summaryrefslogtreecommitdiff
path: root/drivers/mxc
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/mxc')
-rw-r--r--drivers/mxc/Kconfig40
-rw-r--r--drivers/mxc/Makefile18
-rw-r--r--drivers/mxc/adc/Kconfig14
-rw-r--r--drivers/mxc/adc/Makefile4
-rw-r--r--drivers/mxc/adc/imx_adc.c1134
-rw-r--r--drivers/mxc/adc/imx_adc_reg.h242
-rw-r--r--drivers/mxc/amd-gpu/Kconfig13
-rw-r--r--drivers/mxc/amd-gpu/Makefile31
-rw-r--r--drivers/mxc/amd-gpu/common/gsl_cmdstream.c267
-rw-r--r--drivers/mxc/amd-gpu/common/gsl_cmdwindow.c161
-rw-r--r--drivers/mxc/amd-gpu/common/gsl_context.c74
-rw-r--r--drivers/mxc/amd-gpu/common/gsl_debug_pm4.c1015
-rw-r--r--drivers/mxc/amd-gpu/common/gsl_device.c694
-rw-r--r--drivers/mxc/amd-gpu/common/gsl_drawctxt.c1828
-rw-r--r--drivers/mxc/amd-gpu/common/gsl_driver.c329
-rw-r--r--drivers/mxc/amd-gpu/common/gsl_g12.c1025
-rw-r--r--drivers/mxc/amd-gpu/common/gsl_intrmgr.c305
-rw-r--r--drivers/mxc/amd-gpu/common/gsl_log.c591
-rw-r--r--drivers/mxc/amd-gpu/common/gsl_memmgr.c949
-rw-r--r--drivers/mxc/amd-gpu/common/gsl_mmu.c1084
-rw-r--r--drivers/mxc/amd-gpu/common/gsl_ringbuffer.c1169
-rw-r--r--drivers/mxc/amd-gpu/common/gsl_sharedmem.c937
-rw-r--r--drivers/mxc/amd-gpu/common/gsl_tbdump.c228
-rw-r--r--drivers/mxc/amd-gpu/common/gsl_yamato.c924
-rw-r--r--drivers/mxc/amd-gpu/common/pfp_microcode_nrt.inl327
-rw-r--r--drivers/mxc/amd-gpu/common/pm4_microcode.inl815
-rw-r--r--drivers/mxc/amd-gpu/include/api/gsl_displayapi.h86
-rw-r--r--drivers/mxc/amd-gpu/include/api/gsl_klibapi.h136
-rw-r--r--drivers/mxc/amd-gpu/include/api/gsl_libapi.h143
-rw-r--r--drivers/mxc/amd-gpu/include/api/gsl_pm4types.h157
-rw-r--r--drivers/mxc/amd-gpu/include/api/gsl_properties.h94
-rw-r--r--drivers/mxc/amd-gpu/include/api/gsl_types.h479
-rw-r--r--drivers/mxc/amd-gpu/include/api/gsl_utils.h43
-rw-r--r--drivers/mxc/amd-gpu/include/gsl.h79
-rw-r--r--drivers/mxc/amd-gpu/include/gsl_buildconfig.h55
-rw-r--r--drivers/mxc/amd-gpu/include/gsl_cmdstream.h62
-rw-r--r--drivers/mxc/amd-gpu/include/gsl_cmdwindow.h51
-rw-r--r--drivers/mxc/amd-gpu/include/gsl_config.h221
-rw-r--r--drivers/mxc/amd-gpu/include/gsl_context.h45
-rw-r--r--drivers/mxc/amd-gpu/include/gsl_debug.h126
-rw-r--r--drivers/mxc/amd-gpu/include/gsl_device.h152
-rw-r--r--drivers/mxc/amd-gpu/include/gsl_display.h62
-rw-r--r--drivers/mxc/amd-gpu/include/gsl_drawctxt.h118
-rw-r--r--drivers/mxc/amd-gpu/include/gsl_driver.h106
-rw-r--r--drivers/mxc/amd-gpu/include/gsl_hal.h151
-rw-r--r--drivers/mxc/amd-gpu/include/gsl_halconfig.h49
-rw-r--r--drivers/mxc/amd-gpu/include/gsl_intrmgr.h104
-rw-r--r--drivers/mxc/amd-gpu/include/gsl_ioctl.h243
-rw-r--r--drivers/mxc/amd-gpu/include/gsl_log.h74
-rw-r--r--drivers/mxc/amd-gpu/include/gsl_memmgr.h122
-rw-r--r--drivers/mxc/amd-gpu/include/gsl_mmu.h186
-rw-r--r--drivers/mxc/amd-gpu/include/gsl_ringbuffer.h250
-rw-r--r--drivers/mxc/amd-gpu/include/gsl_sharedmem.h110
-rw-r--r--drivers/mxc/amd-gpu/include/gsl_tbdump.h38
-rw-r--r--drivers/mxc/amd-gpu/include/reg/g12_reg.h41
-rw-r--r--drivers/mxc/amd-gpu/include/reg/vgc/vgenums_z160.h291
-rw-r--r--drivers/mxc/amd-gpu/include/reg/vgc/vgregs_z160.h3775
-rw-r--r--drivers/mxc/amd-gpu/include/reg/yamato.h66
-rw-r--r--drivers/mxc/amd-gpu/include/reg/yamato/10/yamato_enum.h1895
-rw-r--r--drivers/mxc/amd-gpu/include/reg/yamato/10/yamato_genenum.h1703
-rw-r--r--drivers/mxc/amd-gpu/include/reg/yamato/10/yamato_genreg.h3404
-rw-r--r--drivers/mxc/amd-gpu/include/reg/yamato/10/yamato_mask.h5906
-rw-r--r--drivers/mxc/amd-gpu/include/reg/yamato/10/yamato_offset.h590
-rw-r--r--drivers/mxc/amd-gpu/include/reg/yamato/10/yamato_random.h223
-rw-r--r--drivers/mxc/amd-gpu/include/reg/yamato/10/yamato_registers.h14278
-rw-r--r--drivers/mxc/amd-gpu/include/reg/yamato/10/yamato_shift.h4183
-rw-r--r--drivers/mxc/amd-gpu/include/reg/yamato/10/yamato_struct.h52421
-rw-r--r--drivers/mxc/amd-gpu/include/reg/yamato/10/yamato_typedef.h550
-rw-r--r--drivers/mxc/amd-gpu/include/reg/yamato/10/yamatoix.h169
-rw-r--r--drivers/mxc/amd-gpu/include/reg/yamato/14/yamato_enum.h1867
-rw-r--r--drivers/mxc/amd-gpu/include/reg/yamato/14/yamato_genenum.h1674
-rw-r--r--drivers/mxc/amd-gpu/include/reg/yamato/14/yamato_genreg.h3310
-rw-r--r--drivers/mxc/amd-gpu/include/reg/yamato/14/yamato_ipt.h95
-rw-r--r--drivers/mxc/amd-gpu/include/reg/yamato/14/yamato_mask.h5739
-rw-r--r--drivers/mxc/amd-gpu/include/reg/yamato/14/yamato_offset.h581
-rw-r--r--drivers/mxc/amd-gpu/include/reg/yamato/14/yamato_random.h221
-rw-r--r--drivers/mxc/amd-gpu/include/reg/yamato/14/yamato_registers.h13962
-rw-r--r--drivers/mxc/amd-gpu/include/reg/yamato/14/yamato_shift.h4078
-rw-r--r--drivers/mxc/amd-gpu/include/reg/yamato/14/yamato_struct.h51151
-rw-r--r--drivers/mxc/amd-gpu/include/reg/yamato/14/yamato_typedef.h540
-rw-r--r--drivers/mxc/amd-gpu/include/reg/yamato/22/yamato_enum.h1897
-rw-r--r--drivers/mxc/amd-gpu/include/reg/yamato/22/yamato_genenum.h1703
-rw-r--r--drivers/mxc/amd-gpu/include/reg/yamato/22/yamato_genreg.h3405
-rw-r--r--drivers/mxc/amd-gpu/include/reg/yamato/22/yamato_ipt.h95
-rw-r--r--drivers/mxc/amd-gpu/include/reg/yamato/22/yamato_mask.h5908
-rw-r--r--drivers/mxc/amd-gpu/include/reg/yamato/22/yamato_offset.h591
-rw-r--r--drivers/mxc/amd-gpu/include/reg/yamato/22/yamato_random.h223
-rw-r--r--drivers/mxc/amd-gpu/include/reg/yamato/22/yamato_registers.h14280
-rw-r--r--drivers/mxc/amd-gpu/include/reg/yamato/22/yamato_shift.h4184
-rw-r--r--drivers/mxc/amd-gpu/include/reg/yamato/22/yamato_struct.h52433
-rw-r--r--drivers/mxc/amd-gpu/include/reg/yamato/22/yamato_typedef.h550
-rw-r--r--drivers/mxc/amd-gpu/os/include/os_types.h138
-rw-r--r--drivers/mxc/amd-gpu/os/kernel/include/kos_libapi.h813
-rw-r--r--drivers/mxc/amd-gpu/os/kernel/src/linux/kos_lib.c661
-rw-r--r--drivers/mxc/amd-gpu/platform/hal/linux/gsl_hal.c579
-rw-r--r--drivers/mxc/amd-gpu/platform/hal/linux/gsl_hwaccess.h142
-rw-r--r--drivers/mxc/amd-gpu/platform/hal/linux/gsl_kmod.c976
-rw-r--r--drivers/mxc/amd-gpu/platform/hal/linux/gsl_kmod_cleanup.c269
-rw-r--r--drivers/mxc/amd-gpu/platform/hal/linux/gsl_kmod_cleanup.h90
-rw-r--r--drivers/mxc/amd-gpu/platform/hal/linux/gsl_linux_map.c221
-rw-r--r--drivers/mxc/amd-gpu/platform/hal/linux/gsl_linux_map.h46
-rw-r--r--drivers/mxc/amd-gpu/platform/hal/linux/misc.c167
-rw-r--r--drivers/mxc/asrc/Kconfig13
-rw-r--r--drivers/mxc/asrc/Makefile4
-rw-r--r--drivers/mxc/asrc/mxc_asrc.c1728
-rw-r--r--drivers/mxc/bt/Kconfig13
-rw-r--r--drivers/mxc/bt/Makefile4
-rw-r--r--drivers/mxc/bt/mxc_bt.c128
-rw-r--r--drivers/mxc/dam/Kconfig13
-rw-r--r--drivers/mxc/dam/Makefile9
-rw-r--r--drivers/mxc/dam/dam.c427
-rw-r--r--drivers/mxc/dam/dam.h258
-rw-r--r--drivers/mxc/dam/dam_v1.c617
-rw-r--r--drivers/mxc/gps_ioctrl/Kconfig13
-rw-r--r--drivers/mxc/gps_ioctrl/Makefile5
-rw-r--r--drivers/mxc/gps_ioctrl/agpsgpiodev.c332
-rw-r--r--drivers/mxc/gps_ioctrl/agpsgpiodev.h46
-rw-r--r--drivers/mxc/hmp4e/Kconfig24
-rw-r--r--drivers/mxc/hmp4e/Makefile9
-rw-r--r--drivers/mxc/hmp4e/mxc_hmp4e.c812
-rw-r--r--drivers/mxc/hmp4e/mxc_hmp4e.h70
-rw-r--r--drivers/mxc/hw_event/Kconfig11
-rw-r--r--drivers/mxc/hw_event/Makefile1
-rw-r--r--drivers/mxc/hw_event/mxc_hw_event.c266
-rw-r--r--drivers/mxc/ipu/Kconfig4
-rw-r--r--drivers/mxc/ipu/Makefile5
-rw-r--r--drivers/mxc/ipu/ipu_adc.c689
-rw-r--r--drivers/mxc/ipu/ipu_calc_stripes_sizes.c374
-rw-r--r--drivers/mxc/ipu/ipu_common.c1970
-rw-r--r--drivers/mxc/ipu/ipu_csi.c238
-rw-r--r--drivers/mxc/ipu/ipu_device.c696
-rw-r--r--drivers/mxc/ipu/ipu_ic.c590
-rw-r--r--drivers/mxc/ipu/ipu_param_mem.h176
-rw-r--r--drivers/mxc/ipu/ipu_prv.h59
-rw-r--r--drivers/mxc/ipu/ipu_regs.h396
-rw-r--r--drivers/mxc/ipu/ipu_sdc.c357
-rw-r--r--drivers/mxc/ipu/pf/Kconfig7
-rw-r--r--drivers/mxc/ipu/pf/Makefile1
-rw-r--r--drivers/mxc/ipu/pf/mxc_pf.c991
-rw-r--r--drivers/mxc/ipu3/Kconfig5
-rw-r--r--drivers/mxc/ipu3/Makefile4
-rw-r--r--drivers/mxc/ipu3/ipu_calc_stripes_sizes.c374
-rw-r--r--drivers/mxc/ipu3/ipu_capture.c851
-rw-r--r--drivers/mxc/ipu3/ipu_common.c2644
-rw-r--r--drivers/mxc/ipu3/ipu_device.c510
-rw-r--r--drivers/mxc/ipu3/ipu_disp.c1884
-rw-r--r--drivers/mxc/ipu3/ipu_ic.c833
-rw-r--r--drivers/mxc/ipu3/ipu_param_mem.h570
-rw-r--r--drivers/mxc/ipu3/ipu_prv.h102
-rw-r--r--drivers/mxc/ipu3/ipu_regs.h669
-rw-r--r--drivers/mxc/mcu_pmic/Kconfig17
-rw-r--r--drivers/mxc/mcu_pmic/Makefile6
-rw-r--r--drivers/mxc/mcu_pmic/max8660.c154
-rw-r--r--drivers/mxc/mcu_pmic/max8660.h49
-rw-r--r--drivers/mxc/mcu_pmic/mc9s08dz60.c197
-rw-r--r--drivers/mxc/mcu_pmic/mc9s08dz60.h73
-rw-r--r--drivers/mxc/mcu_pmic/mcu_pmic_core.c226
-rw-r--r--drivers/mxc/mcu_pmic/mcu_pmic_core.h43
-rw-r--r--drivers/mxc/mcu_pmic/mcu_pmic_gpio.c131
-rw-r--r--drivers/mxc/mlb/Kconfig13
-rw-r--r--drivers/mxc/mlb/Makefile5
-rw-r--r--drivers/mxc/mlb/mxc_mlb.c1060
-rw-r--r--drivers/mxc/pmic/Kconfig64
-rw-r--r--drivers/mxc/pmic/Makefile7
-rw-r--r--drivers/mxc/pmic/core/Makefile21
-rw-r--r--drivers/mxc/pmic/core/mc13783.c380
-rw-r--r--drivers/mxc/pmic/core/mc13892.c335
-rw-r--r--drivers/mxc/pmic/core/mc34704.c329
-rw-r--r--drivers/mxc/pmic/core/pmic-dev.c316
-rw-r--r--drivers/mxc/pmic/core/pmic.h138
-rw-r--r--drivers/mxc/pmic/core/pmic_common.c131
-rw-r--r--drivers/mxc/pmic/core/pmic_core_i2c.c348
-rw-r--r--drivers/mxc/pmic/core/pmic_core_spi.c303
-rw-r--r--drivers/mxc/pmic/core/pmic_event.c236
-rw-r--r--drivers/mxc/pmic/core/pmic_external.c100
-rw-r--r--drivers/mxc/pmic/mc13783/Kconfig55
-rw-r--r--drivers/mxc/pmic/mc13783/Makefile18
-rw-r--r--drivers/mxc/pmic/mc13783/pmic_adc.c1541
-rw-r--r--drivers/mxc/pmic/mc13783/pmic_adc_defs.h321
-rw-r--r--drivers/mxc/pmic/mc13783/pmic_audio.c5873
-rw-r--r--drivers/mxc/pmic/mc13783/pmic_battery.c1220
-rw-r--r--drivers/mxc/pmic/mc13783/pmic_battery_defs.h81
-rw-r--r--drivers/mxc/pmic/mc13783/pmic_convity.c2468
-rw-r--r--drivers/mxc/pmic/mc13783/pmic_light.c2764
-rw-r--r--drivers/mxc/pmic/mc13783/pmic_light_defs.h144
-rw-r--r--drivers/mxc/pmic/mc13783/pmic_power.c3146
-rw-r--r--drivers/mxc/pmic/mc13783/pmic_power_defs.h509
-rw-r--r--drivers/mxc/pmic/mc13783/pmic_rtc.c544
-rw-r--r--drivers/mxc/pmic/mc13783/pmic_rtc_defs.h47
-rw-r--r--drivers/mxc/pmic/mc13892/Kconfig48
-rw-r--r--drivers/mxc/pmic/mc13892/Makefile10
-rw-r--r--drivers/mxc/pmic/mc13892/pmic_adc.c1073
-rw-r--r--drivers/mxc/pmic/mc13892/pmic_battery.c797
-rw-r--r--drivers/mxc/pmic/mc13892/pmic_light.c685
-rw-r--r--drivers/mxc/security/Kconfig64
-rw-r--r--drivers/mxc/security/Makefile11
-rw-r--r--drivers/mxc/security/dryice-regs.h207
-rw-r--r--drivers/mxc/security/dryice.c1123
-rw-r--r--drivers/mxc/security/dryice.h287
-rw-r--r--drivers/mxc/security/mxc_scc.c2386
-rw-r--r--drivers/mxc/security/mxc_scc_internals.h498
-rw-r--r--drivers/mxc/security/rng/Makefile35
-rw-r--r--drivers/mxc/security/rng/des_key.c385
-rw-r--r--drivers/mxc/security/rng/fsl_shw_hash.c84
-rw-r--r--drivers/mxc/security/rng/fsl_shw_hmac.c83
-rw-r--r--drivers/mxc/security/rng/fsl_shw_rand.c122
-rw-r--r--drivers/mxc/security/rng/fsl_shw_sym.c317
-rw-r--r--drivers/mxc/security/rng/fsl_shw_wrap.c1301
-rw-r--r--drivers/mxc/security/rng/include/rng_driver.h134
-rw-r--r--drivers/mxc/security/rng/include/rng_internals.h680
-rw-r--r--drivers/mxc/security/rng/include/rng_rnga.h181
-rw-r--r--drivers/mxc/security/rng/include/rng_rngc.h235
-rw-r--r--drivers/mxc/security/rng/include/shw_driver.h2971
-rw-r--r--drivers/mxc/security/rng/include/shw_hash.h96
-rw-r--r--drivers/mxc/security/rng/include/shw_hmac.h82
-rw-r--r--drivers/mxc/security/rng/include/shw_internals.h162
-rw-r--r--drivers/mxc/security/rng/rng_driver.c1150
-rw-r--r--drivers/mxc/security/rng/shw_driver.c2335
-rw-r--r--drivers/mxc/security/rng/shw_dryice.c204
-rw-r--r--drivers/mxc/security/rng/shw_hash.c328
-rw-r--r--drivers/mxc/security/rng/shw_hmac.c145
-rw-r--r--drivers/mxc/security/rng/shw_memory_mapper.c213
-rw-r--r--drivers/mxc/security/sahara2/Kconfig35
-rw-r--r--drivers/mxc/security/sahara2/Makefile47
-rw-r--r--drivers/mxc/security/sahara2/fsl_shw_auth.c706
-rw-r--r--drivers/mxc/security/sahara2/fsl_shw_hash.c186
-rw-r--r--drivers/mxc/security/sahara2/fsl_shw_hmac.c266
-rw-r--r--drivers/mxc/security/sahara2/fsl_shw_keystore.c837
-rw-r--r--drivers/mxc/security/sahara2/fsl_shw_rand.c96
-rw-r--r--drivers/mxc/security/sahara2/fsl_shw_sym.c281
-rw-r--r--drivers/mxc/security/sahara2/fsl_shw_user.c137
-rw-r--r--drivers/mxc/security/sahara2/fsl_shw_wrap.c967
-rw-r--r--drivers/mxc/security/sahara2/include/adaptor.h113
-rw-r--r--drivers/mxc/security/sahara2/include/diagnostic.h116
-rw-r--r--drivers/mxc/security/sahara2/include/fsl_platform.h161
-rw-r--r--drivers/mxc/security/sahara2/include/fsl_shw.h2515
-rw-r--r--drivers/mxc/security/sahara2/include/fsl_shw_keystore.h475
-rw-r--r--drivers/mxc/security/sahara2/include/linux_port.h1806
-rw-r--r--drivers/mxc/security/sahara2/include/platform_abstractions.h15
-rw-r--r--drivers/mxc/security/sahara2/include/portable_os.h1453
-rw-r--r--drivers/mxc/security/sahara2/include/sah_driver_common.h102
-rw-r--r--drivers/mxc/security/sahara2/include/sah_hardware_interface.h99
-rw-r--r--drivers/mxc/security/sahara2/include/sah_interrupt_handler.h42
-rw-r--r--drivers/mxc/security/sahara2/include/sah_kernel.h113
-rw-r--r--drivers/mxc/security/sahara2/include/sah_memory_mapper.h79
-rw-r--r--drivers/mxc/security/sahara2/include/sah_queue_manager.h63
-rw-r--r--drivers/mxc/security/sahara2/include/sah_status_manager.h228
-rw-r--r--drivers/mxc/security/sahara2/include/sahara.h2265
-rw-r--r--drivers/mxc/security/sahara2/include/sahara2_kernel.h49
-rw-r--r--drivers/mxc/security/sahara2/include/sf_util.h466
-rw-r--r--drivers/mxc/security/sahara2/km_adaptor.c849
-rw-r--r--drivers/mxc/security/sahara2/sah_driver_interface.c2185
-rw-r--r--drivers/mxc/security/sahara2/sah_hardware_interface.c808
-rw-r--r--drivers/mxc/security/sahara2/sah_interrupt_handler.c216
-rw-r--r--drivers/mxc/security/sahara2/sah_memory_mapper.c2356
-rw-r--r--drivers/mxc/security/sahara2/sah_queue.c249
-rw-r--r--drivers/mxc/security/sahara2/sah_queue_manager.c1076
-rw-r--r--drivers/mxc/security/sahara2/sah_status_manager.c714
-rw-r--r--drivers/mxc/security/sahara2/sf_util.c1390
-rw-r--r--drivers/mxc/security/scc2_driver.c2401
-rw-r--r--drivers/mxc/security/scc2_internals.h519
-rw-r--r--drivers/mxc/ssi/Kconfig12
-rw-r--r--drivers/mxc/ssi/Makefile7
-rw-r--r--drivers/mxc/ssi/registers.h208
-rw-r--r--drivers/mxc/ssi/ssi.c1221
-rw-r--r--drivers/mxc/ssi/ssi.h574
-rw-r--r--drivers/mxc/ssi/ssi_types.h367
-rw-r--r--drivers/mxc/vpu/Kconfig30
-rw-r--r--drivers/mxc/vpu/Makefile10
-rw-r--r--drivers/mxc/vpu/mxc_vl2cc.c124
-rw-r--r--drivers/mxc/vpu/mxc_vpu.c881
271 files changed, 371406 insertions, 0 deletions
diff --git a/drivers/mxc/Kconfig b/drivers/mxc/Kconfig
new file mode 100644
index 000000000000..b26c1dc11ad6
--- /dev/null
+++ b/drivers/mxc/Kconfig
@@ -0,0 +1,40 @@
+# drivers/video/mxc/Kconfig
+
+if ARCH_MXC
+
+menu "MXC support drivers"
+
+config MXC_IPU
+ bool "Image Processing Unit Driver"
+ depends on !ARCH_MX21
+ depends on !ARCH_MX27
+ depends on !ARCH_MX25
+ select MXC_IPU_V1 if !ARCH_MX37 && !ARCH_MX5
+ select MXC_IPU_V3 if ARCH_MX37 || ARCH_MX5
+ select MXC_IPU_V3D if ARCH_MX37
+ select MXC_IPU_V3EX if ARCH_MX5
+ help
+ If you plan to use the Image Processing unit, say
+ Y here. IPU is needed by Framebuffer and V4L2 drivers.
+
+source "drivers/mxc/ipu/Kconfig"
+source "drivers/mxc/ipu3/Kconfig"
+
+source "drivers/mxc/ssi/Kconfig"
+source "drivers/mxc/dam/Kconfig"
+source "drivers/mxc/pmic/Kconfig"
+source "drivers/mxc/mcu_pmic/Kconfig"
+source "drivers/mxc/security/Kconfig"
+source "drivers/mxc/hmp4e/Kconfig"
+source "drivers/mxc/hw_event/Kconfig"
+source "drivers/mxc/vpu/Kconfig"
+source "drivers/mxc/asrc/Kconfig"
+source "drivers/mxc/bt/Kconfig"
+source "drivers/mxc/gps_ioctrl/Kconfig"
+source "drivers/mxc/mlb/Kconfig"
+source "drivers/mxc/adc/Kconfig"
+source "drivers/mxc/amd-gpu/Kconfig"
+
+endmenu
+
+endif
diff --git a/drivers/mxc/Makefile b/drivers/mxc/Makefile
new file mode 100644
index 000000000000..873bd37c9055
--- /dev/null
+++ b/drivers/mxc/Makefile
@@ -0,0 +1,18 @@
+obj-$(CONFIG_MXC_IPU_V1) += ipu/
+obj-$(CONFIG_MXC_IPU_V3) += ipu3/
+obj-$(CONFIG_MXC_SSI) += ssi/
+obj-$(CONFIG_MXC_DAM) += dam/
+
+obj-$(CONFIG_MXC_PMIC_MC9SDZ60) += mcu_pmic/
+obj-$(CONFIG_MXC_PMIC) += pmic/
+
+obj-$(CONFIG_MXC_HMP4E) += hmp4e/
+obj-y += security/
+obj-$(CONFIG_MXC_VPU) += vpu/
+obj-$(CONFIG_MXC_HWEVENT) += hw_event/
+obj-$(CONFIG_MXC_ASRC) += asrc/
+obj-$(CONFIG_MXC_BLUETOOTH) += bt/
+obj-$(CONFIG_GPS_IOCTRL) += gps_ioctrl/
+obj-$(CONFIG_MXC_MLB) += mlb/
+obj-$(CONFIG_IMX_ADC) += adc/
+obj-$(CONFIG_MXC_AMD_GPU) += amd-gpu/
diff --git a/drivers/mxc/adc/Kconfig b/drivers/mxc/adc/Kconfig
new file mode 100644
index 000000000000..91ad23bc7cbe
--- /dev/null
+++ b/drivers/mxc/adc/Kconfig
@@ -0,0 +1,14 @@
+#
+# i.MX ADC devices
+#
+
+menu "i.MX ADC support"
+
+config IMX_ADC
+ tristate "i.MX ADC"
+ depends on ARCH_MXC
+ default n
+ help
+ This selects the Freescale i.MX on-chip ADC driver.
+
+endmenu
diff --git a/drivers/mxc/adc/Makefile b/drivers/mxc/adc/Makefile
new file mode 100644
index 000000000000..e21e48ee1185
--- /dev/null
+++ b/drivers/mxc/adc/Makefile
@@ -0,0 +1,4 @@
+#
+# Makefile for i.MX adc devices.
+#
+obj-$(CONFIG_IMX_ADC) += imx_adc.o
diff --git a/drivers/mxc/adc/imx_adc.c b/drivers/mxc/adc/imx_adc.c
new file mode 100644
index 000000000000..56538e79e2a0
--- /dev/null
+++ b/drivers/mxc/adc/imx_adc.c
@@ -0,0 +1,1134 @@
+/*
+ * Copyright 2009-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file adc/imx_adc.c
+ * @brief This is the main file of i.MX ADC driver.
+ *
+ * @ingroup IMX_ADC
+ */
+
+/*
+ * Includes
+ */
+
+#include <linux/slab.h>
+#include <linux/clk.h>
+#include <linux/delay.h>
+#include <linux/device.h>
+#include <linux/interrupt.h>
+#include <linux/io.h>
+#include <linux/platform_device.h>
+#include <linux/poll.h>
+#include <linux/sched.h>
+#include <linux/time.h>
+#include <linux/wait.h>
+#include <linux/imx_adc.h>
+#include "imx_adc_reg.h"
+
+static int imx_adc_major;
+
+/*!
+ * Number of users waiting in suspendq
+ */
+static int swait;
+
+/*!
+ * To indicate whether any of the adc devices are suspending
+ */
+static int suspend_flag;
+
+/*!
+ * The suspendq is used by blocking application calls
+ */
+static wait_queue_head_t suspendq;
+static wait_queue_head_t tsq;
+
+static bool imx_adc_ready;
+static bool ts_data_ready;
+static int tsi_data = TSI_DATA;
+static unsigned short ts_data_buf[16];
+
+static struct class *imx_adc_class;
+static struct imx_adc_data *adc_data;
+
+static DECLARE_MUTEX(general_convert_mutex);
+static DECLARE_MUTEX(ts_convert_mutex);
+
+unsigned long tsc_base;
+
+int is_imx_adc_ready(void)
+{
+ return imx_adc_ready;
+}
+EXPORT_SYMBOL(is_imx_adc_ready);
+
+void tsc_clk_enable(void)
+{
+ unsigned long reg;
+
+ clk_enable(adc_data->adc_clk);
+
+ reg = __raw_readl(tsc_base + TGCR);
+ reg |= TGCR_IPG_CLK_EN;
+ __raw_writel(reg, tsc_base + TGCR);
+}
+
+void tsc_clk_disable(void)
+{
+ unsigned long reg;
+
+ clk_disable(adc_data->adc_clk);
+
+ reg = __raw_readl(tsc_base + TGCR);
+ reg &= ~TGCR_IPG_CLK_EN;
+ __raw_writel(reg, tsc_base + TGCR);
+}
+
+void tsc_self_reset(void)
+{
+ unsigned long reg;
+
+ reg = __raw_readl(tsc_base + TGCR);
+ reg |= TGCR_TSC_RST;
+ __raw_writel(reg, tsc_base + TGCR);
+
+ while (__raw_readl(tsc_base + TGCR) & TGCR_TSC_RST)
+ continue;
+}
+
+/* Internal reference */
+void tsc_intref_enable(void)
+{
+ unsigned long reg;
+
+ reg = __raw_readl(tsc_base + TGCR);
+ reg |= TGCR_INTREFEN;
+ __raw_writel(reg, tsc_base + TGCR);
+}
+
+/* initialize touchscreen */
+void imx_tsc_init(void)
+{
+ unsigned long reg;
+ int lastitemid;
+
+ /* Level sense */
+ reg = __raw_readl(tsc_base + TCQCR);
+ reg &= ~CQCR_PD_CFG; /* edge sensitive */
+ reg |= (0xf << CQCR_FIFOWATERMARK_SHIFT); /* watermark */
+ __raw_writel(reg, tsc_base + TCQCR);
+
+ /* Configure 4-wire */
+ reg = TSC_4WIRE_PRECHARGE;
+ reg |= CC_IGS;
+ __raw_writel(reg, tsc_base + TCC0);
+
+ reg = TSC_4WIRE_TOUCH_DETECT;
+ reg |= 3 << CC_NOS_SHIFT; /* 4 samples */
+ reg |= 32 << CC_SETTLING_TIME_SHIFT; /* it's important! */
+ __raw_writel(reg, tsc_base + TCC1);
+
+ reg = TSC_4WIRE_X_MEASUMENT;
+ reg |= 3 << CC_NOS_SHIFT; /* 4 samples */
+ reg |= 16 << CC_SETTLING_TIME_SHIFT; /* settling time */
+ __raw_writel(reg, tsc_base + TCC2);
+
+ reg = TSC_4WIRE_Y_MEASUMENT;
+ reg |= 3 << CC_NOS_SHIFT; /* 4 samples */
+ reg |= 16 << CC_SETTLING_TIME_SHIFT; /* settling time */
+ __raw_writel(reg, tsc_base + TCC3);
+
+ reg = (TCQ_ITEM_TCC0 << TCQ_ITEM7_SHIFT) |
+ (TCQ_ITEM_TCC0 << TCQ_ITEM6_SHIFT) |
+ (TCQ_ITEM_TCC1 << TCQ_ITEM5_SHIFT) |
+ (TCQ_ITEM_TCC0 << TCQ_ITEM4_SHIFT) |
+ (TCQ_ITEM_TCC3 << TCQ_ITEM3_SHIFT) |
+ (TCQ_ITEM_TCC2 << TCQ_ITEM2_SHIFT) |
+ (TCQ_ITEM_TCC1 << TCQ_ITEM1_SHIFT) |
+ (TCQ_ITEM_TCC0 << TCQ_ITEM0_SHIFT);
+ __raw_writel(reg, tsc_base + TCQ_ITEM_7_0);
+
+ lastitemid = 5;
+ reg = __raw_readl(tsc_base + TCQCR);
+ reg = (reg & ~CQCR_LAST_ITEM_ID_MASK) |
+ (lastitemid << CQCR_LAST_ITEM_ID_SHIFT);
+ __raw_writel(reg, tsc_base + TCQCR);
+
+ /* Config idle for 4-wire */
+ reg = TSC_4WIRE_PRECHARGE;
+ __raw_writel(reg, tsc_base + TICR);
+
+ reg = TSC_4WIRE_TOUCH_DETECT;
+ __raw_writel(reg, tsc_base + TICR);
+
+ /* pen down mask */
+ reg = __raw_readl(tsc_base + TCQCR);
+ reg &= ~CQCR_PD_MSK;
+ __raw_writel(reg, tsc_base + TCQCR);
+ reg = __raw_readl(tsc_base + TCQMR);
+ reg &= ~TCQMR_PD_IRQ_MSK;
+ __raw_writel(reg, tsc_base + TCQMR);
+
+ /* Debounce time = dbtime*8 adc clock cycles */
+ reg = __raw_readl(tsc_base + TGCR);
+ reg &= ~TGCR_PDBTIME_MASK;
+ reg |= TGCR_PDBTIME128 | TGCR_HSYNC_EN;
+ __raw_writel(reg, tsc_base + TGCR);
+
+ /* pen down enable */
+ reg = __raw_readl(tsc_base + TGCR);
+ reg |= TGCR_PDB_EN;
+ __raw_writel(reg, tsc_base + TGCR);
+ reg |= TGCR_PD_EN;
+ __raw_writel(reg, tsc_base + TGCR);
+}
+
+static irqreturn_t imx_adc_interrupt(int irq, void *dev_id)
+{
+ unsigned long reg;
+
+ if (__raw_readl(tsc_base + TGSR) & 0x4) {
+ /* deep sleep wakeup interrupt */
+ /* clear tgsr */
+ __raw_writel(0, tsc_base + TGSR);
+ /* clear deep sleep wakeup irq */
+ reg = __raw_readl(tsc_base + TGCR);
+ reg &= ~TGCR_SLPC;
+ __raw_writel(reg, tsc_base + TGCR);
+ /* un-mask pen down and pen down irq */
+ reg = __raw_readl(tsc_base + TCQCR);
+ reg &= ~CQCR_PD_MSK;
+ __raw_writel(reg, tsc_base + TCQCR);
+ reg = __raw_readl(tsc_base + TCQMR);
+ reg &= ~TCQMR_PD_IRQ_MSK;
+ __raw_writel(reg, tsc_base + TCQMR);
+ } else if ((__raw_readl(tsc_base + TGSR) & 0x1) &&
+ (__raw_readl(tsc_base + TCQSR) & 0x1)) {
+
+ /* mask pen down detect irq */
+ reg = __raw_readl(tsc_base + TCQMR);
+ reg |= TCQMR_PD_IRQ_MSK;
+ __raw_writel(reg, tsc_base + TCQMR);
+
+ ts_data_ready = 1;
+ wake_up_interruptible(&tsq);
+ }
+ return IRQ_HANDLED;
+}
+
+enum IMX_ADC_STATUS imx_adc_read_general(unsigned short *result)
+{
+ unsigned long reg;
+ unsigned int data_num = 0;
+
+ reg = __raw_readl(tsc_base + GCQCR);
+ reg |= CQCR_FQS;
+ __raw_writel(reg, tsc_base + GCQCR);
+
+ while (!(__raw_readl(tsc_base + GCQSR) & CQSR_EOQ))
+ continue;
+ reg = __raw_readl(tsc_base + GCQCR);
+ reg &= ~CQCR_FQS;
+ __raw_writel(reg, tsc_base + GCQCR);
+ reg = __raw_readl(tsc_base + GCQSR);
+ reg |= CQSR_EOQ;
+ __raw_writel(reg, tsc_base + GCQSR);
+
+ while (!(__raw_readl(tsc_base + GCQSR) & CQSR_EMPT)) {
+ result[data_num] = __raw_readl(tsc_base + GCQFIFO) >>
+ GCQFIFO_ADCOUT_SHIFT;
+ data_num++;
+ }
+ return IMX_ADC_SUCCESS;
+}
+
+/*!
+ * This function will get raw (X,Y) value by converting the voltage
+ * @param touch_sample Pointer to touch sample
+ *
+ * return This funciton returns 0 if successful.
+ *
+ *
+ */
+enum IMX_ADC_STATUS imx_adc_read_ts(struct t_touch_screen *touch_sample,
+ int wait_tsi)
+{
+ unsigned long reg;
+ int data_num = 0;
+ int detect_sample1, detect_sample2;
+
+ memset(ts_data_buf, 0, sizeof ts_data_buf);
+ touch_sample->valid_flag = 1;
+
+ if (wait_tsi) {
+ /* Config idle for 4-wire */
+ reg = TSC_4WIRE_TOUCH_DETECT;
+ __raw_writel(reg, tsc_base + TICR);
+
+ /* Pen interrupt starts new conversion queue */
+ reg = __raw_readl(tsc_base + TCQCR);
+ reg &= ~CQCR_QSM_MASK;
+ reg |= CQCR_QSM_PEN;
+ __raw_writel(reg, tsc_base + TCQCR);
+
+ /* unmask pen down detect irq */
+ reg = __raw_readl(tsc_base + TCQMR);
+ reg &= ~TCQMR_PD_IRQ_MSK;
+ __raw_writel(reg, tsc_base + TCQMR);
+
+ wait_event_interruptible(tsq, ts_data_ready);
+ while (!(__raw_readl(tsc_base + TCQSR) & CQSR_EOQ))
+ continue;
+
+ /* stop the conversion */
+ reg = __raw_readl(tsc_base + TCQCR);
+ reg &= ~CQCR_QSM_MASK;
+ __raw_writel(reg, tsc_base + TCQCR);
+ reg = CQSR_PD | CQSR_EOQ;
+ __raw_writel(reg, tsc_base + TCQSR);
+
+ /* change configuration for FQS mode */
+ tsi_data = TSI_DATA;
+ reg = (0x1 << CC_YPLLSW_SHIFT) | (0x1 << CC_XNURSW_SHIFT) |
+ CC_XPULSW;
+ __raw_writel(reg, tsc_base + TICR);
+ } else {
+ /* FQS semaphore */
+ down(&ts_convert_mutex);
+
+ reg = (0x1 << CC_YPLLSW_SHIFT) | (0x1 << CC_XNURSW_SHIFT) |
+ CC_XPULSW;
+ __raw_writel(reg, tsc_base + TICR);
+
+ /* FQS */
+ reg = __raw_readl(tsc_base + TCQCR);
+ reg &= ~CQCR_QSM_MASK;
+ reg |= CQCR_QSM_FQS;
+ __raw_writel(reg, tsc_base + TCQCR);
+ reg = __raw_readl(tsc_base + TCQCR);
+ reg |= CQCR_FQS;
+ __raw_writel(reg, tsc_base + TCQCR);
+ while (!(__raw_readl(tsc_base + TCQSR) & CQSR_EOQ))
+ continue;
+
+ /* stop FQS */
+ reg = __raw_readl(tsc_base + TCQCR);
+ reg &= ~CQCR_QSM_MASK;
+ __raw_writel(reg, tsc_base + TCQCR);
+ reg = __raw_readl(tsc_base + TCQCR);
+ reg &= ~CQCR_FQS;
+ __raw_writel(reg, tsc_base + TCQCR);
+
+ /* clear status bit */
+ reg = __raw_readl(tsc_base + TCQSR);
+ reg |= CQSR_EOQ;
+ __raw_writel(reg, tsc_base + TCQSR);
+ tsi_data = FQS_DATA;
+
+ /* Config idle for 4-wire */
+ reg = TSC_4WIRE_PRECHARGE;
+ __raw_writel(reg, tsc_base + TICR);
+
+ reg = TSC_4WIRE_TOUCH_DETECT;
+ __raw_writel(reg, tsc_base + TICR);
+
+ }
+
+ while (!(__raw_readl(tsc_base + TCQSR) & CQSR_EMPT)) {
+ reg = __raw_readl(tsc_base + TCQFIFO);
+ ts_data_buf[data_num] = reg;
+ data_num++;
+ }
+
+ touch_sample->x_position1 = ts_data_buf[4] >> 4;
+ touch_sample->x_position2 = ts_data_buf[5] >> 4;
+ touch_sample->x_position3 = ts_data_buf[6] >> 4;
+ touch_sample->y_position1 = ts_data_buf[9] >> 4;
+ touch_sample->y_position2 = ts_data_buf[10] >> 4;
+ touch_sample->y_position3 = ts_data_buf[11] >> 4;
+
+ detect_sample1 = ts_data_buf[0];
+ detect_sample2 = ts_data_buf[12];
+
+ if ((detect_sample1 > 0x6000) || (detect_sample2 > 0x6000))
+ touch_sample->valid_flag = 0;
+
+ ts_data_ready = 0;
+
+ if (!(touch_sample->x_position1 ||
+ touch_sample->x_position2 || touch_sample->x_position3))
+ touch_sample->contact_resistance = 0;
+ else
+ touch_sample->contact_resistance = 1;
+
+ if (tsi_data == FQS_DATA)
+ up(&ts_convert_mutex);
+ return IMX_ADC_SUCCESS;
+}
+
+/*!
+ * This function performs filtering and rejection of excessive noise prone
+ * sampl.
+ *
+ * @param ts_curr Touch screen value
+ *
+ * @return This function returns 0 on success, -1 otherwise.
+ */
+static int imx_adc_filter(struct t_touch_screen *ts_curr)
+{
+
+ unsigned int ydiff1, ydiff2, ydiff3, xdiff1, xdiff2, xdiff3;
+ unsigned int sample_sumx, sample_sumy;
+ static unsigned int prev_x[FILTLEN], prev_y[FILTLEN];
+ int index = 0;
+ unsigned int y_curr, x_curr;
+ static int filt_count;
+ /* Added a variable filt_type to decide filtering at run-time */
+ unsigned int filt_type = 0;
+
+ /* ignore the data converted when pen down and up */
+ if ((ts_curr->contact_resistance == 0) || tsi_data == TSI_DATA) {
+ ts_curr->x_position = 0;
+ ts_curr->y_position = 0;
+ filt_count = 0;
+ return 0;
+ }
+ /* ignore the data valid */
+ if (ts_curr->valid_flag == 0)
+ return -1;
+
+ ydiff1 = abs(ts_curr->y_position1 - ts_curr->y_position2);
+ ydiff2 = abs(ts_curr->y_position2 - ts_curr->y_position3);
+ ydiff3 = abs(ts_curr->y_position1 - ts_curr->y_position3);
+ if ((ydiff1 > DELTA_Y_MAX) ||
+ (ydiff2 > DELTA_Y_MAX) || (ydiff3 > DELTA_Y_MAX)) {
+ pr_debug("imx_adc_filter: Ret pos 1\n");
+ return -1;
+ }
+
+ xdiff1 = abs(ts_curr->x_position1 - ts_curr->x_position2);
+ xdiff2 = abs(ts_curr->x_position2 - ts_curr->x_position3);
+ xdiff3 = abs(ts_curr->x_position1 - ts_curr->x_position3);
+
+ if ((xdiff1 > DELTA_X_MAX) ||
+ (xdiff2 > DELTA_X_MAX) || (xdiff3 > DELTA_X_MAX)) {
+ pr_debug("imx_adc_filter: Ret pos 2\n");
+ return -1;
+ }
+ /* Compute two closer values among the three available Y readouts */
+
+ if (ydiff1 < ydiff2) {
+ if (ydiff1 < ydiff3) {
+ /* Sample 0 & 1 closest together */
+ sample_sumy = ts_curr->y_position1 +
+ ts_curr->y_position2;
+ } else {
+ /* Sample 0 & 2 closest together */
+ sample_sumy = ts_curr->y_position1 +
+ ts_curr->y_position3;
+ }
+ } else {
+ if (ydiff2 < ydiff3) {
+ /* Sample 1 & 2 closest together */
+ sample_sumy = ts_curr->y_position2 +
+ ts_curr->y_position3;
+ } else {
+ /* Sample 0 & 2 closest together */
+ sample_sumy = ts_curr->y_position1 +
+ ts_curr->y_position3;
+ }
+ }
+
+ /*
+ * Compute two closer values among the three available X
+ * readouts
+ */
+ if (xdiff1 < xdiff2) {
+ if (xdiff1 < xdiff3) {
+ /* Sample 0 & 1 closest together */
+ sample_sumx = ts_curr->x_position1 +
+ ts_curr->x_position2;
+ } else {
+ /* Sample 0 & 2 closest together */
+ sample_sumx = ts_curr->x_position1 +
+ ts_curr->x_position3;
+ }
+ } else {
+ if (xdiff2 < xdiff3) {
+ /* Sample 1 & 2 closest together */
+ sample_sumx = ts_curr->x_position2 +
+ ts_curr->x_position3;
+ } else {
+ /* Sample 0 & 2 closest together */
+ sample_sumx = ts_curr->x_position1 +
+ ts_curr->x_position3;
+ }
+ }
+
+ /*
+ * Wait FILTER_MIN_DELAY number of samples to restart
+ * filtering
+ */
+ if (filt_count < FILTER_MIN_DELAY) {
+ /*
+ * Current output is the average of the two closer
+ * values and no filtering is used
+ */
+ y_curr = (sample_sumy / 2);
+ x_curr = (sample_sumx / 2);
+ ts_curr->y_position = y_curr;
+ ts_curr->x_position = x_curr;
+ filt_count++;
+
+ } else {
+ if (abs(sample_sumx - (prev_x[0] + prev_x[1])) >
+ (DELTA_X_MAX * 16)) {
+ pr_debug("imx_adc_filter: : Ret pos 3\n");
+ return -1;
+ }
+ if (abs(sample_sumy - (prev_y[0] + prev_y[1])) >
+ (DELTA_Y_MAX * 16)) {
+ pr_debug("imx_adc_filter: : Ret pos 4\n");
+ return -1;
+ }
+ sample_sumy /= 2;
+ sample_sumx /= 2;
+ /* Use hard filtering if the sample difference < 10 */
+ if ((abs(sample_sumy - prev_y[0]) > 10) ||
+ (abs(sample_sumx - prev_x[0]) > 10))
+ filt_type = 1;
+
+ /*
+ * Current outputs are the average of three previous
+ * values and the present readout
+ */
+ y_curr = sample_sumy;
+ for (index = 0; index < FILTLEN; index++) {
+ if (filt_type == 0)
+ y_curr = y_curr + (prev_y[index]);
+ else
+ y_curr = y_curr + (prev_y[index] / 3);
+ }
+ if (filt_type == 0)
+ y_curr = y_curr >> 2;
+ else
+ y_curr = y_curr >> 1;
+ ts_curr->y_position = y_curr;
+
+ x_curr = sample_sumx;
+ for (index = 0; index < FILTLEN; index++) {
+ if (filt_type == 0)
+ x_curr = x_curr + (prev_x[index]);
+ else
+ x_curr = x_curr + (prev_x[index] / 3);
+ }
+ if (filt_type == 0)
+ x_curr = x_curr >> 2;
+ else
+ x_curr = x_curr >> 1;
+ ts_curr->x_position = x_curr;
+
+ }
+
+ /* Update previous X and Y values */
+ for (index = (FILTLEN - 1); index > 0; index--) {
+ prev_x[index] = prev_x[index - 1];
+ prev_y[index] = prev_y[index - 1];
+ }
+
+ /*
+ * Current output will be the most recent past for the
+ * next sample
+ */
+ prev_y[0] = y_curr;
+ prev_x[0] = x_curr;
+
+ return 0;
+
+}
+
+/*!
+ * This function retrieves the current touch screen (X,Y) coordinates.
+ *
+ * @param touch_sample Pointer to touch sample.
+ *
+ * @return This function returns IMX_ADC_SUCCESS if successful.
+ */
+enum IMX_ADC_STATUS imx_adc_get_touch_sample(struct t_touch_screen
+ *touch_sample, int wait_tsi)
+{
+ if (imx_adc_read_ts(touch_sample, wait_tsi))
+ return IMX_ADC_ERROR;
+ if (!imx_adc_filter(touch_sample))
+ return IMX_ADC_SUCCESS;
+ else
+ return IMX_ADC_ERROR;
+}
+EXPORT_SYMBOL(imx_adc_get_touch_sample);
+
+void imx_adc_set_hsync(int on)
+{
+ unsigned long reg;
+ if (imx_adc_ready) {
+ reg = __raw_readl(tsc_base + TGCR);
+ if (on)
+ reg |= TGCR_HSYNC_EN;
+ else
+ reg &= ~TGCR_HSYNC_EN;
+ __raw_writel(reg, tsc_base + TGCR);
+ }
+}
+EXPORT_SYMBOL(imx_adc_set_hsync);
+
+/*!
+ * This is the suspend of power management for the i.MX ADC API.
+ * It supports SAVE and POWER_DOWN state.
+ *
+ * @param pdev the device
+ * @param state the state
+ *
+ * @return This function returns 0 if successful.
+ */
+static int imx_adc_suspend(struct platform_device *pdev, pm_message_t state)
+{
+ unsigned long reg;
+
+ /* Config idle for 4-wire */
+ reg = TSC_4WIRE_PRECHARGE;
+ __raw_writel(reg, tsc_base + TICR);
+
+ reg = TSC_4WIRE_TOUCH_DETECT;
+ __raw_writel(reg, tsc_base + TICR);
+
+ /* enable deep sleep wake up */
+ reg = __raw_readl(tsc_base + TGCR);
+ reg |= TGCR_SLPC;
+ __raw_writel(reg, tsc_base + TGCR);
+
+ /* mask pen down and pen down irq */
+ reg = __raw_readl(tsc_base + TCQCR);
+ reg |= CQCR_PD_MSK;
+ __raw_writel(reg, tsc_base + TCQCR);
+ reg = __raw_readl(tsc_base + TCQMR);
+ reg |= TCQMR_PD_IRQ_MSK;
+ __raw_writel(reg, tsc_base + TCQMR);
+
+ /* Set power mode to off */
+ reg = __raw_readl(tsc_base + TGCR) & ~TGCR_POWER_MASK;
+ reg |= TGCR_POWER_OFF;
+ __raw_writel(reg, tsc_base + TGCR);
+
+ if (device_may_wakeup(&pdev->dev)) {
+ enable_irq_wake(adc_data->irq);
+ } else {
+ suspend_flag = 1;
+ tsc_clk_disable();
+ }
+ return 0;
+};
+
+/*!
+ * This is the resume of power management for the i.MX adc API.
+ * It supports RESTORE state.
+ *
+ * @param pdev the device
+ *
+ * @return This function returns 0 if successful.
+ */
+static int imx_adc_resume(struct platform_device *pdev)
+{
+ unsigned long reg;
+
+ if (device_may_wakeup(&pdev->dev)) {
+ disable_irq_wake(adc_data->irq);
+ } else {
+ suspend_flag = 0;
+ tsc_clk_enable();
+ while (swait > 0) {
+ swait--;
+ wake_up_interruptible(&suspendq);
+ }
+ }
+
+ /* recover power mode */
+ reg = __raw_readl(tsc_base + TGCR) & ~TGCR_POWER_MASK;
+ reg |= TGCR_POWER_SAVE;
+ __raw_writel(reg, tsc_base + TGCR);
+
+ return 0;
+}
+
+/*!
+ * This function implements the open method on an i.MX ADC device.
+ *
+ * @param inode pointer on the node
+ * @param file pointer on the file
+ * @return This function returns 0.
+ */
+static int imx_adc_open(struct inode *inode, struct file *file)
+{
+ while (suspend_flag) {
+ swait++;
+ /* Block if the device is suspended */
+ if (wait_event_interruptible(suspendq, !suspend_flag))
+ return -ERESTARTSYS;
+ }
+ pr_debug("imx_adc : imx_adc_open()\n");
+ return 0;
+}
+
+/*!
+ * This function implements the release method on an i.MX ADC device.
+ *
+ * @param inode pointer on the node
+ * @param file pointer on the file
+ * @return This function returns 0.
+ */
+static int imx_adc_free(struct inode *inode, struct file *file)
+{
+ pr_debug("imx_adc : imx_adc_free()\n");
+ return 0;
+}
+
+/*!
+ * This function initializes all ADC registers with default values. This
+ * function also registers the interrupt events.
+ *
+ * @return This function returns IMX_ADC_SUCCESS if successful.
+ */
+int imx_adc_init(void)
+{
+ unsigned long reg;
+
+ pr_debug("imx_adc_init()\n");
+
+ if (suspend_flag)
+ return -EBUSY;
+
+ tsc_clk_enable();
+
+ /* Reset */
+ tsc_self_reset();
+
+ /* Internal reference */
+ tsc_intref_enable();
+
+ /* Set power mode */
+ reg = __raw_readl(tsc_base + TGCR) & ~TGCR_POWER_MASK;
+ reg |= TGCR_POWER_SAVE;
+ __raw_writel(reg, tsc_base + TGCR);
+
+ imx_tsc_init();
+
+ return IMX_ADC_SUCCESS;
+}
+EXPORT_SYMBOL(imx_adc_init);
+
+/*!
+ * This function disables the ADC, de-registers the interrupt events.
+ *
+ * @return This function returns IMX_ADC_SUCCESS if successful.
+ */
+enum IMX_ADC_STATUS imx_adc_deinit(void)
+{
+ pr_debug("imx_adc_deinit()\n");
+
+ return IMX_ADC_SUCCESS;
+}
+EXPORT_SYMBOL(imx_adc_deinit);
+
+/*!
+ * This function triggers a conversion and returns one sampling result of one
+ * channel.
+ *
+ * @param channel The channel to be sampled
+ * @param result The pointer to the conversion result. The memory
+ * should be allocated by the caller of this function.
+ *
+ * @return This function returns IMX_ADC_SUCCESS if successful.
+ */
+enum IMX_ADC_STATUS imx_adc_convert(enum t_channel channel,
+ unsigned short *result)
+{
+ unsigned long reg;
+ int lastitemid;
+ struct t_touch_screen touch_sample;
+
+ switch (channel) {
+
+ case TS_X_POS:
+ imx_adc_get_touch_sample(&touch_sample, 0);
+ result[0] = touch_sample.x_position;
+
+ /* if no pen down ,recover the register configuration */
+ if (touch_sample.contact_resistance == 0) {
+ reg = __raw_readl(tsc_base + TCQCR);
+ reg &= ~CQCR_QSM_MASK;
+ reg |= CQCR_QSM_PEN;
+ __raw_writel(reg, tsc_base + TCQCR);
+
+ reg = __raw_readl(tsc_base + TCQMR);
+ reg &= ~TCQMR_PD_IRQ_MSK;
+ __raw_writel(reg, tsc_base + TCQMR);
+ }
+ break;
+
+ case TS_Y_POS:
+ imx_adc_get_touch_sample(&touch_sample, 0);
+ result[1] = touch_sample.y_position;
+
+ /* if no pen down ,recover the register configuration */
+ if (touch_sample.contact_resistance == 0) {
+ reg = __raw_readl(tsc_base + TCQCR);
+ reg &= ~CQCR_QSM_MASK;
+ reg |= CQCR_QSM_PEN;
+ __raw_writel(reg, tsc_base + TCQCR);
+
+ reg = __raw_readl(tsc_base + TCQMR);
+ reg &= ~TCQMR_PD_IRQ_MSK;
+ __raw_writel(reg, tsc_base + TCQMR);
+ }
+ break;
+
+ case GER_PURPOSE_ADC0:
+ down(&general_convert_mutex);
+
+ lastitemid = 0;
+ reg = (0xf << CQCR_FIFOWATERMARK_SHIFT) |
+ (lastitemid << CQCR_LAST_ITEM_ID_SHIFT) | CQCR_QSM_FQS;
+ __raw_writel(reg, tsc_base + GCQCR);
+
+ reg = TSC_GENERAL_ADC_GCC0;
+ reg |= (3 << CC_NOS_SHIFT) | (16 << CC_SETTLING_TIME_SHIFT);
+ __raw_writel(reg, tsc_base + GCC0);
+
+ imx_adc_read_general(result);
+ up(&general_convert_mutex);
+ break;
+
+ case GER_PURPOSE_ADC1:
+ down(&general_convert_mutex);
+
+ lastitemid = 0;
+ reg = (0xf << CQCR_FIFOWATERMARK_SHIFT) |
+ (lastitemid << CQCR_LAST_ITEM_ID_SHIFT) | CQCR_QSM_FQS;
+ __raw_writel(reg, tsc_base + GCQCR);
+
+ reg = TSC_GENERAL_ADC_GCC1;
+ reg |= (3 << CC_NOS_SHIFT) | (16 << CC_SETTLING_TIME_SHIFT);
+ __raw_writel(reg, tsc_base + GCC0);
+
+ imx_adc_read_general(result);
+ up(&general_convert_mutex);
+ break;
+
+ case GER_PURPOSE_ADC2:
+ down(&general_convert_mutex);
+
+ lastitemid = 0;
+ reg = (0xf << CQCR_FIFOWATERMARK_SHIFT) |
+ (lastitemid << CQCR_LAST_ITEM_ID_SHIFT) | CQCR_QSM_FQS;
+ __raw_writel(reg, tsc_base + GCQCR);
+
+ reg = TSC_GENERAL_ADC_GCC2;
+ reg |= (3 << CC_NOS_SHIFT) | (16 << CC_SETTLING_TIME_SHIFT);
+ __raw_writel(reg, tsc_base + GCC0);
+
+ imx_adc_read_general(result);
+ up(&general_convert_mutex);
+ break;
+
+ case GER_PURPOSE_MULTICHNNEL:
+ down(&general_convert_mutex);
+
+ reg = TSC_GENERAL_ADC_GCC0;
+ reg |= (3 << CC_NOS_SHIFT) | (16 << CC_SETTLING_TIME_SHIFT);
+ __raw_writel(reg, tsc_base + GCC0);
+
+ reg = TSC_GENERAL_ADC_GCC1;
+ reg |= (3 << CC_NOS_SHIFT) | (16 << CC_SETTLING_TIME_SHIFT);
+ __raw_writel(reg, tsc_base + GCC1);
+
+ reg = TSC_GENERAL_ADC_GCC2;
+ reg |= (3 << CC_NOS_SHIFT) | (16 << CC_SETTLING_TIME_SHIFT);
+ __raw_writel(reg, tsc_base + GCC2);
+
+ reg = (GCQ_ITEM_GCC2 << GCQ_ITEM2_SHIFT) |
+ (GCQ_ITEM_GCC1 << GCQ_ITEM1_SHIFT) |
+ (GCQ_ITEM_GCC0 << GCQ_ITEM0_SHIFT);
+ __raw_writel(reg, tsc_base + GCQ_ITEM_7_0);
+
+ lastitemid = 2;
+ reg = (0xf << CQCR_FIFOWATERMARK_SHIFT) |
+ (lastitemid << CQCR_LAST_ITEM_ID_SHIFT) | CQCR_QSM_FQS;
+ __raw_writel(reg, tsc_base + GCQCR);
+
+ imx_adc_read_general(result);
+ up(&general_convert_mutex);
+ break;
+ default:
+ pr_debug("%s: bad channel number\n", __func__);
+ return IMX_ADC_ERROR;
+ }
+
+ return IMX_ADC_SUCCESS;
+}
+EXPORT_SYMBOL(imx_adc_convert);
+
+/*!
+ * This function triggers a conversion and returns sampling results of each
+ * specified channel.
+ *
+ * @param channels This input parameter is bitmap to specify channels
+ * to be sampled.
+ * @param result The pointer to array to store sampling results.
+ * The memory should be allocated by the caller of this
+ * function.
+ *
+ * @return This function returns IMX_ADC_SUCCESS if successful.
+ */
+enum IMX_ADC_STATUS imx_adc_convert_multichnnel(enum t_channel channels,
+ unsigned short *result)
+{
+ imx_adc_convert(GER_PURPOSE_MULTICHNNEL, result);
+ return IMX_ADC_SUCCESS;
+}
+EXPORT_SYMBOL(imx_adc_convert_multichnnel);
+
+/*!
+ * This function implements IOCTL controls on an i.MX ADC device.
+ *
+ * @param inode pointer on the node
+ * @param file pointer on the file
+ * @param cmd the command
+ * @param arg the parameter
+ * @return This function returns 0 if successful.
+ */
+static int imx_adc_ioctl(struct inode *inode, struct file *file,
+ unsigned int cmd, unsigned long arg)
+{
+ struct t_adc_convert_param *convert_param;
+
+ if ((_IOC_TYPE(cmd) != 'p') && (_IOC_TYPE(cmd) != 'D'))
+ return -ENOTTY;
+
+ while (suspend_flag) {
+ swait++;
+ /* Block if the device is suspended */
+ if (wait_event_interruptible(suspendq, !suspend_flag))
+ return -ERESTARTSYS;
+ }
+
+ switch (cmd) {
+ case IMX_ADC_INIT:
+ pr_debug("init adc\n");
+ CHECK_ERROR(imx_adc_init());
+ break;
+
+ case IMX_ADC_DEINIT:
+ pr_debug("deinit adc\n");
+ CHECK_ERROR(imx_adc_deinit());
+ break;
+
+ case IMX_ADC_CONVERT:
+ convert_param = kmalloc(sizeof(*convert_param), GFP_KERNEL);
+ if (convert_param == NULL)
+ return -ENOMEM;
+ if (copy_from_user(convert_param,
+ (struct t_adc_convert_param *)arg,
+ sizeof(*convert_param))) {
+ kfree(convert_param);
+ return -EFAULT;
+ }
+ CHECK_ERROR_KFREE(imx_adc_convert(convert_param->channel,
+ convert_param->result),
+ (kfree(convert_param)));
+
+ if (copy_to_user((struct t_adc_convert_param *)arg,
+ convert_param, sizeof(*convert_param))) {
+ kfree(convert_param);
+ return -EFAULT;
+ }
+ kfree(convert_param);
+ break;
+
+ case IMX_ADC_CONVERT_MULTICHANNEL:
+ convert_param = kmalloc(sizeof(*convert_param), GFP_KERNEL);
+ if (convert_param == NULL)
+ return -ENOMEM;
+ if (copy_from_user(convert_param,
+ (struct t_adc_convert_param *)arg,
+ sizeof(*convert_param))) {
+ kfree(convert_param);
+ return -EFAULT;
+ }
+ CHECK_ERROR_KFREE(imx_adc_convert_multichnnel
+ (convert_param->channel,
+ convert_param->result),
+ (kfree(convert_param)));
+
+ if (copy_to_user((struct t_adc_convert_param *)arg,
+ convert_param, sizeof(*convert_param))) {
+ kfree(convert_param);
+ return -EFAULT;
+ }
+ kfree(convert_param);
+ break;
+
+ default:
+ pr_debug("imx_adc_ioctl: unsupported ioctl command 0x%x\n",
+ cmd);
+ return -EINVAL;
+ }
+ return 0;
+}
+
+static struct file_operations imx_adc_fops = {
+ .owner = THIS_MODULE,
+ .ioctl = imx_adc_ioctl,
+ .open = imx_adc_open,
+ .release = imx_adc_free,
+};
+
+static int imx_adc_module_probe(struct platform_device *pdev)
+{
+ int ret = 0;
+ int retval;
+ struct device *temp_class;
+ struct resource *res;
+ void __iomem *base;
+
+ /* ioremap the base address */
+ res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+ if (res == NULL) {
+ dev_err(&pdev->dev, "No TSC base address provided\n");
+ goto err_out0;
+ }
+ base = ioremap(res->start, res->end - res->start);
+ if (base == NULL) {
+ dev_err(&pdev->dev, "failed to rebase TSC base address\n");
+ goto err_out0;
+ }
+ tsc_base = (unsigned long)base;
+
+ /* create the chrdev */
+ imx_adc_major = register_chrdev(0, "imx_adc", &imx_adc_fops);
+
+ if (imx_adc_major < 0) {
+ dev_err(&pdev->dev, "Unable to get a major for imx_adc\n");
+ return imx_adc_major;
+ }
+ init_waitqueue_head(&suspendq);
+ init_waitqueue_head(&tsq);
+
+ imx_adc_class = class_create(THIS_MODULE, "imx_adc");
+ if (IS_ERR(imx_adc_class)) {
+ dev_err(&pdev->dev, "Error creating imx_adc class.\n");
+ ret = PTR_ERR(imx_adc_class);
+ goto err_out1;
+ }
+
+ temp_class = device_create(imx_adc_class, NULL,
+ MKDEV(imx_adc_major, 0), NULL, "imx_adc");
+ if (IS_ERR(temp_class)) {
+ dev_err(&pdev->dev, "Error creating imx_adc class device.\n");
+ ret = PTR_ERR(temp_class);
+ goto err_out2;
+ }
+
+ adc_data = kmalloc(sizeof(struct imx_adc_data), GFP_KERNEL);
+ if (adc_data == NULL)
+ return -ENOMEM;
+ adc_data->irq = platform_get_irq(pdev, 0);
+ retval = request_irq(adc_data->irq, imx_adc_interrupt,
+ 0, MOD_NAME, MOD_NAME);
+ if (retval) {
+ return retval;
+ }
+ adc_data->adc_clk = clk_get(&pdev->dev, "tchscrn_clk");
+
+ ret = imx_adc_init();
+
+ if (ret != IMX_ADC_SUCCESS) {
+ dev_err(&pdev->dev, "Error in imx_adc_init.\n");
+ goto err_out4;
+ }
+ imx_adc_ready = 1;
+
+ /* By default, devices should wakeup if they can */
+ /* So TouchScreen is set as "should wakeup" as it can */
+ device_init_wakeup(&pdev->dev, 1);
+
+ pr_info("i.MX ADC at 0x%x irq %d\n", (unsigned int)res->start,
+ adc_data->irq);
+ return ret;
+
+err_out4:
+ device_destroy(imx_adc_class, MKDEV(imx_adc_major, 0));
+err_out2:
+ class_destroy(imx_adc_class);
+err_out1:
+ unregister_chrdev(imx_adc_major, "imx_adc");
+err_out0:
+ return ret;
+}
+
+static int imx_adc_module_remove(struct platform_device *pdev)
+{
+ imx_adc_ready = 0;
+ imx_adc_deinit();
+ device_destroy(imx_adc_class, MKDEV(imx_adc_major, 0));
+ class_destroy(imx_adc_class);
+ unregister_chrdev(imx_adc_major, "imx_adc");
+ free_irq(adc_data->irq, MOD_NAME);
+ kfree(adc_data);
+ pr_debug("i.MX ADC successfully removed\n");
+ return 0;
+}
+
+static struct platform_driver imx_adc_driver = {
+ .driver = {
+ .name = "imx_adc",
+ },
+ .suspend = imx_adc_suspend,
+ .resume = imx_adc_resume,
+ .probe = imx_adc_module_probe,
+ .remove = imx_adc_module_remove,
+};
+
+/*
+ * Initialization and Exit
+ */
+static int __init imx_adc_module_init(void)
+{
+ pr_debug("i.MX ADC driver loading...\n");
+ return platform_driver_register(&imx_adc_driver);
+}
+
+static void __exit imx_adc_module_exit(void)
+{
+ platform_driver_unregister(&imx_adc_driver);
+ pr_debug("i.MX ADC driver successfully unloaded\n");
+}
+
+/*
+ * Module entry points
+ */
+
+module_init(imx_adc_module_init);
+module_exit(imx_adc_module_exit);
+
+MODULE_DESCRIPTION("i.MX ADC device driver");
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_LICENSE("GPL");
diff --git a/drivers/mxc/adc/imx_adc_reg.h b/drivers/mxc/adc/imx_adc_reg.h
new file mode 100644
index 000000000000..71e2d3b21930
--- /dev/null
+++ b/drivers/mxc/adc/imx_adc_reg.h
@@ -0,0 +1,242 @@
+/*
+ * Copyright 2009-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU Lesser General
+ * Public License. You may obtain a copy of the GNU Lesser General
+ * Public License Version 2.1 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/lgpl-license.html
+ * http://www.gnu.org/copyleft/lgpl.html
+ */
+
+#ifndef __IMX_ADC_H__
+#define __IMX_ADC_H__
+
+/* TSC General Config Register */
+#define TGCR 0x000
+#define TGCR_IPG_CLK_EN (1 << 0)
+#define TGCR_TSC_RST (1 << 1)
+#define TGCR_FUNC_RST (1 << 2)
+#define TGCR_SLPC (1 << 4)
+#define TGCR_STLC (1 << 5)
+#define TGCR_HSYNC_EN (1 << 6)
+#define TGCR_HSYNC_POL (1 << 7)
+#define TGCR_POWERMODE_SHIFT 8
+#define TGCR_POWER_OFF (0x0 << TGCR_POWERMODE_SHIFT)
+#define TGCR_POWER_SAVE (0x1 << TGCR_POWERMODE_SHIFT)
+#define TGCR_POWER_ON (0x3 << TGCR_POWERMODE_SHIFT)
+#define TGCR_POWER_MASK (0x3 << TGCR_POWERMODE_SHIFT)
+#define TGCR_INTREFEN (1 << 10)
+#define TGCR_ADCCLKCFG_SHIFT 16
+#define TGCR_PD_EN (1 << 23)
+#define TGCR_PDB_EN (1 << 24)
+#define TGCR_PDBTIME_SHIFT 25
+#define TGCR_PDBTIME128 (0x3f << TGCR_PDBTIME_SHIFT)
+#define TGCR_PDBTIME_MASK (0x7f << TGCR_PDBTIME_SHIFT)
+
+/* TSC General Status Register */
+#define TGSR 0x004
+#define TCQ_INT (1 << 0)
+#define GCQ_INT (1 << 1)
+#define SLP_INT (1 << 2)
+#define TCQ_DMA (1 << 16)
+#define GCQ_DMA (1 << 17)
+
+/* TSC IDLE Config Register */
+#define TICR 0x008
+
+/* TouchScreen Convert Queue FIFO Register */
+#define TCQFIFO 0x400
+/* TouchScreen Convert Queue Control Register */
+#define TCQCR 0x404
+#define CQCR_QSM_SHIFT 0
+#define CQCR_QSM_STOP (0x0 << CQCR_QSM_SHIFT)
+#define CQCR_QSM_PEN (0x1 << CQCR_QSM_SHIFT)
+#define CQCR_QSM_FQS (0x2 << CQCR_QSM_SHIFT)
+#define CQCR_QSM_FQS_PEN (0x3 << CQCR_QSM_SHIFT)
+#define CQCR_QSM_MASK (0x3 << CQCR_QSM_SHIFT)
+#define CQCR_FQS (1 << 2)
+#define CQCR_RPT (1 << 3)
+#define CQCR_LAST_ITEM_ID_SHIFT 4
+#define CQCR_LAST_ITEM_ID_MASK (0xf << CQCR_LAST_ITEM_ID_SHIFT)
+#define CQCR_FIFOWATERMARK_SHIFT 8
+#define CQCR_FIFOWATERMARK_MASK (0xf << CQCR_FIFOWATERMARK_SHIFT)
+#define CQCR_REPEATWAIT_SHIFT 12
+#define CQCR_REPEATWAIT_MASK (0xf << CQCR_REPEATWAIT_SHIFT)
+#define CQCR_QRST (1 << 16)
+#define CQCR_FRST (1 << 17)
+#define CQCR_PD_MSK (1 << 18)
+#define CQCR_PD_CFG (1 << 19)
+
+/* TouchScreen Convert Queue Status Register */
+#define TCQSR 0x408
+#define CQSR_PD (1 << 0)
+#define CQSR_EOQ (1 << 1)
+#define CQSR_FOR (1 << 4)
+#define CQSR_FUR (1 << 5)
+#define CQSR_FER (1 << 6)
+#define CQSR_EMPT (1 << 13)
+#define CQSR_FULL (1 << 14)
+#define CQSR_FDRY (1 << 15)
+
+/* TouchScreen Convert Queue Mask Register */
+#define TCQMR 0x40c
+#define TCQMR_PD_IRQ_MSK (1 << 0)
+#define TCQMR_EOQ_IRQ_MSK (1 << 1)
+#define TCQMR_FOR_IRQ_MSK (1 << 4)
+#define TCQMR_FUR_IRQ_MSK (1 << 5)
+#define TCQMR_FER_IRQ_MSK (1 << 6)
+#define TCQMR_PD_DMA_MSK (1 << 16)
+#define TCQMR_EOQ_DMA_MSK (1 << 17)
+#define TCQMR_FOR_DMA_MSK (1 << 20)
+#define TCQMR_FUR_DMA_MSK (1 << 21)
+#define TCQMR_FER_DMA_MSK (1 << 22)
+#define TCQMR_FDRY_DMA_MSK (1 << 31)
+
+/* TouchScreen Convert Queue ITEM 7~0 */
+#define TCQ_ITEM_7_0 0x420
+
+/* TouchScreen Convert Queue ITEM 15~8 */
+#define TCQ_ITEM_15_8 0x424
+
+#define TCQ_ITEM7_SHIFT 28
+#define TCQ_ITEM6_SHIFT 24
+#define TCQ_ITEM5_SHIFT 20
+#define TCQ_ITEM4_SHIFT 16
+#define TCQ_ITEM3_SHIFT 12
+#define TCQ_ITEM2_SHIFT 8
+#define TCQ_ITEM1_SHIFT 4
+#define TCQ_ITEM0_SHIFT 0
+
+#define TCQ_ITEM_TCC0 0x0
+#define TCQ_ITEM_TCC1 0x1
+#define TCQ_ITEM_TCC2 0x2
+#define TCQ_ITEM_TCC3 0x3
+#define TCQ_ITEM_TCC4 0x4
+#define TCQ_ITEM_TCC5 0x5
+#define TCQ_ITEM_TCC6 0x6
+#define TCQ_ITEM_TCC7 0x7
+#define TCQ_ITEM_GCC7 0x8
+#define TCQ_ITEM_GCC6 0x9
+#define TCQ_ITEM_GCC5 0xa
+#define TCQ_ITEM_GCC4 0xb
+#define TCQ_ITEM_GCC3 0xc
+#define TCQ_ITEM_GCC2 0xd
+#define TCQ_ITEM_GCC1 0xe
+#define TCQ_ITEM_GCC0 0xf
+
+/* TouchScreen Convert Config 0-7 */
+#define TCC0 0x440
+#define TCC1 0x444
+#define TCC2 0x448
+#define TCC3 0x44c
+#define TCC4 0x450
+#define TCC5 0x454
+#define TCC6 0x458
+#define TCC7 0x45c
+#define CC_PEN_IACK (1 << 1)
+#define CC_SEL_REFN_SHIFT 2
+#define CC_SEL_REFN_YNLR (0x1 << CC_SEL_REFN_SHIFT)
+#define CC_SEL_REFN_AGND (0x2 << CC_SEL_REFN_SHIFT)
+#define CC_SEL_REFN_MASK (0x3 << CC_SEL_REFN_SHIFT)
+#define CC_SELIN_SHIFT 4
+#define CC_SELIN_XPUL (0x0 << CC_SELIN_SHIFT)
+#define CC_SELIN_YPLL (0x1 << CC_SELIN_SHIFT)
+#define CC_SELIN_XNUR (0x2 << CC_SELIN_SHIFT)
+#define CC_SELIN_YNLR (0x3 << CC_SELIN_SHIFT)
+#define CC_SELIN_WIPER (0x4 << CC_SELIN_SHIFT)
+#define CC_SELIN_INAUX0 (0x5 << CC_SELIN_SHIFT)
+#define CC_SELIN_INAUX1 (0x6 << CC_SELIN_SHIFT)
+#define CC_SELIN_INAUX2 (0x7 << CC_SELIN_SHIFT)
+#define CC_SELIN_MASK (0x7 << CC_SELIN_SHIFT)
+#define CC_SELREFP_SHIFT 7
+#define CC_SELREFP_YPLL (0x0 << CC_SELREFP_SHIFT)
+#define CC_SELREFP_XPUL (0x1 << CC_SELREFP_SHIFT)
+#define CC_SELREFP_EXT (0x2 << CC_SELREFP_SHIFT)
+#define CC_SELREFP_INT (0x3 << CC_SELREFP_SHIFT)
+#define CC_SELREFP_MASK (0x3 << CC_SELREFP_SHIFT)
+#define CC_XPULSW (1 << 9)
+#define CC_XNURSW_SHIFT 10
+#define CC_XNURSW_HIGH (0x0 << CC_XNURSW_SHIFT)
+#define CC_XNURSW_OFF (0x1 << CC_XNURSW_SHIFT)
+#define CC_XNURSW_LOW (0x3 << CC_XNURSW_SHIFT)
+#define CC_XNURSW_MASK (0x3 << CC_XNURSW_SHIFT)
+#define CC_YPLLSW_SHIFT 12
+#define CC_YPLLSW_MASK (0x3 << CC_YPLLSW_SHIFT)
+#define CC_YNLRSW (1 << 14)
+#define CC_WIPERSW (1 << 15)
+#define CC_NOS_SHIFT 16
+#define CC_YPLLSW_HIGH (0x0 << CC_NOS_SHIFT)
+#define CC_YPLLSW_OFF (0x1 << CC_NOS_SHIFT)
+#define CC_YPLLSW_LOW (0x3 << CC_NOS_SHIFT)
+#define CC_NOS_MASK (0xf << CC_NOS_SHIFT)
+#define CC_IGS (1 << 20)
+#define CC_SETTLING_TIME_SHIFT 24
+#define CC_SETTLING_TIME_MASK (0xff << CC_SETTLING_TIME_SHIFT)
+
+#define TSC_4WIRE_PRECHARGE 0x158c
+#define TSC_4WIRE_TOUCH_DETECT 0x578e
+
+#define TSC_4WIRE_X_MEASUMENT 0x1c90
+#define TSC_4WIRE_Y_MEASUMENT 0x4604
+
+#define TSC_GENERAL_ADC_GCC0 0x17dc
+#define TSC_GENERAL_ADC_GCC1 0x17ec
+#define TSC_GENERAL_ADC_GCC2 0x17fc
+
+/* GeneralADC Convert Queue FIFO Register */
+#define GCQFIFO 0x800
+#define GCQFIFO_ADCOUT_SHIFT 4
+#define GCQFIFO_ADCOUT_MASK (0xfff << GCQFIFO_ADCOUT_SHIFT)
+/* GeneralADC Convert Queue Control Register */
+#define GCQCR 0x804
+/* GeneralADC Convert Queue Status Register */
+#define GCQSR 0x808
+/* GeneralADC Convert Queue Mask Register */
+#define GCQMR 0x80c
+
+/* GeneralADC Convert Queue ITEM 7~0 */
+#define GCQ_ITEM_7_0 0x820
+/* GeneralADC Convert Queue ITEM 15~8 */
+#define GCQ_ITEM_15_8 0x824
+
+#define GCQ_ITEM7_SHIFT 28
+#define GCQ_ITEM6_SHIFT 24
+#define GCQ_ITEM5_SHIFT 20
+#define GCQ_ITEM4_SHIFT 16
+#define GCQ_ITEM3_SHIFT 12
+#define GCQ_ITEM2_SHIFT 8
+#define GCQ_ITEM1_SHIFT 4
+#define GCQ_ITEM0_SHIFT 0
+
+#define GCQ_ITEM_GCC0 0x0
+#define GCQ_ITEM_GCC1 0x1
+#define GCQ_ITEM_GCC2 0x2
+#define GCQ_ITEM_GCC3 0x3
+
+/* GeneralADC Convert Config 0-7 */
+#define GCC0 0x840
+#define GCC1 0x844
+#define GCC2 0x848
+#define GCC3 0x84c
+#define GCC4 0x850
+#define GCC5 0x854
+#define GCC6 0x858
+#define GCC7 0x85c
+
+/* TSC Test Register R/W */
+#define TTR 0xc00
+/* TSC Monitor Register 1, 2 */
+#define MNT1 0xc04
+#define MNT2 0xc04
+
+#define DETECT_ITEM_ID_1 1
+#define DETECT_ITEM_ID_2 5
+#define TS_X_ITEM_ID 2
+#define TS_Y_ITEM_ID 3
+#define TSI_DATA 1
+#define FQS_DATA 0
+
+#endif /* __IMX_ADC_H__ */
diff --git a/drivers/mxc/amd-gpu/Kconfig b/drivers/mxc/amd-gpu/Kconfig
new file mode 100644
index 000000000000..629d8cbbc989
--- /dev/null
+++ b/drivers/mxc/amd-gpu/Kconfig
@@ -0,0 +1,13 @@
+#
+# Bluetooth configuration
+#
+
+menu "MXC GPU support"
+
+config MXC_AMD_GPU
+ tristate "MXC GPU support"
+ depends on ARCH_MX35 || ARCH_MX51 || ARCH_MX53 || ARCH_MX50
+ ---help---
+ Say Y to get the GPU driver support.
+
+endmenu
diff --git a/drivers/mxc/amd-gpu/Makefile b/drivers/mxc/amd-gpu/Makefile
new file mode 100644
index 000000000000..84cf02e5b3a3
--- /dev/null
+++ b/drivers/mxc/amd-gpu/Makefile
@@ -0,0 +1,31 @@
+EXTRA_CFLAGS := \
+ -D_LINUX \
+ -I$(obj)/include \
+ -I$(obj)/include/api \
+ -I$(obj)/include/ucode \
+ -I$(obj)/platform/hal/linux \
+ -I$(obj)/os/include \
+ -I$(obj)/os/kernel/include \
+ -I$(obj)/os/user/include
+
+obj-$(CONFIG_MXC_AMD_GPU) += gpu.o
+gpu-objs += common/gsl_cmdstream.o \
+ common/gsl_cmdwindow.o \
+ common/gsl_context.o \
+ common/gsl_debug_pm4.o \
+ common/gsl_device.o \
+ common/gsl_drawctxt.o \
+ common/gsl_driver.o \
+ common/gsl_g12.o \
+ common/gsl_intrmgr.o \
+ common/gsl_memmgr.o \
+ common/gsl_mmu.o \
+ common/gsl_ringbuffer.o \
+ common/gsl_sharedmem.o \
+ common/gsl_yamato.o \
+ platform/hal/linux/gsl_linux_map.o \
+ platform/hal/linux/gsl_kmod.o \
+ platform/hal/linux/gsl_hal.o \
+ platform/hal/linux/gsl_kmod_cleanup.o \
+ platform/hal/linux/misc.o \
+ os/kernel/src/linux/kos_lib.o
diff --git a/drivers/mxc/amd-gpu/common/gsl_cmdstream.c b/drivers/mxc/amd-gpu/common/gsl_cmdstream.c
new file mode 100644
index 000000000000..4f0d107f2f67
--- /dev/null
+++ b/drivers/mxc/amd-gpu/common/gsl_cmdstream.c
@@ -0,0 +1,267 @@
+/* Copyright (c) 2009-2010, Code Aurora Forum. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 and
+ * only version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that 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.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
+ *
+ */
+
+#include "gsl.h"
+#include "gsl_hal.h"
+#include "gsl_cmdstream.h"
+
+#ifdef GSL_LOCKING_FINEGRAIN
+#define GSL_CMDSTREAM_MUTEX_CREATE() device->cmdstream_mutex = kos_mutex_create("gsl_cmdstream"); \
+ if (!device->cmdstream_mutex) return (GSL_FAILURE);
+#define GSL_CMDSTREAM_MUTEX_LOCK() kos_mutex_lock(device->cmdstream_mutex)
+#define GSL_CMDSTREAM_MUTEX_UNLOCK() kos_mutex_unlock(device->cmdstream_mutex)
+#define GSL_CMDSTREAM_MUTEX_FREE() kos_mutex_free(device->cmdstream_mutex); device->cmdstream_mutex = 0;
+#else
+#define GSL_CMDSTREAM_MUTEX_CREATE()
+#define GSL_CMDSTREAM_MUTEX_LOCK()
+#define GSL_CMDSTREAM_MUTEX_UNLOCK()
+#define GSL_CMDSTREAM_MUTEX_FREE()
+#endif
+
+
+//////////////////////////////////////////////////////////////////////////////
+// functions
+//////////////////////////////////////////////////////////////////////////////
+
+int
+kgsl_cmdstream_init(gsl_device_t *device)
+{
+ GSL_CMDSTREAM_MUTEX_CREATE();
+
+ return GSL_SUCCESS;
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_cmdstream_close(gsl_device_t *device)
+{
+ GSL_CMDSTREAM_MUTEX_FREE();
+
+ return GSL_SUCCESS;
+}
+
+//----------------------------------------------------------------------------
+
+gsl_timestamp_t
+kgsl_cmdstream_readtimestamp0(gsl_deviceid_t device_id, gsl_timestamp_type_t type)
+{
+ gsl_timestamp_t timestamp = -1;
+ gsl_device_t* device = &gsl_driver.device[device_id-1];
+ kgsl_log_write( KGSL_LOG_GROUP_COMMAND | KGSL_LOG_LEVEL_TRACE,
+ "--> gsl_timestamp_t kgsl_cmdstream_readtimestamp(gsl_deviceid_t device_id=%d gsl_timestamp_type_t type=%d)\n", device_id, type );
+#if (defined(GSL_BLD_G12) && defined(IRQTHREAD_POLL))
+ kos_event_signal(device->irqthread_event);
+#endif
+ if (type == GSL_TIMESTAMP_CONSUMED)
+ {
+ // start-of-pipeline timestamp
+ GSL_CMDSTREAM_GET_SOP_TIMESTAMP(device, (unsigned int*)&timestamp);
+ }
+ else if (type == GSL_TIMESTAMP_RETIRED)
+ {
+ // end-of-pipeline timestamp
+ GSL_CMDSTREAM_GET_EOP_TIMESTAMP(device, (unsigned int*)&timestamp);
+ }
+ kgsl_log_write( KGSL_LOG_GROUP_COMMAND | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_ringbuffer_readtimestamp. Return value %d\n", timestamp );
+ return (timestamp);
+}
+
+//----------------------------------------------------------------------------
+
+KGSL_API gsl_timestamp_t
+kgsl_cmdstream_readtimestamp(gsl_deviceid_t device_id, gsl_timestamp_type_t type)
+{
+ gsl_timestamp_t timestamp = -1;
+ GSL_API_MUTEX_LOCK();
+ timestamp = kgsl_cmdstream_readtimestamp0(device_id, type);
+ GSL_API_MUTEX_UNLOCK();
+ return timestamp;
+}
+
+//----------------------------------------------------------------------------
+
+KGSL_API int
+kgsl_cmdstream_issueibcmds(gsl_deviceid_t device_id, int drawctxt_index, gpuaddr_t ibaddr, int sizedwords, gsl_timestamp_t *timestamp, unsigned int flags)
+{
+ gsl_device_t* device = &gsl_driver.device[device_id-1];
+ int status = GSL_FAILURE;
+ GSL_API_MUTEX_LOCK();
+
+ kgsl_device_active(device);
+
+ if (device->ftbl.cmdstream_issueibcmds)
+ {
+ status = device->ftbl.cmdstream_issueibcmds(device, drawctxt_index, ibaddr, sizedwords, timestamp, flags);
+ }
+ GSL_API_MUTEX_UNLOCK();
+ return status;
+}
+
+//----------------------------------------------------------------------------
+
+KGSL_API int
+kgsl_add_timestamp(gsl_deviceid_t device_id, gsl_timestamp_t *timestamp)
+{
+ gsl_device_t* device = &gsl_driver.device[device_id-1];
+ int status = GSL_FAILURE;
+ GSL_API_MUTEX_LOCK();
+ if (device->ftbl.device_addtimestamp)
+ {
+ status = device->ftbl.device_addtimestamp(device, timestamp);
+ }
+ GSL_API_MUTEX_UNLOCK();
+ return status;
+}
+
+//----------------------------------------------------------------------------
+
+KGSL_API
+int kgsl_cmdstream_waittimestamp(gsl_deviceid_t device_id, gsl_timestamp_t timestamp, unsigned int timeout)
+{
+ gsl_device_t* device = &gsl_driver.device[device_id-1];
+ int status = GSL_FAILURE;
+ if (device->ftbl.device_waittimestamp)
+ {
+ status = device->ftbl.device_waittimestamp(device, timestamp, timeout);
+ }
+ return status;
+}
+
+//----------------------------------------------------------------------------
+
+void
+kgsl_cmdstream_memqueue_drain(gsl_device_t *device)
+{
+ gsl_memnode_t *memnode, *nextnode, *freehead;
+ gsl_timestamp_t timestamp, ts_processed;
+ gsl_memqueue_t *memqueue = &device->memqueue;
+
+ GSL_CMDSTREAM_MUTEX_LOCK();
+
+ // check head
+ if (memqueue->head == NULL)
+ {
+ GSL_CMDSTREAM_MUTEX_UNLOCK();
+ return;
+ }
+ // get current EOP timestamp
+ ts_processed = kgsl_cmdstream_readtimestamp0(device->id, GSL_TIMESTAMP_RETIRED);
+ timestamp = memqueue->head->timestamp;
+ // check head timestamp
+ if (!(((ts_processed - timestamp) >= 0) || ((ts_processed - timestamp) < -GSL_TIMESTAMP_EPSILON)))
+ {
+ GSL_CMDSTREAM_MUTEX_UNLOCK();
+ return;
+ }
+ memnode = memqueue->head;
+ freehead = memqueue->head;
+ // get node list to free
+ for(;;)
+ {
+ nextnode = memnode->next;
+ if (nextnode == NULL)
+ {
+ // entire queue drained
+ memqueue->head = NULL;
+ memqueue->tail = NULL;
+ break;
+ }
+ timestamp = nextnode->timestamp;
+ if (!(((ts_processed - timestamp) >= 0) || ((ts_processed - timestamp) < -GSL_TIMESTAMP_EPSILON)))
+ {
+ // drained up to a point
+ memqueue->head = nextnode;
+ memnode->next = NULL;
+ break;
+ }
+ memnode = nextnode;
+ }
+ // free nodes
+ while (freehead)
+ {
+ memnode = freehead;
+ freehead = memnode->next;
+ kgsl_sharedmem_free0(&memnode->memdesc, memnode->pid);
+ kos_free(memnode);
+ }
+
+ GSL_CMDSTREAM_MUTEX_UNLOCK();
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_cmdstream_freememontimestamp(gsl_deviceid_t device_id, gsl_memdesc_t *memdesc, gsl_timestamp_t timestamp, gsl_timestamp_type_t type)
+{
+ gsl_memnode_t *memnode;
+ gsl_device_t *device = &gsl_driver.device[device_id-1];
+ gsl_memqueue_t *memqueue;
+ (void)type; // unref. For now just use EOP timestamp
+
+ GSL_API_MUTEX_LOCK();
+ GSL_CMDSTREAM_MUTEX_LOCK();
+
+ memqueue = &device->memqueue;
+
+ memnode = kos_malloc(sizeof(gsl_memnode_t));
+
+ if (!memnode)
+ {
+ // other solution is to idle and free which given that the upper level driver probably wont check, probably a better idea
+ GSL_CMDSTREAM_MUTEX_UNLOCK();
+ GSL_API_MUTEX_UNLOCK();
+ return (GSL_FAILURE);
+ }
+
+ memnode->timestamp = timestamp;
+ memnode->pid = GSL_CALLER_PROCESSID_GET();
+ memnode->next = NULL;
+ kos_memcpy(&memnode->memdesc, memdesc, sizeof(gsl_memdesc_t));
+
+ // add to end of queue
+ if (memqueue->tail != NULL)
+ {
+ memqueue->tail->next = memnode;
+ memqueue->tail = memnode;
+ }
+ else
+ {
+ KOS_ASSERT(memqueue->head == NULL);
+ memqueue->head = memnode;
+ memqueue->tail = memnode;
+ }
+
+ GSL_CMDSTREAM_MUTEX_UNLOCK();
+ GSL_API_MUTEX_UNLOCK();
+
+ return (GSL_SUCCESS);
+}
+
+static int kgsl_cmdstream_timestamp_cmp(gsl_timestamp_t ts_new, gsl_timestamp_t ts_old)
+{
+ gsl_timestamp_t ts_diff = ts_new - ts_old;
+ return (ts_diff >= 0) || (ts_diff < -GSL_TIMESTAMP_EPSILON);
+}
+
+int kgsl_cmdstream_check_timestamp(gsl_deviceid_t device_id, gsl_timestamp_t timestamp)
+{
+ gsl_timestamp_t ts_processed;
+ ts_processed = kgsl_cmdstream_readtimestamp0(device_id, GSL_TIMESTAMP_RETIRED);
+ return kgsl_cmdstream_timestamp_cmp(ts_processed, timestamp);
+}
diff --git a/drivers/mxc/amd-gpu/common/gsl_cmdwindow.c b/drivers/mxc/amd-gpu/common/gsl_cmdwindow.c
new file mode 100644
index 000000000000..d19832d8da44
--- /dev/null
+++ b/drivers/mxc/amd-gpu/common/gsl_cmdwindow.c
@@ -0,0 +1,161 @@
+/* Copyright (c) 2002,2007-2010, Code Aurora Forum. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 and
+ * only version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that 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.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
+ *
+ */
+
+#include "gsl.h"
+#include "gsl_hal.h"
+
+#ifdef GSL_BLD_G12
+
+//////////////////////////////////////////////////////////////////////////////
+// defines
+//////////////////////////////////////////////////////////////////////////////
+#define GSL_CMDWINDOW_TARGET_MASK 0x000000FF
+#define GSL_CMDWINDOW_ADDR_MASK 0x00FFFF00
+#define GSL_CMDWINDOW_TARGET_SHIFT 0
+#define GSL_CMDWINDOW_ADDR_SHIFT 8
+
+
+//////////////////////////////////////////////////////////////////////////////
+// macros
+//////////////////////////////////////////////////////////////////////////////
+#ifdef GSL_LOCKING_FINEGRAIN
+#define GSL_CMDWINDOW_MUTEX_CREATE() device->cmdwindow_mutex = kos_mutex_create("gsl_cmdwindow"); \
+ if (!device->cmdwindow_mutex) return (GSL_FAILURE);
+#define GSL_CMDWINDOW_MUTEX_LOCK() kos_mutex_lock(device->cmdwindow_mutex)
+#define GSL_CMDWINDOW_MUTEX_UNLOCK() kos_mutex_unlock(device->cmdwindow_mutex)
+#define GSL_CMDWINDOW_MUTEX_FREE() kos_mutex_free(device->cmdwindow_mutex); device->cmdwindow_mutex = 0;
+#else
+#define GSL_CMDWINDOW_MUTEX_CREATE()
+#define GSL_CMDWINDOW_MUTEX_LOCK()
+#define GSL_CMDWINDOW_MUTEX_UNLOCK()
+#define GSL_CMDWINDOW_MUTEX_FREE()
+#endif
+
+
+//////////////////////////////////////////////////////////////////////////////
+// functions
+//////////////////////////////////////////////////////////////////////////////
+
+int
+kgsl_cmdwindow_init(gsl_device_t *device)
+{
+ GSL_CMDWINDOW_MUTEX_CREATE();
+
+ return (GSL_SUCCESS);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_cmdwindow_close(gsl_device_t *device)
+{
+ GSL_CMDWINDOW_MUTEX_FREE();
+
+ return (GSL_SUCCESS);
+}
+
+#endif // GSL_BLD_G12
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_cmdwindow_write0(gsl_deviceid_t device_id, gsl_cmdwindow_t target, unsigned int addr, unsigned int data)
+{
+#ifdef GSL_BLD_G12
+ gsl_device_t *device;
+ unsigned int cmdwinaddr;
+ unsigned int cmdstream;
+
+ kgsl_log_write( KGSL_LOG_GROUP_COMMAND | KGSL_LOG_LEVEL_TRACE,
+ "--> int kgsl_cmdwindow_write( gsl_device_id_t device_id=%d, gsl_cmdwindow_t target=%d, unsigned int addr=0x%08x, unsigned int data=0x%08x)\n", device_id, target, addr, data );
+
+ device = &gsl_driver.device[device_id-1]; // device_id is 1 based
+
+ if (target < GSL_CMDWINDOW_MIN || target > GSL_CMDWINDOW_MAX)
+ {
+ kgsl_log_write( KGSL_LOG_GROUP_COMMAND | KGSL_LOG_LEVEL_ERROR, "ERROR: Invalid target.\n" );
+ kgsl_log_write( KGSL_LOG_GROUP_COMMAND | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_cmdwindow_write. Return value %B\n", GSL_FAILURE );
+ return (GSL_FAILURE);
+ }
+
+ if ((!(device->flags & GSL_FLAGS_INITIALIZED) && target == GSL_CMDWINDOW_MMU) ||
+ (!(device->flags & GSL_FLAGS_STARTED) && target != GSL_CMDWINDOW_MMU))
+ {
+ kgsl_log_write( KGSL_LOG_GROUP_COMMAND | KGSL_LOG_LEVEL_ERROR, "ERROR: Invalid device state to write to selected targer.\n" );
+ kgsl_log_write( KGSL_LOG_GROUP_COMMAND | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_cmdwindow_write. Return value %B\n", GSL_FAILURE );
+ return (GSL_FAILURE);
+ }
+
+ // set command stream
+ if (target == GSL_CMDWINDOW_MMU)
+ {
+#ifdef GSL_NO_MMU
+ return (GSL_SUCCESS);
+#endif
+ cmdstream = ADDR_VGC_MMUCOMMANDSTREAM;
+ }
+ else
+ {
+ cmdstream = ADDR_VGC_COMMANDSTREAM;
+ }
+
+
+ // set command window address
+ cmdwinaddr = ((target << GSL_CMDWINDOW_TARGET_SHIFT) & GSL_CMDWINDOW_TARGET_MASK);
+ cmdwinaddr |= ((addr << GSL_CMDWINDOW_ADDR_SHIFT) & GSL_CMDWINDOW_ADDR_MASK);
+
+ GSL_CMDWINDOW_MUTEX_LOCK();
+
+#ifndef GSL_NO_MMU
+ // set mmu pagetable
+ kgsl_mmu_setpagetable(device, GSL_CALLER_PROCESSID_GET());
+#endif
+
+ // write command window address
+ device->ftbl.device_regwrite(device, (cmdstream)>>2, cmdwinaddr);
+
+ // write data
+ device->ftbl.device_regwrite(device, (cmdstream)>>2, data);
+
+ GSL_CMDWINDOW_MUTEX_UNLOCK();
+
+ kgsl_log_write( KGSL_LOG_GROUP_COMMAND | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_cmdwindow_write. Return value %B\n", GSL_SUCCESS );
+
+ return (GSL_SUCCESS);
+#else
+ // unreferenced formal parameter
+ (void) device_id;
+ (void) target;
+ (void) addr;
+ (void) data;
+
+ return (GSL_FAILURE);
+#endif // GSL_BLD_G12
+}
+
+//----------------------------------------------------------------------------
+
+KGSL_API int
+kgsl_cmdwindow_write(gsl_deviceid_t device_id, gsl_cmdwindow_t target, unsigned int addr, unsigned int data)
+{
+ int status = GSL_SUCCESS;
+ GSL_API_MUTEX_LOCK();
+ status = kgsl_cmdwindow_write0(device_id, target, addr, data);
+ GSL_API_MUTEX_UNLOCK();
+ return status;
+}
diff --git a/drivers/mxc/amd-gpu/common/gsl_context.c b/drivers/mxc/amd-gpu/common/gsl_context.c
new file mode 100644
index 000000000000..c999247b3afd
--- /dev/null
+++ b/drivers/mxc/amd-gpu/common/gsl_context.c
@@ -0,0 +1,74 @@
+/* Copyright (c) 2008-2010, Advanced Micro Devices. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 and
+ * only version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that 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.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
+ *
+ */
+
+#include "gsl.h"
+#include "gsl_hal.h"
+#include "gsl_context.h"
+
+//////////////////////////////////////////////////////////////////////////////
+// functions
+//////////////////////////////////////////////////////////////////////////////
+
+KGSL_API int
+kgsl_context_create(gsl_deviceid_t device_id, gsl_context_type_t type, unsigned int *drawctxt_id, gsl_flags_t flags)
+{
+ gsl_device_t* device = &gsl_driver.device[device_id-1];
+ int status;
+
+ GSL_API_MUTEX_LOCK();
+
+ if (device->ftbl.context_create)
+ {
+ status = device->ftbl.context_create(device, type, drawctxt_id, flags);
+ }
+ else
+ {
+ status = GSL_FAILURE;
+ }
+
+ GSL_API_MUTEX_UNLOCK();
+
+ return status;
+}
+
+//----------------------------------------------------------------------------
+
+KGSL_API int
+kgsl_context_destroy(gsl_deviceid_t device_id, unsigned int drawctxt_id)
+{
+ gsl_device_t* device = &gsl_driver.device[device_id-1];
+ int status;
+
+ GSL_API_MUTEX_LOCK();
+
+ if (device->ftbl.context_destroy)
+ {
+ status = device->ftbl.context_destroy(device, drawctxt_id);
+ }
+ else
+ {
+ status = GSL_FAILURE;
+ }
+
+ GSL_API_MUTEX_UNLOCK();
+
+ return status;
+}
+
+//----------------------------------------------------------------------------
+
diff --git a/drivers/mxc/amd-gpu/common/gsl_debug_pm4.c b/drivers/mxc/amd-gpu/common/gsl_debug_pm4.c
new file mode 100644
index 000000000000..847df8dbe386
--- /dev/null
+++ b/drivers/mxc/amd-gpu/common/gsl_debug_pm4.c
@@ -0,0 +1,1015 @@
+/* Copyright (c) 2008-2010, Advanced Micro Devices. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 and
+ * only version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that 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.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
+ *
+ */
+
+#include "gsl.h"
+#include "gsl_hal.h"
+
+#if defined(_WIN32) && defined (GSL_BLD_YAMATO)
+
+#include <stdio.h>
+#include <string.h>
+#include <stdarg.h>
+
+//#define PM4_DEBUG_USE_MEMBUF
+
+#ifdef PM4_DEBUG_USE_MEMBUF
+
+#define MEMBUF_SIZE 100000
+#define BUFFER_END_MARGIN 1000
+char memBuf[MEMBUF_SIZE];
+static int writePtr = 0;
+static unsigned int lineNumber = 0;
+//#define fprintf(A,...); writePtr += sprintf( memBuf+writePtr, __VA_ARGS__ ); sprintf( memBuf+writePtr, "###" ); if( writePtr > MEMBUF_SIZE-BUFFER_END_MARGIN ) { memset(memBuf+writePtr, '#', MEMBUF_SIZE-writePtr); writePtr = 0; }
+#define FILE char
+#define fopen(X,Y) 0
+#define fclose(X)
+
+int printString( FILE *_File, const char * _Format, ...)
+{
+ int ret;
+ va_list ap;
+ (void)_File;
+
+ va_start(ap, _Format);
+ if( writePtr > 0 && memBuf[writePtr-1] == '\n' )
+ {
+ // Add line number if last written character was newline
+ writePtr += sprintf( memBuf+writePtr, "%d: ", lineNumber++ );
+ }
+ ret = vsprintf(memBuf+writePtr, _Format, ap);
+ writePtr += ret;
+ sprintf( memBuf+writePtr, "###" );
+ if( writePtr > MEMBUF_SIZE-BUFFER_END_MARGIN )
+ {
+ memset(memBuf+writePtr, '#', MEMBUF_SIZE-writePtr);
+ writePtr = 0;
+ }
+
+ va_end(ap);
+
+ return ret;
+}
+
+#else
+
+int printString( FILE *_File, const char * _Format, ...)
+{
+ int ret;
+ va_list ap;
+ va_start(ap, _Format);
+ ret = vfprintf(_File, _Format, ap);
+ va_end(ap);
+ fflush(_File);
+ return ret;
+}
+
+#endif
+
+#ifndef _WIN32_WCE
+#define PM4_DUMPFILE "pm4dump.txt"
+#else
+#define PM4_DUMPFILE "\\Release\\pm4dump.txt"
+#endif
+
+//////////////////////////////////////////////////////////////////////////////
+// defines
+//////////////////////////////////////////////////////////////////////////////
+#define EXPAND_OPCODE(opcode) ((opcode << 8) | PM4_PKT_MASK)
+
+#define GetString_uint GetString_int
+#define GetString_fixed12_4(val, szValue) GetString_fixed(val, 12, 4, szValue)
+#define GetString_signedint15(val, szValue) GetString_signedint(val, 15, szValue)
+
+// Need a prototype for this function
+void WritePM4Packet_Type3(FILE* pFile, unsigned int dwHeader, unsigned int** ppBuffer);
+
+static int indirectionLevel = 0;
+
+
+//////////////////////////////////////////////////////////////////////////////
+// functions
+//////////////////////////////////////////////////////////////////////////////
+
+void WriteDWORD(FILE* pFile, unsigned int dwValue)
+{
+ printString(pFile, " 0x%08x", dwValue);
+}
+
+void WriteDWORD2(FILE* pFile, unsigned int dwValue)
+{
+ printString(pFile, " 0x%08x\n", dwValue);
+}
+
+//----------------------------------------------------------------------------
+
+// Generate the GetString_## functions for enumerated types
+#define START_ENUMTYPE(__type) \
+void GetString_##__type(unsigned int val, char* szValue) \
+{ \
+ switch(val) \
+ {
+
+#define GENERATE_ENUM(__enumname, __val) \
+ case __val: \
+ kos_strcpy(szValue, #__enumname); \
+ break;
+
+#define END_ENUMTYPE(__type) \
+ default: \
+ sprintf(szValue, "Unknown: %d", val); \
+ break; \
+ } \
+}
+
+#include _YAMATO_GENENUM_H
+
+//----------------------------------------------------------------------------
+
+void
+GetString_hex(unsigned int val, char* szValue)
+{
+ sprintf(szValue, "0x%x", val);
+}
+
+//----------------------------------------------------------------------------
+
+void
+GetString_float(unsigned int val, char* szValue)
+{
+ float fval = *((float*) &val);
+ sprintf(szValue, "%.4f", fval);
+}
+
+//----------------------------------------------------------------------------
+
+void
+GetString_bool(unsigned int val, char* szValue)
+{
+ if (val)
+ {
+ kos_strcpy(szValue, "TRUE");
+ }
+ else
+ {
+ kos_strcpy(szValue, "FALSE");
+ }
+}
+
+//----------------------------------------------------------------------------
+
+void GetString_int(unsigned int val, char* szValue)
+{
+ sprintf(szValue, "%d", val);
+}
+
+//----------------------------------------------------------------------------
+
+void
+GetString_intMinusOne(unsigned int val, char* szValue)
+{
+ sprintf(szValue, "%d+1", val);
+}
+
+//----------------------------------------------------------------------------
+
+void
+GetString_signedint(unsigned int val, unsigned int dwNumBits, char* szValue)
+{
+ int nValue = val;
+
+ if (val & (1<<(dwNumBits-1)))
+ {
+ nValue |= 0xffffffff << dwNumBits;
+ }
+
+ sprintf(szValue, "%d", nValue);
+}
+
+//----------------------------------------------------------------------------
+
+void
+GetString_fixed(unsigned int val, unsigned int dwNumInt, unsigned int dwNumFrac, char* szValue)
+{
+
+ (void) dwNumInt; // unreferenced formal parameter
+
+ if (val>>dwNumFrac == 0)
+ {
+ // Integer part is 0 - just print out the fractional part
+ sprintf(szValue, "%d/%d",
+ val&((1<<dwNumFrac)-1),
+ 1<<dwNumFrac);
+ }
+ else
+ {
+ // Print out as a mixed fraction
+ sprintf(szValue, "%d %d/%d",
+ val>>dwNumFrac,
+ val&((1<<dwNumFrac)-1),
+ 1<<dwNumFrac);
+ }
+}
+
+//----------------------------------------------------------------------------
+
+void
+GetString_Register(unsigned int dwBaseIndex, unsigned int dwValue, char* pszString)
+{
+ char szValue[64];
+ char szField[128];
+
+ // Empty the string
+ pszString[0] = '\0';
+
+ switch(dwBaseIndex)
+ {
+#define START_REGISTER(__reg) \
+ case mm##__reg: \
+ { \
+ reg##__reg reg; \
+ reg.u32All = dwValue; \
+ strcat(pszString, #__reg ", (");
+
+#define GENERATE_FIELD(__name, __type) \
+ GetString_##__type(reg.bitfields.__name, szValue); \
+ sprintf(szField, #__name " = %s, ", szValue); \
+ strcat(pszString, szField);
+
+#define END_REGISTER(__reg) \
+ pszString[strlen(pszString)-2]='\0'; \
+ strcat(pszString, ")"); \
+ } \
+ break;
+
+#include _YAMATO_GENREG_H
+
+ default:
+ break;
+ }
+}
+
+//----------------------------------------------------------------------------
+
+void
+GetString_Type3Opcode(unsigned int opcode, char* pszValue)
+{
+switch(EXPAND_OPCODE(opcode))
+ {
+#define TYPE3SWITCH(__opcode) \
+ case PM4_PACKET3_##__opcode: \
+ kos_strcpy(pszValue, #__opcode); \
+ break;
+
+ TYPE3SWITCH(NOP)
+ TYPE3SWITCH(IB_PREFETCH_END)
+ TYPE3SWITCH(SUBBLK_PREFETCH)
+
+ TYPE3SWITCH(INSTR_PREFETCH)
+ TYPE3SWITCH(REG_RMW)
+ TYPE3SWITCH(DRAW_INDX)
+ TYPE3SWITCH(VIZ_QUERY)
+ TYPE3SWITCH(SET_STATE)
+ TYPE3SWITCH(WAIT_FOR_IDLE)
+ TYPE3SWITCH(IM_LOAD)
+ TYPE3SWITCH(IM_LOAD_IMMEDIATE)
+ TYPE3SWITCH(SET_CONSTANT)
+ TYPE3SWITCH(LOAD_CONSTANT_CONTEXT)
+ TYPE3SWITCH(LOAD_ALU_CONSTANT)
+
+ TYPE3SWITCH(DRAW_INDX_BIN)
+ TYPE3SWITCH(3D_DRAW_INDX_2_BIN)
+ TYPE3SWITCH(3D_DRAW_INDX_2)
+ TYPE3SWITCH(INDIRECT_BUFFER_PFD)
+ TYPE3SWITCH(INVALIDATE_STATE)
+ TYPE3SWITCH(WAIT_REG_MEM)
+ TYPE3SWITCH(MEM_WRITE)
+ TYPE3SWITCH(REG_TO_MEM)
+ TYPE3SWITCH(INDIRECT_BUFFER)
+
+ TYPE3SWITCH(CP_INTERRUPT)
+ TYPE3SWITCH(COND_EXEC)
+ TYPE3SWITCH(COND_WRITE)
+ TYPE3SWITCH(EVENT_WRITE)
+ TYPE3SWITCH(INSTR_MATCH)
+ TYPE3SWITCH(ME_INIT)
+ TYPE3SWITCH(CONST_PREFETCH)
+ TYPE3SWITCH(MEM_WRITE_CNTR)
+
+ TYPE3SWITCH(SET_BIN_MASK)
+ TYPE3SWITCH(SET_BIN_SELECT)
+ TYPE3SWITCH(WAIT_REG_EQ)
+ TYPE3SWITCH(WAIT_REG_GTE)
+ TYPE3SWITCH(INCR_UPDT_STATE)
+ TYPE3SWITCH(INCR_UPDT_CONST)
+ TYPE3SWITCH(INCR_UPDT_INSTR)
+ TYPE3SWITCH(EVENT_WRITE_SHD)
+ TYPE3SWITCH(EVENT_WRITE_CFL)
+ TYPE3SWITCH(EVENT_WRITE_ZPD)
+ TYPE3SWITCH(WAIT_UNTIL_READ)
+ TYPE3SWITCH(WAIT_IB_PFD_COMPLETE)
+ TYPE3SWITCH(CONTEXT_UPDATE)
+
+ default:
+ sprintf(pszValue, "Unknown: %d", opcode);
+ break;
+ }
+}
+
+//----------------------------------------------------------------------------
+
+void
+WritePM4Packet_Type0(FILE* pFile, unsigned int dwHeader, unsigned int** ppBuffer)
+{
+ pm4_type0 header = *((pm4_type0*) &dwHeader);
+ unsigned int* pBuffer = *ppBuffer;
+ unsigned int dwIndex;
+
+ WriteDWORD(pFile, dwHeader);
+ printString(pFile, " // Type-0 packet (BASE_INDEX = 0x%x, ONE_REG_WR = %d, COUNT = %d+1)\n",
+ header.base_index, header.one_reg_wr, header.count);
+
+ // Now go through and write the dwNumDWORDs
+ for (dwIndex = 0; dwIndex < header.count+1; dwIndex++)
+ {
+ char szRegister[1024];
+ unsigned int dwRegIndex;
+ unsigned int dwRegValue = *(pBuffer++);
+
+ if (header.one_reg_wr)
+ {
+ dwRegIndex = header.base_index;
+ }
+ else
+ {
+ dwRegIndex = header.base_index + dwIndex;
+ }
+
+ WriteDWORD(pFile, dwRegValue);
+ // Write register string based on fields
+ GetString_Register(dwRegIndex, dwRegValue, szRegister);
+ printString(pFile, " // %s\n", szRegister);
+
+ // Write actual unsigned int
+
+ }
+
+ *ppBuffer = pBuffer;
+}
+
+//----------------------------------------------------------------------------
+
+void
+WritePM4Packet_Type2(FILE* pFile, unsigned int dwHeader, unsigned int** ppBuffer)
+{
+ unsigned int* pBuffer = *ppBuffer;
+
+ WriteDWORD(pFile, dwHeader);
+ printString(pFile, " // Type-2 packet\n");
+
+ *ppBuffer = pBuffer;
+}
+
+//----------------------------------------------------------------------------
+
+void
+AnalyzePacketType(FILE *pFile, unsigned int dwHeader, unsigned int**ppBuffer)
+{
+ switch(dwHeader & PM4_PKT_MASK)
+ {
+ case PM4_TYPE0_PKT:
+ WritePM4Packet_Type0(pFile, dwHeader, ppBuffer);
+ break;
+
+ case PM4_TYPE1_PKT:
+ break;
+
+ case PM4_TYPE2_PKT:
+ WritePM4Packet_Type2(pFile, dwHeader, ppBuffer);
+ break;
+
+ case PM4_TYPE3_PKT:
+ WritePM4Packet_Type3(pFile, dwHeader, ppBuffer);
+ break;
+ }
+}
+
+void
+WritePM4Packet_Type3(FILE* pFile, unsigned int dwHeader, unsigned int** ppBuffer)
+{
+ pm4_type3 header = *((pm4_type3*) &dwHeader);
+ unsigned int* pBuffer = *ppBuffer;
+ unsigned int dwIndex;
+ char szOpcode[64];
+
+ if((EXPAND_OPCODE(header.it_opcode) == PM4_PACKET3_INDIRECT_BUFFER) ||
+ (EXPAND_OPCODE(header.it_opcode) == PM4_PACKET3_INDIRECT_BUFFER_PFD))
+ {
+ unsigned int *pIndirectBuffer = (unsigned int *) *(pBuffer++); // ordinal 2 of IB packet is an address
+ unsigned int *pIndirectBufferEnd = pIndirectBuffer + *(pBuffer++); // ordinal 3 of IB packet is size
+ unsigned int gpuaddr = kgsl_sharedmem_convertaddr((unsigned int) pIndirectBuffer, 1);
+
+ indirectionLevel++;
+
+ WriteDWORD2(pFile, dwHeader);
+ WriteDWORD2(pFile, gpuaddr);
+ WriteDWORD2(pFile, (unsigned int) (pIndirectBufferEnd-pIndirectBuffer));
+
+ if (indirectionLevel == 1)
+ {
+ printString(pFile, "Start_IB1, base=0x%x, size=%d\n", gpuaddr, (unsigned int)(pIndirectBufferEnd - pIndirectBuffer));
+ }
+ else
+ {
+ printString(pFile, "Start_IB2, base=0x%x, size=%d\n", gpuaddr, (unsigned int)(pIndirectBufferEnd - pIndirectBuffer));
+ }
+
+ while(pIndirectBuffer < pIndirectBufferEnd)
+ {
+ unsigned int _dwHeader = *(pIndirectBuffer++);
+
+ AnalyzePacketType(pFile, _dwHeader, &pIndirectBuffer);
+ }
+
+ if (indirectionLevel == 1)
+ {
+ printString(pFile, "End_IB1\n");
+ }
+ else
+ {
+ printString(pFile, "End_IB2\n");
+ }
+
+ indirectionLevel--;
+ }
+ else
+ {
+ unsigned int registerAddr = 0xffffffff;
+ char szRegister[1024];
+
+ GetString_Type3Opcode(header.it_opcode, szOpcode);
+
+ WriteDWORD(pFile, dwHeader);
+ printString(pFile, " // Type-3 packet (PREDICATE = %d, IT_OPCODE = %s, COUNT = %d+1)\n",
+ header.predicate, szOpcode, header.count);
+
+ // Go through each command
+ for (dwIndex = 0; dwIndex < header.count+1; dwIndex++)
+ {
+ // Check for a register write
+ if((EXPAND_OPCODE(header.it_opcode) == PM4_PACKET3_SET_CONSTANT) && (((*pBuffer) >> 16) == 0x4))
+ registerAddr = (*pBuffer) & 0xffff;
+
+ // Write unsigned int
+ WriteDWORD(pFile, *pBuffer);
+
+ // Starting at Ordinal 2 is actual register values
+ if((dwIndex > 0) && (registerAddr != 0xffffffff))
+ {
+ // Write register string based on address
+ GetString_Register(registerAddr + 0x2000, *pBuffer, szRegister);
+ printString(pFile, " // %s\n", szRegister);
+ registerAddr++;
+ }
+ else
+ {
+ // Write out newline if we aren't augmenting with register fields
+ printString(pFile, "\n");
+ }
+
+ pBuffer++;
+ }
+ }
+ *ppBuffer = pBuffer;
+}
+
+//----------------------------------------------------------------------------
+
+void
+Yamato_DumpInitParams(unsigned int dwEDRAMBase, unsigned int dwEDRAMSize)
+{
+ FILE* pFile = fopen(PM4_DUMPFILE, "a");
+
+ printString(pFile, "InitParams, edrambase=0x%x, edramsize=%d\n",
+ dwEDRAMBase, dwEDRAMSize);
+
+ fclose(pFile);
+}
+
+//----------------------------------------------------------------------------
+
+void
+Yamato_DumpSwapBuffers(unsigned int dwAddress, unsigned int dwWidth,
+ unsigned int dwHeight, unsigned int dwPitch, unsigned int dwAlignedHeight, unsigned int dwBitsPerPixel)
+{
+ // Open file
+ FILE* pFile = fopen(PM4_DUMPFILE, "a");
+
+ printString(pFile, "SwapBuffers, address=0x%08x, width=%d, height=%d, pitch=%d, alignedheight=%d, bpp=%d\n",
+ dwAddress, dwWidth, dwHeight, dwPitch, dwAlignedHeight, dwBitsPerPixel);
+
+ fclose(pFile);
+}
+
+//----------------------------------------------------------------------------
+
+void
+Yamato_DumpRegSpace(gsl_device_t *device)
+{
+ int regsPerLine = 0x20;
+ unsigned int dwOffset;
+ unsigned int value;
+
+ FILE* pFile = fopen(PM4_DUMPFILE, "a");
+
+ printString(pFile, "Start_RegisterSpace\n");
+
+ for (dwOffset = 0; dwOffset < device->regspace.sizebytes; dwOffset += 4)
+ {
+ if (dwOffset % regsPerLine == 0)
+ {
+ printString(pFile, " 0x%08x ", dwOffset);
+ }
+
+ GSL_HAL_REG_READ(device->id, (unsigned int) device->regspace.mmio_virt_base, (dwOffset >> 2), &value);
+
+ printString(pFile, " 0x%08x", value);
+
+ if (((dwOffset + 4) % regsPerLine == 0) && ((dwOffset + 4) < device->regspace.sizebytes))
+ {
+ printString(pFile, "\n");
+ }
+ }
+
+ printString(pFile, "\nEnd_RegisterSpace\n");
+
+ fclose(pFile);
+}
+
+//----------------------------------------------------------------------------
+
+void
+Yamato_DumpAllocateMemory(unsigned int dwSize, unsigned int dwFlags, unsigned int dwAddress,
+ unsigned int dwActualSize)
+{
+ // Open file
+ FILE* pFile = fopen(PM4_DUMPFILE, "a");
+
+ printString(pFile, "AllocateMemory, size=%d, flags=0x%x, address=0x%x, actualSize=%d\n",
+ dwSize, dwFlags, dwAddress, dwActualSize);
+
+ fclose(pFile);
+}
+
+//----------------------------------------------------------------------------
+
+void
+Yamato_DumpFreeMemory(unsigned int dwAddress)
+{
+ // Open file
+ FILE* pFile = fopen(PM4_DUMPFILE, "a");
+
+ printString(pFile, "FreeMemory, address=0x%x\n", dwAddress);
+
+ fclose(pFile);
+}
+
+//----------------------------------------------------------------------------
+
+void
+Yamato_DumpWriteMemory(unsigned int dwAddress, unsigned int dwSize, void* pData)
+{
+ // Open file
+ FILE* pFile = fopen(PM4_DUMPFILE, "a");
+ unsigned int dwNumDWORDs;
+ unsigned int dwIndex;
+ unsigned int *pDataPtr;
+
+ printString(pFile, "StartWriteMemory, address=0x%x, size=%d\n", dwAddress, dwSize);
+
+ // Now write the data, in dwNumDWORDs
+ dwNumDWORDs = dwSize >> 2;
+
+ // If there are spillover bytes into the next dword, increment the amount dumped out here.
+ // The reader needs to take care of not overwriting the nonvalid bytes
+ if((dwSize % 4) != 0)
+ dwNumDWORDs++;
+
+ for (dwIndex = 0, pDataPtr = (unsigned int *)pData; dwIndex < dwNumDWORDs; dwIndex++, pDataPtr++)
+ {
+ WriteDWORD2(pFile, *pDataPtr);
+ }
+
+ printString(pFile, "EndWriteMemory\n");
+
+ fclose(pFile);
+}
+
+void
+Yamato_DumpSetMemory(unsigned int dwAddress, unsigned int dwSize, unsigned int pData)
+{
+ // Open file
+ FILE* pFile = fopen(PM4_DUMPFILE, "a");
+// unsigned int* pDataPtr;
+
+ printString(pFile, "SetMemory, address=0x%x, size=%d, value=0x%x\n",
+ dwAddress, dwSize, pData);
+
+ fclose(pFile);
+}
+
+//----------------------------------------------------------------------------
+void
+Yamato_ConvertIBAddr(unsigned int dwHeader, unsigned int *pBuffer, int gpuToHost)
+{
+ unsigned int hostaddr;
+ unsigned int *ibend;
+ unsigned int *addr;
+ unsigned int *ib = pBuffer;
+ pm4_type3 header = *((pm4_type3*) &dwHeader);
+
+ // convert ib1 base address
+ if((EXPAND_OPCODE(header.it_opcode) == PM4_PACKET3_INDIRECT_BUFFER) ||
+ (EXPAND_OPCODE(header.it_opcode) == PM4_PACKET3_INDIRECT_BUFFER_PFD))
+ {
+ if (gpuToHost)
+ {
+ // from gpu to host
+ *ib = kgsl_sharedmem_convertaddr(*ib, 0);
+
+ hostaddr = *ib;
+ }
+ else
+ {
+ // from host to gpu
+ hostaddr = *ib;
+ *ib = kgsl_sharedmem_convertaddr(*ib, 1);
+ }
+
+ // walk through ib1 and convert any ib2 base address
+
+ ib = (unsigned int *) hostaddr;
+ ibend = (unsigned int *) (ib + *(++pBuffer));
+
+ while (ib < ibend)
+ {
+ dwHeader = *(ib);
+ header = *((pm4_type3*) (&dwHeader));
+
+ switch(dwHeader & PM4_PKT_MASK)
+ {
+ case PM4_TYPE0_PKT:
+ ib += header.count + 2;
+ break;
+
+ case PM4_TYPE1_PKT:
+ break;
+
+ case PM4_TYPE2_PKT:
+ ib++;
+ break;
+
+ case PM4_TYPE3_PKT:
+ if((EXPAND_OPCODE(header.it_opcode) == PM4_PACKET3_INDIRECT_BUFFER) ||
+ (EXPAND_OPCODE(header.it_opcode) == PM4_PACKET3_INDIRECT_BUFFER_PFD))
+ {
+ addr = ib + 1;
+ if (gpuToHost)
+ {
+ // from gpu to host
+ *addr = kgsl_sharedmem_convertaddr(*addr, 0);
+ }
+ else
+ {
+ // from host to gpu
+ *addr = kgsl_sharedmem_convertaddr(*addr, 1);
+ }
+ }
+ ib += header.count + 2;
+ break;
+ }
+ }
+ }
+}
+
+//----------------------------------------------------------------------------
+
+void
+Yamato_DumpPM4(unsigned int* pBuffer, unsigned int sizeDWords)
+{
+ unsigned int *pBufferEnd = pBuffer + sizeDWords;
+ unsigned int *tmp;
+
+ // Open file
+ FILE* pFile = fopen(PM4_DUMPFILE, "a");
+
+ printString(pFile, "Start_PM4Buffer\n");//, count=%d\n", sizeDWords);
+
+ // So look at the first unsigned int - should be a header
+ while(pBuffer < pBufferEnd)
+ {
+ unsigned int dwHeader = *(pBuffer++);
+
+ //printString(pFile, " Start_Packet\n");
+ switch(dwHeader & PM4_PKT_MASK)
+ {
+ case PM4_TYPE0_PKT:
+ WritePM4Packet_Type0(pFile, dwHeader, &pBuffer);
+ break;
+
+ case PM4_TYPE1_PKT:
+ break;
+
+ case PM4_TYPE2_PKT:
+ WritePM4Packet_Type2(pFile, dwHeader, &pBuffer);
+ break;
+
+ case PM4_TYPE3_PKT:
+ indirectionLevel = 0;
+ tmp = pBuffer;
+ Yamato_ConvertIBAddr(dwHeader, tmp, 1);
+ WritePM4Packet_Type3(pFile, dwHeader, &pBuffer);
+ Yamato_ConvertIBAddr(dwHeader, tmp, 0);
+ break;
+ }
+ //printString(pFile, " End_Packet\n");
+ }
+
+ printString(pFile, "End_PM4Buffer\n");
+ fclose(pFile);
+}
+
+//----------------------------------------------------------------------------
+
+void
+Yamato_DumpRegisterWrite(unsigned int dwAddress, unsigned int value)
+{
+ FILE *pFile;
+
+ // Build a Type-0 packet that maps to this register write
+ unsigned int pBuffer[100], *pBuf = &pBuffer[1];
+
+ // Don't dump CP_RB_WPTR (switch statement may be necessary here for future additions)
+ if(dwAddress == mmCP_RB_WPTR)
+ return;
+
+ pFile = fopen(PM4_DUMPFILE, "a");
+
+ pBuffer[0] = dwAddress;
+ pBuffer[1] = value;
+
+ printString(pFile, "StartRegisterWrite\n");
+ WritePM4Packet_Type0(pFile, pBuffer[0], &pBuf);
+ printString(pFile, "EndRegisterWrite\n");
+
+ fclose(pFile);
+}
+
+//----------------------------------------------------------------------------
+
+void
+Yamato_DumpFbStart(gsl_device_t *device)
+{
+ FILE *pFile;
+
+ static int firstCall = 0;
+
+ // We only want to call this once
+ if(firstCall)
+ return;
+
+ pFile = fopen(PM4_DUMPFILE, "a");
+
+ printString(pFile, "FbStart, value=0x%x\n", device->mmu.mpu_base);
+ printString(pFile, "FbSize, value=0x%x\n", device->mmu.mpu_range);
+
+ fclose(pFile);
+
+ firstCall = 1;
+}
+
+//----------------------------------------------------------------------------
+
+void
+Yamato_DumpWindow(unsigned int addr, unsigned int width, unsigned int height)
+{
+ FILE *pFile;
+
+ pFile = fopen(PM4_DUMPFILE, "a");
+
+ printString(pFile, "DumpWindow, addr=0x%x, width=0x%x, height=0x%x\n", addr, width, height);
+
+ fclose(pFile);
+}
+
+//----------------------------------------------------------------------------
+#ifdef _DEBUG
+
+#define ADDRESS_STACK_SIZE 256
+#define GET_PM4_TYPE3_OPCODE(x) ((*(x) >> 8) & 0xFF)
+#define IF_REGISTER_IN_RANGE(reg, base, count) \
+ offset = (reg) - (base); \
+ if(offset >= 0 && offset <= (count) - 2)
+#define GET_CP_CONSTANT_DATA(x) (*((x) + offset + 2))
+
+static const char format2bpp[] =
+{
+ 2, // COLORX_4_4_4_4
+ 2, // COLORX_1_5_5_5
+ 2, // COLORX_5_6_5
+ 1, // COLORX_8
+ 2, // COLORX_8_8
+ 4, // COLORX_8_8_8_8
+ 4, // COLORX_S8_8_8_8
+ 2, // COLORX_16_FLOAT
+ 4, // COLORX_16_16_FLOAT
+ 8, // COLORX_16_16_16_16_FLOAT
+ 4, // COLORX_32_FLOAT
+ 8, // COLORX_32_32_FLOAT
+ 16, // COLORX_32_32_32_32_FLOAT ,
+ 1, // COLORX_2_3_3
+ 3, // COLORX_8_8_8
+};
+
+static unsigned int kgsl_dumpx_addr_count = 0; //unique command buffer addresses encountered
+static int kgsl_dumpx_handle_type3(unsigned int* hostaddr, int count)
+{
+ // For swap detection we need to find the below declared static values, and detect DI during EDRAM copy
+ static unsigned int width = 0, height = 0, format = 0, baseaddr = 0, iscopy = 0;
+
+ static unsigned int addr_stack[ADDRESS_STACK_SIZE];
+ static unsigned int size_stack[ADDRESS_STACK_SIZE];
+ int swap = 0; // have we encountered a swap during recursion (return value)
+
+ switch(GET_PM4_TYPE3_OPCODE(hostaddr))
+ {
+ case PM4_INDIRECT_BUFFER_PFD:
+ case PM4_INDIRECT_BUFFER:
+ {
+ // traverse indirect buffers
+ unsigned int i;
+ unsigned int ibaddr = *(hostaddr+1);
+ unsigned int ibsize = *(hostaddr+2);
+
+ // is this address already in encountered?
+ for(i = 0; i < kgsl_dumpx_addr_count && addr_stack[i] != ibaddr; i++);
+
+ if(kgsl_dumpx_addr_count == i)
+ {
+ // yes it was, store the address so we don't dump this buffer twice
+ addr_stack[kgsl_dumpx_addr_count] = ibaddr;
+ // just for sanity checking
+ size_stack[kgsl_dumpx_addr_count++] = ibsize;
+ KOS_ASSERT(kgsl_dumpx_addr_count < ADDRESS_STACK_SIZE);
+
+ // recursively follow the indirect link and update swap if indirect buffer had resolve
+ swap |= kgsl_dumpx_parse_ibs(ibaddr, ibsize);
+ }
+ else
+ {
+ KOS_ASSERT(size_stack[i] == ibsize);
+ }
+ }
+ break;
+
+ case PM4_SET_CONSTANT:
+ if((*(hostaddr+1) >> 16) == 0x4)
+ {
+ // parse register writes, and figure out framebuffer configuration
+
+ unsigned int regaddr = (*(hostaddr + 1) & 0xFFFF) + 0x2000; //dword address in register space
+ int offset; // used by the macros
+
+ IF_REGISTER_IN_RANGE(mmPA_SC_WINDOW_SCISSOR_BR, regaddr, count)
+ {
+ // found write to PA_SC_WINDOW_SCISSOR_BR, we use this to detect current
+ // width and height of the framebuffer (TODO: find more reliable way of achieving this)
+ unsigned int data = GET_CP_CONSTANT_DATA(hostaddr);
+ width = data & 0xFFFF;
+ height = data >> 16;
+ }
+
+ IF_REGISTER_IN_RANGE(mmRB_MODECONTROL, regaddr, count)
+ {
+ // found write to RB_MODECONTROL, we use this to find out if next DI is resolve
+ unsigned int data = GET_CP_CONSTANT_DATA(hostaddr);
+ iscopy = (data & RB_MODECONTROL__EDRAM_MODE_MASK) == (EDRAM_COPY << RB_MODECONTROL__EDRAM_MODE__SHIFT);
+ }
+
+ IF_REGISTER_IN_RANGE(mmRB_COPY_DEST_BASE, regaddr, count)
+ {
+ // found write to RB_COPY_DEST_BASE, we use this to find out the framebuffer base address
+ unsigned int data = GET_CP_CONSTANT_DATA(hostaddr);
+ baseaddr = (data & RB_COPY_DEST_BASE__COPY_DEST_BASE_MASK);
+ }
+
+ IF_REGISTER_IN_RANGE(mmRB_COPY_DEST_INFO, regaddr, count)
+ {
+ // found write to RB_COPY_DEST_INFO, we use this to find out the framebuffer format
+ unsigned int data = GET_CP_CONSTANT_DATA(hostaddr);
+ format = (data & RB_COPY_DEST_INFO__COPY_DEST_FORMAT_MASK) >> RB_COPY_DEST_INFO__COPY_DEST_FORMAT__SHIFT;
+ }
+ }
+ break;
+
+ case PM4_DRAW_INDX:
+ case PM4_DRAW_INDX_2:
+ {
+ // DI found
+ // check if it is resolve
+ if(iscopy && !swap)
+ {
+ // printf("resolve: %ix%i @ 0x%08x, format = 0x%08x\n", width, height, baseaddr, format);
+ KOS_ASSERT(format < 15);
+
+ // yes it was and we need to update color buffer config because this is the first bin
+ // dumpx framebuffer base address, and dimensions
+ KGSL_DEBUG_DUMPX( BB_DUMP_CBUF_AWH, (unsigned int)baseaddr, width, height, " ");
+
+ // find aligned width
+ width = (width + 31) & ~31;
+
+ //dump bytes-per-pixel and aligned width
+ KGSL_DEBUG_DUMPX( BB_DUMP_CBUF_FS, format2bpp[format], width, 0, " ");
+ swap = 1;
+ }
+
+ }
+ break;
+
+ default:
+ break;
+ }
+ return swap;
+}
+
+// Traverse IBs and dump them to test vector. Detect swap by inspecting register
+// writes, keeping note of the current state, and dump framebuffer config to test vector
+int kgsl_dumpx_parse_ibs(gpuaddr_t gpuaddr, int sizedwords)
+{
+ static unsigned int level = 0; //recursion level
+
+ int swap = 0; // have we encountered a swap during recursion (return value)
+ unsigned int *hostaddr;
+ int dwords_left = sizedwords; //dwords left in the current command buffer
+
+ level++;
+
+ KOS_ASSERT(sizeof(unsigned int *) == sizeof(unsigned int));
+ KOS_ASSERT(level <= 2);
+ hostaddr = (unsigned int *)kgsl_sharedmem_convertaddr(gpuaddr, 0);
+
+ // dump the IB to test vector
+ KGSL_DEBUG(GSL_DBGFLAGS_DUMPX, KGSL_DEBUG_DUMPX(BB_DUMP_MEMWRITE, gpuaddr, (unsigned int)hostaddr, sizedwords*4, "kgsl_dumpx_write_ibs"));
+
+ while(dwords_left)
+ {
+ int count = 0; //dword count including packet header
+
+ switch(*hostaddr >> 30)
+ {
+ case 0x0: // type-0
+ count = (*hostaddr >> 16)+2;
+ break;
+ case 0x1: // type-1
+ count = 2;
+ break;
+ case 0x3: // type-3
+ count = ((*hostaddr >> 16) & 0x3fff) + 2;
+ swap |= kgsl_dumpx_handle_type3(hostaddr, count);
+ break; // type-3
+ default:
+ KOS_ASSERT(!"unknown packet type");
+ }
+
+ // jump to next packet
+ dwords_left -= count;
+ hostaddr += count;
+ KOS_ASSERT(dwords_left >= 0 && "PM4 parsing error");
+ }
+
+ level--;
+
+ // if this is the starting level of recursion, we are done. clean-up
+ if(level == 0) kgsl_dumpx_addr_count = 0;
+
+ return swap;
+}
+#endif
+
+#endif // WIN32
+
diff --git a/drivers/mxc/amd-gpu/common/gsl_device.c b/drivers/mxc/amd-gpu/common/gsl_device.c
new file mode 100644
index 000000000000..6c41d3dd6dcc
--- /dev/null
+++ b/drivers/mxc/amd-gpu/common/gsl_device.c
@@ -0,0 +1,694 @@
+/* Copyright (c) 2008-2010, Advanced Micro Devices. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 and
+ * only version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that 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.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
+ *
+ */
+
+#include "gsl.h"
+#include "gsl_hal.h"
+#ifdef _LINUX
+#include <linux/sched.h>
+#endif
+
+//////////////////////////////////////////////////////////////////////////////
+// inline functions
+//////////////////////////////////////////////////////////////////////////////
+OSINLINE void
+kgsl_device_getfunctable(gsl_deviceid_t device_id, gsl_functable_t *ftbl)
+{
+ switch (device_id)
+ {
+#ifdef GSL_BLD_YAMATO
+ case GSL_DEVICE_YAMATO:
+ kgsl_yamato_getfunctable(ftbl);
+ break;
+#endif // GSL_BLD_YAMATO
+#ifdef GSL_BLD_G12
+ case GSL_DEVICE_G12:
+ kgsl_g12_getfunctable(ftbl);
+ break;
+#endif // GSL_BLD_G12
+ default:
+ break;
+ }
+}
+
+
+//////////////////////////////////////////////////////////////////////////////
+// functions
+//////////////////////////////////////////////////////////////////////////////
+
+int
+kgsl_device_init(gsl_device_t *device, gsl_deviceid_t device_id)
+{
+ int status = GSL_SUCCESS;
+ gsl_devconfig_t config;
+ gsl_hal_t *hal = (gsl_hal_t *)gsl_driver.hal;
+
+ kgsl_log_write( KGSL_LOG_GROUP_DEVICE | KGSL_LOG_LEVEL_TRACE,
+ "--> int kgsl_device_init(gsl_device_t *device=0x%08x, gsl_deviceid_t device_id=%D )\n", device, device_id );
+
+ if ((GSL_DEVICE_YAMATO == device_id) && !(hal->has_z430)) {
+ return GSL_FAILURE_NOTSUPPORTED;
+ }
+
+ if ((GSL_DEVICE_G12 == device_id) && !(hal->has_z160)) {
+ return GSL_FAILURE_NOTSUPPORTED;
+ }
+
+ if (device->flags & GSL_FLAGS_INITIALIZED)
+ {
+ kgsl_log_write( KGSL_LOG_GROUP_DEVICE | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_device_init. Return value %B\n", GSL_SUCCESS );
+ return (GSL_SUCCESS);
+ }
+
+ kos_memset(device, 0, sizeof(gsl_device_t));
+
+ // if device configuration is present
+ if (kgsl_hal_getdevconfig(device_id, &config) == GSL_SUCCESS)
+ {
+ kgsl_device_getfunctable(device_id, &device->ftbl);
+
+ kos_memcpy(&device->regspace, &config.regspace, sizeof(gsl_memregion_t));
+#ifdef GSL_BLD_YAMATO
+ kos_memcpy(&device->gmemspace, &config.gmemspace, sizeof(gsl_memregion_t));
+#endif // GSL_BLD_YAMATO
+
+ device->refcnt = 0;
+ device->id = device_id;
+
+#ifndef GSL_NO_MMU
+ device->mmu.config = config.mmu_config;
+ device->mmu.mpu_base = config.mpu_base;
+ device->mmu.mpu_range = config.mpu_range;
+ device->mmu.va_base = config.va_base;
+ device->mmu.va_range = config.va_range;
+#endif
+
+ if (device->ftbl.device_init)
+ {
+ status = device->ftbl.device_init(device);
+ }
+ else
+ {
+ status = GSL_FAILURE_NOTINITIALIZED;
+ }
+
+ // allocate memory store
+ status = kgsl_sharedmem_alloc0(device->id, GSL_MEMFLAGS_ALIGNPAGE | GSL_MEMFLAGS_CONPHYS, sizeof(gsl_devmemstore_t), &device->memstore);
+
+ KGSL_DEBUG(GSL_DBGFLAGS_DUMPX,
+ {
+ // dumpx needs this to be in EMEM0 aperture
+ kgsl_sharedmem_free0(&device->memstore, GSL_CALLER_PROCESSID_GET());
+ status = kgsl_sharedmem_alloc0(device->id, GSL_MEMFLAGS_ALIGNPAGE, sizeof(gsl_devmemstore_t), &device->memstore);
+ });
+
+ if (status != GSL_SUCCESS)
+ {
+ kgsl_device_stop(device->id);
+ return (status);
+ }
+ kgsl_sharedmem_set0(&device->memstore, 0, 0, device->memstore.size);
+
+ // init memqueue
+ device->memqueue.head = NULL;
+ device->memqueue.tail = NULL;
+
+ // init cmdstream
+ status = kgsl_cmdstream_init(device);
+ if (status != GSL_SUCCESS)
+ {
+ kgsl_device_stop(device->id);
+ return (status);
+ }
+
+#ifndef _LINUX
+ // Create timestamp event
+ device->timestamp_event = kos_event_create(0);
+ if( !device->timestamp_event )
+ {
+ kgsl_device_stop(device->id);
+ return (status);
+ }
+#else
+ // Create timestamp wait queue
+ init_waitqueue_head(&device->timestamp_waitq);
+#endif
+
+ //
+ // Read the chip ID after the device has been initialized.
+ //
+ device->chip_id = kgsl_hal_getchipid(device->id);
+ }
+
+
+ kgsl_log_write( KGSL_LOG_GROUP_DEVICE | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_device_init. Return value %B\n", status );
+
+ return (status);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_device_close(gsl_device_t *device)
+{
+ int status = GSL_FAILURE_NOTINITIALIZED;
+
+ kgsl_log_write( KGSL_LOG_GROUP_DEVICE | KGSL_LOG_LEVEL_TRACE,
+ "--> int kgsl_device_close(gsl_device_t *device=0x%08x )\n", device );
+
+ if (!(device->flags & GSL_FLAGS_INITIALIZED)) {
+ return status;
+ }
+
+ /* make sure the device is stopped before close
+ kgsl_device_close is only called for last running caller process
+ */
+ while (device->refcnt > 0) {
+ GSL_API_MUTEX_UNLOCK();
+ kgsl_device_stop(device->id);
+ GSL_API_MUTEX_LOCK();
+ }
+
+ // close cmdstream
+ status = kgsl_cmdstream_close(device);
+ if( status != GSL_SUCCESS ) return status;
+
+ if (device->ftbl.device_close) {
+ status = device->ftbl.device_close(device);
+ }
+
+ // DumpX allocates memstore from MMU aperture
+ if ((device->refcnt == 0) && device->memstore.hostptr
+ && !(gsl_driver.flags_debug & GSL_DBGFLAGS_DUMPX))
+ {
+ kgsl_sharedmem_free0(&device->memstore, GSL_CALLER_PROCESSID_GET());
+ }
+
+#ifndef _LINUX
+ // destroy timestamp event
+ if(device->timestamp_event)
+ {
+ kos_event_signal(device->timestamp_event); // wake up waiting threads before destroying the structure
+ kos_event_destroy( device->timestamp_event );
+ device->timestamp_event = 0;
+ }
+#else
+ wake_up_interruptible_all(&(device->timestamp_waitq));
+#endif
+
+ kgsl_log_write( KGSL_LOG_GROUP_DEVICE | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_device_close. Return value %B\n", status );
+
+ return (status);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_device_destroy(gsl_device_t *device)
+{
+ int status = GSL_FAILURE_NOTINITIALIZED;
+
+ kgsl_log_write( KGSL_LOG_GROUP_DEVICE | KGSL_LOG_LEVEL_TRACE,
+ "--> int kgsl_device_destroy(gsl_device_t *device=0x%08x )\n", device );
+
+ if (device->flags & GSL_FLAGS_INITIALIZED)
+ {
+ if (device->ftbl.device_destroy)
+ {
+ status = device->ftbl.device_destroy(device);
+ }
+ }
+
+ kgsl_log_write( KGSL_LOG_GROUP_DEVICE | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_device_destroy. Return value %B\n", status );
+
+ return (status);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_device_attachcallback(gsl_device_t *device, unsigned int pid)
+{
+ int status = GSL_SUCCESS;
+ int pindex;
+
+#ifndef GSL_NO_MMU
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "--> int kgsl_device_attachcallback(gsl_device_t *device=0x%08x, unsigned int pid=0x%08x)\n", device, pid );
+
+ if (device->flags & GSL_FLAGS_INITIALIZED)
+ {
+ if (kgsl_driver_getcallerprocessindex(pid, &pindex) == GSL_SUCCESS)
+ {
+ device->callerprocess[pindex] = pid;
+
+ status = kgsl_mmu_attachcallback(&device->mmu, pid);
+ }
+ }
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_device_attachcallback. Return value: %B\n", status );
+
+#else
+ (void)pid;
+ (void)device;
+#endif
+
+ return (status);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_device_detachcallback(gsl_device_t *device, unsigned int pid)
+{
+ int status = GSL_SUCCESS;
+ int pindex;
+
+#ifndef GSL_NO_MMU
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "--> int kgsl_device_detachcallback(gsl_device_t *device=0x%08x, unsigned int pid=0x%08x)\n", device, pid );
+
+ if (device->flags & GSL_FLAGS_INITIALIZED)
+ {
+ if (kgsl_driver_getcallerprocessindex(pid, &pindex) == GSL_SUCCESS)
+ {
+ status |= kgsl_mmu_detachcallback(&device->mmu, pid);
+
+ device->callerprocess[pindex] = 0;
+ }
+ }
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_device_detachcallback. Return value: %B\n", status );
+
+#else
+ (void)pid;
+ (void)device;
+#endif
+
+ return (status);
+}
+
+//----------------------------------------------------------------------------
+
+KGSL_API int
+kgsl_device_getproperty(gsl_deviceid_t device_id, gsl_property_type_t type, void *value, unsigned int sizebytes)
+{
+ int status = GSL_SUCCESS;
+ gsl_device_t *device = &gsl_driver.device[device_id-1]; // device_id is 1 based
+
+ kgsl_log_write( KGSL_LOG_GROUP_DEVICE | KGSL_LOG_LEVEL_TRACE,
+ "--> int kgsl_device_getproperty(gsl_deviceid_t device_id=%D, gsl_property_type_t type=%d, void *value=0x08x, unsigned int sizebytes=%d)\n", device_id, type, value, sizebytes );
+
+ KOS_ASSERT(value);
+
+#ifndef _DEBUG
+ (void) sizebytes; // unreferenced formal parameter
+#endif
+
+ switch (type)
+ {
+ case GSL_PROP_SHMEM:
+ {
+ gsl_shmemprop_t *shem = (gsl_shmemprop_t *) value;
+
+ KOS_ASSERT(sizebytes == sizeof(gsl_shmemprop_t));
+
+ shem->numapertures = gsl_driver.shmem.numapertures;
+ shem->aperture_mask = GSL_APERTURE_MASK;
+ shem->aperture_shift = GSL_APERTURE_SHIFT;
+
+ break;
+ }
+
+ case GSL_PROP_SHMEM_APERTURES:
+ {
+ int i;
+ gsl_apertureprop_t *aperture = (gsl_apertureprop_t *) value;
+
+ KOS_ASSERT(sizebytes == (sizeof(gsl_apertureprop_t) * gsl_driver.shmem.numapertures));
+
+ for (i = 0; i < gsl_driver.shmem.numapertures; i++)
+ {
+ if (gsl_driver.shmem.apertures[i].memarena)
+ {
+ aperture->gpuaddr = GSL_APERTURE_GETGPUADDR(gsl_driver.shmem, i);
+ aperture->hostaddr = GSL_APERTURE_GETHOSTADDR(gsl_driver.shmem, i);
+ }
+ else
+ {
+ aperture->gpuaddr = 0x0;
+ aperture->hostaddr = 0x0;
+ }
+ aperture++;
+ }
+
+ break;
+ }
+
+ case GSL_PROP_DEVICE_SHADOW:
+ {
+ gsl_shadowprop_t *shadowprop = (gsl_shadowprop_t *) value;
+
+ KOS_ASSERT(sizebytes == sizeof(gsl_shadowprop_t));
+
+ kos_memset(shadowprop, 0, sizeof(gsl_shadowprop_t));
+
+#ifdef GSL_DEVICE_SHADOW_MEMSTORE_TO_USER
+ if (device->memstore.hostptr)
+ {
+ shadowprop->hostaddr = (unsigned int) device->memstore.hostptr;
+ shadowprop->size = device->memstore.size;
+ shadowprop->flags = GSL_FLAGS_INITIALIZED;
+ }
+#endif // GSL_DEVICE_SHADOW_MEMSTORE_TO_USER
+
+ break;
+ }
+
+ default:
+ {
+ if (device->ftbl.device_getproperty)
+ {
+ status = device->ftbl.device_getproperty(device, type, value, sizebytes);
+ }
+
+ break;
+ }
+ }
+
+ kgsl_log_write( KGSL_LOG_GROUP_DEVICE | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_device_getproperty. Return value %B\n", status );
+
+ return (status);
+}
+
+//----------------------------------------------------------------------------
+
+KGSL_API int
+kgsl_device_setproperty(gsl_deviceid_t device_id, gsl_property_type_t type, void *value, unsigned int sizebytes)
+{
+ int status = GSL_SUCCESS;
+ gsl_device_t *device;
+
+ kgsl_log_write( KGSL_LOG_GROUP_DEVICE | KGSL_LOG_LEVEL_TRACE,
+ "--> int kgsl_device_setproperty(gsl_deviceid_t device_id=%D, gsl_property_type_t type=%d, void *value=0x08x, unsigned int sizebytes=%d)\n", device_id, type, value, sizebytes );
+
+ KOS_ASSERT(value);
+
+ GSL_API_MUTEX_LOCK();
+
+ device = &gsl_driver.device[device_id-1]; // device_id is 1 based
+
+ if (device->flags & GSL_FLAGS_INITIALIZED)
+ {
+ if (device->ftbl.device_setproperty)
+ {
+ status = device->ftbl.device_setproperty(device, type, value, sizebytes);
+ }
+ }
+
+ GSL_API_MUTEX_UNLOCK();
+
+ kgsl_log_write( KGSL_LOG_GROUP_DEVICE | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_device_setproperty. Return value %B\n", status );
+
+ return (status);
+}
+
+//----------------------------------------------------------------------------
+
+KGSL_API int
+kgsl_device_start(gsl_deviceid_t device_id, gsl_flags_t flags)
+{
+ int status = GSL_FAILURE_NOTINITIALIZED;
+ gsl_device_t *device;
+ gsl_hal_t *hal = (gsl_hal_t *)gsl_driver.hal;
+
+ kgsl_log_write( KGSL_LOG_GROUP_DEVICE | KGSL_LOG_LEVEL_TRACE,
+ "--> int kgsl_device_start(gsl_deviceid_t device_id=%D, gsl_flags_t flags=%d)\n", device_id, flags );
+
+ GSL_API_MUTEX_LOCK();
+
+ if ((GSL_DEVICE_G12 == device_id) && !(hal->has_z160)) {
+ GSL_API_MUTEX_UNLOCK();
+ return GSL_FAILURE_NOTSUPPORTED;
+ }
+
+ if ((GSL_DEVICE_YAMATO == device_id) && !(hal->has_z430)) {
+ GSL_API_MUTEX_UNLOCK();
+ return GSL_FAILURE_NOTSUPPORTED;
+ }
+
+ device = &gsl_driver.device[device_id-1]; // device_id is 1 based
+
+ kgsl_device_active(device);
+
+ if (!(device->flags & GSL_FLAGS_INITIALIZED))
+ {
+ GSL_API_MUTEX_UNLOCK();
+
+ kgsl_log_write( KGSL_LOG_GROUP_DEVICE | KGSL_LOG_LEVEL_ERROR, "ERROR: Trying to start uninitialized device.\n" );
+ kgsl_log_write( KGSL_LOG_GROUP_DEVICE | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_device_start. Return value %B\n", GSL_FAILURE );
+ return (GSL_FAILURE);
+ }
+
+ device->refcnt++;
+
+ if (device->flags & GSL_FLAGS_STARTED)
+ {
+ GSL_API_MUTEX_UNLOCK();
+ kgsl_log_write( KGSL_LOG_GROUP_DEVICE | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_device_start. Return value %B\n", GSL_SUCCESS );
+ return (GSL_SUCCESS);
+ }
+
+ // start device in safe mode
+ if (flags & GSL_FLAGS_SAFEMODE)
+ {
+ kgsl_log_write( KGSL_LOG_GROUP_DEVICE | KGSL_LOG_LEVEL_INFO, "Running the device in safe mode.\n" );
+ device->flags |= GSL_FLAGS_SAFEMODE;
+ }
+
+ if (device->ftbl.device_start)
+ {
+ status = device->ftbl.device_start(device, flags);
+ }
+
+ GSL_API_MUTEX_UNLOCK();
+
+ kgsl_log_write( KGSL_LOG_GROUP_DEVICE | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_device_start. Return value %B\n", status );
+
+ return (status);
+}
+
+//----------------------------------------------------------------------------
+
+KGSL_API int
+kgsl_device_stop(gsl_deviceid_t device_id)
+{
+ int status = GSL_FAILURE_NOTINITIALIZED;
+ gsl_device_t *device;
+
+ kgsl_log_write( KGSL_LOG_GROUP_DEVICE | KGSL_LOG_LEVEL_TRACE,
+ "--> int kgsl_device_stop(gsl_deviceid_t device_id=%D)\n", device_id );
+
+ GSL_API_MUTEX_LOCK();
+
+ device = &gsl_driver.device[device_id-1]; // device_id is 1 based
+
+ if (device->flags & GSL_FLAGS_STARTED)
+ {
+ KOS_ASSERT(device->refcnt);
+
+ device->refcnt--;
+
+ if (device->refcnt == 0)
+ {
+ if (device->ftbl.device_stop)
+ {
+ status = device->ftbl.device_stop(device);
+ }
+ }
+ else
+ {
+ status = GSL_SUCCESS;
+ }
+ }
+
+ GSL_API_MUTEX_UNLOCK();
+
+ kgsl_log_write( KGSL_LOG_GROUP_DEVICE | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_device_stop. Return value %B\n", status );
+
+ return (status);
+}
+
+//----------------------------------------------------------------------------
+
+KGSL_API int
+kgsl_device_idle(gsl_deviceid_t device_id, unsigned int timeout)
+{
+ int status = GSL_FAILURE_NOTINITIALIZED;
+ gsl_device_t *device;
+
+ kgsl_log_write( KGSL_LOG_GROUP_DEVICE | KGSL_LOG_LEVEL_TRACE,
+ "--> int kgsl_device_idle(gsl_deviceid_t device_id=%D, unsigned int timeout=%d)\n", device_id, timeout );
+
+ GSL_API_MUTEX_LOCK();
+
+ device = &gsl_driver.device[device_id-1]; // device_id is 1 based
+
+ kgsl_device_active(device);
+
+ if (device->ftbl.device_idle)
+ {
+ status = device->ftbl.device_idle(device, timeout);
+ }
+
+ GSL_API_MUTEX_UNLOCK();
+
+ kgsl_log_write( KGSL_LOG_GROUP_DEVICE | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_device_idle. Return value %B\n", status );
+
+ return (status);
+}
+
+//----------------------------------------------------------------------------
+
+KGSL_API int
+kgsl_device_isidle(gsl_deviceid_t device_id)
+{
+ gsl_timestamp_t retired = kgsl_cmdstream_readtimestamp0(device_id, GSL_TIMESTAMP_RETIRED);
+ gsl_timestamp_t consumed = kgsl_cmdstream_readtimestamp0(device_id, GSL_TIMESTAMP_CONSUMED);
+ gsl_timestamp_t ts_diff = retired - consumed;
+ return (ts_diff >= 0) || (ts_diff < -GSL_TIMESTAMP_EPSILON) ? GSL_SUCCESS : GSL_FAILURE;
+}
+
+//----------------------------------------------------------------------------
+
+KGSL_API int
+kgsl_device_regread(gsl_deviceid_t device_id, unsigned int offsetwords, unsigned int *value)
+{
+ int status = GSL_FAILURE_NOTINITIALIZED;
+ gsl_device_t *device;
+
+
+#ifdef GSL_LOG
+ if( offsetwords != mmRBBM_STATUS && offsetwords != mmCP_RB_RPTR ) // Would otherwise flood the log
+ kgsl_log_write( KGSL_LOG_GROUP_DEVICE | KGSL_LOG_LEVEL_TRACE,
+ "--> int kgsl_device_regread(gsl_deviceid_t device_id=%D, unsigned int offsetwords=%R, unsigned int *value=0x%08x)\n", device_id, offsetwords, value );
+#endif
+
+ GSL_API_MUTEX_LOCK();
+
+ device = &gsl_driver.device[device_id-1]; // device_id is 1 based
+
+ KOS_ASSERT(value);
+ KOS_ASSERT(offsetwords < device->regspace.sizebytes);
+
+ if (device->ftbl.device_regread)
+ {
+ status = device->ftbl.device_regread(device, offsetwords, value);
+ }
+
+ GSL_API_MUTEX_UNLOCK();
+
+#ifdef GSL_LOG
+ if( offsetwords != mmRBBM_STATUS && offsetwords != mmCP_RB_RPTR )
+ kgsl_log_write( KGSL_LOG_GROUP_DEVICE | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_device_regread. Return value %B\n", status );
+#endif
+
+ return (status);
+}
+
+//----------------------------------------------------------------------------
+
+KGSL_API int
+kgsl_device_regwrite(gsl_deviceid_t device_id, unsigned int offsetwords, unsigned int value)
+{
+ int status = GSL_FAILURE_NOTINITIALIZED;
+ gsl_device_t *device;
+
+ kgsl_log_write( KGSL_LOG_GROUP_DEVICE | KGSL_LOG_LEVEL_TRACE,
+ "--> int kgsl_device_regwrite(gsl_deviceid_t device_id=%D, unsigned int offsetwords=%R, unsigned int value=0x%08x)\n", device_id, offsetwords, value );
+
+ GSL_API_MUTEX_LOCK();
+
+ device = &gsl_driver.device[device_id-1]; // device_id is 1 based
+
+ KOS_ASSERT(offsetwords < device->regspace.sizebytes);
+
+ if (device->ftbl.device_regwrite)
+ {
+ status = device->ftbl.device_regwrite(device, offsetwords, value);
+ }
+
+ GSL_API_MUTEX_UNLOCK();
+
+ kgsl_log_write( KGSL_LOG_GROUP_DEVICE | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_device_regwrite. Return value %B\n", status );
+
+ return (status);
+}
+
+//----------------------------------------------------------------------------
+
+KGSL_API int
+kgsl_device_waitirq(gsl_deviceid_t device_id, gsl_intrid_t intr_id, unsigned int *count, unsigned int timeout)
+{
+ int status = GSL_FAILURE_NOTINITIALIZED;
+ gsl_device_t *device;
+
+ kgsl_log_write( KGSL_LOG_GROUP_DEVICE | KGSL_LOG_LEVEL_TRACE,
+ "--> int kgsl_device_waitirq(gsl_deviceid_t device_id=%D, gsl_intrid_t intr_id=%d, unsigned int *count=0x%08x, unsigned int timout=0x%08x)\n", device_id, intr_id, count, timeout);
+
+ GSL_API_MUTEX_LOCK();
+
+ device = &gsl_driver.device[device_id-1]; // device_id is 1 based
+
+ if (device->ftbl.device_waitirq)
+ {
+ status = device->ftbl.device_waitirq(device, intr_id, count, timeout);
+ }
+
+ GSL_API_MUTEX_UNLOCK();
+
+ kgsl_log_write( KGSL_LOG_GROUP_DEVICE | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_device_waitirq. Return value %B\n", status );
+
+ return (status);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_device_runpending(gsl_device_t *device)
+{
+ int status = GSL_FAILURE_NOTINITIALIZED;
+
+ kgsl_log_write( KGSL_LOG_GROUP_DEVICE | KGSL_LOG_LEVEL_TRACE,
+ "--> int kgsl_device_runpending(gsl_device_t *device=0x%08x )\n", device );
+
+ if (device->flags & GSL_FLAGS_INITIALIZED)
+ {
+ if (device->ftbl.device_runpending)
+ {
+ status = device->ftbl.device_runpending(device);
+ }
+ }
+
+ // free any pending freeontimestamps
+ kgsl_cmdstream_memqueue_drain(device);
+
+ kgsl_log_write( KGSL_LOG_GROUP_DEVICE | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_device_runpending. Return value %B\n", status );
+
+ return (status);
+}
+
diff --git a/drivers/mxc/amd-gpu/common/gsl_drawctxt.c b/drivers/mxc/amd-gpu/common/gsl_drawctxt.c
new file mode 100644
index 000000000000..1e8fa1a4962e
--- /dev/null
+++ b/drivers/mxc/amd-gpu/common/gsl_drawctxt.c
@@ -0,0 +1,1828 @@
+/* Copyright (c) 2002,2007-2009, Code Aurora Forum. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 and
+ * only version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that 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.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
+ *
+ */
+
+#include "gsl.h"
+#include "gsl_hal.h"
+#ifdef _LINUX
+#include <asm/div64.h>
+#endif
+
+#ifdef GSL_BLD_YAMATO
+
+//////////////////////////////////////////////////////////////////////////////
+//
+// Memory Map for Register, Constant & Instruction Shadow, and Command Buffers (34.5KB)
+//
+// +---------------------+------------+-------------+---+---------------------+
+// | ALU Constant Shadow | Reg Shadow | C&V Buffers |Tex| Shader Instr Shadow |
+// +---------------------+------------+-------------+---+---------------------+
+// ________________________________' '___________________
+// ' '
+// +--------------+-----------+------+-----------+------------------------+
+// | Restore Regs | Save Regs | Quad | Gmem Save | Gmem Restore | unused |
+// +--------------+-----------+------+-----------+------------------------+
+//
+// 8K - ALU Constant Shadow (8K aligned)
+// 4K - H/W Register Shadow (8K aligned)
+// 9K - Command and Vertex Buffers
+// - Indirect command buffer : Const/Reg restore
+// - includes Loop & Bool const shadows
+// - Indirect command buffer : Const/Reg save
+// - Quad vertices & texture coordinates
+// - Indirect command buffer : Gmem save
+// - Indirect command buffer : Gmem restore
+// - Unused (padding to 8KB boundary)
+// <1K - Texture Constant Shadow (768 bytes) (8K aligned)
+// 18K - Shader Instruction Shadow
+// - 6K vertex (32 byte aligned)
+// - 6K pixel (32 byte aligned)
+// - 6K shared (32 byte aligned)
+//
+// Note: Reading constants into a shadow, one at a time using REG_TO_MEM, takes
+// 3 DWORDS per DWORD transfered, plus 1 DWORD for the shadow, for a total of
+// 16 bytes per constant. If the texture constants were transfered this way,
+// the Command & Vertex Buffers section would extend past the 16K boundary.
+// By moving the texture constant shadow area to start at 16KB boundary, we
+// only require approximately 40 bytes more memory, but are able to use the
+// LOAD_CONSTANT_CONTEXT shadowing feature for the textures, speeding up
+// context switching.
+//
+// [Using LOAD_CONSTANT_CONTEXT shadowing feature for the Loop and/or Bool
+// constants would require an additional 8KB each, for alignment.]
+//
+//////////////////////////////////////////////////////////////////////////////
+
+//////////////////////////////////////////////////////////////////////////////
+// Constants
+//////////////////////////////////////////////////////////////////////////////
+
+#define ALU_CONSTANTS 2048 // DWORDS
+#define NUM_REGISTERS 1024 // DWORDS
+#ifdef DISABLE_SHADOW_WRITES
+ #define CMD_BUFFER_LEN 9216 // DWORDS
+#else
+ #define CMD_BUFFER_LEN 3072 // DWORDS
+#endif
+#define TEX_CONSTANTS (32*6) // DWORDS
+#define BOOL_CONSTANTS 8 // DWORDS
+#define LOOP_CONSTANTS 56 // DWORDS
+#define SHADER_INSTRUCT_LOG2 9U // 2^n == SHADER_INSTRUCTIONS
+
+#if defined(PM4_IM_STORE)
+#define SHADER_INSTRUCT (1<<SHADER_INSTRUCT_LOG2) // 96-bit instructions
+#else
+#define SHADER_INSTRUCT 0
+#endif
+
+// LOAD_CONSTANT_CONTEXT shadow size
+#define LCC_SHADOW_SIZE 0x2000 // 8KB
+
+#define ALU_SHADOW_SIZE LCC_SHADOW_SIZE // 8KB
+#define REG_SHADOW_SIZE 0x1000 // 4KB
+#ifdef DISABLE_SHADOW_WRITES
+ #define CMD_BUFFER_SIZE 0x9000 // 36KB
+#else
+ #define CMD_BUFFER_SIZE 0x3000 // 12KB
+#endif
+#define TEX_SHADOW_SIZE (TEX_CONSTANTS*4) // 768 bytes
+#define SHADER_SHADOW_SIZE (SHADER_INSTRUCT*12)// 6KB
+
+#define REG_OFFSET LCC_SHADOW_SIZE
+#define CMD_OFFSET (REG_OFFSET + REG_SHADOW_SIZE)
+#define TEX_OFFSET (CMD_OFFSET + CMD_BUFFER_SIZE)
+#define SHADER_OFFSET ((TEX_OFFSET + TEX_SHADOW_SIZE + 32) & ~31)
+
+#define CONTEXT_SIZE (SHADER_OFFSET + 3 * SHADER_SHADOW_SIZE)
+
+
+/////////////////////////////////////////////////////////////////////////////
+// macros
+//////////////////////////////////////////////////////////////////////////////
+#ifdef GSL_LOCKING_FINEGRAIN
+#define GSL_CONTEXT_MUTEX_CREATE() device->drawctxt_mutex = kos_mutex_create("gsl_drawctxt"); \
+ if (!device->drawctxt_mutex) {return (GSL_FAILURE);}
+#define GSL_CONTEXT_MUTEX_LOCK() kos_mutex_lock(device->drawctxt_mutex)
+#define GSL_CONTEXT_MUTEX_UNLOCK() kos_mutex_unlock(device->drawctxt_mutex)
+#define GSL_CONTEXT_MUTEX_FREE() kos_mutex_free(device->drawctxt_mutex); device->drawctxt_mutex = 0;
+#else
+#define GSL_CONTEXT_MUTEX_CREATE()
+#define GSL_CONTEXT_MUTEX_LOCK()
+#define GSL_CONTEXT_MUTEX_UNLOCK()
+#define GSL_CONTEXT_MUTEX_FREE()
+#endif
+
+
+//////////////////////////////////////////////////////////////////////////////
+// temporary work structure
+//////////////////////////////////////////////////////////////////////////////
+
+typedef struct
+{
+ unsigned int *start; // Command & Vertex buffer start
+ unsigned int *cmd; // Next available dword in C&V buffer
+
+ // address of buffers, needed when creating IB1 command buffers.
+ gpuaddr_t bool_shadow; // Address where bool constants are shadowed
+ gpuaddr_t loop_shadow; // Address where loop constants are shadowed
+
+#if defined(PM4_IM_STORE)
+ gpuaddr_t shader_shared; // Address of shared shader instruction shadow
+ gpuaddr_t shader_vertex; // Address of vertex shader instruction shadow
+ gpuaddr_t shader_pixel; // Address of pixel shader instruction shadow
+#endif
+
+ gpuaddr_t reg_values[2]; // Addresses in command buffer where separately handled registers are saved
+ gpuaddr_t chicken_restore;// Address where the TP0_CHICKEN register value is written
+ gpuaddr_t gmem_base; // Base gpu address of GMEM
+}
+ctx_t;
+
+//////////////////////////////////////////////////////////////////////////////
+// Helper function to calculate IEEE754 single precision float values without FPU
+//////////////////////////////////////////////////////////////////////////////
+unsigned int uint2float( unsigned int uintval )
+{
+ unsigned int exp = 0;
+ unsigned int frac = 0;
+ unsigned int u = uintval;
+
+ // Handle zero separately
+ if( uintval == 0 ) return 0;
+
+ // Find log2 of u
+ if(u>=0x10000) { exp+=16; u>>=16; }
+ if(u>=0x100 ) { exp+=8; u>>=8; }
+ if(u>=0x10 ) { exp+=4; u>>=4; }
+ if(u>=0x4 ) { exp+=2; u>>=2; }
+ if(u>=0x2 ) { exp+=1; u>>=1; }
+
+ // Calculate fraction
+ frac = ( uintval & ( ~( 1 << exp ) ) ) << ( 23 - exp );
+
+ // Exp is biased by 127 and shifted 23 bits
+ exp = ( exp + 127 ) << 23;
+
+ return ( exp | frac );
+}
+
+//////////////////////////////////////////////////////////////////////////////
+// Helper function to divide two unsigned ints and return the result as a floating point value
+//////////////////////////////////////////////////////////////////////////////
+unsigned int uintdivide(unsigned int a, unsigned int b)
+{
+#ifdef _LINUX
+ uint64_t a_fixed = a << 16;
+ uint64_t b_fixed = b << 16;
+#else
+ unsigned int a_fixed = a << 16;
+ unsigned int b_fixed = b << 16;
+#endif
+ // Assume the result is 0.fraction
+ unsigned int fraction;
+ unsigned int exp = 126;
+
+ if( b == 0 ) return 0;
+
+#ifdef _LINUX
+ a_fixed = a_fixed << 32;
+ do_div(a_fixed, b_fixed);
+ fraction = (unsigned int)a_fixed;
+#else
+ fraction = ((unsigned int)((((__int64)a_fixed) << 32) / (__int64)b_fixed));
+#endif
+
+ if( fraction == 0 ) return 0;
+
+ // Normalize
+ while( !(fraction & (1<<31)) )
+ {
+ fraction <<= 1;
+ exp--;
+ }
+ // Remove hidden bit
+ fraction <<= 1;
+
+ // Round
+ if( ( fraction & 0x1ff ) > 256 )
+ {
+ int rounded = 0;
+ int i = 9;
+
+ // Do the bit addition
+ while( !rounded )
+ {
+ if( fraction & (1<<i) )
+ {
+ // 1b + 1b = 0b, carry = 1
+ fraction &= ~(1<<i);
+ i++;
+ }
+ else
+ {
+ fraction |= (1<<i);
+ rounded = 1;
+ }
+ }
+ }
+
+ // Use 23 most significant bits for the fraction
+ fraction >>= 9;
+
+ return ( ( exp << 23 ) | fraction );
+}
+
+
+
+//////////////////////////////////////////////////////////////////////////////
+// context save (gmem -> sys)
+//////////////////////////////////////////////////////////////////////////////
+
+
+//////////////////////////////////////////////////////////////////////////////
+// pre-compiled vertex shader program
+//
+// attribute vec4 P;
+// void main(void)
+// {
+// gl_Position = P;
+// }
+//
+//////////////////////////////////////////////////////////////////////////////
+
+#define GMEM2SYS_VTX_PGM_LEN 0x12
+
+static const unsigned int gmem2sys_vtx_pgm[GMEM2SYS_VTX_PGM_LEN] = {
+ 0x00011003, 0x00001000, 0xc2000000,
+ 0x00001004, 0x00001000, 0xc4000000,
+ 0x00001005, 0x00002000, 0x00000000,
+ 0x1cb81000, 0x00398a88, 0x00000003,
+ 0x140f803e, 0x00000000, 0xe2010100,
+ 0x14000000, 0x00000000, 0xe2000000
+};
+
+
+//////////////////////////////////////////////////////////////////////////////
+// pre-compiled fragment shader program
+//
+// precision highp float;
+// uniform vec4 clear_color;
+// void main(void)
+// {
+// gl_FragColor = clear_color;
+// }
+//
+//////////////////////////////////////////////////////////////////////////////
+
+#define GMEM2SYS_FRAG_PGM_LEN 0x0c
+
+static const unsigned int gmem2sys_frag_pgm[GMEM2SYS_FRAG_PGM_LEN] = {
+ 0x00000000, 0x1002c400, 0x10000000,
+ 0x00001003, 0x00002000, 0x00000000,
+ 0x140f8000, 0x00000000, 0x22000000,
+ 0x14000000, 0x00000000, 0xe2000000
+};
+
+
+//////////////////////////////////////////////////////////////////////////////
+// context restore (sys -> gmem)
+//////////////////////////////////////////////////////////////////////////////
+
+
+//////////////////////////////////////////////////////////////////////////////
+// pre-compiled vertex shader program
+//
+// attribute vec4 position;
+// attribute vec4 texcoord;
+// varying vec4 texcoord0;
+// void main()
+// {
+// gl_Position = position;
+// texcoord0 = texcoord;
+// }
+//
+//////////////////////////////////////////////////////////////////////////////
+
+#define SYS2GMEM_VTX_PGM_LEN 0x18
+
+static const unsigned int sys2gmem_vtx_pgm[SYS2GMEM_VTX_PGM_LEN] = {
+ 0x00052003, 0x00001000, 0xc2000000, 0x00001005,
+ 0x00001000, 0xc4000000, 0x00001006, 0x10071000,
+ 0x20000000, 0x18981000, 0x0039ba88, 0x00000003,
+ 0x12982000, 0x40257b08, 0x00000002, 0x140f803e,
+ 0x00000000, 0xe2010100, 0x140f8000, 0x00000000,
+ 0xe2020200, 0x14000000, 0x00000000, 0xe2000000
+};
+
+
+//////////////////////////////////////////////////////////////////////////////
+// pre-compiled fragment shader program
+//
+// precision mediump float;
+// uniform sampler2D tex0;
+// varying vec4 texcoord0;
+// void main()
+// {
+// gl_FragColor = texture2D(tex0, texcoord0.xy);
+// }
+//
+//////////////////////////////////////////////////////////////////////////////
+
+#define SYS2GMEM_FRAG_PGM_LEN 0x0f
+
+static const unsigned int sys2gmem_frag_pgm[SYS2GMEM_FRAG_PGM_LEN] = {
+ 0x00011002, 0x00001000, 0xc4000000, 0x00001003,
+ 0x10041000, 0x20000000, 0x10000001, 0x1ffff688,
+ 0x00000002, 0x140f8000, 0x00000000, 0xe2000000,
+ 0x14000000, 0x00000000, 0xe2000000
+};
+
+
+//////////////////////////////////////////////////////////////////////////////
+// shader texture constants (sysmem -> gmem)
+//////////////////////////////////////////////////////////////////////////////
+
+#define SYS2GMEM_TEX_CONST_LEN 6
+
+static unsigned int sys2gmem_tex_const[SYS2GMEM_TEX_CONST_LEN] =
+{
+ // Texture, FormatXYZW=Unsigned, ClampXYZ=Wrap/Repeat,RFMode=ZeroClamp-1,Dim=1:2d
+ 0x00000002, // Pitch = TBD
+
+ // Format=6:8888_WZYX, EndianSwap=0:None, ReqSize=0:256bit, DimHi=0, NearestClamp=1:OGL Mode
+ 0x00000806, // Address[31:12] = TBD
+
+ // Width, Height, EndianSwap=0:None
+ 0, // Width & Height = TBD
+
+ // NumFormat=0:RF, DstSelXYZW=XYZW, ExpAdj=0, MagFilt=MinFilt=0:Point, Mip=2:BaseMap
+ 0 << 1 | 1 << 4 | 2 << 7 | 3 << 10 | 2 << 23,
+
+ // VolMag=VolMin=0:Point, MinMipLvl=0, MaxMipLvl=1, LodBiasH=V=0, Dim3d=0
+ 0,
+
+ // BorderColor=0:ABGRBlack, ForceBC=0:diable, TriJuice=0, Aniso=0, Dim=1:2d, MipPacking=0
+ 1 << 9 // Mip Address[31:12] = TBD
+};
+
+
+//////////////////////////////////////////////////////////////////////////////
+// quad for copying GMEM to context shadow
+//////////////////////////////////////////////////////////////////////////////
+
+#define QUAD_LEN 12
+
+static unsigned int gmem_copy_quad[QUAD_LEN] = {
+ 0x00000000, 0x00000000, 0x3f800000,
+ 0x00000000, 0x00000000, 0x3f800000,
+ 0x00000000, 0x00000000, 0x3f800000,
+ 0x00000000, 0x00000000, 0x3f800000
+};
+
+#define TEXCOORD_LEN 8
+
+static unsigned int gmem_copy_texcoord[TEXCOORD_LEN] = {
+ 0x00000000, 0x3f800000,
+ 0x3f800000, 0x3f800000,
+ 0x00000000, 0x00000000,
+ 0x3f800000, 0x00000000
+};
+
+#define NUM_COLOR_FORMATS 13
+
+static SurfaceFormat surface_format_table[NUM_COLOR_FORMATS] =
+{
+ FMT_4_4_4_4, // COLORX_4_4_4_4
+ FMT_1_5_5_5, // COLORX_1_5_5_5
+ FMT_5_6_5, // COLORX_5_6_5
+ FMT_8, // COLORX_8
+ FMT_8_8, // COLORX_8_8
+ FMT_8_8_8_8, // COLORX_8_8_8_8
+ FMT_8_8_8_8, // COLORX_S8_8_8_8
+ FMT_16_FLOAT, // COLORX_16_FLOAT
+ FMT_16_16_FLOAT, // COLORX_16_16_FLOAT
+ FMT_16_16_16_16_FLOAT, // COLORX_16_16_16_16_FLOAT
+ FMT_32_FLOAT, // COLORX_32_FLOAT
+ FMT_32_32_FLOAT, // COLORX_32_32_FLOAT
+ FMT_32_32_32_32_FLOAT, // COLORX_32_32_32_32_FLOAT
+};
+
+static unsigned int format2bytesperpixel[NUM_COLOR_FORMATS] =
+{
+ 2, // COLORX_4_4_4_4
+ 2, // COLORX_1_5_5_5
+ 2, // COLORX_5_6_5
+ 1, // COLORX_8
+ 2, // COLORX_8_8_8
+ 4, // COLORX_8_8_8_8
+ 4, // COLORX_S8_8_8_8
+ 2, // COLORX_16_FLOAT
+ 4, // COLORX_16_16_FLOAT
+ 8, // COLORX_16_16_16_16_FLOAT
+ 4, // COLORX_32_FLOAT
+ 8, // COLORX_32_32_FLOAT
+ 16, // COLORX_32_32_32_32_FLOAT
+};
+
+//////////////////////////////////////////////////////////////////////////////
+// shader linkage info
+//////////////////////////////////////////////////////////////////////////////
+
+#define SHADER_CONST_ADDR (11 * 6 + 3)
+
+
+//////////////////////////////////////////////////////////////////////////////
+// gmem command buffer length
+//////////////////////////////////////////////////////////////////////////////
+
+#define PM4_REG(reg) ((0x4 << 16) | (GSL_HAL_SUBBLOCK_OFFSET(reg)))
+
+//////////////////////////////////////////////////////////////////////////////
+// functions
+//////////////////////////////////////////////////////////////////////////////
+
+static void
+config_gmemsize(gmem_shadow_t *shadow, int gmem_size)
+{
+ int w=64, h=64; // 16KB surface, minimum
+
+ // convert from bytes to 32-bit words
+ gmem_size = (gmem_size + 3)/4;
+
+ // find the right surface size, close to a square.
+ while (w * h < gmem_size)
+ if (w < h)
+ w *= 2;
+ else
+ h *= 2;
+
+ shadow->width = w;
+ shadow->height = h;
+ shadow->pitch = w;
+ shadow->format = COLORX_8_8_8_8;
+ shadow->size = shadow->pitch * shadow->height * 4;
+
+ shadow->gmem_width = w;
+ shadow->gmem_height = h;
+ shadow->gmem_pitch = w;
+}
+
+
+//////////////////////////////////////////////////////////////////////////////
+
+static unsigned int
+gpuaddr(unsigned int *cmd, gsl_memdesc_t *memdesc)
+{
+ return memdesc->gpuaddr + ((char *)cmd - (char *)memdesc->hostptr);
+}
+
+
+//////////////////////////////////////////////////////////////////////////////
+
+static void
+create_ib1(gsl_drawctxt_t *drawctxt, unsigned int *cmd, unsigned int *start, unsigned int *end)
+{
+ cmd[0] = PM4_HDR_INDIRECT_BUFFER_PFD;
+ cmd[1] = gpuaddr(start, &drawctxt->gpustate);
+ cmd[2] = end - start;
+}
+
+
+//////////////////////////////////////////////////////////////////////////////
+
+static unsigned int *
+program_shader(unsigned int *cmds, int vtxfrag, const unsigned int *shader_pgm, int dwords)
+{
+ // load the patched vertex shader stream
+ *cmds++ = pm4_type3_packet(PM4_IM_LOAD_IMMEDIATE, 2 + dwords);
+ *cmds++ = vtxfrag; // 0=vertex shader, 1=fragment shader
+ *cmds++ = ( (0 << 16) | dwords ); // instruction start & size (in 32-bit words)
+
+ kos_memcpy(cmds, shader_pgm, dwords<<2);
+ cmds += dwords;
+
+ return cmds;
+}
+
+
+//////////////////////////////////////////////////////////////////////////////
+
+static unsigned int *
+reg_to_mem(unsigned int *cmds, gpuaddr_t dst, gpuaddr_t src, int dwords)
+{
+ while (dwords-- > 0)
+ {
+ *cmds++ = pm4_type3_packet(PM4_REG_TO_MEM, 2);
+ *cmds++ = src++;
+ *cmds++ = dst;
+ dst += 4;
+ }
+
+ return cmds;
+}
+
+
+
+#ifdef DISABLE_SHADOW_WRITES
+
+static void build_reg_to_mem_range(unsigned int start, unsigned int end, unsigned int** cmd, gsl_drawctxt_t *drawctxt)
+{
+ unsigned int i = start;
+
+ for(i=start; i<=end; i++)
+ {
+ *(*cmd)++ = pm4_type3_packet(PM4_REG_TO_MEM, 2);
+ *(*cmd)++ = i | (1<<30);
+ *(*cmd)++ = ((drawctxt->gpustate.gpuaddr + REG_OFFSET) & 0xFFFFE000) + (i-0x2000)*4;
+ }
+}
+
+#endif
+
+//////////////////////////////////////////////////////////////////////////////
+// chicken restore
+//////////////////////////////////////////////////////////////////////////////
+static unsigned int*
+build_chicken_restore_cmds(gsl_drawctxt_t *drawctxt, ctx_t *ctx)
+{
+ unsigned int *start = ctx->cmd;
+ unsigned int *cmds = start;
+
+ *cmds++ = pm4_type3_packet(PM4_WAIT_FOR_IDLE, 1);
+ *cmds++ = 0;
+
+ *cmds++ = pm4_type0_packet(mmTP0_CHICKEN, 1);
+ ctx->chicken_restore = gpuaddr(cmds, &drawctxt->gpustate);
+ *cmds++ = 0x00000000;
+
+
+ // create indirect buffer command for above command sequence
+ create_ib1(drawctxt, drawctxt->chicken_restore, start, cmds);
+
+ return cmds;
+}
+
+
+
+//////////////////////////////////////////////////////////////////////////////
+// context save
+//////////////////////////////////////////////////////////////////////////////
+
+
+//////////////////////////////////////////////////////////////////////////////
+// save h/w regs, alu constants, texture contants, etc. ...
+// requires: bool_shadow_gpuaddr, loop_shadow_gpuaddr
+//////////////////////////////////////////////////////////////////////////////
+
+static void
+build_regsave_cmds(gsl_drawctxt_t *drawctxt, ctx_t *ctx)
+{
+ unsigned int *start = ctx->cmd;
+ unsigned int *cmd = start;
+
+#ifdef DISABLE_SHADOW_WRITES
+ // Write HW registers into shadow
+ build_reg_to_mem_range(mmRB_SURFACE_INFO, mmRB_DEPTH_INFO, &cmd, drawctxt);
+ build_reg_to_mem_range(mmCOHER_DEST_BASE_0, mmPA_SC_SCREEN_SCISSOR_BR, &cmd, drawctxt);
+ build_reg_to_mem_range(mmPA_SC_WINDOW_OFFSET, mmPA_SC_WINDOW_SCISSOR_BR, &cmd, drawctxt);
+ build_reg_to_mem_range(mmVGT_MAX_VTX_INDX, mmRB_FOG_COLOR, &cmd, drawctxt);
+ build_reg_to_mem_range(mmRB_STENCILREFMASK_BF, mmPA_CL_VPORT_ZOFFSET, &cmd, drawctxt);
+ build_reg_to_mem_range(mmSQ_PROGRAM_CNTL, mmSQ_WRAPPING_1, &cmd, drawctxt);
+ build_reg_to_mem_range(mmRB_DEPTHCONTROL, mmRB_MODECONTROL, &cmd, drawctxt);
+ build_reg_to_mem_range(mmPA_SU_POINT_SIZE, mmPA_SC_LINE_STIPPLE, &cmd, drawctxt);
+ build_reg_to_mem_range(mmPA_SC_VIZ_QUERY, mmPA_SC_VIZ_QUERY, &cmd, drawctxt);
+ build_reg_to_mem_range(mmPA_SC_LINE_CNTL, mmSQ_PS_CONST, &cmd, drawctxt);
+ build_reg_to_mem_range(mmPA_SC_AA_MASK, mmPA_SC_AA_MASK, &cmd, drawctxt);
+ build_reg_to_mem_range(mmVGT_VERTEX_REUSE_BLOCK_CNTL, mmRB_DEPTH_CLEAR, &cmd, drawctxt);
+ build_reg_to_mem_range(mmRB_SAMPLE_COUNT_CTL, mmRB_COLOR_DEST_MASK, &cmd, drawctxt);
+ build_reg_to_mem_range(mmPA_SU_POLY_OFFSET_FRONT_SCALE, mmPA_SU_POLY_OFFSET_BACK_OFFSET, &cmd, drawctxt);
+
+ // Copy ALU constants
+ cmd = reg_to_mem(cmd, (drawctxt->gpustate.gpuaddr) & 0xFFFFE000, mmSQ_CONSTANT_0, ALU_CONSTANTS);
+
+ // Copy Tex constants
+ cmd = reg_to_mem(cmd, (drawctxt->gpustate.gpuaddr + TEX_OFFSET) & 0xFFFFE000, mmSQ_FETCH_0, TEX_CONSTANTS);
+#else
+ // H/w registers are already shadowed; just need to disable shadowing to prevent corruption.
+ *cmd++ = pm4_type3_packet(PM4_LOAD_CONSTANT_CONTEXT, 3);
+ *cmd++ = (drawctxt->gpustate.gpuaddr + REG_OFFSET) & 0xFFFFE000;
+ *cmd++ = 4 << 16; // regs, start=0
+ *cmd++ = 0x0; // count = 0
+
+ // ALU constants are already shadowed; just need to disable shadowing to prevent corruption.
+ *cmd++ = pm4_type3_packet(PM4_LOAD_CONSTANT_CONTEXT, 3);
+ *cmd++ = drawctxt->gpustate.gpuaddr & 0xFFFFE000;
+ *cmd++ = 0 << 16; // ALU, start=0
+ *cmd++ = 0x0; // count = 0
+
+ // Tex constants are already shadowed; just need to disable shadowing to prevent corruption.
+ *cmd++ = pm4_type3_packet(PM4_LOAD_CONSTANT_CONTEXT, 3);
+ *cmd++ = (drawctxt->gpustate.gpuaddr + TEX_OFFSET) & 0xFFFFE000;
+ *cmd++ = 1 << 16; // Tex, start=0
+ *cmd++ = 0x0; // count = 0
+#endif
+
+
+
+
+ // Need to handle some of the registers separately
+ *cmd++ = pm4_type3_packet(PM4_REG_TO_MEM, 2);
+ *cmd++ = mmSQ_GPR_MANAGEMENT;
+ *cmd++ = ctx->reg_values[0];
+ *cmd++ = pm4_type3_packet(PM4_REG_TO_MEM, 2);
+ *cmd++ = mmTP0_CHICKEN;
+ *cmd++ = ctx->reg_values[1];
+
+ // Copy Boolean constants
+ cmd = reg_to_mem(cmd, ctx->bool_shadow, mmSQ_CF_BOOLEANS, BOOL_CONSTANTS);
+
+ // Copy Loop constants
+ cmd = reg_to_mem(cmd, ctx->loop_shadow, mmSQ_CF_LOOP, LOOP_CONSTANTS);
+
+ // create indirect buffer command for above command sequence
+ create_ib1(drawctxt, drawctxt->reg_save, start, cmd);
+
+ ctx->cmd = cmd;
+}
+
+
+//////////////////////////////////////////////////////////////////////////////
+// copy colour, depth, & stencil buffers from graphics memory to system memory
+//////////////////////////////////////////////////////////////////////////////
+
+static unsigned int*
+build_gmem2sys_cmds(gsl_drawctxt_t *drawctxt, ctx_t* ctx, gmem_shadow_t *shadow)
+{
+ unsigned int *cmds = shadow->gmem_save_commands;
+ unsigned int *start = cmds;
+
+ // Store TP0_CHICKEN register
+ *cmds++ = pm4_type3_packet(PM4_REG_TO_MEM, 2);
+ *cmds++ = mmTP0_CHICKEN;
+ if( ctx )
+ *cmds++ = ctx->chicken_restore;
+ else
+ cmds++;
+
+ *cmds++ = pm4_type3_packet(PM4_WAIT_FOR_IDLE, 1);
+ *cmds++ = 0;
+
+ // Set TP0_CHICKEN to zero
+ *cmds++ = pm4_type0_packet(mmTP0_CHICKEN, 1);
+ *cmds++ = 0x00000000;
+
+ // --------------
+ // program shader
+ // --------------
+
+ // load shader vtx constants ... 5 dwords
+ *cmds++ = pm4_type3_packet(PM4_SET_CONSTANT, 4);
+ *cmds++ = (0x1 << 16) | SHADER_CONST_ADDR;
+ *cmds++ = 0;
+ *cmds++ = shadow->quad_vertices.gpuaddr | 0x3; // valid(?) vtx constant flag & addr
+ *cmds++ = 0x00000030; // limit = 12 dwords
+
+ // Invalidate L2 cache to make sure vertices are updated
+ *cmds++ = pm4_type0_packet(mmTC_CNTL_STATUS, 1);
+ *cmds++ = 0x1;
+
+ *cmds++ = pm4_type3_packet(PM4_SET_CONSTANT, 4);
+ *cmds++ = PM4_REG(mmVGT_MAX_VTX_INDX);
+ *cmds++ = 0x00ffffff; //mmVGT_MAX_VTX_INDX
+ *cmds++ = 0x0; //mmVGT_MIN_VTX_INDX
+ *cmds++ = 0x00000000; //mmVGT_INDX_OFFSET
+
+ *cmds++ = pm4_type3_packet(PM4_SET_CONSTANT, 2);
+ *cmds++ = PM4_REG(mmPA_SC_AA_MASK);
+ *cmds++ = 0x0000ffff; //mmPA_SC_AA_MASK
+
+
+ // load the patched vertex shader stream
+ cmds = program_shader(cmds, 0, gmem2sys_vtx_pgm, GMEM2SYS_VTX_PGM_LEN);
+
+ // Load the patched fragment shader stream
+ cmds = program_shader(cmds, 1, gmem2sys_frag_pgm, GMEM2SYS_FRAG_PGM_LEN);
+
+ // SQ_PROGRAM_CNTL / SQ_CONTEXT_MISC
+ *cmds++ = pm4_type3_packet(PM4_SET_CONSTANT, 3);
+ *cmds++ = PM4_REG(mmSQ_PROGRAM_CNTL);
+ *cmds++ = 0x10010001;
+ *cmds++ = 0x00000008;
+
+
+ // --------------
+ // resolve
+ // --------------
+
+ // PA_CL_VTE_CNTL
+ *cmds++ = pm4_type3_packet(PM4_SET_CONSTANT, 2);
+ *cmds++ = PM4_REG(mmPA_CL_VTE_CNTL);
+ *cmds++ = 0x00000b00; // disable X/Y/Z transforms, X/Y/Z are premultiplied by W
+
+ // change colour buffer to RGBA8888, MSAA = 1, and matching pitch
+ *cmds++ = pm4_type3_packet(PM4_SET_CONSTANT, 3);
+ *cmds++ = PM4_REG(mmRB_SURFACE_INFO);
+ *cmds++ = shadow->gmem_pitch;
+
+ // RB_COLOR_INFO Endian=none, Linear, Format=RGBA8888, Swap=0, Base=gmem_base
+ if( ctx )
+ {
+ KOS_ASSERT((ctx->gmem_base & 0xFFF) == 0); // gmem base assumed 4K aligned.
+ *cmds++ = (shadow->format << RB_COLOR_INFO__COLOR_FORMAT__SHIFT) | ctx->gmem_base;
+ }
+ else
+ {
+ unsigned int temp = *cmds;
+ *cmds++ = (temp & ~RB_COLOR_INFO__COLOR_FORMAT_MASK) | (shadow->format << RB_COLOR_INFO__COLOR_FORMAT__SHIFT);
+ }
+
+ // disable Z
+ *cmds++ = pm4_type3_packet(PM4_SET_CONSTANT, 2);
+ *cmds++ = PM4_REG(mmRB_DEPTHCONTROL);
+ *cmds++ = 0;
+
+ // set mmPA_SU_SC_MODE_CNTL
+ // Front_ptype = draw triangles
+ // Back_ptype = draw triangles
+ // Provoking vertex = last
+ *cmds++ = pm4_type3_packet(PM4_SET_CONSTANT, 2);
+ *cmds++ = PM4_REG(mmPA_SU_SC_MODE_CNTL);
+ *cmds++ = 0x00080240;
+
+ // set the scissor to the extents of the draw surface
+ *cmds++ = pm4_type3_packet(PM4_SET_CONSTANT, 3);
+ *cmds++ = PM4_REG(mmPA_SC_SCREEN_SCISSOR_TL);
+ *cmds++ = (shadow->gmem_offset_y << 16) | shadow->gmem_offset_x;
+ *cmds++ = (shadow->gmem_height << 16) | shadow->gmem_width;
+ *cmds++ = pm4_type3_packet(PM4_SET_CONSTANT, 3);
+ *cmds++ = PM4_REG(mmPA_SC_WINDOW_SCISSOR_TL);
+ *cmds++ = (1U << 31) | (0 << 16) | 0;
+ *cmds++ = (shadow->height << 16) | shadow->width;
+
+ // load the viewport so that z scale = clear depth and z offset = 0.0f
+ *cmds++ = pm4_type3_packet(PM4_SET_CONSTANT, 3);
+ *cmds++ = PM4_REG(mmPA_CL_VPORT_ZSCALE);
+ *cmds++ = 0xbf800000; // -1.0f
+ *cmds++ = 0x0;
+
+ // load the COPY state
+ *cmds++ = pm4_type3_packet(PM4_SET_CONSTANT, 6);
+ *cmds++ = PM4_REG(mmRB_COPY_CONTROL);
+ *cmds++ = 0; // RB_COPY_CONTROL
+
+ {
+ // Calculate the new offset based on the adjusted base
+ unsigned int bytesperpixel = format2bytesperpixel[shadow->format];
+ unsigned int addr = (shadow->gmemshadow.gpuaddr + shadow->offset * bytesperpixel);
+ unsigned int offset = (addr - (addr & 0xfffff000)) / bytesperpixel;
+
+ *cmds++ = addr & 0xfffff000; // RB_COPY_DEST_BASE
+ *cmds++ = shadow->pitch >> 5; // RB_COPY_DEST_PITCH
+ *cmds++ = 0x0003c008 | (shadow->format << RB_COPY_DEST_INFO__COPY_DEST_FORMAT__SHIFT); // Endian=none, Linear, Format=RGBA8888,Swap=0,!Dither,MaskWrite:R=G=B=A=1
+
+ KOS_ASSERT( (offset & 0xfffff000) == 0 ); // Make sure we stay in offsetx field.
+ *cmds++ = offset;
+ }
+
+ *cmds++ = pm4_type3_packet(PM4_SET_CONSTANT, 2);
+ *cmds++ = PM4_REG(mmRB_MODECONTROL);
+ *cmds++ = 0x6; // EDRAM copy
+
+ // queue the draw packet
+ *cmds++ = pm4_type3_packet(PM4_DRAW_INDX, 2);
+ *cmds++ = 0; // viz query info.
+ *cmds++ = 0x00030088; // PrimType=RectList, NumIndices=3, SrcSel=AutoIndex
+
+ // create indirect buffer command for above command sequence
+ create_ib1(drawctxt, shadow->gmem_save, start, cmds);
+
+ return cmds;
+}
+
+
+//////////////////////////////////////////////////////////////////////////////
+// context restore
+//////////////////////////////////////////////////////////////////////////////
+
+
+//////////////////////////////////////////////////////////////////////////////
+// copy colour, depth, & stencil buffers from system memory to graphics memory
+//////////////////////////////////////////////////////////////////////////////
+
+static unsigned int*
+build_sys2gmem_cmds(gsl_drawctxt_t *drawctxt, ctx_t* ctx, gmem_shadow_t *shadow)
+{
+ unsigned int *cmds = shadow->gmem_restore_commands;
+ unsigned int *start = cmds;
+
+ // Store TP0_CHICKEN register
+ *cmds++ = pm4_type3_packet(PM4_REG_TO_MEM, 2);
+ *cmds++ = mmTP0_CHICKEN;
+ if( ctx )
+ *cmds++ = ctx->chicken_restore;
+ else
+ cmds++;
+
+ *cmds++ = pm4_type3_packet(PM4_WAIT_FOR_IDLE, 1);
+ *cmds++ = 0;
+
+ // Set TP0_CHICKEN to zero
+ *cmds++ = pm4_type0_packet(mmTP0_CHICKEN, 1);
+ *cmds++ = 0x00000000;
+
+ // ----------------
+ // shader constants
+ // ----------------
+
+ // vertex buffer constants
+ *cmds++ = pm4_type3_packet(PM4_SET_CONSTANT, 7);
+
+ *cmds++ = (0x1 << 16) | (9 * 6);
+ *cmds++ = shadow->quad_vertices.gpuaddr | 0x3; // valid(?) vtx constant flag & addr
+ *cmds++ = 0x00000030; // limit = 12 dwords
+ *cmds++ = shadow->quad_texcoords.gpuaddr | 0x3; // valid(?) vtx constant flag & addr
+ *cmds++ = 0x00000020; // limit = 8 dwords
+ *cmds++ = 0;
+ *cmds++ = 0;
+
+ // Invalidate L2 cache to make sure vertices and texture coordinates are updated
+ *cmds++ = pm4_type0_packet(mmTC_CNTL_STATUS, 1);
+ *cmds++ = 0x1;
+
+ // load the patched vertex shader stream
+ cmds = program_shader(cmds, 0, sys2gmem_vtx_pgm, SYS2GMEM_VTX_PGM_LEN);
+
+ // Load the patched fragment shader stream
+ cmds = program_shader(cmds, 1, sys2gmem_frag_pgm, SYS2GMEM_FRAG_PGM_LEN);
+
+ // SQ_PROGRAM_CNTL / SQ_CONTEXT_MISC
+ *cmds++ = pm4_type3_packet(PM4_SET_CONSTANT, 3);
+ *cmds++ = PM4_REG(mmSQ_PROGRAM_CNTL);
+ *cmds++ = 0x10030002;
+ *cmds++ = 0x00000008;
+
+
+ *cmds++ = pm4_type3_packet(PM4_SET_CONSTANT, 2);
+ *cmds++ = PM4_REG(mmPA_SC_AA_MASK);
+ *cmds++ = 0x0000ffff; //mmPA_SC_AA_MASK
+
+ *cmds++ = pm4_type3_packet(PM4_SET_CONSTANT, 2);
+ *cmds++ = PM4_REG(mmPA_SC_VIZ_QUERY);
+ *cmds++ = 0x0; //mmPA_SC_VIZ_QUERY
+
+
+ *cmds++ = pm4_type3_packet(PM4_SET_CONSTANT, 2);
+ *cmds++ = PM4_REG(mmRB_COLORCONTROL);
+ *cmds++ = 0x00000c20; // RB_COLORCONTROL
+
+ *cmds++ = pm4_type3_packet(PM4_SET_CONSTANT, 4);
+ *cmds++ = PM4_REG(mmVGT_MAX_VTX_INDX);
+ *cmds++ = 0x00ffffff; //mmVGT_MAX_VTX_INDX
+ *cmds++ = 0x0; //mmVGT_MIN_VTX_INDX
+ *cmds++ = 0x00000000; //mmVGT_INDX_OFFSET
+
+ *cmds++ = pm4_type3_packet(PM4_SET_CONSTANT, 3);
+ *cmds++ = PM4_REG(mmVGT_VERTEX_REUSE_BLOCK_CNTL);
+ *cmds++ = 0x00000002; //mmVGT_VERTEX_REUSE_BLOCK_CNTL
+ *cmds++ = 0x00000002; //mmVGT_OUT_DEALLOC_CNTL
+
+ *cmds++ = pm4_type3_packet(PM4_SET_CONSTANT, 2);
+ *cmds++ = PM4_REG(mmSQ_INTERPOLATOR_CNTL);
+ *cmds++ = 0xffffffff; //mmSQ_INTERPOLATOR_CNTL
+
+ *cmds++ = pm4_type3_packet(PM4_SET_CONSTANT, 2);
+ *cmds++ = PM4_REG(mmPA_SC_AA_CONFIG);
+ *cmds++ = 0x00000000; //mmPA_SC_AA_CONFIG
+
+
+ // set mmPA_SU_SC_MODE_CNTL
+ // Front_ptype = draw triangles
+ // Back_ptype = draw triangles
+ // Provoking vertex = last
+ *cmds++ = pm4_type3_packet(PM4_SET_CONSTANT, 2);
+ *cmds++ = PM4_REG(mmPA_SU_SC_MODE_CNTL);
+ *cmds++ = 0x00080240;
+
+ // texture constants
+ *cmds++ = pm4_type3_packet(PM4_SET_CONSTANT, (SYS2GMEM_TEX_CONST_LEN + 1));
+ *cmds++ = (0x1 << 16) | (0 * 6);
+ kos_memcpy(cmds, sys2gmem_tex_const, SYS2GMEM_TEX_CONST_LEN<<2);
+ cmds[0] |= (shadow->pitch >> 5) << 22;
+ cmds[1] |= shadow->gmemshadow.gpuaddr | surface_format_table[shadow->format];
+ cmds[2] |= (shadow->width+shadow->offset_x-1) | (shadow->height+shadow->offset_y-1) << 13;
+ cmds += SYS2GMEM_TEX_CONST_LEN;
+
+ // change colour buffer to RGBA8888, MSAA = 1, and matching pitch
+ *cmds++ = pm4_type3_packet(PM4_SET_CONSTANT, 3);
+ *cmds++ = PM4_REG(mmRB_SURFACE_INFO);
+ *cmds++ = shadow->gmem_pitch; // GMEM pitch is equal to context GMEM shadow pitch
+
+ // RB_COLOR_INFO Endian=none, Linear, Format=RGBA8888, Swap=0, Base=gmem_base
+ if( ctx )
+ {
+ *cmds++ = (shadow->format << RB_COLOR_INFO__COLOR_FORMAT__SHIFT) | ctx->gmem_base;
+ }
+ else
+ {
+ unsigned int temp = *cmds;
+ *cmds++ = (temp & ~RB_COLOR_INFO__COLOR_FORMAT_MASK) | (shadow->format << RB_COLOR_INFO__COLOR_FORMAT__SHIFT);
+ }
+
+ // RB_DEPTHCONTROL
+ *cmds++ = pm4_type3_packet(PM4_SET_CONSTANT, 2);
+ *cmds++ = PM4_REG(mmRB_DEPTHCONTROL);
+ *cmds++ = 0; // disable Z
+
+ // set the scissor to the extents of the draw surface
+ *cmds++ = pm4_type3_packet(PM4_SET_CONSTANT, 3);
+ *cmds++ = PM4_REG(mmPA_SC_SCREEN_SCISSOR_TL);
+ *cmds++ = (0 << 16) | 0;
+ *cmds++ = (shadow->height << 16) | shadow->width;
+ *cmds++ = pm4_type3_packet(PM4_SET_CONSTANT, 3);
+ *cmds++ = PM4_REG(mmPA_SC_WINDOW_SCISSOR_TL);
+ *cmds++ = (1U << 31) | (shadow->gmem_offset_y << 16) | shadow->gmem_offset_x;
+ *cmds++ = (shadow->gmem_height << 16) | shadow->gmem_width;
+
+ // PA_CL_VTE_CNTL
+ *cmds++ = pm4_type3_packet(PM4_SET_CONSTANT, 2);
+ *cmds++ = PM4_REG(mmPA_CL_VTE_CNTL);
+ *cmds++ = 0x00000b00; // disable X/Y/Z transforms, X/Y/Z are premultiplied by W
+
+ // load the viewport so that z scale = clear depth and z offset = 0.0f
+ *cmds++ = pm4_type3_packet(PM4_SET_CONSTANT, 3);
+ *cmds++ = PM4_REG(mmPA_CL_VPORT_ZSCALE);
+ *cmds++ = 0xbf800000;
+ *cmds++ = 0x0;
+
+ *cmds++ = pm4_type3_packet(PM4_SET_CONSTANT, 2);
+ *cmds++ = PM4_REG(mmRB_COLOR_MASK);
+ *cmds++ = 0x0000000f; // R = G = B = 1:enabled
+
+ *cmds++ = pm4_type3_packet(PM4_SET_CONSTANT, 2);
+ *cmds++ = PM4_REG(mmRB_COLOR_DEST_MASK);
+ *cmds++ = 0xffffffff;
+
+ *cmds++ = pm4_type3_packet(PM4_SET_CONSTANT, 3);
+ *cmds++ = PM4_REG(mmSQ_WRAPPING_0);
+ *cmds++ = 0x00000000;
+ *cmds++ = 0x00000000;
+
+ *cmds++ = pm4_type3_packet(PM4_SET_CONSTANT, 2);
+ *cmds++ = PM4_REG(mmRB_MODECONTROL);
+ *cmds++ = 0x4; // draw pixels with color and depth/stencil component
+
+ // queue the draw packet
+ *cmds++ = pm4_type3_packet(PM4_DRAW_INDX, 2);
+ *cmds++ = 0; // viz query info.
+ *cmds++ = 0x00030088; // PrimType=RectList, NumIndices=3, SrcSel=AutoIndex
+
+ // create indirect buffer command for above command sequence
+ create_ib1(drawctxt, shadow->gmem_restore, start, cmds);
+
+ return cmds;
+}
+
+
+//////////////////////////////////////////////////////////////////////////////
+// restore h/w regs, alu constants, texture constants, etc. ...
+//////////////////////////////////////////////////////////////////////////////
+
+static unsigned *
+reg_range(unsigned int *cmd, unsigned int start, unsigned int end)
+{
+ *cmd++ = PM4_REG(start); // h/w regs, start addr
+ *cmd++ = end - start + 1; // count
+ return cmd;
+}
+
+
+//////////////////////////////////////////////////////////////////////////////
+
+static void
+build_regrestore_cmds(gsl_drawctxt_t *drawctxt, ctx_t *ctx)
+{
+ unsigned int *start = ctx->cmd;
+ unsigned int *cmd = start;
+
+ // H/W Registers
+ cmd++; // deferred pm4_type3_packet(PM4_LOAD_CONSTANT_CONTEXT, ???);
+#ifdef DISABLE_SHADOW_WRITES
+ *cmd++ = ((drawctxt->gpustate.gpuaddr + REG_OFFSET) & 0xFFFFE000) | 1; // Force mismatch
+#else
+ *cmd++ = (drawctxt->gpustate.gpuaddr + REG_OFFSET) & 0xFFFFE000;
+#endif
+
+ cmd = reg_range(cmd, mmRB_SURFACE_INFO, mmPA_SC_SCREEN_SCISSOR_BR);
+ cmd = reg_range(cmd, mmPA_SC_WINDOW_OFFSET, mmPA_SC_WINDOW_SCISSOR_BR);
+ cmd = reg_range(cmd, mmVGT_MAX_VTX_INDX, mmPA_CL_VPORT_ZOFFSET);
+ cmd = reg_range(cmd, mmSQ_PROGRAM_CNTL, mmSQ_WRAPPING_1);
+ cmd = reg_range(cmd, mmRB_DEPTHCONTROL, mmRB_MODECONTROL);
+ cmd = reg_range(cmd, mmPA_SU_POINT_SIZE, mmPA_SC_VIZ_QUERY);
+ cmd = reg_range(cmd, mmPA_SC_LINE_CNTL, mmRB_COLOR_DEST_MASK);
+ cmd = reg_range(cmd, mmPA_SU_POLY_OFFSET_FRONT_SCALE, mmPA_SU_POLY_OFFSET_BACK_OFFSET);
+
+ // Now we know how many register blocks we have, we can compute command length
+ start[0] = pm4_type3_packet(PM4_LOAD_CONSTANT_CONTEXT, (cmd-start)-1);
+#ifdef DISABLE_SHADOW_WRITES
+ start[2] |= (0<<24) | (4 << 16); // Disable shadowing.
+#else
+ start[2] |= (1<<24) | (4 << 16); // Enable shadowing for the entire register block.
+#endif
+
+ // Need to handle some of the registers separately
+ *cmd++ = pm4_type0_packet(mmSQ_GPR_MANAGEMENT, 1);
+ ctx->reg_values[0] = gpuaddr(cmd, &drawctxt->gpustate);
+ *cmd++ = 0x00040400;
+
+ *cmd++ = pm4_type3_packet(PM4_WAIT_FOR_IDLE, 1);
+ *cmd++ = 0;
+ *cmd++ = pm4_type0_packet(mmTP0_CHICKEN, 1);
+ ctx->reg_values[1] = gpuaddr(cmd, &drawctxt->gpustate);
+ *cmd++ = 0x00000000;
+
+ // ALU Constants
+ *cmd++ = pm4_type3_packet(PM4_LOAD_CONSTANT_CONTEXT, 3);
+ *cmd++ = drawctxt->gpustate.gpuaddr & 0xFFFFE000;
+#ifdef DISABLE_SHADOW_WRITES
+ *cmd++ = (0<<24) | (0<<16) | 0; // Disable shadowing
+#else
+ *cmd++ = (1<<24) | (0<<16) | 0;
+#endif
+ *cmd++ = ALU_CONSTANTS;
+
+
+ // Texture Constants
+ *cmd++ = pm4_type3_packet(PM4_LOAD_CONSTANT_CONTEXT, 3);
+ *cmd++ = (drawctxt->gpustate.gpuaddr + TEX_OFFSET) & 0xFFFFE000;
+#ifdef DISABLE_SHADOW_WRITES
+ *cmd++ = (0<<24) | (1<<16) | 0; // Disable shadowing
+#else
+ *cmd++ = (1<<24) | (1<<16) | 0;
+#endif
+ *cmd++ = TEX_CONSTANTS;
+
+
+ // Boolean Constants
+ *cmd++ = pm4_type3_packet(PM4_SET_CONSTANT, 1 + BOOL_CONSTANTS);
+ *cmd++ = (2<<16) | 0;
+
+ // the next BOOL_CONSTANT dwords is the shadow area for boolean constants.
+ ctx->bool_shadow = gpuaddr(cmd, &drawctxt->gpustate);
+ cmd += BOOL_CONSTANTS;
+
+
+ // Loop Constants
+ *cmd++ = pm4_type3_packet(PM4_SET_CONSTANT, 1 + LOOP_CONSTANTS);
+ *cmd++ = (3<<16) | 0;
+
+ // the next LOOP_CONSTANTS dwords is the shadow area for loop constants.
+ ctx->loop_shadow = gpuaddr(cmd, &drawctxt->gpustate);
+ cmd += LOOP_CONSTANTS;
+
+ // create indirect buffer command for above command sequence
+ create_ib1(drawctxt, drawctxt->reg_restore, start, cmd);
+
+ ctx->cmd = cmd;
+}
+
+
+//////////////////////////////////////////////////////////////////////////////
+// quad for saving/restoring gmem
+//////////////////////////////////////////////////////////////////////////////
+
+static void set_gmem_copy_quad( gmem_shadow_t* shadow )
+{
+ unsigned int tex_offset[2];
+
+ // set vertex buffer values
+
+ gmem_copy_quad[1] = uint2float( shadow->gmem_height + shadow->gmem_offset_y );
+ gmem_copy_quad[3] = uint2float( shadow->gmem_width + shadow->gmem_offset_x );
+ gmem_copy_quad[4] = uint2float( shadow->gmem_height + shadow->gmem_offset_y );
+ gmem_copy_quad[9] = uint2float( shadow->gmem_width + shadow->gmem_offset_x );
+
+ gmem_copy_quad[0] = uint2float( shadow->gmem_offset_x );
+ gmem_copy_quad[6] = uint2float( shadow->gmem_offset_x );
+ gmem_copy_quad[7] = uint2float( shadow->gmem_offset_y );
+ gmem_copy_quad[10] = uint2float( shadow->gmem_offset_y );
+
+ tex_offset[0] = uintdivide( shadow->offset_x, (shadow->offset_x+shadow->width) );
+ tex_offset[1] = uintdivide( shadow->offset_y, (shadow->offset_y+shadow->height) );
+
+ gmem_copy_texcoord[0] = gmem_copy_texcoord[4] = tex_offset[0];
+ gmem_copy_texcoord[5] = gmem_copy_texcoord[7] = tex_offset[1];
+
+ // copy quad data to vertex buffer
+ kos_memcpy(shadow->quad_vertices.hostptr, gmem_copy_quad, QUAD_LEN << 2);
+
+ // copy tex coord data to tex coord buffer
+ kos_memcpy(shadow->quad_texcoords.hostptr, gmem_copy_texcoord, TEXCOORD_LEN << 2);
+}
+
+
+static void
+build_quad_vtxbuff(gsl_drawctxt_t *drawctxt, ctx_t *ctx, gmem_shadow_t* shadow)
+{
+ unsigned int *cmd = ctx->cmd;
+
+ // quad vertex buffer location
+ shadow->quad_vertices.hostptr = cmd;
+ shadow->quad_vertices.gpuaddr = gpuaddr(cmd, &drawctxt->gpustate);
+ cmd += QUAD_LEN;
+
+ // tex coord buffer location (in GPU space)
+ shadow->quad_texcoords.hostptr = cmd;
+ shadow->quad_texcoords.gpuaddr = gpuaddr(cmd, &drawctxt->gpustate);
+
+
+ cmd += TEXCOORD_LEN;
+
+ set_gmem_copy_quad(shadow);
+
+
+ ctx->cmd = cmd;
+}
+
+
+//////////////////////////////////////////////////////////////////////////////
+
+static void
+build_shader_save_restore_cmds(gsl_drawctxt_t *drawctxt, ctx_t *ctx)
+{
+ unsigned int *cmd = ctx->cmd;
+ unsigned int *save, *restore, *fixup;
+#if defined(PM4_IM_STORE)
+ unsigned int *startSizeVtx, *startSizePix, *startSizeShared;
+#endif
+ unsigned int *partition1;
+ unsigned int *shaderBases, *partition2;
+
+#if defined(PM4_IM_STORE)
+ // compute vertex, pixel and shared instruction shadow GPU addresses
+ ctx->shader_vertex = drawctxt->gpustate.gpuaddr + SHADER_OFFSET;
+ ctx->shader_pixel = ctx->shader_vertex + SHADER_SHADOW_SIZE;
+ ctx->shader_shared = ctx->shader_pixel + SHADER_SHADOW_SIZE;
+#endif
+
+
+ //-------------------------------------------------------------------
+ // restore shader partitioning and instructions
+ //-------------------------------------------------------------------
+
+ restore = cmd; // start address
+
+ // Invalidate Vertex & Pixel instruction code address and sizes
+ *cmd++ = pm4_type3_packet(PM4_INVALIDATE_STATE, 1);
+ *cmd++ = 0x00000300; // 0x100 = Vertex, 0x200 = Pixel
+
+ // Restore previous shader vertex & pixel instruction bases.
+ *cmd++ = pm4_type3_packet(PM4_SET_SHADER_BASES, 1);
+ shaderBases = cmd++; // TBD #5: shader bases (from fixup)
+
+ // write the shader partition information to a scratch register
+ *cmd++ = pm4_type0_packet(mmSQ_INST_STORE_MANAGMENT, 1);
+ partition1 = cmd++; // TBD #4a: partition info (from save)
+
+#if defined(PM4_IM_STORE)
+ // load vertex shader instructions from the shadow.
+ *cmd++ = pm4_type3_packet(PM4_IM_LOAD, 2);
+ *cmd++ = ctx->shader_vertex + 0x0; // 0x0 = Vertex
+ startSizeVtx = cmd++; // TBD #1: start/size (from save)
+
+ // load pixel shader instructions from the shadow.
+ *cmd++ = pm4_type3_packet(PM4_IM_LOAD, 2);
+ *cmd++ = ctx->shader_pixel + 0x1; // 0x1 = Pixel
+ startSizePix = cmd++; // TBD #2: start/size (from save)
+
+ // load shared shader instructions from the shadow.
+ *cmd++ = pm4_type3_packet(PM4_IM_LOAD, 2);
+ *cmd++ = ctx->shader_shared + 0x2; // 0x2 = Shared
+ startSizeShared = cmd++; // TBD #3: start/size (from save)
+#endif
+
+ // create indirect buffer command for above command sequence
+ create_ib1(drawctxt, drawctxt->shader_restore, restore, cmd);
+
+
+ //-------------------------------------------------------------------
+ // fixup SET_SHADER_BASES data
+ //
+ // since self-modifying PM4 code is being used here, a seperate
+ // command buffer is used for this fixup operation, to ensure the
+ // commands are not read by the PM4 engine before the data fields
+ // have been written.
+ //-------------------------------------------------------------------
+
+ fixup = cmd; // start address
+
+ // write the shader partition information to a scratch register
+ *cmd++ = pm4_type0_packet(mmSCRATCH_REG2, 1);
+ partition2 = cmd++; // TBD #4b: partition info (from save)
+
+ // mask off unused bits, then OR with shader instruction memory size
+ *cmd++ = pm4_type3_packet(PM4_REG_RMW, 3);
+ *cmd++ = mmSCRATCH_REG2;
+ *cmd++ = 0x0FFF0FFF; // AND off invalid bits.
+ *cmd++ = (unsigned int)((SHADER_INSTRUCT_LOG2-5U) << 29); // OR in instruction memory size
+
+ // write the computed value to the SET_SHADER_BASES data field
+ *cmd++ = pm4_type3_packet(PM4_REG_TO_MEM, 2);
+ *cmd++ = mmSCRATCH_REG2;
+ *cmd++ = gpuaddr(shaderBases, &drawctxt->gpustate); // TBD #5: shader bases (to restore)
+
+ // create indirect buffer command for above command sequence
+ create_ib1(drawctxt, drawctxt->shader_fixup, fixup, cmd);
+
+
+ //-------------------------------------------------------------------
+ // save shader partitioning and instructions
+ //-------------------------------------------------------------------
+
+ save = cmd; // start address
+
+ *cmd++ = pm4_type3_packet(PM4_WAIT_FOR_IDLE, 1);
+ *cmd++ = 0;
+
+ // Fetch the SQ_INST_STORE_MANAGMENT register value,
+ // Store the value in the data fields of the SET_CONSTANT commands above.
+ *cmd++ = pm4_type3_packet(PM4_REG_TO_MEM, 2);
+ *cmd++ = mmSQ_INST_STORE_MANAGMENT;
+ *cmd++ = gpuaddr(partition1, &drawctxt->gpustate); // TBD #4a: partition info (to restore)
+ *cmd++ = pm4_type3_packet(PM4_REG_TO_MEM, 2);
+ *cmd++ = mmSQ_INST_STORE_MANAGMENT;
+ *cmd++ = gpuaddr(partition2, &drawctxt->gpustate); // TBD #4b: partition info (to fixup)
+
+#if defined(PM4_IM_STORE)
+ // Store the vertex shader instructions
+ *cmd++ = pm4_type3_packet(PM4_IM_STORE, 2);
+ *cmd++ = ctx->shader_vertex + 0x0; // 0x0 = Vertex
+ *cmd++ = gpuaddr(startSizeVtx, &drawctxt->gpustate); // TBD #1: start/size (to restore)
+
+ // store the pixel shader instructions
+ *cmd++ = pm4_type3_packet(PM4_IM_STORE, 2);
+ *cmd++ = ctx->shader_pixel + 0x1; // 0x1 = Pixel
+ *cmd++ = gpuaddr(startSizePix, &drawctxt->gpustate); // TBD #2: start/size (to restore)
+
+ // Store the shared shader instructions
+ *cmd++ = pm4_type3_packet(PM4_IM_STORE, 2);
+ *cmd++ = ctx->shader_shared + 0x2; // 0x2 = Shared
+ *cmd++ = gpuaddr(startSizeShared, &drawctxt->gpustate); // TBD #3: start/size (to restore)
+#endif
+
+ *cmd++ = pm4_type3_packet(PM4_WAIT_FOR_IDLE, 1);
+ *cmd++ = 0;
+
+
+
+ // Create indirect buffer command for above command sequence
+ create_ib1(drawctxt, drawctxt->shader_save, save, cmd);
+
+
+ ctx->cmd = cmd;
+}
+
+
+
+//////////////////////////////////////////////////////////////////////////////
+// create buffers for saving/restoring registers and constants
+//////////////////////////////////////////////////////////////////////////////
+
+static int
+create_gpustate_shadow(gsl_device_t *device, gsl_drawctxt_t *drawctxt, ctx_t *ctx)
+{
+ gsl_flags_t flags;
+
+ flags = (GSL_MEMFLAGS_CONPHYS | GSL_MEMFLAGS_ALIGN8K);
+ KGSL_DEBUG(GSL_DBGFLAGS_DUMPX, flags = (GSL_MEMFLAGS_EMEM | GSL_MEMFLAGS_ALIGN8K));
+
+ // allocate memory to allow HW to save sub-blocks for efficient context save/restore
+ if (kgsl_sharedmem_alloc0(device->id, flags, CONTEXT_SIZE, &drawctxt->gpustate) != GSL_SUCCESS)
+ return GSL_FAILURE;
+
+ drawctxt->flags |= CTXT_FLAGS_STATE_SHADOW;
+
+ // Blank out h/w register, constant, and command buffer shadows.
+ kgsl_sharedmem_set0(&drawctxt->gpustate, 0, 0, CONTEXT_SIZE);
+
+ // set-up command and vertex buffer pointers
+ ctx->cmd = ctx->start = (unsigned int *) ((char *)drawctxt->gpustate.hostptr + CMD_OFFSET);
+
+ // build indirect command buffers to save & restore regs/constants
+ build_regrestore_cmds(drawctxt, ctx);
+ build_regsave_cmds(drawctxt, ctx);
+
+ build_shader_save_restore_cmds(drawctxt, ctx);
+
+ return GSL_SUCCESS;
+}
+
+
+//////////////////////////////////////////////////////////////////////////////
+// Allocate GMEM shadow buffer
+//////////////////////////////////////////////////////////////////////////////
+static int
+allocate_gmem_shadow_buffer(gsl_device_t *device, gsl_drawctxt_t *drawctxt)
+{
+ // allocate memory for GMEM shadow
+ if (kgsl_sharedmem_alloc0(device->id, (GSL_MEMFLAGS_CONPHYS | GSL_MEMFLAGS_ALIGN8K),
+ drawctxt->context_gmem_shadow.size, &drawctxt->context_gmem_shadow.gmemshadow) != GSL_SUCCESS)
+ return GSL_FAILURE;
+
+ // blank out gmem shadow.
+ kgsl_sharedmem_set0(&drawctxt->context_gmem_shadow.gmemshadow, 0, 0, drawctxt->context_gmem_shadow.size);
+
+ return GSL_SUCCESS;
+}
+
+
+//////////////////////////////////////////////////////////////////////////////
+// create GMEM save/restore specific stuff
+//////////////////////////////////////////////////////////////////////////////
+
+static int
+create_gmem_shadow(gsl_device_t *device, gsl_drawctxt_t *drawctxt, ctx_t *ctx)
+{
+ unsigned int i;
+ config_gmemsize(&drawctxt->context_gmem_shadow, device->gmemspace.sizebytes);
+ ctx->gmem_base = device->gmemspace.gpu_base;
+
+ if( drawctxt->flags & CTXT_FLAGS_GMEM_SHADOW )
+ {
+ if( allocate_gmem_shadow_buffer(device, drawctxt) != GSL_SUCCESS )
+ return GSL_FAILURE;
+ }
+ else
+ {
+ kos_memset( &drawctxt->context_gmem_shadow.gmemshadow, 0, sizeof( gsl_memdesc_t ) );
+ }
+
+ // build quad vertex buffer
+ build_quad_vtxbuff(drawctxt, ctx, &drawctxt->context_gmem_shadow);
+
+ // build TP0_CHICKEN register restore command buffer
+ ctx->cmd = build_chicken_restore_cmds(drawctxt, ctx);
+
+ // build indirect command buffers to save & restore gmem
+ drawctxt->context_gmem_shadow.gmem_save_commands = ctx->cmd;
+ ctx->cmd = build_gmem2sys_cmds(drawctxt, ctx, &drawctxt->context_gmem_shadow);
+ drawctxt->context_gmem_shadow.gmem_restore_commands = ctx->cmd;
+ ctx->cmd = build_sys2gmem_cmds(drawctxt, ctx, &drawctxt->context_gmem_shadow);
+
+ for( i = 0; i < GSL_MAX_GMEM_SHADOW_BUFFERS; i++ )
+ {
+ // build quad vertex buffer
+ build_quad_vtxbuff(drawctxt, ctx, &drawctxt->user_gmem_shadow[i]);
+
+ // build indirect command buffers to save & restore gmem
+ drawctxt->user_gmem_shadow[i].gmem_save_commands = ctx->cmd;
+ ctx->cmd = build_gmem2sys_cmds(drawctxt, ctx, &drawctxt->user_gmem_shadow[i]);
+
+ drawctxt->user_gmem_shadow[i].gmem_restore_commands = ctx->cmd;
+ ctx->cmd = build_sys2gmem_cmds(drawctxt, ctx, &drawctxt->user_gmem_shadow[i]);
+ }
+
+ return GSL_SUCCESS;
+}
+
+
+//////////////////////////////////////////////////////////////////////////////
+// init draw context
+//////////////////////////////////////////////////////////////////////////////
+
+int
+kgsl_drawctxt_init(gsl_device_t *device)
+{
+ GSL_CONTEXT_MUTEX_CREATE();
+
+ return (GSL_SUCCESS);
+}
+
+
+//////////////////////////////////////////////////////////////////////////////
+// close draw context
+//////////////////////////////////////////////////////////////////////////////
+
+int
+kgsl_drawctxt_close(gsl_device_t *device)
+{
+ GSL_CONTEXT_MUTEX_FREE();
+
+ return (GSL_SUCCESS);
+}
+
+
+//////////////////////////////////////////////////////////////////////////////
+// create a new drawing context
+//////////////////////////////////////////////////////////////////////////////
+
+int
+kgsl_drawctxt_create(gsl_device_t* device, gsl_context_type_t type, unsigned int *drawctxt_id, gsl_flags_t flags)
+{
+ gsl_drawctxt_t *drawctxt;
+ int index;
+ ctx_t ctx;
+
+ kgsl_device_active(device);
+
+ GSL_CONTEXT_MUTEX_LOCK();
+ if (device->drawctxt_count >= GSL_CONTEXT_MAX)
+ {
+ GSL_CONTEXT_MUTEX_UNLOCK();
+ return (GSL_FAILURE);
+ }
+
+ // find a free context slot
+ index = 0;
+ while (index < GSL_CONTEXT_MAX)
+ {
+ if (device->drawctxt[index].flags == CTXT_FLAGS_NOT_IN_USE)
+ break;
+
+ index++;
+ }
+
+ if (index >= GSL_CONTEXT_MAX)
+ {
+ GSL_CONTEXT_MUTEX_UNLOCK();
+ return (GSL_FAILURE);
+ }
+
+ drawctxt = &device->drawctxt[index];
+
+ kos_memset( &drawctxt->context_gmem_shadow, 0, sizeof( gmem_shadow_t ) );
+
+ drawctxt->pid = GSL_CALLER_PROCESSID_GET();
+ drawctxt->flags = CTXT_FLAGS_IN_USE;
+ drawctxt->type = type;
+
+ device->drawctxt_count++;
+
+ // create context shadows, when not running in safe mode
+ if (!(device->flags & GSL_FLAGS_SAFEMODE))
+ {
+ if (create_gpustate_shadow(device, drawctxt, &ctx) != GSL_SUCCESS)
+ {
+ kgsl_drawctxt_destroy(device, index);
+ GSL_CONTEXT_MUTEX_UNLOCK();
+ return (GSL_FAILURE);
+ }
+
+ // Save the shader instruction memory & GMEM on context switching
+ drawctxt->flags |= ( CTXT_FLAGS_SHADER_SAVE | CTXT_FLAGS_GMEM_SHADOW );
+
+ // Clear out user defined GMEM shadow buffer structs
+ kos_memset( drawctxt->user_gmem_shadow, 0, sizeof(gmem_shadow_t)*GSL_MAX_GMEM_SHADOW_BUFFERS );
+
+ // create gmem shadow
+ if (create_gmem_shadow(device, drawctxt, &ctx) != GSL_SUCCESS)
+ {
+ kgsl_drawctxt_destroy(device, index);
+ GSL_CONTEXT_MUTEX_UNLOCK();
+ return (GSL_FAILURE);
+ }
+
+ KOS_ASSERT(ctx.cmd - ctx.start <= CMD_BUFFER_LEN);
+ }
+
+ *drawctxt_id = index;
+
+ GSL_CONTEXT_MUTEX_UNLOCK();
+ return (GSL_SUCCESS);
+}
+
+
+//////////////////////////////////////////////////////////////////////////////
+// destroy a drawing context
+//////////////////////////////////////////////////////////////////////////////
+
+int
+kgsl_drawctxt_destroy(gsl_device_t* device, unsigned int drawctxt_id)
+{
+ gsl_drawctxt_t *drawctxt;
+
+ GSL_CONTEXT_MUTEX_LOCK();
+
+ drawctxt = &device->drawctxt[drawctxt_id];
+
+ if (drawctxt->flags != CTXT_FLAGS_NOT_IN_USE)
+ {
+ // deactivate context
+ if (device->drawctxt_active == drawctxt)
+ {
+ // no need to save GMEM or shader, the context is being destroyed.
+ drawctxt->flags &= ~(CTXT_FLAGS_GMEM_SAVE | CTXT_FLAGS_SHADER_SAVE);
+
+ kgsl_drawctxt_switch(device, GSL_CONTEXT_NONE, 0);
+ }
+
+ device->ftbl.device_idle(device, GSL_TIMEOUT_DEFAULT);
+
+ // destroy state shadow, if allocated
+ if (drawctxt->flags & CTXT_FLAGS_STATE_SHADOW)
+ kgsl_sharedmem_free0(&drawctxt->gpustate, GSL_CALLER_PROCESSID_GET());
+
+
+ // destroy gmem shadow, if allocated
+ if (drawctxt->context_gmem_shadow.gmemshadow.size > 0)
+ {
+ kgsl_sharedmem_free0(&drawctxt->context_gmem_shadow.gmemshadow, GSL_CALLER_PROCESSID_GET());
+ drawctxt->context_gmem_shadow.gmemshadow.size = 0;
+ }
+
+ drawctxt->flags = CTXT_FLAGS_NOT_IN_USE;
+ drawctxt->pid = 0;
+
+ device->drawctxt_count--;
+ KOS_ASSERT(device->drawctxt_count >= 0);
+ }
+
+ GSL_CONTEXT_MUTEX_UNLOCK();
+
+ return (GSL_SUCCESS);
+}
+
+//////////////////////////////////////////////////////////////////////////////
+// Binds a user specified buffer as GMEM shadow area
+//
+// gmem_rect: defines the rectangle that is copied from GMEM. X and Y
+// coordinates need to be multiples of 8 after conversion to 32bpp.
+// X, Y, width, and height need to be at 32-bit boundary to avoid
+// rounding.
+//
+// shadow_x & shadow_y: Position in GMEM shadow buffer where the contents of
+// gmem_rect is copied. Both must be multiples of 8 after
+// conversion to 32bpp. They also need to be at 32-bit
+// boundary to avoid rounding.
+//
+// shadow_buffer: Description of the GMEM shadow buffer. BPP needs to be
+// 8, 16, 32, 64, or 128. Enabled tells if the buffer is
+// used or not (values 0 and 1). All the other buffer
+// parameters are ignored when enabled=0.
+//
+// buffer_id: Two different buffers can be defined. Use buffer IDs 0 and 1.
+//
+//
+//////////////////////////////////////////////////////////////////////////////
+KGSL_API int kgsl_drawctxt_bind_gmem_shadow(gsl_deviceid_t device_id, unsigned int drawctxt_id, const gsl_rect_t* gmem_rect, unsigned int shadow_x, unsigned int shadow_y, const gsl_buffer_desc_t* shadow_buffer, unsigned int buffer_id)
+{
+ gsl_device_t *device = &gsl_driver.device[device_id-1];
+ gsl_drawctxt_t *drawctxt = &device->drawctxt[drawctxt_id];
+ gmem_shadow_t *shadow = &drawctxt->user_gmem_shadow[buffer_id];
+ unsigned int i;
+
+ GSL_API_MUTEX_LOCK();
+ GSL_CONTEXT_MUTEX_LOCK();
+
+ if( !shadow_buffer->enabled )
+ {
+ // Disable shadow
+ shadow->gmemshadow.size = 0;
+ }
+ else
+ {
+ // Sanity checks
+ KOS_ASSERT((gmem_rect->x % 2) == 0); // Needs to be a multiple of 2
+ KOS_ASSERT((gmem_rect->y % 2) == 0); // Needs to be a multiple of 2
+ KOS_ASSERT((gmem_rect->width % 2) == 0); // Needs to be a multiple of 2
+ KOS_ASSERT((gmem_rect->height % 2) == 0); // Needs to be a multiple of 2
+ KOS_ASSERT((gmem_rect->pitch % 32) == 0); // Needs to be a multiple of 32
+
+ KOS_ASSERT((shadow_x % 2) == 0); // Needs to be a multiple of 2
+ KOS_ASSERT((shadow_y % 2) == 0); // Needs to be a multiple of 2
+
+ KOS_ASSERT(shadow_buffer->format >= COLORX_4_4_4_4);
+ KOS_ASSERT(shadow_buffer->format <= COLORX_32_32_32_32_FLOAT);
+ KOS_ASSERT((shadow_buffer->pitch % 32) == 0); // Needs to be a multiple of 32
+ KOS_ASSERT(buffer_id >= 0);
+ KOS_ASSERT(buffer_id < GSL_MAX_GMEM_SHADOW_BUFFERS);
+
+ // Set up GMEM shadow regions
+ kos_memcpy( &shadow->gmemshadow, &shadow_buffer->data, sizeof( gsl_memdesc_t ) );
+ shadow->size = shadow->gmemshadow.size;
+
+ shadow->width = shadow_buffer->width;
+ shadow->height = shadow_buffer->height;
+ shadow->pitch = shadow_buffer->pitch;
+ shadow->format = shadow_buffer->format;
+
+ shadow->offset = shadow->pitch * (shadow_y - gmem_rect->y) + shadow_x - gmem_rect->x;
+
+ shadow->offset_x = shadow_x;
+ shadow->offset_y = shadow_y;
+
+ shadow->gmem_width = gmem_rect->width;
+ shadow->gmem_height = gmem_rect->height;
+ shadow->gmem_pitch = gmem_rect->pitch;
+
+ shadow->gmem_offset_x = gmem_rect->x;
+ shadow->gmem_offset_y = gmem_rect->y;
+
+ // Modify quad vertices
+ set_gmem_copy_quad(shadow);
+
+ // Modify commands
+ build_gmem2sys_cmds(drawctxt, NULL, shadow);
+ build_sys2gmem_cmds(drawctxt, NULL, shadow);
+
+ // Release context GMEM shadow if found
+ if (drawctxt->context_gmem_shadow.gmemshadow.size > 0)
+ {
+ kgsl_sharedmem_free0(&drawctxt->context_gmem_shadow.gmemshadow, GSL_CALLER_PROCESSID_GET());
+ drawctxt->context_gmem_shadow.gmemshadow.size = 0;
+ }
+ }
+
+ // Enable GMEM shadowing if we have any of the user buffers enabled
+ drawctxt->flags &= ~CTXT_FLAGS_GMEM_SHADOW;
+ for( i = 0; i < GSL_MAX_GMEM_SHADOW_BUFFERS; i++ )
+ {
+ if( drawctxt->user_gmem_shadow[i].gmemshadow.size > 0 )
+ {
+ drawctxt->flags |= CTXT_FLAGS_GMEM_SHADOW;
+ }
+ }
+
+ GSL_CONTEXT_MUTEX_UNLOCK();
+ GSL_API_MUTEX_UNLOCK();
+
+ return (GSL_SUCCESS);
+}
+
+
+
+//////////////////////////////////////////////////////////////////////////////
+// switch drawing contexts
+//////////////////////////////////////////////////////////////////////////////
+
+void
+kgsl_drawctxt_switch(gsl_device_t *device, gsl_drawctxt_t *drawctxt, gsl_flags_t flags)
+{
+ gsl_drawctxt_t *active_ctxt = device->drawctxt_active;
+
+ if (drawctxt != GSL_CONTEXT_NONE)
+ {
+ if( flags & GSL_CONTEXT_SAVE_GMEM )
+ {
+ // Set the flag in context so that the save is done when this context is switched out.
+ drawctxt->flags |= CTXT_FLAGS_GMEM_SAVE;
+ }
+ else
+ {
+ // Remove GMEM saving flag from the context
+ drawctxt->flags &= ~CTXT_FLAGS_GMEM_SAVE;
+ }
+ }
+
+ // already current?
+ if (active_ctxt == drawctxt)
+ {
+ return;
+ }
+
+ // save old context, when not running in safe mode
+ if (active_ctxt != GSL_CONTEXT_NONE && !(device->flags & GSL_FLAGS_SAFEMODE))
+ {
+ // save registers and constants.
+ kgsl_ringbuffer_issuecmds(device, 0, active_ctxt->reg_save, 3, active_ctxt->pid);
+
+ if (active_ctxt->flags & CTXT_FLAGS_SHADER_SAVE)
+ {
+ // save shader partitioning and instructions.
+ kgsl_ringbuffer_issuecmds(device, 1, active_ctxt->shader_save, 3, active_ctxt->pid);
+
+ // fixup shader partitioning parameter for SET_SHADER_BASES.
+ kgsl_ringbuffer_issuecmds(device, 0, active_ctxt->shader_fixup, 3, active_ctxt->pid);
+
+ active_ctxt->flags |= CTXT_FLAGS_SHADER_RESTORE;
+ }
+
+ if (active_ctxt->flags & CTXT_FLAGS_GMEM_SHADOW && active_ctxt->flags & CTXT_FLAGS_GMEM_SAVE )
+ {
+ // save gmem. (note: changes shader. shader must already be saved.)
+
+ unsigned int i, numbuffers = 0;
+
+ for( i = 0; i < GSL_MAX_GMEM_SHADOW_BUFFERS; i++ )
+ {
+ if( active_ctxt->user_gmem_shadow[i].gmemshadow.size > 0 )
+ {
+ kgsl_ringbuffer_issuecmds(device, 1, active_ctxt->user_gmem_shadow[i].gmem_save, 3, active_ctxt->pid);
+
+ // Restore TP0_CHICKEN
+ kgsl_ringbuffer_issuecmds(device, 0, active_ctxt->chicken_restore, 3, active_ctxt->pid);
+ numbuffers++;
+ }
+ }
+ if( numbuffers == 0 )
+ {
+ // No user defined buffers -> use context default
+ kgsl_ringbuffer_issuecmds(device, 1, active_ctxt->context_gmem_shadow.gmem_save, 3, active_ctxt->pid);
+ // Restore TP0_CHICKEN
+ kgsl_ringbuffer_issuecmds(device, 0, active_ctxt->chicken_restore, 3, active_ctxt->pid);
+ }
+
+ active_ctxt->flags |= CTXT_FLAGS_GMEM_RESTORE;
+ }
+ }
+
+ device->drawctxt_active = drawctxt;
+
+ // restore new context, when not running in safe mode
+ if (drawctxt != GSL_CONTEXT_NONE && !(device->flags & GSL_FLAGS_SAFEMODE))
+ {
+ KGSL_DEBUG(GSL_DBGFLAGS_DUMPX, KGSL_DEBUG_DUMPX(BB_DUMP_MEMWRITE, drawctxt->gpustate.gpuaddr, (unsigned int)drawctxt->gpustate.hostptr, LCC_SHADOW_SIZE + REG_SHADOW_SIZE + CMD_BUFFER_SIZE + TEX_SHADOW_SIZE , "kgsl_drawctxt_switch"));
+
+ // restore gmem. (note: changes shader. shader must not already be restored.)
+ if (drawctxt->flags & CTXT_FLAGS_GMEM_RESTORE)
+ {
+ unsigned int i, numbuffers = 0;
+
+ for( i = 0; i < GSL_MAX_GMEM_SHADOW_BUFFERS; i++ )
+ {
+ if( drawctxt->user_gmem_shadow[i].gmemshadow.size > 0 )
+ {
+ kgsl_ringbuffer_issuecmds(device, 1, drawctxt->user_gmem_shadow[i].gmem_restore, 3, drawctxt->pid);
+
+ // Restore TP0_CHICKEN
+ kgsl_ringbuffer_issuecmds(device, 0, drawctxt->chicken_restore, 3, drawctxt->pid);
+ numbuffers++;
+ }
+ }
+ if( numbuffers == 0 )
+ {
+ // No user defined buffers -> use context default
+ kgsl_ringbuffer_issuecmds(device, 1, drawctxt->context_gmem_shadow.gmem_restore, 3, drawctxt->pid);
+ // Restore TP0_CHICKEN
+ kgsl_ringbuffer_issuecmds(device, 0, drawctxt->chicken_restore, 3, drawctxt->pid);
+ }
+
+ drawctxt->flags &= ~CTXT_FLAGS_GMEM_RESTORE;
+ }
+
+ // restore registers and constants.
+ kgsl_ringbuffer_issuecmds(device, 0, drawctxt->reg_restore, 3, drawctxt->pid);
+
+ // restore shader instructions & partitioning.
+ if (drawctxt->flags & CTXT_FLAGS_SHADER_RESTORE)
+ {
+ kgsl_ringbuffer_issuecmds(device, 0, drawctxt->shader_restore, 3, drawctxt->pid);
+ }
+ }
+}
+
+
+//////////////////////////////////////////////////////////////////////////////
+// destroy all drawing contexts
+//////////////////////////////////////////////////////////////////////////////
+int
+kgsl_drawctxt_destroyall(gsl_device_t *device)
+{
+ int i;
+ gsl_drawctxt_t *drawctxt;
+
+ GSL_CONTEXT_MUTEX_LOCK();
+
+ for (i = 0; i < GSL_CONTEXT_MAX; i++)
+ {
+ drawctxt = &device->drawctxt[i];
+
+ if (drawctxt->flags != CTXT_FLAGS_NOT_IN_USE)
+ {
+ // destroy state shadow, if allocated
+ if (drawctxt->flags & CTXT_FLAGS_STATE_SHADOW)
+ kgsl_sharedmem_free0(&drawctxt->gpustate, GSL_CALLER_PROCESSID_GET());
+
+ // destroy gmem shadow, if allocated
+ if (drawctxt->context_gmem_shadow.gmemshadow.size > 0)
+ {
+ kgsl_sharedmem_free0(&drawctxt->context_gmem_shadow.gmemshadow, GSL_CALLER_PROCESSID_GET());
+ drawctxt->context_gmem_shadow.gmemshadow.size = 0;
+ }
+
+ drawctxt->flags = CTXT_FLAGS_NOT_IN_USE;
+
+ device->drawctxt_count--;
+ KOS_ASSERT(device->drawctxt_count >= 0);
+ }
+ }
+
+ GSL_CONTEXT_MUTEX_UNLOCK();
+
+ return (GSL_SUCCESS);
+}
+
+#endif
diff --git a/drivers/mxc/amd-gpu/common/gsl_driver.c b/drivers/mxc/amd-gpu/common/gsl_driver.c
new file mode 100644
index 000000000000..b8c5170a1425
--- /dev/null
+++ b/drivers/mxc/amd-gpu/common/gsl_driver.c
@@ -0,0 +1,329 @@
+/* Copyright (c) 2008-2010, Advanced Micro Devices. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 and
+ * only version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that 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.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
+ *
+ */
+
+#include "gsl.h"
+#include "gsl_hal.h"
+
+
+//////////////////////////////////////////////////////////////////////////////
+// defines
+//////////////////////////////////////////////////////////////////////////////
+#define GSL_PROCESSID_NONE 0x00000000
+
+#define GSL_DRVFLAGS_EXTERNAL 0x10000000
+#define GSL_DRVFLAGS_INTERNAL 0x20000000
+
+
+//////////////////////////////////////////////////////////////////////////////
+// globals
+//////////////////////////////////////////////////////////////////////////////
+#ifndef KGSL_USER_MODE
+static gsl_flags_t gsl_driver_initialized = 0;
+gsl_driver_t gsl_driver;
+#else
+extern gsl_flags_t gsl_driver_initialized;
+extern gsl_driver_t gsl_driver;
+#endif
+
+
+//////////////////////////////////////////////////////////////////////////////
+// functions
+//////////////////////////////////////////////////////////////////////////////
+
+int
+kgsl_driver_init0(gsl_flags_t flags, gsl_flags_t flags_debug)
+{
+ int status = GSL_SUCCESS;
+
+ if (!(gsl_driver_initialized & GSL_FLAGS_INITIALIZED0))
+ {
+#ifdef GSL_LOG
+ // Uncomment these to enable logging.
+ //kgsl_log_init();
+ //kgsl_log_open_stdout( KGSL_LOG_GROUP_ALL | KGSL_LOG_LEVEL_ALL | KGSL_LOG_TIMESTAMP
+ // | KGSL_LOG_THREAD_ID | KGSL_LOG_PROCESS_ID );
+ //kgsl_log_open_file( "c:\\kgsl_log.txt", KGSL_LOG_GROUP_ALL | KGSL_LOG_LEVEL_ALL | KGSL_LOG_TIMESTAMP
+ // | KGSL_LOG_THREAD_ID | KGSL_LOG_PROCESS_ID );
+#endif
+ kos_memset(&gsl_driver, 0, sizeof(gsl_driver_t));
+
+ GSL_API_MUTEX_CREATE();
+ }
+
+#ifdef _DEBUG
+ // set debug flags on every entry, and prior to hal initialization
+ gsl_driver.flags_debug |= flags_debug;
+#else
+ (void) flags_debug; // unref formal parameter
+#endif // _DEBUG
+
+
+ KGSL_DEBUG(GSL_DBGFLAGS_DUMPX,
+ {
+ KGSL_DEBUG_DUMPX_OPEN("dumpx.tb", 0);
+ KGSL_DEBUG_DUMPX( BB_DUMP_ENABLE, 0, 0, 0, " ");
+ });
+
+ KGSL_DEBUG_TBDUMP_OPEN("tbdump.txt");
+
+ if (!(gsl_driver_initialized & GSL_FLAGS_INITIALIZED0))
+ {
+ GSL_API_MUTEX_LOCK();
+
+ // init hal
+ status = kgsl_hal_init();
+
+ if (status == GSL_SUCCESS)
+ {
+ gsl_driver_initialized |= flags;
+ gsl_driver_initialized |= GSL_FLAGS_INITIALIZED0;
+ }
+
+ GSL_API_MUTEX_UNLOCK();
+ }
+
+ return (status);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_driver_close0(gsl_flags_t flags)
+{
+ int status = GSL_SUCCESS;
+
+ if ((gsl_driver_initialized & GSL_FLAGS_INITIALIZED0) && (gsl_driver_initialized & flags))
+ {
+ GSL_API_MUTEX_LOCK();
+
+ // close hall
+ status = kgsl_hal_close();
+
+ GSL_API_MUTEX_UNLOCK();
+
+ GSL_API_MUTEX_FREE();
+
+#ifdef GSL_LOG
+ kgsl_log_close();
+#endif
+
+ gsl_driver_initialized &= ~flags;
+ gsl_driver_initialized &= ~GSL_FLAGS_INITIALIZED0;
+
+ KGSL_DEBUG(GSL_DBGFLAGS_DUMPX,
+ {
+ KGSL_DEBUG_DUMPX_CLOSE();
+ });
+
+ KGSL_DEBUG_TBDUMP_CLOSE();
+ }
+
+ return (status);
+}
+
+//----------------------------------------------------------------------------
+
+KGSL_API int
+kgsl_driver_init()
+{
+ // only an external (platform specific device driver) component should call this
+
+ return(kgsl_driver_init0(GSL_DRVFLAGS_EXTERNAL, 0));
+}
+
+//----------------------------------------------------------------------------
+
+KGSL_API int
+kgsl_driver_close()
+{
+ // only an external (platform specific device driver) component should call this
+
+ return(kgsl_driver_close0(GSL_DRVFLAGS_EXTERNAL));
+}
+
+//----------------------------------------------------------------------------
+
+KGSL_API int
+kgsl_driver_entry(gsl_flags_t flags)
+{
+ int status = GSL_FAILURE;
+ int index, i;
+ unsigned int pid;
+
+ if (kgsl_driver_init0(GSL_DRVFLAGS_INTERNAL, flags) != GSL_SUCCESS)
+ {
+ return (GSL_FAILURE);
+ }
+
+ kgsl_log_write( KGSL_LOG_GROUP_DRIVER | KGSL_LOG_LEVEL_TRACE, "--> int kgsl_driver_entry( gsl_flags_t flags=%d )\n", flags );
+
+ GSL_API_MUTEX_LOCK();
+
+ pid = GSL_CALLER_PROCESSID_GET();
+
+ // if caller process has not already opened access
+ status = kgsl_driver_getcallerprocessindex(pid, &index);
+ if (status != GSL_SUCCESS)
+ {
+ // then, add caller pid to process table
+ status = kgsl_driver_getcallerprocessindex(GSL_PROCESSID_NONE, &index);
+ if (status == GSL_SUCCESS)
+ {
+ gsl_driver.callerprocess[index] = pid;
+ gsl_driver.refcnt++;
+ }
+ }
+
+ if (status == GSL_SUCCESS)
+ {
+ if (!(gsl_driver_initialized & GSL_FLAGS_INITIALIZED))
+ {
+ // init memory apertures
+ status = kgsl_sharedmem_init(&gsl_driver.shmem);
+ if (status == GSL_SUCCESS)
+ {
+ // init devices
+ status = GSL_FAILURE;
+ for (i = 0; i < GSL_DEVICE_MAX; i++)
+ {
+ if (kgsl_device_init(&gsl_driver.device[i], (gsl_deviceid_t)(i + 1)) == GSL_SUCCESS) {
+ status = GSL_SUCCESS;
+ }
+ }
+ }
+
+ if (status == GSL_SUCCESS)
+ {
+ gsl_driver_initialized |= GSL_FLAGS_INITIALIZED;
+ }
+ }
+
+ // walk through process attach callbacks
+ if (status == GSL_SUCCESS)
+ {
+ for (i = 0; i < GSL_DEVICE_MAX; i++)
+ {
+ status = kgsl_device_attachcallback(&gsl_driver.device[i], pid);
+ if (status != GSL_SUCCESS)
+ {
+ break;
+ }
+ }
+ }
+
+ // if something went wrong
+ if (status != GSL_SUCCESS)
+ {
+ // then, remove caller pid from process table
+ if (kgsl_driver_getcallerprocessindex(pid, &index) == GSL_SUCCESS)
+ {
+ gsl_driver.callerprocess[index] = GSL_PROCESSID_NONE;
+ gsl_driver.refcnt--;
+ }
+ }
+ }
+
+ GSL_API_MUTEX_UNLOCK();
+
+ kgsl_log_write( KGSL_LOG_GROUP_DRIVER | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_driver_entry. Return value: %B\n", status );
+
+ return (status);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_driver_exit0(unsigned int pid)
+{
+ int status = GSL_SUCCESS;
+ int index, i;
+
+ GSL_API_MUTEX_LOCK();
+
+ if (gsl_driver_initialized & GSL_FLAGS_INITIALIZED)
+ {
+ if (kgsl_driver_getcallerprocessindex(pid, &index) == GSL_SUCCESS)
+ {
+ // walk through process detach callbacks
+ for (i = 0; i < GSL_DEVICE_MAX; i++)
+ {
+ // Empty the freememqueue of this device
+ kgsl_cmdstream_memqueue_drain(&gsl_driver.device[i]);
+
+ // Detach callback
+ status = kgsl_device_detachcallback(&gsl_driver.device[i], pid);
+ if (status != GSL_SUCCESS)
+ {
+ break;
+ }
+ }
+
+ // last running caller process
+ if (gsl_driver.refcnt - 1 == 0)
+ {
+ // close devices
+ for (i = 0; i < GSL_DEVICE_MAX; i++)
+ {
+ kgsl_device_close(&gsl_driver.device[i]);
+ }
+
+ // shutdown memory apertures
+ kgsl_sharedmem_close(&gsl_driver.shmem);
+
+ gsl_driver_initialized &= ~GSL_FLAGS_INITIALIZED;
+ }
+
+ // remove caller pid from process table
+ gsl_driver.callerprocess[index] = GSL_PROCESSID_NONE;
+ gsl_driver.refcnt--;
+ }
+ }
+
+ GSL_API_MUTEX_UNLOCK();
+
+ if (!(gsl_driver_initialized & GSL_FLAGS_INITIALIZED))
+ {
+ kgsl_driver_close0(GSL_DRVFLAGS_INTERNAL);
+ }
+
+ return (status);
+}
+
+//----------------------------------------------------------------------------
+
+KGSL_API int
+kgsl_driver_exit(void)
+{
+ int status;
+
+ kgsl_log_write( KGSL_LOG_GROUP_DRIVER | KGSL_LOG_LEVEL_TRACE, "--> int kgsl_driver_exit()\n" );
+
+ status = kgsl_driver_exit0(GSL_CALLER_PROCESSID_GET());
+
+ kgsl_log_write( KGSL_LOG_GROUP_DRIVER | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_driver_exit(). Return value: %B\n", status );
+
+ return (status);
+}
+
+//----------------------------------------------------------------------------
+
+KGSL_API int
+kgsl_driver_destroy(unsigned int pid)
+{
+ return (kgsl_driver_exit0(pid));
+}
diff --git a/drivers/mxc/amd-gpu/common/gsl_g12.c b/drivers/mxc/amd-gpu/common/gsl_g12.c
new file mode 100644
index 000000000000..8286e8e6a6ac
--- /dev/null
+++ b/drivers/mxc/amd-gpu/common/gsl_g12.c
@@ -0,0 +1,1025 @@
+/* Copyright (c) 2002,2007-2010, Code Aurora Forum. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 and
+ * only version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that 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.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
+ *
+ */
+
+#include "gsl.h"
+#include "gsl_hal.h"
+#include "kos_libapi.h"
+#include "gsl_cmdstream.h"
+#ifdef _LINUX
+#include <linux/sched.h>
+#endif
+
+#ifdef CONFIG_ARCH_MX35
+#define V3_SYNC
+#endif
+
+#ifdef GSL_BLD_G12
+#define GSL_IRQ_TIMEOUT 200
+
+
+//----------------------------------------------------------------------------
+
+#define GSL_HAL_NUMCMDBUFFERS 5
+#define GSL_HAL_CMDBUFFERSIZE (1024 + 13) * sizeof(unsigned int)
+
+#define ALIGN_IN_BYTES( dim, alignment ) ( ( (dim) + (alignment-1) ) & ~(alignment-1) )
+
+
+#ifdef _Z180
+#define NUMTEXUNITS 4
+#define TEXUNITREGCOUNT 25
+#define VG_REGCOUNT 0x39
+#define GSL_HAL_EDGE0BUFSIZE 0x3E8+64
+#define GSL_HAL_EDGE1BUFSIZE 0x8000+64
+#define GSL_HAL_EDGE2BUFSIZE 0x80020+64
+#define GSL_HAL_EDGE0REG ADDR_VGV1_CBUF
+#define GSL_HAL_EDGE1REG ADDR_VGV1_BBUF
+#define GSL_HAL_EDGE2REG ADDR_VGV1_EBUF
+#else
+#define NUMTEXUNITS 2
+#define TEXUNITREGCOUNT 24
+#define VG_REGCOUNT 0x3A
+#define L1TILESIZE 64
+#define GSL_HAL_EDGE0BUFSIZE L1TILESIZE*L1TILESIZE*4+64
+#define GSL_HAL_EDGE1BUFSIZE L1TILESIZE*L1TILESIZE*16+64
+#define GSL_HAL_EDGE0REG ADDR_VGV1_CBASE1
+#define GSL_HAL_EDGE1REG ADDR_VGV1_UBASE2
+#endif
+
+#define PACKETSIZE_BEGIN 3
+#define PACKETSIZE_G2DCOLOR 2
+#define PACKETSIZE_TEXUNIT (TEXUNITREGCOUNT*2)
+#define PACKETSIZE_REG (VG_REGCOUNT*2)
+#define PACKETSIZE_STATE (PACKETSIZE_TEXUNIT*NUMTEXUNITS + PACKETSIZE_REG + PACKETSIZE_BEGIN + PACKETSIZE_G2DCOLOR)
+#define PACKETSIZE_STATESTREAM ALIGN_IN_BYTES((PACKETSIZE_STATE*sizeof(unsigned int)), 32) / sizeof(unsigned int)
+
+//----------------------------------------------------------------------------
+
+typedef struct
+{
+ unsigned int id;
+ // unsigned int regs[];
+}gsl_hal_z1xxdrawctx_t;
+
+typedef struct
+{
+ unsigned int offs;
+ unsigned int curr;
+ unsigned int prevctx;
+
+ gsl_memdesc_t e0;
+ gsl_memdesc_t e1;
+ gsl_memdesc_t e2;
+ unsigned int* cmdbuf[GSL_HAL_NUMCMDBUFFERS];
+ gsl_memdesc_t cmdbufdesc[GSL_HAL_NUMCMDBUFFERS];
+ gsl_timestamp_t timestamp[GSL_HAL_NUMCMDBUFFERS];
+
+ unsigned int numcontext;
+ unsigned int nextUniqueContextID;
+}gsl_z1xx_t;
+
+static gsl_z1xx_t g_z1xx = {0};
+
+extern int z160_version;
+
+//----------------------------------------------------------------------------
+
+
+//////////////////////////////////////////////////////////////////////////////
+// functions
+//////////////////////////////////////////////////////////////////////////////
+
+static int kgsl_g12_addtimestamp(gsl_device_t* device, gsl_timestamp_t *timestamp);
+static int kgsl_g12_issueibcmds(gsl_device_t* device, int drawctxt_index, gpuaddr_t ibaddr, int sizedwords, gsl_timestamp_t *timestamp, unsigned int flags);
+static int kgsl_g12_context_create(gsl_device_t* device, gsl_context_type_t type, unsigned int *drawctxt_id, gsl_flags_t flags);
+static int kgsl_g12_context_destroy(gsl_device_t* device, unsigned int drawctxt_id);
+static unsigned int drawctx_id = 0;
+static int kgsl_g12_idle(gsl_device_t *device, unsigned int timeout);
+#ifndef _LINUX
+static void irq_thread(void);
+#endif
+
+//----------------------------------------------------------------------------
+
+void
+kgsl_g12_intrcallback(gsl_intrid_t id, void *cookie)
+{
+ gsl_device_t *device = (gsl_device_t *) cookie;
+
+ switch(id)
+ {
+ // non-error condition interrupt
+ case GSL_INTR_G12_G2D:
+#ifdef _LINUX
+ queue_work(device->irq_workq, &(device->irq_work));
+ break;
+#endif
+#ifndef _Z180
+ case GSL_INTR_G12_FBC:
+#endif //_Z180
+ // signal intr completion event
+ kos_event_signal(device->intr.evnt[id]);
+ break;
+
+ // error condition interrupt
+ case GSL_INTR_G12_FIFO:
+ printk(KERN_ERR "GPU: Z160 FIFO Error\n");
+ schedule_work(&device->irq_err_work);
+ break;
+
+ case GSL_INTR_G12_MH:
+ // don't do anything. this is handled by the MMU manager
+ break;
+
+ default:
+ break;
+ }
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_g12_isr(gsl_device_t *device)
+{
+ unsigned int status;
+#ifdef _DEBUG
+ REG_MH_MMU_PAGE_FAULT page_fault = {0};
+ REG_MH_AXI_ERROR axi_error = {0};
+#endif // DEBUG
+
+ // determine if G12 is interrupting
+ device->ftbl.device_regread(device, (ADDR_VGC_IRQSTATUS >> 2), &status);
+
+ if (status)
+ {
+ // if G12 MH is interrupting, clear MH block interrupt first, then master G12 MH interrupt
+ if (status & (1 << VGC_IRQSTATUS_MH_FSHIFT))
+ {
+#ifdef _DEBUG
+ // obtain mh error information
+ device->ftbl.device_regread(device, ADDR_MH_MMU_PAGE_FAULT, (unsigned int *)&page_fault);
+ device->ftbl.device_regread(device, ADDR_MH_AXI_ERROR, (unsigned int *)&axi_error);
+#endif // DEBUG
+
+ kgsl_intr_decode(device, GSL_INTR_BLOCK_G12_MH);
+ }
+
+ kgsl_intr_decode(device, GSL_INTR_BLOCK_G12);
+ }
+
+ return (GSL_SUCCESS);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_g12_tlbinvalidate(gsl_device_t *device, unsigned int reg_invalidate, unsigned int pid)
+{
+#ifndef GSL_NO_MMU
+ REG_MH_MMU_INVALIDATE mh_mmu_invalidate = {0};
+
+ // unreferenced formal parameter
+ (void) pid;
+
+ mh_mmu_invalidate.INVALIDATE_ALL = 1;
+ mh_mmu_invalidate.INVALIDATE_TC = 1;
+
+ device->ftbl.device_regwrite(device, reg_invalidate, *(unsigned int *) &mh_mmu_invalidate);
+#else
+ (void)device;
+ (void)reg_invalidate;
+#endif
+ return (GSL_SUCCESS);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_g12_setpagetable(gsl_device_t *device, unsigned int reg_ptbase, gpuaddr_t ptbase, unsigned int pid)
+{
+ // unreferenced formal parameter
+ (void) pid;
+#ifndef GSL_NO_MMU
+ device->ftbl.device_idle(device, GSL_TIMEOUT_DEFAULT);
+ device->ftbl.device_regwrite(device, reg_ptbase, ptbase);
+#else
+ (void)device;
+ (void)reg_ptbase;
+ (void)reg_varange;
+#endif
+ return (GSL_SUCCESS);
+}
+
+//----------------------------------------------------------------------------
+
+#ifdef _LINUX
+static void kgsl_g12_updatetimestamp(gsl_device_t *device)
+{
+ unsigned int count = 0;
+ device->ftbl.device_regread(device, (ADDR_VGC_IRQ_ACTIVE_CNT >> 2), &count);
+ count >>= 8;
+ count &= 255;
+ device->timestamp += count;
+#ifdef V3_SYNC
+ if (device->current_timestamp > device->timestamp)
+ {
+ kgsl_cmdwindow_write0(2, GSL_CMDWINDOW_2D, ADDR_VGV3_CONTROL, 2);
+ kgsl_cmdwindow_write0(2, GSL_CMDWINDOW_2D, ADDR_VGV3_CONTROL, 0);
+ }
+#endif
+ kgsl_sharedmem_write0(&device->memstore, GSL_DEVICE_MEMSTORE_OFFSET(eoptimestamp), &device->timestamp, 4, 0);
+}
+
+//----------------------------------------------------------------------------
+
+static void kgsl_g12_irqtask(struct work_struct *work)
+{
+ gsl_device_t *device = &gsl_driver.device[GSL_DEVICE_G12-1];
+ kgsl_g12_updatetimestamp(device);
+ wake_up_interruptible_all(&device->timestamp_waitq);
+}
+
+static void kgsl_g12_irqerr(struct work_struct *work)
+{
+ gsl_device_t *device = &gsl_driver.device[GSL_DEVICE_G12-1];
+ device->ftbl.device_destroy(device);
+}
+#endif
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_g12_init(gsl_device_t *device)
+{
+ int status = GSL_FAILURE;
+
+ device->flags |= GSL_FLAGS_INITIALIZED;
+
+ kgsl_hal_setpowerstate(device->id, GSL_PWRFLAGS_POWER_ON, 100);
+
+ // setup MH arbiter - MH offsets are considered to be dword based, therefore no down shift
+ device->ftbl.device_regwrite(device, ADDR_MH_ARBITER_CONFIG, *(unsigned int *) &gsl_cfg_g12_mharb);
+
+ // init interrupt
+ status = kgsl_intr_init(device);
+ if (status != GSL_SUCCESS)
+ {
+ device->ftbl.device_stop(device);
+ return (status);
+ }
+
+ // enable irq
+ device->ftbl.device_regwrite(device, (ADDR_VGC_IRQENABLE >> 2), 0x3);
+
+#ifndef GSL_NO_MMU
+ // enable master interrupt for G12 MH
+ kgsl_intr_attach(&device->intr, GSL_INTR_G12_MH, kgsl_g12_intrcallback, (void *) device);
+ kgsl_intr_enable(&device->intr, GSL_INTR_G12_MH);
+
+ // init mmu
+ status = kgsl_mmu_init(device);
+ if (status != GSL_SUCCESS)
+ {
+ device->ftbl.device_stop(device);
+ return (status);
+ }
+#endif
+
+#ifdef IRQTHREAD_POLL
+ // Create event to trigger IRQ polling thread
+ device->irqthread_event = kos_event_create(0);
+#endif
+
+ // enable interrupts
+ kgsl_intr_attach(&device->intr, GSL_INTR_G12_G2D, kgsl_g12_intrcallback, (void *) device);
+ kgsl_intr_attach(&device->intr, GSL_INTR_G12_FIFO, kgsl_g12_intrcallback, (void *) device);
+ kgsl_intr_enable(&device->intr, GSL_INTR_G12_G2D);
+ kgsl_intr_enable(&device->intr, GSL_INTR_G12_FIFO);
+
+#ifndef _Z180
+ kgsl_intr_attach(&device->intr, GSL_INTR_G12_FBC, kgsl_g12_intrcallback, (void *) device);
+ //kgsl_intr_enable(&device->intr, GSL_INTR_G12_FBC);
+#endif //_Z180
+
+ // create thread for IRQ handling
+#if defined(__SYMBIAN32__)
+ kos_thread_create( (oshandle_t)irq_thread, &(device->irq_thread) );
+#elif defined(_LINUX)
+ device->irq_workq = create_singlethread_workqueue("z1xx_workq");
+ INIT_WORK(&device->irq_work, kgsl_g12_irqtask);
+ INIT_WORK(&device->irq_err_work, kgsl_g12_irqerr);
+#else
+ #pragma warning(disable:4152)
+ device->irq_thread_handle = kos_thread_create( (oshandle_t)irq_thread, &(device->irq_thread) );
+#endif
+
+ return (status);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_g12_close(gsl_device_t *device)
+{
+ int status = GSL_FAILURE;
+
+ if (device->refcnt == 0)
+ {
+ // wait pending interrupts before shutting down G12 intr thread to
+ // empty irq counters. Otherwise there's a possibility to have them in
+ // registers next time systems starts up and this results in a hang.
+ status = device->ftbl.device_idle(device, 1000);
+ KOS_ASSERT(status == GSL_SUCCESS);
+
+#ifndef _LINUX
+ kos_thread_destroy(device->irq_thread_handle);
+#else
+ destroy_workqueue(device->irq_workq);
+#endif
+
+ // shutdown command window
+ kgsl_cmdwindow_close(device);
+
+#ifndef GSL_NO_MMU
+ // shutdown mmu
+ kgsl_mmu_close(device);
+#endif
+ // disable interrupts
+ kgsl_intr_detach(&device->intr, GSL_INTR_G12_MH);
+ kgsl_intr_detach(&device->intr, GSL_INTR_G12_G2D);
+ kgsl_intr_detach(&device->intr, GSL_INTR_G12_FIFO);
+#ifndef _Z180
+ kgsl_intr_detach(&device->intr, GSL_INTR_G12_FBC);
+#endif //_Z180
+
+ // shutdown interrupt
+ kgsl_intr_close(device);
+
+ kgsl_hal_setpowerstate(device->id, GSL_PWRFLAGS_POWER_OFF, 0);
+
+ device->flags &= ~GSL_FLAGS_INITIALIZED;
+
+#if defined(__SYMBIAN32__)
+ while(device->irq_thread)
+ {
+ kos_sleep(20);
+ }
+#endif
+ drawctx_id = 0;
+
+ KOS_ASSERT(g_z1xx.numcontext == 0);
+ }
+
+ return (GSL_SUCCESS);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_g12_destroy(gsl_device_t *device)
+{
+ int i;
+ unsigned int pid;
+
+#ifdef _DEBUG
+ // for now, signal catastrophic failure in a brute force way
+ KOS_ASSERT(0);
+#endif // _DEBUG
+
+ //todo: hard reset core?
+
+ for (i = 0; i < GSL_CALLER_PROCESS_MAX; i++)
+ {
+ pid = device->callerprocess[i];
+ if (pid)
+ {
+ device->ftbl.device_stop(device);
+ kgsl_driver_destroy(pid);
+
+ // todo: terminate client process?
+ }
+ }
+
+ return (GSL_SUCCESS);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_g12_start(gsl_device_t *device, gsl_flags_t flags)
+{
+ int status = GSL_SUCCESS;
+
+ (void) flags; // unreferenced formal parameter
+
+ kgsl_hal_setpowerstate(device->id, GSL_PWRFLAGS_CLK_ON, 100);
+
+ // init command window
+ status = kgsl_cmdwindow_init(device);
+ if (status != GSL_SUCCESS)
+ {
+ device->ftbl.device_stop(device);
+ return (status);
+ }
+
+ KOS_ASSERT(g_z1xx.numcontext == 0);
+
+ device->flags |= GSL_FLAGS_STARTED;
+
+ return (status);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_g12_stop(gsl_device_t *device)
+{
+ int status;
+
+ KOS_ASSERT(device->refcnt == 0);
+
+ /* wait for device to idle before setting it's clock off */
+ status = device->ftbl.device_idle(device, 1000);
+ KOS_ASSERT(status == GSL_SUCCESS);
+
+ status = kgsl_hal_setpowerstate(device->id, GSL_PWRFLAGS_CLK_OFF, 0);
+ device->flags &= ~GSL_FLAGS_STARTED;
+
+ return (status);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_g12_getproperty(gsl_device_t *device, gsl_property_type_t type, void *value, unsigned int sizebytes)
+{
+ int status = GSL_FAILURE;
+ // unreferenced formal parameter
+ (void) sizebytes;
+
+ if (type == GSL_PROP_DEVICE_INFO)
+ {
+ gsl_devinfo_t *devinfo = (gsl_devinfo_t *) value;
+
+ KOS_ASSERT(sizebytes == sizeof(gsl_devinfo_t));
+
+ devinfo->device_id = device->id;
+ devinfo->chip_id = (gsl_chipid_t)device->chip_id;
+#ifndef GSL_NO_MMU
+ devinfo->mmu_enabled = kgsl_mmu_isenabled(&device->mmu);
+#endif
+ if (z160_version == 1)
+ devinfo->high_precision = 1;
+ else
+ devinfo->high_precision = 0;
+
+ status = GSL_SUCCESS;
+ }
+
+ return (status);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_g12_setproperty(gsl_device_t *device, gsl_property_type_t type, void *value, unsigned int sizebytes)
+{
+ int status = GSL_FAILURE;
+
+ // unreferenced formal parameters
+ (void) device;
+
+ if (type == GSL_PROP_DEVICE_POWER)
+ {
+ gsl_powerprop_t *power = (gsl_powerprop_t *) value;
+
+ KOS_ASSERT(sizebytes == sizeof(gsl_powerprop_t));
+
+ if (!(device->flags & GSL_FLAGS_SAFEMODE))
+ {
+ kgsl_hal_setpowerstate(device->id, power->flags, power->value);
+ }
+
+ status = GSL_SUCCESS;
+ }
+ return (status);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_g12_idle(gsl_device_t *device, unsigned int timeout)
+{
+ if ( device->flags & GSL_FLAGS_STARTED )
+ {
+ for ( ; ; )
+ {
+ gsl_timestamp_t retired = kgsl_cmdstream_readtimestamp0( device->id, GSL_TIMESTAMP_RETIRED );
+ gsl_timestamp_t ts_diff = retired - device->current_timestamp;
+ if ( ts_diff >= 0 || ts_diff < -GSL_TIMESTAMP_EPSILON )
+ break;
+ kos_sleep(10);
+ }
+ }
+
+ return (GSL_SUCCESS);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_g12_regread(gsl_device_t *device, unsigned int offsetwords, unsigned int *value)
+{
+ // G12 MH register values can only be retrieved via dedicated read registers
+ if ((offsetwords >= ADDR_MH_ARBITER_CONFIG && offsetwords <= ADDR_MH_AXI_HALT_CONTROL) ||
+ (offsetwords >= ADDR_MH_MMU_CONFIG && offsetwords <= ADDR_MH_MMU_MPU_END))
+ {
+#ifdef _Z180
+ device->ftbl.device_regwrite(device, (ADDR_VGC_MH_READ_ADDR >> 2), offsetwords);
+ GSL_HAL_REG_READ(device->id, (unsigned int) device->regspace.mmio_virt_base, (ADDR_VGC_MH_READ_ADDR >> 2), value);
+#else
+ device->ftbl.device_regwrite(device, (ADDR_MMU_READ_ADDR >> 2), offsetwords);
+ GSL_HAL_REG_READ(device->id, (unsigned int) device->regspace.mmio_virt_base, (ADDR_MMU_READ_DATA >> 2), value);
+#endif
+ }
+ else
+ {
+ GSL_HAL_REG_READ(device->id, (unsigned int) device->regspace.mmio_virt_base, offsetwords, value);
+ }
+
+ return (GSL_SUCCESS);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_g12_regwrite(gsl_device_t *device, unsigned int offsetwords, unsigned int value)
+{
+ // G12 MH registers can only be written via the command window
+ if ((offsetwords >= ADDR_MH_ARBITER_CONFIG && offsetwords <= ADDR_MH_AXI_HALT_CONTROL) ||
+ (offsetwords >= ADDR_MH_MMU_CONFIG && offsetwords <= ADDR_MH_MMU_MPU_END))
+ {
+ kgsl_cmdwindow_write0(device->id, GSL_CMDWINDOW_MMU, offsetwords, value);
+ }
+ else
+ {
+ GSL_HAL_REG_WRITE(device->id, (unsigned int) device->regspace.mmio_virt_base, offsetwords, value);
+ }
+
+ // idle device when running in safe mode
+ if (device->flags & GSL_FLAGS_SAFEMODE)
+ {
+ device->ftbl.device_idle(device, GSL_TIMEOUT_DEFAULT);
+ }
+
+ return (GSL_SUCCESS);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_g12_waitirq(gsl_device_t *device, gsl_intrid_t intr_id, unsigned int *count, unsigned int timeout)
+{
+ int status = GSL_FAILURE_NOTSUPPORTED;
+#ifdef VG_HDK
+ (void)timeout;
+#endif
+
+#ifndef _Z180
+ if (intr_id == GSL_INTR_G12_G2D || intr_id == GSL_INTR_G12_FBC)
+#else
+ if (intr_id == GSL_INTR_G12_G2D)
+#endif //_Z180
+ {
+#ifndef VG_HDK
+ if (kgsl_intr_isenabled(&device->intr, intr_id) == GSL_SUCCESS)
+#endif
+ {
+ // wait until intr completion event is received and check that
+ // the interrupt is still enabled. If event is received, but
+ // interrupt is not enabled any more, the driver is shutting
+ // down and event structure is not valid anymore.
+#ifndef VG_HDK
+ if (kos_event_wait(device->intr.evnt[intr_id], timeout) == OS_SUCCESS && kgsl_intr_isenabled(&device->intr, intr_id) == GSL_SUCCESS)
+#endif
+ {
+ unsigned int cntrs;
+ int i;
+ kgsl_device_active(device);
+#ifndef VG_HDK
+ kos_event_reset(device->intr.evnt[intr_id]);
+ device->ftbl.device_regread(device, (ADDR_VGC_IRQ_ACTIVE_CNT >> 2), &cntrs);
+#else
+ device->ftbl.device_regread(device, (0x38 >> 2), &cntrs);
+#endif
+
+ for (i = 0; i < GSL_G12_INTR_COUNT; i++)
+ {
+ int intrcnt = cntrs >> ((8 * i)) & 255;
+
+ // maximum allowed counter value is 254. if set to 255 then something has gone wrong
+ if (intrcnt && (intrcnt < 0xFF))
+ {
+ device->intrcnt[i] += intrcnt;
+ }
+ }
+
+ *count = device->intrcnt[intr_id - GSL_INTR_G12_MH];
+ device->intrcnt[intr_id - GSL_INTR_G12_MH] = 0;
+ status = GSL_SUCCESS;
+ }
+#ifndef VG_HDK
+ else
+ {
+ status = GSL_FAILURE_TIMEOUT;
+ }
+#endif
+ }
+ }
+ else if(intr_id == GSL_INTR_FOOBAR)
+ {
+ if (kgsl_intr_isenabled(&device->intr, GSL_INTR_G12_G2D) == GSL_SUCCESS)
+ {
+ kos_event_signal(device->intr.evnt[GSL_INTR_G12_G2D]);
+ }
+ }
+
+ return (status);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_g12_waittimestamp(gsl_device_t *device, gsl_timestamp_t timestamp, unsigned int timeout)
+{
+#ifndef _LINUX
+ return kos_event_wait( device->timestamp_event, timeout );
+#else
+ int status = wait_event_interruptible_timeout(device->timestamp_waitq,
+ kgsl_cmdstream_check_timestamp(device->id, timestamp),
+ msecs_to_jiffies(timeout));
+ if (status > 0)
+ return GSL_SUCCESS;
+ else
+ return GSL_FAILURE;
+#endif
+}
+
+int
+kgsl_g12_getfunctable(gsl_functable_t *ftbl)
+{
+ ftbl->device_init = kgsl_g12_init;
+ ftbl->device_close = kgsl_g12_close;
+ ftbl->device_destroy = kgsl_g12_destroy;
+ ftbl->device_start = kgsl_g12_start;
+ ftbl->device_stop = kgsl_g12_stop;
+ ftbl->device_getproperty = kgsl_g12_getproperty;
+ ftbl->device_setproperty = kgsl_g12_setproperty;
+ ftbl->device_idle = kgsl_g12_idle;
+ ftbl->device_regread = kgsl_g12_regread;
+ ftbl->device_regwrite = kgsl_g12_regwrite;
+ ftbl->device_waitirq = kgsl_g12_waitirq;
+ ftbl->device_waittimestamp = kgsl_g12_waittimestamp;
+ ftbl->device_runpending = NULL;
+ ftbl->device_addtimestamp = kgsl_g12_addtimestamp;
+ ftbl->intr_isr = kgsl_g12_isr;
+ ftbl->mmu_tlbinvalidate = kgsl_g12_tlbinvalidate;
+ ftbl->mmu_setpagetable = kgsl_g12_setpagetable;
+ ftbl->cmdstream_issueibcmds = kgsl_g12_issueibcmds;
+ ftbl->context_create = kgsl_g12_context_create;
+ ftbl->context_destroy = kgsl_g12_context_destroy;
+
+ return (GSL_SUCCESS);
+}
+
+//----------------------------------------------------------------------------
+
+static void addmarker(gsl_z1xx_t* z1xx)
+{
+ KOS_ASSERT(z1xx);
+ {
+ unsigned int *p = z1xx->cmdbuf[z1xx->curr];
+ /* todo: use symbolic values */
+ p[z1xx->offs++] = 0x7C000176;
+ p[z1xx->offs++] = (0x8000|5);
+ p[z1xx->offs++] = ADDR_VGV3_LAST<<24;
+ p[z1xx->offs++] = ADDR_VGV3_LAST<<24;
+ p[z1xx->offs++] = ADDR_VGV3_LAST<<24;
+ p[z1xx->offs++] = 0x7C000176;
+ p[z1xx->offs++] = 5;
+ p[z1xx->offs++] = ADDR_VGV3_LAST<<24;
+ p[z1xx->offs++] = ADDR_VGV3_LAST<<24;
+ p[z1xx->offs++] = ADDR_VGV3_LAST<<24;
+ }
+}
+
+//----------------------------------------------------------------------------
+static void beginpacket(gsl_z1xx_t* z1xx, gpuaddr_t cmd, unsigned int nextcnt)
+{
+ unsigned int *p = z1xx->cmdbuf[z1xx->curr];
+
+ p[z1xx->offs++] = 0x7C000176;
+ p[z1xx->offs++] = 5;
+ p[z1xx->offs++] = ADDR_VGV3_LAST<<24;
+ p[z1xx->offs++] = ADDR_VGV3_LAST<<24;
+ p[z1xx->offs++] = ADDR_VGV3_LAST<<24;
+ p[z1xx->offs++] = 0x7C000275;
+ p[z1xx->offs++] = cmd;
+ p[z1xx->offs++] = 0x1000|nextcnt; // nextcount
+ p[z1xx->offs++] = ADDR_VGV3_LAST<<24;
+ p[z1xx->offs++] = ADDR_VGV3_LAST<<24;
+}
+
+//----------------------------------------------------------------------------
+
+static int
+kgsl_g12_issueibcmds(gsl_device_t* device, int drawctxt_index, gpuaddr_t ibaddr, int sizedwords, gsl_timestamp_t *timestamp, unsigned int flags)
+{
+ unsigned int ofs = PACKETSIZE_STATESTREAM*sizeof(unsigned int);
+ unsigned int cnt = 5;
+ unsigned int cmd = ibaddr;
+ unsigned int nextbuf = (g_z1xx.curr+1)%GSL_HAL_NUMCMDBUFFERS;
+ unsigned int nextaddr = g_z1xx.cmdbufdesc[nextbuf].gpuaddr;
+ unsigned int nextcnt = 0x9000|5;
+ gsl_memdesc_t tmp = {0};
+ gsl_timestamp_t processed_timestamp;
+
+ (void) flags;
+
+ // read what is the latest timestamp device have processed
+ GSL_CMDSTREAM_GET_EOP_TIMESTAMP(device, (int *)&processed_timestamp);
+
+ /* wait for the next buffer's timestamp to occur */
+ while(processed_timestamp < g_z1xx.timestamp[nextbuf])
+ {
+#ifndef _LINUX
+ kos_event_wait(device->timestamp_event, 1000);
+ kos_event_reset(device->timestamp_event);
+#else
+ kgsl_cmdstream_waittimestamp(device->id, g_z1xx.timestamp[nextbuf], 1000);
+#endif
+ GSL_CMDSTREAM_GET_EOP_TIMESTAMP(device, (int *)&processed_timestamp);
+ }
+
+ *timestamp = g_z1xx.timestamp[nextbuf] = device->current_timestamp + 1;
+
+ /* context switch */
+ if (drawctxt_index != (int)g_z1xx.prevctx)
+ {
+ cnt = PACKETSIZE_STATESTREAM;
+ ofs = 0;
+ }
+ g_z1xx.prevctx = drawctxt_index;
+
+ g_z1xx.offs = 10;
+ beginpacket(&g_z1xx, cmd+ofs, cnt);
+
+ tmp.gpuaddr=ibaddr+(sizedwords*sizeof(unsigned int));
+ kgsl_sharedmem_write0(&tmp, 4, &nextaddr, 4, false);
+ kgsl_sharedmem_write0(&tmp, 8, &nextcnt, 4, false);
+
+ /* sync mem */
+ kgsl_sharedmem_write0((const gsl_memdesc_t *)&g_z1xx.cmdbufdesc[g_z1xx.curr], 0, g_z1xx.cmdbuf[g_z1xx.curr], (512 + 13) * sizeof(unsigned int), false);
+
+ g_z1xx.offs = 0;
+ g_z1xx.curr = nextbuf;
+
+ /* increment mark counter */
+#ifdef V3_SYNC
+ if (device->timestamp == device->current_timestamp)
+ {
+ kgsl_cmdwindow_write0(2, GSL_CMDWINDOW_2D, ADDR_VGV3_CONTROL, flags);
+ kgsl_cmdwindow_write0(2, GSL_CMDWINDOW_2D, ADDR_VGV3_CONTROL, 0);
+ }
+#else
+ kgsl_cmdwindow_write0(2, GSL_CMDWINDOW_2D, ADDR_VGV3_CONTROL, flags);
+ kgsl_cmdwindow_write0(2, GSL_CMDWINDOW_2D, ADDR_VGV3_CONTROL, 0);
+#endif
+
+ /* increment consumed timestamp */
+ device->current_timestamp++;
+ kgsl_sharedmem_write0(&device->memstore, GSL_DEVICE_MEMSTORE_OFFSET(soptimestamp), &device->current_timestamp, 4, 0);
+ return (GSL_SUCCESS);
+}
+
+//----------------------------------------------------------------------------
+
+static int
+kgsl_g12_context_create(gsl_device_t* device, gsl_context_type_t type, unsigned int *drawctxt_id, gsl_flags_t flags)
+{
+ int status = 0;
+ int i;
+ int cmd;
+ gsl_flags_t gslflags = (GSL_MEMFLAGS_CONPHYS | GSL_MEMFLAGS_ALIGNPAGE);
+
+ // unreferenced formal parameters
+ (void) device;
+ (void) type;
+ //(void) drawctxt_id;
+ (void) flags;
+
+ kgsl_device_active(device);
+
+ if (g_z1xx.numcontext==0)
+ {
+ g_z1xx.nextUniqueContextID = 0;
+ /* todo: move this to device create or start. Error checking!! */
+ for (i=0;i<GSL_HAL_NUMCMDBUFFERS;i++)
+ {
+ status = kgsl_sharedmem_alloc0(GSL_DEVICE_ANY, gslflags, GSL_HAL_CMDBUFFERSIZE, &g_z1xx.cmdbufdesc[i]);
+ KOS_ASSERT(status == GSL_SUCCESS);
+ g_z1xx.cmdbuf[i]=kos_malloc(GSL_HAL_CMDBUFFERSIZE);
+ KOS_ASSERT(g_z1xx.cmdbuf[i]);
+ kos_memset((void*)g_z1xx.cmdbuf[i], 0, GSL_HAL_CMDBUFFERSIZE);
+
+ g_z1xx.curr = i;
+ g_z1xx.offs = 0;
+ addmarker(&g_z1xx);
+ status = kgsl_sharedmem_write0(&g_z1xx.cmdbufdesc[i],0, g_z1xx.cmdbuf[i], (512 + 13) * sizeof(unsigned int), false);
+ KOS_ASSERT(status == GSL_SUCCESS);
+ }
+ g_z1xx.curr = 0;
+ cmd = (int)(((VGV3_NEXTCMD_JUMP) & VGV3_NEXTCMD_NEXTCMD_FMASK)<< VGV3_NEXTCMD_NEXTCMD_FSHIFT);
+
+ /* set cmd stream buffer to hw */
+ status |= kgsl_cmdwindow_write0(GSL_DEVICE_G12, GSL_CMDWINDOW_2D, ADDR_VGV3_MODE, 4);
+ status |= kgsl_cmdwindow_write0(GSL_DEVICE_G12, GSL_CMDWINDOW_2D, ADDR_VGV3_NEXTADDR, g_z1xx.cmdbufdesc[0].gpuaddr );
+ status |= kgsl_cmdwindow_write0(GSL_DEVICE_G12, GSL_CMDWINDOW_2D, ADDR_VGV3_NEXTCMD, cmd | 5);
+
+ KOS_ASSERT(status == GSL_SUCCESS);
+
+ /* Edge buffer setup todo: move register setup to own function.
+ This function can be then called, if power managemnet is used and clocks are turned off and then on.
+ */
+ status |= kgsl_sharedmem_alloc0(GSL_DEVICE_ANY, gslflags, GSL_HAL_EDGE0BUFSIZE, &g_z1xx.e0);
+ status |= kgsl_sharedmem_alloc0(GSL_DEVICE_ANY, gslflags, GSL_HAL_EDGE1BUFSIZE, &g_z1xx.e1);
+ status |= kgsl_sharedmem_set0(&g_z1xx.e0, 0, 0, GSL_HAL_EDGE0BUFSIZE);
+ status |= kgsl_sharedmem_set0(&g_z1xx.e1, 0, 0, GSL_HAL_EDGE1BUFSIZE);
+
+ status |= kgsl_cmdwindow_write0(GSL_DEVICE_G12, GSL_CMDWINDOW_2D, GSL_HAL_EDGE0REG, g_z1xx.e0.gpuaddr);
+ status |= kgsl_cmdwindow_write0(GSL_DEVICE_G12, GSL_CMDWINDOW_2D, GSL_HAL_EDGE1REG, g_z1xx.e1.gpuaddr);
+#ifdef _Z180
+ kgsl_sharedmem_alloc0(GSL_DEVICE_ANY, gslflags, GSL_HAL_EDGE2BUFSIZE, &g_z1xx.e2);
+ kgsl_sharedmem_set0(&g_z1xx.e2, 0, 0, GSL_HAL_EDGE2BUFSIZE);
+ kgsl_cmdwindow_write0(GSL_DEVICE_G12, GSL_CMDWINDOW_2D, GSL_HAL_EDGE2REG, g_z1xx.e2.gpuaddr);
+#endif
+ KOS_ASSERT(status == GSL_SUCCESS);
+ }
+
+ if(g_z1xx.numcontext < GSL_CONTEXT_MAX)
+ {
+ g_z1xx.numcontext++;
+ g_z1xx.nextUniqueContextID++;
+ *drawctxt_id=g_z1xx.nextUniqueContextID;
+ status = GSL_SUCCESS;
+ }
+ else
+ {
+ status = GSL_FAILURE;
+ }
+
+ return status;
+}
+
+//----------------------------------------------------------------------------
+
+static int
+kgsl_g12_context_destroy(gsl_device_t* device, unsigned int drawctxt_id)
+{
+
+ // unreferenced formal parameters
+ (void) device;
+ (void) drawctxt_id;
+
+ g_z1xx.numcontext--;
+ if (g_z1xx.numcontext<0)
+ {
+ g_z1xx.numcontext=0;
+ return (GSL_FAILURE);
+ }
+
+ if (g_z1xx.numcontext==0)
+ {
+ int i;
+ for (i=0;i<GSL_HAL_NUMCMDBUFFERS;i++)
+ {
+ kgsl_sharedmem_free0(&g_z1xx.cmdbufdesc[i], GSL_CALLER_PROCESSID_GET());
+ kos_free(g_z1xx.cmdbuf[i]);
+ }
+ kgsl_sharedmem_free0(&g_z1xx.e0, GSL_CALLER_PROCESSID_GET());
+ kgsl_sharedmem_free0(&g_z1xx.e1, GSL_CALLER_PROCESSID_GET());
+#ifdef _Z180
+ kgsl_sharedmem_free0(&g_z1xx.e2, GSL_CALLER_PROCESSID_GET());
+#endif
+ kos_memset(&g_z1xx,0,sizeof(gsl_z1xx_t));
+ }
+ return (GSL_SUCCESS);
+}
+
+//----------------------------------------------------------------------------
+#if !defined GSL_BLD_YAMATO && (!defined __SYMBIAN32__ || defined __WINSCW__)
+KGSL_API int kgsl_drawctxt_bind_gmem_shadow(gsl_deviceid_t device_id, unsigned int drawctxt_id, const gsl_rect_t* gmem_rect, unsigned int shadow_x, unsigned int shadow_y, const gsl_buffer_desc_t* shadow_buffer, unsigned int buffer_id)
+{
+ (void)device_id;
+ (void)drawctxt_id;
+ (void)gmem_rect;
+ (void)shadow_x;
+ (void)shadow_y;
+ (void)shadow_buffer;
+ (void)buffer_id;
+ return (GSL_FAILURE);
+}
+#endif
+//----------------------------------------------------------------------------
+
+#ifndef _LINUX
+static void irq_thread(void)
+{
+ int error = 0;
+ unsigned int irq_count;
+ gsl_device_t* device = &gsl_driver.device[GSL_DEVICE_G12-1];
+ gsl_timestamp_t timestamp;
+
+ while( !error )
+ {
+#ifdef IRQTHREAD_POLL
+ if(kos_event_wait(device->irqthread_event, GSL_IRQ_TIMEOUT)==GSL_SUCCESS)
+ {
+ kgsl_g12_waitirq(device, GSL_INTR_G12_G2D, &irq_count, GSL_IRQ_TIMEOUT);
+#else
+
+ if( kgsl_g12_waitirq(device, GSL_INTR_G12_G2D, &irq_count, GSL_IRQ_TIMEOUT) == GSL_SUCCESS )
+ {
+#endif
+ /* Read a timestamp value */
+#ifdef VG_HDK
+ timestamp = device->timestamp;
+#else
+ GSL_CMDSTREAM_GET_EOP_TIMESTAMP(device, (int *)&timestamp);
+#endif
+ /* Increase the timestamp value */
+ timestamp += irq_count;
+
+ /* Write the new timestamp value */
+ device->timestamp = timestamp;
+ kgsl_sharedmem_write0(&device->memstore, GSL_DEVICE_MEMSTORE_OFFSET(eoptimestamp), &timestamp, 4, false);
+
+#ifdef V3_SYNC
+ if (device->current_timestamp > device->timestamp)
+ {
+ kgsl_cmdwindow_write0(2, GSL_CMDWINDOW_2D, ADDR_VGV3_CONTROL, 2);
+ kgsl_cmdwindow_write0(2, GSL_CMDWINDOW_2D, ADDR_VGV3_CONTROL, 0);
+ }
+#endif
+
+ /* Notify timestamp event */
+#ifndef _LINUX
+ kos_event_signal( device->timestamp_event );
+#else
+ wake_up_interruptible_all(&(device->timestamp_waitq));
+#endif
+ }
+ else
+ {
+ /* Timeout */
+
+
+ if(!(device->flags&GSL_FLAGS_INITIALIZED))
+ {
+ /* if device is closed -> thread exit */
+#if defined(__SYMBIAN32__)
+ device->irq_thread = 0;
+#endif
+ return;
+ }
+ }
+ }
+}
+#endif
+
+//----------------------------------------------------------------------------
+
+static int
+kgsl_g12_addtimestamp(gsl_device_t* device, gsl_timestamp_t *timestamp)
+{
+ device->current_timestamp++;
+ *timestamp = device->current_timestamp;
+
+ return (GSL_SUCCESS);
+}
+#endif
diff --git a/drivers/mxc/amd-gpu/common/gsl_intrmgr.c b/drivers/mxc/amd-gpu/common/gsl_intrmgr.c
new file mode 100644
index 000000000000..2c8b278dfe7a
--- /dev/null
+++ b/drivers/mxc/amd-gpu/common/gsl_intrmgr.c
@@ -0,0 +1,305 @@
+/* Copyright (c) 2008-2010, Advanced Micro Devices. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 and
+ * only version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that 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.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
+ *
+ */
+
+#include "gsl.h"
+
+//////////////////////////////////////////////////////////////////////////////
+// macros
+//////////////////////////////////////////////////////////////////////////////
+#define GSL_INTRID_VALIDATE(id) (((id) < 0) || ((id) >= GSL_INTR_COUNT))
+
+
+//////////////////////////////////////////////////////////////////////////////
+// functions
+//////////////////////////////////////////////////////////////////////////////
+
+static const gsl_intrblock_reg_t *
+kgsl_intr_id2block(gsl_intrid_t id)
+{
+ const gsl_intrblock_reg_t *block;
+ int i;
+
+ // interrupt id to hw block
+ for (i = 0; i < GSL_INTR_BLOCK_COUNT; i++)
+ {
+ block = &gsl_cfg_intrblock_reg[i];
+
+ if (block->first_id <= id && id <= block->last_id)
+ {
+ return (block);
+ }
+ }
+
+ return (NULL);
+}
+
+//----------------------------------------------------------------------------
+
+void
+kgsl_intr_decode(gsl_device_t *device, gsl_intrblock_t block_id)
+{
+ const gsl_intrblock_reg_t *block = &gsl_cfg_intrblock_reg[block_id];
+ gsl_intrid_t id;
+ unsigned int status;
+
+ // read the block's interrupt status bits
+ device->ftbl.device_regread(device, block->status_reg, &status);
+
+ // mask off any interrupts which are disabled
+ status &= device->intr.enabled[block->id];
+
+ // acknowledge the block's interrupts
+ device->ftbl.device_regwrite(device, block->clear_reg, status);
+
+ // loop through the block's masks, determine which interrupt bits are active, and call callback (or TODO queue DPC)
+ for (id = block->first_id; id <= block->last_id; id++)
+ {
+ if (status & gsl_cfg_intr_mask[id])
+ {
+ device->intr.handler[id].callback(id, device->intr.handler[id].cookie);
+ }
+ }
+}
+
+//----------------------------------------------------------------------------
+
+KGSL_API void
+kgsl_intr_isr()
+{
+ gsl_deviceid_t device_id;
+ gsl_device_t *device;
+
+ // loop through the devices, and call device specific isr
+ for (device_id = (gsl_deviceid_t)(GSL_DEVICE_ANY + 1); device_id <= GSL_DEVICE_MAX; device_id++)
+ {
+ device = &gsl_driver.device[device_id-1]; // device_id is 1 based
+
+ if (device->intr.flags & GSL_FLAGS_INITIALIZED)
+ {
+ kgsl_device_active(device);
+ device->ftbl.intr_isr(device);
+ }
+ }
+}
+
+//----------------------------------------------------------------------------
+
+int kgsl_intr_init(gsl_device_t *device)
+{
+ if (device->ftbl.intr_isr == NULL)
+ {
+ return (GSL_FAILURE_BADPARAM);
+ }
+
+ if (device->intr.flags & GSL_FLAGS_INITIALIZED)
+ {
+ return (GSL_SUCCESS);
+ }
+
+ device->intr.device = device;
+ device->intr.flags |= GSL_FLAGS_INITIALIZED;
+
+ // os_interrupt_setcallback(YAMATO_INTR, kgsl_intr_isr);
+ // os_interrupt_enable(YAMATO_INTR);
+
+ return (GSL_SUCCESS);
+}
+
+//----------------------------------------------------------------------------
+
+int kgsl_intr_close(gsl_device_t *device)
+{
+ const gsl_intrblock_reg_t *block;
+ int i, id;
+
+ if (device->intr.flags & GSL_FLAGS_INITIALIZED)
+ {
+ // check if there are any enabled interrupts lingering around
+ for (i = 0; i < GSL_INTR_BLOCK_COUNT; i++)
+ {
+ if (device->intr.enabled[i])
+ {
+ block = &gsl_cfg_intrblock_reg[i];
+
+ // loop through the block's masks, disable interrupts which active
+ for (id = block->first_id; id <= block->last_id; id++)
+ {
+ if (device->intr.enabled[i] & gsl_cfg_intr_mask[id])
+ {
+ kgsl_intr_disable(&device->intr, (gsl_intrid_t)id);
+ }
+ }
+ }
+ }
+
+ kos_memset(&device->intr, 0, sizeof(gsl_intr_t));
+ }
+
+ return (GSL_SUCCESS);
+}
+
+//----------------------------------------------------------------------------
+
+int kgsl_intr_enable(gsl_intr_t *intr, gsl_intrid_t id)
+{
+ const gsl_intrblock_reg_t *block;
+ unsigned int mask;
+ unsigned int enabled;
+
+ if (GSL_INTRID_VALIDATE(id))
+ {
+ return (GSL_FAILURE_BADPARAM);
+ }
+
+ if (intr->handler[id].callback == NULL)
+ {
+ return (GSL_FAILURE_NOTINITIALIZED);
+ }
+
+ block = kgsl_intr_id2block(id);
+ if (block == NULL)
+ {
+ return (GSL_FAILURE_SYSTEMERROR);
+ }
+
+ mask = gsl_cfg_intr_mask[id];
+ enabled = intr->enabled[block->id];
+
+ if (mask && !(enabled & mask))
+ {
+ intr->evnt[id] = kos_event_create(0);
+
+ enabled |= mask;
+ intr->enabled[block->id] = enabled;
+ intr->device->ftbl.device_regwrite(intr->device, block->mask_reg, enabled);
+ }
+
+ return (GSL_SUCCESS);
+}
+
+//----------------------------------------------------------------------------
+
+int kgsl_intr_disable(gsl_intr_t *intr, gsl_intrid_t id)
+{
+ const gsl_intrblock_reg_t *block;
+ unsigned int mask;
+ unsigned int enabled;
+
+ if (GSL_INTRID_VALIDATE(id))
+ {
+ return (GSL_FAILURE_BADPARAM);
+ }
+
+ if (intr->handler[id].callback == NULL)
+ {
+ return (GSL_FAILURE_NOTINITIALIZED);
+ }
+
+ block = kgsl_intr_id2block(id);
+ if (block == NULL)
+ {
+ return (GSL_FAILURE_SYSTEMERROR);
+ }
+
+ mask = gsl_cfg_intr_mask[id];
+ enabled = intr->enabled[block->id];
+
+ if (enabled & mask)
+ {
+ enabled &= ~mask;
+ intr->enabled[block->id] = enabled;
+ intr->device->ftbl.device_regwrite(intr->device, block->mask_reg, enabled);
+
+ kos_event_signal(intr->evnt[id]); // wake up waiting threads before destroying the event
+ kos_event_destroy(intr->evnt[id]);
+ intr->evnt[id] = 0;
+ }
+
+ return (GSL_SUCCESS);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_intr_attach(gsl_intr_t *intr, gsl_intrid_t id, gsl_intr_callback_t callback, void *cookie)
+{
+ if (GSL_INTRID_VALIDATE(id) || callback == NULL)
+ {
+ return (GSL_FAILURE_BADPARAM);
+ }
+
+ if (intr->handler[id].callback != NULL)
+ {
+ if (intr->handler[id].callback == callback && intr->handler[id].cookie == cookie)
+ {
+ return (GSL_FAILURE_ALREADYINITIALIZED);
+ }
+ else
+ {
+ return (GSL_FAILURE_NOMOREAVAILABLE);
+ }
+ }
+
+ intr->handler[id].callback = callback;
+ intr->handler[id].cookie = cookie;
+
+ return (GSL_SUCCESS);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_intr_detach(gsl_intr_t *intr, gsl_intrid_t id)
+{
+ if (GSL_INTRID_VALIDATE(id))
+ {
+ return (GSL_FAILURE_BADPARAM);
+ }
+
+ if (intr->handler[id].callback == NULL)
+ {
+ return (GSL_FAILURE_NOTINITIALIZED);
+ }
+
+ kgsl_intr_disable(intr, id);
+
+ intr->handler[id].callback = NULL;
+ intr->handler[id].cookie = NULL;
+
+ return (GSL_SUCCESS);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_intr_isenabled(gsl_intr_t *intr, gsl_intrid_t id)
+{
+ int status = GSL_FAILURE;
+ const gsl_intrblock_reg_t *block = kgsl_intr_id2block(id);
+
+ if (block != NULL)
+ {
+ // check if interrupt is enabled
+ if (intr->enabled[block->id] & gsl_cfg_intr_mask[id])
+ {
+ status = GSL_SUCCESS;
+ }
+ }
+
+ return (status);
+}
diff --git a/drivers/mxc/amd-gpu/common/gsl_log.c b/drivers/mxc/amd-gpu/common/gsl_log.c
new file mode 100644
index 000000000000..79a14a5f4b21
--- /dev/null
+++ b/drivers/mxc/amd-gpu/common/gsl_log.c
@@ -0,0 +1,591 @@
+/* Copyright (c) 2002,2008-2009, Code Aurora Forum. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 and
+ * only version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that 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.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
+ *
+ */
+
+#ifdef GSL_LOG
+
+#define _CRT_SECURE_NO_WARNINGS
+
+#include <stdarg.h>
+#include <stdio.h>
+#include <string.h>
+#include "gsl.h"
+
+#define KGSL_OUTPUT_TYPE_MEMBUF 0
+#define KGSL_OUTPUT_TYPE_STDOUT 1
+#define KGSL_OUTPUT_TYPE_FILE 2
+
+#define REG_OUTPUT( X ) case X: b += sprintf( b, "%s", #X ); break;
+#define INTRID_OUTPUT( X ) case X: b += sprintf( b, "%s", #X ); break;
+
+typedef struct log_output
+{
+ unsigned char type;
+ unsigned int flags;
+ oshandle_t file;
+
+ struct log_output* next;
+} log_output_t;
+
+static log_output_t* outputs = NULL;
+
+static oshandle_t log_mutex = NULL;
+static char buffer[256];
+static char buffer2[256];
+static int log_initialized = 0;
+
+//----------------------------------------------------------------------------
+
+int kgsl_log_init()
+{
+ log_mutex = kos_mutex_create( "log_mutex" );
+
+ log_initialized = 1;
+
+ return GSL_SUCCESS;
+}
+
+//----------------------------------------------------------------------------
+
+int kgsl_log_close()
+{
+ if( !log_initialized ) return GSL_SUCCESS;
+
+ // Go throught output list and free every node
+ while( outputs != NULL )
+ {
+ log_output_t* temp = outputs->next;
+
+ switch( outputs->type )
+ {
+ case KGSL_OUTPUT_TYPE_FILE:
+ kos_fclose( outputs->file );
+ break;
+ }
+
+ kos_free( outputs );
+ outputs = temp;
+ }
+
+ kos_mutex_free( log_mutex );
+
+ log_initialized = 0;
+
+ return GSL_SUCCESS;
+}
+
+//----------------------------------------------------------------------------
+
+int kgsl_log_open_stdout( unsigned int log_flags )
+{
+ log_output_t* output;
+
+ if( !log_initialized ) return GSL_SUCCESS;
+
+ output = kos_malloc( sizeof( log_output_t ) );
+ output->type = KGSL_OUTPUT_TYPE_STDOUT;
+ output->flags = log_flags;
+
+ // Add to the list
+ if( outputs == NULL )
+ {
+ // First node in the list.
+ outputs = output;
+ output->next = NULL;
+ }
+ else
+ {
+ // Add to the start of the list
+ output->next = outputs;
+ outputs = output;
+ }
+
+ return GSL_SUCCESS;
+}
+
+//----------------------------------------------------------------------------
+
+int kgsl_log_open_membuf( int* memBufId, unsigned int log_flags )
+{
+ // TODO
+
+ return GSL_SUCCESS;
+}
+
+//----------------------------------------------------------------------------
+
+int kgsl_log_open_file( char* filename, unsigned int log_flags )
+{
+ log_output_t* output;
+
+ if( !log_initialized ) return GSL_SUCCESS;
+
+ output = kos_malloc( sizeof( log_output_t ) );
+ output->type = KGSL_OUTPUT_TYPE_FILE;
+ output->flags = log_flags;
+ output->file = kos_fopen( filename, "w" );
+
+ // Add to the list
+ if( outputs == NULL )
+ {
+ // First node in the list.
+ outputs = output;
+ output->next = NULL;
+ }
+ else
+ {
+ // Add to the start of the list
+ output->next = outputs;
+ outputs = output;
+ }
+
+ return GSL_SUCCESS;
+}
+
+//----------------------------------------------------------------------------
+
+int kgsl_log_flush_membuf( char* filename, int memBufId )
+{
+ // TODO
+
+ return GSL_SUCCESS;
+}
+//----------------------------------------------------------------------------
+
+int kgsl_log_write( unsigned int log_flags, char* format, ... )
+{
+ char *c = format;
+ char *b = buffer;
+ char *p1, *p2;
+ log_output_t* output;
+ va_list arguments;
+
+ if( !log_initialized ) return GSL_SUCCESS;
+
+ // Acquire mutex lock as we are using shared buffer for the string parsing
+ kos_mutex_lock( log_mutex );
+
+ // Add separator
+ *(b++) = '|'; *(b++) = ' ';
+
+ va_start( arguments, format );
+
+ while( 1 )
+ {
+ // Find the first occurence of %
+ p1 = strchr( c, '%' );
+ if( !p1 )
+ {
+ // No more % characters -> copy rest of the string
+ strcpy( b, c );
+
+ break;
+ }
+
+ // Find the second occurence of % and handle the string until that point
+ p2 = strchr( p1+1, '%' );
+
+ // If not found, just use the end of the buffer
+ if( !p2 ) p2 = strchr( p1+1, '\0' );
+
+ // Break the string to this point
+ kos_memcpy( buffer2, c, p2-c );
+ *(buffer2+(unsigned int)(p2-c)) = '\0';
+
+ switch( *(p1+1) )
+ {
+ // gsl_memdesc_t
+ case 'M':
+ {
+ gsl_memdesc_t val = va_arg( arguments, gsl_memdesc_t );
+ // Handle string before %M
+ kos_memcpy( b, c, p1-c );
+ b += (unsigned int)p1-(unsigned int)c;
+ // Replace %M
+ b += sprintf( b, "[hostptr=0x%08x, gpuaddr=0x%08x]", val.hostptr, val.gpuaddr );
+ // Handle string after %M
+ kos_memcpy( b, p1+2, p2-(p1+2) );
+ b += (unsigned int)p2-(unsigned int)(p1+2);
+ *b = '\0';
+ }
+ break;
+
+ // GSL_SUCCESS/GSL_FAILURE
+ case 'B':
+ {
+ int val = va_arg( arguments, int );
+ // Handle string before %B
+ kos_memcpy( b, c, p1-c );
+ b += (unsigned int)p1-(unsigned int)c;
+ // Replace %B
+ if( val == GSL_SUCCESS )
+ b += sprintf( b, "%s", "GSL_SUCCESS" );
+ else
+ b += sprintf( b, "%s", "GSL_FAILURE" );
+ // Handle string after %B
+ kos_memcpy( b, p1+2, p2-(p1+2) );
+ b += (unsigned int)p2-(unsigned int)(p1+2);
+ *b = '\0';
+ }
+ break;
+
+ // gsl_deviceid_t
+ case 'D':
+ {
+ gsl_deviceid_t val = va_arg( arguments, gsl_deviceid_t );
+ // Handle string before %D
+ kos_memcpy( b, c, p1-c );
+ b += (unsigned int)p1-(unsigned int)c;
+ // Replace %D
+ switch( val )
+ {
+ case GSL_DEVICE_ANY:
+ b += sprintf( b, "%s", "GSL_DEVICE_ANY" );
+ break;
+ case GSL_DEVICE_YAMATO:
+ b += sprintf( b, "%s", "GSL_DEVICE_YAMATO" );
+ break;
+ case GSL_DEVICE_G12:
+ b += sprintf( b, "%s", "GSL_DEVICE_G12" );
+ break;
+ default:
+ b += sprintf( b, "%s", "UNKNOWN DEVICE" );
+ break;
+ }
+ // Handle string after %D
+ kos_memcpy( b, p1+2, p2-(p1+2) );
+ b += (unsigned int)p2-(unsigned int)(p1+2);
+ *b = '\0';
+ }
+ break;
+
+ // gsl_intrid_t
+ case 'I':
+ {
+ unsigned int val = va_arg( arguments, unsigned int );
+ // Handle string before %I
+ kos_memcpy( b, c, p1-c );
+ b += (unsigned int)p1-(unsigned int)c;
+ // Replace %I
+ switch( val )
+ {
+ INTRID_OUTPUT( GSL_INTR_YDX_MH_AXI_READ_ERROR );
+ INTRID_OUTPUT( GSL_INTR_YDX_MH_AXI_WRITE_ERROR );
+ INTRID_OUTPUT( GSL_INTR_YDX_MH_MMU_PAGE_FAULT );
+ INTRID_OUTPUT( GSL_INTR_YDX_CP_SW_INT );
+ INTRID_OUTPUT( GSL_INTR_YDX_CP_T0_PACKET_IN_IB );
+ INTRID_OUTPUT( GSL_INTR_YDX_CP_OPCODE_ERROR );
+ INTRID_OUTPUT( GSL_INTR_YDX_CP_PROTECTED_MODE_ERROR );
+ INTRID_OUTPUT( GSL_INTR_YDX_CP_RESERVED_BIT_ERROR );
+ INTRID_OUTPUT( GSL_INTR_YDX_CP_IB_ERROR );
+ INTRID_OUTPUT( GSL_INTR_YDX_CP_IB2_INT );
+ INTRID_OUTPUT( GSL_INTR_YDX_CP_IB1_INT );
+ INTRID_OUTPUT( GSL_INTR_YDX_CP_RING_BUFFER );
+ INTRID_OUTPUT( GSL_INTR_YDX_RBBM_READ_ERROR );
+ INTRID_OUTPUT( GSL_INTR_YDX_RBBM_DISPLAY_UPDATE );
+ INTRID_OUTPUT( GSL_INTR_YDX_RBBM_GUI_IDLE );
+ INTRID_OUTPUT( GSL_INTR_YDX_SQ_PS_WATCHDOG );
+ INTRID_OUTPUT( GSL_INTR_YDX_SQ_VS_WATCHDOG );
+ INTRID_OUTPUT( GSL_INTR_G12_MH );
+ INTRID_OUTPUT( GSL_INTR_G12_G2D );
+ INTRID_OUTPUT( GSL_INTR_G12_FIFO );
+#ifndef _Z180
+ INTRID_OUTPUT( GSL_INTR_G12_FBC );
+#endif // _Z180
+ INTRID_OUTPUT( GSL_INTR_G12_MH_AXI_READ_ERROR );
+ INTRID_OUTPUT( GSL_INTR_G12_MH_AXI_WRITE_ERROR );
+ INTRID_OUTPUT( GSL_INTR_G12_MH_MMU_PAGE_FAULT );
+ INTRID_OUTPUT( GSL_INTR_COUNT );
+ INTRID_OUTPUT( GSL_INTR_FOOBAR );
+
+ default:
+ b += sprintf( b, "%s", "UNKNOWN INTERRUPT ID" );
+ break;
+ }
+ // Handle string after %I
+ kos_memcpy( b, p1+2, p2-(p1+2) );
+ b += (unsigned int)p2-(unsigned int)(p1+2);
+ *b = '\0';
+ }
+ break;
+
+ // Register offset
+ case 'R':
+ {
+ unsigned int val = va_arg( arguments, unsigned int );
+
+ // Handle string before %R
+ kos_memcpy( b, c, p1-c );
+ b += (unsigned int)p1-(unsigned int)c;
+ // Replace %R
+ switch( val )
+ {
+ REG_OUTPUT( mmPA_CL_VPORT_XSCALE ); REG_OUTPUT( mmPA_CL_VPORT_XOFFSET ); REG_OUTPUT( mmPA_CL_VPORT_YSCALE );
+ REG_OUTPUT( mmPA_CL_VPORT_YOFFSET ); REG_OUTPUT( mmPA_CL_VPORT_ZSCALE ); REG_OUTPUT( mmPA_CL_VPORT_ZOFFSET );
+ REG_OUTPUT( mmPA_CL_VTE_CNTL ); REG_OUTPUT( mmPA_CL_CLIP_CNTL ); REG_OUTPUT( mmPA_CL_GB_VERT_CLIP_ADJ );
+ REG_OUTPUT( mmPA_CL_GB_VERT_DISC_ADJ ); REG_OUTPUT( mmPA_CL_GB_HORZ_CLIP_ADJ ); REG_OUTPUT( mmPA_CL_GB_HORZ_DISC_ADJ );
+ REG_OUTPUT( mmPA_CL_ENHANCE ); REG_OUTPUT( mmPA_SC_ENHANCE ); REG_OUTPUT( mmPA_SU_VTX_CNTL );
+ REG_OUTPUT( mmPA_SU_POINT_SIZE ); REG_OUTPUT( mmPA_SU_POINT_MINMAX ); REG_OUTPUT( mmPA_SU_LINE_CNTL );
+ REG_OUTPUT( mmPA_SU_FACE_DATA ); REG_OUTPUT( mmPA_SU_SC_MODE_CNTL ); REG_OUTPUT( mmPA_SU_POLY_OFFSET_FRONT_SCALE );
+ REG_OUTPUT( mmPA_SU_POLY_OFFSET_FRONT_OFFSET ); REG_OUTPUT( mmPA_SU_POLY_OFFSET_BACK_SCALE ); REG_OUTPUT( mmPA_SU_POLY_OFFSET_BACK_OFFSET );
+ REG_OUTPUT( mmPA_SU_PERFCOUNTER0_SELECT ); REG_OUTPUT( mmPA_SU_PERFCOUNTER1_SELECT ); REG_OUTPUT( mmPA_SU_PERFCOUNTER2_SELECT );
+ REG_OUTPUT( mmPA_SU_PERFCOUNTER3_SELECT ); REG_OUTPUT( mmPA_SU_PERFCOUNTER0_LOW ); REG_OUTPUT( mmPA_SU_PERFCOUNTER0_HI );
+ REG_OUTPUT( mmPA_SU_PERFCOUNTER1_LOW ); REG_OUTPUT( mmPA_SU_PERFCOUNTER1_HI ); REG_OUTPUT( mmPA_SU_PERFCOUNTER2_LOW );
+ REG_OUTPUT( mmPA_SU_PERFCOUNTER2_HI ); REG_OUTPUT( mmPA_SU_PERFCOUNTER3_LOW ); REG_OUTPUT( mmPA_SU_PERFCOUNTER3_HI );
+ REG_OUTPUT( mmPA_SC_WINDOW_OFFSET ); REG_OUTPUT( mmPA_SC_AA_CONFIG ); REG_OUTPUT( mmPA_SC_AA_MASK );
+ REG_OUTPUT( mmPA_SC_LINE_STIPPLE ); REG_OUTPUT( mmPA_SC_LINE_CNTL ); REG_OUTPUT( mmPA_SC_WINDOW_SCISSOR_TL );
+ REG_OUTPUT( mmPA_SC_WINDOW_SCISSOR_BR ); REG_OUTPUT( mmPA_SC_SCREEN_SCISSOR_TL ); REG_OUTPUT( mmPA_SC_SCREEN_SCISSOR_BR );
+ REG_OUTPUT( mmPA_SC_VIZ_QUERY ); REG_OUTPUT( mmPA_SC_VIZ_QUERY_STATUS ); REG_OUTPUT( mmPA_SC_LINE_STIPPLE_STATE );
+ REG_OUTPUT( mmPA_SC_PERFCOUNTER0_SELECT ); REG_OUTPUT( mmPA_SC_PERFCOUNTER0_LOW ); REG_OUTPUT( mmPA_SC_PERFCOUNTER0_HI );
+ REG_OUTPUT( mmPA_CL_CNTL_STATUS ); REG_OUTPUT( mmPA_SU_CNTL_STATUS ); REG_OUTPUT( mmPA_SC_CNTL_STATUS );
+ REG_OUTPUT( mmPA_SU_DEBUG_CNTL ); REG_OUTPUT( mmPA_SU_DEBUG_DATA ); REG_OUTPUT( mmPA_SC_DEBUG_CNTL );
+ REG_OUTPUT( mmPA_SC_DEBUG_DATA ); REG_OUTPUT( mmGFX_COPY_STATE ); REG_OUTPUT( mmVGT_DRAW_INITIATOR );
+ REG_OUTPUT( mmVGT_EVENT_INITIATOR ); REG_OUTPUT( mmVGT_DMA_BASE ); REG_OUTPUT( mmVGT_DMA_SIZE );
+ REG_OUTPUT( mmVGT_BIN_BASE ); REG_OUTPUT( mmVGT_BIN_SIZE ); REG_OUTPUT( mmVGT_CURRENT_BIN_ID_MIN );
+ REG_OUTPUT( mmVGT_CURRENT_BIN_ID_MAX ); REG_OUTPUT( mmVGT_IMMED_DATA ); REG_OUTPUT( mmVGT_MAX_VTX_INDX );
+ REG_OUTPUT( mmVGT_MIN_VTX_INDX ); REG_OUTPUT( mmVGT_INDX_OFFSET ); REG_OUTPUT( mmVGT_VERTEX_REUSE_BLOCK_CNTL );
+ REG_OUTPUT( mmVGT_OUT_DEALLOC_CNTL ); REG_OUTPUT( mmVGT_MULTI_PRIM_IB_RESET_INDX ); REG_OUTPUT( mmVGT_ENHANCE );
+ REG_OUTPUT( mmVGT_VTX_VECT_EJECT_REG ); REG_OUTPUT( mmVGT_LAST_COPY_STATE ); REG_OUTPUT( mmVGT_DEBUG_CNTL );
+ REG_OUTPUT( mmVGT_DEBUG_DATA ); REG_OUTPUT( mmVGT_CNTL_STATUS ); REG_OUTPUT( mmVGT_CRC_SQ_DATA );
+ REG_OUTPUT( mmVGT_CRC_SQ_CTRL ); REG_OUTPUT( mmVGT_PERFCOUNTER0_SELECT ); REG_OUTPUT( mmVGT_PERFCOUNTER1_SELECT );
+ REG_OUTPUT( mmVGT_PERFCOUNTER2_SELECT ); REG_OUTPUT( mmVGT_PERFCOUNTER3_SELECT ); REG_OUTPUT( mmVGT_PERFCOUNTER0_LOW );
+ REG_OUTPUT( mmVGT_PERFCOUNTER1_LOW ); REG_OUTPUT( mmVGT_PERFCOUNTER2_LOW ); REG_OUTPUT( mmVGT_PERFCOUNTER3_LOW );
+ REG_OUTPUT( mmVGT_PERFCOUNTER0_HI ); REG_OUTPUT( mmVGT_PERFCOUNTER1_HI ); REG_OUTPUT( mmVGT_PERFCOUNTER2_HI );
+ REG_OUTPUT( mmVGT_PERFCOUNTER3_HI ); REG_OUTPUT( mmTC_CNTL_STATUS ); REG_OUTPUT( mmTCR_CHICKEN );
+ REG_OUTPUT( mmTCF_CHICKEN ); REG_OUTPUT( mmTCM_CHICKEN ); REG_OUTPUT( mmTCR_PERFCOUNTER0_SELECT );
+ REG_OUTPUT( mmTCR_PERFCOUNTER1_SELECT ); REG_OUTPUT( mmTCR_PERFCOUNTER0_HI ); REG_OUTPUT( mmTCR_PERFCOUNTER1_HI );
+ REG_OUTPUT( mmTCR_PERFCOUNTER0_LOW ); REG_OUTPUT( mmTCR_PERFCOUNTER1_LOW ); REG_OUTPUT( mmTP_TC_CLKGATE_CNTL );
+ REG_OUTPUT( mmTPC_CNTL_STATUS ); REG_OUTPUT( mmTPC_DEBUG0 ); REG_OUTPUT( mmTPC_DEBUG1 );
+ REG_OUTPUT( mmTPC_CHICKEN ); REG_OUTPUT( mmTP0_CNTL_STATUS ); REG_OUTPUT( mmTP0_DEBUG );
+ REG_OUTPUT( mmTP0_CHICKEN ); REG_OUTPUT( mmTP0_PERFCOUNTER0_SELECT ); REG_OUTPUT( mmTP0_PERFCOUNTER0_HI );
+ REG_OUTPUT( mmTP0_PERFCOUNTER0_LOW ); REG_OUTPUT( mmTP0_PERFCOUNTER1_SELECT ); REG_OUTPUT( mmTP0_PERFCOUNTER1_HI );
+ REG_OUTPUT( mmTP0_PERFCOUNTER1_LOW ); REG_OUTPUT( mmTCM_PERFCOUNTER0_SELECT ); REG_OUTPUT( mmTCM_PERFCOUNTER1_SELECT );
+ REG_OUTPUT( mmTCM_PERFCOUNTER0_HI ); REG_OUTPUT( mmTCM_PERFCOUNTER1_HI ); REG_OUTPUT( mmTCM_PERFCOUNTER0_LOW );
+ REG_OUTPUT( mmTCM_PERFCOUNTER1_LOW ); REG_OUTPUT( mmTCF_PERFCOUNTER0_SELECT ); REG_OUTPUT( mmTCF_PERFCOUNTER1_SELECT );
+ REG_OUTPUT( mmTCF_PERFCOUNTER2_SELECT ); REG_OUTPUT( mmTCF_PERFCOUNTER3_SELECT ); REG_OUTPUT( mmTCF_PERFCOUNTER4_SELECT );
+ REG_OUTPUT( mmTCF_PERFCOUNTER5_SELECT ); REG_OUTPUT( mmTCF_PERFCOUNTER6_SELECT ); REG_OUTPUT( mmTCF_PERFCOUNTER7_SELECT );
+ REG_OUTPUT( mmTCF_PERFCOUNTER8_SELECT ); REG_OUTPUT( mmTCF_PERFCOUNTER9_SELECT ); REG_OUTPUT( mmTCF_PERFCOUNTER10_SELECT );
+ REG_OUTPUT( mmTCF_PERFCOUNTER11_SELECT ); REG_OUTPUT( mmTCF_PERFCOUNTER0_HI ); REG_OUTPUT( mmTCF_PERFCOUNTER1_HI );
+ REG_OUTPUT( mmTCF_PERFCOUNTER2_HI ); REG_OUTPUT( mmTCF_PERFCOUNTER3_HI ); REG_OUTPUT( mmTCF_PERFCOUNTER4_HI );
+ REG_OUTPUT( mmTCF_PERFCOUNTER5_HI ); REG_OUTPUT( mmTCF_PERFCOUNTER6_HI ); REG_OUTPUT( mmTCF_PERFCOUNTER7_HI );
+ REG_OUTPUT( mmTCF_PERFCOUNTER8_HI ); REG_OUTPUT( mmTCF_PERFCOUNTER9_HI ); REG_OUTPUT( mmTCF_PERFCOUNTER10_HI );
+ REG_OUTPUT( mmTCF_PERFCOUNTER11_HI ); REG_OUTPUT( mmTCF_PERFCOUNTER0_LOW ); REG_OUTPUT( mmTCF_PERFCOUNTER1_LOW );
+ REG_OUTPUT( mmTCF_PERFCOUNTER2_LOW ); REG_OUTPUT( mmTCF_PERFCOUNTER3_LOW ); REG_OUTPUT( mmTCF_PERFCOUNTER4_LOW );
+ REG_OUTPUT( mmTCF_PERFCOUNTER5_LOW ); REG_OUTPUT( mmTCF_PERFCOUNTER6_LOW ); REG_OUTPUT( mmTCF_PERFCOUNTER7_LOW );
+ REG_OUTPUT( mmTCF_PERFCOUNTER8_LOW ); REG_OUTPUT( mmTCF_PERFCOUNTER9_LOW ); REG_OUTPUT( mmTCF_PERFCOUNTER10_LOW );
+ REG_OUTPUT( mmTCF_PERFCOUNTER11_LOW ); REG_OUTPUT( mmTCF_DEBUG ); REG_OUTPUT( mmTCA_FIFO_DEBUG );
+ REG_OUTPUT( mmTCA_PROBE_DEBUG ); REG_OUTPUT( mmTCA_TPC_DEBUG ); REG_OUTPUT( mmTCB_CORE_DEBUG );
+ REG_OUTPUT( mmTCB_TAG0_DEBUG ); REG_OUTPUT( mmTCB_TAG1_DEBUG ); REG_OUTPUT( mmTCB_TAG2_DEBUG );
+ REG_OUTPUT( mmTCB_TAG3_DEBUG ); REG_OUTPUT( mmTCB_FETCH_GEN_SECTOR_WALKER0_DEBUG ); REG_OUTPUT( mmTCB_FETCH_GEN_WALKER_DEBUG );
+ REG_OUTPUT( mmTCB_FETCH_GEN_PIPE0_DEBUG ); REG_OUTPUT( mmTCD_INPUT0_DEBUG ); REG_OUTPUT( mmTCD_DEGAMMA_DEBUG );
+ REG_OUTPUT( mmTCD_DXTMUX_SCTARB_DEBUG ); REG_OUTPUT( mmTCD_DXTC_ARB_DEBUG ); REG_OUTPUT( mmTCD_STALLS_DEBUG );
+ REG_OUTPUT( mmTCO_STALLS_DEBUG ); REG_OUTPUT( mmTCO_QUAD0_DEBUG0 ); REG_OUTPUT( mmTCO_QUAD0_DEBUG1 );
+ REG_OUTPUT( mmSQ_GPR_MANAGEMENT ); REG_OUTPUT( mmSQ_FLOW_CONTROL ); REG_OUTPUT( mmSQ_INST_STORE_MANAGMENT );
+ REG_OUTPUT( mmSQ_RESOURCE_MANAGMENT ); REG_OUTPUT( mmSQ_EO_RT ); REG_OUTPUT( mmSQ_DEBUG_MISC );
+ REG_OUTPUT( mmSQ_ACTIVITY_METER_CNTL ); REG_OUTPUT( mmSQ_ACTIVITY_METER_STATUS ); REG_OUTPUT( mmSQ_INPUT_ARB_PRIORITY );
+ REG_OUTPUT( mmSQ_THREAD_ARB_PRIORITY ); REG_OUTPUT( mmSQ_VS_WATCHDOG_TIMER ); REG_OUTPUT( mmSQ_PS_WATCHDOG_TIMER );
+ REG_OUTPUT( mmSQ_INT_CNTL ); REG_OUTPUT( mmSQ_INT_STATUS ); REG_OUTPUT( mmSQ_INT_ACK );
+ REG_OUTPUT( mmSQ_DEBUG_INPUT_FSM ); REG_OUTPUT( mmSQ_DEBUG_CONST_MGR_FSM ); REG_OUTPUT( mmSQ_DEBUG_TP_FSM );
+ REG_OUTPUT( mmSQ_DEBUG_FSM_ALU_0 ); REG_OUTPUT( mmSQ_DEBUG_FSM_ALU_1 ); REG_OUTPUT( mmSQ_DEBUG_EXP_ALLOC );
+ REG_OUTPUT( mmSQ_DEBUG_PTR_BUFF ); REG_OUTPUT( mmSQ_DEBUG_GPR_VTX ); REG_OUTPUT( mmSQ_DEBUG_GPR_PIX );
+ REG_OUTPUT( mmSQ_DEBUG_TB_STATUS_SEL ); REG_OUTPUT( mmSQ_DEBUG_VTX_TB_0 ); REG_OUTPUT( mmSQ_DEBUG_VTX_TB_1 );
+ REG_OUTPUT( mmSQ_DEBUG_VTX_TB_STATUS_REG ); REG_OUTPUT( mmSQ_DEBUG_VTX_TB_STATE_MEM ); REG_OUTPUT( mmSQ_DEBUG_PIX_TB_0 );
+ REG_OUTPUT( mmSQ_DEBUG_PIX_TB_STATUS_REG_0 ); REG_OUTPUT( mmSQ_DEBUG_PIX_TB_STATUS_REG_1 ); REG_OUTPUT( mmSQ_DEBUG_PIX_TB_STATUS_REG_2 );
+ REG_OUTPUT( mmSQ_DEBUG_PIX_TB_STATUS_REG_3 ); REG_OUTPUT( mmSQ_DEBUG_PIX_TB_STATE_MEM ); REG_OUTPUT( mmSQ_PERFCOUNTER0_SELECT );
+ REG_OUTPUT( mmSQ_PERFCOUNTER1_SELECT ); REG_OUTPUT( mmSQ_PERFCOUNTER2_SELECT ); REG_OUTPUT( mmSQ_PERFCOUNTER3_SELECT );
+ REG_OUTPUT( mmSQ_PERFCOUNTER0_LOW ); REG_OUTPUT( mmSQ_PERFCOUNTER0_HI ); REG_OUTPUT( mmSQ_PERFCOUNTER1_LOW );
+ REG_OUTPUT( mmSQ_PERFCOUNTER1_HI ); REG_OUTPUT( mmSQ_PERFCOUNTER2_LOW ); REG_OUTPUT( mmSQ_PERFCOUNTER2_HI );
+ REG_OUTPUT( mmSQ_PERFCOUNTER3_LOW ); REG_OUTPUT( mmSQ_PERFCOUNTER3_HI ); REG_OUTPUT( mmSX_PERFCOUNTER0_SELECT );
+ REG_OUTPUT( mmSX_PERFCOUNTER0_LOW ); REG_OUTPUT( mmSX_PERFCOUNTER0_HI ); REG_OUTPUT( mmSQ_INSTRUCTION_ALU_0 );
+ REG_OUTPUT( mmSQ_INSTRUCTION_ALU_1 ); REG_OUTPUT( mmSQ_INSTRUCTION_ALU_2 ); REG_OUTPUT( mmSQ_INSTRUCTION_CF_EXEC_0 );
+ REG_OUTPUT( mmSQ_INSTRUCTION_CF_EXEC_1 ); REG_OUTPUT( mmSQ_INSTRUCTION_CF_EXEC_2 ); REG_OUTPUT( mmSQ_INSTRUCTION_CF_LOOP_0 );
+ REG_OUTPUT( mmSQ_INSTRUCTION_CF_LOOP_1 ); REG_OUTPUT( mmSQ_INSTRUCTION_CF_LOOP_2 ); REG_OUTPUT( mmSQ_INSTRUCTION_CF_JMP_CALL_0 );
+ REG_OUTPUT( mmSQ_INSTRUCTION_CF_JMP_CALL_1 ); REG_OUTPUT( mmSQ_INSTRUCTION_CF_JMP_CALL_2 ); REG_OUTPUT( mmSQ_INSTRUCTION_CF_ALLOC_0 );
+ REG_OUTPUT( mmSQ_INSTRUCTION_CF_ALLOC_1 ); REG_OUTPUT( mmSQ_INSTRUCTION_CF_ALLOC_2 ); REG_OUTPUT( mmSQ_INSTRUCTION_TFETCH_0 );
+ REG_OUTPUT( mmSQ_INSTRUCTION_TFETCH_1 ); REG_OUTPUT( mmSQ_INSTRUCTION_TFETCH_2 ); REG_OUTPUT( mmSQ_INSTRUCTION_VFETCH_0 );
+ REG_OUTPUT( mmSQ_INSTRUCTION_VFETCH_1 ); REG_OUTPUT( mmSQ_INSTRUCTION_VFETCH_2 ); REG_OUTPUT( mmSQ_CONSTANT_0 );
+ REG_OUTPUT( mmSQ_CONSTANT_1 ); REG_OUTPUT( mmSQ_CONSTANT_2 ); REG_OUTPUT( mmSQ_CONSTANT_3 );
+ REG_OUTPUT( mmSQ_FETCH_0 ); REG_OUTPUT( mmSQ_FETCH_1 ); REG_OUTPUT( mmSQ_FETCH_2 );
+ REG_OUTPUT( mmSQ_FETCH_3 ); REG_OUTPUT( mmSQ_FETCH_4 ); REG_OUTPUT( mmSQ_FETCH_5 );
+ REG_OUTPUT( mmSQ_CONSTANT_VFETCH_0 ); REG_OUTPUT( mmSQ_CONSTANT_VFETCH_1 ); REG_OUTPUT( mmSQ_CONSTANT_T2 );
+ REG_OUTPUT( mmSQ_CONSTANT_T3 ); REG_OUTPUT( mmSQ_CF_BOOLEANS ); REG_OUTPUT( mmSQ_CF_LOOP );
+ REG_OUTPUT( mmSQ_CONSTANT_RT_0 ); REG_OUTPUT( mmSQ_CONSTANT_RT_1 ); REG_OUTPUT( mmSQ_CONSTANT_RT_2 );
+ REG_OUTPUT( mmSQ_CONSTANT_RT_3 ); REG_OUTPUT( mmSQ_FETCH_RT_0 ); REG_OUTPUT( mmSQ_FETCH_RT_1 );
+ REG_OUTPUT( mmSQ_FETCH_RT_2 ); REG_OUTPUT( mmSQ_FETCH_RT_3 ); REG_OUTPUT( mmSQ_FETCH_RT_4 );
+ REG_OUTPUT( mmSQ_FETCH_RT_5 ); REG_OUTPUT( mmSQ_CF_RT_BOOLEANS ); REG_OUTPUT( mmSQ_CF_RT_LOOP );
+ REG_OUTPUT( mmSQ_VS_PROGRAM ); REG_OUTPUT( mmSQ_PS_PROGRAM ); REG_OUTPUT( mmSQ_CF_PROGRAM_SIZE );
+ REG_OUTPUT( mmSQ_INTERPOLATOR_CNTL ); REG_OUTPUT( mmSQ_PROGRAM_CNTL ); REG_OUTPUT( mmSQ_WRAPPING_0 );
+ REG_OUTPUT( mmSQ_WRAPPING_1 ); REG_OUTPUT( mmSQ_VS_CONST ); REG_OUTPUT( mmSQ_PS_CONST );
+ REG_OUTPUT( mmSQ_CONTEXT_MISC ); REG_OUTPUT( mmSQ_CF_RD_BASE ); REG_OUTPUT( mmSQ_DEBUG_MISC_0 );
+ REG_OUTPUT( mmSQ_DEBUG_MISC_1 ); REG_OUTPUT( mmMH_ARBITER_CONFIG ); REG_OUTPUT( mmMH_CLNT_AXI_ID_REUSE );
+ REG_OUTPUT( mmMH_INTERRUPT_MASK ); REG_OUTPUT( mmMH_INTERRUPT_STATUS ); REG_OUTPUT( mmMH_INTERRUPT_CLEAR );
+ REG_OUTPUT( mmMH_AXI_ERROR ); REG_OUTPUT( mmMH_PERFCOUNTER0_SELECT ); REG_OUTPUT( mmMH_PERFCOUNTER1_SELECT );
+ REG_OUTPUT( mmMH_PERFCOUNTER0_CONFIG ); REG_OUTPUT( mmMH_PERFCOUNTER1_CONFIG ); REG_OUTPUT( mmMH_PERFCOUNTER0_LOW );
+ REG_OUTPUT( mmMH_PERFCOUNTER1_LOW ); REG_OUTPUT( mmMH_PERFCOUNTER0_HI ); REG_OUTPUT( mmMH_PERFCOUNTER1_HI );
+ REG_OUTPUT( mmMH_DEBUG_CTRL ); REG_OUTPUT( mmMH_DEBUG_DATA ); REG_OUTPUT( mmMH_AXI_HALT_CONTROL );
+ REG_OUTPUT( mmMH_MMU_CONFIG ); REG_OUTPUT( mmMH_MMU_VA_RANGE ); REG_OUTPUT( mmMH_MMU_PT_BASE );
+ REG_OUTPUT( mmMH_MMU_PAGE_FAULT ); REG_OUTPUT( mmMH_MMU_TRAN_ERROR ); REG_OUTPUT( mmMH_MMU_INVALIDATE );
+ REG_OUTPUT( mmMH_MMU_MPU_BASE ); REG_OUTPUT( mmMH_MMU_MPU_END ); REG_OUTPUT( mmWAIT_UNTIL );
+ REG_OUTPUT( mmRBBM_ISYNC_CNTL ); REG_OUTPUT( mmRBBM_STATUS ); REG_OUTPUT( mmRBBM_DSPLY );
+ REG_OUTPUT( mmRBBM_RENDER_LATEST ); REG_OUTPUT( mmRBBM_RTL_RELEASE ); REG_OUTPUT( mmRBBM_PATCH_RELEASE );
+ REG_OUTPUT( mmRBBM_AUXILIARY_CONFIG ); REG_OUTPUT( mmRBBM_PERIPHID0 ); REG_OUTPUT( mmRBBM_PERIPHID1 );
+ REG_OUTPUT( mmRBBM_PERIPHID2 ); REG_OUTPUT( mmRBBM_PERIPHID3 ); REG_OUTPUT( mmRBBM_CNTL );
+ REG_OUTPUT( mmRBBM_SKEW_CNTL ); REG_OUTPUT( mmRBBM_SOFT_RESET ); REG_OUTPUT( mmRBBM_PM_OVERRIDE1 );
+ REG_OUTPUT( mmRBBM_PM_OVERRIDE2 ); REG_OUTPUT( mmGC_SYS_IDLE ); REG_OUTPUT( mmNQWAIT_UNTIL );
+ REG_OUTPUT( mmRBBM_DEBUG_OUT ); REG_OUTPUT( mmRBBM_DEBUG_CNTL ); REG_OUTPUT( mmRBBM_DEBUG );
+ REG_OUTPUT( mmRBBM_READ_ERROR ); REG_OUTPUT( mmRBBM_WAIT_IDLE_CLOCKS ); REG_OUTPUT( mmRBBM_INT_CNTL );
+ REG_OUTPUT( mmRBBM_INT_STATUS ); REG_OUTPUT( mmRBBM_INT_ACK ); REG_OUTPUT( mmMASTER_INT_SIGNAL );
+ REG_OUTPUT( mmRBBM_PERFCOUNTER1_SELECT ); REG_OUTPUT( mmRBBM_PERFCOUNTER1_LO ); REG_OUTPUT( mmRBBM_PERFCOUNTER1_HI );
+ REG_OUTPUT( mmCP_RB_BASE ); REG_OUTPUT( mmCP_RB_CNTL ); REG_OUTPUT( mmCP_RB_RPTR_ADDR );
+ REG_OUTPUT( mmCP_RB_RPTR ); REG_OUTPUT( mmCP_RB_RPTR_WR ); REG_OUTPUT( mmCP_RB_WPTR );
+ REG_OUTPUT( mmCP_RB_WPTR_DELAY ); REG_OUTPUT( mmCP_RB_WPTR_BASE ); REG_OUTPUT( mmCP_IB1_BASE );
+ REG_OUTPUT( mmCP_IB1_BUFSZ ); REG_OUTPUT( mmCP_IB2_BASE ); REG_OUTPUT( mmCP_IB2_BUFSZ );
+ REG_OUTPUT( mmCP_ST_BASE ); REG_OUTPUT( mmCP_ST_BUFSZ ); REG_OUTPUT( mmCP_QUEUE_THRESHOLDS );
+ REG_OUTPUT( mmCP_MEQ_THRESHOLDS ); REG_OUTPUT( mmCP_CSQ_AVAIL ); REG_OUTPUT( mmCP_STQ_AVAIL );
+ REG_OUTPUT( mmCP_MEQ_AVAIL ); REG_OUTPUT( mmCP_CSQ_RB_STAT ); REG_OUTPUT( mmCP_CSQ_IB1_STAT );
+ REG_OUTPUT( mmCP_CSQ_IB2_STAT ); REG_OUTPUT( mmCP_NON_PREFETCH_CNTRS ); REG_OUTPUT( mmCP_STQ_ST_STAT );
+ REG_OUTPUT( mmCP_MEQ_STAT ); REG_OUTPUT( mmCP_MIU_TAG_STAT ); REG_OUTPUT( mmCP_CMD_INDEX );
+ REG_OUTPUT( mmCP_CMD_DATA ); REG_OUTPUT( mmCP_ME_CNTL ); REG_OUTPUT( mmCP_ME_STATUS );
+ REG_OUTPUT( mmCP_ME_RAM_WADDR ); REG_OUTPUT( mmCP_ME_RAM_RADDR ); REG_OUTPUT( mmCP_ME_RAM_DATA );
+ REG_OUTPUT( mmCP_ME_RDADDR ); REG_OUTPUT( mmCP_DEBUG ); REG_OUTPUT( mmSCRATCH_REG0 );
+ REG_OUTPUT( mmSCRATCH_REG1 ); REG_OUTPUT( mmSCRATCH_REG2 ); REG_OUTPUT( mmSCRATCH_REG3 );
+ REG_OUTPUT( mmSCRATCH_REG4 ); REG_OUTPUT( mmSCRATCH_REG5 ); REG_OUTPUT( mmSCRATCH_REG6 );
+ REG_OUTPUT( mmSCRATCH_REG7 );
+ REG_OUTPUT( mmSCRATCH_UMSK ); REG_OUTPUT( mmSCRATCH_ADDR ); REG_OUTPUT( mmCP_ME_VS_EVENT_SRC );
+ REG_OUTPUT( mmCP_ME_VS_EVENT_ADDR ); REG_OUTPUT( mmCP_ME_VS_EVENT_DATA ); REG_OUTPUT( mmCP_ME_VS_EVENT_ADDR_SWM );
+ REG_OUTPUT( mmCP_ME_VS_EVENT_DATA_SWM ); REG_OUTPUT( mmCP_ME_PS_EVENT_SRC ); REG_OUTPUT( mmCP_ME_PS_EVENT_ADDR );
+ REG_OUTPUT( mmCP_ME_PS_EVENT_DATA ); REG_OUTPUT( mmCP_ME_PS_EVENT_ADDR_SWM ); REG_OUTPUT( mmCP_ME_PS_EVENT_DATA_SWM );
+ REG_OUTPUT( mmCP_ME_CF_EVENT_SRC ); REG_OUTPUT( mmCP_ME_CF_EVENT_ADDR ); REG_OUTPUT( mmCP_ME_CF_EVENT_DATA );
+ REG_OUTPUT( mmCP_ME_NRT_ADDR ); REG_OUTPUT( mmCP_ME_NRT_DATA ); REG_OUTPUT( mmCP_ME_VS_FETCH_DONE_SRC );
+ REG_OUTPUT( mmCP_ME_VS_FETCH_DONE_ADDR ); REG_OUTPUT( mmCP_ME_VS_FETCH_DONE_DATA ); REG_OUTPUT( mmCP_INT_CNTL );
+ REG_OUTPUT( mmCP_INT_STATUS ); REG_OUTPUT( mmCP_INT_ACK ); REG_OUTPUT( mmCP_PFP_UCODE_ADDR );
+ REG_OUTPUT( mmCP_PFP_UCODE_DATA ); REG_OUTPUT( mmCP_PERFMON_CNTL ); REG_OUTPUT( mmCP_PERFCOUNTER_SELECT );
+ REG_OUTPUT( mmCP_PERFCOUNTER_LO ); REG_OUTPUT( mmCP_PERFCOUNTER_HI ); REG_OUTPUT( mmCP_BIN_MASK_LO );
+ REG_OUTPUT( mmCP_BIN_MASK_HI ); REG_OUTPUT( mmCP_BIN_SELECT_LO ); REG_OUTPUT( mmCP_BIN_SELECT_HI );
+ REG_OUTPUT( mmCP_NV_FLAGS_0 ); REG_OUTPUT( mmCP_NV_FLAGS_1 ); REG_OUTPUT( mmCP_NV_FLAGS_2 );
+ REG_OUTPUT( mmCP_NV_FLAGS_3 ); REG_OUTPUT( mmCP_STATE_DEBUG_INDEX ); REG_OUTPUT( mmCP_STATE_DEBUG_DATA );
+ REG_OUTPUT( mmCP_PROG_COUNTER ); REG_OUTPUT( mmCP_STAT ); REG_OUTPUT( mmBIOS_0_SCRATCH );
+ REG_OUTPUT( mmBIOS_1_SCRATCH ); REG_OUTPUT( mmBIOS_2_SCRATCH ); REG_OUTPUT( mmBIOS_3_SCRATCH );
+ REG_OUTPUT( mmBIOS_4_SCRATCH ); REG_OUTPUT( mmBIOS_5_SCRATCH ); REG_OUTPUT( mmBIOS_6_SCRATCH );
+ REG_OUTPUT( mmBIOS_7_SCRATCH ); REG_OUTPUT( mmBIOS_8_SCRATCH ); REG_OUTPUT( mmBIOS_9_SCRATCH );
+ REG_OUTPUT( mmBIOS_10_SCRATCH ); REG_OUTPUT( mmBIOS_11_SCRATCH ); REG_OUTPUT( mmBIOS_12_SCRATCH );
+ REG_OUTPUT( mmBIOS_13_SCRATCH ); REG_OUTPUT( mmBIOS_14_SCRATCH ); REG_OUTPUT( mmBIOS_15_SCRATCH );
+ REG_OUTPUT( mmCOHER_SIZE_PM4 ); REG_OUTPUT( mmCOHER_BASE_PM4 ); REG_OUTPUT( mmCOHER_STATUS_PM4 );
+ REG_OUTPUT( mmCOHER_SIZE_HOST ); REG_OUTPUT( mmCOHER_BASE_HOST ); REG_OUTPUT( mmCOHER_STATUS_HOST );
+ REG_OUTPUT( mmCOHER_DEST_BASE_0 ); REG_OUTPUT( mmCOHER_DEST_BASE_1 ); REG_OUTPUT( mmCOHER_DEST_BASE_2 );
+ REG_OUTPUT( mmCOHER_DEST_BASE_3 ); REG_OUTPUT( mmCOHER_DEST_BASE_4 ); REG_OUTPUT( mmCOHER_DEST_BASE_5 );
+ REG_OUTPUT( mmCOHER_DEST_BASE_6 ); REG_OUTPUT( mmCOHER_DEST_BASE_7 ); REG_OUTPUT( mmRB_SURFACE_INFO );
+ REG_OUTPUT( mmRB_COLOR_INFO ); REG_OUTPUT( mmRB_DEPTH_INFO ); REG_OUTPUT( mmRB_STENCILREFMASK );
+ REG_OUTPUT( mmRB_ALPHA_REF ); REG_OUTPUT( mmRB_COLOR_MASK ); REG_OUTPUT( mmRB_BLEND_RED );
+ REG_OUTPUT( mmRB_BLEND_GREEN ); REG_OUTPUT( mmRB_BLEND_BLUE ); REG_OUTPUT( mmRB_BLEND_ALPHA );
+ REG_OUTPUT( mmRB_FOG_COLOR ); REG_OUTPUT( mmRB_STENCILREFMASK_BF ); REG_OUTPUT( mmRB_DEPTHCONTROL );
+ REG_OUTPUT( mmRB_BLENDCONTROL ); REG_OUTPUT( mmRB_COLORCONTROL ); REG_OUTPUT( mmRB_MODECONTROL );
+ REG_OUTPUT( mmRB_COLOR_DEST_MASK ); REG_OUTPUT( mmRB_COPY_CONTROL ); REG_OUTPUT( mmRB_COPY_DEST_BASE );
+ REG_OUTPUT( mmRB_COPY_DEST_PITCH ); REG_OUTPUT( mmRB_COPY_DEST_INFO ); REG_OUTPUT( mmRB_COPY_DEST_PIXEL_OFFSET );
+ REG_OUTPUT( mmRB_DEPTH_CLEAR ); REG_OUTPUT( mmRB_SAMPLE_COUNT_CTL ); REG_OUTPUT( mmRB_SAMPLE_COUNT_ADDR );
+ REG_OUTPUT( mmRB_BC_CONTROL ); REG_OUTPUT( mmRB_EDRAM_INFO ); REG_OUTPUT( mmRB_CRC_RD_PORT );
+ REG_OUTPUT( mmRB_CRC_CONTROL ); REG_OUTPUT( mmRB_CRC_MASK ); REG_OUTPUT( mmRB_PERFCOUNTER0_SELECT );
+ REG_OUTPUT( mmRB_PERFCOUNTER0_LOW ); REG_OUTPUT( mmRB_PERFCOUNTER0_HI ); REG_OUTPUT( mmRB_TOTAL_SAMPLES );
+ REG_OUTPUT( mmRB_ZPASS_SAMPLES ); REG_OUTPUT( mmRB_ZFAIL_SAMPLES ); REG_OUTPUT( mmRB_SFAIL_SAMPLES );
+ REG_OUTPUT( mmRB_DEBUG_0 ); REG_OUTPUT( mmRB_DEBUG_1 ); REG_OUTPUT( mmRB_DEBUG_2 );
+ REG_OUTPUT( mmRB_DEBUG_3 ); REG_OUTPUT( mmRB_DEBUG_4 ); REG_OUTPUT( mmRB_FLAG_CONTROL );
+ REG_OUTPUT( mmRB_BC_SPARES ); REG_OUTPUT( mmBC_DUMMY_CRAYRB_ENUMS ); REG_OUTPUT( mmBC_DUMMY_CRAYRB_MOREENUMS );
+
+ default:
+ b += sprintf( b, "%s", "UNKNOWN REGISTER OFFSET" );
+ break;
+ }
+ // Handle string after %R
+ kos_memcpy( b, p1+2, p2-(p1+2) );
+ b += (unsigned int)p2-(unsigned int)(p1+2);
+ *b = '\0';
+ }
+ break;
+
+
+ default:
+ {
+ int val = va_arg( arguments, int );
+ // Standard format. Use vsprintf.
+ b += sprintf( b, buffer2, val );
+ }
+ break;
+ }
+
+
+ c = p2;
+ }
+
+ // Add this string to all outputs
+ output = outputs;
+
+ while( output != NULL )
+ {
+ // Filter according to the flags
+ if( ( output->flags & log_flags ) == log_flags )
+ {
+ // Passed the filter. Now commit this message.
+ switch( output->type )
+ {
+ case KGSL_OUTPUT_TYPE_MEMBUF:
+ // TODO
+ break;
+
+ case KGSL_OUTPUT_TYPE_STDOUT:
+ // Write timestamp if enabled
+ if( output->flags & KGSL_LOG_TIMESTAMP )
+ printf( "[Timestamp: %d] ", kos_timestamp() );
+ // Write process id if enabled
+ if( output->flags & KGSL_LOG_PROCESS_ID )
+ printf( "[Process ID: %d] ", kos_process_getid() );
+ // Write thread id if enabled
+ if( output->flags & KGSL_LOG_THREAD_ID )
+ printf( "[Thread ID: %d] ", kos_thread_getid() );
+
+ // Write the message
+ printf( buffer );
+ break;
+
+ case KGSL_OUTPUT_TYPE_FILE:
+ // Write timestamp if enabled
+ if( output->flags & KGSL_LOG_TIMESTAMP )
+ kos_fprintf( output->file, "[Timestamp: %d] ", kos_timestamp() );
+ // Write process id if enabled
+ if( output->flags & KGSL_LOG_PROCESS_ID )
+ kos_fprintf( output->file, "[Process ID: %d] ", kos_process_getid() );
+ // Write thread id if enabled
+ if( output->flags & KGSL_LOG_THREAD_ID )
+ kos_fprintf( output->file, "[Thread ID: %d] ", kos_thread_getid() );
+
+ // Write the message
+ kos_fprintf( output->file, buffer );
+ break;
+ }
+ }
+
+ output = output->next;
+ }
+
+ va_end( arguments );
+
+ kos_mutex_unlock( log_mutex );
+
+ return GSL_SUCCESS;
+}
+
+//----------------------------------------------------------------------------
+#endif
diff --git a/drivers/mxc/amd-gpu/common/gsl_memmgr.c b/drivers/mxc/amd-gpu/common/gsl_memmgr.c
new file mode 100644
index 000000000000..75f250ae59b1
--- /dev/null
+++ b/drivers/mxc/amd-gpu/common/gsl_memmgr.c
@@ -0,0 +1,949 @@
+/* Copyright (c) 2008-2010, Advanced Micro Devices. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 and
+ * only version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that 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.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
+ *
+ */
+
+#include "gsl.h"
+#include "gsl_hal.h"
+
+//////////////////////////////////////////////////////////////////////////////
+// defines
+//////////////////////////////////////////////////////////////////////////////
+#define GSL_MEMARENAPRIV_SIGNATURE_MASK 0x0000FFFF
+#define GSL_MEMARENAPRIV_APERTUREID_MASK 0xF0000000
+#define GSL_MEMARENAPRIV_MMUVIRTUALIZED_MASK 0x0F000000
+
+#define GSL_MEMARENAPRIV_SIGNATURE_SHIFT 0
+#define GSL_MEMARENAPRIV_MMUVIRTUALIZED_SHIFT 24
+#define GSL_MEMARENAPRIV_APERTUREID_SHIFT 28
+
+#define GSL_MEMARENA_INSTANCE_SIGNATURE 0x0000CAFE
+
+#ifdef GSL_STATS_MEM
+#define GSL_MEMARENA_STATS(x) x
+#else
+#define GSL_MEMARENA_STATS(x)
+#endif // GSL_STATS_MEM
+
+
+/////////////////////////////////////////////////////////////////////////////
+// macros
+//////////////////////////////////////////////////////////////////////////////
+#define GSL_MEMARENA_LOCK() kos_mutex_lock(memarena->mutex)
+#define GSL_MEMARENA_UNLOCK() kos_mutex_unlock(memarena->mutex)
+
+#define GSL_MEMARENA_SET_SIGNATURE (memarena->priv |= ((GSL_MEMARENA_INSTANCE_SIGNATURE << GSL_MEMARENAPRIV_SIGNATURE_SHIFT) & GSL_MEMARENAPRIV_SIGNATURE_MASK))
+#define GSL_MEMARENA_SET_MMU_VIRTUALIZED (memarena->priv |= ((mmu_virtualized << GSL_MEMARENAPRIV_MMUVIRTUALIZED_SHIFT) & GSL_MEMARENAPRIV_MMUVIRTUALIZED_MASK))
+#define GSL_MEMARENA_SET_ID (memarena->priv |= ((aperture_id << GSL_MEMARENAPRIV_APERTUREID_SHIFT) & GSL_MEMARENAPRIV_APERTUREID_MASK))
+
+#define GSL_MEMARENA_GET_SIGNATURE ((memarena->priv & GSL_MEMARENAPRIV_SIGNATURE_MASK) >> GSL_MEMARENAPRIV_SIGNATURE_SHIFT)
+#define GSL_MEMARENA_IS_MMU_VIRTUALIZED ((memarena->priv & GSL_MEMARENAPRIV_MMUVIRTUALIZED_MASK) >> GSL_MEMARENAPRIV_MMUVIRTUALIZED_SHIFT)
+#define GSL_MEMARENA_GET_ID ((memarena->priv & GSL_MEMARENAPRIV_APERTUREID_MASK) >> GSL_MEMARENAPRIV_APERTUREID_SHIFT)
+
+
+//////////////////////////////////////////////////////////////////////////////
+// validate
+//////////////////////////////////////////////////////////////////////////////
+#define GSL_MEMARENA_VALIDATE(memarena) \
+ KOS_ASSERT(memarena); \
+ if (GSL_MEMARENA_GET_SIGNATURE != GSL_MEMARENA_INSTANCE_SIGNATURE) \
+ { \
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_ERROR, \
+ "ERROR: Memarena validation failed.\n" ); \
+ return (GSL_FAILURE); \
+ }
+
+//////////////////////////////////////////////////////////////////////////////
+// block alignment shift count
+//////////////////////////////////////////////////////////////////////////////
+OSINLINE unsigned int
+gsl_memarena_alignmentshift(gsl_flags_t flags)
+{
+ int alignshift = ((flags & GSL_MEMFLAGS_ALIGN_MASK) >> GSL_MEMFLAGS_ALIGN_SHIFT);
+ if (alignshift == 0)
+ alignshift = 5; // 32 bytes is the minimum alignment boundary
+ return (alignshift);
+}
+
+//////////////////////////////////////////////////////////////////////////////
+// address alignment
+//////////////////////////////////////////////////////////////////////////////
+OSINLINE unsigned int
+gsl_memarena_alignaddr(unsigned int address, int shift)
+{
+ //
+ // the value of the returned address is guaranteed to be an even multiple
+ // of the block alignment shift specified.
+ //
+ unsigned int alignedbaseaddr = ((address) >> shift) << shift;
+ if (alignedbaseaddr < address)
+ {
+ alignedbaseaddr += (1 << shift);
+ }
+ return (alignedbaseaddr);
+}
+
+
+//////////////////////////////////////////////////////////////////////////////
+// memory management API
+//////////////////////////////////////////////////////////////////////////////
+
+OSINLINE memblk_t*
+kgsl_memarena_getmemblknode(gsl_memarena_t *memarena)
+{
+#ifdef GSL_MEMARENA_NODE_POOL_ENABLED
+ gsl_nodepool_t *nodepool = memarena->nodepool;
+ memblk_t *memblk = NULL;
+ int allocnewpool = 1;
+ int i;
+
+ if (nodepool)
+ {
+ // walk through list of existing pools
+ for ( ; ; )
+ {
+ // if there is a pool with a free memblk node
+ if (nodepool->priv != (1 << GSL_MEMARENA_NODE_POOL_MAX)-1)
+ {
+ // get index of the first free memblk node
+ for (i = 0; i < GSL_MEMARENA_NODE_POOL_MAX; i++)
+ {
+ if (((nodepool->priv >> i) & 0x1) == 0)
+ {
+ break;
+ }
+ }
+
+ // mark memblk node as used
+ nodepool->priv |= 1 << i;
+
+ memblk = &nodepool->memblk[i];
+ memblk->nodepoolindex = i;
+ memblk->blkaddr = 0;
+ memblk->blksize = 0;
+
+ allocnewpool = 0;
+
+ break;
+ }
+ else
+ {
+ nodepool = nodepool->next;
+
+ if (nodepool == memarena->nodepool)
+ {
+ // no free memblk node found
+ break;
+ }
+ }
+ }
+ }
+
+ // if no existing pool has a free memblk node
+ if (allocnewpool)
+ {
+ // alloc new pool of memblk nodes
+ nodepool = ((gsl_nodepool_t *)kos_malloc(sizeof(gsl_nodepool_t)));
+ if (nodepool)
+ {
+ kos_memset(nodepool, 0, sizeof(gsl_nodepool_t));
+
+ if (memarena->nodepool)
+ {
+ nodepool->next = memarena->nodepool->next;
+ nodepool->prev = memarena->nodepool;
+ memarena->nodepool->next->prev = nodepool;
+ memarena->nodepool->next = nodepool;
+ }
+ else
+ {
+ nodepool->next = nodepool;
+ nodepool->prev = nodepool;
+ }
+
+ // reposition pool head
+ memarena->nodepool = nodepool;
+
+ // mark memblk node as used
+ nodepool->priv |= 0x1;
+
+ memblk = &nodepool->memblk[0];
+ memblk->nodepoolindex = 0;
+ }
+ }
+
+ KOS_ASSERT(memblk);
+
+ return (memblk);
+#else
+ // unreferenced formal parameter
+ (void) memarena;
+
+ return ((memblk_t *)kos_malloc(sizeof(memblk_t)));
+#endif // GSL_MEMARENA_NODE_POOL_ENABLED
+}
+
+//----------------------------------------------------------------------------
+
+OSINLINE void
+kgsl_memarena_releasememblknode(gsl_memarena_t *memarena, memblk_t *memblk)
+{
+#ifdef GSL_MEMARENA_NODE_POOL_ENABLED
+ gsl_nodepool_t *nodepool = memarena->nodepool;
+
+ KOS_ASSERT(memblk);
+ KOS_ASSERT(nodepool);
+
+ // locate pool to which this memblk node belongs
+ while (((unsigned int) memblk) < ((unsigned int) nodepool) ||
+ ((unsigned int) memblk) > ((unsigned int) nodepool) + sizeof(gsl_nodepool_t))
+ {
+ nodepool = nodepool->prev;
+
+ KOS_ASSERT(nodepool != memarena->nodepool);
+ }
+
+ // mark memblk node as unused
+ nodepool->priv &= ~(1 << memblk->nodepoolindex);
+
+ // free pool when all its memblk nodes are unused
+ if (nodepool->priv == 0)
+ {
+ if (nodepool != nodepool->prev)
+ {
+ // reposition pool head
+ if (nodepool == memarena->nodepool)
+ {
+ memarena->nodepool = nodepool->prev;
+ }
+
+ nodepool->prev->next = nodepool->next;
+ nodepool->next->prev = nodepool->prev;
+ }
+ else
+ {
+ memarena->nodepool = NULL;
+ }
+
+ kos_free((void *)nodepool);
+ }
+ else
+ {
+ // leave pool head in last pool a memblk node was released
+ memarena->nodepool = nodepool;
+ }
+#else
+ // unreferenced formal parameter
+ (void) memarena;
+
+ kos_free((void *)memblk);
+#endif // GSL_MEMARENA_NODE_POOL_ENABLED
+}
+
+//----------------------------------------------------------------------------
+
+gsl_memarena_t*
+kgsl_memarena_create(int aperture_id, int mmu_virtualized, unsigned int hostbaseaddr, gpuaddr_t gpubaseaddr, int sizebytes)
+{
+ static int count = 0;
+ char name[100], id_str[2];
+ int len;
+ gsl_memarena_t *memarena;
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE,
+ "--> gsl_memarena_t* kgsl_memarena_create(int aperture_id=%d, gpuaddr_t gpubaseaddr=0x%08x, int sizebytes=%d)\n", aperture_id, gpubaseaddr, sizebytes );
+
+ memarena = (gsl_memarena_t *)kos_malloc(sizeof(gsl_memarena_t));
+
+ if (!memarena)
+ {
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_ERROR,
+ "ERROR: Memarena allocation failed.\n" );
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_ERROR, "<-- kgsl_memarena_create. Return value: 0x%08x\n", NULL );
+ return (NULL);
+ }
+
+ kos_memset(memarena, 0, sizeof(gsl_memarena_t));
+
+ GSL_MEMARENA_SET_SIGNATURE;
+ GSL_MEMARENA_SET_MMU_VIRTUALIZED;
+ GSL_MEMARENA_SET_ID;
+
+ // define unique mutex for each memory arena instance
+ id_str[0] = (char) (count + '0');
+ id_str[1] = '\0';
+ kos_strcpy(name, "GSL_memory_arena_");
+ len = kos_strlen(name);
+ kos_strcpy(&name[len], id_str);
+
+ memarena->mutex = kos_mutex_create(name);
+
+ // set up the memory arena
+ memarena->hostbaseaddr = hostbaseaddr;
+ memarena->gpubaseaddr = gpubaseaddr;
+ memarena->sizebytes = sizebytes;
+
+ // allocate a memory block in free list which represents all memory in arena
+ memarena->freelist.head = kgsl_memarena_getmemblknode(memarena);
+ memarena->freelist.head->blkaddr = 0;
+ memarena->freelist.head->blksize = memarena->sizebytes;
+ memarena->freelist.head->next = memarena->freelist.head;
+ memarena->freelist.head->prev = memarena->freelist.head;
+ memarena->freelist.allocrover = memarena->freelist.head;
+ memarena->freelist.freerover = memarena->freelist.head;
+
+ count++;
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_memarena_create. Return value: 0x%08x\n", memarena );
+
+ return (memarena);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_memarena_destroy(gsl_memarena_t *memarena)
+{
+ int status = GSL_SUCCESS;
+ memblk_t *p, *next;
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE,
+ "--> int kgsl_memarena_destroy(gsl_memarena_t *memarena=0x%08x)\n", memarena );
+
+ GSL_MEMARENA_VALIDATE(memarena);
+
+ GSL_MEMARENA_LOCK();
+
+#ifdef _DEBUG
+ // memory leak check
+ if (memarena->freelist.head->blksize != memarena->sizebytes)
+ {
+ if (GSL_MEMARENA_GET_ID == GSL_APERTURE_EMEM)
+ {
+ // external memory leak detected
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_FATAL,
+ "ERROR: External memory leak detected.\n" );
+ return (GSL_FAILURE);
+ }
+ }
+#endif // _DEBUG
+
+ p = memarena->freelist.head;
+ do
+ {
+ next = p->next;
+ kgsl_memarena_releasememblknode(memarena, p);
+ p = next;
+ } while (p != memarena->freelist.head);
+
+ GSL_MEMARENA_UNLOCK();
+
+ if (memarena->mutex)
+ {
+ kos_mutex_free(memarena->mutex);
+ }
+
+ kos_free((void *)memarena);
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_memarena_destroy. Return value: %B\n", GSL_SUCCESS );
+
+ return (status);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_memarena_isvirtualized(gsl_memarena_t *memarena)
+{
+ // mmu virtualization enabled
+ return (GSL_MEMARENA_IS_MMU_VIRTUALIZED);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_memarena_checkconsistency(gsl_memarena_t *memarena)
+{
+ memblk_t *p;
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE,
+ "--> int kgsl_memarena_checkconsistency(gsl_memarena_t *memarena=0x%08x)\n", memarena );
+
+ // go through list of free blocks and make sure there are no detectable errors
+
+ p = memarena->freelist.head;
+ do
+ {
+ if (p->next->blkaddr != memarena->freelist.head->blkaddr)
+ {
+ if (p->prev->next->blkaddr != p->blkaddr ||
+ p->next->prev->blkaddr != p->blkaddr ||
+ p->blkaddr + p->blksize >= p->next->blkaddr)
+ {
+ KOS_ASSERT(0);
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_memarena_checkconsistency. Return value: %B\n", GSL_FAILURE );
+ return (GSL_FAILURE);
+ }
+ }
+ p = p->next;
+
+ } while (p != memarena->freelist.head);
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_memarena_checkconsistency. Return value: %B\n", GSL_SUCCESS );
+
+ return (GSL_SUCCESS);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_memarena_querystats(gsl_memarena_t *memarena, gsl_memarena_stats_t *stats)
+{
+#ifdef GSL_STATS_MEM
+ KOS_ASSERT(stats);
+ GSL_MEMARENA_VALIDATE(memarena);
+
+ kos_memcpy(stats, &memarena->stats, sizeof(gsl_memarena_stats_t));
+
+ return (GSL_SUCCESS);
+#else
+ // unreferenced formal parameters
+ (void) memarena;
+ (void) stats;
+
+ return (GSL_FAILURE_NOTSUPPORTED);
+#endif // GSL_STATS_MEM
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_memarena_checkfreeblock(gsl_memarena_t *memarena, int bytesneeded)
+{
+ memblk_t *p;
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE,
+ "--> int kgsl_memarena_checkfreeblock(gsl_memarena_t *memarena=0x%08x, int bytesneeded=%d)\n", memarena, bytesneeded );
+
+ GSL_MEMARENA_VALIDATE(memarena);
+
+ if (bytesneeded < 1)
+ {
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_ERROR, "ERROR: Illegal number of bytes needed.\n" );
+ KOS_ASSERT(0);
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_memarena_checkfreeblock. Return value: %B\n", GSL_FAILURE );
+ return (GSL_FAILURE);
+ }
+
+ GSL_MEMARENA_LOCK();
+
+ p = memarena->freelist.head;
+ do
+ {
+ if (p->blksize >= (unsigned int)bytesneeded)
+ {
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_memarena_checkfreeblock. Return value: %B\n", GSL_SUCCESS );
+ return (GSL_SUCCESS);
+ }
+
+ p = p->next;
+ } while (p != memarena->freelist.head);
+
+ GSL_MEMARENA_UNLOCK();
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_memarena_checkfreeblock. Return value: %B\n", GSL_FAILURE );
+
+ return (GSL_FAILURE);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_memarena_alloc(gsl_memarena_t *memarena, gsl_flags_t flags, int size, gsl_memdesc_t *memdesc)
+{
+ int result = GSL_FAILURE_OUTOFMEM;
+ memblk_t *ptrfree, *ptrlast, *p;
+ unsigned int blksize;
+ unsigned int baseaddr, alignedbaseaddr, alignfragment;
+ int freeblk, alignmentshift;
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE,
+ "--> int kgsl_memarena_alloc(gsl_memarena_t *memarena=0x%08x, gsl_flags_t flags=0x%08x, int size=%d, gsl_memdesc_t *memdesc=%M)\n", memarena, flags, size, memdesc );
+
+ GSL_MEMARENA_VALIDATE(memarena);
+
+ if (size <= 0)
+ {
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_ERROR, "ERROR: Invalid size for memory allocation.\n" );
+ KOS_ASSERT(0);
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_memarena_alloc. Return value: %B\n", GSL_FAILURE );
+ return (GSL_FAILURE);
+ }
+
+ //
+ // go through the list of free blocks. check to find block which can satisfy the alloc request
+ //
+ // if no block can satisfy the alloc request this implies that the memory is too fragmented
+ // and the requestor needs to free up other memory blocks and re-request the allocation
+ //
+ // if we do find a block that can satisfy the alloc request then reduce the size of free block
+ // by blksize and return the address after allocating the memory. if the free block size becomes
+ // 0 then remove this node from the free list
+ //
+ // there would be no node on the free list if all available memory were to be allocated.
+ // handling an empty list would require executing error checking code in the main branch which
+ // is not desired. instead, the free list will have at least one node at all times. This node
+ // could have a block size of zero
+ //
+ // we use a next fit allocation mechanism that uses a roving pointer on a circular free block list.
+ // the pointer is advanced along the chain when searching for a fit. Thus each allocation begins
+ // looking where the previous one finished.
+ //
+
+ // when allocating from external memory aperture, round up size of requested block to multiple of page size if needed
+ if (GSL_MEMARENA_GET_ID == GSL_APERTURE_EMEM)
+ {
+ if ((flags & GSL_MEMFLAGS_FORCEPAGESIZE) || GSL_MEMARENA_IS_MMU_VIRTUALIZED)
+ {
+ if (size & (GSL_PAGESIZE-1))
+ {
+ size = ((size >> GSL_PAGESIZE_SHIFT) + 1) << GSL_PAGESIZE_SHIFT;
+ }
+ }
+ }
+
+ // determine shift count for alignment requested
+ alignmentshift = gsl_memarena_alignmentshift(flags);
+
+ // adjust size of requested block to include alignment
+ blksize = (unsigned int)((size + ((1 << alignmentshift) - 1)) >> alignmentshift) << alignmentshift;
+
+ GSL_MEMARENA_LOCK();
+
+ // check consistency, debug only
+ KGSL_DEBUG(GSL_DBGFLAGS_MEMMGR, kgsl_memarena_checkconsistency(memarena));
+
+ ptrfree = memarena->freelist.allocrover;
+ ptrlast = memarena->freelist.head->prev;
+ freeblk = 0;
+
+ do
+ {
+ // align base address
+ baseaddr = ptrfree->blkaddr + memarena->gpubaseaddr;
+ alignedbaseaddr = gsl_memarena_alignaddr(baseaddr, alignmentshift);
+
+ alignfragment = alignedbaseaddr - baseaddr;
+
+ if (ptrfree->blksize >= blksize + alignfragment)
+ {
+ result = GSL_SUCCESS;
+ freeblk = 1;
+
+ memdesc->gpuaddr = alignedbaseaddr;
+ memdesc->hostptr = kgsl_memarena_gethostptr(memarena, memdesc->gpuaddr);
+ memdesc->size = blksize;
+
+ if (alignfragment > 0)
+ {
+ // insert new node to handle newly created (small) fragment
+ p = kgsl_memarena_getmemblknode(memarena);
+ p->blkaddr = ptrfree->blkaddr;
+ p->blksize = alignfragment;
+
+ p->next = ptrfree;
+ p->prev = ptrfree->prev;
+ ptrfree->prev->next = p;
+ ptrfree->prev = p;
+
+ if (ptrfree == memarena->freelist.head)
+ {
+ memarena->freelist.head = p;
+ }
+ }
+
+ ptrfree->blkaddr += alignfragment + blksize;
+ ptrfree->blksize -= alignfragment + blksize;
+
+ memarena->freelist.allocrover = ptrfree;
+
+ if (ptrfree->blksize == 0 && ptrfree != ptrlast)
+ {
+ ptrfree->prev->next = ptrfree->next;
+ ptrfree->next->prev = ptrfree->prev;
+ if (ptrfree == memarena->freelist.head)
+ {
+ memarena->freelist.head = ptrfree->next;
+ }
+ if (ptrfree == memarena->freelist.allocrover)
+ {
+ memarena->freelist.allocrover = ptrfree->next;
+ }
+ if (ptrfree == memarena->freelist.freerover)
+ {
+ memarena->freelist.freerover = ptrfree->prev;
+ }
+ p = ptrfree;
+ ptrfree = ptrfree->prev;
+ kgsl_memarena_releasememblknode(memarena, p);
+ }
+ }
+
+ ptrfree = ptrfree->next;
+
+ } while (!freeblk && ptrfree != memarena->freelist.allocrover);
+
+ GSL_MEMARENA_UNLOCK();
+
+ if (result == GSL_SUCCESS)
+ {
+ GSL_MEMARENA_STATS(
+ {
+ int i = 0;
+ while (memdesc->size >> (GSL_PAGESIZE_SHIFT + i))
+ {
+ i++;
+ }
+ i = i > (GSL_MEMARENA_PAGE_DIST_MAX-1) ? (GSL_MEMARENA_PAGE_DIST_MAX-1) : i;
+ memarena->stats.allocs_pagedistribution[i]++;
+ });
+
+ GSL_MEMARENA_STATS(memarena->stats.allocs_success++);
+ }
+ else
+ {
+ GSL_MEMARENA_STATS(memarena->stats.allocs_fail++);
+ }
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_memarena_alloc. Return value: %B\n", result );
+
+ return (result);
+}
+
+//----------------------------------------------------------------------------
+
+void
+kgsl_memarena_free(gsl_memarena_t *memarena, gsl_memdesc_t *memdesc)
+{
+ //
+ // request to free a malloc'ed block from the memory arena
+ // add this block to the free list
+ // adding a block to the free list requires the following:
+ // going through the list of free blocks to decide where to add this free block (based on address)
+ // coalesce free blocks
+ //
+ memblk_t *ptrfree, *ptrend, *p;
+ int mallocfreeblk, clockwise;
+ unsigned int addrtofree;
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE,
+ "--> void kgsl_memarena_free(gsl_memarena_t *memarena=0x%08x, gsl_memdesc_t *memdesc=%M)\n", memarena, memdesc );
+
+ KOS_ASSERT(memarena);
+ if (GSL_MEMARENA_GET_SIGNATURE != GSL_MEMARENA_INSTANCE_SIGNATURE)
+ {
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_memarena_free.\n" );
+ return;
+ }
+
+ // check size of malloc'ed block
+ if (memdesc->size <= 0)
+ {
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_ERROR, "ERROR: Illegal size for the memdesc.\n" );
+ KOS_ASSERT(0);
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_memarena_free.\n" );
+ return;
+ }
+
+ // check address range
+ KOS_ASSERT( memarena->gpubaseaddr <= memdesc->gpuaddr);
+ KOS_ASSERT((memarena->gpubaseaddr + memarena->sizebytes) >= memdesc->gpuaddr + memdesc->size);
+
+ GSL_MEMARENA_LOCK();
+
+ // check consistency of memory map, debug only
+ KGSL_DEBUG(GSL_DBGFLAGS_MEMMGR, kgsl_memarena_checkconsistency(memarena));
+
+ addrtofree = memdesc->gpuaddr - memarena->gpubaseaddr;
+ mallocfreeblk = 1;
+
+ if (addrtofree < memarena->freelist.head->blkaddr)
+ {
+ // add node to head of free list
+
+ if (addrtofree + memdesc->size == memarena->freelist.head->blkaddr)
+ {
+ memarena->freelist.head->blkaddr = addrtofree;
+ memarena->freelist.head->blksize += memdesc->size;
+
+ mallocfreeblk = 0;
+ }
+
+ ptrfree = memarena->freelist.head->prev;
+ }
+ else if (addrtofree >= memarena->freelist.head->prev->blkaddr)
+ {
+ // add node to tail of free list
+
+ ptrfree = memarena->freelist.head->prev;
+
+ if (ptrfree->blkaddr + ptrfree->blksize == addrtofree)
+ {
+ ptrfree->blksize += memdesc->size;
+
+ mallocfreeblk = 0;
+ }
+ }
+ else
+ {
+ // determine range of free list nodes to traverse and orientation in which to traverse them
+ // keep this code segment unrolled for performance reasons!
+ if (addrtofree > memarena->freelist.freerover->blkaddr)
+ {
+ if (addrtofree - memarena->freelist.freerover->blkaddr < memarena->freelist.head->prev->blkaddr - addrtofree)
+ {
+ ptrfree = memarena->freelist.freerover; // rover
+ ptrend = memarena->freelist.head->prev; // tail
+ clockwise = 1;
+ }
+ else
+ {
+ ptrfree = memarena->freelist.head->prev->prev; // tail
+ ptrend = memarena->freelist.freerover->prev; // rover
+ clockwise = 0;
+ }
+ }
+ else
+ {
+ if (addrtofree - memarena->freelist.head->blkaddr < memarena->freelist.freerover->blkaddr - addrtofree)
+ {
+ ptrfree = memarena->freelist.head; // head
+ ptrend = memarena->freelist.freerover; // rover
+ clockwise = 1;
+ }
+ else
+ {
+ ptrfree = memarena->freelist.freerover->prev; // rover
+ ptrend = memarena->freelist.head->prev; // head
+ clockwise = 0;
+ }
+ }
+
+ // traverse the nodes
+ do
+ {
+ if ((addrtofree >= ptrfree->blkaddr + ptrfree->blksize) &&
+ (addrtofree + memdesc->size <= ptrfree->next->blkaddr))
+ {
+ if (addrtofree == ptrfree->blkaddr + ptrfree->blksize)
+ {
+ memblk_t *next;
+
+ ptrfree->blksize += memdesc->size;
+ next = ptrfree->next;
+
+ if (ptrfree->blkaddr + ptrfree->blksize == next->blkaddr)
+ {
+ ptrfree->blksize += next->blksize;
+ ptrfree->next = next->next;
+ next->next->prev = ptrfree;
+
+ if (next == memarena->freelist.allocrover)
+ {
+ memarena->freelist.allocrover = ptrfree;
+ }
+
+ kgsl_memarena_releasememblknode(memarena, next);
+ }
+
+ mallocfreeblk = 0;
+ }
+ else if (addrtofree + memdesc->size == ptrfree->next->blkaddr)
+ {
+ ptrfree->next->blkaddr = addrtofree;
+ ptrfree->next->blksize += memdesc->size;
+
+ mallocfreeblk = 0;
+ }
+
+ break;
+ }
+
+ if (clockwise)
+ {
+ ptrfree = ptrfree->next;
+ }
+ else
+ {
+ ptrfree = ptrfree->prev;
+ }
+
+ } while (ptrfree != ptrend);
+ }
+
+ // this free block could not be coalesced, so create a new free block
+ // and add it to the free list in the memory arena
+ if (mallocfreeblk)
+ {
+ p = kgsl_memarena_getmemblknode(memarena);
+ p->blkaddr = addrtofree;
+ p->blksize = memdesc->size;
+
+ p->next = ptrfree->next;
+ p->prev = ptrfree;
+ ptrfree->next->prev = p;
+ ptrfree->next = p;
+
+ if (p->blkaddr < memarena->freelist.head->blkaddr)
+ {
+ memarena->freelist.head = p;
+ }
+
+ memarena->freelist.freerover = p;
+ }
+ else
+ {
+ memarena->freelist.freerover = ptrfree;
+ }
+
+ GSL_MEMARENA_UNLOCK();
+
+ GSL_MEMARENA_STATS(
+ {
+ int i = 0;
+ while (memdesc->size >> (GSL_PAGESIZE_SHIFT + i))
+ {
+ i++;
+ }
+ i = i > (GSL_MEMARENA_PAGE_DIST_MAX-1) ? (GSL_MEMARENA_PAGE_DIST_MAX-1) : i;
+ memarena->stats.frees_pagedistribution[i]++;
+ });
+
+ GSL_MEMARENA_STATS(memarena->stats.frees++);
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_memarena_free.\n" );
+}
+
+//----------------------------------------------------------------------------
+
+void *
+kgsl_memarena_gethostptr(gsl_memarena_t *memarena, gpuaddr_t gpuaddr)
+{
+ //
+ // get the host mapped address for a hardware device address
+ //
+
+ void *hostptr = NULL;
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE,
+ "--> void* kgsl_memarena_gethostptr(gsl_memarena_t *memarena=0x%08x, gpuaddr_t gpuaddr=0x%08x)\n", memarena, gpuaddr );
+
+ KOS_ASSERT(memarena);
+ if (GSL_MEMARENA_GET_SIGNATURE != GSL_MEMARENA_INSTANCE_SIGNATURE)
+ {
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_memarena_gethostptr. Return value: 0x%08x\n", NULL );
+ return (NULL);
+ }
+
+ // check address range
+ KOS_ASSERT(gpuaddr >= memarena->gpubaseaddr);
+ KOS_ASSERT(gpuaddr < memarena->gpubaseaddr + memarena->sizebytes);
+
+ hostptr = (void *)((gpuaddr - memarena->gpubaseaddr) + memarena->hostbaseaddr);
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_memarena_gethostptr. Return value: 0x%08x\n", hostptr );
+
+ return (hostptr);
+}
+
+//----------------------------------------------------------------------------
+
+gpuaddr_t
+kgsl_memarena_getgpuaddr(gsl_memarena_t *memarena, void *hostptr)
+{
+ //
+ // get the hardware device address for a host mapped address
+ //
+
+ gpuaddr_t gpuaddr = 0;
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE,
+ "--> int kgsl_memarena_getgpuaddr(gsl_memarena_t *memarena=0x%08x, void *hostptr=0x%08x)\n", memarena, hostptr );
+
+ KOS_ASSERT(memarena);
+ if (GSL_MEMARENA_GET_SIGNATURE != GSL_MEMARENA_INSTANCE_SIGNATURE)
+ {
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_memarena_getgpuaddr. Return value: 0x%08x\n", 0 );
+ return (0);
+ }
+
+ // check address range
+ KOS_ASSERT(hostptr >= (void *)memarena->hostbaseaddr);
+ KOS_ASSERT(hostptr < (void *)(memarena->hostbaseaddr + memarena->sizebytes));
+
+ gpuaddr = ((unsigned int)hostptr - memarena->hostbaseaddr) + memarena->gpubaseaddr;
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_memarena_getgpuaddr. Return value: 0x%08x\n", gpuaddr );
+
+ return (gpuaddr);
+}
+
+//----------------------------------------------------------------------------
+
+unsigned int
+kgsl_memarena_getlargestfreeblock(gsl_memarena_t *memarena, gsl_flags_t flags)
+{
+ memblk_t *ptrfree;
+ unsigned int blocksize, largestblocksize = 0;
+ int alignmentshift;
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE,
+ "--> unsigned int kgsl_memarena_getlargestfreeblock(gsl_memarena_t *memarena=0x%08x, gsl_flags_t flags=0x%08x)\n", memarena, flags );
+
+ KOS_ASSERT(memarena);
+ if (GSL_MEMARENA_GET_SIGNATURE != GSL_MEMARENA_INSTANCE_SIGNATURE)
+ {
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_memarena_getlargestfreeblock. Return value: %d\n", 0 );
+ return (0);
+ }
+
+ // determine shift count for alignment requested
+ alignmentshift = gsl_memarena_alignmentshift(flags);
+
+ GSL_MEMARENA_LOCK();
+
+ ptrfree = memarena->freelist.head;
+
+ do
+ {
+ blocksize = ptrfree->blksize - (ptrfree->blkaddr - ((ptrfree->blkaddr >> alignmentshift) << alignmentshift));
+
+ if (blocksize > largestblocksize)
+ {
+ largestblocksize = blocksize;
+ }
+
+ ptrfree = ptrfree->next;
+
+ } while (ptrfree != memarena->freelist.head);
+
+ GSL_MEMARENA_UNLOCK();
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_memarena_getlargestfreeblock. Return value: %d\n", largestblocksize );
+
+ return (largestblocksize);
+}
diff --git a/drivers/mxc/amd-gpu/common/gsl_mmu.c b/drivers/mxc/amd-gpu/common/gsl_mmu.c
new file mode 100644
index 000000000000..810a058a515d
--- /dev/null
+++ b/drivers/mxc/amd-gpu/common/gsl_mmu.c
@@ -0,0 +1,1084 @@
+/* Copyright (c) 2002,2007-2010, Code Aurora Forum. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 and
+ * only version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that 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.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
+ *
+ */
+
+#include "gsl.h"
+#include "gsl_hal.h"
+
+
+//////////////////////////////////////////////////////////////////////////////
+// types
+//////////////////////////////////////////////////////////////////////////////
+
+// ---------
+// pte debug
+// ---------
+
+typedef struct _gsl_pte_debug_t
+{
+ unsigned int write :1;
+ unsigned int read :1;
+ unsigned int reserved :10;
+ unsigned int phyaddr :20;
+} gsl_pte_debug_t;
+
+
+//////////////////////////////////////////////////////////////////////////////
+// defines
+//////////////////////////////////////////////////////////////////////////////
+#define GSL_PT_ENTRY_SIZEBYTES 4
+#define GSL_PT_EXTRA_ENTRIES 16
+
+#define GSL_PT_PAGE_WRITE 0x00000001
+#define GSL_PT_PAGE_READ 0x00000002
+
+#define GSL_PT_PAGE_AP_MASK 0x00000003
+#define GSL_PT_PAGE_ADDR_MASK ~(GSL_PAGESIZE-1)
+
+#define GSL_MMUFLAGS_TLBFLUSH 0x80000000
+
+#define GSL_TLBFLUSH_FILTER_ENTRY_NUMBITS (sizeof(unsigned char) * 8)
+
+
+//////////////////////////////////////////////////////////////////////////////
+// constants
+//////////////////////////////////////////////////////////////////////////////
+const unsigned int GSL_PT_PAGE_AP[4] = {(GSL_PT_PAGE_READ | GSL_PT_PAGE_WRITE), GSL_PT_PAGE_READ, GSL_PT_PAGE_WRITE, 0};
+
+
+/////////////////////////////////////////////////////////////////////////////
+// macros
+//////////////////////////////////////////////////////////////////////////////
+#ifdef GSL_LOCKING_FINEGRAIN
+#define GSL_MMU_MUTEX_CREATE() mmu->mutex = kos_mutex_create("gsl_mmu"); \
+ if (!mmu->mutex) {return (GSL_FAILURE);}
+#define GSL_MMU_LOCK() kos_mutex_lock(mmu->mutex)
+#define GSL_MMU_UNLOCK() kos_mutex_unlock(mmu->mutex)
+#define GSL_MMU_MUTEX_FREE() kos_mutex_free(mmu->mutex); mmu->mutex = 0;
+#else
+#define GSL_MMU_MUTEX_CREATE()
+#define GSL_MMU_LOCK()
+#define GSL_MMU_UNLOCK()
+#define GSL_MMU_MUTEX_FREE()
+#endif
+
+#define GSL_PT_ENTRY_GET(va) ((va - pagetable->va_base) >> GSL_PAGESIZE_SHIFT)
+#define GSL_PT_VIRT_GET(pte) (pagetable->va_base + (pte * GSL_PAGESIZE))
+
+#define GSL_PT_MAP_APDEFAULT GSL_PT_PAGE_AP[0]
+
+#define GSL_PT_MAP_GET(pte) *((unsigned int *)(((unsigned int)pagetable->base.hostptr) + ((pte) * GSL_PT_ENTRY_SIZEBYTES)))
+#define GSL_PT_MAP_GETADDR(pte) (GSL_PT_MAP_GET(pte) & GSL_PT_PAGE_ADDR_MASK)
+
+#define GSL_PT_MAP_DEBUG(pte) ((gsl_pte_debug_t*) &GSL_PT_MAP_GET(pte))
+
+#define GSL_PT_MAP_SETBITS(pte, bits) (GSL_PT_MAP_GET(pte) |= (((unsigned int) bits) & GSL_PT_PAGE_AP_MASK))
+#define GSL_PT_MAP_SETADDR(pte, pageaddr) (GSL_PT_MAP_GET(pte) = (GSL_PT_MAP_GET(pte) & ~GSL_PT_PAGE_ADDR_MASK) | (((unsigned int) pageaddr) & GSL_PT_PAGE_ADDR_MASK))
+
+#define GSL_PT_MAP_RESET(pte) (GSL_PT_MAP_GET(pte) = 0)
+#define GSL_PT_MAP_RESETBITS(pte, bits) (GSL_PT_MAP_GET(pte) &= ~(((unsigned int) bits) & GSL_PT_PAGE_AP_MASK))
+
+#define GSL_MMU_VIRT_TO_PAGE(va) *((unsigned int *)(pagetable->base.gpuaddr + (GSL_PT_ENTRY_GET(va) * GSL_PT_ENTRY_SIZEBYTES)))
+#define GSL_MMU_VIRT_TO_PHYS(va) ((GSL_MMU_VIRT_TO_PAGE(va) & GSL_PT_PAGE_ADDR_MASK) + (va & (GSL_PAGESIZE-1)))
+
+#define GSL_TLBFLUSH_FILTER_GET(superpte) *((unsigned char *)(((unsigned int)mmu->tlbflushfilter.base) + (superpte / GSL_TLBFLUSH_FILTER_ENTRY_NUMBITS)))
+#define GSL_TLBFLUSH_FILTER_SETDIRTY(superpte) (GSL_TLBFLUSH_FILTER_GET((superpte)) |= 1 << (superpte % GSL_TLBFLUSH_FILTER_ENTRY_NUMBITS))
+#define GSL_TLBFLUSH_FILTER_ISDIRTY(superpte) (GSL_TLBFLUSH_FILTER_GET((superpte)) & (1 << (superpte % GSL_TLBFLUSH_FILTER_ENTRY_NUMBITS)))
+#define GSL_TLBFLUSH_FILTER_RESET() kos_memset(mmu->tlbflushfilter.base, 0, mmu->tlbflushfilter.size)
+
+
+//////////////////////////////////////////////////////////////////////////////
+// process index in pagetable object table
+//////////////////////////////////////////////////////////////////////////////
+OSINLINE int
+kgsl_mmu_getprocessindex(unsigned int pid, int *pindex)
+{
+ int status = GSL_SUCCESS;
+#ifdef GSL_MMU_PAGETABLE_PERPROCESS
+ if (kgsl_driver_getcallerprocessindex(pid, pindex) != GSL_SUCCESS)
+ {
+ status = GSL_FAILURE;
+ }
+#else
+ (void) pid; // unreferenced formal parameter
+ *pindex = 0;
+#endif // GSL_MMU_PAGETABLE_PERPROCESS
+ return (status);
+}
+
+//////////////////////////////////////////////////////////////////////////////
+// pagetable object for current caller process
+//////////////////////////////////////////////////////////////////////////////
+OSINLINE gsl_pagetable_t*
+kgsl_mmu_getpagetableobject(gsl_mmu_t *mmu, unsigned int pid)
+{
+ int pindex = 0;
+ if (kgsl_mmu_getprocessindex(pid, &pindex) == GSL_SUCCESS)
+ {
+ return (mmu->pagetable[pindex]);
+ }
+ else
+ {
+ return (NULL);
+ }
+}
+
+
+//////////////////////////////////////////////////////////////////////////////
+// functions
+//////////////////////////////////////////////////////////////////////////////
+
+void
+kgsl_mh_intrcallback(gsl_intrid_t id, void *cookie)
+{
+ gsl_mmu_t *mmu = (gsl_mmu_t *) cookie;
+ unsigned int devindex = mmu->device->id-1; // device_id is 1 based
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE,
+ "--> void kgsl_mh_ntrcallback(gsl_intrid_t id=%I, void *cookie=0x%08x)\n", id, cookie );
+
+ // error condition interrupt
+ if (id == gsl_cfg_mh_intr[devindex].AXI_READ_ERROR ||
+ id == gsl_cfg_mh_intr[devindex].AXI_WRITE_ERROR ||
+ id == gsl_cfg_mh_intr[devindex].MMU_PAGE_FAULT)
+ {
+ printk(KERN_ERR "GPU: AXI Read/Write Error or MMU page fault\n");
+ schedule_work(&mmu->device->irq_err_work);
+ }
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_mh_intrcallback.\n" );
+}
+
+//----------------------------------------------------------------------------
+
+#ifdef _DEBUG
+static void
+kgsl_mmu_debug(gsl_mmu_t *mmu, gsl_mmu_debug_t *regs)
+{
+ unsigned int devindex = mmu->device->id-1; // device_id is 1 based
+
+ kos_memset(regs, 0, sizeof(gsl_mmu_debug_t));
+
+ mmu->device->ftbl.device_regread(mmu->device, gsl_cfg_mmu_reg[devindex].CONFIG, &regs->config);
+ mmu->device->ftbl.device_regread(mmu->device, gsl_cfg_mmu_reg[devindex].MPU_BASE, &regs->mpu_base);
+ mmu->device->ftbl.device_regread(mmu->device, gsl_cfg_mmu_reg[devindex].MPU_END, &regs->mpu_end);
+ mmu->device->ftbl.device_regread(mmu->device, gsl_cfg_mmu_reg[devindex].VA_RANGE, &regs->va_range);
+ mmu->device->ftbl.device_regread(mmu->device, gsl_cfg_mmu_reg[devindex].PT_BASE, &regs->pt_base);
+ mmu->device->ftbl.device_regread(mmu->device, gsl_cfg_mmu_reg[devindex].PAGE_FAULT, &regs->page_fault);
+ mmu->device->ftbl.device_regread(mmu->device, gsl_cfg_mmu_reg[devindex].TRAN_ERROR, &regs->trans_error);
+ mmu->device->ftbl.device_regread(mmu->device, gsl_cfg_mmu_reg[devindex].INVALIDATE, &regs->invalidate);
+}
+#endif
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_mmu_checkconsistency(gsl_pagetable_t *pagetable)
+{
+ unsigned int pte;
+ unsigned int data;
+ gsl_pte_debug_t *pte_debug;
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE,
+ "--> int kgsl_mmu_checkconsistency(gsl_pagetable_t *pagetable=0x%08x)\n", pagetable );
+
+ if (pagetable->last_superpte % GSL_PT_SUPER_PTE != 0)
+ {
+ KOS_ASSERT(0);
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_mmu_checkconsistency. Return value %B\n", GSL_FAILURE );
+ return (GSL_FAILURE);
+ }
+
+ // go through page table and make sure there are no detectable errors
+ pte = 0;
+ while (pte < pagetable->max_entries)
+ {
+ pte_debug = GSL_PT_MAP_DEBUG(pte);
+
+ if (GSL_PT_MAP_GETADDR(pte) != 0)
+ {
+ // pte is in use
+
+ // access first couple bytes of a page
+ data = *((unsigned int *)GSL_PT_VIRT_GET(pte));
+ }
+
+ pte++;
+ }
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_mmu_checkconsistency. Return value %B\n", GSL_SUCCESS );
+ return (GSL_SUCCESS);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_mmu_destroypagetableobject(gsl_mmu_t *mmu, unsigned int pid)
+{
+ gsl_deviceid_t tmp_id;
+ gsl_device_t *tmp_device;
+ int pindex;
+ gsl_pagetable_t *pagetable;
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "--> gsl_pagetable_t* kgsl_mmu_destroypagetableobject(gsl_mmu_t *mmu=0x%08x, unsigned int pid=0x%08x)\n", mmu, pid );
+
+ if (kgsl_mmu_getprocessindex(pid, &pindex) != GSL_SUCCESS)
+ {
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_mmu_destroypagetableobject. Return value 0x%08x\n", GSL_SUCCESS );
+ return (GSL_FAILURE);
+ }
+
+ pagetable = mmu->pagetable[pindex];
+
+ // if pagetable object exists for current "current device mmu"/"current caller process" combination
+ if (pagetable)
+ {
+ // no more "device mmu"/"caller process" combinations attached to current pagetable object
+ if (pagetable->refcnt == 0)
+ {
+#ifdef _DEBUG
+ // memory leak check
+ if (pagetable->last_superpte != 0 || GSL_PT_MAP_GETADDR(pagetable->last_superpte))
+ {
+ /* many dumpx test cases forcefully exit, and thus trigger this assert. */
+ /* Because it is an annoyance for HW guys, it is disabled for dumpx */
+ if(!gsl_driver.flags_debug & GSL_DBGFLAGS_DUMPX)
+ {
+ KOS_ASSERT(0);
+ return (GSL_FAILURE);
+ }
+ }
+#endif // _DEBUG
+
+ if (pagetable->base.gpuaddr)
+ {
+ kgsl_sharedmem_free0(&pagetable->base, GSL_CALLER_PROCESSID_GET());
+ }
+
+ kos_free(pagetable);
+
+ // clear pagetable object reference for all "device mmu"/"current caller process" combinations
+ for (tmp_id = GSL_DEVICE_ANY + 1; tmp_id <= GSL_DEVICE_MAX; tmp_id++)
+ {
+ tmp_device = &gsl_driver.device[tmp_id-1];
+
+ if (tmp_device->mmu.flags & GSL_FLAGS_STARTED)
+ {
+ tmp_device->mmu.pagetable[pindex] = NULL;
+ }
+ }
+ }
+ }
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_mmu_destroypagetableobject. Return value 0x%08x\n", GSL_SUCCESS );
+
+ return (GSL_SUCCESS);
+}
+
+//----------------------------------------------------------------------------
+
+gsl_pagetable_t*
+kgsl_mmu_createpagetableobject(gsl_mmu_t *mmu, unsigned int pid)
+{
+ //
+ // create pagetable object for "current device mmu"/"current caller
+ // process" combination. If none exists, setup a new pagetable object.
+ //
+ int status = GSL_SUCCESS;
+ gsl_pagetable_t *tmp_pagetable = NULL;
+ gsl_deviceid_t tmp_id;
+ gsl_device_t *tmp_device;
+ int pindex;
+ gsl_flags_t flags;
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "--> gsl_pagetable_t* kgsl_mmu_createpagetableobject(gsl_mmu_t *mmu=0x%08x, unsigned int pid=0x%08x)\n", mmu, pid );
+
+ status = kgsl_mmu_getprocessindex(pid, &pindex);
+ if (status != GSL_SUCCESS)
+ {
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_mmu_createpagetableobject. Return value 0x%08x\n", NULL );
+ return (NULL);
+ }
+ // if pagetable object does not already exists for "current device mmu"/"current caller process" combination
+ if (!mmu->pagetable[pindex])
+ {
+ // then, check if pagetable object already exists for any "other device mmu"/"current caller process" combination
+ for (tmp_id = GSL_DEVICE_ANY + 1; tmp_id <= GSL_DEVICE_MAX; tmp_id++)
+ {
+ tmp_device = &gsl_driver.device[tmp_id-1];
+
+ if (tmp_device->mmu.flags & GSL_FLAGS_STARTED)
+ {
+ if (tmp_device->mmu.pagetable[pindex])
+ {
+ tmp_pagetable = tmp_device->mmu.pagetable[pindex];
+ break;
+ }
+ }
+ }
+
+ // pagetable object exists
+ if (tmp_pagetable)
+ {
+ KOS_ASSERT(tmp_pagetable->va_base == mmu->va_base);
+ KOS_ASSERT(tmp_pagetable->va_range == mmu->va_range);
+
+ // set pagetable object reference
+ mmu->pagetable[pindex] = tmp_pagetable;
+ }
+ // create new pagetable object
+ else
+ {
+ mmu->pagetable[pindex] = (void *)kos_malloc(sizeof(gsl_pagetable_t));
+ if (!mmu->pagetable[pindex])
+ {
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_ERROR, "ERROR: Unable to allocate pagetable object.\n" );
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_mmu_createpagetableobject. Return value 0x%08x\n", NULL );
+ return (NULL);
+ }
+
+ kos_memset(mmu->pagetable[pindex], 0, sizeof(gsl_pagetable_t));
+
+ mmu->pagetable[pindex]->pid = pid;
+ mmu->pagetable[pindex]->refcnt = 0;
+ mmu->pagetable[pindex]->va_base = mmu->va_base;
+ mmu->pagetable[pindex]->va_range = mmu->va_range;
+ mmu->pagetable[pindex]->last_superpte = 0;
+ mmu->pagetable[pindex]->max_entries = (mmu->va_range >> GSL_PAGESIZE_SHIFT) + GSL_PT_EXTRA_ENTRIES;
+
+ // allocate page table memory
+ flags = (GSL_MEMFLAGS_ALIGN4K | GSL_MEMFLAGS_CONPHYS | GSL_MEMFLAGS_STRICTREQUEST);
+ status = kgsl_sharedmem_alloc0(mmu->device->id, flags, mmu->pagetable[pindex]->max_entries * GSL_PT_ENTRY_SIZEBYTES, &mmu->pagetable[pindex]->base);
+
+ if (status == GSL_SUCCESS)
+ {
+ // reset page table entries
+ kgsl_sharedmem_set0(&mmu->pagetable[pindex]->base, 0, 0, mmu->pagetable[pindex]->base.size);
+
+ KGSL_DEBUG(GSL_DBGFLAGS_DUMPX, KGSL_DEBUG_DUMPX(BB_DUMP_MMU_TBLADDR, mmu->pagetable[pindex]->base.gpuaddr, 0, mmu->pagetable[pindex]->base.size, "kgsl_mmu_init"));
+ }
+ else
+ {
+ kgsl_mmu_destroypagetableobject(mmu, pid);
+ }
+ }
+ }
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_mmu_createpagetableobject. Return value 0x%08x\n", mmu->pagetable[pindex] );
+
+ return (mmu->pagetable[pindex]);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_mmu_setpagetable(gsl_device_t *device, unsigned int pid)
+{
+ //
+ // set device mmu to use current caller process's page table
+ //
+ int status = GSL_SUCCESS;
+ unsigned int devindex = device->id-1; // device_id is 1 based
+ gsl_mmu_t *mmu = &device->mmu;
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE,
+ "--> gsl_pagetable_t* kgsl_mmu_setpagetable(gsl_device_t *device=0x%08x)\n", device );
+
+ GSL_MMU_LOCK();
+
+ if (mmu->flags & GSL_FLAGS_STARTED)
+ {
+#ifdef GSL_MMU_PAGETABLE_PERPROCESS
+ // page table not current, then setup mmu to use new specified page table
+ if (mmu->hwpagetable->pid != pid)
+ {
+ gsl_pagetable_t *pagetable = kgsl_mmu_getpagetableobject(mmu, pid);
+ if (pagetable)
+ {
+ mmu->hwpagetable = pagetable;
+
+ // flag tlb flush
+ mmu->flags |= GSL_MMUFLAGS_TLBFLUSH;
+
+ status = mmu->device->ftbl.mmu_setpagetable(mmu->device, gsl_cfg_mmu_reg[devindex].PT_BASE, pagetable->base.gpuaddr, pid);
+
+ GSL_MMU_STATS(mmu->stats.pt.switches++);
+ }
+ else
+ {
+ status = GSL_FAILURE;
+ }
+ }
+#endif // GSL_MMU_PAGETABLE_PERPROCESS
+
+ // if needed, invalidate device specific tlb
+ if ((mmu->flags & GSL_MMUFLAGS_TLBFLUSH) && status == GSL_SUCCESS)
+ {
+ mmu->flags &= ~GSL_MMUFLAGS_TLBFLUSH;
+
+ GSL_TLBFLUSH_FILTER_RESET();
+
+ status = mmu->device->ftbl.mmu_tlbinvalidate(mmu->device, gsl_cfg_mmu_reg[devindex].INVALIDATE, pid);
+
+ GSL_MMU_STATS(mmu->stats.tlbflushes++);
+ }
+ }
+
+ GSL_MMU_UNLOCK();
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_mmu_setpagetable. Return value %B\n", status );
+
+ return (status);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_mmu_init(gsl_device_t *device)
+{
+ //
+ // intialize device mmu
+ //
+ // call this with the global lock held
+ //
+ int status;
+ gsl_flags_t flags;
+ gsl_pagetable_t *pagetable;
+ unsigned int devindex = device->id-1; // device_id is 1 based
+ gsl_mmu_t *mmu = &device->mmu;
+#ifdef _DEBUG
+ gsl_mmu_debug_t regs;
+#endif // _DEBUG
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE,
+ "--> int kgsl_mmu_init(gsl_device_t *device=0x%08x)\n", device );
+
+ if (device->ftbl.mmu_tlbinvalidate == NULL || device->ftbl.mmu_setpagetable == NULL ||
+ !(device->flags & GSL_FLAGS_INITIALIZED))
+ {
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_mmu_init. Return value %B\n", GSL_FAILURE );
+ return (GSL_FAILURE);
+ }
+
+ if (mmu->flags & GSL_FLAGS_INITIALIZED0)
+ {
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_INFO, "MMU already initialized.\n" );
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_mmu_init. Return value %B\n", GSL_SUCCESS );
+ return (GSL_SUCCESS);
+ }
+
+ // setup backward reference
+ mmu->device = device;
+
+ // disable MMU when running in safe mode
+ if (device->flags & GSL_FLAGS_SAFEMODE)
+ {
+ mmu->config = 0x00000000;
+ }
+
+ // setup MMU and sub-client behavior
+ device->ftbl.device_regwrite(device, gsl_cfg_mmu_reg[devindex].CONFIG, mmu->config);
+
+ // enable axi interrupts
+ kgsl_intr_attach(&device->intr, gsl_cfg_mh_intr[devindex].AXI_READ_ERROR, kgsl_mh_intrcallback, (void *) mmu);
+ kgsl_intr_attach(&device->intr, gsl_cfg_mh_intr[devindex].AXI_WRITE_ERROR, kgsl_mh_intrcallback, (void *) mmu);
+ kgsl_intr_enable(&device->intr, gsl_cfg_mh_intr[devindex].AXI_READ_ERROR);
+ kgsl_intr_enable(&device->intr, gsl_cfg_mh_intr[devindex].AXI_WRITE_ERROR);
+
+ mmu->refcnt = 0;
+ mmu->flags |= GSL_FLAGS_INITIALIZED0;
+
+ // MMU enabled
+ if (mmu->config & 0x1)
+ {
+ // idle device
+ device->ftbl.device_idle(device, GSL_TIMEOUT_DEFAULT);
+
+ // make sure aligned to pagesize
+ KOS_ASSERT((mmu->mpu_base & ((1 << GSL_PAGESIZE_SHIFT)-1)) == 0);
+ KOS_ASSERT(((mmu->mpu_base + mmu->mpu_range) & ((1 << GSL_PAGESIZE_SHIFT)-1)) == 0);
+
+ // define physical memory range accessible by the core
+ device->ftbl.device_regwrite(device, gsl_cfg_mmu_reg[devindex].MPU_BASE, mmu->mpu_base);
+ device->ftbl.device_regwrite(device, gsl_cfg_mmu_reg[devindex].MPU_END, mmu->mpu_base + mmu->mpu_range);
+
+ // enable page fault interrupt
+ kgsl_intr_attach(&device->intr, gsl_cfg_mh_intr[devindex].MMU_PAGE_FAULT, kgsl_mh_intrcallback, (void *) mmu);
+ kgsl_intr_enable(&device->intr, gsl_cfg_mh_intr[devindex].MMU_PAGE_FAULT);
+
+ mmu->flags |= GSL_FLAGS_INITIALIZED;
+
+ // sub-client MMU lookups require address translation
+ if ((mmu->config & ~0x1) > 0)
+ {
+ GSL_MMU_MUTEX_CREATE();
+
+ // make sure virtual address range is a multiple of 64Kb
+ KOS_ASSERT((mmu->va_range & ((1 << 16)-1)) == 0);
+
+ // setup pagetable object
+ pagetable = kgsl_mmu_createpagetableobject(mmu, GSL_CALLER_PROCESSID_GET());
+ if (!pagetable)
+ {
+ kgsl_mmu_close(device);
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_mmu_init. Return value %B\n", GSL_FAILURE );
+ return (GSL_FAILURE);
+ }
+
+ mmu->hwpagetable = pagetable;
+
+ // create tlb flush filter to track dirty superPTE's -- one bit per superPTE
+ mmu->tlbflushfilter.size = (mmu->va_range / (GSL_PAGESIZE * GSL_PT_SUPER_PTE * 8)) + 1;
+ mmu->tlbflushfilter.base = (unsigned int *)kos_malloc(mmu->tlbflushfilter.size);
+ if (!mmu->tlbflushfilter.base)
+ {
+ kgsl_mmu_close(device);
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_mmu_init. Return value %B\n", GSL_FAILURE );
+ return (GSL_FAILURE);
+ }
+
+ GSL_TLBFLUSH_FILTER_RESET();
+
+ // set page table base
+ device->ftbl.device_regwrite(device, gsl_cfg_mmu_reg[devindex].PT_BASE, mmu->hwpagetable->base.gpuaddr);
+
+ // define virtual address range
+ device->ftbl.device_regwrite(device, gsl_cfg_mmu_reg[devindex].VA_RANGE, (mmu->hwpagetable->va_base | (mmu->hwpagetable->va_range >> 16)));
+
+ // allocate memory used for completing r/w operations that cannot be mapped by the MMU
+ flags = (GSL_MEMFLAGS_ALIGN32 | GSL_MEMFLAGS_CONPHYS | GSL_MEMFLAGS_STRICTREQUEST);
+ status = kgsl_sharedmem_alloc0(device->id, flags, 32, &mmu->dummyspace);
+ if (status != GSL_SUCCESS)
+ {
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_ERROR, "ERROR: Unable to allocate dummy space memory.\n" );
+ kgsl_mmu_close(device);
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_mmu_init. Return value %B\n", status );
+ return (status);
+ }
+
+ device->ftbl.device_regwrite(device, gsl_cfg_mmu_reg[devindex].TRAN_ERROR, mmu->dummyspace.gpuaddr);
+
+ // call device specific tlb invalidate
+ device->ftbl.mmu_tlbinvalidate(device, gsl_cfg_mmu_reg[devindex].INVALIDATE, mmu->hwpagetable->pid);
+
+ GSL_MMU_STATS(mmu->stats.tlbflushes++);
+
+ mmu->flags |= GSL_FLAGS_STARTED;
+ }
+ }
+
+ KGSL_DEBUG(GSL_DBGFLAGS_MMU, kgsl_mmu_debug(&device->mmu, &regs));
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_mmu_init. Return value %B\n", GSL_SUCCESS );
+
+ return (GSL_SUCCESS);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_mmu_map(gsl_mmu_t *mmu, gpuaddr_t gpubaseaddr, const gsl_scatterlist_t *scatterlist, gsl_flags_t flags, unsigned int pid)
+{
+ //
+ // map physical pages into the gpu page table
+ //
+ int status = GSL_SUCCESS;
+ unsigned int i, phyaddr, ap;
+ unsigned int pte, ptefirst, ptelast, superpte;
+ int flushtlb;
+ gsl_pagetable_t *pagetable;
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE,
+ "--> int kgsl_mmu_map(gsl_mmu_t *mmu=0x%08x, gpuaddr_t gpubaseaddr=0x%08x, gsl_scatterlist_t *scatterlist=%M, gsl_flags_t flags=%d, unsigned int pid=%d)\n",
+ mmu, gpubaseaddr, scatterlist, flags, pid );
+
+ KOS_ASSERT(scatterlist);
+
+ if (scatterlist->num <= 0)
+ {
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_ERROR, "ERROR: num pages is too small.\n" );
+ KOS_ASSERT(0);
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_mmu_map. Return value %B\n", GSL_FAILURE );
+ return (GSL_FAILURE);
+ }
+
+ // get gpu access permissions
+ ap = GSL_PT_PAGE_AP[((flags & GSL_MEMFLAGS_GPUAP_MASK) >> GSL_MEMFLAGS_GPUAP_SHIFT)];
+
+ GSL_MMU_LOCK();
+
+ pagetable = kgsl_mmu_getpagetableobject(mmu, pid);
+ if (!pagetable)
+ {
+ GSL_MMU_UNLOCK();
+ return (GSL_FAILURE);
+ }
+
+ // check consistency, debug only
+ KGSL_DEBUG(GSL_DBGFLAGS_MMU, kgsl_mmu_checkconsistency(pagetable));
+
+ ptefirst = GSL_PT_ENTRY_GET(gpubaseaddr);
+ ptelast = GSL_PT_ENTRY_GET(gpubaseaddr + (GSL_PAGESIZE * (scatterlist->num-1)));
+ flushtlb = 0;
+
+ if (!GSL_PT_MAP_GETADDR(ptefirst))
+ {
+ // tlb needs to be flushed when the first and last pte are not at superpte boundaries
+ if ((ptefirst & (GSL_PT_SUPER_PTE-1)) != 0 || ((ptelast+1) & (GSL_PT_SUPER_PTE-1)) != 0)
+ {
+ flushtlb = 1;
+ }
+
+ // create page table entries
+ for (pte = ptefirst; pte <= ptelast; pte++)
+ {
+ if (scatterlist->contiguous)
+ {
+ phyaddr = scatterlist->pages[0] + ((pte-ptefirst) * GSL_PAGESIZE);
+ }
+ else
+ {
+ phyaddr = scatterlist->pages[pte-ptefirst];
+ }
+
+ GSL_PT_MAP_SETADDR(pte, phyaddr);
+ GSL_PT_MAP_SETBITS(pte, ap);
+
+ // tlb needs to be flushed when a dirty superPTE gets backed
+ if ((pte & (GSL_PT_SUPER_PTE-1)) == 0)
+ {
+ if (GSL_TLBFLUSH_FILTER_ISDIRTY(pte / GSL_PT_SUPER_PTE))
+ {
+ flushtlb = 1;
+ }
+ }
+
+ KGSL_DEBUG(GSL_DBGFLAGS_DUMPX, KGSL_DEBUG_DUMPX(BB_DUMP_SET_MMUTBL, pte , *(unsigned int*)(((char*)pagetable->base.hostptr) + (pte * GSL_PT_ENTRY_SIZEBYTES)), 0, "kgsl_mmu_map"));
+ }
+
+ if (flushtlb)
+ {
+ // every device's tlb needs to be flushed because the current page table is shared among all devices
+ for (i = 0; i < GSL_DEVICE_MAX; i++)
+ {
+ if (gsl_driver.device[i].flags & GSL_FLAGS_INITIALIZED)
+ {
+ gsl_driver.device[i].mmu.flags |= GSL_MMUFLAGS_TLBFLUSH;
+ }
+ }
+ }
+
+ // determine new last mapped superPTE
+ superpte = ptelast - (ptelast & (GSL_PT_SUPER_PTE-1));
+ if (superpte > pagetable->last_superpte)
+ {
+ pagetable->last_superpte = superpte;
+ }
+
+ GSL_MMU_STATS(mmu->stats.pt.maps++);
+ }
+ else
+ {
+ // this should never happen
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_FATAL, "FATAL: This should never happen.\n" );
+ KOS_ASSERT(0);
+ status = GSL_FAILURE;
+ }
+
+ GSL_MMU_UNLOCK();
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_mmu_map. Return value %B\n", GSL_SUCCESS );
+
+ return (status);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_mmu_unmap(gsl_mmu_t *mmu, gpuaddr_t gpubaseaddr, int range, unsigned int pid)
+{
+ //
+ // remove mappings in the specified address range from the gpu page table
+ //
+ int status = GSL_SUCCESS;
+ gsl_pagetable_t *pagetable;
+ unsigned int numpages;
+ unsigned int pte, ptefirst, ptelast, superpte;
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE,
+ "--> int kgsl_mmu_unmap(gsl_mmu_t *mmu=0x%08x, gpuaddr_t gpubaseaddr=0x%08x, int range=%d, unsigned int pid=%d)\n",
+ mmu, gpubaseaddr, range, pid );
+
+ if (range <= 0)
+ {
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_ERROR, "ERROR: Range is too small.\n" );
+ KOS_ASSERT(0);
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_mmu_unmap. Return value %B\n", GSL_FAILURE );
+ return (GSL_FAILURE);
+ }
+
+ numpages = (range >> GSL_PAGESIZE_SHIFT);
+ if (range & (GSL_PAGESIZE-1))
+ {
+ numpages++;
+ }
+
+ GSL_MMU_LOCK();
+
+ pagetable = kgsl_mmu_getpagetableobject(mmu, pid);
+ if (!pagetable)
+ {
+ GSL_MMU_UNLOCK();
+ return (GSL_FAILURE);
+ }
+
+ // check consistency, debug only
+ KGSL_DEBUG(GSL_DBGFLAGS_MMU, kgsl_mmu_checkconsistency(pagetable));
+
+ ptefirst = GSL_PT_ENTRY_GET(gpubaseaddr);
+ ptelast = GSL_PT_ENTRY_GET(gpubaseaddr + (GSL_PAGESIZE * (numpages-1)));
+
+ if (GSL_PT_MAP_GETADDR(ptefirst))
+ {
+ superpte = ptefirst - (ptefirst & (GSL_PT_SUPER_PTE-1));
+ GSL_TLBFLUSH_FILTER_SETDIRTY(superpte / GSL_PT_SUPER_PTE);
+
+ // remove page table entries
+ for (pte = ptefirst; pte <= ptelast; pte++)
+ {
+ GSL_PT_MAP_RESET(pte);
+
+ superpte = pte - (pte & (GSL_PT_SUPER_PTE-1));
+ if (pte == superpte)
+ {
+ GSL_TLBFLUSH_FILTER_SETDIRTY(superpte / GSL_PT_SUPER_PTE);
+ }
+
+ KGSL_DEBUG(GSL_DBGFLAGS_DUMPX, KGSL_DEBUG_DUMPX(BB_DUMP_SET_MMUTBL, pte, *(unsigned int*)(((char*)pagetable->base.hostptr) + (pte * GSL_PT_ENTRY_SIZEBYTES)), 0, "kgsl_mmu_unmap, reset superPTE"));
+ }
+
+ // determine new last mapped superPTE
+ superpte = ptelast - (ptelast & (GSL_PT_SUPER_PTE-1));
+ if (superpte == pagetable->last_superpte && pagetable->last_superpte >= GSL_PT_SUPER_PTE)
+ {
+ do
+ {
+ pagetable->last_superpte -= GSL_PT_SUPER_PTE;
+ } while (!GSL_PT_MAP_GETADDR(pagetable->last_superpte) && pagetable->last_superpte >= GSL_PT_SUPER_PTE);
+ }
+
+ GSL_MMU_STATS(mmu->stats.pt.unmaps++);
+ }
+ else
+ {
+ // this should never happen
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_FATAL, "FATAL: This should never happen.\n" );
+ KOS_ASSERT(0);
+ status = GSL_FAILURE;
+ }
+
+ // invalidate tlb, debug only
+ KGSL_DEBUG(GSL_DBGFLAGS_MMU, mmu->device->ftbl.mmu_tlbinvalidate(mmu->device, gsl_cfg_mmu_reg[mmu->device->id-1].INVALIDATE, pagetable->pid));
+
+ GSL_MMU_UNLOCK();
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_mmu_unmap. Return value %B\n", GSL_SUCCESS );
+
+ return (status);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_mmu_getmap(gsl_mmu_t *mmu, gpuaddr_t gpubaseaddr, int range, gsl_scatterlist_t *scatterlist, unsigned int pid)
+{
+ //
+ // obtain scatter list of physical pages for the given gpu address range.
+ // if all pages are physically contiguous they are coalesced into a single
+ // scatterlist entry.
+ //
+ gsl_pagetable_t *pagetable;
+ unsigned int numpages;
+ unsigned int pte, ptefirst, ptelast;
+ unsigned int contiguous = 1;
+
+ numpages = (range >> GSL_PAGESIZE_SHIFT);
+ if (range & (GSL_PAGESIZE-1))
+ {
+ numpages++;
+ }
+
+ if (range <= 0 || scatterlist->num != numpages)
+ {
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_ERROR, "ERROR: Range is too small.\n" );
+ KOS_ASSERT(0);
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_mmu_getmap. Return value %B\n", GSL_FAILURE );
+ return (GSL_FAILURE);
+ }
+
+ GSL_MMU_LOCK();
+
+ pagetable = kgsl_mmu_getpagetableobject(mmu, pid);
+ if (!pagetable)
+ {
+ GSL_MMU_UNLOCK();
+ return (GSL_FAILURE);
+ }
+
+ ptefirst = GSL_PT_ENTRY_GET(gpubaseaddr);
+ ptelast = GSL_PT_ENTRY_GET(gpubaseaddr + (GSL_PAGESIZE * (numpages-1)));
+
+ // determine whether pages are physically contiguous
+ if (numpages > 1)
+ {
+ for (pte = ptefirst; pte <= ptelast-1; pte++)
+ {
+ if (GSL_PT_MAP_GETADDR(pte) + GSL_PAGESIZE != GSL_PT_MAP_GETADDR(pte+1))
+ {
+ contiguous = 0;
+ break;
+ }
+ }
+ }
+
+ if (!contiguous)
+ {
+ // populate scatter list
+ for (pte = ptefirst; pte <= ptelast; pte++)
+ {
+ scatterlist->pages[pte-ptefirst] = GSL_PT_MAP_GETADDR(pte);
+ }
+ }
+ else
+ {
+ // coalesce physically contiguous pages into a single scatter list entry
+ scatterlist->pages[0] = GSL_PT_MAP_GETADDR(ptefirst);
+ }
+
+ GSL_MMU_UNLOCK();
+
+ scatterlist->contiguous = contiguous;
+
+ return (GSL_SUCCESS);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_mmu_close(gsl_device_t *device)
+{
+ //
+ // close device mmu
+ //
+ // call this with the global lock held
+ //
+ gsl_mmu_t *mmu = &device->mmu;
+ unsigned int devindex = mmu->device->id-1; // device_id is 1 based
+#ifdef _DEBUG
+ int i;
+#endif // _DEBUG
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "--> int kgsl_mmu_close(gsl_device_t *device=0x%08x)\n", device );
+
+ if (mmu->flags & GSL_FLAGS_INITIALIZED0)
+ {
+ if (mmu->flags & GSL_FLAGS_STARTED)
+ {
+ // terminate pagetable object
+ kgsl_mmu_destroypagetableobject(mmu, GSL_CALLER_PROCESSID_GET());
+ }
+
+ // no more processes attached to current device mmu
+ if (mmu->refcnt == 0)
+ {
+#ifdef _DEBUG
+ // check if there are any orphaned pagetable objects lingering around
+ for (i = 0; i < GSL_MMU_PAGETABLE_MAX; i++)
+ {
+ if (mmu->pagetable[i])
+ {
+ /* many dumpx test cases forcefully exit, and thus trigger this assert. */
+ /* Because it is an annoyance for HW guys, it is disabled for dumpx */
+ if(!gsl_driver.flags_debug & GSL_DBGFLAGS_DUMPX)
+ {
+ KOS_ASSERT(0);
+ return (GSL_FAILURE);
+ }
+ }
+ }
+#endif // _DEBUG
+
+ // disable mh interrupts
+ kgsl_intr_detach(&device->intr, gsl_cfg_mh_intr[devindex].AXI_READ_ERROR);
+ kgsl_intr_detach(&device->intr, gsl_cfg_mh_intr[devindex].AXI_WRITE_ERROR);
+ kgsl_intr_detach(&device->intr, gsl_cfg_mh_intr[devindex].MMU_PAGE_FAULT);
+
+ // disable MMU
+ device->ftbl.device_regwrite(device, gsl_cfg_mmu_reg[devindex].CONFIG, 0x00000000);
+
+ if (mmu->tlbflushfilter.base)
+ {
+ kos_free(mmu->tlbflushfilter.base);
+ }
+
+ if (mmu->dummyspace.gpuaddr)
+ {
+ kgsl_sharedmem_free0(&mmu->dummyspace, GSL_CALLER_PROCESSID_GET());
+ }
+
+ GSL_MMU_MUTEX_FREE();
+
+ mmu->flags &= ~GSL_FLAGS_STARTED;
+ mmu->flags &= ~GSL_FLAGS_INITIALIZED;
+ mmu->flags &= ~GSL_FLAGS_INITIALIZED0;
+ }
+ }
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_mmu_close. Return value %B\n", GSL_SUCCESS );
+
+ return (GSL_SUCCESS);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_mmu_attachcallback(gsl_mmu_t *mmu, unsigned int pid)
+{
+ //
+ // attach process
+ //
+ // call this with the global lock held
+ //
+ int status = GSL_SUCCESS;
+ gsl_pagetable_t *pagetable;
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "--> int kgsl_mmu_attachcallback(gsl_mmu_t *mmu=0x%08x, unsigned int pid=0x%08x)\n", mmu, pid );
+
+ GSL_MMU_LOCK();
+
+ if (mmu->flags & GSL_FLAGS_INITIALIZED0)
+ {
+ // attach to current device mmu
+ mmu->refcnt++;
+
+ if (mmu->flags & GSL_FLAGS_STARTED)
+ {
+ // attach to pagetable object
+ pagetable = kgsl_mmu_createpagetableobject(mmu, pid);
+ if(pagetable)
+ {
+ pagetable->refcnt++;
+ }
+ else
+ {
+ status = GSL_FAILURE;
+ }
+ }
+ }
+
+ GSL_MMU_UNLOCK();
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_mmu_attachcallback. Return value %B\n", status );
+
+ return (status);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_mmu_detachcallback(gsl_mmu_t *mmu, unsigned int pid)
+{
+ //
+ // detach process
+ //
+ int status = GSL_SUCCESS;
+ gsl_pagetable_t *pagetable;
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "--> int kgsl_mmu_detachcallback(gsl_mmu_t *mmu=0x%08x, unsigned int pid=0x%08x)\n", mmu, pid );
+
+ GSL_MMU_LOCK();
+
+ if (mmu->flags & GSL_FLAGS_INITIALIZED0)
+ {
+ // detach from current device mmu
+ mmu->refcnt--;
+
+ if (mmu->flags & GSL_FLAGS_STARTED)
+ {
+ // detach from pagetable object
+ pagetable = kgsl_mmu_getpagetableobject(mmu, pid);
+ if(pagetable)
+ {
+ pagetable->refcnt--;
+ }
+ else
+ {
+ status = GSL_FAILURE;
+ }
+ }
+ }
+
+ GSL_MMU_UNLOCK();
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_mmu_detachcallback. Return value %B\n", status );
+
+ return (status);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_mmu_querystats(gsl_mmu_t *mmu, gsl_mmustats_t *stats)
+{
+#ifdef GSL_STATS_MMU
+ int status = GSL_SUCCESS;
+
+ KOS_ASSERT(stats);
+
+ GSL_MMU_LOCK();
+
+ if (mmu->flags & GSL_FLAGS_STARTED)
+ {
+ kos_memcpy(stats, &mmu->stats, sizeof(gsl_mmustats_t));
+ }
+ else
+ {
+ kos_memset(stats, 0, sizeof(gsl_mmustats_t));
+ }
+
+ GSL_MMU_UNLOCK();
+
+ return (status);
+#else
+ // unreferenced formal parameters
+ (void) mmu;
+ (void) stats;
+
+ return (GSL_FAILURE_NOTSUPPORTED);
+#endif // GSL_STATS_MMU
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_mmu_bist(gsl_mmu_t *mmu)
+{
+ // unreferenced formal parameter
+ (void) mmu;
+
+ return (GSL_SUCCESS);
+}
diff --git a/drivers/mxc/amd-gpu/common/gsl_ringbuffer.c b/drivers/mxc/amd-gpu/common/gsl_ringbuffer.c
new file mode 100644
index 000000000000..76c6c701f126
--- /dev/null
+++ b/drivers/mxc/amd-gpu/common/gsl_ringbuffer.c
@@ -0,0 +1,1169 @@
+/* Copyright (c) 2002,2007-2009, Code Aurora Forum. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 and
+ * only version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that 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.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
+ *
+ */
+
+#include "gsl.h"
+#include "gsl_hal.h"
+#include "gsl_cmdstream.h"
+
+#ifdef GSL_BLD_YAMATO
+
+//////////////////////////////////////////////////////////////////////////////
+// ucode
+//////////////////////////////////////////////////////////////////////////////
+#define uint32 unsigned int
+
+#include "pm4_microcode.inl"
+#include "pfp_microcode_nrt.inl"
+
+#undef uint32
+
+
+//////////////////////////////////////////////////////////////////////////////
+// defines
+//////////////////////////////////////////////////////////////////////////////
+#define GSL_RB_NOP_SIZEDWORDS 2 // default is 2
+#define GSL_RB_PROTECTED_MODE_CONTROL 0x00000000 // protected mode error checking below register address 0x800
+ // note: if CP_INTERRUPT packet is used then checking needs
+ // to change to below register address 0x7C8
+
+
+//////////////////////////////////////////////////////////////////////////////
+// ringbuffer size log2 quadwords equivalent
+//////////////////////////////////////////////////////////////////////////////
+OSINLINE unsigned int
+gsl_ringbuffer_sizelog2quadwords(unsigned int sizedwords)
+{
+ unsigned int sizelog2quadwords = 0;
+ int i = sizedwords >> 1;
+ while (i >>= 1)
+ {
+ sizelog2quadwords++;
+ }
+ return (sizelog2quadwords);
+}
+
+
+//////////////////////////////////////////////////////////////////////////////
+// private prototypes
+//////////////////////////////////////////////////////////////////////////////
+#ifdef _DEBUG
+static void kgsl_ringbuffer_debug(gsl_ringbuffer_t *rb, gsl_rb_debug_t *rb_debug);
+#endif
+
+
+//////////////////////////////////////////////////////////////////////////////
+// functions
+//////////////////////////////////////////////////////////////////////////////
+
+void
+kgsl_cp_intrcallback(gsl_intrid_t id, void *cookie)
+{
+ gsl_ringbuffer_t *rb = (gsl_ringbuffer_t *) cookie;
+
+ kgsl_log_write( KGSL_LOG_GROUP_COMMAND | KGSL_LOG_LEVEL_TRACE,
+ "--> void kgsl_cp_intrcallback(gsl_intrid_t id=%I, void *cookie=0x%08x)\n", id, cookie );
+
+ switch(id)
+ {
+ // error condition interrupt
+ case GSL_INTR_YDX_CP_T0_PACKET_IN_IB:
+ case GSL_INTR_YDX_CP_OPCODE_ERROR:
+ case GSL_INTR_YDX_CP_PROTECTED_MODE_ERROR:
+ case GSL_INTR_YDX_CP_RESERVED_BIT_ERROR:
+ case GSL_INTR_YDX_CP_IB_ERROR:
+ printk(KERN_ERR "GPU: CP Error\n");
+ schedule_work(&rb->device->irq_err_work);
+ break;
+
+ // non-error condition interrupt
+ case GSL_INTR_YDX_CP_SW_INT:
+ case GSL_INTR_YDX_CP_IB2_INT:
+ case GSL_INTR_YDX_CP_IB1_INT:
+ case GSL_INTR_YDX_CP_RING_BUFFER:
+
+ // signal intr completion event
+ kos_event_signal(rb->device->intr.evnt[id]);
+ break;
+
+ default:
+
+ break;
+ }
+
+ kgsl_log_write( KGSL_LOG_GROUP_COMMAND | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_cp_intrcallback.\n" );
+}
+
+//----------------------------------------------------------------------------
+
+void
+kgsl_ringbuffer_watchdog()
+{
+ gsl_ringbuffer_t *rb = &(gsl_driver.device[GSL_DEVICE_YAMATO-1]).ringbuffer; // device_id is 1 based
+
+ kgsl_log_write( KGSL_LOG_GROUP_COMMAND | KGSL_LOG_LEVEL_TRACE,
+ "--> void kgsl_ringbuffer_watchdog()\n" );
+
+ if (rb->flags & GSL_FLAGS_STARTED)
+ {
+ GSL_RB_MUTEX_LOCK();
+
+ GSL_RB_GET_READPTR(rb, &rb->rptr);
+
+ // ringbuffer is currently not empty
+ if (rb->rptr != rb->wptr)
+ {
+ // and a rptr sample was taken during interval n-1
+ if (rb->watchdog.flags & GSL_FLAGS_ACTIVE)
+ {
+ // and the rptr did not advance between interval n-1 and n
+ if (rb->rptr == rb->watchdog.rptr_sample)
+ {
+ // then the core has hung
+ kgsl_log_write( KGSL_LOG_GROUP_COMMAND | KGSL_LOG_LEVEL_FATAL,
+ "ERROR: Watchdog detected core hung.\n" );
+
+ rb->device->ftbl.device_destroy(rb->device);
+ return;
+ }
+ }
+
+ // save rptr sample for interval n
+ rb->watchdog.flags |= GSL_FLAGS_ACTIVE;
+ rb->watchdog.rptr_sample = rb->rptr;
+ }
+ else
+ {
+ // clear rptr sample for interval n
+ rb->watchdog.flags &= ~GSL_FLAGS_ACTIVE;
+ }
+
+ GSL_RB_MUTEX_UNLOCK();
+ }
+
+ kgsl_log_write( KGSL_LOG_GROUP_COMMAND | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_ringbuffer_watchdog.\n" );
+}
+
+//----------------------------------------------------------------------------
+
+#ifdef _DEBUG
+
+OSINLINE void
+kgsl_ringbuffer_checkregister(unsigned int reg, int pmodecheck)
+{
+ if (pmodecheck)
+ {
+ // check for register protection mode violation
+ if (reg <= (GSL_RB_PROTECTED_MODE_CONTROL & 0x3FFF))
+ {
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_ERROR, "ERROR: Register protection mode violation.\n" );
+ KOS_ASSERT(0);
+ }
+ }
+
+ // range check register offset
+ if (reg > (gsl_driver.device[GSL_DEVICE_YAMATO-1].regspace.sizebytes >> 2))
+ {
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_ERROR, "ERROR: Register out of range.\n" );
+ KOS_ASSERT(0);
+ }
+}
+
+//----------------------------------------------------------------------------
+
+void
+kgsl_ringbuffer_checkpm4type0(unsigned int header, unsigned int** cmds, int pmodeoff)
+{
+ pm4_type0 pm4header = *((pm4_type0*) &header);
+ unsigned int reg;
+
+ if (pm4header.one_reg_wr)
+ {
+ reg = pm4header.base_index;
+ }
+ else
+ {
+ reg = pm4header.base_index + pm4header.count;
+ }
+
+ kgsl_ringbuffer_checkregister(reg, !pmodeoff);
+
+ *cmds += pm4header.count + 1;
+}
+
+//----------------------------------------------------------------------------
+
+void
+kgsl_ringbuffer_checkpm4type3(unsigned int header, unsigned int** cmds, int indirection, int pmodeoff)
+{
+ pm4_type3 pm4header = *((pm4_type3*) &header);
+ unsigned int *ordinal2 = *cmds;
+ unsigned int *ibcmds, *end;
+ unsigned int reg, length;
+
+ // check indirect buffer level
+ if (indirection > 2)
+ {
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_ERROR, "ERROR: Only two levels of indirection supported.\n" );
+ KOS_ASSERT(0);
+ }
+
+ switch(pm4header.it_opcode)
+ {
+ case PM4_INDIRECT_BUFFER:
+ case PM4_INDIRECT_BUFFER_PFD:
+
+ // determine ib host base and end address
+ ibcmds = (unsigned int*) kgsl_sharedmem_convertaddr(*ordinal2, 0);
+ end = ibcmds + *(ordinal2 + 1);
+
+ // walk through the ib
+ while(ibcmds < end)
+ {
+ unsigned int tmpheader = *(ibcmds++);
+
+ switch(tmpheader & PM4_PKT_MASK)
+ {
+ case PM4_TYPE0_PKT:
+ kgsl_ringbuffer_checkpm4type0(tmpheader, &ibcmds, pmodeoff);
+ break;
+
+ case PM4_TYPE1_PKT:
+ case PM4_TYPE2_PKT:
+ break;
+
+ case PM4_TYPE3_PKT:
+ kgsl_ringbuffer_checkpm4type3(tmpheader, &ibcmds, (indirection + 1), pmodeoff);
+ break;
+ }
+ }
+ break;
+
+ case PM4_ME_INIT:
+
+ if(indirection != 0)
+ {
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_ERROR, "ERROR: ME INIT packet cannot reside in an ib.\n" );
+ KOS_ASSERT(0);
+ }
+ break;
+
+ case PM4_REG_RMW:
+
+ reg = (*ordinal2) & 0x1FFF;
+
+ kgsl_ringbuffer_checkregister(reg, !pmodeoff);
+
+ break;
+
+ case PM4_SET_CONSTANT:
+
+ if((((*ordinal2) >> 16) & 0xFF) == 0x4) // incremental register update
+ {
+ reg = 0x2000 + ((*ordinal2) & 0x3FF); // gfx decode space address starts at 0x2000
+ length = pm4header.count - 1;
+
+ kgsl_ringbuffer_checkregister(reg + length, 0);
+ }
+ break;
+
+ case PM4_LOAD_CONSTANT_CONTEXT:
+
+ if(((*(ordinal2 + 1) >> 16) & 0xFF) == 0x4) // incremental register update
+ {
+ reg = 0x2000 + (*(ordinal2 + 1) & 0x3FF); // gfx decode space address starts at 0x2000
+ length = *(ordinal2 + 2);
+
+ kgsl_ringbuffer_checkregister(reg + length, 0);
+ }
+ break;
+
+ case PM4_COND_WRITE:
+
+ if(((*ordinal2) & 0x00000100) == 0x0) // write to register
+ {
+ reg = *(ordinal2 + 4) & 0x3FFF;
+
+ kgsl_ringbuffer_checkregister(reg, !pmodeoff);
+ }
+ break;
+ }
+
+ *cmds += pm4header.count + 1;
+}
+
+//----------------------------------------------------------------------------
+
+void
+kgsl_ringbuffer_checkpm4(unsigned int* cmds, unsigned int sizedwords, int pmodeoff)
+{
+ unsigned int *ringcmds = cmds;
+ unsigned int *end = cmds + sizedwords;
+
+ while(ringcmds < end)
+ {
+ unsigned int header = *(ringcmds++);
+
+ switch(header & PM4_PKT_MASK)
+ {
+ case PM4_TYPE0_PKT:
+ kgsl_ringbuffer_checkpm4type0(header, &ringcmds, pmodeoff);
+ break;
+
+ case PM4_TYPE1_PKT:
+ case PM4_TYPE2_PKT:
+ break;
+
+ case PM4_TYPE3_PKT:
+ kgsl_ringbuffer_checkpm4type3(header, &ringcmds, 0, pmodeoff);
+ break;
+ }
+ }
+}
+
+#endif // _DEBUG
+
+//----------------------------------------------------------------------------
+
+static void
+kgsl_ringbuffer_submit(gsl_ringbuffer_t *rb)
+{
+ unsigned int value;
+
+ kgsl_log_write( KGSL_LOG_GROUP_COMMAND | KGSL_LOG_LEVEL_TRACE,
+ "--> static void kgsl_ringbuffer_submit(gsl_ringbuffer_t *rb=0x%08x)\n", rb );
+
+ KOS_ASSERT(rb->wptr != 0);
+
+ kgsl_device_active(rb->device);
+
+ GSL_RB_UPDATE_WPTR_POLLING(rb);
+
+ // send the wptr to the hw
+ rb->device->ftbl.device_regwrite(rb->device, mmCP_RB_WPTR, rb->wptr);
+
+ // force wptr register to be updated
+ do
+ {
+ rb->device->ftbl.device_regread(rb->device, mmCP_RB_WPTR, &value);
+ } while (value != rb->wptr);
+
+ rb->flags |= GSL_FLAGS_ACTIVE;
+
+ kgsl_log_write( KGSL_LOG_GROUP_COMMAND | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_ringbuffer_submit.\n" );
+}
+
+//----------------------------------------------------------------------------
+
+static int
+kgsl_ringbuffer_waitspace(gsl_ringbuffer_t *rb, unsigned int numcmds, int wptr_ahead)
+{
+ int nopcount;
+ unsigned int freecmds;
+ unsigned int *cmds;
+
+ kgsl_log_write( KGSL_LOG_GROUP_COMMAND | KGSL_LOG_LEVEL_TRACE,
+ "--> static int kgsl_ringbuffer_waitspace(gsl_ringbuffer_t *rb=0x%08x, unsigned int numcmds=%d, int wptr_ahead=%d)\n",
+ rb, numcmds, wptr_ahead );
+
+
+ // if wptr ahead, fill the remaining with NOPs
+ if (wptr_ahead)
+ {
+ nopcount = rb->sizedwords - rb->wptr - 1; // -1 for header
+
+ cmds = (unsigned int *)rb->buffer_desc.hostptr + rb->wptr;
+ GSL_RB_WRITE(cmds, pm4_nop_packet(nopcount));
+ rb->wptr++;
+
+ kgsl_ringbuffer_submit(rb);
+
+ rb->wptr = 0;
+
+ GSL_RB_STATS(rb->stats.wraps++);
+ }
+
+ KGSL_DEBUG(GSL_DBGFLAGS_DUMPX, KGSL_DEBUG_DUMPX(BB_DUMP_RBWAIT, GSL_DEVICE_YAMATO, rb->wptr, numcmds, "kgsl_ringbuffer_waitspace"));
+
+ // wait for space in ringbuffer
+ for( ; ; )
+ {
+ GSL_RB_GET_READPTR(rb, &rb->rptr);
+
+ freecmds = rb->rptr - rb->wptr;
+
+ if ((freecmds == 0) || (freecmds > numcmds))
+ {
+ break;
+ }
+
+ }
+
+ kgsl_log_write( KGSL_LOG_GROUP_COMMAND | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_ringbuffer_waitspace. Return value %B\n", GSL_SUCCESS );
+
+ return (GSL_SUCCESS);
+}
+
+//----------------------------------------------------------------------------
+
+static unsigned int *
+kgsl_ringbuffer_addcmds(gsl_ringbuffer_t *rb, unsigned int numcmds)
+{
+ unsigned int *ptr;
+ int status = GSL_SUCCESS;
+
+ kgsl_log_write( KGSL_LOG_GROUP_COMMAND | KGSL_LOG_LEVEL_TRACE,
+ "--> static unsigned int* kgsl_ringbuffer_addcmds(gsl_ringbuffer_t *rb=0x%08x, unsigned int numcmds=%d)\n",
+ rb, numcmds );
+
+ KOS_ASSERT(numcmds < rb->sizedwords);
+
+ // update host copy of read pointer when running in safe mode
+ if (rb->device->flags & GSL_FLAGS_SAFEMODE)
+ {
+ GSL_RB_GET_READPTR(rb, &rb->rptr);
+ }
+
+ // check for available space
+ if (rb->wptr >= rb->rptr)
+ {
+ // wptr ahead or equal to rptr
+ if ((rb->wptr + numcmds) > (rb->sizedwords - GSL_RB_NOP_SIZEDWORDS)) // reserve dwords for nop packet
+ {
+ status = kgsl_ringbuffer_waitspace(rb, numcmds, 1);
+ }
+ }
+ else
+ {
+ // wptr behind rptr
+ if ((rb->wptr + numcmds) >= rb->rptr)
+ {
+ status = kgsl_ringbuffer_waitspace(rb, numcmds, 0);
+ }
+
+ // check for remaining space
+ if ((rb->wptr + numcmds) > (rb->sizedwords - GSL_RB_NOP_SIZEDWORDS)) // reserve dwords for nop packet
+ {
+ status = kgsl_ringbuffer_waitspace(rb, numcmds, 1);
+ }
+ }
+
+ ptr = (unsigned int *)rb->buffer_desc.hostptr + rb->wptr;
+ rb->wptr += numcmds;
+
+ if (status == GSL_SUCCESS)
+ {
+ kgsl_log_write( KGSL_LOG_GROUP_COMMAND | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_ringbuffer_waitspace. Return value 0x%08x\n", ptr );
+ return (ptr);
+ }
+ else
+ {
+ kgsl_log_write( KGSL_LOG_GROUP_COMMAND | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_ringbuffer_waitspace. Return value 0x%08x\n", NULL );
+ return (NULL);
+ }
+}
+
+//----------------------------------------------------------------------------
+int
+kgsl_ringbuffer_start(gsl_ringbuffer_t *rb)
+{
+ int status;
+ cp_rb_cntl_u cp_rb_cntl;
+ int i;
+ unsigned int *cmds;
+ gsl_device_t *device = rb->device;
+
+ kgsl_log_write( KGSL_LOG_GROUP_COMMAND | KGSL_LOG_LEVEL_TRACE,
+ "--> static int kgsl_ringbuffer_start(gsl_ringbuffer_t *rb=0x%08x)\n", rb );
+
+ if (rb->flags & GSL_FLAGS_STARTED)
+ {
+ kgsl_log_write( KGSL_LOG_GROUP_COMMAND | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_ringbuffer_start. Return value %B\n", GSL_SUCCESS );
+ return (GSL_SUCCESS);
+ }
+
+ // clear memptrs values
+ kgsl_sharedmem_set0(&rb->memptrs_desc, 0, 0, sizeof(gsl_rbmemptrs_t));
+
+ // clear ringbuffer
+ kgsl_sharedmem_set0(&rb->buffer_desc, 0, 0x12341234, (rb->sizedwords << 2));
+
+ // setup WPTR polling address
+ device->ftbl.device_regwrite(device, mmCP_RB_WPTR_BASE, (rb->memptrs_desc.gpuaddr + GSL_RB_MEMPTRS_WPTRPOLL_OFFSET));
+
+ // setup WPTR delay
+ device->ftbl.device_regwrite(device, mmCP_RB_WPTR_DELAY, 0/*0x70000010*/);
+
+ // setup RB_CNTL
+ device->ftbl.device_regread(device, mmCP_RB_CNTL, (unsigned int *)&cp_rb_cntl);
+
+ cp_rb_cntl.f.rb_bufsz = gsl_ringbuffer_sizelog2quadwords(rb->sizedwords); // size of ringbuffer
+ cp_rb_cntl.f.rb_blksz = rb->blksizequadwords; // quadwords to read before updating mem RPTR
+ cp_rb_cntl.f.rb_poll_en = GSL_RB_CNTL_POLL_EN; // WPTR polling
+ cp_rb_cntl.f.rb_no_update = GSL_RB_CNTL_NO_UPDATE; // mem RPTR writebacks
+
+ device->ftbl.device_regwrite(device, mmCP_RB_CNTL, cp_rb_cntl.val);
+
+ // setup RB_BASE
+ device->ftbl.device_regwrite(device, mmCP_RB_BASE, rb->buffer_desc.gpuaddr);
+
+ // setup RPTR_ADDR
+ device->ftbl.device_regwrite(device, mmCP_RB_RPTR_ADDR, rb->memptrs_desc.gpuaddr + GSL_RB_MEMPTRS_RPTR_OFFSET);
+
+ // explicitly clear all cp interrupts when running in safe mode
+ if (rb->device->flags & GSL_FLAGS_SAFEMODE)
+ {
+ device->ftbl.device_regwrite(device, mmCP_INT_ACK, 0xFFFFFFFF);
+ }
+
+ // setup scratch/timestamp addr
+ device->ftbl.device_regwrite(device, mmSCRATCH_ADDR, device->memstore.gpuaddr + GSL_DEVICE_MEMSTORE_OFFSET(soptimestamp));
+
+ // setup scratch/timestamp mask
+ device->ftbl.device_regwrite(device, mmSCRATCH_UMSK, GSL_RB_MEMPTRS_SCRATCH_MASK);
+
+ // load the CP ucode
+ device->ftbl.device_regwrite(device, mmCP_DEBUG, 0x02000000);
+ device->ftbl.device_regwrite(device, mmCP_ME_RAM_WADDR, 0);
+
+ for (i = 0; i < PM4_MICROCODE_SIZE; i++ )
+ {
+ device->ftbl.device_regwrite(device, mmCP_ME_RAM_DATA, aPM4_Microcode[i][0]);
+ device->ftbl.device_regwrite(device, mmCP_ME_RAM_DATA, aPM4_Microcode[i][1]);
+ device->ftbl.device_regwrite(device, mmCP_ME_RAM_DATA, aPM4_Microcode[i][2]);
+ }
+
+ // load the prefetch parser ucode
+ device->ftbl.device_regwrite(device, mmCP_PFP_UCODE_ADDR, 0);
+
+ for ( i = 0; i < PFP_MICROCODE_SIZE_NRT; i++ )
+ {
+ device->ftbl.device_regwrite(device, mmCP_PFP_UCODE_DATA, aPFP_Microcode_nrt[i]);
+ }
+
+ // queue thresholds ???
+ device->ftbl.device_regwrite(device, mmCP_QUEUE_THRESHOLDS, 0x000C0804);
+
+ // reset pointers
+ rb->rptr = 0;
+ rb->wptr = 0;
+
+ // init timestamp
+ rb->timestamp = 0;
+ GSL_RB_INIT_TIMESTAMP(rb);
+
+ // clear ME_HALT to start micro engine
+ device->ftbl.device_regwrite(device, mmCP_ME_CNTL, 0);
+
+ // ME_INIT
+ cmds = kgsl_ringbuffer_addcmds(rb, 19);
+
+ GSL_RB_WRITE(cmds, PM4_HDR_ME_INIT);
+ GSL_RB_WRITE(cmds, 0x000003ff); // All fields present (bits 9:0)
+ GSL_RB_WRITE(cmds, 0x00000000); // Disable/Enable Real-Time Stream processing (present but ignored)
+ GSL_RB_WRITE(cmds, 0x00000000); // Enable (2D to 3D) and (3D to 2D) implicit synchronization (present but ignored)
+ GSL_RB_WRITE(cmds, GSL_HAL_SUBBLOCK_OFFSET(mmRB_SURFACE_INFO));
+ GSL_RB_WRITE(cmds, GSL_HAL_SUBBLOCK_OFFSET(mmPA_SC_WINDOW_OFFSET));
+ GSL_RB_WRITE(cmds, GSL_HAL_SUBBLOCK_OFFSET(mmVGT_MAX_VTX_INDX));
+ GSL_RB_WRITE(cmds, GSL_HAL_SUBBLOCK_OFFSET(mmSQ_PROGRAM_CNTL));
+ GSL_RB_WRITE(cmds, GSL_HAL_SUBBLOCK_OFFSET(mmRB_DEPTHCONTROL));
+ GSL_RB_WRITE(cmds, GSL_HAL_SUBBLOCK_OFFSET(mmPA_SU_POINT_SIZE));
+ GSL_RB_WRITE(cmds, GSL_HAL_SUBBLOCK_OFFSET(mmPA_SC_LINE_CNTL));
+ GSL_RB_WRITE(cmds, GSL_HAL_SUBBLOCK_OFFSET(mmPA_SU_POLY_OFFSET_FRONT_SCALE));
+ GSL_RB_WRITE(cmds, 0x80000180); // Vertex and Pixel Shader Start Addresses in instructions (3 DWORDS per instruction)
+ GSL_RB_WRITE(cmds, 0x00000001); // Maximum Contexts
+ GSL_RB_WRITE(cmds, 0x00000000); // Write Confirm Interval and The CP will wait the wait_interval * 16 clocks between polling
+ GSL_RB_WRITE(cmds, 0x00000000); // NQ and External Memory Swap
+ GSL_RB_WRITE(cmds, GSL_RB_PROTECTED_MODE_CONTROL); // Protected mode error checking
+ GSL_RB_WRITE(cmds, 0x00000000); // Disable header dumping and Header dump address
+ GSL_RB_WRITE(cmds, 0x00000000); // Header dump size
+
+ KGSL_DEBUG(GSL_DBGFLAGS_PM4CHECK, kgsl_ringbuffer_checkpm4((unsigned int *)rb->buffer_desc.hostptr, 19, 1));
+ KGSL_DEBUG(GSL_DBGFLAGS_PM4, KGSL_DEBUG_DUMPPM4((unsigned int *)rb->buffer_desc.hostptr, 19));
+
+ kgsl_ringbuffer_submit(rb);
+
+ // idle device to validate ME INIT
+ status = device->ftbl.device_idle(device, GSL_TIMEOUT_DEFAULT);
+
+ if (status == GSL_SUCCESS)
+ {
+ rb->flags |= GSL_FLAGS_STARTED;
+ }
+
+ // enable cp interrupts
+ kgsl_intr_attach(&device->intr, GSL_INTR_YDX_CP_SW_INT, kgsl_cp_intrcallback, (void *) rb);
+ kgsl_intr_attach(&device->intr, GSL_INTR_YDX_CP_T0_PACKET_IN_IB, kgsl_cp_intrcallback, (void *) rb);
+ kgsl_intr_attach(&device->intr, GSL_INTR_YDX_CP_OPCODE_ERROR, kgsl_cp_intrcallback, (void *) rb);
+ kgsl_intr_attach(&device->intr, GSL_INTR_YDX_CP_PROTECTED_MODE_ERROR, kgsl_cp_intrcallback, (void *) rb);
+ kgsl_intr_attach(&device->intr, GSL_INTR_YDX_CP_RESERVED_BIT_ERROR, kgsl_cp_intrcallback, (void *) rb);
+ kgsl_intr_attach(&device->intr, GSL_INTR_YDX_CP_IB_ERROR, kgsl_cp_intrcallback, (void *) rb);
+ kgsl_intr_attach(&device->intr, GSL_INTR_YDX_CP_IB2_INT, kgsl_cp_intrcallback, (void *) rb);
+ kgsl_intr_attach(&device->intr, GSL_INTR_YDX_CP_IB1_INT, kgsl_cp_intrcallback, (void *) rb);
+ kgsl_intr_attach(&device->intr, GSL_INTR_YDX_CP_RING_BUFFER, kgsl_cp_intrcallback, (void *) rb);
+ kgsl_intr_enable(&device->intr, GSL_INTR_YDX_CP_SW_INT);
+ kgsl_intr_enable(&device->intr, GSL_INTR_YDX_CP_T0_PACKET_IN_IB);
+ kgsl_intr_enable(&device->intr, GSL_INTR_YDX_CP_OPCODE_ERROR);
+ kgsl_intr_enable(&device->intr, GSL_INTR_YDX_CP_PROTECTED_MODE_ERROR);
+ kgsl_intr_enable(&device->intr, GSL_INTR_YDX_CP_RESERVED_BIT_ERROR);
+ kgsl_intr_enable(&device->intr, GSL_INTR_YDX_CP_IB_ERROR);
+ kgsl_intr_enable(&device->intr, GSL_INTR_YDX_CP_IB2_INT);
+ kgsl_intr_enable(&device->intr, GSL_INTR_YDX_CP_IB1_INT);
+ kgsl_intr_enable(&device->intr, GSL_INTR_YDX_CP_RING_BUFFER);
+
+ kgsl_log_write( KGSL_LOG_GROUP_COMMAND | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_ringbuffer_start. Return value %B\n", status );
+
+ return (status);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_ringbuffer_stop(gsl_ringbuffer_t *rb)
+{
+ kgsl_log_write( KGSL_LOG_GROUP_COMMAND | KGSL_LOG_LEVEL_TRACE,
+ "--> static int kgsl_ringbuffer_stop(gsl_ringbuffer_t *rb=0x%08x)\n", rb );
+
+ if (rb->flags & GSL_FLAGS_STARTED)
+ {
+ // disable cp interrupts
+ kgsl_intr_detach(&rb->device->intr, GSL_INTR_YDX_CP_SW_INT);
+ kgsl_intr_detach(&rb->device->intr, GSL_INTR_YDX_CP_T0_PACKET_IN_IB);
+ kgsl_intr_detach(&rb->device->intr, GSL_INTR_YDX_CP_OPCODE_ERROR);
+ kgsl_intr_detach(&rb->device->intr, GSL_INTR_YDX_CP_PROTECTED_MODE_ERROR);
+ kgsl_intr_detach(&rb->device->intr, GSL_INTR_YDX_CP_RESERVED_BIT_ERROR);
+ kgsl_intr_detach(&rb->device->intr, GSL_INTR_YDX_CP_IB_ERROR);
+ kgsl_intr_detach(&rb->device->intr, GSL_INTR_YDX_CP_IB2_INT);
+ kgsl_intr_detach(&rb->device->intr, GSL_INTR_YDX_CP_IB1_INT);
+ kgsl_intr_detach(&rb->device->intr, GSL_INTR_YDX_CP_RING_BUFFER);
+
+ // ME_HALT
+ rb->device->ftbl.device_regwrite(rb->device, mmCP_ME_CNTL, 0x10000000);
+
+ rb->flags &= ~GSL_FLAGS_STARTED;
+ }
+
+ kgsl_log_write( KGSL_LOG_GROUP_COMMAND | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_ringbuffer_stop. Return value %B\n", GSL_SUCCESS );
+
+ return (GSL_SUCCESS);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_ringbuffer_init(gsl_device_t *device)
+{
+ int status;
+ gsl_flags_t flags;
+ gsl_ringbuffer_t *rb = &device->ringbuffer;
+
+ kgsl_log_write( KGSL_LOG_GROUP_COMMAND | KGSL_LOG_LEVEL_TRACE,
+ "--> int kgsl_ringbuffer_init(gsl_device_t *device=0x%08x)\n", device );
+
+ rb->device = device;
+ rb->sizedwords = (2 << gsl_cfg_rb_sizelog2quadwords);
+ rb->blksizequadwords = gsl_cfg_rb_blksizequadwords;
+
+ GSL_RB_MUTEX_CREATE();
+
+ // allocate memory for ringbuffer, needs to be double octword aligned
+ // align on page from contiguous physical memory
+ flags = (GSL_MEMFLAGS_ALIGNPAGE | GSL_MEMFLAGS_CONPHYS | GSL_MEMFLAGS_STRICTREQUEST);
+ KGSL_DEBUG(GSL_DBGFLAGS_DUMPX, flags = (GSL_MEMFLAGS_ALIGNPAGE | GSL_MEMFLAGS_STRICTREQUEST)); /* set MMU table for ringbuffer */
+
+ status = kgsl_sharedmem_alloc0(device->id, flags, (rb->sizedwords << 2), &rb->buffer_desc);
+
+ KGSL_DEBUG(GSL_DBGFLAGS_DUMPX, KGSL_DEBUG_DUMPX(BB_DUMP_RINGBUF_SET, (unsigned int)rb->buffer_desc.gpuaddr, (unsigned int)rb->buffer_desc.hostptr, 0, "kgsl_ringbuffer_init"));
+
+ if (status != GSL_SUCCESS)
+ {
+ kgsl_ringbuffer_close(rb);
+ kgsl_log_write( KGSL_LOG_GROUP_COMMAND | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_ringbuffer_init. Return value %B\n", status );
+ return (status);
+ }
+
+ // allocate memory for polling and timestamps
+ flags = (GSL_MEMFLAGS_ALIGN32 | GSL_MEMFLAGS_CONPHYS);
+ KGSL_DEBUG(GSL_DBGFLAGS_DUMPX, flags = GSL_MEMFLAGS_ALIGN32);
+
+ status = kgsl_sharedmem_alloc0(device->id, flags, sizeof(gsl_rbmemptrs_t), &rb->memptrs_desc);
+
+ if (status != GSL_SUCCESS)
+ {
+ kgsl_ringbuffer_close(rb);
+ kgsl_log_write( KGSL_LOG_GROUP_COMMAND | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_ringbuffer_init. Return value %B\n", status );
+ return (status);
+ }
+
+ // overlay structure on memptrs memory
+ rb->memptrs = (gsl_rbmemptrs_t *)rb->memptrs_desc.hostptr;
+
+ rb->flags |= GSL_FLAGS_INITIALIZED;
+
+ // validate command stream data when running in safe mode
+ if (device->flags & GSL_FLAGS_SAFEMODE)
+ {
+ gsl_driver.flags_debug |= GSL_DBGFLAGS_PM4CHECK;
+ }
+
+ // start ringbuffer
+ status = kgsl_ringbuffer_start(rb);
+
+ if (status != GSL_SUCCESS)
+ {
+ kgsl_ringbuffer_close(rb);
+ kgsl_log_write( KGSL_LOG_GROUP_COMMAND | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_ringbuffer_init. Return value %B\n", status );
+ return (status);
+ }
+
+ kgsl_log_write( KGSL_LOG_GROUP_COMMAND | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_ringbuffer_init. Return value %B\n", GSL_SUCCESS );
+ return (GSL_SUCCESS);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_ringbuffer_close(gsl_ringbuffer_t *rb)
+{
+ kgsl_log_write( KGSL_LOG_GROUP_COMMAND | KGSL_LOG_LEVEL_TRACE,
+ "--> int kgsl_ringbuffer_close(gsl_ringbuffer_t *rb=0x%08x)\n", rb );
+
+ GSL_RB_MUTEX_LOCK();
+
+ // stop ringbuffer
+ kgsl_ringbuffer_stop(rb);
+
+ // free buffer
+ if (rb->buffer_desc.hostptr)
+ {
+ kgsl_sharedmem_free0(&rb->buffer_desc, GSL_CALLER_PROCESSID_GET());
+ }
+
+ // free memory pointers
+ if (rb->memptrs_desc.hostptr)
+ {
+ kgsl_sharedmem_free0(&rb->memptrs_desc, GSL_CALLER_PROCESSID_GET());
+ }
+
+ rb->flags &= ~GSL_FLAGS_INITIALIZED;
+
+ GSL_RB_MUTEX_UNLOCK();
+
+ GSL_RB_MUTEX_FREE();
+
+ kos_memset(rb, 0, sizeof(gsl_ringbuffer_t));
+
+ kgsl_log_write( KGSL_LOG_GROUP_COMMAND | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_ringbuffer_close. Return value %B\n", GSL_SUCCESS );
+ return (GSL_SUCCESS);
+}
+
+//----------------------------------------------------------------------------
+
+gsl_timestamp_t
+kgsl_ringbuffer_issuecmds(gsl_device_t *device, int pmodeoff, unsigned int *cmds, int sizedwords, unsigned int pid)
+{
+ gsl_ringbuffer_t *rb = &device->ringbuffer;
+ unsigned int pmodesizedwords;
+ unsigned int *ringcmds;
+ unsigned int timestamp;
+
+ pmodeoff = 0;
+
+ kgsl_log_write( KGSL_LOG_GROUP_COMMAND | KGSL_LOG_LEVEL_TRACE,
+ "--> gsl_timestamp_t kgsl_ringbuffer_issuecmds(gsl_device_t *device=0x%08x, int pmodeoff=%d, unsigned int *cmds=0x%08x, int sizedwords=%d, unsigned int pid=0x%08x)\n",
+ device, pmodeoff, cmds, sizedwords, pid );
+
+ if (!(device->ringbuffer.flags & GSL_FLAGS_STARTED))
+ {
+ return (0);
+ }
+
+ // set mmu pagetable
+ kgsl_mmu_setpagetable(device, pid);
+
+ KGSL_DEBUG(GSL_DBGFLAGS_PM4CHECK, kgsl_ringbuffer_checkpm4(cmds, sizedwords, pmodeoff));
+ KGSL_DEBUG(GSL_DBGFLAGS_PM4, KGSL_DEBUG_DUMPPM4(cmds, sizedwords));
+
+ // reserve space to temporarily turn off protected mode error checking if needed
+ pmodesizedwords = pmodeoff ? 8 : 0;
+
+#if defined GSL_RB_TIMESTAMP_INTERUPT
+ pmodesizedwords += 2;
+#endif
+ // allocate space in ringbuffer
+ ringcmds = kgsl_ringbuffer_addcmds(rb, pmodesizedwords + sizedwords + 6);
+
+ if (pmodeoff)
+ {
+ // disable protected mode error checking
+ *ringcmds++ = pm4_type3_packet(PM4_ME_INIT, 2);
+ *ringcmds++ = 0x00000080;
+ *ringcmds++ = 0x00000000;
+ }
+
+ // copy the cmds to the ringbuffer
+ kos_memcpy(ringcmds, cmds, (sizedwords << 2));
+
+ ringcmds += sizedwords;
+
+ if (pmodeoff)
+ {
+ *ringcmds++ = pm4_type3_packet(PM4_WAIT_FOR_IDLE, 1);
+ *ringcmds++ = 0;
+
+ // re-enable protected mode error checking
+ *ringcmds++ = pm4_type3_packet(PM4_ME_INIT, 2);
+ *ringcmds++ = 0x00000080;
+ *ringcmds++ = GSL_RB_PROTECTED_MODE_CONTROL;
+ }
+
+ // increment timestamp
+ rb->timestamp++;
+ timestamp = rb->timestamp;
+
+ // start-of-pipeline and end-of-pipeline timestamps
+ *ringcmds++ = pm4_type0_packet(mmCP_TIMESTAMP, 1);
+ *ringcmds++ = rb->timestamp;
+ *ringcmds++ = pm4_type3_packet(PM4_EVENT_WRITE, 3);
+ *ringcmds++ = CACHE_FLUSH_TS;
+ *ringcmds++ = device->memstore.gpuaddr + GSL_DEVICE_MEMSTORE_OFFSET(eoptimestamp);
+ *ringcmds++ = rb->timestamp;
+
+#if defined GSL_RB_TIMESTAMP_INTERUPT
+ *ringcmds++ = pm4_type3_packet(PM4_INTERRUPT, 1);
+ *ringcmds++ = 0x80000000;
+#endif
+ KGSL_DEBUG(GSL_DBGFLAGS_DUMPX, KGSL_DEBUG_DUMPX(BB_DUMP_MEMWRITE, (unsigned int)((char*)ringcmds - ((pmodesizedwords + sizedwords + 6) << 2)), (unsigned int)((char*)ringcmds - ((pmodesizedwords + sizedwords + 6) << 2)), (pmodesizedwords + sizedwords + 6) << 2, "kgsl_ringbuffer_issuecmds"));
+
+ // issue the commands
+ kgsl_ringbuffer_submit(rb);
+
+ // stats
+ GSL_RB_STATS(rb->stats.wordstotal += sizedwords);
+ GSL_RB_STATS(rb->stats.issues++);
+
+ kgsl_log_write( KGSL_LOG_GROUP_COMMAND | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_ringbuffer_issuecmds. Return value %d\n", timestamp );
+
+ // return timestamp of issued commands
+ return (timestamp);
+}
+
+//----------------------------------------------------------------------------
+int
+kgsl_ringbuffer_issueibcmds(gsl_device_t *device, int drawctxt_index, gpuaddr_t ibaddr, int sizedwords, gsl_timestamp_t *timestamp, gsl_flags_t flags)
+{
+ unsigned int link[3];
+ int dumpx_swap;
+ (void)dumpx_swap; // used only when BB_DUMPX is defined
+
+ kgsl_log_write( KGSL_LOG_GROUP_COMMAND | KGSL_LOG_LEVEL_TRACE,
+ "--> gsl_timestamp_t kgsl_ringbuffer_issueibcmds(gsl_device_t device=%0x%08x, int drawctxt_index=%d, gpuaddr_t ibaddr=0x%08x, int sizedwords=%d, gsl_timestamp_t *timestamp=0x%08x)\n",
+ device, drawctxt_index, ibaddr, sizedwords, timestamp );
+
+ if (!(device->ringbuffer.flags & GSL_FLAGS_STARTED))
+ {
+ kgsl_log_write( KGSL_LOG_GROUP_COMMAND | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_ringbuffer_issueibcmds. Return value %B\n", GSL_FAILURE );
+ return (GSL_FAILURE);
+ }
+
+ KOS_ASSERT(ibaddr);
+ KOS_ASSERT(sizedwords);
+
+ KGSL_DEBUG(GSL_DBGFLAGS_DUMPX, dumpx_swap = kgsl_dumpx_parse_ibs(ibaddr, sizedwords));
+
+ GSL_RB_MUTEX_LOCK();
+
+ // context switch if needed
+ kgsl_drawctxt_switch(device, &device->drawctxt[drawctxt_index], flags);
+
+ link[0] = PM4_HDR_INDIRECT_BUFFER_PFD;
+ link[1] = ibaddr;
+ link[2] = sizedwords;
+
+ *timestamp = kgsl_ringbuffer_issuecmds(device, 0, &link[0], 3, GSL_CALLER_PROCESSID_GET());
+
+ GSL_RB_MUTEX_UNLOCK();
+
+ // idle device when running in safe mode
+ if (device->flags & GSL_FLAGS_SAFEMODE)
+ {
+ device->ftbl.device_idle(device, GSL_TIMEOUT_DEFAULT);
+ }
+ else
+ {
+ KGSL_DEBUG(GSL_DBGFLAGS_DUMPX,
+ {
+ // insert wait for idle after every IB1
+ // this is conservative but works reliably and is ok even for performance simulations
+ device->ftbl.device_idle(device, GSL_TIMEOUT_DEFAULT);
+ });
+ }
+ KGSL_DEBUG(GSL_DBGFLAGS_DUMPX,
+ {
+ if(dumpx_swap)
+ {
+ KGSL_DEBUG_DUMPX( BB_DUMP_EXPORT_CBUF, 0, 0, 0, "resolve");
+ KGSL_DEBUG_DUMPX( BB_DUMP_FLUSH,0,0,0," ");
+ }
+ });
+
+ kgsl_log_write( KGSL_LOG_GROUP_COMMAND | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_ringbuffer_issueibcmds. Return value %B\n", GSL_SUCCESS );
+
+ return (GSL_SUCCESS);
+}
+
+//----------------------------------------------------------------------------
+
+#ifdef _DEBUG
+static void
+kgsl_ringbuffer_debug(gsl_ringbuffer_t *rb, gsl_rb_debug_t *rb_debug)
+{
+ kos_memset(rb_debug, 0, sizeof(gsl_rb_debug_t));
+
+ rb_debug->pm4_ucode_rel = PM4_MICROCODE_VERSION;
+ rb_debug->pfp_ucode_rel = PFP_MICROCODE_VERSION;
+
+ rb->device->ftbl.device_regread(rb->device, mmCP_RB_BASE, (unsigned int *)&rb_debug->cp_rb_base);
+ rb->device->ftbl.device_regread(rb->device, mmCP_RB_CNTL, (unsigned int *)&rb_debug->cp_rb_cntl);
+ rb->device->ftbl.device_regread(rb->device, mmCP_RB_RPTR_ADDR, (unsigned int *)&rb_debug->cp_rb_rptr_addr);
+ rb->device->ftbl.device_regread(rb->device, mmCP_RB_RPTR, (unsigned int *)&rb_debug->cp_rb_rptr);
+ rb->device->ftbl.device_regread(rb->device, mmCP_RB_WPTR, (unsigned int *)&rb_debug->cp_rb_wptr);
+ rb->device->ftbl.device_regread(rb->device, mmCP_RB_WPTR_BASE, (unsigned int *)&rb_debug->cp_rb_wptr_base);
+ rb->device->ftbl.device_regread(rb->device, mmSCRATCH_UMSK, (unsigned int *)&rb_debug->scratch_umsk);
+ rb->device->ftbl.device_regread(rb->device, mmSCRATCH_ADDR, (unsigned int *)&rb_debug->scratch_addr);
+ rb->device->ftbl.device_regread(rb->device, mmCP_ME_CNTL, (unsigned int *)&rb_debug->cp_me_cntl);
+ rb->device->ftbl.device_regread(rb->device, mmCP_ME_STATUS, (unsigned int *)&rb_debug->cp_me_status);
+ rb->device->ftbl.device_regread(rb->device, mmCP_DEBUG, (unsigned int *)&rb_debug->cp_debug);
+ rb->device->ftbl.device_regread(rb->device, mmCP_STAT, (unsigned int *)&rb_debug->cp_stat);
+ rb->device->ftbl.device_regread(rb->device, mmRBBM_STATUS, (unsigned int *)&rb_debug->rbbm_status);
+ rb_debug->sop_timestamp = kgsl_cmdstream_readtimestamp(rb->device->id, GSL_TIMESTAMP_CONSUMED);
+ rb_debug->eop_timestamp = kgsl_cmdstream_readtimestamp(rb->device->id, GSL_TIMESTAMP_RETIRED);
+}
+#endif
+
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_ringbuffer_querystats(gsl_ringbuffer_t *rb, gsl_rbstats_t *stats)
+{
+#ifdef GSL_STATS_RINGBUFFER
+ KOS_ASSERT(stats);
+
+ if (!(rb->flags & GSL_FLAGS_STARTED))
+ {
+ return (GSL_FAILURE);
+ }
+
+ kos_memcpy(stats, &rb->stats, sizeof(gsl_rbstats_t));
+
+ return (GSL_SUCCESS);
+#else
+ // unreferenced formal parameters
+ (void) rb;
+ (void) stats;
+
+ return (GSL_FAILURE_NOTSUPPORTED);
+#endif // GSL_STATS_RINGBUFFER
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_ringbuffer_bist(gsl_ringbuffer_t *rb)
+{
+ unsigned int *cmds;
+ unsigned int temp, k, j;
+ int status;
+ int i;
+#ifdef _DEBUG
+ gsl_rb_debug_t rb_debug;
+#endif
+
+ kgsl_log_write( KGSL_LOG_GROUP_COMMAND | KGSL_LOG_LEVEL_TRACE,
+ "--> int kgsl_ringbuffer_bist(gsl_ringbuffer_t *rb=0x%08x)\n", rb );
+
+ if (!(rb->flags & GSL_FLAGS_STARTED))
+ {
+ kgsl_log_write( KGSL_LOG_GROUP_COMMAND | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_ringbuffer_bist. Return value %d\n", GSL_FAILURE );
+ return (GSL_FAILURE);
+ }
+
+ // simple nop submit
+ cmds = kgsl_ringbuffer_addcmds(rb, 2);
+ if (!cmds)
+ {
+#ifdef _DEBUG
+ kgsl_ringbuffer_debug(rb, &rb_debug);
+#endif
+ kgsl_log_write( KGSL_LOG_GROUP_COMMAND | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_ringbuffer_bist. Return value %d\n", GSL_FAILURE );
+ return (GSL_FAILURE);
+ }
+
+ GSL_RB_WRITE(cmds, pm4_nop_packet(1));
+ GSL_RB_WRITE(cmds, 0xDEADBEEF);
+
+ kgsl_ringbuffer_submit(rb);
+
+ status = rb->device->ftbl.device_idle(rb->device, GSL_TIMEOUT_DEFAULT);
+
+ if (status != GSL_SUCCESS)
+ {
+#ifdef _DEBUG
+ kgsl_ringbuffer_debug(rb, &rb_debug);
+#endif
+ kgsl_log_write( KGSL_LOG_GROUP_COMMAND | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_ringbuffer_bist. Return value %d\n", status );
+ return (status);
+ }
+
+ // simple scratch submit
+ cmds = kgsl_ringbuffer_addcmds(rb, 2);
+ if (!cmds)
+ {
+#ifdef _DEBUG
+ kgsl_ringbuffer_debug(rb, &rb_debug);
+#endif
+ kgsl_log_write( KGSL_LOG_GROUP_COMMAND | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_ringbuffer_bist. Return value %d\n", GSL_FAILURE );
+ return (GSL_FAILURE);
+ }
+
+ GSL_RB_WRITE(cmds, pm4_type0_packet(mmSCRATCH_REG7, 1));
+ GSL_RB_WRITE(cmds, 0xFEEDF00D);
+
+ kgsl_ringbuffer_submit(rb);
+
+ status = rb->device->ftbl.device_idle(rb->device, GSL_TIMEOUT_DEFAULT);
+
+ if (status != GSL_SUCCESS)
+ {
+#ifdef _DEBUG
+ kgsl_ringbuffer_debug(rb, &rb_debug);
+#endif
+ kgsl_log_write( KGSL_LOG_GROUP_COMMAND | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_ringbuffer_bist. Return value %d\n", status );
+ return (status);
+ }
+
+ rb->device->ftbl.device_regread(rb->device, mmSCRATCH_REG7, &temp);
+
+ if (temp != 0xFEEDF00D)
+ {
+#ifdef _DEBUG
+ kgsl_ringbuffer_debug(rb, &rb_debug);
+#endif
+ kgsl_log_write( KGSL_LOG_GROUP_COMMAND | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_ringbuffer_bist. Return value %d\n", GSL_FAILURE );
+ return (GSL_FAILURE);
+ }
+
+ // simple wraps
+ for (i = 0; i < 256; i+=2)
+ {
+ j = ((rb->sizedwords >> 2) - 256) + i;
+
+ cmds = kgsl_ringbuffer_addcmds(rb, j);
+ if (!cmds)
+ {
+#ifdef _DEBUG
+ kgsl_ringbuffer_debug(rb, &rb_debug);
+#endif
+ kgsl_log_write( KGSL_LOG_GROUP_COMMAND | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_ringbuffer_bist. Return value %d\n", GSL_FAILURE );
+ return (GSL_FAILURE);
+ }
+
+ k = 0;
+
+ while (k < j)
+ {
+ k+=2;
+ GSL_RB_WRITE(cmds, pm4_type0_packet(mmSCRATCH_REG7, 1));
+ GSL_RB_WRITE(cmds, k);
+ }
+
+ kgsl_ringbuffer_submit(rb);
+
+ status = rb->device->ftbl.device_idle(rb->device, GSL_TIMEOUT_DEFAULT);
+
+ if (status != GSL_SUCCESS)
+ {
+#ifdef _DEBUG
+ kgsl_ringbuffer_debug(rb, &rb_debug);
+#endif
+ kgsl_log_write( KGSL_LOG_GROUP_COMMAND | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_ringbuffer_bist. Return value %d\n", status );
+ return (status);
+ }
+
+ rb->device->ftbl.device_regread(rb->device, mmSCRATCH_REG7, &temp);
+
+ if (temp != k)
+ {
+#ifdef _DEBUG
+ kgsl_ringbuffer_debug(rb, &rb_debug);
+#endif
+ kgsl_log_write( KGSL_LOG_GROUP_COMMAND | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_ringbuffer_bist. Return value %d\n", GSL_FAILURE );
+ return (GSL_FAILURE);
+ }
+ }
+
+ // max size submits, TODO do this at least with regreads
+ for (i = 0; i < 256; i++)
+ {
+ cmds = kgsl_ringbuffer_addcmds(rb, (rb->sizedwords >> 2));
+ if (!cmds)
+ {
+#ifdef _DEBUG
+ kgsl_ringbuffer_debug(rb, &rb_debug);
+#endif
+ kgsl_log_write( KGSL_LOG_GROUP_COMMAND | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_ringbuffer_bist. Return value %d\n", GSL_FAILURE );
+ return (GSL_FAILURE);
+ }
+
+ GSL_RB_WRITE(cmds, pm4_nop_packet((rb->sizedwords >> 2) - 1));
+
+ kgsl_ringbuffer_submit(rb);
+
+ status = rb->device->ftbl.device_idle(rb->device, GSL_TIMEOUT_DEFAULT);
+
+ if (status != GSL_SUCCESS)
+ {
+#ifdef _DEBUG
+ kgsl_ringbuffer_debug(rb, &rb_debug);
+#endif
+ kgsl_log_write( KGSL_LOG_GROUP_COMMAND | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_ringbuffer_bist. Return value %d\n", status );
+ return (status);
+ }
+ }
+
+ // submit load with randomness
+
+#ifdef GSL_RB_USE_MEM_TIMESTAMP
+ // scratch memptr validate
+#endif // GSL_RB_USE_MEM_TIMESTAMP
+
+#ifdef GSL_RB_USE_MEM_RPTR
+ // rptr memptr validate
+#endif // GSL_RB_USE_MEM_RPTR
+
+#ifdef GSL_RB_USE_WPTR_POLLING
+ // wptr memptr validate
+#endif // GSL_RB_USE_WPTR_POLLING
+
+ kgsl_log_write( KGSL_LOG_GROUP_COMMAND | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_ringbuffer_bist. Return value %d\n", GSL_SUCCESS );
+
+ return (GSL_SUCCESS);
+}
+
+#endif
+
diff --git a/drivers/mxc/amd-gpu/common/gsl_sharedmem.c b/drivers/mxc/amd-gpu/common/gsl_sharedmem.c
new file mode 100644
index 000000000000..51e66f97c52e
--- /dev/null
+++ b/drivers/mxc/amd-gpu/common/gsl_sharedmem.c
@@ -0,0 +1,937 @@
+/* Copyright (c) 2002,2007-2010, Code Aurora Forum. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 and
+ * only version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that 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.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
+ *
+ */
+
+#include "gsl.h"
+#include "gsl_hal.h"
+
+/////////////////////////////////////////////////////////////////////////////
+// macros
+//////////////////////////////////////////////////////////////////////////////
+#define GSL_SHMEM_APERTURE_MARK(aperture_id) \
+ (shmem->priv |= (((aperture_id + 1) << GSL_APERTURE_SHIFT) & GSL_APERTURE_MASK))
+
+#define GSL_SHMEM_APERTURE_ISMARKED(aperture_id) \
+ (((shmem->priv & GSL_APERTURE_MASK) >> GSL_APERTURE_SHIFT) & (aperture_id + 1))
+
+#define GSL_MEMFLAGS_APERTURE_GET(flags, aperture_id) \
+ aperture_id = (gsl_apertureid_t)((flags & GSL_MEMFLAGS_APERTURE_MASK) >> GSL_MEMFLAGS_APERTURE_SHIFT); \
+ KOS_ASSERT(aperture_id < GSL_APERTURE_MAX);
+
+#define GSL_MEMFLAGS_CHANNEL_GET(flags, channel_id) \
+ channel_id = (gsl_channelid_t)((flags & GSL_MEMFLAGS_CHANNEL_MASK) >> GSL_MEMFLAGS_CHANNEL_SHIFT); \
+ KOS_ASSERT(channel_id < GSL_CHANNEL_MAX);
+
+#define GSL_MEMDESC_APERTURE_SET(memdesc, aperture_index) \
+ memdesc->priv = (memdesc->priv & ~GSL_APERTURE_MASK) | ((aperture_index << GSL_APERTURE_SHIFT) & GSL_APERTURE_MASK);
+
+#define GSL_MEMDESC_DEVICE_SET(memdesc, device_id) \
+ memdesc->priv = (memdesc->priv & ~GSL_DEVICEID_MASK) | ((device_id << GSL_DEVICEID_SHIFT) & GSL_DEVICEID_MASK);
+
+#define GSL_MEMDESC_EXTALLOC_SET(memdesc, flag) \
+ memdesc->priv = (memdesc->priv & ~GSL_EXTALLOC_MASK) | ((flag << GSL_EXTALLOC_SHIFT) & GSL_EXTALLOC_MASK);
+
+#define GSL_MEMDESC_APERTURE_GET(memdesc, aperture_index) \
+ KOS_ASSERT(memdesc); \
+ aperture_index = ((memdesc->priv & GSL_APERTURE_MASK) >> GSL_APERTURE_SHIFT); \
+ KOS_ASSERT(aperture_index < GSL_SHMEM_MAX_APERTURES);
+
+#define GSL_MEMDESC_DEVICE_GET(memdesc, device_id) \
+ KOS_ASSERT(memdesc); \
+ device_id = (gsl_deviceid_t)((memdesc->priv & GSL_DEVICEID_MASK) >> GSL_DEVICEID_SHIFT); \
+ KOS_ASSERT(device_id <= GSL_DEVICE_MAX);
+
+#define GSL_MEMDESC_EXTALLOC_ISMARKED(memdesc) \
+ ((memdesc->priv & GSL_EXTALLOC_MASK) >> GSL_EXTALLOC_SHIFT)
+
+
+//////////////////////////////////////////////////////////////////////////////
+// aperture index in shared memory object
+//////////////////////////////////////////////////////////////////////////////
+OSINLINE int
+kgsl_sharedmem_getapertureindex(gsl_sharedmem_t *shmem, gsl_apertureid_t aperture_id, gsl_channelid_t channel_id)
+{
+ KOS_ASSERT(shmem->aperturelookup[aperture_id][channel_id] < shmem->numapertures);
+
+ return (shmem->aperturelookup[aperture_id][channel_id]);
+}
+
+
+//////////////////////////////////////////////////////////////////////////////
+// functions
+//////////////////////////////////////////////////////////////////////////////
+
+int
+kgsl_sharedmem_init(gsl_sharedmem_t *shmem)
+{
+ int i;
+ int status;
+ gsl_shmemconfig_t config;
+ int mmu_virtualized;
+ gsl_apertureid_t aperture_id;
+ gsl_channelid_t channel_id;
+ unsigned int hostbaseaddr;
+ gpuaddr_t gpubaseaddr;
+ int sizebytes;
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "--> int kgsl_sharedmem_init(gsl_sharedmem_t *shmem=0x%08x)\n", shmem );
+
+ if (shmem->flags & GSL_FLAGS_INITIALIZED)
+ {
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_sharedmem_init. Return value %B\n", GSL_SUCCESS );
+ return (GSL_SUCCESS);
+ }
+
+ status = kgsl_hal_getshmemconfig(&config);
+ if (status != GSL_SUCCESS)
+ {
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_ERROR, "ERROR: Unable to get sharedmem config.\n" );
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_sharedmem_init. Return value %B\n", status );
+ return (status);
+ }
+
+ shmem->numapertures = config.numapertures;
+
+ for (i = 0; i < shmem->numapertures; i++)
+ {
+ aperture_id = config.apertures[i].id;
+ channel_id = config.apertures[i].channel;
+ hostbaseaddr = config.apertures[i].hostbase;
+ gpubaseaddr = config.apertures[i].gpubase;
+ sizebytes = config.apertures[i].sizebytes;
+ mmu_virtualized = 0;
+
+ // handle mmu virtualized aperture
+ if (aperture_id == GSL_APERTURE_MMU)
+ {
+ mmu_virtualized = 1;
+ aperture_id = GSL_APERTURE_EMEM;
+ }
+
+ // make sure aligned to page size
+ KOS_ASSERT((gpubaseaddr & ((1 << GSL_PAGESIZE_SHIFT) - 1)) == 0);
+
+ // make a multiple of page size
+ sizebytes = (sizebytes & ~((1 << GSL_PAGESIZE_SHIFT) - 1));
+
+ if (sizebytes > 0)
+ {
+ shmem->apertures[i].memarena = kgsl_memarena_create(aperture_id, mmu_virtualized, hostbaseaddr, gpubaseaddr, sizebytes);
+
+ if (!shmem->apertures[i].memarena)
+ {
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_ERROR, "ERROR: Unable to allocate memarena.\n" );
+ kgsl_sharedmem_close(shmem);
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_sharedmem_init. Return value %B\n", GSL_FAILURE );
+ return (GSL_FAILURE);
+ }
+
+ shmem->apertures[i].id = aperture_id;
+ shmem->apertures[i].channel = channel_id;
+ shmem->apertures[i].numbanks = 1;
+
+ // create aperture lookup table
+ if (GSL_SHMEM_APERTURE_ISMARKED(aperture_id))
+ {
+ // update "current aperture_id"/"current channel_id" index
+ shmem->aperturelookup[aperture_id][channel_id] = i;
+ }
+ else
+ {
+ // initialize "current aperture_id"/"channel_id" indexes
+ for (channel_id = GSL_CHANNEL_1; channel_id < GSL_CHANNEL_MAX; channel_id++)
+ {
+ shmem->aperturelookup[aperture_id][channel_id] = i;
+ }
+
+ GSL_SHMEM_APERTURE_MARK(aperture_id);
+ }
+ }
+ }
+
+ shmem->flags |= GSL_FLAGS_INITIALIZED;
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_sharedmem_init. Return value %B\n", GSL_SUCCESS );
+
+ return (GSL_SUCCESS);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_sharedmem_close(gsl_sharedmem_t *shmem)
+{
+ int i;
+ int result = GSL_SUCCESS;
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "--> int kgsl_sharedmem_close(gsl_sharedmem_t *shmem=0x%08x)\n", shmem );
+
+ if (shmem->flags & GSL_FLAGS_INITIALIZED)
+ {
+ for (i = 0; i < shmem->numapertures; i++)
+ {
+ if (shmem->apertures[i].memarena)
+ {
+ result = kgsl_memarena_destroy(shmem->apertures[i].memarena);
+ }
+ }
+
+ kos_memset(shmem, 0, sizeof(gsl_sharedmem_t));
+ }
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_sharedmem_close. Return value %B\n", result );
+
+ return (result);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_sharedmem_alloc0(gsl_deviceid_t device_id, gsl_flags_t flags, int sizebytes, gsl_memdesc_t *memdesc)
+{
+ gsl_apertureid_t aperture_id;
+ gsl_channelid_t channel_id;
+ gsl_deviceid_t tmp_id;
+ int aperture_index, org_index;
+ int result = GSL_FAILURE;
+ gsl_mmu_t *mmu = NULL;
+ gsl_sharedmem_t *shmem = &gsl_driver.shmem;
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE,
+ "--> int kgsl_sharedmem_alloc(gsl_deviceid_t device_id=%D, gsl_flags_t flags=0x%08x, int sizebytes=%d, gsl_memdesc_t *memdesc=%M)\n",
+ device_id, flags, sizebytes, memdesc );
+
+ KOS_ASSERT(sizebytes);
+ KOS_ASSERT(memdesc);
+
+ GSL_MEMFLAGS_APERTURE_GET(flags, aperture_id);
+ GSL_MEMFLAGS_CHANNEL_GET(flags, channel_id);
+
+ kos_memset(memdesc, 0, sizeof(gsl_memdesc_t));
+
+ if (!(shmem->flags & GSL_FLAGS_INITIALIZED))
+ {
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_ERROR, "ERROR: Shared memory not initialized.\n" );
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_sharedmem_alloc. Return value %B\n", GSL_FAILURE );
+ return (GSL_FAILURE);
+ }
+
+ // execute pending device action
+ tmp_id = (device_id != GSL_DEVICE_ANY) ? device_id : device_id+1;
+ for ( ; tmp_id <= GSL_DEVICE_MAX; tmp_id++)
+ {
+ if (gsl_driver.device[tmp_id-1].flags & GSL_FLAGS_INITIALIZED)
+ {
+ kgsl_device_runpending(&gsl_driver.device[tmp_id-1]);
+
+ if (tmp_id == device_id)
+ {
+ break;
+ }
+ }
+ }
+
+ // convert any device to an actual existing device
+ if (device_id == GSL_DEVICE_ANY)
+ {
+ for ( ; ; )
+ {
+ device_id++;
+
+ if (device_id <= GSL_DEVICE_MAX)
+ {
+ if (gsl_driver.device[device_id-1].flags & GSL_FLAGS_INITIALIZED)
+ {
+ break;
+ }
+ }
+ else
+ {
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_ERROR, "ERROR: Invalid device.\n" );
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_sharedmem_alloc. Return value %B\n", GSL_FAILURE );
+ return (GSL_FAILURE);
+ }
+ }
+ }
+
+ KOS_ASSERT(device_id > GSL_DEVICE_ANY && device_id <= GSL_DEVICE_MAX);
+
+ // get mmu reference
+ mmu = &gsl_driver.device[device_id-1].mmu;
+
+ aperture_index = kgsl_sharedmem_getapertureindex(shmem, aperture_id, channel_id);
+
+ //do not proceed if it is a strict request, the aperture requested is not present, and the MMU is enabled
+ if (!((flags & GSL_MEMFLAGS_STRICTREQUEST) && aperture_id != shmem->apertures[aperture_index].id && kgsl_mmu_isenabled(mmu)))
+ {
+ // do allocation
+ result = kgsl_memarena_alloc(shmem->apertures[aperture_index].memarena, flags, sizebytes, memdesc);
+
+ // if allocation failed
+ if (result != GSL_SUCCESS)
+ {
+ org_index = aperture_index;
+
+ // then failover to other channels within the current aperture
+ for (channel_id = GSL_CHANNEL_1; channel_id < GSL_CHANNEL_MAX; channel_id++)
+ {
+ aperture_index = kgsl_sharedmem_getapertureindex(shmem, aperture_id, channel_id);
+
+ if (aperture_index != org_index)
+ {
+ // do allocation
+ result = kgsl_memarena_alloc(shmem->apertures[aperture_index].memarena, flags, sizebytes, memdesc);
+
+ if (result == GSL_SUCCESS)
+ {
+ break;
+ }
+ }
+ }
+
+ // if allocation still has not succeeded, then failover to EMEM/MMU aperture, but
+ // not if it's a strict request and the MMU is enabled
+ if (result != GSL_SUCCESS && aperture_id != GSL_APERTURE_EMEM
+ && !((flags & GSL_MEMFLAGS_STRICTREQUEST) && kgsl_mmu_isenabled(mmu)))
+ {
+ aperture_id = GSL_APERTURE_EMEM;
+
+ // try every channel
+ for (channel_id = GSL_CHANNEL_1; channel_id < GSL_CHANNEL_MAX; channel_id++)
+ {
+ aperture_index = kgsl_sharedmem_getapertureindex(shmem, aperture_id, channel_id);
+
+ if (aperture_index != org_index)
+ {
+ // do allocation
+ result = kgsl_memarena_alloc(shmem->apertures[aperture_index].memarena, flags, sizebytes, memdesc);
+
+ if (result == GSL_SUCCESS)
+ {
+ break;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ if (result == GSL_SUCCESS)
+ {
+ GSL_MEMDESC_APERTURE_SET(memdesc, aperture_index);
+ GSL_MEMDESC_DEVICE_SET(memdesc, device_id);
+
+ if (kgsl_memarena_isvirtualized(shmem->apertures[aperture_index].memarena))
+ {
+ gsl_scatterlist_t scatterlist;
+
+ scatterlist.contiguous = 0;
+ scatterlist.num = memdesc->size / GSL_PAGESIZE;
+
+ if (memdesc->size & (GSL_PAGESIZE-1))
+ {
+ scatterlist.num++;
+ }
+
+ scatterlist.pages = kos_malloc(sizeof(unsigned int) * scatterlist.num);
+ if (scatterlist.pages)
+ {
+ // allocate physical pages
+ result = kgsl_hal_allocphysical(memdesc->gpuaddr, scatterlist.num, scatterlist.pages);
+ if (result == GSL_SUCCESS)
+ {
+ result = kgsl_mmu_map(mmu, memdesc->gpuaddr, &scatterlist, flags, GSL_CALLER_PROCESSID_GET());
+ if (result != GSL_SUCCESS)
+ {
+ kgsl_hal_freephysical(memdesc->gpuaddr, scatterlist.num, scatterlist.pages);
+ }
+ }
+
+ kos_free(scatterlist.pages);
+ }
+ else
+ {
+ result = GSL_FAILURE;
+ }
+
+ if (result != GSL_SUCCESS)
+ {
+ kgsl_memarena_free(shmem->apertures[aperture_index].memarena, memdesc);
+ }
+ }
+ }
+
+ KGSL_DEBUG_TBDUMP_SETMEM( memdesc->gpuaddr, 0, memdesc->size );
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_sharedmem_alloc. Return value %B\n", result );
+
+ return (result);
+}
+
+//----------------------------------------------------------------------------
+
+KGSL_API int
+kgsl_sharedmem_alloc(gsl_deviceid_t device_id, gsl_flags_t flags, int sizebytes, gsl_memdesc_t *memdesc)
+{
+ int status = GSL_SUCCESS;
+ GSL_API_MUTEX_LOCK();
+ status = kgsl_sharedmem_alloc0(device_id, flags, sizebytes, memdesc);
+ GSL_API_MUTEX_UNLOCK();
+ return status;
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_sharedmem_free0(gsl_memdesc_t *memdesc, unsigned int pid)
+{
+ int status = GSL_SUCCESS;
+ int aperture_index;
+ gsl_deviceid_t device_id;
+ gsl_sharedmem_t *shmem;
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "--> int kgsl_sharedmem_free(gsl_memdesc_t *memdesc=%M)\n", memdesc );
+
+ GSL_MEMDESC_APERTURE_GET(memdesc, aperture_index);
+ GSL_MEMDESC_DEVICE_GET(memdesc, device_id);
+
+ shmem = &gsl_driver.shmem;
+
+ if (shmem->flags & GSL_FLAGS_INITIALIZED)
+ {
+ if (kgsl_memarena_isvirtualized(shmem->apertures[aperture_index].memarena))
+ {
+ status |= kgsl_mmu_unmap(&gsl_driver.device[device_id-1].mmu, memdesc->gpuaddr, memdesc->size, pid);
+
+ if (!GSL_MEMDESC_EXTALLOC_ISMARKED(memdesc))
+ {
+ status |= kgsl_hal_freephysical(memdesc->gpuaddr, memdesc->size / GSL_PAGESIZE, NULL);
+ }
+ }
+
+ kgsl_memarena_free(shmem->apertures[aperture_index].memarena, memdesc);
+
+ // clear descriptor
+ kos_memset(memdesc, 0, sizeof(gsl_memdesc_t));
+ }
+ else
+ {
+ status = GSL_FAILURE;
+ }
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_sharedmem_free. Return value %B\n", status );
+
+ return (status);
+}
+
+//----------------------------------------------------------------------------
+
+KGSL_API int
+kgsl_sharedmem_free(gsl_memdesc_t *memdesc)
+{
+ int status = GSL_SUCCESS;
+ GSL_API_MUTEX_LOCK();
+ status = kgsl_sharedmem_free0(memdesc, GSL_CALLER_PROCESSID_GET());
+ GSL_API_MUTEX_UNLOCK();
+ return status;
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_sharedmem_read0(const gsl_memdesc_t *memdesc, void *dst, unsigned int offsetbytes, unsigned int sizebytes, unsigned int touserspace)
+{
+ int aperture_index;
+ gsl_sharedmem_t *shmem;
+ unsigned int gpuoffsetbytes;
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE,
+ "--> int kgsl_sharedmem_read(gsl_memdesc_t *memdesc=%M, void *dst=0x%08x, unsigned int offsetbytes=%d, unsigned int sizebytes=%d)\n",
+ memdesc, dst, offsetbytes, sizebytes );
+
+ GSL_MEMDESC_APERTURE_GET(memdesc, aperture_index);
+
+ if (GSL_MEMDESC_EXTALLOC_ISMARKED(memdesc))
+ {
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_sharedmem_read. Return value %B\n", GSL_FAILURE_BADPARAM );
+ return (GSL_FAILURE_BADPARAM);
+ }
+
+ shmem = &gsl_driver.shmem;
+
+ if (!(shmem->flags & GSL_FLAGS_INITIALIZED))
+ {
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_ERROR, "ERROR: Shared memory not initialized.\n" );
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_sharedmem_read. Return value %B\n", GSL_FAILURE );
+ return (GSL_FAILURE);
+ }
+
+ KOS_ASSERT(dst);
+ KOS_ASSERT(sizebytes);
+
+ if (memdesc->gpuaddr < shmem->apertures[aperture_index].memarena->gpubaseaddr)
+ {
+ return (GSL_FAILURE_BADPARAM);
+ }
+
+ if (memdesc->gpuaddr + sizebytes > shmem->apertures[aperture_index].memarena->gpubaseaddr + shmem->apertures[aperture_index].memarena->sizebytes)
+ {
+ return (GSL_FAILURE_BADPARAM);
+ }
+
+ gpuoffsetbytes = (memdesc->gpuaddr - shmem->apertures[aperture_index].memarena->gpubaseaddr) + offsetbytes;
+
+ GSL_HAL_MEM_READ(dst, shmem->apertures[aperture_index].memarena->hostbaseaddr, gpuoffsetbytes, sizebytes, touserspace);
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_sharedmem_read. Return value %B\n", GSL_SUCCESS );
+
+ return (GSL_SUCCESS);
+}
+
+//----------------------------------------------------------------------------
+
+KGSL_API int
+kgsl_sharedmem_read(const gsl_memdesc_t *memdesc, void *dst, unsigned int offsetbytes, unsigned int sizebytes, unsigned int touserspace)
+{
+ int status = GSL_SUCCESS;
+ GSL_API_MUTEX_LOCK();
+ status = kgsl_sharedmem_read0(memdesc, dst, offsetbytes, sizebytes, touserspace);
+ GSL_API_MUTEX_UNLOCK();
+ return status;
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_sharedmem_write0(const gsl_memdesc_t *memdesc, unsigned int offsetbytes, void *src, unsigned int sizebytes, unsigned int fromuserspace)
+{
+ int aperture_index;
+ gsl_sharedmem_t *shmem;
+ unsigned int gpuoffsetbytes;
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE,
+ "--> int kgsl_sharedmem_write(gsl_memdesc_t *memdesc=%M, unsigned int offsetbytes=%d, void *src=0x%08x, unsigned int sizebytes=%d)\n",
+ memdesc, offsetbytes, src, sizebytes );
+
+ GSL_MEMDESC_APERTURE_GET(memdesc, aperture_index);
+
+ if (GSL_MEMDESC_EXTALLOC_ISMARKED(memdesc))
+ {
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_sharedmem_write. Return value %B\n", GSL_FAILURE_BADPARAM );
+ return (GSL_FAILURE_BADPARAM);
+ }
+
+ shmem = &gsl_driver.shmem;
+
+ if (!(shmem->flags & GSL_FLAGS_INITIALIZED))
+ {
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_ERROR, "ERROR: Shared memory not initialized.\n" );
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_sharedmem_write. Return value %B\n", GSL_FAILURE );
+ return (GSL_FAILURE);
+ }
+
+ KOS_ASSERT(src);
+ KOS_ASSERT(sizebytes);
+ KOS_ASSERT(memdesc->gpuaddr >= shmem->apertures[aperture_index].memarena->gpubaseaddr);
+ KOS_ASSERT((memdesc->gpuaddr + sizebytes) <= (shmem->apertures[aperture_index].memarena->gpubaseaddr + shmem->apertures[aperture_index].memarena->sizebytes));
+
+ gpuoffsetbytes = (memdesc->gpuaddr - shmem->apertures[aperture_index].memarena->gpubaseaddr) + offsetbytes;
+
+ GSL_HAL_MEM_WRITE(shmem->apertures[aperture_index].memarena->hostbaseaddr, gpuoffsetbytes, src, sizebytes, fromuserspace);
+
+ KGSL_DEBUG(GSL_DBGFLAGS_PM4MEM, KGSL_DEBUG_DUMPMEMWRITE((memdesc->gpuaddr + offsetbytes), sizebytes, src));
+
+ KGSL_DEBUG_TBDUMP_SYNCMEM( (memdesc->gpuaddr + offsetbytes), src, sizebytes );
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_sharedmem_write. Return value %B\n", GSL_SUCCESS );
+
+ return (GSL_SUCCESS);
+}
+
+//----------------------------------------------------------------------------
+
+KGSL_API int
+kgsl_sharedmem_write(const gsl_memdesc_t *memdesc, unsigned int offsetbytes, void *src, unsigned int sizebytes, unsigned int fromuserspace)
+{
+ int status = GSL_SUCCESS;
+ GSL_API_MUTEX_LOCK();
+ status = kgsl_sharedmem_write0(memdesc, offsetbytes, src, sizebytes, fromuserspace);
+ GSL_API_MUTEX_UNLOCK();
+ return status;
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_sharedmem_set0(const gsl_memdesc_t *memdesc, unsigned int offsetbytes, unsigned int value, unsigned int sizebytes)
+{
+ int aperture_index;
+ gsl_sharedmem_t *shmem;
+ unsigned int gpuoffsetbytes;
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE,
+ "--> int kgsl_sharedmem_set(gsl_memdesc_t *memdesc=%M, unsigned int offsetbytes=%d, unsigned int value=0x%08x, unsigned int sizebytes=%d)\n",
+ memdesc, offsetbytes, value, sizebytes );
+
+ GSL_MEMDESC_APERTURE_GET(memdesc, aperture_index);
+
+ if (GSL_MEMDESC_EXTALLOC_ISMARKED(memdesc))
+ {
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_sharedmem_set. Return value %B\n", GSL_FAILURE_BADPARAM );
+ return (GSL_FAILURE_BADPARAM);
+ }
+
+ shmem = &gsl_driver.shmem;
+
+ if (!(shmem->flags & GSL_FLAGS_INITIALIZED))
+ {
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_ERROR, "ERROR: Shared memory not initialized.\n" );
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_sharedmem_set. Return value %B\n", GSL_FAILURE );
+ return (GSL_FAILURE);
+ }
+
+ KOS_ASSERT(sizebytes);
+ KOS_ASSERT(memdesc->gpuaddr >= shmem->apertures[aperture_index].memarena->gpubaseaddr);
+ KOS_ASSERT((memdesc->gpuaddr + sizebytes) <= (shmem->apertures[aperture_index].memarena->gpubaseaddr + shmem->apertures[aperture_index].memarena->sizebytes));
+
+ gpuoffsetbytes = (memdesc->gpuaddr - shmem->apertures[aperture_index].memarena->gpubaseaddr) + offsetbytes;
+
+ GSL_HAL_MEM_SET(shmem->apertures[aperture_index].memarena->hostbaseaddr, gpuoffsetbytes, value, sizebytes);
+
+ KGSL_DEBUG(GSL_DBGFLAGS_PM4MEM, KGSL_DEBUG_DUMPMEMSET((memdesc->gpuaddr + offsetbytes), sizebytes, value));
+
+ KGSL_DEBUG_TBDUMP_SETMEM( (memdesc->gpuaddr + offsetbytes), value, sizebytes );
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_sharedmem_set. Return value %B\n", GSL_SUCCESS );
+
+ return (GSL_SUCCESS);
+}
+
+//----------------------------------------------------------------------------
+
+KGSL_API int
+kgsl_sharedmem_set(const gsl_memdesc_t *memdesc, unsigned int offsetbytes, unsigned int value, unsigned int sizebytes)
+{
+ int status = GSL_SUCCESS;
+ GSL_API_MUTEX_LOCK();
+ status = kgsl_sharedmem_set0(memdesc, offsetbytes, value, sizebytes);
+ GSL_API_MUTEX_UNLOCK();
+ return status;
+}
+
+//----------------------------------------------------------------------------
+
+KGSL_API unsigned int
+kgsl_sharedmem_largestfreeblock(gsl_deviceid_t device_id, gsl_flags_t flags)
+{
+ gsl_apertureid_t aperture_id;
+ gsl_channelid_t channel_id;
+ int aperture_index;
+ unsigned int result = 0;
+ gsl_sharedmem_t *shmem;
+
+ // device_id is ignored at this level, it would be used with per-device memarena's
+
+ // unreferenced formal parameter
+ (void) device_id;
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE,
+ "--> int kgsl_sharedmem_largestfreeblock(gsl_deviceid_t device_id=%D, gsl_flags_t flags=0x%08x)\n",
+ device_id, flags );
+
+ GSL_MEMFLAGS_APERTURE_GET(flags, aperture_id);
+ GSL_MEMFLAGS_CHANNEL_GET(flags, channel_id);
+
+ GSL_API_MUTEX_LOCK();
+
+ shmem = &gsl_driver.shmem;
+
+ if (!(shmem->flags & GSL_FLAGS_INITIALIZED))
+ {
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_ERROR, "ERROR: Shared memory not initialized.\n" );
+ GSL_API_MUTEX_UNLOCK();
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_sharedmem_largestfreeblock. Return value %d\n", 0 );
+ return (0);
+ }
+
+ aperture_index = kgsl_sharedmem_getapertureindex(shmem, aperture_id, channel_id);
+
+ if (aperture_id == shmem->apertures[aperture_index].id)
+ {
+ result = kgsl_memarena_getlargestfreeblock(shmem->apertures[aperture_index].memarena, flags);
+ }
+
+ GSL_API_MUTEX_UNLOCK();
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_sharedmem_largestfreeblock. Return value %d\n", result );
+
+ return (result);
+}
+
+//----------------------------------------------------------------------------
+
+KGSL_API int
+kgsl_sharedmem_map(gsl_deviceid_t device_id, gsl_flags_t flags, const gsl_scatterlist_t *scatterlist, gsl_memdesc_t *memdesc)
+{
+ int status = GSL_FAILURE;
+ gsl_sharedmem_t *shmem = &gsl_driver.shmem;
+ int aperture_index;
+ gsl_deviceid_t tmp_id;
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE,
+ "--> int kgsl_sharedmem_map(gsl_deviceid_t device_id=%D, gsl_flags_t flags=0x%08x, gsl_scatterlist_t scatterlist=%M, gsl_memdesc_t *memdesc=%M)\n",
+ device_id, flags, memdesc, scatterlist );
+
+ // execute pending device action
+ tmp_id = (device_id != GSL_DEVICE_ANY) ? device_id : device_id+1;
+ for ( ; tmp_id <= GSL_DEVICE_MAX; tmp_id++)
+ {
+ if (gsl_driver.device[tmp_id-1].flags & GSL_FLAGS_INITIALIZED)
+ {
+ kgsl_device_runpending(&gsl_driver.device[tmp_id-1]);
+
+ if (tmp_id == device_id)
+ {
+ break;
+ }
+ }
+ }
+
+ // convert any device to an actual existing device
+ if (device_id == GSL_DEVICE_ANY)
+ {
+ for ( ; ; )
+ {
+ device_id++;
+
+ if (device_id <= GSL_DEVICE_MAX)
+ {
+ if (gsl_driver.device[device_id-1].flags & GSL_FLAGS_INITIALIZED)
+ {
+ break;
+ }
+ }
+ else
+ {
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_ERROR, "ERROR: Invalid device.\n" );
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_sharedmem_map. Return value %B\n", GSL_FAILURE );
+ return (GSL_FAILURE);
+ }
+ }
+ }
+
+ KOS_ASSERT(device_id > GSL_DEVICE_ANY && device_id <= GSL_DEVICE_MAX);
+
+ if (shmem->flags & GSL_FLAGS_INITIALIZED)
+ {
+ aperture_index = kgsl_sharedmem_getapertureindex(shmem, GSL_APERTURE_EMEM, GSL_CHANNEL_1);
+
+ if (kgsl_memarena_isvirtualized(shmem->apertures[aperture_index].memarena))
+ {
+ KOS_ASSERT(scatterlist->num);
+ KOS_ASSERT(scatterlist->pages);
+
+ status = kgsl_memarena_alloc(shmem->apertures[aperture_index].memarena, flags, scatterlist->num *GSL_PAGESIZE, memdesc);
+ if (status == GSL_SUCCESS)
+ {
+ GSL_MEMDESC_APERTURE_SET(memdesc, aperture_index);
+ GSL_MEMDESC_DEVICE_SET(memdesc, device_id);
+
+ // mark descriptor's memory as externally allocated -- i.e. outside GSL
+ GSL_MEMDESC_EXTALLOC_SET(memdesc, 1);
+
+ status = kgsl_mmu_map(&gsl_driver.device[device_id-1].mmu, memdesc->gpuaddr, scatterlist, flags, GSL_CALLER_PROCESSID_GET());
+ if (status != GSL_SUCCESS)
+ {
+ kgsl_memarena_free(shmem->apertures[aperture_index].memarena, memdesc);
+ }
+ }
+ }
+ }
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_sharedmem_map. Return value %B\n", status );
+
+ return (status);
+}
+
+//----------------------------------------------------------------------------
+
+KGSL_API int
+kgsl_sharedmem_unmap(gsl_memdesc_t *memdesc)
+{
+ return (kgsl_sharedmem_free0(memdesc, GSL_CALLER_PROCESSID_GET()));
+}
+
+//----------------------------------------------------------------------------
+
+KGSL_API int
+kgsl_sharedmem_getmap(const gsl_memdesc_t *memdesc, gsl_scatterlist_t *scatterlist)
+{
+ int status = GSL_SUCCESS;
+ int aperture_index;
+ gsl_deviceid_t device_id;
+ gsl_sharedmem_t *shmem;
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE,
+ "--> int kgsl_sharedmem_getmap(gsl_memdesc_t *memdesc=%M, gsl_scatterlist_t scatterlist=%M)\n",
+ memdesc, scatterlist );
+
+ GSL_MEMDESC_APERTURE_GET(memdesc, aperture_index);
+ GSL_MEMDESC_DEVICE_GET(memdesc, device_id);
+
+ shmem = &gsl_driver.shmem;
+
+ if (shmem->flags & GSL_FLAGS_INITIALIZED)
+ {
+ KOS_ASSERT(scatterlist->num);
+ KOS_ASSERT(scatterlist->pages);
+ KOS_ASSERT(memdesc->gpuaddr >= shmem->apertures[aperture_index].memarena->gpubaseaddr);
+ KOS_ASSERT((memdesc->gpuaddr + memdesc->size) <= (shmem->apertures[aperture_index].memarena->gpubaseaddr + shmem->apertures[aperture_index].memarena->sizebytes));
+
+ kos_memset(scatterlist->pages, 0, sizeof(unsigned int) * scatterlist->num);
+
+ if (kgsl_memarena_isvirtualized(shmem->apertures[aperture_index].memarena))
+ {
+ status = kgsl_mmu_getmap(&gsl_driver.device[device_id-1].mmu, memdesc->gpuaddr, memdesc->size, scatterlist, GSL_CALLER_PROCESSID_GET());
+ }
+ else
+ {
+ // coalesce physically contiguous pages into a single scatter list entry
+ scatterlist->pages[0] = memdesc->gpuaddr;
+ scatterlist->contiguous = 1;
+ }
+ }
+
+ kgsl_log_write( KGSL_LOG_GROUP_MEMORY | KGSL_LOG_LEVEL_TRACE, "<-- kgsl_sharedmem_getmap. Return value %B\n", status );
+
+ return (status);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_sharedmem_querystats(gsl_sharedmem_t *shmem, gsl_sharedmem_stats_t *stats)
+{
+#ifdef GSL_STATS_MEM
+ int status = GSL_SUCCESS;
+ int i;
+
+ KOS_ASSERT(stats);
+
+ if (shmem->flags & GSL_FLAGS_INITIALIZED)
+ {
+ for (i = 0; i < shmem->numapertures; i++)
+ {
+ if (shmem->apertures[i].memarena)
+ {
+ stats->apertures[i].id = shmem->apertures[i].id;
+ stats->apertures[i].channel = shmem->apertures[i].channel;
+
+ status |= kgsl_memarena_querystats(shmem->apertures[i].memarena, &stats->apertures[i].memarena);
+ }
+ }
+ }
+ else
+ {
+ kos_memset(stats, 0, sizeof(gsl_sharedmem_stats_t));
+ }
+
+ return (status);
+#else
+ // unreferenced formal parameters
+ (void) shmem;
+ (void) stats;
+
+ return (GSL_FAILURE_NOTSUPPORTED);
+#endif // GSL_STATS_MEM
+}
+
+//----------------------------------------------------------------------------
+
+unsigned int
+kgsl_sharedmem_convertaddr(unsigned int addr, int type)
+{
+ gsl_sharedmem_t *shmem = &gsl_driver.shmem;
+ unsigned int cvtaddr = 0;
+ unsigned int gpubaseaddr, hostbaseaddr, sizebytes;
+ int i;
+
+ if ((shmem->flags & GSL_FLAGS_INITIALIZED))
+ {
+ for (i = 0; i < shmem->numapertures; i++)
+ {
+ hostbaseaddr = shmem->apertures[i].memarena->hostbaseaddr;
+ gpubaseaddr = shmem->apertures[i].memarena->gpubaseaddr;
+ sizebytes = shmem->apertures[i].memarena->sizebytes;
+
+ // convert from gpu to host
+ if (type == 0)
+ {
+ if (addr >= gpubaseaddr && addr < (gpubaseaddr + sizebytes))
+ {
+ cvtaddr = hostbaseaddr + (addr - gpubaseaddr);
+ break;
+ }
+ }
+ // convert from host to gpu
+ else if (type == 1)
+ {
+ if (addr >= hostbaseaddr && addr < (hostbaseaddr + sizebytes))
+ {
+ cvtaddr = gpubaseaddr + (addr - hostbaseaddr);
+ break;
+ }
+ }
+ }
+ }
+
+ return (cvtaddr);
+}
+
+//----------------------------------------------------------------------------
+
+KGSL_API int
+kgsl_sharedmem_cacheoperation(const gsl_memdesc_t *memdesc, unsigned int offsetbytes, unsigned int sizebytes, unsigned int operation)
+{
+ int status = GSL_FAILURE;
+
+ /* unreferenced formal parameter */
+ (void)memdesc;
+ (void)offsetbytes;
+ (void)sizebytes;
+ (void)operation;
+
+ /* do cache operation */
+
+ return (status);
+}
+
+//----------------------------------------------------------------------------
+
+KGSL_API int
+kgsl_sharedmem_fromhostpointer(gsl_deviceid_t device_id, gsl_memdesc_t *memdesc, void* hostptr)
+{
+ int status = GSL_FAILURE;
+
+ memdesc->gpuaddr = (gpuaddr_t)hostptr; /* map physical address with hostptr */
+ memdesc->hostptr = hostptr; /* set virtual address also in memdesc */
+
+ /* unreferenced formal parameter */
+ (void)device_id;
+
+ return (status);
+}
diff --git a/drivers/mxc/amd-gpu/common/gsl_tbdump.c b/drivers/mxc/amd-gpu/common/gsl_tbdump.c
new file mode 100644
index 000000000000..e22cf894f7b2
--- /dev/null
+++ b/drivers/mxc/amd-gpu/common/gsl_tbdump.c
@@ -0,0 +1,228 @@
+/* Copyright (c) 2008-2010, Advanced Micro Devices. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 and
+ * only version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that 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.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
+ *
+ */
+
+#include <stdio.h>
+#ifdef WIN32
+#include <windows.h>
+#endif
+#include "gsl.h"
+#include "gsl_tbdump.h"
+#include "kos_libapi.h"
+
+#ifdef TBDUMP
+
+typedef struct TBDump_
+{
+ void* file;
+} TBDump;
+
+
+static TBDump g_tb;
+static oshandle_t tbdump_mutex = 0;
+#define TBDUMP_MUTEX_LOCK() if( tbdump_mutex ) kos_mutex_lock( tbdump_mutex )
+#define TBDUMP_MUTEX_UNLOCK() if( tbdump_mutex ) kos_mutex_unlock( tbdump_mutex )
+
+/* ------------------------------------------------------------------------ */
+/* ------------------------------------------------------------------------ */
+/* ------------------------------------------------------------------------ */
+
+static void tbdump_printline(const char* format, ...)
+{
+ if(g_tb.file)
+ {
+ va_list va;
+ va_start(va, format);
+ vfprintf((FILE*)g_tb.file, format, va);
+ va_end(va);
+ fprintf((FILE*)g_tb.file, "\n");
+ }
+}
+
+static void tbdump_printinfo(const char* message )
+{
+ tbdump_printline("15 %s", message);
+}
+
+static void tbdump_getmemhex(char* buffer, unsigned int addr, unsigned int sizewords)
+{
+ unsigned int i = 0;
+ static const char* hexChars = "0123456789abcdef";
+ unsigned char* ptr = (unsigned char*)addr;
+
+ for (i = 0; i < sizewords; i++)
+ {
+ buffer[(sizewords - i) * 2 - 1] = hexChars[ptr[i] & 0x0f];
+ buffer[(sizewords - i) * 2 - 2] = hexChars[ptr[i] >> 4];
+ }
+ buffer[sizewords * 2] = '\0';
+}
+
+/* ------------------------------------------------------------------------ */
+
+void tbdump_open(char* filename)
+{
+ if( !tbdump_mutex ) tbdump_mutex = kos_mutex_create( "TBDUMP_MUTEX" );
+
+ kos_memset( &g_tb, 0, sizeof( g_tb ) );
+
+ g_tb.file = kos_fopen( filename, "wt" );
+
+ tbdump_printinfo("reset");
+ tbdump_printline("0");
+ tbdump_printline("1 00000000 00000eff");
+
+ /* Enable interrupts */
+ tbdump_printline("1 00000000 00000003");
+}
+
+void tbdump_close()
+{
+ TBDUMP_MUTEX_LOCK();
+
+ kos_fclose( g_tb.file );
+ g_tb.file = 0;
+
+ TBDUMP_MUTEX_UNLOCK();
+
+ if( tbdump_mutex ) kos_mutex_free( tbdump_mutex );
+}
+
+/* ------------------------------------------------------------------------ */
+
+void tbdump_syncmem(unsigned int addr, unsigned int src, unsigned int sizebytes)
+{
+ /* Align starting address and size */
+ unsigned int beg = addr;
+ unsigned int end = addr+sizebytes;
+ char buffer[65];
+
+ TBDUMP_MUTEX_LOCK();
+
+ beg = (beg+15) & ~15;
+ end &= ~15;
+
+ if( sizebytes <= 16 )
+ {
+ tbdump_getmemhex(buffer, src, 16);
+
+ tbdump_printline("19 %08x %i 1 %s", addr, sizebytes, buffer);
+
+ TBDUMP_MUTEX_UNLOCK();
+ return;
+ }
+
+ /* Handle unaligned start */
+ if( beg != addr )
+ {
+ tbdump_getmemhex(buffer, src, 16);
+
+ tbdump_printline("19 %08x %i 1 %s", addr, beg-addr, buffer);
+
+ src += beg-addr;
+ }
+
+ /* Dump the memory writes */
+ while( beg < end )
+ {
+ tbdump_getmemhex(buffer, src, 16);
+
+ tbdump_printline("2 %08x %s", beg, buffer);
+
+ beg += 16;
+ src += 16;
+ }
+
+ /* Handle unaligned end */
+ if( end != addr+sizebytes )
+ {
+ tbdump_getmemhex(buffer, src, 16);
+
+ tbdump_printline("19 %08x %i 1 %s", end, (addr+sizebytes)-end, buffer);
+ }
+
+ TBDUMP_MUTEX_UNLOCK();
+}
+
+/* ------------------------------------------------------------------------ */
+
+void tbdump_setmem(unsigned int addr, unsigned int value, unsigned int sizebytes)
+{
+ TBDUMP_MUTEX_LOCK();
+
+ tbdump_printline("19 %08x 4 %i %032x", addr, (sizebytes+3)/4, value );
+
+ TBDUMP_MUTEX_UNLOCK();
+}
+
+/* ------------------------------------------------------------------------ */
+
+void tbdump_slavewrite(unsigned int addr, unsigned int value)
+{
+ TBDUMP_MUTEX_LOCK();
+
+ tbdump_printline("1 %08x %08x", addr, value);
+
+ TBDUMP_MUTEX_UNLOCK();
+}
+
+/* ------------------------------------------------------------------------ */
+
+
+KGSL_API int
+kgsl_tbdump_waitirq()
+{
+ if(!g_tb.file) return GSL_FAILURE;
+
+ TBDUMP_MUTEX_LOCK();
+
+ tbdump_printinfo("wait irq");
+ tbdump_printline("10");
+
+ /* ACK IRQ */
+ tbdump_printline("1 00000418 00000003");
+ tbdump_printline("18 00000018 00000000 # slave read & assert");
+
+ TBDUMP_MUTEX_UNLOCK();
+
+ return GSL_SUCCESS;
+}
+
+/* ------------------------------------------------------------------------ */
+
+KGSL_API int
+kgsl_tbdump_exportbmp(const void* addr, unsigned int format, unsigned int stride, unsigned int width, unsigned int height)
+{
+ static char filename[20];
+ static int numframe = 0;
+
+ if(!g_tb.file) return GSL_FAILURE;
+
+ TBDUMP_MUTEX_LOCK();
+ #pragma warning(disable:4996)
+ sprintf( filename, "tbdump_%08d.bmp", numframe++ );
+
+ tbdump_printline("13 %s %d %08x %d %d %d 0", filename, format, (unsigned int)addr, stride, width, height);
+
+ TBDUMP_MUTEX_UNLOCK();
+
+ return GSL_SUCCESS;
+}
+
+/* ------------------------------------------------------------------------ */
+
+#endif /* TBDUMP */
diff --git a/drivers/mxc/amd-gpu/common/gsl_yamato.c b/drivers/mxc/amd-gpu/common/gsl_yamato.c
new file mode 100644
index 000000000000..07c651f57f42
--- /dev/null
+++ b/drivers/mxc/amd-gpu/common/gsl_yamato.c
@@ -0,0 +1,924 @@
+/* Copyright (c) 2002,2007-2010, Code Aurora Forum. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 and
+ * only version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that 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.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
+ *
+ */
+
+#include "gsl.h"
+#include "gsl_hal.h"
+#ifdef _LINUX
+#include <linux/delay.h>
+#include <linux/sched.h>
+#endif
+
+#ifdef GSL_BLD_YAMATO
+
+#include "gsl_ringbuffer.h"
+#include "gsl_drawctxt.h"
+
+//////////////////////////////////////////////////////////////////////////////
+// functions
+//////////////////////////////////////////////////////////////////////////////
+
+static int
+kgsl_yamato_gmeminit(gsl_device_t *device)
+{
+ rb_edram_info_u rb_edram_info = {0};
+ unsigned int gmem_size;
+ unsigned int edram_value = 0;
+
+ // make sure edram range is aligned to size
+ KOS_ASSERT((device->gmemspace.gpu_base & (device->gmemspace.sizebytes - 1)) == 0);
+
+ // get edram_size value equivalent
+ gmem_size = (device->gmemspace.sizebytes >> 14);
+ while (gmem_size >>= 1)
+ {
+ edram_value++;
+ }
+
+ rb_edram_info.f.edram_size = edram_value;
+ rb_edram_info.f.edram_mapping_mode = 0; // EDRAM_MAP_UPPER
+ rb_edram_info.f.edram_range = (device->gmemspace.gpu_base >> 14); // must be aligned to size
+
+ device->ftbl.device_regwrite(device, mmRB_EDRAM_INFO, (unsigned int)rb_edram_info.val);
+
+ return (GSL_SUCCESS);
+}
+
+//----------------------------------------------------------------------------
+
+static int
+kgsl_yamato_gmemclose(gsl_device_t *device)
+{
+ device->ftbl.device_regwrite(device, mmRB_EDRAM_INFO, 0x00000000);
+
+ return (GSL_SUCCESS);
+}
+
+//----------------------------------------------------------------------------
+
+void
+kgsl_yamato_rbbmintrcallback(gsl_intrid_t id, void *cookie)
+{
+ gsl_device_t *device = (gsl_device_t *) cookie;
+
+ switch(id)
+ {
+ // error condition interrupt
+ case GSL_INTR_YDX_RBBM_READ_ERROR:
+ printk(KERN_ERR "GPU: Z430 RBBM Read Error\n");
+ schedule_work(&device->irq_err_work);
+ break;
+
+ // non-error condition interrupt
+ case GSL_INTR_YDX_RBBM_DISPLAY_UPDATE:
+ case GSL_INTR_YDX_RBBM_GUI_IDLE:
+
+ kos_event_signal(device->intr.evnt[id]);
+ break;
+
+ default:
+
+ break;
+ }
+}
+
+//----------------------------------------------------------------------------
+
+void
+kgsl_yamato_cpintrcallback(gsl_intrid_t id, void *cookie)
+{
+ gsl_device_t *device = (gsl_device_t *) cookie;
+
+ switch(id)
+ {
+ case GSL_INTR_YDX_CP_RING_BUFFER:
+#ifndef _LINUX
+ kos_event_signal(device->timestamp_event);
+#else
+ wake_up_interruptible_all(&(device->timestamp_waitq));
+#endif
+ break;
+ default:
+ break;
+ }
+}
+//----------------------------------------------------------------------------
+
+void
+kgsl_yamato_sqintrcallback(gsl_intrid_t id, void *cookie)
+{
+ (void) cookie; // unreferenced formal parameter
+ /*gsl_device_t *device = (gsl_device_t *) cookie;*/
+
+ switch(id)
+ {
+ // error condition interrupt
+ case GSL_INTR_YDX_SQ_PS_WATCHDOG:
+ case GSL_INTR_YDX_SQ_VS_WATCHDOG:
+
+ // todo: take appropriate action
+
+ break;
+
+ default:
+
+ break;
+ }
+}
+
+//----------------------------------------------------------------------------
+
+#ifdef _DEBUG
+
+static int
+kgsl_yamato_bist(gsl_device_t *device)
+{
+ int status = GSL_FAILURE;
+ unsigned int link[2];
+
+ if (!(device->flags & GSL_FLAGS_STARTED))
+ {
+ return (GSL_FAILURE);
+ }
+
+ status = kgsl_ringbuffer_bist(&device->ringbuffer);
+ if (status != GSL_SUCCESS)
+ {
+ return (status);
+ }
+
+ // interrupt bist
+ link[0] = pm4_type3_packet(PM4_INTERRUPT, 1);
+ link[1] = CP_INT_CNTL__RB_INT_MASK;
+ kgsl_ringbuffer_issuecmds(device, 1, &link[0], 2, GSL_CALLER_PROCESSID_GET());
+
+ status = kgsl_mmu_bist(&device->mmu);
+ if (status != GSL_SUCCESS)
+ {
+ return (status);
+ }
+
+ return (status);
+}
+#endif
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_yamato_isr(gsl_device_t *device)
+{
+ unsigned int status;
+#ifdef _DEBUG
+ mh_mmu_page_fault_u page_fault = {0};
+ mh_axi_error_u axi_error = {0};
+ mh_clnt_axi_id_reuse_u clnt_axi_id_reuse = {0};
+ rbbm_read_error_u read_error = {0};
+#endif // DEBUG
+
+ // determine if yamato is interrupting, and if so, which block
+ device->ftbl.device_regread(device, mmMASTER_INT_SIGNAL, &status);
+
+ if (status & MASTER_INT_SIGNAL__MH_INT_STAT)
+ {
+#ifdef _DEBUG
+ // obtain mh error information
+ device->ftbl.device_regread(device, mmMH_MMU_PAGE_FAULT, (unsigned int *)&page_fault);
+ device->ftbl.device_regread(device, mmMH_AXI_ERROR, (unsigned int *)&axi_error);
+ device->ftbl.device_regread(device, mmMH_CLNT_AXI_ID_REUSE, (unsigned int *)&clnt_axi_id_reuse);
+#endif // DEBUG
+
+ kgsl_intr_decode(device, GSL_INTR_BLOCK_YDX_MH);
+ }
+
+ if (status & MASTER_INT_SIGNAL__CP_INT_STAT)
+ {
+ kgsl_intr_decode(device, GSL_INTR_BLOCK_YDX_CP);
+ }
+
+ if (status & MASTER_INT_SIGNAL__RBBM_INT_STAT)
+ {
+#ifdef _DEBUG
+ // obtain rbbm error information
+ device->ftbl.device_regread(device, mmRBBM_READ_ERROR, (unsigned int *)&read_error);
+#endif // DEBUG
+
+ kgsl_intr_decode(device, GSL_INTR_BLOCK_YDX_RBBM);
+ }
+
+ if (status & MASTER_INT_SIGNAL__SQ_INT_STAT)
+ {
+ kgsl_intr_decode(device, GSL_INTR_BLOCK_YDX_SQ);
+ }
+
+ return (GSL_SUCCESS);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_yamato_tlbinvalidate(gsl_device_t *device, unsigned int reg_invalidate, unsigned int pid)
+{
+ unsigned int link[2];
+ mh_mmu_invalidate_u mh_mmu_invalidate = {0};
+
+ mh_mmu_invalidate.f.invalidate_all = 1;
+ mh_mmu_invalidate.f.invalidate_tc = 1;
+
+ // if possible, invalidate via command stream, otherwise via direct register writes
+ if (device->flags & GSL_FLAGS_STARTED)
+ {
+ link[0] = pm4_type0_packet(reg_invalidate, 1);
+ link[1] = mh_mmu_invalidate.val;
+
+ kgsl_ringbuffer_issuecmds(device, 1, &link[0], 2, pid);
+ }
+ else
+ {
+
+ device->ftbl.device_regwrite(device, reg_invalidate, mh_mmu_invalidate.val);
+ }
+
+ return (GSL_SUCCESS);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_yamato_setpagetable(gsl_device_t *device, unsigned int reg_ptbase, gpuaddr_t ptbase, unsigned int pid)
+{
+ unsigned int link[25];
+
+ // if there is an active draw context, set via command stream,
+ if (device->flags & GSL_FLAGS_STARTED)
+ {
+ // wait for graphics pipe to be idle
+ link[0] = pm4_type3_packet(PM4_WAIT_FOR_IDLE, 1);
+ link[1] = 0x00000000;
+
+ // set page table base
+ link[2] = pm4_type0_packet(reg_ptbase, 1);
+ link[3] = ptbase;
+
+ // HW workaround: to resolve MMU page fault interrupts caused by the VGT. It prevents
+ // the CP PFP from filling the VGT DMA request fifo too early, thereby ensuring that
+ // the VGT will not fetch vertex/bin data until after the page table base register
+ // has been updated.
+ //
+ // Two null DRAW_INDX_BIN packets are inserted right after the page table base update,
+ // followed by a wait for idle. The null packets will fill up the VGT DMA request
+ // fifo and prevent any further vertex/bin updates from occurring until the wait
+ // has finished.
+ link[4] = pm4_type3_packet(PM4_SET_CONSTANT, 2);
+ link[5] = (0x4 << 16) | (mmPA_SU_SC_MODE_CNTL - 0x2000);
+ link[6] = 0; // disable faceness generation
+ link[7] = pm4_type3_packet(PM4_SET_BIN_BASE_OFFSET, 1);
+ link[8] = device->mmu.dummyspace.gpuaddr;
+ link[9] = pm4_type3_packet(PM4_DRAW_INDX_BIN, 6);
+ link[10] = 0; // viz query info
+ link[11] = 0x0003C004; // draw indicator
+ link[12] = 0; // bin base
+ link[13] = 3; // bin size
+ link[14] = device->mmu.dummyspace.gpuaddr; // dma base
+ link[15] = 6; // dma size
+ link[16] = pm4_type3_packet(PM4_DRAW_INDX_BIN, 6);
+ link[17] = 0; // viz query info
+ link[18] = 0x0003C004; // draw indicator
+ link[19] = 0; // bin base
+ link[20] = 3; // bin size
+ link[21] = device->mmu.dummyspace.gpuaddr; // dma base
+ link[22] = 6; // dma size
+ link[23] = pm4_type3_packet(PM4_WAIT_FOR_IDLE, 1);
+ link[24] = 0x00000000;
+
+ kgsl_ringbuffer_issuecmds(device, 1, &link[0], 25, pid);
+ }
+ else
+ {
+ device->ftbl.device_idle(device, GSL_TIMEOUT_DEFAULT);
+ device->ftbl.device_regwrite(device, reg_ptbase, ptbase);
+ }
+
+ return (GSL_SUCCESS);
+}
+
+//----------------------------------------------------------------------------
+
+static void kgsl_yamato_irqerr(struct work_struct *work)
+{
+ gsl_device_t *device = &gsl_driver.device[GSL_DEVICE_YAMATO-1];
+ device->ftbl.device_destroy(device);
+}
+
+int
+kgsl_yamato_init(gsl_device_t *device)
+{
+ int status = GSL_FAILURE;
+
+ device->flags |= GSL_FLAGS_INITIALIZED;
+
+ kgsl_hal_setpowerstate(device->id, GSL_PWRFLAGS_POWER_ON, 100);
+
+ //We need to make sure all blocks are powered up and clocked before
+ //issuing a soft reset. The overrides will be turned off (set to 0)
+ //later in kgsl_yamato_start.
+ device->ftbl.device_regwrite(device, mmRBBM_PM_OVERRIDE1, 0xfffffffe);
+ device->ftbl.device_regwrite(device, mmRBBM_PM_OVERRIDE2, 0xffffffff);
+
+ // soft reset
+ device->ftbl.device_regwrite(device, mmRBBM_SOFT_RESET, 0xFFFFFFFF);
+ kos_sleep(50);
+ device->ftbl.device_regwrite(device, mmRBBM_SOFT_RESET, 0x00000000);
+
+ // RBBM control
+ device->ftbl.device_regwrite(device, mmRBBM_CNTL, 0x00004442);
+
+ // setup MH arbiter
+ device->ftbl.device_regwrite(device, mmMH_ARBITER_CONFIG, *(unsigned int *) &gsl_cfg_yamato_mharb);
+
+ // SQ_*_PROGRAM
+ device->ftbl.device_regwrite(device, mmSQ_VS_PROGRAM, 0x00000000);
+ device->ftbl.device_regwrite(device, mmSQ_PS_PROGRAM, 0x00000000);
+
+ // init interrupt
+ status = kgsl_intr_init(device);
+ if (status != GSL_SUCCESS)
+ {
+ device->ftbl.device_stop(device);
+ return (status);
+ }
+
+ // init mmu
+ status = kgsl_mmu_init(device);
+ if (status != GSL_SUCCESS)
+ {
+ device->ftbl.device_stop(device);
+ return (status);
+ }
+
+ /* handle error condition */
+ INIT_WORK(&device->irq_err_work, kgsl_yamato_irqerr);
+
+ return(status);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_yamato_close(gsl_device_t *device)
+{
+ if (device->refcnt == 0)
+ {
+ // shutdown mmu
+ kgsl_mmu_close(device);
+
+ // shutdown interrupt
+ kgsl_intr_close(device);
+
+ kgsl_hal_setpowerstate(device->id, GSL_PWRFLAGS_POWER_OFF, 0);
+
+ device->flags &= ~GSL_FLAGS_INITIALIZED;
+ }
+
+ return (GSL_SUCCESS);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_yamato_destroy(gsl_device_t *device)
+{
+ int i;
+ unsigned int pid;
+
+#ifdef _DEBUG
+ // for now, signal catastrophic failure in a brute force way
+ KOS_ASSERT(0);
+#endif // _DEBUG
+
+ // todo: - hard reset core?
+
+ kgsl_drawctxt_destroyall(device);
+
+ for (i = 0; i < GSL_CALLER_PROCESS_MAX; i++)
+ {
+ pid = device->callerprocess[i];
+ if (pid)
+ {
+ device->ftbl.device_stop(device);
+ kgsl_driver_destroy(pid);
+
+ // todo: terminate client process?
+ }
+ }
+
+ return (GSL_SUCCESS);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_yamato_start(gsl_device_t *device, gsl_flags_t flags)
+{
+ int status = GSL_FAILURE;
+ unsigned int pm1, pm2;
+
+ KGSL_DEBUG(GSL_DBGFLAGS_PM4, KGSL_DEBUG_DUMPFBSTART(device));
+
+ (void) flags; // unreferenced formal parameter
+
+ kgsl_hal_setpowerstate(device->id, GSL_PWRFLAGS_CLK_ON, 100);
+
+ // default power management override when running in safe mode
+ pm1 = (device->flags & GSL_FLAGS_SAFEMODE) ? 0xFFFFFFFE : 0x00000000;
+ pm2 = (device->flags & GSL_FLAGS_SAFEMODE) ? 0x000000FF : 0x00000000;
+ device->ftbl.device_regwrite(device, mmRBBM_PM_OVERRIDE1, pm1);
+ device->ftbl.device_regwrite(device, mmRBBM_PM_OVERRIDE2, pm2);
+
+ // enable rbbm interrupts
+ kgsl_intr_attach(&device->intr, GSL_INTR_YDX_RBBM_READ_ERROR, kgsl_yamato_rbbmintrcallback, (void *) device);
+ kgsl_intr_attach(&device->intr, GSL_INTR_YDX_RBBM_DISPLAY_UPDATE, kgsl_yamato_rbbmintrcallback, (void *) device);
+ kgsl_intr_attach(&device->intr, GSL_INTR_YDX_RBBM_GUI_IDLE, kgsl_yamato_rbbmintrcallback, (void *) device);
+ kgsl_intr_enable(&device->intr, GSL_INTR_YDX_RBBM_READ_ERROR);
+ kgsl_intr_enable(&device->intr, GSL_INTR_YDX_RBBM_DISPLAY_UPDATE);
+#if defined GSL_RB_TIMESTAMP_INTERUPT
+ kgsl_intr_attach(&device->intr, GSL_INTR_YDX_CP_RING_BUFFER, kgsl_yamato_cpintrcallback, (void *) device);
+ kgsl_intr_enable(&device->intr, GSL_INTR_YDX_CP_RING_BUFFER);
+#endif
+
+ //kgsl_intr_enable(&device->intr, GSL_INTR_YDX_RBBM_GUI_IDLE);
+
+ // enable sq interrupts
+ kgsl_intr_attach(&device->intr, GSL_INTR_YDX_SQ_PS_WATCHDOG, kgsl_yamato_sqintrcallback, (void *) device);
+ kgsl_intr_attach(&device->intr, GSL_INTR_YDX_SQ_VS_WATCHDOG, kgsl_yamato_sqintrcallback, (void *) device);
+ //kgsl_intr_enable(&device->intr, GSL_INTR_YDX_SQ_PS_WATCHDOG);
+ //kgsl_intr_enable(&device->intr, GSL_INTR_YDX_SQ_VS_WATCHDOG);
+
+ // init gmem
+ kgsl_yamato_gmeminit(device);
+
+ // init ring buffer
+ status = kgsl_ringbuffer_init(device);
+ if (status != GSL_SUCCESS)
+ {
+ device->ftbl.device_stop(device);
+ return (status);
+ }
+
+ // init draw context
+ status = kgsl_drawctxt_init(device);
+ if (status != GSL_SUCCESS)
+ {
+ device->ftbl.device_stop(device);
+ return (status);
+ }
+
+ device->flags |= GSL_FLAGS_STARTED;
+
+ KGSL_DEBUG(GSL_DBGFLAGS_BIST, kgsl_yamato_bist(device));
+
+ return (status);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_yamato_stop(gsl_device_t *device)
+{
+ // HW WORKAROUND: Ringbuffer hangs during next start if it is stopped without any
+ // commands ever being submitted. To avoid this, submit a dummy wait packet.
+ unsigned int cmds[2];
+ cmds[0] = pm4_type3_packet(PM4_WAIT_FOR_IDLE, 1);
+ cmds[0] = 0;
+ kgsl_ringbuffer_issuecmds(device, 0, cmds, 2, GSL_CALLER_PROCESSID_GET());
+
+ // disable rbbm interrupts
+ kgsl_intr_detach(&device->intr, GSL_INTR_YDX_RBBM_READ_ERROR);
+ kgsl_intr_detach(&device->intr, GSL_INTR_YDX_RBBM_DISPLAY_UPDATE);
+ kgsl_intr_detach(&device->intr, GSL_INTR_YDX_RBBM_GUI_IDLE);
+#if defined GSL_RB_TIMESTAMP_INTERUPT
+ kgsl_intr_detach(&device->intr, GSL_INTR_YDX_CP_RING_BUFFER);
+#endif
+
+ // disable sq interrupts
+ kgsl_intr_detach(&device->intr, GSL_INTR_YDX_SQ_PS_WATCHDOG);
+ kgsl_intr_detach(&device->intr, GSL_INTR_YDX_SQ_VS_WATCHDOG);
+
+ kgsl_drawctxt_close(device);
+
+ // shutdown ringbuffer
+ kgsl_ringbuffer_close(&device->ringbuffer);
+
+ // shutdown gmem
+ kgsl_yamato_gmemclose(device);
+
+ if(device->refcnt == 0)
+ {
+ kgsl_hal_setpowerstate(device->id, GSL_PWRFLAGS_CLK_OFF, 0);
+ }
+
+ device->flags &= ~GSL_FLAGS_STARTED;
+
+ return (GSL_SUCCESS);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_yamato_getproperty(gsl_device_t *device, gsl_property_type_t type, void *value, unsigned int sizebytes)
+{
+ int status = GSL_FAILURE;
+
+#ifndef _DEBUG
+ (void) sizebytes; // unreferenced formal parameter
+#endif
+
+ if (type == GSL_PROP_DEVICE_INFO)
+ {
+ gsl_devinfo_t *devinfo = (gsl_devinfo_t *) value;
+
+ KOS_ASSERT(sizebytes == sizeof(gsl_devinfo_t));
+
+ devinfo->device_id = device->id;
+ devinfo->chip_id = (gsl_chipid_t)device->chip_id;
+ devinfo->mmu_enabled = kgsl_mmu_isenabled(&device->mmu);
+ devinfo->gmem_hostbaseaddr = device->gmemspace.mmio_virt_base;
+ devinfo->gmem_gpubaseaddr = device->gmemspace.gpu_base;
+ devinfo->gmem_sizebytes = device->gmemspace.sizebytes;
+ devinfo->high_precision = 0;
+
+ status = GSL_SUCCESS;
+ }
+
+ return (status);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_yamato_setproperty(gsl_device_t *device, gsl_property_type_t type, void *value, unsigned int sizebytes)
+{
+ int status = GSL_FAILURE;
+
+#ifndef _DEBUG
+ (void) sizebytes; // unreferenced formal parameter
+#endif
+
+ if (type == GSL_PROP_DEVICE_POWER)
+ {
+ gsl_powerprop_t *power = (gsl_powerprop_t *) value;
+
+ KOS_ASSERT(sizebytes == sizeof(gsl_powerprop_t));
+
+ if (!(device->flags & GSL_FLAGS_SAFEMODE))
+ {
+ if (power->flags & GSL_PWRFLAGS_OVERRIDE_ON)
+ {
+ device->ftbl.device_regwrite(device, mmRBBM_PM_OVERRIDE1, 0xfffffffe);
+ device->ftbl.device_regwrite(device, mmRBBM_PM_OVERRIDE2, 0xffffffff);
+ }
+ else if (power->flags & GSL_PWRFLAGS_OVERRIDE_OFF)
+ {
+ device->ftbl.device_regwrite(device, mmRBBM_PM_OVERRIDE1, 0x00000000);
+ device->ftbl.device_regwrite(device, mmRBBM_PM_OVERRIDE2, 0x00000000);
+ }
+ else
+ {
+ kgsl_hal_setpowerstate(device->id, power->flags, power->value);
+ }
+ }
+
+ status = GSL_SUCCESS;
+ }
+ else if (type == GSL_PROP_DEVICE_DMI)
+ {
+ gsl_dmiprop_t *dmi = (gsl_dmiprop_t *) value;
+
+ KOS_ASSERT(sizebytes == sizeof(gsl_dmiprop_t));
+
+ //
+ // In order to enable DMI, it must not already be enabled.
+ //
+ switch (dmi->flags)
+ {
+ case GSL_DMIFLAGS_ENABLE_SINGLE:
+ case GSL_DMIFLAGS_ENABLE_DOUBLE:
+ if (!gsl_driver.dmi_state)
+ {
+ gsl_driver.dmi_state = OS_TRUE;
+ gsl_driver.dmi_mode = dmi->flags;
+ gsl_driver.dmi_frame = -1;
+ status = GSL_SUCCESS;
+ }
+ break;
+ case GSL_DMIFLAGS_DISABLE:
+ //
+ // To disable, we must be enabled.
+ //
+ if (gsl_driver.dmi_state)
+ {
+ gsl_driver.dmi_state = OS_FALSE;
+ gsl_driver.dmi_mode = -1;
+ gsl_driver.dmi_frame = -2;
+ status = GSL_SUCCESS;
+ }
+ break;
+ case GSL_DMIFLAGS_NEXT_BUFFER:
+ //
+ // Going to the next buffer is dependent upon what mod we are in with respect to single, double, or triple buffering.
+ // DMI must also be enabled.
+ //
+ if (gsl_driver.dmi_state)
+ {
+ unsigned int cmdbuf[10];
+ unsigned int *cmds = &cmdbuf[0];
+ int size;
+
+ if (gsl_driver.dmi_frame == -1)
+ {
+ size = 8;
+
+ *cmds++ = pm4_type0_packet(mmRBBM_DSPLY, 1);
+ switch (gsl_driver.dmi_mode)
+ {
+ case GSL_DMIFLAGS_ENABLE_SINGLE:
+ gsl_driver.dmi_max_frame = 1;
+ *cmds++ = 0x041000410;
+ break;
+ case GSL_DMIFLAGS_ENABLE_DOUBLE:
+ gsl_driver.dmi_max_frame = 2;
+ *cmds++ = 0x041000510;
+ break;
+ case GSL_DMIFLAGS_ENABLE_TRIPLE:
+ gsl_driver.dmi_max_frame = 3;
+ *cmds++ = 0x041000610;
+ break;
+ }
+ }
+ else
+ {
+ size = 6;
+ }
+
+
+ //
+ // Wait for 3D core to be idle and wait for vsync
+ //
+ *cmds++ = pm4_type0_packet(mmWAIT_UNTIL, 1);
+ *cmds++ = 0x00008000; // 3d idle
+ // *cmds++ = 0x00008008; // 3d idle & vsync
+
+ //
+ // Update the render latest register.
+ //
+ *cmds++ = pm4_type0_packet(mmRBBM_RENDER_LATEST, 1);
+ switch (gsl_driver.dmi_frame)
+ {
+ case 0:
+ //
+ // Render frame 0
+ //
+ *cmds++ = 0;
+ //
+ // Wait for our max frame # indicator to be de-asserted
+ //
+ *cmds++ = pm4_type0_packet(mmWAIT_UNTIL, 1);
+ *cmds++ = 0x00000008 << gsl_driver.dmi_max_frame;
+ gsl_driver.dmi_frame = 1;
+ break;
+ case -1:
+ case 1:
+ //
+ // Render frame 1
+ //
+ *cmds++ = 1;
+ *cmds++ = pm4_type0_packet(mmWAIT_UNTIL, 1);
+ *cmds++ = 0x00000010; // Wait for frame 0 to be deasserted
+ gsl_driver.dmi_frame = 2;
+ break;
+ case 2:
+ //
+ // Render frame 2
+ //
+ *cmds++ = 2;
+ *cmds++ = pm4_type0_packet(mmWAIT_UNTIL, 1);
+ *cmds++ = 0x00000020; // Wait for frame 1 to be deasserted
+ gsl_driver.dmi_frame = 0;
+ break;
+ }
+
+ // issue the commands
+ kgsl_ringbuffer_issuecmds(device, 1, &cmdbuf[0], size, GSL_CALLER_PROCESSID_GET());
+
+ gsl_driver.dmi_frame %= gsl_driver.dmi_max_frame;
+ status = GSL_SUCCESS;
+ }
+ break;
+ default:
+ status = GSL_FAILURE;
+ break;
+ }
+ }
+
+ return (status);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_yamato_idle(gsl_device_t *device, unsigned int timeout)
+{
+ int status = GSL_FAILURE;
+ gsl_ringbuffer_t *rb = &device->ringbuffer;
+ rbbm_status_u rbbm_status;
+
+ (void) timeout; // unreferenced formal parameter
+
+ KGSL_DEBUG(GSL_DBGFLAGS_DUMPX, KGSL_DEBUG_DUMPX(BB_DUMP_REGPOLL, device->id, mmRBBM_STATUS, 0x80000000, "kgsl_yamato_idle"));
+
+ GSL_RB_MUTEX_LOCK();
+
+ // first, wait until the CP has consumed all the commands in the ring buffer
+ if (rb->flags & GSL_FLAGS_STARTED)
+ {
+ do
+ {
+ GSL_RB_GET_READPTR(rb, &rb->rptr);
+
+ } while (rb->rptr != rb->wptr);
+ }
+
+ // now, wait for the GPU to finish its operations
+ for ( ; ; )
+ {
+ device->ftbl.device_regread(device, mmRBBM_STATUS, (unsigned int *)&rbbm_status);
+
+ if (!(rbbm_status.val & 0x80000000))
+ {
+ status = GSL_SUCCESS;
+ break;
+ }
+
+ }
+
+ GSL_RB_MUTEX_UNLOCK();
+
+ return (status);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_yamato_regread(gsl_device_t *device, unsigned int offsetwords, unsigned int *value)
+{
+ KGSL_DEBUG(GSL_DBGFLAGS_DUMPX,
+ {
+ if (!(gsl_driver.flags_debug & GSL_DBGFLAGS_DUMPX_WITHOUT_IFH))
+ {
+ if(offsetwords == mmCP_RB_RPTR || offsetwords == mmCP_RB_WPTR)
+ {
+ *value = device->ringbuffer.wptr;
+ return (GSL_SUCCESS);
+ }
+ }
+ });
+
+ GSL_HAL_REG_READ(device->id, (unsigned int) device->regspace.mmio_virt_base, offsetwords, value);
+
+ return (GSL_SUCCESS);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_yamato_regwrite(gsl_device_t *device, unsigned int offsetwords, unsigned int value)
+{
+ KGSL_DEBUG(GSL_DBGFLAGS_PM4, KGSL_DEBUG_DUMPREGWRITE(offsetwords, value));
+
+ GSL_HAL_REG_WRITE(device->id, (unsigned int) device->regspace.mmio_virt_base, offsetwords, value);
+
+ // idle device when running in safe mode
+ if (device->flags & GSL_FLAGS_SAFEMODE)
+ {
+ device->ftbl.device_idle(device, GSL_TIMEOUT_DEFAULT);
+ }
+
+ return (GSL_SUCCESS);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_yamato_waitirq(gsl_device_t *device, gsl_intrid_t intr_id, unsigned int *count, unsigned int timeout)
+{
+ int status = GSL_FAILURE_NOTSUPPORTED;
+
+ if (intr_id == GSL_INTR_YDX_CP_IB1_INT || intr_id == GSL_INTR_YDX_CP_IB2_INT ||
+ intr_id == GSL_INTR_YDX_CP_SW_INT || intr_id == GSL_INTR_YDX_RBBM_DISPLAY_UPDATE)
+ {
+ if (kgsl_intr_isenabled(&device->intr, intr_id) == GSL_SUCCESS)
+ {
+ // wait until intr completion event is received
+ if (kos_event_wait(device->intr.evnt[intr_id], timeout) == OS_SUCCESS)
+ {
+ *count = 1;
+ status = GSL_SUCCESS;
+ }
+ else
+ {
+ status = GSL_FAILURE_TIMEOUT;
+ }
+ }
+ }
+
+ return (status);
+}
+
+int kgsl_yamato_check_timestamp(gsl_deviceid_t device_id, gsl_timestamp_t timestamp)
+{
+ int i;
+ /* Reason to use a wait loop:
+ * When bus is busy, for example vpu is working too, the timestamp is
+ * possiblly not yet refreshed to memory by yamato. For most cases, it
+ * will hit on first loop cycle. So it don't effect performance.
+ */
+ for (i = 0; i < 10; i++) {
+ if (kgsl_cmdstream_check_timestamp(device_id, timestamp))
+ return 1;
+ udelay(10);
+ }
+ return 0;
+}
+
+int
+kgsl_yamato_waittimestamp(gsl_device_t *device, gsl_timestamp_t timestamp, unsigned int timeout)
+{
+#if defined GSL_RB_TIMESTAMP_INTERUPT
+#ifndef _LINUX
+ return kos_event_wait( device->timestamp_event, timeout );
+#else
+ int status = wait_event_interruptible_timeout(device->timestamp_waitq,
+ kgsl_yamato_check_timestamp(device->id, timestamp),
+ msecs_to_jiffies(timeout));
+ if (status > 0)
+ return GSL_SUCCESS;
+ else
+ return GSL_FAILURE;
+#endif
+#else
+ return (GSL_SUCCESS);
+#endif
+}
+//----------------------------------------------------------------------------
+
+int
+kgsl_yamato_runpending(gsl_device_t *device)
+{
+ (void) device;
+
+ return (GSL_SUCCESS);
+}
+
+//----------------------------------------------------------------------------
+
+int
+kgsl_yamato_getfunctable(gsl_functable_t *ftbl)
+{
+ ftbl->device_init = kgsl_yamato_init;
+ ftbl->device_close = kgsl_yamato_close;
+ ftbl->device_destroy = kgsl_yamato_destroy;
+ ftbl->device_start = kgsl_yamato_start;
+ ftbl->device_stop = kgsl_yamato_stop;
+ ftbl->device_getproperty = kgsl_yamato_getproperty;
+ ftbl->device_setproperty = kgsl_yamato_setproperty;
+ ftbl->device_idle = kgsl_yamato_idle;
+ ftbl->device_waittimestamp = kgsl_yamato_waittimestamp;
+ ftbl->device_regread = kgsl_yamato_regread;
+ ftbl->device_regwrite = kgsl_yamato_regwrite;
+ ftbl->device_waitirq = kgsl_yamato_waitirq;
+ ftbl->device_runpending = kgsl_yamato_runpending;
+ ftbl->intr_isr = kgsl_yamato_isr;
+ ftbl->mmu_tlbinvalidate = kgsl_yamato_tlbinvalidate;
+ ftbl->mmu_setpagetable = kgsl_yamato_setpagetable;
+ ftbl->cmdstream_issueibcmds = kgsl_ringbuffer_issueibcmds;
+ ftbl->context_create = kgsl_drawctxt_create;
+ ftbl->context_destroy = kgsl_drawctxt_destroy;
+
+ return (GSL_SUCCESS);
+}
+
+#endif
+
diff --git a/drivers/mxc/amd-gpu/common/pfp_microcode_nrt.inl b/drivers/mxc/amd-gpu/common/pfp_microcode_nrt.inl
new file mode 100644
index 000000000000..dfe61295e9ef
--- /dev/null
+++ b/drivers/mxc/amd-gpu/common/pfp_microcode_nrt.inl
@@ -0,0 +1,327 @@
+/* Copyright (c) 2008-2010, QUALCOMM Incorporated. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of QUALCOMM Incorporated nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef PFP_MICROCODE_NRT_H
+#define PFP_MICROCODE_NRT_H
+
+#define PFP_MICROCODE_VERSION 308308
+
+#define PFP_MICROCODE_SIZE_NRT 288
+
+uint32 aPFP_Microcode_nrt[PFP_MICROCODE_SIZE_NRT]={
+0xc60400,
+0x7e424b,
+0xa00000,
+0x7e828b,
+0x800001,
+0xc60400,
+0xcc4003,
+0x800000,
+0xd60003,
+0x800000,
+0xc62c00,
+0xc80c35,
+0x98c000,
+0xc80c35,
+0x880000,
+0xc80c1d,
+0x84000b,
+0xc60800,
+0x98c007,
+0xc61000,
+0x978003,
+0xcc4003,
+0xd60004,
+0x800000,
+0xcd0003,
+0x9783e8,
+0xc60400,
+0x800000,
+0xc60400,
+0x84000b,
+0xc60800,
+0x98c00c,
+0xc61000,
+0xcc4003,
+0xc61400,
+0xc61800,
+0x7d6d40,
+0xcd401e,
+0x978003,
+0xcd801e,
+0xd60004,
+0x800000,
+0xcd0003,
+0x800000,
+0xd6001f,
+0x84000b,
+0xc60800,
+0x98c007,
+0xc60c00,
+0xcc4003,
+0xcc8003,
+0xccc003,
+0x800000,
+0xd60003,
+0x800000,
+0xd6001f,
+0xc60800,
+0x348c08,
+0x98c006,
+0xc80c1e,
+0x98c000,
+0xc80c1e,
+0x800041,
+0xcc8007,
+0xcc8008,
+0xcc4003,
+0x800000,
+0xcc8003,
+0xc60400,
+0x1a9c07,
+0xca8821,
+0x95c3b9,
+0xc8102c,
+0x98800a,
+0x329418,
+0x9a4004,
+0xcc6810,
+0x042401,
+0xd00143,
+0xd00162,
+0xcd0002,
+0x7d514c,
+0xcd4003,
+0x9b8007,
+0x06a801,
+0x964003,
+0xc28000,
+0xcf4003,
+0x800001,
+0xc60400,
+0x800045,
+0xc60400,
+0x800001,
+0xc60400,
+0xc60800,
+0xc60c00,
+0xc8102d,
+0x349402,
+0x99000b,
+0xc8182e,
+0xcd4002,
+0xcd8002,
+0xd001e3,
+0xd001c3,
+0xccc003,
+0xcc801c,
+0xcd801d,
+0x800001,
+0xc60400,
+0xd00203,
+0x800000,
+0xd001c3,
+0xc8081f,
+0xc60c00,
+0xc80c20,
+0x988000,
+0xc8081f,
+0xcc4003,
+0xccc003,
+0xd60003,
+0xccc022,
+0xcc001f,
+0x800000,
+0xcc001f,
+0xc81c2f,
+0xc60400,
+0xc60800,
+0xc60c00,
+0xc81030,
+0x99c000,
+0xc81c2f,
+0xcc8021,
+0xcc4020,
+0x990011,
+0xc107ff,
+0xd00223,
+0xd00243,
+0x345402,
+0x7cb18b,
+0x7d95cc,
+0xcdc002,
+0xccc002,
+0xd00263,
+0x978005,
+0xccc003,
+0xc60800,
+0x80008a,
+0xc60c00,
+0x800000,
+0xd00283,
+0x97836b,
+0xc60400,
+0xd6001f,
+0x800001,
+0xc60400,
+0xd2000d,
+0xcc000d,
+0x800000,
+0xcc000d,
+0xc60800,
+0xc60c00,
+0xca1433,
+0xd022a0,
+0xcce000,
+0x99435c,
+0xcce005,
+0x800000,
+0x062001,
+0xc60800,
+0xc60c00,
+0xd202c3,
+0xcc8003,
+0xccc003,
+0xcce027,
+0x800000,
+0x062001,
+0xca0831,
+0x9883ff,
+0xca0831,
+0xd6001f,
+0x800001,
+0xc60400,
+0x0a2001,
+0x800001,
+0xc60400,
+0xd20009,
+0xd2000a,
+0xcc001f,
+0x800000,
+0xcc001f,
+0xd2000b,
+0xd2000c,
+0xcc001f,
+0x800000,
+0xcc001f,
+0xcc0023,
+0xcc4003,
+0xce0003,
+0x800000,
+0xd60003,
+0xd00303,
+0xcc0024,
+0xcc4003,
+0x800000,
+0xd60003,
+0xd00323,
+0xcc0025,
+0xcc4003,
+0x800000,
+0xd60003,
+0xd00343,
+0xcc0026,
+0xcc4003,
+0x800000,
+0xd60003,
+0x800000,
+0xd6001f,
+0x280401,
+0xd20001,
+0xcc4001,
+0xcc4006,
+0x8400e7,
+0xc40802,
+0xc40c02,
+0xcc402b,
+0x98831f,
+0xc63800,
+0x8400e7,
+0xcf802b,
+0x800000,
+0xd6001f,
+0xcc001f,
+0x880000,
+0xcc001f,
+0x000000,
+0x000000,
+0x000000,
+0x000000,
+0x000000,
+0x000000,
+0x000000,
+0x000000,
+0x000000,
+0x000000,
+0x000000,
+0x000000,
+0x000000,
+0x000000,
+0x000000,
+0x000000,
+0x000000,
+0x000000,
+0x000000,
+0x000000,
+0x000000,
+0x000000,
+0x0100c8,
+0x0200cd,
+0x0300d2,
+0x050004,
+0x1000d7,
+0x1700b6,
+0x220010,
+0x230038,
+0x250044,
+0x27005e,
+0x2d0070,
+0x2e007c,
+0x4b0009,
+0x34001d,
+0x36002d,
+0x3700a8,
+0x3b009b,
+0x3f009f,
+0x4400d9,
+0x4800c3,
+0x5000b9,
+0x5100be,
+0x5500c9,
+0x5600ce,
+0x5700d3,
+0x5d00b0,
+0x000006,
+0x000006,
+0x000006,
+0x000006,
+0x000006,
+0x000006,
+};
+
+#endif
diff --git a/drivers/mxc/amd-gpu/common/pm4_microcode.inl b/drivers/mxc/amd-gpu/common/pm4_microcode.inl
new file mode 100644
index 000000000000..03f6f4cd35e4
--- /dev/null
+++ b/drivers/mxc/amd-gpu/common/pm4_microcode.inl
@@ -0,0 +1,815 @@
+/* Copyright (c) 2008-2010, QUALCOMM Incorporated. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of QUALCOMM Incorporated nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef PM4_MICROCODE_H
+#define PM4_MICROCODE_H
+
+#define PM4_MICROCODE_VERSION 300684
+
+#define PM4_MICROCODE_SIZE 768
+
+
+#ifdef _PRIMLIB_INCLUDE
+extern uint32 aPM4_Microcode[PM4_MICROCODE_SIZE][3];
+#else
+uint32 aPM4_Microcode[PM4_MICROCODE_SIZE][3]={
+ { 0x00000000, 0xc0200400, 0x000 },
+ { 0x00000000, 0x00a0000a, 0x000 },
+ { 0x000001f3, 0x00204411, 0x000 },
+ { 0x01000000, 0x00204811, 0x000 },
+ { 0x00000000, 0x00400000, 0x004 },
+ { 0x0000ffff, 0x00284621, 0x000 },
+ { 0x00000000, 0xd9004800, 0x000 },
+ { 0x00000000, 0x00400000, 0x000 },
+ { 0x00000000, 0x34e00000, 0x000 },
+ { 0x00000000, 0x00600000, 0x28c },
+ { 0x0000ffff, 0xc0280a20, 0x000 },
+ { 0x00000000, 0x00294582, 0x000 },
+ { 0x00000000, 0xd9004800, 0x000 },
+ { 0x00000000, 0x00400000, 0x000 },
+ { 0x00000000, 0x00600000, 0x28c },
+ { 0x0000ffff, 0xc0284620, 0x000 },
+ { 0x00000000, 0xd9004800, 0x000 },
+ { 0x00000000, 0x00400000, 0x000 },
+ { 0x00000000, 0x00600000, 0x2a8 },
+ { 0x00000000, 0xc0200c00, 0x000 },
+ { 0x000021fc, 0x0029462c, 0x000 },
+ { 0x00000000, 0x00404803, 0x021 },
+ { 0x00000000, 0x00600000, 0x2a8 },
+ { 0x00000000, 0xc0200000, 0x000 },
+ { 0x00000000, 0xc0200c00, 0x000 },
+ { 0x000021fc, 0x0029462c, 0x000 },
+ { 0x00000000, 0x00204803, 0x000 },
+ { 0x00003fff, 0x002f022f, 0x000 },
+ { 0x00000000, 0x0ce00000, 0x000 },
+ { 0x0000a1fd, 0x0029462c, 0x000 },
+ { 0x00000000, 0xd9004800, 0x000 },
+ { 0x00000000, 0x00400000, 0x021 },
+ { 0x00000000, 0x00400000, 0x000 },
+ { 0x00001000, 0x00281223, 0x000 },
+ { 0x00001000, 0x002f0224, 0x000 },
+ { 0x00000000, 0x0ce00000, 0x000 },
+ { 0x000021f9, 0x0029462c, 0x000 },
+ { 0x0000000e, 0x00404811, 0x000 },
+ { 0x00000394, 0x00204411, 0x000 },
+ { 0x00000001, 0xc0404811, 0x000 },
+ { 0x00000000, 0x00600000, 0x2a8 },
+ { 0x000021f9, 0x0029462c, 0x000 },
+ { 0x00000008, 0xc0210a20, 0x000 },
+ { 0x00000000, 0x14e00000, 0x02d },
+ { 0x00000007, 0x00404811, 0x000 },
+ { 0x00000008, 0x00404811, 0x000 },
+ { 0x0000001f, 0x40280a20, 0x000 },
+ { 0x0000001b, 0x002f0222, 0x000 },
+ { 0x00000000, 0x0ce00000, 0x043 },
+ { 0x00000002, 0x002f0222, 0x000 },
+ { 0x00000000, 0x0ce00000, 0x04a },
+ { 0x00000003, 0x002f0222, 0x000 },
+ { 0x00000000, 0x0ce00000, 0x051 },
+ { 0x00000004, 0x002f0222, 0x000 },
+ { 0x00000000, 0x0ce00000, 0x058 },
+ { 0x00000014, 0x002f0222, 0x000 },
+ { 0x00000000, 0x0ce00000, 0x058 },
+ { 0x00000015, 0x002f0222, 0x000 },
+ { 0x00000000, 0x0ce00000, 0x060 },
+ { 0x000021f9, 0x0029462c, 0x000 },
+ { 0x00000000, 0xc0404802, 0x000 },
+ { 0x0000001f, 0x40280a20, 0x000 },
+ { 0x0000001b, 0x002f0222, 0x000 },
+ { 0x00000000, 0x0ce00000, 0x043 },
+ { 0x00000002, 0x002f0222, 0x000 },
+ { 0x00000000, 0x0ce00000, 0x04a },
+ { 0x00000000, 0x00400000, 0x051 },
+ { 0x0000001f, 0xc0210e20, 0x000 },
+ { 0x00000612, 0x00204411, 0x000 },
+ { 0x00000000, 0x00204803, 0x000 },
+ { 0x00000000, 0xc0204800, 0x000 },
+ { 0x00000000, 0xc0204800, 0x000 },
+ { 0x000021f9, 0x0029462c, 0x000 },
+ { 0x00000000, 0x00404802, 0x000 },
+ { 0x0000001e, 0xc0210e20, 0x000 },
+ { 0x00000600, 0x00204411, 0x000 },
+ { 0x00000000, 0x00204803, 0x000 },
+ { 0x00000000, 0xc0204800, 0x000 },
+ { 0x00000000, 0xc0204800, 0x000 },
+ { 0x000021f9, 0x0029462c, 0x000 },
+ { 0x00000000, 0x00404802, 0x000 },
+ { 0x0000001e, 0xc0210e20, 0x000 },
+ { 0x00000605, 0x00204411, 0x000 },
+ { 0x00000000, 0x00204803, 0x000 },
+ { 0x00000000, 0xc0204800, 0x000 },
+ { 0x00000000, 0xc0204800, 0x000 },
+ { 0x000021f9, 0x0029462c, 0x000 },
+ { 0x00000000, 0x00404802, 0x000 },
+ { 0x0000001f, 0x40280a20, 0x000 },
+ { 0x0000001f, 0xc0210e20, 0x000 },
+ { 0x0000060a, 0x00204411, 0x000 },
+ { 0x00000000, 0x00204803, 0x000 },
+ { 0x00000000, 0xc0204800, 0x000 },
+ { 0x00000000, 0xc0204800, 0x000 },
+ { 0x000021f9, 0x0029462c, 0x000 },
+ { 0x00000000, 0x00404802, 0x000 },
+ { 0x0000001f, 0xc0680a20, 0x2a8 },
+ { 0x000021f9, 0x0029462c, 0x000 },
+ { 0x00000000, 0x00404802, 0x000 },
+ { 0x8100ffff, 0x00204411, 0x000 },
+ { 0x00000001, 0x00204811, 0x000 },
+ { 0x00001fff, 0x40280a20, 0x000 },
+ { 0x80000000, 0x40280e20, 0x000 },
+ { 0x40000000, 0xc0281220, 0x000 },
+ { 0x00040000, 0x00694622, 0x2b2 },
+ { 0x00000000, 0x00201410, 0x000 },
+ { 0x00000000, 0x002f0223, 0x000 },
+ { 0x00000000, 0x0ae00000, 0x06d },
+ { 0x00000000, 0xc0401800, 0x070 },
+ { 0x00001fff, 0xc0281a20, 0x000 },
+ { 0x00040000, 0x00694626, 0x2b2 },
+ { 0x00000000, 0x00201810, 0x000 },
+ { 0x00000000, 0x002f0224, 0x000 },
+ { 0x00000000, 0x0ae00000, 0x073 },
+ { 0x00000000, 0xc0401c00, 0x076 },
+ { 0x00001fff, 0xc0281e20, 0x000 },
+ { 0x00040000, 0x00694627, 0x2b2 },
+ { 0x00000000, 0x00201c10, 0x000 },
+ { 0x00000000, 0x00204402, 0x000 },
+ { 0x00000000, 0x002820c5, 0x000 },
+ { 0x00000000, 0x004948e8, 0x000 },
+ { 0x00000000, 0x00600000, 0x28c },
+ { 0x00000010, 0x40210a20, 0x000 },
+ { 0x000000ff, 0x00280a22, 0x000 },
+ { 0x000007ff, 0x40280e20, 0x000 },
+ { 0x00000002, 0x00221e23, 0x000 },
+ { 0x00000005, 0xc0211220, 0x000 },
+ { 0x00080000, 0x00281224, 0x000 },
+ { 0x00000013, 0x00210224, 0x000 },
+ { 0x00000000, 0x14c00000, 0x084 },
+ { 0xa100ffff, 0x00204411, 0x000 },
+ { 0x00000000, 0x00204811, 0x000 },
+ { 0x00000000, 0x002f0222, 0x000 },
+ { 0x00000000, 0x0ae00000, 0x088 },
+ { 0x00000000, 0x0020162d, 0x000 },
+ { 0x00004000, 0x00500e23, 0x097 },
+ { 0x00000001, 0x002f0222, 0x000 },
+ { 0x00000000, 0x0ae00000, 0x08c },
+ { 0x00000001, 0x0020162d, 0x000 },
+ { 0x00004800, 0x00500e23, 0x097 },
+ { 0x00000002, 0x002f0222, 0x000 },
+ { 0x00000000, 0x0ae00000, 0x090 },
+ { 0x00000003, 0x0020162d, 0x000 },
+ { 0x00004900, 0x00500e23, 0x097 },
+ { 0x00000003, 0x002f0222, 0x000 },
+ { 0x00000000, 0x0ae00000, 0x094 },
+ { 0x00000002, 0x0020162d, 0x000 },
+ { 0x00004908, 0x00500e23, 0x097 },
+ { 0x00000012, 0x0020162d, 0x000 },
+ { 0x00002000, 0x00300e23, 0x000 },
+ { 0x00000000, 0x00290d83, 0x000 },
+ { 0x9400ffff, 0x00204411, 0x000 },
+ { 0x00000000, 0x002948e5, 0x000 },
+ { 0x00000000, 0x00294483, 0x000 },
+ { 0x00000000, 0x40201800, 0x000 },
+ { 0x00000000, 0xd9004800, 0x000 },
+ { 0x00000013, 0x00210224, 0x000 },
+ { 0x00000000, 0x14c00000, 0x000 },
+ { 0x9400ffff, 0x00204411, 0x000 },
+ { 0x00000000, 0x002948e5, 0x000 },
+ { 0x9300ffff, 0x00204411, 0x000 },
+ { 0x00000000, 0x00404806, 0x000 },
+ { 0x00000000, 0x00600000, 0x28c },
+ { 0x00000000, 0xc0200800, 0x000 },
+ { 0x00000000, 0xc0201400, 0x000 },
+ { 0x0000001f, 0x00211a25, 0x000 },
+ { 0x00000000, 0x14e00000, 0x000 },
+ { 0x000007ff, 0x00280e25, 0x000 },
+ { 0x00000010, 0x00211225, 0x000 },
+ { 0x8300ffff, 0x00204411, 0x000 },
+ { 0x00000000, 0x002f0224, 0x000 },
+ { 0x00000000, 0x0ae00000, 0x0ae },
+ { 0x00000000, 0x00203622, 0x000 },
+ { 0x00004000, 0x00504a23, 0x0bd },
+ { 0x00000001, 0x002f0224, 0x000 },
+ { 0x00000000, 0x0ae00000, 0x0b2 },
+ { 0x00000001, 0x00203622, 0x000 },
+ { 0x00004800, 0x00504a23, 0x0bd },
+ { 0x00000002, 0x002f0224, 0x000 },
+ { 0x00000000, 0x0ae00000, 0x0b6 },
+ { 0x00000003, 0x00203622, 0x000 },
+ { 0x00004900, 0x00504a23, 0x0bd },
+ { 0x00000003, 0x002f0224, 0x000 },
+ { 0x00000000, 0x0ae00000, 0x0ba },
+ { 0x00000002, 0x00203622, 0x000 },
+ { 0x00004908, 0x00504a23, 0x0bd },
+ { 0x00000012, 0x00203622, 0x000 },
+ { 0x00000000, 0x00290d83, 0x000 },
+ { 0x00002000, 0x00304a23, 0x000 },
+ { 0x8400ffff, 0x00204411, 0x000 },
+ { 0x00000000, 0xc0204800, 0x000 },
+ { 0x00000000, 0x21000000, 0x000 },
+ { 0x00000000, 0x00400000, 0x0a4 },
+ { 0x8100ffff, 0x00204411, 0x000 },
+ { 0x00000001, 0x00204811, 0x000 },
+ { 0x00040578, 0x00604411, 0x2b2 },
+ { 0x00000000, 0xc0400000, 0x000 },
+ { 0x00000000, 0xc0200c00, 0x000 },
+ { 0x00000000, 0xc0201000, 0x000 },
+ { 0x00000000, 0xc0201400, 0x000 },
+ { 0x00000000, 0xc0201800, 0x000 },
+ { 0x00007f00, 0x00280a21, 0x000 },
+ { 0x00004500, 0x002f0222, 0x000 },
+ { 0x00000000, 0x0ce00000, 0x0cd },
+ { 0x00000000, 0xc0201c00, 0x000 },
+ { 0x00000000, 0x17000000, 0x000 },
+ { 0x00000010, 0x00280a23, 0x000 },
+ { 0x00000010, 0x002f0222, 0x000 },
+ { 0x00000000, 0x0ce00000, 0x0d5 },
+ { 0x8100ffff, 0x00204411, 0x000 },
+ { 0x00000001, 0x00204811, 0x000 },
+ { 0x00040000, 0x00694624, 0x2b2 },
+ { 0x00000000, 0x00400000, 0x0d6 },
+ { 0x00000000, 0x00600000, 0x135 },
+ { 0x00000000, 0x002820d0, 0x000 },
+ { 0x00000007, 0x00280a23, 0x000 },
+ { 0x00000001, 0x002f0222, 0x000 },
+ { 0x00000000, 0x0ae00000, 0x0dd },
+ { 0x00000000, 0x002f00a8, 0x000 },
+ { 0x00000000, 0x04e00000, 0x0f6 },
+ { 0x00000000, 0x00400000, 0x0fd },
+ { 0x00000002, 0x002f0222, 0x000 },
+ { 0x00000000, 0x0ae00000, 0x0e2 },
+ { 0x00000000, 0x002f00a8, 0x000 },
+ { 0x00000000, 0x02e00000, 0x0f6 },
+ { 0x00000000, 0x00400000, 0x0fd },
+ { 0x00000003, 0x002f0222, 0x000 },
+ { 0x00000000, 0x0ae00000, 0x0e7 },
+ { 0x00000000, 0x002f00a8, 0x000 },
+ { 0x00000000, 0x0ce00000, 0x0f6 },
+ { 0x00000000, 0x00400000, 0x0fd },
+ { 0x00000004, 0x002f0222, 0x000 },
+ { 0x00000000, 0x0ae00000, 0x0ec },
+ { 0x00000000, 0x002f00a8, 0x000 },
+ { 0x00000000, 0x0ae00000, 0x0f6 },
+ { 0x00000000, 0x00400000, 0x0fd },
+ { 0x00000005, 0x002f0222, 0x000 },
+ { 0x00000000, 0x0ae00000, 0x0f1 },
+ { 0x00000000, 0x002f00a8, 0x000 },
+ { 0x00000000, 0x06e00000, 0x0f6 },
+ { 0x00000000, 0x00400000, 0x0fd },
+ { 0x00000006, 0x002f0222, 0x000 },
+ { 0x00000000, 0x0ae00000, 0x0f6 },
+ { 0x00000000, 0x002f00a8, 0x000 },
+ { 0x00000000, 0x08e00000, 0x0f6 },
+ { 0x00000000, 0x00400000, 0x0fd },
+ { 0x00007f00, 0x00280a21, 0x000 },
+ { 0x00004500, 0x002f0222, 0x000 },
+ { 0x00000000, 0x0ae00000, 0x000 },
+ { 0x00000008, 0x00210a23, 0x000 },
+ { 0x00000000, 0x14e00000, 0x11b },
+ { 0x00000000, 0xc0204400, 0x000 },
+ { 0x00000000, 0xc0404800, 0x000 },
+ { 0x00007f00, 0x00280a21, 0x000 },
+ { 0x00004500, 0x002f0222, 0x000 },
+ { 0x00000000, 0x0ae00000, 0x102 },
+ { 0x00000000, 0xc0200000, 0x000 },
+ { 0x00000000, 0xc0400000, 0x000 },
+ { 0x00000000, 0x00404c07, 0x0cd },
+ { 0x00000000, 0xc0201000, 0x000 },
+ { 0x00000000, 0xc0201400, 0x000 },
+ { 0x00000000, 0xc0201800, 0x000 },
+ { 0x00000000, 0xc0201c00, 0x000 },
+ { 0x00000000, 0x17000000, 0x000 },
+ { 0x8100ffff, 0x00204411, 0x000 },
+ { 0x00000001, 0x00204811, 0x000 },
+ { 0x00040000, 0x00694624, 0x2b2 },
+ { 0x00000000, 0x002820d0, 0x000 },
+ { 0x00000000, 0x002f00a8, 0x000 },
+ { 0x00000000, 0x0ce00000, 0x000 },
+ { 0x00000000, 0x00404c07, 0x107 },
+ { 0x00000000, 0xc0201000, 0x000 },
+ { 0x00000000, 0xc0201400, 0x000 },
+ { 0x00000000, 0xc0201800, 0x000 },
+ { 0x00000000, 0xc0201c00, 0x000 },
+ { 0x00000000, 0x17000000, 0x000 },
+ { 0x8100ffff, 0x00204411, 0x000 },
+ { 0x00000001, 0x00204811, 0x000 },
+ { 0x00040000, 0x00694624, 0x2b2 },
+ { 0x00000000, 0x002820d0, 0x000 },
+ { 0x00000000, 0x002f00a8, 0x000 },
+ { 0x00000000, 0x06e00000, 0x000 },
+ { 0x00000000, 0x00404c07, 0x113 },
+ { 0x0000060d, 0x00204411, 0x000 },
+ { 0x00000000, 0xc0204800, 0x000 },
+ { 0x0000860e, 0x00204411, 0x000 },
+ { 0x00000000, 0xd9004800, 0x000 },
+ { 0x00000000, 0x00400000, 0x000 },
+ { 0x8100ffff, 0x00204411, 0x000 },
+ { 0x00000009, 0x00204811, 0x000 },
+ { 0x0000060d, 0x00204411, 0x000 },
+ { 0x00000000, 0xc0204800, 0x000 },
+ { 0x00000000, 0x00404810, 0x000 },
+ { 0x8100ffff, 0x00204411, 0x000 },
+ { 0x00000001, 0x00204811, 0x000 },
+ { 0x00000000, 0xc0200800, 0x000 },
+ { 0x00007fff, 0x00281a22, 0x000 },
+ { 0x00040000, 0x00694626, 0x2b2 },
+ { 0x00000000, 0x00200c10, 0x000 },
+ { 0x00000000, 0xc0201000, 0x000 },
+ { 0x80000000, 0x00281a22, 0x000 },
+ { 0x00000000, 0x002f0226, 0x000 },
+ { 0x00000000, 0x0ce00000, 0x132 },
+ { 0x00000000, 0x00600000, 0x135 },
+ { 0x00000000, 0x00201c10, 0x000 },
+ { 0x00000000, 0x00300c67, 0x000 },
+ { 0x0000060d, 0x00204411, 0x000 },
+ { 0x00000000, 0x00204804, 0x000 },
+ { 0x00000000, 0x00404803, 0x000 },
+ { 0x8100ffff, 0x00204411, 0x000 },
+ { 0x00000000, 0x00204811, 0x000 },
+ { 0xa400ffff, 0x00204411, 0x000 },
+ { 0x00000000, 0x00204811, 0x000 },
+ { 0x000001ea, 0x00204411, 0x000 },
+ { 0x00000000, 0x00204804, 0x000 },
+ { 0x00000000, 0x1ac00000, 0x13b },
+ { 0x9e00ffff, 0x00204411, 0x000 },
+ { 0xdeadbeef, 0x00204811, 0x000 },
+ { 0x00000000, 0x1ae00000, 0x13e },
+ { 0xa400ffff, 0x00204411, 0x000 },
+ { 0x00000000, 0x0080480b, 0x000 },
+ { 0x000001f3, 0x00204411, 0x000 },
+ { 0xe0000000, 0xc0484a20, 0x000 },
+ { 0x00000000, 0xd9000000, 0x000 },
+ { 0x00000000, 0x00400000, 0x000 },
+ { 0x00000000, 0xc0200c00, 0x000 },
+ { 0x8c00ffff, 0x00204411, 0x000 },
+ { 0x00000000, 0x00204803, 0x000 },
+ { 0x00000fff, 0x00281223, 0x000 },
+ { 0x0000000f, 0x00203624, 0x000 },
+ { 0x00000003, 0x00381224, 0x000 },
+ { 0x00005000, 0x00301224, 0x000 },
+ { 0x0000000e, 0x00203624, 0x000 },
+ { 0x8700ffff, 0x00204411, 0x000 },
+ { 0x00000000, 0x00204804, 0x000 },
+ { 0x00000001, 0x00331224, 0x000 },
+ { 0x8600ffff, 0x00204411, 0x000 },
+ { 0x00000000, 0x00204804, 0x000 },
+ { 0x0000001d, 0x00211223, 0x000 },
+ { 0x00000020, 0x00222091, 0x000 },
+ { 0x00000003, 0x00381228, 0x000 },
+ { 0x8800ffff, 0x00204411, 0x000 },
+ { 0x00004fff, 0x00304a24, 0x000 },
+ { 0x00000010, 0x00211623, 0x000 },
+ { 0x00000fff, 0x00281625, 0x000 },
+ { 0x00000fff, 0x00281a23, 0x000 },
+ { 0x00000000, 0x00331ca6, 0x000 },
+ { 0x8f00ffff, 0x00204411, 0x000 },
+ { 0x00000003, 0x00384a27, 0x000 },
+ { 0x00000010, 0x00211223, 0x000 },
+ { 0x00000fff, 0x00281224, 0x000 },
+ { 0x0000000d, 0x00203624, 0x000 },
+ { 0x8b00ffff, 0x00204411, 0x000 },
+ { 0x00000000, 0x00204804, 0x000 },
+ { 0x00000003, 0x00381224, 0x000 },
+ { 0x00005000, 0x00301224, 0x000 },
+ { 0x0000000c, 0x00203624, 0x000 },
+ { 0x8500ffff, 0x00204411, 0x000 },
+ { 0x00000000, 0x00204804, 0x000 },
+ { 0x00000000, 0x00331cc8, 0x000 },
+ { 0x9000ffff, 0x00204411, 0x000 },
+ { 0x00000003, 0x00384a27, 0x000 },
+ { 0x00300000, 0x00493a2e, 0x000 },
+ { 0x00000000, 0x00202c11, 0x000 },
+ { 0x00000001, 0x00303e2f, 0x000 },
+ { 0x00000000, 0xc0200800, 0x000 },
+ { 0x00000000, 0x002f0222, 0x000 },
+ { 0x00000000, 0x0ce00000, 0x172 },
+ { 0x00000000, 0xd9000000, 0x000 },
+ { 0x00000000, 0x00400000, 0x000 },
+ { 0x00000000, 0x00600000, 0x28c },
+ { 0x8100ffff, 0x00204411, 0x000 },
+ { 0x00000002, 0x00204811, 0x000 },
+ { 0x00000000, 0x002f0230, 0x000 },
+ { 0x00000000, 0x0ae00000, 0x175 },
+ { 0x00000000, 0xc0200800, 0x000 },
+ { 0x00000009, 0x00210222, 0x000 },
+ { 0x00000000, 0x14c00000, 0x17d },
+ { 0x00000000, 0x00600000, 0x2af },
+ { 0x00000000, 0x00200c11, 0x000 },
+ { 0x00000016, 0x00203623, 0x000 },
+ { 0x00000000, 0x00210222, 0x000 },
+ { 0x00000000, 0x14c00000, 0x180 },
+ { 0x00000000, 0xc0200000, 0x000 },
+ { 0x00000001, 0x00210222, 0x000 },
+ { 0x00000000, 0x14c00000, 0x183 },
+ { 0x00000000, 0xc0200000, 0x000 },
+ { 0x00000002, 0x00210222, 0x000 },
+ { 0x00000000, 0x14c00000, 0x18d },
+ { 0x00000004, 0xc0203620, 0x000 },
+ { 0x00000005, 0xc0203620, 0x000 },
+ { 0x00000006, 0xc0203620, 0x000 },
+ { 0x00000007, 0xc0203620, 0x000 },
+ { 0x00000008, 0xc0203620, 0x000 },
+ { 0x00000009, 0xc0203620, 0x000 },
+ { 0x0000000a, 0xc0203620, 0x000 },
+ { 0x0000000b, 0xc0203620, 0x000 },
+ { 0x00000003, 0x00210222, 0x000 },
+ { 0x00000000, 0x14c00000, 0x1b5 },
+ { 0x00000000, 0xc0200c00, 0x000 },
+ { 0x8c00ffff, 0x00204411, 0x000 },
+ { 0x00000000, 0x00204803, 0x000 },
+ { 0x00000fff, 0x00281223, 0x000 },
+ { 0x0000000f, 0x00203624, 0x000 },
+ { 0x00000003, 0x00381224, 0x000 },
+ { 0x00005000, 0x00301224, 0x000 },
+ { 0x0000000e, 0x00203624, 0x000 },
+ { 0x8700ffff, 0x00204411, 0x000 },
+ { 0x00000000, 0x00204804, 0x000 },
+ { 0x00000001, 0x00331224, 0x000 },
+ { 0x8600ffff, 0x00204411, 0x000 },
+ { 0x00000000, 0x00204804, 0x000 },
+ { 0x0000001d, 0x00211223, 0x000 },
+ { 0x00000020, 0x00222091, 0x000 },
+ { 0x00000003, 0x00381228, 0x000 },
+ { 0x8800ffff, 0x00204411, 0x000 },
+ { 0x00004fff, 0x00304a24, 0x000 },
+ { 0x00000010, 0x00211623, 0x000 },
+ { 0x00000fff, 0x00281625, 0x000 },
+ { 0x00000fff, 0x00281a23, 0x000 },
+ { 0x00000000, 0x00331ca6, 0x000 },
+ { 0x8f00ffff, 0x00204411, 0x000 },
+ { 0x00000003, 0x00384a27, 0x000 },
+ { 0x00000010, 0x00211223, 0x000 },
+ { 0x00000fff, 0x00281224, 0x000 },
+ { 0x0000000d, 0x00203624, 0x000 },
+ { 0x8b00ffff, 0x00204411, 0x000 },
+ { 0x00000000, 0x00204804, 0x000 },
+ { 0x00000003, 0x00381224, 0x000 },
+ { 0x00005000, 0x00301224, 0x000 },
+ { 0x0000000c, 0x00203624, 0x000 },
+ { 0x8500ffff, 0x00204411, 0x000 },
+ { 0x00000000, 0x00204804, 0x000 },
+ { 0x00000000, 0x00331cc8, 0x000 },
+ { 0x9000ffff, 0x00204411, 0x000 },
+ { 0x00000003, 0x00384a27, 0x000 },
+ { 0x00300000, 0x00293a2e, 0x000 },
+ { 0x00000004, 0x00210222, 0x000 },
+ { 0x00000000, 0x14c00000, 0x1bd },
+ { 0xa300ffff, 0x00204411, 0x000 },
+ { 0x00000000, 0x40204800, 0x000 },
+ { 0x0000000a, 0xc0220e20, 0x000 },
+ { 0x00000011, 0x00203623, 0x000 },
+ { 0x000021f4, 0x00204411, 0x000 },
+ { 0x0000000a, 0x00614a2c, 0x2af },
+ { 0x00000005, 0x00210222, 0x000 },
+ { 0x00000000, 0x14c00000, 0x1c0 },
+ { 0x00000000, 0xc0200000, 0x000 },
+ { 0x00000006, 0x00210222, 0x000 },
+ { 0x00000000, 0x14c00000, 0x1c6 },
+ { 0x9c00ffff, 0x00204411, 0x000 },
+ { 0x0000001f, 0x40214a20, 0x000 },
+ { 0x9600ffff, 0x00204411, 0x000 },
+ { 0x00000000, 0xc0204800, 0x000 },
+ { 0x00000007, 0x00210222, 0x000 },
+ { 0x00000000, 0x14c00000, 0x1d0 },
+ { 0x3fffffff, 0x00283a2e, 0x000 },
+ { 0xc0000000, 0x40280e20, 0x000 },
+ { 0x00000000, 0x0029386e, 0x000 },
+ { 0x18000000, 0x40280e20, 0x000 },
+ { 0x00000016, 0x00203623, 0x000 },
+ { 0xa400ffff, 0x00204411, 0x000 },
+ { 0x00000000, 0xc0202c00, 0x000 },
+ { 0x00000000, 0x0020480b, 0x000 },
+ { 0x00000008, 0x00210222, 0x000 },
+ { 0x00000000, 0x14c00000, 0x1dc },
+ { 0x00000000, 0xc0200c00, 0x000 },
+ { 0x00000013, 0x00203623, 0x000 },
+ { 0x00000015, 0x00203623, 0x000 },
+ { 0x00000002, 0x40221220, 0x000 },
+ { 0x00000000, 0x00301083, 0x000 },
+ { 0x00000014, 0x00203624, 0x000 },
+ { 0x00000003, 0xc0210e20, 0x000 },
+ { 0x10000000, 0x00280e23, 0x000 },
+ { 0xefffffff, 0x00283a2e, 0x000 },
+ { 0x00000000, 0x0029386e, 0x000 },
+ { 0x00000000, 0x00400000, 0x000 },
+ { 0x00000000, 0x00600000, 0x28c },
+ { 0x00000000, 0xc0200800, 0x000 },
+ { 0x0000001f, 0x00210e22, 0x000 },
+ { 0x00000000, 0x14e00000, 0x000 },
+ { 0x000003ff, 0x00280e22, 0x000 },
+ { 0x00000018, 0x00211222, 0x000 },
+ { 0x00000004, 0x00301224, 0x000 },
+ { 0x00000000, 0x0020108d, 0x000 },
+ { 0x00002000, 0x00291224, 0x000 },
+ { 0x8300ffff, 0x00204411, 0x000 },
+ { 0x00000000, 0x00294984, 0x000 },
+ { 0x8400ffff, 0x00204411, 0x000 },
+ { 0x00000000, 0x00204803, 0x000 },
+ { 0x00000000, 0x21000000, 0x000 },
+ { 0x00000000, 0x00400000, 0x1de },
+ { 0x8200ffff, 0x00204411, 0x000 },
+ { 0x00000001, 0x00204811, 0x000 },
+ { 0x00000000, 0xc0200800, 0x000 },
+ { 0x00003fff, 0x40280e20, 0x000 },
+ { 0x00000010, 0xc0211220, 0x000 },
+ { 0x00000000, 0x002f0222, 0x000 },
+ { 0x00000000, 0x0ae00000, 0x1fb },
+ { 0x00000000, 0x2ae00000, 0x205 },
+ { 0x20000080, 0x00281e2e, 0x000 },
+ { 0x00000080, 0x002f0227, 0x000 },
+ { 0x00000000, 0x0ce00000, 0x1f8 },
+ { 0x00000000, 0x00401c0c, 0x1f9 },
+ { 0x00000010, 0x00201e2d, 0x000 },
+ { 0x000021f9, 0x00294627, 0x000 },
+ { 0x00000000, 0x00404811, 0x205 },
+ { 0x00000001, 0x002f0222, 0x000 },
+ { 0x00000000, 0x0ae00000, 0x23a },
+ { 0x00000000, 0x28e00000, 0x205 },
+ { 0x00800080, 0x00281e2e, 0x000 },
+ { 0x00000080, 0x002f0227, 0x000 },
+ { 0x00000000, 0x0ce00000, 0x202 },
+ { 0x00000000, 0x00401c0c, 0x203 },
+ { 0x00000010, 0x00201e2d, 0x000 },
+ { 0x000021f9, 0x00294627, 0x000 },
+ { 0x00000001, 0x00204811, 0x000 },
+ { 0x8100ffff, 0x00204411, 0x000 },
+ { 0x00000000, 0x002f0222, 0x000 },
+ { 0x00000000, 0x0ae00000, 0x20c },
+ { 0x00000003, 0x00204811, 0x000 },
+ { 0x0000000c, 0x0020162d, 0x000 },
+ { 0x0000000d, 0x00201a2d, 0x000 },
+ { 0xffdfffff, 0x00483a2e, 0x210 },
+ { 0x00000004, 0x00204811, 0x000 },
+ { 0x0000000e, 0x0020162d, 0x000 },
+ { 0x0000000f, 0x00201a2d, 0x000 },
+ { 0xffefffff, 0x00283a2e, 0x000 },
+ { 0x00000000, 0x00201c10, 0x000 },
+ { 0x00000000, 0x002f0067, 0x000 },
+ { 0x00000000, 0x04e00000, 0x205 },
+ { 0x8100ffff, 0x00204411, 0x000 },
+ { 0x00000006, 0x00204811, 0x000 },
+ { 0x8300ffff, 0x00204411, 0x000 },
+ { 0x00000000, 0x00204805, 0x000 },
+ { 0x8900ffff, 0x00204411, 0x000 },
+ { 0x00000000, 0x00204806, 0x000 },
+ { 0x8400ffff, 0x00204411, 0x000 },
+ { 0x00000000, 0x00204803, 0x000 },
+ { 0x00000000, 0x21000000, 0x000 },
+ { 0x00000000, 0x00601010, 0x28c },
+ { 0x0000000c, 0x00221e24, 0x000 },
+ { 0x00000000, 0x002f0222, 0x000 },
+ { 0x00000000, 0x0ae00000, 0x22d },
+ { 0x20000000, 0x00293a2e, 0x000 },
+ { 0x000021f7, 0x0029462c, 0x000 },
+ { 0x00000000, 0x002948c7, 0x000 },
+ { 0x8100ffff, 0x00204411, 0x000 },
+ { 0x00000005, 0x00204811, 0x000 },
+ { 0x0000000c, 0x00203630, 0x000 },
+ { 0x00000007, 0x00204811, 0x000 },
+ { 0x0000000d, 0x00203630, 0x000 },
+ { 0x9100ffff, 0x00204411, 0x000 },
+ { 0x00000000, 0x00204803, 0x000 },
+ { 0x00000000, 0x23000000, 0x000 },
+ { 0x8d00ffff, 0x00204411, 0x000 },
+ { 0x00000000, 0x00404803, 0x240 },
+ { 0x00800000, 0x00293a2e, 0x000 },
+ { 0x000021f6, 0x0029462c, 0x000 },
+ { 0x00000000, 0x002948c7, 0x000 },
+ { 0x8100ffff, 0x00204411, 0x000 },
+ { 0x00000005, 0x00204811, 0x000 },
+ { 0x0000000e, 0x00203630, 0x000 },
+ { 0x00000007, 0x00204811, 0x000 },
+ { 0x0000000f, 0x00203630, 0x000 },
+ { 0x9200ffff, 0x00204411, 0x000 },
+ { 0x00000000, 0x00204803, 0x000 },
+ { 0x00000000, 0x25000000, 0x000 },
+ { 0x8e00ffff, 0x00204411, 0x000 },
+ { 0x00000000, 0x00404803, 0x240 },
+ { 0x8300ffff, 0x00204411, 0x000 },
+ { 0x00000003, 0x00381224, 0x000 },
+ { 0x00005000, 0x00304a24, 0x000 },
+ { 0x8400ffff, 0x00204411, 0x000 },
+ { 0x00000000, 0x00204803, 0x000 },
+ { 0x00000000, 0x21000000, 0x000 },
+ { 0x8200ffff, 0x00204411, 0x000 },
+ { 0x00000000, 0x00404811, 0x000 },
+ { 0x00000003, 0x40280a20, 0x000 },
+ { 0xffffffe0, 0xc0280e20, 0x000 },
+ { 0x8100ffff, 0x00204411, 0x000 },
+ { 0x00000001, 0x00204811, 0x000 },
+ { 0x00000001, 0x002f0222, 0x000 },
+ { 0x00000000, 0x0ae00000, 0x24a },
+ { 0x000021f6, 0x0029122c, 0x000 },
+ { 0x00040000, 0x00494624, 0x24c },
+ { 0x000021f7, 0x0029122c, 0x000 },
+ { 0x00040000, 0x00294624, 0x000 },
+ { 0x00000000, 0x00600000, 0x2b2 },
+ { 0x00000000, 0x002f0222, 0x000 },
+ { 0x00000000, 0x0ce00000, 0x252 },
+ { 0x00000001, 0x002f0222, 0x000 },
+ { 0x00000000, 0x0ce00000, 0x252 },
+ { 0x00000000, 0x00481630, 0x258 },
+ { 0x00000fff, 0x00281630, 0x000 },
+ { 0x0000000c, 0x00211a30, 0x000 },
+ { 0x00000fff, 0x00281a26, 0x000 },
+ { 0x00000000, 0x002f0226, 0x000 },
+ { 0x00000000, 0x0ae00000, 0x258 },
+ { 0x00000000, 0xc0400000, 0x000 },
+ { 0x00040d02, 0x00604411, 0x2b2 },
+ { 0x00000000, 0x002f0222, 0x000 },
+ { 0x00000000, 0x0ae00000, 0x25d },
+ { 0x00000010, 0x00211e30, 0x000 },
+ { 0x00000fff, 0x00482630, 0x267 },
+ { 0x00000001, 0x002f0222, 0x000 },
+ { 0x00000000, 0x0ae00000, 0x261 },
+ { 0x00000fff, 0x00281e30, 0x000 },
+ { 0x00000200, 0x00402411, 0x267 },
+ { 0x00000000, 0x00281e30, 0x000 },
+ { 0x00000010, 0x00212630, 0x000 },
+ { 0x00000010, 0x00211a30, 0x000 },
+ { 0x00000000, 0x002f0226, 0x000 },
+ { 0x00000000, 0x0ae00000, 0x258 },
+ { 0x00000000, 0xc0400000, 0x000 },
+ { 0x00000003, 0x00381625, 0x000 },
+ { 0x00000003, 0x00381a26, 0x000 },
+ { 0x00000003, 0x00381e27, 0x000 },
+ { 0x00000003, 0x00382629, 0x000 },
+ { 0x00005000, 0x00302629, 0x000 },
+ { 0x0000060d, 0x00204411, 0x000 },
+ { 0x00000000, 0xc0204800, 0x000 },
+ { 0x00000000, 0x00204806, 0x000 },
+ { 0x00005000, 0x00302225, 0x000 },
+ { 0x00040000, 0x00694628, 0x2b2 },
+ { 0x00000001, 0x00302228, 0x000 },
+ { 0x00000000, 0x00202810, 0x000 },
+ { 0x00040000, 0x00694628, 0x2b2 },
+ { 0x00000001, 0x00302228, 0x000 },
+ { 0x00000000, 0x00200810, 0x000 },
+ { 0x00040000, 0x00694628, 0x2b2 },
+ { 0x00000001, 0x00302228, 0x000 },
+ { 0x00000000, 0x00201410, 0x000 },
+ { 0x0000060d, 0x00204411, 0x000 },
+ { 0x00000000, 0x00204803, 0x000 },
+ { 0x0000860e, 0x00204411, 0x000 },
+ { 0x00000000, 0x0020480a, 0x000 },
+ { 0x00000000, 0x00204802, 0x000 },
+ { 0x00000000, 0x00204805, 0x000 },
+ { 0x00000000, 0x002f0128, 0x000 },
+ { 0x00000000, 0x0ae00000, 0x282 },
+ { 0x00005000, 0x00302227, 0x000 },
+ { 0x0000000c, 0x00300e23, 0x000 },
+ { 0x00000003, 0x00331a26, 0x000 },
+ { 0x00000000, 0x002f0226, 0x000 },
+ { 0x00000000, 0x0ae00000, 0x270 },
+ { 0x00000000, 0x00400000, 0x000 },
+ { 0x000001f3, 0x00204411, 0x000 },
+ { 0x04000000, 0x00204811, 0x000 },
+ { 0x00000000, 0x00400000, 0x289 },
+ { 0x00000000, 0xc0600000, 0x28c },
+ { 0x00000000, 0x00400000, 0x000 },
+ { 0x00000000, 0x0ec00000, 0x28e },
+ { 0x00000000, 0x00800000, 0x000 },
+ { 0x000021f9, 0x0029462c, 0x000 },
+ { 0x00000005, 0x00204811, 0x000 },
+ { 0x00000000, 0x0020280c, 0x000 },
+ { 0x00000011, 0x0020262d, 0x000 },
+ { 0x00000000, 0x002f012c, 0x000 },
+ { 0x00000000, 0x0ae00000, 0x295 },
+ { 0x00000000, 0x00403011, 0x296 },
+ { 0x00000400, 0x0030322c, 0x000 },
+ { 0x8100ffff, 0x00204411, 0x000 },
+ { 0x00000002, 0x00204811, 0x000 },
+ { 0x0000000a, 0x0021262c, 0x000 },
+ { 0x00000000, 0x00210130, 0x000 },
+ { 0x00000000, 0x14c00000, 0x29d },
+ { 0xa500ffff, 0x00204411, 0x000 },
+ { 0x00000001, 0x00404811, 0x299 },
+ { 0xa500ffff, 0x00204411, 0x000 },
+ { 0x00000000, 0x00204811, 0x000 },
+ { 0x000021f4, 0x0029462c, 0x000 },
+ { 0x0000000a, 0x00214a2a, 0x000 },
+ { 0xa200ffff, 0x00204411, 0x000 },
+ { 0x00000001, 0x00204811, 0x000 },
+ { 0x8100ffff, 0x00204411, 0x000 },
+ { 0x00000002, 0x00204811, 0x000 },
+ { 0x00000000, 0x00210130, 0x000 },
+ { 0xdf7fffff, 0x00283a2e, 0x000 },
+ { 0x00000010, 0x0080362a, 0x000 },
+ { 0x9700ffff, 0x00204411, 0x000 },
+ { 0x00000000, 0x0020480c, 0x000 },
+ { 0xa200ffff, 0x00204411, 0x000 },
+ { 0x00000000, 0x00204811, 0x000 },
+ { 0x8100ffff, 0x00204411, 0x000 },
+ { 0x00000002, 0x00204811, 0x000 },
+ { 0x00000000, 0x00810130, 0x000 },
+ { 0x00000000, 0x00203011, 0x000 },
+ { 0x00000010, 0x0080362c, 0x000 },
+ { 0x00000000, 0xc0400000, 0x000 },
+ { 0x00000000, 0x1ac00000, 0x2b2 },
+ { 0x9f00ffff, 0x00204411, 0x000 },
+ { 0xdeadbeef, 0x00204811, 0x000 },
+ { 0x00000000, 0x1ae00000, 0x2b5 },
+ { 0x00000000, 0x00800000, 0x000 },
+ { 0x00000000, 0x00000000, 0x000 },
+ { 0x00000000, 0x00000000, 0x000 },
+ { 0x00000000, 0x00000000, 0x000 },
+ { 0x00000000, 0x00000000, 0x000 },
+ { 0x00000000, 0x00000000, 0x000 },
+ { 0x00000000, 0x00000000, 0x000 },
+ { 0x00000000, 0x00000000, 0x000 },
+ { 0x00000000, 0x00000000, 0x000 },
+ { 0x00000000, 0x00000000, 0x000 },
+ { 0x00000000, 0x00000000, 0x000 },
+ { 0x00000000, 0x00000000, 0x000 },
+ { 0x00000000, 0x00000000, 0x000 },
+ { 0x00000000, 0x00000000, 0x000 },
+ { 0x00000000, 0x00000000, 0x000 },
+ { 0x00000000, 0x00000000, 0x000 },
+ { 0x00000000, 0x00000000, 0x000 },
+ { 0x00000000, 0x00000000, 0x000 },
+ { 0x00000000, 0x00000000, 0x000 },
+ { 0x00000000, 0x00000000, 0x000 },
+ { 0x00000000, 0x00000000, 0x000 },
+ { 0x00000000, 0x00000000, 0x000 },
+ { 0x00000000, 0x00000000, 0x000 },
+ { 0x00000000, 0x00000000, 0x000 },
+ { 0x00000000, 0x00000000, 0x000 },
+ { 0x00000000, 0x00000000, 0x000 },
+ { 0x00000000, 0x00000000, 0x000 },
+ { 0x00000000, 0x00000000, 0x000 },
+ { 0x00000000, 0x00000000, 0x000 },
+ { 0x00000000, 0x00000000, 0x000 },
+ { 0x00000000, 0x00000000, 0x000 },
+ { 0x00000000, 0x00000000, 0x000 },
+ { 0x00000000, 0x00000000, 0x000 },
+ { 0x00000000, 0x00000000, 0x000 },
+ { 0x00000000, 0x00000000, 0x000 },
+ { 0x00000000, 0x00000000, 0x000 },
+ { 0x00000000, 0x00000000, 0x000 },
+ { 0x00000000, 0x00000000, 0x000 },
+ { 0x00000000, 0x00000000, 0x000 },
+ { 0x00000000, 0x00000000, 0x000 },
+ { 0x00000000, 0x00000000, 0x000 },
+ { 0x00000000, 0x00000000, 0x000 },
+ { 0x00000000, 0x00000000, 0x000 },
+ { 0x00000000, 0x00000000, 0x000 },
+ { 0x00000000, 0x00000000, 0x000 },
+ { 0x00000000, 0x00000000, 0x000 },
+ { 0x00020143, 0x00020002, 0x000 },
+ { 0x00020002, 0x00020002, 0x000 },
+ { 0x00020002, 0x00020002, 0x000 },
+ { 0x00020002, 0x01dd0002, 0x000 },
+ { 0x006301ee, 0x00280012, 0x000 },
+ { 0x00020002, 0x00020026, 0x000 },
+ { 0x00020002, 0x01ec0002, 0x000 },
+ { 0x00790242, 0x00020002, 0x000 },
+ { 0x00020002, 0x00020002, 0x000 },
+ { 0x00200012, 0x00020016, 0x000 },
+ { 0x00020002, 0x00020002, 0x000 },
+ { 0x011b00c5, 0x00020125, 0x000 },
+ { 0x00020141, 0x00020002, 0x000 },
+ { 0x00c50002, 0x0143002e, 0x000 },
+ { 0x00a2016b, 0x00020145, 0x000 },
+ { 0x00020002, 0x01200002, 0x000 },
+ { 0x00020002, 0x010f0103, 0x000 },
+ { 0x00090002, 0x000e000e, 0x000 },
+ { 0x0058003d, 0x00600002, 0x000 },
+ { 0x000200c1, 0x0002028a, 0x000 },
+ { 0x00020002, 0x00020002, 0x000 },
+ { 0x00020002, 0x00020002, 0x000 },
+ { 0x00020002, 0x00020002, 0x000 },
+ { 0x00020002, 0x00020002, 0x000 },
+ { 0x00020002, 0x00020002, 0x000 },
+ { 0x00020002, 0x00020002, 0x000 },
+ { 0x00020002, 0x00020002, 0x000 },
+ { 0x000502b1, 0x00020008, 0x000 },
+};
+
+#endif
+static const uint32 ME_JUMP_TABLE_START = 740;
+static const uint32 ME_JUMP_TABLE_END = 768;
+
+#endif
diff --git a/drivers/mxc/amd-gpu/include/api/gsl_displayapi.h b/drivers/mxc/amd-gpu/include/api/gsl_displayapi.h
new file mode 100644
index 000000000000..7ec10b0c2556
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/api/gsl_displayapi.h
@@ -0,0 +1,86 @@
+/* Copyright (c) 2008-2010, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora Forum nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef __GSL_DISPLAYAPI_H
+#define __GSL_DISPLAYAPI_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif // __cplusplus
+
+//////////////////////////////////////////////////////////////////////////////
+// entrypoints
+//////////////////////////////////////////////////////////////////////////////
+#ifdef __GSLDISPLAY_EXPORTS
+#define DISP_API OS_DLLEXPORT
+#else
+#define DISP_API OS_DLLIMPORT
+#endif // __GSLDISPLAY_EXPORTS
+
+
+//////////////////////////////////////////////////////////////////////////////
+// defines
+//////////////////////////////////////////////////////////////////////////////
+#define GSL_DISPLAY_PANEL_TOSHIBA_640x480 0
+#define GSL_DISPLAY_PANEL_HITACHI_240x320 1
+#define GSL_DISPLAY_PANEL_DEFAULT GSL_DISPLAY_PANEL_TOSHIBA_640x480
+
+
+//////////////////////////////////////////////////////////////////////////////
+// types
+//////////////////////////////////////////////////////////////////////////////
+typedef int gsl_display_id_t;
+typedef int gsl_surface_id_t;
+
+typedef struct _gsl_displaymode_t {
+ int panel_id;
+ int width;
+ int height;
+ int bpp;
+ int orientation;
+ int frequency;
+} gsl_displaymode_t;
+
+
+//////////////////////////////////////////////////////////////////////////////
+// prototypes
+//////////////////////////////////////////////////////////////////////////////
+DISP_API gsl_display_id_t gsl_display_open(gsl_devhandle_t devhandle, int panel_id);
+DISP_API int gsl_display_close(gsl_display_id_t display_id);
+DISP_API int gsl_display_getcount(void);
+DISP_API int gsl_display_setmode(gsl_display_id_t display_id, gsl_displaymode_t displaymode);
+DISP_API int gsl_display_getmode(gsl_display_id_t display_id, gsl_displaymode_t *displaymode);
+DISP_API gsl_surface_id_t gsl_display_setsurface(gsl_display_id_t display_id, void *buffer);
+DISP_API int gsl_display_getactivesurface(gsl_display_id_t display_id, void **buffer);
+DISP_API int gsl_display_flipsurface(gsl_display_id_t display_id, gsl_surface_id_t surface_id);
+
+#ifdef __cplusplus
+}
+#endif // __cplusplus
+
+#endif // __GSL_DISPLAYAPI_H
diff --git a/drivers/mxc/amd-gpu/include/api/gsl_klibapi.h b/drivers/mxc/amd-gpu/include/api/gsl_klibapi.h
new file mode 100644
index 000000000000..3c08545c2b68
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/api/gsl_klibapi.h
@@ -0,0 +1,136 @@
+/* Copyright (c) 2008-2010, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora Forum nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef __GSL_KLIBAPI_H
+#define __GSL_KLIBAPI_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif // __cplusplus
+
+#include "gsl_types.h"
+#include "gsl_properties.h"
+
+
+//////////////////////////////////////////////////////////////////////////////
+// entrypoints
+//////////////////////////////////////////////////////////////////////////////
+#ifdef __KGSLLIB_EXPORTS
+#define KGSL_API OS_DLLEXPORT
+#else
+#ifdef __KERNEL_MODE__
+#define KGSL_API extern
+#else
+#define KGSL_API OS_DLLIMPORT
+#endif
+#endif // __KGSLLIB_EXPORTS
+
+
+//////////////////////////////////////////////////////////////////////////////
+// version control
+//////////////////////////////////////////////////////////////////////////////
+#define KGSLLIB_NAME "AMD GSL Kernel Library"
+#define KGSLLIB_VERSION "0.1"
+
+
+//////////////////////////////////////////////////////////////////////////////
+// library API
+//////////////////////////////////////////////////////////////////////////////
+KGSL_API int kgsl_driver_init(void);
+KGSL_API int kgsl_driver_close(void);
+KGSL_API int kgsl_driver_entry(gsl_flags_t flags);
+KGSL_API int kgsl_driver_exit(void);
+KGSL_API int kgsl_driver_destroy(unsigned int pid);
+
+
+////////////////////////////////////////////////////////////////////////////
+// device API
+////////////////////////////////////////////////////////////////////////////
+KGSL_API int kgsl_device_start(gsl_deviceid_t device_id, gsl_flags_t flags);
+KGSL_API int kgsl_device_stop(gsl_deviceid_t device_id);
+KGSL_API int kgsl_device_idle(gsl_deviceid_t device_id, unsigned int timeout);
+KGSL_API int kgsl_device_isidle(gsl_deviceid_t device_id);
+KGSL_API int kgsl_device_getproperty(gsl_deviceid_t device_id, gsl_property_type_t type, void *value, unsigned int sizebytes);
+KGSL_API int kgsl_device_setproperty(gsl_deviceid_t device_id, gsl_property_type_t type, void *value, unsigned int sizebytes);
+KGSL_API int kgsl_device_regread(gsl_deviceid_t device_id, unsigned int offsetwords, unsigned int *value);
+KGSL_API int kgsl_device_regwrite(gsl_deviceid_t device_id, unsigned int offsetwords, unsigned int value);
+KGSL_API int kgsl_device_waitirq(gsl_deviceid_t device_id, gsl_intrid_t intr_id, unsigned int *count, unsigned int timeout);
+
+
+////////////////////////////////////////////////////////////////////////////
+// command API
+////////////////////////////////////////////////////////////////////////////
+KGSL_API int kgsl_cmdstream_issueibcmds(gsl_deviceid_t device_id, int drawctxt_index, gpuaddr_t ibaddr, int sizedwords, gsl_timestamp_t *timestamp, gsl_flags_t flags);
+KGSL_API gsl_timestamp_t kgsl_cmdstream_readtimestamp(gsl_deviceid_t device_id, gsl_timestamp_type_t type);
+KGSL_API int kgsl_cmdstream_freememontimestamp(gsl_deviceid_t device_id, gsl_memdesc_t *memdesc, gsl_timestamp_t timestamp, gsl_timestamp_type_t type);
+KGSL_API int kgsl_cmdstream_waittimestamp(gsl_deviceid_t device_id, gsl_timestamp_t timestamp, unsigned int timeout);
+KGSL_API int kgsl_cmdwindow_write(gsl_deviceid_t device_id, gsl_cmdwindow_t target, unsigned int addr, unsigned int data);
+KGSL_API int kgsl_add_timestamp(gsl_deviceid_t device_id, gsl_timestamp_t *timestamp);
+KGSL_API int kgsl_cmdstream_check_timestamp(gsl_deviceid_t device_id, gsl_timestamp_t timestamp);
+
+////////////////////////////////////////////////////////////////////////////
+// context API
+////////////////////////////////////////////////////////////////////////////
+KGSL_API int kgsl_context_create(gsl_deviceid_t device_id, gsl_context_type_t type, unsigned int *drawctxt_id, gsl_flags_t flags);
+KGSL_API int kgsl_context_destroy(gsl_deviceid_t device_id, unsigned int drawctxt_id);
+KGSL_API int kgsl_drawctxt_bind_gmem_shadow(gsl_deviceid_t device_id, unsigned int drawctxt_id, const gsl_rect_t* gmem_rect, unsigned int shadow_x, unsigned int shadow_y, const gsl_buffer_desc_t* shadow_buffer, unsigned int buffer_id);
+
+
+////////////////////////////////////////////////////////////////////////////
+// sharedmem API
+////////////////////////////////////////////////////////////////////////////
+KGSL_API int kgsl_sharedmem_alloc(gsl_deviceid_t device_id, gsl_flags_t flags, int sizebytes, gsl_memdesc_t *memdesc);
+KGSL_API int kgsl_sharedmem_free(gsl_memdesc_t *memdesc);
+KGSL_API int kgsl_sharedmem_read(const gsl_memdesc_t *memdesc, void *dst, unsigned int offsetbytes, unsigned int sizebytes, unsigned int touserspace);
+KGSL_API int kgsl_sharedmem_write(const gsl_memdesc_t *memdesc, unsigned int offsetbytes, void *src, unsigned int sizebytes, unsigned int fromuserspace);
+KGSL_API int kgsl_sharedmem_set(const gsl_memdesc_t *memdesc, unsigned int offsetbytes, unsigned int value, unsigned int sizebytes);
+KGSL_API unsigned int kgsl_sharedmem_largestfreeblock(gsl_deviceid_t device_id, gsl_flags_t flags);
+KGSL_API int kgsl_sharedmem_map(gsl_deviceid_t device_id, gsl_flags_t flags, const gsl_scatterlist_t *scatterlist, gsl_memdesc_t *memdesc);
+KGSL_API int kgsl_sharedmem_unmap(gsl_memdesc_t *memdesc);
+KGSL_API int kgsl_sharedmem_getmap(const gsl_memdesc_t *memdesc, gsl_scatterlist_t *scatterlist);
+KGSL_API int kgsl_sharedmem_cacheoperation(const gsl_memdesc_t *memdesc, unsigned int offsetbytes, unsigned int sizebytes, unsigned int operation);
+KGSL_API int kgsl_sharedmem_fromhostpointer(gsl_deviceid_t device_id, gsl_memdesc_t *memdesc, void* hostptr);
+
+
+////////////////////////////////////////////////////////////////////////////
+// interrupt API
+////////////////////////////////////////////////////////////////////////////
+KGSL_API void kgsl_intr_isr(void);
+
+
+////////////////////////////////////////////////////////////////////////////
+// TB dump API
+////////////////////////////////////////////////////////////////////////////
+KGSL_API int kgsl_tbdump_waitirq(void);
+KGSL_API int kgsl_tbdump_exportbmp(const void* addr, unsigned int format, unsigned int stride, unsigned int width, unsigned int height);
+
+#ifdef __cplusplus
+}
+#endif // __cplusplus
+
+#endif // __GSL_KLIBAPI_H
diff --git a/drivers/mxc/amd-gpu/include/api/gsl_libapi.h b/drivers/mxc/amd-gpu/include/api/gsl_libapi.h
new file mode 100644
index 000000000000..3d359e24f572
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/api/gsl_libapi.h
@@ -0,0 +1,143 @@
+/* Copyright (c) 2008-2010, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora Forum nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef __GSL_LIBAPI_H
+#define __GSL_LIBAPI_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif // __cplusplus
+
+#include "gsl_types.h"
+
+//////////////////////////////////////////////////////////////////////////////
+// entrypoints
+//////////////////////////////////////////////////////////////////////////////
+#ifdef __GSLLIB_EXPORTS
+#define GSL_API OS_DLLEXPORT
+#else
+#define GSL_API OS_DLLIMPORT
+#endif // __GSLLIB_EXPORTS
+
+
+//////////////////////////////////////////////////////////////////////////////
+// defines
+//////////////////////////////////////////////////////////////////////////////
+#define GSLLIB_NAME "AMD GSL User Library"
+#define GSLLIB_VERSION "0.1"
+
+
+//////////////////////////////////////////////////////////////////////////////
+// libary API
+//////////////////////////////////////////////////////////////////////////////
+GSL_API int gsl_library_open(gsl_flags_t flags);
+GSL_API int gsl_library_close(void);
+
+
+////////////////////////////////////////////////////////////////////////////
+// device API
+////////////////////////////////////////////////////////////////////////////
+GSL_API gsl_devhandle_t gsl_device_open(gsl_deviceid_t device_id, gsl_flags_t flags);
+GSL_API int gsl_device_close(gsl_devhandle_t devhandle);
+GSL_API int gsl_device_idle(gsl_devhandle_t devhandle, unsigned int timeout);
+GSL_API int gsl_device_isidle(gsl_devhandle_t devhandle);
+GSL_API int gsl_device_getcount(void);
+GSL_API int gsl_device_getinfo(gsl_devhandle_t devhandle, gsl_devinfo_t *devinfo);
+GSL_API int gsl_device_setpowerstate(gsl_devhandle_t devhandle, gsl_flags_t flags);
+GSL_API int gsl_device_setdmistate(gsl_devhandle_t devhandle, gsl_flags_t flags);
+GSL_API int gsl_device_waitirq(gsl_devhandle_t devhandle, gsl_intrid_t intr_id, unsigned int *count, unsigned int timeout);
+GSL_API int gsl_device_waittimestamp(gsl_devhandle_t devhandle, gsl_timestamp_t timestamp, unsigned int timeout);
+GSL_API int gsl_device_addtimestamp(gsl_devhandle_t devhandle, gsl_timestamp_t *timestamp);
+
+//////////////////////////////////////////////////////////////////////////////
+// direct register API
+//////////////////////////////////////////////////////////////////////////////
+GSL_API int gsl_register_read(gsl_devhandle_t devhandle, unsigned int offsetwords, unsigned int *data);
+
+
+//////////////////////////////////////////////////////////////////////////////
+// command API
+//////////////////////////////////////////////////////////////////////////////
+GSL_API int gsl_cp_issueibcommands(gsl_devhandle_t devhandle, gsl_ctxthandle_t ctxthandle, gpuaddr_t ibaddr, unsigned int sizewords, gsl_timestamp_t *timestamp, gsl_flags_t flags);
+GSL_API gsl_timestamp_t gsl_cp_readtimestamp(gsl_devhandle_t devhandle, gsl_timestamp_type_t type);
+GSL_API int gsl_cp_checktimestamp(gsl_devhandle_t devhandle, gsl_timestamp_t timestamp, gsl_timestamp_type_t type);
+GSL_API int gsl_cp_freememontimestamp(gsl_devhandle_t devhandle, gsl_memdesc_t *memdesc, gsl_timestamp_t timestamp, gsl_timestamp_type_t type);
+GSL_API int gsl_v3_issuecommand(gsl_devhandle_t devhandle, gsl_cmdwindow_t target, unsigned int addr, unsigned int data);
+
+
+//////////////////////////////////////////////////////////////////////////////
+// context API
+//////////////////////////////////////////////////////////////////////////////
+GSL_API gsl_ctxthandle_t gsl_context_create(gsl_devhandle_t devhandle, gsl_context_type_t type, gsl_flags_t flags);
+GSL_API int gsl_context_destroy(gsl_devhandle_t devhandle, gsl_ctxthandle_t ctxthandle);
+GSL_API int gsl_context_bind_gmem_shadow(gsl_devhandle_t devhandle, gsl_ctxthandle_t ctxthandle, const gsl_rect_t* gmem_rect, unsigned int shadow_x, unsigned int shadow_y, const gsl_buffer_desc_t* shadow_buffer, unsigned int buffer_id);
+
+
+
+//////////////////////////////////////////////////////////////////////////////
+// sharedmem API
+//////////////////////////////////////////////////////////////////////////////
+GSL_API int gsl_memory_alloc(gsl_deviceid_t device_id, unsigned int sizebytes, gsl_flags_t flags, gsl_memdesc_t *memdesc);
+GSL_API int gsl_memory_free(gsl_memdesc_t *memdesc);
+GSL_API int gsl_memory_read(const gsl_memdesc_t *memdesc, void *dst, unsigned int sizebytes, unsigned int offsetbytes);
+GSL_API int gsl_memory_write(const gsl_memdesc_t *memdesc, void *src, unsigned int sizebytes, unsigned int offsetbytes);
+GSL_API int gsl_memory_write_multiple(const gsl_memdesc_t *memdesc, void *src, unsigned int srcstridebytes, unsigned int dststridebytes, unsigned int blocksizebytes, unsigned int numblocks, unsigned int offsetbytes);
+GSL_API unsigned int gsl_memory_getlargestfreeblock(gsl_deviceid_t device_id, gsl_flags_t flags);
+GSL_API int gsl_memory_set(const gsl_memdesc_t *memdesc, unsigned int offsetbytes, unsigned int value, unsigned int sizebytes);
+GSL_API int gsl_memory_cacheoperation(const gsl_memdesc_t *memdesc, unsigned int offsetbytes, unsigned int sizebytes, unsigned int operation);
+GSL_API int gsl_memory_fromhostpointer(gsl_deviceid_t device_id, gsl_memdesc_t *memdesc, void* hostptr);
+
+#ifdef _DIRECT_MAPPED
+GSL_API unsigned int gsl_sharedmem_gethostaddr(const gsl_memdesc_t *memdesc);
+#endif // _DIRECT_MAPPED
+
+//////////////////////////////////////////////////////////////////////////////
+// address translation API
+//////////////////////////////////////////////////////////////////////////////
+GSL_API int gsl_translate_physaddr(void* virtAddr, unsigned int* physAddr);
+
+
+//////////////////////////////////////////////////////////////////////////////
+// TB dump API
+//////////////////////////////////////////////////////////////////////////////
+GSL_API int gsl_tbdump_waitirq();
+GSL_API int gsl_tbdump_exportbmp(const void* addr, unsigned int format, unsigned int stride, unsigned int width, unsigned int height);
+
+//////////////////////////////////////////////////////////////////////////////
+// OS specific APIs - need to go into their own gsl_libapi_platform.h file
+//////////////////////////////////////////////////////////////////////////////
+#ifdef WM7
+GSL_API int gsl_kos_wm7_surfobjfromhbitmap(HBITMAP hbitmap, SURFOBJ *surfobj);
+#endif // WM7
+
+
+#ifdef __cplusplus
+}
+#endif // __cplusplus
+
+#endif // __GSL_LIBAPI_H
diff --git a/drivers/mxc/amd-gpu/include/api/gsl_pm4types.h b/drivers/mxc/amd-gpu/include/api/gsl_pm4types.h
new file mode 100644
index 000000000000..891c7b645ad6
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/api/gsl_pm4types.h
@@ -0,0 +1,157 @@
+/* Copyright (c) 2002,2007-2009, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef __GSL_PM4TYPES_H
+#define __GSL_PM4TYPES_H
+
+
+//////////////////////////////////////////////////////////////////////////////
+// packet mask
+//////////////////////////////////////////////////////////////////////////////
+#define PM4_PKT_MASK 0xc0000000
+
+
+//////////////////////////////////////////////////////////////////////////////
+// packet types
+//////////////////////////////////////////////////////////////////////////////
+#define PM4_TYPE0_PKT ((unsigned int)0 << 30)
+#define PM4_TYPE1_PKT ((unsigned int)1 << 30)
+#define PM4_TYPE2_PKT ((unsigned int)2 << 30)
+#define PM4_TYPE3_PKT ((unsigned int)3 << 30)
+
+
+//////////////////////////////////////////////////////////////////////////////
+// type3 packets
+//////////////////////////////////////////////////////////////////////////////
+#define PM4_ME_INIT 0x48 // initialize CP's micro-engine
+
+#define PM4_NOP 0x10 // skip N 32-bit words to get to the next packet
+
+#define PM4_INDIRECT_BUFFER 0x3f // indirect buffer dispatch. prefetch parser uses this packet type to determine whether to pre-fetch the IB
+#define PM4_INDIRECT_BUFFER_PFD 0x37 // indirect buffer dispatch. same as IB, but init is pipelined
+
+#define PM4_WAIT_FOR_IDLE 0x26 // wait for the IDLE state of the engine
+#define PM4_WAIT_REG_MEM 0x3c // wait until a register or memory location is a specific value
+#define PM4_WAIT_REG_EQ 0x52 // wait until a register location is equal to a specific value
+#define PM4_WAT_REG_GTE 0x53 // wait until a register location is >= a specific value
+#define PM4_WAIT_UNTIL_READ 0x5c // wait until a read completes
+#define PM4_WAIT_IB_PFD_COMPLETE 0x5d // wait until all base/size writes from an IB_PFD packet have completed
+
+#define PM4_REG_RMW 0x21 // register read/modify/write
+#define PM4_REG_TO_MEM 0x3e // reads register in chip and writes to memory
+#define PM4_MEM_WRITE 0x3d // write N 32-bit words to memory
+#define PM4_MEM_WRITE_CNTR 0x4f // write CP_PROG_COUNTER value to memory
+#define PM4_COND_EXEC 0x44 // conditional execution of a sequence of packets
+#define PM4_COND_WRITE 0x45 // conditional write to memory or register
+
+#define PM4_EVENT_WRITE 0x46 // generate an event that creates a write to memory when completed
+#define PM4_EVENT_WRITE_SHD 0x58 // generate a VS|PS_done event
+#define PM4_EVENT_WRITE_CFL 0x59 // generate a cache flush done event
+#define PM4_EVENT_WRITE_ZPD 0x5b // generate a z_pass done event
+
+#define PM4_DRAW_INDX 0x22 // initiate fetch of index buffer and draw
+#define PM4_DRAW_INDX_2 0x36 // draw using supplied indices in packet
+#define PM4_DRAW_INDX_BIN 0x34 // initiate fetch of index buffer and binIDs and draw
+#define PM4_DRAW_INDX_2_BIN 0x35 // initiate fetch of bin IDs and draw using supplied indices
+
+#define PM4_VIZ_QUERY 0x23 // begin/end initiator for viz query extent processing
+#define PM4_SET_STATE 0x25 // fetch state sub-blocks and initiate shader code DMAs
+#define PM4_SET_CONSTANT 0x2d // load constant into chip and to memory
+#define PM4_IM_LOAD 0x27 // load sequencer instruction memory (pointer-based)
+#define PM4_IM_LOAD_IMMEDIATE 0x2b // load sequencer instruction memory (code embedded in packet)
+#define PM4_LOAD_CONSTANT_CONTEXT 0x2e // load constants from a location in memory
+#define PM4_INVALIDATE_STATE 0x3b // selective invalidation of state pointers
+
+#define PM4_SET_SHADER_BASES 0x4A // dynamically changes shader instruction memory partition
+#define PM4_SET_BIN_BASE_OFFSET 0x4B // program an offset that will added to the BIN_BASE value of the 3D_DRAW_INDX_BIN packet
+#define PM4_SET_BIN_MASK 0x50 // sets the 64-bit BIN_MASK register in the PFP
+#define PM4_SET_BIN_SELECT 0x51 // sets the 64-bit BIN_SELECT register in the PFP
+
+#define PM4_CONTEXT_UPDATE 0x5e // updates the current context, if needed
+#define PM4_INTERRUPT 0x40 // generate interrupt from the command stream
+
+#define PM4_IM_STORE 0x2c // copy sequencer instruction memory to system memory
+
+
+//////////////////////////////////////////////////////////////////////////////
+// packet header building macros
+//////////////////////////////////////////////////////////////////////////////
+#define pm4_type0_packet(regindx, cnt) (PM4_TYPE0_PKT | (((cnt)-1) << 16) | ((regindx) & 0x7FFF))
+#define pm4_type0_packet_for_sameregister(regindx, cnt) (PM4_TYPE0_PKT | (((cnt)-1) << 16) | ((1 << 15) | ((regindx) & 0x7FFF))
+#define pm4_type1_packet(reg0, reg1) (PM4_TYPE1_PKT | ((reg1) << 12) | (reg0))
+#define pm4_type3_packet(opcode, cnt) (PM4_TYPE3_PKT | (((cnt)-1) << 16) | (((opcode) & 0xFF) << 8))
+#define pm4_predicated_type3_packet(opcode, cnt) (PM4_TYPE3_PKT | (((cnt)-1) << 16) | (((opcode) & 0xFF) << 8) | 0x1))
+#define pm4_nop_packet(cnt) (PM4_TYPE3_PKT | (((cnt)-1) << 16) | (PM4_NOP << 8))
+
+
+//////////////////////////////////////////////////////////////////////////////
+// packet headers
+//////////////////////////////////////////////////////////////////////////////
+#define PM4_HDR_ME_INIT pm4_type3_packet(PM4_ME_INIT, 18)
+#define PM4_HDR_INDIRECT_BUFFER_PFD pm4_type3_packet(PM4_INDIRECT_BUFFER_PFD, 2)
+#define PM4_HDR_INDIRECT_BUFFER pm4_type3_packet(PM4_INDIRECT_BUFFER, 2)
+
+
+//////////////////////////////////////////////////////////////////////////////
+// types
+//////////////////////////////////////////////////////////////////////////////
+
+// -----------------------
+// pm4 type0 packet header
+// -----------------------
+typedef struct __pm4_type0
+{
+ unsigned int base_index :15;
+ unsigned int one_reg_wr :1;
+ unsigned int count :14;
+ unsigned int type :2;
+} pm4_type0;
+
+// -----------------------
+// pm4 type2 packet header
+// -----------------------
+typedef struct __pm4_type2
+{
+ unsigned int reserved :30;
+ unsigned int type :2;
+} pm4_type2;
+
+// -----------------------
+// pm4 type3 packet header
+// -----------------------
+typedef struct __pm4_type3
+{
+ unsigned int predicate :1;
+ unsigned int reserved1 :7;
+ unsigned int it_opcode :7;
+ unsigned int reserved2 :1;
+ unsigned int count :14;
+ unsigned int type :2;
+} pm4_type3;
+
+#endif // __GSL_PM4TYPES_H
diff --git a/drivers/mxc/amd-gpu/include/api/gsl_properties.h b/drivers/mxc/amd-gpu/include/api/gsl_properties.h
new file mode 100644
index 000000000000..520761fe3490
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/api/gsl_properties.h
@@ -0,0 +1,94 @@
+/* Copyright (c) 2008-2010, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora Forum nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef __GSL_PROPERTIES_H
+#define __GSL_PROPERTIES_H
+
+
+//////////////////////////////////////////////////////////////////////////////
+// types
+//////////////////////////////////////////////////////////////////////////////
+
+// --------------
+// property types
+// --------------
+typedef enum _gsl_property_type_t
+{
+ GSL_PROP_DEVICE_INFO = 0x00000001,
+ GSL_PROP_DEVICE_SHADOW = 0x00000002,
+ GSL_PROP_DEVICE_POWER = 0x00000003,
+ GSL_PROP_SHMEM = 0x00000004,
+ GSL_PROP_SHMEM_APERTURES = 0x00000005,
+ GSL_PROP_DEVICE_DMI = 0x00000006
+} gsl_property_type_t;
+
+// -----------------
+// aperture property
+// -----------------
+typedef struct _gsl_apertureprop_t {
+ unsigned int gpuaddr;
+ unsigned int hostaddr;
+} gsl_apertureprop_t;
+
+// --------------
+// shmem property
+// --------------
+typedef struct _gsl_shmemprop_t {
+ int numapertures;
+ unsigned int aperture_mask;
+ unsigned int aperture_shift;
+ gsl_apertureprop_t *aperture;
+} gsl_shmemprop_t;
+
+// -----------------------------
+// device shadow memory property
+// -----------------------------
+typedef struct _gsl_shadowprop_t {
+ unsigned int hostaddr;
+ unsigned int size;
+ gsl_flags_t flags;
+} gsl_shadowprop_t;
+
+// ---------------------
+// device power property
+// ---------------------
+typedef struct _gsl_powerprop_t {
+ unsigned int value;
+ gsl_flags_t flags;
+} gsl_powerprop_t;
+
+
+// ---------------------
+// device DMI property
+// ---------------------
+typedef struct _gsl_dmiprop_t {
+ unsigned int value;
+ gsl_flags_t flags;
+} gsl_dmiprop_t;
+
+#endif // __GSL_PROPERTIES_H
diff --git a/drivers/mxc/amd-gpu/include/api/gsl_types.h b/drivers/mxc/amd-gpu/include/api/gsl_types.h
new file mode 100644
index 000000000000..99d984966113
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/api/gsl_types.h
@@ -0,0 +1,479 @@
+/* Copyright (c) 2008-2010, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora Forum nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef __GSL_TYPES_H
+#define __GSL_TYPES_H
+
+#include "stddef.h"
+
+
+//////////////////////////////////////////////////////////////////////////////
+// status
+//////////////////////////////////////////////////////////////////////////////
+#define GSL_SUCCESS OS_SUCCESS
+#define GSL_FAILURE OS_FAILURE
+#define GSL_FAILURE_SYSTEMERROR OS_FAILURE_SYSTEMERROR
+#define GSL_FAILURE_DEVICEERROR OS_FAILURE_DEVICEERROR
+#define GSL_FAILURE_OUTOFMEM OS_FAILURE_OUTOFMEM
+#define GSL_FAILURE_BADPARAM OS_FAILURE_BADPARAM
+#define GSL_FAILURE_OFFSETINVALID OS_FAILURE_OFFSETINVALID
+#define GSL_FAILURE_NOTSUPPORTED OS_FAILURE_NOTSUPPORTED
+#define GSL_FAILURE_NOMOREAVAILABLE OS_FAILURE_NOMOREAVAILABLE
+#define GSL_FAILURE_NOTINITIALIZED OS_FAILURE_NOTINITIALIZED
+#define GSL_FAILURE_ALREADYINITIALIZED OS_FAILURE_ALREADYINITIALIZED
+#define GSL_FAILURE_TIMEOUT OS_FAILURE_TIMEOUT
+
+
+//////////////////////////////////////////////////////////////////////////////
+// memory allocation flags
+//////////////////////////////////////////////////////////////////////////////
+#define GSL_MEMFLAGS_ANY 0x00000000 // dont care
+
+#define GSL_MEMFLAGS_CHANNELANY 0x00000000
+#define GSL_MEMFLAGS_CHANNEL1 0x00000000
+#define GSL_MEMFLAGS_CHANNEL2 0x00000001
+#define GSL_MEMFLAGS_CHANNEL3 0x00000002
+#define GSL_MEMFLAGS_CHANNEL4 0x00000003
+
+#define GSL_MEMFLAGS_BANKANY 0x00000000
+#define GSL_MEMFLAGS_BANK1 0x00000010
+#define GSL_MEMFLAGS_BANK2 0x00000020
+#define GSL_MEMFLAGS_BANK3 0x00000040
+#define GSL_MEMFLAGS_BANK4 0x00000080
+
+#define GSL_MEMFLAGS_DIRANY 0x00000000
+#define GSL_MEMFLAGS_DIRTOP 0x00000100
+#define GSL_MEMFLAGS_DIRBOT 0x00000200
+
+#define GSL_MEMFLAGS_APERTUREANY 0x00000000
+#define GSL_MEMFLAGS_EMEM 0x00000000
+#define GSL_MEMFLAGS_CONPHYS 0x00001000
+
+#define GSL_MEMFLAGS_ALIGNANY 0x00000000 // minimum alignment is 32 bytes
+#define GSL_MEMFLAGS_ALIGN32 0x00000000
+#define GSL_MEMFLAGS_ALIGN64 0x00060000
+#define GSL_MEMFLAGS_ALIGN128 0x00070000
+#define GSL_MEMFLAGS_ALIGN256 0x00080000
+#define GSL_MEMFLAGS_ALIGN512 0x00090000
+#define GSL_MEMFLAGS_ALIGN1K 0x000A0000
+#define GSL_MEMFLAGS_ALIGN2K 0x000B0000
+#define GSL_MEMFLAGS_ALIGN4K 0x000C0000
+#define GSL_MEMFLAGS_ALIGN8K 0x000D0000
+#define GSL_MEMFLAGS_ALIGN16K 0x000E0000
+#define GSL_MEMFLAGS_ALIGN32K 0x000F0000
+#define GSL_MEMFLAGS_ALIGN64K 0x00100000
+#define GSL_MEMFLAGS_ALIGNPAGE GSL_MEMFLAGS_ALIGN4K
+
+#define GSL_MEMFLAGS_GPUREADWRITE 0x00000000
+#define GSL_MEMFLAGS_GPUREADONLY 0x01000000
+#define GSL_MEMFLAGS_GPUWRITEONLY 0x02000000
+#define GSL_MEMFLAGS_GPUNOACCESS 0x04000000
+
+#define GSL_MEMFLAGS_FORCEPAGESIZE 0x40000000
+#define GSL_MEMFLAGS_STRICTREQUEST 0x80000000 // fail the alloc if the flags cannot be honored
+
+#define GSL_MEMFLAGS_CHANNEL_MASK 0x0000000F
+#define GSL_MEMFLAGS_BANK_MASK 0x000000F0
+#define GSL_MEMFLAGS_DIR_MASK 0x00000F00
+#define GSL_MEMFLAGS_APERTURE_MASK 0x0000F000
+#define GSL_MEMFLAGS_ALIGN_MASK 0x00FF0000
+#define GSL_MEMFLAGS_GPUAP_MASK 0x0F000000
+
+#define GSL_MEMFLAGS_CHANNEL_SHIFT 0
+#define GSL_MEMFLAGS_BANK_SHIFT 4
+#define GSL_MEMFLAGS_DIR_SHIFT 8
+#define GSL_MEMFLAGS_APERTURE_SHIFT 12
+#define GSL_MEMFLAGS_ALIGN_SHIFT 16
+#define GSL_MEMFLAGS_GPUAP_SHIFT 24
+
+
+//////////////////////////////////////////////////////////////////////////////
+// debug flags
+//////////////////////////////////////////////////////////////////////////////
+#define GSL_DBGFLAGS_ALL 0xFFFFFFFF
+#define GSL_DBGFLAGS_DEVICE 0x00000001
+#define GSL_DBGFLAGS_CTXT 0x00000002
+#define GSL_DBGFLAGS_MEMMGR 0x00000004
+#define GSL_DBGFLAGS_MMU 0x00000008
+#define GSL_DBGFLAGS_POWER 0x00000010
+#define GSL_DBGFLAGS_IRQ 0x00000020
+#define GSL_DBGFLAGS_BIST 0x00000040
+#define GSL_DBGFLAGS_PM4 0x00000080
+#define GSL_DBGFLAGS_PM4MEM 0x00000100
+#define GSL_DBGFLAGS_PM4CHECK 0x00000200
+#define GSL_DBGFLAGS_DUMPX 0x00000400
+#define GSL_DBGFLAGS_DUMPX_WITHOUT_IFH 0x00000800
+#define GSL_DBGFLAGS_IFH 0x00001000
+#define GSL_DBGFLAGS_NULL 0x00002000
+
+
+//////////////////////////////////////////////////////////////////////////////
+// generic flag values
+//////////////////////////////////////////////////////////////////////////////
+#define GSL_FLAGS_NORMALMODE 0x00000000
+#define GSL_FLAGS_SAFEMODE 0x00000001
+#define GSL_FLAGS_INITIALIZED0 0x00000002
+#define GSL_FLAGS_INITIALIZED 0x00000004
+#define GSL_FLAGS_STARTED 0x00000008
+#define GSL_FLAGS_ACTIVE 0x00000010
+#define GSL_FLAGS_RESERVED0 0x00000020
+#define GSL_FLAGS_RESERVED1 0x00000040
+#define GSL_FLAGS_RESERVED2 0x00000080
+
+
+//////////////////////////////////////////////////////////////////////////////
+// power flags
+//////////////////////////////////////////////////////////////////////////////
+#define GSL_PWRFLAGS_POWER_OFF 0x00000001
+#define GSL_PWRFLAGS_POWER_ON 0x00000002
+#define GSL_PWRFLAGS_CLK_ON 0x00000004
+#define GSL_PWRFLAGS_CLK_OFF 0x00000008
+#define GSL_PWRFLAGS_OVERRIDE_ON 0x00000010
+#define GSL_PWRFLAGS_OVERRIDE_OFF 0x00000020
+
+//////////////////////////////////////////////////////////////////////////////
+// DMI flags
+//////////////////////////////////////////////////////////////////////////////
+#define GSL_DMIFLAGS_ENABLE_SINGLE 0x00000001 // Single buffered DMI
+#define GSL_DMIFLAGS_ENABLE_DOUBLE 0x00000002 // Double buffered DMI
+#define GSL_DMIFLAGS_ENABLE_TRIPLE 0x00000004 // Triple buffered DMI
+#define GSL_DMIFLAGS_DISABLE 0x00000008
+#define GSL_DMIFLAGS_NEXT_BUFFER 0x00000010
+
+//////////////////////////////////////////////////////////////////////////////
+// cache flags
+//////////////////////////////////////////////////////////////////////////////
+#define GSL_CACHEFLAGS_CLEAN 0x00000001 /* flush cache */
+#define GSL_CACHEFLAGS_INVALIDATE 0x00000002 /* invalidate cache */
+#define GSL_CACHEFLAGS_WRITECLEAN 0x00000004 /* flush write cache */
+
+
+//////////////////////////////////////////////////////////////////////////////
+// context
+//////////////////////////////////////////////////////////////////////////////
+#define GSL_CONTEXT_MAX 20
+#define GSL_CONTEXT_NONE 0
+#define GSL_CONTEXT_SAVE_GMEM 1
+#define GSL_CONTEXT_NO_GMEM_ALLOC 2
+
+
+//////////////////////////////////////////////////////////////////////////////
+// other
+//////////////////////////////////////////////////////////////////////////////
+#define GSL_TIMEOUT_NONE 0
+#define GSL_TIMEOUT_DEFAULT 0xFFFFFFFF
+
+#define GSL_PAGESIZE 0x1000
+#define GSL_PAGESIZE_SHIFT 12
+
+#define GSL_TIMESTAMP_EPSILON 20000
+
+//////////////////////////////////////////////////////////////////////////////
+// types
+//////////////////////////////////////////////////////////////////////////////
+typedef unsigned int gsl_devhandle_t;
+typedef unsigned int gsl_ctxthandle_t;
+typedef int gsl_timestamp_t;
+typedef unsigned int gsl_flags_t;
+typedef unsigned int gpuaddr_t;
+
+// ---------
+// device id
+// ---------
+typedef enum _gsl_deviceid_t
+{
+ GSL_DEVICE_ANY = 0,
+ GSL_DEVICE_YAMATO = 1,
+ GSL_DEVICE_G12 = 2,
+ GSL_DEVICE_MAX = 2,
+
+ GSL_DEVICE_FOOBAR = 0x7FFFFFFF
+} gsl_deviceid_t;
+
+// ----------------
+// chip revision id
+// ----------------
+//
+// coreid:8 majorrev:8 minorrev:8 patch:8
+//
+// coreid = 0x00 = YAMATO_DX
+// coreid = 0x80 = G12
+//
+
+#define COREID(x) ((((unsigned int)x & 0xFF) << 24))
+#define MAJORID(x) ((((unsigned int)x & 0xFF) << 16))
+#define MINORID(x) ((((unsigned int)x & 0xFF) << 8))
+#define PATCHID(x) ((((unsigned int)x & 0xFF) << 0))
+
+typedef enum _gsl_chipid_t
+{
+ GSL_CHIPID_YAMATODX_REV13 = (COREID(0x00) | MAJORID(0x01) | MINORID(0x03) | PATCHID(0x00)),
+ GSL_CHIPID_YAMATODX_REV14 = (COREID(0x00) | MAJORID(0x01) | MINORID(0x04) | PATCHID(0x00)),
+ GSL_CHIPID_YAMATODX_REV20 = (COREID(0x00) | MAJORID(0x02) | MINORID(0x00) | PATCHID(0x00)),
+ GSL_CHIPID_YAMATODX_REV21 = (COREID(0x00) | MAJORID(0x02) | MINORID(0x01) | PATCHID(0x00)),
+ GSL_CHIPID_YAMATODX_REV211 = (COREID(0x00) | MAJORID(0x02) | MINORID(0x01) | PATCHID(0x01)),
+ GSL_CHIPID_YAMATODX_REV22 = (COREID(0x00) | MAJORID(0x02) | MINORID(0x02) | PATCHID(0x00)),
+ GSL_CHIPID_YAMATODX_REV23 = (COREID(0x00) | MAJORID(0x02) | MINORID(0x03) | PATCHID(0x00)),
+ GSL_CHIPID_YAMATODX_REV231 = (COREID(0x00) | MAJORID(0x02) | MINORID(0x03) | PATCHID(0x01)),
+ GSL_CHIPID_YAMATODX_REV24 = (COREID(0x00) | MAJORID(0x02) | MINORID(0x04) | PATCHID(0x00)),
+ GSL_CHIPID_YAMATODX_REV25 = (COREID(0x00) | MAJORID(0x02) | MINORID(0x05) | PATCHID(0x00)),
+ GSL_CHIPID_YAMATODX_REV251 = (COREID(0x00) | MAJORID(0x02) | MINORID(0x05) | PATCHID(0x01)),
+ GSL_CHIPID_G12_REV00 = (int)(COREID(0x80) | MAJORID(0x00) | MINORID(0x00) | PATCHID(0x00)),
+ GSL_CHIPID_ERROR = (int)0xFFFFFFFF
+
+} gsl_chipid_t;
+
+#undef COREID
+#undef MAJORID
+#undef MINORID
+#undef PATCHID
+
+// -----------
+// device info
+// -----------
+typedef struct _gsl_devinfo_t {
+
+ gsl_deviceid_t device_id; // ID of this device
+ gsl_chipid_t chip_id;
+ int mmu_enabled; // mmu address translation enabled
+ unsigned int gmem_gpubaseaddr;
+ void * gmem_hostbaseaddr; // if gmem_hostbaseaddr is NULL, we would know its not mapped into mmio space
+ unsigned int gmem_sizebytes;
+ unsigned int high_precision; /* mx50 z160 has higher gradient/texture precision */
+
+} gsl_devinfo_t;
+
+// -------------------
+// device memory store
+// -------------------
+typedef struct _gsl_devmemstore_t {
+ volatile unsigned int soptimestamp;
+ unsigned int sbz;
+ volatile unsigned int eoptimestamp;
+ unsigned int sbz2;
+} gsl_devmemstore_t;
+
+#define GSL_DEVICE_MEMSTORE_OFFSET(field) offsetof(gsl_devmemstore_t, field)
+
+// -----------
+// aperture id
+// -----------
+typedef enum _gsl_apertureid_t
+{
+ GSL_APERTURE_EMEM = (GSL_MEMFLAGS_EMEM),
+ GSL_APERTURE_PHYS = (GSL_MEMFLAGS_CONPHYS >> GSL_MEMFLAGS_APERTURE_SHIFT),
+ GSL_APERTURE_MMU = (GSL_APERTURE_EMEM | 0x10000000),
+ GSL_APERTURE_MAX = 2,
+
+ GSL_APERTURE_FOOBAR = 0x7FFFFFFF
+} gsl_apertureid_t;
+
+// ----------
+// channel id
+// ----------
+typedef enum _gsl_channelid_t
+{
+ GSL_CHANNEL_1 = (GSL_MEMFLAGS_CHANNEL1 >> GSL_MEMFLAGS_CHANNEL_SHIFT),
+ GSL_CHANNEL_2 = (GSL_MEMFLAGS_CHANNEL2 >> GSL_MEMFLAGS_CHANNEL_SHIFT),
+ GSL_CHANNEL_3 = (GSL_MEMFLAGS_CHANNEL3 >> GSL_MEMFLAGS_CHANNEL_SHIFT),
+ GSL_CHANNEL_4 = (GSL_MEMFLAGS_CHANNEL4 >> GSL_MEMFLAGS_CHANNEL_SHIFT),
+ GSL_CHANNEL_MAX = 4,
+
+ GSL_CHANNEL_FOOBAR = 0x7FFFFFFF
+} gsl_channelid_t;
+
+// ----------------------
+// page access permission
+// ----------------------
+typedef enum _gsl_ap_t
+{
+ GSL_AP_NULL = 0x0,
+ GSL_AP_R = 0x1,
+ GSL_AP_W = 0x2,
+ GSL_AP_RW = 0x3,
+ GSL_AP_X = 0x4,
+ GSL_AP_RWX = 0x5,
+ GSL_AP_MAX = 0x6,
+
+ GSL_AP_FOOBAR = 0x7FFFFFFF
+} gsl_ap_t;
+
+// -------------
+// memory region
+// -------------
+typedef struct _gsl_memregion_t {
+ unsigned char *mmio_virt_base;
+ unsigned int mmio_phys_base;
+ gpuaddr_t gpu_base;
+ unsigned int sizebytes;
+} gsl_memregion_t;
+
+// ------------------------
+// shared memory allocation
+// ------------------------
+typedef struct _gsl_memdesc_t {
+ void *hostptr;
+ gpuaddr_t gpuaddr;
+ int size;
+ unsigned int priv; // private
+ unsigned int priv2; // private
+
+} gsl_memdesc_t;
+
+// ---------------------------------
+// physical page scatter/gatter list
+// ---------------------------------
+typedef struct _gsl_scatterlist_t {
+ int contiguous; // flag whether pages on the list are physically contiguous
+ unsigned int num;
+ unsigned int *pages;
+} gsl_scatterlist_t;
+
+// --------------
+// mem free queue
+// --------------
+//
+// this could be compressed down into the just the memdesc for the node
+//
+typedef struct _gsl_memnode_t {
+ gsl_timestamp_t timestamp;
+ gsl_memdesc_t memdesc;
+ unsigned int pid;
+ struct _gsl_memnode_t *next;
+} gsl_memnode_t;
+
+typedef struct _gsl_memqueue_t {
+ gsl_memnode_t *head;
+ gsl_memnode_t *tail;
+} gsl_memqueue_t;
+
+// ------------
+// timestamp id
+// ------------
+typedef enum _gsl_timestamp_type_t
+{
+ GSL_TIMESTAMP_CONSUMED = 1, // start-of-pipeline timestamp
+ GSL_TIMESTAMP_RETIRED = 2, // end-of-pipeline timestamp
+ GSL_TIMESTAMP_MAX = 2,
+
+ GSL_TIMESTAMP_FOOBAR = 0x7FFFFFFF
+} gsl_timestamp_type_t;
+
+// ------------
+// context type
+// ------------
+typedef enum _gsl_context_type_t
+{
+ GSL_CONTEXT_TYPE_GENERIC = 1,
+ GSL_CONTEXT_TYPE_OPENGL = 2,
+ GSL_CONTEXT_TYPE_OPENVG = 3,
+
+ GSL_CONTEXT_TYPE_FOOBAR = 0x7FFFFFFF
+} gsl_context_type_t;
+
+// ---------
+// rectangle
+// ---------
+typedef struct _gsl_rect_t {
+ unsigned int x;
+ unsigned int y;
+ unsigned int width;
+ unsigned int height;
+ unsigned int pitch;
+} gsl_rect_t;
+
+// -----------------------
+// pixel buffer descriptor
+// -----------------------
+typedef struct _gsl_buffer_desc_t {
+ gsl_memdesc_t data;
+ unsigned int width;
+ unsigned int height;
+ unsigned int pitch;
+ unsigned int format;
+ unsigned int enabled;
+} gsl_buffer_desc_t;
+
+// ---------------------
+// command window target
+// ---------------------
+typedef enum _gsl_cmdwindow_t
+{
+ GSL_CMDWINDOW_MIN = 0x00000000,
+ GSL_CMDWINDOW_2D = 0x00000000,
+ GSL_CMDWINDOW_3D = 0x00000001, // legacy
+ GSL_CMDWINDOW_MMU = 0x00000002,
+ GSL_CMDWINDOW_ARBITER = 0x000000FF,
+ GSL_CMDWINDOW_MAX = 0x000000FF,
+
+ GSL_CMDWINDOW_FOOBAR = 0x7FFFFFFF
+} gsl_cmdwindow_t;
+
+// ------------
+// interrupt id
+// ------------
+typedef enum _gsl_intrid_t
+{
+ GSL_INTR_YDX_MH_AXI_READ_ERROR = 0,
+ GSL_INTR_YDX_MH_AXI_WRITE_ERROR,
+ GSL_INTR_YDX_MH_MMU_PAGE_FAULT,
+
+ GSL_INTR_YDX_CP_SW_INT,
+ GSL_INTR_YDX_CP_T0_PACKET_IN_IB,
+ GSL_INTR_YDX_CP_OPCODE_ERROR,
+ GSL_INTR_YDX_CP_PROTECTED_MODE_ERROR,
+ GSL_INTR_YDX_CP_RESERVED_BIT_ERROR,
+ GSL_INTR_YDX_CP_IB_ERROR,
+ GSL_INTR_YDX_CP_IB2_INT,
+ GSL_INTR_YDX_CP_IB1_INT,
+ GSL_INTR_YDX_CP_RING_BUFFER,
+
+ GSL_INTR_YDX_RBBM_READ_ERROR,
+ GSL_INTR_YDX_RBBM_DISPLAY_UPDATE,
+ GSL_INTR_YDX_RBBM_GUI_IDLE,
+
+ GSL_INTR_YDX_SQ_PS_WATCHDOG,
+ GSL_INTR_YDX_SQ_VS_WATCHDOG,
+
+ GSL_INTR_G12_MH,
+ GSL_INTR_G12_G2D,
+ GSL_INTR_G12_FIFO,
+#ifndef _Z180
+ GSL_INTR_G12_FBC,
+#endif // _Z180
+
+ GSL_INTR_G12_MH_AXI_READ_ERROR,
+ GSL_INTR_G12_MH_AXI_WRITE_ERROR,
+ GSL_INTR_G12_MH_MMU_PAGE_FAULT,
+
+ GSL_INTR_COUNT,
+
+ GSL_INTR_FOOBAR = 0x7FFFFFFF
+} gsl_intrid_t;
+
+#endif // __GSL_TYPES_H
diff --git a/drivers/mxc/amd-gpu/include/api/gsl_utils.h b/drivers/mxc/amd-gpu/include/api/gsl_utils.h
new file mode 100644
index 000000000000..1078b634173d
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/api/gsl_utils.h
@@ -0,0 +1,43 @@
+/* Copyright (c) 2008-2010, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora Forum nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef __GSL_UTILS_H
+#define __GSL_UTILS_H
+
+
+//////////////////////////////////////////////////////////////////////////////
+// macros
+//////////////////////////////////////////////////////////////////////////////
+#define GSL_QUADPOW2_TO_SIZEBYTES(quadpow2) (8 << (quadpow2))
+#define GSL_QUADPOW2_TO_SIZEDWORDS(quadpow2) (2 << (quadpow2))
+#define GSL_POW2TEST(size) ((size) && !((size) & ((size) - 1)))
+#define GSL_POW2ALIGN_DOWN(addr, alignsize) ((addr) & ~((alignsize) - 1));
+#define GSL_POW2ALIGN_UP(addr, alignsize) (((addr) + ((alignsize) - 1)) & ~((alignsize) - 1))
+
+
+#endif // __GSL_UTILS_H
diff --git a/drivers/mxc/amd-gpu/include/gsl.h b/drivers/mxc/amd-gpu/include/gsl.h
new file mode 100644
index 000000000000..07d8e97dcee3
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/gsl.h
@@ -0,0 +1,79 @@
+/* Copyright (c) 2008-2010, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora Forum nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef __GSL_H
+#define __GSL_H
+
+//#define __KGSLLIB_EXPORTS
+#define __KERNEL_MODE__
+
+
+//////////////////////////////////////////////////////////////////////////////
+// forward typedefs
+//////////////////////////////////////////////////////////////////////////////
+//struct _gsl_device_t;
+typedef struct _gsl_device_t gsl_device_t;
+
+
+//////////////////////////////////////////////////////////////////////////////
+// includes
+//////////////////////////////////////////////////////////////////////////////
+#include "gsl_buildconfig.h"
+
+#include "kos_libapi.h"
+
+#include "gsl_klibapi.h"
+
+#ifdef GSL_BLD_YAMATO
+#include <reg/yamato.h>
+
+#include "gsl_pm4types.h"
+#include "gsl_utils.h"
+#include "gsl_drawctxt.h"
+#include "gsl_ringbuffer.h"
+#endif
+
+#ifdef GSL_BLD_G12
+#include <reg/g12_reg.h>
+
+#include "gsl_cmdwindow.h"
+#endif
+
+#include "gsl_debug.h"
+#include "gsl_mmu.h"
+#include "gsl_memmgr.h"
+#include "gsl_sharedmem.h"
+#include "gsl_intrmgr.h"
+#include "gsl_cmdstream.h"
+#include "gsl_device.h"
+#include "gsl_driver.h"
+#include "gsl_log.h"
+
+#include "gsl_config.h"
+
+#endif // __GSL_H
diff --git a/drivers/mxc/amd-gpu/include/gsl_buildconfig.h b/drivers/mxc/amd-gpu/include/gsl_buildconfig.h
new file mode 100644
index 000000000000..4e6be4da7dc4
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/gsl_buildconfig.h
@@ -0,0 +1,55 @@
+/* Copyright (c) 2008-2010, Advanced Micro Devices. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Advanced Micro Devices nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+/*
+ * Copyright (C) 2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+#ifndef __GSL__BUILDCONFIG_H
+#define __GSL__BUILDCONFIG_H
+
+#define GSL_BLD_YAMATO
+#define GSL_BLD_G12
+
+#define GSL_LOCKING_COARSEGRAIN
+
+#define GSL_STATS_MEM
+#define GSL_STATS_RINGBUFFER
+#define GSL_STATS_MMU
+
+#define GSL_RB_USE_MEM_RPTR
+#define GSL_RB_USE_MEM_TIMESTAMP
+#define GSL_RB_TIMESTAMP_INTERUPT
+/* #define GSL_RB_USE_WPTR_POLLING */
+
+/* #define GSL_MMU_PAGETABLE_PERPROCESS */
+
+#define GSL_CALLER_PROCESS_MAX 10
+#define GSL_SHMEM_MAX_APERTURES 3
+
+#endif /* __GSL__BUILDCONFIG_H */
diff --git a/drivers/mxc/amd-gpu/include/gsl_cmdstream.h b/drivers/mxc/amd-gpu/include/gsl_cmdstream.h
new file mode 100644
index 000000000000..550d5d0005ab
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/gsl_cmdstream.h
@@ -0,0 +1,62 @@
+/* Copyright (c) 2009-2010, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef __GSL_CMDSTREAM_H
+#define __GSL_CMDSTREAM_H
+
+
+//////////////////////////////////////////////////////////////////////////////
+// defines
+//////////////////////////////////////////////////////////////////////////////
+
+#ifdef VG_HDK
+#define GSL_CMDSTREAM_GET_SOP_TIMESTAMP(device, data)
+#else
+#define GSL_CMDSTREAM_GET_SOP_TIMESTAMP(device, data) kgsl_sharedmem_read0(&device->memstore, (data), GSL_DEVICE_MEMSTORE_OFFSET(soptimestamp), 4, false)
+#endif
+
+#ifdef VG_HDK
+#define GSL_CMDSTREAM_GET_EOP_TIMESTAMP(device, data) (*((int*)data) = (gsl_driver.device[GSL_DEVICE_G12-1]).timestamp)
+#else
+#define GSL_CMDSTREAM_GET_EOP_TIMESTAMP(device, data) kgsl_sharedmem_read0(&device->memstore, (data), GSL_DEVICE_MEMSTORE_OFFSET(eoptimestamp), 4, false)
+#endif
+
+
+//////////////////////////////////////////////////////////////////////////////
+// types
+//////////////////////////////////////////////////////////////////////////////
+
+//////////////////////////////////////////////////////////////////////////////
+// functions
+//////////////////////////////////////////////////////////////////////////////
+gsl_timestamp_t kgsl_cmdstream_readtimestamp0(gsl_deviceid_t device_id, gsl_timestamp_type_t type);
+void kgsl_cmdstream_memqueue_drain(gsl_device_t *device);
+int kgsl_cmdstream_init(gsl_device_t *device);
+int kgsl_cmdstream_close(gsl_device_t *device);
+
+#endif // __GSL_CMDSTREAM_H
diff --git a/drivers/mxc/amd-gpu/include/gsl_cmdwindow.h b/drivers/mxc/amd-gpu/include/gsl_cmdwindow.h
new file mode 100644
index 000000000000..0152dd75a631
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/gsl_cmdwindow.h
@@ -0,0 +1,51 @@
+/* Copyright (c) 2002,2007-2010, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided
+ * with the distribution.
+ * * Neither the name of Code Aurora Forum, Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef __GSL_CMDWINDOW_H
+#define __GSL_CMDWINDOW_H
+
+
+//////////////////////////////////////////////////////////////////////////////
+// defines
+//////////////////////////////////////////////////////////////////////////////
+#ifndef _Z180
+#define GSL_G12_INTR_COUNT 4
+#else
+#define GSL_G12_INTR_COUNT 3
+#endif
+
+
+//////////////////////////////////////////////////////////////////////////////
+// prototypes
+//////////////////////////////////////////////////////////////////////////////
+int kgsl_cmdwindow_init(gsl_device_t *device);
+int kgsl_cmdwindow_close(gsl_device_t *device);
+int kgsl_cmdwindow_write0(gsl_deviceid_t device_id, gsl_cmdwindow_t target, unsigned int addr, unsigned int data);
+
+#endif // __GSL_CMDWINDOW_H
diff --git a/drivers/mxc/amd-gpu/include/gsl_config.h b/drivers/mxc/amd-gpu/include/gsl_config.h
new file mode 100644
index 000000000000..aa911b4096a3
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/gsl_config.h
@@ -0,0 +1,221 @@
+/* Copyright (c) 2008-2010, Advanced Micro Devices. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Advanced Micro Devices nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+/*
+ * Copyright (C) 2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+#ifndef __GSL__CONFIG_H
+#define __GSL__CONFIG_H
+
+/* ------------------------
+ * Yamato ringbuffer config
+ * ------------------------ */
+static const unsigned int gsl_cfg_rb_sizelog2quadwords = GSL_RB_SIZE_32K;
+static const unsigned int gsl_cfg_rb_blksizequadwords = GSL_RB_SIZE_16;
+
+/* ------------------------
+ * Yamato MH arbiter config
+ * ------------------------ */
+static const mh_arbiter_config_t gsl_cfg_yamato_mharb = {
+ 0x10, /* same_page_limit */
+ 0, /* same_page_granularity */
+ 1, /* l1_arb_enable */
+ 1, /* l1_arb_hold_enable */
+ 0, /* l2_arb_control */
+ 1, /* page_size */
+ 1, /* tc_reorder_enable */
+ 1, /* tc_arb_hold_enable */
+ 1, /* in_flight_limit_enable */
+ 0x8, /* in_flight_limit */
+ 1, /* cp_clnt_enable */
+ 1, /* vgt_clnt_enable */
+ 1, /* tc_clnt_enable */
+ 1, /* rb_clnt_enable */
+ 1, /* pa_clnt_enable */
+};
+
+/* ---------------------
+ * G12 MH arbiter config
+ * --------------------- */
+static const REG_MH_ARBITER_CONFIG gsl_cfg_g12_mharb = {
+ 0x10, /* SAME_PAGE_LIMIT */
+ 0, /* SAME_PAGE_GRANULARITY */
+ 1, /* L1_ARB_ENABLE */
+ 1, /* L1_ARB_HOLD_ENABLE */
+ 0, /* L2_ARB_CONTROL */
+ 1, /* PAGE_SIZE */
+ 1, /* TC_REORDER_ENABLE */
+ 1, /* TC_ARB_HOLD_ENABLE */
+ 0, /* IN_FLIGHT_LIMIT_ENABLE */
+ 0x8, /* IN_FLIGHT_LIMIT */
+ 1, /* CP_CLNT_ENABLE */
+ 1, /* VGT_CLNT_ENABLE */
+ 1, /* TC_CLNT_ENABLE */
+ 1, /* RB_CLNT_ENABLE */
+ 1, /* PA_CLNT_ENABLE */
+};
+
+/* -----------------------------
+ * interrupt block register data
+ * ----------------------------- */
+static const gsl_intrblock_reg_t gsl_cfg_intrblock_reg[GSL_INTR_BLOCK_COUNT] = {
+ { /* Yamato MH */
+ GSL_INTR_BLOCK_YDX_MH,
+ GSL_INTR_YDX_MH_AXI_READ_ERROR,
+ GSL_INTR_YDX_MH_MMU_PAGE_FAULT,
+ mmMH_INTERRUPT_STATUS,
+ mmMH_INTERRUPT_CLEAR,
+ mmMH_INTERRUPT_MASK
+ },
+ { /* Yamato CP */
+ GSL_INTR_BLOCK_YDX_CP,
+ GSL_INTR_YDX_CP_SW_INT,
+ GSL_INTR_YDX_CP_RING_BUFFER,
+ mmCP_INT_STATUS,
+ mmCP_INT_ACK,
+ mmCP_INT_CNTL
+ },
+ { /* Yamato RBBM */
+ GSL_INTR_BLOCK_YDX_RBBM,
+ GSL_INTR_YDX_RBBM_READ_ERROR,
+ GSL_INTR_YDX_RBBM_GUI_IDLE,
+ mmRBBM_INT_STATUS,
+ mmRBBM_INT_ACK,
+ mmRBBM_INT_CNTL
+ },
+ { /* Yamato SQ */
+ GSL_INTR_BLOCK_YDX_SQ,
+ GSL_INTR_YDX_SQ_PS_WATCHDOG,
+ GSL_INTR_YDX_SQ_VS_WATCHDOG,
+ mmSQ_INT_STATUS,
+ mmSQ_INT_ACK,
+ mmSQ_INT_CNTL
+ },
+ { /* G12 */
+ GSL_INTR_BLOCK_G12,
+ GSL_INTR_G12_MH,
+#ifndef _Z180
+ GSL_INTR_G12_FBC,
+#else
+ GSL_INTR_G12_FIFO,
+#endif /* _Z180 */
+ (ADDR_VGC_IRQSTATUS >> 2),
+ (ADDR_VGC_IRQSTATUS >> 2),
+ (ADDR_VGC_IRQENABLE >> 2)
+ },
+ { /* G12 MH */
+ GSL_INTR_BLOCK_G12_MH,
+ GSL_INTR_G12_MH_AXI_READ_ERROR,
+ GSL_INTR_G12_MH_MMU_PAGE_FAULT,
+ ADDR_MH_INTERRUPT_STATUS, /* G12 MH offsets are considered to be dword based, therefore no down shift */
+ ADDR_MH_INTERRUPT_CLEAR,
+ ADDR_MH_INTERRUPT_MASK
+ },
+};
+
+/* -----------------------
+ * interrupt mask bit data
+ * ----------------------- */
+static const int gsl_cfg_intr_mask[GSL_INTR_COUNT] = {
+ MH_INTERRUPT_MASK__AXI_READ_ERROR,
+ MH_INTERRUPT_MASK__AXI_WRITE_ERROR,
+ MH_INTERRUPT_MASK__MMU_PAGE_FAULT,
+
+ CP_INT_CNTL__SW_INT_MASK,
+ CP_INT_CNTL__T0_PACKET_IN_IB_MASK,
+ CP_INT_CNTL__OPCODE_ERROR_MASK,
+ CP_INT_CNTL__PROTECTED_MODE_ERROR_MASK,
+ CP_INT_CNTL__RESERVED_BIT_ERROR_MASK,
+ CP_INT_CNTL__IB_ERROR_MASK,
+ CP_INT_CNTL__IB2_INT_MASK,
+ CP_INT_CNTL__IB1_INT_MASK,
+ CP_INT_CNTL__RB_INT_MASK,
+
+ RBBM_INT_CNTL__RDERR_INT_MASK,
+ RBBM_INT_CNTL__DISPLAY_UPDATE_INT_MASK,
+ RBBM_INT_CNTL__GUI_IDLE_INT_MASK,
+
+ SQ_INT_CNTL__PS_WATCHDOG_MASK,
+ SQ_INT_CNTL__VS_WATCHDOG_MASK,
+
+ (1 << VGC_IRQENABLE_MH_FSHIFT),
+ (1 << VGC_IRQENABLE_G2D_FSHIFT),
+ (1 << VGC_IRQENABLE_FIFO_FSHIFT),
+#ifndef _Z180
+ (1 << VGC_IRQENABLE_FBC_FSHIFT),
+#endif
+ (1 << MH_INTERRUPT_MASK_AXI_READ_ERROR_FSHIFT),
+ (1 << MH_INTERRUPT_MASK_AXI_WRITE_ERROR_FSHIFT),
+ (1 << MH_INTERRUPT_MASK_MMU_PAGE_FAULT_FSHIFT),
+};
+
+/* -----------------
+ * mmu register data
+ * ----------------- */
+static const gsl_mmu_reg_t gsl_cfg_mmu_reg[GSL_DEVICE_MAX] = {
+ { /* Yamato */
+ mmMH_MMU_CONFIG,
+ mmMH_MMU_MPU_BASE,
+ mmMH_MMU_MPU_END,
+ mmMH_MMU_VA_RANGE,
+ mmMH_MMU_PT_BASE,
+ mmMH_MMU_PAGE_FAULT,
+ mmMH_MMU_TRAN_ERROR,
+ mmMH_MMU_INVALIDATE,
+ },
+ { /* G12 - MH offsets are considered to be dword based, therefore no down shift */
+ ADDR_MH_MMU_CONFIG,
+ ADDR_MH_MMU_MPU_BASE,
+ ADDR_MH_MMU_MPU_END,
+ ADDR_MH_MMU_VA_RANGE,
+ ADDR_MH_MMU_PT_BASE,
+ ADDR_MH_MMU_PAGE_FAULT,
+ ADDR_MH_MMU_TRAN_ERROR,
+ ADDR_MH_MMU_INVALIDATE,
+ },
+};
+
+/* -----------------
+ * mh interrupt data
+ * ----------------- */
+static const gsl_mh_intr_t gsl_cfg_mh_intr[GSL_DEVICE_MAX] =
+{
+ { /* Yamato */
+ GSL_INTR_YDX_MH_AXI_READ_ERROR,
+ GSL_INTR_YDX_MH_AXI_WRITE_ERROR,
+ GSL_INTR_YDX_MH_MMU_PAGE_FAULT,
+ },
+ { /* G12 */
+ GSL_INTR_G12_MH_AXI_READ_ERROR,
+ GSL_INTR_G12_MH_AXI_WRITE_ERROR,
+ GSL_INTR_G12_MH_MMU_PAGE_FAULT,
+ }
+};
+
+#endif /* __GSL__CONFIG_H */
diff --git a/drivers/mxc/amd-gpu/include/gsl_context.h b/drivers/mxc/amd-gpu/include/gsl_context.h
new file mode 100644
index 000000000000..6e83bdb34036
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/gsl_context.h
@@ -0,0 +1,45 @@
+/* Copyright (c) 2008-2010, Advanced Micro Devices. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Advanced Micro Devices nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef __GSL_CONTEXT_H
+#define __GSL_CONTEXT_H
+
+
+//////////////////////////////////////////////////////////////////////////////
+// defines
+//////////////////////////////////////////////////////////////////////////////
+
+//////////////////////////////////////////////////////////////////////////////
+// types
+//////////////////////////////////////////////////////////////////////////////
+
+//////////////////////////////////////////////////////////////////////////////
+// functions
+//////////////////////////////////////////////////////////////////////////////
+
+#endif // __GSL_CONTEXT_H
diff --git a/drivers/mxc/amd-gpu/include/gsl_debug.h b/drivers/mxc/amd-gpu/include/gsl_debug.h
new file mode 100644
index 000000000000..1275278f9eae
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/gsl_debug.h
@@ -0,0 +1,126 @@
+/* Copyright (c) 2008-2010, Advanced Micro Devices. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Advanced Micro Devices nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef __GSL_DEBUG_H
+#define __GSL_DEBUG_H
+
+#ifdef BB_DUMPX
+#include "dumpx.h"
+#endif
+
+#ifdef TBDUMP
+#include "gsl_tbdump.h"
+#endif
+
+
+//////////////////////////////////////////////////////////////////////////////
+// macros
+//////////////////////////////////////////////////////////////////////////////
+#ifdef _DEBUG
+#define KGSL_DEBUG(flag, action) if (gsl_driver.flags_debug & flag) {action;}
+#ifdef GSL_BLD_YAMATO
+#define KGSL_DEBUG_DUMPPM4(cmds, sizedwords) Yamato_DumpPM4((cmds), (sizedwords))
+#define KGSL_DEBUG_DUMPREGWRITE(addr, value) Yamato_DumpRegisterWrite((addr), (value))
+#define KGSL_DEBUG_DUMPMEMWRITE(addr, sizebytes, data) Yamato_DumpWriteMemory(addr, sizebytes, data)
+#define KGSL_DEBUG_DUMPMEMSET(addr, sizebytes, value) Yamato_DumpSetMemory(addr, sizebytes, value)
+#define KGSL_DEBUG_DUMPFBSTART(device) Yamato_DumpFbStart(device)
+#define KGSL_DEBUG_DUMPREGSPACE(device) Yamato_DumpRegSpace(device)
+#define KGSL_DEBUG_DUMPWINDOW(addr, width, height) Yamato_DumpWindow(addr, width, height)
+#else
+#define KGSL_DEBUG_DUMPPM4(cmds, sizedwords)
+#define KGSL_DEBUG_DUMPREGWRITE(addr, value)
+#define KGSL_DEBUG_DUMPMEMWRITE(addr, sizebytes, data)
+#define KGSL_DEBUG_DUMPMEMSET(addr, sizebytes, value)
+#define KGSL_DEBUG_DUMPFBSTART(device)
+#define KGSL_DEBUG_DUMPREGSPACE(device)
+#define KGSL_DEBUG_DUMPWINDOW(addr, width, height)
+#endif
+#ifdef TBDUMP
+
+#define KGSL_DEBUG_TBDUMP_OPEN(filename) tbdump_open(filename)
+#define KGSL_DEBUG_TBDUMP_CLOSE() tbdump_close()
+#define KGSL_DEBUG_TBDUMP_SYNCMEM(addr, src, sizebytes) tbdump_syncmem((unsigned int)addr, (unsigned int)src, sizebytes)
+#define KGSL_DEBUG_TBDUMP_SETMEM(addr, value, sizebytes) tbdump_setmem((unsigned int)addr, value, sizebytes)
+#define KGSL_DEBUG_TBDUMP_SLAVEWRITE(addr, value) tbdump_slavewrite(addr, value)
+#define KGSL_DEBUG_TBDUMP_WAITIRQ() tbdump_waitirq()
+
+#else
+#define KGSL_DEBUG_TBDUMP_OPEN(file)
+#define KGSL_DEBUG_TBDUMP_CLOSE()
+#define KGSL_DEBUG_TBDUMP_SYNCMEM(addr, src, sizebytes)
+#define KGSL_DEBUG_TBDUMP_SETMEM(addr, value, sizebytes)
+#define KGSL_DEBUG_TBDUMP_SLAVEWRITE(addr, value)
+#define KGSL_DEBUG_TBDUMP_WAITIRQ()
+#endif
+#ifdef BB_DUMPX
+#define KGSL_DEBUG_DUMPX_OPEN(filename, param) dumpx_open((filename), (param))
+#define KGSL_DEBUG_DUMPX(cmd, par1, par2, par3, comment) dumpx(cmd, (par1), (par2), (par3), (comment))
+#define KGSL_DEBUG_DUMPX_CLOSE() dumpx_close()
+#else
+#define KGSL_DEBUG_DUMPX_OPEN(filename, param)
+#define KGSL_DEBUG_DUMPX(cmd, par1, par2, par3, comment)
+#define KGSL_DEBUG_DUMPX_CLOSE()
+#endif
+#else
+#define KGSL_DEBUG(flag, action)
+#define KGSL_DEBUG_DUMPPM4(cmds, sizedwords)
+#define KGSL_DEBUG_DUMPREGWRITE(addr, value)
+#define KGSL_DEBUG_DUMPMEMWRITE(addr, sizebytes, data)
+#define KGSL_DEBUG_DUMPMEMSET(addr, sizebytes, value)
+#define KGSL_DEBUG_DUMPFBSTART(device)
+#define KGSL_DEBUG_DUMPREGSPACE(device)
+#define KGSL_DEBUG_DUMPWINDOW(addr, width, height)
+#define KGSL_DEBUG_DUMPX(cmd, par1, par2, par3, comment)
+
+#define KGSL_DEBUG_TBDUMP_OPEN(file)
+#define KGSL_DEBUG_TBDUMP_CLOSE()
+#define KGSL_DEBUG_TBDUMP_SYNCMEM(addr, src, sizebytes)
+#define KGSL_DEBUG_TBDUMP_SETMEM(addr, value, sizebytes)
+#define KGSL_DEBUG_TBDUMP_SLAVEWRITE(addr, value)
+#define KGSL_DEBUG_TBDUMP_WAITIRQ()
+#endif // _DEBUG
+
+
+//////////////////////////////////////////////////////////////////////////////
+// prototypes
+//////////////////////////////////////////////////////////////////////////////
+#ifdef GSL_BLD_YAMATO
+void Yamato_DumpPM4(unsigned int *cmds, unsigned int sizedwords);
+void Yamato_DumpRegisterWrite(unsigned int dwAddress, unsigned int value);
+void Yamato_DumpWriteMemory(unsigned int dwAddress, unsigned int dwSize, void* pData);
+void Yamato_DumpSetMemory(unsigned int dwAddress, unsigned int dwSize, unsigned int pData);
+void Yamato_DumpFbStart(gsl_device_t *device);
+void Yamato_DumpRegSpace(gsl_device_t *device);
+#ifdef _WIN32
+void Yamato_DumpWindow(unsigned int addr, unsigned int width, unsigned int height);
+#endif
+#endif
+#ifdef _DEBUG
+int kgsl_dumpx_parse_ibs(gpuaddr_t gpuaddr, int sizedwords);
+#endif //_DEBUG
+#endif // __GSL_DRIVER_H
diff --git a/drivers/mxc/amd-gpu/include/gsl_device.h b/drivers/mxc/amd-gpu/include/gsl_device.h
new file mode 100644
index 000000000000..07c1438994f6
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/gsl_device.h
@@ -0,0 +1,152 @@
+/* Copyright (c) 2008-2010, Advanced Micro Devices. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Advanced Micro Devices nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef __GSL_DEVICE_H
+#define __GSL_DEVICE_H
+
+#ifdef _LINUX
+#include <linux/wait.h>
+#include <linux/workqueue.h>
+#endif
+
+//////////////////////////////////////////////////////////////////////////////
+// types
+//////////////////////////////////////////////////////////////////////////////
+
+// --------------
+// function table
+// --------------
+typedef struct _gsl_functable_t {
+ int (*device_init) (gsl_device_t *device);
+ int (*device_close) (gsl_device_t *device);
+ int (*device_destroy) (gsl_device_t *device);
+ int (*device_start) (gsl_device_t *device, gsl_flags_t flags);
+ int (*device_stop) (gsl_device_t *device);
+ int (*device_getproperty) (gsl_device_t *device, gsl_property_type_t type, void *value, unsigned int sizebytes);
+ int (*device_setproperty) (gsl_device_t *device, gsl_property_type_t type, void *value, unsigned int sizebytes);
+ int (*device_idle) (gsl_device_t *device, unsigned int timeout);
+ int (*device_regread) (gsl_device_t *device, unsigned int offsetwords, unsigned int *value);
+ int (*device_regwrite) (gsl_device_t *device, unsigned int offsetwords, unsigned int value);
+ int (*device_waitirq) (gsl_device_t *device, gsl_intrid_t intr_id, unsigned int *count, unsigned int timeout);
+ int (*device_waittimestamp) (gsl_device_t *device, gsl_timestamp_t timestamp, unsigned int timeout);
+ int (*device_runpending) (gsl_device_t *device);
+ int (*device_addtimestamp) (gsl_device_t *device_id, gsl_timestamp_t *timestamp);
+ int (*intr_isr) (gsl_device_t *device);
+ int (*mmu_tlbinvalidate) (gsl_device_t *device, unsigned int reg_invalidate, unsigned int pid);
+ int (*mmu_setpagetable) (gsl_device_t *device, unsigned int reg_ptbase, gpuaddr_t ptbase, unsigned int pid);
+ int (*cmdstream_issueibcmds) (gsl_device_t *device, int drawctxt_index, gpuaddr_t ibaddr, int sizedwords, gsl_timestamp_t *timestamp, gsl_flags_t flags);
+ int (*context_create) (gsl_device_t *device, gsl_context_type_t type, unsigned int *drawctxt_id, gsl_flags_t flags);
+ int (*context_destroy) (gsl_device_t *device_id, unsigned int drawctxt_id);
+} gsl_functable_t;
+
+// -------------
+// device object
+// -------------
+struct _gsl_device_t {
+
+ unsigned int refcnt;
+ unsigned int callerprocess[GSL_CALLER_PROCESS_MAX]; // caller process table
+ gsl_functable_t ftbl;
+ gsl_flags_t flags;
+ gsl_deviceid_t id;
+ unsigned int chip_id;
+ gsl_memregion_t regspace;
+ gsl_intr_t intr;
+ gsl_memdesc_t memstore;
+ gsl_memqueue_t memqueue; // queue of memfrees pending timestamp elapse
+
+#ifdef GSL_DEVICE_SHADOW_MEMSTORE_TO_USER
+ unsigned int memstoreshadow[GSL_CALLER_PROCESS_MAX];
+#endif // GSL_DEVICE_SHADOW_MEMSTORE_TO_USER
+
+#ifndef GSL_NO_MMU
+ gsl_mmu_t mmu;
+#endif // GSL_NO_MMU
+
+#ifdef GSL_BLD_YAMATO
+ gsl_memregion_t gmemspace;
+ gsl_ringbuffer_t ringbuffer;
+#ifdef GSL_LOCKING_FINEGRAIN
+ oshandle_t drawctxt_mutex;
+#endif
+ unsigned int drawctxt_count;
+ gsl_drawctxt_t *drawctxt_active;
+ gsl_drawctxt_t drawctxt[GSL_CONTEXT_MAX];
+#endif // GSL_BLD_YAMATO
+
+#ifdef GSL_BLD_G12
+#ifdef GSL_LOCKING_FINEGRAIN
+ oshandle_t cmdwindow_mutex;
+#endif
+ unsigned int intrcnt[GSL_G12_INTR_COUNT];
+ gsl_timestamp_t current_timestamp;
+ gsl_timestamp_t timestamp;
+#ifndef _LINUX
+ unsigned int irq_thread;
+ oshandle_t irq_thread_handle;
+#endif
+#ifdef IRQTHREAD_POLL
+ oshandle_t irqthread_event;
+#endif
+#endif // GSL_BLD_G12
+#ifdef GSL_LOCKING_FINEGRAIN
+ oshandle_t cmdstream_mutex;
+#endif
+#ifndef _LINUX
+ oshandle_t timestamp_event;
+#else
+ wait_queue_head_t timestamp_waitq;
+ struct workqueue_struct *irq_workq;
+ struct work_struct irq_work;
+ struct work_struct irq_err_work;
+#endif
+ void *autogate;
+};
+
+
+//////////////////////////////////////////////////////////////////////////////
+// prototypes
+//////////////////////////////////////////////////////////////////////////////
+int kgsl_device_init(gsl_device_t *device, gsl_deviceid_t device_id);
+int kgsl_device_close(gsl_device_t *device);
+int kgsl_device_destroy(gsl_device_t *device);
+int kgsl_device_attachcallback(gsl_device_t *device, unsigned int pid);
+int kgsl_device_detachcallback(gsl_device_t *device, unsigned int pid);
+int kgsl_device_runpending(gsl_device_t *device);
+
+int kgsl_yamato_getfunctable(gsl_functable_t *ftbl);
+int kgsl_g12_getfunctable(gsl_functable_t *ftbl);
+
+int kgsl_clock(gsl_deviceid_t dev, int enable);
+int kgsl_device_active(gsl_device_t *dev);
+int kgsl_device_clock(gsl_deviceid_t id, int enable);
+int kgsl_device_autogate_init(gsl_device_t *dev);
+void kgsl_device_autogate_exit(gsl_device_t *dev);
+
+
+#endif // __GSL_DEVICE_H
diff --git a/drivers/mxc/amd-gpu/include/gsl_display.h b/drivers/mxc/amd-gpu/include/gsl_display.h
new file mode 100644
index 000000000000..82300647b3ef
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/gsl_display.h
@@ -0,0 +1,62 @@
+/* Copyright (c) 2008-2010, Advanced Micro Devices. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Advanced Micro Devices nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef __GSL_DISPLAY_H
+#define __GSL_DISPLAY_H
+
+#define __GSLDISPLAY_EXPORTS
+
+#include "gsl_libapi.h"
+#include "gsl_klibapi.h" // hack to enable direct reg write
+#include "gsl_displayapi.h"
+
+
+//////////////////////////////////////////////////////////////////////////////
+// defines
+//////////////////////////////////////////////////////////////////////////////
+#define GSL_LIB_MAXDISPLAYS 1
+#define GSL_LIB_MAXSURFACES 3
+
+
+//////////////////////////////////////////////////////////////////////////////
+// types
+//////////////////////////////////////////////////////////////////////////////
+typedef struct _gsl_display_t {
+ int numdisplays;
+ gsl_displaymode_t mode[GSL_LIB_MAXDISPLAYS];
+ gsl_devhandle_t devhandle;
+} gsl_display_t;
+
+
+//////////////////////////////////////////////////////////////////////////////
+// prototypes
+//////////////////////////////////////////////////////////////////////////////
+int gsl_display_hitachi_240x320_tft_init(int display_id);
+int gsl_display_toshiba_640x480_tft_init(int display_id);
+
+#endif // __GSL_DISPLAY_H
diff --git a/drivers/mxc/amd-gpu/include/gsl_drawctxt.h b/drivers/mxc/amd-gpu/include/gsl_drawctxt.h
new file mode 100644
index 000000000000..f3bc8c37f4f2
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/gsl_drawctxt.h
@@ -0,0 +1,118 @@
+/* Copyright (c) 2002,2007-2009, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef __GSL_DRAWCTXT_H
+#define __GSL_DRAWCTXT_H
+
+//////////////////////////////////////////////////////////////////////////////
+// Flags
+//////////////////////////////////////////////////////////////////////////////
+
+#define CTXT_FLAGS_NOT_IN_USE 0x00000000
+#define CTXT_FLAGS_IN_USE 0x00000001
+
+#define CTXT_FLAGS_STATE_SHADOW 0x00000010 // state shadow memory allocated
+
+#define CTXT_FLAGS_GMEM_SHADOW 0x00000100 // gmem shadow memory allocated
+#define CTXT_FLAGS_GMEM_SAVE 0x00000200 // gmem must be copied to shadow
+#define CTXT_FLAGS_GMEM_RESTORE 0x00000400 // gmem can be restored from shadow
+
+#define CTXT_FLAGS_SHADER_SAVE 0x00002000 // shader must be copied to shadow
+#define CTXT_FLAGS_SHADER_RESTORE 0x00004000 // shader can be restored from shadow
+
+//////////////////////////////////////////////////////////////////////////////
+// types
+//////////////////////////////////////////////////////////////////////////////
+
+// ------------
+// draw context
+// ------------
+
+typedef struct _gmem_shadow_t
+{
+ gsl_memdesc_t gmemshadow; // Shadow buffer address
+
+ // 256 KB GMEM surface = 4 bytes-per-pixel x 256 pixels/row x 256 rows.
+ // width & height must be a multiples of 32, in case tiled textures are used.
+ unsigned int size; // Size of surface used to store GMEM
+ unsigned int width; // Width of surface used to store GMEM
+ unsigned int height; // Height of surface used to store GMEM
+ unsigned int pitch; // Pitch of surface used to store GMEM
+ unsigned int format; // Format of surface used to store GMEM
+
+ int offset;
+
+ unsigned int offset_x;
+ unsigned int offset_y;
+
+ unsigned int gmem_width; // GMEM width
+ unsigned int gmem_height; // GMEM height
+ unsigned int gmem_pitch; // GMEM pitch
+
+ unsigned int gmem_offset_x;
+ unsigned int gmem_offset_y;
+
+ unsigned int* gmem_save_commands;
+ unsigned int* gmem_restore_commands;
+ unsigned int gmem_save[3];
+ unsigned int gmem_restore[3];
+
+ gsl_memdesc_t quad_vertices;
+ gsl_memdesc_t quad_texcoords;
+} gmem_shadow_t;
+
+#define GSL_MAX_GMEM_SHADOW_BUFFERS 2
+
+typedef struct _gsl_drawctxt_t {
+ unsigned int pid;
+ gsl_flags_t flags;
+ gsl_context_type_t type;
+ gsl_memdesc_t gpustate;
+
+ unsigned int reg_save[3];
+ unsigned int reg_restore[3];
+ unsigned int shader_save[3];
+ unsigned int shader_fixup[3];
+ unsigned int shader_restore[3];
+ unsigned int chicken_restore[3];
+ gmem_shadow_t context_gmem_shadow; // Information of the GMEM shadow that is created in context create
+ gmem_shadow_t user_gmem_shadow[GSL_MAX_GMEM_SHADOW_BUFFERS]; // User defined GMEM shadow buffers
+} gsl_drawctxt_t;
+
+
+//////////////////////////////////////////////////////////////////////////////
+// prototypes
+//////////////////////////////////////////////////////////////////////////////
+int kgsl_drawctxt_init(gsl_device_t *device);
+int kgsl_drawctxt_close(gsl_device_t *device);
+int kgsl_drawctxt_destroyall(gsl_device_t *device);
+void kgsl_drawctxt_switch(gsl_device_t *device, gsl_drawctxt_t *drawctxt, gsl_flags_t flags);
+int kgsl_drawctxt_create(gsl_device_t* device, gsl_context_type_t type, unsigned int *drawctxt_id, gsl_flags_t flags);
+int kgsl_drawctxt_destroy(gsl_device_t* device, unsigned int drawctxt_id);
+
+#endif // __GSL_DRAWCTXT_H
diff --git a/drivers/mxc/amd-gpu/include/gsl_driver.h b/drivers/mxc/amd-gpu/include/gsl_driver.h
new file mode 100644
index 000000000000..9c908ce4696e
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/gsl_driver.h
@@ -0,0 +1,106 @@
+/* Copyright (c) 2008-2010, Advanced Micro Devices. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Advanced Micro Devices nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef __GSL_DRIVER_H
+#define __GSL_DRIVER_H
+
+
+/////////////////////////////////////////////////////////////////////////////
+// macros
+//////////////////////////////////////////////////////////////////////////////
+#ifdef GSL_DEDICATED_PROCESS
+#define GSL_CALLER_PROCESSID_GET() kos_callerprocess_getid()
+#else
+#define GSL_CALLER_PROCESSID_GET() kos_process_getid()
+#endif // GSL_DEDICATED_PROCESS
+
+#ifdef GSL_LOCKING_COARSEGRAIN
+#define GSL_API_MUTEX_CREATE() gsl_driver.mutex = kos_mutex_create("gsl_global"); \
+ if (!gsl_driver.mutex) {return (GSL_FAILURE);}
+#define GSL_API_MUTEX_LOCK() kos_mutex_lock(gsl_driver.mutex)
+#define GSL_API_MUTEX_UNLOCK() kos_mutex_unlock(gsl_driver.mutex)
+#define GSL_API_MUTEX_FREE() kos_mutex_free(gsl_driver.mutex); gsl_driver.mutex = 0;
+#else
+#define GSL_API_MUTEX_CREATE()
+#define GSL_API_MUTEX_LOCK()
+#define GSL_API_MUTEX_UNLOCK()
+#define GSL_API_MUTEX_FREE()
+#endif
+
+
+//////////////////////////////////////////////////////////////////////////////
+// types
+//////////////////////////////////////////////////////////////////////////////
+
+// -------------
+// driver object
+// -------------
+typedef struct _gsl_driver_t {
+ gsl_flags_t flags_debug;
+ int refcnt;
+ unsigned int callerprocess[GSL_CALLER_PROCESS_MAX]; // caller process table
+ oshandle_t mutex; // global API mutex
+ void *hal;
+ gsl_sharedmem_t shmem;
+ gsl_device_t device[GSL_DEVICE_MAX];
+ int dmi_state; // OS_TRUE = enabled, OS_FALSE otherwise
+ gsl_flags_t dmi_mode; // single, double, or triple buffering
+ int dmi_frame; // set to -1 when DMI is enabled
+ int dmi_max_frame; // indicates the maximum frame # that we will support
+ int enable_mmu;
+} gsl_driver_t;
+
+
+//////////////////////////////////////////////////////////////////////////////
+// external variable declarations
+//////////////////////////////////////////////////////////////////////////////
+extern gsl_driver_t gsl_driver;
+
+
+//////////////////////////////////////////////////////////////////////////////
+// inline functions
+//////////////////////////////////////////////////////////////////////////////
+OSINLINE int
+kgsl_driver_getcallerprocessindex(unsigned int pid, int *index)
+{
+ int i;
+
+ // obtain index in caller process table
+ for (i = 0; i < GSL_CALLER_PROCESS_MAX; i++)
+ {
+ if (gsl_driver.callerprocess[i] == pid)
+ {
+ *index = i;
+ return (GSL_SUCCESS);
+ }
+ }
+
+ return (GSL_FAILURE);
+}
+
+#endif // __GSL_DRIVER_H
diff --git a/drivers/mxc/amd-gpu/include/gsl_hal.h b/drivers/mxc/amd-gpu/include/gsl_hal.h
new file mode 100644
index 000000000000..fcf9f0891f16
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/gsl_hal.h
@@ -0,0 +1,151 @@
+/* Copyright (c) 2008-2010, Advanced Micro Devices. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Advanced Micro Devices nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef __GSL_HALAPI_H
+#define __GSL_HALAPI_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif // __cplusplus
+
+/*
+#include "gsl_buildconfig.h"
+#include "kos_libapi.h"
+#include "gsl_klibapi.h"
+#ifdef GSL_BLD_YAMATO
+#include <reg/yamato.h>
+#endif
+#ifdef GSL_BLD_G12
+#include <reg/g12_reg.h>
+#endif
+#include "gsl_hwaccess.h"
+*/
+
+#include "gsl.h"
+#include "gsl_hwaccess.h"
+
+
+//////////////////////////////////////////////////////////////////////////////
+// linkage
+//////////////////////////////////////////////////////////////////////////////
+#ifdef __KGSLHAL_EXPORTS
+#define KGSLHAL_API OS_DLLEXPORT
+#else
+#define KGSLHAL_API
+#endif // __KGSLLIB_EXPORTS
+
+
+//////////////////////////////////////////////////////////////////////////////
+// version control
+//////////////////////////////////////////////////////////////////////////////
+#define KGSLHAL_NAME "AMD GSL Kernel HAL"
+#define KGSLHAL_VERSION "0.1"
+
+
+//////////////////////////////////////////////////////////////////////////////
+// macros
+//////////////////////////////////////////////////////////////////////////////
+#define GSL_HAL_REG_READ(device_id, gpubase, offsetwords, value) kgsl_hwaccess_regread(device_id, gpubase, (offsetwords), (value))
+#define GSL_HAL_REG_WRITE(device_id, gpubase, offsetwords, value) kgsl_hwaccess_regwrite(device_id, gpubase, (offsetwords), (value))
+
+#define GSL_HAL_MEM_READ(dst, gpubase, gpuoffset, sizebytes, touserspace) kgsl_hwaccess_memread(dst, gpubase, (gpuoffset), (sizebytes), touserspace)
+#define GSL_HAL_MEM_WRITE(gpubase, gpuoffset, src, sizebytes, fromuserspace) kgsl_hwaccess_memwrite(gpubase, (gpuoffset), src, (sizebytes), fromuserspace)
+#define GSL_HAL_MEM_SET(gpubase, gpuoffset, value, sizebytes) kgsl_hwaccess_memset(gpubase, (gpuoffset), (value), (sizebytes))
+
+
+//////////////////////////////////////////////////////////////////////////////
+// types
+//////////////////////////////////////////////////////////////////////////////
+
+// -------------
+// device config
+// -------------
+typedef struct _gsl_devconfig_t {
+
+ gsl_memregion_t regspace;
+
+ unsigned int mmu_config;
+ gpuaddr_t mpu_base;
+ int mpu_range;
+ gpuaddr_t va_base;
+ unsigned int va_range;
+
+#ifdef GSL_BLD_YAMATO
+ gsl_memregion_t gmemspace;
+#endif // GSL_BLD_YAMATO
+
+} gsl_devconfig_t;
+
+// ----------------------
+// memory aperture config
+// ----------------------
+typedef struct _gsl_apertureconfig_t
+{
+ gsl_apertureid_t id;
+ gsl_channelid_t channel;
+ unsigned int hostbase;
+ unsigned int gpubase;
+ unsigned int sizebytes;
+} gsl_apertureconfig_t;
+
+// --------------------
+// shared memory config
+// --------------------
+typedef struct _gsl_shmemconfig_t
+{
+ int numapertures;
+ gsl_apertureconfig_t apertures[GSL_SHMEM_MAX_APERTURES];
+} gsl_shmemconfig_t;
+
+typedef struct _gsl_hal_t {
+ gsl_memregion_t z160_regspace;
+ gsl_memregion_t z430_regspace;
+ gsl_memregion_t memchunk;
+ gsl_memregion_t memspace[GSL_SHMEM_MAX_APERTURES];
+ unsigned int has_z160;
+ unsigned int has_z430;
+} gsl_hal_t;
+
+
+//////////////////////////////////////////////////////////////////////////////
+// HAL API
+//////////////////////////////////////////////////////////////////////////////
+KGSLHAL_API int kgsl_hal_init(void);
+KGSLHAL_API int kgsl_hal_close(void);
+KGSLHAL_API int kgsl_hal_getshmemconfig(gsl_shmemconfig_t *config);
+KGSLHAL_API int kgsl_hal_getdevconfig(gsl_deviceid_t device_id, gsl_devconfig_t *config);
+KGSLHAL_API int kgsl_hal_setpowerstate(gsl_deviceid_t device_id, int state, unsigned int value);
+KGSLHAL_API gsl_chipid_t kgsl_hal_getchipid(gsl_deviceid_t device_id);
+KGSLHAL_API int kgsl_hal_allocphysical(unsigned int virtaddr, unsigned int numpages, unsigned int scattergatterlist[]);
+KGSLHAL_API int kgsl_hal_freephysical(unsigned int virtaddr, unsigned int numpages, unsigned int scattergatterlist[]);
+
+#ifdef __cplusplus
+}
+#endif // __cplusplus
+
+#endif // __GSL_HALAPI_H
diff --git a/drivers/mxc/amd-gpu/include/gsl_halconfig.h b/drivers/mxc/amd-gpu/include/gsl_halconfig.h
new file mode 100644
index 000000000000..363474b7a6bb
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/gsl_halconfig.h
@@ -0,0 +1,49 @@
+/* Copyright (c) 2008-2010, Advanced Micro Devices. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Advanced Micro Devices nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+/*
+ * Copyright (C) 2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+#ifndef __GSL_HALCONFIG_H
+#define __GSL_HALCONFIG_H
+
+#define GSL_HAL_GPUBASE_REG_YDX 0x30000000
+#define GSL_HAL_SIZE_REG_YDX 0x00020000 /* 128KB */
+
+#define GSL_HAL_SIZE_REG_G12 0x00001000 /* 4KB */
+
+#define GSL_HAL_SHMEM_SIZE_EMEM1_MMU 0x01800000 /* 24MB */
+#define GSL_HAL_SHMEM_SIZE_EMEM2_MMU 0x00400000 /* 4MB */
+#define GSL_HAL_SHMEM_SIZE_PHYS_MMU 0x00400000 /* 4MB */
+
+#define GSL_HAL_SHMEM_SIZE_EMEM1_NOMMU 0x00A00000 /* 10MB */
+#define GSL_HAL_SHMEM_SIZE_EMEM2_NOMMU 0x00200000 /* 2MB */
+#define GSL_HAL_SHMEM_SIZE_PHYS_NOMMU 0x00100000 /* 1MB */
+
+#endif /* __GSL_HALCONFIG_H */
diff --git a/drivers/mxc/amd-gpu/include/gsl_intrmgr.h b/drivers/mxc/amd-gpu/include/gsl_intrmgr.h
new file mode 100644
index 000000000000..f46f6d8e6a86
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/gsl_intrmgr.h
@@ -0,0 +1,104 @@
+/* Copyright (c) 2008-2010, Advanced Micro Devices. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Advanced Micro Devices nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef __GSL_INTRMGR_H
+#define __GSL_INTRMGR_H
+
+
+//////////////////////////////////////////////////////////////////////////////
+// types
+//////////////////////////////////////////////////////////////////////////////
+
+// -------------------------------------
+// block which can generate an interrupt
+// -------------------------------------
+typedef enum _gsl_intrblock_t
+{
+ GSL_INTR_BLOCK_YDX_MH = 0,
+ GSL_INTR_BLOCK_YDX_CP,
+ GSL_INTR_BLOCK_YDX_RBBM,
+ GSL_INTR_BLOCK_YDX_SQ,
+ GSL_INTR_BLOCK_G12,
+ GSL_INTR_BLOCK_G12_MH,
+
+ GSL_INTR_BLOCK_COUNT,
+} gsl_intrblock_t;
+
+// ------------------------
+// interrupt block register
+// ------------------------
+typedef struct _gsl_intrblock_reg_t
+{
+ gsl_intrblock_t id;
+ gsl_intrid_t first_id;
+ gsl_intrid_t last_id;
+ unsigned int status_reg;
+ unsigned int clear_reg;
+ unsigned int mask_reg;
+} gsl_intrblock_reg_t;
+
+// --------
+// callback
+// --------
+typedef void (*gsl_intr_callback_t)(gsl_intrid_t id, void *cookie);
+
+// -----------------
+// interrupt routine
+// -----------------
+typedef struct _gsl_intr_handler_t
+{
+ gsl_intr_callback_t callback;
+ void * cookie;
+} gsl_intr_handler_t;
+
+// -----------------
+// interrupt manager
+// -----------------
+typedef struct _gsl_intr_t
+{
+ gsl_flags_t flags;
+ gsl_device_t *device;
+ unsigned int enabled[GSL_INTR_BLOCK_COUNT];
+ gsl_intr_handler_t handler[GSL_INTR_COUNT];
+ oshandle_t evnt[GSL_INTR_COUNT];
+} gsl_intr_t;
+
+
+//////////////////////////////////////////////////////////////////////////////
+// prototypes
+//////////////////////////////////////////////////////////////////////////////
+int kgsl_intr_init(gsl_device_t *device);
+int kgsl_intr_close(gsl_device_t *device);
+int kgsl_intr_attach(gsl_intr_t *intr, gsl_intrid_t id, gsl_intr_callback_t callback, void *cookie);
+int kgsl_intr_detach(gsl_intr_t *intr, gsl_intrid_t id);
+int kgsl_intr_enable(gsl_intr_t *intr, gsl_intrid_t id);
+int kgsl_intr_disable(gsl_intr_t *intr, gsl_intrid_t id);
+int kgsl_intr_isenabled(gsl_intr_t *intr, gsl_intrid_t id);
+void kgsl_intr_decode(gsl_device_t *device, gsl_intrblock_t block_id);
+
+#endif // __GSL_INTMGR_H
diff --git a/drivers/mxc/amd-gpu/include/gsl_ioctl.h b/drivers/mxc/amd-gpu/include/gsl_ioctl.h
new file mode 100644
index 000000000000..6a06f3e0aec4
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/gsl_ioctl.h
@@ -0,0 +1,243 @@
+/* Copyright (c) 2008-2010, Advanced Micro Devices. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Advanced Micro Devices nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef _GSL_IOCTL_H
+#define _GSL_IOCTL_H
+
+#include "gsl_types.h"
+#include "gsl_properties.h"
+
+//////////////////////////////////////////////////////////////////////////////
+// types
+//////////////////////////////////////////////////////////////////////////////
+
+typedef struct _kgsl_device_start_t {
+ gsl_deviceid_t device_id;
+ gsl_flags_t flags;
+} kgsl_device_start_t;
+
+typedef struct _kgsl_device_stop_t {
+ gsl_deviceid_t device_id;
+} kgsl_device_stop_t;
+
+typedef struct _kgsl_device_idle_t {
+ gsl_deviceid_t device_id;
+ unsigned int timeout;
+} kgsl_device_idle_t;
+
+typedef struct _kgsl_device_isidle_t {
+ gsl_deviceid_t device_id;
+} kgsl_device_isidle_t;
+
+typedef struct _kgsl_device_getproperty_t {
+ gsl_deviceid_t device_id;
+ gsl_property_type_t type;
+ unsigned int *value;
+ unsigned int sizebytes;
+} kgsl_device_getproperty_t;
+
+typedef struct _kgsl_device_setproperty_t {
+ gsl_deviceid_t device_id;
+ gsl_property_type_t type;
+ void *value;
+ unsigned int sizebytes;
+} kgsl_device_setproperty_t;
+
+typedef struct _kgsl_device_regread_t {
+ gsl_deviceid_t device_id;
+ unsigned int offsetwords;
+ unsigned int *value;
+} kgsl_device_regread_t;
+
+typedef struct _kgsl_device_regwrite_t {
+ gsl_deviceid_t device_id;
+ unsigned int offsetwords;
+ unsigned int value;
+} kgsl_device_regwrite_t;
+
+typedef struct _kgsl_device_waitirq_t {
+ gsl_deviceid_t device_id;
+ gsl_intrid_t intr_id;
+ unsigned int *count;
+ unsigned int timeout;
+} kgsl_device_waitirq_t;
+
+typedef struct _kgsl_cmdstream_issueibcmds_t {
+ gsl_deviceid_t device_id;
+ int drawctxt_index;
+ gpuaddr_t ibaddr;
+ int sizedwords;
+ gsl_timestamp_t *timestamp;
+ gsl_flags_t flags;
+} kgsl_cmdstream_issueibcmds_t;
+
+typedef struct _kgsl_cmdstream_readtimestamp_t {
+ gsl_deviceid_t device_id;
+ gsl_timestamp_type_t type;
+ gsl_timestamp_t *timestamp;
+} kgsl_cmdstream_readtimestamp_t;
+
+typedef struct _kgsl_cmdstream_freememontimestamp_t {
+ gsl_deviceid_t device_id;
+ gsl_memdesc_t *memdesc;
+ gsl_timestamp_t timestamp;
+ gsl_timestamp_type_t type;
+} kgsl_cmdstream_freememontimestamp_t;
+
+typedef struct _kgsl_cmdstream_waittimestamp_t {
+ gsl_deviceid_t device_id;
+ gsl_timestamp_t timestamp;
+ unsigned int timeout;
+} kgsl_cmdstream_waittimestamp_t;
+
+typedef struct _kgsl_cmdwindow_write_t {
+ gsl_deviceid_t device_id;
+ gsl_cmdwindow_t target;
+ unsigned int addr;
+ unsigned int data;
+} kgsl_cmdwindow_write_t;
+
+typedef struct _kgsl_context_create_t {
+ gsl_deviceid_t device_id;
+ gsl_context_type_t type;
+ unsigned int *drawctxt_id;
+ gsl_flags_t flags;
+} kgsl_context_create_t;
+
+typedef struct _kgsl_context_destroy_t {
+ gsl_deviceid_t device_id;
+ unsigned int drawctxt_id;
+} kgsl_context_destroy_t;
+
+typedef struct _kgsl_drawctxt_bind_gmem_shadow_t {
+ gsl_deviceid_t device_id;
+ unsigned int drawctxt_id;
+ const gsl_rect_t* gmem_rect;
+ unsigned int shadow_x;
+ unsigned int shadow_y;
+ const gsl_buffer_desc_t* shadow_buffer;
+ unsigned int buffer_id;
+} kgsl_drawctxt_bind_gmem_shadow_t;
+
+typedef struct _kgsl_sharedmem_alloc_t {
+ gsl_deviceid_t device_id;
+ gsl_flags_t flags;
+ int sizebytes;
+ gsl_memdesc_t *memdesc;
+} kgsl_sharedmem_alloc_t;
+
+typedef struct _kgsl_sharedmem_free_t {
+ gsl_memdesc_t *memdesc;
+} kgsl_sharedmem_free_t;
+
+typedef struct _kgsl_sharedmem_read_t {
+ const gsl_memdesc_t *memdesc;
+ unsigned int *dst;
+ unsigned int offsetbytes;
+ unsigned int sizebytes;
+} kgsl_sharedmem_read_t;
+
+typedef struct _kgsl_sharedmem_write_t {
+ const gsl_memdesc_t *memdesc;
+ unsigned int offsetbytes;
+ unsigned int *src;
+ unsigned int sizebytes;
+} kgsl_sharedmem_write_t;
+
+typedef struct _kgsl_sharedmem_set_t {
+ const gsl_memdesc_t *memdesc;
+ unsigned int offsetbytes;
+ unsigned int value;
+ unsigned int sizebytes;
+} kgsl_sharedmem_set_t;
+
+typedef struct _kgsl_sharedmem_largestfreeblock_t {
+ gsl_deviceid_t device_id;
+ gsl_flags_t flags;
+ unsigned int *largestfreeblock;
+} kgsl_sharedmem_largestfreeblock_t;
+
+typedef struct _kgsl_sharedmem_cacheoperation_t {
+ const gsl_memdesc_t *memdesc;
+ unsigned int offsetbytes;
+ unsigned int sizebytes;
+ unsigned int operation;
+} kgsl_sharedmem_cacheoperation_t;
+
+typedef struct _kgsl_sharedmem_fromhostpointer_t {
+ gsl_deviceid_t device_id;
+ gsl_memdesc_t *memdesc;
+ void *hostptr;
+} kgsl_sharedmem_fromhostpointer_t;
+
+typedef struct _kgsl_add_timestamp_t {
+ gsl_deviceid_t device_id;
+ gsl_timestamp_t *timestamp;
+} kgsl_add_timestamp_t;
+
+typedef struct _kgsl_device_clock_t {
+ gsl_deviceid_t device; /* GSL_DEVICE_YAMATO = 1, GSL_DEVICE_G12 = 2 */
+ int enable; /* 0: disable, 1: enable */
+} kgsl_device_clock_t;
+
+//////////////////////////////////////////////////////////////////////////////
+// ioctl numbers
+//////////////////////////////////////////////////////////////////////////////
+
+#define GSL_MAGIC 0xF9
+#define IOCTL_KGSL_DEVICE_START _IOW(GSL_MAGIC, 0x20, struct _kgsl_device_start_t)
+#define IOCTL_KGSL_DEVICE_STOP _IOW(GSL_MAGIC, 0x21, struct _kgsl_device_stop_t)
+#define IOCTL_KGSL_DEVICE_IDLE _IOW(GSL_MAGIC, 0x22, struct _kgsl_device_idle_t)
+#define IOCTL_KGSL_DEVICE_ISIDLE _IOR(GSL_MAGIC, 0x23, struct _kgsl_device_isidle_t)
+#define IOCTL_KGSL_DEVICE_GETPROPERTY _IOWR(GSL_MAGIC, 0x24, struct _kgsl_device_getproperty_t)
+#define IOCTL_KGSL_DEVICE_SETPROPERTY _IOW(GSL_MAGIC, 0x25, struct _kgsl_device_setproperty_t)
+#define IOCTL_KGSL_DEVICE_REGREAD _IOWR(GSL_MAGIC, 0x26, struct _kgsl_device_regread_t)
+#define IOCTL_KGSL_DEVICE_REGWRITE _IOW(GSL_MAGIC, 0x27, struct _kgsl_device_regwrite_t)
+#define IOCTL_KGSL_DEVICE_WAITIRQ _IOWR(GSL_MAGIC, 0x28, struct _kgsl_device_waitirq_t)
+#define IOCTL_KGSL_CMDSTREAM_ISSUEIBCMDS _IOWR(GSL_MAGIC, 0x29, struct _kgsl_cmdstream_issueibcmds_t)
+#define IOCTL_KGSL_CMDSTREAM_READTIMESTAMP _IOWR(GSL_MAGIC, 0x2A, struct _kgsl_cmdstream_readtimestamp_t)
+#define IOCTL_KGSL_CMDSTREAM_FREEMEMONTIMESTAMP _IOW(GSL_MAGIC, 0x2B, struct _kgsl_cmdstream_freememontimestamp_t)
+#define IOCTL_KGSL_CMDSTREAM_WAITTIMESTAMP _IOW(GSL_MAGIC, 0x2C, struct _kgsl_cmdstream_waittimestamp_t)
+#define IOCTL_KGSL_CMDWINDOW_WRITE _IOW(GSL_MAGIC, 0x2D, struct _kgsl_cmdwindow_write_t)
+#define IOCTL_KGSL_CONTEXT_CREATE _IOWR(GSL_MAGIC, 0x2E, struct _kgsl_context_create_t)
+#define IOCTL_KGSL_CONTEXT_DESTROY _IOW(GSL_MAGIC, 0x2F, struct _kgsl_context_destroy_t)
+#define IOCTL_KGSL_DRAWCTXT_BIND_GMEM_SHADOW _IOW(GSL_MAGIC, 0x30, struct _kgsl_drawctxt_bind_gmem_shadow_t)
+#define IOCTL_KGSL_SHAREDMEM_ALLOC _IOWR(GSL_MAGIC, 0x31, struct _kgsl_sharedmem_alloc_t)
+#define IOCTL_KGSL_SHAREDMEM_FREE _IOW(GSL_MAGIC, 0x32, struct _kgsl_sharedmem_free_t)
+#define IOCTL_KGSL_SHAREDMEM_READ _IOWR(GSL_MAGIC, 0x33, struct _kgsl_sharedmem_read_t)
+#define IOCTL_KGSL_SHAREDMEM_WRITE _IOW(GSL_MAGIC, 0x34, struct _kgsl_sharedmem_write_t)
+#define IOCTL_KGSL_SHAREDMEM_SET _IOW(GSL_MAGIC, 0x35, struct _kgsl_sharedmem_set_t)
+#define IOCTL_KGSL_SHAREDMEM_LARGESTFREEBLOCK _IOWR(GSL_MAGIC, 0x36, struct _kgsl_sharedmem_largestfreeblock_t)
+#define IOCTL_KGSL_SHAREDMEM_CACHEOPERATION _IOW(GSL_MAGIC, 0x37, struct _kgsl_sharedmem_cacheoperation_t)
+#define IOCTL_KGSL_SHAREDMEM_FROMHOSTPOINTER _IOW(GSL_MAGIC, 0x38, struct _kgsl_sharedmem_fromhostpointer_t)
+#define IOCTL_KGSL_ADD_TIMESTAMP _IOWR(GSL_MAGIC, 0x39, struct _kgsl_add_timestamp_t)
+#define IOCTL_KGSL_DRIVER_EXIT _IOWR(GSL_MAGIC, 0x3A, NULL)
+#define IOCTL_KGSL_DEVICE_CLOCK _IOWR(GSL_MAGIC, 0x60, struct _kgsl_device_clock_t)
+
+
+#endif
diff --git a/drivers/mxc/amd-gpu/include/gsl_log.h b/drivers/mxc/amd-gpu/include/gsl_log.h
new file mode 100644
index 000000000000..dbb7e4c6ef96
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/gsl_log.h
@@ -0,0 +1,74 @@
+/* Copyright (c) 2002,2008-2009, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef __GSL_LOG_H
+#define __GSL_LOG_H
+
+#define KGSL_LOG_GROUP_DRIVER 0x00000001
+#define KGSL_LOG_GROUP_DEVICE 0x00000002
+#define KGSL_LOG_GROUP_COMMAND 0x00000004
+#define KGSL_LOG_GROUP_CONTEXT 0x00000008
+#define KGSL_LOG_GROUP_MEMORY 0x00000010
+#define KGSL_LOG_GROUP_ALL 0x000000ff
+
+#define KGSL_LOG_LEVEL_ALL 0x0000ff00
+#define KGSL_LOG_LEVEL_TRACE 0x00003f00
+#define KGSL_LOG_LEVEL_DEBUG 0x00001f00
+#define KGSL_LOG_LEVEL_INFO 0x00000f00
+#define KGSL_LOG_LEVEL_WARN 0x00000700
+#define KGSL_LOG_LEVEL_ERROR 0x00000300
+#define KGSL_LOG_LEVEL_FATAL 0x00000100
+
+#define KGSL_LOG_TIMESTAMP 0x00010000
+#define KGSL_LOG_THREAD_ID 0x00020000
+#define KGSL_LOG_PROCESS_ID 0x00040000
+
+#ifdef GSL_LOG
+
+int kgsl_log_init(void);
+int kgsl_log_close(void);
+int kgsl_log_open_stdout( unsigned int log_flags );
+int kgsl_log_write( unsigned int log_flags, char* format, ... );
+int kgsl_log_open_membuf( int* memBufId, unsigned int log_flags );
+int kgsl_log_open_file( char* filename, unsigned int log_flags );
+int kgsl_log_flush_membuf( char* filename, int memBufId );
+
+#else
+
+// Empty function definitions
+OSINLINE int kgsl_log_init(void) { return GSL_SUCCESS; }
+OSINLINE int kgsl_log_close(void) { return GSL_SUCCESS; }
+OSINLINE int kgsl_log_open_stdout( unsigned int log_flags ) { (void)log_flags; return GSL_SUCCESS; }
+OSINLINE int kgsl_log_write( unsigned int log_flags, char* format, ... ) { (void)log_flags; (void)format; return GSL_SUCCESS; }
+OSINLINE int kgsl_log_open_membuf( int* memBufId, unsigned int log_flags ) { (void)memBufId; (void)log_flags; return GSL_SUCCESS; }
+OSINLINE int kgsl_log_open_file( char* filename, unsigned int log_flags ) { (void)filename; (void)log_flags; return GSL_SUCCESS; }
+OSINLINE int kgsl_log_flush_membuf( char* filename, int memBufId ) { (void) filename; (void) memBufId; return GSL_SUCCESS; }
+
+#endif
+
+#endif // __GSL_LOG_H
diff --git a/drivers/mxc/amd-gpu/include/gsl_memmgr.h b/drivers/mxc/amd-gpu/include/gsl_memmgr.h
new file mode 100644
index 000000000000..ef9ad93ea96e
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/gsl_memmgr.h
@@ -0,0 +1,122 @@
+/* Copyright (c) 2008-2010, Advanced Micro Devices. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Advanced Micro Devices nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef __GSL_MEMMGR_H
+#define __GSL_MEMMGR_H
+
+
+//////////////////////////////////////////////////////////////////////////////
+// defines
+//////////////////////////////////////////////////////////////////////////////
+#define GSL_MEMARENA_NODE_POOL_MAX 32 // max is 32
+
+#define GSL_MEMARENA_PAGE_DIST_MAX 12 // 4MB
+
+//#define GSL_MEMARENA_NODE_POOL_ENABLED
+
+
+//////////////////////////////////////////////////////////////////////////////
+// types
+//////////////////////////////////////////////////////////////////////////////
+
+// ------------------
+// memory arena stats
+// ------------------
+typedef struct _gsl_memarena_stats_t {
+ __int64 bytes_read;
+ __int64 bytes_written;
+ __int64 allocs_success;
+ __int64 allocs_fail;
+ __int64 frees;
+ __int64 allocs_pagedistribution[GSL_MEMARENA_PAGE_DIST_MAX]; // 0=0--(4K-1), 1=4--(8K-1), 2=8--(16K-1),... max-1=(GSL_PAGESIZE<<(max-1))--infinity
+ __int64 frees_pagedistribution[GSL_MEMARENA_PAGE_DIST_MAX];
+} gsl_memarena_stats_t;
+
+// ------------
+// memory block
+// ------------
+typedef struct _memblk_t {
+ unsigned int blkaddr;
+ unsigned int blksize;
+ struct _memblk_t *next;
+ struct _memblk_t *prev;
+ int nodepoolindex;
+} memblk_t;
+
+// ----------------------
+// memory block free list
+// ----------------------
+typedef struct _gsl_freelist_t {
+ memblk_t *head;
+ memblk_t *allocrover;
+ memblk_t *freerover;
+} gsl_freelist_t;
+
+// ----------------------
+// memory block node pool
+// ----------------------
+typedef struct _gsl_nodepool_t {
+ unsigned int priv;
+ memblk_t memblk[GSL_MEMARENA_NODE_POOL_MAX];
+ struct _gsl_nodepool_t *next;
+ struct _gsl_nodepool_t *prev;
+} gsl_nodepool_t;
+
+// -------------------
+// memory arena object
+// -------------------
+typedef struct _gsl_memarena_t {
+ oshandle_t mutex;
+ unsigned int gpubaseaddr;
+ unsigned int hostbaseaddr;
+ unsigned int sizebytes;
+ gsl_nodepool_t *nodepool;
+ gsl_freelist_t freelist;
+ unsigned int priv;
+
+#ifdef GSL_STATS_MEM
+ gsl_memarena_stats_t stats;
+#endif // GSL_STATS_MEM
+
+} gsl_memarena_t;
+
+
+//////////////////////////////////////////////////////////////////////////////
+// prototypes
+//////////////////////////////////////////////////////////////////////////////
+gsl_memarena_t* kgsl_memarena_create(int aperture_id, int mmu_virtualized, unsigned int hostbaseaddr, gpuaddr_t gpubaseaddr, int sizebytes);
+int kgsl_memarena_destroy(gsl_memarena_t *memarena);
+int kgsl_memarena_isvirtualized(gsl_memarena_t *memarena);
+int kgsl_memarena_querystats(gsl_memarena_t *memarena, gsl_memarena_stats_t *stats);
+int kgsl_memarena_alloc(gsl_memarena_t *memarena, gsl_flags_t flags, int size, gsl_memdesc_t *memdesc);
+void kgsl_memarena_free(gsl_memarena_t *memarena, gsl_memdesc_t *memdesc);
+void* kgsl_memarena_gethostptr(gsl_memarena_t *memarena, gpuaddr_t gpuaddr);
+unsigned int kgsl_memarena_getgpuaddr(gsl_memarena_t *memarena, void *hostptr);
+unsigned int kgsl_memarena_getlargestfreeblock(gsl_memarena_t *memarena, gsl_flags_t flags);
+
+#endif // __GSL_MEMMGR_H
diff --git a/drivers/mxc/amd-gpu/include/gsl_mmu.h b/drivers/mxc/amd-gpu/include/gsl_mmu.h
new file mode 100644
index 000000000000..ddb2243b58d5
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/gsl_mmu.h
@@ -0,0 +1,186 @@
+/* Copyright (c) 2002,2007-2010, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef __GSL_MMU_H
+#define __GSL_MMU_H
+
+
+//////////////////////////////////////////////////////////////////////////////
+// defines
+//////////////////////////////////////////////////////////////////////////////
+#ifdef GSL_STATS_MMU
+#define GSL_MMU_STATS(x) x
+#else
+#define GSL_MMU_STATS(x)
+#endif // GSL_STATS_MMU
+
+#ifdef GSL_MMU_PAGETABLE_PERPROCESS
+#define GSL_MMU_PAGETABLE_MAX GSL_CALLER_PROCESS_MAX // all device mmu's share a single page table per process
+#else
+#define GSL_MMU_PAGETABLE_MAX 1 // all device mmu's share a single global page table
+#endif // GSL_MMU_PAGETABLE_PERPROCESS
+
+#define GSL_PT_SUPER_PTE 8
+
+
+//////////////////////////////////////////////////////////////////////////////
+// types
+//////////////////////////////////////////////////////////////////////////////
+
+#ifdef _DEBUG
+// ---------
+// mmu debug
+// ---------
+typedef struct _gsl_mmu_debug_t {
+ unsigned int config;
+ unsigned int mpu_base;
+ unsigned int mpu_end;
+ unsigned int va_range;
+ unsigned int pt_base;
+ unsigned int page_fault;
+ unsigned int trans_error;
+ unsigned int invalidate;
+} gsl_mmu_debug_t;
+#endif // _DEBUG
+
+// ------------
+// mmu register
+// ------------
+typedef struct _gsl_mmu_reg_t
+{
+ unsigned int CONFIG;
+ unsigned int MPU_BASE;
+ unsigned int MPU_END;
+ unsigned int VA_RANGE;
+ unsigned int PT_BASE;
+ unsigned int PAGE_FAULT;
+ unsigned int TRAN_ERROR;
+ unsigned int INVALIDATE;
+} gsl_mmu_reg_t;
+
+// ------------
+// mh interrupt
+// ------------
+typedef struct _gsl_mh_intr_t
+{
+ gsl_intrid_t AXI_READ_ERROR;
+ gsl_intrid_t AXI_WRITE_ERROR;
+ gsl_intrid_t MMU_PAGE_FAULT;
+} gsl_mh_intr_t;
+
+// ----------------
+// page table stats
+// ----------------
+typedef struct _gsl_ptstats_t {
+ __int64 maps;
+ __int64 unmaps;
+ __int64 switches;
+} gsl_ptstats_t;
+
+// ---------
+// mmu stats
+// ---------
+typedef struct _gsl_mmustats_t {
+ gsl_ptstats_t pt;
+ __int64 tlbflushes;
+} gsl_mmustats_t;
+
+// -----------------
+// page table object
+// -----------------
+typedef struct _gsl_pagetable_t {
+ unsigned int pid;
+ unsigned int refcnt;
+ gsl_memdesc_t base;
+ gpuaddr_t va_base;
+ unsigned int va_range;
+ unsigned int last_superpte;
+ unsigned int max_entries;
+} gsl_pagetable_t;
+
+// -------------------------
+// tlb flush filter object
+// -------------------------
+typedef struct _gsl_tlbflushfilter_t {
+ unsigned int *base;
+ unsigned int size;
+} gsl_tlbflushfilter_t;
+
+// ----------
+// mmu object
+// ----------
+typedef struct _gsl_mmu_t {
+#ifdef GSL_LOCKING_FINEGRAIN
+ oshandle_t mutex;
+#endif
+ unsigned int refcnt;
+ gsl_flags_t flags;
+ gsl_device_t *device;
+ unsigned int config;
+ gpuaddr_t mpu_base;
+ int mpu_range;
+ gpuaddr_t va_base;
+ unsigned int va_range;
+ gsl_memdesc_t dummyspace;
+ gsl_tlbflushfilter_t tlbflushfilter;
+ gsl_pagetable_t *hwpagetable; // current page table object being used by device mmu
+ gsl_pagetable_t *pagetable[GSL_MMU_PAGETABLE_MAX]; // page table object table
+#ifdef GSL_STATS_MMU
+ gsl_mmustats_t stats;
+#endif // GSL_STATS_MMU
+} gsl_mmu_t;
+
+
+//////////////////////////////////////////////////////////////////////////////
+// inline functions
+//////////////////////////////////////////////////////////////////////////////
+OSINLINE int
+kgsl_mmu_isenabled(gsl_mmu_t *mmu)
+{
+ // address translation enabled
+ int enabled = ((mmu)->flags & GSL_FLAGS_STARTED) ? 1 : 0;
+
+ return (enabled);
+}
+
+
+//////////////////////////////////////////////////////////////////////////////
+// prototypes
+//////////////////////////////////////////////////////////////////////////////
+int kgsl_mmu_init(gsl_device_t *device);
+int kgsl_mmu_close(gsl_device_t *device);
+int kgsl_mmu_attachcallback(gsl_mmu_t *mmu, unsigned int pid);
+int kgsl_mmu_detachcallback(gsl_mmu_t *mmu, unsigned int pid);
+int kgsl_mmu_setpagetable(gsl_device_t *device, unsigned int pid);
+int kgsl_mmu_map(gsl_mmu_t *mmu, gpuaddr_t gpubaseaddr, const gsl_scatterlist_t *scatterlist, gsl_flags_t flags, unsigned int pid);
+int kgsl_mmu_unmap(gsl_mmu_t *mmu, gpuaddr_t gpubaseaddr, int range, unsigned int pid);
+int kgsl_mmu_getmap(gsl_mmu_t *mmu, gpuaddr_t gpubaseaddr, int range, gsl_scatterlist_t *scatterlist, unsigned int pid);
+int kgsl_mmu_querystats(gsl_mmu_t *mmu, gsl_mmustats_t *stats);
+int kgsl_mmu_bist(gsl_mmu_t *mmu);
+
+#endif // __GSL_MMU_H
diff --git a/drivers/mxc/amd-gpu/include/gsl_ringbuffer.h b/drivers/mxc/amd-gpu/include/gsl_ringbuffer.h
new file mode 100644
index 000000000000..57f6297735e2
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/gsl_ringbuffer.h
@@ -0,0 +1,250 @@
+/* Copyright (c) 2002,2007-2009, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef __GSL_RINGBUFFER_H
+#define __GSL_RINGBUFFER_H
+
+
+//////////////////////////////////////////////////////////////////////////////
+// defines
+//////////////////////////////////////////////////////////////////////////////
+
+// ringbuffer sizes log2quadword
+#define GSL_RB_SIZE_8 0
+#define GSL_RB_SIZE_16 1
+#define GSL_RB_SIZE_32 2
+#define GSL_RB_SIZE_64 3
+#define GSL_RB_SIZE_128 4
+#define GSL_RB_SIZE_256 5
+#define GSL_RB_SIZE_512 6
+#define GSL_RB_SIZE_1K 7
+#define GSL_RB_SIZE_2K 8
+#define GSL_RB_SIZE_4K 9
+#define GSL_RB_SIZE_8K 10
+#define GSL_RB_SIZE_16K 11
+#define GSL_RB_SIZE_32K 12
+#define GSL_RB_SIZE_64K 13
+#define GSL_RB_SIZE_128K 14
+#define GSL_RB_SIZE_256K 15
+#define GSL_RB_SIZE_512K 16
+#define GSL_RB_SIZE_1M 17
+#define GSL_RB_SIZE_2M 18
+#define GSL_RB_SIZE_4M 19
+
+// offsets into memptrs
+#define GSL_RB_MEMPTRS_RPTR_OFFSET 0
+#define GSL_RB_MEMPTRS_WPTRPOLL_OFFSET (GSL_RB_MEMPTRS_RPTR_OFFSET + sizeof(unsigned int))
+
+// dword base address of the GFX decode space
+#define GSL_HAL_SUBBLOCK_OFFSET(reg) ((unsigned int)((reg) - (0x2000)))
+
+// CP timestamp register
+#define mmCP_TIMESTAMP mmSCRATCH_REG0
+
+
+//////////////////////////////////////////////////////////////////////////////
+// types
+//////////////////////////////////////////////////////////////////////////////
+
+#ifdef _DEBUG
+// ----------------
+// ringbuffer debug
+// ----------------
+typedef struct _gsl_rb_debug_t {
+ unsigned int pm4_ucode_rel;
+ unsigned int pfp_ucode_rel;
+ unsigned int cp_rb_base;
+ cp_rb_cntl_u cp_rb_cntl;
+ unsigned int cp_rb_rptr_addr;
+ unsigned int cp_rb_rptr;
+ unsigned int cp_rb_wptr;
+ unsigned int cp_rb_wptr_base;
+ scratch_umsk_u scratch_umsk;
+ unsigned int scratch_addr;
+ cp_me_cntl_u cp_me_cntl;
+ cp_me_status_u cp_me_status;
+ cp_debug_u cp_debug;
+ cp_stat_u cp_stat;
+ rbbm_status_u rbbm_status;
+ unsigned int sop_timestamp;
+ unsigned int eop_timestamp;
+} gsl_rb_debug_t;
+#endif // _DEBUG
+
+// -------------------
+// ringbuffer watchdog
+// -------------------
+typedef struct _gsl_rbwatchdog_t {
+ gsl_flags_t flags;
+ unsigned int rptr_sample;
+} gsl_rbwatchdog_t;
+
+// ------------------
+// memory ptr objects
+// ------------------
+#ifdef __GNUC__
+#pragma pack(push, 1)
+#else
+#pragma pack(push)
+#pragma pack(1)
+#endif
+typedef struct _gsl_rbmemptrs_t {
+ volatile int rptr;
+ int wptr_poll;
+} gsl_rbmemptrs_t;
+#pragma pack(pop)
+
+// -----
+// stats
+// -----
+typedef struct _gsl_rbstats_t {
+ __int64 wraps;
+ __int64 issues;
+ __int64 wordstotal;
+} gsl_rbstats_t;
+
+
+// -----------------
+// ringbuffer object
+// -----------------
+typedef struct _gsl_ringbuffer_t {
+
+ gsl_device_t *device;
+ gsl_flags_t flags;
+#ifdef GSL_LOCKING_FINEGRAIN
+ oshandle_t mutex;
+#endif
+ gsl_memdesc_t buffer_desc; // allocated memory descriptor
+ gsl_memdesc_t memptrs_desc;
+
+ gsl_rbmemptrs_t *memptrs;
+
+ unsigned int sizedwords; // ring buffer size dwords
+ unsigned int blksizequadwords;
+
+ unsigned int wptr; // write pointer offset in dwords from baseaddr
+ unsigned int rptr; // read pointer offset in dwords from baseaddr
+ gsl_timestamp_t timestamp;
+
+
+ gsl_rbwatchdog_t watchdog;
+
+#ifdef GSL_STATS_RINGBUFFER
+ gsl_rbstats_t stats;
+#endif // GSL_STATS_RINGBUFFER
+
+} gsl_ringbuffer_t;
+
+
+//////////////////////////////////////////////////////////////////////////////
+// macros
+//////////////////////////////////////////////////////////////////////////////
+
+#ifdef GSL_LOCKING_FINEGRAIN
+#define GSL_RB_MUTEX_CREATE() rb->mutex = kos_mutex_create("gsl_ringbuffer"); \
+ if (!rb->mutex) {return (GSL_FAILURE);}
+#define GSL_RB_MUTEX_LOCK() kos_mutex_lock(rb->mutex)
+#define GSL_RB_MUTEX_UNLOCK() kos_mutex_unlock(rb->mutex)
+#define GSL_RB_MUTEX_FREE() kos_mutex_free(rb->mutex); rb->mutex = 0;
+#else
+#define GSL_RB_MUTEX_CREATE()
+#define GSL_RB_MUTEX_LOCK()
+#define GSL_RB_MUTEX_UNLOCK()
+#define GSL_RB_MUTEX_FREE()
+#endif
+
+// ----------
+// ring write
+// ----------
+#define GSL_RB_WRITE(ring, data) \
+ KGSL_DEBUG(GSL_DBGFLAGS_DUMPX, KGSL_DEBUG_DUMPX(BB_DUMP_RINGBUF_WRT, (unsigned int)ring, data, 0, "GSL_RB_WRITE")); \
+ *(unsigned int *)(ring)++ = (unsigned int)(data);
+
+// ---------
+// timestamp
+// ---------
+#ifdef GSL_DEVICE_SHADOW_MEMSTORE_TO_USER
+#define GSL_RB_USE_MEM_TIMESTAMP
+#endif //GSL_DEVICE_SHADOW_MEMSTORE_TO_USER
+
+#ifdef GSL_RB_USE_MEM_TIMESTAMP
+#define GSL_RB_MEMPTRS_SCRATCH_MASK 0x1 // enable timestamp (...scratch0) memory shadowing
+#define GSL_RB_INIT_TIMESTAMP(rb)
+
+#else
+#define GSL_RB_MEMPTRS_SCRATCH_MASK 0x0 // disable
+#define GSL_RB_INIT_TIMESTAMP(rb) kgsl_device_regwrite((rb)->device->id, mmCP_TIMESTAMP, 0);
+#endif // GSL_RB_USE_MEMTIMESTAMP
+
+// --------
+// mem rptr
+// --------
+#ifdef GSL_RB_USE_MEM_RPTR
+#define GSL_RB_CNTL_NO_UPDATE 0x0 // enable
+#define GSL_RB_GET_READPTR(rb, data) kgsl_sharedmem_read0(&(rb)->memptrs_desc, (data), GSL_RB_MEMPTRS_RPTR_OFFSET, 4, false)
+#else
+#define GSL_RB_CNTL_NO_UPDATE 0x1 // disable
+#define GSL_RB_GET_READPTR(rb, data) (rb)->device->fbtl.device_regread((rb)->device, mmCP_RB_RPTR,(data))
+#endif // GSL_RB_USE_MEMRPTR
+
+// ------------
+// wptr polling
+// ------------
+#ifdef GSL_RB_USE_WPTR_POLLING
+#define GSL_RB_CNTL_POLL_EN 0x1 // enable
+#define GSL_RB_UPDATE_WPTR_POLLING(rb) (rb)->memptrs->wptr_poll = (rb)->wptr
+#else
+#define GSL_RB_CNTL_POLL_EN 0x0 // disable
+#define GSL_RB_UPDATE_WPTR_POLLING(rb)
+#endif // GSL_RB_USE_WPTR_POLLING
+
+// -----
+// stats
+// -----
+#ifdef GSL_STATS_RINGBUFFER
+#define GSL_RB_STATS(x) x
+#else
+#define GSL_RB_STATS(x)
+#endif // GSL_STATS_RINGBUFFER
+
+
+//////////////////////////////////////////////////////////////////////////////
+// prototypes
+//////////////////////////////////////////////////////////////////////////////
+int kgsl_ringbuffer_init(gsl_device_t *device);
+int kgsl_ringbuffer_close(gsl_ringbuffer_t *rb);
+int kgsl_ringbuffer_start(gsl_ringbuffer_t *rb);
+int kgsl_ringbuffer_stop(gsl_ringbuffer_t *rb);
+gsl_timestamp_t kgsl_ringbuffer_issuecmds(gsl_device_t *device, int pmodeoff, unsigned int *cmdaddr, int sizedwords, unsigned int pid);
+int kgsl_ringbuffer_issueibcmds(gsl_device_t *device, int drawctxt_index, gpuaddr_t ibaddr, int sizedwords, gsl_timestamp_t *timestamp, gsl_flags_t flags);
+void kgsl_ringbuffer_watchdog(void);
+
+int kgsl_ringbuffer_querystats(gsl_ringbuffer_t *rb, gsl_rbstats_t *stats);
+int kgsl_ringbuffer_bist(gsl_ringbuffer_t *rb);
+
+#endif // __GSL_RINGBUFFER_H
diff --git a/drivers/mxc/amd-gpu/include/gsl_sharedmem.h b/drivers/mxc/amd-gpu/include/gsl_sharedmem.h
new file mode 100644
index 000000000000..bb9692cc1e44
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/gsl_sharedmem.h
@@ -0,0 +1,110 @@
+/* Copyright (c) 2002,2007-2010, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef __GSL_SHAREDMEM_H
+#define __GSL_SHAREDMEM_H
+
+
+//////////////////////////////////////////////////////////////////////////////
+// defines
+//////////////////////////////////////////////////////////////////////////////
+
+#define GSL_APERTURE_MASK 0x000000FF
+#define GSL_DEVICEID_MASK 0x0000FF00
+#define GSL_EXTALLOC_MASK 0x000F0000
+
+#define GSL_APERTURE_SHIFT 0
+#define GSL_DEVICEID_SHIFT 8
+#define GSL_EXTALLOC_SHIFT 16
+
+#define GSL_APERTURE_GETGPUADDR(shmem, aperture_index) \
+ shmem.apertures[aperture_index].memarena->gpubaseaddr;
+
+#define GSL_APERTURE_GETHOSTADDR(shmem, aperture_index) \
+ shmem.apertures[aperture_index].memarena->hostbaseaddr;
+
+//////////////////////////////////////////////////////////////////////////////
+// types
+//////////////////////////////////////////////////////////////////////////////
+
+// ---------------------
+// memory aperture stats
+// ---------------------
+typedef struct _gsl_aperture_stats_t
+{
+ gsl_apertureid_t id;
+ gsl_channelid_t channel;
+ gsl_memarena_stats_t memarena;
+} gsl_aperture_stats_t;
+
+// -------------------
+// shared memory stats
+// -------------------
+typedef struct _gsl_sharedmem_stats_t
+{
+ gsl_aperture_stats_t apertures[GSL_SHMEM_MAX_APERTURES];
+} gsl_sharedmem_stats_t;
+
+// ---------------
+// memory aperture
+// ---------------
+typedef struct _gsl_aperture_t
+{
+ gsl_apertureid_t id;
+ gsl_channelid_t channel;
+ int numbanks;
+ gsl_memarena_t *memarena;
+} gsl_aperture_t;
+
+// --------------------
+// shared memory object
+// --------------------
+typedef struct _gsl_sharedmem_t
+{
+ gsl_flags_t flags;
+ unsigned int priv;
+ int numapertures;
+ gsl_aperture_t apertures[GSL_SHMEM_MAX_APERTURES];
+ int aperturelookup[GSL_APERTURE_MAX][GSL_CHANNEL_MAX];
+} gsl_sharedmem_t;
+
+
+//////////////////////////////////////////////////////////////////////////////
+// prototypes
+//////////////////////////////////////////////////////////////////////////////
+int kgsl_sharedmem_init(gsl_sharedmem_t *shmem);
+int kgsl_sharedmem_close(gsl_sharedmem_t *shmem);
+int kgsl_sharedmem_alloc0(gsl_deviceid_t device_id, gsl_flags_t flags, int sizebytes, gsl_memdesc_t *memdesc);
+int kgsl_sharedmem_free0(gsl_memdesc_t *memdesc, unsigned int pid);
+int kgsl_sharedmem_read0(const gsl_memdesc_t *memdesc, void *dst, unsigned int offsetbytes, unsigned int sizebytes, unsigned int touserspace);
+int kgsl_sharedmem_write0(const gsl_memdesc_t *memdesc, unsigned int offsetbytes, void *src, unsigned int sizebytes, unsigned int fromuserspace);
+int kgsl_sharedmem_set0(const gsl_memdesc_t *memdesc, unsigned int offsetbytes, unsigned int value, unsigned int sizebytes);
+int kgsl_sharedmem_querystats(gsl_sharedmem_t *shmem, gsl_sharedmem_stats_t *stats);
+unsigned int kgsl_sharedmem_convertaddr(unsigned int addr, int type);
+
+#endif // __GSL_SHAREDMEM_H
diff --git a/drivers/mxc/amd-gpu/include/gsl_tbdump.h b/drivers/mxc/amd-gpu/include/gsl_tbdump.h
new file mode 100644
index 000000000000..53b30a8442e7
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/gsl_tbdump.h
@@ -0,0 +1,38 @@
+/* Copyright (c) 2008-2010, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora Forum nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef __GSL_TBDUMP_H
+#define __GSL_TBDUMP_H
+
+void tbdump_open(char* filename);
+void tbdump_close();
+void tbdump_syncmem(unsigned int addr, unsigned int src, unsigned int sizebytes);
+void tbdump_setmem(unsigned int addr, unsigned int value, unsigned int sizebytes);
+void tbdump_slavewrite(unsigned int addr, unsigned int value);
+
+#endif // __GSL_TBDUMP_H
diff --git a/drivers/mxc/amd-gpu/include/reg/g12_reg.h b/drivers/mxc/amd-gpu/include/reg/g12_reg.h
new file mode 100644
index 000000000000..d12d419822a2
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/reg/g12_reg.h
@@ -0,0 +1,41 @@
+/* Copyright (c) 2002,2007-2010, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided
+ * with the distribution.
+ * * Neither the name of Code Aurora Forum, Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef _G12_H
+#define _G12_H
+
+#ifdef _Z180
+#include "vgc/vgregs_z180.h"
+#include "vgc/vgenums_z180.h"
+#else
+#include "vgc/vgregs_z160.h"
+#include "vgc/vgenums_z160.h"
+#endif
+
+#endif // _G12_H
diff --git a/drivers/mxc/amd-gpu/include/reg/vgc/vgenums_z160.h b/drivers/mxc/amd-gpu/include/reg/vgc/vgenums_z160.h
new file mode 100644
index 000000000000..911c22fbbba6
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/reg/vgc/vgenums_z160.h
@@ -0,0 +1,291 @@
+/* Copyright (c) 2002,2007-2010, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided
+ * with the distribution.
+ * * Neither the name of Code Aurora Forum, Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef __REGS_ENUMS_H
+#define __REGS_ENUMS_H
+
+typedef enum _BB_CULL {
+ BB_CULL_NONE = 0,
+ BB_CULL_CW = 1,
+ BB_CULL_CCW = 2,
+} BB_CULL;
+
+typedef enum _BB_TEXTUREADDRESS {
+ BB_TADDRESS_WRAP = 0,
+ BB_TADDRESS_CLAMP = 1,
+ BB_TADDRESS_BORDER = 2,
+ BB_TADDRESS_MIRROR = 4,
+ BB_TADDRESS_MIRRORCLAMP = 5, // Not supported on G3x cores
+ BB_TADDRESS_MIRRORBORDER = 6, // Not supported on G3x cores
+} BB_TEXTUREADDRESS;
+
+typedef enum _BB_TEXTYPE {
+ BB_TEXTYPE_4444 = 0,
+ BB_TEXTYPE_1555 = 1,
+ BB_TEXTYPE_5551 = 2,
+ BB_TEXTYPE_565 = 3,
+ BB_TEXTYPE_8888 = 4,
+ BB_TEXTYPE_8 = 5,
+ BB_TEXTYPE_88 = 6,
+ BB_TEXTYPE_4 = 7,
+ BB_TEXTYPE_44 = 8,
+ BB_TEXTYPE_UYVY = 9,
+ BB_TEXTYPE_YUY2 = 10,
+ BB_TEXTYPE_YVYU = 11,
+ BB_TEXTYPE_DXT1 = 12,
+ BB_TEXTYPE_PACKMAN = 13,
+ BB_TEXTYPE_PACKMAN_ALPHA4 = 14,
+ BB_TEXTYPE_1F16 = 15,
+ BB_TEXTYPE_2F16 = 16,
+ BB_TEXTYPE_4F16 = 17,
+ BB_TEXTYPE_IPACKMAN_RGB = 18,
+ BB_TEXTYPE_IPACKMAN_RGBA = 19,
+} BB_TEXTYPE;
+
+typedef enum _BB_CMPFUNC {
+ BB_CMP_NEVER = 0,
+ BB_CMP_LESS = 1,
+ BB_CMP_EQUAL = 2,
+ BB_CMP_LESSEQUAL = 3,
+ BB_CMP_GREATER = 4,
+ BB_CMP_NOTEQUAL = 5,
+ BB_CMP_GREATEREQUAL = 6,
+ BB_CMP_ALWAYS = 7,
+} BB_CMPFUNC;
+
+typedef enum _BB_STENCILOP {
+ BB_STENCILOP_KEEP = 0,
+ BB_STENCILOP_ZERO = 1,
+ BB_STENCILOP_REPLACE = 2,
+ BB_STENCILOP_INCRSAT = 3,
+ BB_STENCILOP_DECRSAT = 4,
+ BB_STENCILOP_INVERT = 5,
+ BB_STENCILOP_INCR = 6,
+ BB_STENCILOP_DECR = 7,
+} BB_STENCILOP;
+
+typedef enum _BB_PRIMITIVETYPE {
+ BB_PT_POINTLIST = 0,
+ BB_PT_LINELIST = 1,
+ BB_PT_LINESTRIP = 2,
+ BB_PT_TRIANGLELIST = 3,
+ BB_PT_TRIANGLESTRIP = 4,
+ BB_PT_TRIANGLEFAN = 5,
+} BB_PRIMITIVETYPE;
+
+typedef enum _BB_TEXTUREFILTERTYPE {
+ BB_TEXF_NONE = 0, // filtering disabled (valid for mip filter only)
+ BB_TEXF_POINT = 1, // nearest
+ BB_TEXF_LINEAR = 2, // linear interpolation
+} BB_TEXTUREFILTERTYPE;
+
+typedef enum _BB_BUFFER {
+ BB_BUFFER_PPCODE = 0, // Pixel processor code
+ BB_BUFFER_UNUSED = 1, // Unused
+ BB_BUFFER_CBUF = 2, // Color buffer
+ BB_BUFFER_ZBUF = 3, // Z buffer
+ BB_BUFFER_AUXBUF0 = 4, // AUX0 buffer
+ BB_BUFFER_AUXBUF1 = 5, // AUX1 buffer
+ BB_BUFFER_AUXBUF2 = 6, // AUX2 buffer
+ BB_BUFFER_AUXBUF3 = 7, // AUX3 buffer
+} BB_BUFFER;
+
+typedef enum _BB_COLORFORMAT {
+ BB_COLOR_ARGB4444 = 0,
+ BB_COLOR_ARGB0565 = 1,
+ BB_COLOR_ARGB1555 = 2,
+ BB_COLOR_RGBA5551 = 3,
+ BB_COLOR_ARGB8888 = 4,
+ BB_COLOR_R16 = 5,
+ BB_COLOR_RG1616 = 6,
+ BB_COLOR_ARGB16161616 = 7,
+ BB_COLOR_D16 = 8,
+ BB_COLOR_S4D12 = 9,
+ BB_COLOR_S1D15 = 10,
+ BB_COLOR_X8D24 = 11,
+ BB_COLOR_S8D24 = 12,
+ BB_COLOR_X2D30 = 13,
+} BB_COLORFORMAT;
+
+typedef enum _BB_PP_REGCONFIG {
+ BB_PP_REGCONFIG_1 = 0,
+ BB_PP_REGCONFIG_2 = 1,
+ BB_PP_REGCONFIG_3 = 8,
+ BB_PP_REGCONFIG_4 = 2,
+ BB_PP_REGCONFIG_6 = 9,
+ BB_PP_REGCONFIG_8 = 3,
+ BB_PP_REGCONFIG_12 = 10,
+ BB_PP_REGCONFIG_16 = 4,
+ BB_PP_REGCONFIG_24 = 11,
+ BB_PP_REGCONFIG_32 = 5,
+} BB_PP_REGCONFIG;
+
+typedef enum _G2D_read_t {
+ G2D_READ_DST = 0,
+ G2D_READ_SRC1 = 1,
+ G2D_READ_SRC2 = 2,
+ G2D_READ_SRC3 = 3,
+} G2D_read_t;
+
+typedef enum _G2D_format_t {
+ G2D_1 = 0, // foreground & background
+ G2D_1BW = 1, // black & white
+ G2D_4 = 2,
+ G2D_8 = 3, // alpha
+ G2D_4444 = 4,
+ G2D_1555 = 5,
+ G2D_0565 = 6,
+ G2D_8888 = 7,
+ G2D_YUY2 = 8,
+ G2D_UYVY = 9,
+ G2D_YVYU = 10,
+ G2D_4444_RGBA = 11,
+ G2D_5551_RGBA = 12,
+ G2D_8888_RGBA = 13,
+ G2D_A8 = 14, // for alpha texture only
+} G2D_format_t;
+
+typedef enum _G2D_wrap_t {
+ G2D_WRAP_CLAMP = 0,
+ G2D_WRAP_REPEAT = 1,
+ G2D_WRAP_MIRROR = 2,
+ G2D_WRAP_BORDER = 3,
+} G2D_wrap_t;
+
+typedef enum _G2D_BLEND_OP {
+ G2D_BLENDOP_ADD = 0,
+ G2D_BLENDOP_SUB = 1,
+ G2D_BLENDOP_MIN = 2,
+ G2D_BLENDOP_MAX = 3,
+} G2D_BLEND_OP;
+
+typedef enum _G2D_GRAD_OP {
+ G2D_GRADOP_DOT = 0,
+ G2D_GRADOP_RCP = 1,
+ G2D_GRADOP_SQRTMUL = 2,
+ G2D_GRADOP_SQRTADD = 3,
+} G2D_GRAD_OP;
+
+typedef enum _G2D_BLEND_SRC {
+ G2D_BLENDSRC_ZERO = 0, // One with invert
+ G2D_BLENDSRC_SOURCE = 1, // Paint with coverage alpha applied
+ G2D_BLENDSRC_DESTINATION = 2,
+ G2D_BLENDSRC_IMAGE = 3, // Second texture
+ G2D_BLENDSRC_TEMP0 = 4,
+ G2D_BLENDSRC_TEMP1 = 5,
+ G2D_BLENDSRC_TEMP2 = 6,
+} G2D_BLEND_SRC;
+
+typedef enum _G2D_BLEND_DST {
+ G2D_BLENDDST_IGNORE = 0, // Ignore destination
+ G2D_BLENDDST_TEMP0 = 1,
+ G2D_BLENDDST_TEMP1 = 2,
+ G2D_BLENDDST_TEMP2 = 3,
+} G2D_BLEND_DST;
+
+typedef enum _G2D_BLEND_CONST {
+ G2D_BLENDSRC_CONST0 = 0,
+ G2D_BLENDSRC_CONST1 = 1,
+ G2D_BLENDSRC_CONST2 = 2,
+ G2D_BLENDSRC_CONST3 = 3,
+ G2D_BLENDSRC_CONST4 = 4,
+ G2D_BLENDSRC_CONST5 = 5,
+ G2D_BLENDSRC_CONST6 = 6,
+ G2D_BLENDSRC_CONST7 = 7,
+} G2D_BLEND_CONST;
+
+typedef enum _V3_NEXTCMD {
+ VGV3_NEXTCMD_CONTINUE = 0, // Continue reading at current address, COUNT gives size of next packet.
+ VGV3_NEXTCMD_JUMP = 1, // Jump to CALLADDR, COUNT gives size of next packet.
+ VGV3_NEXTCMD_CALL = 2, // First call a sub-stream at CALLADDR for CALLCOUNT dwords. Then perform a continue.
+ VGV3_NEXTCMD_CALLV2TRUE = 3, // Not supported.
+ VGV3_NEXTCMD_CALLV2FALSE = 4, // Not supported.
+ VGV3_NEXTCMD_ABORT = 5, // Abort reading. This ends the stream. Normally stream can just be paused (or automatically pauses at the end) which avoids any data being lost.
+} V3_NEXTCMD;
+
+typedef enum _V3_FORMAT {
+ VGV3_FORMAT_S8 = 0, // Signed 8 bit data (4 writes per data dword) => VGV2-float
+ VGV3_FORMAT_S16 = 1, // Signed 16 bit data (2 writes per data dword) => VGV2-float
+ VGV3_FORMAT_S32 = 2, // Signed 32 bit data => VGV2-float
+ VGV3_FORMAT_F32 = 3, // IEEE 32-bit floating point => VGV2-float
+ VGV3_FORMAT_RAW = 4, // No conversion
+} V3_FORMAT;
+
+typedef enum _V2_ACTION {
+ VGV2_ACTION_END = 0, // end previous path
+ VGV2_ACTION_MOVETOOPEN = 1, // end previous path, C1=C4, start new open subpath
+ VGV2_ACTION_MOVETOCLOSED = 2, // end previous path, C1=C4, start new closed subpath
+ VGV2_ACTION_LINETO = 3, // line C1,C4
+ VGV2_ACTION_CUBICTO = 4, // cubic C1,C2,C3,C4.
+ VGV2_ACTION_QUADTO = 5, // quadratic C1,C3,C4.
+ VGV2_ACTION_SCUBICTO = 6, // smooth cubic C1,C4.
+ VGV2_ACTION_SQUADTO = 7, // smooth quadratic C1,C3,C4.
+ VGV2_ACTION_VERTEXTO = 8, // half lineto C4=pos, C3=normal.
+ VGV2_ACTION_VERTEXTOOPEN = 9, // moveto open + half lineto C4=pos, C3=normal.
+ VGV2_ACTION_VERTEXTOCLOSED = 10, // moveto closed + half lineto C4=pos, C3=normal.
+ VGV2_ACTION_MOVETOMOVE = 11, // end previous path, C1=C4, move but do not start a subpath
+ VGV2_ACTION_FLUSH = 15, // end previous path and block following regwrites until all lines sent
+} V2_ACTION;
+
+typedef enum _V2_CAP {
+ VGV2_CAP_BUTT = 0, // butt caps (straight line overlappin starting point
+ VGV2_CAP_ROUND = 1, // round caps (smoothness depends on ARCSIN/ARCCOS registers)
+ VGV2_CAP_SQUARE = 2, // square caps (square centered on starting point)
+} V2_CAP;
+
+typedef enum _V2_JOIN {
+ VGV2_JOIN_MITER = 0, // miter joins (both sides extended towards intersection. If angle is too small (compared to STMITER register) the miter is converted into a BEVEL.
+ VGV2_JOIN_ROUND = 1, // round joins (smoothness depends on ARCSIN/ARCCOS registers)
+ VGV2_JOIN_BEVEL = 2, // bevel joins (ends of both sides are connected with a single line)
+} V2_JOIN;
+
+enum
+{
+ G2D_GRADREG_X = 0, // also usable as temp
+ G2D_GRADREG_Y = 1, // also usable as temp
+ G2D_GRADREG_OUTX = 8,
+ G2D_GRADREG_OUTY = 9,
+ G2D_GRADREG_C0 = 16,
+ G2D_GRADREG_C1 = 17,
+ G2D_GRADREG_C2 = 18,
+ G2D_GRADREG_C3 = 19,
+ G2D_GRADREG_C4 = 20,
+ G2D_GRADREG_C5 = 21,
+ G2D_GRADREG_C6 = 22,
+ G2D_GRADREG_C7 = 23,
+ G2D_GRADREG_C8 = 24,
+ G2D_GRADREG_C9 = 25,
+ G2D_GRADREG_C10 = 26,
+ G2D_GRADREG_C11 = 27,
+ G2D_GRADREG_ZERO = 28,
+ G2D_GRADREG_ONE = 29,
+ G2D_GRADREG_MINUSONE = 30,
+};
+
+#endif
diff --git a/drivers/mxc/amd-gpu/include/reg/vgc/vgregs_z160.h b/drivers/mxc/amd-gpu/include/reg/vgc/vgregs_z160.h
new file mode 100644
index 000000000000..1660bc1c12a9
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/reg/vgc/vgregs_z160.h
@@ -0,0 +1,3775 @@
+/* Copyright (c) 2002,2007-2010, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided
+ * with the distribution.
+ * * Neither the name of Code Aurora Forum, Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef __REGS_G4X_DRIVER_H
+#define __REGS_G4X_DRIVER_H
+
+#ifndef _LINUX
+#include <assert.h>
+#else
+#ifndef assert
+#define assert(expr)
+#endif
+#endif
+
+//-----------------------------------------------------
+// REGISTER ADDRESSES
+//-----------------------------------------------------
+
+#define ADDR_FBC_BASE 0x84
+#define ADDR_FBC_DATA 0x86
+#define ADDR_FBC_HEIGHT 0x8a
+#define ADDR_FBC_START 0x8e
+#define ADDR_FBC_STRIDE 0x8c
+#define ADDR_FBC_WIDTH 0x88
+#define ADDR_VGC_CLOCKEN 0x508
+#define ADDR_VGC_COMMANDSTREAM 0x0
+#define ADDR_VGC_FIFOFREE 0x7c0
+#define ADDR_VGC_IRQENABLE 0x438
+#define ADDR_VGC_IRQSTATUS 0x418
+#define ADDR_VGC_IRQ_ACTIVE_CNT 0x4e0
+#define ADDR_VGC_MMUCOMMANDSTREAM 0x3fc
+#define ADDR_VGC_REVISION 0x400
+#define ADDR_VGC_SYSSTATUS 0x410
+#define ADDR_G2D_ALPHABLEND 0xc
+#define ADDR_G2D_BACKGROUND 0xb
+#define ADDR_G2D_BASE0 0x0
+#define ADDR_G2D_BASE1 0x2
+#define ADDR_G2D_BASE2 0x4
+#define ADDR_G2D_BASE3 0x6
+#define ADDR_G2D_BLENDERCFG 0x11
+#define ADDR_G2D_BLEND_A0 0x14
+#define ADDR_G2D_BLEND_A1 0x15
+#define ADDR_G2D_BLEND_A2 0x16
+#define ADDR_G2D_BLEND_A3 0x17
+#define ADDR_G2D_BLEND_C0 0x18
+#define ADDR_G2D_BLEND_C1 0x19
+#define ADDR_G2D_BLEND_C2 0x1a
+#define ADDR_G2D_BLEND_C3 0x1b
+#define ADDR_G2D_BLEND_C4 0x1c
+#define ADDR_G2D_BLEND_C5 0x1d
+#define ADDR_G2D_BLEND_C6 0x1e
+#define ADDR_G2D_BLEND_C7 0x1f
+#define ADDR_G2D_CFG0 0x1
+#define ADDR_G2D_CFG1 0x3
+#define ADDR_G2D_CFG2 0x5
+#define ADDR_G2D_CFG3 0x7
+#define ADDR_G2D_COLOR 0xff
+#define ADDR_G2D_CONFIG 0xe
+#define ADDR_G2D_CONST0 0xb0
+#define ADDR_G2D_CONST1 0xb1
+#define ADDR_G2D_CONST2 0xb2
+#define ADDR_G2D_CONST3 0xb3
+#define ADDR_G2D_CONST4 0xb4
+#define ADDR_G2D_CONST5 0xb5
+#define ADDR_G2D_CONST6 0xb6
+#define ADDR_G2D_CONST7 0xb7
+#define ADDR_G2D_FOREGROUND 0xa
+#define ADDR_G2D_GRADIENT 0xd0
+#define ADDR_G2D_IDLE 0xfe
+#define ADDR_G2D_INPUT 0xf
+#define ADDR_G2D_MASK 0x10
+#define ADDR_G2D_ROP 0xd
+#define ADDR_G2D_SCISSORX 0x8
+#define ADDR_G2D_SCISSORY 0x9
+#define ADDR_G2D_SXY 0xf2
+#define ADDR_G2D_SXY2 0xf3
+#define ADDR_G2D_VGSPAN 0xf4
+#define ADDR_G2D_WIDTHHEIGHT 0xf1
+#define ADDR_G2D_XY 0xf0
+#define ADDR_GRADW_BORDERCOLOR 0xd4
+#define ADDR_GRADW_CONST0 0xc0
+#define ADDR_GRADW_CONST1 0xc1
+#define ADDR_GRADW_CONST2 0xc2
+#define ADDR_GRADW_CONST3 0xc3
+#define ADDR_GRADW_CONST4 0xc4
+#define ADDR_GRADW_CONST5 0xc5
+#define ADDR_GRADW_CONST6 0xc6
+#define ADDR_GRADW_CONST7 0xc7
+#define ADDR_GRADW_CONST8 0xc8
+#define ADDR_GRADW_CONST9 0xc9
+#define ADDR_GRADW_CONSTA 0xca
+#define ADDR_GRADW_CONSTB 0xcb
+#define ADDR_GRADW_INST0 0xe0
+#define ADDR_GRADW_INST1 0xe1
+#define ADDR_GRADW_INST2 0xe2
+#define ADDR_GRADW_INST3 0xe3
+#define ADDR_GRADW_INST4 0xe4
+#define ADDR_GRADW_INST5 0xe5
+#define ADDR_GRADW_INST6 0xe6
+#define ADDR_GRADW_INST7 0xe7
+#define ADDR_GRADW_TEXBASE 0xd3
+#define ADDR_GRADW_TEXCFG 0xd1
+#define ADDR_GRADW_TEXSIZE 0xd2
+#define ADDR_MH_ARBITER_CONFIG 0xa40
+#define ADDR_MH_AXI_ERROR 0xa45
+#define ADDR_MH_AXI_HALT_CONTROL 0xa50
+#define ADDR_MH_CLNT_AXI_ID_REUSE 0xa41
+#define ADDR_MH_DEBUG_CTRL 0xa4e
+#define ADDR_MH_DEBUG_DATA 0xa4f
+#define ADDR_MH_INTERRUPT_CLEAR 0xa44
+#define ADDR_MH_INTERRUPT_MASK 0xa42
+#define ADDR_MH_INTERRUPT_STATUS 0xa43
+#define ADDR_MH_MMU_CONFIG 0x40
+#define ADDR_MH_MMU_INVALIDATE 0x45
+#define ADDR_MH_MMU_MPU_BASE 0x46
+#define ADDR_MH_MMU_MPU_END 0x47
+#define ADDR_MH_MMU_PAGE_FAULT 0x43
+#define ADDR_MH_MMU_PT_BASE 0x42
+#define ADDR_MH_MMU_TRAN_ERROR 0x44
+#define ADDR_MH_MMU_VA_RANGE 0x41
+#define ADDR_MH_PERFCOUNTER0_CONFIG 0xa47
+#define ADDR_MH_PERFCOUNTER0_HI 0xa49
+#define ADDR_MH_PERFCOUNTER0_LOW 0xa48
+#define ADDR_MH_PERFCOUNTER0_SELECT 0xa46
+#define ADDR_MH_PERFCOUNTER1_CONFIG 0xa4b
+#define ADDR_MH_PERFCOUNTER1_HI 0xa4d
+#define ADDR_MH_PERFCOUNTER1_LOW 0xa4c
+#define ADDR_MH_PERFCOUNTER1_SELECT 0xa4a
+#define ADDR_MMU_READ_ADDR 0x510
+#define ADDR_MMU_READ_DATA 0x518
+#define ADDR_VGV1_CBASE1 0x2a
+#define ADDR_VGV1_CFG1 0x27
+#define ADDR_VGV1_CFG2 0x28
+#define ADDR_VGV1_DIRTYBASE 0x29
+#define ADDR_VGV1_FILL 0x23
+#define ADDR_VGV1_SCISSORX 0x24
+#define ADDR_VGV1_SCISSORY 0x25
+#define ADDR_VGV1_TILEOFS 0x22
+#define ADDR_VGV1_UBASE2 0x2b
+#define ADDR_VGV1_VTX0 0x20
+#define ADDR_VGV1_VTX1 0x21
+#define ADDR_VGV2_ACCURACY 0x60
+#define ADDR_VGV2_ACTION 0x6f
+#define ADDR_VGV2_ARCCOS 0x62
+#define ADDR_VGV2_ARCSIN 0x63
+#define ADDR_VGV2_ARCTAN 0x64
+#define ADDR_VGV2_BBOXMAXX 0x5c
+#define ADDR_VGV2_BBOXMAXY 0x5d
+#define ADDR_VGV2_BBOXMINX 0x5a
+#define ADDR_VGV2_BBOXMINY 0x5b
+#define ADDR_VGV2_BIAS 0x5f
+#define ADDR_VGV2_C1X 0x40
+#define ADDR_VGV2_C1XREL 0x48
+#define ADDR_VGV2_C1Y 0x41
+#define ADDR_VGV2_C1YREL 0x49
+#define ADDR_VGV2_C2X 0x42
+#define ADDR_VGV2_C2XREL 0x4a
+#define ADDR_VGV2_C2Y 0x43
+#define ADDR_VGV2_C2YREL 0x4b
+#define ADDR_VGV2_C3X 0x44
+#define ADDR_VGV2_C3XREL 0x4c
+#define ADDR_VGV2_C3Y 0x45
+#define ADDR_VGV2_C3YREL 0x4d
+#define ADDR_VGV2_C4X 0x46
+#define ADDR_VGV2_C4XREL 0x4e
+#define ADDR_VGV2_C4Y 0x47
+#define ADDR_VGV2_C4YREL 0x4f
+#define ADDR_VGV2_CLIP 0x68
+#define ADDR_VGV2_FIRST 0x40
+#define ADDR_VGV2_LAST 0x6f
+#define ADDR_VGV2_MITER 0x66
+#define ADDR_VGV2_MODE 0x6e
+#define ADDR_VGV2_RADIUS 0x65
+#define ADDR_VGV2_SCALE 0x5e
+#define ADDR_VGV2_THINRADIUS 0x61
+#define ADDR_VGV2_XFSTXX 0x56
+#define ADDR_VGV2_XFSTXY 0x58
+#define ADDR_VGV2_XFSTYX 0x57
+#define ADDR_VGV2_XFSTYY 0x59
+#define ADDR_VGV2_XFXA 0x54
+#define ADDR_VGV2_XFXX 0x50
+#define ADDR_VGV2_XFXY 0x52
+#define ADDR_VGV2_XFYA 0x55
+#define ADDR_VGV2_XFYX 0x51
+#define ADDR_VGV2_XFYY 0x53
+#define ADDR_VGV3_CONTROL 0x70
+#define ADDR_VGV3_FIRST 0x70
+#define ADDR_VGV3_LAST 0x7f
+#define ADDR_VGV3_MODE 0x71
+#define ADDR_VGV3_NEXTADDR 0x75
+#define ADDR_VGV3_NEXTCMD 0x76
+#define ADDR_VGV3_VGBYPASS 0x77
+#define ADDR_VGV3_WRITE 0x73
+#define ADDR_VGV3_WRITEADDR 0x72
+#define ADDR_VGV3_WRITEDMI 0x7d
+#define ADDR_VGV3_WRITEF32 0x7b
+#define ADDR_VGV3_WRITEIFPAUSED 0x74
+#define ADDR_VGV3_WRITERAW 0x7c
+#define ADDR_VGV3_WRITES16 0x79
+#define ADDR_VGV3_WRITES32 0x7a
+#define ADDR_VGV3_WRITES8 0x78
+
+// FBC_BASE
+typedef struct _REG_FBC_BASE {
+ unsigned BASE : 32;
+} REG_FBC_BASE;
+
+// FBC_DATA
+typedef struct _REG_FBC_DATA {
+ unsigned DATA : 32;
+} REG_FBC_DATA;
+
+// FBC_HEIGHT
+typedef struct _REG_FBC_HEIGHT {
+ unsigned HEIGHT : 11;
+} REG_FBC_HEIGHT;
+
+// FBC_START
+typedef struct _REG_FBC_START {
+ unsigned DUMMY : 1;
+} REG_FBC_START;
+
+// FBC_STRIDE
+typedef struct _REG_FBC_STRIDE {
+ unsigned STRIDE : 11;
+} REG_FBC_STRIDE;
+
+// FBC_WIDTH
+typedef struct _REG_FBC_WIDTH {
+ unsigned WIDTH : 11;
+} REG_FBC_WIDTH;
+
+// VGC_CLOCKEN
+typedef struct _REG_VGC_CLOCKEN {
+ unsigned BCACHE : 1;
+ unsigned G2D_VGL3 : 1;
+ unsigned VG_L1L2 : 1;
+ unsigned RESERVED : 3;
+} REG_VGC_CLOCKEN;
+
+// VGC_COMMANDSTREAM
+typedef struct _REG_VGC_COMMANDSTREAM {
+ unsigned DATA : 32;
+} REG_VGC_COMMANDSTREAM;
+
+// VGC_FIFOFREE
+typedef struct _REG_VGC_FIFOFREE {
+ unsigned FREE : 1;
+} REG_VGC_FIFOFREE;
+
+// VGC_IRQENABLE
+typedef struct _REG_VGC_IRQENABLE {
+ unsigned MH : 1;
+ unsigned G2D : 1;
+ unsigned FIFO : 1;
+ unsigned FBC : 1;
+} REG_VGC_IRQENABLE;
+
+// VGC_IRQSTATUS
+typedef struct _REG_VGC_IRQSTATUS {
+ unsigned MH : 1;
+ unsigned G2D : 1;
+ unsigned FIFO : 1;
+ unsigned FBC : 1;
+} REG_VGC_IRQSTATUS;
+
+// VGC_IRQ_ACTIVE_CNT
+typedef struct _REG_VGC_IRQ_ACTIVE_CNT {
+ unsigned MH : 8;
+ unsigned G2D : 8;
+ unsigned ERRORS : 8;
+ unsigned FBC : 8;
+} REG_VGC_IRQ_ACTIVE_CNT;
+
+// VGC_MMUCOMMANDSTREAM
+typedef struct _REG_VGC_MMUCOMMANDSTREAM {
+ unsigned DATA : 32;
+} REG_VGC_MMUCOMMANDSTREAM;
+
+// VGC_REVISION
+typedef struct _REG_VGC_REVISION {
+ unsigned MINOR_REVISION : 4;
+ unsigned MAJOR_REVISION : 4;
+} REG_VGC_REVISION;
+
+// VGC_SYSSTATUS
+typedef struct _REG_VGC_SYSSTATUS {
+ unsigned RESET : 1;
+} REG_VGC_SYSSTATUS;
+
+// G2D_ALPHABLEND
+typedef struct _REG_G2D_ALPHABLEND {
+ unsigned ALPHA : 8;
+ unsigned OBS_ENABLE : 1;
+ unsigned CONSTANT : 1;
+ unsigned INVERT : 1;
+ unsigned OPTIMIZE : 1;
+ unsigned MODULATE : 1;
+ unsigned INVERTMASK : 1;
+ unsigned PREMULTIPLYDST : 1;
+ unsigned MASKTOALPHA : 1;
+} REG_G2D_ALPHABLEND;
+
+// G2D_BACKGROUND
+typedef struct _REG_G2D_BACKGROUND {
+ unsigned COLOR : 32;
+} REG_G2D_BACKGROUND;
+
+// G2D_BASE0
+typedef struct _REG_G2D_BASE0 {
+ unsigned ADDR : 32;
+} REG_G2D_BASE0;
+
+// G2D_BASE1
+typedef struct _REG_G2D_BASE1 {
+ unsigned ADDR : 32;
+} REG_G2D_BASE1;
+
+// G2D_BASE2
+typedef struct _REG_G2D_BASE2 {
+ unsigned ADDR : 32;
+} REG_G2D_BASE2;
+
+// G2D_BASE3
+typedef struct _REG_G2D_BASE3 {
+ unsigned ADDR : 32;
+} REG_G2D_BASE3;
+
+// G2D_BLENDERCFG
+typedef struct _REG_G2D_BLENDERCFG {
+ unsigned PASSES : 3;
+ unsigned ALPHAPASSES : 2;
+ unsigned ENABLE : 1;
+ unsigned OOALPHA : 1;
+ unsigned OBS_DIVALPHA : 1;
+ unsigned NOMASK : 1;
+} REG_G2D_BLENDERCFG;
+
+// G2D_BLEND_A0
+typedef struct _REG_G2D_BLEND_A0 {
+ unsigned OPERATION : 2;
+ unsigned DST_A : 2;
+ unsigned DST_B : 2;
+ unsigned DST_C : 2;
+ unsigned AR_A : 1;
+ unsigned AR_B : 1;
+ unsigned AR_C : 1;
+ unsigned AR_D : 1;
+ unsigned INV_A : 1;
+ unsigned INV_B : 1;
+ unsigned INV_C : 1;
+ unsigned INV_D : 1;
+ unsigned SRC_A : 3;
+ unsigned SRC_B : 3;
+ unsigned SRC_C : 3;
+ unsigned SRC_D : 3;
+ unsigned CONST_A : 1;
+ unsigned CONST_B : 1;
+ unsigned CONST_C : 1;
+ unsigned CONST_D : 1;
+} REG_G2D_BLEND_A0;
+
+// G2D_BLEND_A1
+typedef struct _REG_G2D_BLEND_A1 {
+ unsigned OPERATION : 2;
+ unsigned DST_A : 2;
+ unsigned DST_B : 2;
+ unsigned DST_C : 2;
+ unsigned AR_A : 1;
+ unsigned AR_B : 1;
+ unsigned AR_C : 1;
+ unsigned AR_D : 1;
+ unsigned INV_A : 1;
+ unsigned INV_B : 1;
+ unsigned INV_C : 1;
+ unsigned INV_D : 1;
+ unsigned SRC_A : 3;
+ unsigned SRC_B : 3;
+ unsigned SRC_C : 3;
+ unsigned SRC_D : 3;
+ unsigned CONST_A : 1;
+ unsigned CONST_B : 1;
+ unsigned CONST_C : 1;
+ unsigned CONST_D : 1;
+} REG_G2D_BLEND_A1;
+
+// G2D_BLEND_A2
+typedef struct _REG_G2D_BLEND_A2 {
+ unsigned OPERATION : 2;
+ unsigned DST_A : 2;
+ unsigned DST_B : 2;
+ unsigned DST_C : 2;
+ unsigned AR_A : 1;
+ unsigned AR_B : 1;
+ unsigned AR_C : 1;
+ unsigned AR_D : 1;
+ unsigned INV_A : 1;
+ unsigned INV_B : 1;
+ unsigned INV_C : 1;
+ unsigned INV_D : 1;
+ unsigned SRC_A : 3;
+ unsigned SRC_B : 3;
+ unsigned SRC_C : 3;
+ unsigned SRC_D : 3;
+ unsigned CONST_A : 1;
+ unsigned CONST_B : 1;
+ unsigned CONST_C : 1;
+ unsigned CONST_D : 1;
+} REG_G2D_BLEND_A2;
+
+// G2D_BLEND_A3
+typedef struct _REG_G2D_BLEND_A3 {
+ unsigned OPERATION : 2;
+ unsigned DST_A : 2;
+ unsigned DST_B : 2;
+ unsigned DST_C : 2;
+ unsigned AR_A : 1;
+ unsigned AR_B : 1;
+ unsigned AR_C : 1;
+ unsigned AR_D : 1;
+ unsigned INV_A : 1;
+ unsigned INV_B : 1;
+ unsigned INV_C : 1;
+ unsigned INV_D : 1;
+ unsigned SRC_A : 3;
+ unsigned SRC_B : 3;
+ unsigned SRC_C : 3;
+ unsigned SRC_D : 3;
+ unsigned CONST_A : 1;
+ unsigned CONST_B : 1;
+ unsigned CONST_C : 1;
+ unsigned CONST_D : 1;
+} REG_G2D_BLEND_A3;
+
+// G2D_BLEND_C0
+typedef struct _REG_G2D_BLEND_C0 {
+ unsigned OPERATION : 2;
+ unsigned DST_A : 2;
+ unsigned DST_B : 2;
+ unsigned DST_C : 2;
+ unsigned AR_A : 1;
+ unsigned AR_B : 1;
+ unsigned AR_C : 1;
+ unsigned AR_D : 1;
+ unsigned INV_A : 1;
+ unsigned INV_B : 1;
+ unsigned INV_C : 1;
+ unsigned INV_D : 1;
+ unsigned SRC_A : 3;
+ unsigned SRC_B : 3;
+ unsigned SRC_C : 3;
+ unsigned SRC_D : 3;
+ unsigned CONST_A : 1;
+ unsigned CONST_B : 1;
+ unsigned CONST_C : 1;
+ unsigned CONST_D : 1;
+} REG_G2D_BLEND_C0;
+
+// G2D_BLEND_C1
+typedef struct _REG_G2D_BLEND_C1 {
+ unsigned OPERATION : 2;
+ unsigned DST_A : 2;
+ unsigned DST_B : 2;
+ unsigned DST_C : 2;
+ unsigned AR_A : 1;
+ unsigned AR_B : 1;
+ unsigned AR_C : 1;
+ unsigned AR_D : 1;
+ unsigned INV_A : 1;
+ unsigned INV_B : 1;
+ unsigned INV_C : 1;
+ unsigned INV_D : 1;
+ unsigned SRC_A : 3;
+ unsigned SRC_B : 3;
+ unsigned SRC_C : 3;
+ unsigned SRC_D : 3;
+ unsigned CONST_A : 1;
+ unsigned CONST_B : 1;
+ unsigned CONST_C : 1;
+ unsigned CONST_D : 1;
+} REG_G2D_BLEND_C1;
+
+// G2D_BLEND_C2
+typedef struct _REG_G2D_BLEND_C2 {
+ unsigned OPERATION : 2;
+ unsigned DST_A : 2;
+ unsigned DST_B : 2;
+ unsigned DST_C : 2;
+ unsigned AR_A : 1;
+ unsigned AR_B : 1;
+ unsigned AR_C : 1;
+ unsigned AR_D : 1;
+ unsigned INV_A : 1;
+ unsigned INV_B : 1;
+ unsigned INV_C : 1;
+ unsigned INV_D : 1;
+ unsigned SRC_A : 3;
+ unsigned SRC_B : 3;
+ unsigned SRC_C : 3;
+ unsigned SRC_D : 3;
+ unsigned CONST_A : 1;
+ unsigned CONST_B : 1;
+ unsigned CONST_C : 1;
+ unsigned CONST_D : 1;
+} REG_G2D_BLEND_C2;
+
+// G2D_BLEND_C3
+typedef struct _REG_G2D_BLEND_C3 {
+ unsigned OPERATION : 2;
+ unsigned DST_A : 2;
+ unsigned DST_B : 2;
+ unsigned DST_C : 2;
+ unsigned AR_A : 1;
+ unsigned AR_B : 1;
+ unsigned AR_C : 1;
+ unsigned AR_D : 1;
+ unsigned INV_A : 1;
+ unsigned INV_B : 1;
+ unsigned INV_C : 1;
+ unsigned INV_D : 1;
+ unsigned SRC_A : 3;
+ unsigned SRC_B : 3;
+ unsigned SRC_C : 3;
+ unsigned SRC_D : 3;
+ unsigned CONST_A : 1;
+ unsigned CONST_B : 1;
+ unsigned CONST_C : 1;
+ unsigned CONST_D : 1;
+} REG_G2D_BLEND_C3;
+
+// G2D_BLEND_C4
+typedef struct _REG_G2D_BLEND_C4 {
+ unsigned OPERATION : 2;
+ unsigned DST_A : 2;
+ unsigned DST_B : 2;
+ unsigned DST_C : 2;
+ unsigned AR_A : 1;
+ unsigned AR_B : 1;
+ unsigned AR_C : 1;
+ unsigned AR_D : 1;
+ unsigned INV_A : 1;
+ unsigned INV_B : 1;
+ unsigned INV_C : 1;
+ unsigned INV_D : 1;
+ unsigned SRC_A : 3;
+ unsigned SRC_B : 3;
+ unsigned SRC_C : 3;
+ unsigned SRC_D : 3;
+ unsigned CONST_A : 1;
+ unsigned CONST_B : 1;
+ unsigned CONST_C : 1;
+ unsigned CONST_D : 1;
+} REG_G2D_BLEND_C4;
+
+// G2D_BLEND_C5
+typedef struct _REG_G2D_BLEND_C5 {
+ unsigned OPERATION : 2;
+ unsigned DST_A : 2;
+ unsigned DST_B : 2;
+ unsigned DST_C : 2;
+ unsigned AR_A : 1;
+ unsigned AR_B : 1;
+ unsigned AR_C : 1;
+ unsigned AR_D : 1;
+ unsigned INV_A : 1;
+ unsigned INV_B : 1;
+ unsigned INV_C : 1;
+ unsigned INV_D : 1;
+ unsigned SRC_A : 3;
+ unsigned SRC_B : 3;
+ unsigned SRC_C : 3;
+ unsigned SRC_D : 3;
+ unsigned CONST_A : 1;
+ unsigned CONST_B : 1;
+ unsigned CONST_C : 1;
+ unsigned CONST_D : 1;
+} REG_G2D_BLEND_C5;
+
+// G2D_BLEND_C6
+typedef struct _REG_G2D_BLEND_C6 {
+ unsigned OPERATION : 2;
+ unsigned DST_A : 2;
+ unsigned DST_B : 2;
+ unsigned DST_C : 2;
+ unsigned AR_A : 1;
+ unsigned AR_B : 1;
+ unsigned AR_C : 1;
+ unsigned AR_D : 1;
+ unsigned INV_A : 1;
+ unsigned INV_B : 1;
+ unsigned INV_C : 1;
+ unsigned INV_D : 1;
+ unsigned SRC_A : 3;
+ unsigned SRC_B : 3;
+ unsigned SRC_C : 3;
+ unsigned SRC_D : 3;
+ unsigned CONST_A : 1;
+ unsigned CONST_B : 1;
+ unsigned CONST_C : 1;
+ unsigned CONST_D : 1;
+} REG_G2D_BLEND_C6;
+
+// G2D_BLEND_C7
+typedef struct _REG_G2D_BLEND_C7 {
+ unsigned OPERATION : 2;
+ unsigned DST_A : 2;
+ unsigned DST_B : 2;
+ unsigned DST_C : 2;
+ unsigned AR_A : 1;
+ unsigned AR_B : 1;
+ unsigned AR_C : 1;
+ unsigned AR_D : 1;
+ unsigned INV_A : 1;
+ unsigned INV_B : 1;
+ unsigned INV_C : 1;
+ unsigned INV_D : 1;
+ unsigned SRC_A : 3;
+ unsigned SRC_B : 3;
+ unsigned SRC_C : 3;
+ unsigned SRC_D : 3;
+ unsigned CONST_A : 1;
+ unsigned CONST_B : 1;
+ unsigned CONST_C : 1;
+ unsigned CONST_D : 1;
+} REG_G2D_BLEND_C7;
+
+// G2D_CFG0
+typedef struct _REG_G2D_CFG0 {
+ unsigned STRIDE : 12;
+ unsigned FORMAT : 4;
+ unsigned TILED : 1;
+ unsigned SRGB : 1;
+ unsigned SWAPWORDS : 1;
+ unsigned SWAPBYTES : 1;
+ unsigned SWAPALL : 1;
+ unsigned SWAPRB : 1;
+ unsigned SWAPBITS : 1;
+ unsigned STRIDESIGN : 1;
+} REG_G2D_CFG0;
+
+// G2D_CFG1
+typedef struct _REG_G2D_CFG1 {
+ unsigned STRIDE : 12;
+ unsigned FORMAT : 4;
+ unsigned TILED : 1;
+ unsigned SRGB : 1;
+ unsigned SWAPWORDS : 1;
+ unsigned SWAPBYTES : 1;
+ unsigned SWAPALL : 1;
+ unsigned SWAPRB : 1;
+ unsigned SWAPBITS : 1;
+ unsigned STRIDESIGN : 1;
+} REG_G2D_CFG1;
+
+// G2D_CFG2
+typedef struct _REG_G2D_CFG2 {
+ unsigned STRIDE : 12;
+ unsigned FORMAT : 4;
+ unsigned TILED : 1;
+ unsigned SRGB : 1;
+ unsigned SWAPWORDS : 1;
+ unsigned SWAPBYTES : 1;
+ unsigned SWAPALL : 1;
+ unsigned SWAPRB : 1;
+ unsigned SWAPBITS : 1;
+ unsigned STRIDESIGN : 1;
+} REG_G2D_CFG2;
+
+// G2D_CFG3
+typedef struct _REG_G2D_CFG3 {
+ unsigned STRIDE : 12;
+ unsigned FORMAT : 4;
+ unsigned TILED : 1;
+ unsigned SRGB : 1;
+ unsigned SWAPWORDS : 1;
+ unsigned SWAPBYTES : 1;
+ unsigned SWAPALL : 1;
+ unsigned SWAPRB : 1;
+ unsigned SWAPBITS : 1;
+ unsigned STRIDESIGN : 1;
+} REG_G2D_CFG3;
+
+// G2D_COLOR
+typedef struct _REG_G2D_COLOR {
+ unsigned ARGB : 32;
+} REG_G2D_COLOR;
+
+// G2D_CONFIG
+typedef struct _REG_G2D_CONFIG {
+ unsigned DST : 1;
+ unsigned SRC1 : 1;
+ unsigned SRC2 : 1;
+ unsigned SRC3 : 1;
+ unsigned SRCCK : 1;
+ unsigned DSTCK : 1;
+ unsigned ROTATE : 2;
+ unsigned OBS_GAMMA : 1;
+ unsigned IGNORECKALPHA : 1;
+ unsigned DITHER : 1;
+ unsigned WRITESRGB : 1;
+ unsigned ARGBMASK : 4;
+ unsigned ALPHATEX : 1;
+ unsigned PALMLINES : 1;
+ unsigned NOLASTPIXEL : 1;
+ unsigned NOPROTECT : 1;
+} REG_G2D_CONFIG;
+
+// G2D_CONST0
+typedef struct _REG_G2D_CONST0 {
+ unsigned ARGB : 32;
+} REG_G2D_CONST0;
+
+// G2D_CONST1
+typedef struct _REG_G2D_CONST1 {
+ unsigned ARGB : 32;
+} REG_G2D_CONST1;
+
+// G2D_CONST2
+typedef struct _REG_G2D_CONST2 {
+ unsigned ARGB : 32;
+} REG_G2D_CONST2;
+
+// G2D_CONST3
+typedef struct _REG_G2D_CONST3 {
+ unsigned ARGB : 32;
+} REG_G2D_CONST3;
+
+// G2D_CONST4
+typedef struct _REG_G2D_CONST4 {
+ unsigned ARGB : 32;
+} REG_G2D_CONST4;
+
+// G2D_CONST5
+typedef struct _REG_G2D_CONST5 {
+ unsigned ARGB : 32;
+} REG_G2D_CONST5;
+
+// G2D_CONST6
+typedef struct _REG_G2D_CONST6 {
+ unsigned ARGB : 32;
+} REG_G2D_CONST6;
+
+// G2D_CONST7
+typedef struct _REG_G2D_CONST7 {
+ unsigned ARGB : 32;
+} REG_G2D_CONST7;
+
+// G2D_FOREGROUND
+typedef struct _REG_G2D_FOREGROUND {
+ unsigned COLOR : 32;
+} REG_G2D_FOREGROUND;
+
+// G2D_GRADIENT
+typedef struct _REG_G2D_GRADIENT {
+ unsigned INSTRUCTIONS : 3;
+ unsigned INSTRUCTIONS2 : 3;
+ unsigned ENABLE : 1;
+ unsigned ENABLE2 : 1;
+ unsigned SEL : 1;
+} REG_G2D_GRADIENT;
+
+// G2D_IDLE
+typedef struct _REG_G2D_IDLE {
+ unsigned IRQ : 1;
+ unsigned BCFLUSH : 1;
+ unsigned V3 : 1;
+} REG_G2D_IDLE;
+
+// G2D_INPUT
+typedef struct _REG_G2D_INPUT {
+ unsigned COLOR : 1;
+ unsigned SCOORD1 : 1;
+ unsigned SCOORD2 : 1;
+ unsigned COPYCOORD : 1;
+ unsigned VGMODE : 1;
+ unsigned LINEMODE : 1;
+} REG_G2D_INPUT;
+
+// G2D_MASK
+typedef struct _REG_G2D_MASK {
+ unsigned YMASK : 12;
+ unsigned XMASK : 12;
+} REG_G2D_MASK;
+
+// G2D_ROP
+typedef struct _REG_G2D_ROP {
+ unsigned ROP : 16;
+} REG_G2D_ROP;
+
+// G2D_SCISSORX
+typedef struct _REG_G2D_SCISSORX {
+ unsigned LEFT : 11;
+ unsigned RIGHT : 11;
+} REG_G2D_SCISSORX;
+
+// G2D_SCISSORY
+typedef struct _REG_G2D_SCISSORY {
+ unsigned TOP : 11;
+ unsigned BOTTOM : 11;
+} REG_G2D_SCISSORY;
+
+// G2D_SXY
+typedef struct _REG_G2D_SXY {
+ unsigned Y : 11;
+ unsigned PAD : 5;
+ unsigned X : 11;
+} REG_G2D_SXY;
+
+// G2D_SXY2
+typedef struct _REG_G2D_SXY2 {
+ unsigned Y : 11;
+ unsigned PAD : 5;
+ unsigned X : 11;
+} REG_G2D_SXY2;
+
+// G2D_VGSPAN
+typedef struct _REG_G2D_VGSPAN {
+ int WIDTH : 12;
+ unsigned PAD : 4;
+ unsigned COVERAGE : 4;
+} REG_G2D_VGSPAN;
+
+// G2D_WIDTHHEIGHT
+typedef struct _REG_G2D_WIDTHHEIGHT {
+ int HEIGHT : 12;
+ unsigned PAD : 4;
+ int WIDTH : 12;
+} REG_G2D_WIDTHHEIGHT;
+
+// G2D_XY
+typedef struct _REG_G2D_XY {
+ int Y : 12;
+ unsigned PAD : 4;
+ int X : 12;
+} REG_G2D_XY;
+
+// GRADW_BORDERCOLOR
+typedef struct _REG_GRADW_BORDERCOLOR {
+ unsigned COLOR : 32;
+} REG_GRADW_BORDERCOLOR;
+
+// GRADW_CONST0
+typedef struct _REG_GRADW_CONST0 {
+ unsigned VALUE : 16;
+} REG_GRADW_CONST0;
+
+// GRADW_CONST1
+typedef struct _REG_GRADW_CONST1 {
+ unsigned VALUE : 16;
+} REG_GRADW_CONST1;
+
+// GRADW_CONST2
+typedef struct _REG_GRADW_CONST2 {
+ unsigned VALUE : 16;
+} REG_GRADW_CONST2;
+
+// GRADW_CONST3
+typedef struct _REG_GRADW_CONST3 {
+ unsigned VALUE : 16;
+} REG_GRADW_CONST3;
+
+// GRADW_CONST4
+typedef struct _REG_GRADW_CONST4 {
+ unsigned VALUE : 16;
+} REG_GRADW_CONST4;
+
+// GRADW_CONST5
+typedef struct _REG_GRADW_CONST5 {
+ unsigned VALUE : 16;
+} REG_GRADW_CONST5;
+
+// GRADW_CONST6
+typedef struct _REG_GRADW_CONST6 {
+ unsigned VALUE : 16;
+} REG_GRADW_CONST6;
+
+// GRADW_CONST7
+typedef struct _REG_GRADW_CONST7 {
+ unsigned VALUE : 16;
+} REG_GRADW_CONST7;
+
+// GRADW_CONST8
+typedef struct _REG_GRADW_CONST8 {
+ unsigned VALUE : 16;
+} REG_GRADW_CONST8;
+
+// GRADW_CONST9
+typedef struct _REG_GRADW_CONST9 {
+ unsigned VALUE : 16;
+} REG_GRADW_CONST9;
+
+// GRADW_CONSTA
+typedef struct _REG_GRADW_CONSTA {
+ unsigned VALUE : 16;
+} REG_GRADW_CONSTA;
+
+// GRADW_CONSTB
+typedef struct _REG_GRADW_CONSTB {
+ unsigned VALUE : 16;
+} REG_GRADW_CONSTB;
+
+// GRADW_INST0
+typedef struct _REG_GRADW_INST0 {
+ unsigned SRC_E : 5;
+ unsigned SRC_D : 5;
+ unsigned SRC_C : 5;
+ unsigned SRC_B : 5;
+ unsigned SRC_A : 5;
+ unsigned DST : 4;
+ unsigned OPCODE : 2;
+} REG_GRADW_INST0;
+
+// GRADW_INST1
+typedef struct _REG_GRADW_INST1 {
+ unsigned SRC_E : 5;
+ unsigned SRC_D : 5;
+ unsigned SRC_C : 5;
+ unsigned SRC_B : 5;
+ unsigned SRC_A : 5;
+ unsigned DST : 4;
+ unsigned OPCODE : 2;
+} REG_GRADW_INST1;
+
+// GRADW_INST2
+typedef struct _REG_GRADW_INST2 {
+ unsigned SRC_E : 5;
+ unsigned SRC_D : 5;
+ unsigned SRC_C : 5;
+ unsigned SRC_B : 5;
+ unsigned SRC_A : 5;
+ unsigned DST : 4;
+ unsigned OPCODE : 2;
+} REG_GRADW_INST2;
+
+// GRADW_INST3
+typedef struct _REG_GRADW_INST3 {
+ unsigned SRC_E : 5;
+ unsigned SRC_D : 5;
+ unsigned SRC_C : 5;
+ unsigned SRC_B : 5;
+ unsigned SRC_A : 5;
+ unsigned DST : 4;
+ unsigned OPCODE : 2;
+} REG_GRADW_INST3;
+
+// GRADW_INST4
+typedef struct _REG_GRADW_INST4 {
+ unsigned SRC_E : 5;
+ unsigned SRC_D : 5;
+ unsigned SRC_C : 5;
+ unsigned SRC_B : 5;
+ unsigned SRC_A : 5;
+ unsigned DST : 4;
+ unsigned OPCODE : 2;
+} REG_GRADW_INST4;
+
+// GRADW_INST5
+typedef struct _REG_GRADW_INST5 {
+ unsigned SRC_E : 5;
+ unsigned SRC_D : 5;
+ unsigned SRC_C : 5;
+ unsigned SRC_B : 5;
+ unsigned SRC_A : 5;
+ unsigned DST : 4;
+ unsigned OPCODE : 2;
+} REG_GRADW_INST5;
+
+// GRADW_INST6
+typedef struct _REG_GRADW_INST6 {
+ unsigned SRC_E : 5;
+ unsigned SRC_D : 5;
+ unsigned SRC_C : 5;
+ unsigned SRC_B : 5;
+ unsigned SRC_A : 5;
+ unsigned DST : 4;
+ unsigned OPCODE : 2;
+} REG_GRADW_INST6;
+
+// GRADW_INST7
+typedef struct _REG_GRADW_INST7 {
+ unsigned SRC_E : 5;
+ unsigned SRC_D : 5;
+ unsigned SRC_C : 5;
+ unsigned SRC_B : 5;
+ unsigned SRC_A : 5;
+ unsigned DST : 4;
+ unsigned OPCODE : 2;
+} REG_GRADW_INST7;
+
+// GRADW_TEXBASE
+typedef struct _REG_GRADW_TEXBASE {
+ unsigned ADDR : 32;
+} REG_GRADW_TEXBASE;
+
+// GRADW_TEXCFG
+typedef struct _REG_GRADW_TEXCFG {
+ unsigned STRIDE : 12;
+ unsigned FORMAT : 4;
+ unsigned TILED : 1;
+ unsigned WRAPU : 2;
+ unsigned WRAPV : 2;
+ unsigned BILIN : 1;
+ unsigned SRGB : 1;
+ unsigned PREMULTIPLY : 1;
+ unsigned SWAPWORDS : 1;
+ unsigned SWAPBYTES : 1;
+ unsigned SWAPALL : 1;
+ unsigned SWAPRB : 1;
+ unsigned TEX2D : 1;
+ unsigned SWAPBITS : 1;
+} REG_GRADW_TEXCFG;
+
+// GRADW_TEXSIZE
+typedef struct _REG_GRADW_TEXSIZE {
+ unsigned WIDTH : 11;
+ unsigned HEIGHT : 11;
+} REG_GRADW_TEXSIZE;
+
+// MH_ARBITER_CONFIG
+typedef struct _REG_MH_ARBITER_CONFIG {
+ unsigned SAME_PAGE_LIMIT : 6;
+ unsigned SAME_PAGE_GRANULARITY : 1;
+ unsigned L1_ARB_ENABLE : 1;
+ unsigned L1_ARB_HOLD_ENABLE : 1;
+ unsigned L2_ARB_CONTROL : 1;
+ unsigned PAGE_SIZE : 3;
+ unsigned TC_REORDER_ENABLE : 1;
+ unsigned TC_ARB_HOLD_ENABLE : 1;
+ unsigned IN_FLIGHT_LIMIT_ENABLE : 1;
+ unsigned IN_FLIGHT_LIMIT : 6;
+ unsigned CP_CLNT_ENABLE : 1;
+ unsigned VGT_CLNT_ENABLE : 1;
+ unsigned TC_CLNT_ENABLE : 1;
+ unsigned RB_CLNT_ENABLE : 1;
+ unsigned PA_CLNT_ENABLE : 1;
+} REG_MH_ARBITER_CONFIG;
+
+// MH_AXI_ERROR
+typedef struct _REG_MH_AXI_ERROR {
+ unsigned AXI_READ_ID : 3;
+ unsigned AXI_READ_ERROR : 1;
+ unsigned AXI_WRITE_ID : 3;
+ unsigned AXI_WRITE_ERROR : 1;
+} REG_MH_AXI_ERROR;
+
+// MH_AXI_HALT_CONTROL
+typedef struct _REG_MH_AXI_HALT_CONTROL {
+ unsigned AXI_HALT : 1;
+} REG_MH_AXI_HALT_CONTROL;
+
+// MH_CLNT_AXI_ID_REUSE
+typedef struct _REG_MH_CLNT_AXI_ID_REUSE {
+ unsigned CPW_ID : 3;
+ unsigned PAD : 1;
+ unsigned RBW_ID : 3;
+ unsigned PAD2 : 1;
+ unsigned MMUR_ID : 3;
+ unsigned PAD3 : 1;
+ unsigned PAW_ID : 3;
+} REG_MH_CLNT_AXI_ID_REUSE;
+
+// MH_DEBUG_CTRL
+typedef struct _REG_MH_DEBUG_CTRL {
+ unsigned INDEX : 6;
+} REG_MH_DEBUG_CTRL;
+
+// MH_DEBUG_DATA
+typedef struct _REG_MH_DEBUG_DATA {
+ unsigned DATA : 32;
+} REG_MH_DEBUG_DATA;
+
+// MH_INTERRUPT_CLEAR
+typedef struct _REG_MH_INTERRUPT_CLEAR {
+ unsigned AXI_READ_ERROR : 1;
+ unsigned AXI_WRITE_ERROR : 1;
+ unsigned MMU_PAGE_FAULT : 1;
+} REG_MH_INTERRUPT_CLEAR;
+
+// MH_INTERRUPT_MASK
+typedef struct _REG_MH_INTERRUPT_MASK {
+ unsigned AXI_READ_ERROR : 1;
+ unsigned AXI_WRITE_ERROR : 1;
+ unsigned MMU_PAGE_FAULT : 1;
+} REG_MH_INTERRUPT_MASK;
+
+// MH_INTERRUPT_STATUS
+typedef struct _REG_MH_INTERRUPT_STATUS {
+ unsigned AXI_READ_ERROR : 1;
+ unsigned AXI_WRITE_ERROR : 1;
+ unsigned MMU_PAGE_FAULT : 1;
+} REG_MH_INTERRUPT_STATUS;
+
+// MH_MMU_CONFIG
+typedef struct _REG_MH_MMU_CONFIG {
+ unsigned MMU_ENABLE : 1;
+ unsigned SPLIT_MODE_ENABLE : 1;
+ unsigned PAD : 2;
+ unsigned RB_W_CLNT_BEHAVIOR : 2;
+ unsigned CP_W_CLNT_BEHAVIOR : 2;
+ unsigned CP_R0_CLNT_BEHAVIOR : 2;
+ unsigned CP_R1_CLNT_BEHAVIOR : 2;
+ unsigned CP_R2_CLNT_BEHAVIOR : 2;
+ unsigned CP_R3_CLNT_BEHAVIOR : 2;
+ unsigned CP_R4_CLNT_BEHAVIOR : 2;
+ unsigned VGT_R0_CLNT_BEHAVIOR : 2;
+ unsigned VGT_R1_CLNT_BEHAVIOR : 2;
+ unsigned TC_R_CLNT_BEHAVIOR : 2;
+ unsigned PA_W_CLNT_BEHAVIOR : 2;
+} REG_MH_MMU_CONFIG;
+
+// MH_MMU_INVALIDATE
+typedef struct _REG_MH_MMU_INVALIDATE {
+ unsigned INVALIDATE_ALL : 1;
+ unsigned INVALIDATE_TC : 1;
+} REG_MH_MMU_INVALIDATE;
+
+// MH_MMU_MPU_BASE
+typedef struct _REG_MH_MMU_MPU_BASE {
+ unsigned ZERO : 12;
+ unsigned MPU_BASE : 20;
+} REG_MH_MMU_MPU_BASE;
+
+// MH_MMU_MPU_END
+typedef struct _REG_MH_MMU_MPU_END {
+ unsigned ZERO : 12;
+ unsigned MPU_END : 20;
+} REG_MH_MMU_MPU_END;
+
+// MH_MMU_PAGE_FAULT
+typedef struct _REG_MH_MMU_PAGE_FAULT {
+ unsigned PAGE_FAULT : 1;
+ unsigned OP_TYPE : 1;
+ unsigned CLNT_BEHAVIOR : 2;
+ unsigned AXI_ID : 3;
+ unsigned PAD : 1;
+ unsigned MPU_ADDRESS_OUT_OF_RANGE : 1;
+ unsigned ADDRESS_OUT_OF_RANGE : 1;
+ unsigned READ_PROTECTION_ERROR : 1;
+ unsigned WRITE_PROTECTION_ERROR : 1;
+ unsigned REQ_VA : 20;
+} REG_MH_MMU_PAGE_FAULT;
+
+// MH_MMU_PT_BASE
+typedef struct _REG_MH_MMU_PT_BASE {
+ unsigned ZERO : 12;
+ unsigned PT_BASE : 20;
+} REG_MH_MMU_PT_BASE;
+
+// MH_MMU_TRAN_ERROR
+typedef struct _REG_MH_MMU_TRAN_ERROR {
+ unsigned ZERO : 5;
+ unsigned TRAN_ERROR : 27;
+} REG_MH_MMU_TRAN_ERROR;
+
+// MH_MMU_VA_RANGE
+typedef struct _REG_MH_MMU_VA_RANGE {
+ unsigned NUM_64KB_REGIONS : 12;
+ unsigned VA_BASE : 20;
+} REG_MH_MMU_VA_RANGE;
+
+// MH_PERFCOUNTER0_CONFIG
+typedef struct _REG_MH_PERFCOUNTER0_CONFIG {
+ unsigned N_VALUE : 8;
+} REG_MH_PERFCOUNTER0_CONFIG;
+
+// MH_PERFCOUNTER0_HI
+typedef struct _REG_MH_PERFCOUNTER0_HI {
+ unsigned PERF_COUNTER_HI : 16;
+} REG_MH_PERFCOUNTER0_HI;
+
+// MH_PERFCOUNTER0_LOW
+typedef struct _REG_MH_PERFCOUNTER0_LOW {
+ unsigned PERF_COUNTER_LOW : 32;
+} REG_MH_PERFCOUNTER0_LOW;
+
+// MH_PERFCOUNTER0_SELECT
+typedef struct _REG_MH_PERFCOUNTER0_SELECT {
+ unsigned PERF_SEL : 8;
+} REG_MH_PERFCOUNTER0_SELECT;
+
+// MH_PERFCOUNTER1_CONFIG
+typedef struct _REG_MH_PERFCOUNTER1_CONFIG {
+ unsigned N_VALUE : 8;
+} REG_MH_PERFCOUNTER1_CONFIG;
+
+// MH_PERFCOUNTER1_HI
+typedef struct _REG_MH_PERFCOUNTER1_HI {
+ unsigned PERF_COUNTER_HI : 16;
+} REG_MH_PERFCOUNTER1_HI;
+
+// MH_PERFCOUNTER1_LOW
+typedef struct _REG_MH_PERFCOUNTER1_LOW {
+ unsigned PERF_COUNTER_LOW : 32;
+} REG_MH_PERFCOUNTER1_LOW;
+
+// MH_PERFCOUNTER1_SELECT
+typedef struct _REG_MH_PERFCOUNTER1_SELECT {
+ unsigned PERF_SEL : 8;
+} REG_MH_PERFCOUNTER1_SELECT;
+
+// MMU_READ_ADDR
+typedef struct _REG_MMU_READ_ADDR {
+ unsigned ADDR : 15;
+} REG_MMU_READ_ADDR;
+
+// MMU_READ_DATA
+typedef struct _REG_MMU_READ_DATA {
+ unsigned DATA : 32;
+} REG_MMU_READ_DATA;
+
+// VGV1_CBASE1
+typedef struct _REG_VGV1_CBASE1 {
+ unsigned ADDR : 32;
+} REG_VGV1_CBASE1;
+
+// VGV1_CFG1
+typedef struct _REG_VGV1_CFG1 {
+ unsigned WINDRULE : 1;
+} REG_VGV1_CFG1;
+
+// VGV1_CFG2
+typedef struct _REG_VGV1_CFG2 {
+ unsigned AAMODE : 2;
+} REG_VGV1_CFG2;
+
+// VGV1_DIRTYBASE
+typedef struct _REG_VGV1_DIRTYBASE {
+ unsigned ADDR : 32;
+} REG_VGV1_DIRTYBASE;
+
+// VGV1_FILL
+typedef struct _REG_VGV1_FILL {
+ unsigned INHERIT : 1;
+} REG_VGV1_FILL;
+
+// VGV1_SCISSORX
+typedef struct _REG_VGV1_SCISSORX {
+ unsigned LEFT : 11;
+ unsigned PAD : 5;
+ unsigned RIGHT : 11;
+} REG_VGV1_SCISSORX;
+
+// VGV1_SCISSORY
+typedef struct _REG_VGV1_SCISSORY {
+ unsigned TOP : 11;
+ unsigned PAD : 5;
+ unsigned BOTTOM : 11;
+} REG_VGV1_SCISSORY;
+
+// VGV1_TILEOFS
+typedef struct _REG_VGV1_TILEOFS {
+ unsigned X : 12;
+ unsigned Y : 12;
+ unsigned LEFTMOST : 1;
+} REG_VGV1_TILEOFS;
+
+// VGV1_UBASE2
+typedef struct _REG_VGV1_UBASE2 {
+ unsigned ADDR : 32;
+} REG_VGV1_UBASE2;
+
+// VGV1_VTX0
+typedef struct _REG_VGV1_VTX0 {
+ int X : 16;
+ int Y : 16;
+} REG_VGV1_VTX0;
+
+// VGV1_VTX1
+typedef struct _REG_VGV1_VTX1 {
+ int X : 16;
+ int Y : 16;
+} REG_VGV1_VTX1;
+
+// VGV2_ACCURACY
+typedef struct _REG_VGV2_ACCURACY {
+ unsigned F : 24;
+} REG_VGV2_ACCURACY;
+
+// VGV2_ACTION
+typedef struct _REG_VGV2_ACTION {
+ unsigned ACTION : 4;
+} REG_VGV2_ACTION;
+
+// VGV2_ARCCOS
+typedef struct _REG_VGV2_ARCCOS {
+ unsigned F : 24;
+} REG_VGV2_ARCCOS;
+
+// VGV2_ARCSIN
+typedef struct _REG_VGV2_ARCSIN {
+ unsigned F : 24;
+} REG_VGV2_ARCSIN;
+
+// VGV2_ARCTAN
+typedef struct _REG_VGV2_ARCTAN {
+ unsigned F : 24;
+} REG_VGV2_ARCTAN;
+
+// VGV2_BBOXMAXX
+typedef struct _REG_VGV2_BBOXMAXX {
+ unsigned F : 24;
+} REG_VGV2_BBOXMAXX;
+
+// VGV2_BBOXMAXY
+typedef struct _REG_VGV2_BBOXMAXY {
+ unsigned F : 24;
+} REG_VGV2_BBOXMAXY;
+
+// VGV2_BBOXMINX
+typedef struct _REG_VGV2_BBOXMINX {
+ unsigned F : 24;
+} REG_VGV2_BBOXMINX;
+
+// VGV2_BBOXMINY
+typedef struct _REG_VGV2_BBOXMINY {
+ unsigned F : 24;
+} REG_VGV2_BBOXMINY;
+
+// VGV2_BIAS
+typedef struct _REG_VGV2_BIAS {
+ unsigned F : 24;
+} REG_VGV2_BIAS;
+
+// VGV2_C1X
+typedef struct _REG_VGV2_C1X {
+ unsigned F : 24;
+} REG_VGV2_C1X;
+
+// VGV2_C1XREL
+typedef struct _REG_VGV2_C1XREL {
+ unsigned F : 24;
+} REG_VGV2_C1XREL;
+
+// VGV2_C1Y
+typedef struct _REG_VGV2_C1Y {
+ unsigned F : 24;
+} REG_VGV2_C1Y;
+
+// VGV2_C1YREL
+typedef struct _REG_VGV2_C1YREL {
+ unsigned F : 24;
+} REG_VGV2_C1YREL;
+
+// VGV2_C2X
+typedef struct _REG_VGV2_C2X {
+ unsigned F : 24;
+} REG_VGV2_C2X;
+
+// VGV2_C2XREL
+typedef struct _REG_VGV2_C2XREL {
+ unsigned F : 24;
+} REG_VGV2_C2XREL;
+
+// VGV2_C2Y
+typedef struct _REG_VGV2_C2Y {
+ unsigned F : 24;
+} REG_VGV2_C2Y;
+
+// VGV2_C2YREL
+typedef struct _REG_VGV2_C2YREL {
+ unsigned F : 24;
+} REG_VGV2_C2YREL;
+
+// VGV2_C3X
+typedef struct _REG_VGV2_C3X {
+ unsigned F : 24;
+} REG_VGV2_C3X;
+
+// VGV2_C3XREL
+typedef struct _REG_VGV2_C3XREL {
+ unsigned F : 24;
+} REG_VGV2_C3XREL;
+
+// VGV2_C3Y
+typedef struct _REG_VGV2_C3Y {
+ unsigned F : 24;
+} REG_VGV2_C3Y;
+
+// VGV2_C3YREL
+typedef struct _REG_VGV2_C3YREL {
+ unsigned F : 24;
+} REG_VGV2_C3YREL;
+
+// VGV2_C4X
+typedef struct _REG_VGV2_C4X {
+ unsigned F : 24;
+} REG_VGV2_C4X;
+
+// VGV2_C4XREL
+typedef struct _REG_VGV2_C4XREL {
+ unsigned F : 24;
+} REG_VGV2_C4XREL;
+
+// VGV2_C4Y
+typedef struct _REG_VGV2_C4Y {
+ unsigned F : 24;
+} REG_VGV2_C4Y;
+
+// VGV2_C4YREL
+typedef struct _REG_VGV2_C4YREL {
+ unsigned F : 24;
+} REG_VGV2_C4YREL;
+
+// VGV2_CLIP
+typedef struct _REG_VGV2_CLIP {
+ unsigned F : 24;
+} REG_VGV2_CLIP;
+
+// VGV2_FIRST
+typedef struct _REG_VGV2_FIRST {
+ unsigned DUMMY : 1;
+} REG_VGV2_FIRST;
+
+// VGV2_LAST
+typedef struct _REG_VGV2_LAST {
+ unsigned DUMMY : 1;
+} REG_VGV2_LAST;
+
+// VGV2_MITER
+typedef struct _REG_VGV2_MITER {
+ unsigned F : 24;
+} REG_VGV2_MITER;
+
+// VGV2_MODE
+typedef struct _REG_VGV2_MODE {
+ unsigned MAXSPLIT : 4;
+ unsigned CAP : 2;
+ unsigned JOIN : 2;
+ unsigned STROKE : 1;
+ unsigned STROKESPLIT : 1;
+ unsigned FULLSPLIT : 1;
+ unsigned NODOTS : 1;
+ unsigned OPENFILL : 1;
+ unsigned DROPLEFT : 1;
+ unsigned DROPOTHER : 1;
+ unsigned SYMMETRICJOINS : 1;
+ unsigned SIMPLESTROKE : 1;
+ unsigned SIMPLECLIP : 1;
+ int EXPONENTADD : 6;
+} REG_VGV2_MODE;
+
+// VGV2_RADIUS
+typedef struct _REG_VGV2_RADIUS {
+ unsigned F : 24;
+} REG_VGV2_RADIUS;
+
+// VGV2_SCALE
+typedef struct _REG_VGV2_SCALE {
+ unsigned F : 24;
+} REG_VGV2_SCALE;
+
+// VGV2_THINRADIUS
+typedef struct _REG_VGV2_THINRADIUS {
+ unsigned F : 24;
+} REG_VGV2_THINRADIUS;
+
+// VGV2_XFSTXX
+typedef struct _REG_VGV2_XFSTXX {
+ unsigned F : 24;
+} REG_VGV2_XFSTXX;
+
+// VGV2_XFSTXY
+typedef struct _REG_VGV2_XFSTXY {
+ unsigned F : 24;
+} REG_VGV2_XFSTXY;
+
+// VGV2_XFSTYX
+typedef struct _REG_VGV2_XFSTYX {
+ unsigned F : 24;
+} REG_VGV2_XFSTYX;
+
+// VGV2_XFSTYY
+typedef struct _REG_VGV2_XFSTYY {
+ unsigned F : 24;
+} REG_VGV2_XFSTYY;
+
+// VGV2_XFXA
+typedef struct _REG_VGV2_XFXA {
+ unsigned F : 24;
+} REG_VGV2_XFXA;
+
+// VGV2_XFXX
+typedef struct _REG_VGV2_XFXX {
+ unsigned F : 24;
+} REG_VGV2_XFXX;
+
+// VGV2_XFXY
+typedef struct _REG_VGV2_XFXY {
+ unsigned F : 24;
+} REG_VGV2_XFXY;
+
+// VGV2_XFYA
+typedef struct _REG_VGV2_XFYA {
+ unsigned F : 24;
+} REG_VGV2_XFYA;
+
+// VGV2_XFYX
+typedef struct _REG_VGV2_XFYX {
+ unsigned F : 24;
+} REG_VGV2_XFYX;
+
+// VGV2_XFYY
+typedef struct _REG_VGV2_XFYY {
+ unsigned F : 24;
+} REG_VGV2_XFYY;
+
+// VGV3_CONTROL
+typedef struct _REG_VGV3_CONTROL {
+ unsigned MARKADD : 12;
+ unsigned DMIWAITCHMASK : 4;
+ unsigned PAUSE : 1;
+ unsigned ABORT : 1;
+ unsigned WRITE : 1;
+ unsigned BCFLUSH : 1;
+ unsigned V0SYNC : 1;
+ unsigned DMIWAITBUF : 3;
+} REG_VGV3_CONTROL;
+
+// VGV3_FIRST
+typedef struct _REG_VGV3_FIRST {
+ unsigned DUMMY : 1;
+} REG_VGV3_FIRST;
+
+// VGV3_LAST
+typedef struct _REG_VGV3_LAST {
+ unsigned DUMMY : 1;
+} REG_VGV3_LAST;
+
+// VGV3_MODE
+typedef struct _REG_VGV3_MODE {
+ unsigned FLIPENDIAN : 1;
+ unsigned UNUSED : 1;
+ unsigned WRITEFLUSH : 1;
+ unsigned DMIPAUSETYPE : 1;
+ unsigned DMIRESET : 1;
+} REG_VGV3_MODE;
+
+// VGV3_NEXTADDR
+typedef struct _REG_VGV3_NEXTADDR {
+ unsigned CALLADDR : 32;
+} REG_VGV3_NEXTADDR;
+
+// VGV3_NEXTCMD
+typedef struct _REG_VGV3_NEXTCMD {
+ unsigned COUNT : 12;
+ unsigned NEXTCMD : 3;
+ unsigned MARK : 1;
+ unsigned CALLCOUNT : 12;
+} REG_VGV3_NEXTCMD;
+
+// VGV3_VGBYPASS
+typedef struct _REG_VGV3_VGBYPASS {
+ unsigned BYPASS : 1;
+} REG_VGV3_VGBYPASS;
+
+// VGV3_WRITE
+typedef struct _REG_VGV3_WRITE {
+ unsigned VALUE : 32;
+} REG_VGV3_WRITE;
+
+// VGV3_WRITEADDR
+typedef struct _REG_VGV3_WRITEADDR {
+ unsigned ADDR : 32;
+} REG_VGV3_WRITEADDR;
+
+// VGV3_WRITEDMI
+typedef struct _REG_VGV3_WRITEDMI {
+ unsigned CHANMASK : 4;
+ unsigned BUFFER : 3;
+} REG_VGV3_WRITEDMI;
+
+// VGV3_WRITEF32
+typedef struct _REG_VGV3_WRITEF32 {
+ unsigned ADDR : 8;
+ unsigned COUNT : 8;
+ unsigned LOOP : 4;
+ unsigned ACTION : 4;
+ unsigned FORMAT : 3;
+} REG_VGV3_WRITEF32;
+
+// VGV3_WRITEIFPAUSED
+typedef struct _REG_VGV3_WRITEIFPAUSED {
+ unsigned VALUE : 32;
+} REG_VGV3_WRITEIFPAUSED;
+
+// VGV3_WRITERAW
+typedef struct _REG_VGV3_WRITERAW {
+ unsigned ADDR : 8;
+ unsigned COUNT : 8;
+ unsigned LOOP : 4;
+ unsigned ACTION : 4;
+ unsigned FORMAT : 3;
+} REG_VGV3_WRITERAW;
+
+// VGV3_WRITES16
+typedef struct _REG_VGV3_WRITES16 {
+ unsigned ADDR : 8;
+ unsigned COUNT : 8;
+ unsigned LOOP : 4;
+ unsigned ACTION : 4;
+ unsigned FORMAT : 3;
+} REG_VGV3_WRITES16;
+
+// VGV3_WRITES32
+typedef struct _REG_VGV3_WRITES32 {
+ unsigned ADDR : 8;
+ unsigned COUNT : 8;
+ unsigned LOOP : 4;
+ unsigned ACTION : 4;
+ unsigned FORMAT : 3;
+} REG_VGV3_WRITES32;
+
+// VGV3_WRITES8
+typedef struct _REG_VGV3_WRITES8 {
+ unsigned ADDR : 8;
+ unsigned COUNT : 8;
+ unsigned LOOP : 4;
+ unsigned ACTION : 4;
+ unsigned FORMAT : 3;
+} REG_VGV3_WRITES8;
+
+// Register address, down shift, AND mask
+#define FBC_BASE_BASE_FADDR ADDR_FBC_BASE
+#define FBC_BASE_BASE_FSHIFT 0
+#define FBC_BASE_BASE_FMASK 0xffffffff
+#define FBC_DATA_DATA_FADDR ADDR_FBC_DATA
+#define FBC_DATA_DATA_FSHIFT 0
+#define FBC_DATA_DATA_FMASK 0xffffffff
+#define FBC_HEIGHT_HEIGHT_FADDR ADDR_FBC_HEIGHT
+#define FBC_HEIGHT_HEIGHT_FSHIFT 0
+#define FBC_HEIGHT_HEIGHT_FMASK 0x7ff
+#define FBC_START_DUMMY_FADDR ADDR_FBC_START
+#define FBC_START_DUMMY_FSHIFT 0
+#define FBC_START_DUMMY_FMASK 0x1
+#define FBC_STRIDE_STRIDE_FADDR ADDR_FBC_STRIDE
+#define FBC_STRIDE_STRIDE_FSHIFT 0
+#define FBC_STRIDE_STRIDE_FMASK 0x7ff
+#define FBC_WIDTH_WIDTH_FADDR ADDR_FBC_WIDTH
+#define FBC_WIDTH_WIDTH_FSHIFT 0
+#define FBC_WIDTH_WIDTH_FMASK 0x7ff
+#define VGC_CLOCKEN_BCACHE_FADDR ADDR_VGC_CLOCKEN
+#define VGC_CLOCKEN_BCACHE_FSHIFT 0
+#define VGC_CLOCKEN_BCACHE_FMASK 0x1
+#define VGC_CLOCKEN_G2D_VGL3_FADDR ADDR_VGC_CLOCKEN
+#define VGC_CLOCKEN_G2D_VGL3_FSHIFT 1
+#define VGC_CLOCKEN_G2D_VGL3_FMASK 0x1
+#define VGC_CLOCKEN_VG_L1L2_FADDR ADDR_VGC_CLOCKEN
+#define VGC_CLOCKEN_VG_L1L2_FSHIFT 2
+#define VGC_CLOCKEN_VG_L1L2_FMASK 0x1
+#define VGC_CLOCKEN_RESERVED_FADDR ADDR_VGC_CLOCKEN
+#define VGC_CLOCKEN_RESERVED_FSHIFT 3
+#define VGC_CLOCKEN_RESERVED_FMASK 0x7
+#define VGC_COMMANDSTREAM_DATA_FADDR ADDR_VGC_COMMANDSTREAM
+#define VGC_COMMANDSTREAM_DATA_FSHIFT 0
+#define VGC_COMMANDSTREAM_DATA_FMASK 0xffffffff
+#define VGC_FIFOFREE_FREE_FADDR ADDR_VGC_FIFOFREE
+#define VGC_FIFOFREE_FREE_FSHIFT 0
+#define VGC_FIFOFREE_FREE_FMASK 0x1
+#define VGC_IRQENABLE_MH_FADDR ADDR_VGC_IRQENABLE
+#define VGC_IRQENABLE_MH_FSHIFT 0
+#define VGC_IRQENABLE_MH_FMASK 0x1
+#define VGC_IRQENABLE_G2D_FADDR ADDR_VGC_IRQENABLE
+#define VGC_IRQENABLE_G2D_FSHIFT 1
+#define VGC_IRQENABLE_G2D_FMASK 0x1
+#define VGC_IRQENABLE_FIFO_FADDR ADDR_VGC_IRQENABLE
+#define VGC_IRQENABLE_FIFO_FSHIFT 2
+#define VGC_IRQENABLE_FIFO_FMASK 0x1
+#define VGC_IRQENABLE_FBC_FADDR ADDR_VGC_IRQENABLE
+#define VGC_IRQENABLE_FBC_FSHIFT 3
+#define VGC_IRQENABLE_FBC_FMASK 0x1
+#define VGC_IRQSTATUS_MH_FADDR ADDR_VGC_IRQSTATUS
+#define VGC_IRQSTATUS_MH_FSHIFT 0
+#define VGC_IRQSTATUS_MH_FMASK 0x1
+#define VGC_IRQSTATUS_G2D_FADDR ADDR_VGC_IRQSTATUS
+#define VGC_IRQSTATUS_G2D_FSHIFT 1
+#define VGC_IRQSTATUS_G2D_FMASK 0x1
+#define VGC_IRQSTATUS_FIFO_FADDR ADDR_VGC_IRQSTATUS
+#define VGC_IRQSTATUS_FIFO_FSHIFT 2
+#define VGC_IRQSTATUS_FIFO_FMASK 0x1
+#define VGC_IRQSTATUS_FBC_FADDR ADDR_VGC_IRQSTATUS
+#define VGC_IRQSTATUS_FBC_FSHIFT 3
+#define VGC_IRQSTATUS_FBC_FMASK 0x1
+#define VGC_IRQ_ACTIVE_CNT_MH_FADDR ADDR_VGC_IRQ_ACTIVE_CNT
+#define VGC_IRQ_ACTIVE_CNT_MH_FSHIFT 0
+#define VGC_IRQ_ACTIVE_CNT_MH_FMASK 0xff
+#define VGC_IRQ_ACTIVE_CNT_G2D_FADDR ADDR_VGC_IRQ_ACTIVE_CNT
+#define VGC_IRQ_ACTIVE_CNT_G2D_FSHIFT 8
+#define VGC_IRQ_ACTIVE_CNT_G2D_FMASK 0xff
+#define VGC_IRQ_ACTIVE_CNT_ERRORS_FADDR ADDR_VGC_IRQ_ACTIVE_CNT
+#define VGC_IRQ_ACTIVE_CNT_ERRORS_FSHIFT 16
+#define VGC_IRQ_ACTIVE_CNT_ERRORS_FMASK 0xff
+#define VGC_IRQ_ACTIVE_CNT_FBC_FADDR ADDR_VGC_IRQ_ACTIVE_CNT
+#define VGC_IRQ_ACTIVE_CNT_FBC_FSHIFT 24
+#define VGC_IRQ_ACTIVE_CNT_FBC_FMASK 0xff
+#define VGC_MMUCOMMANDSTREAM_DATA_FADDR ADDR_VGC_MMUCOMMANDSTREAM
+#define VGC_MMUCOMMANDSTREAM_DATA_FSHIFT 0
+#define VGC_MMUCOMMANDSTREAM_DATA_FMASK 0xffffffff
+#define VGC_REVISION_MINOR_REVISION_FADDR ADDR_VGC_REVISION
+#define VGC_REVISION_MINOR_REVISION_FSHIFT 0
+#define VGC_REVISION_MINOR_REVISION_FMASK 0xf
+#define VGC_REVISION_MAJOR_REVISION_FADDR ADDR_VGC_REVISION
+#define VGC_REVISION_MAJOR_REVISION_FSHIFT 4
+#define VGC_REVISION_MAJOR_REVISION_FMASK 0xf
+#define VGC_SYSSTATUS_RESET_FADDR ADDR_VGC_SYSSTATUS
+#define VGC_SYSSTATUS_RESET_FSHIFT 0
+#define VGC_SYSSTATUS_RESET_FMASK 0x1
+#define G2D_ALPHABLEND_ALPHA_FADDR ADDR_G2D_ALPHABLEND
+#define G2D_ALPHABLEND_ALPHA_FSHIFT 0
+#define G2D_ALPHABLEND_ALPHA_FMASK 0xff
+#define G2D_ALPHABLEND_OBS_ENABLE_FADDR ADDR_G2D_ALPHABLEND
+#define G2D_ALPHABLEND_OBS_ENABLE_FSHIFT 8
+#define G2D_ALPHABLEND_OBS_ENABLE_FMASK 0x1
+#define G2D_ALPHABLEND_CONSTANT_FADDR ADDR_G2D_ALPHABLEND
+#define G2D_ALPHABLEND_CONSTANT_FSHIFT 9
+#define G2D_ALPHABLEND_CONSTANT_FMASK 0x1
+#define G2D_ALPHABLEND_INVERT_FADDR ADDR_G2D_ALPHABLEND
+#define G2D_ALPHABLEND_INVERT_FSHIFT 10
+#define G2D_ALPHABLEND_INVERT_FMASK 0x1
+#define G2D_ALPHABLEND_OPTIMIZE_FADDR ADDR_G2D_ALPHABLEND
+#define G2D_ALPHABLEND_OPTIMIZE_FSHIFT 11
+#define G2D_ALPHABLEND_OPTIMIZE_FMASK 0x1
+#define G2D_ALPHABLEND_MODULATE_FADDR ADDR_G2D_ALPHABLEND
+#define G2D_ALPHABLEND_MODULATE_FSHIFT 12
+#define G2D_ALPHABLEND_MODULATE_FMASK 0x1
+#define G2D_ALPHABLEND_INVERTMASK_FADDR ADDR_G2D_ALPHABLEND
+#define G2D_ALPHABLEND_INVERTMASK_FSHIFT 13
+#define G2D_ALPHABLEND_INVERTMASK_FMASK 0x1
+#define G2D_ALPHABLEND_PREMULTIPLYDST_FADDR ADDR_G2D_ALPHABLEND
+#define G2D_ALPHABLEND_PREMULTIPLYDST_FSHIFT 14
+#define G2D_ALPHABLEND_PREMULTIPLYDST_FMASK 0x1
+#define G2D_ALPHABLEND_MASKTOALPHA_FADDR ADDR_G2D_ALPHABLEND
+#define G2D_ALPHABLEND_MASKTOALPHA_FSHIFT 15
+#define G2D_ALPHABLEND_MASKTOALPHA_FMASK 0x1
+#define G2D_BACKGROUND_COLOR_FADDR ADDR_G2D_BACKGROUND
+#define G2D_BACKGROUND_COLOR_FSHIFT 0
+#define G2D_BACKGROUND_COLOR_FMASK 0xffffffff
+#define G2D_BASE0_ADDR_FADDR ADDR_G2D_BASE0
+#define G2D_BASE0_ADDR_FSHIFT 0
+#define G2D_BASE0_ADDR_FMASK 0xffffffff
+#define G2D_BASE1_ADDR_FADDR ADDR_G2D_BASE1
+#define G2D_BASE1_ADDR_FSHIFT 0
+#define G2D_BASE1_ADDR_FMASK 0xffffffff
+#define G2D_BASE2_ADDR_FADDR ADDR_G2D_BASE2
+#define G2D_BASE2_ADDR_FSHIFT 0
+#define G2D_BASE2_ADDR_FMASK 0xffffffff
+#define G2D_BASE3_ADDR_FADDR ADDR_G2D_BASE3
+#define G2D_BASE3_ADDR_FSHIFT 0
+#define G2D_BASE3_ADDR_FMASK 0xffffffff
+#define G2D_BLENDERCFG_PASSES_FADDR ADDR_G2D_BLENDERCFG
+#define G2D_BLENDERCFG_PASSES_FSHIFT 0
+#define G2D_BLENDERCFG_PASSES_FMASK 0x7
+#define G2D_BLENDERCFG_ALPHAPASSES_FADDR ADDR_G2D_BLENDERCFG
+#define G2D_BLENDERCFG_ALPHAPASSES_FSHIFT 3
+#define G2D_BLENDERCFG_ALPHAPASSES_FMASK 0x3
+#define G2D_BLENDERCFG_ENABLE_FADDR ADDR_G2D_BLENDERCFG
+#define G2D_BLENDERCFG_ENABLE_FSHIFT 5
+#define G2D_BLENDERCFG_ENABLE_FMASK 0x1
+#define G2D_BLENDERCFG_OOALPHA_FADDR ADDR_G2D_BLENDERCFG
+#define G2D_BLENDERCFG_OOALPHA_FSHIFT 6
+#define G2D_BLENDERCFG_OOALPHA_FMASK 0x1
+#define G2D_BLENDERCFG_OBS_DIVALPHA_FADDR ADDR_G2D_BLENDERCFG
+#define G2D_BLENDERCFG_OBS_DIVALPHA_FSHIFT 7
+#define G2D_BLENDERCFG_OBS_DIVALPHA_FMASK 0x1
+#define G2D_BLENDERCFG_NOMASK_FADDR ADDR_G2D_BLENDERCFG
+#define G2D_BLENDERCFG_NOMASK_FSHIFT 8
+#define G2D_BLENDERCFG_NOMASK_FMASK 0x1
+#define G2D_BLEND_A0_OPERATION_FADDR ADDR_G2D_BLEND_A0
+#define G2D_BLEND_A0_OPERATION_FSHIFT 0
+#define G2D_BLEND_A0_OPERATION_FMASK 0x3
+#define G2D_BLEND_A0_DST_A_FADDR ADDR_G2D_BLEND_A0
+#define G2D_BLEND_A0_DST_A_FSHIFT 2
+#define G2D_BLEND_A0_DST_A_FMASK 0x3
+#define G2D_BLEND_A0_DST_B_FADDR ADDR_G2D_BLEND_A0
+#define G2D_BLEND_A0_DST_B_FSHIFT 4
+#define G2D_BLEND_A0_DST_B_FMASK 0x3
+#define G2D_BLEND_A0_DST_C_FADDR ADDR_G2D_BLEND_A0
+#define G2D_BLEND_A0_DST_C_FSHIFT 6
+#define G2D_BLEND_A0_DST_C_FMASK 0x3
+#define G2D_BLEND_A0_AR_A_FADDR ADDR_G2D_BLEND_A0
+#define G2D_BLEND_A0_AR_A_FSHIFT 8
+#define G2D_BLEND_A0_AR_A_FMASK 0x1
+#define G2D_BLEND_A0_AR_B_FADDR ADDR_G2D_BLEND_A0
+#define G2D_BLEND_A0_AR_B_FSHIFT 9
+#define G2D_BLEND_A0_AR_B_FMASK 0x1
+#define G2D_BLEND_A0_AR_C_FADDR ADDR_G2D_BLEND_A0
+#define G2D_BLEND_A0_AR_C_FSHIFT 10
+#define G2D_BLEND_A0_AR_C_FMASK 0x1
+#define G2D_BLEND_A0_AR_D_FADDR ADDR_G2D_BLEND_A0
+#define G2D_BLEND_A0_AR_D_FSHIFT 11
+#define G2D_BLEND_A0_AR_D_FMASK 0x1
+#define G2D_BLEND_A0_INV_A_FADDR ADDR_G2D_BLEND_A0
+#define G2D_BLEND_A0_INV_A_FSHIFT 12
+#define G2D_BLEND_A0_INV_A_FMASK 0x1
+#define G2D_BLEND_A0_INV_B_FADDR ADDR_G2D_BLEND_A0
+#define G2D_BLEND_A0_INV_B_FSHIFT 13
+#define G2D_BLEND_A0_INV_B_FMASK 0x1
+#define G2D_BLEND_A0_INV_C_FADDR ADDR_G2D_BLEND_A0
+#define G2D_BLEND_A0_INV_C_FSHIFT 14
+#define G2D_BLEND_A0_INV_C_FMASK 0x1
+#define G2D_BLEND_A0_INV_D_FADDR ADDR_G2D_BLEND_A0
+#define G2D_BLEND_A0_INV_D_FSHIFT 15
+#define G2D_BLEND_A0_INV_D_FMASK 0x1
+#define G2D_BLEND_A0_SRC_A_FADDR ADDR_G2D_BLEND_A0
+#define G2D_BLEND_A0_SRC_A_FSHIFT 16
+#define G2D_BLEND_A0_SRC_A_FMASK 0x7
+#define G2D_BLEND_A0_SRC_B_FADDR ADDR_G2D_BLEND_A0
+#define G2D_BLEND_A0_SRC_B_FSHIFT 19
+#define G2D_BLEND_A0_SRC_B_FMASK 0x7
+#define G2D_BLEND_A0_SRC_C_FADDR ADDR_G2D_BLEND_A0
+#define G2D_BLEND_A0_SRC_C_FSHIFT 22
+#define G2D_BLEND_A0_SRC_C_FMASK 0x7
+#define G2D_BLEND_A0_SRC_D_FADDR ADDR_G2D_BLEND_A0
+#define G2D_BLEND_A0_SRC_D_FSHIFT 25
+#define G2D_BLEND_A0_SRC_D_FMASK 0x7
+#define G2D_BLEND_A0_CONST_A_FADDR ADDR_G2D_BLEND_A0
+#define G2D_BLEND_A0_CONST_A_FSHIFT 28
+#define G2D_BLEND_A0_CONST_A_FMASK 0x1
+#define G2D_BLEND_A0_CONST_B_FADDR ADDR_G2D_BLEND_A0
+#define G2D_BLEND_A0_CONST_B_FSHIFT 29
+#define G2D_BLEND_A0_CONST_B_FMASK 0x1
+#define G2D_BLEND_A0_CONST_C_FADDR ADDR_G2D_BLEND_A0
+#define G2D_BLEND_A0_CONST_C_FSHIFT 30
+#define G2D_BLEND_A0_CONST_C_FMASK 0x1
+#define G2D_BLEND_A0_CONST_D_FADDR ADDR_G2D_BLEND_A0
+#define G2D_BLEND_A0_CONST_D_FSHIFT 31
+#define G2D_BLEND_A0_CONST_D_FMASK 0x1
+#define G2D_BLEND_A1_OPERATION_FADDR ADDR_G2D_BLEND_A1
+#define G2D_BLEND_A1_OPERATION_FSHIFT 0
+#define G2D_BLEND_A1_OPERATION_FMASK 0x3
+#define G2D_BLEND_A1_DST_A_FADDR ADDR_G2D_BLEND_A1
+#define G2D_BLEND_A1_DST_A_FSHIFT 2
+#define G2D_BLEND_A1_DST_A_FMASK 0x3
+#define G2D_BLEND_A1_DST_B_FADDR ADDR_G2D_BLEND_A1
+#define G2D_BLEND_A1_DST_B_FSHIFT 4
+#define G2D_BLEND_A1_DST_B_FMASK 0x3
+#define G2D_BLEND_A1_DST_C_FADDR ADDR_G2D_BLEND_A1
+#define G2D_BLEND_A1_DST_C_FSHIFT 6
+#define G2D_BLEND_A1_DST_C_FMASK 0x3
+#define G2D_BLEND_A1_AR_A_FADDR ADDR_G2D_BLEND_A1
+#define G2D_BLEND_A1_AR_A_FSHIFT 8
+#define G2D_BLEND_A1_AR_A_FMASK 0x1
+#define G2D_BLEND_A1_AR_B_FADDR ADDR_G2D_BLEND_A1
+#define G2D_BLEND_A1_AR_B_FSHIFT 9
+#define G2D_BLEND_A1_AR_B_FMASK 0x1
+#define G2D_BLEND_A1_AR_C_FADDR ADDR_G2D_BLEND_A1
+#define G2D_BLEND_A1_AR_C_FSHIFT 10
+#define G2D_BLEND_A1_AR_C_FMASK 0x1
+#define G2D_BLEND_A1_AR_D_FADDR ADDR_G2D_BLEND_A1
+#define G2D_BLEND_A1_AR_D_FSHIFT 11
+#define G2D_BLEND_A1_AR_D_FMASK 0x1
+#define G2D_BLEND_A1_INV_A_FADDR ADDR_G2D_BLEND_A1
+#define G2D_BLEND_A1_INV_A_FSHIFT 12
+#define G2D_BLEND_A1_INV_A_FMASK 0x1
+#define G2D_BLEND_A1_INV_B_FADDR ADDR_G2D_BLEND_A1
+#define G2D_BLEND_A1_INV_B_FSHIFT 13
+#define G2D_BLEND_A1_INV_B_FMASK 0x1
+#define G2D_BLEND_A1_INV_C_FADDR ADDR_G2D_BLEND_A1
+#define G2D_BLEND_A1_INV_C_FSHIFT 14
+#define G2D_BLEND_A1_INV_C_FMASK 0x1
+#define G2D_BLEND_A1_INV_D_FADDR ADDR_G2D_BLEND_A1
+#define G2D_BLEND_A1_INV_D_FSHIFT 15
+#define G2D_BLEND_A1_INV_D_FMASK 0x1
+#define G2D_BLEND_A1_SRC_A_FADDR ADDR_G2D_BLEND_A1
+#define G2D_BLEND_A1_SRC_A_FSHIFT 16
+#define G2D_BLEND_A1_SRC_A_FMASK 0x7
+#define G2D_BLEND_A1_SRC_B_FADDR ADDR_G2D_BLEND_A1
+#define G2D_BLEND_A1_SRC_B_FSHIFT 19
+#define G2D_BLEND_A1_SRC_B_FMASK 0x7
+#define G2D_BLEND_A1_SRC_C_FADDR ADDR_G2D_BLEND_A1
+#define G2D_BLEND_A1_SRC_C_FSHIFT 22
+#define G2D_BLEND_A1_SRC_C_FMASK 0x7
+#define G2D_BLEND_A1_SRC_D_FADDR ADDR_G2D_BLEND_A1
+#define G2D_BLEND_A1_SRC_D_FSHIFT 25
+#define G2D_BLEND_A1_SRC_D_FMASK 0x7
+#define G2D_BLEND_A1_CONST_A_FADDR ADDR_G2D_BLEND_A1
+#define G2D_BLEND_A1_CONST_A_FSHIFT 28
+#define G2D_BLEND_A1_CONST_A_FMASK 0x1
+#define G2D_BLEND_A1_CONST_B_FADDR ADDR_G2D_BLEND_A1
+#define G2D_BLEND_A1_CONST_B_FSHIFT 29
+#define G2D_BLEND_A1_CONST_B_FMASK 0x1
+#define G2D_BLEND_A1_CONST_C_FADDR ADDR_G2D_BLEND_A1
+#define G2D_BLEND_A1_CONST_C_FSHIFT 30
+#define G2D_BLEND_A1_CONST_C_FMASK 0x1
+#define G2D_BLEND_A1_CONST_D_FADDR ADDR_G2D_BLEND_A1
+#define G2D_BLEND_A1_CONST_D_FSHIFT 31
+#define G2D_BLEND_A1_CONST_D_FMASK 0x1
+#define G2D_BLEND_A2_OPERATION_FADDR ADDR_G2D_BLEND_A2
+#define G2D_BLEND_A2_OPERATION_FSHIFT 0
+#define G2D_BLEND_A2_OPERATION_FMASK 0x3
+#define G2D_BLEND_A2_DST_A_FADDR ADDR_G2D_BLEND_A2
+#define G2D_BLEND_A2_DST_A_FSHIFT 2
+#define G2D_BLEND_A2_DST_A_FMASK 0x3
+#define G2D_BLEND_A2_DST_B_FADDR ADDR_G2D_BLEND_A2
+#define G2D_BLEND_A2_DST_B_FSHIFT 4
+#define G2D_BLEND_A2_DST_B_FMASK 0x3
+#define G2D_BLEND_A2_DST_C_FADDR ADDR_G2D_BLEND_A2
+#define G2D_BLEND_A2_DST_C_FSHIFT 6
+#define G2D_BLEND_A2_DST_C_FMASK 0x3
+#define G2D_BLEND_A2_AR_A_FADDR ADDR_G2D_BLEND_A2
+#define G2D_BLEND_A2_AR_A_FSHIFT 8
+#define G2D_BLEND_A2_AR_A_FMASK 0x1
+#define G2D_BLEND_A2_AR_B_FADDR ADDR_G2D_BLEND_A2
+#define G2D_BLEND_A2_AR_B_FSHIFT 9
+#define G2D_BLEND_A2_AR_B_FMASK 0x1
+#define G2D_BLEND_A2_AR_C_FADDR ADDR_G2D_BLEND_A2
+#define G2D_BLEND_A2_AR_C_FSHIFT 10
+#define G2D_BLEND_A2_AR_C_FMASK 0x1
+#define G2D_BLEND_A2_AR_D_FADDR ADDR_G2D_BLEND_A2
+#define G2D_BLEND_A2_AR_D_FSHIFT 11
+#define G2D_BLEND_A2_AR_D_FMASK 0x1
+#define G2D_BLEND_A2_INV_A_FADDR ADDR_G2D_BLEND_A2
+#define G2D_BLEND_A2_INV_A_FSHIFT 12
+#define G2D_BLEND_A2_INV_A_FMASK 0x1
+#define G2D_BLEND_A2_INV_B_FADDR ADDR_G2D_BLEND_A2
+#define G2D_BLEND_A2_INV_B_FSHIFT 13
+#define G2D_BLEND_A2_INV_B_FMASK 0x1
+#define G2D_BLEND_A2_INV_C_FADDR ADDR_G2D_BLEND_A2
+#define G2D_BLEND_A2_INV_C_FSHIFT 14
+#define G2D_BLEND_A2_INV_C_FMASK 0x1
+#define G2D_BLEND_A2_INV_D_FADDR ADDR_G2D_BLEND_A2
+#define G2D_BLEND_A2_INV_D_FSHIFT 15
+#define G2D_BLEND_A2_INV_D_FMASK 0x1
+#define G2D_BLEND_A2_SRC_A_FADDR ADDR_G2D_BLEND_A2
+#define G2D_BLEND_A2_SRC_A_FSHIFT 16
+#define G2D_BLEND_A2_SRC_A_FMASK 0x7
+#define G2D_BLEND_A2_SRC_B_FADDR ADDR_G2D_BLEND_A2
+#define G2D_BLEND_A2_SRC_B_FSHIFT 19
+#define G2D_BLEND_A2_SRC_B_FMASK 0x7
+#define G2D_BLEND_A2_SRC_C_FADDR ADDR_G2D_BLEND_A2
+#define G2D_BLEND_A2_SRC_C_FSHIFT 22
+#define G2D_BLEND_A2_SRC_C_FMASK 0x7
+#define G2D_BLEND_A2_SRC_D_FADDR ADDR_G2D_BLEND_A2
+#define G2D_BLEND_A2_SRC_D_FSHIFT 25
+#define G2D_BLEND_A2_SRC_D_FMASK 0x7
+#define G2D_BLEND_A2_CONST_A_FADDR ADDR_G2D_BLEND_A2
+#define G2D_BLEND_A2_CONST_A_FSHIFT 28
+#define G2D_BLEND_A2_CONST_A_FMASK 0x1
+#define G2D_BLEND_A2_CONST_B_FADDR ADDR_G2D_BLEND_A2
+#define G2D_BLEND_A2_CONST_B_FSHIFT 29
+#define G2D_BLEND_A2_CONST_B_FMASK 0x1
+#define G2D_BLEND_A2_CONST_C_FADDR ADDR_G2D_BLEND_A2
+#define G2D_BLEND_A2_CONST_C_FSHIFT 30
+#define G2D_BLEND_A2_CONST_C_FMASK 0x1
+#define G2D_BLEND_A2_CONST_D_FADDR ADDR_G2D_BLEND_A2
+#define G2D_BLEND_A2_CONST_D_FSHIFT 31
+#define G2D_BLEND_A2_CONST_D_FMASK 0x1
+#define G2D_BLEND_A3_OPERATION_FADDR ADDR_G2D_BLEND_A3
+#define G2D_BLEND_A3_OPERATION_FSHIFT 0
+#define G2D_BLEND_A3_OPERATION_FMASK 0x3
+#define G2D_BLEND_A3_DST_A_FADDR ADDR_G2D_BLEND_A3
+#define G2D_BLEND_A3_DST_A_FSHIFT 2
+#define G2D_BLEND_A3_DST_A_FMASK 0x3
+#define G2D_BLEND_A3_DST_B_FADDR ADDR_G2D_BLEND_A3
+#define G2D_BLEND_A3_DST_B_FSHIFT 4
+#define G2D_BLEND_A3_DST_B_FMASK 0x3
+#define G2D_BLEND_A3_DST_C_FADDR ADDR_G2D_BLEND_A3
+#define G2D_BLEND_A3_DST_C_FSHIFT 6
+#define G2D_BLEND_A3_DST_C_FMASK 0x3
+#define G2D_BLEND_A3_AR_A_FADDR ADDR_G2D_BLEND_A3
+#define G2D_BLEND_A3_AR_A_FSHIFT 8
+#define G2D_BLEND_A3_AR_A_FMASK 0x1
+#define G2D_BLEND_A3_AR_B_FADDR ADDR_G2D_BLEND_A3
+#define G2D_BLEND_A3_AR_B_FSHIFT 9
+#define G2D_BLEND_A3_AR_B_FMASK 0x1
+#define G2D_BLEND_A3_AR_C_FADDR ADDR_G2D_BLEND_A3
+#define G2D_BLEND_A3_AR_C_FSHIFT 10
+#define G2D_BLEND_A3_AR_C_FMASK 0x1
+#define G2D_BLEND_A3_AR_D_FADDR ADDR_G2D_BLEND_A3
+#define G2D_BLEND_A3_AR_D_FSHIFT 11
+#define G2D_BLEND_A3_AR_D_FMASK 0x1
+#define G2D_BLEND_A3_INV_A_FADDR ADDR_G2D_BLEND_A3
+#define G2D_BLEND_A3_INV_A_FSHIFT 12
+#define G2D_BLEND_A3_INV_A_FMASK 0x1
+#define G2D_BLEND_A3_INV_B_FADDR ADDR_G2D_BLEND_A3
+#define G2D_BLEND_A3_INV_B_FSHIFT 13
+#define G2D_BLEND_A3_INV_B_FMASK 0x1
+#define G2D_BLEND_A3_INV_C_FADDR ADDR_G2D_BLEND_A3
+#define G2D_BLEND_A3_INV_C_FSHIFT 14
+#define G2D_BLEND_A3_INV_C_FMASK 0x1
+#define G2D_BLEND_A3_INV_D_FADDR ADDR_G2D_BLEND_A3
+#define G2D_BLEND_A3_INV_D_FSHIFT 15
+#define G2D_BLEND_A3_INV_D_FMASK 0x1
+#define G2D_BLEND_A3_SRC_A_FADDR ADDR_G2D_BLEND_A3
+#define G2D_BLEND_A3_SRC_A_FSHIFT 16
+#define G2D_BLEND_A3_SRC_A_FMASK 0x7
+#define G2D_BLEND_A3_SRC_B_FADDR ADDR_G2D_BLEND_A3
+#define G2D_BLEND_A3_SRC_B_FSHIFT 19
+#define G2D_BLEND_A3_SRC_B_FMASK 0x7
+#define G2D_BLEND_A3_SRC_C_FADDR ADDR_G2D_BLEND_A3
+#define G2D_BLEND_A3_SRC_C_FSHIFT 22
+#define G2D_BLEND_A3_SRC_C_FMASK 0x7
+#define G2D_BLEND_A3_SRC_D_FADDR ADDR_G2D_BLEND_A3
+#define G2D_BLEND_A3_SRC_D_FSHIFT 25
+#define G2D_BLEND_A3_SRC_D_FMASK 0x7
+#define G2D_BLEND_A3_CONST_A_FADDR ADDR_G2D_BLEND_A3
+#define G2D_BLEND_A3_CONST_A_FSHIFT 28
+#define G2D_BLEND_A3_CONST_A_FMASK 0x1
+#define G2D_BLEND_A3_CONST_B_FADDR ADDR_G2D_BLEND_A3
+#define G2D_BLEND_A3_CONST_B_FSHIFT 29
+#define G2D_BLEND_A3_CONST_B_FMASK 0x1
+#define G2D_BLEND_A3_CONST_C_FADDR ADDR_G2D_BLEND_A3
+#define G2D_BLEND_A3_CONST_C_FSHIFT 30
+#define G2D_BLEND_A3_CONST_C_FMASK 0x1
+#define G2D_BLEND_A3_CONST_D_FADDR ADDR_G2D_BLEND_A3
+#define G2D_BLEND_A3_CONST_D_FSHIFT 31
+#define G2D_BLEND_A3_CONST_D_FMASK 0x1
+#define G2D_BLEND_C0_OPERATION_FADDR ADDR_G2D_BLEND_C0
+#define G2D_BLEND_C0_OPERATION_FSHIFT 0
+#define G2D_BLEND_C0_OPERATION_FMASK 0x3
+#define G2D_BLEND_C0_DST_A_FADDR ADDR_G2D_BLEND_C0
+#define G2D_BLEND_C0_DST_A_FSHIFT 2
+#define G2D_BLEND_C0_DST_A_FMASK 0x3
+#define G2D_BLEND_C0_DST_B_FADDR ADDR_G2D_BLEND_C0
+#define G2D_BLEND_C0_DST_B_FSHIFT 4
+#define G2D_BLEND_C0_DST_B_FMASK 0x3
+#define G2D_BLEND_C0_DST_C_FADDR ADDR_G2D_BLEND_C0
+#define G2D_BLEND_C0_DST_C_FSHIFT 6
+#define G2D_BLEND_C0_DST_C_FMASK 0x3
+#define G2D_BLEND_C0_AR_A_FADDR ADDR_G2D_BLEND_C0
+#define G2D_BLEND_C0_AR_A_FSHIFT 8
+#define G2D_BLEND_C0_AR_A_FMASK 0x1
+#define G2D_BLEND_C0_AR_B_FADDR ADDR_G2D_BLEND_C0
+#define G2D_BLEND_C0_AR_B_FSHIFT 9
+#define G2D_BLEND_C0_AR_B_FMASK 0x1
+#define G2D_BLEND_C0_AR_C_FADDR ADDR_G2D_BLEND_C0
+#define G2D_BLEND_C0_AR_C_FSHIFT 10
+#define G2D_BLEND_C0_AR_C_FMASK 0x1
+#define G2D_BLEND_C0_AR_D_FADDR ADDR_G2D_BLEND_C0
+#define G2D_BLEND_C0_AR_D_FSHIFT 11
+#define G2D_BLEND_C0_AR_D_FMASK 0x1
+#define G2D_BLEND_C0_INV_A_FADDR ADDR_G2D_BLEND_C0
+#define G2D_BLEND_C0_INV_A_FSHIFT 12
+#define G2D_BLEND_C0_INV_A_FMASK 0x1
+#define G2D_BLEND_C0_INV_B_FADDR ADDR_G2D_BLEND_C0
+#define G2D_BLEND_C0_INV_B_FSHIFT 13
+#define G2D_BLEND_C0_INV_B_FMASK 0x1
+#define G2D_BLEND_C0_INV_C_FADDR ADDR_G2D_BLEND_C0
+#define G2D_BLEND_C0_INV_C_FSHIFT 14
+#define G2D_BLEND_C0_INV_C_FMASK 0x1
+#define G2D_BLEND_C0_INV_D_FADDR ADDR_G2D_BLEND_C0
+#define G2D_BLEND_C0_INV_D_FSHIFT 15
+#define G2D_BLEND_C0_INV_D_FMASK 0x1
+#define G2D_BLEND_C0_SRC_A_FADDR ADDR_G2D_BLEND_C0
+#define G2D_BLEND_C0_SRC_A_FSHIFT 16
+#define G2D_BLEND_C0_SRC_A_FMASK 0x7
+#define G2D_BLEND_C0_SRC_B_FADDR ADDR_G2D_BLEND_C0
+#define G2D_BLEND_C0_SRC_B_FSHIFT 19
+#define G2D_BLEND_C0_SRC_B_FMASK 0x7
+#define G2D_BLEND_C0_SRC_C_FADDR ADDR_G2D_BLEND_C0
+#define G2D_BLEND_C0_SRC_C_FSHIFT 22
+#define G2D_BLEND_C0_SRC_C_FMASK 0x7
+#define G2D_BLEND_C0_SRC_D_FADDR ADDR_G2D_BLEND_C0
+#define G2D_BLEND_C0_SRC_D_FSHIFT 25
+#define G2D_BLEND_C0_SRC_D_FMASK 0x7
+#define G2D_BLEND_C0_CONST_A_FADDR ADDR_G2D_BLEND_C0
+#define G2D_BLEND_C0_CONST_A_FSHIFT 28
+#define G2D_BLEND_C0_CONST_A_FMASK 0x1
+#define G2D_BLEND_C0_CONST_B_FADDR ADDR_G2D_BLEND_C0
+#define G2D_BLEND_C0_CONST_B_FSHIFT 29
+#define G2D_BLEND_C0_CONST_B_FMASK 0x1
+#define G2D_BLEND_C0_CONST_C_FADDR ADDR_G2D_BLEND_C0
+#define G2D_BLEND_C0_CONST_C_FSHIFT 30
+#define G2D_BLEND_C0_CONST_C_FMASK 0x1
+#define G2D_BLEND_C0_CONST_D_FADDR ADDR_G2D_BLEND_C0
+#define G2D_BLEND_C0_CONST_D_FSHIFT 31
+#define G2D_BLEND_C0_CONST_D_FMASK 0x1
+#define G2D_BLEND_C1_OPERATION_FADDR ADDR_G2D_BLEND_C1
+#define G2D_BLEND_C1_OPERATION_FSHIFT 0
+#define G2D_BLEND_C1_OPERATION_FMASK 0x3
+#define G2D_BLEND_C1_DST_A_FADDR ADDR_G2D_BLEND_C1
+#define G2D_BLEND_C1_DST_A_FSHIFT 2
+#define G2D_BLEND_C1_DST_A_FMASK 0x3
+#define G2D_BLEND_C1_DST_B_FADDR ADDR_G2D_BLEND_C1
+#define G2D_BLEND_C1_DST_B_FSHIFT 4
+#define G2D_BLEND_C1_DST_B_FMASK 0x3
+#define G2D_BLEND_C1_DST_C_FADDR ADDR_G2D_BLEND_C1
+#define G2D_BLEND_C1_DST_C_FSHIFT 6
+#define G2D_BLEND_C1_DST_C_FMASK 0x3
+#define G2D_BLEND_C1_AR_A_FADDR ADDR_G2D_BLEND_C1
+#define G2D_BLEND_C1_AR_A_FSHIFT 8
+#define G2D_BLEND_C1_AR_A_FMASK 0x1
+#define G2D_BLEND_C1_AR_B_FADDR ADDR_G2D_BLEND_C1
+#define G2D_BLEND_C1_AR_B_FSHIFT 9
+#define G2D_BLEND_C1_AR_B_FMASK 0x1
+#define G2D_BLEND_C1_AR_C_FADDR ADDR_G2D_BLEND_C1
+#define G2D_BLEND_C1_AR_C_FSHIFT 10
+#define G2D_BLEND_C1_AR_C_FMASK 0x1
+#define G2D_BLEND_C1_AR_D_FADDR ADDR_G2D_BLEND_C1
+#define G2D_BLEND_C1_AR_D_FSHIFT 11
+#define G2D_BLEND_C1_AR_D_FMASK 0x1
+#define G2D_BLEND_C1_INV_A_FADDR ADDR_G2D_BLEND_C1
+#define G2D_BLEND_C1_INV_A_FSHIFT 12
+#define G2D_BLEND_C1_INV_A_FMASK 0x1
+#define G2D_BLEND_C1_INV_B_FADDR ADDR_G2D_BLEND_C1
+#define G2D_BLEND_C1_INV_B_FSHIFT 13
+#define G2D_BLEND_C1_INV_B_FMASK 0x1
+#define G2D_BLEND_C1_INV_C_FADDR ADDR_G2D_BLEND_C1
+#define G2D_BLEND_C1_INV_C_FSHIFT 14
+#define G2D_BLEND_C1_INV_C_FMASK 0x1
+#define G2D_BLEND_C1_INV_D_FADDR ADDR_G2D_BLEND_C1
+#define G2D_BLEND_C1_INV_D_FSHIFT 15
+#define G2D_BLEND_C1_INV_D_FMASK 0x1
+#define G2D_BLEND_C1_SRC_A_FADDR ADDR_G2D_BLEND_C1
+#define G2D_BLEND_C1_SRC_A_FSHIFT 16
+#define G2D_BLEND_C1_SRC_A_FMASK 0x7
+#define G2D_BLEND_C1_SRC_B_FADDR ADDR_G2D_BLEND_C1
+#define G2D_BLEND_C1_SRC_B_FSHIFT 19
+#define G2D_BLEND_C1_SRC_B_FMASK 0x7
+#define G2D_BLEND_C1_SRC_C_FADDR ADDR_G2D_BLEND_C1
+#define G2D_BLEND_C1_SRC_C_FSHIFT 22
+#define G2D_BLEND_C1_SRC_C_FMASK 0x7
+#define G2D_BLEND_C1_SRC_D_FADDR ADDR_G2D_BLEND_C1
+#define G2D_BLEND_C1_SRC_D_FSHIFT 25
+#define G2D_BLEND_C1_SRC_D_FMASK 0x7
+#define G2D_BLEND_C1_CONST_A_FADDR ADDR_G2D_BLEND_C1
+#define G2D_BLEND_C1_CONST_A_FSHIFT 28
+#define G2D_BLEND_C1_CONST_A_FMASK 0x1
+#define G2D_BLEND_C1_CONST_B_FADDR ADDR_G2D_BLEND_C1
+#define G2D_BLEND_C1_CONST_B_FSHIFT 29
+#define G2D_BLEND_C1_CONST_B_FMASK 0x1
+#define G2D_BLEND_C1_CONST_C_FADDR ADDR_G2D_BLEND_C1
+#define G2D_BLEND_C1_CONST_C_FSHIFT 30
+#define G2D_BLEND_C1_CONST_C_FMASK 0x1
+#define G2D_BLEND_C1_CONST_D_FADDR ADDR_G2D_BLEND_C1
+#define G2D_BLEND_C1_CONST_D_FSHIFT 31
+#define G2D_BLEND_C1_CONST_D_FMASK 0x1
+#define G2D_BLEND_C2_OPERATION_FADDR ADDR_G2D_BLEND_C2
+#define G2D_BLEND_C2_OPERATION_FSHIFT 0
+#define G2D_BLEND_C2_OPERATION_FMASK 0x3
+#define G2D_BLEND_C2_DST_A_FADDR ADDR_G2D_BLEND_C2
+#define G2D_BLEND_C2_DST_A_FSHIFT 2
+#define G2D_BLEND_C2_DST_A_FMASK 0x3
+#define G2D_BLEND_C2_DST_B_FADDR ADDR_G2D_BLEND_C2
+#define G2D_BLEND_C2_DST_B_FSHIFT 4
+#define G2D_BLEND_C2_DST_B_FMASK 0x3
+#define G2D_BLEND_C2_DST_C_FADDR ADDR_G2D_BLEND_C2
+#define G2D_BLEND_C2_DST_C_FSHIFT 6
+#define G2D_BLEND_C2_DST_C_FMASK 0x3
+#define G2D_BLEND_C2_AR_A_FADDR ADDR_G2D_BLEND_C2
+#define G2D_BLEND_C2_AR_A_FSHIFT 8
+#define G2D_BLEND_C2_AR_A_FMASK 0x1
+#define G2D_BLEND_C2_AR_B_FADDR ADDR_G2D_BLEND_C2
+#define G2D_BLEND_C2_AR_B_FSHIFT 9
+#define G2D_BLEND_C2_AR_B_FMASK 0x1
+#define G2D_BLEND_C2_AR_C_FADDR ADDR_G2D_BLEND_C2
+#define G2D_BLEND_C2_AR_C_FSHIFT 10
+#define G2D_BLEND_C2_AR_C_FMASK 0x1
+#define G2D_BLEND_C2_AR_D_FADDR ADDR_G2D_BLEND_C2
+#define G2D_BLEND_C2_AR_D_FSHIFT 11
+#define G2D_BLEND_C2_AR_D_FMASK 0x1
+#define G2D_BLEND_C2_INV_A_FADDR ADDR_G2D_BLEND_C2
+#define G2D_BLEND_C2_INV_A_FSHIFT 12
+#define G2D_BLEND_C2_INV_A_FMASK 0x1
+#define G2D_BLEND_C2_INV_B_FADDR ADDR_G2D_BLEND_C2
+#define G2D_BLEND_C2_INV_B_FSHIFT 13
+#define G2D_BLEND_C2_INV_B_FMASK 0x1
+#define G2D_BLEND_C2_INV_C_FADDR ADDR_G2D_BLEND_C2
+#define G2D_BLEND_C2_INV_C_FSHIFT 14
+#define G2D_BLEND_C2_INV_C_FMASK 0x1
+#define G2D_BLEND_C2_INV_D_FADDR ADDR_G2D_BLEND_C2
+#define G2D_BLEND_C2_INV_D_FSHIFT 15
+#define G2D_BLEND_C2_INV_D_FMASK 0x1
+#define G2D_BLEND_C2_SRC_A_FADDR ADDR_G2D_BLEND_C2
+#define G2D_BLEND_C2_SRC_A_FSHIFT 16
+#define G2D_BLEND_C2_SRC_A_FMASK 0x7
+#define G2D_BLEND_C2_SRC_B_FADDR ADDR_G2D_BLEND_C2
+#define G2D_BLEND_C2_SRC_B_FSHIFT 19
+#define G2D_BLEND_C2_SRC_B_FMASK 0x7
+#define G2D_BLEND_C2_SRC_C_FADDR ADDR_G2D_BLEND_C2
+#define G2D_BLEND_C2_SRC_C_FSHIFT 22
+#define G2D_BLEND_C2_SRC_C_FMASK 0x7
+#define G2D_BLEND_C2_SRC_D_FADDR ADDR_G2D_BLEND_C2
+#define G2D_BLEND_C2_SRC_D_FSHIFT 25
+#define G2D_BLEND_C2_SRC_D_FMASK 0x7
+#define G2D_BLEND_C2_CONST_A_FADDR ADDR_G2D_BLEND_C2
+#define G2D_BLEND_C2_CONST_A_FSHIFT 28
+#define G2D_BLEND_C2_CONST_A_FMASK 0x1
+#define G2D_BLEND_C2_CONST_B_FADDR ADDR_G2D_BLEND_C2
+#define G2D_BLEND_C2_CONST_B_FSHIFT 29
+#define G2D_BLEND_C2_CONST_B_FMASK 0x1
+#define G2D_BLEND_C2_CONST_C_FADDR ADDR_G2D_BLEND_C2
+#define G2D_BLEND_C2_CONST_C_FSHIFT 30
+#define G2D_BLEND_C2_CONST_C_FMASK 0x1
+#define G2D_BLEND_C2_CONST_D_FADDR ADDR_G2D_BLEND_C2
+#define G2D_BLEND_C2_CONST_D_FSHIFT 31
+#define G2D_BLEND_C2_CONST_D_FMASK 0x1
+#define G2D_BLEND_C3_OPERATION_FADDR ADDR_G2D_BLEND_C3
+#define G2D_BLEND_C3_OPERATION_FSHIFT 0
+#define G2D_BLEND_C3_OPERATION_FMASK 0x3
+#define G2D_BLEND_C3_DST_A_FADDR ADDR_G2D_BLEND_C3
+#define G2D_BLEND_C3_DST_A_FSHIFT 2
+#define G2D_BLEND_C3_DST_A_FMASK 0x3
+#define G2D_BLEND_C3_DST_B_FADDR ADDR_G2D_BLEND_C3
+#define G2D_BLEND_C3_DST_B_FSHIFT 4
+#define G2D_BLEND_C3_DST_B_FMASK 0x3
+#define G2D_BLEND_C3_DST_C_FADDR ADDR_G2D_BLEND_C3
+#define G2D_BLEND_C3_DST_C_FSHIFT 6
+#define G2D_BLEND_C3_DST_C_FMASK 0x3
+#define G2D_BLEND_C3_AR_A_FADDR ADDR_G2D_BLEND_C3
+#define G2D_BLEND_C3_AR_A_FSHIFT 8
+#define G2D_BLEND_C3_AR_A_FMASK 0x1
+#define G2D_BLEND_C3_AR_B_FADDR ADDR_G2D_BLEND_C3
+#define G2D_BLEND_C3_AR_B_FSHIFT 9
+#define G2D_BLEND_C3_AR_B_FMASK 0x1
+#define G2D_BLEND_C3_AR_C_FADDR ADDR_G2D_BLEND_C3
+#define G2D_BLEND_C3_AR_C_FSHIFT 10
+#define G2D_BLEND_C3_AR_C_FMASK 0x1
+#define G2D_BLEND_C3_AR_D_FADDR ADDR_G2D_BLEND_C3
+#define G2D_BLEND_C3_AR_D_FSHIFT 11
+#define G2D_BLEND_C3_AR_D_FMASK 0x1
+#define G2D_BLEND_C3_INV_A_FADDR ADDR_G2D_BLEND_C3
+#define G2D_BLEND_C3_INV_A_FSHIFT 12
+#define G2D_BLEND_C3_INV_A_FMASK 0x1
+#define G2D_BLEND_C3_INV_B_FADDR ADDR_G2D_BLEND_C3
+#define G2D_BLEND_C3_INV_B_FSHIFT 13
+#define G2D_BLEND_C3_INV_B_FMASK 0x1
+#define G2D_BLEND_C3_INV_C_FADDR ADDR_G2D_BLEND_C3
+#define G2D_BLEND_C3_INV_C_FSHIFT 14
+#define G2D_BLEND_C3_INV_C_FMASK 0x1
+#define G2D_BLEND_C3_INV_D_FADDR ADDR_G2D_BLEND_C3
+#define G2D_BLEND_C3_INV_D_FSHIFT 15
+#define G2D_BLEND_C3_INV_D_FMASK 0x1
+#define G2D_BLEND_C3_SRC_A_FADDR ADDR_G2D_BLEND_C3
+#define G2D_BLEND_C3_SRC_A_FSHIFT 16
+#define G2D_BLEND_C3_SRC_A_FMASK 0x7
+#define G2D_BLEND_C3_SRC_B_FADDR ADDR_G2D_BLEND_C3
+#define G2D_BLEND_C3_SRC_B_FSHIFT 19
+#define G2D_BLEND_C3_SRC_B_FMASK 0x7
+#define G2D_BLEND_C3_SRC_C_FADDR ADDR_G2D_BLEND_C3
+#define G2D_BLEND_C3_SRC_C_FSHIFT 22
+#define G2D_BLEND_C3_SRC_C_FMASK 0x7
+#define G2D_BLEND_C3_SRC_D_FADDR ADDR_G2D_BLEND_C3
+#define G2D_BLEND_C3_SRC_D_FSHIFT 25
+#define G2D_BLEND_C3_SRC_D_FMASK 0x7
+#define G2D_BLEND_C3_CONST_A_FADDR ADDR_G2D_BLEND_C3
+#define G2D_BLEND_C3_CONST_A_FSHIFT 28
+#define G2D_BLEND_C3_CONST_A_FMASK 0x1
+#define G2D_BLEND_C3_CONST_B_FADDR ADDR_G2D_BLEND_C3
+#define G2D_BLEND_C3_CONST_B_FSHIFT 29
+#define G2D_BLEND_C3_CONST_B_FMASK 0x1
+#define G2D_BLEND_C3_CONST_C_FADDR ADDR_G2D_BLEND_C3
+#define G2D_BLEND_C3_CONST_C_FSHIFT 30
+#define G2D_BLEND_C3_CONST_C_FMASK 0x1
+#define G2D_BLEND_C3_CONST_D_FADDR ADDR_G2D_BLEND_C3
+#define G2D_BLEND_C3_CONST_D_FSHIFT 31
+#define G2D_BLEND_C3_CONST_D_FMASK 0x1
+#define G2D_BLEND_C4_OPERATION_FADDR ADDR_G2D_BLEND_C4
+#define G2D_BLEND_C4_OPERATION_FSHIFT 0
+#define G2D_BLEND_C4_OPERATION_FMASK 0x3
+#define G2D_BLEND_C4_DST_A_FADDR ADDR_G2D_BLEND_C4
+#define G2D_BLEND_C4_DST_A_FSHIFT 2
+#define G2D_BLEND_C4_DST_A_FMASK 0x3
+#define G2D_BLEND_C4_DST_B_FADDR ADDR_G2D_BLEND_C4
+#define G2D_BLEND_C4_DST_B_FSHIFT 4
+#define G2D_BLEND_C4_DST_B_FMASK 0x3
+#define G2D_BLEND_C4_DST_C_FADDR ADDR_G2D_BLEND_C4
+#define G2D_BLEND_C4_DST_C_FSHIFT 6
+#define G2D_BLEND_C4_DST_C_FMASK 0x3
+#define G2D_BLEND_C4_AR_A_FADDR ADDR_G2D_BLEND_C4
+#define G2D_BLEND_C4_AR_A_FSHIFT 8
+#define G2D_BLEND_C4_AR_A_FMASK 0x1
+#define G2D_BLEND_C4_AR_B_FADDR ADDR_G2D_BLEND_C4
+#define G2D_BLEND_C4_AR_B_FSHIFT 9
+#define G2D_BLEND_C4_AR_B_FMASK 0x1
+#define G2D_BLEND_C4_AR_C_FADDR ADDR_G2D_BLEND_C4
+#define G2D_BLEND_C4_AR_C_FSHIFT 10
+#define G2D_BLEND_C4_AR_C_FMASK 0x1
+#define G2D_BLEND_C4_AR_D_FADDR ADDR_G2D_BLEND_C4
+#define G2D_BLEND_C4_AR_D_FSHIFT 11
+#define G2D_BLEND_C4_AR_D_FMASK 0x1
+#define G2D_BLEND_C4_INV_A_FADDR ADDR_G2D_BLEND_C4
+#define G2D_BLEND_C4_INV_A_FSHIFT 12
+#define G2D_BLEND_C4_INV_A_FMASK 0x1
+#define G2D_BLEND_C4_INV_B_FADDR ADDR_G2D_BLEND_C4
+#define G2D_BLEND_C4_INV_B_FSHIFT 13
+#define G2D_BLEND_C4_INV_B_FMASK 0x1
+#define G2D_BLEND_C4_INV_C_FADDR ADDR_G2D_BLEND_C4
+#define G2D_BLEND_C4_INV_C_FSHIFT 14
+#define G2D_BLEND_C4_INV_C_FMASK 0x1
+#define G2D_BLEND_C4_INV_D_FADDR ADDR_G2D_BLEND_C4
+#define G2D_BLEND_C4_INV_D_FSHIFT 15
+#define G2D_BLEND_C4_INV_D_FMASK 0x1
+#define G2D_BLEND_C4_SRC_A_FADDR ADDR_G2D_BLEND_C4
+#define G2D_BLEND_C4_SRC_A_FSHIFT 16
+#define G2D_BLEND_C4_SRC_A_FMASK 0x7
+#define G2D_BLEND_C4_SRC_B_FADDR ADDR_G2D_BLEND_C4
+#define G2D_BLEND_C4_SRC_B_FSHIFT 19
+#define G2D_BLEND_C4_SRC_B_FMASK 0x7
+#define G2D_BLEND_C4_SRC_C_FADDR ADDR_G2D_BLEND_C4
+#define G2D_BLEND_C4_SRC_C_FSHIFT 22
+#define G2D_BLEND_C4_SRC_C_FMASK 0x7
+#define G2D_BLEND_C4_SRC_D_FADDR ADDR_G2D_BLEND_C4
+#define G2D_BLEND_C4_SRC_D_FSHIFT 25
+#define G2D_BLEND_C4_SRC_D_FMASK 0x7
+#define G2D_BLEND_C4_CONST_A_FADDR ADDR_G2D_BLEND_C4
+#define G2D_BLEND_C4_CONST_A_FSHIFT 28
+#define G2D_BLEND_C4_CONST_A_FMASK 0x1
+#define G2D_BLEND_C4_CONST_B_FADDR ADDR_G2D_BLEND_C4
+#define G2D_BLEND_C4_CONST_B_FSHIFT 29
+#define G2D_BLEND_C4_CONST_B_FMASK 0x1
+#define G2D_BLEND_C4_CONST_C_FADDR ADDR_G2D_BLEND_C4
+#define G2D_BLEND_C4_CONST_C_FSHIFT 30
+#define G2D_BLEND_C4_CONST_C_FMASK 0x1
+#define G2D_BLEND_C4_CONST_D_FADDR ADDR_G2D_BLEND_C4
+#define G2D_BLEND_C4_CONST_D_FSHIFT 31
+#define G2D_BLEND_C4_CONST_D_FMASK 0x1
+#define G2D_BLEND_C5_OPERATION_FADDR ADDR_G2D_BLEND_C5
+#define G2D_BLEND_C5_OPERATION_FSHIFT 0
+#define G2D_BLEND_C5_OPERATION_FMASK 0x3
+#define G2D_BLEND_C5_DST_A_FADDR ADDR_G2D_BLEND_C5
+#define G2D_BLEND_C5_DST_A_FSHIFT 2
+#define G2D_BLEND_C5_DST_A_FMASK 0x3
+#define G2D_BLEND_C5_DST_B_FADDR ADDR_G2D_BLEND_C5
+#define G2D_BLEND_C5_DST_B_FSHIFT 4
+#define G2D_BLEND_C5_DST_B_FMASK 0x3
+#define G2D_BLEND_C5_DST_C_FADDR ADDR_G2D_BLEND_C5
+#define G2D_BLEND_C5_DST_C_FSHIFT 6
+#define G2D_BLEND_C5_DST_C_FMASK 0x3
+#define G2D_BLEND_C5_AR_A_FADDR ADDR_G2D_BLEND_C5
+#define G2D_BLEND_C5_AR_A_FSHIFT 8
+#define G2D_BLEND_C5_AR_A_FMASK 0x1
+#define G2D_BLEND_C5_AR_B_FADDR ADDR_G2D_BLEND_C5
+#define G2D_BLEND_C5_AR_B_FSHIFT 9
+#define G2D_BLEND_C5_AR_B_FMASK 0x1
+#define G2D_BLEND_C5_AR_C_FADDR ADDR_G2D_BLEND_C5
+#define G2D_BLEND_C5_AR_C_FSHIFT 10
+#define G2D_BLEND_C5_AR_C_FMASK 0x1
+#define G2D_BLEND_C5_AR_D_FADDR ADDR_G2D_BLEND_C5
+#define G2D_BLEND_C5_AR_D_FSHIFT 11
+#define G2D_BLEND_C5_AR_D_FMASK 0x1
+#define G2D_BLEND_C5_INV_A_FADDR ADDR_G2D_BLEND_C5
+#define G2D_BLEND_C5_INV_A_FSHIFT 12
+#define G2D_BLEND_C5_INV_A_FMASK 0x1
+#define G2D_BLEND_C5_INV_B_FADDR ADDR_G2D_BLEND_C5
+#define G2D_BLEND_C5_INV_B_FSHIFT 13
+#define G2D_BLEND_C5_INV_B_FMASK 0x1
+#define G2D_BLEND_C5_INV_C_FADDR ADDR_G2D_BLEND_C5
+#define G2D_BLEND_C5_INV_C_FSHIFT 14
+#define G2D_BLEND_C5_INV_C_FMASK 0x1
+#define G2D_BLEND_C5_INV_D_FADDR ADDR_G2D_BLEND_C5
+#define G2D_BLEND_C5_INV_D_FSHIFT 15
+#define G2D_BLEND_C5_INV_D_FMASK 0x1
+#define G2D_BLEND_C5_SRC_A_FADDR ADDR_G2D_BLEND_C5
+#define G2D_BLEND_C5_SRC_A_FSHIFT 16
+#define G2D_BLEND_C5_SRC_A_FMASK 0x7
+#define G2D_BLEND_C5_SRC_B_FADDR ADDR_G2D_BLEND_C5
+#define G2D_BLEND_C5_SRC_B_FSHIFT 19
+#define G2D_BLEND_C5_SRC_B_FMASK 0x7
+#define G2D_BLEND_C5_SRC_C_FADDR ADDR_G2D_BLEND_C5
+#define G2D_BLEND_C5_SRC_C_FSHIFT 22
+#define G2D_BLEND_C5_SRC_C_FMASK 0x7
+#define G2D_BLEND_C5_SRC_D_FADDR ADDR_G2D_BLEND_C5
+#define G2D_BLEND_C5_SRC_D_FSHIFT 25
+#define G2D_BLEND_C5_SRC_D_FMASK 0x7
+#define G2D_BLEND_C5_CONST_A_FADDR ADDR_G2D_BLEND_C5
+#define G2D_BLEND_C5_CONST_A_FSHIFT 28
+#define G2D_BLEND_C5_CONST_A_FMASK 0x1
+#define G2D_BLEND_C5_CONST_B_FADDR ADDR_G2D_BLEND_C5
+#define G2D_BLEND_C5_CONST_B_FSHIFT 29
+#define G2D_BLEND_C5_CONST_B_FMASK 0x1
+#define G2D_BLEND_C5_CONST_C_FADDR ADDR_G2D_BLEND_C5
+#define G2D_BLEND_C5_CONST_C_FSHIFT 30
+#define G2D_BLEND_C5_CONST_C_FMASK 0x1
+#define G2D_BLEND_C5_CONST_D_FADDR ADDR_G2D_BLEND_C5
+#define G2D_BLEND_C5_CONST_D_FSHIFT 31
+#define G2D_BLEND_C5_CONST_D_FMASK 0x1
+#define G2D_BLEND_C6_OPERATION_FADDR ADDR_G2D_BLEND_C6
+#define G2D_BLEND_C6_OPERATION_FSHIFT 0
+#define G2D_BLEND_C6_OPERATION_FMASK 0x3
+#define G2D_BLEND_C6_DST_A_FADDR ADDR_G2D_BLEND_C6
+#define G2D_BLEND_C6_DST_A_FSHIFT 2
+#define G2D_BLEND_C6_DST_A_FMASK 0x3
+#define G2D_BLEND_C6_DST_B_FADDR ADDR_G2D_BLEND_C6
+#define G2D_BLEND_C6_DST_B_FSHIFT 4
+#define G2D_BLEND_C6_DST_B_FMASK 0x3
+#define G2D_BLEND_C6_DST_C_FADDR ADDR_G2D_BLEND_C6
+#define G2D_BLEND_C6_DST_C_FSHIFT 6
+#define G2D_BLEND_C6_DST_C_FMASK 0x3
+#define G2D_BLEND_C6_AR_A_FADDR ADDR_G2D_BLEND_C6
+#define G2D_BLEND_C6_AR_A_FSHIFT 8
+#define G2D_BLEND_C6_AR_A_FMASK 0x1
+#define G2D_BLEND_C6_AR_B_FADDR ADDR_G2D_BLEND_C6
+#define G2D_BLEND_C6_AR_B_FSHIFT 9
+#define G2D_BLEND_C6_AR_B_FMASK 0x1
+#define G2D_BLEND_C6_AR_C_FADDR ADDR_G2D_BLEND_C6
+#define G2D_BLEND_C6_AR_C_FSHIFT 10
+#define G2D_BLEND_C6_AR_C_FMASK 0x1
+#define G2D_BLEND_C6_AR_D_FADDR ADDR_G2D_BLEND_C6
+#define G2D_BLEND_C6_AR_D_FSHIFT 11
+#define G2D_BLEND_C6_AR_D_FMASK 0x1
+#define G2D_BLEND_C6_INV_A_FADDR ADDR_G2D_BLEND_C6
+#define G2D_BLEND_C6_INV_A_FSHIFT 12
+#define G2D_BLEND_C6_INV_A_FMASK 0x1
+#define G2D_BLEND_C6_INV_B_FADDR ADDR_G2D_BLEND_C6
+#define G2D_BLEND_C6_INV_B_FSHIFT 13
+#define G2D_BLEND_C6_INV_B_FMASK 0x1
+#define G2D_BLEND_C6_INV_C_FADDR ADDR_G2D_BLEND_C6
+#define G2D_BLEND_C6_INV_C_FSHIFT 14
+#define G2D_BLEND_C6_INV_C_FMASK 0x1
+#define G2D_BLEND_C6_INV_D_FADDR ADDR_G2D_BLEND_C6
+#define G2D_BLEND_C6_INV_D_FSHIFT 15
+#define G2D_BLEND_C6_INV_D_FMASK 0x1
+#define G2D_BLEND_C6_SRC_A_FADDR ADDR_G2D_BLEND_C6
+#define G2D_BLEND_C6_SRC_A_FSHIFT 16
+#define G2D_BLEND_C6_SRC_A_FMASK 0x7
+#define G2D_BLEND_C6_SRC_B_FADDR ADDR_G2D_BLEND_C6
+#define G2D_BLEND_C6_SRC_B_FSHIFT 19
+#define G2D_BLEND_C6_SRC_B_FMASK 0x7
+#define G2D_BLEND_C6_SRC_C_FADDR ADDR_G2D_BLEND_C6
+#define G2D_BLEND_C6_SRC_C_FSHIFT 22
+#define G2D_BLEND_C6_SRC_C_FMASK 0x7
+#define G2D_BLEND_C6_SRC_D_FADDR ADDR_G2D_BLEND_C6
+#define G2D_BLEND_C6_SRC_D_FSHIFT 25
+#define G2D_BLEND_C6_SRC_D_FMASK 0x7
+#define G2D_BLEND_C6_CONST_A_FADDR ADDR_G2D_BLEND_C6
+#define G2D_BLEND_C6_CONST_A_FSHIFT 28
+#define G2D_BLEND_C6_CONST_A_FMASK 0x1
+#define G2D_BLEND_C6_CONST_B_FADDR ADDR_G2D_BLEND_C6
+#define G2D_BLEND_C6_CONST_B_FSHIFT 29
+#define G2D_BLEND_C6_CONST_B_FMASK 0x1
+#define G2D_BLEND_C6_CONST_C_FADDR ADDR_G2D_BLEND_C6
+#define G2D_BLEND_C6_CONST_C_FSHIFT 30
+#define G2D_BLEND_C6_CONST_C_FMASK 0x1
+#define G2D_BLEND_C6_CONST_D_FADDR ADDR_G2D_BLEND_C6
+#define G2D_BLEND_C6_CONST_D_FSHIFT 31
+#define G2D_BLEND_C6_CONST_D_FMASK 0x1
+#define G2D_BLEND_C7_OPERATION_FADDR ADDR_G2D_BLEND_C7
+#define G2D_BLEND_C7_OPERATION_FSHIFT 0
+#define G2D_BLEND_C7_OPERATION_FMASK 0x3
+#define G2D_BLEND_C7_DST_A_FADDR ADDR_G2D_BLEND_C7
+#define G2D_BLEND_C7_DST_A_FSHIFT 2
+#define G2D_BLEND_C7_DST_A_FMASK 0x3
+#define G2D_BLEND_C7_DST_B_FADDR ADDR_G2D_BLEND_C7
+#define G2D_BLEND_C7_DST_B_FSHIFT 4
+#define G2D_BLEND_C7_DST_B_FMASK 0x3
+#define G2D_BLEND_C7_DST_C_FADDR ADDR_G2D_BLEND_C7
+#define G2D_BLEND_C7_DST_C_FSHIFT 6
+#define G2D_BLEND_C7_DST_C_FMASK 0x3
+#define G2D_BLEND_C7_AR_A_FADDR ADDR_G2D_BLEND_C7
+#define G2D_BLEND_C7_AR_A_FSHIFT 8
+#define G2D_BLEND_C7_AR_A_FMASK 0x1
+#define G2D_BLEND_C7_AR_B_FADDR ADDR_G2D_BLEND_C7
+#define G2D_BLEND_C7_AR_B_FSHIFT 9
+#define G2D_BLEND_C7_AR_B_FMASK 0x1
+#define G2D_BLEND_C7_AR_C_FADDR ADDR_G2D_BLEND_C7
+#define G2D_BLEND_C7_AR_C_FSHIFT 10
+#define G2D_BLEND_C7_AR_C_FMASK 0x1
+#define G2D_BLEND_C7_AR_D_FADDR ADDR_G2D_BLEND_C7
+#define G2D_BLEND_C7_AR_D_FSHIFT 11
+#define G2D_BLEND_C7_AR_D_FMASK 0x1
+#define G2D_BLEND_C7_INV_A_FADDR ADDR_G2D_BLEND_C7
+#define G2D_BLEND_C7_INV_A_FSHIFT 12
+#define G2D_BLEND_C7_INV_A_FMASK 0x1
+#define G2D_BLEND_C7_INV_B_FADDR ADDR_G2D_BLEND_C7
+#define G2D_BLEND_C7_INV_B_FSHIFT 13
+#define G2D_BLEND_C7_INV_B_FMASK 0x1
+#define G2D_BLEND_C7_INV_C_FADDR ADDR_G2D_BLEND_C7
+#define G2D_BLEND_C7_INV_C_FSHIFT 14
+#define G2D_BLEND_C7_INV_C_FMASK 0x1
+#define G2D_BLEND_C7_INV_D_FADDR ADDR_G2D_BLEND_C7
+#define G2D_BLEND_C7_INV_D_FSHIFT 15
+#define G2D_BLEND_C7_INV_D_FMASK 0x1
+#define G2D_BLEND_C7_SRC_A_FADDR ADDR_G2D_BLEND_C7
+#define G2D_BLEND_C7_SRC_A_FSHIFT 16
+#define G2D_BLEND_C7_SRC_A_FMASK 0x7
+#define G2D_BLEND_C7_SRC_B_FADDR ADDR_G2D_BLEND_C7
+#define G2D_BLEND_C7_SRC_B_FSHIFT 19
+#define G2D_BLEND_C7_SRC_B_FMASK 0x7
+#define G2D_BLEND_C7_SRC_C_FADDR ADDR_G2D_BLEND_C7
+#define G2D_BLEND_C7_SRC_C_FSHIFT 22
+#define G2D_BLEND_C7_SRC_C_FMASK 0x7
+#define G2D_BLEND_C7_SRC_D_FADDR ADDR_G2D_BLEND_C7
+#define G2D_BLEND_C7_SRC_D_FSHIFT 25
+#define G2D_BLEND_C7_SRC_D_FMASK 0x7
+#define G2D_BLEND_C7_CONST_A_FADDR ADDR_G2D_BLEND_C7
+#define G2D_BLEND_C7_CONST_A_FSHIFT 28
+#define G2D_BLEND_C7_CONST_A_FMASK 0x1
+#define G2D_BLEND_C7_CONST_B_FADDR ADDR_G2D_BLEND_C7
+#define G2D_BLEND_C7_CONST_B_FSHIFT 29
+#define G2D_BLEND_C7_CONST_B_FMASK 0x1
+#define G2D_BLEND_C7_CONST_C_FADDR ADDR_G2D_BLEND_C7
+#define G2D_BLEND_C7_CONST_C_FSHIFT 30
+#define G2D_BLEND_C7_CONST_C_FMASK 0x1
+#define G2D_BLEND_C7_CONST_D_FADDR ADDR_G2D_BLEND_C7
+#define G2D_BLEND_C7_CONST_D_FSHIFT 31
+#define G2D_BLEND_C7_CONST_D_FMASK 0x1
+#define G2D_CFG0_STRIDE_FADDR ADDR_G2D_CFG0
+#define G2D_CFG0_STRIDE_FSHIFT 0
+#define G2D_CFG0_STRIDE_FMASK 0xfff
+#define G2D_CFG0_FORMAT_FADDR ADDR_G2D_CFG0
+#define G2D_CFG0_FORMAT_FSHIFT 12
+#define G2D_CFG0_FORMAT_FMASK 0xf
+#define G2D_CFG0_TILED_FADDR ADDR_G2D_CFG0
+#define G2D_CFG0_TILED_FSHIFT 16
+#define G2D_CFG0_TILED_FMASK 0x1
+#define G2D_CFG0_SRGB_FADDR ADDR_G2D_CFG0
+#define G2D_CFG0_SRGB_FSHIFT 17
+#define G2D_CFG0_SRGB_FMASK 0x1
+#define G2D_CFG0_SWAPWORDS_FADDR ADDR_G2D_CFG0
+#define G2D_CFG0_SWAPWORDS_FSHIFT 18
+#define G2D_CFG0_SWAPWORDS_FMASK 0x1
+#define G2D_CFG0_SWAPBYTES_FADDR ADDR_G2D_CFG0
+#define G2D_CFG0_SWAPBYTES_FSHIFT 19
+#define G2D_CFG0_SWAPBYTES_FMASK 0x1
+#define G2D_CFG0_SWAPALL_FADDR ADDR_G2D_CFG0
+#define G2D_CFG0_SWAPALL_FSHIFT 20
+#define G2D_CFG0_SWAPALL_FMASK 0x1
+#define G2D_CFG0_SWAPRB_FADDR ADDR_G2D_CFG0
+#define G2D_CFG0_SWAPRB_FSHIFT 21
+#define G2D_CFG0_SWAPRB_FMASK 0x1
+#define G2D_CFG0_SWAPBITS_FADDR ADDR_G2D_CFG0
+#define G2D_CFG0_SWAPBITS_FSHIFT 22
+#define G2D_CFG0_SWAPBITS_FMASK 0x1
+#define G2D_CFG0_STRIDESIGN_FADDR ADDR_G2D_CFG0
+#define G2D_CFG0_STRIDESIGN_FSHIFT 23
+#define G2D_CFG0_STRIDESIGN_FMASK 0x1
+#define G2D_CFG1_STRIDE_FADDR ADDR_G2D_CFG1
+#define G2D_CFG1_STRIDE_FSHIFT 0
+#define G2D_CFG1_STRIDE_FMASK 0xfff
+#define G2D_CFG1_FORMAT_FADDR ADDR_G2D_CFG1
+#define G2D_CFG1_FORMAT_FSHIFT 12
+#define G2D_CFG1_FORMAT_FMASK 0xf
+#define G2D_CFG1_TILED_FADDR ADDR_G2D_CFG1
+#define G2D_CFG1_TILED_FSHIFT 16
+#define G2D_CFG1_TILED_FMASK 0x1
+#define G2D_CFG1_SRGB_FADDR ADDR_G2D_CFG1
+#define G2D_CFG1_SRGB_FSHIFT 17
+#define G2D_CFG1_SRGB_FMASK 0x1
+#define G2D_CFG1_SWAPWORDS_FADDR ADDR_G2D_CFG1
+#define G2D_CFG1_SWAPWORDS_FSHIFT 18
+#define G2D_CFG1_SWAPWORDS_FMASK 0x1
+#define G2D_CFG1_SWAPBYTES_FADDR ADDR_G2D_CFG1
+#define G2D_CFG1_SWAPBYTES_FSHIFT 19
+#define G2D_CFG1_SWAPBYTES_FMASK 0x1
+#define G2D_CFG1_SWAPALL_FADDR ADDR_G2D_CFG1
+#define G2D_CFG1_SWAPALL_FSHIFT 20
+#define G2D_CFG1_SWAPALL_FMASK 0x1
+#define G2D_CFG1_SWAPRB_FADDR ADDR_G2D_CFG1
+#define G2D_CFG1_SWAPRB_FSHIFT 21
+#define G2D_CFG1_SWAPRB_FMASK 0x1
+#define G2D_CFG1_SWAPBITS_FADDR ADDR_G2D_CFG1
+#define G2D_CFG1_SWAPBITS_FSHIFT 22
+#define G2D_CFG1_SWAPBITS_FMASK 0x1
+#define G2D_CFG1_STRIDESIGN_FADDR ADDR_G2D_CFG1
+#define G2D_CFG1_STRIDESIGN_FSHIFT 23
+#define G2D_CFG1_STRIDESIGN_FMASK 0x1
+#define G2D_CFG2_STRIDE_FADDR ADDR_G2D_CFG2
+#define G2D_CFG2_STRIDE_FSHIFT 0
+#define G2D_CFG2_STRIDE_FMASK 0xfff
+#define G2D_CFG2_FORMAT_FADDR ADDR_G2D_CFG2
+#define G2D_CFG2_FORMAT_FSHIFT 12
+#define G2D_CFG2_FORMAT_FMASK 0xf
+#define G2D_CFG2_TILED_FADDR ADDR_G2D_CFG2
+#define G2D_CFG2_TILED_FSHIFT 16
+#define G2D_CFG2_TILED_FMASK 0x1
+#define G2D_CFG2_SRGB_FADDR ADDR_G2D_CFG2
+#define G2D_CFG2_SRGB_FSHIFT 17
+#define G2D_CFG2_SRGB_FMASK 0x1
+#define G2D_CFG2_SWAPWORDS_FADDR ADDR_G2D_CFG2
+#define G2D_CFG2_SWAPWORDS_FSHIFT 18
+#define G2D_CFG2_SWAPWORDS_FMASK 0x1
+#define G2D_CFG2_SWAPBYTES_FADDR ADDR_G2D_CFG2
+#define G2D_CFG2_SWAPBYTES_FSHIFT 19
+#define G2D_CFG2_SWAPBYTES_FMASK 0x1
+#define G2D_CFG2_SWAPALL_FADDR ADDR_G2D_CFG2
+#define G2D_CFG2_SWAPALL_FSHIFT 20
+#define G2D_CFG2_SWAPALL_FMASK 0x1
+#define G2D_CFG2_SWAPRB_FADDR ADDR_G2D_CFG2
+#define G2D_CFG2_SWAPRB_FSHIFT 21
+#define G2D_CFG2_SWAPRB_FMASK 0x1
+#define G2D_CFG2_SWAPBITS_FADDR ADDR_G2D_CFG2
+#define G2D_CFG2_SWAPBITS_FSHIFT 22
+#define G2D_CFG2_SWAPBITS_FMASK 0x1
+#define G2D_CFG2_STRIDESIGN_FADDR ADDR_G2D_CFG2
+#define G2D_CFG2_STRIDESIGN_FSHIFT 23
+#define G2D_CFG2_STRIDESIGN_FMASK 0x1
+#define G2D_CFG3_STRIDE_FADDR ADDR_G2D_CFG3
+#define G2D_CFG3_STRIDE_FSHIFT 0
+#define G2D_CFG3_STRIDE_FMASK 0xfff
+#define G2D_CFG3_FORMAT_FADDR ADDR_G2D_CFG3
+#define G2D_CFG3_FORMAT_FSHIFT 12
+#define G2D_CFG3_FORMAT_FMASK 0xf
+#define G2D_CFG3_TILED_FADDR ADDR_G2D_CFG3
+#define G2D_CFG3_TILED_FSHIFT 16
+#define G2D_CFG3_TILED_FMASK 0x1
+#define G2D_CFG3_SRGB_FADDR ADDR_G2D_CFG3
+#define G2D_CFG3_SRGB_FSHIFT 17
+#define G2D_CFG3_SRGB_FMASK 0x1
+#define G2D_CFG3_SWAPWORDS_FADDR ADDR_G2D_CFG3
+#define G2D_CFG3_SWAPWORDS_FSHIFT 18
+#define G2D_CFG3_SWAPWORDS_FMASK 0x1
+#define G2D_CFG3_SWAPBYTES_FADDR ADDR_G2D_CFG3
+#define G2D_CFG3_SWAPBYTES_FSHIFT 19
+#define G2D_CFG3_SWAPBYTES_FMASK 0x1
+#define G2D_CFG3_SWAPALL_FADDR ADDR_G2D_CFG3
+#define G2D_CFG3_SWAPALL_FSHIFT 20
+#define G2D_CFG3_SWAPALL_FMASK 0x1
+#define G2D_CFG3_SWAPRB_FADDR ADDR_G2D_CFG3
+#define G2D_CFG3_SWAPRB_FSHIFT 21
+#define G2D_CFG3_SWAPRB_FMASK 0x1
+#define G2D_CFG3_SWAPBITS_FADDR ADDR_G2D_CFG3
+#define G2D_CFG3_SWAPBITS_FSHIFT 22
+#define G2D_CFG3_SWAPBITS_FMASK 0x1
+#define G2D_CFG3_STRIDESIGN_FADDR ADDR_G2D_CFG3
+#define G2D_CFG3_STRIDESIGN_FSHIFT 23
+#define G2D_CFG3_STRIDESIGN_FMASK 0x1
+#define G2D_COLOR_ARGB_FADDR ADDR_G2D_COLOR
+#define G2D_COLOR_ARGB_FSHIFT 0
+#define G2D_COLOR_ARGB_FMASK 0xffffffff
+#define G2D_CONFIG_DST_FADDR ADDR_G2D_CONFIG
+#define G2D_CONFIG_DST_FSHIFT 0
+#define G2D_CONFIG_DST_FMASK 0x1
+#define G2D_CONFIG_SRC1_FADDR ADDR_G2D_CONFIG
+#define G2D_CONFIG_SRC1_FSHIFT 1
+#define G2D_CONFIG_SRC1_FMASK 0x1
+#define G2D_CONFIG_SRC2_FADDR ADDR_G2D_CONFIG
+#define G2D_CONFIG_SRC2_FSHIFT 2
+#define G2D_CONFIG_SRC2_FMASK 0x1
+#define G2D_CONFIG_SRC3_FADDR ADDR_G2D_CONFIG
+#define G2D_CONFIG_SRC3_FSHIFT 3
+#define G2D_CONFIG_SRC3_FMASK 0x1
+#define G2D_CONFIG_SRCCK_FADDR ADDR_G2D_CONFIG
+#define G2D_CONFIG_SRCCK_FSHIFT 4
+#define G2D_CONFIG_SRCCK_FMASK 0x1
+#define G2D_CONFIG_DSTCK_FADDR ADDR_G2D_CONFIG
+#define G2D_CONFIG_DSTCK_FSHIFT 5
+#define G2D_CONFIG_DSTCK_FMASK 0x1
+#define G2D_CONFIG_ROTATE_FADDR ADDR_G2D_CONFIG
+#define G2D_CONFIG_ROTATE_FSHIFT 6
+#define G2D_CONFIG_ROTATE_FMASK 0x3
+#define G2D_CONFIG_OBS_GAMMA_FADDR ADDR_G2D_CONFIG
+#define G2D_CONFIG_OBS_GAMMA_FSHIFT 8
+#define G2D_CONFIG_OBS_GAMMA_FMASK 0x1
+#define G2D_CONFIG_IGNORECKALPHA_FADDR ADDR_G2D_CONFIG
+#define G2D_CONFIG_IGNORECKALPHA_FSHIFT 9
+#define G2D_CONFIG_IGNORECKALPHA_FMASK 0x1
+#define G2D_CONFIG_DITHER_FADDR ADDR_G2D_CONFIG
+#define G2D_CONFIG_DITHER_FSHIFT 10
+#define G2D_CONFIG_DITHER_FMASK 0x1
+#define G2D_CONFIG_WRITESRGB_FADDR ADDR_G2D_CONFIG
+#define G2D_CONFIG_WRITESRGB_FSHIFT 11
+#define G2D_CONFIG_WRITESRGB_FMASK 0x1
+#define G2D_CONFIG_ARGBMASK_FADDR ADDR_G2D_CONFIG
+#define G2D_CONFIG_ARGBMASK_FSHIFT 12
+#define G2D_CONFIG_ARGBMASK_FMASK 0xf
+#define G2D_CONFIG_ALPHATEX_FADDR ADDR_G2D_CONFIG
+#define G2D_CONFIG_ALPHATEX_FSHIFT 16
+#define G2D_CONFIG_ALPHATEX_FMASK 0x1
+#define G2D_CONFIG_PALMLINES_FADDR ADDR_G2D_CONFIG
+#define G2D_CONFIG_PALMLINES_FSHIFT 17
+#define G2D_CONFIG_PALMLINES_FMASK 0x1
+#define G2D_CONFIG_NOLASTPIXEL_FADDR ADDR_G2D_CONFIG
+#define G2D_CONFIG_NOLASTPIXEL_FSHIFT 18
+#define G2D_CONFIG_NOLASTPIXEL_FMASK 0x1
+#define G2D_CONFIG_NOPROTECT_FADDR ADDR_G2D_CONFIG
+#define G2D_CONFIG_NOPROTECT_FSHIFT 19
+#define G2D_CONFIG_NOPROTECT_FMASK 0x1
+#define G2D_CONST0_ARGB_FADDR ADDR_G2D_CONST0
+#define G2D_CONST0_ARGB_FSHIFT 0
+#define G2D_CONST0_ARGB_FMASK 0xffffffff
+#define G2D_CONST1_ARGB_FADDR ADDR_G2D_CONST1
+#define G2D_CONST1_ARGB_FSHIFT 0
+#define G2D_CONST1_ARGB_FMASK 0xffffffff
+#define G2D_CONST2_ARGB_FADDR ADDR_G2D_CONST2
+#define G2D_CONST2_ARGB_FSHIFT 0
+#define G2D_CONST2_ARGB_FMASK 0xffffffff
+#define G2D_CONST3_ARGB_FADDR ADDR_G2D_CONST3
+#define G2D_CONST3_ARGB_FSHIFT 0
+#define G2D_CONST3_ARGB_FMASK 0xffffffff
+#define G2D_CONST4_ARGB_FADDR ADDR_G2D_CONST4
+#define G2D_CONST4_ARGB_FSHIFT 0
+#define G2D_CONST4_ARGB_FMASK 0xffffffff
+#define G2D_CONST5_ARGB_FADDR ADDR_G2D_CONST5
+#define G2D_CONST5_ARGB_FSHIFT 0
+#define G2D_CONST5_ARGB_FMASK 0xffffffff
+#define G2D_CONST6_ARGB_FADDR ADDR_G2D_CONST6
+#define G2D_CONST6_ARGB_FSHIFT 0
+#define G2D_CONST6_ARGB_FMASK 0xffffffff
+#define G2D_CONST7_ARGB_FADDR ADDR_G2D_CONST7
+#define G2D_CONST7_ARGB_FSHIFT 0
+#define G2D_CONST7_ARGB_FMASK 0xffffffff
+#define G2D_FOREGROUND_COLOR_FADDR ADDR_G2D_FOREGROUND
+#define G2D_FOREGROUND_COLOR_FSHIFT 0
+#define G2D_FOREGROUND_COLOR_FMASK 0xffffffff
+#define G2D_GRADIENT_INSTRUCTIONS_FADDR ADDR_G2D_GRADIENT
+#define G2D_GRADIENT_INSTRUCTIONS_FSHIFT 0
+#define G2D_GRADIENT_INSTRUCTIONS_FMASK 0x7
+#define G2D_GRADIENT_INSTRUCTIONS2_FADDR ADDR_G2D_GRADIENT
+#define G2D_GRADIENT_INSTRUCTIONS2_FSHIFT 3
+#define G2D_GRADIENT_INSTRUCTIONS2_FMASK 0x7
+#define G2D_GRADIENT_ENABLE_FADDR ADDR_G2D_GRADIENT
+#define G2D_GRADIENT_ENABLE_FSHIFT 6
+#define G2D_GRADIENT_ENABLE_FMASK 0x1
+#define G2D_GRADIENT_ENABLE2_FADDR ADDR_G2D_GRADIENT
+#define G2D_GRADIENT_ENABLE2_FSHIFT 7
+#define G2D_GRADIENT_ENABLE2_FMASK 0x1
+#define G2D_GRADIENT_SEL_FADDR ADDR_G2D_GRADIENT
+#define G2D_GRADIENT_SEL_FSHIFT 8
+#define G2D_GRADIENT_SEL_FMASK 0x1
+#define G2D_IDLE_IRQ_FADDR ADDR_G2D_IDLE
+#define G2D_IDLE_IRQ_FSHIFT 0
+#define G2D_IDLE_IRQ_FMASK 0x1
+#define G2D_IDLE_BCFLUSH_FADDR ADDR_G2D_IDLE
+#define G2D_IDLE_BCFLUSH_FSHIFT 1
+#define G2D_IDLE_BCFLUSH_FMASK 0x1
+#define G2D_IDLE_V3_FADDR ADDR_G2D_IDLE
+#define G2D_IDLE_V3_FSHIFT 2
+#define G2D_IDLE_V3_FMASK 0x1
+#define G2D_INPUT_COLOR_FADDR ADDR_G2D_INPUT
+#define G2D_INPUT_COLOR_FSHIFT 0
+#define G2D_INPUT_COLOR_FMASK 0x1
+#define G2D_INPUT_SCOORD1_FADDR ADDR_G2D_INPUT
+#define G2D_INPUT_SCOORD1_FSHIFT 1
+#define G2D_INPUT_SCOORD1_FMASK 0x1
+#define G2D_INPUT_SCOORD2_FADDR ADDR_G2D_INPUT
+#define G2D_INPUT_SCOORD2_FSHIFT 2
+#define G2D_INPUT_SCOORD2_FMASK 0x1
+#define G2D_INPUT_COPYCOORD_FADDR ADDR_G2D_INPUT
+#define G2D_INPUT_COPYCOORD_FSHIFT 3
+#define G2D_INPUT_COPYCOORD_FMASK 0x1
+#define G2D_INPUT_VGMODE_FADDR ADDR_G2D_INPUT
+#define G2D_INPUT_VGMODE_FSHIFT 4
+#define G2D_INPUT_VGMODE_FMASK 0x1
+#define G2D_INPUT_LINEMODE_FADDR ADDR_G2D_INPUT
+#define G2D_INPUT_LINEMODE_FSHIFT 5
+#define G2D_INPUT_LINEMODE_FMASK 0x1
+#define G2D_MASK_YMASK_FADDR ADDR_G2D_MASK
+#define G2D_MASK_YMASK_FSHIFT 0
+#define G2D_MASK_YMASK_FMASK 0xfff
+#define G2D_MASK_XMASK_FADDR ADDR_G2D_MASK
+#define G2D_MASK_XMASK_FSHIFT 12
+#define G2D_MASK_XMASK_FMASK 0xfff
+#define G2D_ROP_ROP_FADDR ADDR_G2D_ROP
+#define G2D_ROP_ROP_FSHIFT 0
+#define G2D_ROP_ROP_FMASK 0xffff
+#define G2D_SCISSORX_LEFT_FADDR ADDR_G2D_SCISSORX
+#define G2D_SCISSORX_LEFT_FSHIFT 0
+#define G2D_SCISSORX_LEFT_FMASK 0x7ff
+#define G2D_SCISSORX_RIGHT_FADDR ADDR_G2D_SCISSORX
+#define G2D_SCISSORX_RIGHT_FSHIFT 11
+#define G2D_SCISSORX_RIGHT_FMASK 0x7ff
+#define G2D_SCISSORY_TOP_FADDR ADDR_G2D_SCISSORY
+#define G2D_SCISSORY_TOP_FSHIFT 0
+#define G2D_SCISSORY_TOP_FMASK 0x7ff
+#define G2D_SCISSORY_BOTTOM_FADDR ADDR_G2D_SCISSORY
+#define G2D_SCISSORY_BOTTOM_FSHIFT 11
+#define G2D_SCISSORY_BOTTOM_FMASK 0x7ff
+#define G2D_SXY_Y_FADDR ADDR_G2D_SXY
+#define G2D_SXY_Y_FSHIFT 0
+#define G2D_SXY_Y_FMASK 0x7ff
+#define G2D_SXY_PAD_FADDR ADDR_G2D_SXY
+#define G2D_SXY_PAD_FSHIFT 11
+#define G2D_SXY_PAD_FMASK 0x1f
+#define G2D_SXY_X_FADDR ADDR_G2D_SXY
+#define G2D_SXY_X_FSHIFT 16
+#define G2D_SXY_X_FMASK 0x7ff
+#define G2D_SXY2_Y_FADDR ADDR_G2D_SXY2
+#define G2D_SXY2_Y_FSHIFT 0
+#define G2D_SXY2_Y_FMASK 0x7ff
+#define G2D_SXY2_PAD_FADDR ADDR_G2D_SXY2
+#define G2D_SXY2_PAD_FSHIFT 11
+#define G2D_SXY2_PAD_FMASK 0x1f
+#define G2D_SXY2_X_FADDR ADDR_G2D_SXY2
+#define G2D_SXY2_X_FSHIFT 16
+#define G2D_SXY2_X_FMASK 0x7ff
+#define G2D_VGSPAN_WIDTH_FADDR ADDR_G2D_VGSPAN
+#define G2D_VGSPAN_WIDTH_FSHIFT 0
+#define G2D_VGSPAN_WIDTH_FMASK 0xfff
+#define G2D_VGSPAN_PAD_FADDR ADDR_G2D_VGSPAN
+#define G2D_VGSPAN_PAD_FSHIFT 12
+#define G2D_VGSPAN_PAD_FMASK 0xf
+#define G2D_VGSPAN_COVERAGE_FADDR ADDR_G2D_VGSPAN
+#define G2D_VGSPAN_COVERAGE_FSHIFT 16
+#define G2D_VGSPAN_COVERAGE_FMASK 0xf
+#define G2D_WIDTHHEIGHT_HEIGHT_FADDR ADDR_G2D_WIDTHHEIGHT
+#define G2D_WIDTHHEIGHT_HEIGHT_FSHIFT 0
+#define G2D_WIDTHHEIGHT_HEIGHT_FMASK 0xfff
+#define G2D_WIDTHHEIGHT_PAD_FADDR ADDR_G2D_WIDTHHEIGHT
+#define G2D_WIDTHHEIGHT_PAD_FSHIFT 12
+#define G2D_WIDTHHEIGHT_PAD_FMASK 0xf
+#define G2D_WIDTHHEIGHT_WIDTH_FADDR ADDR_G2D_WIDTHHEIGHT
+#define G2D_WIDTHHEIGHT_WIDTH_FSHIFT 16
+#define G2D_WIDTHHEIGHT_WIDTH_FMASK 0xfff
+#define G2D_XY_Y_FADDR ADDR_G2D_XY
+#define G2D_XY_Y_FSHIFT 0
+#define G2D_XY_Y_FMASK 0xfff
+#define G2D_XY_PAD_FADDR ADDR_G2D_XY
+#define G2D_XY_PAD_FSHIFT 12
+#define G2D_XY_PAD_FMASK 0xf
+#define G2D_XY_X_FADDR ADDR_G2D_XY
+#define G2D_XY_X_FSHIFT 16
+#define G2D_XY_X_FMASK 0xfff
+#define GRADW_BORDERCOLOR_COLOR_FADDR ADDR_GRADW_BORDERCOLOR
+#define GRADW_BORDERCOLOR_COLOR_FSHIFT 0
+#define GRADW_BORDERCOLOR_COLOR_FMASK 0xffffffff
+#define GRADW_CONST0_VALUE_FADDR ADDR_GRADW_CONST0
+#define GRADW_CONST0_VALUE_FSHIFT 0
+#define GRADW_CONST0_VALUE_FMASK 0xffff
+#define GRADW_CONST1_VALUE_FADDR ADDR_GRADW_CONST1
+#define GRADW_CONST1_VALUE_FSHIFT 0
+#define GRADW_CONST1_VALUE_FMASK 0xffff
+#define GRADW_CONST2_VALUE_FADDR ADDR_GRADW_CONST2
+#define GRADW_CONST2_VALUE_FSHIFT 0
+#define GRADW_CONST2_VALUE_FMASK 0xffff
+#define GRADW_CONST3_VALUE_FADDR ADDR_GRADW_CONST3
+#define GRADW_CONST3_VALUE_FSHIFT 0
+#define GRADW_CONST3_VALUE_FMASK 0xffff
+#define GRADW_CONST4_VALUE_FADDR ADDR_GRADW_CONST4
+#define GRADW_CONST4_VALUE_FSHIFT 0
+#define GRADW_CONST4_VALUE_FMASK 0xffff
+#define GRADW_CONST5_VALUE_FADDR ADDR_GRADW_CONST5
+#define GRADW_CONST5_VALUE_FSHIFT 0
+#define GRADW_CONST5_VALUE_FMASK 0xffff
+#define GRADW_CONST6_VALUE_FADDR ADDR_GRADW_CONST6
+#define GRADW_CONST6_VALUE_FSHIFT 0
+#define GRADW_CONST6_VALUE_FMASK 0xffff
+#define GRADW_CONST7_VALUE_FADDR ADDR_GRADW_CONST7
+#define GRADW_CONST7_VALUE_FSHIFT 0
+#define GRADW_CONST7_VALUE_FMASK 0xffff
+#define GRADW_CONST8_VALUE_FADDR ADDR_GRADW_CONST8
+#define GRADW_CONST8_VALUE_FSHIFT 0
+#define GRADW_CONST8_VALUE_FMASK 0xffff
+#define GRADW_CONST9_VALUE_FADDR ADDR_GRADW_CONST9
+#define GRADW_CONST9_VALUE_FSHIFT 0
+#define GRADW_CONST9_VALUE_FMASK 0xffff
+#define GRADW_CONSTA_VALUE_FADDR ADDR_GRADW_CONSTA
+#define GRADW_CONSTA_VALUE_FSHIFT 0
+#define GRADW_CONSTA_VALUE_FMASK 0xffff
+#define GRADW_CONSTB_VALUE_FADDR ADDR_GRADW_CONSTB
+#define GRADW_CONSTB_VALUE_FSHIFT 0
+#define GRADW_CONSTB_VALUE_FMASK 0xffff
+#define GRADW_INST0_SRC_E_FADDR ADDR_GRADW_INST0
+#define GRADW_INST0_SRC_E_FSHIFT 0
+#define GRADW_INST0_SRC_E_FMASK 0x1f
+#define GRADW_INST0_SRC_D_FADDR ADDR_GRADW_INST0
+#define GRADW_INST0_SRC_D_FSHIFT 5
+#define GRADW_INST0_SRC_D_FMASK 0x1f
+#define GRADW_INST0_SRC_C_FADDR ADDR_GRADW_INST0
+#define GRADW_INST0_SRC_C_FSHIFT 10
+#define GRADW_INST0_SRC_C_FMASK 0x1f
+#define GRADW_INST0_SRC_B_FADDR ADDR_GRADW_INST0
+#define GRADW_INST0_SRC_B_FSHIFT 15
+#define GRADW_INST0_SRC_B_FMASK 0x1f
+#define GRADW_INST0_SRC_A_FADDR ADDR_GRADW_INST0
+#define GRADW_INST0_SRC_A_FSHIFT 20
+#define GRADW_INST0_SRC_A_FMASK 0x1f
+#define GRADW_INST0_DST_FADDR ADDR_GRADW_INST0
+#define GRADW_INST0_DST_FSHIFT 25
+#define GRADW_INST0_DST_FMASK 0xf
+#define GRADW_INST0_OPCODE_FADDR ADDR_GRADW_INST0
+#define GRADW_INST0_OPCODE_FSHIFT 29
+#define GRADW_INST0_OPCODE_FMASK 0x3
+#define GRADW_INST1_SRC_E_FADDR ADDR_GRADW_INST1
+#define GRADW_INST1_SRC_E_FSHIFT 0
+#define GRADW_INST1_SRC_E_FMASK 0x1f
+#define GRADW_INST1_SRC_D_FADDR ADDR_GRADW_INST1
+#define GRADW_INST1_SRC_D_FSHIFT 5
+#define GRADW_INST1_SRC_D_FMASK 0x1f
+#define GRADW_INST1_SRC_C_FADDR ADDR_GRADW_INST1
+#define GRADW_INST1_SRC_C_FSHIFT 10
+#define GRADW_INST1_SRC_C_FMASK 0x1f
+#define GRADW_INST1_SRC_B_FADDR ADDR_GRADW_INST1
+#define GRADW_INST1_SRC_B_FSHIFT 15
+#define GRADW_INST1_SRC_B_FMASK 0x1f
+#define GRADW_INST1_SRC_A_FADDR ADDR_GRADW_INST1
+#define GRADW_INST1_SRC_A_FSHIFT 20
+#define GRADW_INST1_SRC_A_FMASK 0x1f
+#define GRADW_INST1_DST_FADDR ADDR_GRADW_INST1
+#define GRADW_INST1_DST_FSHIFT 25
+#define GRADW_INST1_DST_FMASK 0xf
+#define GRADW_INST1_OPCODE_FADDR ADDR_GRADW_INST1
+#define GRADW_INST1_OPCODE_FSHIFT 29
+#define GRADW_INST1_OPCODE_FMASK 0x3
+#define GRADW_INST2_SRC_E_FADDR ADDR_GRADW_INST2
+#define GRADW_INST2_SRC_E_FSHIFT 0
+#define GRADW_INST2_SRC_E_FMASK 0x1f
+#define GRADW_INST2_SRC_D_FADDR ADDR_GRADW_INST2
+#define GRADW_INST2_SRC_D_FSHIFT 5
+#define GRADW_INST2_SRC_D_FMASK 0x1f
+#define GRADW_INST2_SRC_C_FADDR ADDR_GRADW_INST2
+#define GRADW_INST2_SRC_C_FSHIFT 10
+#define GRADW_INST2_SRC_C_FMASK 0x1f
+#define GRADW_INST2_SRC_B_FADDR ADDR_GRADW_INST2
+#define GRADW_INST2_SRC_B_FSHIFT 15
+#define GRADW_INST2_SRC_B_FMASK 0x1f
+#define GRADW_INST2_SRC_A_FADDR ADDR_GRADW_INST2
+#define GRADW_INST2_SRC_A_FSHIFT 20
+#define GRADW_INST2_SRC_A_FMASK 0x1f
+#define GRADW_INST2_DST_FADDR ADDR_GRADW_INST2
+#define GRADW_INST2_DST_FSHIFT 25
+#define GRADW_INST2_DST_FMASK 0xf
+#define GRADW_INST2_OPCODE_FADDR ADDR_GRADW_INST2
+#define GRADW_INST2_OPCODE_FSHIFT 29
+#define GRADW_INST2_OPCODE_FMASK 0x3
+#define GRADW_INST3_SRC_E_FADDR ADDR_GRADW_INST3
+#define GRADW_INST3_SRC_E_FSHIFT 0
+#define GRADW_INST3_SRC_E_FMASK 0x1f
+#define GRADW_INST3_SRC_D_FADDR ADDR_GRADW_INST3
+#define GRADW_INST3_SRC_D_FSHIFT 5
+#define GRADW_INST3_SRC_D_FMASK 0x1f
+#define GRADW_INST3_SRC_C_FADDR ADDR_GRADW_INST3
+#define GRADW_INST3_SRC_C_FSHIFT 10
+#define GRADW_INST3_SRC_C_FMASK 0x1f
+#define GRADW_INST3_SRC_B_FADDR ADDR_GRADW_INST3
+#define GRADW_INST3_SRC_B_FSHIFT 15
+#define GRADW_INST3_SRC_B_FMASK 0x1f
+#define GRADW_INST3_SRC_A_FADDR ADDR_GRADW_INST3
+#define GRADW_INST3_SRC_A_FSHIFT 20
+#define GRADW_INST3_SRC_A_FMASK 0x1f
+#define GRADW_INST3_DST_FADDR ADDR_GRADW_INST3
+#define GRADW_INST3_DST_FSHIFT 25
+#define GRADW_INST3_DST_FMASK 0xf
+#define GRADW_INST3_OPCODE_FADDR ADDR_GRADW_INST3
+#define GRADW_INST3_OPCODE_FSHIFT 29
+#define GRADW_INST3_OPCODE_FMASK 0x3
+#define GRADW_INST4_SRC_E_FADDR ADDR_GRADW_INST4
+#define GRADW_INST4_SRC_E_FSHIFT 0
+#define GRADW_INST4_SRC_E_FMASK 0x1f
+#define GRADW_INST4_SRC_D_FADDR ADDR_GRADW_INST4
+#define GRADW_INST4_SRC_D_FSHIFT 5
+#define GRADW_INST4_SRC_D_FMASK 0x1f
+#define GRADW_INST4_SRC_C_FADDR ADDR_GRADW_INST4
+#define GRADW_INST4_SRC_C_FSHIFT 10
+#define GRADW_INST4_SRC_C_FMASK 0x1f
+#define GRADW_INST4_SRC_B_FADDR ADDR_GRADW_INST4
+#define GRADW_INST4_SRC_B_FSHIFT 15
+#define GRADW_INST4_SRC_B_FMASK 0x1f
+#define GRADW_INST4_SRC_A_FADDR ADDR_GRADW_INST4
+#define GRADW_INST4_SRC_A_FSHIFT 20
+#define GRADW_INST4_SRC_A_FMASK 0x1f
+#define GRADW_INST4_DST_FADDR ADDR_GRADW_INST4
+#define GRADW_INST4_DST_FSHIFT 25
+#define GRADW_INST4_DST_FMASK 0xf
+#define GRADW_INST4_OPCODE_FADDR ADDR_GRADW_INST4
+#define GRADW_INST4_OPCODE_FSHIFT 29
+#define GRADW_INST4_OPCODE_FMASK 0x3
+#define GRADW_INST5_SRC_E_FADDR ADDR_GRADW_INST5
+#define GRADW_INST5_SRC_E_FSHIFT 0
+#define GRADW_INST5_SRC_E_FMASK 0x1f
+#define GRADW_INST5_SRC_D_FADDR ADDR_GRADW_INST5
+#define GRADW_INST5_SRC_D_FSHIFT 5
+#define GRADW_INST5_SRC_D_FMASK 0x1f
+#define GRADW_INST5_SRC_C_FADDR ADDR_GRADW_INST5
+#define GRADW_INST5_SRC_C_FSHIFT 10
+#define GRADW_INST5_SRC_C_FMASK 0x1f
+#define GRADW_INST5_SRC_B_FADDR ADDR_GRADW_INST5
+#define GRADW_INST5_SRC_B_FSHIFT 15
+#define GRADW_INST5_SRC_B_FMASK 0x1f
+#define GRADW_INST5_SRC_A_FADDR ADDR_GRADW_INST5
+#define GRADW_INST5_SRC_A_FSHIFT 20
+#define GRADW_INST5_SRC_A_FMASK 0x1f
+#define GRADW_INST5_DST_FADDR ADDR_GRADW_INST5
+#define GRADW_INST5_DST_FSHIFT 25
+#define GRADW_INST5_DST_FMASK 0xf
+#define GRADW_INST5_OPCODE_FADDR ADDR_GRADW_INST5
+#define GRADW_INST5_OPCODE_FSHIFT 29
+#define GRADW_INST5_OPCODE_FMASK 0x3
+#define GRADW_INST6_SRC_E_FADDR ADDR_GRADW_INST6
+#define GRADW_INST6_SRC_E_FSHIFT 0
+#define GRADW_INST6_SRC_E_FMASK 0x1f
+#define GRADW_INST6_SRC_D_FADDR ADDR_GRADW_INST6
+#define GRADW_INST6_SRC_D_FSHIFT 5
+#define GRADW_INST6_SRC_D_FMASK 0x1f
+#define GRADW_INST6_SRC_C_FADDR ADDR_GRADW_INST6
+#define GRADW_INST6_SRC_C_FSHIFT 10
+#define GRADW_INST6_SRC_C_FMASK 0x1f
+#define GRADW_INST6_SRC_B_FADDR ADDR_GRADW_INST6
+#define GRADW_INST6_SRC_B_FSHIFT 15
+#define GRADW_INST6_SRC_B_FMASK 0x1f
+#define GRADW_INST6_SRC_A_FADDR ADDR_GRADW_INST6
+#define GRADW_INST6_SRC_A_FSHIFT 20
+#define GRADW_INST6_SRC_A_FMASK 0x1f
+#define GRADW_INST6_DST_FADDR ADDR_GRADW_INST6
+#define GRADW_INST6_DST_FSHIFT 25
+#define GRADW_INST6_DST_FMASK 0xf
+#define GRADW_INST6_OPCODE_FADDR ADDR_GRADW_INST6
+#define GRADW_INST6_OPCODE_FSHIFT 29
+#define GRADW_INST6_OPCODE_FMASK 0x3
+#define GRADW_INST7_SRC_E_FADDR ADDR_GRADW_INST7
+#define GRADW_INST7_SRC_E_FSHIFT 0
+#define GRADW_INST7_SRC_E_FMASK 0x1f
+#define GRADW_INST7_SRC_D_FADDR ADDR_GRADW_INST7
+#define GRADW_INST7_SRC_D_FSHIFT 5
+#define GRADW_INST7_SRC_D_FMASK 0x1f
+#define GRADW_INST7_SRC_C_FADDR ADDR_GRADW_INST7
+#define GRADW_INST7_SRC_C_FSHIFT 10
+#define GRADW_INST7_SRC_C_FMASK 0x1f
+#define GRADW_INST7_SRC_B_FADDR ADDR_GRADW_INST7
+#define GRADW_INST7_SRC_B_FSHIFT 15
+#define GRADW_INST7_SRC_B_FMASK 0x1f
+#define GRADW_INST7_SRC_A_FADDR ADDR_GRADW_INST7
+#define GRADW_INST7_SRC_A_FSHIFT 20
+#define GRADW_INST7_SRC_A_FMASK 0x1f
+#define GRADW_INST7_DST_FADDR ADDR_GRADW_INST7
+#define GRADW_INST7_DST_FSHIFT 25
+#define GRADW_INST7_DST_FMASK 0xf
+#define GRADW_INST7_OPCODE_FADDR ADDR_GRADW_INST7
+#define GRADW_INST7_OPCODE_FSHIFT 29
+#define GRADW_INST7_OPCODE_FMASK 0x3
+#define GRADW_TEXBASE_ADDR_FADDR ADDR_GRADW_TEXBASE
+#define GRADW_TEXBASE_ADDR_FSHIFT 0
+#define GRADW_TEXBASE_ADDR_FMASK 0xffffffff
+#define GRADW_TEXCFG_STRIDE_FADDR ADDR_GRADW_TEXCFG
+#define GRADW_TEXCFG_STRIDE_FSHIFT 0
+#define GRADW_TEXCFG_STRIDE_FMASK 0xfff
+#define GRADW_TEXCFG_FORMAT_FADDR ADDR_GRADW_TEXCFG
+#define GRADW_TEXCFG_FORMAT_FSHIFT 12
+#define GRADW_TEXCFG_FORMAT_FMASK 0xf
+#define GRADW_TEXCFG_TILED_FADDR ADDR_GRADW_TEXCFG
+#define GRADW_TEXCFG_TILED_FSHIFT 16
+#define GRADW_TEXCFG_TILED_FMASK 0x1
+#define GRADW_TEXCFG_WRAPU_FADDR ADDR_GRADW_TEXCFG
+#define GRADW_TEXCFG_WRAPU_FSHIFT 17
+#define GRADW_TEXCFG_WRAPU_FMASK 0x3
+#define GRADW_TEXCFG_WRAPV_FADDR ADDR_GRADW_TEXCFG
+#define GRADW_TEXCFG_WRAPV_FSHIFT 19
+#define GRADW_TEXCFG_WRAPV_FMASK 0x3
+#define GRADW_TEXCFG_BILIN_FADDR ADDR_GRADW_TEXCFG
+#define GRADW_TEXCFG_BILIN_FSHIFT 21
+#define GRADW_TEXCFG_BILIN_FMASK 0x1
+#define GRADW_TEXCFG_SRGB_FADDR ADDR_GRADW_TEXCFG
+#define GRADW_TEXCFG_SRGB_FSHIFT 22
+#define GRADW_TEXCFG_SRGB_FMASK 0x1
+#define GRADW_TEXCFG_PREMULTIPLY_FADDR ADDR_GRADW_TEXCFG
+#define GRADW_TEXCFG_PREMULTIPLY_FSHIFT 23
+#define GRADW_TEXCFG_PREMULTIPLY_FMASK 0x1
+#define GRADW_TEXCFG_SWAPWORDS_FADDR ADDR_GRADW_TEXCFG
+#define GRADW_TEXCFG_SWAPWORDS_FSHIFT 24
+#define GRADW_TEXCFG_SWAPWORDS_FMASK 0x1
+#define GRADW_TEXCFG_SWAPBYTES_FADDR ADDR_GRADW_TEXCFG
+#define GRADW_TEXCFG_SWAPBYTES_FSHIFT 25
+#define GRADW_TEXCFG_SWAPBYTES_FMASK 0x1
+#define GRADW_TEXCFG_SWAPALL_FADDR ADDR_GRADW_TEXCFG
+#define GRADW_TEXCFG_SWAPALL_FSHIFT 26
+#define GRADW_TEXCFG_SWAPALL_FMASK 0x1
+#define GRADW_TEXCFG_SWAPRB_FADDR ADDR_GRADW_TEXCFG
+#define GRADW_TEXCFG_SWAPRB_FSHIFT 27
+#define GRADW_TEXCFG_SWAPRB_FMASK 0x1
+#define GRADW_TEXCFG_TEX2D_FADDR ADDR_GRADW_TEXCFG
+#define GRADW_TEXCFG_TEX2D_FSHIFT 28
+#define GRADW_TEXCFG_TEX2D_FMASK 0x1
+#define GRADW_TEXCFG_SWAPBITS_FADDR ADDR_GRADW_TEXCFG
+#define GRADW_TEXCFG_SWAPBITS_FSHIFT 29
+#define GRADW_TEXCFG_SWAPBITS_FMASK 0x1
+#define GRADW_TEXSIZE_WIDTH_FADDR ADDR_GRADW_TEXSIZE
+#define GRADW_TEXSIZE_WIDTH_FSHIFT 0
+#define GRADW_TEXSIZE_WIDTH_FMASK 0x7ff
+#define GRADW_TEXSIZE_HEIGHT_FADDR ADDR_GRADW_TEXSIZE
+#define GRADW_TEXSIZE_HEIGHT_FSHIFT 11
+#define GRADW_TEXSIZE_HEIGHT_FMASK 0x7ff
+#define MH_ARBITER_CONFIG_SAME_PAGE_LIMIT_FADDR ADDR_MH_ARBITER_CONFIG
+#define MH_ARBITER_CONFIG_SAME_PAGE_LIMIT_FSHIFT 0
+#define MH_ARBITER_CONFIG_SAME_PAGE_LIMIT_FMASK 0x3f
+#define MH_ARBITER_CONFIG_SAME_PAGE_GRANULARITY_FADDR ADDR_MH_ARBITER_CONFIG
+#define MH_ARBITER_CONFIG_SAME_PAGE_GRANULARITY_FSHIFT 6
+#define MH_ARBITER_CONFIG_SAME_PAGE_GRANULARITY_FMASK 0x1
+#define MH_ARBITER_CONFIG_L1_ARB_ENABLE_FADDR ADDR_MH_ARBITER_CONFIG
+#define MH_ARBITER_CONFIG_L1_ARB_ENABLE_FSHIFT 7
+#define MH_ARBITER_CONFIG_L1_ARB_ENABLE_FMASK 0x1
+#define MH_ARBITER_CONFIG_L1_ARB_HOLD_ENABLE_FADDR ADDR_MH_ARBITER_CONFIG
+#define MH_ARBITER_CONFIG_L1_ARB_HOLD_ENABLE_FSHIFT 8
+#define MH_ARBITER_CONFIG_L1_ARB_HOLD_ENABLE_FMASK 0x1
+#define MH_ARBITER_CONFIG_L2_ARB_CONTROL_FADDR ADDR_MH_ARBITER_CONFIG
+#define MH_ARBITER_CONFIG_L2_ARB_CONTROL_FSHIFT 9
+#define MH_ARBITER_CONFIG_L2_ARB_CONTROL_FMASK 0x1
+#define MH_ARBITER_CONFIG_PAGE_SIZE_FADDR ADDR_MH_ARBITER_CONFIG
+#define MH_ARBITER_CONFIG_PAGE_SIZE_FSHIFT 10
+#define MH_ARBITER_CONFIG_PAGE_SIZE_FMASK 0x7
+#define MH_ARBITER_CONFIG_TC_REORDER_ENABLE_FADDR ADDR_MH_ARBITER_CONFIG
+#define MH_ARBITER_CONFIG_TC_REORDER_ENABLE_FSHIFT 13
+#define MH_ARBITER_CONFIG_TC_REORDER_ENABLE_FMASK 0x1
+#define MH_ARBITER_CONFIG_TC_ARB_HOLD_ENABLE_FADDR ADDR_MH_ARBITER_CONFIG
+#define MH_ARBITER_CONFIG_TC_ARB_HOLD_ENABLE_FSHIFT 14
+#define MH_ARBITER_CONFIG_TC_ARB_HOLD_ENABLE_FMASK 0x1
+#define MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_ENABLE_FADDR ADDR_MH_ARBITER_CONFIG
+#define MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_ENABLE_FSHIFT 15
+#define MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_ENABLE_FMASK 0x1
+#define MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_FADDR ADDR_MH_ARBITER_CONFIG
+#define MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_FSHIFT 16
+#define MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_FMASK 0x3f
+#define MH_ARBITER_CONFIG_CP_CLNT_ENABLE_FADDR ADDR_MH_ARBITER_CONFIG
+#define MH_ARBITER_CONFIG_CP_CLNT_ENABLE_FSHIFT 22
+#define MH_ARBITER_CONFIG_CP_CLNT_ENABLE_FMASK 0x1
+#define MH_ARBITER_CONFIG_VGT_CLNT_ENABLE_FADDR ADDR_MH_ARBITER_CONFIG
+#define MH_ARBITER_CONFIG_VGT_CLNT_ENABLE_FSHIFT 23
+#define MH_ARBITER_CONFIG_VGT_CLNT_ENABLE_FMASK 0x1
+#define MH_ARBITER_CONFIG_TC_CLNT_ENABLE_FADDR ADDR_MH_ARBITER_CONFIG
+#define MH_ARBITER_CONFIG_TC_CLNT_ENABLE_FSHIFT 24
+#define MH_ARBITER_CONFIG_TC_CLNT_ENABLE_FMASK 0x1
+#define MH_ARBITER_CONFIG_RB_CLNT_ENABLE_FADDR ADDR_MH_ARBITER_CONFIG
+#define MH_ARBITER_CONFIG_RB_CLNT_ENABLE_FSHIFT 25
+#define MH_ARBITER_CONFIG_RB_CLNT_ENABLE_FMASK 0x1
+#define MH_ARBITER_CONFIG_PA_CLNT_ENABLE_FADDR ADDR_MH_ARBITER_CONFIG
+#define MH_ARBITER_CONFIG_PA_CLNT_ENABLE_FSHIFT 26
+#define MH_ARBITER_CONFIG_PA_CLNT_ENABLE_FMASK 0x1
+#define MH_AXI_ERROR_AXI_READ_ID_FADDR ADDR_MH_AXI_ERROR
+#define MH_AXI_ERROR_AXI_READ_ID_FSHIFT 0
+#define MH_AXI_ERROR_AXI_READ_ID_FMASK 0x7
+#define MH_AXI_ERROR_AXI_READ_ERROR_FADDR ADDR_MH_AXI_ERROR
+#define MH_AXI_ERROR_AXI_READ_ERROR_FSHIFT 3
+#define MH_AXI_ERROR_AXI_READ_ERROR_FMASK 0x1
+#define MH_AXI_ERROR_AXI_WRITE_ID_FADDR ADDR_MH_AXI_ERROR
+#define MH_AXI_ERROR_AXI_WRITE_ID_FSHIFT 4
+#define MH_AXI_ERROR_AXI_WRITE_ID_FMASK 0x7
+#define MH_AXI_ERROR_AXI_WRITE_ERROR_FADDR ADDR_MH_AXI_ERROR
+#define MH_AXI_ERROR_AXI_WRITE_ERROR_FSHIFT 7
+#define MH_AXI_ERROR_AXI_WRITE_ERROR_FMASK 0x1
+#define MH_AXI_HALT_CONTROL_AXI_HALT_FADDR ADDR_MH_AXI_HALT_CONTROL
+#define MH_AXI_HALT_CONTROL_AXI_HALT_FSHIFT 0
+#define MH_AXI_HALT_CONTROL_AXI_HALT_FMASK 0x1
+#define MH_CLNT_AXI_ID_REUSE_CPW_ID_FADDR ADDR_MH_CLNT_AXI_ID_REUSE
+#define MH_CLNT_AXI_ID_REUSE_CPW_ID_FSHIFT 0
+#define MH_CLNT_AXI_ID_REUSE_CPW_ID_FMASK 0x7
+#define MH_CLNT_AXI_ID_REUSE_PAD_FADDR ADDR_MH_CLNT_AXI_ID_REUSE
+#define MH_CLNT_AXI_ID_REUSE_PAD_FSHIFT 3
+#define MH_CLNT_AXI_ID_REUSE_PAD_FMASK 0x1
+#define MH_CLNT_AXI_ID_REUSE_RBW_ID_FADDR ADDR_MH_CLNT_AXI_ID_REUSE
+#define MH_CLNT_AXI_ID_REUSE_RBW_ID_FSHIFT 4
+#define MH_CLNT_AXI_ID_REUSE_RBW_ID_FMASK 0x7
+#define MH_CLNT_AXI_ID_REUSE_PAD2_FADDR ADDR_MH_CLNT_AXI_ID_REUSE
+#define MH_CLNT_AXI_ID_REUSE_PAD2_FSHIFT 7
+#define MH_CLNT_AXI_ID_REUSE_PAD2_FMASK 0x1
+#define MH_CLNT_AXI_ID_REUSE_MMUR_ID_FADDR ADDR_MH_CLNT_AXI_ID_REUSE
+#define MH_CLNT_AXI_ID_REUSE_MMUR_ID_FSHIFT 8
+#define MH_CLNT_AXI_ID_REUSE_MMUR_ID_FMASK 0x7
+#define MH_CLNT_AXI_ID_REUSE_PAD3_FADDR ADDR_MH_CLNT_AXI_ID_REUSE
+#define MH_CLNT_AXI_ID_REUSE_PAD3_FSHIFT 11
+#define MH_CLNT_AXI_ID_REUSE_PAD3_FMASK 0x1
+#define MH_CLNT_AXI_ID_REUSE_PAW_ID_FADDR ADDR_MH_CLNT_AXI_ID_REUSE
+#define MH_CLNT_AXI_ID_REUSE_PAW_ID_FSHIFT 12
+#define MH_CLNT_AXI_ID_REUSE_PAW_ID_FMASK 0x7
+#define MH_DEBUG_CTRL_INDEX_FADDR ADDR_MH_DEBUG_CTRL
+#define MH_DEBUG_CTRL_INDEX_FSHIFT 0
+#define MH_DEBUG_CTRL_INDEX_FMASK 0x3f
+#define MH_DEBUG_DATA_DATA_FADDR ADDR_MH_DEBUG_DATA
+#define MH_DEBUG_DATA_DATA_FSHIFT 0
+#define MH_DEBUG_DATA_DATA_FMASK 0xffffffff
+#define MH_INTERRUPT_CLEAR_AXI_READ_ERROR_FADDR ADDR_MH_INTERRUPT_CLEAR
+#define MH_INTERRUPT_CLEAR_AXI_READ_ERROR_FSHIFT 0
+#define MH_INTERRUPT_CLEAR_AXI_READ_ERROR_FMASK 0x1
+#define MH_INTERRUPT_CLEAR_AXI_WRITE_ERROR_FADDR ADDR_MH_INTERRUPT_CLEAR
+#define MH_INTERRUPT_CLEAR_AXI_WRITE_ERROR_FSHIFT 1
+#define MH_INTERRUPT_CLEAR_AXI_WRITE_ERROR_FMASK 0x1
+#define MH_INTERRUPT_CLEAR_MMU_PAGE_FAULT_FADDR ADDR_MH_INTERRUPT_CLEAR
+#define MH_INTERRUPT_CLEAR_MMU_PAGE_FAULT_FSHIFT 2
+#define MH_INTERRUPT_CLEAR_MMU_PAGE_FAULT_FMASK 0x1
+#define MH_INTERRUPT_MASK_AXI_READ_ERROR_FADDR ADDR_MH_INTERRUPT_MASK
+#define MH_INTERRUPT_MASK_AXI_READ_ERROR_FSHIFT 0
+#define MH_INTERRUPT_MASK_AXI_READ_ERROR_FMASK 0x1
+#define MH_INTERRUPT_MASK_AXI_WRITE_ERROR_FADDR ADDR_MH_INTERRUPT_MASK
+#define MH_INTERRUPT_MASK_AXI_WRITE_ERROR_FSHIFT 1
+#define MH_INTERRUPT_MASK_AXI_WRITE_ERROR_FMASK 0x1
+#define MH_INTERRUPT_MASK_MMU_PAGE_FAULT_FADDR ADDR_MH_INTERRUPT_MASK
+#define MH_INTERRUPT_MASK_MMU_PAGE_FAULT_FSHIFT 2
+#define MH_INTERRUPT_MASK_MMU_PAGE_FAULT_FMASK 0x1
+#define MH_INTERRUPT_STATUS_AXI_READ_ERROR_FADDR ADDR_MH_INTERRUPT_STATUS
+#define MH_INTERRUPT_STATUS_AXI_READ_ERROR_FSHIFT 0
+#define MH_INTERRUPT_STATUS_AXI_READ_ERROR_FMASK 0x1
+#define MH_INTERRUPT_STATUS_AXI_WRITE_ERROR_FADDR ADDR_MH_INTERRUPT_STATUS
+#define MH_INTERRUPT_STATUS_AXI_WRITE_ERROR_FSHIFT 1
+#define MH_INTERRUPT_STATUS_AXI_WRITE_ERROR_FMASK 0x1
+#define MH_INTERRUPT_STATUS_MMU_PAGE_FAULT_FADDR ADDR_MH_INTERRUPT_STATUS
+#define MH_INTERRUPT_STATUS_MMU_PAGE_FAULT_FSHIFT 2
+#define MH_INTERRUPT_STATUS_MMU_PAGE_FAULT_FMASK 0x1
+#define MH_MMU_CONFIG_MMU_ENABLE_FADDR ADDR_MH_MMU_CONFIG
+#define MH_MMU_CONFIG_MMU_ENABLE_FSHIFT 0
+#define MH_MMU_CONFIG_MMU_ENABLE_FMASK 0x1
+#define MH_MMU_CONFIG_SPLIT_MODE_ENABLE_FADDR ADDR_MH_MMU_CONFIG
+#define MH_MMU_CONFIG_SPLIT_MODE_ENABLE_FSHIFT 1
+#define MH_MMU_CONFIG_SPLIT_MODE_ENABLE_FMASK 0x1
+#define MH_MMU_CONFIG_PAD_FADDR ADDR_MH_MMU_CONFIG
+#define MH_MMU_CONFIG_PAD_FSHIFT 2
+#define MH_MMU_CONFIG_PAD_FMASK 0x3
+#define MH_MMU_CONFIG_RB_W_CLNT_BEHAVIOR_FADDR ADDR_MH_MMU_CONFIG
+#define MH_MMU_CONFIG_RB_W_CLNT_BEHAVIOR_FSHIFT 4
+#define MH_MMU_CONFIG_RB_W_CLNT_BEHAVIOR_FMASK 0x3
+#define MH_MMU_CONFIG_CP_W_CLNT_BEHAVIOR_FADDR ADDR_MH_MMU_CONFIG
+#define MH_MMU_CONFIG_CP_W_CLNT_BEHAVIOR_FSHIFT 6
+#define MH_MMU_CONFIG_CP_W_CLNT_BEHAVIOR_FMASK 0x3
+#define MH_MMU_CONFIG_CP_R0_CLNT_BEHAVIOR_FADDR ADDR_MH_MMU_CONFIG
+#define MH_MMU_CONFIG_CP_R0_CLNT_BEHAVIOR_FSHIFT 8
+#define MH_MMU_CONFIG_CP_R0_CLNT_BEHAVIOR_FMASK 0x3
+#define MH_MMU_CONFIG_CP_R1_CLNT_BEHAVIOR_FADDR ADDR_MH_MMU_CONFIG
+#define MH_MMU_CONFIG_CP_R1_CLNT_BEHAVIOR_FSHIFT 10
+#define MH_MMU_CONFIG_CP_R1_CLNT_BEHAVIOR_FMASK 0x3
+#define MH_MMU_CONFIG_CP_R2_CLNT_BEHAVIOR_FADDR ADDR_MH_MMU_CONFIG
+#define MH_MMU_CONFIG_CP_R2_CLNT_BEHAVIOR_FSHIFT 12
+#define MH_MMU_CONFIG_CP_R2_CLNT_BEHAVIOR_FMASK 0x3
+#define MH_MMU_CONFIG_CP_R3_CLNT_BEHAVIOR_FADDR ADDR_MH_MMU_CONFIG
+#define MH_MMU_CONFIG_CP_R3_CLNT_BEHAVIOR_FSHIFT 14
+#define MH_MMU_CONFIG_CP_R3_CLNT_BEHAVIOR_FMASK 0x3
+#define MH_MMU_CONFIG_CP_R4_CLNT_BEHAVIOR_FADDR ADDR_MH_MMU_CONFIG
+#define MH_MMU_CONFIG_CP_R4_CLNT_BEHAVIOR_FSHIFT 16
+#define MH_MMU_CONFIG_CP_R4_CLNT_BEHAVIOR_FMASK 0x3
+#define MH_MMU_CONFIG_VGT_R0_CLNT_BEHAVIOR_FADDR ADDR_MH_MMU_CONFIG
+#define MH_MMU_CONFIG_VGT_R0_CLNT_BEHAVIOR_FSHIFT 18
+#define MH_MMU_CONFIG_VGT_R0_CLNT_BEHAVIOR_FMASK 0x3
+#define MH_MMU_CONFIG_VGT_R1_CLNT_BEHAVIOR_FADDR ADDR_MH_MMU_CONFIG
+#define MH_MMU_CONFIG_VGT_R1_CLNT_BEHAVIOR_FSHIFT 20
+#define MH_MMU_CONFIG_VGT_R1_CLNT_BEHAVIOR_FMASK 0x3
+#define MH_MMU_CONFIG_TC_R_CLNT_BEHAVIOR_FADDR ADDR_MH_MMU_CONFIG
+#define MH_MMU_CONFIG_TC_R_CLNT_BEHAVIOR_FSHIFT 22
+#define MH_MMU_CONFIG_TC_R_CLNT_BEHAVIOR_FMASK 0x3
+#define MH_MMU_CONFIG_PA_W_CLNT_BEHAVIOR_FADDR ADDR_MH_MMU_CONFIG
+#define MH_MMU_CONFIG_PA_W_CLNT_BEHAVIOR_FSHIFT 24
+#define MH_MMU_CONFIG_PA_W_CLNT_BEHAVIOR_FMASK 0x3
+#define MH_MMU_INVALIDATE_INVALIDATE_ALL_FADDR ADDR_MH_MMU_INVALIDATE
+#define MH_MMU_INVALIDATE_INVALIDATE_ALL_FSHIFT 0
+#define MH_MMU_INVALIDATE_INVALIDATE_ALL_FMASK 0x1
+#define MH_MMU_INVALIDATE_INVALIDATE_TC_FADDR ADDR_MH_MMU_INVALIDATE
+#define MH_MMU_INVALIDATE_INVALIDATE_TC_FSHIFT 1
+#define MH_MMU_INVALIDATE_INVALIDATE_TC_FMASK 0x1
+#define MH_MMU_MPU_BASE_ZERO_FADDR ADDR_MH_MMU_MPU_BASE
+#define MH_MMU_MPU_BASE_ZERO_FSHIFT 0
+#define MH_MMU_MPU_BASE_ZERO_FMASK 0xfff
+#define MH_MMU_MPU_BASE_MPU_BASE_FADDR ADDR_MH_MMU_MPU_BASE
+#define MH_MMU_MPU_BASE_MPU_BASE_FSHIFT 12
+#define MH_MMU_MPU_BASE_MPU_BASE_FMASK 0xfffff
+#define MH_MMU_MPU_END_ZERO_FADDR ADDR_MH_MMU_MPU_END
+#define MH_MMU_MPU_END_ZERO_FSHIFT 0
+#define MH_MMU_MPU_END_ZERO_FMASK 0xfff
+#define MH_MMU_MPU_END_MPU_END_FADDR ADDR_MH_MMU_MPU_END
+#define MH_MMU_MPU_END_MPU_END_FSHIFT 12
+#define MH_MMU_MPU_END_MPU_END_FMASK 0xfffff
+#define MH_MMU_PAGE_FAULT_PAGE_FAULT_FADDR ADDR_MH_MMU_PAGE_FAULT
+#define MH_MMU_PAGE_FAULT_PAGE_FAULT_FSHIFT 0
+#define MH_MMU_PAGE_FAULT_PAGE_FAULT_FMASK 0x1
+#define MH_MMU_PAGE_FAULT_OP_TYPE_FADDR ADDR_MH_MMU_PAGE_FAULT
+#define MH_MMU_PAGE_FAULT_OP_TYPE_FSHIFT 1
+#define MH_MMU_PAGE_FAULT_OP_TYPE_FMASK 0x1
+#define MH_MMU_PAGE_FAULT_CLNT_BEHAVIOR_FADDR ADDR_MH_MMU_PAGE_FAULT
+#define MH_MMU_PAGE_FAULT_CLNT_BEHAVIOR_FSHIFT 2
+#define MH_MMU_PAGE_FAULT_CLNT_BEHAVIOR_FMASK 0x3
+#define MH_MMU_PAGE_FAULT_AXI_ID_FADDR ADDR_MH_MMU_PAGE_FAULT
+#define MH_MMU_PAGE_FAULT_AXI_ID_FSHIFT 4
+#define MH_MMU_PAGE_FAULT_AXI_ID_FMASK 0x7
+#define MH_MMU_PAGE_FAULT_PAD_FADDR ADDR_MH_MMU_PAGE_FAULT
+#define MH_MMU_PAGE_FAULT_PAD_FSHIFT 7
+#define MH_MMU_PAGE_FAULT_PAD_FMASK 0x1
+#define MH_MMU_PAGE_FAULT_MPU_ADDRESS_OUT_OF_RANGE_FADDR ADDR_MH_MMU_PAGE_FAULT
+#define MH_MMU_PAGE_FAULT_MPU_ADDRESS_OUT_OF_RANGE_FSHIFT 8
+#define MH_MMU_PAGE_FAULT_MPU_ADDRESS_OUT_OF_RANGE_FMASK 0x1
+#define MH_MMU_PAGE_FAULT_ADDRESS_OUT_OF_RANGE_FADDR ADDR_MH_MMU_PAGE_FAULT
+#define MH_MMU_PAGE_FAULT_ADDRESS_OUT_OF_RANGE_FSHIFT 9
+#define MH_MMU_PAGE_FAULT_ADDRESS_OUT_OF_RANGE_FMASK 0x1
+#define MH_MMU_PAGE_FAULT_READ_PROTECTION_ERROR_FADDR ADDR_MH_MMU_PAGE_FAULT
+#define MH_MMU_PAGE_FAULT_READ_PROTECTION_ERROR_FSHIFT 10
+#define MH_MMU_PAGE_FAULT_READ_PROTECTION_ERROR_FMASK 0x1
+#define MH_MMU_PAGE_FAULT_WRITE_PROTECTION_ERROR_FADDR ADDR_MH_MMU_PAGE_FAULT
+#define MH_MMU_PAGE_FAULT_WRITE_PROTECTION_ERROR_FSHIFT 11
+#define MH_MMU_PAGE_FAULT_WRITE_PROTECTION_ERROR_FMASK 0x1
+#define MH_MMU_PAGE_FAULT_REQ_VA_FADDR ADDR_MH_MMU_PAGE_FAULT
+#define MH_MMU_PAGE_FAULT_REQ_VA_FSHIFT 12
+#define MH_MMU_PAGE_FAULT_REQ_VA_FMASK 0xfffff
+#define MH_MMU_PT_BASE_ZERO_FADDR ADDR_MH_MMU_PT_BASE
+#define MH_MMU_PT_BASE_ZERO_FSHIFT 0
+#define MH_MMU_PT_BASE_ZERO_FMASK 0xfff
+#define MH_MMU_PT_BASE_PT_BASE_FADDR ADDR_MH_MMU_PT_BASE
+#define MH_MMU_PT_BASE_PT_BASE_FSHIFT 12
+#define MH_MMU_PT_BASE_PT_BASE_FMASK 0xfffff
+#define MH_MMU_TRAN_ERROR_ZERO_FADDR ADDR_MH_MMU_TRAN_ERROR
+#define MH_MMU_TRAN_ERROR_ZERO_FSHIFT 0
+#define MH_MMU_TRAN_ERROR_ZERO_FMASK 0x1f
+#define MH_MMU_TRAN_ERROR_TRAN_ERROR_FADDR ADDR_MH_MMU_TRAN_ERROR
+#define MH_MMU_TRAN_ERROR_TRAN_ERROR_FSHIFT 5
+#define MH_MMU_TRAN_ERROR_TRAN_ERROR_FMASK 0x7ffffff
+#define MH_MMU_VA_RANGE_NUM_64KB_REGIONS_FADDR ADDR_MH_MMU_VA_RANGE
+#define MH_MMU_VA_RANGE_NUM_64KB_REGIONS_FSHIFT 0
+#define MH_MMU_VA_RANGE_NUM_64KB_REGIONS_FMASK 0xfff
+#define MH_MMU_VA_RANGE_VA_BASE_FADDR ADDR_MH_MMU_VA_RANGE
+#define MH_MMU_VA_RANGE_VA_BASE_FSHIFT 12
+#define MH_MMU_VA_RANGE_VA_BASE_FMASK 0xfffff
+#define MH_PERFCOUNTER0_CONFIG_N_VALUE_FADDR ADDR_MH_PERFCOUNTER0_CONFIG
+#define MH_PERFCOUNTER0_CONFIG_N_VALUE_FSHIFT 0
+#define MH_PERFCOUNTER0_CONFIG_N_VALUE_FMASK 0xff
+#define MH_PERFCOUNTER0_HI_PERF_COUNTER_HI_FADDR ADDR_MH_PERFCOUNTER0_HI
+#define MH_PERFCOUNTER0_HI_PERF_COUNTER_HI_FSHIFT 0
+#define MH_PERFCOUNTER0_HI_PERF_COUNTER_HI_FMASK 0xffff
+#define MH_PERFCOUNTER0_LOW_PERF_COUNTER_LOW_FADDR ADDR_MH_PERFCOUNTER0_LOW
+#define MH_PERFCOUNTER0_LOW_PERF_COUNTER_LOW_FSHIFT 0
+#define MH_PERFCOUNTER0_LOW_PERF_COUNTER_LOW_FMASK 0xffffffff
+#define MH_PERFCOUNTER0_SELECT_PERF_SEL_FADDR ADDR_MH_PERFCOUNTER0_SELECT
+#define MH_PERFCOUNTER0_SELECT_PERF_SEL_FSHIFT 0
+#define MH_PERFCOUNTER0_SELECT_PERF_SEL_FMASK 0xff
+#define MH_PERFCOUNTER1_CONFIG_N_VALUE_FADDR ADDR_MH_PERFCOUNTER1_CONFIG
+#define MH_PERFCOUNTER1_CONFIG_N_VALUE_FSHIFT 0
+#define MH_PERFCOUNTER1_CONFIG_N_VALUE_FMASK 0xff
+#define MH_PERFCOUNTER1_HI_PERF_COUNTER_HI_FADDR ADDR_MH_PERFCOUNTER1_HI
+#define MH_PERFCOUNTER1_HI_PERF_COUNTER_HI_FSHIFT 0
+#define MH_PERFCOUNTER1_HI_PERF_COUNTER_HI_FMASK 0xffff
+#define MH_PERFCOUNTER1_LOW_PERF_COUNTER_LOW_FADDR ADDR_MH_PERFCOUNTER1_LOW
+#define MH_PERFCOUNTER1_LOW_PERF_COUNTER_LOW_FSHIFT 0
+#define MH_PERFCOUNTER1_LOW_PERF_COUNTER_LOW_FMASK 0xffffffff
+#define MH_PERFCOUNTER1_SELECT_PERF_SEL_FADDR ADDR_MH_PERFCOUNTER1_SELECT
+#define MH_PERFCOUNTER1_SELECT_PERF_SEL_FSHIFT 0
+#define MH_PERFCOUNTER1_SELECT_PERF_SEL_FMASK 0xff
+#define MMU_READ_ADDR_ADDR_FADDR ADDR_MMU_READ_ADDR
+#define MMU_READ_ADDR_ADDR_FSHIFT 0
+#define MMU_READ_ADDR_ADDR_FMASK 0x7fff
+#define MMU_READ_DATA_DATA_FADDR ADDR_MMU_READ_DATA
+#define MMU_READ_DATA_DATA_FSHIFT 0
+#define MMU_READ_DATA_DATA_FMASK 0xffffffff
+#define VGV1_CBASE1_ADDR_FADDR ADDR_VGV1_CBASE1
+#define VGV1_CBASE1_ADDR_FSHIFT 0
+#define VGV1_CBASE1_ADDR_FMASK 0xffffffff
+#define VGV1_CFG1_WINDRULE_FADDR ADDR_VGV1_CFG1
+#define VGV1_CFG1_WINDRULE_FSHIFT 0
+#define VGV1_CFG1_WINDRULE_FMASK 0x1
+#define VGV1_CFG2_AAMODE_FADDR ADDR_VGV1_CFG2
+#define VGV1_CFG2_AAMODE_FSHIFT 0
+#define VGV1_CFG2_AAMODE_FMASK 0x3
+#define VGV1_DIRTYBASE_ADDR_FADDR ADDR_VGV1_DIRTYBASE
+#define VGV1_DIRTYBASE_ADDR_FSHIFT 0
+#define VGV1_DIRTYBASE_ADDR_FMASK 0xffffffff
+#define VGV1_FILL_INHERIT_FADDR ADDR_VGV1_FILL
+#define VGV1_FILL_INHERIT_FSHIFT 0
+#define VGV1_FILL_INHERIT_FMASK 0x1
+#define VGV1_SCISSORX_LEFT_FADDR ADDR_VGV1_SCISSORX
+#define VGV1_SCISSORX_LEFT_FSHIFT 0
+#define VGV1_SCISSORX_LEFT_FMASK 0x7ff
+#define VGV1_SCISSORX_PAD_FADDR ADDR_VGV1_SCISSORX
+#define VGV1_SCISSORX_PAD_FSHIFT 11
+#define VGV1_SCISSORX_PAD_FMASK 0x1f
+#define VGV1_SCISSORX_RIGHT_FADDR ADDR_VGV1_SCISSORX
+#define VGV1_SCISSORX_RIGHT_FSHIFT 16
+#define VGV1_SCISSORX_RIGHT_FMASK 0x7ff
+#define VGV1_SCISSORY_TOP_FADDR ADDR_VGV1_SCISSORY
+#define VGV1_SCISSORY_TOP_FSHIFT 0
+#define VGV1_SCISSORY_TOP_FMASK 0x7ff
+#define VGV1_SCISSORY_PAD_FADDR ADDR_VGV1_SCISSORY
+#define VGV1_SCISSORY_PAD_FSHIFT 11
+#define VGV1_SCISSORY_PAD_FMASK 0x1f
+#define VGV1_SCISSORY_BOTTOM_FADDR ADDR_VGV1_SCISSORY
+#define VGV1_SCISSORY_BOTTOM_FSHIFT 16
+#define VGV1_SCISSORY_BOTTOM_FMASK 0x7ff
+#define VGV1_TILEOFS_X_FADDR ADDR_VGV1_TILEOFS
+#define VGV1_TILEOFS_X_FSHIFT 0
+#define VGV1_TILEOFS_X_FMASK 0xfff
+#define VGV1_TILEOFS_Y_FADDR ADDR_VGV1_TILEOFS
+#define VGV1_TILEOFS_Y_FSHIFT 12
+#define VGV1_TILEOFS_Y_FMASK 0xfff
+#define VGV1_TILEOFS_LEFTMOST_FADDR ADDR_VGV1_TILEOFS
+#define VGV1_TILEOFS_LEFTMOST_FSHIFT 24
+#define VGV1_TILEOFS_LEFTMOST_FMASK 0x1
+#define VGV1_UBASE2_ADDR_FADDR ADDR_VGV1_UBASE2
+#define VGV1_UBASE2_ADDR_FSHIFT 0
+#define VGV1_UBASE2_ADDR_FMASK 0xffffffff
+#define VGV1_VTX0_X_FADDR ADDR_VGV1_VTX0
+#define VGV1_VTX0_X_FSHIFT 0
+#define VGV1_VTX0_X_FMASK 0xffff
+#define VGV1_VTX0_Y_FADDR ADDR_VGV1_VTX0
+#define VGV1_VTX0_Y_FSHIFT 16
+#define VGV1_VTX0_Y_FMASK 0xffff
+#define VGV1_VTX1_X_FADDR ADDR_VGV1_VTX1
+#define VGV1_VTX1_X_FSHIFT 0
+#define VGV1_VTX1_X_FMASK 0xffff
+#define VGV1_VTX1_Y_FADDR ADDR_VGV1_VTX1
+#define VGV1_VTX1_Y_FSHIFT 16
+#define VGV1_VTX1_Y_FMASK 0xffff
+#define VGV2_ACCURACY_F_FADDR ADDR_VGV2_ACCURACY
+#define VGV2_ACCURACY_F_FSHIFT 0
+#define VGV2_ACCURACY_F_FMASK 0xffffff
+#define VGV2_ACTION_ACTION_FADDR ADDR_VGV2_ACTION
+#define VGV2_ACTION_ACTION_FSHIFT 0
+#define VGV2_ACTION_ACTION_FMASK 0xf
+#define VGV2_ARCCOS_F_FADDR ADDR_VGV2_ARCCOS
+#define VGV2_ARCCOS_F_FSHIFT 0
+#define VGV2_ARCCOS_F_FMASK 0xffffff
+#define VGV2_ARCSIN_F_FADDR ADDR_VGV2_ARCSIN
+#define VGV2_ARCSIN_F_FSHIFT 0
+#define VGV2_ARCSIN_F_FMASK 0xffffff
+#define VGV2_ARCTAN_F_FADDR ADDR_VGV2_ARCTAN
+#define VGV2_ARCTAN_F_FSHIFT 0
+#define VGV2_ARCTAN_F_FMASK 0xffffff
+#define VGV2_BBOXMAXX_F_FADDR ADDR_VGV2_BBOXMAXX
+#define VGV2_BBOXMAXX_F_FSHIFT 0
+#define VGV2_BBOXMAXX_F_FMASK 0xffffff
+#define VGV2_BBOXMAXY_F_FADDR ADDR_VGV2_BBOXMAXY
+#define VGV2_BBOXMAXY_F_FSHIFT 0
+#define VGV2_BBOXMAXY_F_FMASK 0xffffff
+#define VGV2_BBOXMINX_F_FADDR ADDR_VGV2_BBOXMINX
+#define VGV2_BBOXMINX_F_FSHIFT 0
+#define VGV2_BBOXMINX_F_FMASK 0xffffff
+#define VGV2_BBOXMINY_F_FADDR ADDR_VGV2_BBOXMINY
+#define VGV2_BBOXMINY_F_FSHIFT 0
+#define VGV2_BBOXMINY_F_FMASK 0xffffff
+#define VGV2_BIAS_F_FADDR ADDR_VGV2_BIAS
+#define VGV2_BIAS_F_FSHIFT 0
+#define VGV2_BIAS_F_FMASK 0xffffff
+#define VGV2_C1X_F_FADDR ADDR_VGV2_C1X
+#define VGV2_C1X_F_FSHIFT 0
+#define VGV2_C1X_F_FMASK 0xffffff
+#define VGV2_C1XREL_F_FADDR ADDR_VGV2_C1XREL
+#define VGV2_C1XREL_F_FSHIFT 0
+#define VGV2_C1XREL_F_FMASK 0xffffff
+#define VGV2_C1Y_F_FADDR ADDR_VGV2_C1Y
+#define VGV2_C1Y_F_FSHIFT 0
+#define VGV2_C1Y_F_FMASK 0xffffff
+#define VGV2_C1YREL_F_FADDR ADDR_VGV2_C1YREL
+#define VGV2_C1YREL_F_FSHIFT 0
+#define VGV2_C1YREL_F_FMASK 0xffffff
+#define VGV2_C2X_F_FADDR ADDR_VGV2_C2X
+#define VGV2_C2X_F_FSHIFT 0
+#define VGV2_C2X_F_FMASK 0xffffff
+#define VGV2_C2XREL_F_FADDR ADDR_VGV2_C2XREL
+#define VGV2_C2XREL_F_FSHIFT 0
+#define VGV2_C2XREL_F_FMASK 0xffffff
+#define VGV2_C2Y_F_FADDR ADDR_VGV2_C2Y
+#define VGV2_C2Y_F_FSHIFT 0
+#define VGV2_C2Y_F_FMASK 0xffffff
+#define VGV2_C2YREL_F_FADDR ADDR_VGV2_C2YREL
+#define VGV2_C2YREL_F_FSHIFT 0
+#define VGV2_C2YREL_F_FMASK 0xffffff
+#define VGV2_C3X_F_FADDR ADDR_VGV2_C3X
+#define VGV2_C3X_F_FSHIFT 0
+#define VGV2_C3X_F_FMASK 0xffffff
+#define VGV2_C3XREL_F_FADDR ADDR_VGV2_C3XREL
+#define VGV2_C3XREL_F_FSHIFT 0
+#define VGV2_C3XREL_F_FMASK 0xffffff
+#define VGV2_C3Y_F_FADDR ADDR_VGV2_C3Y
+#define VGV2_C3Y_F_FSHIFT 0
+#define VGV2_C3Y_F_FMASK 0xffffff
+#define VGV2_C3YREL_F_FADDR ADDR_VGV2_C3YREL
+#define VGV2_C3YREL_F_FSHIFT 0
+#define VGV2_C3YREL_F_FMASK 0xffffff
+#define VGV2_C4X_F_FADDR ADDR_VGV2_C4X
+#define VGV2_C4X_F_FSHIFT 0
+#define VGV2_C4X_F_FMASK 0xffffff
+#define VGV2_C4XREL_F_FADDR ADDR_VGV2_C4XREL
+#define VGV2_C4XREL_F_FSHIFT 0
+#define VGV2_C4XREL_F_FMASK 0xffffff
+#define VGV2_C4Y_F_FADDR ADDR_VGV2_C4Y
+#define VGV2_C4Y_F_FSHIFT 0
+#define VGV2_C4Y_F_FMASK 0xffffff
+#define VGV2_C4YREL_F_FADDR ADDR_VGV2_C4YREL
+#define VGV2_C4YREL_F_FSHIFT 0
+#define VGV2_C4YREL_F_FMASK 0xffffff
+#define VGV2_CLIP_F_FADDR ADDR_VGV2_CLIP
+#define VGV2_CLIP_F_FSHIFT 0
+#define VGV2_CLIP_F_FMASK 0xffffff
+#define VGV2_FIRST_DUMMY_FADDR ADDR_VGV2_FIRST
+#define VGV2_FIRST_DUMMY_FSHIFT 0
+#define VGV2_FIRST_DUMMY_FMASK 0x1
+#define VGV2_LAST_DUMMY_FADDR ADDR_VGV2_LAST
+#define VGV2_LAST_DUMMY_FSHIFT 0
+#define VGV2_LAST_DUMMY_FMASK 0x1
+#define VGV2_MITER_F_FADDR ADDR_VGV2_MITER
+#define VGV2_MITER_F_FSHIFT 0
+#define VGV2_MITER_F_FMASK 0xffffff
+#define VGV2_MODE_MAXSPLIT_FADDR ADDR_VGV2_MODE
+#define VGV2_MODE_MAXSPLIT_FSHIFT 0
+#define VGV2_MODE_MAXSPLIT_FMASK 0xf
+#define VGV2_MODE_CAP_FADDR ADDR_VGV2_MODE
+#define VGV2_MODE_CAP_FSHIFT 4
+#define VGV2_MODE_CAP_FMASK 0x3
+#define VGV2_MODE_JOIN_FADDR ADDR_VGV2_MODE
+#define VGV2_MODE_JOIN_FSHIFT 6
+#define VGV2_MODE_JOIN_FMASK 0x3
+#define VGV2_MODE_STROKE_FADDR ADDR_VGV2_MODE
+#define VGV2_MODE_STROKE_FSHIFT 8
+#define VGV2_MODE_STROKE_FMASK 0x1
+#define VGV2_MODE_STROKESPLIT_FADDR ADDR_VGV2_MODE
+#define VGV2_MODE_STROKESPLIT_FSHIFT 9
+#define VGV2_MODE_STROKESPLIT_FMASK 0x1
+#define VGV2_MODE_FULLSPLIT_FADDR ADDR_VGV2_MODE
+#define VGV2_MODE_FULLSPLIT_FSHIFT 10
+#define VGV2_MODE_FULLSPLIT_FMASK 0x1
+#define VGV2_MODE_NODOTS_FADDR ADDR_VGV2_MODE
+#define VGV2_MODE_NODOTS_FSHIFT 11
+#define VGV2_MODE_NODOTS_FMASK 0x1
+#define VGV2_MODE_OPENFILL_FADDR ADDR_VGV2_MODE
+#define VGV2_MODE_OPENFILL_FSHIFT 12
+#define VGV2_MODE_OPENFILL_FMASK 0x1
+#define VGV2_MODE_DROPLEFT_FADDR ADDR_VGV2_MODE
+#define VGV2_MODE_DROPLEFT_FSHIFT 13
+#define VGV2_MODE_DROPLEFT_FMASK 0x1
+#define VGV2_MODE_DROPOTHER_FADDR ADDR_VGV2_MODE
+#define VGV2_MODE_DROPOTHER_FSHIFT 14
+#define VGV2_MODE_DROPOTHER_FMASK 0x1
+#define VGV2_MODE_SYMMETRICJOINS_FADDR ADDR_VGV2_MODE
+#define VGV2_MODE_SYMMETRICJOINS_FSHIFT 15
+#define VGV2_MODE_SYMMETRICJOINS_FMASK 0x1
+#define VGV2_MODE_SIMPLESTROKE_FADDR ADDR_VGV2_MODE
+#define VGV2_MODE_SIMPLESTROKE_FSHIFT 16
+#define VGV2_MODE_SIMPLESTROKE_FMASK 0x1
+#define VGV2_MODE_SIMPLECLIP_FADDR ADDR_VGV2_MODE
+#define VGV2_MODE_SIMPLECLIP_FSHIFT 17
+#define VGV2_MODE_SIMPLECLIP_FMASK 0x1
+#define VGV2_MODE_EXPONENTADD_FADDR ADDR_VGV2_MODE
+#define VGV2_MODE_EXPONENTADD_FSHIFT 18
+#define VGV2_MODE_EXPONENTADD_FMASK 0x3f
+#define VGV2_RADIUS_F_FADDR ADDR_VGV2_RADIUS
+#define VGV2_RADIUS_F_FSHIFT 0
+#define VGV2_RADIUS_F_FMASK 0xffffff
+#define VGV2_SCALE_F_FADDR ADDR_VGV2_SCALE
+#define VGV2_SCALE_F_FSHIFT 0
+#define VGV2_SCALE_F_FMASK 0xffffff
+#define VGV2_THINRADIUS_F_FADDR ADDR_VGV2_THINRADIUS
+#define VGV2_THINRADIUS_F_FSHIFT 0
+#define VGV2_THINRADIUS_F_FMASK 0xffffff
+#define VGV2_XFSTXX_F_FADDR ADDR_VGV2_XFSTXX
+#define VGV2_XFSTXX_F_FSHIFT 0
+#define VGV2_XFSTXX_F_FMASK 0xffffff
+#define VGV2_XFSTXY_F_FADDR ADDR_VGV2_XFSTXY
+#define VGV2_XFSTXY_F_FSHIFT 0
+#define VGV2_XFSTXY_F_FMASK 0xffffff
+#define VGV2_XFSTYX_F_FADDR ADDR_VGV2_XFSTYX
+#define VGV2_XFSTYX_F_FSHIFT 0
+#define VGV2_XFSTYX_F_FMASK 0xffffff
+#define VGV2_XFSTYY_F_FADDR ADDR_VGV2_XFSTYY
+#define VGV2_XFSTYY_F_FSHIFT 0
+#define VGV2_XFSTYY_F_FMASK 0xffffff
+#define VGV2_XFXA_F_FADDR ADDR_VGV2_XFXA
+#define VGV2_XFXA_F_FSHIFT 0
+#define VGV2_XFXA_F_FMASK 0xffffff
+#define VGV2_XFXX_F_FADDR ADDR_VGV2_XFXX
+#define VGV2_XFXX_F_FSHIFT 0
+#define VGV2_XFXX_F_FMASK 0xffffff
+#define VGV2_XFXY_F_FADDR ADDR_VGV2_XFXY
+#define VGV2_XFXY_F_FSHIFT 0
+#define VGV2_XFXY_F_FMASK 0xffffff
+#define VGV2_XFYA_F_FADDR ADDR_VGV2_XFYA
+#define VGV2_XFYA_F_FSHIFT 0
+#define VGV2_XFYA_F_FMASK 0xffffff
+#define VGV2_XFYX_F_FADDR ADDR_VGV2_XFYX
+#define VGV2_XFYX_F_FSHIFT 0
+#define VGV2_XFYX_F_FMASK 0xffffff
+#define VGV2_XFYY_F_FADDR ADDR_VGV2_XFYY
+#define VGV2_XFYY_F_FSHIFT 0
+#define VGV2_XFYY_F_FMASK 0xffffff
+#define VGV3_CONTROL_MARKADD_FADDR ADDR_VGV3_CONTROL
+#define VGV3_CONTROL_MARKADD_FSHIFT 0
+#define VGV3_CONTROL_MARKADD_FMASK 0xfff
+#define VGV3_CONTROL_DMIWAITCHMASK_FADDR ADDR_VGV3_CONTROL
+#define VGV3_CONTROL_DMIWAITCHMASK_FSHIFT 12
+#define VGV3_CONTROL_DMIWAITCHMASK_FMASK 0xf
+#define VGV3_CONTROL_PAUSE_FADDR ADDR_VGV3_CONTROL
+#define VGV3_CONTROL_PAUSE_FSHIFT 16
+#define VGV3_CONTROL_PAUSE_FMASK 0x1
+#define VGV3_CONTROL_ABORT_FADDR ADDR_VGV3_CONTROL
+#define VGV3_CONTROL_ABORT_FSHIFT 17
+#define VGV3_CONTROL_ABORT_FMASK 0x1
+#define VGV3_CONTROL_WRITE_FADDR ADDR_VGV3_CONTROL
+#define VGV3_CONTROL_WRITE_FSHIFT 18
+#define VGV3_CONTROL_WRITE_FMASK 0x1
+#define VGV3_CONTROL_BCFLUSH_FADDR ADDR_VGV3_CONTROL
+#define VGV3_CONTROL_BCFLUSH_FSHIFT 19
+#define VGV3_CONTROL_BCFLUSH_FMASK 0x1
+#define VGV3_CONTROL_V0SYNC_FADDR ADDR_VGV3_CONTROL
+#define VGV3_CONTROL_V0SYNC_FSHIFT 20
+#define VGV3_CONTROL_V0SYNC_FMASK 0x1
+#define VGV3_CONTROL_DMIWAITBUF_FADDR ADDR_VGV3_CONTROL
+#define VGV3_CONTROL_DMIWAITBUF_FSHIFT 21
+#define VGV3_CONTROL_DMIWAITBUF_FMASK 0x7
+#define VGV3_FIRST_DUMMY_FADDR ADDR_VGV3_FIRST
+#define VGV3_FIRST_DUMMY_FSHIFT 0
+#define VGV3_FIRST_DUMMY_FMASK 0x1
+#define VGV3_LAST_DUMMY_FADDR ADDR_VGV3_LAST
+#define VGV3_LAST_DUMMY_FSHIFT 0
+#define VGV3_LAST_DUMMY_FMASK 0x1
+#define VGV3_MODE_FLIPENDIAN_FADDR ADDR_VGV3_MODE
+#define VGV3_MODE_FLIPENDIAN_FSHIFT 0
+#define VGV3_MODE_FLIPENDIAN_FMASK 0x1
+#define VGV3_MODE_UNUSED_FADDR ADDR_VGV3_MODE
+#define VGV3_MODE_UNUSED_FSHIFT 1
+#define VGV3_MODE_UNUSED_FMASK 0x1
+#define VGV3_MODE_WRITEFLUSH_FADDR ADDR_VGV3_MODE
+#define VGV3_MODE_WRITEFLUSH_FSHIFT 2
+#define VGV3_MODE_WRITEFLUSH_FMASK 0x1
+#define VGV3_MODE_DMIPAUSETYPE_FADDR ADDR_VGV3_MODE
+#define VGV3_MODE_DMIPAUSETYPE_FSHIFT 3
+#define VGV3_MODE_DMIPAUSETYPE_FMASK 0x1
+#define VGV3_MODE_DMIRESET_FADDR ADDR_VGV3_MODE
+#define VGV3_MODE_DMIRESET_FSHIFT 4
+#define VGV3_MODE_DMIRESET_FMASK 0x1
+#define VGV3_NEXTADDR_CALLADDR_FADDR ADDR_VGV3_NEXTADDR
+#define VGV3_NEXTADDR_CALLADDR_FSHIFT 0
+#define VGV3_NEXTADDR_CALLADDR_FMASK 0xffffffff
+#define VGV3_NEXTCMD_COUNT_FADDR ADDR_VGV3_NEXTCMD
+#define VGV3_NEXTCMD_COUNT_FSHIFT 0
+#define VGV3_NEXTCMD_COUNT_FMASK 0xfff
+#define VGV3_NEXTCMD_NEXTCMD_FADDR ADDR_VGV3_NEXTCMD
+#define VGV3_NEXTCMD_NEXTCMD_FSHIFT 12
+#define VGV3_NEXTCMD_NEXTCMD_FMASK 0x7
+#define VGV3_NEXTCMD_MARK_FADDR ADDR_VGV3_NEXTCMD
+#define VGV3_NEXTCMD_MARK_FSHIFT 15
+#define VGV3_NEXTCMD_MARK_FMASK 0x1
+#define VGV3_NEXTCMD_CALLCOUNT_FADDR ADDR_VGV3_NEXTCMD
+#define VGV3_NEXTCMD_CALLCOUNT_FSHIFT 16
+#define VGV3_NEXTCMD_CALLCOUNT_FMASK 0xfff
+#define VGV3_VGBYPASS_BYPASS_FADDR ADDR_VGV3_VGBYPASS
+#define VGV3_VGBYPASS_BYPASS_FSHIFT 0
+#define VGV3_VGBYPASS_BYPASS_FMASK 0x1
+#define VGV3_WRITE_VALUE_FADDR ADDR_VGV3_WRITE
+#define VGV3_WRITE_VALUE_FSHIFT 0
+#define VGV3_WRITE_VALUE_FMASK 0xffffffff
+#define VGV3_WRITEADDR_ADDR_FADDR ADDR_VGV3_WRITEADDR
+#define VGV3_WRITEADDR_ADDR_FSHIFT 0
+#define VGV3_WRITEADDR_ADDR_FMASK 0xffffffff
+#define VGV3_WRITEDMI_CHANMASK_FADDR ADDR_VGV3_WRITEDMI
+#define VGV3_WRITEDMI_CHANMASK_FSHIFT 0
+#define VGV3_WRITEDMI_CHANMASK_FMASK 0xf
+#define VGV3_WRITEDMI_BUFFER_FADDR ADDR_VGV3_WRITEDMI
+#define VGV3_WRITEDMI_BUFFER_FSHIFT 4
+#define VGV3_WRITEDMI_BUFFER_FMASK 0x7
+#define VGV3_WRITEF32_ADDR_FADDR ADDR_VGV3_WRITEF32
+#define VGV3_WRITEF32_ADDR_FSHIFT 0
+#define VGV3_WRITEF32_ADDR_FMASK 0xff
+#define VGV3_WRITEF32_COUNT_FADDR ADDR_VGV3_WRITEF32
+#define VGV3_WRITEF32_COUNT_FSHIFT 8
+#define VGV3_WRITEF32_COUNT_FMASK 0xff
+#define VGV3_WRITEF32_LOOP_FADDR ADDR_VGV3_WRITEF32
+#define VGV3_WRITEF32_LOOP_FSHIFT 16
+#define VGV3_WRITEF32_LOOP_FMASK 0xf
+#define VGV3_WRITEF32_ACTION_FADDR ADDR_VGV3_WRITEF32
+#define VGV3_WRITEF32_ACTION_FSHIFT 20
+#define VGV3_WRITEF32_ACTION_FMASK 0xf
+#define VGV3_WRITEF32_FORMAT_FADDR ADDR_VGV3_WRITEF32
+#define VGV3_WRITEF32_FORMAT_FSHIFT 24
+#define VGV3_WRITEF32_FORMAT_FMASK 0x7
+#define VGV3_WRITEIFPAUSED_VALUE_FADDR ADDR_VGV3_WRITEIFPAUSED
+#define VGV3_WRITEIFPAUSED_VALUE_FSHIFT 0
+#define VGV3_WRITEIFPAUSED_VALUE_FMASK 0xffffffff
+#define VGV3_WRITERAW_ADDR_FADDR ADDR_VGV3_WRITERAW
+#define VGV3_WRITERAW_ADDR_FSHIFT 0
+#define VGV3_WRITERAW_ADDR_FMASK 0xff
+#define VGV3_WRITERAW_COUNT_FADDR ADDR_VGV3_WRITERAW
+#define VGV3_WRITERAW_COUNT_FSHIFT 8
+#define VGV3_WRITERAW_COUNT_FMASK 0xff
+#define VGV3_WRITERAW_LOOP_FADDR ADDR_VGV3_WRITERAW
+#define VGV3_WRITERAW_LOOP_FSHIFT 16
+#define VGV3_WRITERAW_LOOP_FMASK 0xf
+#define VGV3_WRITERAW_ACTION_FADDR ADDR_VGV3_WRITERAW
+#define VGV3_WRITERAW_ACTION_FSHIFT 20
+#define VGV3_WRITERAW_ACTION_FMASK 0xf
+#define VGV3_WRITERAW_FORMAT_FADDR ADDR_VGV3_WRITERAW
+#define VGV3_WRITERAW_FORMAT_FSHIFT 24
+#define VGV3_WRITERAW_FORMAT_FMASK 0x7
+#define VGV3_WRITES16_ADDR_FADDR ADDR_VGV3_WRITES16
+#define VGV3_WRITES16_ADDR_FSHIFT 0
+#define VGV3_WRITES16_ADDR_FMASK 0xff
+#define VGV3_WRITES16_COUNT_FADDR ADDR_VGV3_WRITES16
+#define VGV3_WRITES16_COUNT_FSHIFT 8
+#define VGV3_WRITES16_COUNT_FMASK 0xff
+#define VGV3_WRITES16_LOOP_FADDR ADDR_VGV3_WRITES16
+#define VGV3_WRITES16_LOOP_FSHIFT 16
+#define VGV3_WRITES16_LOOP_FMASK 0xf
+#define VGV3_WRITES16_ACTION_FADDR ADDR_VGV3_WRITES16
+#define VGV3_WRITES16_ACTION_FSHIFT 20
+#define VGV3_WRITES16_ACTION_FMASK 0xf
+#define VGV3_WRITES16_FORMAT_FADDR ADDR_VGV3_WRITES16
+#define VGV3_WRITES16_FORMAT_FSHIFT 24
+#define VGV3_WRITES16_FORMAT_FMASK 0x7
+#define VGV3_WRITES32_ADDR_FADDR ADDR_VGV3_WRITES32
+#define VGV3_WRITES32_ADDR_FSHIFT 0
+#define VGV3_WRITES32_ADDR_FMASK 0xff
+#define VGV3_WRITES32_COUNT_FADDR ADDR_VGV3_WRITES32
+#define VGV3_WRITES32_COUNT_FSHIFT 8
+#define VGV3_WRITES32_COUNT_FMASK 0xff
+#define VGV3_WRITES32_LOOP_FADDR ADDR_VGV3_WRITES32
+#define VGV3_WRITES32_LOOP_FSHIFT 16
+#define VGV3_WRITES32_LOOP_FMASK 0xf
+#define VGV3_WRITES32_ACTION_FADDR ADDR_VGV3_WRITES32
+#define VGV3_WRITES32_ACTION_FSHIFT 20
+#define VGV3_WRITES32_ACTION_FMASK 0xf
+#define VGV3_WRITES32_FORMAT_FADDR ADDR_VGV3_WRITES32
+#define VGV3_WRITES32_FORMAT_FSHIFT 24
+#define VGV3_WRITES32_FORMAT_FMASK 0x7
+#define VGV3_WRITES8_ADDR_FADDR ADDR_VGV3_WRITES8
+#define VGV3_WRITES8_ADDR_FSHIFT 0
+#define VGV3_WRITES8_ADDR_FMASK 0xff
+#define VGV3_WRITES8_COUNT_FADDR ADDR_VGV3_WRITES8
+#define VGV3_WRITES8_COUNT_FSHIFT 8
+#define VGV3_WRITES8_COUNT_FMASK 0xff
+#define VGV3_WRITES8_LOOP_FADDR ADDR_VGV3_WRITES8
+#define VGV3_WRITES8_LOOP_FSHIFT 16
+#define VGV3_WRITES8_LOOP_FMASK 0xf
+#define VGV3_WRITES8_ACTION_FADDR ADDR_VGV3_WRITES8
+#define VGV3_WRITES8_ACTION_FSHIFT 20
+#define VGV3_WRITES8_ACTION_FMASK 0xf
+#define VGV3_WRITES8_FORMAT_FADDR ADDR_VGV3_WRITES8
+#define VGV3_WRITES8_FORMAT_FSHIFT 24
+#define VGV3_WRITES8_FORMAT_FMASK 0x7
+typedef struct {
+ unsigned RS[256];
+ unsigned GRADW[2][40];
+} regstate_t;
+
+#define GRADW_WINDOW_START 0xc0
+#define GRADW_WINDOW_LEN 0x28
+#define GRADW_WINDOW_NUM 0x2
+
+static unsigned __inline __getwrs__(regstate_t* RS, unsigned win, unsigned addr, unsigned shift, unsigned mask) {
+ if ( addr >= 0xc0 && addr < 0xe8 ) {
+ assert( win < 2 );
+ return (RS->GRADW[win][addr-0xc0] >>
+ shift) & mask;
+ }
+ return ((RS->RS[addr] >> shift) & mask);
+}
+
+static void __inline __setwrs__(regstate_t* RS, unsigned win, unsigned addr, unsigned shift, unsigned mask, unsigned data) {
+ if ( addr >= 0xc0 && addr < 0xe8 ) {
+ assert( win < 2 );
+ RS->GRADW[win][addr-0xc0] = (RS->GRADW[win][addr-0xc0] &
+ ~(mask << shift)) |
+ ((mask & data) << shift);
+ }
+ RS->RS[addr] = (RS->RS[addr] & ~(mask << shift)) | ((mask & data) << shift);
+}
+
+static void __inline __setwreg__(regstate_t* RS, unsigned win, unsigned addr, unsigned data) {
+ if ( addr >= 0xc0 && addr < 0xe8 ) {
+ assert( win < 2 );
+ RS->GRADW[win][addr-0xc0] = data;
+ }
+ RS->RS[addr] = data;
+}
+
+static unsigned __inline __getrs__(regstate_t* RS, unsigned addr, unsigned shift, unsigned mask) {
+ return ((RS->RS[addr] >> shift) & mask);
+}
+
+static void __inline __setrs__(regstate_t* RS, unsigned addr, unsigned shift, unsigned mask, unsigned data) {
+ if ( addr >= 0xc0 && addr < 0xe8 ) {
+ unsigned win = __getrs__(RS, G2D_GRADIENT_SEL_FADDR, G2D_GRADIENT_SEL_FSHIFT, G2D_GRADIENT_SEL_FMASK);
+ assert( win < 2 );
+ RS->GRADW[win][addr-0xc0] = (RS->GRADW[win][addr-0xc0] &
+ ~(mask << shift)) | ((mask & data) << shift);
+ }
+ RS->RS[addr] = (RS->RS[addr] & ~(mask << shift)) | ((mask & data) << shift);
+}
+
+static void __inline __setreg__(regstate_t* RS, unsigned addr, unsigned data) {
+ if ( addr >= 0xc0 && addr < 0xe8 ) {
+ unsigned win = __getrs__(RS, G2D_GRADIENT_SEL_FADDR, G2D_GRADIENT_SEL_FSHIFT, G2D_GRADIENT_SEL_FMASK);
+ assert( win < 2 );
+ RS->GRADW[win][addr-0xc0] = data;
+ }
+ RS->RS[addr] = data;
+}
+
+#define SETWRS(win, id, value) __setwrs__(&RS, win, id##_FADDR, id##_FSHIFT, id##_FMASK, value)
+#define GETWRS(win, id) __getwrs__(&RS, win, id##_FADDR, id##_FSHIFT, id##_FMASK)
+#define SETWREG(win, reg, data) __setwreg__(&RS, win, reg, data)
+#define SETRS(id, value) __setrs__(&RS, id##_FADDR, id##_FSHIFT, id##_FMASK, value)
+#define GETRS(id) __getrs__(&RS, id##_FADDR, id##_FSHIFT, id##_FMASK)
+#define SETREG(reg, data) __setreg__(&RS, reg, data)
+#endif
diff --git a/drivers/mxc/amd-gpu/include/reg/yamato.h b/drivers/mxc/amd-gpu/include/reg/yamato.h
new file mode 100644
index 000000000000..05cae6c46403
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/reg/yamato.h
@@ -0,0 +1,66 @@
+/* Copyright (c) 2002,2007-2009, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef _YAMATO_H
+#define _YAMATO_H
+
+#ifndef qLittleEndian
+#define qLittleEndian
+#endif
+
+#if defined(_YDX14)
+#if defined(_WIN32) && !defined(__SYMBIAN32__)
+#pragma message("YDX 14 header files\r\n")
+#endif
+#include "yamato/14/yamato_enum.h"
+#include "yamato/14/yamato_ipt.h"
+#include "yamato/14/yamato_mask.h"
+#include "yamato/14/yamato_offset.h"
+#include "yamato/14/yamato_registers.h"
+#include "yamato/14/yamato_shift.h"
+#include "yamato/14/yamato_struct.h"
+#include "yamato/14/yamato_typedef.h"
+#define _YAMATO_GENENUM_H "reg/yamato/14/yamato_genenum.h"
+#define _YAMATO_GENREG_H "reg/yamato/14/yamato_genreg.h"
+#else
+#if defined(_WIN32) && !defined(__SYMBIAN32__)
+#pragma message("YDX 22 header files\r\n")
+#endif
+#include "yamato/22/yamato_enum.h"
+#include "yamato/22/yamato_ipt.h"
+#include "yamato/22/yamato_mask.h"
+#include "yamato/22/yamato_offset.h"
+#include "yamato/22/yamato_registers.h"
+#include "yamato/22/yamato_shift.h"
+#include "yamato/22/yamato_struct.h"
+#include "yamato/22/yamato_typedef.h"
+#define _YAMATO_GENENUM_H "reg/yamato/22/yamato_genenum.h"
+#define _YAMATO_GENREG_H "reg/yamato/22/yamato_genreg.h"
+#endif
+
+#endif // _YAMATO_H
diff --git a/drivers/mxc/amd-gpu/include/reg/yamato/10/yamato_enum.h b/drivers/mxc/amd-gpu/include/reg/yamato/10/yamato_enum.h
new file mode 100644
index 000000000000..144e9151fd8a
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/reg/yamato/10/yamato_enum.h
@@ -0,0 +1,1895 @@
+/* Copyright (c) 2002,2007-2009, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#if !defined (_yamato_ENUM_HEADER)
+#define _yamato_ENUM_HEADER
+
+#ifndef _DRIVER_BUILD
+#ifndef GL_ZERO
+#define GL__ZERO BLEND_ZERO
+#define GL__ONE BLEND_ONE
+#define GL__SRC_COLOR BLEND_SRC_COLOR
+#define GL__ONE_MINUS_SRC_COLOR BLEND_ONE_MINUS_SRC_COLOR
+#define GL__DST_COLOR BLEND_DST_COLOR
+#define GL__ONE_MINUS_DST_COLOR BLEND_ONE_MINUS_DST_COLOR
+#define GL__SRC_ALPHA BLEND_SRC_ALPHA
+#define GL__ONE_MINUS_SRC_ALPHA BLEND_ONE_MINUS_SRC_ALPHA
+#define GL__DST_ALPHA BLEND_DST_ALPHA
+#define GL__ONE_MINUS_DST_ALPHA BLEND_ONE_MINUS_DST_ALPHA
+#define GL__SRC_ALPHA_SATURATE BLEND_SRC_ALPHA_SATURATE
+#define GL__CONSTANT_COLOR BLEND_CONSTANT_COLOR
+#define GL__ONE_MINUS_CONSTANT_COLOR BLEND_ONE_MINUS_CONSTANT_COLOR
+#define GL__CONSTANT_ALPHA BLEND_CONSTANT_ALPHA
+#define GL__ONE_MINUS_CONSTANT_ALPHA BLEND_ONE_MINUS_CONSTANT_ALPHA
+#endif
+#endif
+
+/*******************************************************
+ * PA Enums
+ *******************************************************/
+#ifndef ENUMS_SU_PERFCNT_SELECT_H
+#define ENUMS_SU_PERFCNT_SELECT_H
+typedef enum SU_PERFCNT_SELECT {
+ PERF_PAPC_PASX_REQ = 0,
+ UNUSED1 = 1,
+ PERF_PAPC_PASX_FIRST_VECTOR = 2,
+ PERF_PAPC_PASX_SECOND_VECTOR = 3,
+ PERF_PAPC_PASX_FIRST_DEAD = 4,
+ PERF_PAPC_PASX_SECOND_DEAD = 5,
+ PERF_PAPC_PASX_VTX_KILL_DISCARD = 6,
+ PERF_PAPC_PASX_VTX_NAN_DISCARD = 7,
+ PERF_PAPC_PA_INPUT_PRIM = 8,
+ PERF_PAPC_PA_INPUT_NULL_PRIM = 9,
+ PERF_PAPC_PA_INPUT_EVENT_FLAG = 10,
+ PERF_PAPC_PA_INPUT_FIRST_PRIM_SLOT = 11,
+ PERF_PAPC_PA_INPUT_END_OF_PACKET = 12,
+ PERF_PAPC_CLPR_CULL_PRIM = 13,
+ UNUSED2 = 14,
+ PERF_PAPC_CLPR_VV_CULL_PRIM = 15,
+ UNUSED3 = 16,
+ PERF_PAPC_CLPR_VTX_KILL_CULL_PRIM = 17,
+ PERF_PAPC_CLPR_VTX_NAN_CULL_PRIM = 18,
+ PERF_PAPC_CLPR_CULL_TO_NULL_PRIM = 19,
+ UNUSED4 = 20,
+ PERF_PAPC_CLPR_VV_CLIP_PRIM = 21,
+ UNUSED5 = 22,
+ PERF_PAPC_CLPR_POINT_CLIP_CANDIDATE = 23,
+ PERF_PAPC_CLPR_CLIP_PLANE_CNT_1 = 24,
+ PERF_PAPC_CLPR_CLIP_PLANE_CNT_2 = 25,
+ PERF_PAPC_CLPR_CLIP_PLANE_CNT_3 = 26,
+ PERF_PAPC_CLPR_CLIP_PLANE_CNT_4 = 27,
+ PERF_PAPC_CLPR_CLIP_PLANE_CNT_5 = 28,
+ PERF_PAPC_CLPR_CLIP_PLANE_CNT_6 = 29,
+ PERF_PAPC_CLPR_CLIP_PLANE_NEAR = 30,
+ PERF_PAPC_CLPR_CLIP_PLANE_FAR = 31,
+ PERF_PAPC_CLPR_CLIP_PLANE_LEFT = 32,
+ PERF_PAPC_CLPR_CLIP_PLANE_RIGHT = 33,
+ PERF_PAPC_CLPR_CLIP_PLANE_TOP = 34,
+ PERF_PAPC_CLPR_CLIP_PLANE_BOTTOM = 35,
+ PERF_PAPC_CLSM_NULL_PRIM = 36,
+ PERF_PAPC_CLSM_TOTALLY_VISIBLE_PRIM = 37,
+ PERF_PAPC_CLSM_CLIP_PRIM = 38,
+ PERF_PAPC_CLSM_CULL_TO_NULL_PRIM = 39,
+ PERF_PAPC_CLSM_OUT_PRIM_CNT_1 = 40,
+ PERF_PAPC_CLSM_OUT_PRIM_CNT_2 = 41,
+ PERF_PAPC_CLSM_OUT_PRIM_CNT_3 = 42,
+ PERF_PAPC_CLSM_OUT_PRIM_CNT_4 = 43,
+ PERF_PAPC_CLSM_OUT_PRIM_CNT_5 = 44,
+ PERF_PAPC_CLSM_OUT_PRIM_CNT_6_7 = 45,
+ PERF_PAPC_CLSM_NON_TRIVIAL_CULL = 46,
+ PERF_PAPC_SU_INPUT_PRIM = 47,
+ PERF_PAPC_SU_INPUT_CLIP_PRIM = 48,
+ PERF_PAPC_SU_INPUT_NULL_PRIM = 49,
+ PERF_PAPC_SU_ZERO_AREA_CULL_PRIM = 50,
+ PERF_PAPC_SU_BACK_FACE_CULL_PRIM = 51,
+ PERF_PAPC_SU_FRONT_FACE_CULL_PRIM = 52,
+ PERF_PAPC_SU_POLYMODE_FACE_CULL = 53,
+ PERF_PAPC_SU_POLYMODE_BACK_CULL = 54,
+ PERF_PAPC_SU_POLYMODE_FRONT_CULL = 55,
+ PERF_PAPC_SU_POLYMODE_INVALID_FILL = 56,
+ PERF_PAPC_SU_OUTPUT_PRIM = 57,
+ PERF_PAPC_SU_OUTPUT_CLIP_PRIM = 58,
+ PERF_PAPC_SU_OUTPUT_NULL_PRIM = 59,
+ PERF_PAPC_SU_OUTPUT_EVENT_FLAG = 60,
+ PERF_PAPC_SU_OUTPUT_FIRST_PRIM_SLOT = 61,
+ PERF_PAPC_SU_OUTPUT_END_OF_PACKET = 62,
+ PERF_PAPC_SU_OUTPUT_POLYMODE_FACE = 63,
+ PERF_PAPC_SU_OUTPUT_POLYMODE_BACK = 64,
+ PERF_PAPC_SU_OUTPUT_POLYMODE_FRONT = 65,
+ PERF_PAPC_SU_OUT_CLIP_POLYMODE_FACE = 66,
+ PERF_PAPC_SU_OUT_CLIP_POLYMODE_BACK = 67,
+ PERF_PAPC_SU_OUT_CLIP_POLYMODE_FRONT = 68,
+ PERF_PAPC_PASX_REQ_IDLE = 69,
+ PERF_PAPC_PASX_REQ_BUSY = 70,
+ PERF_PAPC_PASX_REQ_STALLED = 71,
+ PERF_PAPC_PASX_REC_IDLE = 72,
+ PERF_PAPC_PASX_REC_BUSY = 73,
+ PERF_PAPC_PASX_REC_STARVED_SX = 74,
+ PERF_PAPC_PASX_REC_STALLED = 75,
+ PERF_PAPC_PASX_REC_STALLED_POS_MEM = 76,
+ PERF_PAPC_PASX_REC_STALLED_CCGSM_IN = 77,
+ PERF_PAPC_CCGSM_IDLE = 78,
+ PERF_PAPC_CCGSM_BUSY = 79,
+ PERF_PAPC_CCGSM_STALLED = 80,
+ PERF_PAPC_CLPRIM_IDLE = 81,
+ PERF_PAPC_CLPRIM_BUSY = 82,
+ PERF_PAPC_CLPRIM_STALLED = 83,
+ PERF_PAPC_CLPRIM_STARVED_CCGSM = 84,
+ PERF_PAPC_CLIPSM_IDLE = 85,
+ PERF_PAPC_CLIPSM_BUSY = 86,
+ PERF_PAPC_CLIPSM_WAIT_CLIP_VERT_ENGH = 87,
+ PERF_PAPC_CLIPSM_WAIT_HIGH_PRI_SEQ = 88,
+ PERF_PAPC_CLIPSM_WAIT_CLIPGA = 89,
+ PERF_PAPC_CLIPSM_WAIT_AVAIL_VTE_CLIP = 90,
+ PERF_PAPC_CLIPSM_WAIT_CLIP_OUTSM = 91,
+ PERF_PAPC_CLIPGA_IDLE = 92,
+ PERF_PAPC_CLIPGA_BUSY = 93,
+ PERF_PAPC_CLIPGA_STARVED_VTE_CLIP = 94,
+ PERF_PAPC_CLIPGA_STALLED = 95,
+ PERF_PAPC_CLIP_IDLE = 96,
+ PERF_PAPC_CLIP_BUSY = 97,
+ PERF_PAPC_SU_IDLE = 98,
+ PERF_PAPC_SU_BUSY = 99,
+ PERF_PAPC_SU_STARVED_CLIP = 100,
+ PERF_PAPC_SU_STALLED_SC = 101,
+ PERF_PAPC_SU_FACENESS_CULL = 102,
+} SU_PERFCNT_SELECT;
+#endif /*ENUMS_SU_PERFCNT_SELECT_H*/
+
+#ifndef ENUMS_SC_PERFCNT_SELECT_H
+#define ENUMS_SC_PERFCNT_SELECT_H
+typedef enum SC_PERFCNT_SELECT {
+ SC_SR_WINDOW_VALID = 0,
+ SC_CW_WINDOW_VALID = 1,
+ SC_QM_WINDOW_VALID = 2,
+ SC_FW_WINDOW_VALID = 3,
+ SC_EZ_WINDOW_VALID = 4,
+ SC_IT_WINDOW_VALID = 5,
+ SC_STARVED_BY_PA = 6,
+ SC_STALLED_BY_RB_TILE = 7,
+ SC_STALLED_BY_RB_SAMP = 8,
+ SC_STARVED_BY_RB_EZ = 9,
+ SC_STALLED_BY_SAMPLE_FF = 10,
+ SC_STALLED_BY_SQ = 11,
+ SC_STALLED_BY_SP = 12,
+ SC_TOTAL_NO_PRIMS = 13,
+ SC_NON_EMPTY_PRIMS = 14,
+ SC_NO_TILES_PASSING_QM = 15,
+ SC_NO_PIXELS_PRE_EZ = 16,
+ SC_NO_PIXELS_POST_EZ = 17,
+} SC_PERFCNT_SELECT;
+#endif /*ENUMS_SC_PERFCNT_SELECT_H*/
+
+/*******************************************************
+ * VGT Enums
+ *******************************************************/
+#ifndef ENUMS_VGT_DI_PRIM_TYPE_H
+#define ENUMS_VGT_DI_PRIM_TYPE_H
+typedef enum VGT_DI_PRIM_TYPE {
+ DI_PT_NONE = 0,
+ DI_PT_POINTLIST = 1,
+ DI_PT_LINELIST = 2,
+ DI_PT_LINESTRIP = 3,
+ DI_PT_TRILIST = 4,
+ DI_PT_TRIFAN = 5,
+ DI_PT_TRISTRIP = 6,
+ DI_PT_UNUSED_1 = 7,
+ DI_PT_RECTLIST = 8,
+ DI_PT_UNUSED_2 = 9,
+ DI_PT_UNUSED_3 = 10,
+ DI_PT_UNUSED_4 = 11,
+ DI_PT_UNUSED_5 = 12,
+ DI_PT_QUADLIST = 13,
+ DI_PT_QUADSTRIP = 14,
+ DI_PT_POLYGON = 15,
+ DI_PT_2D_COPY_RECT_LIST_V0 = 16,
+ DI_PT_2D_COPY_RECT_LIST_V1 = 17,
+ DI_PT_2D_COPY_RECT_LIST_V2 = 18,
+ DI_PT_2D_COPY_RECT_LIST_V3 = 19,
+ DI_PT_2D_FILL_RECT_LIST = 20,
+ DI_PT_2D_LINE_STRIP = 21,
+ DI_PT_2D_TRI_STRIP = 22,
+} VGT_DI_PRIM_TYPE;
+#endif /*ENUMS_VGT_DI_PRIM_TYPE_H*/
+
+#ifndef ENUMS_VGT_DI_SOURCE_SELECT_H
+#define ENUMS_VGT_DI_SOURCE_SELECT_H
+typedef enum VGT_DI_SOURCE_SELECT {
+ DI_SRC_SEL_DMA = 0,
+ DI_SRC_SEL_IMMEDIATE = 1,
+ DI_SRC_SEL_AUTO_INDEX = 2,
+ DI_SRC_SEL_RESERVED = 3
+} VGT_DI_SOURCE_SELECT;
+#endif /*ENUMS_VGT_DI_SOURCE_SELECT_H*/
+
+#ifndef ENUMS_VGT_DI_FACENESS_CULL_SELECT_H
+#define ENUMS_VGT_DI_FACENESS_CULL_SELECT_H
+typedef enum VGT_DI_FACENESS_CULL_SELECT {
+ DI_FACE_CULL_NONE = 0,
+ DI_FACE_CULL_FETCH = 1,
+ DI_FACE_BACKFACE_CULL = 2,
+ DI_FACE_FRONTFACE_CULL = 3
+} VGT_DI_FACENESS_CULL_SELECT;
+#endif /*ENUMS_VGT_DI_FACENESS_CULL_SELECT_H*/
+
+#ifndef ENUMS_VGT_DI_INDEX_SIZE_H
+#define ENUMS_VGT_DI_INDEX_SIZE_H
+typedef enum VGT_DI_INDEX_SIZE {
+ DI_INDEX_SIZE_16_BIT = 0,
+ DI_INDEX_SIZE_32_BIT = 1
+} VGT_DI_INDEX_SIZE;
+#endif /*ENUMS_VGT_DI_INDEX_SIZE_H*/
+
+#ifndef ENUMS_VGT_DI_SMALL_INDEX_H
+#define ENUMS_VGT_DI_SMALL_INDEX_H
+typedef enum VGT_DI_SMALL_INDEX {
+ DI_USE_INDEX_SIZE = 0,
+ DI_INDEX_SIZE_8_BIT = 1
+} VGT_DI_SMALL_INDEX;
+#endif /*ENUMS_VGT_DI_SMALL_INDEX_H*/
+
+#ifndef ENUMS_VGT_DI_PRE_FETCH_CULL_ENABLE_H
+#define ENUMS_VGT_DI_PRE_FETCH_CULL_ENABLE_H
+typedef enum VGT_DI_PRE_FETCH_CULL_ENABLE {
+ DISABLE_PRE_FETCH_CULL_ENABLE = 0,
+ PRE_FETCH_CULL_ENABLE = 1
+} VGT_DI_PRE_FETCH_CULL_ENABLE;
+#endif /*ENUMS_VGT_DI_PRE_FETCH_CULL_ENABLE_H*/
+
+#ifndef ENUMS_VGT_DI_GRP_CULL_ENABLE_H
+#define ENUMS_VGT_DI_GRP_CULL_ENABLE_H
+typedef enum VGT_DI_GRP_CULL_ENABLE {
+ DISABLE_GRP_CULL_ENABLE = 0,
+ GRP_CULL_ENABLE = 1
+} VGT_DI_GRP_CULL_ENABLE;
+#endif /*ENUMS_VGT_DI_GRP_CULL_ENABLE_H*/
+
+#ifndef ENUMS_VGT_EVENT_TYPE_H
+#define ENUMS_VGT_EVENT_TYPE_H
+typedef enum VGT_EVENT_TYPE {
+ VS_DEALLOC = 0,
+ PS_DEALLOC = 1,
+ VS_DONE_TS = 2,
+ PS_DONE_TS = 3,
+ CACHE_FLUSH_TS = 4,
+ CONTEXT_DONE = 5,
+ CACHE_FLUSH = 6,
+ VIZQUERY_START = 7,
+ VIZQUERY_END = 8,
+ SC_WAIT_WC = 9,
+ RST_PIX_CNT = 13,
+ RST_VTX_CNT = 14,
+ TILE_FLUSH = 15,
+ CACHE_FLUSH_AND_INV_TS_EVENT = 20,
+ ZPASS_DONE = 21,
+ CACHE_FLUSH_AND_INV_EVENT = 22,
+ PERFCOUNTER_START = 23,
+ PERFCOUNTER_STOP = 24,
+ VS_FETCH_DONE = 27,
+ FACENESS_FLUSH = 28,
+} VGT_EVENT_TYPE;
+#endif /*ENUMS_VGT_EVENT_TYPE_H*/
+
+#ifndef ENUMS_VGT_DMA_SWAP_MODE_H
+#define ENUMS_VGT_DMA_SWAP_MODE_H
+typedef enum VGT_DMA_SWAP_MODE {
+ VGT_DMA_SWAP_NONE = 0,
+ VGT_DMA_SWAP_16_BIT = 1,
+ VGT_DMA_SWAP_32_BIT = 2,
+ VGT_DMA_SWAP_WORD = 3
+} VGT_DMA_SWAP_MODE;
+#endif /*ENUMS_VGT_DMA_SWAP_MODE_H*/
+
+#ifndef ENUMS_VGT_PERFCOUNT_SELECT_H
+#define ENUMS_VGT_PERFCOUNT_SELECT_H
+typedef enum VGT_PERFCOUNT_SELECT {
+ VGT_SQ_EVENT_WINDOW_ACTIVE = 0,
+ VGT_SQ_SEND = 1,
+ VGT_SQ_STALLED = 2,
+ VGT_SQ_STARVED_BUSY = 3,
+ VGT_SQ_STARVED_IDLE = 4,
+ VGT_SQ_STATIC = 5,
+ VGT_PA_EVENT_WINDOW_ACTIVE = 6,
+ VGT_PA_CLIP_V_SEND = 7,
+ VGT_PA_CLIP_V_STALLED = 8,
+ VGT_PA_CLIP_V_STARVED_BUSY = 9,
+ VGT_PA_CLIP_V_STARVED_IDLE = 10,
+ VGT_PA_CLIP_V_STATIC = 11,
+ VGT_PA_CLIP_P_SEND = 12,
+ VGT_PA_CLIP_P_STALLED = 13,
+ VGT_PA_CLIP_P_STARVED_BUSY = 14,
+ VGT_PA_CLIP_P_STARVED_IDLE = 15,
+ VGT_PA_CLIP_P_STATIC = 16,
+ VGT_PA_CLIP_S_SEND = 17,
+ VGT_PA_CLIP_S_STALLED = 18,
+ VGT_PA_CLIP_S_STARVED_BUSY = 19,
+ VGT_PA_CLIP_S_STARVED_IDLE = 20,
+ VGT_PA_CLIP_S_STATIC = 21,
+ RBIU_FIFOS_EVENT_WINDOW_ACTIVE = 22,
+ RBIU_IMMED_DATA_FIFO_STARVED = 23,
+ RBIU_IMMED_DATA_FIFO_STALLED = 24,
+ RBIU_DMA_REQUEST_FIFO_STARVED = 25,
+ RBIU_DMA_REQUEST_FIFO_STALLED = 26,
+ RBIU_DRAW_INITIATOR_FIFO_STARVED = 27,
+ RBIU_DRAW_INITIATOR_FIFO_STALLED = 28,
+ BIN_PRIM_NEAR_CULL = 29,
+ BIN_PRIM_ZERO_CULL = 30,
+ BIN_PRIM_FAR_CULL = 31,
+ BIN_PRIM_BIN_CULL = 32,
+ BIN_PRIM_FACE_CULL = 33,
+ SPARE34 = 34,
+ SPARE35 = 35,
+ SPARE36 = 36,
+ SPARE37 = 37,
+ SPARE38 = 38,
+ SPARE39 = 39,
+ TE_SU_IN_VALID = 40,
+ TE_SU_IN_READ = 41,
+ TE_SU_IN_PRIM = 42,
+ TE_SU_IN_EOP = 43,
+ TE_SU_IN_NULL_PRIM = 44,
+ TE_WK_IN_VALID = 45,
+ TE_WK_IN_READ = 46,
+ TE_OUT_PRIM_VALID = 47,
+ TE_OUT_PRIM_READ = 48,
+} VGT_PERFCOUNT_SELECT;
+#endif /*ENUMS_VGT_PERFCOUNT_SELECT_H*/
+
+/*******************************************************
+ * TP Enums
+ *******************************************************/
+#ifndef ENUMS_TCR_PERFCOUNT_SELECT_H
+#define ENUMS_TCR_PERFCOUNT_SELECT_H
+typedef enum TCR_PERFCOUNT_SELECT {
+ DGMMPD_IPMUX0_STALL = 0,
+ reserved_46 = 1,
+ reserved_47 = 2,
+ reserved_48 = 3,
+ DGMMPD_IPMUX_ALL_STALL = 4,
+ OPMUX0_L2_WRITES = 5,
+ reserved_49 = 6,
+ reserved_50 = 7,
+ reserved_51 = 8,
+} TCR_PERFCOUNT_SELECT;
+#endif /*ENUMS_TCR_PERFCOUNT_SELECT_H*/
+
+#ifndef ENUMS_TP_PERFCOUNT_SELECT_H
+#define ENUMS_TP_PERFCOUNT_SELECT_H
+typedef enum TP_PERFCOUNT_SELECT {
+ POINT_QUADS = 0,
+ BILIN_QUADS = 1,
+ ANISO_QUADS = 2,
+ MIP_QUADS = 3,
+ VOL_QUADS = 4,
+ MIP_VOL_QUADS = 5,
+ MIP_ANISO_QUADS = 6,
+ VOL_ANISO_QUADS = 7,
+ ANISO_2_1_QUADS = 8,
+ ANISO_4_1_QUADS = 9,
+ ANISO_6_1_QUADS = 10,
+ ANISO_8_1_QUADS = 11,
+ ANISO_10_1_QUADS = 12,
+ ANISO_12_1_QUADS = 13,
+ ANISO_14_1_QUADS = 14,
+ ANISO_16_1_QUADS = 15,
+ MIP_VOL_ANISO_QUADS = 16,
+ ALIGN_2_QUADS = 17,
+ ALIGN_4_QUADS = 18,
+ PIX_0_QUAD = 19,
+ PIX_1_QUAD = 20,
+ PIX_2_QUAD = 21,
+ PIX_3_QUAD = 22,
+ PIX_4_QUAD = 23,
+ TP_MIPMAP_LOD0 = 24,
+ TP_MIPMAP_LOD1 = 25,
+ TP_MIPMAP_LOD2 = 26,
+ TP_MIPMAP_LOD3 = 27,
+ TP_MIPMAP_LOD4 = 28,
+ TP_MIPMAP_LOD5 = 29,
+ TP_MIPMAP_LOD6 = 30,
+ TP_MIPMAP_LOD7 = 31,
+ TP_MIPMAP_LOD8 = 32,
+ TP_MIPMAP_LOD9 = 33,
+ TP_MIPMAP_LOD10 = 34,
+ TP_MIPMAP_LOD11 = 35,
+ TP_MIPMAP_LOD12 = 36,
+ TP_MIPMAP_LOD13 = 37,
+ TP_MIPMAP_LOD14 = 38,
+} TP_PERFCOUNT_SELECT;
+#endif /*ENUMS_TP_PERFCOUNT_SELECT_H*/
+
+#ifndef ENUMS_TCM_PERFCOUNT_SELECT_H
+#define ENUMS_TCM_PERFCOUNT_SELECT_H
+typedef enum TCM_PERFCOUNT_SELECT {
+ QUAD0_RD_LAT_FIFO_EMPTY = 0,
+ reserved_01 = 1,
+ reserved_02 = 2,
+ QUAD0_RD_LAT_FIFO_4TH_FULL = 3,
+ QUAD0_RD_LAT_FIFO_HALF_FULL = 4,
+ QUAD0_RD_LAT_FIFO_FULL = 5,
+ QUAD0_RD_LAT_FIFO_LT_4TH_FULL = 6,
+ reserved_07 = 7,
+ reserved_08 = 8,
+ reserved_09 = 9,
+ reserved_10 = 10,
+ reserved_11 = 11,
+ reserved_12 = 12,
+ reserved_13 = 13,
+ reserved_14 = 14,
+ reserved_15 = 15,
+ reserved_16 = 16,
+ reserved_17 = 17,
+ reserved_18 = 18,
+ reserved_19 = 19,
+ reserved_20 = 20,
+ reserved_21 = 21,
+ reserved_22 = 22,
+ reserved_23 = 23,
+ reserved_24 = 24,
+ reserved_25 = 25,
+ reserved_26 = 26,
+ reserved_27 = 27,
+ READ_STARVED_QUAD0 = 28,
+ reserved_29 = 29,
+ reserved_30 = 30,
+ reserved_31 = 31,
+ READ_STARVED = 32,
+ READ_STALLED_QUAD0 = 33,
+ reserved_34 = 34,
+ reserved_35 = 35,
+ reserved_36 = 36,
+ READ_STALLED = 37,
+ VALID_READ_QUAD0 = 38,
+ reserved_39 = 39,
+ reserved_40 = 40,
+ reserved_41 = 41,
+ TC_TP_STARVED_QUAD0 = 42,
+ reserved_43 = 43,
+ reserved_44 = 44,
+ reserved_45 = 45,
+ TC_TP_STARVED = 46,
+} TCM_PERFCOUNT_SELECT;
+#endif /*ENUMS_TCM_PERFCOUNT_SELECT_H*/
+
+#ifndef ENUMS_TCF_PERFCOUNT_SELECT_H
+#define ENUMS_TCF_PERFCOUNT_SELECT_H
+typedef enum TCF_PERFCOUNT_SELECT {
+ VALID_CYCLES = 0,
+ SINGLE_PHASES = 1,
+ ANISO_PHASES = 2,
+ MIP_PHASES = 3,
+ VOL_PHASES = 4,
+ MIP_VOL_PHASES = 5,
+ MIP_ANISO_PHASES = 6,
+ VOL_ANISO_PHASES = 7,
+ ANISO_2_1_PHASES = 8,
+ ANISO_4_1_PHASES = 9,
+ ANISO_6_1_PHASES = 10,
+ ANISO_8_1_PHASES = 11,
+ ANISO_10_1_PHASES = 12,
+ ANISO_12_1_PHASES = 13,
+ ANISO_14_1_PHASES = 14,
+ ANISO_16_1_PHASES = 15,
+ MIP_VOL_ANISO_PHASES = 16,
+ ALIGN_2_PHASES = 17,
+ ALIGN_4_PHASES = 18,
+ TPC_BUSY = 19,
+ TPC_STALLED = 20,
+ TPC_STARVED = 21,
+ TPC_WORKING = 22,
+ TPC_WALKER_BUSY = 23,
+ TPC_WALKER_STALLED = 24,
+ TPC_WALKER_WORKING = 25,
+ TPC_ALIGNER_BUSY = 26,
+ TPC_ALIGNER_STALLED = 27,
+ TPC_ALIGNER_STALLED_BY_BLEND = 28,
+ TPC_ALIGNER_STALLED_BY_CACHE = 29,
+ TPC_ALIGNER_WORKING = 30,
+ TPC_BLEND_BUSY = 31,
+ TPC_BLEND_SYNC = 32,
+ TPC_BLEND_STARVED = 33,
+ TPC_BLEND_WORKING = 34,
+ OPCODE_0x00 = 35,
+ OPCODE_0x01 = 36,
+ OPCODE_0x04 = 37,
+ OPCODE_0x10 = 38,
+ OPCODE_0x11 = 39,
+ OPCODE_0x12 = 40,
+ OPCODE_0x13 = 41,
+ OPCODE_0x18 = 42,
+ OPCODE_0x19 = 43,
+ OPCODE_0x1A = 44,
+ OPCODE_OTHER = 45,
+ IN_FIFO_0_EMPTY = 56,
+ IN_FIFO_0_LT_HALF_FULL = 57,
+ IN_FIFO_0_HALF_FULL = 58,
+ IN_FIFO_0_FULL = 59,
+ IN_FIFO_TPC_EMPTY = 72,
+ IN_FIFO_TPC_LT_HALF_FULL = 73,
+ IN_FIFO_TPC_HALF_FULL = 74,
+ IN_FIFO_TPC_FULL = 75,
+ TPC_TC_XFC = 76,
+ TPC_TC_STATE = 77,
+ TC_STALL = 78,
+ QUAD0_TAPS = 79,
+ QUADS = 83,
+ TCA_SYNC_STALL = 84,
+ TAG_STALL = 85,
+ TCB_SYNC_STALL = 88,
+ TCA_VALID = 89,
+ PROBES_VALID = 90,
+ MISS_STALL = 91,
+ FETCH_FIFO_STALL = 92,
+ TCO_STALL = 93,
+ ANY_STALL = 94,
+ TAG_MISSES = 95,
+ TAG_HITS = 96,
+ SUB_TAG_MISSES = 97,
+ SET0_INVALIDATES = 98,
+ SET1_INVALIDATES = 99,
+ SET2_INVALIDATES = 100,
+ SET3_INVALIDATES = 101,
+ SET0_TAG_MISSES = 102,
+ SET1_TAG_MISSES = 103,
+ SET2_TAG_MISSES = 104,
+ SET3_TAG_MISSES = 105,
+ SET0_TAG_HITS = 106,
+ SET1_TAG_HITS = 107,
+ SET2_TAG_HITS = 108,
+ SET3_TAG_HITS = 109,
+ SET0_SUB_TAG_MISSES = 110,
+ SET1_SUB_TAG_MISSES = 111,
+ SET2_SUB_TAG_MISSES = 112,
+ SET3_SUB_TAG_MISSES = 113,
+ SET0_EVICT1 = 114,
+ SET0_EVICT2 = 115,
+ SET0_EVICT3 = 116,
+ SET0_EVICT4 = 117,
+ SET0_EVICT5 = 118,
+ SET0_EVICT6 = 119,
+ SET0_EVICT7 = 120,
+ SET0_EVICT8 = 121,
+ SET1_EVICT1 = 130,
+ SET1_EVICT2 = 131,
+ SET1_EVICT3 = 132,
+ SET1_EVICT4 = 133,
+ SET1_EVICT5 = 134,
+ SET1_EVICT6 = 135,
+ SET1_EVICT7 = 136,
+ SET1_EVICT8 = 137,
+ SET2_EVICT1 = 146,
+ SET2_EVICT2 = 147,
+ SET2_EVICT3 = 148,
+ SET2_EVICT4 = 149,
+ SET2_EVICT5 = 150,
+ SET2_EVICT6 = 151,
+ SET2_EVICT7 = 152,
+ SET2_EVICT8 = 153,
+ SET3_EVICT1 = 162,
+ SET3_EVICT2 = 163,
+ SET3_EVICT3 = 164,
+ SET3_EVICT4 = 165,
+ SET3_EVICT5 = 166,
+ SET3_EVICT6 = 167,
+ SET3_EVICT7 = 168,
+ SET3_EVICT8 = 169,
+ FF_EMPTY = 178,
+ FF_LT_HALF_FULL = 179,
+ FF_HALF_FULL = 180,
+ FF_FULL = 181,
+ FF_XFC = 182,
+ FF_STALLED = 183,
+ FG_MASKS = 184,
+ FG_LEFT_MASKS = 185,
+ FG_LEFT_MASK_STALLED = 186,
+ FG_LEFT_NOT_DONE_STALL = 187,
+ FG_LEFT_FG_STALL = 188,
+ FG_LEFT_SECTORS = 189,
+ FG0_REQUESTS = 195,
+ FG0_STALLED = 196,
+ MEM_REQ512 = 199,
+ MEM_REQ_SENT = 200,
+ MEM_LOCAL_READ_REQ = 202,
+ TC0_MH_STALLED = 203,
+} TCF_PERFCOUNT_SELECT;
+#endif /*ENUMS_TCF_PERFCOUNT_SELECT_H*/
+
+/*******************************************************
+ * TC Enums
+ *******************************************************/
+/*******************************************************
+ * SQ Enums
+ *******************************************************/
+#ifndef ENUMS_SQ_PERFCNT_SELECT_H
+#define ENUMS_SQ_PERFCNT_SELECT_H
+typedef enum SQ_PERFCNT_SELECT {
+ SQ_PIXEL_VECTORS_SUB = 0,
+ SQ_VERTEX_VECTORS_SUB = 1,
+ SQ_ALU0_ACTIVE_VTX_SIMD0 = 2,
+ SQ_ALU1_ACTIVE_VTX_SIMD0 = 3,
+ SQ_ALU0_ACTIVE_PIX_SIMD0 = 4,
+ SQ_ALU1_ACTIVE_PIX_SIMD0 = 5,
+ SQ_ALU0_ACTIVE_VTX_SIMD1 = 6,
+ SQ_ALU1_ACTIVE_VTX_SIMD1 = 7,
+ SQ_ALU0_ACTIVE_PIX_SIMD1 = 8,
+ SQ_ALU1_ACTIVE_PIX_SIMD1 = 9,
+ SQ_EXPORT_CYCLES = 10,
+ SQ_ALU_CST_WRITTEN = 11,
+ SQ_TEX_CST_WRITTEN = 12,
+ SQ_ALU_CST_STALL = 13,
+ SQ_ALU_TEX_STALL = 14,
+ SQ_INST_WRITTEN = 15,
+ SQ_BOOLEAN_WRITTEN = 16,
+ SQ_LOOPS_WRITTEN = 17,
+ SQ_PIXEL_SWAP_IN = 18,
+ SQ_PIXEL_SWAP_OUT = 19,
+ SQ_VERTEX_SWAP_IN = 20,
+ SQ_VERTEX_SWAP_OUT = 21,
+ SQ_ALU_VTX_INST_ISSUED = 22,
+ SQ_TEX_VTX_INST_ISSUED = 23,
+ SQ_VC_VTX_INST_ISSUED = 24,
+ SQ_CF_VTX_INST_ISSUED = 25,
+ SQ_ALU_PIX_INST_ISSUED = 26,
+ SQ_TEX_PIX_INST_ISSUED = 27,
+ SQ_VC_PIX_INST_ISSUED = 28,
+ SQ_CF_PIX_INST_ISSUED = 29,
+ SQ_ALU0_FIFO_EMPTY_SIMD0 = 30,
+ SQ_ALU1_FIFO_EMPTY_SIMD0 = 31,
+ SQ_ALU0_FIFO_EMPTY_SIMD1 = 32,
+ SQ_ALU1_FIFO_EMPTY_SIMD1 = 33,
+ SQ_ALU_NOPS = 34,
+ SQ_PRED_SKIP = 35,
+ SQ_SYNC_ALU_STALL_SIMD0_VTX = 36,
+ SQ_SYNC_ALU_STALL_SIMD1_VTX = 37,
+ SQ_SYNC_TEX_STALL_VTX = 38,
+ SQ_SYNC_VC_STALL_VTX = 39,
+ SQ_CONSTANTS_USED_SIMD0 = 40,
+ SQ_CONSTANTS_SENT_SP_SIMD0 = 41,
+ SQ_GPR_STALL_VTX = 42,
+ SQ_GPR_STALL_PIX = 43,
+ SQ_VTX_RS_STALL = 44,
+ SQ_PIX_RS_STALL = 45,
+ SQ_SX_PC_FULL = 46,
+ SQ_SX_EXP_BUFF_FULL = 47,
+ SQ_SX_POS_BUFF_FULL = 48,
+ SQ_INTERP_QUADS = 49,
+ SQ_INTERP_ACTIVE = 50,
+ SQ_IN_PIXEL_STALL = 51,
+ SQ_IN_VTX_STALL = 52,
+ SQ_VTX_CNT = 53,
+ SQ_VTX_VECTOR2 = 54,
+ SQ_VTX_VECTOR3 = 55,
+ SQ_VTX_VECTOR4 = 56,
+ SQ_PIXEL_VECTOR1 = 57,
+ SQ_PIXEL_VECTOR23 = 58,
+ SQ_PIXEL_VECTOR4 = 59,
+ SQ_CONSTANTS_USED_SIMD1 = 60,
+ SQ_CONSTANTS_SENT_SP_SIMD1 = 61,
+ SQ_SX_MEM_EXP_FULL = 62,
+ SQ_ALU0_ACTIVE_VTX_SIMD2 = 63,
+ SQ_ALU1_ACTIVE_VTX_SIMD2 = 64,
+ SQ_ALU0_ACTIVE_PIX_SIMD2 = 65,
+ SQ_ALU1_ACTIVE_PIX_SIMD2 = 66,
+ SQ_ALU0_ACTIVE_VTX_SIMD3 = 67,
+ SQ_PERFCOUNT_VTX_QUAL_TP_DONE = 68,
+ SQ_ALU0_ACTIVE_PIX_SIMD3 = 69,
+ SQ_PERFCOUNT_PIX_QUAL_TP_DONE = 70,
+ SQ_ALU0_FIFO_EMPTY_SIMD2 = 71,
+ SQ_ALU1_FIFO_EMPTY_SIMD2 = 72,
+ SQ_ALU0_FIFO_EMPTY_SIMD3 = 73,
+ SQ_ALU1_FIFO_EMPTY_SIMD3 = 74,
+ SQ_SYNC_ALU_STALL_SIMD2_VTX = 75,
+ SQ_PERFCOUNT_VTX_POP_THREAD = 76,
+ SQ_SYNC_ALU_STALL_SIMD0_PIX = 77,
+ SQ_SYNC_ALU_STALL_SIMD1_PIX = 78,
+ SQ_SYNC_ALU_STALL_SIMD2_PIX = 79,
+ SQ_PERFCOUNT_PIX_POP_THREAD = 80,
+ SQ_SYNC_TEX_STALL_PIX = 81,
+ SQ_SYNC_VC_STALL_PIX = 82,
+ SQ_CONSTANTS_USED_SIMD2 = 83,
+ SQ_CONSTANTS_SENT_SP_SIMD2 = 84,
+ SQ_PERFCOUNT_VTX_DEALLOC_ACK = 85,
+ SQ_PERFCOUNT_PIX_DEALLOC_ACK = 86,
+ SQ_ALU0_FIFO_FULL_SIMD0 = 87,
+ SQ_ALU1_FIFO_FULL_SIMD0 = 88,
+ SQ_ALU0_FIFO_FULL_SIMD1 = 89,
+ SQ_ALU1_FIFO_FULL_SIMD1 = 90,
+ SQ_ALU0_FIFO_FULL_SIMD2 = 91,
+ SQ_ALU1_FIFO_FULL_SIMD2 = 92,
+ SQ_ALU0_FIFO_FULL_SIMD3 = 93,
+ SQ_ALU1_FIFO_FULL_SIMD3 = 94,
+ VC_PERF_STATIC = 95,
+ VC_PERF_STALLED = 96,
+ VC_PERF_STARVED = 97,
+ VC_PERF_SEND = 98,
+ VC_PERF_ACTUAL_STARVED = 99,
+ PIXEL_THREAD_0_ACTIVE = 100,
+ VERTEX_THREAD_0_ACTIVE = 101,
+ PIXEL_THREAD_0_NUMBER = 102,
+ VERTEX_THREAD_0_NUMBER = 103,
+ VERTEX_EVENT_NUMBER = 104,
+ PIXEL_EVENT_NUMBER = 105,
+ PTRBUFF_EF_PUSH = 106,
+ PTRBUFF_EF_POP_EVENT = 107,
+ PTRBUFF_EF_POP_NEW_VTX = 108,
+ PTRBUFF_EF_POP_DEALLOC = 109,
+ PTRBUFF_EF_POP_PVECTOR = 110,
+ PTRBUFF_EF_POP_PVECTOR_X = 111,
+ PTRBUFF_EF_POP_PVECTOR_VNZ = 112,
+ PTRBUFF_PB_DEALLOC = 113,
+ PTRBUFF_PI_STATE_PPB_POP = 114,
+ PTRBUFF_PI_RTR = 115,
+ PTRBUFF_PI_READ_EN = 116,
+ PTRBUFF_PI_BUFF_SWAP = 117,
+ PTRBUFF_SQ_FREE_BUFF = 118,
+ PTRBUFF_SQ_DEC = 119,
+ PTRBUFF_SC_VALID_CNTL_EVENT = 120,
+ PTRBUFF_SC_VALID_IJ_XFER = 121,
+ PTRBUFF_SC_NEW_VECTOR_1_Q = 122,
+ PTRBUFF_QUAL_NEW_VECTOR = 123,
+ PTRBUFF_QUAL_EVENT = 124,
+ PTRBUFF_END_BUFFER = 125,
+ PTRBUFF_FILL_QUAD = 126,
+ VERTS_WRITTEN_SPI = 127,
+ TP_FETCH_INSTR_EXEC = 128,
+ TP_FETCH_INSTR_REQ = 129,
+ TP_DATA_RETURN = 130,
+ SPI_WRITE_CYCLES_SP = 131,
+ SPI_WRITES_SP = 132,
+ SP_ALU_INSTR_EXEC = 133,
+ SP_CONST_ADDR_TO_SQ = 134,
+ SP_PRED_KILLS_TO_SQ = 135,
+ SP_EXPORT_CYCLES_TO_SX = 136,
+ SP_EXPORTS_TO_SX = 137,
+ SQ_CYCLES_ELAPSED = 138,
+ SQ_TCFS_OPT_ALLOC_EXEC = 139,
+ SQ_TCFS_NO_OPT_ALLOC = 140,
+ SQ_ALU0_NO_OPT_ALLOC = 141,
+ SQ_ALU1_NO_OPT_ALLOC = 142,
+ SQ_TCFS_ARB_XFC_CNT = 143,
+ SQ_ALU0_ARB_XFC_CNT = 144,
+ SQ_ALU1_ARB_XFC_CNT = 145,
+ SQ_TCFS_CFS_UPDATE_CNT = 146,
+ SQ_ALU0_CFS_UPDATE_CNT = 147,
+ SQ_ALU1_CFS_UPDATE_CNT = 148,
+ SQ_VTX_PUSH_THREAD_CNT = 149,
+ SQ_VTX_POP_THREAD_CNT = 150,
+ SQ_PIX_PUSH_THREAD_CNT = 151,
+ SQ_PIX_POP_THREAD_CNT = 152,
+ SQ_PIX_TOTAL = 153,
+ SQ_PIX_KILLED = 154,
+} SQ_PERFCNT_SELECT;
+#endif /*ENUMS_SQ_PERFCNT_SELECT_H*/
+
+#ifndef ENUMS_SX_PERFCNT_SELECT_H
+#define ENUMS_SX_PERFCNT_SELECT_H
+typedef enum SX_PERFCNT_SELECT {
+ SX_EXPORT_VECTORS = 0,
+ SX_DUMMY_QUADS = 1,
+ SX_ALPHA_FAIL = 2,
+ SX_RB_QUAD_BUSY = 3,
+ SX_RB_COLOR_BUSY = 4,
+ SX_RB_QUAD_STALL = 5,
+ SX_RB_COLOR_STALL = 6,
+} SX_PERFCNT_SELECT;
+#endif /*ENUMS_SX_PERFCNT_SELECT_H*/
+
+#ifndef ENUMS_Abs_modifier_H
+#define ENUMS_Abs_modifier_H
+typedef enum Abs_modifier {
+ NO_ABS_MOD = 0,
+ ABS_MOD = 1
+} Abs_modifier;
+#endif /*ENUMS_Abs_modifier_H*/
+
+#ifndef ENUMS_Exporting_H
+#define ENUMS_Exporting_H
+typedef enum Exporting {
+ NOT_EXPORTING = 0,
+ EXPORTING = 1
+} Exporting;
+#endif /*ENUMS_Exporting_H*/
+
+#ifndef ENUMS_ScalarOpcode_H
+#define ENUMS_ScalarOpcode_H
+typedef enum ScalarOpcode {
+ ADDs = 0,
+ ADD_PREVs = 1,
+ MULs = 2,
+ MUL_PREVs = 3,
+ MUL_PREV2s = 4,
+ MAXs = 5,
+ MINs = 6,
+ SETEs = 7,
+ SETGTs = 8,
+ SETGTEs = 9,
+ SETNEs = 10,
+ FRACs = 11,
+ TRUNCs = 12,
+ FLOORs = 13,
+ EXP_IEEE = 14,
+ LOG_CLAMP = 15,
+ LOG_IEEE = 16,
+ RECIP_CLAMP = 17,
+ RECIP_FF = 18,
+ RECIP_IEEE = 19,
+ RECIPSQ_CLAMP = 20,
+ RECIPSQ_FF = 21,
+ RECIPSQ_IEEE = 22,
+ MOVAs = 23,
+ MOVA_FLOORs = 24,
+ SUBs = 25,
+ SUB_PREVs = 26,
+ PRED_SETEs = 27,
+ PRED_SETNEs = 28,
+ PRED_SETGTs = 29,
+ PRED_SETGTEs = 30,
+ PRED_SET_INVs = 31,
+ PRED_SET_POPs = 32,
+ PRED_SET_CLRs = 33,
+ PRED_SET_RESTOREs = 34,
+ KILLEs = 35,
+ KILLGTs = 36,
+ KILLGTEs = 37,
+ KILLNEs = 38,
+ KILLONEs = 39,
+ SQRT_IEEE = 40,
+ MUL_CONST_0 = 42,
+ MUL_CONST_1 = 43,
+ ADD_CONST_0 = 44,
+ ADD_CONST_1 = 45,
+ SUB_CONST_0 = 46,
+ SUB_CONST_1 = 47,
+ SIN = 48,
+ COS = 49,
+ RETAIN_PREV = 50,
+} ScalarOpcode;
+#endif /*ENUMS_ScalarOpcode_H*/
+
+#ifndef ENUMS_SwizzleType_H
+#define ENUMS_SwizzleType_H
+typedef enum SwizzleType {
+ NO_SWIZZLE = 0,
+ SHIFT_RIGHT_1 = 1,
+ SHIFT_RIGHT_2 = 2,
+ SHIFT_RIGHT_3 = 3
+} SwizzleType;
+#endif /*ENUMS_SwizzleType_H*/
+
+#ifndef ENUMS_InputModifier_H
+#define ENUMS_InputModifier_H
+typedef enum InputModifier {
+ NIL = 0,
+ NEGATE = 1
+} InputModifier;
+#endif /*ENUMS_InputModifier_H*/
+
+#ifndef ENUMS_PredicateSelect_H
+#define ENUMS_PredicateSelect_H
+typedef enum PredicateSelect {
+ NO_PREDICATION = 0,
+ PREDICATE_QUAD = 1,
+ PREDICATED_2 = 2,
+ PREDICATED_3 = 3
+} PredicateSelect;
+#endif /*ENUMS_PredicateSelect_H*/
+
+#ifndef ENUMS_OperandSelect1_H
+#define ENUMS_OperandSelect1_H
+typedef enum OperandSelect1 {
+ ABSOLUTE_REG = 0,
+ RELATIVE_REG = 1
+} OperandSelect1;
+#endif /*ENUMS_OperandSelect1_H*/
+
+#ifndef ENUMS_VectorOpcode_H
+#define ENUMS_VectorOpcode_H
+typedef enum VectorOpcode {
+ ADDv = 0,
+ MULv = 1,
+ MAXv = 2,
+ MINv = 3,
+ SETEv = 4,
+ SETGTv = 5,
+ SETGTEv = 6,
+ SETNEv = 7,
+ FRACv = 8,
+ TRUNCv = 9,
+ FLOORv = 10,
+ MULADDv = 11,
+ CNDEv = 12,
+ CNDGTEv = 13,
+ CNDGTv = 14,
+ DOT4v = 15,
+ DOT3v = 16,
+ DOT2ADDv = 17,
+ CUBEv = 18,
+ MAX4v = 19,
+ PRED_SETE_PUSHv = 20,
+ PRED_SETNE_PUSHv = 21,
+ PRED_SETGT_PUSHv = 22,
+ PRED_SETGTE_PUSHv = 23,
+ KILLEv = 24,
+ KILLGTv = 25,
+ KILLGTEv = 26,
+ KILLNEv = 27,
+ DSTv = 28,
+ MOVAv = 29,
+} VectorOpcode;
+#endif /*ENUMS_VectorOpcode_H*/
+
+#ifndef ENUMS_OperandSelect0_H
+#define ENUMS_OperandSelect0_H
+typedef enum OperandSelect0 {
+ CONSTANT = 0,
+ NON_CONSTANT = 1
+} OperandSelect0;
+#endif /*ENUMS_OperandSelect0_H*/
+
+#ifndef ENUMS_Ressource_type_H
+#define ENUMS_Ressource_type_H
+typedef enum Ressource_type {
+ ALU = 0,
+ TEXTURE = 1
+} Ressource_type;
+#endif /*ENUMS_Ressource_type_H*/
+
+#ifndef ENUMS_Instruction_serial_H
+#define ENUMS_Instruction_serial_H
+typedef enum Instruction_serial {
+ NOT_SERIAL = 0,
+ SERIAL = 1
+} Instruction_serial;
+#endif /*ENUMS_Instruction_serial_H*/
+
+#ifndef ENUMS_VC_type_H
+#define ENUMS_VC_type_H
+typedef enum VC_type {
+ ALU_TP_REQUEST = 0,
+ VC_REQUEST = 1
+} VC_type;
+#endif /*ENUMS_VC_type_H*/
+
+#ifndef ENUMS_Addressing_H
+#define ENUMS_Addressing_H
+typedef enum Addressing {
+ RELATIVE_ADDR = 0,
+ ABSOLUTE_ADDR = 1
+} Addressing;
+#endif /*ENUMS_Addressing_H*/
+
+#ifndef ENUMS_CFOpcode_H
+#define ENUMS_CFOpcode_H
+typedef enum CFOpcode {
+ NOP = 0,
+ EXECUTE = 1,
+ EXECUTE_END = 2,
+ COND_EXECUTE = 3,
+ COND_EXECUTE_END = 4,
+ COND_PRED_EXECUTE = 5,
+ COND_PRED_EXECUTE_END = 6,
+ LOOP_START = 7,
+ LOOP_END = 8,
+ COND_CALL = 9,
+ RETURN = 10,
+ COND_JMP = 11,
+ ALLOCATE = 12,
+ COND_EXECUTE_PRED_CLEAN = 13,
+ COND_EXECUTE_PRED_CLEAN_END = 14,
+ MARK_VS_FETCH_DONE = 15
+} CFOpcode;
+#endif /*ENUMS_CFOpcode_H*/
+
+#ifndef ENUMS_Allocation_type_H
+#define ENUMS_Allocation_type_H
+typedef enum Allocation_type {
+ SQ_NO_ALLOC = 0,
+ SQ_POSITION = 1,
+ SQ_PARAMETER_PIXEL = 2,
+ SQ_MEMORY = 3
+} Allocation_type;
+#endif /*ENUMS_Allocation_type_H*/
+
+#ifndef ENUMS_TexInstOpcode_H
+#define ENUMS_TexInstOpcode_H
+typedef enum TexInstOpcode {
+ TEX_INST_FETCH = 1,
+ TEX_INST_RESERVED_1 = 2,
+ TEX_INST_RESERVED_2 = 3,
+ TEX_INST_RESERVED_3 = 4,
+ TEX_INST_GET_BORDER_COLOR_FRAC = 16,
+ TEX_INST_GET_COMP_TEX_LOD = 17,
+ TEX_INST_GET_GRADIENTS = 18,
+ TEX_INST_GET_WEIGHTS = 19,
+ TEX_INST_SET_TEX_LOD = 24,
+ TEX_INST_SET_GRADIENTS_H = 25,
+ TEX_INST_SET_GRADIENTS_V = 26,
+ TEX_INST_RESERVED_4 = 27,
+} TexInstOpcode;
+#endif /*ENUMS_TexInstOpcode_H*/
+
+#ifndef ENUMS_Addressmode_H
+#define ENUMS_Addressmode_H
+typedef enum Addressmode {
+ LOGICAL = 0,
+ LOOP_RELATIVE = 1
+} Addressmode;
+#endif /*ENUMS_Addressmode_H*/
+
+#ifndef ENUMS_TexCoordDenorm_H
+#define ENUMS_TexCoordDenorm_H
+typedef enum TexCoordDenorm {
+ TEX_COORD_NORMALIZED = 0,
+ TEX_COORD_UNNORMALIZED = 1
+} TexCoordDenorm;
+#endif /*ENUMS_TexCoordDenorm_H*/
+
+#ifndef ENUMS_SrcSel_H
+#define ENUMS_SrcSel_H
+typedef enum SrcSel {
+ SRC_SEL_X = 0,
+ SRC_SEL_Y = 1,
+ SRC_SEL_Z = 2,
+ SRC_SEL_W = 3
+} SrcSel;
+#endif /*ENUMS_SrcSel_H*/
+
+#ifndef ENUMS_DstSel_H
+#define ENUMS_DstSel_H
+typedef enum DstSel {
+ DST_SEL_X = 0,
+ DST_SEL_Y = 1,
+ DST_SEL_Z = 2,
+ DST_SEL_W = 3,
+ DST_SEL_0 = 4,
+ DST_SEL_1 = 5,
+ DST_SEL_RSVD = 6,
+ DST_SEL_MASK = 7
+} DstSel;
+#endif /*ENUMS_DstSel_H*/
+
+#ifndef ENUMS_MagFilter_H
+#define ENUMS_MagFilter_H
+typedef enum MagFilter {
+ MAG_FILTER_POINT = 0,
+ MAG_FILTER_LINEAR = 1,
+ MAG_FILTER_RESERVED_0 = 2,
+ MAG_FILTER_USE_FETCH_CONST = 3
+} MagFilter;
+#endif /*ENUMS_MagFilter_H*/
+
+#ifndef ENUMS_MinFilter_H
+#define ENUMS_MinFilter_H
+typedef enum MinFilter {
+ MIN_FILTER_POINT = 0,
+ MIN_FILTER_LINEAR = 1,
+ MIN_FILTER_RESERVED_0 = 2,
+ MIN_FILTER_USE_FETCH_CONST = 3
+} MinFilter;
+#endif /*ENUMS_MinFilter_H*/
+
+#ifndef ENUMS_MipFilter_H
+#define ENUMS_MipFilter_H
+typedef enum MipFilter {
+ MIP_FILTER_POINT = 0,
+ MIP_FILTER_LINEAR = 1,
+ MIP_FILTER_BASEMAP = 2,
+ MIP_FILTER_USE_FETCH_CONST = 3
+} MipFilter;
+#endif /*ENUMS_MipFilter_H*/
+
+#ifndef ENUMS_AnisoFilter_H
+#define ENUMS_AnisoFilter_H
+typedef enum AnisoFilter {
+ ANISO_FILTER_DISABLED = 0,
+ ANISO_FILTER_MAX_1_1 = 1,
+ ANISO_FILTER_MAX_2_1 = 2,
+ ANISO_FILTER_MAX_4_1 = 3,
+ ANISO_FILTER_MAX_8_1 = 4,
+ ANISO_FILTER_MAX_16_1 = 5,
+ ANISO_FILTER_USE_FETCH_CONST = 7
+} AnisoFilter;
+#endif /*ENUMS_AnisoFilter_H*/
+
+#ifndef ENUMS_ArbitraryFilter_H
+#define ENUMS_ArbitraryFilter_H
+typedef enum ArbitraryFilter {
+ ARBITRARY_FILTER_2X4_SYM = 0,
+ ARBITRARY_FILTER_2X4_ASYM = 1,
+ ARBITRARY_FILTER_4X2_SYM = 2,
+ ARBITRARY_FILTER_4X2_ASYM = 3,
+ ARBITRARY_FILTER_4X4_SYM = 4,
+ ARBITRARY_FILTER_4X4_ASYM = 5,
+ ARBITRARY_FILTER_USE_FETCH_CONST = 7
+} ArbitraryFilter;
+#endif /*ENUMS_ArbitraryFilter_H*/
+
+#ifndef ENUMS_VolMagFilter_H
+#define ENUMS_VolMagFilter_H
+typedef enum VolMagFilter {
+ VOL_MAG_FILTER_POINT = 0,
+ VOL_MAG_FILTER_LINEAR = 1,
+ VOL_MAG_FILTER_USE_FETCH_CONST = 3
+} VolMagFilter;
+#endif /*ENUMS_VolMagFilter_H*/
+
+#ifndef ENUMS_VolMinFilter_H
+#define ENUMS_VolMinFilter_H
+typedef enum VolMinFilter {
+ VOL_MIN_FILTER_POINT = 0,
+ VOL_MIN_FILTER_LINEAR = 1,
+ VOL_MIN_FILTER_USE_FETCH_CONST = 3
+} VolMinFilter;
+#endif /*ENUMS_VolMinFilter_H*/
+
+#ifndef ENUMS_PredSelect_H
+#define ENUMS_PredSelect_H
+typedef enum PredSelect {
+ NOT_PREDICATED = 0,
+ PREDICATED = 1
+} PredSelect;
+#endif /*ENUMS_PredSelect_H*/
+
+#ifndef ENUMS_SampleLocation_H
+#define ENUMS_SampleLocation_H
+typedef enum SampleLocation {
+ SAMPLE_CENTROID = 0,
+ SAMPLE_CENTER = 1
+} SampleLocation;
+#endif /*ENUMS_SampleLocation_H*/
+
+#ifndef ENUMS_VertexMode_H
+#define ENUMS_VertexMode_H
+typedef enum VertexMode {
+ POSITION_1_VECTOR = 0,
+ POSITION_2_VECTORS_UNUSED = 1,
+ POSITION_2_VECTORS_SPRITE = 2,
+ POSITION_2_VECTORS_EDGE = 3,
+ POSITION_2_VECTORS_KILL = 4,
+ POSITION_2_VECTORS_SPRITE_KILL = 5,
+ POSITION_2_VECTORS_EDGE_KILL = 6,
+ MULTIPASS = 7
+} VertexMode;
+#endif /*ENUMS_VertexMode_H*/
+
+#ifndef ENUMS_Sample_Cntl_H
+#define ENUMS_Sample_Cntl_H
+typedef enum Sample_Cntl {
+ CENTROIDS_ONLY = 0,
+ CENTERS_ONLY = 1,
+ CENTROIDS_AND_CENTERS = 2,
+ UNDEF = 3
+} Sample_Cntl;
+#endif /*ENUMS_Sample_Cntl_H*/
+
+/*******************************************************
+ * SX Enums
+ *******************************************************/
+/*******************************************************
+ * MH Enums
+ *******************************************************/
+#ifndef ENUMS_MhPerfEncode_H
+#define ENUMS_MhPerfEncode_H
+typedef enum MhPerfEncode {
+ CP_R0_REQUESTS = 0,
+ CP_R1_REQUESTS = 1,
+ CP_R2_REQUESTS = 2,
+ CP_R3_REQUESTS = 3,
+ CP_R4_REQUESTS = 4,
+ CP_TOTAL_READ_REQUESTS = 5,
+ CP_TOTAL_WRITE_REQUESTS = 6,
+ CP_TOTAL_REQUESTS = 7,
+ CP_DATA_BYTES_WRITTEN = 8,
+ CP_WRITE_CLEAN_RESPONSES = 9,
+ CP_R0_READ_BURSTS_RECEIVED = 10,
+ CP_R1_READ_BURSTS_RECEIVED = 11,
+ CP_R2_READ_BURSTS_RECEIVED = 12,
+ CP_R3_READ_BURSTS_RECEIVED = 13,
+ CP_R4_READ_BURSTS_RECEIVED = 14,
+ CP_TOTAL_READ_BURSTS_RECEIVED = 15,
+ CP_R0_DATA_BEATS_READ = 16,
+ CP_R1_DATA_BEATS_READ = 17,
+ CP_R2_DATA_BEATS_READ = 18,
+ CP_R3_DATA_BEATS_READ = 19,
+ CP_R4_DATA_BEATS_READ = 20,
+ CP_TOTAL_DATA_BEATS_READ = 21,
+ VGT_R0_REQUESTS = 22,
+ VGT_R1_REQUESTS = 23,
+ VGT_TOTAL_REQUESTS = 24,
+ VGT_R0_READ_BURSTS_RECEIVED = 25,
+ VGT_R1_READ_BURSTS_RECEIVED = 26,
+ VGT_TOTAL_READ_BURSTS_RECEIVED = 27,
+ VGT_R0_DATA_BEATS_READ = 28,
+ VGT_R1_DATA_BEATS_READ = 29,
+ VGT_TOTAL_DATA_BEATS_READ = 30,
+ TC_TOTAL_REQUESTS = 31,
+ TC_ROQ_REQUESTS = 32,
+ TC_INFO_SENT = 33,
+ TC_READ_BURSTS_RECEIVED = 34,
+ TC_DATA_BEATS_READ = 35,
+ TCD_BURSTS_READ = 36,
+ RB_REQUESTS = 37,
+ RB_DATA_BYTES_WRITTEN = 38,
+ RB_WRITE_CLEAN_RESPONSES = 39,
+ AXI_READ_REQUESTS_ID_0 = 40,
+ AXI_READ_REQUESTS_ID_1 = 41,
+ AXI_READ_REQUESTS_ID_2 = 42,
+ AXI_READ_REQUESTS_ID_3 = 43,
+ AXI_READ_REQUESTS_ID_4 = 44,
+ AXI_READ_REQUESTS_ID_5 = 45,
+ AXI_READ_REQUESTS_ID_6 = 46,
+ AXI_READ_REQUESTS_ID_7 = 47,
+ AXI_TOTAL_READ_REQUESTS = 48,
+ AXI_WRITE_REQUESTS_ID_0 = 49,
+ AXI_WRITE_REQUESTS_ID_1 = 50,
+ AXI_WRITE_REQUESTS_ID_2 = 51,
+ AXI_WRITE_REQUESTS_ID_3 = 52,
+ AXI_WRITE_REQUESTS_ID_4 = 53,
+ AXI_WRITE_REQUESTS_ID_5 = 54,
+ AXI_WRITE_REQUESTS_ID_6 = 55,
+ AXI_WRITE_REQUESTS_ID_7 = 56,
+ AXI_TOTAL_WRITE_REQUESTS = 57,
+ AXI_TOTAL_REQUESTS_ID_0 = 58,
+ AXI_TOTAL_REQUESTS_ID_1 = 59,
+ AXI_TOTAL_REQUESTS_ID_2 = 60,
+ AXI_TOTAL_REQUESTS_ID_3 = 61,
+ AXI_TOTAL_REQUESTS_ID_4 = 62,
+ AXI_TOTAL_REQUESTS_ID_5 = 63,
+ AXI_TOTAL_REQUESTS_ID_6 = 64,
+ AXI_TOTAL_REQUESTS_ID_7 = 65,
+ AXI_TOTAL_REQUESTS = 66,
+ AXI_READ_CHANNEL_BURSTS_ID_0 = 67,
+ AXI_READ_CHANNEL_BURSTS_ID_1 = 68,
+ AXI_READ_CHANNEL_BURSTS_ID_2 = 69,
+ AXI_READ_CHANNEL_BURSTS_ID_3 = 70,
+ AXI_READ_CHANNEL_BURSTS_ID_4 = 71,
+ AXI_READ_CHANNEL_BURSTS_ID_5 = 72,
+ AXI_READ_CHANNEL_BURSTS_ID_6 = 73,
+ AXI_READ_CHANNEL_BURSTS_ID_7 = 74,
+ AXI_READ_CHANNEL_TOTAL_BURSTS = 75,
+ AXI_READ_CHANNEL_DATA_BEATS_READ_ID_0 = 76,
+ AXI_READ_CHANNEL_DATA_BEATS_READ_ID_1 = 77,
+ AXI_READ_CHANNEL_DATA_BEATS_READ_ID_2 = 78,
+ AXI_READ_CHANNEL_DATA_BEATS_READ_ID_3 = 79,
+ AXI_READ_CHANNEL_DATA_BEATS_READ_ID_4 = 80,
+ AXI_READ_CHANNEL_DATA_BEATS_READ_ID_5 = 81,
+ AXI_READ_CHANNEL_DATA_BEATS_READ_ID_6 = 82,
+ AXI_READ_CHANNEL_DATA_BEATS_READ_ID_7 = 83,
+ AXI_READ_CHANNEL_TOTAL_DATA_BEATS_READ = 84,
+ AXI_WRITE_CHANNEL_BURSTS_ID_0 = 85,
+ AXI_WRITE_CHANNEL_BURSTS_ID_1 = 86,
+ AXI_WRITE_CHANNEL_BURSTS_ID_2 = 87,
+ AXI_WRITE_CHANNEL_BURSTS_ID_3 = 88,
+ AXI_WRITE_CHANNEL_BURSTS_ID_4 = 89,
+ AXI_WRITE_CHANNEL_BURSTS_ID_5 = 90,
+ AXI_WRITE_CHANNEL_BURSTS_ID_6 = 91,
+ AXI_WRITE_CHANNEL_BURSTS_ID_7 = 92,
+ AXI_WRITE_CHANNEL_TOTAL_BURSTS = 93,
+ AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_0 = 94,
+ AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_1 = 95,
+ AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_2 = 96,
+ AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_3 = 97,
+ AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_4 = 98,
+ AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_5 = 99,
+ AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_6 = 100,
+ AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_7 = 101,
+ AXI_WRITE_CHANNEL_TOTAL_DATA_BYTES_WRITTEN = 102,
+ AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_0 = 103,
+ AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_1 = 104,
+ AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_2 = 105,
+ AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_3 = 106,
+ AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_4 = 107,
+ AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_5 = 108,
+ AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_6 = 109,
+ AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_7 = 110,
+ AXI_WRITE_RESPONSE_CHANNEL_TOTAL_RESPONSES = 111,
+ TOTAL_MMU_MISSES = 112,
+ MMU_READ_MISSES = 113,
+ MMU_WRITE_MISSES = 114,
+ TOTAL_MMU_HITS = 115,
+ MMU_READ_HITS = 116,
+ MMU_WRITE_HITS = 117,
+ SPLIT_MODE_TC_HITS = 118,
+ SPLIT_MODE_TC_MISSES = 119,
+ SPLIT_MODE_NON_TC_HITS = 120,
+ SPLIT_MODE_NON_TC_MISSES = 121,
+ STALL_AWAITING_TLB_MISS_FETCH = 122,
+ MMU_TLB_MISS_READ_BURSTS_RECEIVED = 123,
+ MMU_TLB_MISS_DATA_BEATS_READ = 124,
+ CP_CYCLES_HELD_OFF = 125,
+ VGT_CYCLES_HELD_OFF = 126,
+ TC_CYCLES_HELD_OFF = 127,
+ TC_ROQ_CYCLES_HELD_OFF = 128,
+ TC_CYCLES_HELD_OFF_TCD_FULL = 129,
+ RB_CYCLES_HELD_OFF = 130,
+ TOTAL_CYCLES_ANY_CLNT_HELD_OFF = 131,
+ TLB_MISS_CYCLES_HELD_OFF = 132,
+ AXI_READ_REQUEST_HELD_OFF = 133,
+ AXI_WRITE_REQUEST_HELD_OFF = 134,
+ AXI_REQUEST_HELD_OFF = 135,
+ AXI_REQUEST_HELD_OFF_INFLIGHT_LIMIT = 136,
+ AXI_WRITE_DATA_HELD_OFF = 137,
+ CP_SAME_PAGE_BANK_REQUESTS = 138,
+ VGT_SAME_PAGE_BANK_REQUESTS = 139,
+ TC_SAME_PAGE_BANK_REQUESTS = 140,
+ TC_ARB_HOLD_SAME_PAGE_BANK_REQUESTS = 141,
+ RB_SAME_PAGE_BANK_REQUESTS = 142,
+ TOTAL_SAME_PAGE_BANK_REQUESTS = 143,
+ CP_SAME_PAGE_BANK_REQUESTS_KILLED_FAIRNESS_LIMIT = 144,
+ VGT_SAME_PAGE_BANK_REQUESTS_KILLED_FAIRNESS_LIMIT = 145,
+ TC_SAME_PAGE_BANK_REQUESTS_KILLED_FAIRNESS_LIMIT = 146,
+ RB_SAME_PAGE_BANK_REQUESTS_KILLED_FAIRNESS_LIMIT = 147,
+ TOTAL_SAME_PAGE_BANK_KILLED_FAIRNESS_LIMIT = 148,
+ TOTAL_MH_READ_REQUESTS = 149,
+ TOTAL_MH_WRITE_REQUESTS = 150,
+ TOTAL_MH_REQUESTS = 151,
+ MH_BUSY = 152,
+ CP_NTH_ACCESS_SAME_PAGE_BANK_SEQUENCE = 153,
+ VGT_NTH_ACCESS_SAME_PAGE_BANK_SEQUENCE = 154,
+ TC_NTH_ACCESS_SAME_PAGE_BANK_SEQUENCE = 155,
+ RB_NTH_ACCESS_SAME_PAGE_BANK_SEQUENCE = 156,
+ TC_ROQ_N_VALID_ENTRIES = 157,
+ ARQ_N_ENTRIES = 158,
+ WDB_N_ENTRIES = 159,
+ MH_READ_LATENCY_OUTST_REQ_SUM = 160,
+ MC_READ_LATENCY_OUTST_REQ_SUM = 161,
+ MC_TOTAL_READ_REQUESTS = 162,
+ ELAPSED_CYCLES_MH_GATED_CLK = 163,
+ ELAPSED_CLK_CYCLES = 164,
+ CP_W_16B_REQUESTS = 165,
+ CP_W_32B_REQUESTS = 166,
+ TC_16B_REQUESTS = 167,
+ TC_32B_REQUESTS = 168,
+ PA_REQUESTS = 169,
+ PA_DATA_BYTES_WRITTEN = 170,
+ PA_WRITE_CLEAN_RESPONSES = 171,
+ PA_CYCLES_HELD_OFF = 172,
+ AXI_READ_REQUEST_DATA_BEATS_ID_0 = 173,
+ AXI_READ_REQUEST_DATA_BEATS_ID_1 = 174,
+ AXI_READ_REQUEST_DATA_BEATS_ID_2 = 175,
+ AXI_READ_REQUEST_DATA_BEATS_ID_3 = 176,
+ AXI_READ_REQUEST_DATA_BEATS_ID_4 = 177,
+ AXI_READ_REQUEST_DATA_BEATS_ID_5 = 178,
+ AXI_READ_REQUEST_DATA_BEATS_ID_6 = 179,
+ AXI_READ_REQUEST_DATA_BEATS_ID_7 = 180,
+ AXI_TOTAL_READ_REQUEST_DATA_BEATS = 181,
+} MhPerfEncode;
+#endif /*ENUMS_MhPerfEncode_H*/
+
+#ifndef ENUMS_MmuClntBeh_H
+#define ENUMS_MmuClntBeh_H
+typedef enum MmuClntBeh {
+ BEH_NEVR = 0,
+ BEH_TRAN_RNG = 1,
+ BEH_TRAN_FLT = 2,
+} MmuClntBeh;
+#endif /*ENUMS_MmuClntBeh_H*/
+
+/*******************************************************
+ * RBBM Enums
+ *******************************************************/
+#ifndef ENUMS_RBBM_PERFCOUNT1_SEL_H
+#define ENUMS_RBBM_PERFCOUNT1_SEL_H
+typedef enum RBBM_PERFCOUNT1_SEL {
+ RBBM1_COUNT = 0,
+ RBBM1_NRT_BUSY = 1,
+ RBBM1_RB_BUSY = 2,
+ RBBM1_SQ_CNTX0_BUSY = 3,
+ RBBM1_SQ_CNTX17_BUSY = 4,
+ RBBM1_VGT_BUSY = 5,
+ RBBM1_VGT_NODMA_BUSY = 6,
+ RBBM1_PA_BUSY = 7,
+ RBBM1_SC_CNTX_BUSY = 8,
+ RBBM1_TPC_BUSY = 9,
+ RBBM1_TC_BUSY = 10,
+ RBBM1_SX_BUSY = 11,
+ RBBM1_CP_COHER_BUSY = 12,
+ RBBM1_CP_NRT_BUSY = 13,
+ RBBM1_GFX_IDLE_STALL = 14,
+ RBBM1_INTERRUPT = 15,
+} RBBM_PERFCOUNT1_SEL;
+#endif /*ENUMS_RBBM_PERFCOUNT1_SEL_H*/
+
+/*******************************************************
+ * CP Enums
+ *******************************************************/
+#ifndef ENUMS_CP_PERFCOUNT_SEL_H
+#define ENUMS_CP_PERFCOUNT_SEL_H
+typedef enum CP_PERFCOUNT_SEL {
+ ALWAYS_COUNT = 0,
+ TRANS_FIFO_FULL = 1,
+ TRANS_FIFO_AF = 2,
+ RCIU_PFPTRANS_WAIT = 3,
+ Reserved_04 = 4,
+ Reserved_05 = 5,
+ RCIU_NRTTRANS_WAIT = 6,
+ Reserved_07 = 7,
+ CSF_NRT_READ_WAIT = 8,
+ CSF_I1_FIFO_FULL = 9,
+ CSF_I2_FIFO_FULL = 10,
+ CSF_ST_FIFO_FULL = 11,
+ Reserved_12 = 12,
+ CSF_RING_ROQ_FULL = 13,
+ CSF_I1_ROQ_FULL = 14,
+ CSF_I2_ROQ_FULL = 15,
+ CSF_ST_ROQ_FULL = 16,
+ Reserved_17 = 17,
+ MIU_TAG_MEM_FULL = 18,
+ MIU_WRITECLEAN = 19,
+ Reserved_20 = 20,
+ Reserved_21 = 21,
+ MIU_NRT_WRITE_STALLED = 22,
+ MIU_NRT_READ_STALLED = 23,
+ ME_WRITE_CONFIRM_FIFO_FULL = 24,
+ ME_VS_DEALLOC_FIFO_FULL = 25,
+ ME_PS_DEALLOC_FIFO_FULL = 26,
+ ME_REGS_VS_EVENT_FIFO_FULL = 27,
+ ME_REGS_PS_EVENT_FIFO_FULL = 28,
+ ME_REGS_CF_EVENT_FIFO_FULL = 29,
+ ME_MICRO_RB_STARVED = 30,
+ ME_MICRO_I1_STARVED = 31,
+ ME_MICRO_I2_STARVED = 32,
+ ME_MICRO_ST_STARVED = 33,
+ Reserved_34 = 34,
+ Reserved_35 = 35,
+ Reserved_36 = 36,
+ Reserved_37 = 37,
+ Reserved_38 = 38,
+ Reserved_39 = 39,
+ RCIU_RBBM_DWORD_SENT = 40,
+ ME_BUSY_CLOCKS = 41,
+ ME_WAIT_CONTEXT_AVAIL = 42,
+ PFP_TYPE0_PACKET = 43,
+ PFP_TYPE3_PACKET = 44,
+ CSF_RB_WPTR_NEQ_RPTR = 45,
+ CSF_I1_SIZE_NEQ_ZERO = 46,
+ CSF_I2_SIZE_NEQ_ZERO = 47,
+ CSF_RBI1I2_FETCHING = 48,
+ Reserved_49 = 49,
+ Reserved_50 = 50,
+ Reserved_51 = 51,
+ Reserved_52 = 52,
+ Reserved_53 = 53,
+ Reserved_54 = 54,
+ Reserved_55 = 55,
+ Reserved_56 = 56,
+ Reserved_57 = 57,
+ Reserved_58 = 58,
+ Reserved_59 = 59,
+ Reserved_60 = 60,
+ Reserved_61 = 61,
+ Reserved_62 = 62,
+ Reserved_63 = 63
+} CP_PERFCOUNT_SEL;
+#endif /*ENUMS_CP_PERFCOUNT_SEL_H*/
+
+/*******************************************************
+ * SC Enums
+ *******************************************************/
+/*******************************************************
+ * BC Enums
+ *******************************************************/
+#ifndef ENUMS_ColorformatX_H
+#define ENUMS_ColorformatX_H
+typedef enum ColorformatX {
+ COLORX_4_4_4_4 = 0,
+ COLORX_1_5_5_5 = 1,
+ COLORX_5_6_5 = 2,
+ COLORX_8 = 3,
+ COLORX_8_8 = 4,
+ COLORX_8_8_8_8 = 5,
+ COLORX_S8_8_8_8 = 6,
+ COLORX_16_FLOAT = 7,
+ COLORX_16_16_FLOAT = 8,
+ COLORX_16_16_16_16_FLOAT = 9,
+ COLORX_32_FLOAT = 10,
+ COLORX_32_32_FLOAT = 11,
+ COLORX_32_32_32_32_FLOAT = 12,
+ COLORX_2_3_3 = 13,
+ COLORX_8_8_8 = 14,
+} ColorformatX;
+#endif /*ENUMS_ColorformatX_H*/
+
+#ifndef ENUMS_DepthformatX_H
+#define ENUMS_DepthformatX_H
+typedef enum DepthformatX {
+ DEPTHX_16 = 0,
+ DEPTHX_24_8 = 1
+} DepthformatX;
+#endif /*ENUMS_DepthformatX_H*/
+
+#ifndef ENUMS_CompareFrag_H
+#define ENUMS_CompareFrag_H
+typedef enum CompareFrag {
+ FRAG_NEVER = 0,
+ FRAG_LESS = 1,
+ FRAG_EQUAL = 2,
+ FRAG_LEQUAL = 3,
+ FRAG_GREATER = 4,
+ FRAG_NOTEQUAL = 5,
+ FRAG_GEQUAL = 6,
+ FRAG_ALWAYS = 7
+} CompareFrag;
+#endif /*ENUMS_CompareFrag_H*/
+
+#ifndef ENUMS_CompareRef_H
+#define ENUMS_CompareRef_H
+typedef enum CompareRef {
+ REF_NEVER = 0,
+ REF_LESS = 1,
+ REF_EQUAL = 2,
+ REF_LEQUAL = 3,
+ REF_GREATER = 4,
+ REF_NOTEQUAL = 5,
+ REF_GEQUAL = 6,
+ REF_ALWAYS = 7
+} CompareRef;
+#endif /*ENUMS_CompareRef_H*/
+
+#ifndef ENUMS_StencilOp_H
+#define ENUMS_StencilOp_H
+typedef enum StencilOp {
+ STENCIL_KEEP = 0,
+ STENCIL_ZERO = 1,
+ STENCIL_REPLACE = 2,
+ STENCIL_INCR_CLAMP = 3,
+ STENCIL_DECR_CLAMP = 4,
+ STENCIL_INVERT = 5,
+ STENCIL_INCR_WRAP = 6,
+ STENCIL_DECR_WRAP = 7
+} StencilOp;
+#endif /*ENUMS_StencilOp_H*/
+
+#ifndef ENUMS_BlendOpX_H
+#define ENUMS_BlendOpX_H
+typedef enum BlendOpX {
+ BLENDX_ZERO = 0,
+ BLENDX_ONE = 1,
+ BLENDX_SRC_COLOR = 4,
+ BLENDX_ONE_MINUS_SRC_COLOR = 5,
+ BLENDX_SRC_ALPHA = 6,
+ BLENDX_ONE_MINUS_SRC_ALPHA = 7,
+ BLENDX_DST_COLOR = 8,
+ BLENDX_ONE_MINUS_DST_COLOR = 9,
+ BLENDX_DST_ALPHA = 10,
+ BLENDX_ONE_MINUS_DST_ALPHA = 11,
+ BLENDX_CONSTANT_COLOR = 12,
+ BLENDX_ONE_MINUS_CONSTANT_COLOR = 13,
+ BLENDX_CONSTANT_ALPHA = 14,
+ BLENDX_ONE_MINUS_CONSTANT_ALPHA = 15,
+ BLENDX_SRC_ALPHA_SATURATE = 16,
+} BlendOpX;
+#endif /*ENUMS_BlendOpX_H*/
+
+#ifndef ENUMS_CombFuncX_H
+#define ENUMS_CombFuncX_H
+typedef enum CombFuncX {
+ COMB_DST_PLUS_SRC = 0,
+ COMB_SRC_MINUS_DST = 1,
+ COMB_MIN_DST_SRC = 2,
+ COMB_MAX_DST_SRC = 3,
+ COMB_DST_MINUS_SRC = 4,
+ COMB_DST_PLUS_SRC_BIAS = 5,
+} CombFuncX;
+#endif /*ENUMS_CombFuncX_H*/
+
+#ifndef ENUMS_DitherModeX_H
+#define ENUMS_DitherModeX_H
+typedef enum DitherModeX {
+ DITHER_DISABLE = 0,
+ DITHER_ALWAYS = 1,
+ DITHER_IF_ALPHA_OFF = 2,
+} DitherModeX;
+#endif /*ENUMS_DitherModeX_H*/
+
+#ifndef ENUMS_DitherTypeX_H
+#define ENUMS_DitherTypeX_H
+typedef enum DitherTypeX {
+ DITHER_PIXEL = 0,
+ DITHER_SUBPIXEL = 1,
+} DitherTypeX;
+#endif /*ENUMS_DitherTypeX_H*/
+
+#ifndef ENUMS_EdramMode_H
+#define ENUMS_EdramMode_H
+typedef enum EdramMode {
+ EDRAM_NOP = 0,
+ COLOR_DEPTH = 4,
+ DEPTH_ONLY = 5,
+ EDRAM_COPY = 6,
+} EdramMode;
+#endif /*ENUMS_EdramMode_H*/
+
+#ifndef ENUMS_SurfaceEndian_H
+#define ENUMS_SurfaceEndian_H
+typedef enum SurfaceEndian {
+ ENDIAN_NONE = 0,
+ ENDIAN_8IN16 = 1,
+ ENDIAN_8IN32 = 2,
+ ENDIAN_16IN32 = 3,
+ ENDIAN_8IN64 = 4,
+ ENDIAN_8IN128 = 5,
+} SurfaceEndian;
+#endif /*ENUMS_SurfaceEndian_H*/
+
+#ifndef ENUMS_EdramSizeX_H
+#define ENUMS_EdramSizeX_H
+typedef enum EdramSizeX {
+ EDRAMSIZE_16KB = 0,
+ EDRAMSIZE_32KB = 1,
+ EDRAMSIZE_64KB = 2,
+ EDRAMSIZE_128KB = 3,
+ EDRAMSIZE_256KB = 4,
+ EDRAMSIZE_512KB = 5,
+ EDRAMSIZE_1MB = 6,
+ EDRAMSIZE_2MB = 7,
+ EDRAMSIZE_4MB = 8,
+ EDRAMSIZE_8MB = 9,
+ EDRAMSIZE_16MB = 10,
+} EdramSizeX;
+#endif /*ENUMS_EdramSizeX_H*/
+
+#ifndef ENUMS_RB_PERFCNT_SELECT_H
+#define ENUMS_RB_PERFCNT_SELECT_H
+typedef enum RB_PERFCNT_SELECT {
+ RBPERF_CNTX_BUSY = 0,
+ RBPERF_CNTX_BUSY_MAX = 1,
+ RBPERF_SX_QUAD_STARVED = 2,
+ RBPERF_SX_QUAD_STARVED_MAX = 3,
+ RBPERF_GA_GC_CH0_SYS_REQ = 4,
+ RBPERF_GA_GC_CH0_SYS_REQ_MAX = 5,
+ RBPERF_GA_GC_CH1_SYS_REQ = 6,
+ RBPERF_GA_GC_CH1_SYS_REQ_MAX = 7,
+ RBPERF_MH_STARVED = 8,
+ RBPERF_MH_STARVED_MAX = 9,
+ RBPERF_AZ_BC_COLOR_BUSY = 10,
+ RBPERF_AZ_BC_COLOR_BUSY_MAX = 11,
+ RBPERF_AZ_BC_Z_BUSY = 12,
+ RBPERF_AZ_BC_Z_BUSY_MAX = 13,
+ RBPERF_RB_SC_TILE_RTR_N = 14,
+ RBPERF_RB_SC_TILE_RTR_N_MAX = 15,
+ RBPERF_RB_SC_SAMP_RTR_N = 16,
+ RBPERF_RB_SC_SAMP_RTR_N_MAX = 17,
+ RBPERF_RB_SX_QUAD_RTR_N = 18,
+ RBPERF_RB_SX_QUAD_RTR_N_MAX = 19,
+ RBPERF_RB_SX_COLOR_RTR_N = 20,
+ RBPERF_RB_SX_COLOR_RTR_N_MAX = 21,
+ RBPERF_RB_SC_SAMP_LZ_BUSY = 22,
+ RBPERF_RB_SC_SAMP_LZ_BUSY_MAX = 23,
+ RBPERF_ZXP_STALL = 24,
+ RBPERF_ZXP_STALL_MAX = 25,
+ RBPERF_EVENT_PENDING = 26,
+ RBPERF_EVENT_PENDING_MAX = 27,
+ RBPERF_RB_MH_VALID = 28,
+ RBPERF_RB_MH_VALID_MAX = 29,
+ RBPERF_SX_RB_QUAD_SEND = 30,
+ RBPERF_SX_RB_COLOR_SEND = 31,
+ RBPERF_SC_RB_TILE_SEND = 32,
+ RBPERF_SC_RB_SAMPLE_SEND = 33,
+ RBPERF_SX_RB_MEM_EXPORT = 34,
+ RBPERF_SX_RB_QUAD_EVENT = 35,
+ RBPERF_SC_RB_TILE_EVENT_FILTERED = 36,
+ RBPERF_SC_RB_TILE_EVENT_ALL = 37,
+ RBPERF_RB_SC_EZ_SEND = 38,
+ RBPERF_RB_SX_INDEX_SEND = 39,
+ RBPERF_GMEM_INTFO_RD = 40,
+ RBPERF_GMEM_INTF1_RD = 41,
+ RBPERF_GMEM_INTFO_WR = 42,
+ RBPERF_GMEM_INTF1_WR = 43,
+ RBPERF_RB_CP_CONTEXT_DONE = 44,
+ RBPERF_RB_CP_CACHE_FLUSH = 45,
+ RBPERF_ZPASS_DONE = 46,
+ RBPERF_ZCMD_VALID = 47,
+ RBPERF_CCMD_VALID = 48,
+ RBPERF_ACCUM_GRANT = 49,
+ RBPERF_ACCUM_C0_GRANT = 50,
+ RBPERF_ACCUM_C1_GRANT = 51,
+ RBPERF_ACCUM_FULL_BE_WR = 52,
+ RBPERF_ACCUM_REQUEST_NO_GRANT = 53,
+ RBPERF_ACCUM_TIMEOUT_PULSE = 54,
+ RBPERF_ACCUM_LIN_TIMEOUT_PULSE = 55,
+ RBPERF_ACCUM_CAM_HIT_FLUSHING = 56,
+} RB_PERFCNT_SELECT;
+#endif /*ENUMS_RB_PERFCNT_SELECT_H*/
+
+#ifndef ENUMS_DepthFormat_H
+#define ENUMS_DepthFormat_H
+typedef enum DepthFormat {
+ DEPTH_24_8 = 22,
+ DEPTH_24_8_FLOAT = 23,
+ DEPTH_16 = 24,
+} DepthFormat;
+#endif /*ENUMS_DepthFormat_H*/
+
+#ifndef ENUMS_SurfaceSwap_H
+#define ENUMS_SurfaceSwap_H
+typedef enum SurfaceSwap {
+ SWAP_LOWRED = 0,
+ SWAP_LOWBLUE = 1
+} SurfaceSwap;
+#endif /*ENUMS_SurfaceSwap_H*/
+
+#ifndef ENUMS_DepthArray_H
+#define ENUMS_DepthArray_H
+typedef enum DepthArray {
+ ARRAY_2D_ALT_DEPTH = 0,
+ ARRAY_2D_DEPTH = 1,
+} DepthArray;
+#endif /*ENUMS_DepthArray_H*/
+
+#ifndef ENUMS_ColorArray_H
+#define ENUMS_ColorArray_H
+typedef enum ColorArray {
+ ARRAY_2D_ALT_COLOR = 0,
+ ARRAY_2D_COLOR = 1,
+ ARRAY_3D_SLICE_COLOR = 3
+} ColorArray;
+#endif /*ENUMS_ColorArray_H*/
+
+#ifndef ENUMS_ColorFormat_H
+#define ENUMS_ColorFormat_H
+typedef enum ColorFormat {
+ COLOR_8 = 2,
+ COLOR_1_5_5_5 = 3,
+ COLOR_5_6_5 = 4,
+ COLOR_6_5_5 = 5,
+ COLOR_8_8_8_8 = 6,
+ COLOR_2_10_10_10 = 7,
+ COLOR_8_A = 8,
+ COLOR_8_B = 9,
+ COLOR_8_8 = 10,
+ COLOR_8_8_8 = 11,
+ COLOR_8_8_8_8_A = 14,
+ COLOR_4_4_4_4 = 15,
+ COLOR_10_11_11 = 16,
+ COLOR_11_11_10 = 17,
+ COLOR_16 = 24,
+ COLOR_16_16 = 25,
+ COLOR_16_16_16_16 = 26,
+ COLOR_16_FLOAT = 30,
+ COLOR_16_16_FLOAT = 31,
+ COLOR_16_16_16_16_FLOAT = 32,
+ COLOR_32_FLOAT = 36,
+ COLOR_32_32_FLOAT = 37,
+ COLOR_32_32_32_32_FLOAT = 38,
+ COLOR_2_3_3 = 39,
+} ColorFormat;
+#endif /*ENUMS_ColorFormat_H*/
+
+#ifndef ENUMS_SurfaceNumber_H
+#define ENUMS_SurfaceNumber_H
+typedef enum SurfaceNumber {
+ NUMBER_UREPEAT = 0,
+ NUMBER_SREPEAT = 1,
+ NUMBER_UINTEGER = 2,
+ NUMBER_SINTEGER = 3,
+ NUMBER_GAMMA = 4,
+ NUMBER_FIXED = 5,
+ NUMBER_FLOAT = 7
+} SurfaceNumber;
+#endif /*ENUMS_SurfaceNumber_H*/
+
+#ifndef ENUMS_SurfaceFormat_H
+#define ENUMS_SurfaceFormat_H
+typedef enum SurfaceFormat {
+ FMT_1_REVERSE = 0,
+ FMT_1 = 1,
+ FMT_8 = 2,
+ FMT_1_5_5_5 = 3,
+ FMT_5_6_5 = 4,
+ FMT_6_5_5 = 5,
+ FMT_8_8_8_8 = 6,
+ FMT_2_10_10_10 = 7,
+ FMT_8_A = 8,
+ FMT_8_B = 9,
+ FMT_8_8 = 10,
+ FMT_Cr_Y1_Cb_Y0 = 11,
+ FMT_Y1_Cr_Y0_Cb = 12,
+ FMT_5_5_5_1 = 13,
+ FMT_8_8_8_8_A = 14,
+ FMT_4_4_4_4 = 15,
+ FMT_8_8_8 = 16,
+ FMT_DXT1 = 18,
+ FMT_DXT2_3 = 19,
+ FMT_DXT4_5 = 20,
+ FMT_10_10_10_2 = 21,
+ FMT_24_8 = 22,
+ FMT_16 = 24,
+ FMT_16_16 = 25,
+ FMT_16_16_16_16 = 26,
+ FMT_16_EXPAND = 27,
+ FMT_16_16_EXPAND = 28,
+ FMT_16_16_16_16_EXPAND = 29,
+ FMT_16_FLOAT = 30,
+ FMT_16_16_FLOAT = 31,
+ FMT_16_16_16_16_FLOAT = 32,
+ FMT_32 = 33,
+ FMT_32_32 = 34,
+ FMT_32_32_32_32 = 35,
+ FMT_32_FLOAT = 36,
+ FMT_32_32_FLOAT = 37,
+ FMT_32_32_32_32_FLOAT = 38,
+ FMT_ATI_TC_RGB = 39,
+ FMT_ATI_TC_RGBA = 40,
+ FMT_ATI_TC_555_565_RGB = 41,
+ FMT_ATI_TC_555_565_RGBA = 42,
+ FMT_ATI_TC_RGBA_INTERP = 43,
+ FMT_ATI_TC_555_565_RGBA_INTERP = 44,
+ FMT_ETC1_RGBA_INTERP = 46,
+ FMT_ETC1_RGB = 47,
+ FMT_ETC1_RGBA = 48,
+ FMT_DXN = 49,
+ FMT_2_3_3 = 51,
+ FMT_2_10_10_10_AS_16_16_16_16 = 54,
+ FMT_10_10_10_2_AS_16_16_16_16 = 55,
+ FMT_32_32_32_FLOAT = 57,
+ FMT_DXT3A = 58,
+ FMT_DXT5A = 59,
+ FMT_CTX1 = 60,
+} SurfaceFormat;
+#endif /*ENUMS_SurfaceFormat_H*/
+
+#ifndef ENUMS_SurfaceTiling_H
+#define ENUMS_SurfaceTiling_H
+typedef enum SurfaceTiling {
+ ARRAY_LINEAR = 0,
+ ARRAY_TILED = 1
+} SurfaceTiling;
+#endif /*ENUMS_SurfaceTiling_H*/
+
+#ifndef ENUMS_SurfaceArray_H
+#define ENUMS_SurfaceArray_H
+typedef enum SurfaceArray {
+ ARRAY_1D = 0,
+ ARRAY_2D = 1,
+ ARRAY_3D = 2,
+ ARRAY_3D_SLICE = 3
+} SurfaceArray;
+#endif /*ENUMS_SurfaceArray_H*/
+
+#ifndef ENUMS_SurfaceNumberX_H
+#define ENUMS_SurfaceNumberX_H
+typedef enum SurfaceNumberX {
+ NUMBERX_UREPEAT = 0,
+ NUMBERX_SREPEAT = 1,
+ NUMBERX_UINTEGER = 2,
+ NUMBERX_SINTEGER = 3,
+ NUMBERX_FLOAT = 7
+} SurfaceNumberX;
+#endif /*ENUMS_SurfaceNumberX_H*/
+
+#ifndef ENUMS_ColorArrayX_H
+#define ENUMS_ColorArrayX_H
+typedef enum ColorArrayX {
+ ARRAYX_2D_COLOR = 0,
+ ARRAYX_3D_SLICE_COLOR = 1,
+} ColorArrayX;
+#endif /*ENUMS_ColorArrayX_H*/
+
+#endif /*_yamato_ENUM_HEADER*/
+
diff --git a/drivers/mxc/amd-gpu/include/reg/yamato/10/yamato_genenum.h b/drivers/mxc/amd-gpu/include/reg/yamato/10/yamato_genenum.h
new file mode 100644
index 000000000000..87a454a1e38a
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/reg/yamato/10/yamato_genenum.h
@@ -0,0 +1,1703 @@
+/* Copyright (c) 2002,2007-2009, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+START_ENUMTYPE(SU_PERFCNT_SELECT)
+ GENERATE_ENUM(PERF_PAPC_PASX_REQ, 0)
+ GENERATE_ENUM(UNUSED1, 1)
+ GENERATE_ENUM(PERF_PAPC_PASX_FIRST_VECTOR, 2)
+ GENERATE_ENUM(PERF_PAPC_PASX_SECOND_VECTOR, 3)
+ GENERATE_ENUM(PERF_PAPC_PASX_FIRST_DEAD, 4)
+ GENERATE_ENUM(PERF_PAPC_PASX_SECOND_DEAD, 5)
+ GENERATE_ENUM(PERF_PAPC_PASX_VTX_KILL_DISCARD, 6)
+ GENERATE_ENUM(PERF_PAPC_PASX_VTX_NAN_DISCARD, 7)
+ GENERATE_ENUM(PERF_PAPC_PA_INPUT_PRIM, 8)
+ GENERATE_ENUM(PERF_PAPC_PA_INPUT_NULL_PRIM, 9)
+ GENERATE_ENUM(PERF_PAPC_PA_INPUT_EVENT_FLAG, 10)
+ GENERATE_ENUM(PERF_PAPC_PA_INPUT_FIRST_PRIM_SLOT, 11)
+ GENERATE_ENUM(PERF_PAPC_PA_INPUT_END_OF_PACKET, 12)
+ GENERATE_ENUM(PERF_PAPC_CLPR_CULL_PRIM, 13)
+ GENERATE_ENUM(UNUSED2, 14)
+ GENERATE_ENUM(PERF_PAPC_CLPR_VV_CULL_PRIM, 15)
+ GENERATE_ENUM(UNUSED3, 16)
+ GENERATE_ENUM(PERF_PAPC_CLPR_VTX_KILL_CULL_PRIM, 17)
+ GENERATE_ENUM(PERF_PAPC_CLPR_VTX_NAN_CULL_PRIM, 18)
+ GENERATE_ENUM(PERF_PAPC_CLPR_CULL_TO_NULL_PRIM, 19)
+ GENERATE_ENUM(UNUSED4, 20)
+ GENERATE_ENUM(PERF_PAPC_CLPR_VV_CLIP_PRIM, 21)
+ GENERATE_ENUM(UNUSED5, 22)
+ GENERATE_ENUM(PERF_PAPC_CLPR_POINT_CLIP_CANDIDATE, 23)
+ GENERATE_ENUM(PERF_PAPC_CLPR_CLIP_PLANE_CNT_1, 24)
+ GENERATE_ENUM(PERF_PAPC_CLPR_CLIP_PLANE_CNT_2, 25)
+ GENERATE_ENUM(PERF_PAPC_CLPR_CLIP_PLANE_CNT_3, 26)
+ GENERATE_ENUM(PERF_PAPC_CLPR_CLIP_PLANE_CNT_4, 27)
+ GENERATE_ENUM(PERF_PAPC_CLPR_CLIP_PLANE_CNT_5, 28)
+ GENERATE_ENUM(PERF_PAPC_CLPR_CLIP_PLANE_CNT_6, 29)
+ GENERATE_ENUM(PERF_PAPC_CLPR_CLIP_PLANE_NEAR, 30)
+ GENERATE_ENUM(PERF_PAPC_CLPR_CLIP_PLANE_FAR, 31)
+ GENERATE_ENUM(PERF_PAPC_CLPR_CLIP_PLANE_LEFT, 32)
+ GENERATE_ENUM(PERF_PAPC_CLPR_CLIP_PLANE_RIGHT, 33)
+ GENERATE_ENUM(PERF_PAPC_CLPR_CLIP_PLANE_TOP, 34)
+ GENERATE_ENUM(PERF_PAPC_CLPR_CLIP_PLANE_BOTTOM, 35)
+ GENERATE_ENUM(PERF_PAPC_CLSM_NULL_PRIM, 36)
+ GENERATE_ENUM(PERF_PAPC_CLSM_TOTALLY_VISIBLE_PRIM, 37)
+ GENERATE_ENUM(PERF_PAPC_CLSM_CLIP_PRIM, 38)
+ GENERATE_ENUM(PERF_PAPC_CLSM_CULL_TO_NULL_PRIM, 39)
+ GENERATE_ENUM(PERF_PAPC_CLSM_OUT_PRIM_CNT_1, 40)
+ GENERATE_ENUM(PERF_PAPC_CLSM_OUT_PRIM_CNT_2, 41)
+ GENERATE_ENUM(PERF_PAPC_CLSM_OUT_PRIM_CNT_3, 42)
+ GENERATE_ENUM(PERF_PAPC_CLSM_OUT_PRIM_CNT_4, 43)
+ GENERATE_ENUM(PERF_PAPC_CLSM_OUT_PRIM_CNT_5, 44)
+ GENERATE_ENUM(PERF_PAPC_CLSM_OUT_PRIM_CNT_6_7, 45)
+ GENERATE_ENUM(PERF_PAPC_CLSM_NON_TRIVIAL_CULL, 46)
+ GENERATE_ENUM(PERF_PAPC_SU_INPUT_PRIM, 47)
+ GENERATE_ENUM(PERF_PAPC_SU_INPUT_CLIP_PRIM, 48)
+ GENERATE_ENUM(PERF_PAPC_SU_INPUT_NULL_PRIM, 49)
+ GENERATE_ENUM(PERF_PAPC_SU_ZERO_AREA_CULL_PRIM, 50)
+ GENERATE_ENUM(PERF_PAPC_SU_BACK_FACE_CULL_PRIM, 51)
+ GENERATE_ENUM(PERF_PAPC_SU_FRONT_FACE_CULL_PRIM, 52)
+ GENERATE_ENUM(PERF_PAPC_SU_POLYMODE_FACE_CULL, 53)
+ GENERATE_ENUM(PERF_PAPC_SU_POLYMODE_BACK_CULL, 54)
+ GENERATE_ENUM(PERF_PAPC_SU_POLYMODE_FRONT_CULL, 55)
+ GENERATE_ENUM(PERF_PAPC_SU_POLYMODE_INVALID_FILL, 56)
+ GENERATE_ENUM(PERF_PAPC_SU_OUTPUT_PRIM, 57)
+ GENERATE_ENUM(PERF_PAPC_SU_OUTPUT_CLIP_PRIM, 58)
+ GENERATE_ENUM(PERF_PAPC_SU_OUTPUT_NULL_PRIM, 59)
+ GENERATE_ENUM(PERF_PAPC_SU_OUTPUT_EVENT_FLAG, 60)
+ GENERATE_ENUM(PERF_PAPC_SU_OUTPUT_FIRST_PRIM_SLOT, 61)
+ GENERATE_ENUM(PERF_PAPC_SU_OUTPUT_END_OF_PACKET, 62)
+ GENERATE_ENUM(PERF_PAPC_SU_OUTPUT_POLYMODE_FACE, 63)
+ GENERATE_ENUM(PERF_PAPC_SU_OUTPUT_POLYMODE_BACK, 64)
+ GENERATE_ENUM(PERF_PAPC_SU_OUTPUT_POLYMODE_FRONT, 65)
+ GENERATE_ENUM(PERF_PAPC_SU_OUT_CLIP_POLYMODE_FACE, 66)
+ GENERATE_ENUM(PERF_PAPC_SU_OUT_CLIP_POLYMODE_BACK, 67)
+ GENERATE_ENUM(PERF_PAPC_SU_OUT_CLIP_POLYMODE_FRONT, 68)
+ GENERATE_ENUM(PERF_PAPC_PASX_REQ_IDLE, 69)
+ GENERATE_ENUM(PERF_PAPC_PASX_REQ_BUSY, 70)
+ GENERATE_ENUM(PERF_PAPC_PASX_REQ_STALLED, 71)
+ GENERATE_ENUM(PERF_PAPC_PASX_REC_IDLE, 72)
+ GENERATE_ENUM(PERF_PAPC_PASX_REC_BUSY, 73)
+ GENERATE_ENUM(PERF_PAPC_PASX_REC_STARVED_SX, 74)
+ GENERATE_ENUM(PERF_PAPC_PASX_REC_STALLED, 75)
+ GENERATE_ENUM(PERF_PAPC_PASX_REC_STALLED_POS_MEM, 76)
+ GENERATE_ENUM(PERF_PAPC_PASX_REC_STALLED_CCGSM_IN, 77)
+ GENERATE_ENUM(PERF_PAPC_CCGSM_IDLE, 78)
+ GENERATE_ENUM(PERF_PAPC_CCGSM_BUSY, 79)
+ GENERATE_ENUM(PERF_PAPC_CCGSM_STALLED, 80)
+ GENERATE_ENUM(PERF_PAPC_CLPRIM_IDLE, 81)
+ GENERATE_ENUM(PERF_PAPC_CLPRIM_BUSY, 82)
+ GENERATE_ENUM(PERF_PAPC_CLPRIM_STALLED, 83)
+ GENERATE_ENUM(PERF_PAPC_CLPRIM_STARVED_CCGSM, 84)
+ GENERATE_ENUM(PERF_PAPC_CLIPSM_IDLE, 85)
+ GENERATE_ENUM(PERF_PAPC_CLIPSM_BUSY, 86)
+ GENERATE_ENUM(PERF_PAPC_CLIPSM_WAIT_CLIP_VERT_ENGH, 87)
+ GENERATE_ENUM(PERF_PAPC_CLIPSM_WAIT_HIGH_PRI_SEQ, 88)
+ GENERATE_ENUM(PERF_PAPC_CLIPSM_WAIT_CLIPGA, 89)
+ GENERATE_ENUM(PERF_PAPC_CLIPSM_WAIT_AVAIL_VTE_CLIP, 90)
+ GENERATE_ENUM(PERF_PAPC_CLIPSM_WAIT_CLIP_OUTSM, 91)
+ GENERATE_ENUM(PERF_PAPC_CLIPGA_IDLE, 92)
+ GENERATE_ENUM(PERF_PAPC_CLIPGA_BUSY, 93)
+ GENERATE_ENUM(PERF_PAPC_CLIPGA_STARVED_VTE_CLIP, 94)
+ GENERATE_ENUM(PERF_PAPC_CLIPGA_STALLED, 95)
+ GENERATE_ENUM(PERF_PAPC_CLIP_IDLE, 96)
+ GENERATE_ENUM(PERF_PAPC_CLIP_BUSY, 97)
+ GENERATE_ENUM(PERF_PAPC_SU_IDLE, 98)
+ GENERATE_ENUM(PERF_PAPC_SU_BUSY, 99)
+ GENERATE_ENUM(PERF_PAPC_SU_STARVED_CLIP, 100)
+ GENERATE_ENUM(PERF_PAPC_SU_STALLED_SC, 101)
+ GENERATE_ENUM(PERF_PAPC_SU_FACENESS_CULL, 102)
+END_ENUMTYPE(SU_PERFCNT_SELECT)
+
+START_ENUMTYPE(SC_PERFCNT_SELECT)
+ GENERATE_ENUM(SC_SR_WINDOW_VALID, 0)
+ GENERATE_ENUM(SC_CW_WINDOW_VALID, 1)
+ GENERATE_ENUM(SC_QM_WINDOW_VALID, 2)
+ GENERATE_ENUM(SC_FW_WINDOW_VALID, 3)
+ GENERATE_ENUM(SC_EZ_WINDOW_VALID, 4)
+ GENERATE_ENUM(SC_IT_WINDOW_VALID, 5)
+ GENERATE_ENUM(SC_STARVED_BY_PA, 6)
+ GENERATE_ENUM(SC_STALLED_BY_RB_TILE, 7)
+ GENERATE_ENUM(SC_STALLED_BY_RB_SAMP, 8)
+ GENERATE_ENUM(SC_STARVED_BY_RB_EZ, 9)
+ GENERATE_ENUM(SC_STALLED_BY_SAMPLE_FF, 10)
+ GENERATE_ENUM(SC_STALLED_BY_SQ, 11)
+ GENERATE_ENUM(SC_STALLED_BY_SP, 12)
+ GENERATE_ENUM(SC_TOTAL_NO_PRIMS, 13)
+ GENERATE_ENUM(SC_NON_EMPTY_PRIMS, 14)
+ GENERATE_ENUM(SC_NO_TILES_PASSING_QM, 15)
+ GENERATE_ENUM(SC_NO_PIXELS_PRE_EZ, 16)
+ GENERATE_ENUM(SC_NO_PIXELS_POST_EZ, 17)
+END_ENUMTYPE(SC_PERFCNT_SELECT)
+
+START_ENUMTYPE(VGT_DI_PRIM_TYPE)
+ GENERATE_ENUM(DI_PT_NONE, 0)
+ GENERATE_ENUM(DI_PT_POINTLIST, 1)
+ GENERATE_ENUM(DI_PT_LINELIST, 2)
+ GENERATE_ENUM(DI_PT_LINESTRIP, 3)
+ GENERATE_ENUM(DI_PT_TRILIST, 4)
+ GENERATE_ENUM(DI_PT_TRIFAN, 5)
+ GENERATE_ENUM(DI_PT_TRISTRIP, 6)
+ GENERATE_ENUM(DI_PT_UNUSED_1, 7)
+ GENERATE_ENUM(DI_PT_RECTLIST, 8)
+ GENERATE_ENUM(DI_PT_UNUSED_2, 9)
+ GENERATE_ENUM(DI_PT_UNUSED_3, 10)
+ GENERATE_ENUM(DI_PT_UNUSED_4, 11)
+ GENERATE_ENUM(DI_PT_UNUSED_5, 12)
+ GENERATE_ENUM(DI_PT_QUADLIST, 13)
+ GENERATE_ENUM(DI_PT_QUADSTRIP, 14)
+ GENERATE_ENUM(DI_PT_POLYGON, 15)
+ GENERATE_ENUM(DI_PT_2D_COPY_RECT_LIST_V0, 16)
+ GENERATE_ENUM(DI_PT_2D_COPY_RECT_LIST_V1, 17)
+ GENERATE_ENUM(DI_PT_2D_COPY_RECT_LIST_V2, 18)
+ GENERATE_ENUM(DI_PT_2D_COPY_RECT_LIST_V3, 19)
+ GENERATE_ENUM(DI_PT_2D_FILL_RECT_LIST, 20)
+ GENERATE_ENUM(DI_PT_2D_LINE_STRIP, 21)
+ GENERATE_ENUM(DI_PT_2D_TRI_STRIP, 22)
+END_ENUMTYPE(VGT_DI_PRIM_TYPE)
+
+START_ENUMTYPE(VGT_DI_SOURCE_SELECT)
+ GENERATE_ENUM(DI_SRC_SEL_DMA, 0)
+ GENERATE_ENUM(DI_SRC_SEL_IMMEDIATE, 1)
+ GENERATE_ENUM(DI_SRC_SEL_AUTO_INDEX, 2)
+ GENERATE_ENUM(DI_SRC_SEL_RESERVED, 3)
+END_ENUMTYPE(VGT_DI_SOURCE_SELECT)
+
+START_ENUMTYPE(VGT_DI_FACENESS_CULL_SELECT)
+ GENERATE_ENUM(DI_FACE_CULL_NONE, 0)
+ GENERATE_ENUM(DI_FACE_CULL_FETCH, 1)
+ GENERATE_ENUM(DI_FACE_BACKFACE_CULL, 2)
+ GENERATE_ENUM(DI_FACE_FRONTFACE_CULL, 3)
+END_ENUMTYPE(VGT_DI_FACENESS_CULL_SELECT)
+
+START_ENUMTYPE(VGT_DI_INDEX_SIZE)
+ GENERATE_ENUM(DI_INDEX_SIZE_16_BIT, 0)
+ GENERATE_ENUM(DI_INDEX_SIZE_32_BIT, 1)
+END_ENUMTYPE(VGT_DI_INDEX_SIZE)
+
+START_ENUMTYPE(VGT_DI_SMALL_INDEX)
+ GENERATE_ENUM(DI_USE_INDEX_SIZE, 0)
+ GENERATE_ENUM(DI_INDEX_SIZE_8_BIT, 1)
+END_ENUMTYPE(VGT_DI_SMALL_INDEX)
+
+START_ENUMTYPE(VGT_DI_PRE_FETCH_CULL_ENABLE)
+ GENERATE_ENUM(DISABLE_PRE_FETCH_CULL_ENABLE, 0)
+ GENERATE_ENUM(PRE_FETCH_CULL_ENABLE, 1)
+END_ENUMTYPE(VGT_DI_PRE_FETCH_CULL_ENABLE)
+
+START_ENUMTYPE(VGT_DI_GRP_CULL_ENABLE)
+ GENERATE_ENUM(DISABLE_GRP_CULL_ENABLE, 0)
+ GENERATE_ENUM(GRP_CULL_ENABLE, 1)
+END_ENUMTYPE(VGT_DI_GRP_CULL_ENABLE)
+
+START_ENUMTYPE(VGT_EVENT_TYPE)
+ GENERATE_ENUM(VS_DEALLOC, 0)
+ GENERATE_ENUM(PS_DEALLOC, 1)
+ GENERATE_ENUM(VS_DONE_TS, 2)
+ GENERATE_ENUM(PS_DONE_TS, 3)
+ GENERATE_ENUM(CACHE_FLUSH_TS, 4)
+ GENERATE_ENUM(CONTEXT_DONE, 5)
+ GENERATE_ENUM(CACHE_FLUSH, 6)
+ GENERATE_ENUM(VIZQUERY_START, 7)
+ GENERATE_ENUM(VIZQUERY_END, 8)
+ GENERATE_ENUM(SC_WAIT_WC, 9)
+ GENERATE_ENUM(RST_PIX_CNT, 13)
+ GENERATE_ENUM(RST_VTX_CNT, 14)
+ GENERATE_ENUM(TILE_FLUSH, 15)
+ GENERATE_ENUM(CACHE_FLUSH_AND_INV_TS_EVENT, 20)
+ GENERATE_ENUM(ZPASS_DONE, 21)
+ GENERATE_ENUM(CACHE_FLUSH_AND_INV_EVENT, 22)
+ GENERATE_ENUM(PERFCOUNTER_START, 23)
+ GENERATE_ENUM(PERFCOUNTER_STOP, 24)
+ GENERATE_ENUM(VS_FETCH_DONE, 27)
+ GENERATE_ENUM(FACENESS_FLUSH, 28)
+END_ENUMTYPE(VGT_EVENT_TYPE)
+
+START_ENUMTYPE(VGT_DMA_SWAP_MODE)
+ GENERATE_ENUM(VGT_DMA_SWAP_NONE, 0)
+ GENERATE_ENUM(VGT_DMA_SWAP_16_BIT, 1)
+ GENERATE_ENUM(VGT_DMA_SWAP_32_BIT, 2)
+ GENERATE_ENUM(VGT_DMA_SWAP_WORD, 3)
+END_ENUMTYPE(VGT_DMA_SWAP_MODE)
+
+START_ENUMTYPE(VGT_PERFCOUNT_SELECT)
+ GENERATE_ENUM(VGT_SQ_EVENT_WINDOW_ACTIVE, 0)
+ GENERATE_ENUM(VGT_SQ_SEND, 1)
+ GENERATE_ENUM(VGT_SQ_STALLED, 2)
+ GENERATE_ENUM(VGT_SQ_STARVED_BUSY, 3)
+ GENERATE_ENUM(VGT_SQ_STARVED_IDLE, 4)
+ GENERATE_ENUM(VGT_SQ_STATIC, 5)
+ GENERATE_ENUM(VGT_PA_EVENT_WINDOW_ACTIVE, 6)
+ GENERATE_ENUM(VGT_PA_CLIP_V_SEND, 7)
+ GENERATE_ENUM(VGT_PA_CLIP_V_STALLED, 8)
+ GENERATE_ENUM(VGT_PA_CLIP_V_STARVED_BUSY, 9)
+ GENERATE_ENUM(VGT_PA_CLIP_V_STARVED_IDLE, 10)
+ GENERATE_ENUM(VGT_PA_CLIP_V_STATIC, 11)
+ GENERATE_ENUM(VGT_PA_CLIP_P_SEND, 12)
+ GENERATE_ENUM(VGT_PA_CLIP_P_STALLED, 13)
+ GENERATE_ENUM(VGT_PA_CLIP_P_STARVED_BUSY, 14)
+ GENERATE_ENUM(VGT_PA_CLIP_P_STARVED_IDLE, 15)
+ GENERATE_ENUM(VGT_PA_CLIP_P_STATIC, 16)
+ GENERATE_ENUM(VGT_PA_CLIP_S_SEND, 17)
+ GENERATE_ENUM(VGT_PA_CLIP_S_STALLED, 18)
+ GENERATE_ENUM(VGT_PA_CLIP_S_STARVED_BUSY, 19)
+ GENERATE_ENUM(VGT_PA_CLIP_S_STARVED_IDLE, 20)
+ GENERATE_ENUM(VGT_PA_CLIP_S_STATIC, 21)
+ GENERATE_ENUM(RBIU_FIFOS_EVENT_WINDOW_ACTIVE, 22)
+ GENERATE_ENUM(RBIU_IMMED_DATA_FIFO_STARVED, 23)
+ GENERATE_ENUM(RBIU_IMMED_DATA_FIFO_STALLED, 24)
+ GENERATE_ENUM(RBIU_DMA_REQUEST_FIFO_STARVED, 25)
+ GENERATE_ENUM(RBIU_DMA_REQUEST_FIFO_STALLED, 26)
+ GENERATE_ENUM(RBIU_DRAW_INITIATOR_FIFO_STARVED, 27)
+ GENERATE_ENUM(RBIU_DRAW_INITIATOR_FIFO_STALLED, 28)
+ GENERATE_ENUM(BIN_PRIM_NEAR_CULL, 29)
+ GENERATE_ENUM(BIN_PRIM_ZERO_CULL, 30)
+ GENERATE_ENUM(BIN_PRIM_FAR_CULL, 31)
+ GENERATE_ENUM(BIN_PRIM_BIN_CULL, 32)
+ GENERATE_ENUM(BIN_PRIM_FACE_CULL, 33)
+ GENERATE_ENUM(SPARE34, 34)
+ GENERATE_ENUM(SPARE35, 35)
+ GENERATE_ENUM(SPARE36, 36)
+ GENERATE_ENUM(SPARE37, 37)
+ GENERATE_ENUM(SPARE38, 38)
+ GENERATE_ENUM(SPARE39, 39)
+ GENERATE_ENUM(TE_SU_IN_VALID, 40)
+ GENERATE_ENUM(TE_SU_IN_READ, 41)
+ GENERATE_ENUM(TE_SU_IN_PRIM, 42)
+ GENERATE_ENUM(TE_SU_IN_EOP, 43)
+ GENERATE_ENUM(TE_SU_IN_NULL_PRIM, 44)
+ GENERATE_ENUM(TE_WK_IN_VALID, 45)
+ GENERATE_ENUM(TE_WK_IN_READ, 46)
+ GENERATE_ENUM(TE_OUT_PRIM_VALID, 47)
+ GENERATE_ENUM(TE_OUT_PRIM_READ, 48)
+END_ENUMTYPE(VGT_PERFCOUNT_SELECT)
+
+START_ENUMTYPE(TCR_PERFCOUNT_SELECT)
+ GENERATE_ENUM(DGMMPD_IPMUX0_STALL, 0)
+ GENERATE_ENUM(reserved_46, 1)
+ GENERATE_ENUM(reserved_47, 2)
+ GENERATE_ENUM(reserved_48, 3)
+ GENERATE_ENUM(DGMMPD_IPMUX_ALL_STALL, 4)
+ GENERATE_ENUM(OPMUX0_L2_WRITES, 5)
+ GENERATE_ENUM(reserved_49, 6)
+ GENERATE_ENUM(reserved_50, 7)
+ GENERATE_ENUM(reserved_51, 8)
+END_ENUMTYPE(TCR_PERFCOUNT_SELECT)
+
+START_ENUMTYPE(TP_PERFCOUNT_SELECT)
+ GENERATE_ENUM(POINT_QUADS, 0)
+ GENERATE_ENUM(BILIN_QUADS, 1)
+ GENERATE_ENUM(ANISO_QUADS, 2)
+ GENERATE_ENUM(MIP_QUADS, 3)
+ GENERATE_ENUM(VOL_QUADS, 4)
+ GENERATE_ENUM(MIP_VOL_QUADS, 5)
+ GENERATE_ENUM(MIP_ANISO_QUADS, 6)
+ GENERATE_ENUM(VOL_ANISO_QUADS, 7)
+ GENERATE_ENUM(ANISO_2_1_QUADS, 8)
+ GENERATE_ENUM(ANISO_4_1_QUADS, 9)
+ GENERATE_ENUM(ANISO_6_1_QUADS, 10)
+ GENERATE_ENUM(ANISO_8_1_QUADS, 11)
+ GENERATE_ENUM(ANISO_10_1_QUADS, 12)
+ GENERATE_ENUM(ANISO_12_1_QUADS, 13)
+ GENERATE_ENUM(ANISO_14_1_QUADS, 14)
+ GENERATE_ENUM(ANISO_16_1_QUADS, 15)
+ GENERATE_ENUM(MIP_VOL_ANISO_QUADS, 16)
+ GENERATE_ENUM(ALIGN_2_QUADS, 17)
+ GENERATE_ENUM(ALIGN_4_QUADS, 18)
+ GENERATE_ENUM(PIX_0_QUAD, 19)
+ GENERATE_ENUM(PIX_1_QUAD, 20)
+ GENERATE_ENUM(PIX_2_QUAD, 21)
+ GENERATE_ENUM(PIX_3_QUAD, 22)
+ GENERATE_ENUM(PIX_4_QUAD, 23)
+ GENERATE_ENUM(TP_MIPMAP_LOD0, 24)
+ GENERATE_ENUM(TP_MIPMAP_LOD1, 25)
+ GENERATE_ENUM(TP_MIPMAP_LOD2, 26)
+ GENERATE_ENUM(TP_MIPMAP_LOD3, 27)
+ GENERATE_ENUM(TP_MIPMAP_LOD4, 28)
+ GENERATE_ENUM(TP_MIPMAP_LOD5, 29)
+ GENERATE_ENUM(TP_MIPMAP_LOD6, 30)
+ GENERATE_ENUM(TP_MIPMAP_LOD7, 31)
+ GENERATE_ENUM(TP_MIPMAP_LOD8, 32)
+ GENERATE_ENUM(TP_MIPMAP_LOD9, 33)
+ GENERATE_ENUM(TP_MIPMAP_LOD10, 34)
+ GENERATE_ENUM(TP_MIPMAP_LOD11, 35)
+ GENERATE_ENUM(TP_MIPMAP_LOD12, 36)
+ GENERATE_ENUM(TP_MIPMAP_LOD13, 37)
+ GENERATE_ENUM(TP_MIPMAP_LOD14, 38)
+END_ENUMTYPE(TP_PERFCOUNT_SELECT)
+
+START_ENUMTYPE(TCM_PERFCOUNT_SELECT)
+ GENERATE_ENUM(QUAD0_RD_LAT_FIFO_EMPTY, 0)
+ GENERATE_ENUM(reserved_01, 1)
+ GENERATE_ENUM(reserved_02, 2)
+ GENERATE_ENUM(QUAD0_RD_LAT_FIFO_4TH_FULL, 3)
+ GENERATE_ENUM(QUAD0_RD_LAT_FIFO_HALF_FULL, 4)
+ GENERATE_ENUM(QUAD0_RD_LAT_FIFO_FULL, 5)
+ GENERATE_ENUM(QUAD0_RD_LAT_FIFO_LT_4TH_FULL, 6)
+ GENERATE_ENUM(reserved_07, 7)
+ GENERATE_ENUM(reserved_08, 8)
+ GENERATE_ENUM(reserved_09, 9)
+ GENERATE_ENUM(reserved_10, 10)
+ GENERATE_ENUM(reserved_11, 11)
+ GENERATE_ENUM(reserved_12, 12)
+ GENERATE_ENUM(reserved_13, 13)
+ GENERATE_ENUM(reserved_14, 14)
+ GENERATE_ENUM(reserved_15, 15)
+ GENERATE_ENUM(reserved_16, 16)
+ GENERATE_ENUM(reserved_17, 17)
+ GENERATE_ENUM(reserved_18, 18)
+ GENERATE_ENUM(reserved_19, 19)
+ GENERATE_ENUM(reserved_20, 20)
+ GENERATE_ENUM(reserved_21, 21)
+ GENERATE_ENUM(reserved_22, 22)
+ GENERATE_ENUM(reserved_23, 23)
+ GENERATE_ENUM(reserved_24, 24)
+ GENERATE_ENUM(reserved_25, 25)
+ GENERATE_ENUM(reserved_26, 26)
+ GENERATE_ENUM(reserved_27, 27)
+ GENERATE_ENUM(READ_STARVED_QUAD0, 28)
+ GENERATE_ENUM(reserved_29, 29)
+ GENERATE_ENUM(reserved_30, 30)
+ GENERATE_ENUM(reserved_31, 31)
+ GENERATE_ENUM(READ_STARVED, 32)
+ GENERATE_ENUM(READ_STALLED_QUAD0, 33)
+ GENERATE_ENUM(reserved_34, 34)
+ GENERATE_ENUM(reserved_35, 35)
+ GENERATE_ENUM(reserved_36, 36)
+ GENERATE_ENUM(READ_STALLED, 37)
+ GENERATE_ENUM(VALID_READ_QUAD0, 38)
+ GENERATE_ENUM(reserved_39, 39)
+ GENERATE_ENUM(reserved_40, 40)
+ GENERATE_ENUM(reserved_41, 41)
+ GENERATE_ENUM(TC_TP_STARVED_QUAD0, 42)
+ GENERATE_ENUM(reserved_43, 43)
+ GENERATE_ENUM(reserved_44, 44)
+ GENERATE_ENUM(reserved_45, 45)
+ GENERATE_ENUM(TC_TP_STARVED, 46)
+END_ENUMTYPE(TCM_PERFCOUNT_SELECT)
+
+START_ENUMTYPE(TCF_PERFCOUNT_SELECT)
+ GENERATE_ENUM(VALID_CYCLES, 0)
+ GENERATE_ENUM(SINGLE_PHASES, 1)
+ GENERATE_ENUM(ANISO_PHASES, 2)
+ GENERATE_ENUM(MIP_PHASES, 3)
+ GENERATE_ENUM(VOL_PHASES, 4)
+ GENERATE_ENUM(MIP_VOL_PHASES, 5)
+ GENERATE_ENUM(MIP_ANISO_PHASES, 6)
+ GENERATE_ENUM(VOL_ANISO_PHASES, 7)
+ GENERATE_ENUM(ANISO_2_1_PHASES, 8)
+ GENERATE_ENUM(ANISO_4_1_PHASES, 9)
+ GENERATE_ENUM(ANISO_6_1_PHASES, 10)
+ GENERATE_ENUM(ANISO_8_1_PHASES, 11)
+ GENERATE_ENUM(ANISO_10_1_PHASES, 12)
+ GENERATE_ENUM(ANISO_12_1_PHASES, 13)
+ GENERATE_ENUM(ANISO_14_1_PHASES, 14)
+ GENERATE_ENUM(ANISO_16_1_PHASES, 15)
+ GENERATE_ENUM(MIP_VOL_ANISO_PHASES, 16)
+ GENERATE_ENUM(ALIGN_2_PHASES, 17)
+ GENERATE_ENUM(ALIGN_4_PHASES, 18)
+ GENERATE_ENUM(TPC_BUSY, 19)
+ GENERATE_ENUM(TPC_STALLED, 20)
+ GENERATE_ENUM(TPC_STARVED, 21)
+ GENERATE_ENUM(TPC_WORKING, 22)
+ GENERATE_ENUM(TPC_WALKER_BUSY, 23)
+ GENERATE_ENUM(TPC_WALKER_STALLED, 24)
+ GENERATE_ENUM(TPC_WALKER_WORKING, 25)
+ GENERATE_ENUM(TPC_ALIGNER_BUSY, 26)
+ GENERATE_ENUM(TPC_ALIGNER_STALLED, 27)
+ GENERATE_ENUM(TPC_ALIGNER_STALLED_BY_BLEND, 28)
+ GENERATE_ENUM(TPC_ALIGNER_STALLED_BY_CACHE, 29)
+ GENERATE_ENUM(TPC_ALIGNER_WORKING, 30)
+ GENERATE_ENUM(TPC_BLEND_BUSY, 31)
+ GENERATE_ENUM(TPC_BLEND_SYNC, 32)
+ GENERATE_ENUM(TPC_BLEND_STARVED, 33)
+ GENERATE_ENUM(TPC_BLEND_WORKING, 34)
+ GENERATE_ENUM(OPCODE_0x00, 35)
+ GENERATE_ENUM(OPCODE_0x01, 36)
+ GENERATE_ENUM(OPCODE_0x04, 37)
+ GENERATE_ENUM(OPCODE_0x10, 38)
+ GENERATE_ENUM(OPCODE_0x11, 39)
+ GENERATE_ENUM(OPCODE_0x12, 40)
+ GENERATE_ENUM(OPCODE_0x13, 41)
+ GENERATE_ENUM(OPCODE_0x18, 42)
+ GENERATE_ENUM(OPCODE_0x19, 43)
+ GENERATE_ENUM(OPCODE_0x1A, 44)
+ GENERATE_ENUM(OPCODE_OTHER, 45)
+ GENERATE_ENUM(IN_FIFO_0_EMPTY, 56)
+ GENERATE_ENUM(IN_FIFO_0_LT_HALF_FULL, 57)
+ GENERATE_ENUM(IN_FIFO_0_HALF_FULL, 58)
+ GENERATE_ENUM(IN_FIFO_0_FULL, 59)
+ GENERATE_ENUM(IN_FIFO_TPC_EMPTY, 72)
+ GENERATE_ENUM(IN_FIFO_TPC_LT_HALF_FULL, 73)
+ GENERATE_ENUM(IN_FIFO_TPC_HALF_FULL, 74)
+ GENERATE_ENUM(IN_FIFO_TPC_FULL, 75)
+ GENERATE_ENUM(TPC_TC_XFC, 76)
+ GENERATE_ENUM(TPC_TC_STATE, 77)
+ GENERATE_ENUM(TC_STALL, 78)
+ GENERATE_ENUM(QUAD0_TAPS, 79)
+ GENERATE_ENUM(QUADS, 83)
+ GENERATE_ENUM(TCA_SYNC_STALL, 84)
+ GENERATE_ENUM(TAG_STALL, 85)
+ GENERATE_ENUM(TCB_SYNC_STALL, 88)
+ GENERATE_ENUM(TCA_VALID, 89)
+ GENERATE_ENUM(PROBES_VALID, 90)
+ GENERATE_ENUM(MISS_STALL, 91)
+ GENERATE_ENUM(FETCH_FIFO_STALL, 92)
+ GENERATE_ENUM(TCO_STALL, 93)
+ GENERATE_ENUM(ANY_STALL, 94)
+ GENERATE_ENUM(TAG_MISSES, 95)
+ GENERATE_ENUM(TAG_HITS, 96)
+ GENERATE_ENUM(SUB_TAG_MISSES, 97)
+ GENERATE_ENUM(SET0_INVALIDATES, 98)
+ GENERATE_ENUM(SET1_INVALIDATES, 99)
+ GENERATE_ENUM(SET2_INVALIDATES, 100)
+ GENERATE_ENUM(SET3_INVALIDATES, 101)
+ GENERATE_ENUM(SET0_TAG_MISSES, 102)
+ GENERATE_ENUM(SET1_TAG_MISSES, 103)
+ GENERATE_ENUM(SET2_TAG_MISSES, 104)
+ GENERATE_ENUM(SET3_TAG_MISSES, 105)
+ GENERATE_ENUM(SET0_TAG_HITS, 106)
+ GENERATE_ENUM(SET1_TAG_HITS, 107)
+ GENERATE_ENUM(SET2_TAG_HITS, 108)
+ GENERATE_ENUM(SET3_TAG_HITS, 109)
+ GENERATE_ENUM(SET0_SUB_TAG_MISSES, 110)
+ GENERATE_ENUM(SET1_SUB_TAG_MISSES, 111)
+ GENERATE_ENUM(SET2_SUB_TAG_MISSES, 112)
+ GENERATE_ENUM(SET3_SUB_TAG_MISSES, 113)
+ GENERATE_ENUM(SET0_EVICT1, 114)
+ GENERATE_ENUM(SET0_EVICT2, 115)
+ GENERATE_ENUM(SET0_EVICT3, 116)
+ GENERATE_ENUM(SET0_EVICT4, 117)
+ GENERATE_ENUM(SET0_EVICT5, 118)
+ GENERATE_ENUM(SET0_EVICT6, 119)
+ GENERATE_ENUM(SET0_EVICT7, 120)
+ GENERATE_ENUM(SET0_EVICT8, 121)
+ GENERATE_ENUM(SET1_EVICT1, 130)
+ GENERATE_ENUM(SET1_EVICT2, 131)
+ GENERATE_ENUM(SET1_EVICT3, 132)
+ GENERATE_ENUM(SET1_EVICT4, 133)
+ GENERATE_ENUM(SET1_EVICT5, 134)
+ GENERATE_ENUM(SET1_EVICT6, 135)
+ GENERATE_ENUM(SET1_EVICT7, 136)
+ GENERATE_ENUM(SET1_EVICT8, 137)
+ GENERATE_ENUM(SET2_EVICT1, 146)
+ GENERATE_ENUM(SET2_EVICT2, 147)
+ GENERATE_ENUM(SET2_EVICT3, 148)
+ GENERATE_ENUM(SET2_EVICT4, 149)
+ GENERATE_ENUM(SET2_EVICT5, 150)
+ GENERATE_ENUM(SET2_EVICT6, 151)
+ GENERATE_ENUM(SET2_EVICT7, 152)
+ GENERATE_ENUM(SET2_EVICT8, 153)
+ GENERATE_ENUM(SET3_EVICT1, 162)
+ GENERATE_ENUM(SET3_EVICT2, 163)
+ GENERATE_ENUM(SET3_EVICT3, 164)
+ GENERATE_ENUM(SET3_EVICT4, 165)
+ GENERATE_ENUM(SET3_EVICT5, 166)
+ GENERATE_ENUM(SET3_EVICT6, 167)
+ GENERATE_ENUM(SET3_EVICT7, 168)
+ GENERATE_ENUM(SET3_EVICT8, 169)
+ GENERATE_ENUM(FF_EMPTY, 178)
+ GENERATE_ENUM(FF_LT_HALF_FULL, 179)
+ GENERATE_ENUM(FF_HALF_FULL, 180)
+ GENERATE_ENUM(FF_FULL, 181)
+ GENERATE_ENUM(FF_XFC, 182)
+ GENERATE_ENUM(FF_STALLED, 183)
+ GENERATE_ENUM(FG_MASKS, 184)
+ GENERATE_ENUM(FG_LEFT_MASKS, 185)
+ GENERATE_ENUM(FG_LEFT_MASK_STALLED, 186)
+ GENERATE_ENUM(FG_LEFT_NOT_DONE_STALL, 187)
+ GENERATE_ENUM(FG_LEFT_FG_STALL, 188)
+ GENERATE_ENUM(FG_LEFT_SECTORS, 189)
+ GENERATE_ENUM(FG0_REQUESTS, 195)
+ GENERATE_ENUM(FG0_STALLED, 196)
+ GENERATE_ENUM(MEM_REQ512, 199)
+ GENERATE_ENUM(MEM_REQ_SENT, 200)
+ GENERATE_ENUM(MEM_LOCAL_READ_REQ, 202)
+ GENERATE_ENUM(TC0_MH_STALLED, 203)
+END_ENUMTYPE(TCF_PERFCOUNT_SELECT)
+
+START_ENUMTYPE(SQ_PERFCNT_SELECT)
+ GENERATE_ENUM(SQ_PIXEL_VECTORS_SUB, 0)
+ GENERATE_ENUM(SQ_VERTEX_VECTORS_SUB, 1)
+ GENERATE_ENUM(SQ_ALU0_ACTIVE_VTX_SIMD0, 2)
+ GENERATE_ENUM(SQ_ALU1_ACTIVE_VTX_SIMD0, 3)
+ GENERATE_ENUM(SQ_ALU0_ACTIVE_PIX_SIMD0, 4)
+ GENERATE_ENUM(SQ_ALU1_ACTIVE_PIX_SIMD0, 5)
+ GENERATE_ENUM(SQ_ALU0_ACTIVE_VTX_SIMD1, 6)
+ GENERATE_ENUM(SQ_ALU1_ACTIVE_VTX_SIMD1, 7)
+ GENERATE_ENUM(SQ_ALU0_ACTIVE_PIX_SIMD1, 8)
+ GENERATE_ENUM(SQ_ALU1_ACTIVE_PIX_SIMD1, 9)
+ GENERATE_ENUM(SQ_EXPORT_CYCLES, 10)
+ GENERATE_ENUM(SQ_ALU_CST_WRITTEN, 11)
+ GENERATE_ENUM(SQ_TEX_CST_WRITTEN, 12)
+ GENERATE_ENUM(SQ_ALU_CST_STALL, 13)
+ GENERATE_ENUM(SQ_ALU_TEX_STALL, 14)
+ GENERATE_ENUM(SQ_INST_WRITTEN, 15)
+ GENERATE_ENUM(SQ_BOOLEAN_WRITTEN, 16)
+ GENERATE_ENUM(SQ_LOOPS_WRITTEN, 17)
+ GENERATE_ENUM(SQ_PIXEL_SWAP_IN, 18)
+ GENERATE_ENUM(SQ_PIXEL_SWAP_OUT, 19)
+ GENERATE_ENUM(SQ_VERTEX_SWAP_IN, 20)
+ GENERATE_ENUM(SQ_VERTEX_SWAP_OUT, 21)
+ GENERATE_ENUM(SQ_ALU_VTX_INST_ISSUED, 22)
+ GENERATE_ENUM(SQ_TEX_VTX_INST_ISSUED, 23)
+ GENERATE_ENUM(SQ_VC_VTX_INST_ISSUED, 24)
+ GENERATE_ENUM(SQ_CF_VTX_INST_ISSUED, 25)
+ GENERATE_ENUM(SQ_ALU_PIX_INST_ISSUED, 26)
+ GENERATE_ENUM(SQ_TEX_PIX_INST_ISSUED, 27)
+ GENERATE_ENUM(SQ_VC_PIX_INST_ISSUED, 28)
+ GENERATE_ENUM(SQ_CF_PIX_INST_ISSUED, 29)
+ GENERATE_ENUM(SQ_ALU0_FIFO_EMPTY_SIMD0, 30)
+ GENERATE_ENUM(SQ_ALU1_FIFO_EMPTY_SIMD0, 31)
+ GENERATE_ENUM(SQ_ALU0_FIFO_EMPTY_SIMD1, 32)
+ GENERATE_ENUM(SQ_ALU1_FIFO_EMPTY_SIMD1, 33)
+ GENERATE_ENUM(SQ_ALU_NOPS, 34)
+ GENERATE_ENUM(SQ_PRED_SKIP, 35)
+ GENERATE_ENUM(SQ_SYNC_ALU_STALL_SIMD0_VTX, 36)
+ GENERATE_ENUM(SQ_SYNC_ALU_STALL_SIMD1_VTX, 37)
+ GENERATE_ENUM(SQ_SYNC_TEX_STALL_VTX, 38)
+ GENERATE_ENUM(SQ_SYNC_VC_STALL_VTX, 39)
+ GENERATE_ENUM(SQ_CONSTANTS_USED_SIMD0, 40)
+ GENERATE_ENUM(SQ_CONSTANTS_SENT_SP_SIMD0, 41)
+ GENERATE_ENUM(SQ_GPR_STALL_VTX, 42)
+ GENERATE_ENUM(SQ_GPR_STALL_PIX, 43)
+ GENERATE_ENUM(SQ_VTX_RS_STALL, 44)
+ GENERATE_ENUM(SQ_PIX_RS_STALL, 45)
+ GENERATE_ENUM(SQ_SX_PC_FULL, 46)
+ GENERATE_ENUM(SQ_SX_EXP_BUFF_FULL, 47)
+ GENERATE_ENUM(SQ_SX_POS_BUFF_FULL, 48)
+ GENERATE_ENUM(SQ_INTERP_QUADS, 49)
+ GENERATE_ENUM(SQ_INTERP_ACTIVE, 50)
+ GENERATE_ENUM(SQ_IN_PIXEL_STALL, 51)
+ GENERATE_ENUM(SQ_IN_VTX_STALL, 52)
+ GENERATE_ENUM(SQ_VTX_CNT, 53)
+ GENERATE_ENUM(SQ_VTX_VECTOR2, 54)
+ GENERATE_ENUM(SQ_VTX_VECTOR3, 55)
+ GENERATE_ENUM(SQ_VTX_VECTOR4, 56)
+ GENERATE_ENUM(SQ_PIXEL_VECTOR1, 57)
+ GENERATE_ENUM(SQ_PIXEL_VECTOR23, 58)
+ GENERATE_ENUM(SQ_PIXEL_VECTOR4, 59)
+ GENERATE_ENUM(SQ_CONSTANTS_USED_SIMD1, 60)
+ GENERATE_ENUM(SQ_CONSTANTS_SENT_SP_SIMD1, 61)
+ GENERATE_ENUM(SQ_SX_MEM_EXP_FULL, 62)
+ GENERATE_ENUM(SQ_ALU0_ACTIVE_VTX_SIMD2, 63)
+ GENERATE_ENUM(SQ_ALU1_ACTIVE_VTX_SIMD2, 64)
+ GENERATE_ENUM(SQ_ALU0_ACTIVE_PIX_SIMD2, 65)
+ GENERATE_ENUM(SQ_ALU1_ACTIVE_PIX_SIMD2, 66)
+ GENERATE_ENUM(SQ_ALU0_ACTIVE_VTX_SIMD3, 67)
+ GENERATE_ENUM(SQ_PERFCOUNT_VTX_QUAL_TP_DONE, 68)
+ GENERATE_ENUM(SQ_ALU0_ACTIVE_PIX_SIMD3, 69)
+ GENERATE_ENUM(SQ_PERFCOUNT_PIX_QUAL_TP_DONE, 70)
+ GENERATE_ENUM(SQ_ALU0_FIFO_EMPTY_SIMD2, 71)
+ GENERATE_ENUM(SQ_ALU1_FIFO_EMPTY_SIMD2, 72)
+ GENERATE_ENUM(SQ_ALU0_FIFO_EMPTY_SIMD3, 73)
+ GENERATE_ENUM(SQ_ALU1_FIFO_EMPTY_SIMD3, 74)
+ GENERATE_ENUM(SQ_SYNC_ALU_STALL_SIMD2_VTX, 75)
+ GENERATE_ENUM(SQ_PERFCOUNT_VTX_POP_THREAD, 76)
+ GENERATE_ENUM(SQ_SYNC_ALU_STALL_SIMD0_PIX, 77)
+ GENERATE_ENUM(SQ_SYNC_ALU_STALL_SIMD1_PIX, 78)
+ GENERATE_ENUM(SQ_SYNC_ALU_STALL_SIMD2_PIX, 79)
+ GENERATE_ENUM(SQ_PERFCOUNT_PIX_POP_THREAD, 80)
+ GENERATE_ENUM(SQ_SYNC_TEX_STALL_PIX, 81)
+ GENERATE_ENUM(SQ_SYNC_VC_STALL_PIX, 82)
+ GENERATE_ENUM(SQ_CONSTANTS_USED_SIMD2, 83)
+ GENERATE_ENUM(SQ_CONSTANTS_SENT_SP_SIMD2, 84)
+ GENERATE_ENUM(SQ_PERFCOUNT_VTX_DEALLOC_ACK, 85)
+ GENERATE_ENUM(SQ_PERFCOUNT_PIX_DEALLOC_ACK, 86)
+ GENERATE_ENUM(SQ_ALU0_FIFO_FULL_SIMD0, 87)
+ GENERATE_ENUM(SQ_ALU1_FIFO_FULL_SIMD0, 88)
+ GENERATE_ENUM(SQ_ALU0_FIFO_FULL_SIMD1, 89)
+ GENERATE_ENUM(SQ_ALU1_FIFO_FULL_SIMD1, 90)
+ GENERATE_ENUM(SQ_ALU0_FIFO_FULL_SIMD2, 91)
+ GENERATE_ENUM(SQ_ALU1_FIFO_FULL_SIMD2, 92)
+ GENERATE_ENUM(SQ_ALU0_FIFO_FULL_SIMD3, 93)
+ GENERATE_ENUM(SQ_ALU1_FIFO_FULL_SIMD3, 94)
+ GENERATE_ENUM(VC_PERF_STATIC, 95)
+ GENERATE_ENUM(VC_PERF_STALLED, 96)
+ GENERATE_ENUM(VC_PERF_STARVED, 97)
+ GENERATE_ENUM(VC_PERF_SEND, 98)
+ GENERATE_ENUM(VC_PERF_ACTUAL_STARVED, 99)
+ GENERATE_ENUM(PIXEL_THREAD_0_ACTIVE, 100)
+ GENERATE_ENUM(VERTEX_THREAD_0_ACTIVE, 101)
+ GENERATE_ENUM(PIXEL_THREAD_0_NUMBER, 102)
+ GENERATE_ENUM(VERTEX_THREAD_0_NUMBER, 103)
+ GENERATE_ENUM(VERTEX_EVENT_NUMBER, 104)
+ GENERATE_ENUM(PIXEL_EVENT_NUMBER, 105)
+ GENERATE_ENUM(PTRBUFF_EF_PUSH, 106)
+ GENERATE_ENUM(PTRBUFF_EF_POP_EVENT, 107)
+ GENERATE_ENUM(PTRBUFF_EF_POP_NEW_VTX, 108)
+ GENERATE_ENUM(PTRBUFF_EF_POP_DEALLOC, 109)
+ GENERATE_ENUM(PTRBUFF_EF_POP_PVECTOR, 110)
+ GENERATE_ENUM(PTRBUFF_EF_POP_PVECTOR_X, 111)
+ GENERATE_ENUM(PTRBUFF_EF_POP_PVECTOR_VNZ, 112)
+ GENERATE_ENUM(PTRBUFF_PB_DEALLOC, 113)
+ GENERATE_ENUM(PTRBUFF_PI_STATE_PPB_POP, 114)
+ GENERATE_ENUM(PTRBUFF_PI_RTR, 115)
+ GENERATE_ENUM(PTRBUFF_PI_READ_EN, 116)
+ GENERATE_ENUM(PTRBUFF_PI_BUFF_SWAP, 117)
+ GENERATE_ENUM(PTRBUFF_SQ_FREE_BUFF, 118)
+ GENERATE_ENUM(PTRBUFF_SQ_DEC, 119)
+ GENERATE_ENUM(PTRBUFF_SC_VALID_CNTL_EVENT, 120)
+ GENERATE_ENUM(PTRBUFF_SC_VALID_IJ_XFER, 121)
+ GENERATE_ENUM(PTRBUFF_SC_NEW_VECTOR_1_Q, 122)
+ GENERATE_ENUM(PTRBUFF_QUAL_NEW_VECTOR, 123)
+ GENERATE_ENUM(PTRBUFF_QUAL_EVENT, 124)
+ GENERATE_ENUM(PTRBUFF_END_BUFFER, 125)
+ GENERATE_ENUM(PTRBUFF_FILL_QUAD, 126)
+ GENERATE_ENUM(VERTS_WRITTEN_SPI, 127)
+ GENERATE_ENUM(TP_FETCH_INSTR_EXEC, 128)
+ GENERATE_ENUM(TP_FETCH_INSTR_REQ, 129)
+ GENERATE_ENUM(TP_DATA_RETURN, 130)
+ GENERATE_ENUM(SPI_WRITE_CYCLES_SP, 131)
+ GENERATE_ENUM(SPI_WRITES_SP, 132)
+ GENERATE_ENUM(SP_ALU_INSTR_EXEC, 133)
+ GENERATE_ENUM(SP_CONST_ADDR_TO_SQ, 134)
+ GENERATE_ENUM(SP_PRED_KILLS_TO_SQ, 135)
+ GENERATE_ENUM(SP_EXPORT_CYCLES_TO_SX, 136)
+ GENERATE_ENUM(SP_EXPORTS_TO_SX, 137)
+ GENERATE_ENUM(SQ_CYCLES_ELAPSED, 138)
+ GENERATE_ENUM(SQ_TCFS_OPT_ALLOC_EXEC, 139)
+ GENERATE_ENUM(SQ_TCFS_NO_OPT_ALLOC, 140)
+ GENERATE_ENUM(SQ_ALU0_NO_OPT_ALLOC, 141)
+ GENERATE_ENUM(SQ_ALU1_NO_OPT_ALLOC, 142)
+ GENERATE_ENUM(SQ_TCFS_ARB_XFC_CNT, 143)
+ GENERATE_ENUM(SQ_ALU0_ARB_XFC_CNT, 144)
+ GENERATE_ENUM(SQ_ALU1_ARB_XFC_CNT, 145)
+ GENERATE_ENUM(SQ_TCFS_CFS_UPDATE_CNT, 146)
+ GENERATE_ENUM(SQ_ALU0_CFS_UPDATE_CNT, 147)
+ GENERATE_ENUM(SQ_ALU1_CFS_UPDATE_CNT, 148)
+ GENERATE_ENUM(SQ_VTX_PUSH_THREAD_CNT, 149)
+ GENERATE_ENUM(SQ_VTX_POP_THREAD_CNT, 150)
+ GENERATE_ENUM(SQ_PIX_PUSH_THREAD_CNT, 151)
+ GENERATE_ENUM(SQ_PIX_POP_THREAD_CNT, 152)
+ GENERATE_ENUM(SQ_PIX_TOTAL, 153)
+ GENERATE_ENUM(SQ_PIX_KILLED, 154)
+END_ENUMTYPE(SQ_PERFCNT_SELECT)
+
+START_ENUMTYPE(SX_PERFCNT_SELECT)
+ GENERATE_ENUM(SX_EXPORT_VECTORS, 0)
+ GENERATE_ENUM(SX_DUMMY_QUADS, 1)
+ GENERATE_ENUM(SX_ALPHA_FAIL, 2)
+ GENERATE_ENUM(SX_RB_QUAD_BUSY, 3)
+ GENERATE_ENUM(SX_RB_COLOR_BUSY, 4)
+ GENERATE_ENUM(SX_RB_QUAD_STALL, 5)
+ GENERATE_ENUM(SX_RB_COLOR_STALL, 6)
+END_ENUMTYPE(SX_PERFCNT_SELECT)
+
+START_ENUMTYPE(Abs_modifier)
+ GENERATE_ENUM(NO_ABS_MOD, 0)
+ GENERATE_ENUM(ABS_MOD, 1)
+END_ENUMTYPE(Abs_modifier)
+
+START_ENUMTYPE(Exporting)
+ GENERATE_ENUM(NOT_EXPORTING, 0)
+ GENERATE_ENUM(EXPORTING, 1)
+END_ENUMTYPE(Exporting)
+
+START_ENUMTYPE(ScalarOpcode)
+ GENERATE_ENUM(ADDs, 0)
+ GENERATE_ENUM(ADD_PREVs, 1)
+ GENERATE_ENUM(MULs, 2)
+ GENERATE_ENUM(MUL_PREVs, 3)
+ GENERATE_ENUM(MUL_PREV2s, 4)
+ GENERATE_ENUM(MAXs, 5)
+ GENERATE_ENUM(MINs, 6)
+ GENERATE_ENUM(SETEs, 7)
+ GENERATE_ENUM(SETGTs, 8)
+ GENERATE_ENUM(SETGTEs, 9)
+ GENERATE_ENUM(SETNEs, 10)
+ GENERATE_ENUM(FRACs, 11)
+ GENERATE_ENUM(TRUNCs, 12)
+ GENERATE_ENUM(FLOORs, 13)
+ GENERATE_ENUM(EXP_IEEE, 14)
+ GENERATE_ENUM(LOG_CLAMP, 15)
+ GENERATE_ENUM(LOG_IEEE, 16)
+ GENERATE_ENUM(RECIP_CLAMP, 17)
+ GENERATE_ENUM(RECIP_FF, 18)
+ GENERATE_ENUM(RECIP_IEEE, 19)
+ GENERATE_ENUM(RECIPSQ_CLAMP, 20)
+ GENERATE_ENUM(RECIPSQ_FF, 21)
+ GENERATE_ENUM(RECIPSQ_IEEE, 22)
+ GENERATE_ENUM(MOVAs, 23)
+ GENERATE_ENUM(MOVA_FLOORs, 24)
+ GENERATE_ENUM(SUBs, 25)
+ GENERATE_ENUM(SUB_PREVs, 26)
+ GENERATE_ENUM(PRED_SETEs, 27)
+ GENERATE_ENUM(PRED_SETNEs, 28)
+ GENERATE_ENUM(PRED_SETGTs, 29)
+ GENERATE_ENUM(PRED_SETGTEs, 30)
+ GENERATE_ENUM(PRED_SET_INVs, 31)
+ GENERATE_ENUM(PRED_SET_POPs, 32)
+ GENERATE_ENUM(PRED_SET_CLRs, 33)
+ GENERATE_ENUM(PRED_SET_RESTOREs, 34)
+ GENERATE_ENUM(KILLEs, 35)
+ GENERATE_ENUM(KILLGTs, 36)
+ GENERATE_ENUM(KILLGTEs, 37)
+ GENERATE_ENUM(KILLNEs, 38)
+ GENERATE_ENUM(KILLONEs, 39)
+ GENERATE_ENUM(SQRT_IEEE, 40)
+ GENERATE_ENUM(MUL_CONST_0, 42)
+ GENERATE_ENUM(MUL_CONST_1, 43)
+ GENERATE_ENUM(ADD_CONST_0, 44)
+ GENERATE_ENUM(ADD_CONST_1, 45)
+ GENERATE_ENUM(SUB_CONST_0, 46)
+ GENERATE_ENUM(SUB_CONST_1, 47)
+ GENERATE_ENUM(SIN, 48)
+ GENERATE_ENUM(COS, 49)
+ GENERATE_ENUM(RETAIN_PREV, 50)
+END_ENUMTYPE(ScalarOpcode)
+
+START_ENUMTYPE(SwizzleType)
+ GENERATE_ENUM(NO_SWIZZLE, 0)
+ GENERATE_ENUM(SHIFT_RIGHT_1, 1)
+ GENERATE_ENUM(SHIFT_RIGHT_2, 2)
+ GENERATE_ENUM(SHIFT_RIGHT_3, 3)
+END_ENUMTYPE(SwizzleType)
+
+START_ENUMTYPE(InputModifier)
+ GENERATE_ENUM(NIL, 0)
+ GENERATE_ENUM(NEGATE, 1)
+END_ENUMTYPE(InputModifier)
+
+START_ENUMTYPE(PredicateSelect)
+ GENERATE_ENUM(NO_PREDICATION, 0)
+ GENERATE_ENUM(PREDICATE_QUAD, 1)
+ GENERATE_ENUM(PREDICATED_2, 2)
+ GENERATE_ENUM(PREDICATED_3, 3)
+END_ENUMTYPE(PredicateSelect)
+
+START_ENUMTYPE(OperandSelect1)
+ GENERATE_ENUM(ABSOLUTE_REG, 0)
+ GENERATE_ENUM(RELATIVE_REG, 1)
+END_ENUMTYPE(OperandSelect1)
+
+START_ENUMTYPE(VectorOpcode)
+ GENERATE_ENUM(ADDv, 0)
+ GENERATE_ENUM(MULv, 1)
+ GENERATE_ENUM(MAXv, 2)
+ GENERATE_ENUM(MINv, 3)
+ GENERATE_ENUM(SETEv, 4)
+ GENERATE_ENUM(SETGTv, 5)
+ GENERATE_ENUM(SETGTEv, 6)
+ GENERATE_ENUM(SETNEv, 7)
+ GENERATE_ENUM(FRACv, 8)
+ GENERATE_ENUM(TRUNCv, 9)
+ GENERATE_ENUM(FLOORv, 10)
+ GENERATE_ENUM(MULADDv, 11)
+ GENERATE_ENUM(CNDEv, 12)
+ GENERATE_ENUM(CNDGTEv, 13)
+ GENERATE_ENUM(CNDGTv, 14)
+ GENERATE_ENUM(DOT4v, 15)
+ GENERATE_ENUM(DOT3v, 16)
+ GENERATE_ENUM(DOT2ADDv, 17)
+ GENERATE_ENUM(CUBEv, 18)
+ GENERATE_ENUM(MAX4v, 19)
+ GENERATE_ENUM(PRED_SETE_PUSHv, 20)
+ GENERATE_ENUM(PRED_SETNE_PUSHv, 21)
+ GENERATE_ENUM(PRED_SETGT_PUSHv, 22)
+ GENERATE_ENUM(PRED_SETGTE_PUSHv, 23)
+ GENERATE_ENUM(KILLEv, 24)
+ GENERATE_ENUM(KILLGTv, 25)
+ GENERATE_ENUM(KILLGTEv, 26)
+ GENERATE_ENUM(KILLNEv, 27)
+ GENERATE_ENUM(DSTv, 28)
+ GENERATE_ENUM(MOVAv, 29)
+END_ENUMTYPE(VectorOpcode)
+
+START_ENUMTYPE(OperandSelect0)
+ GENERATE_ENUM(CONSTANT, 0)
+ GENERATE_ENUM(NON_CONSTANT, 1)
+END_ENUMTYPE(OperandSelect0)
+
+START_ENUMTYPE(Ressource_type)
+ GENERATE_ENUM(ALU, 0)
+ GENERATE_ENUM(TEXTURE, 1)
+END_ENUMTYPE(Ressource_type)
+
+START_ENUMTYPE(Instruction_serial)
+ GENERATE_ENUM(NOT_SERIAL, 0)
+ GENERATE_ENUM(SERIAL, 1)
+END_ENUMTYPE(Instruction_serial)
+
+START_ENUMTYPE(VC_type)
+ GENERATE_ENUM(ALU_TP_REQUEST, 0)
+ GENERATE_ENUM(VC_REQUEST, 1)
+END_ENUMTYPE(VC_type)
+
+START_ENUMTYPE(Addressing)
+ GENERATE_ENUM(RELATIVE_ADDR, 0)
+ GENERATE_ENUM(ABSOLUTE_ADDR, 1)
+END_ENUMTYPE(Addressing)
+
+START_ENUMTYPE(CFOpcode)
+ GENERATE_ENUM(NOP, 0)
+ GENERATE_ENUM(EXECUTE, 1)
+ GENERATE_ENUM(EXECUTE_END, 2)
+ GENERATE_ENUM(COND_EXECUTE, 3)
+ GENERATE_ENUM(COND_EXECUTE_END, 4)
+ GENERATE_ENUM(COND_PRED_EXECUTE, 5)
+ GENERATE_ENUM(COND_PRED_EXECUTE_END, 6)
+ GENERATE_ENUM(LOOP_START, 7)
+ GENERATE_ENUM(LOOP_END, 8)
+ GENERATE_ENUM(COND_CALL, 9)
+ GENERATE_ENUM(RETURN, 10)
+ GENERATE_ENUM(COND_JMP, 11)
+ GENERATE_ENUM(ALLOCATE, 12)
+ GENERATE_ENUM(COND_EXECUTE_PRED_CLEAN, 13)
+ GENERATE_ENUM(COND_EXECUTE_PRED_CLEAN_END, 14)
+ GENERATE_ENUM(MARK_VS_FETCH_DONE, 15)
+END_ENUMTYPE(CFOpcode)
+
+START_ENUMTYPE(Allocation_type)
+ GENERATE_ENUM(SQ_NO_ALLOC, 0)
+ GENERATE_ENUM(SQ_POSITION, 1)
+ GENERATE_ENUM(SQ_PARAMETER_PIXEL, 2)
+ GENERATE_ENUM(SQ_MEMORY, 3)
+END_ENUMTYPE(Allocation_type)
+
+START_ENUMTYPE(TexInstOpcode)
+ GENERATE_ENUM(TEX_INST_FETCH, 1)
+ GENERATE_ENUM(TEX_INST_RESERVED_1, 2)
+ GENERATE_ENUM(TEX_INST_RESERVED_2, 3)
+ GENERATE_ENUM(TEX_INST_RESERVED_3, 4)
+ GENERATE_ENUM(TEX_INST_GET_BORDER_COLOR_FRAC, 16)
+ GENERATE_ENUM(TEX_INST_GET_COMP_TEX_LOD, 17)
+ GENERATE_ENUM(TEX_INST_GET_GRADIENTS, 18)
+ GENERATE_ENUM(TEX_INST_GET_WEIGHTS, 19)
+ GENERATE_ENUM(TEX_INST_SET_TEX_LOD, 24)
+ GENERATE_ENUM(TEX_INST_SET_GRADIENTS_H, 25)
+ GENERATE_ENUM(TEX_INST_SET_GRADIENTS_V, 26)
+ GENERATE_ENUM(TEX_INST_RESERVED_4, 27)
+END_ENUMTYPE(TexInstOpcode)
+
+START_ENUMTYPE(Addressmode)
+ GENERATE_ENUM(LOGICAL, 0)
+ GENERATE_ENUM(LOOP_RELATIVE, 1)
+END_ENUMTYPE(Addressmode)
+
+START_ENUMTYPE(TexCoordDenorm)
+ GENERATE_ENUM(TEX_COORD_NORMALIZED, 0)
+ GENERATE_ENUM(TEX_COORD_UNNORMALIZED, 1)
+END_ENUMTYPE(TexCoordDenorm)
+
+START_ENUMTYPE(SrcSel)
+ GENERATE_ENUM(SRC_SEL_X, 0)
+ GENERATE_ENUM(SRC_SEL_Y, 1)
+ GENERATE_ENUM(SRC_SEL_Z, 2)
+ GENERATE_ENUM(SRC_SEL_W, 3)
+END_ENUMTYPE(SrcSel)
+
+START_ENUMTYPE(DstSel)
+ GENERATE_ENUM(DST_SEL_X, 0)
+ GENERATE_ENUM(DST_SEL_Y, 1)
+ GENERATE_ENUM(DST_SEL_Z, 2)
+ GENERATE_ENUM(DST_SEL_W, 3)
+ GENERATE_ENUM(DST_SEL_0, 4)
+ GENERATE_ENUM(DST_SEL_1, 5)
+ GENERATE_ENUM(DST_SEL_RSVD, 6)
+ GENERATE_ENUM(DST_SEL_MASK, 7)
+END_ENUMTYPE(DstSel)
+
+START_ENUMTYPE(MagFilter)
+ GENERATE_ENUM(MAG_FILTER_POINT, 0)
+ GENERATE_ENUM(MAG_FILTER_LINEAR, 1)
+ GENERATE_ENUM(MAG_FILTER_RESERVED_0, 2)
+ GENERATE_ENUM(MAG_FILTER_USE_FETCH_CONST, 3)
+END_ENUMTYPE(MagFilter)
+
+START_ENUMTYPE(MinFilter)
+ GENERATE_ENUM(MIN_FILTER_POINT, 0)
+ GENERATE_ENUM(MIN_FILTER_LINEAR, 1)
+ GENERATE_ENUM(MIN_FILTER_RESERVED_0, 2)
+ GENERATE_ENUM(MIN_FILTER_USE_FETCH_CONST, 3)
+END_ENUMTYPE(MinFilter)
+
+START_ENUMTYPE(MipFilter)
+ GENERATE_ENUM(MIP_FILTER_POINT, 0)
+ GENERATE_ENUM(MIP_FILTER_LINEAR, 1)
+ GENERATE_ENUM(MIP_FILTER_BASEMAP, 2)
+ GENERATE_ENUM(MIP_FILTER_USE_FETCH_CONST, 3)
+END_ENUMTYPE(MipFilter)
+
+START_ENUMTYPE(AnisoFilter)
+ GENERATE_ENUM(ANISO_FILTER_DISABLED, 0)
+ GENERATE_ENUM(ANISO_FILTER_MAX_1_1, 1)
+ GENERATE_ENUM(ANISO_FILTER_MAX_2_1, 2)
+ GENERATE_ENUM(ANISO_FILTER_MAX_4_1, 3)
+ GENERATE_ENUM(ANISO_FILTER_MAX_8_1, 4)
+ GENERATE_ENUM(ANISO_FILTER_MAX_16_1, 5)
+ GENERATE_ENUM(ANISO_FILTER_USE_FETCH_CONST, 7)
+END_ENUMTYPE(AnisoFilter)
+
+START_ENUMTYPE(ArbitraryFilter)
+ GENERATE_ENUM(ARBITRARY_FILTER_2X4_SYM, 0)
+ GENERATE_ENUM(ARBITRARY_FILTER_2X4_ASYM, 1)
+ GENERATE_ENUM(ARBITRARY_FILTER_4X2_SYM, 2)
+ GENERATE_ENUM(ARBITRARY_FILTER_4X2_ASYM, 3)
+ GENERATE_ENUM(ARBITRARY_FILTER_4X4_SYM, 4)
+ GENERATE_ENUM(ARBITRARY_FILTER_4X4_ASYM, 5)
+ GENERATE_ENUM(ARBITRARY_FILTER_USE_FETCH_CONST, 7)
+END_ENUMTYPE(ArbitraryFilter)
+
+START_ENUMTYPE(VolMagFilter)
+ GENERATE_ENUM(VOL_MAG_FILTER_POINT, 0)
+ GENERATE_ENUM(VOL_MAG_FILTER_LINEAR, 1)
+ GENERATE_ENUM(VOL_MAG_FILTER_USE_FETCH_CONST, 3)
+END_ENUMTYPE(VolMagFilter)
+
+START_ENUMTYPE(VolMinFilter)
+ GENERATE_ENUM(VOL_MIN_FILTER_POINT, 0)
+ GENERATE_ENUM(VOL_MIN_FILTER_LINEAR, 1)
+ GENERATE_ENUM(VOL_MIN_FILTER_USE_FETCH_CONST, 3)
+END_ENUMTYPE(VolMinFilter)
+
+START_ENUMTYPE(PredSelect)
+ GENERATE_ENUM(NOT_PREDICATED, 0)
+ GENERATE_ENUM(PREDICATED, 1)
+END_ENUMTYPE(PredSelect)
+
+START_ENUMTYPE(SampleLocation)
+ GENERATE_ENUM(SAMPLE_CENTROID, 0)
+ GENERATE_ENUM(SAMPLE_CENTER, 1)
+END_ENUMTYPE(SampleLocation)
+
+START_ENUMTYPE(VertexMode)
+ GENERATE_ENUM(POSITION_1_VECTOR, 0)
+ GENERATE_ENUM(POSITION_2_VECTORS_UNUSED, 1)
+ GENERATE_ENUM(POSITION_2_VECTORS_SPRITE, 2)
+ GENERATE_ENUM(POSITION_2_VECTORS_EDGE, 3)
+ GENERATE_ENUM(POSITION_2_VECTORS_KILL, 4)
+ GENERATE_ENUM(POSITION_2_VECTORS_SPRITE_KILL, 5)
+ GENERATE_ENUM(POSITION_2_VECTORS_EDGE_KILL, 6)
+ GENERATE_ENUM(MULTIPASS, 7)
+END_ENUMTYPE(VertexMode)
+
+START_ENUMTYPE(Sample_Cntl)
+ GENERATE_ENUM(CENTROIDS_ONLY, 0)
+ GENERATE_ENUM(CENTERS_ONLY, 1)
+ GENERATE_ENUM(CENTROIDS_AND_CENTERS, 2)
+ GENERATE_ENUM(UNDEF, 3)
+END_ENUMTYPE(Sample_Cntl)
+
+START_ENUMTYPE(MhPerfEncode)
+ GENERATE_ENUM(CP_R0_REQUESTS, 0)
+ GENERATE_ENUM(CP_R1_REQUESTS, 1)
+ GENERATE_ENUM(CP_R2_REQUESTS, 2)
+ GENERATE_ENUM(CP_R3_REQUESTS, 3)
+ GENERATE_ENUM(CP_R4_REQUESTS, 4)
+ GENERATE_ENUM(CP_TOTAL_READ_REQUESTS, 5)
+ GENERATE_ENUM(CP_TOTAL_WRITE_REQUESTS, 6)
+ GENERATE_ENUM(CP_TOTAL_REQUESTS, 7)
+ GENERATE_ENUM(CP_DATA_BYTES_WRITTEN, 8)
+ GENERATE_ENUM(CP_WRITE_CLEAN_RESPONSES, 9)
+ GENERATE_ENUM(CP_R0_READ_BURSTS_RECEIVED, 10)
+ GENERATE_ENUM(CP_R1_READ_BURSTS_RECEIVED, 11)
+ GENERATE_ENUM(CP_R2_READ_BURSTS_RECEIVED, 12)
+ GENERATE_ENUM(CP_R3_READ_BURSTS_RECEIVED, 13)
+ GENERATE_ENUM(CP_R4_READ_BURSTS_RECEIVED, 14)
+ GENERATE_ENUM(CP_TOTAL_READ_BURSTS_RECEIVED, 15)
+ GENERATE_ENUM(CP_R0_DATA_BEATS_READ, 16)
+ GENERATE_ENUM(CP_R1_DATA_BEATS_READ, 17)
+ GENERATE_ENUM(CP_R2_DATA_BEATS_READ, 18)
+ GENERATE_ENUM(CP_R3_DATA_BEATS_READ, 19)
+ GENERATE_ENUM(CP_R4_DATA_BEATS_READ, 20)
+ GENERATE_ENUM(CP_TOTAL_DATA_BEATS_READ, 21)
+ GENERATE_ENUM(VGT_R0_REQUESTS, 22)
+ GENERATE_ENUM(VGT_R1_REQUESTS, 23)
+ GENERATE_ENUM(VGT_TOTAL_REQUESTS, 24)
+ GENERATE_ENUM(VGT_R0_READ_BURSTS_RECEIVED, 25)
+ GENERATE_ENUM(VGT_R1_READ_BURSTS_RECEIVED, 26)
+ GENERATE_ENUM(VGT_TOTAL_READ_BURSTS_RECEIVED, 27)
+ GENERATE_ENUM(VGT_R0_DATA_BEATS_READ, 28)
+ GENERATE_ENUM(VGT_R1_DATA_BEATS_READ, 29)
+ GENERATE_ENUM(VGT_TOTAL_DATA_BEATS_READ, 30)
+ GENERATE_ENUM(TC_TOTAL_REQUESTS, 31)
+ GENERATE_ENUM(TC_ROQ_REQUESTS, 32)
+ GENERATE_ENUM(TC_INFO_SENT, 33)
+ GENERATE_ENUM(TC_READ_BURSTS_RECEIVED, 34)
+ GENERATE_ENUM(TC_DATA_BEATS_READ, 35)
+ GENERATE_ENUM(TCD_BURSTS_READ, 36)
+ GENERATE_ENUM(RB_REQUESTS, 37)
+ GENERATE_ENUM(RB_DATA_BYTES_WRITTEN, 38)
+ GENERATE_ENUM(RB_WRITE_CLEAN_RESPONSES, 39)
+ GENERATE_ENUM(AXI_READ_REQUESTS_ID_0, 40)
+ GENERATE_ENUM(AXI_READ_REQUESTS_ID_1, 41)
+ GENERATE_ENUM(AXI_READ_REQUESTS_ID_2, 42)
+ GENERATE_ENUM(AXI_READ_REQUESTS_ID_3, 43)
+ GENERATE_ENUM(AXI_READ_REQUESTS_ID_4, 44)
+ GENERATE_ENUM(AXI_READ_REQUESTS_ID_5, 45)
+ GENERATE_ENUM(AXI_READ_REQUESTS_ID_6, 46)
+ GENERATE_ENUM(AXI_READ_REQUESTS_ID_7, 47)
+ GENERATE_ENUM(AXI_TOTAL_READ_REQUESTS, 48)
+ GENERATE_ENUM(AXI_WRITE_REQUESTS_ID_0, 49)
+ GENERATE_ENUM(AXI_WRITE_REQUESTS_ID_1, 50)
+ GENERATE_ENUM(AXI_WRITE_REQUESTS_ID_2, 51)
+ GENERATE_ENUM(AXI_WRITE_REQUESTS_ID_3, 52)
+ GENERATE_ENUM(AXI_WRITE_REQUESTS_ID_4, 53)
+ GENERATE_ENUM(AXI_WRITE_REQUESTS_ID_5, 54)
+ GENERATE_ENUM(AXI_WRITE_REQUESTS_ID_6, 55)
+ GENERATE_ENUM(AXI_WRITE_REQUESTS_ID_7, 56)
+ GENERATE_ENUM(AXI_TOTAL_WRITE_REQUESTS, 57)
+ GENERATE_ENUM(AXI_TOTAL_REQUESTS_ID_0, 58)
+ GENERATE_ENUM(AXI_TOTAL_REQUESTS_ID_1, 59)
+ GENERATE_ENUM(AXI_TOTAL_REQUESTS_ID_2, 60)
+ GENERATE_ENUM(AXI_TOTAL_REQUESTS_ID_3, 61)
+ GENERATE_ENUM(AXI_TOTAL_REQUESTS_ID_4, 62)
+ GENERATE_ENUM(AXI_TOTAL_REQUESTS_ID_5, 63)
+ GENERATE_ENUM(AXI_TOTAL_REQUESTS_ID_6, 64)
+ GENERATE_ENUM(AXI_TOTAL_REQUESTS_ID_7, 65)
+ GENERATE_ENUM(AXI_TOTAL_REQUESTS, 66)
+ GENERATE_ENUM(AXI_READ_CHANNEL_BURSTS_ID_0, 67)
+ GENERATE_ENUM(AXI_READ_CHANNEL_BURSTS_ID_1, 68)
+ GENERATE_ENUM(AXI_READ_CHANNEL_BURSTS_ID_2, 69)
+ GENERATE_ENUM(AXI_READ_CHANNEL_BURSTS_ID_3, 70)
+ GENERATE_ENUM(AXI_READ_CHANNEL_BURSTS_ID_4, 71)
+ GENERATE_ENUM(AXI_READ_CHANNEL_BURSTS_ID_5, 72)
+ GENERATE_ENUM(AXI_READ_CHANNEL_BURSTS_ID_6, 73)
+ GENERATE_ENUM(AXI_READ_CHANNEL_BURSTS_ID_7, 74)
+ GENERATE_ENUM(AXI_READ_CHANNEL_TOTAL_BURSTS, 75)
+ GENERATE_ENUM(AXI_READ_CHANNEL_DATA_BEATS_READ_ID_0, 76)
+ GENERATE_ENUM(AXI_READ_CHANNEL_DATA_BEATS_READ_ID_1, 77)
+ GENERATE_ENUM(AXI_READ_CHANNEL_DATA_BEATS_READ_ID_2, 78)
+ GENERATE_ENUM(AXI_READ_CHANNEL_DATA_BEATS_READ_ID_3, 79)
+ GENERATE_ENUM(AXI_READ_CHANNEL_DATA_BEATS_READ_ID_4, 80)
+ GENERATE_ENUM(AXI_READ_CHANNEL_DATA_BEATS_READ_ID_5, 81)
+ GENERATE_ENUM(AXI_READ_CHANNEL_DATA_BEATS_READ_ID_6, 82)
+ GENERATE_ENUM(AXI_READ_CHANNEL_DATA_BEATS_READ_ID_7, 83)
+ GENERATE_ENUM(AXI_READ_CHANNEL_TOTAL_DATA_BEATS_READ, 84)
+ GENERATE_ENUM(AXI_WRITE_CHANNEL_BURSTS_ID_0, 85)
+ GENERATE_ENUM(AXI_WRITE_CHANNEL_BURSTS_ID_1, 86)
+ GENERATE_ENUM(AXI_WRITE_CHANNEL_BURSTS_ID_2, 87)
+ GENERATE_ENUM(AXI_WRITE_CHANNEL_BURSTS_ID_3, 88)
+ GENERATE_ENUM(AXI_WRITE_CHANNEL_BURSTS_ID_4, 89)
+ GENERATE_ENUM(AXI_WRITE_CHANNEL_BURSTS_ID_5, 90)
+ GENERATE_ENUM(AXI_WRITE_CHANNEL_BURSTS_ID_6, 91)
+ GENERATE_ENUM(AXI_WRITE_CHANNEL_BURSTS_ID_7, 92)
+ GENERATE_ENUM(AXI_WRITE_CHANNEL_TOTAL_BURSTS, 93)
+ GENERATE_ENUM(AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_0, 94)
+ GENERATE_ENUM(AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_1, 95)
+ GENERATE_ENUM(AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_2, 96)
+ GENERATE_ENUM(AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_3, 97)
+ GENERATE_ENUM(AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_4, 98)
+ GENERATE_ENUM(AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_5, 99)
+ GENERATE_ENUM(AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_6, 100)
+ GENERATE_ENUM(AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_7, 101)
+ GENERATE_ENUM(AXI_WRITE_CHANNEL_TOTAL_DATA_BYTES_WRITTEN, 102)
+ GENERATE_ENUM(AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_0, 103)
+ GENERATE_ENUM(AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_1, 104)
+ GENERATE_ENUM(AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_2, 105)
+ GENERATE_ENUM(AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_3, 106)
+ GENERATE_ENUM(AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_4, 107)
+ GENERATE_ENUM(AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_5, 108)
+ GENERATE_ENUM(AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_6, 109)
+ GENERATE_ENUM(AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_7, 110)
+ GENERATE_ENUM(AXI_WRITE_RESPONSE_CHANNEL_TOTAL_RESPONSES, 111)
+ GENERATE_ENUM(TOTAL_MMU_MISSES, 112)
+ GENERATE_ENUM(MMU_READ_MISSES, 113)
+ GENERATE_ENUM(MMU_WRITE_MISSES, 114)
+ GENERATE_ENUM(TOTAL_MMU_HITS, 115)
+ GENERATE_ENUM(MMU_READ_HITS, 116)
+ GENERATE_ENUM(MMU_WRITE_HITS, 117)
+ GENERATE_ENUM(SPLIT_MODE_TC_HITS, 118)
+ GENERATE_ENUM(SPLIT_MODE_TC_MISSES, 119)
+ GENERATE_ENUM(SPLIT_MODE_NON_TC_HITS, 120)
+ GENERATE_ENUM(SPLIT_MODE_NON_TC_MISSES, 121)
+ GENERATE_ENUM(STALL_AWAITING_TLB_MISS_FETCH, 122)
+ GENERATE_ENUM(MMU_TLB_MISS_READ_BURSTS_RECEIVED, 123)
+ GENERATE_ENUM(MMU_TLB_MISS_DATA_BEATS_READ, 124)
+ GENERATE_ENUM(CP_CYCLES_HELD_OFF, 125)
+ GENERATE_ENUM(VGT_CYCLES_HELD_OFF, 126)
+ GENERATE_ENUM(TC_CYCLES_HELD_OFF, 127)
+ GENERATE_ENUM(TC_ROQ_CYCLES_HELD_OFF, 128)
+ GENERATE_ENUM(TC_CYCLES_HELD_OFF_TCD_FULL, 129)
+ GENERATE_ENUM(RB_CYCLES_HELD_OFF, 130)
+ GENERATE_ENUM(TOTAL_CYCLES_ANY_CLNT_HELD_OFF, 131)
+ GENERATE_ENUM(TLB_MISS_CYCLES_HELD_OFF, 132)
+ GENERATE_ENUM(AXI_READ_REQUEST_HELD_OFF, 133)
+ GENERATE_ENUM(AXI_WRITE_REQUEST_HELD_OFF, 134)
+ GENERATE_ENUM(AXI_REQUEST_HELD_OFF, 135)
+ GENERATE_ENUM(AXI_REQUEST_HELD_OFF_INFLIGHT_LIMIT, 136)
+ GENERATE_ENUM(AXI_WRITE_DATA_HELD_OFF, 137)
+ GENERATE_ENUM(CP_SAME_PAGE_BANK_REQUESTS, 138)
+ GENERATE_ENUM(VGT_SAME_PAGE_BANK_REQUESTS, 139)
+ GENERATE_ENUM(TC_SAME_PAGE_BANK_REQUESTS, 140)
+ GENERATE_ENUM(TC_ARB_HOLD_SAME_PAGE_BANK_REQUESTS, 141)
+ GENERATE_ENUM(RB_SAME_PAGE_BANK_REQUESTS, 142)
+ GENERATE_ENUM(TOTAL_SAME_PAGE_BANK_REQUESTS, 143)
+ GENERATE_ENUM(CP_SAME_PAGE_BANK_REQUESTS_KILLED_FAIRNESS_LIMIT, 144)
+ GENERATE_ENUM(VGT_SAME_PAGE_BANK_REQUESTS_KILLED_FAIRNESS_LIMIT, 145)
+ GENERATE_ENUM(TC_SAME_PAGE_BANK_REQUESTS_KILLED_FAIRNESS_LIMIT, 146)
+ GENERATE_ENUM(RB_SAME_PAGE_BANK_REQUESTS_KILLED_FAIRNESS_LIMIT, 147)
+ GENERATE_ENUM(TOTAL_SAME_PAGE_BANK_KILLED_FAIRNESS_LIMIT, 148)
+ GENERATE_ENUM(TOTAL_MH_READ_REQUESTS, 149)
+ GENERATE_ENUM(TOTAL_MH_WRITE_REQUESTS, 150)
+ GENERATE_ENUM(TOTAL_MH_REQUESTS, 151)
+ GENERATE_ENUM(MH_BUSY, 152)
+ GENERATE_ENUM(CP_NTH_ACCESS_SAME_PAGE_BANK_SEQUENCE, 153)
+ GENERATE_ENUM(VGT_NTH_ACCESS_SAME_PAGE_BANK_SEQUENCE, 154)
+ GENERATE_ENUM(TC_NTH_ACCESS_SAME_PAGE_BANK_SEQUENCE, 155)
+ GENERATE_ENUM(RB_NTH_ACCESS_SAME_PAGE_BANK_SEQUENCE, 156)
+ GENERATE_ENUM(TC_ROQ_N_VALID_ENTRIES, 157)
+ GENERATE_ENUM(ARQ_N_ENTRIES, 158)
+ GENERATE_ENUM(WDB_N_ENTRIES, 159)
+ GENERATE_ENUM(MH_READ_LATENCY_OUTST_REQ_SUM, 160)
+ GENERATE_ENUM(MC_READ_LATENCY_OUTST_REQ_SUM, 161)
+ GENERATE_ENUM(MC_TOTAL_READ_REQUESTS, 162)
+ GENERATE_ENUM(ELAPSED_CYCLES_MH_GATED_CLK, 163)
+ GENERATE_ENUM(ELAPSED_CLK_CYCLES, 164)
+ GENERATE_ENUM(CP_W_16B_REQUESTS, 165)
+ GENERATE_ENUM(CP_W_32B_REQUESTS, 166)
+ GENERATE_ENUM(TC_16B_REQUESTS, 167)
+ GENERATE_ENUM(TC_32B_REQUESTS, 168)
+ GENERATE_ENUM(PA_REQUESTS, 169)
+ GENERATE_ENUM(PA_DATA_BYTES_WRITTEN, 170)
+ GENERATE_ENUM(PA_WRITE_CLEAN_RESPONSES, 171)
+ GENERATE_ENUM(PA_CYCLES_HELD_OFF, 172)
+ GENERATE_ENUM(AXI_READ_REQUEST_DATA_BEATS_ID_0, 173)
+ GENERATE_ENUM(AXI_READ_REQUEST_DATA_BEATS_ID_1, 174)
+ GENERATE_ENUM(AXI_READ_REQUEST_DATA_BEATS_ID_2, 175)
+ GENERATE_ENUM(AXI_READ_REQUEST_DATA_BEATS_ID_3, 176)
+ GENERATE_ENUM(AXI_READ_REQUEST_DATA_BEATS_ID_4, 177)
+ GENERATE_ENUM(AXI_READ_REQUEST_DATA_BEATS_ID_5, 178)
+ GENERATE_ENUM(AXI_READ_REQUEST_DATA_BEATS_ID_6, 179)
+ GENERATE_ENUM(AXI_READ_REQUEST_DATA_BEATS_ID_7, 180)
+ GENERATE_ENUM(AXI_TOTAL_READ_REQUEST_DATA_BEATS, 181)
+END_ENUMTYPE(MhPerfEncode)
+
+START_ENUMTYPE(MmuClntBeh)
+ GENERATE_ENUM(BEH_NEVR, 0)
+ GENERATE_ENUM(BEH_TRAN_RNG, 1)
+ GENERATE_ENUM(BEH_TRAN_FLT, 2)
+END_ENUMTYPE(MmuClntBeh)
+
+START_ENUMTYPE(RBBM_PERFCOUNT1_SEL)
+ GENERATE_ENUM(RBBM1_COUNT, 0)
+ GENERATE_ENUM(RBBM1_NRT_BUSY, 1)
+ GENERATE_ENUM(RBBM1_RB_BUSY, 2)
+ GENERATE_ENUM(RBBM1_SQ_CNTX0_BUSY, 3)
+ GENERATE_ENUM(RBBM1_SQ_CNTX17_BUSY, 4)
+ GENERATE_ENUM(RBBM1_VGT_BUSY, 5)
+ GENERATE_ENUM(RBBM1_VGT_NODMA_BUSY, 6)
+ GENERATE_ENUM(RBBM1_PA_BUSY, 7)
+ GENERATE_ENUM(RBBM1_SC_CNTX_BUSY, 8)
+ GENERATE_ENUM(RBBM1_TPC_BUSY, 9)
+ GENERATE_ENUM(RBBM1_TC_BUSY, 10)
+ GENERATE_ENUM(RBBM1_SX_BUSY, 11)
+ GENERATE_ENUM(RBBM1_CP_COHER_BUSY, 12)
+ GENERATE_ENUM(RBBM1_CP_NRT_BUSY, 13)
+ GENERATE_ENUM(RBBM1_GFX_IDLE_STALL, 14)
+ GENERATE_ENUM(RBBM1_INTERRUPT, 15)
+END_ENUMTYPE(RBBM_PERFCOUNT1_SEL)
+
+START_ENUMTYPE(CP_PERFCOUNT_SEL)
+ GENERATE_ENUM(ALWAYS_COUNT, 0)
+ GENERATE_ENUM(TRANS_FIFO_FULL, 1)
+ GENERATE_ENUM(TRANS_FIFO_AF, 2)
+ GENERATE_ENUM(RCIU_PFPTRANS_WAIT, 3)
+ GENERATE_ENUM(Reserved_04, 4)
+ GENERATE_ENUM(Reserved_05, 5)
+ GENERATE_ENUM(RCIU_NRTTRANS_WAIT, 6)
+ GENERATE_ENUM(Reserved_07, 7)
+ GENERATE_ENUM(CSF_NRT_READ_WAIT, 8)
+ GENERATE_ENUM(CSF_I1_FIFO_FULL, 9)
+ GENERATE_ENUM(CSF_I2_FIFO_FULL, 10)
+ GENERATE_ENUM(CSF_ST_FIFO_FULL, 11)
+ GENERATE_ENUM(Reserved_12, 12)
+ GENERATE_ENUM(CSF_RING_ROQ_FULL, 13)
+ GENERATE_ENUM(CSF_I1_ROQ_FULL, 14)
+ GENERATE_ENUM(CSF_I2_ROQ_FULL, 15)
+ GENERATE_ENUM(CSF_ST_ROQ_FULL, 16)
+ GENERATE_ENUM(Reserved_17, 17)
+ GENERATE_ENUM(MIU_TAG_MEM_FULL, 18)
+ GENERATE_ENUM(MIU_WRITECLEAN, 19)
+ GENERATE_ENUM(Reserved_20, 20)
+ GENERATE_ENUM(Reserved_21, 21)
+ GENERATE_ENUM(MIU_NRT_WRITE_STALLED, 22)
+ GENERATE_ENUM(MIU_NRT_READ_STALLED, 23)
+ GENERATE_ENUM(ME_WRITE_CONFIRM_FIFO_FULL, 24)
+ GENERATE_ENUM(ME_VS_DEALLOC_FIFO_FULL, 25)
+ GENERATE_ENUM(ME_PS_DEALLOC_FIFO_FULL, 26)
+ GENERATE_ENUM(ME_REGS_VS_EVENT_FIFO_FULL, 27)
+ GENERATE_ENUM(ME_REGS_PS_EVENT_FIFO_FULL, 28)
+ GENERATE_ENUM(ME_REGS_CF_EVENT_FIFO_FULL, 29)
+ GENERATE_ENUM(ME_MICRO_RB_STARVED, 30)
+ GENERATE_ENUM(ME_MICRO_I1_STARVED, 31)
+ GENERATE_ENUM(ME_MICRO_I2_STARVED, 32)
+ GENERATE_ENUM(ME_MICRO_ST_STARVED, 33)
+ GENERATE_ENUM(Reserved_34, 34)
+ GENERATE_ENUM(Reserved_35, 35)
+ GENERATE_ENUM(Reserved_36, 36)
+ GENERATE_ENUM(Reserved_37, 37)
+ GENERATE_ENUM(Reserved_38, 38)
+ GENERATE_ENUM(Reserved_39, 39)
+ GENERATE_ENUM(RCIU_RBBM_DWORD_SENT, 40)
+ GENERATE_ENUM(ME_BUSY_CLOCKS, 41)
+ GENERATE_ENUM(ME_WAIT_CONTEXT_AVAIL, 42)
+ GENERATE_ENUM(PFP_TYPE0_PACKET, 43)
+ GENERATE_ENUM(PFP_TYPE3_PACKET, 44)
+ GENERATE_ENUM(CSF_RB_WPTR_NEQ_RPTR, 45)
+ GENERATE_ENUM(CSF_I1_SIZE_NEQ_ZERO, 46)
+ GENERATE_ENUM(CSF_I2_SIZE_NEQ_ZERO, 47)
+ GENERATE_ENUM(CSF_RBI1I2_FETCHING, 48)
+ GENERATE_ENUM(Reserved_49, 49)
+ GENERATE_ENUM(Reserved_50, 50)
+ GENERATE_ENUM(Reserved_51, 51)
+ GENERATE_ENUM(Reserved_52, 52)
+ GENERATE_ENUM(Reserved_53, 53)
+ GENERATE_ENUM(Reserved_54, 54)
+ GENERATE_ENUM(Reserved_55, 55)
+ GENERATE_ENUM(Reserved_56, 56)
+ GENERATE_ENUM(Reserved_57, 57)
+ GENERATE_ENUM(Reserved_58, 58)
+ GENERATE_ENUM(Reserved_59, 59)
+ GENERATE_ENUM(Reserved_60, 60)
+ GENERATE_ENUM(Reserved_61, 61)
+ GENERATE_ENUM(Reserved_62, 62)
+ GENERATE_ENUM(Reserved_63, 63)
+END_ENUMTYPE(CP_PERFCOUNT_SEL)
+
+START_ENUMTYPE(ColorformatX)
+ GENERATE_ENUM(COLORX_4_4_4_4, 0)
+ GENERATE_ENUM(COLORX_1_5_5_5, 1)
+ GENERATE_ENUM(COLORX_5_6_5, 2)
+ GENERATE_ENUM(COLORX_8, 3)
+ GENERATE_ENUM(COLORX_8_8, 4)
+ GENERATE_ENUM(COLORX_8_8_8_8, 5)
+ GENERATE_ENUM(COLORX_S8_8_8_8, 6)
+ GENERATE_ENUM(COLORX_16_FLOAT, 7)
+ GENERATE_ENUM(COLORX_16_16_FLOAT, 8)
+ GENERATE_ENUM(COLORX_16_16_16_16_FLOAT, 9)
+ GENERATE_ENUM(COLORX_32_FLOAT, 10)
+ GENERATE_ENUM(COLORX_32_32_FLOAT, 11)
+ GENERATE_ENUM(COLORX_32_32_32_32_FLOAT, 12)
+ GENERATE_ENUM(COLORX_2_3_3, 13)
+ GENERATE_ENUM(COLORX_8_8_8, 14)
+END_ENUMTYPE(ColorformatX)
+
+START_ENUMTYPE(DepthformatX)
+ GENERATE_ENUM(DEPTHX_16, 0)
+ GENERATE_ENUM(DEPTHX_24_8, 1)
+END_ENUMTYPE(DepthformatX)
+
+START_ENUMTYPE(CompareFrag)
+ GENERATE_ENUM(FRAG_NEVER, 0)
+ GENERATE_ENUM(FRAG_LESS, 1)
+ GENERATE_ENUM(FRAG_EQUAL, 2)
+ GENERATE_ENUM(FRAG_LEQUAL, 3)
+ GENERATE_ENUM(FRAG_GREATER, 4)
+ GENERATE_ENUM(FRAG_NOTEQUAL, 5)
+ GENERATE_ENUM(FRAG_GEQUAL, 6)
+ GENERATE_ENUM(FRAG_ALWAYS, 7)
+END_ENUMTYPE(CompareFrag)
+
+START_ENUMTYPE(CompareRef)
+ GENERATE_ENUM(REF_NEVER, 0)
+ GENERATE_ENUM(REF_LESS, 1)
+ GENERATE_ENUM(REF_EQUAL, 2)
+ GENERATE_ENUM(REF_LEQUAL, 3)
+ GENERATE_ENUM(REF_GREATER, 4)
+ GENERATE_ENUM(REF_NOTEQUAL, 5)
+ GENERATE_ENUM(REF_GEQUAL, 6)
+ GENERATE_ENUM(REF_ALWAYS, 7)
+END_ENUMTYPE(CompareRef)
+
+START_ENUMTYPE(StencilOp)
+ GENERATE_ENUM(STENCIL_KEEP, 0)
+ GENERATE_ENUM(STENCIL_ZERO, 1)
+ GENERATE_ENUM(STENCIL_REPLACE, 2)
+ GENERATE_ENUM(STENCIL_INCR_CLAMP, 3)
+ GENERATE_ENUM(STENCIL_DECR_CLAMP, 4)
+ GENERATE_ENUM(STENCIL_INVERT, 5)
+ GENERATE_ENUM(STENCIL_INCR_WRAP, 6)
+ GENERATE_ENUM(STENCIL_DECR_WRAP, 7)
+END_ENUMTYPE(StencilOp)
+
+START_ENUMTYPE(BlendOpX)
+ GENERATE_ENUM(BLENDX_ZERO, 0)
+ GENERATE_ENUM(BLENDX_ONE, 1)
+ GENERATE_ENUM(BLENDX_SRC_COLOR, 4)
+ GENERATE_ENUM(BLENDX_ONE_MINUS_SRC_COLOR, 5)
+ GENERATE_ENUM(BLENDX_SRC_ALPHA, 6)
+ GENERATE_ENUM(BLENDX_ONE_MINUS_SRC_ALPHA, 7)
+ GENERATE_ENUM(BLENDX_DST_COLOR, 8)
+ GENERATE_ENUM(BLENDX_ONE_MINUS_DST_COLOR, 9)
+ GENERATE_ENUM(BLENDX_DST_ALPHA, 10)
+ GENERATE_ENUM(BLENDX_ONE_MINUS_DST_ALPHA, 11)
+ GENERATE_ENUM(BLENDX_CONSTANT_COLOR, 12)
+ GENERATE_ENUM(BLENDX_ONE_MINUS_CONSTANT_COLOR, 13)
+ GENERATE_ENUM(BLENDX_CONSTANT_ALPHA, 14)
+ GENERATE_ENUM(BLENDX_ONE_MINUS_CONSTANT_ALPHA, 15)
+ GENERATE_ENUM(BLENDX_SRC_ALPHA_SATURATE, 16)
+END_ENUMTYPE(BlendOpX)
+
+START_ENUMTYPE(CombFuncX)
+ GENERATE_ENUM(COMB_DST_PLUS_SRC, 0)
+ GENERATE_ENUM(COMB_SRC_MINUS_DST, 1)
+ GENERATE_ENUM(COMB_MIN_DST_SRC, 2)
+ GENERATE_ENUM(COMB_MAX_DST_SRC, 3)
+ GENERATE_ENUM(COMB_DST_MINUS_SRC, 4)
+ GENERATE_ENUM(COMB_DST_PLUS_SRC_BIAS, 5)
+END_ENUMTYPE(CombFuncX)
+
+START_ENUMTYPE(DitherModeX)
+ GENERATE_ENUM(DITHER_DISABLE, 0)
+ GENERATE_ENUM(DITHER_ALWAYS, 1)
+ GENERATE_ENUM(DITHER_IF_ALPHA_OFF, 2)
+END_ENUMTYPE(DitherModeX)
+
+START_ENUMTYPE(DitherTypeX)
+ GENERATE_ENUM(DITHER_PIXEL, 0)
+ GENERATE_ENUM(DITHER_SUBPIXEL, 1)
+END_ENUMTYPE(DitherTypeX)
+
+START_ENUMTYPE(EdramMode)
+ GENERATE_ENUM(EDRAM_NOP, 0)
+ GENERATE_ENUM(COLOR_DEPTH, 4)
+ GENERATE_ENUM(DEPTH_ONLY, 5)
+ GENERATE_ENUM(EDRAM_COPY, 6)
+END_ENUMTYPE(EdramMode)
+
+START_ENUMTYPE(SurfaceEndian)
+ GENERATE_ENUM(ENDIAN_NONE, 0)
+ GENERATE_ENUM(ENDIAN_8IN16, 1)
+ GENERATE_ENUM(ENDIAN_8IN32, 2)
+ GENERATE_ENUM(ENDIAN_16IN32, 3)
+ GENERATE_ENUM(ENDIAN_8IN64, 4)
+ GENERATE_ENUM(ENDIAN_8IN128, 5)
+END_ENUMTYPE(SurfaceEndian)
+
+START_ENUMTYPE(EdramSizeX)
+ GENERATE_ENUM(EDRAMSIZE_16KB, 0)
+ GENERATE_ENUM(EDRAMSIZE_32KB, 1)
+ GENERATE_ENUM(EDRAMSIZE_64KB, 2)
+ GENERATE_ENUM(EDRAMSIZE_128KB, 3)
+ GENERATE_ENUM(EDRAMSIZE_256KB, 4)
+ GENERATE_ENUM(EDRAMSIZE_512KB, 5)
+ GENERATE_ENUM(EDRAMSIZE_1MB, 6)
+ GENERATE_ENUM(EDRAMSIZE_2MB, 7)
+ GENERATE_ENUM(EDRAMSIZE_4MB, 8)
+ GENERATE_ENUM(EDRAMSIZE_8MB, 9)
+ GENERATE_ENUM(EDRAMSIZE_16MB, 10)
+END_ENUMTYPE(EdramSizeX)
+
+START_ENUMTYPE(RB_PERFCNT_SELECT)
+ GENERATE_ENUM(RBPERF_CNTX_BUSY, 0)
+ GENERATE_ENUM(RBPERF_CNTX_BUSY_MAX, 1)
+ GENERATE_ENUM(RBPERF_SX_QUAD_STARVED, 2)
+ GENERATE_ENUM(RBPERF_SX_QUAD_STARVED_MAX, 3)
+ GENERATE_ENUM(RBPERF_GA_GC_CH0_SYS_REQ, 4)
+ GENERATE_ENUM(RBPERF_GA_GC_CH0_SYS_REQ_MAX, 5)
+ GENERATE_ENUM(RBPERF_GA_GC_CH1_SYS_REQ, 6)
+ GENERATE_ENUM(RBPERF_GA_GC_CH1_SYS_REQ_MAX, 7)
+ GENERATE_ENUM(RBPERF_MH_STARVED, 8)
+ GENERATE_ENUM(RBPERF_MH_STARVED_MAX, 9)
+ GENERATE_ENUM(RBPERF_AZ_BC_COLOR_BUSY, 10)
+ GENERATE_ENUM(RBPERF_AZ_BC_COLOR_BUSY_MAX, 11)
+ GENERATE_ENUM(RBPERF_AZ_BC_Z_BUSY, 12)
+ GENERATE_ENUM(RBPERF_AZ_BC_Z_BUSY_MAX, 13)
+ GENERATE_ENUM(RBPERF_RB_SC_TILE_RTR_N, 14)
+ GENERATE_ENUM(RBPERF_RB_SC_TILE_RTR_N_MAX, 15)
+ GENERATE_ENUM(RBPERF_RB_SC_SAMP_RTR_N, 16)
+ GENERATE_ENUM(RBPERF_RB_SC_SAMP_RTR_N_MAX, 17)
+ GENERATE_ENUM(RBPERF_RB_SX_QUAD_RTR_N, 18)
+ GENERATE_ENUM(RBPERF_RB_SX_QUAD_RTR_N_MAX, 19)
+ GENERATE_ENUM(RBPERF_RB_SX_COLOR_RTR_N, 20)
+ GENERATE_ENUM(RBPERF_RB_SX_COLOR_RTR_N_MAX, 21)
+ GENERATE_ENUM(RBPERF_RB_SC_SAMP_LZ_BUSY, 22)
+ GENERATE_ENUM(RBPERF_RB_SC_SAMP_LZ_BUSY_MAX, 23)
+ GENERATE_ENUM(RBPERF_ZXP_STALL, 24)
+ GENERATE_ENUM(RBPERF_ZXP_STALL_MAX, 25)
+ GENERATE_ENUM(RBPERF_EVENT_PENDING, 26)
+ GENERATE_ENUM(RBPERF_EVENT_PENDING_MAX, 27)
+ GENERATE_ENUM(RBPERF_RB_MH_VALID, 28)
+ GENERATE_ENUM(RBPERF_RB_MH_VALID_MAX, 29)
+ GENERATE_ENUM(RBPERF_SX_RB_QUAD_SEND, 30)
+ GENERATE_ENUM(RBPERF_SX_RB_COLOR_SEND, 31)
+ GENERATE_ENUM(RBPERF_SC_RB_TILE_SEND, 32)
+ GENERATE_ENUM(RBPERF_SC_RB_SAMPLE_SEND, 33)
+ GENERATE_ENUM(RBPERF_SX_RB_MEM_EXPORT, 34)
+ GENERATE_ENUM(RBPERF_SX_RB_QUAD_EVENT, 35)
+ GENERATE_ENUM(RBPERF_SC_RB_TILE_EVENT_FILTERED, 36)
+ GENERATE_ENUM(RBPERF_SC_RB_TILE_EVENT_ALL, 37)
+ GENERATE_ENUM(RBPERF_RB_SC_EZ_SEND, 38)
+ GENERATE_ENUM(RBPERF_RB_SX_INDEX_SEND, 39)
+ GENERATE_ENUM(RBPERF_GMEM_INTFO_RD, 40)
+ GENERATE_ENUM(RBPERF_GMEM_INTF1_RD, 41)
+ GENERATE_ENUM(RBPERF_GMEM_INTFO_WR, 42)
+ GENERATE_ENUM(RBPERF_GMEM_INTF1_WR, 43)
+ GENERATE_ENUM(RBPERF_RB_CP_CONTEXT_DONE, 44)
+ GENERATE_ENUM(RBPERF_RB_CP_CACHE_FLUSH, 45)
+ GENERATE_ENUM(RBPERF_ZPASS_DONE, 46)
+ GENERATE_ENUM(RBPERF_ZCMD_VALID, 47)
+ GENERATE_ENUM(RBPERF_CCMD_VALID, 48)
+ GENERATE_ENUM(RBPERF_ACCUM_GRANT, 49)
+ GENERATE_ENUM(RBPERF_ACCUM_C0_GRANT, 50)
+ GENERATE_ENUM(RBPERF_ACCUM_C1_GRANT, 51)
+ GENERATE_ENUM(RBPERF_ACCUM_FULL_BE_WR, 52)
+ GENERATE_ENUM(RBPERF_ACCUM_REQUEST_NO_GRANT, 53)
+ GENERATE_ENUM(RBPERF_ACCUM_TIMEOUT_PULSE, 54)
+ GENERATE_ENUM(RBPERF_ACCUM_LIN_TIMEOUT_PULSE, 55)
+ GENERATE_ENUM(RBPERF_ACCUM_CAM_HIT_FLUSHING, 56)
+END_ENUMTYPE(RB_PERFCNT_SELECT)
+
+START_ENUMTYPE(DepthFormat)
+ GENERATE_ENUM(DEPTH_24_8, 22)
+ GENERATE_ENUM(DEPTH_24_8_FLOAT, 23)
+ GENERATE_ENUM(DEPTH_16, 24)
+END_ENUMTYPE(DepthFormat)
+
+START_ENUMTYPE(SurfaceSwap)
+ GENERATE_ENUM(SWAP_LOWRED, 0)
+ GENERATE_ENUM(SWAP_LOWBLUE, 1)
+END_ENUMTYPE(SurfaceSwap)
+
+START_ENUMTYPE(DepthArray)
+ GENERATE_ENUM(ARRAY_2D_ALT_DEPTH, 0)
+ GENERATE_ENUM(ARRAY_2D_DEPTH, 1)
+END_ENUMTYPE(DepthArray)
+
+START_ENUMTYPE(ColorArray)
+ GENERATE_ENUM(ARRAY_2D_ALT_COLOR, 0)
+ GENERATE_ENUM(ARRAY_2D_COLOR, 1)
+ GENERATE_ENUM(ARRAY_3D_SLICE_COLOR, 3)
+END_ENUMTYPE(ColorArray)
+
+START_ENUMTYPE(ColorFormat)
+ GENERATE_ENUM(COLOR_8, 2)
+ GENERATE_ENUM(COLOR_1_5_5_5, 3)
+ GENERATE_ENUM(COLOR_5_6_5, 4)
+ GENERATE_ENUM(COLOR_6_5_5, 5)
+ GENERATE_ENUM(COLOR_8_8_8_8, 6)
+ GENERATE_ENUM(COLOR_2_10_10_10, 7)
+ GENERATE_ENUM(COLOR_8_A, 8)
+ GENERATE_ENUM(COLOR_8_B, 9)
+ GENERATE_ENUM(COLOR_8_8, 10)
+ GENERATE_ENUM(COLOR_8_8_8, 11)
+ GENERATE_ENUM(COLOR_8_8_8_8_A, 14)
+ GENERATE_ENUM(COLOR_4_4_4_4, 15)
+ GENERATE_ENUM(COLOR_10_11_11, 16)
+ GENERATE_ENUM(COLOR_11_11_10, 17)
+ GENERATE_ENUM(COLOR_16, 24)
+ GENERATE_ENUM(COLOR_16_16, 25)
+ GENERATE_ENUM(COLOR_16_16_16_16, 26)
+ GENERATE_ENUM(COLOR_16_FLOAT, 30)
+ GENERATE_ENUM(COLOR_16_16_FLOAT, 31)
+ GENERATE_ENUM(COLOR_16_16_16_16_FLOAT, 32)
+ GENERATE_ENUM(COLOR_32_FLOAT, 36)
+ GENERATE_ENUM(COLOR_32_32_FLOAT, 37)
+ GENERATE_ENUM(COLOR_32_32_32_32_FLOAT, 38)
+ GENERATE_ENUM(COLOR_2_3_3, 39)
+END_ENUMTYPE(ColorFormat)
+
+START_ENUMTYPE(SurfaceNumber)
+ GENERATE_ENUM(NUMBER_UREPEAT, 0)
+ GENERATE_ENUM(NUMBER_SREPEAT, 1)
+ GENERATE_ENUM(NUMBER_UINTEGER, 2)
+ GENERATE_ENUM(NUMBER_SINTEGER, 3)
+ GENERATE_ENUM(NUMBER_GAMMA, 4)
+ GENERATE_ENUM(NUMBER_FIXED, 5)
+ GENERATE_ENUM(NUMBER_FLOAT, 7)
+END_ENUMTYPE(SurfaceNumber)
+
+START_ENUMTYPE(SurfaceFormat)
+ GENERATE_ENUM(FMT_1_REVERSE, 0)
+ GENERATE_ENUM(FMT_1, 1)
+ GENERATE_ENUM(FMT_8, 2)
+ GENERATE_ENUM(FMT_1_5_5_5, 3)
+ GENERATE_ENUM(FMT_5_6_5, 4)
+ GENERATE_ENUM(FMT_6_5_5, 5)
+ GENERATE_ENUM(FMT_8_8_8_8, 6)
+ GENERATE_ENUM(FMT_2_10_10_10, 7)
+ GENERATE_ENUM(FMT_8_A, 8)
+ GENERATE_ENUM(FMT_8_B, 9)
+ GENERATE_ENUM(FMT_8_8, 10)
+ GENERATE_ENUM(FMT_Cr_Y1_Cb_Y0, 11)
+ GENERATE_ENUM(FMT_Y1_Cr_Y0_Cb, 12)
+ GENERATE_ENUM(FMT_5_5_5_1, 13)
+ GENERATE_ENUM(FMT_8_8_8_8_A, 14)
+ GENERATE_ENUM(FMT_4_4_4_4, 15)
+ GENERATE_ENUM(FMT_8_8_8, 16)
+ GENERATE_ENUM(FMT_DXT1, 18)
+ GENERATE_ENUM(FMT_DXT2_3, 19)
+ GENERATE_ENUM(FMT_DXT4_5, 20)
+ GENERATE_ENUM(FMT_10_10_10_2, 21)
+ GENERATE_ENUM(FMT_24_8, 22)
+ GENERATE_ENUM(FMT_16, 24)
+ GENERATE_ENUM(FMT_16_16, 25)
+ GENERATE_ENUM(FMT_16_16_16_16, 26)
+ GENERATE_ENUM(FMT_16_EXPAND, 27)
+ GENERATE_ENUM(FMT_16_16_EXPAND, 28)
+ GENERATE_ENUM(FMT_16_16_16_16_EXPAND, 29)
+ GENERATE_ENUM(FMT_16_FLOAT, 30)
+ GENERATE_ENUM(FMT_16_16_FLOAT, 31)
+ GENERATE_ENUM(FMT_16_16_16_16_FLOAT, 32)
+ GENERATE_ENUM(FMT_32, 33)
+ GENERATE_ENUM(FMT_32_32, 34)
+ GENERATE_ENUM(FMT_32_32_32_32, 35)
+ GENERATE_ENUM(FMT_32_FLOAT, 36)
+ GENERATE_ENUM(FMT_32_32_FLOAT, 37)
+ GENERATE_ENUM(FMT_32_32_32_32_FLOAT, 38)
+ GENERATE_ENUM(FMT_ATI_TC_RGB, 39)
+ GENERATE_ENUM(FMT_ATI_TC_RGBA, 40)
+ GENERATE_ENUM(FMT_ATI_TC_555_565_RGB, 41)
+ GENERATE_ENUM(FMT_ATI_TC_555_565_RGBA, 42)
+ GENERATE_ENUM(FMT_ATI_TC_RGBA_INTERP, 43)
+ GENERATE_ENUM(FMT_ATI_TC_555_565_RGBA_INTERP, 44)
+ GENERATE_ENUM(FMT_ETC1_RGBA_INTERP, 46)
+ GENERATE_ENUM(FMT_ETC1_RGB, 47)
+ GENERATE_ENUM(FMT_ETC1_RGBA, 48)
+ GENERATE_ENUM(FMT_DXN, 49)
+ GENERATE_ENUM(FMT_2_3_3, 51)
+ GENERATE_ENUM(FMT_2_10_10_10_AS_16_16_16_16, 54)
+ GENERATE_ENUM(FMT_10_10_10_2_AS_16_16_16_16, 55)
+ GENERATE_ENUM(FMT_32_32_32_FLOAT, 57)
+ GENERATE_ENUM(FMT_DXT3A, 58)
+ GENERATE_ENUM(FMT_DXT5A, 59)
+ GENERATE_ENUM(FMT_CTX1, 60)
+END_ENUMTYPE(SurfaceFormat)
+
+START_ENUMTYPE(SurfaceTiling)
+ GENERATE_ENUM(ARRAY_LINEAR, 0)
+ GENERATE_ENUM(ARRAY_TILED, 1)
+END_ENUMTYPE(SurfaceTiling)
+
+START_ENUMTYPE(SurfaceArray)
+ GENERATE_ENUM(ARRAY_1D, 0)
+ GENERATE_ENUM(ARRAY_2D, 1)
+ GENERATE_ENUM(ARRAY_3D, 2)
+ GENERATE_ENUM(ARRAY_3D_SLICE, 3)
+END_ENUMTYPE(SurfaceArray)
+
+START_ENUMTYPE(SurfaceNumberX)
+ GENERATE_ENUM(NUMBERX_UREPEAT, 0)
+ GENERATE_ENUM(NUMBERX_SREPEAT, 1)
+ GENERATE_ENUM(NUMBERX_UINTEGER, 2)
+ GENERATE_ENUM(NUMBERX_SINTEGER, 3)
+ GENERATE_ENUM(NUMBERX_FLOAT, 7)
+END_ENUMTYPE(SurfaceNumberX)
+
+START_ENUMTYPE(ColorArrayX)
+ GENERATE_ENUM(ARRAYX_2D_COLOR, 0)
+ GENERATE_ENUM(ARRAYX_3D_SLICE_COLOR, 1)
+END_ENUMTYPE(ColorArrayX)
+
+
+
+
+// **************************************************************************
+// These are ones that had to be added in addition to what's generated
+// by the autoreg (in CSIM)
+// **************************************************************************
+START_ENUMTYPE(DXClipSpaceDef)
+ GENERATE_ENUM(DXCLIP_OPENGL, 0)
+ GENERATE_ENUM(DXCLIP_DIRECTX, 1)
+END_ENUMTYPE(DXClipSpaceDef)
+
+START_ENUMTYPE(PixCenter)
+ GENERATE_ENUM(PIXCENTER_D3D, 0)
+ GENERATE_ENUM(PIXCENTER_OGL, 1)
+END_ENUMTYPE(PixCenter)
+
+START_ENUMTYPE(RoundMode)
+ GENERATE_ENUM(TRUNCATE, 0)
+ GENERATE_ENUM(ROUND, 1)
+ GENERATE_ENUM(ROUNDTOEVEN, 2)
+ GENERATE_ENUM(ROUNDTOODD, 3)
+END_ENUMTYPE(RoundMode)
+
+START_ENUMTYPE(QuantMode)
+ GENERATE_ENUM(ONE_SIXTEENTH, 0)
+ GENERATE_ENUM(ONE_EIGHTH, 1)
+ GENERATE_ENUM(ONE_QUARTER, 2)
+ GENERATE_ENUM(ONE_HALF, 3)
+ GENERATE_ENUM(ONE, 4)
+END_ENUMTYPE(QuantMode)
+
+START_ENUMTYPE(FrontFace)
+ GENERATE_ENUM(FRONT_CCW, 0)
+ GENERATE_ENUM(FRONT_CW, 1)
+END_ENUMTYPE(FrontFace)
+
+START_ENUMTYPE(PolyMode)
+ GENERATE_ENUM(DISABLED, 0)
+ GENERATE_ENUM(DUALMODE, 1)
+END_ENUMTYPE(PolyMode)
+
+START_ENUMTYPE(PType)
+ GENERATE_ENUM(DRAW_POINTS, 0)
+ GENERATE_ENUM(DRAW_LINES, 1)
+ GENERATE_ENUM(DRAW_TRIANGLES, 2)
+END_ENUMTYPE(PType)
+
+START_ENUMTYPE(MSAANumSamples)
+ GENERATE_ENUM(ONE, 0)
+ GENERATE_ENUM(TWO, 1)
+ GENERATE_ENUM(FOUR, 3)
+END_ENUMTYPE(MSAANumSamples)
+
+START_ENUMTYPE(PatternBitOrder)
+ GENERATE_ENUM(LITTLE, 0)
+ GENERATE_ENUM(BIG, 1)
+END_ENUMTYPE(PatternBitOrder)
+
+START_ENUMTYPE(AutoResetCntl)
+ GENERATE_ENUM(NEVER, 0)
+ GENERATE_ENUM(EACHPRIMITIVE, 1)
+ GENERATE_ENUM(EACHPACKET, 2)
+END_ENUMTYPE(AutoResetCntl)
+
+START_ENUMTYPE(ParamShade)
+ GENERATE_ENUM(FLAT, 0)
+ GENERATE_ENUM(GOURAUD, 1)
+END_ENUMTYPE(ParamShade)
+
+START_ENUMTYPE(SamplingPattern)
+ GENERATE_ENUM(CENTROID, 0)
+ GENERATE_ENUM(PIXCENTER, 1)
+END_ENUMTYPE(SamplingPattern)
+
+START_ENUMTYPE(MSAASamples)
+ GENERATE_ENUM(ONE, 0)
+ GENERATE_ENUM(TWO, 1)
+ GENERATE_ENUM(FOUR, 2)
+END_ENUMTYPE(MSAASamples)
+
+START_ENUMTYPE(CopySampleSelect)
+ GENERATE_ENUM(SAMPLE_0, 0)
+ GENERATE_ENUM(SAMPLE_1, 1)
+ GENERATE_ENUM(SAMPLE_2, 2)
+ GENERATE_ENUM(SAMPLE_3, 3)
+ GENERATE_ENUM(SAMPLE_01, 4)
+ GENERATE_ENUM(SAMPLE_23, 5)
+ GENERATE_ENUM(SAMPLE_0123, 6)
+END_ENUMTYPE(CopySampleSelect)
+
+
+#undef START_ENUMTYPE
+#undef GENERATE_ENUM
+#undef END_ENUMTYPE
+
+
diff --git a/drivers/mxc/amd-gpu/include/reg/yamato/10/yamato_genreg.h b/drivers/mxc/amd-gpu/include/reg/yamato/10/yamato_genreg.h
new file mode 100644
index 000000000000..f7efe31bc8a8
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/reg/yamato/10/yamato_genreg.h
@@ -0,0 +1,3404 @@
+/* Copyright (c) 2002,2007-2009, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+START_REGISTER(PA_CL_VPORT_XSCALE)
+ GENERATE_FIELD(VPORT_XSCALE, float)
+END_REGISTER(PA_CL_VPORT_XSCALE)
+
+START_REGISTER(PA_CL_VPORT_XOFFSET)
+ GENERATE_FIELD(VPORT_XOFFSET, float)
+END_REGISTER(PA_CL_VPORT_XOFFSET)
+
+START_REGISTER(PA_CL_VPORT_YSCALE)
+ GENERATE_FIELD(VPORT_YSCALE, float)
+END_REGISTER(PA_CL_VPORT_YSCALE)
+
+START_REGISTER(PA_CL_VPORT_YOFFSET)
+ GENERATE_FIELD(VPORT_YOFFSET, float)
+END_REGISTER(PA_CL_VPORT_YOFFSET)
+
+START_REGISTER(PA_CL_VPORT_ZSCALE)
+ GENERATE_FIELD(VPORT_ZSCALE, float)
+END_REGISTER(PA_CL_VPORT_ZSCALE)
+
+START_REGISTER(PA_CL_VPORT_ZOFFSET)
+ GENERATE_FIELD(VPORT_ZOFFSET, float)
+END_REGISTER(PA_CL_VPORT_ZOFFSET)
+
+START_REGISTER(PA_CL_VTE_CNTL)
+ GENERATE_FIELD(PERFCOUNTER_REF, bool)
+ GENERATE_FIELD(VTX_W0_FMT, bool)
+ GENERATE_FIELD(VTX_Z_FMT, bool)
+ GENERATE_FIELD(VTX_XY_FMT, bool)
+ GENERATE_FIELD(VPORT_Z_OFFSET_ENA, bool)
+ GENERATE_FIELD(VPORT_Z_SCALE_ENA, bool)
+ GENERATE_FIELD(VPORT_Y_OFFSET_ENA, bool)
+ GENERATE_FIELD(VPORT_Y_SCALE_ENA, bool)
+ GENERATE_FIELD(VPORT_X_OFFSET_ENA, bool)
+ GENERATE_FIELD(VPORT_X_SCALE_ENA, bool)
+END_REGISTER(PA_CL_VTE_CNTL)
+
+START_REGISTER(PA_CL_CLIP_CNTL)
+ GENERATE_FIELD(W_NAN_RETAIN, bool)
+ GENERATE_FIELD(Z_NAN_RETAIN, bool)
+ GENERATE_FIELD(XY_NAN_RETAIN, bool)
+ GENERATE_FIELD(VTX_KILL_OR, bool)
+ GENERATE_FIELD(DIS_CLIP_ERR_DETECT, bool)
+ GENERATE_FIELD(DX_CLIP_SPACE_DEF, DXClipSpaceDef)
+ GENERATE_FIELD(BOUNDARY_EDGE_FLAG_ENA, bool)
+ GENERATE_FIELD(CLIP_DISABLE, bool)
+END_REGISTER(PA_CL_CLIP_CNTL)
+
+START_REGISTER(PA_CL_GB_VERT_CLIP_ADJ)
+ GENERATE_FIELD(DATA_REGISTER, float)
+END_REGISTER(PA_CL_GB_VERT_CLIP_ADJ)
+
+START_REGISTER(PA_CL_GB_VERT_DISC_ADJ)
+ GENERATE_FIELD(DATA_REGISTER, float)
+END_REGISTER(PA_CL_GB_VERT_DISC_ADJ)
+
+START_REGISTER(PA_CL_GB_HORZ_CLIP_ADJ)
+ GENERATE_FIELD(DATA_REGISTER, float)
+END_REGISTER(PA_CL_GB_HORZ_CLIP_ADJ)
+
+START_REGISTER(PA_CL_GB_HORZ_DISC_ADJ)
+ GENERATE_FIELD(DATA_REGISTER, float)
+END_REGISTER(PA_CL_GB_HORZ_DISC_ADJ)
+
+START_REGISTER(PA_CL_ENHANCE)
+ GENERATE_FIELD(ECO_SPARE0, int)
+ GENERATE_FIELD(ECO_SPARE1, int)
+ GENERATE_FIELD(ECO_SPARE2, int)
+ GENERATE_FIELD(ECO_SPARE3, int)
+ GENERATE_FIELD(CLIP_VTX_REORDER_ENA, bool)
+END_REGISTER(PA_CL_ENHANCE)
+
+START_REGISTER(PA_SC_ENHANCE)
+ GENERATE_FIELD(ECO_SPARE0, int)
+ GENERATE_FIELD(ECO_SPARE1, int)
+ GENERATE_FIELD(ECO_SPARE2, int)
+ GENERATE_FIELD(ECO_SPARE3, int)
+END_REGISTER(PA_SC_ENHANCE)
+
+START_REGISTER(PA_SU_VTX_CNTL)
+ GENERATE_FIELD(QUANT_MODE, QuantMode)
+ GENERATE_FIELD(ROUND_MODE, RoundMode)
+ GENERATE_FIELD(PIX_CENTER, PixCenter)
+END_REGISTER(PA_SU_VTX_CNTL)
+
+START_REGISTER(PA_SU_POINT_SIZE)
+ GENERATE_FIELD(WIDTH, fixed12_4)
+ GENERATE_FIELD(HEIGHT, fixed12_4)
+END_REGISTER(PA_SU_POINT_SIZE)
+
+START_REGISTER(PA_SU_POINT_MINMAX)
+ GENERATE_FIELD(MAX_SIZE, fixed12_4)
+ GENERATE_FIELD(MIN_SIZE, fixed12_4)
+END_REGISTER(PA_SU_POINT_MINMAX)
+
+START_REGISTER(PA_SU_LINE_CNTL)
+ GENERATE_FIELD(WIDTH, fixed12_4)
+END_REGISTER(PA_SU_LINE_CNTL)
+
+START_REGISTER(PA_SU_FACE_DATA)
+ GENERATE_FIELD(BASE_ADDR, int)
+END_REGISTER(PA_SU_FACE_DATA)
+
+START_REGISTER(PA_SU_SC_MODE_CNTL)
+ GENERATE_FIELD(FACE_WRITE_ENABLE, bool)
+ GENERATE_FIELD(FACE_KILL_ENABLE, bool)
+ GENERATE_FIELD(ZERO_AREA_FACENESS, bool)
+ GENERATE_FIELD(WAIT_RB_IDLE_FIRST_TRI_NEW_STATE, bool)
+ GENERATE_FIELD(WAIT_RB_IDLE_ALL_TRI, bool)
+ GENERATE_FIELD(QUAD_ORDER_ENABLE, bool)
+ GENERATE_FIELD(MULTI_PRIM_IB_ENA, bool)
+ GENERATE_FIELD(PERSP_CORR_DIS, bool)
+ GENERATE_FIELD(PROVOKING_VTX_LAST, bool)
+ GENERATE_FIELD(LINE_STIPPLE_ENABLE, bool)
+ GENERATE_FIELD(VTX_WINDOW_OFFSET_ENABLE, bool)
+ GENERATE_FIELD(MSAA_ENABLE, bool)
+ GENERATE_FIELD(POLY_OFFSET_PARA_ENABLE, bool)
+ GENERATE_FIELD(POLY_OFFSET_BACK_ENABLE, bool)
+ GENERATE_FIELD(POLY_OFFSET_FRONT_ENABLE, bool)
+ GENERATE_FIELD(POLYMODE_BACK_PTYPE, PType)
+ GENERATE_FIELD(POLYMODE_FRONT_PTYPE, PType)
+ GENERATE_FIELD(POLY_MODE, PolyMode)
+ GENERATE_FIELD(FACE, FrontFace)
+ GENERATE_FIELD(CULL_BACK, bool)
+ GENERATE_FIELD(CULL_FRONT, bool)
+END_REGISTER(PA_SU_SC_MODE_CNTL)
+
+START_REGISTER(PA_SU_POLY_OFFSET_FRONT_SCALE)
+ GENERATE_FIELD(SCALE, float)
+END_REGISTER(PA_SU_POLY_OFFSET_FRONT_SCALE)
+
+START_REGISTER(PA_SU_POLY_OFFSET_FRONT_OFFSET)
+ GENERATE_FIELD(OFFSET, float)
+END_REGISTER(PA_SU_POLY_OFFSET_FRONT_OFFSET)
+
+START_REGISTER(PA_SU_POLY_OFFSET_BACK_SCALE)
+ GENERATE_FIELD(SCALE, float)
+END_REGISTER(PA_SU_POLY_OFFSET_BACK_SCALE)
+
+START_REGISTER(PA_SU_POLY_OFFSET_BACK_OFFSET)
+ GENERATE_FIELD(OFFSET, float)
+END_REGISTER(PA_SU_POLY_OFFSET_BACK_OFFSET)
+
+START_REGISTER(PA_SU_PERFCOUNTER0_SELECT)
+ GENERATE_FIELD(PERF_SEL, SU_PERFCNT_SELECT)
+END_REGISTER(PA_SU_PERFCOUNTER0_SELECT)
+
+START_REGISTER(PA_SU_PERFCOUNTER1_SELECT)
+ GENERATE_FIELD(PERF_SEL, int)
+END_REGISTER(PA_SU_PERFCOUNTER1_SELECT)
+
+START_REGISTER(PA_SU_PERFCOUNTER2_SELECT)
+ GENERATE_FIELD(PERF_SEL, int)
+END_REGISTER(PA_SU_PERFCOUNTER2_SELECT)
+
+START_REGISTER(PA_SU_PERFCOUNTER3_SELECT)
+ GENERATE_FIELD(PERF_SEL, int)
+END_REGISTER(PA_SU_PERFCOUNTER3_SELECT)
+
+START_REGISTER(PA_SU_PERFCOUNTER0_LOW)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(PA_SU_PERFCOUNTER0_LOW)
+
+START_REGISTER(PA_SU_PERFCOUNTER0_HI)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(PA_SU_PERFCOUNTER0_HI)
+
+START_REGISTER(PA_SU_PERFCOUNTER1_LOW)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(PA_SU_PERFCOUNTER1_LOW)
+
+START_REGISTER(PA_SU_PERFCOUNTER1_HI)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(PA_SU_PERFCOUNTER1_HI)
+
+START_REGISTER(PA_SU_PERFCOUNTER2_LOW)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(PA_SU_PERFCOUNTER2_LOW)
+
+START_REGISTER(PA_SU_PERFCOUNTER2_HI)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(PA_SU_PERFCOUNTER2_HI)
+
+START_REGISTER(PA_SU_PERFCOUNTER3_LOW)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(PA_SU_PERFCOUNTER3_LOW)
+
+START_REGISTER(PA_SU_PERFCOUNTER3_HI)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(PA_SU_PERFCOUNTER3_HI)
+
+START_REGISTER(PA_SC_WINDOW_OFFSET)
+ GENERATE_FIELD(WINDOW_Y_OFFSET, signedint15)
+ GENERATE_FIELD(WINDOW_X_OFFSET, signedint15)
+END_REGISTER(PA_SC_WINDOW_OFFSET)
+
+START_REGISTER(PA_SC_AA_CONFIG)
+ GENERATE_FIELD(MAX_SAMPLE_DIST, int)
+ GENERATE_FIELD(MSAA_NUM_SAMPLES, MSAANumSamples)
+END_REGISTER(PA_SC_AA_CONFIG)
+
+START_REGISTER(PA_SC_AA_MASK)
+ GENERATE_FIELD(AA_MASK, hex)
+END_REGISTER(PA_SC_AA_MASK)
+
+START_REGISTER(PA_SC_LINE_STIPPLE)
+ GENERATE_FIELD(AUTO_RESET_CNTL, AutoResetCntl)
+ GENERATE_FIELD(PATTERN_BIT_ORDER, PatternBitOrder)
+ GENERATE_FIELD(REPEAT_COUNT, intMinusOne)
+ GENERATE_FIELD(LINE_PATTERN, hex)
+END_REGISTER(PA_SC_LINE_STIPPLE)
+
+START_REGISTER(PA_SC_LINE_CNTL)
+ GENERATE_FIELD(LAST_PIXEL, bool)
+ GENERATE_FIELD(EXPAND_LINE_WIDTH, bool)
+ GENERATE_FIELD(USE_BRES_CNTL, bool)
+ GENERATE_FIELD(BRES_CNTL, int)
+END_REGISTER(PA_SC_LINE_CNTL)
+
+START_REGISTER(PA_SC_WINDOW_SCISSOR_TL)
+ GENERATE_FIELD(WINDOW_OFFSET_DISABLE, bool)
+ GENERATE_FIELD(TL_Y, int)
+ GENERATE_FIELD(TL_X, int)
+END_REGISTER(PA_SC_WINDOW_SCISSOR_TL)
+
+START_REGISTER(PA_SC_WINDOW_SCISSOR_BR)
+ GENERATE_FIELD(BR_Y, int)
+ GENERATE_FIELD(BR_X, int)
+END_REGISTER(PA_SC_WINDOW_SCISSOR_BR)
+
+START_REGISTER(PA_SC_SCREEN_SCISSOR_TL)
+ GENERATE_FIELD(TL_Y, int)
+ GENERATE_FIELD(TL_X, int)
+END_REGISTER(PA_SC_SCREEN_SCISSOR_TL)
+
+START_REGISTER(PA_SC_SCREEN_SCISSOR_BR)
+ GENERATE_FIELD(BR_Y, int)
+ GENERATE_FIELD(BR_X, int)
+END_REGISTER(PA_SC_SCREEN_SCISSOR_BR)
+
+START_REGISTER(PA_SC_VIZ_QUERY)
+ GENERATE_FIELD(KILL_PIX_POST_EARLY_Z, bool)
+ GENERATE_FIELD(VIZ_QUERY_ID, int)
+ GENERATE_FIELD(VIZ_QUERY_ENA, bool)
+END_REGISTER(PA_SC_VIZ_QUERY)
+
+START_REGISTER(PA_SC_VIZ_QUERY_STATUS)
+ GENERATE_FIELD(STATUS_BITS, hex)
+END_REGISTER(PA_SC_VIZ_QUERY_STATUS)
+
+START_REGISTER(PA_SC_LINE_STIPPLE_STATE)
+ GENERATE_FIELD(CURRENT_COUNT, int)
+ GENERATE_FIELD(CURRENT_PTR, int)
+END_REGISTER(PA_SC_LINE_STIPPLE_STATE)
+
+START_REGISTER(PA_SC_PERFCOUNTER0_SELECT)
+ GENERATE_FIELD(PERF_SEL, SC_PERFCNT_SELECT)
+END_REGISTER(PA_SC_PERFCOUNTER0_SELECT)
+
+START_REGISTER(PA_SC_PERFCOUNTER0_LOW)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(PA_SC_PERFCOUNTER0_LOW)
+
+START_REGISTER(PA_SC_PERFCOUNTER0_HI)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(PA_SC_PERFCOUNTER0_HI)
+
+START_REGISTER(PA_CL_CNTL_STATUS)
+ GENERATE_FIELD(CL_BUSY, int)
+END_REGISTER(PA_CL_CNTL_STATUS)
+
+START_REGISTER(PA_SU_CNTL_STATUS)
+ GENERATE_FIELD(SU_BUSY, int)
+END_REGISTER(PA_SU_CNTL_STATUS)
+
+START_REGISTER(PA_SC_CNTL_STATUS)
+ GENERATE_FIELD(SC_BUSY, int)
+END_REGISTER(PA_SC_CNTL_STATUS)
+
+START_REGISTER(PA_SU_DEBUG_CNTL)
+ GENERATE_FIELD(SU_DEBUG_INDX, int)
+END_REGISTER(PA_SU_DEBUG_CNTL)
+
+START_REGISTER(PA_SU_DEBUG_DATA)
+ GENERATE_FIELD(DATA, hex)
+END_REGISTER(PA_SU_DEBUG_DATA)
+
+START_REGISTER(PA_SC_DEBUG_CNTL)
+ GENERATE_FIELD(SC_DEBUG_INDX, int)
+END_REGISTER(PA_SC_DEBUG_CNTL)
+
+START_REGISTER(PA_SC_DEBUG_DATA)
+ GENERATE_FIELD(DATA, int)
+END_REGISTER(PA_SC_DEBUG_DATA)
+
+START_REGISTER(GFX_COPY_STATE)
+ GENERATE_FIELD(SRC_STATE_ID, int)
+END_REGISTER(GFX_COPY_STATE)
+
+START_REGISTER(VGT_DRAW_INITIATOR)
+ GENERATE_FIELD(NUM_INDICES, uint)
+ GENERATE_FIELD(GRP_CULL_ENABLE, VGT_DI_GRP_CULL_ENABLE)
+ GENERATE_FIELD(PRE_FETCH_CULL_ENABLE, VGT_DI_PRE_FETCH_CULL_ENABLE)
+ GENERATE_FIELD(SMALL_INDEX, VGT_DI_SMALL_INDEX)
+ GENERATE_FIELD(NOT_EOP, bool)
+ GENERATE_FIELD(INDEX_SIZE, VGT_DI_INDEX_SIZE)
+ GENERATE_FIELD(FACENESS_CULL_SELECT, VGT_DI_FACENESS_CULL_SELECT)
+ GENERATE_FIELD(SOURCE_SELECT, VGT_DI_SOURCE_SELECT)
+ GENERATE_FIELD(PRIM_TYPE, VGT_DI_PRIM_TYPE)
+END_REGISTER(VGT_DRAW_INITIATOR)
+
+START_REGISTER(VGT_EVENT_INITIATOR)
+ GENERATE_FIELD(EVENT_TYPE, VGT_EVENT_TYPE)
+END_REGISTER(VGT_EVENT_INITIATOR)
+
+START_REGISTER(VGT_DMA_BASE)
+ GENERATE_FIELD(BASE_ADDR, uint)
+END_REGISTER(VGT_DMA_BASE)
+
+START_REGISTER(VGT_DMA_SIZE)
+ GENERATE_FIELD(SWAP_MODE, VGT_DMA_SWAP_MODE)
+ GENERATE_FIELD(NUM_WORDS, uint)
+END_REGISTER(VGT_DMA_SIZE)
+
+START_REGISTER(VGT_BIN_BASE)
+ GENERATE_FIELD(BIN_BASE_ADDR, uint)
+END_REGISTER(VGT_BIN_BASE)
+
+START_REGISTER(VGT_BIN_SIZE)
+ GENERATE_FIELD(FACENESS_RESET, int)
+ GENERATE_FIELD(FACENESS_FETCH, int)
+ GENERATE_FIELD(NUM_WORDS, uint)
+END_REGISTER(VGT_BIN_SIZE)
+
+START_REGISTER(VGT_CURRENT_BIN_ID_MIN)
+ GENERATE_FIELD(GUARD_BAND, int)
+ GENERATE_FIELD(ROW, int)
+ GENERATE_FIELD(COLUMN, int)
+END_REGISTER(VGT_CURRENT_BIN_ID_MIN)
+
+START_REGISTER(VGT_CURRENT_BIN_ID_MAX)
+ GENERATE_FIELD(GUARD_BAND, int)
+ GENERATE_FIELD(ROW, int)
+ GENERATE_FIELD(COLUMN, int)
+END_REGISTER(VGT_CURRENT_BIN_ID_MAX)
+
+START_REGISTER(VGT_IMMED_DATA)
+ GENERATE_FIELD(DATA, hex)
+END_REGISTER(VGT_IMMED_DATA)
+
+START_REGISTER(VGT_MAX_VTX_INDX)
+ GENERATE_FIELD(MAX_INDX, int)
+END_REGISTER(VGT_MAX_VTX_INDX)
+
+START_REGISTER(VGT_MIN_VTX_INDX)
+ GENERATE_FIELD(MIN_INDX, int)
+END_REGISTER(VGT_MIN_VTX_INDX)
+
+START_REGISTER(VGT_INDX_OFFSET)
+ GENERATE_FIELD(INDX_OFFSET, int)
+END_REGISTER(VGT_INDX_OFFSET)
+
+START_REGISTER(VGT_VERTEX_REUSE_BLOCK_CNTL)
+ GENERATE_FIELD(VTX_REUSE_DEPTH, int)
+END_REGISTER(VGT_VERTEX_REUSE_BLOCK_CNTL)
+
+START_REGISTER(VGT_OUT_DEALLOC_CNTL)
+ GENERATE_FIELD(DEALLOC_DIST, int)
+END_REGISTER(VGT_OUT_DEALLOC_CNTL)
+
+START_REGISTER(VGT_MULTI_PRIM_IB_RESET_INDX)
+ GENERATE_FIELD(RESET_INDX, int)
+END_REGISTER(VGT_MULTI_PRIM_IB_RESET_INDX)
+
+START_REGISTER(VGT_ENHANCE)
+ GENERATE_FIELD(MISC, hex)
+END_REGISTER(VGT_ENHANCE)
+
+START_REGISTER(VGT_VTX_VECT_EJECT_REG)
+ GENERATE_FIELD(PRIM_COUNT, int)
+END_REGISTER(VGT_VTX_VECT_EJECT_REG)
+
+START_REGISTER(VGT_LAST_COPY_STATE)
+ GENERATE_FIELD(DST_STATE_ID, int)
+ GENERATE_FIELD(SRC_STATE_ID, int)
+END_REGISTER(VGT_LAST_COPY_STATE)
+
+START_REGISTER(VGT_DEBUG_CNTL)
+ GENERATE_FIELD(VGT_DEBUG_INDX, int)
+END_REGISTER(VGT_DEBUG_CNTL)
+
+START_REGISTER(VGT_DEBUG_DATA)
+ GENERATE_FIELD(DATA, hex)
+END_REGISTER(VGT_DEBUG_DATA)
+
+START_REGISTER(VGT_CNTL_STATUS)
+ GENERATE_FIELD(VGT_OUT_INDX_BUSY, int)
+ GENERATE_FIELD(VGT_OUT_BUSY, int)
+ GENERATE_FIELD(VGT_PT_BUSY, int)
+ GENERATE_FIELD(VGT_BIN_BUSY, int)
+ GENERATE_FIELD(VGT_VR_BUSY, int)
+ GENERATE_FIELD(VGT_GRP_BUSY, int)
+ GENERATE_FIELD(VGT_DMA_REQ_BUSY, int)
+ GENERATE_FIELD(VGT_DMA_BUSY, int)
+ GENERATE_FIELD(VGT_BUSY, int)
+END_REGISTER(VGT_CNTL_STATUS)
+
+START_REGISTER(VGT_CRC_SQ_DATA)
+ GENERATE_FIELD(CRC, hex)
+END_REGISTER(VGT_CRC_SQ_DATA)
+
+START_REGISTER(VGT_CRC_SQ_CTRL)
+ GENERATE_FIELD(CRC, hex)
+END_REGISTER(VGT_CRC_SQ_CTRL)
+
+START_REGISTER(VGT_PERFCOUNTER0_SELECT)
+ GENERATE_FIELD(PERF_SEL, VGT_PERFCOUNT_SELECT)
+END_REGISTER(VGT_PERFCOUNTER0_SELECT)
+
+START_REGISTER(VGT_PERFCOUNTER1_SELECT)
+ GENERATE_FIELD(PERF_SEL, VGT_PERFCOUNT_SELECT)
+END_REGISTER(VGT_PERFCOUNTER1_SELECT)
+
+START_REGISTER(VGT_PERFCOUNTER2_SELECT)
+ GENERATE_FIELD(PERF_SEL, VGT_PERFCOUNT_SELECT)
+END_REGISTER(VGT_PERFCOUNTER2_SELECT)
+
+START_REGISTER(VGT_PERFCOUNTER3_SELECT)
+ GENERATE_FIELD(PERF_SEL, VGT_PERFCOUNT_SELECT)
+END_REGISTER(VGT_PERFCOUNTER3_SELECT)
+
+START_REGISTER(VGT_PERFCOUNTER0_LOW)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(VGT_PERFCOUNTER0_LOW)
+
+START_REGISTER(VGT_PERFCOUNTER1_LOW)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(VGT_PERFCOUNTER1_LOW)
+
+START_REGISTER(VGT_PERFCOUNTER2_LOW)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(VGT_PERFCOUNTER2_LOW)
+
+START_REGISTER(VGT_PERFCOUNTER3_LOW)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(VGT_PERFCOUNTER3_LOW)
+
+START_REGISTER(VGT_PERFCOUNTER0_HI)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(VGT_PERFCOUNTER0_HI)
+
+START_REGISTER(VGT_PERFCOUNTER1_HI)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(VGT_PERFCOUNTER1_HI)
+
+START_REGISTER(VGT_PERFCOUNTER2_HI)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(VGT_PERFCOUNTER2_HI)
+
+START_REGISTER(VGT_PERFCOUNTER3_HI)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(VGT_PERFCOUNTER3_HI)
+
+START_REGISTER(TC_CNTL_STATUS)
+ GENERATE_FIELD(TC_BUSY, int)
+ GENERATE_FIELD(TC_L2_HIT_MISS, int)
+ GENERATE_FIELD(L2_INVALIDATE, int)
+END_REGISTER(TC_CNTL_STATUS)
+
+START_REGISTER(TCR_CHICKEN)
+ GENERATE_FIELD(SPARE, hex)
+END_REGISTER(TCR_CHICKEN)
+
+START_REGISTER(TCF_CHICKEN)
+ GENERATE_FIELD(SPARE, hex)
+END_REGISTER(TCF_CHICKEN)
+
+START_REGISTER(TCM_CHICKEN)
+ GENERATE_FIELD(SPARE, hex)
+ GENERATE_FIELD(ETC_COLOR_ENDIAN, int)
+ GENERATE_FIELD(TCO_READ_LATENCY_FIFO_PROG_DEPTH, int)
+END_REGISTER(TCM_CHICKEN)
+
+START_REGISTER(TCR_PERFCOUNTER0_SELECT)
+ GENERATE_FIELD(PERFCOUNTER_SELECT, TCR_PERFCOUNT_SELECT)
+END_REGISTER(TCR_PERFCOUNTER0_SELECT)
+
+START_REGISTER(TCR_PERFCOUNTER1_SELECT)
+ GENERATE_FIELD(PERFCOUNTER_SELECT, TCR_PERFCOUNT_SELECT)
+END_REGISTER(TCR_PERFCOUNTER1_SELECT)
+
+START_REGISTER(TCR_PERFCOUNTER0_HI)
+ GENERATE_FIELD(PERFCOUNTER_HI, int)
+END_REGISTER(TCR_PERFCOUNTER0_HI)
+
+START_REGISTER(TCR_PERFCOUNTER1_HI)
+ GENERATE_FIELD(PERFCOUNTER_HI, int)
+END_REGISTER(TCR_PERFCOUNTER1_HI)
+
+START_REGISTER(TCR_PERFCOUNTER0_LOW)
+ GENERATE_FIELD(PERFCOUNTER_LOW, int)
+END_REGISTER(TCR_PERFCOUNTER0_LOW)
+
+START_REGISTER(TCR_PERFCOUNTER1_LOW)
+ GENERATE_FIELD(PERFCOUNTER_LOW, int)
+END_REGISTER(TCR_PERFCOUNTER1_LOW)
+
+START_REGISTER(TP_TC_CLKGATE_CNTL)
+ GENERATE_FIELD(TC_BUSY_EXTEND, int)
+ GENERATE_FIELD(TP_BUSY_EXTEND, int)
+END_REGISTER(TP_TC_CLKGATE_CNTL)
+
+START_REGISTER(TPC_CNTL_STATUS)
+ GENERATE_FIELD(TPC_BUSY, int)
+ GENERATE_FIELD(TP_SQ_DEC, int)
+ GENERATE_FIELD(TA_TF_TC_FIFO_REN, int)
+ GENERATE_FIELD(TA_TF_RTS, int)
+ GENERATE_FIELD(TA_TB_RTR, int)
+ GENERATE_FIELD(TA_TB_TT_RTS, int)
+ GENERATE_FIELD(TA_TB_RTS, int)
+ GENERATE_FIELD(TW_TA_RTR, int)
+ GENERATE_FIELD(TW_TA_LAST_RTS, int)
+ GENERATE_FIELD(TW_TA_TT_RTS, int)
+ GENERATE_FIELD(TW_TA_RTS, int)
+ GENERATE_FIELD(TF_TW_RTR, int)
+ GENERATE_FIELD(TF_TW_STATE_RTS, int)
+ GENERATE_FIELD(TF_TW_RTS, int)
+ GENERATE_FIELD(TPC_BLEND_BUSY, int)
+ GENERATE_FIELD(TPC_OUT_FIFO_BUSY, int)
+ GENERATE_FIELD(TPC_BLEND_PIPE_BUSY, int)
+ GENERATE_FIELD(TPC_RR_FIFO_BUSY, int)
+ GENERATE_FIELD(TPC_ALIGNER_BUSY, int)
+ GENERATE_FIELD(TPC_ALIGN_FIFO_BUSY, int)
+ GENERATE_FIELD(TPC_ALIGNER_PIPE_BUSY, int)
+ GENERATE_FIELD(TPC_WALKER_BUSY, int)
+ GENERATE_FIELD(TPC_WALK_FIFO_BUSY, int)
+ GENERATE_FIELD(TPC_WALKER_PIPE_BUSY, int)
+ GENERATE_FIELD(TPC_FETCH_FIFO_BUSY, int)
+ GENERATE_FIELD(TPC_STATE_FIFO_BUSY, int)
+ GENERATE_FIELD(TPC_TC_FIFO_BUSY, int)
+ GENERATE_FIELD(TPC_INPUT_BUSY, int)
+END_REGISTER(TPC_CNTL_STATUS)
+
+START_REGISTER(TPC_DEBUG0)
+ GENERATE_FIELD(SQ_TP_WAKEUP, int)
+ GENERATE_FIELD(TPC_CLK_EN, int)
+ GENERATE_FIELD(REG_CLK_EN, int)
+ GENERATE_FIELD(ALIGNER_STATE, int)
+ GENERATE_FIELD(WALKER_STATE, int)
+ GENERATE_FIELD(PREV_TC_STATE_VALID, int)
+ GENERATE_FIELD(ALIGNER_CNTL, int)
+ GENERATE_FIELD(WALKER_CNTL, int)
+ GENERATE_FIELD(IC_CTR, int)
+ GENERATE_FIELD(LOD_CNTL, int)
+END_REGISTER(TPC_DEBUG0)
+
+START_REGISTER(TPC_DEBUG1)
+ GENERATE_FIELD(UNUSED, int)
+END_REGISTER(TPC_DEBUG1)
+
+START_REGISTER(TPC_CHICKEN)
+ GENERATE_FIELD(SPARE, int)
+ GENERATE_FIELD(BLEND_PRECISION, int)
+END_REGISTER(TPC_CHICKEN)
+
+START_REGISTER(TP0_CNTL_STATUS)
+ GENERATE_FIELD(TP_BUSY, int)
+ GENERATE_FIELD(TB_TO_RTS, int)
+ GENERATE_FIELD(TB_TT_TT_RESET, int)
+ GENERATE_FIELD(TB_TT_RTS, int)
+ GENERATE_FIELD(TF_TB_TT_RTS, int)
+ GENERATE_FIELD(TF_TB_RTS, int)
+ GENERATE_FIELD(AL_TF_TT_RTS, int)
+ GENERATE_FIELD(AL_TF_RTS, int)
+ GENERATE_FIELD(FA_AL_TT_RTS, int)
+ GENERATE_FIELD(FA_AL_RTS, int)
+ GENERATE_FIELD(TA_FA_TT_RTS, int)
+ GENERATE_FIELD(TA_FA_RTS, int)
+ GENERATE_FIELD(FL_TA_RTS, int)
+ GENERATE_FIELD(LA_FL_RTS, int)
+ GENERATE_FIELD(LC_LA_RTS, int)
+ GENERATE_FIELD(IN_LC_RTS, int)
+ GENERATE_FIELD(TP_OUTPUT_BUSY, int)
+ GENERATE_FIELD(TP_OUT_FIFO_BUSY, int)
+ GENERATE_FIELD(TP_BLEND_BUSY, int)
+ GENERATE_FIELD(TP_HICOLOR_BUSY, int)
+ GENERATE_FIELD(TP_TT_BUSY, int)
+ GENERATE_FIELD(TP_CH_BLEND_BUSY, int)
+ GENERATE_FIELD(TP_FETCH_BUSY, int)
+ GENERATE_FIELD(TP_RR_FIFO_BUSY, int)
+ GENERATE_FIELD(TP_TC_FIFO_BUSY, int)
+ GENERATE_FIELD(TP_ALIGNER_BUSY, int)
+ GENERATE_FIELD(TP_ALIGN_FIFO_BUSY, int)
+ GENERATE_FIELD(TP_ADDR_BUSY, int)
+ GENERATE_FIELD(TP_LOD_FIFO_BUSY, int)
+ GENERATE_FIELD(TP_LOD_BUSY, int)
+ GENERATE_FIELD(TP_INPUT_BUSY, int)
+END_REGISTER(TP0_CNTL_STATUS)
+
+START_REGISTER(TP0_DEBUG)
+ GENERATE_FIELD(Q_ALIGNER_CNTL, int)
+ GENERATE_FIELD(Q_WALKER_CNTL, int)
+ GENERATE_FIELD(TP_CLK_EN, int)
+ GENERATE_FIELD(PERF_CLK_EN, int)
+ GENERATE_FIELD(REG_CLK_EN, int)
+ GENERATE_FIELD(FL_TA_ADDRESSER_CNTL, int)
+ GENERATE_FIELD(Q_SQ_TP_WAKEUP, int)
+ GENERATE_FIELD(Q_LOD_CNTL, int)
+END_REGISTER(TP0_DEBUG)
+
+START_REGISTER(TP0_CHICKEN)
+ GENERATE_FIELD(SPARE, int)
+ GENERATE_FIELD(VFETCH_ADDRESS_MODE, int)
+ GENERATE_FIELD(TT_MODE, int)
+END_REGISTER(TP0_CHICKEN)
+
+START_REGISTER(TP0_PERFCOUNTER0_SELECT)
+ GENERATE_FIELD(PERFCOUNTER_SELECT, TP_PERFCOUNT_SELECT)
+END_REGISTER(TP0_PERFCOUNTER0_SELECT)
+
+START_REGISTER(TP0_PERFCOUNTER0_HI)
+ GENERATE_FIELD(PERFCOUNTER_HI, int)
+END_REGISTER(TP0_PERFCOUNTER0_HI)
+
+START_REGISTER(TP0_PERFCOUNTER0_LOW)
+ GENERATE_FIELD(PERFCOUNTER_LOW, int)
+END_REGISTER(TP0_PERFCOUNTER0_LOW)
+
+START_REGISTER(TP0_PERFCOUNTER1_SELECT)
+ GENERATE_FIELD(PERFCOUNTER_SELECT, int)
+END_REGISTER(TP0_PERFCOUNTER1_SELECT)
+
+START_REGISTER(TP0_PERFCOUNTER1_HI)
+ GENERATE_FIELD(PERFCOUNTER_HI, int)
+END_REGISTER(TP0_PERFCOUNTER1_HI)
+
+START_REGISTER(TP0_PERFCOUNTER1_LOW)
+ GENERATE_FIELD(PERFCOUNTER_LOW, int)
+END_REGISTER(TP0_PERFCOUNTER1_LOW)
+
+START_REGISTER(TCM_PERFCOUNTER0_SELECT)
+ GENERATE_FIELD(PERFCOUNTER_SELECT, TCM_PERFCOUNT_SELECT)
+END_REGISTER(TCM_PERFCOUNTER0_SELECT)
+
+START_REGISTER(TCM_PERFCOUNTER1_SELECT)
+ GENERATE_FIELD(PERFCOUNTER_SELECT, TCM_PERFCOUNT_SELECT)
+END_REGISTER(TCM_PERFCOUNTER1_SELECT)
+
+START_REGISTER(TCM_PERFCOUNTER0_HI)
+ GENERATE_FIELD(PERFCOUNTER_HI, int)
+END_REGISTER(TCM_PERFCOUNTER0_HI)
+
+START_REGISTER(TCM_PERFCOUNTER1_HI)
+ GENERATE_FIELD(PERFCOUNTER_HI, int)
+END_REGISTER(TCM_PERFCOUNTER1_HI)
+
+START_REGISTER(TCM_PERFCOUNTER0_LOW)
+ GENERATE_FIELD(PERFCOUNTER_LOW, int)
+END_REGISTER(TCM_PERFCOUNTER0_LOW)
+
+START_REGISTER(TCM_PERFCOUNTER1_LOW)
+ GENERATE_FIELD(PERFCOUNTER_LOW, int)
+END_REGISTER(TCM_PERFCOUNTER1_LOW)
+
+START_REGISTER(TCF_PERFCOUNTER0_SELECT)
+ GENERATE_FIELD(PERFCOUNTER_SELECT, TCF_PERFCOUNT_SELECT)
+END_REGISTER(TCF_PERFCOUNTER0_SELECT)
+
+START_REGISTER(TCF_PERFCOUNTER1_SELECT)
+ GENERATE_FIELD(PERFCOUNTER_SELECT, TCF_PERFCOUNT_SELECT)
+END_REGISTER(TCF_PERFCOUNTER1_SELECT)
+
+START_REGISTER(TCF_PERFCOUNTER2_SELECT)
+ GENERATE_FIELD(PERFCOUNTER_SELECT, TCF_PERFCOUNT_SELECT)
+END_REGISTER(TCF_PERFCOUNTER2_SELECT)
+
+START_REGISTER(TCF_PERFCOUNTER3_SELECT)
+ GENERATE_FIELD(PERFCOUNTER_SELECT, TCF_PERFCOUNT_SELECT)
+END_REGISTER(TCF_PERFCOUNTER3_SELECT)
+
+START_REGISTER(TCF_PERFCOUNTER4_SELECT)
+ GENERATE_FIELD(PERFCOUNTER_SELECT, TCF_PERFCOUNT_SELECT)
+END_REGISTER(TCF_PERFCOUNTER4_SELECT)
+
+START_REGISTER(TCF_PERFCOUNTER5_SELECT)
+ GENERATE_FIELD(PERFCOUNTER_SELECT, TCF_PERFCOUNT_SELECT)
+END_REGISTER(TCF_PERFCOUNTER5_SELECT)
+
+START_REGISTER(TCF_PERFCOUNTER6_SELECT)
+ GENERATE_FIELD(PERFCOUNTER_SELECT, TCF_PERFCOUNT_SELECT)
+END_REGISTER(TCF_PERFCOUNTER6_SELECT)
+
+START_REGISTER(TCF_PERFCOUNTER7_SELECT)
+ GENERATE_FIELD(PERFCOUNTER_SELECT, TCF_PERFCOUNT_SELECT)
+END_REGISTER(TCF_PERFCOUNTER7_SELECT)
+
+START_REGISTER(TCF_PERFCOUNTER8_SELECT)
+ GENERATE_FIELD(PERFCOUNTER_SELECT, TCF_PERFCOUNT_SELECT)
+END_REGISTER(TCF_PERFCOUNTER8_SELECT)
+
+START_REGISTER(TCF_PERFCOUNTER9_SELECT)
+ GENERATE_FIELD(PERFCOUNTER_SELECT, TCF_PERFCOUNT_SELECT)
+END_REGISTER(TCF_PERFCOUNTER9_SELECT)
+
+START_REGISTER(TCF_PERFCOUNTER10_SELECT)
+ GENERATE_FIELD(PERFCOUNTER_SELECT, TCF_PERFCOUNT_SELECT)
+END_REGISTER(TCF_PERFCOUNTER10_SELECT)
+
+START_REGISTER(TCF_PERFCOUNTER11_SELECT)
+ GENERATE_FIELD(PERFCOUNTER_SELECT, TCF_PERFCOUNT_SELECT)
+END_REGISTER(TCF_PERFCOUNTER11_SELECT)
+
+START_REGISTER(TCF_PERFCOUNTER0_HI)
+ GENERATE_FIELD(PERFCOUNTER_HI, int)
+END_REGISTER(TCF_PERFCOUNTER0_HI)
+
+START_REGISTER(TCF_PERFCOUNTER1_HI)
+ GENERATE_FIELD(PERFCOUNTER_HI, int)
+END_REGISTER(TCF_PERFCOUNTER1_HI)
+
+START_REGISTER(TCF_PERFCOUNTER2_HI)
+ GENERATE_FIELD(PERFCOUNTER_HI, int)
+END_REGISTER(TCF_PERFCOUNTER2_HI)
+
+START_REGISTER(TCF_PERFCOUNTER3_HI)
+ GENERATE_FIELD(PERFCOUNTER_HI, int)
+END_REGISTER(TCF_PERFCOUNTER3_HI)
+
+START_REGISTER(TCF_PERFCOUNTER4_HI)
+ GENERATE_FIELD(PERFCOUNTER_HI, int)
+END_REGISTER(TCF_PERFCOUNTER4_HI)
+
+START_REGISTER(TCF_PERFCOUNTER5_HI)
+ GENERATE_FIELD(PERFCOUNTER_HI, int)
+END_REGISTER(TCF_PERFCOUNTER5_HI)
+
+START_REGISTER(TCF_PERFCOUNTER6_HI)
+ GENERATE_FIELD(PERFCOUNTER_HI, int)
+END_REGISTER(TCF_PERFCOUNTER6_HI)
+
+START_REGISTER(TCF_PERFCOUNTER7_HI)
+ GENERATE_FIELD(PERFCOUNTER_HI, int)
+END_REGISTER(TCF_PERFCOUNTER7_HI)
+
+START_REGISTER(TCF_PERFCOUNTER8_HI)
+ GENERATE_FIELD(PERFCOUNTER_HI, int)
+END_REGISTER(TCF_PERFCOUNTER8_HI)
+
+START_REGISTER(TCF_PERFCOUNTER9_HI)
+ GENERATE_FIELD(PERFCOUNTER_HI, int)
+END_REGISTER(TCF_PERFCOUNTER9_HI)
+
+START_REGISTER(TCF_PERFCOUNTER10_HI)
+ GENERATE_FIELD(PERFCOUNTER_HI, int)
+END_REGISTER(TCF_PERFCOUNTER10_HI)
+
+START_REGISTER(TCF_PERFCOUNTER11_HI)
+ GENERATE_FIELD(PERFCOUNTER_HI, int)
+END_REGISTER(TCF_PERFCOUNTER11_HI)
+
+START_REGISTER(TCF_PERFCOUNTER0_LOW)
+ GENERATE_FIELD(PERFCOUNTER_LOW, int)
+END_REGISTER(TCF_PERFCOUNTER0_LOW)
+
+START_REGISTER(TCF_PERFCOUNTER1_LOW)
+ GENERATE_FIELD(PERFCOUNTER_LOW, int)
+END_REGISTER(TCF_PERFCOUNTER1_LOW)
+
+START_REGISTER(TCF_PERFCOUNTER2_LOW)
+ GENERATE_FIELD(PERFCOUNTER_LOW, int)
+END_REGISTER(TCF_PERFCOUNTER2_LOW)
+
+START_REGISTER(TCF_PERFCOUNTER3_LOW)
+ GENERATE_FIELD(PERFCOUNTER_LOW, int)
+END_REGISTER(TCF_PERFCOUNTER3_LOW)
+
+START_REGISTER(TCF_PERFCOUNTER4_LOW)
+ GENERATE_FIELD(PERFCOUNTER_LOW, int)
+END_REGISTER(TCF_PERFCOUNTER4_LOW)
+
+START_REGISTER(TCF_PERFCOUNTER5_LOW)
+ GENERATE_FIELD(PERFCOUNTER_LOW, int)
+END_REGISTER(TCF_PERFCOUNTER5_LOW)
+
+START_REGISTER(TCF_PERFCOUNTER6_LOW)
+ GENERATE_FIELD(PERFCOUNTER_LOW, int)
+END_REGISTER(TCF_PERFCOUNTER6_LOW)
+
+START_REGISTER(TCF_PERFCOUNTER7_LOW)
+ GENERATE_FIELD(PERFCOUNTER_LOW, int)
+END_REGISTER(TCF_PERFCOUNTER7_LOW)
+
+START_REGISTER(TCF_PERFCOUNTER8_LOW)
+ GENERATE_FIELD(PERFCOUNTER_LOW, int)
+END_REGISTER(TCF_PERFCOUNTER8_LOW)
+
+START_REGISTER(TCF_PERFCOUNTER9_LOW)
+ GENERATE_FIELD(PERFCOUNTER_LOW, int)
+END_REGISTER(TCF_PERFCOUNTER9_LOW)
+
+START_REGISTER(TCF_PERFCOUNTER10_LOW)
+ GENERATE_FIELD(PERFCOUNTER_LOW, int)
+END_REGISTER(TCF_PERFCOUNTER10_LOW)
+
+START_REGISTER(TCF_PERFCOUNTER11_LOW)
+ GENERATE_FIELD(PERFCOUNTER_LOW, int)
+END_REGISTER(TCF_PERFCOUNTER11_LOW)
+
+START_REGISTER(TCF_DEBUG)
+ GENERATE_FIELD(tca_rts, int)
+ GENERATE_FIELD(tca_state_rts, int)
+ GENERATE_FIELD(not_TPC_rtr, int)
+ GENERATE_FIELD(TPC_full, int)
+ GENERATE_FIELD(TP0_full, int)
+ GENERATE_FIELD(PF0_stall, int)
+ GENERATE_FIELD(TCA_TCB_stall, int)
+ GENERATE_FIELD(TCB_miss_stall, int)
+ GENERATE_FIELD(TCB_ff_stall, int)
+ GENERATE_FIELD(not_TCB_TCO_rtr, int)
+ GENERATE_FIELD(not_FG0_rtr, int)
+ GENERATE_FIELD(TC_MH_send, int)
+ GENERATE_FIELD(not_MH_TC_rtr, int)
+END_REGISTER(TCF_DEBUG)
+
+START_REGISTER(TCA_FIFO_DEBUG)
+ GENERATE_FIELD(FW_tpc_rts, int)
+ GENERATE_FIELD(not_FW_tpc_rtr, int)
+ GENERATE_FIELD(FW_rts0, int)
+ GENERATE_FIELD(not_FW_rtr0, int)
+ GENERATE_FIELD(FW_full, int)
+ GENERATE_FIELD(load_tp_fifos, int)
+ GENERATE_FIELD(load_tpc_fifo, int)
+ GENERATE_FIELD(tpc_full, int)
+ GENERATE_FIELD(tp0_full, int)
+END_REGISTER(TCA_FIFO_DEBUG)
+
+START_REGISTER(TCA_PROBE_DEBUG)
+ GENERATE_FIELD(ProbeFilter_stall, int)
+END_REGISTER(TCA_PROBE_DEBUG)
+
+START_REGISTER(TCA_TPC_DEBUG)
+ GENERATE_FIELD(capture_tca_rts, int)
+ GENERATE_FIELD(captue_state_rts, int)
+END_REGISTER(TCA_TPC_DEBUG)
+
+START_REGISTER(TCB_CORE_DEBUG)
+ GENERATE_FIELD(sector_format512, int)
+ GENERATE_FIELD(sector_format, int)
+ GENERATE_FIELD(format, int)
+ GENERATE_FIELD(opcode, int)
+ GENERATE_FIELD(tiled, int)
+ GENERATE_FIELD(access512, int)
+END_REGISTER(TCB_CORE_DEBUG)
+
+START_REGISTER(TCB_TAG0_DEBUG)
+ GENERATE_FIELD(max_misses, int)
+ GENERATE_FIELD(num_feee_lines, int)
+ GENERATE_FIELD(miss_stall, int)
+ GENERATE_FIELD(tag_access_cycle, int)
+ GENERATE_FIELD(mem_read_cycle, int)
+END_REGISTER(TCB_TAG0_DEBUG)
+
+START_REGISTER(TCB_TAG1_DEBUG)
+ GENERATE_FIELD(max_misses, int)
+ GENERATE_FIELD(num_feee_lines, int)
+ GENERATE_FIELD(miss_stall, int)
+ GENERATE_FIELD(tag_access_cycle, int)
+ GENERATE_FIELD(mem_read_cycle, int)
+END_REGISTER(TCB_TAG1_DEBUG)
+
+START_REGISTER(TCB_TAG2_DEBUG)
+ GENERATE_FIELD(max_misses, int)
+ GENERATE_FIELD(num_feee_lines, int)
+ GENERATE_FIELD(miss_stall, int)
+ GENERATE_FIELD(tag_access_cycle, int)
+ GENERATE_FIELD(mem_read_cycle, int)
+END_REGISTER(TCB_TAG2_DEBUG)
+
+START_REGISTER(TCB_TAG3_DEBUG)
+ GENERATE_FIELD(max_misses, int)
+ GENERATE_FIELD(num_feee_lines, int)
+ GENERATE_FIELD(miss_stall, int)
+ GENERATE_FIELD(tag_access_cycle, int)
+ GENERATE_FIELD(mem_read_cycle, int)
+END_REGISTER(TCB_TAG3_DEBUG)
+
+START_REGISTER(TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG)
+ GENERATE_FIELD(valid_left_q, int)
+ GENERATE_FIELD(sector_mask_left_q, int)
+ GENERATE_FIELD(sector_mask_left_count_q, int)
+ GENERATE_FIELD(update_left, int)
+ GENERATE_FIELD(no_sectors_to_go, int)
+ GENERATE_FIELD(one_sector_to_go_left_q, int)
+ GENERATE_FIELD(fg0_sends_left, int)
+ GENERATE_FIELD(left_done, int)
+END_REGISTER(TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG)
+
+START_REGISTER(TCB_FETCH_GEN_WALKER_DEBUG)
+ GENERATE_FIELD(setquads_to_send, int)
+ GENERATE_FIELD(busy, int)
+ GENERATE_FIELD(ff_fg_type512, int)
+ GENERATE_FIELD(right_eq_left, int)
+ GENERATE_FIELD(set_sel_left, int)
+ GENERATE_FIELD(quad_sel_left, int)
+END_REGISTER(TCB_FETCH_GEN_WALKER_DEBUG)
+
+START_REGISTER(TCB_FETCH_GEN_PIPE0_DEBUG)
+ GENERATE_FIELD(arb_RTR, int)
+ GENERATE_FIELD(valid_q, int)
+ GENERATE_FIELD(mc_sel_q, int)
+ GENERATE_FIELD(ga_busy, int)
+ GENERATE_FIELD(fgo_busy, int)
+ GENERATE_FIELD(busy, int)
+ GENERATE_FIELD(tc_arb_request_type, int)
+ GENERATE_FIELD(tc_arb_fmsopcode, int)
+ GENERATE_FIELD(tc_arb_format, int)
+ GENERATE_FIELD(ga_out_rts, int)
+ GENERATE_FIELD(tc0_arb_rts, int)
+END_REGISTER(TCB_FETCH_GEN_PIPE0_DEBUG)
+
+START_REGISTER(TCD_INPUT0_DEBUG)
+ GENERATE_FIELD(ipbuf_busy, int)
+ GENERATE_FIELD(ipbuf_dxt_send, int)
+ GENERATE_FIELD(ip_send, int)
+ GENERATE_FIELD(last_send_q1, int)
+ GENERATE_FIELD(cnt_q1, int)
+ GENERATE_FIELD(valid_q1, int)
+ GENERATE_FIELD(full, int)
+ GENERATE_FIELD(empty, int)
+END_REGISTER(TCD_INPUT0_DEBUG)
+
+START_REGISTER(TCD_DEGAMMA_DEBUG)
+ GENERATE_FIELD(dgmm_pstate, int)
+ GENERATE_FIELD(dgmm_stall, int)
+ GENERATE_FIELD(dgmm_ctrl_send, int)
+ GENERATE_FIELD(dgmm_ctrl_last_send, int)
+ GENERATE_FIELD(dgmm_ctrl_dgmm8, int)
+ GENERATE_FIELD(dgmm_ftfconv_dgmmen, int)
+END_REGISTER(TCD_DEGAMMA_DEBUG)
+
+START_REGISTER(TCD_DXTMUX_SCTARB_DEBUG)
+ GENERATE_FIELD(dcmp_mux_send, int)
+ GENERATE_FIELD(dxtc_dgmmpd_send, int)
+ GENERATE_FIELD(dxtc_dgmmpd_last_send, int)
+ GENERATE_FIELD(dxtc_sctrarb_send, int)
+ GENERATE_FIELD(sctrmx0_sctrarb_rts, int)
+ GENERATE_FIELD(sctrarb_multcyl_send, int)
+ GENERATE_FIELD(dxtc_rtr, int)
+ GENERATE_FIELD(sctrmx_rtr, int)
+ GENERATE_FIELD(pstate, int)
+END_REGISTER(TCD_DXTMUX_SCTARB_DEBUG)
+
+START_REGISTER(TCD_DXTC_ARB_DEBUG)
+ GENERATE_FIELD(n0_dxt2_4_types, int)
+ GENERATE_FIELD(arb_dcmp01_send, int)
+ GENERATE_FIELD(arb_dcmp01_format, int)
+ GENERATE_FIELD(arb_dcmp01_cacheline, int)
+ GENERATE_FIELD(arb_dcmp01_sector, int)
+ GENERATE_FIELD(arb_dcmp01_cnt, int)
+ GENERATE_FIELD(arb_dcmp01_last_send, int)
+ GENERATE_FIELD(pstate, int)
+ GENERATE_FIELD(n0_stall, int)
+END_REGISTER(TCD_DXTC_ARB_DEBUG)
+
+START_REGISTER(TCD_STALLS_DEBUG)
+ GENERATE_FIELD(not_incoming_rtr, int)
+ GENERATE_FIELD(not_mux_dcmp_rtr, int)
+ GENERATE_FIELD(not_dgmmpd_dxtc_rtr, int)
+ GENERATE_FIELD(not_dcmp0_arb_rtr, int)
+ GENERATE_FIELD(not_sctrmx0_sctrarb_rtr, int)
+ GENERATE_FIELD(not_multcyl_sctrarb_rtr, int)
+END_REGISTER(TCD_STALLS_DEBUG)
+
+START_REGISTER(TCO_STALLS_DEBUG)
+ GENERATE_FIELD(quad0_TCO_TCB_rtr_d, int)
+ GENERATE_FIELD(quad0_rl_sg_RTR, int)
+ GENERATE_FIELD(quad0_sg_crd_RTR, int)
+END_REGISTER(TCO_STALLS_DEBUG)
+
+START_REGISTER(TCO_QUAD0_DEBUG0)
+ GENERATE_FIELD(busy, int)
+ GENERATE_FIELD(all_sectors_written_set0, int)
+ GENERATE_FIELD(all_sectors_written_set1, int)
+ GENERATE_FIELD(all_sectors_written_set2, int)
+ GENERATE_FIELD(all_sectors_written_set3, int)
+ GENERATE_FIELD(cache_read_RTR, int)
+ GENERATE_FIELD(read_cache_q, int)
+ GENERATE_FIELD(stageN1_valid_q, int)
+ GENERATE_FIELD(sg_crd_rts, int)
+ GENERATE_FIELD(sg_crd_rtr, int)
+ GENERATE_FIELD(sg_crd_end_of_sample, int)
+ GENERATE_FIELD(rl_sg_rts, int)
+ GENERATE_FIELD(rl_sg_rtr, int)
+ GENERATE_FIELD(rl_sg_end_of_sample, int)
+ GENERATE_FIELD(rl_sg_sector_format, int)
+END_REGISTER(TCO_QUAD0_DEBUG0)
+
+START_REGISTER(TCO_QUAD0_DEBUG1)
+ GENERATE_FIELD(TCO_TCB_read_xfc, int)
+ GENERATE_FIELD(sg_crd_rts, int)
+ GENERATE_FIELD(sg_crd_rtr, int)
+ GENERATE_FIELD(rl_sg_rts, int)
+ GENERATE_FIELD(rl_sg_rtr, int)
+ GENERATE_FIELD(TCB_TCO_xfc_q, int)
+ GENERATE_FIELD(TCB_TCO_rtr_d, int)
+ GENERATE_FIELD(tco_quad_pipe_busy, int)
+ GENERATE_FIELD(input_quad_busy, int)
+ GENERATE_FIELD(latency_fifo_busy, int)
+ GENERATE_FIELD(cache_read_busy, int)
+ GENERATE_FIELD(fifo_read_ptr, int)
+ GENERATE_FIELD(fifo_write_ptr, int)
+ GENERATE_FIELD(write_enable, int)
+ GENERATE_FIELD(full, int)
+ GENERATE_FIELD(empty, int)
+ GENERATE_FIELD(fifo_busy, int)
+END_REGISTER(TCO_QUAD0_DEBUG1)
+
+START_REGISTER(SQ_GPR_MANAGEMENT)
+ GENERATE_FIELD(REG_SIZE_VTX, int)
+ GENERATE_FIELD(REG_SIZE_PIX, int)
+ GENERATE_FIELD(REG_DYNAMIC, int)
+END_REGISTER(SQ_GPR_MANAGEMENT)
+
+START_REGISTER(SQ_FLOW_CONTROL)
+ GENERATE_FIELD(PS_PREFETCH_COLOR_ALLOC, int)
+ GENERATE_FIELD(NO_EARLY_THREAD_TERMINATION, int)
+ GENERATE_FIELD(POS_EXP_PRIORITY, int)
+ GENERATE_FIELD(NO_CFS_EJECT, int)
+ GENERATE_FIELD(NO_ARB_EJECT, int)
+ GENERATE_FIELD(ALU_ARBITRATION_POLICY, int)
+ GENERATE_FIELD(VC_ARBITRATION_POLICY, int)
+ GENERATE_FIELD(TEXTURE_ARBITRATION_POLICY, int)
+ GENERATE_FIELD(NO_CEXEC_OPTIMIZE, int)
+ GENERATE_FIELD(NO_LOOP_EXIT, int)
+ GENERATE_FIELD(NO_PV_PS, int)
+ GENERATE_FIELD(CF_WR_BASE, hex)
+ GENERATE_FIELD(ONE_ALU, int)
+ GENERATE_FIELD(ONE_THREAD, int)
+ GENERATE_FIELD(INPUT_ARBITRATION_POLICY, int)
+END_REGISTER(SQ_FLOW_CONTROL)
+
+START_REGISTER(SQ_INST_STORE_MANAGMENT)
+ GENERATE_FIELD(INST_BASE_VTX, int)
+ GENERATE_FIELD(INST_BASE_PIX, int)
+END_REGISTER(SQ_INST_STORE_MANAGMENT)
+
+START_REGISTER(SQ_RESOURCE_MANAGMENT)
+ GENERATE_FIELD(EXPORT_BUF_ENTRIES, int)
+ GENERATE_FIELD(PIX_THREAD_BUF_ENTRIES, int)
+ GENERATE_FIELD(VTX_THREAD_BUF_ENTRIES, int)
+END_REGISTER(SQ_RESOURCE_MANAGMENT)
+
+START_REGISTER(SQ_EO_RT)
+ GENERATE_FIELD(EO_TSTATE_RT, int)
+ GENERATE_FIELD(EO_CONSTANTS_RT, int)
+END_REGISTER(SQ_EO_RT)
+
+START_REGISTER(SQ_DEBUG_MISC)
+ GENERATE_FIELD(DB_WEN_MEMORY_3, int)
+ GENERATE_FIELD(DB_WEN_MEMORY_2, int)
+ GENERATE_FIELD(DB_WEN_MEMORY_1, int)
+ GENERATE_FIELD(DB_WEN_MEMORY_0, int)
+ GENERATE_FIELD(DB_READ_MEMORY, int)
+ GENERATE_FIELD(RESERVED, int)
+ GENERATE_FIELD(DB_READ_CTX, int)
+ GENERATE_FIELD(DB_TSTATE_SIZE, int)
+ GENERATE_FIELD(DB_ALUCST_SIZE, int)
+END_REGISTER(SQ_DEBUG_MISC)
+
+START_REGISTER(SQ_ACTIVITY_METER_CNTL)
+ GENERATE_FIELD(SPARE, int)
+ GENERATE_FIELD(THRESHOLD_HIGH, int)
+ GENERATE_FIELD(THRESHOLD_LOW, int)
+ GENERATE_FIELD(TIMEBASE, int)
+END_REGISTER(SQ_ACTIVITY_METER_CNTL)
+
+START_REGISTER(SQ_ACTIVITY_METER_STATUS)
+ GENERATE_FIELD(PERCENT_BUSY, int)
+END_REGISTER(SQ_ACTIVITY_METER_STATUS)
+
+START_REGISTER(SQ_INPUT_ARB_PRIORITY)
+ GENERATE_FIELD(THRESHOLD, int)
+ GENERATE_FIELD(SX_AVAIL_SIGN, int)
+ GENERATE_FIELD(SX_AVAIL_WEIGHT, int)
+ GENERATE_FIELD(PC_AVAIL_SIGN, int)
+ GENERATE_FIELD(PC_AVAIL_WEIGHT, int)
+END_REGISTER(SQ_INPUT_ARB_PRIORITY)
+
+START_REGISTER(SQ_THREAD_ARB_PRIORITY)
+ GENERATE_FIELD(USE_SERIAL_COUNT_THRESHOLD, int)
+ GENERATE_FIELD(PS_PRIORITIZE_SERIAL, int)
+ GENERATE_FIELD(VS_PRIORITIZE_SERIAL, int)
+ GENERATE_FIELD(RESERVED, int)
+ GENERATE_FIELD(THRESHOLD, int)
+ GENERATE_FIELD(SX_AVAIL_SIGN, int)
+ GENERATE_FIELD(SX_AVAIL_WEIGHT, int)
+ GENERATE_FIELD(PC_AVAIL_SIGN, int)
+ GENERATE_FIELD(PC_AVAIL_WEIGHT, int)
+END_REGISTER(SQ_THREAD_ARB_PRIORITY)
+
+START_REGISTER(SQ_VS_WATCHDOG_TIMER)
+ GENERATE_FIELD(TIMEOUT_COUNT, int)
+ GENERATE_FIELD(ENABLE, int)
+END_REGISTER(SQ_VS_WATCHDOG_TIMER)
+
+START_REGISTER(SQ_PS_WATCHDOG_TIMER)
+ GENERATE_FIELD(TIMEOUT_COUNT, int)
+ GENERATE_FIELD(ENABLE, int)
+END_REGISTER(SQ_PS_WATCHDOG_TIMER)
+
+START_REGISTER(SQ_INT_CNTL)
+ GENERATE_FIELD(VS_WATCHDOG_MASK, int)
+ GENERATE_FIELD(PS_WATCHDOG_MASK, int)
+END_REGISTER(SQ_INT_CNTL)
+
+START_REGISTER(SQ_INT_STATUS)
+ GENERATE_FIELD(VS_WATCHDOG_TIMEOUT, int)
+ GENERATE_FIELD(PS_WATCHDOG_TIMEOUT, int)
+END_REGISTER(SQ_INT_STATUS)
+
+START_REGISTER(SQ_INT_ACK)
+ GENERATE_FIELD(VS_WATCHDOG_ACK, int)
+ GENERATE_FIELD(PS_WATCHDOG_ACK, int)
+END_REGISTER(SQ_INT_ACK)
+
+START_REGISTER(SQ_DEBUG_INPUT_FSM)
+ GENERATE_FIELD(PC_GPR_SIZE, int)
+ GENERATE_FIELD(PC_INTERP_CNT, int)
+ GENERATE_FIELD(PC_AS, int)
+ GENERATE_FIELD(RESERVED1, int)
+ GENERATE_FIELD(PC_PISM, int)
+ GENERATE_FIELD(VC_GPR_LD, int)
+ GENERATE_FIELD(RESERVED, int)
+ GENERATE_FIELD(VC_VSR_LD, int)
+END_REGISTER(SQ_DEBUG_INPUT_FSM)
+
+START_REGISTER(SQ_DEBUG_CONST_MGR_FSM)
+ GENERATE_FIELD(CNTX1_PIX_EVENT_DONE, int)
+ GENERATE_FIELD(CNTX1_VTX_EVENT_DONE, int)
+ GENERATE_FIELD(CNTX0_PIX_EVENT_DONE, int)
+ GENERATE_FIELD(CNTX0_VTX_EVENT_DONE, int)
+ GENERATE_FIELD(TEX_CONST_CNTX_VALID, int)
+ GENERATE_FIELD(ALU_CONST_CNTX_VALID, int)
+ GENERATE_FIELD(RESERVED2, int)
+ GENERATE_FIELD(ALU_CONST_EVENT_STATE, int)
+ GENERATE_FIELD(RESERVED1, int)
+ GENERATE_FIELD(TEX_CONST_EVENT_STATE, int)
+END_REGISTER(SQ_DEBUG_CONST_MGR_FSM)
+
+START_REGISTER(SQ_DEBUG_TP_FSM)
+ GENERATE_FIELD(ARB_TR_TP, int)
+ GENERATE_FIELD(RESERVED5, int)
+ GENERATE_FIELD(FCS_TP, int)
+ GENERATE_FIELD(RESERVED4, int)
+ GENERATE_FIELD(FCR_TP, int)
+ GENERATE_FIELD(RESERVED3, int)
+ GENERATE_FIELD(GS_TP, int)
+ GENERATE_FIELD(RESERVED2, int)
+ GENERATE_FIELD(TIS_TP, int)
+ GENERATE_FIELD(RESERVED1, int)
+ GENERATE_FIELD(IF_TP, int)
+ GENERATE_FIELD(CF_TP, int)
+ GENERATE_FIELD(RESERVED0, int)
+ GENERATE_FIELD(EX_TP, int)
+END_REGISTER(SQ_DEBUG_TP_FSM)
+
+START_REGISTER(SQ_DEBUG_FSM_ALU_0)
+ GENERATE_FIELD(ARB_TR_ALU, int)
+ GENERATE_FIELD(RESERVED5, int)
+ GENERATE_FIELD(ACS_ALU_0, int)
+ GENERATE_FIELD(RESERVED4, int)
+ GENERATE_FIELD(AIS_ALU_0, int)
+ GENERATE_FIELD(RESERVED3, int)
+ GENERATE_FIELD(DU0_ALU_0, int)
+ GENERATE_FIELD(RESERVED2, int)
+ GENERATE_FIELD(DU1_ALU_0, int)
+ GENERATE_FIELD(RESERVED1, int)
+ GENERATE_FIELD(IF_ALU_0, int)
+ GENERATE_FIELD(CF_ALU_0, int)
+ GENERATE_FIELD(RESERVED0, int)
+ GENERATE_FIELD(EX_ALU_0, int)
+END_REGISTER(SQ_DEBUG_FSM_ALU_0)
+
+START_REGISTER(SQ_DEBUG_FSM_ALU_1)
+ GENERATE_FIELD(ARB_TR_ALU, int)
+ GENERATE_FIELD(RESERVED5, int)
+ GENERATE_FIELD(ACS_ALU_0, int)
+ GENERATE_FIELD(RESERVED4, int)
+ GENERATE_FIELD(AIS_ALU_0, int)
+ GENERATE_FIELD(RESERVED3, int)
+ GENERATE_FIELD(DU0_ALU_0, int)
+ GENERATE_FIELD(RESERVED2, int)
+ GENERATE_FIELD(DU1_ALU_0, int)
+ GENERATE_FIELD(RESERVED1, int)
+ GENERATE_FIELD(IF_ALU_0, int)
+ GENERATE_FIELD(CF_ALU_0, int)
+ GENERATE_FIELD(RESERVED0, int)
+ GENERATE_FIELD(EX_ALU_0, int)
+END_REGISTER(SQ_DEBUG_FSM_ALU_1)
+
+START_REGISTER(SQ_DEBUG_EXP_ALLOC)
+ GENERATE_FIELD(ALLOC_TBL_BUF_AVAIL, int)
+ GENERATE_FIELD(RESERVED, int)
+ GENERATE_FIELD(EA_BUF_AVAIL, int)
+ GENERATE_FIELD(COLOR_BUF_AVAIL, int)
+ GENERATE_FIELD(POS_BUF_AVAIL, int)
+END_REGISTER(SQ_DEBUG_EXP_ALLOC)
+
+START_REGISTER(SQ_DEBUG_PTR_BUFF)
+ GENERATE_FIELD(VTX_SYNC_CNT, int)
+ GENERATE_FIELD(EF_EMPTY, int)
+ GENERATE_FIELD(PRIM_TYPE_POLYGON, int)
+ GENERATE_FIELD(QUAL_EVENT, int)
+ GENERATE_FIELD(SC_EVENT_ID, int)
+ GENERATE_FIELD(EVENT_CONTEXT_ID, int)
+ GENERATE_FIELD(QUAL_NEW_VECTOR, int)
+ GENERATE_FIELD(DEALLOC_CNT, int)
+ GENERATE_FIELD(END_OF_BUFFER, int)
+END_REGISTER(SQ_DEBUG_PTR_BUFF)
+
+START_REGISTER(SQ_DEBUG_GPR_VTX)
+ GENERATE_FIELD(VTX_FREE, int)
+ GENERATE_FIELD(RESERVED2, int)
+ GENERATE_FIELD(VTX_MAX, int)
+ GENERATE_FIELD(RESERVED1, int)
+ GENERATE_FIELD(VTX_HEAD_PTR, int)
+ GENERATE_FIELD(RESERVED, int)
+ GENERATE_FIELD(VTX_TAIL_PTR, int)
+END_REGISTER(SQ_DEBUG_GPR_VTX)
+
+START_REGISTER(SQ_DEBUG_GPR_PIX)
+ GENERATE_FIELD(PIX_FREE, int)
+ GENERATE_FIELD(RESERVED2, int)
+ GENERATE_FIELD(PIX_MAX, int)
+ GENERATE_FIELD(RESERVED1, int)
+ GENERATE_FIELD(PIX_HEAD_PTR, int)
+ GENERATE_FIELD(RESERVED, int)
+ GENERATE_FIELD(PIX_TAIL_PTR, int)
+END_REGISTER(SQ_DEBUG_GPR_PIX)
+
+START_REGISTER(SQ_DEBUG_TB_STATUS_SEL)
+ GENERATE_FIELD(DISABLE_STRICT_CTX_SYNC, int)
+ GENERATE_FIELD(VC_THREAD_BUF_DLY, int)
+ GENERATE_FIELD(PIX_TB_STATE_MEM_RD_ADDR, int)
+ GENERATE_FIELD(PIX_TB_STATE_MEM_DW_SEL, int)
+ GENERATE_FIELD(PIX_TB_STATUS_REG_SEL, int)
+ GENERATE_FIELD(DEBUG_BUS_TRIGGER_SEL, int)
+ GENERATE_FIELD(PIX_TB_STATE_MEM_RD_EN, int)
+ GENERATE_FIELD(VTX_TB_STATE_MEM_RD_EN, int)
+ GENERATE_FIELD(VTX_TB_STATE_MEM_RD_ADDR, int)
+ GENERATE_FIELD(VTX_TB_STATE_MEM_DW_SEL, int)
+ GENERATE_FIELD(VTX_TB_STATUS_REG_SEL, int)
+END_REGISTER(SQ_DEBUG_TB_STATUS_SEL)
+
+START_REGISTER(SQ_DEBUG_VTX_TB_0)
+ GENERATE_FIELD(BUSY_Q, int)
+ GENERATE_FIELD(SX_EVENT_FULL, int)
+ GENERATE_FIELD(NXT_PC_ALLOC_CNT, int)
+ GENERATE_FIELD(NXT_POS_ALLOC_CNT, int)
+ GENERATE_FIELD(FULL_CNT_Q, int)
+ GENERATE_FIELD(TAIL_PTR_Q, int)
+ GENERATE_FIELD(VTX_HEAD_PTR_Q, int)
+END_REGISTER(SQ_DEBUG_VTX_TB_0)
+
+START_REGISTER(SQ_DEBUG_VTX_TB_1)
+ GENERATE_FIELD(VS_DONE_PTR, int)
+END_REGISTER(SQ_DEBUG_VTX_TB_1)
+
+START_REGISTER(SQ_DEBUG_VTX_TB_STATUS_REG)
+ GENERATE_FIELD(VS_STATUS_REG, int)
+END_REGISTER(SQ_DEBUG_VTX_TB_STATUS_REG)
+
+START_REGISTER(SQ_DEBUG_VTX_TB_STATE_MEM)
+ GENERATE_FIELD(VS_STATE_MEM, int)
+END_REGISTER(SQ_DEBUG_VTX_TB_STATE_MEM)
+
+START_REGISTER(SQ_DEBUG_PIX_TB_0)
+ GENERATE_FIELD(BUSY, int)
+ GENERATE_FIELD(NXT_PIX_EXP_CNT, int)
+ GENERATE_FIELD(NXT_PIX_ALLOC_CNT, int)
+ GENERATE_FIELD(FULL_CNT, int)
+ GENERATE_FIELD(TAIL_PTR, int)
+ GENERATE_FIELD(PIX_HEAD_PTR, int)
+END_REGISTER(SQ_DEBUG_PIX_TB_0)
+
+START_REGISTER(SQ_DEBUG_PIX_TB_STATUS_REG_0)
+ GENERATE_FIELD(PIX_TB_STATUS_REG_0, int)
+END_REGISTER(SQ_DEBUG_PIX_TB_STATUS_REG_0)
+
+START_REGISTER(SQ_DEBUG_PIX_TB_STATUS_REG_1)
+ GENERATE_FIELD(PIX_TB_STATUS_REG_1, int)
+END_REGISTER(SQ_DEBUG_PIX_TB_STATUS_REG_1)
+
+START_REGISTER(SQ_DEBUG_PIX_TB_STATUS_REG_2)
+ GENERATE_FIELD(PIX_TB_STATUS_REG_2, int)
+END_REGISTER(SQ_DEBUG_PIX_TB_STATUS_REG_2)
+
+START_REGISTER(SQ_DEBUG_PIX_TB_STATUS_REG_3)
+ GENERATE_FIELD(PIX_TB_STATUS_REG_3, int)
+END_REGISTER(SQ_DEBUG_PIX_TB_STATUS_REG_3)
+
+START_REGISTER(SQ_DEBUG_PIX_TB_STATE_MEM)
+ GENERATE_FIELD(PIX_TB_STATE_MEM, int)
+END_REGISTER(SQ_DEBUG_PIX_TB_STATE_MEM)
+
+START_REGISTER(SQ_PERFCOUNTER0_SELECT)
+ GENERATE_FIELD(PERF_SEL, SQ_PERFCNT_SELECT)
+END_REGISTER(SQ_PERFCOUNTER0_SELECT)
+
+START_REGISTER(SQ_PERFCOUNTER1_SELECT)
+ GENERATE_FIELD(PERF_SEL, int)
+END_REGISTER(SQ_PERFCOUNTER1_SELECT)
+
+START_REGISTER(SQ_PERFCOUNTER2_SELECT)
+ GENERATE_FIELD(PERF_SEL, int)
+END_REGISTER(SQ_PERFCOUNTER2_SELECT)
+
+START_REGISTER(SQ_PERFCOUNTER3_SELECT)
+ GENERATE_FIELD(PERF_SEL, int)
+END_REGISTER(SQ_PERFCOUNTER3_SELECT)
+
+START_REGISTER(SQ_PERFCOUNTER0_LOW)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(SQ_PERFCOUNTER0_LOW)
+
+START_REGISTER(SQ_PERFCOUNTER0_HI)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(SQ_PERFCOUNTER0_HI)
+
+START_REGISTER(SQ_PERFCOUNTER1_LOW)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(SQ_PERFCOUNTER1_LOW)
+
+START_REGISTER(SQ_PERFCOUNTER1_HI)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(SQ_PERFCOUNTER1_HI)
+
+START_REGISTER(SQ_PERFCOUNTER2_LOW)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(SQ_PERFCOUNTER2_LOW)
+
+START_REGISTER(SQ_PERFCOUNTER2_HI)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(SQ_PERFCOUNTER2_HI)
+
+START_REGISTER(SQ_PERFCOUNTER3_LOW)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(SQ_PERFCOUNTER3_LOW)
+
+START_REGISTER(SQ_PERFCOUNTER3_HI)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(SQ_PERFCOUNTER3_HI)
+
+START_REGISTER(SX_PERFCOUNTER0_SELECT)
+ GENERATE_FIELD(PERF_SEL, SX_PERFCNT_SELECT)
+END_REGISTER(SX_PERFCOUNTER0_SELECT)
+
+START_REGISTER(SX_PERFCOUNTER0_LOW)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(SX_PERFCOUNTER0_LOW)
+
+START_REGISTER(SX_PERFCOUNTER0_HI)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(SX_PERFCOUNTER0_HI)
+
+START_REGISTER(SQ_INSTRUCTION_ALU_0)
+ GENERATE_FIELD(SCALAR_OPCODE, ScalarOpcode)
+ GENERATE_FIELD(SCALAR_CLAMP, int)
+ GENERATE_FIELD(VECTOR_CLAMP, int)
+ GENERATE_FIELD(SCALAR_WRT_MSK, int)
+ GENERATE_FIELD(VECTOR_WRT_MSK, int)
+ GENERATE_FIELD(EXPORT_DATA, Exporting)
+ GENERATE_FIELD(SCALAR_DST_REL, int)
+ GENERATE_FIELD(SCALAR_RESULT, int)
+ GENERATE_FIELD(LOW_PRECISION_16B_FP, int)
+ GENERATE_FIELD(VECTOR_DST_REL, Abs_modifier)
+ GENERATE_FIELD(VECTOR_RESULT, int)
+END_REGISTER(SQ_INSTRUCTION_ALU_0)
+
+START_REGISTER(SQ_INSTRUCTION_ALU_1)
+ GENERATE_FIELD(CONST_0_REL_ABS, int)
+ GENERATE_FIELD(CONST_1_REL_ABS, int)
+ GENERATE_FIELD(RELATIVE_ADDR, int)
+ GENERATE_FIELD(PRED_SELECT, PredicateSelect)
+ GENERATE_FIELD(SRC_A_ARG_MOD, InputModifier)
+ GENERATE_FIELD(SRC_B_ARG_MOD, InputModifier)
+ GENERATE_FIELD(SRC_C_ARG_MOD, InputModifier)
+ GENERATE_FIELD(SRC_A_SWIZZLE_A, SwizzleType)
+ GENERATE_FIELD(SRC_A_SWIZZLE_B, SwizzleType)
+ GENERATE_FIELD(SRC_A_SWIZZLE_G, SwizzleType)
+ GENERATE_FIELD(SRC_A_SWIZZLE_R, SwizzleType)
+ GENERATE_FIELD(SRC_B_SWIZZLE_A, SwizzleType)
+ GENERATE_FIELD(SRC_B_SWIZZLE_B, SwizzleType)
+ GENERATE_FIELD(SRC_B_SWIZZLE_G, SwizzleType)
+ GENERATE_FIELD(SRC_B_SWIZZLE_R, SwizzleType)
+ GENERATE_FIELD(SRC_C_SWIZZLE_A, SwizzleType)
+ GENERATE_FIELD(SRC_C_SWIZZLE_B, SwizzleType)
+ GENERATE_FIELD(SRC_C_SWIZZLE_G, SwizzleType)
+ GENERATE_FIELD(SRC_C_SWIZZLE_R, SwizzleType)
+END_REGISTER(SQ_INSTRUCTION_ALU_1)
+
+START_REGISTER(SQ_INSTRUCTION_ALU_2)
+ GENERATE_FIELD(SRC_A_SEL, OperandSelect0)
+ GENERATE_FIELD(SRC_B_SEL, OperandSelect0)
+ GENERATE_FIELD(SRC_C_SEL, OperandSelect0)
+ GENERATE_FIELD(VECTOR_OPCODE, VectorOpcode)
+ GENERATE_FIELD(REG_ABS_MOD_A, Abs_modifier)
+ GENERATE_FIELD(REG_SELECT_A, OperandSelect1)
+ GENERATE_FIELD(SRC_A_REG_PTR, int)
+ GENERATE_FIELD(REG_ABS_MOD_B, Abs_modifier)
+ GENERATE_FIELD(REG_SELECT_B, OperandSelect1)
+ GENERATE_FIELD(SRC_B_REG_PTR, int)
+ GENERATE_FIELD(REG_ABS_MOD_C, Abs_modifier)
+ GENERATE_FIELD(REG_SELECT_C, OperandSelect1)
+ GENERATE_FIELD(SRC_C_REG_PTR, int)
+END_REGISTER(SQ_INSTRUCTION_ALU_2)
+
+START_REGISTER(SQ_INSTRUCTION_CF_EXEC_0)
+ GENERATE_FIELD(INST_VC_3, VC_type)
+ GENERATE_FIELD(INST_VC_2, VC_type)
+ GENERATE_FIELD(INST_VC_1, VC_type)
+ GENERATE_FIELD(INST_VC_0, VC_type)
+ GENERATE_FIELD(INST_SERIAL_5, Instruction_serial)
+ GENERATE_FIELD(INST_TYPE_5, Ressource_type)
+ GENERATE_FIELD(INST_SERIAL_4, Instruction_serial)
+ GENERATE_FIELD(INST_TYPE_4, Ressource_type)
+ GENERATE_FIELD(INST_SERIAL_3, Instruction_serial)
+ GENERATE_FIELD(INST_TYPE_3, Ressource_type)
+ GENERATE_FIELD(INST_SERIAL_2, Instruction_serial)
+ GENERATE_FIELD(INST_TYPE_2, Ressource_type)
+ GENERATE_FIELD(INST_SERIAL_1, Instruction_serial)
+ GENERATE_FIELD(INST_TYPE_1, Ressource_type)
+ GENERATE_FIELD(INST_SERIAL_0, Instruction_serial)
+ GENERATE_FIELD(INST_TYPE_0, Ressource_type)
+ GENERATE_FIELD(YIELD, int)
+ GENERATE_FIELD(COUNT, int)
+ GENERATE_FIELD(RESERVED, int)
+ GENERATE_FIELD(ADDRESS, int)
+END_REGISTER(SQ_INSTRUCTION_CF_EXEC_0)
+
+START_REGISTER(SQ_INSTRUCTION_CF_EXEC_1)
+ GENERATE_FIELD(YIELD, int)
+ GENERATE_FIELD(COUNT, int)
+ GENERATE_FIELD(RESERVED, int)
+ GENERATE_FIELD(ADDRESS, int)
+ GENERATE_FIELD(OPCODE, CFOpcode)
+ GENERATE_FIELD(ADDRESS_MODE, Addressing)
+ GENERATE_FIELD(CONDITION, int)
+ GENERATE_FIELD(BOOL_ADDR, int)
+ GENERATE_FIELD(INST_VC_5, VC_type)
+ GENERATE_FIELD(INST_VC_4, VC_type)
+END_REGISTER(SQ_INSTRUCTION_CF_EXEC_1)
+
+START_REGISTER(SQ_INSTRUCTION_CF_EXEC_2)
+ GENERATE_FIELD(OPCODE, CFOpcode)
+ GENERATE_FIELD(ADDRESS_MODE, Addressing)
+ GENERATE_FIELD(CONDITION, int)
+ GENERATE_FIELD(BOOL_ADDR, int)
+ GENERATE_FIELD(INST_VC_5, VC_type)
+ GENERATE_FIELD(INST_VC_4, VC_type)
+ GENERATE_FIELD(INST_VC_3, VC_type)
+ GENERATE_FIELD(INST_VC_2, VC_type)
+ GENERATE_FIELD(INST_VC_1, VC_type)
+ GENERATE_FIELD(INST_VC_0, VC_type)
+ GENERATE_FIELD(INST_SERIAL_5, Instruction_serial)
+ GENERATE_FIELD(INST_TYPE_5, Ressource_type)
+ GENERATE_FIELD(INST_SERIAL_4, Instruction_serial)
+ GENERATE_FIELD(INST_TYPE_4, Ressource_type)
+ GENERATE_FIELD(INST_SERIAL_3, Instruction_serial)
+ GENERATE_FIELD(INST_TYPE_3, Ressource_type)
+ GENERATE_FIELD(INST_SERIAL_2, Instruction_serial)
+ GENERATE_FIELD(INST_TYPE_2, Ressource_type)
+ GENERATE_FIELD(INST_SERIAL_1, Instruction_serial)
+ GENERATE_FIELD(INST_TYPE_1, Ressource_type)
+ GENERATE_FIELD(INST_SERIAL_0, Instruction_serial)
+ GENERATE_FIELD(INST_TYPE_0, Ressource_type)
+END_REGISTER(SQ_INSTRUCTION_CF_EXEC_2)
+
+START_REGISTER(SQ_INSTRUCTION_CF_LOOP_0)
+ GENERATE_FIELD(RESERVED_1, int)
+ GENERATE_FIELD(LOOP_ID, int)
+ GENERATE_FIELD(RESERVED_0, int)
+ GENERATE_FIELD(ADDRESS, int)
+END_REGISTER(SQ_INSTRUCTION_CF_LOOP_0)
+
+START_REGISTER(SQ_INSTRUCTION_CF_LOOP_1)
+ GENERATE_FIELD(RESERVED_1, int)
+ GENERATE_FIELD(ADDRESS, int)
+ GENERATE_FIELD(OPCODE, CFOpcode)
+ GENERATE_FIELD(ADDRESS_MODE, Addressing)
+ GENERATE_FIELD(RESERVED_0, int)
+END_REGISTER(SQ_INSTRUCTION_CF_LOOP_1)
+
+START_REGISTER(SQ_INSTRUCTION_CF_LOOP_2)
+ GENERATE_FIELD(OPCODE, CFOpcode)
+ GENERATE_FIELD(ADDRESS_MODE, Addressing)
+ GENERATE_FIELD(RESERVED, int)
+ GENERATE_FIELD(LOOP_ID, int)
+END_REGISTER(SQ_INSTRUCTION_CF_LOOP_2)
+
+START_REGISTER(SQ_INSTRUCTION_CF_JMP_CALL_0)
+ GENERATE_FIELD(RESERVED_1, int)
+ GENERATE_FIELD(PREDICATED_JMP, int)
+ GENERATE_FIELD(FORCE_CALL, int)
+ GENERATE_FIELD(RESERVED_0, int)
+ GENERATE_FIELD(ADDRESS, int)
+END_REGISTER(SQ_INSTRUCTION_CF_JMP_CALL_0)
+
+START_REGISTER(SQ_INSTRUCTION_CF_JMP_CALL_1)
+ GENERATE_FIELD(RESERVED_2, int)
+ GENERATE_FIELD(FORCE_CALL, int)
+ GENERATE_FIELD(RESERVED_1, int)
+ GENERATE_FIELD(ADDRESS, int)
+ GENERATE_FIELD(OPCODE, CFOpcode)
+ GENERATE_FIELD(ADDRESS_MODE, Addressing)
+ GENERATE_FIELD(CONDITION, int)
+ GENERATE_FIELD(BOOL_ADDR, int)
+ GENERATE_FIELD(DIRECTION, int)
+ GENERATE_FIELD(RESERVED_0, int)
+END_REGISTER(SQ_INSTRUCTION_CF_JMP_CALL_1)
+
+START_REGISTER(SQ_INSTRUCTION_CF_JMP_CALL_2)
+ GENERATE_FIELD(OPCODE, CFOpcode)
+ GENERATE_FIELD(ADDRESS_MODE, Addressing)
+ GENERATE_FIELD(CONDITION, int)
+ GENERATE_FIELD(BOOL_ADDR, int)
+ GENERATE_FIELD(DIRECTION, int)
+ GENERATE_FIELD(RESERVED, int)
+END_REGISTER(SQ_INSTRUCTION_CF_JMP_CALL_2)
+
+START_REGISTER(SQ_INSTRUCTION_CF_ALLOC_0)
+ GENERATE_FIELD(RESERVED, int)
+ GENERATE_FIELD(SIZE, int)
+END_REGISTER(SQ_INSTRUCTION_CF_ALLOC_0)
+
+START_REGISTER(SQ_INSTRUCTION_CF_ALLOC_1)
+ GENERATE_FIELD(RESERVED_1, int)
+ GENERATE_FIELD(SIZE, int)
+ GENERATE_FIELD(OPCODE, CFOpcode)
+ GENERATE_FIELD(ALLOC_MODE, int)
+ GENERATE_FIELD(BUFFER_SELECT, Allocation_type)
+ GENERATE_FIELD(NO_SERIAL, int)
+ GENERATE_FIELD(RESERVED_0, int)
+END_REGISTER(SQ_INSTRUCTION_CF_ALLOC_1)
+
+START_REGISTER(SQ_INSTRUCTION_CF_ALLOC_2)
+ GENERATE_FIELD(OPCODE, CFOpcode)
+ GENERATE_FIELD(ALLOC_MODE, int)
+ GENERATE_FIELD(BUFFER_SELECT, Allocation_type)
+ GENERATE_FIELD(NO_SERIAL, int)
+ GENERATE_FIELD(RESERVED, int)
+END_REGISTER(SQ_INSTRUCTION_CF_ALLOC_2)
+
+START_REGISTER(SQ_INSTRUCTION_TFETCH_0)
+ GENERATE_FIELD(SRC_SEL_Z, SrcSel)
+ GENERATE_FIELD(SRC_SEL_Y, SrcSel)
+ GENERATE_FIELD(SRC_SEL_X, SrcSel)
+ GENERATE_FIELD(TX_COORD_DENORM, TexCoordDenorm)
+ GENERATE_FIELD(CONST_INDEX, int)
+ GENERATE_FIELD(FETCH_VALID_ONLY, int)
+ GENERATE_FIELD(DST_GPR_AM, Addressmode)
+ GENERATE_FIELD(DST_GPR, int)
+ GENERATE_FIELD(SRC_GPR_AM, Addressmode)
+ GENERATE_FIELD(SRC_GPR, int)
+ GENERATE_FIELD(OPCODE, TexInstOpcode)
+END_REGISTER(SQ_INSTRUCTION_TFETCH_0)
+
+START_REGISTER(SQ_INSTRUCTION_TFETCH_1)
+ GENERATE_FIELD(PRED_SELECT, PredSelect)
+ GENERATE_FIELD(USE_REG_LOD, int)
+ GENERATE_FIELD(USE_COMP_LOD, int)
+ GENERATE_FIELD(VOL_MIN_FILTER, VolMinFilter)
+ GENERATE_FIELD(VOL_MAG_FILTER, VolMagFilter)
+ GENERATE_FIELD(ARBITRARY_FILTER, ArbitraryFilter)
+ GENERATE_FIELD(ANISO_FILTER, AnisoFilter)
+ GENERATE_FIELD(MIP_FILTER, MipFilter)
+ GENERATE_FIELD(MIN_FILTER, MinFilter)
+ GENERATE_FIELD(MAG_FILTER, MagFilter)
+ GENERATE_FIELD(DST_SEL_W, DstSel)
+ GENERATE_FIELD(DST_SEL_Z, DstSel)
+ GENERATE_FIELD(DST_SEL_Y, DstSel)
+ GENERATE_FIELD(DST_SEL_X, DstSel)
+END_REGISTER(SQ_INSTRUCTION_TFETCH_1)
+
+START_REGISTER(SQ_INSTRUCTION_TFETCH_2)
+ GENERATE_FIELD(PRED_CONDITION, int)
+ GENERATE_FIELD(OFFSET_Z, int)
+ GENERATE_FIELD(OFFSET_Y, int)
+ GENERATE_FIELD(OFFSET_X, int)
+ GENERATE_FIELD(UNUSED, int)
+ GENERATE_FIELD(LOD_BIAS, int)
+ GENERATE_FIELD(SAMPLE_LOCATION, SampleLocation)
+ GENERATE_FIELD(USE_REG_GRADIENTS, int)
+END_REGISTER(SQ_INSTRUCTION_TFETCH_2)
+
+START_REGISTER(SQ_INSTRUCTION_VFETCH_0)
+ GENERATE_FIELD(SRC_SEL, int)
+ GENERATE_FIELD(CONST_INDEX_SEL, int)
+ GENERATE_FIELD(CONST_INDEX, int)
+ GENERATE_FIELD(MUST_BE_ONE, int)
+ GENERATE_FIELD(DST_GPR_AM, int)
+ GENERATE_FIELD(DST_GPR, int)
+ GENERATE_FIELD(SRC_GPR_AM, int)
+ GENERATE_FIELD(SRC_GPR, int)
+ GENERATE_FIELD(OPCODE, int)
+END_REGISTER(SQ_INSTRUCTION_VFETCH_0)
+
+START_REGISTER(SQ_INSTRUCTION_VFETCH_1)
+ GENERATE_FIELD(PRED_SELECT, int)
+ GENERATE_FIELD(EXP_ADJUST_ALL, int)
+ GENERATE_FIELD(DATA_FORMAT, int)
+ GENERATE_FIELD(SIGNED_RF_MODE_ALL, int)
+ GENERATE_FIELD(NUM_FORMAT_ALL, int)
+ GENERATE_FIELD(FORMAT_COMP_ALL, int)
+ GENERATE_FIELD(DST_SEL_W, int)
+ GENERATE_FIELD(DST_SEL_Z, int)
+ GENERATE_FIELD(DST_SEL_Y, int)
+ GENERATE_FIELD(DST_SEL_X, int)
+END_REGISTER(SQ_INSTRUCTION_VFETCH_1)
+
+START_REGISTER(SQ_INSTRUCTION_VFETCH_2)
+ GENERATE_FIELD(PRED_CONDITION, int)
+ GENERATE_FIELD(OFFSET, int)
+ GENERATE_FIELD(STRIDE, int)
+END_REGISTER(SQ_INSTRUCTION_VFETCH_2)
+
+START_REGISTER(SQ_CONSTANT_0)
+ GENERATE_FIELD(RED, float)
+END_REGISTER(SQ_CONSTANT_0)
+
+START_REGISTER(SQ_CONSTANT_1)
+ GENERATE_FIELD(GREEN, float)
+END_REGISTER(SQ_CONSTANT_1)
+
+START_REGISTER(SQ_CONSTANT_2)
+ GENERATE_FIELD(BLUE, float)
+END_REGISTER(SQ_CONSTANT_2)
+
+START_REGISTER(SQ_CONSTANT_3)
+ GENERATE_FIELD(ALPHA, float)
+END_REGISTER(SQ_CONSTANT_3)
+
+START_REGISTER(SQ_FETCH_0)
+ GENERATE_FIELD(VALUE, int)
+END_REGISTER(SQ_FETCH_0)
+
+START_REGISTER(SQ_FETCH_1)
+ GENERATE_FIELD(VALUE, int)
+END_REGISTER(SQ_FETCH_1)
+
+START_REGISTER(SQ_FETCH_2)
+ GENERATE_FIELD(VALUE, int)
+END_REGISTER(SQ_FETCH_2)
+
+START_REGISTER(SQ_FETCH_3)
+ GENERATE_FIELD(VALUE, int)
+END_REGISTER(SQ_FETCH_3)
+
+START_REGISTER(SQ_FETCH_4)
+ GENERATE_FIELD(VALUE, int)
+END_REGISTER(SQ_FETCH_4)
+
+START_REGISTER(SQ_FETCH_5)
+ GENERATE_FIELD(VALUE, int)
+END_REGISTER(SQ_FETCH_5)
+
+START_REGISTER(SQ_CONSTANT_VFETCH_0)
+ GENERATE_FIELD(BASE_ADDRESS, hex)
+ GENERATE_FIELD(STATE, int)
+ GENERATE_FIELD(TYPE, int)
+END_REGISTER(SQ_CONSTANT_VFETCH_0)
+
+START_REGISTER(SQ_CONSTANT_VFETCH_1)
+ GENERATE_FIELD(LIMIT_ADDRESS, hex)
+ GENERATE_FIELD(ENDIAN_SWAP, int)
+END_REGISTER(SQ_CONSTANT_VFETCH_1)
+
+START_REGISTER(SQ_CONSTANT_T2)
+ GENERATE_FIELD(VALUE, int)
+END_REGISTER(SQ_CONSTANT_T2)
+
+START_REGISTER(SQ_CONSTANT_T3)
+ GENERATE_FIELD(VALUE, int)
+END_REGISTER(SQ_CONSTANT_T3)
+
+START_REGISTER(SQ_CF_BOOLEANS)
+ GENERATE_FIELD(CF_BOOLEANS_3, int)
+ GENERATE_FIELD(CF_BOOLEANS_2, int)
+ GENERATE_FIELD(CF_BOOLEANS_1, int)
+ GENERATE_FIELD(CF_BOOLEANS_0, int)
+END_REGISTER(SQ_CF_BOOLEANS)
+
+START_REGISTER(SQ_CF_LOOP)
+ GENERATE_FIELD(CF_LOOP_STEP, int)
+ GENERATE_FIELD(CF_LOOP_START, int)
+ GENERATE_FIELD(CF_LOOP_COUNT, int)
+END_REGISTER(SQ_CF_LOOP)
+
+START_REGISTER(SQ_CONSTANT_RT_0)
+ GENERATE_FIELD(RED, float)
+END_REGISTER(SQ_CONSTANT_RT_0)
+
+START_REGISTER(SQ_CONSTANT_RT_1)
+ GENERATE_FIELD(GREEN, float)
+END_REGISTER(SQ_CONSTANT_RT_1)
+
+START_REGISTER(SQ_CONSTANT_RT_2)
+ GENERATE_FIELD(BLUE, float)
+END_REGISTER(SQ_CONSTANT_RT_2)
+
+START_REGISTER(SQ_CONSTANT_RT_3)
+ GENERATE_FIELD(ALPHA, float)
+END_REGISTER(SQ_CONSTANT_RT_3)
+
+START_REGISTER(SQ_FETCH_RT_0)
+ GENERATE_FIELD(VALUE, int)
+END_REGISTER(SQ_FETCH_RT_0)
+
+START_REGISTER(SQ_FETCH_RT_1)
+ GENERATE_FIELD(VALUE, int)
+END_REGISTER(SQ_FETCH_RT_1)
+
+START_REGISTER(SQ_FETCH_RT_2)
+ GENERATE_FIELD(VALUE, int)
+END_REGISTER(SQ_FETCH_RT_2)
+
+START_REGISTER(SQ_FETCH_RT_3)
+ GENERATE_FIELD(VALUE, int)
+END_REGISTER(SQ_FETCH_RT_3)
+
+START_REGISTER(SQ_FETCH_RT_4)
+ GENERATE_FIELD(VALUE, int)
+END_REGISTER(SQ_FETCH_RT_4)
+
+START_REGISTER(SQ_FETCH_RT_5)
+ GENERATE_FIELD(VALUE, int)
+END_REGISTER(SQ_FETCH_RT_5)
+
+START_REGISTER(SQ_CF_RT_BOOLEANS)
+ GENERATE_FIELD(CF_BOOLEANS_3, int)
+ GENERATE_FIELD(CF_BOOLEANS_2, int)
+ GENERATE_FIELD(CF_BOOLEANS_1, int)
+ GENERATE_FIELD(CF_BOOLEANS_0, int)
+END_REGISTER(SQ_CF_RT_BOOLEANS)
+
+START_REGISTER(SQ_CF_RT_LOOP)
+ GENERATE_FIELD(CF_LOOP_STEP, int)
+ GENERATE_FIELD(CF_LOOP_START, int)
+ GENERATE_FIELD(CF_LOOP_COUNT, int)
+END_REGISTER(SQ_CF_RT_LOOP)
+
+START_REGISTER(SQ_VS_PROGRAM)
+ GENERATE_FIELD(SIZE, int)
+ GENERATE_FIELD(BASE, int)
+END_REGISTER(SQ_VS_PROGRAM)
+
+START_REGISTER(SQ_PS_PROGRAM)
+ GENERATE_FIELD(SIZE, int)
+ GENERATE_FIELD(BASE, int)
+END_REGISTER(SQ_PS_PROGRAM)
+
+START_REGISTER(SQ_CF_PROGRAM_SIZE)
+ GENERATE_FIELD(PS_CF_SIZE, int)
+ GENERATE_FIELD(VS_CF_SIZE, int)
+END_REGISTER(SQ_CF_PROGRAM_SIZE)
+
+START_REGISTER(SQ_INTERPOLATOR_CNTL)
+ GENERATE_FIELD(SAMPLING_PATTERN, SamplingPattern)
+ GENERATE_FIELD(PARAM_SHADE, ParamShade)
+END_REGISTER(SQ_INTERPOLATOR_CNTL)
+
+START_REGISTER(SQ_PROGRAM_CNTL)
+ GENERATE_FIELD(GEN_INDEX_VTX, int)
+ GENERATE_FIELD(PS_EXPORT_MODE, int)
+ GENERATE_FIELD(VS_EXPORT_MODE, VertexMode)
+ GENERATE_FIELD(VS_EXPORT_COUNT, intMinusOne)
+ GENERATE_FIELD(GEN_INDEX_PIX, int)
+ GENERATE_FIELD(PARAM_GEN, int)
+ GENERATE_FIELD(PS_RESOURCE, int)
+ GENERATE_FIELD(VS_RESOURCE, int)
+ GENERATE_FIELD(PS_NUM_REG, intMinusOne)
+ GENERATE_FIELD(VS_NUM_REG, intMinusOne)
+END_REGISTER(SQ_PROGRAM_CNTL)
+
+START_REGISTER(SQ_WRAPPING_0)
+ GENERATE_FIELD(PARAM_WRAP_7, hex)
+ GENERATE_FIELD(PARAM_WRAP_6, hex)
+ GENERATE_FIELD(PARAM_WRAP_5, hex)
+ GENERATE_FIELD(PARAM_WRAP_4, hex)
+ GENERATE_FIELD(PARAM_WRAP_3, hex)
+ GENERATE_FIELD(PARAM_WRAP_2, hex)
+ GENERATE_FIELD(PARAM_WRAP_1, hex)
+ GENERATE_FIELD(PARAM_WRAP_0, hex)
+END_REGISTER(SQ_WRAPPING_0)
+
+START_REGISTER(SQ_WRAPPING_1)
+ GENERATE_FIELD(PARAM_WRAP_15, hex)
+ GENERATE_FIELD(PARAM_WRAP_14, hex)
+ GENERATE_FIELD(PARAM_WRAP_13, hex)
+ GENERATE_FIELD(PARAM_WRAP_12, hex)
+ GENERATE_FIELD(PARAM_WRAP_11, hex)
+ GENERATE_FIELD(PARAM_WRAP_10, hex)
+ GENERATE_FIELD(PARAM_WRAP_9, hex)
+ GENERATE_FIELD(PARAM_WRAP_8, hex)
+END_REGISTER(SQ_WRAPPING_1)
+
+START_REGISTER(SQ_VS_CONST)
+ GENERATE_FIELD(SIZE, int)
+ GENERATE_FIELD(BASE, int)
+END_REGISTER(SQ_VS_CONST)
+
+START_REGISTER(SQ_PS_CONST)
+ GENERATE_FIELD(SIZE, int)
+ GENERATE_FIELD(BASE, int)
+END_REGISTER(SQ_PS_CONST)
+
+START_REGISTER(SQ_CONTEXT_MISC)
+ GENERATE_FIELD(TX_CACHE_SEL, int)
+ GENERATE_FIELD(YEILD_OPTIMIZE, int)
+ GENERATE_FIELD(PERFCOUNTER_REF, int)
+ GENERATE_FIELD(PARAM_GEN_POS, int)
+ GENERATE_FIELD(SC_SAMPLE_CNTL, Sample_Cntl)
+ GENERATE_FIELD(SC_OUTPUT_SCREEN_XY, int)
+ GENERATE_FIELD(INST_PRED_OPTIMIZE, int)
+END_REGISTER(SQ_CONTEXT_MISC)
+
+START_REGISTER(SQ_CF_RD_BASE)
+ GENERATE_FIELD(RD_BASE, hex)
+END_REGISTER(SQ_CF_RD_BASE)
+
+START_REGISTER(SQ_DEBUG_MISC_0)
+ GENERATE_FIELD(DB_PROB_COUNT, int)
+ GENERATE_FIELD(DB_PROB_ADDR, int)
+ GENERATE_FIELD(DB_PROB_BREAK, int)
+ GENERATE_FIELD(DB_PROB_ON, int)
+END_REGISTER(SQ_DEBUG_MISC_0)
+
+START_REGISTER(SQ_DEBUG_MISC_1)
+ GENERATE_FIELD(DB_BREAK_ADDR, int)
+ GENERATE_FIELD(DB_INST_COUNT, int)
+ GENERATE_FIELD(DB_ON_VTX, int)
+ GENERATE_FIELD(DB_ON_PIX, int)
+END_REGISTER(SQ_DEBUG_MISC_1)
+
+START_REGISTER(MH_ARBITER_CONFIG)
+ GENERATE_FIELD(PA_CLNT_ENABLE, bool)
+ GENERATE_FIELD(RB_CLNT_ENABLE, bool)
+ GENERATE_FIELD(TC_CLNT_ENABLE, bool)
+ GENERATE_FIELD(VGT_CLNT_ENABLE, bool)
+ GENERATE_FIELD(CP_CLNT_ENABLE, bool)
+ GENERATE_FIELD(IN_FLIGHT_LIMIT, int)
+ GENERATE_FIELD(IN_FLIGHT_LIMIT_ENABLE, bool)
+ GENERATE_FIELD(TC_ARB_HOLD_ENABLE, bool)
+ GENERATE_FIELD(TC_REORDER_ENABLE, bool)
+ GENERATE_FIELD(PAGE_SIZE, int)
+ GENERATE_FIELD(L2_ARB_CONTROL, int)
+ GENERATE_FIELD(L1_ARB_HOLD_ENABLE, int)
+ GENERATE_FIELD(L1_ARB_ENABLE, bool)
+ GENERATE_FIELD(SAME_PAGE_GRANULARITY, int)
+ GENERATE_FIELD(SAME_PAGE_LIMIT, int)
+END_REGISTER(MH_ARBITER_CONFIG)
+
+START_REGISTER(MH_CLNT_AXI_ID_REUSE)
+ GENERATE_FIELD(PAw_ID, int)
+ GENERATE_FIELD(RESERVED3, int)
+ GENERATE_FIELD(MMUr_ID, int)
+ GENERATE_FIELD(RESERVED2, int)
+ GENERATE_FIELD(RBw_ID, int)
+ GENERATE_FIELD(RESERVED1, int)
+ GENERATE_FIELD(CPw_ID, int)
+END_REGISTER(MH_CLNT_AXI_ID_REUSE)
+
+START_REGISTER(MH_INTERRUPT_MASK)
+ GENERATE_FIELD(MMU_PAGE_FAULT, bool)
+ GENERATE_FIELD(AXI_WRITE_ERROR, bool)
+ GENERATE_FIELD(AXI_READ_ERROR, bool)
+END_REGISTER(MH_INTERRUPT_MASK)
+
+START_REGISTER(MH_INTERRUPT_STATUS)
+ GENERATE_FIELD(MMU_PAGE_FAULT, int)
+ GENERATE_FIELD(AXI_WRITE_ERROR, int)
+ GENERATE_FIELD(AXI_READ_ERROR, int)
+END_REGISTER(MH_INTERRUPT_STATUS)
+
+START_REGISTER(MH_INTERRUPT_CLEAR)
+ GENERATE_FIELD(MMU_PAGE_FAULT, int)
+ GENERATE_FIELD(AXI_WRITE_ERROR, int)
+ GENERATE_FIELD(AXI_READ_ERROR, int)
+END_REGISTER(MH_INTERRUPT_CLEAR)
+
+START_REGISTER(MH_AXI_ERROR)
+ GENERATE_FIELD(AXI_WRITE_ERROR, int)
+ GENERATE_FIELD(AXI_WRITE_ID, int)
+ GENERATE_FIELD(AXI_READ_ERROR, int)
+ GENERATE_FIELD(AXI_READ_ID, int)
+END_REGISTER(MH_AXI_ERROR)
+
+START_REGISTER(MH_PERFCOUNTER0_SELECT)
+ GENERATE_FIELD(PERF_SEL, MhPerfEncode)
+END_REGISTER(MH_PERFCOUNTER0_SELECT)
+
+START_REGISTER(MH_PERFCOUNTER1_SELECT)
+ GENERATE_FIELD(PERF_SEL, MhPerfEncode)
+END_REGISTER(MH_PERFCOUNTER1_SELECT)
+
+START_REGISTER(MH_PERFCOUNTER0_CONFIG)
+ GENERATE_FIELD(N_VALUE, int)
+END_REGISTER(MH_PERFCOUNTER0_CONFIG)
+
+START_REGISTER(MH_PERFCOUNTER1_CONFIG)
+ GENERATE_FIELD(N_VALUE, int)
+END_REGISTER(MH_PERFCOUNTER1_CONFIG)
+
+START_REGISTER(MH_PERFCOUNTER0_LOW)
+ GENERATE_FIELD(PERF_COUNTER_LOW, int)
+END_REGISTER(MH_PERFCOUNTER0_LOW)
+
+START_REGISTER(MH_PERFCOUNTER1_LOW)
+ GENERATE_FIELD(PERF_COUNTER_LOW, int)
+END_REGISTER(MH_PERFCOUNTER1_LOW)
+
+START_REGISTER(MH_PERFCOUNTER0_HI)
+ GENERATE_FIELD(PERF_COUNTER_HI, int)
+END_REGISTER(MH_PERFCOUNTER0_HI)
+
+START_REGISTER(MH_PERFCOUNTER1_HI)
+ GENERATE_FIELD(PERF_COUNTER_HI, int)
+END_REGISTER(MH_PERFCOUNTER1_HI)
+
+START_REGISTER(MH_DEBUG_CTRL)
+ GENERATE_FIELD(INDEX, int)
+END_REGISTER(MH_DEBUG_CTRL)
+
+START_REGISTER(MH_DEBUG_DATA)
+ GENERATE_FIELD(DATA, int)
+END_REGISTER(MH_DEBUG_DATA)
+
+START_REGISTER(MH_AXI_HALT_CONTROL)
+ GENERATE_FIELD(AXI_HALT, bool)
+END_REGISTER(MH_AXI_HALT_CONTROL)
+
+START_REGISTER(MH_MMU_CONFIG)
+ GENERATE_FIELD(PA_W_CLNT_BEHAVIOR, MmuClntBeh)
+ GENERATE_FIELD(TC_R_CLNT_BEHAVIOR, MmuClntBeh)
+ GENERATE_FIELD(VGT_R1_CLNT_BEHAVIOR, MmuClntBeh)
+ GENERATE_FIELD(VGT_R0_CLNT_BEHAVIOR, MmuClntBeh)
+ GENERATE_FIELD(CP_R4_CLNT_BEHAVIOR, MmuClntBeh)
+ GENERATE_FIELD(CP_R3_CLNT_BEHAVIOR, MmuClntBeh)
+ GENERATE_FIELD(CP_R2_CLNT_BEHAVIOR, MmuClntBeh)
+ GENERATE_FIELD(CP_R1_CLNT_BEHAVIOR, MmuClntBeh)
+ GENERATE_FIELD(CP_R0_CLNT_BEHAVIOR, MmuClntBeh)
+ GENERATE_FIELD(CP_W_CLNT_BEHAVIOR, MmuClntBeh)
+ GENERATE_FIELD(RB_W_CLNT_BEHAVIOR, MmuClntBeh)
+ GENERATE_FIELD(RESERVED1, int)
+ GENERATE_FIELD(SPLIT_MODE_ENABLE, bool)
+ GENERATE_FIELD(MMU_ENABLE, bool)
+END_REGISTER(MH_MMU_CONFIG)
+
+START_REGISTER(MH_MMU_VA_RANGE)
+ GENERATE_FIELD(VA_BASE, int)
+ GENERATE_FIELD(NUM_64KB_REGIONS, int)
+END_REGISTER(MH_MMU_VA_RANGE)
+
+START_REGISTER(MH_MMU_PT_BASE)
+ GENERATE_FIELD(PT_BASE, int)
+END_REGISTER(MH_MMU_PT_BASE)
+
+START_REGISTER(MH_MMU_PAGE_FAULT)
+ GENERATE_FIELD(REQ_VA, int)
+ GENERATE_FIELD(WRITE_PROTECTION_ERROR, int)
+ GENERATE_FIELD(READ_PROTECTION_ERROR, int)
+ GENERATE_FIELD(ADDRESS_OUT_OF_RANGE, int)
+ GENERATE_FIELD(MPU_ADDRESS_OUT_OF_RANGE, int)
+ GENERATE_FIELD(RESERVED1, int)
+ GENERATE_FIELD(AXI_ID, int)
+ GENERATE_FIELD(CLNT_BEHAVIOR, MmuClntBeh)
+ GENERATE_FIELD(OP_TYPE, int)
+ GENERATE_FIELD(PAGE_FAULT, int)
+END_REGISTER(MH_MMU_PAGE_FAULT)
+
+START_REGISTER(MH_MMU_TRAN_ERROR)
+ GENERATE_FIELD(TRAN_ERROR, int)
+END_REGISTER(MH_MMU_TRAN_ERROR)
+
+START_REGISTER(MH_MMU_INVALIDATE)
+ GENERATE_FIELD(INVALIDATE_TC, int)
+ GENERATE_FIELD(INVALIDATE_ALL, int)
+END_REGISTER(MH_MMU_INVALIDATE)
+
+START_REGISTER(MH_MMU_MPU_BASE)
+ GENERATE_FIELD(MPU_BASE, int)
+END_REGISTER(MH_MMU_MPU_BASE)
+
+START_REGISTER(MH_MMU_MPU_END)
+ GENERATE_FIELD(MPU_END, int)
+END_REGISTER(MH_MMU_MPU_END)
+
+START_REGISTER(WAIT_UNTIL)
+ GENERATE_FIELD(CMDFIFO_ENTRIES, int)
+ GENERATE_FIELD(WAIT_3D_IDLECLEAN, int)
+ GENERATE_FIELD(WAIT_2D_IDLECLEAN, int)
+ GENERATE_FIELD(WAIT_3D_IDLE, int)
+ GENERATE_FIELD(WAIT_2D_IDLE, int)
+ GENERATE_FIELD(WAIT_CMDFIFO, int)
+ GENERATE_FIELD(WAIT_DSPLY_ID2, int)
+ GENERATE_FIELD(WAIT_DSPLY_ID1, int)
+ GENERATE_FIELD(WAIT_DSPLY_ID0, int)
+ GENERATE_FIELD(WAIT_VSYNC, int)
+ GENERATE_FIELD(WAIT_FE_VSYNC, int)
+ GENERATE_FIELD(WAIT_RE_VSYNC, int)
+END_REGISTER(WAIT_UNTIL)
+
+START_REGISTER(RBBM_ISYNC_CNTL)
+ GENERATE_FIELD(ISYNC_CPSCRATCH_IDLEGUI, int)
+ GENERATE_FIELD(ISYNC_WAIT_IDLEGUI, int)
+END_REGISTER(RBBM_ISYNC_CNTL)
+
+START_REGISTER(RBBM_STATUS)
+ GENERATE_FIELD(GUI_ACTIVE, int)
+ GENERATE_FIELD(RB_CNTX_BUSY, int)
+ GENERATE_FIELD(SQ_CNTX0_BUSY, int)
+ GENERATE_FIELD(SQ_CNTX17_BUSY, int)
+ GENERATE_FIELD(VGT_BUSY, int)
+ GENERATE_FIELD(PA_BUSY, int)
+ GENERATE_FIELD(SC_CNTX_BUSY, int)
+ GENERATE_FIELD(TPC_BUSY, int)
+ GENERATE_FIELD(SX_BUSY, int)
+ GENERATE_FIELD(MH_COHERENCY_BUSY, int)
+ GENERATE_FIELD(MH_BUSY, int)
+ GENERATE_FIELD(CP_NRT_BUSY, int)
+ GENERATE_FIELD(RBBM_WU_BUSY, int)
+ GENERATE_FIELD(VGT_BUSY_NO_DMA, int)
+ GENERATE_FIELD(PFRQ_PENDING, int)
+ GENERATE_FIELD(CFRQ_PENDING, int)
+ GENERATE_FIELD(CPRQ_PENDING, int)
+ GENERATE_FIELD(HIRQ_PENDING, int)
+ GENERATE_FIELD(TC_BUSY, int)
+ GENERATE_FIELD(CMDFIFO_AVAIL, int)
+END_REGISTER(RBBM_STATUS)
+
+START_REGISTER(RBBM_DSPLY)
+ GENERATE_FIELD(DMI_CH4_NUM_BUFS, int)
+ GENERATE_FIELD(DMI_CH4_SW_CNTL, int)
+ GENERATE_FIELD(DMI_CH4_USE_BUFID2, int)
+ GENERATE_FIELD(DMI_CH4_USE_BUFID1, int)
+ GENERATE_FIELD(DMI_CH4_USE_BUFID0, int)
+ GENERATE_FIELD(DMI_CH3_NUM_BUFS, int)
+ GENERATE_FIELD(DMI_CH3_SW_CNTL, int)
+ GENERATE_FIELD(DMI_CH3_USE_BUFID2, int)
+ GENERATE_FIELD(DMI_CH3_USE_BUFID1, int)
+ GENERATE_FIELD(DMI_CH3_USE_BUFID0, int)
+ GENERATE_FIELD(DMI_CHANNEL_SELECT, int)
+ GENERATE_FIELD(DMI_CH2_NUM_BUFS, int)
+ GENERATE_FIELD(DMI_CH2_SW_CNTL, int)
+ GENERATE_FIELD(DMI_CH2_USE_BUFID2, int)
+ GENERATE_FIELD(DMI_CH2_USE_BUFID1, int)
+ GENERATE_FIELD(DMI_CH2_USE_BUFID0, int)
+ GENERATE_FIELD(DMI_CH1_NUM_BUFS, int)
+ GENERATE_FIELD(DMI_CH1_SW_CNTL, int)
+ GENERATE_FIELD(DMI_CH1_USE_BUFID2, int)
+ GENERATE_FIELD(DMI_CH1_USE_BUFID1, int)
+ GENERATE_FIELD(DMI_CH1_USE_BUFID0, int)
+ GENERATE_FIELD(SEL_DMI_VSYNC_VALID, int)
+ GENERATE_FIELD(SEL_DMI_ACTIVE_BUFID2, int)
+ GENERATE_FIELD(SEL_DMI_ACTIVE_BUFID1, int)
+ GENERATE_FIELD(SEL_DMI_ACTIVE_BUFID0, int)
+END_REGISTER(RBBM_DSPLY)
+
+START_REGISTER(RBBM_RENDER_LATEST)
+ GENERATE_FIELD(DMI_CH4_BUFFER_ID, int)
+ GENERATE_FIELD(DMI_CH3_BUFFER_ID, int)
+ GENERATE_FIELD(DMI_CH2_BUFFER_ID, int)
+ GENERATE_FIELD(DMI_CH1_BUFFER_ID, int)
+END_REGISTER(RBBM_RENDER_LATEST)
+
+START_REGISTER(RBBM_RTL_RELEASE)
+ GENERATE_FIELD(CHANGELIST, int)
+END_REGISTER(RBBM_RTL_RELEASE)
+
+START_REGISTER(RBBM_PATCH_RELEASE)
+ GENERATE_FIELD(CUSTOMER_ID, int)
+ GENERATE_FIELD(PATCH_SELECTION, int)
+ GENERATE_FIELD(PATCH_REVISION, int)
+END_REGISTER(RBBM_PATCH_RELEASE)
+
+START_REGISTER(RBBM_AUXILIARY_CONFIG)
+ GENERATE_FIELD(RESERVED, int)
+END_REGISTER(RBBM_AUXILIARY_CONFIG)
+
+START_REGISTER(RBBM_PERIPHID0)
+ GENERATE_FIELD(PARTNUMBER0, int)
+END_REGISTER(RBBM_PERIPHID0)
+
+START_REGISTER(RBBM_PERIPHID1)
+ GENERATE_FIELD(DESIGNER0, int)
+ GENERATE_FIELD(PARTNUMBER1, int)
+END_REGISTER(RBBM_PERIPHID1)
+
+START_REGISTER(RBBM_PERIPHID2)
+ GENERATE_FIELD(REVISION, int)
+ GENERATE_FIELD(DESIGNER1, int)
+END_REGISTER(RBBM_PERIPHID2)
+
+START_REGISTER(RBBM_PERIPHID3)
+ GENERATE_FIELD(CONTINUATION, int)
+ GENERATE_FIELD(MH_INTERFACE, int)
+ GENERATE_FIELD(GARB_SLAVE_INTERFACE, int)
+ GENERATE_FIELD(RBBM_HOST_INTERFACE, int)
+END_REGISTER(RBBM_PERIPHID3)
+
+START_REGISTER(RBBM_CNTL)
+ GENERATE_FIELD(REGCLK_DEASSERT_TIME, int)
+ GENERATE_FIELD(READ_TIMEOUT, int)
+END_REGISTER(RBBM_CNTL)
+
+START_REGISTER(RBBM_SKEW_CNTL)
+ GENERATE_FIELD(SKEW_COUNT, int)
+ GENERATE_FIELD(SKEW_TOP_THRESHOLD, int)
+END_REGISTER(RBBM_SKEW_CNTL)
+
+START_REGISTER(RBBM_SOFT_RESET)
+ GENERATE_FIELD(SOFT_RESET_VGT, int)
+ GENERATE_FIELD(SOFT_RESET_SC, int)
+ GENERATE_FIELD(SOFT_RESET_CIB, int)
+ GENERATE_FIELD(SOFT_RESET_SX, int)
+ GENERATE_FIELD(SOFT_RESET_SQ, int)
+ GENERATE_FIELD(SOFT_RESET_BC, int)
+ GENERATE_FIELD(SOFT_RESET_MH, int)
+ GENERATE_FIELD(SOFT_RESET_PA, int)
+ GENERATE_FIELD(SOFT_RESET_CP, int)
+END_REGISTER(RBBM_SOFT_RESET)
+
+START_REGISTER(RBBM_PM_OVERRIDE1)
+ GENERATE_FIELD(MH_TCROQ_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(MH_MMU_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(MH_REG_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(MH_MH_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(RB_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(RB_REG_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(SPI_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(CP_G_REG_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(CP_REG_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(CP_G_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(TP_REG_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(TP_TP_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(TCF_TCB_READ_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(TCF_TCB_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(TCF_TCA_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(TPC_REG_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(TPC_TPC_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(TCM_REG_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(TCM_TCD_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(TCM_TCM_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(TCM_TCO_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(SX_REG_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(SX_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(SQ_SQ_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(SQ_CONST_MEM_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(SQ_REG_FIFOS_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(SQ_REG_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(SP_V0_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(SP_TOP_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(SC_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(SC_REG_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(RBBM_AHBCLK_PM_OVERRIDE, int)
+END_REGISTER(RBBM_PM_OVERRIDE1)
+
+START_REGISTER(RBBM_PM_OVERRIDE2)
+ GENERATE_FIELD(GC_GA_GMEM3_PM_OVERRIDE, int)
+ GENERATE_FIELD(GC_GA_GMEM2_PM_OVERRIDE, int)
+ GENERATE_FIELD(GC_GA_GMEM1_PM_OVERRIDE, int)
+ GENERATE_FIELD(GC_GA_GMEM0_PM_OVERRIDE, int)
+ GENERATE_FIELD(PERM_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(DEBUG_PERF_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(VGT_VGT_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(VGT_FIFOS_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(VGT_REG_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(PA_AG_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(PA_PA_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(PA_REG_SCLK_PM_OVERRIDE, int)
+END_REGISTER(RBBM_PM_OVERRIDE2)
+
+START_REGISTER(GC_SYS_IDLE)
+ GENERATE_FIELD(GC_SYS_IDLE_OVERRIDE, int)
+ GENERATE_FIELD(GC_SYS_WAIT_DMI_OVERRIDE, int)
+ GENERATE_FIELD(GC_SYS_URGENT_RAMP_OVERRIDE, int)
+ GENERATE_FIELD(GC_SYS_WAIT_DMI, int)
+ GENERATE_FIELD(GC_SYS_URGENT_RAMP, int)
+ GENERATE_FIELD(GC_SYS_WAIT_DMI_MASK, int)
+ GENERATE_FIELD(GC_SYS_IDLE_DELAY, int)
+END_REGISTER(GC_SYS_IDLE)
+
+START_REGISTER(NQWAIT_UNTIL)
+ GENERATE_FIELD(WAIT_GUI_IDLE, int)
+END_REGISTER(NQWAIT_UNTIL)
+
+START_REGISTER(RBBM_DEBUG_OUT)
+ GENERATE_FIELD(DEBUG_BUS_OUT, int)
+END_REGISTER(RBBM_DEBUG_OUT)
+
+START_REGISTER(RBBM_DEBUG_CNTL)
+ GENERATE_FIELD(GPIO_BYTE_LANE_ENB, int)
+ GENERATE_FIELD(GPIO_SUB_BLOCK_SEL, int)
+ GENERATE_FIELD(GPIO_SUB_BLOCK_ADDR, int)
+ GENERATE_FIELD(SW_ENABLE, int)
+ GENERATE_FIELD(SUB_BLOCK_SEL, int)
+ GENERATE_FIELD(SUB_BLOCK_ADDR, int)
+END_REGISTER(RBBM_DEBUG_CNTL)
+
+START_REGISTER(RBBM_DEBUG)
+ GENERATE_FIELD(IGNORE_SX_RBBM_BUSY, int)
+ GENERATE_FIELD(CLIENTS_FOR_NRT_RTR, int)
+ GENERATE_FIELD(CLIENTS_FOR_NRT_RTR_FOR_HI, int)
+ GENERATE_FIELD(SQ_RBBM_NRTRTR, int)
+ GENERATE_FIELD(VGT_RBBM_NRTRTR, int)
+ GENERATE_FIELD(CP_RBBM_NRTRTR, int)
+ GENERATE_FIELD(IGNORE_SQ_RBBM_NRTRTR_FOR_HI, int)
+ GENERATE_FIELD(IGNORE_VGT_RBBM_NRTRTR_FOR_HI, int)
+ GENERATE_FIELD(IGNORE_CP_RBBM_NRTRTR_FOR_HI, int)
+ GENERATE_FIELD(IGNORE_RTR_FOR_HI, int)
+ GENERATE_FIELD(HYSTERESIS_NRT_GUI_ACTIVE, int)
+ GENERATE_FIELD(IGNORE_CP_SCHED_NQ_HI, int)
+ GENERATE_FIELD(IGNORE_CP_SCHED_ISYNC, int)
+ GENERATE_FIELD(IGNORE_CP_SCHED_WU, int)
+ GENERATE_FIELD(IGNORE_RTR, int)
+END_REGISTER(RBBM_DEBUG)
+
+START_REGISTER(RBBM_READ_ERROR)
+ GENERATE_FIELD(READ_ERROR, int)
+ GENERATE_FIELD(READ_REQUESTER, int)
+ GENERATE_FIELD(READ_ADDRESS, int)
+END_REGISTER(RBBM_READ_ERROR)
+
+START_REGISTER(RBBM_WAIT_IDLE_CLOCKS)
+ GENERATE_FIELD(WAIT_IDLE_CLOCKS_NRT, int)
+END_REGISTER(RBBM_WAIT_IDLE_CLOCKS)
+
+START_REGISTER(RBBM_INT_CNTL)
+ GENERATE_FIELD(GUI_IDLE_INT_MASK, int)
+ GENERATE_FIELD(DISPLAY_UPDATE_INT_MASK, int)
+ GENERATE_FIELD(RDERR_INT_MASK, int)
+END_REGISTER(RBBM_INT_CNTL)
+
+START_REGISTER(RBBM_INT_STATUS)
+ GENERATE_FIELD(GUI_IDLE_INT_STAT, int)
+ GENERATE_FIELD(DISPLAY_UPDATE_INT_STAT, int)
+ GENERATE_FIELD(RDERR_INT_STAT, int)
+END_REGISTER(RBBM_INT_STATUS)
+
+START_REGISTER(RBBM_INT_ACK)
+ GENERATE_FIELD(GUI_IDLE_INT_ACK, int)
+ GENERATE_FIELD(DISPLAY_UPDATE_INT_ACK, int)
+ GENERATE_FIELD(RDERR_INT_ACK, int)
+END_REGISTER(RBBM_INT_ACK)
+
+START_REGISTER(MASTER_INT_SIGNAL)
+ GENERATE_FIELD(RBBM_INT_STAT, int)
+ GENERATE_FIELD(CP_INT_STAT, int)
+ GENERATE_FIELD(SQ_INT_STAT, int)
+ GENERATE_FIELD(MH_INT_STAT, int)
+END_REGISTER(MASTER_INT_SIGNAL)
+
+START_REGISTER(RBBM_PERFCOUNTER1_SELECT)
+ GENERATE_FIELD(PERF_COUNT1_SEL, RBBM_PERFCOUNT1_SEL)
+END_REGISTER(RBBM_PERFCOUNTER1_SELECT)
+
+START_REGISTER(RBBM_PERFCOUNTER1_LO)
+ GENERATE_FIELD(PERF_COUNT1_LO, int)
+END_REGISTER(RBBM_PERFCOUNTER1_LO)
+
+START_REGISTER(RBBM_PERFCOUNTER1_HI)
+ GENERATE_FIELD(PERF_COUNT1_HI, int)
+END_REGISTER(RBBM_PERFCOUNTER1_HI)
+
+START_REGISTER(CP_RB_BASE)
+ GENERATE_FIELD(RB_BASE, int)
+END_REGISTER(CP_RB_BASE)
+
+START_REGISTER(CP_RB_CNTL)
+ GENERATE_FIELD(RB_RPTR_WR_ENA, int)
+ GENERATE_FIELD(RB_NO_UPDATE, int)
+ GENERATE_FIELD(RB_POLL_EN, int)
+ GENERATE_FIELD(BUF_SWAP, int)
+ GENERATE_FIELD(RB_BLKSZ, int)
+ GENERATE_FIELD(RB_BUFSZ, int)
+END_REGISTER(CP_RB_CNTL)
+
+START_REGISTER(CP_RB_RPTR_ADDR)
+ GENERATE_FIELD(RB_RPTR_ADDR, int)
+ GENERATE_FIELD(RB_RPTR_SWAP, int)
+END_REGISTER(CP_RB_RPTR_ADDR)
+
+START_REGISTER(CP_RB_RPTR)
+ GENERATE_FIELD(RB_RPTR, int)
+END_REGISTER(CP_RB_RPTR)
+
+START_REGISTER(CP_RB_RPTR_WR)
+ GENERATE_FIELD(RB_RPTR_WR, int)
+END_REGISTER(CP_RB_RPTR_WR)
+
+START_REGISTER(CP_RB_WPTR)
+ GENERATE_FIELD(RB_WPTR, int)
+END_REGISTER(CP_RB_WPTR)
+
+START_REGISTER(CP_RB_WPTR_DELAY)
+ GENERATE_FIELD(PRE_WRITE_LIMIT, int)
+ GENERATE_FIELD(PRE_WRITE_TIMER, int)
+END_REGISTER(CP_RB_WPTR_DELAY)
+
+START_REGISTER(CP_RB_WPTR_BASE)
+ GENERATE_FIELD(RB_WPTR_BASE, int)
+ GENERATE_FIELD(RB_WPTR_SWAP, int)
+END_REGISTER(CP_RB_WPTR_BASE)
+
+START_REGISTER(CP_IB1_BASE)
+ GENERATE_FIELD(IB1_BASE, int)
+END_REGISTER(CP_IB1_BASE)
+
+START_REGISTER(CP_IB1_BUFSZ)
+ GENERATE_FIELD(IB1_BUFSZ, int)
+END_REGISTER(CP_IB1_BUFSZ)
+
+START_REGISTER(CP_IB2_BASE)
+ GENERATE_FIELD(IB2_BASE, int)
+END_REGISTER(CP_IB2_BASE)
+
+START_REGISTER(CP_IB2_BUFSZ)
+ GENERATE_FIELD(IB2_BUFSZ, int)
+END_REGISTER(CP_IB2_BUFSZ)
+
+START_REGISTER(CP_ST_BASE)
+ GENERATE_FIELD(ST_BASE, int)
+END_REGISTER(CP_ST_BASE)
+
+START_REGISTER(CP_ST_BUFSZ)
+ GENERATE_FIELD(ST_BUFSZ, int)
+END_REGISTER(CP_ST_BUFSZ)
+
+START_REGISTER(CP_QUEUE_THRESHOLDS)
+ GENERATE_FIELD(CSQ_ST_START, int)
+ GENERATE_FIELD(CSQ_IB2_START, int)
+ GENERATE_FIELD(CSQ_IB1_START, int)
+END_REGISTER(CP_QUEUE_THRESHOLDS)
+
+START_REGISTER(CP_MEQ_THRESHOLDS)
+ GENERATE_FIELD(ROQ_END, int)
+ GENERATE_FIELD(MEQ_END, int)
+END_REGISTER(CP_MEQ_THRESHOLDS)
+
+START_REGISTER(CP_CSQ_AVAIL)
+ GENERATE_FIELD(CSQ_CNT_IB2, int)
+ GENERATE_FIELD(CSQ_CNT_IB1, int)
+ GENERATE_FIELD(CSQ_CNT_RING, int)
+END_REGISTER(CP_CSQ_AVAIL)
+
+START_REGISTER(CP_STQ_AVAIL)
+ GENERATE_FIELD(STQ_CNT_ST, int)
+END_REGISTER(CP_STQ_AVAIL)
+
+START_REGISTER(CP_MEQ_AVAIL)
+ GENERATE_FIELD(MEQ_CNT, int)
+END_REGISTER(CP_MEQ_AVAIL)
+
+START_REGISTER(CP_CSQ_RB_STAT)
+ GENERATE_FIELD(CSQ_WPTR_PRIMARY, int)
+ GENERATE_FIELD(CSQ_RPTR_PRIMARY, int)
+END_REGISTER(CP_CSQ_RB_STAT)
+
+START_REGISTER(CP_CSQ_IB1_STAT)
+ GENERATE_FIELD(CSQ_WPTR_INDIRECT1, int)
+ GENERATE_FIELD(CSQ_RPTR_INDIRECT1, int)
+END_REGISTER(CP_CSQ_IB1_STAT)
+
+START_REGISTER(CP_CSQ_IB2_STAT)
+ GENERATE_FIELD(CSQ_WPTR_INDIRECT2, int)
+ GENERATE_FIELD(CSQ_RPTR_INDIRECT2, int)
+END_REGISTER(CP_CSQ_IB2_STAT)
+
+START_REGISTER(CP_NON_PREFETCH_CNTRS)
+ GENERATE_FIELD(IB2_COUNTER, int)
+ GENERATE_FIELD(IB1_COUNTER, int)
+END_REGISTER(CP_NON_PREFETCH_CNTRS)
+
+START_REGISTER(CP_STQ_ST_STAT)
+ GENERATE_FIELD(STQ_WPTR_ST, int)
+ GENERATE_FIELD(STQ_RPTR_ST, int)
+END_REGISTER(CP_STQ_ST_STAT)
+
+START_REGISTER(CP_MEQ_STAT)
+ GENERATE_FIELD(MEQ_WPTR, int)
+ GENERATE_FIELD(MEQ_RPTR, int)
+END_REGISTER(CP_MEQ_STAT)
+
+START_REGISTER(CP_MIU_TAG_STAT)
+ GENERATE_FIELD(INVALID_RETURN_TAG, int)
+ GENERATE_FIELD(TAG_17_STAT, int)
+ GENERATE_FIELD(TAG_16_STAT, int)
+ GENERATE_FIELD(TAG_15_STAT, int)
+ GENERATE_FIELD(TAG_14_STAT, int)
+ GENERATE_FIELD(TAG_13_STAT, int)
+ GENERATE_FIELD(TAG_12_STAT, int)
+ GENERATE_FIELD(TAG_11_STAT, int)
+ GENERATE_FIELD(TAG_10_STAT, int)
+ GENERATE_FIELD(TAG_9_STAT, int)
+ GENERATE_FIELD(TAG_8_STAT, int)
+ GENERATE_FIELD(TAG_7_STAT, int)
+ GENERATE_FIELD(TAG_6_STAT, int)
+ GENERATE_FIELD(TAG_5_STAT, int)
+ GENERATE_FIELD(TAG_4_STAT, int)
+ GENERATE_FIELD(TAG_3_STAT, int)
+ GENERATE_FIELD(TAG_2_STAT, int)
+ GENERATE_FIELD(TAG_1_STAT, int)
+ GENERATE_FIELD(TAG_0_STAT, int)
+END_REGISTER(CP_MIU_TAG_STAT)
+
+START_REGISTER(CP_CMD_INDEX)
+ GENERATE_FIELD(CMD_QUEUE_SEL, int)
+ GENERATE_FIELD(CMD_INDEX, int)
+END_REGISTER(CP_CMD_INDEX)
+
+START_REGISTER(CP_CMD_DATA)
+ GENERATE_FIELD(CMD_DATA, int)
+END_REGISTER(CP_CMD_DATA)
+
+START_REGISTER(CP_ME_CNTL)
+ GENERATE_FIELD(PROG_CNT_SIZE, int)
+ GENERATE_FIELD(ME_BUSY, int)
+ GENERATE_FIELD(ME_HALT, int)
+ GENERATE_FIELD(PIX_DEALLOC_FIFO_EMPTY, int)
+ GENERATE_FIELD(VTX_DEALLOC_FIFO_EMPTY, int)
+ GENERATE_FIELD(ME_STATMUX, int)
+END_REGISTER(CP_ME_CNTL)
+
+START_REGISTER(CP_ME_STATUS)
+ GENERATE_FIELD(ME_DEBUG_DATA, int)
+END_REGISTER(CP_ME_STATUS)
+
+START_REGISTER(CP_ME_RAM_WADDR)
+ GENERATE_FIELD(ME_RAM_WADDR, int)
+END_REGISTER(CP_ME_RAM_WADDR)
+
+START_REGISTER(CP_ME_RAM_RADDR)
+ GENERATE_FIELD(ME_RAM_RADDR, int)
+END_REGISTER(CP_ME_RAM_RADDR)
+
+START_REGISTER(CP_ME_RAM_DATA)
+ GENERATE_FIELD(ME_RAM_DATA, int)
+END_REGISTER(CP_ME_RAM_DATA)
+
+START_REGISTER(CP_ME_RDADDR)
+ GENERATE_FIELD(ME_RDADDR, int)
+END_REGISTER(CP_ME_RDADDR)
+
+START_REGISTER(CP_DEBUG)
+ GENERATE_FIELD(MIU_WRITE_PACK_DISABLE, int)
+ GENERATE_FIELD(SIMPLE_ME_FLOW_CONTROL, int)
+ GENERATE_FIELD(PREFETCH_MATCH_DISABLE, int)
+ GENERATE_FIELD(DYNAMIC_CLK_DISABLE, int)
+ GENERATE_FIELD(PREFETCH_PASS_NOPS, int)
+ GENERATE_FIELD(MIU_128BIT_WRITE_ENABLE, int)
+ GENERATE_FIELD(PROG_END_PTR_ENABLE, int)
+ GENERATE_FIELD(PREDICATE_DISABLE, int)
+ GENERATE_FIELD(CP_DEBUG_UNUSED_22_to_0, int)
+END_REGISTER(CP_DEBUG)
+
+START_REGISTER(SCRATCH_REG0)
+ GENERATE_FIELD(SCRATCH_REG0, int)
+END_REGISTER(SCRATCH_REG0)
+
+START_REGISTER(SCRATCH_REG1)
+ GENERATE_FIELD(SCRATCH_REG1, int)
+END_REGISTER(SCRATCH_REG1)
+
+START_REGISTER(SCRATCH_REG2)
+ GENERATE_FIELD(SCRATCH_REG2, int)
+END_REGISTER(SCRATCH_REG2)
+
+START_REGISTER(SCRATCH_REG3)
+ GENERATE_FIELD(SCRATCH_REG3, int)
+END_REGISTER(SCRATCH_REG3)
+
+START_REGISTER(SCRATCH_REG4)
+ GENERATE_FIELD(SCRATCH_REG4, int)
+END_REGISTER(SCRATCH_REG4)
+
+START_REGISTER(SCRATCH_REG5)
+ GENERATE_FIELD(SCRATCH_REG5, int)
+END_REGISTER(SCRATCH_REG5)
+
+START_REGISTER(SCRATCH_REG6)
+ GENERATE_FIELD(SCRATCH_REG6, int)
+END_REGISTER(SCRATCH_REG6)
+
+START_REGISTER(SCRATCH_REG7)
+ GENERATE_FIELD(SCRATCH_REG7, int)
+END_REGISTER(SCRATCH_REG7)
+
+START_REGISTER(SCRATCH_UMSK)
+ GENERATE_FIELD(SCRATCH_SWAP, int)
+ GENERATE_FIELD(SCRATCH_UMSK, int)
+END_REGISTER(SCRATCH_UMSK)
+
+START_REGISTER(SCRATCH_ADDR)
+ GENERATE_FIELD(SCRATCH_ADDR, hex)
+END_REGISTER(SCRATCH_ADDR)
+
+START_REGISTER(CP_ME_VS_EVENT_SRC)
+ GENERATE_FIELD(VS_DONE_CNTR, int)
+ GENERATE_FIELD(VS_DONE_SWM, int)
+END_REGISTER(CP_ME_VS_EVENT_SRC)
+
+START_REGISTER(CP_ME_VS_EVENT_ADDR)
+ GENERATE_FIELD(VS_DONE_ADDR, int)
+ GENERATE_FIELD(VS_DONE_SWAP, int)
+END_REGISTER(CP_ME_VS_EVENT_ADDR)
+
+START_REGISTER(CP_ME_VS_EVENT_DATA)
+ GENERATE_FIELD(VS_DONE_DATA, int)
+END_REGISTER(CP_ME_VS_EVENT_DATA)
+
+START_REGISTER(CP_ME_VS_EVENT_ADDR_SWM)
+ GENERATE_FIELD(VS_DONE_ADDR_SWM, int)
+ GENERATE_FIELD(VS_DONE_SWAP_SWM, int)
+END_REGISTER(CP_ME_VS_EVENT_ADDR_SWM)
+
+START_REGISTER(CP_ME_VS_EVENT_DATA_SWM)
+ GENERATE_FIELD(VS_DONE_DATA_SWM, int)
+END_REGISTER(CP_ME_VS_EVENT_DATA_SWM)
+
+START_REGISTER(CP_ME_PS_EVENT_SRC)
+ GENERATE_FIELD(PS_DONE_CNTR, int)
+ GENERATE_FIELD(PS_DONE_SWM, int)
+END_REGISTER(CP_ME_PS_EVENT_SRC)
+
+START_REGISTER(CP_ME_PS_EVENT_ADDR)
+ GENERATE_FIELD(PS_DONE_ADDR, int)
+ GENERATE_FIELD(PS_DONE_SWAP, int)
+END_REGISTER(CP_ME_PS_EVENT_ADDR)
+
+START_REGISTER(CP_ME_PS_EVENT_DATA)
+ GENERATE_FIELD(PS_DONE_DATA, int)
+END_REGISTER(CP_ME_PS_EVENT_DATA)
+
+START_REGISTER(CP_ME_PS_EVENT_ADDR_SWM)
+ GENERATE_FIELD(PS_DONE_ADDR_SWM, int)
+ GENERATE_FIELD(PS_DONE_SWAP_SWM, int)
+END_REGISTER(CP_ME_PS_EVENT_ADDR_SWM)
+
+START_REGISTER(CP_ME_PS_EVENT_DATA_SWM)
+ GENERATE_FIELD(PS_DONE_DATA_SWM, int)
+END_REGISTER(CP_ME_PS_EVENT_DATA_SWM)
+
+START_REGISTER(CP_ME_CF_EVENT_SRC)
+ GENERATE_FIELD(CF_DONE_SRC, int)
+END_REGISTER(CP_ME_CF_EVENT_SRC)
+
+START_REGISTER(CP_ME_CF_EVENT_ADDR)
+ GENERATE_FIELD(CF_DONE_ADDR, int)
+ GENERATE_FIELD(CF_DONE_SWAP, int)
+END_REGISTER(CP_ME_CF_EVENT_ADDR)
+
+START_REGISTER(CP_ME_CF_EVENT_DATA)
+ GENERATE_FIELD(CF_DONE_DATA, int)
+END_REGISTER(CP_ME_CF_EVENT_DATA)
+
+START_REGISTER(CP_ME_NRT_ADDR)
+ GENERATE_FIELD(NRT_WRITE_ADDR, int)
+ GENERATE_FIELD(NRT_WRITE_SWAP, int)
+END_REGISTER(CP_ME_NRT_ADDR)
+
+START_REGISTER(CP_ME_NRT_DATA)
+ GENERATE_FIELD(NRT_WRITE_DATA, int)
+END_REGISTER(CP_ME_NRT_DATA)
+
+START_REGISTER(CP_ME_VS_FETCH_DONE_SRC)
+ GENERATE_FIELD(VS_FETCH_DONE_CNTR, int)
+END_REGISTER(CP_ME_VS_FETCH_DONE_SRC)
+
+START_REGISTER(CP_ME_VS_FETCH_DONE_ADDR)
+ GENERATE_FIELD(VS_FETCH_DONE_ADDR, int)
+ GENERATE_FIELD(VS_FETCH_DONE_SWAP, int)
+END_REGISTER(CP_ME_VS_FETCH_DONE_ADDR)
+
+START_REGISTER(CP_ME_VS_FETCH_DONE_DATA)
+ GENERATE_FIELD(VS_FETCH_DONE_DATA, int)
+END_REGISTER(CP_ME_VS_FETCH_DONE_DATA)
+
+START_REGISTER(CP_INT_CNTL)
+ GENERATE_FIELD(RB_INT_MASK, int)
+ GENERATE_FIELD(IB1_INT_MASK, int)
+ GENERATE_FIELD(IB2_INT_MASK, int)
+ GENERATE_FIELD(IB_ERROR_MASK, int)
+ GENERATE_FIELD(RESERVED_BIT_ERROR_MASK, int)
+ GENERATE_FIELD(PROTECTED_MODE_ERROR_MASK, int)
+ GENERATE_FIELD(OPCODE_ERROR_MASK, int)
+ GENERATE_FIELD(T0_PACKET_IN_IB_MASK, int)
+ GENERATE_FIELD(SW_INT_MASK, int)
+END_REGISTER(CP_INT_CNTL)
+
+START_REGISTER(CP_INT_STATUS)
+ GENERATE_FIELD(RB_INT_STAT, int)
+ GENERATE_FIELD(IB1_INT_STAT, int)
+ GENERATE_FIELD(IB2_INT_STAT, int)
+ GENERATE_FIELD(IB_ERROR_STAT, int)
+ GENERATE_FIELD(RESERVED_BIT_ERROR_STAT, int)
+ GENERATE_FIELD(PROTECTED_MODE_ERROR_STAT, int)
+ GENERATE_FIELD(OPCODE_ERROR_STAT, int)
+ GENERATE_FIELD(T0_PACKET_IN_IB_STAT, int)
+ GENERATE_FIELD(SW_INT_STAT, int)
+END_REGISTER(CP_INT_STATUS)
+
+START_REGISTER(CP_INT_ACK)
+ GENERATE_FIELD(RB_INT_ACK, int)
+ GENERATE_FIELD(IB1_INT_ACK, int)
+ GENERATE_FIELD(IB2_INT_ACK, int)
+ GENERATE_FIELD(IB_ERROR_ACK, int)
+ GENERATE_FIELD(RESERVED_BIT_ERROR_ACK, int)
+ GENERATE_FIELD(PROTECTED_MODE_ERROR_ACK, int)
+ GENERATE_FIELD(OPCODE_ERROR_ACK, int)
+ GENERATE_FIELD(T0_PACKET_IN_IB_ACK, int)
+ GENERATE_FIELD(SW_INT_ACK, int)
+END_REGISTER(CP_INT_ACK)
+
+START_REGISTER(CP_PFP_UCODE_ADDR)
+ GENERATE_FIELD(UCODE_ADDR, hex)
+END_REGISTER(CP_PFP_UCODE_ADDR)
+
+START_REGISTER(CP_PFP_UCODE_DATA)
+ GENERATE_FIELD(UCODE_DATA, hex)
+END_REGISTER(CP_PFP_UCODE_DATA)
+
+START_REGISTER(CP_PERFMON_CNTL)
+ GENERATE_FIELD(PERFMON_ENABLE_MODE, int)
+ GENERATE_FIELD(PERFMON_STATE, int)
+END_REGISTER(CP_PERFMON_CNTL)
+
+START_REGISTER(CP_PERFCOUNTER_SELECT)
+ GENERATE_FIELD(PERFCOUNT_SEL, CP_PERFCOUNT_SEL)
+END_REGISTER(CP_PERFCOUNTER_SELECT)
+
+START_REGISTER(CP_PERFCOUNTER_LO)
+ GENERATE_FIELD(PERFCOUNT_LO, int)
+END_REGISTER(CP_PERFCOUNTER_LO)
+
+START_REGISTER(CP_PERFCOUNTER_HI)
+ GENERATE_FIELD(PERFCOUNT_HI, int)
+END_REGISTER(CP_PERFCOUNTER_HI)
+
+START_REGISTER(CP_BIN_MASK_LO)
+ GENERATE_FIELD(BIN_MASK_LO, int)
+END_REGISTER(CP_BIN_MASK_LO)
+
+START_REGISTER(CP_BIN_MASK_HI)
+ GENERATE_FIELD(BIN_MASK_HI, int)
+END_REGISTER(CP_BIN_MASK_HI)
+
+START_REGISTER(CP_BIN_SELECT_LO)
+ GENERATE_FIELD(BIN_SELECT_LO, int)
+END_REGISTER(CP_BIN_SELECT_LO)
+
+START_REGISTER(CP_BIN_SELECT_HI)
+ GENERATE_FIELD(BIN_SELECT_HI, int)
+END_REGISTER(CP_BIN_SELECT_HI)
+
+START_REGISTER(CP_NV_FLAGS_0)
+ GENERATE_FIELD(END_RCVD_15, int)
+ GENERATE_FIELD(DISCARD_15, int)
+ GENERATE_FIELD(END_RCVD_14, int)
+ GENERATE_FIELD(DISCARD_14, int)
+ GENERATE_FIELD(END_RCVD_13, int)
+ GENERATE_FIELD(DISCARD_13, int)
+ GENERATE_FIELD(END_RCVD_12, int)
+ GENERATE_FIELD(DISCARD_12, int)
+ GENERATE_FIELD(END_RCVD_11, int)
+ GENERATE_FIELD(DISCARD_11, int)
+ GENERATE_FIELD(END_RCVD_10, int)
+ GENERATE_FIELD(DISCARD_10, int)
+ GENERATE_FIELD(END_RCVD_9, int)
+ GENERATE_FIELD(DISCARD_9, int)
+ GENERATE_FIELD(END_RCVD_8, int)
+ GENERATE_FIELD(DISCARD_8, int)
+ GENERATE_FIELD(END_RCVD_7, int)
+ GENERATE_FIELD(DISCARD_7, int)
+ GENERATE_FIELD(END_RCVD_6, int)
+ GENERATE_FIELD(DISCARD_6, int)
+ GENERATE_FIELD(END_RCVD_5, int)
+ GENERATE_FIELD(DISCARD_5, int)
+ GENERATE_FIELD(END_RCVD_4, int)
+ GENERATE_FIELD(DISCARD_4, int)
+ GENERATE_FIELD(END_RCVD_3, int)
+ GENERATE_FIELD(DISCARD_3, int)
+ GENERATE_FIELD(END_RCVD_2, int)
+ GENERATE_FIELD(DISCARD_2, int)
+ GENERATE_FIELD(END_RCVD_1, int)
+ GENERATE_FIELD(DISCARD_1, int)
+ GENERATE_FIELD(END_RCVD_0, int)
+ GENERATE_FIELD(DISCARD_0, int)
+END_REGISTER(CP_NV_FLAGS_0)
+
+START_REGISTER(CP_NV_FLAGS_1)
+ GENERATE_FIELD(END_RCVD_31, int)
+ GENERATE_FIELD(DISCARD_31, int)
+ GENERATE_FIELD(END_RCVD_30, int)
+ GENERATE_FIELD(DISCARD_30, int)
+ GENERATE_FIELD(END_RCVD_29, int)
+ GENERATE_FIELD(DISCARD_29, int)
+ GENERATE_FIELD(END_RCVD_28, int)
+ GENERATE_FIELD(DISCARD_28, int)
+ GENERATE_FIELD(END_RCVD_27, int)
+ GENERATE_FIELD(DISCARD_27, int)
+ GENERATE_FIELD(END_RCVD_26, int)
+ GENERATE_FIELD(DISCARD_26, int)
+ GENERATE_FIELD(END_RCVD_25, int)
+ GENERATE_FIELD(DISCARD_25, int)
+ GENERATE_FIELD(END_RCVD_24, int)
+ GENERATE_FIELD(DISCARD_24, int)
+ GENERATE_FIELD(END_RCVD_23, int)
+ GENERATE_FIELD(DISCARD_23, int)
+ GENERATE_FIELD(END_RCVD_22, int)
+ GENERATE_FIELD(DISCARD_22, int)
+ GENERATE_FIELD(END_RCVD_21, int)
+ GENERATE_FIELD(DISCARD_21, int)
+ GENERATE_FIELD(END_RCVD_20, int)
+ GENERATE_FIELD(DISCARD_20, int)
+ GENERATE_FIELD(END_RCVD_19, int)
+ GENERATE_FIELD(DISCARD_19, int)
+ GENERATE_FIELD(END_RCVD_18, int)
+ GENERATE_FIELD(DISCARD_18, int)
+ GENERATE_FIELD(END_RCVD_17, int)
+ GENERATE_FIELD(DISCARD_17, int)
+ GENERATE_FIELD(END_RCVD_16, int)
+ GENERATE_FIELD(DISCARD_16, int)
+END_REGISTER(CP_NV_FLAGS_1)
+
+START_REGISTER(CP_NV_FLAGS_2)
+ GENERATE_FIELD(END_RCVD_47, int)
+ GENERATE_FIELD(DISCARD_47, int)
+ GENERATE_FIELD(END_RCVD_46, int)
+ GENERATE_FIELD(DISCARD_46, int)
+ GENERATE_FIELD(END_RCVD_45, int)
+ GENERATE_FIELD(DISCARD_45, int)
+ GENERATE_FIELD(END_RCVD_44, int)
+ GENERATE_FIELD(DISCARD_44, int)
+ GENERATE_FIELD(END_RCVD_43, int)
+ GENERATE_FIELD(DISCARD_43, int)
+ GENERATE_FIELD(END_RCVD_42, int)
+ GENERATE_FIELD(DISCARD_42, int)
+ GENERATE_FIELD(END_RCVD_41, int)
+ GENERATE_FIELD(DISCARD_41, int)
+ GENERATE_FIELD(END_RCVD_40, int)
+ GENERATE_FIELD(DISCARD_40, int)
+ GENERATE_FIELD(END_RCVD_39, int)
+ GENERATE_FIELD(DISCARD_39, int)
+ GENERATE_FIELD(END_RCVD_38, int)
+ GENERATE_FIELD(DISCARD_38, int)
+ GENERATE_FIELD(END_RCVD_37, int)
+ GENERATE_FIELD(DISCARD_37, int)
+ GENERATE_FIELD(END_RCVD_36, int)
+ GENERATE_FIELD(DISCARD_36, int)
+ GENERATE_FIELD(END_RCVD_35, int)
+ GENERATE_FIELD(DISCARD_35, int)
+ GENERATE_FIELD(END_RCVD_34, int)
+ GENERATE_FIELD(DISCARD_34, int)
+ GENERATE_FIELD(END_RCVD_33, int)
+ GENERATE_FIELD(DISCARD_33, int)
+ GENERATE_FIELD(END_RCVD_32, int)
+ GENERATE_FIELD(DISCARD_32, int)
+END_REGISTER(CP_NV_FLAGS_2)
+
+START_REGISTER(CP_NV_FLAGS_3)
+ GENERATE_FIELD(END_RCVD_63, int)
+ GENERATE_FIELD(DISCARD_63, int)
+ GENERATE_FIELD(END_RCVD_62, int)
+ GENERATE_FIELD(DISCARD_62, int)
+ GENERATE_FIELD(END_RCVD_61, int)
+ GENERATE_FIELD(DISCARD_61, int)
+ GENERATE_FIELD(END_RCVD_60, int)
+ GENERATE_FIELD(DISCARD_60, int)
+ GENERATE_FIELD(END_RCVD_59, int)
+ GENERATE_FIELD(DISCARD_59, int)
+ GENERATE_FIELD(END_RCVD_58, int)
+ GENERATE_FIELD(DISCARD_58, int)
+ GENERATE_FIELD(END_RCVD_57, int)
+ GENERATE_FIELD(DISCARD_57, int)
+ GENERATE_FIELD(END_RCVD_56, int)
+ GENERATE_FIELD(DISCARD_56, int)
+ GENERATE_FIELD(END_RCVD_55, int)
+ GENERATE_FIELD(DISCARD_55, int)
+ GENERATE_FIELD(END_RCVD_54, int)
+ GENERATE_FIELD(DISCARD_54, int)
+ GENERATE_FIELD(END_RCVD_53, int)
+ GENERATE_FIELD(DISCARD_53, int)
+ GENERATE_FIELD(END_RCVD_52, int)
+ GENERATE_FIELD(DISCARD_52, int)
+ GENERATE_FIELD(END_RCVD_51, int)
+ GENERATE_FIELD(DISCARD_51, int)
+ GENERATE_FIELD(END_RCVD_50, int)
+ GENERATE_FIELD(DISCARD_50, int)
+ GENERATE_FIELD(END_RCVD_49, int)
+ GENERATE_FIELD(DISCARD_49, int)
+ GENERATE_FIELD(END_RCVD_48, int)
+ GENERATE_FIELD(DISCARD_48, int)
+END_REGISTER(CP_NV_FLAGS_3)
+
+START_REGISTER(CP_STATE_DEBUG_INDEX)
+ GENERATE_FIELD(STATE_DEBUG_INDEX, int)
+END_REGISTER(CP_STATE_DEBUG_INDEX)
+
+START_REGISTER(CP_STATE_DEBUG_DATA)
+ GENERATE_FIELD(STATE_DEBUG_DATA, int)
+END_REGISTER(CP_STATE_DEBUG_DATA)
+
+START_REGISTER(CP_PROG_COUNTER)
+ GENERATE_FIELD(COUNTER, int)
+END_REGISTER(CP_PROG_COUNTER)
+
+START_REGISTER(CP_STAT)
+ GENERATE_FIELD(CP_BUSY, int)
+ GENERATE_FIELD(MIU_WC_TRACK_FIFO_EMPTY, int)
+ GENERATE_FIELD(ME_WC_BUSY, int)
+ GENERATE_FIELD(ME_BUSY, int)
+ GENERATE_FIELD(_3D_BUSY, int)
+ GENERATE_FIELD(CP_NRT_BUSY, int)
+ GENERATE_FIELD(MIU_WC_STALL, int)
+ GENERATE_FIELD(MEQ_INDIRECT2_BUSY, int)
+ GENERATE_FIELD(MEQ_INDIRECTS_BUSY, int)
+ GENERATE_FIELD(MEQ_RING_BUSY, int)
+ GENERATE_FIELD(PFP_BUSY, int)
+ GENERATE_FIELD(ST_QUEUE_BUSY, int)
+ GENERATE_FIELD(INDIRECT2_QUEUE_BUSY, int)
+ GENERATE_FIELD(INDIRECTS_QUEUE_BUSY, int)
+ GENERATE_FIELD(RING_QUEUE_BUSY, int)
+ GENERATE_FIELD(CSF_BUSY, int)
+ GENERATE_FIELD(CSF_ST_BUSY, int)
+ GENERATE_FIELD(CSF_INDIRECT2_BUSY, int)
+ GENERATE_FIELD(CSF_INDIRECTS_BUSY, int)
+ GENERATE_FIELD(CSF_RING_BUSY, int)
+ GENERATE_FIELD(RCIU_BUSY, int)
+ GENERATE_FIELD(RBIU_BUSY, int)
+ GENERATE_FIELD(MIU_RD_RETURN_BUSY, int)
+ GENERATE_FIELD(MIU_RD_REQ_BUSY, int)
+ GENERATE_FIELD(MIU_WR_BUSY, int)
+END_REGISTER(CP_STAT)
+
+START_REGISTER(BIOS_0_SCRATCH)
+ GENERATE_FIELD(BIOS_SCRATCH, hex)
+END_REGISTER(BIOS_0_SCRATCH)
+
+START_REGISTER(BIOS_1_SCRATCH)
+ GENERATE_FIELD(BIOS_SCRATCH, hex)
+END_REGISTER(BIOS_1_SCRATCH)
+
+START_REGISTER(BIOS_2_SCRATCH)
+ GENERATE_FIELD(BIOS_SCRATCH, hex)
+END_REGISTER(BIOS_2_SCRATCH)
+
+START_REGISTER(BIOS_3_SCRATCH)
+ GENERATE_FIELD(BIOS_SCRATCH, hex)
+END_REGISTER(BIOS_3_SCRATCH)
+
+START_REGISTER(BIOS_4_SCRATCH)
+ GENERATE_FIELD(BIOS_SCRATCH, hex)
+END_REGISTER(BIOS_4_SCRATCH)
+
+START_REGISTER(BIOS_5_SCRATCH)
+ GENERATE_FIELD(BIOS_SCRATCH, hex)
+END_REGISTER(BIOS_5_SCRATCH)
+
+START_REGISTER(BIOS_6_SCRATCH)
+ GENERATE_FIELD(BIOS_SCRATCH, hex)
+END_REGISTER(BIOS_6_SCRATCH)
+
+START_REGISTER(BIOS_7_SCRATCH)
+ GENERATE_FIELD(BIOS_SCRATCH, hex)
+END_REGISTER(BIOS_7_SCRATCH)
+
+START_REGISTER(BIOS_8_SCRATCH)
+ GENERATE_FIELD(BIOS_SCRATCH, hex)
+END_REGISTER(BIOS_8_SCRATCH)
+
+START_REGISTER(BIOS_9_SCRATCH)
+ GENERATE_FIELD(BIOS_SCRATCH, hex)
+END_REGISTER(BIOS_9_SCRATCH)
+
+START_REGISTER(BIOS_10_SCRATCH)
+ GENERATE_FIELD(BIOS_SCRATCH, hex)
+END_REGISTER(BIOS_10_SCRATCH)
+
+START_REGISTER(BIOS_11_SCRATCH)
+ GENERATE_FIELD(BIOS_SCRATCH, hex)
+END_REGISTER(BIOS_11_SCRATCH)
+
+START_REGISTER(BIOS_12_SCRATCH)
+ GENERATE_FIELD(BIOS_SCRATCH, hex)
+END_REGISTER(BIOS_12_SCRATCH)
+
+START_REGISTER(BIOS_13_SCRATCH)
+ GENERATE_FIELD(BIOS_SCRATCH, hex)
+END_REGISTER(BIOS_13_SCRATCH)
+
+START_REGISTER(BIOS_14_SCRATCH)
+ GENERATE_FIELD(BIOS_SCRATCH, hex)
+END_REGISTER(BIOS_14_SCRATCH)
+
+START_REGISTER(BIOS_15_SCRATCH)
+ GENERATE_FIELD(BIOS_SCRATCH, hex)
+END_REGISTER(BIOS_15_SCRATCH)
+
+START_REGISTER(COHER_SIZE_PM4)
+ GENERATE_FIELD(SIZE, int)
+END_REGISTER(COHER_SIZE_PM4)
+
+START_REGISTER(COHER_BASE_PM4)
+ GENERATE_FIELD(BASE, int)
+END_REGISTER(COHER_BASE_PM4)
+
+START_REGISTER(COHER_STATUS_PM4)
+ GENERATE_FIELD(STATUS, int)
+ GENERATE_FIELD(TC_ACTION_ENA, int)
+ GENERATE_FIELD(RB_COLOR_INFO_ENA, int)
+ GENERATE_FIELD(DEST_BASE_7_ENA, int)
+ GENERATE_FIELD(DEST_BASE_6_ENA, int)
+ GENERATE_FIELD(DEST_BASE_5_ENA, int)
+ GENERATE_FIELD(DEST_BASE_4_ENA, int)
+ GENERATE_FIELD(DEST_BASE_3_ENA, int)
+ GENERATE_FIELD(DEST_BASE_2_ENA, int)
+ GENERATE_FIELD(DEST_BASE_1_ENA, int)
+ GENERATE_FIELD(DEST_BASE_0_ENA, int)
+ GENERATE_FIELD(RB_COPY_DEST_BASE_ENA, int)
+ GENERATE_FIELD(MATCHING_CONTEXTS, int)
+END_REGISTER(COHER_STATUS_PM4)
+
+START_REGISTER(COHER_SIZE_HOST)
+ GENERATE_FIELD(SIZE, int)
+END_REGISTER(COHER_SIZE_HOST)
+
+START_REGISTER(COHER_BASE_HOST)
+ GENERATE_FIELD(BASE, hex)
+END_REGISTER(COHER_BASE_HOST)
+
+START_REGISTER(COHER_STATUS_HOST)
+ GENERATE_FIELD(STATUS, int)
+ GENERATE_FIELD(TC_ACTION_ENA, int)
+ GENERATE_FIELD(RB_COLOR_INFO_ENA, int)
+ GENERATE_FIELD(DEST_BASE_7_ENA, int)
+ GENERATE_FIELD(DEST_BASE_6_ENA, int)
+ GENERATE_FIELD(DEST_BASE_5_ENA, int)
+ GENERATE_FIELD(DEST_BASE_4_ENA, int)
+ GENERATE_FIELD(DEST_BASE_3_ENA, int)
+ GENERATE_FIELD(DEST_BASE_2_ENA, int)
+ GENERATE_FIELD(DEST_BASE_1_ENA, int)
+ GENERATE_FIELD(DEST_BASE_0_ENA, int)
+ GENERATE_FIELD(RB_COPY_DEST_BASE_ENA, int)
+ GENERATE_FIELD(MATCHING_CONTEXTS, int)
+END_REGISTER(COHER_STATUS_HOST)
+
+START_REGISTER(COHER_DEST_BASE_0)
+ GENERATE_FIELD(DEST_BASE_0, hex)
+END_REGISTER(COHER_DEST_BASE_0)
+
+START_REGISTER(COHER_DEST_BASE_1)
+ GENERATE_FIELD(DEST_BASE_1, hex)
+END_REGISTER(COHER_DEST_BASE_1)
+
+START_REGISTER(COHER_DEST_BASE_2)
+ GENERATE_FIELD(DEST_BASE_2, hex)
+END_REGISTER(COHER_DEST_BASE_2)
+
+START_REGISTER(COHER_DEST_BASE_3)
+ GENERATE_FIELD(DEST_BASE_3, hex)
+END_REGISTER(COHER_DEST_BASE_3)
+
+START_REGISTER(COHER_DEST_BASE_4)
+ GENERATE_FIELD(DEST_BASE_4, hex)
+END_REGISTER(COHER_DEST_BASE_4)
+
+START_REGISTER(COHER_DEST_BASE_5)
+ GENERATE_FIELD(DEST_BASE_5, hex)
+END_REGISTER(COHER_DEST_BASE_5)
+
+START_REGISTER(COHER_DEST_BASE_6)
+ GENERATE_FIELD(DEST_BASE_6, hex)
+END_REGISTER(COHER_DEST_BASE_6)
+
+START_REGISTER(COHER_DEST_BASE_7)
+ GENERATE_FIELD(DEST_BASE_7, hex)
+END_REGISTER(COHER_DEST_BASE_7)
+
+START_REGISTER(RB_SURFACE_INFO)
+ GENERATE_FIELD(MSAA_SAMPLES, MSAASamples)
+ GENERATE_FIELD(SURFACE_PITCH, uint)
+END_REGISTER(RB_SURFACE_INFO)
+
+START_REGISTER(RB_COLOR_INFO)
+ GENERATE_FIELD(COLOR_BASE, uint)
+ GENERATE_FIELD(COLOR_SWAP, uint)
+ GENERATE_FIELD(COLOR_ENDIAN, uint)
+ GENERATE_FIELD(COLOR_LINEAR, bool)
+ GENERATE_FIELD(COLOR_ROUND_MODE, uint)
+ GENERATE_FIELD(COLOR_FORMAT, ColorformatX)
+END_REGISTER(RB_COLOR_INFO)
+
+START_REGISTER(RB_DEPTH_INFO)
+ GENERATE_FIELD(DEPTH_BASE, uint)
+ GENERATE_FIELD(DEPTH_FORMAT, DepthformatX)
+END_REGISTER(RB_DEPTH_INFO)
+
+START_REGISTER(RB_STENCILREFMASK)
+ GENERATE_FIELD(RESERVED1, bool)
+ GENERATE_FIELD(RESERVED0, bool)
+ GENERATE_FIELD(STENCILWRITEMASK, hex)
+ GENERATE_FIELD(STENCILMASK, hex)
+ GENERATE_FIELD(STENCILREF, hex)
+END_REGISTER(RB_STENCILREFMASK)
+
+START_REGISTER(RB_ALPHA_REF)
+ GENERATE_FIELD(ALPHA_REF, float)
+END_REGISTER(RB_ALPHA_REF)
+
+START_REGISTER(RB_COLOR_MASK)
+ GENERATE_FIELD(RESERVED3, bool)
+ GENERATE_FIELD(RESERVED2, bool)
+ GENERATE_FIELD(WRITE_ALPHA, bool)
+ GENERATE_FIELD(WRITE_BLUE, bool)
+ GENERATE_FIELD(WRITE_GREEN, bool)
+ GENERATE_FIELD(WRITE_RED, bool)
+END_REGISTER(RB_COLOR_MASK)
+
+START_REGISTER(RB_BLEND_RED)
+ GENERATE_FIELD(BLEND_RED, uint)
+END_REGISTER(RB_BLEND_RED)
+
+START_REGISTER(RB_BLEND_GREEN)
+ GENERATE_FIELD(BLEND_GREEN, uint)
+END_REGISTER(RB_BLEND_GREEN)
+
+START_REGISTER(RB_BLEND_BLUE)
+ GENERATE_FIELD(BLEND_BLUE, uint)
+END_REGISTER(RB_BLEND_BLUE)
+
+START_REGISTER(RB_BLEND_ALPHA)
+ GENERATE_FIELD(BLEND_ALPHA, uint)
+END_REGISTER(RB_BLEND_ALPHA)
+
+START_REGISTER(RB_FOG_COLOR)
+ GENERATE_FIELD(FOG_BLUE, uint)
+ GENERATE_FIELD(FOG_GREEN, uint)
+ GENERATE_FIELD(FOG_RED, uint)
+END_REGISTER(RB_FOG_COLOR)
+
+START_REGISTER(RB_STENCILREFMASK_BF)
+ GENERATE_FIELD(RESERVED5, bool)
+ GENERATE_FIELD(RESERVED4, bool)
+ GENERATE_FIELD(STENCILWRITEMASK_BF, hex)
+ GENERATE_FIELD(STENCILMASK_BF, hex)
+ GENERATE_FIELD(STENCILREF_BF, hex)
+END_REGISTER(RB_STENCILREFMASK_BF)
+
+START_REGISTER(RB_DEPTHCONTROL)
+ GENERATE_FIELD(STENCILZFAIL_BF, StencilOp)
+ GENERATE_FIELD(STENCILZPASS_BF, StencilOp)
+ GENERATE_FIELD(STENCILFAIL_BF, StencilOp)
+ GENERATE_FIELD(STENCILFUNC_BF, CompareRef)
+ GENERATE_FIELD(STENCILZFAIL, StencilOp)
+ GENERATE_FIELD(STENCILZPASS, StencilOp)
+ GENERATE_FIELD(STENCILFAIL, StencilOp)
+ GENERATE_FIELD(STENCILFUNC, CompareRef)
+ GENERATE_FIELD(BACKFACE_ENABLE, bool)
+ GENERATE_FIELD(ZFUNC, CompareFrag)
+ GENERATE_FIELD(EARLY_Z_ENABLE, bool)
+ GENERATE_FIELD(Z_WRITE_ENABLE, bool)
+ GENERATE_FIELD(Z_ENABLE, bool)
+ GENERATE_FIELD(STENCIL_ENABLE, bool)
+END_REGISTER(RB_DEPTHCONTROL)
+
+START_REGISTER(RB_BLENDCONTROL)
+ GENERATE_FIELD(BLEND_FORCE, bool)
+ GENERATE_FIELD(BLEND_FORCE_ENABLE, bool)
+ GENERATE_FIELD(ALPHA_DESTBLEND, BlendOpX)
+ GENERATE_FIELD(ALPHA_COMB_FCN, CombFuncX)
+ GENERATE_FIELD(ALPHA_SRCBLEND, BlendOpX)
+ GENERATE_FIELD(COLOR_DESTBLEND, BlendOpX)
+ GENERATE_FIELD(COLOR_COMB_FCN, CombFuncX)
+ GENERATE_FIELD(COLOR_SRCBLEND, BlendOpX)
+END_REGISTER(RB_BLENDCONTROL)
+
+START_REGISTER(RB_COLORCONTROL)
+ GENERATE_FIELD(ALPHA_TO_MASK_OFFSET3, hex)
+ GENERATE_FIELD(ALPHA_TO_MASK_OFFSET2, hex)
+ GENERATE_FIELD(ALPHA_TO_MASK_OFFSET1, hex)
+ GENERATE_FIELD(ALPHA_TO_MASK_OFFSET0, hex)
+ GENERATE_FIELD(PIXEL_FOG, bool)
+ GENERATE_FIELD(DITHER_TYPE, DitherTypeX)
+ GENERATE_FIELD(DITHER_MODE, DitherModeX)
+ GENERATE_FIELD(ROP_CODE, uint)
+ GENERATE_FIELD(VS_EXPORTS_FOG, bool)
+ GENERATE_FIELD(FOG_ENABLE, bool)
+ GENERATE_FIELD(BLEND_DISABLE, bool)
+ GENERATE_FIELD(ALPHA_TO_MASK_ENABLE, bool)
+ GENERATE_FIELD(ALPHA_TEST_ENABLE, bool)
+ GENERATE_FIELD(ALPHA_FUNC, CompareRef)
+END_REGISTER(RB_COLORCONTROL)
+
+START_REGISTER(RB_MODECONTROL)
+ GENERATE_FIELD(EDRAM_MODE, EdramMode)
+END_REGISTER(RB_MODECONTROL)
+
+START_REGISTER(RB_COLOR_DEST_MASK)
+ GENERATE_FIELD(COLOR_DEST_MASK, uint)
+END_REGISTER(RB_COLOR_DEST_MASK)
+
+START_REGISTER(RB_COPY_CONTROL)
+ GENERATE_FIELD(CLEAR_MASK, uint)
+ GENERATE_FIELD(DEPTH_CLEAR_ENABLE, bool)
+ GENERATE_FIELD(COPY_SAMPLE_SELECT, CopySampleSelect)
+END_REGISTER(RB_COPY_CONTROL)
+
+START_REGISTER(RB_COPY_DEST_BASE)
+ GENERATE_FIELD(COPY_DEST_BASE, uint)
+END_REGISTER(RB_COPY_DEST_BASE)
+
+START_REGISTER(RB_COPY_DEST_PITCH)
+ GENERATE_FIELD(COPY_DEST_PITCH, uint)
+END_REGISTER(RB_COPY_DEST_PITCH)
+
+START_REGISTER(RB_COPY_DEST_INFO)
+ GENERATE_FIELD(COPY_MASK_WRITE_ALPHA, hex)
+ GENERATE_FIELD(COPY_MASK_WRITE_BLUE, hex)
+ GENERATE_FIELD(COPY_MASK_WRITE_GREEN, hex)
+ GENERATE_FIELD(COPY_MASK_WRITE_RED, hex)
+ GENERATE_FIELD(COPY_DEST_DITHER_TYPE, DitherTypeX)
+ GENERATE_FIELD(COPY_DEST_DITHER_MODE, DitherModeX)
+ GENERATE_FIELD(COPY_DEST_SWAP, uint)
+ GENERATE_FIELD(COPY_DEST_FORMAT, ColorformatX)
+ GENERATE_FIELD(COPY_DEST_LINEAR, uint)
+ GENERATE_FIELD(COPY_DEST_ENDIAN, SurfaceEndian)
+END_REGISTER(RB_COPY_DEST_INFO)
+
+START_REGISTER(RB_COPY_DEST_PIXEL_OFFSET)
+ GENERATE_FIELD(OFFSET_Y, uint)
+ GENERATE_FIELD(OFFSET_X, uint)
+END_REGISTER(RB_COPY_DEST_PIXEL_OFFSET)
+
+START_REGISTER(RB_DEPTH_CLEAR)
+ GENERATE_FIELD(DEPTH_CLEAR, uint)
+END_REGISTER(RB_DEPTH_CLEAR)
+
+START_REGISTER(RB_SAMPLE_COUNT_CTL)
+ GENERATE_FIELD(COPY_SAMPLE_COUNT, bool)
+ GENERATE_FIELD(RESET_SAMPLE_COUNT, bool)
+END_REGISTER(RB_SAMPLE_COUNT_CTL)
+
+START_REGISTER(RB_SAMPLE_COUNT_ADDR)
+ GENERATE_FIELD(SAMPLE_COUNT_ADDR, uint)
+END_REGISTER(RB_SAMPLE_COUNT_ADDR)
+
+START_REGISTER(RB_BC_CONTROL)
+ GENERATE_FIELD(RESERVED6, bool)
+ GENERATE_FIELD(CRC_SYSTEM, bool)
+ GENERATE_FIELD(MEM_EXPORT_LINEAR_MODE_ENABLE, bool)
+ GENERATE_FIELD(MEM_EXPORT_TIMEOUT_SELECT, int)
+ GENERATE_FIELD(ACCUM_DATA_FIFO_LIMIT, bool)
+ GENERATE_FIELD(LINEAR_PERFORMANCE_ENABLE, bool)
+ GENERATE_FIELD(ACCUM_ALLOC_MASK, uint)
+ GENERATE_FIELD(DISABLE_ACCUM, bool)
+ GENERATE_FIELD(DISABLE_SAMPLE_COUNTERS, bool)
+ GENERATE_FIELD(CRC_MODE, bool)
+ GENERATE_FIELD(ENABLE_CRC_UPDATE, bool)
+ GENERATE_FIELD(AZ_THROTTLE_COUNT, uint)
+ GENERATE_FIELD(ENABLE_AZ_THROTTLE, bool)
+ GENERATE_FIELD(DISABLE_LZ_NULL_ZCMD_DROP, bool)
+ GENERATE_FIELD(DISABLE_EZ_NULL_ZCMD_DROP, bool)
+ GENERATE_FIELD(DISABLE_EZ_FAST_CONTEXT_SWITCH, bool)
+ GENERATE_FIELD(DISABLE_EDRAM_CAM, bool)
+ GENERATE_FIELD(ACCUM_TIMEOUT_SELECT, uint)
+ GENERATE_FIELD(ACCUM_LINEAR_MODE_ENABLE, bool)
+END_REGISTER(RB_BC_CONTROL)
+
+START_REGISTER(RB_EDRAM_INFO)
+ GENERATE_FIELD(EDRAM_RANGE, hex)
+ GENERATE_FIELD(EDRAM_MAPPING_MODE, uint)
+ GENERATE_FIELD(EDRAM_SIZE, EdramSizeX)
+END_REGISTER(RB_EDRAM_INFO)
+
+START_REGISTER(RB_CRC_RD_PORT)
+ GENERATE_FIELD(CRC_DATA, hex)
+END_REGISTER(RB_CRC_RD_PORT)
+
+START_REGISTER(RB_CRC_CONTROL)
+ GENERATE_FIELD(CRC_RD_ADVANCE, bool)
+END_REGISTER(RB_CRC_CONTROL)
+
+START_REGISTER(RB_CRC_MASK)
+ GENERATE_FIELD(CRC_MASK, hex)
+END_REGISTER(RB_CRC_MASK)
+
+START_REGISTER(RB_PERFCOUNTER0_SELECT)
+ GENERATE_FIELD(PERF_SEL, RB_PERFCNT_SELECT)
+END_REGISTER(RB_PERFCOUNTER0_SELECT)
+
+START_REGISTER(RB_PERFCOUNTER0_LOW)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(RB_PERFCOUNTER0_LOW)
+
+START_REGISTER(RB_PERFCOUNTER0_HI)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(RB_PERFCOUNTER0_HI)
+
+START_REGISTER(RB_TOTAL_SAMPLES)
+ GENERATE_FIELD(TOTAL_SAMPLES, int)
+END_REGISTER(RB_TOTAL_SAMPLES)
+
+START_REGISTER(RB_ZPASS_SAMPLES)
+ GENERATE_FIELD(ZPASS_SAMPLES, int)
+END_REGISTER(RB_ZPASS_SAMPLES)
+
+START_REGISTER(RB_ZFAIL_SAMPLES)
+ GENERATE_FIELD(ZFAIL_SAMPLES, int)
+END_REGISTER(RB_ZFAIL_SAMPLES)
+
+START_REGISTER(RB_SFAIL_SAMPLES)
+ GENERATE_FIELD(SFAIL_SAMPLES, int)
+END_REGISTER(RB_SFAIL_SAMPLES)
+
+START_REGISTER(RB_DEBUG_0)
+ GENERATE_FIELD(EZ_INFSAMP_FULL, bool)
+ GENERATE_FIELD(C_MASK_FULL, bool)
+ GENERATE_FIELD(C_REQ_FULL, bool)
+ GENERATE_FIELD(C_EZ_TILE_FULL, bool)
+ GENERATE_FIELD(C_SX_CMD_FULL, bool)
+ GENERATE_FIELD(C_SX_LAT_FULL, bool)
+ GENERATE_FIELD(CMDFIFO_C_ORDERING_FULL, bool)
+ GENERATE_FIELD(CMDFIFO_Z_ORDERING_FULL, bool)
+ GENERATE_FIELD(CMDFIFO_C0_HOLD_FULL, bool)
+ GENERATE_FIELD(CMDFIFO_C1_HOLD_FULL, bool)
+ GENERATE_FIELD(CMDFIFO_Z0_HOLD_FULL, bool)
+ GENERATE_FIELD(CMDFIFO_Z1_HOLD_FULL, bool)
+ GENERATE_FIELD(WRREQ_C0_FULL, bool)
+ GENERATE_FIELD(WRREQ_C1_FULL, bool)
+ GENERATE_FIELD(WRREQ_Z0_FULL, bool)
+ GENERATE_FIELD(WRREQ_Z1_FULL, bool)
+ GENERATE_FIELD(WRREQ_C_WE_LO_FULL, bool)
+ GENERATE_FIELD(WRREQ_C_WE_HI_FULL, bool)
+ GENERATE_FIELD(WRREQ_E0_MACRO_LO_FULL, bool)
+ GENERATE_FIELD(WRREQ_E0_MACRO_HI_FULL, bool)
+ GENERATE_FIELD(WRREQ_E1_MACRO_LO_FULL, bool)
+ GENERATE_FIELD(WRREQ_E1_MACRO_HI_FULL, bool)
+ GENERATE_FIELD(RDREQ_C0_FULL, bool)
+ GENERATE_FIELD(RDREQ_C1_FULL, bool)
+ GENERATE_FIELD(RDREQ_Z0_FULL, bool)
+ GENERATE_FIELD(RDREQ_Z1_FULL, bool)
+ GENERATE_FIELD(RDREQ_E0_ORDERING_FULL, bool)
+ GENERATE_FIELD(RDREQ_E1_ORDERING_FULL, bool)
+ GENERATE_FIELD(RDREQ_CTL_C0_PRE_FULL, bool)
+ GENERATE_FIELD(RDREQ_CTL_C1_PRE_FULL, bool)
+ GENERATE_FIELD(RDREQ_CTL_Z0_PRE_FULL, bool)
+ GENERATE_FIELD(RDREQ_CTL_Z1_PRE_FULL, bool)
+END_REGISTER(RB_DEBUG_0)
+
+START_REGISTER(RB_DEBUG_1)
+ GENERATE_FIELD(EZ_INFSAMP_EMPTY, bool)
+ GENERATE_FIELD(C_MASK_EMPTY, bool)
+ GENERATE_FIELD(C_REQ_EMPTY, bool)
+ GENERATE_FIELD(C_EZ_TILE_EMPTY, bool)
+ GENERATE_FIELD(C_SX_CMD_EMPTY, bool)
+ GENERATE_FIELD(C_SX_LAT_EMPTY, bool)
+ GENERATE_FIELD(CMDFIFO_C_ORDERING_EMPTY, bool)
+ GENERATE_FIELD(CMDFIFO_Z_ORDERING_EMPTY, bool)
+ GENERATE_FIELD(CMDFIFO_C0_HOLD_EMPTY, bool)
+ GENERATE_FIELD(CMDFIFO_C1_HOLD_EMPTY, bool)
+ GENERATE_FIELD(CMDFIFO_Z0_HOLD_EMPTY, bool)
+ GENERATE_FIELD(CMDFIFO_Z1_HOLD_EMPTY, bool)
+ GENERATE_FIELD(WRREQ_C0_PRE_EMPTY, bool)
+ GENERATE_FIELD(WRREQ_C1_PRE_EMPTY, bool)
+ GENERATE_FIELD(WRREQ_Z0_EMPTY, bool)
+ GENERATE_FIELD(WRREQ_Z1_EMPTY, bool)
+ GENERATE_FIELD(WRREQ_C_WE_LO_EMPTY, bool)
+ GENERATE_FIELD(WRREQ_C_WE_HI_EMPTY, bool)
+ GENERATE_FIELD(WRREQ_E0_MACRO_LO_EMPTY, bool)
+ GENERATE_FIELD(WRREQ_E0_MACRO_HI_EMPTY, bool)
+ GENERATE_FIELD(WRREQ_E1_MACRO_LO_EMPTY, bool)
+ GENERATE_FIELD(WRREQ_E1_MACRO_HI_EMPTY, bool)
+ GENERATE_FIELD(RDREQ_C0_EMPTY, bool)
+ GENERATE_FIELD(RDREQ_C1_EMPTY, bool)
+ GENERATE_FIELD(RDREQ_Z0_EMPTY, bool)
+ GENERATE_FIELD(RDREQ_Z1_EMPTY, bool)
+ GENERATE_FIELD(RDREQ_E0_ORDERING_EMPTY, bool)
+ GENERATE_FIELD(RDREQ_E1_ORDERING_EMPTY, bool)
+ GENERATE_FIELD(RDREQ_C0_CMD_EMPTY, bool)
+ GENERATE_FIELD(RDREQ_C1_CMD_EMPTY, bool)
+ GENERATE_FIELD(RDREQ_Z0_CMD_EMPTY, bool)
+ GENERATE_FIELD(RDREQ_Z1_CMD_EMPTY, bool)
+END_REGISTER(RB_DEBUG_1)
+
+START_REGISTER(RB_DEBUG_2)
+ GENERATE_FIELD(Z_TILE_EMPTY, bool)
+ GENERATE_FIELD(Z_SAMP_EMPTY, bool)
+ GENERATE_FIELD(Z1_REQ_EMPTY, bool)
+ GENERATE_FIELD(Z0_REQ_EMPTY, bool)
+ GENERATE_FIELD(Z1_MASK_EMPTY, bool)
+ GENERATE_FIELD(Z0_MASK_EMPTY, bool)
+ GENERATE_FIELD(EZ_MASK_UPPER_EMPTY, bool)
+ GENERATE_FIELD(EZ_MASK_LOWER_EMPTY, bool)
+ GENERATE_FIELD(EZ_INFTILE_EMPTY, bool)
+ GENERATE_FIELD(Z_TILE_FULL, bool)
+ GENERATE_FIELD(Z_SAMP_FULL, bool)
+ GENERATE_FIELD(Z1_REQ_FULL, bool)
+ GENERATE_FIELD(Z0_REQ_FULL, bool)
+ GENERATE_FIELD(Z1_MASK_FULL, bool)
+ GENERATE_FIELD(Z0_MASK_FULL, bool)
+ GENERATE_FIELD(EZ_MASK_UPPER_FULL, bool)
+ GENERATE_FIELD(EZ_MASK_LOWER_FULL, bool)
+ GENERATE_FIELD(EZ_INFTILE_FULL, bool)
+ GENERATE_FIELD(CURRENT_TILE_EVENT, bool)
+ GENERATE_FIELD(SYSMEM_BLEND_FLAG, bool)
+ GENERATE_FIELD(MEM_EXPORT_FLAG, bool)
+ GENERATE_FIELD(SX_LAT_FIFO_COUNT, bool)
+ GENERATE_FIELD(TILE_FIFO_COUNT, bool)
+END_REGISTER(RB_DEBUG_2)
+
+START_REGISTER(RB_DEBUG_3)
+ GENERATE_FIELD(ZEXP_UPPER_FULL, bool)
+ GENERATE_FIELD(ZEXP_LOWER_FULL, bool)
+ GENERATE_FIELD(ZEXP_UPPER_EMPTY, bool)
+ GENERATE_FIELD(ZEXP_LOWER_EMPTY, bool)
+ GENERATE_FIELD(EZ_RETURN_UPPER_FULL, bool)
+ GENERATE_FIELD(EZ_RETURN_LOWER_FULL, bool)
+ GENERATE_FIELD(EZ_RETURN_UPPER_EMPTY, bool)
+ GENERATE_FIELD(EZ_RETURN_LOWER_EMPTY, bool)
+ GENERATE_FIELD(SHD_EMPTY, bool)
+ GENERATE_FIELD(SHD_FULL, bool)
+ GENERATE_FIELD(ACCUM_DATA_FIFO_CNT, bool)
+ GENERATE_FIELD(ACCUM_INPUT_REG_VALID, bool)
+ GENERATE_FIELD(ACCUM_WRITE_CLEAN_COUNT, bool)
+ GENERATE_FIELD(ACCUM_FLUSHING, bool)
+ GENERATE_FIELD(ACCUM_VALID, bool)
+END_REGISTER(RB_DEBUG_3)
+
+START_REGISTER(RB_DEBUG_4)
+ GENERATE_FIELD(CONTEXT_COUNT_DEBUG, bool)
+ GENERATE_FIELD(SYSMEM_WRITE_COUNT_OVERFLOW, bool)
+ GENERATE_FIELD(ACCUM_ORDER_FIFO_FULL, bool)
+ GENERATE_FIELD(ACCUM_DATA_FIFO_FULL, bool)
+ GENERATE_FIELD(ACCUM_ORDER_FIFO_EMPTY, bool)
+ GENERATE_FIELD(ACCUM_DATA_FIFO_EMPTY, bool)
+ GENERATE_FIELD(SYSMEM_WR_ACCESS_FLAG, bool)
+ GENERATE_FIELD(SYSMEM_RD_ACCESS_FLAG, bool)
+ GENERATE_FIELD(GMEM_WR_ACCESS_FLAG, bool)
+ GENERATE_FIELD(GMEM_RD_ACCESS_FLAG, bool)
+END_REGISTER(RB_DEBUG_4)
+
+START_REGISTER(RB_FLAG_CONTROL)
+ GENERATE_FIELD(DEBUG_FLAG_CLEAR, bool)
+END_REGISTER(RB_FLAG_CONTROL)
+
+START_REGISTER(RB_BC_SPARES)
+ GENERATE_FIELD(RESERVED, bool)
+END_REGISTER(RB_BC_SPARES)
+
+START_REGISTER(BC_DUMMY_CRAYRB_ENUMS)
+ GENERATE_FIELD(DUMMY_RB_COPY_DEST_INFO_NUMBER, SurfaceNumberX)
+ GENERATE_FIELD(DUMMY_CRAYRB_SURFACE_ARRAY, SurfaceArray)
+ GENERATE_FIELD(DUMMY_CRAYRB_SURFACE_TILING, SurfaceTiling)
+ GENERATE_FIELD(DUMMY_CRAYRB_SURFACE_FORMAT, SurfaceFormat)
+ GENERATE_FIELD(DUMMY_CRAYRB_SURFACE_NUMBER, SurfaceNumber)
+ GENERATE_FIELD(DUMMY_CRAYRB_COLOR_FORMAT, ColorFormat)
+ GENERATE_FIELD(DUMMY_CRAYRB_ARRAY, ColorArray)
+ GENERATE_FIELD(DUMMY_CRAYRB_DEPTH_ARRAY, DepthArray)
+ GENERATE_FIELD(DUMMY_CRAYRB_SURFACE_SWAP, SurfaceSwap)
+ GENERATE_FIELD(DUMMY_CRAYRB_DEPTH_FORMAT, DepthFormat)
+END_REGISTER(BC_DUMMY_CRAYRB_ENUMS)
+
+START_REGISTER(BC_DUMMY_CRAYRB_MOREENUMS)
+ GENERATE_FIELD(DUMMY_CRAYRB_COLORARRAYX, ColorArrayX)
+END_REGISTER(BC_DUMMY_CRAYRB_MOREENUMS)
+
diff --git a/drivers/mxc/amd-gpu/include/reg/yamato/10/yamato_mask.h b/drivers/mxc/amd-gpu/include/reg/yamato/10/yamato_mask.h
new file mode 100644
index 000000000000..c3087908c541
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/reg/yamato/10/yamato_mask.h
@@ -0,0 +1,5906 @@
+/* Copyright (c) 2002,2007-2009, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#if !defined (_yamato_MASK_HEADER)
+#define _yamato_MASK_HEADER
+
+// PA_CL_VPORT_XSCALE
+#define PA_CL_VPORT_XSCALE__VPORT_XSCALE_MASK 0xffffffffL
+
+// PA_CL_VPORT_XOFFSET
+#define PA_CL_VPORT_XOFFSET__VPORT_XOFFSET_MASK 0xffffffffL
+
+// PA_CL_VPORT_YSCALE
+#define PA_CL_VPORT_YSCALE__VPORT_YSCALE_MASK 0xffffffffL
+
+// PA_CL_VPORT_YOFFSET
+#define PA_CL_VPORT_YOFFSET__VPORT_YOFFSET_MASK 0xffffffffL
+
+// PA_CL_VPORT_ZSCALE
+#define PA_CL_VPORT_ZSCALE__VPORT_ZSCALE_MASK 0xffffffffL
+
+// PA_CL_VPORT_ZOFFSET
+#define PA_CL_VPORT_ZOFFSET__VPORT_ZOFFSET_MASK 0xffffffffL
+
+// PA_CL_VTE_CNTL
+#define PA_CL_VTE_CNTL__VPORT_X_SCALE_ENA_MASK 0x00000001L
+#define PA_CL_VTE_CNTL__VPORT_X_SCALE_ENA 0x00000001L
+#define PA_CL_VTE_CNTL__VPORT_X_OFFSET_ENA_MASK 0x00000002L
+#define PA_CL_VTE_CNTL__VPORT_X_OFFSET_ENA 0x00000002L
+#define PA_CL_VTE_CNTL__VPORT_Y_SCALE_ENA_MASK 0x00000004L
+#define PA_CL_VTE_CNTL__VPORT_Y_SCALE_ENA 0x00000004L
+#define PA_CL_VTE_CNTL__VPORT_Y_OFFSET_ENA_MASK 0x00000008L
+#define PA_CL_VTE_CNTL__VPORT_Y_OFFSET_ENA 0x00000008L
+#define PA_CL_VTE_CNTL__VPORT_Z_SCALE_ENA_MASK 0x00000010L
+#define PA_CL_VTE_CNTL__VPORT_Z_SCALE_ENA 0x00000010L
+#define PA_CL_VTE_CNTL__VPORT_Z_OFFSET_ENA_MASK 0x00000020L
+#define PA_CL_VTE_CNTL__VPORT_Z_OFFSET_ENA 0x00000020L
+#define PA_CL_VTE_CNTL__VTX_XY_FMT_MASK 0x00000100L
+#define PA_CL_VTE_CNTL__VTX_XY_FMT 0x00000100L
+#define PA_CL_VTE_CNTL__VTX_Z_FMT_MASK 0x00000200L
+#define PA_CL_VTE_CNTL__VTX_Z_FMT 0x00000200L
+#define PA_CL_VTE_CNTL__VTX_W0_FMT_MASK 0x00000400L
+#define PA_CL_VTE_CNTL__VTX_W0_FMT 0x00000400L
+#define PA_CL_VTE_CNTL__PERFCOUNTER_REF_MASK 0x00000800L
+#define PA_CL_VTE_CNTL__PERFCOUNTER_REF 0x00000800L
+
+// PA_CL_CLIP_CNTL
+#define PA_CL_CLIP_CNTL__CLIP_DISABLE_MASK 0x00010000L
+#define PA_CL_CLIP_CNTL__CLIP_DISABLE 0x00010000L
+#define PA_CL_CLIP_CNTL__BOUNDARY_EDGE_FLAG_ENA_MASK 0x00040000L
+#define PA_CL_CLIP_CNTL__BOUNDARY_EDGE_FLAG_ENA 0x00040000L
+#define PA_CL_CLIP_CNTL__DX_CLIP_SPACE_DEF_MASK 0x00080000L
+#define PA_CL_CLIP_CNTL__DX_CLIP_SPACE_DEF 0x00080000L
+#define PA_CL_CLIP_CNTL__DIS_CLIP_ERR_DETECT_MASK 0x00100000L
+#define PA_CL_CLIP_CNTL__DIS_CLIP_ERR_DETECT 0x00100000L
+#define PA_CL_CLIP_CNTL__VTX_KILL_OR_MASK 0x00200000L
+#define PA_CL_CLIP_CNTL__VTX_KILL_OR 0x00200000L
+#define PA_CL_CLIP_CNTL__XY_NAN_RETAIN_MASK 0x00400000L
+#define PA_CL_CLIP_CNTL__XY_NAN_RETAIN 0x00400000L
+#define PA_CL_CLIP_CNTL__Z_NAN_RETAIN_MASK 0x00800000L
+#define PA_CL_CLIP_CNTL__Z_NAN_RETAIN 0x00800000L
+#define PA_CL_CLIP_CNTL__W_NAN_RETAIN_MASK 0x01000000L
+#define PA_CL_CLIP_CNTL__W_NAN_RETAIN 0x01000000L
+
+// PA_CL_GB_VERT_CLIP_ADJ
+#define PA_CL_GB_VERT_CLIP_ADJ__DATA_REGISTER_MASK 0xffffffffL
+
+// PA_CL_GB_VERT_DISC_ADJ
+#define PA_CL_GB_VERT_DISC_ADJ__DATA_REGISTER_MASK 0xffffffffL
+
+// PA_CL_GB_HORZ_CLIP_ADJ
+#define PA_CL_GB_HORZ_CLIP_ADJ__DATA_REGISTER_MASK 0xffffffffL
+
+// PA_CL_GB_HORZ_DISC_ADJ
+#define PA_CL_GB_HORZ_DISC_ADJ__DATA_REGISTER_MASK 0xffffffffL
+
+// PA_CL_ENHANCE
+#define PA_CL_ENHANCE__CLIP_VTX_REORDER_ENA_MASK 0x00000001L
+#define PA_CL_ENHANCE__CLIP_VTX_REORDER_ENA 0x00000001L
+#define PA_CL_ENHANCE__ECO_SPARE3_MASK 0x10000000L
+#define PA_CL_ENHANCE__ECO_SPARE3 0x10000000L
+#define PA_CL_ENHANCE__ECO_SPARE2_MASK 0x20000000L
+#define PA_CL_ENHANCE__ECO_SPARE2 0x20000000L
+#define PA_CL_ENHANCE__ECO_SPARE1_MASK 0x40000000L
+#define PA_CL_ENHANCE__ECO_SPARE1 0x40000000L
+#define PA_CL_ENHANCE__ECO_SPARE0_MASK 0x80000000L
+#define PA_CL_ENHANCE__ECO_SPARE0 0x80000000L
+
+// PA_SC_ENHANCE
+#define PA_SC_ENHANCE__ECO_SPARE3_MASK 0x10000000L
+#define PA_SC_ENHANCE__ECO_SPARE3 0x10000000L
+#define PA_SC_ENHANCE__ECO_SPARE2_MASK 0x20000000L
+#define PA_SC_ENHANCE__ECO_SPARE2 0x20000000L
+#define PA_SC_ENHANCE__ECO_SPARE1_MASK 0x40000000L
+#define PA_SC_ENHANCE__ECO_SPARE1 0x40000000L
+#define PA_SC_ENHANCE__ECO_SPARE0_MASK 0x80000000L
+#define PA_SC_ENHANCE__ECO_SPARE0 0x80000000L
+
+// PA_SU_VTX_CNTL
+#define PA_SU_VTX_CNTL__PIX_CENTER_MASK 0x00000001L
+#define PA_SU_VTX_CNTL__PIX_CENTER 0x00000001L
+#define PA_SU_VTX_CNTL__ROUND_MODE_MASK 0x00000006L
+#define PA_SU_VTX_CNTL__QUANT_MODE_MASK 0x00000038L
+
+// PA_SU_POINT_SIZE
+#define PA_SU_POINT_SIZE__HEIGHT_MASK 0x0000ffffL
+#define PA_SU_POINT_SIZE__WIDTH_MASK 0xffff0000L
+
+// PA_SU_POINT_MINMAX
+#define PA_SU_POINT_MINMAX__MIN_SIZE_MASK 0x0000ffffL
+#define PA_SU_POINT_MINMAX__MAX_SIZE_MASK 0xffff0000L
+
+// PA_SU_LINE_CNTL
+#define PA_SU_LINE_CNTL__WIDTH_MASK 0x0000ffffL
+
+// PA_SU_FACE_DATA
+#define PA_SU_FACE_DATA__BASE_ADDR_MASK 0xffffffe0L
+
+// PA_SU_SC_MODE_CNTL
+#define PA_SU_SC_MODE_CNTL__CULL_FRONT_MASK 0x00000001L
+#define PA_SU_SC_MODE_CNTL__CULL_FRONT 0x00000001L
+#define PA_SU_SC_MODE_CNTL__CULL_BACK_MASK 0x00000002L
+#define PA_SU_SC_MODE_CNTL__CULL_BACK 0x00000002L
+#define PA_SU_SC_MODE_CNTL__FACE_MASK 0x00000004L
+#define PA_SU_SC_MODE_CNTL__FACE 0x00000004L
+#define PA_SU_SC_MODE_CNTL__POLY_MODE_MASK 0x00000018L
+#define PA_SU_SC_MODE_CNTL__POLYMODE_FRONT_PTYPE_MASK 0x000000e0L
+#define PA_SU_SC_MODE_CNTL__POLYMODE_BACK_PTYPE_MASK 0x00000700L
+#define PA_SU_SC_MODE_CNTL__POLY_OFFSET_FRONT_ENABLE_MASK 0x00000800L
+#define PA_SU_SC_MODE_CNTL__POLY_OFFSET_FRONT_ENABLE 0x00000800L
+#define PA_SU_SC_MODE_CNTL__POLY_OFFSET_BACK_ENABLE_MASK 0x00001000L
+#define PA_SU_SC_MODE_CNTL__POLY_OFFSET_BACK_ENABLE 0x00001000L
+#define PA_SU_SC_MODE_CNTL__POLY_OFFSET_PARA_ENABLE_MASK 0x00002000L
+#define PA_SU_SC_MODE_CNTL__POLY_OFFSET_PARA_ENABLE 0x00002000L
+#define PA_SU_SC_MODE_CNTL__MSAA_ENABLE_MASK 0x00008000L
+#define PA_SU_SC_MODE_CNTL__MSAA_ENABLE 0x00008000L
+#define PA_SU_SC_MODE_CNTL__VTX_WINDOW_OFFSET_ENABLE_MASK 0x00010000L
+#define PA_SU_SC_MODE_CNTL__VTX_WINDOW_OFFSET_ENABLE 0x00010000L
+#define PA_SU_SC_MODE_CNTL__LINE_STIPPLE_ENABLE_MASK 0x00040000L
+#define PA_SU_SC_MODE_CNTL__LINE_STIPPLE_ENABLE 0x00040000L
+#define PA_SU_SC_MODE_CNTL__PROVOKING_VTX_LAST_MASK 0x00080000L
+#define PA_SU_SC_MODE_CNTL__PROVOKING_VTX_LAST 0x00080000L
+#define PA_SU_SC_MODE_CNTL__PERSP_CORR_DIS_MASK 0x00100000L
+#define PA_SU_SC_MODE_CNTL__PERSP_CORR_DIS 0x00100000L
+#define PA_SU_SC_MODE_CNTL__MULTI_PRIM_IB_ENA_MASK 0x00200000L
+#define PA_SU_SC_MODE_CNTL__MULTI_PRIM_IB_ENA 0x00200000L
+#define PA_SU_SC_MODE_CNTL__QUAD_ORDER_ENABLE_MASK 0x00800000L
+#define PA_SU_SC_MODE_CNTL__QUAD_ORDER_ENABLE 0x00800000L
+#define PA_SU_SC_MODE_CNTL__WAIT_RB_IDLE_ALL_TRI_MASK 0x02000000L
+#define PA_SU_SC_MODE_CNTL__WAIT_RB_IDLE_ALL_TRI 0x02000000L
+#define PA_SU_SC_MODE_CNTL__WAIT_RB_IDLE_FIRST_TRI_NEW_STATE_MASK 0x04000000L
+#define PA_SU_SC_MODE_CNTL__WAIT_RB_IDLE_FIRST_TRI_NEW_STATE 0x04000000L
+#define PA_SU_SC_MODE_CNTL__ZERO_AREA_FACENESS_MASK 0x20000000L
+#define PA_SU_SC_MODE_CNTL__ZERO_AREA_FACENESS 0x20000000L
+#define PA_SU_SC_MODE_CNTL__FACE_KILL_ENABLE_MASK 0x40000000L
+#define PA_SU_SC_MODE_CNTL__FACE_KILL_ENABLE 0x40000000L
+#define PA_SU_SC_MODE_CNTL__FACE_WRITE_ENABLE_MASK 0x80000000L
+#define PA_SU_SC_MODE_CNTL__FACE_WRITE_ENABLE 0x80000000L
+
+// PA_SU_POLY_OFFSET_FRONT_SCALE
+#define PA_SU_POLY_OFFSET_FRONT_SCALE__SCALE_MASK 0xffffffffL
+
+// PA_SU_POLY_OFFSET_FRONT_OFFSET
+#define PA_SU_POLY_OFFSET_FRONT_OFFSET__OFFSET_MASK 0xffffffffL
+
+// PA_SU_POLY_OFFSET_BACK_SCALE
+#define PA_SU_POLY_OFFSET_BACK_SCALE__SCALE_MASK 0xffffffffL
+
+// PA_SU_POLY_OFFSET_BACK_OFFSET
+#define PA_SU_POLY_OFFSET_BACK_OFFSET__OFFSET_MASK 0xffffffffL
+
+// PA_SU_PERFCOUNTER0_SELECT
+#define PA_SU_PERFCOUNTER0_SELECT__PERF_SEL_MASK 0x000000ffL
+
+// PA_SU_PERFCOUNTER1_SELECT
+#define PA_SU_PERFCOUNTER1_SELECT__PERF_SEL_MASK 0x000000ffL
+
+// PA_SU_PERFCOUNTER2_SELECT
+#define PA_SU_PERFCOUNTER2_SELECT__PERF_SEL_MASK 0x000000ffL
+
+// PA_SU_PERFCOUNTER3_SELECT
+#define PA_SU_PERFCOUNTER3_SELECT__PERF_SEL_MASK 0x000000ffL
+
+// PA_SU_PERFCOUNTER0_LOW
+#define PA_SU_PERFCOUNTER0_LOW__PERF_COUNT_MASK 0xffffffffL
+
+// PA_SU_PERFCOUNTER0_HI
+#define PA_SU_PERFCOUNTER0_HI__PERF_COUNT_MASK 0x0000ffffL
+
+// PA_SU_PERFCOUNTER1_LOW
+#define PA_SU_PERFCOUNTER1_LOW__PERF_COUNT_MASK 0xffffffffL
+
+// PA_SU_PERFCOUNTER1_HI
+#define PA_SU_PERFCOUNTER1_HI__PERF_COUNT_MASK 0x0000ffffL
+
+// PA_SU_PERFCOUNTER2_LOW
+#define PA_SU_PERFCOUNTER2_LOW__PERF_COUNT_MASK 0xffffffffL
+
+// PA_SU_PERFCOUNTER2_HI
+#define PA_SU_PERFCOUNTER2_HI__PERF_COUNT_MASK 0x0000ffffL
+
+// PA_SU_PERFCOUNTER3_LOW
+#define PA_SU_PERFCOUNTER3_LOW__PERF_COUNT_MASK 0xffffffffL
+
+// PA_SU_PERFCOUNTER3_HI
+#define PA_SU_PERFCOUNTER3_HI__PERF_COUNT_MASK 0x0000ffffL
+
+// PA_SC_WINDOW_OFFSET
+#define PA_SC_WINDOW_OFFSET__WINDOW_X_OFFSET_MASK 0x00007fffL
+#define PA_SC_WINDOW_OFFSET__WINDOW_Y_OFFSET_MASK 0x7fff0000L
+
+// PA_SC_AA_CONFIG
+#define PA_SC_AA_CONFIG__MSAA_NUM_SAMPLES_MASK 0x00000007L
+#define PA_SC_AA_CONFIG__MAX_SAMPLE_DIST_MASK 0x0001e000L
+
+// PA_SC_AA_MASK
+#define PA_SC_AA_MASK__AA_MASK_MASK 0x0000ffffL
+
+// PA_SC_LINE_STIPPLE
+#define PA_SC_LINE_STIPPLE__LINE_PATTERN_MASK 0x0000ffffL
+#define PA_SC_LINE_STIPPLE__REPEAT_COUNT_MASK 0x00ff0000L
+#define PA_SC_LINE_STIPPLE__PATTERN_BIT_ORDER_MASK 0x10000000L
+#define PA_SC_LINE_STIPPLE__PATTERN_BIT_ORDER 0x10000000L
+#define PA_SC_LINE_STIPPLE__AUTO_RESET_CNTL_MASK 0x60000000L
+
+// PA_SC_LINE_CNTL
+#define PA_SC_LINE_CNTL__BRES_CNTL_MASK 0x000000ffL
+#define PA_SC_LINE_CNTL__USE_BRES_CNTL_MASK 0x00000100L
+#define PA_SC_LINE_CNTL__USE_BRES_CNTL 0x00000100L
+#define PA_SC_LINE_CNTL__EXPAND_LINE_WIDTH_MASK 0x00000200L
+#define PA_SC_LINE_CNTL__EXPAND_LINE_WIDTH 0x00000200L
+#define PA_SC_LINE_CNTL__LAST_PIXEL_MASK 0x00000400L
+#define PA_SC_LINE_CNTL__LAST_PIXEL 0x00000400L
+
+// PA_SC_WINDOW_SCISSOR_TL
+#define PA_SC_WINDOW_SCISSOR_TL__TL_X_MASK 0x00003fffL
+#define PA_SC_WINDOW_SCISSOR_TL__TL_Y_MASK 0x3fff0000L
+#define PA_SC_WINDOW_SCISSOR_TL__WINDOW_OFFSET_DISABLE_MASK 0x80000000L
+#define PA_SC_WINDOW_SCISSOR_TL__WINDOW_OFFSET_DISABLE 0x80000000L
+
+// PA_SC_WINDOW_SCISSOR_BR
+#define PA_SC_WINDOW_SCISSOR_BR__BR_X_MASK 0x00003fffL
+#define PA_SC_WINDOW_SCISSOR_BR__BR_Y_MASK 0x3fff0000L
+
+// PA_SC_SCREEN_SCISSOR_TL
+#define PA_SC_SCREEN_SCISSOR_TL__TL_X_MASK 0x00007fffL
+#define PA_SC_SCREEN_SCISSOR_TL__TL_Y_MASK 0x7fff0000L
+
+// PA_SC_SCREEN_SCISSOR_BR
+#define PA_SC_SCREEN_SCISSOR_BR__BR_X_MASK 0x00007fffL
+#define PA_SC_SCREEN_SCISSOR_BR__BR_Y_MASK 0x7fff0000L
+
+// PA_SC_VIZ_QUERY
+#define PA_SC_VIZ_QUERY__VIZ_QUERY_ENA_MASK 0x00000001L
+#define PA_SC_VIZ_QUERY__VIZ_QUERY_ENA 0x00000001L
+#define PA_SC_VIZ_QUERY__VIZ_QUERY_ID_MASK 0x0000003eL
+#define PA_SC_VIZ_QUERY__KILL_PIX_POST_EARLY_Z_MASK 0x00000080L
+#define PA_SC_VIZ_QUERY__KILL_PIX_POST_EARLY_Z 0x00000080L
+
+// PA_SC_VIZ_QUERY_STATUS
+#define PA_SC_VIZ_QUERY_STATUS__STATUS_BITS_MASK 0xffffffffL
+
+// PA_SC_LINE_STIPPLE_STATE
+#define PA_SC_LINE_STIPPLE_STATE__CURRENT_PTR_MASK 0x0000000fL
+#define PA_SC_LINE_STIPPLE_STATE__CURRENT_COUNT_MASK 0x0000ff00L
+
+// PA_SC_PERFCOUNTER0_SELECT
+#define PA_SC_PERFCOUNTER0_SELECT__PERF_SEL_MASK 0x000000ffL
+
+// PA_SC_PERFCOUNTER0_LOW
+#define PA_SC_PERFCOUNTER0_LOW__PERF_COUNT_MASK 0xffffffffL
+
+// PA_SC_PERFCOUNTER0_HI
+#define PA_SC_PERFCOUNTER0_HI__PERF_COUNT_MASK 0x0000ffffL
+
+// PA_CL_CNTL_STATUS
+#define PA_CL_CNTL_STATUS__CL_BUSY_MASK 0x80000000L
+#define PA_CL_CNTL_STATUS__CL_BUSY 0x80000000L
+
+// PA_SU_CNTL_STATUS
+#define PA_SU_CNTL_STATUS__SU_BUSY_MASK 0x80000000L
+#define PA_SU_CNTL_STATUS__SU_BUSY 0x80000000L
+
+// PA_SC_CNTL_STATUS
+#define PA_SC_CNTL_STATUS__SC_BUSY_MASK 0x80000000L
+#define PA_SC_CNTL_STATUS__SC_BUSY 0x80000000L
+
+// PA_SU_DEBUG_CNTL
+#define PA_SU_DEBUG_CNTL__SU_DEBUG_INDX_MASK 0x0000001fL
+
+// PA_SU_DEBUG_DATA
+#define PA_SU_DEBUG_DATA__DATA_MASK 0xffffffffL
+
+// CLIPPER_DEBUG_REG00
+#define CLIPPER_DEBUG_REG00__clip_ga_bc_fifo_write_MASK 0x00000001L
+#define CLIPPER_DEBUG_REG00__clip_ga_bc_fifo_write 0x00000001L
+#define CLIPPER_DEBUG_REG00__clip_ga_bc_fifo_full_MASK 0x00000002L
+#define CLIPPER_DEBUG_REG00__clip_ga_bc_fifo_full 0x00000002L
+#define CLIPPER_DEBUG_REG00__clip_to_ga_fifo_write_MASK 0x00000004L
+#define CLIPPER_DEBUG_REG00__clip_to_ga_fifo_write 0x00000004L
+#define CLIPPER_DEBUG_REG00__clip_to_ga_fifo_full_MASK 0x00000008L
+#define CLIPPER_DEBUG_REG00__clip_to_ga_fifo_full 0x00000008L
+#define CLIPPER_DEBUG_REG00__primic_to_clprim_fifo_empty_MASK 0x00000010L
+#define CLIPPER_DEBUG_REG00__primic_to_clprim_fifo_empty 0x00000010L
+#define CLIPPER_DEBUG_REG00__primic_to_clprim_fifo_full_MASK 0x00000020L
+#define CLIPPER_DEBUG_REG00__primic_to_clprim_fifo_full 0x00000020L
+#define CLIPPER_DEBUG_REG00__clip_to_outsm_fifo_empty_MASK 0x00000040L
+#define CLIPPER_DEBUG_REG00__clip_to_outsm_fifo_empty 0x00000040L
+#define CLIPPER_DEBUG_REG00__clip_to_outsm_fifo_full_MASK 0x00000080L
+#define CLIPPER_DEBUG_REG00__clip_to_outsm_fifo_full 0x00000080L
+#define CLIPPER_DEBUG_REG00__vgt_to_clipp_fifo_empty_MASK 0x00000100L
+#define CLIPPER_DEBUG_REG00__vgt_to_clipp_fifo_empty 0x00000100L
+#define CLIPPER_DEBUG_REG00__vgt_to_clipp_fifo_full_MASK 0x00000200L
+#define CLIPPER_DEBUG_REG00__vgt_to_clipp_fifo_full 0x00000200L
+#define CLIPPER_DEBUG_REG00__vgt_to_clips_fifo_empty_MASK 0x00000400L
+#define CLIPPER_DEBUG_REG00__vgt_to_clips_fifo_empty 0x00000400L
+#define CLIPPER_DEBUG_REG00__vgt_to_clips_fifo_full_MASK 0x00000800L
+#define CLIPPER_DEBUG_REG00__vgt_to_clips_fifo_full 0x00000800L
+#define CLIPPER_DEBUG_REG00__clipcode_fifo_fifo_empty_MASK 0x00001000L
+#define CLIPPER_DEBUG_REG00__clipcode_fifo_fifo_empty 0x00001000L
+#define CLIPPER_DEBUG_REG00__clipcode_fifo_full_MASK 0x00002000L
+#define CLIPPER_DEBUG_REG00__clipcode_fifo_full 0x00002000L
+#define CLIPPER_DEBUG_REG00__vte_out_clip_fifo_fifo_empty_MASK 0x00004000L
+#define CLIPPER_DEBUG_REG00__vte_out_clip_fifo_fifo_empty 0x00004000L
+#define CLIPPER_DEBUG_REG00__vte_out_clip_fifo_fifo_full_MASK 0x00008000L
+#define CLIPPER_DEBUG_REG00__vte_out_clip_fifo_fifo_full 0x00008000L
+#define CLIPPER_DEBUG_REG00__vte_out_orig_fifo_fifo_empty_MASK 0x00010000L
+#define CLIPPER_DEBUG_REG00__vte_out_orig_fifo_fifo_empty 0x00010000L
+#define CLIPPER_DEBUG_REG00__vte_out_orig_fifo_fifo_full_MASK 0x00020000L
+#define CLIPPER_DEBUG_REG00__vte_out_orig_fifo_fifo_full 0x00020000L
+#define CLIPPER_DEBUG_REG00__ccgen_to_clipcc_fifo_empty_MASK 0x00040000L
+#define CLIPPER_DEBUG_REG00__ccgen_to_clipcc_fifo_empty 0x00040000L
+#define CLIPPER_DEBUG_REG00__ccgen_to_clipcc_fifo_full_MASK 0x00080000L
+#define CLIPPER_DEBUG_REG00__ccgen_to_clipcc_fifo_full 0x00080000L
+#define CLIPPER_DEBUG_REG00__ALWAYS_ZERO_MASK 0xfff00000L
+
+// CLIPPER_DEBUG_REG01
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_end_of_packet_MASK 0x00000001L
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_end_of_packet 0x00000001L
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_first_prim_of_slot_MASK 0x00000002L
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_first_prim_of_slot 0x00000002L
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_deallocate_slot_MASK 0x0000001cL
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_clipped_prim_MASK 0x00000020L
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_clipped_prim 0x00000020L
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_null_primitive_MASK 0x00000040L
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_null_primitive 0x00000040L
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_vertex_store_indx_2_MASK 0x00000780L
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_vertex_store_indx_1_MASK 0x00007800L
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_vertex_store_indx_0_MASK 0x00078000L
+#define CLIPPER_DEBUG_REG01__clip_vert_vte_valid_MASK 0x00380000L
+#define CLIPPER_DEBUG_REG01__vte_out_clip_rd_vertex_store_indx_MASK 0x00c00000L
+#define CLIPPER_DEBUG_REG01__ALWAYS_ZERO_MASK 0xff000000L
+
+// CLIPPER_DEBUG_REG02
+#define CLIPPER_DEBUG_REG02__ALWAYS_ZERO1_MASK 0x001fffffL
+#define CLIPPER_DEBUG_REG02__clipsm0_clip_to_clipga_clip_to_outsm_cnt_MASK 0x00e00000L
+#define CLIPPER_DEBUG_REG02__ALWAYS_ZERO0_MASK 0x7f000000L
+#define CLIPPER_DEBUG_REG02__clipsm0_clprim_to_clip_prim_valid_MASK 0x80000000L
+#define CLIPPER_DEBUG_REG02__clipsm0_clprim_to_clip_prim_valid 0x80000000L
+
+// CLIPPER_DEBUG_REG03
+#define CLIPPER_DEBUG_REG03__ALWAYS_ZERO3_MASK 0x00000007L
+#define CLIPPER_DEBUG_REG03__clipsm0_clprim_to_clip_clip_primitive_MASK 0x00000008L
+#define CLIPPER_DEBUG_REG03__clipsm0_clprim_to_clip_clip_primitive 0x00000008L
+#define CLIPPER_DEBUG_REG03__ALWAYS_ZERO2_MASK 0x00000070L
+#define CLIPPER_DEBUG_REG03__clipsm0_clprim_to_clip_null_primitive_MASK 0x00000080L
+#define CLIPPER_DEBUG_REG03__clipsm0_clprim_to_clip_null_primitive 0x00000080L
+#define CLIPPER_DEBUG_REG03__ALWAYS_ZERO1_MASK 0x000fff00L
+#define CLIPPER_DEBUG_REG03__clipsm0_clprim_to_clip_clip_code_or_MASK 0x03f00000L
+#define CLIPPER_DEBUG_REG03__ALWAYS_ZERO0_MASK 0xfc000000L
+
+// CLIPPER_DEBUG_REG04
+#define CLIPPER_DEBUG_REG04__ALWAYS_ZERO2_MASK 0x00000007L
+#define CLIPPER_DEBUG_REG04__clipsm0_clprim_to_clip_first_prim_of_slot_MASK 0x00000008L
+#define CLIPPER_DEBUG_REG04__clipsm0_clprim_to_clip_first_prim_of_slot 0x00000008L
+#define CLIPPER_DEBUG_REG04__ALWAYS_ZERO1_MASK 0x00000070L
+#define CLIPPER_DEBUG_REG04__clipsm0_clprim_to_clip_event_MASK 0x00000080L
+#define CLIPPER_DEBUG_REG04__clipsm0_clprim_to_clip_event 0x00000080L
+#define CLIPPER_DEBUG_REG04__ALWAYS_ZERO0_MASK 0xffffff00L
+
+// CLIPPER_DEBUG_REG05
+#define CLIPPER_DEBUG_REG05__clipsm0_clprim_to_clip_state_var_indx_MASK 0x00000001L
+#define CLIPPER_DEBUG_REG05__clipsm0_clprim_to_clip_state_var_indx 0x00000001L
+#define CLIPPER_DEBUG_REG05__ALWAYS_ZERO3_MASK 0x00000006L
+#define CLIPPER_DEBUG_REG05__clipsm0_clprim_to_clip_deallocate_slot_MASK 0x00000038L
+#define CLIPPER_DEBUG_REG05__clipsm0_clprim_to_clip_event_id_MASK 0x00000fc0L
+#define CLIPPER_DEBUG_REG05__clipsm0_clprim_to_clip_vertex_store_indx_2_MASK 0x0000f000L
+#define CLIPPER_DEBUG_REG05__ALWAYS_ZERO2_MASK 0x00030000L
+#define CLIPPER_DEBUG_REG05__clipsm0_clprim_to_clip_vertex_store_indx_1_MASK 0x003c0000L
+#define CLIPPER_DEBUG_REG05__ALWAYS_ZERO1_MASK 0x00c00000L
+#define CLIPPER_DEBUG_REG05__clipsm0_clprim_to_clip_vertex_store_indx_0_MASK 0x0f000000L
+#define CLIPPER_DEBUG_REG05__ALWAYS_ZERO0_MASK 0xf0000000L
+
+// CLIPPER_DEBUG_REG09
+#define CLIPPER_DEBUG_REG09__clprim_in_back_event_MASK 0x00000001L
+#define CLIPPER_DEBUG_REG09__clprim_in_back_event 0x00000001L
+#define CLIPPER_DEBUG_REG09__outputclprimtoclip_null_primitive_MASK 0x00000002L
+#define CLIPPER_DEBUG_REG09__outputclprimtoclip_null_primitive 0x00000002L
+#define CLIPPER_DEBUG_REG09__clprim_in_back_vertex_store_indx_2_MASK 0x0000003cL
+#define CLIPPER_DEBUG_REG09__ALWAYS_ZERO2_MASK 0x000000c0L
+#define CLIPPER_DEBUG_REG09__clprim_in_back_vertex_store_indx_1_MASK 0x00000f00L
+#define CLIPPER_DEBUG_REG09__ALWAYS_ZERO1_MASK 0x00003000L
+#define CLIPPER_DEBUG_REG09__clprim_in_back_vertex_store_indx_0_MASK 0x0003c000L
+#define CLIPPER_DEBUG_REG09__ALWAYS_ZERO0_MASK 0x000c0000L
+#define CLIPPER_DEBUG_REG09__prim_back_valid_MASK 0x00100000L
+#define CLIPPER_DEBUG_REG09__prim_back_valid 0x00100000L
+#define CLIPPER_DEBUG_REG09__clip_priority_seq_indx_out_cnt_MASK 0x01e00000L
+#define CLIPPER_DEBUG_REG09__outsm_clr_rd_orig_vertices_MASK 0x06000000L
+#define CLIPPER_DEBUG_REG09__outsm_clr_rd_clipsm_wait_MASK 0x08000000L
+#define CLIPPER_DEBUG_REG09__outsm_clr_rd_clipsm_wait 0x08000000L
+#define CLIPPER_DEBUG_REG09__outsm_clr_fifo_empty_MASK 0x10000000L
+#define CLIPPER_DEBUG_REG09__outsm_clr_fifo_empty 0x10000000L
+#define CLIPPER_DEBUG_REG09__outsm_clr_fifo_full_MASK 0x20000000L
+#define CLIPPER_DEBUG_REG09__outsm_clr_fifo_full 0x20000000L
+#define CLIPPER_DEBUG_REG09__clip_priority_seq_indx_load_MASK 0xc0000000L
+
+// CLIPPER_DEBUG_REG10
+#define CLIPPER_DEBUG_REG10__primic_to_clprim_fifo_vertex_store_indx_2_MASK 0x0000000fL
+#define CLIPPER_DEBUG_REG10__ALWAYS_ZERO3_MASK 0x00000030L
+#define CLIPPER_DEBUG_REG10__primic_to_clprim_fifo_vertex_store_indx_1_MASK 0x000003c0L
+#define CLIPPER_DEBUG_REG10__ALWAYS_ZERO2_MASK 0x00000c00L
+#define CLIPPER_DEBUG_REG10__primic_to_clprim_fifo_vertex_store_indx_0_MASK 0x0000f000L
+#define CLIPPER_DEBUG_REG10__ALWAYS_ZERO1_MASK 0x00030000L
+#define CLIPPER_DEBUG_REG10__clprim_in_back_state_var_indx_MASK 0x00040000L
+#define CLIPPER_DEBUG_REG10__clprim_in_back_state_var_indx 0x00040000L
+#define CLIPPER_DEBUG_REG10__ALWAYS_ZERO0_MASK 0x00180000L
+#define CLIPPER_DEBUG_REG10__clprim_in_back_end_of_packet_MASK 0x00200000L
+#define CLIPPER_DEBUG_REG10__clprim_in_back_end_of_packet 0x00200000L
+#define CLIPPER_DEBUG_REG10__clprim_in_back_first_prim_of_slot_MASK 0x00400000L
+#define CLIPPER_DEBUG_REG10__clprim_in_back_first_prim_of_slot 0x00400000L
+#define CLIPPER_DEBUG_REG10__clprim_in_back_deallocate_slot_MASK 0x03800000L
+#define CLIPPER_DEBUG_REG10__clprim_in_back_event_id_MASK 0xfc000000L
+
+// CLIPPER_DEBUG_REG11
+#define CLIPPER_DEBUG_REG11__vertval_bits_vertex_vertex_store_msb_MASK 0x0000000fL
+#define CLIPPER_DEBUG_REG11__ALWAYS_ZERO_MASK 0xfffffff0L
+
+// CLIPPER_DEBUG_REG12
+#define CLIPPER_DEBUG_REG12__clip_priority_available_vte_out_clip_MASK 0x00000003L
+#define CLIPPER_DEBUG_REG12__ALWAYS_ZERO2_MASK 0x0000001cL
+#define CLIPPER_DEBUG_REG12__clip_vertex_fifo_empty_MASK 0x00000020L
+#define CLIPPER_DEBUG_REG12__clip_vertex_fifo_empty 0x00000020L
+#define CLIPPER_DEBUG_REG12__clip_priority_available_clip_verts_MASK 0x000007c0L
+#define CLIPPER_DEBUG_REG12__ALWAYS_ZERO1_MASK 0x00007800L
+#define CLIPPER_DEBUG_REG12__vertval_bits_vertex_cc_next_valid_MASK 0x00078000L
+#define CLIPPER_DEBUG_REG12__clipcc_vertex_store_indx_MASK 0x00180000L
+#define CLIPPER_DEBUG_REG12__primic_to_clprim_valid_MASK 0x00200000L
+#define CLIPPER_DEBUG_REG12__primic_to_clprim_valid 0x00200000L
+#define CLIPPER_DEBUG_REG12__ALWAYS_ZERO0_MASK 0xffc00000L
+
+// CLIPPER_DEBUG_REG13
+#define CLIPPER_DEBUG_REG13__sm0_clip_vert_cnt_MASK 0x0000000fL
+#define CLIPPER_DEBUG_REG13__sm0_prim_end_state_MASK 0x000007f0L
+#define CLIPPER_DEBUG_REG13__ALWAYS_ZERO1_MASK 0x00003800L
+#define CLIPPER_DEBUG_REG13__sm0_vertex_clip_cnt_MASK 0x0003c000L
+#define CLIPPER_DEBUG_REG13__sm0_inv_to_clip_data_valid_1_MASK 0x00040000L
+#define CLIPPER_DEBUG_REG13__sm0_inv_to_clip_data_valid_1 0x00040000L
+#define CLIPPER_DEBUG_REG13__sm0_inv_to_clip_data_valid_0_MASK 0x00080000L
+#define CLIPPER_DEBUG_REG13__sm0_inv_to_clip_data_valid_0 0x00080000L
+#define CLIPPER_DEBUG_REG13__sm0_current_state_MASK 0x07f00000L
+#define CLIPPER_DEBUG_REG13__ALWAYS_ZERO0_MASK 0xf8000000L
+
+// SXIFCCG_DEBUG_REG0
+#define SXIFCCG_DEBUG_REG0__nan_kill_flag_MASK 0x0000000fL
+#define SXIFCCG_DEBUG_REG0__position_address_MASK 0x00000070L
+#define SXIFCCG_DEBUG_REG0__ALWAYS_ZERO2_MASK 0x00000380L
+#define SXIFCCG_DEBUG_REG0__point_address_MASK 0x00001c00L
+#define SXIFCCG_DEBUG_REG0__ALWAYS_ZERO1_MASK 0x0000e000L
+#define SXIFCCG_DEBUG_REG0__sx_pending_rd_state_var_indx_MASK 0x00010000L
+#define SXIFCCG_DEBUG_REG0__sx_pending_rd_state_var_indx 0x00010000L
+#define SXIFCCG_DEBUG_REG0__ALWAYS_ZERO0_MASK 0x00060000L
+#define SXIFCCG_DEBUG_REG0__sx_pending_rd_req_mask_MASK 0x00780000L
+#define SXIFCCG_DEBUG_REG0__sx_pending_rd_pci_MASK 0x3f800000L
+#define SXIFCCG_DEBUG_REG0__sx_pending_rd_aux_inc_MASK 0x40000000L
+#define SXIFCCG_DEBUG_REG0__sx_pending_rd_aux_inc 0x40000000L
+#define SXIFCCG_DEBUG_REG0__sx_pending_rd_aux_sel_MASK 0x80000000L
+#define SXIFCCG_DEBUG_REG0__sx_pending_rd_aux_sel 0x80000000L
+
+// SXIFCCG_DEBUG_REG1
+#define SXIFCCG_DEBUG_REG1__ALWAYS_ZERO3_MASK 0x00000003L
+#define SXIFCCG_DEBUG_REG1__sx_to_pa_empty_MASK 0x0000000cL
+#define SXIFCCG_DEBUG_REG1__available_positions_MASK 0x00000070L
+#define SXIFCCG_DEBUG_REG1__ALWAYS_ZERO2_MASK 0x00000780L
+#define SXIFCCG_DEBUG_REG1__sx_pending_advance_MASK 0x00000800L
+#define SXIFCCG_DEBUG_REG1__sx_pending_advance 0x00000800L
+#define SXIFCCG_DEBUG_REG1__sx_receive_indx_MASK 0x00007000L
+#define SXIFCCG_DEBUG_REG1__statevar_bits_sxpa_aux_vector_MASK 0x00008000L
+#define SXIFCCG_DEBUG_REG1__statevar_bits_sxpa_aux_vector 0x00008000L
+#define SXIFCCG_DEBUG_REG1__ALWAYS_ZERO1_MASK 0x000f0000L
+#define SXIFCCG_DEBUG_REG1__aux_sel_MASK 0x00100000L
+#define SXIFCCG_DEBUG_REG1__aux_sel 0x00100000L
+#define SXIFCCG_DEBUG_REG1__ALWAYS_ZERO0_MASK 0x00600000L
+#define SXIFCCG_DEBUG_REG1__pasx_req_cnt_MASK 0x01800000L
+#define SXIFCCG_DEBUG_REG1__param_cache_base_MASK 0xfe000000L
+
+// SXIFCCG_DEBUG_REG2
+#define SXIFCCG_DEBUG_REG2__sx_sent_MASK 0x00000001L
+#define SXIFCCG_DEBUG_REG2__sx_sent 0x00000001L
+#define SXIFCCG_DEBUG_REG2__ALWAYS_ZERO3_MASK 0x00000002L
+#define SXIFCCG_DEBUG_REG2__ALWAYS_ZERO3 0x00000002L
+#define SXIFCCG_DEBUG_REG2__sx_aux_MASK 0x00000004L
+#define SXIFCCG_DEBUG_REG2__sx_aux 0x00000004L
+#define SXIFCCG_DEBUG_REG2__sx_request_indx_MASK 0x000001f8L
+#define SXIFCCG_DEBUG_REG2__req_active_verts_MASK 0x0000fe00L
+#define SXIFCCG_DEBUG_REG2__ALWAYS_ZERO2_MASK 0x00010000L
+#define SXIFCCG_DEBUG_REG2__ALWAYS_ZERO2 0x00010000L
+#define SXIFCCG_DEBUG_REG2__vgt_to_ccgen_state_var_indx_MASK 0x00020000L
+#define SXIFCCG_DEBUG_REG2__vgt_to_ccgen_state_var_indx 0x00020000L
+#define SXIFCCG_DEBUG_REG2__ALWAYS_ZERO1_MASK 0x000c0000L
+#define SXIFCCG_DEBUG_REG2__vgt_to_ccgen_active_verts_MASK 0x00300000L
+#define SXIFCCG_DEBUG_REG2__ALWAYS_ZERO0_MASK 0x03c00000L
+#define SXIFCCG_DEBUG_REG2__req_active_verts_loaded_MASK 0x04000000L
+#define SXIFCCG_DEBUG_REG2__req_active_verts_loaded 0x04000000L
+#define SXIFCCG_DEBUG_REG2__sx_pending_fifo_empty_MASK 0x08000000L
+#define SXIFCCG_DEBUG_REG2__sx_pending_fifo_empty 0x08000000L
+#define SXIFCCG_DEBUG_REG2__sx_pending_fifo_full_MASK 0x10000000L
+#define SXIFCCG_DEBUG_REG2__sx_pending_fifo_full 0x10000000L
+#define SXIFCCG_DEBUG_REG2__sx_pending_fifo_contents_MASK 0xe0000000L
+
+// SXIFCCG_DEBUG_REG3
+#define SXIFCCG_DEBUG_REG3__vertex_fifo_entriesavailable_MASK 0x0000000fL
+#define SXIFCCG_DEBUG_REG3__ALWAYS_ZERO3_MASK 0x00000010L
+#define SXIFCCG_DEBUG_REG3__ALWAYS_ZERO3 0x00000010L
+#define SXIFCCG_DEBUG_REG3__available_positions_MASK 0x000000e0L
+#define SXIFCCG_DEBUG_REG3__ALWAYS_ZERO2_MASK 0x00000f00L
+#define SXIFCCG_DEBUG_REG3__current_state_MASK 0x00003000L
+#define SXIFCCG_DEBUG_REG3__vertex_fifo_empty_MASK 0x00004000L
+#define SXIFCCG_DEBUG_REG3__vertex_fifo_empty 0x00004000L
+#define SXIFCCG_DEBUG_REG3__vertex_fifo_full_MASK 0x00008000L
+#define SXIFCCG_DEBUG_REG3__vertex_fifo_full 0x00008000L
+#define SXIFCCG_DEBUG_REG3__ALWAYS_ZERO1_MASK 0x00030000L
+#define SXIFCCG_DEBUG_REG3__sx0_receive_fifo_empty_MASK 0x00040000L
+#define SXIFCCG_DEBUG_REG3__sx0_receive_fifo_empty 0x00040000L
+#define SXIFCCG_DEBUG_REG3__sx0_receive_fifo_full_MASK 0x00080000L
+#define SXIFCCG_DEBUG_REG3__sx0_receive_fifo_full 0x00080000L
+#define SXIFCCG_DEBUG_REG3__vgt_to_ccgen_fifo_empty_MASK 0x00100000L
+#define SXIFCCG_DEBUG_REG3__vgt_to_ccgen_fifo_empty 0x00100000L
+#define SXIFCCG_DEBUG_REG3__vgt_to_ccgen_fifo_full_MASK 0x00200000L
+#define SXIFCCG_DEBUG_REG3__vgt_to_ccgen_fifo_full 0x00200000L
+#define SXIFCCG_DEBUG_REG3__ALWAYS_ZERO0_MASK 0xffc00000L
+
+// SETUP_DEBUG_REG0
+#define SETUP_DEBUG_REG0__su_cntl_state_MASK 0x0000001fL
+#define SETUP_DEBUG_REG0__pmode_state_MASK 0x000007e0L
+#define SETUP_DEBUG_REG0__ge_stallb_MASK 0x00000800L
+#define SETUP_DEBUG_REG0__ge_stallb 0x00000800L
+#define SETUP_DEBUG_REG0__geom_enable_MASK 0x00001000L
+#define SETUP_DEBUG_REG0__geom_enable 0x00001000L
+#define SETUP_DEBUG_REG0__su_clip_baryc_rtr_MASK 0x00002000L
+#define SETUP_DEBUG_REG0__su_clip_baryc_rtr 0x00002000L
+#define SETUP_DEBUG_REG0__su_clip_rtr_MASK 0x00004000L
+#define SETUP_DEBUG_REG0__su_clip_rtr 0x00004000L
+#define SETUP_DEBUG_REG0__pfifo_busy_MASK 0x00008000L
+#define SETUP_DEBUG_REG0__pfifo_busy 0x00008000L
+#define SETUP_DEBUG_REG0__su_cntl_busy_MASK 0x00010000L
+#define SETUP_DEBUG_REG0__su_cntl_busy 0x00010000L
+#define SETUP_DEBUG_REG0__geom_busy_MASK 0x00020000L
+#define SETUP_DEBUG_REG0__geom_busy 0x00020000L
+
+// SETUP_DEBUG_REG1
+#define SETUP_DEBUG_REG1__y_sort0_gated_17_4_MASK 0x00003fffL
+#define SETUP_DEBUG_REG1__x_sort0_gated_17_4_MASK 0x0fffc000L
+
+// SETUP_DEBUG_REG2
+#define SETUP_DEBUG_REG2__y_sort1_gated_17_4_MASK 0x00003fffL
+#define SETUP_DEBUG_REG2__x_sort1_gated_17_4_MASK 0x0fffc000L
+
+// SETUP_DEBUG_REG3
+#define SETUP_DEBUG_REG3__y_sort2_gated_17_4_MASK 0x00003fffL
+#define SETUP_DEBUG_REG3__x_sort2_gated_17_4_MASK 0x0fffc000L
+
+// SETUP_DEBUG_REG4
+#define SETUP_DEBUG_REG4__attr_indx_sort0_gated_MASK 0x000007ffL
+#define SETUP_DEBUG_REG4__null_prim_gated_MASK 0x00000800L
+#define SETUP_DEBUG_REG4__null_prim_gated 0x00000800L
+#define SETUP_DEBUG_REG4__backfacing_gated_MASK 0x00001000L
+#define SETUP_DEBUG_REG4__backfacing_gated 0x00001000L
+#define SETUP_DEBUG_REG4__st_indx_gated_MASK 0x0000e000L
+#define SETUP_DEBUG_REG4__clipped_gated_MASK 0x00010000L
+#define SETUP_DEBUG_REG4__clipped_gated 0x00010000L
+#define SETUP_DEBUG_REG4__dealloc_slot_gated_MASK 0x000e0000L
+#define SETUP_DEBUG_REG4__xmajor_gated_MASK 0x00100000L
+#define SETUP_DEBUG_REG4__xmajor_gated 0x00100000L
+#define SETUP_DEBUG_REG4__diamond_rule_gated_MASK 0x00600000L
+#define SETUP_DEBUG_REG4__type_gated_MASK 0x03800000L
+#define SETUP_DEBUG_REG4__fpov_gated_MASK 0x04000000L
+#define SETUP_DEBUG_REG4__fpov_gated 0x04000000L
+#define SETUP_DEBUG_REG4__pmode_prim_gated_MASK 0x08000000L
+#define SETUP_DEBUG_REG4__pmode_prim_gated 0x08000000L
+#define SETUP_DEBUG_REG4__event_gated_MASK 0x10000000L
+#define SETUP_DEBUG_REG4__event_gated 0x10000000L
+#define SETUP_DEBUG_REG4__eop_gated_MASK 0x20000000L
+#define SETUP_DEBUG_REG4__eop_gated 0x20000000L
+
+// SETUP_DEBUG_REG5
+#define SETUP_DEBUG_REG5__attr_indx_sort2_gated_MASK 0x000007ffL
+#define SETUP_DEBUG_REG5__attr_indx_sort1_gated_MASK 0x003ff800L
+#define SETUP_DEBUG_REG5__provoking_vtx_gated_MASK 0x00c00000L
+#define SETUP_DEBUG_REG5__event_id_gated_MASK 0x1f000000L
+
+// PA_SC_DEBUG_CNTL
+#define PA_SC_DEBUG_CNTL__SC_DEBUG_INDX_MASK 0x0000001fL
+
+// PA_SC_DEBUG_DATA
+#define PA_SC_DEBUG_DATA__DATA_MASK 0xffffffffL
+
+// SC_DEBUG_0
+#define SC_DEBUG_0__pa_freeze_b1_MASK 0x00000001L
+#define SC_DEBUG_0__pa_freeze_b1 0x00000001L
+#define SC_DEBUG_0__pa_sc_valid_MASK 0x00000002L
+#define SC_DEBUG_0__pa_sc_valid 0x00000002L
+#define SC_DEBUG_0__pa_sc_phase_MASK 0x0000001cL
+#define SC_DEBUG_0__cntx_cnt_MASK 0x00000fe0L
+#define SC_DEBUG_0__decr_cntx_cnt_MASK 0x00001000L
+#define SC_DEBUG_0__decr_cntx_cnt 0x00001000L
+#define SC_DEBUG_0__incr_cntx_cnt_MASK 0x00002000L
+#define SC_DEBUG_0__incr_cntx_cnt 0x00002000L
+#define SC_DEBUG_0__trigger_MASK 0x80000000L
+#define SC_DEBUG_0__trigger 0x80000000L
+
+// SC_DEBUG_1
+#define SC_DEBUG_1__em_state_MASK 0x00000007L
+#define SC_DEBUG_1__em1_data_ready_MASK 0x00000008L
+#define SC_DEBUG_1__em1_data_ready 0x00000008L
+#define SC_DEBUG_1__em2_data_ready_MASK 0x00000010L
+#define SC_DEBUG_1__em2_data_ready 0x00000010L
+#define SC_DEBUG_1__move_em1_to_em2_MASK 0x00000020L
+#define SC_DEBUG_1__move_em1_to_em2 0x00000020L
+#define SC_DEBUG_1__ef_data_ready_MASK 0x00000040L
+#define SC_DEBUG_1__ef_data_ready 0x00000040L
+#define SC_DEBUG_1__ef_state_MASK 0x00000180L
+#define SC_DEBUG_1__pipe_valid_MASK 0x00000200L
+#define SC_DEBUG_1__pipe_valid 0x00000200L
+#define SC_DEBUG_1__trigger_MASK 0x80000000L
+#define SC_DEBUG_1__trigger 0x80000000L
+
+// SC_DEBUG_2
+#define SC_DEBUG_2__rc_rtr_dly_MASK 0x00000001L
+#define SC_DEBUG_2__rc_rtr_dly 0x00000001L
+#define SC_DEBUG_2__qmask_ff_alm_full_d1_MASK 0x00000002L
+#define SC_DEBUG_2__qmask_ff_alm_full_d1 0x00000002L
+#define SC_DEBUG_2__pipe_freeze_b_MASK 0x00000008L
+#define SC_DEBUG_2__pipe_freeze_b 0x00000008L
+#define SC_DEBUG_2__prim_rts_MASK 0x00000010L
+#define SC_DEBUG_2__prim_rts 0x00000010L
+#define SC_DEBUG_2__next_prim_rts_dly_MASK 0x00000020L
+#define SC_DEBUG_2__next_prim_rts_dly 0x00000020L
+#define SC_DEBUG_2__next_prim_rtr_dly_MASK 0x00000040L
+#define SC_DEBUG_2__next_prim_rtr_dly 0x00000040L
+#define SC_DEBUG_2__pre_stage1_rts_d1_MASK 0x00000080L
+#define SC_DEBUG_2__pre_stage1_rts_d1 0x00000080L
+#define SC_DEBUG_2__stage0_rts_MASK 0x00000100L
+#define SC_DEBUG_2__stage0_rts 0x00000100L
+#define SC_DEBUG_2__phase_rts_dly_MASK 0x00000200L
+#define SC_DEBUG_2__phase_rts_dly 0x00000200L
+#define SC_DEBUG_2__end_of_prim_s1_dly_MASK 0x00008000L
+#define SC_DEBUG_2__end_of_prim_s1_dly 0x00008000L
+#define SC_DEBUG_2__pass_empty_prim_s1_MASK 0x00010000L
+#define SC_DEBUG_2__pass_empty_prim_s1 0x00010000L
+#define SC_DEBUG_2__event_id_s1_MASK 0x003e0000L
+#define SC_DEBUG_2__event_s1_MASK 0x00400000L
+#define SC_DEBUG_2__event_s1 0x00400000L
+#define SC_DEBUG_2__trigger_MASK 0x80000000L
+#define SC_DEBUG_2__trigger 0x80000000L
+
+// SC_DEBUG_3
+#define SC_DEBUG_3__x_curr_s1_MASK 0x000007ffL
+#define SC_DEBUG_3__y_curr_s1_MASK 0x003ff800L
+#define SC_DEBUG_3__trigger_MASK 0x80000000L
+#define SC_DEBUG_3__trigger 0x80000000L
+
+// SC_DEBUG_4
+#define SC_DEBUG_4__y_end_s1_MASK 0x00003fffL
+#define SC_DEBUG_4__y_start_s1_MASK 0x0fffc000L
+#define SC_DEBUG_4__y_dir_s1_MASK 0x10000000L
+#define SC_DEBUG_4__y_dir_s1 0x10000000L
+#define SC_DEBUG_4__trigger_MASK 0x80000000L
+#define SC_DEBUG_4__trigger 0x80000000L
+
+// SC_DEBUG_5
+#define SC_DEBUG_5__x_end_s1_MASK 0x00003fffL
+#define SC_DEBUG_5__x_start_s1_MASK 0x0fffc000L
+#define SC_DEBUG_5__x_dir_s1_MASK 0x10000000L
+#define SC_DEBUG_5__x_dir_s1 0x10000000L
+#define SC_DEBUG_5__trigger_MASK 0x80000000L
+#define SC_DEBUG_5__trigger 0x80000000L
+
+// SC_DEBUG_6
+#define SC_DEBUG_6__z_ff_empty_MASK 0x00000001L
+#define SC_DEBUG_6__z_ff_empty 0x00000001L
+#define SC_DEBUG_6__qmcntl_ff_empty_MASK 0x00000002L
+#define SC_DEBUG_6__qmcntl_ff_empty 0x00000002L
+#define SC_DEBUG_6__xy_ff_empty_MASK 0x00000004L
+#define SC_DEBUG_6__xy_ff_empty 0x00000004L
+#define SC_DEBUG_6__event_flag_MASK 0x00000008L
+#define SC_DEBUG_6__event_flag 0x00000008L
+#define SC_DEBUG_6__z_mask_needed_MASK 0x00000010L
+#define SC_DEBUG_6__z_mask_needed 0x00000010L
+#define SC_DEBUG_6__state_MASK 0x000000e0L
+#define SC_DEBUG_6__state_delayed_MASK 0x00000700L
+#define SC_DEBUG_6__data_valid_MASK 0x00000800L
+#define SC_DEBUG_6__data_valid 0x00000800L
+#define SC_DEBUG_6__data_valid_d_MASK 0x00001000L
+#define SC_DEBUG_6__data_valid_d 0x00001000L
+#define SC_DEBUG_6__tilex_delayed_MASK 0x003fe000L
+#define SC_DEBUG_6__tiley_delayed_MASK 0x7fc00000L
+#define SC_DEBUG_6__trigger_MASK 0x80000000L
+#define SC_DEBUG_6__trigger 0x80000000L
+
+// SC_DEBUG_7
+#define SC_DEBUG_7__event_flag_MASK 0x00000001L
+#define SC_DEBUG_7__event_flag 0x00000001L
+#define SC_DEBUG_7__deallocate_MASK 0x0000000eL
+#define SC_DEBUG_7__fposition_MASK 0x00000010L
+#define SC_DEBUG_7__fposition 0x00000010L
+#define SC_DEBUG_7__sr_prim_we_MASK 0x00000020L
+#define SC_DEBUG_7__sr_prim_we 0x00000020L
+#define SC_DEBUG_7__last_tile_MASK 0x00000040L
+#define SC_DEBUG_7__last_tile 0x00000040L
+#define SC_DEBUG_7__tile_ff_we_MASK 0x00000080L
+#define SC_DEBUG_7__tile_ff_we 0x00000080L
+#define SC_DEBUG_7__qs_data_valid_MASK 0x00000100L
+#define SC_DEBUG_7__qs_data_valid 0x00000100L
+#define SC_DEBUG_7__qs_q0_y_MASK 0x00000600L
+#define SC_DEBUG_7__qs_q0_x_MASK 0x00001800L
+#define SC_DEBUG_7__qs_q0_valid_MASK 0x00002000L
+#define SC_DEBUG_7__qs_q0_valid 0x00002000L
+#define SC_DEBUG_7__prim_ff_we_MASK 0x00004000L
+#define SC_DEBUG_7__prim_ff_we 0x00004000L
+#define SC_DEBUG_7__tile_ff_re_MASK 0x00008000L
+#define SC_DEBUG_7__tile_ff_re 0x00008000L
+#define SC_DEBUG_7__fw_prim_data_valid_MASK 0x00010000L
+#define SC_DEBUG_7__fw_prim_data_valid 0x00010000L
+#define SC_DEBUG_7__last_quad_of_tile_MASK 0x00020000L
+#define SC_DEBUG_7__last_quad_of_tile 0x00020000L
+#define SC_DEBUG_7__first_quad_of_tile_MASK 0x00040000L
+#define SC_DEBUG_7__first_quad_of_tile 0x00040000L
+#define SC_DEBUG_7__first_quad_of_prim_MASK 0x00080000L
+#define SC_DEBUG_7__first_quad_of_prim 0x00080000L
+#define SC_DEBUG_7__new_prim_MASK 0x00100000L
+#define SC_DEBUG_7__new_prim 0x00100000L
+#define SC_DEBUG_7__load_new_tile_data_MASK 0x00200000L
+#define SC_DEBUG_7__load_new_tile_data 0x00200000L
+#define SC_DEBUG_7__state_MASK 0x00c00000L
+#define SC_DEBUG_7__fifos_ready_MASK 0x01000000L
+#define SC_DEBUG_7__fifos_ready 0x01000000L
+#define SC_DEBUG_7__trigger_MASK 0x80000000L
+#define SC_DEBUG_7__trigger 0x80000000L
+
+// SC_DEBUG_8
+#define SC_DEBUG_8__sample_last_MASK 0x00000001L
+#define SC_DEBUG_8__sample_last 0x00000001L
+#define SC_DEBUG_8__sample_mask_MASK 0x0000001eL
+#define SC_DEBUG_8__sample_y_MASK 0x00000060L
+#define SC_DEBUG_8__sample_x_MASK 0x00000180L
+#define SC_DEBUG_8__sample_send_MASK 0x00000200L
+#define SC_DEBUG_8__sample_send 0x00000200L
+#define SC_DEBUG_8__next_cycle_MASK 0x00000c00L
+#define SC_DEBUG_8__ez_sample_ff_full_MASK 0x00001000L
+#define SC_DEBUG_8__ez_sample_ff_full 0x00001000L
+#define SC_DEBUG_8__rb_sc_samp_rtr_MASK 0x00002000L
+#define SC_DEBUG_8__rb_sc_samp_rtr 0x00002000L
+#define SC_DEBUG_8__num_samples_MASK 0x0000c000L
+#define SC_DEBUG_8__last_quad_of_tile_MASK 0x00010000L
+#define SC_DEBUG_8__last_quad_of_tile 0x00010000L
+#define SC_DEBUG_8__last_quad_of_prim_MASK 0x00020000L
+#define SC_DEBUG_8__last_quad_of_prim 0x00020000L
+#define SC_DEBUG_8__first_quad_of_prim_MASK 0x00040000L
+#define SC_DEBUG_8__first_quad_of_prim 0x00040000L
+#define SC_DEBUG_8__sample_we_MASK 0x00080000L
+#define SC_DEBUG_8__sample_we 0x00080000L
+#define SC_DEBUG_8__fposition_MASK 0x00100000L
+#define SC_DEBUG_8__fposition 0x00100000L
+#define SC_DEBUG_8__event_id_MASK 0x03e00000L
+#define SC_DEBUG_8__event_flag_MASK 0x04000000L
+#define SC_DEBUG_8__event_flag 0x04000000L
+#define SC_DEBUG_8__fw_prim_data_valid_MASK 0x08000000L
+#define SC_DEBUG_8__fw_prim_data_valid 0x08000000L
+#define SC_DEBUG_8__trigger_MASK 0x80000000L
+#define SC_DEBUG_8__trigger 0x80000000L
+
+// SC_DEBUG_9
+#define SC_DEBUG_9__rb_sc_send_MASK 0x00000001L
+#define SC_DEBUG_9__rb_sc_send 0x00000001L
+#define SC_DEBUG_9__rb_sc_ez_mask_MASK 0x0000001eL
+#define SC_DEBUG_9__fifo_data_ready_MASK 0x00000020L
+#define SC_DEBUG_9__fifo_data_ready 0x00000020L
+#define SC_DEBUG_9__early_z_enable_MASK 0x00000040L
+#define SC_DEBUG_9__early_z_enable 0x00000040L
+#define SC_DEBUG_9__mask_state_MASK 0x00000180L
+#define SC_DEBUG_9__next_ez_mask_MASK 0x01fffe00L
+#define SC_DEBUG_9__mask_ready_MASK 0x02000000L
+#define SC_DEBUG_9__mask_ready 0x02000000L
+#define SC_DEBUG_9__drop_sample_MASK 0x04000000L
+#define SC_DEBUG_9__drop_sample 0x04000000L
+#define SC_DEBUG_9__fetch_new_sample_data_MASK 0x08000000L
+#define SC_DEBUG_9__fetch_new_sample_data 0x08000000L
+#define SC_DEBUG_9__fetch_new_ez_sample_mask_MASK 0x10000000L
+#define SC_DEBUG_9__fetch_new_ez_sample_mask 0x10000000L
+#define SC_DEBUG_9__pkr_fetch_new_sample_data_MASK 0x20000000L
+#define SC_DEBUG_9__pkr_fetch_new_sample_data 0x20000000L
+#define SC_DEBUG_9__pkr_fetch_new_prim_data_MASK 0x40000000L
+#define SC_DEBUG_9__pkr_fetch_new_prim_data 0x40000000L
+#define SC_DEBUG_9__trigger_MASK 0x80000000L
+#define SC_DEBUG_9__trigger 0x80000000L
+
+// SC_DEBUG_10
+#define SC_DEBUG_10__combined_sample_mask_MASK 0x0000ffffL
+#define SC_DEBUG_10__trigger_MASK 0x80000000L
+#define SC_DEBUG_10__trigger 0x80000000L
+
+// SC_DEBUG_11
+#define SC_DEBUG_11__ez_sample_data_ready_MASK 0x00000001L
+#define SC_DEBUG_11__ez_sample_data_ready 0x00000001L
+#define SC_DEBUG_11__pkr_fetch_new_sample_data_MASK 0x00000002L
+#define SC_DEBUG_11__pkr_fetch_new_sample_data 0x00000002L
+#define SC_DEBUG_11__ez_prim_data_ready_MASK 0x00000004L
+#define SC_DEBUG_11__ez_prim_data_ready 0x00000004L
+#define SC_DEBUG_11__pkr_fetch_new_prim_data_MASK 0x00000008L
+#define SC_DEBUG_11__pkr_fetch_new_prim_data 0x00000008L
+#define SC_DEBUG_11__iterator_input_fz_MASK 0x00000010L
+#define SC_DEBUG_11__iterator_input_fz 0x00000010L
+#define SC_DEBUG_11__packer_send_quads_MASK 0x00000020L
+#define SC_DEBUG_11__packer_send_quads 0x00000020L
+#define SC_DEBUG_11__packer_send_cmd_MASK 0x00000040L
+#define SC_DEBUG_11__packer_send_cmd 0x00000040L
+#define SC_DEBUG_11__packer_send_event_MASK 0x00000080L
+#define SC_DEBUG_11__packer_send_event 0x00000080L
+#define SC_DEBUG_11__next_state_MASK 0x00000700L
+#define SC_DEBUG_11__state_MASK 0x00003800L
+#define SC_DEBUG_11__stall_MASK 0x00004000L
+#define SC_DEBUG_11__stall 0x00004000L
+#define SC_DEBUG_11__trigger_MASK 0x80000000L
+#define SC_DEBUG_11__trigger 0x80000000L
+
+// SC_DEBUG_12
+#define SC_DEBUG_12__SQ_iterator_free_buff_MASK 0x00000001L
+#define SC_DEBUG_12__SQ_iterator_free_buff 0x00000001L
+#define SC_DEBUG_12__event_id_MASK 0x0000003eL
+#define SC_DEBUG_12__event_flag_MASK 0x00000040L
+#define SC_DEBUG_12__event_flag 0x00000040L
+#define SC_DEBUG_12__itercmdfifo_busy_nc_dly_MASK 0x00000080L
+#define SC_DEBUG_12__itercmdfifo_busy_nc_dly 0x00000080L
+#define SC_DEBUG_12__itercmdfifo_full_MASK 0x00000100L
+#define SC_DEBUG_12__itercmdfifo_full 0x00000100L
+#define SC_DEBUG_12__itercmdfifo_empty_MASK 0x00000200L
+#define SC_DEBUG_12__itercmdfifo_empty 0x00000200L
+#define SC_DEBUG_12__iter_ds_one_clk_command_MASK 0x00000400L
+#define SC_DEBUG_12__iter_ds_one_clk_command 0x00000400L
+#define SC_DEBUG_12__iter_ds_end_of_prim0_MASK 0x00000800L
+#define SC_DEBUG_12__iter_ds_end_of_prim0 0x00000800L
+#define SC_DEBUG_12__iter_ds_end_of_vector_MASK 0x00001000L
+#define SC_DEBUG_12__iter_ds_end_of_vector 0x00001000L
+#define SC_DEBUG_12__iter_qdhit0_MASK 0x00002000L
+#define SC_DEBUG_12__iter_qdhit0 0x00002000L
+#define SC_DEBUG_12__bc_use_centers_reg_MASK 0x00004000L
+#define SC_DEBUG_12__bc_use_centers_reg 0x00004000L
+#define SC_DEBUG_12__bc_output_xy_reg_MASK 0x00008000L
+#define SC_DEBUG_12__bc_output_xy_reg 0x00008000L
+#define SC_DEBUG_12__iter_phase_out_MASK 0x00030000L
+#define SC_DEBUG_12__iter_phase_reg_MASK 0x000c0000L
+#define SC_DEBUG_12__iterator_SP_valid_MASK 0x00100000L
+#define SC_DEBUG_12__iterator_SP_valid 0x00100000L
+#define SC_DEBUG_12__eopv_reg_MASK 0x00200000L
+#define SC_DEBUG_12__eopv_reg 0x00200000L
+#define SC_DEBUG_12__one_clk_cmd_reg_MASK 0x00400000L
+#define SC_DEBUG_12__one_clk_cmd_reg 0x00400000L
+#define SC_DEBUG_12__iter_dx_end_of_prim_MASK 0x00800000L
+#define SC_DEBUG_12__iter_dx_end_of_prim 0x00800000L
+#define SC_DEBUG_12__trigger_MASK 0x80000000L
+#define SC_DEBUG_12__trigger 0x80000000L
+
+// GFX_COPY_STATE
+#define GFX_COPY_STATE__SRC_STATE_ID_MASK 0x00000001L
+#define GFX_COPY_STATE__SRC_STATE_ID 0x00000001L
+
+// VGT_DRAW_INITIATOR
+#define VGT_DRAW_INITIATOR__PRIM_TYPE_MASK 0x0000003fL
+#define VGT_DRAW_INITIATOR__SOURCE_SELECT_MASK 0x000000c0L
+#define VGT_DRAW_INITIATOR__FACENESS_CULL_SELECT_MASK 0x00000300L
+#define VGT_DRAW_INITIATOR__INDEX_SIZE_MASK 0x00000800L
+#define VGT_DRAW_INITIATOR__INDEX_SIZE 0x00000800L
+#define VGT_DRAW_INITIATOR__NOT_EOP_MASK 0x00001000L
+#define VGT_DRAW_INITIATOR__NOT_EOP 0x00001000L
+#define VGT_DRAW_INITIATOR__SMALL_INDEX_MASK 0x00002000L
+#define VGT_DRAW_INITIATOR__SMALL_INDEX 0x00002000L
+#define VGT_DRAW_INITIATOR__PRE_FETCH_CULL_ENABLE_MASK 0x00004000L
+#define VGT_DRAW_INITIATOR__PRE_FETCH_CULL_ENABLE 0x00004000L
+#define VGT_DRAW_INITIATOR__GRP_CULL_ENABLE_MASK 0x00008000L
+#define VGT_DRAW_INITIATOR__GRP_CULL_ENABLE 0x00008000L
+#define VGT_DRAW_INITIATOR__NUM_INDICES_MASK 0xffff0000L
+
+// VGT_EVENT_INITIATOR
+#define VGT_EVENT_INITIATOR__EVENT_TYPE_MASK 0x0000003fL
+
+// VGT_DMA_BASE
+#define VGT_DMA_BASE__BASE_ADDR_MASK 0xffffffffL
+
+// VGT_DMA_SIZE
+#define VGT_DMA_SIZE__NUM_WORDS_MASK 0x00ffffffL
+#define VGT_DMA_SIZE__SWAP_MODE_MASK 0xc0000000L
+
+// VGT_BIN_BASE
+#define VGT_BIN_BASE__BIN_BASE_ADDR_MASK 0xffffffffL
+
+// VGT_BIN_SIZE
+#define VGT_BIN_SIZE__NUM_WORDS_MASK 0x00ffffffL
+#define VGT_BIN_SIZE__FACENESS_FETCH_MASK 0x40000000L
+#define VGT_BIN_SIZE__FACENESS_FETCH 0x40000000L
+#define VGT_BIN_SIZE__FACENESS_RESET_MASK 0x80000000L
+#define VGT_BIN_SIZE__FACENESS_RESET 0x80000000L
+
+// VGT_CURRENT_BIN_ID_MIN
+#define VGT_CURRENT_BIN_ID_MIN__COLUMN_MASK 0x00000007L
+#define VGT_CURRENT_BIN_ID_MIN__ROW_MASK 0x00000038L
+#define VGT_CURRENT_BIN_ID_MIN__GUARD_BAND_MASK 0x000001c0L
+
+// VGT_CURRENT_BIN_ID_MAX
+#define VGT_CURRENT_BIN_ID_MAX__COLUMN_MASK 0x00000007L
+#define VGT_CURRENT_BIN_ID_MAX__ROW_MASK 0x00000038L
+#define VGT_CURRENT_BIN_ID_MAX__GUARD_BAND_MASK 0x000001c0L
+
+// VGT_IMMED_DATA
+#define VGT_IMMED_DATA__DATA_MASK 0xffffffffL
+
+// VGT_MAX_VTX_INDX
+#define VGT_MAX_VTX_INDX__MAX_INDX_MASK 0x00ffffffL
+
+// VGT_MIN_VTX_INDX
+#define VGT_MIN_VTX_INDX__MIN_INDX_MASK 0x00ffffffL
+
+// VGT_INDX_OFFSET
+#define VGT_INDX_OFFSET__INDX_OFFSET_MASK 0x00ffffffL
+
+// VGT_VERTEX_REUSE_BLOCK_CNTL
+#define VGT_VERTEX_REUSE_BLOCK_CNTL__VTX_REUSE_DEPTH_MASK 0x00000007L
+
+// VGT_OUT_DEALLOC_CNTL
+#define VGT_OUT_DEALLOC_CNTL__DEALLOC_DIST_MASK 0x00000003L
+
+// VGT_MULTI_PRIM_IB_RESET_INDX
+#define VGT_MULTI_PRIM_IB_RESET_INDX__RESET_INDX_MASK 0x00ffffffL
+
+// VGT_ENHANCE
+#define VGT_ENHANCE__MISC_MASK 0x0000ffffL
+
+// VGT_VTX_VECT_EJECT_REG
+#define VGT_VTX_VECT_EJECT_REG__PRIM_COUNT_MASK 0x0000001fL
+
+// VGT_LAST_COPY_STATE
+#define VGT_LAST_COPY_STATE__SRC_STATE_ID_MASK 0x00000001L
+#define VGT_LAST_COPY_STATE__SRC_STATE_ID 0x00000001L
+#define VGT_LAST_COPY_STATE__DST_STATE_ID_MASK 0x00010000L
+#define VGT_LAST_COPY_STATE__DST_STATE_ID 0x00010000L
+
+// VGT_DEBUG_CNTL
+#define VGT_DEBUG_CNTL__VGT_DEBUG_INDX_MASK 0x0000001fL
+
+// VGT_DEBUG_DATA
+#define VGT_DEBUG_DATA__DATA_MASK 0xffffffffL
+
+// VGT_CNTL_STATUS
+#define VGT_CNTL_STATUS__VGT_BUSY_MASK 0x00000001L
+#define VGT_CNTL_STATUS__VGT_BUSY 0x00000001L
+#define VGT_CNTL_STATUS__VGT_DMA_BUSY_MASK 0x00000002L
+#define VGT_CNTL_STATUS__VGT_DMA_BUSY 0x00000002L
+#define VGT_CNTL_STATUS__VGT_DMA_REQ_BUSY_MASK 0x00000004L
+#define VGT_CNTL_STATUS__VGT_DMA_REQ_BUSY 0x00000004L
+#define VGT_CNTL_STATUS__VGT_GRP_BUSY_MASK 0x00000008L
+#define VGT_CNTL_STATUS__VGT_GRP_BUSY 0x00000008L
+#define VGT_CNTL_STATUS__VGT_VR_BUSY_MASK 0x00000010L
+#define VGT_CNTL_STATUS__VGT_VR_BUSY 0x00000010L
+#define VGT_CNTL_STATUS__VGT_BIN_BUSY_MASK 0x00000020L
+#define VGT_CNTL_STATUS__VGT_BIN_BUSY 0x00000020L
+#define VGT_CNTL_STATUS__VGT_PT_BUSY_MASK 0x00000040L
+#define VGT_CNTL_STATUS__VGT_PT_BUSY 0x00000040L
+#define VGT_CNTL_STATUS__VGT_OUT_BUSY_MASK 0x00000080L
+#define VGT_CNTL_STATUS__VGT_OUT_BUSY 0x00000080L
+#define VGT_CNTL_STATUS__VGT_OUT_INDX_BUSY_MASK 0x00000100L
+#define VGT_CNTL_STATUS__VGT_OUT_INDX_BUSY 0x00000100L
+
+// VGT_DEBUG_REG0
+#define VGT_DEBUG_REG0__te_grp_busy_MASK 0x00000001L
+#define VGT_DEBUG_REG0__te_grp_busy 0x00000001L
+#define VGT_DEBUG_REG0__pt_grp_busy_MASK 0x00000002L
+#define VGT_DEBUG_REG0__pt_grp_busy 0x00000002L
+#define VGT_DEBUG_REG0__vr_grp_busy_MASK 0x00000004L
+#define VGT_DEBUG_REG0__vr_grp_busy 0x00000004L
+#define VGT_DEBUG_REG0__dma_request_busy_MASK 0x00000008L
+#define VGT_DEBUG_REG0__dma_request_busy 0x00000008L
+#define VGT_DEBUG_REG0__out_busy_MASK 0x00000010L
+#define VGT_DEBUG_REG0__out_busy 0x00000010L
+#define VGT_DEBUG_REG0__grp_backend_busy_MASK 0x00000020L
+#define VGT_DEBUG_REG0__grp_backend_busy 0x00000020L
+#define VGT_DEBUG_REG0__grp_busy_MASK 0x00000040L
+#define VGT_DEBUG_REG0__grp_busy 0x00000040L
+#define VGT_DEBUG_REG0__dma_busy_MASK 0x00000080L
+#define VGT_DEBUG_REG0__dma_busy 0x00000080L
+#define VGT_DEBUG_REG0__rbiu_dma_request_busy_MASK 0x00000100L
+#define VGT_DEBUG_REG0__rbiu_dma_request_busy 0x00000100L
+#define VGT_DEBUG_REG0__rbiu_busy_MASK 0x00000200L
+#define VGT_DEBUG_REG0__rbiu_busy 0x00000200L
+#define VGT_DEBUG_REG0__vgt_no_dma_busy_extended_MASK 0x00000400L
+#define VGT_DEBUG_REG0__vgt_no_dma_busy_extended 0x00000400L
+#define VGT_DEBUG_REG0__vgt_no_dma_busy_MASK 0x00000800L
+#define VGT_DEBUG_REG0__vgt_no_dma_busy 0x00000800L
+#define VGT_DEBUG_REG0__vgt_busy_extended_MASK 0x00001000L
+#define VGT_DEBUG_REG0__vgt_busy_extended 0x00001000L
+#define VGT_DEBUG_REG0__vgt_busy_MASK 0x00002000L
+#define VGT_DEBUG_REG0__vgt_busy 0x00002000L
+#define VGT_DEBUG_REG0__rbbm_skid_fifo_busy_out_MASK 0x00004000L
+#define VGT_DEBUG_REG0__rbbm_skid_fifo_busy_out 0x00004000L
+#define VGT_DEBUG_REG0__VGT_RBBM_no_dma_busy_MASK 0x00008000L
+#define VGT_DEBUG_REG0__VGT_RBBM_no_dma_busy 0x00008000L
+#define VGT_DEBUG_REG0__VGT_RBBM_busy_MASK 0x00010000L
+#define VGT_DEBUG_REG0__VGT_RBBM_busy 0x00010000L
+
+// VGT_DEBUG_REG1
+#define VGT_DEBUG_REG1__out_te_data_read_MASK 0x00000001L
+#define VGT_DEBUG_REG1__out_te_data_read 0x00000001L
+#define VGT_DEBUG_REG1__te_out_data_valid_MASK 0x00000002L
+#define VGT_DEBUG_REG1__te_out_data_valid 0x00000002L
+#define VGT_DEBUG_REG1__out_pt_prim_read_MASK 0x00000004L
+#define VGT_DEBUG_REG1__out_pt_prim_read 0x00000004L
+#define VGT_DEBUG_REG1__pt_out_prim_valid_MASK 0x00000008L
+#define VGT_DEBUG_REG1__pt_out_prim_valid 0x00000008L
+#define VGT_DEBUG_REG1__out_pt_data_read_MASK 0x00000010L
+#define VGT_DEBUG_REG1__out_pt_data_read 0x00000010L
+#define VGT_DEBUG_REG1__pt_out_indx_valid_MASK 0x00000020L
+#define VGT_DEBUG_REG1__pt_out_indx_valid 0x00000020L
+#define VGT_DEBUG_REG1__out_vr_prim_read_MASK 0x00000040L
+#define VGT_DEBUG_REG1__out_vr_prim_read 0x00000040L
+#define VGT_DEBUG_REG1__vr_out_prim_valid_MASK 0x00000080L
+#define VGT_DEBUG_REG1__vr_out_prim_valid 0x00000080L
+#define VGT_DEBUG_REG1__out_vr_indx_read_MASK 0x00000100L
+#define VGT_DEBUG_REG1__out_vr_indx_read 0x00000100L
+#define VGT_DEBUG_REG1__vr_out_indx_valid_MASK 0x00000200L
+#define VGT_DEBUG_REG1__vr_out_indx_valid 0x00000200L
+#define VGT_DEBUG_REG1__te_grp_read_MASK 0x00000400L
+#define VGT_DEBUG_REG1__te_grp_read 0x00000400L
+#define VGT_DEBUG_REG1__grp_te_valid_MASK 0x00000800L
+#define VGT_DEBUG_REG1__grp_te_valid 0x00000800L
+#define VGT_DEBUG_REG1__pt_grp_read_MASK 0x00001000L
+#define VGT_DEBUG_REG1__pt_grp_read 0x00001000L
+#define VGT_DEBUG_REG1__grp_pt_valid_MASK 0x00002000L
+#define VGT_DEBUG_REG1__grp_pt_valid 0x00002000L
+#define VGT_DEBUG_REG1__vr_grp_read_MASK 0x00004000L
+#define VGT_DEBUG_REG1__vr_grp_read 0x00004000L
+#define VGT_DEBUG_REG1__grp_vr_valid_MASK 0x00008000L
+#define VGT_DEBUG_REG1__grp_vr_valid 0x00008000L
+#define VGT_DEBUG_REG1__grp_dma_read_MASK 0x00010000L
+#define VGT_DEBUG_REG1__grp_dma_read 0x00010000L
+#define VGT_DEBUG_REG1__dma_grp_valid_MASK 0x00020000L
+#define VGT_DEBUG_REG1__dma_grp_valid 0x00020000L
+#define VGT_DEBUG_REG1__grp_rbiu_di_read_MASK 0x00040000L
+#define VGT_DEBUG_REG1__grp_rbiu_di_read 0x00040000L
+#define VGT_DEBUG_REG1__rbiu_grp_di_valid_MASK 0x00080000L
+#define VGT_DEBUG_REG1__rbiu_grp_di_valid 0x00080000L
+#define VGT_DEBUG_REG1__MH_VGT_rtr_MASK 0x00100000L
+#define VGT_DEBUG_REG1__MH_VGT_rtr 0x00100000L
+#define VGT_DEBUG_REG1__VGT_MH_send_MASK 0x00200000L
+#define VGT_DEBUG_REG1__VGT_MH_send 0x00200000L
+#define VGT_DEBUG_REG1__PA_VGT_clip_s_rtr_MASK 0x00400000L
+#define VGT_DEBUG_REG1__PA_VGT_clip_s_rtr 0x00400000L
+#define VGT_DEBUG_REG1__VGT_PA_clip_s_send_MASK 0x00800000L
+#define VGT_DEBUG_REG1__VGT_PA_clip_s_send 0x00800000L
+#define VGT_DEBUG_REG1__PA_VGT_clip_p_rtr_MASK 0x01000000L
+#define VGT_DEBUG_REG1__PA_VGT_clip_p_rtr 0x01000000L
+#define VGT_DEBUG_REG1__VGT_PA_clip_p_send_MASK 0x02000000L
+#define VGT_DEBUG_REG1__VGT_PA_clip_p_send 0x02000000L
+#define VGT_DEBUG_REG1__PA_VGT_clip_v_rtr_MASK 0x04000000L
+#define VGT_DEBUG_REG1__PA_VGT_clip_v_rtr 0x04000000L
+#define VGT_DEBUG_REG1__VGT_PA_clip_v_send_MASK 0x08000000L
+#define VGT_DEBUG_REG1__VGT_PA_clip_v_send 0x08000000L
+#define VGT_DEBUG_REG1__SQ_VGT_rtr_MASK 0x10000000L
+#define VGT_DEBUG_REG1__SQ_VGT_rtr 0x10000000L
+#define VGT_DEBUG_REG1__VGT_SQ_send_MASK 0x20000000L
+#define VGT_DEBUG_REG1__VGT_SQ_send 0x20000000L
+#define VGT_DEBUG_REG1__mh_vgt_tag_7_q_MASK 0x40000000L
+#define VGT_DEBUG_REG1__mh_vgt_tag_7_q 0x40000000L
+
+// VGT_DEBUG_REG3
+#define VGT_DEBUG_REG3__vgt_clk_en_MASK 0x00000001L
+#define VGT_DEBUG_REG3__vgt_clk_en 0x00000001L
+#define VGT_DEBUG_REG3__reg_fifos_clk_en_MASK 0x00000002L
+#define VGT_DEBUG_REG3__reg_fifos_clk_en 0x00000002L
+
+// VGT_DEBUG_REG6
+#define VGT_DEBUG_REG6__shifter_byte_count_q_MASK 0x0000001fL
+#define VGT_DEBUG_REG6__right_word_indx_q_MASK 0x000003e0L
+#define VGT_DEBUG_REG6__input_data_valid_MASK 0x00000400L
+#define VGT_DEBUG_REG6__input_data_valid 0x00000400L
+#define VGT_DEBUG_REG6__input_data_xfer_MASK 0x00000800L
+#define VGT_DEBUG_REG6__input_data_xfer 0x00000800L
+#define VGT_DEBUG_REG6__next_shift_is_vect_1_q_MASK 0x00001000L
+#define VGT_DEBUG_REG6__next_shift_is_vect_1_q 0x00001000L
+#define VGT_DEBUG_REG6__next_shift_is_vect_1_d_MASK 0x00002000L
+#define VGT_DEBUG_REG6__next_shift_is_vect_1_d 0x00002000L
+#define VGT_DEBUG_REG6__next_shift_is_vect_1_pre_d_MASK 0x00004000L
+#define VGT_DEBUG_REG6__next_shift_is_vect_1_pre_d 0x00004000L
+#define VGT_DEBUG_REG6__space_avail_from_shift_MASK 0x00008000L
+#define VGT_DEBUG_REG6__space_avail_from_shift 0x00008000L
+#define VGT_DEBUG_REG6__shifter_first_load_MASK 0x00010000L
+#define VGT_DEBUG_REG6__shifter_first_load 0x00010000L
+#define VGT_DEBUG_REG6__di_state_sel_q_MASK 0x00020000L
+#define VGT_DEBUG_REG6__di_state_sel_q 0x00020000L
+#define VGT_DEBUG_REG6__shifter_waiting_for_first_load_q_MASK 0x00040000L
+#define VGT_DEBUG_REG6__shifter_waiting_for_first_load_q 0x00040000L
+#define VGT_DEBUG_REG6__di_first_group_flag_q_MASK 0x00080000L
+#define VGT_DEBUG_REG6__di_first_group_flag_q 0x00080000L
+#define VGT_DEBUG_REG6__di_event_flag_q_MASK 0x00100000L
+#define VGT_DEBUG_REG6__di_event_flag_q 0x00100000L
+#define VGT_DEBUG_REG6__read_draw_initiator_MASK 0x00200000L
+#define VGT_DEBUG_REG6__read_draw_initiator 0x00200000L
+#define VGT_DEBUG_REG6__loading_di_requires_shifter_MASK 0x00400000L
+#define VGT_DEBUG_REG6__loading_di_requires_shifter 0x00400000L
+#define VGT_DEBUG_REG6__last_shift_of_packet_MASK 0x00800000L
+#define VGT_DEBUG_REG6__last_shift_of_packet 0x00800000L
+#define VGT_DEBUG_REG6__last_decr_of_packet_MASK 0x01000000L
+#define VGT_DEBUG_REG6__last_decr_of_packet 0x01000000L
+#define VGT_DEBUG_REG6__extract_vector_MASK 0x02000000L
+#define VGT_DEBUG_REG6__extract_vector 0x02000000L
+#define VGT_DEBUG_REG6__shift_vect_rtr_MASK 0x04000000L
+#define VGT_DEBUG_REG6__shift_vect_rtr 0x04000000L
+#define VGT_DEBUG_REG6__destination_rtr_MASK 0x08000000L
+#define VGT_DEBUG_REG6__destination_rtr 0x08000000L
+#define VGT_DEBUG_REG6__grp_trigger_MASK 0x10000000L
+#define VGT_DEBUG_REG6__grp_trigger 0x10000000L
+
+// VGT_DEBUG_REG7
+#define VGT_DEBUG_REG7__di_index_counter_q_MASK 0x0000ffffL
+#define VGT_DEBUG_REG7__shift_amount_no_extract_MASK 0x000f0000L
+#define VGT_DEBUG_REG7__shift_amount_extract_MASK 0x00f00000L
+#define VGT_DEBUG_REG7__di_prim_type_q_MASK 0x3f000000L
+#define VGT_DEBUG_REG7__current_source_sel_MASK 0xc0000000L
+
+// VGT_DEBUG_REG8
+#define VGT_DEBUG_REG8__current_source_sel_MASK 0x00000003L
+#define VGT_DEBUG_REG8__left_word_indx_q_MASK 0x0000007cL
+#define VGT_DEBUG_REG8__input_data_cnt_MASK 0x00000f80L
+#define VGT_DEBUG_REG8__input_data_lsw_MASK 0x0001f000L
+#define VGT_DEBUG_REG8__input_data_msw_MASK 0x003e0000L
+#define VGT_DEBUG_REG8__next_small_stride_shift_limit_q_MASK 0x07c00000L
+#define VGT_DEBUG_REG8__current_small_stride_shift_limit_q_MASK 0xf8000000L
+
+// VGT_DEBUG_REG9
+#define VGT_DEBUG_REG9__next_stride_q_MASK 0x0000001fL
+#define VGT_DEBUG_REG9__next_stride_d_MASK 0x000003e0L
+#define VGT_DEBUG_REG9__current_shift_q_MASK 0x00007c00L
+#define VGT_DEBUG_REG9__current_shift_d_MASK 0x000f8000L
+#define VGT_DEBUG_REG9__current_stride_q_MASK 0x01f00000L
+#define VGT_DEBUG_REG9__current_stride_d_MASK 0x3e000000L
+#define VGT_DEBUG_REG9__grp_trigger_MASK 0x40000000L
+#define VGT_DEBUG_REG9__grp_trigger 0x40000000L
+
+// VGT_DEBUG_REG10
+#define VGT_DEBUG_REG10__temp_derived_di_prim_type_t0_MASK 0x00000001L
+#define VGT_DEBUG_REG10__temp_derived_di_prim_type_t0 0x00000001L
+#define VGT_DEBUG_REG10__temp_derived_di_small_index_t0_MASK 0x00000002L
+#define VGT_DEBUG_REG10__temp_derived_di_small_index_t0 0x00000002L
+#define VGT_DEBUG_REG10__temp_derived_di_cull_enable_t0_MASK 0x00000004L
+#define VGT_DEBUG_REG10__temp_derived_di_cull_enable_t0 0x00000004L
+#define VGT_DEBUG_REG10__temp_derived_di_pre_fetch_cull_enable_t0_MASK 0x00000008L
+#define VGT_DEBUG_REG10__temp_derived_di_pre_fetch_cull_enable_t0 0x00000008L
+#define VGT_DEBUG_REG10__di_state_sel_q_MASK 0x00000010L
+#define VGT_DEBUG_REG10__di_state_sel_q 0x00000010L
+#define VGT_DEBUG_REG10__last_decr_of_packet_MASK 0x00000020L
+#define VGT_DEBUG_REG10__last_decr_of_packet 0x00000020L
+#define VGT_DEBUG_REG10__bin_valid_MASK 0x00000040L
+#define VGT_DEBUG_REG10__bin_valid 0x00000040L
+#define VGT_DEBUG_REG10__read_block_MASK 0x00000080L
+#define VGT_DEBUG_REG10__read_block 0x00000080L
+#define VGT_DEBUG_REG10__grp_bgrp_last_bit_read_MASK 0x00000100L
+#define VGT_DEBUG_REG10__grp_bgrp_last_bit_read 0x00000100L
+#define VGT_DEBUG_REG10__last_bit_enable_q_MASK 0x00000200L
+#define VGT_DEBUG_REG10__last_bit_enable_q 0x00000200L
+#define VGT_DEBUG_REG10__last_bit_end_di_q_MASK 0x00000400L
+#define VGT_DEBUG_REG10__last_bit_end_di_q 0x00000400L
+#define VGT_DEBUG_REG10__selected_data_MASK 0x0007f800L
+#define VGT_DEBUG_REG10__mask_input_data_MASK 0x07f80000L
+#define VGT_DEBUG_REG10__gap_q_MASK 0x08000000L
+#define VGT_DEBUG_REG10__gap_q 0x08000000L
+#define VGT_DEBUG_REG10__temp_mini_reset_z_MASK 0x10000000L
+#define VGT_DEBUG_REG10__temp_mini_reset_z 0x10000000L
+#define VGT_DEBUG_REG10__temp_mini_reset_y_MASK 0x20000000L
+#define VGT_DEBUG_REG10__temp_mini_reset_y 0x20000000L
+#define VGT_DEBUG_REG10__temp_mini_reset_x_MASK 0x40000000L
+#define VGT_DEBUG_REG10__temp_mini_reset_x 0x40000000L
+#define VGT_DEBUG_REG10__grp_trigger_MASK 0x80000000L
+#define VGT_DEBUG_REG10__grp_trigger 0x80000000L
+
+// VGT_DEBUG_REG12
+#define VGT_DEBUG_REG12__shifter_byte_count_q_MASK 0x0000001fL
+#define VGT_DEBUG_REG12__right_word_indx_q_MASK 0x000003e0L
+#define VGT_DEBUG_REG12__input_data_valid_MASK 0x00000400L
+#define VGT_DEBUG_REG12__input_data_valid 0x00000400L
+#define VGT_DEBUG_REG12__input_data_xfer_MASK 0x00000800L
+#define VGT_DEBUG_REG12__input_data_xfer 0x00000800L
+#define VGT_DEBUG_REG12__next_shift_is_vect_1_q_MASK 0x00001000L
+#define VGT_DEBUG_REG12__next_shift_is_vect_1_q 0x00001000L
+#define VGT_DEBUG_REG12__next_shift_is_vect_1_d_MASK 0x00002000L
+#define VGT_DEBUG_REG12__next_shift_is_vect_1_d 0x00002000L
+#define VGT_DEBUG_REG12__next_shift_is_vect_1_pre_d_MASK 0x00004000L
+#define VGT_DEBUG_REG12__next_shift_is_vect_1_pre_d 0x00004000L
+#define VGT_DEBUG_REG12__space_avail_from_shift_MASK 0x00008000L
+#define VGT_DEBUG_REG12__space_avail_from_shift 0x00008000L
+#define VGT_DEBUG_REG12__shifter_first_load_MASK 0x00010000L
+#define VGT_DEBUG_REG12__shifter_first_load 0x00010000L
+#define VGT_DEBUG_REG12__di_state_sel_q_MASK 0x00020000L
+#define VGT_DEBUG_REG12__di_state_sel_q 0x00020000L
+#define VGT_DEBUG_REG12__shifter_waiting_for_first_load_q_MASK 0x00040000L
+#define VGT_DEBUG_REG12__shifter_waiting_for_first_load_q 0x00040000L
+#define VGT_DEBUG_REG12__di_first_group_flag_q_MASK 0x00080000L
+#define VGT_DEBUG_REG12__di_first_group_flag_q 0x00080000L
+#define VGT_DEBUG_REG12__di_event_flag_q_MASK 0x00100000L
+#define VGT_DEBUG_REG12__di_event_flag_q 0x00100000L
+#define VGT_DEBUG_REG12__read_draw_initiator_MASK 0x00200000L
+#define VGT_DEBUG_REG12__read_draw_initiator 0x00200000L
+#define VGT_DEBUG_REG12__loading_di_requires_shifter_MASK 0x00400000L
+#define VGT_DEBUG_REG12__loading_di_requires_shifter 0x00400000L
+#define VGT_DEBUG_REG12__last_shift_of_packet_MASK 0x00800000L
+#define VGT_DEBUG_REG12__last_shift_of_packet 0x00800000L
+#define VGT_DEBUG_REG12__last_decr_of_packet_MASK 0x01000000L
+#define VGT_DEBUG_REG12__last_decr_of_packet 0x01000000L
+#define VGT_DEBUG_REG12__extract_vector_MASK 0x02000000L
+#define VGT_DEBUG_REG12__extract_vector 0x02000000L
+#define VGT_DEBUG_REG12__shift_vect_rtr_MASK 0x04000000L
+#define VGT_DEBUG_REG12__shift_vect_rtr 0x04000000L
+#define VGT_DEBUG_REG12__destination_rtr_MASK 0x08000000L
+#define VGT_DEBUG_REG12__destination_rtr 0x08000000L
+#define VGT_DEBUG_REG12__bgrp_trigger_MASK 0x10000000L
+#define VGT_DEBUG_REG12__bgrp_trigger 0x10000000L
+
+// VGT_DEBUG_REG13
+#define VGT_DEBUG_REG13__di_index_counter_q_MASK 0x0000ffffL
+#define VGT_DEBUG_REG13__shift_amount_no_extract_MASK 0x000f0000L
+#define VGT_DEBUG_REG13__shift_amount_extract_MASK 0x00f00000L
+#define VGT_DEBUG_REG13__di_prim_type_q_MASK 0x3f000000L
+#define VGT_DEBUG_REG13__current_source_sel_MASK 0xc0000000L
+
+// VGT_DEBUG_REG14
+#define VGT_DEBUG_REG14__current_source_sel_MASK 0x00000003L
+#define VGT_DEBUG_REG14__left_word_indx_q_MASK 0x0000007cL
+#define VGT_DEBUG_REG14__input_data_cnt_MASK 0x00000f80L
+#define VGT_DEBUG_REG14__input_data_lsw_MASK 0x0001f000L
+#define VGT_DEBUG_REG14__input_data_msw_MASK 0x003e0000L
+#define VGT_DEBUG_REG14__next_small_stride_shift_limit_q_MASK 0x07c00000L
+#define VGT_DEBUG_REG14__current_small_stride_shift_limit_q_MASK 0xf8000000L
+
+// VGT_DEBUG_REG15
+#define VGT_DEBUG_REG15__next_stride_q_MASK 0x0000001fL
+#define VGT_DEBUG_REG15__next_stride_d_MASK 0x000003e0L
+#define VGT_DEBUG_REG15__current_shift_q_MASK 0x00007c00L
+#define VGT_DEBUG_REG15__current_shift_d_MASK 0x000f8000L
+#define VGT_DEBUG_REG15__current_stride_q_MASK 0x01f00000L
+#define VGT_DEBUG_REG15__current_stride_d_MASK 0x3e000000L
+#define VGT_DEBUG_REG15__bgrp_trigger_MASK 0x40000000L
+#define VGT_DEBUG_REG15__bgrp_trigger 0x40000000L
+
+// VGT_DEBUG_REG16
+#define VGT_DEBUG_REG16__bgrp_cull_fetch_fifo_full_MASK 0x00000001L
+#define VGT_DEBUG_REG16__bgrp_cull_fetch_fifo_full 0x00000001L
+#define VGT_DEBUG_REG16__bgrp_cull_fetch_fifo_empty_MASK 0x00000002L
+#define VGT_DEBUG_REG16__bgrp_cull_fetch_fifo_empty 0x00000002L
+#define VGT_DEBUG_REG16__dma_bgrp_cull_fetch_read_MASK 0x00000004L
+#define VGT_DEBUG_REG16__dma_bgrp_cull_fetch_read 0x00000004L
+#define VGT_DEBUG_REG16__bgrp_cull_fetch_fifo_we_MASK 0x00000008L
+#define VGT_DEBUG_REG16__bgrp_cull_fetch_fifo_we 0x00000008L
+#define VGT_DEBUG_REG16__bgrp_byte_mask_fifo_full_MASK 0x00000010L
+#define VGT_DEBUG_REG16__bgrp_byte_mask_fifo_full 0x00000010L
+#define VGT_DEBUG_REG16__bgrp_byte_mask_fifo_empty_MASK 0x00000020L
+#define VGT_DEBUG_REG16__bgrp_byte_mask_fifo_empty 0x00000020L
+#define VGT_DEBUG_REG16__bgrp_byte_mask_fifo_re_q_MASK 0x00000040L
+#define VGT_DEBUG_REG16__bgrp_byte_mask_fifo_re_q 0x00000040L
+#define VGT_DEBUG_REG16__bgrp_byte_mask_fifo_we_MASK 0x00000080L
+#define VGT_DEBUG_REG16__bgrp_byte_mask_fifo_we 0x00000080L
+#define VGT_DEBUG_REG16__bgrp_dma_mask_kill_MASK 0x00000100L
+#define VGT_DEBUG_REG16__bgrp_dma_mask_kill 0x00000100L
+#define VGT_DEBUG_REG16__bgrp_grp_bin_valid_MASK 0x00000200L
+#define VGT_DEBUG_REG16__bgrp_grp_bin_valid 0x00000200L
+#define VGT_DEBUG_REG16__rst_last_bit_MASK 0x00000400L
+#define VGT_DEBUG_REG16__rst_last_bit 0x00000400L
+#define VGT_DEBUG_REG16__current_state_q_MASK 0x00000800L
+#define VGT_DEBUG_REG16__current_state_q 0x00000800L
+#define VGT_DEBUG_REG16__old_state_q_MASK 0x00001000L
+#define VGT_DEBUG_REG16__old_state_q 0x00001000L
+#define VGT_DEBUG_REG16__old_state_en_MASK 0x00002000L
+#define VGT_DEBUG_REG16__old_state_en 0x00002000L
+#define VGT_DEBUG_REG16__prev_last_bit_q_MASK 0x00004000L
+#define VGT_DEBUG_REG16__prev_last_bit_q 0x00004000L
+#define VGT_DEBUG_REG16__dbl_last_bit_q_MASK 0x00008000L
+#define VGT_DEBUG_REG16__dbl_last_bit_q 0x00008000L
+#define VGT_DEBUG_REG16__last_bit_block_q_MASK 0x00010000L
+#define VGT_DEBUG_REG16__last_bit_block_q 0x00010000L
+#define VGT_DEBUG_REG16__ast_bit_block2_q_MASK 0x00020000L
+#define VGT_DEBUG_REG16__ast_bit_block2_q 0x00020000L
+#define VGT_DEBUG_REG16__load_empty_reg_MASK 0x00040000L
+#define VGT_DEBUG_REG16__load_empty_reg 0x00040000L
+#define VGT_DEBUG_REG16__bgrp_grp_byte_mask_rdata_MASK 0x07f80000L
+#define VGT_DEBUG_REG16__dma_bgrp_dma_data_fifo_rptr_MASK 0x18000000L
+#define VGT_DEBUG_REG16__top_di_pre_fetch_cull_enable_MASK 0x20000000L
+#define VGT_DEBUG_REG16__top_di_pre_fetch_cull_enable 0x20000000L
+#define VGT_DEBUG_REG16__top_di_grp_cull_enable_q_MASK 0x40000000L
+#define VGT_DEBUG_REG16__top_di_grp_cull_enable_q 0x40000000L
+#define VGT_DEBUG_REG16__bgrp_trigger_MASK 0x80000000L
+#define VGT_DEBUG_REG16__bgrp_trigger 0x80000000L
+
+// VGT_DEBUG_REG17
+#define VGT_DEBUG_REG17__save_read_q_MASK 0x00000001L
+#define VGT_DEBUG_REG17__save_read_q 0x00000001L
+#define VGT_DEBUG_REG17__extend_read_q_MASK 0x00000002L
+#define VGT_DEBUG_REG17__extend_read_q 0x00000002L
+#define VGT_DEBUG_REG17__grp_indx_size_MASK 0x0000000cL
+#define VGT_DEBUG_REG17__cull_prim_true_MASK 0x00000010L
+#define VGT_DEBUG_REG17__cull_prim_true 0x00000010L
+#define VGT_DEBUG_REG17__reset_bit2_q_MASK 0x00000020L
+#define VGT_DEBUG_REG17__reset_bit2_q 0x00000020L
+#define VGT_DEBUG_REG17__reset_bit1_q_MASK 0x00000040L
+#define VGT_DEBUG_REG17__reset_bit1_q 0x00000040L
+#define VGT_DEBUG_REG17__first_reg_first_q_MASK 0x00000080L
+#define VGT_DEBUG_REG17__first_reg_first_q 0x00000080L
+#define VGT_DEBUG_REG17__check_second_reg_MASK 0x00000100L
+#define VGT_DEBUG_REG17__check_second_reg 0x00000100L
+#define VGT_DEBUG_REG17__check_first_reg_MASK 0x00000200L
+#define VGT_DEBUG_REG17__check_first_reg 0x00000200L
+#define VGT_DEBUG_REG17__bgrp_cull_fetch_fifo_wdata_MASK 0x00000400L
+#define VGT_DEBUG_REG17__bgrp_cull_fetch_fifo_wdata 0x00000400L
+#define VGT_DEBUG_REG17__save_cull_fetch_data2_q_MASK 0x00000800L
+#define VGT_DEBUG_REG17__save_cull_fetch_data2_q 0x00000800L
+#define VGT_DEBUG_REG17__save_cull_fetch_data1_q_MASK 0x00001000L
+#define VGT_DEBUG_REG17__save_cull_fetch_data1_q 0x00001000L
+#define VGT_DEBUG_REG17__save_byte_mask_data2_q_MASK 0x00002000L
+#define VGT_DEBUG_REG17__save_byte_mask_data2_q 0x00002000L
+#define VGT_DEBUG_REG17__save_byte_mask_data1_q_MASK 0x00004000L
+#define VGT_DEBUG_REG17__save_byte_mask_data1_q 0x00004000L
+#define VGT_DEBUG_REG17__to_second_reg_q_MASK 0x00008000L
+#define VGT_DEBUG_REG17__to_second_reg_q 0x00008000L
+#define VGT_DEBUG_REG17__roll_over_msk_q_MASK 0x00010000L
+#define VGT_DEBUG_REG17__roll_over_msk_q 0x00010000L
+#define VGT_DEBUG_REG17__max_msk_ptr_q_MASK 0x00fe0000L
+#define VGT_DEBUG_REG17__min_msk_ptr_q_MASK 0x7f000000L
+#define VGT_DEBUG_REG17__bgrp_trigger_MASK 0x80000000L
+#define VGT_DEBUG_REG17__bgrp_trigger 0x80000000L
+
+// VGT_DEBUG_REG18
+#define VGT_DEBUG_REG18__dma_data_fifo_mem_raddr_MASK 0x0000003fL
+#define VGT_DEBUG_REG18__dma_data_fifo_mem_waddr_MASK 0x00000fc0L
+#define VGT_DEBUG_REG18__dma_bgrp_byte_mask_fifo_re_MASK 0x00001000L
+#define VGT_DEBUG_REG18__dma_bgrp_byte_mask_fifo_re 0x00001000L
+#define VGT_DEBUG_REG18__dma_bgrp_dma_data_fifo_rptr_MASK 0x00006000L
+#define VGT_DEBUG_REG18__dma_mem_full_MASK 0x00008000L
+#define VGT_DEBUG_REG18__dma_mem_full 0x00008000L
+#define VGT_DEBUG_REG18__dma_ram_re_MASK 0x00010000L
+#define VGT_DEBUG_REG18__dma_ram_re 0x00010000L
+#define VGT_DEBUG_REG18__dma_ram_we_MASK 0x00020000L
+#define VGT_DEBUG_REG18__dma_ram_we 0x00020000L
+#define VGT_DEBUG_REG18__dma_mem_empty_MASK 0x00040000L
+#define VGT_DEBUG_REG18__dma_mem_empty 0x00040000L
+#define VGT_DEBUG_REG18__dma_data_fifo_mem_re_MASK 0x00080000L
+#define VGT_DEBUG_REG18__dma_data_fifo_mem_re 0x00080000L
+#define VGT_DEBUG_REG18__dma_data_fifo_mem_we_MASK 0x00100000L
+#define VGT_DEBUG_REG18__dma_data_fifo_mem_we 0x00100000L
+#define VGT_DEBUG_REG18__bin_mem_full_MASK 0x00200000L
+#define VGT_DEBUG_REG18__bin_mem_full 0x00200000L
+#define VGT_DEBUG_REG18__bin_ram_we_MASK 0x00400000L
+#define VGT_DEBUG_REG18__bin_ram_we 0x00400000L
+#define VGT_DEBUG_REG18__bin_ram_re_MASK 0x00800000L
+#define VGT_DEBUG_REG18__bin_ram_re 0x00800000L
+#define VGT_DEBUG_REG18__bin_mem_empty_MASK 0x01000000L
+#define VGT_DEBUG_REG18__bin_mem_empty 0x01000000L
+#define VGT_DEBUG_REG18__start_bin_req_MASK 0x02000000L
+#define VGT_DEBUG_REG18__start_bin_req 0x02000000L
+#define VGT_DEBUG_REG18__fetch_cull_not_used_MASK 0x04000000L
+#define VGT_DEBUG_REG18__fetch_cull_not_used 0x04000000L
+#define VGT_DEBUG_REG18__dma_req_xfer_MASK 0x08000000L
+#define VGT_DEBUG_REG18__dma_req_xfer 0x08000000L
+#define VGT_DEBUG_REG18__have_valid_bin_req_MASK 0x10000000L
+#define VGT_DEBUG_REG18__have_valid_bin_req 0x10000000L
+#define VGT_DEBUG_REG18__have_valid_dma_req_MASK 0x20000000L
+#define VGT_DEBUG_REG18__have_valid_dma_req 0x20000000L
+#define VGT_DEBUG_REG18__bgrp_dma_di_grp_cull_enable_MASK 0x40000000L
+#define VGT_DEBUG_REG18__bgrp_dma_di_grp_cull_enable 0x40000000L
+#define VGT_DEBUG_REG18__bgrp_dma_di_pre_fetch_cull_enable_MASK 0x80000000L
+#define VGT_DEBUG_REG18__bgrp_dma_di_pre_fetch_cull_enable 0x80000000L
+
+// VGT_DEBUG_REG20
+#define VGT_DEBUG_REG20__prim_side_indx_valid_MASK 0x00000001L
+#define VGT_DEBUG_REG20__prim_side_indx_valid 0x00000001L
+#define VGT_DEBUG_REG20__indx_side_fifo_empty_MASK 0x00000002L
+#define VGT_DEBUG_REG20__indx_side_fifo_empty 0x00000002L
+#define VGT_DEBUG_REG20__indx_side_fifo_re_MASK 0x00000004L
+#define VGT_DEBUG_REG20__indx_side_fifo_re 0x00000004L
+#define VGT_DEBUG_REG20__indx_side_fifo_we_MASK 0x00000008L
+#define VGT_DEBUG_REG20__indx_side_fifo_we 0x00000008L
+#define VGT_DEBUG_REG20__indx_side_fifo_full_MASK 0x00000010L
+#define VGT_DEBUG_REG20__indx_side_fifo_full 0x00000010L
+#define VGT_DEBUG_REG20__prim_buffer_empty_MASK 0x00000020L
+#define VGT_DEBUG_REG20__prim_buffer_empty 0x00000020L
+#define VGT_DEBUG_REG20__prim_buffer_re_MASK 0x00000040L
+#define VGT_DEBUG_REG20__prim_buffer_re 0x00000040L
+#define VGT_DEBUG_REG20__prim_buffer_we_MASK 0x00000080L
+#define VGT_DEBUG_REG20__prim_buffer_we 0x00000080L
+#define VGT_DEBUG_REG20__prim_buffer_full_MASK 0x00000100L
+#define VGT_DEBUG_REG20__prim_buffer_full 0x00000100L
+#define VGT_DEBUG_REG20__indx_buffer_empty_MASK 0x00000200L
+#define VGT_DEBUG_REG20__indx_buffer_empty 0x00000200L
+#define VGT_DEBUG_REG20__indx_buffer_re_MASK 0x00000400L
+#define VGT_DEBUG_REG20__indx_buffer_re 0x00000400L
+#define VGT_DEBUG_REG20__indx_buffer_we_MASK 0x00000800L
+#define VGT_DEBUG_REG20__indx_buffer_we 0x00000800L
+#define VGT_DEBUG_REG20__indx_buffer_full_MASK 0x00001000L
+#define VGT_DEBUG_REG20__indx_buffer_full 0x00001000L
+#define VGT_DEBUG_REG20__hold_prim_MASK 0x00002000L
+#define VGT_DEBUG_REG20__hold_prim 0x00002000L
+#define VGT_DEBUG_REG20__sent_cnt_MASK 0x0003c000L
+#define VGT_DEBUG_REG20__start_of_vtx_vector_MASK 0x00040000L
+#define VGT_DEBUG_REG20__start_of_vtx_vector 0x00040000L
+#define VGT_DEBUG_REG20__clip_s_pre_hold_prim_MASK 0x00080000L
+#define VGT_DEBUG_REG20__clip_s_pre_hold_prim 0x00080000L
+#define VGT_DEBUG_REG20__clip_p_pre_hold_prim_MASK 0x00100000L
+#define VGT_DEBUG_REG20__clip_p_pre_hold_prim 0x00100000L
+#define VGT_DEBUG_REG20__buffered_prim_type_event_MASK 0x03e00000L
+#define VGT_DEBUG_REG20__out_trigger_MASK 0x04000000L
+#define VGT_DEBUG_REG20__out_trigger 0x04000000L
+
+// VGT_DEBUG_REG21
+#define VGT_DEBUG_REG21__null_terminate_vtx_vector_MASK 0x00000001L
+#define VGT_DEBUG_REG21__null_terminate_vtx_vector 0x00000001L
+#define VGT_DEBUG_REG21__prim_end_of_vtx_vect_flags_MASK 0x0000000eL
+#define VGT_DEBUG_REG21__alloc_counter_q_MASK 0x00000070L
+#define VGT_DEBUG_REG21__curr_slot_in_vtx_vect_q_MASK 0x00000380L
+#define VGT_DEBUG_REG21__int_vtx_counter_q_MASK 0x00003c00L
+#define VGT_DEBUG_REG21__curr_dealloc_distance_q_MASK 0x0003c000L
+#define VGT_DEBUG_REG21__new_packet_q_MASK 0x00040000L
+#define VGT_DEBUG_REG21__new_packet_q 0x00040000L
+#define VGT_DEBUG_REG21__new_allocate_q_MASK 0x00080000L
+#define VGT_DEBUG_REG21__new_allocate_q 0x00080000L
+#define VGT_DEBUG_REG21__num_new_unique_rel_indx_MASK 0x00300000L
+#define VGT_DEBUG_REG21__inserted_null_prim_q_MASK 0x00400000L
+#define VGT_DEBUG_REG21__inserted_null_prim_q 0x00400000L
+#define VGT_DEBUG_REG21__insert_null_prim_MASK 0x00800000L
+#define VGT_DEBUG_REG21__insert_null_prim 0x00800000L
+#define VGT_DEBUG_REG21__buffered_prim_eop_mux_MASK 0x01000000L
+#define VGT_DEBUG_REG21__buffered_prim_eop_mux 0x01000000L
+#define VGT_DEBUG_REG21__prim_buffer_empty_mux_MASK 0x02000000L
+#define VGT_DEBUG_REG21__prim_buffer_empty_mux 0x02000000L
+#define VGT_DEBUG_REG21__buffered_thread_size_MASK 0x04000000L
+#define VGT_DEBUG_REG21__buffered_thread_size 0x04000000L
+#define VGT_DEBUG_REG21__out_trigger_MASK 0x80000000L
+#define VGT_DEBUG_REG21__out_trigger 0x80000000L
+
+// VGT_CRC_SQ_DATA
+#define VGT_CRC_SQ_DATA__CRC_MASK 0xffffffffL
+
+// VGT_CRC_SQ_CTRL
+#define VGT_CRC_SQ_CTRL__CRC_MASK 0xffffffffL
+
+// VGT_PERFCOUNTER0_SELECT
+#define VGT_PERFCOUNTER0_SELECT__PERF_SEL_MASK 0x000000ffL
+
+// VGT_PERFCOUNTER1_SELECT
+#define VGT_PERFCOUNTER1_SELECT__PERF_SEL_MASK 0x000000ffL
+
+// VGT_PERFCOUNTER2_SELECT
+#define VGT_PERFCOUNTER2_SELECT__PERF_SEL_MASK 0x000000ffL
+
+// VGT_PERFCOUNTER3_SELECT
+#define VGT_PERFCOUNTER3_SELECT__PERF_SEL_MASK 0x000000ffL
+
+// VGT_PERFCOUNTER0_LOW
+#define VGT_PERFCOUNTER0_LOW__PERF_COUNT_MASK 0xffffffffL
+
+// VGT_PERFCOUNTER1_LOW
+#define VGT_PERFCOUNTER1_LOW__PERF_COUNT_MASK 0xffffffffL
+
+// VGT_PERFCOUNTER2_LOW
+#define VGT_PERFCOUNTER2_LOW__PERF_COUNT_MASK 0xffffffffL
+
+// VGT_PERFCOUNTER3_LOW
+#define VGT_PERFCOUNTER3_LOW__PERF_COUNT_MASK 0xffffffffL
+
+// VGT_PERFCOUNTER0_HI
+#define VGT_PERFCOUNTER0_HI__PERF_COUNT_MASK 0x0000ffffL
+
+// VGT_PERFCOUNTER1_HI
+#define VGT_PERFCOUNTER1_HI__PERF_COUNT_MASK 0x0000ffffL
+
+// VGT_PERFCOUNTER2_HI
+#define VGT_PERFCOUNTER2_HI__PERF_COUNT_MASK 0x0000ffffL
+
+// VGT_PERFCOUNTER3_HI
+#define VGT_PERFCOUNTER3_HI__PERF_COUNT_MASK 0x0000ffffL
+
+// TC_CNTL_STATUS
+#define TC_CNTL_STATUS__L2_INVALIDATE_MASK 0x00000001L
+#define TC_CNTL_STATUS__L2_INVALIDATE 0x00000001L
+#define TC_CNTL_STATUS__TC_L2_HIT_MISS_MASK 0x000c0000L
+#define TC_CNTL_STATUS__TC_BUSY_MASK 0x80000000L
+#define TC_CNTL_STATUS__TC_BUSY 0x80000000L
+
+// TCR_CHICKEN
+#define TCR_CHICKEN__SPARE_MASK 0xffffffffL
+
+// TCF_CHICKEN
+#define TCF_CHICKEN__SPARE_MASK 0xffffffffL
+
+// TCM_CHICKEN
+#define TCM_CHICKEN__TCO_READ_LATENCY_FIFO_PROG_DEPTH_MASK 0x000000ffL
+#define TCM_CHICKEN__ETC_COLOR_ENDIAN_MASK 0x00000100L
+#define TCM_CHICKEN__ETC_COLOR_ENDIAN 0x00000100L
+#define TCM_CHICKEN__SPARE_MASK 0xfffffe00L
+
+// TCR_PERFCOUNTER0_SELECT
+#define TCR_PERFCOUNTER0_SELECT__PERFCOUNTER_SELECT_MASK 0x000000ffL
+
+// TCR_PERFCOUNTER1_SELECT
+#define TCR_PERFCOUNTER1_SELECT__PERFCOUNTER_SELECT_MASK 0x000000ffL
+
+// TCR_PERFCOUNTER0_HI
+#define TCR_PERFCOUNTER0_HI__PERFCOUNTER_HI_MASK 0x0000ffffL
+
+// TCR_PERFCOUNTER1_HI
+#define TCR_PERFCOUNTER1_HI__PERFCOUNTER_HI_MASK 0x0000ffffL
+
+// TCR_PERFCOUNTER0_LOW
+#define TCR_PERFCOUNTER0_LOW__PERFCOUNTER_LOW_MASK 0xffffffffL
+
+// TCR_PERFCOUNTER1_LOW
+#define TCR_PERFCOUNTER1_LOW__PERFCOUNTER_LOW_MASK 0xffffffffL
+
+// TP_TC_CLKGATE_CNTL
+#define TP_TC_CLKGATE_CNTL__TP_BUSY_EXTEND_MASK 0x00000007L
+#define TP_TC_CLKGATE_CNTL__TC_BUSY_EXTEND_MASK 0x00000038L
+
+// TPC_CNTL_STATUS
+#define TPC_CNTL_STATUS__TPC_INPUT_BUSY_MASK 0x00000001L
+#define TPC_CNTL_STATUS__TPC_INPUT_BUSY 0x00000001L
+#define TPC_CNTL_STATUS__TPC_TC_FIFO_BUSY_MASK 0x00000002L
+#define TPC_CNTL_STATUS__TPC_TC_FIFO_BUSY 0x00000002L
+#define TPC_CNTL_STATUS__TPC_STATE_FIFO_BUSY_MASK 0x00000004L
+#define TPC_CNTL_STATUS__TPC_STATE_FIFO_BUSY 0x00000004L
+#define TPC_CNTL_STATUS__TPC_FETCH_FIFO_BUSY_MASK 0x00000008L
+#define TPC_CNTL_STATUS__TPC_FETCH_FIFO_BUSY 0x00000008L
+#define TPC_CNTL_STATUS__TPC_WALKER_PIPE_BUSY_MASK 0x00000010L
+#define TPC_CNTL_STATUS__TPC_WALKER_PIPE_BUSY 0x00000010L
+#define TPC_CNTL_STATUS__TPC_WALK_FIFO_BUSY_MASK 0x00000020L
+#define TPC_CNTL_STATUS__TPC_WALK_FIFO_BUSY 0x00000020L
+#define TPC_CNTL_STATUS__TPC_WALKER_BUSY_MASK 0x00000040L
+#define TPC_CNTL_STATUS__TPC_WALKER_BUSY 0x00000040L
+#define TPC_CNTL_STATUS__TPC_ALIGNER_PIPE_BUSY_MASK 0x00000100L
+#define TPC_CNTL_STATUS__TPC_ALIGNER_PIPE_BUSY 0x00000100L
+#define TPC_CNTL_STATUS__TPC_ALIGN_FIFO_BUSY_MASK 0x00000200L
+#define TPC_CNTL_STATUS__TPC_ALIGN_FIFO_BUSY 0x00000200L
+#define TPC_CNTL_STATUS__TPC_ALIGNER_BUSY_MASK 0x00000400L
+#define TPC_CNTL_STATUS__TPC_ALIGNER_BUSY 0x00000400L
+#define TPC_CNTL_STATUS__TPC_RR_FIFO_BUSY_MASK 0x00001000L
+#define TPC_CNTL_STATUS__TPC_RR_FIFO_BUSY 0x00001000L
+#define TPC_CNTL_STATUS__TPC_BLEND_PIPE_BUSY_MASK 0x00002000L
+#define TPC_CNTL_STATUS__TPC_BLEND_PIPE_BUSY 0x00002000L
+#define TPC_CNTL_STATUS__TPC_OUT_FIFO_BUSY_MASK 0x00004000L
+#define TPC_CNTL_STATUS__TPC_OUT_FIFO_BUSY 0x00004000L
+#define TPC_CNTL_STATUS__TPC_BLEND_BUSY_MASK 0x00008000L
+#define TPC_CNTL_STATUS__TPC_BLEND_BUSY 0x00008000L
+#define TPC_CNTL_STATUS__TF_TW_RTS_MASK 0x00010000L
+#define TPC_CNTL_STATUS__TF_TW_RTS 0x00010000L
+#define TPC_CNTL_STATUS__TF_TW_STATE_RTS_MASK 0x00020000L
+#define TPC_CNTL_STATUS__TF_TW_STATE_RTS 0x00020000L
+#define TPC_CNTL_STATUS__TF_TW_RTR_MASK 0x00080000L
+#define TPC_CNTL_STATUS__TF_TW_RTR 0x00080000L
+#define TPC_CNTL_STATUS__TW_TA_RTS_MASK 0x00100000L
+#define TPC_CNTL_STATUS__TW_TA_RTS 0x00100000L
+#define TPC_CNTL_STATUS__TW_TA_TT_RTS_MASK 0x00200000L
+#define TPC_CNTL_STATUS__TW_TA_TT_RTS 0x00200000L
+#define TPC_CNTL_STATUS__TW_TA_LAST_RTS_MASK 0x00400000L
+#define TPC_CNTL_STATUS__TW_TA_LAST_RTS 0x00400000L
+#define TPC_CNTL_STATUS__TW_TA_RTR_MASK 0x00800000L
+#define TPC_CNTL_STATUS__TW_TA_RTR 0x00800000L
+#define TPC_CNTL_STATUS__TA_TB_RTS_MASK 0x01000000L
+#define TPC_CNTL_STATUS__TA_TB_RTS 0x01000000L
+#define TPC_CNTL_STATUS__TA_TB_TT_RTS_MASK 0x02000000L
+#define TPC_CNTL_STATUS__TA_TB_TT_RTS 0x02000000L
+#define TPC_CNTL_STATUS__TA_TB_RTR_MASK 0x08000000L
+#define TPC_CNTL_STATUS__TA_TB_RTR 0x08000000L
+#define TPC_CNTL_STATUS__TA_TF_RTS_MASK 0x10000000L
+#define TPC_CNTL_STATUS__TA_TF_RTS 0x10000000L
+#define TPC_CNTL_STATUS__TA_TF_TC_FIFO_REN_MASK 0x20000000L
+#define TPC_CNTL_STATUS__TA_TF_TC_FIFO_REN 0x20000000L
+#define TPC_CNTL_STATUS__TP_SQ_DEC_MASK 0x40000000L
+#define TPC_CNTL_STATUS__TP_SQ_DEC 0x40000000L
+#define TPC_CNTL_STATUS__TPC_BUSY_MASK 0x80000000L
+#define TPC_CNTL_STATUS__TPC_BUSY 0x80000000L
+
+// TPC_DEBUG0
+#define TPC_DEBUG0__LOD_CNTL_MASK 0x00000003L
+#define TPC_DEBUG0__IC_CTR_MASK 0x0000000cL
+#define TPC_DEBUG0__WALKER_CNTL_MASK 0x000000f0L
+#define TPC_DEBUG0__ALIGNER_CNTL_MASK 0x00000700L
+#define TPC_DEBUG0__PREV_TC_STATE_VALID_MASK 0x00001000L
+#define TPC_DEBUG0__PREV_TC_STATE_VALID 0x00001000L
+#define TPC_DEBUG0__WALKER_STATE_MASK 0x03ff0000L
+#define TPC_DEBUG0__ALIGNER_STATE_MASK 0x0c000000L
+#define TPC_DEBUG0__REG_CLK_EN_MASK 0x20000000L
+#define TPC_DEBUG0__REG_CLK_EN 0x20000000L
+#define TPC_DEBUG0__TPC_CLK_EN_MASK 0x40000000L
+#define TPC_DEBUG0__TPC_CLK_EN 0x40000000L
+#define TPC_DEBUG0__SQ_TP_WAKEUP_MASK 0x80000000L
+#define TPC_DEBUG0__SQ_TP_WAKEUP 0x80000000L
+
+// TPC_DEBUG1
+#define TPC_DEBUG1__UNUSED_MASK 0x00000001L
+#define TPC_DEBUG1__UNUSED 0x00000001L
+
+// TPC_CHICKEN
+#define TPC_CHICKEN__BLEND_PRECISION_MASK 0x00000001L
+#define TPC_CHICKEN__BLEND_PRECISION 0x00000001L
+#define TPC_CHICKEN__SPARE_MASK 0xfffffffeL
+
+// TP0_CNTL_STATUS
+#define TP0_CNTL_STATUS__TP_INPUT_BUSY_MASK 0x00000001L
+#define TP0_CNTL_STATUS__TP_INPUT_BUSY 0x00000001L
+#define TP0_CNTL_STATUS__TP_LOD_BUSY_MASK 0x00000002L
+#define TP0_CNTL_STATUS__TP_LOD_BUSY 0x00000002L
+#define TP0_CNTL_STATUS__TP_LOD_FIFO_BUSY_MASK 0x00000004L
+#define TP0_CNTL_STATUS__TP_LOD_FIFO_BUSY 0x00000004L
+#define TP0_CNTL_STATUS__TP_ADDR_BUSY_MASK 0x00000008L
+#define TP0_CNTL_STATUS__TP_ADDR_BUSY 0x00000008L
+#define TP0_CNTL_STATUS__TP_ALIGN_FIFO_BUSY_MASK 0x00000010L
+#define TP0_CNTL_STATUS__TP_ALIGN_FIFO_BUSY 0x00000010L
+#define TP0_CNTL_STATUS__TP_ALIGNER_BUSY_MASK 0x00000020L
+#define TP0_CNTL_STATUS__TP_ALIGNER_BUSY 0x00000020L
+#define TP0_CNTL_STATUS__TP_TC_FIFO_BUSY_MASK 0x00000040L
+#define TP0_CNTL_STATUS__TP_TC_FIFO_BUSY 0x00000040L
+#define TP0_CNTL_STATUS__TP_RR_FIFO_BUSY_MASK 0x00000080L
+#define TP0_CNTL_STATUS__TP_RR_FIFO_BUSY 0x00000080L
+#define TP0_CNTL_STATUS__TP_FETCH_BUSY_MASK 0x00000100L
+#define TP0_CNTL_STATUS__TP_FETCH_BUSY 0x00000100L
+#define TP0_CNTL_STATUS__TP_CH_BLEND_BUSY_MASK 0x00000200L
+#define TP0_CNTL_STATUS__TP_CH_BLEND_BUSY 0x00000200L
+#define TP0_CNTL_STATUS__TP_TT_BUSY_MASK 0x00000400L
+#define TP0_CNTL_STATUS__TP_TT_BUSY 0x00000400L
+#define TP0_CNTL_STATUS__TP_HICOLOR_BUSY_MASK 0x00000800L
+#define TP0_CNTL_STATUS__TP_HICOLOR_BUSY 0x00000800L
+#define TP0_CNTL_STATUS__TP_BLEND_BUSY_MASK 0x00001000L
+#define TP0_CNTL_STATUS__TP_BLEND_BUSY 0x00001000L
+#define TP0_CNTL_STATUS__TP_OUT_FIFO_BUSY_MASK 0x00002000L
+#define TP0_CNTL_STATUS__TP_OUT_FIFO_BUSY 0x00002000L
+#define TP0_CNTL_STATUS__TP_OUTPUT_BUSY_MASK 0x00004000L
+#define TP0_CNTL_STATUS__TP_OUTPUT_BUSY 0x00004000L
+#define TP0_CNTL_STATUS__IN_LC_RTS_MASK 0x00010000L
+#define TP0_CNTL_STATUS__IN_LC_RTS 0x00010000L
+#define TP0_CNTL_STATUS__LC_LA_RTS_MASK 0x00020000L
+#define TP0_CNTL_STATUS__LC_LA_RTS 0x00020000L
+#define TP0_CNTL_STATUS__LA_FL_RTS_MASK 0x00040000L
+#define TP0_CNTL_STATUS__LA_FL_RTS 0x00040000L
+#define TP0_CNTL_STATUS__FL_TA_RTS_MASK 0x00080000L
+#define TP0_CNTL_STATUS__FL_TA_RTS 0x00080000L
+#define TP0_CNTL_STATUS__TA_FA_RTS_MASK 0x00100000L
+#define TP0_CNTL_STATUS__TA_FA_RTS 0x00100000L
+#define TP0_CNTL_STATUS__TA_FA_TT_RTS_MASK 0x00200000L
+#define TP0_CNTL_STATUS__TA_FA_TT_RTS 0x00200000L
+#define TP0_CNTL_STATUS__FA_AL_RTS_MASK 0x00400000L
+#define TP0_CNTL_STATUS__FA_AL_RTS 0x00400000L
+#define TP0_CNTL_STATUS__FA_AL_TT_RTS_MASK 0x00800000L
+#define TP0_CNTL_STATUS__FA_AL_TT_RTS 0x00800000L
+#define TP0_CNTL_STATUS__AL_TF_RTS_MASK 0x01000000L
+#define TP0_CNTL_STATUS__AL_TF_RTS 0x01000000L
+#define TP0_CNTL_STATUS__AL_TF_TT_RTS_MASK 0x02000000L
+#define TP0_CNTL_STATUS__AL_TF_TT_RTS 0x02000000L
+#define TP0_CNTL_STATUS__TF_TB_RTS_MASK 0x04000000L
+#define TP0_CNTL_STATUS__TF_TB_RTS 0x04000000L
+#define TP0_CNTL_STATUS__TF_TB_TT_RTS_MASK 0x08000000L
+#define TP0_CNTL_STATUS__TF_TB_TT_RTS 0x08000000L
+#define TP0_CNTL_STATUS__TB_TT_RTS_MASK 0x10000000L
+#define TP0_CNTL_STATUS__TB_TT_RTS 0x10000000L
+#define TP0_CNTL_STATUS__TB_TT_TT_RESET_MASK 0x20000000L
+#define TP0_CNTL_STATUS__TB_TT_TT_RESET 0x20000000L
+#define TP0_CNTL_STATUS__TB_TO_RTS_MASK 0x40000000L
+#define TP0_CNTL_STATUS__TB_TO_RTS 0x40000000L
+#define TP0_CNTL_STATUS__TP_BUSY_MASK 0x80000000L
+#define TP0_CNTL_STATUS__TP_BUSY 0x80000000L
+
+// TP0_DEBUG
+#define TP0_DEBUG__Q_LOD_CNTL_MASK 0x00000003L
+#define TP0_DEBUG__Q_SQ_TP_WAKEUP_MASK 0x00000008L
+#define TP0_DEBUG__Q_SQ_TP_WAKEUP 0x00000008L
+#define TP0_DEBUG__FL_TA_ADDRESSER_CNTL_MASK 0x001ffff0L
+#define TP0_DEBUG__REG_CLK_EN_MASK 0x00200000L
+#define TP0_DEBUG__REG_CLK_EN 0x00200000L
+#define TP0_DEBUG__PERF_CLK_EN_MASK 0x00400000L
+#define TP0_DEBUG__PERF_CLK_EN 0x00400000L
+#define TP0_DEBUG__TP_CLK_EN_MASK 0x00800000L
+#define TP0_DEBUG__TP_CLK_EN 0x00800000L
+#define TP0_DEBUG__Q_WALKER_CNTL_MASK 0x0f000000L
+#define TP0_DEBUG__Q_ALIGNER_CNTL_MASK 0x70000000L
+
+// TP0_CHICKEN
+#define TP0_CHICKEN__TT_MODE_MASK 0x00000001L
+#define TP0_CHICKEN__TT_MODE 0x00000001L
+#define TP0_CHICKEN__VFETCH_ADDRESS_MODE_MASK 0x00000002L
+#define TP0_CHICKEN__VFETCH_ADDRESS_MODE 0x00000002L
+#define TP0_CHICKEN__SPARE_MASK 0xfffffffcL
+
+// TP0_PERFCOUNTER0_SELECT
+#define TP0_PERFCOUNTER0_SELECT__PERFCOUNTER_SELECT_MASK 0x000000ffL
+
+// TP0_PERFCOUNTER0_HI
+#define TP0_PERFCOUNTER0_HI__PERFCOUNTER_HI_MASK 0x0000ffffL
+
+// TP0_PERFCOUNTER0_LOW
+#define TP0_PERFCOUNTER0_LOW__PERFCOUNTER_LOW_MASK 0xffffffffL
+
+// TP0_PERFCOUNTER1_SELECT
+#define TP0_PERFCOUNTER1_SELECT__PERFCOUNTER_SELECT_MASK 0x000000ffL
+
+// TP0_PERFCOUNTER1_HI
+#define TP0_PERFCOUNTER1_HI__PERFCOUNTER_HI_MASK 0x0000ffffL
+
+// TP0_PERFCOUNTER1_LOW
+#define TP0_PERFCOUNTER1_LOW__PERFCOUNTER_LOW_MASK 0xffffffffL
+
+// TCM_PERFCOUNTER0_SELECT
+#define TCM_PERFCOUNTER0_SELECT__PERFCOUNTER_SELECT_MASK 0x000000ffL
+
+// TCM_PERFCOUNTER1_SELECT
+#define TCM_PERFCOUNTER1_SELECT__PERFCOUNTER_SELECT_MASK 0x000000ffL
+
+// TCM_PERFCOUNTER0_HI
+#define TCM_PERFCOUNTER0_HI__PERFCOUNTER_HI_MASK 0x0000ffffL
+
+// TCM_PERFCOUNTER1_HI
+#define TCM_PERFCOUNTER1_HI__PERFCOUNTER_HI_MASK 0x0000ffffL
+
+// TCM_PERFCOUNTER0_LOW
+#define TCM_PERFCOUNTER0_LOW__PERFCOUNTER_LOW_MASK 0xffffffffL
+
+// TCM_PERFCOUNTER1_LOW
+#define TCM_PERFCOUNTER1_LOW__PERFCOUNTER_LOW_MASK 0xffffffffL
+
+// TCF_PERFCOUNTER0_SELECT
+#define TCF_PERFCOUNTER0_SELECT__PERFCOUNTER_SELECT_MASK 0x000000ffL
+
+// TCF_PERFCOUNTER1_SELECT
+#define TCF_PERFCOUNTER1_SELECT__PERFCOUNTER_SELECT_MASK 0x000000ffL
+
+// TCF_PERFCOUNTER2_SELECT
+#define TCF_PERFCOUNTER2_SELECT__PERFCOUNTER_SELECT_MASK 0x000000ffL
+
+// TCF_PERFCOUNTER3_SELECT
+#define TCF_PERFCOUNTER3_SELECT__PERFCOUNTER_SELECT_MASK 0x000000ffL
+
+// TCF_PERFCOUNTER4_SELECT
+#define TCF_PERFCOUNTER4_SELECT__PERFCOUNTER_SELECT_MASK 0x000000ffL
+
+// TCF_PERFCOUNTER5_SELECT
+#define TCF_PERFCOUNTER5_SELECT__PERFCOUNTER_SELECT_MASK 0x000000ffL
+
+// TCF_PERFCOUNTER6_SELECT
+#define TCF_PERFCOUNTER6_SELECT__PERFCOUNTER_SELECT_MASK 0x000000ffL
+
+// TCF_PERFCOUNTER7_SELECT
+#define TCF_PERFCOUNTER7_SELECT__PERFCOUNTER_SELECT_MASK 0x000000ffL
+
+// TCF_PERFCOUNTER8_SELECT
+#define TCF_PERFCOUNTER8_SELECT__PERFCOUNTER_SELECT_MASK 0x000000ffL
+
+// TCF_PERFCOUNTER9_SELECT
+#define TCF_PERFCOUNTER9_SELECT__PERFCOUNTER_SELECT_MASK 0x000000ffL
+
+// TCF_PERFCOUNTER10_SELECT
+#define TCF_PERFCOUNTER10_SELECT__PERFCOUNTER_SELECT_MASK 0x000000ffL
+
+// TCF_PERFCOUNTER11_SELECT
+#define TCF_PERFCOUNTER11_SELECT__PERFCOUNTER_SELECT_MASK 0x000000ffL
+
+// TCF_PERFCOUNTER0_HI
+#define TCF_PERFCOUNTER0_HI__PERFCOUNTER_HI_MASK 0x0000ffffL
+
+// TCF_PERFCOUNTER1_HI
+#define TCF_PERFCOUNTER1_HI__PERFCOUNTER_HI_MASK 0x0000ffffL
+
+// TCF_PERFCOUNTER2_HI
+#define TCF_PERFCOUNTER2_HI__PERFCOUNTER_HI_MASK 0x0000ffffL
+
+// TCF_PERFCOUNTER3_HI
+#define TCF_PERFCOUNTER3_HI__PERFCOUNTER_HI_MASK 0x0000ffffL
+
+// TCF_PERFCOUNTER4_HI
+#define TCF_PERFCOUNTER4_HI__PERFCOUNTER_HI_MASK 0x0000ffffL
+
+// TCF_PERFCOUNTER5_HI
+#define TCF_PERFCOUNTER5_HI__PERFCOUNTER_HI_MASK 0x0000ffffL
+
+// TCF_PERFCOUNTER6_HI
+#define TCF_PERFCOUNTER6_HI__PERFCOUNTER_HI_MASK 0x0000ffffL
+
+// TCF_PERFCOUNTER7_HI
+#define TCF_PERFCOUNTER7_HI__PERFCOUNTER_HI_MASK 0x0000ffffL
+
+// TCF_PERFCOUNTER8_HI
+#define TCF_PERFCOUNTER8_HI__PERFCOUNTER_HI_MASK 0x0000ffffL
+
+// TCF_PERFCOUNTER9_HI
+#define TCF_PERFCOUNTER9_HI__PERFCOUNTER_HI_MASK 0x0000ffffL
+
+// TCF_PERFCOUNTER10_HI
+#define TCF_PERFCOUNTER10_HI__PERFCOUNTER_HI_MASK 0x0000ffffL
+
+// TCF_PERFCOUNTER11_HI
+#define TCF_PERFCOUNTER11_HI__PERFCOUNTER_HI_MASK 0x0000ffffL
+
+// TCF_PERFCOUNTER0_LOW
+#define TCF_PERFCOUNTER0_LOW__PERFCOUNTER_LOW_MASK 0xffffffffL
+
+// TCF_PERFCOUNTER1_LOW
+#define TCF_PERFCOUNTER1_LOW__PERFCOUNTER_LOW_MASK 0xffffffffL
+
+// TCF_PERFCOUNTER2_LOW
+#define TCF_PERFCOUNTER2_LOW__PERFCOUNTER_LOW_MASK 0xffffffffL
+
+// TCF_PERFCOUNTER3_LOW
+#define TCF_PERFCOUNTER3_LOW__PERFCOUNTER_LOW_MASK 0xffffffffL
+
+// TCF_PERFCOUNTER4_LOW
+#define TCF_PERFCOUNTER4_LOW__PERFCOUNTER_LOW_MASK 0xffffffffL
+
+// TCF_PERFCOUNTER5_LOW
+#define TCF_PERFCOUNTER5_LOW__PERFCOUNTER_LOW_MASK 0xffffffffL
+
+// TCF_PERFCOUNTER6_LOW
+#define TCF_PERFCOUNTER6_LOW__PERFCOUNTER_LOW_MASK 0xffffffffL
+
+// TCF_PERFCOUNTER7_LOW
+#define TCF_PERFCOUNTER7_LOW__PERFCOUNTER_LOW_MASK 0xffffffffL
+
+// TCF_PERFCOUNTER8_LOW
+#define TCF_PERFCOUNTER8_LOW__PERFCOUNTER_LOW_MASK 0xffffffffL
+
+// TCF_PERFCOUNTER9_LOW
+#define TCF_PERFCOUNTER9_LOW__PERFCOUNTER_LOW_MASK 0xffffffffL
+
+// TCF_PERFCOUNTER10_LOW
+#define TCF_PERFCOUNTER10_LOW__PERFCOUNTER_LOW_MASK 0xffffffffL
+
+// TCF_PERFCOUNTER11_LOW
+#define TCF_PERFCOUNTER11_LOW__PERFCOUNTER_LOW_MASK 0xffffffffL
+
+// TCF_DEBUG
+#define TCF_DEBUG__not_MH_TC_rtr_MASK 0x00000040L
+#define TCF_DEBUG__not_MH_TC_rtr 0x00000040L
+#define TCF_DEBUG__TC_MH_send_MASK 0x00000080L
+#define TCF_DEBUG__TC_MH_send 0x00000080L
+#define TCF_DEBUG__not_FG0_rtr_MASK 0x00000100L
+#define TCF_DEBUG__not_FG0_rtr 0x00000100L
+#define TCF_DEBUG__not_TCB_TCO_rtr_MASK 0x00001000L
+#define TCF_DEBUG__not_TCB_TCO_rtr 0x00001000L
+#define TCF_DEBUG__TCB_ff_stall_MASK 0x00002000L
+#define TCF_DEBUG__TCB_ff_stall 0x00002000L
+#define TCF_DEBUG__TCB_miss_stall_MASK 0x00004000L
+#define TCF_DEBUG__TCB_miss_stall 0x00004000L
+#define TCF_DEBUG__TCA_TCB_stall_MASK 0x00008000L
+#define TCF_DEBUG__TCA_TCB_stall 0x00008000L
+#define TCF_DEBUG__PF0_stall_MASK 0x00010000L
+#define TCF_DEBUG__PF0_stall 0x00010000L
+#define TCF_DEBUG__TP0_full_MASK 0x00100000L
+#define TCF_DEBUG__TP0_full 0x00100000L
+#define TCF_DEBUG__TPC_full_MASK 0x01000000L
+#define TCF_DEBUG__TPC_full 0x01000000L
+#define TCF_DEBUG__not_TPC_rtr_MASK 0x02000000L
+#define TCF_DEBUG__not_TPC_rtr 0x02000000L
+#define TCF_DEBUG__tca_state_rts_MASK 0x04000000L
+#define TCF_DEBUG__tca_state_rts 0x04000000L
+#define TCF_DEBUG__tca_rts_MASK 0x08000000L
+#define TCF_DEBUG__tca_rts 0x08000000L
+
+// TCA_FIFO_DEBUG
+#define TCA_FIFO_DEBUG__tp0_full_MASK 0x00000001L
+#define TCA_FIFO_DEBUG__tp0_full 0x00000001L
+#define TCA_FIFO_DEBUG__tpc_full_MASK 0x00000010L
+#define TCA_FIFO_DEBUG__tpc_full 0x00000010L
+#define TCA_FIFO_DEBUG__load_tpc_fifo_MASK 0x00000020L
+#define TCA_FIFO_DEBUG__load_tpc_fifo 0x00000020L
+#define TCA_FIFO_DEBUG__load_tp_fifos_MASK 0x00000040L
+#define TCA_FIFO_DEBUG__load_tp_fifos 0x00000040L
+#define TCA_FIFO_DEBUG__FW_full_MASK 0x00000080L
+#define TCA_FIFO_DEBUG__FW_full 0x00000080L
+#define TCA_FIFO_DEBUG__not_FW_rtr0_MASK 0x00000100L
+#define TCA_FIFO_DEBUG__not_FW_rtr0 0x00000100L
+#define TCA_FIFO_DEBUG__FW_rts0_MASK 0x00001000L
+#define TCA_FIFO_DEBUG__FW_rts0 0x00001000L
+#define TCA_FIFO_DEBUG__not_FW_tpc_rtr_MASK 0x00010000L
+#define TCA_FIFO_DEBUG__not_FW_tpc_rtr 0x00010000L
+#define TCA_FIFO_DEBUG__FW_tpc_rts_MASK 0x00020000L
+#define TCA_FIFO_DEBUG__FW_tpc_rts 0x00020000L
+
+// TCA_PROBE_DEBUG
+#define TCA_PROBE_DEBUG__ProbeFilter_stall_MASK 0x00000001L
+#define TCA_PROBE_DEBUG__ProbeFilter_stall 0x00000001L
+
+// TCA_TPC_DEBUG
+#define TCA_TPC_DEBUG__captue_state_rts_MASK 0x00001000L
+#define TCA_TPC_DEBUG__captue_state_rts 0x00001000L
+#define TCA_TPC_DEBUG__capture_tca_rts_MASK 0x00002000L
+#define TCA_TPC_DEBUG__capture_tca_rts 0x00002000L
+
+// TCB_CORE_DEBUG
+#define TCB_CORE_DEBUG__access512_MASK 0x00000001L
+#define TCB_CORE_DEBUG__access512 0x00000001L
+#define TCB_CORE_DEBUG__tiled_MASK 0x00000002L
+#define TCB_CORE_DEBUG__tiled 0x00000002L
+#define TCB_CORE_DEBUG__opcode_MASK 0x00000070L
+#define TCB_CORE_DEBUG__format_MASK 0x00003f00L
+#define TCB_CORE_DEBUG__sector_format_MASK 0x001f0000L
+#define TCB_CORE_DEBUG__sector_format512_MASK 0x07000000L
+
+// TCB_TAG0_DEBUG
+#define TCB_TAG0_DEBUG__mem_read_cycle_MASK 0x000003ffL
+#define TCB_TAG0_DEBUG__tag_access_cycle_MASK 0x001ff000L
+#define TCB_TAG0_DEBUG__miss_stall_MASK 0x00800000L
+#define TCB_TAG0_DEBUG__miss_stall 0x00800000L
+#define TCB_TAG0_DEBUG__num_feee_lines_MASK 0x1f000000L
+#define TCB_TAG0_DEBUG__max_misses_MASK 0xe0000000L
+
+// TCB_TAG1_DEBUG
+#define TCB_TAG1_DEBUG__mem_read_cycle_MASK 0x000003ffL
+#define TCB_TAG1_DEBUG__tag_access_cycle_MASK 0x001ff000L
+#define TCB_TAG1_DEBUG__miss_stall_MASK 0x00800000L
+#define TCB_TAG1_DEBUG__miss_stall 0x00800000L
+#define TCB_TAG1_DEBUG__num_feee_lines_MASK 0x1f000000L
+#define TCB_TAG1_DEBUG__max_misses_MASK 0xe0000000L
+
+// TCB_TAG2_DEBUG
+#define TCB_TAG2_DEBUG__mem_read_cycle_MASK 0x000003ffL
+#define TCB_TAG2_DEBUG__tag_access_cycle_MASK 0x001ff000L
+#define TCB_TAG2_DEBUG__miss_stall_MASK 0x00800000L
+#define TCB_TAG2_DEBUG__miss_stall 0x00800000L
+#define TCB_TAG2_DEBUG__num_feee_lines_MASK 0x1f000000L
+#define TCB_TAG2_DEBUG__max_misses_MASK 0xe0000000L
+
+// TCB_TAG3_DEBUG
+#define TCB_TAG3_DEBUG__mem_read_cycle_MASK 0x000003ffL
+#define TCB_TAG3_DEBUG__tag_access_cycle_MASK 0x001ff000L
+#define TCB_TAG3_DEBUG__miss_stall_MASK 0x00800000L
+#define TCB_TAG3_DEBUG__miss_stall 0x00800000L
+#define TCB_TAG3_DEBUG__num_feee_lines_MASK 0x1f000000L
+#define TCB_TAG3_DEBUG__max_misses_MASK 0xe0000000L
+
+// TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__left_done_MASK 0x00000001L
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__left_done 0x00000001L
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__fg0_sends_left_MASK 0x00000004L
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__fg0_sends_left 0x00000004L
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__one_sector_to_go_left_q_MASK 0x00000010L
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__one_sector_to_go_left_q 0x00000010L
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__no_sectors_to_go_MASK 0x00000020L
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__no_sectors_to_go 0x00000020L
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__update_left_MASK 0x00000040L
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__update_left 0x00000040L
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__sector_mask_left_count_q_MASK 0x00000f80L
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__sector_mask_left_q_MASK 0x0ffff000L
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__valid_left_q_MASK 0x10000000L
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__valid_left_q 0x10000000L
+
+// TCB_FETCH_GEN_WALKER_DEBUG
+#define TCB_FETCH_GEN_WALKER_DEBUG__quad_sel_left_MASK 0x00000030L
+#define TCB_FETCH_GEN_WALKER_DEBUG__set_sel_left_MASK 0x000000c0L
+#define TCB_FETCH_GEN_WALKER_DEBUG__right_eq_left_MASK 0x00000800L
+#define TCB_FETCH_GEN_WALKER_DEBUG__right_eq_left 0x00000800L
+#define TCB_FETCH_GEN_WALKER_DEBUG__ff_fg_type512_MASK 0x00007000L
+#define TCB_FETCH_GEN_WALKER_DEBUG__busy_MASK 0x00008000L
+#define TCB_FETCH_GEN_WALKER_DEBUG__busy 0x00008000L
+#define TCB_FETCH_GEN_WALKER_DEBUG__setquads_to_send_MASK 0x000f0000L
+
+// TCB_FETCH_GEN_PIPE0_DEBUG
+#define TCB_FETCH_GEN_PIPE0_DEBUG__tc0_arb_rts_MASK 0x00000001L
+#define TCB_FETCH_GEN_PIPE0_DEBUG__tc0_arb_rts 0x00000001L
+#define TCB_FETCH_GEN_PIPE0_DEBUG__ga_out_rts_MASK 0x00000004L
+#define TCB_FETCH_GEN_PIPE0_DEBUG__ga_out_rts 0x00000004L
+#define TCB_FETCH_GEN_PIPE0_DEBUG__tc_arb_format_MASK 0x0000fff0L
+#define TCB_FETCH_GEN_PIPE0_DEBUG__tc_arb_fmsopcode_MASK 0x001f0000L
+#define TCB_FETCH_GEN_PIPE0_DEBUG__tc_arb_request_type_MASK 0x00600000L
+#define TCB_FETCH_GEN_PIPE0_DEBUG__busy_MASK 0x00800000L
+#define TCB_FETCH_GEN_PIPE0_DEBUG__busy 0x00800000L
+#define TCB_FETCH_GEN_PIPE0_DEBUG__fgo_busy_MASK 0x01000000L
+#define TCB_FETCH_GEN_PIPE0_DEBUG__fgo_busy 0x01000000L
+#define TCB_FETCH_GEN_PIPE0_DEBUG__ga_busy_MASK 0x02000000L
+#define TCB_FETCH_GEN_PIPE0_DEBUG__ga_busy 0x02000000L
+#define TCB_FETCH_GEN_PIPE0_DEBUG__mc_sel_q_MASK 0x0c000000L
+#define TCB_FETCH_GEN_PIPE0_DEBUG__valid_q_MASK 0x10000000L
+#define TCB_FETCH_GEN_PIPE0_DEBUG__valid_q 0x10000000L
+#define TCB_FETCH_GEN_PIPE0_DEBUG__arb_RTR_MASK 0x40000000L
+#define TCB_FETCH_GEN_PIPE0_DEBUG__arb_RTR 0x40000000L
+
+// TCD_INPUT0_DEBUG
+#define TCD_INPUT0_DEBUG__empty_MASK 0x00010000L
+#define TCD_INPUT0_DEBUG__empty 0x00010000L
+#define TCD_INPUT0_DEBUG__full_MASK 0x00020000L
+#define TCD_INPUT0_DEBUG__full 0x00020000L
+#define TCD_INPUT0_DEBUG__valid_q1_MASK 0x00100000L
+#define TCD_INPUT0_DEBUG__valid_q1 0x00100000L
+#define TCD_INPUT0_DEBUG__cnt_q1_MASK 0x00600000L
+#define TCD_INPUT0_DEBUG__last_send_q1_MASK 0x00800000L
+#define TCD_INPUT0_DEBUG__last_send_q1 0x00800000L
+#define TCD_INPUT0_DEBUG__ip_send_MASK 0x01000000L
+#define TCD_INPUT0_DEBUG__ip_send 0x01000000L
+#define TCD_INPUT0_DEBUG__ipbuf_dxt_send_MASK 0x02000000L
+#define TCD_INPUT0_DEBUG__ipbuf_dxt_send 0x02000000L
+#define TCD_INPUT0_DEBUG__ipbuf_busy_MASK 0x04000000L
+#define TCD_INPUT0_DEBUG__ipbuf_busy 0x04000000L
+
+// TCD_DEGAMMA_DEBUG
+#define TCD_DEGAMMA_DEBUG__dgmm_ftfconv_dgmmen_MASK 0x00000003L
+#define TCD_DEGAMMA_DEBUG__dgmm_ctrl_dgmm8_MASK 0x00000004L
+#define TCD_DEGAMMA_DEBUG__dgmm_ctrl_dgmm8 0x00000004L
+#define TCD_DEGAMMA_DEBUG__dgmm_ctrl_last_send_MASK 0x00000008L
+#define TCD_DEGAMMA_DEBUG__dgmm_ctrl_last_send 0x00000008L
+#define TCD_DEGAMMA_DEBUG__dgmm_ctrl_send_MASK 0x00000010L
+#define TCD_DEGAMMA_DEBUG__dgmm_ctrl_send 0x00000010L
+#define TCD_DEGAMMA_DEBUG__dgmm_stall_MASK 0x00000020L
+#define TCD_DEGAMMA_DEBUG__dgmm_stall 0x00000020L
+#define TCD_DEGAMMA_DEBUG__dgmm_pstate_MASK 0x00000040L
+#define TCD_DEGAMMA_DEBUG__dgmm_pstate 0x00000040L
+
+// TCD_DXTMUX_SCTARB_DEBUG
+#define TCD_DXTMUX_SCTARB_DEBUG__pstate_MASK 0x00000200L
+#define TCD_DXTMUX_SCTARB_DEBUG__pstate 0x00000200L
+#define TCD_DXTMUX_SCTARB_DEBUG__sctrmx_rtr_MASK 0x00000400L
+#define TCD_DXTMUX_SCTARB_DEBUG__sctrmx_rtr 0x00000400L
+#define TCD_DXTMUX_SCTARB_DEBUG__dxtc_rtr_MASK 0x00000800L
+#define TCD_DXTMUX_SCTARB_DEBUG__dxtc_rtr 0x00000800L
+#define TCD_DXTMUX_SCTARB_DEBUG__sctrarb_multcyl_send_MASK 0x00008000L
+#define TCD_DXTMUX_SCTARB_DEBUG__sctrarb_multcyl_send 0x00008000L
+#define TCD_DXTMUX_SCTARB_DEBUG__sctrmx0_sctrarb_rts_MASK 0x00010000L
+#define TCD_DXTMUX_SCTARB_DEBUG__sctrmx0_sctrarb_rts 0x00010000L
+#define TCD_DXTMUX_SCTARB_DEBUG__dxtc_sctrarb_send_MASK 0x00100000L
+#define TCD_DXTMUX_SCTARB_DEBUG__dxtc_sctrarb_send 0x00100000L
+#define TCD_DXTMUX_SCTARB_DEBUG__dxtc_dgmmpd_last_send_MASK 0x08000000L
+#define TCD_DXTMUX_SCTARB_DEBUG__dxtc_dgmmpd_last_send 0x08000000L
+#define TCD_DXTMUX_SCTARB_DEBUG__dxtc_dgmmpd_send_MASK 0x10000000L
+#define TCD_DXTMUX_SCTARB_DEBUG__dxtc_dgmmpd_send 0x10000000L
+#define TCD_DXTMUX_SCTARB_DEBUG__dcmp_mux_send_MASK 0x20000000L
+#define TCD_DXTMUX_SCTARB_DEBUG__dcmp_mux_send 0x20000000L
+
+// TCD_DXTC_ARB_DEBUG
+#define TCD_DXTC_ARB_DEBUG__n0_stall_MASK 0x00000010L
+#define TCD_DXTC_ARB_DEBUG__n0_stall 0x00000010L
+#define TCD_DXTC_ARB_DEBUG__pstate_MASK 0x00000020L
+#define TCD_DXTC_ARB_DEBUG__pstate 0x00000020L
+#define TCD_DXTC_ARB_DEBUG__arb_dcmp01_last_send_MASK 0x00000040L
+#define TCD_DXTC_ARB_DEBUG__arb_dcmp01_last_send 0x00000040L
+#define TCD_DXTC_ARB_DEBUG__arb_dcmp01_cnt_MASK 0x00000180L
+#define TCD_DXTC_ARB_DEBUG__arb_dcmp01_sector_MASK 0x00000e00L
+#define TCD_DXTC_ARB_DEBUG__arb_dcmp01_cacheline_MASK 0x0003f000L
+#define TCD_DXTC_ARB_DEBUG__arb_dcmp01_format_MASK 0x3ffc0000L
+#define TCD_DXTC_ARB_DEBUG__arb_dcmp01_send_MASK 0x40000000L
+#define TCD_DXTC_ARB_DEBUG__arb_dcmp01_send 0x40000000L
+#define TCD_DXTC_ARB_DEBUG__n0_dxt2_4_types_MASK 0x80000000L
+#define TCD_DXTC_ARB_DEBUG__n0_dxt2_4_types 0x80000000L
+
+// TCD_STALLS_DEBUG
+#define TCD_STALLS_DEBUG__not_multcyl_sctrarb_rtr_MASK 0x00000400L
+#define TCD_STALLS_DEBUG__not_multcyl_sctrarb_rtr 0x00000400L
+#define TCD_STALLS_DEBUG__not_sctrmx0_sctrarb_rtr_MASK 0x00000800L
+#define TCD_STALLS_DEBUG__not_sctrmx0_sctrarb_rtr 0x00000800L
+#define TCD_STALLS_DEBUG__not_dcmp0_arb_rtr_MASK 0x00020000L
+#define TCD_STALLS_DEBUG__not_dcmp0_arb_rtr 0x00020000L
+#define TCD_STALLS_DEBUG__not_dgmmpd_dxtc_rtr_MASK 0x00040000L
+#define TCD_STALLS_DEBUG__not_dgmmpd_dxtc_rtr 0x00040000L
+#define TCD_STALLS_DEBUG__not_mux_dcmp_rtr_MASK 0x00080000L
+#define TCD_STALLS_DEBUG__not_mux_dcmp_rtr 0x00080000L
+#define TCD_STALLS_DEBUG__not_incoming_rtr_MASK 0x80000000L
+#define TCD_STALLS_DEBUG__not_incoming_rtr 0x80000000L
+
+// TCO_STALLS_DEBUG
+#define TCO_STALLS_DEBUG__quad0_sg_crd_RTR_MASK 0x00000020L
+#define TCO_STALLS_DEBUG__quad0_sg_crd_RTR 0x00000020L
+#define TCO_STALLS_DEBUG__quad0_rl_sg_RTR_MASK 0x00000040L
+#define TCO_STALLS_DEBUG__quad0_rl_sg_RTR 0x00000040L
+#define TCO_STALLS_DEBUG__quad0_TCO_TCB_rtr_d_MASK 0x00000080L
+#define TCO_STALLS_DEBUG__quad0_TCO_TCB_rtr_d 0x00000080L
+
+// TCO_QUAD0_DEBUG0
+#define TCO_QUAD0_DEBUG0__rl_sg_sector_format_MASK 0x000000ffL
+#define TCO_QUAD0_DEBUG0__rl_sg_end_of_sample_MASK 0x00000100L
+#define TCO_QUAD0_DEBUG0__rl_sg_end_of_sample 0x00000100L
+#define TCO_QUAD0_DEBUG0__rl_sg_rtr_MASK 0x00000200L
+#define TCO_QUAD0_DEBUG0__rl_sg_rtr 0x00000200L
+#define TCO_QUAD0_DEBUG0__rl_sg_rts_MASK 0x00000400L
+#define TCO_QUAD0_DEBUG0__rl_sg_rts 0x00000400L
+#define TCO_QUAD0_DEBUG0__sg_crd_end_of_sample_MASK 0x00000800L
+#define TCO_QUAD0_DEBUG0__sg_crd_end_of_sample 0x00000800L
+#define TCO_QUAD0_DEBUG0__sg_crd_rtr_MASK 0x00001000L
+#define TCO_QUAD0_DEBUG0__sg_crd_rtr 0x00001000L
+#define TCO_QUAD0_DEBUG0__sg_crd_rts_MASK 0x00002000L
+#define TCO_QUAD0_DEBUG0__sg_crd_rts 0x00002000L
+#define TCO_QUAD0_DEBUG0__stageN1_valid_q_MASK 0x00010000L
+#define TCO_QUAD0_DEBUG0__stageN1_valid_q 0x00010000L
+#define TCO_QUAD0_DEBUG0__read_cache_q_MASK 0x01000000L
+#define TCO_QUAD0_DEBUG0__read_cache_q 0x01000000L
+#define TCO_QUAD0_DEBUG0__cache_read_RTR_MASK 0x02000000L
+#define TCO_QUAD0_DEBUG0__cache_read_RTR 0x02000000L
+#define TCO_QUAD0_DEBUG0__all_sectors_written_set3_MASK 0x04000000L
+#define TCO_QUAD0_DEBUG0__all_sectors_written_set3 0x04000000L
+#define TCO_QUAD0_DEBUG0__all_sectors_written_set2_MASK 0x08000000L
+#define TCO_QUAD0_DEBUG0__all_sectors_written_set2 0x08000000L
+#define TCO_QUAD0_DEBUG0__all_sectors_written_set1_MASK 0x10000000L
+#define TCO_QUAD0_DEBUG0__all_sectors_written_set1 0x10000000L
+#define TCO_QUAD0_DEBUG0__all_sectors_written_set0_MASK 0x20000000L
+#define TCO_QUAD0_DEBUG0__all_sectors_written_set0 0x20000000L
+#define TCO_QUAD0_DEBUG0__busy_MASK 0x40000000L
+#define TCO_QUAD0_DEBUG0__busy 0x40000000L
+
+// TCO_QUAD0_DEBUG1
+#define TCO_QUAD0_DEBUG1__fifo_busy_MASK 0x00000001L
+#define TCO_QUAD0_DEBUG1__fifo_busy 0x00000001L
+#define TCO_QUAD0_DEBUG1__empty_MASK 0x00000002L
+#define TCO_QUAD0_DEBUG1__empty 0x00000002L
+#define TCO_QUAD0_DEBUG1__full_MASK 0x00000004L
+#define TCO_QUAD0_DEBUG1__full 0x00000004L
+#define TCO_QUAD0_DEBUG1__write_enable_MASK 0x00000008L
+#define TCO_QUAD0_DEBUG1__write_enable 0x00000008L
+#define TCO_QUAD0_DEBUG1__fifo_write_ptr_MASK 0x000007f0L
+#define TCO_QUAD0_DEBUG1__fifo_read_ptr_MASK 0x0003f800L
+#define TCO_QUAD0_DEBUG1__cache_read_busy_MASK 0x00100000L
+#define TCO_QUAD0_DEBUG1__cache_read_busy 0x00100000L
+#define TCO_QUAD0_DEBUG1__latency_fifo_busy_MASK 0x00200000L
+#define TCO_QUAD0_DEBUG1__latency_fifo_busy 0x00200000L
+#define TCO_QUAD0_DEBUG1__input_quad_busy_MASK 0x00400000L
+#define TCO_QUAD0_DEBUG1__input_quad_busy 0x00400000L
+#define TCO_QUAD0_DEBUG1__tco_quad_pipe_busy_MASK 0x00800000L
+#define TCO_QUAD0_DEBUG1__tco_quad_pipe_busy 0x00800000L
+#define TCO_QUAD0_DEBUG1__TCB_TCO_rtr_d_MASK 0x01000000L
+#define TCO_QUAD0_DEBUG1__TCB_TCO_rtr_d 0x01000000L
+#define TCO_QUAD0_DEBUG1__TCB_TCO_xfc_q_MASK 0x02000000L
+#define TCO_QUAD0_DEBUG1__TCB_TCO_xfc_q 0x02000000L
+#define TCO_QUAD0_DEBUG1__rl_sg_rtr_MASK 0x04000000L
+#define TCO_QUAD0_DEBUG1__rl_sg_rtr 0x04000000L
+#define TCO_QUAD0_DEBUG1__rl_sg_rts_MASK 0x08000000L
+#define TCO_QUAD0_DEBUG1__rl_sg_rts 0x08000000L
+#define TCO_QUAD0_DEBUG1__sg_crd_rtr_MASK 0x10000000L
+#define TCO_QUAD0_DEBUG1__sg_crd_rtr 0x10000000L
+#define TCO_QUAD0_DEBUG1__sg_crd_rts_MASK 0x20000000L
+#define TCO_QUAD0_DEBUG1__sg_crd_rts 0x20000000L
+#define TCO_QUAD0_DEBUG1__TCO_TCB_read_xfc_MASK 0x40000000L
+#define TCO_QUAD0_DEBUG1__TCO_TCB_read_xfc 0x40000000L
+
+// SQ_GPR_MANAGEMENT
+#define SQ_GPR_MANAGEMENT__REG_DYNAMIC_MASK 0x00000001L
+#define SQ_GPR_MANAGEMENT__REG_DYNAMIC 0x00000001L
+#define SQ_GPR_MANAGEMENT__REG_SIZE_PIX_MASK 0x000007f0L
+#define SQ_GPR_MANAGEMENT__REG_SIZE_VTX_MASK 0x0007f000L
+
+// SQ_FLOW_CONTROL
+#define SQ_FLOW_CONTROL__INPUT_ARBITRATION_POLICY_MASK 0x00000003L
+#define SQ_FLOW_CONTROL__ONE_THREAD_MASK 0x00000010L
+#define SQ_FLOW_CONTROL__ONE_THREAD 0x00000010L
+#define SQ_FLOW_CONTROL__ONE_ALU_MASK 0x00000100L
+#define SQ_FLOW_CONTROL__ONE_ALU 0x00000100L
+#define SQ_FLOW_CONTROL__CF_WR_BASE_MASK 0x0000f000L
+#define SQ_FLOW_CONTROL__NO_PV_PS_MASK 0x00010000L
+#define SQ_FLOW_CONTROL__NO_PV_PS 0x00010000L
+#define SQ_FLOW_CONTROL__NO_LOOP_EXIT_MASK 0x00020000L
+#define SQ_FLOW_CONTROL__NO_LOOP_EXIT 0x00020000L
+#define SQ_FLOW_CONTROL__NO_CEXEC_OPTIMIZE_MASK 0x00040000L
+#define SQ_FLOW_CONTROL__NO_CEXEC_OPTIMIZE 0x00040000L
+#define SQ_FLOW_CONTROL__TEXTURE_ARBITRATION_POLICY_MASK 0x00180000L
+#define SQ_FLOW_CONTROL__VC_ARBITRATION_POLICY_MASK 0x00200000L
+#define SQ_FLOW_CONTROL__VC_ARBITRATION_POLICY 0x00200000L
+#define SQ_FLOW_CONTROL__ALU_ARBITRATION_POLICY_MASK 0x00400000L
+#define SQ_FLOW_CONTROL__ALU_ARBITRATION_POLICY 0x00400000L
+#define SQ_FLOW_CONTROL__NO_ARB_EJECT_MASK 0x00800000L
+#define SQ_FLOW_CONTROL__NO_ARB_EJECT 0x00800000L
+#define SQ_FLOW_CONTROL__NO_CFS_EJECT_MASK 0x01000000L
+#define SQ_FLOW_CONTROL__NO_CFS_EJECT 0x01000000L
+#define SQ_FLOW_CONTROL__POS_EXP_PRIORITY_MASK 0x02000000L
+#define SQ_FLOW_CONTROL__POS_EXP_PRIORITY 0x02000000L
+#define SQ_FLOW_CONTROL__NO_EARLY_THREAD_TERMINATION_MASK 0x04000000L
+#define SQ_FLOW_CONTROL__NO_EARLY_THREAD_TERMINATION 0x04000000L
+#define SQ_FLOW_CONTROL__PS_PREFETCH_COLOR_ALLOC_MASK 0x08000000L
+#define SQ_FLOW_CONTROL__PS_PREFETCH_COLOR_ALLOC 0x08000000L
+
+// SQ_INST_STORE_MANAGMENT
+#define SQ_INST_STORE_MANAGMENT__INST_BASE_PIX_MASK 0x00000fffL
+#define SQ_INST_STORE_MANAGMENT__INST_BASE_VTX_MASK 0x0fff0000L
+
+// SQ_RESOURCE_MANAGMENT
+#define SQ_RESOURCE_MANAGMENT__VTX_THREAD_BUF_ENTRIES_MASK 0x000000ffL
+#define SQ_RESOURCE_MANAGMENT__PIX_THREAD_BUF_ENTRIES_MASK 0x0000ff00L
+#define SQ_RESOURCE_MANAGMENT__EXPORT_BUF_ENTRIES_MASK 0x01ff0000L
+
+// SQ_EO_RT
+#define SQ_EO_RT__EO_CONSTANTS_RT_MASK 0x000000ffL
+#define SQ_EO_RT__EO_TSTATE_RT_MASK 0x00ff0000L
+
+// SQ_DEBUG_MISC
+#define SQ_DEBUG_MISC__DB_ALUCST_SIZE_MASK 0x000007ffL
+#define SQ_DEBUG_MISC__DB_TSTATE_SIZE_MASK 0x000ff000L
+#define SQ_DEBUG_MISC__DB_READ_CTX_MASK 0x00100000L
+#define SQ_DEBUG_MISC__DB_READ_CTX 0x00100000L
+#define SQ_DEBUG_MISC__RESERVED_MASK 0x00600000L
+#define SQ_DEBUG_MISC__DB_READ_MEMORY_MASK 0x01800000L
+#define SQ_DEBUG_MISC__DB_WEN_MEMORY_0_MASK 0x02000000L
+#define SQ_DEBUG_MISC__DB_WEN_MEMORY_0 0x02000000L
+#define SQ_DEBUG_MISC__DB_WEN_MEMORY_1_MASK 0x04000000L
+#define SQ_DEBUG_MISC__DB_WEN_MEMORY_1 0x04000000L
+#define SQ_DEBUG_MISC__DB_WEN_MEMORY_2_MASK 0x08000000L
+#define SQ_DEBUG_MISC__DB_WEN_MEMORY_2 0x08000000L
+#define SQ_DEBUG_MISC__DB_WEN_MEMORY_3_MASK 0x10000000L
+#define SQ_DEBUG_MISC__DB_WEN_MEMORY_3 0x10000000L
+
+// SQ_ACTIVITY_METER_CNTL
+#define SQ_ACTIVITY_METER_CNTL__TIMEBASE_MASK 0x000000ffL
+#define SQ_ACTIVITY_METER_CNTL__THRESHOLD_LOW_MASK 0x0000ff00L
+#define SQ_ACTIVITY_METER_CNTL__THRESHOLD_HIGH_MASK 0x00ff0000L
+#define SQ_ACTIVITY_METER_CNTL__SPARE_MASK 0xff000000L
+
+// SQ_ACTIVITY_METER_STATUS
+#define SQ_ACTIVITY_METER_STATUS__PERCENT_BUSY_MASK 0x000000ffL
+
+// SQ_INPUT_ARB_PRIORITY
+#define SQ_INPUT_ARB_PRIORITY__PC_AVAIL_WEIGHT_MASK 0x00000007L
+#define SQ_INPUT_ARB_PRIORITY__PC_AVAIL_SIGN_MASK 0x00000008L
+#define SQ_INPUT_ARB_PRIORITY__PC_AVAIL_SIGN 0x00000008L
+#define SQ_INPUT_ARB_PRIORITY__SX_AVAIL_WEIGHT_MASK 0x00000070L
+#define SQ_INPUT_ARB_PRIORITY__SX_AVAIL_SIGN_MASK 0x00000080L
+#define SQ_INPUT_ARB_PRIORITY__SX_AVAIL_SIGN 0x00000080L
+#define SQ_INPUT_ARB_PRIORITY__THRESHOLD_MASK 0x0003ff00L
+
+// SQ_THREAD_ARB_PRIORITY
+#define SQ_THREAD_ARB_PRIORITY__PC_AVAIL_WEIGHT_MASK 0x00000007L
+#define SQ_THREAD_ARB_PRIORITY__PC_AVAIL_SIGN_MASK 0x00000008L
+#define SQ_THREAD_ARB_PRIORITY__PC_AVAIL_SIGN 0x00000008L
+#define SQ_THREAD_ARB_PRIORITY__SX_AVAIL_WEIGHT_MASK 0x00000070L
+#define SQ_THREAD_ARB_PRIORITY__SX_AVAIL_SIGN_MASK 0x00000080L
+#define SQ_THREAD_ARB_PRIORITY__SX_AVAIL_SIGN 0x00000080L
+#define SQ_THREAD_ARB_PRIORITY__THRESHOLD_MASK 0x0003ff00L
+#define SQ_THREAD_ARB_PRIORITY__RESERVED_MASK 0x000c0000L
+#define SQ_THREAD_ARB_PRIORITY__VS_PRIORITIZE_SERIAL_MASK 0x00100000L
+#define SQ_THREAD_ARB_PRIORITY__VS_PRIORITIZE_SERIAL 0x00100000L
+#define SQ_THREAD_ARB_PRIORITY__PS_PRIORITIZE_SERIAL_MASK 0x00200000L
+#define SQ_THREAD_ARB_PRIORITY__PS_PRIORITIZE_SERIAL 0x00200000L
+#define SQ_THREAD_ARB_PRIORITY__USE_SERIAL_COUNT_THRESHOLD_MASK 0x00400000L
+#define SQ_THREAD_ARB_PRIORITY__USE_SERIAL_COUNT_THRESHOLD 0x00400000L
+
+// SQ_VS_WATCHDOG_TIMER
+#define SQ_VS_WATCHDOG_TIMER__ENABLE_MASK 0x00000001L
+#define SQ_VS_WATCHDOG_TIMER__ENABLE 0x00000001L
+#define SQ_VS_WATCHDOG_TIMER__TIMEOUT_COUNT_MASK 0xfffffffeL
+
+// SQ_PS_WATCHDOG_TIMER
+#define SQ_PS_WATCHDOG_TIMER__ENABLE_MASK 0x00000001L
+#define SQ_PS_WATCHDOG_TIMER__ENABLE 0x00000001L
+#define SQ_PS_WATCHDOG_TIMER__TIMEOUT_COUNT_MASK 0xfffffffeL
+
+// SQ_INT_CNTL
+#define SQ_INT_CNTL__PS_WATCHDOG_MASK_MASK 0x00000001L
+#define SQ_INT_CNTL__PS_WATCHDOG_MASK 0x00000001L
+#define SQ_INT_CNTL__VS_WATCHDOG_MASK_MASK 0x00000002L
+#define SQ_INT_CNTL__VS_WATCHDOG_MASK 0x00000002L
+
+// SQ_INT_STATUS
+#define SQ_INT_STATUS__PS_WATCHDOG_TIMEOUT_MASK 0x00000001L
+#define SQ_INT_STATUS__PS_WATCHDOG_TIMEOUT 0x00000001L
+#define SQ_INT_STATUS__VS_WATCHDOG_TIMEOUT_MASK 0x00000002L
+#define SQ_INT_STATUS__VS_WATCHDOG_TIMEOUT 0x00000002L
+
+// SQ_INT_ACK
+#define SQ_INT_ACK__PS_WATCHDOG_ACK_MASK 0x00000001L
+#define SQ_INT_ACK__PS_WATCHDOG_ACK 0x00000001L
+#define SQ_INT_ACK__VS_WATCHDOG_ACK_MASK 0x00000002L
+#define SQ_INT_ACK__VS_WATCHDOG_ACK 0x00000002L
+
+// SQ_DEBUG_INPUT_FSM
+#define SQ_DEBUG_INPUT_FSM__VC_VSR_LD_MASK 0x00000007L
+#define SQ_DEBUG_INPUT_FSM__RESERVED_MASK 0x00000008L
+#define SQ_DEBUG_INPUT_FSM__RESERVED 0x00000008L
+#define SQ_DEBUG_INPUT_FSM__VC_GPR_LD_MASK 0x000000f0L
+#define SQ_DEBUG_INPUT_FSM__PC_PISM_MASK 0x00000700L
+#define SQ_DEBUG_INPUT_FSM__RESERVED1_MASK 0x00000800L
+#define SQ_DEBUG_INPUT_FSM__RESERVED1 0x00000800L
+#define SQ_DEBUG_INPUT_FSM__PC_AS_MASK 0x00007000L
+#define SQ_DEBUG_INPUT_FSM__PC_INTERP_CNT_MASK 0x000f8000L
+#define SQ_DEBUG_INPUT_FSM__PC_GPR_SIZE_MASK 0x0ff00000L
+
+// SQ_DEBUG_CONST_MGR_FSM
+#define SQ_DEBUG_CONST_MGR_FSM__TEX_CONST_EVENT_STATE_MASK 0x0000001fL
+#define SQ_DEBUG_CONST_MGR_FSM__RESERVED1_MASK 0x000000e0L
+#define SQ_DEBUG_CONST_MGR_FSM__ALU_CONST_EVENT_STATE_MASK 0x00001f00L
+#define SQ_DEBUG_CONST_MGR_FSM__RESERVED2_MASK 0x0000e000L
+#define SQ_DEBUG_CONST_MGR_FSM__ALU_CONST_CNTX_VALID_MASK 0x00030000L
+#define SQ_DEBUG_CONST_MGR_FSM__TEX_CONST_CNTX_VALID_MASK 0x000c0000L
+#define SQ_DEBUG_CONST_MGR_FSM__CNTX0_VTX_EVENT_DONE_MASK 0x00100000L
+#define SQ_DEBUG_CONST_MGR_FSM__CNTX0_VTX_EVENT_DONE 0x00100000L
+#define SQ_DEBUG_CONST_MGR_FSM__CNTX0_PIX_EVENT_DONE_MASK 0x00200000L
+#define SQ_DEBUG_CONST_MGR_FSM__CNTX0_PIX_EVENT_DONE 0x00200000L
+#define SQ_DEBUG_CONST_MGR_FSM__CNTX1_VTX_EVENT_DONE_MASK 0x00400000L
+#define SQ_DEBUG_CONST_MGR_FSM__CNTX1_VTX_EVENT_DONE 0x00400000L
+#define SQ_DEBUG_CONST_MGR_FSM__CNTX1_PIX_EVENT_DONE_MASK 0x00800000L
+#define SQ_DEBUG_CONST_MGR_FSM__CNTX1_PIX_EVENT_DONE 0x00800000L
+
+// SQ_DEBUG_TP_FSM
+#define SQ_DEBUG_TP_FSM__EX_TP_MASK 0x00000007L
+#define SQ_DEBUG_TP_FSM__RESERVED0_MASK 0x00000008L
+#define SQ_DEBUG_TP_FSM__RESERVED0 0x00000008L
+#define SQ_DEBUG_TP_FSM__CF_TP_MASK 0x000000f0L
+#define SQ_DEBUG_TP_FSM__IF_TP_MASK 0x00000700L
+#define SQ_DEBUG_TP_FSM__RESERVED1_MASK 0x00000800L
+#define SQ_DEBUG_TP_FSM__RESERVED1 0x00000800L
+#define SQ_DEBUG_TP_FSM__TIS_TP_MASK 0x00003000L
+#define SQ_DEBUG_TP_FSM__RESERVED2_MASK 0x0000c000L
+#define SQ_DEBUG_TP_FSM__GS_TP_MASK 0x00030000L
+#define SQ_DEBUG_TP_FSM__RESERVED3_MASK 0x000c0000L
+#define SQ_DEBUG_TP_FSM__FCR_TP_MASK 0x00300000L
+#define SQ_DEBUG_TP_FSM__RESERVED4_MASK 0x00c00000L
+#define SQ_DEBUG_TP_FSM__FCS_TP_MASK 0x03000000L
+#define SQ_DEBUG_TP_FSM__RESERVED5_MASK 0x0c000000L
+#define SQ_DEBUG_TP_FSM__ARB_TR_TP_MASK 0x70000000L
+
+// SQ_DEBUG_FSM_ALU_0
+#define SQ_DEBUG_FSM_ALU_0__EX_ALU_0_MASK 0x00000007L
+#define SQ_DEBUG_FSM_ALU_0__RESERVED0_MASK 0x00000008L
+#define SQ_DEBUG_FSM_ALU_0__RESERVED0 0x00000008L
+#define SQ_DEBUG_FSM_ALU_0__CF_ALU_0_MASK 0x000000f0L
+#define SQ_DEBUG_FSM_ALU_0__IF_ALU_0_MASK 0x00000700L
+#define SQ_DEBUG_FSM_ALU_0__RESERVED1_MASK 0x00000800L
+#define SQ_DEBUG_FSM_ALU_0__RESERVED1 0x00000800L
+#define SQ_DEBUG_FSM_ALU_0__DU1_ALU_0_MASK 0x00007000L
+#define SQ_DEBUG_FSM_ALU_0__RESERVED2_MASK 0x00008000L
+#define SQ_DEBUG_FSM_ALU_0__RESERVED2 0x00008000L
+#define SQ_DEBUG_FSM_ALU_0__DU0_ALU_0_MASK 0x00070000L
+#define SQ_DEBUG_FSM_ALU_0__RESERVED3_MASK 0x00080000L
+#define SQ_DEBUG_FSM_ALU_0__RESERVED3 0x00080000L
+#define SQ_DEBUG_FSM_ALU_0__AIS_ALU_0_MASK 0x00700000L
+#define SQ_DEBUG_FSM_ALU_0__RESERVED4_MASK 0x00800000L
+#define SQ_DEBUG_FSM_ALU_0__RESERVED4 0x00800000L
+#define SQ_DEBUG_FSM_ALU_0__ACS_ALU_0_MASK 0x07000000L
+#define SQ_DEBUG_FSM_ALU_0__RESERVED5_MASK 0x08000000L
+#define SQ_DEBUG_FSM_ALU_0__RESERVED5 0x08000000L
+#define SQ_DEBUG_FSM_ALU_0__ARB_TR_ALU_MASK 0x70000000L
+
+// SQ_DEBUG_FSM_ALU_1
+#define SQ_DEBUG_FSM_ALU_1__EX_ALU_0_MASK 0x00000007L
+#define SQ_DEBUG_FSM_ALU_1__RESERVED0_MASK 0x00000008L
+#define SQ_DEBUG_FSM_ALU_1__RESERVED0 0x00000008L
+#define SQ_DEBUG_FSM_ALU_1__CF_ALU_0_MASK 0x000000f0L
+#define SQ_DEBUG_FSM_ALU_1__IF_ALU_0_MASK 0x00000700L
+#define SQ_DEBUG_FSM_ALU_1__RESERVED1_MASK 0x00000800L
+#define SQ_DEBUG_FSM_ALU_1__RESERVED1 0x00000800L
+#define SQ_DEBUG_FSM_ALU_1__DU1_ALU_0_MASK 0x00007000L
+#define SQ_DEBUG_FSM_ALU_1__RESERVED2_MASK 0x00008000L
+#define SQ_DEBUG_FSM_ALU_1__RESERVED2 0x00008000L
+#define SQ_DEBUG_FSM_ALU_1__DU0_ALU_0_MASK 0x00070000L
+#define SQ_DEBUG_FSM_ALU_1__RESERVED3_MASK 0x00080000L
+#define SQ_DEBUG_FSM_ALU_1__RESERVED3 0x00080000L
+#define SQ_DEBUG_FSM_ALU_1__AIS_ALU_0_MASK 0x00700000L
+#define SQ_DEBUG_FSM_ALU_1__RESERVED4_MASK 0x00800000L
+#define SQ_DEBUG_FSM_ALU_1__RESERVED4 0x00800000L
+#define SQ_DEBUG_FSM_ALU_1__ACS_ALU_0_MASK 0x07000000L
+#define SQ_DEBUG_FSM_ALU_1__RESERVED5_MASK 0x08000000L
+#define SQ_DEBUG_FSM_ALU_1__RESERVED5 0x08000000L
+#define SQ_DEBUG_FSM_ALU_1__ARB_TR_ALU_MASK 0x70000000L
+
+// SQ_DEBUG_EXP_ALLOC
+#define SQ_DEBUG_EXP_ALLOC__POS_BUF_AVAIL_MASK 0x0000000fL
+#define SQ_DEBUG_EXP_ALLOC__COLOR_BUF_AVAIL_MASK 0x00000ff0L
+#define SQ_DEBUG_EXP_ALLOC__EA_BUF_AVAIL_MASK 0x00007000L
+#define SQ_DEBUG_EXP_ALLOC__RESERVED_MASK 0x00008000L
+#define SQ_DEBUG_EXP_ALLOC__RESERVED 0x00008000L
+#define SQ_DEBUG_EXP_ALLOC__ALLOC_TBL_BUF_AVAIL_MASK 0x003f0000L
+
+// SQ_DEBUG_PTR_BUFF
+#define SQ_DEBUG_PTR_BUFF__END_OF_BUFFER_MASK 0x00000001L
+#define SQ_DEBUG_PTR_BUFF__END_OF_BUFFER 0x00000001L
+#define SQ_DEBUG_PTR_BUFF__DEALLOC_CNT_MASK 0x0000001eL
+#define SQ_DEBUG_PTR_BUFF__QUAL_NEW_VECTOR_MASK 0x00000020L
+#define SQ_DEBUG_PTR_BUFF__QUAL_NEW_VECTOR 0x00000020L
+#define SQ_DEBUG_PTR_BUFF__EVENT_CONTEXT_ID_MASK 0x000001c0L
+#define SQ_DEBUG_PTR_BUFF__SC_EVENT_ID_MASK 0x00003e00L
+#define SQ_DEBUG_PTR_BUFF__QUAL_EVENT_MASK 0x00004000L
+#define SQ_DEBUG_PTR_BUFF__QUAL_EVENT 0x00004000L
+#define SQ_DEBUG_PTR_BUFF__PRIM_TYPE_POLYGON_MASK 0x00008000L
+#define SQ_DEBUG_PTR_BUFF__PRIM_TYPE_POLYGON 0x00008000L
+#define SQ_DEBUG_PTR_BUFF__EF_EMPTY_MASK 0x00010000L
+#define SQ_DEBUG_PTR_BUFF__EF_EMPTY 0x00010000L
+#define SQ_DEBUG_PTR_BUFF__VTX_SYNC_CNT_MASK 0x0ffe0000L
+
+// SQ_DEBUG_GPR_VTX
+#define SQ_DEBUG_GPR_VTX__VTX_TAIL_PTR_MASK 0x0000007fL
+#define SQ_DEBUG_GPR_VTX__RESERVED_MASK 0x00000080L
+#define SQ_DEBUG_GPR_VTX__RESERVED 0x00000080L
+#define SQ_DEBUG_GPR_VTX__VTX_HEAD_PTR_MASK 0x00007f00L
+#define SQ_DEBUG_GPR_VTX__RESERVED1_MASK 0x00008000L
+#define SQ_DEBUG_GPR_VTX__RESERVED1 0x00008000L
+#define SQ_DEBUG_GPR_VTX__VTX_MAX_MASK 0x007f0000L
+#define SQ_DEBUG_GPR_VTX__RESERVED2_MASK 0x00800000L
+#define SQ_DEBUG_GPR_VTX__RESERVED2 0x00800000L
+#define SQ_DEBUG_GPR_VTX__VTX_FREE_MASK 0x7f000000L
+
+// SQ_DEBUG_GPR_PIX
+#define SQ_DEBUG_GPR_PIX__PIX_TAIL_PTR_MASK 0x0000007fL
+#define SQ_DEBUG_GPR_PIX__RESERVED_MASK 0x00000080L
+#define SQ_DEBUG_GPR_PIX__RESERVED 0x00000080L
+#define SQ_DEBUG_GPR_PIX__PIX_HEAD_PTR_MASK 0x00007f00L
+#define SQ_DEBUG_GPR_PIX__RESERVED1_MASK 0x00008000L
+#define SQ_DEBUG_GPR_PIX__RESERVED1 0x00008000L
+#define SQ_DEBUG_GPR_PIX__PIX_MAX_MASK 0x007f0000L
+#define SQ_DEBUG_GPR_PIX__RESERVED2_MASK 0x00800000L
+#define SQ_DEBUG_GPR_PIX__RESERVED2 0x00800000L
+#define SQ_DEBUG_GPR_PIX__PIX_FREE_MASK 0x7f000000L
+
+// SQ_DEBUG_TB_STATUS_SEL
+#define SQ_DEBUG_TB_STATUS_SEL__VTX_TB_STATUS_REG_SEL_MASK 0x0000000fL
+#define SQ_DEBUG_TB_STATUS_SEL__VTX_TB_STATE_MEM_DW_SEL_MASK 0x00000070L
+#define SQ_DEBUG_TB_STATUS_SEL__VTX_TB_STATE_MEM_RD_ADDR_MASK 0x00000780L
+#define SQ_DEBUG_TB_STATUS_SEL__VTX_TB_STATE_MEM_RD_EN_MASK 0x00000800L
+#define SQ_DEBUG_TB_STATUS_SEL__VTX_TB_STATE_MEM_RD_EN 0x00000800L
+#define SQ_DEBUG_TB_STATUS_SEL__PIX_TB_STATE_MEM_RD_EN_MASK 0x00001000L
+#define SQ_DEBUG_TB_STATUS_SEL__PIX_TB_STATE_MEM_RD_EN 0x00001000L
+#define SQ_DEBUG_TB_STATUS_SEL__DEBUG_BUS_TRIGGER_SEL_MASK 0x0000c000L
+#define SQ_DEBUG_TB_STATUS_SEL__PIX_TB_STATUS_REG_SEL_MASK 0x000f0000L
+#define SQ_DEBUG_TB_STATUS_SEL__PIX_TB_STATE_MEM_DW_SEL_MASK 0x00700000L
+#define SQ_DEBUG_TB_STATUS_SEL__PIX_TB_STATE_MEM_RD_ADDR_MASK 0x1f800000L
+#define SQ_DEBUG_TB_STATUS_SEL__VC_THREAD_BUF_DLY_MASK 0x60000000L
+#define SQ_DEBUG_TB_STATUS_SEL__DISABLE_STRICT_CTX_SYNC_MASK 0x80000000L
+#define SQ_DEBUG_TB_STATUS_SEL__DISABLE_STRICT_CTX_SYNC 0x80000000L
+
+// SQ_DEBUG_VTX_TB_0
+#define SQ_DEBUG_VTX_TB_0__VTX_HEAD_PTR_Q_MASK 0x0000000fL
+#define SQ_DEBUG_VTX_TB_0__TAIL_PTR_Q_MASK 0x000000f0L
+#define SQ_DEBUG_VTX_TB_0__FULL_CNT_Q_MASK 0x00000f00L
+#define SQ_DEBUG_VTX_TB_0__NXT_POS_ALLOC_CNT_MASK 0x0000f000L
+#define SQ_DEBUG_VTX_TB_0__NXT_PC_ALLOC_CNT_MASK 0x000f0000L
+#define SQ_DEBUG_VTX_TB_0__SX_EVENT_FULL_MASK 0x00100000L
+#define SQ_DEBUG_VTX_TB_0__SX_EVENT_FULL 0x00100000L
+#define SQ_DEBUG_VTX_TB_0__BUSY_Q_MASK 0x00200000L
+#define SQ_DEBUG_VTX_TB_0__BUSY_Q 0x00200000L
+
+// SQ_DEBUG_VTX_TB_1
+#define SQ_DEBUG_VTX_TB_1__VS_DONE_PTR_MASK 0x0000ffffL
+
+// SQ_DEBUG_VTX_TB_STATUS_REG
+#define SQ_DEBUG_VTX_TB_STATUS_REG__VS_STATUS_REG_MASK 0xffffffffL
+
+// SQ_DEBUG_VTX_TB_STATE_MEM
+#define SQ_DEBUG_VTX_TB_STATE_MEM__VS_STATE_MEM_MASK 0xffffffffL
+
+// SQ_DEBUG_PIX_TB_0
+#define SQ_DEBUG_PIX_TB_0__PIX_HEAD_PTR_MASK 0x0000003fL
+#define SQ_DEBUG_PIX_TB_0__TAIL_PTR_MASK 0x00000fc0L
+#define SQ_DEBUG_PIX_TB_0__FULL_CNT_MASK 0x0007f000L
+#define SQ_DEBUG_PIX_TB_0__NXT_PIX_ALLOC_CNT_MASK 0x01f80000L
+#define SQ_DEBUG_PIX_TB_0__NXT_PIX_EXP_CNT_MASK 0x7e000000L
+#define SQ_DEBUG_PIX_TB_0__BUSY_MASK 0x80000000L
+#define SQ_DEBUG_PIX_TB_0__BUSY 0x80000000L
+
+// SQ_DEBUG_PIX_TB_STATUS_REG_0
+#define SQ_DEBUG_PIX_TB_STATUS_REG_0__PIX_TB_STATUS_REG_0_MASK 0xffffffffL
+
+// SQ_DEBUG_PIX_TB_STATUS_REG_1
+#define SQ_DEBUG_PIX_TB_STATUS_REG_1__PIX_TB_STATUS_REG_1_MASK 0xffffffffL
+
+// SQ_DEBUG_PIX_TB_STATUS_REG_2
+#define SQ_DEBUG_PIX_TB_STATUS_REG_2__PIX_TB_STATUS_REG_2_MASK 0xffffffffL
+
+// SQ_DEBUG_PIX_TB_STATUS_REG_3
+#define SQ_DEBUG_PIX_TB_STATUS_REG_3__PIX_TB_STATUS_REG_3_MASK 0xffffffffL
+
+// SQ_DEBUG_PIX_TB_STATE_MEM
+#define SQ_DEBUG_PIX_TB_STATE_MEM__PIX_TB_STATE_MEM_MASK 0xffffffffL
+
+// SQ_PERFCOUNTER0_SELECT
+#define SQ_PERFCOUNTER0_SELECT__PERF_SEL_MASK 0x000000ffL
+
+// SQ_PERFCOUNTER1_SELECT
+#define SQ_PERFCOUNTER1_SELECT__PERF_SEL_MASK 0x000000ffL
+
+// SQ_PERFCOUNTER2_SELECT
+#define SQ_PERFCOUNTER2_SELECT__PERF_SEL_MASK 0x000000ffL
+
+// SQ_PERFCOUNTER3_SELECT
+#define SQ_PERFCOUNTER3_SELECT__PERF_SEL_MASK 0x000000ffL
+
+// SQ_PERFCOUNTER0_LOW
+#define SQ_PERFCOUNTER0_LOW__PERF_COUNT_MASK 0xffffffffL
+
+// SQ_PERFCOUNTER0_HI
+#define SQ_PERFCOUNTER0_HI__PERF_COUNT_MASK 0x0000ffffL
+
+// SQ_PERFCOUNTER1_LOW
+#define SQ_PERFCOUNTER1_LOW__PERF_COUNT_MASK 0xffffffffL
+
+// SQ_PERFCOUNTER1_HI
+#define SQ_PERFCOUNTER1_HI__PERF_COUNT_MASK 0x0000ffffL
+
+// SQ_PERFCOUNTER2_LOW
+#define SQ_PERFCOUNTER2_LOW__PERF_COUNT_MASK 0xffffffffL
+
+// SQ_PERFCOUNTER2_HI
+#define SQ_PERFCOUNTER2_HI__PERF_COUNT_MASK 0x0000ffffL
+
+// SQ_PERFCOUNTER3_LOW
+#define SQ_PERFCOUNTER3_LOW__PERF_COUNT_MASK 0xffffffffL
+
+// SQ_PERFCOUNTER3_HI
+#define SQ_PERFCOUNTER3_HI__PERF_COUNT_MASK 0x0000ffffL
+
+// SX_PERFCOUNTER0_SELECT
+#define SX_PERFCOUNTER0_SELECT__PERF_SEL_MASK 0x000000ffL
+
+// SX_PERFCOUNTER0_LOW
+#define SX_PERFCOUNTER0_LOW__PERF_COUNT_MASK 0xffffffffL
+
+// SX_PERFCOUNTER0_HI
+#define SX_PERFCOUNTER0_HI__PERF_COUNT_MASK 0x0000ffffL
+
+// SQ_INSTRUCTION_ALU_0
+#define SQ_INSTRUCTION_ALU_0__VECTOR_RESULT_MASK 0x0000003fL
+#define SQ_INSTRUCTION_ALU_0__VECTOR_DST_REL_MASK 0x00000040L
+#define SQ_INSTRUCTION_ALU_0__VECTOR_DST_REL 0x00000040L
+#define SQ_INSTRUCTION_ALU_0__LOW_PRECISION_16B_FP_MASK 0x00000080L
+#define SQ_INSTRUCTION_ALU_0__LOW_PRECISION_16B_FP 0x00000080L
+#define SQ_INSTRUCTION_ALU_0__SCALAR_RESULT_MASK 0x00003f00L
+#define SQ_INSTRUCTION_ALU_0__SCALAR_DST_REL_MASK 0x00004000L
+#define SQ_INSTRUCTION_ALU_0__SCALAR_DST_REL 0x00004000L
+#define SQ_INSTRUCTION_ALU_0__EXPORT_DATA_MASK 0x00008000L
+#define SQ_INSTRUCTION_ALU_0__EXPORT_DATA 0x00008000L
+#define SQ_INSTRUCTION_ALU_0__VECTOR_WRT_MSK_MASK 0x000f0000L
+#define SQ_INSTRUCTION_ALU_0__SCALAR_WRT_MSK_MASK 0x00f00000L
+#define SQ_INSTRUCTION_ALU_0__VECTOR_CLAMP_MASK 0x01000000L
+#define SQ_INSTRUCTION_ALU_0__VECTOR_CLAMP 0x01000000L
+#define SQ_INSTRUCTION_ALU_0__SCALAR_CLAMP_MASK 0x02000000L
+#define SQ_INSTRUCTION_ALU_0__SCALAR_CLAMP 0x02000000L
+#define SQ_INSTRUCTION_ALU_0__SCALAR_OPCODE_MASK 0xfc000000L
+
+// SQ_INSTRUCTION_ALU_1
+#define SQ_INSTRUCTION_ALU_1__SRC_C_SWIZZLE_R_MASK 0x00000003L
+#define SQ_INSTRUCTION_ALU_1__SRC_C_SWIZZLE_G_MASK 0x0000000cL
+#define SQ_INSTRUCTION_ALU_1__SRC_C_SWIZZLE_B_MASK 0x00000030L
+#define SQ_INSTRUCTION_ALU_1__SRC_C_SWIZZLE_A_MASK 0x000000c0L
+#define SQ_INSTRUCTION_ALU_1__SRC_B_SWIZZLE_R_MASK 0x00000300L
+#define SQ_INSTRUCTION_ALU_1__SRC_B_SWIZZLE_G_MASK 0x00000c00L
+#define SQ_INSTRUCTION_ALU_1__SRC_B_SWIZZLE_B_MASK 0x00003000L
+#define SQ_INSTRUCTION_ALU_1__SRC_B_SWIZZLE_A_MASK 0x0000c000L
+#define SQ_INSTRUCTION_ALU_1__SRC_A_SWIZZLE_R_MASK 0x00030000L
+#define SQ_INSTRUCTION_ALU_1__SRC_A_SWIZZLE_G_MASK 0x000c0000L
+#define SQ_INSTRUCTION_ALU_1__SRC_A_SWIZZLE_B_MASK 0x00300000L
+#define SQ_INSTRUCTION_ALU_1__SRC_A_SWIZZLE_A_MASK 0x00c00000L
+#define SQ_INSTRUCTION_ALU_1__SRC_C_ARG_MOD_MASK 0x01000000L
+#define SQ_INSTRUCTION_ALU_1__SRC_C_ARG_MOD 0x01000000L
+#define SQ_INSTRUCTION_ALU_1__SRC_B_ARG_MOD_MASK 0x02000000L
+#define SQ_INSTRUCTION_ALU_1__SRC_B_ARG_MOD 0x02000000L
+#define SQ_INSTRUCTION_ALU_1__SRC_A_ARG_MOD_MASK 0x04000000L
+#define SQ_INSTRUCTION_ALU_1__SRC_A_ARG_MOD 0x04000000L
+#define SQ_INSTRUCTION_ALU_1__PRED_SELECT_MASK 0x18000000L
+#define SQ_INSTRUCTION_ALU_1__RELATIVE_ADDR_MASK 0x20000000L
+#define SQ_INSTRUCTION_ALU_1__RELATIVE_ADDR 0x20000000L
+#define SQ_INSTRUCTION_ALU_1__CONST_1_REL_ABS_MASK 0x40000000L
+#define SQ_INSTRUCTION_ALU_1__CONST_1_REL_ABS 0x40000000L
+#define SQ_INSTRUCTION_ALU_1__CONST_0_REL_ABS_MASK 0x80000000L
+#define SQ_INSTRUCTION_ALU_1__CONST_0_REL_ABS 0x80000000L
+
+// SQ_INSTRUCTION_ALU_2
+#define SQ_INSTRUCTION_ALU_2__SRC_C_REG_PTR_MASK 0x0000003fL
+#define SQ_INSTRUCTION_ALU_2__REG_SELECT_C_MASK 0x00000040L
+#define SQ_INSTRUCTION_ALU_2__REG_SELECT_C 0x00000040L
+#define SQ_INSTRUCTION_ALU_2__REG_ABS_MOD_C_MASK 0x00000080L
+#define SQ_INSTRUCTION_ALU_2__REG_ABS_MOD_C 0x00000080L
+#define SQ_INSTRUCTION_ALU_2__SRC_B_REG_PTR_MASK 0x00003f00L
+#define SQ_INSTRUCTION_ALU_2__REG_SELECT_B_MASK 0x00004000L
+#define SQ_INSTRUCTION_ALU_2__REG_SELECT_B 0x00004000L
+#define SQ_INSTRUCTION_ALU_2__REG_ABS_MOD_B_MASK 0x00008000L
+#define SQ_INSTRUCTION_ALU_2__REG_ABS_MOD_B 0x00008000L
+#define SQ_INSTRUCTION_ALU_2__SRC_A_REG_PTR_MASK 0x003f0000L
+#define SQ_INSTRUCTION_ALU_2__REG_SELECT_A_MASK 0x00400000L
+#define SQ_INSTRUCTION_ALU_2__REG_SELECT_A 0x00400000L
+#define SQ_INSTRUCTION_ALU_2__REG_ABS_MOD_A_MASK 0x00800000L
+#define SQ_INSTRUCTION_ALU_2__REG_ABS_MOD_A 0x00800000L
+#define SQ_INSTRUCTION_ALU_2__VECTOR_OPCODE_MASK 0x1f000000L
+#define SQ_INSTRUCTION_ALU_2__SRC_C_SEL_MASK 0x20000000L
+#define SQ_INSTRUCTION_ALU_2__SRC_C_SEL 0x20000000L
+#define SQ_INSTRUCTION_ALU_2__SRC_B_SEL_MASK 0x40000000L
+#define SQ_INSTRUCTION_ALU_2__SRC_B_SEL 0x40000000L
+#define SQ_INSTRUCTION_ALU_2__SRC_A_SEL_MASK 0x80000000L
+#define SQ_INSTRUCTION_ALU_2__SRC_A_SEL 0x80000000L
+
+// SQ_INSTRUCTION_CF_EXEC_0
+#define SQ_INSTRUCTION_CF_EXEC_0__ADDRESS_MASK 0x000001ffL
+#define SQ_INSTRUCTION_CF_EXEC_0__RESERVED_MASK 0x00000e00L
+#define SQ_INSTRUCTION_CF_EXEC_0__COUNT_MASK 0x00007000L
+#define SQ_INSTRUCTION_CF_EXEC_0__YIELD_MASK 0x00008000L
+#define SQ_INSTRUCTION_CF_EXEC_0__YIELD 0x00008000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_TYPE_0_MASK 0x00010000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_TYPE_0 0x00010000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_SERIAL_0_MASK 0x00020000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_SERIAL_0 0x00020000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_TYPE_1_MASK 0x00040000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_TYPE_1 0x00040000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_SERIAL_1_MASK 0x00080000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_SERIAL_1 0x00080000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_TYPE_2_MASK 0x00100000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_TYPE_2 0x00100000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_SERIAL_2_MASK 0x00200000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_SERIAL_2 0x00200000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_TYPE_3_MASK 0x00400000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_TYPE_3 0x00400000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_SERIAL_3_MASK 0x00800000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_SERIAL_3 0x00800000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_TYPE_4_MASK 0x01000000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_TYPE_4 0x01000000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_SERIAL_4_MASK 0x02000000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_SERIAL_4 0x02000000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_TYPE_5_MASK 0x04000000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_TYPE_5 0x04000000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_SERIAL_5_MASK 0x08000000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_SERIAL_5 0x08000000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_VC_0_MASK 0x10000000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_VC_0 0x10000000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_VC_1_MASK 0x20000000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_VC_1 0x20000000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_VC_2_MASK 0x40000000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_VC_2 0x40000000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_VC_3_MASK 0x80000000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_VC_3 0x80000000L
+
+// SQ_INSTRUCTION_CF_EXEC_1
+#define SQ_INSTRUCTION_CF_EXEC_1__INST_VC_4_MASK 0x00000001L
+#define SQ_INSTRUCTION_CF_EXEC_1__INST_VC_4 0x00000001L
+#define SQ_INSTRUCTION_CF_EXEC_1__INST_VC_5_MASK 0x00000002L
+#define SQ_INSTRUCTION_CF_EXEC_1__INST_VC_5 0x00000002L
+#define SQ_INSTRUCTION_CF_EXEC_1__BOOL_ADDR_MASK 0x000003fcL
+#define SQ_INSTRUCTION_CF_EXEC_1__CONDITION_MASK 0x00000400L
+#define SQ_INSTRUCTION_CF_EXEC_1__CONDITION 0x00000400L
+#define SQ_INSTRUCTION_CF_EXEC_1__ADDRESS_MODE_MASK 0x00000800L
+#define SQ_INSTRUCTION_CF_EXEC_1__ADDRESS_MODE 0x00000800L
+#define SQ_INSTRUCTION_CF_EXEC_1__OPCODE_MASK 0x0000f000L
+#define SQ_INSTRUCTION_CF_EXEC_1__ADDRESS_MASK 0x01ff0000L
+#define SQ_INSTRUCTION_CF_EXEC_1__RESERVED_MASK 0x0e000000L
+#define SQ_INSTRUCTION_CF_EXEC_1__COUNT_MASK 0x70000000L
+#define SQ_INSTRUCTION_CF_EXEC_1__YIELD_MASK 0x80000000L
+#define SQ_INSTRUCTION_CF_EXEC_1__YIELD 0x80000000L
+
+// SQ_INSTRUCTION_CF_EXEC_2
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_TYPE_0_MASK 0x00000001L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_TYPE_0 0x00000001L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_SERIAL_0_MASK 0x00000002L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_SERIAL_0 0x00000002L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_TYPE_1_MASK 0x00000004L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_TYPE_1 0x00000004L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_SERIAL_1_MASK 0x00000008L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_SERIAL_1 0x00000008L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_TYPE_2_MASK 0x00000010L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_TYPE_2 0x00000010L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_SERIAL_2_MASK 0x00000020L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_SERIAL_2 0x00000020L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_TYPE_3_MASK 0x00000040L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_TYPE_3 0x00000040L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_SERIAL_3_MASK 0x00000080L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_SERIAL_3 0x00000080L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_TYPE_4_MASK 0x00000100L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_TYPE_4 0x00000100L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_SERIAL_4_MASK 0x00000200L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_SERIAL_4 0x00000200L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_TYPE_5_MASK 0x00000400L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_TYPE_5 0x00000400L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_SERIAL_5_MASK 0x00000800L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_SERIAL_5 0x00000800L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_VC_0_MASK 0x00001000L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_VC_0 0x00001000L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_VC_1_MASK 0x00002000L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_VC_1 0x00002000L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_VC_2_MASK 0x00004000L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_VC_2 0x00004000L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_VC_3_MASK 0x00008000L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_VC_3 0x00008000L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_VC_4_MASK 0x00010000L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_VC_4 0x00010000L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_VC_5_MASK 0x00020000L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_VC_5 0x00020000L
+#define SQ_INSTRUCTION_CF_EXEC_2__BOOL_ADDR_MASK 0x03fc0000L
+#define SQ_INSTRUCTION_CF_EXEC_2__CONDITION_MASK 0x04000000L
+#define SQ_INSTRUCTION_CF_EXEC_2__CONDITION 0x04000000L
+#define SQ_INSTRUCTION_CF_EXEC_2__ADDRESS_MODE_MASK 0x08000000L
+#define SQ_INSTRUCTION_CF_EXEC_2__ADDRESS_MODE 0x08000000L
+#define SQ_INSTRUCTION_CF_EXEC_2__OPCODE_MASK 0xf0000000L
+
+// SQ_INSTRUCTION_CF_LOOP_0
+#define SQ_INSTRUCTION_CF_LOOP_0__ADDRESS_MASK 0x000003ffL
+#define SQ_INSTRUCTION_CF_LOOP_0__RESERVED_0_MASK 0x0000fc00L
+#define SQ_INSTRUCTION_CF_LOOP_0__LOOP_ID_MASK 0x001f0000L
+#define SQ_INSTRUCTION_CF_LOOP_0__RESERVED_1_MASK 0xffe00000L
+
+// SQ_INSTRUCTION_CF_LOOP_1
+#define SQ_INSTRUCTION_CF_LOOP_1__RESERVED_0_MASK 0x000007ffL
+#define SQ_INSTRUCTION_CF_LOOP_1__ADDRESS_MODE_MASK 0x00000800L
+#define SQ_INSTRUCTION_CF_LOOP_1__ADDRESS_MODE 0x00000800L
+#define SQ_INSTRUCTION_CF_LOOP_1__OPCODE_MASK 0x0000f000L
+#define SQ_INSTRUCTION_CF_LOOP_1__ADDRESS_MASK 0x03ff0000L
+#define SQ_INSTRUCTION_CF_LOOP_1__RESERVED_1_MASK 0xfc000000L
+
+// SQ_INSTRUCTION_CF_LOOP_2
+#define SQ_INSTRUCTION_CF_LOOP_2__LOOP_ID_MASK 0x0000001fL
+#define SQ_INSTRUCTION_CF_LOOP_2__RESERVED_MASK 0x07ffffe0L
+#define SQ_INSTRUCTION_CF_LOOP_2__ADDRESS_MODE_MASK 0x08000000L
+#define SQ_INSTRUCTION_CF_LOOP_2__ADDRESS_MODE 0x08000000L
+#define SQ_INSTRUCTION_CF_LOOP_2__OPCODE_MASK 0xf0000000L
+
+// SQ_INSTRUCTION_CF_JMP_CALL_0
+#define SQ_INSTRUCTION_CF_JMP_CALL_0__ADDRESS_MASK 0x000003ffL
+#define SQ_INSTRUCTION_CF_JMP_CALL_0__RESERVED_0_MASK 0x00001c00L
+#define SQ_INSTRUCTION_CF_JMP_CALL_0__FORCE_CALL_MASK 0x00002000L
+#define SQ_INSTRUCTION_CF_JMP_CALL_0__FORCE_CALL 0x00002000L
+#define SQ_INSTRUCTION_CF_JMP_CALL_0__PREDICATED_JMP_MASK 0x00004000L
+#define SQ_INSTRUCTION_CF_JMP_CALL_0__PREDICATED_JMP 0x00004000L
+#define SQ_INSTRUCTION_CF_JMP_CALL_0__RESERVED_1_MASK 0xffff8000L
+
+// SQ_INSTRUCTION_CF_JMP_CALL_1
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__RESERVED_0_MASK 0x00000001L
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__RESERVED_0 0x00000001L
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__DIRECTION_MASK 0x00000002L
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__DIRECTION 0x00000002L
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__BOOL_ADDR_MASK 0x000003fcL
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__CONDITION_MASK 0x00000400L
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__CONDITION 0x00000400L
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__ADDRESS_MODE_MASK 0x00000800L
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__ADDRESS_MODE 0x00000800L
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__OPCODE_MASK 0x0000f000L
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__ADDRESS_MASK 0x03ff0000L
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__RESERVED_1_MASK 0x1c000000L
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__FORCE_CALL_MASK 0x20000000L
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__FORCE_CALL 0x20000000L
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__RESERVED_2_MASK 0xc0000000L
+
+// SQ_INSTRUCTION_CF_JMP_CALL_2
+#define SQ_INSTRUCTION_CF_JMP_CALL_2__RESERVED_MASK 0x0001ffffL
+#define SQ_INSTRUCTION_CF_JMP_CALL_2__DIRECTION_MASK 0x00020000L
+#define SQ_INSTRUCTION_CF_JMP_CALL_2__DIRECTION 0x00020000L
+#define SQ_INSTRUCTION_CF_JMP_CALL_2__BOOL_ADDR_MASK 0x03fc0000L
+#define SQ_INSTRUCTION_CF_JMP_CALL_2__CONDITION_MASK 0x04000000L
+#define SQ_INSTRUCTION_CF_JMP_CALL_2__CONDITION 0x04000000L
+#define SQ_INSTRUCTION_CF_JMP_CALL_2__ADDRESS_MODE_MASK 0x08000000L
+#define SQ_INSTRUCTION_CF_JMP_CALL_2__ADDRESS_MODE 0x08000000L
+#define SQ_INSTRUCTION_CF_JMP_CALL_2__OPCODE_MASK 0xf0000000L
+
+// SQ_INSTRUCTION_CF_ALLOC_0
+#define SQ_INSTRUCTION_CF_ALLOC_0__SIZE_MASK 0x0000000fL
+#define SQ_INSTRUCTION_CF_ALLOC_0__RESERVED_MASK 0xfffffff0L
+
+// SQ_INSTRUCTION_CF_ALLOC_1
+#define SQ_INSTRUCTION_CF_ALLOC_1__RESERVED_0_MASK 0x000000ffL
+#define SQ_INSTRUCTION_CF_ALLOC_1__NO_SERIAL_MASK 0x00000100L
+#define SQ_INSTRUCTION_CF_ALLOC_1__NO_SERIAL 0x00000100L
+#define SQ_INSTRUCTION_CF_ALLOC_1__BUFFER_SELECT_MASK 0x00000600L
+#define SQ_INSTRUCTION_CF_ALLOC_1__ALLOC_MODE_MASK 0x00000800L
+#define SQ_INSTRUCTION_CF_ALLOC_1__ALLOC_MODE 0x00000800L
+#define SQ_INSTRUCTION_CF_ALLOC_1__OPCODE_MASK 0x0000f000L
+#define SQ_INSTRUCTION_CF_ALLOC_1__SIZE_MASK 0x000f0000L
+#define SQ_INSTRUCTION_CF_ALLOC_1__RESERVED_1_MASK 0xfff00000L
+
+// SQ_INSTRUCTION_CF_ALLOC_2
+#define SQ_INSTRUCTION_CF_ALLOC_2__RESERVED_MASK 0x00ffffffL
+#define SQ_INSTRUCTION_CF_ALLOC_2__NO_SERIAL_MASK 0x01000000L
+#define SQ_INSTRUCTION_CF_ALLOC_2__NO_SERIAL 0x01000000L
+#define SQ_INSTRUCTION_CF_ALLOC_2__BUFFER_SELECT_MASK 0x06000000L
+#define SQ_INSTRUCTION_CF_ALLOC_2__ALLOC_MODE_MASK 0x08000000L
+#define SQ_INSTRUCTION_CF_ALLOC_2__ALLOC_MODE 0x08000000L
+#define SQ_INSTRUCTION_CF_ALLOC_2__OPCODE_MASK 0xf0000000L
+
+// SQ_INSTRUCTION_TFETCH_0
+#define SQ_INSTRUCTION_TFETCH_0__OPCODE_MASK 0x0000001fL
+#define SQ_INSTRUCTION_TFETCH_0__SRC_GPR_MASK 0x000007e0L
+#define SQ_INSTRUCTION_TFETCH_0__SRC_GPR_AM_MASK 0x00000800L
+#define SQ_INSTRUCTION_TFETCH_0__SRC_GPR_AM 0x00000800L
+#define SQ_INSTRUCTION_TFETCH_0__DST_GPR_MASK 0x0003f000L
+#define SQ_INSTRUCTION_TFETCH_0__DST_GPR_AM_MASK 0x00040000L
+#define SQ_INSTRUCTION_TFETCH_0__DST_GPR_AM 0x00040000L
+#define SQ_INSTRUCTION_TFETCH_0__FETCH_VALID_ONLY_MASK 0x00080000L
+#define SQ_INSTRUCTION_TFETCH_0__FETCH_VALID_ONLY 0x00080000L
+#define SQ_INSTRUCTION_TFETCH_0__CONST_INDEX_MASK 0x01f00000L
+#define SQ_INSTRUCTION_TFETCH_0__TX_COORD_DENORM_MASK 0x02000000L
+#define SQ_INSTRUCTION_TFETCH_0__TX_COORD_DENORM 0x02000000L
+#define SQ_INSTRUCTION_TFETCH_0__SRC_SEL_X_MASK 0x0c000000L
+#define SQ_INSTRUCTION_TFETCH_0__SRC_SEL_Y_MASK 0x30000000L
+#define SQ_INSTRUCTION_TFETCH_0__SRC_SEL_Z_MASK 0xc0000000L
+
+// SQ_INSTRUCTION_TFETCH_1
+#define SQ_INSTRUCTION_TFETCH_1__DST_SEL_X_MASK 0x00000007L
+#define SQ_INSTRUCTION_TFETCH_1__DST_SEL_Y_MASK 0x00000038L
+#define SQ_INSTRUCTION_TFETCH_1__DST_SEL_Z_MASK 0x000001c0L
+#define SQ_INSTRUCTION_TFETCH_1__DST_SEL_W_MASK 0x00000e00L
+#define SQ_INSTRUCTION_TFETCH_1__MAG_FILTER_MASK 0x00003000L
+#define SQ_INSTRUCTION_TFETCH_1__MIN_FILTER_MASK 0x0000c000L
+#define SQ_INSTRUCTION_TFETCH_1__MIP_FILTER_MASK 0x00030000L
+#define SQ_INSTRUCTION_TFETCH_1__ANISO_FILTER_MASK 0x001c0000L
+#define SQ_INSTRUCTION_TFETCH_1__ARBITRARY_FILTER_MASK 0x00e00000L
+#define SQ_INSTRUCTION_TFETCH_1__VOL_MAG_FILTER_MASK 0x03000000L
+#define SQ_INSTRUCTION_TFETCH_1__VOL_MIN_FILTER_MASK 0x0c000000L
+#define SQ_INSTRUCTION_TFETCH_1__USE_COMP_LOD_MASK 0x10000000L
+#define SQ_INSTRUCTION_TFETCH_1__USE_COMP_LOD 0x10000000L
+#define SQ_INSTRUCTION_TFETCH_1__USE_REG_LOD_MASK 0x60000000L
+#define SQ_INSTRUCTION_TFETCH_1__PRED_SELECT_MASK 0x80000000L
+#define SQ_INSTRUCTION_TFETCH_1__PRED_SELECT 0x80000000L
+
+// SQ_INSTRUCTION_TFETCH_2
+#define SQ_INSTRUCTION_TFETCH_2__USE_REG_GRADIENTS_MASK 0x00000001L
+#define SQ_INSTRUCTION_TFETCH_2__USE_REG_GRADIENTS 0x00000001L
+#define SQ_INSTRUCTION_TFETCH_2__SAMPLE_LOCATION_MASK 0x00000002L
+#define SQ_INSTRUCTION_TFETCH_2__SAMPLE_LOCATION 0x00000002L
+#define SQ_INSTRUCTION_TFETCH_2__LOD_BIAS_MASK 0x000001fcL
+#define SQ_INSTRUCTION_TFETCH_2__UNUSED_MASK 0x0000fe00L
+#define SQ_INSTRUCTION_TFETCH_2__OFFSET_X_MASK 0x001f0000L
+#define SQ_INSTRUCTION_TFETCH_2__OFFSET_Y_MASK 0x03e00000L
+#define SQ_INSTRUCTION_TFETCH_2__OFFSET_Z_MASK 0x7c000000L
+#define SQ_INSTRUCTION_TFETCH_2__PRED_CONDITION_MASK 0x80000000L
+#define SQ_INSTRUCTION_TFETCH_2__PRED_CONDITION 0x80000000L
+
+// SQ_INSTRUCTION_VFETCH_0
+#define SQ_INSTRUCTION_VFETCH_0__OPCODE_MASK 0x0000001fL
+#define SQ_INSTRUCTION_VFETCH_0__SRC_GPR_MASK 0x000007e0L
+#define SQ_INSTRUCTION_VFETCH_0__SRC_GPR_AM_MASK 0x00000800L
+#define SQ_INSTRUCTION_VFETCH_0__SRC_GPR_AM 0x00000800L
+#define SQ_INSTRUCTION_VFETCH_0__DST_GPR_MASK 0x0003f000L
+#define SQ_INSTRUCTION_VFETCH_0__DST_GPR_AM_MASK 0x00040000L
+#define SQ_INSTRUCTION_VFETCH_0__DST_GPR_AM 0x00040000L
+#define SQ_INSTRUCTION_VFETCH_0__MUST_BE_ONE_MASK 0x00080000L
+#define SQ_INSTRUCTION_VFETCH_0__MUST_BE_ONE 0x00080000L
+#define SQ_INSTRUCTION_VFETCH_0__CONST_INDEX_MASK 0x01f00000L
+#define SQ_INSTRUCTION_VFETCH_0__CONST_INDEX_SEL_MASK 0x06000000L
+#define SQ_INSTRUCTION_VFETCH_0__SRC_SEL_MASK 0xc0000000L
+
+// SQ_INSTRUCTION_VFETCH_1
+#define SQ_INSTRUCTION_VFETCH_1__DST_SEL_X_MASK 0x00000007L
+#define SQ_INSTRUCTION_VFETCH_1__DST_SEL_Y_MASK 0x00000038L
+#define SQ_INSTRUCTION_VFETCH_1__DST_SEL_Z_MASK 0x000001c0L
+#define SQ_INSTRUCTION_VFETCH_1__DST_SEL_W_MASK 0x00000e00L
+#define SQ_INSTRUCTION_VFETCH_1__FORMAT_COMP_ALL_MASK 0x00001000L
+#define SQ_INSTRUCTION_VFETCH_1__FORMAT_COMP_ALL 0x00001000L
+#define SQ_INSTRUCTION_VFETCH_1__NUM_FORMAT_ALL_MASK 0x00002000L
+#define SQ_INSTRUCTION_VFETCH_1__NUM_FORMAT_ALL 0x00002000L
+#define SQ_INSTRUCTION_VFETCH_1__SIGNED_RF_MODE_ALL_MASK 0x00004000L
+#define SQ_INSTRUCTION_VFETCH_1__SIGNED_RF_MODE_ALL 0x00004000L
+#define SQ_INSTRUCTION_VFETCH_1__DATA_FORMAT_MASK 0x003f0000L
+#define SQ_INSTRUCTION_VFETCH_1__EXP_ADJUST_ALL_MASK 0x3f800000L
+#define SQ_INSTRUCTION_VFETCH_1__PRED_SELECT_MASK 0x80000000L
+#define SQ_INSTRUCTION_VFETCH_1__PRED_SELECT 0x80000000L
+
+// SQ_INSTRUCTION_VFETCH_2
+#define SQ_INSTRUCTION_VFETCH_2__STRIDE_MASK 0x000000ffL
+#define SQ_INSTRUCTION_VFETCH_2__OFFSET_MASK 0x00ff0000L
+#define SQ_INSTRUCTION_VFETCH_2__PRED_CONDITION_MASK 0x80000000L
+#define SQ_INSTRUCTION_VFETCH_2__PRED_CONDITION 0x80000000L
+
+// SQ_CONSTANT_0
+#define SQ_CONSTANT_0__RED_MASK 0xffffffffL
+
+// SQ_CONSTANT_1
+#define SQ_CONSTANT_1__GREEN_MASK 0xffffffffL
+
+// SQ_CONSTANT_2
+#define SQ_CONSTANT_2__BLUE_MASK 0xffffffffL
+
+// SQ_CONSTANT_3
+#define SQ_CONSTANT_3__ALPHA_MASK 0xffffffffL
+
+// SQ_FETCH_0
+#define SQ_FETCH_0__VALUE_MASK 0xffffffffL
+
+// SQ_FETCH_1
+#define SQ_FETCH_1__VALUE_MASK 0xffffffffL
+
+// SQ_FETCH_2
+#define SQ_FETCH_2__VALUE_MASK 0xffffffffL
+
+// SQ_FETCH_3
+#define SQ_FETCH_3__VALUE_MASK 0xffffffffL
+
+// SQ_FETCH_4
+#define SQ_FETCH_4__VALUE_MASK 0xffffffffL
+
+// SQ_FETCH_5
+#define SQ_FETCH_5__VALUE_MASK 0xffffffffL
+
+// SQ_CONSTANT_VFETCH_0
+#define SQ_CONSTANT_VFETCH_0__TYPE_MASK 0x00000001L
+#define SQ_CONSTANT_VFETCH_0__TYPE 0x00000001L
+#define SQ_CONSTANT_VFETCH_0__STATE_MASK 0x00000002L
+#define SQ_CONSTANT_VFETCH_0__STATE 0x00000002L
+#define SQ_CONSTANT_VFETCH_0__BASE_ADDRESS_MASK 0xfffffffcL
+
+// SQ_CONSTANT_VFETCH_1
+#define SQ_CONSTANT_VFETCH_1__ENDIAN_SWAP_MASK 0x00000003L
+#define SQ_CONSTANT_VFETCH_1__LIMIT_ADDRESS_MASK 0xfffffffcL
+
+// SQ_CONSTANT_T2
+#define SQ_CONSTANT_T2__VALUE_MASK 0xffffffffL
+
+// SQ_CONSTANT_T3
+#define SQ_CONSTANT_T3__VALUE_MASK 0xffffffffL
+
+// SQ_CF_BOOLEANS
+#define SQ_CF_BOOLEANS__CF_BOOLEANS_0_MASK 0x000000ffL
+#define SQ_CF_BOOLEANS__CF_BOOLEANS_1_MASK 0x0000ff00L
+#define SQ_CF_BOOLEANS__CF_BOOLEANS_2_MASK 0x00ff0000L
+#define SQ_CF_BOOLEANS__CF_BOOLEANS_3_MASK 0xff000000L
+
+// SQ_CF_LOOP
+#define SQ_CF_LOOP__CF_LOOP_COUNT_MASK 0x000000ffL
+#define SQ_CF_LOOP__CF_LOOP_START_MASK 0x0000ff00L
+#define SQ_CF_LOOP__CF_LOOP_STEP_MASK 0x00ff0000L
+
+// SQ_CONSTANT_RT_0
+#define SQ_CONSTANT_RT_0__RED_MASK 0xffffffffL
+
+// SQ_CONSTANT_RT_1
+#define SQ_CONSTANT_RT_1__GREEN_MASK 0xffffffffL
+
+// SQ_CONSTANT_RT_2
+#define SQ_CONSTANT_RT_2__BLUE_MASK 0xffffffffL
+
+// SQ_CONSTANT_RT_3
+#define SQ_CONSTANT_RT_3__ALPHA_MASK 0xffffffffL
+
+// SQ_FETCH_RT_0
+#define SQ_FETCH_RT_0__VALUE_MASK 0xffffffffL
+
+// SQ_FETCH_RT_1
+#define SQ_FETCH_RT_1__VALUE_MASK 0xffffffffL
+
+// SQ_FETCH_RT_2
+#define SQ_FETCH_RT_2__VALUE_MASK 0xffffffffL
+
+// SQ_FETCH_RT_3
+#define SQ_FETCH_RT_3__VALUE_MASK 0xffffffffL
+
+// SQ_FETCH_RT_4
+#define SQ_FETCH_RT_4__VALUE_MASK 0xffffffffL
+
+// SQ_FETCH_RT_5
+#define SQ_FETCH_RT_5__VALUE_MASK 0xffffffffL
+
+// SQ_CF_RT_BOOLEANS
+#define SQ_CF_RT_BOOLEANS__CF_BOOLEANS_0_MASK 0x000000ffL
+#define SQ_CF_RT_BOOLEANS__CF_BOOLEANS_1_MASK 0x0000ff00L
+#define SQ_CF_RT_BOOLEANS__CF_BOOLEANS_2_MASK 0x00ff0000L
+#define SQ_CF_RT_BOOLEANS__CF_BOOLEANS_3_MASK 0xff000000L
+
+// SQ_CF_RT_LOOP
+#define SQ_CF_RT_LOOP__CF_LOOP_COUNT_MASK 0x000000ffL
+#define SQ_CF_RT_LOOP__CF_LOOP_START_MASK 0x0000ff00L
+#define SQ_CF_RT_LOOP__CF_LOOP_STEP_MASK 0x00ff0000L
+
+// SQ_VS_PROGRAM
+#define SQ_VS_PROGRAM__BASE_MASK 0x00000fffL
+#define SQ_VS_PROGRAM__SIZE_MASK 0x00fff000L
+
+// SQ_PS_PROGRAM
+#define SQ_PS_PROGRAM__BASE_MASK 0x00000fffL
+#define SQ_PS_PROGRAM__SIZE_MASK 0x00fff000L
+
+// SQ_CF_PROGRAM_SIZE
+#define SQ_CF_PROGRAM_SIZE__VS_CF_SIZE_MASK 0x000007ffL
+#define SQ_CF_PROGRAM_SIZE__PS_CF_SIZE_MASK 0x007ff000L
+
+// SQ_INTERPOLATOR_CNTL
+#define SQ_INTERPOLATOR_CNTL__PARAM_SHADE_MASK 0x0000ffffL
+#define SQ_INTERPOLATOR_CNTL__SAMPLING_PATTERN_MASK 0xffff0000L
+
+// SQ_PROGRAM_CNTL
+#define SQ_PROGRAM_CNTL__VS_NUM_REG_MASK 0x0000003fL
+#define SQ_PROGRAM_CNTL__PS_NUM_REG_MASK 0x00003f00L
+#define SQ_PROGRAM_CNTL__VS_RESOURCE_MASK 0x00010000L
+#define SQ_PROGRAM_CNTL__VS_RESOURCE 0x00010000L
+#define SQ_PROGRAM_CNTL__PS_RESOURCE_MASK 0x00020000L
+#define SQ_PROGRAM_CNTL__PS_RESOURCE 0x00020000L
+#define SQ_PROGRAM_CNTL__PARAM_GEN_MASK 0x00040000L
+#define SQ_PROGRAM_CNTL__PARAM_GEN 0x00040000L
+#define SQ_PROGRAM_CNTL__GEN_INDEX_PIX_MASK 0x00080000L
+#define SQ_PROGRAM_CNTL__GEN_INDEX_PIX 0x00080000L
+#define SQ_PROGRAM_CNTL__VS_EXPORT_COUNT_MASK 0x00f00000L
+#define SQ_PROGRAM_CNTL__VS_EXPORT_MODE_MASK 0x07000000L
+#define SQ_PROGRAM_CNTL__PS_EXPORT_MODE_MASK 0x78000000L
+#define SQ_PROGRAM_CNTL__GEN_INDEX_VTX_MASK 0x80000000L
+#define SQ_PROGRAM_CNTL__GEN_INDEX_VTX 0x80000000L
+
+// SQ_WRAPPING_0
+#define SQ_WRAPPING_0__PARAM_WRAP_0_MASK 0x0000000fL
+#define SQ_WRAPPING_0__PARAM_WRAP_1_MASK 0x000000f0L
+#define SQ_WRAPPING_0__PARAM_WRAP_2_MASK 0x00000f00L
+#define SQ_WRAPPING_0__PARAM_WRAP_3_MASK 0x0000f000L
+#define SQ_WRAPPING_0__PARAM_WRAP_4_MASK 0x000f0000L
+#define SQ_WRAPPING_0__PARAM_WRAP_5_MASK 0x00f00000L
+#define SQ_WRAPPING_0__PARAM_WRAP_6_MASK 0x0f000000L
+#define SQ_WRAPPING_0__PARAM_WRAP_7_MASK 0xf0000000L
+
+// SQ_WRAPPING_1
+#define SQ_WRAPPING_1__PARAM_WRAP_8_MASK 0x0000000fL
+#define SQ_WRAPPING_1__PARAM_WRAP_9_MASK 0x000000f0L
+#define SQ_WRAPPING_1__PARAM_WRAP_10_MASK 0x00000f00L
+#define SQ_WRAPPING_1__PARAM_WRAP_11_MASK 0x0000f000L
+#define SQ_WRAPPING_1__PARAM_WRAP_12_MASK 0x000f0000L
+#define SQ_WRAPPING_1__PARAM_WRAP_13_MASK 0x00f00000L
+#define SQ_WRAPPING_1__PARAM_WRAP_14_MASK 0x0f000000L
+#define SQ_WRAPPING_1__PARAM_WRAP_15_MASK 0xf0000000L
+
+// SQ_VS_CONST
+#define SQ_VS_CONST__BASE_MASK 0x000001ffL
+#define SQ_VS_CONST__SIZE_MASK 0x001ff000L
+
+// SQ_PS_CONST
+#define SQ_PS_CONST__BASE_MASK 0x000001ffL
+#define SQ_PS_CONST__SIZE_MASK 0x001ff000L
+
+// SQ_CONTEXT_MISC
+#define SQ_CONTEXT_MISC__INST_PRED_OPTIMIZE_MASK 0x00000001L
+#define SQ_CONTEXT_MISC__INST_PRED_OPTIMIZE 0x00000001L
+#define SQ_CONTEXT_MISC__SC_OUTPUT_SCREEN_XY_MASK 0x00000002L
+#define SQ_CONTEXT_MISC__SC_OUTPUT_SCREEN_XY 0x00000002L
+#define SQ_CONTEXT_MISC__SC_SAMPLE_CNTL_MASK 0x0000000cL
+#define SQ_CONTEXT_MISC__PARAM_GEN_POS_MASK 0x0000ff00L
+#define SQ_CONTEXT_MISC__PERFCOUNTER_REF_MASK 0x00010000L
+#define SQ_CONTEXT_MISC__PERFCOUNTER_REF 0x00010000L
+#define SQ_CONTEXT_MISC__YEILD_OPTIMIZE_MASK 0x00020000L
+#define SQ_CONTEXT_MISC__YEILD_OPTIMIZE 0x00020000L
+#define SQ_CONTEXT_MISC__TX_CACHE_SEL_MASK 0x00040000L
+#define SQ_CONTEXT_MISC__TX_CACHE_SEL 0x00040000L
+
+// SQ_CF_RD_BASE
+#define SQ_CF_RD_BASE__RD_BASE_MASK 0x00000007L
+
+// SQ_DEBUG_MISC_0
+#define SQ_DEBUG_MISC_0__DB_PROB_ON_MASK 0x00000001L
+#define SQ_DEBUG_MISC_0__DB_PROB_ON 0x00000001L
+#define SQ_DEBUG_MISC_0__DB_PROB_BREAK_MASK 0x00000010L
+#define SQ_DEBUG_MISC_0__DB_PROB_BREAK 0x00000010L
+#define SQ_DEBUG_MISC_0__DB_PROB_ADDR_MASK 0x0007ff00L
+#define SQ_DEBUG_MISC_0__DB_PROB_COUNT_MASK 0xff000000L
+
+// SQ_DEBUG_MISC_1
+#define SQ_DEBUG_MISC_1__DB_ON_PIX_MASK 0x00000001L
+#define SQ_DEBUG_MISC_1__DB_ON_PIX 0x00000001L
+#define SQ_DEBUG_MISC_1__DB_ON_VTX_MASK 0x00000002L
+#define SQ_DEBUG_MISC_1__DB_ON_VTX 0x00000002L
+#define SQ_DEBUG_MISC_1__DB_INST_COUNT_MASK 0x0000ff00L
+#define SQ_DEBUG_MISC_1__DB_BREAK_ADDR_MASK 0x07ff0000L
+
+// MH_ARBITER_CONFIG
+#define MH_ARBITER_CONFIG__SAME_PAGE_LIMIT_MASK 0x0000003fL
+#define MH_ARBITER_CONFIG__SAME_PAGE_GRANULARITY_MASK 0x00000040L
+#define MH_ARBITER_CONFIG__SAME_PAGE_GRANULARITY 0x00000040L
+#define MH_ARBITER_CONFIG__L1_ARB_ENABLE_MASK 0x00000080L
+#define MH_ARBITER_CONFIG__L1_ARB_ENABLE 0x00000080L
+#define MH_ARBITER_CONFIG__L1_ARB_HOLD_ENABLE_MASK 0x00000100L
+#define MH_ARBITER_CONFIG__L1_ARB_HOLD_ENABLE 0x00000100L
+#define MH_ARBITER_CONFIG__L2_ARB_CONTROL_MASK 0x00000200L
+#define MH_ARBITER_CONFIG__L2_ARB_CONTROL 0x00000200L
+#define MH_ARBITER_CONFIG__PAGE_SIZE_MASK 0x00001c00L
+#define MH_ARBITER_CONFIG__TC_REORDER_ENABLE_MASK 0x00002000L
+#define MH_ARBITER_CONFIG__TC_REORDER_ENABLE 0x00002000L
+#define MH_ARBITER_CONFIG__TC_ARB_HOLD_ENABLE_MASK 0x00004000L
+#define MH_ARBITER_CONFIG__TC_ARB_HOLD_ENABLE 0x00004000L
+#define MH_ARBITER_CONFIG__IN_FLIGHT_LIMIT_ENABLE_MASK 0x00008000L
+#define MH_ARBITER_CONFIG__IN_FLIGHT_LIMIT_ENABLE 0x00008000L
+#define MH_ARBITER_CONFIG__IN_FLIGHT_LIMIT_MASK 0x003f0000L
+#define MH_ARBITER_CONFIG__CP_CLNT_ENABLE_MASK 0x00400000L
+#define MH_ARBITER_CONFIG__CP_CLNT_ENABLE 0x00400000L
+#define MH_ARBITER_CONFIG__VGT_CLNT_ENABLE_MASK 0x00800000L
+#define MH_ARBITER_CONFIG__VGT_CLNT_ENABLE 0x00800000L
+#define MH_ARBITER_CONFIG__TC_CLNT_ENABLE_MASK 0x01000000L
+#define MH_ARBITER_CONFIG__TC_CLNT_ENABLE 0x01000000L
+#define MH_ARBITER_CONFIG__RB_CLNT_ENABLE_MASK 0x02000000L
+#define MH_ARBITER_CONFIG__RB_CLNT_ENABLE 0x02000000L
+#define MH_ARBITER_CONFIG__PA_CLNT_ENABLE_MASK 0x04000000L
+#define MH_ARBITER_CONFIG__PA_CLNT_ENABLE 0x04000000L
+
+// MH_CLNT_AXI_ID_REUSE
+#define MH_CLNT_AXI_ID_REUSE__CPw_ID_MASK 0x00000007L
+#define MH_CLNT_AXI_ID_REUSE__RESERVED1_MASK 0x00000008L
+#define MH_CLNT_AXI_ID_REUSE__RESERVED1 0x00000008L
+#define MH_CLNT_AXI_ID_REUSE__RBw_ID_MASK 0x00000070L
+#define MH_CLNT_AXI_ID_REUSE__RESERVED2_MASK 0x00000080L
+#define MH_CLNT_AXI_ID_REUSE__RESERVED2 0x00000080L
+#define MH_CLNT_AXI_ID_REUSE__MMUr_ID_MASK 0x00000700L
+#define MH_CLNT_AXI_ID_REUSE__RESERVED3_MASK 0x00000800L
+#define MH_CLNT_AXI_ID_REUSE__RESERVED3 0x00000800L
+#define MH_CLNT_AXI_ID_REUSE__PAw_ID_MASK 0x00007000L
+
+// MH_INTERRUPT_MASK
+#define MH_INTERRUPT_MASK__AXI_READ_ERROR_MASK 0x00000001L
+#define MH_INTERRUPT_MASK__AXI_READ_ERROR 0x00000001L
+#define MH_INTERRUPT_MASK__AXI_WRITE_ERROR_MASK 0x00000002L
+#define MH_INTERRUPT_MASK__AXI_WRITE_ERROR 0x00000002L
+#define MH_INTERRUPT_MASK__MMU_PAGE_FAULT_MASK 0x00000004L
+#define MH_INTERRUPT_MASK__MMU_PAGE_FAULT 0x00000004L
+
+// MH_INTERRUPT_STATUS
+#define MH_INTERRUPT_STATUS__AXI_READ_ERROR_MASK 0x00000001L
+#define MH_INTERRUPT_STATUS__AXI_READ_ERROR 0x00000001L
+#define MH_INTERRUPT_STATUS__AXI_WRITE_ERROR_MASK 0x00000002L
+#define MH_INTERRUPT_STATUS__AXI_WRITE_ERROR 0x00000002L
+#define MH_INTERRUPT_STATUS__MMU_PAGE_FAULT_MASK 0x00000004L
+#define MH_INTERRUPT_STATUS__MMU_PAGE_FAULT 0x00000004L
+
+// MH_INTERRUPT_CLEAR
+#define MH_INTERRUPT_CLEAR__AXI_READ_ERROR_MASK 0x00000001L
+#define MH_INTERRUPT_CLEAR__AXI_READ_ERROR 0x00000001L
+#define MH_INTERRUPT_CLEAR__AXI_WRITE_ERROR_MASK 0x00000002L
+#define MH_INTERRUPT_CLEAR__AXI_WRITE_ERROR 0x00000002L
+#define MH_INTERRUPT_CLEAR__MMU_PAGE_FAULT_MASK 0x00000004L
+#define MH_INTERRUPT_CLEAR__MMU_PAGE_FAULT 0x00000004L
+
+// MH_AXI_ERROR
+#define MH_AXI_ERROR__AXI_READ_ID_MASK 0x00000007L
+#define MH_AXI_ERROR__AXI_READ_ERROR_MASK 0x00000008L
+#define MH_AXI_ERROR__AXI_READ_ERROR 0x00000008L
+#define MH_AXI_ERROR__AXI_WRITE_ID_MASK 0x00000070L
+#define MH_AXI_ERROR__AXI_WRITE_ERROR_MASK 0x00000080L
+#define MH_AXI_ERROR__AXI_WRITE_ERROR 0x00000080L
+
+// MH_PERFCOUNTER0_SELECT
+#define MH_PERFCOUNTER0_SELECT__PERF_SEL_MASK 0x000000ffL
+
+// MH_PERFCOUNTER1_SELECT
+#define MH_PERFCOUNTER1_SELECT__PERF_SEL_MASK 0x000000ffL
+
+// MH_PERFCOUNTER0_CONFIG
+#define MH_PERFCOUNTER0_CONFIG__N_VALUE_MASK 0x000000ffL
+
+// MH_PERFCOUNTER1_CONFIG
+#define MH_PERFCOUNTER1_CONFIG__N_VALUE_MASK 0x000000ffL
+
+// MH_PERFCOUNTER0_LOW
+#define MH_PERFCOUNTER0_LOW__PERF_COUNTER_LOW_MASK 0xffffffffL
+
+// MH_PERFCOUNTER1_LOW
+#define MH_PERFCOUNTER1_LOW__PERF_COUNTER_LOW_MASK 0xffffffffL
+
+// MH_PERFCOUNTER0_HI
+#define MH_PERFCOUNTER0_HI__PERF_COUNTER_HI_MASK 0x0000ffffL
+
+// MH_PERFCOUNTER1_HI
+#define MH_PERFCOUNTER1_HI__PERF_COUNTER_HI_MASK 0x0000ffffL
+
+// MH_DEBUG_CTRL
+#define MH_DEBUG_CTRL__INDEX_MASK 0x0000003fL
+
+// MH_DEBUG_DATA
+#define MH_DEBUG_DATA__DATA_MASK 0xffffffffL
+
+// MH_AXI_HALT_CONTROL
+#define MH_AXI_HALT_CONTROL__AXI_HALT_MASK 0x00000001L
+#define MH_AXI_HALT_CONTROL__AXI_HALT 0x00000001L
+
+// MH_DEBUG_REG00
+#define MH_DEBUG_REG00__MH_BUSY_MASK 0x00000001L
+#define MH_DEBUG_REG00__MH_BUSY 0x00000001L
+#define MH_DEBUG_REG00__TRANS_OUTSTANDING_MASK 0x00000002L
+#define MH_DEBUG_REG00__TRANS_OUTSTANDING 0x00000002L
+#define MH_DEBUG_REG00__CP_REQUEST_MASK 0x00000004L
+#define MH_DEBUG_REG00__CP_REQUEST 0x00000004L
+#define MH_DEBUG_REG00__VGT_REQUEST_MASK 0x00000008L
+#define MH_DEBUG_REG00__VGT_REQUEST 0x00000008L
+#define MH_DEBUG_REG00__TC_REQUEST_MASK 0x00000010L
+#define MH_DEBUG_REG00__TC_REQUEST 0x00000010L
+#define MH_DEBUG_REG00__TC_CAM_EMPTY_MASK 0x00000020L
+#define MH_DEBUG_REG00__TC_CAM_EMPTY 0x00000020L
+#define MH_DEBUG_REG00__TC_CAM_FULL_MASK 0x00000040L
+#define MH_DEBUG_REG00__TC_CAM_FULL 0x00000040L
+#define MH_DEBUG_REG00__TCD_EMPTY_MASK 0x00000080L
+#define MH_DEBUG_REG00__TCD_EMPTY 0x00000080L
+#define MH_DEBUG_REG00__TCD_FULL_MASK 0x00000100L
+#define MH_DEBUG_REG00__TCD_FULL 0x00000100L
+#define MH_DEBUG_REG00__RB_REQUEST_MASK 0x00000200L
+#define MH_DEBUG_REG00__RB_REQUEST 0x00000200L
+#define MH_DEBUG_REG00__PA_REQUEST_MASK 0x00000400L
+#define MH_DEBUG_REG00__PA_REQUEST 0x00000400L
+#define MH_DEBUG_REG00__MH_CLK_EN_STATE_MASK 0x00000800L
+#define MH_DEBUG_REG00__MH_CLK_EN_STATE 0x00000800L
+#define MH_DEBUG_REG00__ARQ_EMPTY_MASK 0x00001000L
+#define MH_DEBUG_REG00__ARQ_EMPTY 0x00001000L
+#define MH_DEBUG_REG00__ARQ_FULL_MASK 0x00002000L
+#define MH_DEBUG_REG00__ARQ_FULL 0x00002000L
+#define MH_DEBUG_REG00__WDB_EMPTY_MASK 0x00004000L
+#define MH_DEBUG_REG00__WDB_EMPTY 0x00004000L
+#define MH_DEBUG_REG00__WDB_FULL_MASK 0x00008000L
+#define MH_DEBUG_REG00__WDB_FULL 0x00008000L
+#define MH_DEBUG_REG00__AXI_AVALID_MASK 0x00010000L
+#define MH_DEBUG_REG00__AXI_AVALID 0x00010000L
+#define MH_DEBUG_REG00__AXI_AREADY_MASK 0x00020000L
+#define MH_DEBUG_REG00__AXI_AREADY 0x00020000L
+#define MH_DEBUG_REG00__AXI_ARVALID_MASK 0x00040000L
+#define MH_DEBUG_REG00__AXI_ARVALID 0x00040000L
+#define MH_DEBUG_REG00__AXI_ARREADY_MASK 0x00080000L
+#define MH_DEBUG_REG00__AXI_ARREADY 0x00080000L
+#define MH_DEBUG_REG00__AXI_WVALID_MASK 0x00100000L
+#define MH_DEBUG_REG00__AXI_WVALID 0x00100000L
+#define MH_DEBUG_REG00__AXI_WREADY_MASK 0x00200000L
+#define MH_DEBUG_REG00__AXI_WREADY 0x00200000L
+#define MH_DEBUG_REG00__AXI_RVALID_MASK 0x00400000L
+#define MH_DEBUG_REG00__AXI_RVALID 0x00400000L
+#define MH_DEBUG_REG00__AXI_RREADY_MASK 0x00800000L
+#define MH_DEBUG_REG00__AXI_RREADY 0x00800000L
+#define MH_DEBUG_REG00__AXI_BVALID_MASK 0x01000000L
+#define MH_DEBUG_REG00__AXI_BVALID 0x01000000L
+#define MH_DEBUG_REG00__AXI_BREADY_MASK 0x02000000L
+#define MH_DEBUG_REG00__AXI_BREADY 0x02000000L
+#define MH_DEBUG_REG00__AXI_HALT_REQ_MASK 0x04000000L
+#define MH_DEBUG_REG00__AXI_HALT_REQ 0x04000000L
+#define MH_DEBUG_REG00__AXI_HALT_ACK_MASK 0x08000000L
+#define MH_DEBUG_REG00__AXI_HALT_ACK 0x08000000L
+#define MH_DEBUG_REG00__AXI_RDY_ENA_MASK 0x10000000L
+#define MH_DEBUG_REG00__AXI_RDY_ENA 0x10000000L
+
+// MH_DEBUG_REG01
+#define MH_DEBUG_REG01__CP_SEND_q_MASK 0x00000001L
+#define MH_DEBUG_REG01__CP_SEND_q 0x00000001L
+#define MH_DEBUG_REG01__CP_RTR_q_MASK 0x00000002L
+#define MH_DEBUG_REG01__CP_RTR_q 0x00000002L
+#define MH_DEBUG_REG01__CP_WRITE_q_MASK 0x00000004L
+#define MH_DEBUG_REG01__CP_WRITE_q 0x00000004L
+#define MH_DEBUG_REG01__CP_TAG_q_MASK 0x00000038L
+#define MH_DEBUG_REG01__CP_BLEN_q_MASK 0x00000040L
+#define MH_DEBUG_REG01__CP_BLEN_q 0x00000040L
+#define MH_DEBUG_REG01__VGT_SEND_q_MASK 0x00000080L
+#define MH_DEBUG_REG01__VGT_SEND_q 0x00000080L
+#define MH_DEBUG_REG01__VGT_RTR_q_MASK 0x00000100L
+#define MH_DEBUG_REG01__VGT_RTR_q 0x00000100L
+#define MH_DEBUG_REG01__VGT_TAG_q_MASK 0x00000200L
+#define MH_DEBUG_REG01__VGT_TAG_q 0x00000200L
+#define MH_DEBUG_REG01__TC_SEND_q_MASK 0x00000400L
+#define MH_DEBUG_REG01__TC_SEND_q 0x00000400L
+#define MH_DEBUG_REG01__TC_RTR_q_MASK 0x00000800L
+#define MH_DEBUG_REG01__TC_RTR_q 0x00000800L
+#define MH_DEBUG_REG01__TC_BLEN_q_MASK 0x00001000L
+#define MH_DEBUG_REG01__TC_BLEN_q 0x00001000L
+#define MH_DEBUG_REG01__TC_ROQ_SEND_q_MASK 0x00002000L
+#define MH_DEBUG_REG01__TC_ROQ_SEND_q 0x00002000L
+#define MH_DEBUG_REG01__TC_ROQ_RTR_q_MASK 0x00004000L
+#define MH_DEBUG_REG01__TC_ROQ_RTR_q 0x00004000L
+#define MH_DEBUG_REG01__TC_MH_written_MASK 0x00008000L
+#define MH_DEBUG_REG01__TC_MH_written 0x00008000L
+#define MH_DEBUG_REG01__RB_SEND_q_MASK 0x00010000L
+#define MH_DEBUG_REG01__RB_SEND_q 0x00010000L
+#define MH_DEBUG_REG01__RB_RTR_q_MASK 0x00020000L
+#define MH_DEBUG_REG01__RB_RTR_q 0x00020000L
+#define MH_DEBUG_REG01__PA_SEND_q_MASK 0x00040000L
+#define MH_DEBUG_REG01__PA_SEND_q 0x00040000L
+#define MH_DEBUG_REG01__PA_RTR_q_MASK 0x00080000L
+#define MH_DEBUG_REG01__PA_RTR_q 0x00080000L
+
+// MH_DEBUG_REG02
+#define MH_DEBUG_REG02__MH_CP_grb_send_MASK 0x00000001L
+#define MH_DEBUG_REG02__MH_CP_grb_send 0x00000001L
+#define MH_DEBUG_REG02__MH_VGT_grb_send_MASK 0x00000002L
+#define MH_DEBUG_REG02__MH_VGT_grb_send 0x00000002L
+#define MH_DEBUG_REG02__MH_TC_mcsend_MASK 0x00000004L
+#define MH_DEBUG_REG02__MH_TC_mcsend 0x00000004L
+#define MH_DEBUG_REG02__MH_CLNT_rlast_MASK 0x00000008L
+#define MH_DEBUG_REG02__MH_CLNT_rlast 0x00000008L
+#define MH_DEBUG_REG02__MH_CLNT_tag_MASK 0x00000070L
+#define MH_DEBUG_REG02__RDC_RID_MASK 0x00000380L
+#define MH_DEBUG_REG02__RDC_RRESP_MASK 0x00000c00L
+#define MH_DEBUG_REG02__MH_CP_writeclean_MASK 0x00001000L
+#define MH_DEBUG_REG02__MH_CP_writeclean 0x00001000L
+#define MH_DEBUG_REG02__MH_RB_writeclean_MASK 0x00002000L
+#define MH_DEBUG_REG02__MH_RB_writeclean 0x00002000L
+#define MH_DEBUG_REG02__MH_PA_writeclean_MASK 0x00004000L
+#define MH_DEBUG_REG02__MH_PA_writeclean 0x00004000L
+#define MH_DEBUG_REG02__BRC_BID_MASK 0x00038000L
+#define MH_DEBUG_REG02__BRC_BRESP_MASK 0x000c0000L
+
+// MH_DEBUG_REG03
+#define MH_DEBUG_REG03__MH_CLNT_data_31_0_MASK 0xffffffffL
+
+// MH_DEBUG_REG04
+#define MH_DEBUG_REG04__MH_CLNT_data_63_32_MASK 0xffffffffL
+
+// MH_DEBUG_REG05
+#define MH_DEBUG_REG05__CP_MH_send_MASK 0x00000001L
+#define MH_DEBUG_REG05__CP_MH_send 0x00000001L
+#define MH_DEBUG_REG05__CP_MH_write_MASK 0x00000002L
+#define MH_DEBUG_REG05__CP_MH_write 0x00000002L
+#define MH_DEBUG_REG05__CP_MH_tag_MASK 0x0000001cL
+#define MH_DEBUG_REG05__CP_MH_ad_31_5_MASK 0xffffffe0L
+
+// MH_DEBUG_REG06
+#define MH_DEBUG_REG06__CP_MH_data_31_0_MASK 0xffffffffL
+
+// MH_DEBUG_REG07
+#define MH_DEBUG_REG07__CP_MH_data_63_32_MASK 0xffffffffL
+
+// MH_DEBUG_REG08
+#define MH_DEBUG_REG08__CP_MH_be_MASK 0x000000ffL
+#define MH_DEBUG_REG08__RB_MH_be_MASK 0x0000ff00L
+#define MH_DEBUG_REG08__PA_MH_be_MASK 0x00ff0000L
+
+// MH_DEBUG_REG09
+#define MH_DEBUG_REG09__ALWAYS_ZERO_MASK 0x00000007L
+#define MH_DEBUG_REG09__VGT_MH_send_MASK 0x00000008L
+#define MH_DEBUG_REG09__VGT_MH_send 0x00000008L
+#define MH_DEBUG_REG09__VGT_MH_tagbe_MASK 0x00000010L
+#define MH_DEBUG_REG09__VGT_MH_tagbe 0x00000010L
+#define MH_DEBUG_REG09__VGT_MH_ad_31_5_MASK 0xffffffe0L
+
+// MH_DEBUG_REG10
+#define MH_DEBUG_REG10__ALWAYS_ZERO_MASK 0x00000003L
+#define MH_DEBUG_REG10__TC_MH_send_MASK 0x00000004L
+#define MH_DEBUG_REG10__TC_MH_send 0x00000004L
+#define MH_DEBUG_REG10__TC_MH_mask_MASK 0x00000018L
+#define MH_DEBUG_REG10__TC_MH_addr_31_5_MASK 0xffffffe0L
+
+// MH_DEBUG_REG11
+#define MH_DEBUG_REG11__TC_MH_info_MASK 0x01ffffffL
+#define MH_DEBUG_REG11__TC_MH_send_MASK 0x02000000L
+#define MH_DEBUG_REG11__TC_MH_send 0x02000000L
+
+// MH_DEBUG_REG12
+#define MH_DEBUG_REG12__MH_TC_mcinfo_MASK 0x01ffffffL
+#define MH_DEBUG_REG12__MH_TC_mcinfo_send_MASK 0x02000000L
+#define MH_DEBUG_REG12__MH_TC_mcinfo_send 0x02000000L
+#define MH_DEBUG_REG12__TC_MH_written_MASK 0x04000000L
+#define MH_DEBUG_REG12__TC_MH_written 0x04000000L
+
+// MH_DEBUG_REG13
+#define MH_DEBUG_REG13__ALWAYS_ZERO_MASK 0x00000003L
+#define MH_DEBUG_REG13__TC_ROQ_SEND_MASK 0x00000004L
+#define MH_DEBUG_REG13__TC_ROQ_SEND 0x00000004L
+#define MH_DEBUG_REG13__TC_ROQ_MASK_MASK 0x00000018L
+#define MH_DEBUG_REG13__TC_ROQ_ADDR_31_5_MASK 0xffffffe0L
+
+// MH_DEBUG_REG14
+#define MH_DEBUG_REG14__TC_ROQ_INFO_MASK 0x01ffffffL
+#define MH_DEBUG_REG14__TC_ROQ_SEND_MASK 0x02000000L
+#define MH_DEBUG_REG14__TC_ROQ_SEND 0x02000000L
+
+// MH_DEBUG_REG15
+#define MH_DEBUG_REG15__ALWAYS_ZERO_MASK 0x0000000fL
+#define MH_DEBUG_REG15__RB_MH_send_MASK 0x00000010L
+#define MH_DEBUG_REG15__RB_MH_send 0x00000010L
+#define MH_DEBUG_REG15__RB_MH_addr_31_5_MASK 0xffffffe0L
+
+// MH_DEBUG_REG16
+#define MH_DEBUG_REG16__RB_MH_data_31_0_MASK 0xffffffffL
+
+// MH_DEBUG_REG17
+#define MH_DEBUG_REG17__RB_MH_data_63_32_MASK 0xffffffffL
+
+// MH_DEBUG_REG18
+#define MH_DEBUG_REG18__ALWAYS_ZERO_MASK 0x0000000fL
+#define MH_DEBUG_REG18__PA_MH_send_MASK 0x00000010L
+#define MH_DEBUG_REG18__PA_MH_send 0x00000010L
+#define MH_DEBUG_REG18__PA_MH_addr_31_5_MASK 0xffffffe0L
+
+// MH_DEBUG_REG19
+#define MH_DEBUG_REG19__PA_MH_data_31_0_MASK 0xffffffffL
+
+// MH_DEBUG_REG20
+#define MH_DEBUG_REG20__PA_MH_data_63_32_MASK 0xffffffffL
+
+// MH_DEBUG_REG21
+#define MH_DEBUG_REG21__AVALID_q_MASK 0x00000001L
+#define MH_DEBUG_REG21__AVALID_q 0x00000001L
+#define MH_DEBUG_REG21__AREADY_q_MASK 0x00000002L
+#define MH_DEBUG_REG21__AREADY_q 0x00000002L
+#define MH_DEBUG_REG21__AID_q_MASK 0x0000001cL
+#define MH_DEBUG_REG21__ALEN_q_2_0_MASK 0x000000e0L
+#define MH_DEBUG_REG21__ARVALID_q_MASK 0x00000100L
+#define MH_DEBUG_REG21__ARVALID_q 0x00000100L
+#define MH_DEBUG_REG21__ARREADY_q_MASK 0x00000200L
+#define MH_DEBUG_REG21__ARREADY_q 0x00000200L
+#define MH_DEBUG_REG21__ARID_q_MASK 0x00001c00L
+#define MH_DEBUG_REG21__ARLEN_q_1_0_MASK 0x00006000L
+#define MH_DEBUG_REG21__RVALID_q_MASK 0x00008000L
+#define MH_DEBUG_REG21__RVALID_q 0x00008000L
+#define MH_DEBUG_REG21__RREADY_q_MASK 0x00010000L
+#define MH_DEBUG_REG21__RREADY_q 0x00010000L
+#define MH_DEBUG_REG21__RLAST_q_MASK 0x00020000L
+#define MH_DEBUG_REG21__RLAST_q 0x00020000L
+#define MH_DEBUG_REG21__RID_q_MASK 0x001c0000L
+#define MH_DEBUG_REG21__WVALID_q_MASK 0x00200000L
+#define MH_DEBUG_REG21__WVALID_q 0x00200000L
+#define MH_DEBUG_REG21__WREADY_q_MASK 0x00400000L
+#define MH_DEBUG_REG21__WREADY_q 0x00400000L
+#define MH_DEBUG_REG21__WLAST_q_MASK 0x00800000L
+#define MH_DEBUG_REG21__WLAST_q 0x00800000L
+#define MH_DEBUG_REG21__WID_q_MASK 0x07000000L
+#define MH_DEBUG_REG21__BVALID_q_MASK 0x08000000L
+#define MH_DEBUG_REG21__BVALID_q 0x08000000L
+#define MH_DEBUG_REG21__BREADY_q_MASK 0x10000000L
+#define MH_DEBUG_REG21__BREADY_q 0x10000000L
+#define MH_DEBUG_REG21__BID_q_MASK 0xe0000000L
+
+// MH_DEBUG_REG22
+#define MH_DEBUG_REG22__AVALID_q_MASK 0x00000001L
+#define MH_DEBUG_REG22__AVALID_q 0x00000001L
+#define MH_DEBUG_REG22__AREADY_q_MASK 0x00000002L
+#define MH_DEBUG_REG22__AREADY_q 0x00000002L
+#define MH_DEBUG_REG22__AID_q_MASK 0x0000001cL
+#define MH_DEBUG_REG22__ALEN_q_1_0_MASK 0x00000060L
+#define MH_DEBUG_REG22__ARVALID_q_MASK 0x00000080L
+#define MH_DEBUG_REG22__ARVALID_q 0x00000080L
+#define MH_DEBUG_REG22__ARREADY_q_MASK 0x00000100L
+#define MH_DEBUG_REG22__ARREADY_q 0x00000100L
+#define MH_DEBUG_REG22__ARID_q_MASK 0x00000e00L
+#define MH_DEBUG_REG22__ARLEN_q_1_1_MASK 0x00001000L
+#define MH_DEBUG_REG22__ARLEN_q_1_1 0x00001000L
+#define MH_DEBUG_REG22__WVALID_q_MASK 0x00002000L
+#define MH_DEBUG_REG22__WVALID_q 0x00002000L
+#define MH_DEBUG_REG22__WREADY_q_MASK 0x00004000L
+#define MH_DEBUG_REG22__WREADY_q 0x00004000L
+#define MH_DEBUG_REG22__WLAST_q_MASK 0x00008000L
+#define MH_DEBUG_REG22__WLAST_q 0x00008000L
+#define MH_DEBUG_REG22__WID_q_MASK 0x00070000L
+#define MH_DEBUG_REG22__WSTRB_q_MASK 0x07f80000L
+#define MH_DEBUG_REG22__BVALID_q_MASK 0x08000000L
+#define MH_DEBUG_REG22__BVALID_q 0x08000000L
+#define MH_DEBUG_REG22__BREADY_q_MASK 0x10000000L
+#define MH_DEBUG_REG22__BREADY_q 0x10000000L
+#define MH_DEBUG_REG22__BID_q_MASK 0xe0000000L
+
+// MH_DEBUG_REG23
+#define MH_DEBUG_REG23__ARC_CTRL_RE_q_MASK 0x00000001L
+#define MH_DEBUG_REG23__ARC_CTRL_RE_q 0x00000001L
+#define MH_DEBUG_REG23__CTRL_ARC_ID_MASK 0x0000000eL
+#define MH_DEBUG_REG23__CTRL_ARC_PAD_MASK 0xfffffff0L
+
+// MH_DEBUG_REG24
+#define MH_DEBUG_REG24__ALWAYS_ZERO_MASK 0x00000003L
+#define MH_DEBUG_REG24__REG_A_MASK 0x0000fffcL
+#define MH_DEBUG_REG24__REG_RE_MASK 0x00010000L
+#define MH_DEBUG_REG24__REG_RE 0x00010000L
+#define MH_DEBUG_REG24__REG_WE_MASK 0x00020000L
+#define MH_DEBUG_REG24__REG_WE 0x00020000L
+#define MH_DEBUG_REG24__BLOCK_RS_MASK 0x00040000L
+#define MH_DEBUG_REG24__BLOCK_RS 0x00040000L
+
+// MH_DEBUG_REG25
+#define MH_DEBUG_REG25__REG_WD_MASK 0xffffffffL
+
+// MH_DEBUG_REG26
+#define MH_DEBUG_REG26__MH_RBBM_busy_MASK 0x00000001L
+#define MH_DEBUG_REG26__MH_RBBM_busy 0x00000001L
+#define MH_DEBUG_REG26__MH_CIB_mh_clk_en_int_MASK 0x00000002L
+#define MH_DEBUG_REG26__MH_CIB_mh_clk_en_int 0x00000002L
+#define MH_DEBUG_REG26__MH_CIB_mmu_clk_en_int_MASK 0x00000004L
+#define MH_DEBUG_REG26__MH_CIB_mmu_clk_en_int 0x00000004L
+#define MH_DEBUG_REG26__MH_CIB_tcroq_clk_en_int_MASK 0x00000008L
+#define MH_DEBUG_REG26__MH_CIB_tcroq_clk_en_int 0x00000008L
+#define MH_DEBUG_REG26__GAT_CLK_ENA_MASK 0x00000010L
+#define MH_DEBUG_REG26__GAT_CLK_ENA 0x00000010L
+#define MH_DEBUG_REG26__RBBM_MH_clk_en_override_MASK 0x00000020L
+#define MH_DEBUG_REG26__RBBM_MH_clk_en_override 0x00000020L
+#define MH_DEBUG_REG26__CNT_q_MASK 0x00000fc0L
+#define MH_DEBUG_REG26__TCD_EMPTY_q_MASK 0x00001000L
+#define MH_DEBUG_REG26__TCD_EMPTY_q 0x00001000L
+#define MH_DEBUG_REG26__TC_ROQ_EMPTY_MASK 0x00002000L
+#define MH_DEBUG_REG26__TC_ROQ_EMPTY 0x00002000L
+#define MH_DEBUG_REG26__MH_BUSY_d_MASK 0x00004000L
+#define MH_DEBUG_REG26__MH_BUSY_d 0x00004000L
+#define MH_DEBUG_REG26__ANY_CLNT_BUSY_MASK 0x00008000L
+#define MH_DEBUG_REG26__ANY_CLNT_BUSY 0x00008000L
+#define MH_DEBUG_REG26__MH_MMU_INVALIDATE_INVALIDATE_ALL_MASK 0x00010000L
+#define MH_DEBUG_REG26__MH_MMU_INVALIDATE_INVALIDATE_ALL 0x00010000L
+#define MH_DEBUG_REG26__MH_MMU_INVALIDATE_INVALIDATE_TC_MASK 0x00020000L
+#define MH_DEBUG_REG26__MH_MMU_INVALIDATE_INVALIDATE_TC 0x00020000L
+#define MH_DEBUG_REG26__CP_SEND_q_MASK 0x00040000L
+#define MH_DEBUG_REG26__CP_SEND_q 0x00040000L
+#define MH_DEBUG_REG26__CP_RTR_q_MASK 0x00080000L
+#define MH_DEBUG_REG26__CP_RTR_q 0x00080000L
+#define MH_DEBUG_REG26__VGT_SEND_q_MASK 0x00100000L
+#define MH_DEBUG_REG26__VGT_SEND_q 0x00100000L
+#define MH_DEBUG_REG26__VGT_RTR_q_MASK 0x00200000L
+#define MH_DEBUG_REG26__VGT_RTR_q 0x00200000L
+#define MH_DEBUG_REG26__TC_ROQ_SEND_q_MASK 0x00400000L
+#define MH_DEBUG_REG26__TC_ROQ_SEND_q 0x00400000L
+#define MH_DEBUG_REG26__TC_ROQ_RTR_DBG_q_MASK 0x00800000L
+#define MH_DEBUG_REG26__TC_ROQ_RTR_DBG_q 0x00800000L
+#define MH_DEBUG_REG26__RB_SEND_q_MASK 0x01000000L
+#define MH_DEBUG_REG26__RB_SEND_q 0x01000000L
+#define MH_DEBUG_REG26__RB_RTR_q_MASK 0x02000000L
+#define MH_DEBUG_REG26__RB_RTR_q 0x02000000L
+#define MH_DEBUG_REG26__PA_SEND_q_MASK 0x04000000L
+#define MH_DEBUG_REG26__PA_SEND_q 0x04000000L
+#define MH_DEBUG_REG26__PA_RTR_q_MASK 0x08000000L
+#define MH_DEBUG_REG26__PA_RTR_q 0x08000000L
+#define MH_DEBUG_REG26__RDC_VALID_MASK 0x10000000L
+#define MH_DEBUG_REG26__RDC_VALID 0x10000000L
+#define MH_DEBUG_REG26__RDC_RLAST_MASK 0x20000000L
+#define MH_DEBUG_REG26__RDC_RLAST 0x20000000L
+#define MH_DEBUG_REG26__TLBMISS_VALID_MASK 0x40000000L
+#define MH_DEBUG_REG26__TLBMISS_VALID 0x40000000L
+#define MH_DEBUG_REG26__BRC_VALID_MASK 0x80000000L
+#define MH_DEBUG_REG26__BRC_VALID 0x80000000L
+
+// MH_DEBUG_REG27
+#define MH_DEBUG_REG27__EFF2_FP_WINNER_MASK 0x00000007L
+#define MH_DEBUG_REG27__EFF2_LRU_WINNER_out_MASK 0x00000038L
+#define MH_DEBUG_REG27__EFF1_WINNER_MASK 0x000001c0L
+#define MH_DEBUG_REG27__ARB_WINNER_MASK 0x00000e00L
+#define MH_DEBUG_REG27__ARB_WINNER_q_MASK 0x00007000L
+#define MH_DEBUG_REG27__EFF1_WIN_MASK 0x00008000L
+#define MH_DEBUG_REG27__EFF1_WIN 0x00008000L
+#define MH_DEBUG_REG27__KILL_EFF1_MASK 0x00010000L
+#define MH_DEBUG_REG27__KILL_EFF1 0x00010000L
+#define MH_DEBUG_REG27__ARB_HOLD_MASK 0x00020000L
+#define MH_DEBUG_REG27__ARB_HOLD 0x00020000L
+#define MH_DEBUG_REG27__ARB_RTR_q_MASK 0x00040000L
+#define MH_DEBUG_REG27__ARB_RTR_q 0x00040000L
+#define MH_DEBUG_REG27__CP_SEND_QUAL_MASK 0x00080000L
+#define MH_DEBUG_REG27__CP_SEND_QUAL 0x00080000L
+#define MH_DEBUG_REG27__VGT_SEND_QUAL_MASK 0x00100000L
+#define MH_DEBUG_REG27__VGT_SEND_QUAL 0x00100000L
+#define MH_DEBUG_REG27__TC_SEND_QUAL_MASK 0x00200000L
+#define MH_DEBUG_REG27__TC_SEND_QUAL 0x00200000L
+#define MH_DEBUG_REG27__TC_SEND_EFF1_QUAL_MASK 0x00400000L
+#define MH_DEBUG_REG27__TC_SEND_EFF1_QUAL 0x00400000L
+#define MH_DEBUG_REG27__RB_SEND_QUAL_MASK 0x00800000L
+#define MH_DEBUG_REG27__RB_SEND_QUAL 0x00800000L
+#define MH_DEBUG_REG27__PA_SEND_QUAL_MASK 0x01000000L
+#define MH_DEBUG_REG27__PA_SEND_QUAL 0x01000000L
+#define MH_DEBUG_REG27__ARB_QUAL_MASK 0x02000000L
+#define MH_DEBUG_REG27__ARB_QUAL 0x02000000L
+#define MH_DEBUG_REG27__CP_EFF1_REQ_MASK 0x04000000L
+#define MH_DEBUG_REG27__CP_EFF1_REQ 0x04000000L
+#define MH_DEBUG_REG27__VGT_EFF1_REQ_MASK 0x08000000L
+#define MH_DEBUG_REG27__VGT_EFF1_REQ 0x08000000L
+#define MH_DEBUG_REG27__TC_EFF1_REQ_MASK 0x10000000L
+#define MH_DEBUG_REG27__TC_EFF1_REQ 0x10000000L
+#define MH_DEBUG_REG27__RB_EFF1_REQ_MASK 0x20000000L
+#define MH_DEBUG_REG27__RB_EFF1_REQ 0x20000000L
+#define MH_DEBUG_REG27__TCD_NEARFULL_q_MASK 0x40000000L
+#define MH_DEBUG_REG27__TCD_NEARFULL_q 0x40000000L
+#define MH_DEBUG_REG27__TCHOLD_IP_q_MASK 0x80000000L
+#define MH_DEBUG_REG27__TCHOLD_IP_q 0x80000000L
+
+// MH_DEBUG_REG28
+#define MH_DEBUG_REG28__EFF1_WINNER_MASK 0x00000007L
+#define MH_DEBUG_REG28__ARB_WINNER_MASK 0x00000038L
+#define MH_DEBUG_REG28__CP_SEND_QUAL_MASK 0x00000040L
+#define MH_DEBUG_REG28__CP_SEND_QUAL 0x00000040L
+#define MH_DEBUG_REG28__VGT_SEND_QUAL_MASK 0x00000080L
+#define MH_DEBUG_REG28__VGT_SEND_QUAL 0x00000080L
+#define MH_DEBUG_REG28__TC_SEND_QUAL_MASK 0x00000100L
+#define MH_DEBUG_REG28__TC_SEND_QUAL 0x00000100L
+#define MH_DEBUG_REG28__TC_SEND_EFF1_QUAL_MASK 0x00000200L
+#define MH_DEBUG_REG28__TC_SEND_EFF1_QUAL 0x00000200L
+#define MH_DEBUG_REG28__RB_SEND_QUAL_MASK 0x00000400L
+#define MH_DEBUG_REG28__RB_SEND_QUAL 0x00000400L
+#define MH_DEBUG_REG28__ARB_QUAL_MASK 0x00000800L
+#define MH_DEBUG_REG28__ARB_QUAL 0x00000800L
+#define MH_DEBUG_REG28__CP_EFF1_REQ_MASK 0x00001000L
+#define MH_DEBUG_REG28__CP_EFF1_REQ 0x00001000L
+#define MH_DEBUG_REG28__VGT_EFF1_REQ_MASK 0x00002000L
+#define MH_DEBUG_REG28__VGT_EFF1_REQ 0x00002000L
+#define MH_DEBUG_REG28__TC_EFF1_REQ_MASK 0x00004000L
+#define MH_DEBUG_REG28__TC_EFF1_REQ 0x00004000L
+#define MH_DEBUG_REG28__RB_EFF1_REQ_MASK 0x00008000L
+#define MH_DEBUG_REG28__RB_EFF1_REQ 0x00008000L
+#define MH_DEBUG_REG28__EFF1_WIN_MASK 0x00010000L
+#define MH_DEBUG_REG28__EFF1_WIN 0x00010000L
+#define MH_DEBUG_REG28__KILL_EFF1_MASK 0x00020000L
+#define MH_DEBUG_REG28__KILL_EFF1 0x00020000L
+#define MH_DEBUG_REG28__TCD_NEARFULL_q_MASK 0x00040000L
+#define MH_DEBUG_REG28__TCD_NEARFULL_q 0x00040000L
+#define MH_DEBUG_REG28__TC_ARB_HOLD_MASK 0x00080000L
+#define MH_DEBUG_REG28__TC_ARB_HOLD 0x00080000L
+#define MH_DEBUG_REG28__ARB_HOLD_MASK 0x00100000L
+#define MH_DEBUG_REG28__ARB_HOLD 0x00100000L
+#define MH_DEBUG_REG28__ARB_RTR_q_MASK 0x00200000L
+#define MH_DEBUG_REG28__ARB_RTR_q 0x00200000L
+#define MH_DEBUG_REG28__SAME_PAGE_LIMIT_COUNT_q_MASK 0xffc00000L
+
+// MH_DEBUG_REG29
+#define MH_DEBUG_REG29__EFF2_LRU_WINNER_out_MASK 0x00000007L
+#define MH_DEBUG_REG29__LEAST_RECENT_INDEX_d_MASK 0x00000038L
+#define MH_DEBUG_REG29__LEAST_RECENT_d_MASK 0x000001c0L
+#define MH_DEBUG_REG29__UPDATE_RECENT_STACK_d_MASK 0x00000200L
+#define MH_DEBUG_REG29__UPDATE_RECENT_STACK_d 0x00000200L
+#define MH_DEBUG_REG29__ARB_HOLD_MASK 0x00000400L
+#define MH_DEBUG_REG29__ARB_HOLD 0x00000400L
+#define MH_DEBUG_REG29__ARB_RTR_q_MASK 0x00000800L
+#define MH_DEBUG_REG29__ARB_RTR_q 0x00000800L
+#define MH_DEBUG_REG29__CLNT_REQ_MASK 0x0001f000L
+#define MH_DEBUG_REG29__RECENT_d_0_MASK 0x000e0000L
+#define MH_DEBUG_REG29__RECENT_d_1_MASK 0x00700000L
+#define MH_DEBUG_REG29__RECENT_d_2_MASK 0x03800000L
+#define MH_DEBUG_REG29__RECENT_d_3_MASK 0x1c000000L
+#define MH_DEBUG_REG29__RECENT_d_4_MASK 0xe0000000L
+
+// MH_DEBUG_REG30
+#define MH_DEBUG_REG30__TC_ARB_HOLD_MASK 0x00000001L
+#define MH_DEBUG_REG30__TC_ARB_HOLD 0x00000001L
+#define MH_DEBUG_REG30__TC_NOROQ_SAME_ROW_BANK_MASK 0x00000002L
+#define MH_DEBUG_REG30__TC_NOROQ_SAME_ROW_BANK 0x00000002L
+#define MH_DEBUG_REG30__TC_ROQ_SAME_ROW_BANK_MASK 0x00000004L
+#define MH_DEBUG_REG30__TC_ROQ_SAME_ROW_BANK 0x00000004L
+#define MH_DEBUG_REG30__TCD_NEARFULL_q_MASK 0x00000008L
+#define MH_DEBUG_REG30__TCD_NEARFULL_q 0x00000008L
+#define MH_DEBUG_REG30__TCHOLD_IP_q_MASK 0x00000010L
+#define MH_DEBUG_REG30__TCHOLD_IP_q 0x00000010L
+#define MH_DEBUG_REG30__TCHOLD_CNT_q_MASK 0x000000e0L
+#define MH_DEBUG_REG30__MH_ARBITER_CONFIG_TC_REORDER_ENABLE_MASK 0x00000100L
+#define MH_DEBUG_REG30__MH_ARBITER_CONFIG_TC_REORDER_ENABLE 0x00000100L
+#define MH_DEBUG_REG30__TC_ROQ_RTR_DBG_q_MASK 0x00000200L
+#define MH_DEBUG_REG30__TC_ROQ_RTR_DBG_q 0x00000200L
+#define MH_DEBUG_REG30__TC_ROQ_SEND_q_MASK 0x00000400L
+#define MH_DEBUG_REG30__TC_ROQ_SEND_q 0x00000400L
+#define MH_DEBUG_REG30__TC_MH_written_MASK 0x00000800L
+#define MH_DEBUG_REG30__TC_MH_written 0x00000800L
+#define MH_DEBUG_REG30__TCD_FULLNESS_CNT_q_MASK 0x0007f000L
+#define MH_DEBUG_REG30__WBURST_ACTIVE_MASK 0x00080000L
+#define MH_DEBUG_REG30__WBURST_ACTIVE 0x00080000L
+#define MH_DEBUG_REG30__WLAST_q_MASK 0x00100000L
+#define MH_DEBUG_REG30__WLAST_q 0x00100000L
+#define MH_DEBUG_REG30__WBURST_IP_q_MASK 0x00200000L
+#define MH_DEBUG_REG30__WBURST_IP_q 0x00200000L
+#define MH_DEBUG_REG30__WBURST_CNT_q_MASK 0x01c00000L
+#define MH_DEBUG_REG30__CP_SEND_QUAL_MASK 0x02000000L
+#define MH_DEBUG_REG30__CP_SEND_QUAL 0x02000000L
+#define MH_DEBUG_REG30__CP_MH_write_MASK 0x04000000L
+#define MH_DEBUG_REG30__CP_MH_write 0x04000000L
+#define MH_DEBUG_REG30__RB_SEND_QUAL_MASK 0x08000000L
+#define MH_DEBUG_REG30__RB_SEND_QUAL 0x08000000L
+#define MH_DEBUG_REG30__PA_SEND_QUAL_MASK 0x10000000L
+#define MH_DEBUG_REG30__PA_SEND_QUAL 0x10000000L
+#define MH_DEBUG_REG30__ARB_WINNER_MASK 0xe0000000L
+
+// MH_DEBUG_REG31
+#define MH_DEBUG_REG31__RF_ARBITER_CONFIG_q_MASK 0x03ffffffL
+#define MH_DEBUG_REG31__MH_CLNT_AXI_ID_REUSE_MMUr_ID_MASK 0x1c000000L
+
+// MH_DEBUG_REG32
+#define MH_DEBUG_REG32__SAME_ROW_BANK_q_MASK 0x000000ffL
+#define MH_DEBUG_REG32__ROQ_MARK_q_MASK 0x0000ff00L
+#define MH_DEBUG_REG32__ROQ_VALID_q_MASK 0x00ff0000L
+#define MH_DEBUG_REG32__TC_MH_send_MASK 0x01000000L
+#define MH_DEBUG_REG32__TC_MH_send 0x01000000L
+#define MH_DEBUG_REG32__TC_ROQ_RTR_q_MASK 0x02000000L
+#define MH_DEBUG_REG32__TC_ROQ_RTR_q 0x02000000L
+#define MH_DEBUG_REG32__KILL_EFF1_MASK 0x04000000L
+#define MH_DEBUG_REG32__KILL_EFF1 0x04000000L
+#define MH_DEBUG_REG32__TC_ROQ_SAME_ROW_BANK_SEL_MASK 0x08000000L
+#define MH_DEBUG_REG32__TC_ROQ_SAME_ROW_BANK_SEL 0x08000000L
+#define MH_DEBUG_REG32__ANY_SAME_ROW_BANK_MASK 0x10000000L
+#define MH_DEBUG_REG32__ANY_SAME_ROW_BANK 0x10000000L
+#define MH_DEBUG_REG32__TC_EFF1_QUAL_MASK 0x20000000L
+#define MH_DEBUG_REG32__TC_EFF1_QUAL 0x20000000L
+#define MH_DEBUG_REG32__TC_ROQ_EMPTY_MASK 0x40000000L
+#define MH_DEBUG_REG32__TC_ROQ_EMPTY 0x40000000L
+#define MH_DEBUG_REG32__TC_ROQ_FULL_MASK 0x80000000L
+#define MH_DEBUG_REG32__TC_ROQ_FULL 0x80000000L
+
+// MH_DEBUG_REG33
+#define MH_DEBUG_REG33__SAME_ROW_BANK_q_MASK 0x000000ffL
+#define MH_DEBUG_REG33__ROQ_MARK_d_MASK 0x0000ff00L
+#define MH_DEBUG_REG33__ROQ_VALID_d_MASK 0x00ff0000L
+#define MH_DEBUG_REG33__TC_MH_send_MASK 0x01000000L
+#define MH_DEBUG_REG33__TC_MH_send 0x01000000L
+#define MH_DEBUG_REG33__TC_ROQ_RTR_q_MASK 0x02000000L
+#define MH_DEBUG_REG33__TC_ROQ_RTR_q 0x02000000L
+#define MH_DEBUG_REG33__KILL_EFF1_MASK 0x04000000L
+#define MH_DEBUG_REG33__KILL_EFF1 0x04000000L
+#define MH_DEBUG_REG33__TC_ROQ_SAME_ROW_BANK_SEL_MASK 0x08000000L
+#define MH_DEBUG_REG33__TC_ROQ_SAME_ROW_BANK_SEL 0x08000000L
+#define MH_DEBUG_REG33__ANY_SAME_ROW_BANK_MASK 0x10000000L
+#define MH_DEBUG_REG33__ANY_SAME_ROW_BANK 0x10000000L
+#define MH_DEBUG_REG33__TC_EFF1_QUAL_MASK 0x20000000L
+#define MH_DEBUG_REG33__TC_EFF1_QUAL 0x20000000L
+#define MH_DEBUG_REG33__TC_ROQ_EMPTY_MASK 0x40000000L
+#define MH_DEBUG_REG33__TC_ROQ_EMPTY 0x40000000L
+#define MH_DEBUG_REG33__TC_ROQ_FULL_MASK 0x80000000L
+#define MH_DEBUG_REG33__TC_ROQ_FULL 0x80000000L
+
+// MH_DEBUG_REG34
+#define MH_DEBUG_REG34__SAME_ROW_BANK_WIN_MASK 0x000000ffL
+#define MH_DEBUG_REG34__SAME_ROW_BANK_REQ_MASK 0x0000ff00L
+#define MH_DEBUG_REG34__NON_SAME_ROW_BANK_WIN_MASK 0x00ff0000L
+#define MH_DEBUG_REG34__NON_SAME_ROW_BANK_REQ_MASK 0xff000000L
+
+// MH_DEBUG_REG35
+#define MH_DEBUG_REG35__TC_MH_send_MASK 0x00000001L
+#define MH_DEBUG_REG35__TC_MH_send 0x00000001L
+#define MH_DEBUG_REG35__TC_ROQ_RTR_q_MASK 0x00000002L
+#define MH_DEBUG_REG35__TC_ROQ_RTR_q 0x00000002L
+#define MH_DEBUG_REG35__ROQ_MARK_q_0_MASK 0x00000004L
+#define MH_DEBUG_REG35__ROQ_MARK_q_0 0x00000004L
+#define MH_DEBUG_REG35__ROQ_VALID_q_0_MASK 0x00000008L
+#define MH_DEBUG_REG35__ROQ_VALID_q_0 0x00000008L
+#define MH_DEBUG_REG35__SAME_ROW_BANK_q_0_MASK 0x00000010L
+#define MH_DEBUG_REG35__SAME_ROW_BANK_q_0 0x00000010L
+#define MH_DEBUG_REG35__ROQ_ADDR_0_MASK 0xffffffe0L
+
+// MH_DEBUG_REG36
+#define MH_DEBUG_REG36__TC_MH_send_MASK 0x00000001L
+#define MH_DEBUG_REG36__TC_MH_send 0x00000001L
+#define MH_DEBUG_REG36__TC_ROQ_RTR_q_MASK 0x00000002L
+#define MH_DEBUG_REG36__TC_ROQ_RTR_q 0x00000002L
+#define MH_DEBUG_REG36__ROQ_MARK_q_1_MASK 0x00000004L
+#define MH_DEBUG_REG36__ROQ_MARK_q_1 0x00000004L
+#define MH_DEBUG_REG36__ROQ_VALID_q_1_MASK 0x00000008L
+#define MH_DEBUG_REG36__ROQ_VALID_q_1 0x00000008L
+#define MH_DEBUG_REG36__SAME_ROW_BANK_q_1_MASK 0x00000010L
+#define MH_DEBUG_REG36__SAME_ROW_BANK_q_1 0x00000010L
+#define MH_DEBUG_REG36__ROQ_ADDR_1_MASK 0xffffffe0L
+
+// MH_DEBUG_REG37
+#define MH_DEBUG_REG37__TC_MH_send_MASK 0x00000001L
+#define MH_DEBUG_REG37__TC_MH_send 0x00000001L
+#define MH_DEBUG_REG37__TC_ROQ_RTR_q_MASK 0x00000002L
+#define MH_DEBUG_REG37__TC_ROQ_RTR_q 0x00000002L
+#define MH_DEBUG_REG37__ROQ_MARK_q_2_MASK 0x00000004L
+#define MH_DEBUG_REG37__ROQ_MARK_q_2 0x00000004L
+#define MH_DEBUG_REG37__ROQ_VALID_q_2_MASK 0x00000008L
+#define MH_DEBUG_REG37__ROQ_VALID_q_2 0x00000008L
+#define MH_DEBUG_REG37__SAME_ROW_BANK_q_2_MASK 0x00000010L
+#define MH_DEBUG_REG37__SAME_ROW_BANK_q_2 0x00000010L
+#define MH_DEBUG_REG37__ROQ_ADDR_2_MASK 0xffffffe0L
+
+// MH_DEBUG_REG38
+#define MH_DEBUG_REG38__TC_MH_send_MASK 0x00000001L
+#define MH_DEBUG_REG38__TC_MH_send 0x00000001L
+#define MH_DEBUG_REG38__TC_ROQ_RTR_q_MASK 0x00000002L
+#define MH_DEBUG_REG38__TC_ROQ_RTR_q 0x00000002L
+#define MH_DEBUG_REG38__ROQ_MARK_q_3_MASK 0x00000004L
+#define MH_DEBUG_REG38__ROQ_MARK_q_3 0x00000004L
+#define MH_DEBUG_REG38__ROQ_VALID_q_3_MASK 0x00000008L
+#define MH_DEBUG_REG38__ROQ_VALID_q_3 0x00000008L
+#define MH_DEBUG_REG38__SAME_ROW_BANK_q_3_MASK 0x00000010L
+#define MH_DEBUG_REG38__SAME_ROW_BANK_q_3 0x00000010L
+#define MH_DEBUG_REG38__ROQ_ADDR_3_MASK 0xffffffe0L
+
+// MH_DEBUG_REG39
+#define MH_DEBUG_REG39__TC_MH_send_MASK 0x00000001L
+#define MH_DEBUG_REG39__TC_MH_send 0x00000001L
+#define MH_DEBUG_REG39__TC_ROQ_RTR_q_MASK 0x00000002L
+#define MH_DEBUG_REG39__TC_ROQ_RTR_q 0x00000002L
+#define MH_DEBUG_REG39__ROQ_MARK_q_4_MASK 0x00000004L
+#define MH_DEBUG_REG39__ROQ_MARK_q_4 0x00000004L
+#define MH_DEBUG_REG39__ROQ_VALID_q_4_MASK 0x00000008L
+#define MH_DEBUG_REG39__ROQ_VALID_q_4 0x00000008L
+#define MH_DEBUG_REG39__SAME_ROW_BANK_q_4_MASK 0x00000010L
+#define MH_DEBUG_REG39__SAME_ROW_BANK_q_4 0x00000010L
+#define MH_DEBUG_REG39__ROQ_ADDR_4_MASK 0xffffffe0L
+
+// MH_DEBUG_REG40
+#define MH_DEBUG_REG40__TC_MH_send_MASK 0x00000001L
+#define MH_DEBUG_REG40__TC_MH_send 0x00000001L
+#define MH_DEBUG_REG40__TC_ROQ_RTR_q_MASK 0x00000002L
+#define MH_DEBUG_REG40__TC_ROQ_RTR_q 0x00000002L
+#define MH_DEBUG_REG40__ROQ_MARK_q_5_MASK 0x00000004L
+#define MH_DEBUG_REG40__ROQ_MARK_q_5 0x00000004L
+#define MH_DEBUG_REG40__ROQ_VALID_q_5_MASK 0x00000008L
+#define MH_DEBUG_REG40__ROQ_VALID_q_5 0x00000008L
+#define MH_DEBUG_REG40__SAME_ROW_BANK_q_5_MASK 0x00000010L
+#define MH_DEBUG_REG40__SAME_ROW_BANK_q_5 0x00000010L
+#define MH_DEBUG_REG40__ROQ_ADDR_5_MASK 0xffffffe0L
+
+// MH_DEBUG_REG41
+#define MH_DEBUG_REG41__TC_MH_send_MASK 0x00000001L
+#define MH_DEBUG_REG41__TC_MH_send 0x00000001L
+#define MH_DEBUG_REG41__TC_ROQ_RTR_q_MASK 0x00000002L
+#define MH_DEBUG_REG41__TC_ROQ_RTR_q 0x00000002L
+#define MH_DEBUG_REG41__ROQ_MARK_q_6_MASK 0x00000004L
+#define MH_DEBUG_REG41__ROQ_MARK_q_6 0x00000004L
+#define MH_DEBUG_REG41__ROQ_VALID_q_6_MASK 0x00000008L
+#define MH_DEBUG_REG41__ROQ_VALID_q_6 0x00000008L
+#define MH_DEBUG_REG41__SAME_ROW_BANK_q_6_MASK 0x00000010L
+#define MH_DEBUG_REG41__SAME_ROW_BANK_q_6 0x00000010L
+#define MH_DEBUG_REG41__ROQ_ADDR_6_MASK 0xffffffe0L
+
+// MH_DEBUG_REG42
+#define MH_DEBUG_REG42__TC_MH_send_MASK 0x00000001L
+#define MH_DEBUG_REG42__TC_MH_send 0x00000001L
+#define MH_DEBUG_REG42__TC_ROQ_RTR_q_MASK 0x00000002L
+#define MH_DEBUG_REG42__TC_ROQ_RTR_q 0x00000002L
+#define MH_DEBUG_REG42__ROQ_MARK_q_7_MASK 0x00000004L
+#define MH_DEBUG_REG42__ROQ_MARK_q_7 0x00000004L
+#define MH_DEBUG_REG42__ROQ_VALID_q_7_MASK 0x00000008L
+#define MH_DEBUG_REG42__ROQ_VALID_q_7 0x00000008L
+#define MH_DEBUG_REG42__SAME_ROW_BANK_q_7_MASK 0x00000010L
+#define MH_DEBUG_REG42__SAME_ROW_BANK_q_7 0x00000010L
+#define MH_DEBUG_REG42__ROQ_ADDR_7_MASK 0xffffffe0L
+
+// MH_DEBUG_REG43
+#define MH_DEBUG_REG43__ARB_REG_WE_q_MASK 0x00000001L
+#define MH_DEBUG_REG43__ARB_REG_WE_q 0x00000001L
+#define MH_DEBUG_REG43__ARB_WE_MASK 0x00000002L
+#define MH_DEBUG_REG43__ARB_WE 0x00000002L
+#define MH_DEBUG_REG43__ARB_REG_VALID_q_MASK 0x00000004L
+#define MH_DEBUG_REG43__ARB_REG_VALID_q 0x00000004L
+#define MH_DEBUG_REG43__ARB_RTR_q_MASK 0x00000008L
+#define MH_DEBUG_REG43__ARB_RTR_q 0x00000008L
+#define MH_DEBUG_REG43__ARB_REG_RTR_MASK 0x00000010L
+#define MH_DEBUG_REG43__ARB_REG_RTR 0x00000010L
+#define MH_DEBUG_REG43__WDAT_BURST_RTR_MASK 0x00000020L
+#define MH_DEBUG_REG43__WDAT_BURST_RTR 0x00000020L
+#define MH_DEBUG_REG43__MMU_RTR_MASK 0x00000040L
+#define MH_DEBUG_REG43__MMU_RTR 0x00000040L
+#define MH_DEBUG_REG43__ARB_ID_q_MASK 0x00000380L
+#define MH_DEBUG_REG43__ARB_WRITE_q_MASK 0x00000400L
+#define MH_DEBUG_REG43__ARB_WRITE_q 0x00000400L
+#define MH_DEBUG_REG43__ARB_BLEN_q_MASK 0x00000800L
+#define MH_DEBUG_REG43__ARB_BLEN_q 0x00000800L
+#define MH_DEBUG_REG43__ARQ_CTRL_EMPTY_MASK 0x00001000L
+#define MH_DEBUG_REG43__ARQ_CTRL_EMPTY 0x00001000L
+#define MH_DEBUG_REG43__ARQ_FIFO_CNT_q_MASK 0x0000e000L
+#define MH_DEBUG_REG43__MMU_WE_MASK 0x00010000L
+#define MH_DEBUG_REG43__MMU_WE 0x00010000L
+#define MH_DEBUG_REG43__ARQ_RTR_MASK 0x00020000L
+#define MH_DEBUG_REG43__ARQ_RTR 0x00020000L
+#define MH_DEBUG_REG43__MMU_ID_MASK 0x001c0000L
+#define MH_DEBUG_REG43__MMU_WRITE_MASK 0x00200000L
+#define MH_DEBUG_REG43__MMU_WRITE 0x00200000L
+#define MH_DEBUG_REG43__MMU_BLEN_MASK 0x00400000L
+#define MH_DEBUG_REG43__MMU_BLEN 0x00400000L
+#define MH_DEBUG_REG43__WBURST_IP_q_MASK 0x00800000L
+#define MH_DEBUG_REG43__WBURST_IP_q 0x00800000L
+#define MH_DEBUG_REG43__WDAT_REG_WE_q_MASK 0x01000000L
+#define MH_DEBUG_REG43__WDAT_REG_WE_q 0x01000000L
+#define MH_DEBUG_REG43__WDB_WE_MASK 0x02000000L
+#define MH_DEBUG_REG43__WDB_WE 0x02000000L
+#define MH_DEBUG_REG43__WDB_RTR_SKID_4_MASK 0x04000000L
+#define MH_DEBUG_REG43__WDB_RTR_SKID_4 0x04000000L
+#define MH_DEBUG_REG43__WDB_RTR_SKID_3_MASK 0x08000000L
+#define MH_DEBUG_REG43__WDB_RTR_SKID_3 0x08000000L
+
+// MH_DEBUG_REG44
+#define MH_DEBUG_REG44__ARB_WE_MASK 0x00000001L
+#define MH_DEBUG_REG44__ARB_WE 0x00000001L
+#define MH_DEBUG_REG44__ARB_ID_q_MASK 0x0000000eL
+#define MH_DEBUG_REG44__ARB_VAD_q_MASK 0xfffffff0L
+
+// MH_DEBUG_REG45
+#define MH_DEBUG_REG45__MMU_WE_MASK 0x00000001L
+#define MH_DEBUG_REG45__MMU_WE 0x00000001L
+#define MH_DEBUG_REG45__MMU_ID_MASK 0x0000000eL
+#define MH_DEBUG_REG45__MMU_PAD_MASK 0xfffffff0L
+
+// MH_DEBUG_REG46
+#define MH_DEBUG_REG46__WDAT_REG_WE_q_MASK 0x00000001L
+#define MH_DEBUG_REG46__WDAT_REG_WE_q 0x00000001L
+#define MH_DEBUG_REG46__WDB_WE_MASK 0x00000002L
+#define MH_DEBUG_REG46__WDB_WE 0x00000002L
+#define MH_DEBUG_REG46__WDAT_REG_VALID_q_MASK 0x00000004L
+#define MH_DEBUG_REG46__WDAT_REG_VALID_q 0x00000004L
+#define MH_DEBUG_REG46__WDB_RTR_SKID_4_MASK 0x00000008L
+#define MH_DEBUG_REG46__WDB_RTR_SKID_4 0x00000008L
+#define MH_DEBUG_REG46__ARB_WSTRB_q_MASK 0x00000ff0L
+#define MH_DEBUG_REG46__ARB_WLAST_MASK 0x00001000L
+#define MH_DEBUG_REG46__ARB_WLAST 0x00001000L
+#define MH_DEBUG_REG46__WDB_CTRL_EMPTY_MASK 0x00002000L
+#define MH_DEBUG_REG46__WDB_CTRL_EMPTY 0x00002000L
+#define MH_DEBUG_REG46__WDB_FIFO_CNT_q_MASK 0x0007c000L
+#define MH_DEBUG_REG46__WDC_WDB_RE_q_MASK 0x00080000L
+#define MH_DEBUG_REG46__WDC_WDB_RE_q 0x00080000L
+#define MH_DEBUG_REG46__WDB_WDC_WID_MASK 0x00700000L
+#define MH_DEBUG_REG46__WDB_WDC_WLAST_MASK 0x00800000L
+#define MH_DEBUG_REG46__WDB_WDC_WLAST 0x00800000L
+#define MH_DEBUG_REG46__WDB_WDC_WSTRB_MASK 0xff000000L
+
+// MH_DEBUG_REG47
+#define MH_DEBUG_REG47__WDB_WDC_WDATA_31_0_MASK 0xffffffffL
+
+// MH_DEBUG_REG48
+#define MH_DEBUG_REG48__WDB_WDC_WDATA_63_32_MASK 0xffffffffL
+
+// MH_DEBUG_REG49
+#define MH_DEBUG_REG49__CTRL_ARC_EMPTY_MASK 0x00000001L
+#define MH_DEBUG_REG49__CTRL_ARC_EMPTY 0x00000001L
+#define MH_DEBUG_REG49__CTRL_RARC_EMPTY_MASK 0x00000002L
+#define MH_DEBUG_REG49__CTRL_RARC_EMPTY 0x00000002L
+#define MH_DEBUG_REG49__ARQ_CTRL_EMPTY_MASK 0x00000004L
+#define MH_DEBUG_REG49__ARQ_CTRL_EMPTY 0x00000004L
+#define MH_DEBUG_REG49__ARQ_CTRL_WRITE_MASK 0x00000008L
+#define MH_DEBUG_REG49__ARQ_CTRL_WRITE 0x00000008L
+#define MH_DEBUG_REG49__TLBMISS_CTRL_RTS_MASK 0x00000010L
+#define MH_DEBUG_REG49__TLBMISS_CTRL_RTS 0x00000010L
+#define MH_DEBUG_REG49__CTRL_TLBMISS_RE_q_MASK 0x00000020L
+#define MH_DEBUG_REG49__CTRL_TLBMISS_RE_q 0x00000020L
+#define MH_DEBUG_REG49__INFLT_LIMIT_q_MASK 0x00000040L
+#define MH_DEBUG_REG49__INFLT_LIMIT_q 0x00000040L
+#define MH_DEBUG_REG49__INFLT_LIMIT_CNT_q_MASK 0x00001f80L
+#define MH_DEBUG_REG49__ARC_CTRL_RE_q_MASK 0x00002000L
+#define MH_DEBUG_REG49__ARC_CTRL_RE_q 0x00002000L
+#define MH_DEBUG_REG49__RARC_CTRL_RE_q_MASK 0x00004000L
+#define MH_DEBUG_REG49__RARC_CTRL_RE_q 0x00004000L
+#define MH_DEBUG_REG49__RVALID_q_MASK 0x00008000L
+#define MH_DEBUG_REG49__RVALID_q 0x00008000L
+#define MH_DEBUG_REG49__RREADY_q_MASK 0x00010000L
+#define MH_DEBUG_REG49__RREADY_q 0x00010000L
+#define MH_DEBUG_REG49__RLAST_q_MASK 0x00020000L
+#define MH_DEBUG_REG49__RLAST_q 0x00020000L
+#define MH_DEBUG_REG49__BVALID_q_MASK 0x00040000L
+#define MH_DEBUG_REG49__BVALID_q 0x00040000L
+#define MH_DEBUG_REG49__BREADY_q_MASK 0x00080000L
+#define MH_DEBUG_REG49__BREADY_q 0x00080000L
+
+// MH_DEBUG_REG50
+#define MH_DEBUG_REG50__MH_CP_grb_send_MASK 0x00000001L
+#define MH_DEBUG_REG50__MH_CP_grb_send 0x00000001L
+#define MH_DEBUG_REG50__MH_VGT_grb_send_MASK 0x00000002L
+#define MH_DEBUG_REG50__MH_VGT_grb_send 0x00000002L
+#define MH_DEBUG_REG50__MH_TC_mcsend_MASK 0x00000004L
+#define MH_DEBUG_REG50__MH_TC_mcsend 0x00000004L
+#define MH_DEBUG_REG50__MH_TLBMISS_SEND_MASK 0x00000008L
+#define MH_DEBUG_REG50__MH_TLBMISS_SEND 0x00000008L
+#define MH_DEBUG_REG50__TLBMISS_VALID_MASK 0x00000010L
+#define MH_DEBUG_REG50__TLBMISS_VALID 0x00000010L
+#define MH_DEBUG_REG50__RDC_VALID_MASK 0x00000020L
+#define MH_DEBUG_REG50__RDC_VALID 0x00000020L
+#define MH_DEBUG_REG50__RDC_RID_MASK 0x000001c0L
+#define MH_DEBUG_REG50__RDC_RLAST_MASK 0x00000200L
+#define MH_DEBUG_REG50__RDC_RLAST 0x00000200L
+#define MH_DEBUG_REG50__RDC_RRESP_MASK 0x00000c00L
+#define MH_DEBUG_REG50__TLBMISS_CTRL_RTS_MASK 0x00001000L
+#define MH_DEBUG_REG50__TLBMISS_CTRL_RTS 0x00001000L
+#define MH_DEBUG_REG50__CTRL_TLBMISS_RE_q_MASK 0x00002000L
+#define MH_DEBUG_REG50__CTRL_TLBMISS_RE_q 0x00002000L
+#define MH_DEBUG_REG50__MMU_ID_REQUEST_q_MASK 0x00004000L
+#define MH_DEBUG_REG50__MMU_ID_REQUEST_q 0x00004000L
+#define MH_DEBUG_REG50__OUTSTANDING_MMUID_CNT_q_MASK 0x001f8000L
+#define MH_DEBUG_REG50__MMU_ID_RESPONSE_MASK 0x00200000L
+#define MH_DEBUG_REG50__MMU_ID_RESPONSE 0x00200000L
+#define MH_DEBUG_REG50__TLBMISS_RETURN_CNT_q_MASK 0x0fc00000L
+#define MH_DEBUG_REG50__CNT_HOLD_q1_MASK 0x10000000L
+#define MH_DEBUG_REG50__CNT_HOLD_q1 0x10000000L
+#define MH_DEBUG_REG50__MH_CLNT_AXI_ID_REUSE_MMUr_ID_MASK 0xe0000000L
+
+// MH_DEBUG_REG51
+#define MH_DEBUG_REG51__RF_MMU_PAGE_FAULT_MASK 0xffffffffL
+
+// MH_DEBUG_REG52
+#define MH_DEBUG_REG52__RF_MMU_CONFIG_q_1_to_0_MASK 0x00000003L
+#define MH_DEBUG_REG52__ARB_WE_MASK 0x00000004L
+#define MH_DEBUG_REG52__ARB_WE 0x00000004L
+#define MH_DEBUG_REG52__MMU_RTR_MASK 0x00000008L
+#define MH_DEBUG_REG52__MMU_RTR 0x00000008L
+#define MH_DEBUG_REG52__RF_MMU_CONFIG_q_25_to_4_MASK 0x03fffff0L
+#define MH_DEBUG_REG52__ARB_ID_q_MASK 0x1c000000L
+#define MH_DEBUG_REG52__ARB_WRITE_q_MASK 0x20000000L
+#define MH_DEBUG_REG52__ARB_WRITE_q 0x20000000L
+#define MH_DEBUG_REG52__client_behavior_q_MASK 0xc0000000L
+
+// MH_DEBUG_REG53
+#define MH_DEBUG_REG53__stage1_valid_MASK 0x00000001L
+#define MH_DEBUG_REG53__stage1_valid 0x00000001L
+#define MH_DEBUG_REG53__IGNORE_TAG_MISS_q_MASK 0x00000002L
+#define MH_DEBUG_REG53__IGNORE_TAG_MISS_q 0x00000002L
+#define MH_DEBUG_REG53__pa_in_mpu_range_MASK 0x00000004L
+#define MH_DEBUG_REG53__pa_in_mpu_range 0x00000004L
+#define MH_DEBUG_REG53__tag_match_q_MASK 0x00000008L
+#define MH_DEBUG_REG53__tag_match_q 0x00000008L
+#define MH_DEBUG_REG53__tag_miss_q_MASK 0x00000010L
+#define MH_DEBUG_REG53__tag_miss_q 0x00000010L
+#define MH_DEBUG_REG53__va_in_range_q_MASK 0x00000020L
+#define MH_DEBUG_REG53__va_in_range_q 0x00000020L
+#define MH_DEBUG_REG53__MMU_MISS_MASK 0x00000040L
+#define MH_DEBUG_REG53__MMU_MISS 0x00000040L
+#define MH_DEBUG_REG53__MMU_READ_MISS_MASK 0x00000080L
+#define MH_DEBUG_REG53__MMU_READ_MISS 0x00000080L
+#define MH_DEBUG_REG53__MMU_WRITE_MISS_MASK 0x00000100L
+#define MH_DEBUG_REG53__MMU_WRITE_MISS 0x00000100L
+#define MH_DEBUG_REG53__MMU_HIT_MASK 0x00000200L
+#define MH_DEBUG_REG53__MMU_HIT 0x00000200L
+#define MH_DEBUG_REG53__MMU_READ_HIT_MASK 0x00000400L
+#define MH_DEBUG_REG53__MMU_READ_HIT 0x00000400L
+#define MH_DEBUG_REG53__MMU_WRITE_HIT_MASK 0x00000800L
+#define MH_DEBUG_REG53__MMU_WRITE_HIT 0x00000800L
+#define MH_DEBUG_REG53__MMU_SPLIT_MODE_TC_MISS_MASK 0x00001000L
+#define MH_DEBUG_REG53__MMU_SPLIT_MODE_TC_MISS 0x00001000L
+#define MH_DEBUG_REG53__MMU_SPLIT_MODE_TC_HIT_MASK 0x00002000L
+#define MH_DEBUG_REG53__MMU_SPLIT_MODE_TC_HIT 0x00002000L
+#define MH_DEBUG_REG53__MMU_SPLIT_MODE_nonTC_MISS_MASK 0x00004000L
+#define MH_DEBUG_REG53__MMU_SPLIT_MODE_nonTC_MISS 0x00004000L
+#define MH_DEBUG_REG53__MMU_SPLIT_MODE_nonTC_HIT_MASK 0x00008000L
+#define MH_DEBUG_REG53__MMU_SPLIT_MODE_nonTC_HIT 0x00008000L
+#define MH_DEBUG_REG53__REQ_VA_OFFSET_q_MASK 0xffff0000L
+
+// MH_DEBUG_REG54
+#define MH_DEBUG_REG54__ARQ_RTR_MASK 0x00000001L
+#define MH_DEBUG_REG54__ARQ_RTR 0x00000001L
+#define MH_DEBUG_REG54__MMU_WE_MASK 0x00000002L
+#define MH_DEBUG_REG54__MMU_WE 0x00000002L
+#define MH_DEBUG_REG54__CTRL_TLBMISS_RE_q_MASK 0x00000004L
+#define MH_DEBUG_REG54__CTRL_TLBMISS_RE_q 0x00000004L
+#define MH_DEBUG_REG54__TLBMISS_CTRL_RTS_MASK 0x00000008L
+#define MH_DEBUG_REG54__TLBMISS_CTRL_RTS 0x00000008L
+#define MH_DEBUG_REG54__MH_TLBMISS_SEND_MASK 0x00000010L
+#define MH_DEBUG_REG54__MH_TLBMISS_SEND 0x00000010L
+#define MH_DEBUG_REG54__MMU_STALL_AWAITING_TLB_MISS_FETCH_MASK 0x00000020L
+#define MH_DEBUG_REG54__MMU_STALL_AWAITING_TLB_MISS_FETCH 0x00000020L
+#define MH_DEBUG_REG54__pa_in_mpu_range_MASK 0x00000040L
+#define MH_DEBUG_REG54__pa_in_mpu_range 0x00000040L
+#define MH_DEBUG_REG54__stage1_valid_MASK 0x00000080L
+#define MH_DEBUG_REG54__stage1_valid 0x00000080L
+#define MH_DEBUG_REG54__stage2_valid_MASK 0x00000100L
+#define MH_DEBUG_REG54__stage2_valid 0x00000100L
+#define MH_DEBUG_REG54__client_behavior_q_MASK 0x00000600L
+#define MH_DEBUG_REG54__IGNORE_TAG_MISS_q_MASK 0x00000800L
+#define MH_DEBUG_REG54__IGNORE_TAG_MISS_q 0x00000800L
+#define MH_DEBUG_REG54__tag_match_q_MASK 0x00001000L
+#define MH_DEBUG_REG54__tag_match_q 0x00001000L
+#define MH_DEBUG_REG54__tag_miss_q_MASK 0x00002000L
+#define MH_DEBUG_REG54__tag_miss_q 0x00002000L
+#define MH_DEBUG_REG54__va_in_range_q_MASK 0x00004000L
+#define MH_DEBUG_REG54__va_in_range_q 0x00004000L
+#define MH_DEBUG_REG54__PTE_FETCH_COMPLETE_q_MASK 0x00008000L
+#define MH_DEBUG_REG54__PTE_FETCH_COMPLETE_q 0x00008000L
+#define MH_DEBUG_REG54__TAG_valid_q_MASK 0xffff0000L
+
+// MH_DEBUG_REG55
+#define MH_DEBUG_REG55__TAG0_VA_MASK 0x00001fffL
+#define MH_DEBUG_REG55__TAG_valid_q_0_MASK 0x00002000L
+#define MH_DEBUG_REG55__TAG_valid_q_0 0x00002000L
+#define MH_DEBUG_REG55__ALWAYS_ZERO_MASK 0x0000c000L
+#define MH_DEBUG_REG55__TAG1_VA_MASK 0x1fff0000L
+#define MH_DEBUG_REG55__TAG_valid_q_1_MASK 0x20000000L
+#define MH_DEBUG_REG55__TAG_valid_q_1 0x20000000L
+
+// MH_DEBUG_REG56
+#define MH_DEBUG_REG56__TAG2_VA_MASK 0x00001fffL
+#define MH_DEBUG_REG56__TAG_valid_q_2_MASK 0x00002000L
+#define MH_DEBUG_REG56__TAG_valid_q_2 0x00002000L
+#define MH_DEBUG_REG56__ALWAYS_ZERO_MASK 0x0000c000L
+#define MH_DEBUG_REG56__TAG3_VA_MASK 0x1fff0000L
+#define MH_DEBUG_REG56__TAG_valid_q_3_MASK 0x20000000L
+#define MH_DEBUG_REG56__TAG_valid_q_3 0x20000000L
+
+// MH_DEBUG_REG57
+#define MH_DEBUG_REG57__TAG4_VA_MASK 0x00001fffL
+#define MH_DEBUG_REG57__TAG_valid_q_4_MASK 0x00002000L
+#define MH_DEBUG_REG57__TAG_valid_q_4 0x00002000L
+#define MH_DEBUG_REG57__ALWAYS_ZERO_MASK 0x0000c000L
+#define MH_DEBUG_REG57__TAG5_VA_MASK 0x1fff0000L
+#define MH_DEBUG_REG57__TAG_valid_q_5_MASK 0x20000000L
+#define MH_DEBUG_REG57__TAG_valid_q_5 0x20000000L
+
+// MH_DEBUG_REG58
+#define MH_DEBUG_REG58__TAG6_VA_MASK 0x00001fffL
+#define MH_DEBUG_REG58__TAG_valid_q_6_MASK 0x00002000L
+#define MH_DEBUG_REG58__TAG_valid_q_6 0x00002000L
+#define MH_DEBUG_REG58__ALWAYS_ZERO_MASK 0x0000c000L
+#define MH_DEBUG_REG58__TAG7_VA_MASK 0x1fff0000L
+#define MH_DEBUG_REG58__TAG_valid_q_7_MASK 0x20000000L
+#define MH_DEBUG_REG58__TAG_valid_q_7 0x20000000L
+
+// MH_DEBUG_REG59
+#define MH_DEBUG_REG59__TAG8_VA_MASK 0x00001fffL
+#define MH_DEBUG_REG59__TAG_valid_q_8_MASK 0x00002000L
+#define MH_DEBUG_REG59__TAG_valid_q_8 0x00002000L
+#define MH_DEBUG_REG59__ALWAYS_ZERO_MASK 0x0000c000L
+#define MH_DEBUG_REG59__TAG9_VA_MASK 0x1fff0000L
+#define MH_DEBUG_REG59__TAG_valid_q_9_MASK 0x20000000L
+#define MH_DEBUG_REG59__TAG_valid_q_9 0x20000000L
+
+// MH_DEBUG_REG60
+#define MH_DEBUG_REG60__TAG10_VA_MASK 0x00001fffL
+#define MH_DEBUG_REG60__TAG_valid_q_10_MASK 0x00002000L
+#define MH_DEBUG_REG60__TAG_valid_q_10 0x00002000L
+#define MH_DEBUG_REG60__ALWAYS_ZERO_MASK 0x0000c000L
+#define MH_DEBUG_REG60__TAG11_VA_MASK 0x1fff0000L
+#define MH_DEBUG_REG60__TAG_valid_q_11_MASK 0x20000000L
+#define MH_DEBUG_REG60__TAG_valid_q_11 0x20000000L
+
+// MH_DEBUG_REG61
+#define MH_DEBUG_REG61__TAG12_VA_MASK 0x00001fffL
+#define MH_DEBUG_REG61__TAG_valid_q_12_MASK 0x00002000L
+#define MH_DEBUG_REG61__TAG_valid_q_12 0x00002000L
+#define MH_DEBUG_REG61__ALWAYS_ZERO_MASK 0x0000c000L
+#define MH_DEBUG_REG61__TAG13_VA_MASK 0x1fff0000L
+#define MH_DEBUG_REG61__TAG_valid_q_13_MASK 0x20000000L
+#define MH_DEBUG_REG61__TAG_valid_q_13 0x20000000L
+
+// MH_DEBUG_REG62
+#define MH_DEBUG_REG62__TAG14_VA_MASK 0x00001fffL
+#define MH_DEBUG_REG62__TAG_valid_q_14_MASK 0x00002000L
+#define MH_DEBUG_REG62__TAG_valid_q_14 0x00002000L
+#define MH_DEBUG_REG62__ALWAYS_ZERO_MASK 0x0000c000L
+#define MH_DEBUG_REG62__TAG15_VA_MASK 0x1fff0000L
+#define MH_DEBUG_REG62__TAG_valid_q_15_MASK 0x20000000L
+#define MH_DEBUG_REG62__TAG_valid_q_15 0x20000000L
+
+// MH_DEBUG_REG63
+#define MH_DEBUG_REG63__MH_DBG_DEFAULT_MASK 0xffffffffL
+
+// MH_MMU_CONFIG
+#define MH_MMU_CONFIG__MMU_ENABLE_MASK 0x00000001L
+#define MH_MMU_CONFIG__MMU_ENABLE 0x00000001L
+#define MH_MMU_CONFIG__SPLIT_MODE_ENABLE_MASK 0x00000002L
+#define MH_MMU_CONFIG__SPLIT_MODE_ENABLE 0x00000002L
+#define MH_MMU_CONFIG__RESERVED1_MASK 0x0000000cL
+#define MH_MMU_CONFIG__RB_W_CLNT_BEHAVIOR_MASK 0x00000030L
+#define MH_MMU_CONFIG__CP_W_CLNT_BEHAVIOR_MASK 0x000000c0L
+#define MH_MMU_CONFIG__CP_R0_CLNT_BEHAVIOR_MASK 0x00000300L
+#define MH_MMU_CONFIG__CP_R1_CLNT_BEHAVIOR_MASK 0x00000c00L
+#define MH_MMU_CONFIG__CP_R2_CLNT_BEHAVIOR_MASK 0x00003000L
+#define MH_MMU_CONFIG__CP_R3_CLNT_BEHAVIOR_MASK 0x0000c000L
+#define MH_MMU_CONFIG__CP_R4_CLNT_BEHAVIOR_MASK 0x00030000L
+#define MH_MMU_CONFIG__VGT_R0_CLNT_BEHAVIOR_MASK 0x000c0000L
+#define MH_MMU_CONFIG__VGT_R1_CLNT_BEHAVIOR_MASK 0x00300000L
+#define MH_MMU_CONFIG__TC_R_CLNT_BEHAVIOR_MASK 0x00c00000L
+#define MH_MMU_CONFIG__PA_W_CLNT_BEHAVIOR_MASK 0x03000000L
+
+// MH_MMU_VA_RANGE
+#define MH_MMU_VA_RANGE__NUM_64KB_REGIONS_MASK 0x00000fffL
+#define MH_MMU_VA_RANGE__VA_BASE_MASK 0xfffff000L
+
+// MH_MMU_PT_BASE
+#define MH_MMU_PT_BASE__PT_BASE_MASK 0xfffff000L
+
+// MH_MMU_PAGE_FAULT
+#define MH_MMU_PAGE_FAULT__PAGE_FAULT_MASK 0x00000001L
+#define MH_MMU_PAGE_FAULT__PAGE_FAULT 0x00000001L
+#define MH_MMU_PAGE_FAULT__OP_TYPE_MASK 0x00000002L
+#define MH_MMU_PAGE_FAULT__OP_TYPE 0x00000002L
+#define MH_MMU_PAGE_FAULT__CLNT_BEHAVIOR_MASK 0x0000000cL
+#define MH_MMU_PAGE_FAULT__AXI_ID_MASK 0x00000070L
+#define MH_MMU_PAGE_FAULT__RESERVED1_MASK 0x00000080L
+#define MH_MMU_PAGE_FAULT__RESERVED1 0x00000080L
+#define MH_MMU_PAGE_FAULT__MPU_ADDRESS_OUT_OF_RANGE_MASK 0x00000100L
+#define MH_MMU_PAGE_FAULT__MPU_ADDRESS_OUT_OF_RANGE 0x00000100L
+#define MH_MMU_PAGE_FAULT__ADDRESS_OUT_OF_RANGE_MASK 0x00000200L
+#define MH_MMU_PAGE_FAULT__ADDRESS_OUT_OF_RANGE 0x00000200L
+#define MH_MMU_PAGE_FAULT__READ_PROTECTION_ERROR_MASK 0x00000400L
+#define MH_MMU_PAGE_FAULT__READ_PROTECTION_ERROR 0x00000400L
+#define MH_MMU_PAGE_FAULT__WRITE_PROTECTION_ERROR_MASK 0x00000800L
+#define MH_MMU_PAGE_FAULT__WRITE_PROTECTION_ERROR 0x00000800L
+#define MH_MMU_PAGE_FAULT__REQ_VA_MASK 0xfffff000L
+
+// MH_MMU_TRAN_ERROR
+#define MH_MMU_TRAN_ERROR__TRAN_ERROR_MASK 0xffffffe0L
+
+// MH_MMU_INVALIDATE
+#define MH_MMU_INVALIDATE__INVALIDATE_ALL_MASK 0x00000001L
+#define MH_MMU_INVALIDATE__INVALIDATE_ALL 0x00000001L
+#define MH_MMU_INVALIDATE__INVALIDATE_TC_MASK 0x00000002L
+#define MH_MMU_INVALIDATE__INVALIDATE_TC 0x00000002L
+
+// MH_MMU_MPU_BASE
+#define MH_MMU_MPU_BASE__MPU_BASE_MASK 0xfffff000L
+
+// MH_MMU_MPU_END
+#define MH_MMU_MPU_END__MPU_END_MASK 0xfffff000L
+
+// WAIT_UNTIL
+#define WAIT_UNTIL__WAIT_RE_VSYNC_MASK 0x00000002L
+#define WAIT_UNTIL__WAIT_RE_VSYNC 0x00000002L
+#define WAIT_UNTIL__WAIT_FE_VSYNC_MASK 0x00000004L
+#define WAIT_UNTIL__WAIT_FE_VSYNC 0x00000004L
+#define WAIT_UNTIL__WAIT_VSYNC_MASK 0x00000008L
+#define WAIT_UNTIL__WAIT_VSYNC 0x00000008L
+#define WAIT_UNTIL__WAIT_DSPLY_ID0_MASK 0x00000010L
+#define WAIT_UNTIL__WAIT_DSPLY_ID0 0x00000010L
+#define WAIT_UNTIL__WAIT_DSPLY_ID1_MASK 0x00000020L
+#define WAIT_UNTIL__WAIT_DSPLY_ID1 0x00000020L
+#define WAIT_UNTIL__WAIT_DSPLY_ID2_MASK 0x00000040L
+#define WAIT_UNTIL__WAIT_DSPLY_ID2 0x00000040L
+#define WAIT_UNTIL__WAIT_CMDFIFO_MASK 0x00000400L
+#define WAIT_UNTIL__WAIT_CMDFIFO 0x00000400L
+#define WAIT_UNTIL__WAIT_2D_IDLE_MASK 0x00004000L
+#define WAIT_UNTIL__WAIT_2D_IDLE 0x00004000L
+#define WAIT_UNTIL__WAIT_3D_IDLE_MASK 0x00008000L
+#define WAIT_UNTIL__WAIT_3D_IDLE 0x00008000L
+#define WAIT_UNTIL__WAIT_2D_IDLECLEAN_MASK 0x00010000L
+#define WAIT_UNTIL__WAIT_2D_IDLECLEAN 0x00010000L
+#define WAIT_UNTIL__WAIT_3D_IDLECLEAN_MASK 0x00020000L
+#define WAIT_UNTIL__WAIT_3D_IDLECLEAN 0x00020000L
+#define WAIT_UNTIL__CMDFIFO_ENTRIES_MASK 0x00f00000L
+
+// RBBM_ISYNC_CNTL
+#define RBBM_ISYNC_CNTL__ISYNC_WAIT_IDLEGUI_MASK 0x00000010L
+#define RBBM_ISYNC_CNTL__ISYNC_WAIT_IDLEGUI 0x00000010L
+#define RBBM_ISYNC_CNTL__ISYNC_CPSCRATCH_IDLEGUI_MASK 0x00000020L
+#define RBBM_ISYNC_CNTL__ISYNC_CPSCRATCH_IDLEGUI 0x00000020L
+
+// RBBM_STATUS
+#define RBBM_STATUS__CMDFIFO_AVAIL_MASK 0x0000001fL
+#define RBBM_STATUS__TC_BUSY_MASK 0x00000020L
+#define RBBM_STATUS__TC_BUSY 0x00000020L
+#define RBBM_STATUS__HIRQ_PENDING_MASK 0x00000100L
+#define RBBM_STATUS__HIRQ_PENDING 0x00000100L
+#define RBBM_STATUS__CPRQ_PENDING_MASK 0x00000200L
+#define RBBM_STATUS__CPRQ_PENDING 0x00000200L
+#define RBBM_STATUS__CFRQ_PENDING_MASK 0x00000400L
+#define RBBM_STATUS__CFRQ_PENDING 0x00000400L
+#define RBBM_STATUS__PFRQ_PENDING_MASK 0x00000800L
+#define RBBM_STATUS__PFRQ_PENDING 0x00000800L
+#define RBBM_STATUS__VGT_BUSY_NO_DMA_MASK 0x00001000L
+#define RBBM_STATUS__VGT_BUSY_NO_DMA 0x00001000L
+#define RBBM_STATUS__RBBM_WU_BUSY_MASK 0x00004000L
+#define RBBM_STATUS__RBBM_WU_BUSY 0x00004000L
+#define RBBM_STATUS__CP_NRT_BUSY_MASK 0x00010000L
+#define RBBM_STATUS__CP_NRT_BUSY 0x00010000L
+#define RBBM_STATUS__MH_BUSY_MASK 0x00040000L
+#define RBBM_STATUS__MH_BUSY 0x00040000L
+#define RBBM_STATUS__MH_COHERENCY_BUSY_MASK 0x00080000L
+#define RBBM_STATUS__MH_COHERENCY_BUSY 0x00080000L
+#define RBBM_STATUS__SX_BUSY_MASK 0x00200000L
+#define RBBM_STATUS__SX_BUSY 0x00200000L
+#define RBBM_STATUS__TPC_BUSY_MASK 0x00400000L
+#define RBBM_STATUS__TPC_BUSY 0x00400000L
+#define RBBM_STATUS__SC_CNTX_BUSY_MASK 0x01000000L
+#define RBBM_STATUS__SC_CNTX_BUSY 0x01000000L
+#define RBBM_STATUS__PA_BUSY_MASK 0x02000000L
+#define RBBM_STATUS__PA_BUSY 0x02000000L
+#define RBBM_STATUS__VGT_BUSY_MASK 0x04000000L
+#define RBBM_STATUS__VGT_BUSY 0x04000000L
+#define RBBM_STATUS__SQ_CNTX17_BUSY_MASK 0x08000000L
+#define RBBM_STATUS__SQ_CNTX17_BUSY 0x08000000L
+#define RBBM_STATUS__SQ_CNTX0_BUSY_MASK 0x10000000L
+#define RBBM_STATUS__SQ_CNTX0_BUSY 0x10000000L
+#define RBBM_STATUS__RB_CNTX_BUSY_MASK 0x40000000L
+#define RBBM_STATUS__RB_CNTX_BUSY 0x40000000L
+#define RBBM_STATUS__GUI_ACTIVE_MASK 0x80000000L
+#define RBBM_STATUS__GUI_ACTIVE 0x80000000L
+
+// RBBM_DSPLY
+#define RBBM_DSPLY__SEL_DMI_ACTIVE_BUFID0_MASK 0x00000001L
+#define RBBM_DSPLY__SEL_DMI_ACTIVE_BUFID0 0x00000001L
+#define RBBM_DSPLY__SEL_DMI_ACTIVE_BUFID1_MASK 0x00000002L
+#define RBBM_DSPLY__SEL_DMI_ACTIVE_BUFID1 0x00000002L
+#define RBBM_DSPLY__SEL_DMI_ACTIVE_BUFID2_MASK 0x00000004L
+#define RBBM_DSPLY__SEL_DMI_ACTIVE_BUFID2 0x00000004L
+#define RBBM_DSPLY__SEL_DMI_VSYNC_VALID_MASK 0x00000008L
+#define RBBM_DSPLY__SEL_DMI_VSYNC_VALID 0x00000008L
+#define RBBM_DSPLY__DMI_CH1_USE_BUFID0_MASK 0x00000010L
+#define RBBM_DSPLY__DMI_CH1_USE_BUFID0 0x00000010L
+#define RBBM_DSPLY__DMI_CH1_USE_BUFID1_MASK 0x00000020L
+#define RBBM_DSPLY__DMI_CH1_USE_BUFID1 0x00000020L
+#define RBBM_DSPLY__DMI_CH1_USE_BUFID2_MASK 0x00000040L
+#define RBBM_DSPLY__DMI_CH1_USE_BUFID2 0x00000040L
+#define RBBM_DSPLY__DMI_CH1_SW_CNTL_MASK 0x00000080L
+#define RBBM_DSPLY__DMI_CH1_SW_CNTL 0x00000080L
+#define RBBM_DSPLY__DMI_CH1_NUM_BUFS_MASK 0x00000300L
+#define RBBM_DSPLY__DMI_CH2_USE_BUFID0_MASK 0x00000400L
+#define RBBM_DSPLY__DMI_CH2_USE_BUFID0 0x00000400L
+#define RBBM_DSPLY__DMI_CH2_USE_BUFID1_MASK 0x00000800L
+#define RBBM_DSPLY__DMI_CH2_USE_BUFID1 0x00000800L
+#define RBBM_DSPLY__DMI_CH2_USE_BUFID2_MASK 0x00001000L
+#define RBBM_DSPLY__DMI_CH2_USE_BUFID2 0x00001000L
+#define RBBM_DSPLY__DMI_CH2_SW_CNTL_MASK 0x00002000L
+#define RBBM_DSPLY__DMI_CH2_SW_CNTL 0x00002000L
+#define RBBM_DSPLY__DMI_CH2_NUM_BUFS_MASK 0x0000c000L
+#define RBBM_DSPLY__DMI_CHANNEL_SELECT_MASK 0x00030000L
+#define RBBM_DSPLY__DMI_CH3_USE_BUFID0_MASK 0x00100000L
+#define RBBM_DSPLY__DMI_CH3_USE_BUFID0 0x00100000L
+#define RBBM_DSPLY__DMI_CH3_USE_BUFID1_MASK 0x00200000L
+#define RBBM_DSPLY__DMI_CH3_USE_BUFID1 0x00200000L
+#define RBBM_DSPLY__DMI_CH3_USE_BUFID2_MASK 0x00400000L
+#define RBBM_DSPLY__DMI_CH3_USE_BUFID2 0x00400000L
+#define RBBM_DSPLY__DMI_CH3_SW_CNTL_MASK 0x00800000L
+#define RBBM_DSPLY__DMI_CH3_SW_CNTL 0x00800000L
+#define RBBM_DSPLY__DMI_CH3_NUM_BUFS_MASK 0x03000000L
+#define RBBM_DSPLY__DMI_CH4_USE_BUFID0_MASK 0x04000000L
+#define RBBM_DSPLY__DMI_CH4_USE_BUFID0 0x04000000L
+#define RBBM_DSPLY__DMI_CH4_USE_BUFID1_MASK 0x08000000L
+#define RBBM_DSPLY__DMI_CH4_USE_BUFID1 0x08000000L
+#define RBBM_DSPLY__DMI_CH4_USE_BUFID2_MASK 0x10000000L
+#define RBBM_DSPLY__DMI_CH4_USE_BUFID2 0x10000000L
+#define RBBM_DSPLY__DMI_CH4_SW_CNTL_MASK 0x20000000L
+#define RBBM_DSPLY__DMI_CH4_SW_CNTL 0x20000000L
+#define RBBM_DSPLY__DMI_CH4_NUM_BUFS_MASK 0xc0000000L
+
+// RBBM_RENDER_LATEST
+#define RBBM_RENDER_LATEST__DMI_CH1_BUFFER_ID_MASK 0x00000003L
+#define RBBM_RENDER_LATEST__DMI_CH2_BUFFER_ID_MASK 0x00000300L
+#define RBBM_RENDER_LATEST__DMI_CH3_BUFFER_ID_MASK 0x00030000L
+#define RBBM_RENDER_LATEST__DMI_CH4_BUFFER_ID_MASK 0x03000000L
+
+// RBBM_RTL_RELEASE
+#define RBBM_RTL_RELEASE__CHANGELIST_MASK 0xffffffffL
+
+// RBBM_PATCH_RELEASE
+#define RBBM_PATCH_RELEASE__PATCH_REVISION_MASK 0x0000ffffL
+#define RBBM_PATCH_RELEASE__PATCH_SELECTION_MASK 0x00ff0000L
+#define RBBM_PATCH_RELEASE__CUSTOMER_ID_MASK 0xff000000L
+
+// RBBM_AUXILIARY_CONFIG
+#define RBBM_AUXILIARY_CONFIG__RESERVED_MASK 0xffffffffL
+
+// RBBM_PERIPHID0
+#define RBBM_PERIPHID0__PARTNUMBER0_MASK 0x000000ffL
+
+// RBBM_PERIPHID1
+#define RBBM_PERIPHID1__PARTNUMBER1_MASK 0x0000000fL
+#define RBBM_PERIPHID1__DESIGNER0_MASK 0x000000f0L
+
+// RBBM_PERIPHID2
+#define RBBM_PERIPHID2__DESIGNER1_MASK 0x0000000fL
+#define RBBM_PERIPHID2__REVISION_MASK 0x000000f0L
+
+// RBBM_PERIPHID3
+#define RBBM_PERIPHID3__RBBM_HOST_INTERFACE_MASK 0x00000003L
+#define RBBM_PERIPHID3__GARB_SLAVE_INTERFACE_MASK 0x0000000cL
+#define RBBM_PERIPHID3__MH_INTERFACE_MASK 0x00000030L
+#define RBBM_PERIPHID3__CONTINUATION_MASK 0x00000080L
+#define RBBM_PERIPHID3__CONTINUATION 0x00000080L
+
+// RBBM_CNTL
+#define RBBM_CNTL__READ_TIMEOUT_MASK 0x000000ffL
+#define RBBM_CNTL__REGCLK_DEASSERT_TIME_MASK 0x0001ff00L
+
+// RBBM_SKEW_CNTL
+#define RBBM_SKEW_CNTL__SKEW_TOP_THRESHOLD_MASK 0x0000001fL
+#define RBBM_SKEW_CNTL__SKEW_COUNT_MASK 0x000003e0L
+
+// RBBM_SOFT_RESET
+#define RBBM_SOFT_RESET__SOFT_RESET_CP_MASK 0x00000001L
+#define RBBM_SOFT_RESET__SOFT_RESET_CP 0x00000001L
+#define RBBM_SOFT_RESET__SOFT_RESET_PA_MASK 0x00000004L
+#define RBBM_SOFT_RESET__SOFT_RESET_PA 0x00000004L
+#define RBBM_SOFT_RESET__SOFT_RESET_MH_MASK 0x00000008L
+#define RBBM_SOFT_RESET__SOFT_RESET_MH 0x00000008L
+#define RBBM_SOFT_RESET__SOFT_RESET_BC_MASK 0x00000010L
+#define RBBM_SOFT_RESET__SOFT_RESET_BC 0x00000010L
+#define RBBM_SOFT_RESET__SOFT_RESET_SQ_MASK 0x00000020L
+#define RBBM_SOFT_RESET__SOFT_RESET_SQ 0x00000020L
+#define RBBM_SOFT_RESET__SOFT_RESET_SX_MASK 0x00000040L
+#define RBBM_SOFT_RESET__SOFT_RESET_SX 0x00000040L
+#define RBBM_SOFT_RESET__SOFT_RESET_CIB_MASK 0x00001000L
+#define RBBM_SOFT_RESET__SOFT_RESET_CIB 0x00001000L
+#define RBBM_SOFT_RESET__SOFT_RESET_SC_MASK 0x00008000L
+#define RBBM_SOFT_RESET__SOFT_RESET_SC 0x00008000L
+#define RBBM_SOFT_RESET__SOFT_RESET_VGT_MASK 0x00010000L
+#define RBBM_SOFT_RESET__SOFT_RESET_VGT 0x00010000L
+
+// RBBM_PM_OVERRIDE1
+#define RBBM_PM_OVERRIDE1__RBBM_AHBCLK_PM_OVERRIDE_MASK 0x00000001L
+#define RBBM_PM_OVERRIDE1__RBBM_AHBCLK_PM_OVERRIDE 0x00000001L
+#define RBBM_PM_OVERRIDE1__SC_REG_SCLK_PM_OVERRIDE_MASK 0x00000002L
+#define RBBM_PM_OVERRIDE1__SC_REG_SCLK_PM_OVERRIDE 0x00000002L
+#define RBBM_PM_OVERRIDE1__SC_SCLK_PM_OVERRIDE_MASK 0x00000004L
+#define RBBM_PM_OVERRIDE1__SC_SCLK_PM_OVERRIDE 0x00000004L
+#define RBBM_PM_OVERRIDE1__SP_TOP_SCLK_PM_OVERRIDE_MASK 0x00000008L
+#define RBBM_PM_OVERRIDE1__SP_TOP_SCLK_PM_OVERRIDE 0x00000008L
+#define RBBM_PM_OVERRIDE1__SP_V0_SCLK_PM_OVERRIDE_MASK 0x00000010L
+#define RBBM_PM_OVERRIDE1__SP_V0_SCLK_PM_OVERRIDE 0x00000010L
+#define RBBM_PM_OVERRIDE1__SQ_REG_SCLK_PM_OVERRIDE_MASK 0x00000020L
+#define RBBM_PM_OVERRIDE1__SQ_REG_SCLK_PM_OVERRIDE 0x00000020L
+#define RBBM_PM_OVERRIDE1__SQ_REG_FIFOS_SCLK_PM_OVERRIDE_MASK 0x00000040L
+#define RBBM_PM_OVERRIDE1__SQ_REG_FIFOS_SCLK_PM_OVERRIDE 0x00000040L
+#define RBBM_PM_OVERRIDE1__SQ_CONST_MEM_SCLK_PM_OVERRIDE_MASK 0x00000080L
+#define RBBM_PM_OVERRIDE1__SQ_CONST_MEM_SCLK_PM_OVERRIDE 0x00000080L
+#define RBBM_PM_OVERRIDE1__SQ_SQ_SCLK_PM_OVERRIDE_MASK 0x00000100L
+#define RBBM_PM_OVERRIDE1__SQ_SQ_SCLK_PM_OVERRIDE 0x00000100L
+#define RBBM_PM_OVERRIDE1__SX_SCLK_PM_OVERRIDE_MASK 0x00000200L
+#define RBBM_PM_OVERRIDE1__SX_SCLK_PM_OVERRIDE 0x00000200L
+#define RBBM_PM_OVERRIDE1__SX_REG_SCLK_PM_OVERRIDE_MASK 0x00000400L
+#define RBBM_PM_OVERRIDE1__SX_REG_SCLK_PM_OVERRIDE 0x00000400L
+#define RBBM_PM_OVERRIDE1__TCM_TCO_SCLK_PM_OVERRIDE_MASK 0x00000800L
+#define RBBM_PM_OVERRIDE1__TCM_TCO_SCLK_PM_OVERRIDE 0x00000800L
+#define RBBM_PM_OVERRIDE1__TCM_TCM_SCLK_PM_OVERRIDE_MASK 0x00001000L
+#define RBBM_PM_OVERRIDE1__TCM_TCM_SCLK_PM_OVERRIDE 0x00001000L
+#define RBBM_PM_OVERRIDE1__TCM_TCD_SCLK_PM_OVERRIDE_MASK 0x00002000L
+#define RBBM_PM_OVERRIDE1__TCM_TCD_SCLK_PM_OVERRIDE 0x00002000L
+#define RBBM_PM_OVERRIDE1__TCM_REG_SCLK_PM_OVERRIDE_MASK 0x00004000L
+#define RBBM_PM_OVERRIDE1__TCM_REG_SCLK_PM_OVERRIDE 0x00004000L
+#define RBBM_PM_OVERRIDE1__TPC_TPC_SCLK_PM_OVERRIDE_MASK 0x00008000L
+#define RBBM_PM_OVERRIDE1__TPC_TPC_SCLK_PM_OVERRIDE 0x00008000L
+#define RBBM_PM_OVERRIDE1__TPC_REG_SCLK_PM_OVERRIDE_MASK 0x00010000L
+#define RBBM_PM_OVERRIDE1__TPC_REG_SCLK_PM_OVERRIDE 0x00010000L
+#define RBBM_PM_OVERRIDE1__TCF_TCA_SCLK_PM_OVERRIDE_MASK 0x00020000L
+#define RBBM_PM_OVERRIDE1__TCF_TCA_SCLK_PM_OVERRIDE 0x00020000L
+#define RBBM_PM_OVERRIDE1__TCF_TCB_SCLK_PM_OVERRIDE_MASK 0x00040000L
+#define RBBM_PM_OVERRIDE1__TCF_TCB_SCLK_PM_OVERRIDE 0x00040000L
+#define RBBM_PM_OVERRIDE1__TCF_TCB_READ_SCLK_PM_OVERRIDE_MASK 0x00080000L
+#define RBBM_PM_OVERRIDE1__TCF_TCB_READ_SCLK_PM_OVERRIDE 0x00080000L
+#define RBBM_PM_OVERRIDE1__TP_TP_SCLK_PM_OVERRIDE_MASK 0x00100000L
+#define RBBM_PM_OVERRIDE1__TP_TP_SCLK_PM_OVERRIDE 0x00100000L
+#define RBBM_PM_OVERRIDE1__TP_REG_SCLK_PM_OVERRIDE_MASK 0x00200000L
+#define RBBM_PM_OVERRIDE1__TP_REG_SCLK_PM_OVERRIDE 0x00200000L
+#define RBBM_PM_OVERRIDE1__CP_G_SCLK_PM_OVERRIDE_MASK 0x00400000L
+#define RBBM_PM_OVERRIDE1__CP_G_SCLK_PM_OVERRIDE 0x00400000L
+#define RBBM_PM_OVERRIDE1__CP_REG_SCLK_PM_OVERRIDE_MASK 0x00800000L
+#define RBBM_PM_OVERRIDE1__CP_REG_SCLK_PM_OVERRIDE 0x00800000L
+#define RBBM_PM_OVERRIDE1__CP_G_REG_SCLK_PM_OVERRIDE_MASK 0x01000000L
+#define RBBM_PM_OVERRIDE1__CP_G_REG_SCLK_PM_OVERRIDE 0x01000000L
+#define RBBM_PM_OVERRIDE1__SPI_SCLK_PM_OVERRIDE_MASK 0x02000000L
+#define RBBM_PM_OVERRIDE1__SPI_SCLK_PM_OVERRIDE 0x02000000L
+#define RBBM_PM_OVERRIDE1__RB_REG_SCLK_PM_OVERRIDE_MASK 0x04000000L
+#define RBBM_PM_OVERRIDE1__RB_REG_SCLK_PM_OVERRIDE 0x04000000L
+#define RBBM_PM_OVERRIDE1__RB_SCLK_PM_OVERRIDE_MASK 0x08000000L
+#define RBBM_PM_OVERRIDE1__RB_SCLK_PM_OVERRIDE 0x08000000L
+#define RBBM_PM_OVERRIDE1__MH_MH_SCLK_PM_OVERRIDE_MASK 0x10000000L
+#define RBBM_PM_OVERRIDE1__MH_MH_SCLK_PM_OVERRIDE 0x10000000L
+#define RBBM_PM_OVERRIDE1__MH_REG_SCLK_PM_OVERRIDE_MASK 0x20000000L
+#define RBBM_PM_OVERRIDE1__MH_REG_SCLK_PM_OVERRIDE 0x20000000L
+#define RBBM_PM_OVERRIDE1__MH_MMU_SCLK_PM_OVERRIDE_MASK 0x40000000L
+#define RBBM_PM_OVERRIDE1__MH_MMU_SCLK_PM_OVERRIDE 0x40000000L
+#define RBBM_PM_OVERRIDE1__MH_TCROQ_SCLK_PM_OVERRIDE_MASK 0x80000000L
+#define RBBM_PM_OVERRIDE1__MH_TCROQ_SCLK_PM_OVERRIDE 0x80000000L
+
+// RBBM_PM_OVERRIDE2
+#define RBBM_PM_OVERRIDE2__PA_REG_SCLK_PM_OVERRIDE_MASK 0x00000001L
+#define RBBM_PM_OVERRIDE2__PA_REG_SCLK_PM_OVERRIDE 0x00000001L
+#define RBBM_PM_OVERRIDE2__PA_PA_SCLK_PM_OVERRIDE_MASK 0x00000002L
+#define RBBM_PM_OVERRIDE2__PA_PA_SCLK_PM_OVERRIDE 0x00000002L
+#define RBBM_PM_OVERRIDE2__PA_AG_SCLK_PM_OVERRIDE_MASK 0x00000004L
+#define RBBM_PM_OVERRIDE2__PA_AG_SCLK_PM_OVERRIDE 0x00000004L
+#define RBBM_PM_OVERRIDE2__VGT_REG_SCLK_PM_OVERRIDE_MASK 0x00000008L
+#define RBBM_PM_OVERRIDE2__VGT_REG_SCLK_PM_OVERRIDE 0x00000008L
+#define RBBM_PM_OVERRIDE2__VGT_FIFOS_SCLK_PM_OVERRIDE_MASK 0x00000010L
+#define RBBM_PM_OVERRIDE2__VGT_FIFOS_SCLK_PM_OVERRIDE 0x00000010L
+#define RBBM_PM_OVERRIDE2__VGT_VGT_SCLK_PM_OVERRIDE_MASK 0x00000020L
+#define RBBM_PM_OVERRIDE2__VGT_VGT_SCLK_PM_OVERRIDE 0x00000020L
+#define RBBM_PM_OVERRIDE2__DEBUG_PERF_SCLK_PM_OVERRIDE_MASK 0x00000040L
+#define RBBM_PM_OVERRIDE2__DEBUG_PERF_SCLK_PM_OVERRIDE 0x00000040L
+#define RBBM_PM_OVERRIDE2__PERM_SCLK_PM_OVERRIDE_MASK 0x00000080L
+#define RBBM_PM_OVERRIDE2__PERM_SCLK_PM_OVERRIDE 0x00000080L
+#define RBBM_PM_OVERRIDE2__GC_GA_GMEM0_PM_OVERRIDE_MASK 0x00000100L
+#define RBBM_PM_OVERRIDE2__GC_GA_GMEM0_PM_OVERRIDE 0x00000100L
+#define RBBM_PM_OVERRIDE2__GC_GA_GMEM1_PM_OVERRIDE_MASK 0x00000200L
+#define RBBM_PM_OVERRIDE2__GC_GA_GMEM1_PM_OVERRIDE 0x00000200L
+#define RBBM_PM_OVERRIDE2__GC_GA_GMEM2_PM_OVERRIDE_MASK 0x00000400L
+#define RBBM_PM_OVERRIDE2__GC_GA_GMEM2_PM_OVERRIDE 0x00000400L
+#define RBBM_PM_OVERRIDE2__GC_GA_GMEM3_PM_OVERRIDE_MASK 0x00000800L
+#define RBBM_PM_OVERRIDE2__GC_GA_GMEM3_PM_OVERRIDE 0x00000800L
+
+// GC_SYS_IDLE
+#define GC_SYS_IDLE__GC_SYS_IDLE_DELAY_MASK 0x0000ffffL
+#define GC_SYS_IDLE__GC_SYS_WAIT_DMI_MASK_MASK 0x003f0000L
+#define GC_SYS_IDLE__GC_SYS_URGENT_RAMP_MASK 0x01000000L
+#define GC_SYS_IDLE__GC_SYS_URGENT_RAMP 0x01000000L
+#define GC_SYS_IDLE__GC_SYS_WAIT_DMI_MASK 0x02000000L
+#define GC_SYS_IDLE__GC_SYS_WAIT_DMI 0x02000000L
+#define GC_SYS_IDLE__GC_SYS_URGENT_RAMP_OVERRIDE_MASK 0x20000000L
+#define GC_SYS_IDLE__GC_SYS_URGENT_RAMP_OVERRIDE 0x20000000L
+#define GC_SYS_IDLE__GC_SYS_WAIT_DMI_OVERRIDE_MASK 0x40000000L
+#define GC_SYS_IDLE__GC_SYS_WAIT_DMI_OVERRIDE 0x40000000L
+#define GC_SYS_IDLE__GC_SYS_IDLE_OVERRIDE_MASK 0x80000000L
+#define GC_SYS_IDLE__GC_SYS_IDLE_OVERRIDE 0x80000000L
+
+// NQWAIT_UNTIL
+#define NQWAIT_UNTIL__WAIT_GUI_IDLE_MASK 0x00000001L
+#define NQWAIT_UNTIL__WAIT_GUI_IDLE 0x00000001L
+
+// RBBM_DEBUG_OUT
+#define RBBM_DEBUG_OUT__DEBUG_BUS_OUT_MASK 0xffffffffL
+
+// RBBM_DEBUG_CNTL
+#define RBBM_DEBUG_CNTL__SUB_BLOCK_ADDR_MASK 0x0000003fL
+#define RBBM_DEBUG_CNTL__SUB_BLOCK_SEL_MASK 0x00000f00L
+#define RBBM_DEBUG_CNTL__SW_ENABLE_MASK 0x00001000L
+#define RBBM_DEBUG_CNTL__SW_ENABLE 0x00001000L
+#define RBBM_DEBUG_CNTL__GPIO_SUB_BLOCK_ADDR_MASK 0x003f0000L
+#define RBBM_DEBUG_CNTL__GPIO_SUB_BLOCK_SEL_MASK 0x0f000000L
+#define RBBM_DEBUG_CNTL__GPIO_BYTE_LANE_ENB_MASK 0xf0000000L
+
+// RBBM_DEBUG
+#define RBBM_DEBUG__IGNORE_RTR_MASK 0x00000002L
+#define RBBM_DEBUG__IGNORE_RTR 0x00000002L
+#define RBBM_DEBUG__IGNORE_CP_SCHED_WU_MASK 0x00000004L
+#define RBBM_DEBUG__IGNORE_CP_SCHED_WU 0x00000004L
+#define RBBM_DEBUG__IGNORE_CP_SCHED_ISYNC_MASK 0x00000008L
+#define RBBM_DEBUG__IGNORE_CP_SCHED_ISYNC 0x00000008L
+#define RBBM_DEBUG__IGNORE_CP_SCHED_NQ_HI_MASK 0x00000010L
+#define RBBM_DEBUG__IGNORE_CP_SCHED_NQ_HI 0x00000010L
+#define RBBM_DEBUG__HYSTERESIS_NRT_GUI_ACTIVE_MASK 0x00000f00L
+#define RBBM_DEBUG__IGNORE_RTR_FOR_HI_MASK 0x00010000L
+#define RBBM_DEBUG__IGNORE_RTR_FOR_HI 0x00010000L
+#define RBBM_DEBUG__IGNORE_CP_RBBM_NRTRTR_FOR_HI_MASK 0x00020000L
+#define RBBM_DEBUG__IGNORE_CP_RBBM_NRTRTR_FOR_HI 0x00020000L
+#define RBBM_DEBUG__IGNORE_VGT_RBBM_NRTRTR_FOR_HI_MASK 0x00040000L
+#define RBBM_DEBUG__IGNORE_VGT_RBBM_NRTRTR_FOR_HI 0x00040000L
+#define RBBM_DEBUG__IGNORE_SQ_RBBM_NRTRTR_FOR_HI_MASK 0x00080000L
+#define RBBM_DEBUG__IGNORE_SQ_RBBM_NRTRTR_FOR_HI 0x00080000L
+#define RBBM_DEBUG__CP_RBBM_NRTRTR_MASK 0x00100000L
+#define RBBM_DEBUG__CP_RBBM_NRTRTR 0x00100000L
+#define RBBM_DEBUG__VGT_RBBM_NRTRTR_MASK 0x00200000L
+#define RBBM_DEBUG__VGT_RBBM_NRTRTR 0x00200000L
+#define RBBM_DEBUG__SQ_RBBM_NRTRTR_MASK 0x00400000L
+#define RBBM_DEBUG__SQ_RBBM_NRTRTR 0x00400000L
+#define RBBM_DEBUG__CLIENTS_FOR_NRT_RTR_FOR_HI_MASK 0x00800000L
+#define RBBM_DEBUG__CLIENTS_FOR_NRT_RTR_FOR_HI 0x00800000L
+#define RBBM_DEBUG__CLIENTS_FOR_NRT_RTR_MASK 0x01000000L
+#define RBBM_DEBUG__CLIENTS_FOR_NRT_RTR 0x01000000L
+#define RBBM_DEBUG__IGNORE_SX_RBBM_BUSY_MASK 0x80000000L
+#define RBBM_DEBUG__IGNORE_SX_RBBM_BUSY 0x80000000L
+
+// RBBM_READ_ERROR
+#define RBBM_READ_ERROR__READ_ADDRESS_MASK 0x0001fffcL
+#define RBBM_READ_ERROR__READ_REQUESTER_MASK 0x40000000L
+#define RBBM_READ_ERROR__READ_REQUESTER 0x40000000L
+#define RBBM_READ_ERROR__READ_ERROR_MASK 0x80000000L
+#define RBBM_READ_ERROR__READ_ERROR 0x80000000L
+
+// RBBM_WAIT_IDLE_CLOCKS
+#define RBBM_WAIT_IDLE_CLOCKS__WAIT_IDLE_CLOCKS_NRT_MASK 0x000000ffL
+
+// RBBM_INT_CNTL
+#define RBBM_INT_CNTL__RDERR_INT_MASK_MASK 0x00000001L
+#define RBBM_INT_CNTL__RDERR_INT_MASK 0x00000001L
+#define RBBM_INT_CNTL__DISPLAY_UPDATE_INT_MASK_MASK 0x00000002L
+#define RBBM_INT_CNTL__DISPLAY_UPDATE_INT_MASK 0x00000002L
+#define RBBM_INT_CNTL__GUI_IDLE_INT_MASK_MASK 0x00080000L
+#define RBBM_INT_CNTL__GUI_IDLE_INT_MASK 0x00080000L
+
+// RBBM_INT_STATUS
+#define RBBM_INT_STATUS__RDERR_INT_STAT_MASK 0x00000001L
+#define RBBM_INT_STATUS__RDERR_INT_STAT 0x00000001L
+#define RBBM_INT_STATUS__DISPLAY_UPDATE_INT_STAT_MASK 0x00000002L
+#define RBBM_INT_STATUS__DISPLAY_UPDATE_INT_STAT 0x00000002L
+#define RBBM_INT_STATUS__GUI_IDLE_INT_STAT_MASK 0x00080000L
+#define RBBM_INT_STATUS__GUI_IDLE_INT_STAT 0x00080000L
+
+// RBBM_INT_ACK
+#define RBBM_INT_ACK__RDERR_INT_ACK_MASK 0x00000001L
+#define RBBM_INT_ACK__RDERR_INT_ACK 0x00000001L
+#define RBBM_INT_ACK__DISPLAY_UPDATE_INT_ACK_MASK 0x00000002L
+#define RBBM_INT_ACK__DISPLAY_UPDATE_INT_ACK 0x00000002L
+#define RBBM_INT_ACK__GUI_IDLE_INT_ACK_MASK 0x00080000L
+#define RBBM_INT_ACK__GUI_IDLE_INT_ACK 0x00080000L
+
+// MASTER_INT_SIGNAL
+#define MASTER_INT_SIGNAL__MH_INT_STAT_MASK 0x00000020L
+#define MASTER_INT_SIGNAL__MH_INT_STAT 0x00000020L
+#define MASTER_INT_SIGNAL__SQ_INT_STAT_MASK 0x04000000L
+#define MASTER_INT_SIGNAL__SQ_INT_STAT 0x04000000L
+#define MASTER_INT_SIGNAL__CP_INT_STAT_MASK 0x40000000L
+#define MASTER_INT_SIGNAL__CP_INT_STAT 0x40000000L
+#define MASTER_INT_SIGNAL__RBBM_INT_STAT_MASK 0x80000000L
+#define MASTER_INT_SIGNAL__RBBM_INT_STAT 0x80000000L
+
+// RBBM_PERFCOUNTER1_SELECT
+#define RBBM_PERFCOUNTER1_SELECT__PERF_COUNT1_SEL_MASK 0x0000003fL
+
+// RBBM_PERFCOUNTER1_LO
+#define RBBM_PERFCOUNTER1_LO__PERF_COUNT1_LO_MASK 0xffffffffL
+
+// RBBM_PERFCOUNTER1_HI
+#define RBBM_PERFCOUNTER1_HI__PERF_COUNT1_HI_MASK 0x0000ffffL
+
+// CP_RB_BASE
+#define CP_RB_BASE__RB_BASE_MASK 0xffffffe0L
+
+// CP_RB_CNTL
+#define CP_RB_CNTL__RB_BUFSZ_MASK 0x0000003fL
+#define CP_RB_CNTL__RB_BLKSZ_MASK 0x00003f00L
+#define CP_RB_CNTL__BUF_SWAP_MASK 0x00030000L
+#define CP_RB_CNTL__RB_POLL_EN_MASK 0x00100000L
+#define CP_RB_CNTL__RB_POLL_EN 0x00100000L
+#define CP_RB_CNTL__RB_NO_UPDATE_MASK 0x08000000L
+#define CP_RB_CNTL__RB_NO_UPDATE 0x08000000L
+#define CP_RB_CNTL__RB_RPTR_WR_ENA_MASK 0x80000000L
+#define CP_RB_CNTL__RB_RPTR_WR_ENA 0x80000000L
+
+// CP_RB_RPTR_ADDR
+#define CP_RB_RPTR_ADDR__RB_RPTR_SWAP_MASK 0x00000003L
+#define CP_RB_RPTR_ADDR__RB_RPTR_ADDR_MASK 0xfffffffcL
+
+// CP_RB_RPTR
+#define CP_RB_RPTR__RB_RPTR_MASK 0x000fffffL
+
+// CP_RB_RPTR_WR
+#define CP_RB_RPTR_WR__RB_RPTR_WR_MASK 0x000fffffL
+
+// CP_RB_WPTR
+#define CP_RB_WPTR__RB_WPTR_MASK 0x000fffffL
+
+// CP_RB_WPTR_DELAY
+#define CP_RB_WPTR_DELAY__PRE_WRITE_TIMER_MASK 0x0fffffffL
+#define CP_RB_WPTR_DELAY__PRE_WRITE_LIMIT_MASK 0xf0000000L
+
+// CP_RB_WPTR_BASE
+#define CP_RB_WPTR_BASE__RB_WPTR_SWAP_MASK 0x00000003L
+#define CP_RB_WPTR_BASE__RB_WPTR_BASE_MASK 0xfffffffcL
+
+// CP_IB1_BASE
+#define CP_IB1_BASE__IB1_BASE_MASK 0xfffffffcL
+
+// CP_IB1_BUFSZ
+#define CP_IB1_BUFSZ__IB1_BUFSZ_MASK 0x000fffffL
+
+// CP_IB2_BASE
+#define CP_IB2_BASE__IB2_BASE_MASK 0xfffffffcL
+
+// CP_IB2_BUFSZ
+#define CP_IB2_BUFSZ__IB2_BUFSZ_MASK 0x000fffffL
+
+// CP_ST_BASE
+#define CP_ST_BASE__ST_BASE_MASK 0xfffffffcL
+
+// CP_ST_BUFSZ
+#define CP_ST_BUFSZ__ST_BUFSZ_MASK 0x000fffffL
+
+// CP_QUEUE_THRESHOLDS
+#define CP_QUEUE_THRESHOLDS__CSQ_IB1_START_MASK 0x0000000fL
+#define CP_QUEUE_THRESHOLDS__CSQ_IB2_START_MASK 0x00000f00L
+#define CP_QUEUE_THRESHOLDS__CSQ_ST_START_MASK 0x000f0000L
+
+// CP_MEQ_THRESHOLDS
+#define CP_MEQ_THRESHOLDS__MEQ_END_MASK 0x001f0000L
+#define CP_MEQ_THRESHOLDS__ROQ_END_MASK 0x1f000000L
+
+// CP_CSQ_AVAIL
+#define CP_CSQ_AVAIL__CSQ_CNT_RING_MASK 0x0000007fL
+#define CP_CSQ_AVAIL__CSQ_CNT_IB1_MASK 0x00007f00L
+#define CP_CSQ_AVAIL__CSQ_CNT_IB2_MASK 0x007f0000L
+
+// CP_STQ_AVAIL
+#define CP_STQ_AVAIL__STQ_CNT_ST_MASK 0x0000007fL
+
+// CP_MEQ_AVAIL
+#define CP_MEQ_AVAIL__MEQ_CNT_MASK 0x0000001fL
+
+// CP_CSQ_RB_STAT
+#define CP_CSQ_RB_STAT__CSQ_RPTR_PRIMARY_MASK 0x0000007fL
+#define CP_CSQ_RB_STAT__CSQ_WPTR_PRIMARY_MASK 0x007f0000L
+
+// CP_CSQ_IB1_STAT
+#define CP_CSQ_IB1_STAT__CSQ_RPTR_INDIRECT1_MASK 0x0000007fL
+#define CP_CSQ_IB1_STAT__CSQ_WPTR_INDIRECT1_MASK 0x007f0000L
+
+// CP_CSQ_IB2_STAT
+#define CP_CSQ_IB2_STAT__CSQ_RPTR_INDIRECT2_MASK 0x0000007fL
+#define CP_CSQ_IB2_STAT__CSQ_WPTR_INDIRECT2_MASK 0x007f0000L
+
+// CP_NON_PREFETCH_CNTRS
+#define CP_NON_PREFETCH_CNTRS__IB1_COUNTER_MASK 0x00000007L
+#define CP_NON_PREFETCH_CNTRS__IB2_COUNTER_MASK 0x00000700L
+
+// CP_STQ_ST_STAT
+#define CP_STQ_ST_STAT__STQ_RPTR_ST_MASK 0x0000007fL
+#define CP_STQ_ST_STAT__STQ_WPTR_ST_MASK 0x007f0000L
+
+// CP_MEQ_STAT
+#define CP_MEQ_STAT__MEQ_RPTR_MASK 0x000003ffL
+#define CP_MEQ_STAT__MEQ_WPTR_MASK 0x03ff0000L
+
+// CP_MIU_TAG_STAT
+#define CP_MIU_TAG_STAT__TAG_0_STAT_MASK 0x00000001L
+#define CP_MIU_TAG_STAT__TAG_0_STAT 0x00000001L
+#define CP_MIU_TAG_STAT__TAG_1_STAT_MASK 0x00000002L
+#define CP_MIU_TAG_STAT__TAG_1_STAT 0x00000002L
+#define CP_MIU_TAG_STAT__TAG_2_STAT_MASK 0x00000004L
+#define CP_MIU_TAG_STAT__TAG_2_STAT 0x00000004L
+#define CP_MIU_TAG_STAT__TAG_3_STAT_MASK 0x00000008L
+#define CP_MIU_TAG_STAT__TAG_3_STAT 0x00000008L
+#define CP_MIU_TAG_STAT__TAG_4_STAT_MASK 0x00000010L
+#define CP_MIU_TAG_STAT__TAG_4_STAT 0x00000010L
+#define CP_MIU_TAG_STAT__TAG_5_STAT_MASK 0x00000020L
+#define CP_MIU_TAG_STAT__TAG_5_STAT 0x00000020L
+#define CP_MIU_TAG_STAT__TAG_6_STAT_MASK 0x00000040L
+#define CP_MIU_TAG_STAT__TAG_6_STAT 0x00000040L
+#define CP_MIU_TAG_STAT__TAG_7_STAT_MASK 0x00000080L
+#define CP_MIU_TAG_STAT__TAG_7_STAT 0x00000080L
+#define CP_MIU_TAG_STAT__TAG_8_STAT_MASK 0x00000100L
+#define CP_MIU_TAG_STAT__TAG_8_STAT 0x00000100L
+#define CP_MIU_TAG_STAT__TAG_9_STAT_MASK 0x00000200L
+#define CP_MIU_TAG_STAT__TAG_9_STAT 0x00000200L
+#define CP_MIU_TAG_STAT__TAG_10_STAT_MASK 0x00000400L
+#define CP_MIU_TAG_STAT__TAG_10_STAT 0x00000400L
+#define CP_MIU_TAG_STAT__TAG_11_STAT_MASK 0x00000800L
+#define CP_MIU_TAG_STAT__TAG_11_STAT 0x00000800L
+#define CP_MIU_TAG_STAT__TAG_12_STAT_MASK 0x00001000L
+#define CP_MIU_TAG_STAT__TAG_12_STAT 0x00001000L
+#define CP_MIU_TAG_STAT__TAG_13_STAT_MASK 0x00002000L
+#define CP_MIU_TAG_STAT__TAG_13_STAT 0x00002000L
+#define CP_MIU_TAG_STAT__TAG_14_STAT_MASK 0x00004000L
+#define CP_MIU_TAG_STAT__TAG_14_STAT 0x00004000L
+#define CP_MIU_TAG_STAT__TAG_15_STAT_MASK 0x00008000L
+#define CP_MIU_TAG_STAT__TAG_15_STAT 0x00008000L
+#define CP_MIU_TAG_STAT__TAG_16_STAT_MASK 0x00010000L
+#define CP_MIU_TAG_STAT__TAG_16_STAT 0x00010000L
+#define CP_MIU_TAG_STAT__TAG_17_STAT_MASK 0x00020000L
+#define CP_MIU_TAG_STAT__TAG_17_STAT 0x00020000L
+#define CP_MIU_TAG_STAT__INVALID_RETURN_TAG_MASK 0x80000000L
+#define CP_MIU_TAG_STAT__INVALID_RETURN_TAG 0x80000000L
+
+// CP_CMD_INDEX
+#define CP_CMD_INDEX__CMD_INDEX_MASK 0x0000007fL
+#define CP_CMD_INDEX__CMD_QUEUE_SEL_MASK 0x00030000L
+
+// CP_CMD_DATA
+#define CP_CMD_DATA__CMD_DATA_MASK 0xffffffffL
+
+// CP_ME_CNTL
+#define CP_ME_CNTL__ME_STATMUX_MASK 0x0000ffffL
+#define CP_ME_CNTL__VTX_DEALLOC_FIFO_EMPTY_MASK 0x02000000L
+#define CP_ME_CNTL__VTX_DEALLOC_FIFO_EMPTY 0x02000000L
+#define CP_ME_CNTL__PIX_DEALLOC_FIFO_EMPTY_MASK 0x04000000L
+#define CP_ME_CNTL__PIX_DEALLOC_FIFO_EMPTY 0x04000000L
+#define CP_ME_CNTL__ME_HALT_MASK 0x10000000L
+#define CP_ME_CNTL__ME_HALT 0x10000000L
+#define CP_ME_CNTL__ME_BUSY_MASK 0x20000000L
+#define CP_ME_CNTL__ME_BUSY 0x20000000L
+#define CP_ME_CNTL__PROG_CNT_SIZE_MASK 0x80000000L
+#define CP_ME_CNTL__PROG_CNT_SIZE 0x80000000L
+
+// CP_ME_STATUS
+#define CP_ME_STATUS__ME_DEBUG_DATA_MASK 0xffffffffL
+
+// CP_ME_RAM_WADDR
+#define CP_ME_RAM_WADDR__ME_RAM_WADDR_MASK 0x000003ffL
+
+// CP_ME_RAM_RADDR
+#define CP_ME_RAM_RADDR__ME_RAM_RADDR_MASK 0x000003ffL
+
+// CP_ME_RAM_DATA
+#define CP_ME_RAM_DATA__ME_RAM_DATA_MASK 0xffffffffL
+
+// CP_ME_RDADDR
+#define CP_ME_RDADDR__ME_RDADDR_MASK 0xffffffffL
+
+// CP_DEBUG
+#define CP_DEBUG__CP_DEBUG_UNUSED_22_to_0_MASK 0x007fffffL
+#define CP_DEBUG__PREDICATE_DISABLE_MASK 0x00800000L
+#define CP_DEBUG__PREDICATE_DISABLE 0x00800000L
+#define CP_DEBUG__PROG_END_PTR_ENABLE_MASK 0x01000000L
+#define CP_DEBUG__PROG_END_PTR_ENABLE 0x01000000L
+#define CP_DEBUG__MIU_128BIT_WRITE_ENABLE_MASK 0x02000000L
+#define CP_DEBUG__MIU_128BIT_WRITE_ENABLE 0x02000000L
+#define CP_DEBUG__PREFETCH_PASS_NOPS_MASK 0x04000000L
+#define CP_DEBUG__PREFETCH_PASS_NOPS 0x04000000L
+#define CP_DEBUG__DYNAMIC_CLK_DISABLE_MASK 0x08000000L
+#define CP_DEBUG__DYNAMIC_CLK_DISABLE 0x08000000L
+#define CP_DEBUG__PREFETCH_MATCH_DISABLE_MASK 0x10000000L
+#define CP_DEBUG__PREFETCH_MATCH_DISABLE 0x10000000L
+#define CP_DEBUG__SIMPLE_ME_FLOW_CONTROL_MASK 0x40000000L
+#define CP_DEBUG__SIMPLE_ME_FLOW_CONTROL 0x40000000L
+#define CP_DEBUG__MIU_WRITE_PACK_DISABLE_MASK 0x80000000L
+#define CP_DEBUG__MIU_WRITE_PACK_DISABLE 0x80000000L
+
+// SCRATCH_REG0
+#define SCRATCH_REG0__SCRATCH_REG0_MASK 0xffffffffL
+#define GUI_SCRATCH_REG0__SCRATCH_REG0_MASK 0xffffffffL
+
+// SCRATCH_REG1
+#define SCRATCH_REG1__SCRATCH_REG1_MASK 0xffffffffL
+#define GUI_SCRATCH_REG1__SCRATCH_REG1_MASK 0xffffffffL
+
+// SCRATCH_REG2
+#define SCRATCH_REG2__SCRATCH_REG2_MASK 0xffffffffL
+#define GUI_SCRATCH_REG2__SCRATCH_REG2_MASK 0xffffffffL
+
+// SCRATCH_REG3
+#define SCRATCH_REG3__SCRATCH_REG3_MASK 0xffffffffL
+#define GUI_SCRATCH_REG3__SCRATCH_REG3_MASK 0xffffffffL
+
+// SCRATCH_REG4
+#define SCRATCH_REG4__SCRATCH_REG4_MASK 0xffffffffL
+#define GUI_SCRATCH_REG4__SCRATCH_REG4_MASK 0xffffffffL
+
+// SCRATCH_REG5
+#define SCRATCH_REG5__SCRATCH_REG5_MASK 0xffffffffL
+#define GUI_SCRATCH_REG5__SCRATCH_REG5_MASK 0xffffffffL
+
+// SCRATCH_REG6
+#define SCRATCH_REG6__SCRATCH_REG6_MASK 0xffffffffL
+#define GUI_SCRATCH_REG6__SCRATCH_REG6_MASK 0xffffffffL
+
+// SCRATCH_REG7
+#define SCRATCH_REG7__SCRATCH_REG7_MASK 0xffffffffL
+#define GUI_SCRATCH_REG7__SCRATCH_REG7_MASK 0xffffffffL
+
+// SCRATCH_UMSK
+#define SCRATCH_UMSK__SCRATCH_UMSK_MASK 0x000000ffL
+#define SCRATCH_UMSK__SCRATCH_SWAP_MASK 0x00030000L
+
+// SCRATCH_ADDR
+#define SCRATCH_ADDR__SCRATCH_ADDR_MASK 0xffffffe0L
+
+// CP_ME_VS_EVENT_SRC
+#define CP_ME_VS_EVENT_SRC__VS_DONE_SWM_MASK 0x00000001L
+#define CP_ME_VS_EVENT_SRC__VS_DONE_SWM 0x00000001L
+#define CP_ME_VS_EVENT_SRC__VS_DONE_CNTR_MASK 0x00000002L
+#define CP_ME_VS_EVENT_SRC__VS_DONE_CNTR 0x00000002L
+
+// CP_ME_VS_EVENT_ADDR
+#define CP_ME_VS_EVENT_ADDR__VS_DONE_SWAP_MASK 0x00000003L
+#define CP_ME_VS_EVENT_ADDR__VS_DONE_ADDR_MASK 0xfffffffcL
+
+// CP_ME_VS_EVENT_DATA
+#define CP_ME_VS_EVENT_DATA__VS_DONE_DATA_MASK 0xffffffffL
+
+// CP_ME_VS_EVENT_ADDR_SWM
+#define CP_ME_VS_EVENT_ADDR_SWM__VS_DONE_SWAP_SWM_MASK 0x00000003L
+#define CP_ME_VS_EVENT_ADDR_SWM__VS_DONE_ADDR_SWM_MASK 0xfffffffcL
+
+// CP_ME_VS_EVENT_DATA_SWM
+#define CP_ME_VS_EVENT_DATA_SWM__VS_DONE_DATA_SWM_MASK 0xffffffffL
+
+// CP_ME_PS_EVENT_SRC
+#define CP_ME_PS_EVENT_SRC__PS_DONE_SWM_MASK 0x00000001L
+#define CP_ME_PS_EVENT_SRC__PS_DONE_SWM 0x00000001L
+#define CP_ME_PS_EVENT_SRC__PS_DONE_CNTR_MASK 0x00000002L
+#define CP_ME_PS_EVENT_SRC__PS_DONE_CNTR 0x00000002L
+
+// CP_ME_PS_EVENT_ADDR
+#define CP_ME_PS_EVENT_ADDR__PS_DONE_SWAP_MASK 0x00000003L
+#define CP_ME_PS_EVENT_ADDR__PS_DONE_ADDR_MASK 0xfffffffcL
+
+// CP_ME_PS_EVENT_DATA
+#define CP_ME_PS_EVENT_DATA__PS_DONE_DATA_MASK 0xffffffffL
+
+// CP_ME_PS_EVENT_ADDR_SWM
+#define CP_ME_PS_EVENT_ADDR_SWM__PS_DONE_SWAP_SWM_MASK 0x00000003L
+#define CP_ME_PS_EVENT_ADDR_SWM__PS_DONE_ADDR_SWM_MASK 0xfffffffcL
+
+// CP_ME_PS_EVENT_DATA_SWM
+#define CP_ME_PS_EVENT_DATA_SWM__PS_DONE_DATA_SWM_MASK 0xffffffffL
+
+// CP_ME_CF_EVENT_SRC
+#define CP_ME_CF_EVENT_SRC__CF_DONE_SRC_MASK 0x00000001L
+#define CP_ME_CF_EVENT_SRC__CF_DONE_SRC 0x00000001L
+
+// CP_ME_CF_EVENT_ADDR
+#define CP_ME_CF_EVENT_ADDR__CF_DONE_SWAP_MASK 0x00000003L
+#define CP_ME_CF_EVENT_ADDR__CF_DONE_ADDR_MASK 0xfffffffcL
+
+// CP_ME_CF_EVENT_DATA
+#define CP_ME_CF_EVENT_DATA__CF_DONE_DATA_MASK 0xffffffffL
+
+// CP_ME_NRT_ADDR
+#define CP_ME_NRT_ADDR__NRT_WRITE_SWAP_MASK 0x00000003L
+#define CP_ME_NRT_ADDR__NRT_WRITE_ADDR_MASK 0xfffffffcL
+
+// CP_ME_NRT_DATA
+#define CP_ME_NRT_DATA__NRT_WRITE_DATA_MASK 0xffffffffL
+
+// CP_ME_VS_FETCH_DONE_SRC
+#define CP_ME_VS_FETCH_DONE_SRC__VS_FETCH_DONE_CNTR_MASK 0x00000001L
+#define CP_ME_VS_FETCH_DONE_SRC__VS_FETCH_DONE_CNTR 0x00000001L
+
+// CP_ME_VS_FETCH_DONE_ADDR
+#define CP_ME_VS_FETCH_DONE_ADDR__VS_FETCH_DONE_SWAP_MASK 0x00000003L
+#define CP_ME_VS_FETCH_DONE_ADDR__VS_FETCH_DONE_ADDR_MASK 0xfffffffcL
+
+// CP_ME_VS_FETCH_DONE_DATA
+#define CP_ME_VS_FETCH_DONE_DATA__VS_FETCH_DONE_DATA_MASK 0xffffffffL
+
+// CP_INT_CNTL
+#define CP_INT_CNTL__SW_INT_MASK_MASK 0x00080000L
+#define CP_INT_CNTL__SW_INT_MASK 0x00080000L
+#define CP_INT_CNTL__T0_PACKET_IN_IB_MASK_MASK 0x00800000L
+#define CP_INT_CNTL__T0_PACKET_IN_IB_MASK 0x00800000L
+#define CP_INT_CNTL__OPCODE_ERROR_MASK_MASK 0x01000000L
+#define CP_INT_CNTL__OPCODE_ERROR_MASK 0x01000000L
+#define CP_INT_CNTL__PROTECTED_MODE_ERROR_MASK_MASK 0x02000000L
+#define CP_INT_CNTL__PROTECTED_MODE_ERROR_MASK 0x02000000L
+#define CP_INT_CNTL__RESERVED_BIT_ERROR_MASK_MASK 0x04000000L
+#define CP_INT_CNTL__RESERVED_BIT_ERROR_MASK 0x04000000L
+#define CP_INT_CNTL__IB_ERROR_MASK_MASK 0x08000000L
+#define CP_INT_CNTL__IB_ERROR_MASK 0x08000000L
+#define CP_INT_CNTL__IB2_INT_MASK_MASK 0x20000000L
+#define CP_INT_CNTL__IB2_INT_MASK 0x20000000L
+#define CP_INT_CNTL__IB1_INT_MASK_MASK 0x40000000L
+#define CP_INT_CNTL__IB1_INT_MASK 0x40000000L
+#define CP_INT_CNTL__RB_INT_MASK_MASK 0x80000000L
+#define CP_INT_CNTL__RB_INT_MASK 0x80000000L
+
+// CP_INT_STATUS
+#define CP_INT_STATUS__SW_INT_STAT_MASK 0x00080000L
+#define CP_INT_STATUS__SW_INT_STAT 0x00080000L
+#define CP_INT_STATUS__T0_PACKET_IN_IB_STAT_MASK 0x00800000L
+#define CP_INT_STATUS__T0_PACKET_IN_IB_STAT 0x00800000L
+#define CP_INT_STATUS__OPCODE_ERROR_STAT_MASK 0x01000000L
+#define CP_INT_STATUS__OPCODE_ERROR_STAT 0x01000000L
+#define CP_INT_STATUS__PROTECTED_MODE_ERROR_STAT_MASK 0x02000000L
+#define CP_INT_STATUS__PROTECTED_MODE_ERROR_STAT 0x02000000L
+#define CP_INT_STATUS__RESERVED_BIT_ERROR_STAT_MASK 0x04000000L
+#define CP_INT_STATUS__RESERVED_BIT_ERROR_STAT 0x04000000L
+#define CP_INT_STATUS__IB_ERROR_STAT_MASK 0x08000000L
+#define CP_INT_STATUS__IB_ERROR_STAT 0x08000000L
+#define CP_INT_STATUS__IB2_INT_STAT_MASK 0x20000000L
+#define CP_INT_STATUS__IB2_INT_STAT 0x20000000L
+#define CP_INT_STATUS__IB1_INT_STAT_MASK 0x40000000L
+#define CP_INT_STATUS__IB1_INT_STAT 0x40000000L
+#define CP_INT_STATUS__RB_INT_STAT_MASK 0x80000000L
+#define CP_INT_STATUS__RB_INT_STAT 0x80000000L
+
+// CP_INT_ACK
+#define CP_INT_ACK__SW_INT_ACK_MASK 0x00080000L
+#define CP_INT_ACK__SW_INT_ACK 0x00080000L
+#define CP_INT_ACK__T0_PACKET_IN_IB_ACK_MASK 0x00800000L
+#define CP_INT_ACK__T0_PACKET_IN_IB_ACK 0x00800000L
+#define CP_INT_ACK__OPCODE_ERROR_ACK_MASK 0x01000000L
+#define CP_INT_ACK__OPCODE_ERROR_ACK 0x01000000L
+#define CP_INT_ACK__PROTECTED_MODE_ERROR_ACK_MASK 0x02000000L
+#define CP_INT_ACK__PROTECTED_MODE_ERROR_ACK 0x02000000L
+#define CP_INT_ACK__RESERVED_BIT_ERROR_ACK_MASK 0x04000000L
+#define CP_INT_ACK__RESERVED_BIT_ERROR_ACK 0x04000000L
+#define CP_INT_ACK__IB_ERROR_ACK_MASK 0x08000000L
+#define CP_INT_ACK__IB_ERROR_ACK 0x08000000L
+#define CP_INT_ACK__IB2_INT_ACK_MASK 0x20000000L
+#define CP_INT_ACK__IB2_INT_ACK 0x20000000L
+#define CP_INT_ACK__IB1_INT_ACK_MASK 0x40000000L
+#define CP_INT_ACK__IB1_INT_ACK 0x40000000L
+#define CP_INT_ACK__RB_INT_ACK_MASK 0x80000000L
+#define CP_INT_ACK__RB_INT_ACK 0x80000000L
+
+// CP_PFP_UCODE_ADDR
+#define CP_PFP_UCODE_ADDR__UCODE_ADDR_MASK 0x000001ffL
+
+// CP_PFP_UCODE_DATA
+#define CP_PFP_UCODE_DATA__UCODE_DATA_MASK 0x00ffffffL
+
+// CP_PERFMON_CNTL
+#define CP_PERFMON_CNTL__PERFMON_STATE_MASK 0x0000000fL
+#define CP_PERFMON_CNTL__PERFMON_ENABLE_MODE_MASK 0x00000300L
+
+// CP_PERFCOUNTER_SELECT
+#define CP_PERFCOUNTER_SELECT__PERFCOUNT_SEL_MASK 0x0000003fL
+
+// CP_PERFCOUNTER_LO
+#define CP_PERFCOUNTER_LO__PERFCOUNT_LO_MASK 0xffffffffL
+
+// CP_PERFCOUNTER_HI
+#define CP_PERFCOUNTER_HI__PERFCOUNT_HI_MASK 0x0000ffffL
+
+// CP_BIN_MASK_LO
+#define CP_BIN_MASK_LO__BIN_MASK_LO_MASK 0xffffffffL
+
+// CP_BIN_MASK_HI
+#define CP_BIN_MASK_HI__BIN_MASK_HI_MASK 0xffffffffL
+
+// CP_BIN_SELECT_LO
+#define CP_BIN_SELECT_LO__BIN_SELECT_LO_MASK 0xffffffffL
+
+// CP_BIN_SELECT_HI
+#define CP_BIN_SELECT_HI__BIN_SELECT_HI_MASK 0xffffffffL
+
+// CP_NV_FLAGS_0
+#define CP_NV_FLAGS_0__DISCARD_0_MASK 0x00000001L
+#define CP_NV_FLAGS_0__DISCARD_0 0x00000001L
+#define CP_NV_FLAGS_0__END_RCVD_0_MASK 0x00000002L
+#define CP_NV_FLAGS_0__END_RCVD_0 0x00000002L
+#define CP_NV_FLAGS_0__DISCARD_1_MASK 0x00000004L
+#define CP_NV_FLAGS_0__DISCARD_1 0x00000004L
+#define CP_NV_FLAGS_0__END_RCVD_1_MASK 0x00000008L
+#define CP_NV_FLAGS_0__END_RCVD_1 0x00000008L
+#define CP_NV_FLAGS_0__DISCARD_2_MASK 0x00000010L
+#define CP_NV_FLAGS_0__DISCARD_2 0x00000010L
+#define CP_NV_FLAGS_0__END_RCVD_2_MASK 0x00000020L
+#define CP_NV_FLAGS_0__END_RCVD_2 0x00000020L
+#define CP_NV_FLAGS_0__DISCARD_3_MASK 0x00000040L
+#define CP_NV_FLAGS_0__DISCARD_3 0x00000040L
+#define CP_NV_FLAGS_0__END_RCVD_3_MASK 0x00000080L
+#define CP_NV_FLAGS_0__END_RCVD_3 0x00000080L
+#define CP_NV_FLAGS_0__DISCARD_4_MASK 0x00000100L
+#define CP_NV_FLAGS_0__DISCARD_4 0x00000100L
+#define CP_NV_FLAGS_0__END_RCVD_4_MASK 0x00000200L
+#define CP_NV_FLAGS_0__END_RCVD_4 0x00000200L
+#define CP_NV_FLAGS_0__DISCARD_5_MASK 0x00000400L
+#define CP_NV_FLAGS_0__DISCARD_5 0x00000400L
+#define CP_NV_FLAGS_0__END_RCVD_5_MASK 0x00000800L
+#define CP_NV_FLAGS_0__END_RCVD_5 0x00000800L
+#define CP_NV_FLAGS_0__DISCARD_6_MASK 0x00001000L
+#define CP_NV_FLAGS_0__DISCARD_6 0x00001000L
+#define CP_NV_FLAGS_0__END_RCVD_6_MASK 0x00002000L
+#define CP_NV_FLAGS_0__END_RCVD_6 0x00002000L
+#define CP_NV_FLAGS_0__DISCARD_7_MASK 0x00004000L
+#define CP_NV_FLAGS_0__DISCARD_7 0x00004000L
+#define CP_NV_FLAGS_0__END_RCVD_7_MASK 0x00008000L
+#define CP_NV_FLAGS_0__END_RCVD_7 0x00008000L
+#define CP_NV_FLAGS_0__DISCARD_8_MASK 0x00010000L
+#define CP_NV_FLAGS_0__DISCARD_8 0x00010000L
+#define CP_NV_FLAGS_0__END_RCVD_8_MASK 0x00020000L
+#define CP_NV_FLAGS_0__END_RCVD_8 0x00020000L
+#define CP_NV_FLAGS_0__DISCARD_9_MASK 0x00040000L
+#define CP_NV_FLAGS_0__DISCARD_9 0x00040000L
+#define CP_NV_FLAGS_0__END_RCVD_9_MASK 0x00080000L
+#define CP_NV_FLAGS_0__END_RCVD_9 0x00080000L
+#define CP_NV_FLAGS_0__DISCARD_10_MASK 0x00100000L
+#define CP_NV_FLAGS_0__DISCARD_10 0x00100000L
+#define CP_NV_FLAGS_0__END_RCVD_10_MASK 0x00200000L
+#define CP_NV_FLAGS_0__END_RCVD_10 0x00200000L
+#define CP_NV_FLAGS_0__DISCARD_11_MASK 0x00400000L
+#define CP_NV_FLAGS_0__DISCARD_11 0x00400000L
+#define CP_NV_FLAGS_0__END_RCVD_11_MASK 0x00800000L
+#define CP_NV_FLAGS_0__END_RCVD_11 0x00800000L
+#define CP_NV_FLAGS_0__DISCARD_12_MASK 0x01000000L
+#define CP_NV_FLAGS_0__DISCARD_12 0x01000000L
+#define CP_NV_FLAGS_0__END_RCVD_12_MASK 0x02000000L
+#define CP_NV_FLAGS_0__END_RCVD_12 0x02000000L
+#define CP_NV_FLAGS_0__DISCARD_13_MASK 0x04000000L
+#define CP_NV_FLAGS_0__DISCARD_13 0x04000000L
+#define CP_NV_FLAGS_0__END_RCVD_13_MASK 0x08000000L
+#define CP_NV_FLAGS_0__END_RCVD_13 0x08000000L
+#define CP_NV_FLAGS_0__DISCARD_14_MASK 0x10000000L
+#define CP_NV_FLAGS_0__DISCARD_14 0x10000000L
+#define CP_NV_FLAGS_0__END_RCVD_14_MASK 0x20000000L
+#define CP_NV_FLAGS_0__END_RCVD_14 0x20000000L
+#define CP_NV_FLAGS_0__DISCARD_15_MASK 0x40000000L
+#define CP_NV_FLAGS_0__DISCARD_15 0x40000000L
+#define CP_NV_FLAGS_0__END_RCVD_15_MASK 0x80000000L
+#define CP_NV_FLAGS_0__END_RCVD_15 0x80000000L
+
+// CP_NV_FLAGS_1
+#define CP_NV_FLAGS_1__DISCARD_16_MASK 0x00000001L
+#define CP_NV_FLAGS_1__DISCARD_16 0x00000001L
+#define CP_NV_FLAGS_1__END_RCVD_16_MASK 0x00000002L
+#define CP_NV_FLAGS_1__END_RCVD_16 0x00000002L
+#define CP_NV_FLAGS_1__DISCARD_17_MASK 0x00000004L
+#define CP_NV_FLAGS_1__DISCARD_17 0x00000004L
+#define CP_NV_FLAGS_1__END_RCVD_17_MASK 0x00000008L
+#define CP_NV_FLAGS_1__END_RCVD_17 0x00000008L
+#define CP_NV_FLAGS_1__DISCARD_18_MASK 0x00000010L
+#define CP_NV_FLAGS_1__DISCARD_18 0x00000010L
+#define CP_NV_FLAGS_1__END_RCVD_18_MASK 0x00000020L
+#define CP_NV_FLAGS_1__END_RCVD_18 0x00000020L
+#define CP_NV_FLAGS_1__DISCARD_19_MASK 0x00000040L
+#define CP_NV_FLAGS_1__DISCARD_19 0x00000040L
+#define CP_NV_FLAGS_1__END_RCVD_19_MASK 0x00000080L
+#define CP_NV_FLAGS_1__END_RCVD_19 0x00000080L
+#define CP_NV_FLAGS_1__DISCARD_20_MASK 0x00000100L
+#define CP_NV_FLAGS_1__DISCARD_20 0x00000100L
+#define CP_NV_FLAGS_1__END_RCVD_20_MASK 0x00000200L
+#define CP_NV_FLAGS_1__END_RCVD_20 0x00000200L
+#define CP_NV_FLAGS_1__DISCARD_21_MASK 0x00000400L
+#define CP_NV_FLAGS_1__DISCARD_21 0x00000400L
+#define CP_NV_FLAGS_1__END_RCVD_21_MASK 0x00000800L
+#define CP_NV_FLAGS_1__END_RCVD_21 0x00000800L
+#define CP_NV_FLAGS_1__DISCARD_22_MASK 0x00001000L
+#define CP_NV_FLAGS_1__DISCARD_22 0x00001000L
+#define CP_NV_FLAGS_1__END_RCVD_22_MASK 0x00002000L
+#define CP_NV_FLAGS_1__END_RCVD_22 0x00002000L
+#define CP_NV_FLAGS_1__DISCARD_23_MASK 0x00004000L
+#define CP_NV_FLAGS_1__DISCARD_23 0x00004000L
+#define CP_NV_FLAGS_1__END_RCVD_23_MASK 0x00008000L
+#define CP_NV_FLAGS_1__END_RCVD_23 0x00008000L
+#define CP_NV_FLAGS_1__DISCARD_24_MASK 0x00010000L
+#define CP_NV_FLAGS_1__DISCARD_24 0x00010000L
+#define CP_NV_FLAGS_1__END_RCVD_24_MASK 0x00020000L
+#define CP_NV_FLAGS_1__END_RCVD_24 0x00020000L
+#define CP_NV_FLAGS_1__DISCARD_25_MASK 0x00040000L
+#define CP_NV_FLAGS_1__DISCARD_25 0x00040000L
+#define CP_NV_FLAGS_1__END_RCVD_25_MASK 0x00080000L
+#define CP_NV_FLAGS_1__END_RCVD_25 0x00080000L
+#define CP_NV_FLAGS_1__DISCARD_26_MASK 0x00100000L
+#define CP_NV_FLAGS_1__DISCARD_26 0x00100000L
+#define CP_NV_FLAGS_1__END_RCVD_26_MASK 0x00200000L
+#define CP_NV_FLAGS_1__END_RCVD_26 0x00200000L
+#define CP_NV_FLAGS_1__DISCARD_27_MASK 0x00400000L
+#define CP_NV_FLAGS_1__DISCARD_27 0x00400000L
+#define CP_NV_FLAGS_1__END_RCVD_27_MASK 0x00800000L
+#define CP_NV_FLAGS_1__END_RCVD_27 0x00800000L
+#define CP_NV_FLAGS_1__DISCARD_28_MASK 0x01000000L
+#define CP_NV_FLAGS_1__DISCARD_28 0x01000000L
+#define CP_NV_FLAGS_1__END_RCVD_28_MASK 0x02000000L
+#define CP_NV_FLAGS_1__END_RCVD_28 0x02000000L
+#define CP_NV_FLAGS_1__DISCARD_29_MASK 0x04000000L
+#define CP_NV_FLAGS_1__DISCARD_29 0x04000000L
+#define CP_NV_FLAGS_1__END_RCVD_29_MASK 0x08000000L
+#define CP_NV_FLAGS_1__END_RCVD_29 0x08000000L
+#define CP_NV_FLAGS_1__DISCARD_30_MASK 0x10000000L
+#define CP_NV_FLAGS_1__DISCARD_30 0x10000000L
+#define CP_NV_FLAGS_1__END_RCVD_30_MASK 0x20000000L
+#define CP_NV_FLAGS_1__END_RCVD_30 0x20000000L
+#define CP_NV_FLAGS_1__DISCARD_31_MASK 0x40000000L
+#define CP_NV_FLAGS_1__DISCARD_31 0x40000000L
+#define CP_NV_FLAGS_1__END_RCVD_31_MASK 0x80000000L
+#define CP_NV_FLAGS_1__END_RCVD_31 0x80000000L
+
+// CP_NV_FLAGS_2
+#define CP_NV_FLAGS_2__DISCARD_32_MASK 0x00000001L
+#define CP_NV_FLAGS_2__DISCARD_32 0x00000001L
+#define CP_NV_FLAGS_2__END_RCVD_32_MASK 0x00000002L
+#define CP_NV_FLAGS_2__END_RCVD_32 0x00000002L
+#define CP_NV_FLAGS_2__DISCARD_33_MASK 0x00000004L
+#define CP_NV_FLAGS_2__DISCARD_33 0x00000004L
+#define CP_NV_FLAGS_2__END_RCVD_33_MASK 0x00000008L
+#define CP_NV_FLAGS_2__END_RCVD_33 0x00000008L
+#define CP_NV_FLAGS_2__DISCARD_34_MASK 0x00000010L
+#define CP_NV_FLAGS_2__DISCARD_34 0x00000010L
+#define CP_NV_FLAGS_2__END_RCVD_34_MASK 0x00000020L
+#define CP_NV_FLAGS_2__END_RCVD_34 0x00000020L
+#define CP_NV_FLAGS_2__DISCARD_35_MASK 0x00000040L
+#define CP_NV_FLAGS_2__DISCARD_35 0x00000040L
+#define CP_NV_FLAGS_2__END_RCVD_35_MASK 0x00000080L
+#define CP_NV_FLAGS_2__END_RCVD_35 0x00000080L
+#define CP_NV_FLAGS_2__DISCARD_36_MASK 0x00000100L
+#define CP_NV_FLAGS_2__DISCARD_36 0x00000100L
+#define CP_NV_FLAGS_2__END_RCVD_36_MASK 0x00000200L
+#define CP_NV_FLAGS_2__END_RCVD_36 0x00000200L
+#define CP_NV_FLAGS_2__DISCARD_37_MASK 0x00000400L
+#define CP_NV_FLAGS_2__DISCARD_37 0x00000400L
+#define CP_NV_FLAGS_2__END_RCVD_37_MASK 0x00000800L
+#define CP_NV_FLAGS_2__END_RCVD_37 0x00000800L
+#define CP_NV_FLAGS_2__DISCARD_38_MASK 0x00001000L
+#define CP_NV_FLAGS_2__DISCARD_38 0x00001000L
+#define CP_NV_FLAGS_2__END_RCVD_38_MASK 0x00002000L
+#define CP_NV_FLAGS_2__END_RCVD_38 0x00002000L
+#define CP_NV_FLAGS_2__DISCARD_39_MASK 0x00004000L
+#define CP_NV_FLAGS_2__DISCARD_39 0x00004000L
+#define CP_NV_FLAGS_2__END_RCVD_39_MASK 0x00008000L
+#define CP_NV_FLAGS_2__END_RCVD_39 0x00008000L
+#define CP_NV_FLAGS_2__DISCARD_40_MASK 0x00010000L
+#define CP_NV_FLAGS_2__DISCARD_40 0x00010000L
+#define CP_NV_FLAGS_2__END_RCVD_40_MASK 0x00020000L
+#define CP_NV_FLAGS_2__END_RCVD_40 0x00020000L
+#define CP_NV_FLAGS_2__DISCARD_41_MASK 0x00040000L
+#define CP_NV_FLAGS_2__DISCARD_41 0x00040000L
+#define CP_NV_FLAGS_2__END_RCVD_41_MASK 0x00080000L
+#define CP_NV_FLAGS_2__END_RCVD_41 0x00080000L
+#define CP_NV_FLAGS_2__DISCARD_42_MASK 0x00100000L
+#define CP_NV_FLAGS_2__DISCARD_42 0x00100000L
+#define CP_NV_FLAGS_2__END_RCVD_42_MASK 0x00200000L
+#define CP_NV_FLAGS_2__END_RCVD_42 0x00200000L
+#define CP_NV_FLAGS_2__DISCARD_43_MASK 0x00400000L
+#define CP_NV_FLAGS_2__DISCARD_43 0x00400000L
+#define CP_NV_FLAGS_2__END_RCVD_43_MASK 0x00800000L
+#define CP_NV_FLAGS_2__END_RCVD_43 0x00800000L
+#define CP_NV_FLAGS_2__DISCARD_44_MASK 0x01000000L
+#define CP_NV_FLAGS_2__DISCARD_44 0x01000000L
+#define CP_NV_FLAGS_2__END_RCVD_44_MASK 0x02000000L
+#define CP_NV_FLAGS_2__END_RCVD_44 0x02000000L
+#define CP_NV_FLAGS_2__DISCARD_45_MASK 0x04000000L
+#define CP_NV_FLAGS_2__DISCARD_45 0x04000000L
+#define CP_NV_FLAGS_2__END_RCVD_45_MASK 0x08000000L
+#define CP_NV_FLAGS_2__END_RCVD_45 0x08000000L
+#define CP_NV_FLAGS_2__DISCARD_46_MASK 0x10000000L
+#define CP_NV_FLAGS_2__DISCARD_46 0x10000000L
+#define CP_NV_FLAGS_2__END_RCVD_46_MASK 0x20000000L
+#define CP_NV_FLAGS_2__END_RCVD_46 0x20000000L
+#define CP_NV_FLAGS_2__DISCARD_47_MASK 0x40000000L
+#define CP_NV_FLAGS_2__DISCARD_47 0x40000000L
+#define CP_NV_FLAGS_2__END_RCVD_47_MASK 0x80000000L
+#define CP_NV_FLAGS_2__END_RCVD_47 0x80000000L
+
+// CP_NV_FLAGS_3
+#define CP_NV_FLAGS_3__DISCARD_48_MASK 0x00000001L
+#define CP_NV_FLAGS_3__DISCARD_48 0x00000001L
+#define CP_NV_FLAGS_3__END_RCVD_48_MASK 0x00000002L
+#define CP_NV_FLAGS_3__END_RCVD_48 0x00000002L
+#define CP_NV_FLAGS_3__DISCARD_49_MASK 0x00000004L
+#define CP_NV_FLAGS_3__DISCARD_49 0x00000004L
+#define CP_NV_FLAGS_3__END_RCVD_49_MASK 0x00000008L
+#define CP_NV_FLAGS_3__END_RCVD_49 0x00000008L
+#define CP_NV_FLAGS_3__DISCARD_50_MASK 0x00000010L
+#define CP_NV_FLAGS_3__DISCARD_50 0x00000010L
+#define CP_NV_FLAGS_3__END_RCVD_50_MASK 0x00000020L
+#define CP_NV_FLAGS_3__END_RCVD_50 0x00000020L
+#define CP_NV_FLAGS_3__DISCARD_51_MASK 0x00000040L
+#define CP_NV_FLAGS_3__DISCARD_51 0x00000040L
+#define CP_NV_FLAGS_3__END_RCVD_51_MASK 0x00000080L
+#define CP_NV_FLAGS_3__END_RCVD_51 0x00000080L
+#define CP_NV_FLAGS_3__DISCARD_52_MASK 0x00000100L
+#define CP_NV_FLAGS_3__DISCARD_52 0x00000100L
+#define CP_NV_FLAGS_3__END_RCVD_52_MASK 0x00000200L
+#define CP_NV_FLAGS_3__END_RCVD_52 0x00000200L
+#define CP_NV_FLAGS_3__DISCARD_53_MASK 0x00000400L
+#define CP_NV_FLAGS_3__DISCARD_53 0x00000400L
+#define CP_NV_FLAGS_3__END_RCVD_53_MASK 0x00000800L
+#define CP_NV_FLAGS_3__END_RCVD_53 0x00000800L
+#define CP_NV_FLAGS_3__DISCARD_54_MASK 0x00001000L
+#define CP_NV_FLAGS_3__DISCARD_54 0x00001000L
+#define CP_NV_FLAGS_3__END_RCVD_54_MASK 0x00002000L
+#define CP_NV_FLAGS_3__END_RCVD_54 0x00002000L
+#define CP_NV_FLAGS_3__DISCARD_55_MASK 0x00004000L
+#define CP_NV_FLAGS_3__DISCARD_55 0x00004000L
+#define CP_NV_FLAGS_3__END_RCVD_55_MASK 0x00008000L
+#define CP_NV_FLAGS_3__END_RCVD_55 0x00008000L
+#define CP_NV_FLAGS_3__DISCARD_56_MASK 0x00010000L
+#define CP_NV_FLAGS_3__DISCARD_56 0x00010000L
+#define CP_NV_FLAGS_3__END_RCVD_56_MASK 0x00020000L
+#define CP_NV_FLAGS_3__END_RCVD_56 0x00020000L
+#define CP_NV_FLAGS_3__DISCARD_57_MASK 0x00040000L
+#define CP_NV_FLAGS_3__DISCARD_57 0x00040000L
+#define CP_NV_FLAGS_3__END_RCVD_57_MASK 0x00080000L
+#define CP_NV_FLAGS_3__END_RCVD_57 0x00080000L
+#define CP_NV_FLAGS_3__DISCARD_58_MASK 0x00100000L
+#define CP_NV_FLAGS_3__DISCARD_58 0x00100000L
+#define CP_NV_FLAGS_3__END_RCVD_58_MASK 0x00200000L
+#define CP_NV_FLAGS_3__END_RCVD_58 0x00200000L
+#define CP_NV_FLAGS_3__DISCARD_59_MASK 0x00400000L
+#define CP_NV_FLAGS_3__DISCARD_59 0x00400000L
+#define CP_NV_FLAGS_3__END_RCVD_59_MASK 0x00800000L
+#define CP_NV_FLAGS_3__END_RCVD_59 0x00800000L
+#define CP_NV_FLAGS_3__DISCARD_60_MASK 0x01000000L
+#define CP_NV_FLAGS_3__DISCARD_60 0x01000000L
+#define CP_NV_FLAGS_3__END_RCVD_60_MASK 0x02000000L
+#define CP_NV_FLAGS_3__END_RCVD_60 0x02000000L
+#define CP_NV_FLAGS_3__DISCARD_61_MASK 0x04000000L
+#define CP_NV_FLAGS_3__DISCARD_61 0x04000000L
+#define CP_NV_FLAGS_3__END_RCVD_61_MASK 0x08000000L
+#define CP_NV_FLAGS_3__END_RCVD_61 0x08000000L
+#define CP_NV_FLAGS_3__DISCARD_62_MASK 0x10000000L
+#define CP_NV_FLAGS_3__DISCARD_62 0x10000000L
+#define CP_NV_FLAGS_3__END_RCVD_62_MASK 0x20000000L
+#define CP_NV_FLAGS_3__END_RCVD_62 0x20000000L
+#define CP_NV_FLAGS_3__DISCARD_63_MASK 0x40000000L
+#define CP_NV_FLAGS_3__DISCARD_63 0x40000000L
+#define CP_NV_FLAGS_3__END_RCVD_63_MASK 0x80000000L
+#define CP_NV_FLAGS_3__END_RCVD_63 0x80000000L
+
+// CP_STATE_DEBUG_INDEX
+#define CP_STATE_DEBUG_INDEX__STATE_DEBUG_INDEX_MASK 0x0000001fL
+
+// CP_STATE_DEBUG_DATA
+#define CP_STATE_DEBUG_DATA__STATE_DEBUG_DATA_MASK 0xffffffffL
+
+// CP_PROG_COUNTER
+#define CP_PROG_COUNTER__COUNTER_MASK 0xffffffffL
+
+// CP_STAT
+#define CP_STAT__MIU_WR_BUSY_MASK 0x00000001L
+#define CP_STAT__MIU_WR_BUSY 0x00000001L
+#define CP_STAT__MIU_RD_REQ_BUSY_MASK 0x00000002L
+#define CP_STAT__MIU_RD_REQ_BUSY 0x00000002L
+#define CP_STAT__MIU_RD_RETURN_BUSY_MASK 0x00000004L
+#define CP_STAT__MIU_RD_RETURN_BUSY 0x00000004L
+#define CP_STAT__RBIU_BUSY_MASK 0x00000008L
+#define CP_STAT__RBIU_BUSY 0x00000008L
+#define CP_STAT__RCIU_BUSY_MASK 0x00000010L
+#define CP_STAT__RCIU_BUSY 0x00000010L
+#define CP_STAT__CSF_RING_BUSY_MASK 0x00000020L
+#define CP_STAT__CSF_RING_BUSY 0x00000020L
+#define CP_STAT__CSF_INDIRECTS_BUSY_MASK 0x00000040L
+#define CP_STAT__CSF_INDIRECTS_BUSY 0x00000040L
+#define CP_STAT__CSF_INDIRECT2_BUSY_MASK 0x00000080L
+#define CP_STAT__CSF_INDIRECT2_BUSY 0x00000080L
+#define CP_STAT__CSF_ST_BUSY_MASK 0x00000200L
+#define CP_STAT__CSF_ST_BUSY 0x00000200L
+#define CP_STAT__CSF_BUSY_MASK 0x00000400L
+#define CP_STAT__CSF_BUSY 0x00000400L
+#define CP_STAT__RING_QUEUE_BUSY_MASK 0x00000800L
+#define CP_STAT__RING_QUEUE_BUSY 0x00000800L
+#define CP_STAT__INDIRECTS_QUEUE_BUSY_MASK 0x00001000L
+#define CP_STAT__INDIRECTS_QUEUE_BUSY 0x00001000L
+#define CP_STAT__INDIRECT2_QUEUE_BUSY_MASK 0x00002000L
+#define CP_STAT__INDIRECT2_QUEUE_BUSY 0x00002000L
+#define CP_STAT__ST_QUEUE_BUSY_MASK 0x00010000L
+#define CP_STAT__ST_QUEUE_BUSY 0x00010000L
+#define CP_STAT__PFP_BUSY_MASK 0x00020000L
+#define CP_STAT__PFP_BUSY 0x00020000L
+#define CP_STAT__MEQ_RING_BUSY_MASK 0x00040000L
+#define CP_STAT__MEQ_RING_BUSY 0x00040000L
+#define CP_STAT__MEQ_INDIRECTS_BUSY_MASK 0x00080000L
+#define CP_STAT__MEQ_INDIRECTS_BUSY 0x00080000L
+#define CP_STAT__MEQ_INDIRECT2_BUSY_MASK 0x00100000L
+#define CP_STAT__MEQ_INDIRECT2_BUSY 0x00100000L
+#define CP_STAT__MIU_WC_STALL_MASK 0x00200000L
+#define CP_STAT__MIU_WC_STALL 0x00200000L
+#define CP_STAT__CP_NRT_BUSY_MASK 0x00400000L
+#define CP_STAT__CP_NRT_BUSY 0x00400000L
+#define CP_STAT___3D_BUSY_MASK 0x00800000L
+#define CP_STAT___3D_BUSY 0x00800000L
+#define CP_STAT__ME_BUSY_MASK 0x04000000L
+#define CP_STAT__ME_BUSY 0x04000000L
+#define CP_STAT__ME_WC_BUSY_MASK 0x20000000L
+#define CP_STAT__ME_WC_BUSY 0x20000000L
+#define CP_STAT__MIU_WC_TRACK_FIFO_EMPTY_MASK 0x40000000L
+#define CP_STAT__MIU_WC_TRACK_FIFO_EMPTY 0x40000000L
+#define CP_STAT__CP_BUSY_MASK 0x80000000L
+#define CP_STAT__CP_BUSY 0x80000000L
+
+// BIOS_0_SCRATCH
+#define BIOS_0_SCRATCH__BIOS_SCRATCH_MASK 0xffffffffL
+
+// BIOS_1_SCRATCH
+#define BIOS_1_SCRATCH__BIOS_SCRATCH_MASK 0xffffffffL
+
+// BIOS_2_SCRATCH
+#define BIOS_2_SCRATCH__BIOS_SCRATCH_MASK 0xffffffffL
+
+// BIOS_3_SCRATCH
+#define BIOS_3_SCRATCH__BIOS_SCRATCH_MASK 0xffffffffL
+
+// BIOS_4_SCRATCH
+#define BIOS_4_SCRATCH__BIOS_SCRATCH_MASK 0xffffffffL
+
+// BIOS_5_SCRATCH
+#define BIOS_5_SCRATCH__BIOS_SCRATCH_MASK 0xffffffffL
+
+// BIOS_6_SCRATCH
+#define BIOS_6_SCRATCH__BIOS_SCRATCH_MASK 0xffffffffL
+
+// BIOS_7_SCRATCH
+#define BIOS_7_SCRATCH__BIOS_SCRATCH_MASK 0xffffffffL
+
+// BIOS_8_SCRATCH
+#define BIOS_8_SCRATCH__BIOS_SCRATCH_MASK 0xffffffffL
+
+// BIOS_9_SCRATCH
+#define BIOS_9_SCRATCH__BIOS_SCRATCH_MASK 0xffffffffL
+
+// BIOS_10_SCRATCH
+#define BIOS_10_SCRATCH__BIOS_SCRATCH_MASK 0xffffffffL
+
+// BIOS_11_SCRATCH
+#define BIOS_11_SCRATCH__BIOS_SCRATCH_MASK 0xffffffffL
+
+// BIOS_12_SCRATCH
+#define BIOS_12_SCRATCH__BIOS_SCRATCH_MASK 0xffffffffL
+
+// BIOS_13_SCRATCH
+#define BIOS_13_SCRATCH__BIOS_SCRATCH_MASK 0xffffffffL
+
+// BIOS_14_SCRATCH
+#define BIOS_14_SCRATCH__BIOS_SCRATCH_MASK 0xffffffffL
+
+// BIOS_15_SCRATCH
+#define BIOS_15_SCRATCH__BIOS_SCRATCH_MASK 0xffffffffL
+
+// COHER_SIZE_PM4
+#define COHER_SIZE_PM4__SIZE_MASK 0xffffffffL
+
+// COHER_BASE_PM4
+#define COHER_BASE_PM4__BASE_MASK 0xffffffffL
+
+// COHER_STATUS_PM4
+#define COHER_STATUS_PM4__MATCHING_CONTEXTS_MASK 0x000000ffL
+#define COHER_STATUS_PM4__RB_COPY_DEST_BASE_ENA_MASK 0x00000100L
+#define COHER_STATUS_PM4__RB_COPY_DEST_BASE_ENA 0x00000100L
+#define COHER_STATUS_PM4__DEST_BASE_0_ENA_MASK 0x00000200L
+#define COHER_STATUS_PM4__DEST_BASE_0_ENA 0x00000200L
+#define COHER_STATUS_PM4__DEST_BASE_1_ENA_MASK 0x00000400L
+#define COHER_STATUS_PM4__DEST_BASE_1_ENA 0x00000400L
+#define COHER_STATUS_PM4__DEST_BASE_2_ENA_MASK 0x00000800L
+#define COHER_STATUS_PM4__DEST_BASE_2_ENA 0x00000800L
+#define COHER_STATUS_PM4__DEST_BASE_3_ENA_MASK 0x00001000L
+#define COHER_STATUS_PM4__DEST_BASE_3_ENA 0x00001000L
+#define COHER_STATUS_PM4__DEST_BASE_4_ENA_MASK 0x00002000L
+#define COHER_STATUS_PM4__DEST_BASE_4_ENA 0x00002000L
+#define COHER_STATUS_PM4__DEST_BASE_5_ENA_MASK 0x00004000L
+#define COHER_STATUS_PM4__DEST_BASE_5_ENA 0x00004000L
+#define COHER_STATUS_PM4__DEST_BASE_6_ENA_MASK 0x00008000L
+#define COHER_STATUS_PM4__DEST_BASE_6_ENA 0x00008000L
+#define COHER_STATUS_PM4__DEST_BASE_7_ENA_MASK 0x00010000L
+#define COHER_STATUS_PM4__DEST_BASE_7_ENA 0x00010000L
+#define COHER_STATUS_PM4__RB_COLOR_INFO_ENA_MASK 0x00020000L
+#define COHER_STATUS_PM4__RB_COLOR_INFO_ENA 0x00020000L
+#define COHER_STATUS_PM4__TC_ACTION_ENA_MASK 0x02000000L
+#define COHER_STATUS_PM4__TC_ACTION_ENA 0x02000000L
+#define COHER_STATUS_PM4__STATUS_MASK 0x80000000L
+#define COHER_STATUS_PM4__STATUS 0x80000000L
+
+// COHER_SIZE_HOST
+#define COHER_SIZE_HOST__SIZE_MASK 0xffffffffL
+
+// COHER_BASE_HOST
+#define COHER_BASE_HOST__BASE_MASK 0xffffffffL
+
+// COHER_STATUS_HOST
+#define COHER_STATUS_HOST__MATCHING_CONTEXTS_MASK 0x000000ffL
+#define COHER_STATUS_HOST__RB_COPY_DEST_BASE_ENA_MASK 0x00000100L
+#define COHER_STATUS_HOST__RB_COPY_DEST_BASE_ENA 0x00000100L
+#define COHER_STATUS_HOST__DEST_BASE_0_ENA_MASK 0x00000200L
+#define COHER_STATUS_HOST__DEST_BASE_0_ENA 0x00000200L
+#define COHER_STATUS_HOST__DEST_BASE_1_ENA_MASK 0x00000400L
+#define COHER_STATUS_HOST__DEST_BASE_1_ENA 0x00000400L
+#define COHER_STATUS_HOST__DEST_BASE_2_ENA_MASK 0x00000800L
+#define COHER_STATUS_HOST__DEST_BASE_2_ENA 0x00000800L
+#define COHER_STATUS_HOST__DEST_BASE_3_ENA_MASK 0x00001000L
+#define COHER_STATUS_HOST__DEST_BASE_3_ENA 0x00001000L
+#define COHER_STATUS_HOST__DEST_BASE_4_ENA_MASK 0x00002000L
+#define COHER_STATUS_HOST__DEST_BASE_4_ENA 0x00002000L
+#define COHER_STATUS_HOST__DEST_BASE_5_ENA_MASK 0x00004000L
+#define COHER_STATUS_HOST__DEST_BASE_5_ENA 0x00004000L
+#define COHER_STATUS_HOST__DEST_BASE_6_ENA_MASK 0x00008000L
+#define COHER_STATUS_HOST__DEST_BASE_6_ENA 0x00008000L
+#define COHER_STATUS_HOST__DEST_BASE_7_ENA_MASK 0x00010000L
+#define COHER_STATUS_HOST__DEST_BASE_7_ENA 0x00010000L
+#define COHER_STATUS_HOST__RB_COLOR_INFO_ENA_MASK 0x00020000L
+#define COHER_STATUS_HOST__RB_COLOR_INFO_ENA 0x00020000L
+#define COHER_STATUS_HOST__TC_ACTION_ENA_MASK 0x02000000L
+#define COHER_STATUS_HOST__TC_ACTION_ENA 0x02000000L
+#define COHER_STATUS_HOST__STATUS_MASK 0x80000000L
+#define COHER_STATUS_HOST__STATUS 0x80000000L
+
+// COHER_DEST_BASE_0
+#define COHER_DEST_BASE_0__DEST_BASE_0_MASK 0xfffff000L
+
+// COHER_DEST_BASE_1
+#define COHER_DEST_BASE_1__DEST_BASE_1_MASK 0xfffff000L
+
+// COHER_DEST_BASE_2
+#define COHER_DEST_BASE_2__DEST_BASE_2_MASK 0xfffff000L
+
+// COHER_DEST_BASE_3
+#define COHER_DEST_BASE_3__DEST_BASE_3_MASK 0xfffff000L
+
+// COHER_DEST_BASE_4
+#define COHER_DEST_BASE_4__DEST_BASE_4_MASK 0xfffff000L
+
+// COHER_DEST_BASE_5
+#define COHER_DEST_BASE_5__DEST_BASE_5_MASK 0xfffff000L
+
+// COHER_DEST_BASE_6
+#define COHER_DEST_BASE_6__DEST_BASE_6_MASK 0xfffff000L
+
+// COHER_DEST_BASE_7
+#define COHER_DEST_BASE_7__DEST_BASE_7_MASK 0xfffff000L
+
+// RB_SURFACE_INFO
+#define RB_SURFACE_INFO__SURFACE_PITCH_MASK 0x00003fffL
+#define RB_SURFACE_INFO__MSAA_SAMPLES_MASK 0x0000c000L
+
+// RB_COLOR_INFO
+#define RB_COLOR_INFO__COLOR_FORMAT_MASK 0x0000000fL
+#define RB_COLOR_INFO__COLOR_ROUND_MODE_MASK 0x00000030L
+#define RB_COLOR_INFO__COLOR_LINEAR_MASK 0x00000040L
+#define RB_COLOR_INFO__COLOR_LINEAR 0x00000040L
+#define RB_COLOR_INFO__COLOR_ENDIAN_MASK 0x00000180L
+#define RB_COLOR_INFO__COLOR_SWAP_MASK 0x00000600L
+#define RB_COLOR_INFO__COLOR_BASE_MASK 0xfffff000L
+
+// RB_DEPTH_INFO
+#define RB_DEPTH_INFO__DEPTH_FORMAT_MASK 0x00000001L
+#define RB_DEPTH_INFO__DEPTH_FORMAT 0x00000001L
+#define RB_DEPTH_INFO__DEPTH_BASE_MASK 0xfffff000L
+
+// RB_STENCILREFMASK
+#define RB_STENCILREFMASK__STENCILREF_MASK 0x000000ffL
+#define RB_STENCILREFMASK__STENCILMASK_MASK 0x0000ff00L
+#define RB_STENCILREFMASK__STENCILWRITEMASK_MASK 0x00ff0000L
+#define RB_STENCILREFMASK__RESERVED0_MASK 0x01000000L
+#define RB_STENCILREFMASK__RESERVED0 0x01000000L
+#define RB_STENCILREFMASK__RESERVED1_MASK 0x02000000L
+#define RB_STENCILREFMASK__RESERVED1 0x02000000L
+
+// RB_ALPHA_REF
+#define RB_ALPHA_REF__ALPHA_REF_MASK 0xffffffffL
+
+// RB_COLOR_MASK
+#define RB_COLOR_MASK__WRITE_RED_MASK 0x00000001L
+#define RB_COLOR_MASK__WRITE_RED 0x00000001L
+#define RB_COLOR_MASK__WRITE_GREEN_MASK 0x00000002L
+#define RB_COLOR_MASK__WRITE_GREEN 0x00000002L
+#define RB_COLOR_MASK__WRITE_BLUE_MASK 0x00000004L
+#define RB_COLOR_MASK__WRITE_BLUE 0x00000004L
+#define RB_COLOR_MASK__WRITE_ALPHA_MASK 0x00000008L
+#define RB_COLOR_MASK__WRITE_ALPHA 0x00000008L
+#define RB_COLOR_MASK__RESERVED2_MASK 0x00000010L
+#define RB_COLOR_MASK__RESERVED2 0x00000010L
+#define RB_COLOR_MASK__RESERVED3_MASK 0x00000020L
+#define RB_COLOR_MASK__RESERVED3 0x00000020L
+
+// RB_BLEND_RED
+#define RB_BLEND_RED__BLEND_RED_MASK 0x000000ffL
+
+// RB_BLEND_GREEN
+#define RB_BLEND_GREEN__BLEND_GREEN_MASK 0x000000ffL
+
+// RB_BLEND_BLUE
+#define RB_BLEND_BLUE__BLEND_BLUE_MASK 0x000000ffL
+
+// RB_BLEND_ALPHA
+#define RB_BLEND_ALPHA__BLEND_ALPHA_MASK 0x000000ffL
+
+// RB_FOG_COLOR
+#define RB_FOG_COLOR__FOG_RED_MASK 0x000000ffL
+#define RB_FOG_COLOR__FOG_GREEN_MASK 0x0000ff00L
+#define RB_FOG_COLOR__FOG_BLUE_MASK 0x00ff0000L
+
+// RB_STENCILREFMASK_BF
+#define RB_STENCILREFMASK_BF__STENCILREF_BF_MASK 0x000000ffL
+#define RB_STENCILREFMASK_BF__STENCILMASK_BF_MASK 0x0000ff00L
+#define RB_STENCILREFMASK_BF__STENCILWRITEMASK_BF_MASK 0x00ff0000L
+#define RB_STENCILREFMASK_BF__RESERVED4_MASK 0x01000000L
+#define RB_STENCILREFMASK_BF__RESERVED4 0x01000000L
+#define RB_STENCILREFMASK_BF__RESERVED5_MASK 0x02000000L
+#define RB_STENCILREFMASK_BF__RESERVED5 0x02000000L
+
+// RB_DEPTHCONTROL
+#define RB_DEPTHCONTROL__STENCIL_ENABLE_MASK 0x00000001L
+#define RB_DEPTHCONTROL__STENCIL_ENABLE 0x00000001L
+#define RB_DEPTHCONTROL__Z_ENABLE_MASK 0x00000002L
+#define RB_DEPTHCONTROL__Z_ENABLE 0x00000002L
+#define RB_DEPTHCONTROL__Z_WRITE_ENABLE_MASK 0x00000004L
+#define RB_DEPTHCONTROL__Z_WRITE_ENABLE 0x00000004L
+#define RB_DEPTHCONTROL__EARLY_Z_ENABLE_MASK 0x00000008L
+#define RB_DEPTHCONTROL__EARLY_Z_ENABLE 0x00000008L
+#define RB_DEPTHCONTROL__ZFUNC_MASK 0x00000070L
+#define RB_DEPTHCONTROL__BACKFACE_ENABLE_MASK 0x00000080L
+#define RB_DEPTHCONTROL__BACKFACE_ENABLE 0x00000080L
+#define RB_DEPTHCONTROL__STENCILFUNC_MASK 0x00000700L
+#define RB_DEPTHCONTROL__STENCILFAIL_MASK 0x00003800L
+#define RB_DEPTHCONTROL__STENCILZPASS_MASK 0x0001c000L
+#define RB_DEPTHCONTROL__STENCILZFAIL_MASK 0x000e0000L
+#define RB_DEPTHCONTROL__STENCILFUNC_BF_MASK 0x00700000L
+#define RB_DEPTHCONTROL__STENCILFAIL_BF_MASK 0x03800000L
+#define RB_DEPTHCONTROL__STENCILZPASS_BF_MASK 0x1c000000L
+#define RB_DEPTHCONTROL__STENCILZFAIL_BF_MASK 0xe0000000L
+
+// RB_BLENDCONTROL
+#define RB_BLENDCONTROL__COLOR_SRCBLEND_MASK 0x0000001fL
+#define RB_BLENDCONTROL__COLOR_COMB_FCN_MASK 0x000000e0L
+#define RB_BLENDCONTROL__COLOR_DESTBLEND_MASK 0x00001f00L
+#define RB_BLENDCONTROL__ALPHA_SRCBLEND_MASK 0x001f0000L
+#define RB_BLENDCONTROL__ALPHA_COMB_FCN_MASK 0x00e00000L
+#define RB_BLENDCONTROL__ALPHA_DESTBLEND_MASK 0x1f000000L
+#define RB_BLENDCONTROL__BLEND_FORCE_ENABLE_MASK 0x20000000L
+#define RB_BLENDCONTROL__BLEND_FORCE_ENABLE 0x20000000L
+#define RB_BLENDCONTROL__BLEND_FORCE_MASK 0x40000000L
+#define RB_BLENDCONTROL__BLEND_FORCE 0x40000000L
+
+// RB_COLORCONTROL
+#define RB_COLORCONTROL__ALPHA_FUNC_MASK 0x00000007L
+#define RB_COLORCONTROL__ALPHA_TEST_ENABLE_MASK 0x00000008L
+#define RB_COLORCONTROL__ALPHA_TEST_ENABLE 0x00000008L
+#define RB_COLORCONTROL__ALPHA_TO_MASK_ENABLE_MASK 0x00000010L
+#define RB_COLORCONTROL__ALPHA_TO_MASK_ENABLE 0x00000010L
+#define RB_COLORCONTROL__BLEND_DISABLE_MASK 0x00000020L
+#define RB_COLORCONTROL__BLEND_DISABLE 0x00000020L
+#define RB_COLORCONTROL__FOG_ENABLE_MASK 0x00000040L
+#define RB_COLORCONTROL__FOG_ENABLE 0x00000040L
+#define RB_COLORCONTROL__VS_EXPORTS_FOG_MASK 0x00000080L
+#define RB_COLORCONTROL__VS_EXPORTS_FOG 0x00000080L
+#define RB_COLORCONTROL__ROP_CODE_MASK 0x00000f00L
+#define RB_COLORCONTROL__DITHER_MODE_MASK 0x00003000L
+#define RB_COLORCONTROL__DITHER_TYPE_MASK 0x0000c000L
+#define RB_COLORCONTROL__PIXEL_FOG_MASK 0x00010000L
+#define RB_COLORCONTROL__PIXEL_FOG 0x00010000L
+#define RB_COLORCONTROL__ALPHA_TO_MASK_OFFSET0_MASK 0x03000000L
+#define RB_COLORCONTROL__ALPHA_TO_MASK_OFFSET1_MASK 0x0c000000L
+#define RB_COLORCONTROL__ALPHA_TO_MASK_OFFSET2_MASK 0x30000000L
+#define RB_COLORCONTROL__ALPHA_TO_MASK_OFFSET3_MASK 0xc0000000L
+
+// RB_MODECONTROL
+#define RB_MODECONTROL__EDRAM_MODE_MASK 0x00000007L
+
+// RB_COLOR_DEST_MASK
+#define RB_COLOR_DEST_MASK__COLOR_DEST_MASK_MASK 0xffffffffL
+
+// RB_COPY_CONTROL
+#define RB_COPY_CONTROL__COPY_SAMPLE_SELECT_MASK 0x00000007L
+#define RB_COPY_CONTROL__DEPTH_CLEAR_ENABLE_MASK 0x00000008L
+#define RB_COPY_CONTROL__DEPTH_CLEAR_ENABLE 0x00000008L
+#define RB_COPY_CONTROL__CLEAR_MASK_MASK 0x000000f0L
+
+// RB_COPY_DEST_BASE
+#define RB_COPY_DEST_BASE__COPY_DEST_BASE_MASK 0xfffff000L
+
+// RB_COPY_DEST_PITCH
+#define RB_COPY_DEST_PITCH__COPY_DEST_PITCH_MASK 0x000001ffL
+
+// RB_COPY_DEST_INFO
+#define RB_COPY_DEST_INFO__COPY_DEST_ENDIAN_MASK 0x00000007L
+#define RB_COPY_DEST_INFO__COPY_DEST_LINEAR_MASK 0x00000008L
+#define RB_COPY_DEST_INFO__COPY_DEST_LINEAR 0x00000008L
+#define RB_COPY_DEST_INFO__COPY_DEST_FORMAT_MASK 0x000000f0L
+#define RB_COPY_DEST_INFO__COPY_DEST_SWAP_MASK 0x00000300L
+#define RB_COPY_DEST_INFO__COPY_DEST_DITHER_MODE_MASK 0x00000c00L
+#define RB_COPY_DEST_INFO__COPY_DEST_DITHER_TYPE_MASK 0x00003000L
+#define RB_COPY_DEST_INFO__COPY_MASK_WRITE_RED_MASK 0x00004000L
+#define RB_COPY_DEST_INFO__COPY_MASK_WRITE_RED 0x00004000L
+#define RB_COPY_DEST_INFO__COPY_MASK_WRITE_GREEN_MASK 0x00008000L
+#define RB_COPY_DEST_INFO__COPY_MASK_WRITE_GREEN 0x00008000L
+#define RB_COPY_DEST_INFO__COPY_MASK_WRITE_BLUE_MASK 0x00010000L
+#define RB_COPY_DEST_INFO__COPY_MASK_WRITE_BLUE 0x00010000L
+#define RB_COPY_DEST_INFO__COPY_MASK_WRITE_ALPHA_MASK 0x00020000L
+#define RB_COPY_DEST_INFO__COPY_MASK_WRITE_ALPHA 0x00020000L
+
+// RB_COPY_DEST_PIXEL_OFFSET
+#define RB_COPY_DEST_PIXEL_OFFSET__OFFSET_X_MASK 0x00001fffL
+#define RB_COPY_DEST_PIXEL_OFFSET__OFFSET_Y_MASK 0x03ffe000L
+
+// RB_DEPTH_CLEAR
+#define RB_DEPTH_CLEAR__DEPTH_CLEAR_MASK 0xffffffffL
+
+// RB_SAMPLE_COUNT_CTL
+#define RB_SAMPLE_COUNT_CTL__RESET_SAMPLE_COUNT_MASK 0x00000001L
+#define RB_SAMPLE_COUNT_CTL__RESET_SAMPLE_COUNT 0x00000001L
+#define RB_SAMPLE_COUNT_CTL__COPY_SAMPLE_COUNT_MASK 0x00000002L
+#define RB_SAMPLE_COUNT_CTL__COPY_SAMPLE_COUNT 0x00000002L
+
+// RB_SAMPLE_COUNT_ADDR
+#define RB_SAMPLE_COUNT_ADDR__SAMPLE_COUNT_ADDR_MASK 0xffffffffL
+
+// RB_BC_CONTROL
+#define RB_BC_CONTROL__ACCUM_LINEAR_MODE_ENABLE_MASK 0x00000001L
+#define RB_BC_CONTROL__ACCUM_LINEAR_MODE_ENABLE 0x00000001L
+#define RB_BC_CONTROL__ACCUM_TIMEOUT_SELECT_MASK 0x00000006L
+#define RB_BC_CONTROL__DISABLE_EDRAM_CAM_MASK 0x00000008L
+#define RB_BC_CONTROL__DISABLE_EDRAM_CAM 0x00000008L
+#define RB_BC_CONTROL__DISABLE_EZ_FAST_CONTEXT_SWITCH_MASK 0x00000010L
+#define RB_BC_CONTROL__DISABLE_EZ_FAST_CONTEXT_SWITCH 0x00000010L
+#define RB_BC_CONTROL__DISABLE_EZ_NULL_ZCMD_DROP_MASK 0x00000020L
+#define RB_BC_CONTROL__DISABLE_EZ_NULL_ZCMD_DROP 0x00000020L
+#define RB_BC_CONTROL__DISABLE_LZ_NULL_ZCMD_DROP_MASK 0x00000040L
+#define RB_BC_CONTROL__DISABLE_LZ_NULL_ZCMD_DROP 0x00000040L
+#define RB_BC_CONTROL__ENABLE_AZ_THROTTLE_MASK 0x00000080L
+#define RB_BC_CONTROL__ENABLE_AZ_THROTTLE 0x00000080L
+#define RB_BC_CONTROL__AZ_THROTTLE_COUNT_MASK 0x00001f00L
+#define RB_BC_CONTROL__ENABLE_CRC_UPDATE_MASK 0x00004000L
+#define RB_BC_CONTROL__ENABLE_CRC_UPDATE 0x00004000L
+#define RB_BC_CONTROL__CRC_MODE_MASK 0x00008000L
+#define RB_BC_CONTROL__CRC_MODE 0x00008000L
+#define RB_BC_CONTROL__DISABLE_SAMPLE_COUNTERS_MASK 0x00010000L
+#define RB_BC_CONTROL__DISABLE_SAMPLE_COUNTERS 0x00010000L
+#define RB_BC_CONTROL__DISABLE_ACCUM_MASK 0x00020000L
+#define RB_BC_CONTROL__DISABLE_ACCUM 0x00020000L
+#define RB_BC_CONTROL__ACCUM_ALLOC_MASK_MASK 0x003c0000L
+#define RB_BC_CONTROL__LINEAR_PERFORMANCE_ENABLE_MASK 0x00400000L
+#define RB_BC_CONTROL__LINEAR_PERFORMANCE_ENABLE 0x00400000L
+#define RB_BC_CONTROL__ACCUM_DATA_FIFO_LIMIT_MASK 0x07800000L
+#define RB_BC_CONTROL__MEM_EXPORT_TIMEOUT_SELECT_MASK 0x18000000L
+#define RB_BC_CONTROL__MEM_EXPORT_LINEAR_MODE_ENABLE_MASK 0x20000000L
+#define RB_BC_CONTROL__MEM_EXPORT_LINEAR_MODE_ENABLE 0x20000000L
+#define RB_BC_CONTROL__CRC_SYSTEM_MASK 0x40000000L
+#define RB_BC_CONTROL__CRC_SYSTEM 0x40000000L
+#define RB_BC_CONTROL__RESERVED6_MASK 0x80000000L
+#define RB_BC_CONTROL__RESERVED6 0x80000000L
+
+// RB_EDRAM_INFO
+#define RB_EDRAM_INFO__EDRAM_SIZE_MASK 0x0000000fL
+#define RB_EDRAM_INFO__EDRAM_MAPPING_MODE_MASK 0x00000030L
+#define RB_EDRAM_INFO__EDRAM_RANGE_MASK 0xffffc000L
+
+// RB_CRC_RD_PORT
+#define RB_CRC_RD_PORT__CRC_DATA_MASK 0xffffffffL
+
+// RB_CRC_CONTROL
+#define RB_CRC_CONTROL__CRC_RD_ADVANCE_MASK 0x00000001L
+#define RB_CRC_CONTROL__CRC_RD_ADVANCE 0x00000001L
+
+// RB_CRC_MASK
+#define RB_CRC_MASK__CRC_MASK_MASK 0xffffffffL
+
+// RB_PERFCOUNTER0_SELECT
+#define RB_PERFCOUNTER0_SELECT__PERF_SEL_MASK 0x000000ffL
+
+// RB_PERFCOUNTER0_LOW
+#define RB_PERFCOUNTER0_LOW__PERF_COUNT_MASK 0xffffffffL
+
+// RB_PERFCOUNTER0_HI
+#define RB_PERFCOUNTER0_HI__PERF_COUNT_MASK 0x0000ffffL
+
+// RB_TOTAL_SAMPLES
+#define RB_TOTAL_SAMPLES__TOTAL_SAMPLES_MASK 0xffffffffL
+
+// RB_ZPASS_SAMPLES
+#define RB_ZPASS_SAMPLES__ZPASS_SAMPLES_MASK 0xffffffffL
+
+// RB_ZFAIL_SAMPLES
+#define RB_ZFAIL_SAMPLES__ZFAIL_SAMPLES_MASK 0xffffffffL
+
+// RB_SFAIL_SAMPLES
+#define RB_SFAIL_SAMPLES__SFAIL_SAMPLES_MASK 0xffffffffL
+
+// RB_DEBUG_0
+#define RB_DEBUG_0__RDREQ_CTL_Z1_PRE_FULL_MASK 0x00000001L
+#define RB_DEBUG_0__RDREQ_CTL_Z1_PRE_FULL 0x00000001L
+#define RB_DEBUG_0__RDREQ_CTL_Z0_PRE_FULL_MASK 0x00000002L
+#define RB_DEBUG_0__RDREQ_CTL_Z0_PRE_FULL 0x00000002L
+#define RB_DEBUG_0__RDREQ_CTL_C1_PRE_FULL_MASK 0x00000004L
+#define RB_DEBUG_0__RDREQ_CTL_C1_PRE_FULL 0x00000004L
+#define RB_DEBUG_0__RDREQ_CTL_C0_PRE_FULL_MASK 0x00000008L
+#define RB_DEBUG_0__RDREQ_CTL_C0_PRE_FULL 0x00000008L
+#define RB_DEBUG_0__RDREQ_E1_ORDERING_FULL_MASK 0x00000010L
+#define RB_DEBUG_0__RDREQ_E1_ORDERING_FULL 0x00000010L
+#define RB_DEBUG_0__RDREQ_E0_ORDERING_FULL_MASK 0x00000020L
+#define RB_DEBUG_0__RDREQ_E0_ORDERING_FULL 0x00000020L
+#define RB_DEBUG_0__RDREQ_Z1_FULL_MASK 0x00000040L
+#define RB_DEBUG_0__RDREQ_Z1_FULL 0x00000040L
+#define RB_DEBUG_0__RDREQ_Z0_FULL_MASK 0x00000080L
+#define RB_DEBUG_0__RDREQ_Z0_FULL 0x00000080L
+#define RB_DEBUG_0__RDREQ_C1_FULL_MASK 0x00000100L
+#define RB_DEBUG_0__RDREQ_C1_FULL 0x00000100L
+#define RB_DEBUG_0__RDREQ_C0_FULL_MASK 0x00000200L
+#define RB_DEBUG_0__RDREQ_C0_FULL 0x00000200L
+#define RB_DEBUG_0__WRREQ_E1_MACRO_HI_FULL_MASK 0x00000400L
+#define RB_DEBUG_0__WRREQ_E1_MACRO_HI_FULL 0x00000400L
+#define RB_DEBUG_0__WRREQ_E1_MACRO_LO_FULL_MASK 0x00000800L
+#define RB_DEBUG_0__WRREQ_E1_MACRO_LO_FULL 0x00000800L
+#define RB_DEBUG_0__WRREQ_E0_MACRO_HI_FULL_MASK 0x00001000L
+#define RB_DEBUG_0__WRREQ_E0_MACRO_HI_FULL 0x00001000L
+#define RB_DEBUG_0__WRREQ_E0_MACRO_LO_FULL_MASK 0x00002000L
+#define RB_DEBUG_0__WRREQ_E0_MACRO_LO_FULL 0x00002000L
+#define RB_DEBUG_0__WRREQ_C_WE_HI_FULL_MASK 0x00004000L
+#define RB_DEBUG_0__WRREQ_C_WE_HI_FULL 0x00004000L
+#define RB_DEBUG_0__WRREQ_C_WE_LO_FULL_MASK 0x00008000L
+#define RB_DEBUG_0__WRREQ_C_WE_LO_FULL 0x00008000L
+#define RB_DEBUG_0__WRREQ_Z1_FULL_MASK 0x00010000L
+#define RB_DEBUG_0__WRREQ_Z1_FULL 0x00010000L
+#define RB_DEBUG_0__WRREQ_Z0_FULL_MASK 0x00020000L
+#define RB_DEBUG_0__WRREQ_Z0_FULL 0x00020000L
+#define RB_DEBUG_0__WRREQ_C1_FULL_MASK 0x00040000L
+#define RB_DEBUG_0__WRREQ_C1_FULL 0x00040000L
+#define RB_DEBUG_0__WRREQ_C0_FULL_MASK 0x00080000L
+#define RB_DEBUG_0__WRREQ_C0_FULL 0x00080000L
+#define RB_DEBUG_0__CMDFIFO_Z1_HOLD_FULL_MASK 0x00100000L
+#define RB_DEBUG_0__CMDFIFO_Z1_HOLD_FULL 0x00100000L
+#define RB_DEBUG_0__CMDFIFO_Z0_HOLD_FULL_MASK 0x00200000L
+#define RB_DEBUG_0__CMDFIFO_Z0_HOLD_FULL 0x00200000L
+#define RB_DEBUG_0__CMDFIFO_C1_HOLD_FULL_MASK 0x00400000L
+#define RB_DEBUG_0__CMDFIFO_C1_HOLD_FULL 0x00400000L
+#define RB_DEBUG_0__CMDFIFO_C0_HOLD_FULL_MASK 0x00800000L
+#define RB_DEBUG_0__CMDFIFO_C0_HOLD_FULL 0x00800000L
+#define RB_DEBUG_0__CMDFIFO_Z_ORDERING_FULL_MASK 0x01000000L
+#define RB_DEBUG_0__CMDFIFO_Z_ORDERING_FULL 0x01000000L
+#define RB_DEBUG_0__CMDFIFO_C_ORDERING_FULL_MASK 0x02000000L
+#define RB_DEBUG_0__CMDFIFO_C_ORDERING_FULL 0x02000000L
+#define RB_DEBUG_0__C_SX_LAT_FULL_MASK 0x04000000L
+#define RB_DEBUG_0__C_SX_LAT_FULL 0x04000000L
+#define RB_DEBUG_0__C_SX_CMD_FULL_MASK 0x08000000L
+#define RB_DEBUG_0__C_SX_CMD_FULL 0x08000000L
+#define RB_DEBUG_0__C_EZ_TILE_FULL_MASK 0x10000000L
+#define RB_DEBUG_0__C_EZ_TILE_FULL 0x10000000L
+#define RB_DEBUG_0__C_REQ_FULL_MASK 0x20000000L
+#define RB_DEBUG_0__C_REQ_FULL 0x20000000L
+#define RB_DEBUG_0__C_MASK_FULL_MASK 0x40000000L
+#define RB_DEBUG_0__C_MASK_FULL 0x40000000L
+#define RB_DEBUG_0__EZ_INFSAMP_FULL_MASK 0x80000000L
+#define RB_DEBUG_0__EZ_INFSAMP_FULL 0x80000000L
+
+// RB_DEBUG_1
+#define RB_DEBUG_1__RDREQ_Z1_CMD_EMPTY_MASK 0x00000001L
+#define RB_DEBUG_1__RDREQ_Z1_CMD_EMPTY 0x00000001L
+#define RB_DEBUG_1__RDREQ_Z0_CMD_EMPTY_MASK 0x00000002L
+#define RB_DEBUG_1__RDREQ_Z0_CMD_EMPTY 0x00000002L
+#define RB_DEBUG_1__RDREQ_C1_CMD_EMPTY_MASK 0x00000004L
+#define RB_DEBUG_1__RDREQ_C1_CMD_EMPTY 0x00000004L
+#define RB_DEBUG_1__RDREQ_C0_CMD_EMPTY_MASK 0x00000008L
+#define RB_DEBUG_1__RDREQ_C0_CMD_EMPTY 0x00000008L
+#define RB_DEBUG_1__RDREQ_E1_ORDERING_EMPTY_MASK 0x00000010L
+#define RB_DEBUG_1__RDREQ_E1_ORDERING_EMPTY 0x00000010L
+#define RB_DEBUG_1__RDREQ_E0_ORDERING_EMPTY_MASK 0x00000020L
+#define RB_DEBUG_1__RDREQ_E0_ORDERING_EMPTY 0x00000020L
+#define RB_DEBUG_1__RDREQ_Z1_EMPTY_MASK 0x00000040L
+#define RB_DEBUG_1__RDREQ_Z1_EMPTY 0x00000040L
+#define RB_DEBUG_1__RDREQ_Z0_EMPTY_MASK 0x00000080L
+#define RB_DEBUG_1__RDREQ_Z0_EMPTY 0x00000080L
+#define RB_DEBUG_1__RDREQ_C1_EMPTY_MASK 0x00000100L
+#define RB_DEBUG_1__RDREQ_C1_EMPTY 0x00000100L
+#define RB_DEBUG_1__RDREQ_C0_EMPTY_MASK 0x00000200L
+#define RB_DEBUG_1__RDREQ_C0_EMPTY 0x00000200L
+#define RB_DEBUG_1__WRREQ_E1_MACRO_HI_EMPTY_MASK 0x00000400L
+#define RB_DEBUG_1__WRREQ_E1_MACRO_HI_EMPTY 0x00000400L
+#define RB_DEBUG_1__WRREQ_E1_MACRO_LO_EMPTY_MASK 0x00000800L
+#define RB_DEBUG_1__WRREQ_E1_MACRO_LO_EMPTY 0x00000800L
+#define RB_DEBUG_1__WRREQ_E0_MACRO_HI_EMPTY_MASK 0x00001000L
+#define RB_DEBUG_1__WRREQ_E0_MACRO_HI_EMPTY 0x00001000L
+#define RB_DEBUG_1__WRREQ_E0_MACRO_LO_EMPTY_MASK 0x00002000L
+#define RB_DEBUG_1__WRREQ_E0_MACRO_LO_EMPTY 0x00002000L
+#define RB_DEBUG_1__WRREQ_C_WE_HI_EMPTY_MASK 0x00004000L
+#define RB_DEBUG_1__WRREQ_C_WE_HI_EMPTY 0x00004000L
+#define RB_DEBUG_1__WRREQ_C_WE_LO_EMPTY_MASK 0x00008000L
+#define RB_DEBUG_1__WRREQ_C_WE_LO_EMPTY 0x00008000L
+#define RB_DEBUG_1__WRREQ_Z1_EMPTY_MASK 0x00010000L
+#define RB_DEBUG_1__WRREQ_Z1_EMPTY 0x00010000L
+#define RB_DEBUG_1__WRREQ_Z0_EMPTY_MASK 0x00020000L
+#define RB_DEBUG_1__WRREQ_Z0_EMPTY 0x00020000L
+#define RB_DEBUG_1__WRREQ_C1_PRE_EMPTY_MASK 0x00040000L
+#define RB_DEBUG_1__WRREQ_C1_PRE_EMPTY 0x00040000L
+#define RB_DEBUG_1__WRREQ_C0_PRE_EMPTY_MASK 0x00080000L
+#define RB_DEBUG_1__WRREQ_C0_PRE_EMPTY 0x00080000L
+#define RB_DEBUG_1__CMDFIFO_Z1_HOLD_EMPTY_MASK 0x00100000L
+#define RB_DEBUG_1__CMDFIFO_Z1_HOLD_EMPTY 0x00100000L
+#define RB_DEBUG_1__CMDFIFO_Z0_HOLD_EMPTY_MASK 0x00200000L
+#define RB_DEBUG_1__CMDFIFO_Z0_HOLD_EMPTY 0x00200000L
+#define RB_DEBUG_1__CMDFIFO_C1_HOLD_EMPTY_MASK 0x00400000L
+#define RB_DEBUG_1__CMDFIFO_C1_HOLD_EMPTY 0x00400000L
+#define RB_DEBUG_1__CMDFIFO_C0_HOLD_EMPTY_MASK 0x00800000L
+#define RB_DEBUG_1__CMDFIFO_C0_HOLD_EMPTY 0x00800000L
+#define RB_DEBUG_1__CMDFIFO_Z_ORDERING_EMPTY_MASK 0x01000000L
+#define RB_DEBUG_1__CMDFIFO_Z_ORDERING_EMPTY 0x01000000L
+#define RB_DEBUG_1__CMDFIFO_C_ORDERING_EMPTY_MASK 0x02000000L
+#define RB_DEBUG_1__CMDFIFO_C_ORDERING_EMPTY 0x02000000L
+#define RB_DEBUG_1__C_SX_LAT_EMPTY_MASK 0x04000000L
+#define RB_DEBUG_1__C_SX_LAT_EMPTY 0x04000000L
+#define RB_DEBUG_1__C_SX_CMD_EMPTY_MASK 0x08000000L
+#define RB_DEBUG_1__C_SX_CMD_EMPTY 0x08000000L
+#define RB_DEBUG_1__C_EZ_TILE_EMPTY_MASK 0x10000000L
+#define RB_DEBUG_1__C_EZ_TILE_EMPTY 0x10000000L
+#define RB_DEBUG_1__C_REQ_EMPTY_MASK 0x20000000L
+#define RB_DEBUG_1__C_REQ_EMPTY 0x20000000L
+#define RB_DEBUG_1__C_MASK_EMPTY_MASK 0x40000000L
+#define RB_DEBUG_1__C_MASK_EMPTY 0x40000000L
+#define RB_DEBUG_1__EZ_INFSAMP_EMPTY_MASK 0x80000000L
+#define RB_DEBUG_1__EZ_INFSAMP_EMPTY 0x80000000L
+
+// RB_DEBUG_2
+#define RB_DEBUG_2__TILE_FIFO_COUNT_MASK 0x0000000fL
+#define RB_DEBUG_2__SX_LAT_FIFO_COUNT_MASK 0x000007f0L
+#define RB_DEBUG_2__MEM_EXPORT_FLAG_MASK 0x00000800L
+#define RB_DEBUG_2__MEM_EXPORT_FLAG 0x00000800L
+#define RB_DEBUG_2__SYSMEM_BLEND_FLAG_MASK 0x00001000L
+#define RB_DEBUG_2__SYSMEM_BLEND_FLAG 0x00001000L
+#define RB_DEBUG_2__CURRENT_TILE_EVENT_MASK 0x00002000L
+#define RB_DEBUG_2__CURRENT_TILE_EVENT 0x00002000L
+#define RB_DEBUG_2__EZ_INFTILE_FULL_MASK 0x00004000L
+#define RB_DEBUG_2__EZ_INFTILE_FULL 0x00004000L
+#define RB_DEBUG_2__EZ_MASK_LOWER_FULL_MASK 0x00008000L
+#define RB_DEBUG_2__EZ_MASK_LOWER_FULL 0x00008000L
+#define RB_DEBUG_2__EZ_MASK_UPPER_FULL_MASK 0x00010000L
+#define RB_DEBUG_2__EZ_MASK_UPPER_FULL 0x00010000L
+#define RB_DEBUG_2__Z0_MASK_FULL_MASK 0x00020000L
+#define RB_DEBUG_2__Z0_MASK_FULL 0x00020000L
+#define RB_DEBUG_2__Z1_MASK_FULL_MASK 0x00040000L
+#define RB_DEBUG_2__Z1_MASK_FULL 0x00040000L
+#define RB_DEBUG_2__Z0_REQ_FULL_MASK 0x00080000L
+#define RB_DEBUG_2__Z0_REQ_FULL 0x00080000L
+#define RB_DEBUG_2__Z1_REQ_FULL_MASK 0x00100000L
+#define RB_DEBUG_2__Z1_REQ_FULL 0x00100000L
+#define RB_DEBUG_2__Z_SAMP_FULL_MASK 0x00200000L
+#define RB_DEBUG_2__Z_SAMP_FULL 0x00200000L
+#define RB_DEBUG_2__Z_TILE_FULL_MASK 0x00400000L
+#define RB_DEBUG_2__Z_TILE_FULL 0x00400000L
+#define RB_DEBUG_2__EZ_INFTILE_EMPTY_MASK 0x00800000L
+#define RB_DEBUG_2__EZ_INFTILE_EMPTY 0x00800000L
+#define RB_DEBUG_2__EZ_MASK_LOWER_EMPTY_MASK 0x01000000L
+#define RB_DEBUG_2__EZ_MASK_LOWER_EMPTY 0x01000000L
+#define RB_DEBUG_2__EZ_MASK_UPPER_EMPTY_MASK 0x02000000L
+#define RB_DEBUG_2__EZ_MASK_UPPER_EMPTY 0x02000000L
+#define RB_DEBUG_2__Z0_MASK_EMPTY_MASK 0x04000000L
+#define RB_DEBUG_2__Z0_MASK_EMPTY 0x04000000L
+#define RB_DEBUG_2__Z1_MASK_EMPTY_MASK 0x08000000L
+#define RB_DEBUG_2__Z1_MASK_EMPTY 0x08000000L
+#define RB_DEBUG_2__Z0_REQ_EMPTY_MASK 0x10000000L
+#define RB_DEBUG_2__Z0_REQ_EMPTY 0x10000000L
+#define RB_DEBUG_2__Z1_REQ_EMPTY_MASK 0x20000000L
+#define RB_DEBUG_2__Z1_REQ_EMPTY 0x20000000L
+#define RB_DEBUG_2__Z_SAMP_EMPTY_MASK 0x40000000L
+#define RB_DEBUG_2__Z_SAMP_EMPTY 0x40000000L
+#define RB_DEBUG_2__Z_TILE_EMPTY_MASK 0x80000000L
+#define RB_DEBUG_2__Z_TILE_EMPTY 0x80000000L
+
+// RB_DEBUG_3
+#define RB_DEBUG_3__ACCUM_VALID_MASK 0x0000000fL
+#define RB_DEBUG_3__ACCUM_FLUSHING_MASK 0x000000f0L
+#define RB_DEBUG_3__ACCUM_WRITE_CLEAN_COUNT_MASK 0x00003f00L
+#define RB_DEBUG_3__ACCUM_INPUT_REG_VALID_MASK 0x00004000L
+#define RB_DEBUG_3__ACCUM_INPUT_REG_VALID 0x00004000L
+#define RB_DEBUG_3__ACCUM_DATA_FIFO_CNT_MASK 0x00078000L
+#define RB_DEBUG_3__SHD_FULL_MASK 0x00080000L
+#define RB_DEBUG_3__SHD_FULL 0x00080000L
+#define RB_DEBUG_3__SHD_EMPTY_MASK 0x00100000L
+#define RB_DEBUG_3__SHD_EMPTY 0x00100000L
+#define RB_DEBUG_3__EZ_RETURN_LOWER_EMPTY_MASK 0x00200000L
+#define RB_DEBUG_3__EZ_RETURN_LOWER_EMPTY 0x00200000L
+#define RB_DEBUG_3__EZ_RETURN_UPPER_EMPTY_MASK 0x00400000L
+#define RB_DEBUG_3__EZ_RETURN_UPPER_EMPTY 0x00400000L
+#define RB_DEBUG_3__EZ_RETURN_LOWER_FULL_MASK 0x00800000L
+#define RB_DEBUG_3__EZ_RETURN_LOWER_FULL 0x00800000L
+#define RB_DEBUG_3__EZ_RETURN_UPPER_FULL_MASK 0x01000000L
+#define RB_DEBUG_3__EZ_RETURN_UPPER_FULL 0x01000000L
+#define RB_DEBUG_3__ZEXP_LOWER_EMPTY_MASK 0x02000000L
+#define RB_DEBUG_3__ZEXP_LOWER_EMPTY 0x02000000L
+#define RB_DEBUG_3__ZEXP_UPPER_EMPTY_MASK 0x04000000L
+#define RB_DEBUG_3__ZEXP_UPPER_EMPTY 0x04000000L
+#define RB_DEBUG_3__ZEXP_LOWER_FULL_MASK 0x08000000L
+#define RB_DEBUG_3__ZEXP_LOWER_FULL 0x08000000L
+#define RB_DEBUG_3__ZEXP_UPPER_FULL_MASK 0x10000000L
+#define RB_DEBUG_3__ZEXP_UPPER_FULL 0x10000000L
+
+// RB_DEBUG_4
+#define RB_DEBUG_4__GMEM_RD_ACCESS_FLAG_MASK 0x00000001L
+#define RB_DEBUG_4__GMEM_RD_ACCESS_FLAG 0x00000001L
+#define RB_DEBUG_4__GMEM_WR_ACCESS_FLAG_MASK 0x00000002L
+#define RB_DEBUG_4__GMEM_WR_ACCESS_FLAG 0x00000002L
+#define RB_DEBUG_4__SYSMEM_RD_ACCESS_FLAG_MASK 0x00000004L
+#define RB_DEBUG_4__SYSMEM_RD_ACCESS_FLAG 0x00000004L
+#define RB_DEBUG_4__SYSMEM_WR_ACCESS_FLAG_MASK 0x00000008L
+#define RB_DEBUG_4__SYSMEM_WR_ACCESS_FLAG 0x00000008L
+#define RB_DEBUG_4__ACCUM_DATA_FIFO_EMPTY_MASK 0x00000010L
+#define RB_DEBUG_4__ACCUM_DATA_FIFO_EMPTY 0x00000010L
+#define RB_DEBUG_4__ACCUM_ORDER_FIFO_EMPTY_MASK 0x00000020L
+#define RB_DEBUG_4__ACCUM_ORDER_FIFO_EMPTY 0x00000020L
+#define RB_DEBUG_4__ACCUM_DATA_FIFO_FULL_MASK 0x00000040L
+#define RB_DEBUG_4__ACCUM_DATA_FIFO_FULL 0x00000040L
+#define RB_DEBUG_4__ACCUM_ORDER_FIFO_FULL_MASK 0x00000080L
+#define RB_DEBUG_4__ACCUM_ORDER_FIFO_FULL 0x00000080L
+#define RB_DEBUG_4__SYSMEM_WRITE_COUNT_OVERFLOW_MASK 0x00000100L
+#define RB_DEBUG_4__SYSMEM_WRITE_COUNT_OVERFLOW 0x00000100L
+#define RB_DEBUG_4__CONTEXT_COUNT_DEBUG_MASK 0x00001e00L
+
+// RB_FLAG_CONTROL
+#define RB_FLAG_CONTROL__DEBUG_FLAG_CLEAR_MASK 0x00000001L
+#define RB_FLAG_CONTROL__DEBUG_FLAG_CLEAR 0x00000001L
+
+// RB_BC_SPARES
+#define RB_BC_SPARES__RESERVED_MASK 0xffffffffL
+
+// BC_DUMMY_CRAYRB_ENUMS
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_DEPTH_FORMAT_MASK 0x0000003fL
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_SURFACE_SWAP_MASK 0x00000040L
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_SURFACE_SWAP 0x00000040L
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_DEPTH_ARRAY_MASK 0x00000180L
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_ARRAY_MASK 0x00000600L
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_COLOR_FORMAT_MASK 0x0001f800L
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_SURFACE_NUMBER_MASK 0x000e0000L
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_SURFACE_FORMAT_MASK 0x03f00000L
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_SURFACE_TILING_MASK 0x04000000L
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_SURFACE_TILING 0x04000000L
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_SURFACE_ARRAY_MASK 0x18000000L
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_RB_COPY_DEST_INFO_NUMBER_MASK 0xe0000000L
+
+// BC_DUMMY_CRAYRB_MOREENUMS
+#define BC_DUMMY_CRAYRB_MOREENUMS__DUMMY_CRAYRB_COLORARRAYX_MASK 0x00000003L
+
+#endif
diff --git a/drivers/mxc/amd-gpu/include/reg/yamato/10/yamato_offset.h b/drivers/mxc/amd-gpu/include/reg/yamato/10/yamato_offset.h
new file mode 100644
index 000000000000..ec7c7e126612
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/reg/yamato/10/yamato_offset.h
@@ -0,0 +1,590 @@
+/* Copyright (c) 2002,2007-2009, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef _yamato_OFFSET_HEADER
+#define _yamato_OFFSET_HEADER
+
+// Registers from PA block
+
+#define mmPA_CL_VPORT_XSCALE 0x210F
+#define mmPA_CL_VPORT_XOFFSET 0x2110
+#define mmPA_CL_VPORT_YSCALE 0x2111
+#define mmPA_CL_VPORT_YOFFSET 0x2112
+#define mmPA_CL_VPORT_ZSCALE 0x2113
+#define mmPA_CL_VPORT_ZOFFSET 0x2114
+#define mmPA_CL_VTE_CNTL 0x2206
+#define mmPA_CL_CLIP_CNTL 0x2204
+#define mmPA_CL_GB_VERT_CLIP_ADJ 0x2303
+#define mmPA_CL_GB_VERT_DISC_ADJ 0x2304
+#define mmPA_CL_GB_HORZ_CLIP_ADJ 0x2305
+#define mmPA_CL_GB_HORZ_DISC_ADJ 0x2306
+#define mmPA_CL_ENHANCE 0x0C85
+#define mmPA_SC_ENHANCE 0x0CA5
+#define mmPA_SU_VTX_CNTL 0x2302
+#define mmPA_SU_POINT_SIZE 0x2280
+#define mmPA_SU_POINT_MINMAX 0x2281
+#define mmPA_SU_LINE_CNTL 0x2282
+#define mmPA_SU_FACE_DATA 0x0C86
+#define mmPA_SU_SC_MODE_CNTL 0x2205
+#define mmPA_SU_POLY_OFFSET_FRONT_SCALE 0x2380
+#define mmPA_SU_POLY_OFFSET_FRONT_OFFSET 0x2381
+#define mmPA_SU_POLY_OFFSET_BACK_SCALE 0x2382
+#define mmPA_SU_POLY_OFFSET_BACK_OFFSET 0x2383
+#define mmPA_SU_PERFCOUNTER0_SELECT 0x0C88
+#define mmPA_SU_PERFCOUNTER1_SELECT 0x0C89
+#define mmPA_SU_PERFCOUNTER2_SELECT 0x0C8A
+#define mmPA_SU_PERFCOUNTER3_SELECT 0x0C8B
+#define mmPA_SU_PERFCOUNTER0_LOW 0x0C8C
+#define mmPA_SU_PERFCOUNTER0_HI 0x0C8D
+#define mmPA_SU_PERFCOUNTER1_LOW 0x0C8E
+#define mmPA_SU_PERFCOUNTER1_HI 0x0C8F
+#define mmPA_SU_PERFCOUNTER2_LOW 0x0C90
+#define mmPA_SU_PERFCOUNTER2_HI 0x0C91
+#define mmPA_SU_PERFCOUNTER3_LOW 0x0C92
+#define mmPA_SU_PERFCOUNTER3_HI 0x0C93
+#define mmPA_SC_WINDOW_OFFSET 0x2080
+#define mmPA_SC_AA_CONFIG 0x2301
+#define mmPA_SC_AA_MASK 0x2312
+#define mmPA_SC_LINE_STIPPLE 0x2283
+#define mmPA_SC_LINE_CNTL 0x2300
+#define mmPA_SC_WINDOW_SCISSOR_TL 0x2081
+#define mmPA_SC_WINDOW_SCISSOR_BR 0x2082
+#define mmPA_SC_SCREEN_SCISSOR_TL 0x200E
+#define mmPA_SC_SCREEN_SCISSOR_BR 0x200F
+#define mmPA_SC_VIZ_QUERY 0x2293
+#define mmPA_SC_VIZ_QUERY_STATUS 0x0C44
+#define mmPA_SC_LINE_STIPPLE_STATE 0x0C40
+#define mmPA_SC_PERFCOUNTER0_SELECT 0x0C98
+#define mmPA_SC_PERFCOUNTER0_LOW 0x0C99
+#define mmPA_SC_PERFCOUNTER0_HI 0x0C9A
+#define mmPA_CL_CNTL_STATUS 0x0C84
+#define mmPA_SU_CNTL_STATUS 0x0C94
+#define mmPA_SC_CNTL_STATUS 0x0CA4
+#define mmPA_SU_DEBUG_CNTL 0x0C80
+#define mmPA_SU_DEBUG_DATA 0x0C81
+#define mmPA_SC_DEBUG_CNTL 0x0C82
+#define mmPA_SC_DEBUG_DATA 0x0C83
+
+
+// Registers from VGT block
+
+#define mmGFX_COPY_STATE 0x21F4
+#define mmVGT_DRAW_INITIATOR 0x21FC
+#define mmVGT_EVENT_INITIATOR 0x21F9
+#define mmVGT_DMA_BASE 0x21FA
+#define mmVGT_DMA_SIZE 0x21FB
+#define mmVGT_BIN_BASE 0x21FE
+#define mmVGT_BIN_SIZE 0x21FF
+#define mmVGT_CURRENT_BIN_ID_MIN 0x2207
+#define mmVGT_CURRENT_BIN_ID_MAX 0x2203
+#define mmVGT_IMMED_DATA 0x21FD
+#define mmVGT_MAX_VTX_INDX 0x2100
+#define mmVGT_MIN_VTX_INDX 0x2101
+#define mmVGT_INDX_OFFSET 0x2102
+#define mmVGT_VERTEX_REUSE_BLOCK_CNTL 0x2316
+#define mmVGT_OUT_DEALLOC_CNTL 0x2317
+#define mmVGT_MULTI_PRIM_IB_RESET_INDX 0x2103
+#define mmVGT_ENHANCE 0x2294
+#define mmVGT_VTX_VECT_EJECT_REG 0x0C2C
+#define mmVGT_LAST_COPY_STATE 0x0C30
+#define mmVGT_DEBUG_CNTL 0x0C38
+#define mmVGT_DEBUG_DATA 0x0C39
+#define mmVGT_CNTL_STATUS 0x0C3C
+#define mmVGT_CRC_SQ_DATA 0x0C3A
+#define mmVGT_CRC_SQ_CTRL 0x0C3B
+#define mmVGT_PERFCOUNTER0_SELECT 0x0C48
+#define mmVGT_PERFCOUNTER1_SELECT 0x0C49
+#define mmVGT_PERFCOUNTER2_SELECT 0x0C4A
+#define mmVGT_PERFCOUNTER3_SELECT 0x0C4B
+#define mmVGT_PERFCOUNTER0_LOW 0x0C4C
+#define mmVGT_PERFCOUNTER1_LOW 0x0C4E
+#define mmVGT_PERFCOUNTER2_LOW 0x0C50
+#define mmVGT_PERFCOUNTER3_LOW 0x0C52
+#define mmVGT_PERFCOUNTER0_HI 0x0C4D
+#define mmVGT_PERFCOUNTER1_HI 0x0C4F
+#define mmVGT_PERFCOUNTER2_HI 0x0C51
+#define mmVGT_PERFCOUNTER3_HI 0x0C53
+
+
+// Registers from TP block
+
+#define mmTC_CNTL_STATUS 0x0E00
+#define mmTCR_CHICKEN 0x0E02
+#define mmTCF_CHICKEN 0x0E03
+#define mmTCM_CHICKEN 0x0E04
+#define mmTCR_PERFCOUNTER0_SELECT 0x0E05
+#define mmTCR_PERFCOUNTER1_SELECT 0x0E08
+#define mmTCR_PERFCOUNTER0_HI 0x0E06
+#define mmTCR_PERFCOUNTER1_HI 0x0E09
+#define mmTCR_PERFCOUNTER0_LOW 0x0E07
+#define mmTCR_PERFCOUNTER1_LOW 0x0E0A
+#define mmTP_TC_CLKGATE_CNTL 0x0E17
+#define mmTPC_CNTL_STATUS 0x0E18
+#define mmTPC_DEBUG0 0x0E19
+#define mmTPC_DEBUG1 0x0E1A
+#define mmTPC_CHICKEN 0x0E1B
+#define mmTP0_CNTL_STATUS 0x0E1C
+#define mmTP0_DEBUG 0x0E1D
+#define mmTP0_CHICKEN 0x0E1E
+#define mmTP0_PERFCOUNTER0_SELECT 0x0E1F
+#define mmTP0_PERFCOUNTER0_HI 0x0E20
+#define mmTP0_PERFCOUNTER0_LOW 0x0E21
+#define mmTP0_PERFCOUNTER1_SELECT 0x0E22
+#define mmTP0_PERFCOUNTER1_HI 0x0E23
+#define mmTP0_PERFCOUNTER1_LOW 0x0E24
+#define mmTCM_PERFCOUNTER0_SELECT 0x0E54
+#define mmTCM_PERFCOUNTER1_SELECT 0x0E57
+#define mmTCM_PERFCOUNTER0_HI 0x0E55
+#define mmTCM_PERFCOUNTER1_HI 0x0E58
+#define mmTCM_PERFCOUNTER0_LOW 0x0E56
+#define mmTCM_PERFCOUNTER1_LOW 0x0E59
+#define mmTCF_PERFCOUNTER0_SELECT 0x0E5A
+#define mmTCF_PERFCOUNTER1_SELECT 0x0E5D
+#define mmTCF_PERFCOUNTER2_SELECT 0x0E60
+#define mmTCF_PERFCOUNTER3_SELECT 0x0E63
+#define mmTCF_PERFCOUNTER4_SELECT 0x0E66
+#define mmTCF_PERFCOUNTER5_SELECT 0x0E69
+#define mmTCF_PERFCOUNTER6_SELECT 0x0E6C
+#define mmTCF_PERFCOUNTER7_SELECT 0x0E6F
+#define mmTCF_PERFCOUNTER8_SELECT 0x0E72
+#define mmTCF_PERFCOUNTER9_SELECT 0x0E75
+#define mmTCF_PERFCOUNTER10_SELECT 0x0E78
+#define mmTCF_PERFCOUNTER11_SELECT 0x0E7B
+#define mmTCF_PERFCOUNTER0_HI 0x0E5B
+#define mmTCF_PERFCOUNTER1_HI 0x0E5E
+#define mmTCF_PERFCOUNTER2_HI 0x0E61
+#define mmTCF_PERFCOUNTER3_HI 0x0E64
+#define mmTCF_PERFCOUNTER4_HI 0x0E67
+#define mmTCF_PERFCOUNTER5_HI 0x0E6A
+#define mmTCF_PERFCOUNTER6_HI 0x0E6D
+#define mmTCF_PERFCOUNTER7_HI 0x0E70
+#define mmTCF_PERFCOUNTER8_HI 0x0E73
+#define mmTCF_PERFCOUNTER9_HI 0x0E76
+#define mmTCF_PERFCOUNTER10_HI 0x0E79
+#define mmTCF_PERFCOUNTER11_HI 0x0E7C
+#define mmTCF_PERFCOUNTER0_LOW 0x0E5C
+#define mmTCF_PERFCOUNTER1_LOW 0x0E5F
+#define mmTCF_PERFCOUNTER2_LOW 0x0E62
+#define mmTCF_PERFCOUNTER3_LOW 0x0E65
+#define mmTCF_PERFCOUNTER4_LOW 0x0E68
+#define mmTCF_PERFCOUNTER5_LOW 0x0E6B
+#define mmTCF_PERFCOUNTER6_LOW 0x0E6E
+#define mmTCF_PERFCOUNTER7_LOW 0x0E71
+#define mmTCF_PERFCOUNTER8_LOW 0x0E74
+#define mmTCF_PERFCOUNTER9_LOW 0x0E77
+#define mmTCF_PERFCOUNTER10_LOW 0x0E7A
+#define mmTCF_PERFCOUNTER11_LOW 0x0E7D
+#define mmTCF_DEBUG 0x0EC0
+#define mmTCA_FIFO_DEBUG 0x0EC1
+#define mmTCA_PROBE_DEBUG 0x0EC2
+#define mmTCA_TPC_DEBUG 0x0EC3
+#define mmTCB_CORE_DEBUG 0x0EC4
+#define mmTCB_TAG0_DEBUG 0x0EC5
+#define mmTCB_TAG1_DEBUG 0x0EC6
+#define mmTCB_TAG2_DEBUG 0x0EC7
+#define mmTCB_TAG3_DEBUG 0x0EC8
+#define mmTCB_FETCH_GEN_SECTOR_WALKER0_DEBUG 0x0EC9
+#define mmTCB_FETCH_GEN_WALKER_DEBUG 0x0ECB
+#define mmTCB_FETCH_GEN_PIPE0_DEBUG 0x0ECC
+#define mmTCD_INPUT0_DEBUG 0x0ED0
+#define mmTCD_DEGAMMA_DEBUG 0x0ED4
+#define mmTCD_DXTMUX_SCTARB_DEBUG 0x0ED5
+#define mmTCD_DXTC_ARB_DEBUG 0x0ED6
+#define mmTCD_STALLS_DEBUG 0x0ED7
+#define mmTCO_STALLS_DEBUG 0x0EE0
+#define mmTCO_QUAD0_DEBUG0 0x0EE1
+#define mmTCO_QUAD0_DEBUG1 0x0EE2
+
+
+// Registers from TC block
+
+
+
+// Registers from SQ block
+
+#define mmSQ_GPR_MANAGEMENT 0x0D00
+#define mmSQ_FLOW_CONTROL 0x0D01
+#define mmSQ_INST_STORE_MANAGMENT 0x0D02
+#define mmSQ_RESOURCE_MANAGMENT 0x0D03
+#define mmSQ_EO_RT 0x0D04
+#define mmSQ_DEBUG_MISC 0x0D05
+#define mmSQ_ACTIVITY_METER_CNTL 0x0D06
+#define mmSQ_ACTIVITY_METER_STATUS 0x0D07
+#define mmSQ_INPUT_ARB_PRIORITY 0x0D08
+#define mmSQ_THREAD_ARB_PRIORITY 0x0D09
+#define mmSQ_VS_WATCHDOG_TIMER 0x0D0A
+#define mmSQ_PS_WATCHDOG_TIMER 0x0D0B
+#define mmSQ_INT_CNTL 0x0D34
+#define mmSQ_INT_STATUS 0x0D35
+#define mmSQ_INT_ACK 0x0D36
+#define mmSQ_DEBUG_INPUT_FSM 0x0DAE
+#define mmSQ_DEBUG_CONST_MGR_FSM 0x0DAF
+#define mmSQ_DEBUG_TP_FSM 0x0DB0
+#define mmSQ_DEBUG_FSM_ALU_0 0x0DB1
+#define mmSQ_DEBUG_FSM_ALU_1 0x0DB2
+#define mmSQ_DEBUG_EXP_ALLOC 0x0DB3
+#define mmSQ_DEBUG_PTR_BUFF 0x0DB4
+#define mmSQ_DEBUG_GPR_VTX 0x0DB5
+#define mmSQ_DEBUG_GPR_PIX 0x0DB6
+#define mmSQ_DEBUG_TB_STATUS_SEL 0x0DB7
+#define mmSQ_DEBUG_VTX_TB_0 0x0DB8
+#define mmSQ_DEBUG_VTX_TB_1 0x0DB9
+#define mmSQ_DEBUG_VTX_TB_STATUS_REG 0x0DBA
+#define mmSQ_DEBUG_VTX_TB_STATE_MEM 0x0DBB
+#define mmSQ_DEBUG_PIX_TB_0 0x0DBC
+#define mmSQ_DEBUG_PIX_TB_STATUS_REG_0 0x0DBD
+#define mmSQ_DEBUG_PIX_TB_STATUS_REG_1 0x0DBE
+#define mmSQ_DEBUG_PIX_TB_STATUS_REG_2 0x0DBF
+#define mmSQ_DEBUG_PIX_TB_STATUS_REG_3 0x0DC0
+#define mmSQ_DEBUG_PIX_TB_STATE_MEM 0x0DC1
+#define mmSQ_PERFCOUNTER0_SELECT 0x0DC8
+#define mmSQ_PERFCOUNTER1_SELECT 0x0DC9
+#define mmSQ_PERFCOUNTER2_SELECT 0x0DCA
+#define mmSQ_PERFCOUNTER3_SELECT 0x0DCB
+#define mmSQ_PERFCOUNTER0_LOW 0x0DCC
+#define mmSQ_PERFCOUNTER0_HI 0x0DCD
+#define mmSQ_PERFCOUNTER1_LOW 0x0DCE
+#define mmSQ_PERFCOUNTER1_HI 0x0DCF
+#define mmSQ_PERFCOUNTER2_LOW 0x0DD0
+#define mmSQ_PERFCOUNTER2_HI 0x0DD1
+#define mmSQ_PERFCOUNTER3_LOW 0x0DD2
+#define mmSQ_PERFCOUNTER3_HI 0x0DD3
+#define mmSX_PERFCOUNTER0_SELECT 0x0DD4
+#define mmSX_PERFCOUNTER0_LOW 0x0DD8
+#define mmSX_PERFCOUNTER0_HI 0x0DD9
+#define mmSQ_INSTRUCTION_ALU_0 0x5000
+#define mmSQ_INSTRUCTION_ALU_1 0x5001
+#define mmSQ_INSTRUCTION_ALU_2 0x5002
+#define mmSQ_INSTRUCTION_CF_EXEC_0 0x5080
+#define mmSQ_INSTRUCTION_CF_EXEC_1 0x5081
+#define mmSQ_INSTRUCTION_CF_EXEC_2 0x5082
+#define mmSQ_INSTRUCTION_CF_LOOP_0 0x5083
+#define mmSQ_INSTRUCTION_CF_LOOP_1 0x5084
+#define mmSQ_INSTRUCTION_CF_LOOP_2 0x5085
+#define mmSQ_INSTRUCTION_CF_JMP_CALL_0 0x5086
+#define mmSQ_INSTRUCTION_CF_JMP_CALL_1 0x5087
+#define mmSQ_INSTRUCTION_CF_JMP_CALL_2 0x5088
+#define mmSQ_INSTRUCTION_CF_ALLOC_0 0x5089
+#define mmSQ_INSTRUCTION_CF_ALLOC_1 0x508A
+#define mmSQ_INSTRUCTION_CF_ALLOC_2 0x508B
+#define mmSQ_INSTRUCTION_TFETCH_0 0x5043
+#define mmSQ_INSTRUCTION_TFETCH_1 0x5044
+#define mmSQ_INSTRUCTION_TFETCH_2 0x5045
+#define mmSQ_INSTRUCTION_VFETCH_0 0x5040
+#define mmSQ_INSTRUCTION_VFETCH_1 0x5041
+#define mmSQ_INSTRUCTION_VFETCH_2 0x5042
+#define mmSQ_CONSTANT_0 0x4000
+#define mmSQ_CONSTANT_1 0x4001
+#define mmSQ_CONSTANT_2 0x4002
+#define mmSQ_CONSTANT_3 0x4003
+#define mmSQ_FETCH_0 0x4800
+#define mmSQ_FETCH_1 0x4801
+#define mmSQ_FETCH_2 0x4802
+#define mmSQ_FETCH_3 0x4803
+#define mmSQ_FETCH_4 0x4804
+#define mmSQ_FETCH_5 0x4805
+#define mmSQ_CONSTANT_VFETCH_0 0x4806
+#define mmSQ_CONSTANT_VFETCH_1 0x4808
+#define mmSQ_CONSTANT_T2 0x480C
+#define mmSQ_CONSTANT_T3 0x4812
+#define mmSQ_CF_BOOLEANS 0x4900
+#define mmSQ_CF_LOOP 0x4908
+#define mmSQ_CONSTANT_RT_0 0x4940
+#define mmSQ_CONSTANT_RT_1 0x4941
+#define mmSQ_CONSTANT_RT_2 0x4942
+#define mmSQ_CONSTANT_RT_3 0x4943
+#define mmSQ_FETCH_RT_0 0x4D40
+#define mmSQ_FETCH_RT_1 0x4D41
+#define mmSQ_FETCH_RT_2 0x4D42
+#define mmSQ_FETCH_RT_3 0x4D43
+#define mmSQ_FETCH_RT_4 0x4D44
+#define mmSQ_FETCH_RT_5 0x4D45
+#define mmSQ_CF_RT_BOOLEANS 0x4E00
+#define mmSQ_CF_RT_LOOP 0x4E14
+#define mmSQ_VS_PROGRAM 0x21F7
+#define mmSQ_PS_PROGRAM 0x21F6
+#define mmSQ_CF_PROGRAM_SIZE 0x2315
+#define mmSQ_INTERPOLATOR_CNTL 0x2182
+#define mmSQ_PROGRAM_CNTL 0x2180
+#define mmSQ_WRAPPING_0 0x2183
+#define mmSQ_WRAPPING_1 0x2184
+#define mmSQ_VS_CONST 0x2307
+#define mmSQ_PS_CONST 0x2308
+#define mmSQ_CONTEXT_MISC 0x2181
+#define mmSQ_CF_RD_BASE 0x21F5
+#define mmSQ_DEBUG_MISC_0 0x2309
+#define mmSQ_DEBUG_MISC_1 0x230A
+
+
+// Registers from SX block
+
+
+
+// Registers from MH block
+
+#define mmMH_ARBITER_CONFIG 0x0A40
+#define mmMH_CLNT_AXI_ID_REUSE 0x0A41
+#define mmMH_INTERRUPT_MASK 0x0A42
+#define mmMH_INTERRUPT_STATUS 0x0A43
+#define mmMH_INTERRUPT_CLEAR 0x0A44
+#define mmMH_AXI_ERROR 0x0A45
+#define mmMH_PERFCOUNTER0_SELECT 0x0A46
+#define mmMH_PERFCOUNTER1_SELECT 0x0A4A
+#define mmMH_PERFCOUNTER0_CONFIG 0x0A47
+#define mmMH_PERFCOUNTER1_CONFIG 0x0A4B
+#define mmMH_PERFCOUNTER0_LOW 0x0A48
+#define mmMH_PERFCOUNTER1_LOW 0x0A4C
+#define mmMH_PERFCOUNTER0_HI 0x0A49
+#define mmMH_PERFCOUNTER1_HI 0x0A4D
+#define mmMH_DEBUG_CTRL 0x0A4E
+#define mmMH_DEBUG_DATA 0x0A4F
+#define mmMH_AXI_HALT_CONTROL 0x0A50
+#define mmMH_MMU_CONFIG 0x0040
+#define mmMH_MMU_VA_RANGE 0x0041
+#define mmMH_MMU_PT_BASE 0x0042
+#define mmMH_MMU_PAGE_FAULT 0x0043
+#define mmMH_MMU_TRAN_ERROR 0x0044
+#define mmMH_MMU_INVALIDATE 0x0045
+#define mmMH_MMU_MPU_BASE 0x0046
+#define mmMH_MMU_MPU_END 0x0047
+
+
+// Registers from RBBM block
+
+#define mmWAIT_UNTIL 0x05C8
+#define mmRBBM_ISYNC_CNTL 0x05C9
+#define mmRBBM_STATUS 0x05D0
+#define mmRBBM_DSPLY 0x0391
+#define mmRBBM_RENDER_LATEST 0x0392
+#define mmRBBM_RTL_RELEASE 0x0000
+#define mmRBBM_PATCH_RELEASE 0x0001
+#define mmRBBM_AUXILIARY_CONFIG 0x0002
+#define mmRBBM_PERIPHID0 0x03F8
+#define mmRBBM_PERIPHID1 0x03F9
+#define mmRBBM_PERIPHID2 0x03FA
+#define mmRBBM_PERIPHID3 0x03FB
+#define mmRBBM_CNTL 0x003B
+#define mmRBBM_SKEW_CNTL 0x003D
+#define mmRBBM_SOFT_RESET 0x003C
+#define mmRBBM_PM_OVERRIDE1 0x039C
+#define mmRBBM_PM_OVERRIDE2 0x039D
+#define mmGC_SYS_IDLE 0x039E
+#define mmNQWAIT_UNTIL 0x0394
+#define mmRBBM_DEBUG_OUT 0x03A0
+#define mmRBBM_DEBUG_CNTL 0x03A1
+#define mmRBBM_DEBUG 0x039B
+#define mmRBBM_READ_ERROR 0x03B3
+#define mmRBBM_WAIT_IDLE_CLOCKS 0x03B2
+#define mmRBBM_INT_CNTL 0x03B4
+#define mmRBBM_INT_STATUS 0x03B5
+#define mmRBBM_INT_ACK 0x03B6
+#define mmMASTER_INT_SIGNAL 0x03B7
+#define mmRBBM_PERFCOUNTER1_SELECT 0x0395
+#define mmRBBM_PERFCOUNTER1_LO 0x0397
+#define mmRBBM_PERFCOUNTER1_HI 0x0398
+
+
+// Registers from CP block
+
+#define mmCP_RB_BASE 0x01C0
+#define mmCP_RB_CNTL 0x01C1
+#define mmCP_RB_RPTR_ADDR 0x01C3
+#define mmCP_RB_RPTR 0x01C4
+#define mmCP_RB_RPTR_WR 0x01C7
+#define mmCP_RB_WPTR 0x01C5
+#define mmCP_RB_WPTR_DELAY 0x01C6
+#define mmCP_RB_WPTR_BASE 0x01C8
+#define mmCP_IB1_BASE 0x0458
+#define mmCP_IB1_BUFSZ 0x0459
+#define mmCP_IB2_BASE 0x045A
+#define mmCP_IB2_BUFSZ 0x045B
+#define mmCP_ST_BASE 0x044D
+#define mmCP_ST_BUFSZ 0x044E
+#define mmCP_QUEUE_THRESHOLDS 0x01D5
+#define mmCP_MEQ_THRESHOLDS 0x01D6
+#define mmCP_CSQ_AVAIL 0x01D7
+#define mmCP_STQ_AVAIL 0x01D8
+#define mmCP_MEQ_AVAIL 0x01D9
+#define mmCP_CSQ_RB_STAT 0x01FD
+#define mmCP_CSQ_IB1_STAT 0x01FE
+#define mmCP_CSQ_IB2_STAT 0x01FF
+#define mmCP_NON_PREFETCH_CNTRS 0x0440
+#define mmCP_STQ_ST_STAT 0x0443
+#define mmCP_MEQ_STAT 0x044F
+#define mmCP_MIU_TAG_STAT 0x0452
+#define mmCP_CMD_INDEX 0x01DA
+#define mmCP_CMD_DATA 0x01DB
+#define mmCP_ME_CNTL 0x01F6
+#define mmCP_ME_STATUS 0x01F7
+#define mmCP_ME_RAM_WADDR 0x01F8
+#define mmCP_ME_RAM_RADDR 0x01F9
+#define mmCP_ME_RAM_DATA 0x01FA
+#define mmCP_ME_RDADDR 0x01EA
+#define mmCP_DEBUG 0x01FC
+#define mmSCRATCH_REG0 0x0578
+#define mmGUI_SCRATCH_REG0 0x0578
+#define mmSCRATCH_REG1 0x0579
+#define mmGUI_SCRATCH_REG1 0x0579
+#define mmSCRATCH_REG2 0x057A
+#define mmGUI_SCRATCH_REG2 0x057A
+#define mmSCRATCH_REG3 0x057B
+#define mmGUI_SCRATCH_REG3 0x057B
+#define mmSCRATCH_REG4 0x057C
+#define mmGUI_SCRATCH_REG4 0x057C
+#define mmSCRATCH_REG5 0x057D
+#define mmGUI_SCRATCH_REG5 0x057D
+#define mmSCRATCH_REG6 0x057E
+#define mmGUI_SCRATCH_REG6 0x057E
+#define mmSCRATCH_REG7 0x057F
+#define mmGUI_SCRATCH_REG7 0x057F
+#define mmSCRATCH_UMSK 0x01DC
+#define mmSCRATCH_ADDR 0x01DD
+#define mmCP_ME_VS_EVENT_SRC 0x0600
+#define mmCP_ME_VS_EVENT_ADDR 0x0601
+#define mmCP_ME_VS_EVENT_DATA 0x0602
+#define mmCP_ME_VS_EVENT_ADDR_SWM 0x0603
+#define mmCP_ME_VS_EVENT_DATA_SWM 0x0604
+#define mmCP_ME_PS_EVENT_SRC 0x0605
+#define mmCP_ME_PS_EVENT_ADDR 0x0606
+#define mmCP_ME_PS_EVENT_DATA 0x0607
+#define mmCP_ME_PS_EVENT_ADDR_SWM 0x0608
+#define mmCP_ME_PS_EVENT_DATA_SWM 0x0609
+#define mmCP_ME_CF_EVENT_SRC 0x060A
+#define mmCP_ME_CF_EVENT_ADDR 0x060B
+#define mmCP_ME_CF_EVENT_DATA 0x060C
+#define mmCP_ME_NRT_ADDR 0x060D
+#define mmCP_ME_NRT_DATA 0x060E
+#define mmCP_ME_VS_FETCH_DONE_SRC 0x0612
+#define mmCP_ME_VS_FETCH_DONE_ADDR 0x0613
+#define mmCP_ME_VS_FETCH_DONE_DATA 0x0614
+#define mmCP_INT_CNTL 0x01F2
+#define mmCP_INT_STATUS 0x01F3
+#define mmCP_INT_ACK 0x01F4
+#define mmCP_PFP_UCODE_ADDR 0x00C0
+#define mmCP_PFP_UCODE_DATA 0x00C1
+#define mmCP_PERFMON_CNTL 0x0444
+#define mmCP_PERFCOUNTER_SELECT 0x0445
+#define mmCP_PERFCOUNTER_LO 0x0446
+#define mmCP_PERFCOUNTER_HI 0x0447
+#define mmCP_BIN_MASK_LO 0x0454
+#define mmCP_BIN_MASK_HI 0x0455
+#define mmCP_BIN_SELECT_LO 0x0456
+#define mmCP_BIN_SELECT_HI 0x0457
+#define mmCP_NV_FLAGS_0 0x01EE
+#define mmCP_NV_FLAGS_1 0x01EF
+#define mmCP_NV_FLAGS_2 0x01F0
+#define mmCP_NV_FLAGS_3 0x01F1
+#define mmCP_STATE_DEBUG_INDEX 0x01EC
+#define mmCP_STATE_DEBUG_DATA 0x01ED
+#define mmCP_PROG_COUNTER 0x044B
+#define mmCP_STAT 0x047F
+#define mmBIOS_0_SCRATCH 0x0004
+#define mmBIOS_1_SCRATCH 0x0005
+#define mmBIOS_2_SCRATCH 0x0006
+#define mmBIOS_3_SCRATCH 0x0007
+#define mmBIOS_4_SCRATCH 0x0008
+#define mmBIOS_5_SCRATCH 0x0009
+#define mmBIOS_6_SCRATCH 0x000A
+#define mmBIOS_7_SCRATCH 0x000B
+#define mmBIOS_8_SCRATCH 0x0580
+#define mmBIOS_9_SCRATCH 0x0581
+#define mmBIOS_10_SCRATCH 0x0582
+#define mmBIOS_11_SCRATCH 0x0583
+#define mmBIOS_12_SCRATCH 0x0584
+#define mmBIOS_13_SCRATCH 0x0585
+#define mmBIOS_14_SCRATCH 0x0586
+#define mmBIOS_15_SCRATCH 0x0587
+#define mmCOHER_SIZE_PM4 0x0A29
+#define mmCOHER_BASE_PM4 0x0A2A
+#define mmCOHER_STATUS_PM4 0x0A2B
+#define mmCOHER_SIZE_HOST 0x0A2F
+#define mmCOHER_BASE_HOST 0x0A30
+#define mmCOHER_STATUS_HOST 0x0A31
+#define mmCOHER_DEST_BASE_0 0x2006
+#define mmCOHER_DEST_BASE_1 0x2007
+#define mmCOHER_DEST_BASE_2 0x2008
+#define mmCOHER_DEST_BASE_3 0x2009
+#define mmCOHER_DEST_BASE_4 0x200A
+#define mmCOHER_DEST_BASE_5 0x200B
+#define mmCOHER_DEST_BASE_6 0x200C
+#define mmCOHER_DEST_BASE_7 0x200D
+
+
+// Registers from SC block
+
+
+
+// Registers from BC block
+
+#define mmRB_SURFACE_INFO 0x2000
+#define mmRB_COLOR_INFO 0x2001
+#define mmRB_DEPTH_INFO 0x2002
+#define mmRB_STENCILREFMASK 0x210D
+#define mmRB_ALPHA_REF 0x210E
+#define mmRB_COLOR_MASK 0x2104
+#define mmRB_BLEND_RED 0x2105
+#define mmRB_BLEND_GREEN 0x2106
+#define mmRB_BLEND_BLUE 0x2107
+#define mmRB_BLEND_ALPHA 0x2108
+#define mmRB_FOG_COLOR 0x2109
+#define mmRB_STENCILREFMASK_BF 0x210C
+#define mmRB_DEPTHCONTROL 0x2200
+#define mmRB_BLENDCONTROL 0x2201
+#define mmRB_COLORCONTROL 0x2202
+#define mmRB_MODECONTROL 0x2208
+#define mmRB_COLOR_DEST_MASK 0x2326
+#define mmRB_COPY_CONTROL 0x2318
+#define mmRB_COPY_DEST_BASE 0x2319
+#define mmRB_COPY_DEST_PITCH 0x231A
+#define mmRB_COPY_DEST_INFO 0x231B
+#define mmRB_COPY_DEST_PIXEL_OFFSET 0x231C
+#define mmRB_DEPTH_CLEAR 0x231D
+#define mmRB_SAMPLE_COUNT_CTL 0x2324
+#define mmRB_SAMPLE_COUNT_ADDR 0x2325
+#define mmRB_BC_CONTROL 0x0F01
+#define mmRB_EDRAM_INFO 0x0F02
+#define mmRB_CRC_RD_PORT 0x0F0C
+#define mmRB_CRC_CONTROL 0x0F0D
+#define mmRB_CRC_MASK 0x0F0E
+#define mmRB_PERFCOUNTER0_SELECT 0x0F04
+#define mmRB_PERFCOUNTER0_LOW 0x0F08
+#define mmRB_PERFCOUNTER0_HI 0x0F09
+#define mmRB_TOTAL_SAMPLES 0x0F0F
+#define mmRB_ZPASS_SAMPLES 0x0F10
+#define mmRB_ZFAIL_SAMPLES 0x0F11
+#define mmRB_SFAIL_SAMPLES 0x0F12
+#define mmRB_DEBUG_0 0x0F26
+#define mmRB_DEBUG_1 0x0F27
+#define mmRB_DEBUG_2 0x0F28
+#define mmRB_DEBUG_3 0x0F29
+#define mmRB_DEBUG_4 0x0F2A
+#define mmRB_FLAG_CONTROL 0x0F2B
+#define mmRB_BC_SPARES 0x0F2C
+#define mmBC_DUMMY_CRAYRB_ENUMS 0x0F15
+#define mmBC_DUMMY_CRAYRB_MOREENUMS 0x0F16
+#endif
diff --git a/drivers/mxc/amd-gpu/include/reg/yamato/10/yamato_random.h b/drivers/mxc/amd-gpu/include/reg/yamato/10/yamato_random.h
new file mode 100644
index 000000000000..17379dcfa0e7
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/reg/yamato/10/yamato_random.h
@@ -0,0 +1,223 @@
+/* Copyright (c) 2002,2007-2009, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#if !defined (_yamato_RANDOM_HEADER)
+#define _yamato_RANDOM_HEADER
+
+/*************************************************************
+ * THIS FILE IS AUTOMATICALLY CREATED. DO NOT EDIT THIS FILE.
+ *************************************************************/
+/*******************************************************
+ * PA Enums
+ *******************************************************/
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<SU_PERFCNT_SELECT>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<SC_PERFCNT_SELECT>;
+
+/*******************************************************
+ * VGT Enums
+ *******************************************************/
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<VGT_DI_PRIM_TYPE>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<VGT_DI_SOURCE_SELECT>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<VGT_DI_FACENESS_CULL_SELECT>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<VGT_DI_INDEX_SIZE>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<VGT_DI_SMALL_INDEX>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<VGT_DI_PRE_FETCH_CULL_ENABLE>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<VGT_DI_GRP_CULL_ENABLE>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<VGT_EVENT_TYPE>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<VGT_DMA_SWAP_MODE>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<VGT_PERFCOUNT_SELECT>;
+
+/*******************************************************
+ * TP Enums
+ *******************************************************/
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<TCR_PERFCOUNT_SELECT>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<TP_PERFCOUNT_SELECT>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<TCM_PERFCOUNT_SELECT>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<TCF_PERFCOUNT_SELECT>;
+
+/*******************************************************
+ * TC Enums
+ *******************************************************/
+/*******************************************************
+ * SQ Enums
+ *******************************************************/
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<SQ_PERFCNT_SELECT>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<SX_PERFCNT_SELECT>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<Abs_modifier>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<Exporting>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<ScalarOpcode>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<SwizzleType>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<InputModifier>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<PredicateSelect>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<OperandSelect1>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<VectorOpcode>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<OperandSelect0>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<Ressource_type>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<Instruction_serial>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<VC_type>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<Addressing>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<CFOpcode>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<Allocation_type>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<TexInstOpcode>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<Addressmode>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<TexCoordDenorm>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<SrcSel>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<DstSel>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<MagFilter>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<MinFilter>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<MipFilter>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<AnisoFilter>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<ArbitraryFilter>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<VolMagFilter>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<VolMinFilter>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<PredSelect>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<SampleLocation>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<VertexMode>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<Sample_Cntl>;
+
+/*******************************************************
+ * SX Enums
+ *******************************************************/
+/*******************************************************
+ * MH Enums
+ *******************************************************/
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<MhPerfEncode>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<MmuClntBeh>;
+
+/*******************************************************
+ * RBBM Enums
+ *******************************************************/
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<RBBM_PERFCOUNT1_SEL>;
+
+/*******************************************************
+ * CP Enums
+ *******************************************************/
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<CP_PERFCOUNT_SEL>;
+
+/*******************************************************
+ * SC Enums
+ *******************************************************/
+/*******************************************************
+ * BC Enums
+ *******************************************************/
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<ColorformatX>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<DepthformatX>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<CompareFrag>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<CompareRef>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<StencilOp>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<BlendOpX>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<CombFuncX>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<DitherModeX>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<DitherTypeX>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<EdramMode>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<SurfaceEndian>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<EdramSizeX>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<RB_PERFCNT_SELECT>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<DepthFormat>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<SurfaceSwap>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<DepthArray>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<ColorArray>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<ColorFormat>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<SurfaceNumber>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<SurfaceFormat>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<SurfaceTiling>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<SurfaceArray>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<SurfaceNumberX>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<ColorArrayX>;
+
+#endif /*_yamato_RANDOM_HEADER*/
+
diff --git a/drivers/mxc/amd-gpu/include/reg/yamato/10/yamato_registers.h b/drivers/mxc/amd-gpu/include/reg/yamato/10/yamato_registers.h
new file mode 100644
index 000000000000..fc6b8b98f849
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/reg/yamato/10/yamato_registers.h
@@ -0,0 +1,14278 @@
+/* Copyright (c) 2002,2007-2009, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#if !defined (_yamato_REG_HEADER)
+#define _yamato_REG_HEADER
+
+ union PA_CL_VPORT_XSCALE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VPORT_XSCALE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VPORT_XSCALE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_CL_VPORT_XOFFSET {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VPORT_XOFFSET : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VPORT_XOFFSET : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_CL_VPORT_YSCALE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VPORT_YSCALE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VPORT_YSCALE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_CL_VPORT_YOFFSET {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VPORT_YOFFSET : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VPORT_YOFFSET : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_CL_VPORT_ZSCALE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VPORT_ZSCALE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VPORT_ZSCALE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_CL_VPORT_ZOFFSET {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VPORT_ZOFFSET : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VPORT_ZOFFSET : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_CL_VTE_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VPORT_X_SCALE_ENA : 1;
+ unsigned int VPORT_X_OFFSET_ENA : 1;
+ unsigned int VPORT_Y_SCALE_ENA : 1;
+ unsigned int VPORT_Y_OFFSET_ENA : 1;
+ unsigned int VPORT_Z_SCALE_ENA : 1;
+ unsigned int VPORT_Z_OFFSET_ENA : 1;
+ unsigned int : 2;
+ unsigned int VTX_XY_FMT : 1;
+ unsigned int VTX_Z_FMT : 1;
+ unsigned int VTX_W0_FMT : 1;
+ unsigned int PERFCOUNTER_REF : 1;
+ unsigned int : 20;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 20;
+ unsigned int PERFCOUNTER_REF : 1;
+ unsigned int VTX_W0_FMT : 1;
+ unsigned int VTX_Z_FMT : 1;
+ unsigned int VTX_XY_FMT : 1;
+ unsigned int : 2;
+ unsigned int VPORT_Z_OFFSET_ENA : 1;
+ unsigned int VPORT_Z_SCALE_ENA : 1;
+ unsigned int VPORT_Y_OFFSET_ENA : 1;
+ unsigned int VPORT_Y_SCALE_ENA : 1;
+ unsigned int VPORT_X_OFFSET_ENA : 1;
+ unsigned int VPORT_X_SCALE_ENA : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_CL_CLIP_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 16;
+ unsigned int CLIP_DISABLE : 1;
+ unsigned int : 1;
+ unsigned int BOUNDARY_EDGE_FLAG_ENA : 1;
+ unsigned int DX_CLIP_SPACE_DEF : 1;
+ unsigned int DIS_CLIP_ERR_DETECT : 1;
+ unsigned int VTX_KILL_OR : 1;
+ unsigned int XY_NAN_RETAIN : 1;
+ unsigned int Z_NAN_RETAIN : 1;
+ unsigned int W_NAN_RETAIN : 1;
+ unsigned int : 7;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 7;
+ unsigned int W_NAN_RETAIN : 1;
+ unsigned int Z_NAN_RETAIN : 1;
+ unsigned int XY_NAN_RETAIN : 1;
+ unsigned int VTX_KILL_OR : 1;
+ unsigned int DIS_CLIP_ERR_DETECT : 1;
+ unsigned int DX_CLIP_SPACE_DEF : 1;
+ unsigned int BOUNDARY_EDGE_FLAG_ENA : 1;
+ unsigned int : 1;
+ unsigned int CLIP_DISABLE : 1;
+ unsigned int : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_CL_GB_VERT_CLIP_ADJ {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DATA_REGISTER : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int DATA_REGISTER : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_CL_GB_VERT_DISC_ADJ {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DATA_REGISTER : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int DATA_REGISTER : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_CL_GB_HORZ_CLIP_ADJ {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DATA_REGISTER : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int DATA_REGISTER : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_CL_GB_HORZ_DISC_ADJ {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DATA_REGISTER : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int DATA_REGISTER : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_CL_ENHANCE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CLIP_VTX_REORDER_ENA : 1;
+ unsigned int : 27;
+ unsigned int ECO_SPARE3 : 1;
+ unsigned int ECO_SPARE2 : 1;
+ unsigned int ECO_SPARE1 : 1;
+ unsigned int ECO_SPARE0 : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int ECO_SPARE0 : 1;
+ unsigned int ECO_SPARE1 : 1;
+ unsigned int ECO_SPARE2 : 1;
+ unsigned int ECO_SPARE3 : 1;
+ unsigned int : 27;
+ unsigned int CLIP_VTX_REORDER_ENA : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_ENHANCE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 28;
+ unsigned int ECO_SPARE3 : 1;
+ unsigned int ECO_SPARE2 : 1;
+ unsigned int ECO_SPARE1 : 1;
+ unsigned int ECO_SPARE0 : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int ECO_SPARE0 : 1;
+ unsigned int ECO_SPARE1 : 1;
+ unsigned int ECO_SPARE2 : 1;
+ unsigned int ECO_SPARE3 : 1;
+ unsigned int : 28;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_VTX_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PIX_CENTER : 1;
+ unsigned int ROUND_MODE : 2;
+ unsigned int QUANT_MODE : 3;
+ unsigned int : 26;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 26;
+ unsigned int QUANT_MODE : 3;
+ unsigned int ROUND_MODE : 2;
+ unsigned int PIX_CENTER : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_POINT_SIZE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int HEIGHT : 16;
+ unsigned int WIDTH : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int WIDTH : 16;
+ unsigned int HEIGHT : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_POINT_MINMAX {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MIN_SIZE : 16;
+ unsigned int MAX_SIZE : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int MAX_SIZE : 16;
+ unsigned int MIN_SIZE : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_LINE_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int WIDTH : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int WIDTH : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_FACE_DATA {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 5;
+ unsigned int BASE_ADDR : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int BASE_ADDR : 27;
+ unsigned int : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_SC_MODE_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CULL_FRONT : 1;
+ unsigned int CULL_BACK : 1;
+ unsigned int FACE : 1;
+ unsigned int POLY_MODE : 2;
+ unsigned int POLYMODE_FRONT_PTYPE : 3;
+ unsigned int POLYMODE_BACK_PTYPE : 3;
+ unsigned int POLY_OFFSET_FRONT_ENABLE : 1;
+ unsigned int POLY_OFFSET_BACK_ENABLE : 1;
+ unsigned int POLY_OFFSET_PARA_ENABLE : 1;
+ unsigned int : 1;
+ unsigned int MSAA_ENABLE : 1;
+ unsigned int VTX_WINDOW_OFFSET_ENABLE : 1;
+ unsigned int : 1;
+ unsigned int LINE_STIPPLE_ENABLE : 1;
+ unsigned int PROVOKING_VTX_LAST : 1;
+ unsigned int PERSP_CORR_DIS : 1;
+ unsigned int MULTI_PRIM_IB_ENA : 1;
+ unsigned int : 1;
+ unsigned int QUAD_ORDER_ENABLE : 1;
+ unsigned int : 1;
+ unsigned int WAIT_RB_IDLE_ALL_TRI : 1;
+ unsigned int WAIT_RB_IDLE_FIRST_TRI_NEW_STATE : 1;
+ unsigned int : 2;
+ unsigned int ZERO_AREA_FACENESS : 1;
+ unsigned int FACE_KILL_ENABLE : 1;
+ unsigned int FACE_WRITE_ENABLE : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int FACE_WRITE_ENABLE : 1;
+ unsigned int FACE_KILL_ENABLE : 1;
+ unsigned int ZERO_AREA_FACENESS : 1;
+ unsigned int : 2;
+ unsigned int WAIT_RB_IDLE_FIRST_TRI_NEW_STATE : 1;
+ unsigned int WAIT_RB_IDLE_ALL_TRI : 1;
+ unsigned int : 1;
+ unsigned int QUAD_ORDER_ENABLE : 1;
+ unsigned int : 1;
+ unsigned int MULTI_PRIM_IB_ENA : 1;
+ unsigned int PERSP_CORR_DIS : 1;
+ unsigned int PROVOKING_VTX_LAST : 1;
+ unsigned int LINE_STIPPLE_ENABLE : 1;
+ unsigned int : 1;
+ unsigned int VTX_WINDOW_OFFSET_ENABLE : 1;
+ unsigned int MSAA_ENABLE : 1;
+ unsigned int : 1;
+ unsigned int POLY_OFFSET_PARA_ENABLE : 1;
+ unsigned int POLY_OFFSET_BACK_ENABLE : 1;
+ unsigned int POLY_OFFSET_FRONT_ENABLE : 1;
+ unsigned int POLYMODE_BACK_PTYPE : 3;
+ unsigned int POLYMODE_FRONT_PTYPE : 3;
+ unsigned int POLY_MODE : 2;
+ unsigned int FACE : 1;
+ unsigned int CULL_BACK : 1;
+ unsigned int CULL_FRONT : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_POLY_OFFSET_FRONT_SCALE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SCALE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int SCALE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_POLY_OFFSET_FRONT_OFFSET {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int OFFSET : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int OFFSET : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_POLY_OFFSET_BACK_SCALE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SCALE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int SCALE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_POLY_OFFSET_BACK_OFFSET {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int OFFSET : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int OFFSET : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_PERFCOUNTER0_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_SEL : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERF_SEL : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_PERFCOUNTER1_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_SEL : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERF_SEL : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_PERFCOUNTER2_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_SEL : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERF_SEL : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_PERFCOUNTER3_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_SEL : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERF_SEL : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_PERFCOUNTER0_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERF_COUNT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_PERFCOUNTER0_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERF_COUNT : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_PERFCOUNTER1_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERF_COUNT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_PERFCOUNTER1_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERF_COUNT : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_PERFCOUNTER2_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERF_COUNT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_PERFCOUNTER2_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERF_COUNT : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_PERFCOUNTER3_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERF_COUNT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_PERFCOUNTER3_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERF_COUNT : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_WINDOW_OFFSET {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int WINDOW_X_OFFSET : 15;
+ unsigned int : 1;
+ unsigned int WINDOW_Y_OFFSET : 15;
+ unsigned int : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 1;
+ unsigned int WINDOW_Y_OFFSET : 15;
+ unsigned int : 1;
+ unsigned int WINDOW_X_OFFSET : 15;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_AA_CONFIG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MSAA_NUM_SAMPLES : 3;
+ unsigned int : 10;
+ unsigned int MAX_SAMPLE_DIST : 4;
+ unsigned int : 15;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 15;
+ unsigned int MAX_SAMPLE_DIST : 4;
+ unsigned int : 10;
+ unsigned int MSAA_NUM_SAMPLES : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_AA_MASK {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int AA_MASK : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int AA_MASK : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_LINE_STIPPLE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int LINE_PATTERN : 16;
+ unsigned int REPEAT_COUNT : 8;
+ unsigned int : 4;
+ unsigned int PATTERN_BIT_ORDER : 1;
+ unsigned int AUTO_RESET_CNTL : 2;
+ unsigned int : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 1;
+ unsigned int AUTO_RESET_CNTL : 2;
+ unsigned int PATTERN_BIT_ORDER : 1;
+ unsigned int : 4;
+ unsigned int REPEAT_COUNT : 8;
+ unsigned int LINE_PATTERN : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_LINE_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BRES_CNTL : 8;
+ unsigned int USE_BRES_CNTL : 1;
+ unsigned int EXPAND_LINE_WIDTH : 1;
+ unsigned int LAST_PIXEL : 1;
+ unsigned int : 21;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 21;
+ unsigned int LAST_PIXEL : 1;
+ unsigned int EXPAND_LINE_WIDTH : 1;
+ unsigned int USE_BRES_CNTL : 1;
+ unsigned int BRES_CNTL : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_WINDOW_SCISSOR_TL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TL_X : 14;
+ unsigned int : 2;
+ unsigned int TL_Y : 14;
+ unsigned int : 1;
+ unsigned int WINDOW_OFFSET_DISABLE : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int WINDOW_OFFSET_DISABLE : 1;
+ unsigned int : 1;
+ unsigned int TL_Y : 14;
+ unsigned int : 2;
+ unsigned int TL_X : 14;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_WINDOW_SCISSOR_BR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BR_X : 14;
+ unsigned int : 2;
+ unsigned int BR_Y : 14;
+ unsigned int : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 2;
+ unsigned int BR_Y : 14;
+ unsigned int : 2;
+ unsigned int BR_X : 14;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_SCREEN_SCISSOR_TL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TL_X : 15;
+ unsigned int : 1;
+ unsigned int TL_Y : 15;
+ unsigned int : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 1;
+ unsigned int TL_Y : 15;
+ unsigned int : 1;
+ unsigned int TL_X : 15;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_SCREEN_SCISSOR_BR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BR_X : 15;
+ unsigned int : 1;
+ unsigned int BR_Y : 15;
+ unsigned int : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 1;
+ unsigned int BR_Y : 15;
+ unsigned int : 1;
+ unsigned int BR_X : 15;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_VIZ_QUERY {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VIZ_QUERY_ENA : 1;
+ unsigned int VIZ_QUERY_ID : 5;
+ unsigned int : 1;
+ unsigned int KILL_PIX_POST_EARLY_Z : 1;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int KILL_PIX_POST_EARLY_Z : 1;
+ unsigned int : 1;
+ unsigned int VIZ_QUERY_ID : 5;
+ unsigned int VIZ_QUERY_ENA : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_VIZ_QUERY_STATUS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int STATUS_BITS : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int STATUS_BITS : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_LINE_STIPPLE_STATE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CURRENT_PTR : 4;
+ unsigned int : 4;
+ unsigned int CURRENT_COUNT : 8;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int CURRENT_COUNT : 8;
+ unsigned int : 4;
+ unsigned int CURRENT_PTR : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_PERFCOUNTER0_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_SEL : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERF_SEL : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_PERFCOUNTER0_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERF_COUNT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_PERFCOUNTER0_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERF_COUNT : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_CL_CNTL_STATUS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 31;
+ unsigned int CL_BUSY : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int CL_BUSY : 1;
+ unsigned int : 31;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_CNTL_STATUS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 31;
+ unsigned int SU_BUSY : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int SU_BUSY : 1;
+ unsigned int : 31;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_CNTL_STATUS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 31;
+ unsigned int SC_BUSY : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int SC_BUSY : 1;
+ unsigned int : 31;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_DEBUG_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SU_DEBUG_INDX : 5;
+ unsigned int : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 27;
+ unsigned int SU_DEBUG_INDX : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_DEBUG_DATA {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DATA : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int DATA : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CLIPPER_DEBUG_REG00 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int clip_ga_bc_fifo_write : 1;
+ unsigned int clip_ga_bc_fifo_full : 1;
+ unsigned int clip_to_ga_fifo_write : 1;
+ unsigned int clip_to_ga_fifo_full : 1;
+ unsigned int primic_to_clprim_fifo_empty : 1;
+ unsigned int primic_to_clprim_fifo_full : 1;
+ unsigned int clip_to_outsm_fifo_empty : 1;
+ unsigned int clip_to_outsm_fifo_full : 1;
+ unsigned int vgt_to_clipp_fifo_empty : 1;
+ unsigned int vgt_to_clipp_fifo_full : 1;
+ unsigned int vgt_to_clips_fifo_empty : 1;
+ unsigned int vgt_to_clips_fifo_full : 1;
+ unsigned int clipcode_fifo_fifo_empty : 1;
+ unsigned int clipcode_fifo_full : 1;
+ unsigned int vte_out_clip_fifo_fifo_empty : 1;
+ unsigned int vte_out_clip_fifo_fifo_full : 1;
+ unsigned int vte_out_orig_fifo_fifo_empty : 1;
+ unsigned int vte_out_orig_fifo_fifo_full : 1;
+ unsigned int ccgen_to_clipcc_fifo_empty : 1;
+ unsigned int ccgen_to_clipcc_fifo_full : 1;
+ unsigned int ALWAYS_ZERO : 12;
+#else /* !defined(qLittleEndian) */
+ unsigned int ALWAYS_ZERO : 12;
+ unsigned int ccgen_to_clipcc_fifo_full : 1;
+ unsigned int ccgen_to_clipcc_fifo_empty : 1;
+ unsigned int vte_out_orig_fifo_fifo_full : 1;
+ unsigned int vte_out_orig_fifo_fifo_empty : 1;
+ unsigned int vte_out_clip_fifo_fifo_full : 1;
+ unsigned int vte_out_clip_fifo_fifo_empty : 1;
+ unsigned int clipcode_fifo_full : 1;
+ unsigned int clipcode_fifo_fifo_empty : 1;
+ unsigned int vgt_to_clips_fifo_full : 1;
+ unsigned int vgt_to_clips_fifo_empty : 1;
+ unsigned int vgt_to_clipp_fifo_full : 1;
+ unsigned int vgt_to_clipp_fifo_empty : 1;
+ unsigned int clip_to_outsm_fifo_full : 1;
+ unsigned int clip_to_outsm_fifo_empty : 1;
+ unsigned int primic_to_clprim_fifo_full : 1;
+ unsigned int primic_to_clprim_fifo_empty : 1;
+ unsigned int clip_to_ga_fifo_full : 1;
+ unsigned int clip_to_ga_fifo_write : 1;
+ unsigned int clip_ga_bc_fifo_full : 1;
+ unsigned int clip_ga_bc_fifo_write : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CLIPPER_DEBUG_REG01 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int clip_to_outsm_end_of_packet : 1;
+ unsigned int clip_to_outsm_first_prim_of_slot : 1;
+ unsigned int clip_to_outsm_deallocate_slot : 3;
+ unsigned int clip_to_outsm_clipped_prim : 1;
+ unsigned int clip_to_outsm_null_primitive : 1;
+ unsigned int clip_to_outsm_vertex_store_indx_2 : 4;
+ unsigned int clip_to_outsm_vertex_store_indx_1 : 4;
+ unsigned int clip_to_outsm_vertex_store_indx_0 : 4;
+ unsigned int clip_vert_vte_valid : 3;
+ unsigned int vte_out_clip_rd_vertex_store_indx : 2;
+ unsigned int ALWAYS_ZERO : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int ALWAYS_ZERO : 8;
+ unsigned int vte_out_clip_rd_vertex_store_indx : 2;
+ unsigned int clip_vert_vte_valid : 3;
+ unsigned int clip_to_outsm_vertex_store_indx_0 : 4;
+ unsigned int clip_to_outsm_vertex_store_indx_1 : 4;
+ unsigned int clip_to_outsm_vertex_store_indx_2 : 4;
+ unsigned int clip_to_outsm_null_primitive : 1;
+ unsigned int clip_to_outsm_clipped_prim : 1;
+ unsigned int clip_to_outsm_deallocate_slot : 3;
+ unsigned int clip_to_outsm_first_prim_of_slot : 1;
+ unsigned int clip_to_outsm_end_of_packet : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CLIPPER_DEBUG_REG02 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ALWAYS_ZERO1 : 21;
+ unsigned int clipsm0_clip_to_clipga_clip_to_outsm_cnt : 3;
+ unsigned int ALWAYS_ZERO0 : 7;
+ unsigned int clipsm0_clprim_to_clip_prim_valid : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int clipsm0_clprim_to_clip_prim_valid : 1;
+ unsigned int ALWAYS_ZERO0 : 7;
+ unsigned int clipsm0_clip_to_clipga_clip_to_outsm_cnt : 3;
+ unsigned int ALWAYS_ZERO1 : 21;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CLIPPER_DEBUG_REG03 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ALWAYS_ZERO3 : 3;
+ unsigned int clipsm0_clprim_to_clip_clip_primitive : 1;
+ unsigned int ALWAYS_ZERO2 : 3;
+ unsigned int clipsm0_clprim_to_clip_null_primitive : 1;
+ unsigned int ALWAYS_ZERO1 : 12;
+ unsigned int clipsm0_clprim_to_clip_clip_code_or : 6;
+ unsigned int ALWAYS_ZERO0 : 6;
+#else /* !defined(qLittleEndian) */
+ unsigned int ALWAYS_ZERO0 : 6;
+ unsigned int clipsm0_clprim_to_clip_clip_code_or : 6;
+ unsigned int ALWAYS_ZERO1 : 12;
+ unsigned int clipsm0_clprim_to_clip_null_primitive : 1;
+ unsigned int ALWAYS_ZERO2 : 3;
+ unsigned int clipsm0_clprim_to_clip_clip_primitive : 1;
+ unsigned int ALWAYS_ZERO3 : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CLIPPER_DEBUG_REG04 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ALWAYS_ZERO2 : 3;
+ unsigned int clipsm0_clprim_to_clip_first_prim_of_slot : 1;
+ unsigned int ALWAYS_ZERO1 : 3;
+ unsigned int clipsm0_clprim_to_clip_event : 1;
+ unsigned int ALWAYS_ZERO0 : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int ALWAYS_ZERO0 : 24;
+ unsigned int clipsm0_clprim_to_clip_event : 1;
+ unsigned int ALWAYS_ZERO1 : 3;
+ unsigned int clipsm0_clprim_to_clip_first_prim_of_slot : 1;
+ unsigned int ALWAYS_ZERO2 : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CLIPPER_DEBUG_REG05 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int clipsm0_clprim_to_clip_state_var_indx : 1;
+ unsigned int ALWAYS_ZERO3 : 2;
+ unsigned int clipsm0_clprim_to_clip_deallocate_slot : 3;
+ unsigned int clipsm0_clprim_to_clip_event_id : 6;
+ unsigned int clipsm0_clprim_to_clip_vertex_store_indx_2 : 4;
+ unsigned int ALWAYS_ZERO2 : 2;
+ unsigned int clipsm0_clprim_to_clip_vertex_store_indx_1 : 4;
+ unsigned int ALWAYS_ZERO1 : 2;
+ unsigned int clipsm0_clprim_to_clip_vertex_store_indx_0 : 4;
+ unsigned int ALWAYS_ZERO0 : 4;
+#else /* !defined(qLittleEndian) */
+ unsigned int ALWAYS_ZERO0 : 4;
+ unsigned int clipsm0_clprim_to_clip_vertex_store_indx_0 : 4;
+ unsigned int ALWAYS_ZERO1 : 2;
+ unsigned int clipsm0_clprim_to_clip_vertex_store_indx_1 : 4;
+ unsigned int ALWAYS_ZERO2 : 2;
+ unsigned int clipsm0_clprim_to_clip_vertex_store_indx_2 : 4;
+ unsigned int clipsm0_clprim_to_clip_event_id : 6;
+ unsigned int clipsm0_clprim_to_clip_deallocate_slot : 3;
+ unsigned int ALWAYS_ZERO3 : 2;
+ unsigned int clipsm0_clprim_to_clip_state_var_indx : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CLIPPER_DEBUG_REG09 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int clprim_in_back_event : 1;
+ unsigned int outputclprimtoclip_null_primitive : 1;
+ unsigned int clprim_in_back_vertex_store_indx_2 : 4;
+ unsigned int ALWAYS_ZERO2 : 2;
+ unsigned int clprim_in_back_vertex_store_indx_1 : 4;
+ unsigned int ALWAYS_ZERO1 : 2;
+ unsigned int clprim_in_back_vertex_store_indx_0 : 4;
+ unsigned int ALWAYS_ZERO0 : 2;
+ unsigned int prim_back_valid : 1;
+ unsigned int clip_priority_seq_indx_out_cnt : 4;
+ unsigned int outsm_clr_rd_orig_vertices : 2;
+ unsigned int outsm_clr_rd_clipsm_wait : 1;
+ unsigned int outsm_clr_fifo_empty : 1;
+ unsigned int outsm_clr_fifo_full : 1;
+ unsigned int clip_priority_seq_indx_load : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int clip_priority_seq_indx_load : 2;
+ unsigned int outsm_clr_fifo_full : 1;
+ unsigned int outsm_clr_fifo_empty : 1;
+ unsigned int outsm_clr_rd_clipsm_wait : 1;
+ unsigned int outsm_clr_rd_orig_vertices : 2;
+ unsigned int clip_priority_seq_indx_out_cnt : 4;
+ unsigned int prim_back_valid : 1;
+ unsigned int ALWAYS_ZERO0 : 2;
+ unsigned int clprim_in_back_vertex_store_indx_0 : 4;
+ unsigned int ALWAYS_ZERO1 : 2;
+ unsigned int clprim_in_back_vertex_store_indx_1 : 4;
+ unsigned int ALWAYS_ZERO2 : 2;
+ unsigned int clprim_in_back_vertex_store_indx_2 : 4;
+ unsigned int outputclprimtoclip_null_primitive : 1;
+ unsigned int clprim_in_back_event : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CLIPPER_DEBUG_REG10 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int primic_to_clprim_fifo_vertex_store_indx_2 : 4;
+ unsigned int ALWAYS_ZERO3 : 2;
+ unsigned int primic_to_clprim_fifo_vertex_store_indx_1 : 4;
+ unsigned int ALWAYS_ZERO2 : 2;
+ unsigned int primic_to_clprim_fifo_vertex_store_indx_0 : 4;
+ unsigned int ALWAYS_ZERO1 : 2;
+ unsigned int clprim_in_back_state_var_indx : 1;
+ unsigned int ALWAYS_ZERO0 : 2;
+ unsigned int clprim_in_back_end_of_packet : 1;
+ unsigned int clprim_in_back_first_prim_of_slot : 1;
+ unsigned int clprim_in_back_deallocate_slot : 3;
+ unsigned int clprim_in_back_event_id : 6;
+#else /* !defined(qLittleEndian) */
+ unsigned int clprim_in_back_event_id : 6;
+ unsigned int clprim_in_back_deallocate_slot : 3;
+ unsigned int clprim_in_back_first_prim_of_slot : 1;
+ unsigned int clprim_in_back_end_of_packet : 1;
+ unsigned int ALWAYS_ZERO0 : 2;
+ unsigned int clprim_in_back_state_var_indx : 1;
+ unsigned int ALWAYS_ZERO1 : 2;
+ unsigned int primic_to_clprim_fifo_vertex_store_indx_0 : 4;
+ unsigned int ALWAYS_ZERO2 : 2;
+ unsigned int primic_to_clprim_fifo_vertex_store_indx_1 : 4;
+ unsigned int ALWAYS_ZERO3 : 2;
+ unsigned int primic_to_clprim_fifo_vertex_store_indx_2 : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CLIPPER_DEBUG_REG11 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int vertval_bits_vertex_vertex_store_msb : 4;
+ unsigned int ALWAYS_ZERO : 28;
+#else /* !defined(qLittleEndian) */
+ unsigned int ALWAYS_ZERO : 28;
+ unsigned int vertval_bits_vertex_vertex_store_msb : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CLIPPER_DEBUG_REG12 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int clip_priority_available_vte_out_clip : 2;
+ unsigned int ALWAYS_ZERO2 : 3;
+ unsigned int clip_vertex_fifo_empty : 1;
+ unsigned int clip_priority_available_clip_verts : 5;
+ unsigned int ALWAYS_ZERO1 : 4;
+ unsigned int vertval_bits_vertex_cc_next_valid : 4;
+ unsigned int clipcc_vertex_store_indx : 2;
+ unsigned int primic_to_clprim_valid : 1;
+ unsigned int ALWAYS_ZERO0 : 10;
+#else /* !defined(qLittleEndian) */
+ unsigned int ALWAYS_ZERO0 : 10;
+ unsigned int primic_to_clprim_valid : 1;
+ unsigned int clipcc_vertex_store_indx : 2;
+ unsigned int vertval_bits_vertex_cc_next_valid : 4;
+ unsigned int ALWAYS_ZERO1 : 4;
+ unsigned int clip_priority_available_clip_verts : 5;
+ unsigned int clip_vertex_fifo_empty : 1;
+ unsigned int ALWAYS_ZERO2 : 3;
+ unsigned int clip_priority_available_vte_out_clip : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CLIPPER_DEBUG_REG13 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int sm0_clip_vert_cnt : 4;
+ unsigned int sm0_prim_end_state : 7;
+ unsigned int ALWAYS_ZERO1 : 3;
+ unsigned int sm0_vertex_clip_cnt : 4;
+ unsigned int sm0_inv_to_clip_data_valid_1 : 1;
+ unsigned int sm0_inv_to_clip_data_valid_0 : 1;
+ unsigned int sm0_current_state : 7;
+ unsigned int ALWAYS_ZERO0 : 5;
+#else /* !defined(qLittleEndian) */
+ unsigned int ALWAYS_ZERO0 : 5;
+ unsigned int sm0_current_state : 7;
+ unsigned int sm0_inv_to_clip_data_valid_0 : 1;
+ unsigned int sm0_inv_to_clip_data_valid_1 : 1;
+ unsigned int sm0_vertex_clip_cnt : 4;
+ unsigned int ALWAYS_ZERO1 : 3;
+ unsigned int sm0_prim_end_state : 7;
+ unsigned int sm0_clip_vert_cnt : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SXIFCCG_DEBUG_REG0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int nan_kill_flag : 4;
+ unsigned int position_address : 3;
+ unsigned int ALWAYS_ZERO2 : 3;
+ unsigned int point_address : 3;
+ unsigned int ALWAYS_ZERO1 : 3;
+ unsigned int sx_pending_rd_state_var_indx : 1;
+ unsigned int ALWAYS_ZERO0 : 2;
+ unsigned int sx_pending_rd_req_mask : 4;
+ unsigned int sx_pending_rd_pci : 7;
+ unsigned int sx_pending_rd_aux_inc : 1;
+ unsigned int sx_pending_rd_aux_sel : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int sx_pending_rd_aux_sel : 1;
+ unsigned int sx_pending_rd_aux_inc : 1;
+ unsigned int sx_pending_rd_pci : 7;
+ unsigned int sx_pending_rd_req_mask : 4;
+ unsigned int ALWAYS_ZERO0 : 2;
+ unsigned int sx_pending_rd_state_var_indx : 1;
+ unsigned int ALWAYS_ZERO1 : 3;
+ unsigned int point_address : 3;
+ unsigned int ALWAYS_ZERO2 : 3;
+ unsigned int position_address : 3;
+ unsigned int nan_kill_flag : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SXIFCCG_DEBUG_REG1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ALWAYS_ZERO3 : 2;
+ unsigned int sx_to_pa_empty : 2;
+ unsigned int available_positions : 3;
+ unsigned int ALWAYS_ZERO2 : 4;
+ unsigned int sx_pending_advance : 1;
+ unsigned int sx_receive_indx : 3;
+ unsigned int statevar_bits_sxpa_aux_vector : 1;
+ unsigned int ALWAYS_ZERO1 : 4;
+ unsigned int aux_sel : 1;
+ unsigned int ALWAYS_ZERO0 : 2;
+ unsigned int pasx_req_cnt : 2;
+ unsigned int param_cache_base : 7;
+#else /* !defined(qLittleEndian) */
+ unsigned int param_cache_base : 7;
+ unsigned int pasx_req_cnt : 2;
+ unsigned int ALWAYS_ZERO0 : 2;
+ unsigned int aux_sel : 1;
+ unsigned int ALWAYS_ZERO1 : 4;
+ unsigned int statevar_bits_sxpa_aux_vector : 1;
+ unsigned int sx_receive_indx : 3;
+ unsigned int sx_pending_advance : 1;
+ unsigned int ALWAYS_ZERO2 : 4;
+ unsigned int available_positions : 3;
+ unsigned int sx_to_pa_empty : 2;
+ unsigned int ALWAYS_ZERO3 : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SXIFCCG_DEBUG_REG2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int sx_sent : 1;
+ unsigned int ALWAYS_ZERO3 : 1;
+ unsigned int sx_aux : 1;
+ unsigned int sx_request_indx : 6;
+ unsigned int req_active_verts : 7;
+ unsigned int ALWAYS_ZERO2 : 1;
+ unsigned int vgt_to_ccgen_state_var_indx : 1;
+ unsigned int ALWAYS_ZERO1 : 2;
+ unsigned int vgt_to_ccgen_active_verts : 2;
+ unsigned int ALWAYS_ZERO0 : 4;
+ unsigned int req_active_verts_loaded : 1;
+ unsigned int sx_pending_fifo_empty : 1;
+ unsigned int sx_pending_fifo_full : 1;
+ unsigned int sx_pending_fifo_contents : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int sx_pending_fifo_contents : 3;
+ unsigned int sx_pending_fifo_full : 1;
+ unsigned int sx_pending_fifo_empty : 1;
+ unsigned int req_active_verts_loaded : 1;
+ unsigned int ALWAYS_ZERO0 : 4;
+ unsigned int vgt_to_ccgen_active_verts : 2;
+ unsigned int ALWAYS_ZERO1 : 2;
+ unsigned int vgt_to_ccgen_state_var_indx : 1;
+ unsigned int ALWAYS_ZERO2 : 1;
+ unsigned int req_active_verts : 7;
+ unsigned int sx_request_indx : 6;
+ unsigned int sx_aux : 1;
+ unsigned int ALWAYS_ZERO3 : 1;
+ unsigned int sx_sent : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SXIFCCG_DEBUG_REG3 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int vertex_fifo_entriesavailable : 4;
+ unsigned int ALWAYS_ZERO3 : 1;
+ unsigned int available_positions : 3;
+ unsigned int ALWAYS_ZERO2 : 4;
+ unsigned int current_state : 2;
+ unsigned int vertex_fifo_empty : 1;
+ unsigned int vertex_fifo_full : 1;
+ unsigned int ALWAYS_ZERO1 : 2;
+ unsigned int sx0_receive_fifo_empty : 1;
+ unsigned int sx0_receive_fifo_full : 1;
+ unsigned int vgt_to_ccgen_fifo_empty : 1;
+ unsigned int vgt_to_ccgen_fifo_full : 1;
+ unsigned int ALWAYS_ZERO0 : 10;
+#else /* !defined(qLittleEndian) */
+ unsigned int ALWAYS_ZERO0 : 10;
+ unsigned int vgt_to_ccgen_fifo_full : 1;
+ unsigned int vgt_to_ccgen_fifo_empty : 1;
+ unsigned int sx0_receive_fifo_full : 1;
+ unsigned int sx0_receive_fifo_empty : 1;
+ unsigned int ALWAYS_ZERO1 : 2;
+ unsigned int vertex_fifo_full : 1;
+ unsigned int vertex_fifo_empty : 1;
+ unsigned int current_state : 2;
+ unsigned int ALWAYS_ZERO2 : 4;
+ unsigned int available_positions : 3;
+ unsigned int ALWAYS_ZERO3 : 1;
+ unsigned int vertex_fifo_entriesavailable : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SETUP_DEBUG_REG0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int su_cntl_state : 5;
+ unsigned int pmode_state : 6;
+ unsigned int ge_stallb : 1;
+ unsigned int geom_enable : 1;
+ unsigned int su_clip_baryc_rtr : 1;
+ unsigned int su_clip_rtr : 1;
+ unsigned int pfifo_busy : 1;
+ unsigned int su_cntl_busy : 1;
+ unsigned int geom_busy : 1;
+ unsigned int : 14;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 14;
+ unsigned int geom_busy : 1;
+ unsigned int su_cntl_busy : 1;
+ unsigned int pfifo_busy : 1;
+ unsigned int su_clip_rtr : 1;
+ unsigned int su_clip_baryc_rtr : 1;
+ unsigned int geom_enable : 1;
+ unsigned int ge_stallb : 1;
+ unsigned int pmode_state : 6;
+ unsigned int su_cntl_state : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SETUP_DEBUG_REG1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int y_sort0_gated_17_4 : 14;
+ unsigned int x_sort0_gated_17_4 : 14;
+ unsigned int : 4;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 4;
+ unsigned int x_sort0_gated_17_4 : 14;
+ unsigned int y_sort0_gated_17_4 : 14;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SETUP_DEBUG_REG2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int y_sort1_gated_17_4 : 14;
+ unsigned int x_sort1_gated_17_4 : 14;
+ unsigned int : 4;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 4;
+ unsigned int x_sort1_gated_17_4 : 14;
+ unsigned int y_sort1_gated_17_4 : 14;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SETUP_DEBUG_REG3 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int y_sort2_gated_17_4 : 14;
+ unsigned int x_sort2_gated_17_4 : 14;
+ unsigned int : 4;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 4;
+ unsigned int x_sort2_gated_17_4 : 14;
+ unsigned int y_sort2_gated_17_4 : 14;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SETUP_DEBUG_REG4 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int attr_indx_sort0_gated : 11;
+ unsigned int null_prim_gated : 1;
+ unsigned int backfacing_gated : 1;
+ unsigned int st_indx_gated : 3;
+ unsigned int clipped_gated : 1;
+ unsigned int dealloc_slot_gated : 3;
+ unsigned int xmajor_gated : 1;
+ unsigned int diamond_rule_gated : 2;
+ unsigned int type_gated : 3;
+ unsigned int fpov_gated : 1;
+ unsigned int pmode_prim_gated : 1;
+ unsigned int event_gated : 1;
+ unsigned int eop_gated : 1;
+ unsigned int : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 2;
+ unsigned int eop_gated : 1;
+ unsigned int event_gated : 1;
+ unsigned int pmode_prim_gated : 1;
+ unsigned int fpov_gated : 1;
+ unsigned int type_gated : 3;
+ unsigned int diamond_rule_gated : 2;
+ unsigned int xmajor_gated : 1;
+ unsigned int dealloc_slot_gated : 3;
+ unsigned int clipped_gated : 1;
+ unsigned int st_indx_gated : 3;
+ unsigned int backfacing_gated : 1;
+ unsigned int null_prim_gated : 1;
+ unsigned int attr_indx_sort0_gated : 11;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SETUP_DEBUG_REG5 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int attr_indx_sort2_gated : 11;
+ unsigned int attr_indx_sort1_gated : 11;
+ unsigned int provoking_vtx_gated : 2;
+ unsigned int event_id_gated : 5;
+ unsigned int : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 3;
+ unsigned int event_id_gated : 5;
+ unsigned int provoking_vtx_gated : 2;
+ unsigned int attr_indx_sort1_gated : 11;
+ unsigned int attr_indx_sort2_gated : 11;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_DEBUG_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SC_DEBUG_INDX : 5;
+ unsigned int : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 27;
+ unsigned int SC_DEBUG_INDX : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_DEBUG_DATA {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DATA : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int DATA : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SC_DEBUG_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int pa_freeze_b1 : 1;
+ unsigned int pa_sc_valid : 1;
+ unsigned int pa_sc_phase : 3;
+ unsigned int cntx_cnt : 7;
+ unsigned int decr_cntx_cnt : 1;
+ unsigned int incr_cntx_cnt : 1;
+ unsigned int : 17;
+ unsigned int trigger : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int trigger : 1;
+ unsigned int : 17;
+ unsigned int incr_cntx_cnt : 1;
+ unsigned int decr_cntx_cnt : 1;
+ unsigned int cntx_cnt : 7;
+ unsigned int pa_sc_phase : 3;
+ unsigned int pa_sc_valid : 1;
+ unsigned int pa_freeze_b1 : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SC_DEBUG_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int em_state : 3;
+ unsigned int em1_data_ready : 1;
+ unsigned int em2_data_ready : 1;
+ unsigned int move_em1_to_em2 : 1;
+ unsigned int ef_data_ready : 1;
+ unsigned int ef_state : 2;
+ unsigned int pipe_valid : 1;
+ unsigned int : 21;
+ unsigned int trigger : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int trigger : 1;
+ unsigned int : 21;
+ unsigned int pipe_valid : 1;
+ unsigned int ef_state : 2;
+ unsigned int ef_data_ready : 1;
+ unsigned int move_em1_to_em2 : 1;
+ unsigned int em2_data_ready : 1;
+ unsigned int em1_data_ready : 1;
+ unsigned int em_state : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SC_DEBUG_2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int rc_rtr_dly : 1;
+ unsigned int qmask_ff_alm_full_d1 : 1;
+ unsigned int : 1;
+ unsigned int pipe_freeze_b : 1;
+ unsigned int prim_rts : 1;
+ unsigned int next_prim_rts_dly : 1;
+ unsigned int next_prim_rtr_dly : 1;
+ unsigned int pre_stage1_rts_d1 : 1;
+ unsigned int stage0_rts : 1;
+ unsigned int phase_rts_dly : 1;
+ unsigned int : 5;
+ unsigned int end_of_prim_s1_dly : 1;
+ unsigned int pass_empty_prim_s1 : 1;
+ unsigned int event_id_s1 : 5;
+ unsigned int event_s1 : 1;
+ unsigned int : 8;
+ unsigned int trigger : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int trigger : 1;
+ unsigned int : 8;
+ unsigned int event_s1 : 1;
+ unsigned int event_id_s1 : 5;
+ unsigned int pass_empty_prim_s1 : 1;
+ unsigned int end_of_prim_s1_dly : 1;
+ unsigned int : 5;
+ unsigned int phase_rts_dly : 1;
+ unsigned int stage0_rts : 1;
+ unsigned int pre_stage1_rts_d1 : 1;
+ unsigned int next_prim_rtr_dly : 1;
+ unsigned int next_prim_rts_dly : 1;
+ unsigned int prim_rts : 1;
+ unsigned int pipe_freeze_b : 1;
+ unsigned int : 1;
+ unsigned int qmask_ff_alm_full_d1 : 1;
+ unsigned int rc_rtr_dly : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SC_DEBUG_3 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int x_curr_s1 : 11;
+ unsigned int y_curr_s1 : 11;
+ unsigned int : 9;
+ unsigned int trigger : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int trigger : 1;
+ unsigned int : 9;
+ unsigned int y_curr_s1 : 11;
+ unsigned int x_curr_s1 : 11;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SC_DEBUG_4 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int y_end_s1 : 14;
+ unsigned int y_start_s1 : 14;
+ unsigned int y_dir_s1 : 1;
+ unsigned int : 2;
+ unsigned int trigger : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int trigger : 1;
+ unsigned int : 2;
+ unsigned int y_dir_s1 : 1;
+ unsigned int y_start_s1 : 14;
+ unsigned int y_end_s1 : 14;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SC_DEBUG_5 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int x_end_s1 : 14;
+ unsigned int x_start_s1 : 14;
+ unsigned int x_dir_s1 : 1;
+ unsigned int : 2;
+ unsigned int trigger : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int trigger : 1;
+ unsigned int : 2;
+ unsigned int x_dir_s1 : 1;
+ unsigned int x_start_s1 : 14;
+ unsigned int x_end_s1 : 14;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SC_DEBUG_6 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int z_ff_empty : 1;
+ unsigned int qmcntl_ff_empty : 1;
+ unsigned int xy_ff_empty : 1;
+ unsigned int event_flag : 1;
+ unsigned int z_mask_needed : 1;
+ unsigned int state : 3;
+ unsigned int state_delayed : 3;
+ unsigned int data_valid : 1;
+ unsigned int data_valid_d : 1;
+ unsigned int tilex_delayed : 9;
+ unsigned int tiley_delayed : 9;
+ unsigned int trigger : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int trigger : 1;
+ unsigned int tiley_delayed : 9;
+ unsigned int tilex_delayed : 9;
+ unsigned int data_valid_d : 1;
+ unsigned int data_valid : 1;
+ unsigned int state_delayed : 3;
+ unsigned int state : 3;
+ unsigned int z_mask_needed : 1;
+ unsigned int event_flag : 1;
+ unsigned int xy_ff_empty : 1;
+ unsigned int qmcntl_ff_empty : 1;
+ unsigned int z_ff_empty : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SC_DEBUG_7 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int event_flag : 1;
+ unsigned int deallocate : 3;
+ unsigned int fposition : 1;
+ unsigned int sr_prim_we : 1;
+ unsigned int last_tile : 1;
+ unsigned int tile_ff_we : 1;
+ unsigned int qs_data_valid : 1;
+ unsigned int qs_q0_y : 2;
+ unsigned int qs_q0_x : 2;
+ unsigned int qs_q0_valid : 1;
+ unsigned int prim_ff_we : 1;
+ unsigned int tile_ff_re : 1;
+ unsigned int fw_prim_data_valid : 1;
+ unsigned int last_quad_of_tile : 1;
+ unsigned int first_quad_of_tile : 1;
+ unsigned int first_quad_of_prim : 1;
+ unsigned int new_prim : 1;
+ unsigned int load_new_tile_data : 1;
+ unsigned int state : 2;
+ unsigned int fifos_ready : 1;
+ unsigned int : 6;
+ unsigned int trigger : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int trigger : 1;
+ unsigned int : 6;
+ unsigned int fifos_ready : 1;
+ unsigned int state : 2;
+ unsigned int load_new_tile_data : 1;
+ unsigned int new_prim : 1;
+ unsigned int first_quad_of_prim : 1;
+ unsigned int first_quad_of_tile : 1;
+ unsigned int last_quad_of_tile : 1;
+ unsigned int fw_prim_data_valid : 1;
+ unsigned int tile_ff_re : 1;
+ unsigned int prim_ff_we : 1;
+ unsigned int qs_q0_valid : 1;
+ unsigned int qs_q0_x : 2;
+ unsigned int qs_q0_y : 2;
+ unsigned int qs_data_valid : 1;
+ unsigned int tile_ff_we : 1;
+ unsigned int last_tile : 1;
+ unsigned int sr_prim_we : 1;
+ unsigned int fposition : 1;
+ unsigned int deallocate : 3;
+ unsigned int event_flag : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SC_DEBUG_8 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int sample_last : 1;
+ unsigned int sample_mask : 4;
+ unsigned int sample_y : 2;
+ unsigned int sample_x : 2;
+ unsigned int sample_send : 1;
+ unsigned int next_cycle : 2;
+ unsigned int ez_sample_ff_full : 1;
+ unsigned int rb_sc_samp_rtr : 1;
+ unsigned int num_samples : 2;
+ unsigned int last_quad_of_tile : 1;
+ unsigned int last_quad_of_prim : 1;
+ unsigned int first_quad_of_prim : 1;
+ unsigned int sample_we : 1;
+ unsigned int fposition : 1;
+ unsigned int event_id : 5;
+ unsigned int event_flag : 1;
+ unsigned int fw_prim_data_valid : 1;
+ unsigned int : 3;
+ unsigned int trigger : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int trigger : 1;
+ unsigned int : 3;
+ unsigned int fw_prim_data_valid : 1;
+ unsigned int event_flag : 1;
+ unsigned int event_id : 5;
+ unsigned int fposition : 1;
+ unsigned int sample_we : 1;
+ unsigned int first_quad_of_prim : 1;
+ unsigned int last_quad_of_prim : 1;
+ unsigned int last_quad_of_tile : 1;
+ unsigned int num_samples : 2;
+ unsigned int rb_sc_samp_rtr : 1;
+ unsigned int ez_sample_ff_full : 1;
+ unsigned int next_cycle : 2;
+ unsigned int sample_send : 1;
+ unsigned int sample_x : 2;
+ unsigned int sample_y : 2;
+ unsigned int sample_mask : 4;
+ unsigned int sample_last : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SC_DEBUG_9 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int rb_sc_send : 1;
+ unsigned int rb_sc_ez_mask : 4;
+ unsigned int fifo_data_ready : 1;
+ unsigned int early_z_enable : 1;
+ unsigned int mask_state : 2;
+ unsigned int next_ez_mask : 16;
+ unsigned int mask_ready : 1;
+ unsigned int drop_sample : 1;
+ unsigned int fetch_new_sample_data : 1;
+ unsigned int fetch_new_ez_sample_mask : 1;
+ unsigned int pkr_fetch_new_sample_data : 1;
+ unsigned int pkr_fetch_new_prim_data : 1;
+ unsigned int trigger : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int trigger : 1;
+ unsigned int pkr_fetch_new_prim_data : 1;
+ unsigned int pkr_fetch_new_sample_data : 1;
+ unsigned int fetch_new_ez_sample_mask : 1;
+ unsigned int fetch_new_sample_data : 1;
+ unsigned int drop_sample : 1;
+ unsigned int mask_ready : 1;
+ unsigned int next_ez_mask : 16;
+ unsigned int mask_state : 2;
+ unsigned int early_z_enable : 1;
+ unsigned int fifo_data_ready : 1;
+ unsigned int rb_sc_ez_mask : 4;
+ unsigned int rb_sc_send : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SC_DEBUG_10 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int combined_sample_mask : 16;
+ unsigned int : 15;
+ unsigned int trigger : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int trigger : 1;
+ unsigned int : 15;
+ unsigned int combined_sample_mask : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SC_DEBUG_11 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ez_sample_data_ready : 1;
+ unsigned int pkr_fetch_new_sample_data : 1;
+ unsigned int ez_prim_data_ready : 1;
+ unsigned int pkr_fetch_new_prim_data : 1;
+ unsigned int iterator_input_fz : 1;
+ unsigned int packer_send_quads : 1;
+ unsigned int packer_send_cmd : 1;
+ unsigned int packer_send_event : 1;
+ unsigned int next_state : 3;
+ unsigned int state : 3;
+ unsigned int stall : 1;
+ unsigned int : 16;
+ unsigned int trigger : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int trigger : 1;
+ unsigned int : 16;
+ unsigned int stall : 1;
+ unsigned int state : 3;
+ unsigned int next_state : 3;
+ unsigned int packer_send_event : 1;
+ unsigned int packer_send_cmd : 1;
+ unsigned int packer_send_quads : 1;
+ unsigned int iterator_input_fz : 1;
+ unsigned int pkr_fetch_new_prim_data : 1;
+ unsigned int ez_prim_data_ready : 1;
+ unsigned int pkr_fetch_new_sample_data : 1;
+ unsigned int ez_sample_data_ready : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SC_DEBUG_12 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SQ_iterator_free_buff : 1;
+ unsigned int event_id : 5;
+ unsigned int event_flag : 1;
+ unsigned int itercmdfifo_busy_nc_dly : 1;
+ unsigned int itercmdfifo_full : 1;
+ unsigned int itercmdfifo_empty : 1;
+ unsigned int iter_ds_one_clk_command : 1;
+ unsigned int iter_ds_end_of_prim0 : 1;
+ unsigned int iter_ds_end_of_vector : 1;
+ unsigned int iter_qdhit0 : 1;
+ unsigned int bc_use_centers_reg : 1;
+ unsigned int bc_output_xy_reg : 1;
+ unsigned int iter_phase_out : 2;
+ unsigned int iter_phase_reg : 2;
+ unsigned int iterator_SP_valid : 1;
+ unsigned int eopv_reg : 1;
+ unsigned int one_clk_cmd_reg : 1;
+ unsigned int iter_dx_end_of_prim : 1;
+ unsigned int : 7;
+ unsigned int trigger : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int trigger : 1;
+ unsigned int : 7;
+ unsigned int iter_dx_end_of_prim : 1;
+ unsigned int one_clk_cmd_reg : 1;
+ unsigned int eopv_reg : 1;
+ unsigned int iterator_SP_valid : 1;
+ unsigned int iter_phase_reg : 2;
+ unsigned int iter_phase_out : 2;
+ unsigned int bc_output_xy_reg : 1;
+ unsigned int bc_use_centers_reg : 1;
+ unsigned int iter_qdhit0 : 1;
+ unsigned int iter_ds_end_of_vector : 1;
+ unsigned int iter_ds_end_of_prim0 : 1;
+ unsigned int iter_ds_one_clk_command : 1;
+ unsigned int itercmdfifo_empty : 1;
+ unsigned int itercmdfifo_full : 1;
+ unsigned int itercmdfifo_busy_nc_dly : 1;
+ unsigned int event_flag : 1;
+ unsigned int event_id : 5;
+ unsigned int SQ_iterator_free_buff : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union GFX_COPY_STATE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SRC_STATE_ID : 1;
+ unsigned int : 31;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 31;
+ unsigned int SRC_STATE_ID : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DRAW_INITIATOR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PRIM_TYPE : 6;
+ unsigned int SOURCE_SELECT : 2;
+ unsigned int FACENESS_CULL_SELECT : 2;
+ unsigned int : 1;
+ unsigned int INDEX_SIZE : 1;
+ unsigned int NOT_EOP : 1;
+ unsigned int SMALL_INDEX : 1;
+ unsigned int PRE_FETCH_CULL_ENABLE : 1;
+ unsigned int GRP_CULL_ENABLE : 1;
+ unsigned int NUM_INDICES : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int NUM_INDICES : 16;
+ unsigned int GRP_CULL_ENABLE : 1;
+ unsigned int PRE_FETCH_CULL_ENABLE : 1;
+ unsigned int SMALL_INDEX : 1;
+ unsigned int NOT_EOP : 1;
+ unsigned int INDEX_SIZE : 1;
+ unsigned int : 1;
+ unsigned int FACENESS_CULL_SELECT : 2;
+ unsigned int SOURCE_SELECT : 2;
+ unsigned int PRIM_TYPE : 6;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_EVENT_INITIATOR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int EVENT_TYPE : 6;
+ unsigned int : 26;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 26;
+ unsigned int EVENT_TYPE : 6;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DMA_BASE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BASE_ADDR : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BASE_ADDR : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DMA_SIZE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int NUM_WORDS : 24;
+ unsigned int : 6;
+ unsigned int SWAP_MODE : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int SWAP_MODE : 2;
+ unsigned int : 6;
+ unsigned int NUM_WORDS : 24;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_BIN_BASE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIN_BASE_ADDR : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIN_BASE_ADDR : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_BIN_SIZE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int NUM_WORDS : 24;
+ unsigned int : 6;
+ unsigned int FACENESS_FETCH : 1;
+ unsigned int FACENESS_RESET : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int FACENESS_RESET : 1;
+ unsigned int FACENESS_FETCH : 1;
+ unsigned int : 6;
+ unsigned int NUM_WORDS : 24;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_CURRENT_BIN_ID_MIN {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int COLUMN : 3;
+ unsigned int ROW : 3;
+ unsigned int GUARD_BAND : 3;
+ unsigned int : 23;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 23;
+ unsigned int GUARD_BAND : 3;
+ unsigned int ROW : 3;
+ unsigned int COLUMN : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_CURRENT_BIN_ID_MAX {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int COLUMN : 3;
+ unsigned int ROW : 3;
+ unsigned int GUARD_BAND : 3;
+ unsigned int : 23;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 23;
+ unsigned int GUARD_BAND : 3;
+ unsigned int ROW : 3;
+ unsigned int COLUMN : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_IMMED_DATA {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DATA : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int DATA : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_MAX_VTX_INDX {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MAX_INDX : 24;
+ unsigned int : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 8;
+ unsigned int MAX_INDX : 24;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_MIN_VTX_INDX {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MIN_INDX : 24;
+ unsigned int : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 8;
+ unsigned int MIN_INDX : 24;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_INDX_OFFSET {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int INDX_OFFSET : 24;
+ unsigned int : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 8;
+ unsigned int INDX_OFFSET : 24;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_VERTEX_REUSE_BLOCK_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VTX_REUSE_DEPTH : 3;
+ unsigned int : 29;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 29;
+ unsigned int VTX_REUSE_DEPTH : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_OUT_DEALLOC_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DEALLOC_DIST : 2;
+ unsigned int : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 30;
+ unsigned int DEALLOC_DIST : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_MULTI_PRIM_IB_RESET_INDX {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RESET_INDX : 24;
+ unsigned int : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 8;
+ unsigned int RESET_INDX : 24;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_ENHANCE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MISC : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int MISC : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_VTX_VECT_EJECT_REG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PRIM_COUNT : 5;
+ unsigned int : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 27;
+ unsigned int PRIM_COUNT : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_LAST_COPY_STATE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SRC_STATE_ID : 1;
+ unsigned int : 15;
+ unsigned int DST_STATE_ID : 1;
+ unsigned int : 15;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 15;
+ unsigned int DST_STATE_ID : 1;
+ unsigned int : 15;
+ unsigned int SRC_STATE_ID : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VGT_DEBUG_INDX : 5;
+ unsigned int : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 27;
+ unsigned int VGT_DEBUG_INDX : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_DATA {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DATA : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int DATA : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_CNTL_STATUS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VGT_BUSY : 1;
+ unsigned int VGT_DMA_BUSY : 1;
+ unsigned int VGT_DMA_REQ_BUSY : 1;
+ unsigned int VGT_GRP_BUSY : 1;
+ unsigned int VGT_VR_BUSY : 1;
+ unsigned int VGT_BIN_BUSY : 1;
+ unsigned int VGT_PT_BUSY : 1;
+ unsigned int VGT_OUT_BUSY : 1;
+ unsigned int VGT_OUT_INDX_BUSY : 1;
+ unsigned int : 23;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 23;
+ unsigned int VGT_OUT_INDX_BUSY : 1;
+ unsigned int VGT_OUT_BUSY : 1;
+ unsigned int VGT_PT_BUSY : 1;
+ unsigned int VGT_BIN_BUSY : 1;
+ unsigned int VGT_VR_BUSY : 1;
+ unsigned int VGT_GRP_BUSY : 1;
+ unsigned int VGT_DMA_REQ_BUSY : 1;
+ unsigned int VGT_DMA_BUSY : 1;
+ unsigned int VGT_BUSY : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_REG0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int te_grp_busy : 1;
+ unsigned int pt_grp_busy : 1;
+ unsigned int vr_grp_busy : 1;
+ unsigned int dma_request_busy : 1;
+ unsigned int out_busy : 1;
+ unsigned int grp_backend_busy : 1;
+ unsigned int grp_busy : 1;
+ unsigned int dma_busy : 1;
+ unsigned int rbiu_dma_request_busy : 1;
+ unsigned int rbiu_busy : 1;
+ unsigned int vgt_no_dma_busy_extended : 1;
+ unsigned int vgt_no_dma_busy : 1;
+ unsigned int vgt_busy_extended : 1;
+ unsigned int vgt_busy : 1;
+ unsigned int rbbm_skid_fifo_busy_out : 1;
+ unsigned int VGT_RBBM_no_dma_busy : 1;
+ unsigned int VGT_RBBM_busy : 1;
+ unsigned int : 15;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 15;
+ unsigned int VGT_RBBM_busy : 1;
+ unsigned int VGT_RBBM_no_dma_busy : 1;
+ unsigned int rbbm_skid_fifo_busy_out : 1;
+ unsigned int vgt_busy : 1;
+ unsigned int vgt_busy_extended : 1;
+ unsigned int vgt_no_dma_busy : 1;
+ unsigned int vgt_no_dma_busy_extended : 1;
+ unsigned int rbiu_busy : 1;
+ unsigned int rbiu_dma_request_busy : 1;
+ unsigned int dma_busy : 1;
+ unsigned int grp_busy : 1;
+ unsigned int grp_backend_busy : 1;
+ unsigned int out_busy : 1;
+ unsigned int dma_request_busy : 1;
+ unsigned int vr_grp_busy : 1;
+ unsigned int pt_grp_busy : 1;
+ unsigned int te_grp_busy : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_REG1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int out_te_data_read : 1;
+ unsigned int te_out_data_valid : 1;
+ unsigned int out_pt_prim_read : 1;
+ unsigned int pt_out_prim_valid : 1;
+ unsigned int out_pt_data_read : 1;
+ unsigned int pt_out_indx_valid : 1;
+ unsigned int out_vr_prim_read : 1;
+ unsigned int vr_out_prim_valid : 1;
+ unsigned int out_vr_indx_read : 1;
+ unsigned int vr_out_indx_valid : 1;
+ unsigned int te_grp_read : 1;
+ unsigned int grp_te_valid : 1;
+ unsigned int pt_grp_read : 1;
+ unsigned int grp_pt_valid : 1;
+ unsigned int vr_grp_read : 1;
+ unsigned int grp_vr_valid : 1;
+ unsigned int grp_dma_read : 1;
+ unsigned int dma_grp_valid : 1;
+ unsigned int grp_rbiu_di_read : 1;
+ unsigned int rbiu_grp_di_valid : 1;
+ unsigned int MH_VGT_rtr : 1;
+ unsigned int VGT_MH_send : 1;
+ unsigned int PA_VGT_clip_s_rtr : 1;
+ unsigned int VGT_PA_clip_s_send : 1;
+ unsigned int PA_VGT_clip_p_rtr : 1;
+ unsigned int VGT_PA_clip_p_send : 1;
+ unsigned int PA_VGT_clip_v_rtr : 1;
+ unsigned int VGT_PA_clip_v_send : 1;
+ unsigned int SQ_VGT_rtr : 1;
+ unsigned int VGT_SQ_send : 1;
+ unsigned int mh_vgt_tag_7_q : 1;
+ unsigned int : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 1;
+ unsigned int mh_vgt_tag_7_q : 1;
+ unsigned int VGT_SQ_send : 1;
+ unsigned int SQ_VGT_rtr : 1;
+ unsigned int VGT_PA_clip_v_send : 1;
+ unsigned int PA_VGT_clip_v_rtr : 1;
+ unsigned int VGT_PA_clip_p_send : 1;
+ unsigned int PA_VGT_clip_p_rtr : 1;
+ unsigned int VGT_PA_clip_s_send : 1;
+ unsigned int PA_VGT_clip_s_rtr : 1;
+ unsigned int VGT_MH_send : 1;
+ unsigned int MH_VGT_rtr : 1;
+ unsigned int rbiu_grp_di_valid : 1;
+ unsigned int grp_rbiu_di_read : 1;
+ unsigned int dma_grp_valid : 1;
+ unsigned int grp_dma_read : 1;
+ unsigned int grp_vr_valid : 1;
+ unsigned int vr_grp_read : 1;
+ unsigned int grp_pt_valid : 1;
+ unsigned int pt_grp_read : 1;
+ unsigned int grp_te_valid : 1;
+ unsigned int te_grp_read : 1;
+ unsigned int vr_out_indx_valid : 1;
+ unsigned int out_vr_indx_read : 1;
+ unsigned int vr_out_prim_valid : 1;
+ unsigned int out_vr_prim_read : 1;
+ unsigned int pt_out_indx_valid : 1;
+ unsigned int out_pt_data_read : 1;
+ unsigned int pt_out_prim_valid : 1;
+ unsigned int out_pt_prim_read : 1;
+ unsigned int te_out_data_valid : 1;
+ unsigned int out_te_data_read : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_REG3 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int vgt_clk_en : 1;
+ unsigned int reg_fifos_clk_en : 1;
+ unsigned int : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 30;
+ unsigned int reg_fifos_clk_en : 1;
+ unsigned int vgt_clk_en : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_REG6 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int shifter_byte_count_q : 5;
+ unsigned int right_word_indx_q : 5;
+ unsigned int input_data_valid : 1;
+ unsigned int input_data_xfer : 1;
+ unsigned int next_shift_is_vect_1_q : 1;
+ unsigned int next_shift_is_vect_1_d : 1;
+ unsigned int next_shift_is_vect_1_pre_d : 1;
+ unsigned int space_avail_from_shift : 1;
+ unsigned int shifter_first_load : 1;
+ unsigned int di_state_sel_q : 1;
+ unsigned int shifter_waiting_for_first_load_q : 1;
+ unsigned int di_first_group_flag_q : 1;
+ unsigned int di_event_flag_q : 1;
+ unsigned int read_draw_initiator : 1;
+ unsigned int loading_di_requires_shifter : 1;
+ unsigned int last_shift_of_packet : 1;
+ unsigned int last_decr_of_packet : 1;
+ unsigned int extract_vector : 1;
+ unsigned int shift_vect_rtr : 1;
+ unsigned int destination_rtr : 1;
+ unsigned int grp_trigger : 1;
+ unsigned int : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 3;
+ unsigned int grp_trigger : 1;
+ unsigned int destination_rtr : 1;
+ unsigned int shift_vect_rtr : 1;
+ unsigned int extract_vector : 1;
+ unsigned int last_decr_of_packet : 1;
+ unsigned int last_shift_of_packet : 1;
+ unsigned int loading_di_requires_shifter : 1;
+ unsigned int read_draw_initiator : 1;
+ unsigned int di_event_flag_q : 1;
+ unsigned int di_first_group_flag_q : 1;
+ unsigned int shifter_waiting_for_first_load_q : 1;
+ unsigned int di_state_sel_q : 1;
+ unsigned int shifter_first_load : 1;
+ unsigned int space_avail_from_shift : 1;
+ unsigned int next_shift_is_vect_1_pre_d : 1;
+ unsigned int next_shift_is_vect_1_d : 1;
+ unsigned int next_shift_is_vect_1_q : 1;
+ unsigned int input_data_xfer : 1;
+ unsigned int input_data_valid : 1;
+ unsigned int right_word_indx_q : 5;
+ unsigned int shifter_byte_count_q : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_REG7 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int di_index_counter_q : 16;
+ unsigned int shift_amount_no_extract : 4;
+ unsigned int shift_amount_extract : 4;
+ unsigned int di_prim_type_q : 6;
+ unsigned int current_source_sel : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int current_source_sel : 2;
+ unsigned int di_prim_type_q : 6;
+ unsigned int shift_amount_extract : 4;
+ unsigned int shift_amount_no_extract : 4;
+ unsigned int di_index_counter_q : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_REG8 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int current_source_sel : 2;
+ unsigned int left_word_indx_q : 5;
+ unsigned int input_data_cnt : 5;
+ unsigned int input_data_lsw : 5;
+ unsigned int input_data_msw : 5;
+ unsigned int next_small_stride_shift_limit_q : 5;
+ unsigned int current_small_stride_shift_limit_q : 5;
+#else /* !defined(qLittleEndian) */
+ unsigned int current_small_stride_shift_limit_q : 5;
+ unsigned int next_small_stride_shift_limit_q : 5;
+ unsigned int input_data_msw : 5;
+ unsigned int input_data_lsw : 5;
+ unsigned int input_data_cnt : 5;
+ unsigned int left_word_indx_q : 5;
+ unsigned int current_source_sel : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_REG9 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int next_stride_q : 5;
+ unsigned int next_stride_d : 5;
+ unsigned int current_shift_q : 5;
+ unsigned int current_shift_d : 5;
+ unsigned int current_stride_q : 5;
+ unsigned int current_stride_d : 5;
+ unsigned int grp_trigger : 1;
+ unsigned int : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 1;
+ unsigned int grp_trigger : 1;
+ unsigned int current_stride_d : 5;
+ unsigned int current_stride_q : 5;
+ unsigned int current_shift_d : 5;
+ unsigned int current_shift_q : 5;
+ unsigned int next_stride_d : 5;
+ unsigned int next_stride_q : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_REG10 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int temp_derived_di_prim_type_t0 : 1;
+ unsigned int temp_derived_di_small_index_t0 : 1;
+ unsigned int temp_derived_di_cull_enable_t0 : 1;
+ unsigned int temp_derived_di_pre_fetch_cull_enable_t0 : 1;
+ unsigned int di_state_sel_q : 1;
+ unsigned int last_decr_of_packet : 1;
+ unsigned int bin_valid : 1;
+ unsigned int read_block : 1;
+ unsigned int grp_bgrp_last_bit_read : 1;
+ unsigned int last_bit_enable_q : 1;
+ unsigned int last_bit_end_di_q : 1;
+ unsigned int selected_data : 8;
+ unsigned int mask_input_data : 8;
+ unsigned int gap_q : 1;
+ unsigned int temp_mini_reset_z : 1;
+ unsigned int temp_mini_reset_y : 1;
+ unsigned int temp_mini_reset_x : 1;
+ unsigned int grp_trigger : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int grp_trigger : 1;
+ unsigned int temp_mini_reset_x : 1;
+ unsigned int temp_mini_reset_y : 1;
+ unsigned int temp_mini_reset_z : 1;
+ unsigned int gap_q : 1;
+ unsigned int mask_input_data : 8;
+ unsigned int selected_data : 8;
+ unsigned int last_bit_end_di_q : 1;
+ unsigned int last_bit_enable_q : 1;
+ unsigned int grp_bgrp_last_bit_read : 1;
+ unsigned int read_block : 1;
+ unsigned int bin_valid : 1;
+ unsigned int last_decr_of_packet : 1;
+ unsigned int di_state_sel_q : 1;
+ unsigned int temp_derived_di_pre_fetch_cull_enable_t0 : 1;
+ unsigned int temp_derived_di_cull_enable_t0 : 1;
+ unsigned int temp_derived_di_small_index_t0 : 1;
+ unsigned int temp_derived_di_prim_type_t0 : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_REG12 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int shifter_byte_count_q : 5;
+ unsigned int right_word_indx_q : 5;
+ unsigned int input_data_valid : 1;
+ unsigned int input_data_xfer : 1;
+ unsigned int next_shift_is_vect_1_q : 1;
+ unsigned int next_shift_is_vect_1_d : 1;
+ unsigned int next_shift_is_vect_1_pre_d : 1;
+ unsigned int space_avail_from_shift : 1;
+ unsigned int shifter_first_load : 1;
+ unsigned int di_state_sel_q : 1;
+ unsigned int shifter_waiting_for_first_load_q : 1;
+ unsigned int di_first_group_flag_q : 1;
+ unsigned int di_event_flag_q : 1;
+ unsigned int read_draw_initiator : 1;
+ unsigned int loading_di_requires_shifter : 1;
+ unsigned int last_shift_of_packet : 1;
+ unsigned int last_decr_of_packet : 1;
+ unsigned int extract_vector : 1;
+ unsigned int shift_vect_rtr : 1;
+ unsigned int destination_rtr : 1;
+ unsigned int bgrp_trigger : 1;
+ unsigned int : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 3;
+ unsigned int bgrp_trigger : 1;
+ unsigned int destination_rtr : 1;
+ unsigned int shift_vect_rtr : 1;
+ unsigned int extract_vector : 1;
+ unsigned int last_decr_of_packet : 1;
+ unsigned int last_shift_of_packet : 1;
+ unsigned int loading_di_requires_shifter : 1;
+ unsigned int read_draw_initiator : 1;
+ unsigned int di_event_flag_q : 1;
+ unsigned int di_first_group_flag_q : 1;
+ unsigned int shifter_waiting_for_first_load_q : 1;
+ unsigned int di_state_sel_q : 1;
+ unsigned int shifter_first_load : 1;
+ unsigned int space_avail_from_shift : 1;
+ unsigned int next_shift_is_vect_1_pre_d : 1;
+ unsigned int next_shift_is_vect_1_d : 1;
+ unsigned int next_shift_is_vect_1_q : 1;
+ unsigned int input_data_xfer : 1;
+ unsigned int input_data_valid : 1;
+ unsigned int right_word_indx_q : 5;
+ unsigned int shifter_byte_count_q : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_REG13 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int di_index_counter_q : 16;
+ unsigned int shift_amount_no_extract : 4;
+ unsigned int shift_amount_extract : 4;
+ unsigned int di_prim_type_q : 6;
+ unsigned int current_source_sel : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int current_source_sel : 2;
+ unsigned int di_prim_type_q : 6;
+ unsigned int shift_amount_extract : 4;
+ unsigned int shift_amount_no_extract : 4;
+ unsigned int di_index_counter_q : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_REG14 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int current_source_sel : 2;
+ unsigned int left_word_indx_q : 5;
+ unsigned int input_data_cnt : 5;
+ unsigned int input_data_lsw : 5;
+ unsigned int input_data_msw : 5;
+ unsigned int next_small_stride_shift_limit_q : 5;
+ unsigned int current_small_stride_shift_limit_q : 5;
+#else /* !defined(qLittleEndian) */
+ unsigned int current_small_stride_shift_limit_q : 5;
+ unsigned int next_small_stride_shift_limit_q : 5;
+ unsigned int input_data_msw : 5;
+ unsigned int input_data_lsw : 5;
+ unsigned int input_data_cnt : 5;
+ unsigned int left_word_indx_q : 5;
+ unsigned int current_source_sel : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_REG15 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int next_stride_q : 5;
+ unsigned int next_stride_d : 5;
+ unsigned int current_shift_q : 5;
+ unsigned int current_shift_d : 5;
+ unsigned int current_stride_q : 5;
+ unsigned int current_stride_d : 5;
+ unsigned int bgrp_trigger : 1;
+ unsigned int : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 1;
+ unsigned int bgrp_trigger : 1;
+ unsigned int current_stride_d : 5;
+ unsigned int current_stride_q : 5;
+ unsigned int current_shift_d : 5;
+ unsigned int current_shift_q : 5;
+ unsigned int next_stride_d : 5;
+ unsigned int next_stride_q : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_REG16 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int bgrp_cull_fetch_fifo_full : 1;
+ unsigned int bgrp_cull_fetch_fifo_empty : 1;
+ unsigned int dma_bgrp_cull_fetch_read : 1;
+ unsigned int bgrp_cull_fetch_fifo_we : 1;
+ unsigned int bgrp_byte_mask_fifo_full : 1;
+ unsigned int bgrp_byte_mask_fifo_empty : 1;
+ unsigned int bgrp_byte_mask_fifo_re_q : 1;
+ unsigned int bgrp_byte_mask_fifo_we : 1;
+ unsigned int bgrp_dma_mask_kill : 1;
+ unsigned int bgrp_grp_bin_valid : 1;
+ unsigned int rst_last_bit : 1;
+ unsigned int current_state_q : 1;
+ unsigned int old_state_q : 1;
+ unsigned int old_state_en : 1;
+ unsigned int prev_last_bit_q : 1;
+ unsigned int dbl_last_bit_q : 1;
+ unsigned int last_bit_block_q : 1;
+ unsigned int ast_bit_block2_q : 1;
+ unsigned int load_empty_reg : 1;
+ unsigned int bgrp_grp_byte_mask_rdata : 8;
+ unsigned int dma_bgrp_dma_data_fifo_rptr : 2;
+ unsigned int top_di_pre_fetch_cull_enable : 1;
+ unsigned int top_di_grp_cull_enable_q : 1;
+ unsigned int bgrp_trigger : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int bgrp_trigger : 1;
+ unsigned int top_di_grp_cull_enable_q : 1;
+ unsigned int top_di_pre_fetch_cull_enable : 1;
+ unsigned int dma_bgrp_dma_data_fifo_rptr : 2;
+ unsigned int bgrp_grp_byte_mask_rdata : 8;
+ unsigned int load_empty_reg : 1;
+ unsigned int ast_bit_block2_q : 1;
+ unsigned int last_bit_block_q : 1;
+ unsigned int dbl_last_bit_q : 1;
+ unsigned int prev_last_bit_q : 1;
+ unsigned int old_state_en : 1;
+ unsigned int old_state_q : 1;
+ unsigned int current_state_q : 1;
+ unsigned int rst_last_bit : 1;
+ unsigned int bgrp_grp_bin_valid : 1;
+ unsigned int bgrp_dma_mask_kill : 1;
+ unsigned int bgrp_byte_mask_fifo_we : 1;
+ unsigned int bgrp_byte_mask_fifo_re_q : 1;
+ unsigned int bgrp_byte_mask_fifo_empty : 1;
+ unsigned int bgrp_byte_mask_fifo_full : 1;
+ unsigned int bgrp_cull_fetch_fifo_we : 1;
+ unsigned int dma_bgrp_cull_fetch_read : 1;
+ unsigned int bgrp_cull_fetch_fifo_empty : 1;
+ unsigned int bgrp_cull_fetch_fifo_full : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_REG17 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int save_read_q : 1;
+ unsigned int extend_read_q : 1;
+ unsigned int grp_indx_size : 2;
+ unsigned int cull_prim_true : 1;
+ unsigned int reset_bit2_q : 1;
+ unsigned int reset_bit1_q : 1;
+ unsigned int first_reg_first_q : 1;
+ unsigned int check_second_reg : 1;
+ unsigned int check_first_reg : 1;
+ unsigned int bgrp_cull_fetch_fifo_wdata : 1;
+ unsigned int save_cull_fetch_data2_q : 1;
+ unsigned int save_cull_fetch_data1_q : 1;
+ unsigned int save_byte_mask_data2_q : 1;
+ unsigned int save_byte_mask_data1_q : 1;
+ unsigned int to_second_reg_q : 1;
+ unsigned int roll_over_msk_q : 1;
+ unsigned int max_msk_ptr_q : 7;
+ unsigned int min_msk_ptr_q : 7;
+ unsigned int bgrp_trigger : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int bgrp_trigger : 1;
+ unsigned int min_msk_ptr_q : 7;
+ unsigned int max_msk_ptr_q : 7;
+ unsigned int roll_over_msk_q : 1;
+ unsigned int to_second_reg_q : 1;
+ unsigned int save_byte_mask_data1_q : 1;
+ unsigned int save_byte_mask_data2_q : 1;
+ unsigned int save_cull_fetch_data1_q : 1;
+ unsigned int save_cull_fetch_data2_q : 1;
+ unsigned int bgrp_cull_fetch_fifo_wdata : 1;
+ unsigned int check_first_reg : 1;
+ unsigned int check_second_reg : 1;
+ unsigned int first_reg_first_q : 1;
+ unsigned int reset_bit1_q : 1;
+ unsigned int reset_bit2_q : 1;
+ unsigned int cull_prim_true : 1;
+ unsigned int grp_indx_size : 2;
+ unsigned int extend_read_q : 1;
+ unsigned int save_read_q : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_REG18 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int dma_data_fifo_mem_raddr : 6;
+ unsigned int dma_data_fifo_mem_waddr : 6;
+ unsigned int dma_bgrp_byte_mask_fifo_re : 1;
+ unsigned int dma_bgrp_dma_data_fifo_rptr : 2;
+ unsigned int dma_mem_full : 1;
+ unsigned int dma_ram_re : 1;
+ unsigned int dma_ram_we : 1;
+ unsigned int dma_mem_empty : 1;
+ unsigned int dma_data_fifo_mem_re : 1;
+ unsigned int dma_data_fifo_mem_we : 1;
+ unsigned int bin_mem_full : 1;
+ unsigned int bin_ram_we : 1;
+ unsigned int bin_ram_re : 1;
+ unsigned int bin_mem_empty : 1;
+ unsigned int start_bin_req : 1;
+ unsigned int fetch_cull_not_used : 1;
+ unsigned int dma_req_xfer : 1;
+ unsigned int have_valid_bin_req : 1;
+ unsigned int have_valid_dma_req : 1;
+ unsigned int bgrp_dma_di_grp_cull_enable : 1;
+ unsigned int bgrp_dma_di_pre_fetch_cull_enable : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int bgrp_dma_di_pre_fetch_cull_enable : 1;
+ unsigned int bgrp_dma_di_grp_cull_enable : 1;
+ unsigned int have_valid_dma_req : 1;
+ unsigned int have_valid_bin_req : 1;
+ unsigned int dma_req_xfer : 1;
+ unsigned int fetch_cull_not_used : 1;
+ unsigned int start_bin_req : 1;
+ unsigned int bin_mem_empty : 1;
+ unsigned int bin_ram_re : 1;
+ unsigned int bin_ram_we : 1;
+ unsigned int bin_mem_full : 1;
+ unsigned int dma_data_fifo_mem_we : 1;
+ unsigned int dma_data_fifo_mem_re : 1;
+ unsigned int dma_mem_empty : 1;
+ unsigned int dma_ram_we : 1;
+ unsigned int dma_ram_re : 1;
+ unsigned int dma_mem_full : 1;
+ unsigned int dma_bgrp_dma_data_fifo_rptr : 2;
+ unsigned int dma_bgrp_byte_mask_fifo_re : 1;
+ unsigned int dma_data_fifo_mem_waddr : 6;
+ unsigned int dma_data_fifo_mem_raddr : 6;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_REG20 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int prim_side_indx_valid : 1;
+ unsigned int indx_side_fifo_empty : 1;
+ unsigned int indx_side_fifo_re : 1;
+ unsigned int indx_side_fifo_we : 1;
+ unsigned int indx_side_fifo_full : 1;
+ unsigned int prim_buffer_empty : 1;
+ unsigned int prim_buffer_re : 1;
+ unsigned int prim_buffer_we : 1;
+ unsigned int prim_buffer_full : 1;
+ unsigned int indx_buffer_empty : 1;
+ unsigned int indx_buffer_re : 1;
+ unsigned int indx_buffer_we : 1;
+ unsigned int indx_buffer_full : 1;
+ unsigned int hold_prim : 1;
+ unsigned int sent_cnt : 4;
+ unsigned int start_of_vtx_vector : 1;
+ unsigned int clip_s_pre_hold_prim : 1;
+ unsigned int clip_p_pre_hold_prim : 1;
+ unsigned int buffered_prim_type_event : 5;
+ unsigned int out_trigger : 1;
+ unsigned int : 5;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 5;
+ unsigned int out_trigger : 1;
+ unsigned int buffered_prim_type_event : 5;
+ unsigned int clip_p_pre_hold_prim : 1;
+ unsigned int clip_s_pre_hold_prim : 1;
+ unsigned int start_of_vtx_vector : 1;
+ unsigned int sent_cnt : 4;
+ unsigned int hold_prim : 1;
+ unsigned int indx_buffer_full : 1;
+ unsigned int indx_buffer_we : 1;
+ unsigned int indx_buffer_re : 1;
+ unsigned int indx_buffer_empty : 1;
+ unsigned int prim_buffer_full : 1;
+ unsigned int prim_buffer_we : 1;
+ unsigned int prim_buffer_re : 1;
+ unsigned int prim_buffer_empty : 1;
+ unsigned int indx_side_fifo_full : 1;
+ unsigned int indx_side_fifo_we : 1;
+ unsigned int indx_side_fifo_re : 1;
+ unsigned int indx_side_fifo_empty : 1;
+ unsigned int prim_side_indx_valid : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_REG21 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int null_terminate_vtx_vector : 1;
+ unsigned int prim_end_of_vtx_vect_flags : 3;
+ unsigned int alloc_counter_q : 3;
+ unsigned int curr_slot_in_vtx_vect_q : 3;
+ unsigned int int_vtx_counter_q : 4;
+ unsigned int curr_dealloc_distance_q : 4;
+ unsigned int new_packet_q : 1;
+ unsigned int new_allocate_q : 1;
+ unsigned int num_new_unique_rel_indx : 2;
+ unsigned int inserted_null_prim_q : 1;
+ unsigned int insert_null_prim : 1;
+ unsigned int buffered_prim_eop_mux : 1;
+ unsigned int prim_buffer_empty_mux : 1;
+ unsigned int buffered_thread_size : 1;
+ unsigned int : 4;
+ unsigned int out_trigger : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int out_trigger : 1;
+ unsigned int : 4;
+ unsigned int buffered_thread_size : 1;
+ unsigned int prim_buffer_empty_mux : 1;
+ unsigned int buffered_prim_eop_mux : 1;
+ unsigned int insert_null_prim : 1;
+ unsigned int inserted_null_prim_q : 1;
+ unsigned int num_new_unique_rel_indx : 2;
+ unsigned int new_allocate_q : 1;
+ unsigned int new_packet_q : 1;
+ unsigned int curr_dealloc_distance_q : 4;
+ unsigned int int_vtx_counter_q : 4;
+ unsigned int curr_slot_in_vtx_vect_q : 3;
+ unsigned int alloc_counter_q : 3;
+ unsigned int prim_end_of_vtx_vect_flags : 3;
+ unsigned int null_terminate_vtx_vector : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_CRC_SQ_DATA {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CRC : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int CRC : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_CRC_SQ_CTRL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CRC : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int CRC : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_PERFCOUNTER0_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_SEL : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERF_SEL : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_PERFCOUNTER1_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_SEL : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERF_SEL : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_PERFCOUNTER2_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_SEL : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERF_SEL : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_PERFCOUNTER3_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_SEL : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERF_SEL : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_PERFCOUNTER0_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERF_COUNT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_PERFCOUNTER1_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERF_COUNT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_PERFCOUNTER2_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERF_COUNT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_PERFCOUNTER3_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERF_COUNT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_PERFCOUNTER0_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERF_COUNT : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_PERFCOUNTER1_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERF_COUNT : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_PERFCOUNTER2_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERF_COUNT : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_PERFCOUNTER3_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERF_COUNT : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TC_CNTL_STATUS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int L2_INVALIDATE : 1;
+ unsigned int : 17;
+ unsigned int TC_L2_HIT_MISS : 2;
+ unsigned int : 11;
+ unsigned int TC_BUSY : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int TC_BUSY : 1;
+ unsigned int : 11;
+ unsigned int TC_L2_HIT_MISS : 2;
+ unsigned int : 17;
+ unsigned int L2_INVALIDATE : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCR_CHICKEN {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SPARE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int SPARE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_CHICKEN {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SPARE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int SPARE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCM_CHICKEN {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TCO_READ_LATENCY_FIFO_PROG_DEPTH : 8;
+ unsigned int ETC_COLOR_ENDIAN : 1;
+ unsigned int SPARE : 23;
+#else /* !defined(qLittleEndian) */
+ unsigned int SPARE : 23;
+ unsigned int ETC_COLOR_ENDIAN : 1;
+ unsigned int TCO_READ_LATENCY_FIFO_PROG_DEPTH : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCR_PERFCOUNTER0_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_SELECT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERFCOUNTER_SELECT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCR_PERFCOUNTER1_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_SELECT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERFCOUNTER_SELECT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCR_PERFCOUNTER0_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCR_PERFCOUNTER1_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCR_PERFCOUNTER0_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCR_PERFCOUNTER1_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TP_TC_CLKGATE_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TP_BUSY_EXTEND : 3;
+ unsigned int TC_BUSY_EXTEND : 3;
+ unsigned int : 26;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 26;
+ unsigned int TC_BUSY_EXTEND : 3;
+ unsigned int TP_BUSY_EXTEND : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TPC_CNTL_STATUS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TPC_INPUT_BUSY : 1;
+ unsigned int TPC_TC_FIFO_BUSY : 1;
+ unsigned int TPC_STATE_FIFO_BUSY : 1;
+ unsigned int TPC_FETCH_FIFO_BUSY : 1;
+ unsigned int TPC_WALKER_PIPE_BUSY : 1;
+ unsigned int TPC_WALK_FIFO_BUSY : 1;
+ unsigned int TPC_WALKER_BUSY : 1;
+ unsigned int : 1;
+ unsigned int TPC_ALIGNER_PIPE_BUSY : 1;
+ unsigned int TPC_ALIGN_FIFO_BUSY : 1;
+ unsigned int TPC_ALIGNER_BUSY : 1;
+ unsigned int : 1;
+ unsigned int TPC_RR_FIFO_BUSY : 1;
+ unsigned int TPC_BLEND_PIPE_BUSY : 1;
+ unsigned int TPC_OUT_FIFO_BUSY : 1;
+ unsigned int TPC_BLEND_BUSY : 1;
+ unsigned int TF_TW_RTS : 1;
+ unsigned int TF_TW_STATE_RTS : 1;
+ unsigned int : 1;
+ unsigned int TF_TW_RTR : 1;
+ unsigned int TW_TA_RTS : 1;
+ unsigned int TW_TA_TT_RTS : 1;
+ unsigned int TW_TA_LAST_RTS : 1;
+ unsigned int TW_TA_RTR : 1;
+ unsigned int TA_TB_RTS : 1;
+ unsigned int TA_TB_TT_RTS : 1;
+ unsigned int : 1;
+ unsigned int TA_TB_RTR : 1;
+ unsigned int TA_TF_RTS : 1;
+ unsigned int TA_TF_TC_FIFO_REN : 1;
+ unsigned int TP_SQ_DEC : 1;
+ unsigned int TPC_BUSY : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int TPC_BUSY : 1;
+ unsigned int TP_SQ_DEC : 1;
+ unsigned int TA_TF_TC_FIFO_REN : 1;
+ unsigned int TA_TF_RTS : 1;
+ unsigned int TA_TB_RTR : 1;
+ unsigned int : 1;
+ unsigned int TA_TB_TT_RTS : 1;
+ unsigned int TA_TB_RTS : 1;
+ unsigned int TW_TA_RTR : 1;
+ unsigned int TW_TA_LAST_RTS : 1;
+ unsigned int TW_TA_TT_RTS : 1;
+ unsigned int TW_TA_RTS : 1;
+ unsigned int TF_TW_RTR : 1;
+ unsigned int : 1;
+ unsigned int TF_TW_STATE_RTS : 1;
+ unsigned int TF_TW_RTS : 1;
+ unsigned int TPC_BLEND_BUSY : 1;
+ unsigned int TPC_OUT_FIFO_BUSY : 1;
+ unsigned int TPC_BLEND_PIPE_BUSY : 1;
+ unsigned int TPC_RR_FIFO_BUSY : 1;
+ unsigned int : 1;
+ unsigned int TPC_ALIGNER_BUSY : 1;
+ unsigned int TPC_ALIGN_FIFO_BUSY : 1;
+ unsigned int TPC_ALIGNER_PIPE_BUSY : 1;
+ unsigned int : 1;
+ unsigned int TPC_WALKER_BUSY : 1;
+ unsigned int TPC_WALK_FIFO_BUSY : 1;
+ unsigned int TPC_WALKER_PIPE_BUSY : 1;
+ unsigned int TPC_FETCH_FIFO_BUSY : 1;
+ unsigned int TPC_STATE_FIFO_BUSY : 1;
+ unsigned int TPC_TC_FIFO_BUSY : 1;
+ unsigned int TPC_INPUT_BUSY : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TPC_DEBUG0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int LOD_CNTL : 2;
+ unsigned int IC_CTR : 2;
+ unsigned int WALKER_CNTL : 4;
+ unsigned int ALIGNER_CNTL : 3;
+ unsigned int : 1;
+ unsigned int PREV_TC_STATE_VALID : 1;
+ unsigned int : 3;
+ unsigned int WALKER_STATE : 10;
+ unsigned int ALIGNER_STATE : 2;
+ unsigned int : 1;
+ unsigned int REG_CLK_EN : 1;
+ unsigned int TPC_CLK_EN : 1;
+ unsigned int SQ_TP_WAKEUP : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int SQ_TP_WAKEUP : 1;
+ unsigned int TPC_CLK_EN : 1;
+ unsigned int REG_CLK_EN : 1;
+ unsigned int : 1;
+ unsigned int ALIGNER_STATE : 2;
+ unsigned int WALKER_STATE : 10;
+ unsigned int : 3;
+ unsigned int PREV_TC_STATE_VALID : 1;
+ unsigned int : 1;
+ unsigned int ALIGNER_CNTL : 3;
+ unsigned int WALKER_CNTL : 4;
+ unsigned int IC_CTR : 2;
+ unsigned int LOD_CNTL : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TPC_DEBUG1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int UNUSED : 1;
+ unsigned int : 31;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 31;
+ unsigned int UNUSED : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TPC_CHICKEN {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BLEND_PRECISION : 1;
+ unsigned int SPARE : 31;
+#else /* !defined(qLittleEndian) */
+ unsigned int SPARE : 31;
+ unsigned int BLEND_PRECISION : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TP0_CNTL_STATUS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TP_INPUT_BUSY : 1;
+ unsigned int TP_LOD_BUSY : 1;
+ unsigned int TP_LOD_FIFO_BUSY : 1;
+ unsigned int TP_ADDR_BUSY : 1;
+ unsigned int TP_ALIGN_FIFO_BUSY : 1;
+ unsigned int TP_ALIGNER_BUSY : 1;
+ unsigned int TP_TC_FIFO_BUSY : 1;
+ unsigned int TP_RR_FIFO_BUSY : 1;
+ unsigned int TP_FETCH_BUSY : 1;
+ unsigned int TP_CH_BLEND_BUSY : 1;
+ unsigned int TP_TT_BUSY : 1;
+ unsigned int TP_HICOLOR_BUSY : 1;
+ unsigned int TP_BLEND_BUSY : 1;
+ unsigned int TP_OUT_FIFO_BUSY : 1;
+ unsigned int TP_OUTPUT_BUSY : 1;
+ unsigned int : 1;
+ unsigned int IN_LC_RTS : 1;
+ unsigned int LC_LA_RTS : 1;
+ unsigned int LA_FL_RTS : 1;
+ unsigned int FL_TA_RTS : 1;
+ unsigned int TA_FA_RTS : 1;
+ unsigned int TA_FA_TT_RTS : 1;
+ unsigned int FA_AL_RTS : 1;
+ unsigned int FA_AL_TT_RTS : 1;
+ unsigned int AL_TF_RTS : 1;
+ unsigned int AL_TF_TT_RTS : 1;
+ unsigned int TF_TB_RTS : 1;
+ unsigned int TF_TB_TT_RTS : 1;
+ unsigned int TB_TT_RTS : 1;
+ unsigned int TB_TT_TT_RESET : 1;
+ unsigned int TB_TO_RTS : 1;
+ unsigned int TP_BUSY : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int TP_BUSY : 1;
+ unsigned int TB_TO_RTS : 1;
+ unsigned int TB_TT_TT_RESET : 1;
+ unsigned int TB_TT_RTS : 1;
+ unsigned int TF_TB_TT_RTS : 1;
+ unsigned int TF_TB_RTS : 1;
+ unsigned int AL_TF_TT_RTS : 1;
+ unsigned int AL_TF_RTS : 1;
+ unsigned int FA_AL_TT_RTS : 1;
+ unsigned int FA_AL_RTS : 1;
+ unsigned int TA_FA_TT_RTS : 1;
+ unsigned int TA_FA_RTS : 1;
+ unsigned int FL_TA_RTS : 1;
+ unsigned int LA_FL_RTS : 1;
+ unsigned int LC_LA_RTS : 1;
+ unsigned int IN_LC_RTS : 1;
+ unsigned int : 1;
+ unsigned int TP_OUTPUT_BUSY : 1;
+ unsigned int TP_OUT_FIFO_BUSY : 1;
+ unsigned int TP_BLEND_BUSY : 1;
+ unsigned int TP_HICOLOR_BUSY : 1;
+ unsigned int TP_TT_BUSY : 1;
+ unsigned int TP_CH_BLEND_BUSY : 1;
+ unsigned int TP_FETCH_BUSY : 1;
+ unsigned int TP_RR_FIFO_BUSY : 1;
+ unsigned int TP_TC_FIFO_BUSY : 1;
+ unsigned int TP_ALIGNER_BUSY : 1;
+ unsigned int TP_ALIGN_FIFO_BUSY : 1;
+ unsigned int TP_ADDR_BUSY : 1;
+ unsigned int TP_LOD_FIFO_BUSY : 1;
+ unsigned int TP_LOD_BUSY : 1;
+ unsigned int TP_INPUT_BUSY : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TP0_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int Q_LOD_CNTL : 2;
+ unsigned int : 1;
+ unsigned int Q_SQ_TP_WAKEUP : 1;
+ unsigned int FL_TA_ADDRESSER_CNTL : 17;
+ unsigned int REG_CLK_EN : 1;
+ unsigned int PERF_CLK_EN : 1;
+ unsigned int TP_CLK_EN : 1;
+ unsigned int Q_WALKER_CNTL : 4;
+ unsigned int Q_ALIGNER_CNTL : 3;
+ unsigned int : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 1;
+ unsigned int Q_ALIGNER_CNTL : 3;
+ unsigned int Q_WALKER_CNTL : 4;
+ unsigned int TP_CLK_EN : 1;
+ unsigned int PERF_CLK_EN : 1;
+ unsigned int REG_CLK_EN : 1;
+ unsigned int FL_TA_ADDRESSER_CNTL : 17;
+ unsigned int Q_SQ_TP_WAKEUP : 1;
+ unsigned int : 1;
+ unsigned int Q_LOD_CNTL : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TP0_CHICKEN {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TT_MODE : 1;
+ unsigned int VFETCH_ADDRESS_MODE : 1;
+ unsigned int SPARE : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int SPARE : 30;
+ unsigned int VFETCH_ADDRESS_MODE : 1;
+ unsigned int TT_MODE : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TP0_PERFCOUNTER0_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_SELECT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERFCOUNTER_SELECT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TP0_PERFCOUNTER0_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TP0_PERFCOUNTER0_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TP0_PERFCOUNTER1_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_SELECT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERFCOUNTER_SELECT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TP0_PERFCOUNTER1_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TP0_PERFCOUNTER1_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCM_PERFCOUNTER0_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_SELECT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERFCOUNTER_SELECT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCM_PERFCOUNTER1_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_SELECT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERFCOUNTER_SELECT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCM_PERFCOUNTER0_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCM_PERFCOUNTER1_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCM_PERFCOUNTER0_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCM_PERFCOUNTER1_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER0_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_SELECT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERFCOUNTER_SELECT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER1_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_SELECT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERFCOUNTER_SELECT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER2_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_SELECT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERFCOUNTER_SELECT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER3_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_SELECT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERFCOUNTER_SELECT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER4_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_SELECT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERFCOUNTER_SELECT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER5_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_SELECT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERFCOUNTER_SELECT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER6_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_SELECT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERFCOUNTER_SELECT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER7_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_SELECT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERFCOUNTER_SELECT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER8_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_SELECT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERFCOUNTER_SELECT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER9_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_SELECT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERFCOUNTER_SELECT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER10_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_SELECT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERFCOUNTER_SELECT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER11_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_SELECT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERFCOUNTER_SELECT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER0_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER1_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER2_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER3_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER4_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER5_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER6_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER7_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER8_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER9_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER10_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER11_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER0_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER1_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER2_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER3_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER4_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER5_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER6_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER7_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER8_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER9_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER10_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER11_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 6;
+ unsigned int not_MH_TC_rtr : 1;
+ unsigned int TC_MH_send : 1;
+ unsigned int not_FG0_rtr : 1;
+ unsigned int : 3;
+ unsigned int not_TCB_TCO_rtr : 1;
+ unsigned int TCB_ff_stall : 1;
+ unsigned int TCB_miss_stall : 1;
+ unsigned int TCA_TCB_stall : 1;
+ unsigned int PF0_stall : 1;
+ unsigned int : 3;
+ unsigned int TP0_full : 1;
+ unsigned int : 3;
+ unsigned int TPC_full : 1;
+ unsigned int not_TPC_rtr : 1;
+ unsigned int tca_state_rts : 1;
+ unsigned int tca_rts : 1;
+ unsigned int : 4;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 4;
+ unsigned int tca_rts : 1;
+ unsigned int tca_state_rts : 1;
+ unsigned int not_TPC_rtr : 1;
+ unsigned int TPC_full : 1;
+ unsigned int : 3;
+ unsigned int TP0_full : 1;
+ unsigned int : 3;
+ unsigned int PF0_stall : 1;
+ unsigned int TCA_TCB_stall : 1;
+ unsigned int TCB_miss_stall : 1;
+ unsigned int TCB_ff_stall : 1;
+ unsigned int not_TCB_TCO_rtr : 1;
+ unsigned int : 3;
+ unsigned int not_FG0_rtr : 1;
+ unsigned int TC_MH_send : 1;
+ unsigned int not_MH_TC_rtr : 1;
+ unsigned int : 6;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCA_FIFO_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int tp0_full : 1;
+ unsigned int : 3;
+ unsigned int tpc_full : 1;
+ unsigned int load_tpc_fifo : 1;
+ unsigned int load_tp_fifos : 1;
+ unsigned int FW_full : 1;
+ unsigned int not_FW_rtr0 : 1;
+ unsigned int : 3;
+ unsigned int FW_rts0 : 1;
+ unsigned int : 3;
+ unsigned int not_FW_tpc_rtr : 1;
+ unsigned int FW_tpc_rts : 1;
+ unsigned int : 14;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 14;
+ unsigned int FW_tpc_rts : 1;
+ unsigned int not_FW_tpc_rtr : 1;
+ unsigned int : 3;
+ unsigned int FW_rts0 : 1;
+ unsigned int : 3;
+ unsigned int not_FW_rtr0 : 1;
+ unsigned int FW_full : 1;
+ unsigned int load_tp_fifos : 1;
+ unsigned int load_tpc_fifo : 1;
+ unsigned int tpc_full : 1;
+ unsigned int : 3;
+ unsigned int tp0_full : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCA_PROBE_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ProbeFilter_stall : 1;
+ unsigned int : 31;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 31;
+ unsigned int ProbeFilter_stall : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCA_TPC_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 12;
+ unsigned int captue_state_rts : 1;
+ unsigned int capture_tca_rts : 1;
+ unsigned int : 18;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 18;
+ unsigned int capture_tca_rts : 1;
+ unsigned int captue_state_rts : 1;
+ unsigned int : 12;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCB_CORE_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int access512 : 1;
+ unsigned int tiled : 1;
+ unsigned int : 2;
+ unsigned int opcode : 3;
+ unsigned int : 1;
+ unsigned int format : 6;
+ unsigned int : 2;
+ unsigned int sector_format : 5;
+ unsigned int : 3;
+ unsigned int sector_format512 : 3;
+ unsigned int : 5;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 5;
+ unsigned int sector_format512 : 3;
+ unsigned int : 3;
+ unsigned int sector_format : 5;
+ unsigned int : 2;
+ unsigned int format : 6;
+ unsigned int : 1;
+ unsigned int opcode : 3;
+ unsigned int : 2;
+ unsigned int tiled : 1;
+ unsigned int access512 : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCB_TAG0_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int mem_read_cycle : 10;
+ unsigned int : 2;
+ unsigned int tag_access_cycle : 9;
+ unsigned int : 2;
+ unsigned int miss_stall : 1;
+ unsigned int num_feee_lines : 5;
+ unsigned int max_misses : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int max_misses : 3;
+ unsigned int num_feee_lines : 5;
+ unsigned int miss_stall : 1;
+ unsigned int : 2;
+ unsigned int tag_access_cycle : 9;
+ unsigned int : 2;
+ unsigned int mem_read_cycle : 10;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCB_TAG1_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int mem_read_cycle : 10;
+ unsigned int : 2;
+ unsigned int tag_access_cycle : 9;
+ unsigned int : 2;
+ unsigned int miss_stall : 1;
+ unsigned int num_feee_lines : 5;
+ unsigned int max_misses : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int max_misses : 3;
+ unsigned int num_feee_lines : 5;
+ unsigned int miss_stall : 1;
+ unsigned int : 2;
+ unsigned int tag_access_cycle : 9;
+ unsigned int : 2;
+ unsigned int mem_read_cycle : 10;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCB_TAG2_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int mem_read_cycle : 10;
+ unsigned int : 2;
+ unsigned int tag_access_cycle : 9;
+ unsigned int : 2;
+ unsigned int miss_stall : 1;
+ unsigned int num_feee_lines : 5;
+ unsigned int max_misses : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int max_misses : 3;
+ unsigned int num_feee_lines : 5;
+ unsigned int miss_stall : 1;
+ unsigned int : 2;
+ unsigned int tag_access_cycle : 9;
+ unsigned int : 2;
+ unsigned int mem_read_cycle : 10;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCB_TAG3_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int mem_read_cycle : 10;
+ unsigned int : 2;
+ unsigned int tag_access_cycle : 9;
+ unsigned int : 2;
+ unsigned int miss_stall : 1;
+ unsigned int num_feee_lines : 5;
+ unsigned int max_misses : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int max_misses : 3;
+ unsigned int num_feee_lines : 5;
+ unsigned int miss_stall : 1;
+ unsigned int : 2;
+ unsigned int tag_access_cycle : 9;
+ unsigned int : 2;
+ unsigned int mem_read_cycle : 10;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int left_done : 1;
+ unsigned int : 1;
+ unsigned int fg0_sends_left : 1;
+ unsigned int : 1;
+ unsigned int one_sector_to_go_left_q : 1;
+ unsigned int no_sectors_to_go : 1;
+ unsigned int update_left : 1;
+ unsigned int sector_mask_left_count_q : 5;
+ unsigned int sector_mask_left_q : 16;
+ unsigned int valid_left_q : 1;
+ unsigned int : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 3;
+ unsigned int valid_left_q : 1;
+ unsigned int sector_mask_left_q : 16;
+ unsigned int sector_mask_left_count_q : 5;
+ unsigned int update_left : 1;
+ unsigned int no_sectors_to_go : 1;
+ unsigned int one_sector_to_go_left_q : 1;
+ unsigned int : 1;
+ unsigned int fg0_sends_left : 1;
+ unsigned int : 1;
+ unsigned int left_done : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCB_FETCH_GEN_WALKER_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 4;
+ unsigned int quad_sel_left : 2;
+ unsigned int set_sel_left : 2;
+ unsigned int : 3;
+ unsigned int right_eq_left : 1;
+ unsigned int ff_fg_type512 : 3;
+ unsigned int busy : 1;
+ unsigned int setquads_to_send : 4;
+ unsigned int : 12;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 12;
+ unsigned int setquads_to_send : 4;
+ unsigned int busy : 1;
+ unsigned int ff_fg_type512 : 3;
+ unsigned int right_eq_left : 1;
+ unsigned int : 3;
+ unsigned int set_sel_left : 2;
+ unsigned int quad_sel_left : 2;
+ unsigned int : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCB_FETCH_GEN_PIPE0_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int tc0_arb_rts : 1;
+ unsigned int : 1;
+ unsigned int ga_out_rts : 1;
+ unsigned int : 1;
+ unsigned int tc_arb_format : 12;
+ unsigned int tc_arb_fmsopcode : 5;
+ unsigned int tc_arb_request_type : 2;
+ unsigned int busy : 1;
+ unsigned int fgo_busy : 1;
+ unsigned int ga_busy : 1;
+ unsigned int mc_sel_q : 2;
+ unsigned int valid_q : 1;
+ unsigned int : 1;
+ unsigned int arb_RTR : 1;
+ unsigned int : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 1;
+ unsigned int arb_RTR : 1;
+ unsigned int : 1;
+ unsigned int valid_q : 1;
+ unsigned int mc_sel_q : 2;
+ unsigned int ga_busy : 1;
+ unsigned int fgo_busy : 1;
+ unsigned int busy : 1;
+ unsigned int tc_arb_request_type : 2;
+ unsigned int tc_arb_fmsopcode : 5;
+ unsigned int tc_arb_format : 12;
+ unsigned int : 1;
+ unsigned int ga_out_rts : 1;
+ unsigned int : 1;
+ unsigned int tc0_arb_rts : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCD_INPUT0_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 16;
+ unsigned int empty : 1;
+ unsigned int full : 1;
+ unsigned int : 2;
+ unsigned int valid_q1 : 1;
+ unsigned int cnt_q1 : 2;
+ unsigned int last_send_q1 : 1;
+ unsigned int ip_send : 1;
+ unsigned int ipbuf_dxt_send : 1;
+ unsigned int ipbuf_busy : 1;
+ unsigned int : 5;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 5;
+ unsigned int ipbuf_busy : 1;
+ unsigned int ipbuf_dxt_send : 1;
+ unsigned int ip_send : 1;
+ unsigned int last_send_q1 : 1;
+ unsigned int cnt_q1 : 2;
+ unsigned int valid_q1 : 1;
+ unsigned int : 2;
+ unsigned int full : 1;
+ unsigned int empty : 1;
+ unsigned int : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCD_DEGAMMA_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int dgmm_ftfconv_dgmmen : 2;
+ unsigned int dgmm_ctrl_dgmm8 : 1;
+ unsigned int dgmm_ctrl_last_send : 1;
+ unsigned int dgmm_ctrl_send : 1;
+ unsigned int dgmm_stall : 1;
+ unsigned int dgmm_pstate : 1;
+ unsigned int : 25;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 25;
+ unsigned int dgmm_pstate : 1;
+ unsigned int dgmm_stall : 1;
+ unsigned int dgmm_ctrl_send : 1;
+ unsigned int dgmm_ctrl_last_send : 1;
+ unsigned int dgmm_ctrl_dgmm8 : 1;
+ unsigned int dgmm_ftfconv_dgmmen : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCD_DXTMUX_SCTARB_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 9;
+ unsigned int pstate : 1;
+ unsigned int sctrmx_rtr : 1;
+ unsigned int dxtc_rtr : 1;
+ unsigned int : 3;
+ unsigned int sctrarb_multcyl_send : 1;
+ unsigned int sctrmx0_sctrarb_rts : 1;
+ unsigned int : 3;
+ unsigned int dxtc_sctrarb_send : 1;
+ unsigned int : 6;
+ unsigned int dxtc_dgmmpd_last_send : 1;
+ unsigned int dxtc_dgmmpd_send : 1;
+ unsigned int dcmp_mux_send : 1;
+ unsigned int : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 2;
+ unsigned int dcmp_mux_send : 1;
+ unsigned int dxtc_dgmmpd_send : 1;
+ unsigned int dxtc_dgmmpd_last_send : 1;
+ unsigned int : 6;
+ unsigned int dxtc_sctrarb_send : 1;
+ unsigned int : 3;
+ unsigned int sctrmx0_sctrarb_rts : 1;
+ unsigned int sctrarb_multcyl_send : 1;
+ unsigned int : 3;
+ unsigned int dxtc_rtr : 1;
+ unsigned int sctrmx_rtr : 1;
+ unsigned int pstate : 1;
+ unsigned int : 9;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCD_DXTC_ARB_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 4;
+ unsigned int n0_stall : 1;
+ unsigned int pstate : 1;
+ unsigned int arb_dcmp01_last_send : 1;
+ unsigned int arb_dcmp01_cnt : 2;
+ unsigned int arb_dcmp01_sector : 3;
+ unsigned int arb_dcmp01_cacheline : 6;
+ unsigned int arb_dcmp01_format : 12;
+ unsigned int arb_dcmp01_send : 1;
+ unsigned int n0_dxt2_4_types : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int n0_dxt2_4_types : 1;
+ unsigned int arb_dcmp01_send : 1;
+ unsigned int arb_dcmp01_format : 12;
+ unsigned int arb_dcmp01_cacheline : 6;
+ unsigned int arb_dcmp01_sector : 3;
+ unsigned int arb_dcmp01_cnt : 2;
+ unsigned int arb_dcmp01_last_send : 1;
+ unsigned int pstate : 1;
+ unsigned int n0_stall : 1;
+ unsigned int : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCD_STALLS_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 10;
+ unsigned int not_multcyl_sctrarb_rtr : 1;
+ unsigned int not_sctrmx0_sctrarb_rtr : 1;
+ unsigned int : 5;
+ unsigned int not_dcmp0_arb_rtr : 1;
+ unsigned int not_dgmmpd_dxtc_rtr : 1;
+ unsigned int not_mux_dcmp_rtr : 1;
+ unsigned int : 11;
+ unsigned int not_incoming_rtr : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int not_incoming_rtr : 1;
+ unsigned int : 11;
+ unsigned int not_mux_dcmp_rtr : 1;
+ unsigned int not_dgmmpd_dxtc_rtr : 1;
+ unsigned int not_dcmp0_arb_rtr : 1;
+ unsigned int : 5;
+ unsigned int not_sctrmx0_sctrarb_rtr : 1;
+ unsigned int not_multcyl_sctrarb_rtr : 1;
+ unsigned int : 10;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCO_STALLS_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 5;
+ unsigned int quad0_sg_crd_RTR : 1;
+ unsigned int quad0_rl_sg_RTR : 1;
+ unsigned int quad0_TCO_TCB_rtr_d : 1;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int quad0_TCO_TCB_rtr_d : 1;
+ unsigned int quad0_rl_sg_RTR : 1;
+ unsigned int quad0_sg_crd_RTR : 1;
+ unsigned int : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCO_QUAD0_DEBUG0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int rl_sg_sector_format : 8;
+ unsigned int rl_sg_end_of_sample : 1;
+ unsigned int rl_sg_rtr : 1;
+ unsigned int rl_sg_rts : 1;
+ unsigned int sg_crd_end_of_sample : 1;
+ unsigned int sg_crd_rtr : 1;
+ unsigned int sg_crd_rts : 1;
+ unsigned int : 2;
+ unsigned int stageN1_valid_q : 1;
+ unsigned int : 7;
+ unsigned int read_cache_q : 1;
+ unsigned int cache_read_RTR : 1;
+ unsigned int all_sectors_written_set3 : 1;
+ unsigned int all_sectors_written_set2 : 1;
+ unsigned int all_sectors_written_set1 : 1;
+ unsigned int all_sectors_written_set0 : 1;
+ unsigned int busy : 1;
+ unsigned int : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 1;
+ unsigned int busy : 1;
+ unsigned int all_sectors_written_set0 : 1;
+ unsigned int all_sectors_written_set1 : 1;
+ unsigned int all_sectors_written_set2 : 1;
+ unsigned int all_sectors_written_set3 : 1;
+ unsigned int cache_read_RTR : 1;
+ unsigned int read_cache_q : 1;
+ unsigned int : 7;
+ unsigned int stageN1_valid_q : 1;
+ unsigned int : 2;
+ unsigned int sg_crd_rts : 1;
+ unsigned int sg_crd_rtr : 1;
+ unsigned int sg_crd_end_of_sample : 1;
+ unsigned int rl_sg_rts : 1;
+ unsigned int rl_sg_rtr : 1;
+ unsigned int rl_sg_end_of_sample : 1;
+ unsigned int rl_sg_sector_format : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCO_QUAD0_DEBUG1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int fifo_busy : 1;
+ unsigned int empty : 1;
+ unsigned int full : 1;
+ unsigned int write_enable : 1;
+ unsigned int fifo_write_ptr : 7;
+ unsigned int fifo_read_ptr : 7;
+ unsigned int : 2;
+ unsigned int cache_read_busy : 1;
+ unsigned int latency_fifo_busy : 1;
+ unsigned int input_quad_busy : 1;
+ unsigned int tco_quad_pipe_busy : 1;
+ unsigned int TCB_TCO_rtr_d : 1;
+ unsigned int TCB_TCO_xfc_q : 1;
+ unsigned int rl_sg_rtr : 1;
+ unsigned int rl_sg_rts : 1;
+ unsigned int sg_crd_rtr : 1;
+ unsigned int sg_crd_rts : 1;
+ unsigned int TCO_TCB_read_xfc : 1;
+ unsigned int : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 1;
+ unsigned int TCO_TCB_read_xfc : 1;
+ unsigned int sg_crd_rts : 1;
+ unsigned int sg_crd_rtr : 1;
+ unsigned int rl_sg_rts : 1;
+ unsigned int rl_sg_rtr : 1;
+ unsigned int TCB_TCO_xfc_q : 1;
+ unsigned int TCB_TCO_rtr_d : 1;
+ unsigned int tco_quad_pipe_busy : 1;
+ unsigned int input_quad_busy : 1;
+ unsigned int latency_fifo_busy : 1;
+ unsigned int cache_read_busy : 1;
+ unsigned int : 2;
+ unsigned int fifo_read_ptr : 7;
+ unsigned int fifo_write_ptr : 7;
+ unsigned int write_enable : 1;
+ unsigned int full : 1;
+ unsigned int empty : 1;
+ unsigned int fifo_busy : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_GPR_MANAGEMENT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int REG_DYNAMIC : 1;
+ unsigned int : 3;
+ unsigned int REG_SIZE_PIX : 7;
+ unsigned int : 1;
+ unsigned int REG_SIZE_VTX : 7;
+ unsigned int : 13;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 13;
+ unsigned int REG_SIZE_VTX : 7;
+ unsigned int : 1;
+ unsigned int REG_SIZE_PIX : 7;
+ unsigned int : 3;
+ unsigned int REG_DYNAMIC : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_FLOW_CONTROL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int INPUT_ARBITRATION_POLICY : 2;
+ unsigned int : 2;
+ unsigned int ONE_THREAD : 1;
+ unsigned int : 3;
+ unsigned int ONE_ALU : 1;
+ unsigned int : 3;
+ unsigned int CF_WR_BASE : 4;
+ unsigned int NO_PV_PS : 1;
+ unsigned int NO_LOOP_EXIT : 1;
+ unsigned int NO_CEXEC_OPTIMIZE : 1;
+ unsigned int TEXTURE_ARBITRATION_POLICY : 2;
+ unsigned int VC_ARBITRATION_POLICY : 1;
+ unsigned int ALU_ARBITRATION_POLICY : 1;
+ unsigned int NO_ARB_EJECT : 1;
+ unsigned int NO_CFS_EJECT : 1;
+ unsigned int POS_EXP_PRIORITY : 1;
+ unsigned int NO_EARLY_THREAD_TERMINATION : 1;
+ unsigned int PS_PREFETCH_COLOR_ALLOC : 1;
+ unsigned int : 4;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 4;
+ unsigned int PS_PREFETCH_COLOR_ALLOC : 1;
+ unsigned int NO_EARLY_THREAD_TERMINATION : 1;
+ unsigned int POS_EXP_PRIORITY : 1;
+ unsigned int NO_CFS_EJECT : 1;
+ unsigned int NO_ARB_EJECT : 1;
+ unsigned int ALU_ARBITRATION_POLICY : 1;
+ unsigned int VC_ARBITRATION_POLICY : 1;
+ unsigned int TEXTURE_ARBITRATION_POLICY : 2;
+ unsigned int NO_CEXEC_OPTIMIZE : 1;
+ unsigned int NO_LOOP_EXIT : 1;
+ unsigned int NO_PV_PS : 1;
+ unsigned int CF_WR_BASE : 4;
+ unsigned int : 3;
+ unsigned int ONE_ALU : 1;
+ unsigned int : 3;
+ unsigned int ONE_THREAD : 1;
+ unsigned int : 2;
+ unsigned int INPUT_ARBITRATION_POLICY : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INST_STORE_MANAGMENT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int INST_BASE_PIX : 12;
+ unsigned int : 4;
+ unsigned int INST_BASE_VTX : 12;
+ unsigned int : 4;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 4;
+ unsigned int INST_BASE_VTX : 12;
+ unsigned int : 4;
+ unsigned int INST_BASE_PIX : 12;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_RESOURCE_MANAGMENT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VTX_THREAD_BUF_ENTRIES : 8;
+ unsigned int PIX_THREAD_BUF_ENTRIES : 8;
+ unsigned int EXPORT_BUF_ENTRIES : 9;
+ unsigned int : 7;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 7;
+ unsigned int EXPORT_BUF_ENTRIES : 9;
+ unsigned int PIX_THREAD_BUF_ENTRIES : 8;
+ unsigned int VTX_THREAD_BUF_ENTRIES : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_EO_RT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int EO_CONSTANTS_RT : 8;
+ unsigned int : 8;
+ unsigned int EO_TSTATE_RT : 8;
+ unsigned int : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 8;
+ unsigned int EO_TSTATE_RT : 8;
+ unsigned int : 8;
+ unsigned int EO_CONSTANTS_RT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_MISC {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DB_ALUCST_SIZE : 11;
+ unsigned int : 1;
+ unsigned int DB_TSTATE_SIZE : 8;
+ unsigned int DB_READ_CTX : 1;
+ unsigned int RESERVED : 2;
+ unsigned int DB_READ_MEMORY : 2;
+ unsigned int DB_WEN_MEMORY_0 : 1;
+ unsigned int DB_WEN_MEMORY_1 : 1;
+ unsigned int DB_WEN_MEMORY_2 : 1;
+ unsigned int DB_WEN_MEMORY_3 : 1;
+ unsigned int : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 3;
+ unsigned int DB_WEN_MEMORY_3 : 1;
+ unsigned int DB_WEN_MEMORY_2 : 1;
+ unsigned int DB_WEN_MEMORY_1 : 1;
+ unsigned int DB_WEN_MEMORY_0 : 1;
+ unsigned int DB_READ_MEMORY : 2;
+ unsigned int RESERVED : 2;
+ unsigned int DB_READ_CTX : 1;
+ unsigned int DB_TSTATE_SIZE : 8;
+ unsigned int : 1;
+ unsigned int DB_ALUCST_SIZE : 11;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_ACTIVITY_METER_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TIMEBASE : 8;
+ unsigned int THRESHOLD_LOW : 8;
+ unsigned int THRESHOLD_HIGH : 8;
+ unsigned int SPARE : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int SPARE : 8;
+ unsigned int THRESHOLD_HIGH : 8;
+ unsigned int THRESHOLD_LOW : 8;
+ unsigned int TIMEBASE : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_ACTIVITY_METER_STATUS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERCENT_BUSY : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERCENT_BUSY : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INPUT_ARB_PRIORITY {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PC_AVAIL_WEIGHT : 3;
+ unsigned int PC_AVAIL_SIGN : 1;
+ unsigned int SX_AVAIL_WEIGHT : 3;
+ unsigned int SX_AVAIL_SIGN : 1;
+ unsigned int THRESHOLD : 10;
+ unsigned int : 14;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 14;
+ unsigned int THRESHOLD : 10;
+ unsigned int SX_AVAIL_SIGN : 1;
+ unsigned int SX_AVAIL_WEIGHT : 3;
+ unsigned int PC_AVAIL_SIGN : 1;
+ unsigned int PC_AVAIL_WEIGHT : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_THREAD_ARB_PRIORITY {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PC_AVAIL_WEIGHT : 3;
+ unsigned int PC_AVAIL_SIGN : 1;
+ unsigned int SX_AVAIL_WEIGHT : 3;
+ unsigned int SX_AVAIL_SIGN : 1;
+ unsigned int THRESHOLD : 10;
+ unsigned int RESERVED : 2;
+ unsigned int VS_PRIORITIZE_SERIAL : 1;
+ unsigned int PS_PRIORITIZE_SERIAL : 1;
+ unsigned int USE_SERIAL_COUNT_THRESHOLD : 1;
+ unsigned int : 9;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 9;
+ unsigned int USE_SERIAL_COUNT_THRESHOLD : 1;
+ unsigned int PS_PRIORITIZE_SERIAL : 1;
+ unsigned int VS_PRIORITIZE_SERIAL : 1;
+ unsigned int RESERVED : 2;
+ unsigned int THRESHOLD : 10;
+ unsigned int SX_AVAIL_SIGN : 1;
+ unsigned int SX_AVAIL_WEIGHT : 3;
+ unsigned int PC_AVAIL_SIGN : 1;
+ unsigned int PC_AVAIL_WEIGHT : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_VS_WATCHDOG_TIMER {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ENABLE : 1;
+ unsigned int TIMEOUT_COUNT : 31;
+#else /* !defined(qLittleEndian) */
+ unsigned int TIMEOUT_COUNT : 31;
+ unsigned int ENABLE : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_PS_WATCHDOG_TIMER {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ENABLE : 1;
+ unsigned int TIMEOUT_COUNT : 31;
+#else /* !defined(qLittleEndian) */
+ unsigned int TIMEOUT_COUNT : 31;
+ unsigned int ENABLE : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INT_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PS_WATCHDOG_MASK : 1;
+ unsigned int VS_WATCHDOG_MASK : 1;
+ unsigned int : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 30;
+ unsigned int VS_WATCHDOG_MASK : 1;
+ unsigned int PS_WATCHDOG_MASK : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INT_STATUS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PS_WATCHDOG_TIMEOUT : 1;
+ unsigned int VS_WATCHDOG_TIMEOUT : 1;
+ unsigned int : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 30;
+ unsigned int VS_WATCHDOG_TIMEOUT : 1;
+ unsigned int PS_WATCHDOG_TIMEOUT : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INT_ACK {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PS_WATCHDOG_ACK : 1;
+ unsigned int VS_WATCHDOG_ACK : 1;
+ unsigned int : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 30;
+ unsigned int VS_WATCHDOG_ACK : 1;
+ unsigned int PS_WATCHDOG_ACK : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_INPUT_FSM {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VC_VSR_LD : 3;
+ unsigned int RESERVED : 1;
+ unsigned int VC_GPR_LD : 4;
+ unsigned int PC_PISM : 3;
+ unsigned int RESERVED1 : 1;
+ unsigned int PC_AS : 3;
+ unsigned int PC_INTERP_CNT : 5;
+ unsigned int PC_GPR_SIZE : 8;
+ unsigned int : 4;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 4;
+ unsigned int PC_GPR_SIZE : 8;
+ unsigned int PC_INTERP_CNT : 5;
+ unsigned int PC_AS : 3;
+ unsigned int RESERVED1 : 1;
+ unsigned int PC_PISM : 3;
+ unsigned int VC_GPR_LD : 4;
+ unsigned int RESERVED : 1;
+ unsigned int VC_VSR_LD : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_CONST_MGR_FSM {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TEX_CONST_EVENT_STATE : 5;
+ unsigned int RESERVED1 : 3;
+ unsigned int ALU_CONST_EVENT_STATE : 5;
+ unsigned int RESERVED2 : 3;
+ unsigned int ALU_CONST_CNTX_VALID : 2;
+ unsigned int TEX_CONST_CNTX_VALID : 2;
+ unsigned int CNTX0_VTX_EVENT_DONE : 1;
+ unsigned int CNTX0_PIX_EVENT_DONE : 1;
+ unsigned int CNTX1_VTX_EVENT_DONE : 1;
+ unsigned int CNTX1_PIX_EVENT_DONE : 1;
+ unsigned int : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 8;
+ unsigned int CNTX1_PIX_EVENT_DONE : 1;
+ unsigned int CNTX1_VTX_EVENT_DONE : 1;
+ unsigned int CNTX0_PIX_EVENT_DONE : 1;
+ unsigned int CNTX0_VTX_EVENT_DONE : 1;
+ unsigned int TEX_CONST_CNTX_VALID : 2;
+ unsigned int ALU_CONST_CNTX_VALID : 2;
+ unsigned int RESERVED2 : 3;
+ unsigned int ALU_CONST_EVENT_STATE : 5;
+ unsigned int RESERVED1 : 3;
+ unsigned int TEX_CONST_EVENT_STATE : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_TP_FSM {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int EX_TP : 3;
+ unsigned int RESERVED0 : 1;
+ unsigned int CF_TP : 4;
+ unsigned int IF_TP : 3;
+ unsigned int RESERVED1 : 1;
+ unsigned int TIS_TP : 2;
+ unsigned int RESERVED2 : 2;
+ unsigned int GS_TP : 2;
+ unsigned int RESERVED3 : 2;
+ unsigned int FCR_TP : 2;
+ unsigned int RESERVED4 : 2;
+ unsigned int FCS_TP : 2;
+ unsigned int RESERVED5 : 2;
+ unsigned int ARB_TR_TP : 3;
+ unsigned int : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 1;
+ unsigned int ARB_TR_TP : 3;
+ unsigned int RESERVED5 : 2;
+ unsigned int FCS_TP : 2;
+ unsigned int RESERVED4 : 2;
+ unsigned int FCR_TP : 2;
+ unsigned int RESERVED3 : 2;
+ unsigned int GS_TP : 2;
+ unsigned int RESERVED2 : 2;
+ unsigned int TIS_TP : 2;
+ unsigned int RESERVED1 : 1;
+ unsigned int IF_TP : 3;
+ unsigned int CF_TP : 4;
+ unsigned int RESERVED0 : 1;
+ unsigned int EX_TP : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_FSM_ALU_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int EX_ALU_0 : 3;
+ unsigned int RESERVED0 : 1;
+ unsigned int CF_ALU_0 : 4;
+ unsigned int IF_ALU_0 : 3;
+ unsigned int RESERVED1 : 1;
+ unsigned int DU1_ALU_0 : 3;
+ unsigned int RESERVED2 : 1;
+ unsigned int DU0_ALU_0 : 3;
+ unsigned int RESERVED3 : 1;
+ unsigned int AIS_ALU_0 : 3;
+ unsigned int RESERVED4 : 1;
+ unsigned int ACS_ALU_0 : 3;
+ unsigned int RESERVED5 : 1;
+ unsigned int ARB_TR_ALU : 3;
+ unsigned int : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 1;
+ unsigned int ARB_TR_ALU : 3;
+ unsigned int RESERVED5 : 1;
+ unsigned int ACS_ALU_0 : 3;
+ unsigned int RESERVED4 : 1;
+ unsigned int AIS_ALU_0 : 3;
+ unsigned int RESERVED3 : 1;
+ unsigned int DU0_ALU_0 : 3;
+ unsigned int RESERVED2 : 1;
+ unsigned int DU1_ALU_0 : 3;
+ unsigned int RESERVED1 : 1;
+ unsigned int IF_ALU_0 : 3;
+ unsigned int CF_ALU_0 : 4;
+ unsigned int RESERVED0 : 1;
+ unsigned int EX_ALU_0 : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_FSM_ALU_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int EX_ALU_0 : 3;
+ unsigned int RESERVED0 : 1;
+ unsigned int CF_ALU_0 : 4;
+ unsigned int IF_ALU_0 : 3;
+ unsigned int RESERVED1 : 1;
+ unsigned int DU1_ALU_0 : 3;
+ unsigned int RESERVED2 : 1;
+ unsigned int DU0_ALU_0 : 3;
+ unsigned int RESERVED3 : 1;
+ unsigned int AIS_ALU_0 : 3;
+ unsigned int RESERVED4 : 1;
+ unsigned int ACS_ALU_0 : 3;
+ unsigned int RESERVED5 : 1;
+ unsigned int ARB_TR_ALU : 3;
+ unsigned int : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 1;
+ unsigned int ARB_TR_ALU : 3;
+ unsigned int RESERVED5 : 1;
+ unsigned int ACS_ALU_0 : 3;
+ unsigned int RESERVED4 : 1;
+ unsigned int AIS_ALU_0 : 3;
+ unsigned int RESERVED3 : 1;
+ unsigned int DU0_ALU_0 : 3;
+ unsigned int RESERVED2 : 1;
+ unsigned int DU1_ALU_0 : 3;
+ unsigned int RESERVED1 : 1;
+ unsigned int IF_ALU_0 : 3;
+ unsigned int CF_ALU_0 : 4;
+ unsigned int RESERVED0 : 1;
+ unsigned int EX_ALU_0 : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_EXP_ALLOC {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int POS_BUF_AVAIL : 4;
+ unsigned int COLOR_BUF_AVAIL : 8;
+ unsigned int EA_BUF_AVAIL : 3;
+ unsigned int RESERVED : 1;
+ unsigned int ALLOC_TBL_BUF_AVAIL : 6;
+ unsigned int : 10;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 10;
+ unsigned int ALLOC_TBL_BUF_AVAIL : 6;
+ unsigned int RESERVED : 1;
+ unsigned int EA_BUF_AVAIL : 3;
+ unsigned int COLOR_BUF_AVAIL : 8;
+ unsigned int POS_BUF_AVAIL : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_PTR_BUFF {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int END_OF_BUFFER : 1;
+ unsigned int DEALLOC_CNT : 4;
+ unsigned int QUAL_NEW_VECTOR : 1;
+ unsigned int EVENT_CONTEXT_ID : 3;
+ unsigned int SC_EVENT_ID : 5;
+ unsigned int QUAL_EVENT : 1;
+ unsigned int PRIM_TYPE_POLYGON : 1;
+ unsigned int EF_EMPTY : 1;
+ unsigned int VTX_SYNC_CNT : 11;
+ unsigned int : 4;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 4;
+ unsigned int VTX_SYNC_CNT : 11;
+ unsigned int EF_EMPTY : 1;
+ unsigned int PRIM_TYPE_POLYGON : 1;
+ unsigned int QUAL_EVENT : 1;
+ unsigned int SC_EVENT_ID : 5;
+ unsigned int EVENT_CONTEXT_ID : 3;
+ unsigned int QUAL_NEW_VECTOR : 1;
+ unsigned int DEALLOC_CNT : 4;
+ unsigned int END_OF_BUFFER : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_GPR_VTX {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VTX_TAIL_PTR : 7;
+ unsigned int RESERVED : 1;
+ unsigned int VTX_HEAD_PTR : 7;
+ unsigned int RESERVED1 : 1;
+ unsigned int VTX_MAX : 7;
+ unsigned int RESERVED2 : 1;
+ unsigned int VTX_FREE : 7;
+ unsigned int : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 1;
+ unsigned int VTX_FREE : 7;
+ unsigned int RESERVED2 : 1;
+ unsigned int VTX_MAX : 7;
+ unsigned int RESERVED1 : 1;
+ unsigned int VTX_HEAD_PTR : 7;
+ unsigned int RESERVED : 1;
+ unsigned int VTX_TAIL_PTR : 7;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_GPR_PIX {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PIX_TAIL_PTR : 7;
+ unsigned int RESERVED : 1;
+ unsigned int PIX_HEAD_PTR : 7;
+ unsigned int RESERVED1 : 1;
+ unsigned int PIX_MAX : 7;
+ unsigned int RESERVED2 : 1;
+ unsigned int PIX_FREE : 7;
+ unsigned int : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 1;
+ unsigned int PIX_FREE : 7;
+ unsigned int RESERVED2 : 1;
+ unsigned int PIX_MAX : 7;
+ unsigned int RESERVED1 : 1;
+ unsigned int PIX_HEAD_PTR : 7;
+ unsigned int RESERVED : 1;
+ unsigned int PIX_TAIL_PTR : 7;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_TB_STATUS_SEL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VTX_TB_STATUS_REG_SEL : 4;
+ unsigned int VTX_TB_STATE_MEM_DW_SEL : 3;
+ unsigned int VTX_TB_STATE_MEM_RD_ADDR : 4;
+ unsigned int VTX_TB_STATE_MEM_RD_EN : 1;
+ unsigned int PIX_TB_STATE_MEM_RD_EN : 1;
+ unsigned int : 1;
+ unsigned int DEBUG_BUS_TRIGGER_SEL : 2;
+ unsigned int PIX_TB_STATUS_REG_SEL : 4;
+ unsigned int PIX_TB_STATE_MEM_DW_SEL : 3;
+ unsigned int PIX_TB_STATE_MEM_RD_ADDR : 6;
+ unsigned int VC_THREAD_BUF_DLY : 2;
+ unsigned int DISABLE_STRICT_CTX_SYNC : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int DISABLE_STRICT_CTX_SYNC : 1;
+ unsigned int VC_THREAD_BUF_DLY : 2;
+ unsigned int PIX_TB_STATE_MEM_RD_ADDR : 6;
+ unsigned int PIX_TB_STATE_MEM_DW_SEL : 3;
+ unsigned int PIX_TB_STATUS_REG_SEL : 4;
+ unsigned int DEBUG_BUS_TRIGGER_SEL : 2;
+ unsigned int : 1;
+ unsigned int PIX_TB_STATE_MEM_RD_EN : 1;
+ unsigned int VTX_TB_STATE_MEM_RD_EN : 1;
+ unsigned int VTX_TB_STATE_MEM_RD_ADDR : 4;
+ unsigned int VTX_TB_STATE_MEM_DW_SEL : 3;
+ unsigned int VTX_TB_STATUS_REG_SEL : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_VTX_TB_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VTX_HEAD_PTR_Q : 4;
+ unsigned int TAIL_PTR_Q : 4;
+ unsigned int FULL_CNT_Q : 4;
+ unsigned int NXT_POS_ALLOC_CNT : 4;
+ unsigned int NXT_PC_ALLOC_CNT : 4;
+ unsigned int SX_EVENT_FULL : 1;
+ unsigned int BUSY_Q : 1;
+ unsigned int : 10;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 10;
+ unsigned int BUSY_Q : 1;
+ unsigned int SX_EVENT_FULL : 1;
+ unsigned int NXT_PC_ALLOC_CNT : 4;
+ unsigned int NXT_POS_ALLOC_CNT : 4;
+ unsigned int FULL_CNT_Q : 4;
+ unsigned int TAIL_PTR_Q : 4;
+ unsigned int VTX_HEAD_PTR_Q : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_VTX_TB_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VS_DONE_PTR : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int VS_DONE_PTR : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_VTX_TB_STATUS_REG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VS_STATUS_REG : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VS_STATUS_REG : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_VTX_TB_STATE_MEM {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VS_STATE_MEM : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VS_STATE_MEM : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_PIX_TB_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PIX_HEAD_PTR : 6;
+ unsigned int TAIL_PTR : 6;
+ unsigned int FULL_CNT : 7;
+ unsigned int NXT_PIX_ALLOC_CNT : 6;
+ unsigned int NXT_PIX_EXP_CNT : 6;
+ unsigned int BUSY : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int BUSY : 1;
+ unsigned int NXT_PIX_EXP_CNT : 6;
+ unsigned int NXT_PIX_ALLOC_CNT : 6;
+ unsigned int FULL_CNT : 7;
+ unsigned int TAIL_PTR : 6;
+ unsigned int PIX_HEAD_PTR : 6;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_PIX_TB_STATUS_REG_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PIX_TB_STATUS_REG_0 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PIX_TB_STATUS_REG_0 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_PIX_TB_STATUS_REG_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PIX_TB_STATUS_REG_1 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PIX_TB_STATUS_REG_1 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_PIX_TB_STATUS_REG_2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PIX_TB_STATUS_REG_2 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PIX_TB_STATUS_REG_2 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_PIX_TB_STATUS_REG_3 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PIX_TB_STATUS_REG_3 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PIX_TB_STATUS_REG_3 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_PIX_TB_STATE_MEM {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PIX_TB_STATE_MEM : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PIX_TB_STATE_MEM : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_PERFCOUNTER0_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_SEL : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERF_SEL : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_PERFCOUNTER1_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_SEL : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERF_SEL : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_PERFCOUNTER2_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_SEL : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERF_SEL : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_PERFCOUNTER3_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_SEL : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERF_SEL : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_PERFCOUNTER0_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERF_COUNT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_PERFCOUNTER0_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERF_COUNT : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_PERFCOUNTER1_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERF_COUNT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_PERFCOUNTER1_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERF_COUNT : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_PERFCOUNTER2_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERF_COUNT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_PERFCOUNTER2_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERF_COUNT : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_PERFCOUNTER3_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERF_COUNT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_PERFCOUNTER3_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERF_COUNT : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SX_PERFCOUNTER0_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_SEL : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERF_SEL : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SX_PERFCOUNTER0_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERF_COUNT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SX_PERFCOUNTER0_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERF_COUNT : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_ALU_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VECTOR_RESULT : 6;
+ unsigned int VECTOR_DST_REL : 1;
+ unsigned int LOW_PRECISION_16B_FP : 1;
+ unsigned int SCALAR_RESULT : 6;
+ unsigned int SCALAR_DST_REL : 1;
+ unsigned int EXPORT_DATA : 1;
+ unsigned int VECTOR_WRT_MSK : 4;
+ unsigned int SCALAR_WRT_MSK : 4;
+ unsigned int VECTOR_CLAMP : 1;
+ unsigned int SCALAR_CLAMP : 1;
+ unsigned int SCALAR_OPCODE : 6;
+#else /* !defined(qLittleEndian) */
+ unsigned int SCALAR_OPCODE : 6;
+ unsigned int SCALAR_CLAMP : 1;
+ unsigned int VECTOR_CLAMP : 1;
+ unsigned int SCALAR_WRT_MSK : 4;
+ unsigned int VECTOR_WRT_MSK : 4;
+ unsigned int EXPORT_DATA : 1;
+ unsigned int SCALAR_DST_REL : 1;
+ unsigned int SCALAR_RESULT : 6;
+ unsigned int LOW_PRECISION_16B_FP : 1;
+ unsigned int VECTOR_DST_REL : 1;
+ unsigned int VECTOR_RESULT : 6;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_ALU_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SRC_C_SWIZZLE_R : 2;
+ unsigned int SRC_C_SWIZZLE_G : 2;
+ unsigned int SRC_C_SWIZZLE_B : 2;
+ unsigned int SRC_C_SWIZZLE_A : 2;
+ unsigned int SRC_B_SWIZZLE_R : 2;
+ unsigned int SRC_B_SWIZZLE_G : 2;
+ unsigned int SRC_B_SWIZZLE_B : 2;
+ unsigned int SRC_B_SWIZZLE_A : 2;
+ unsigned int SRC_A_SWIZZLE_R : 2;
+ unsigned int SRC_A_SWIZZLE_G : 2;
+ unsigned int SRC_A_SWIZZLE_B : 2;
+ unsigned int SRC_A_SWIZZLE_A : 2;
+ unsigned int SRC_C_ARG_MOD : 1;
+ unsigned int SRC_B_ARG_MOD : 1;
+ unsigned int SRC_A_ARG_MOD : 1;
+ unsigned int PRED_SELECT : 2;
+ unsigned int RELATIVE_ADDR : 1;
+ unsigned int CONST_1_REL_ABS : 1;
+ unsigned int CONST_0_REL_ABS : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int CONST_0_REL_ABS : 1;
+ unsigned int CONST_1_REL_ABS : 1;
+ unsigned int RELATIVE_ADDR : 1;
+ unsigned int PRED_SELECT : 2;
+ unsigned int SRC_A_ARG_MOD : 1;
+ unsigned int SRC_B_ARG_MOD : 1;
+ unsigned int SRC_C_ARG_MOD : 1;
+ unsigned int SRC_A_SWIZZLE_A : 2;
+ unsigned int SRC_A_SWIZZLE_B : 2;
+ unsigned int SRC_A_SWIZZLE_G : 2;
+ unsigned int SRC_A_SWIZZLE_R : 2;
+ unsigned int SRC_B_SWIZZLE_A : 2;
+ unsigned int SRC_B_SWIZZLE_B : 2;
+ unsigned int SRC_B_SWIZZLE_G : 2;
+ unsigned int SRC_B_SWIZZLE_R : 2;
+ unsigned int SRC_C_SWIZZLE_A : 2;
+ unsigned int SRC_C_SWIZZLE_B : 2;
+ unsigned int SRC_C_SWIZZLE_G : 2;
+ unsigned int SRC_C_SWIZZLE_R : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_ALU_2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SRC_C_REG_PTR : 6;
+ unsigned int REG_SELECT_C : 1;
+ unsigned int REG_ABS_MOD_C : 1;
+ unsigned int SRC_B_REG_PTR : 6;
+ unsigned int REG_SELECT_B : 1;
+ unsigned int REG_ABS_MOD_B : 1;
+ unsigned int SRC_A_REG_PTR : 6;
+ unsigned int REG_SELECT_A : 1;
+ unsigned int REG_ABS_MOD_A : 1;
+ unsigned int VECTOR_OPCODE : 5;
+ unsigned int SRC_C_SEL : 1;
+ unsigned int SRC_B_SEL : 1;
+ unsigned int SRC_A_SEL : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int SRC_A_SEL : 1;
+ unsigned int SRC_B_SEL : 1;
+ unsigned int SRC_C_SEL : 1;
+ unsigned int VECTOR_OPCODE : 5;
+ unsigned int REG_ABS_MOD_A : 1;
+ unsigned int REG_SELECT_A : 1;
+ unsigned int SRC_A_REG_PTR : 6;
+ unsigned int REG_ABS_MOD_B : 1;
+ unsigned int REG_SELECT_B : 1;
+ unsigned int SRC_B_REG_PTR : 6;
+ unsigned int REG_ABS_MOD_C : 1;
+ unsigned int REG_SELECT_C : 1;
+ unsigned int SRC_C_REG_PTR : 6;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_CF_EXEC_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ADDRESS : 9;
+ unsigned int RESERVED : 3;
+ unsigned int COUNT : 3;
+ unsigned int YIELD : 1;
+ unsigned int INST_TYPE_0 : 1;
+ unsigned int INST_SERIAL_0 : 1;
+ unsigned int INST_TYPE_1 : 1;
+ unsigned int INST_SERIAL_1 : 1;
+ unsigned int INST_TYPE_2 : 1;
+ unsigned int INST_SERIAL_2 : 1;
+ unsigned int INST_TYPE_3 : 1;
+ unsigned int INST_SERIAL_3 : 1;
+ unsigned int INST_TYPE_4 : 1;
+ unsigned int INST_SERIAL_4 : 1;
+ unsigned int INST_TYPE_5 : 1;
+ unsigned int INST_SERIAL_5 : 1;
+ unsigned int INST_VC_0 : 1;
+ unsigned int INST_VC_1 : 1;
+ unsigned int INST_VC_2 : 1;
+ unsigned int INST_VC_3 : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int INST_VC_3 : 1;
+ unsigned int INST_VC_2 : 1;
+ unsigned int INST_VC_1 : 1;
+ unsigned int INST_VC_0 : 1;
+ unsigned int INST_SERIAL_5 : 1;
+ unsigned int INST_TYPE_5 : 1;
+ unsigned int INST_SERIAL_4 : 1;
+ unsigned int INST_TYPE_4 : 1;
+ unsigned int INST_SERIAL_3 : 1;
+ unsigned int INST_TYPE_3 : 1;
+ unsigned int INST_SERIAL_2 : 1;
+ unsigned int INST_TYPE_2 : 1;
+ unsigned int INST_SERIAL_1 : 1;
+ unsigned int INST_TYPE_1 : 1;
+ unsigned int INST_SERIAL_0 : 1;
+ unsigned int INST_TYPE_0 : 1;
+ unsigned int YIELD : 1;
+ unsigned int COUNT : 3;
+ unsigned int RESERVED : 3;
+ unsigned int ADDRESS : 9;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_CF_EXEC_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int INST_VC_4 : 1;
+ unsigned int INST_VC_5 : 1;
+ unsigned int BOOL_ADDR : 8;
+ unsigned int CONDITION : 1;
+ unsigned int ADDRESS_MODE : 1;
+ unsigned int OPCODE : 4;
+ unsigned int ADDRESS : 9;
+ unsigned int RESERVED : 3;
+ unsigned int COUNT : 3;
+ unsigned int YIELD : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int YIELD : 1;
+ unsigned int COUNT : 3;
+ unsigned int RESERVED : 3;
+ unsigned int ADDRESS : 9;
+ unsigned int OPCODE : 4;
+ unsigned int ADDRESS_MODE : 1;
+ unsigned int CONDITION : 1;
+ unsigned int BOOL_ADDR : 8;
+ unsigned int INST_VC_5 : 1;
+ unsigned int INST_VC_4 : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_CF_EXEC_2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int INST_TYPE_0 : 1;
+ unsigned int INST_SERIAL_0 : 1;
+ unsigned int INST_TYPE_1 : 1;
+ unsigned int INST_SERIAL_1 : 1;
+ unsigned int INST_TYPE_2 : 1;
+ unsigned int INST_SERIAL_2 : 1;
+ unsigned int INST_TYPE_3 : 1;
+ unsigned int INST_SERIAL_3 : 1;
+ unsigned int INST_TYPE_4 : 1;
+ unsigned int INST_SERIAL_4 : 1;
+ unsigned int INST_TYPE_5 : 1;
+ unsigned int INST_SERIAL_5 : 1;
+ unsigned int INST_VC_0 : 1;
+ unsigned int INST_VC_1 : 1;
+ unsigned int INST_VC_2 : 1;
+ unsigned int INST_VC_3 : 1;
+ unsigned int INST_VC_4 : 1;
+ unsigned int INST_VC_5 : 1;
+ unsigned int BOOL_ADDR : 8;
+ unsigned int CONDITION : 1;
+ unsigned int ADDRESS_MODE : 1;
+ unsigned int OPCODE : 4;
+#else /* !defined(qLittleEndian) */
+ unsigned int OPCODE : 4;
+ unsigned int ADDRESS_MODE : 1;
+ unsigned int CONDITION : 1;
+ unsigned int BOOL_ADDR : 8;
+ unsigned int INST_VC_5 : 1;
+ unsigned int INST_VC_4 : 1;
+ unsigned int INST_VC_3 : 1;
+ unsigned int INST_VC_2 : 1;
+ unsigned int INST_VC_1 : 1;
+ unsigned int INST_VC_0 : 1;
+ unsigned int INST_SERIAL_5 : 1;
+ unsigned int INST_TYPE_5 : 1;
+ unsigned int INST_SERIAL_4 : 1;
+ unsigned int INST_TYPE_4 : 1;
+ unsigned int INST_SERIAL_3 : 1;
+ unsigned int INST_TYPE_3 : 1;
+ unsigned int INST_SERIAL_2 : 1;
+ unsigned int INST_TYPE_2 : 1;
+ unsigned int INST_SERIAL_1 : 1;
+ unsigned int INST_TYPE_1 : 1;
+ unsigned int INST_SERIAL_0 : 1;
+ unsigned int INST_TYPE_0 : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_CF_LOOP_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ADDRESS : 10;
+ unsigned int RESERVED_0 : 6;
+ unsigned int LOOP_ID : 5;
+ unsigned int RESERVED_1 : 11;
+#else /* !defined(qLittleEndian) */
+ unsigned int RESERVED_1 : 11;
+ unsigned int LOOP_ID : 5;
+ unsigned int RESERVED_0 : 6;
+ unsigned int ADDRESS : 10;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_CF_LOOP_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RESERVED_0 : 11;
+ unsigned int ADDRESS_MODE : 1;
+ unsigned int OPCODE : 4;
+ unsigned int ADDRESS : 10;
+ unsigned int RESERVED_1 : 6;
+#else /* !defined(qLittleEndian) */
+ unsigned int RESERVED_1 : 6;
+ unsigned int ADDRESS : 10;
+ unsigned int OPCODE : 4;
+ unsigned int ADDRESS_MODE : 1;
+ unsigned int RESERVED_0 : 11;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_CF_LOOP_2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int LOOP_ID : 5;
+ unsigned int RESERVED : 22;
+ unsigned int ADDRESS_MODE : 1;
+ unsigned int OPCODE : 4;
+#else /* !defined(qLittleEndian) */
+ unsigned int OPCODE : 4;
+ unsigned int ADDRESS_MODE : 1;
+ unsigned int RESERVED : 22;
+ unsigned int LOOP_ID : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_CF_JMP_CALL_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ADDRESS : 10;
+ unsigned int RESERVED_0 : 3;
+ unsigned int FORCE_CALL : 1;
+ unsigned int PREDICATED_JMP : 1;
+ unsigned int RESERVED_1 : 17;
+#else /* !defined(qLittleEndian) */
+ unsigned int RESERVED_1 : 17;
+ unsigned int PREDICATED_JMP : 1;
+ unsigned int FORCE_CALL : 1;
+ unsigned int RESERVED_0 : 3;
+ unsigned int ADDRESS : 10;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_CF_JMP_CALL_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RESERVED_0 : 1;
+ unsigned int DIRECTION : 1;
+ unsigned int BOOL_ADDR : 8;
+ unsigned int CONDITION : 1;
+ unsigned int ADDRESS_MODE : 1;
+ unsigned int OPCODE : 4;
+ unsigned int ADDRESS : 10;
+ unsigned int RESERVED_1 : 3;
+ unsigned int FORCE_CALL : 1;
+ unsigned int RESERVED_2 : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int RESERVED_2 : 2;
+ unsigned int FORCE_CALL : 1;
+ unsigned int RESERVED_1 : 3;
+ unsigned int ADDRESS : 10;
+ unsigned int OPCODE : 4;
+ unsigned int ADDRESS_MODE : 1;
+ unsigned int CONDITION : 1;
+ unsigned int BOOL_ADDR : 8;
+ unsigned int DIRECTION : 1;
+ unsigned int RESERVED_0 : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_CF_JMP_CALL_2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RESERVED : 17;
+ unsigned int DIRECTION : 1;
+ unsigned int BOOL_ADDR : 8;
+ unsigned int CONDITION : 1;
+ unsigned int ADDRESS_MODE : 1;
+ unsigned int OPCODE : 4;
+#else /* !defined(qLittleEndian) */
+ unsigned int OPCODE : 4;
+ unsigned int ADDRESS_MODE : 1;
+ unsigned int CONDITION : 1;
+ unsigned int BOOL_ADDR : 8;
+ unsigned int DIRECTION : 1;
+ unsigned int RESERVED : 17;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_CF_ALLOC_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SIZE : 4;
+ unsigned int RESERVED : 28;
+#else /* !defined(qLittleEndian) */
+ unsigned int RESERVED : 28;
+ unsigned int SIZE : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_CF_ALLOC_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RESERVED_0 : 8;
+ unsigned int NO_SERIAL : 1;
+ unsigned int BUFFER_SELECT : 2;
+ unsigned int ALLOC_MODE : 1;
+ unsigned int OPCODE : 4;
+ unsigned int SIZE : 4;
+ unsigned int RESERVED_1 : 12;
+#else /* !defined(qLittleEndian) */
+ unsigned int RESERVED_1 : 12;
+ unsigned int SIZE : 4;
+ unsigned int OPCODE : 4;
+ unsigned int ALLOC_MODE : 1;
+ unsigned int BUFFER_SELECT : 2;
+ unsigned int NO_SERIAL : 1;
+ unsigned int RESERVED_0 : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_CF_ALLOC_2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RESERVED : 24;
+ unsigned int NO_SERIAL : 1;
+ unsigned int BUFFER_SELECT : 2;
+ unsigned int ALLOC_MODE : 1;
+ unsigned int OPCODE : 4;
+#else /* !defined(qLittleEndian) */
+ unsigned int OPCODE : 4;
+ unsigned int ALLOC_MODE : 1;
+ unsigned int BUFFER_SELECT : 2;
+ unsigned int NO_SERIAL : 1;
+ unsigned int RESERVED : 24;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_TFETCH_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int OPCODE : 5;
+ unsigned int SRC_GPR : 6;
+ unsigned int SRC_GPR_AM : 1;
+ unsigned int DST_GPR : 6;
+ unsigned int DST_GPR_AM : 1;
+ unsigned int FETCH_VALID_ONLY : 1;
+ unsigned int CONST_INDEX : 5;
+ unsigned int TX_COORD_DENORM : 1;
+ unsigned int SRC_SEL_X : 2;
+ unsigned int SRC_SEL_Y : 2;
+ unsigned int SRC_SEL_Z : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int SRC_SEL_Z : 2;
+ unsigned int SRC_SEL_Y : 2;
+ unsigned int SRC_SEL_X : 2;
+ unsigned int TX_COORD_DENORM : 1;
+ unsigned int CONST_INDEX : 5;
+ unsigned int FETCH_VALID_ONLY : 1;
+ unsigned int DST_GPR_AM : 1;
+ unsigned int DST_GPR : 6;
+ unsigned int SRC_GPR_AM : 1;
+ unsigned int SRC_GPR : 6;
+ unsigned int OPCODE : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_TFETCH_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DST_SEL_X : 3;
+ unsigned int DST_SEL_Y : 3;
+ unsigned int DST_SEL_Z : 3;
+ unsigned int DST_SEL_W : 3;
+ unsigned int MAG_FILTER : 2;
+ unsigned int MIN_FILTER : 2;
+ unsigned int MIP_FILTER : 2;
+ unsigned int ANISO_FILTER : 3;
+ unsigned int ARBITRARY_FILTER : 3;
+ unsigned int VOL_MAG_FILTER : 2;
+ unsigned int VOL_MIN_FILTER : 2;
+ unsigned int USE_COMP_LOD : 1;
+ unsigned int USE_REG_LOD : 2;
+ unsigned int PRED_SELECT : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int PRED_SELECT : 1;
+ unsigned int USE_REG_LOD : 2;
+ unsigned int USE_COMP_LOD : 1;
+ unsigned int VOL_MIN_FILTER : 2;
+ unsigned int VOL_MAG_FILTER : 2;
+ unsigned int ARBITRARY_FILTER : 3;
+ unsigned int ANISO_FILTER : 3;
+ unsigned int MIP_FILTER : 2;
+ unsigned int MIN_FILTER : 2;
+ unsigned int MAG_FILTER : 2;
+ unsigned int DST_SEL_W : 3;
+ unsigned int DST_SEL_Z : 3;
+ unsigned int DST_SEL_Y : 3;
+ unsigned int DST_SEL_X : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_TFETCH_2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int USE_REG_GRADIENTS : 1;
+ unsigned int SAMPLE_LOCATION : 1;
+ unsigned int LOD_BIAS : 7;
+ unsigned int UNUSED : 7;
+ unsigned int OFFSET_X : 5;
+ unsigned int OFFSET_Y : 5;
+ unsigned int OFFSET_Z : 5;
+ unsigned int PRED_CONDITION : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int PRED_CONDITION : 1;
+ unsigned int OFFSET_Z : 5;
+ unsigned int OFFSET_Y : 5;
+ unsigned int OFFSET_X : 5;
+ unsigned int UNUSED : 7;
+ unsigned int LOD_BIAS : 7;
+ unsigned int SAMPLE_LOCATION : 1;
+ unsigned int USE_REG_GRADIENTS : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_VFETCH_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int OPCODE : 5;
+ unsigned int SRC_GPR : 6;
+ unsigned int SRC_GPR_AM : 1;
+ unsigned int DST_GPR : 6;
+ unsigned int DST_GPR_AM : 1;
+ unsigned int MUST_BE_ONE : 1;
+ unsigned int CONST_INDEX : 5;
+ unsigned int CONST_INDEX_SEL : 2;
+ unsigned int : 3;
+ unsigned int SRC_SEL : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int SRC_SEL : 2;
+ unsigned int : 3;
+ unsigned int CONST_INDEX_SEL : 2;
+ unsigned int CONST_INDEX : 5;
+ unsigned int MUST_BE_ONE : 1;
+ unsigned int DST_GPR_AM : 1;
+ unsigned int DST_GPR : 6;
+ unsigned int SRC_GPR_AM : 1;
+ unsigned int SRC_GPR : 6;
+ unsigned int OPCODE : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_VFETCH_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DST_SEL_X : 3;
+ unsigned int DST_SEL_Y : 3;
+ unsigned int DST_SEL_Z : 3;
+ unsigned int DST_SEL_W : 3;
+ unsigned int FORMAT_COMP_ALL : 1;
+ unsigned int NUM_FORMAT_ALL : 1;
+ unsigned int SIGNED_RF_MODE_ALL : 1;
+ unsigned int : 1;
+ unsigned int DATA_FORMAT : 6;
+ unsigned int : 1;
+ unsigned int EXP_ADJUST_ALL : 7;
+ unsigned int : 1;
+ unsigned int PRED_SELECT : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int PRED_SELECT : 1;
+ unsigned int : 1;
+ unsigned int EXP_ADJUST_ALL : 7;
+ unsigned int : 1;
+ unsigned int DATA_FORMAT : 6;
+ unsigned int : 1;
+ unsigned int SIGNED_RF_MODE_ALL : 1;
+ unsigned int NUM_FORMAT_ALL : 1;
+ unsigned int FORMAT_COMP_ALL : 1;
+ unsigned int DST_SEL_W : 3;
+ unsigned int DST_SEL_Z : 3;
+ unsigned int DST_SEL_Y : 3;
+ unsigned int DST_SEL_X : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_VFETCH_2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int STRIDE : 8;
+ unsigned int : 8;
+ unsigned int OFFSET : 8;
+ unsigned int : 7;
+ unsigned int PRED_CONDITION : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int PRED_CONDITION : 1;
+ unsigned int : 7;
+ unsigned int OFFSET : 8;
+ unsigned int : 8;
+ unsigned int STRIDE : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CONSTANT_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RED : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int RED : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CONSTANT_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int GREEN : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int GREEN : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CONSTANT_2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BLUE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BLUE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CONSTANT_3 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ALPHA : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int ALPHA : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_FETCH_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VALUE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VALUE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_FETCH_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VALUE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VALUE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_FETCH_2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VALUE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VALUE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_FETCH_3 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VALUE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VALUE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_FETCH_4 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VALUE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VALUE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_FETCH_5 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VALUE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VALUE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CONSTANT_VFETCH_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TYPE : 1;
+ unsigned int STATE : 1;
+ unsigned int BASE_ADDRESS : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int BASE_ADDRESS : 30;
+ unsigned int STATE : 1;
+ unsigned int TYPE : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CONSTANT_VFETCH_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ENDIAN_SWAP : 2;
+ unsigned int LIMIT_ADDRESS : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int LIMIT_ADDRESS : 30;
+ unsigned int ENDIAN_SWAP : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CONSTANT_T2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VALUE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VALUE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CONSTANT_T3 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VALUE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VALUE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CF_BOOLEANS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CF_BOOLEANS_0 : 8;
+ unsigned int CF_BOOLEANS_1 : 8;
+ unsigned int CF_BOOLEANS_2 : 8;
+ unsigned int CF_BOOLEANS_3 : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int CF_BOOLEANS_3 : 8;
+ unsigned int CF_BOOLEANS_2 : 8;
+ unsigned int CF_BOOLEANS_1 : 8;
+ unsigned int CF_BOOLEANS_0 : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CF_LOOP {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CF_LOOP_COUNT : 8;
+ unsigned int CF_LOOP_START : 8;
+ unsigned int CF_LOOP_STEP : 8;
+ unsigned int : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 8;
+ unsigned int CF_LOOP_STEP : 8;
+ unsigned int CF_LOOP_START : 8;
+ unsigned int CF_LOOP_COUNT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CONSTANT_RT_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RED : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int RED : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CONSTANT_RT_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int GREEN : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int GREEN : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CONSTANT_RT_2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BLUE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BLUE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CONSTANT_RT_3 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ALPHA : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int ALPHA : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_FETCH_RT_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VALUE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VALUE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_FETCH_RT_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VALUE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VALUE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_FETCH_RT_2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VALUE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VALUE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_FETCH_RT_3 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VALUE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VALUE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_FETCH_RT_4 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VALUE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VALUE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_FETCH_RT_5 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VALUE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VALUE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CF_RT_BOOLEANS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CF_BOOLEANS_0 : 8;
+ unsigned int CF_BOOLEANS_1 : 8;
+ unsigned int CF_BOOLEANS_2 : 8;
+ unsigned int CF_BOOLEANS_3 : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int CF_BOOLEANS_3 : 8;
+ unsigned int CF_BOOLEANS_2 : 8;
+ unsigned int CF_BOOLEANS_1 : 8;
+ unsigned int CF_BOOLEANS_0 : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CF_RT_LOOP {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CF_LOOP_COUNT : 8;
+ unsigned int CF_LOOP_START : 8;
+ unsigned int CF_LOOP_STEP : 8;
+ unsigned int : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 8;
+ unsigned int CF_LOOP_STEP : 8;
+ unsigned int CF_LOOP_START : 8;
+ unsigned int CF_LOOP_COUNT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_VS_PROGRAM {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BASE : 12;
+ unsigned int SIZE : 12;
+ unsigned int : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 8;
+ unsigned int SIZE : 12;
+ unsigned int BASE : 12;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_PS_PROGRAM {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BASE : 12;
+ unsigned int SIZE : 12;
+ unsigned int : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 8;
+ unsigned int SIZE : 12;
+ unsigned int BASE : 12;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CF_PROGRAM_SIZE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VS_CF_SIZE : 11;
+ unsigned int : 1;
+ unsigned int PS_CF_SIZE : 11;
+ unsigned int : 9;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 9;
+ unsigned int PS_CF_SIZE : 11;
+ unsigned int : 1;
+ unsigned int VS_CF_SIZE : 11;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INTERPOLATOR_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PARAM_SHADE : 16;
+ unsigned int SAMPLING_PATTERN : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int SAMPLING_PATTERN : 16;
+ unsigned int PARAM_SHADE : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_PROGRAM_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VS_NUM_REG : 6;
+ unsigned int : 2;
+ unsigned int PS_NUM_REG : 6;
+ unsigned int : 2;
+ unsigned int VS_RESOURCE : 1;
+ unsigned int PS_RESOURCE : 1;
+ unsigned int PARAM_GEN : 1;
+ unsigned int GEN_INDEX_PIX : 1;
+ unsigned int VS_EXPORT_COUNT : 4;
+ unsigned int VS_EXPORT_MODE : 3;
+ unsigned int PS_EXPORT_MODE : 4;
+ unsigned int GEN_INDEX_VTX : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int GEN_INDEX_VTX : 1;
+ unsigned int PS_EXPORT_MODE : 4;
+ unsigned int VS_EXPORT_MODE : 3;
+ unsigned int VS_EXPORT_COUNT : 4;
+ unsigned int GEN_INDEX_PIX : 1;
+ unsigned int PARAM_GEN : 1;
+ unsigned int PS_RESOURCE : 1;
+ unsigned int VS_RESOURCE : 1;
+ unsigned int : 2;
+ unsigned int PS_NUM_REG : 6;
+ unsigned int : 2;
+ unsigned int VS_NUM_REG : 6;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_WRAPPING_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PARAM_WRAP_0 : 4;
+ unsigned int PARAM_WRAP_1 : 4;
+ unsigned int PARAM_WRAP_2 : 4;
+ unsigned int PARAM_WRAP_3 : 4;
+ unsigned int PARAM_WRAP_4 : 4;
+ unsigned int PARAM_WRAP_5 : 4;
+ unsigned int PARAM_WRAP_6 : 4;
+ unsigned int PARAM_WRAP_7 : 4;
+#else /* !defined(qLittleEndian) */
+ unsigned int PARAM_WRAP_7 : 4;
+ unsigned int PARAM_WRAP_6 : 4;
+ unsigned int PARAM_WRAP_5 : 4;
+ unsigned int PARAM_WRAP_4 : 4;
+ unsigned int PARAM_WRAP_3 : 4;
+ unsigned int PARAM_WRAP_2 : 4;
+ unsigned int PARAM_WRAP_1 : 4;
+ unsigned int PARAM_WRAP_0 : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_WRAPPING_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PARAM_WRAP_8 : 4;
+ unsigned int PARAM_WRAP_9 : 4;
+ unsigned int PARAM_WRAP_10 : 4;
+ unsigned int PARAM_WRAP_11 : 4;
+ unsigned int PARAM_WRAP_12 : 4;
+ unsigned int PARAM_WRAP_13 : 4;
+ unsigned int PARAM_WRAP_14 : 4;
+ unsigned int PARAM_WRAP_15 : 4;
+#else /* !defined(qLittleEndian) */
+ unsigned int PARAM_WRAP_15 : 4;
+ unsigned int PARAM_WRAP_14 : 4;
+ unsigned int PARAM_WRAP_13 : 4;
+ unsigned int PARAM_WRAP_12 : 4;
+ unsigned int PARAM_WRAP_11 : 4;
+ unsigned int PARAM_WRAP_10 : 4;
+ unsigned int PARAM_WRAP_9 : 4;
+ unsigned int PARAM_WRAP_8 : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_VS_CONST {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BASE : 9;
+ unsigned int : 3;
+ unsigned int SIZE : 9;
+ unsigned int : 11;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 11;
+ unsigned int SIZE : 9;
+ unsigned int : 3;
+ unsigned int BASE : 9;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_PS_CONST {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BASE : 9;
+ unsigned int : 3;
+ unsigned int SIZE : 9;
+ unsigned int : 11;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 11;
+ unsigned int SIZE : 9;
+ unsigned int : 3;
+ unsigned int BASE : 9;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CONTEXT_MISC {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int INST_PRED_OPTIMIZE : 1;
+ unsigned int SC_OUTPUT_SCREEN_XY : 1;
+ unsigned int SC_SAMPLE_CNTL : 2;
+ unsigned int : 4;
+ unsigned int PARAM_GEN_POS : 8;
+ unsigned int PERFCOUNTER_REF : 1;
+ unsigned int YEILD_OPTIMIZE : 1;
+ unsigned int TX_CACHE_SEL : 1;
+ unsigned int : 13;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 13;
+ unsigned int TX_CACHE_SEL : 1;
+ unsigned int YEILD_OPTIMIZE : 1;
+ unsigned int PERFCOUNTER_REF : 1;
+ unsigned int PARAM_GEN_POS : 8;
+ unsigned int : 4;
+ unsigned int SC_SAMPLE_CNTL : 2;
+ unsigned int SC_OUTPUT_SCREEN_XY : 1;
+ unsigned int INST_PRED_OPTIMIZE : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CF_RD_BASE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RD_BASE : 3;
+ unsigned int : 29;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 29;
+ unsigned int RD_BASE : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_MISC_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DB_PROB_ON : 1;
+ unsigned int : 3;
+ unsigned int DB_PROB_BREAK : 1;
+ unsigned int : 3;
+ unsigned int DB_PROB_ADDR : 11;
+ unsigned int : 5;
+ unsigned int DB_PROB_COUNT : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int DB_PROB_COUNT : 8;
+ unsigned int : 5;
+ unsigned int DB_PROB_ADDR : 11;
+ unsigned int : 3;
+ unsigned int DB_PROB_BREAK : 1;
+ unsigned int : 3;
+ unsigned int DB_PROB_ON : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_MISC_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DB_ON_PIX : 1;
+ unsigned int DB_ON_VTX : 1;
+ unsigned int : 6;
+ unsigned int DB_INST_COUNT : 8;
+ unsigned int DB_BREAK_ADDR : 11;
+ unsigned int : 5;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 5;
+ unsigned int DB_BREAK_ADDR : 11;
+ unsigned int DB_INST_COUNT : 8;
+ unsigned int : 6;
+ unsigned int DB_ON_VTX : 1;
+ unsigned int DB_ON_PIX : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_ARBITER_CONFIG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SAME_PAGE_LIMIT : 6;
+ unsigned int SAME_PAGE_GRANULARITY : 1;
+ unsigned int L1_ARB_ENABLE : 1;
+ unsigned int L1_ARB_HOLD_ENABLE : 1;
+ unsigned int L2_ARB_CONTROL : 1;
+ unsigned int PAGE_SIZE : 3;
+ unsigned int TC_REORDER_ENABLE : 1;
+ unsigned int TC_ARB_HOLD_ENABLE : 1;
+ unsigned int IN_FLIGHT_LIMIT_ENABLE : 1;
+ unsigned int IN_FLIGHT_LIMIT : 6;
+ unsigned int CP_CLNT_ENABLE : 1;
+ unsigned int VGT_CLNT_ENABLE : 1;
+ unsigned int TC_CLNT_ENABLE : 1;
+ unsigned int RB_CLNT_ENABLE : 1;
+ unsigned int PA_CLNT_ENABLE : 1;
+ unsigned int : 5;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 5;
+ unsigned int PA_CLNT_ENABLE : 1;
+ unsigned int RB_CLNT_ENABLE : 1;
+ unsigned int TC_CLNT_ENABLE : 1;
+ unsigned int VGT_CLNT_ENABLE : 1;
+ unsigned int CP_CLNT_ENABLE : 1;
+ unsigned int IN_FLIGHT_LIMIT : 6;
+ unsigned int IN_FLIGHT_LIMIT_ENABLE : 1;
+ unsigned int TC_ARB_HOLD_ENABLE : 1;
+ unsigned int TC_REORDER_ENABLE : 1;
+ unsigned int PAGE_SIZE : 3;
+ unsigned int L2_ARB_CONTROL : 1;
+ unsigned int L1_ARB_HOLD_ENABLE : 1;
+ unsigned int L1_ARB_ENABLE : 1;
+ unsigned int SAME_PAGE_GRANULARITY : 1;
+ unsigned int SAME_PAGE_LIMIT : 6;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_CLNT_AXI_ID_REUSE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CPw_ID : 3;
+ unsigned int RESERVED1 : 1;
+ unsigned int RBw_ID : 3;
+ unsigned int RESERVED2 : 1;
+ unsigned int MMUr_ID : 3;
+ unsigned int RESERVED3 : 1;
+ unsigned int PAw_ID : 3;
+ unsigned int : 17;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 17;
+ unsigned int PAw_ID : 3;
+ unsigned int RESERVED3 : 1;
+ unsigned int MMUr_ID : 3;
+ unsigned int RESERVED2 : 1;
+ unsigned int RBw_ID : 3;
+ unsigned int RESERVED1 : 1;
+ unsigned int CPw_ID : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_INTERRUPT_MASK {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int AXI_READ_ERROR : 1;
+ unsigned int AXI_WRITE_ERROR : 1;
+ unsigned int MMU_PAGE_FAULT : 1;
+ unsigned int : 29;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 29;
+ unsigned int MMU_PAGE_FAULT : 1;
+ unsigned int AXI_WRITE_ERROR : 1;
+ unsigned int AXI_READ_ERROR : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_INTERRUPT_STATUS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int AXI_READ_ERROR : 1;
+ unsigned int AXI_WRITE_ERROR : 1;
+ unsigned int MMU_PAGE_FAULT : 1;
+ unsigned int : 29;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 29;
+ unsigned int MMU_PAGE_FAULT : 1;
+ unsigned int AXI_WRITE_ERROR : 1;
+ unsigned int AXI_READ_ERROR : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_INTERRUPT_CLEAR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int AXI_READ_ERROR : 1;
+ unsigned int AXI_WRITE_ERROR : 1;
+ unsigned int MMU_PAGE_FAULT : 1;
+ unsigned int : 29;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 29;
+ unsigned int MMU_PAGE_FAULT : 1;
+ unsigned int AXI_WRITE_ERROR : 1;
+ unsigned int AXI_READ_ERROR : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_AXI_ERROR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int AXI_READ_ID : 3;
+ unsigned int AXI_READ_ERROR : 1;
+ unsigned int AXI_WRITE_ID : 3;
+ unsigned int AXI_WRITE_ERROR : 1;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int AXI_WRITE_ERROR : 1;
+ unsigned int AXI_WRITE_ID : 3;
+ unsigned int AXI_READ_ERROR : 1;
+ unsigned int AXI_READ_ID : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_PERFCOUNTER0_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_SEL : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERF_SEL : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_PERFCOUNTER1_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_SEL : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERF_SEL : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_PERFCOUNTER0_CONFIG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int N_VALUE : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int N_VALUE : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_PERFCOUNTER1_CONFIG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int N_VALUE : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int N_VALUE : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_PERFCOUNTER0_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERF_COUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_PERFCOUNTER1_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERF_COUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_PERFCOUNTER0_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERF_COUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_PERFCOUNTER1_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERF_COUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_CTRL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int INDEX : 6;
+ unsigned int : 26;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 26;
+ unsigned int INDEX : 6;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_DATA {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DATA : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int DATA : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_AXI_HALT_CONTROL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int AXI_HALT : 1;
+ unsigned int : 31;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 31;
+ unsigned int AXI_HALT : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG00 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MH_BUSY : 1;
+ unsigned int TRANS_OUTSTANDING : 1;
+ unsigned int CP_REQUEST : 1;
+ unsigned int VGT_REQUEST : 1;
+ unsigned int TC_REQUEST : 1;
+ unsigned int TC_CAM_EMPTY : 1;
+ unsigned int TC_CAM_FULL : 1;
+ unsigned int TCD_EMPTY : 1;
+ unsigned int TCD_FULL : 1;
+ unsigned int RB_REQUEST : 1;
+ unsigned int PA_REQUEST : 1;
+ unsigned int MH_CLK_EN_STATE : 1;
+ unsigned int ARQ_EMPTY : 1;
+ unsigned int ARQ_FULL : 1;
+ unsigned int WDB_EMPTY : 1;
+ unsigned int WDB_FULL : 1;
+ unsigned int AXI_AVALID : 1;
+ unsigned int AXI_AREADY : 1;
+ unsigned int AXI_ARVALID : 1;
+ unsigned int AXI_ARREADY : 1;
+ unsigned int AXI_WVALID : 1;
+ unsigned int AXI_WREADY : 1;
+ unsigned int AXI_RVALID : 1;
+ unsigned int AXI_RREADY : 1;
+ unsigned int AXI_BVALID : 1;
+ unsigned int AXI_BREADY : 1;
+ unsigned int AXI_HALT_REQ : 1;
+ unsigned int AXI_HALT_ACK : 1;
+ unsigned int AXI_RDY_ENA : 1;
+ unsigned int : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 3;
+ unsigned int AXI_RDY_ENA : 1;
+ unsigned int AXI_HALT_ACK : 1;
+ unsigned int AXI_HALT_REQ : 1;
+ unsigned int AXI_BREADY : 1;
+ unsigned int AXI_BVALID : 1;
+ unsigned int AXI_RREADY : 1;
+ unsigned int AXI_RVALID : 1;
+ unsigned int AXI_WREADY : 1;
+ unsigned int AXI_WVALID : 1;
+ unsigned int AXI_ARREADY : 1;
+ unsigned int AXI_ARVALID : 1;
+ unsigned int AXI_AREADY : 1;
+ unsigned int AXI_AVALID : 1;
+ unsigned int WDB_FULL : 1;
+ unsigned int WDB_EMPTY : 1;
+ unsigned int ARQ_FULL : 1;
+ unsigned int ARQ_EMPTY : 1;
+ unsigned int MH_CLK_EN_STATE : 1;
+ unsigned int PA_REQUEST : 1;
+ unsigned int RB_REQUEST : 1;
+ unsigned int TCD_FULL : 1;
+ unsigned int TCD_EMPTY : 1;
+ unsigned int TC_CAM_FULL : 1;
+ unsigned int TC_CAM_EMPTY : 1;
+ unsigned int TC_REQUEST : 1;
+ unsigned int VGT_REQUEST : 1;
+ unsigned int CP_REQUEST : 1;
+ unsigned int TRANS_OUTSTANDING : 1;
+ unsigned int MH_BUSY : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG01 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CP_SEND_q : 1;
+ unsigned int CP_RTR_q : 1;
+ unsigned int CP_WRITE_q : 1;
+ unsigned int CP_TAG_q : 3;
+ unsigned int CP_BLEN_q : 1;
+ unsigned int VGT_SEND_q : 1;
+ unsigned int VGT_RTR_q : 1;
+ unsigned int VGT_TAG_q : 1;
+ unsigned int TC_SEND_q : 1;
+ unsigned int TC_RTR_q : 1;
+ unsigned int TC_BLEN_q : 1;
+ unsigned int TC_ROQ_SEND_q : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int TC_MH_written : 1;
+ unsigned int RB_SEND_q : 1;
+ unsigned int RB_RTR_q : 1;
+ unsigned int PA_SEND_q : 1;
+ unsigned int PA_RTR_q : 1;
+ unsigned int : 12;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 12;
+ unsigned int PA_RTR_q : 1;
+ unsigned int PA_SEND_q : 1;
+ unsigned int RB_RTR_q : 1;
+ unsigned int RB_SEND_q : 1;
+ unsigned int TC_MH_written : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int TC_ROQ_SEND_q : 1;
+ unsigned int TC_BLEN_q : 1;
+ unsigned int TC_RTR_q : 1;
+ unsigned int TC_SEND_q : 1;
+ unsigned int VGT_TAG_q : 1;
+ unsigned int VGT_RTR_q : 1;
+ unsigned int VGT_SEND_q : 1;
+ unsigned int CP_BLEN_q : 1;
+ unsigned int CP_TAG_q : 3;
+ unsigned int CP_WRITE_q : 1;
+ unsigned int CP_RTR_q : 1;
+ unsigned int CP_SEND_q : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG02 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MH_CP_grb_send : 1;
+ unsigned int MH_VGT_grb_send : 1;
+ unsigned int MH_TC_mcsend : 1;
+ unsigned int MH_CLNT_rlast : 1;
+ unsigned int MH_CLNT_tag : 3;
+ unsigned int RDC_RID : 3;
+ unsigned int RDC_RRESP : 2;
+ unsigned int MH_CP_writeclean : 1;
+ unsigned int MH_RB_writeclean : 1;
+ unsigned int MH_PA_writeclean : 1;
+ unsigned int BRC_BID : 3;
+ unsigned int BRC_BRESP : 2;
+ unsigned int : 12;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 12;
+ unsigned int BRC_BRESP : 2;
+ unsigned int BRC_BID : 3;
+ unsigned int MH_PA_writeclean : 1;
+ unsigned int MH_RB_writeclean : 1;
+ unsigned int MH_CP_writeclean : 1;
+ unsigned int RDC_RRESP : 2;
+ unsigned int RDC_RID : 3;
+ unsigned int MH_CLNT_tag : 3;
+ unsigned int MH_CLNT_rlast : 1;
+ unsigned int MH_TC_mcsend : 1;
+ unsigned int MH_VGT_grb_send : 1;
+ unsigned int MH_CP_grb_send : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG03 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MH_CLNT_data_31_0 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int MH_CLNT_data_31_0 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG04 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MH_CLNT_data_63_32 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int MH_CLNT_data_63_32 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG05 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CP_MH_send : 1;
+ unsigned int CP_MH_write : 1;
+ unsigned int CP_MH_tag : 3;
+ unsigned int CP_MH_ad_31_5 : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int CP_MH_ad_31_5 : 27;
+ unsigned int CP_MH_tag : 3;
+ unsigned int CP_MH_write : 1;
+ unsigned int CP_MH_send : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG06 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CP_MH_data_31_0 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int CP_MH_data_31_0 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG07 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CP_MH_data_63_32 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int CP_MH_data_63_32 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG08 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CP_MH_be : 8;
+ unsigned int RB_MH_be : 8;
+ unsigned int PA_MH_be : 8;
+ unsigned int : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 8;
+ unsigned int PA_MH_be : 8;
+ unsigned int RB_MH_be : 8;
+ unsigned int CP_MH_be : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG09 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ALWAYS_ZERO : 3;
+ unsigned int VGT_MH_send : 1;
+ unsigned int VGT_MH_tagbe : 1;
+ unsigned int VGT_MH_ad_31_5 : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int VGT_MH_ad_31_5 : 27;
+ unsigned int VGT_MH_tagbe : 1;
+ unsigned int VGT_MH_send : 1;
+ unsigned int ALWAYS_ZERO : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG10 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int TC_MH_send : 1;
+ unsigned int TC_MH_mask : 2;
+ unsigned int TC_MH_addr_31_5 : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int TC_MH_addr_31_5 : 27;
+ unsigned int TC_MH_mask : 2;
+ unsigned int TC_MH_send : 1;
+ unsigned int ALWAYS_ZERO : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG11 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TC_MH_info : 25;
+ unsigned int TC_MH_send : 1;
+ unsigned int : 6;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 6;
+ unsigned int TC_MH_send : 1;
+ unsigned int TC_MH_info : 25;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG12 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MH_TC_mcinfo : 25;
+ unsigned int MH_TC_mcinfo_send : 1;
+ unsigned int TC_MH_written : 1;
+ unsigned int : 5;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 5;
+ unsigned int TC_MH_written : 1;
+ unsigned int MH_TC_mcinfo_send : 1;
+ unsigned int MH_TC_mcinfo : 25;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG13 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int TC_ROQ_SEND : 1;
+ unsigned int TC_ROQ_MASK : 2;
+ unsigned int TC_ROQ_ADDR_31_5 : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int TC_ROQ_ADDR_31_5 : 27;
+ unsigned int TC_ROQ_MASK : 2;
+ unsigned int TC_ROQ_SEND : 1;
+ unsigned int ALWAYS_ZERO : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG14 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TC_ROQ_INFO : 25;
+ unsigned int TC_ROQ_SEND : 1;
+ unsigned int : 6;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 6;
+ unsigned int TC_ROQ_SEND : 1;
+ unsigned int TC_ROQ_INFO : 25;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG15 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ALWAYS_ZERO : 4;
+ unsigned int RB_MH_send : 1;
+ unsigned int RB_MH_addr_31_5 : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int RB_MH_addr_31_5 : 27;
+ unsigned int RB_MH_send : 1;
+ unsigned int ALWAYS_ZERO : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG16 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RB_MH_data_31_0 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int RB_MH_data_31_0 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG17 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RB_MH_data_63_32 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int RB_MH_data_63_32 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG18 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ALWAYS_ZERO : 4;
+ unsigned int PA_MH_send : 1;
+ unsigned int PA_MH_addr_31_5 : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int PA_MH_addr_31_5 : 27;
+ unsigned int PA_MH_send : 1;
+ unsigned int ALWAYS_ZERO : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG19 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PA_MH_data_31_0 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PA_MH_data_31_0 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG20 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PA_MH_data_63_32 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PA_MH_data_63_32 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG21 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int AVALID_q : 1;
+ unsigned int AREADY_q : 1;
+ unsigned int AID_q : 3;
+ unsigned int ALEN_q_2_0 : 3;
+ unsigned int ARVALID_q : 1;
+ unsigned int ARREADY_q : 1;
+ unsigned int ARID_q : 3;
+ unsigned int ARLEN_q_1_0 : 2;
+ unsigned int RVALID_q : 1;
+ unsigned int RREADY_q : 1;
+ unsigned int RLAST_q : 1;
+ unsigned int RID_q : 3;
+ unsigned int WVALID_q : 1;
+ unsigned int WREADY_q : 1;
+ unsigned int WLAST_q : 1;
+ unsigned int WID_q : 3;
+ unsigned int BVALID_q : 1;
+ unsigned int BREADY_q : 1;
+ unsigned int BID_q : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int BID_q : 3;
+ unsigned int BREADY_q : 1;
+ unsigned int BVALID_q : 1;
+ unsigned int WID_q : 3;
+ unsigned int WLAST_q : 1;
+ unsigned int WREADY_q : 1;
+ unsigned int WVALID_q : 1;
+ unsigned int RID_q : 3;
+ unsigned int RLAST_q : 1;
+ unsigned int RREADY_q : 1;
+ unsigned int RVALID_q : 1;
+ unsigned int ARLEN_q_1_0 : 2;
+ unsigned int ARID_q : 3;
+ unsigned int ARREADY_q : 1;
+ unsigned int ARVALID_q : 1;
+ unsigned int ALEN_q_2_0 : 3;
+ unsigned int AID_q : 3;
+ unsigned int AREADY_q : 1;
+ unsigned int AVALID_q : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG22 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int AVALID_q : 1;
+ unsigned int AREADY_q : 1;
+ unsigned int AID_q : 3;
+ unsigned int ALEN_q_1_0 : 2;
+ unsigned int ARVALID_q : 1;
+ unsigned int ARREADY_q : 1;
+ unsigned int ARID_q : 3;
+ unsigned int ARLEN_q_1_1 : 1;
+ unsigned int WVALID_q : 1;
+ unsigned int WREADY_q : 1;
+ unsigned int WLAST_q : 1;
+ unsigned int WID_q : 3;
+ unsigned int WSTRB_q : 8;
+ unsigned int BVALID_q : 1;
+ unsigned int BREADY_q : 1;
+ unsigned int BID_q : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int BID_q : 3;
+ unsigned int BREADY_q : 1;
+ unsigned int BVALID_q : 1;
+ unsigned int WSTRB_q : 8;
+ unsigned int WID_q : 3;
+ unsigned int WLAST_q : 1;
+ unsigned int WREADY_q : 1;
+ unsigned int WVALID_q : 1;
+ unsigned int ARLEN_q_1_1 : 1;
+ unsigned int ARID_q : 3;
+ unsigned int ARREADY_q : 1;
+ unsigned int ARVALID_q : 1;
+ unsigned int ALEN_q_1_0 : 2;
+ unsigned int AID_q : 3;
+ unsigned int AREADY_q : 1;
+ unsigned int AVALID_q : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG23 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ARC_CTRL_RE_q : 1;
+ unsigned int CTRL_ARC_ID : 3;
+ unsigned int CTRL_ARC_PAD : 28;
+#else /* !defined(qLittleEndian) */
+ unsigned int CTRL_ARC_PAD : 28;
+ unsigned int CTRL_ARC_ID : 3;
+ unsigned int ARC_CTRL_RE_q : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG24 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int REG_A : 14;
+ unsigned int REG_RE : 1;
+ unsigned int REG_WE : 1;
+ unsigned int BLOCK_RS : 1;
+ unsigned int : 13;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 13;
+ unsigned int BLOCK_RS : 1;
+ unsigned int REG_WE : 1;
+ unsigned int REG_RE : 1;
+ unsigned int REG_A : 14;
+ unsigned int ALWAYS_ZERO : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG25 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int REG_WD : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int REG_WD : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG26 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MH_RBBM_busy : 1;
+ unsigned int MH_CIB_mh_clk_en_int : 1;
+ unsigned int MH_CIB_mmu_clk_en_int : 1;
+ unsigned int MH_CIB_tcroq_clk_en_int : 1;
+ unsigned int GAT_CLK_ENA : 1;
+ unsigned int RBBM_MH_clk_en_override : 1;
+ unsigned int CNT_q : 6;
+ unsigned int TCD_EMPTY_q : 1;
+ unsigned int TC_ROQ_EMPTY : 1;
+ unsigned int MH_BUSY_d : 1;
+ unsigned int ANY_CLNT_BUSY : 1;
+ unsigned int MH_MMU_INVALIDATE_INVALIDATE_ALL : 1;
+ unsigned int MH_MMU_INVALIDATE_INVALIDATE_TC : 1;
+ unsigned int CP_SEND_q : 1;
+ unsigned int CP_RTR_q : 1;
+ unsigned int VGT_SEND_q : 1;
+ unsigned int VGT_RTR_q : 1;
+ unsigned int TC_ROQ_SEND_q : 1;
+ unsigned int TC_ROQ_RTR_DBG_q : 1;
+ unsigned int RB_SEND_q : 1;
+ unsigned int RB_RTR_q : 1;
+ unsigned int PA_SEND_q : 1;
+ unsigned int PA_RTR_q : 1;
+ unsigned int RDC_VALID : 1;
+ unsigned int RDC_RLAST : 1;
+ unsigned int TLBMISS_VALID : 1;
+ unsigned int BRC_VALID : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int BRC_VALID : 1;
+ unsigned int TLBMISS_VALID : 1;
+ unsigned int RDC_RLAST : 1;
+ unsigned int RDC_VALID : 1;
+ unsigned int PA_RTR_q : 1;
+ unsigned int PA_SEND_q : 1;
+ unsigned int RB_RTR_q : 1;
+ unsigned int RB_SEND_q : 1;
+ unsigned int TC_ROQ_RTR_DBG_q : 1;
+ unsigned int TC_ROQ_SEND_q : 1;
+ unsigned int VGT_RTR_q : 1;
+ unsigned int VGT_SEND_q : 1;
+ unsigned int CP_RTR_q : 1;
+ unsigned int CP_SEND_q : 1;
+ unsigned int MH_MMU_INVALIDATE_INVALIDATE_TC : 1;
+ unsigned int MH_MMU_INVALIDATE_INVALIDATE_ALL : 1;
+ unsigned int ANY_CLNT_BUSY : 1;
+ unsigned int MH_BUSY_d : 1;
+ unsigned int TC_ROQ_EMPTY : 1;
+ unsigned int TCD_EMPTY_q : 1;
+ unsigned int CNT_q : 6;
+ unsigned int RBBM_MH_clk_en_override : 1;
+ unsigned int GAT_CLK_ENA : 1;
+ unsigned int MH_CIB_tcroq_clk_en_int : 1;
+ unsigned int MH_CIB_mmu_clk_en_int : 1;
+ unsigned int MH_CIB_mh_clk_en_int : 1;
+ unsigned int MH_RBBM_busy : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG27 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int EFF2_FP_WINNER : 3;
+ unsigned int EFF2_LRU_WINNER_out : 3;
+ unsigned int EFF1_WINNER : 3;
+ unsigned int ARB_WINNER : 3;
+ unsigned int ARB_WINNER_q : 3;
+ unsigned int EFF1_WIN : 1;
+ unsigned int KILL_EFF1 : 1;
+ unsigned int ARB_HOLD : 1;
+ unsigned int ARB_RTR_q : 1;
+ unsigned int CP_SEND_QUAL : 1;
+ unsigned int VGT_SEND_QUAL : 1;
+ unsigned int TC_SEND_QUAL : 1;
+ unsigned int TC_SEND_EFF1_QUAL : 1;
+ unsigned int RB_SEND_QUAL : 1;
+ unsigned int PA_SEND_QUAL : 1;
+ unsigned int ARB_QUAL : 1;
+ unsigned int CP_EFF1_REQ : 1;
+ unsigned int VGT_EFF1_REQ : 1;
+ unsigned int TC_EFF1_REQ : 1;
+ unsigned int RB_EFF1_REQ : 1;
+ unsigned int TCD_NEARFULL_q : 1;
+ unsigned int TCHOLD_IP_q : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int TCHOLD_IP_q : 1;
+ unsigned int TCD_NEARFULL_q : 1;
+ unsigned int RB_EFF1_REQ : 1;
+ unsigned int TC_EFF1_REQ : 1;
+ unsigned int VGT_EFF1_REQ : 1;
+ unsigned int CP_EFF1_REQ : 1;
+ unsigned int ARB_QUAL : 1;
+ unsigned int PA_SEND_QUAL : 1;
+ unsigned int RB_SEND_QUAL : 1;
+ unsigned int TC_SEND_EFF1_QUAL : 1;
+ unsigned int TC_SEND_QUAL : 1;
+ unsigned int VGT_SEND_QUAL : 1;
+ unsigned int CP_SEND_QUAL : 1;
+ unsigned int ARB_RTR_q : 1;
+ unsigned int ARB_HOLD : 1;
+ unsigned int KILL_EFF1 : 1;
+ unsigned int EFF1_WIN : 1;
+ unsigned int ARB_WINNER_q : 3;
+ unsigned int ARB_WINNER : 3;
+ unsigned int EFF1_WINNER : 3;
+ unsigned int EFF2_LRU_WINNER_out : 3;
+ unsigned int EFF2_FP_WINNER : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG28 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int EFF1_WINNER : 3;
+ unsigned int ARB_WINNER : 3;
+ unsigned int CP_SEND_QUAL : 1;
+ unsigned int VGT_SEND_QUAL : 1;
+ unsigned int TC_SEND_QUAL : 1;
+ unsigned int TC_SEND_EFF1_QUAL : 1;
+ unsigned int RB_SEND_QUAL : 1;
+ unsigned int ARB_QUAL : 1;
+ unsigned int CP_EFF1_REQ : 1;
+ unsigned int VGT_EFF1_REQ : 1;
+ unsigned int TC_EFF1_REQ : 1;
+ unsigned int RB_EFF1_REQ : 1;
+ unsigned int EFF1_WIN : 1;
+ unsigned int KILL_EFF1 : 1;
+ unsigned int TCD_NEARFULL_q : 1;
+ unsigned int TC_ARB_HOLD : 1;
+ unsigned int ARB_HOLD : 1;
+ unsigned int ARB_RTR_q : 1;
+ unsigned int SAME_PAGE_LIMIT_COUNT_q : 10;
+#else /* !defined(qLittleEndian) */
+ unsigned int SAME_PAGE_LIMIT_COUNT_q : 10;
+ unsigned int ARB_RTR_q : 1;
+ unsigned int ARB_HOLD : 1;
+ unsigned int TC_ARB_HOLD : 1;
+ unsigned int TCD_NEARFULL_q : 1;
+ unsigned int KILL_EFF1 : 1;
+ unsigned int EFF1_WIN : 1;
+ unsigned int RB_EFF1_REQ : 1;
+ unsigned int TC_EFF1_REQ : 1;
+ unsigned int VGT_EFF1_REQ : 1;
+ unsigned int CP_EFF1_REQ : 1;
+ unsigned int ARB_QUAL : 1;
+ unsigned int RB_SEND_QUAL : 1;
+ unsigned int TC_SEND_EFF1_QUAL : 1;
+ unsigned int TC_SEND_QUAL : 1;
+ unsigned int VGT_SEND_QUAL : 1;
+ unsigned int CP_SEND_QUAL : 1;
+ unsigned int ARB_WINNER : 3;
+ unsigned int EFF1_WINNER : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG29 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int EFF2_LRU_WINNER_out : 3;
+ unsigned int LEAST_RECENT_INDEX_d : 3;
+ unsigned int LEAST_RECENT_d : 3;
+ unsigned int UPDATE_RECENT_STACK_d : 1;
+ unsigned int ARB_HOLD : 1;
+ unsigned int ARB_RTR_q : 1;
+ unsigned int CLNT_REQ : 5;
+ unsigned int RECENT_d_0 : 3;
+ unsigned int RECENT_d_1 : 3;
+ unsigned int RECENT_d_2 : 3;
+ unsigned int RECENT_d_3 : 3;
+ unsigned int RECENT_d_4 : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int RECENT_d_4 : 3;
+ unsigned int RECENT_d_3 : 3;
+ unsigned int RECENT_d_2 : 3;
+ unsigned int RECENT_d_1 : 3;
+ unsigned int RECENT_d_0 : 3;
+ unsigned int CLNT_REQ : 5;
+ unsigned int ARB_RTR_q : 1;
+ unsigned int ARB_HOLD : 1;
+ unsigned int UPDATE_RECENT_STACK_d : 1;
+ unsigned int LEAST_RECENT_d : 3;
+ unsigned int LEAST_RECENT_INDEX_d : 3;
+ unsigned int EFF2_LRU_WINNER_out : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG30 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TC_ARB_HOLD : 1;
+ unsigned int TC_NOROQ_SAME_ROW_BANK : 1;
+ unsigned int TC_ROQ_SAME_ROW_BANK : 1;
+ unsigned int TCD_NEARFULL_q : 1;
+ unsigned int TCHOLD_IP_q : 1;
+ unsigned int TCHOLD_CNT_q : 3;
+ unsigned int MH_ARBITER_CONFIG_TC_REORDER_ENABLE : 1;
+ unsigned int TC_ROQ_RTR_DBG_q : 1;
+ unsigned int TC_ROQ_SEND_q : 1;
+ unsigned int TC_MH_written : 1;
+ unsigned int TCD_FULLNESS_CNT_q : 7;
+ unsigned int WBURST_ACTIVE : 1;
+ unsigned int WLAST_q : 1;
+ unsigned int WBURST_IP_q : 1;
+ unsigned int WBURST_CNT_q : 3;
+ unsigned int CP_SEND_QUAL : 1;
+ unsigned int CP_MH_write : 1;
+ unsigned int RB_SEND_QUAL : 1;
+ unsigned int PA_SEND_QUAL : 1;
+ unsigned int ARB_WINNER : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int ARB_WINNER : 3;
+ unsigned int PA_SEND_QUAL : 1;
+ unsigned int RB_SEND_QUAL : 1;
+ unsigned int CP_MH_write : 1;
+ unsigned int CP_SEND_QUAL : 1;
+ unsigned int WBURST_CNT_q : 3;
+ unsigned int WBURST_IP_q : 1;
+ unsigned int WLAST_q : 1;
+ unsigned int WBURST_ACTIVE : 1;
+ unsigned int TCD_FULLNESS_CNT_q : 7;
+ unsigned int TC_MH_written : 1;
+ unsigned int TC_ROQ_SEND_q : 1;
+ unsigned int TC_ROQ_RTR_DBG_q : 1;
+ unsigned int MH_ARBITER_CONFIG_TC_REORDER_ENABLE : 1;
+ unsigned int TCHOLD_CNT_q : 3;
+ unsigned int TCHOLD_IP_q : 1;
+ unsigned int TCD_NEARFULL_q : 1;
+ unsigned int TC_ROQ_SAME_ROW_BANK : 1;
+ unsigned int TC_NOROQ_SAME_ROW_BANK : 1;
+ unsigned int TC_ARB_HOLD : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG31 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RF_ARBITER_CONFIG_q : 26;
+ unsigned int MH_CLNT_AXI_ID_REUSE_MMUr_ID : 3;
+ unsigned int : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 3;
+ unsigned int MH_CLNT_AXI_ID_REUSE_MMUr_ID : 3;
+ unsigned int RF_ARBITER_CONFIG_q : 26;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG32 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SAME_ROW_BANK_q : 8;
+ unsigned int ROQ_MARK_q : 8;
+ unsigned int ROQ_VALID_q : 8;
+ unsigned int TC_MH_send : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int KILL_EFF1 : 1;
+ unsigned int TC_ROQ_SAME_ROW_BANK_SEL : 1;
+ unsigned int ANY_SAME_ROW_BANK : 1;
+ unsigned int TC_EFF1_QUAL : 1;
+ unsigned int TC_ROQ_EMPTY : 1;
+ unsigned int TC_ROQ_FULL : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int TC_ROQ_FULL : 1;
+ unsigned int TC_ROQ_EMPTY : 1;
+ unsigned int TC_EFF1_QUAL : 1;
+ unsigned int ANY_SAME_ROW_BANK : 1;
+ unsigned int TC_ROQ_SAME_ROW_BANK_SEL : 1;
+ unsigned int KILL_EFF1 : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int TC_MH_send : 1;
+ unsigned int ROQ_VALID_q : 8;
+ unsigned int ROQ_MARK_q : 8;
+ unsigned int SAME_ROW_BANK_q : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG33 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SAME_ROW_BANK_q : 8;
+ unsigned int ROQ_MARK_d : 8;
+ unsigned int ROQ_VALID_d : 8;
+ unsigned int TC_MH_send : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int KILL_EFF1 : 1;
+ unsigned int TC_ROQ_SAME_ROW_BANK_SEL : 1;
+ unsigned int ANY_SAME_ROW_BANK : 1;
+ unsigned int TC_EFF1_QUAL : 1;
+ unsigned int TC_ROQ_EMPTY : 1;
+ unsigned int TC_ROQ_FULL : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int TC_ROQ_FULL : 1;
+ unsigned int TC_ROQ_EMPTY : 1;
+ unsigned int TC_EFF1_QUAL : 1;
+ unsigned int ANY_SAME_ROW_BANK : 1;
+ unsigned int TC_ROQ_SAME_ROW_BANK_SEL : 1;
+ unsigned int KILL_EFF1 : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int TC_MH_send : 1;
+ unsigned int ROQ_VALID_d : 8;
+ unsigned int ROQ_MARK_d : 8;
+ unsigned int SAME_ROW_BANK_q : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG34 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SAME_ROW_BANK_WIN : 8;
+ unsigned int SAME_ROW_BANK_REQ : 8;
+ unsigned int NON_SAME_ROW_BANK_WIN : 8;
+ unsigned int NON_SAME_ROW_BANK_REQ : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int NON_SAME_ROW_BANK_REQ : 8;
+ unsigned int NON_SAME_ROW_BANK_WIN : 8;
+ unsigned int SAME_ROW_BANK_REQ : 8;
+ unsigned int SAME_ROW_BANK_WIN : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG35 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TC_MH_send : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int ROQ_MARK_q_0 : 1;
+ unsigned int ROQ_VALID_q_0 : 1;
+ unsigned int SAME_ROW_BANK_q_0 : 1;
+ unsigned int ROQ_ADDR_0 : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int ROQ_ADDR_0 : 27;
+ unsigned int SAME_ROW_BANK_q_0 : 1;
+ unsigned int ROQ_VALID_q_0 : 1;
+ unsigned int ROQ_MARK_q_0 : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int TC_MH_send : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG36 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TC_MH_send : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int ROQ_MARK_q_1 : 1;
+ unsigned int ROQ_VALID_q_1 : 1;
+ unsigned int SAME_ROW_BANK_q_1 : 1;
+ unsigned int ROQ_ADDR_1 : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int ROQ_ADDR_1 : 27;
+ unsigned int SAME_ROW_BANK_q_1 : 1;
+ unsigned int ROQ_VALID_q_1 : 1;
+ unsigned int ROQ_MARK_q_1 : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int TC_MH_send : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG37 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TC_MH_send : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int ROQ_MARK_q_2 : 1;
+ unsigned int ROQ_VALID_q_2 : 1;
+ unsigned int SAME_ROW_BANK_q_2 : 1;
+ unsigned int ROQ_ADDR_2 : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int ROQ_ADDR_2 : 27;
+ unsigned int SAME_ROW_BANK_q_2 : 1;
+ unsigned int ROQ_VALID_q_2 : 1;
+ unsigned int ROQ_MARK_q_2 : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int TC_MH_send : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG38 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TC_MH_send : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int ROQ_MARK_q_3 : 1;
+ unsigned int ROQ_VALID_q_3 : 1;
+ unsigned int SAME_ROW_BANK_q_3 : 1;
+ unsigned int ROQ_ADDR_3 : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int ROQ_ADDR_3 : 27;
+ unsigned int SAME_ROW_BANK_q_3 : 1;
+ unsigned int ROQ_VALID_q_3 : 1;
+ unsigned int ROQ_MARK_q_3 : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int TC_MH_send : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG39 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TC_MH_send : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int ROQ_MARK_q_4 : 1;
+ unsigned int ROQ_VALID_q_4 : 1;
+ unsigned int SAME_ROW_BANK_q_4 : 1;
+ unsigned int ROQ_ADDR_4 : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int ROQ_ADDR_4 : 27;
+ unsigned int SAME_ROW_BANK_q_4 : 1;
+ unsigned int ROQ_VALID_q_4 : 1;
+ unsigned int ROQ_MARK_q_4 : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int TC_MH_send : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG40 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TC_MH_send : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int ROQ_MARK_q_5 : 1;
+ unsigned int ROQ_VALID_q_5 : 1;
+ unsigned int SAME_ROW_BANK_q_5 : 1;
+ unsigned int ROQ_ADDR_5 : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int ROQ_ADDR_5 : 27;
+ unsigned int SAME_ROW_BANK_q_5 : 1;
+ unsigned int ROQ_VALID_q_5 : 1;
+ unsigned int ROQ_MARK_q_5 : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int TC_MH_send : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG41 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TC_MH_send : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int ROQ_MARK_q_6 : 1;
+ unsigned int ROQ_VALID_q_6 : 1;
+ unsigned int SAME_ROW_BANK_q_6 : 1;
+ unsigned int ROQ_ADDR_6 : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int ROQ_ADDR_6 : 27;
+ unsigned int SAME_ROW_BANK_q_6 : 1;
+ unsigned int ROQ_VALID_q_6 : 1;
+ unsigned int ROQ_MARK_q_6 : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int TC_MH_send : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG42 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TC_MH_send : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int ROQ_MARK_q_7 : 1;
+ unsigned int ROQ_VALID_q_7 : 1;
+ unsigned int SAME_ROW_BANK_q_7 : 1;
+ unsigned int ROQ_ADDR_7 : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int ROQ_ADDR_7 : 27;
+ unsigned int SAME_ROW_BANK_q_7 : 1;
+ unsigned int ROQ_VALID_q_7 : 1;
+ unsigned int ROQ_MARK_q_7 : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int TC_MH_send : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG43 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ARB_REG_WE_q : 1;
+ unsigned int ARB_WE : 1;
+ unsigned int ARB_REG_VALID_q : 1;
+ unsigned int ARB_RTR_q : 1;
+ unsigned int ARB_REG_RTR : 1;
+ unsigned int WDAT_BURST_RTR : 1;
+ unsigned int MMU_RTR : 1;
+ unsigned int ARB_ID_q : 3;
+ unsigned int ARB_WRITE_q : 1;
+ unsigned int ARB_BLEN_q : 1;
+ unsigned int ARQ_CTRL_EMPTY : 1;
+ unsigned int ARQ_FIFO_CNT_q : 3;
+ unsigned int MMU_WE : 1;
+ unsigned int ARQ_RTR : 1;
+ unsigned int MMU_ID : 3;
+ unsigned int MMU_WRITE : 1;
+ unsigned int MMU_BLEN : 1;
+ unsigned int WBURST_IP_q : 1;
+ unsigned int WDAT_REG_WE_q : 1;
+ unsigned int WDB_WE : 1;
+ unsigned int WDB_RTR_SKID_4 : 1;
+ unsigned int WDB_RTR_SKID_3 : 1;
+ unsigned int : 4;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 4;
+ unsigned int WDB_RTR_SKID_3 : 1;
+ unsigned int WDB_RTR_SKID_4 : 1;
+ unsigned int WDB_WE : 1;
+ unsigned int WDAT_REG_WE_q : 1;
+ unsigned int WBURST_IP_q : 1;
+ unsigned int MMU_BLEN : 1;
+ unsigned int MMU_WRITE : 1;
+ unsigned int MMU_ID : 3;
+ unsigned int ARQ_RTR : 1;
+ unsigned int MMU_WE : 1;
+ unsigned int ARQ_FIFO_CNT_q : 3;
+ unsigned int ARQ_CTRL_EMPTY : 1;
+ unsigned int ARB_BLEN_q : 1;
+ unsigned int ARB_WRITE_q : 1;
+ unsigned int ARB_ID_q : 3;
+ unsigned int MMU_RTR : 1;
+ unsigned int WDAT_BURST_RTR : 1;
+ unsigned int ARB_REG_RTR : 1;
+ unsigned int ARB_RTR_q : 1;
+ unsigned int ARB_REG_VALID_q : 1;
+ unsigned int ARB_WE : 1;
+ unsigned int ARB_REG_WE_q : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG44 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ARB_WE : 1;
+ unsigned int ARB_ID_q : 3;
+ unsigned int ARB_VAD_q : 28;
+#else /* !defined(qLittleEndian) */
+ unsigned int ARB_VAD_q : 28;
+ unsigned int ARB_ID_q : 3;
+ unsigned int ARB_WE : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG45 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MMU_WE : 1;
+ unsigned int MMU_ID : 3;
+ unsigned int MMU_PAD : 28;
+#else /* !defined(qLittleEndian) */
+ unsigned int MMU_PAD : 28;
+ unsigned int MMU_ID : 3;
+ unsigned int MMU_WE : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG46 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int WDAT_REG_WE_q : 1;
+ unsigned int WDB_WE : 1;
+ unsigned int WDAT_REG_VALID_q : 1;
+ unsigned int WDB_RTR_SKID_4 : 1;
+ unsigned int ARB_WSTRB_q : 8;
+ unsigned int ARB_WLAST : 1;
+ unsigned int WDB_CTRL_EMPTY : 1;
+ unsigned int WDB_FIFO_CNT_q : 5;
+ unsigned int WDC_WDB_RE_q : 1;
+ unsigned int WDB_WDC_WID : 3;
+ unsigned int WDB_WDC_WLAST : 1;
+ unsigned int WDB_WDC_WSTRB : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int WDB_WDC_WSTRB : 8;
+ unsigned int WDB_WDC_WLAST : 1;
+ unsigned int WDB_WDC_WID : 3;
+ unsigned int WDC_WDB_RE_q : 1;
+ unsigned int WDB_FIFO_CNT_q : 5;
+ unsigned int WDB_CTRL_EMPTY : 1;
+ unsigned int ARB_WLAST : 1;
+ unsigned int ARB_WSTRB_q : 8;
+ unsigned int WDB_RTR_SKID_4 : 1;
+ unsigned int WDAT_REG_VALID_q : 1;
+ unsigned int WDB_WE : 1;
+ unsigned int WDAT_REG_WE_q : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG47 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int WDB_WDC_WDATA_31_0 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int WDB_WDC_WDATA_31_0 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG48 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int WDB_WDC_WDATA_63_32 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int WDB_WDC_WDATA_63_32 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG49 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CTRL_ARC_EMPTY : 1;
+ unsigned int CTRL_RARC_EMPTY : 1;
+ unsigned int ARQ_CTRL_EMPTY : 1;
+ unsigned int ARQ_CTRL_WRITE : 1;
+ unsigned int TLBMISS_CTRL_RTS : 1;
+ unsigned int CTRL_TLBMISS_RE_q : 1;
+ unsigned int INFLT_LIMIT_q : 1;
+ unsigned int INFLT_LIMIT_CNT_q : 6;
+ unsigned int ARC_CTRL_RE_q : 1;
+ unsigned int RARC_CTRL_RE_q : 1;
+ unsigned int RVALID_q : 1;
+ unsigned int RREADY_q : 1;
+ unsigned int RLAST_q : 1;
+ unsigned int BVALID_q : 1;
+ unsigned int BREADY_q : 1;
+ unsigned int : 12;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 12;
+ unsigned int BREADY_q : 1;
+ unsigned int BVALID_q : 1;
+ unsigned int RLAST_q : 1;
+ unsigned int RREADY_q : 1;
+ unsigned int RVALID_q : 1;
+ unsigned int RARC_CTRL_RE_q : 1;
+ unsigned int ARC_CTRL_RE_q : 1;
+ unsigned int INFLT_LIMIT_CNT_q : 6;
+ unsigned int INFLT_LIMIT_q : 1;
+ unsigned int CTRL_TLBMISS_RE_q : 1;
+ unsigned int TLBMISS_CTRL_RTS : 1;
+ unsigned int ARQ_CTRL_WRITE : 1;
+ unsigned int ARQ_CTRL_EMPTY : 1;
+ unsigned int CTRL_RARC_EMPTY : 1;
+ unsigned int CTRL_ARC_EMPTY : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG50 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MH_CP_grb_send : 1;
+ unsigned int MH_VGT_grb_send : 1;
+ unsigned int MH_TC_mcsend : 1;
+ unsigned int MH_TLBMISS_SEND : 1;
+ unsigned int TLBMISS_VALID : 1;
+ unsigned int RDC_VALID : 1;
+ unsigned int RDC_RID : 3;
+ unsigned int RDC_RLAST : 1;
+ unsigned int RDC_RRESP : 2;
+ unsigned int TLBMISS_CTRL_RTS : 1;
+ unsigned int CTRL_TLBMISS_RE_q : 1;
+ unsigned int MMU_ID_REQUEST_q : 1;
+ unsigned int OUTSTANDING_MMUID_CNT_q : 6;
+ unsigned int MMU_ID_RESPONSE : 1;
+ unsigned int TLBMISS_RETURN_CNT_q : 6;
+ unsigned int CNT_HOLD_q1 : 1;
+ unsigned int MH_CLNT_AXI_ID_REUSE_MMUr_ID : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int MH_CLNT_AXI_ID_REUSE_MMUr_ID : 3;
+ unsigned int CNT_HOLD_q1 : 1;
+ unsigned int TLBMISS_RETURN_CNT_q : 6;
+ unsigned int MMU_ID_RESPONSE : 1;
+ unsigned int OUTSTANDING_MMUID_CNT_q : 6;
+ unsigned int MMU_ID_REQUEST_q : 1;
+ unsigned int CTRL_TLBMISS_RE_q : 1;
+ unsigned int TLBMISS_CTRL_RTS : 1;
+ unsigned int RDC_RRESP : 2;
+ unsigned int RDC_RLAST : 1;
+ unsigned int RDC_RID : 3;
+ unsigned int RDC_VALID : 1;
+ unsigned int TLBMISS_VALID : 1;
+ unsigned int MH_TLBMISS_SEND : 1;
+ unsigned int MH_TC_mcsend : 1;
+ unsigned int MH_VGT_grb_send : 1;
+ unsigned int MH_CP_grb_send : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG51 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RF_MMU_PAGE_FAULT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int RF_MMU_PAGE_FAULT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG52 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RF_MMU_CONFIG_q_1_to_0 : 2;
+ unsigned int ARB_WE : 1;
+ unsigned int MMU_RTR : 1;
+ unsigned int RF_MMU_CONFIG_q_25_to_4 : 22;
+ unsigned int ARB_ID_q : 3;
+ unsigned int ARB_WRITE_q : 1;
+ unsigned int client_behavior_q : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int client_behavior_q : 2;
+ unsigned int ARB_WRITE_q : 1;
+ unsigned int ARB_ID_q : 3;
+ unsigned int RF_MMU_CONFIG_q_25_to_4 : 22;
+ unsigned int MMU_RTR : 1;
+ unsigned int ARB_WE : 1;
+ unsigned int RF_MMU_CONFIG_q_1_to_0 : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG53 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int stage1_valid : 1;
+ unsigned int IGNORE_TAG_MISS_q : 1;
+ unsigned int pa_in_mpu_range : 1;
+ unsigned int tag_match_q : 1;
+ unsigned int tag_miss_q : 1;
+ unsigned int va_in_range_q : 1;
+ unsigned int MMU_MISS : 1;
+ unsigned int MMU_READ_MISS : 1;
+ unsigned int MMU_WRITE_MISS : 1;
+ unsigned int MMU_HIT : 1;
+ unsigned int MMU_READ_HIT : 1;
+ unsigned int MMU_WRITE_HIT : 1;
+ unsigned int MMU_SPLIT_MODE_TC_MISS : 1;
+ unsigned int MMU_SPLIT_MODE_TC_HIT : 1;
+ unsigned int MMU_SPLIT_MODE_nonTC_MISS : 1;
+ unsigned int MMU_SPLIT_MODE_nonTC_HIT : 1;
+ unsigned int REQ_VA_OFFSET_q : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int REQ_VA_OFFSET_q : 16;
+ unsigned int MMU_SPLIT_MODE_nonTC_HIT : 1;
+ unsigned int MMU_SPLIT_MODE_nonTC_MISS : 1;
+ unsigned int MMU_SPLIT_MODE_TC_HIT : 1;
+ unsigned int MMU_SPLIT_MODE_TC_MISS : 1;
+ unsigned int MMU_WRITE_HIT : 1;
+ unsigned int MMU_READ_HIT : 1;
+ unsigned int MMU_HIT : 1;
+ unsigned int MMU_WRITE_MISS : 1;
+ unsigned int MMU_READ_MISS : 1;
+ unsigned int MMU_MISS : 1;
+ unsigned int va_in_range_q : 1;
+ unsigned int tag_miss_q : 1;
+ unsigned int tag_match_q : 1;
+ unsigned int pa_in_mpu_range : 1;
+ unsigned int IGNORE_TAG_MISS_q : 1;
+ unsigned int stage1_valid : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG54 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ARQ_RTR : 1;
+ unsigned int MMU_WE : 1;
+ unsigned int CTRL_TLBMISS_RE_q : 1;
+ unsigned int TLBMISS_CTRL_RTS : 1;
+ unsigned int MH_TLBMISS_SEND : 1;
+ unsigned int MMU_STALL_AWAITING_TLB_MISS_FETCH : 1;
+ unsigned int pa_in_mpu_range : 1;
+ unsigned int stage1_valid : 1;
+ unsigned int stage2_valid : 1;
+ unsigned int client_behavior_q : 2;
+ unsigned int IGNORE_TAG_MISS_q : 1;
+ unsigned int tag_match_q : 1;
+ unsigned int tag_miss_q : 1;
+ unsigned int va_in_range_q : 1;
+ unsigned int PTE_FETCH_COMPLETE_q : 1;
+ unsigned int TAG_valid_q : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int TAG_valid_q : 16;
+ unsigned int PTE_FETCH_COMPLETE_q : 1;
+ unsigned int va_in_range_q : 1;
+ unsigned int tag_miss_q : 1;
+ unsigned int tag_match_q : 1;
+ unsigned int IGNORE_TAG_MISS_q : 1;
+ unsigned int client_behavior_q : 2;
+ unsigned int stage2_valid : 1;
+ unsigned int stage1_valid : 1;
+ unsigned int pa_in_mpu_range : 1;
+ unsigned int MMU_STALL_AWAITING_TLB_MISS_FETCH : 1;
+ unsigned int MH_TLBMISS_SEND : 1;
+ unsigned int TLBMISS_CTRL_RTS : 1;
+ unsigned int CTRL_TLBMISS_RE_q : 1;
+ unsigned int MMU_WE : 1;
+ unsigned int ARQ_RTR : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG55 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TAG0_VA : 13;
+ unsigned int TAG_valid_q_0 : 1;
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int TAG1_VA : 13;
+ unsigned int TAG_valid_q_1 : 1;
+ unsigned int : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 2;
+ unsigned int TAG_valid_q_1 : 1;
+ unsigned int TAG1_VA : 13;
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int TAG_valid_q_0 : 1;
+ unsigned int TAG0_VA : 13;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG56 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TAG2_VA : 13;
+ unsigned int TAG_valid_q_2 : 1;
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int TAG3_VA : 13;
+ unsigned int TAG_valid_q_3 : 1;
+ unsigned int : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 2;
+ unsigned int TAG_valid_q_3 : 1;
+ unsigned int TAG3_VA : 13;
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int TAG_valid_q_2 : 1;
+ unsigned int TAG2_VA : 13;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG57 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TAG4_VA : 13;
+ unsigned int TAG_valid_q_4 : 1;
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int TAG5_VA : 13;
+ unsigned int TAG_valid_q_5 : 1;
+ unsigned int : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 2;
+ unsigned int TAG_valid_q_5 : 1;
+ unsigned int TAG5_VA : 13;
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int TAG_valid_q_4 : 1;
+ unsigned int TAG4_VA : 13;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG58 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TAG6_VA : 13;
+ unsigned int TAG_valid_q_6 : 1;
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int TAG7_VA : 13;
+ unsigned int TAG_valid_q_7 : 1;
+ unsigned int : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 2;
+ unsigned int TAG_valid_q_7 : 1;
+ unsigned int TAG7_VA : 13;
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int TAG_valid_q_6 : 1;
+ unsigned int TAG6_VA : 13;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG59 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TAG8_VA : 13;
+ unsigned int TAG_valid_q_8 : 1;
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int TAG9_VA : 13;
+ unsigned int TAG_valid_q_9 : 1;
+ unsigned int : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 2;
+ unsigned int TAG_valid_q_9 : 1;
+ unsigned int TAG9_VA : 13;
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int TAG_valid_q_8 : 1;
+ unsigned int TAG8_VA : 13;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG60 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TAG10_VA : 13;
+ unsigned int TAG_valid_q_10 : 1;
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int TAG11_VA : 13;
+ unsigned int TAG_valid_q_11 : 1;
+ unsigned int : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 2;
+ unsigned int TAG_valid_q_11 : 1;
+ unsigned int TAG11_VA : 13;
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int TAG_valid_q_10 : 1;
+ unsigned int TAG10_VA : 13;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG61 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TAG12_VA : 13;
+ unsigned int TAG_valid_q_12 : 1;
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int TAG13_VA : 13;
+ unsigned int TAG_valid_q_13 : 1;
+ unsigned int : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 2;
+ unsigned int TAG_valid_q_13 : 1;
+ unsigned int TAG13_VA : 13;
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int TAG_valid_q_12 : 1;
+ unsigned int TAG12_VA : 13;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG62 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TAG14_VA : 13;
+ unsigned int TAG_valid_q_14 : 1;
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int TAG15_VA : 13;
+ unsigned int TAG_valid_q_15 : 1;
+ unsigned int : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 2;
+ unsigned int TAG_valid_q_15 : 1;
+ unsigned int TAG15_VA : 13;
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int TAG_valid_q_14 : 1;
+ unsigned int TAG14_VA : 13;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG63 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MH_DBG_DEFAULT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int MH_DBG_DEFAULT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_MMU_CONFIG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MMU_ENABLE : 1;
+ unsigned int SPLIT_MODE_ENABLE : 1;
+ unsigned int RESERVED1 : 2;
+ unsigned int RB_W_CLNT_BEHAVIOR : 2;
+ unsigned int CP_W_CLNT_BEHAVIOR : 2;
+ unsigned int CP_R0_CLNT_BEHAVIOR : 2;
+ unsigned int CP_R1_CLNT_BEHAVIOR : 2;
+ unsigned int CP_R2_CLNT_BEHAVIOR : 2;
+ unsigned int CP_R3_CLNT_BEHAVIOR : 2;
+ unsigned int CP_R4_CLNT_BEHAVIOR : 2;
+ unsigned int VGT_R0_CLNT_BEHAVIOR : 2;
+ unsigned int VGT_R1_CLNT_BEHAVIOR : 2;
+ unsigned int TC_R_CLNT_BEHAVIOR : 2;
+ unsigned int PA_W_CLNT_BEHAVIOR : 2;
+ unsigned int : 6;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 6;
+ unsigned int PA_W_CLNT_BEHAVIOR : 2;
+ unsigned int TC_R_CLNT_BEHAVIOR : 2;
+ unsigned int VGT_R1_CLNT_BEHAVIOR : 2;
+ unsigned int VGT_R0_CLNT_BEHAVIOR : 2;
+ unsigned int CP_R4_CLNT_BEHAVIOR : 2;
+ unsigned int CP_R3_CLNT_BEHAVIOR : 2;
+ unsigned int CP_R2_CLNT_BEHAVIOR : 2;
+ unsigned int CP_R1_CLNT_BEHAVIOR : 2;
+ unsigned int CP_R0_CLNT_BEHAVIOR : 2;
+ unsigned int CP_W_CLNT_BEHAVIOR : 2;
+ unsigned int RB_W_CLNT_BEHAVIOR : 2;
+ unsigned int RESERVED1 : 2;
+ unsigned int SPLIT_MODE_ENABLE : 1;
+ unsigned int MMU_ENABLE : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_MMU_VA_RANGE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int NUM_64KB_REGIONS : 12;
+ unsigned int VA_BASE : 20;
+#else /* !defined(qLittleEndian) */
+ unsigned int VA_BASE : 20;
+ unsigned int NUM_64KB_REGIONS : 12;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_MMU_PT_BASE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 12;
+ unsigned int PT_BASE : 20;
+#else /* !defined(qLittleEndian) */
+ unsigned int PT_BASE : 20;
+ unsigned int : 12;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_MMU_PAGE_FAULT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PAGE_FAULT : 1;
+ unsigned int OP_TYPE : 1;
+ unsigned int CLNT_BEHAVIOR : 2;
+ unsigned int AXI_ID : 3;
+ unsigned int RESERVED1 : 1;
+ unsigned int MPU_ADDRESS_OUT_OF_RANGE : 1;
+ unsigned int ADDRESS_OUT_OF_RANGE : 1;
+ unsigned int READ_PROTECTION_ERROR : 1;
+ unsigned int WRITE_PROTECTION_ERROR : 1;
+ unsigned int REQ_VA : 20;
+#else /* !defined(qLittleEndian) */
+ unsigned int REQ_VA : 20;
+ unsigned int WRITE_PROTECTION_ERROR : 1;
+ unsigned int READ_PROTECTION_ERROR : 1;
+ unsigned int ADDRESS_OUT_OF_RANGE : 1;
+ unsigned int MPU_ADDRESS_OUT_OF_RANGE : 1;
+ unsigned int RESERVED1 : 1;
+ unsigned int AXI_ID : 3;
+ unsigned int CLNT_BEHAVIOR : 2;
+ unsigned int OP_TYPE : 1;
+ unsigned int PAGE_FAULT : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_MMU_TRAN_ERROR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 5;
+ unsigned int TRAN_ERROR : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int TRAN_ERROR : 27;
+ unsigned int : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_MMU_INVALIDATE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int INVALIDATE_ALL : 1;
+ unsigned int INVALIDATE_TC : 1;
+ unsigned int : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 30;
+ unsigned int INVALIDATE_TC : 1;
+ unsigned int INVALIDATE_ALL : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_MMU_MPU_BASE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 12;
+ unsigned int MPU_BASE : 20;
+#else /* !defined(qLittleEndian) */
+ unsigned int MPU_BASE : 20;
+ unsigned int : 12;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_MMU_MPU_END {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 12;
+ unsigned int MPU_END : 20;
+#else /* !defined(qLittleEndian) */
+ unsigned int MPU_END : 20;
+ unsigned int : 12;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union WAIT_UNTIL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 1;
+ unsigned int WAIT_RE_VSYNC : 1;
+ unsigned int WAIT_FE_VSYNC : 1;
+ unsigned int WAIT_VSYNC : 1;
+ unsigned int WAIT_DSPLY_ID0 : 1;
+ unsigned int WAIT_DSPLY_ID1 : 1;
+ unsigned int WAIT_DSPLY_ID2 : 1;
+ unsigned int : 3;
+ unsigned int WAIT_CMDFIFO : 1;
+ unsigned int : 3;
+ unsigned int WAIT_2D_IDLE : 1;
+ unsigned int WAIT_3D_IDLE : 1;
+ unsigned int WAIT_2D_IDLECLEAN : 1;
+ unsigned int WAIT_3D_IDLECLEAN : 1;
+ unsigned int : 2;
+ unsigned int CMDFIFO_ENTRIES : 4;
+ unsigned int : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 8;
+ unsigned int CMDFIFO_ENTRIES : 4;
+ unsigned int : 2;
+ unsigned int WAIT_3D_IDLECLEAN : 1;
+ unsigned int WAIT_2D_IDLECLEAN : 1;
+ unsigned int WAIT_3D_IDLE : 1;
+ unsigned int WAIT_2D_IDLE : 1;
+ unsigned int : 3;
+ unsigned int WAIT_CMDFIFO : 1;
+ unsigned int : 3;
+ unsigned int WAIT_DSPLY_ID2 : 1;
+ unsigned int WAIT_DSPLY_ID1 : 1;
+ unsigned int WAIT_DSPLY_ID0 : 1;
+ unsigned int WAIT_VSYNC : 1;
+ unsigned int WAIT_FE_VSYNC : 1;
+ unsigned int WAIT_RE_VSYNC : 1;
+ unsigned int : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_ISYNC_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 4;
+ unsigned int ISYNC_WAIT_IDLEGUI : 1;
+ unsigned int ISYNC_CPSCRATCH_IDLEGUI : 1;
+ unsigned int : 26;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 26;
+ unsigned int ISYNC_CPSCRATCH_IDLEGUI : 1;
+ unsigned int ISYNC_WAIT_IDLEGUI : 1;
+ unsigned int : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_STATUS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CMDFIFO_AVAIL : 5;
+ unsigned int TC_BUSY : 1;
+ unsigned int : 2;
+ unsigned int HIRQ_PENDING : 1;
+ unsigned int CPRQ_PENDING : 1;
+ unsigned int CFRQ_PENDING : 1;
+ unsigned int PFRQ_PENDING : 1;
+ unsigned int VGT_BUSY_NO_DMA : 1;
+ unsigned int : 1;
+ unsigned int RBBM_WU_BUSY : 1;
+ unsigned int : 1;
+ unsigned int CP_NRT_BUSY : 1;
+ unsigned int : 1;
+ unsigned int MH_BUSY : 1;
+ unsigned int MH_COHERENCY_BUSY : 1;
+ unsigned int : 1;
+ unsigned int SX_BUSY : 1;
+ unsigned int TPC_BUSY : 1;
+ unsigned int : 1;
+ unsigned int SC_CNTX_BUSY : 1;
+ unsigned int PA_BUSY : 1;
+ unsigned int VGT_BUSY : 1;
+ unsigned int SQ_CNTX17_BUSY : 1;
+ unsigned int SQ_CNTX0_BUSY : 1;
+ unsigned int : 1;
+ unsigned int RB_CNTX_BUSY : 1;
+ unsigned int GUI_ACTIVE : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int GUI_ACTIVE : 1;
+ unsigned int RB_CNTX_BUSY : 1;
+ unsigned int : 1;
+ unsigned int SQ_CNTX0_BUSY : 1;
+ unsigned int SQ_CNTX17_BUSY : 1;
+ unsigned int VGT_BUSY : 1;
+ unsigned int PA_BUSY : 1;
+ unsigned int SC_CNTX_BUSY : 1;
+ unsigned int : 1;
+ unsigned int TPC_BUSY : 1;
+ unsigned int SX_BUSY : 1;
+ unsigned int : 1;
+ unsigned int MH_COHERENCY_BUSY : 1;
+ unsigned int MH_BUSY : 1;
+ unsigned int : 1;
+ unsigned int CP_NRT_BUSY : 1;
+ unsigned int : 1;
+ unsigned int RBBM_WU_BUSY : 1;
+ unsigned int : 1;
+ unsigned int VGT_BUSY_NO_DMA : 1;
+ unsigned int PFRQ_PENDING : 1;
+ unsigned int CFRQ_PENDING : 1;
+ unsigned int CPRQ_PENDING : 1;
+ unsigned int HIRQ_PENDING : 1;
+ unsigned int : 2;
+ unsigned int TC_BUSY : 1;
+ unsigned int CMDFIFO_AVAIL : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_DSPLY {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SEL_DMI_ACTIVE_BUFID0 : 1;
+ unsigned int SEL_DMI_ACTIVE_BUFID1 : 1;
+ unsigned int SEL_DMI_ACTIVE_BUFID2 : 1;
+ unsigned int SEL_DMI_VSYNC_VALID : 1;
+ unsigned int DMI_CH1_USE_BUFID0 : 1;
+ unsigned int DMI_CH1_USE_BUFID1 : 1;
+ unsigned int DMI_CH1_USE_BUFID2 : 1;
+ unsigned int DMI_CH1_SW_CNTL : 1;
+ unsigned int DMI_CH1_NUM_BUFS : 2;
+ unsigned int DMI_CH2_USE_BUFID0 : 1;
+ unsigned int DMI_CH2_USE_BUFID1 : 1;
+ unsigned int DMI_CH2_USE_BUFID2 : 1;
+ unsigned int DMI_CH2_SW_CNTL : 1;
+ unsigned int DMI_CH2_NUM_BUFS : 2;
+ unsigned int DMI_CHANNEL_SELECT : 2;
+ unsigned int : 2;
+ unsigned int DMI_CH3_USE_BUFID0 : 1;
+ unsigned int DMI_CH3_USE_BUFID1 : 1;
+ unsigned int DMI_CH3_USE_BUFID2 : 1;
+ unsigned int DMI_CH3_SW_CNTL : 1;
+ unsigned int DMI_CH3_NUM_BUFS : 2;
+ unsigned int DMI_CH4_USE_BUFID0 : 1;
+ unsigned int DMI_CH4_USE_BUFID1 : 1;
+ unsigned int DMI_CH4_USE_BUFID2 : 1;
+ unsigned int DMI_CH4_SW_CNTL : 1;
+ unsigned int DMI_CH4_NUM_BUFS : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int DMI_CH4_NUM_BUFS : 2;
+ unsigned int DMI_CH4_SW_CNTL : 1;
+ unsigned int DMI_CH4_USE_BUFID2 : 1;
+ unsigned int DMI_CH4_USE_BUFID1 : 1;
+ unsigned int DMI_CH4_USE_BUFID0 : 1;
+ unsigned int DMI_CH3_NUM_BUFS : 2;
+ unsigned int DMI_CH3_SW_CNTL : 1;
+ unsigned int DMI_CH3_USE_BUFID2 : 1;
+ unsigned int DMI_CH3_USE_BUFID1 : 1;
+ unsigned int DMI_CH3_USE_BUFID0 : 1;
+ unsigned int : 2;
+ unsigned int DMI_CHANNEL_SELECT : 2;
+ unsigned int DMI_CH2_NUM_BUFS : 2;
+ unsigned int DMI_CH2_SW_CNTL : 1;
+ unsigned int DMI_CH2_USE_BUFID2 : 1;
+ unsigned int DMI_CH2_USE_BUFID1 : 1;
+ unsigned int DMI_CH2_USE_BUFID0 : 1;
+ unsigned int DMI_CH1_NUM_BUFS : 2;
+ unsigned int DMI_CH1_SW_CNTL : 1;
+ unsigned int DMI_CH1_USE_BUFID2 : 1;
+ unsigned int DMI_CH1_USE_BUFID1 : 1;
+ unsigned int DMI_CH1_USE_BUFID0 : 1;
+ unsigned int SEL_DMI_VSYNC_VALID : 1;
+ unsigned int SEL_DMI_ACTIVE_BUFID2 : 1;
+ unsigned int SEL_DMI_ACTIVE_BUFID1 : 1;
+ unsigned int SEL_DMI_ACTIVE_BUFID0 : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_RENDER_LATEST {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DMI_CH1_BUFFER_ID : 2;
+ unsigned int : 6;
+ unsigned int DMI_CH2_BUFFER_ID : 2;
+ unsigned int : 6;
+ unsigned int DMI_CH3_BUFFER_ID : 2;
+ unsigned int : 6;
+ unsigned int DMI_CH4_BUFFER_ID : 2;
+ unsigned int : 6;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 6;
+ unsigned int DMI_CH4_BUFFER_ID : 2;
+ unsigned int : 6;
+ unsigned int DMI_CH3_BUFFER_ID : 2;
+ unsigned int : 6;
+ unsigned int DMI_CH2_BUFFER_ID : 2;
+ unsigned int : 6;
+ unsigned int DMI_CH1_BUFFER_ID : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_RTL_RELEASE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CHANGELIST : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int CHANGELIST : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_PATCH_RELEASE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PATCH_REVISION : 16;
+ unsigned int PATCH_SELECTION : 8;
+ unsigned int CUSTOMER_ID : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int CUSTOMER_ID : 8;
+ unsigned int PATCH_SELECTION : 8;
+ unsigned int PATCH_REVISION : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_AUXILIARY_CONFIG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RESERVED : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int RESERVED : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_PERIPHID0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PARTNUMBER0 : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PARTNUMBER0 : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_PERIPHID1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PARTNUMBER1 : 4;
+ unsigned int DESIGNER0 : 4;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int DESIGNER0 : 4;
+ unsigned int PARTNUMBER1 : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_PERIPHID2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DESIGNER1 : 4;
+ unsigned int REVISION : 4;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int REVISION : 4;
+ unsigned int DESIGNER1 : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_PERIPHID3 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RBBM_HOST_INTERFACE : 2;
+ unsigned int GARB_SLAVE_INTERFACE : 2;
+ unsigned int MH_INTERFACE : 2;
+ unsigned int : 1;
+ unsigned int CONTINUATION : 1;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int CONTINUATION : 1;
+ unsigned int : 1;
+ unsigned int MH_INTERFACE : 2;
+ unsigned int GARB_SLAVE_INTERFACE : 2;
+ unsigned int RBBM_HOST_INTERFACE : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int READ_TIMEOUT : 8;
+ unsigned int REGCLK_DEASSERT_TIME : 9;
+ unsigned int : 15;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 15;
+ unsigned int REGCLK_DEASSERT_TIME : 9;
+ unsigned int READ_TIMEOUT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_SKEW_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SKEW_TOP_THRESHOLD : 5;
+ unsigned int SKEW_COUNT : 5;
+ unsigned int : 22;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 22;
+ unsigned int SKEW_COUNT : 5;
+ unsigned int SKEW_TOP_THRESHOLD : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_SOFT_RESET {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SOFT_RESET_CP : 1;
+ unsigned int : 1;
+ unsigned int SOFT_RESET_PA : 1;
+ unsigned int SOFT_RESET_MH : 1;
+ unsigned int SOFT_RESET_BC : 1;
+ unsigned int SOFT_RESET_SQ : 1;
+ unsigned int SOFT_RESET_SX : 1;
+ unsigned int : 5;
+ unsigned int SOFT_RESET_CIB : 1;
+ unsigned int : 2;
+ unsigned int SOFT_RESET_SC : 1;
+ unsigned int SOFT_RESET_VGT : 1;
+ unsigned int : 15;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 15;
+ unsigned int SOFT_RESET_VGT : 1;
+ unsigned int SOFT_RESET_SC : 1;
+ unsigned int : 2;
+ unsigned int SOFT_RESET_CIB : 1;
+ unsigned int : 5;
+ unsigned int SOFT_RESET_SX : 1;
+ unsigned int SOFT_RESET_SQ : 1;
+ unsigned int SOFT_RESET_BC : 1;
+ unsigned int SOFT_RESET_MH : 1;
+ unsigned int SOFT_RESET_PA : 1;
+ unsigned int : 1;
+ unsigned int SOFT_RESET_CP : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_PM_OVERRIDE1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RBBM_AHBCLK_PM_OVERRIDE : 1;
+ unsigned int SC_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int SC_SCLK_PM_OVERRIDE : 1;
+ unsigned int SP_TOP_SCLK_PM_OVERRIDE : 1;
+ unsigned int SP_V0_SCLK_PM_OVERRIDE : 1;
+ unsigned int SQ_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int SQ_REG_FIFOS_SCLK_PM_OVERRIDE : 1;
+ unsigned int SQ_CONST_MEM_SCLK_PM_OVERRIDE : 1;
+ unsigned int SQ_SQ_SCLK_PM_OVERRIDE : 1;
+ unsigned int SX_SCLK_PM_OVERRIDE : 1;
+ unsigned int SX_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int TCM_TCO_SCLK_PM_OVERRIDE : 1;
+ unsigned int TCM_TCM_SCLK_PM_OVERRIDE : 1;
+ unsigned int TCM_TCD_SCLK_PM_OVERRIDE : 1;
+ unsigned int TCM_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int TPC_TPC_SCLK_PM_OVERRIDE : 1;
+ unsigned int TPC_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int TCF_TCA_SCLK_PM_OVERRIDE : 1;
+ unsigned int TCF_TCB_SCLK_PM_OVERRIDE : 1;
+ unsigned int TCF_TCB_READ_SCLK_PM_OVERRIDE : 1;
+ unsigned int TP_TP_SCLK_PM_OVERRIDE : 1;
+ unsigned int TP_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int CP_G_SCLK_PM_OVERRIDE : 1;
+ unsigned int CP_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int CP_G_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int SPI_SCLK_PM_OVERRIDE : 1;
+ unsigned int RB_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int RB_SCLK_PM_OVERRIDE : 1;
+ unsigned int MH_MH_SCLK_PM_OVERRIDE : 1;
+ unsigned int MH_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int MH_MMU_SCLK_PM_OVERRIDE : 1;
+ unsigned int MH_TCROQ_SCLK_PM_OVERRIDE : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int MH_TCROQ_SCLK_PM_OVERRIDE : 1;
+ unsigned int MH_MMU_SCLK_PM_OVERRIDE : 1;
+ unsigned int MH_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int MH_MH_SCLK_PM_OVERRIDE : 1;
+ unsigned int RB_SCLK_PM_OVERRIDE : 1;
+ unsigned int RB_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int SPI_SCLK_PM_OVERRIDE : 1;
+ unsigned int CP_G_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int CP_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int CP_G_SCLK_PM_OVERRIDE : 1;
+ unsigned int TP_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int TP_TP_SCLK_PM_OVERRIDE : 1;
+ unsigned int TCF_TCB_READ_SCLK_PM_OVERRIDE : 1;
+ unsigned int TCF_TCB_SCLK_PM_OVERRIDE : 1;
+ unsigned int TCF_TCA_SCLK_PM_OVERRIDE : 1;
+ unsigned int TPC_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int TPC_TPC_SCLK_PM_OVERRIDE : 1;
+ unsigned int TCM_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int TCM_TCD_SCLK_PM_OVERRIDE : 1;
+ unsigned int TCM_TCM_SCLK_PM_OVERRIDE : 1;
+ unsigned int TCM_TCO_SCLK_PM_OVERRIDE : 1;
+ unsigned int SX_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int SX_SCLK_PM_OVERRIDE : 1;
+ unsigned int SQ_SQ_SCLK_PM_OVERRIDE : 1;
+ unsigned int SQ_CONST_MEM_SCLK_PM_OVERRIDE : 1;
+ unsigned int SQ_REG_FIFOS_SCLK_PM_OVERRIDE : 1;
+ unsigned int SQ_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int SP_V0_SCLK_PM_OVERRIDE : 1;
+ unsigned int SP_TOP_SCLK_PM_OVERRIDE : 1;
+ unsigned int SC_SCLK_PM_OVERRIDE : 1;
+ unsigned int SC_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int RBBM_AHBCLK_PM_OVERRIDE : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_PM_OVERRIDE2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PA_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int PA_PA_SCLK_PM_OVERRIDE : 1;
+ unsigned int PA_AG_SCLK_PM_OVERRIDE : 1;
+ unsigned int VGT_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int VGT_FIFOS_SCLK_PM_OVERRIDE : 1;
+ unsigned int VGT_VGT_SCLK_PM_OVERRIDE : 1;
+ unsigned int DEBUG_PERF_SCLK_PM_OVERRIDE : 1;
+ unsigned int PERM_SCLK_PM_OVERRIDE : 1;
+ unsigned int GC_GA_GMEM0_PM_OVERRIDE : 1;
+ unsigned int GC_GA_GMEM1_PM_OVERRIDE : 1;
+ unsigned int GC_GA_GMEM2_PM_OVERRIDE : 1;
+ unsigned int GC_GA_GMEM3_PM_OVERRIDE : 1;
+ unsigned int : 20;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 20;
+ unsigned int GC_GA_GMEM3_PM_OVERRIDE : 1;
+ unsigned int GC_GA_GMEM2_PM_OVERRIDE : 1;
+ unsigned int GC_GA_GMEM1_PM_OVERRIDE : 1;
+ unsigned int GC_GA_GMEM0_PM_OVERRIDE : 1;
+ unsigned int PERM_SCLK_PM_OVERRIDE : 1;
+ unsigned int DEBUG_PERF_SCLK_PM_OVERRIDE : 1;
+ unsigned int VGT_VGT_SCLK_PM_OVERRIDE : 1;
+ unsigned int VGT_FIFOS_SCLK_PM_OVERRIDE : 1;
+ unsigned int VGT_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int PA_AG_SCLK_PM_OVERRIDE : 1;
+ unsigned int PA_PA_SCLK_PM_OVERRIDE : 1;
+ unsigned int PA_REG_SCLK_PM_OVERRIDE : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union GC_SYS_IDLE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int GC_SYS_IDLE_DELAY : 16;
+ unsigned int GC_SYS_WAIT_DMI_MASK : 6;
+ unsigned int : 2;
+ unsigned int GC_SYS_URGENT_RAMP : 1;
+ unsigned int GC_SYS_WAIT_DMI : 1;
+ unsigned int : 3;
+ unsigned int GC_SYS_URGENT_RAMP_OVERRIDE : 1;
+ unsigned int GC_SYS_WAIT_DMI_OVERRIDE : 1;
+ unsigned int GC_SYS_IDLE_OVERRIDE : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int GC_SYS_IDLE_OVERRIDE : 1;
+ unsigned int GC_SYS_WAIT_DMI_OVERRIDE : 1;
+ unsigned int GC_SYS_URGENT_RAMP_OVERRIDE : 1;
+ unsigned int : 3;
+ unsigned int GC_SYS_WAIT_DMI : 1;
+ unsigned int GC_SYS_URGENT_RAMP : 1;
+ unsigned int : 2;
+ unsigned int GC_SYS_WAIT_DMI_MASK : 6;
+ unsigned int GC_SYS_IDLE_DELAY : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union NQWAIT_UNTIL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int WAIT_GUI_IDLE : 1;
+ unsigned int : 31;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 31;
+ unsigned int WAIT_GUI_IDLE : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_DEBUG_OUT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DEBUG_BUS_OUT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int DEBUG_BUS_OUT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_DEBUG_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SUB_BLOCK_ADDR : 6;
+ unsigned int : 2;
+ unsigned int SUB_BLOCK_SEL : 4;
+ unsigned int SW_ENABLE : 1;
+ unsigned int : 3;
+ unsigned int GPIO_SUB_BLOCK_ADDR : 6;
+ unsigned int : 2;
+ unsigned int GPIO_SUB_BLOCK_SEL : 4;
+ unsigned int GPIO_BYTE_LANE_ENB : 4;
+#else /* !defined(qLittleEndian) */
+ unsigned int GPIO_BYTE_LANE_ENB : 4;
+ unsigned int GPIO_SUB_BLOCK_SEL : 4;
+ unsigned int : 2;
+ unsigned int GPIO_SUB_BLOCK_ADDR : 6;
+ unsigned int : 3;
+ unsigned int SW_ENABLE : 1;
+ unsigned int SUB_BLOCK_SEL : 4;
+ unsigned int : 2;
+ unsigned int SUB_BLOCK_ADDR : 6;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 1;
+ unsigned int IGNORE_RTR : 1;
+ unsigned int IGNORE_CP_SCHED_WU : 1;
+ unsigned int IGNORE_CP_SCHED_ISYNC : 1;
+ unsigned int IGNORE_CP_SCHED_NQ_HI : 1;
+ unsigned int : 3;
+ unsigned int HYSTERESIS_NRT_GUI_ACTIVE : 4;
+ unsigned int : 4;
+ unsigned int IGNORE_RTR_FOR_HI : 1;
+ unsigned int IGNORE_CP_RBBM_NRTRTR_FOR_HI : 1;
+ unsigned int IGNORE_VGT_RBBM_NRTRTR_FOR_HI : 1;
+ unsigned int IGNORE_SQ_RBBM_NRTRTR_FOR_HI : 1;
+ unsigned int CP_RBBM_NRTRTR : 1;
+ unsigned int VGT_RBBM_NRTRTR : 1;
+ unsigned int SQ_RBBM_NRTRTR : 1;
+ unsigned int CLIENTS_FOR_NRT_RTR_FOR_HI : 1;
+ unsigned int CLIENTS_FOR_NRT_RTR : 1;
+ unsigned int : 6;
+ unsigned int IGNORE_SX_RBBM_BUSY : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int IGNORE_SX_RBBM_BUSY : 1;
+ unsigned int : 6;
+ unsigned int CLIENTS_FOR_NRT_RTR : 1;
+ unsigned int CLIENTS_FOR_NRT_RTR_FOR_HI : 1;
+ unsigned int SQ_RBBM_NRTRTR : 1;
+ unsigned int VGT_RBBM_NRTRTR : 1;
+ unsigned int CP_RBBM_NRTRTR : 1;
+ unsigned int IGNORE_SQ_RBBM_NRTRTR_FOR_HI : 1;
+ unsigned int IGNORE_VGT_RBBM_NRTRTR_FOR_HI : 1;
+ unsigned int IGNORE_CP_RBBM_NRTRTR_FOR_HI : 1;
+ unsigned int IGNORE_RTR_FOR_HI : 1;
+ unsigned int : 4;
+ unsigned int HYSTERESIS_NRT_GUI_ACTIVE : 4;
+ unsigned int : 3;
+ unsigned int IGNORE_CP_SCHED_NQ_HI : 1;
+ unsigned int IGNORE_CP_SCHED_ISYNC : 1;
+ unsigned int IGNORE_CP_SCHED_WU : 1;
+ unsigned int IGNORE_RTR : 1;
+ unsigned int : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_READ_ERROR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 2;
+ unsigned int READ_ADDRESS : 15;
+ unsigned int : 13;
+ unsigned int READ_REQUESTER : 1;
+ unsigned int READ_ERROR : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int READ_ERROR : 1;
+ unsigned int READ_REQUESTER : 1;
+ unsigned int : 13;
+ unsigned int READ_ADDRESS : 15;
+ unsigned int : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_WAIT_IDLE_CLOCKS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int WAIT_IDLE_CLOCKS_NRT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int WAIT_IDLE_CLOCKS_NRT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_INT_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RDERR_INT_MASK : 1;
+ unsigned int DISPLAY_UPDATE_INT_MASK : 1;
+ unsigned int : 17;
+ unsigned int GUI_IDLE_INT_MASK : 1;
+ unsigned int : 12;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 12;
+ unsigned int GUI_IDLE_INT_MASK : 1;
+ unsigned int : 17;
+ unsigned int DISPLAY_UPDATE_INT_MASK : 1;
+ unsigned int RDERR_INT_MASK : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_INT_STATUS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RDERR_INT_STAT : 1;
+ unsigned int DISPLAY_UPDATE_INT_STAT : 1;
+ unsigned int : 17;
+ unsigned int GUI_IDLE_INT_STAT : 1;
+ unsigned int : 12;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 12;
+ unsigned int GUI_IDLE_INT_STAT : 1;
+ unsigned int : 17;
+ unsigned int DISPLAY_UPDATE_INT_STAT : 1;
+ unsigned int RDERR_INT_STAT : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_INT_ACK {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RDERR_INT_ACK : 1;
+ unsigned int DISPLAY_UPDATE_INT_ACK : 1;
+ unsigned int : 17;
+ unsigned int GUI_IDLE_INT_ACK : 1;
+ unsigned int : 12;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 12;
+ unsigned int GUI_IDLE_INT_ACK : 1;
+ unsigned int : 17;
+ unsigned int DISPLAY_UPDATE_INT_ACK : 1;
+ unsigned int RDERR_INT_ACK : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MASTER_INT_SIGNAL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 5;
+ unsigned int MH_INT_STAT : 1;
+ unsigned int : 20;
+ unsigned int SQ_INT_STAT : 1;
+ unsigned int : 3;
+ unsigned int CP_INT_STAT : 1;
+ unsigned int RBBM_INT_STAT : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int RBBM_INT_STAT : 1;
+ unsigned int CP_INT_STAT : 1;
+ unsigned int : 3;
+ unsigned int SQ_INT_STAT : 1;
+ unsigned int : 20;
+ unsigned int MH_INT_STAT : 1;
+ unsigned int : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_PERFCOUNTER1_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT1_SEL : 6;
+ unsigned int : 26;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 26;
+ unsigned int PERF_COUNT1_SEL : 6;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_PERFCOUNTER1_LO {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT1_LO : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERF_COUNT1_LO : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_PERFCOUNTER1_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT1_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERF_COUNT1_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_RB_BASE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 5;
+ unsigned int RB_BASE : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int RB_BASE : 27;
+ unsigned int : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_RB_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RB_BUFSZ : 6;
+ unsigned int : 2;
+ unsigned int RB_BLKSZ : 6;
+ unsigned int : 2;
+ unsigned int BUF_SWAP : 2;
+ unsigned int : 2;
+ unsigned int RB_POLL_EN : 1;
+ unsigned int : 6;
+ unsigned int RB_NO_UPDATE : 1;
+ unsigned int : 3;
+ unsigned int RB_RPTR_WR_ENA : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int RB_RPTR_WR_ENA : 1;
+ unsigned int : 3;
+ unsigned int RB_NO_UPDATE : 1;
+ unsigned int : 6;
+ unsigned int RB_POLL_EN : 1;
+ unsigned int : 2;
+ unsigned int BUF_SWAP : 2;
+ unsigned int : 2;
+ unsigned int RB_BLKSZ : 6;
+ unsigned int : 2;
+ unsigned int RB_BUFSZ : 6;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_RB_RPTR_ADDR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RB_RPTR_SWAP : 2;
+ unsigned int RB_RPTR_ADDR : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int RB_RPTR_ADDR : 30;
+ unsigned int RB_RPTR_SWAP : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_RB_RPTR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RB_RPTR : 20;
+ unsigned int : 12;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 12;
+ unsigned int RB_RPTR : 20;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_RB_RPTR_WR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RB_RPTR_WR : 20;
+ unsigned int : 12;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 12;
+ unsigned int RB_RPTR_WR : 20;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_RB_WPTR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RB_WPTR : 20;
+ unsigned int : 12;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 12;
+ unsigned int RB_WPTR : 20;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_RB_WPTR_DELAY {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PRE_WRITE_TIMER : 28;
+ unsigned int PRE_WRITE_LIMIT : 4;
+#else /* !defined(qLittleEndian) */
+ unsigned int PRE_WRITE_LIMIT : 4;
+ unsigned int PRE_WRITE_TIMER : 28;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_RB_WPTR_BASE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RB_WPTR_SWAP : 2;
+ unsigned int RB_WPTR_BASE : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int RB_WPTR_BASE : 30;
+ unsigned int RB_WPTR_SWAP : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_IB1_BASE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 2;
+ unsigned int IB1_BASE : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int IB1_BASE : 30;
+ unsigned int : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_IB1_BUFSZ {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int IB1_BUFSZ : 20;
+ unsigned int : 12;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 12;
+ unsigned int IB1_BUFSZ : 20;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_IB2_BASE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 2;
+ unsigned int IB2_BASE : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int IB2_BASE : 30;
+ unsigned int : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_IB2_BUFSZ {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int IB2_BUFSZ : 20;
+ unsigned int : 12;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 12;
+ unsigned int IB2_BUFSZ : 20;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ST_BASE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 2;
+ unsigned int ST_BASE : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int ST_BASE : 30;
+ unsigned int : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ST_BUFSZ {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ST_BUFSZ : 20;
+ unsigned int : 12;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 12;
+ unsigned int ST_BUFSZ : 20;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_QUEUE_THRESHOLDS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CSQ_IB1_START : 4;
+ unsigned int : 4;
+ unsigned int CSQ_IB2_START : 4;
+ unsigned int : 4;
+ unsigned int CSQ_ST_START : 4;
+ unsigned int : 12;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 12;
+ unsigned int CSQ_ST_START : 4;
+ unsigned int : 4;
+ unsigned int CSQ_IB2_START : 4;
+ unsigned int : 4;
+ unsigned int CSQ_IB1_START : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_MEQ_THRESHOLDS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 16;
+ unsigned int MEQ_END : 5;
+ unsigned int : 3;
+ unsigned int ROQ_END : 5;
+ unsigned int : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 3;
+ unsigned int ROQ_END : 5;
+ unsigned int : 3;
+ unsigned int MEQ_END : 5;
+ unsigned int : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_CSQ_AVAIL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CSQ_CNT_RING : 7;
+ unsigned int : 1;
+ unsigned int CSQ_CNT_IB1 : 7;
+ unsigned int : 1;
+ unsigned int CSQ_CNT_IB2 : 7;
+ unsigned int : 9;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 9;
+ unsigned int CSQ_CNT_IB2 : 7;
+ unsigned int : 1;
+ unsigned int CSQ_CNT_IB1 : 7;
+ unsigned int : 1;
+ unsigned int CSQ_CNT_RING : 7;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_STQ_AVAIL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int STQ_CNT_ST : 7;
+ unsigned int : 25;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 25;
+ unsigned int STQ_CNT_ST : 7;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_MEQ_AVAIL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MEQ_CNT : 5;
+ unsigned int : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 27;
+ unsigned int MEQ_CNT : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_CSQ_RB_STAT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CSQ_RPTR_PRIMARY : 7;
+ unsigned int : 9;
+ unsigned int CSQ_WPTR_PRIMARY : 7;
+ unsigned int : 9;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 9;
+ unsigned int CSQ_WPTR_PRIMARY : 7;
+ unsigned int : 9;
+ unsigned int CSQ_RPTR_PRIMARY : 7;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_CSQ_IB1_STAT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CSQ_RPTR_INDIRECT1 : 7;
+ unsigned int : 9;
+ unsigned int CSQ_WPTR_INDIRECT1 : 7;
+ unsigned int : 9;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 9;
+ unsigned int CSQ_WPTR_INDIRECT1 : 7;
+ unsigned int : 9;
+ unsigned int CSQ_RPTR_INDIRECT1 : 7;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_CSQ_IB2_STAT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CSQ_RPTR_INDIRECT2 : 7;
+ unsigned int : 9;
+ unsigned int CSQ_WPTR_INDIRECT2 : 7;
+ unsigned int : 9;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 9;
+ unsigned int CSQ_WPTR_INDIRECT2 : 7;
+ unsigned int : 9;
+ unsigned int CSQ_RPTR_INDIRECT2 : 7;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_NON_PREFETCH_CNTRS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int IB1_COUNTER : 3;
+ unsigned int : 5;
+ unsigned int IB2_COUNTER : 3;
+ unsigned int : 21;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 21;
+ unsigned int IB2_COUNTER : 3;
+ unsigned int : 5;
+ unsigned int IB1_COUNTER : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_STQ_ST_STAT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int STQ_RPTR_ST : 7;
+ unsigned int : 9;
+ unsigned int STQ_WPTR_ST : 7;
+ unsigned int : 9;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 9;
+ unsigned int STQ_WPTR_ST : 7;
+ unsigned int : 9;
+ unsigned int STQ_RPTR_ST : 7;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_MEQ_STAT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MEQ_RPTR : 10;
+ unsigned int : 6;
+ unsigned int MEQ_WPTR : 10;
+ unsigned int : 6;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 6;
+ unsigned int MEQ_WPTR : 10;
+ unsigned int : 6;
+ unsigned int MEQ_RPTR : 10;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_MIU_TAG_STAT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TAG_0_STAT : 1;
+ unsigned int TAG_1_STAT : 1;
+ unsigned int TAG_2_STAT : 1;
+ unsigned int TAG_3_STAT : 1;
+ unsigned int TAG_4_STAT : 1;
+ unsigned int TAG_5_STAT : 1;
+ unsigned int TAG_6_STAT : 1;
+ unsigned int TAG_7_STAT : 1;
+ unsigned int TAG_8_STAT : 1;
+ unsigned int TAG_9_STAT : 1;
+ unsigned int TAG_10_STAT : 1;
+ unsigned int TAG_11_STAT : 1;
+ unsigned int TAG_12_STAT : 1;
+ unsigned int TAG_13_STAT : 1;
+ unsigned int TAG_14_STAT : 1;
+ unsigned int TAG_15_STAT : 1;
+ unsigned int TAG_16_STAT : 1;
+ unsigned int TAG_17_STAT : 1;
+ unsigned int : 13;
+ unsigned int INVALID_RETURN_TAG : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int INVALID_RETURN_TAG : 1;
+ unsigned int : 13;
+ unsigned int TAG_17_STAT : 1;
+ unsigned int TAG_16_STAT : 1;
+ unsigned int TAG_15_STAT : 1;
+ unsigned int TAG_14_STAT : 1;
+ unsigned int TAG_13_STAT : 1;
+ unsigned int TAG_12_STAT : 1;
+ unsigned int TAG_11_STAT : 1;
+ unsigned int TAG_10_STAT : 1;
+ unsigned int TAG_9_STAT : 1;
+ unsigned int TAG_8_STAT : 1;
+ unsigned int TAG_7_STAT : 1;
+ unsigned int TAG_6_STAT : 1;
+ unsigned int TAG_5_STAT : 1;
+ unsigned int TAG_4_STAT : 1;
+ unsigned int TAG_3_STAT : 1;
+ unsigned int TAG_2_STAT : 1;
+ unsigned int TAG_1_STAT : 1;
+ unsigned int TAG_0_STAT : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_CMD_INDEX {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CMD_INDEX : 7;
+ unsigned int : 9;
+ unsigned int CMD_QUEUE_SEL : 2;
+ unsigned int : 14;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 14;
+ unsigned int CMD_QUEUE_SEL : 2;
+ unsigned int : 9;
+ unsigned int CMD_INDEX : 7;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_CMD_DATA {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CMD_DATA : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int CMD_DATA : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ME_STATMUX : 16;
+ unsigned int : 9;
+ unsigned int VTX_DEALLOC_FIFO_EMPTY : 1;
+ unsigned int PIX_DEALLOC_FIFO_EMPTY : 1;
+ unsigned int : 1;
+ unsigned int ME_HALT : 1;
+ unsigned int ME_BUSY : 1;
+ unsigned int : 1;
+ unsigned int PROG_CNT_SIZE : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int PROG_CNT_SIZE : 1;
+ unsigned int : 1;
+ unsigned int ME_BUSY : 1;
+ unsigned int ME_HALT : 1;
+ unsigned int : 1;
+ unsigned int PIX_DEALLOC_FIFO_EMPTY : 1;
+ unsigned int VTX_DEALLOC_FIFO_EMPTY : 1;
+ unsigned int : 9;
+ unsigned int ME_STATMUX : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_STATUS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ME_DEBUG_DATA : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int ME_DEBUG_DATA : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_RAM_WADDR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ME_RAM_WADDR : 10;
+ unsigned int : 22;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 22;
+ unsigned int ME_RAM_WADDR : 10;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_RAM_RADDR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ME_RAM_RADDR : 10;
+ unsigned int : 22;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 22;
+ unsigned int ME_RAM_RADDR : 10;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_RAM_DATA {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ME_RAM_DATA : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int ME_RAM_DATA : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_RDADDR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ME_RDADDR : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int ME_RDADDR : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CP_DEBUG_UNUSED_22_to_0 : 23;
+ unsigned int PREDICATE_DISABLE : 1;
+ unsigned int PROG_END_PTR_ENABLE : 1;
+ unsigned int MIU_128BIT_WRITE_ENABLE : 1;
+ unsigned int PREFETCH_PASS_NOPS : 1;
+ unsigned int DYNAMIC_CLK_DISABLE : 1;
+ unsigned int PREFETCH_MATCH_DISABLE : 1;
+ unsigned int : 1;
+ unsigned int SIMPLE_ME_FLOW_CONTROL : 1;
+ unsigned int MIU_WRITE_PACK_DISABLE : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int MIU_WRITE_PACK_DISABLE : 1;
+ unsigned int SIMPLE_ME_FLOW_CONTROL : 1;
+ unsigned int : 1;
+ unsigned int PREFETCH_MATCH_DISABLE : 1;
+ unsigned int DYNAMIC_CLK_DISABLE : 1;
+ unsigned int PREFETCH_PASS_NOPS : 1;
+ unsigned int MIU_128BIT_WRITE_ENABLE : 1;
+ unsigned int PROG_END_PTR_ENABLE : 1;
+ unsigned int PREDICATE_DISABLE : 1;
+ unsigned int CP_DEBUG_UNUSED_22_to_0 : 23;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SCRATCH_REG0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SCRATCH_REG0 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int SCRATCH_REG0 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SCRATCH_REG1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SCRATCH_REG1 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int SCRATCH_REG1 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SCRATCH_REG2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SCRATCH_REG2 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int SCRATCH_REG2 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SCRATCH_REG3 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SCRATCH_REG3 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int SCRATCH_REG3 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SCRATCH_REG4 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SCRATCH_REG4 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int SCRATCH_REG4 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SCRATCH_REG5 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SCRATCH_REG5 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int SCRATCH_REG5 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SCRATCH_REG6 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SCRATCH_REG6 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int SCRATCH_REG6 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SCRATCH_REG7 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SCRATCH_REG7 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int SCRATCH_REG7 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SCRATCH_UMSK {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SCRATCH_UMSK : 8;
+ unsigned int : 8;
+ unsigned int SCRATCH_SWAP : 2;
+ unsigned int : 14;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 14;
+ unsigned int SCRATCH_SWAP : 2;
+ unsigned int : 8;
+ unsigned int SCRATCH_UMSK : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SCRATCH_ADDR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 5;
+ unsigned int SCRATCH_ADDR : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int SCRATCH_ADDR : 27;
+ unsigned int : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_VS_EVENT_SRC {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VS_DONE_SWM : 1;
+ unsigned int VS_DONE_CNTR : 1;
+ unsigned int : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 30;
+ unsigned int VS_DONE_CNTR : 1;
+ unsigned int VS_DONE_SWM : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_VS_EVENT_ADDR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VS_DONE_SWAP : 2;
+ unsigned int VS_DONE_ADDR : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int VS_DONE_ADDR : 30;
+ unsigned int VS_DONE_SWAP : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_VS_EVENT_DATA {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VS_DONE_DATA : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VS_DONE_DATA : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_VS_EVENT_ADDR_SWM {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VS_DONE_SWAP_SWM : 2;
+ unsigned int VS_DONE_ADDR_SWM : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int VS_DONE_ADDR_SWM : 30;
+ unsigned int VS_DONE_SWAP_SWM : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_VS_EVENT_DATA_SWM {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VS_DONE_DATA_SWM : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VS_DONE_DATA_SWM : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_PS_EVENT_SRC {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PS_DONE_SWM : 1;
+ unsigned int PS_DONE_CNTR : 1;
+ unsigned int : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 30;
+ unsigned int PS_DONE_CNTR : 1;
+ unsigned int PS_DONE_SWM : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_PS_EVENT_ADDR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PS_DONE_SWAP : 2;
+ unsigned int PS_DONE_ADDR : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int PS_DONE_ADDR : 30;
+ unsigned int PS_DONE_SWAP : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_PS_EVENT_DATA {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PS_DONE_DATA : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PS_DONE_DATA : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_PS_EVENT_ADDR_SWM {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PS_DONE_SWAP_SWM : 2;
+ unsigned int PS_DONE_ADDR_SWM : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int PS_DONE_ADDR_SWM : 30;
+ unsigned int PS_DONE_SWAP_SWM : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_PS_EVENT_DATA_SWM {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PS_DONE_DATA_SWM : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PS_DONE_DATA_SWM : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_CF_EVENT_SRC {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CF_DONE_SRC : 1;
+ unsigned int : 31;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 31;
+ unsigned int CF_DONE_SRC : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_CF_EVENT_ADDR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CF_DONE_SWAP : 2;
+ unsigned int CF_DONE_ADDR : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int CF_DONE_ADDR : 30;
+ unsigned int CF_DONE_SWAP : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_CF_EVENT_DATA {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CF_DONE_DATA : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int CF_DONE_DATA : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_NRT_ADDR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int NRT_WRITE_SWAP : 2;
+ unsigned int NRT_WRITE_ADDR : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int NRT_WRITE_ADDR : 30;
+ unsigned int NRT_WRITE_SWAP : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_NRT_DATA {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int NRT_WRITE_DATA : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int NRT_WRITE_DATA : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_VS_FETCH_DONE_SRC {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VS_FETCH_DONE_CNTR : 1;
+ unsigned int : 31;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 31;
+ unsigned int VS_FETCH_DONE_CNTR : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_VS_FETCH_DONE_ADDR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VS_FETCH_DONE_SWAP : 2;
+ unsigned int VS_FETCH_DONE_ADDR : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int VS_FETCH_DONE_ADDR : 30;
+ unsigned int VS_FETCH_DONE_SWAP : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_VS_FETCH_DONE_DATA {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VS_FETCH_DONE_DATA : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VS_FETCH_DONE_DATA : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_INT_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 19;
+ unsigned int SW_INT_MASK : 1;
+ unsigned int : 3;
+ unsigned int T0_PACKET_IN_IB_MASK : 1;
+ unsigned int OPCODE_ERROR_MASK : 1;
+ unsigned int PROTECTED_MODE_ERROR_MASK : 1;
+ unsigned int RESERVED_BIT_ERROR_MASK : 1;
+ unsigned int IB_ERROR_MASK : 1;
+ unsigned int : 1;
+ unsigned int IB2_INT_MASK : 1;
+ unsigned int IB1_INT_MASK : 1;
+ unsigned int RB_INT_MASK : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int RB_INT_MASK : 1;
+ unsigned int IB1_INT_MASK : 1;
+ unsigned int IB2_INT_MASK : 1;
+ unsigned int : 1;
+ unsigned int IB_ERROR_MASK : 1;
+ unsigned int RESERVED_BIT_ERROR_MASK : 1;
+ unsigned int PROTECTED_MODE_ERROR_MASK : 1;
+ unsigned int OPCODE_ERROR_MASK : 1;
+ unsigned int T0_PACKET_IN_IB_MASK : 1;
+ unsigned int : 3;
+ unsigned int SW_INT_MASK : 1;
+ unsigned int : 19;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_INT_STATUS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 19;
+ unsigned int SW_INT_STAT : 1;
+ unsigned int : 3;
+ unsigned int T0_PACKET_IN_IB_STAT : 1;
+ unsigned int OPCODE_ERROR_STAT : 1;
+ unsigned int PROTECTED_MODE_ERROR_STAT : 1;
+ unsigned int RESERVED_BIT_ERROR_STAT : 1;
+ unsigned int IB_ERROR_STAT : 1;
+ unsigned int : 1;
+ unsigned int IB2_INT_STAT : 1;
+ unsigned int IB1_INT_STAT : 1;
+ unsigned int RB_INT_STAT : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int RB_INT_STAT : 1;
+ unsigned int IB1_INT_STAT : 1;
+ unsigned int IB2_INT_STAT : 1;
+ unsigned int : 1;
+ unsigned int IB_ERROR_STAT : 1;
+ unsigned int RESERVED_BIT_ERROR_STAT : 1;
+ unsigned int PROTECTED_MODE_ERROR_STAT : 1;
+ unsigned int OPCODE_ERROR_STAT : 1;
+ unsigned int T0_PACKET_IN_IB_STAT : 1;
+ unsigned int : 3;
+ unsigned int SW_INT_STAT : 1;
+ unsigned int : 19;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_INT_ACK {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 19;
+ unsigned int SW_INT_ACK : 1;
+ unsigned int : 3;
+ unsigned int T0_PACKET_IN_IB_ACK : 1;
+ unsigned int OPCODE_ERROR_ACK : 1;
+ unsigned int PROTECTED_MODE_ERROR_ACK : 1;
+ unsigned int RESERVED_BIT_ERROR_ACK : 1;
+ unsigned int IB_ERROR_ACK : 1;
+ unsigned int : 1;
+ unsigned int IB2_INT_ACK : 1;
+ unsigned int IB1_INT_ACK : 1;
+ unsigned int RB_INT_ACK : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int RB_INT_ACK : 1;
+ unsigned int IB1_INT_ACK : 1;
+ unsigned int IB2_INT_ACK : 1;
+ unsigned int : 1;
+ unsigned int IB_ERROR_ACK : 1;
+ unsigned int RESERVED_BIT_ERROR_ACK : 1;
+ unsigned int PROTECTED_MODE_ERROR_ACK : 1;
+ unsigned int OPCODE_ERROR_ACK : 1;
+ unsigned int T0_PACKET_IN_IB_ACK : 1;
+ unsigned int : 3;
+ unsigned int SW_INT_ACK : 1;
+ unsigned int : 19;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_PFP_UCODE_ADDR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int UCODE_ADDR : 9;
+ unsigned int : 23;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 23;
+ unsigned int UCODE_ADDR : 9;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_PFP_UCODE_DATA {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int UCODE_DATA : 24;
+ unsigned int : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 8;
+ unsigned int UCODE_DATA : 24;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_PERFMON_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFMON_STATE : 4;
+ unsigned int : 4;
+ unsigned int PERFMON_ENABLE_MODE : 2;
+ unsigned int : 22;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 22;
+ unsigned int PERFMON_ENABLE_MODE : 2;
+ unsigned int : 4;
+ unsigned int PERFMON_STATE : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_PERFCOUNTER_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNT_SEL : 6;
+ unsigned int : 26;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 26;
+ unsigned int PERFCOUNT_SEL : 6;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_PERFCOUNTER_LO {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNT_LO : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNT_LO : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_PERFCOUNTER_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNT_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNT_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_BIN_MASK_LO {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIN_MASK_LO : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIN_MASK_LO : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_BIN_MASK_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIN_MASK_HI : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIN_MASK_HI : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_BIN_SELECT_LO {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIN_SELECT_LO : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIN_SELECT_LO : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_BIN_SELECT_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIN_SELECT_HI : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIN_SELECT_HI : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_NV_FLAGS_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DISCARD_0 : 1;
+ unsigned int END_RCVD_0 : 1;
+ unsigned int DISCARD_1 : 1;
+ unsigned int END_RCVD_1 : 1;
+ unsigned int DISCARD_2 : 1;
+ unsigned int END_RCVD_2 : 1;
+ unsigned int DISCARD_3 : 1;
+ unsigned int END_RCVD_3 : 1;
+ unsigned int DISCARD_4 : 1;
+ unsigned int END_RCVD_4 : 1;
+ unsigned int DISCARD_5 : 1;
+ unsigned int END_RCVD_5 : 1;
+ unsigned int DISCARD_6 : 1;
+ unsigned int END_RCVD_6 : 1;
+ unsigned int DISCARD_7 : 1;
+ unsigned int END_RCVD_7 : 1;
+ unsigned int DISCARD_8 : 1;
+ unsigned int END_RCVD_8 : 1;
+ unsigned int DISCARD_9 : 1;
+ unsigned int END_RCVD_9 : 1;
+ unsigned int DISCARD_10 : 1;
+ unsigned int END_RCVD_10 : 1;
+ unsigned int DISCARD_11 : 1;
+ unsigned int END_RCVD_11 : 1;
+ unsigned int DISCARD_12 : 1;
+ unsigned int END_RCVD_12 : 1;
+ unsigned int DISCARD_13 : 1;
+ unsigned int END_RCVD_13 : 1;
+ unsigned int DISCARD_14 : 1;
+ unsigned int END_RCVD_14 : 1;
+ unsigned int DISCARD_15 : 1;
+ unsigned int END_RCVD_15 : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int END_RCVD_15 : 1;
+ unsigned int DISCARD_15 : 1;
+ unsigned int END_RCVD_14 : 1;
+ unsigned int DISCARD_14 : 1;
+ unsigned int END_RCVD_13 : 1;
+ unsigned int DISCARD_13 : 1;
+ unsigned int END_RCVD_12 : 1;
+ unsigned int DISCARD_12 : 1;
+ unsigned int END_RCVD_11 : 1;
+ unsigned int DISCARD_11 : 1;
+ unsigned int END_RCVD_10 : 1;
+ unsigned int DISCARD_10 : 1;
+ unsigned int END_RCVD_9 : 1;
+ unsigned int DISCARD_9 : 1;
+ unsigned int END_RCVD_8 : 1;
+ unsigned int DISCARD_8 : 1;
+ unsigned int END_RCVD_7 : 1;
+ unsigned int DISCARD_7 : 1;
+ unsigned int END_RCVD_6 : 1;
+ unsigned int DISCARD_6 : 1;
+ unsigned int END_RCVD_5 : 1;
+ unsigned int DISCARD_5 : 1;
+ unsigned int END_RCVD_4 : 1;
+ unsigned int DISCARD_4 : 1;
+ unsigned int END_RCVD_3 : 1;
+ unsigned int DISCARD_3 : 1;
+ unsigned int END_RCVD_2 : 1;
+ unsigned int DISCARD_2 : 1;
+ unsigned int END_RCVD_1 : 1;
+ unsigned int DISCARD_1 : 1;
+ unsigned int END_RCVD_0 : 1;
+ unsigned int DISCARD_0 : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_NV_FLAGS_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DISCARD_16 : 1;
+ unsigned int END_RCVD_16 : 1;
+ unsigned int DISCARD_17 : 1;
+ unsigned int END_RCVD_17 : 1;
+ unsigned int DISCARD_18 : 1;
+ unsigned int END_RCVD_18 : 1;
+ unsigned int DISCARD_19 : 1;
+ unsigned int END_RCVD_19 : 1;
+ unsigned int DISCARD_20 : 1;
+ unsigned int END_RCVD_20 : 1;
+ unsigned int DISCARD_21 : 1;
+ unsigned int END_RCVD_21 : 1;
+ unsigned int DISCARD_22 : 1;
+ unsigned int END_RCVD_22 : 1;
+ unsigned int DISCARD_23 : 1;
+ unsigned int END_RCVD_23 : 1;
+ unsigned int DISCARD_24 : 1;
+ unsigned int END_RCVD_24 : 1;
+ unsigned int DISCARD_25 : 1;
+ unsigned int END_RCVD_25 : 1;
+ unsigned int DISCARD_26 : 1;
+ unsigned int END_RCVD_26 : 1;
+ unsigned int DISCARD_27 : 1;
+ unsigned int END_RCVD_27 : 1;
+ unsigned int DISCARD_28 : 1;
+ unsigned int END_RCVD_28 : 1;
+ unsigned int DISCARD_29 : 1;
+ unsigned int END_RCVD_29 : 1;
+ unsigned int DISCARD_30 : 1;
+ unsigned int END_RCVD_30 : 1;
+ unsigned int DISCARD_31 : 1;
+ unsigned int END_RCVD_31 : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int END_RCVD_31 : 1;
+ unsigned int DISCARD_31 : 1;
+ unsigned int END_RCVD_30 : 1;
+ unsigned int DISCARD_30 : 1;
+ unsigned int END_RCVD_29 : 1;
+ unsigned int DISCARD_29 : 1;
+ unsigned int END_RCVD_28 : 1;
+ unsigned int DISCARD_28 : 1;
+ unsigned int END_RCVD_27 : 1;
+ unsigned int DISCARD_27 : 1;
+ unsigned int END_RCVD_26 : 1;
+ unsigned int DISCARD_26 : 1;
+ unsigned int END_RCVD_25 : 1;
+ unsigned int DISCARD_25 : 1;
+ unsigned int END_RCVD_24 : 1;
+ unsigned int DISCARD_24 : 1;
+ unsigned int END_RCVD_23 : 1;
+ unsigned int DISCARD_23 : 1;
+ unsigned int END_RCVD_22 : 1;
+ unsigned int DISCARD_22 : 1;
+ unsigned int END_RCVD_21 : 1;
+ unsigned int DISCARD_21 : 1;
+ unsigned int END_RCVD_20 : 1;
+ unsigned int DISCARD_20 : 1;
+ unsigned int END_RCVD_19 : 1;
+ unsigned int DISCARD_19 : 1;
+ unsigned int END_RCVD_18 : 1;
+ unsigned int DISCARD_18 : 1;
+ unsigned int END_RCVD_17 : 1;
+ unsigned int DISCARD_17 : 1;
+ unsigned int END_RCVD_16 : 1;
+ unsigned int DISCARD_16 : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_NV_FLAGS_2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DISCARD_32 : 1;
+ unsigned int END_RCVD_32 : 1;
+ unsigned int DISCARD_33 : 1;
+ unsigned int END_RCVD_33 : 1;
+ unsigned int DISCARD_34 : 1;
+ unsigned int END_RCVD_34 : 1;
+ unsigned int DISCARD_35 : 1;
+ unsigned int END_RCVD_35 : 1;
+ unsigned int DISCARD_36 : 1;
+ unsigned int END_RCVD_36 : 1;
+ unsigned int DISCARD_37 : 1;
+ unsigned int END_RCVD_37 : 1;
+ unsigned int DISCARD_38 : 1;
+ unsigned int END_RCVD_38 : 1;
+ unsigned int DISCARD_39 : 1;
+ unsigned int END_RCVD_39 : 1;
+ unsigned int DISCARD_40 : 1;
+ unsigned int END_RCVD_40 : 1;
+ unsigned int DISCARD_41 : 1;
+ unsigned int END_RCVD_41 : 1;
+ unsigned int DISCARD_42 : 1;
+ unsigned int END_RCVD_42 : 1;
+ unsigned int DISCARD_43 : 1;
+ unsigned int END_RCVD_43 : 1;
+ unsigned int DISCARD_44 : 1;
+ unsigned int END_RCVD_44 : 1;
+ unsigned int DISCARD_45 : 1;
+ unsigned int END_RCVD_45 : 1;
+ unsigned int DISCARD_46 : 1;
+ unsigned int END_RCVD_46 : 1;
+ unsigned int DISCARD_47 : 1;
+ unsigned int END_RCVD_47 : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int END_RCVD_47 : 1;
+ unsigned int DISCARD_47 : 1;
+ unsigned int END_RCVD_46 : 1;
+ unsigned int DISCARD_46 : 1;
+ unsigned int END_RCVD_45 : 1;
+ unsigned int DISCARD_45 : 1;
+ unsigned int END_RCVD_44 : 1;
+ unsigned int DISCARD_44 : 1;
+ unsigned int END_RCVD_43 : 1;
+ unsigned int DISCARD_43 : 1;
+ unsigned int END_RCVD_42 : 1;
+ unsigned int DISCARD_42 : 1;
+ unsigned int END_RCVD_41 : 1;
+ unsigned int DISCARD_41 : 1;
+ unsigned int END_RCVD_40 : 1;
+ unsigned int DISCARD_40 : 1;
+ unsigned int END_RCVD_39 : 1;
+ unsigned int DISCARD_39 : 1;
+ unsigned int END_RCVD_38 : 1;
+ unsigned int DISCARD_38 : 1;
+ unsigned int END_RCVD_37 : 1;
+ unsigned int DISCARD_37 : 1;
+ unsigned int END_RCVD_36 : 1;
+ unsigned int DISCARD_36 : 1;
+ unsigned int END_RCVD_35 : 1;
+ unsigned int DISCARD_35 : 1;
+ unsigned int END_RCVD_34 : 1;
+ unsigned int DISCARD_34 : 1;
+ unsigned int END_RCVD_33 : 1;
+ unsigned int DISCARD_33 : 1;
+ unsigned int END_RCVD_32 : 1;
+ unsigned int DISCARD_32 : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_NV_FLAGS_3 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DISCARD_48 : 1;
+ unsigned int END_RCVD_48 : 1;
+ unsigned int DISCARD_49 : 1;
+ unsigned int END_RCVD_49 : 1;
+ unsigned int DISCARD_50 : 1;
+ unsigned int END_RCVD_50 : 1;
+ unsigned int DISCARD_51 : 1;
+ unsigned int END_RCVD_51 : 1;
+ unsigned int DISCARD_52 : 1;
+ unsigned int END_RCVD_52 : 1;
+ unsigned int DISCARD_53 : 1;
+ unsigned int END_RCVD_53 : 1;
+ unsigned int DISCARD_54 : 1;
+ unsigned int END_RCVD_54 : 1;
+ unsigned int DISCARD_55 : 1;
+ unsigned int END_RCVD_55 : 1;
+ unsigned int DISCARD_56 : 1;
+ unsigned int END_RCVD_56 : 1;
+ unsigned int DISCARD_57 : 1;
+ unsigned int END_RCVD_57 : 1;
+ unsigned int DISCARD_58 : 1;
+ unsigned int END_RCVD_58 : 1;
+ unsigned int DISCARD_59 : 1;
+ unsigned int END_RCVD_59 : 1;
+ unsigned int DISCARD_60 : 1;
+ unsigned int END_RCVD_60 : 1;
+ unsigned int DISCARD_61 : 1;
+ unsigned int END_RCVD_61 : 1;
+ unsigned int DISCARD_62 : 1;
+ unsigned int END_RCVD_62 : 1;
+ unsigned int DISCARD_63 : 1;
+ unsigned int END_RCVD_63 : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int END_RCVD_63 : 1;
+ unsigned int DISCARD_63 : 1;
+ unsigned int END_RCVD_62 : 1;
+ unsigned int DISCARD_62 : 1;
+ unsigned int END_RCVD_61 : 1;
+ unsigned int DISCARD_61 : 1;
+ unsigned int END_RCVD_60 : 1;
+ unsigned int DISCARD_60 : 1;
+ unsigned int END_RCVD_59 : 1;
+ unsigned int DISCARD_59 : 1;
+ unsigned int END_RCVD_58 : 1;
+ unsigned int DISCARD_58 : 1;
+ unsigned int END_RCVD_57 : 1;
+ unsigned int DISCARD_57 : 1;
+ unsigned int END_RCVD_56 : 1;
+ unsigned int DISCARD_56 : 1;
+ unsigned int END_RCVD_55 : 1;
+ unsigned int DISCARD_55 : 1;
+ unsigned int END_RCVD_54 : 1;
+ unsigned int DISCARD_54 : 1;
+ unsigned int END_RCVD_53 : 1;
+ unsigned int DISCARD_53 : 1;
+ unsigned int END_RCVD_52 : 1;
+ unsigned int DISCARD_52 : 1;
+ unsigned int END_RCVD_51 : 1;
+ unsigned int DISCARD_51 : 1;
+ unsigned int END_RCVD_50 : 1;
+ unsigned int DISCARD_50 : 1;
+ unsigned int END_RCVD_49 : 1;
+ unsigned int DISCARD_49 : 1;
+ unsigned int END_RCVD_48 : 1;
+ unsigned int DISCARD_48 : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_STATE_DEBUG_INDEX {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int STATE_DEBUG_INDEX : 5;
+ unsigned int : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 27;
+ unsigned int STATE_DEBUG_INDEX : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_STATE_DEBUG_DATA {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int STATE_DEBUG_DATA : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int STATE_DEBUG_DATA : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_PROG_COUNTER {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int COUNTER : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int COUNTER : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_STAT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MIU_WR_BUSY : 1;
+ unsigned int MIU_RD_REQ_BUSY : 1;
+ unsigned int MIU_RD_RETURN_BUSY : 1;
+ unsigned int RBIU_BUSY : 1;
+ unsigned int RCIU_BUSY : 1;
+ unsigned int CSF_RING_BUSY : 1;
+ unsigned int CSF_INDIRECTS_BUSY : 1;
+ unsigned int CSF_INDIRECT2_BUSY : 1;
+ unsigned int : 1;
+ unsigned int CSF_ST_BUSY : 1;
+ unsigned int CSF_BUSY : 1;
+ unsigned int RING_QUEUE_BUSY : 1;
+ unsigned int INDIRECTS_QUEUE_BUSY : 1;
+ unsigned int INDIRECT2_QUEUE_BUSY : 1;
+ unsigned int : 2;
+ unsigned int ST_QUEUE_BUSY : 1;
+ unsigned int PFP_BUSY : 1;
+ unsigned int MEQ_RING_BUSY : 1;
+ unsigned int MEQ_INDIRECTS_BUSY : 1;
+ unsigned int MEQ_INDIRECT2_BUSY : 1;
+ unsigned int MIU_WC_STALL : 1;
+ unsigned int CP_NRT_BUSY : 1;
+ unsigned int _3D_BUSY : 1;
+ unsigned int : 2;
+ unsigned int ME_BUSY : 1;
+ unsigned int : 2;
+ unsigned int ME_WC_BUSY : 1;
+ unsigned int MIU_WC_TRACK_FIFO_EMPTY : 1;
+ unsigned int CP_BUSY : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int CP_BUSY : 1;
+ unsigned int MIU_WC_TRACK_FIFO_EMPTY : 1;
+ unsigned int ME_WC_BUSY : 1;
+ unsigned int : 2;
+ unsigned int ME_BUSY : 1;
+ unsigned int : 2;
+ unsigned int _3D_BUSY : 1;
+ unsigned int CP_NRT_BUSY : 1;
+ unsigned int MIU_WC_STALL : 1;
+ unsigned int MEQ_INDIRECT2_BUSY : 1;
+ unsigned int MEQ_INDIRECTS_BUSY : 1;
+ unsigned int MEQ_RING_BUSY : 1;
+ unsigned int PFP_BUSY : 1;
+ unsigned int ST_QUEUE_BUSY : 1;
+ unsigned int : 2;
+ unsigned int INDIRECT2_QUEUE_BUSY : 1;
+ unsigned int INDIRECTS_QUEUE_BUSY : 1;
+ unsigned int RING_QUEUE_BUSY : 1;
+ unsigned int CSF_BUSY : 1;
+ unsigned int CSF_ST_BUSY : 1;
+ unsigned int : 1;
+ unsigned int CSF_INDIRECT2_BUSY : 1;
+ unsigned int CSF_INDIRECTS_BUSY : 1;
+ unsigned int CSF_RING_BUSY : 1;
+ unsigned int RCIU_BUSY : 1;
+ unsigned int RBIU_BUSY : 1;
+ unsigned int MIU_RD_RETURN_BUSY : 1;
+ unsigned int MIU_RD_REQ_BUSY : 1;
+ unsigned int MIU_WR_BUSY : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union BIOS_0_SCRATCH {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIOS_SCRATCH : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIOS_SCRATCH : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union BIOS_1_SCRATCH {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIOS_SCRATCH : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIOS_SCRATCH : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union BIOS_2_SCRATCH {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIOS_SCRATCH : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIOS_SCRATCH : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union BIOS_3_SCRATCH {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIOS_SCRATCH : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIOS_SCRATCH : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union BIOS_4_SCRATCH {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIOS_SCRATCH : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIOS_SCRATCH : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union BIOS_5_SCRATCH {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIOS_SCRATCH : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIOS_SCRATCH : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union BIOS_6_SCRATCH {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIOS_SCRATCH : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIOS_SCRATCH : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union BIOS_7_SCRATCH {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIOS_SCRATCH : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIOS_SCRATCH : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union BIOS_8_SCRATCH {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIOS_SCRATCH : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIOS_SCRATCH : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union BIOS_9_SCRATCH {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIOS_SCRATCH : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIOS_SCRATCH : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union BIOS_10_SCRATCH {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIOS_SCRATCH : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIOS_SCRATCH : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union BIOS_11_SCRATCH {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIOS_SCRATCH : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIOS_SCRATCH : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union BIOS_12_SCRATCH {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIOS_SCRATCH : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIOS_SCRATCH : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union BIOS_13_SCRATCH {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIOS_SCRATCH : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIOS_SCRATCH : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union BIOS_14_SCRATCH {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIOS_SCRATCH : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIOS_SCRATCH : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union BIOS_15_SCRATCH {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIOS_SCRATCH : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIOS_SCRATCH : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union COHER_SIZE_PM4 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SIZE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int SIZE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union COHER_BASE_PM4 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BASE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BASE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union COHER_STATUS_PM4 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MATCHING_CONTEXTS : 8;
+ unsigned int RB_COPY_DEST_BASE_ENA : 1;
+ unsigned int DEST_BASE_0_ENA : 1;
+ unsigned int DEST_BASE_1_ENA : 1;
+ unsigned int DEST_BASE_2_ENA : 1;
+ unsigned int DEST_BASE_3_ENA : 1;
+ unsigned int DEST_BASE_4_ENA : 1;
+ unsigned int DEST_BASE_5_ENA : 1;
+ unsigned int DEST_BASE_6_ENA : 1;
+ unsigned int DEST_BASE_7_ENA : 1;
+ unsigned int RB_COLOR_INFO_ENA : 1;
+ unsigned int : 7;
+ unsigned int TC_ACTION_ENA : 1;
+ unsigned int : 5;
+ unsigned int STATUS : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int STATUS : 1;
+ unsigned int : 5;
+ unsigned int TC_ACTION_ENA : 1;
+ unsigned int : 7;
+ unsigned int RB_COLOR_INFO_ENA : 1;
+ unsigned int DEST_BASE_7_ENA : 1;
+ unsigned int DEST_BASE_6_ENA : 1;
+ unsigned int DEST_BASE_5_ENA : 1;
+ unsigned int DEST_BASE_4_ENA : 1;
+ unsigned int DEST_BASE_3_ENA : 1;
+ unsigned int DEST_BASE_2_ENA : 1;
+ unsigned int DEST_BASE_1_ENA : 1;
+ unsigned int DEST_BASE_0_ENA : 1;
+ unsigned int RB_COPY_DEST_BASE_ENA : 1;
+ unsigned int MATCHING_CONTEXTS : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union COHER_SIZE_HOST {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SIZE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int SIZE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union COHER_BASE_HOST {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BASE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BASE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union COHER_STATUS_HOST {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MATCHING_CONTEXTS : 8;
+ unsigned int RB_COPY_DEST_BASE_ENA : 1;
+ unsigned int DEST_BASE_0_ENA : 1;
+ unsigned int DEST_BASE_1_ENA : 1;
+ unsigned int DEST_BASE_2_ENA : 1;
+ unsigned int DEST_BASE_3_ENA : 1;
+ unsigned int DEST_BASE_4_ENA : 1;
+ unsigned int DEST_BASE_5_ENA : 1;
+ unsigned int DEST_BASE_6_ENA : 1;
+ unsigned int DEST_BASE_7_ENA : 1;
+ unsigned int RB_COLOR_INFO_ENA : 1;
+ unsigned int : 7;
+ unsigned int TC_ACTION_ENA : 1;
+ unsigned int : 5;
+ unsigned int STATUS : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int STATUS : 1;
+ unsigned int : 5;
+ unsigned int TC_ACTION_ENA : 1;
+ unsigned int : 7;
+ unsigned int RB_COLOR_INFO_ENA : 1;
+ unsigned int DEST_BASE_7_ENA : 1;
+ unsigned int DEST_BASE_6_ENA : 1;
+ unsigned int DEST_BASE_5_ENA : 1;
+ unsigned int DEST_BASE_4_ENA : 1;
+ unsigned int DEST_BASE_3_ENA : 1;
+ unsigned int DEST_BASE_2_ENA : 1;
+ unsigned int DEST_BASE_1_ENA : 1;
+ unsigned int DEST_BASE_0_ENA : 1;
+ unsigned int RB_COPY_DEST_BASE_ENA : 1;
+ unsigned int MATCHING_CONTEXTS : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union COHER_DEST_BASE_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 12;
+ unsigned int DEST_BASE_0 : 20;
+#else /* !defined(qLittleEndian) */
+ unsigned int DEST_BASE_0 : 20;
+ unsigned int : 12;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union COHER_DEST_BASE_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 12;
+ unsigned int DEST_BASE_1 : 20;
+#else /* !defined(qLittleEndian) */
+ unsigned int DEST_BASE_1 : 20;
+ unsigned int : 12;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union COHER_DEST_BASE_2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 12;
+ unsigned int DEST_BASE_2 : 20;
+#else /* !defined(qLittleEndian) */
+ unsigned int DEST_BASE_2 : 20;
+ unsigned int : 12;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union COHER_DEST_BASE_3 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 12;
+ unsigned int DEST_BASE_3 : 20;
+#else /* !defined(qLittleEndian) */
+ unsigned int DEST_BASE_3 : 20;
+ unsigned int : 12;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union COHER_DEST_BASE_4 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 12;
+ unsigned int DEST_BASE_4 : 20;
+#else /* !defined(qLittleEndian) */
+ unsigned int DEST_BASE_4 : 20;
+ unsigned int : 12;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union COHER_DEST_BASE_5 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 12;
+ unsigned int DEST_BASE_5 : 20;
+#else /* !defined(qLittleEndian) */
+ unsigned int DEST_BASE_5 : 20;
+ unsigned int : 12;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union COHER_DEST_BASE_6 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 12;
+ unsigned int DEST_BASE_6 : 20;
+#else /* !defined(qLittleEndian) */
+ unsigned int DEST_BASE_6 : 20;
+ unsigned int : 12;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union COHER_DEST_BASE_7 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 12;
+ unsigned int DEST_BASE_7 : 20;
+#else /* !defined(qLittleEndian) */
+ unsigned int DEST_BASE_7 : 20;
+ unsigned int : 12;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_SURFACE_INFO {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SURFACE_PITCH : 14;
+ unsigned int MSAA_SAMPLES : 2;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int MSAA_SAMPLES : 2;
+ unsigned int SURFACE_PITCH : 14;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_COLOR_INFO {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int COLOR_FORMAT : 4;
+ unsigned int COLOR_ROUND_MODE : 2;
+ unsigned int COLOR_LINEAR : 1;
+ unsigned int COLOR_ENDIAN : 2;
+ unsigned int COLOR_SWAP : 2;
+ unsigned int : 1;
+ unsigned int COLOR_BASE : 20;
+#else /* !defined(qLittleEndian) */
+ unsigned int COLOR_BASE : 20;
+ unsigned int : 1;
+ unsigned int COLOR_SWAP : 2;
+ unsigned int COLOR_ENDIAN : 2;
+ unsigned int COLOR_LINEAR : 1;
+ unsigned int COLOR_ROUND_MODE : 2;
+ unsigned int COLOR_FORMAT : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_DEPTH_INFO {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DEPTH_FORMAT : 1;
+ unsigned int : 11;
+ unsigned int DEPTH_BASE : 20;
+#else /* !defined(qLittleEndian) */
+ unsigned int DEPTH_BASE : 20;
+ unsigned int : 11;
+ unsigned int DEPTH_FORMAT : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_STENCILREFMASK {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int STENCILREF : 8;
+ unsigned int STENCILMASK : 8;
+ unsigned int STENCILWRITEMASK : 8;
+ unsigned int RESERVED0 : 1;
+ unsigned int RESERVED1 : 1;
+ unsigned int : 6;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 6;
+ unsigned int RESERVED1 : 1;
+ unsigned int RESERVED0 : 1;
+ unsigned int STENCILWRITEMASK : 8;
+ unsigned int STENCILMASK : 8;
+ unsigned int STENCILREF : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_ALPHA_REF {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ALPHA_REF : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int ALPHA_REF : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_COLOR_MASK {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int WRITE_RED : 1;
+ unsigned int WRITE_GREEN : 1;
+ unsigned int WRITE_BLUE : 1;
+ unsigned int WRITE_ALPHA : 1;
+ unsigned int RESERVED2 : 1;
+ unsigned int RESERVED3 : 1;
+ unsigned int : 26;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 26;
+ unsigned int RESERVED3 : 1;
+ unsigned int RESERVED2 : 1;
+ unsigned int WRITE_ALPHA : 1;
+ unsigned int WRITE_BLUE : 1;
+ unsigned int WRITE_GREEN : 1;
+ unsigned int WRITE_RED : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_BLEND_RED {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BLEND_RED : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int BLEND_RED : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_BLEND_GREEN {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BLEND_GREEN : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int BLEND_GREEN : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_BLEND_BLUE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BLEND_BLUE : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int BLEND_BLUE : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_BLEND_ALPHA {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BLEND_ALPHA : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int BLEND_ALPHA : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_FOG_COLOR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int FOG_RED : 8;
+ unsigned int FOG_GREEN : 8;
+ unsigned int FOG_BLUE : 8;
+ unsigned int : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 8;
+ unsigned int FOG_BLUE : 8;
+ unsigned int FOG_GREEN : 8;
+ unsigned int FOG_RED : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_STENCILREFMASK_BF {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int STENCILREF_BF : 8;
+ unsigned int STENCILMASK_BF : 8;
+ unsigned int STENCILWRITEMASK_BF : 8;
+ unsigned int RESERVED4 : 1;
+ unsigned int RESERVED5 : 1;
+ unsigned int : 6;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 6;
+ unsigned int RESERVED5 : 1;
+ unsigned int RESERVED4 : 1;
+ unsigned int STENCILWRITEMASK_BF : 8;
+ unsigned int STENCILMASK_BF : 8;
+ unsigned int STENCILREF_BF : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_DEPTHCONTROL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int STENCIL_ENABLE : 1;
+ unsigned int Z_ENABLE : 1;
+ unsigned int Z_WRITE_ENABLE : 1;
+ unsigned int EARLY_Z_ENABLE : 1;
+ unsigned int ZFUNC : 3;
+ unsigned int BACKFACE_ENABLE : 1;
+ unsigned int STENCILFUNC : 3;
+ unsigned int STENCILFAIL : 3;
+ unsigned int STENCILZPASS : 3;
+ unsigned int STENCILZFAIL : 3;
+ unsigned int STENCILFUNC_BF : 3;
+ unsigned int STENCILFAIL_BF : 3;
+ unsigned int STENCILZPASS_BF : 3;
+ unsigned int STENCILZFAIL_BF : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int STENCILZFAIL_BF : 3;
+ unsigned int STENCILZPASS_BF : 3;
+ unsigned int STENCILFAIL_BF : 3;
+ unsigned int STENCILFUNC_BF : 3;
+ unsigned int STENCILZFAIL : 3;
+ unsigned int STENCILZPASS : 3;
+ unsigned int STENCILFAIL : 3;
+ unsigned int STENCILFUNC : 3;
+ unsigned int BACKFACE_ENABLE : 1;
+ unsigned int ZFUNC : 3;
+ unsigned int EARLY_Z_ENABLE : 1;
+ unsigned int Z_WRITE_ENABLE : 1;
+ unsigned int Z_ENABLE : 1;
+ unsigned int STENCIL_ENABLE : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_BLENDCONTROL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int COLOR_SRCBLEND : 5;
+ unsigned int COLOR_COMB_FCN : 3;
+ unsigned int COLOR_DESTBLEND : 5;
+ unsigned int : 3;
+ unsigned int ALPHA_SRCBLEND : 5;
+ unsigned int ALPHA_COMB_FCN : 3;
+ unsigned int ALPHA_DESTBLEND : 5;
+ unsigned int BLEND_FORCE_ENABLE : 1;
+ unsigned int BLEND_FORCE : 1;
+ unsigned int : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 1;
+ unsigned int BLEND_FORCE : 1;
+ unsigned int BLEND_FORCE_ENABLE : 1;
+ unsigned int ALPHA_DESTBLEND : 5;
+ unsigned int ALPHA_COMB_FCN : 3;
+ unsigned int ALPHA_SRCBLEND : 5;
+ unsigned int : 3;
+ unsigned int COLOR_DESTBLEND : 5;
+ unsigned int COLOR_COMB_FCN : 3;
+ unsigned int COLOR_SRCBLEND : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_COLORCONTROL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ALPHA_FUNC : 3;
+ unsigned int ALPHA_TEST_ENABLE : 1;
+ unsigned int ALPHA_TO_MASK_ENABLE : 1;
+ unsigned int BLEND_DISABLE : 1;
+ unsigned int FOG_ENABLE : 1;
+ unsigned int VS_EXPORTS_FOG : 1;
+ unsigned int ROP_CODE : 4;
+ unsigned int DITHER_MODE : 2;
+ unsigned int DITHER_TYPE : 2;
+ unsigned int PIXEL_FOG : 1;
+ unsigned int : 7;
+ unsigned int ALPHA_TO_MASK_OFFSET0 : 2;
+ unsigned int ALPHA_TO_MASK_OFFSET1 : 2;
+ unsigned int ALPHA_TO_MASK_OFFSET2 : 2;
+ unsigned int ALPHA_TO_MASK_OFFSET3 : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int ALPHA_TO_MASK_OFFSET3 : 2;
+ unsigned int ALPHA_TO_MASK_OFFSET2 : 2;
+ unsigned int ALPHA_TO_MASK_OFFSET1 : 2;
+ unsigned int ALPHA_TO_MASK_OFFSET0 : 2;
+ unsigned int : 7;
+ unsigned int PIXEL_FOG : 1;
+ unsigned int DITHER_TYPE : 2;
+ unsigned int DITHER_MODE : 2;
+ unsigned int ROP_CODE : 4;
+ unsigned int VS_EXPORTS_FOG : 1;
+ unsigned int FOG_ENABLE : 1;
+ unsigned int BLEND_DISABLE : 1;
+ unsigned int ALPHA_TO_MASK_ENABLE : 1;
+ unsigned int ALPHA_TEST_ENABLE : 1;
+ unsigned int ALPHA_FUNC : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_MODECONTROL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int EDRAM_MODE : 3;
+ unsigned int : 29;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 29;
+ unsigned int EDRAM_MODE : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_COLOR_DEST_MASK {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int COLOR_DEST_MASK : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int COLOR_DEST_MASK : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_COPY_CONTROL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int COPY_SAMPLE_SELECT : 3;
+ unsigned int DEPTH_CLEAR_ENABLE : 1;
+ unsigned int CLEAR_MASK : 4;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int CLEAR_MASK : 4;
+ unsigned int DEPTH_CLEAR_ENABLE : 1;
+ unsigned int COPY_SAMPLE_SELECT : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_COPY_DEST_BASE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 12;
+ unsigned int COPY_DEST_BASE : 20;
+#else /* !defined(qLittleEndian) */
+ unsigned int COPY_DEST_BASE : 20;
+ unsigned int : 12;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_COPY_DEST_PITCH {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int COPY_DEST_PITCH : 9;
+ unsigned int : 23;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 23;
+ unsigned int COPY_DEST_PITCH : 9;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_COPY_DEST_INFO {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int COPY_DEST_ENDIAN : 3;
+ unsigned int COPY_DEST_LINEAR : 1;
+ unsigned int COPY_DEST_FORMAT : 4;
+ unsigned int COPY_DEST_SWAP : 2;
+ unsigned int COPY_DEST_DITHER_MODE : 2;
+ unsigned int COPY_DEST_DITHER_TYPE : 2;
+ unsigned int COPY_MASK_WRITE_RED : 1;
+ unsigned int COPY_MASK_WRITE_GREEN : 1;
+ unsigned int COPY_MASK_WRITE_BLUE : 1;
+ unsigned int COPY_MASK_WRITE_ALPHA : 1;
+ unsigned int : 14;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 14;
+ unsigned int COPY_MASK_WRITE_ALPHA : 1;
+ unsigned int COPY_MASK_WRITE_BLUE : 1;
+ unsigned int COPY_MASK_WRITE_GREEN : 1;
+ unsigned int COPY_MASK_WRITE_RED : 1;
+ unsigned int COPY_DEST_DITHER_TYPE : 2;
+ unsigned int COPY_DEST_DITHER_MODE : 2;
+ unsigned int COPY_DEST_SWAP : 2;
+ unsigned int COPY_DEST_FORMAT : 4;
+ unsigned int COPY_DEST_LINEAR : 1;
+ unsigned int COPY_DEST_ENDIAN : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_COPY_DEST_PIXEL_OFFSET {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int OFFSET_X : 13;
+ unsigned int OFFSET_Y : 13;
+ unsigned int : 6;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 6;
+ unsigned int OFFSET_Y : 13;
+ unsigned int OFFSET_X : 13;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_DEPTH_CLEAR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DEPTH_CLEAR : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int DEPTH_CLEAR : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_SAMPLE_COUNT_CTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RESET_SAMPLE_COUNT : 1;
+ unsigned int COPY_SAMPLE_COUNT : 1;
+ unsigned int : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 30;
+ unsigned int COPY_SAMPLE_COUNT : 1;
+ unsigned int RESET_SAMPLE_COUNT : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_SAMPLE_COUNT_ADDR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SAMPLE_COUNT_ADDR : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int SAMPLE_COUNT_ADDR : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_BC_CONTROL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ACCUM_LINEAR_MODE_ENABLE : 1;
+ unsigned int ACCUM_TIMEOUT_SELECT : 2;
+ unsigned int DISABLE_EDRAM_CAM : 1;
+ unsigned int DISABLE_EZ_FAST_CONTEXT_SWITCH : 1;
+ unsigned int DISABLE_EZ_NULL_ZCMD_DROP : 1;
+ unsigned int DISABLE_LZ_NULL_ZCMD_DROP : 1;
+ unsigned int ENABLE_AZ_THROTTLE : 1;
+ unsigned int AZ_THROTTLE_COUNT : 5;
+ unsigned int : 1;
+ unsigned int ENABLE_CRC_UPDATE : 1;
+ unsigned int CRC_MODE : 1;
+ unsigned int DISABLE_SAMPLE_COUNTERS : 1;
+ unsigned int DISABLE_ACCUM : 1;
+ unsigned int ACCUM_ALLOC_MASK : 4;
+ unsigned int LINEAR_PERFORMANCE_ENABLE : 1;
+ unsigned int ACCUM_DATA_FIFO_LIMIT : 4;
+ unsigned int MEM_EXPORT_TIMEOUT_SELECT : 2;
+ unsigned int MEM_EXPORT_LINEAR_MODE_ENABLE : 1;
+ unsigned int CRC_SYSTEM : 1;
+ unsigned int RESERVED6 : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int RESERVED6 : 1;
+ unsigned int CRC_SYSTEM : 1;
+ unsigned int MEM_EXPORT_LINEAR_MODE_ENABLE : 1;
+ unsigned int MEM_EXPORT_TIMEOUT_SELECT : 2;
+ unsigned int ACCUM_DATA_FIFO_LIMIT : 4;
+ unsigned int LINEAR_PERFORMANCE_ENABLE : 1;
+ unsigned int ACCUM_ALLOC_MASK : 4;
+ unsigned int DISABLE_ACCUM : 1;
+ unsigned int DISABLE_SAMPLE_COUNTERS : 1;
+ unsigned int CRC_MODE : 1;
+ unsigned int ENABLE_CRC_UPDATE : 1;
+ unsigned int : 1;
+ unsigned int AZ_THROTTLE_COUNT : 5;
+ unsigned int ENABLE_AZ_THROTTLE : 1;
+ unsigned int DISABLE_LZ_NULL_ZCMD_DROP : 1;
+ unsigned int DISABLE_EZ_NULL_ZCMD_DROP : 1;
+ unsigned int DISABLE_EZ_FAST_CONTEXT_SWITCH : 1;
+ unsigned int DISABLE_EDRAM_CAM : 1;
+ unsigned int ACCUM_TIMEOUT_SELECT : 2;
+ unsigned int ACCUM_LINEAR_MODE_ENABLE : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_EDRAM_INFO {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int EDRAM_SIZE : 4;
+ unsigned int EDRAM_MAPPING_MODE : 2;
+ unsigned int : 8;
+ unsigned int EDRAM_RANGE : 18;
+#else /* !defined(qLittleEndian) */
+ unsigned int EDRAM_RANGE : 18;
+ unsigned int : 8;
+ unsigned int EDRAM_MAPPING_MODE : 2;
+ unsigned int EDRAM_SIZE : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_CRC_RD_PORT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CRC_DATA : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int CRC_DATA : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_CRC_CONTROL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CRC_RD_ADVANCE : 1;
+ unsigned int : 31;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 31;
+ unsigned int CRC_RD_ADVANCE : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_CRC_MASK {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CRC_MASK : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int CRC_MASK : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_PERFCOUNTER0_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_SEL : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERF_SEL : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_PERFCOUNTER0_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERF_COUNT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_PERFCOUNTER0_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERF_COUNT : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_TOTAL_SAMPLES {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TOTAL_SAMPLES : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int TOTAL_SAMPLES : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_ZPASS_SAMPLES {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ZPASS_SAMPLES : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int ZPASS_SAMPLES : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_ZFAIL_SAMPLES {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ZFAIL_SAMPLES : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int ZFAIL_SAMPLES : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_SFAIL_SAMPLES {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SFAIL_SAMPLES : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int SFAIL_SAMPLES : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_DEBUG_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RDREQ_CTL_Z1_PRE_FULL : 1;
+ unsigned int RDREQ_CTL_Z0_PRE_FULL : 1;
+ unsigned int RDREQ_CTL_C1_PRE_FULL : 1;
+ unsigned int RDREQ_CTL_C0_PRE_FULL : 1;
+ unsigned int RDREQ_E1_ORDERING_FULL : 1;
+ unsigned int RDREQ_E0_ORDERING_FULL : 1;
+ unsigned int RDREQ_Z1_FULL : 1;
+ unsigned int RDREQ_Z0_FULL : 1;
+ unsigned int RDREQ_C1_FULL : 1;
+ unsigned int RDREQ_C0_FULL : 1;
+ unsigned int WRREQ_E1_MACRO_HI_FULL : 1;
+ unsigned int WRREQ_E1_MACRO_LO_FULL : 1;
+ unsigned int WRREQ_E0_MACRO_HI_FULL : 1;
+ unsigned int WRREQ_E0_MACRO_LO_FULL : 1;
+ unsigned int WRREQ_C_WE_HI_FULL : 1;
+ unsigned int WRREQ_C_WE_LO_FULL : 1;
+ unsigned int WRREQ_Z1_FULL : 1;
+ unsigned int WRREQ_Z0_FULL : 1;
+ unsigned int WRREQ_C1_FULL : 1;
+ unsigned int WRREQ_C0_FULL : 1;
+ unsigned int CMDFIFO_Z1_HOLD_FULL : 1;
+ unsigned int CMDFIFO_Z0_HOLD_FULL : 1;
+ unsigned int CMDFIFO_C1_HOLD_FULL : 1;
+ unsigned int CMDFIFO_C0_HOLD_FULL : 1;
+ unsigned int CMDFIFO_Z_ORDERING_FULL : 1;
+ unsigned int CMDFIFO_C_ORDERING_FULL : 1;
+ unsigned int C_SX_LAT_FULL : 1;
+ unsigned int C_SX_CMD_FULL : 1;
+ unsigned int C_EZ_TILE_FULL : 1;
+ unsigned int C_REQ_FULL : 1;
+ unsigned int C_MASK_FULL : 1;
+ unsigned int EZ_INFSAMP_FULL : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int EZ_INFSAMP_FULL : 1;
+ unsigned int C_MASK_FULL : 1;
+ unsigned int C_REQ_FULL : 1;
+ unsigned int C_EZ_TILE_FULL : 1;
+ unsigned int C_SX_CMD_FULL : 1;
+ unsigned int C_SX_LAT_FULL : 1;
+ unsigned int CMDFIFO_C_ORDERING_FULL : 1;
+ unsigned int CMDFIFO_Z_ORDERING_FULL : 1;
+ unsigned int CMDFIFO_C0_HOLD_FULL : 1;
+ unsigned int CMDFIFO_C1_HOLD_FULL : 1;
+ unsigned int CMDFIFO_Z0_HOLD_FULL : 1;
+ unsigned int CMDFIFO_Z1_HOLD_FULL : 1;
+ unsigned int WRREQ_C0_FULL : 1;
+ unsigned int WRREQ_C1_FULL : 1;
+ unsigned int WRREQ_Z0_FULL : 1;
+ unsigned int WRREQ_Z1_FULL : 1;
+ unsigned int WRREQ_C_WE_LO_FULL : 1;
+ unsigned int WRREQ_C_WE_HI_FULL : 1;
+ unsigned int WRREQ_E0_MACRO_LO_FULL : 1;
+ unsigned int WRREQ_E0_MACRO_HI_FULL : 1;
+ unsigned int WRREQ_E1_MACRO_LO_FULL : 1;
+ unsigned int WRREQ_E1_MACRO_HI_FULL : 1;
+ unsigned int RDREQ_C0_FULL : 1;
+ unsigned int RDREQ_C1_FULL : 1;
+ unsigned int RDREQ_Z0_FULL : 1;
+ unsigned int RDREQ_Z1_FULL : 1;
+ unsigned int RDREQ_E0_ORDERING_FULL : 1;
+ unsigned int RDREQ_E1_ORDERING_FULL : 1;
+ unsigned int RDREQ_CTL_C0_PRE_FULL : 1;
+ unsigned int RDREQ_CTL_C1_PRE_FULL : 1;
+ unsigned int RDREQ_CTL_Z0_PRE_FULL : 1;
+ unsigned int RDREQ_CTL_Z1_PRE_FULL : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_DEBUG_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RDREQ_Z1_CMD_EMPTY : 1;
+ unsigned int RDREQ_Z0_CMD_EMPTY : 1;
+ unsigned int RDREQ_C1_CMD_EMPTY : 1;
+ unsigned int RDREQ_C0_CMD_EMPTY : 1;
+ unsigned int RDREQ_E1_ORDERING_EMPTY : 1;
+ unsigned int RDREQ_E0_ORDERING_EMPTY : 1;
+ unsigned int RDREQ_Z1_EMPTY : 1;
+ unsigned int RDREQ_Z0_EMPTY : 1;
+ unsigned int RDREQ_C1_EMPTY : 1;
+ unsigned int RDREQ_C0_EMPTY : 1;
+ unsigned int WRREQ_E1_MACRO_HI_EMPTY : 1;
+ unsigned int WRREQ_E1_MACRO_LO_EMPTY : 1;
+ unsigned int WRREQ_E0_MACRO_HI_EMPTY : 1;
+ unsigned int WRREQ_E0_MACRO_LO_EMPTY : 1;
+ unsigned int WRREQ_C_WE_HI_EMPTY : 1;
+ unsigned int WRREQ_C_WE_LO_EMPTY : 1;
+ unsigned int WRREQ_Z1_EMPTY : 1;
+ unsigned int WRREQ_Z0_EMPTY : 1;
+ unsigned int WRREQ_C1_PRE_EMPTY : 1;
+ unsigned int WRREQ_C0_PRE_EMPTY : 1;
+ unsigned int CMDFIFO_Z1_HOLD_EMPTY : 1;
+ unsigned int CMDFIFO_Z0_HOLD_EMPTY : 1;
+ unsigned int CMDFIFO_C1_HOLD_EMPTY : 1;
+ unsigned int CMDFIFO_C0_HOLD_EMPTY : 1;
+ unsigned int CMDFIFO_Z_ORDERING_EMPTY : 1;
+ unsigned int CMDFIFO_C_ORDERING_EMPTY : 1;
+ unsigned int C_SX_LAT_EMPTY : 1;
+ unsigned int C_SX_CMD_EMPTY : 1;
+ unsigned int C_EZ_TILE_EMPTY : 1;
+ unsigned int C_REQ_EMPTY : 1;
+ unsigned int C_MASK_EMPTY : 1;
+ unsigned int EZ_INFSAMP_EMPTY : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int EZ_INFSAMP_EMPTY : 1;
+ unsigned int C_MASK_EMPTY : 1;
+ unsigned int C_REQ_EMPTY : 1;
+ unsigned int C_EZ_TILE_EMPTY : 1;
+ unsigned int C_SX_CMD_EMPTY : 1;
+ unsigned int C_SX_LAT_EMPTY : 1;
+ unsigned int CMDFIFO_C_ORDERING_EMPTY : 1;
+ unsigned int CMDFIFO_Z_ORDERING_EMPTY : 1;
+ unsigned int CMDFIFO_C0_HOLD_EMPTY : 1;
+ unsigned int CMDFIFO_C1_HOLD_EMPTY : 1;
+ unsigned int CMDFIFO_Z0_HOLD_EMPTY : 1;
+ unsigned int CMDFIFO_Z1_HOLD_EMPTY : 1;
+ unsigned int WRREQ_C0_PRE_EMPTY : 1;
+ unsigned int WRREQ_C1_PRE_EMPTY : 1;
+ unsigned int WRREQ_Z0_EMPTY : 1;
+ unsigned int WRREQ_Z1_EMPTY : 1;
+ unsigned int WRREQ_C_WE_LO_EMPTY : 1;
+ unsigned int WRREQ_C_WE_HI_EMPTY : 1;
+ unsigned int WRREQ_E0_MACRO_LO_EMPTY : 1;
+ unsigned int WRREQ_E0_MACRO_HI_EMPTY : 1;
+ unsigned int WRREQ_E1_MACRO_LO_EMPTY : 1;
+ unsigned int WRREQ_E1_MACRO_HI_EMPTY : 1;
+ unsigned int RDREQ_C0_EMPTY : 1;
+ unsigned int RDREQ_C1_EMPTY : 1;
+ unsigned int RDREQ_Z0_EMPTY : 1;
+ unsigned int RDREQ_Z1_EMPTY : 1;
+ unsigned int RDREQ_E0_ORDERING_EMPTY : 1;
+ unsigned int RDREQ_E1_ORDERING_EMPTY : 1;
+ unsigned int RDREQ_C0_CMD_EMPTY : 1;
+ unsigned int RDREQ_C1_CMD_EMPTY : 1;
+ unsigned int RDREQ_Z0_CMD_EMPTY : 1;
+ unsigned int RDREQ_Z1_CMD_EMPTY : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_DEBUG_2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TILE_FIFO_COUNT : 4;
+ unsigned int SX_LAT_FIFO_COUNT : 7;
+ unsigned int MEM_EXPORT_FLAG : 1;
+ unsigned int SYSMEM_BLEND_FLAG : 1;
+ unsigned int CURRENT_TILE_EVENT : 1;
+ unsigned int EZ_INFTILE_FULL : 1;
+ unsigned int EZ_MASK_LOWER_FULL : 1;
+ unsigned int EZ_MASK_UPPER_FULL : 1;
+ unsigned int Z0_MASK_FULL : 1;
+ unsigned int Z1_MASK_FULL : 1;
+ unsigned int Z0_REQ_FULL : 1;
+ unsigned int Z1_REQ_FULL : 1;
+ unsigned int Z_SAMP_FULL : 1;
+ unsigned int Z_TILE_FULL : 1;
+ unsigned int EZ_INFTILE_EMPTY : 1;
+ unsigned int EZ_MASK_LOWER_EMPTY : 1;
+ unsigned int EZ_MASK_UPPER_EMPTY : 1;
+ unsigned int Z0_MASK_EMPTY : 1;
+ unsigned int Z1_MASK_EMPTY : 1;
+ unsigned int Z0_REQ_EMPTY : 1;
+ unsigned int Z1_REQ_EMPTY : 1;
+ unsigned int Z_SAMP_EMPTY : 1;
+ unsigned int Z_TILE_EMPTY : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int Z_TILE_EMPTY : 1;
+ unsigned int Z_SAMP_EMPTY : 1;
+ unsigned int Z1_REQ_EMPTY : 1;
+ unsigned int Z0_REQ_EMPTY : 1;
+ unsigned int Z1_MASK_EMPTY : 1;
+ unsigned int Z0_MASK_EMPTY : 1;
+ unsigned int EZ_MASK_UPPER_EMPTY : 1;
+ unsigned int EZ_MASK_LOWER_EMPTY : 1;
+ unsigned int EZ_INFTILE_EMPTY : 1;
+ unsigned int Z_TILE_FULL : 1;
+ unsigned int Z_SAMP_FULL : 1;
+ unsigned int Z1_REQ_FULL : 1;
+ unsigned int Z0_REQ_FULL : 1;
+ unsigned int Z1_MASK_FULL : 1;
+ unsigned int Z0_MASK_FULL : 1;
+ unsigned int EZ_MASK_UPPER_FULL : 1;
+ unsigned int EZ_MASK_LOWER_FULL : 1;
+ unsigned int EZ_INFTILE_FULL : 1;
+ unsigned int CURRENT_TILE_EVENT : 1;
+ unsigned int SYSMEM_BLEND_FLAG : 1;
+ unsigned int MEM_EXPORT_FLAG : 1;
+ unsigned int SX_LAT_FIFO_COUNT : 7;
+ unsigned int TILE_FIFO_COUNT : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_DEBUG_3 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ACCUM_VALID : 4;
+ unsigned int ACCUM_FLUSHING : 4;
+ unsigned int ACCUM_WRITE_CLEAN_COUNT : 6;
+ unsigned int ACCUM_INPUT_REG_VALID : 1;
+ unsigned int ACCUM_DATA_FIFO_CNT : 4;
+ unsigned int SHD_FULL : 1;
+ unsigned int SHD_EMPTY : 1;
+ unsigned int EZ_RETURN_LOWER_EMPTY : 1;
+ unsigned int EZ_RETURN_UPPER_EMPTY : 1;
+ unsigned int EZ_RETURN_LOWER_FULL : 1;
+ unsigned int EZ_RETURN_UPPER_FULL : 1;
+ unsigned int ZEXP_LOWER_EMPTY : 1;
+ unsigned int ZEXP_UPPER_EMPTY : 1;
+ unsigned int ZEXP_LOWER_FULL : 1;
+ unsigned int ZEXP_UPPER_FULL : 1;
+ unsigned int : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 3;
+ unsigned int ZEXP_UPPER_FULL : 1;
+ unsigned int ZEXP_LOWER_FULL : 1;
+ unsigned int ZEXP_UPPER_EMPTY : 1;
+ unsigned int ZEXP_LOWER_EMPTY : 1;
+ unsigned int EZ_RETURN_UPPER_FULL : 1;
+ unsigned int EZ_RETURN_LOWER_FULL : 1;
+ unsigned int EZ_RETURN_UPPER_EMPTY : 1;
+ unsigned int EZ_RETURN_LOWER_EMPTY : 1;
+ unsigned int SHD_EMPTY : 1;
+ unsigned int SHD_FULL : 1;
+ unsigned int ACCUM_DATA_FIFO_CNT : 4;
+ unsigned int ACCUM_INPUT_REG_VALID : 1;
+ unsigned int ACCUM_WRITE_CLEAN_COUNT : 6;
+ unsigned int ACCUM_FLUSHING : 4;
+ unsigned int ACCUM_VALID : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_DEBUG_4 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int GMEM_RD_ACCESS_FLAG : 1;
+ unsigned int GMEM_WR_ACCESS_FLAG : 1;
+ unsigned int SYSMEM_RD_ACCESS_FLAG : 1;
+ unsigned int SYSMEM_WR_ACCESS_FLAG : 1;
+ unsigned int ACCUM_DATA_FIFO_EMPTY : 1;
+ unsigned int ACCUM_ORDER_FIFO_EMPTY : 1;
+ unsigned int ACCUM_DATA_FIFO_FULL : 1;
+ unsigned int ACCUM_ORDER_FIFO_FULL : 1;
+ unsigned int SYSMEM_WRITE_COUNT_OVERFLOW : 1;
+ unsigned int CONTEXT_COUNT_DEBUG : 4;
+ unsigned int : 19;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 19;
+ unsigned int CONTEXT_COUNT_DEBUG : 4;
+ unsigned int SYSMEM_WRITE_COUNT_OVERFLOW : 1;
+ unsigned int ACCUM_ORDER_FIFO_FULL : 1;
+ unsigned int ACCUM_DATA_FIFO_FULL : 1;
+ unsigned int ACCUM_ORDER_FIFO_EMPTY : 1;
+ unsigned int ACCUM_DATA_FIFO_EMPTY : 1;
+ unsigned int SYSMEM_WR_ACCESS_FLAG : 1;
+ unsigned int SYSMEM_RD_ACCESS_FLAG : 1;
+ unsigned int GMEM_WR_ACCESS_FLAG : 1;
+ unsigned int GMEM_RD_ACCESS_FLAG : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_FLAG_CONTROL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DEBUG_FLAG_CLEAR : 1;
+ unsigned int : 31;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 31;
+ unsigned int DEBUG_FLAG_CLEAR : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_BC_SPARES {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RESERVED : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int RESERVED : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union BC_DUMMY_CRAYRB_ENUMS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DUMMY_CRAYRB_DEPTH_FORMAT : 6;
+ unsigned int DUMMY_CRAYRB_SURFACE_SWAP : 1;
+ unsigned int DUMMY_CRAYRB_DEPTH_ARRAY : 2;
+ unsigned int DUMMY_CRAYRB_ARRAY : 2;
+ unsigned int DUMMY_CRAYRB_COLOR_FORMAT : 6;
+ unsigned int DUMMY_CRAYRB_SURFACE_NUMBER : 3;
+ unsigned int DUMMY_CRAYRB_SURFACE_FORMAT : 6;
+ unsigned int DUMMY_CRAYRB_SURFACE_TILING : 1;
+ unsigned int DUMMY_CRAYRB_SURFACE_ARRAY : 2;
+ unsigned int DUMMY_RB_COPY_DEST_INFO_NUMBER : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int DUMMY_RB_COPY_DEST_INFO_NUMBER : 3;
+ unsigned int DUMMY_CRAYRB_SURFACE_ARRAY : 2;
+ unsigned int DUMMY_CRAYRB_SURFACE_TILING : 1;
+ unsigned int DUMMY_CRAYRB_SURFACE_FORMAT : 6;
+ unsigned int DUMMY_CRAYRB_SURFACE_NUMBER : 3;
+ unsigned int DUMMY_CRAYRB_COLOR_FORMAT : 6;
+ unsigned int DUMMY_CRAYRB_ARRAY : 2;
+ unsigned int DUMMY_CRAYRB_DEPTH_ARRAY : 2;
+ unsigned int DUMMY_CRAYRB_SURFACE_SWAP : 1;
+ unsigned int DUMMY_CRAYRB_DEPTH_FORMAT : 6;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union BC_DUMMY_CRAYRB_MOREENUMS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DUMMY_CRAYRB_COLORARRAYX : 2;
+ unsigned int : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 30;
+ unsigned int DUMMY_CRAYRB_COLORARRAYX : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+#endif
diff --git a/drivers/mxc/amd-gpu/include/reg/yamato/10/yamato_shift.h b/drivers/mxc/amd-gpu/include/reg/yamato/10/yamato_shift.h
new file mode 100644
index 000000000000..10807b43ea44
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/reg/yamato/10/yamato_shift.h
@@ -0,0 +1,4183 @@
+/* Copyright (c) 2002,2007-2009, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#if !defined (_yamato_SHIFT_HEADER)
+#define _yamato_SHIFT_HEADER
+
+// PA_CL_VPORT_XSCALE
+#define PA_CL_VPORT_XSCALE__VPORT_XSCALE__SHIFT 0x00000000
+
+// PA_CL_VPORT_XOFFSET
+#define PA_CL_VPORT_XOFFSET__VPORT_XOFFSET__SHIFT 0x00000000
+
+// PA_CL_VPORT_YSCALE
+#define PA_CL_VPORT_YSCALE__VPORT_YSCALE__SHIFT 0x00000000
+
+// PA_CL_VPORT_YOFFSET
+#define PA_CL_VPORT_YOFFSET__VPORT_YOFFSET__SHIFT 0x00000000
+
+// PA_CL_VPORT_ZSCALE
+#define PA_CL_VPORT_ZSCALE__VPORT_ZSCALE__SHIFT 0x00000000
+
+// PA_CL_VPORT_ZOFFSET
+#define PA_CL_VPORT_ZOFFSET__VPORT_ZOFFSET__SHIFT 0x00000000
+
+// PA_CL_VTE_CNTL
+#define PA_CL_VTE_CNTL__VPORT_X_SCALE_ENA__SHIFT 0x00000000
+#define PA_CL_VTE_CNTL__VPORT_X_OFFSET_ENA__SHIFT 0x00000001
+#define PA_CL_VTE_CNTL__VPORT_Y_SCALE_ENA__SHIFT 0x00000002
+#define PA_CL_VTE_CNTL__VPORT_Y_OFFSET_ENA__SHIFT 0x00000003
+#define PA_CL_VTE_CNTL__VPORT_Z_SCALE_ENA__SHIFT 0x00000004
+#define PA_CL_VTE_CNTL__VPORT_Z_OFFSET_ENA__SHIFT 0x00000005
+#define PA_CL_VTE_CNTL__VTX_XY_FMT__SHIFT 0x00000008
+#define PA_CL_VTE_CNTL__VTX_Z_FMT__SHIFT 0x00000009
+#define PA_CL_VTE_CNTL__VTX_W0_FMT__SHIFT 0x0000000a
+#define PA_CL_VTE_CNTL__PERFCOUNTER_REF__SHIFT 0x0000000b
+
+// PA_CL_CLIP_CNTL
+#define PA_CL_CLIP_CNTL__CLIP_DISABLE__SHIFT 0x00000010
+#define PA_CL_CLIP_CNTL__BOUNDARY_EDGE_FLAG_ENA__SHIFT 0x00000012
+#define PA_CL_CLIP_CNTL__DX_CLIP_SPACE_DEF__SHIFT 0x00000013
+#define PA_CL_CLIP_CNTL__DIS_CLIP_ERR_DETECT__SHIFT 0x00000014
+#define PA_CL_CLIP_CNTL__VTX_KILL_OR__SHIFT 0x00000015
+#define PA_CL_CLIP_CNTL__XY_NAN_RETAIN__SHIFT 0x00000016
+#define PA_CL_CLIP_CNTL__Z_NAN_RETAIN__SHIFT 0x00000017
+#define PA_CL_CLIP_CNTL__W_NAN_RETAIN__SHIFT 0x00000018
+
+// PA_CL_GB_VERT_CLIP_ADJ
+#define PA_CL_GB_VERT_CLIP_ADJ__DATA_REGISTER__SHIFT 0x00000000
+
+// PA_CL_GB_VERT_DISC_ADJ
+#define PA_CL_GB_VERT_DISC_ADJ__DATA_REGISTER__SHIFT 0x00000000
+
+// PA_CL_GB_HORZ_CLIP_ADJ
+#define PA_CL_GB_HORZ_CLIP_ADJ__DATA_REGISTER__SHIFT 0x00000000
+
+// PA_CL_GB_HORZ_DISC_ADJ
+#define PA_CL_GB_HORZ_DISC_ADJ__DATA_REGISTER__SHIFT 0x00000000
+
+// PA_CL_ENHANCE
+#define PA_CL_ENHANCE__CLIP_VTX_REORDER_ENA__SHIFT 0x00000000
+#define PA_CL_ENHANCE__ECO_SPARE3__SHIFT 0x0000001c
+#define PA_CL_ENHANCE__ECO_SPARE2__SHIFT 0x0000001d
+#define PA_CL_ENHANCE__ECO_SPARE1__SHIFT 0x0000001e
+#define PA_CL_ENHANCE__ECO_SPARE0__SHIFT 0x0000001f
+
+// PA_SC_ENHANCE
+#define PA_SC_ENHANCE__ECO_SPARE3__SHIFT 0x0000001c
+#define PA_SC_ENHANCE__ECO_SPARE2__SHIFT 0x0000001d
+#define PA_SC_ENHANCE__ECO_SPARE1__SHIFT 0x0000001e
+#define PA_SC_ENHANCE__ECO_SPARE0__SHIFT 0x0000001f
+
+// PA_SU_VTX_CNTL
+#define PA_SU_VTX_CNTL__PIX_CENTER__SHIFT 0x00000000
+#define PA_SU_VTX_CNTL__ROUND_MODE__SHIFT 0x00000001
+#define PA_SU_VTX_CNTL__QUANT_MODE__SHIFT 0x00000003
+
+// PA_SU_POINT_SIZE
+#define PA_SU_POINT_SIZE__HEIGHT__SHIFT 0x00000000
+#define PA_SU_POINT_SIZE__WIDTH__SHIFT 0x00000010
+
+// PA_SU_POINT_MINMAX
+#define PA_SU_POINT_MINMAX__MIN_SIZE__SHIFT 0x00000000
+#define PA_SU_POINT_MINMAX__MAX_SIZE__SHIFT 0x00000010
+
+// PA_SU_LINE_CNTL
+#define PA_SU_LINE_CNTL__WIDTH__SHIFT 0x00000000
+
+// PA_SU_FACE_DATA
+#define PA_SU_FACE_DATA__BASE_ADDR__SHIFT 0x00000005
+
+// PA_SU_SC_MODE_CNTL
+#define PA_SU_SC_MODE_CNTL__CULL_FRONT__SHIFT 0x00000000
+#define PA_SU_SC_MODE_CNTL__CULL_BACK__SHIFT 0x00000001
+#define PA_SU_SC_MODE_CNTL__FACE__SHIFT 0x00000002
+#define PA_SU_SC_MODE_CNTL__POLY_MODE__SHIFT 0x00000003
+#define PA_SU_SC_MODE_CNTL__POLYMODE_FRONT_PTYPE__SHIFT 0x00000005
+#define PA_SU_SC_MODE_CNTL__POLYMODE_BACK_PTYPE__SHIFT 0x00000008
+#define PA_SU_SC_MODE_CNTL__POLY_OFFSET_FRONT_ENABLE__SHIFT 0x0000000b
+#define PA_SU_SC_MODE_CNTL__POLY_OFFSET_BACK_ENABLE__SHIFT 0x0000000c
+#define PA_SU_SC_MODE_CNTL__POLY_OFFSET_PARA_ENABLE__SHIFT 0x0000000d
+#define PA_SU_SC_MODE_CNTL__MSAA_ENABLE__SHIFT 0x0000000f
+#define PA_SU_SC_MODE_CNTL__VTX_WINDOW_OFFSET_ENABLE__SHIFT 0x00000010
+#define PA_SU_SC_MODE_CNTL__LINE_STIPPLE_ENABLE__SHIFT 0x00000012
+#define PA_SU_SC_MODE_CNTL__PROVOKING_VTX_LAST__SHIFT 0x00000013
+#define PA_SU_SC_MODE_CNTL__PERSP_CORR_DIS__SHIFT 0x00000014
+#define PA_SU_SC_MODE_CNTL__MULTI_PRIM_IB_ENA__SHIFT 0x00000015
+#define PA_SU_SC_MODE_CNTL__QUAD_ORDER_ENABLE__SHIFT 0x00000017
+#define PA_SU_SC_MODE_CNTL__WAIT_RB_IDLE_ALL_TRI__SHIFT 0x00000019
+#define PA_SU_SC_MODE_CNTL__WAIT_RB_IDLE_FIRST_TRI_NEW_STATE__SHIFT 0x0000001a
+#define PA_SU_SC_MODE_CNTL__ZERO_AREA_FACENESS__SHIFT 0x0000001d
+#define PA_SU_SC_MODE_CNTL__FACE_KILL_ENABLE__SHIFT 0x0000001e
+#define PA_SU_SC_MODE_CNTL__FACE_WRITE_ENABLE__SHIFT 0x0000001f
+
+// PA_SU_POLY_OFFSET_FRONT_SCALE
+#define PA_SU_POLY_OFFSET_FRONT_SCALE__SCALE__SHIFT 0x00000000
+
+// PA_SU_POLY_OFFSET_FRONT_OFFSET
+#define PA_SU_POLY_OFFSET_FRONT_OFFSET__OFFSET__SHIFT 0x00000000
+
+// PA_SU_POLY_OFFSET_BACK_SCALE
+#define PA_SU_POLY_OFFSET_BACK_SCALE__SCALE__SHIFT 0x00000000
+
+// PA_SU_POLY_OFFSET_BACK_OFFSET
+#define PA_SU_POLY_OFFSET_BACK_OFFSET__OFFSET__SHIFT 0x00000000
+
+// PA_SU_PERFCOUNTER0_SELECT
+#define PA_SU_PERFCOUNTER0_SELECT__PERF_SEL__SHIFT 0x00000000
+
+// PA_SU_PERFCOUNTER1_SELECT
+#define PA_SU_PERFCOUNTER1_SELECT__PERF_SEL__SHIFT 0x00000000
+
+// PA_SU_PERFCOUNTER2_SELECT
+#define PA_SU_PERFCOUNTER2_SELECT__PERF_SEL__SHIFT 0x00000000
+
+// PA_SU_PERFCOUNTER3_SELECT
+#define PA_SU_PERFCOUNTER3_SELECT__PERF_SEL__SHIFT 0x00000000
+
+// PA_SU_PERFCOUNTER0_LOW
+#define PA_SU_PERFCOUNTER0_LOW__PERF_COUNT__SHIFT 0x00000000
+
+// PA_SU_PERFCOUNTER0_HI
+#define PA_SU_PERFCOUNTER0_HI__PERF_COUNT__SHIFT 0x00000000
+
+// PA_SU_PERFCOUNTER1_LOW
+#define PA_SU_PERFCOUNTER1_LOW__PERF_COUNT__SHIFT 0x00000000
+
+// PA_SU_PERFCOUNTER1_HI
+#define PA_SU_PERFCOUNTER1_HI__PERF_COUNT__SHIFT 0x00000000
+
+// PA_SU_PERFCOUNTER2_LOW
+#define PA_SU_PERFCOUNTER2_LOW__PERF_COUNT__SHIFT 0x00000000
+
+// PA_SU_PERFCOUNTER2_HI
+#define PA_SU_PERFCOUNTER2_HI__PERF_COUNT__SHIFT 0x00000000
+
+// PA_SU_PERFCOUNTER3_LOW
+#define PA_SU_PERFCOUNTER3_LOW__PERF_COUNT__SHIFT 0x00000000
+
+// PA_SU_PERFCOUNTER3_HI
+#define PA_SU_PERFCOUNTER3_HI__PERF_COUNT__SHIFT 0x00000000
+
+// PA_SC_WINDOW_OFFSET
+#define PA_SC_WINDOW_OFFSET__WINDOW_X_OFFSET__SHIFT 0x00000000
+#define PA_SC_WINDOW_OFFSET__WINDOW_Y_OFFSET__SHIFT 0x00000010
+
+// PA_SC_AA_CONFIG
+#define PA_SC_AA_CONFIG__MSAA_NUM_SAMPLES__SHIFT 0x00000000
+#define PA_SC_AA_CONFIG__MAX_SAMPLE_DIST__SHIFT 0x0000000d
+
+// PA_SC_AA_MASK
+#define PA_SC_AA_MASK__AA_MASK__SHIFT 0x00000000
+
+// PA_SC_LINE_STIPPLE
+#define PA_SC_LINE_STIPPLE__LINE_PATTERN__SHIFT 0x00000000
+#define PA_SC_LINE_STIPPLE__REPEAT_COUNT__SHIFT 0x00000010
+#define PA_SC_LINE_STIPPLE__PATTERN_BIT_ORDER__SHIFT 0x0000001c
+#define PA_SC_LINE_STIPPLE__AUTO_RESET_CNTL__SHIFT 0x0000001d
+
+// PA_SC_LINE_CNTL
+#define PA_SC_LINE_CNTL__BRES_CNTL__SHIFT 0x00000000
+#define PA_SC_LINE_CNTL__USE_BRES_CNTL__SHIFT 0x00000008
+#define PA_SC_LINE_CNTL__EXPAND_LINE_WIDTH__SHIFT 0x00000009
+#define PA_SC_LINE_CNTL__LAST_PIXEL__SHIFT 0x0000000a
+
+// PA_SC_WINDOW_SCISSOR_TL
+#define PA_SC_WINDOW_SCISSOR_TL__TL_X__SHIFT 0x00000000
+#define PA_SC_WINDOW_SCISSOR_TL__TL_Y__SHIFT 0x00000010
+#define PA_SC_WINDOW_SCISSOR_TL__WINDOW_OFFSET_DISABLE__SHIFT 0x0000001f
+
+// PA_SC_WINDOW_SCISSOR_BR
+#define PA_SC_WINDOW_SCISSOR_BR__BR_X__SHIFT 0x00000000
+#define PA_SC_WINDOW_SCISSOR_BR__BR_Y__SHIFT 0x00000010
+
+// PA_SC_SCREEN_SCISSOR_TL
+#define PA_SC_SCREEN_SCISSOR_TL__TL_X__SHIFT 0x00000000
+#define PA_SC_SCREEN_SCISSOR_TL__TL_Y__SHIFT 0x00000010
+
+// PA_SC_SCREEN_SCISSOR_BR
+#define PA_SC_SCREEN_SCISSOR_BR__BR_X__SHIFT 0x00000000
+#define PA_SC_SCREEN_SCISSOR_BR__BR_Y__SHIFT 0x00000010
+
+// PA_SC_VIZ_QUERY
+#define PA_SC_VIZ_QUERY__VIZ_QUERY_ENA__SHIFT 0x00000000
+#define PA_SC_VIZ_QUERY__VIZ_QUERY_ID__SHIFT 0x00000001
+#define PA_SC_VIZ_QUERY__KILL_PIX_POST_EARLY_Z__SHIFT 0x00000007
+
+// PA_SC_VIZ_QUERY_STATUS
+#define PA_SC_VIZ_QUERY_STATUS__STATUS_BITS__SHIFT 0x00000000
+
+// PA_SC_LINE_STIPPLE_STATE
+#define PA_SC_LINE_STIPPLE_STATE__CURRENT_PTR__SHIFT 0x00000000
+#define PA_SC_LINE_STIPPLE_STATE__CURRENT_COUNT__SHIFT 0x00000008
+
+// PA_SC_PERFCOUNTER0_SELECT
+#define PA_SC_PERFCOUNTER0_SELECT__PERF_SEL__SHIFT 0x00000000
+
+// PA_SC_PERFCOUNTER0_LOW
+#define PA_SC_PERFCOUNTER0_LOW__PERF_COUNT__SHIFT 0x00000000
+
+// PA_SC_PERFCOUNTER0_HI
+#define PA_SC_PERFCOUNTER0_HI__PERF_COUNT__SHIFT 0x00000000
+
+// PA_CL_CNTL_STATUS
+#define PA_CL_CNTL_STATUS__CL_BUSY__SHIFT 0x0000001f
+
+// PA_SU_CNTL_STATUS
+#define PA_SU_CNTL_STATUS__SU_BUSY__SHIFT 0x0000001f
+
+// PA_SC_CNTL_STATUS
+#define PA_SC_CNTL_STATUS__SC_BUSY__SHIFT 0x0000001f
+
+// PA_SU_DEBUG_CNTL
+#define PA_SU_DEBUG_CNTL__SU_DEBUG_INDX__SHIFT 0x00000000
+
+// PA_SU_DEBUG_DATA
+#define PA_SU_DEBUG_DATA__DATA__SHIFT 0x00000000
+
+// CLIPPER_DEBUG_REG00
+#define CLIPPER_DEBUG_REG00__clip_ga_bc_fifo_write__SHIFT 0x00000000
+#define CLIPPER_DEBUG_REG00__clip_ga_bc_fifo_full__SHIFT 0x00000001
+#define CLIPPER_DEBUG_REG00__clip_to_ga_fifo_write__SHIFT 0x00000002
+#define CLIPPER_DEBUG_REG00__clip_to_ga_fifo_full__SHIFT 0x00000003
+#define CLIPPER_DEBUG_REG00__primic_to_clprim_fifo_empty__SHIFT 0x00000004
+#define CLIPPER_DEBUG_REG00__primic_to_clprim_fifo_full__SHIFT 0x00000005
+#define CLIPPER_DEBUG_REG00__clip_to_outsm_fifo_empty__SHIFT 0x00000006
+#define CLIPPER_DEBUG_REG00__clip_to_outsm_fifo_full__SHIFT 0x00000007
+#define CLIPPER_DEBUG_REG00__vgt_to_clipp_fifo_empty__SHIFT 0x00000008
+#define CLIPPER_DEBUG_REG00__vgt_to_clipp_fifo_full__SHIFT 0x00000009
+#define CLIPPER_DEBUG_REG00__vgt_to_clips_fifo_empty__SHIFT 0x0000000a
+#define CLIPPER_DEBUG_REG00__vgt_to_clips_fifo_full__SHIFT 0x0000000b
+#define CLIPPER_DEBUG_REG00__clipcode_fifo_fifo_empty__SHIFT 0x0000000c
+#define CLIPPER_DEBUG_REG00__clipcode_fifo_full__SHIFT 0x0000000d
+#define CLIPPER_DEBUG_REG00__vte_out_clip_fifo_fifo_empty__SHIFT 0x0000000e
+#define CLIPPER_DEBUG_REG00__vte_out_clip_fifo_fifo_full__SHIFT 0x0000000f
+#define CLIPPER_DEBUG_REG00__vte_out_orig_fifo_fifo_empty__SHIFT 0x00000010
+#define CLIPPER_DEBUG_REG00__vte_out_orig_fifo_fifo_full__SHIFT 0x00000011
+#define CLIPPER_DEBUG_REG00__ccgen_to_clipcc_fifo_empty__SHIFT 0x00000012
+#define CLIPPER_DEBUG_REG00__ccgen_to_clipcc_fifo_full__SHIFT 0x00000013
+#define CLIPPER_DEBUG_REG00__ALWAYS_ZERO__SHIFT 0x00000014
+
+// CLIPPER_DEBUG_REG01
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_end_of_packet__SHIFT 0x00000000
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_first_prim_of_slot__SHIFT 0x00000001
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_deallocate_slot__SHIFT 0x00000002
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_clipped_prim__SHIFT 0x00000005
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_null_primitive__SHIFT 0x00000006
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_vertex_store_indx_2__SHIFT 0x00000007
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_vertex_store_indx_1__SHIFT 0x0000000b
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_vertex_store_indx_0__SHIFT 0x0000000f
+#define CLIPPER_DEBUG_REG01__clip_vert_vte_valid__SHIFT 0x00000013
+#define CLIPPER_DEBUG_REG01__vte_out_clip_rd_vertex_store_indx__SHIFT 0x00000016
+#define CLIPPER_DEBUG_REG01__ALWAYS_ZERO__SHIFT 0x00000018
+
+// CLIPPER_DEBUG_REG02
+#define CLIPPER_DEBUG_REG02__ALWAYS_ZERO1__SHIFT 0x00000000
+#define CLIPPER_DEBUG_REG02__clipsm0_clip_to_clipga_clip_to_outsm_cnt__SHIFT 0x00000015
+#define CLIPPER_DEBUG_REG02__ALWAYS_ZERO0__SHIFT 0x00000018
+#define CLIPPER_DEBUG_REG02__clipsm0_clprim_to_clip_prim_valid__SHIFT 0x0000001f
+
+// CLIPPER_DEBUG_REG03
+#define CLIPPER_DEBUG_REG03__ALWAYS_ZERO3__SHIFT 0x00000000
+#define CLIPPER_DEBUG_REG03__clipsm0_clprim_to_clip_clip_primitive__SHIFT 0x00000003
+#define CLIPPER_DEBUG_REG03__ALWAYS_ZERO2__SHIFT 0x00000004
+#define CLIPPER_DEBUG_REG03__clipsm0_clprim_to_clip_null_primitive__SHIFT 0x00000007
+#define CLIPPER_DEBUG_REG03__ALWAYS_ZERO1__SHIFT 0x00000008
+#define CLIPPER_DEBUG_REG03__clipsm0_clprim_to_clip_clip_code_or__SHIFT 0x00000014
+#define CLIPPER_DEBUG_REG03__ALWAYS_ZERO0__SHIFT 0x0000001a
+
+// CLIPPER_DEBUG_REG04
+#define CLIPPER_DEBUG_REG04__ALWAYS_ZERO2__SHIFT 0x00000000
+#define CLIPPER_DEBUG_REG04__clipsm0_clprim_to_clip_first_prim_of_slot__SHIFT 0x00000003
+#define CLIPPER_DEBUG_REG04__ALWAYS_ZERO1__SHIFT 0x00000004
+#define CLIPPER_DEBUG_REG04__clipsm0_clprim_to_clip_event__SHIFT 0x00000007
+#define CLIPPER_DEBUG_REG04__ALWAYS_ZERO0__SHIFT 0x00000008
+
+// CLIPPER_DEBUG_REG05
+#define CLIPPER_DEBUG_REG05__clipsm0_clprim_to_clip_state_var_indx__SHIFT 0x00000000
+#define CLIPPER_DEBUG_REG05__ALWAYS_ZERO3__SHIFT 0x00000001
+#define CLIPPER_DEBUG_REG05__clipsm0_clprim_to_clip_deallocate_slot__SHIFT 0x00000003
+#define CLIPPER_DEBUG_REG05__clipsm0_clprim_to_clip_event_id__SHIFT 0x00000006
+#define CLIPPER_DEBUG_REG05__clipsm0_clprim_to_clip_vertex_store_indx_2__SHIFT 0x0000000c
+#define CLIPPER_DEBUG_REG05__ALWAYS_ZERO2__SHIFT 0x00000010
+#define CLIPPER_DEBUG_REG05__clipsm0_clprim_to_clip_vertex_store_indx_1__SHIFT 0x00000012
+#define CLIPPER_DEBUG_REG05__ALWAYS_ZERO1__SHIFT 0x00000016
+#define CLIPPER_DEBUG_REG05__clipsm0_clprim_to_clip_vertex_store_indx_0__SHIFT 0x00000018
+#define CLIPPER_DEBUG_REG05__ALWAYS_ZERO0__SHIFT 0x0000001c
+
+// CLIPPER_DEBUG_REG09
+#define CLIPPER_DEBUG_REG09__clprim_in_back_event__SHIFT 0x00000000
+#define CLIPPER_DEBUG_REG09__outputclprimtoclip_null_primitive__SHIFT 0x00000001
+#define CLIPPER_DEBUG_REG09__clprim_in_back_vertex_store_indx_2__SHIFT 0x00000002
+#define CLIPPER_DEBUG_REG09__ALWAYS_ZERO2__SHIFT 0x00000006
+#define CLIPPER_DEBUG_REG09__clprim_in_back_vertex_store_indx_1__SHIFT 0x00000008
+#define CLIPPER_DEBUG_REG09__ALWAYS_ZERO1__SHIFT 0x0000000c
+#define CLIPPER_DEBUG_REG09__clprim_in_back_vertex_store_indx_0__SHIFT 0x0000000e
+#define CLIPPER_DEBUG_REG09__ALWAYS_ZERO0__SHIFT 0x00000012
+#define CLIPPER_DEBUG_REG09__prim_back_valid__SHIFT 0x00000014
+#define CLIPPER_DEBUG_REG09__clip_priority_seq_indx_out_cnt__SHIFT 0x00000015
+#define CLIPPER_DEBUG_REG09__outsm_clr_rd_orig_vertices__SHIFT 0x00000019
+#define CLIPPER_DEBUG_REG09__outsm_clr_rd_clipsm_wait__SHIFT 0x0000001b
+#define CLIPPER_DEBUG_REG09__outsm_clr_fifo_empty__SHIFT 0x0000001c
+#define CLIPPER_DEBUG_REG09__outsm_clr_fifo_full__SHIFT 0x0000001d
+#define CLIPPER_DEBUG_REG09__clip_priority_seq_indx_load__SHIFT 0x0000001e
+
+// CLIPPER_DEBUG_REG10
+#define CLIPPER_DEBUG_REG10__primic_to_clprim_fifo_vertex_store_indx_2__SHIFT 0x00000000
+#define CLIPPER_DEBUG_REG10__ALWAYS_ZERO3__SHIFT 0x00000004
+#define CLIPPER_DEBUG_REG10__primic_to_clprim_fifo_vertex_store_indx_1__SHIFT 0x00000006
+#define CLIPPER_DEBUG_REG10__ALWAYS_ZERO2__SHIFT 0x0000000a
+#define CLIPPER_DEBUG_REG10__primic_to_clprim_fifo_vertex_store_indx_0__SHIFT 0x0000000c
+#define CLIPPER_DEBUG_REG10__ALWAYS_ZERO1__SHIFT 0x00000010
+#define CLIPPER_DEBUG_REG10__clprim_in_back_state_var_indx__SHIFT 0x00000012
+#define CLIPPER_DEBUG_REG10__ALWAYS_ZERO0__SHIFT 0x00000013
+#define CLIPPER_DEBUG_REG10__clprim_in_back_end_of_packet__SHIFT 0x00000015
+#define CLIPPER_DEBUG_REG10__clprim_in_back_first_prim_of_slot__SHIFT 0x00000016
+#define CLIPPER_DEBUG_REG10__clprim_in_back_deallocate_slot__SHIFT 0x00000017
+#define CLIPPER_DEBUG_REG10__clprim_in_back_event_id__SHIFT 0x0000001a
+
+// CLIPPER_DEBUG_REG11
+#define CLIPPER_DEBUG_REG11__vertval_bits_vertex_vertex_store_msb__SHIFT 0x00000000
+#define CLIPPER_DEBUG_REG11__ALWAYS_ZERO__SHIFT 0x00000004
+
+// CLIPPER_DEBUG_REG12
+#define CLIPPER_DEBUG_REG12__clip_priority_available_vte_out_clip__SHIFT 0x00000000
+#define CLIPPER_DEBUG_REG12__ALWAYS_ZERO2__SHIFT 0x00000002
+#define CLIPPER_DEBUG_REG12__clip_vertex_fifo_empty__SHIFT 0x00000005
+#define CLIPPER_DEBUG_REG12__clip_priority_available_clip_verts__SHIFT 0x00000006
+#define CLIPPER_DEBUG_REG12__ALWAYS_ZERO1__SHIFT 0x0000000b
+#define CLIPPER_DEBUG_REG12__vertval_bits_vertex_cc_next_valid__SHIFT 0x0000000f
+#define CLIPPER_DEBUG_REG12__clipcc_vertex_store_indx__SHIFT 0x00000013
+#define CLIPPER_DEBUG_REG12__primic_to_clprim_valid__SHIFT 0x00000015
+#define CLIPPER_DEBUG_REG12__ALWAYS_ZERO0__SHIFT 0x00000016
+
+// CLIPPER_DEBUG_REG13
+#define CLIPPER_DEBUG_REG13__sm0_clip_vert_cnt__SHIFT 0x00000000
+#define CLIPPER_DEBUG_REG13__sm0_prim_end_state__SHIFT 0x00000004
+#define CLIPPER_DEBUG_REG13__ALWAYS_ZERO1__SHIFT 0x0000000b
+#define CLIPPER_DEBUG_REG13__sm0_vertex_clip_cnt__SHIFT 0x0000000e
+#define CLIPPER_DEBUG_REG13__sm0_inv_to_clip_data_valid_1__SHIFT 0x00000012
+#define CLIPPER_DEBUG_REG13__sm0_inv_to_clip_data_valid_0__SHIFT 0x00000013
+#define CLIPPER_DEBUG_REG13__sm0_current_state__SHIFT 0x00000014
+#define CLIPPER_DEBUG_REG13__ALWAYS_ZERO0__SHIFT 0x0000001b
+
+// SXIFCCG_DEBUG_REG0
+#define SXIFCCG_DEBUG_REG0__nan_kill_flag__SHIFT 0x00000000
+#define SXIFCCG_DEBUG_REG0__position_address__SHIFT 0x00000004
+#define SXIFCCG_DEBUG_REG0__ALWAYS_ZERO2__SHIFT 0x00000007
+#define SXIFCCG_DEBUG_REG0__point_address__SHIFT 0x0000000a
+#define SXIFCCG_DEBUG_REG0__ALWAYS_ZERO1__SHIFT 0x0000000d
+#define SXIFCCG_DEBUG_REG0__sx_pending_rd_state_var_indx__SHIFT 0x00000010
+#define SXIFCCG_DEBUG_REG0__ALWAYS_ZERO0__SHIFT 0x00000011
+#define SXIFCCG_DEBUG_REG0__sx_pending_rd_req_mask__SHIFT 0x00000013
+#define SXIFCCG_DEBUG_REG0__sx_pending_rd_pci__SHIFT 0x00000017
+#define SXIFCCG_DEBUG_REG0__sx_pending_rd_aux_inc__SHIFT 0x0000001e
+#define SXIFCCG_DEBUG_REG0__sx_pending_rd_aux_sel__SHIFT 0x0000001f
+
+// SXIFCCG_DEBUG_REG1
+#define SXIFCCG_DEBUG_REG1__ALWAYS_ZERO3__SHIFT 0x00000000
+#define SXIFCCG_DEBUG_REG1__sx_to_pa_empty__SHIFT 0x00000002
+#define SXIFCCG_DEBUG_REG1__available_positions__SHIFT 0x00000004
+#define SXIFCCG_DEBUG_REG1__ALWAYS_ZERO2__SHIFT 0x00000007
+#define SXIFCCG_DEBUG_REG1__sx_pending_advance__SHIFT 0x0000000b
+#define SXIFCCG_DEBUG_REG1__sx_receive_indx__SHIFT 0x0000000c
+#define SXIFCCG_DEBUG_REG1__statevar_bits_sxpa_aux_vector__SHIFT 0x0000000f
+#define SXIFCCG_DEBUG_REG1__ALWAYS_ZERO1__SHIFT 0x00000010
+#define SXIFCCG_DEBUG_REG1__aux_sel__SHIFT 0x00000014
+#define SXIFCCG_DEBUG_REG1__ALWAYS_ZERO0__SHIFT 0x00000015
+#define SXIFCCG_DEBUG_REG1__pasx_req_cnt__SHIFT 0x00000017
+#define SXIFCCG_DEBUG_REG1__param_cache_base__SHIFT 0x00000019
+
+// SXIFCCG_DEBUG_REG2
+#define SXIFCCG_DEBUG_REG2__sx_sent__SHIFT 0x00000000
+#define SXIFCCG_DEBUG_REG2__ALWAYS_ZERO3__SHIFT 0x00000001
+#define SXIFCCG_DEBUG_REG2__sx_aux__SHIFT 0x00000002
+#define SXIFCCG_DEBUG_REG2__sx_request_indx__SHIFT 0x00000003
+#define SXIFCCG_DEBUG_REG2__req_active_verts__SHIFT 0x00000009
+#define SXIFCCG_DEBUG_REG2__ALWAYS_ZERO2__SHIFT 0x00000010
+#define SXIFCCG_DEBUG_REG2__vgt_to_ccgen_state_var_indx__SHIFT 0x00000011
+#define SXIFCCG_DEBUG_REG2__ALWAYS_ZERO1__SHIFT 0x00000012
+#define SXIFCCG_DEBUG_REG2__vgt_to_ccgen_active_verts__SHIFT 0x00000014
+#define SXIFCCG_DEBUG_REG2__ALWAYS_ZERO0__SHIFT 0x00000016
+#define SXIFCCG_DEBUG_REG2__req_active_verts_loaded__SHIFT 0x0000001a
+#define SXIFCCG_DEBUG_REG2__sx_pending_fifo_empty__SHIFT 0x0000001b
+#define SXIFCCG_DEBUG_REG2__sx_pending_fifo_full__SHIFT 0x0000001c
+#define SXIFCCG_DEBUG_REG2__sx_pending_fifo_contents__SHIFT 0x0000001d
+
+// SXIFCCG_DEBUG_REG3
+#define SXIFCCG_DEBUG_REG3__vertex_fifo_entriesavailable__SHIFT 0x00000000
+#define SXIFCCG_DEBUG_REG3__ALWAYS_ZERO3__SHIFT 0x00000004
+#define SXIFCCG_DEBUG_REG3__available_positions__SHIFT 0x00000005
+#define SXIFCCG_DEBUG_REG3__ALWAYS_ZERO2__SHIFT 0x00000008
+#define SXIFCCG_DEBUG_REG3__current_state__SHIFT 0x0000000c
+#define SXIFCCG_DEBUG_REG3__vertex_fifo_empty__SHIFT 0x0000000e
+#define SXIFCCG_DEBUG_REG3__vertex_fifo_full__SHIFT 0x0000000f
+#define SXIFCCG_DEBUG_REG3__ALWAYS_ZERO1__SHIFT 0x00000010
+#define SXIFCCG_DEBUG_REG3__sx0_receive_fifo_empty__SHIFT 0x00000012
+#define SXIFCCG_DEBUG_REG3__sx0_receive_fifo_full__SHIFT 0x00000013
+#define SXIFCCG_DEBUG_REG3__vgt_to_ccgen_fifo_empty__SHIFT 0x00000014
+#define SXIFCCG_DEBUG_REG3__vgt_to_ccgen_fifo_full__SHIFT 0x00000015
+#define SXIFCCG_DEBUG_REG3__ALWAYS_ZERO0__SHIFT 0x00000016
+
+// SETUP_DEBUG_REG0
+#define SETUP_DEBUG_REG0__su_cntl_state__SHIFT 0x00000000
+#define SETUP_DEBUG_REG0__pmode_state__SHIFT 0x00000005
+#define SETUP_DEBUG_REG0__ge_stallb__SHIFT 0x0000000b
+#define SETUP_DEBUG_REG0__geom_enable__SHIFT 0x0000000c
+#define SETUP_DEBUG_REG0__su_clip_baryc_rtr__SHIFT 0x0000000d
+#define SETUP_DEBUG_REG0__su_clip_rtr__SHIFT 0x0000000e
+#define SETUP_DEBUG_REG0__pfifo_busy__SHIFT 0x0000000f
+#define SETUP_DEBUG_REG0__su_cntl_busy__SHIFT 0x00000010
+#define SETUP_DEBUG_REG0__geom_busy__SHIFT 0x00000011
+
+// SETUP_DEBUG_REG1
+#define SETUP_DEBUG_REG1__y_sort0_gated_17_4__SHIFT 0x00000000
+#define SETUP_DEBUG_REG1__x_sort0_gated_17_4__SHIFT 0x0000000e
+
+// SETUP_DEBUG_REG2
+#define SETUP_DEBUG_REG2__y_sort1_gated_17_4__SHIFT 0x00000000
+#define SETUP_DEBUG_REG2__x_sort1_gated_17_4__SHIFT 0x0000000e
+
+// SETUP_DEBUG_REG3
+#define SETUP_DEBUG_REG3__y_sort2_gated_17_4__SHIFT 0x00000000
+#define SETUP_DEBUG_REG3__x_sort2_gated_17_4__SHIFT 0x0000000e
+
+// SETUP_DEBUG_REG4
+#define SETUP_DEBUG_REG4__attr_indx_sort0_gated__SHIFT 0x00000000
+#define SETUP_DEBUG_REG4__null_prim_gated__SHIFT 0x0000000b
+#define SETUP_DEBUG_REG4__backfacing_gated__SHIFT 0x0000000c
+#define SETUP_DEBUG_REG4__st_indx_gated__SHIFT 0x0000000d
+#define SETUP_DEBUG_REG4__clipped_gated__SHIFT 0x00000010
+#define SETUP_DEBUG_REG4__dealloc_slot_gated__SHIFT 0x00000011
+#define SETUP_DEBUG_REG4__xmajor_gated__SHIFT 0x00000014
+#define SETUP_DEBUG_REG4__diamond_rule_gated__SHIFT 0x00000015
+#define SETUP_DEBUG_REG4__type_gated__SHIFT 0x00000017
+#define SETUP_DEBUG_REG4__fpov_gated__SHIFT 0x0000001a
+#define SETUP_DEBUG_REG4__pmode_prim_gated__SHIFT 0x0000001b
+#define SETUP_DEBUG_REG4__event_gated__SHIFT 0x0000001c
+#define SETUP_DEBUG_REG4__eop_gated__SHIFT 0x0000001d
+
+// SETUP_DEBUG_REG5
+#define SETUP_DEBUG_REG5__attr_indx_sort2_gated__SHIFT 0x00000000
+#define SETUP_DEBUG_REG5__attr_indx_sort1_gated__SHIFT 0x0000000b
+#define SETUP_DEBUG_REG5__provoking_vtx_gated__SHIFT 0x00000016
+#define SETUP_DEBUG_REG5__event_id_gated__SHIFT 0x00000018
+
+// PA_SC_DEBUG_CNTL
+#define PA_SC_DEBUG_CNTL__SC_DEBUG_INDX__SHIFT 0x00000000
+
+// PA_SC_DEBUG_DATA
+#define PA_SC_DEBUG_DATA__DATA__SHIFT 0x00000000
+
+// SC_DEBUG_0
+#define SC_DEBUG_0__pa_freeze_b1__SHIFT 0x00000000
+#define SC_DEBUG_0__pa_sc_valid__SHIFT 0x00000001
+#define SC_DEBUG_0__pa_sc_phase__SHIFT 0x00000002
+#define SC_DEBUG_0__cntx_cnt__SHIFT 0x00000005
+#define SC_DEBUG_0__decr_cntx_cnt__SHIFT 0x0000000c
+#define SC_DEBUG_0__incr_cntx_cnt__SHIFT 0x0000000d
+#define SC_DEBUG_0__trigger__SHIFT 0x0000001f
+
+// SC_DEBUG_1
+#define SC_DEBUG_1__em_state__SHIFT 0x00000000
+#define SC_DEBUG_1__em1_data_ready__SHIFT 0x00000003
+#define SC_DEBUG_1__em2_data_ready__SHIFT 0x00000004
+#define SC_DEBUG_1__move_em1_to_em2__SHIFT 0x00000005
+#define SC_DEBUG_1__ef_data_ready__SHIFT 0x00000006
+#define SC_DEBUG_1__ef_state__SHIFT 0x00000007
+#define SC_DEBUG_1__pipe_valid__SHIFT 0x00000009
+#define SC_DEBUG_1__trigger__SHIFT 0x0000001f
+
+// SC_DEBUG_2
+#define SC_DEBUG_2__rc_rtr_dly__SHIFT 0x00000000
+#define SC_DEBUG_2__qmask_ff_alm_full_d1__SHIFT 0x00000001
+#define SC_DEBUG_2__pipe_freeze_b__SHIFT 0x00000003
+#define SC_DEBUG_2__prim_rts__SHIFT 0x00000004
+#define SC_DEBUG_2__next_prim_rts_dly__SHIFT 0x00000005
+#define SC_DEBUG_2__next_prim_rtr_dly__SHIFT 0x00000006
+#define SC_DEBUG_2__pre_stage1_rts_d1__SHIFT 0x00000007
+#define SC_DEBUG_2__stage0_rts__SHIFT 0x00000008
+#define SC_DEBUG_2__phase_rts_dly__SHIFT 0x00000009
+#define SC_DEBUG_2__end_of_prim_s1_dly__SHIFT 0x0000000f
+#define SC_DEBUG_2__pass_empty_prim_s1__SHIFT 0x00000010
+#define SC_DEBUG_2__event_id_s1__SHIFT 0x00000011
+#define SC_DEBUG_2__event_s1__SHIFT 0x00000016
+#define SC_DEBUG_2__trigger__SHIFT 0x0000001f
+
+// SC_DEBUG_3
+#define SC_DEBUG_3__x_curr_s1__SHIFT 0x00000000
+#define SC_DEBUG_3__y_curr_s1__SHIFT 0x0000000b
+#define SC_DEBUG_3__trigger__SHIFT 0x0000001f
+
+// SC_DEBUG_4
+#define SC_DEBUG_4__y_end_s1__SHIFT 0x00000000
+#define SC_DEBUG_4__y_start_s1__SHIFT 0x0000000e
+#define SC_DEBUG_4__y_dir_s1__SHIFT 0x0000001c
+#define SC_DEBUG_4__trigger__SHIFT 0x0000001f
+
+// SC_DEBUG_5
+#define SC_DEBUG_5__x_end_s1__SHIFT 0x00000000
+#define SC_DEBUG_5__x_start_s1__SHIFT 0x0000000e
+#define SC_DEBUG_5__x_dir_s1__SHIFT 0x0000001c
+#define SC_DEBUG_5__trigger__SHIFT 0x0000001f
+
+// SC_DEBUG_6
+#define SC_DEBUG_6__z_ff_empty__SHIFT 0x00000000
+#define SC_DEBUG_6__qmcntl_ff_empty__SHIFT 0x00000001
+#define SC_DEBUG_6__xy_ff_empty__SHIFT 0x00000002
+#define SC_DEBUG_6__event_flag__SHIFT 0x00000003
+#define SC_DEBUG_6__z_mask_needed__SHIFT 0x00000004
+#define SC_DEBUG_6__state__SHIFT 0x00000005
+#define SC_DEBUG_6__state_delayed__SHIFT 0x00000008
+#define SC_DEBUG_6__data_valid__SHIFT 0x0000000b
+#define SC_DEBUG_6__data_valid_d__SHIFT 0x0000000c
+#define SC_DEBUG_6__tilex_delayed__SHIFT 0x0000000d
+#define SC_DEBUG_6__tiley_delayed__SHIFT 0x00000016
+#define SC_DEBUG_6__trigger__SHIFT 0x0000001f
+
+// SC_DEBUG_7
+#define SC_DEBUG_7__event_flag__SHIFT 0x00000000
+#define SC_DEBUG_7__deallocate__SHIFT 0x00000001
+#define SC_DEBUG_7__fposition__SHIFT 0x00000004
+#define SC_DEBUG_7__sr_prim_we__SHIFT 0x00000005
+#define SC_DEBUG_7__last_tile__SHIFT 0x00000006
+#define SC_DEBUG_7__tile_ff_we__SHIFT 0x00000007
+#define SC_DEBUG_7__qs_data_valid__SHIFT 0x00000008
+#define SC_DEBUG_7__qs_q0_y__SHIFT 0x00000009
+#define SC_DEBUG_7__qs_q0_x__SHIFT 0x0000000b
+#define SC_DEBUG_7__qs_q0_valid__SHIFT 0x0000000d
+#define SC_DEBUG_7__prim_ff_we__SHIFT 0x0000000e
+#define SC_DEBUG_7__tile_ff_re__SHIFT 0x0000000f
+#define SC_DEBUG_7__fw_prim_data_valid__SHIFT 0x00000010
+#define SC_DEBUG_7__last_quad_of_tile__SHIFT 0x00000011
+#define SC_DEBUG_7__first_quad_of_tile__SHIFT 0x00000012
+#define SC_DEBUG_7__first_quad_of_prim__SHIFT 0x00000013
+#define SC_DEBUG_7__new_prim__SHIFT 0x00000014
+#define SC_DEBUG_7__load_new_tile_data__SHIFT 0x00000015
+#define SC_DEBUG_7__state__SHIFT 0x00000016
+#define SC_DEBUG_7__fifos_ready__SHIFT 0x00000018
+#define SC_DEBUG_7__trigger__SHIFT 0x0000001f
+
+// SC_DEBUG_8
+#define SC_DEBUG_8__sample_last__SHIFT 0x00000000
+#define SC_DEBUG_8__sample_mask__SHIFT 0x00000001
+#define SC_DEBUG_8__sample_y__SHIFT 0x00000005
+#define SC_DEBUG_8__sample_x__SHIFT 0x00000007
+#define SC_DEBUG_8__sample_send__SHIFT 0x00000009
+#define SC_DEBUG_8__next_cycle__SHIFT 0x0000000a
+#define SC_DEBUG_8__ez_sample_ff_full__SHIFT 0x0000000c
+#define SC_DEBUG_8__rb_sc_samp_rtr__SHIFT 0x0000000d
+#define SC_DEBUG_8__num_samples__SHIFT 0x0000000e
+#define SC_DEBUG_8__last_quad_of_tile__SHIFT 0x00000010
+#define SC_DEBUG_8__last_quad_of_prim__SHIFT 0x00000011
+#define SC_DEBUG_8__first_quad_of_prim__SHIFT 0x00000012
+#define SC_DEBUG_8__sample_we__SHIFT 0x00000013
+#define SC_DEBUG_8__fposition__SHIFT 0x00000014
+#define SC_DEBUG_8__event_id__SHIFT 0x00000015
+#define SC_DEBUG_8__event_flag__SHIFT 0x0000001a
+#define SC_DEBUG_8__fw_prim_data_valid__SHIFT 0x0000001b
+#define SC_DEBUG_8__trigger__SHIFT 0x0000001f
+
+// SC_DEBUG_9
+#define SC_DEBUG_9__rb_sc_send__SHIFT 0x00000000
+#define SC_DEBUG_9__rb_sc_ez_mask__SHIFT 0x00000001
+#define SC_DEBUG_9__fifo_data_ready__SHIFT 0x00000005
+#define SC_DEBUG_9__early_z_enable__SHIFT 0x00000006
+#define SC_DEBUG_9__mask_state__SHIFT 0x00000007
+#define SC_DEBUG_9__next_ez_mask__SHIFT 0x00000009
+#define SC_DEBUG_9__mask_ready__SHIFT 0x00000019
+#define SC_DEBUG_9__drop_sample__SHIFT 0x0000001a
+#define SC_DEBUG_9__fetch_new_sample_data__SHIFT 0x0000001b
+#define SC_DEBUG_9__fetch_new_ez_sample_mask__SHIFT 0x0000001c
+#define SC_DEBUG_9__pkr_fetch_new_sample_data__SHIFT 0x0000001d
+#define SC_DEBUG_9__pkr_fetch_new_prim_data__SHIFT 0x0000001e
+#define SC_DEBUG_9__trigger__SHIFT 0x0000001f
+
+// SC_DEBUG_10
+#define SC_DEBUG_10__combined_sample_mask__SHIFT 0x00000000
+#define SC_DEBUG_10__trigger__SHIFT 0x0000001f
+
+// SC_DEBUG_11
+#define SC_DEBUG_11__ez_sample_data_ready__SHIFT 0x00000000
+#define SC_DEBUG_11__pkr_fetch_new_sample_data__SHIFT 0x00000001
+#define SC_DEBUG_11__ez_prim_data_ready__SHIFT 0x00000002
+#define SC_DEBUG_11__pkr_fetch_new_prim_data__SHIFT 0x00000003
+#define SC_DEBUG_11__iterator_input_fz__SHIFT 0x00000004
+#define SC_DEBUG_11__packer_send_quads__SHIFT 0x00000005
+#define SC_DEBUG_11__packer_send_cmd__SHIFT 0x00000006
+#define SC_DEBUG_11__packer_send_event__SHIFT 0x00000007
+#define SC_DEBUG_11__next_state__SHIFT 0x00000008
+#define SC_DEBUG_11__state__SHIFT 0x0000000b
+#define SC_DEBUG_11__stall__SHIFT 0x0000000e
+#define SC_DEBUG_11__trigger__SHIFT 0x0000001f
+
+// SC_DEBUG_12
+#define SC_DEBUG_12__SQ_iterator_free_buff__SHIFT 0x00000000
+#define SC_DEBUG_12__event_id__SHIFT 0x00000001
+#define SC_DEBUG_12__event_flag__SHIFT 0x00000006
+#define SC_DEBUG_12__itercmdfifo_busy_nc_dly__SHIFT 0x00000007
+#define SC_DEBUG_12__itercmdfifo_full__SHIFT 0x00000008
+#define SC_DEBUG_12__itercmdfifo_empty__SHIFT 0x00000009
+#define SC_DEBUG_12__iter_ds_one_clk_command__SHIFT 0x0000000a
+#define SC_DEBUG_12__iter_ds_end_of_prim0__SHIFT 0x0000000b
+#define SC_DEBUG_12__iter_ds_end_of_vector__SHIFT 0x0000000c
+#define SC_DEBUG_12__iter_qdhit0__SHIFT 0x0000000d
+#define SC_DEBUG_12__bc_use_centers_reg__SHIFT 0x0000000e
+#define SC_DEBUG_12__bc_output_xy_reg__SHIFT 0x0000000f
+#define SC_DEBUG_12__iter_phase_out__SHIFT 0x00000010
+#define SC_DEBUG_12__iter_phase_reg__SHIFT 0x00000012
+#define SC_DEBUG_12__iterator_SP_valid__SHIFT 0x00000014
+#define SC_DEBUG_12__eopv_reg__SHIFT 0x00000015
+#define SC_DEBUG_12__one_clk_cmd_reg__SHIFT 0x00000016
+#define SC_DEBUG_12__iter_dx_end_of_prim__SHIFT 0x00000017
+#define SC_DEBUG_12__trigger__SHIFT 0x0000001f
+
+// GFX_COPY_STATE
+#define GFX_COPY_STATE__SRC_STATE_ID__SHIFT 0x00000000
+
+// VGT_DRAW_INITIATOR
+#define VGT_DRAW_INITIATOR__PRIM_TYPE__SHIFT 0x00000000
+#define VGT_DRAW_INITIATOR__SOURCE_SELECT__SHIFT 0x00000006
+#define VGT_DRAW_INITIATOR__FACENESS_CULL_SELECT__SHIFT 0x00000008
+#define VGT_DRAW_INITIATOR__INDEX_SIZE__SHIFT 0x0000000b
+#define VGT_DRAW_INITIATOR__NOT_EOP__SHIFT 0x0000000c
+#define VGT_DRAW_INITIATOR__SMALL_INDEX__SHIFT 0x0000000d
+#define VGT_DRAW_INITIATOR__PRE_FETCH_CULL_ENABLE__SHIFT 0x0000000e
+#define VGT_DRAW_INITIATOR__GRP_CULL_ENABLE__SHIFT 0x0000000f
+#define VGT_DRAW_INITIATOR__NUM_INDICES__SHIFT 0x00000010
+
+// VGT_EVENT_INITIATOR
+#define VGT_EVENT_INITIATOR__EVENT_TYPE__SHIFT 0x00000000
+
+// VGT_DMA_BASE
+#define VGT_DMA_BASE__BASE_ADDR__SHIFT 0x00000000
+
+// VGT_DMA_SIZE
+#define VGT_DMA_SIZE__NUM_WORDS__SHIFT 0x00000000
+#define VGT_DMA_SIZE__SWAP_MODE__SHIFT 0x0000001e
+
+// VGT_BIN_BASE
+#define VGT_BIN_BASE__BIN_BASE_ADDR__SHIFT 0x00000000
+
+// VGT_BIN_SIZE
+#define VGT_BIN_SIZE__NUM_WORDS__SHIFT 0x00000000
+#define VGT_BIN_SIZE__FACENESS_FETCH__SHIFT 0x0000001e
+#define VGT_BIN_SIZE__FACENESS_RESET__SHIFT 0x0000001f
+
+// VGT_CURRENT_BIN_ID_MIN
+#define VGT_CURRENT_BIN_ID_MIN__COLUMN__SHIFT 0x00000000
+#define VGT_CURRENT_BIN_ID_MIN__ROW__SHIFT 0x00000003
+#define VGT_CURRENT_BIN_ID_MIN__GUARD_BAND__SHIFT 0x00000006
+
+// VGT_CURRENT_BIN_ID_MAX
+#define VGT_CURRENT_BIN_ID_MAX__COLUMN__SHIFT 0x00000000
+#define VGT_CURRENT_BIN_ID_MAX__ROW__SHIFT 0x00000003
+#define VGT_CURRENT_BIN_ID_MAX__GUARD_BAND__SHIFT 0x00000006
+
+// VGT_IMMED_DATA
+#define VGT_IMMED_DATA__DATA__SHIFT 0x00000000
+
+// VGT_MAX_VTX_INDX
+#define VGT_MAX_VTX_INDX__MAX_INDX__SHIFT 0x00000000
+
+// VGT_MIN_VTX_INDX
+#define VGT_MIN_VTX_INDX__MIN_INDX__SHIFT 0x00000000
+
+// VGT_INDX_OFFSET
+#define VGT_INDX_OFFSET__INDX_OFFSET__SHIFT 0x00000000
+
+// VGT_VERTEX_REUSE_BLOCK_CNTL
+#define VGT_VERTEX_REUSE_BLOCK_CNTL__VTX_REUSE_DEPTH__SHIFT 0x00000000
+
+// VGT_OUT_DEALLOC_CNTL
+#define VGT_OUT_DEALLOC_CNTL__DEALLOC_DIST__SHIFT 0x00000000
+
+// VGT_MULTI_PRIM_IB_RESET_INDX
+#define VGT_MULTI_PRIM_IB_RESET_INDX__RESET_INDX__SHIFT 0x00000000
+
+// VGT_ENHANCE
+#define VGT_ENHANCE__MISC__SHIFT 0x00000000
+
+// VGT_VTX_VECT_EJECT_REG
+#define VGT_VTX_VECT_EJECT_REG__PRIM_COUNT__SHIFT 0x00000000
+
+// VGT_LAST_COPY_STATE
+#define VGT_LAST_COPY_STATE__SRC_STATE_ID__SHIFT 0x00000000
+#define VGT_LAST_COPY_STATE__DST_STATE_ID__SHIFT 0x00000010
+
+// VGT_DEBUG_CNTL
+#define VGT_DEBUG_CNTL__VGT_DEBUG_INDX__SHIFT 0x00000000
+
+// VGT_DEBUG_DATA
+#define VGT_DEBUG_DATA__DATA__SHIFT 0x00000000
+
+// VGT_CNTL_STATUS
+#define VGT_CNTL_STATUS__VGT_BUSY__SHIFT 0x00000000
+#define VGT_CNTL_STATUS__VGT_DMA_BUSY__SHIFT 0x00000001
+#define VGT_CNTL_STATUS__VGT_DMA_REQ_BUSY__SHIFT 0x00000002
+#define VGT_CNTL_STATUS__VGT_GRP_BUSY__SHIFT 0x00000003
+#define VGT_CNTL_STATUS__VGT_VR_BUSY__SHIFT 0x00000004
+#define VGT_CNTL_STATUS__VGT_BIN_BUSY__SHIFT 0x00000005
+#define VGT_CNTL_STATUS__VGT_PT_BUSY__SHIFT 0x00000006
+#define VGT_CNTL_STATUS__VGT_OUT_BUSY__SHIFT 0x00000007
+#define VGT_CNTL_STATUS__VGT_OUT_INDX_BUSY__SHIFT 0x00000008
+
+// VGT_DEBUG_REG0
+#define VGT_DEBUG_REG0__te_grp_busy__SHIFT 0x00000000
+#define VGT_DEBUG_REG0__pt_grp_busy__SHIFT 0x00000001
+#define VGT_DEBUG_REG0__vr_grp_busy__SHIFT 0x00000002
+#define VGT_DEBUG_REG0__dma_request_busy__SHIFT 0x00000003
+#define VGT_DEBUG_REG0__out_busy__SHIFT 0x00000004
+#define VGT_DEBUG_REG0__grp_backend_busy__SHIFT 0x00000005
+#define VGT_DEBUG_REG0__grp_busy__SHIFT 0x00000006
+#define VGT_DEBUG_REG0__dma_busy__SHIFT 0x00000007
+#define VGT_DEBUG_REG0__rbiu_dma_request_busy__SHIFT 0x00000008
+#define VGT_DEBUG_REG0__rbiu_busy__SHIFT 0x00000009
+#define VGT_DEBUG_REG0__vgt_no_dma_busy_extended__SHIFT 0x0000000a
+#define VGT_DEBUG_REG0__vgt_no_dma_busy__SHIFT 0x0000000b
+#define VGT_DEBUG_REG0__vgt_busy_extended__SHIFT 0x0000000c
+#define VGT_DEBUG_REG0__vgt_busy__SHIFT 0x0000000d
+#define VGT_DEBUG_REG0__rbbm_skid_fifo_busy_out__SHIFT 0x0000000e
+#define VGT_DEBUG_REG0__VGT_RBBM_no_dma_busy__SHIFT 0x0000000f
+#define VGT_DEBUG_REG0__VGT_RBBM_busy__SHIFT 0x00000010
+
+// VGT_DEBUG_REG1
+#define VGT_DEBUG_REG1__out_te_data_read__SHIFT 0x00000000
+#define VGT_DEBUG_REG1__te_out_data_valid__SHIFT 0x00000001
+#define VGT_DEBUG_REG1__out_pt_prim_read__SHIFT 0x00000002
+#define VGT_DEBUG_REG1__pt_out_prim_valid__SHIFT 0x00000003
+#define VGT_DEBUG_REG1__out_pt_data_read__SHIFT 0x00000004
+#define VGT_DEBUG_REG1__pt_out_indx_valid__SHIFT 0x00000005
+#define VGT_DEBUG_REG1__out_vr_prim_read__SHIFT 0x00000006
+#define VGT_DEBUG_REG1__vr_out_prim_valid__SHIFT 0x00000007
+#define VGT_DEBUG_REG1__out_vr_indx_read__SHIFT 0x00000008
+#define VGT_DEBUG_REG1__vr_out_indx_valid__SHIFT 0x00000009
+#define VGT_DEBUG_REG1__te_grp_read__SHIFT 0x0000000a
+#define VGT_DEBUG_REG1__grp_te_valid__SHIFT 0x0000000b
+#define VGT_DEBUG_REG1__pt_grp_read__SHIFT 0x0000000c
+#define VGT_DEBUG_REG1__grp_pt_valid__SHIFT 0x0000000d
+#define VGT_DEBUG_REG1__vr_grp_read__SHIFT 0x0000000e
+#define VGT_DEBUG_REG1__grp_vr_valid__SHIFT 0x0000000f
+#define VGT_DEBUG_REG1__grp_dma_read__SHIFT 0x00000010
+#define VGT_DEBUG_REG1__dma_grp_valid__SHIFT 0x00000011
+#define VGT_DEBUG_REG1__grp_rbiu_di_read__SHIFT 0x00000012
+#define VGT_DEBUG_REG1__rbiu_grp_di_valid__SHIFT 0x00000013
+#define VGT_DEBUG_REG1__MH_VGT_rtr__SHIFT 0x00000014
+#define VGT_DEBUG_REG1__VGT_MH_send__SHIFT 0x00000015
+#define VGT_DEBUG_REG1__PA_VGT_clip_s_rtr__SHIFT 0x00000016
+#define VGT_DEBUG_REG1__VGT_PA_clip_s_send__SHIFT 0x00000017
+#define VGT_DEBUG_REG1__PA_VGT_clip_p_rtr__SHIFT 0x00000018
+#define VGT_DEBUG_REG1__VGT_PA_clip_p_send__SHIFT 0x00000019
+#define VGT_DEBUG_REG1__PA_VGT_clip_v_rtr__SHIFT 0x0000001a
+#define VGT_DEBUG_REG1__VGT_PA_clip_v_send__SHIFT 0x0000001b
+#define VGT_DEBUG_REG1__SQ_VGT_rtr__SHIFT 0x0000001c
+#define VGT_DEBUG_REG1__VGT_SQ_send__SHIFT 0x0000001d
+#define VGT_DEBUG_REG1__mh_vgt_tag_7_q__SHIFT 0x0000001e
+
+// VGT_DEBUG_REG3
+#define VGT_DEBUG_REG3__vgt_clk_en__SHIFT 0x00000000
+#define VGT_DEBUG_REG3__reg_fifos_clk_en__SHIFT 0x00000001
+
+// VGT_DEBUG_REG6
+#define VGT_DEBUG_REG6__shifter_byte_count_q__SHIFT 0x00000000
+#define VGT_DEBUG_REG6__right_word_indx_q__SHIFT 0x00000005
+#define VGT_DEBUG_REG6__input_data_valid__SHIFT 0x0000000a
+#define VGT_DEBUG_REG6__input_data_xfer__SHIFT 0x0000000b
+#define VGT_DEBUG_REG6__next_shift_is_vect_1_q__SHIFT 0x0000000c
+#define VGT_DEBUG_REG6__next_shift_is_vect_1_d__SHIFT 0x0000000d
+#define VGT_DEBUG_REG6__next_shift_is_vect_1_pre_d__SHIFT 0x0000000e
+#define VGT_DEBUG_REG6__space_avail_from_shift__SHIFT 0x0000000f
+#define VGT_DEBUG_REG6__shifter_first_load__SHIFT 0x00000010
+#define VGT_DEBUG_REG6__di_state_sel_q__SHIFT 0x00000011
+#define VGT_DEBUG_REG6__shifter_waiting_for_first_load_q__SHIFT 0x00000012
+#define VGT_DEBUG_REG6__di_first_group_flag_q__SHIFT 0x00000013
+#define VGT_DEBUG_REG6__di_event_flag_q__SHIFT 0x00000014
+#define VGT_DEBUG_REG6__read_draw_initiator__SHIFT 0x00000015
+#define VGT_DEBUG_REG6__loading_di_requires_shifter__SHIFT 0x00000016
+#define VGT_DEBUG_REG6__last_shift_of_packet__SHIFT 0x00000017
+#define VGT_DEBUG_REG6__last_decr_of_packet__SHIFT 0x00000018
+#define VGT_DEBUG_REG6__extract_vector__SHIFT 0x00000019
+#define VGT_DEBUG_REG6__shift_vect_rtr__SHIFT 0x0000001a
+#define VGT_DEBUG_REG6__destination_rtr__SHIFT 0x0000001b
+#define VGT_DEBUG_REG6__grp_trigger__SHIFT 0x0000001c
+
+// VGT_DEBUG_REG7
+#define VGT_DEBUG_REG7__di_index_counter_q__SHIFT 0x00000000
+#define VGT_DEBUG_REG7__shift_amount_no_extract__SHIFT 0x00000010
+#define VGT_DEBUG_REG7__shift_amount_extract__SHIFT 0x00000014
+#define VGT_DEBUG_REG7__di_prim_type_q__SHIFT 0x00000018
+#define VGT_DEBUG_REG7__current_source_sel__SHIFT 0x0000001e
+
+// VGT_DEBUG_REG8
+#define VGT_DEBUG_REG8__current_source_sel__SHIFT 0x00000000
+#define VGT_DEBUG_REG8__left_word_indx_q__SHIFT 0x00000002
+#define VGT_DEBUG_REG8__input_data_cnt__SHIFT 0x00000007
+#define VGT_DEBUG_REG8__input_data_lsw__SHIFT 0x0000000c
+#define VGT_DEBUG_REG8__input_data_msw__SHIFT 0x00000011
+#define VGT_DEBUG_REG8__next_small_stride_shift_limit_q__SHIFT 0x00000016
+#define VGT_DEBUG_REG8__current_small_stride_shift_limit_q__SHIFT 0x0000001b
+
+// VGT_DEBUG_REG9
+#define VGT_DEBUG_REG9__next_stride_q__SHIFT 0x00000000
+#define VGT_DEBUG_REG9__next_stride_d__SHIFT 0x00000005
+#define VGT_DEBUG_REG9__current_shift_q__SHIFT 0x0000000a
+#define VGT_DEBUG_REG9__current_shift_d__SHIFT 0x0000000f
+#define VGT_DEBUG_REG9__current_stride_q__SHIFT 0x00000014
+#define VGT_DEBUG_REG9__current_stride_d__SHIFT 0x00000019
+#define VGT_DEBUG_REG9__grp_trigger__SHIFT 0x0000001e
+
+// VGT_DEBUG_REG10
+#define VGT_DEBUG_REG10__temp_derived_di_prim_type_t0__SHIFT 0x00000000
+#define VGT_DEBUG_REG10__temp_derived_di_small_index_t0__SHIFT 0x00000001
+#define VGT_DEBUG_REG10__temp_derived_di_cull_enable_t0__SHIFT 0x00000002
+#define VGT_DEBUG_REG10__temp_derived_di_pre_fetch_cull_enable_t0__SHIFT 0x00000003
+#define VGT_DEBUG_REG10__di_state_sel_q__SHIFT 0x00000004
+#define VGT_DEBUG_REG10__last_decr_of_packet__SHIFT 0x00000005
+#define VGT_DEBUG_REG10__bin_valid__SHIFT 0x00000006
+#define VGT_DEBUG_REG10__read_block__SHIFT 0x00000007
+#define VGT_DEBUG_REG10__grp_bgrp_last_bit_read__SHIFT 0x00000008
+#define VGT_DEBUG_REG10__last_bit_enable_q__SHIFT 0x00000009
+#define VGT_DEBUG_REG10__last_bit_end_di_q__SHIFT 0x0000000a
+#define VGT_DEBUG_REG10__selected_data__SHIFT 0x0000000b
+#define VGT_DEBUG_REG10__mask_input_data__SHIFT 0x00000013
+#define VGT_DEBUG_REG10__gap_q__SHIFT 0x0000001b
+#define VGT_DEBUG_REG10__temp_mini_reset_z__SHIFT 0x0000001c
+#define VGT_DEBUG_REG10__temp_mini_reset_y__SHIFT 0x0000001d
+#define VGT_DEBUG_REG10__temp_mini_reset_x__SHIFT 0x0000001e
+#define VGT_DEBUG_REG10__grp_trigger__SHIFT 0x0000001f
+
+// VGT_DEBUG_REG12
+#define VGT_DEBUG_REG12__shifter_byte_count_q__SHIFT 0x00000000
+#define VGT_DEBUG_REG12__right_word_indx_q__SHIFT 0x00000005
+#define VGT_DEBUG_REG12__input_data_valid__SHIFT 0x0000000a
+#define VGT_DEBUG_REG12__input_data_xfer__SHIFT 0x0000000b
+#define VGT_DEBUG_REG12__next_shift_is_vect_1_q__SHIFT 0x0000000c
+#define VGT_DEBUG_REG12__next_shift_is_vect_1_d__SHIFT 0x0000000d
+#define VGT_DEBUG_REG12__next_shift_is_vect_1_pre_d__SHIFT 0x0000000e
+#define VGT_DEBUG_REG12__space_avail_from_shift__SHIFT 0x0000000f
+#define VGT_DEBUG_REG12__shifter_first_load__SHIFT 0x00000010
+#define VGT_DEBUG_REG12__di_state_sel_q__SHIFT 0x00000011
+#define VGT_DEBUG_REG12__shifter_waiting_for_first_load_q__SHIFT 0x00000012
+#define VGT_DEBUG_REG12__di_first_group_flag_q__SHIFT 0x00000013
+#define VGT_DEBUG_REG12__di_event_flag_q__SHIFT 0x00000014
+#define VGT_DEBUG_REG12__read_draw_initiator__SHIFT 0x00000015
+#define VGT_DEBUG_REG12__loading_di_requires_shifter__SHIFT 0x00000016
+#define VGT_DEBUG_REG12__last_shift_of_packet__SHIFT 0x00000017
+#define VGT_DEBUG_REG12__last_decr_of_packet__SHIFT 0x00000018
+#define VGT_DEBUG_REG12__extract_vector__SHIFT 0x00000019
+#define VGT_DEBUG_REG12__shift_vect_rtr__SHIFT 0x0000001a
+#define VGT_DEBUG_REG12__destination_rtr__SHIFT 0x0000001b
+#define VGT_DEBUG_REG12__bgrp_trigger__SHIFT 0x0000001c
+
+// VGT_DEBUG_REG13
+#define VGT_DEBUG_REG13__di_index_counter_q__SHIFT 0x00000000
+#define VGT_DEBUG_REG13__shift_amount_no_extract__SHIFT 0x00000010
+#define VGT_DEBUG_REG13__shift_amount_extract__SHIFT 0x00000014
+#define VGT_DEBUG_REG13__di_prim_type_q__SHIFT 0x00000018
+#define VGT_DEBUG_REG13__current_source_sel__SHIFT 0x0000001e
+
+// VGT_DEBUG_REG14
+#define VGT_DEBUG_REG14__current_source_sel__SHIFT 0x00000000
+#define VGT_DEBUG_REG14__left_word_indx_q__SHIFT 0x00000002
+#define VGT_DEBUG_REG14__input_data_cnt__SHIFT 0x00000007
+#define VGT_DEBUG_REG14__input_data_lsw__SHIFT 0x0000000c
+#define VGT_DEBUG_REG14__input_data_msw__SHIFT 0x00000011
+#define VGT_DEBUG_REG14__next_small_stride_shift_limit_q__SHIFT 0x00000016
+#define VGT_DEBUG_REG14__current_small_stride_shift_limit_q__SHIFT 0x0000001b
+
+// VGT_DEBUG_REG15
+#define VGT_DEBUG_REG15__next_stride_q__SHIFT 0x00000000
+#define VGT_DEBUG_REG15__next_stride_d__SHIFT 0x00000005
+#define VGT_DEBUG_REG15__current_shift_q__SHIFT 0x0000000a
+#define VGT_DEBUG_REG15__current_shift_d__SHIFT 0x0000000f
+#define VGT_DEBUG_REG15__current_stride_q__SHIFT 0x00000014
+#define VGT_DEBUG_REG15__current_stride_d__SHIFT 0x00000019
+#define VGT_DEBUG_REG15__bgrp_trigger__SHIFT 0x0000001e
+
+// VGT_DEBUG_REG16
+#define VGT_DEBUG_REG16__bgrp_cull_fetch_fifo_full__SHIFT 0x00000000
+#define VGT_DEBUG_REG16__bgrp_cull_fetch_fifo_empty__SHIFT 0x00000001
+#define VGT_DEBUG_REG16__dma_bgrp_cull_fetch_read__SHIFT 0x00000002
+#define VGT_DEBUG_REG16__bgrp_cull_fetch_fifo_we__SHIFT 0x00000003
+#define VGT_DEBUG_REG16__bgrp_byte_mask_fifo_full__SHIFT 0x00000004
+#define VGT_DEBUG_REG16__bgrp_byte_mask_fifo_empty__SHIFT 0x00000005
+#define VGT_DEBUG_REG16__bgrp_byte_mask_fifo_re_q__SHIFT 0x00000006
+#define VGT_DEBUG_REG16__bgrp_byte_mask_fifo_we__SHIFT 0x00000007
+#define VGT_DEBUG_REG16__bgrp_dma_mask_kill__SHIFT 0x00000008
+#define VGT_DEBUG_REG16__bgrp_grp_bin_valid__SHIFT 0x00000009
+#define VGT_DEBUG_REG16__rst_last_bit__SHIFT 0x0000000a
+#define VGT_DEBUG_REG16__current_state_q__SHIFT 0x0000000b
+#define VGT_DEBUG_REG16__old_state_q__SHIFT 0x0000000c
+#define VGT_DEBUG_REG16__old_state_en__SHIFT 0x0000000d
+#define VGT_DEBUG_REG16__prev_last_bit_q__SHIFT 0x0000000e
+#define VGT_DEBUG_REG16__dbl_last_bit_q__SHIFT 0x0000000f
+#define VGT_DEBUG_REG16__last_bit_block_q__SHIFT 0x00000010
+#define VGT_DEBUG_REG16__ast_bit_block2_q__SHIFT 0x00000011
+#define VGT_DEBUG_REG16__load_empty_reg__SHIFT 0x00000012
+#define VGT_DEBUG_REG16__bgrp_grp_byte_mask_rdata__SHIFT 0x00000013
+#define VGT_DEBUG_REG16__dma_bgrp_dma_data_fifo_rptr__SHIFT 0x0000001b
+#define VGT_DEBUG_REG16__top_di_pre_fetch_cull_enable__SHIFT 0x0000001d
+#define VGT_DEBUG_REG16__top_di_grp_cull_enable_q__SHIFT 0x0000001e
+#define VGT_DEBUG_REG16__bgrp_trigger__SHIFT 0x0000001f
+
+// VGT_DEBUG_REG17
+#define VGT_DEBUG_REG17__save_read_q__SHIFT 0x00000000
+#define VGT_DEBUG_REG17__extend_read_q__SHIFT 0x00000001
+#define VGT_DEBUG_REG17__grp_indx_size__SHIFT 0x00000002
+#define VGT_DEBUG_REG17__cull_prim_true__SHIFT 0x00000004
+#define VGT_DEBUG_REG17__reset_bit2_q__SHIFT 0x00000005
+#define VGT_DEBUG_REG17__reset_bit1_q__SHIFT 0x00000006
+#define VGT_DEBUG_REG17__first_reg_first_q__SHIFT 0x00000007
+#define VGT_DEBUG_REG17__check_second_reg__SHIFT 0x00000008
+#define VGT_DEBUG_REG17__check_first_reg__SHIFT 0x00000009
+#define VGT_DEBUG_REG17__bgrp_cull_fetch_fifo_wdata__SHIFT 0x0000000a
+#define VGT_DEBUG_REG17__save_cull_fetch_data2_q__SHIFT 0x0000000b
+#define VGT_DEBUG_REG17__save_cull_fetch_data1_q__SHIFT 0x0000000c
+#define VGT_DEBUG_REG17__save_byte_mask_data2_q__SHIFT 0x0000000d
+#define VGT_DEBUG_REG17__save_byte_mask_data1_q__SHIFT 0x0000000e
+#define VGT_DEBUG_REG17__to_second_reg_q__SHIFT 0x0000000f
+#define VGT_DEBUG_REG17__roll_over_msk_q__SHIFT 0x00000010
+#define VGT_DEBUG_REG17__max_msk_ptr_q__SHIFT 0x00000011
+#define VGT_DEBUG_REG17__min_msk_ptr_q__SHIFT 0x00000018
+#define VGT_DEBUG_REG17__bgrp_trigger__SHIFT 0x0000001f
+
+// VGT_DEBUG_REG18
+#define VGT_DEBUG_REG18__dma_data_fifo_mem_raddr__SHIFT 0x00000000
+#define VGT_DEBUG_REG18__dma_data_fifo_mem_waddr__SHIFT 0x00000006
+#define VGT_DEBUG_REG18__dma_bgrp_byte_mask_fifo_re__SHIFT 0x0000000c
+#define VGT_DEBUG_REG18__dma_bgrp_dma_data_fifo_rptr__SHIFT 0x0000000d
+#define VGT_DEBUG_REG18__dma_mem_full__SHIFT 0x0000000f
+#define VGT_DEBUG_REG18__dma_ram_re__SHIFT 0x00000010
+#define VGT_DEBUG_REG18__dma_ram_we__SHIFT 0x00000011
+#define VGT_DEBUG_REG18__dma_mem_empty__SHIFT 0x00000012
+#define VGT_DEBUG_REG18__dma_data_fifo_mem_re__SHIFT 0x00000013
+#define VGT_DEBUG_REG18__dma_data_fifo_mem_we__SHIFT 0x00000014
+#define VGT_DEBUG_REG18__bin_mem_full__SHIFT 0x00000015
+#define VGT_DEBUG_REG18__bin_ram_we__SHIFT 0x00000016
+#define VGT_DEBUG_REG18__bin_ram_re__SHIFT 0x00000017
+#define VGT_DEBUG_REG18__bin_mem_empty__SHIFT 0x00000018
+#define VGT_DEBUG_REG18__start_bin_req__SHIFT 0x00000019
+#define VGT_DEBUG_REG18__fetch_cull_not_used__SHIFT 0x0000001a
+#define VGT_DEBUG_REG18__dma_req_xfer__SHIFT 0x0000001b
+#define VGT_DEBUG_REG18__have_valid_bin_req__SHIFT 0x0000001c
+#define VGT_DEBUG_REG18__have_valid_dma_req__SHIFT 0x0000001d
+#define VGT_DEBUG_REG18__bgrp_dma_di_grp_cull_enable__SHIFT 0x0000001e
+#define VGT_DEBUG_REG18__bgrp_dma_di_pre_fetch_cull_enable__SHIFT 0x0000001f
+
+// VGT_DEBUG_REG20
+#define VGT_DEBUG_REG20__prim_side_indx_valid__SHIFT 0x00000000
+#define VGT_DEBUG_REG20__indx_side_fifo_empty__SHIFT 0x00000001
+#define VGT_DEBUG_REG20__indx_side_fifo_re__SHIFT 0x00000002
+#define VGT_DEBUG_REG20__indx_side_fifo_we__SHIFT 0x00000003
+#define VGT_DEBUG_REG20__indx_side_fifo_full__SHIFT 0x00000004
+#define VGT_DEBUG_REG20__prim_buffer_empty__SHIFT 0x00000005
+#define VGT_DEBUG_REG20__prim_buffer_re__SHIFT 0x00000006
+#define VGT_DEBUG_REG20__prim_buffer_we__SHIFT 0x00000007
+#define VGT_DEBUG_REG20__prim_buffer_full__SHIFT 0x00000008
+#define VGT_DEBUG_REG20__indx_buffer_empty__SHIFT 0x00000009
+#define VGT_DEBUG_REG20__indx_buffer_re__SHIFT 0x0000000a
+#define VGT_DEBUG_REG20__indx_buffer_we__SHIFT 0x0000000b
+#define VGT_DEBUG_REG20__indx_buffer_full__SHIFT 0x0000000c
+#define VGT_DEBUG_REG20__hold_prim__SHIFT 0x0000000d
+#define VGT_DEBUG_REG20__sent_cnt__SHIFT 0x0000000e
+#define VGT_DEBUG_REG20__start_of_vtx_vector__SHIFT 0x00000012
+#define VGT_DEBUG_REG20__clip_s_pre_hold_prim__SHIFT 0x00000013
+#define VGT_DEBUG_REG20__clip_p_pre_hold_prim__SHIFT 0x00000014
+#define VGT_DEBUG_REG20__buffered_prim_type_event__SHIFT 0x00000015
+#define VGT_DEBUG_REG20__out_trigger__SHIFT 0x0000001a
+
+// VGT_DEBUG_REG21
+#define VGT_DEBUG_REG21__null_terminate_vtx_vector__SHIFT 0x00000000
+#define VGT_DEBUG_REG21__prim_end_of_vtx_vect_flags__SHIFT 0x00000001
+#define VGT_DEBUG_REG21__alloc_counter_q__SHIFT 0x00000004
+#define VGT_DEBUG_REG21__curr_slot_in_vtx_vect_q__SHIFT 0x00000007
+#define VGT_DEBUG_REG21__int_vtx_counter_q__SHIFT 0x0000000a
+#define VGT_DEBUG_REG21__curr_dealloc_distance_q__SHIFT 0x0000000e
+#define VGT_DEBUG_REG21__new_packet_q__SHIFT 0x00000012
+#define VGT_DEBUG_REG21__new_allocate_q__SHIFT 0x00000013
+#define VGT_DEBUG_REG21__num_new_unique_rel_indx__SHIFT 0x00000014
+#define VGT_DEBUG_REG21__inserted_null_prim_q__SHIFT 0x00000016
+#define VGT_DEBUG_REG21__insert_null_prim__SHIFT 0x00000017
+#define VGT_DEBUG_REG21__buffered_prim_eop_mux__SHIFT 0x00000018
+#define VGT_DEBUG_REG21__prim_buffer_empty_mux__SHIFT 0x00000019
+#define VGT_DEBUG_REG21__buffered_thread_size__SHIFT 0x0000001a
+#define VGT_DEBUG_REG21__out_trigger__SHIFT 0x0000001f
+
+// VGT_CRC_SQ_DATA
+#define VGT_CRC_SQ_DATA__CRC__SHIFT 0x00000000
+
+// VGT_CRC_SQ_CTRL
+#define VGT_CRC_SQ_CTRL__CRC__SHIFT 0x00000000
+
+// VGT_PERFCOUNTER0_SELECT
+#define VGT_PERFCOUNTER0_SELECT__PERF_SEL__SHIFT 0x00000000
+
+// VGT_PERFCOUNTER1_SELECT
+#define VGT_PERFCOUNTER1_SELECT__PERF_SEL__SHIFT 0x00000000
+
+// VGT_PERFCOUNTER2_SELECT
+#define VGT_PERFCOUNTER2_SELECT__PERF_SEL__SHIFT 0x00000000
+
+// VGT_PERFCOUNTER3_SELECT
+#define VGT_PERFCOUNTER3_SELECT__PERF_SEL__SHIFT 0x00000000
+
+// VGT_PERFCOUNTER0_LOW
+#define VGT_PERFCOUNTER0_LOW__PERF_COUNT__SHIFT 0x00000000
+
+// VGT_PERFCOUNTER1_LOW
+#define VGT_PERFCOUNTER1_LOW__PERF_COUNT__SHIFT 0x00000000
+
+// VGT_PERFCOUNTER2_LOW
+#define VGT_PERFCOUNTER2_LOW__PERF_COUNT__SHIFT 0x00000000
+
+// VGT_PERFCOUNTER3_LOW
+#define VGT_PERFCOUNTER3_LOW__PERF_COUNT__SHIFT 0x00000000
+
+// VGT_PERFCOUNTER0_HI
+#define VGT_PERFCOUNTER0_HI__PERF_COUNT__SHIFT 0x00000000
+
+// VGT_PERFCOUNTER1_HI
+#define VGT_PERFCOUNTER1_HI__PERF_COUNT__SHIFT 0x00000000
+
+// VGT_PERFCOUNTER2_HI
+#define VGT_PERFCOUNTER2_HI__PERF_COUNT__SHIFT 0x00000000
+
+// VGT_PERFCOUNTER3_HI
+#define VGT_PERFCOUNTER3_HI__PERF_COUNT__SHIFT 0x00000000
+
+// TC_CNTL_STATUS
+#define TC_CNTL_STATUS__L2_INVALIDATE__SHIFT 0x00000000
+#define TC_CNTL_STATUS__TC_L2_HIT_MISS__SHIFT 0x00000012
+#define TC_CNTL_STATUS__TC_BUSY__SHIFT 0x0000001f
+
+// TCR_CHICKEN
+#define TCR_CHICKEN__SPARE__SHIFT 0x00000000
+
+// TCF_CHICKEN
+#define TCF_CHICKEN__SPARE__SHIFT 0x00000000
+
+// TCM_CHICKEN
+#define TCM_CHICKEN__TCO_READ_LATENCY_FIFO_PROG_DEPTH__SHIFT 0x00000000
+#define TCM_CHICKEN__ETC_COLOR_ENDIAN__SHIFT 0x00000008
+#define TCM_CHICKEN__SPARE__SHIFT 0x00000009
+
+// TCR_PERFCOUNTER0_SELECT
+#define TCR_PERFCOUNTER0_SELECT__PERFCOUNTER_SELECT__SHIFT 0x00000000
+
+// TCR_PERFCOUNTER1_SELECT
+#define TCR_PERFCOUNTER1_SELECT__PERFCOUNTER_SELECT__SHIFT 0x00000000
+
+// TCR_PERFCOUNTER0_HI
+#define TCR_PERFCOUNTER0_HI__PERFCOUNTER_HI__SHIFT 0x00000000
+
+// TCR_PERFCOUNTER1_HI
+#define TCR_PERFCOUNTER1_HI__PERFCOUNTER_HI__SHIFT 0x00000000
+
+// TCR_PERFCOUNTER0_LOW
+#define TCR_PERFCOUNTER0_LOW__PERFCOUNTER_LOW__SHIFT 0x00000000
+
+// TCR_PERFCOUNTER1_LOW
+#define TCR_PERFCOUNTER1_LOW__PERFCOUNTER_LOW__SHIFT 0x00000000
+
+// TP_TC_CLKGATE_CNTL
+#define TP_TC_CLKGATE_CNTL__TP_BUSY_EXTEND__SHIFT 0x00000000
+#define TP_TC_CLKGATE_CNTL__TC_BUSY_EXTEND__SHIFT 0x00000003
+
+// TPC_CNTL_STATUS
+#define TPC_CNTL_STATUS__TPC_INPUT_BUSY__SHIFT 0x00000000
+#define TPC_CNTL_STATUS__TPC_TC_FIFO_BUSY__SHIFT 0x00000001
+#define TPC_CNTL_STATUS__TPC_STATE_FIFO_BUSY__SHIFT 0x00000002
+#define TPC_CNTL_STATUS__TPC_FETCH_FIFO_BUSY__SHIFT 0x00000003
+#define TPC_CNTL_STATUS__TPC_WALKER_PIPE_BUSY__SHIFT 0x00000004
+#define TPC_CNTL_STATUS__TPC_WALK_FIFO_BUSY__SHIFT 0x00000005
+#define TPC_CNTL_STATUS__TPC_WALKER_BUSY__SHIFT 0x00000006
+#define TPC_CNTL_STATUS__TPC_ALIGNER_PIPE_BUSY__SHIFT 0x00000008
+#define TPC_CNTL_STATUS__TPC_ALIGN_FIFO_BUSY__SHIFT 0x00000009
+#define TPC_CNTL_STATUS__TPC_ALIGNER_BUSY__SHIFT 0x0000000a
+#define TPC_CNTL_STATUS__TPC_RR_FIFO_BUSY__SHIFT 0x0000000c
+#define TPC_CNTL_STATUS__TPC_BLEND_PIPE_BUSY__SHIFT 0x0000000d
+#define TPC_CNTL_STATUS__TPC_OUT_FIFO_BUSY__SHIFT 0x0000000e
+#define TPC_CNTL_STATUS__TPC_BLEND_BUSY__SHIFT 0x0000000f
+#define TPC_CNTL_STATUS__TF_TW_RTS__SHIFT 0x00000010
+#define TPC_CNTL_STATUS__TF_TW_STATE_RTS__SHIFT 0x00000011
+#define TPC_CNTL_STATUS__TF_TW_RTR__SHIFT 0x00000013
+#define TPC_CNTL_STATUS__TW_TA_RTS__SHIFT 0x00000014
+#define TPC_CNTL_STATUS__TW_TA_TT_RTS__SHIFT 0x00000015
+#define TPC_CNTL_STATUS__TW_TA_LAST_RTS__SHIFT 0x00000016
+#define TPC_CNTL_STATUS__TW_TA_RTR__SHIFT 0x00000017
+#define TPC_CNTL_STATUS__TA_TB_RTS__SHIFT 0x00000018
+#define TPC_CNTL_STATUS__TA_TB_TT_RTS__SHIFT 0x00000019
+#define TPC_CNTL_STATUS__TA_TB_RTR__SHIFT 0x0000001b
+#define TPC_CNTL_STATUS__TA_TF_RTS__SHIFT 0x0000001c
+#define TPC_CNTL_STATUS__TA_TF_TC_FIFO_REN__SHIFT 0x0000001d
+#define TPC_CNTL_STATUS__TP_SQ_DEC__SHIFT 0x0000001e
+#define TPC_CNTL_STATUS__TPC_BUSY__SHIFT 0x0000001f
+
+// TPC_DEBUG0
+#define TPC_DEBUG0__LOD_CNTL__SHIFT 0x00000000
+#define TPC_DEBUG0__IC_CTR__SHIFT 0x00000002
+#define TPC_DEBUG0__WALKER_CNTL__SHIFT 0x00000004
+#define TPC_DEBUG0__ALIGNER_CNTL__SHIFT 0x00000008
+#define TPC_DEBUG0__PREV_TC_STATE_VALID__SHIFT 0x0000000c
+#define TPC_DEBUG0__WALKER_STATE__SHIFT 0x00000010
+#define TPC_DEBUG0__ALIGNER_STATE__SHIFT 0x0000001a
+#define TPC_DEBUG0__REG_CLK_EN__SHIFT 0x0000001d
+#define TPC_DEBUG0__TPC_CLK_EN__SHIFT 0x0000001e
+#define TPC_DEBUG0__SQ_TP_WAKEUP__SHIFT 0x0000001f
+
+// TPC_DEBUG1
+#define TPC_DEBUG1__UNUSED__SHIFT 0x00000000
+
+// TPC_CHICKEN
+#define TPC_CHICKEN__BLEND_PRECISION__SHIFT 0x00000000
+#define TPC_CHICKEN__SPARE__SHIFT 0x00000001
+
+// TP0_CNTL_STATUS
+#define TP0_CNTL_STATUS__TP_INPUT_BUSY__SHIFT 0x00000000
+#define TP0_CNTL_STATUS__TP_LOD_BUSY__SHIFT 0x00000001
+#define TP0_CNTL_STATUS__TP_LOD_FIFO_BUSY__SHIFT 0x00000002
+#define TP0_CNTL_STATUS__TP_ADDR_BUSY__SHIFT 0x00000003
+#define TP0_CNTL_STATUS__TP_ALIGN_FIFO_BUSY__SHIFT 0x00000004
+#define TP0_CNTL_STATUS__TP_ALIGNER_BUSY__SHIFT 0x00000005
+#define TP0_CNTL_STATUS__TP_TC_FIFO_BUSY__SHIFT 0x00000006
+#define TP0_CNTL_STATUS__TP_RR_FIFO_BUSY__SHIFT 0x00000007
+#define TP0_CNTL_STATUS__TP_FETCH_BUSY__SHIFT 0x00000008
+#define TP0_CNTL_STATUS__TP_CH_BLEND_BUSY__SHIFT 0x00000009
+#define TP0_CNTL_STATUS__TP_TT_BUSY__SHIFT 0x0000000a
+#define TP0_CNTL_STATUS__TP_HICOLOR_BUSY__SHIFT 0x0000000b
+#define TP0_CNTL_STATUS__TP_BLEND_BUSY__SHIFT 0x0000000c
+#define TP0_CNTL_STATUS__TP_OUT_FIFO_BUSY__SHIFT 0x0000000d
+#define TP0_CNTL_STATUS__TP_OUTPUT_BUSY__SHIFT 0x0000000e
+#define TP0_CNTL_STATUS__IN_LC_RTS__SHIFT 0x00000010
+#define TP0_CNTL_STATUS__LC_LA_RTS__SHIFT 0x00000011
+#define TP0_CNTL_STATUS__LA_FL_RTS__SHIFT 0x00000012
+#define TP0_CNTL_STATUS__FL_TA_RTS__SHIFT 0x00000013
+#define TP0_CNTL_STATUS__TA_FA_RTS__SHIFT 0x00000014
+#define TP0_CNTL_STATUS__TA_FA_TT_RTS__SHIFT 0x00000015
+#define TP0_CNTL_STATUS__FA_AL_RTS__SHIFT 0x00000016
+#define TP0_CNTL_STATUS__FA_AL_TT_RTS__SHIFT 0x00000017
+#define TP0_CNTL_STATUS__AL_TF_RTS__SHIFT 0x00000018
+#define TP0_CNTL_STATUS__AL_TF_TT_RTS__SHIFT 0x00000019
+#define TP0_CNTL_STATUS__TF_TB_RTS__SHIFT 0x0000001a
+#define TP0_CNTL_STATUS__TF_TB_TT_RTS__SHIFT 0x0000001b
+#define TP0_CNTL_STATUS__TB_TT_RTS__SHIFT 0x0000001c
+#define TP0_CNTL_STATUS__TB_TT_TT_RESET__SHIFT 0x0000001d
+#define TP0_CNTL_STATUS__TB_TO_RTS__SHIFT 0x0000001e
+#define TP0_CNTL_STATUS__TP_BUSY__SHIFT 0x0000001f
+
+// TP0_DEBUG
+#define TP0_DEBUG__Q_LOD_CNTL__SHIFT 0x00000000
+#define TP0_DEBUG__Q_SQ_TP_WAKEUP__SHIFT 0x00000003
+#define TP0_DEBUG__FL_TA_ADDRESSER_CNTL__SHIFT 0x00000004
+#define TP0_DEBUG__REG_CLK_EN__SHIFT 0x00000015
+#define TP0_DEBUG__PERF_CLK_EN__SHIFT 0x00000016
+#define TP0_DEBUG__TP_CLK_EN__SHIFT 0x00000017
+#define TP0_DEBUG__Q_WALKER_CNTL__SHIFT 0x00000018
+#define TP0_DEBUG__Q_ALIGNER_CNTL__SHIFT 0x0000001c
+
+// TP0_CHICKEN
+#define TP0_CHICKEN__TT_MODE__SHIFT 0x00000000
+#define TP0_CHICKEN__VFETCH_ADDRESS_MODE__SHIFT 0x00000001
+#define TP0_CHICKEN__SPARE__SHIFT 0x00000002
+
+// TP0_PERFCOUNTER0_SELECT
+#define TP0_PERFCOUNTER0_SELECT__PERFCOUNTER_SELECT__SHIFT 0x00000000
+
+// TP0_PERFCOUNTER0_HI
+#define TP0_PERFCOUNTER0_HI__PERFCOUNTER_HI__SHIFT 0x00000000
+
+// TP0_PERFCOUNTER0_LOW
+#define TP0_PERFCOUNTER0_LOW__PERFCOUNTER_LOW__SHIFT 0x00000000
+
+// TP0_PERFCOUNTER1_SELECT
+#define TP0_PERFCOUNTER1_SELECT__PERFCOUNTER_SELECT__SHIFT 0x00000000
+
+// TP0_PERFCOUNTER1_HI
+#define TP0_PERFCOUNTER1_HI__PERFCOUNTER_HI__SHIFT 0x00000000
+
+// TP0_PERFCOUNTER1_LOW
+#define TP0_PERFCOUNTER1_LOW__PERFCOUNTER_LOW__SHIFT 0x00000000
+
+// TCM_PERFCOUNTER0_SELECT
+#define TCM_PERFCOUNTER0_SELECT__PERFCOUNTER_SELECT__SHIFT 0x00000000
+
+// TCM_PERFCOUNTER1_SELECT
+#define TCM_PERFCOUNTER1_SELECT__PERFCOUNTER_SELECT__SHIFT 0x00000000
+
+// TCM_PERFCOUNTER0_HI
+#define TCM_PERFCOUNTER0_HI__PERFCOUNTER_HI__SHIFT 0x00000000
+
+// TCM_PERFCOUNTER1_HI
+#define TCM_PERFCOUNTER1_HI__PERFCOUNTER_HI__SHIFT 0x00000000
+
+// TCM_PERFCOUNTER0_LOW
+#define TCM_PERFCOUNTER0_LOW__PERFCOUNTER_LOW__SHIFT 0x00000000
+
+// TCM_PERFCOUNTER1_LOW
+#define TCM_PERFCOUNTER1_LOW__PERFCOUNTER_LOW__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER0_SELECT
+#define TCF_PERFCOUNTER0_SELECT__PERFCOUNTER_SELECT__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER1_SELECT
+#define TCF_PERFCOUNTER1_SELECT__PERFCOUNTER_SELECT__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER2_SELECT
+#define TCF_PERFCOUNTER2_SELECT__PERFCOUNTER_SELECT__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER3_SELECT
+#define TCF_PERFCOUNTER3_SELECT__PERFCOUNTER_SELECT__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER4_SELECT
+#define TCF_PERFCOUNTER4_SELECT__PERFCOUNTER_SELECT__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER5_SELECT
+#define TCF_PERFCOUNTER5_SELECT__PERFCOUNTER_SELECT__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER6_SELECT
+#define TCF_PERFCOUNTER6_SELECT__PERFCOUNTER_SELECT__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER7_SELECT
+#define TCF_PERFCOUNTER7_SELECT__PERFCOUNTER_SELECT__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER8_SELECT
+#define TCF_PERFCOUNTER8_SELECT__PERFCOUNTER_SELECT__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER9_SELECT
+#define TCF_PERFCOUNTER9_SELECT__PERFCOUNTER_SELECT__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER10_SELECT
+#define TCF_PERFCOUNTER10_SELECT__PERFCOUNTER_SELECT__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER11_SELECT
+#define TCF_PERFCOUNTER11_SELECT__PERFCOUNTER_SELECT__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER0_HI
+#define TCF_PERFCOUNTER0_HI__PERFCOUNTER_HI__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER1_HI
+#define TCF_PERFCOUNTER1_HI__PERFCOUNTER_HI__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER2_HI
+#define TCF_PERFCOUNTER2_HI__PERFCOUNTER_HI__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER3_HI
+#define TCF_PERFCOUNTER3_HI__PERFCOUNTER_HI__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER4_HI
+#define TCF_PERFCOUNTER4_HI__PERFCOUNTER_HI__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER5_HI
+#define TCF_PERFCOUNTER5_HI__PERFCOUNTER_HI__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER6_HI
+#define TCF_PERFCOUNTER6_HI__PERFCOUNTER_HI__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER7_HI
+#define TCF_PERFCOUNTER7_HI__PERFCOUNTER_HI__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER8_HI
+#define TCF_PERFCOUNTER8_HI__PERFCOUNTER_HI__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER9_HI
+#define TCF_PERFCOUNTER9_HI__PERFCOUNTER_HI__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER10_HI
+#define TCF_PERFCOUNTER10_HI__PERFCOUNTER_HI__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER11_HI
+#define TCF_PERFCOUNTER11_HI__PERFCOUNTER_HI__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER0_LOW
+#define TCF_PERFCOUNTER0_LOW__PERFCOUNTER_LOW__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER1_LOW
+#define TCF_PERFCOUNTER1_LOW__PERFCOUNTER_LOW__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER2_LOW
+#define TCF_PERFCOUNTER2_LOW__PERFCOUNTER_LOW__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER3_LOW
+#define TCF_PERFCOUNTER3_LOW__PERFCOUNTER_LOW__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER4_LOW
+#define TCF_PERFCOUNTER4_LOW__PERFCOUNTER_LOW__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER5_LOW
+#define TCF_PERFCOUNTER5_LOW__PERFCOUNTER_LOW__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER6_LOW
+#define TCF_PERFCOUNTER6_LOW__PERFCOUNTER_LOW__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER7_LOW
+#define TCF_PERFCOUNTER7_LOW__PERFCOUNTER_LOW__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER8_LOW
+#define TCF_PERFCOUNTER8_LOW__PERFCOUNTER_LOW__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER9_LOW
+#define TCF_PERFCOUNTER9_LOW__PERFCOUNTER_LOW__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER10_LOW
+#define TCF_PERFCOUNTER10_LOW__PERFCOUNTER_LOW__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER11_LOW
+#define TCF_PERFCOUNTER11_LOW__PERFCOUNTER_LOW__SHIFT 0x00000000
+
+// TCF_DEBUG
+#define TCF_DEBUG__not_MH_TC_rtr__SHIFT 0x00000006
+#define TCF_DEBUG__TC_MH_send__SHIFT 0x00000007
+#define TCF_DEBUG__not_FG0_rtr__SHIFT 0x00000008
+#define TCF_DEBUG__not_TCB_TCO_rtr__SHIFT 0x0000000c
+#define TCF_DEBUG__TCB_ff_stall__SHIFT 0x0000000d
+#define TCF_DEBUG__TCB_miss_stall__SHIFT 0x0000000e
+#define TCF_DEBUG__TCA_TCB_stall__SHIFT 0x0000000f
+#define TCF_DEBUG__PF0_stall__SHIFT 0x00000010
+#define TCF_DEBUG__TP0_full__SHIFT 0x00000014
+#define TCF_DEBUG__TPC_full__SHIFT 0x00000018
+#define TCF_DEBUG__not_TPC_rtr__SHIFT 0x00000019
+#define TCF_DEBUG__tca_state_rts__SHIFT 0x0000001a
+#define TCF_DEBUG__tca_rts__SHIFT 0x0000001b
+
+// TCA_FIFO_DEBUG
+#define TCA_FIFO_DEBUG__tp0_full__SHIFT 0x00000000
+#define TCA_FIFO_DEBUG__tpc_full__SHIFT 0x00000004
+#define TCA_FIFO_DEBUG__load_tpc_fifo__SHIFT 0x00000005
+#define TCA_FIFO_DEBUG__load_tp_fifos__SHIFT 0x00000006
+#define TCA_FIFO_DEBUG__FW_full__SHIFT 0x00000007
+#define TCA_FIFO_DEBUG__not_FW_rtr0__SHIFT 0x00000008
+#define TCA_FIFO_DEBUG__FW_rts0__SHIFT 0x0000000c
+#define TCA_FIFO_DEBUG__not_FW_tpc_rtr__SHIFT 0x00000010
+#define TCA_FIFO_DEBUG__FW_tpc_rts__SHIFT 0x00000011
+
+// TCA_PROBE_DEBUG
+#define TCA_PROBE_DEBUG__ProbeFilter_stall__SHIFT 0x00000000
+
+// TCA_TPC_DEBUG
+#define TCA_TPC_DEBUG__captue_state_rts__SHIFT 0x0000000c
+#define TCA_TPC_DEBUG__capture_tca_rts__SHIFT 0x0000000d
+
+// TCB_CORE_DEBUG
+#define TCB_CORE_DEBUG__access512__SHIFT 0x00000000
+#define TCB_CORE_DEBUG__tiled__SHIFT 0x00000001
+#define TCB_CORE_DEBUG__opcode__SHIFT 0x00000004
+#define TCB_CORE_DEBUG__format__SHIFT 0x00000008
+#define TCB_CORE_DEBUG__sector_format__SHIFT 0x00000010
+#define TCB_CORE_DEBUG__sector_format512__SHIFT 0x00000018
+
+// TCB_TAG0_DEBUG
+#define TCB_TAG0_DEBUG__mem_read_cycle__SHIFT 0x00000000
+#define TCB_TAG0_DEBUG__tag_access_cycle__SHIFT 0x0000000c
+#define TCB_TAG0_DEBUG__miss_stall__SHIFT 0x00000017
+#define TCB_TAG0_DEBUG__num_feee_lines__SHIFT 0x00000018
+#define TCB_TAG0_DEBUG__max_misses__SHIFT 0x0000001d
+
+// TCB_TAG1_DEBUG
+#define TCB_TAG1_DEBUG__mem_read_cycle__SHIFT 0x00000000
+#define TCB_TAG1_DEBUG__tag_access_cycle__SHIFT 0x0000000c
+#define TCB_TAG1_DEBUG__miss_stall__SHIFT 0x00000017
+#define TCB_TAG1_DEBUG__num_feee_lines__SHIFT 0x00000018
+#define TCB_TAG1_DEBUG__max_misses__SHIFT 0x0000001d
+
+// TCB_TAG2_DEBUG
+#define TCB_TAG2_DEBUG__mem_read_cycle__SHIFT 0x00000000
+#define TCB_TAG2_DEBUG__tag_access_cycle__SHIFT 0x0000000c
+#define TCB_TAG2_DEBUG__miss_stall__SHIFT 0x00000017
+#define TCB_TAG2_DEBUG__num_feee_lines__SHIFT 0x00000018
+#define TCB_TAG2_DEBUG__max_misses__SHIFT 0x0000001d
+
+// TCB_TAG3_DEBUG
+#define TCB_TAG3_DEBUG__mem_read_cycle__SHIFT 0x00000000
+#define TCB_TAG3_DEBUG__tag_access_cycle__SHIFT 0x0000000c
+#define TCB_TAG3_DEBUG__miss_stall__SHIFT 0x00000017
+#define TCB_TAG3_DEBUG__num_feee_lines__SHIFT 0x00000018
+#define TCB_TAG3_DEBUG__max_misses__SHIFT 0x0000001d
+
+// TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__left_done__SHIFT 0x00000000
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__fg0_sends_left__SHIFT 0x00000002
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__one_sector_to_go_left_q__SHIFT 0x00000004
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__no_sectors_to_go__SHIFT 0x00000005
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__update_left__SHIFT 0x00000006
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__sector_mask_left_count_q__SHIFT 0x00000007
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__sector_mask_left_q__SHIFT 0x0000000c
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__valid_left_q__SHIFT 0x0000001c
+
+// TCB_FETCH_GEN_WALKER_DEBUG
+#define TCB_FETCH_GEN_WALKER_DEBUG__quad_sel_left__SHIFT 0x00000004
+#define TCB_FETCH_GEN_WALKER_DEBUG__set_sel_left__SHIFT 0x00000006
+#define TCB_FETCH_GEN_WALKER_DEBUG__right_eq_left__SHIFT 0x0000000b
+#define TCB_FETCH_GEN_WALKER_DEBUG__ff_fg_type512__SHIFT 0x0000000c
+#define TCB_FETCH_GEN_WALKER_DEBUG__busy__SHIFT 0x0000000f
+#define TCB_FETCH_GEN_WALKER_DEBUG__setquads_to_send__SHIFT 0x00000010
+
+// TCB_FETCH_GEN_PIPE0_DEBUG
+#define TCB_FETCH_GEN_PIPE0_DEBUG__tc0_arb_rts__SHIFT 0x00000000
+#define TCB_FETCH_GEN_PIPE0_DEBUG__ga_out_rts__SHIFT 0x00000002
+#define TCB_FETCH_GEN_PIPE0_DEBUG__tc_arb_format__SHIFT 0x00000004
+#define TCB_FETCH_GEN_PIPE0_DEBUG__tc_arb_fmsopcode__SHIFT 0x00000010
+#define TCB_FETCH_GEN_PIPE0_DEBUG__tc_arb_request_type__SHIFT 0x00000015
+#define TCB_FETCH_GEN_PIPE0_DEBUG__busy__SHIFT 0x00000017
+#define TCB_FETCH_GEN_PIPE0_DEBUG__fgo_busy__SHIFT 0x00000018
+#define TCB_FETCH_GEN_PIPE0_DEBUG__ga_busy__SHIFT 0x00000019
+#define TCB_FETCH_GEN_PIPE0_DEBUG__mc_sel_q__SHIFT 0x0000001a
+#define TCB_FETCH_GEN_PIPE0_DEBUG__valid_q__SHIFT 0x0000001c
+#define TCB_FETCH_GEN_PIPE0_DEBUG__arb_RTR__SHIFT 0x0000001e
+
+// TCD_INPUT0_DEBUG
+#define TCD_INPUT0_DEBUG__empty__SHIFT 0x00000010
+#define TCD_INPUT0_DEBUG__full__SHIFT 0x00000011
+#define TCD_INPUT0_DEBUG__valid_q1__SHIFT 0x00000014
+#define TCD_INPUT0_DEBUG__cnt_q1__SHIFT 0x00000015
+#define TCD_INPUT0_DEBUG__last_send_q1__SHIFT 0x00000017
+#define TCD_INPUT0_DEBUG__ip_send__SHIFT 0x00000018
+#define TCD_INPUT0_DEBUG__ipbuf_dxt_send__SHIFT 0x00000019
+#define TCD_INPUT0_DEBUG__ipbuf_busy__SHIFT 0x0000001a
+
+// TCD_DEGAMMA_DEBUG
+#define TCD_DEGAMMA_DEBUG__dgmm_ftfconv_dgmmen__SHIFT 0x00000000
+#define TCD_DEGAMMA_DEBUG__dgmm_ctrl_dgmm8__SHIFT 0x00000002
+#define TCD_DEGAMMA_DEBUG__dgmm_ctrl_last_send__SHIFT 0x00000003
+#define TCD_DEGAMMA_DEBUG__dgmm_ctrl_send__SHIFT 0x00000004
+#define TCD_DEGAMMA_DEBUG__dgmm_stall__SHIFT 0x00000005
+#define TCD_DEGAMMA_DEBUG__dgmm_pstate__SHIFT 0x00000006
+
+// TCD_DXTMUX_SCTARB_DEBUG
+#define TCD_DXTMUX_SCTARB_DEBUG__pstate__SHIFT 0x00000009
+#define TCD_DXTMUX_SCTARB_DEBUG__sctrmx_rtr__SHIFT 0x0000000a
+#define TCD_DXTMUX_SCTARB_DEBUG__dxtc_rtr__SHIFT 0x0000000b
+#define TCD_DXTMUX_SCTARB_DEBUG__sctrarb_multcyl_send__SHIFT 0x0000000f
+#define TCD_DXTMUX_SCTARB_DEBUG__sctrmx0_sctrarb_rts__SHIFT 0x00000010
+#define TCD_DXTMUX_SCTARB_DEBUG__dxtc_sctrarb_send__SHIFT 0x00000014
+#define TCD_DXTMUX_SCTARB_DEBUG__dxtc_dgmmpd_last_send__SHIFT 0x0000001b
+#define TCD_DXTMUX_SCTARB_DEBUG__dxtc_dgmmpd_send__SHIFT 0x0000001c
+#define TCD_DXTMUX_SCTARB_DEBUG__dcmp_mux_send__SHIFT 0x0000001d
+
+// TCD_DXTC_ARB_DEBUG
+#define TCD_DXTC_ARB_DEBUG__n0_stall__SHIFT 0x00000004
+#define TCD_DXTC_ARB_DEBUG__pstate__SHIFT 0x00000005
+#define TCD_DXTC_ARB_DEBUG__arb_dcmp01_last_send__SHIFT 0x00000006
+#define TCD_DXTC_ARB_DEBUG__arb_dcmp01_cnt__SHIFT 0x00000007
+#define TCD_DXTC_ARB_DEBUG__arb_dcmp01_sector__SHIFT 0x00000009
+#define TCD_DXTC_ARB_DEBUG__arb_dcmp01_cacheline__SHIFT 0x0000000c
+#define TCD_DXTC_ARB_DEBUG__arb_dcmp01_format__SHIFT 0x00000012
+#define TCD_DXTC_ARB_DEBUG__arb_dcmp01_send__SHIFT 0x0000001e
+#define TCD_DXTC_ARB_DEBUG__n0_dxt2_4_types__SHIFT 0x0000001f
+
+// TCD_STALLS_DEBUG
+#define TCD_STALLS_DEBUG__not_multcyl_sctrarb_rtr__SHIFT 0x0000000a
+#define TCD_STALLS_DEBUG__not_sctrmx0_sctrarb_rtr__SHIFT 0x0000000b
+#define TCD_STALLS_DEBUG__not_dcmp0_arb_rtr__SHIFT 0x00000011
+#define TCD_STALLS_DEBUG__not_dgmmpd_dxtc_rtr__SHIFT 0x00000012
+#define TCD_STALLS_DEBUG__not_mux_dcmp_rtr__SHIFT 0x00000013
+#define TCD_STALLS_DEBUG__not_incoming_rtr__SHIFT 0x0000001f
+
+// TCO_STALLS_DEBUG
+#define TCO_STALLS_DEBUG__quad0_sg_crd_RTR__SHIFT 0x00000005
+#define TCO_STALLS_DEBUG__quad0_rl_sg_RTR__SHIFT 0x00000006
+#define TCO_STALLS_DEBUG__quad0_TCO_TCB_rtr_d__SHIFT 0x00000007
+
+// TCO_QUAD0_DEBUG0
+#define TCO_QUAD0_DEBUG0__rl_sg_sector_format__SHIFT 0x00000000
+#define TCO_QUAD0_DEBUG0__rl_sg_end_of_sample__SHIFT 0x00000008
+#define TCO_QUAD0_DEBUG0__rl_sg_rtr__SHIFT 0x00000009
+#define TCO_QUAD0_DEBUG0__rl_sg_rts__SHIFT 0x0000000a
+#define TCO_QUAD0_DEBUG0__sg_crd_end_of_sample__SHIFT 0x0000000b
+#define TCO_QUAD0_DEBUG0__sg_crd_rtr__SHIFT 0x0000000c
+#define TCO_QUAD0_DEBUG0__sg_crd_rts__SHIFT 0x0000000d
+#define TCO_QUAD0_DEBUG0__stageN1_valid_q__SHIFT 0x00000010
+#define TCO_QUAD0_DEBUG0__read_cache_q__SHIFT 0x00000018
+#define TCO_QUAD0_DEBUG0__cache_read_RTR__SHIFT 0x00000019
+#define TCO_QUAD0_DEBUG0__all_sectors_written_set3__SHIFT 0x0000001a
+#define TCO_QUAD0_DEBUG0__all_sectors_written_set2__SHIFT 0x0000001b
+#define TCO_QUAD0_DEBUG0__all_sectors_written_set1__SHIFT 0x0000001c
+#define TCO_QUAD0_DEBUG0__all_sectors_written_set0__SHIFT 0x0000001d
+#define TCO_QUAD0_DEBUG0__busy__SHIFT 0x0000001e
+
+// TCO_QUAD0_DEBUG1
+#define TCO_QUAD0_DEBUG1__fifo_busy__SHIFT 0x00000000
+#define TCO_QUAD0_DEBUG1__empty__SHIFT 0x00000001
+#define TCO_QUAD0_DEBUG1__full__SHIFT 0x00000002
+#define TCO_QUAD0_DEBUG1__write_enable__SHIFT 0x00000003
+#define TCO_QUAD0_DEBUG1__fifo_write_ptr__SHIFT 0x00000004
+#define TCO_QUAD0_DEBUG1__fifo_read_ptr__SHIFT 0x0000000b
+#define TCO_QUAD0_DEBUG1__cache_read_busy__SHIFT 0x00000014
+#define TCO_QUAD0_DEBUG1__latency_fifo_busy__SHIFT 0x00000015
+#define TCO_QUAD0_DEBUG1__input_quad_busy__SHIFT 0x00000016
+#define TCO_QUAD0_DEBUG1__tco_quad_pipe_busy__SHIFT 0x00000017
+#define TCO_QUAD0_DEBUG1__TCB_TCO_rtr_d__SHIFT 0x00000018
+#define TCO_QUAD0_DEBUG1__TCB_TCO_xfc_q__SHIFT 0x00000019
+#define TCO_QUAD0_DEBUG1__rl_sg_rtr__SHIFT 0x0000001a
+#define TCO_QUAD0_DEBUG1__rl_sg_rts__SHIFT 0x0000001b
+#define TCO_QUAD0_DEBUG1__sg_crd_rtr__SHIFT 0x0000001c
+#define TCO_QUAD0_DEBUG1__sg_crd_rts__SHIFT 0x0000001d
+#define TCO_QUAD0_DEBUG1__TCO_TCB_read_xfc__SHIFT 0x0000001e
+
+// SQ_GPR_MANAGEMENT
+#define SQ_GPR_MANAGEMENT__REG_DYNAMIC__SHIFT 0x00000000
+#define SQ_GPR_MANAGEMENT__REG_SIZE_PIX__SHIFT 0x00000004
+#define SQ_GPR_MANAGEMENT__REG_SIZE_VTX__SHIFT 0x0000000c
+
+// SQ_FLOW_CONTROL
+#define SQ_FLOW_CONTROL__INPUT_ARBITRATION_POLICY__SHIFT 0x00000000
+#define SQ_FLOW_CONTROL__ONE_THREAD__SHIFT 0x00000004
+#define SQ_FLOW_CONTROL__ONE_ALU__SHIFT 0x00000008
+#define SQ_FLOW_CONTROL__CF_WR_BASE__SHIFT 0x0000000c
+#define SQ_FLOW_CONTROL__NO_PV_PS__SHIFT 0x00000010
+#define SQ_FLOW_CONTROL__NO_LOOP_EXIT__SHIFT 0x00000011
+#define SQ_FLOW_CONTROL__NO_CEXEC_OPTIMIZE__SHIFT 0x00000012
+#define SQ_FLOW_CONTROL__TEXTURE_ARBITRATION_POLICY__SHIFT 0x00000013
+#define SQ_FLOW_CONTROL__VC_ARBITRATION_POLICY__SHIFT 0x00000015
+#define SQ_FLOW_CONTROL__ALU_ARBITRATION_POLICY__SHIFT 0x00000016
+#define SQ_FLOW_CONTROL__NO_ARB_EJECT__SHIFT 0x00000017
+#define SQ_FLOW_CONTROL__NO_CFS_EJECT__SHIFT 0x00000018
+#define SQ_FLOW_CONTROL__POS_EXP_PRIORITY__SHIFT 0x00000019
+#define SQ_FLOW_CONTROL__NO_EARLY_THREAD_TERMINATION__SHIFT 0x0000001a
+#define SQ_FLOW_CONTROL__PS_PREFETCH_COLOR_ALLOC__SHIFT 0x0000001b
+
+// SQ_INST_STORE_MANAGMENT
+#define SQ_INST_STORE_MANAGMENT__INST_BASE_PIX__SHIFT 0x00000000
+#define SQ_INST_STORE_MANAGMENT__INST_BASE_VTX__SHIFT 0x00000010
+
+// SQ_RESOURCE_MANAGMENT
+#define SQ_RESOURCE_MANAGMENT__VTX_THREAD_BUF_ENTRIES__SHIFT 0x00000000
+#define SQ_RESOURCE_MANAGMENT__PIX_THREAD_BUF_ENTRIES__SHIFT 0x00000008
+#define SQ_RESOURCE_MANAGMENT__EXPORT_BUF_ENTRIES__SHIFT 0x00000010
+
+// SQ_EO_RT
+#define SQ_EO_RT__EO_CONSTANTS_RT__SHIFT 0x00000000
+#define SQ_EO_RT__EO_TSTATE_RT__SHIFT 0x00000010
+
+// SQ_DEBUG_MISC
+#define SQ_DEBUG_MISC__DB_ALUCST_SIZE__SHIFT 0x00000000
+#define SQ_DEBUG_MISC__DB_TSTATE_SIZE__SHIFT 0x0000000c
+#define SQ_DEBUG_MISC__DB_READ_CTX__SHIFT 0x00000014
+#define SQ_DEBUG_MISC__RESERVED__SHIFT 0x00000015
+#define SQ_DEBUG_MISC__DB_READ_MEMORY__SHIFT 0x00000017
+#define SQ_DEBUG_MISC__DB_WEN_MEMORY_0__SHIFT 0x00000019
+#define SQ_DEBUG_MISC__DB_WEN_MEMORY_1__SHIFT 0x0000001a
+#define SQ_DEBUG_MISC__DB_WEN_MEMORY_2__SHIFT 0x0000001b
+#define SQ_DEBUG_MISC__DB_WEN_MEMORY_3__SHIFT 0x0000001c
+
+// SQ_ACTIVITY_METER_CNTL
+#define SQ_ACTIVITY_METER_CNTL__TIMEBASE__SHIFT 0x00000000
+#define SQ_ACTIVITY_METER_CNTL__THRESHOLD_LOW__SHIFT 0x00000008
+#define SQ_ACTIVITY_METER_CNTL__THRESHOLD_HIGH__SHIFT 0x00000010
+#define SQ_ACTIVITY_METER_CNTL__SPARE__SHIFT 0x00000018
+
+// SQ_ACTIVITY_METER_STATUS
+#define SQ_ACTIVITY_METER_STATUS__PERCENT_BUSY__SHIFT 0x00000000
+
+// SQ_INPUT_ARB_PRIORITY
+#define SQ_INPUT_ARB_PRIORITY__PC_AVAIL_WEIGHT__SHIFT 0x00000000
+#define SQ_INPUT_ARB_PRIORITY__PC_AVAIL_SIGN__SHIFT 0x00000003
+#define SQ_INPUT_ARB_PRIORITY__SX_AVAIL_WEIGHT__SHIFT 0x00000004
+#define SQ_INPUT_ARB_PRIORITY__SX_AVAIL_SIGN__SHIFT 0x00000007
+#define SQ_INPUT_ARB_PRIORITY__THRESHOLD__SHIFT 0x00000008
+
+// SQ_THREAD_ARB_PRIORITY
+#define SQ_THREAD_ARB_PRIORITY__PC_AVAIL_WEIGHT__SHIFT 0x00000000
+#define SQ_THREAD_ARB_PRIORITY__PC_AVAIL_SIGN__SHIFT 0x00000003
+#define SQ_THREAD_ARB_PRIORITY__SX_AVAIL_WEIGHT__SHIFT 0x00000004
+#define SQ_THREAD_ARB_PRIORITY__SX_AVAIL_SIGN__SHIFT 0x00000007
+#define SQ_THREAD_ARB_PRIORITY__THRESHOLD__SHIFT 0x00000008
+#define SQ_THREAD_ARB_PRIORITY__RESERVED__SHIFT 0x00000012
+#define SQ_THREAD_ARB_PRIORITY__VS_PRIORITIZE_SERIAL__SHIFT 0x00000014
+#define SQ_THREAD_ARB_PRIORITY__PS_PRIORITIZE_SERIAL__SHIFT 0x00000015
+#define SQ_THREAD_ARB_PRIORITY__USE_SERIAL_COUNT_THRESHOLD__SHIFT 0x00000016
+
+// SQ_VS_WATCHDOG_TIMER
+#define SQ_VS_WATCHDOG_TIMER__ENABLE__SHIFT 0x00000000
+#define SQ_VS_WATCHDOG_TIMER__TIMEOUT_COUNT__SHIFT 0x00000001
+
+// SQ_PS_WATCHDOG_TIMER
+#define SQ_PS_WATCHDOG_TIMER__ENABLE__SHIFT 0x00000000
+#define SQ_PS_WATCHDOG_TIMER__TIMEOUT_COUNT__SHIFT 0x00000001
+
+// SQ_INT_CNTL
+#define SQ_INT_CNTL__PS_WATCHDOG_MASK__SHIFT 0x00000000
+#define SQ_INT_CNTL__VS_WATCHDOG_MASK__SHIFT 0x00000001
+
+// SQ_INT_STATUS
+#define SQ_INT_STATUS__PS_WATCHDOG_TIMEOUT__SHIFT 0x00000000
+#define SQ_INT_STATUS__VS_WATCHDOG_TIMEOUT__SHIFT 0x00000001
+
+// SQ_INT_ACK
+#define SQ_INT_ACK__PS_WATCHDOG_ACK__SHIFT 0x00000000
+#define SQ_INT_ACK__VS_WATCHDOG_ACK__SHIFT 0x00000001
+
+// SQ_DEBUG_INPUT_FSM
+#define SQ_DEBUG_INPUT_FSM__VC_VSR_LD__SHIFT 0x00000000
+#define SQ_DEBUG_INPUT_FSM__RESERVED__SHIFT 0x00000003
+#define SQ_DEBUG_INPUT_FSM__VC_GPR_LD__SHIFT 0x00000004
+#define SQ_DEBUG_INPUT_FSM__PC_PISM__SHIFT 0x00000008
+#define SQ_DEBUG_INPUT_FSM__RESERVED1__SHIFT 0x0000000b
+#define SQ_DEBUG_INPUT_FSM__PC_AS__SHIFT 0x0000000c
+#define SQ_DEBUG_INPUT_FSM__PC_INTERP_CNT__SHIFT 0x0000000f
+#define SQ_DEBUG_INPUT_FSM__PC_GPR_SIZE__SHIFT 0x00000014
+
+// SQ_DEBUG_CONST_MGR_FSM
+#define SQ_DEBUG_CONST_MGR_FSM__TEX_CONST_EVENT_STATE__SHIFT 0x00000000
+#define SQ_DEBUG_CONST_MGR_FSM__RESERVED1__SHIFT 0x00000005
+#define SQ_DEBUG_CONST_MGR_FSM__ALU_CONST_EVENT_STATE__SHIFT 0x00000008
+#define SQ_DEBUG_CONST_MGR_FSM__RESERVED2__SHIFT 0x0000000d
+#define SQ_DEBUG_CONST_MGR_FSM__ALU_CONST_CNTX_VALID__SHIFT 0x00000010
+#define SQ_DEBUG_CONST_MGR_FSM__TEX_CONST_CNTX_VALID__SHIFT 0x00000012
+#define SQ_DEBUG_CONST_MGR_FSM__CNTX0_VTX_EVENT_DONE__SHIFT 0x00000014
+#define SQ_DEBUG_CONST_MGR_FSM__CNTX0_PIX_EVENT_DONE__SHIFT 0x00000015
+#define SQ_DEBUG_CONST_MGR_FSM__CNTX1_VTX_EVENT_DONE__SHIFT 0x00000016
+#define SQ_DEBUG_CONST_MGR_FSM__CNTX1_PIX_EVENT_DONE__SHIFT 0x00000017
+
+// SQ_DEBUG_TP_FSM
+#define SQ_DEBUG_TP_FSM__EX_TP__SHIFT 0x00000000
+#define SQ_DEBUG_TP_FSM__RESERVED0__SHIFT 0x00000003
+#define SQ_DEBUG_TP_FSM__CF_TP__SHIFT 0x00000004
+#define SQ_DEBUG_TP_FSM__IF_TP__SHIFT 0x00000008
+#define SQ_DEBUG_TP_FSM__RESERVED1__SHIFT 0x0000000b
+#define SQ_DEBUG_TP_FSM__TIS_TP__SHIFT 0x0000000c
+#define SQ_DEBUG_TP_FSM__RESERVED2__SHIFT 0x0000000e
+#define SQ_DEBUG_TP_FSM__GS_TP__SHIFT 0x00000010
+#define SQ_DEBUG_TP_FSM__RESERVED3__SHIFT 0x00000012
+#define SQ_DEBUG_TP_FSM__FCR_TP__SHIFT 0x00000014
+#define SQ_DEBUG_TP_FSM__RESERVED4__SHIFT 0x00000016
+#define SQ_DEBUG_TP_FSM__FCS_TP__SHIFT 0x00000018
+#define SQ_DEBUG_TP_FSM__RESERVED5__SHIFT 0x0000001a
+#define SQ_DEBUG_TP_FSM__ARB_TR_TP__SHIFT 0x0000001c
+
+// SQ_DEBUG_FSM_ALU_0
+#define SQ_DEBUG_FSM_ALU_0__EX_ALU_0__SHIFT 0x00000000
+#define SQ_DEBUG_FSM_ALU_0__RESERVED0__SHIFT 0x00000003
+#define SQ_DEBUG_FSM_ALU_0__CF_ALU_0__SHIFT 0x00000004
+#define SQ_DEBUG_FSM_ALU_0__IF_ALU_0__SHIFT 0x00000008
+#define SQ_DEBUG_FSM_ALU_0__RESERVED1__SHIFT 0x0000000b
+#define SQ_DEBUG_FSM_ALU_0__DU1_ALU_0__SHIFT 0x0000000c
+#define SQ_DEBUG_FSM_ALU_0__RESERVED2__SHIFT 0x0000000f
+#define SQ_DEBUG_FSM_ALU_0__DU0_ALU_0__SHIFT 0x00000010
+#define SQ_DEBUG_FSM_ALU_0__RESERVED3__SHIFT 0x00000013
+#define SQ_DEBUG_FSM_ALU_0__AIS_ALU_0__SHIFT 0x00000014
+#define SQ_DEBUG_FSM_ALU_0__RESERVED4__SHIFT 0x00000017
+#define SQ_DEBUG_FSM_ALU_0__ACS_ALU_0__SHIFT 0x00000018
+#define SQ_DEBUG_FSM_ALU_0__RESERVED5__SHIFT 0x0000001b
+#define SQ_DEBUG_FSM_ALU_0__ARB_TR_ALU__SHIFT 0x0000001c
+
+// SQ_DEBUG_FSM_ALU_1
+#define SQ_DEBUG_FSM_ALU_1__EX_ALU_0__SHIFT 0x00000000
+#define SQ_DEBUG_FSM_ALU_1__RESERVED0__SHIFT 0x00000003
+#define SQ_DEBUG_FSM_ALU_1__CF_ALU_0__SHIFT 0x00000004
+#define SQ_DEBUG_FSM_ALU_1__IF_ALU_0__SHIFT 0x00000008
+#define SQ_DEBUG_FSM_ALU_1__RESERVED1__SHIFT 0x0000000b
+#define SQ_DEBUG_FSM_ALU_1__DU1_ALU_0__SHIFT 0x0000000c
+#define SQ_DEBUG_FSM_ALU_1__RESERVED2__SHIFT 0x0000000f
+#define SQ_DEBUG_FSM_ALU_1__DU0_ALU_0__SHIFT 0x00000010
+#define SQ_DEBUG_FSM_ALU_1__RESERVED3__SHIFT 0x00000013
+#define SQ_DEBUG_FSM_ALU_1__AIS_ALU_0__SHIFT 0x00000014
+#define SQ_DEBUG_FSM_ALU_1__RESERVED4__SHIFT 0x00000017
+#define SQ_DEBUG_FSM_ALU_1__ACS_ALU_0__SHIFT 0x00000018
+#define SQ_DEBUG_FSM_ALU_1__RESERVED5__SHIFT 0x0000001b
+#define SQ_DEBUG_FSM_ALU_1__ARB_TR_ALU__SHIFT 0x0000001c
+
+// SQ_DEBUG_EXP_ALLOC
+#define SQ_DEBUG_EXP_ALLOC__POS_BUF_AVAIL__SHIFT 0x00000000
+#define SQ_DEBUG_EXP_ALLOC__COLOR_BUF_AVAIL__SHIFT 0x00000004
+#define SQ_DEBUG_EXP_ALLOC__EA_BUF_AVAIL__SHIFT 0x0000000c
+#define SQ_DEBUG_EXP_ALLOC__RESERVED__SHIFT 0x0000000f
+#define SQ_DEBUG_EXP_ALLOC__ALLOC_TBL_BUF_AVAIL__SHIFT 0x00000010
+
+// SQ_DEBUG_PTR_BUFF
+#define SQ_DEBUG_PTR_BUFF__END_OF_BUFFER__SHIFT 0x00000000
+#define SQ_DEBUG_PTR_BUFF__DEALLOC_CNT__SHIFT 0x00000001
+#define SQ_DEBUG_PTR_BUFF__QUAL_NEW_VECTOR__SHIFT 0x00000005
+#define SQ_DEBUG_PTR_BUFF__EVENT_CONTEXT_ID__SHIFT 0x00000006
+#define SQ_DEBUG_PTR_BUFF__SC_EVENT_ID__SHIFT 0x00000009
+#define SQ_DEBUG_PTR_BUFF__QUAL_EVENT__SHIFT 0x0000000e
+#define SQ_DEBUG_PTR_BUFF__PRIM_TYPE_POLYGON__SHIFT 0x0000000f
+#define SQ_DEBUG_PTR_BUFF__EF_EMPTY__SHIFT 0x00000010
+#define SQ_DEBUG_PTR_BUFF__VTX_SYNC_CNT__SHIFT 0x00000011
+
+// SQ_DEBUG_GPR_VTX
+#define SQ_DEBUG_GPR_VTX__VTX_TAIL_PTR__SHIFT 0x00000000
+#define SQ_DEBUG_GPR_VTX__RESERVED__SHIFT 0x00000007
+#define SQ_DEBUG_GPR_VTX__VTX_HEAD_PTR__SHIFT 0x00000008
+#define SQ_DEBUG_GPR_VTX__RESERVED1__SHIFT 0x0000000f
+#define SQ_DEBUG_GPR_VTX__VTX_MAX__SHIFT 0x00000010
+#define SQ_DEBUG_GPR_VTX__RESERVED2__SHIFT 0x00000017
+#define SQ_DEBUG_GPR_VTX__VTX_FREE__SHIFT 0x00000018
+
+// SQ_DEBUG_GPR_PIX
+#define SQ_DEBUG_GPR_PIX__PIX_TAIL_PTR__SHIFT 0x00000000
+#define SQ_DEBUG_GPR_PIX__RESERVED__SHIFT 0x00000007
+#define SQ_DEBUG_GPR_PIX__PIX_HEAD_PTR__SHIFT 0x00000008
+#define SQ_DEBUG_GPR_PIX__RESERVED1__SHIFT 0x0000000f
+#define SQ_DEBUG_GPR_PIX__PIX_MAX__SHIFT 0x00000010
+#define SQ_DEBUG_GPR_PIX__RESERVED2__SHIFT 0x00000017
+#define SQ_DEBUG_GPR_PIX__PIX_FREE__SHIFT 0x00000018
+
+// SQ_DEBUG_TB_STATUS_SEL
+#define SQ_DEBUG_TB_STATUS_SEL__VTX_TB_STATUS_REG_SEL__SHIFT 0x00000000
+#define SQ_DEBUG_TB_STATUS_SEL__VTX_TB_STATE_MEM_DW_SEL__SHIFT 0x00000004
+#define SQ_DEBUG_TB_STATUS_SEL__VTX_TB_STATE_MEM_RD_ADDR__SHIFT 0x00000007
+#define SQ_DEBUG_TB_STATUS_SEL__VTX_TB_STATE_MEM_RD_EN__SHIFT 0x0000000b
+#define SQ_DEBUG_TB_STATUS_SEL__PIX_TB_STATE_MEM_RD_EN__SHIFT 0x0000000c
+#define SQ_DEBUG_TB_STATUS_SEL__DEBUG_BUS_TRIGGER_SEL__SHIFT 0x0000000e
+#define SQ_DEBUG_TB_STATUS_SEL__PIX_TB_STATUS_REG_SEL__SHIFT 0x00000010
+#define SQ_DEBUG_TB_STATUS_SEL__PIX_TB_STATE_MEM_DW_SEL__SHIFT 0x00000014
+#define SQ_DEBUG_TB_STATUS_SEL__PIX_TB_STATE_MEM_RD_ADDR__SHIFT 0x00000017
+#define SQ_DEBUG_TB_STATUS_SEL__VC_THREAD_BUF_DLY__SHIFT 0x0000001d
+#define SQ_DEBUG_TB_STATUS_SEL__DISABLE_STRICT_CTX_SYNC__SHIFT 0x0000001f
+
+// SQ_DEBUG_VTX_TB_0
+#define SQ_DEBUG_VTX_TB_0__VTX_HEAD_PTR_Q__SHIFT 0x00000000
+#define SQ_DEBUG_VTX_TB_0__TAIL_PTR_Q__SHIFT 0x00000004
+#define SQ_DEBUG_VTX_TB_0__FULL_CNT_Q__SHIFT 0x00000008
+#define SQ_DEBUG_VTX_TB_0__NXT_POS_ALLOC_CNT__SHIFT 0x0000000c
+#define SQ_DEBUG_VTX_TB_0__NXT_PC_ALLOC_CNT__SHIFT 0x00000010
+#define SQ_DEBUG_VTX_TB_0__SX_EVENT_FULL__SHIFT 0x00000014
+#define SQ_DEBUG_VTX_TB_0__BUSY_Q__SHIFT 0x00000015
+
+// SQ_DEBUG_VTX_TB_1
+#define SQ_DEBUG_VTX_TB_1__VS_DONE_PTR__SHIFT 0x00000000
+
+// SQ_DEBUG_VTX_TB_STATUS_REG
+#define SQ_DEBUG_VTX_TB_STATUS_REG__VS_STATUS_REG__SHIFT 0x00000000
+
+// SQ_DEBUG_VTX_TB_STATE_MEM
+#define SQ_DEBUG_VTX_TB_STATE_MEM__VS_STATE_MEM__SHIFT 0x00000000
+
+// SQ_DEBUG_PIX_TB_0
+#define SQ_DEBUG_PIX_TB_0__PIX_HEAD_PTR__SHIFT 0x00000000
+#define SQ_DEBUG_PIX_TB_0__TAIL_PTR__SHIFT 0x00000006
+#define SQ_DEBUG_PIX_TB_0__FULL_CNT__SHIFT 0x0000000c
+#define SQ_DEBUG_PIX_TB_0__NXT_PIX_ALLOC_CNT__SHIFT 0x00000013
+#define SQ_DEBUG_PIX_TB_0__NXT_PIX_EXP_CNT__SHIFT 0x00000019
+#define SQ_DEBUG_PIX_TB_0__BUSY__SHIFT 0x0000001f
+
+// SQ_DEBUG_PIX_TB_STATUS_REG_0
+#define SQ_DEBUG_PIX_TB_STATUS_REG_0__PIX_TB_STATUS_REG_0__SHIFT 0x00000000
+
+// SQ_DEBUG_PIX_TB_STATUS_REG_1
+#define SQ_DEBUG_PIX_TB_STATUS_REG_1__PIX_TB_STATUS_REG_1__SHIFT 0x00000000
+
+// SQ_DEBUG_PIX_TB_STATUS_REG_2
+#define SQ_DEBUG_PIX_TB_STATUS_REG_2__PIX_TB_STATUS_REG_2__SHIFT 0x00000000
+
+// SQ_DEBUG_PIX_TB_STATUS_REG_3
+#define SQ_DEBUG_PIX_TB_STATUS_REG_3__PIX_TB_STATUS_REG_3__SHIFT 0x00000000
+
+// SQ_DEBUG_PIX_TB_STATE_MEM
+#define SQ_DEBUG_PIX_TB_STATE_MEM__PIX_TB_STATE_MEM__SHIFT 0x00000000
+
+// SQ_PERFCOUNTER0_SELECT
+#define SQ_PERFCOUNTER0_SELECT__PERF_SEL__SHIFT 0x00000000
+
+// SQ_PERFCOUNTER1_SELECT
+#define SQ_PERFCOUNTER1_SELECT__PERF_SEL__SHIFT 0x00000000
+
+// SQ_PERFCOUNTER2_SELECT
+#define SQ_PERFCOUNTER2_SELECT__PERF_SEL__SHIFT 0x00000000
+
+// SQ_PERFCOUNTER3_SELECT
+#define SQ_PERFCOUNTER3_SELECT__PERF_SEL__SHIFT 0x00000000
+
+// SQ_PERFCOUNTER0_LOW
+#define SQ_PERFCOUNTER0_LOW__PERF_COUNT__SHIFT 0x00000000
+
+// SQ_PERFCOUNTER0_HI
+#define SQ_PERFCOUNTER0_HI__PERF_COUNT__SHIFT 0x00000000
+
+// SQ_PERFCOUNTER1_LOW
+#define SQ_PERFCOUNTER1_LOW__PERF_COUNT__SHIFT 0x00000000
+
+// SQ_PERFCOUNTER1_HI
+#define SQ_PERFCOUNTER1_HI__PERF_COUNT__SHIFT 0x00000000
+
+// SQ_PERFCOUNTER2_LOW
+#define SQ_PERFCOUNTER2_LOW__PERF_COUNT__SHIFT 0x00000000
+
+// SQ_PERFCOUNTER2_HI
+#define SQ_PERFCOUNTER2_HI__PERF_COUNT__SHIFT 0x00000000
+
+// SQ_PERFCOUNTER3_LOW
+#define SQ_PERFCOUNTER3_LOW__PERF_COUNT__SHIFT 0x00000000
+
+// SQ_PERFCOUNTER3_HI
+#define SQ_PERFCOUNTER3_HI__PERF_COUNT__SHIFT 0x00000000
+
+// SX_PERFCOUNTER0_SELECT
+#define SX_PERFCOUNTER0_SELECT__PERF_SEL__SHIFT 0x00000000
+
+// SX_PERFCOUNTER0_LOW
+#define SX_PERFCOUNTER0_LOW__PERF_COUNT__SHIFT 0x00000000
+
+// SX_PERFCOUNTER0_HI
+#define SX_PERFCOUNTER0_HI__PERF_COUNT__SHIFT 0x00000000
+
+// SQ_INSTRUCTION_ALU_0
+#define SQ_INSTRUCTION_ALU_0__VECTOR_RESULT__SHIFT 0x00000000
+#define SQ_INSTRUCTION_ALU_0__VECTOR_DST_REL__SHIFT 0x00000006
+#define SQ_INSTRUCTION_ALU_0__LOW_PRECISION_16B_FP__SHIFT 0x00000007
+#define SQ_INSTRUCTION_ALU_0__SCALAR_RESULT__SHIFT 0x00000008
+#define SQ_INSTRUCTION_ALU_0__SCALAR_DST_REL__SHIFT 0x0000000e
+#define SQ_INSTRUCTION_ALU_0__EXPORT_DATA__SHIFT 0x0000000f
+#define SQ_INSTRUCTION_ALU_0__VECTOR_WRT_MSK__SHIFT 0x00000010
+#define SQ_INSTRUCTION_ALU_0__SCALAR_WRT_MSK__SHIFT 0x00000014
+#define SQ_INSTRUCTION_ALU_0__VECTOR_CLAMP__SHIFT 0x00000018
+#define SQ_INSTRUCTION_ALU_0__SCALAR_CLAMP__SHIFT 0x00000019
+#define SQ_INSTRUCTION_ALU_0__SCALAR_OPCODE__SHIFT 0x0000001a
+
+// SQ_INSTRUCTION_ALU_1
+#define SQ_INSTRUCTION_ALU_1__SRC_C_SWIZZLE_R__SHIFT 0x00000000
+#define SQ_INSTRUCTION_ALU_1__SRC_C_SWIZZLE_G__SHIFT 0x00000002
+#define SQ_INSTRUCTION_ALU_1__SRC_C_SWIZZLE_B__SHIFT 0x00000004
+#define SQ_INSTRUCTION_ALU_1__SRC_C_SWIZZLE_A__SHIFT 0x00000006
+#define SQ_INSTRUCTION_ALU_1__SRC_B_SWIZZLE_R__SHIFT 0x00000008
+#define SQ_INSTRUCTION_ALU_1__SRC_B_SWIZZLE_G__SHIFT 0x0000000a
+#define SQ_INSTRUCTION_ALU_1__SRC_B_SWIZZLE_B__SHIFT 0x0000000c
+#define SQ_INSTRUCTION_ALU_1__SRC_B_SWIZZLE_A__SHIFT 0x0000000e
+#define SQ_INSTRUCTION_ALU_1__SRC_A_SWIZZLE_R__SHIFT 0x00000010
+#define SQ_INSTRUCTION_ALU_1__SRC_A_SWIZZLE_G__SHIFT 0x00000012
+#define SQ_INSTRUCTION_ALU_1__SRC_A_SWIZZLE_B__SHIFT 0x00000014
+#define SQ_INSTRUCTION_ALU_1__SRC_A_SWIZZLE_A__SHIFT 0x00000016
+#define SQ_INSTRUCTION_ALU_1__SRC_C_ARG_MOD__SHIFT 0x00000018
+#define SQ_INSTRUCTION_ALU_1__SRC_B_ARG_MOD__SHIFT 0x00000019
+#define SQ_INSTRUCTION_ALU_1__SRC_A_ARG_MOD__SHIFT 0x0000001a
+#define SQ_INSTRUCTION_ALU_1__PRED_SELECT__SHIFT 0x0000001b
+#define SQ_INSTRUCTION_ALU_1__RELATIVE_ADDR__SHIFT 0x0000001d
+#define SQ_INSTRUCTION_ALU_1__CONST_1_REL_ABS__SHIFT 0x0000001e
+#define SQ_INSTRUCTION_ALU_1__CONST_0_REL_ABS__SHIFT 0x0000001f
+
+// SQ_INSTRUCTION_ALU_2
+#define SQ_INSTRUCTION_ALU_2__SRC_C_REG_PTR__SHIFT 0x00000000
+#define SQ_INSTRUCTION_ALU_2__REG_SELECT_C__SHIFT 0x00000006
+#define SQ_INSTRUCTION_ALU_2__REG_ABS_MOD_C__SHIFT 0x00000007
+#define SQ_INSTRUCTION_ALU_2__SRC_B_REG_PTR__SHIFT 0x00000008
+#define SQ_INSTRUCTION_ALU_2__REG_SELECT_B__SHIFT 0x0000000e
+#define SQ_INSTRUCTION_ALU_2__REG_ABS_MOD_B__SHIFT 0x0000000f
+#define SQ_INSTRUCTION_ALU_2__SRC_A_REG_PTR__SHIFT 0x00000010
+#define SQ_INSTRUCTION_ALU_2__REG_SELECT_A__SHIFT 0x00000016
+#define SQ_INSTRUCTION_ALU_2__REG_ABS_MOD_A__SHIFT 0x00000017
+#define SQ_INSTRUCTION_ALU_2__VECTOR_OPCODE__SHIFT 0x00000018
+#define SQ_INSTRUCTION_ALU_2__SRC_C_SEL__SHIFT 0x0000001d
+#define SQ_INSTRUCTION_ALU_2__SRC_B_SEL__SHIFT 0x0000001e
+#define SQ_INSTRUCTION_ALU_2__SRC_A_SEL__SHIFT 0x0000001f
+
+// SQ_INSTRUCTION_CF_EXEC_0
+#define SQ_INSTRUCTION_CF_EXEC_0__ADDRESS__SHIFT 0x00000000
+#define SQ_INSTRUCTION_CF_EXEC_0__RESERVED__SHIFT 0x00000009
+#define SQ_INSTRUCTION_CF_EXEC_0__COUNT__SHIFT 0x0000000c
+#define SQ_INSTRUCTION_CF_EXEC_0__YIELD__SHIFT 0x0000000f
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_TYPE_0__SHIFT 0x00000010
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_SERIAL_0__SHIFT 0x00000011
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_TYPE_1__SHIFT 0x00000012
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_SERIAL_1__SHIFT 0x00000013
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_TYPE_2__SHIFT 0x00000014
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_SERIAL_2__SHIFT 0x00000015
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_TYPE_3__SHIFT 0x00000016
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_SERIAL_3__SHIFT 0x00000017
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_TYPE_4__SHIFT 0x00000018
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_SERIAL_4__SHIFT 0x00000019
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_TYPE_5__SHIFT 0x0000001a
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_SERIAL_5__SHIFT 0x0000001b
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_VC_0__SHIFT 0x0000001c
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_VC_1__SHIFT 0x0000001d
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_VC_2__SHIFT 0x0000001e
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_VC_3__SHIFT 0x0000001f
+
+// SQ_INSTRUCTION_CF_EXEC_1
+#define SQ_INSTRUCTION_CF_EXEC_1__INST_VC_4__SHIFT 0x00000000
+#define SQ_INSTRUCTION_CF_EXEC_1__INST_VC_5__SHIFT 0x00000001
+#define SQ_INSTRUCTION_CF_EXEC_1__BOOL_ADDR__SHIFT 0x00000002
+#define SQ_INSTRUCTION_CF_EXEC_1__CONDITION__SHIFT 0x0000000a
+#define SQ_INSTRUCTION_CF_EXEC_1__ADDRESS_MODE__SHIFT 0x0000000b
+#define SQ_INSTRUCTION_CF_EXEC_1__OPCODE__SHIFT 0x0000000c
+#define SQ_INSTRUCTION_CF_EXEC_1__ADDRESS__SHIFT 0x00000010
+#define SQ_INSTRUCTION_CF_EXEC_1__RESERVED__SHIFT 0x00000019
+#define SQ_INSTRUCTION_CF_EXEC_1__COUNT__SHIFT 0x0000001c
+#define SQ_INSTRUCTION_CF_EXEC_1__YIELD__SHIFT 0x0000001f
+
+// SQ_INSTRUCTION_CF_EXEC_2
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_TYPE_0__SHIFT 0x00000000
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_SERIAL_0__SHIFT 0x00000001
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_TYPE_1__SHIFT 0x00000002
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_SERIAL_1__SHIFT 0x00000003
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_TYPE_2__SHIFT 0x00000004
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_SERIAL_2__SHIFT 0x00000005
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_TYPE_3__SHIFT 0x00000006
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_SERIAL_3__SHIFT 0x00000007
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_TYPE_4__SHIFT 0x00000008
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_SERIAL_4__SHIFT 0x00000009
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_TYPE_5__SHIFT 0x0000000a
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_SERIAL_5__SHIFT 0x0000000b
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_VC_0__SHIFT 0x0000000c
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_VC_1__SHIFT 0x0000000d
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_VC_2__SHIFT 0x0000000e
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_VC_3__SHIFT 0x0000000f
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_VC_4__SHIFT 0x00000010
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_VC_5__SHIFT 0x00000011
+#define SQ_INSTRUCTION_CF_EXEC_2__BOOL_ADDR__SHIFT 0x00000012
+#define SQ_INSTRUCTION_CF_EXEC_2__CONDITION__SHIFT 0x0000001a
+#define SQ_INSTRUCTION_CF_EXEC_2__ADDRESS_MODE__SHIFT 0x0000001b
+#define SQ_INSTRUCTION_CF_EXEC_2__OPCODE__SHIFT 0x0000001c
+
+// SQ_INSTRUCTION_CF_LOOP_0
+#define SQ_INSTRUCTION_CF_LOOP_0__ADDRESS__SHIFT 0x00000000
+#define SQ_INSTRUCTION_CF_LOOP_0__RESERVED_0__SHIFT 0x0000000a
+#define SQ_INSTRUCTION_CF_LOOP_0__LOOP_ID__SHIFT 0x00000010
+#define SQ_INSTRUCTION_CF_LOOP_0__RESERVED_1__SHIFT 0x00000015
+
+// SQ_INSTRUCTION_CF_LOOP_1
+#define SQ_INSTRUCTION_CF_LOOP_1__RESERVED_0__SHIFT 0x00000000
+#define SQ_INSTRUCTION_CF_LOOP_1__ADDRESS_MODE__SHIFT 0x0000000b
+#define SQ_INSTRUCTION_CF_LOOP_1__OPCODE__SHIFT 0x0000000c
+#define SQ_INSTRUCTION_CF_LOOP_1__ADDRESS__SHIFT 0x00000010
+#define SQ_INSTRUCTION_CF_LOOP_1__RESERVED_1__SHIFT 0x0000001a
+
+// SQ_INSTRUCTION_CF_LOOP_2
+#define SQ_INSTRUCTION_CF_LOOP_2__LOOP_ID__SHIFT 0x00000000
+#define SQ_INSTRUCTION_CF_LOOP_2__RESERVED__SHIFT 0x00000005
+#define SQ_INSTRUCTION_CF_LOOP_2__ADDRESS_MODE__SHIFT 0x0000001b
+#define SQ_INSTRUCTION_CF_LOOP_2__OPCODE__SHIFT 0x0000001c
+
+// SQ_INSTRUCTION_CF_JMP_CALL_0
+#define SQ_INSTRUCTION_CF_JMP_CALL_0__ADDRESS__SHIFT 0x00000000
+#define SQ_INSTRUCTION_CF_JMP_CALL_0__RESERVED_0__SHIFT 0x0000000a
+#define SQ_INSTRUCTION_CF_JMP_CALL_0__FORCE_CALL__SHIFT 0x0000000d
+#define SQ_INSTRUCTION_CF_JMP_CALL_0__PREDICATED_JMP__SHIFT 0x0000000e
+#define SQ_INSTRUCTION_CF_JMP_CALL_0__RESERVED_1__SHIFT 0x0000000f
+
+// SQ_INSTRUCTION_CF_JMP_CALL_1
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__RESERVED_0__SHIFT 0x00000000
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__DIRECTION__SHIFT 0x00000001
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__BOOL_ADDR__SHIFT 0x00000002
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__CONDITION__SHIFT 0x0000000a
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__ADDRESS_MODE__SHIFT 0x0000000b
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__OPCODE__SHIFT 0x0000000c
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__ADDRESS__SHIFT 0x00000010
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__RESERVED_1__SHIFT 0x0000001a
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__FORCE_CALL__SHIFT 0x0000001d
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__RESERVED_2__SHIFT 0x0000001e
+
+// SQ_INSTRUCTION_CF_JMP_CALL_2
+#define SQ_INSTRUCTION_CF_JMP_CALL_2__RESERVED__SHIFT 0x00000000
+#define SQ_INSTRUCTION_CF_JMP_CALL_2__DIRECTION__SHIFT 0x00000011
+#define SQ_INSTRUCTION_CF_JMP_CALL_2__BOOL_ADDR__SHIFT 0x00000012
+#define SQ_INSTRUCTION_CF_JMP_CALL_2__CONDITION__SHIFT 0x0000001a
+#define SQ_INSTRUCTION_CF_JMP_CALL_2__ADDRESS_MODE__SHIFT 0x0000001b
+#define SQ_INSTRUCTION_CF_JMP_CALL_2__OPCODE__SHIFT 0x0000001c
+
+// SQ_INSTRUCTION_CF_ALLOC_0
+#define SQ_INSTRUCTION_CF_ALLOC_0__SIZE__SHIFT 0x00000000
+#define SQ_INSTRUCTION_CF_ALLOC_0__RESERVED__SHIFT 0x00000004
+
+// SQ_INSTRUCTION_CF_ALLOC_1
+#define SQ_INSTRUCTION_CF_ALLOC_1__RESERVED_0__SHIFT 0x00000000
+#define SQ_INSTRUCTION_CF_ALLOC_1__NO_SERIAL__SHIFT 0x00000008
+#define SQ_INSTRUCTION_CF_ALLOC_1__BUFFER_SELECT__SHIFT 0x00000009
+#define SQ_INSTRUCTION_CF_ALLOC_1__ALLOC_MODE__SHIFT 0x0000000b
+#define SQ_INSTRUCTION_CF_ALLOC_1__OPCODE__SHIFT 0x0000000c
+#define SQ_INSTRUCTION_CF_ALLOC_1__SIZE__SHIFT 0x00000010
+#define SQ_INSTRUCTION_CF_ALLOC_1__RESERVED_1__SHIFT 0x00000014
+
+// SQ_INSTRUCTION_CF_ALLOC_2
+#define SQ_INSTRUCTION_CF_ALLOC_2__RESERVED__SHIFT 0x00000000
+#define SQ_INSTRUCTION_CF_ALLOC_2__NO_SERIAL__SHIFT 0x00000018
+#define SQ_INSTRUCTION_CF_ALLOC_2__BUFFER_SELECT__SHIFT 0x00000019
+#define SQ_INSTRUCTION_CF_ALLOC_2__ALLOC_MODE__SHIFT 0x0000001b
+#define SQ_INSTRUCTION_CF_ALLOC_2__OPCODE__SHIFT 0x0000001c
+
+// SQ_INSTRUCTION_TFETCH_0
+#define SQ_INSTRUCTION_TFETCH_0__OPCODE__SHIFT 0x00000000
+#define SQ_INSTRUCTION_TFETCH_0__SRC_GPR__SHIFT 0x00000005
+#define SQ_INSTRUCTION_TFETCH_0__SRC_GPR_AM__SHIFT 0x0000000b
+#define SQ_INSTRUCTION_TFETCH_0__DST_GPR__SHIFT 0x0000000c
+#define SQ_INSTRUCTION_TFETCH_0__DST_GPR_AM__SHIFT 0x00000012
+#define SQ_INSTRUCTION_TFETCH_0__FETCH_VALID_ONLY__SHIFT 0x00000013
+#define SQ_INSTRUCTION_TFETCH_0__CONST_INDEX__SHIFT 0x00000014
+#define SQ_INSTRUCTION_TFETCH_0__TX_COORD_DENORM__SHIFT 0x00000019
+#define SQ_INSTRUCTION_TFETCH_0__SRC_SEL_X__SHIFT 0x0000001a
+#define SQ_INSTRUCTION_TFETCH_0__SRC_SEL_Y__SHIFT 0x0000001c
+#define SQ_INSTRUCTION_TFETCH_0__SRC_SEL_Z__SHIFT 0x0000001e
+
+// SQ_INSTRUCTION_TFETCH_1
+#define SQ_INSTRUCTION_TFETCH_1__DST_SEL_X__SHIFT 0x00000000
+#define SQ_INSTRUCTION_TFETCH_1__DST_SEL_Y__SHIFT 0x00000003
+#define SQ_INSTRUCTION_TFETCH_1__DST_SEL_Z__SHIFT 0x00000006
+#define SQ_INSTRUCTION_TFETCH_1__DST_SEL_W__SHIFT 0x00000009
+#define SQ_INSTRUCTION_TFETCH_1__MAG_FILTER__SHIFT 0x0000000c
+#define SQ_INSTRUCTION_TFETCH_1__MIN_FILTER__SHIFT 0x0000000e
+#define SQ_INSTRUCTION_TFETCH_1__MIP_FILTER__SHIFT 0x00000010
+#define SQ_INSTRUCTION_TFETCH_1__ANISO_FILTER__SHIFT 0x00000012
+#define SQ_INSTRUCTION_TFETCH_1__ARBITRARY_FILTER__SHIFT 0x00000015
+#define SQ_INSTRUCTION_TFETCH_1__VOL_MAG_FILTER__SHIFT 0x00000018
+#define SQ_INSTRUCTION_TFETCH_1__VOL_MIN_FILTER__SHIFT 0x0000001a
+#define SQ_INSTRUCTION_TFETCH_1__USE_COMP_LOD__SHIFT 0x0000001c
+#define SQ_INSTRUCTION_TFETCH_1__USE_REG_LOD__SHIFT 0x0000001d
+#define SQ_INSTRUCTION_TFETCH_1__PRED_SELECT__SHIFT 0x0000001f
+
+// SQ_INSTRUCTION_TFETCH_2
+#define SQ_INSTRUCTION_TFETCH_2__USE_REG_GRADIENTS__SHIFT 0x00000000
+#define SQ_INSTRUCTION_TFETCH_2__SAMPLE_LOCATION__SHIFT 0x00000001
+#define SQ_INSTRUCTION_TFETCH_2__LOD_BIAS__SHIFT 0x00000002
+#define SQ_INSTRUCTION_TFETCH_2__UNUSED__SHIFT 0x00000009
+#define SQ_INSTRUCTION_TFETCH_2__OFFSET_X__SHIFT 0x00000010
+#define SQ_INSTRUCTION_TFETCH_2__OFFSET_Y__SHIFT 0x00000015
+#define SQ_INSTRUCTION_TFETCH_2__OFFSET_Z__SHIFT 0x0000001a
+#define SQ_INSTRUCTION_TFETCH_2__PRED_CONDITION__SHIFT 0x0000001f
+
+// SQ_INSTRUCTION_VFETCH_0
+#define SQ_INSTRUCTION_VFETCH_0__OPCODE__SHIFT 0x00000000
+#define SQ_INSTRUCTION_VFETCH_0__SRC_GPR__SHIFT 0x00000005
+#define SQ_INSTRUCTION_VFETCH_0__SRC_GPR_AM__SHIFT 0x0000000b
+#define SQ_INSTRUCTION_VFETCH_0__DST_GPR__SHIFT 0x0000000c
+#define SQ_INSTRUCTION_VFETCH_0__DST_GPR_AM__SHIFT 0x00000012
+#define SQ_INSTRUCTION_VFETCH_0__MUST_BE_ONE__SHIFT 0x00000013
+#define SQ_INSTRUCTION_VFETCH_0__CONST_INDEX__SHIFT 0x00000014
+#define SQ_INSTRUCTION_VFETCH_0__CONST_INDEX_SEL__SHIFT 0x00000019
+#define SQ_INSTRUCTION_VFETCH_0__SRC_SEL__SHIFT 0x0000001e
+
+// SQ_INSTRUCTION_VFETCH_1
+#define SQ_INSTRUCTION_VFETCH_1__DST_SEL_X__SHIFT 0x00000000
+#define SQ_INSTRUCTION_VFETCH_1__DST_SEL_Y__SHIFT 0x00000003
+#define SQ_INSTRUCTION_VFETCH_1__DST_SEL_Z__SHIFT 0x00000006
+#define SQ_INSTRUCTION_VFETCH_1__DST_SEL_W__SHIFT 0x00000009
+#define SQ_INSTRUCTION_VFETCH_1__FORMAT_COMP_ALL__SHIFT 0x0000000c
+#define SQ_INSTRUCTION_VFETCH_1__NUM_FORMAT_ALL__SHIFT 0x0000000d
+#define SQ_INSTRUCTION_VFETCH_1__SIGNED_RF_MODE_ALL__SHIFT 0x0000000e
+#define SQ_INSTRUCTION_VFETCH_1__DATA_FORMAT__SHIFT 0x00000010
+#define SQ_INSTRUCTION_VFETCH_1__EXP_ADJUST_ALL__SHIFT 0x00000017
+#define SQ_INSTRUCTION_VFETCH_1__PRED_SELECT__SHIFT 0x0000001f
+
+// SQ_INSTRUCTION_VFETCH_2
+#define SQ_INSTRUCTION_VFETCH_2__STRIDE__SHIFT 0x00000000
+#define SQ_INSTRUCTION_VFETCH_2__OFFSET__SHIFT 0x00000010
+#define SQ_INSTRUCTION_VFETCH_2__PRED_CONDITION__SHIFT 0x0000001f
+
+// SQ_CONSTANT_0
+#define SQ_CONSTANT_0__RED__SHIFT 0x00000000
+
+// SQ_CONSTANT_1
+#define SQ_CONSTANT_1__GREEN__SHIFT 0x00000000
+
+// SQ_CONSTANT_2
+#define SQ_CONSTANT_2__BLUE__SHIFT 0x00000000
+
+// SQ_CONSTANT_3
+#define SQ_CONSTANT_3__ALPHA__SHIFT 0x00000000
+
+// SQ_FETCH_0
+#define SQ_FETCH_0__VALUE__SHIFT 0x00000000
+
+// SQ_FETCH_1
+#define SQ_FETCH_1__VALUE__SHIFT 0x00000000
+
+// SQ_FETCH_2
+#define SQ_FETCH_2__VALUE__SHIFT 0x00000000
+
+// SQ_FETCH_3
+#define SQ_FETCH_3__VALUE__SHIFT 0x00000000
+
+// SQ_FETCH_4
+#define SQ_FETCH_4__VALUE__SHIFT 0x00000000
+
+// SQ_FETCH_5
+#define SQ_FETCH_5__VALUE__SHIFT 0x00000000
+
+// SQ_CONSTANT_VFETCH_0
+#define SQ_CONSTANT_VFETCH_0__TYPE__SHIFT 0x00000000
+#define SQ_CONSTANT_VFETCH_0__STATE__SHIFT 0x00000001
+#define SQ_CONSTANT_VFETCH_0__BASE_ADDRESS__SHIFT 0x00000002
+
+// SQ_CONSTANT_VFETCH_1
+#define SQ_CONSTANT_VFETCH_1__ENDIAN_SWAP__SHIFT 0x00000000
+#define SQ_CONSTANT_VFETCH_1__LIMIT_ADDRESS__SHIFT 0x00000002
+
+// SQ_CONSTANT_T2
+#define SQ_CONSTANT_T2__VALUE__SHIFT 0x00000000
+
+// SQ_CONSTANT_T3
+#define SQ_CONSTANT_T3__VALUE__SHIFT 0x00000000
+
+// SQ_CF_BOOLEANS
+#define SQ_CF_BOOLEANS__CF_BOOLEANS_0__SHIFT 0x00000000
+#define SQ_CF_BOOLEANS__CF_BOOLEANS_1__SHIFT 0x00000008
+#define SQ_CF_BOOLEANS__CF_BOOLEANS_2__SHIFT 0x00000010
+#define SQ_CF_BOOLEANS__CF_BOOLEANS_3__SHIFT 0x00000018
+
+// SQ_CF_LOOP
+#define SQ_CF_LOOP__CF_LOOP_COUNT__SHIFT 0x00000000
+#define SQ_CF_LOOP__CF_LOOP_START__SHIFT 0x00000008
+#define SQ_CF_LOOP__CF_LOOP_STEP__SHIFT 0x00000010
+
+// SQ_CONSTANT_RT_0
+#define SQ_CONSTANT_RT_0__RED__SHIFT 0x00000000
+
+// SQ_CONSTANT_RT_1
+#define SQ_CONSTANT_RT_1__GREEN__SHIFT 0x00000000
+
+// SQ_CONSTANT_RT_2
+#define SQ_CONSTANT_RT_2__BLUE__SHIFT 0x00000000
+
+// SQ_CONSTANT_RT_3
+#define SQ_CONSTANT_RT_3__ALPHA__SHIFT 0x00000000
+
+// SQ_FETCH_RT_0
+#define SQ_FETCH_RT_0__VALUE__SHIFT 0x00000000
+
+// SQ_FETCH_RT_1
+#define SQ_FETCH_RT_1__VALUE__SHIFT 0x00000000
+
+// SQ_FETCH_RT_2
+#define SQ_FETCH_RT_2__VALUE__SHIFT 0x00000000
+
+// SQ_FETCH_RT_3
+#define SQ_FETCH_RT_3__VALUE__SHIFT 0x00000000
+
+// SQ_FETCH_RT_4
+#define SQ_FETCH_RT_4__VALUE__SHIFT 0x00000000
+
+// SQ_FETCH_RT_5
+#define SQ_FETCH_RT_5__VALUE__SHIFT 0x00000000
+
+// SQ_CF_RT_BOOLEANS
+#define SQ_CF_RT_BOOLEANS__CF_BOOLEANS_0__SHIFT 0x00000000
+#define SQ_CF_RT_BOOLEANS__CF_BOOLEANS_1__SHIFT 0x00000008
+#define SQ_CF_RT_BOOLEANS__CF_BOOLEANS_2__SHIFT 0x00000010
+#define SQ_CF_RT_BOOLEANS__CF_BOOLEANS_3__SHIFT 0x00000018
+
+// SQ_CF_RT_LOOP
+#define SQ_CF_RT_LOOP__CF_LOOP_COUNT__SHIFT 0x00000000
+#define SQ_CF_RT_LOOP__CF_LOOP_START__SHIFT 0x00000008
+#define SQ_CF_RT_LOOP__CF_LOOP_STEP__SHIFT 0x00000010
+
+// SQ_VS_PROGRAM
+#define SQ_VS_PROGRAM__BASE__SHIFT 0x00000000
+#define SQ_VS_PROGRAM__SIZE__SHIFT 0x0000000c
+
+// SQ_PS_PROGRAM
+#define SQ_PS_PROGRAM__BASE__SHIFT 0x00000000
+#define SQ_PS_PROGRAM__SIZE__SHIFT 0x0000000c
+
+// SQ_CF_PROGRAM_SIZE
+#define SQ_CF_PROGRAM_SIZE__VS_CF_SIZE__SHIFT 0x00000000
+#define SQ_CF_PROGRAM_SIZE__PS_CF_SIZE__SHIFT 0x0000000c
+
+// SQ_INTERPOLATOR_CNTL
+#define SQ_INTERPOLATOR_CNTL__PARAM_SHADE__SHIFT 0x00000000
+#define SQ_INTERPOLATOR_CNTL__SAMPLING_PATTERN__SHIFT 0x00000010
+
+// SQ_PROGRAM_CNTL
+#define SQ_PROGRAM_CNTL__VS_NUM_REG__SHIFT 0x00000000
+#define SQ_PROGRAM_CNTL__PS_NUM_REG__SHIFT 0x00000008
+#define SQ_PROGRAM_CNTL__VS_RESOURCE__SHIFT 0x00000010
+#define SQ_PROGRAM_CNTL__PS_RESOURCE__SHIFT 0x00000011
+#define SQ_PROGRAM_CNTL__PARAM_GEN__SHIFT 0x00000012
+#define SQ_PROGRAM_CNTL__GEN_INDEX_PIX__SHIFT 0x00000013
+#define SQ_PROGRAM_CNTL__VS_EXPORT_COUNT__SHIFT 0x00000014
+#define SQ_PROGRAM_CNTL__VS_EXPORT_MODE__SHIFT 0x00000018
+#define SQ_PROGRAM_CNTL__PS_EXPORT_MODE__SHIFT 0x0000001b
+#define SQ_PROGRAM_CNTL__GEN_INDEX_VTX__SHIFT 0x0000001f
+
+// SQ_WRAPPING_0
+#define SQ_WRAPPING_0__PARAM_WRAP_0__SHIFT 0x00000000
+#define SQ_WRAPPING_0__PARAM_WRAP_1__SHIFT 0x00000004
+#define SQ_WRAPPING_0__PARAM_WRAP_2__SHIFT 0x00000008
+#define SQ_WRAPPING_0__PARAM_WRAP_3__SHIFT 0x0000000c
+#define SQ_WRAPPING_0__PARAM_WRAP_4__SHIFT 0x00000010
+#define SQ_WRAPPING_0__PARAM_WRAP_5__SHIFT 0x00000014
+#define SQ_WRAPPING_0__PARAM_WRAP_6__SHIFT 0x00000018
+#define SQ_WRAPPING_0__PARAM_WRAP_7__SHIFT 0x0000001c
+
+// SQ_WRAPPING_1
+#define SQ_WRAPPING_1__PARAM_WRAP_8__SHIFT 0x00000000
+#define SQ_WRAPPING_1__PARAM_WRAP_9__SHIFT 0x00000004
+#define SQ_WRAPPING_1__PARAM_WRAP_10__SHIFT 0x00000008
+#define SQ_WRAPPING_1__PARAM_WRAP_11__SHIFT 0x0000000c
+#define SQ_WRAPPING_1__PARAM_WRAP_12__SHIFT 0x00000010
+#define SQ_WRAPPING_1__PARAM_WRAP_13__SHIFT 0x00000014
+#define SQ_WRAPPING_1__PARAM_WRAP_14__SHIFT 0x00000018
+#define SQ_WRAPPING_1__PARAM_WRAP_15__SHIFT 0x0000001c
+
+// SQ_VS_CONST
+#define SQ_VS_CONST__BASE__SHIFT 0x00000000
+#define SQ_VS_CONST__SIZE__SHIFT 0x0000000c
+
+// SQ_PS_CONST
+#define SQ_PS_CONST__BASE__SHIFT 0x00000000
+#define SQ_PS_CONST__SIZE__SHIFT 0x0000000c
+
+// SQ_CONTEXT_MISC
+#define SQ_CONTEXT_MISC__INST_PRED_OPTIMIZE__SHIFT 0x00000000
+#define SQ_CONTEXT_MISC__SC_OUTPUT_SCREEN_XY__SHIFT 0x00000001
+#define SQ_CONTEXT_MISC__SC_SAMPLE_CNTL__SHIFT 0x00000002
+#define SQ_CONTEXT_MISC__PARAM_GEN_POS__SHIFT 0x00000008
+#define SQ_CONTEXT_MISC__PERFCOUNTER_REF__SHIFT 0x00000010
+#define SQ_CONTEXT_MISC__YEILD_OPTIMIZE__SHIFT 0x00000011
+#define SQ_CONTEXT_MISC__TX_CACHE_SEL__SHIFT 0x00000012
+
+// SQ_CF_RD_BASE
+#define SQ_CF_RD_BASE__RD_BASE__SHIFT 0x00000000
+
+// SQ_DEBUG_MISC_0
+#define SQ_DEBUG_MISC_0__DB_PROB_ON__SHIFT 0x00000000
+#define SQ_DEBUG_MISC_0__DB_PROB_BREAK__SHIFT 0x00000004
+#define SQ_DEBUG_MISC_0__DB_PROB_ADDR__SHIFT 0x00000008
+#define SQ_DEBUG_MISC_0__DB_PROB_COUNT__SHIFT 0x00000018
+
+// SQ_DEBUG_MISC_1
+#define SQ_DEBUG_MISC_1__DB_ON_PIX__SHIFT 0x00000000
+#define SQ_DEBUG_MISC_1__DB_ON_VTX__SHIFT 0x00000001
+#define SQ_DEBUG_MISC_1__DB_INST_COUNT__SHIFT 0x00000008
+#define SQ_DEBUG_MISC_1__DB_BREAK_ADDR__SHIFT 0x00000010
+
+// MH_ARBITER_CONFIG
+#define MH_ARBITER_CONFIG__SAME_PAGE_LIMIT__SHIFT 0x00000000
+#define MH_ARBITER_CONFIG__SAME_PAGE_GRANULARITY__SHIFT 0x00000006
+#define MH_ARBITER_CONFIG__L1_ARB_ENABLE__SHIFT 0x00000007
+#define MH_ARBITER_CONFIG__L1_ARB_HOLD_ENABLE__SHIFT 0x00000008
+#define MH_ARBITER_CONFIG__L2_ARB_CONTROL__SHIFT 0x00000009
+#define MH_ARBITER_CONFIG__PAGE_SIZE__SHIFT 0x0000000a
+#define MH_ARBITER_CONFIG__TC_REORDER_ENABLE__SHIFT 0x0000000d
+#define MH_ARBITER_CONFIG__TC_ARB_HOLD_ENABLE__SHIFT 0x0000000e
+#define MH_ARBITER_CONFIG__IN_FLIGHT_LIMIT_ENABLE__SHIFT 0x0000000f
+#define MH_ARBITER_CONFIG__IN_FLIGHT_LIMIT__SHIFT 0x00000010
+#define MH_ARBITER_CONFIG__CP_CLNT_ENABLE__SHIFT 0x00000016
+#define MH_ARBITER_CONFIG__VGT_CLNT_ENABLE__SHIFT 0x00000017
+#define MH_ARBITER_CONFIG__TC_CLNT_ENABLE__SHIFT 0x00000018
+#define MH_ARBITER_CONFIG__RB_CLNT_ENABLE__SHIFT 0x00000019
+#define MH_ARBITER_CONFIG__PA_CLNT_ENABLE__SHIFT 0x0000001a
+
+// MH_CLNT_AXI_ID_REUSE
+#define MH_CLNT_AXI_ID_REUSE__CPw_ID__SHIFT 0x00000000
+#define MH_CLNT_AXI_ID_REUSE__RESERVED1__SHIFT 0x00000003
+#define MH_CLNT_AXI_ID_REUSE__RBw_ID__SHIFT 0x00000004
+#define MH_CLNT_AXI_ID_REUSE__RESERVED2__SHIFT 0x00000007
+#define MH_CLNT_AXI_ID_REUSE__MMUr_ID__SHIFT 0x00000008
+#define MH_CLNT_AXI_ID_REUSE__RESERVED3__SHIFT 0x0000000b
+#define MH_CLNT_AXI_ID_REUSE__PAw_ID__SHIFT 0x0000000c
+
+// MH_INTERRUPT_MASK
+#define MH_INTERRUPT_MASK__AXI_READ_ERROR__SHIFT 0x00000000
+#define MH_INTERRUPT_MASK__AXI_WRITE_ERROR__SHIFT 0x00000001
+#define MH_INTERRUPT_MASK__MMU_PAGE_FAULT__SHIFT 0x00000002
+
+// MH_INTERRUPT_STATUS
+#define MH_INTERRUPT_STATUS__AXI_READ_ERROR__SHIFT 0x00000000
+#define MH_INTERRUPT_STATUS__AXI_WRITE_ERROR__SHIFT 0x00000001
+#define MH_INTERRUPT_STATUS__MMU_PAGE_FAULT__SHIFT 0x00000002
+
+// MH_INTERRUPT_CLEAR
+#define MH_INTERRUPT_CLEAR__AXI_READ_ERROR__SHIFT 0x00000000
+#define MH_INTERRUPT_CLEAR__AXI_WRITE_ERROR__SHIFT 0x00000001
+#define MH_INTERRUPT_CLEAR__MMU_PAGE_FAULT__SHIFT 0x00000002
+
+// MH_AXI_ERROR
+#define MH_AXI_ERROR__AXI_READ_ID__SHIFT 0x00000000
+#define MH_AXI_ERROR__AXI_READ_ERROR__SHIFT 0x00000003
+#define MH_AXI_ERROR__AXI_WRITE_ID__SHIFT 0x00000004
+#define MH_AXI_ERROR__AXI_WRITE_ERROR__SHIFT 0x00000007
+
+// MH_PERFCOUNTER0_SELECT
+#define MH_PERFCOUNTER0_SELECT__PERF_SEL__SHIFT 0x00000000
+
+// MH_PERFCOUNTER1_SELECT
+#define MH_PERFCOUNTER1_SELECT__PERF_SEL__SHIFT 0x00000000
+
+// MH_PERFCOUNTER0_CONFIG
+#define MH_PERFCOUNTER0_CONFIG__N_VALUE__SHIFT 0x00000000
+
+// MH_PERFCOUNTER1_CONFIG
+#define MH_PERFCOUNTER1_CONFIG__N_VALUE__SHIFT 0x00000000
+
+// MH_PERFCOUNTER0_LOW
+#define MH_PERFCOUNTER0_LOW__PERF_COUNTER_LOW__SHIFT 0x00000000
+
+// MH_PERFCOUNTER1_LOW
+#define MH_PERFCOUNTER1_LOW__PERF_COUNTER_LOW__SHIFT 0x00000000
+
+// MH_PERFCOUNTER0_HI
+#define MH_PERFCOUNTER0_HI__PERF_COUNTER_HI__SHIFT 0x00000000
+
+// MH_PERFCOUNTER1_HI
+#define MH_PERFCOUNTER1_HI__PERF_COUNTER_HI__SHIFT 0x00000000
+
+// MH_DEBUG_CTRL
+#define MH_DEBUG_CTRL__INDEX__SHIFT 0x00000000
+
+// MH_DEBUG_DATA
+#define MH_DEBUG_DATA__DATA__SHIFT 0x00000000
+
+// MH_AXI_HALT_CONTROL
+#define MH_AXI_HALT_CONTROL__AXI_HALT__SHIFT 0x00000000
+
+// MH_DEBUG_REG00
+#define MH_DEBUG_REG00__MH_BUSY__SHIFT 0x00000000
+#define MH_DEBUG_REG00__TRANS_OUTSTANDING__SHIFT 0x00000001
+#define MH_DEBUG_REG00__CP_REQUEST__SHIFT 0x00000002
+#define MH_DEBUG_REG00__VGT_REQUEST__SHIFT 0x00000003
+#define MH_DEBUG_REG00__TC_REQUEST__SHIFT 0x00000004
+#define MH_DEBUG_REG00__TC_CAM_EMPTY__SHIFT 0x00000005
+#define MH_DEBUG_REG00__TC_CAM_FULL__SHIFT 0x00000006
+#define MH_DEBUG_REG00__TCD_EMPTY__SHIFT 0x00000007
+#define MH_DEBUG_REG00__TCD_FULL__SHIFT 0x00000008
+#define MH_DEBUG_REG00__RB_REQUEST__SHIFT 0x00000009
+#define MH_DEBUG_REG00__PA_REQUEST__SHIFT 0x0000000a
+#define MH_DEBUG_REG00__MH_CLK_EN_STATE__SHIFT 0x0000000b
+#define MH_DEBUG_REG00__ARQ_EMPTY__SHIFT 0x0000000c
+#define MH_DEBUG_REG00__ARQ_FULL__SHIFT 0x0000000d
+#define MH_DEBUG_REG00__WDB_EMPTY__SHIFT 0x0000000e
+#define MH_DEBUG_REG00__WDB_FULL__SHIFT 0x0000000f
+#define MH_DEBUG_REG00__AXI_AVALID__SHIFT 0x00000010
+#define MH_DEBUG_REG00__AXI_AREADY__SHIFT 0x00000011
+#define MH_DEBUG_REG00__AXI_ARVALID__SHIFT 0x00000012
+#define MH_DEBUG_REG00__AXI_ARREADY__SHIFT 0x00000013
+#define MH_DEBUG_REG00__AXI_WVALID__SHIFT 0x00000014
+#define MH_DEBUG_REG00__AXI_WREADY__SHIFT 0x00000015
+#define MH_DEBUG_REG00__AXI_RVALID__SHIFT 0x00000016
+#define MH_DEBUG_REG00__AXI_RREADY__SHIFT 0x00000017
+#define MH_DEBUG_REG00__AXI_BVALID__SHIFT 0x00000018
+#define MH_DEBUG_REG00__AXI_BREADY__SHIFT 0x00000019
+#define MH_DEBUG_REG00__AXI_HALT_REQ__SHIFT 0x0000001a
+#define MH_DEBUG_REG00__AXI_HALT_ACK__SHIFT 0x0000001b
+#define MH_DEBUG_REG00__AXI_RDY_ENA__SHIFT 0x0000001c
+
+// MH_DEBUG_REG01
+#define MH_DEBUG_REG01__CP_SEND_q__SHIFT 0x00000000
+#define MH_DEBUG_REG01__CP_RTR_q__SHIFT 0x00000001
+#define MH_DEBUG_REG01__CP_WRITE_q__SHIFT 0x00000002
+#define MH_DEBUG_REG01__CP_TAG_q__SHIFT 0x00000003
+#define MH_DEBUG_REG01__CP_BLEN_q__SHIFT 0x00000006
+#define MH_DEBUG_REG01__VGT_SEND_q__SHIFT 0x00000007
+#define MH_DEBUG_REG01__VGT_RTR_q__SHIFT 0x00000008
+#define MH_DEBUG_REG01__VGT_TAG_q__SHIFT 0x00000009
+#define MH_DEBUG_REG01__TC_SEND_q__SHIFT 0x0000000a
+#define MH_DEBUG_REG01__TC_RTR_q__SHIFT 0x0000000b
+#define MH_DEBUG_REG01__TC_BLEN_q__SHIFT 0x0000000c
+#define MH_DEBUG_REG01__TC_ROQ_SEND_q__SHIFT 0x0000000d
+#define MH_DEBUG_REG01__TC_ROQ_RTR_q__SHIFT 0x0000000e
+#define MH_DEBUG_REG01__TC_MH_written__SHIFT 0x0000000f
+#define MH_DEBUG_REG01__RB_SEND_q__SHIFT 0x00000010
+#define MH_DEBUG_REG01__RB_RTR_q__SHIFT 0x00000011
+#define MH_DEBUG_REG01__PA_SEND_q__SHIFT 0x00000012
+#define MH_DEBUG_REG01__PA_RTR_q__SHIFT 0x00000013
+
+// MH_DEBUG_REG02
+#define MH_DEBUG_REG02__MH_CP_grb_send__SHIFT 0x00000000
+#define MH_DEBUG_REG02__MH_VGT_grb_send__SHIFT 0x00000001
+#define MH_DEBUG_REG02__MH_TC_mcsend__SHIFT 0x00000002
+#define MH_DEBUG_REG02__MH_CLNT_rlast__SHIFT 0x00000003
+#define MH_DEBUG_REG02__MH_CLNT_tag__SHIFT 0x00000004
+#define MH_DEBUG_REG02__RDC_RID__SHIFT 0x00000007
+#define MH_DEBUG_REG02__RDC_RRESP__SHIFT 0x0000000a
+#define MH_DEBUG_REG02__MH_CP_writeclean__SHIFT 0x0000000c
+#define MH_DEBUG_REG02__MH_RB_writeclean__SHIFT 0x0000000d
+#define MH_DEBUG_REG02__MH_PA_writeclean__SHIFT 0x0000000e
+#define MH_DEBUG_REG02__BRC_BID__SHIFT 0x0000000f
+#define MH_DEBUG_REG02__BRC_BRESP__SHIFT 0x00000012
+
+// MH_DEBUG_REG03
+#define MH_DEBUG_REG03__MH_CLNT_data_31_0__SHIFT 0x00000000
+
+// MH_DEBUG_REG04
+#define MH_DEBUG_REG04__MH_CLNT_data_63_32__SHIFT 0x00000000
+
+// MH_DEBUG_REG05
+#define MH_DEBUG_REG05__CP_MH_send__SHIFT 0x00000000
+#define MH_DEBUG_REG05__CP_MH_write__SHIFT 0x00000001
+#define MH_DEBUG_REG05__CP_MH_tag__SHIFT 0x00000002
+#define MH_DEBUG_REG05__CP_MH_ad_31_5__SHIFT 0x00000005
+
+// MH_DEBUG_REG06
+#define MH_DEBUG_REG06__CP_MH_data_31_0__SHIFT 0x00000000
+
+// MH_DEBUG_REG07
+#define MH_DEBUG_REG07__CP_MH_data_63_32__SHIFT 0x00000000
+
+// MH_DEBUG_REG08
+#define MH_DEBUG_REG08__CP_MH_be__SHIFT 0x00000000
+#define MH_DEBUG_REG08__RB_MH_be__SHIFT 0x00000008
+#define MH_DEBUG_REG08__PA_MH_be__SHIFT 0x00000010
+
+// MH_DEBUG_REG09
+#define MH_DEBUG_REG09__ALWAYS_ZERO__SHIFT 0x00000000
+#define MH_DEBUG_REG09__VGT_MH_send__SHIFT 0x00000003
+#define MH_DEBUG_REG09__VGT_MH_tagbe__SHIFT 0x00000004
+#define MH_DEBUG_REG09__VGT_MH_ad_31_5__SHIFT 0x00000005
+
+// MH_DEBUG_REG10
+#define MH_DEBUG_REG10__ALWAYS_ZERO__SHIFT 0x00000000
+#define MH_DEBUG_REG10__TC_MH_send__SHIFT 0x00000002
+#define MH_DEBUG_REG10__TC_MH_mask__SHIFT 0x00000003
+#define MH_DEBUG_REG10__TC_MH_addr_31_5__SHIFT 0x00000005
+
+// MH_DEBUG_REG11
+#define MH_DEBUG_REG11__TC_MH_info__SHIFT 0x00000000
+#define MH_DEBUG_REG11__TC_MH_send__SHIFT 0x00000019
+
+// MH_DEBUG_REG12
+#define MH_DEBUG_REG12__MH_TC_mcinfo__SHIFT 0x00000000
+#define MH_DEBUG_REG12__MH_TC_mcinfo_send__SHIFT 0x00000019
+#define MH_DEBUG_REG12__TC_MH_written__SHIFT 0x0000001a
+
+// MH_DEBUG_REG13
+#define MH_DEBUG_REG13__ALWAYS_ZERO__SHIFT 0x00000000
+#define MH_DEBUG_REG13__TC_ROQ_SEND__SHIFT 0x00000002
+#define MH_DEBUG_REG13__TC_ROQ_MASK__SHIFT 0x00000003
+#define MH_DEBUG_REG13__TC_ROQ_ADDR_31_5__SHIFT 0x00000005
+
+// MH_DEBUG_REG14
+#define MH_DEBUG_REG14__TC_ROQ_INFO__SHIFT 0x00000000
+#define MH_DEBUG_REG14__TC_ROQ_SEND__SHIFT 0x00000019
+
+// MH_DEBUG_REG15
+#define MH_DEBUG_REG15__ALWAYS_ZERO__SHIFT 0x00000000
+#define MH_DEBUG_REG15__RB_MH_send__SHIFT 0x00000004
+#define MH_DEBUG_REG15__RB_MH_addr_31_5__SHIFT 0x00000005
+
+// MH_DEBUG_REG16
+#define MH_DEBUG_REG16__RB_MH_data_31_0__SHIFT 0x00000000
+
+// MH_DEBUG_REG17
+#define MH_DEBUG_REG17__RB_MH_data_63_32__SHIFT 0x00000000
+
+// MH_DEBUG_REG18
+#define MH_DEBUG_REG18__ALWAYS_ZERO__SHIFT 0x00000000
+#define MH_DEBUG_REG18__PA_MH_send__SHIFT 0x00000004
+#define MH_DEBUG_REG18__PA_MH_addr_31_5__SHIFT 0x00000005
+
+// MH_DEBUG_REG19
+#define MH_DEBUG_REG19__PA_MH_data_31_0__SHIFT 0x00000000
+
+// MH_DEBUG_REG20
+#define MH_DEBUG_REG20__PA_MH_data_63_32__SHIFT 0x00000000
+
+// MH_DEBUG_REG21
+#define MH_DEBUG_REG21__AVALID_q__SHIFT 0x00000000
+#define MH_DEBUG_REG21__AREADY_q__SHIFT 0x00000001
+#define MH_DEBUG_REG21__AID_q__SHIFT 0x00000002
+#define MH_DEBUG_REG21__ALEN_q_2_0__SHIFT 0x00000005
+#define MH_DEBUG_REG21__ARVALID_q__SHIFT 0x00000008
+#define MH_DEBUG_REG21__ARREADY_q__SHIFT 0x00000009
+#define MH_DEBUG_REG21__ARID_q__SHIFT 0x0000000a
+#define MH_DEBUG_REG21__ARLEN_q_1_0__SHIFT 0x0000000d
+#define MH_DEBUG_REG21__RVALID_q__SHIFT 0x0000000f
+#define MH_DEBUG_REG21__RREADY_q__SHIFT 0x00000010
+#define MH_DEBUG_REG21__RLAST_q__SHIFT 0x00000011
+#define MH_DEBUG_REG21__RID_q__SHIFT 0x00000012
+#define MH_DEBUG_REG21__WVALID_q__SHIFT 0x00000015
+#define MH_DEBUG_REG21__WREADY_q__SHIFT 0x00000016
+#define MH_DEBUG_REG21__WLAST_q__SHIFT 0x00000017
+#define MH_DEBUG_REG21__WID_q__SHIFT 0x00000018
+#define MH_DEBUG_REG21__BVALID_q__SHIFT 0x0000001b
+#define MH_DEBUG_REG21__BREADY_q__SHIFT 0x0000001c
+#define MH_DEBUG_REG21__BID_q__SHIFT 0x0000001d
+
+// MH_DEBUG_REG22
+#define MH_DEBUG_REG22__AVALID_q__SHIFT 0x00000000
+#define MH_DEBUG_REG22__AREADY_q__SHIFT 0x00000001
+#define MH_DEBUG_REG22__AID_q__SHIFT 0x00000002
+#define MH_DEBUG_REG22__ALEN_q_1_0__SHIFT 0x00000005
+#define MH_DEBUG_REG22__ARVALID_q__SHIFT 0x00000007
+#define MH_DEBUG_REG22__ARREADY_q__SHIFT 0x00000008
+#define MH_DEBUG_REG22__ARID_q__SHIFT 0x00000009
+#define MH_DEBUG_REG22__ARLEN_q_1_1__SHIFT 0x0000000c
+#define MH_DEBUG_REG22__WVALID_q__SHIFT 0x0000000d
+#define MH_DEBUG_REG22__WREADY_q__SHIFT 0x0000000e
+#define MH_DEBUG_REG22__WLAST_q__SHIFT 0x0000000f
+#define MH_DEBUG_REG22__WID_q__SHIFT 0x00000010
+#define MH_DEBUG_REG22__WSTRB_q__SHIFT 0x00000013
+#define MH_DEBUG_REG22__BVALID_q__SHIFT 0x0000001b
+#define MH_DEBUG_REG22__BREADY_q__SHIFT 0x0000001c
+#define MH_DEBUG_REG22__BID_q__SHIFT 0x0000001d
+
+// MH_DEBUG_REG23
+#define MH_DEBUG_REG23__ARC_CTRL_RE_q__SHIFT 0x00000000
+#define MH_DEBUG_REG23__CTRL_ARC_ID__SHIFT 0x00000001
+#define MH_DEBUG_REG23__CTRL_ARC_PAD__SHIFT 0x00000004
+
+// MH_DEBUG_REG24
+#define MH_DEBUG_REG24__ALWAYS_ZERO__SHIFT 0x00000000
+#define MH_DEBUG_REG24__REG_A__SHIFT 0x00000002
+#define MH_DEBUG_REG24__REG_RE__SHIFT 0x00000010
+#define MH_DEBUG_REG24__REG_WE__SHIFT 0x00000011
+#define MH_DEBUG_REG24__BLOCK_RS__SHIFT 0x00000012
+
+// MH_DEBUG_REG25
+#define MH_DEBUG_REG25__REG_WD__SHIFT 0x00000000
+
+// MH_DEBUG_REG26
+#define MH_DEBUG_REG26__MH_RBBM_busy__SHIFT 0x00000000
+#define MH_DEBUG_REG26__MH_CIB_mh_clk_en_int__SHIFT 0x00000001
+#define MH_DEBUG_REG26__MH_CIB_mmu_clk_en_int__SHIFT 0x00000002
+#define MH_DEBUG_REG26__MH_CIB_tcroq_clk_en_int__SHIFT 0x00000003
+#define MH_DEBUG_REG26__GAT_CLK_ENA__SHIFT 0x00000004
+#define MH_DEBUG_REG26__RBBM_MH_clk_en_override__SHIFT 0x00000005
+#define MH_DEBUG_REG26__CNT_q__SHIFT 0x00000006
+#define MH_DEBUG_REG26__TCD_EMPTY_q__SHIFT 0x0000000c
+#define MH_DEBUG_REG26__TC_ROQ_EMPTY__SHIFT 0x0000000d
+#define MH_DEBUG_REG26__MH_BUSY_d__SHIFT 0x0000000e
+#define MH_DEBUG_REG26__ANY_CLNT_BUSY__SHIFT 0x0000000f
+#define MH_DEBUG_REG26__MH_MMU_INVALIDATE_INVALIDATE_ALL__SHIFT 0x00000010
+#define MH_DEBUG_REG26__MH_MMU_INVALIDATE_INVALIDATE_TC__SHIFT 0x00000011
+#define MH_DEBUG_REG26__CP_SEND_q__SHIFT 0x00000012
+#define MH_DEBUG_REG26__CP_RTR_q__SHIFT 0x00000013
+#define MH_DEBUG_REG26__VGT_SEND_q__SHIFT 0x00000014
+#define MH_DEBUG_REG26__VGT_RTR_q__SHIFT 0x00000015
+#define MH_DEBUG_REG26__TC_ROQ_SEND_q__SHIFT 0x00000016
+#define MH_DEBUG_REG26__TC_ROQ_RTR_DBG_q__SHIFT 0x00000017
+#define MH_DEBUG_REG26__RB_SEND_q__SHIFT 0x00000018
+#define MH_DEBUG_REG26__RB_RTR_q__SHIFT 0x00000019
+#define MH_DEBUG_REG26__PA_SEND_q__SHIFT 0x0000001a
+#define MH_DEBUG_REG26__PA_RTR_q__SHIFT 0x0000001b
+#define MH_DEBUG_REG26__RDC_VALID__SHIFT 0x0000001c
+#define MH_DEBUG_REG26__RDC_RLAST__SHIFT 0x0000001d
+#define MH_DEBUG_REG26__TLBMISS_VALID__SHIFT 0x0000001e
+#define MH_DEBUG_REG26__BRC_VALID__SHIFT 0x0000001f
+
+// MH_DEBUG_REG27
+#define MH_DEBUG_REG27__EFF2_FP_WINNER__SHIFT 0x00000000
+#define MH_DEBUG_REG27__EFF2_LRU_WINNER_out__SHIFT 0x00000003
+#define MH_DEBUG_REG27__EFF1_WINNER__SHIFT 0x00000006
+#define MH_DEBUG_REG27__ARB_WINNER__SHIFT 0x00000009
+#define MH_DEBUG_REG27__ARB_WINNER_q__SHIFT 0x0000000c
+#define MH_DEBUG_REG27__EFF1_WIN__SHIFT 0x0000000f
+#define MH_DEBUG_REG27__KILL_EFF1__SHIFT 0x00000010
+#define MH_DEBUG_REG27__ARB_HOLD__SHIFT 0x00000011
+#define MH_DEBUG_REG27__ARB_RTR_q__SHIFT 0x00000012
+#define MH_DEBUG_REG27__CP_SEND_QUAL__SHIFT 0x00000013
+#define MH_DEBUG_REG27__VGT_SEND_QUAL__SHIFT 0x00000014
+#define MH_DEBUG_REG27__TC_SEND_QUAL__SHIFT 0x00000015
+#define MH_DEBUG_REG27__TC_SEND_EFF1_QUAL__SHIFT 0x00000016
+#define MH_DEBUG_REG27__RB_SEND_QUAL__SHIFT 0x00000017
+#define MH_DEBUG_REG27__PA_SEND_QUAL__SHIFT 0x00000018
+#define MH_DEBUG_REG27__ARB_QUAL__SHIFT 0x00000019
+#define MH_DEBUG_REG27__CP_EFF1_REQ__SHIFT 0x0000001a
+#define MH_DEBUG_REG27__VGT_EFF1_REQ__SHIFT 0x0000001b
+#define MH_DEBUG_REG27__TC_EFF1_REQ__SHIFT 0x0000001c
+#define MH_DEBUG_REG27__RB_EFF1_REQ__SHIFT 0x0000001d
+#define MH_DEBUG_REG27__TCD_NEARFULL_q__SHIFT 0x0000001e
+#define MH_DEBUG_REG27__TCHOLD_IP_q__SHIFT 0x0000001f
+
+// MH_DEBUG_REG28
+#define MH_DEBUG_REG28__EFF1_WINNER__SHIFT 0x00000000
+#define MH_DEBUG_REG28__ARB_WINNER__SHIFT 0x00000003
+#define MH_DEBUG_REG28__CP_SEND_QUAL__SHIFT 0x00000006
+#define MH_DEBUG_REG28__VGT_SEND_QUAL__SHIFT 0x00000007
+#define MH_DEBUG_REG28__TC_SEND_QUAL__SHIFT 0x00000008
+#define MH_DEBUG_REG28__TC_SEND_EFF1_QUAL__SHIFT 0x00000009
+#define MH_DEBUG_REG28__RB_SEND_QUAL__SHIFT 0x0000000a
+#define MH_DEBUG_REG28__ARB_QUAL__SHIFT 0x0000000b
+#define MH_DEBUG_REG28__CP_EFF1_REQ__SHIFT 0x0000000c
+#define MH_DEBUG_REG28__VGT_EFF1_REQ__SHIFT 0x0000000d
+#define MH_DEBUG_REG28__TC_EFF1_REQ__SHIFT 0x0000000e
+#define MH_DEBUG_REG28__RB_EFF1_REQ__SHIFT 0x0000000f
+#define MH_DEBUG_REG28__EFF1_WIN__SHIFT 0x00000010
+#define MH_DEBUG_REG28__KILL_EFF1__SHIFT 0x00000011
+#define MH_DEBUG_REG28__TCD_NEARFULL_q__SHIFT 0x00000012
+#define MH_DEBUG_REG28__TC_ARB_HOLD__SHIFT 0x00000013
+#define MH_DEBUG_REG28__ARB_HOLD__SHIFT 0x00000014
+#define MH_DEBUG_REG28__ARB_RTR_q__SHIFT 0x00000015
+#define MH_DEBUG_REG28__SAME_PAGE_LIMIT_COUNT_q__SHIFT 0x00000016
+
+// MH_DEBUG_REG29
+#define MH_DEBUG_REG29__EFF2_LRU_WINNER_out__SHIFT 0x00000000
+#define MH_DEBUG_REG29__LEAST_RECENT_INDEX_d__SHIFT 0x00000003
+#define MH_DEBUG_REG29__LEAST_RECENT_d__SHIFT 0x00000006
+#define MH_DEBUG_REG29__UPDATE_RECENT_STACK_d__SHIFT 0x00000009
+#define MH_DEBUG_REG29__ARB_HOLD__SHIFT 0x0000000a
+#define MH_DEBUG_REG29__ARB_RTR_q__SHIFT 0x0000000b
+#define MH_DEBUG_REG29__CLNT_REQ__SHIFT 0x0000000c
+#define MH_DEBUG_REG29__RECENT_d_0__SHIFT 0x00000011
+#define MH_DEBUG_REG29__RECENT_d_1__SHIFT 0x00000014
+#define MH_DEBUG_REG29__RECENT_d_2__SHIFT 0x00000017
+#define MH_DEBUG_REG29__RECENT_d_3__SHIFT 0x0000001a
+#define MH_DEBUG_REG29__RECENT_d_4__SHIFT 0x0000001d
+
+// MH_DEBUG_REG30
+#define MH_DEBUG_REG30__TC_ARB_HOLD__SHIFT 0x00000000
+#define MH_DEBUG_REG30__TC_NOROQ_SAME_ROW_BANK__SHIFT 0x00000001
+#define MH_DEBUG_REG30__TC_ROQ_SAME_ROW_BANK__SHIFT 0x00000002
+#define MH_DEBUG_REG30__TCD_NEARFULL_q__SHIFT 0x00000003
+#define MH_DEBUG_REG30__TCHOLD_IP_q__SHIFT 0x00000004
+#define MH_DEBUG_REG30__TCHOLD_CNT_q__SHIFT 0x00000005
+#define MH_DEBUG_REG30__MH_ARBITER_CONFIG_TC_REORDER_ENABLE__SHIFT 0x00000008
+#define MH_DEBUG_REG30__TC_ROQ_RTR_DBG_q__SHIFT 0x00000009
+#define MH_DEBUG_REG30__TC_ROQ_SEND_q__SHIFT 0x0000000a
+#define MH_DEBUG_REG30__TC_MH_written__SHIFT 0x0000000b
+#define MH_DEBUG_REG30__TCD_FULLNESS_CNT_q__SHIFT 0x0000000c
+#define MH_DEBUG_REG30__WBURST_ACTIVE__SHIFT 0x00000013
+#define MH_DEBUG_REG30__WLAST_q__SHIFT 0x00000014
+#define MH_DEBUG_REG30__WBURST_IP_q__SHIFT 0x00000015
+#define MH_DEBUG_REG30__WBURST_CNT_q__SHIFT 0x00000016
+#define MH_DEBUG_REG30__CP_SEND_QUAL__SHIFT 0x00000019
+#define MH_DEBUG_REG30__CP_MH_write__SHIFT 0x0000001a
+#define MH_DEBUG_REG30__RB_SEND_QUAL__SHIFT 0x0000001b
+#define MH_DEBUG_REG30__PA_SEND_QUAL__SHIFT 0x0000001c
+#define MH_DEBUG_REG30__ARB_WINNER__SHIFT 0x0000001d
+
+// MH_DEBUG_REG31
+#define MH_DEBUG_REG31__RF_ARBITER_CONFIG_q__SHIFT 0x00000000
+#define MH_DEBUG_REG31__MH_CLNT_AXI_ID_REUSE_MMUr_ID__SHIFT 0x0000001a
+
+// MH_DEBUG_REG32
+#define MH_DEBUG_REG32__SAME_ROW_BANK_q__SHIFT 0x00000000
+#define MH_DEBUG_REG32__ROQ_MARK_q__SHIFT 0x00000008
+#define MH_DEBUG_REG32__ROQ_VALID_q__SHIFT 0x00000010
+#define MH_DEBUG_REG32__TC_MH_send__SHIFT 0x00000018
+#define MH_DEBUG_REG32__TC_ROQ_RTR_q__SHIFT 0x00000019
+#define MH_DEBUG_REG32__KILL_EFF1__SHIFT 0x0000001a
+#define MH_DEBUG_REG32__TC_ROQ_SAME_ROW_BANK_SEL__SHIFT 0x0000001b
+#define MH_DEBUG_REG32__ANY_SAME_ROW_BANK__SHIFT 0x0000001c
+#define MH_DEBUG_REG32__TC_EFF1_QUAL__SHIFT 0x0000001d
+#define MH_DEBUG_REG32__TC_ROQ_EMPTY__SHIFT 0x0000001e
+#define MH_DEBUG_REG32__TC_ROQ_FULL__SHIFT 0x0000001f
+
+// MH_DEBUG_REG33
+#define MH_DEBUG_REG33__SAME_ROW_BANK_q__SHIFT 0x00000000
+#define MH_DEBUG_REG33__ROQ_MARK_d__SHIFT 0x00000008
+#define MH_DEBUG_REG33__ROQ_VALID_d__SHIFT 0x00000010
+#define MH_DEBUG_REG33__TC_MH_send__SHIFT 0x00000018
+#define MH_DEBUG_REG33__TC_ROQ_RTR_q__SHIFT 0x00000019
+#define MH_DEBUG_REG33__KILL_EFF1__SHIFT 0x0000001a
+#define MH_DEBUG_REG33__TC_ROQ_SAME_ROW_BANK_SEL__SHIFT 0x0000001b
+#define MH_DEBUG_REG33__ANY_SAME_ROW_BANK__SHIFT 0x0000001c
+#define MH_DEBUG_REG33__TC_EFF1_QUAL__SHIFT 0x0000001d
+#define MH_DEBUG_REG33__TC_ROQ_EMPTY__SHIFT 0x0000001e
+#define MH_DEBUG_REG33__TC_ROQ_FULL__SHIFT 0x0000001f
+
+// MH_DEBUG_REG34
+#define MH_DEBUG_REG34__SAME_ROW_BANK_WIN__SHIFT 0x00000000
+#define MH_DEBUG_REG34__SAME_ROW_BANK_REQ__SHIFT 0x00000008
+#define MH_DEBUG_REG34__NON_SAME_ROW_BANK_WIN__SHIFT 0x00000010
+#define MH_DEBUG_REG34__NON_SAME_ROW_BANK_REQ__SHIFT 0x00000018
+
+// MH_DEBUG_REG35
+#define MH_DEBUG_REG35__TC_MH_send__SHIFT 0x00000000
+#define MH_DEBUG_REG35__TC_ROQ_RTR_q__SHIFT 0x00000001
+#define MH_DEBUG_REG35__ROQ_MARK_q_0__SHIFT 0x00000002
+#define MH_DEBUG_REG35__ROQ_VALID_q_0__SHIFT 0x00000003
+#define MH_DEBUG_REG35__SAME_ROW_BANK_q_0__SHIFT 0x00000004
+#define MH_DEBUG_REG35__ROQ_ADDR_0__SHIFT 0x00000005
+
+// MH_DEBUG_REG36
+#define MH_DEBUG_REG36__TC_MH_send__SHIFT 0x00000000
+#define MH_DEBUG_REG36__TC_ROQ_RTR_q__SHIFT 0x00000001
+#define MH_DEBUG_REG36__ROQ_MARK_q_1__SHIFT 0x00000002
+#define MH_DEBUG_REG36__ROQ_VALID_q_1__SHIFT 0x00000003
+#define MH_DEBUG_REG36__SAME_ROW_BANK_q_1__SHIFT 0x00000004
+#define MH_DEBUG_REG36__ROQ_ADDR_1__SHIFT 0x00000005
+
+// MH_DEBUG_REG37
+#define MH_DEBUG_REG37__TC_MH_send__SHIFT 0x00000000
+#define MH_DEBUG_REG37__TC_ROQ_RTR_q__SHIFT 0x00000001
+#define MH_DEBUG_REG37__ROQ_MARK_q_2__SHIFT 0x00000002
+#define MH_DEBUG_REG37__ROQ_VALID_q_2__SHIFT 0x00000003
+#define MH_DEBUG_REG37__SAME_ROW_BANK_q_2__SHIFT 0x00000004
+#define MH_DEBUG_REG37__ROQ_ADDR_2__SHIFT 0x00000005
+
+// MH_DEBUG_REG38
+#define MH_DEBUG_REG38__TC_MH_send__SHIFT 0x00000000
+#define MH_DEBUG_REG38__TC_ROQ_RTR_q__SHIFT 0x00000001
+#define MH_DEBUG_REG38__ROQ_MARK_q_3__SHIFT 0x00000002
+#define MH_DEBUG_REG38__ROQ_VALID_q_3__SHIFT 0x00000003
+#define MH_DEBUG_REG38__SAME_ROW_BANK_q_3__SHIFT 0x00000004
+#define MH_DEBUG_REG38__ROQ_ADDR_3__SHIFT 0x00000005
+
+// MH_DEBUG_REG39
+#define MH_DEBUG_REG39__TC_MH_send__SHIFT 0x00000000
+#define MH_DEBUG_REG39__TC_ROQ_RTR_q__SHIFT 0x00000001
+#define MH_DEBUG_REG39__ROQ_MARK_q_4__SHIFT 0x00000002
+#define MH_DEBUG_REG39__ROQ_VALID_q_4__SHIFT 0x00000003
+#define MH_DEBUG_REG39__SAME_ROW_BANK_q_4__SHIFT 0x00000004
+#define MH_DEBUG_REG39__ROQ_ADDR_4__SHIFT 0x00000005
+
+// MH_DEBUG_REG40
+#define MH_DEBUG_REG40__TC_MH_send__SHIFT 0x00000000
+#define MH_DEBUG_REG40__TC_ROQ_RTR_q__SHIFT 0x00000001
+#define MH_DEBUG_REG40__ROQ_MARK_q_5__SHIFT 0x00000002
+#define MH_DEBUG_REG40__ROQ_VALID_q_5__SHIFT 0x00000003
+#define MH_DEBUG_REG40__SAME_ROW_BANK_q_5__SHIFT 0x00000004
+#define MH_DEBUG_REG40__ROQ_ADDR_5__SHIFT 0x00000005
+
+// MH_DEBUG_REG41
+#define MH_DEBUG_REG41__TC_MH_send__SHIFT 0x00000000
+#define MH_DEBUG_REG41__TC_ROQ_RTR_q__SHIFT 0x00000001
+#define MH_DEBUG_REG41__ROQ_MARK_q_6__SHIFT 0x00000002
+#define MH_DEBUG_REG41__ROQ_VALID_q_6__SHIFT 0x00000003
+#define MH_DEBUG_REG41__SAME_ROW_BANK_q_6__SHIFT 0x00000004
+#define MH_DEBUG_REG41__ROQ_ADDR_6__SHIFT 0x00000005
+
+// MH_DEBUG_REG42
+#define MH_DEBUG_REG42__TC_MH_send__SHIFT 0x00000000
+#define MH_DEBUG_REG42__TC_ROQ_RTR_q__SHIFT 0x00000001
+#define MH_DEBUG_REG42__ROQ_MARK_q_7__SHIFT 0x00000002
+#define MH_DEBUG_REG42__ROQ_VALID_q_7__SHIFT 0x00000003
+#define MH_DEBUG_REG42__SAME_ROW_BANK_q_7__SHIFT 0x00000004
+#define MH_DEBUG_REG42__ROQ_ADDR_7__SHIFT 0x00000005
+
+// MH_DEBUG_REG43
+#define MH_DEBUG_REG43__ARB_REG_WE_q__SHIFT 0x00000000
+#define MH_DEBUG_REG43__ARB_WE__SHIFT 0x00000001
+#define MH_DEBUG_REG43__ARB_REG_VALID_q__SHIFT 0x00000002
+#define MH_DEBUG_REG43__ARB_RTR_q__SHIFT 0x00000003
+#define MH_DEBUG_REG43__ARB_REG_RTR__SHIFT 0x00000004
+#define MH_DEBUG_REG43__WDAT_BURST_RTR__SHIFT 0x00000005
+#define MH_DEBUG_REG43__MMU_RTR__SHIFT 0x00000006
+#define MH_DEBUG_REG43__ARB_ID_q__SHIFT 0x00000007
+#define MH_DEBUG_REG43__ARB_WRITE_q__SHIFT 0x0000000a
+#define MH_DEBUG_REG43__ARB_BLEN_q__SHIFT 0x0000000b
+#define MH_DEBUG_REG43__ARQ_CTRL_EMPTY__SHIFT 0x0000000c
+#define MH_DEBUG_REG43__ARQ_FIFO_CNT_q__SHIFT 0x0000000d
+#define MH_DEBUG_REG43__MMU_WE__SHIFT 0x00000010
+#define MH_DEBUG_REG43__ARQ_RTR__SHIFT 0x00000011
+#define MH_DEBUG_REG43__MMU_ID__SHIFT 0x00000012
+#define MH_DEBUG_REG43__MMU_WRITE__SHIFT 0x00000015
+#define MH_DEBUG_REG43__MMU_BLEN__SHIFT 0x00000016
+#define MH_DEBUG_REG43__WBURST_IP_q__SHIFT 0x00000017
+#define MH_DEBUG_REG43__WDAT_REG_WE_q__SHIFT 0x00000018
+#define MH_DEBUG_REG43__WDB_WE__SHIFT 0x00000019
+#define MH_DEBUG_REG43__WDB_RTR_SKID_4__SHIFT 0x0000001a
+#define MH_DEBUG_REG43__WDB_RTR_SKID_3__SHIFT 0x0000001b
+
+// MH_DEBUG_REG44
+#define MH_DEBUG_REG44__ARB_WE__SHIFT 0x00000000
+#define MH_DEBUG_REG44__ARB_ID_q__SHIFT 0x00000001
+#define MH_DEBUG_REG44__ARB_VAD_q__SHIFT 0x00000004
+
+// MH_DEBUG_REG45
+#define MH_DEBUG_REG45__MMU_WE__SHIFT 0x00000000
+#define MH_DEBUG_REG45__MMU_ID__SHIFT 0x00000001
+#define MH_DEBUG_REG45__MMU_PAD__SHIFT 0x00000004
+
+// MH_DEBUG_REG46
+#define MH_DEBUG_REG46__WDAT_REG_WE_q__SHIFT 0x00000000
+#define MH_DEBUG_REG46__WDB_WE__SHIFT 0x00000001
+#define MH_DEBUG_REG46__WDAT_REG_VALID_q__SHIFT 0x00000002
+#define MH_DEBUG_REG46__WDB_RTR_SKID_4__SHIFT 0x00000003
+#define MH_DEBUG_REG46__ARB_WSTRB_q__SHIFT 0x00000004
+#define MH_DEBUG_REG46__ARB_WLAST__SHIFT 0x0000000c
+#define MH_DEBUG_REG46__WDB_CTRL_EMPTY__SHIFT 0x0000000d
+#define MH_DEBUG_REG46__WDB_FIFO_CNT_q__SHIFT 0x0000000e
+#define MH_DEBUG_REG46__WDC_WDB_RE_q__SHIFT 0x00000013
+#define MH_DEBUG_REG46__WDB_WDC_WID__SHIFT 0x00000014
+#define MH_DEBUG_REG46__WDB_WDC_WLAST__SHIFT 0x00000017
+#define MH_DEBUG_REG46__WDB_WDC_WSTRB__SHIFT 0x00000018
+
+// MH_DEBUG_REG47
+#define MH_DEBUG_REG47__WDB_WDC_WDATA_31_0__SHIFT 0x00000000
+
+// MH_DEBUG_REG48
+#define MH_DEBUG_REG48__WDB_WDC_WDATA_63_32__SHIFT 0x00000000
+
+// MH_DEBUG_REG49
+#define MH_DEBUG_REG49__CTRL_ARC_EMPTY__SHIFT 0x00000000
+#define MH_DEBUG_REG49__CTRL_RARC_EMPTY__SHIFT 0x00000001
+#define MH_DEBUG_REG49__ARQ_CTRL_EMPTY__SHIFT 0x00000002
+#define MH_DEBUG_REG49__ARQ_CTRL_WRITE__SHIFT 0x00000003
+#define MH_DEBUG_REG49__TLBMISS_CTRL_RTS__SHIFT 0x00000004
+#define MH_DEBUG_REG49__CTRL_TLBMISS_RE_q__SHIFT 0x00000005
+#define MH_DEBUG_REG49__INFLT_LIMIT_q__SHIFT 0x00000006
+#define MH_DEBUG_REG49__INFLT_LIMIT_CNT_q__SHIFT 0x00000007
+#define MH_DEBUG_REG49__ARC_CTRL_RE_q__SHIFT 0x0000000d
+#define MH_DEBUG_REG49__RARC_CTRL_RE_q__SHIFT 0x0000000e
+#define MH_DEBUG_REG49__RVALID_q__SHIFT 0x0000000f
+#define MH_DEBUG_REG49__RREADY_q__SHIFT 0x00000010
+#define MH_DEBUG_REG49__RLAST_q__SHIFT 0x00000011
+#define MH_DEBUG_REG49__BVALID_q__SHIFT 0x00000012
+#define MH_DEBUG_REG49__BREADY_q__SHIFT 0x00000013
+
+// MH_DEBUG_REG50
+#define MH_DEBUG_REG50__MH_CP_grb_send__SHIFT 0x00000000
+#define MH_DEBUG_REG50__MH_VGT_grb_send__SHIFT 0x00000001
+#define MH_DEBUG_REG50__MH_TC_mcsend__SHIFT 0x00000002
+#define MH_DEBUG_REG50__MH_TLBMISS_SEND__SHIFT 0x00000003
+#define MH_DEBUG_REG50__TLBMISS_VALID__SHIFT 0x00000004
+#define MH_DEBUG_REG50__RDC_VALID__SHIFT 0x00000005
+#define MH_DEBUG_REG50__RDC_RID__SHIFT 0x00000006
+#define MH_DEBUG_REG50__RDC_RLAST__SHIFT 0x00000009
+#define MH_DEBUG_REG50__RDC_RRESP__SHIFT 0x0000000a
+#define MH_DEBUG_REG50__TLBMISS_CTRL_RTS__SHIFT 0x0000000c
+#define MH_DEBUG_REG50__CTRL_TLBMISS_RE_q__SHIFT 0x0000000d
+#define MH_DEBUG_REG50__MMU_ID_REQUEST_q__SHIFT 0x0000000e
+#define MH_DEBUG_REG50__OUTSTANDING_MMUID_CNT_q__SHIFT 0x0000000f
+#define MH_DEBUG_REG50__MMU_ID_RESPONSE__SHIFT 0x00000015
+#define MH_DEBUG_REG50__TLBMISS_RETURN_CNT_q__SHIFT 0x00000016
+#define MH_DEBUG_REG50__CNT_HOLD_q1__SHIFT 0x0000001c
+#define MH_DEBUG_REG50__MH_CLNT_AXI_ID_REUSE_MMUr_ID__SHIFT 0x0000001d
+
+// MH_DEBUG_REG51
+#define MH_DEBUG_REG51__RF_MMU_PAGE_FAULT__SHIFT 0x00000000
+
+// MH_DEBUG_REG52
+#define MH_DEBUG_REG52__RF_MMU_CONFIG_q_1_to_0__SHIFT 0x00000000
+#define MH_DEBUG_REG52__ARB_WE__SHIFT 0x00000002
+#define MH_DEBUG_REG52__MMU_RTR__SHIFT 0x00000003
+#define MH_DEBUG_REG52__RF_MMU_CONFIG_q_25_to_4__SHIFT 0x00000004
+#define MH_DEBUG_REG52__ARB_ID_q__SHIFT 0x0000001a
+#define MH_DEBUG_REG52__ARB_WRITE_q__SHIFT 0x0000001d
+#define MH_DEBUG_REG52__client_behavior_q__SHIFT 0x0000001e
+
+// MH_DEBUG_REG53
+#define MH_DEBUG_REG53__stage1_valid__SHIFT 0x00000000
+#define MH_DEBUG_REG53__IGNORE_TAG_MISS_q__SHIFT 0x00000001
+#define MH_DEBUG_REG53__pa_in_mpu_range__SHIFT 0x00000002
+#define MH_DEBUG_REG53__tag_match_q__SHIFT 0x00000003
+#define MH_DEBUG_REG53__tag_miss_q__SHIFT 0x00000004
+#define MH_DEBUG_REG53__va_in_range_q__SHIFT 0x00000005
+#define MH_DEBUG_REG53__MMU_MISS__SHIFT 0x00000006
+#define MH_DEBUG_REG53__MMU_READ_MISS__SHIFT 0x00000007
+#define MH_DEBUG_REG53__MMU_WRITE_MISS__SHIFT 0x00000008
+#define MH_DEBUG_REG53__MMU_HIT__SHIFT 0x00000009
+#define MH_DEBUG_REG53__MMU_READ_HIT__SHIFT 0x0000000a
+#define MH_DEBUG_REG53__MMU_WRITE_HIT__SHIFT 0x0000000b
+#define MH_DEBUG_REG53__MMU_SPLIT_MODE_TC_MISS__SHIFT 0x0000000c
+#define MH_DEBUG_REG53__MMU_SPLIT_MODE_TC_HIT__SHIFT 0x0000000d
+#define MH_DEBUG_REG53__MMU_SPLIT_MODE_nonTC_MISS__SHIFT 0x0000000e
+#define MH_DEBUG_REG53__MMU_SPLIT_MODE_nonTC_HIT__SHIFT 0x0000000f
+#define MH_DEBUG_REG53__REQ_VA_OFFSET_q__SHIFT 0x00000010
+
+// MH_DEBUG_REG54
+#define MH_DEBUG_REG54__ARQ_RTR__SHIFT 0x00000000
+#define MH_DEBUG_REG54__MMU_WE__SHIFT 0x00000001
+#define MH_DEBUG_REG54__CTRL_TLBMISS_RE_q__SHIFT 0x00000002
+#define MH_DEBUG_REG54__TLBMISS_CTRL_RTS__SHIFT 0x00000003
+#define MH_DEBUG_REG54__MH_TLBMISS_SEND__SHIFT 0x00000004
+#define MH_DEBUG_REG54__MMU_STALL_AWAITING_TLB_MISS_FETCH__SHIFT 0x00000005
+#define MH_DEBUG_REG54__pa_in_mpu_range__SHIFT 0x00000006
+#define MH_DEBUG_REG54__stage1_valid__SHIFT 0x00000007
+#define MH_DEBUG_REG54__stage2_valid__SHIFT 0x00000008
+#define MH_DEBUG_REG54__client_behavior_q__SHIFT 0x00000009
+#define MH_DEBUG_REG54__IGNORE_TAG_MISS_q__SHIFT 0x0000000b
+#define MH_DEBUG_REG54__tag_match_q__SHIFT 0x0000000c
+#define MH_DEBUG_REG54__tag_miss_q__SHIFT 0x0000000d
+#define MH_DEBUG_REG54__va_in_range_q__SHIFT 0x0000000e
+#define MH_DEBUG_REG54__PTE_FETCH_COMPLETE_q__SHIFT 0x0000000f
+#define MH_DEBUG_REG54__TAG_valid_q__SHIFT 0x00000010
+
+// MH_DEBUG_REG55
+#define MH_DEBUG_REG55__TAG0_VA__SHIFT 0x00000000
+#define MH_DEBUG_REG55__TAG_valid_q_0__SHIFT 0x0000000d
+#define MH_DEBUG_REG55__ALWAYS_ZERO__SHIFT 0x0000000e
+#define MH_DEBUG_REG55__TAG1_VA__SHIFT 0x00000010
+#define MH_DEBUG_REG55__TAG_valid_q_1__SHIFT 0x0000001d
+
+// MH_DEBUG_REG56
+#define MH_DEBUG_REG56__TAG2_VA__SHIFT 0x00000000
+#define MH_DEBUG_REG56__TAG_valid_q_2__SHIFT 0x0000000d
+#define MH_DEBUG_REG56__ALWAYS_ZERO__SHIFT 0x0000000e
+#define MH_DEBUG_REG56__TAG3_VA__SHIFT 0x00000010
+#define MH_DEBUG_REG56__TAG_valid_q_3__SHIFT 0x0000001d
+
+// MH_DEBUG_REG57
+#define MH_DEBUG_REG57__TAG4_VA__SHIFT 0x00000000
+#define MH_DEBUG_REG57__TAG_valid_q_4__SHIFT 0x0000000d
+#define MH_DEBUG_REG57__ALWAYS_ZERO__SHIFT 0x0000000e
+#define MH_DEBUG_REG57__TAG5_VA__SHIFT 0x00000010
+#define MH_DEBUG_REG57__TAG_valid_q_5__SHIFT 0x0000001d
+
+// MH_DEBUG_REG58
+#define MH_DEBUG_REG58__TAG6_VA__SHIFT 0x00000000
+#define MH_DEBUG_REG58__TAG_valid_q_6__SHIFT 0x0000000d
+#define MH_DEBUG_REG58__ALWAYS_ZERO__SHIFT 0x0000000e
+#define MH_DEBUG_REG58__TAG7_VA__SHIFT 0x00000010
+#define MH_DEBUG_REG58__TAG_valid_q_7__SHIFT 0x0000001d
+
+// MH_DEBUG_REG59
+#define MH_DEBUG_REG59__TAG8_VA__SHIFT 0x00000000
+#define MH_DEBUG_REG59__TAG_valid_q_8__SHIFT 0x0000000d
+#define MH_DEBUG_REG59__ALWAYS_ZERO__SHIFT 0x0000000e
+#define MH_DEBUG_REG59__TAG9_VA__SHIFT 0x00000010
+#define MH_DEBUG_REG59__TAG_valid_q_9__SHIFT 0x0000001d
+
+// MH_DEBUG_REG60
+#define MH_DEBUG_REG60__TAG10_VA__SHIFT 0x00000000
+#define MH_DEBUG_REG60__TAG_valid_q_10__SHIFT 0x0000000d
+#define MH_DEBUG_REG60__ALWAYS_ZERO__SHIFT 0x0000000e
+#define MH_DEBUG_REG60__TAG11_VA__SHIFT 0x00000010
+#define MH_DEBUG_REG60__TAG_valid_q_11__SHIFT 0x0000001d
+
+// MH_DEBUG_REG61
+#define MH_DEBUG_REG61__TAG12_VA__SHIFT 0x00000000
+#define MH_DEBUG_REG61__TAG_valid_q_12__SHIFT 0x0000000d
+#define MH_DEBUG_REG61__ALWAYS_ZERO__SHIFT 0x0000000e
+#define MH_DEBUG_REG61__TAG13_VA__SHIFT 0x00000010
+#define MH_DEBUG_REG61__TAG_valid_q_13__SHIFT 0x0000001d
+
+// MH_DEBUG_REG62
+#define MH_DEBUG_REG62__TAG14_VA__SHIFT 0x00000000
+#define MH_DEBUG_REG62__TAG_valid_q_14__SHIFT 0x0000000d
+#define MH_DEBUG_REG62__ALWAYS_ZERO__SHIFT 0x0000000e
+#define MH_DEBUG_REG62__TAG15_VA__SHIFT 0x00000010
+#define MH_DEBUG_REG62__TAG_valid_q_15__SHIFT 0x0000001d
+
+// MH_DEBUG_REG63
+#define MH_DEBUG_REG63__MH_DBG_DEFAULT__SHIFT 0x00000000
+
+// MH_MMU_CONFIG
+#define MH_MMU_CONFIG__MMU_ENABLE__SHIFT 0x00000000
+#define MH_MMU_CONFIG__SPLIT_MODE_ENABLE__SHIFT 0x00000001
+#define MH_MMU_CONFIG__RESERVED1__SHIFT 0x00000002
+#define MH_MMU_CONFIG__RB_W_CLNT_BEHAVIOR__SHIFT 0x00000004
+#define MH_MMU_CONFIG__CP_W_CLNT_BEHAVIOR__SHIFT 0x00000006
+#define MH_MMU_CONFIG__CP_R0_CLNT_BEHAVIOR__SHIFT 0x00000008
+#define MH_MMU_CONFIG__CP_R1_CLNT_BEHAVIOR__SHIFT 0x0000000a
+#define MH_MMU_CONFIG__CP_R2_CLNT_BEHAVIOR__SHIFT 0x0000000c
+#define MH_MMU_CONFIG__CP_R3_CLNT_BEHAVIOR__SHIFT 0x0000000e
+#define MH_MMU_CONFIG__CP_R4_CLNT_BEHAVIOR__SHIFT 0x00000010
+#define MH_MMU_CONFIG__VGT_R0_CLNT_BEHAVIOR__SHIFT 0x00000012
+#define MH_MMU_CONFIG__VGT_R1_CLNT_BEHAVIOR__SHIFT 0x00000014
+#define MH_MMU_CONFIG__TC_R_CLNT_BEHAVIOR__SHIFT 0x00000016
+#define MH_MMU_CONFIG__PA_W_CLNT_BEHAVIOR__SHIFT 0x00000018
+
+// MH_MMU_VA_RANGE
+#define MH_MMU_VA_RANGE__NUM_64KB_REGIONS__SHIFT 0x00000000
+#define MH_MMU_VA_RANGE__VA_BASE__SHIFT 0x0000000c
+
+// MH_MMU_PT_BASE
+#define MH_MMU_PT_BASE__PT_BASE__SHIFT 0x0000000c
+
+// MH_MMU_PAGE_FAULT
+#define MH_MMU_PAGE_FAULT__PAGE_FAULT__SHIFT 0x00000000
+#define MH_MMU_PAGE_FAULT__OP_TYPE__SHIFT 0x00000001
+#define MH_MMU_PAGE_FAULT__CLNT_BEHAVIOR__SHIFT 0x00000002
+#define MH_MMU_PAGE_FAULT__AXI_ID__SHIFT 0x00000004
+#define MH_MMU_PAGE_FAULT__RESERVED1__SHIFT 0x00000007
+#define MH_MMU_PAGE_FAULT__MPU_ADDRESS_OUT_OF_RANGE__SHIFT 0x00000008
+#define MH_MMU_PAGE_FAULT__ADDRESS_OUT_OF_RANGE__SHIFT 0x00000009
+#define MH_MMU_PAGE_FAULT__READ_PROTECTION_ERROR__SHIFT 0x0000000a
+#define MH_MMU_PAGE_FAULT__WRITE_PROTECTION_ERROR__SHIFT 0x0000000b
+#define MH_MMU_PAGE_FAULT__REQ_VA__SHIFT 0x0000000c
+
+// MH_MMU_TRAN_ERROR
+#define MH_MMU_TRAN_ERROR__TRAN_ERROR__SHIFT 0x00000005
+
+// MH_MMU_INVALIDATE
+#define MH_MMU_INVALIDATE__INVALIDATE_ALL__SHIFT 0x00000000
+#define MH_MMU_INVALIDATE__INVALIDATE_TC__SHIFT 0x00000001
+
+// MH_MMU_MPU_BASE
+#define MH_MMU_MPU_BASE__MPU_BASE__SHIFT 0x0000000c
+
+// MH_MMU_MPU_END
+#define MH_MMU_MPU_END__MPU_END__SHIFT 0x0000000c
+
+// WAIT_UNTIL
+#define WAIT_UNTIL__WAIT_RE_VSYNC__SHIFT 0x00000001
+#define WAIT_UNTIL__WAIT_FE_VSYNC__SHIFT 0x00000002
+#define WAIT_UNTIL__WAIT_VSYNC__SHIFT 0x00000003
+#define WAIT_UNTIL__WAIT_DSPLY_ID0__SHIFT 0x00000004
+#define WAIT_UNTIL__WAIT_DSPLY_ID1__SHIFT 0x00000005
+#define WAIT_UNTIL__WAIT_DSPLY_ID2__SHIFT 0x00000006
+#define WAIT_UNTIL__WAIT_CMDFIFO__SHIFT 0x0000000a
+#define WAIT_UNTIL__WAIT_2D_IDLE__SHIFT 0x0000000e
+#define WAIT_UNTIL__WAIT_3D_IDLE__SHIFT 0x0000000f
+#define WAIT_UNTIL__WAIT_2D_IDLECLEAN__SHIFT 0x00000010
+#define WAIT_UNTIL__WAIT_3D_IDLECLEAN__SHIFT 0x00000011
+#define WAIT_UNTIL__CMDFIFO_ENTRIES__SHIFT 0x00000014
+
+// RBBM_ISYNC_CNTL
+#define RBBM_ISYNC_CNTL__ISYNC_WAIT_IDLEGUI__SHIFT 0x00000004
+#define RBBM_ISYNC_CNTL__ISYNC_CPSCRATCH_IDLEGUI__SHIFT 0x00000005
+
+// RBBM_STATUS
+#define RBBM_STATUS__CMDFIFO_AVAIL__SHIFT 0x00000000
+#define RBBM_STATUS__TC_BUSY__SHIFT 0x00000005
+#define RBBM_STATUS__HIRQ_PENDING__SHIFT 0x00000008
+#define RBBM_STATUS__CPRQ_PENDING__SHIFT 0x00000009
+#define RBBM_STATUS__CFRQ_PENDING__SHIFT 0x0000000a
+#define RBBM_STATUS__PFRQ_PENDING__SHIFT 0x0000000b
+#define RBBM_STATUS__VGT_BUSY_NO_DMA__SHIFT 0x0000000c
+#define RBBM_STATUS__RBBM_WU_BUSY__SHIFT 0x0000000e
+#define RBBM_STATUS__CP_NRT_BUSY__SHIFT 0x00000010
+#define RBBM_STATUS__MH_BUSY__SHIFT 0x00000012
+#define RBBM_STATUS__MH_COHERENCY_BUSY__SHIFT 0x00000013
+#define RBBM_STATUS__SX_BUSY__SHIFT 0x00000015
+#define RBBM_STATUS__TPC_BUSY__SHIFT 0x00000016
+#define RBBM_STATUS__SC_CNTX_BUSY__SHIFT 0x00000018
+#define RBBM_STATUS__PA_BUSY__SHIFT 0x00000019
+#define RBBM_STATUS__VGT_BUSY__SHIFT 0x0000001a
+#define RBBM_STATUS__SQ_CNTX17_BUSY__SHIFT 0x0000001b
+#define RBBM_STATUS__SQ_CNTX0_BUSY__SHIFT 0x0000001c
+#define RBBM_STATUS__RB_CNTX_BUSY__SHIFT 0x0000001e
+#define RBBM_STATUS__GUI_ACTIVE__SHIFT 0x0000001f
+
+// RBBM_DSPLY
+#define RBBM_DSPLY__SEL_DMI_ACTIVE_BUFID0__SHIFT 0x00000000
+#define RBBM_DSPLY__SEL_DMI_ACTIVE_BUFID1__SHIFT 0x00000001
+#define RBBM_DSPLY__SEL_DMI_ACTIVE_BUFID2__SHIFT 0x00000002
+#define RBBM_DSPLY__SEL_DMI_VSYNC_VALID__SHIFT 0x00000003
+#define RBBM_DSPLY__DMI_CH1_USE_BUFID0__SHIFT 0x00000004
+#define RBBM_DSPLY__DMI_CH1_USE_BUFID1__SHIFT 0x00000005
+#define RBBM_DSPLY__DMI_CH1_USE_BUFID2__SHIFT 0x00000006
+#define RBBM_DSPLY__DMI_CH1_SW_CNTL__SHIFT 0x00000007
+#define RBBM_DSPLY__DMI_CH1_NUM_BUFS__SHIFT 0x00000008
+#define RBBM_DSPLY__DMI_CH2_USE_BUFID0__SHIFT 0x0000000a
+#define RBBM_DSPLY__DMI_CH2_USE_BUFID1__SHIFT 0x0000000b
+#define RBBM_DSPLY__DMI_CH2_USE_BUFID2__SHIFT 0x0000000c
+#define RBBM_DSPLY__DMI_CH2_SW_CNTL__SHIFT 0x0000000d
+#define RBBM_DSPLY__DMI_CH2_NUM_BUFS__SHIFT 0x0000000e
+#define RBBM_DSPLY__DMI_CHANNEL_SELECT__SHIFT 0x00000010
+#define RBBM_DSPLY__DMI_CH3_USE_BUFID0__SHIFT 0x00000014
+#define RBBM_DSPLY__DMI_CH3_USE_BUFID1__SHIFT 0x00000015
+#define RBBM_DSPLY__DMI_CH3_USE_BUFID2__SHIFT 0x00000016
+#define RBBM_DSPLY__DMI_CH3_SW_CNTL__SHIFT 0x00000017
+#define RBBM_DSPLY__DMI_CH3_NUM_BUFS__SHIFT 0x00000018
+#define RBBM_DSPLY__DMI_CH4_USE_BUFID0__SHIFT 0x0000001a
+#define RBBM_DSPLY__DMI_CH4_USE_BUFID1__SHIFT 0x0000001b
+#define RBBM_DSPLY__DMI_CH4_USE_BUFID2__SHIFT 0x0000001c
+#define RBBM_DSPLY__DMI_CH4_SW_CNTL__SHIFT 0x0000001d
+#define RBBM_DSPLY__DMI_CH4_NUM_BUFS__SHIFT 0x0000001e
+
+// RBBM_RENDER_LATEST
+#define RBBM_RENDER_LATEST__DMI_CH1_BUFFER_ID__SHIFT 0x00000000
+#define RBBM_RENDER_LATEST__DMI_CH2_BUFFER_ID__SHIFT 0x00000008
+#define RBBM_RENDER_LATEST__DMI_CH3_BUFFER_ID__SHIFT 0x00000010
+#define RBBM_RENDER_LATEST__DMI_CH4_BUFFER_ID__SHIFT 0x00000018
+
+// RBBM_RTL_RELEASE
+#define RBBM_RTL_RELEASE__CHANGELIST__SHIFT 0x00000000
+
+// RBBM_PATCH_RELEASE
+#define RBBM_PATCH_RELEASE__PATCH_REVISION__SHIFT 0x00000000
+#define RBBM_PATCH_RELEASE__PATCH_SELECTION__SHIFT 0x00000010
+#define RBBM_PATCH_RELEASE__CUSTOMER_ID__SHIFT 0x00000018
+
+// RBBM_AUXILIARY_CONFIG
+#define RBBM_AUXILIARY_CONFIG__RESERVED__SHIFT 0x00000000
+
+// RBBM_PERIPHID0
+#define RBBM_PERIPHID0__PARTNUMBER0__SHIFT 0x00000000
+
+// RBBM_PERIPHID1
+#define RBBM_PERIPHID1__PARTNUMBER1__SHIFT 0x00000000
+#define RBBM_PERIPHID1__DESIGNER0__SHIFT 0x00000004
+
+// RBBM_PERIPHID2
+#define RBBM_PERIPHID2__DESIGNER1__SHIFT 0x00000000
+#define RBBM_PERIPHID2__REVISION__SHIFT 0x00000004
+
+// RBBM_PERIPHID3
+#define RBBM_PERIPHID3__RBBM_HOST_INTERFACE__SHIFT 0x00000000
+#define RBBM_PERIPHID3__GARB_SLAVE_INTERFACE__SHIFT 0x00000002
+#define RBBM_PERIPHID3__MH_INTERFACE__SHIFT 0x00000004
+#define RBBM_PERIPHID3__CONTINUATION__SHIFT 0x00000007
+
+// RBBM_CNTL
+#define RBBM_CNTL__READ_TIMEOUT__SHIFT 0x00000000
+#define RBBM_CNTL__REGCLK_DEASSERT_TIME__SHIFT 0x00000008
+
+// RBBM_SKEW_CNTL
+#define RBBM_SKEW_CNTL__SKEW_TOP_THRESHOLD__SHIFT 0x00000000
+#define RBBM_SKEW_CNTL__SKEW_COUNT__SHIFT 0x00000005
+
+// RBBM_SOFT_RESET
+#define RBBM_SOFT_RESET__SOFT_RESET_CP__SHIFT 0x00000000
+#define RBBM_SOFT_RESET__SOFT_RESET_PA__SHIFT 0x00000002
+#define RBBM_SOFT_RESET__SOFT_RESET_MH__SHIFT 0x00000003
+#define RBBM_SOFT_RESET__SOFT_RESET_BC__SHIFT 0x00000004
+#define RBBM_SOFT_RESET__SOFT_RESET_SQ__SHIFT 0x00000005
+#define RBBM_SOFT_RESET__SOFT_RESET_SX__SHIFT 0x00000006
+#define RBBM_SOFT_RESET__SOFT_RESET_CIB__SHIFT 0x0000000c
+#define RBBM_SOFT_RESET__SOFT_RESET_SC__SHIFT 0x0000000f
+#define RBBM_SOFT_RESET__SOFT_RESET_VGT__SHIFT 0x00000010
+
+// RBBM_PM_OVERRIDE1
+#define RBBM_PM_OVERRIDE1__RBBM_AHBCLK_PM_OVERRIDE__SHIFT 0x00000000
+#define RBBM_PM_OVERRIDE1__SC_REG_SCLK_PM_OVERRIDE__SHIFT 0x00000001
+#define RBBM_PM_OVERRIDE1__SC_SCLK_PM_OVERRIDE__SHIFT 0x00000002
+#define RBBM_PM_OVERRIDE1__SP_TOP_SCLK_PM_OVERRIDE__SHIFT 0x00000003
+#define RBBM_PM_OVERRIDE1__SP_V0_SCLK_PM_OVERRIDE__SHIFT 0x00000004
+#define RBBM_PM_OVERRIDE1__SQ_REG_SCLK_PM_OVERRIDE__SHIFT 0x00000005
+#define RBBM_PM_OVERRIDE1__SQ_REG_FIFOS_SCLK_PM_OVERRIDE__SHIFT 0x00000006
+#define RBBM_PM_OVERRIDE1__SQ_CONST_MEM_SCLK_PM_OVERRIDE__SHIFT 0x00000007
+#define RBBM_PM_OVERRIDE1__SQ_SQ_SCLK_PM_OVERRIDE__SHIFT 0x00000008
+#define RBBM_PM_OVERRIDE1__SX_SCLK_PM_OVERRIDE__SHIFT 0x00000009
+#define RBBM_PM_OVERRIDE1__SX_REG_SCLK_PM_OVERRIDE__SHIFT 0x0000000a
+#define RBBM_PM_OVERRIDE1__TCM_TCO_SCLK_PM_OVERRIDE__SHIFT 0x0000000b
+#define RBBM_PM_OVERRIDE1__TCM_TCM_SCLK_PM_OVERRIDE__SHIFT 0x0000000c
+#define RBBM_PM_OVERRIDE1__TCM_TCD_SCLK_PM_OVERRIDE__SHIFT 0x0000000d
+#define RBBM_PM_OVERRIDE1__TCM_REG_SCLK_PM_OVERRIDE__SHIFT 0x0000000e
+#define RBBM_PM_OVERRIDE1__TPC_TPC_SCLK_PM_OVERRIDE__SHIFT 0x0000000f
+#define RBBM_PM_OVERRIDE1__TPC_REG_SCLK_PM_OVERRIDE__SHIFT 0x00000010
+#define RBBM_PM_OVERRIDE1__TCF_TCA_SCLK_PM_OVERRIDE__SHIFT 0x00000011
+#define RBBM_PM_OVERRIDE1__TCF_TCB_SCLK_PM_OVERRIDE__SHIFT 0x00000012
+#define RBBM_PM_OVERRIDE1__TCF_TCB_READ_SCLK_PM_OVERRIDE__SHIFT 0x00000013
+#define RBBM_PM_OVERRIDE1__TP_TP_SCLK_PM_OVERRIDE__SHIFT 0x00000014
+#define RBBM_PM_OVERRIDE1__TP_REG_SCLK_PM_OVERRIDE__SHIFT 0x00000015
+#define RBBM_PM_OVERRIDE1__CP_G_SCLK_PM_OVERRIDE__SHIFT 0x00000016
+#define RBBM_PM_OVERRIDE1__CP_REG_SCLK_PM_OVERRIDE__SHIFT 0x00000017
+#define RBBM_PM_OVERRIDE1__CP_G_REG_SCLK_PM_OVERRIDE__SHIFT 0x00000018
+#define RBBM_PM_OVERRIDE1__SPI_SCLK_PM_OVERRIDE__SHIFT 0x00000019
+#define RBBM_PM_OVERRIDE1__RB_REG_SCLK_PM_OVERRIDE__SHIFT 0x0000001a
+#define RBBM_PM_OVERRIDE1__RB_SCLK_PM_OVERRIDE__SHIFT 0x0000001b
+#define RBBM_PM_OVERRIDE1__MH_MH_SCLK_PM_OVERRIDE__SHIFT 0x0000001c
+#define RBBM_PM_OVERRIDE1__MH_REG_SCLK_PM_OVERRIDE__SHIFT 0x0000001d
+#define RBBM_PM_OVERRIDE1__MH_MMU_SCLK_PM_OVERRIDE__SHIFT 0x0000001e
+#define RBBM_PM_OVERRIDE1__MH_TCROQ_SCLK_PM_OVERRIDE__SHIFT 0x0000001f
+
+// RBBM_PM_OVERRIDE2
+#define RBBM_PM_OVERRIDE2__PA_REG_SCLK_PM_OVERRIDE__SHIFT 0x00000000
+#define RBBM_PM_OVERRIDE2__PA_PA_SCLK_PM_OVERRIDE__SHIFT 0x00000001
+#define RBBM_PM_OVERRIDE2__PA_AG_SCLK_PM_OVERRIDE__SHIFT 0x00000002
+#define RBBM_PM_OVERRIDE2__VGT_REG_SCLK_PM_OVERRIDE__SHIFT 0x00000003
+#define RBBM_PM_OVERRIDE2__VGT_FIFOS_SCLK_PM_OVERRIDE__SHIFT 0x00000004
+#define RBBM_PM_OVERRIDE2__VGT_VGT_SCLK_PM_OVERRIDE__SHIFT 0x00000005
+#define RBBM_PM_OVERRIDE2__DEBUG_PERF_SCLK_PM_OVERRIDE__SHIFT 0x00000006
+#define RBBM_PM_OVERRIDE2__PERM_SCLK_PM_OVERRIDE__SHIFT 0x00000007
+#define RBBM_PM_OVERRIDE2__GC_GA_GMEM0_PM_OVERRIDE__SHIFT 0x00000008
+#define RBBM_PM_OVERRIDE2__GC_GA_GMEM1_PM_OVERRIDE__SHIFT 0x00000009
+#define RBBM_PM_OVERRIDE2__GC_GA_GMEM2_PM_OVERRIDE__SHIFT 0x0000000a
+#define RBBM_PM_OVERRIDE2__GC_GA_GMEM3_PM_OVERRIDE__SHIFT 0x0000000b
+
+// GC_SYS_IDLE
+#define GC_SYS_IDLE__GC_SYS_IDLE_DELAY__SHIFT 0x00000000
+#define GC_SYS_IDLE__GC_SYS_WAIT_DMI_MASK__SHIFT 0x00000010
+#define GC_SYS_IDLE__GC_SYS_URGENT_RAMP__SHIFT 0x00000018
+#define GC_SYS_IDLE__GC_SYS_WAIT_DMI__SHIFT 0x00000019
+#define GC_SYS_IDLE__GC_SYS_URGENT_RAMP_OVERRIDE__SHIFT 0x0000001d
+#define GC_SYS_IDLE__GC_SYS_WAIT_DMI_OVERRIDE__SHIFT 0x0000001e
+#define GC_SYS_IDLE__GC_SYS_IDLE_OVERRIDE__SHIFT 0x0000001f
+
+// NQWAIT_UNTIL
+#define NQWAIT_UNTIL__WAIT_GUI_IDLE__SHIFT 0x00000000
+
+// RBBM_DEBUG_OUT
+#define RBBM_DEBUG_OUT__DEBUG_BUS_OUT__SHIFT 0x00000000
+
+// RBBM_DEBUG_CNTL
+#define RBBM_DEBUG_CNTL__SUB_BLOCK_ADDR__SHIFT 0x00000000
+#define RBBM_DEBUG_CNTL__SUB_BLOCK_SEL__SHIFT 0x00000008
+#define RBBM_DEBUG_CNTL__SW_ENABLE__SHIFT 0x0000000c
+#define RBBM_DEBUG_CNTL__GPIO_SUB_BLOCK_ADDR__SHIFT 0x00000010
+#define RBBM_DEBUG_CNTL__GPIO_SUB_BLOCK_SEL__SHIFT 0x00000018
+#define RBBM_DEBUG_CNTL__GPIO_BYTE_LANE_ENB__SHIFT 0x0000001c
+
+// RBBM_DEBUG
+#define RBBM_DEBUG__IGNORE_RTR__SHIFT 0x00000001
+#define RBBM_DEBUG__IGNORE_CP_SCHED_WU__SHIFT 0x00000002
+#define RBBM_DEBUG__IGNORE_CP_SCHED_ISYNC__SHIFT 0x00000003
+#define RBBM_DEBUG__IGNORE_CP_SCHED_NQ_HI__SHIFT 0x00000004
+#define RBBM_DEBUG__HYSTERESIS_NRT_GUI_ACTIVE__SHIFT 0x00000008
+#define RBBM_DEBUG__IGNORE_RTR_FOR_HI__SHIFT 0x00000010
+#define RBBM_DEBUG__IGNORE_CP_RBBM_NRTRTR_FOR_HI__SHIFT 0x00000011
+#define RBBM_DEBUG__IGNORE_VGT_RBBM_NRTRTR_FOR_HI__SHIFT 0x00000012
+#define RBBM_DEBUG__IGNORE_SQ_RBBM_NRTRTR_FOR_HI__SHIFT 0x00000013
+#define RBBM_DEBUG__CP_RBBM_NRTRTR__SHIFT 0x00000014
+#define RBBM_DEBUG__VGT_RBBM_NRTRTR__SHIFT 0x00000015
+#define RBBM_DEBUG__SQ_RBBM_NRTRTR__SHIFT 0x00000016
+#define RBBM_DEBUG__CLIENTS_FOR_NRT_RTR_FOR_HI__SHIFT 0x00000017
+#define RBBM_DEBUG__CLIENTS_FOR_NRT_RTR__SHIFT 0x00000018
+#define RBBM_DEBUG__IGNORE_SX_RBBM_BUSY__SHIFT 0x0000001f
+
+// RBBM_READ_ERROR
+#define RBBM_READ_ERROR__READ_ADDRESS__SHIFT 0x00000002
+#define RBBM_READ_ERROR__READ_REQUESTER__SHIFT 0x0000001e
+#define RBBM_READ_ERROR__READ_ERROR__SHIFT 0x0000001f
+
+// RBBM_WAIT_IDLE_CLOCKS
+#define RBBM_WAIT_IDLE_CLOCKS__WAIT_IDLE_CLOCKS_NRT__SHIFT 0x00000000
+
+// RBBM_INT_CNTL
+#define RBBM_INT_CNTL__RDERR_INT_MASK__SHIFT 0x00000000
+#define RBBM_INT_CNTL__DISPLAY_UPDATE_INT_MASK__SHIFT 0x00000001
+#define RBBM_INT_CNTL__GUI_IDLE_INT_MASK__SHIFT 0x00000013
+
+// RBBM_INT_STATUS
+#define RBBM_INT_STATUS__RDERR_INT_STAT__SHIFT 0x00000000
+#define RBBM_INT_STATUS__DISPLAY_UPDATE_INT_STAT__SHIFT 0x00000001
+#define RBBM_INT_STATUS__GUI_IDLE_INT_STAT__SHIFT 0x00000013
+
+// RBBM_INT_ACK
+#define RBBM_INT_ACK__RDERR_INT_ACK__SHIFT 0x00000000
+#define RBBM_INT_ACK__DISPLAY_UPDATE_INT_ACK__SHIFT 0x00000001
+#define RBBM_INT_ACK__GUI_IDLE_INT_ACK__SHIFT 0x00000013
+
+// MASTER_INT_SIGNAL
+#define MASTER_INT_SIGNAL__MH_INT_STAT__SHIFT 0x00000005
+#define MASTER_INT_SIGNAL__SQ_INT_STAT__SHIFT 0x0000001a
+#define MASTER_INT_SIGNAL__CP_INT_STAT__SHIFT 0x0000001e
+#define MASTER_INT_SIGNAL__RBBM_INT_STAT__SHIFT 0x0000001f
+
+// RBBM_PERFCOUNTER1_SELECT
+#define RBBM_PERFCOUNTER1_SELECT__PERF_COUNT1_SEL__SHIFT 0x00000000
+
+// RBBM_PERFCOUNTER1_LO
+#define RBBM_PERFCOUNTER1_LO__PERF_COUNT1_LO__SHIFT 0x00000000
+
+// RBBM_PERFCOUNTER1_HI
+#define RBBM_PERFCOUNTER1_HI__PERF_COUNT1_HI__SHIFT 0x00000000
+
+// CP_RB_BASE
+#define CP_RB_BASE__RB_BASE__SHIFT 0x00000005
+
+// CP_RB_CNTL
+#define CP_RB_CNTL__RB_BUFSZ__SHIFT 0x00000000
+#define CP_RB_CNTL__RB_BLKSZ__SHIFT 0x00000008
+#define CP_RB_CNTL__BUF_SWAP__SHIFT 0x00000010
+#define CP_RB_CNTL__RB_POLL_EN__SHIFT 0x00000014
+#define CP_RB_CNTL__RB_NO_UPDATE__SHIFT 0x0000001b
+#define CP_RB_CNTL__RB_RPTR_WR_ENA__SHIFT 0x0000001f
+
+// CP_RB_RPTR_ADDR
+#define CP_RB_RPTR_ADDR__RB_RPTR_SWAP__SHIFT 0x00000000
+#define CP_RB_RPTR_ADDR__RB_RPTR_ADDR__SHIFT 0x00000002
+
+// CP_RB_RPTR
+#define CP_RB_RPTR__RB_RPTR__SHIFT 0x00000000
+
+// CP_RB_RPTR_WR
+#define CP_RB_RPTR_WR__RB_RPTR_WR__SHIFT 0x00000000
+
+// CP_RB_WPTR
+#define CP_RB_WPTR__RB_WPTR__SHIFT 0x00000000
+
+// CP_RB_WPTR_DELAY
+#define CP_RB_WPTR_DELAY__PRE_WRITE_TIMER__SHIFT 0x00000000
+#define CP_RB_WPTR_DELAY__PRE_WRITE_LIMIT__SHIFT 0x0000001c
+
+// CP_RB_WPTR_BASE
+#define CP_RB_WPTR_BASE__RB_WPTR_SWAP__SHIFT 0x00000000
+#define CP_RB_WPTR_BASE__RB_WPTR_BASE__SHIFT 0x00000002
+
+// CP_IB1_BASE
+#define CP_IB1_BASE__IB1_BASE__SHIFT 0x00000002
+
+// CP_IB1_BUFSZ
+#define CP_IB1_BUFSZ__IB1_BUFSZ__SHIFT 0x00000000
+
+// CP_IB2_BASE
+#define CP_IB2_BASE__IB2_BASE__SHIFT 0x00000002
+
+// CP_IB2_BUFSZ
+#define CP_IB2_BUFSZ__IB2_BUFSZ__SHIFT 0x00000000
+
+// CP_ST_BASE
+#define CP_ST_BASE__ST_BASE__SHIFT 0x00000002
+
+// CP_ST_BUFSZ
+#define CP_ST_BUFSZ__ST_BUFSZ__SHIFT 0x00000000
+
+// CP_QUEUE_THRESHOLDS
+#define CP_QUEUE_THRESHOLDS__CSQ_IB1_START__SHIFT 0x00000000
+#define CP_QUEUE_THRESHOLDS__CSQ_IB2_START__SHIFT 0x00000008
+#define CP_QUEUE_THRESHOLDS__CSQ_ST_START__SHIFT 0x00000010
+
+// CP_MEQ_THRESHOLDS
+#define CP_MEQ_THRESHOLDS__MEQ_END__SHIFT 0x00000010
+#define CP_MEQ_THRESHOLDS__ROQ_END__SHIFT 0x00000018
+
+// CP_CSQ_AVAIL
+#define CP_CSQ_AVAIL__CSQ_CNT_RING__SHIFT 0x00000000
+#define CP_CSQ_AVAIL__CSQ_CNT_IB1__SHIFT 0x00000008
+#define CP_CSQ_AVAIL__CSQ_CNT_IB2__SHIFT 0x00000010
+
+// CP_STQ_AVAIL
+#define CP_STQ_AVAIL__STQ_CNT_ST__SHIFT 0x00000000
+
+// CP_MEQ_AVAIL
+#define CP_MEQ_AVAIL__MEQ_CNT__SHIFT 0x00000000
+
+// CP_CSQ_RB_STAT
+#define CP_CSQ_RB_STAT__CSQ_RPTR_PRIMARY__SHIFT 0x00000000
+#define CP_CSQ_RB_STAT__CSQ_WPTR_PRIMARY__SHIFT 0x00000010
+
+// CP_CSQ_IB1_STAT
+#define CP_CSQ_IB1_STAT__CSQ_RPTR_INDIRECT1__SHIFT 0x00000000
+#define CP_CSQ_IB1_STAT__CSQ_WPTR_INDIRECT1__SHIFT 0x00000010
+
+// CP_CSQ_IB2_STAT
+#define CP_CSQ_IB2_STAT__CSQ_RPTR_INDIRECT2__SHIFT 0x00000000
+#define CP_CSQ_IB2_STAT__CSQ_WPTR_INDIRECT2__SHIFT 0x00000010
+
+// CP_NON_PREFETCH_CNTRS
+#define CP_NON_PREFETCH_CNTRS__IB1_COUNTER__SHIFT 0x00000000
+#define CP_NON_PREFETCH_CNTRS__IB2_COUNTER__SHIFT 0x00000008
+
+// CP_STQ_ST_STAT
+#define CP_STQ_ST_STAT__STQ_RPTR_ST__SHIFT 0x00000000
+#define CP_STQ_ST_STAT__STQ_WPTR_ST__SHIFT 0x00000010
+
+// CP_MEQ_STAT
+#define CP_MEQ_STAT__MEQ_RPTR__SHIFT 0x00000000
+#define CP_MEQ_STAT__MEQ_WPTR__SHIFT 0x00000010
+
+// CP_MIU_TAG_STAT
+#define CP_MIU_TAG_STAT__TAG_0_STAT__SHIFT 0x00000000
+#define CP_MIU_TAG_STAT__TAG_1_STAT__SHIFT 0x00000001
+#define CP_MIU_TAG_STAT__TAG_2_STAT__SHIFT 0x00000002
+#define CP_MIU_TAG_STAT__TAG_3_STAT__SHIFT 0x00000003
+#define CP_MIU_TAG_STAT__TAG_4_STAT__SHIFT 0x00000004
+#define CP_MIU_TAG_STAT__TAG_5_STAT__SHIFT 0x00000005
+#define CP_MIU_TAG_STAT__TAG_6_STAT__SHIFT 0x00000006
+#define CP_MIU_TAG_STAT__TAG_7_STAT__SHIFT 0x00000007
+#define CP_MIU_TAG_STAT__TAG_8_STAT__SHIFT 0x00000008
+#define CP_MIU_TAG_STAT__TAG_9_STAT__SHIFT 0x00000009
+#define CP_MIU_TAG_STAT__TAG_10_STAT__SHIFT 0x0000000a
+#define CP_MIU_TAG_STAT__TAG_11_STAT__SHIFT 0x0000000b
+#define CP_MIU_TAG_STAT__TAG_12_STAT__SHIFT 0x0000000c
+#define CP_MIU_TAG_STAT__TAG_13_STAT__SHIFT 0x0000000d
+#define CP_MIU_TAG_STAT__TAG_14_STAT__SHIFT 0x0000000e
+#define CP_MIU_TAG_STAT__TAG_15_STAT__SHIFT 0x0000000f
+#define CP_MIU_TAG_STAT__TAG_16_STAT__SHIFT 0x00000010
+#define CP_MIU_TAG_STAT__TAG_17_STAT__SHIFT 0x00000011
+#define CP_MIU_TAG_STAT__INVALID_RETURN_TAG__SHIFT 0x0000001f
+
+// CP_CMD_INDEX
+#define CP_CMD_INDEX__CMD_INDEX__SHIFT 0x00000000
+#define CP_CMD_INDEX__CMD_QUEUE_SEL__SHIFT 0x00000010
+
+// CP_CMD_DATA
+#define CP_CMD_DATA__CMD_DATA__SHIFT 0x00000000
+
+// CP_ME_CNTL
+#define CP_ME_CNTL__ME_STATMUX__SHIFT 0x00000000
+#define CP_ME_CNTL__VTX_DEALLOC_FIFO_EMPTY__SHIFT 0x00000019
+#define CP_ME_CNTL__PIX_DEALLOC_FIFO_EMPTY__SHIFT 0x0000001a
+#define CP_ME_CNTL__ME_HALT__SHIFT 0x0000001c
+#define CP_ME_CNTL__ME_BUSY__SHIFT 0x0000001d
+#define CP_ME_CNTL__PROG_CNT_SIZE__SHIFT 0x0000001f
+
+// CP_ME_STATUS
+#define CP_ME_STATUS__ME_DEBUG_DATA__SHIFT 0x00000000
+
+// CP_ME_RAM_WADDR
+#define CP_ME_RAM_WADDR__ME_RAM_WADDR__SHIFT 0x00000000
+
+// CP_ME_RAM_RADDR
+#define CP_ME_RAM_RADDR__ME_RAM_RADDR__SHIFT 0x00000000
+
+// CP_ME_RAM_DATA
+#define CP_ME_RAM_DATA__ME_RAM_DATA__SHIFT 0x00000000
+
+// CP_ME_RDADDR
+#define CP_ME_RDADDR__ME_RDADDR__SHIFT 0x00000000
+
+// CP_DEBUG
+#define CP_DEBUG__CP_DEBUG_UNUSED_22_to_0__SHIFT 0x00000000
+#define CP_DEBUG__PREDICATE_DISABLE__SHIFT 0x00000017
+#define CP_DEBUG__PROG_END_PTR_ENABLE__SHIFT 0x00000018
+#define CP_DEBUG__MIU_128BIT_WRITE_ENABLE__SHIFT 0x00000019
+#define CP_DEBUG__PREFETCH_PASS_NOPS__SHIFT 0x0000001a
+#define CP_DEBUG__DYNAMIC_CLK_DISABLE__SHIFT 0x0000001b
+#define CP_DEBUG__PREFETCH_MATCH_DISABLE__SHIFT 0x0000001c
+#define CP_DEBUG__SIMPLE_ME_FLOW_CONTROL__SHIFT 0x0000001e
+#define CP_DEBUG__MIU_WRITE_PACK_DISABLE__SHIFT 0x0000001f
+
+// SCRATCH_REG0
+#define SCRATCH_REG0__SCRATCH_REG0__SHIFT 0x00000000
+#define GUI_SCRATCH_REG0__SCRATCH_REG0__SHIFT 0x00000000
+
+// SCRATCH_REG1
+#define SCRATCH_REG1__SCRATCH_REG1__SHIFT 0x00000000
+#define GUI_SCRATCH_REG1__SCRATCH_REG1__SHIFT 0x00000000
+
+// SCRATCH_REG2
+#define SCRATCH_REG2__SCRATCH_REG2__SHIFT 0x00000000
+#define GUI_SCRATCH_REG2__SCRATCH_REG2__SHIFT 0x00000000
+
+// SCRATCH_REG3
+#define SCRATCH_REG3__SCRATCH_REG3__SHIFT 0x00000000
+#define GUI_SCRATCH_REG3__SCRATCH_REG3__SHIFT 0x00000000
+
+// SCRATCH_REG4
+#define SCRATCH_REG4__SCRATCH_REG4__SHIFT 0x00000000
+#define GUI_SCRATCH_REG4__SCRATCH_REG4__SHIFT 0x00000000
+
+// SCRATCH_REG5
+#define SCRATCH_REG5__SCRATCH_REG5__SHIFT 0x00000000
+#define GUI_SCRATCH_REG5__SCRATCH_REG5__SHIFT 0x00000000
+
+// SCRATCH_REG6
+#define SCRATCH_REG6__SCRATCH_REG6__SHIFT 0x00000000
+#define GUI_SCRATCH_REG6__SCRATCH_REG6__SHIFT 0x00000000
+
+// SCRATCH_REG7
+#define SCRATCH_REG7__SCRATCH_REG7__SHIFT 0x00000000
+#define GUI_SCRATCH_REG7__SCRATCH_REG7__SHIFT 0x00000000
+
+// SCRATCH_UMSK
+#define SCRATCH_UMSK__SCRATCH_UMSK__SHIFT 0x00000000
+#define SCRATCH_UMSK__SCRATCH_SWAP__SHIFT 0x00000010
+
+// SCRATCH_ADDR
+#define SCRATCH_ADDR__SCRATCH_ADDR__SHIFT 0x00000005
+
+// CP_ME_VS_EVENT_SRC
+#define CP_ME_VS_EVENT_SRC__VS_DONE_SWM__SHIFT 0x00000000
+#define CP_ME_VS_EVENT_SRC__VS_DONE_CNTR__SHIFT 0x00000001
+
+// CP_ME_VS_EVENT_ADDR
+#define CP_ME_VS_EVENT_ADDR__VS_DONE_SWAP__SHIFT 0x00000000
+#define CP_ME_VS_EVENT_ADDR__VS_DONE_ADDR__SHIFT 0x00000002
+
+// CP_ME_VS_EVENT_DATA
+#define CP_ME_VS_EVENT_DATA__VS_DONE_DATA__SHIFT 0x00000000
+
+// CP_ME_VS_EVENT_ADDR_SWM
+#define CP_ME_VS_EVENT_ADDR_SWM__VS_DONE_SWAP_SWM__SHIFT 0x00000000
+#define CP_ME_VS_EVENT_ADDR_SWM__VS_DONE_ADDR_SWM__SHIFT 0x00000002
+
+// CP_ME_VS_EVENT_DATA_SWM
+#define CP_ME_VS_EVENT_DATA_SWM__VS_DONE_DATA_SWM__SHIFT 0x00000000
+
+// CP_ME_PS_EVENT_SRC
+#define CP_ME_PS_EVENT_SRC__PS_DONE_SWM__SHIFT 0x00000000
+#define CP_ME_PS_EVENT_SRC__PS_DONE_CNTR__SHIFT 0x00000001
+
+// CP_ME_PS_EVENT_ADDR
+#define CP_ME_PS_EVENT_ADDR__PS_DONE_SWAP__SHIFT 0x00000000
+#define CP_ME_PS_EVENT_ADDR__PS_DONE_ADDR__SHIFT 0x00000002
+
+// CP_ME_PS_EVENT_DATA
+#define CP_ME_PS_EVENT_DATA__PS_DONE_DATA__SHIFT 0x00000000
+
+// CP_ME_PS_EVENT_ADDR_SWM
+#define CP_ME_PS_EVENT_ADDR_SWM__PS_DONE_SWAP_SWM__SHIFT 0x00000000
+#define CP_ME_PS_EVENT_ADDR_SWM__PS_DONE_ADDR_SWM__SHIFT 0x00000002
+
+// CP_ME_PS_EVENT_DATA_SWM
+#define CP_ME_PS_EVENT_DATA_SWM__PS_DONE_DATA_SWM__SHIFT 0x00000000
+
+// CP_ME_CF_EVENT_SRC
+#define CP_ME_CF_EVENT_SRC__CF_DONE_SRC__SHIFT 0x00000000
+
+// CP_ME_CF_EVENT_ADDR
+#define CP_ME_CF_EVENT_ADDR__CF_DONE_SWAP__SHIFT 0x00000000
+#define CP_ME_CF_EVENT_ADDR__CF_DONE_ADDR__SHIFT 0x00000002
+
+// CP_ME_CF_EVENT_DATA
+#define CP_ME_CF_EVENT_DATA__CF_DONE_DATA__SHIFT 0x00000000
+
+// CP_ME_NRT_ADDR
+#define CP_ME_NRT_ADDR__NRT_WRITE_SWAP__SHIFT 0x00000000
+#define CP_ME_NRT_ADDR__NRT_WRITE_ADDR__SHIFT 0x00000002
+
+// CP_ME_NRT_DATA
+#define CP_ME_NRT_DATA__NRT_WRITE_DATA__SHIFT 0x00000000
+
+// CP_ME_VS_FETCH_DONE_SRC
+#define CP_ME_VS_FETCH_DONE_SRC__VS_FETCH_DONE_CNTR__SHIFT 0x00000000
+
+// CP_ME_VS_FETCH_DONE_ADDR
+#define CP_ME_VS_FETCH_DONE_ADDR__VS_FETCH_DONE_SWAP__SHIFT 0x00000000
+#define CP_ME_VS_FETCH_DONE_ADDR__VS_FETCH_DONE_ADDR__SHIFT 0x00000002
+
+// CP_ME_VS_FETCH_DONE_DATA
+#define CP_ME_VS_FETCH_DONE_DATA__VS_FETCH_DONE_DATA__SHIFT 0x00000000
+
+// CP_INT_CNTL
+#define CP_INT_CNTL__SW_INT_MASK__SHIFT 0x00000013
+#define CP_INT_CNTL__T0_PACKET_IN_IB_MASK__SHIFT 0x00000017
+#define CP_INT_CNTL__OPCODE_ERROR_MASK__SHIFT 0x00000018
+#define CP_INT_CNTL__PROTECTED_MODE_ERROR_MASK__SHIFT 0x00000019
+#define CP_INT_CNTL__RESERVED_BIT_ERROR_MASK__SHIFT 0x0000001a
+#define CP_INT_CNTL__IB_ERROR_MASK__SHIFT 0x0000001b
+#define CP_INT_CNTL__IB2_INT_MASK__SHIFT 0x0000001d
+#define CP_INT_CNTL__IB1_INT_MASK__SHIFT 0x0000001e
+#define CP_INT_CNTL__RB_INT_MASK__SHIFT 0x0000001f
+
+// CP_INT_STATUS
+#define CP_INT_STATUS__SW_INT_STAT__SHIFT 0x00000013
+#define CP_INT_STATUS__T0_PACKET_IN_IB_STAT__SHIFT 0x00000017
+#define CP_INT_STATUS__OPCODE_ERROR_STAT__SHIFT 0x00000018
+#define CP_INT_STATUS__PROTECTED_MODE_ERROR_STAT__SHIFT 0x00000019
+#define CP_INT_STATUS__RESERVED_BIT_ERROR_STAT__SHIFT 0x0000001a
+#define CP_INT_STATUS__IB_ERROR_STAT__SHIFT 0x0000001b
+#define CP_INT_STATUS__IB2_INT_STAT__SHIFT 0x0000001d
+#define CP_INT_STATUS__IB1_INT_STAT__SHIFT 0x0000001e
+#define CP_INT_STATUS__RB_INT_STAT__SHIFT 0x0000001f
+
+// CP_INT_ACK
+#define CP_INT_ACK__SW_INT_ACK__SHIFT 0x00000013
+#define CP_INT_ACK__T0_PACKET_IN_IB_ACK__SHIFT 0x00000017
+#define CP_INT_ACK__OPCODE_ERROR_ACK__SHIFT 0x00000018
+#define CP_INT_ACK__PROTECTED_MODE_ERROR_ACK__SHIFT 0x00000019
+#define CP_INT_ACK__RESERVED_BIT_ERROR_ACK__SHIFT 0x0000001a
+#define CP_INT_ACK__IB_ERROR_ACK__SHIFT 0x0000001b
+#define CP_INT_ACK__IB2_INT_ACK__SHIFT 0x0000001d
+#define CP_INT_ACK__IB1_INT_ACK__SHIFT 0x0000001e
+#define CP_INT_ACK__RB_INT_ACK__SHIFT 0x0000001f
+
+// CP_PFP_UCODE_ADDR
+#define CP_PFP_UCODE_ADDR__UCODE_ADDR__SHIFT 0x00000000
+
+// CP_PFP_UCODE_DATA
+#define CP_PFP_UCODE_DATA__UCODE_DATA__SHIFT 0x00000000
+
+// CP_PERFMON_CNTL
+#define CP_PERFMON_CNTL__PERFMON_STATE__SHIFT 0x00000000
+#define CP_PERFMON_CNTL__PERFMON_ENABLE_MODE__SHIFT 0x00000008
+
+// CP_PERFCOUNTER_SELECT
+#define CP_PERFCOUNTER_SELECT__PERFCOUNT_SEL__SHIFT 0x00000000
+
+// CP_PERFCOUNTER_LO
+#define CP_PERFCOUNTER_LO__PERFCOUNT_LO__SHIFT 0x00000000
+
+// CP_PERFCOUNTER_HI
+#define CP_PERFCOUNTER_HI__PERFCOUNT_HI__SHIFT 0x00000000
+
+// CP_BIN_MASK_LO
+#define CP_BIN_MASK_LO__BIN_MASK_LO__SHIFT 0x00000000
+
+// CP_BIN_MASK_HI
+#define CP_BIN_MASK_HI__BIN_MASK_HI__SHIFT 0x00000000
+
+// CP_BIN_SELECT_LO
+#define CP_BIN_SELECT_LO__BIN_SELECT_LO__SHIFT 0x00000000
+
+// CP_BIN_SELECT_HI
+#define CP_BIN_SELECT_HI__BIN_SELECT_HI__SHIFT 0x00000000
+
+// CP_NV_FLAGS_0
+#define CP_NV_FLAGS_0__DISCARD_0__SHIFT 0x00000000
+#define CP_NV_FLAGS_0__END_RCVD_0__SHIFT 0x00000001
+#define CP_NV_FLAGS_0__DISCARD_1__SHIFT 0x00000002
+#define CP_NV_FLAGS_0__END_RCVD_1__SHIFT 0x00000003
+#define CP_NV_FLAGS_0__DISCARD_2__SHIFT 0x00000004
+#define CP_NV_FLAGS_0__END_RCVD_2__SHIFT 0x00000005
+#define CP_NV_FLAGS_0__DISCARD_3__SHIFT 0x00000006
+#define CP_NV_FLAGS_0__END_RCVD_3__SHIFT 0x00000007
+#define CP_NV_FLAGS_0__DISCARD_4__SHIFT 0x00000008
+#define CP_NV_FLAGS_0__END_RCVD_4__SHIFT 0x00000009
+#define CP_NV_FLAGS_0__DISCARD_5__SHIFT 0x0000000a
+#define CP_NV_FLAGS_0__END_RCVD_5__SHIFT 0x0000000b
+#define CP_NV_FLAGS_0__DISCARD_6__SHIFT 0x0000000c
+#define CP_NV_FLAGS_0__END_RCVD_6__SHIFT 0x0000000d
+#define CP_NV_FLAGS_0__DISCARD_7__SHIFT 0x0000000e
+#define CP_NV_FLAGS_0__END_RCVD_7__SHIFT 0x0000000f
+#define CP_NV_FLAGS_0__DISCARD_8__SHIFT 0x00000010
+#define CP_NV_FLAGS_0__END_RCVD_8__SHIFT 0x00000011
+#define CP_NV_FLAGS_0__DISCARD_9__SHIFT 0x00000012
+#define CP_NV_FLAGS_0__END_RCVD_9__SHIFT 0x00000013
+#define CP_NV_FLAGS_0__DISCARD_10__SHIFT 0x00000014
+#define CP_NV_FLAGS_0__END_RCVD_10__SHIFT 0x00000015
+#define CP_NV_FLAGS_0__DISCARD_11__SHIFT 0x00000016
+#define CP_NV_FLAGS_0__END_RCVD_11__SHIFT 0x00000017
+#define CP_NV_FLAGS_0__DISCARD_12__SHIFT 0x00000018
+#define CP_NV_FLAGS_0__END_RCVD_12__SHIFT 0x00000019
+#define CP_NV_FLAGS_0__DISCARD_13__SHIFT 0x0000001a
+#define CP_NV_FLAGS_0__END_RCVD_13__SHIFT 0x0000001b
+#define CP_NV_FLAGS_0__DISCARD_14__SHIFT 0x0000001c
+#define CP_NV_FLAGS_0__END_RCVD_14__SHIFT 0x0000001d
+#define CP_NV_FLAGS_0__DISCARD_15__SHIFT 0x0000001e
+#define CP_NV_FLAGS_0__END_RCVD_15__SHIFT 0x0000001f
+
+// CP_NV_FLAGS_1
+#define CP_NV_FLAGS_1__DISCARD_16__SHIFT 0x00000000
+#define CP_NV_FLAGS_1__END_RCVD_16__SHIFT 0x00000001
+#define CP_NV_FLAGS_1__DISCARD_17__SHIFT 0x00000002
+#define CP_NV_FLAGS_1__END_RCVD_17__SHIFT 0x00000003
+#define CP_NV_FLAGS_1__DISCARD_18__SHIFT 0x00000004
+#define CP_NV_FLAGS_1__END_RCVD_18__SHIFT 0x00000005
+#define CP_NV_FLAGS_1__DISCARD_19__SHIFT 0x00000006
+#define CP_NV_FLAGS_1__END_RCVD_19__SHIFT 0x00000007
+#define CP_NV_FLAGS_1__DISCARD_20__SHIFT 0x00000008
+#define CP_NV_FLAGS_1__END_RCVD_20__SHIFT 0x00000009
+#define CP_NV_FLAGS_1__DISCARD_21__SHIFT 0x0000000a
+#define CP_NV_FLAGS_1__END_RCVD_21__SHIFT 0x0000000b
+#define CP_NV_FLAGS_1__DISCARD_22__SHIFT 0x0000000c
+#define CP_NV_FLAGS_1__END_RCVD_22__SHIFT 0x0000000d
+#define CP_NV_FLAGS_1__DISCARD_23__SHIFT 0x0000000e
+#define CP_NV_FLAGS_1__END_RCVD_23__SHIFT 0x0000000f
+#define CP_NV_FLAGS_1__DISCARD_24__SHIFT 0x00000010
+#define CP_NV_FLAGS_1__END_RCVD_24__SHIFT 0x00000011
+#define CP_NV_FLAGS_1__DISCARD_25__SHIFT 0x00000012
+#define CP_NV_FLAGS_1__END_RCVD_25__SHIFT 0x00000013
+#define CP_NV_FLAGS_1__DISCARD_26__SHIFT 0x00000014
+#define CP_NV_FLAGS_1__END_RCVD_26__SHIFT 0x00000015
+#define CP_NV_FLAGS_1__DISCARD_27__SHIFT 0x00000016
+#define CP_NV_FLAGS_1__END_RCVD_27__SHIFT 0x00000017
+#define CP_NV_FLAGS_1__DISCARD_28__SHIFT 0x00000018
+#define CP_NV_FLAGS_1__END_RCVD_28__SHIFT 0x00000019
+#define CP_NV_FLAGS_1__DISCARD_29__SHIFT 0x0000001a
+#define CP_NV_FLAGS_1__END_RCVD_29__SHIFT 0x0000001b
+#define CP_NV_FLAGS_1__DISCARD_30__SHIFT 0x0000001c
+#define CP_NV_FLAGS_1__END_RCVD_30__SHIFT 0x0000001d
+#define CP_NV_FLAGS_1__DISCARD_31__SHIFT 0x0000001e
+#define CP_NV_FLAGS_1__END_RCVD_31__SHIFT 0x0000001f
+
+// CP_NV_FLAGS_2
+#define CP_NV_FLAGS_2__DISCARD_32__SHIFT 0x00000000
+#define CP_NV_FLAGS_2__END_RCVD_32__SHIFT 0x00000001
+#define CP_NV_FLAGS_2__DISCARD_33__SHIFT 0x00000002
+#define CP_NV_FLAGS_2__END_RCVD_33__SHIFT 0x00000003
+#define CP_NV_FLAGS_2__DISCARD_34__SHIFT 0x00000004
+#define CP_NV_FLAGS_2__END_RCVD_34__SHIFT 0x00000005
+#define CP_NV_FLAGS_2__DISCARD_35__SHIFT 0x00000006
+#define CP_NV_FLAGS_2__END_RCVD_35__SHIFT 0x00000007
+#define CP_NV_FLAGS_2__DISCARD_36__SHIFT 0x00000008
+#define CP_NV_FLAGS_2__END_RCVD_36__SHIFT 0x00000009
+#define CP_NV_FLAGS_2__DISCARD_37__SHIFT 0x0000000a
+#define CP_NV_FLAGS_2__END_RCVD_37__SHIFT 0x0000000b
+#define CP_NV_FLAGS_2__DISCARD_38__SHIFT 0x0000000c
+#define CP_NV_FLAGS_2__END_RCVD_38__SHIFT 0x0000000d
+#define CP_NV_FLAGS_2__DISCARD_39__SHIFT 0x0000000e
+#define CP_NV_FLAGS_2__END_RCVD_39__SHIFT 0x0000000f
+#define CP_NV_FLAGS_2__DISCARD_40__SHIFT 0x00000010
+#define CP_NV_FLAGS_2__END_RCVD_40__SHIFT 0x00000011
+#define CP_NV_FLAGS_2__DISCARD_41__SHIFT 0x00000012
+#define CP_NV_FLAGS_2__END_RCVD_41__SHIFT 0x00000013
+#define CP_NV_FLAGS_2__DISCARD_42__SHIFT 0x00000014
+#define CP_NV_FLAGS_2__END_RCVD_42__SHIFT 0x00000015
+#define CP_NV_FLAGS_2__DISCARD_43__SHIFT 0x00000016
+#define CP_NV_FLAGS_2__END_RCVD_43__SHIFT 0x00000017
+#define CP_NV_FLAGS_2__DISCARD_44__SHIFT 0x00000018
+#define CP_NV_FLAGS_2__END_RCVD_44__SHIFT 0x00000019
+#define CP_NV_FLAGS_2__DISCARD_45__SHIFT 0x0000001a
+#define CP_NV_FLAGS_2__END_RCVD_45__SHIFT 0x0000001b
+#define CP_NV_FLAGS_2__DISCARD_46__SHIFT 0x0000001c
+#define CP_NV_FLAGS_2__END_RCVD_46__SHIFT 0x0000001d
+#define CP_NV_FLAGS_2__DISCARD_47__SHIFT 0x0000001e
+#define CP_NV_FLAGS_2__END_RCVD_47__SHIFT 0x0000001f
+
+// CP_NV_FLAGS_3
+#define CP_NV_FLAGS_3__DISCARD_48__SHIFT 0x00000000
+#define CP_NV_FLAGS_3__END_RCVD_48__SHIFT 0x00000001
+#define CP_NV_FLAGS_3__DISCARD_49__SHIFT 0x00000002
+#define CP_NV_FLAGS_3__END_RCVD_49__SHIFT 0x00000003
+#define CP_NV_FLAGS_3__DISCARD_50__SHIFT 0x00000004
+#define CP_NV_FLAGS_3__END_RCVD_50__SHIFT 0x00000005
+#define CP_NV_FLAGS_3__DISCARD_51__SHIFT 0x00000006
+#define CP_NV_FLAGS_3__END_RCVD_51__SHIFT 0x00000007
+#define CP_NV_FLAGS_3__DISCARD_52__SHIFT 0x00000008
+#define CP_NV_FLAGS_3__END_RCVD_52__SHIFT 0x00000009
+#define CP_NV_FLAGS_3__DISCARD_53__SHIFT 0x0000000a
+#define CP_NV_FLAGS_3__END_RCVD_53__SHIFT 0x0000000b
+#define CP_NV_FLAGS_3__DISCARD_54__SHIFT 0x0000000c
+#define CP_NV_FLAGS_3__END_RCVD_54__SHIFT 0x0000000d
+#define CP_NV_FLAGS_3__DISCARD_55__SHIFT 0x0000000e
+#define CP_NV_FLAGS_3__END_RCVD_55__SHIFT 0x0000000f
+#define CP_NV_FLAGS_3__DISCARD_56__SHIFT 0x00000010
+#define CP_NV_FLAGS_3__END_RCVD_56__SHIFT 0x00000011
+#define CP_NV_FLAGS_3__DISCARD_57__SHIFT 0x00000012
+#define CP_NV_FLAGS_3__END_RCVD_57__SHIFT 0x00000013
+#define CP_NV_FLAGS_3__DISCARD_58__SHIFT 0x00000014
+#define CP_NV_FLAGS_3__END_RCVD_58__SHIFT 0x00000015
+#define CP_NV_FLAGS_3__DISCARD_59__SHIFT 0x00000016
+#define CP_NV_FLAGS_3__END_RCVD_59__SHIFT 0x00000017
+#define CP_NV_FLAGS_3__DISCARD_60__SHIFT 0x00000018
+#define CP_NV_FLAGS_3__END_RCVD_60__SHIFT 0x00000019
+#define CP_NV_FLAGS_3__DISCARD_61__SHIFT 0x0000001a
+#define CP_NV_FLAGS_3__END_RCVD_61__SHIFT 0x0000001b
+#define CP_NV_FLAGS_3__DISCARD_62__SHIFT 0x0000001c
+#define CP_NV_FLAGS_3__END_RCVD_62__SHIFT 0x0000001d
+#define CP_NV_FLAGS_3__DISCARD_63__SHIFT 0x0000001e
+#define CP_NV_FLAGS_3__END_RCVD_63__SHIFT 0x0000001f
+
+// CP_STATE_DEBUG_INDEX
+#define CP_STATE_DEBUG_INDEX__STATE_DEBUG_INDEX__SHIFT 0x00000000
+
+// CP_STATE_DEBUG_DATA
+#define CP_STATE_DEBUG_DATA__STATE_DEBUG_DATA__SHIFT 0x00000000
+
+// CP_PROG_COUNTER
+#define CP_PROG_COUNTER__COUNTER__SHIFT 0x00000000
+
+// CP_STAT
+#define CP_STAT__MIU_WR_BUSY__SHIFT 0x00000000
+#define CP_STAT__MIU_RD_REQ_BUSY__SHIFT 0x00000001
+#define CP_STAT__MIU_RD_RETURN_BUSY__SHIFT 0x00000002
+#define CP_STAT__RBIU_BUSY__SHIFT 0x00000003
+#define CP_STAT__RCIU_BUSY__SHIFT 0x00000004
+#define CP_STAT__CSF_RING_BUSY__SHIFT 0x00000005
+#define CP_STAT__CSF_INDIRECTS_BUSY__SHIFT 0x00000006
+#define CP_STAT__CSF_INDIRECT2_BUSY__SHIFT 0x00000007
+#define CP_STAT__CSF_ST_BUSY__SHIFT 0x00000009
+#define CP_STAT__CSF_BUSY__SHIFT 0x0000000a
+#define CP_STAT__RING_QUEUE_BUSY__SHIFT 0x0000000b
+#define CP_STAT__INDIRECTS_QUEUE_BUSY__SHIFT 0x0000000c
+#define CP_STAT__INDIRECT2_QUEUE_BUSY__SHIFT 0x0000000d
+#define CP_STAT__ST_QUEUE_BUSY__SHIFT 0x00000010
+#define CP_STAT__PFP_BUSY__SHIFT 0x00000011
+#define CP_STAT__MEQ_RING_BUSY__SHIFT 0x00000012
+#define CP_STAT__MEQ_INDIRECTS_BUSY__SHIFT 0x00000013
+#define CP_STAT__MEQ_INDIRECT2_BUSY__SHIFT 0x00000014
+#define CP_STAT__MIU_WC_STALL__SHIFT 0x00000015
+#define CP_STAT__CP_NRT_BUSY__SHIFT 0x00000016
+#define CP_STAT___3D_BUSY__SHIFT 0x00000017
+#define CP_STAT__ME_BUSY__SHIFT 0x0000001a
+#define CP_STAT__ME_WC_BUSY__SHIFT 0x0000001d
+#define CP_STAT__MIU_WC_TRACK_FIFO_EMPTY__SHIFT 0x0000001e
+#define CP_STAT__CP_BUSY__SHIFT 0x0000001f
+
+// BIOS_0_SCRATCH
+#define BIOS_0_SCRATCH__BIOS_SCRATCH__SHIFT 0x00000000
+
+// BIOS_1_SCRATCH
+#define BIOS_1_SCRATCH__BIOS_SCRATCH__SHIFT 0x00000000
+
+// BIOS_2_SCRATCH
+#define BIOS_2_SCRATCH__BIOS_SCRATCH__SHIFT 0x00000000
+
+// BIOS_3_SCRATCH
+#define BIOS_3_SCRATCH__BIOS_SCRATCH__SHIFT 0x00000000
+
+// BIOS_4_SCRATCH
+#define BIOS_4_SCRATCH__BIOS_SCRATCH__SHIFT 0x00000000
+
+// BIOS_5_SCRATCH
+#define BIOS_5_SCRATCH__BIOS_SCRATCH__SHIFT 0x00000000
+
+// BIOS_6_SCRATCH
+#define BIOS_6_SCRATCH__BIOS_SCRATCH__SHIFT 0x00000000
+
+// BIOS_7_SCRATCH
+#define BIOS_7_SCRATCH__BIOS_SCRATCH__SHIFT 0x00000000
+
+// BIOS_8_SCRATCH
+#define BIOS_8_SCRATCH__BIOS_SCRATCH__SHIFT 0x00000000
+
+// BIOS_9_SCRATCH
+#define BIOS_9_SCRATCH__BIOS_SCRATCH__SHIFT 0x00000000
+
+// BIOS_10_SCRATCH
+#define BIOS_10_SCRATCH__BIOS_SCRATCH__SHIFT 0x00000000
+
+// BIOS_11_SCRATCH
+#define BIOS_11_SCRATCH__BIOS_SCRATCH__SHIFT 0x00000000
+
+// BIOS_12_SCRATCH
+#define BIOS_12_SCRATCH__BIOS_SCRATCH__SHIFT 0x00000000
+
+// BIOS_13_SCRATCH
+#define BIOS_13_SCRATCH__BIOS_SCRATCH__SHIFT 0x00000000
+
+// BIOS_14_SCRATCH
+#define BIOS_14_SCRATCH__BIOS_SCRATCH__SHIFT 0x00000000
+
+// BIOS_15_SCRATCH
+#define BIOS_15_SCRATCH__BIOS_SCRATCH__SHIFT 0x00000000
+
+// COHER_SIZE_PM4
+#define COHER_SIZE_PM4__SIZE__SHIFT 0x00000000
+
+// COHER_BASE_PM4
+#define COHER_BASE_PM4__BASE__SHIFT 0x00000000
+
+// COHER_STATUS_PM4
+#define COHER_STATUS_PM4__MATCHING_CONTEXTS__SHIFT 0x00000000
+#define COHER_STATUS_PM4__RB_COPY_DEST_BASE_ENA__SHIFT 0x00000008
+#define COHER_STATUS_PM4__DEST_BASE_0_ENA__SHIFT 0x00000009
+#define COHER_STATUS_PM4__DEST_BASE_1_ENA__SHIFT 0x0000000a
+#define COHER_STATUS_PM4__DEST_BASE_2_ENA__SHIFT 0x0000000b
+#define COHER_STATUS_PM4__DEST_BASE_3_ENA__SHIFT 0x0000000c
+#define COHER_STATUS_PM4__DEST_BASE_4_ENA__SHIFT 0x0000000d
+#define COHER_STATUS_PM4__DEST_BASE_5_ENA__SHIFT 0x0000000e
+#define COHER_STATUS_PM4__DEST_BASE_6_ENA__SHIFT 0x0000000f
+#define COHER_STATUS_PM4__DEST_BASE_7_ENA__SHIFT 0x00000010
+#define COHER_STATUS_PM4__RB_COLOR_INFO_ENA__SHIFT 0x00000011
+#define COHER_STATUS_PM4__TC_ACTION_ENA__SHIFT 0x00000019
+#define COHER_STATUS_PM4__STATUS__SHIFT 0x0000001f
+
+// COHER_SIZE_HOST
+#define COHER_SIZE_HOST__SIZE__SHIFT 0x00000000
+
+// COHER_BASE_HOST
+#define COHER_BASE_HOST__BASE__SHIFT 0x00000000
+
+// COHER_STATUS_HOST
+#define COHER_STATUS_HOST__MATCHING_CONTEXTS__SHIFT 0x00000000
+#define COHER_STATUS_HOST__RB_COPY_DEST_BASE_ENA__SHIFT 0x00000008
+#define COHER_STATUS_HOST__DEST_BASE_0_ENA__SHIFT 0x00000009
+#define COHER_STATUS_HOST__DEST_BASE_1_ENA__SHIFT 0x0000000a
+#define COHER_STATUS_HOST__DEST_BASE_2_ENA__SHIFT 0x0000000b
+#define COHER_STATUS_HOST__DEST_BASE_3_ENA__SHIFT 0x0000000c
+#define COHER_STATUS_HOST__DEST_BASE_4_ENA__SHIFT 0x0000000d
+#define COHER_STATUS_HOST__DEST_BASE_5_ENA__SHIFT 0x0000000e
+#define COHER_STATUS_HOST__DEST_BASE_6_ENA__SHIFT 0x0000000f
+#define COHER_STATUS_HOST__DEST_BASE_7_ENA__SHIFT 0x00000010
+#define COHER_STATUS_HOST__RB_COLOR_INFO_ENA__SHIFT 0x00000011
+#define COHER_STATUS_HOST__TC_ACTION_ENA__SHIFT 0x00000019
+#define COHER_STATUS_HOST__STATUS__SHIFT 0x0000001f
+
+// COHER_DEST_BASE_0
+#define COHER_DEST_BASE_0__DEST_BASE_0__SHIFT 0x0000000c
+
+// COHER_DEST_BASE_1
+#define COHER_DEST_BASE_1__DEST_BASE_1__SHIFT 0x0000000c
+
+// COHER_DEST_BASE_2
+#define COHER_DEST_BASE_2__DEST_BASE_2__SHIFT 0x0000000c
+
+// COHER_DEST_BASE_3
+#define COHER_DEST_BASE_3__DEST_BASE_3__SHIFT 0x0000000c
+
+// COHER_DEST_BASE_4
+#define COHER_DEST_BASE_4__DEST_BASE_4__SHIFT 0x0000000c
+
+// COHER_DEST_BASE_5
+#define COHER_DEST_BASE_5__DEST_BASE_5__SHIFT 0x0000000c
+
+// COHER_DEST_BASE_6
+#define COHER_DEST_BASE_6__DEST_BASE_6__SHIFT 0x0000000c
+
+// COHER_DEST_BASE_7
+#define COHER_DEST_BASE_7__DEST_BASE_7__SHIFT 0x0000000c
+
+// RB_SURFACE_INFO
+#define RB_SURFACE_INFO__SURFACE_PITCH__SHIFT 0x00000000
+#define RB_SURFACE_INFO__MSAA_SAMPLES__SHIFT 0x0000000e
+
+// RB_COLOR_INFO
+#define RB_COLOR_INFO__COLOR_FORMAT__SHIFT 0x00000000
+#define RB_COLOR_INFO__COLOR_ROUND_MODE__SHIFT 0x00000004
+#define RB_COLOR_INFO__COLOR_LINEAR__SHIFT 0x00000006
+#define RB_COLOR_INFO__COLOR_ENDIAN__SHIFT 0x00000007
+#define RB_COLOR_INFO__COLOR_SWAP__SHIFT 0x00000009
+#define RB_COLOR_INFO__COLOR_BASE__SHIFT 0x0000000c
+
+// RB_DEPTH_INFO
+#define RB_DEPTH_INFO__DEPTH_FORMAT__SHIFT 0x00000000
+#define RB_DEPTH_INFO__DEPTH_BASE__SHIFT 0x0000000c
+
+// RB_STENCILREFMASK
+#define RB_STENCILREFMASK__STENCILREF__SHIFT 0x00000000
+#define RB_STENCILREFMASK__STENCILMASK__SHIFT 0x00000008
+#define RB_STENCILREFMASK__STENCILWRITEMASK__SHIFT 0x00000010
+#define RB_STENCILREFMASK__RESERVED0__SHIFT 0x00000018
+#define RB_STENCILREFMASK__RESERVED1__SHIFT 0x00000019
+
+// RB_ALPHA_REF
+#define RB_ALPHA_REF__ALPHA_REF__SHIFT 0x00000000
+
+// RB_COLOR_MASK
+#define RB_COLOR_MASK__WRITE_RED__SHIFT 0x00000000
+#define RB_COLOR_MASK__WRITE_GREEN__SHIFT 0x00000001
+#define RB_COLOR_MASK__WRITE_BLUE__SHIFT 0x00000002
+#define RB_COLOR_MASK__WRITE_ALPHA__SHIFT 0x00000003
+#define RB_COLOR_MASK__RESERVED2__SHIFT 0x00000004
+#define RB_COLOR_MASK__RESERVED3__SHIFT 0x00000005
+
+// RB_BLEND_RED
+#define RB_BLEND_RED__BLEND_RED__SHIFT 0x00000000
+
+// RB_BLEND_GREEN
+#define RB_BLEND_GREEN__BLEND_GREEN__SHIFT 0x00000000
+
+// RB_BLEND_BLUE
+#define RB_BLEND_BLUE__BLEND_BLUE__SHIFT 0x00000000
+
+// RB_BLEND_ALPHA
+#define RB_BLEND_ALPHA__BLEND_ALPHA__SHIFT 0x00000000
+
+// RB_FOG_COLOR
+#define RB_FOG_COLOR__FOG_RED__SHIFT 0x00000000
+#define RB_FOG_COLOR__FOG_GREEN__SHIFT 0x00000008
+#define RB_FOG_COLOR__FOG_BLUE__SHIFT 0x00000010
+
+// RB_STENCILREFMASK_BF
+#define RB_STENCILREFMASK_BF__STENCILREF_BF__SHIFT 0x00000000
+#define RB_STENCILREFMASK_BF__STENCILMASK_BF__SHIFT 0x00000008
+#define RB_STENCILREFMASK_BF__STENCILWRITEMASK_BF__SHIFT 0x00000010
+#define RB_STENCILREFMASK_BF__RESERVED4__SHIFT 0x00000018
+#define RB_STENCILREFMASK_BF__RESERVED5__SHIFT 0x00000019
+
+// RB_DEPTHCONTROL
+#define RB_DEPTHCONTROL__STENCIL_ENABLE__SHIFT 0x00000000
+#define RB_DEPTHCONTROL__Z_ENABLE__SHIFT 0x00000001
+#define RB_DEPTHCONTROL__Z_WRITE_ENABLE__SHIFT 0x00000002
+#define RB_DEPTHCONTROL__EARLY_Z_ENABLE__SHIFT 0x00000003
+#define RB_DEPTHCONTROL__ZFUNC__SHIFT 0x00000004
+#define RB_DEPTHCONTROL__BACKFACE_ENABLE__SHIFT 0x00000007
+#define RB_DEPTHCONTROL__STENCILFUNC__SHIFT 0x00000008
+#define RB_DEPTHCONTROL__STENCILFAIL__SHIFT 0x0000000b
+#define RB_DEPTHCONTROL__STENCILZPASS__SHIFT 0x0000000e
+#define RB_DEPTHCONTROL__STENCILZFAIL__SHIFT 0x00000011
+#define RB_DEPTHCONTROL__STENCILFUNC_BF__SHIFT 0x00000014
+#define RB_DEPTHCONTROL__STENCILFAIL_BF__SHIFT 0x00000017
+#define RB_DEPTHCONTROL__STENCILZPASS_BF__SHIFT 0x0000001a
+#define RB_DEPTHCONTROL__STENCILZFAIL_BF__SHIFT 0x0000001d
+
+// RB_BLENDCONTROL
+#define RB_BLENDCONTROL__COLOR_SRCBLEND__SHIFT 0x00000000
+#define RB_BLENDCONTROL__COLOR_COMB_FCN__SHIFT 0x00000005
+#define RB_BLENDCONTROL__COLOR_DESTBLEND__SHIFT 0x00000008
+#define RB_BLENDCONTROL__ALPHA_SRCBLEND__SHIFT 0x00000010
+#define RB_BLENDCONTROL__ALPHA_COMB_FCN__SHIFT 0x00000015
+#define RB_BLENDCONTROL__ALPHA_DESTBLEND__SHIFT 0x00000018
+#define RB_BLENDCONTROL__BLEND_FORCE_ENABLE__SHIFT 0x0000001d
+#define RB_BLENDCONTROL__BLEND_FORCE__SHIFT 0x0000001e
+
+// RB_COLORCONTROL
+#define RB_COLORCONTROL__ALPHA_FUNC__SHIFT 0x00000000
+#define RB_COLORCONTROL__ALPHA_TEST_ENABLE__SHIFT 0x00000003
+#define RB_COLORCONTROL__ALPHA_TO_MASK_ENABLE__SHIFT 0x00000004
+#define RB_COLORCONTROL__BLEND_DISABLE__SHIFT 0x00000005
+#define RB_COLORCONTROL__FOG_ENABLE__SHIFT 0x00000006
+#define RB_COLORCONTROL__VS_EXPORTS_FOG__SHIFT 0x00000007
+#define RB_COLORCONTROL__ROP_CODE__SHIFT 0x00000008
+#define RB_COLORCONTROL__DITHER_MODE__SHIFT 0x0000000c
+#define RB_COLORCONTROL__DITHER_TYPE__SHIFT 0x0000000e
+#define RB_COLORCONTROL__PIXEL_FOG__SHIFT 0x00000010
+#define RB_COLORCONTROL__ALPHA_TO_MASK_OFFSET0__SHIFT 0x00000018
+#define RB_COLORCONTROL__ALPHA_TO_MASK_OFFSET1__SHIFT 0x0000001a
+#define RB_COLORCONTROL__ALPHA_TO_MASK_OFFSET2__SHIFT 0x0000001c
+#define RB_COLORCONTROL__ALPHA_TO_MASK_OFFSET3__SHIFT 0x0000001e
+
+// RB_MODECONTROL
+#define RB_MODECONTROL__EDRAM_MODE__SHIFT 0x00000000
+
+// RB_COLOR_DEST_MASK
+#define RB_COLOR_DEST_MASK__COLOR_DEST_MASK__SHIFT 0x00000000
+
+// RB_COPY_CONTROL
+#define RB_COPY_CONTROL__COPY_SAMPLE_SELECT__SHIFT 0x00000000
+#define RB_COPY_CONTROL__DEPTH_CLEAR_ENABLE__SHIFT 0x00000003
+#define RB_COPY_CONTROL__CLEAR_MASK__SHIFT 0x00000004
+
+// RB_COPY_DEST_BASE
+#define RB_COPY_DEST_BASE__COPY_DEST_BASE__SHIFT 0x0000000c
+
+// RB_COPY_DEST_PITCH
+#define RB_COPY_DEST_PITCH__COPY_DEST_PITCH__SHIFT 0x00000000
+
+// RB_COPY_DEST_INFO
+#define RB_COPY_DEST_INFO__COPY_DEST_ENDIAN__SHIFT 0x00000000
+#define RB_COPY_DEST_INFO__COPY_DEST_LINEAR__SHIFT 0x00000003
+#define RB_COPY_DEST_INFO__COPY_DEST_FORMAT__SHIFT 0x00000004
+#define RB_COPY_DEST_INFO__COPY_DEST_SWAP__SHIFT 0x00000008
+#define RB_COPY_DEST_INFO__COPY_DEST_DITHER_MODE__SHIFT 0x0000000a
+#define RB_COPY_DEST_INFO__COPY_DEST_DITHER_TYPE__SHIFT 0x0000000c
+#define RB_COPY_DEST_INFO__COPY_MASK_WRITE_RED__SHIFT 0x0000000e
+#define RB_COPY_DEST_INFO__COPY_MASK_WRITE_GREEN__SHIFT 0x0000000f
+#define RB_COPY_DEST_INFO__COPY_MASK_WRITE_BLUE__SHIFT 0x00000010
+#define RB_COPY_DEST_INFO__COPY_MASK_WRITE_ALPHA__SHIFT 0x00000011
+
+// RB_COPY_DEST_PIXEL_OFFSET
+#define RB_COPY_DEST_PIXEL_OFFSET__OFFSET_X__SHIFT 0x00000000
+#define RB_COPY_DEST_PIXEL_OFFSET__OFFSET_Y__SHIFT 0x0000000d
+
+// RB_DEPTH_CLEAR
+#define RB_DEPTH_CLEAR__DEPTH_CLEAR__SHIFT 0x00000000
+
+// RB_SAMPLE_COUNT_CTL
+#define RB_SAMPLE_COUNT_CTL__RESET_SAMPLE_COUNT__SHIFT 0x00000000
+#define RB_SAMPLE_COUNT_CTL__COPY_SAMPLE_COUNT__SHIFT 0x00000001
+
+// RB_SAMPLE_COUNT_ADDR
+#define RB_SAMPLE_COUNT_ADDR__SAMPLE_COUNT_ADDR__SHIFT 0x00000000
+
+// RB_BC_CONTROL
+#define RB_BC_CONTROL__ACCUM_LINEAR_MODE_ENABLE__SHIFT 0x00000000
+#define RB_BC_CONTROL__ACCUM_TIMEOUT_SELECT__SHIFT 0x00000001
+#define RB_BC_CONTROL__DISABLE_EDRAM_CAM__SHIFT 0x00000003
+#define RB_BC_CONTROL__DISABLE_EZ_FAST_CONTEXT_SWITCH__SHIFT 0x00000004
+#define RB_BC_CONTROL__DISABLE_EZ_NULL_ZCMD_DROP__SHIFT 0x00000005
+#define RB_BC_CONTROL__DISABLE_LZ_NULL_ZCMD_DROP__SHIFT 0x00000006
+#define RB_BC_CONTROL__ENABLE_AZ_THROTTLE__SHIFT 0x00000007
+#define RB_BC_CONTROL__AZ_THROTTLE_COUNT__SHIFT 0x00000008
+#define RB_BC_CONTROL__ENABLE_CRC_UPDATE__SHIFT 0x0000000e
+#define RB_BC_CONTROL__CRC_MODE__SHIFT 0x0000000f
+#define RB_BC_CONTROL__DISABLE_SAMPLE_COUNTERS__SHIFT 0x00000010
+#define RB_BC_CONTROL__DISABLE_ACCUM__SHIFT 0x00000011
+#define RB_BC_CONTROL__ACCUM_ALLOC_MASK__SHIFT 0x00000012
+#define RB_BC_CONTROL__LINEAR_PERFORMANCE_ENABLE__SHIFT 0x00000016
+#define RB_BC_CONTROL__ACCUM_DATA_FIFO_LIMIT__SHIFT 0x00000017
+#define RB_BC_CONTROL__MEM_EXPORT_TIMEOUT_SELECT__SHIFT 0x0000001b
+#define RB_BC_CONTROL__MEM_EXPORT_LINEAR_MODE_ENABLE__SHIFT 0x0000001d
+#define RB_BC_CONTROL__CRC_SYSTEM__SHIFT 0x0000001e
+#define RB_BC_CONTROL__RESERVED6__SHIFT 0x0000001f
+
+// RB_EDRAM_INFO
+#define RB_EDRAM_INFO__EDRAM_SIZE__SHIFT 0x00000000
+#define RB_EDRAM_INFO__EDRAM_MAPPING_MODE__SHIFT 0x00000004
+#define RB_EDRAM_INFO__EDRAM_RANGE__SHIFT 0x0000000e
+
+// RB_CRC_RD_PORT
+#define RB_CRC_RD_PORT__CRC_DATA__SHIFT 0x00000000
+
+// RB_CRC_CONTROL
+#define RB_CRC_CONTROL__CRC_RD_ADVANCE__SHIFT 0x00000000
+
+// RB_CRC_MASK
+#define RB_CRC_MASK__CRC_MASK__SHIFT 0x00000000
+
+// RB_PERFCOUNTER0_SELECT
+#define RB_PERFCOUNTER0_SELECT__PERF_SEL__SHIFT 0x00000000
+
+// RB_PERFCOUNTER0_LOW
+#define RB_PERFCOUNTER0_LOW__PERF_COUNT__SHIFT 0x00000000
+
+// RB_PERFCOUNTER0_HI
+#define RB_PERFCOUNTER0_HI__PERF_COUNT__SHIFT 0x00000000
+
+// RB_TOTAL_SAMPLES
+#define RB_TOTAL_SAMPLES__TOTAL_SAMPLES__SHIFT 0x00000000
+
+// RB_ZPASS_SAMPLES
+#define RB_ZPASS_SAMPLES__ZPASS_SAMPLES__SHIFT 0x00000000
+
+// RB_ZFAIL_SAMPLES
+#define RB_ZFAIL_SAMPLES__ZFAIL_SAMPLES__SHIFT 0x00000000
+
+// RB_SFAIL_SAMPLES
+#define RB_SFAIL_SAMPLES__SFAIL_SAMPLES__SHIFT 0x00000000
+
+// RB_DEBUG_0
+#define RB_DEBUG_0__RDREQ_CTL_Z1_PRE_FULL__SHIFT 0x00000000
+#define RB_DEBUG_0__RDREQ_CTL_Z0_PRE_FULL__SHIFT 0x00000001
+#define RB_DEBUG_0__RDREQ_CTL_C1_PRE_FULL__SHIFT 0x00000002
+#define RB_DEBUG_0__RDREQ_CTL_C0_PRE_FULL__SHIFT 0x00000003
+#define RB_DEBUG_0__RDREQ_E1_ORDERING_FULL__SHIFT 0x00000004
+#define RB_DEBUG_0__RDREQ_E0_ORDERING_FULL__SHIFT 0x00000005
+#define RB_DEBUG_0__RDREQ_Z1_FULL__SHIFT 0x00000006
+#define RB_DEBUG_0__RDREQ_Z0_FULL__SHIFT 0x00000007
+#define RB_DEBUG_0__RDREQ_C1_FULL__SHIFT 0x00000008
+#define RB_DEBUG_0__RDREQ_C0_FULL__SHIFT 0x00000009
+#define RB_DEBUG_0__WRREQ_E1_MACRO_HI_FULL__SHIFT 0x0000000a
+#define RB_DEBUG_0__WRREQ_E1_MACRO_LO_FULL__SHIFT 0x0000000b
+#define RB_DEBUG_0__WRREQ_E0_MACRO_HI_FULL__SHIFT 0x0000000c
+#define RB_DEBUG_0__WRREQ_E0_MACRO_LO_FULL__SHIFT 0x0000000d
+#define RB_DEBUG_0__WRREQ_C_WE_HI_FULL__SHIFT 0x0000000e
+#define RB_DEBUG_0__WRREQ_C_WE_LO_FULL__SHIFT 0x0000000f
+#define RB_DEBUG_0__WRREQ_Z1_FULL__SHIFT 0x00000010
+#define RB_DEBUG_0__WRREQ_Z0_FULL__SHIFT 0x00000011
+#define RB_DEBUG_0__WRREQ_C1_FULL__SHIFT 0x00000012
+#define RB_DEBUG_0__WRREQ_C0_FULL__SHIFT 0x00000013
+#define RB_DEBUG_0__CMDFIFO_Z1_HOLD_FULL__SHIFT 0x00000014
+#define RB_DEBUG_0__CMDFIFO_Z0_HOLD_FULL__SHIFT 0x00000015
+#define RB_DEBUG_0__CMDFIFO_C1_HOLD_FULL__SHIFT 0x00000016
+#define RB_DEBUG_0__CMDFIFO_C0_HOLD_FULL__SHIFT 0x00000017
+#define RB_DEBUG_0__CMDFIFO_Z_ORDERING_FULL__SHIFT 0x00000018
+#define RB_DEBUG_0__CMDFIFO_C_ORDERING_FULL__SHIFT 0x00000019
+#define RB_DEBUG_0__C_SX_LAT_FULL__SHIFT 0x0000001a
+#define RB_DEBUG_0__C_SX_CMD_FULL__SHIFT 0x0000001b
+#define RB_DEBUG_0__C_EZ_TILE_FULL__SHIFT 0x0000001c
+#define RB_DEBUG_0__C_REQ_FULL__SHIFT 0x0000001d
+#define RB_DEBUG_0__C_MASK_FULL__SHIFT 0x0000001e
+#define RB_DEBUG_0__EZ_INFSAMP_FULL__SHIFT 0x0000001f
+
+// RB_DEBUG_1
+#define RB_DEBUG_1__RDREQ_Z1_CMD_EMPTY__SHIFT 0x00000000
+#define RB_DEBUG_1__RDREQ_Z0_CMD_EMPTY__SHIFT 0x00000001
+#define RB_DEBUG_1__RDREQ_C1_CMD_EMPTY__SHIFT 0x00000002
+#define RB_DEBUG_1__RDREQ_C0_CMD_EMPTY__SHIFT 0x00000003
+#define RB_DEBUG_1__RDREQ_E1_ORDERING_EMPTY__SHIFT 0x00000004
+#define RB_DEBUG_1__RDREQ_E0_ORDERING_EMPTY__SHIFT 0x00000005
+#define RB_DEBUG_1__RDREQ_Z1_EMPTY__SHIFT 0x00000006
+#define RB_DEBUG_1__RDREQ_Z0_EMPTY__SHIFT 0x00000007
+#define RB_DEBUG_1__RDREQ_C1_EMPTY__SHIFT 0x00000008
+#define RB_DEBUG_1__RDREQ_C0_EMPTY__SHIFT 0x00000009
+#define RB_DEBUG_1__WRREQ_E1_MACRO_HI_EMPTY__SHIFT 0x0000000a
+#define RB_DEBUG_1__WRREQ_E1_MACRO_LO_EMPTY__SHIFT 0x0000000b
+#define RB_DEBUG_1__WRREQ_E0_MACRO_HI_EMPTY__SHIFT 0x0000000c
+#define RB_DEBUG_1__WRREQ_E0_MACRO_LO_EMPTY__SHIFT 0x0000000d
+#define RB_DEBUG_1__WRREQ_C_WE_HI_EMPTY__SHIFT 0x0000000e
+#define RB_DEBUG_1__WRREQ_C_WE_LO_EMPTY__SHIFT 0x0000000f
+#define RB_DEBUG_1__WRREQ_Z1_EMPTY__SHIFT 0x00000010
+#define RB_DEBUG_1__WRREQ_Z0_EMPTY__SHIFT 0x00000011
+#define RB_DEBUG_1__WRREQ_C1_PRE_EMPTY__SHIFT 0x00000012
+#define RB_DEBUG_1__WRREQ_C0_PRE_EMPTY__SHIFT 0x00000013
+#define RB_DEBUG_1__CMDFIFO_Z1_HOLD_EMPTY__SHIFT 0x00000014
+#define RB_DEBUG_1__CMDFIFO_Z0_HOLD_EMPTY__SHIFT 0x00000015
+#define RB_DEBUG_1__CMDFIFO_C1_HOLD_EMPTY__SHIFT 0x00000016
+#define RB_DEBUG_1__CMDFIFO_C0_HOLD_EMPTY__SHIFT 0x00000017
+#define RB_DEBUG_1__CMDFIFO_Z_ORDERING_EMPTY__SHIFT 0x00000018
+#define RB_DEBUG_1__CMDFIFO_C_ORDERING_EMPTY__SHIFT 0x00000019
+#define RB_DEBUG_1__C_SX_LAT_EMPTY__SHIFT 0x0000001a
+#define RB_DEBUG_1__C_SX_CMD_EMPTY__SHIFT 0x0000001b
+#define RB_DEBUG_1__C_EZ_TILE_EMPTY__SHIFT 0x0000001c
+#define RB_DEBUG_1__C_REQ_EMPTY__SHIFT 0x0000001d
+#define RB_DEBUG_1__C_MASK_EMPTY__SHIFT 0x0000001e
+#define RB_DEBUG_1__EZ_INFSAMP_EMPTY__SHIFT 0x0000001f
+
+// RB_DEBUG_2
+#define RB_DEBUG_2__TILE_FIFO_COUNT__SHIFT 0x00000000
+#define RB_DEBUG_2__SX_LAT_FIFO_COUNT__SHIFT 0x00000004
+#define RB_DEBUG_2__MEM_EXPORT_FLAG__SHIFT 0x0000000b
+#define RB_DEBUG_2__SYSMEM_BLEND_FLAG__SHIFT 0x0000000c
+#define RB_DEBUG_2__CURRENT_TILE_EVENT__SHIFT 0x0000000d
+#define RB_DEBUG_2__EZ_INFTILE_FULL__SHIFT 0x0000000e
+#define RB_DEBUG_2__EZ_MASK_LOWER_FULL__SHIFT 0x0000000f
+#define RB_DEBUG_2__EZ_MASK_UPPER_FULL__SHIFT 0x00000010
+#define RB_DEBUG_2__Z0_MASK_FULL__SHIFT 0x00000011
+#define RB_DEBUG_2__Z1_MASK_FULL__SHIFT 0x00000012
+#define RB_DEBUG_2__Z0_REQ_FULL__SHIFT 0x00000013
+#define RB_DEBUG_2__Z1_REQ_FULL__SHIFT 0x00000014
+#define RB_DEBUG_2__Z_SAMP_FULL__SHIFT 0x00000015
+#define RB_DEBUG_2__Z_TILE_FULL__SHIFT 0x00000016
+#define RB_DEBUG_2__EZ_INFTILE_EMPTY__SHIFT 0x00000017
+#define RB_DEBUG_2__EZ_MASK_LOWER_EMPTY__SHIFT 0x00000018
+#define RB_DEBUG_2__EZ_MASK_UPPER_EMPTY__SHIFT 0x00000019
+#define RB_DEBUG_2__Z0_MASK_EMPTY__SHIFT 0x0000001a
+#define RB_DEBUG_2__Z1_MASK_EMPTY__SHIFT 0x0000001b
+#define RB_DEBUG_2__Z0_REQ_EMPTY__SHIFT 0x0000001c
+#define RB_DEBUG_2__Z1_REQ_EMPTY__SHIFT 0x0000001d
+#define RB_DEBUG_2__Z_SAMP_EMPTY__SHIFT 0x0000001e
+#define RB_DEBUG_2__Z_TILE_EMPTY__SHIFT 0x0000001f
+
+// RB_DEBUG_3
+#define RB_DEBUG_3__ACCUM_VALID__SHIFT 0x00000000
+#define RB_DEBUG_3__ACCUM_FLUSHING__SHIFT 0x00000004
+#define RB_DEBUG_3__ACCUM_WRITE_CLEAN_COUNT__SHIFT 0x00000008
+#define RB_DEBUG_3__ACCUM_INPUT_REG_VALID__SHIFT 0x0000000e
+#define RB_DEBUG_3__ACCUM_DATA_FIFO_CNT__SHIFT 0x0000000f
+#define RB_DEBUG_3__SHD_FULL__SHIFT 0x00000013
+#define RB_DEBUG_3__SHD_EMPTY__SHIFT 0x00000014
+#define RB_DEBUG_3__EZ_RETURN_LOWER_EMPTY__SHIFT 0x00000015
+#define RB_DEBUG_3__EZ_RETURN_UPPER_EMPTY__SHIFT 0x00000016
+#define RB_DEBUG_3__EZ_RETURN_LOWER_FULL__SHIFT 0x00000017
+#define RB_DEBUG_3__EZ_RETURN_UPPER_FULL__SHIFT 0x00000018
+#define RB_DEBUG_3__ZEXP_LOWER_EMPTY__SHIFT 0x00000019
+#define RB_DEBUG_3__ZEXP_UPPER_EMPTY__SHIFT 0x0000001a
+#define RB_DEBUG_3__ZEXP_LOWER_FULL__SHIFT 0x0000001b
+#define RB_DEBUG_3__ZEXP_UPPER_FULL__SHIFT 0x0000001c
+
+// RB_DEBUG_4
+#define RB_DEBUG_4__GMEM_RD_ACCESS_FLAG__SHIFT 0x00000000
+#define RB_DEBUG_4__GMEM_WR_ACCESS_FLAG__SHIFT 0x00000001
+#define RB_DEBUG_4__SYSMEM_RD_ACCESS_FLAG__SHIFT 0x00000002
+#define RB_DEBUG_4__SYSMEM_WR_ACCESS_FLAG__SHIFT 0x00000003
+#define RB_DEBUG_4__ACCUM_DATA_FIFO_EMPTY__SHIFT 0x00000004
+#define RB_DEBUG_4__ACCUM_ORDER_FIFO_EMPTY__SHIFT 0x00000005
+#define RB_DEBUG_4__ACCUM_DATA_FIFO_FULL__SHIFT 0x00000006
+#define RB_DEBUG_4__ACCUM_ORDER_FIFO_FULL__SHIFT 0x00000007
+#define RB_DEBUG_4__SYSMEM_WRITE_COUNT_OVERFLOW__SHIFT 0x00000008
+#define RB_DEBUG_4__CONTEXT_COUNT_DEBUG__SHIFT 0x00000009
+
+// RB_FLAG_CONTROL
+#define RB_FLAG_CONTROL__DEBUG_FLAG_CLEAR__SHIFT 0x00000000
+
+// RB_BC_SPARES
+#define RB_BC_SPARES__RESERVED__SHIFT 0x00000000
+
+// BC_DUMMY_CRAYRB_ENUMS
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_DEPTH_FORMAT__SHIFT 0x00000000
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_SURFACE_SWAP__SHIFT 0x00000006
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_DEPTH_ARRAY__SHIFT 0x00000007
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_ARRAY__SHIFT 0x00000009
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_COLOR_FORMAT__SHIFT 0x0000000b
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_SURFACE_NUMBER__SHIFT 0x00000011
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_SURFACE_FORMAT__SHIFT 0x00000014
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_SURFACE_TILING__SHIFT 0x0000001a
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_SURFACE_ARRAY__SHIFT 0x0000001b
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_RB_COPY_DEST_INFO_NUMBER__SHIFT 0x0000001d
+
+// BC_DUMMY_CRAYRB_MOREENUMS
+#define BC_DUMMY_CRAYRB_MOREENUMS__DUMMY_CRAYRB_COLORARRAYX__SHIFT 0x00000000
+
+#endif
diff --git a/drivers/mxc/amd-gpu/include/reg/yamato/10/yamato_struct.h b/drivers/mxc/amd-gpu/include/reg/yamato/10/yamato_struct.h
new file mode 100644
index 000000000000..d6cc2fe9abdf
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/reg/yamato/10/yamato_struct.h
@@ -0,0 +1,52421 @@
+/* Copyright (c) 2002,2007-2009, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#if !defined (_CP_FIDDLE_H)
+#define _CP_FIDDLE_H
+
+/*******************************************************
+ * Enums
+ *******************************************************/
+
+
+/*******************************************************
+ * Values
+ *******************************************************/
+
+
+/*******************************************************
+ * Structures
+ *******************************************************/
+
+/*
+ * CP_RB_BASE struct
+ */
+
+#define CP_RB_BASE_RB_BASE_SIZE 27
+
+#define CP_RB_BASE_RB_BASE_SHIFT 5
+
+#define CP_RB_BASE_RB_BASE_MASK 0xffffffe0
+
+#define CP_RB_BASE_MASK \
+ (CP_RB_BASE_RB_BASE_MASK)
+
+#define CP_RB_BASE(rb_base) \
+ ((rb_base << CP_RB_BASE_RB_BASE_SHIFT))
+
+#define CP_RB_BASE_GET_RB_BASE(cp_rb_base) \
+ ((cp_rb_base & CP_RB_BASE_RB_BASE_MASK) >> CP_RB_BASE_RB_BASE_SHIFT)
+
+#define CP_RB_BASE_SET_RB_BASE(cp_rb_base_reg, rb_base) \
+ cp_rb_base_reg = (cp_rb_base_reg & ~CP_RB_BASE_RB_BASE_MASK) | (rb_base << CP_RB_BASE_RB_BASE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_rb_base_t {
+ unsigned int : 5;
+ unsigned int rb_base : CP_RB_BASE_RB_BASE_SIZE;
+ } cp_rb_base_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_rb_base_t {
+ unsigned int rb_base : CP_RB_BASE_RB_BASE_SIZE;
+ unsigned int : 5;
+ } cp_rb_base_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_rb_base_t f;
+} cp_rb_base_u;
+
+
+/*
+ * CP_RB_CNTL struct
+ */
+
+#define CP_RB_CNTL_RB_BUFSZ_SIZE 6
+#define CP_RB_CNTL_RB_BLKSZ_SIZE 6
+#define CP_RB_CNTL_BUF_SWAP_SIZE 2
+#define CP_RB_CNTL_RB_POLL_EN_SIZE 1
+#define CP_RB_CNTL_RB_NO_UPDATE_SIZE 1
+#define CP_RB_CNTL_RB_RPTR_WR_ENA_SIZE 1
+
+#define CP_RB_CNTL_RB_BUFSZ_SHIFT 0
+#define CP_RB_CNTL_RB_BLKSZ_SHIFT 8
+#define CP_RB_CNTL_BUF_SWAP_SHIFT 16
+#define CP_RB_CNTL_RB_POLL_EN_SHIFT 20
+#define CP_RB_CNTL_RB_NO_UPDATE_SHIFT 27
+#define CP_RB_CNTL_RB_RPTR_WR_ENA_SHIFT 31
+
+#define CP_RB_CNTL_RB_BUFSZ_MASK 0x0000003f
+#define CP_RB_CNTL_RB_BLKSZ_MASK 0x00003f00
+#define CP_RB_CNTL_BUF_SWAP_MASK 0x00030000
+#define CP_RB_CNTL_RB_POLL_EN_MASK 0x00100000
+#define CP_RB_CNTL_RB_NO_UPDATE_MASK 0x08000000
+#define CP_RB_CNTL_RB_RPTR_WR_ENA_MASK 0x80000000
+
+#define CP_RB_CNTL_MASK \
+ (CP_RB_CNTL_RB_BUFSZ_MASK | \
+ CP_RB_CNTL_RB_BLKSZ_MASK | \
+ CP_RB_CNTL_BUF_SWAP_MASK | \
+ CP_RB_CNTL_RB_POLL_EN_MASK | \
+ CP_RB_CNTL_RB_NO_UPDATE_MASK | \
+ CP_RB_CNTL_RB_RPTR_WR_ENA_MASK)
+
+#define CP_RB_CNTL(rb_bufsz, rb_blksz, buf_swap, rb_poll_en, rb_no_update, rb_rptr_wr_ena) \
+ ((rb_bufsz << CP_RB_CNTL_RB_BUFSZ_SHIFT) | \
+ (rb_blksz << CP_RB_CNTL_RB_BLKSZ_SHIFT) | \
+ (buf_swap << CP_RB_CNTL_BUF_SWAP_SHIFT) | \
+ (rb_poll_en << CP_RB_CNTL_RB_POLL_EN_SHIFT) | \
+ (rb_no_update << CP_RB_CNTL_RB_NO_UPDATE_SHIFT) | \
+ (rb_rptr_wr_ena << CP_RB_CNTL_RB_RPTR_WR_ENA_SHIFT))
+
+#define CP_RB_CNTL_GET_RB_BUFSZ(cp_rb_cntl) \
+ ((cp_rb_cntl & CP_RB_CNTL_RB_BUFSZ_MASK) >> CP_RB_CNTL_RB_BUFSZ_SHIFT)
+#define CP_RB_CNTL_GET_RB_BLKSZ(cp_rb_cntl) \
+ ((cp_rb_cntl & CP_RB_CNTL_RB_BLKSZ_MASK) >> CP_RB_CNTL_RB_BLKSZ_SHIFT)
+#define CP_RB_CNTL_GET_BUF_SWAP(cp_rb_cntl) \
+ ((cp_rb_cntl & CP_RB_CNTL_BUF_SWAP_MASK) >> CP_RB_CNTL_BUF_SWAP_SHIFT)
+#define CP_RB_CNTL_GET_RB_POLL_EN(cp_rb_cntl) \
+ ((cp_rb_cntl & CP_RB_CNTL_RB_POLL_EN_MASK) >> CP_RB_CNTL_RB_POLL_EN_SHIFT)
+#define CP_RB_CNTL_GET_RB_NO_UPDATE(cp_rb_cntl) \
+ ((cp_rb_cntl & CP_RB_CNTL_RB_NO_UPDATE_MASK) >> CP_RB_CNTL_RB_NO_UPDATE_SHIFT)
+#define CP_RB_CNTL_GET_RB_RPTR_WR_ENA(cp_rb_cntl) \
+ ((cp_rb_cntl & CP_RB_CNTL_RB_RPTR_WR_ENA_MASK) >> CP_RB_CNTL_RB_RPTR_WR_ENA_SHIFT)
+
+#define CP_RB_CNTL_SET_RB_BUFSZ(cp_rb_cntl_reg, rb_bufsz) \
+ cp_rb_cntl_reg = (cp_rb_cntl_reg & ~CP_RB_CNTL_RB_BUFSZ_MASK) | (rb_bufsz << CP_RB_CNTL_RB_BUFSZ_SHIFT)
+#define CP_RB_CNTL_SET_RB_BLKSZ(cp_rb_cntl_reg, rb_blksz) \
+ cp_rb_cntl_reg = (cp_rb_cntl_reg & ~CP_RB_CNTL_RB_BLKSZ_MASK) | (rb_blksz << CP_RB_CNTL_RB_BLKSZ_SHIFT)
+#define CP_RB_CNTL_SET_BUF_SWAP(cp_rb_cntl_reg, buf_swap) \
+ cp_rb_cntl_reg = (cp_rb_cntl_reg & ~CP_RB_CNTL_BUF_SWAP_MASK) | (buf_swap << CP_RB_CNTL_BUF_SWAP_SHIFT)
+#define CP_RB_CNTL_SET_RB_POLL_EN(cp_rb_cntl_reg, rb_poll_en) \
+ cp_rb_cntl_reg = (cp_rb_cntl_reg & ~CP_RB_CNTL_RB_POLL_EN_MASK) | (rb_poll_en << CP_RB_CNTL_RB_POLL_EN_SHIFT)
+#define CP_RB_CNTL_SET_RB_NO_UPDATE(cp_rb_cntl_reg, rb_no_update) \
+ cp_rb_cntl_reg = (cp_rb_cntl_reg & ~CP_RB_CNTL_RB_NO_UPDATE_MASK) | (rb_no_update << CP_RB_CNTL_RB_NO_UPDATE_SHIFT)
+#define CP_RB_CNTL_SET_RB_RPTR_WR_ENA(cp_rb_cntl_reg, rb_rptr_wr_ena) \
+ cp_rb_cntl_reg = (cp_rb_cntl_reg & ~CP_RB_CNTL_RB_RPTR_WR_ENA_MASK) | (rb_rptr_wr_ena << CP_RB_CNTL_RB_RPTR_WR_ENA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_rb_cntl_t {
+ unsigned int rb_bufsz : CP_RB_CNTL_RB_BUFSZ_SIZE;
+ unsigned int : 2;
+ unsigned int rb_blksz : CP_RB_CNTL_RB_BLKSZ_SIZE;
+ unsigned int : 2;
+ unsigned int buf_swap : CP_RB_CNTL_BUF_SWAP_SIZE;
+ unsigned int : 2;
+ unsigned int rb_poll_en : CP_RB_CNTL_RB_POLL_EN_SIZE;
+ unsigned int : 6;
+ unsigned int rb_no_update : CP_RB_CNTL_RB_NO_UPDATE_SIZE;
+ unsigned int : 3;
+ unsigned int rb_rptr_wr_ena : CP_RB_CNTL_RB_RPTR_WR_ENA_SIZE;
+ } cp_rb_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_rb_cntl_t {
+ unsigned int rb_rptr_wr_ena : CP_RB_CNTL_RB_RPTR_WR_ENA_SIZE;
+ unsigned int : 3;
+ unsigned int rb_no_update : CP_RB_CNTL_RB_NO_UPDATE_SIZE;
+ unsigned int : 6;
+ unsigned int rb_poll_en : CP_RB_CNTL_RB_POLL_EN_SIZE;
+ unsigned int : 2;
+ unsigned int buf_swap : CP_RB_CNTL_BUF_SWAP_SIZE;
+ unsigned int : 2;
+ unsigned int rb_blksz : CP_RB_CNTL_RB_BLKSZ_SIZE;
+ unsigned int : 2;
+ unsigned int rb_bufsz : CP_RB_CNTL_RB_BUFSZ_SIZE;
+ } cp_rb_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_rb_cntl_t f;
+} cp_rb_cntl_u;
+
+
+/*
+ * CP_RB_RPTR_ADDR struct
+ */
+
+#define CP_RB_RPTR_ADDR_RB_RPTR_SWAP_SIZE 2
+#define CP_RB_RPTR_ADDR_RB_RPTR_ADDR_SIZE 30
+
+#define CP_RB_RPTR_ADDR_RB_RPTR_SWAP_SHIFT 0
+#define CP_RB_RPTR_ADDR_RB_RPTR_ADDR_SHIFT 2
+
+#define CP_RB_RPTR_ADDR_RB_RPTR_SWAP_MASK 0x00000003
+#define CP_RB_RPTR_ADDR_RB_RPTR_ADDR_MASK 0xfffffffc
+
+#define CP_RB_RPTR_ADDR_MASK \
+ (CP_RB_RPTR_ADDR_RB_RPTR_SWAP_MASK | \
+ CP_RB_RPTR_ADDR_RB_RPTR_ADDR_MASK)
+
+#define CP_RB_RPTR_ADDR(rb_rptr_swap, rb_rptr_addr) \
+ ((rb_rptr_swap << CP_RB_RPTR_ADDR_RB_RPTR_SWAP_SHIFT) | \
+ (rb_rptr_addr << CP_RB_RPTR_ADDR_RB_RPTR_ADDR_SHIFT))
+
+#define CP_RB_RPTR_ADDR_GET_RB_RPTR_SWAP(cp_rb_rptr_addr) \
+ ((cp_rb_rptr_addr & CP_RB_RPTR_ADDR_RB_RPTR_SWAP_MASK) >> CP_RB_RPTR_ADDR_RB_RPTR_SWAP_SHIFT)
+#define CP_RB_RPTR_ADDR_GET_RB_RPTR_ADDR(cp_rb_rptr_addr) \
+ ((cp_rb_rptr_addr & CP_RB_RPTR_ADDR_RB_RPTR_ADDR_MASK) >> CP_RB_RPTR_ADDR_RB_RPTR_ADDR_SHIFT)
+
+#define CP_RB_RPTR_ADDR_SET_RB_RPTR_SWAP(cp_rb_rptr_addr_reg, rb_rptr_swap) \
+ cp_rb_rptr_addr_reg = (cp_rb_rptr_addr_reg & ~CP_RB_RPTR_ADDR_RB_RPTR_SWAP_MASK) | (rb_rptr_swap << CP_RB_RPTR_ADDR_RB_RPTR_SWAP_SHIFT)
+#define CP_RB_RPTR_ADDR_SET_RB_RPTR_ADDR(cp_rb_rptr_addr_reg, rb_rptr_addr) \
+ cp_rb_rptr_addr_reg = (cp_rb_rptr_addr_reg & ~CP_RB_RPTR_ADDR_RB_RPTR_ADDR_MASK) | (rb_rptr_addr << CP_RB_RPTR_ADDR_RB_RPTR_ADDR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_rb_rptr_addr_t {
+ unsigned int rb_rptr_swap : CP_RB_RPTR_ADDR_RB_RPTR_SWAP_SIZE;
+ unsigned int rb_rptr_addr : CP_RB_RPTR_ADDR_RB_RPTR_ADDR_SIZE;
+ } cp_rb_rptr_addr_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_rb_rptr_addr_t {
+ unsigned int rb_rptr_addr : CP_RB_RPTR_ADDR_RB_RPTR_ADDR_SIZE;
+ unsigned int rb_rptr_swap : CP_RB_RPTR_ADDR_RB_RPTR_SWAP_SIZE;
+ } cp_rb_rptr_addr_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_rb_rptr_addr_t f;
+} cp_rb_rptr_addr_u;
+
+
+/*
+ * CP_RB_RPTR struct
+ */
+
+#define CP_RB_RPTR_RB_RPTR_SIZE 20
+
+#define CP_RB_RPTR_RB_RPTR_SHIFT 0
+
+#define CP_RB_RPTR_RB_RPTR_MASK 0x000fffff
+
+#define CP_RB_RPTR_MASK \
+ (CP_RB_RPTR_RB_RPTR_MASK)
+
+#define CP_RB_RPTR(rb_rptr) \
+ ((rb_rptr << CP_RB_RPTR_RB_RPTR_SHIFT))
+
+#define CP_RB_RPTR_GET_RB_RPTR(cp_rb_rptr) \
+ ((cp_rb_rptr & CP_RB_RPTR_RB_RPTR_MASK) >> CP_RB_RPTR_RB_RPTR_SHIFT)
+
+#define CP_RB_RPTR_SET_RB_RPTR(cp_rb_rptr_reg, rb_rptr) \
+ cp_rb_rptr_reg = (cp_rb_rptr_reg & ~CP_RB_RPTR_RB_RPTR_MASK) | (rb_rptr << CP_RB_RPTR_RB_RPTR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_rb_rptr_t {
+ unsigned int rb_rptr : CP_RB_RPTR_RB_RPTR_SIZE;
+ unsigned int : 12;
+ } cp_rb_rptr_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_rb_rptr_t {
+ unsigned int : 12;
+ unsigned int rb_rptr : CP_RB_RPTR_RB_RPTR_SIZE;
+ } cp_rb_rptr_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_rb_rptr_t f;
+} cp_rb_rptr_u;
+
+
+/*
+ * CP_RB_RPTR_WR struct
+ */
+
+#define CP_RB_RPTR_WR_RB_RPTR_WR_SIZE 20
+
+#define CP_RB_RPTR_WR_RB_RPTR_WR_SHIFT 0
+
+#define CP_RB_RPTR_WR_RB_RPTR_WR_MASK 0x000fffff
+
+#define CP_RB_RPTR_WR_MASK \
+ (CP_RB_RPTR_WR_RB_RPTR_WR_MASK)
+
+#define CP_RB_RPTR_WR(rb_rptr_wr) \
+ ((rb_rptr_wr << CP_RB_RPTR_WR_RB_RPTR_WR_SHIFT))
+
+#define CP_RB_RPTR_WR_GET_RB_RPTR_WR(cp_rb_rptr_wr) \
+ ((cp_rb_rptr_wr & CP_RB_RPTR_WR_RB_RPTR_WR_MASK) >> CP_RB_RPTR_WR_RB_RPTR_WR_SHIFT)
+
+#define CP_RB_RPTR_WR_SET_RB_RPTR_WR(cp_rb_rptr_wr_reg, rb_rptr_wr) \
+ cp_rb_rptr_wr_reg = (cp_rb_rptr_wr_reg & ~CP_RB_RPTR_WR_RB_RPTR_WR_MASK) | (rb_rptr_wr << CP_RB_RPTR_WR_RB_RPTR_WR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_rb_rptr_wr_t {
+ unsigned int rb_rptr_wr : CP_RB_RPTR_WR_RB_RPTR_WR_SIZE;
+ unsigned int : 12;
+ } cp_rb_rptr_wr_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_rb_rptr_wr_t {
+ unsigned int : 12;
+ unsigned int rb_rptr_wr : CP_RB_RPTR_WR_RB_RPTR_WR_SIZE;
+ } cp_rb_rptr_wr_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_rb_rptr_wr_t f;
+} cp_rb_rptr_wr_u;
+
+
+/*
+ * CP_RB_WPTR struct
+ */
+
+#define CP_RB_WPTR_RB_WPTR_SIZE 20
+
+#define CP_RB_WPTR_RB_WPTR_SHIFT 0
+
+#define CP_RB_WPTR_RB_WPTR_MASK 0x000fffff
+
+#define CP_RB_WPTR_MASK \
+ (CP_RB_WPTR_RB_WPTR_MASK)
+
+#define CP_RB_WPTR(rb_wptr) \
+ ((rb_wptr << CP_RB_WPTR_RB_WPTR_SHIFT))
+
+#define CP_RB_WPTR_GET_RB_WPTR(cp_rb_wptr) \
+ ((cp_rb_wptr & CP_RB_WPTR_RB_WPTR_MASK) >> CP_RB_WPTR_RB_WPTR_SHIFT)
+
+#define CP_RB_WPTR_SET_RB_WPTR(cp_rb_wptr_reg, rb_wptr) \
+ cp_rb_wptr_reg = (cp_rb_wptr_reg & ~CP_RB_WPTR_RB_WPTR_MASK) | (rb_wptr << CP_RB_WPTR_RB_WPTR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_rb_wptr_t {
+ unsigned int rb_wptr : CP_RB_WPTR_RB_WPTR_SIZE;
+ unsigned int : 12;
+ } cp_rb_wptr_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_rb_wptr_t {
+ unsigned int : 12;
+ unsigned int rb_wptr : CP_RB_WPTR_RB_WPTR_SIZE;
+ } cp_rb_wptr_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_rb_wptr_t f;
+} cp_rb_wptr_u;
+
+
+/*
+ * CP_RB_WPTR_DELAY struct
+ */
+
+#define CP_RB_WPTR_DELAY_PRE_WRITE_TIMER_SIZE 28
+#define CP_RB_WPTR_DELAY_PRE_WRITE_LIMIT_SIZE 4
+
+#define CP_RB_WPTR_DELAY_PRE_WRITE_TIMER_SHIFT 0
+#define CP_RB_WPTR_DELAY_PRE_WRITE_LIMIT_SHIFT 28
+
+#define CP_RB_WPTR_DELAY_PRE_WRITE_TIMER_MASK 0x0fffffff
+#define CP_RB_WPTR_DELAY_PRE_WRITE_LIMIT_MASK 0xf0000000
+
+#define CP_RB_WPTR_DELAY_MASK \
+ (CP_RB_WPTR_DELAY_PRE_WRITE_TIMER_MASK | \
+ CP_RB_WPTR_DELAY_PRE_WRITE_LIMIT_MASK)
+
+#define CP_RB_WPTR_DELAY(pre_write_timer, pre_write_limit) \
+ ((pre_write_timer << CP_RB_WPTR_DELAY_PRE_WRITE_TIMER_SHIFT) | \
+ (pre_write_limit << CP_RB_WPTR_DELAY_PRE_WRITE_LIMIT_SHIFT))
+
+#define CP_RB_WPTR_DELAY_GET_PRE_WRITE_TIMER(cp_rb_wptr_delay) \
+ ((cp_rb_wptr_delay & CP_RB_WPTR_DELAY_PRE_WRITE_TIMER_MASK) >> CP_RB_WPTR_DELAY_PRE_WRITE_TIMER_SHIFT)
+#define CP_RB_WPTR_DELAY_GET_PRE_WRITE_LIMIT(cp_rb_wptr_delay) \
+ ((cp_rb_wptr_delay & CP_RB_WPTR_DELAY_PRE_WRITE_LIMIT_MASK) >> CP_RB_WPTR_DELAY_PRE_WRITE_LIMIT_SHIFT)
+
+#define CP_RB_WPTR_DELAY_SET_PRE_WRITE_TIMER(cp_rb_wptr_delay_reg, pre_write_timer) \
+ cp_rb_wptr_delay_reg = (cp_rb_wptr_delay_reg & ~CP_RB_WPTR_DELAY_PRE_WRITE_TIMER_MASK) | (pre_write_timer << CP_RB_WPTR_DELAY_PRE_WRITE_TIMER_SHIFT)
+#define CP_RB_WPTR_DELAY_SET_PRE_WRITE_LIMIT(cp_rb_wptr_delay_reg, pre_write_limit) \
+ cp_rb_wptr_delay_reg = (cp_rb_wptr_delay_reg & ~CP_RB_WPTR_DELAY_PRE_WRITE_LIMIT_MASK) | (pre_write_limit << CP_RB_WPTR_DELAY_PRE_WRITE_LIMIT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_rb_wptr_delay_t {
+ unsigned int pre_write_timer : CP_RB_WPTR_DELAY_PRE_WRITE_TIMER_SIZE;
+ unsigned int pre_write_limit : CP_RB_WPTR_DELAY_PRE_WRITE_LIMIT_SIZE;
+ } cp_rb_wptr_delay_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_rb_wptr_delay_t {
+ unsigned int pre_write_limit : CP_RB_WPTR_DELAY_PRE_WRITE_LIMIT_SIZE;
+ unsigned int pre_write_timer : CP_RB_WPTR_DELAY_PRE_WRITE_TIMER_SIZE;
+ } cp_rb_wptr_delay_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_rb_wptr_delay_t f;
+} cp_rb_wptr_delay_u;
+
+
+/*
+ * CP_RB_WPTR_BASE struct
+ */
+
+#define CP_RB_WPTR_BASE_RB_WPTR_SWAP_SIZE 2
+#define CP_RB_WPTR_BASE_RB_WPTR_BASE_SIZE 30
+
+#define CP_RB_WPTR_BASE_RB_WPTR_SWAP_SHIFT 0
+#define CP_RB_WPTR_BASE_RB_WPTR_BASE_SHIFT 2
+
+#define CP_RB_WPTR_BASE_RB_WPTR_SWAP_MASK 0x00000003
+#define CP_RB_WPTR_BASE_RB_WPTR_BASE_MASK 0xfffffffc
+
+#define CP_RB_WPTR_BASE_MASK \
+ (CP_RB_WPTR_BASE_RB_WPTR_SWAP_MASK | \
+ CP_RB_WPTR_BASE_RB_WPTR_BASE_MASK)
+
+#define CP_RB_WPTR_BASE(rb_wptr_swap, rb_wptr_base) \
+ ((rb_wptr_swap << CP_RB_WPTR_BASE_RB_WPTR_SWAP_SHIFT) | \
+ (rb_wptr_base << CP_RB_WPTR_BASE_RB_WPTR_BASE_SHIFT))
+
+#define CP_RB_WPTR_BASE_GET_RB_WPTR_SWAP(cp_rb_wptr_base) \
+ ((cp_rb_wptr_base & CP_RB_WPTR_BASE_RB_WPTR_SWAP_MASK) >> CP_RB_WPTR_BASE_RB_WPTR_SWAP_SHIFT)
+#define CP_RB_WPTR_BASE_GET_RB_WPTR_BASE(cp_rb_wptr_base) \
+ ((cp_rb_wptr_base & CP_RB_WPTR_BASE_RB_WPTR_BASE_MASK) >> CP_RB_WPTR_BASE_RB_WPTR_BASE_SHIFT)
+
+#define CP_RB_WPTR_BASE_SET_RB_WPTR_SWAP(cp_rb_wptr_base_reg, rb_wptr_swap) \
+ cp_rb_wptr_base_reg = (cp_rb_wptr_base_reg & ~CP_RB_WPTR_BASE_RB_WPTR_SWAP_MASK) | (rb_wptr_swap << CP_RB_WPTR_BASE_RB_WPTR_SWAP_SHIFT)
+#define CP_RB_WPTR_BASE_SET_RB_WPTR_BASE(cp_rb_wptr_base_reg, rb_wptr_base) \
+ cp_rb_wptr_base_reg = (cp_rb_wptr_base_reg & ~CP_RB_WPTR_BASE_RB_WPTR_BASE_MASK) | (rb_wptr_base << CP_RB_WPTR_BASE_RB_WPTR_BASE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_rb_wptr_base_t {
+ unsigned int rb_wptr_swap : CP_RB_WPTR_BASE_RB_WPTR_SWAP_SIZE;
+ unsigned int rb_wptr_base : CP_RB_WPTR_BASE_RB_WPTR_BASE_SIZE;
+ } cp_rb_wptr_base_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_rb_wptr_base_t {
+ unsigned int rb_wptr_base : CP_RB_WPTR_BASE_RB_WPTR_BASE_SIZE;
+ unsigned int rb_wptr_swap : CP_RB_WPTR_BASE_RB_WPTR_SWAP_SIZE;
+ } cp_rb_wptr_base_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_rb_wptr_base_t f;
+} cp_rb_wptr_base_u;
+
+
+/*
+ * CP_IB1_BASE struct
+ */
+
+#define CP_IB1_BASE_IB1_BASE_SIZE 30
+
+#define CP_IB1_BASE_IB1_BASE_SHIFT 2
+
+#define CP_IB1_BASE_IB1_BASE_MASK 0xfffffffc
+
+#define CP_IB1_BASE_MASK \
+ (CP_IB1_BASE_IB1_BASE_MASK)
+
+#define CP_IB1_BASE(ib1_base) \
+ ((ib1_base << CP_IB1_BASE_IB1_BASE_SHIFT))
+
+#define CP_IB1_BASE_GET_IB1_BASE(cp_ib1_base) \
+ ((cp_ib1_base & CP_IB1_BASE_IB1_BASE_MASK) >> CP_IB1_BASE_IB1_BASE_SHIFT)
+
+#define CP_IB1_BASE_SET_IB1_BASE(cp_ib1_base_reg, ib1_base) \
+ cp_ib1_base_reg = (cp_ib1_base_reg & ~CP_IB1_BASE_IB1_BASE_MASK) | (ib1_base << CP_IB1_BASE_IB1_BASE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_ib1_base_t {
+ unsigned int : 2;
+ unsigned int ib1_base : CP_IB1_BASE_IB1_BASE_SIZE;
+ } cp_ib1_base_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_ib1_base_t {
+ unsigned int ib1_base : CP_IB1_BASE_IB1_BASE_SIZE;
+ unsigned int : 2;
+ } cp_ib1_base_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_ib1_base_t f;
+} cp_ib1_base_u;
+
+
+/*
+ * CP_IB1_BUFSZ struct
+ */
+
+#define CP_IB1_BUFSZ_IB1_BUFSZ_SIZE 20
+
+#define CP_IB1_BUFSZ_IB1_BUFSZ_SHIFT 0
+
+#define CP_IB1_BUFSZ_IB1_BUFSZ_MASK 0x000fffff
+
+#define CP_IB1_BUFSZ_MASK \
+ (CP_IB1_BUFSZ_IB1_BUFSZ_MASK)
+
+#define CP_IB1_BUFSZ(ib1_bufsz) \
+ ((ib1_bufsz << CP_IB1_BUFSZ_IB1_BUFSZ_SHIFT))
+
+#define CP_IB1_BUFSZ_GET_IB1_BUFSZ(cp_ib1_bufsz) \
+ ((cp_ib1_bufsz & CP_IB1_BUFSZ_IB1_BUFSZ_MASK) >> CP_IB1_BUFSZ_IB1_BUFSZ_SHIFT)
+
+#define CP_IB1_BUFSZ_SET_IB1_BUFSZ(cp_ib1_bufsz_reg, ib1_bufsz) \
+ cp_ib1_bufsz_reg = (cp_ib1_bufsz_reg & ~CP_IB1_BUFSZ_IB1_BUFSZ_MASK) | (ib1_bufsz << CP_IB1_BUFSZ_IB1_BUFSZ_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_ib1_bufsz_t {
+ unsigned int ib1_bufsz : CP_IB1_BUFSZ_IB1_BUFSZ_SIZE;
+ unsigned int : 12;
+ } cp_ib1_bufsz_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_ib1_bufsz_t {
+ unsigned int : 12;
+ unsigned int ib1_bufsz : CP_IB1_BUFSZ_IB1_BUFSZ_SIZE;
+ } cp_ib1_bufsz_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_ib1_bufsz_t f;
+} cp_ib1_bufsz_u;
+
+
+/*
+ * CP_IB2_BASE struct
+ */
+
+#define CP_IB2_BASE_IB2_BASE_SIZE 30
+
+#define CP_IB2_BASE_IB2_BASE_SHIFT 2
+
+#define CP_IB2_BASE_IB2_BASE_MASK 0xfffffffc
+
+#define CP_IB2_BASE_MASK \
+ (CP_IB2_BASE_IB2_BASE_MASK)
+
+#define CP_IB2_BASE(ib2_base) \
+ ((ib2_base << CP_IB2_BASE_IB2_BASE_SHIFT))
+
+#define CP_IB2_BASE_GET_IB2_BASE(cp_ib2_base) \
+ ((cp_ib2_base & CP_IB2_BASE_IB2_BASE_MASK) >> CP_IB2_BASE_IB2_BASE_SHIFT)
+
+#define CP_IB2_BASE_SET_IB2_BASE(cp_ib2_base_reg, ib2_base) \
+ cp_ib2_base_reg = (cp_ib2_base_reg & ~CP_IB2_BASE_IB2_BASE_MASK) | (ib2_base << CP_IB2_BASE_IB2_BASE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_ib2_base_t {
+ unsigned int : 2;
+ unsigned int ib2_base : CP_IB2_BASE_IB2_BASE_SIZE;
+ } cp_ib2_base_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_ib2_base_t {
+ unsigned int ib2_base : CP_IB2_BASE_IB2_BASE_SIZE;
+ unsigned int : 2;
+ } cp_ib2_base_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_ib2_base_t f;
+} cp_ib2_base_u;
+
+
+/*
+ * CP_IB2_BUFSZ struct
+ */
+
+#define CP_IB2_BUFSZ_IB2_BUFSZ_SIZE 20
+
+#define CP_IB2_BUFSZ_IB2_BUFSZ_SHIFT 0
+
+#define CP_IB2_BUFSZ_IB2_BUFSZ_MASK 0x000fffff
+
+#define CP_IB2_BUFSZ_MASK \
+ (CP_IB2_BUFSZ_IB2_BUFSZ_MASK)
+
+#define CP_IB2_BUFSZ(ib2_bufsz) \
+ ((ib2_bufsz << CP_IB2_BUFSZ_IB2_BUFSZ_SHIFT))
+
+#define CP_IB2_BUFSZ_GET_IB2_BUFSZ(cp_ib2_bufsz) \
+ ((cp_ib2_bufsz & CP_IB2_BUFSZ_IB2_BUFSZ_MASK) >> CP_IB2_BUFSZ_IB2_BUFSZ_SHIFT)
+
+#define CP_IB2_BUFSZ_SET_IB2_BUFSZ(cp_ib2_bufsz_reg, ib2_bufsz) \
+ cp_ib2_bufsz_reg = (cp_ib2_bufsz_reg & ~CP_IB2_BUFSZ_IB2_BUFSZ_MASK) | (ib2_bufsz << CP_IB2_BUFSZ_IB2_BUFSZ_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_ib2_bufsz_t {
+ unsigned int ib2_bufsz : CP_IB2_BUFSZ_IB2_BUFSZ_SIZE;
+ unsigned int : 12;
+ } cp_ib2_bufsz_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_ib2_bufsz_t {
+ unsigned int : 12;
+ unsigned int ib2_bufsz : CP_IB2_BUFSZ_IB2_BUFSZ_SIZE;
+ } cp_ib2_bufsz_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_ib2_bufsz_t f;
+} cp_ib2_bufsz_u;
+
+
+/*
+ * CP_ST_BASE struct
+ */
+
+#define CP_ST_BASE_ST_BASE_SIZE 30
+
+#define CP_ST_BASE_ST_BASE_SHIFT 2
+
+#define CP_ST_BASE_ST_BASE_MASK 0xfffffffc
+
+#define CP_ST_BASE_MASK \
+ (CP_ST_BASE_ST_BASE_MASK)
+
+#define CP_ST_BASE(st_base) \
+ ((st_base << CP_ST_BASE_ST_BASE_SHIFT))
+
+#define CP_ST_BASE_GET_ST_BASE(cp_st_base) \
+ ((cp_st_base & CP_ST_BASE_ST_BASE_MASK) >> CP_ST_BASE_ST_BASE_SHIFT)
+
+#define CP_ST_BASE_SET_ST_BASE(cp_st_base_reg, st_base) \
+ cp_st_base_reg = (cp_st_base_reg & ~CP_ST_BASE_ST_BASE_MASK) | (st_base << CP_ST_BASE_ST_BASE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_st_base_t {
+ unsigned int : 2;
+ unsigned int st_base : CP_ST_BASE_ST_BASE_SIZE;
+ } cp_st_base_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_st_base_t {
+ unsigned int st_base : CP_ST_BASE_ST_BASE_SIZE;
+ unsigned int : 2;
+ } cp_st_base_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_st_base_t f;
+} cp_st_base_u;
+
+
+/*
+ * CP_ST_BUFSZ struct
+ */
+
+#define CP_ST_BUFSZ_ST_BUFSZ_SIZE 20
+
+#define CP_ST_BUFSZ_ST_BUFSZ_SHIFT 0
+
+#define CP_ST_BUFSZ_ST_BUFSZ_MASK 0x000fffff
+
+#define CP_ST_BUFSZ_MASK \
+ (CP_ST_BUFSZ_ST_BUFSZ_MASK)
+
+#define CP_ST_BUFSZ(st_bufsz) \
+ ((st_bufsz << CP_ST_BUFSZ_ST_BUFSZ_SHIFT))
+
+#define CP_ST_BUFSZ_GET_ST_BUFSZ(cp_st_bufsz) \
+ ((cp_st_bufsz & CP_ST_BUFSZ_ST_BUFSZ_MASK) >> CP_ST_BUFSZ_ST_BUFSZ_SHIFT)
+
+#define CP_ST_BUFSZ_SET_ST_BUFSZ(cp_st_bufsz_reg, st_bufsz) \
+ cp_st_bufsz_reg = (cp_st_bufsz_reg & ~CP_ST_BUFSZ_ST_BUFSZ_MASK) | (st_bufsz << CP_ST_BUFSZ_ST_BUFSZ_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_st_bufsz_t {
+ unsigned int st_bufsz : CP_ST_BUFSZ_ST_BUFSZ_SIZE;
+ unsigned int : 12;
+ } cp_st_bufsz_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_st_bufsz_t {
+ unsigned int : 12;
+ unsigned int st_bufsz : CP_ST_BUFSZ_ST_BUFSZ_SIZE;
+ } cp_st_bufsz_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_st_bufsz_t f;
+} cp_st_bufsz_u;
+
+
+/*
+ * CP_QUEUE_THRESHOLDS struct
+ */
+
+#define CP_QUEUE_THRESHOLDS_CSQ_IB1_START_SIZE 4
+#define CP_QUEUE_THRESHOLDS_CSQ_IB2_START_SIZE 4
+#define CP_QUEUE_THRESHOLDS_CSQ_ST_START_SIZE 4
+
+#define CP_QUEUE_THRESHOLDS_CSQ_IB1_START_SHIFT 0
+#define CP_QUEUE_THRESHOLDS_CSQ_IB2_START_SHIFT 8
+#define CP_QUEUE_THRESHOLDS_CSQ_ST_START_SHIFT 16
+
+#define CP_QUEUE_THRESHOLDS_CSQ_IB1_START_MASK 0x0000000f
+#define CP_QUEUE_THRESHOLDS_CSQ_IB2_START_MASK 0x00000f00
+#define CP_QUEUE_THRESHOLDS_CSQ_ST_START_MASK 0x000f0000
+
+#define CP_QUEUE_THRESHOLDS_MASK \
+ (CP_QUEUE_THRESHOLDS_CSQ_IB1_START_MASK | \
+ CP_QUEUE_THRESHOLDS_CSQ_IB2_START_MASK | \
+ CP_QUEUE_THRESHOLDS_CSQ_ST_START_MASK)
+
+#define CP_QUEUE_THRESHOLDS(csq_ib1_start, csq_ib2_start, csq_st_start) \
+ ((csq_ib1_start << CP_QUEUE_THRESHOLDS_CSQ_IB1_START_SHIFT) | \
+ (csq_ib2_start << CP_QUEUE_THRESHOLDS_CSQ_IB2_START_SHIFT) | \
+ (csq_st_start << CP_QUEUE_THRESHOLDS_CSQ_ST_START_SHIFT))
+
+#define CP_QUEUE_THRESHOLDS_GET_CSQ_IB1_START(cp_queue_thresholds) \
+ ((cp_queue_thresholds & CP_QUEUE_THRESHOLDS_CSQ_IB1_START_MASK) >> CP_QUEUE_THRESHOLDS_CSQ_IB1_START_SHIFT)
+#define CP_QUEUE_THRESHOLDS_GET_CSQ_IB2_START(cp_queue_thresholds) \
+ ((cp_queue_thresholds & CP_QUEUE_THRESHOLDS_CSQ_IB2_START_MASK) >> CP_QUEUE_THRESHOLDS_CSQ_IB2_START_SHIFT)
+#define CP_QUEUE_THRESHOLDS_GET_CSQ_ST_START(cp_queue_thresholds) \
+ ((cp_queue_thresholds & CP_QUEUE_THRESHOLDS_CSQ_ST_START_MASK) >> CP_QUEUE_THRESHOLDS_CSQ_ST_START_SHIFT)
+
+#define CP_QUEUE_THRESHOLDS_SET_CSQ_IB1_START(cp_queue_thresholds_reg, csq_ib1_start) \
+ cp_queue_thresholds_reg = (cp_queue_thresholds_reg & ~CP_QUEUE_THRESHOLDS_CSQ_IB1_START_MASK) | (csq_ib1_start << CP_QUEUE_THRESHOLDS_CSQ_IB1_START_SHIFT)
+#define CP_QUEUE_THRESHOLDS_SET_CSQ_IB2_START(cp_queue_thresholds_reg, csq_ib2_start) \
+ cp_queue_thresholds_reg = (cp_queue_thresholds_reg & ~CP_QUEUE_THRESHOLDS_CSQ_IB2_START_MASK) | (csq_ib2_start << CP_QUEUE_THRESHOLDS_CSQ_IB2_START_SHIFT)
+#define CP_QUEUE_THRESHOLDS_SET_CSQ_ST_START(cp_queue_thresholds_reg, csq_st_start) \
+ cp_queue_thresholds_reg = (cp_queue_thresholds_reg & ~CP_QUEUE_THRESHOLDS_CSQ_ST_START_MASK) | (csq_st_start << CP_QUEUE_THRESHOLDS_CSQ_ST_START_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_queue_thresholds_t {
+ unsigned int csq_ib1_start : CP_QUEUE_THRESHOLDS_CSQ_IB1_START_SIZE;
+ unsigned int : 4;
+ unsigned int csq_ib2_start : CP_QUEUE_THRESHOLDS_CSQ_IB2_START_SIZE;
+ unsigned int : 4;
+ unsigned int csq_st_start : CP_QUEUE_THRESHOLDS_CSQ_ST_START_SIZE;
+ unsigned int : 12;
+ } cp_queue_thresholds_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_queue_thresholds_t {
+ unsigned int : 12;
+ unsigned int csq_st_start : CP_QUEUE_THRESHOLDS_CSQ_ST_START_SIZE;
+ unsigned int : 4;
+ unsigned int csq_ib2_start : CP_QUEUE_THRESHOLDS_CSQ_IB2_START_SIZE;
+ unsigned int : 4;
+ unsigned int csq_ib1_start : CP_QUEUE_THRESHOLDS_CSQ_IB1_START_SIZE;
+ } cp_queue_thresholds_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_queue_thresholds_t f;
+} cp_queue_thresholds_u;
+
+
+/*
+ * CP_MEQ_THRESHOLDS struct
+ */
+
+#define CP_MEQ_THRESHOLDS_MEQ_END_SIZE 5
+#define CP_MEQ_THRESHOLDS_ROQ_END_SIZE 5
+
+#define CP_MEQ_THRESHOLDS_MEQ_END_SHIFT 16
+#define CP_MEQ_THRESHOLDS_ROQ_END_SHIFT 24
+
+#define CP_MEQ_THRESHOLDS_MEQ_END_MASK 0x001f0000
+#define CP_MEQ_THRESHOLDS_ROQ_END_MASK 0x1f000000
+
+#define CP_MEQ_THRESHOLDS_MASK \
+ (CP_MEQ_THRESHOLDS_MEQ_END_MASK | \
+ CP_MEQ_THRESHOLDS_ROQ_END_MASK)
+
+#define CP_MEQ_THRESHOLDS(meq_end, roq_end) \
+ ((meq_end << CP_MEQ_THRESHOLDS_MEQ_END_SHIFT) | \
+ (roq_end << CP_MEQ_THRESHOLDS_ROQ_END_SHIFT))
+
+#define CP_MEQ_THRESHOLDS_GET_MEQ_END(cp_meq_thresholds) \
+ ((cp_meq_thresholds & CP_MEQ_THRESHOLDS_MEQ_END_MASK) >> CP_MEQ_THRESHOLDS_MEQ_END_SHIFT)
+#define CP_MEQ_THRESHOLDS_GET_ROQ_END(cp_meq_thresholds) \
+ ((cp_meq_thresholds & CP_MEQ_THRESHOLDS_ROQ_END_MASK) >> CP_MEQ_THRESHOLDS_ROQ_END_SHIFT)
+
+#define CP_MEQ_THRESHOLDS_SET_MEQ_END(cp_meq_thresholds_reg, meq_end) \
+ cp_meq_thresholds_reg = (cp_meq_thresholds_reg & ~CP_MEQ_THRESHOLDS_MEQ_END_MASK) | (meq_end << CP_MEQ_THRESHOLDS_MEQ_END_SHIFT)
+#define CP_MEQ_THRESHOLDS_SET_ROQ_END(cp_meq_thresholds_reg, roq_end) \
+ cp_meq_thresholds_reg = (cp_meq_thresholds_reg & ~CP_MEQ_THRESHOLDS_ROQ_END_MASK) | (roq_end << CP_MEQ_THRESHOLDS_ROQ_END_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_meq_thresholds_t {
+ unsigned int : 16;
+ unsigned int meq_end : CP_MEQ_THRESHOLDS_MEQ_END_SIZE;
+ unsigned int : 3;
+ unsigned int roq_end : CP_MEQ_THRESHOLDS_ROQ_END_SIZE;
+ unsigned int : 3;
+ } cp_meq_thresholds_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_meq_thresholds_t {
+ unsigned int : 3;
+ unsigned int roq_end : CP_MEQ_THRESHOLDS_ROQ_END_SIZE;
+ unsigned int : 3;
+ unsigned int meq_end : CP_MEQ_THRESHOLDS_MEQ_END_SIZE;
+ unsigned int : 16;
+ } cp_meq_thresholds_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_meq_thresholds_t f;
+} cp_meq_thresholds_u;
+
+
+/*
+ * CP_CSQ_AVAIL struct
+ */
+
+#define CP_CSQ_AVAIL_CSQ_CNT_RING_SIZE 7
+#define CP_CSQ_AVAIL_CSQ_CNT_IB1_SIZE 7
+#define CP_CSQ_AVAIL_CSQ_CNT_IB2_SIZE 7
+
+#define CP_CSQ_AVAIL_CSQ_CNT_RING_SHIFT 0
+#define CP_CSQ_AVAIL_CSQ_CNT_IB1_SHIFT 8
+#define CP_CSQ_AVAIL_CSQ_CNT_IB2_SHIFT 16
+
+#define CP_CSQ_AVAIL_CSQ_CNT_RING_MASK 0x0000007f
+#define CP_CSQ_AVAIL_CSQ_CNT_IB1_MASK 0x00007f00
+#define CP_CSQ_AVAIL_CSQ_CNT_IB2_MASK 0x007f0000
+
+#define CP_CSQ_AVAIL_MASK \
+ (CP_CSQ_AVAIL_CSQ_CNT_RING_MASK | \
+ CP_CSQ_AVAIL_CSQ_CNT_IB1_MASK | \
+ CP_CSQ_AVAIL_CSQ_CNT_IB2_MASK)
+
+#define CP_CSQ_AVAIL(csq_cnt_ring, csq_cnt_ib1, csq_cnt_ib2) \
+ ((csq_cnt_ring << CP_CSQ_AVAIL_CSQ_CNT_RING_SHIFT) | \
+ (csq_cnt_ib1 << CP_CSQ_AVAIL_CSQ_CNT_IB1_SHIFT) | \
+ (csq_cnt_ib2 << CP_CSQ_AVAIL_CSQ_CNT_IB2_SHIFT))
+
+#define CP_CSQ_AVAIL_GET_CSQ_CNT_RING(cp_csq_avail) \
+ ((cp_csq_avail & CP_CSQ_AVAIL_CSQ_CNT_RING_MASK) >> CP_CSQ_AVAIL_CSQ_CNT_RING_SHIFT)
+#define CP_CSQ_AVAIL_GET_CSQ_CNT_IB1(cp_csq_avail) \
+ ((cp_csq_avail & CP_CSQ_AVAIL_CSQ_CNT_IB1_MASK) >> CP_CSQ_AVAIL_CSQ_CNT_IB1_SHIFT)
+#define CP_CSQ_AVAIL_GET_CSQ_CNT_IB2(cp_csq_avail) \
+ ((cp_csq_avail & CP_CSQ_AVAIL_CSQ_CNT_IB2_MASK) >> CP_CSQ_AVAIL_CSQ_CNT_IB2_SHIFT)
+
+#define CP_CSQ_AVAIL_SET_CSQ_CNT_RING(cp_csq_avail_reg, csq_cnt_ring) \
+ cp_csq_avail_reg = (cp_csq_avail_reg & ~CP_CSQ_AVAIL_CSQ_CNT_RING_MASK) | (csq_cnt_ring << CP_CSQ_AVAIL_CSQ_CNT_RING_SHIFT)
+#define CP_CSQ_AVAIL_SET_CSQ_CNT_IB1(cp_csq_avail_reg, csq_cnt_ib1) \
+ cp_csq_avail_reg = (cp_csq_avail_reg & ~CP_CSQ_AVAIL_CSQ_CNT_IB1_MASK) | (csq_cnt_ib1 << CP_CSQ_AVAIL_CSQ_CNT_IB1_SHIFT)
+#define CP_CSQ_AVAIL_SET_CSQ_CNT_IB2(cp_csq_avail_reg, csq_cnt_ib2) \
+ cp_csq_avail_reg = (cp_csq_avail_reg & ~CP_CSQ_AVAIL_CSQ_CNT_IB2_MASK) | (csq_cnt_ib2 << CP_CSQ_AVAIL_CSQ_CNT_IB2_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_csq_avail_t {
+ unsigned int csq_cnt_ring : CP_CSQ_AVAIL_CSQ_CNT_RING_SIZE;
+ unsigned int : 1;
+ unsigned int csq_cnt_ib1 : CP_CSQ_AVAIL_CSQ_CNT_IB1_SIZE;
+ unsigned int : 1;
+ unsigned int csq_cnt_ib2 : CP_CSQ_AVAIL_CSQ_CNT_IB2_SIZE;
+ unsigned int : 9;
+ } cp_csq_avail_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_csq_avail_t {
+ unsigned int : 9;
+ unsigned int csq_cnt_ib2 : CP_CSQ_AVAIL_CSQ_CNT_IB2_SIZE;
+ unsigned int : 1;
+ unsigned int csq_cnt_ib1 : CP_CSQ_AVAIL_CSQ_CNT_IB1_SIZE;
+ unsigned int : 1;
+ unsigned int csq_cnt_ring : CP_CSQ_AVAIL_CSQ_CNT_RING_SIZE;
+ } cp_csq_avail_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_csq_avail_t f;
+} cp_csq_avail_u;
+
+
+/*
+ * CP_STQ_AVAIL struct
+ */
+
+#define CP_STQ_AVAIL_STQ_CNT_ST_SIZE 7
+
+#define CP_STQ_AVAIL_STQ_CNT_ST_SHIFT 0
+
+#define CP_STQ_AVAIL_STQ_CNT_ST_MASK 0x0000007f
+
+#define CP_STQ_AVAIL_MASK \
+ (CP_STQ_AVAIL_STQ_CNT_ST_MASK)
+
+#define CP_STQ_AVAIL(stq_cnt_st) \
+ ((stq_cnt_st << CP_STQ_AVAIL_STQ_CNT_ST_SHIFT))
+
+#define CP_STQ_AVAIL_GET_STQ_CNT_ST(cp_stq_avail) \
+ ((cp_stq_avail & CP_STQ_AVAIL_STQ_CNT_ST_MASK) >> CP_STQ_AVAIL_STQ_CNT_ST_SHIFT)
+
+#define CP_STQ_AVAIL_SET_STQ_CNT_ST(cp_stq_avail_reg, stq_cnt_st) \
+ cp_stq_avail_reg = (cp_stq_avail_reg & ~CP_STQ_AVAIL_STQ_CNT_ST_MASK) | (stq_cnt_st << CP_STQ_AVAIL_STQ_CNT_ST_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_stq_avail_t {
+ unsigned int stq_cnt_st : CP_STQ_AVAIL_STQ_CNT_ST_SIZE;
+ unsigned int : 25;
+ } cp_stq_avail_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_stq_avail_t {
+ unsigned int : 25;
+ unsigned int stq_cnt_st : CP_STQ_AVAIL_STQ_CNT_ST_SIZE;
+ } cp_stq_avail_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_stq_avail_t f;
+} cp_stq_avail_u;
+
+
+/*
+ * CP_MEQ_AVAIL struct
+ */
+
+#define CP_MEQ_AVAIL_MEQ_CNT_SIZE 5
+
+#define CP_MEQ_AVAIL_MEQ_CNT_SHIFT 0
+
+#define CP_MEQ_AVAIL_MEQ_CNT_MASK 0x0000001f
+
+#define CP_MEQ_AVAIL_MASK \
+ (CP_MEQ_AVAIL_MEQ_CNT_MASK)
+
+#define CP_MEQ_AVAIL(meq_cnt) \
+ ((meq_cnt << CP_MEQ_AVAIL_MEQ_CNT_SHIFT))
+
+#define CP_MEQ_AVAIL_GET_MEQ_CNT(cp_meq_avail) \
+ ((cp_meq_avail & CP_MEQ_AVAIL_MEQ_CNT_MASK) >> CP_MEQ_AVAIL_MEQ_CNT_SHIFT)
+
+#define CP_MEQ_AVAIL_SET_MEQ_CNT(cp_meq_avail_reg, meq_cnt) \
+ cp_meq_avail_reg = (cp_meq_avail_reg & ~CP_MEQ_AVAIL_MEQ_CNT_MASK) | (meq_cnt << CP_MEQ_AVAIL_MEQ_CNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_meq_avail_t {
+ unsigned int meq_cnt : CP_MEQ_AVAIL_MEQ_CNT_SIZE;
+ unsigned int : 27;
+ } cp_meq_avail_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_meq_avail_t {
+ unsigned int : 27;
+ unsigned int meq_cnt : CP_MEQ_AVAIL_MEQ_CNT_SIZE;
+ } cp_meq_avail_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_meq_avail_t f;
+} cp_meq_avail_u;
+
+
+/*
+ * CP_CSQ_RB_STAT struct
+ */
+
+#define CP_CSQ_RB_STAT_CSQ_RPTR_PRIMARY_SIZE 7
+#define CP_CSQ_RB_STAT_CSQ_WPTR_PRIMARY_SIZE 7
+
+#define CP_CSQ_RB_STAT_CSQ_RPTR_PRIMARY_SHIFT 0
+#define CP_CSQ_RB_STAT_CSQ_WPTR_PRIMARY_SHIFT 16
+
+#define CP_CSQ_RB_STAT_CSQ_RPTR_PRIMARY_MASK 0x0000007f
+#define CP_CSQ_RB_STAT_CSQ_WPTR_PRIMARY_MASK 0x007f0000
+
+#define CP_CSQ_RB_STAT_MASK \
+ (CP_CSQ_RB_STAT_CSQ_RPTR_PRIMARY_MASK | \
+ CP_CSQ_RB_STAT_CSQ_WPTR_PRIMARY_MASK)
+
+#define CP_CSQ_RB_STAT(csq_rptr_primary, csq_wptr_primary) \
+ ((csq_rptr_primary << CP_CSQ_RB_STAT_CSQ_RPTR_PRIMARY_SHIFT) | \
+ (csq_wptr_primary << CP_CSQ_RB_STAT_CSQ_WPTR_PRIMARY_SHIFT))
+
+#define CP_CSQ_RB_STAT_GET_CSQ_RPTR_PRIMARY(cp_csq_rb_stat) \
+ ((cp_csq_rb_stat & CP_CSQ_RB_STAT_CSQ_RPTR_PRIMARY_MASK) >> CP_CSQ_RB_STAT_CSQ_RPTR_PRIMARY_SHIFT)
+#define CP_CSQ_RB_STAT_GET_CSQ_WPTR_PRIMARY(cp_csq_rb_stat) \
+ ((cp_csq_rb_stat & CP_CSQ_RB_STAT_CSQ_WPTR_PRIMARY_MASK) >> CP_CSQ_RB_STAT_CSQ_WPTR_PRIMARY_SHIFT)
+
+#define CP_CSQ_RB_STAT_SET_CSQ_RPTR_PRIMARY(cp_csq_rb_stat_reg, csq_rptr_primary) \
+ cp_csq_rb_stat_reg = (cp_csq_rb_stat_reg & ~CP_CSQ_RB_STAT_CSQ_RPTR_PRIMARY_MASK) | (csq_rptr_primary << CP_CSQ_RB_STAT_CSQ_RPTR_PRIMARY_SHIFT)
+#define CP_CSQ_RB_STAT_SET_CSQ_WPTR_PRIMARY(cp_csq_rb_stat_reg, csq_wptr_primary) \
+ cp_csq_rb_stat_reg = (cp_csq_rb_stat_reg & ~CP_CSQ_RB_STAT_CSQ_WPTR_PRIMARY_MASK) | (csq_wptr_primary << CP_CSQ_RB_STAT_CSQ_WPTR_PRIMARY_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_csq_rb_stat_t {
+ unsigned int csq_rptr_primary : CP_CSQ_RB_STAT_CSQ_RPTR_PRIMARY_SIZE;
+ unsigned int : 9;
+ unsigned int csq_wptr_primary : CP_CSQ_RB_STAT_CSQ_WPTR_PRIMARY_SIZE;
+ unsigned int : 9;
+ } cp_csq_rb_stat_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_csq_rb_stat_t {
+ unsigned int : 9;
+ unsigned int csq_wptr_primary : CP_CSQ_RB_STAT_CSQ_WPTR_PRIMARY_SIZE;
+ unsigned int : 9;
+ unsigned int csq_rptr_primary : CP_CSQ_RB_STAT_CSQ_RPTR_PRIMARY_SIZE;
+ } cp_csq_rb_stat_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_csq_rb_stat_t f;
+} cp_csq_rb_stat_u;
+
+
+/*
+ * CP_CSQ_IB1_STAT struct
+ */
+
+#define CP_CSQ_IB1_STAT_CSQ_RPTR_INDIRECT1_SIZE 7
+#define CP_CSQ_IB1_STAT_CSQ_WPTR_INDIRECT1_SIZE 7
+
+#define CP_CSQ_IB1_STAT_CSQ_RPTR_INDIRECT1_SHIFT 0
+#define CP_CSQ_IB1_STAT_CSQ_WPTR_INDIRECT1_SHIFT 16
+
+#define CP_CSQ_IB1_STAT_CSQ_RPTR_INDIRECT1_MASK 0x0000007f
+#define CP_CSQ_IB1_STAT_CSQ_WPTR_INDIRECT1_MASK 0x007f0000
+
+#define CP_CSQ_IB1_STAT_MASK \
+ (CP_CSQ_IB1_STAT_CSQ_RPTR_INDIRECT1_MASK | \
+ CP_CSQ_IB1_STAT_CSQ_WPTR_INDIRECT1_MASK)
+
+#define CP_CSQ_IB1_STAT(csq_rptr_indirect1, csq_wptr_indirect1) \
+ ((csq_rptr_indirect1 << CP_CSQ_IB1_STAT_CSQ_RPTR_INDIRECT1_SHIFT) | \
+ (csq_wptr_indirect1 << CP_CSQ_IB1_STAT_CSQ_WPTR_INDIRECT1_SHIFT))
+
+#define CP_CSQ_IB1_STAT_GET_CSQ_RPTR_INDIRECT1(cp_csq_ib1_stat) \
+ ((cp_csq_ib1_stat & CP_CSQ_IB1_STAT_CSQ_RPTR_INDIRECT1_MASK) >> CP_CSQ_IB1_STAT_CSQ_RPTR_INDIRECT1_SHIFT)
+#define CP_CSQ_IB1_STAT_GET_CSQ_WPTR_INDIRECT1(cp_csq_ib1_stat) \
+ ((cp_csq_ib1_stat & CP_CSQ_IB1_STAT_CSQ_WPTR_INDIRECT1_MASK) >> CP_CSQ_IB1_STAT_CSQ_WPTR_INDIRECT1_SHIFT)
+
+#define CP_CSQ_IB1_STAT_SET_CSQ_RPTR_INDIRECT1(cp_csq_ib1_stat_reg, csq_rptr_indirect1) \
+ cp_csq_ib1_stat_reg = (cp_csq_ib1_stat_reg & ~CP_CSQ_IB1_STAT_CSQ_RPTR_INDIRECT1_MASK) | (csq_rptr_indirect1 << CP_CSQ_IB1_STAT_CSQ_RPTR_INDIRECT1_SHIFT)
+#define CP_CSQ_IB1_STAT_SET_CSQ_WPTR_INDIRECT1(cp_csq_ib1_stat_reg, csq_wptr_indirect1) \
+ cp_csq_ib1_stat_reg = (cp_csq_ib1_stat_reg & ~CP_CSQ_IB1_STAT_CSQ_WPTR_INDIRECT1_MASK) | (csq_wptr_indirect1 << CP_CSQ_IB1_STAT_CSQ_WPTR_INDIRECT1_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_csq_ib1_stat_t {
+ unsigned int csq_rptr_indirect1 : CP_CSQ_IB1_STAT_CSQ_RPTR_INDIRECT1_SIZE;
+ unsigned int : 9;
+ unsigned int csq_wptr_indirect1 : CP_CSQ_IB1_STAT_CSQ_WPTR_INDIRECT1_SIZE;
+ unsigned int : 9;
+ } cp_csq_ib1_stat_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_csq_ib1_stat_t {
+ unsigned int : 9;
+ unsigned int csq_wptr_indirect1 : CP_CSQ_IB1_STAT_CSQ_WPTR_INDIRECT1_SIZE;
+ unsigned int : 9;
+ unsigned int csq_rptr_indirect1 : CP_CSQ_IB1_STAT_CSQ_RPTR_INDIRECT1_SIZE;
+ } cp_csq_ib1_stat_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_csq_ib1_stat_t f;
+} cp_csq_ib1_stat_u;
+
+
+/*
+ * CP_CSQ_IB2_STAT struct
+ */
+
+#define CP_CSQ_IB2_STAT_CSQ_RPTR_INDIRECT2_SIZE 7
+#define CP_CSQ_IB2_STAT_CSQ_WPTR_INDIRECT2_SIZE 7
+
+#define CP_CSQ_IB2_STAT_CSQ_RPTR_INDIRECT2_SHIFT 0
+#define CP_CSQ_IB2_STAT_CSQ_WPTR_INDIRECT2_SHIFT 16
+
+#define CP_CSQ_IB2_STAT_CSQ_RPTR_INDIRECT2_MASK 0x0000007f
+#define CP_CSQ_IB2_STAT_CSQ_WPTR_INDIRECT2_MASK 0x007f0000
+
+#define CP_CSQ_IB2_STAT_MASK \
+ (CP_CSQ_IB2_STAT_CSQ_RPTR_INDIRECT2_MASK | \
+ CP_CSQ_IB2_STAT_CSQ_WPTR_INDIRECT2_MASK)
+
+#define CP_CSQ_IB2_STAT(csq_rptr_indirect2, csq_wptr_indirect2) \
+ ((csq_rptr_indirect2 << CP_CSQ_IB2_STAT_CSQ_RPTR_INDIRECT2_SHIFT) | \
+ (csq_wptr_indirect2 << CP_CSQ_IB2_STAT_CSQ_WPTR_INDIRECT2_SHIFT))
+
+#define CP_CSQ_IB2_STAT_GET_CSQ_RPTR_INDIRECT2(cp_csq_ib2_stat) \
+ ((cp_csq_ib2_stat & CP_CSQ_IB2_STAT_CSQ_RPTR_INDIRECT2_MASK) >> CP_CSQ_IB2_STAT_CSQ_RPTR_INDIRECT2_SHIFT)
+#define CP_CSQ_IB2_STAT_GET_CSQ_WPTR_INDIRECT2(cp_csq_ib2_stat) \
+ ((cp_csq_ib2_stat & CP_CSQ_IB2_STAT_CSQ_WPTR_INDIRECT2_MASK) >> CP_CSQ_IB2_STAT_CSQ_WPTR_INDIRECT2_SHIFT)
+
+#define CP_CSQ_IB2_STAT_SET_CSQ_RPTR_INDIRECT2(cp_csq_ib2_stat_reg, csq_rptr_indirect2) \
+ cp_csq_ib2_stat_reg = (cp_csq_ib2_stat_reg & ~CP_CSQ_IB2_STAT_CSQ_RPTR_INDIRECT2_MASK) | (csq_rptr_indirect2 << CP_CSQ_IB2_STAT_CSQ_RPTR_INDIRECT2_SHIFT)
+#define CP_CSQ_IB2_STAT_SET_CSQ_WPTR_INDIRECT2(cp_csq_ib2_stat_reg, csq_wptr_indirect2) \
+ cp_csq_ib2_stat_reg = (cp_csq_ib2_stat_reg & ~CP_CSQ_IB2_STAT_CSQ_WPTR_INDIRECT2_MASK) | (csq_wptr_indirect2 << CP_CSQ_IB2_STAT_CSQ_WPTR_INDIRECT2_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_csq_ib2_stat_t {
+ unsigned int csq_rptr_indirect2 : CP_CSQ_IB2_STAT_CSQ_RPTR_INDIRECT2_SIZE;
+ unsigned int : 9;
+ unsigned int csq_wptr_indirect2 : CP_CSQ_IB2_STAT_CSQ_WPTR_INDIRECT2_SIZE;
+ unsigned int : 9;
+ } cp_csq_ib2_stat_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_csq_ib2_stat_t {
+ unsigned int : 9;
+ unsigned int csq_wptr_indirect2 : CP_CSQ_IB2_STAT_CSQ_WPTR_INDIRECT2_SIZE;
+ unsigned int : 9;
+ unsigned int csq_rptr_indirect2 : CP_CSQ_IB2_STAT_CSQ_RPTR_INDIRECT2_SIZE;
+ } cp_csq_ib2_stat_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_csq_ib2_stat_t f;
+} cp_csq_ib2_stat_u;
+
+
+/*
+ * CP_NON_PREFETCH_CNTRS struct
+ */
+
+#define CP_NON_PREFETCH_CNTRS_IB1_COUNTER_SIZE 3
+#define CP_NON_PREFETCH_CNTRS_IB2_COUNTER_SIZE 3
+
+#define CP_NON_PREFETCH_CNTRS_IB1_COUNTER_SHIFT 0
+#define CP_NON_PREFETCH_CNTRS_IB2_COUNTER_SHIFT 8
+
+#define CP_NON_PREFETCH_CNTRS_IB1_COUNTER_MASK 0x00000007
+#define CP_NON_PREFETCH_CNTRS_IB2_COUNTER_MASK 0x00000700
+
+#define CP_NON_PREFETCH_CNTRS_MASK \
+ (CP_NON_PREFETCH_CNTRS_IB1_COUNTER_MASK | \
+ CP_NON_PREFETCH_CNTRS_IB2_COUNTER_MASK)
+
+#define CP_NON_PREFETCH_CNTRS(ib1_counter, ib2_counter) \
+ ((ib1_counter << CP_NON_PREFETCH_CNTRS_IB1_COUNTER_SHIFT) | \
+ (ib2_counter << CP_NON_PREFETCH_CNTRS_IB2_COUNTER_SHIFT))
+
+#define CP_NON_PREFETCH_CNTRS_GET_IB1_COUNTER(cp_non_prefetch_cntrs) \
+ ((cp_non_prefetch_cntrs & CP_NON_PREFETCH_CNTRS_IB1_COUNTER_MASK) >> CP_NON_PREFETCH_CNTRS_IB1_COUNTER_SHIFT)
+#define CP_NON_PREFETCH_CNTRS_GET_IB2_COUNTER(cp_non_prefetch_cntrs) \
+ ((cp_non_prefetch_cntrs & CP_NON_PREFETCH_CNTRS_IB2_COUNTER_MASK) >> CP_NON_PREFETCH_CNTRS_IB2_COUNTER_SHIFT)
+
+#define CP_NON_PREFETCH_CNTRS_SET_IB1_COUNTER(cp_non_prefetch_cntrs_reg, ib1_counter) \
+ cp_non_prefetch_cntrs_reg = (cp_non_prefetch_cntrs_reg & ~CP_NON_PREFETCH_CNTRS_IB1_COUNTER_MASK) | (ib1_counter << CP_NON_PREFETCH_CNTRS_IB1_COUNTER_SHIFT)
+#define CP_NON_PREFETCH_CNTRS_SET_IB2_COUNTER(cp_non_prefetch_cntrs_reg, ib2_counter) \
+ cp_non_prefetch_cntrs_reg = (cp_non_prefetch_cntrs_reg & ~CP_NON_PREFETCH_CNTRS_IB2_COUNTER_MASK) | (ib2_counter << CP_NON_PREFETCH_CNTRS_IB2_COUNTER_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_non_prefetch_cntrs_t {
+ unsigned int ib1_counter : CP_NON_PREFETCH_CNTRS_IB1_COUNTER_SIZE;
+ unsigned int : 5;
+ unsigned int ib2_counter : CP_NON_PREFETCH_CNTRS_IB2_COUNTER_SIZE;
+ unsigned int : 21;
+ } cp_non_prefetch_cntrs_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_non_prefetch_cntrs_t {
+ unsigned int : 21;
+ unsigned int ib2_counter : CP_NON_PREFETCH_CNTRS_IB2_COUNTER_SIZE;
+ unsigned int : 5;
+ unsigned int ib1_counter : CP_NON_PREFETCH_CNTRS_IB1_COUNTER_SIZE;
+ } cp_non_prefetch_cntrs_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_non_prefetch_cntrs_t f;
+} cp_non_prefetch_cntrs_u;
+
+
+/*
+ * CP_STQ_ST_STAT struct
+ */
+
+#define CP_STQ_ST_STAT_STQ_RPTR_ST_SIZE 7
+#define CP_STQ_ST_STAT_STQ_WPTR_ST_SIZE 7
+
+#define CP_STQ_ST_STAT_STQ_RPTR_ST_SHIFT 0
+#define CP_STQ_ST_STAT_STQ_WPTR_ST_SHIFT 16
+
+#define CP_STQ_ST_STAT_STQ_RPTR_ST_MASK 0x0000007f
+#define CP_STQ_ST_STAT_STQ_WPTR_ST_MASK 0x007f0000
+
+#define CP_STQ_ST_STAT_MASK \
+ (CP_STQ_ST_STAT_STQ_RPTR_ST_MASK | \
+ CP_STQ_ST_STAT_STQ_WPTR_ST_MASK)
+
+#define CP_STQ_ST_STAT(stq_rptr_st, stq_wptr_st) \
+ ((stq_rptr_st << CP_STQ_ST_STAT_STQ_RPTR_ST_SHIFT) | \
+ (stq_wptr_st << CP_STQ_ST_STAT_STQ_WPTR_ST_SHIFT))
+
+#define CP_STQ_ST_STAT_GET_STQ_RPTR_ST(cp_stq_st_stat) \
+ ((cp_stq_st_stat & CP_STQ_ST_STAT_STQ_RPTR_ST_MASK) >> CP_STQ_ST_STAT_STQ_RPTR_ST_SHIFT)
+#define CP_STQ_ST_STAT_GET_STQ_WPTR_ST(cp_stq_st_stat) \
+ ((cp_stq_st_stat & CP_STQ_ST_STAT_STQ_WPTR_ST_MASK) >> CP_STQ_ST_STAT_STQ_WPTR_ST_SHIFT)
+
+#define CP_STQ_ST_STAT_SET_STQ_RPTR_ST(cp_stq_st_stat_reg, stq_rptr_st) \
+ cp_stq_st_stat_reg = (cp_stq_st_stat_reg & ~CP_STQ_ST_STAT_STQ_RPTR_ST_MASK) | (stq_rptr_st << CP_STQ_ST_STAT_STQ_RPTR_ST_SHIFT)
+#define CP_STQ_ST_STAT_SET_STQ_WPTR_ST(cp_stq_st_stat_reg, stq_wptr_st) \
+ cp_stq_st_stat_reg = (cp_stq_st_stat_reg & ~CP_STQ_ST_STAT_STQ_WPTR_ST_MASK) | (stq_wptr_st << CP_STQ_ST_STAT_STQ_WPTR_ST_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_stq_st_stat_t {
+ unsigned int stq_rptr_st : CP_STQ_ST_STAT_STQ_RPTR_ST_SIZE;
+ unsigned int : 9;
+ unsigned int stq_wptr_st : CP_STQ_ST_STAT_STQ_WPTR_ST_SIZE;
+ unsigned int : 9;
+ } cp_stq_st_stat_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_stq_st_stat_t {
+ unsigned int : 9;
+ unsigned int stq_wptr_st : CP_STQ_ST_STAT_STQ_WPTR_ST_SIZE;
+ unsigned int : 9;
+ unsigned int stq_rptr_st : CP_STQ_ST_STAT_STQ_RPTR_ST_SIZE;
+ } cp_stq_st_stat_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_stq_st_stat_t f;
+} cp_stq_st_stat_u;
+
+
+/*
+ * CP_MEQ_STAT struct
+ */
+
+#define CP_MEQ_STAT_MEQ_RPTR_SIZE 10
+#define CP_MEQ_STAT_MEQ_WPTR_SIZE 10
+
+#define CP_MEQ_STAT_MEQ_RPTR_SHIFT 0
+#define CP_MEQ_STAT_MEQ_WPTR_SHIFT 16
+
+#define CP_MEQ_STAT_MEQ_RPTR_MASK 0x000003ff
+#define CP_MEQ_STAT_MEQ_WPTR_MASK 0x03ff0000
+
+#define CP_MEQ_STAT_MASK \
+ (CP_MEQ_STAT_MEQ_RPTR_MASK | \
+ CP_MEQ_STAT_MEQ_WPTR_MASK)
+
+#define CP_MEQ_STAT(meq_rptr, meq_wptr) \
+ ((meq_rptr << CP_MEQ_STAT_MEQ_RPTR_SHIFT) | \
+ (meq_wptr << CP_MEQ_STAT_MEQ_WPTR_SHIFT))
+
+#define CP_MEQ_STAT_GET_MEQ_RPTR(cp_meq_stat) \
+ ((cp_meq_stat & CP_MEQ_STAT_MEQ_RPTR_MASK) >> CP_MEQ_STAT_MEQ_RPTR_SHIFT)
+#define CP_MEQ_STAT_GET_MEQ_WPTR(cp_meq_stat) \
+ ((cp_meq_stat & CP_MEQ_STAT_MEQ_WPTR_MASK) >> CP_MEQ_STAT_MEQ_WPTR_SHIFT)
+
+#define CP_MEQ_STAT_SET_MEQ_RPTR(cp_meq_stat_reg, meq_rptr) \
+ cp_meq_stat_reg = (cp_meq_stat_reg & ~CP_MEQ_STAT_MEQ_RPTR_MASK) | (meq_rptr << CP_MEQ_STAT_MEQ_RPTR_SHIFT)
+#define CP_MEQ_STAT_SET_MEQ_WPTR(cp_meq_stat_reg, meq_wptr) \
+ cp_meq_stat_reg = (cp_meq_stat_reg & ~CP_MEQ_STAT_MEQ_WPTR_MASK) | (meq_wptr << CP_MEQ_STAT_MEQ_WPTR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_meq_stat_t {
+ unsigned int meq_rptr : CP_MEQ_STAT_MEQ_RPTR_SIZE;
+ unsigned int : 6;
+ unsigned int meq_wptr : CP_MEQ_STAT_MEQ_WPTR_SIZE;
+ unsigned int : 6;
+ } cp_meq_stat_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_meq_stat_t {
+ unsigned int : 6;
+ unsigned int meq_wptr : CP_MEQ_STAT_MEQ_WPTR_SIZE;
+ unsigned int : 6;
+ unsigned int meq_rptr : CP_MEQ_STAT_MEQ_RPTR_SIZE;
+ } cp_meq_stat_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_meq_stat_t f;
+} cp_meq_stat_u;
+
+
+/*
+ * CP_MIU_TAG_STAT struct
+ */
+
+#define CP_MIU_TAG_STAT_TAG_0_STAT_SIZE 1
+#define CP_MIU_TAG_STAT_TAG_1_STAT_SIZE 1
+#define CP_MIU_TAG_STAT_TAG_2_STAT_SIZE 1
+#define CP_MIU_TAG_STAT_TAG_3_STAT_SIZE 1
+#define CP_MIU_TAG_STAT_TAG_4_STAT_SIZE 1
+#define CP_MIU_TAG_STAT_TAG_5_STAT_SIZE 1
+#define CP_MIU_TAG_STAT_TAG_6_STAT_SIZE 1
+#define CP_MIU_TAG_STAT_TAG_7_STAT_SIZE 1
+#define CP_MIU_TAG_STAT_TAG_8_STAT_SIZE 1
+#define CP_MIU_TAG_STAT_TAG_9_STAT_SIZE 1
+#define CP_MIU_TAG_STAT_TAG_10_STAT_SIZE 1
+#define CP_MIU_TAG_STAT_TAG_11_STAT_SIZE 1
+#define CP_MIU_TAG_STAT_TAG_12_STAT_SIZE 1
+#define CP_MIU_TAG_STAT_TAG_13_STAT_SIZE 1
+#define CP_MIU_TAG_STAT_TAG_14_STAT_SIZE 1
+#define CP_MIU_TAG_STAT_TAG_15_STAT_SIZE 1
+#define CP_MIU_TAG_STAT_TAG_16_STAT_SIZE 1
+#define CP_MIU_TAG_STAT_TAG_17_STAT_SIZE 1
+#define CP_MIU_TAG_STAT_INVALID_RETURN_TAG_SIZE 1
+
+#define CP_MIU_TAG_STAT_TAG_0_STAT_SHIFT 0
+#define CP_MIU_TAG_STAT_TAG_1_STAT_SHIFT 1
+#define CP_MIU_TAG_STAT_TAG_2_STAT_SHIFT 2
+#define CP_MIU_TAG_STAT_TAG_3_STAT_SHIFT 3
+#define CP_MIU_TAG_STAT_TAG_4_STAT_SHIFT 4
+#define CP_MIU_TAG_STAT_TAG_5_STAT_SHIFT 5
+#define CP_MIU_TAG_STAT_TAG_6_STAT_SHIFT 6
+#define CP_MIU_TAG_STAT_TAG_7_STAT_SHIFT 7
+#define CP_MIU_TAG_STAT_TAG_8_STAT_SHIFT 8
+#define CP_MIU_TAG_STAT_TAG_9_STAT_SHIFT 9
+#define CP_MIU_TAG_STAT_TAG_10_STAT_SHIFT 10
+#define CP_MIU_TAG_STAT_TAG_11_STAT_SHIFT 11
+#define CP_MIU_TAG_STAT_TAG_12_STAT_SHIFT 12
+#define CP_MIU_TAG_STAT_TAG_13_STAT_SHIFT 13
+#define CP_MIU_TAG_STAT_TAG_14_STAT_SHIFT 14
+#define CP_MIU_TAG_STAT_TAG_15_STAT_SHIFT 15
+#define CP_MIU_TAG_STAT_TAG_16_STAT_SHIFT 16
+#define CP_MIU_TAG_STAT_TAG_17_STAT_SHIFT 17
+#define CP_MIU_TAG_STAT_INVALID_RETURN_TAG_SHIFT 31
+
+#define CP_MIU_TAG_STAT_TAG_0_STAT_MASK 0x00000001
+#define CP_MIU_TAG_STAT_TAG_1_STAT_MASK 0x00000002
+#define CP_MIU_TAG_STAT_TAG_2_STAT_MASK 0x00000004
+#define CP_MIU_TAG_STAT_TAG_3_STAT_MASK 0x00000008
+#define CP_MIU_TAG_STAT_TAG_4_STAT_MASK 0x00000010
+#define CP_MIU_TAG_STAT_TAG_5_STAT_MASK 0x00000020
+#define CP_MIU_TAG_STAT_TAG_6_STAT_MASK 0x00000040
+#define CP_MIU_TAG_STAT_TAG_7_STAT_MASK 0x00000080
+#define CP_MIU_TAG_STAT_TAG_8_STAT_MASK 0x00000100
+#define CP_MIU_TAG_STAT_TAG_9_STAT_MASK 0x00000200
+#define CP_MIU_TAG_STAT_TAG_10_STAT_MASK 0x00000400
+#define CP_MIU_TAG_STAT_TAG_11_STAT_MASK 0x00000800
+#define CP_MIU_TAG_STAT_TAG_12_STAT_MASK 0x00001000
+#define CP_MIU_TAG_STAT_TAG_13_STAT_MASK 0x00002000
+#define CP_MIU_TAG_STAT_TAG_14_STAT_MASK 0x00004000
+#define CP_MIU_TAG_STAT_TAG_15_STAT_MASK 0x00008000
+#define CP_MIU_TAG_STAT_TAG_16_STAT_MASK 0x00010000
+#define CP_MIU_TAG_STAT_TAG_17_STAT_MASK 0x00020000
+#define CP_MIU_TAG_STAT_INVALID_RETURN_TAG_MASK 0x80000000
+
+#define CP_MIU_TAG_STAT_MASK \
+ (CP_MIU_TAG_STAT_TAG_0_STAT_MASK | \
+ CP_MIU_TAG_STAT_TAG_1_STAT_MASK | \
+ CP_MIU_TAG_STAT_TAG_2_STAT_MASK | \
+ CP_MIU_TAG_STAT_TAG_3_STAT_MASK | \
+ CP_MIU_TAG_STAT_TAG_4_STAT_MASK | \
+ CP_MIU_TAG_STAT_TAG_5_STAT_MASK | \
+ CP_MIU_TAG_STAT_TAG_6_STAT_MASK | \
+ CP_MIU_TAG_STAT_TAG_7_STAT_MASK | \
+ CP_MIU_TAG_STAT_TAG_8_STAT_MASK | \
+ CP_MIU_TAG_STAT_TAG_9_STAT_MASK | \
+ CP_MIU_TAG_STAT_TAG_10_STAT_MASK | \
+ CP_MIU_TAG_STAT_TAG_11_STAT_MASK | \
+ CP_MIU_TAG_STAT_TAG_12_STAT_MASK | \
+ CP_MIU_TAG_STAT_TAG_13_STAT_MASK | \
+ CP_MIU_TAG_STAT_TAG_14_STAT_MASK | \
+ CP_MIU_TAG_STAT_TAG_15_STAT_MASK | \
+ CP_MIU_TAG_STAT_TAG_16_STAT_MASK | \
+ CP_MIU_TAG_STAT_TAG_17_STAT_MASK | \
+ CP_MIU_TAG_STAT_INVALID_RETURN_TAG_MASK)
+
+#define CP_MIU_TAG_STAT(tag_0_stat, tag_1_stat, tag_2_stat, tag_3_stat, tag_4_stat, tag_5_stat, tag_6_stat, tag_7_stat, tag_8_stat, tag_9_stat, tag_10_stat, tag_11_stat, tag_12_stat, tag_13_stat, tag_14_stat, tag_15_stat, tag_16_stat, tag_17_stat, invalid_return_tag) \
+ ((tag_0_stat << CP_MIU_TAG_STAT_TAG_0_STAT_SHIFT) | \
+ (tag_1_stat << CP_MIU_TAG_STAT_TAG_1_STAT_SHIFT) | \
+ (tag_2_stat << CP_MIU_TAG_STAT_TAG_2_STAT_SHIFT) | \
+ (tag_3_stat << CP_MIU_TAG_STAT_TAG_3_STAT_SHIFT) | \
+ (tag_4_stat << CP_MIU_TAG_STAT_TAG_4_STAT_SHIFT) | \
+ (tag_5_stat << CP_MIU_TAG_STAT_TAG_5_STAT_SHIFT) | \
+ (tag_6_stat << CP_MIU_TAG_STAT_TAG_6_STAT_SHIFT) | \
+ (tag_7_stat << CP_MIU_TAG_STAT_TAG_7_STAT_SHIFT) | \
+ (tag_8_stat << CP_MIU_TAG_STAT_TAG_8_STAT_SHIFT) | \
+ (tag_9_stat << CP_MIU_TAG_STAT_TAG_9_STAT_SHIFT) | \
+ (tag_10_stat << CP_MIU_TAG_STAT_TAG_10_STAT_SHIFT) | \
+ (tag_11_stat << CP_MIU_TAG_STAT_TAG_11_STAT_SHIFT) | \
+ (tag_12_stat << CP_MIU_TAG_STAT_TAG_12_STAT_SHIFT) | \
+ (tag_13_stat << CP_MIU_TAG_STAT_TAG_13_STAT_SHIFT) | \
+ (tag_14_stat << CP_MIU_TAG_STAT_TAG_14_STAT_SHIFT) | \
+ (tag_15_stat << CP_MIU_TAG_STAT_TAG_15_STAT_SHIFT) | \
+ (tag_16_stat << CP_MIU_TAG_STAT_TAG_16_STAT_SHIFT) | \
+ (tag_17_stat << CP_MIU_TAG_STAT_TAG_17_STAT_SHIFT) | \
+ (invalid_return_tag << CP_MIU_TAG_STAT_INVALID_RETURN_TAG_SHIFT))
+
+#define CP_MIU_TAG_STAT_GET_TAG_0_STAT(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_TAG_0_STAT_MASK) >> CP_MIU_TAG_STAT_TAG_0_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_GET_TAG_1_STAT(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_TAG_1_STAT_MASK) >> CP_MIU_TAG_STAT_TAG_1_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_GET_TAG_2_STAT(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_TAG_2_STAT_MASK) >> CP_MIU_TAG_STAT_TAG_2_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_GET_TAG_3_STAT(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_TAG_3_STAT_MASK) >> CP_MIU_TAG_STAT_TAG_3_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_GET_TAG_4_STAT(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_TAG_4_STAT_MASK) >> CP_MIU_TAG_STAT_TAG_4_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_GET_TAG_5_STAT(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_TAG_5_STAT_MASK) >> CP_MIU_TAG_STAT_TAG_5_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_GET_TAG_6_STAT(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_TAG_6_STAT_MASK) >> CP_MIU_TAG_STAT_TAG_6_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_GET_TAG_7_STAT(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_TAG_7_STAT_MASK) >> CP_MIU_TAG_STAT_TAG_7_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_GET_TAG_8_STAT(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_TAG_8_STAT_MASK) >> CP_MIU_TAG_STAT_TAG_8_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_GET_TAG_9_STAT(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_TAG_9_STAT_MASK) >> CP_MIU_TAG_STAT_TAG_9_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_GET_TAG_10_STAT(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_TAG_10_STAT_MASK) >> CP_MIU_TAG_STAT_TAG_10_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_GET_TAG_11_STAT(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_TAG_11_STAT_MASK) >> CP_MIU_TAG_STAT_TAG_11_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_GET_TAG_12_STAT(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_TAG_12_STAT_MASK) >> CP_MIU_TAG_STAT_TAG_12_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_GET_TAG_13_STAT(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_TAG_13_STAT_MASK) >> CP_MIU_TAG_STAT_TAG_13_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_GET_TAG_14_STAT(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_TAG_14_STAT_MASK) >> CP_MIU_TAG_STAT_TAG_14_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_GET_TAG_15_STAT(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_TAG_15_STAT_MASK) >> CP_MIU_TAG_STAT_TAG_15_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_GET_TAG_16_STAT(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_TAG_16_STAT_MASK) >> CP_MIU_TAG_STAT_TAG_16_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_GET_TAG_17_STAT(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_TAG_17_STAT_MASK) >> CP_MIU_TAG_STAT_TAG_17_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_GET_INVALID_RETURN_TAG(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_INVALID_RETURN_TAG_MASK) >> CP_MIU_TAG_STAT_INVALID_RETURN_TAG_SHIFT)
+
+#define CP_MIU_TAG_STAT_SET_TAG_0_STAT(cp_miu_tag_stat_reg, tag_0_stat) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_TAG_0_STAT_MASK) | (tag_0_stat << CP_MIU_TAG_STAT_TAG_0_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_SET_TAG_1_STAT(cp_miu_tag_stat_reg, tag_1_stat) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_TAG_1_STAT_MASK) | (tag_1_stat << CP_MIU_TAG_STAT_TAG_1_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_SET_TAG_2_STAT(cp_miu_tag_stat_reg, tag_2_stat) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_TAG_2_STAT_MASK) | (tag_2_stat << CP_MIU_TAG_STAT_TAG_2_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_SET_TAG_3_STAT(cp_miu_tag_stat_reg, tag_3_stat) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_TAG_3_STAT_MASK) | (tag_3_stat << CP_MIU_TAG_STAT_TAG_3_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_SET_TAG_4_STAT(cp_miu_tag_stat_reg, tag_4_stat) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_TAG_4_STAT_MASK) | (tag_4_stat << CP_MIU_TAG_STAT_TAG_4_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_SET_TAG_5_STAT(cp_miu_tag_stat_reg, tag_5_stat) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_TAG_5_STAT_MASK) | (tag_5_stat << CP_MIU_TAG_STAT_TAG_5_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_SET_TAG_6_STAT(cp_miu_tag_stat_reg, tag_6_stat) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_TAG_6_STAT_MASK) | (tag_6_stat << CP_MIU_TAG_STAT_TAG_6_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_SET_TAG_7_STAT(cp_miu_tag_stat_reg, tag_7_stat) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_TAG_7_STAT_MASK) | (tag_7_stat << CP_MIU_TAG_STAT_TAG_7_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_SET_TAG_8_STAT(cp_miu_tag_stat_reg, tag_8_stat) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_TAG_8_STAT_MASK) | (tag_8_stat << CP_MIU_TAG_STAT_TAG_8_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_SET_TAG_9_STAT(cp_miu_tag_stat_reg, tag_9_stat) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_TAG_9_STAT_MASK) | (tag_9_stat << CP_MIU_TAG_STAT_TAG_9_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_SET_TAG_10_STAT(cp_miu_tag_stat_reg, tag_10_stat) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_TAG_10_STAT_MASK) | (tag_10_stat << CP_MIU_TAG_STAT_TAG_10_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_SET_TAG_11_STAT(cp_miu_tag_stat_reg, tag_11_stat) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_TAG_11_STAT_MASK) | (tag_11_stat << CP_MIU_TAG_STAT_TAG_11_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_SET_TAG_12_STAT(cp_miu_tag_stat_reg, tag_12_stat) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_TAG_12_STAT_MASK) | (tag_12_stat << CP_MIU_TAG_STAT_TAG_12_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_SET_TAG_13_STAT(cp_miu_tag_stat_reg, tag_13_stat) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_TAG_13_STAT_MASK) | (tag_13_stat << CP_MIU_TAG_STAT_TAG_13_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_SET_TAG_14_STAT(cp_miu_tag_stat_reg, tag_14_stat) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_TAG_14_STAT_MASK) | (tag_14_stat << CP_MIU_TAG_STAT_TAG_14_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_SET_TAG_15_STAT(cp_miu_tag_stat_reg, tag_15_stat) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_TAG_15_STAT_MASK) | (tag_15_stat << CP_MIU_TAG_STAT_TAG_15_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_SET_TAG_16_STAT(cp_miu_tag_stat_reg, tag_16_stat) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_TAG_16_STAT_MASK) | (tag_16_stat << CP_MIU_TAG_STAT_TAG_16_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_SET_TAG_17_STAT(cp_miu_tag_stat_reg, tag_17_stat) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_TAG_17_STAT_MASK) | (tag_17_stat << CP_MIU_TAG_STAT_TAG_17_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_SET_INVALID_RETURN_TAG(cp_miu_tag_stat_reg, invalid_return_tag) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_INVALID_RETURN_TAG_MASK) | (invalid_return_tag << CP_MIU_TAG_STAT_INVALID_RETURN_TAG_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_miu_tag_stat_t {
+ unsigned int tag_0_stat : CP_MIU_TAG_STAT_TAG_0_STAT_SIZE;
+ unsigned int tag_1_stat : CP_MIU_TAG_STAT_TAG_1_STAT_SIZE;
+ unsigned int tag_2_stat : CP_MIU_TAG_STAT_TAG_2_STAT_SIZE;
+ unsigned int tag_3_stat : CP_MIU_TAG_STAT_TAG_3_STAT_SIZE;
+ unsigned int tag_4_stat : CP_MIU_TAG_STAT_TAG_4_STAT_SIZE;
+ unsigned int tag_5_stat : CP_MIU_TAG_STAT_TAG_5_STAT_SIZE;
+ unsigned int tag_6_stat : CP_MIU_TAG_STAT_TAG_6_STAT_SIZE;
+ unsigned int tag_7_stat : CP_MIU_TAG_STAT_TAG_7_STAT_SIZE;
+ unsigned int tag_8_stat : CP_MIU_TAG_STAT_TAG_8_STAT_SIZE;
+ unsigned int tag_9_stat : CP_MIU_TAG_STAT_TAG_9_STAT_SIZE;
+ unsigned int tag_10_stat : CP_MIU_TAG_STAT_TAG_10_STAT_SIZE;
+ unsigned int tag_11_stat : CP_MIU_TAG_STAT_TAG_11_STAT_SIZE;
+ unsigned int tag_12_stat : CP_MIU_TAG_STAT_TAG_12_STAT_SIZE;
+ unsigned int tag_13_stat : CP_MIU_TAG_STAT_TAG_13_STAT_SIZE;
+ unsigned int tag_14_stat : CP_MIU_TAG_STAT_TAG_14_STAT_SIZE;
+ unsigned int tag_15_stat : CP_MIU_TAG_STAT_TAG_15_STAT_SIZE;
+ unsigned int tag_16_stat : CP_MIU_TAG_STAT_TAG_16_STAT_SIZE;
+ unsigned int tag_17_stat : CP_MIU_TAG_STAT_TAG_17_STAT_SIZE;
+ unsigned int : 13;
+ unsigned int invalid_return_tag : CP_MIU_TAG_STAT_INVALID_RETURN_TAG_SIZE;
+ } cp_miu_tag_stat_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_miu_tag_stat_t {
+ unsigned int invalid_return_tag : CP_MIU_TAG_STAT_INVALID_RETURN_TAG_SIZE;
+ unsigned int : 13;
+ unsigned int tag_17_stat : CP_MIU_TAG_STAT_TAG_17_STAT_SIZE;
+ unsigned int tag_16_stat : CP_MIU_TAG_STAT_TAG_16_STAT_SIZE;
+ unsigned int tag_15_stat : CP_MIU_TAG_STAT_TAG_15_STAT_SIZE;
+ unsigned int tag_14_stat : CP_MIU_TAG_STAT_TAG_14_STAT_SIZE;
+ unsigned int tag_13_stat : CP_MIU_TAG_STAT_TAG_13_STAT_SIZE;
+ unsigned int tag_12_stat : CP_MIU_TAG_STAT_TAG_12_STAT_SIZE;
+ unsigned int tag_11_stat : CP_MIU_TAG_STAT_TAG_11_STAT_SIZE;
+ unsigned int tag_10_stat : CP_MIU_TAG_STAT_TAG_10_STAT_SIZE;
+ unsigned int tag_9_stat : CP_MIU_TAG_STAT_TAG_9_STAT_SIZE;
+ unsigned int tag_8_stat : CP_MIU_TAG_STAT_TAG_8_STAT_SIZE;
+ unsigned int tag_7_stat : CP_MIU_TAG_STAT_TAG_7_STAT_SIZE;
+ unsigned int tag_6_stat : CP_MIU_TAG_STAT_TAG_6_STAT_SIZE;
+ unsigned int tag_5_stat : CP_MIU_TAG_STAT_TAG_5_STAT_SIZE;
+ unsigned int tag_4_stat : CP_MIU_TAG_STAT_TAG_4_STAT_SIZE;
+ unsigned int tag_3_stat : CP_MIU_TAG_STAT_TAG_3_STAT_SIZE;
+ unsigned int tag_2_stat : CP_MIU_TAG_STAT_TAG_2_STAT_SIZE;
+ unsigned int tag_1_stat : CP_MIU_TAG_STAT_TAG_1_STAT_SIZE;
+ unsigned int tag_0_stat : CP_MIU_TAG_STAT_TAG_0_STAT_SIZE;
+ } cp_miu_tag_stat_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_miu_tag_stat_t f;
+} cp_miu_tag_stat_u;
+
+
+/*
+ * CP_CMD_INDEX struct
+ */
+
+#define CP_CMD_INDEX_CMD_INDEX_SIZE 7
+#define CP_CMD_INDEX_CMD_QUEUE_SEL_SIZE 2
+
+#define CP_CMD_INDEX_CMD_INDEX_SHIFT 0
+#define CP_CMD_INDEX_CMD_QUEUE_SEL_SHIFT 16
+
+#define CP_CMD_INDEX_CMD_INDEX_MASK 0x0000007f
+#define CP_CMD_INDEX_CMD_QUEUE_SEL_MASK 0x00030000
+
+#define CP_CMD_INDEX_MASK \
+ (CP_CMD_INDEX_CMD_INDEX_MASK | \
+ CP_CMD_INDEX_CMD_QUEUE_SEL_MASK)
+
+#define CP_CMD_INDEX(cmd_index, cmd_queue_sel) \
+ ((cmd_index << CP_CMD_INDEX_CMD_INDEX_SHIFT) | \
+ (cmd_queue_sel << CP_CMD_INDEX_CMD_QUEUE_SEL_SHIFT))
+
+#define CP_CMD_INDEX_GET_CMD_INDEX(cp_cmd_index) \
+ ((cp_cmd_index & CP_CMD_INDEX_CMD_INDEX_MASK) >> CP_CMD_INDEX_CMD_INDEX_SHIFT)
+#define CP_CMD_INDEX_GET_CMD_QUEUE_SEL(cp_cmd_index) \
+ ((cp_cmd_index & CP_CMD_INDEX_CMD_QUEUE_SEL_MASK) >> CP_CMD_INDEX_CMD_QUEUE_SEL_SHIFT)
+
+#define CP_CMD_INDEX_SET_CMD_INDEX(cp_cmd_index_reg, cmd_index) \
+ cp_cmd_index_reg = (cp_cmd_index_reg & ~CP_CMD_INDEX_CMD_INDEX_MASK) | (cmd_index << CP_CMD_INDEX_CMD_INDEX_SHIFT)
+#define CP_CMD_INDEX_SET_CMD_QUEUE_SEL(cp_cmd_index_reg, cmd_queue_sel) \
+ cp_cmd_index_reg = (cp_cmd_index_reg & ~CP_CMD_INDEX_CMD_QUEUE_SEL_MASK) | (cmd_queue_sel << CP_CMD_INDEX_CMD_QUEUE_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_cmd_index_t {
+ unsigned int cmd_index : CP_CMD_INDEX_CMD_INDEX_SIZE;
+ unsigned int : 9;
+ unsigned int cmd_queue_sel : CP_CMD_INDEX_CMD_QUEUE_SEL_SIZE;
+ unsigned int : 14;
+ } cp_cmd_index_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_cmd_index_t {
+ unsigned int : 14;
+ unsigned int cmd_queue_sel : CP_CMD_INDEX_CMD_QUEUE_SEL_SIZE;
+ unsigned int : 9;
+ unsigned int cmd_index : CP_CMD_INDEX_CMD_INDEX_SIZE;
+ } cp_cmd_index_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_cmd_index_t f;
+} cp_cmd_index_u;
+
+
+/*
+ * CP_CMD_DATA struct
+ */
+
+#define CP_CMD_DATA_CMD_DATA_SIZE 32
+
+#define CP_CMD_DATA_CMD_DATA_SHIFT 0
+
+#define CP_CMD_DATA_CMD_DATA_MASK 0xffffffff
+
+#define CP_CMD_DATA_MASK \
+ (CP_CMD_DATA_CMD_DATA_MASK)
+
+#define CP_CMD_DATA(cmd_data) \
+ ((cmd_data << CP_CMD_DATA_CMD_DATA_SHIFT))
+
+#define CP_CMD_DATA_GET_CMD_DATA(cp_cmd_data) \
+ ((cp_cmd_data & CP_CMD_DATA_CMD_DATA_MASK) >> CP_CMD_DATA_CMD_DATA_SHIFT)
+
+#define CP_CMD_DATA_SET_CMD_DATA(cp_cmd_data_reg, cmd_data) \
+ cp_cmd_data_reg = (cp_cmd_data_reg & ~CP_CMD_DATA_CMD_DATA_MASK) | (cmd_data << CP_CMD_DATA_CMD_DATA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_cmd_data_t {
+ unsigned int cmd_data : CP_CMD_DATA_CMD_DATA_SIZE;
+ } cp_cmd_data_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_cmd_data_t {
+ unsigned int cmd_data : CP_CMD_DATA_CMD_DATA_SIZE;
+ } cp_cmd_data_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_cmd_data_t f;
+} cp_cmd_data_u;
+
+
+/*
+ * CP_ME_CNTL struct
+ */
+
+#define CP_ME_CNTL_ME_STATMUX_SIZE 16
+#define CP_ME_CNTL_VTX_DEALLOC_FIFO_EMPTY_SIZE 1
+#define CP_ME_CNTL_PIX_DEALLOC_FIFO_EMPTY_SIZE 1
+#define CP_ME_CNTL_ME_HALT_SIZE 1
+#define CP_ME_CNTL_ME_BUSY_SIZE 1
+#define CP_ME_CNTL_PROG_CNT_SIZE_SIZE 1
+
+#define CP_ME_CNTL_ME_STATMUX_SHIFT 0
+#define CP_ME_CNTL_VTX_DEALLOC_FIFO_EMPTY_SHIFT 25
+#define CP_ME_CNTL_PIX_DEALLOC_FIFO_EMPTY_SHIFT 26
+#define CP_ME_CNTL_ME_HALT_SHIFT 28
+#define CP_ME_CNTL_ME_BUSY_SHIFT 29
+#define CP_ME_CNTL_PROG_CNT_SIZE_SHIFT 31
+
+#define CP_ME_CNTL_ME_STATMUX_MASK 0x0000ffff
+#define CP_ME_CNTL_VTX_DEALLOC_FIFO_EMPTY_MASK 0x02000000
+#define CP_ME_CNTL_PIX_DEALLOC_FIFO_EMPTY_MASK 0x04000000
+#define CP_ME_CNTL_ME_HALT_MASK 0x10000000
+#define CP_ME_CNTL_ME_BUSY_MASK 0x20000000
+#define CP_ME_CNTL_PROG_CNT_SIZE_MASK 0x80000000
+
+#define CP_ME_CNTL_MASK \
+ (CP_ME_CNTL_ME_STATMUX_MASK | \
+ CP_ME_CNTL_VTX_DEALLOC_FIFO_EMPTY_MASK | \
+ CP_ME_CNTL_PIX_DEALLOC_FIFO_EMPTY_MASK | \
+ CP_ME_CNTL_ME_HALT_MASK | \
+ CP_ME_CNTL_ME_BUSY_MASK | \
+ CP_ME_CNTL_PROG_CNT_SIZE_MASK)
+
+#define CP_ME_CNTL(me_statmux, vtx_dealloc_fifo_empty, pix_dealloc_fifo_empty, me_halt, me_busy, prog_cnt_size) \
+ ((me_statmux << CP_ME_CNTL_ME_STATMUX_SHIFT) | \
+ (vtx_dealloc_fifo_empty << CP_ME_CNTL_VTX_DEALLOC_FIFO_EMPTY_SHIFT) | \
+ (pix_dealloc_fifo_empty << CP_ME_CNTL_PIX_DEALLOC_FIFO_EMPTY_SHIFT) | \
+ (me_halt << CP_ME_CNTL_ME_HALT_SHIFT) | \
+ (me_busy << CP_ME_CNTL_ME_BUSY_SHIFT) | \
+ (prog_cnt_size << CP_ME_CNTL_PROG_CNT_SIZE_SHIFT))
+
+#define CP_ME_CNTL_GET_ME_STATMUX(cp_me_cntl) \
+ ((cp_me_cntl & CP_ME_CNTL_ME_STATMUX_MASK) >> CP_ME_CNTL_ME_STATMUX_SHIFT)
+#define CP_ME_CNTL_GET_VTX_DEALLOC_FIFO_EMPTY(cp_me_cntl) \
+ ((cp_me_cntl & CP_ME_CNTL_VTX_DEALLOC_FIFO_EMPTY_MASK) >> CP_ME_CNTL_VTX_DEALLOC_FIFO_EMPTY_SHIFT)
+#define CP_ME_CNTL_GET_PIX_DEALLOC_FIFO_EMPTY(cp_me_cntl) \
+ ((cp_me_cntl & CP_ME_CNTL_PIX_DEALLOC_FIFO_EMPTY_MASK) >> CP_ME_CNTL_PIX_DEALLOC_FIFO_EMPTY_SHIFT)
+#define CP_ME_CNTL_GET_ME_HALT(cp_me_cntl) \
+ ((cp_me_cntl & CP_ME_CNTL_ME_HALT_MASK) >> CP_ME_CNTL_ME_HALT_SHIFT)
+#define CP_ME_CNTL_GET_ME_BUSY(cp_me_cntl) \
+ ((cp_me_cntl & CP_ME_CNTL_ME_BUSY_MASK) >> CP_ME_CNTL_ME_BUSY_SHIFT)
+#define CP_ME_CNTL_GET_PROG_CNT_SIZE(cp_me_cntl) \
+ ((cp_me_cntl & CP_ME_CNTL_PROG_CNT_SIZE_MASK) >> CP_ME_CNTL_PROG_CNT_SIZE_SHIFT)
+
+#define CP_ME_CNTL_SET_ME_STATMUX(cp_me_cntl_reg, me_statmux) \
+ cp_me_cntl_reg = (cp_me_cntl_reg & ~CP_ME_CNTL_ME_STATMUX_MASK) | (me_statmux << CP_ME_CNTL_ME_STATMUX_SHIFT)
+#define CP_ME_CNTL_SET_VTX_DEALLOC_FIFO_EMPTY(cp_me_cntl_reg, vtx_dealloc_fifo_empty) \
+ cp_me_cntl_reg = (cp_me_cntl_reg & ~CP_ME_CNTL_VTX_DEALLOC_FIFO_EMPTY_MASK) | (vtx_dealloc_fifo_empty << CP_ME_CNTL_VTX_DEALLOC_FIFO_EMPTY_SHIFT)
+#define CP_ME_CNTL_SET_PIX_DEALLOC_FIFO_EMPTY(cp_me_cntl_reg, pix_dealloc_fifo_empty) \
+ cp_me_cntl_reg = (cp_me_cntl_reg & ~CP_ME_CNTL_PIX_DEALLOC_FIFO_EMPTY_MASK) | (pix_dealloc_fifo_empty << CP_ME_CNTL_PIX_DEALLOC_FIFO_EMPTY_SHIFT)
+#define CP_ME_CNTL_SET_ME_HALT(cp_me_cntl_reg, me_halt) \
+ cp_me_cntl_reg = (cp_me_cntl_reg & ~CP_ME_CNTL_ME_HALT_MASK) | (me_halt << CP_ME_CNTL_ME_HALT_SHIFT)
+#define CP_ME_CNTL_SET_ME_BUSY(cp_me_cntl_reg, me_busy) \
+ cp_me_cntl_reg = (cp_me_cntl_reg & ~CP_ME_CNTL_ME_BUSY_MASK) | (me_busy << CP_ME_CNTL_ME_BUSY_SHIFT)
+#define CP_ME_CNTL_SET_PROG_CNT_SIZE(cp_me_cntl_reg, prog_cnt_size) \
+ cp_me_cntl_reg = (cp_me_cntl_reg & ~CP_ME_CNTL_PROG_CNT_SIZE_MASK) | (prog_cnt_size << CP_ME_CNTL_PROG_CNT_SIZE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_cntl_t {
+ unsigned int me_statmux : CP_ME_CNTL_ME_STATMUX_SIZE;
+ unsigned int : 9;
+ unsigned int vtx_dealloc_fifo_empty : CP_ME_CNTL_VTX_DEALLOC_FIFO_EMPTY_SIZE;
+ unsigned int pix_dealloc_fifo_empty : CP_ME_CNTL_PIX_DEALLOC_FIFO_EMPTY_SIZE;
+ unsigned int : 1;
+ unsigned int me_halt : CP_ME_CNTL_ME_HALT_SIZE;
+ unsigned int me_busy : CP_ME_CNTL_ME_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int prog_cnt_size : CP_ME_CNTL_PROG_CNT_SIZE_SIZE;
+ } cp_me_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_cntl_t {
+ unsigned int prog_cnt_size : CP_ME_CNTL_PROG_CNT_SIZE_SIZE;
+ unsigned int : 1;
+ unsigned int me_busy : CP_ME_CNTL_ME_BUSY_SIZE;
+ unsigned int me_halt : CP_ME_CNTL_ME_HALT_SIZE;
+ unsigned int : 1;
+ unsigned int pix_dealloc_fifo_empty : CP_ME_CNTL_PIX_DEALLOC_FIFO_EMPTY_SIZE;
+ unsigned int vtx_dealloc_fifo_empty : CP_ME_CNTL_VTX_DEALLOC_FIFO_EMPTY_SIZE;
+ unsigned int : 9;
+ unsigned int me_statmux : CP_ME_CNTL_ME_STATMUX_SIZE;
+ } cp_me_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_cntl_t f;
+} cp_me_cntl_u;
+
+
+/*
+ * CP_ME_STATUS struct
+ */
+
+#define CP_ME_STATUS_ME_DEBUG_DATA_SIZE 32
+
+#define CP_ME_STATUS_ME_DEBUG_DATA_SHIFT 0
+
+#define CP_ME_STATUS_ME_DEBUG_DATA_MASK 0xffffffff
+
+#define CP_ME_STATUS_MASK \
+ (CP_ME_STATUS_ME_DEBUG_DATA_MASK)
+
+#define CP_ME_STATUS(me_debug_data) \
+ ((me_debug_data << CP_ME_STATUS_ME_DEBUG_DATA_SHIFT))
+
+#define CP_ME_STATUS_GET_ME_DEBUG_DATA(cp_me_status) \
+ ((cp_me_status & CP_ME_STATUS_ME_DEBUG_DATA_MASK) >> CP_ME_STATUS_ME_DEBUG_DATA_SHIFT)
+
+#define CP_ME_STATUS_SET_ME_DEBUG_DATA(cp_me_status_reg, me_debug_data) \
+ cp_me_status_reg = (cp_me_status_reg & ~CP_ME_STATUS_ME_DEBUG_DATA_MASK) | (me_debug_data << CP_ME_STATUS_ME_DEBUG_DATA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_status_t {
+ unsigned int me_debug_data : CP_ME_STATUS_ME_DEBUG_DATA_SIZE;
+ } cp_me_status_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_status_t {
+ unsigned int me_debug_data : CP_ME_STATUS_ME_DEBUG_DATA_SIZE;
+ } cp_me_status_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_status_t f;
+} cp_me_status_u;
+
+
+/*
+ * CP_ME_RAM_WADDR struct
+ */
+
+#define CP_ME_RAM_WADDR_ME_RAM_WADDR_SIZE 10
+
+#define CP_ME_RAM_WADDR_ME_RAM_WADDR_SHIFT 0
+
+#define CP_ME_RAM_WADDR_ME_RAM_WADDR_MASK 0x000003ff
+
+#define CP_ME_RAM_WADDR_MASK \
+ (CP_ME_RAM_WADDR_ME_RAM_WADDR_MASK)
+
+#define CP_ME_RAM_WADDR(me_ram_waddr) \
+ ((me_ram_waddr << CP_ME_RAM_WADDR_ME_RAM_WADDR_SHIFT))
+
+#define CP_ME_RAM_WADDR_GET_ME_RAM_WADDR(cp_me_ram_waddr) \
+ ((cp_me_ram_waddr & CP_ME_RAM_WADDR_ME_RAM_WADDR_MASK) >> CP_ME_RAM_WADDR_ME_RAM_WADDR_SHIFT)
+
+#define CP_ME_RAM_WADDR_SET_ME_RAM_WADDR(cp_me_ram_waddr_reg, me_ram_waddr) \
+ cp_me_ram_waddr_reg = (cp_me_ram_waddr_reg & ~CP_ME_RAM_WADDR_ME_RAM_WADDR_MASK) | (me_ram_waddr << CP_ME_RAM_WADDR_ME_RAM_WADDR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_ram_waddr_t {
+ unsigned int me_ram_waddr : CP_ME_RAM_WADDR_ME_RAM_WADDR_SIZE;
+ unsigned int : 22;
+ } cp_me_ram_waddr_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_ram_waddr_t {
+ unsigned int : 22;
+ unsigned int me_ram_waddr : CP_ME_RAM_WADDR_ME_RAM_WADDR_SIZE;
+ } cp_me_ram_waddr_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_ram_waddr_t f;
+} cp_me_ram_waddr_u;
+
+
+/*
+ * CP_ME_RAM_RADDR struct
+ */
+
+#define CP_ME_RAM_RADDR_ME_RAM_RADDR_SIZE 10
+
+#define CP_ME_RAM_RADDR_ME_RAM_RADDR_SHIFT 0
+
+#define CP_ME_RAM_RADDR_ME_RAM_RADDR_MASK 0x000003ff
+
+#define CP_ME_RAM_RADDR_MASK \
+ (CP_ME_RAM_RADDR_ME_RAM_RADDR_MASK)
+
+#define CP_ME_RAM_RADDR(me_ram_raddr) \
+ ((me_ram_raddr << CP_ME_RAM_RADDR_ME_RAM_RADDR_SHIFT))
+
+#define CP_ME_RAM_RADDR_GET_ME_RAM_RADDR(cp_me_ram_raddr) \
+ ((cp_me_ram_raddr & CP_ME_RAM_RADDR_ME_RAM_RADDR_MASK) >> CP_ME_RAM_RADDR_ME_RAM_RADDR_SHIFT)
+
+#define CP_ME_RAM_RADDR_SET_ME_RAM_RADDR(cp_me_ram_raddr_reg, me_ram_raddr) \
+ cp_me_ram_raddr_reg = (cp_me_ram_raddr_reg & ~CP_ME_RAM_RADDR_ME_RAM_RADDR_MASK) | (me_ram_raddr << CP_ME_RAM_RADDR_ME_RAM_RADDR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_ram_raddr_t {
+ unsigned int me_ram_raddr : CP_ME_RAM_RADDR_ME_RAM_RADDR_SIZE;
+ unsigned int : 22;
+ } cp_me_ram_raddr_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_ram_raddr_t {
+ unsigned int : 22;
+ unsigned int me_ram_raddr : CP_ME_RAM_RADDR_ME_RAM_RADDR_SIZE;
+ } cp_me_ram_raddr_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_ram_raddr_t f;
+} cp_me_ram_raddr_u;
+
+
+/*
+ * CP_ME_RAM_DATA struct
+ */
+
+#define CP_ME_RAM_DATA_ME_RAM_DATA_SIZE 32
+
+#define CP_ME_RAM_DATA_ME_RAM_DATA_SHIFT 0
+
+#define CP_ME_RAM_DATA_ME_RAM_DATA_MASK 0xffffffff
+
+#define CP_ME_RAM_DATA_MASK \
+ (CP_ME_RAM_DATA_ME_RAM_DATA_MASK)
+
+#define CP_ME_RAM_DATA(me_ram_data) \
+ ((me_ram_data << CP_ME_RAM_DATA_ME_RAM_DATA_SHIFT))
+
+#define CP_ME_RAM_DATA_GET_ME_RAM_DATA(cp_me_ram_data) \
+ ((cp_me_ram_data & CP_ME_RAM_DATA_ME_RAM_DATA_MASK) >> CP_ME_RAM_DATA_ME_RAM_DATA_SHIFT)
+
+#define CP_ME_RAM_DATA_SET_ME_RAM_DATA(cp_me_ram_data_reg, me_ram_data) \
+ cp_me_ram_data_reg = (cp_me_ram_data_reg & ~CP_ME_RAM_DATA_ME_RAM_DATA_MASK) | (me_ram_data << CP_ME_RAM_DATA_ME_RAM_DATA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_ram_data_t {
+ unsigned int me_ram_data : CP_ME_RAM_DATA_ME_RAM_DATA_SIZE;
+ } cp_me_ram_data_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_ram_data_t {
+ unsigned int me_ram_data : CP_ME_RAM_DATA_ME_RAM_DATA_SIZE;
+ } cp_me_ram_data_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_ram_data_t f;
+} cp_me_ram_data_u;
+
+
+/*
+ * CP_ME_RDADDR struct
+ */
+
+#define CP_ME_RDADDR_ME_RDADDR_SIZE 32
+
+#define CP_ME_RDADDR_ME_RDADDR_SHIFT 0
+
+#define CP_ME_RDADDR_ME_RDADDR_MASK 0xffffffff
+
+#define CP_ME_RDADDR_MASK \
+ (CP_ME_RDADDR_ME_RDADDR_MASK)
+
+#define CP_ME_RDADDR(me_rdaddr) \
+ ((me_rdaddr << CP_ME_RDADDR_ME_RDADDR_SHIFT))
+
+#define CP_ME_RDADDR_GET_ME_RDADDR(cp_me_rdaddr) \
+ ((cp_me_rdaddr & CP_ME_RDADDR_ME_RDADDR_MASK) >> CP_ME_RDADDR_ME_RDADDR_SHIFT)
+
+#define CP_ME_RDADDR_SET_ME_RDADDR(cp_me_rdaddr_reg, me_rdaddr) \
+ cp_me_rdaddr_reg = (cp_me_rdaddr_reg & ~CP_ME_RDADDR_ME_RDADDR_MASK) | (me_rdaddr << CP_ME_RDADDR_ME_RDADDR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_rdaddr_t {
+ unsigned int me_rdaddr : CP_ME_RDADDR_ME_RDADDR_SIZE;
+ } cp_me_rdaddr_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_rdaddr_t {
+ unsigned int me_rdaddr : CP_ME_RDADDR_ME_RDADDR_SIZE;
+ } cp_me_rdaddr_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_rdaddr_t f;
+} cp_me_rdaddr_u;
+
+
+/*
+ * CP_DEBUG struct
+ */
+
+#define CP_DEBUG_CP_DEBUG_UNUSED_22_to_0_SIZE 23
+#define CP_DEBUG_PREDICATE_DISABLE_SIZE 1
+#define CP_DEBUG_PROG_END_PTR_ENABLE_SIZE 1
+#define CP_DEBUG_MIU_128BIT_WRITE_ENABLE_SIZE 1
+#define CP_DEBUG_PREFETCH_PASS_NOPS_SIZE 1
+#define CP_DEBUG_DYNAMIC_CLK_DISABLE_SIZE 1
+#define CP_DEBUG_PREFETCH_MATCH_DISABLE_SIZE 1
+#define CP_DEBUG_SIMPLE_ME_FLOW_CONTROL_SIZE 1
+#define CP_DEBUG_MIU_WRITE_PACK_DISABLE_SIZE 1
+
+#define CP_DEBUG_CP_DEBUG_UNUSED_22_to_0_SHIFT 0
+#define CP_DEBUG_PREDICATE_DISABLE_SHIFT 23
+#define CP_DEBUG_PROG_END_PTR_ENABLE_SHIFT 24
+#define CP_DEBUG_MIU_128BIT_WRITE_ENABLE_SHIFT 25
+#define CP_DEBUG_PREFETCH_PASS_NOPS_SHIFT 26
+#define CP_DEBUG_DYNAMIC_CLK_DISABLE_SHIFT 27
+#define CP_DEBUG_PREFETCH_MATCH_DISABLE_SHIFT 28
+#define CP_DEBUG_SIMPLE_ME_FLOW_CONTROL_SHIFT 30
+#define CP_DEBUG_MIU_WRITE_PACK_DISABLE_SHIFT 31
+
+#define CP_DEBUG_CP_DEBUG_UNUSED_22_to_0_MASK 0x007fffff
+#define CP_DEBUG_PREDICATE_DISABLE_MASK 0x00800000
+#define CP_DEBUG_PROG_END_PTR_ENABLE_MASK 0x01000000
+#define CP_DEBUG_MIU_128BIT_WRITE_ENABLE_MASK 0x02000000
+#define CP_DEBUG_PREFETCH_PASS_NOPS_MASK 0x04000000
+#define CP_DEBUG_DYNAMIC_CLK_DISABLE_MASK 0x08000000
+#define CP_DEBUG_PREFETCH_MATCH_DISABLE_MASK 0x10000000
+#define CP_DEBUG_SIMPLE_ME_FLOW_CONTROL_MASK 0x40000000
+#define CP_DEBUG_MIU_WRITE_PACK_DISABLE_MASK 0x80000000
+
+#define CP_DEBUG_MASK \
+ (CP_DEBUG_CP_DEBUG_UNUSED_22_to_0_MASK | \
+ CP_DEBUG_PREDICATE_DISABLE_MASK | \
+ CP_DEBUG_PROG_END_PTR_ENABLE_MASK | \
+ CP_DEBUG_MIU_128BIT_WRITE_ENABLE_MASK | \
+ CP_DEBUG_PREFETCH_PASS_NOPS_MASK | \
+ CP_DEBUG_DYNAMIC_CLK_DISABLE_MASK | \
+ CP_DEBUG_PREFETCH_MATCH_DISABLE_MASK | \
+ CP_DEBUG_SIMPLE_ME_FLOW_CONTROL_MASK | \
+ CP_DEBUG_MIU_WRITE_PACK_DISABLE_MASK)
+
+#define CP_DEBUG(cp_debug_unused_22_to_0, predicate_disable, prog_end_ptr_enable, miu_128bit_write_enable, prefetch_pass_nops, dynamic_clk_disable, prefetch_match_disable, simple_me_flow_control, miu_write_pack_disable) \
+ ((cp_debug_unused_22_to_0 << CP_DEBUG_CP_DEBUG_UNUSED_22_to_0_SHIFT) | \
+ (predicate_disable << CP_DEBUG_PREDICATE_DISABLE_SHIFT) | \
+ (prog_end_ptr_enable << CP_DEBUG_PROG_END_PTR_ENABLE_SHIFT) | \
+ (miu_128bit_write_enable << CP_DEBUG_MIU_128BIT_WRITE_ENABLE_SHIFT) | \
+ (prefetch_pass_nops << CP_DEBUG_PREFETCH_PASS_NOPS_SHIFT) | \
+ (dynamic_clk_disable << CP_DEBUG_DYNAMIC_CLK_DISABLE_SHIFT) | \
+ (prefetch_match_disable << CP_DEBUG_PREFETCH_MATCH_DISABLE_SHIFT) | \
+ (simple_me_flow_control << CP_DEBUG_SIMPLE_ME_FLOW_CONTROL_SHIFT) | \
+ (miu_write_pack_disable << CP_DEBUG_MIU_WRITE_PACK_DISABLE_SHIFT))
+
+#define CP_DEBUG_GET_CP_DEBUG_UNUSED_22_to_0(cp_debug) \
+ ((cp_debug & CP_DEBUG_CP_DEBUG_UNUSED_22_to_0_MASK) >> CP_DEBUG_CP_DEBUG_UNUSED_22_to_0_SHIFT)
+#define CP_DEBUG_GET_PREDICATE_DISABLE(cp_debug) \
+ ((cp_debug & CP_DEBUG_PREDICATE_DISABLE_MASK) >> CP_DEBUG_PREDICATE_DISABLE_SHIFT)
+#define CP_DEBUG_GET_PROG_END_PTR_ENABLE(cp_debug) \
+ ((cp_debug & CP_DEBUG_PROG_END_PTR_ENABLE_MASK) >> CP_DEBUG_PROG_END_PTR_ENABLE_SHIFT)
+#define CP_DEBUG_GET_MIU_128BIT_WRITE_ENABLE(cp_debug) \
+ ((cp_debug & CP_DEBUG_MIU_128BIT_WRITE_ENABLE_MASK) >> CP_DEBUG_MIU_128BIT_WRITE_ENABLE_SHIFT)
+#define CP_DEBUG_GET_PREFETCH_PASS_NOPS(cp_debug) \
+ ((cp_debug & CP_DEBUG_PREFETCH_PASS_NOPS_MASK) >> CP_DEBUG_PREFETCH_PASS_NOPS_SHIFT)
+#define CP_DEBUG_GET_DYNAMIC_CLK_DISABLE(cp_debug) \
+ ((cp_debug & CP_DEBUG_DYNAMIC_CLK_DISABLE_MASK) >> CP_DEBUG_DYNAMIC_CLK_DISABLE_SHIFT)
+#define CP_DEBUG_GET_PREFETCH_MATCH_DISABLE(cp_debug) \
+ ((cp_debug & CP_DEBUG_PREFETCH_MATCH_DISABLE_MASK) >> CP_DEBUG_PREFETCH_MATCH_DISABLE_SHIFT)
+#define CP_DEBUG_GET_SIMPLE_ME_FLOW_CONTROL(cp_debug) \
+ ((cp_debug & CP_DEBUG_SIMPLE_ME_FLOW_CONTROL_MASK) >> CP_DEBUG_SIMPLE_ME_FLOW_CONTROL_SHIFT)
+#define CP_DEBUG_GET_MIU_WRITE_PACK_DISABLE(cp_debug) \
+ ((cp_debug & CP_DEBUG_MIU_WRITE_PACK_DISABLE_MASK) >> CP_DEBUG_MIU_WRITE_PACK_DISABLE_SHIFT)
+
+#define CP_DEBUG_SET_CP_DEBUG_UNUSED_22_to_0(cp_debug_reg, cp_debug_unused_22_to_0) \
+ cp_debug_reg = (cp_debug_reg & ~CP_DEBUG_CP_DEBUG_UNUSED_22_to_0_MASK) | (cp_debug_unused_22_to_0 << CP_DEBUG_CP_DEBUG_UNUSED_22_to_0_SHIFT)
+#define CP_DEBUG_SET_PREDICATE_DISABLE(cp_debug_reg, predicate_disable) \
+ cp_debug_reg = (cp_debug_reg & ~CP_DEBUG_PREDICATE_DISABLE_MASK) | (predicate_disable << CP_DEBUG_PREDICATE_DISABLE_SHIFT)
+#define CP_DEBUG_SET_PROG_END_PTR_ENABLE(cp_debug_reg, prog_end_ptr_enable) \
+ cp_debug_reg = (cp_debug_reg & ~CP_DEBUG_PROG_END_PTR_ENABLE_MASK) | (prog_end_ptr_enable << CP_DEBUG_PROG_END_PTR_ENABLE_SHIFT)
+#define CP_DEBUG_SET_MIU_128BIT_WRITE_ENABLE(cp_debug_reg, miu_128bit_write_enable) \
+ cp_debug_reg = (cp_debug_reg & ~CP_DEBUG_MIU_128BIT_WRITE_ENABLE_MASK) | (miu_128bit_write_enable << CP_DEBUG_MIU_128BIT_WRITE_ENABLE_SHIFT)
+#define CP_DEBUG_SET_PREFETCH_PASS_NOPS(cp_debug_reg, prefetch_pass_nops) \
+ cp_debug_reg = (cp_debug_reg & ~CP_DEBUG_PREFETCH_PASS_NOPS_MASK) | (prefetch_pass_nops << CP_DEBUG_PREFETCH_PASS_NOPS_SHIFT)
+#define CP_DEBUG_SET_DYNAMIC_CLK_DISABLE(cp_debug_reg, dynamic_clk_disable) \
+ cp_debug_reg = (cp_debug_reg & ~CP_DEBUG_DYNAMIC_CLK_DISABLE_MASK) | (dynamic_clk_disable << CP_DEBUG_DYNAMIC_CLK_DISABLE_SHIFT)
+#define CP_DEBUG_SET_PREFETCH_MATCH_DISABLE(cp_debug_reg, prefetch_match_disable) \
+ cp_debug_reg = (cp_debug_reg & ~CP_DEBUG_PREFETCH_MATCH_DISABLE_MASK) | (prefetch_match_disable << CP_DEBUG_PREFETCH_MATCH_DISABLE_SHIFT)
+#define CP_DEBUG_SET_SIMPLE_ME_FLOW_CONTROL(cp_debug_reg, simple_me_flow_control) \
+ cp_debug_reg = (cp_debug_reg & ~CP_DEBUG_SIMPLE_ME_FLOW_CONTROL_MASK) | (simple_me_flow_control << CP_DEBUG_SIMPLE_ME_FLOW_CONTROL_SHIFT)
+#define CP_DEBUG_SET_MIU_WRITE_PACK_DISABLE(cp_debug_reg, miu_write_pack_disable) \
+ cp_debug_reg = (cp_debug_reg & ~CP_DEBUG_MIU_WRITE_PACK_DISABLE_MASK) | (miu_write_pack_disable << CP_DEBUG_MIU_WRITE_PACK_DISABLE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_debug_t {
+ unsigned int cp_debug_unused_22_to_0 : CP_DEBUG_CP_DEBUG_UNUSED_22_to_0_SIZE;
+ unsigned int predicate_disable : CP_DEBUG_PREDICATE_DISABLE_SIZE;
+ unsigned int prog_end_ptr_enable : CP_DEBUG_PROG_END_PTR_ENABLE_SIZE;
+ unsigned int miu_128bit_write_enable : CP_DEBUG_MIU_128BIT_WRITE_ENABLE_SIZE;
+ unsigned int prefetch_pass_nops : CP_DEBUG_PREFETCH_PASS_NOPS_SIZE;
+ unsigned int dynamic_clk_disable : CP_DEBUG_DYNAMIC_CLK_DISABLE_SIZE;
+ unsigned int prefetch_match_disable : CP_DEBUG_PREFETCH_MATCH_DISABLE_SIZE;
+ unsigned int : 1;
+ unsigned int simple_me_flow_control : CP_DEBUG_SIMPLE_ME_FLOW_CONTROL_SIZE;
+ unsigned int miu_write_pack_disable : CP_DEBUG_MIU_WRITE_PACK_DISABLE_SIZE;
+ } cp_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_debug_t {
+ unsigned int miu_write_pack_disable : CP_DEBUG_MIU_WRITE_PACK_DISABLE_SIZE;
+ unsigned int simple_me_flow_control : CP_DEBUG_SIMPLE_ME_FLOW_CONTROL_SIZE;
+ unsigned int : 1;
+ unsigned int prefetch_match_disable : CP_DEBUG_PREFETCH_MATCH_DISABLE_SIZE;
+ unsigned int dynamic_clk_disable : CP_DEBUG_DYNAMIC_CLK_DISABLE_SIZE;
+ unsigned int prefetch_pass_nops : CP_DEBUG_PREFETCH_PASS_NOPS_SIZE;
+ unsigned int miu_128bit_write_enable : CP_DEBUG_MIU_128BIT_WRITE_ENABLE_SIZE;
+ unsigned int prog_end_ptr_enable : CP_DEBUG_PROG_END_PTR_ENABLE_SIZE;
+ unsigned int predicate_disable : CP_DEBUG_PREDICATE_DISABLE_SIZE;
+ unsigned int cp_debug_unused_22_to_0 : CP_DEBUG_CP_DEBUG_UNUSED_22_to_0_SIZE;
+ } cp_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_debug_t f;
+} cp_debug_u;
+
+
+/*
+ * SCRATCH_REG0 struct
+ */
+
+#define SCRATCH_REG0_SCRATCH_REG0_SIZE 32
+
+#define SCRATCH_REG0_SCRATCH_REG0_SHIFT 0
+
+#define SCRATCH_REG0_SCRATCH_REG0_MASK 0xffffffff
+
+#define SCRATCH_REG0_MASK \
+ (SCRATCH_REG0_SCRATCH_REG0_MASK)
+
+#define SCRATCH_REG0(scratch_reg0) \
+ ((scratch_reg0 << SCRATCH_REG0_SCRATCH_REG0_SHIFT))
+
+#define SCRATCH_REG0_GET_SCRATCH_REG0(scratch_reg0) \
+ ((scratch_reg0 & SCRATCH_REG0_SCRATCH_REG0_MASK) >> SCRATCH_REG0_SCRATCH_REG0_SHIFT)
+
+#define SCRATCH_REG0_SET_SCRATCH_REG0(scratch_reg0_reg, scratch_reg0) \
+ scratch_reg0_reg = (scratch_reg0_reg & ~SCRATCH_REG0_SCRATCH_REG0_MASK) | (scratch_reg0 << SCRATCH_REG0_SCRATCH_REG0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _scratch_reg0_t {
+ unsigned int scratch_reg0 : SCRATCH_REG0_SCRATCH_REG0_SIZE;
+ } scratch_reg0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _scratch_reg0_t {
+ unsigned int scratch_reg0 : SCRATCH_REG0_SCRATCH_REG0_SIZE;
+ } scratch_reg0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ scratch_reg0_t f;
+} scratch_reg0_u;
+
+
+/*
+ * SCRATCH_REG1 struct
+ */
+
+#define SCRATCH_REG1_SCRATCH_REG1_SIZE 32
+
+#define SCRATCH_REG1_SCRATCH_REG1_SHIFT 0
+
+#define SCRATCH_REG1_SCRATCH_REG1_MASK 0xffffffff
+
+#define SCRATCH_REG1_MASK \
+ (SCRATCH_REG1_SCRATCH_REG1_MASK)
+
+#define SCRATCH_REG1(scratch_reg1) \
+ ((scratch_reg1 << SCRATCH_REG1_SCRATCH_REG1_SHIFT))
+
+#define SCRATCH_REG1_GET_SCRATCH_REG1(scratch_reg1) \
+ ((scratch_reg1 & SCRATCH_REG1_SCRATCH_REG1_MASK) >> SCRATCH_REG1_SCRATCH_REG1_SHIFT)
+
+#define SCRATCH_REG1_SET_SCRATCH_REG1(scratch_reg1_reg, scratch_reg1) \
+ scratch_reg1_reg = (scratch_reg1_reg & ~SCRATCH_REG1_SCRATCH_REG1_MASK) | (scratch_reg1 << SCRATCH_REG1_SCRATCH_REG1_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _scratch_reg1_t {
+ unsigned int scratch_reg1 : SCRATCH_REG1_SCRATCH_REG1_SIZE;
+ } scratch_reg1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _scratch_reg1_t {
+ unsigned int scratch_reg1 : SCRATCH_REG1_SCRATCH_REG1_SIZE;
+ } scratch_reg1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ scratch_reg1_t f;
+} scratch_reg1_u;
+
+
+/*
+ * SCRATCH_REG2 struct
+ */
+
+#define SCRATCH_REG2_SCRATCH_REG2_SIZE 32
+
+#define SCRATCH_REG2_SCRATCH_REG2_SHIFT 0
+
+#define SCRATCH_REG2_SCRATCH_REG2_MASK 0xffffffff
+
+#define SCRATCH_REG2_MASK \
+ (SCRATCH_REG2_SCRATCH_REG2_MASK)
+
+#define SCRATCH_REG2(scratch_reg2) \
+ ((scratch_reg2 << SCRATCH_REG2_SCRATCH_REG2_SHIFT))
+
+#define SCRATCH_REG2_GET_SCRATCH_REG2(scratch_reg2) \
+ ((scratch_reg2 & SCRATCH_REG2_SCRATCH_REG2_MASK) >> SCRATCH_REG2_SCRATCH_REG2_SHIFT)
+
+#define SCRATCH_REG2_SET_SCRATCH_REG2(scratch_reg2_reg, scratch_reg2) \
+ scratch_reg2_reg = (scratch_reg2_reg & ~SCRATCH_REG2_SCRATCH_REG2_MASK) | (scratch_reg2 << SCRATCH_REG2_SCRATCH_REG2_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _scratch_reg2_t {
+ unsigned int scratch_reg2 : SCRATCH_REG2_SCRATCH_REG2_SIZE;
+ } scratch_reg2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _scratch_reg2_t {
+ unsigned int scratch_reg2 : SCRATCH_REG2_SCRATCH_REG2_SIZE;
+ } scratch_reg2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ scratch_reg2_t f;
+} scratch_reg2_u;
+
+
+/*
+ * SCRATCH_REG3 struct
+ */
+
+#define SCRATCH_REG3_SCRATCH_REG3_SIZE 32
+
+#define SCRATCH_REG3_SCRATCH_REG3_SHIFT 0
+
+#define SCRATCH_REG3_SCRATCH_REG3_MASK 0xffffffff
+
+#define SCRATCH_REG3_MASK \
+ (SCRATCH_REG3_SCRATCH_REG3_MASK)
+
+#define SCRATCH_REG3(scratch_reg3) \
+ ((scratch_reg3 << SCRATCH_REG3_SCRATCH_REG3_SHIFT))
+
+#define SCRATCH_REG3_GET_SCRATCH_REG3(scratch_reg3) \
+ ((scratch_reg3 & SCRATCH_REG3_SCRATCH_REG3_MASK) >> SCRATCH_REG3_SCRATCH_REG3_SHIFT)
+
+#define SCRATCH_REG3_SET_SCRATCH_REG3(scratch_reg3_reg, scratch_reg3) \
+ scratch_reg3_reg = (scratch_reg3_reg & ~SCRATCH_REG3_SCRATCH_REG3_MASK) | (scratch_reg3 << SCRATCH_REG3_SCRATCH_REG3_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _scratch_reg3_t {
+ unsigned int scratch_reg3 : SCRATCH_REG3_SCRATCH_REG3_SIZE;
+ } scratch_reg3_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _scratch_reg3_t {
+ unsigned int scratch_reg3 : SCRATCH_REG3_SCRATCH_REG3_SIZE;
+ } scratch_reg3_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ scratch_reg3_t f;
+} scratch_reg3_u;
+
+
+/*
+ * SCRATCH_REG4 struct
+ */
+
+#define SCRATCH_REG4_SCRATCH_REG4_SIZE 32
+
+#define SCRATCH_REG4_SCRATCH_REG4_SHIFT 0
+
+#define SCRATCH_REG4_SCRATCH_REG4_MASK 0xffffffff
+
+#define SCRATCH_REG4_MASK \
+ (SCRATCH_REG4_SCRATCH_REG4_MASK)
+
+#define SCRATCH_REG4(scratch_reg4) \
+ ((scratch_reg4 << SCRATCH_REG4_SCRATCH_REG4_SHIFT))
+
+#define SCRATCH_REG4_GET_SCRATCH_REG4(scratch_reg4) \
+ ((scratch_reg4 & SCRATCH_REG4_SCRATCH_REG4_MASK) >> SCRATCH_REG4_SCRATCH_REG4_SHIFT)
+
+#define SCRATCH_REG4_SET_SCRATCH_REG4(scratch_reg4_reg, scratch_reg4) \
+ scratch_reg4_reg = (scratch_reg4_reg & ~SCRATCH_REG4_SCRATCH_REG4_MASK) | (scratch_reg4 << SCRATCH_REG4_SCRATCH_REG4_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _scratch_reg4_t {
+ unsigned int scratch_reg4 : SCRATCH_REG4_SCRATCH_REG4_SIZE;
+ } scratch_reg4_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _scratch_reg4_t {
+ unsigned int scratch_reg4 : SCRATCH_REG4_SCRATCH_REG4_SIZE;
+ } scratch_reg4_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ scratch_reg4_t f;
+} scratch_reg4_u;
+
+
+/*
+ * SCRATCH_REG5 struct
+ */
+
+#define SCRATCH_REG5_SCRATCH_REG5_SIZE 32
+
+#define SCRATCH_REG5_SCRATCH_REG5_SHIFT 0
+
+#define SCRATCH_REG5_SCRATCH_REG5_MASK 0xffffffff
+
+#define SCRATCH_REG5_MASK \
+ (SCRATCH_REG5_SCRATCH_REG5_MASK)
+
+#define SCRATCH_REG5(scratch_reg5) \
+ ((scratch_reg5 << SCRATCH_REG5_SCRATCH_REG5_SHIFT))
+
+#define SCRATCH_REG5_GET_SCRATCH_REG5(scratch_reg5) \
+ ((scratch_reg5 & SCRATCH_REG5_SCRATCH_REG5_MASK) >> SCRATCH_REG5_SCRATCH_REG5_SHIFT)
+
+#define SCRATCH_REG5_SET_SCRATCH_REG5(scratch_reg5_reg, scratch_reg5) \
+ scratch_reg5_reg = (scratch_reg5_reg & ~SCRATCH_REG5_SCRATCH_REG5_MASK) | (scratch_reg5 << SCRATCH_REG5_SCRATCH_REG5_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _scratch_reg5_t {
+ unsigned int scratch_reg5 : SCRATCH_REG5_SCRATCH_REG5_SIZE;
+ } scratch_reg5_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _scratch_reg5_t {
+ unsigned int scratch_reg5 : SCRATCH_REG5_SCRATCH_REG5_SIZE;
+ } scratch_reg5_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ scratch_reg5_t f;
+} scratch_reg5_u;
+
+
+/*
+ * SCRATCH_REG6 struct
+ */
+
+#define SCRATCH_REG6_SCRATCH_REG6_SIZE 32
+
+#define SCRATCH_REG6_SCRATCH_REG6_SHIFT 0
+
+#define SCRATCH_REG6_SCRATCH_REG6_MASK 0xffffffff
+
+#define SCRATCH_REG6_MASK \
+ (SCRATCH_REG6_SCRATCH_REG6_MASK)
+
+#define SCRATCH_REG6(scratch_reg6) \
+ ((scratch_reg6 << SCRATCH_REG6_SCRATCH_REG6_SHIFT))
+
+#define SCRATCH_REG6_GET_SCRATCH_REG6(scratch_reg6) \
+ ((scratch_reg6 & SCRATCH_REG6_SCRATCH_REG6_MASK) >> SCRATCH_REG6_SCRATCH_REG6_SHIFT)
+
+#define SCRATCH_REG6_SET_SCRATCH_REG6(scratch_reg6_reg, scratch_reg6) \
+ scratch_reg6_reg = (scratch_reg6_reg & ~SCRATCH_REG6_SCRATCH_REG6_MASK) | (scratch_reg6 << SCRATCH_REG6_SCRATCH_REG6_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _scratch_reg6_t {
+ unsigned int scratch_reg6 : SCRATCH_REG6_SCRATCH_REG6_SIZE;
+ } scratch_reg6_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _scratch_reg6_t {
+ unsigned int scratch_reg6 : SCRATCH_REG6_SCRATCH_REG6_SIZE;
+ } scratch_reg6_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ scratch_reg6_t f;
+} scratch_reg6_u;
+
+
+/*
+ * SCRATCH_REG7 struct
+ */
+
+#define SCRATCH_REG7_SCRATCH_REG7_SIZE 32
+
+#define SCRATCH_REG7_SCRATCH_REG7_SHIFT 0
+
+#define SCRATCH_REG7_SCRATCH_REG7_MASK 0xffffffff
+
+#define SCRATCH_REG7_MASK \
+ (SCRATCH_REG7_SCRATCH_REG7_MASK)
+
+#define SCRATCH_REG7(scratch_reg7) \
+ ((scratch_reg7 << SCRATCH_REG7_SCRATCH_REG7_SHIFT))
+
+#define SCRATCH_REG7_GET_SCRATCH_REG7(scratch_reg7) \
+ ((scratch_reg7 & SCRATCH_REG7_SCRATCH_REG7_MASK) >> SCRATCH_REG7_SCRATCH_REG7_SHIFT)
+
+#define SCRATCH_REG7_SET_SCRATCH_REG7(scratch_reg7_reg, scratch_reg7) \
+ scratch_reg7_reg = (scratch_reg7_reg & ~SCRATCH_REG7_SCRATCH_REG7_MASK) | (scratch_reg7 << SCRATCH_REG7_SCRATCH_REG7_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _scratch_reg7_t {
+ unsigned int scratch_reg7 : SCRATCH_REG7_SCRATCH_REG7_SIZE;
+ } scratch_reg7_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _scratch_reg7_t {
+ unsigned int scratch_reg7 : SCRATCH_REG7_SCRATCH_REG7_SIZE;
+ } scratch_reg7_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ scratch_reg7_t f;
+} scratch_reg7_u;
+
+
+/*
+ * SCRATCH_UMSK struct
+ */
+
+#define SCRATCH_UMSK_SCRATCH_UMSK_SIZE 8
+#define SCRATCH_UMSK_SCRATCH_SWAP_SIZE 2
+
+#define SCRATCH_UMSK_SCRATCH_UMSK_SHIFT 0
+#define SCRATCH_UMSK_SCRATCH_SWAP_SHIFT 16
+
+#define SCRATCH_UMSK_SCRATCH_UMSK_MASK 0x000000ff
+#define SCRATCH_UMSK_SCRATCH_SWAP_MASK 0x00030000
+
+#define SCRATCH_UMSK_MASK \
+ (SCRATCH_UMSK_SCRATCH_UMSK_MASK | \
+ SCRATCH_UMSK_SCRATCH_SWAP_MASK)
+
+#define SCRATCH_UMSK(scratch_umsk, scratch_swap) \
+ ((scratch_umsk << SCRATCH_UMSK_SCRATCH_UMSK_SHIFT) | \
+ (scratch_swap << SCRATCH_UMSK_SCRATCH_SWAP_SHIFT))
+
+#define SCRATCH_UMSK_GET_SCRATCH_UMSK(scratch_umsk) \
+ ((scratch_umsk & SCRATCH_UMSK_SCRATCH_UMSK_MASK) >> SCRATCH_UMSK_SCRATCH_UMSK_SHIFT)
+#define SCRATCH_UMSK_GET_SCRATCH_SWAP(scratch_umsk) \
+ ((scratch_umsk & SCRATCH_UMSK_SCRATCH_SWAP_MASK) >> SCRATCH_UMSK_SCRATCH_SWAP_SHIFT)
+
+#define SCRATCH_UMSK_SET_SCRATCH_UMSK(scratch_umsk_reg, scratch_umsk) \
+ scratch_umsk_reg = (scratch_umsk_reg & ~SCRATCH_UMSK_SCRATCH_UMSK_MASK) | (scratch_umsk << SCRATCH_UMSK_SCRATCH_UMSK_SHIFT)
+#define SCRATCH_UMSK_SET_SCRATCH_SWAP(scratch_umsk_reg, scratch_swap) \
+ scratch_umsk_reg = (scratch_umsk_reg & ~SCRATCH_UMSK_SCRATCH_SWAP_MASK) | (scratch_swap << SCRATCH_UMSK_SCRATCH_SWAP_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _scratch_umsk_t {
+ unsigned int scratch_umsk : SCRATCH_UMSK_SCRATCH_UMSK_SIZE;
+ unsigned int : 8;
+ unsigned int scratch_swap : SCRATCH_UMSK_SCRATCH_SWAP_SIZE;
+ unsigned int : 14;
+ } scratch_umsk_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _scratch_umsk_t {
+ unsigned int : 14;
+ unsigned int scratch_swap : SCRATCH_UMSK_SCRATCH_SWAP_SIZE;
+ unsigned int : 8;
+ unsigned int scratch_umsk : SCRATCH_UMSK_SCRATCH_UMSK_SIZE;
+ } scratch_umsk_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ scratch_umsk_t f;
+} scratch_umsk_u;
+
+
+/*
+ * SCRATCH_ADDR struct
+ */
+
+#define SCRATCH_ADDR_SCRATCH_ADDR_SIZE 27
+
+#define SCRATCH_ADDR_SCRATCH_ADDR_SHIFT 5
+
+#define SCRATCH_ADDR_SCRATCH_ADDR_MASK 0xffffffe0
+
+#define SCRATCH_ADDR_MASK \
+ (SCRATCH_ADDR_SCRATCH_ADDR_MASK)
+
+#define SCRATCH_ADDR(scratch_addr) \
+ ((scratch_addr << SCRATCH_ADDR_SCRATCH_ADDR_SHIFT))
+
+#define SCRATCH_ADDR_GET_SCRATCH_ADDR(scratch_addr) \
+ ((scratch_addr & SCRATCH_ADDR_SCRATCH_ADDR_MASK) >> SCRATCH_ADDR_SCRATCH_ADDR_SHIFT)
+
+#define SCRATCH_ADDR_SET_SCRATCH_ADDR(scratch_addr_reg, scratch_addr) \
+ scratch_addr_reg = (scratch_addr_reg & ~SCRATCH_ADDR_SCRATCH_ADDR_MASK) | (scratch_addr << SCRATCH_ADDR_SCRATCH_ADDR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _scratch_addr_t {
+ unsigned int : 5;
+ unsigned int scratch_addr : SCRATCH_ADDR_SCRATCH_ADDR_SIZE;
+ } scratch_addr_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _scratch_addr_t {
+ unsigned int scratch_addr : SCRATCH_ADDR_SCRATCH_ADDR_SIZE;
+ unsigned int : 5;
+ } scratch_addr_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ scratch_addr_t f;
+} scratch_addr_u;
+
+
+/*
+ * CP_ME_VS_EVENT_SRC struct
+ */
+
+#define CP_ME_VS_EVENT_SRC_VS_DONE_SWM_SIZE 1
+#define CP_ME_VS_EVENT_SRC_VS_DONE_CNTR_SIZE 1
+
+#define CP_ME_VS_EVENT_SRC_VS_DONE_SWM_SHIFT 0
+#define CP_ME_VS_EVENT_SRC_VS_DONE_CNTR_SHIFT 1
+
+#define CP_ME_VS_EVENT_SRC_VS_DONE_SWM_MASK 0x00000001
+#define CP_ME_VS_EVENT_SRC_VS_DONE_CNTR_MASK 0x00000002
+
+#define CP_ME_VS_EVENT_SRC_MASK \
+ (CP_ME_VS_EVENT_SRC_VS_DONE_SWM_MASK | \
+ CP_ME_VS_EVENT_SRC_VS_DONE_CNTR_MASK)
+
+#define CP_ME_VS_EVENT_SRC(vs_done_swm, vs_done_cntr) \
+ ((vs_done_swm << CP_ME_VS_EVENT_SRC_VS_DONE_SWM_SHIFT) | \
+ (vs_done_cntr << CP_ME_VS_EVENT_SRC_VS_DONE_CNTR_SHIFT))
+
+#define CP_ME_VS_EVENT_SRC_GET_VS_DONE_SWM(cp_me_vs_event_src) \
+ ((cp_me_vs_event_src & CP_ME_VS_EVENT_SRC_VS_DONE_SWM_MASK) >> CP_ME_VS_EVENT_SRC_VS_DONE_SWM_SHIFT)
+#define CP_ME_VS_EVENT_SRC_GET_VS_DONE_CNTR(cp_me_vs_event_src) \
+ ((cp_me_vs_event_src & CP_ME_VS_EVENT_SRC_VS_DONE_CNTR_MASK) >> CP_ME_VS_EVENT_SRC_VS_DONE_CNTR_SHIFT)
+
+#define CP_ME_VS_EVENT_SRC_SET_VS_DONE_SWM(cp_me_vs_event_src_reg, vs_done_swm) \
+ cp_me_vs_event_src_reg = (cp_me_vs_event_src_reg & ~CP_ME_VS_EVENT_SRC_VS_DONE_SWM_MASK) | (vs_done_swm << CP_ME_VS_EVENT_SRC_VS_DONE_SWM_SHIFT)
+#define CP_ME_VS_EVENT_SRC_SET_VS_DONE_CNTR(cp_me_vs_event_src_reg, vs_done_cntr) \
+ cp_me_vs_event_src_reg = (cp_me_vs_event_src_reg & ~CP_ME_VS_EVENT_SRC_VS_DONE_CNTR_MASK) | (vs_done_cntr << CP_ME_VS_EVENT_SRC_VS_DONE_CNTR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_vs_event_src_t {
+ unsigned int vs_done_swm : CP_ME_VS_EVENT_SRC_VS_DONE_SWM_SIZE;
+ unsigned int vs_done_cntr : CP_ME_VS_EVENT_SRC_VS_DONE_CNTR_SIZE;
+ unsigned int : 30;
+ } cp_me_vs_event_src_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_vs_event_src_t {
+ unsigned int : 30;
+ unsigned int vs_done_cntr : CP_ME_VS_EVENT_SRC_VS_DONE_CNTR_SIZE;
+ unsigned int vs_done_swm : CP_ME_VS_EVENT_SRC_VS_DONE_SWM_SIZE;
+ } cp_me_vs_event_src_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_vs_event_src_t f;
+} cp_me_vs_event_src_u;
+
+
+/*
+ * CP_ME_VS_EVENT_ADDR struct
+ */
+
+#define CP_ME_VS_EVENT_ADDR_VS_DONE_SWAP_SIZE 2
+#define CP_ME_VS_EVENT_ADDR_VS_DONE_ADDR_SIZE 30
+
+#define CP_ME_VS_EVENT_ADDR_VS_DONE_SWAP_SHIFT 0
+#define CP_ME_VS_EVENT_ADDR_VS_DONE_ADDR_SHIFT 2
+
+#define CP_ME_VS_EVENT_ADDR_VS_DONE_SWAP_MASK 0x00000003
+#define CP_ME_VS_EVENT_ADDR_VS_DONE_ADDR_MASK 0xfffffffc
+
+#define CP_ME_VS_EVENT_ADDR_MASK \
+ (CP_ME_VS_EVENT_ADDR_VS_DONE_SWAP_MASK | \
+ CP_ME_VS_EVENT_ADDR_VS_DONE_ADDR_MASK)
+
+#define CP_ME_VS_EVENT_ADDR(vs_done_swap, vs_done_addr) \
+ ((vs_done_swap << CP_ME_VS_EVENT_ADDR_VS_DONE_SWAP_SHIFT) | \
+ (vs_done_addr << CP_ME_VS_EVENT_ADDR_VS_DONE_ADDR_SHIFT))
+
+#define CP_ME_VS_EVENT_ADDR_GET_VS_DONE_SWAP(cp_me_vs_event_addr) \
+ ((cp_me_vs_event_addr & CP_ME_VS_EVENT_ADDR_VS_DONE_SWAP_MASK) >> CP_ME_VS_EVENT_ADDR_VS_DONE_SWAP_SHIFT)
+#define CP_ME_VS_EVENT_ADDR_GET_VS_DONE_ADDR(cp_me_vs_event_addr) \
+ ((cp_me_vs_event_addr & CP_ME_VS_EVENT_ADDR_VS_DONE_ADDR_MASK) >> CP_ME_VS_EVENT_ADDR_VS_DONE_ADDR_SHIFT)
+
+#define CP_ME_VS_EVENT_ADDR_SET_VS_DONE_SWAP(cp_me_vs_event_addr_reg, vs_done_swap) \
+ cp_me_vs_event_addr_reg = (cp_me_vs_event_addr_reg & ~CP_ME_VS_EVENT_ADDR_VS_DONE_SWAP_MASK) | (vs_done_swap << CP_ME_VS_EVENT_ADDR_VS_DONE_SWAP_SHIFT)
+#define CP_ME_VS_EVENT_ADDR_SET_VS_DONE_ADDR(cp_me_vs_event_addr_reg, vs_done_addr) \
+ cp_me_vs_event_addr_reg = (cp_me_vs_event_addr_reg & ~CP_ME_VS_EVENT_ADDR_VS_DONE_ADDR_MASK) | (vs_done_addr << CP_ME_VS_EVENT_ADDR_VS_DONE_ADDR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_vs_event_addr_t {
+ unsigned int vs_done_swap : CP_ME_VS_EVENT_ADDR_VS_DONE_SWAP_SIZE;
+ unsigned int vs_done_addr : CP_ME_VS_EVENT_ADDR_VS_DONE_ADDR_SIZE;
+ } cp_me_vs_event_addr_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_vs_event_addr_t {
+ unsigned int vs_done_addr : CP_ME_VS_EVENT_ADDR_VS_DONE_ADDR_SIZE;
+ unsigned int vs_done_swap : CP_ME_VS_EVENT_ADDR_VS_DONE_SWAP_SIZE;
+ } cp_me_vs_event_addr_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_vs_event_addr_t f;
+} cp_me_vs_event_addr_u;
+
+
+/*
+ * CP_ME_VS_EVENT_DATA struct
+ */
+
+#define CP_ME_VS_EVENT_DATA_VS_DONE_DATA_SIZE 32
+
+#define CP_ME_VS_EVENT_DATA_VS_DONE_DATA_SHIFT 0
+
+#define CP_ME_VS_EVENT_DATA_VS_DONE_DATA_MASK 0xffffffff
+
+#define CP_ME_VS_EVENT_DATA_MASK \
+ (CP_ME_VS_EVENT_DATA_VS_DONE_DATA_MASK)
+
+#define CP_ME_VS_EVENT_DATA(vs_done_data) \
+ ((vs_done_data << CP_ME_VS_EVENT_DATA_VS_DONE_DATA_SHIFT))
+
+#define CP_ME_VS_EVENT_DATA_GET_VS_DONE_DATA(cp_me_vs_event_data) \
+ ((cp_me_vs_event_data & CP_ME_VS_EVENT_DATA_VS_DONE_DATA_MASK) >> CP_ME_VS_EVENT_DATA_VS_DONE_DATA_SHIFT)
+
+#define CP_ME_VS_EVENT_DATA_SET_VS_DONE_DATA(cp_me_vs_event_data_reg, vs_done_data) \
+ cp_me_vs_event_data_reg = (cp_me_vs_event_data_reg & ~CP_ME_VS_EVENT_DATA_VS_DONE_DATA_MASK) | (vs_done_data << CP_ME_VS_EVENT_DATA_VS_DONE_DATA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_vs_event_data_t {
+ unsigned int vs_done_data : CP_ME_VS_EVENT_DATA_VS_DONE_DATA_SIZE;
+ } cp_me_vs_event_data_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_vs_event_data_t {
+ unsigned int vs_done_data : CP_ME_VS_EVENT_DATA_VS_DONE_DATA_SIZE;
+ } cp_me_vs_event_data_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_vs_event_data_t f;
+} cp_me_vs_event_data_u;
+
+
+/*
+ * CP_ME_VS_EVENT_ADDR_SWM struct
+ */
+
+#define CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_SWAP_SWM_SIZE 2
+#define CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_ADDR_SWM_SIZE 30
+
+#define CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_SWAP_SWM_SHIFT 0
+#define CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_ADDR_SWM_SHIFT 2
+
+#define CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_SWAP_SWM_MASK 0x00000003
+#define CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_ADDR_SWM_MASK 0xfffffffc
+
+#define CP_ME_VS_EVENT_ADDR_SWM_MASK \
+ (CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_SWAP_SWM_MASK | \
+ CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_ADDR_SWM_MASK)
+
+#define CP_ME_VS_EVENT_ADDR_SWM(vs_done_swap_swm, vs_done_addr_swm) \
+ ((vs_done_swap_swm << CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_SWAP_SWM_SHIFT) | \
+ (vs_done_addr_swm << CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_ADDR_SWM_SHIFT))
+
+#define CP_ME_VS_EVENT_ADDR_SWM_GET_VS_DONE_SWAP_SWM(cp_me_vs_event_addr_swm) \
+ ((cp_me_vs_event_addr_swm & CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_SWAP_SWM_MASK) >> CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_SWAP_SWM_SHIFT)
+#define CP_ME_VS_EVENT_ADDR_SWM_GET_VS_DONE_ADDR_SWM(cp_me_vs_event_addr_swm) \
+ ((cp_me_vs_event_addr_swm & CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_ADDR_SWM_MASK) >> CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_ADDR_SWM_SHIFT)
+
+#define CP_ME_VS_EVENT_ADDR_SWM_SET_VS_DONE_SWAP_SWM(cp_me_vs_event_addr_swm_reg, vs_done_swap_swm) \
+ cp_me_vs_event_addr_swm_reg = (cp_me_vs_event_addr_swm_reg & ~CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_SWAP_SWM_MASK) | (vs_done_swap_swm << CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_SWAP_SWM_SHIFT)
+#define CP_ME_VS_EVENT_ADDR_SWM_SET_VS_DONE_ADDR_SWM(cp_me_vs_event_addr_swm_reg, vs_done_addr_swm) \
+ cp_me_vs_event_addr_swm_reg = (cp_me_vs_event_addr_swm_reg & ~CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_ADDR_SWM_MASK) | (vs_done_addr_swm << CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_ADDR_SWM_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_vs_event_addr_swm_t {
+ unsigned int vs_done_swap_swm : CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_SWAP_SWM_SIZE;
+ unsigned int vs_done_addr_swm : CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_ADDR_SWM_SIZE;
+ } cp_me_vs_event_addr_swm_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_vs_event_addr_swm_t {
+ unsigned int vs_done_addr_swm : CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_ADDR_SWM_SIZE;
+ unsigned int vs_done_swap_swm : CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_SWAP_SWM_SIZE;
+ } cp_me_vs_event_addr_swm_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_vs_event_addr_swm_t f;
+} cp_me_vs_event_addr_swm_u;
+
+
+/*
+ * CP_ME_VS_EVENT_DATA_SWM struct
+ */
+
+#define CP_ME_VS_EVENT_DATA_SWM_VS_DONE_DATA_SWM_SIZE 32
+
+#define CP_ME_VS_EVENT_DATA_SWM_VS_DONE_DATA_SWM_SHIFT 0
+
+#define CP_ME_VS_EVENT_DATA_SWM_VS_DONE_DATA_SWM_MASK 0xffffffff
+
+#define CP_ME_VS_EVENT_DATA_SWM_MASK \
+ (CP_ME_VS_EVENT_DATA_SWM_VS_DONE_DATA_SWM_MASK)
+
+#define CP_ME_VS_EVENT_DATA_SWM(vs_done_data_swm) \
+ ((vs_done_data_swm << CP_ME_VS_EVENT_DATA_SWM_VS_DONE_DATA_SWM_SHIFT))
+
+#define CP_ME_VS_EVENT_DATA_SWM_GET_VS_DONE_DATA_SWM(cp_me_vs_event_data_swm) \
+ ((cp_me_vs_event_data_swm & CP_ME_VS_EVENT_DATA_SWM_VS_DONE_DATA_SWM_MASK) >> CP_ME_VS_EVENT_DATA_SWM_VS_DONE_DATA_SWM_SHIFT)
+
+#define CP_ME_VS_EVENT_DATA_SWM_SET_VS_DONE_DATA_SWM(cp_me_vs_event_data_swm_reg, vs_done_data_swm) \
+ cp_me_vs_event_data_swm_reg = (cp_me_vs_event_data_swm_reg & ~CP_ME_VS_EVENT_DATA_SWM_VS_DONE_DATA_SWM_MASK) | (vs_done_data_swm << CP_ME_VS_EVENT_DATA_SWM_VS_DONE_DATA_SWM_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_vs_event_data_swm_t {
+ unsigned int vs_done_data_swm : CP_ME_VS_EVENT_DATA_SWM_VS_DONE_DATA_SWM_SIZE;
+ } cp_me_vs_event_data_swm_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_vs_event_data_swm_t {
+ unsigned int vs_done_data_swm : CP_ME_VS_EVENT_DATA_SWM_VS_DONE_DATA_SWM_SIZE;
+ } cp_me_vs_event_data_swm_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_vs_event_data_swm_t f;
+} cp_me_vs_event_data_swm_u;
+
+
+/*
+ * CP_ME_PS_EVENT_SRC struct
+ */
+
+#define CP_ME_PS_EVENT_SRC_PS_DONE_SWM_SIZE 1
+#define CP_ME_PS_EVENT_SRC_PS_DONE_CNTR_SIZE 1
+
+#define CP_ME_PS_EVENT_SRC_PS_DONE_SWM_SHIFT 0
+#define CP_ME_PS_EVENT_SRC_PS_DONE_CNTR_SHIFT 1
+
+#define CP_ME_PS_EVENT_SRC_PS_DONE_SWM_MASK 0x00000001
+#define CP_ME_PS_EVENT_SRC_PS_DONE_CNTR_MASK 0x00000002
+
+#define CP_ME_PS_EVENT_SRC_MASK \
+ (CP_ME_PS_EVENT_SRC_PS_DONE_SWM_MASK | \
+ CP_ME_PS_EVENT_SRC_PS_DONE_CNTR_MASK)
+
+#define CP_ME_PS_EVENT_SRC(ps_done_swm, ps_done_cntr) \
+ ((ps_done_swm << CP_ME_PS_EVENT_SRC_PS_DONE_SWM_SHIFT) | \
+ (ps_done_cntr << CP_ME_PS_EVENT_SRC_PS_DONE_CNTR_SHIFT))
+
+#define CP_ME_PS_EVENT_SRC_GET_PS_DONE_SWM(cp_me_ps_event_src) \
+ ((cp_me_ps_event_src & CP_ME_PS_EVENT_SRC_PS_DONE_SWM_MASK) >> CP_ME_PS_EVENT_SRC_PS_DONE_SWM_SHIFT)
+#define CP_ME_PS_EVENT_SRC_GET_PS_DONE_CNTR(cp_me_ps_event_src) \
+ ((cp_me_ps_event_src & CP_ME_PS_EVENT_SRC_PS_DONE_CNTR_MASK) >> CP_ME_PS_EVENT_SRC_PS_DONE_CNTR_SHIFT)
+
+#define CP_ME_PS_EVENT_SRC_SET_PS_DONE_SWM(cp_me_ps_event_src_reg, ps_done_swm) \
+ cp_me_ps_event_src_reg = (cp_me_ps_event_src_reg & ~CP_ME_PS_EVENT_SRC_PS_DONE_SWM_MASK) | (ps_done_swm << CP_ME_PS_EVENT_SRC_PS_DONE_SWM_SHIFT)
+#define CP_ME_PS_EVENT_SRC_SET_PS_DONE_CNTR(cp_me_ps_event_src_reg, ps_done_cntr) \
+ cp_me_ps_event_src_reg = (cp_me_ps_event_src_reg & ~CP_ME_PS_EVENT_SRC_PS_DONE_CNTR_MASK) | (ps_done_cntr << CP_ME_PS_EVENT_SRC_PS_DONE_CNTR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_ps_event_src_t {
+ unsigned int ps_done_swm : CP_ME_PS_EVENT_SRC_PS_DONE_SWM_SIZE;
+ unsigned int ps_done_cntr : CP_ME_PS_EVENT_SRC_PS_DONE_CNTR_SIZE;
+ unsigned int : 30;
+ } cp_me_ps_event_src_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_ps_event_src_t {
+ unsigned int : 30;
+ unsigned int ps_done_cntr : CP_ME_PS_EVENT_SRC_PS_DONE_CNTR_SIZE;
+ unsigned int ps_done_swm : CP_ME_PS_EVENT_SRC_PS_DONE_SWM_SIZE;
+ } cp_me_ps_event_src_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_ps_event_src_t f;
+} cp_me_ps_event_src_u;
+
+
+/*
+ * CP_ME_PS_EVENT_ADDR struct
+ */
+
+#define CP_ME_PS_EVENT_ADDR_PS_DONE_SWAP_SIZE 2
+#define CP_ME_PS_EVENT_ADDR_PS_DONE_ADDR_SIZE 30
+
+#define CP_ME_PS_EVENT_ADDR_PS_DONE_SWAP_SHIFT 0
+#define CP_ME_PS_EVENT_ADDR_PS_DONE_ADDR_SHIFT 2
+
+#define CP_ME_PS_EVENT_ADDR_PS_DONE_SWAP_MASK 0x00000003
+#define CP_ME_PS_EVENT_ADDR_PS_DONE_ADDR_MASK 0xfffffffc
+
+#define CP_ME_PS_EVENT_ADDR_MASK \
+ (CP_ME_PS_EVENT_ADDR_PS_DONE_SWAP_MASK | \
+ CP_ME_PS_EVENT_ADDR_PS_DONE_ADDR_MASK)
+
+#define CP_ME_PS_EVENT_ADDR(ps_done_swap, ps_done_addr) \
+ ((ps_done_swap << CP_ME_PS_EVENT_ADDR_PS_DONE_SWAP_SHIFT) | \
+ (ps_done_addr << CP_ME_PS_EVENT_ADDR_PS_DONE_ADDR_SHIFT))
+
+#define CP_ME_PS_EVENT_ADDR_GET_PS_DONE_SWAP(cp_me_ps_event_addr) \
+ ((cp_me_ps_event_addr & CP_ME_PS_EVENT_ADDR_PS_DONE_SWAP_MASK) >> CP_ME_PS_EVENT_ADDR_PS_DONE_SWAP_SHIFT)
+#define CP_ME_PS_EVENT_ADDR_GET_PS_DONE_ADDR(cp_me_ps_event_addr) \
+ ((cp_me_ps_event_addr & CP_ME_PS_EVENT_ADDR_PS_DONE_ADDR_MASK) >> CP_ME_PS_EVENT_ADDR_PS_DONE_ADDR_SHIFT)
+
+#define CP_ME_PS_EVENT_ADDR_SET_PS_DONE_SWAP(cp_me_ps_event_addr_reg, ps_done_swap) \
+ cp_me_ps_event_addr_reg = (cp_me_ps_event_addr_reg & ~CP_ME_PS_EVENT_ADDR_PS_DONE_SWAP_MASK) | (ps_done_swap << CP_ME_PS_EVENT_ADDR_PS_DONE_SWAP_SHIFT)
+#define CP_ME_PS_EVENT_ADDR_SET_PS_DONE_ADDR(cp_me_ps_event_addr_reg, ps_done_addr) \
+ cp_me_ps_event_addr_reg = (cp_me_ps_event_addr_reg & ~CP_ME_PS_EVENT_ADDR_PS_DONE_ADDR_MASK) | (ps_done_addr << CP_ME_PS_EVENT_ADDR_PS_DONE_ADDR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_ps_event_addr_t {
+ unsigned int ps_done_swap : CP_ME_PS_EVENT_ADDR_PS_DONE_SWAP_SIZE;
+ unsigned int ps_done_addr : CP_ME_PS_EVENT_ADDR_PS_DONE_ADDR_SIZE;
+ } cp_me_ps_event_addr_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_ps_event_addr_t {
+ unsigned int ps_done_addr : CP_ME_PS_EVENT_ADDR_PS_DONE_ADDR_SIZE;
+ unsigned int ps_done_swap : CP_ME_PS_EVENT_ADDR_PS_DONE_SWAP_SIZE;
+ } cp_me_ps_event_addr_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_ps_event_addr_t f;
+} cp_me_ps_event_addr_u;
+
+
+/*
+ * CP_ME_PS_EVENT_DATA struct
+ */
+
+#define CP_ME_PS_EVENT_DATA_PS_DONE_DATA_SIZE 32
+
+#define CP_ME_PS_EVENT_DATA_PS_DONE_DATA_SHIFT 0
+
+#define CP_ME_PS_EVENT_DATA_PS_DONE_DATA_MASK 0xffffffff
+
+#define CP_ME_PS_EVENT_DATA_MASK \
+ (CP_ME_PS_EVENT_DATA_PS_DONE_DATA_MASK)
+
+#define CP_ME_PS_EVENT_DATA(ps_done_data) \
+ ((ps_done_data << CP_ME_PS_EVENT_DATA_PS_DONE_DATA_SHIFT))
+
+#define CP_ME_PS_EVENT_DATA_GET_PS_DONE_DATA(cp_me_ps_event_data) \
+ ((cp_me_ps_event_data & CP_ME_PS_EVENT_DATA_PS_DONE_DATA_MASK) >> CP_ME_PS_EVENT_DATA_PS_DONE_DATA_SHIFT)
+
+#define CP_ME_PS_EVENT_DATA_SET_PS_DONE_DATA(cp_me_ps_event_data_reg, ps_done_data) \
+ cp_me_ps_event_data_reg = (cp_me_ps_event_data_reg & ~CP_ME_PS_EVENT_DATA_PS_DONE_DATA_MASK) | (ps_done_data << CP_ME_PS_EVENT_DATA_PS_DONE_DATA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_ps_event_data_t {
+ unsigned int ps_done_data : CP_ME_PS_EVENT_DATA_PS_DONE_DATA_SIZE;
+ } cp_me_ps_event_data_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_ps_event_data_t {
+ unsigned int ps_done_data : CP_ME_PS_EVENT_DATA_PS_DONE_DATA_SIZE;
+ } cp_me_ps_event_data_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_ps_event_data_t f;
+} cp_me_ps_event_data_u;
+
+
+/*
+ * CP_ME_PS_EVENT_ADDR_SWM struct
+ */
+
+#define CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_SWAP_SWM_SIZE 2
+#define CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_ADDR_SWM_SIZE 30
+
+#define CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_SWAP_SWM_SHIFT 0
+#define CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_ADDR_SWM_SHIFT 2
+
+#define CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_SWAP_SWM_MASK 0x00000003
+#define CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_ADDR_SWM_MASK 0xfffffffc
+
+#define CP_ME_PS_EVENT_ADDR_SWM_MASK \
+ (CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_SWAP_SWM_MASK | \
+ CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_ADDR_SWM_MASK)
+
+#define CP_ME_PS_EVENT_ADDR_SWM(ps_done_swap_swm, ps_done_addr_swm) \
+ ((ps_done_swap_swm << CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_SWAP_SWM_SHIFT) | \
+ (ps_done_addr_swm << CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_ADDR_SWM_SHIFT))
+
+#define CP_ME_PS_EVENT_ADDR_SWM_GET_PS_DONE_SWAP_SWM(cp_me_ps_event_addr_swm) \
+ ((cp_me_ps_event_addr_swm & CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_SWAP_SWM_MASK) >> CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_SWAP_SWM_SHIFT)
+#define CP_ME_PS_EVENT_ADDR_SWM_GET_PS_DONE_ADDR_SWM(cp_me_ps_event_addr_swm) \
+ ((cp_me_ps_event_addr_swm & CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_ADDR_SWM_MASK) >> CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_ADDR_SWM_SHIFT)
+
+#define CP_ME_PS_EVENT_ADDR_SWM_SET_PS_DONE_SWAP_SWM(cp_me_ps_event_addr_swm_reg, ps_done_swap_swm) \
+ cp_me_ps_event_addr_swm_reg = (cp_me_ps_event_addr_swm_reg & ~CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_SWAP_SWM_MASK) | (ps_done_swap_swm << CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_SWAP_SWM_SHIFT)
+#define CP_ME_PS_EVENT_ADDR_SWM_SET_PS_DONE_ADDR_SWM(cp_me_ps_event_addr_swm_reg, ps_done_addr_swm) \
+ cp_me_ps_event_addr_swm_reg = (cp_me_ps_event_addr_swm_reg & ~CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_ADDR_SWM_MASK) | (ps_done_addr_swm << CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_ADDR_SWM_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_ps_event_addr_swm_t {
+ unsigned int ps_done_swap_swm : CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_SWAP_SWM_SIZE;
+ unsigned int ps_done_addr_swm : CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_ADDR_SWM_SIZE;
+ } cp_me_ps_event_addr_swm_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_ps_event_addr_swm_t {
+ unsigned int ps_done_addr_swm : CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_ADDR_SWM_SIZE;
+ unsigned int ps_done_swap_swm : CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_SWAP_SWM_SIZE;
+ } cp_me_ps_event_addr_swm_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_ps_event_addr_swm_t f;
+} cp_me_ps_event_addr_swm_u;
+
+
+/*
+ * CP_ME_PS_EVENT_DATA_SWM struct
+ */
+
+#define CP_ME_PS_EVENT_DATA_SWM_PS_DONE_DATA_SWM_SIZE 32
+
+#define CP_ME_PS_EVENT_DATA_SWM_PS_DONE_DATA_SWM_SHIFT 0
+
+#define CP_ME_PS_EVENT_DATA_SWM_PS_DONE_DATA_SWM_MASK 0xffffffff
+
+#define CP_ME_PS_EVENT_DATA_SWM_MASK \
+ (CP_ME_PS_EVENT_DATA_SWM_PS_DONE_DATA_SWM_MASK)
+
+#define CP_ME_PS_EVENT_DATA_SWM(ps_done_data_swm) \
+ ((ps_done_data_swm << CP_ME_PS_EVENT_DATA_SWM_PS_DONE_DATA_SWM_SHIFT))
+
+#define CP_ME_PS_EVENT_DATA_SWM_GET_PS_DONE_DATA_SWM(cp_me_ps_event_data_swm) \
+ ((cp_me_ps_event_data_swm & CP_ME_PS_EVENT_DATA_SWM_PS_DONE_DATA_SWM_MASK) >> CP_ME_PS_EVENT_DATA_SWM_PS_DONE_DATA_SWM_SHIFT)
+
+#define CP_ME_PS_EVENT_DATA_SWM_SET_PS_DONE_DATA_SWM(cp_me_ps_event_data_swm_reg, ps_done_data_swm) \
+ cp_me_ps_event_data_swm_reg = (cp_me_ps_event_data_swm_reg & ~CP_ME_PS_EVENT_DATA_SWM_PS_DONE_DATA_SWM_MASK) | (ps_done_data_swm << CP_ME_PS_EVENT_DATA_SWM_PS_DONE_DATA_SWM_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_ps_event_data_swm_t {
+ unsigned int ps_done_data_swm : CP_ME_PS_EVENT_DATA_SWM_PS_DONE_DATA_SWM_SIZE;
+ } cp_me_ps_event_data_swm_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_ps_event_data_swm_t {
+ unsigned int ps_done_data_swm : CP_ME_PS_EVENT_DATA_SWM_PS_DONE_DATA_SWM_SIZE;
+ } cp_me_ps_event_data_swm_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_ps_event_data_swm_t f;
+} cp_me_ps_event_data_swm_u;
+
+
+/*
+ * CP_ME_CF_EVENT_SRC struct
+ */
+
+#define CP_ME_CF_EVENT_SRC_CF_DONE_SRC_SIZE 1
+
+#define CP_ME_CF_EVENT_SRC_CF_DONE_SRC_SHIFT 0
+
+#define CP_ME_CF_EVENT_SRC_CF_DONE_SRC_MASK 0x00000001
+
+#define CP_ME_CF_EVENT_SRC_MASK \
+ (CP_ME_CF_EVENT_SRC_CF_DONE_SRC_MASK)
+
+#define CP_ME_CF_EVENT_SRC(cf_done_src) \
+ ((cf_done_src << CP_ME_CF_EVENT_SRC_CF_DONE_SRC_SHIFT))
+
+#define CP_ME_CF_EVENT_SRC_GET_CF_DONE_SRC(cp_me_cf_event_src) \
+ ((cp_me_cf_event_src & CP_ME_CF_EVENT_SRC_CF_DONE_SRC_MASK) >> CP_ME_CF_EVENT_SRC_CF_DONE_SRC_SHIFT)
+
+#define CP_ME_CF_EVENT_SRC_SET_CF_DONE_SRC(cp_me_cf_event_src_reg, cf_done_src) \
+ cp_me_cf_event_src_reg = (cp_me_cf_event_src_reg & ~CP_ME_CF_EVENT_SRC_CF_DONE_SRC_MASK) | (cf_done_src << CP_ME_CF_EVENT_SRC_CF_DONE_SRC_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_cf_event_src_t {
+ unsigned int cf_done_src : CP_ME_CF_EVENT_SRC_CF_DONE_SRC_SIZE;
+ unsigned int : 31;
+ } cp_me_cf_event_src_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_cf_event_src_t {
+ unsigned int : 31;
+ unsigned int cf_done_src : CP_ME_CF_EVENT_SRC_CF_DONE_SRC_SIZE;
+ } cp_me_cf_event_src_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_cf_event_src_t f;
+} cp_me_cf_event_src_u;
+
+
+/*
+ * CP_ME_CF_EVENT_ADDR struct
+ */
+
+#define CP_ME_CF_EVENT_ADDR_CF_DONE_SWAP_SIZE 2
+#define CP_ME_CF_EVENT_ADDR_CF_DONE_ADDR_SIZE 30
+
+#define CP_ME_CF_EVENT_ADDR_CF_DONE_SWAP_SHIFT 0
+#define CP_ME_CF_EVENT_ADDR_CF_DONE_ADDR_SHIFT 2
+
+#define CP_ME_CF_EVENT_ADDR_CF_DONE_SWAP_MASK 0x00000003
+#define CP_ME_CF_EVENT_ADDR_CF_DONE_ADDR_MASK 0xfffffffc
+
+#define CP_ME_CF_EVENT_ADDR_MASK \
+ (CP_ME_CF_EVENT_ADDR_CF_DONE_SWAP_MASK | \
+ CP_ME_CF_EVENT_ADDR_CF_DONE_ADDR_MASK)
+
+#define CP_ME_CF_EVENT_ADDR(cf_done_swap, cf_done_addr) \
+ ((cf_done_swap << CP_ME_CF_EVENT_ADDR_CF_DONE_SWAP_SHIFT) | \
+ (cf_done_addr << CP_ME_CF_EVENT_ADDR_CF_DONE_ADDR_SHIFT))
+
+#define CP_ME_CF_EVENT_ADDR_GET_CF_DONE_SWAP(cp_me_cf_event_addr) \
+ ((cp_me_cf_event_addr & CP_ME_CF_EVENT_ADDR_CF_DONE_SWAP_MASK) >> CP_ME_CF_EVENT_ADDR_CF_DONE_SWAP_SHIFT)
+#define CP_ME_CF_EVENT_ADDR_GET_CF_DONE_ADDR(cp_me_cf_event_addr) \
+ ((cp_me_cf_event_addr & CP_ME_CF_EVENT_ADDR_CF_DONE_ADDR_MASK) >> CP_ME_CF_EVENT_ADDR_CF_DONE_ADDR_SHIFT)
+
+#define CP_ME_CF_EVENT_ADDR_SET_CF_DONE_SWAP(cp_me_cf_event_addr_reg, cf_done_swap) \
+ cp_me_cf_event_addr_reg = (cp_me_cf_event_addr_reg & ~CP_ME_CF_EVENT_ADDR_CF_DONE_SWAP_MASK) | (cf_done_swap << CP_ME_CF_EVENT_ADDR_CF_DONE_SWAP_SHIFT)
+#define CP_ME_CF_EVENT_ADDR_SET_CF_DONE_ADDR(cp_me_cf_event_addr_reg, cf_done_addr) \
+ cp_me_cf_event_addr_reg = (cp_me_cf_event_addr_reg & ~CP_ME_CF_EVENT_ADDR_CF_DONE_ADDR_MASK) | (cf_done_addr << CP_ME_CF_EVENT_ADDR_CF_DONE_ADDR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_cf_event_addr_t {
+ unsigned int cf_done_swap : CP_ME_CF_EVENT_ADDR_CF_DONE_SWAP_SIZE;
+ unsigned int cf_done_addr : CP_ME_CF_EVENT_ADDR_CF_DONE_ADDR_SIZE;
+ } cp_me_cf_event_addr_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_cf_event_addr_t {
+ unsigned int cf_done_addr : CP_ME_CF_EVENT_ADDR_CF_DONE_ADDR_SIZE;
+ unsigned int cf_done_swap : CP_ME_CF_EVENT_ADDR_CF_DONE_SWAP_SIZE;
+ } cp_me_cf_event_addr_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_cf_event_addr_t f;
+} cp_me_cf_event_addr_u;
+
+
+/*
+ * CP_ME_CF_EVENT_DATA struct
+ */
+
+#define CP_ME_CF_EVENT_DATA_CF_DONE_DATA_SIZE 32
+
+#define CP_ME_CF_EVENT_DATA_CF_DONE_DATA_SHIFT 0
+
+#define CP_ME_CF_EVENT_DATA_CF_DONE_DATA_MASK 0xffffffff
+
+#define CP_ME_CF_EVENT_DATA_MASK \
+ (CP_ME_CF_EVENT_DATA_CF_DONE_DATA_MASK)
+
+#define CP_ME_CF_EVENT_DATA(cf_done_data) \
+ ((cf_done_data << CP_ME_CF_EVENT_DATA_CF_DONE_DATA_SHIFT))
+
+#define CP_ME_CF_EVENT_DATA_GET_CF_DONE_DATA(cp_me_cf_event_data) \
+ ((cp_me_cf_event_data & CP_ME_CF_EVENT_DATA_CF_DONE_DATA_MASK) >> CP_ME_CF_EVENT_DATA_CF_DONE_DATA_SHIFT)
+
+#define CP_ME_CF_EVENT_DATA_SET_CF_DONE_DATA(cp_me_cf_event_data_reg, cf_done_data) \
+ cp_me_cf_event_data_reg = (cp_me_cf_event_data_reg & ~CP_ME_CF_EVENT_DATA_CF_DONE_DATA_MASK) | (cf_done_data << CP_ME_CF_EVENT_DATA_CF_DONE_DATA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_cf_event_data_t {
+ unsigned int cf_done_data : CP_ME_CF_EVENT_DATA_CF_DONE_DATA_SIZE;
+ } cp_me_cf_event_data_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_cf_event_data_t {
+ unsigned int cf_done_data : CP_ME_CF_EVENT_DATA_CF_DONE_DATA_SIZE;
+ } cp_me_cf_event_data_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_cf_event_data_t f;
+} cp_me_cf_event_data_u;
+
+
+/*
+ * CP_ME_NRT_ADDR struct
+ */
+
+#define CP_ME_NRT_ADDR_NRT_WRITE_SWAP_SIZE 2
+#define CP_ME_NRT_ADDR_NRT_WRITE_ADDR_SIZE 30
+
+#define CP_ME_NRT_ADDR_NRT_WRITE_SWAP_SHIFT 0
+#define CP_ME_NRT_ADDR_NRT_WRITE_ADDR_SHIFT 2
+
+#define CP_ME_NRT_ADDR_NRT_WRITE_SWAP_MASK 0x00000003
+#define CP_ME_NRT_ADDR_NRT_WRITE_ADDR_MASK 0xfffffffc
+
+#define CP_ME_NRT_ADDR_MASK \
+ (CP_ME_NRT_ADDR_NRT_WRITE_SWAP_MASK | \
+ CP_ME_NRT_ADDR_NRT_WRITE_ADDR_MASK)
+
+#define CP_ME_NRT_ADDR(nrt_write_swap, nrt_write_addr) \
+ ((nrt_write_swap << CP_ME_NRT_ADDR_NRT_WRITE_SWAP_SHIFT) | \
+ (nrt_write_addr << CP_ME_NRT_ADDR_NRT_WRITE_ADDR_SHIFT))
+
+#define CP_ME_NRT_ADDR_GET_NRT_WRITE_SWAP(cp_me_nrt_addr) \
+ ((cp_me_nrt_addr & CP_ME_NRT_ADDR_NRT_WRITE_SWAP_MASK) >> CP_ME_NRT_ADDR_NRT_WRITE_SWAP_SHIFT)
+#define CP_ME_NRT_ADDR_GET_NRT_WRITE_ADDR(cp_me_nrt_addr) \
+ ((cp_me_nrt_addr & CP_ME_NRT_ADDR_NRT_WRITE_ADDR_MASK) >> CP_ME_NRT_ADDR_NRT_WRITE_ADDR_SHIFT)
+
+#define CP_ME_NRT_ADDR_SET_NRT_WRITE_SWAP(cp_me_nrt_addr_reg, nrt_write_swap) \
+ cp_me_nrt_addr_reg = (cp_me_nrt_addr_reg & ~CP_ME_NRT_ADDR_NRT_WRITE_SWAP_MASK) | (nrt_write_swap << CP_ME_NRT_ADDR_NRT_WRITE_SWAP_SHIFT)
+#define CP_ME_NRT_ADDR_SET_NRT_WRITE_ADDR(cp_me_nrt_addr_reg, nrt_write_addr) \
+ cp_me_nrt_addr_reg = (cp_me_nrt_addr_reg & ~CP_ME_NRT_ADDR_NRT_WRITE_ADDR_MASK) | (nrt_write_addr << CP_ME_NRT_ADDR_NRT_WRITE_ADDR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_nrt_addr_t {
+ unsigned int nrt_write_swap : CP_ME_NRT_ADDR_NRT_WRITE_SWAP_SIZE;
+ unsigned int nrt_write_addr : CP_ME_NRT_ADDR_NRT_WRITE_ADDR_SIZE;
+ } cp_me_nrt_addr_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_nrt_addr_t {
+ unsigned int nrt_write_addr : CP_ME_NRT_ADDR_NRT_WRITE_ADDR_SIZE;
+ unsigned int nrt_write_swap : CP_ME_NRT_ADDR_NRT_WRITE_SWAP_SIZE;
+ } cp_me_nrt_addr_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_nrt_addr_t f;
+} cp_me_nrt_addr_u;
+
+
+/*
+ * CP_ME_NRT_DATA struct
+ */
+
+#define CP_ME_NRT_DATA_NRT_WRITE_DATA_SIZE 32
+
+#define CP_ME_NRT_DATA_NRT_WRITE_DATA_SHIFT 0
+
+#define CP_ME_NRT_DATA_NRT_WRITE_DATA_MASK 0xffffffff
+
+#define CP_ME_NRT_DATA_MASK \
+ (CP_ME_NRT_DATA_NRT_WRITE_DATA_MASK)
+
+#define CP_ME_NRT_DATA(nrt_write_data) \
+ ((nrt_write_data << CP_ME_NRT_DATA_NRT_WRITE_DATA_SHIFT))
+
+#define CP_ME_NRT_DATA_GET_NRT_WRITE_DATA(cp_me_nrt_data) \
+ ((cp_me_nrt_data & CP_ME_NRT_DATA_NRT_WRITE_DATA_MASK) >> CP_ME_NRT_DATA_NRT_WRITE_DATA_SHIFT)
+
+#define CP_ME_NRT_DATA_SET_NRT_WRITE_DATA(cp_me_nrt_data_reg, nrt_write_data) \
+ cp_me_nrt_data_reg = (cp_me_nrt_data_reg & ~CP_ME_NRT_DATA_NRT_WRITE_DATA_MASK) | (nrt_write_data << CP_ME_NRT_DATA_NRT_WRITE_DATA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_nrt_data_t {
+ unsigned int nrt_write_data : CP_ME_NRT_DATA_NRT_WRITE_DATA_SIZE;
+ } cp_me_nrt_data_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_nrt_data_t {
+ unsigned int nrt_write_data : CP_ME_NRT_DATA_NRT_WRITE_DATA_SIZE;
+ } cp_me_nrt_data_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_nrt_data_t f;
+} cp_me_nrt_data_u;
+
+
+/*
+ * CP_ME_VS_FETCH_DONE_SRC struct
+ */
+
+#define CP_ME_VS_FETCH_DONE_SRC_VS_FETCH_DONE_CNTR_SIZE 1
+
+#define CP_ME_VS_FETCH_DONE_SRC_VS_FETCH_DONE_CNTR_SHIFT 0
+
+#define CP_ME_VS_FETCH_DONE_SRC_VS_FETCH_DONE_CNTR_MASK 0x00000001
+
+#define CP_ME_VS_FETCH_DONE_SRC_MASK \
+ (CP_ME_VS_FETCH_DONE_SRC_VS_FETCH_DONE_CNTR_MASK)
+
+#define CP_ME_VS_FETCH_DONE_SRC(vs_fetch_done_cntr) \
+ ((vs_fetch_done_cntr << CP_ME_VS_FETCH_DONE_SRC_VS_FETCH_DONE_CNTR_SHIFT))
+
+#define CP_ME_VS_FETCH_DONE_SRC_GET_VS_FETCH_DONE_CNTR(cp_me_vs_fetch_done_src) \
+ ((cp_me_vs_fetch_done_src & CP_ME_VS_FETCH_DONE_SRC_VS_FETCH_DONE_CNTR_MASK) >> CP_ME_VS_FETCH_DONE_SRC_VS_FETCH_DONE_CNTR_SHIFT)
+
+#define CP_ME_VS_FETCH_DONE_SRC_SET_VS_FETCH_DONE_CNTR(cp_me_vs_fetch_done_src_reg, vs_fetch_done_cntr) \
+ cp_me_vs_fetch_done_src_reg = (cp_me_vs_fetch_done_src_reg & ~CP_ME_VS_FETCH_DONE_SRC_VS_FETCH_DONE_CNTR_MASK) | (vs_fetch_done_cntr << CP_ME_VS_FETCH_DONE_SRC_VS_FETCH_DONE_CNTR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_vs_fetch_done_src_t {
+ unsigned int vs_fetch_done_cntr : CP_ME_VS_FETCH_DONE_SRC_VS_FETCH_DONE_CNTR_SIZE;
+ unsigned int : 31;
+ } cp_me_vs_fetch_done_src_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_vs_fetch_done_src_t {
+ unsigned int : 31;
+ unsigned int vs_fetch_done_cntr : CP_ME_VS_FETCH_DONE_SRC_VS_FETCH_DONE_CNTR_SIZE;
+ } cp_me_vs_fetch_done_src_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_vs_fetch_done_src_t f;
+} cp_me_vs_fetch_done_src_u;
+
+
+/*
+ * CP_ME_VS_FETCH_DONE_ADDR struct
+ */
+
+#define CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_SWAP_SIZE 2
+#define CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_ADDR_SIZE 30
+
+#define CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_SWAP_SHIFT 0
+#define CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_ADDR_SHIFT 2
+
+#define CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_SWAP_MASK 0x00000003
+#define CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_ADDR_MASK 0xfffffffc
+
+#define CP_ME_VS_FETCH_DONE_ADDR_MASK \
+ (CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_SWAP_MASK | \
+ CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_ADDR_MASK)
+
+#define CP_ME_VS_FETCH_DONE_ADDR(vs_fetch_done_swap, vs_fetch_done_addr) \
+ ((vs_fetch_done_swap << CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_SWAP_SHIFT) | \
+ (vs_fetch_done_addr << CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_ADDR_SHIFT))
+
+#define CP_ME_VS_FETCH_DONE_ADDR_GET_VS_FETCH_DONE_SWAP(cp_me_vs_fetch_done_addr) \
+ ((cp_me_vs_fetch_done_addr & CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_SWAP_MASK) >> CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_SWAP_SHIFT)
+#define CP_ME_VS_FETCH_DONE_ADDR_GET_VS_FETCH_DONE_ADDR(cp_me_vs_fetch_done_addr) \
+ ((cp_me_vs_fetch_done_addr & CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_ADDR_MASK) >> CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_ADDR_SHIFT)
+
+#define CP_ME_VS_FETCH_DONE_ADDR_SET_VS_FETCH_DONE_SWAP(cp_me_vs_fetch_done_addr_reg, vs_fetch_done_swap) \
+ cp_me_vs_fetch_done_addr_reg = (cp_me_vs_fetch_done_addr_reg & ~CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_SWAP_MASK) | (vs_fetch_done_swap << CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_SWAP_SHIFT)
+#define CP_ME_VS_FETCH_DONE_ADDR_SET_VS_FETCH_DONE_ADDR(cp_me_vs_fetch_done_addr_reg, vs_fetch_done_addr) \
+ cp_me_vs_fetch_done_addr_reg = (cp_me_vs_fetch_done_addr_reg & ~CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_ADDR_MASK) | (vs_fetch_done_addr << CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_ADDR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_vs_fetch_done_addr_t {
+ unsigned int vs_fetch_done_swap : CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_SWAP_SIZE;
+ unsigned int vs_fetch_done_addr : CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_ADDR_SIZE;
+ } cp_me_vs_fetch_done_addr_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_vs_fetch_done_addr_t {
+ unsigned int vs_fetch_done_addr : CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_ADDR_SIZE;
+ unsigned int vs_fetch_done_swap : CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_SWAP_SIZE;
+ } cp_me_vs_fetch_done_addr_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_vs_fetch_done_addr_t f;
+} cp_me_vs_fetch_done_addr_u;
+
+
+/*
+ * CP_ME_VS_FETCH_DONE_DATA struct
+ */
+
+#define CP_ME_VS_FETCH_DONE_DATA_VS_FETCH_DONE_DATA_SIZE 32
+
+#define CP_ME_VS_FETCH_DONE_DATA_VS_FETCH_DONE_DATA_SHIFT 0
+
+#define CP_ME_VS_FETCH_DONE_DATA_VS_FETCH_DONE_DATA_MASK 0xffffffff
+
+#define CP_ME_VS_FETCH_DONE_DATA_MASK \
+ (CP_ME_VS_FETCH_DONE_DATA_VS_FETCH_DONE_DATA_MASK)
+
+#define CP_ME_VS_FETCH_DONE_DATA(vs_fetch_done_data) \
+ ((vs_fetch_done_data << CP_ME_VS_FETCH_DONE_DATA_VS_FETCH_DONE_DATA_SHIFT))
+
+#define CP_ME_VS_FETCH_DONE_DATA_GET_VS_FETCH_DONE_DATA(cp_me_vs_fetch_done_data) \
+ ((cp_me_vs_fetch_done_data & CP_ME_VS_FETCH_DONE_DATA_VS_FETCH_DONE_DATA_MASK) >> CP_ME_VS_FETCH_DONE_DATA_VS_FETCH_DONE_DATA_SHIFT)
+
+#define CP_ME_VS_FETCH_DONE_DATA_SET_VS_FETCH_DONE_DATA(cp_me_vs_fetch_done_data_reg, vs_fetch_done_data) \
+ cp_me_vs_fetch_done_data_reg = (cp_me_vs_fetch_done_data_reg & ~CP_ME_VS_FETCH_DONE_DATA_VS_FETCH_DONE_DATA_MASK) | (vs_fetch_done_data << CP_ME_VS_FETCH_DONE_DATA_VS_FETCH_DONE_DATA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_vs_fetch_done_data_t {
+ unsigned int vs_fetch_done_data : CP_ME_VS_FETCH_DONE_DATA_VS_FETCH_DONE_DATA_SIZE;
+ } cp_me_vs_fetch_done_data_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_vs_fetch_done_data_t {
+ unsigned int vs_fetch_done_data : CP_ME_VS_FETCH_DONE_DATA_VS_FETCH_DONE_DATA_SIZE;
+ } cp_me_vs_fetch_done_data_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_vs_fetch_done_data_t f;
+} cp_me_vs_fetch_done_data_u;
+
+
+/*
+ * CP_INT_CNTL struct
+ */
+
+#define CP_INT_CNTL_SW_INT_MASK_SIZE 1
+#define CP_INT_CNTL_T0_PACKET_IN_IB_MASK_SIZE 1
+#define CP_INT_CNTL_OPCODE_ERROR_MASK_SIZE 1
+#define CP_INT_CNTL_PROTECTED_MODE_ERROR_MASK_SIZE 1
+#define CP_INT_CNTL_RESERVED_BIT_ERROR_MASK_SIZE 1
+#define CP_INT_CNTL_IB_ERROR_MASK_SIZE 1
+#define CP_INT_CNTL_IB2_INT_MASK_SIZE 1
+#define CP_INT_CNTL_IB1_INT_MASK_SIZE 1
+#define CP_INT_CNTL_RB_INT_MASK_SIZE 1
+
+#define CP_INT_CNTL_SW_INT_MASK_SHIFT 19
+#define CP_INT_CNTL_T0_PACKET_IN_IB_MASK_SHIFT 23
+#define CP_INT_CNTL_OPCODE_ERROR_MASK_SHIFT 24
+#define CP_INT_CNTL_PROTECTED_MODE_ERROR_MASK_SHIFT 25
+#define CP_INT_CNTL_RESERVED_BIT_ERROR_MASK_SHIFT 26
+#define CP_INT_CNTL_IB_ERROR_MASK_SHIFT 27
+#define CP_INT_CNTL_IB2_INT_MASK_SHIFT 29
+#define CP_INT_CNTL_IB1_INT_MASK_SHIFT 30
+#define CP_INT_CNTL_RB_INT_MASK_SHIFT 31
+
+#define CP_INT_CNTL_SW_INT_MASK_MASK 0x00080000
+#define CP_INT_CNTL_T0_PACKET_IN_IB_MASK_MASK 0x00800000
+#define CP_INT_CNTL_OPCODE_ERROR_MASK_MASK 0x01000000
+#define CP_INT_CNTL_PROTECTED_MODE_ERROR_MASK_MASK 0x02000000
+#define CP_INT_CNTL_RESERVED_BIT_ERROR_MASK_MASK 0x04000000
+#define CP_INT_CNTL_IB_ERROR_MASK_MASK 0x08000000
+#define CP_INT_CNTL_IB2_INT_MASK_MASK 0x20000000
+#define CP_INT_CNTL_IB1_INT_MASK_MASK 0x40000000
+#define CP_INT_CNTL_RB_INT_MASK_MASK 0x80000000
+
+#define CP_INT_CNTL_MASK \
+ (CP_INT_CNTL_SW_INT_MASK_MASK | \
+ CP_INT_CNTL_T0_PACKET_IN_IB_MASK_MASK | \
+ CP_INT_CNTL_OPCODE_ERROR_MASK_MASK | \
+ CP_INT_CNTL_PROTECTED_MODE_ERROR_MASK_MASK | \
+ CP_INT_CNTL_RESERVED_BIT_ERROR_MASK_MASK | \
+ CP_INT_CNTL_IB_ERROR_MASK_MASK | \
+ CP_INT_CNTL_IB2_INT_MASK_MASK | \
+ CP_INT_CNTL_IB1_INT_MASK_MASK | \
+ CP_INT_CNTL_RB_INT_MASK_MASK)
+
+#define CP_INT_CNTL(sw_int_mask, t0_packet_in_ib_mask, opcode_error_mask, protected_mode_error_mask, reserved_bit_error_mask, ib_error_mask, ib2_int_mask, ib1_int_mask, rb_int_mask) \
+ ((sw_int_mask << CP_INT_CNTL_SW_INT_MASK_SHIFT) | \
+ (t0_packet_in_ib_mask << CP_INT_CNTL_T0_PACKET_IN_IB_MASK_SHIFT) | \
+ (opcode_error_mask << CP_INT_CNTL_OPCODE_ERROR_MASK_SHIFT) | \
+ (protected_mode_error_mask << CP_INT_CNTL_PROTECTED_MODE_ERROR_MASK_SHIFT) | \
+ (reserved_bit_error_mask << CP_INT_CNTL_RESERVED_BIT_ERROR_MASK_SHIFT) | \
+ (ib_error_mask << CP_INT_CNTL_IB_ERROR_MASK_SHIFT) | \
+ (ib2_int_mask << CP_INT_CNTL_IB2_INT_MASK_SHIFT) | \
+ (ib1_int_mask << CP_INT_CNTL_IB1_INT_MASK_SHIFT) | \
+ (rb_int_mask << CP_INT_CNTL_RB_INT_MASK_SHIFT))
+
+#define CP_INT_CNTL_GET_SW_INT_MASK(cp_int_cntl) \
+ ((cp_int_cntl & CP_INT_CNTL_SW_INT_MASK_MASK) >> CP_INT_CNTL_SW_INT_MASK_SHIFT)
+#define CP_INT_CNTL_GET_T0_PACKET_IN_IB_MASK(cp_int_cntl) \
+ ((cp_int_cntl & CP_INT_CNTL_T0_PACKET_IN_IB_MASK_MASK) >> CP_INT_CNTL_T0_PACKET_IN_IB_MASK_SHIFT)
+#define CP_INT_CNTL_GET_OPCODE_ERROR_MASK(cp_int_cntl) \
+ ((cp_int_cntl & CP_INT_CNTL_OPCODE_ERROR_MASK_MASK) >> CP_INT_CNTL_OPCODE_ERROR_MASK_SHIFT)
+#define CP_INT_CNTL_GET_PROTECTED_MODE_ERROR_MASK(cp_int_cntl) \
+ ((cp_int_cntl & CP_INT_CNTL_PROTECTED_MODE_ERROR_MASK_MASK) >> CP_INT_CNTL_PROTECTED_MODE_ERROR_MASK_SHIFT)
+#define CP_INT_CNTL_GET_RESERVED_BIT_ERROR_MASK(cp_int_cntl) \
+ ((cp_int_cntl & CP_INT_CNTL_RESERVED_BIT_ERROR_MASK_MASK) >> CP_INT_CNTL_RESERVED_BIT_ERROR_MASK_SHIFT)
+#define CP_INT_CNTL_GET_IB_ERROR_MASK(cp_int_cntl) \
+ ((cp_int_cntl & CP_INT_CNTL_IB_ERROR_MASK_MASK) >> CP_INT_CNTL_IB_ERROR_MASK_SHIFT)
+#define CP_INT_CNTL_GET_IB2_INT_MASK(cp_int_cntl) \
+ ((cp_int_cntl & CP_INT_CNTL_IB2_INT_MASK_MASK) >> CP_INT_CNTL_IB2_INT_MASK_SHIFT)
+#define CP_INT_CNTL_GET_IB1_INT_MASK(cp_int_cntl) \
+ ((cp_int_cntl & CP_INT_CNTL_IB1_INT_MASK_MASK) >> CP_INT_CNTL_IB1_INT_MASK_SHIFT)
+#define CP_INT_CNTL_GET_RB_INT_MASK(cp_int_cntl) \
+ ((cp_int_cntl & CP_INT_CNTL_RB_INT_MASK_MASK) >> CP_INT_CNTL_RB_INT_MASK_SHIFT)
+
+#define CP_INT_CNTL_SET_SW_INT_MASK(cp_int_cntl_reg, sw_int_mask) \
+ cp_int_cntl_reg = (cp_int_cntl_reg & ~CP_INT_CNTL_SW_INT_MASK_MASK) | (sw_int_mask << CP_INT_CNTL_SW_INT_MASK_SHIFT)
+#define CP_INT_CNTL_SET_T0_PACKET_IN_IB_MASK(cp_int_cntl_reg, t0_packet_in_ib_mask) \
+ cp_int_cntl_reg = (cp_int_cntl_reg & ~CP_INT_CNTL_T0_PACKET_IN_IB_MASK_MASK) | (t0_packet_in_ib_mask << CP_INT_CNTL_T0_PACKET_IN_IB_MASK_SHIFT)
+#define CP_INT_CNTL_SET_OPCODE_ERROR_MASK(cp_int_cntl_reg, opcode_error_mask) \
+ cp_int_cntl_reg = (cp_int_cntl_reg & ~CP_INT_CNTL_OPCODE_ERROR_MASK_MASK) | (opcode_error_mask << CP_INT_CNTL_OPCODE_ERROR_MASK_SHIFT)
+#define CP_INT_CNTL_SET_PROTECTED_MODE_ERROR_MASK(cp_int_cntl_reg, protected_mode_error_mask) \
+ cp_int_cntl_reg = (cp_int_cntl_reg & ~CP_INT_CNTL_PROTECTED_MODE_ERROR_MASK_MASK) | (protected_mode_error_mask << CP_INT_CNTL_PROTECTED_MODE_ERROR_MASK_SHIFT)
+#define CP_INT_CNTL_SET_RESERVED_BIT_ERROR_MASK(cp_int_cntl_reg, reserved_bit_error_mask) \
+ cp_int_cntl_reg = (cp_int_cntl_reg & ~CP_INT_CNTL_RESERVED_BIT_ERROR_MASK_MASK) | (reserved_bit_error_mask << CP_INT_CNTL_RESERVED_BIT_ERROR_MASK_SHIFT)
+#define CP_INT_CNTL_SET_IB_ERROR_MASK(cp_int_cntl_reg, ib_error_mask) \
+ cp_int_cntl_reg = (cp_int_cntl_reg & ~CP_INT_CNTL_IB_ERROR_MASK_MASK) | (ib_error_mask << CP_INT_CNTL_IB_ERROR_MASK_SHIFT)
+#define CP_INT_CNTL_SET_IB2_INT_MASK(cp_int_cntl_reg, ib2_int_mask) \
+ cp_int_cntl_reg = (cp_int_cntl_reg & ~CP_INT_CNTL_IB2_INT_MASK_MASK) | (ib2_int_mask << CP_INT_CNTL_IB2_INT_MASK_SHIFT)
+#define CP_INT_CNTL_SET_IB1_INT_MASK(cp_int_cntl_reg, ib1_int_mask) \
+ cp_int_cntl_reg = (cp_int_cntl_reg & ~CP_INT_CNTL_IB1_INT_MASK_MASK) | (ib1_int_mask << CP_INT_CNTL_IB1_INT_MASK_SHIFT)
+#define CP_INT_CNTL_SET_RB_INT_MASK(cp_int_cntl_reg, rb_int_mask) \
+ cp_int_cntl_reg = (cp_int_cntl_reg & ~CP_INT_CNTL_RB_INT_MASK_MASK) | (rb_int_mask << CP_INT_CNTL_RB_INT_MASK_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_int_cntl_t {
+ unsigned int : 19;
+ unsigned int sw_int_mask : CP_INT_CNTL_SW_INT_MASK_SIZE;
+ unsigned int : 3;
+ unsigned int t0_packet_in_ib_mask : CP_INT_CNTL_T0_PACKET_IN_IB_MASK_SIZE;
+ unsigned int opcode_error_mask : CP_INT_CNTL_OPCODE_ERROR_MASK_SIZE;
+ unsigned int protected_mode_error_mask : CP_INT_CNTL_PROTECTED_MODE_ERROR_MASK_SIZE;
+ unsigned int reserved_bit_error_mask : CP_INT_CNTL_RESERVED_BIT_ERROR_MASK_SIZE;
+ unsigned int ib_error_mask : CP_INT_CNTL_IB_ERROR_MASK_SIZE;
+ unsigned int : 1;
+ unsigned int ib2_int_mask : CP_INT_CNTL_IB2_INT_MASK_SIZE;
+ unsigned int ib1_int_mask : CP_INT_CNTL_IB1_INT_MASK_SIZE;
+ unsigned int rb_int_mask : CP_INT_CNTL_RB_INT_MASK_SIZE;
+ } cp_int_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_int_cntl_t {
+ unsigned int rb_int_mask : CP_INT_CNTL_RB_INT_MASK_SIZE;
+ unsigned int ib1_int_mask : CP_INT_CNTL_IB1_INT_MASK_SIZE;
+ unsigned int ib2_int_mask : CP_INT_CNTL_IB2_INT_MASK_SIZE;
+ unsigned int : 1;
+ unsigned int ib_error_mask : CP_INT_CNTL_IB_ERROR_MASK_SIZE;
+ unsigned int reserved_bit_error_mask : CP_INT_CNTL_RESERVED_BIT_ERROR_MASK_SIZE;
+ unsigned int protected_mode_error_mask : CP_INT_CNTL_PROTECTED_MODE_ERROR_MASK_SIZE;
+ unsigned int opcode_error_mask : CP_INT_CNTL_OPCODE_ERROR_MASK_SIZE;
+ unsigned int t0_packet_in_ib_mask : CP_INT_CNTL_T0_PACKET_IN_IB_MASK_SIZE;
+ unsigned int : 3;
+ unsigned int sw_int_mask : CP_INT_CNTL_SW_INT_MASK_SIZE;
+ unsigned int : 19;
+ } cp_int_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_int_cntl_t f;
+} cp_int_cntl_u;
+
+
+/*
+ * CP_INT_STATUS struct
+ */
+
+#define CP_INT_STATUS_SW_INT_STAT_SIZE 1
+#define CP_INT_STATUS_T0_PACKET_IN_IB_STAT_SIZE 1
+#define CP_INT_STATUS_OPCODE_ERROR_STAT_SIZE 1
+#define CP_INT_STATUS_PROTECTED_MODE_ERROR_STAT_SIZE 1
+#define CP_INT_STATUS_RESERVED_BIT_ERROR_STAT_SIZE 1
+#define CP_INT_STATUS_IB_ERROR_STAT_SIZE 1
+#define CP_INT_STATUS_IB2_INT_STAT_SIZE 1
+#define CP_INT_STATUS_IB1_INT_STAT_SIZE 1
+#define CP_INT_STATUS_RB_INT_STAT_SIZE 1
+
+#define CP_INT_STATUS_SW_INT_STAT_SHIFT 19
+#define CP_INT_STATUS_T0_PACKET_IN_IB_STAT_SHIFT 23
+#define CP_INT_STATUS_OPCODE_ERROR_STAT_SHIFT 24
+#define CP_INT_STATUS_PROTECTED_MODE_ERROR_STAT_SHIFT 25
+#define CP_INT_STATUS_RESERVED_BIT_ERROR_STAT_SHIFT 26
+#define CP_INT_STATUS_IB_ERROR_STAT_SHIFT 27
+#define CP_INT_STATUS_IB2_INT_STAT_SHIFT 29
+#define CP_INT_STATUS_IB1_INT_STAT_SHIFT 30
+#define CP_INT_STATUS_RB_INT_STAT_SHIFT 31
+
+#define CP_INT_STATUS_SW_INT_STAT_MASK 0x00080000
+#define CP_INT_STATUS_T0_PACKET_IN_IB_STAT_MASK 0x00800000
+#define CP_INT_STATUS_OPCODE_ERROR_STAT_MASK 0x01000000
+#define CP_INT_STATUS_PROTECTED_MODE_ERROR_STAT_MASK 0x02000000
+#define CP_INT_STATUS_RESERVED_BIT_ERROR_STAT_MASK 0x04000000
+#define CP_INT_STATUS_IB_ERROR_STAT_MASK 0x08000000
+#define CP_INT_STATUS_IB2_INT_STAT_MASK 0x20000000
+#define CP_INT_STATUS_IB1_INT_STAT_MASK 0x40000000
+#define CP_INT_STATUS_RB_INT_STAT_MASK 0x80000000
+
+#define CP_INT_STATUS_MASK \
+ (CP_INT_STATUS_SW_INT_STAT_MASK | \
+ CP_INT_STATUS_T0_PACKET_IN_IB_STAT_MASK | \
+ CP_INT_STATUS_OPCODE_ERROR_STAT_MASK | \
+ CP_INT_STATUS_PROTECTED_MODE_ERROR_STAT_MASK | \
+ CP_INT_STATUS_RESERVED_BIT_ERROR_STAT_MASK | \
+ CP_INT_STATUS_IB_ERROR_STAT_MASK | \
+ CP_INT_STATUS_IB2_INT_STAT_MASK | \
+ CP_INT_STATUS_IB1_INT_STAT_MASK | \
+ CP_INT_STATUS_RB_INT_STAT_MASK)
+
+#define CP_INT_STATUS(sw_int_stat, t0_packet_in_ib_stat, opcode_error_stat, protected_mode_error_stat, reserved_bit_error_stat, ib_error_stat, ib2_int_stat, ib1_int_stat, rb_int_stat) \
+ ((sw_int_stat << CP_INT_STATUS_SW_INT_STAT_SHIFT) | \
+ (t0_packet_in_ib_stat << CP_INT_STATUS_T0_PACKET_IN_IB_STAT_SHIFT) | \
+ (opcode_error_stat << CP_INT_STATUS_OPCODE_ERROR_STAT_SHIFT) | \
+ (protected_mode_error_stat << CP_INT_STATUS_PROTECTED_MODE_ERROR_STAT_SHIFT) | \
+ (reserved_bit_error_stat << CP_INT_STATUS_RESERVED_BIT_ERROR_STAT_SHIFT) | \
+ (ib_error_stat << CP_INT_STATUS_IB_ERROR_STAT_SHIFT) | \
+ (ib2_int_stat << CP_INT_STATUS_IB2_INT_STAT_SHIFT) | \
+ (ib1_int_stat << CP_INT_STATUS_IB1_INT_STAT_SHIFT) | \
+ (rb_int_stat << CP_INT_STATUS_RB_INT_STAT_SHIFT))
+
+#define CP_INT_STATUS_GET_SW_INT_STAT(cp_int_status) \
+ ((cp_int_status & CP_INT_STATUS_SW_INT_STAT_MASK) >> CP_INT_STATUS_SW_INT_STAT_SHIFT)
+#define CP_INT_STATUS_GET_T0_PACKET_IN_IB_STAT(cp_int_status) \
+ ((cp_int_status & CP_INT_STATUS_T0_PACKET_IN_IB_STAT_MASK) >> CP_INT_STATUS_T0_PACKET_IN_IB_STAT_SHIFT)
+#define CP_INT_STATUS_GET_OPCODE_ERROR_STAT(cp_int_status) \
+ ((cp_int_status & CP_INT_STATUS_OPCODE_ERROR_STAT_MASK) >> CP_INT_STATUS_OPCODE_ERROR_STAT_SHIFT)
+#define CP_INT_STATUS_GET_PROTECTED_MODE_ERROR_STAT(cp_int_status) \
+ ((cp_int_status & CP_INT_STATUS_PROTECTED_MODE_ERROR_STAT_MASK) >> CP_INT_STATUS_PROTECTED_MODE_ERROR_STAT_SHIFT)
+#define CP_INT_STATUS_GET_RESERVED_BIT_ERROR_STAT(cp_int_status) \
+ ((cp_int_status & CP_INT_STATUS_RESERVED_BIT_ERROR_STAT_MASK) >> CP_INT_STATUS_RESERVED_BIT_ERROR_STAT_SHIFT)
+#define CP_INT_STATUS_GET_IB_ERROR_STAT(cp_int_status) \
+ ((cp_int_status & CP_INT_STATUS_IB_ERROR_STAT_MASK) >> CP_INT_STATUS_IB_ERROR_STAT_SHIFT)
+#define CP_INT_STATUS_GET_IB2_INT_STAT(cp_int_status) \
+ ((cp_int_status & CP_INT_STATUS_IB2_INT_STAT_MASK) >> CP_INT_STATUS_IB2_INT_STAT_SHIFT)
+#define CP_INT_STATUS_GET_IB1_INT_STAT(cp_int_status) \
+ ((cp_int_status & CP_INT_STATUS_IB1_INT_STAT_MASK) >> CP_INT_STATUS_IB1_INT_STAT_SHIFT)
+#define CP_INT_STATUS_GET_RB_INT_STAT(cp_int_status) \
+ ((cp_int_status & CP_INT_STATUS_RB_INT_STAT_MASK) >> CP_INT_STATUS_RB_INT_STAT_SHIFT)
+
+#define CP_INT_STATUS_SET_SW_INT_STAT(cp_int_status_reg, sw_int_stat) \
+ cp_int_status_reg = (cp_int_status_reg & ~CP_INT_STATUS_SW_INT_STAT_MASK) | (sw_int_stat << CP_INT_STATUS_SW_INT_STAT_SHIFT)
+#define CP_INT_STATUS_SET_T0_PACKET_IN_IB_STAT(cp_int_status_reg, t0_packet_in_ib_stat) \
+ cp_int_status_reg = (cp_int_status_reg & ~CP_INT_STATUS_T0_PACKET_IN_IB_STAT_MASK) | (t0_packet_in_ib_stat << CP_INT_STATUS_T0_PACKET_IN_IB_STAT_SHIFT)
+#define CP_INT_STATUS_SET_OPCODE_ERROR_STAT(cp_int_status_reg, opcode_error_stat) \
+ cp_int_status_reg = (cp_int_status_reg & ~CP_INT_STATUS_OPCODE_ERROR_STAT_MASK) | (opcode_error_stat << CP_INT_STATUS_OPCODE_ERROR_STAT_SHIFT)
+#define CP_INT_STATUS_SET_PROTECTED_MODE_ERROR_STAT(cp_int_status_reg, protected_mode_error_stat) \
+ cp_int_status_reg = (cp_int_status_reg & ~CP_INT_STATUS_PROTECTED_MODE_ERROR_STAT_MASK) | (protected_mode_error_stat << CP_INT_STATUS_PROTECTED_MODE_ERROR_STAT_SHIFT)
+#define CP_INT_STATUS_SET_RESERVED_BIT_ERROR_STAT(cp_int_status_reg, reserved_bit_error_stat) \
+ cp_int_status_reg = (cp_int_status_reg & ~CP_INT_STATUS_RESERVED_BIT_ERROR_STAT_MASK) | (reserved_bit_error_stat << CP_INT_STATUS_RESERVED_BIT_ERROR_STAT_SHIFT)
+#define CP_INT_STATUS_SET_IB_ERROR_STAT(cp_int_status_reg, ib_error_stat) \
+ cp_int_status_reg = (cp_int_status_reg & ~CP_INT_STATUS_IB_ERROR_STAT_MASK) | (ib_error_stat << CP_INT_STATUS_IB_ERROR_STAT_SHIFT)
+#define CP_INT_STATUS_SET_IB2_INT_STAT(cp_int_status_reg, ib2_int_stat) \
+ cp_int_status_reg = (cp_int_status_reg & ~CP_INT_STATUS_IB2_INT_STAT_MASK) | (ib2_int_stat << CP_INT_STATUS_IB2_INT_STAT_SHIFT)
+#define CP_INT_STATUS_SET_IB1_INT_STAT(cp_int_status_reg, ib1_int_stat) \
+ cp_int_status_reg = (cp_int_status_reg & ~CP_INT_STATUS_IB1_INT_STAT_MASK) | (ib1_int_stat << CP_INT_STATUS_IB1_INT_STAT_SHIFT)
+#define CP_INT_STATUS_SET_RB_INT_STAT(cp_int_status_reg, rb_int_stat) \
+ cp_int_status_reg = (cp_int_status_reg & ~CP_INT_STATUS_RB_INT_STAT_MASK) | (rb_int_stat << CP_INT_STATUS_RB_INT_STAT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_int_status_t {
+ unsigned int : 19;
+ unsigned int sw_int_stat : CP_INT_STATUS_SW_INT_STAT_SIZE;
+ unsigned int : 3;
+ unsigned int t0_packet_in_ib_stat : CP_INT_STATUS_T0_PACKET_IN_IB_STAT_SIZE;
+ unsigned int opcode_error_stat : CP_INT_STATUS_OPCODE_ERROR_STAT_SIZE;
+ unsigned int protected_mode_error_stat : CP_INT_STATUS_PROTECTED_MODE_ERROR_STAT_SIZE;
+ unsigned int reserved_bit_error_stat : CP_INT_STATUS_RESERVED_BIT_ERROR_STAT_SIZE;
+ unsigned int ib_error_stat : CP_INT_STATUS_IB_ERROR_STAT_SIZE;
+ unsigned int : 1;
+ unsigned int ib2_int_stat : CP_INT_STATUS_IB2_INT_STAT_SIZE;
+ unsigned int ib1_int_stat : CP_INT_STATUS_IB1_INT_STAT_SIZE;
+ unsigned int rb_int_stat : CP_INT_STATUS_RB_INT_STAT_SIZE;
+ } cp_int_status_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_int_status_t {
+ unsigned int rb_int_stat : CP_INT_STATUS_RB_INT_STAT_SIZE;
+ unsigned int ib1_int_stat : CP_INT_STATUS_IB1_INT_STAT_SIZE;
+ unsigned int ib2_int_stat : CP_INT_STATUS_IB2_INT_STAT_SIZE;
+ unsigned int : 1;
+ unsigned int ib_error_stat : CP_INT_STATUS_IB_ERROR_STAT_SIZE;
+ unsigned int reserved_bit_error_stat : CP_INT_STATUS_RESERVED_BIT_ERROR_STAT_SIZE;
+ unsigned int protected_mode_error_stat : CP_INT_STATUS_PROTECTED_MODE_ERROR_STAT_SIZE;
+ unsigned int opcode_error_stat : CP_INT_STATUS_OPCODE_ERROR_STAT_SIZE;
+ unsigned int t0_packet_in_ib_stat : CP_INT_STATUS_T0_PACKET_IN_IB_STAT_SIZE;
+ unsigned int : 3;
+ unsigned int sw_int_stat : CP_INT_STATUS_SW_INT_STAT_SIZE;
+ unsigned int : 19;
+ } cp_int_status_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_int_status_t f;
+} cp_int_status_u;
+
+
+/*
+ * CP_INT_ACK struct
+ */
+
+#define CP_INT_ACK_SW_INT_ACK_SIZE 1
+#define CP_INT_ACK_T0_PACKET_IN_IB_ACK_SIZE 1
+#define CP_INT_ACK_OPCODE_ERROR_ACK_SIZE 1
+#define CP_INT_ACK_PROTECTED_MODE_ERROR_ACK_SIZE 1
+#define CP_INT_ACK_RESERVED_BIT_ERROR_ACK_SIZE 1
+#define CP_INT_ACK_IB_ERROR_ACK_SIZE 1
+#define CP_INT_ACK_IB2_INT_ACK_SIZE 1
+#define CP_INT_ACK_IB1_INT_ACK_SIZE 1
+#define CP_INT_ACK_RB_INT_ACK_SIZE 1
+
+#define CP_INT_ACK_SW_INT_ACK_SHIFT 19
+#define CP_INT_ACK_T0_PACKET_IN_IB_ACK_SHIFT 23
+#define CP_INT_ACK_OPCODE_ERROR_ACK_SHIFT 24
+#define CP_INT_ACK_PROTECTED_MODE_ERROR_ACK_SHIFT 25
+#define CP_INT_ACK_RESERVED_BIT_ERROR_ACK_SHIFT 26
+#define CP_INT_ACK_IB_ERROR_ACK_SHIFT 27
+#define CP_INT_ACK_IB2_INT_ACK_SHIFT 29
+#define CP_INT_ACK_IB1_INT_ACK_SHIFT 30
+#define CP_INT_ACK_RB_INT_ACK_SHIFT 31
+
+#define CP_INT_ACK_SW_INT_ACK_MASK 0x00080000
+#define CP_INT_ACK_T0_PACKET_IN_IB_ACK_MASK 0x00800000
+#define CP_INT_ACK_OPCODE_ERROR_ACK_MASK 0x01000000
+#define CP_INT_ACK_PROTECTED_MODE_ERROR_ACK_MASK 0x02000000
+#define CP_INT_ACK_RESERVED_BIT_ERROR_ACK_MASK 0x04000000
+#define CP_INT_ACK_IB_ERROR_ACK_MASK 0x08000000
+#define CP_INT_ACK_IB2_INT_ACK_MASK 0x20000000
+#define CP_INT_ACK_IB1_INT_ACK_MASK 0x40000000
+#define CP_INT_ACK_RB_INT_ACK_MASK 0x80000000
+
+#define CP_INT_ACK_MASK \
+ (CP_INT_ACK_SW_INT_ACK_MASK | \
+ CP_INT_ACK_T0_PACKET_IN_IB_ACK_MASK | \
+ CP_INT_ACK_OPCODE_ERROR_ACK_MASK | \
+ CP_INT_ACK_PROTECTED_MODE_ERROR_ACK_MASK | \
+ CP_INT_ACK_RESERVED_BIT_ERROR_ACK_MASK | \
+ CP_INT_ACK_IB_ERROR_ACK_MASK | \
+ CP_INT_ACK_IB2_INT_ACK_MASK | \
+ CP_INT_ACK_IB1_INT_ACK_MASK | \
+ CP_INT_ACK_RB_INT_ACK_MASK)
+
+#define CP_INT_ACK(sw_int_ack, t0_packet_in_ib_ack, opcode_error_ack, protected_mode_error_ack, reserved_bit_error_ack, ib_error_ack, ib2_int_ack, ib1_int_ack, rb_int_ack) \
+ ((sw_int_ack << CP_INT_ACK_SW_INT_ACK_SHIFT) | \
+ (t0_packet_in_ib_ack << CP_INT_ACK_T0_PACKET_IN_IB_ACK_SHIFT) | \
+ (opcode_error_ack << CP_INT_ACK_OPCODE_ERROR_ACK_SHIFT) | \
+ (protected_mode_error_ack << CP_INT_ACK_PROTECTED_MODE_ERROR_ACK_SHIFT) | \
+ (reserved_bit_error_ack << CP_INT_ACK_RESERVED_BIT_ERROR_ACK_SHIFT) | \
+ (ib_error_ack << CP_INT_ACK_IB_ERROR_ACK_SHIFT) | \
+ (ib2_int_ack << CP_INT_ACK_IB2_INT_ACK_SHIFT) | \
+ (ib1_int_ack << CP_INT_ACK_IB1_INT_ACK_SHIFT) | \
+ (rb_int_ack << CP_INT_ACK_RB_INT_ACK_SHIFT))
+
+#define CP_INT_ACK_GET_SW_INT_ACK(cp_int_ack) \
+ ((cp_int_ack & CP_INT_ACK_SW_INT_ACK_MASK) >> CP_INT_ACK_SW_INT_ACK_SHIFT)
+#define CP_INT_ACK_GET_T0_PACKET_IN_IB_ACK(cp_int_ack) \
+ ((cp_int_ack & CP_INT_ACK_T0_PACKET_IN_IB_ACK_MASK) >> CP_INT_ACK_T0_PACKET_IN_IB_ACK_SHIFT)
+#define CP_INT_ACK_GET_OPCODE_ERROR_ACK(cp_int_ack) \
+ ((cp_int_ack & CP_INT_ACK_OPCODE_ERROR_ACK_MASK) >> CP_INT_ACK_OPCODE_ERROR_ACK_SHIFT)
+#define CP_INT_ACK_GET_PROTECTED_MODE_ERROR_ACK(cp_int_ack) \
+ ((cp_int_ack & CP_INT_ACK_PROTECTED_MODE_ERROR_ACK_MASK) >> CP_INT_ACK_PROTECTED_MODE_ERROR_ACK_SHIFT)
+#define CP_INT_ACK_GET_RESERVED_BIT_ERROR_ACK(cp_int_ack) \
+ ((cp_int_ack & CP_INT_ACK_RESERVED_BIT_ERROR_ACK_MASK) >> CP_INT_ACK_RESERVED_BIT_ERROR_ACK_SHIFT)
+#define CP_INT_ACK_GET_IB_ERROR_ACK(cp_int_ack) \
+ ((cp_int_ack & CP_INT_ACK_IB_ERROR_ACK_MASK) >> CP_INT_ACK_IB_ERROR_ACK_SHIFT)
+#define CP_INT_ACK_GET_IB2_INT_ACK(cp_int_ack) \
+ ((cp_int_ack & CP_INT_ACK_IB2_INT_ACK_MASK) >> CP_INT_ACK_IB2_INT_ACK_SHIFT)
+#define CP_INT_ACK_GET_IB1_INT_ACK(cp_int_ack) \
+ ((cp_int_ack & CP_INT_ACK_IB1_INT_ACK_MASK) >> CP_INT_ACK_IB1_INT_ACK_SHIFT)
+#define CP_INT_ACK_GET_RB_INT_ACK(cp_int_ack) \
+ ((cp_int_ack & CP_INT_ACK_RB_INT_ACK_MASK) >> CP_INT_ACK_RB_INT_ACK_SHIFT)
+
+#define CP_INT_ACK_SET_SW_INT_ACK(cp_int_ack_reg, sw_int_ack) \
+ cp_int_ack_reg = (cp_int_ack_reg & ~CP_INT_ACK_SW_INT_ACK_MASK) | (sw_int_ack << CP_INT_ACK_SW_INT_ACK_SHIFT)
+#define CP_INT_ACK_SET_T0_PACKET_IN_IB_ACK(cp_int_ack_reg, t0_packet_in_ib_ack) \
+ cp_int_ack_reg = (cp_int_ack_reg & ~CP_INT_ACK_T0_PACKET_IN_IB_ACK_MASK) | (t0_packet_in_ib_ack << CP_INT_ACK_T0_PACKET_IN_IB_ACK_SHIFT)
+#define CP_INT_ACK_SET_OPCODE_ERROR_ACK(cp_int_ack_reg, opcode_error_ack) \
+ cp_int_ack_reg = (cp_int_ack_reg & ~CP_INT_ACK_OPCODE_ERROR_ACK_MASK) | (opcode_error_ack << CP_INT_ACK_OPCODE_ERROR_ACK_SHIFT)
+#define CP_INT_ACK_SET_PROTECTED_MODE_ERROR_ACK(cp_int_ack_reg, protected_mode_error_ack) \
+ cp_int_ack_reg = (cp_int_ack_reg & ~CP_INT_ACK_PROTECTED_MODE_ERROR_ACK_MASK) | (protected_mode_error_ack << CP_INT_ACK_PROTECTED_MODE_ERROR_ACK_SHIFT)
+#define CP_INT_ACK_SET_RESERVED_BIT_ERROR_ACK(cp_int_ack_reg, reserved_bit_error_ack) \
+ cp_int_ack_reg = (cp_int_ack_reg & ~CP_INT_ACK_RESERVED_BIT_ERROR_ACK_MASK) | (reserved_bit_error_ack << CP_INT_ACK_RESERVED_BIT_ERROR_ACK_SHIFT)
+#define CP_INT_ACK_SET_IB_ERROR_ACK(cp_int_ack_reg, ib_error_ack) \
+ cp_int_ack_reg = (cp_int_ack_reg & ~CP_INT_ACK_IB_ERROR_ACK_MASK) | (ib_error_ack << CP_INT_ACK_IB_ERROR_ACK_SHIFT)
+#define CP_INT_ACK_SET_IB2_INT_ACK(cp_int_ack_reg, ib2_int_ack) \
+ cp_int_ack_reg = (cp_int_ack_reg & ~CP_INT_ACK_IB2_INT_ACK_MASK) | (ib2_int_ack << CP_INT_ACK_IB2_INT_ACK_SHIFT)
+#define CP_INT_ACK_SET_IB1_INT_ACK(cp_int_ack_reg, ib1_int_ack) \
+ cp_int_ack_reg = (cp_int_ack_reg & ~CP_INT_ACK_IB1_INT_ACK_MASK) | (ib1_int_ack << CP_INT_ACK_IB1_INT_ACK_SHIFT)
+#define CP_INT_ACK_SET_RB_INT_ACK(cp_int_ack_reg, rb_int_ack) \
+ cp_int_ack_reg = (cp_int_ack_reg & ~CP_INT_ACK_RB_INT_ACK_MASK) | (rb_int_ack << CP_INT_ACK_RB_INT_ACK_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_int_ack_t {
+ unsigned int : 19;
+ unsigned int sw_int_ack : CP_INT_ACK_SW_INT_ACK_SIZE;
+ unsigned int : 3;
+ unsigned int t0_packet_in_ib_ack : CP_INT_ACK_T0_PACKET_IN_IB_ACK_SIZE;
+ unsigned int opcode_error_ack : CP_INT_ACK_OPCODE_ERROR_ACK_SIZE;
+ unsigned int protected_mode_error_ack : CP_INT_ACK_PROTECTED_MODE_ERROR_ACK_SIZE;
+ unsigned int reserved_bit_error_ack : CP_INT_ACK_RESERVED_BIT_ERROR_ACK_SIZE;
+ unsigned int ib_error_ack : CP_INT_ACK_IB_ERROR_ACK_SIZE;
+ unsigned int : 1;
+ unsigned int ib2_int_ack : CP_INT_ACK_IB2_INT_ACK_SIZE;
+ unsigned int ib1_int_ack : CP_INT_ACK_IB1_INT_ACK_SIZE;
+ unsigned int rb_int_ack : CP_INT_ACK_RB_INT_ACK_SIZE;
+ } cp_int_ack_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_int_ack_t {
+ unsigned int rb_int_ack : CP_INT_ACK_RB_INT_ACK_SIZE;
+ unsigned int ib1_int_ack : CP_INT_ACK_IB1_INT_ACK_SIZE;
+ unsigned int ib2_int_ack : CP_INT_ACK_IB2_INT_ACK_SIZE;
+ unsigned int : 1;
+ unsigned int ib_error_ack : CP_INT_ACK_IB_ERROR_ACK_SIZE;
+ unsigned int reserved_bit_error_ack : CP_INT_ACK_RESERVED_BIT_ERROR_ACK_SIZE;
+ unsigned int protected_mode_error_ack : CP_INT_ACK_PROTECTED_MODE_ERROR_ACK_SIZE;
+ unsigned int opcode_error_ack : CP_INT_ACK_OPCODE_ERROR_ACK_SIZE;
+ unsigned int t0_packet_in_ib_ack : CP_INT_ACK_T0_PACKET_IN_IB_ACK_SIZE;
+ unsigned int : 3;
+ unsigned int sw_int_ack : CP_INT_ACK_SW_INT_ACK_SIZE;
+ unsigned int : 19;
+ } cp_int_ack_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_int_ack_t f;
+} cp_int_ack_u;
+
+
+/*
+ * CP_PFP_UCODE_ADDR struct
+ */
+
+#define CP_PFP_UCODE_ADDR_UCODE_ADDR_SIZE 9
+
+#define CP_PFP_UCODE_ADDR_UCODE_ADDR_SHIFT 0
+
+#define CP_PFP_UCODE_ADDR_UCODE_ADDR_MASK 0x000001ff
+
+#define CP_PFP_UCODE_ADDR_MASK \
+ (CP_PFP_UCODE_ADDR_UCODE_ADDR_MASK)
+
+#define CP_PFP_UCODE_ADDR(ucode_addr) \
+ ((ucode_addr << CP_PFP_UCODE_ADDR_UCODE_ADDR_SHIFT))
+
+#define CP_PFP_UCODE_ADDR_GET_UCODE_ADDR(cp_pfp_ucode_addr) \
+ ((cp_pfp_ucode_addr & CP_PFP_UCODE_ADDR_UCODE_ADDR_MASK) >> CP_PFP_UCODE_ADDR_UCODE_ADDR_SHIFT)
+
+#define CP_PFP_UCODE_ADDR_SET_UCODE_ADDR(cp_pfp_ucode_addr_reg, ucode_addr) \
+ cp_pfp_ucode_addr_reg = (cp_pfp_ucode_addr_reg & ~CP_PFP_UCODE_ADDR_UCODE_ADDR_MASK) | (ucode_addr << CP_PFP_UCODE_ADDR_UCODE_ADDR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_pfp_ucode_addr_t {
+ unsigned int ucode_addr : CP_PFP_UCODE_ADDR_UCODE_ADDR_SIZE;
+ unsigned int : 23;
+ } cp_pfp_ucode_addr_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_pfp_ucode_addr_t {
+ unsigned int : 23;
+ unsigned int ucode_addr : CP_PFP_UCODE_ADDR_UCODE_ADDR_SIZE;
+ } cp_pfp_ucode_addr_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_pfp_ucode_addr_t f;
+} cp_pfp_ucode_addr_u;
+
+
+/*
+ * CP_PFP_UCODE_DATA struct
+ */
+
+#define CP_PFP_UCODE_DATA_UCODE_DATA_SIZE 24
+
+#define CP_PFP_UCODE_DATA_UCODE_DATA_SHIFT 0
+
+#define CP_PFP_UCODE_DATA_UCODE_DATA_MASK 0x00ffffff
+
+#define CP_PFP_UCODE_DATA_MASK \
+ (CP_PFP_UCODE_DATA_UCODE_DATA_MASK)
+
+#define CP_PFP_UCODE_DATA(ucode_data) \
+ ((ucode_data << CP_PFP_UCODE_DATA_UCODE_DATA_SHIFT))
+
+#define CP_PFP_UCODE_DATA_GET_UCODE_DATA(cp_pfp_ucode_data) \
+ ((cp_pfp_ucode_data & CP_PFP_UCODE_DATA_UCODE_DATA_MASK) >> CP_PFP_UCODE_DATA_UCODE_DATA_SHIFT)
+
+#define CP_PFP_UCODE_DATA_SET_UCODE_DATA(cp_pfp_ucode_data_reg, ucode_data) \
+ cp_pfp_ucode_data_reg = (cp_pfp_ucode_data_reg & ~CP_PFP_UCODE_DATA_UCODE_DATA_MASK) | (ucode_data << CP_PFP_UCODE_DATA_UCODE_DATA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_pfp_ucode_data_t {
+ unsigned int ucode_data : CP_PFP_UCODE_DATA_UCODE_DATA_SIZE;
+ unsigned int : 8;
+ } cp_pfp_ucode_data_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_pfp_ucode_data_t {
+ unsigned int : 8;
+ unsigned int ucode_data : CP_PFP_UCODE_DATA_UCODE_DATA_SIZE;
+ } cp_pfp_ucode_data_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_pfp_ucode_data_t f;
+} cp_pfp_ucode_data_u;
+
+
+/*
+ * CP_PERFMON_CNTL struct
+ */
+
+#define CP_PERFMON_CNTL_PERFMON_STATE_SIZE 4
+#define CP_PERFMON_CNTL_PERFMON_ENABLE_MODE_SIZE 2
+
+#define CP_PERFMON_CNTL_PERFMON_STATE_SHIFT 0
+#define CP_PERFMON_CNTL_PERFMON_ENABLE_MODE_SHIFT 8
+
+#define CP_PERFMON_CNTL_PERFMON_STATE_MASK 0x0000000f
+#define CP_PERFMON_CNTL_PERFMON_ENABLE_MODE_MASK 0x00000300
+
+#define CP_PERFMON_CNTL_MASK \
+ (CP_PERFMON_CNTL_PERFMON_STATE_MASK | \
+ CP_PERFMON_CNTL_PERFMON_ENABLE_MODE_MASK)
+
+#define CP_PERFMON_CNTL(perfmon_state, perfmon_enable_mode) \
+ ((perfmon_state << CP_PERFMON_CNTL_PERFMON_STATE_SHIFT) | \
+ (perfmon_enable_mode << CP_PERFMON_CNTL_PERFMON_ENABLE_MODE_SHIFT))
+
+#define CP_PERFMON_CNTL_GET_PERFMON_STATE(cp_perfmon_cntl) \
+ ((cp_perfmon_cntl & CP_PERFMON_CNTL_PERFMON_STATE_MASK) >> CP_PERFMON_CNTL_PERFMON_STATE_SHIFT)
+#define CP_PERFMON_CNTL_GET_PERFMON_ENABLE_MODE(cp_perfmon_cntl) \
+ ((cp_perfmon_cntl & CP_PERFMON_CNTL_PERFMON_ENABLE_MODE_MASK) >> CP_PERFMON_CNTL_PERFMON_ENABLE_MODE_SHIFT)
+
+#define CP_PERFMON_CNTL_SET_PERFMON_STATE(cp_perfmon_cntl_reg, perfmon_state) \
+ cp_perfmon_cntl_reg = (cp_perfmon_cntl_reg & ~CP_PERFMON_CNTL_PERFMON_STATE_MASK) | (perfmon_state << CP_PERFMON_CNTL_PERFMON_STATE_SHIFT)
+#define CP_PERFMON_CNTL_SET_PERFMON_ENABLE_MODE(cp_perfmon_cntl_reg, perfmon_enable_mode) \
+ cp_perfmon_cntl_reg = (cp_perfmon_cntl_reg & ~CP_PERFMON_CNTL_PERFMON_ENABLE_MODE_MASK) | (perfmon_enable_mode << CP_PERFMON_CNTL_PERFMON_ENABLE_MODE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_perfmon_cntl_t {
+ unsigned int perfmon_state : CP_PERFMON_CNTL_PERFMON_STATE_SIZE;
+ unsigned int : 4;
+ unsigned int perfmon_enable_mode : CP_PERFMON_CNTL_PERFMON_ENABLE_MODE_SIZE;
+ unsigned int : 22;
+ } cp_perfmon_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_perfmon_cntl_t {
+ unsigned int : 22;
+ unsigned int perfmon_enable_mode : CP_PERFMON_CNTL_PERFMON_ENABLE_MODE_SIZE;
+ unsigned int : 4;
+ unsigned int perfmon_state : CP_PERFMON_CNTL_PERFMON_STATE_SIZE;
+ } cp_perfmon_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_perfmon_cntl_t f;
+} cp_perfmon_cntl_u;
+
+
+/*
+ * CP_PERFCOUNTER_SELECT struct
+ */
+
+#define CP_PERFCOUNTER_SELECT_PERFCOUNT_SEL_SIZE 6
+
+#define CP_PERFCOUNTER_SELECT_PERFCOUNT_SEL_SHIFT 0
+
+#define CP_PERFCOUNTER_SELECT_PERFCOUNT_SEL_MASK 0x0000003f
+
+#define CP_PERFCOUNTER_SELECT_MASK \
+ (CP_PERFCOUNTER_SELECT_PERFCOUNT_SEL_MASK)
+
+#define CP_PERFCOUNTER_SELECT(perfcount_sel) \
+ ((perfcount_sel << CP_PERFCOUNTER_SELECT_PERFCOUNT_SEL_SHIFT))
+
+#define CP_PERFCOUNTER_SELECT_GET_PERFCOUNT_SEL(cp_perfcounter_select) \
+ ((cp_perfcounter_select & CP_PERFCOUNTER_SELECT_PERFCOUNT_SEL_MASK) >> CP_PERFCOUNTER_SELECT_PERFCOUNT_SEL_SHIFT)
+
+#define CP_PERFCOUNTER_SELECT_SET_PERFCOUNT_SEL(cp_perfcounter_select_reg, perfcount_sel) \
+ cp_perfcounter_select_reg = (cp_perfcounter_select_reg & ~CP_PERFCOUNTER_SELECT_PERFCOUNT_SEL_MASK) | (perfcount_sel << CP_PERFCOUNTER_SELECT_PERFCOUNT_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_perfcounter_select_t {
+ unsigned int perfcount_sel : CP_PERFCOUNTER_SELECT_PERFCOUNT_SEL_SIZE;
+ unsigned int : 26;
+ } cp_perfcounter_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_perfcounter_select_t {
+ unsigned int : 26;
+ unsigned int perfcount_sel : CP_PERFCOUNTER_SELECT_PERFCOUNT_SEL_SIZE;
+ } cp_perfcounter_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_perfcounter_select_t f;
+} cp_perfcounter_select_u;
+
+
+/*
+ * CP_PERFCOUNTER_LO struct
+ */
+
+#define CP_PERFCOUNTER_LO_PERFCOUNT_LO_SIZE 32
+
+#define CP_PERFCOUNTER_LO_PERFCOUNT_LO_SHIFT 0
+
+#define CP_PERFCOUNTER_LO_PERFCOUNT_LO_MASK 0xffffffff
+
+#define CP_PERFCOUNTER_LO_MASK \
+ (CP_PERFCOUNTER_LO_PERFCOUNT_LO_MASK)
+
+#define CP_PERFCOUNTER_LO(perfcount_lo) \
+ ((perfcount_lo << CP_PERFCOUNTER_LO_PERFCOUNT_LO_SHIFT))
+
+#define CP_PERFCOUNTER_LO_GET_PERFCOUNT_LO(cp_perfcounter_lo) \
+ ((cp_perfcounter_lo & CP_PERFCOUNTER_LO_PERFCOUNT_LO_MASK) >> CP_PERFCOUNTER_LO_PERFCOUNT_LO_SHIFT)
+
+#define CP_PERFCOUNTER_LO_SET_PERFCOUNT_LO(cp_perfcounter_lo_reg, perfcount_lo) \
+ cp_perfcounter_lo_reg = (cp_perfcounter_lo_reg & ~CP_PERFCOUNTER_LO_PERFCOUNT_LO_MASK) | (perfcount_lo << CP_PERFCOUNTER_LO_PERFCOUNT_LO_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_perfcounter_lo_t {
+ unsigned int perfcount_lo : CP_PERFCOUNTER_LO_PERFCOUNT_LO_SIZE;
+ } cp_perfcounter_lo_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_perfcounter_lo_t {
+ unsigned int perfcount_lo : CP_PERFCOUNTER_LO_PERFCOUNT_LO_SIZE;
+ } cp_perfcounter_lo_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_perfcounter_lo_t f;
+} cp_perfcounter_lo_u;
+
+
+/*
+ * CP_PERFCOUNTER_HI struct
+ */
+
+#define CP_PERFCOUNTER_HI_PERFCOUNT_HI_SIZE 16
+
+#define CP_PERFCOUNTER_HI_PERFCOUNT_HI_SHIFT 0
+
+#define CP_PERFCOUNTER_HI_PERFCOUNT_HI_MASK 0x0000ffff
+
+#define CP_PERFCOUNTER_HI_MASK \
+ (CP_PERFCOUNTER_HI_PERFCOUNT_HI_MASK)
+
+#define CP_PERFCOUNTER_HI(perfcount_hi) \
+ ((perfcount_hi << CP_PERFCOUNTER_HI_PERFCOUNT_HI_SHIFT))
+
+#define CP_PERFCOUNTER_HI_GET_PERFCOUNT_HI(cp_perfcounter_hi) \
+ ((cp_perfcounter_hi & CP_PERFCOUNTER_HI_PERFCOUNT_HI_MASK) >> CP_PERFCOUNTER_HI_PERFCOUNT_HI_SHIFT)
+
+#define CP_PERFCOUNTER_HI_SET_PERFCOUNT_HI(cp_perfcounter_hi_reg, perfcount_hi) \
+ cp_perfcounter_hi_reg = (cp_perfcounter_hi_reg & ~CP_PERFCOUNTER_HI_PERFCOUNT_HI_MASK) | (perfcount_hi << CP_PERFCOUNTER_HI_PERFCOUNT_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_perfcounter_hi_t {
+ unsigned int perfcount_hi : CP_PERFCOUNTER_HI_PERFCOUNT_HI_SIZE;
+ unsigned int : 16;
+ } cp_perfcounter_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_perfcounter_hi_t {
+ unsigned int : 16;
+ unsigned int perfcount_hi : CP_PERFCOUNTER_HI_PERFCOUNT_HI_SIZE;
+ } cp_perfcounter_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_perfcounter_hi_t f;
+} cp_perfcounter_hi_u;
+
+
+/*
+ * CP_BIN_MASK_LO struct
+ */
+
+#define CP_BIN_MASK_LO_BIN_MASK_LO_SIZE 32
+
+#define CP_BIN_MASK_LO_BIN_MASK_LO_SHIFT 0
+
+#define CP_BIN_MASK_LO_BIN_MASK_LO_MASK 0xffffffff
+
+#define CP_BIN_MASK_LO_MASK \
+ (CP_BIN_MASK_LO_BIN_MASK_LO_MASK)
+
+#define CP_BIN_MASK_LO(bin_mask_lo) \
+ ((bin_mask_lo << CP_BIN_MASK_LO_BIN_MASK_LO_SHIFT))
+
+#define CP_BIN_MASK_LO_GET_BIN_MASK_LO(cp_bin_mask_lo) \
+ ((cp_bin_mask_lo & CP_BIN_MASK_LO_BIN_MASK_LO_MASK) >> CP_BIN_MASK_LO_BIN_MASK_LO_SHIFT)
+
+#define CP_BIN_MASK_LO_SET_BIN_MASK_LO(cp_bin_mask_lo_reg, bin_mask_lo) \
+ cp_bin_mask_lo_reg = (cp_bin_mask_lo_reg & ~CP_BIN_MASK_LO_BIN_MASK_LO_MASK) | (bin_mask_lo << CP_BIN_MASK_LO_BIN_MASK_LO_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_bin_mask_lo_t {
+ unsigned int bin_mask_lo : CP_BIN_MASK_LO_BIN_MASK_LO_SIZE;
+ } cp_bin_mask_lo_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_bin_mask_lo_t {
+ unsigned int bin_mask_lo : CP_BIN_MASK_LO_BIN_MASK_LO_SIZE;
+ } cp_bin_mask_lo_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_bin_mask_lo_t f;
+} cp_bin_mask_lo_u;
+
+
+/*
+ * CP_BIN_MASK_HI struct
+ */
+
+#define CP_BIN_MASK_HI_BIN_MASK_HI_SIZE 32
+
+#define CP_BIN_MASK_HI_BIN_MASK_HI_SHIFT 0
+
+#define CP_BIN_MASK_HI_BIN_MASK_HI_MASK 0xffffffff
+
+#define CP_BIN_MASK_HI_MASK \
+ (CP_BIN_MASK_HI_BIN_MASK_HI_MASK)
+
+#define CP_BIN_MASK_HI(bin_mask_hi) \
+ ((bin_mask_hi << CP_BIN_MASK_HI_BIN_MASK_HI_SHIFT))
+
+#define CP_BIN_MASK_HI_GET_BIN_MASK_HI(cp_bin_mask_hi) \
+ ((cp_bin_mask_hi & CP_BIN_MASK_HI_BIN_MASK_HI_MASK) >> CP_BIN_MASK_HI_BIN_MASK_HI_SHIFT)
+
+#define CP_BIN_MASK_HI_SET_BIN_MASK_HI(cp_bin_mask_hi_reg, bin_mask_hi) \
+ cp_bin_mask_hi_reg = (cp_bin_mask_hi_reg & ~CP_BIN_MASK_HI_BIN_MASK_HI_MASK) | (bin_mask_hi << CP_BIN_MASK_HI_BIN_MASK_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_bin_mask_hi_t {
+ unsigned int bin_mask_hi : CP_BIN_MASK_HI_BIN_MASK_HI_SIZE;
+ } cp_bin_mask_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_bin_mask_hi_t {
+ unsigned int bin_mask_hi : CP_BIN_MASK_HI_BIN_MASK_HI_SIZE;
+ } cp_bin_mask_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_bin_mask_hi_t f;
+} cp_bin_mask_hi_u;
+
+
+/*
+ * CP_BIN_SELECT_LO struct
+ */
+
+#define CP_BIN_SELECT_LO_BIN_SELECT_LO_SIZE 32
+
+#define CP_BIN_SELECT_LO_BIN_SELECT_LO_SHIFT 0
+
+#define CP_BIN_SELECT_LO_BIN_SELECT_LO_MASK 0xffffffff
+
+#define CP_BIN_SELECT_LO_MASK \
+ (CP_BIN_SELECT_LO_BIN_SELECT_LO_MASK)
+
+#define CP_BIN_SELECT_LO(bin_select_lo) \
+ ((bin_select_lo << CP_BIN_SELECT_LO_BIN_SELECT_LO_SHIFT))
+
+#define CP_BIN_SELECT_LO_GET_BIN_SELECT_LO(cp_bin_select_lo) \
+ ((cp_bin_select_lo & CP_BIN_SELECT_LO_BIN_SELECT_LO_MASK) >> CP_BIN_SELECT_LO_BIN_SELECT_LO_SHIFT)
+
+#define CP_BIN_SELECT_LO_SET_BIN_SELECT_LO(cp_bin_select_lo_reg, bin_select_lo) \
+ cp_bin_select_lo_reg = (cp_bin_select_lo_reg & ~CP_BIN_SELECT_LO_BIN_SELECT_LO_MASK) | (bin_select_lo << CP_BIN_SELECT_LO_BIN_SELECT_LO_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_bin_select_lo_t {
+ unsigned int bin_select_lo : CP_BIN_SELECT_LO_BIN_SELECT_LO_SIZE;
+ } cp_bin_select_lo_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_bin_select_lo_t {
+ unsigned int bin_select_lo : CP_BIN_SELECT_LO_BIN_SELECT_LO_SIZE;
+ } cp_bin_select_lo_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_bin_select_lo_t f;
+} cp_bin_select_lo_u;
+
+
+/*
+ * CP_BIN_SELECT_HI struct
+ */
+
+#define CP_BIN_SELECT_HI_BIN_SELECT_HI_SIZE 32
+
+#define CP_BIN_SELECT_HI_BIN_SELECT_HI_SHIFT 0
+
+#define CP_BIN_SELECT_HI_BIN_SELECT_HI_MASK 0xffffffff
+
+#define CP_BIN_SELECT_HI_MASK \
+ (CP_BIN_SELECT_HI_BIN_SELECT_HI_MASK)
+
+#define CP_BIN_SELECT_HI(bin_select_hi) \
+ ((bin_select_hi << CP_BIN_SELECT_HI_BIN_SELECT_HI_SHIFT))
+
+#define CP_BIN_SELECT_HI_GET_BIN_SELECT_HI(cp_bin_select_hi) \
+ ((cp_bin_select_hi & CP_BIN_SELECT_HI_BIN_SELECT_HI_MASK) >> CP_BIN_SELECT_HI_BIN_SELECT_HI_SHIFT)
+
+#define CP_BIN_SELECT_HI_SET_BIN_SELECT_HI(cp_bin_select_hi_reg, bin_select_hi) \
+ cp_bin_select_hi_reg = (cp_bin_select_hi_reg & ~CP_BIN_SELECT_HI_BIN_SELECT_HI_MASK) | (bin_select_hi << CP_BIN_SELECT_HI_BIN_SELECT_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_bin_select_hi_t {
+ unsigned int bin_select_hi : CP_BIN_SELECT_HI_BIN_SELECT_HI_SIZE;
+ } cp_bin_select_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_bin_select_hi_t {
+ unsigned int bin_select_hi : CP_BIN_SELECT_HI_BIN_SELECT_HI_SIZE;
+ } cp_bin_select_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_bin_select_hi_t f;
+} cp_bin_select_hi_u;
+
+
+/*
+ * CP_NV_FLAGS_0 struct
+ */
+
+#define CP_NV_FLAGS_0_DISCARD_0_SIZE 1
+#define CP_NV_FLAGS_0_END_RCVD_0_SIZE 1
+#define CP_NV_FLAGS_0_DISCARD_1_SIZE 1
+#define CP_NV_FLAGS_0_END_RCVD_1_SIZE 1
+#define CP_NV_FLAGS_0_DISCARD_2_SIZE 1
+#define CP_NV_FLAGS_0_END_RCVD_2_SIZE 1
+#define CP_NV_FLAGS_0_DISCARD_3_SIZE 1
+#define CP_NV_FLAGS_0_END_RCVD_3_SIZE 1
+#define CP_NV_FLAGS_0_DISCARD_4_SIZE 1
+#define CP_NV_FLAGS_0_END_RCVD_4_SIZE 1
+#define CP_NV_FLAGS_0_DISCARD_5_SIZE 1
+#define CP_NV_FLAGS_0_END_RCVD_5_SIZE 1
+#define CP_NV_FLAGS_0_DISCARD_6_SIZE 1
+#define CP_NV_FLAGS_0_END_RCVD_6_SIZE 1
+#define CP_NV_FLAGS_0_DISCARD_7_SIZE 1
+#define CP_NV_FLAGS_0_END_RCVD_7_SIZE 1
+#define CP_NV_FLAGS_0_DISCARD_8_SIZE 1
+#define CP_NV_FLAGS_0_END_RCVD_8_SIZE 1
+#define CP_NV_FLAGS_0_DISCARD_9_SIZE 1
+#define CP_NV_FLAGS_0_END_RCVD_9_SIZE 1
+#define CP_NV_FLAGS_0_DISCARD_10_SIZE 1
+#define CP_NV_FLAGS_0_END_RCVD_10_SIZE 1
+#define CP_NV_FLAGS_0_DISCARD_11_SIZE 1
+#define CP_NV_FLAGS_0_END_RCVD_11_SIZE 1
+#define CP_NV_FLAGS_0_DISCARD_12_SIZE 1
+#define CP_NV_FLAGS_0_END_RCVD_12_SIZE 1
+#define CP_NV_FLAGS_0_DISCARD_13_SIZE 1
+#define CP_NV_FLAGS_0_END_RCVD_13_SIZE 1
+#define CP_NV_FLAGS_0_DISCARD_14_SIZE 1
+#define CP_NV_FLAGS_0_END_RCVD_14_SIZE 1
+#define CP_NV_FLAGS_0_DISCARD_15_SIZE 1
+#define CP_NV_FLAGS_0_END_RCVD_15_SIZE 1
+
+#define CP_NV_FLAGS_0_DISCARD_0_SHIFT 0
+#define CP_NV_FLAGS_0_END_RCVD_0_SHIFT 1
+#define CP_NV_FLAGS_0_DISCARD_1_SHIFT 2
+#define CP_NV_FLAGS_0_END_RCVD_1_SHIFT 3
+#define CP_NV_FLAGS_0_DISCARD_2_SHIFT 4
+#define CP_NV_FLAGS_0_END_RCVD_2_SHIFT 5
+#define CP_NV_FLAGS_0_DISCARD_3_SHIFT 6
+#define CP_NV_FLAGS_0_END_RCVD_3_SHIFT 7
+#define CP_NV_FLAGS_0_DISCARD_4_SHIFT 8
+#define CP_NV_FLAGS_0_END_RCVD_4_SHIFT 9
+#define CP_NV_FLAGS_0_DISCARD_5_SHIFT 10
+#define CP_NV_FLAGS_0_END_RCVD_5_SHIFT 11
+#define CP_NV_FLAGS_0_DISCARD_6_SHIFT 12
+#define CP_NV_FLAGS_0_END_RCVD_6_SHIFT 13
+#define CP_NV_FLAGS_0_DISCARD_7_SHIFT 14
+#define CP_NV_FLAGS_0_END_RCVD_7_SHIFT 15
+#define CP_NV_FLAGS_0_DISCARD_8_SHIFT 16
+#define CP_NV_FLAGS_0_END_RCVD_8_SHIFT 17
+#define CP_NV_FLAGS_0_DISCARD_9_SHIFT 18
+#define CP_NV_FLAGS_0_END_RCVD_9_SHIFT 19
+#define CP_NV_FLAGS_0_DISCARD_10_SHIFT 20
+#define CP_NV_FLAGS_0_END_RCVD_10_SHIFT 21
+#define CP_NV_FLAGS_0_DISCARD_11_SHIFT 22
+#define CP_NV_FLAGS_0_END_RCVD_11_SHIFT 23
+#define CP_NV_FLAGS_0_DISCARD_12_SHIFT 24
+#define CP_NV_FLAGS_0_END_RCVD_12_SHIFT 25
+#define CP_NV_FLAGS_0_DISCARD_13_SHIFT 26
+#define CP_NV_FLAGS_0_END_RCVD_13_SHIFT 27
+#define CP_NV_FLAGS_0_DISCARD_14_SHIFT 28
+#define CP_NV_FLAGS_0_END_RCVD_14_SHIFT 29
+#define CP_NV_FLAGS_0_DISCARD_15_SHIFT 30
+#define CP_NV_FLAGS_0_END_RCVD_15_SHIFT 31
+
+#define CP_NV_FLAGS_0_DISCARD_0_MASK 0x00000001
+#define CP_NV_FLAGS_0_END_RCVD_0_MASK 0x00000002
+#define CP_NV_FLAGS_0_DISCARD_1_MASK 0x00000004
+#define CP_NV_FLAGS_0_END_RCVD_1_MASK 0x00000008
+#define CP_NV_FLAGS_0_DISCARD_2_MASK 0x00000010
+#define CP_NV_FLAGS_0_END_RCVD_2_MASK 0x00000020
+#define CP_NV_FLAGS_0_DISCARD_3_MASK 0x00000040
+#define CP_NV_FLAGS_0_END_RCVD_3_MASK 0x00000080
+#define CP_NV_FLAGS_0_DISCARD_4_MASK 0x00000100
+#define CP_NV_FLAGS_0_END_RCVD_4_MASK 0x00000200
+#define CP_NV_FLAGS_0_DISCARD_5_MASK 0x00000400
+#define CP_NV_FLAGS_0_END_RCVD_5_MASK 0x00000800
+#define CP_NV_FLAGS_0_DISCARD_6_MASK 0x00001000
+#define CP_NV_FLAGS_0_END_RCVD_6_MASK 0x00002000
+#define CP_NV_FLAGS_0_DISCARD_7_MASK 0x00004000
+#define CP_NV_FLAGS_0_END_RCVD_7_MASK 0x00008000
+#define CP_NV_FLAGS_0_DISCARD_8_MASK 0x00010000
+#define CP_NV_FLAGS_0_END_RCVD_8_MASK 0x00020000
+#define CP_NV_FLAGS_0_DISCARD_9_MASK 0x00040000
+#define CP_NV_FLAGS_0_END_RCVD_9_MASK 0x00080000
+#define CP_NV_FLAGS_0_DISCARD_10_MASK 0x00100000
+#define CP_NV_FLAGS_0_END_RCVD_10_MASK 0x00200000
+#define CP_NV_FLAGS_0_DISCARD_11_MASK 0x00400000
+#define CP_NV_FLAGS_0_END_RCVD_11_MASK 0x00800000
+#define CP_NV_FLAGS_0_DISCARD_12_MASK 0x01000000
+#define CP_NV_FLAGS_0_END_RCVD_12_MASK 0x02000000
+#define CP_NV_FLAGS_0_DISCARD_13_MASK 0x04000000
+#define CP_NV_FLAGS_0_END_RCVD_13_MASK 0x08000000
+#define CP_NV_FLAGS_0_DISCARD_14_MASK 0x10000000
+#define CP_NV_FLAGS_0_END_RCVD_14_MASK 0x20000000
+#define CP_NV_FLAGS_0_DISCARD_15_MASK 0x40000000
+#define CP_NV_FLAGS_0_END_RCVD_15_MASK 0x80000000
+
+#define CP_NV_FLAGS_0_MASK \
+ (CP_NV_FLAGS_0_DISCARD_0_MASK | \
+ CP_NV_FLAGS_0_END_RCVD_0_MASK | \
+ CP_NV_FLAGS_0_DISCARD_1_MASK | \
+ CP_NV_FLAGS_0_END_RCVD_1_MASK | \
+ CP_NV_FLAGS_0_DISCARD_2_MASK | \
+ CP_NV_FLAGS_0_END_RCVD_2_MASK | \
+ CP_NV_FLAGS_0_DISCARD_3_MASK | \
+ CP_NV_FLAGS_0_END_RCVD_3_MASK | \
+ CP_NV_FLAGS_0_DISCARD_4_MASK | \
+ CP_NV_FLAGS_0_END_RCVD_4_MASK | \
+ CP_NV_FLAGS_0_DISCARD_5_MASK | \
+ CP_NV_FLAGS_0_END_RCVD_5_MASK | \
+ CP_NV_FLAGS_0_DISCARD_6_MASK | \
+ CP_NV_FLAGS_0_END_RCVD_6_MASK | \
+ CP_NV_FLAGS_0_DISCARD_7_MASK | \
+ CP_NV_FLAGS_0_END_RCVD_7_MASK | \
+ CP_NV_FLAGS_0_DISCARD_8_MASK | \
+ CP_NV_FLAGS_0_END_RCVD_8_MASK | \
+ CP_NV_FLAGS_0_DISCARD_9_MASK | \
+ CP_NV_FLAGS_0_END_RCVD_9_MASK | \
+ CP_NV_FLAGS_0_DISCARD_10_MASK | \
+ CP_NV_FLAGS_0_END_RCVD_10_MASK | \
+ CP_NV_FLAGS_0_DISCARD_11_MASK | \
+ CP_NV_FLAGS_0_END_RCVD_11_MASK | \
+ CP_NV_FLAGS_0_DISCARD_12_MASK | \
+ CP_NV_FLAGS_0_END_RCVD_12_MASK | \
+ CP_NV_FLAGS_0_DISCARD_13_MASK | \
+ CP_NV_FLAGS_0_END_RCVD_13_MASK | \
+ CP_NV_FLAGS_0_DISCARD_14_MASK | \
+ CP_NV_FLAGS_0_END_RCVD_14_MASK | \
+ CP_NV_FLAGS_0_DISCARD_15_MASK | \
+ CP_NV_FLAGS_0_END_RCVD_15_MASK)
+
+#define CP_NV_FLAGS_0(discard_0, end_rcvd_0, discard_1, end_rcvd_1, discard_2, end_rcvd_2, discard_3, end_rcvd_3, discard_4, end_rcvd_4, discard_5, end_rcvd_5, discard_6, end_rcvd_6, discard_7, end_rcvd_7, discard_8, end_rcvd_8, discard_9, end_rcvd_9, discard_10, end_rcvd_10, discard_11, end_rcvd_11, discard_12, end_rcvd_12, discard_13, end_rcvd_13, discard_14, end_rcvd_14, discard_15, end_rcvd_15) \
+ ((discard_0 << CP_NV_FLAGS_0_DISCARD_0_SHIFT) | \
+ (end_rcvd_0 << CP_NV_FLAGS_0_END_RCVD_0_SHIFT) | \
+ (discard_1 << CP_NV_FLAGS_0_DISCARD_1_SHIFT) | \
+ (end_rcvd_1 << CP_NV_FLAGS_0_END_RCVD_1_SHIFT) | \
+ (discard_2 << CP_NV_FLAGS_0_DISCARD_2_SHIFT) | \
+ (end_rcvd_2 << CP_NV_FLAGS_0_END_RCVD_2_SHIFT) | \
+ (discard_3 << CP_NV_FLAGS_0_DISCARD_3_SHIFT) | \
+ (end_rcvd_3 << CP_NV_FLAGS_0_END_RCVD_3_SHIFT) | \
+ (discard_4 << CP_NV_FLAGS_0_DISCARD_4_SHIFT) | \
+ (end_rcvd_4 << CP_NV_FLAGS_0_END_RCVD_4_SHIFT) | \
+ (discard_5 << CP_NV_FLAGS_0_DISCARD_5_SHIFT) | \
+ (end_rcvd_5 << CP_NV_FLAGS_0_END_RCVD_5_SHIFT) | \
+ (discard_6 << CP_NV_FLAGS_0_DISCARD_6_SHIFT) | \
+ (end_rcvd_6 << CP_NV_FLAGS_0_END_RCVD_6_SHIFT) | \
+ (discard_7 << CP_NV_FLAGS_0_DISCARD_7_SHIFT) | \
+ (end_rcvd_7 << CP_NV_FLAGS_0_END_RCVD_7_SHIFT) | \
+ (discard_8 << CP_NV_FLAGS_0_DISCARD_8_SHIFT) | \
+ (end_rcvd_8 << CP_NV_FLAGS_0_END_RCVD_8_SHIFT) | \
+ (discard_9 << CP_NV_FLAGS_0_DISCARD_9_SHIFT) | \
+ (end_rcvd_9 << CP_NV_FLAGS_0_END_RCVD_9_SHIFT) | \
+ (discard_10 << CP_NV_FLAGS_0_DISCARD_10_SHIFT) | \
+ (end_rcvd_10 << CP_NV_FLAGS_0_END_RCVD_10_SHIFT) | \
+ (discard_11 << CP_NV_FLAGS_0_DISCARD_11_SHIFT) | \
+ (end_rcvd_11 << CP_NV_FLAGS_0_END_RCVD_11_SHIFT) | \
+ (discard_12 << CP_NV_FLAGS_0_DISCARD_12_SHIFT) | \
+ (end_rcvd_12 << CP_NV_FLAGS_0_END_RCVD_12_SHIFT) | \
+ (discard_13 << CP_NV_FLAGS_0_DISCARD_13_SHIFT) | \
+ (end_rcvd_13 << CP_NV_FLAGS_0_END_RCVD_13_SHIFT) | \
+ (discard_14 << CP_NV_FLAGS_0_DISCARD_14_SHIFT) | \
+ (end_rcvd_14 << CP_NV_FLAGS_0_END_RCVD_14_SHIFT) | \
+ (discard_15 << CP_NV_FLAGS_0_DISCARD_15_SHIFT) | \
+ (end_rcvd_15 << CP_NV_FLAGS_0_END_RCVD_15_SHIFT))
+
+#define CP_NV_FLAGS_0_GET_DISCARD_0(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_DISCARD_0_MASK) >> CP_NV_FLAGS_0_DISCARD_0_SHIFT)
+#define CP_NV_FLAGS_0_GET_END_RCVD_0(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_END_RCVD_0_MASK) >> CP_NV_FLAGS_0_END_RCVD_0_SHIFT)
+#define CP_NV_FLAGS_0_GET_DISCARD_1(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_DISCARD_1_MASK) >> CP_NV_FLAGS_0_DISCARD_1_SHIFT)
+#define CP_NV_FLAGS_0_GET_END_RCVD_1(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_END_RCVD_1_MASK) >> CP_NV_FLAGS_0_END_RCVD_1_SHIFT)
+#define CP_NV_FLAGS_0_GET_DISCARD_2(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_DISCARD_2_MASK) >> CP_NV_FLAGS_0_DISCARD_2_SHIFT)
+#define CP_NV_FLAGS_0_GET_END_RCVD_2(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_END_RCVD_2_MASK) >> CP_NV_FLAGS_0_END_RCVD_2_SHIFT)
+#define CP_NV_FLAGS_0_GET_DISCARD_3(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_DISCARD_3_MASK) >> CP_NV_FLAGS_0_DISCARD_3_SHIFT)
+#define CP_NV_FLAGS_0_GET_END_RCVD_3(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_END_RCVD_3_MASK) >> CP_NV_FLAGS_0_END_RCVD_3_SHIFT)
+#define CP_NV_FLAGS_0_GET_DISCARD_4(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_DISCARD_4_MASK) >> CP_NV_FLAGS_0_DISCARD_4_SHIFT)
+#define CP_NV_FLAGS_0_GET_END_RCVD_4(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_END_RCVD_4_MASK) >> CP_NV_FLAGS_0_END_RCVD_4_SHIFT)
+#define CP_NV_FLAGS_0_GET_DISCARD_5(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_DISCARD_5_MASK) >> CP_NV_FLAGS_0_DISCARD_5_SHIFT)
+#define CP_NV_FLAGS_0_GET_END_RCVD_5(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_END_RCVD_5_MASK) >> CP_NV_FLAGS_0_END_RCVD_5_SHIFT)
+#define CP_NV_FLAGS_0_GET_DISCARD_6(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_DISCARD_6_MASK) >> CP_NV_FLAGS_0_DISCARD_6_SHIFT)
+#define CP_NV_FLAGS_0_GET_END_RCVD_6(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_END_RCVD_6_MASK) >> CP_NV_FLAGS_0_END_RCVD_6_SHIFT)
+#define CP_NV_FLAGS_0_GET_DISCARD_7(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_DISCARD_7_MASK) >> CP_NV_FLAGS_0_DISCARD_7_SHIFT)
+#define CP_NV_FLAGS_0_GET_END_RCVD_7(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_END_RCVD_7_MASK) >> CP_NV_FLAGS_0_END_RCVD_7_SHIFT)
+#define CP_NV_FLAGS_0_GET_DISCARD_8(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_DISCARD_8_MASK) >> CP_NV_FLAGS_0_DISCARD_8_SHIFT)
+#define CP_NV_FLAGS_0_GET_END_RCVD_8(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_END_RCVD_8_MASK) >> CP_NV_FLAGS_0_END_RCVD_8_SHIFT)
+#define CP_NV_FLAGS_0_GET_DISCARD_9(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_DISCARD_9_MASK) >> CP_NV_FLAGS_0_DISCARD_9_SHIFT)
+#define CP_NV_FLAGS_0_GET_END_RCVD_9(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_END_RCVD_9_MASK) >> CP_NV_FLAGS_0_END_RCVD_9_SHIFT)
+#define CP_NV_FLAGS_0_GET_DISCARD_10(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_DISCARD_10_MASK) >> CP_NV_FLAGS_0_DISCARD_10_SHIFT)
+#define CP_NV_FLAGS_0_GET_END_RCVD_10(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_END_RCVD_10_MASK) >> CP_NV_FLAGS_0_END_RCVD_10_SHIFT)
+#define CP_NV_FLAGS_0_GET_DISCARD_11(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_DISCARD_11_MASK) >> CP_NV_FLAGS_0_DISCARD_11_SHIFT)
+#define CP_NV_FLAGS_0_GET_END_RCVD_11(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_END_RCVD_11_MASK) >> CP_NV_FLAGS_0_END_RCVD_11_SHIFT)
+#define CP_NV_FLAGS_0_GET_DISCARD_12(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_DISCARD_12_MASK) >> CP_NV_FLAGS_0_DISCARD_12_SHIFT)
+#define CP_NV_FLAGS_0_GET_END_RCVD_12(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_END_RCVD_12_MASK) >> CP_NV_FLAGS_0_END_RCVD_12_SHIFT)
+#define CP_NV_FLAGS_0_GET_DISCARD_13(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_DISCARD_13_MASK) >> CP_NV_FLAGS_0_DISCARD_13_SHIFT)
+#define CP_NV_FLAGS_0_GET_END_RCVD_13(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_END_RCVD_13_MASK) >> CP_NV_FLAGS_0_END_RCVD_13_SHIFT)
+#define CP_NV_FLAGS_0_GET_DISCARD_14(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_DISCARD_14_MASK) >> CP_NV_FLAGS_0_DISCARD_14_SHIFT)
+#define CP_NV_FLAGS_0_GET_END_RCVD_14(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_END_RCVD_14_MASK) >> CP_NV_FLAGS_0_END_RCVD_14_SHIFT)
+#define CP_NV_FLAGS_0_GET_DISCARD_15(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_DISCARD_15_MASK) >> CP_NV_FLAGS_0_DISCARD_15_SHIFT)
+#define CP_NV_FLAGS_0_GET_END_RCVD_15(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_END_RCVD_15_MASK) >> CP_NV_FLAGS_0_END_RCVD_15_SHIFT)
+
+#define CP_NV_FLAGS_0_SET_DISCARD_0(cp_nv_flags_0_reg, discard_0) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_DISCARD_0_MASK) | (discard_0 << CP_NV_FLAGS_0_DISCARD_0_SHIFT)
+#define CP_NV_FLAGS_0_SET_END_RCVD_0(cp_nv_flags_0_reg, end_rcvd_0) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_END_RCVD_0_MASK) | (end_rcvd_0 << CP_NV_FLAGS_0_END_RCVD_0_SHIFT)
+#define CP_NV_FLAGS_0_SET_DISCARD_1(cp_nv_flags_0_reg, discard_1) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_DISCARD_1_MASK) | (discard_1 << CP_NV_FLAGS_0_DISCARD_1_SHIFT)
+#define CP_NV_FLAGS_0_SET_END_RCVD_1(cp_nv_flags_0_reg, end_rcvd_1) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_END_RCVD_1_MASK) | (end_rcvd_1 << CP_NV_FLAGS_0_END_RCVD_1_SHIFT)
+#define CP_NV_FLAGS_0_SET_DISCARD_2(cp_nv_flags_0_reg, discard_2) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_DISCARD_2_MASK) | (discard_2 << CP_NV_FLAGS_0_DISCARD_2_SHIFT)
+#define CP_NV_FLAGS_0_SET_END_RCVD_2(cp_nv_flags_0_reg, end_rcvd_2) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_END_RCVD_2_MASK) | (end_rcvd_2 << CP_NV_FLAGS_0_END_RCVD_2_SHIFT)
+#define CP_NV_FLAGS_0_SET_DISCARD_3(cp_nv_flags_0_reg, discard_3) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_DISCARD_3_MASK) | (discard_3 << CP_NV_FLAGS_0_DISCARD_3_SHIFT)
+#define CP_NV_FLAGS_0_SET_END_RCVD_3(cp_nv_flags_0_reg, end_rcvd_3) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_END_RCVD_3_MASK) | (end_rcvd_3 << CP_NV_FLAGS_0_END_RCVD_3_SHIFT)
+#define CP_NV_FLAGS_0_SET_DISCARD_4(cp_nv_flags_0_reg, discard_4) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_DISCARD_4_MASK) | (discard_4 << CP_NV_FLAGS_0_DISCARD_4_SHIFT)
+#define CP_NV_FLAGS_0_SET_END_RCVD_4(cp_nv_flags_0_reg, end_rcvd_4) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_END_RCVD_4_MASK) | (end_rcvd_4 << CP_NV_FLAGS_0_END_RCVD_4_SHIFT)
+#define CP_NV_FLAGS_0_SET_DISCARD_5(cp_nv_flags_0_reg, discard_5) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_DISCARD_5_MASK) | (discard_5 << CP_NV_FLAGS_0_DISCARD_5_SHIFT)
+#define CP_NV_FLAGS_0_SET_END_RCVD_5(cp_nv_flags_0_reg, end_rcvd_5) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_END_RCVD_5_MASK) | (end_rcvd_5 << CP_NV_FLAGS_0_END_RCVD_5_SHIFT)
+#define CP_NV_FLAGS_0_SET_DISCARD_6(cp_nv_flags_0_reg, discard_6) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_DISCARD_6_MASK) | (discard_6 << CP_NV_FLAGS_0_DISCARD_6_SHIFT)
+#define CP_NV_FLAGS_0_SET_END_RCVD_6(cp_nv_flags_0_reg, end_rcvd_6) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_END_RCVD_6_MASK) | (end_rcvd_6 << CP_NV_FLAGS_0_END_RCVD_6_SHIFT)
+#define CP_NV_FLAGS_0_SET_DISCARD_7(cp_nv_flags_0_reg, discard_7) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_DISCARD_7_MASK) | (discard_7 << CP_NV_FLAGS_0_DISCARD_7_SHIFT)
+#define CP_NV_FLAGS_0_SET_END_RCVD_7(cp_nv_flags_0_reg, end_rcvd_7) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_END_RCVD_7_MASK) | (end_rcvd_7 << CP_NV_FLAGS_0_END_RCVD_7_SHIFT)
+#define CP_NV_FLAGS_0_SET_DISCARD_8(cp_nv_flags_0_reg, discard_8) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_DISCARD_8_MASK) | (discard_8 << CP_NV_FLAGS_0_DISCARD_8_SHIFT)
+#define CP_NV_FLAGS_0_SET_END_RCVD_8(cp_nv_flags_0_reg, end_rcvd_8) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_END_RCVD_8_MASK) | (end_rcvd_8 << CP_NV_FLAGS_0_END_RCVD_8_SHIFT)
+#define CP_NV_FLAGS_0_SET_DISCARD_9(cp_nv_flags_0_reg, discard_9) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_DISCARD_9_MASK) | (discard_9 << CP_NV_FLAGS_0_DISCARD_9_SHIFT)
+#define CP_NV_FLAGS_0_SET_END_RCVD_9(cp_nv_flags_0_reg, end_rcvd_9) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_END_RCVD_9_MASK) | (end_rcvd_9 << CP_NV_FLAGS_0_END_RCVD_9_SHIFT)
+#define CP_NV_FLAGS_0_SET_DISCARD_10(cp_nv_flags_0_reg, discard_10) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_DISCARD_10_MASK) | (discard_10 << CP_NV_FLAGS_0_DISCARD_10_SHIFT)
+#define CP_NV_FLAGS_0_SET_END_RCVD_10(cp_nv_flags_0_reg, end_rcvd_10) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_END_RCVD_10_MASK) | (end_rcvd_10 << CP_NV_FLAGS_0_END_RCVD_10_SHIFT)
+#define CP_NV_FLAGS_0_SET_DISCARD_11(cp_nv_flags_0_reg, discard_11) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_DISCARD_11_MASK) | (discard_11 << CP_NV_FLAGS_0_DISCARD_11_SHIFT)
+#define CP_NV_FLAGS_0_SET_END_RCVD_11(cp_nv_flags_0_reg, end_rcvd_11) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_END_RCVD_11_MASK) | (end_rcvd_11 << CP_NV_FLAGS_0_END_RCVD_11_SHIFT)
+#define CP_NV_FLAGS_0_SET_DISCARD_12(cp_nv_flags_0_reg, discard_12) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_DISCARD_12_MASK) | (discard_12 << CP_NV_FLAGS_0_DISCARD_12_SHIFT)
+#define CP_NV_FLAGS_0_SET_END_RCVD_12(cp_nv_flags_0_reg, end_rcvd_12) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_END_RCVD_12_MASK) | (end_rcvd_12 << CP_NV_FLAGS_0_END_RCVD_12_SHIFT)
+#define CP_NV_FLAGS_0_SET_DISCARD_13(cp_nv_flags_0_reg, discard_13) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_DISCARD_13_MASK) | (discard_13 << CP_NV_FLAGS_0_DISCARD_13_SHIFT)
+#define CP_NV_FLAGS_0_SET_END_RCVD_13(cp_nv_flags_0_reg, end_rcvd_13) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_END_RCVD_13_MASK) | (end_rcvd_13 << CP_NV_FLAGS_0_END_RCVD_13_SHIFT)
+#define CP_NV_FLAGS_0_SET_DISCARD_14(cp_nv_flags_0_reg, discard_14) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_DISCARD_14_MASK) | (discard_14 << CP_NV_FLAGS_0_DISCARD_14_SHIFT)
+#define CP_NV_FLAGS_0_SET_END_RCVD_14(cp_nv_flags_0_reg, end_rcvd_14) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_END_RCVD_14_MASK) | (end_rcvd_14 << CP_NV_FLAGS_0_END_RCVD_14_SHIFT)
+#define CP_NV_FLAGS_0_SET_DISCARD_15(cp_nv_flags_0_reg, discard_15) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_DISCARD_15_MASK) | (discard_15 << CP_NV_FLAGS_0_DISCARD_15_SHIFT)
+#define CP_NV_FLAGS_0_SET_END_RCVD_15(cp_nv_flags_0_reg, end_rcvd_15) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_END_RCVD_15_MASK) | (end_rcvd_15 << CP_NV_FLAGS_0_END_RCVD_15_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_nv_flags_0_t {
+ unsigned int discard_0 : CP_NV_FLAGS_0_DISCARD_0_SIZE;
+ unsigned int end_rcvd_0 : CP_NV_FLAGS_0_END_RCVD_0_SIZE;
+ unsigned int discard_1 : CP_NV_FLAGS_0_DISCARD_1_SIZE;
+ unsigned int end_rcvd_1 : CP_NV_FLAGS_0_END_RCVD_1_SIZE;
+ unsigned int discard_2 : CP_NV_FLAGS_0_DISCARD_2_SIZE;
+ unsigned int end_rcvd_2 : CP_NV_FLAGS_0_END_RCVD_2_SIZE;
+ unsigned int discard_3 : CP_NV_FLAGS_0_DISCARD_3_SIZE;
+ unsigned int end_rcvd_3 : CP_NV_FLAGS_0_END_RCVD_3_SIZE;
+ unsigned int discard_4 : CP_NV_FLAGS_0_DISCARD_4_SIZE;
+ unsigned int end_rcvd_4 : CP_NV_FLAGS_0_END_RCVD_4_SIZE;
+ unsigned int discard_5 : CP_NV_FLAGS_0_DISCARD_5_SIZE;
+ unsigned int end_rcvd_5 : CP_NV_FLAGS_0_END_RCVD_5_SIZE;
+ unsigned int discard_6 : CP_NV_FLAGS_0_DISCARD_6_SIZE;
+ unsigned int end_rcvd_6 : CP_NV_FLAGS_0_END_RCVD_6_SIZE;
+ unsigned int discard_7 : CP_NV_FLAGS_0_DISCARD_7_SIZE;
+ unsigned int end_rcvd_7 : CP_NV_FLAGS_0_END_RCVD_7_SIZE;
+ unsigned int discard_8 : CP_NV_FLAGS_0_DISCARD_8_SIZE;
+ unsigned int end_rcvd_8 : CP_NV_FLAGS_0_END_RCVD_8_SIZE;
+ unsigned int discard_9 : CP_NV_FLAGS_0_DISCARD_9_SIZE;
+ unsigned int end_rcvd_9 : CP_NV_FLAGS_0_END_RCVD_9_SIZE;
+ unsigned int discard_10 : CP_NV_FLAGS_0_DISCARD_10_SIZE;
+ unsigned int end_rcvd_10 : CP_NV_FLAGS_0_END_RCVD_10_SIZE;
+ unsigned int discard_11 : CP_NV_FLAGS_0_DISCARD_11_SIZE;
+ unsigned int end_rcvd_11 : CP_NV_FLAGS_0_END_RCVD_11_SIZE;
+ unsigned int discard_12 : CP_NV_FLAGS_0_DISCARD_12_SIZE;
+ unsigned int end_rcvd_12 : CP_NV_FLAGS_0_END_RCVD_12_SIZE;
+ unsigned int discard_13 : CP_NV_FLAGS_0_DISCARD_13_SIZE;
+ unsigned int end_rcvd_13 : CP_NV_FLAGS_0_END_RCVD_13_SIZE;
+ unsigned int discard_14 : CP_NV_FLAGS_0_DISCARD_14_SIZE;
+ unsigned int end_rcvd_14 : CP_NV_FLAGS_0_END_RCVD_14_SIZE;
+ unsigned int discard_15 : CP_NV_FLAGS_0_DISCARD_15_SIZE;
+ unsigned int end_rcvd_15 : CP_NV_FLAGS_0_END_RCVD_15_SIZE;
+ } cp_nv_flags_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_nv_flags_0_t {
+ unsigned int end_rcvd_15 : CP_NV_FLAGS_0_END_RCVD_15_SIZE;
+ unsigned int discard_15 : CP_NV_FLAGS_0_DISCARD_15_SIZE;
+ unsigned int end_rcvd_14 : CP_NV_FLAGS_0_END_RCVD_14_SIZE;
+ unsigned int discard_14 : CP_NV_FLAGS_0_DISCARD_14_SIZE;
+ unsigned int end_rcvd_13 : CP_NV_FLAGS_0_END_RCVD_13_SIZE;
+ unsigned int discard_13 : CP_NV_FLAGS_0_DISCARD_13_SIZE;
+ unsigned int end_rcvd_12 : CP_NV_FLAGS_0_END_RCVD_12_SIZE;
+ unsigned int discard_12 : CP_NV_FLAGS_0_DISCARD_12_SIZE;
+ unsigned int end_rcvd_11 : CP_NV_FLAGS_0_END_RCVD_11_SIZE;
+ unsigned int discard_11 : CP_NV_FLAGS_0_DISCARD_11_SIZE;
+ unsigned int end_rcvd_10 : CP_NV_FLAGS_0_END_RCVD_10_SIZE;
+ unsigned int discard_10 : CP_NV_FLAGS_0_DISCARD_10_SIZE;
+ unsigned int end_rcvd_9 : CP_NV_FLAGS_0_END_RCVD_9_SIZE;
+ unsigned int discard_9 : CP_NV_FLAGS_0_DISCARD_9_SIZE;
+ unsigned int end_rcvd_8 : CP_NV_FLAGS_0_END_RCVD_8_SIZE;
+ unsigned int discard_8 : CP_NV_FLAGS_0_DISCARD_8_SIZE;
+ unsigned int end_rcvd_7 : CP_NV_FLAGS_0_END_RCVD_7_SIZE;
+ unsigned int discard_7 : CP_NV_FLAGS_0_DISCARD_7_SIZE;
+ unsigned int end_rcvd_6 : CP_NV_FLAGS_0_END_RCVD_6_SIZE;
+ unsigned int discard_6 : CP_NV_FLAGS_0_DISCARD_6_SIZE;
+ unsigned int end_rcvd_5 : CP_NV_FLAGS_0_END_RCVD_5_SIZE;
+ unsigned int discard_5 : CP_NV_FLAGS_0_DISCARD_5_SIZE;
+ unsigned int end_rcvd_4 : CP_NV_FLAGS_0_END_RCVD_4_SIZE;
+ unsigned int discard_4 : CP_NV_FLAGS_0_DISCARD_4_SIZE;
+ unsigned int end_rcvd_3 : CP_NV_FLAGS_0_END_RCVD_3_SIZE;
+ unsigned int discard_3 : CP_NV_FLAGS_0_DISCARD_3_SIZE;
+ unsigned int end_rcvd_2 : CP_NV_FLAGS_0_END_RCVD_2_SIZE;
+ unsigned int discard_2 : CP_NV_FLAGS_0_DISCARD_2_SIZE;
+ unsigned int end_rcvd_1 : CP_NV_FLAGS_0_END_RCVD_1_SIZE;
+ unsigned int discard_1 : CP_NV_FLAGS_0_DISCARD_1_SIZE;
+ unsigned int end_rcvd_0 : CP_NV_FLAGS_0_END_RCVD_0_SIZE;
+ unsigned int discard_0 : CP_NV_FLAGS_0_DISCARD_0_SIZE;
+ } cp_nv_flags_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_nv_flags_0_t f;
+} cp_nv_flags_0_u;
+
+
+/*
+ * CP_NV_FLAGS_1 struct
+ */
+
+#define CP_NV_FLAGS_1_DISCARD_16_SIZE 1
+#define CP_NV_FLAGS_1_END_RCVD_16_SIZE 1
+#define CP_NV_FLAGS_1_DISCARD_17_SIZE 1
+#define CP_NV_FLAGS_1_END_RCVD_17_SIZE 1
+#define CP_NV_FLAGS_1_DISCARD_18_SIZE 1
+#define CP_NV_FLAGS_1_END_RCVD_18_SIZE 1
+#define CP_NV_FLAGS_1_DISCARD_19_SIZE 1
+#define CP_NV_FLAGS_1_END_RCVD_19_SIZE 1
+#define CP_NV_FLAGS_1_DISCARD_20_SIZE 1
+#define CP_NV_FLAGS_1_END_RCVD_20_SIZE 1
+#define CP_NV_FLAGS_1_DISCARD_21_SIZE 1
+#define CP_NV_FLAGS_1_END_RCVD_21_SIZE 1
+#define CP_NV_FLAGS_1_DISCARD_22_SIZE 1
+#define CP_NV_FLAGS_1_END_RCVD_22_SIZE 1
+#define CP_NV_FLAGS_1_DISCARD_23_SIZE 1
+#define CP_NV_FLAGS_1_END_RCVD_23_SIZE 1
+#define CP_NV_FLAGS_1_DISCARD_24_SIZE 1
+#define CP_NV_FLAGS_1_END_RCVD_24_SIZE 1
+#define CP_NV_FLAGS_1_DISCARD_25_SIZE 1
+#define CP_NV_FLAGS_1_END_RCVD_25_SIZE 1
+#define CP_NV_FLAGS_1_DISCARD_26_SIZE 1
+#define CP_NV_FLAGS_1_END_RCVD_26_SIZE 1
+#define CP_NV_FLAGS_1_DISCARD_27_SIZE 1
+#define CP_NV_FLAGS_1_END_RCVD_27_SIZE 1
+#define CP_NV_FLAGS_1_DISCARD_28_SIZE 1
+#define CP_NV_FLAGS_1_END_RCVD_28_SIZE 1
+#define CP_NV_FLAGS_1_DISCARD_29_SIZE 1
+#define CP_NV_FLAGS_1_END_RCVD_29_SIZE 1
+#define CP_NV_FLAGS_1_DISCARD_30_SIZE 1
+#define CP_NV_FLAGS_1_END_RCVD_30_SIZE 1
+#define CP_NV_FLAGS_1_DISCARD_31_SIZE 1
+#define CP_NV_FLAGS_1_END_RCVD_31_SIZE 1
+
+#define CP_NV_FLAGS_1_DISCARD_16_SHIFT 0
+#define CP_NV_FLAGS_1_END_RCVD_16_SHIFT 1
+#define CP_NV_FLAGS_1_DISCARD_17_SHIFT 2
+#define CP_NV_FLAGS_1_END_RCVD_17_SHIFT 3
+#define CP_NV_FLAGS_1_DISCARD_18_SHIFT 4
+#define CP_NV_FLAGS_1_END_RCVD_18_SHIFT 5
+#define CP_NV_FLAGS_1_DISCARD_19_SHIFT 6
+#define CP_NV_FLAGS_1_END_RCVD_19_SHIFT 7
+#define CP_NV_FLAGS_1_DISCARD_20_SHIFT 8
+#define CP_NV_FLAGS_1_END_RCVD_20_SHIFT 9
+#define CP_NV_FLAGS_1_DISCARD_21_SHIFT 10
+#define CP_NV_FLAGS_1_END_RCVD_21_SHIFT 11
+#define CP_NV_FLAGS_1_DISCARD_22_SHIFT 12
+#define CP_NV_FLAGS_1_END_RCVD_22_SHIFT 13
+#define CP_NV_FLAGS_1_DISCARD_23_SHIFT 14
+#define CP_NV_FLAGS_1_END_RCVD_23_SHIFT 15
+#define CP_NV_FLAGS_1_DISCARD_24_SHIFT 16
+#define CP_NV_FLAGS_1_END_RCVD_24_SHIFT 17
+#define CP_NV_FLAGS_1_DISCARD_25_SHIFT 18
+#define CP_NV_FLAGS_1_END_RCVD_25_SHIFT 19
+#define CP_NV_FLAGS_1_DISCARD_26_SHIFT 20
+#define CP_NV_FLAGS_1_END_RCVD_26_SHIFT 21
+#define CP_NV_FLAGS_1_DISCARD_27_SHIFT 22
+#define CP_NV_FLAGS_1_END_RCVD_27_SHIFT 23
+#define CP_NV_FLAGS_1_DISCARD_28_SHIFT 24
+#define CP_NV_FLAGS_1_END_RCVD_28_SHIFT 25
+#define CP_NV_FLAGS_1_DISCARD_29_SHIFT 26
+#define CP_NV_FLAGS_1_END_RCVD_29_SHIFT 27
+#define CP_NV_FLAGS_1_DISCARD_30_SHIFT 28
+#define CP_NV_FLAGS_1_END_RCVD_30_SHIFT 29
+#define CP_NV_FLAGS_1_DISCARD_31_SHIFT 30
+#define CP_NV_FLAGS_1_END_RCVD_31_SHIFT 31
+
+#define CP_NV_FLAGS_1_DISCARD_16_MASK 0x00000001
+#define CP_NV_FLAGS_1_END_RCVD_16_MASK 0x00000002
+#define CP_NV_FLAGS_1_DISCARD_17_MASK 0x00000004
+#define CP_NV_FLAGS_1_END_RCVD_17_MASK 0x00000008
+#define CP_NV_FLAGS_1_DISCARD_18_MASK 0x00000010
+#define CP_NV_FLAGS_1_END_RCVD_18_MASK 0x00000020
+#define CP_NV_FLAGS_1_DISCARD_19_MASK 0x00000040
+#define CP_NV_FLAGS_1_END_RCVD_19_MASK 0x00000080
+#define CP_NV_FLAGS_1_DISCARD_20_MASK 0x00000100
+#define CP_NV_FLAGS_1_END_RCVD_20_MASK 0x00000200
+#define CP_NV_FLAGS_1_DISCARD_21_MASK 0x00000400
+#define CP_NV_FLAGS_1_END_RCVD_21_MASK 0x00000800
+#define CP_NV_FLAGS_1_DISCARD_22_MASK 0x00001000
+#define CP_NV_FLAGS_1_END_RCVD_22_MASK 0x00002000
+#define CP_NV_FLAGS_1_DISCARD_23_MASK 0x00004000
+#define CP_NV_FLAGS_1_END_RCVD_23_MASK 0x00008000
+#define CP_NV_FLAGS_1_DISCARD_24_MASK 0x00010000
+#define CP_NV_FLAGS_1_END_RCVD_24_MASK 0x00020000
+#define CP_NV_FLAGS_1_DISCARD_25_MASK 0x00040000
+#define CP_NV_FLAGS_1_END_RCVD_25_MASK 0x00080000
+#define CP_NV_FLAGS_1_DISCARD_26_MASK 0x00100000
+#define CP_NV_FLAGS_1_END_RCVD_26_MASK 0x00200000
+#define CP_NV_FLAGS_1_DISCARD_27_MASK 0x00400000
+#define CP_NV_FLAGS_1_END_RCVD_27_MASK 0x00800000
+#define CP_NV_FLAGS_1_DISCARD_28_MASK 0x01000000
+#define CP_NV_FLAGS_1_END_RCVD_28_MASK 0x02000000
+#define CP_NV_FLAGS_1_DISCARD_29_MASK 0x04000000
+#define CP_NV_FLAGS_1_END_RCVD_29_MASK 0x08000000
+#define CP_NV_FLAGS_1_DISCARD_30_MASK 0x10000000
+#define CP_NV_FLAGS_1_END_RCVD_30_MASK 0x20000000
+#define CP_NV_FLAGS_1_DISCARD_31_MASK 0x40000000
+#define CP_NV_FLAGS_1_END_RCVD_31_MASK 0x80000000
+
+#define CP_NV_FLAGS_1_MASK \
+ (CP_NV_FLAGS_1_DISCARD_16_MASK | \
+ CP_NV_FLAGS_1_END_RCVD_16_MASK | \
+ CP_NV_FLAGS_1_DISCARD_17_MASK | \
+ CP_NV_FLAGS_1_END_RCVD_17_MASK | \
+ CP_NV_FLAGS_1_DISCARD_18_MASK | \
+ CP_NV_FLAGS_1_END_RCVD_18_MASK | \
+ CP_NV_FLAGS_1_DISCARD_19_MASK | \
+ CP_NV_FLAGS_1_END_RCVD_19_MASK | \
+ CP_NV_FLAGS_1_DISCARD_20_MASK | \
+ CP_NV_FLAGS_1_END_RCVD_20_MASK | \
+ CP_NV_FLAGS_1_DISCARD_21_MASK | \
+ CP_NV_FLAGS_1_END_RCVD_21_MASK | \
+ CP_NV_FLAGS_1_DISCARD_22_MASK | \
+ CP_NV_FLAGS_1_END_RCVD_22_MASK | \
+ CP_NV_FLAGS_1_DISCARD_23_MASK | \
+ CP_NV_FLAGS_1_END_RCVD_23_MASK | \
+ CP_NV_FLAGS_1_DISCARD_24_MASK | \
+ CP_NV_FLAGS_1_END_RCVD_24_MASK | \
+ CP_NV_FLAGS_1_DISCARD_25_MASK | \
+ CP_NV_FLAGS_1_END_RCVD_25_MASK | \
+ CP_NV_FLAGS_1_DISCARD_26_MASK | \
+ CP_NV_FLAGS_1_END_RCVD_26_MASK | \
+ CP_NV_FLAGS_1_DISCARD_27_MASK | \
+ CP_NV_FLAGS_1_END_RCVD_27_MASK | \
+ CP_NV_FLAGS_1_DISCARD_28_MASK | \
+ CP_NV_FLAGS_1_END_RCVD_28_MASK | \
+ CP_NV_FLAGS_1_DISCARD_29_MASK | \
+ CP_NV_FLAGS_1_END_RCVD_29_MASK | \
+ CP_NV_FLAGS_1_DISCARD_30_MASK | \
+ CP_NV_FLAGS_1_END_RCVD_30_MASK | \
+ CP_NV_FLAGS_1_DISCARD_31_MASK | \
+ CP_NV_FLAGS_1_END_RCVD_31_MASK)
+
+#define CP_NV_FLAGS_1(discard_16, end_rcvd_16, discard_17, end_rcvd_17, discard_18, end_rcvd_18, discard_19, end_rcvd_19, discard_20, end_rcvd_20, discard_21, end_rcvd_21, discard_22, end_rcvd_22, discard_23, end_rcvd_23, discard_24, end_rcvd_24, discard_25, end_rcvd_25, discard_26, end_rcvd_26, discard_27, end_rcvd_27, discard_28, end_rcvd_28, discard_29, end_rcvd_29, discard_30, end_rcvd_30, discard_31, end_rcvd_31) \
+ ((discard_16 << CP_NV_FLAGS_1_DISCARD_16_SHIFT) | \
+ (end_rcvd_16 << CP_NV_FLAGS_1_END_RCVD_16_SHIFT) | \
+ (discard_17 << CP_NV_FLAGS_1_DISCARD_17_SHIFT) | \
+ (end_rcvd_17 << CP_NV_FLAGS_1_END_RCVD_17_SHIFT) | \
+ (discard_18 << CP_NV_FLAGS_1_DISCARD_18_SHIFT) | \
+ (end_rcvd_18 << CP_NV_FLAGS_1_END_RCVD_18_SHIFT) | \
+ (discard_19 << CP_NV_FLAGS_1_DISCARD_19_SHIFT) | \
+ (end_rcvd_19 << CP_NV_FLAGS_1_END_RCVD_19_SHIFT) | \
+ (discard_20 << CP_NV_FLAGS_1_DISCARD_20_SHIFT) | \
+ (end_rcvd_20 << CP_NV_FLAGS_1_END_RCVD_20_SHIFT) | \
+ (discard_21 << CP_NV_FLAGS_1_DISCARD_21_SHIFT) | \
+ (end_rcvd_21 << CP_NV_FLAGS_1_END_RCVD_21_SHIFT) | \
+ (discard_22 << CP_NV_FLAGS_1_DISCARD_22_SHIFT) | \
+ (end_rcvd_22 << CP_NV_FLAGS_1_END_RCVD_22_SHIFT) | \
+ (discard_23 << CP_NV_FLAGS_1_DISCARD_23_SHIFT) | \
+ (end_rcvd_23 << CP_NV_FLAGS_1_END_RCVD_23_SHIFT) | \
+ (discard_24 << CP_NV_FLAGS_1_DISCARD_24_SHIFT) | \
+ (end_rcvd_24 << CP_NV_FLAGS_1_END_RCVD_24_SHIFT) | \
+ (discard_25 << CP_NV_FLAGS_1_DISCARD_25_SHIFT) | \
+ (end_rcvd_25 << CP_NV_FLAGS_1_END_RCVD_25_SHIFT) | \
+ (discard_26 << CP_NV_FLAGS_1_DISCARD_26_SHIFT) | \
+ (end_rcvd_26 << CP_NV_FLAGS_1_END_RCVD_26_SHIFT) | \
+ (discard_27 << CP_NV_FLAGS_1_DISCARD_27_SHIFT) | \
+ (end_rcvd_27 << CP_NV_FLAGS_1_END_RCVD_27_SHIFT) | \
+ (discard_28 << CP_NV_FLAGS_1_DISCARD_28_SHIFT) | \
+ (end_rcvd_28 << CP_NV_FLAGS_1_END_RCVD_28_SHIFT) | \
+ (discard_29 << CP_NV_FLAGS_1_DISCARD_29_SHIFT) | \
+ (end_rcvd_29 << CP_NV_FLAGS_1_END_RCVD_29_SHIFT) | \
+ (discard_30 << CP_NV_FLAGS_1_DISCARD_30_SHIFT) | \
+ (end_rcvd_30 << CP_NV_FLAGS_1_END_RCVD_30_SHIFT) | \
+ (discard_31 << CP_NV_FLAGS_1_DISCARD_31_SHIFT) | \
+ (end_rcvd_31 << CP_NV_FLAGS_1_END_RCVD_31_SHIFT))
+
+#define CP_NV_FLAGS_1_GET_DISCARD_16(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_DISCARD_16_MASK) >> CP_NV_FLAGS_1_DISCARD_16_SHIFT)
+#define CP_NV_FLAGS_1_GET_END_RCVD_16(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_END_RCVD_16_MASK) >> CP_NV_FLAGS_1_END_RCVD_16_SHIFT)
+#define CP_NV_FLAGS_1_GET_DISCARD_17(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_DISCARD_17_MASK) >> CP_NV_FLAGS_1_DISCARD_17_SHIFT)
+#define CP_NV_FLAGS_1_GET_END_RCVD_17(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_END_RCVD_17_MASK) >> CP_NV_FLAGS_1_END_RCVD_17_SHIFT)
+#define CP_NV_FLAGS_1_GET_DISCARD_18(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_DISCARD_18_MASK) >> CP_NV_FLAGS_1_DISCARD_18_SHIFT)
+#define CP_NV_FLAGS_1_GET_END_RCVD_18(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_END_RCVD_18_MASK) >> CP_NV_FLAGS_1_END_RCVD_18_SHIFT)
+#define CP_NV_FLAGS_1_GET_DISCARD_19(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_DISCARD_19_MASK) >> CP_NV_FLAGS_1_DISCARD_19_SHIFT)
+#define CP_NV_FLAGS_1_GET_END_RCVD_19(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_END_RCVD_19_MASK) >> CP_NV_FLAGS_1_END_RCVD_19_SHIFT)
+#define CP_NV_FLAGS_1_GET_DISCARD_20(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_DISCARD_20_MASK) >> CP_NV_FLAGS_1_DISCARD_20_SHIFT)
+#define CP_NV_FLAGS_1_GET_END_RCVD_20(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_END_RCVD_20_MASK) >> CP_NV_FLAGS_1_END_RCVD_20_SHIFT)
+#define CP_NV_FLAGS_1_GET_DISCARD_21(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_DISCARD_21_MASK) >> CP_NV_FLAGS_1_DISCARD_21_SHIFT)
+#define CP_NV_FLAGS_1_GET_END_RCVD_21(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_END_RCVD_21_MASK) >> CP_NV_FLAGS_1_END_RCVD_21_SHIFT)
+#define CP_NV_FLAGS_1_GET_DISCARD_22(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_DISCARD_22_MASK) >> CP_NV_FLAGS_1_DISCARD_22_SHIFT)
+#define CP_NV_FLAGS_1_GET_END_RCVD_22(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_END_RCVD_22_MASK) >> CP_NV_FLAGS_1_END_RCVD_22_SHIFT)
+#define CP_NV_FLAGS_1_GET_DISCARD_23(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_DISCARD_23_MASK) >> CP_NV_FLAGS_1_DISCARD_23_SHIFT)
+#define CP_NV_FLAGS_1_GET_END_RCVD_23(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_END_RCVD_23_MASK) >> CP_NV_FLAGS_1_END_RCVD_23_SHIFT)
+#define CP_NV_FLAGS_1_GET_DISCARD_24(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_DISCARD_24_MASK) >> CP_NV_FLAGS_1_DISCARD_24_SHIFT)
+#define CP_NV_FLAGS_1_GET_END_RCVD_24(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_END_RCVD_24_MASK) >> CP_NV_FLAGS_1_END_RCVD_24_SHIFT)
+#define CP_NV_FLAGS_1_GET_DISCARD_25(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_DISCARD_25_MASK) >> CP_NV_FLAGS_1_DISCARD_25_SHIFT)
+#define CP_NV_FLAGS_1_GET_END_RCVD_25(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_END_RCVD_25_MASK) >> CP_NV_FLAGS_1_END_RCVD_25_SHIFT)
+#define CP_NV_FLAGS_1_GET_DISCARD_26(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_DISCARD_26_MASK) >> CP_NV_FLAGS_1_DISCARD_26_SHIFT)
+#define CP_NV_FLAGS_1_GET_END_RCVD_26(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_END_RCVD_26_MASK) >> CP_NV_FLAGS_1_END_RCVD_26_SHIFT)
+#define CP_NV_FLAGS_1_GET_DISCARD_27(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_DISCARD_27_MASK) >> CP_NV_FLAGS_1_DISCARD_27_SHIFT)
+#define CP_NV_FLAGS_1_GET_END_RCVD_27(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_END_RCVD_27_MASK) >> CP_NV_FLAGS_1_END_RCVD_27_SHIFT)
+#define CP_NV_FLAGS_1_GET_DISCARD_28(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_DISCARD_28_MASK) >> CP_NV_FLAGS_1_DISCARD_28_SHIFT)
+#define CP_NV_FLAGS_1_GET_END_RCVD_28(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_END_RCVD_28_MASK) >> CP_NV_FLAGS_1_END_RCVD_28_SHIFT)
+#define CP_NV_FLAGS_1_GET_DISCARD_29(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_DISCARD_29_MASK) >> CP_NV_FLAGS_1_DISCARD_29_SHIFT)
+#define CP_NV_FLAGS_1_GET_END_RCVD_29(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_END_RCVD_29_MASK) >> CP_NV_FLAGS_1_END_RCVD_29_SHIFT)
+#define CP_NV_FLAGS_1_GET_DISCARD_30(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_DISCARD_30_MASK) >> CP_NV_FLAGS_1_DISCARD_30_SHIFT)
+#define CP_NV_FLAGS_1_GET_END_RCVD_30(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_END_RCVD_30_MASK) >> CP_NV_FLAGS_1_END_RCVD_30_SHIFT)
+#define CP_NV_FLAGS_1_GET_DISCARD_31(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_DISCARD_31_MASK) >> CP_NV_FLAGS_1_DISCARD_31_SHIFT)
+#define CP_NV_FLAGS_1_GET_END_RCVD_31(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_END_RCVD_31_MASK) >> CP_NV_FLAGS_1_END_RCVD_31_SHIFT)
+
+#define CP_NV_FLAGS_1_SET_DISCARD_16(cp_nv_flags_1_reg, discard_16) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_DISCARD_16_MASK) | (discard_16 << CP_NV_FLAGS_1_DISCARD_16_SHIFT)
+#define CP_NV_FLAGS_1_SET_END_RCVD_16(cp_nv_flags_1_reg, end_rcvd_16) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_END_RCVD_16_MASK) | (end_rcvd_16 << CP_NV_FLAGS_1_END_RCVD_16_SHIFT)
+#define CP_NV_FLAGS_1_SET_DISCARD_17(cp_nv_flags_1_reg, discard_17) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_DISCARD_17_MASK) | (discard_17 << CP_NV_FLAGS_1_DISCARD_17_SHIFT)
+#define CP_NV_FLAGS_1_SET_END_RCVD_17(cp_nv_flags_1_reg, end_rcvd_17) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_END_RCVD_17_MASK) | (end_rcvd_17 << CP_NV_FLAGS_1_END_RCVD_17_SHIFT)
+#define CP_NV_FLAGS_1_SET_DISCARD_18(cp_nv_flags_1_reg, discard_18) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_DISCARD_18_MASK) | (discard_18 << CP_NV_FLAGS_1_DISCARD_18_SHIFT)
+#define CP_NV_FLAGS_1_SET_END_RCVD_18(cp_nv_flags_1_reg, end_rcvd_18) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_END_RCVD_18_MASK) | (end_rcvd_18 << CP_NV_FLAGS_1_END_RCVD_18_SHIFT)
+#define CP_NV_FLAGS_1_SET_DISCARD_19(cp_nv_flags_1_reg, discard_19) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_DISCARD_19_MASK) | (discard_19 << CP_NV_FLAGS_1_DISCARD_19_SHIFT)
+#define CP_NV_FLAGS_1_SET_END_RCVD_19(cp_nv_flags_1_reg, end_rcvd_19) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_END_RCVD_19_MASK) | (end_rcvd_19 << CP_NV_FLAGS_1_END_RCVD_19_SHIFT)
+#define CP_NV_FLAGS_1_SET_DISCARD_20(cp_nv_flags_1_reg, discard_20) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_DISCARD_20_MASK) | (discard_20 << CP_NV_FLAGS_1_DISCARD_20_SHIFT)
+#define CP_NV_FLAGS_1_SET_END_RCVD_20(cp_nv_flags_1_reg, end_rcvd_20) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_END_RCVD_20_MASK) | (end_rcvd_20 << CP_NV_FLAGS_1_END_RCVD_20_SHIFT)
+#define CP_NV_FLAGS_1_SET_DISCARD_21(cp_nv_flags_1_reg, discard_21) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_DISCARD_21_MASK) | (discard_21 << CP_NV_FLAGS_1_DISCARD_21_SHIFT)
+#define CP_NV_FLAGS_1_SET_END_RCVD_21(cp_nv_flags_1_reg, end_rcvd_21) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_END_RCVD_21_MASK) | (end_rcvd_21 << CP_NV_FLAGS_1_END_RCVD_21_SHIFT)
+#define CP_NV_FLAGS_1_SET_DISCARD_22(cp_nv_flags_1_reg, discard_22) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_DISCARD_22_MASK) | (discard_22 << CP_NV_FLAGS_1_DISCARD_22_SHIFT)
+#define CP_NV_FLAGS_1_SET_END_RCVD_22(cp_nv_flags_1_reg, end_rcvd_22) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_END_RCVD_22_MASK) | (end_rcvd_22 << CP_NV_FLAGS_1_END_RCVD_22_SHIFT)
+#define CP_NV_FLAGS_1_SET_DISCARD_23(cp_nv_flags_1_reg, discard_23) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_DISCARD_23_MASK) | (discard_23 << CP_NV_FLAGS_1_DISCARD_23_SHIFT)
+#define CP_NV_FLAGS_1_SET_END_RCVD_23(cp_nv_flags_1_reg, end_rcvd_23) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_END_RCVD_23_MASK) | (end_rcvd_23 << CP_NV_FLAGS_1_END_RCVD_23_SHIFT)
+#define CP_NV_FLAGS_1_SET_DISCARD_24(cp_nv_flags_1_reg, discard_24) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_DISCARD_24_MASK) | (discard_24 << CP_NV_FLAGS_1_DISCARD_24_SHIFT)
+#define CP_NV_FLAGS_1_SET_END_RCVD_24(cp_nv_flags_1_reg, end_rcvd_24) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_END_RCVD_24_MASK) | (end_rcvd_24 << CP_NV_FLAGS_1_END_RCVD_24_SHIFT)
+#define CP_NV_FLAGS_1_SET_DISCARD_25(cp_nv_flags_1_reg, discard_25) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_DISCARD_25_MASK) | (discard_25 << CP_NV_FLAGS_1_DISCARD_25_SHIFT)
+#define CP_NV_FLAGS_1_SET_END_RCVD_25(cp_nv_flags_1_reg, end_rcvd_25) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_END_RCVD_25_MASK) | (end_rcvd_25 << CP_NV_FLAGS_1_END_RCVD_25_SHIFT)
+#define CP_NV_FLAGS_1_SET_DISCARD_26(cp_nv_flags_1_reg, discard_26) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_DISCARD_26_MASK) | (discard_26 << CP_NV_FLAGS_1_DISCARD_26_SHIFT)
+#define CP_NV_FLAGS_1_SET_END_RCVD_26(cp_nv_flags_1_reg, end_rcvd_26) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_END_RCVD_26_MASK) | (end_rcvd_26 << CP_NV_FLAGS_1_END_RCVD_26_SHIFT)
+#define CP_NV_FLAGS_1_SET_DISCARD_27(cp_nv_flags_1_reg, discard_27) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_DISCARD_27_MASK) | (discard_27 << CP_NV_FLAGS_1_DISCARD_27_SHIFT)
+#define CP_NV_FLAGS_1_SET_END_RCVD_27(cp_nv_flags_1_reg, end_rcvd_27) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_END_RCVD_27_MASK) | (end_rcvd_27 << CP_NV_FLAGS_1_END_RCVD_27_SHIFT)
+#define CP_NV_FLAGS_1_SET_DISCARD_28(cp_nv_flags_1_reg, discard_28) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_DISCARD_28_MASK) | (discard_28 << CP_NV_FLAGS_1_DISCARD_28_SHIFT)
+#define CP_NV_FLAGS_1_SET_END_RCVD_28(cp_nv_flags_1_reg, end_rcvd_28) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_END_RCVD_28_MASK) | (end_rcvd_28 << CP_NV_FLAGS_1_END_RCVD_28_SHIFT)
+#define CP_NV_FLAGS_1_SET_DISCARD_29(cp_nv_flags_1_reg, discard_29) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_DISCARD_29_MASK) | (discard_29 << CP_NV_FLAGS_1_DISCARD_29_SHIFT)
+#define CP_NV_FLAGS_1_SET_END_RCVD_29(cp_nv_flags_1_reg, end_rcvd_29) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_END_RCVD_29_MASK) | (end_rcvd_29 << CP_NV_FLAGS_1_END_RCVD_29_SHIFT)
+#define CP_NV_FLAGS_1_SET_DISCARD_30(cp_nv_flags_1_reg, discard_30) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_DISCARD_30_MASK) | (discard_30 << CP_NV_FLAGS_1_DISCARD_30_SHIFT)
+#define CP_NV_FLAGS_1_SET_END_RCVD_30(cp_nv_flags_1_reg, end_rcvd_30) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_END_RCVD_30_MASK) | (end_rcvd_30 << CP_NV_FLAGS_1_END_RCVD_30_SHIFT)
+#define CP_NV_FLAGS_1_SET_DISCARD_31(cp_nv_flags_1_reg, discard_31) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_DISCARD_31_MASK) | (discard_31 << CP_NV_FLAGS_1_DISCARD_31_SHIFT)
+#define CP_NV_FLAGS_1_SET_END_RCVD_31(cp_nv_flags_1_reg, end_rcvd_31) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_END_RCVD_31_MASK) | (end_rcvd_31 << CP_NV_FLAGS_1_END_RCVD_31_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_nv_flags_1_t {
+ unsigned int discard_16 : CP_NV_FLAGS_1_DISCARD_16_SIZE;
+ unsigned int end_rcvd_16 : CP_NV_FLAGS_1_END_RCVD_16_SIZE;
+ unsigned int discard_17 : CP_NV_FLAGS_1_DISCARD_17_SIZE;
+ unsigned int end_rcvd_17 : CP_NV_FLAGS_1_END_RCVD_17_SIZE;
+ unsigned int discard_18 : CP_NV_FLAGS_1_DISCARD_18_SIZE;
+ unsigned int end_rcvd_18 : CP_NV_FLAGS_1_END_RCVD_18_SIZE;
+ unsigned int discard_19 : CP_NV_FLAGS_1_DISCARD_19_SIZE;
+ unsigned int end_rcvd_19 : CP_NV_FLAGS_1_END_RCVD_19_SIZE;
+ unsigned int discard_20 : CP_NV_FLAGS_1_DISCARD_20_SIZE;
+ unsigned int end_rcvd_20 : CP_NV_FLAGS_1_END_RCVD_20_SIZE;
+ unsigned int discard_21 : CP_NV_FLAGS_1_DISCARD_21_SIZE;
+ unsigned int end_rcvd_21 : CP_NV_FLAGS_1_END_RCVD_21_SIZE;
+ unsigned int discard_22 : CP_NV_FLAGS_1_DISCARD_22_SIZE;
+ unsigned int end_rcvd_22 : CP_NV_FLAGS_1_END_RCVD_22_SIZE;
+ unsigned int discard_23 : CP_NV_FLAGS_1_DISCARD_23_SIZE;
+ unsigned int end_rcvd_23 : CP_NV_FLAGS_1_END_RCVD_23_SIZE;
+ unsigned int discard_24 : CP_NV_FLAGS_1_DISCARD_24_SIZE;
+ unsigned int end_rcvd_24 : CP_NV_FLAGS_1_END_RCVD_24_SIZE;
+ unsigned int discard_25 : CP_NV_FLAGS_1_DISCARD_25_SIZE;
+ unsigned int end_rcvd_25 : CP_NV_FLAGS_1_END_RCVD_25_SIZE;
+ unsigned int discard_26 : CP_NV_FLAGS_1_DISCARD_26_SIZE;
+ unsigned int end_rcvd_26 : CP_NV_FLAGS_1_END_RCVD_26_SIZE;
+ unsigned int discard_27 : CP_NV_FLAGS_1_DISCARD_27_SIZE;
+ unsigned int end_rcvd_27 : CP_NV_FLAGS_1_END_RCVD_27_SIZE;
+ unsigned int discard_28 : CP_NV_FLAGS_1_DISCARD_28_SIZE;
+ unsigned int end_rcvd_28 : CP_NV_FLAGS_1_END_RCVD_28_SIZE;
+ unsigned int discard_29 : CP_NV_FLAGS_1_DISCARD_29_SIZE;
+ unsigned int end_rcvd_29 : CP_NV_FLAGS_1_END_RCVD_29_SIZE;
+ unsigned int discard_30 : CP_NV_FLAGS_1_DISCARD_30_SIZE;
+ unsigned int end_rcvd_30 : CP_NV_FLAGS_1_END_RCVD_30_SIZE;
+ unsigned int discard_31 : CP_NV_FLAGS_1_DISCARD_31_SIZE;
+ unsigned int end_rcvd_31 : CP_NV_FLAGS_1_END_RCVD_31_SIZE;
+ } cp_nv_flags_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_nv_flags_1_t {
+ unsigned int end_rcvd_31 : CP_NV_FLAGS_1_END_RCVD_31_SIZE;
+ unsigned int discard_31 : CP_NV_FLAGS_1_DISCARD_31_SIZE;
+ unsigned int end_rcvd_30 : CP_NV_FLAGS_1_END_RCVD_30_SIZE;
+ unsigned int discard_30 : CP_NV_FLAGS_1_DISCARD_30_SIZE;
+ unsigned int end_rcvd_29 : CP_NV_FLAGS_1_END_RCVD_29_SIZE;
+ unsigned int discard_29 : CP_NV_FLAGS_1_DISCARD_29_SIZE;
+ unsigned int end_rcvd_28 : CP_NV_FLAGS_1_END_RCVD_28_SIZE;
+ unsigned int discard_28 : CP_NV_FLAGS_1_DISCARD_28_SIZE;
+ unsigned int end_rcvd_27 : CP_NV_FLAGS_1_END_RCVD_27_SIZE;
+ unsigned int discard_27 : CP_NV_FLAGS_1_DISCARD_27_SIZE;
+ unsigned int end_rcvd_26 : CP_NV_FLAGS_1_END_RCVD_26_SIZE;
+ unsigned int discard_26 : CP_NV_FLAGS_1_DISCARD_26_SIZE;
+ unsigned int end_rcvd_25 : CP_NV_FLAGS_1_END_RCVD_25_SIZE;
+ unsigned int discard_25 : CP_NV_FLAGS_1_DISCARD_25_SIZE;
+ unsigned int end_rcvd_24 : CP_NV_FLAGS_1_END_RCVD_24_SIZE;
+ unsigned int discard_24 : CP_NV_FLAGS_1_DISCARD_24_SIZE;
+ unsigned int end_rcvd_23 : CP_NV_FLAGS_1_END_RCVD_23_SIZE;
+ unsigned int discard_23 : CP_NV_FLAGS_1_DISCARD_23_SIZE;
+ unsigned int end_rcvd_22 : CP_NV_FLAGS_1_END_RCVD_22_SIZE;
+ unsigned int discard_22 : CP_NV_FLAGS_1_DISCARD_22_SIZE;
+ unsigned int end_rcvd_21 : CP_NV_FLAGS_1_END_RCVD_21_SIZE;
+ unsigned int discard_21 : CP_NV_FLAGS_1_DISCARD_21_SIZE;
+ unsigned int end_rcvd_20 : CP_NV_FLAGS_1_END_RCVD_20_SIZE;
+ unsigned int discard_20 : CP_NV_FLAGS_1_DISCARD_20_SIZE;
+ unsigned int end_rcvd_19 : CP_NV_FLAGS_1_END_RCVD_19_SIZE;
+ unsigned int discard_19 : CP_NV_FLAGS_1_DISCARD_19_SIZE;
+ unsigned int end_rcvd_18 : CP_NV_FLAGS_1_END_RCVD_18_SIZE;
+ unsigned int discard_18 : CP_NV_FLAGS_1_DISCARD_18_SIZE;
+ unsigned int end_rcvd_17 : CP_NV_FLAGS_1_END_RCVD_17_SIZE;
+ unsigned int discard_17 : CP_NV_FLAGS_1_DISCARD_17_SIZE;
+ unsigned int end_rcvd_16 : CP_NV_FLAGS_1_END_RCVD_16_SIZE;
+ unsigned int discard_16 : CP_NV_FLAGS_1_DISCARD_16_SIZE;
+ } cp_nv_flags_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_nv_flags_1_t f;
+} cp_nv_flags_1_u;
+
+
+/*
+ * CP_NV_FLAGS_2 struct
+ */
+
+#define CP_NV_FLAGS_2_DISCARD_32_SIZE 1
+#define CP_NV_FLAGS_2_END_RCVD_32_SIZE 1
+#define CP_NV_FLAGS_2_DISCARD_33_SIZE 1
+#define CP_NV_FLAGS_2_END_RCVD_33_SIZE 1
+#define CP_NV_FLAGS_2_DISCARD_34_SIZE 1
+#define CP_NV_FLAGS_2_END_RCVD_34_SIZE 1
+#define CP_NV_FLAGS_2_DISCARD_35_SIZE 1
+#define CP_NV_FLAGS_2_END_RCVD_35_SIZE 1
+#define CP_NV_FLAGS_2_DISCARD_36_SIZE 1
+#define CP_NV_FLAGS_2_END_RCVD_36_SIZE 1
+#define CP_NV_FLAGS_2_DISCARD_37_SIZE 1
+#define CP_NV_FLAGS_2_END_RCVD_37_SIZE 1
+#define CP_NV_FLAGS_2_DISCARD_38_SIZE 1
+#define CP_NV_FLAGS_2_END_RCVD_38_SIZE 1
+#define CP_NV_FLAGS_2_DISCARD_39_SIZE 1
+#define CP_NV_FLAGS_2_END_RCVD_39_SIZE 1
+#define CP_NV_FLAGS_2_DISCARD_40_SIZE 1
+#define CP_NV_FLAGS_2_END_RCVD_40_SIZE 1
+#define CP_NV_FLAGS_2_DISCARD_41_SIZE 1
+#define CP_NV_FLAGS_2_END_RCVD_41_SIZE 1
+#define CP_NV_FLAGS_2_DISCARD_42_SIZE 1
+#define CP_NV_FLAGS_2_END_RCVD_42_SIZE 1
+#define CP_NV_FLAGS_2_DISCARD_43_SIZE 1
+#define CP_NV_FLAGS_2_END_RCVD_43_SIZE 1
+#define CP_NV_FLAGS_2_DISCARD_44_SIZE 1
+#define CP_NV_FLAGS_2_END_RCVD_44_SIZE 1
+#define CP_NV_FLAGS_2_DISCARD_45_SIZE 1
+#define CP_NV_FLAGS_2_END_RCVD_45_SIZE 1
+#define CP_NV_FLAGS_2_DISCARD_46_SIZE 1
+#define CP_NV_FLAGS_2_END_RCVD_46_SIZE 1
+#define CP_NV_FLAGS_2_DISCARD_47_SIZE 1
+#define CP_NV_FLAGS_2_END_RCVD_47_SIZE 1
+
+#define CP_NV_FLAGS_2_DISCARD_32_SHIFT 0
+#define CP_NV_FLAGS_2_END_RCVD_32_SHIFT 1
+#define CP_NV_FLAGS_2_DISCARD_33_SHIFT 2
+#define CP_NV_FLAGS_2_END_RCVD_33_SHIFT 3
+#define CP_NV_FLAGS_2_DISCARD_34_SHIFT 4
+#define CP_NV_FLAGS_2_END_RCVD_34_SHIFT 5
+#define CP_NV_FLAGS_2_DISCARD_35_SHIFT 6
+#define CP_NV_FLAGS_2_END_RCVD_35_SHIFT 7
+#define CP_NV_FLAGS_2_DISCARD_36_SHIFT 8
+#define CP_NV_FLAGS_2_END_RCVD_36_SHIFT 9
+#define CP_NV_FLAGS_2_DISCARD_37_SHIFT 10
+#define CP_NV_FLAGS_2_END_RCVD_37_SHIFT 11
+#define CP_NV_FLAGS_2_DISCARD_38_SHIFT 12
+#define CP_NV_FLAGS_2_END_RCVD_38_SHIFT 13
+#define CP_NV_FLAGS_2_DISCARD_39_SHIFT 14
+#define CP_NV_FLAGS_2_END_RCVD_39_SHIFT 15
+#define CP_NV_FLAGS_2_DISCARD_40_SHIFT 16
+#define CP_NV_FLAGS_2_END_RCVD_40_SHIFT 17
+#define CP_NV_FLAGS_2_DISCARD_41_SHIFT 18
+#define CP_NV_FLAGS_2_END_RCVD_41_SHIFT 19
+#define CP_NV_FLAGS_2_DISCARD_42_SHIFT 20
+#define CP_NV_FLAGS_2_END_RCVD_42_SHIFT 21
+#define CP_NV_FLAGS_2_DISCARD_43_SHIFT 22
+#define CP_NV_FLAGS_2_END_RCVD_43_SHIFT 23
+#define CP_NV_FLAGS_2_DISCARD_44_SHIFT 24
+#define CP_NV_FLAGS_2_END_RCVD_44_SHIFT 25
+#define CP_NV_FLAGS_2_DISCARD_45_SHIFT 26
+#define CP_NV_FLAGS_2_END_RCVD_45_SHIFT 27
+#define CP_NV_FLAGS_2_DISCARD_46_SHIFT 28
+#define CP_NV_FLAGS_2_END_RCVD_46_SHIFT 29
+#define CP_NV_FLAGS_2_DISCARD_47_SHIFT 30
+#define CP_NV_FLAGS_2_END_RCVD_47_SHIFT 31
+
+#define CP_NV_FLAGS_2_DISCARD_32_MASK 0x00000001
+#define CP_NV_FLAGS_2_END_RCVD_32_MASK 0x00000002
+#define CP_NV_FLAGS_2_DISCARD_33_MASK 0x00000004
+#define CP_NV_FLAGS_2_END_RCVD_33_MASK 0x00000008
+#define CP_NV_FLAGS_2_DISCARD_34_MASK 0x00000010
+#define CP_NV_FLAGS_2_END_RCVD_34_MASK 0x00000020
+#define CP_NV_FLAGS_2_DISCARD_35_MASK 0x00000040
+#define CP_NV_FLAGS_2_END_RCVD_35_MASK 0x00000080
+#define CP_NV_FLAGS_2_DISCARD_36_MASK 0x00000100
+#define CP_NV_FLAGS_2_END_RCVD_36_MASK 0x00000200
+#define CP_NV_FLAGS_2_DISCARD_37_MASK 0x00000400
+#define CP_NV_FLAGS_2_END_RCVD_37_MASK 0x00000800
+#define CP_NV_FLAGS_2_DISCARD_38_MASK 0x00001000
+#define CP_NV_FLAGS_2_END_RCVD_38_MASK 0x00002000
+#define CP_NV_FLAGS_2_DISCARD_39_MASK 0x00004000
+#define CP_NV_FLAGS_2_END_RCVD_39_MASK 0x00008000
+#define CP_NV_FLAGS_2_DISCARD_40_MASK 0x00010000
+#define CP_NV_FLAGS_2_END_RCVD_40_MASK 0x00020000
+#define CP_NV_FLAGS_2_DISCARD_41_MASK 0x00040000
+#define CP_NV_FLAGS_2_END_RCVD_41_MASK 0x00080000
+#define CP_NV_FLAGS_2_DISCARD_42_MASK 0x00100000
+#define CP_NV_FLAGS_2_END_RCVD_42_MASK 0x00200000
+#define CP_NV_FLAGS_2_DISCARD_43_MASK 0x00400000
+#define CP_NV_FLAGS_2_END_RCVD_43_MASK 0x00800000
+#define CP_NV_FLAGS_2_DISCARD_44_MASK 0x01000000
+#define CP_NV_FLAGS_2_END_RCVD_44_MASK 0x02000000
+#define CP_NV_FLAGS_2_DISCARD_45_MASK 0x04000000
+#define CP_NV_FLAGS_2_END_RCVD_45_MASK 0x08000000
+#define CP_NV_FLAGS_2_DISCARD_46_MASK 0x10000000
+#define CP_NV_FLAGS_2_END_RCVD_46_MASK 0x20000000
+#define CP_NV_FLAGS_2_DISCARD_47_MASK 0x40000000
+#define CP_NV_FLAGS_2_END_RCVD_47_MASK 0x80000000
+
+#define CP_NV_FLAGS_2_MASK \
+ (CP_NV_FLAGS_2_DISCARD_32_MASK | \
+ CP_NV_FLAGS_2_END_RCVD_32_MASK | \
+ CP_NV_FLAGS_2_DISCARD_33_MASK | \
+ CP_NV_FLAGS_2_END_RCVD_33_MASK | \
+ CP_NV_FLAGS_2_DISCARD_34_MASK | \
+ CP_NV_FLAGS_2_END_RCVD_34_MASK | \
+ CP_NV_FLAGS_2_DISCARD_35_MASK | \
+ CP_NV_FLAGS_2_END_RCVD_35_MASK | \
+ CP_NV_FLAGS_2_DISCARD_36_MASK | \
+ CP_NV_FLAGS_2_END_RCVD_36_MASK | \
+ CP_NV_FLAGS_2_DISCARD_37_MASK | \
+ CP_NV_FLAGS_2_END_RCVD_37_MASK | \
+ CP_NV_FLAGS_2_DISCARD_38_MASK | \
+ CP_NV_FLAGS_2_END_RCVD_38_MASK | \
+ CP_NV_FLAGS_2_DISCARD_39_MASK | \
+ CP_NV_FLAGS_2_END_RCVD_39_MASK | \
+ CP_NV_FLAGS_2_DISCARD_40_MASK | \
+ CP_NV_FLAGS_2_END_RCVD_40_MASK | \
+ CP_NV_FLAGS_2_DISCARD_41_MASK | \
+ CP_NV_FLAGS_2_END_RCVD_41_MASK | \
+ CP_NV_FLAGS_2_DISCARD_42_MASK | \
+ CP_NV_FLAGS_2_END_RCVD_42_MASK | \
+ CP_NV_FLAGS_2_DISCARD_43_MASK | \
+ CP_NV_FLAGS_2_END_RCVD_43_MASK | \
+ CP_NV_FLAGS_2_DISCARD_44_MASK | \
+ CP_NV_FLAGS_2_END_RCVD_44_MASK | \
+ CP_NV_FLAGS_2_DISCARD_45_MASK | \
+ CP_NV_FLAGS_2_END_RCVD_45_MASK | \
+ CP_NV_FLAGS_2_DISCARD_46_MASK | \
+ CP_NV_FLAGS_2_END_RCVD_46_MASK | \
+ CP_NV_FLAGS_2_DISCARD_47_MASK | \
+ CP_NV_FLAGS_2_END_RCVD_47_MASK)
+
+#define CP_NV_FLAGS_2(discard_32, end_rcvd_32, discard_33, end_rcvd_33, discard_34, end_rcvd_34, discard_35, end_rcvd_35, discard_36, end_rcvd_36, discard_37, end_rcvd_37, discard_38, end_rcvd_38, discard_39, end_rcvd_39, discard_40, end_rcvd_40, discard_41, end_rcvd_41, discard_42, end_rcvd_42, discard_43, end_rcvd_43, discard_44, end_rcvd_44, discard_45, end_rcvd_45, discard_46, end_rcvd_46, discard_47, end_rcvd_47) \
+ ((discard_32 << CP_NV_FLAGS_2_DISCARD_32_SHIFT) | \
+ (end_rcvd_32 << CP_NV_FLAGS_2_END_RCVD_32_SHIFT) | \
+ (discard_33 << CP_NV_FLAGS_2_DISCARD_33_SHIFT) | \
+ (end_rcvd_33 << CP_NV_FLAGS_2_END_RCVD_33_SHIFT) | \
+ (discard_34 << CP_NV_FLAGS_2_DISCARD_34_SHIFT) | \
+ (end_rcvd_34 << CP_NV_FLAGS_2_END_RCVD_34_SHIFT) | \
+ (discard_35 << CP_NV_FLAGS_2_DISCARD_35_SHIFT) | \
+ (end_rcvd_35 << CP_NV_FLAGS_2_END_RCVD_35_SHIFT) | \
+ (discard_36 << CP_NV_FLAGS_2_DISCARD_36_SHIFT) | \
+ (end_rcvd_36 << CP_NV_FLAGS_2_END_RCVD_36_SHIFT) | \
+ (discard_37 << CP_NV_FLAGS_2_DISCARD_37_SHIFT) | \
+ (end_rcvd_37 << CP_NV_FLAGS_2_END_RCVD_37_SHIFT) | \
+ (discard_38 << CP_NV_FLAGS_2_DISCARD_38_SHIFT) | \
+ (end_rcvd_38 << CP_NV_FLAGS_2_END_RCVD_38_SHIFT) | \
+ (discard_39 << CP_NV_FLAGS_2_DISCARD_39_SHIFT) | \
+ (end_rcvd_39 << CP_NV_FLAGS_2_END_RCVD_39_SHIFT) | \
+ (discard_40 << CP_NV_FLAGS_2_DISCARD_40_SHIFT) | \
+ (end_rcvd_40 << CP_NV_FLAGS_2_END_RCVD_40_SHIFT) | \
+ (discard_41 << CP_NV_FLAGS_2_DISCARD_41_SHIFT) | \
+ (end_rcvd_41 << CP_NV_FLAGS_2_END_RCVD_41_SHIFT) | \
+ (discard_42 << CP_NV_FLAGS_2_DISCARD_42_SHIFT) | \
+ (end_rcvd_42 << CP_NV_FLAGS_2_END_RCVD_42_SHIFT) | \
+ (discard_43 << CP_NV_FLAGS_2_DISCARD_43_SHIFT) | \
+ (end_rcvd_43 << CP_NV_FLAGS_2_END_RCVD_43_SHIFT) | \
+ (discard_44 << CP_NV_FLAGS_2_DISCARD_44_SHIFT) | \
+ (end_rcvd_44 << CP_NV_FLAGS_2_END_RCVD_44_SHIFT) | \
+ (discard_45 << CP_NV_FLAGS_2_DISCARD_45_SHIFT) | \
+ (end_rcvd_45 << CP_NV_FLAGS_2_END_RCVD_45_SHIFT) | \
+ (discard_46 << CP_NV_FLAGS_2_DISCARD_46_SHIFT) | \
+ (end_rcvd_46 << CP_NV_FLAGS_2_END_RCVD_46_SHIFT) | \
+ (discard_47 << CP_NV_FLAGS_2_DISCARD_47_SHIFT) | \
+ (end_rcvd_47 << CP_NV_FLAGS_2_END_RCVD_47_SHIFT))
+
+#define CP_NV_FLAGS_2_GET_DISCARD_32(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_DISCARD_32_MASK) >> CP_NV_FLAGS_2_DISCARD_32_SHIFT)
+#define CP_NV_FLAGS_2_GET_END_RCVD_32(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_END_RCVD_32_MASK) >> CP_NV_FLAGS_2_END_RCVD_32_SHIFT)
+#define CP_NV_FLAGS_2_GET_DISCARD_33(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_DISCARD_33_MASK) >> CP_NV_FLAGS_2_DISCARD_33_SHIFT)
+#define CP_NV_FLAGS_2_GET_END_RCVD_33(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_END_RCVD_33_MASK) >> CP_NV_FLAGS_2_END_RCVD_33_SHIFT)
+#define CP_NV_FLAGS_2_GET_DISCARD_34(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_DISCARD_34_MASK) >> CP_NV_FLAGS_2_DISCARD_34_SHIFT)
+#define CP_NV_FLAGS_2_GET_END_RCVD_34(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_END_RCVD_34_MASK) >> CP_NV_FLAGS_2_END_RCVD_34_SHIFT)
+#define CP_NV_FLAGS_2_GET_DISCARD_35(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_DISCARD_35_MASK) >> CP_NV_FLAGS_2_DISCARD_35_SHIFT)
+#define CP_NV_FLAGS_2_GET_END_RCVD_35(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_END_RCVD_35_MASK) >> CP_NV_FLAGS_2_END_RCVD_35_SHIFT)
+#define CP_NV_FLAGS_2_GET_DISCARD_36(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_DISCARD_36_MASK) >> CP_NV_FLAGS_2_DISCARD_36_SHIFT)
+#define CP_NV_FLAGS_2_GET_END_RCVD_36(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_END_RCVD_36_MASK) >> CP_NV_FLAGS_2_END_RCVD_36_SHIFT)
+#define CP_NV_FLAGS_2_GET_DISCARD_37(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_DISCARD_37_MASK) >> CP_NV_FLAGS_2_DISCARD_37_SHIFT)
+#define CP_NV_FLAGS_2_GET_END_RCVD_37(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_END_RCVD_37_MASK) >> CP_NV_FLAGS_2_END_RCVD_37_SHIFT)
+#define CP_NV_FLAGS_2_GET_DISCARD_38(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_DISCARD_38_MASK) >> CP_NV_FLAGS_2_DISCARD_38_SHIFT)
+#define CP_NV_FLAGS_2_GET_END_RCVD_38(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_END_RCVD_38_MASK) >> CP_NV_FLAGS_2_END_RCVD_38_SHIFT)
+#define CP_NV_FLAGS_2_GET_DISCARD_39(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_DISCARD_39_MASK) >> CP_NV_FLAGS_2_DISCARD_39_SHIFT)
+#define CP_NV_FLAGS_2_GET_END_RCVD_39(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_END_RCVD_39_MASK) >> CP_NV_FLAGS_2_END_RCVD_39_SHIFT)
+#define CP_NV_FLAGS_2_GET_DISCARD_40(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_DISCARD_40_MASK) >> CP_NV_FLAGS_2_DISCARD_40_SHIFT)
+#define CP_NV_FLAGS_2_GET_END_RCVD_40(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_END_RCVD_40_MASK) >> CP_NV_FLAGS_2_END_RCVD_40_SHIFT)
+#define CP_NV_FLAGS_2_GET_DISCARD_41(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_DISCARD_41_MASK) >> CP_NV_FLAGS_2_DISCARD_41_SHIFT)
+#define CP_NV_FLAGS_2_GET_END_RCVD_41(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_END_RCVD_41_MASK) >> CP_NV_FLAGS_2_END_RCVD_41_SHIFT)
+#define CP_NV_FLAGS_2_GET_DISCARD_42(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_DISCARD_42_MASK) >> CP_NV_FLAGS_2_DISCARD_42_SHIFT)
+#define CP_NV_FLAGS_2_GET_END_RCVD_42(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_END_RCVD_42_MASK) >> CP_NV_FLAGS_2_END_RCVD_42_SHIFT)
+#define CP_NV_FLAGS_2_GET_DISCARD_43(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_DISCARD_43_MASK) >> CP_NV_FLAGS_2_DISCARD_43_SHIFT)
+#define CP_NV_FLAGS_2_GET_END_RCVD_43(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_END_RCVD_43_MASK) >> CP_NV_FLAGS_2_END_RCVD_43_SHIFT)
+#define CP_NV_FLAGS_2_GET_DISCARD_44(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_DISCARD_44_MASK) >> CP_NV_FLAGS_2_DISCARD_44_SHIFT)
+#define CP_NV_FLAGS_2_GET_END_RCVD_44(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_END_RCVD_44_MASK) >> CP_NV_FLAGS_2_END_RCVD_44_SHIFT)
+#define CP_NV_FLAGS_2_GET_DISCARD_45(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_DISCARD_45_MASK) >> CP_NV_FLAGS_2_DISCARD_45_SHIFT)
+#define CP_NV_FLAGS_2_GET_END_RCVD_45(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_END_RCVD_45_MASK) >> CP_NV_FLAGS_2_END_RCVD_45_SHIFT)
+#define CP_NV_FLAGS_2_GET_DISCARD_46(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_DISCARD_46_MASK) >> CP_NV_FLAGS_2_DISCARD_46_SHIFT)
+#define CP_NV_FLAGS_2_GET_END_RCVD_46(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_END_RCVD_46_MASK) >> CP_NV_FLAGS_2_END_RCVD_46_SHIFT)
+#define CP_NV_FLAGS_2_GET_DISCARD_47(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_DISCARD_47_MASK) >> CP_NV_FLAGS_2_DISCARD_47_SHIFT)
+#define CP_NV_FLAGS_2_GET_END_RCVD_47(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_END_RCVD_47_MASK) >> CP_NV_FLAGS_2_END_RCVD_47_SHIFT)
+
+#define CP_NV_FLAGS_2_SET_DISCARD_32(cp_nv_flags_2_reg, discard_32) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_DISCARD_32_MASK) | (discard_32 << CP_NV_FLAGS_2_DISCARD_32_SHIFT)
+#define CP_NV_FLAGS_2_SET_END_RCVD_32(cp_nv_flags_2_reg, end_rcvd_32) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_END_RCVD_32_MASK) | (end_rcvd_32 << CP_NV_FLAGS_2_END_RCVD_32_SHIFT)
+#define CP_NV_FLAGS_2_SET_DISCARD_33(cp_nv_flags_2_reg, discard_33) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_DISCARD_33_MASK) | (discard_33 << CP_NV_FLAGS_2_DISCARD_33_SHIFT)
+#define CP_NV_FLAGS_2_SET_END_RCVD_33(cp_nv_flags_2_reg, end_rcvd_33) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_END_RCVD_33_MASK) | (end_rcvd_33 << CP_NV_FLAGS_2_END_RCVD_33_SHIFT)
+#define CP_NV_FLAGS_2_SET_DISCARD_34(cp_nv_flags_2_reg, discard_34) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_DISCARD_34_MASK) | (discard_34 << CP_NV_FLAGS_2_DISCARD_34_SHIFT)
+#define CP_NV_FLAGS_2_SET_END_RCVD_34(cp_nv_flags_2_reg, end_rcvd_34) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_END_RCVD_34_MASK) | (end_rcvd_34 << CP_NV_FLAGS_2_END_RCVD_34_SHIFT)
+#define CP_NV_FLAGS_2_SET_DISCARD_35(cp_nv_flags_2_reg, discard_35) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_DISCARD_35_MASK) | (discard_35 << CP_NV_FLAGS_2_DISCARD_35_SHIFT)
+#define CP_NV_FLAGS_2_SET_END_RCVD_35(cp_nv_flags_2_reg, end_rcvd_35) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_END_RCVD_35_MASK) | (end_rcvd_35 << CP_NV_FLAGS_2_END_RCVD_35_SHIFT)
+#define CP_NV_FLAGS_2_SET_DISCARD_36(cp_nv_flags_2_reg, discard_36) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_DISCARD_36_MASK) | (discard_36 << CP_NV_FLAGS_2_DISCARD_36_SHIFT)
+#define CP_NV_FLAGS_2_SET_END_RCVD_36(cp_nv_flags_2_reg, end_rcvd_36) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_END_RCVD_36_MASK) | (end_rcvd_36 << CP_NV_FLAGS_2_END_RCVD_36_SHIFT)
+#define CP_NV_FLAGS_2_SET_DISCARD_37(cp_nv_flags_2_reg, discard_37) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_DISCARD_37_MASK) | (discard_37 << CP_NV_FLAGS_2_DISCARD_37_SHIFT)
+#define CP_NV_FLAGS_2_SET_END_RCVD_37(cp_nv_flags_2_reg, end_rcvd_37) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_END_RCVD_37_MASK) | (end_rcvd_37 << CP_NV_FLAGS_2_END_RCVD_37_SHIFT)
+#define CP_NV_FLAGS_2_SET_DISCARD_38(cp_nv_flags_2_reg, discard_38) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_DISCARD_38_MASK) | (discard_38 << CP_NV_FLAGS_2_DISCARD_38_SHIFT)
+#define CP_NV_FLAGS_2_SET_END_RCVD_38(cp_nv_flags_2_reg, end_rcvd_38) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_END_RCVD_38_MASK) | (end_rcvd_38 << CP_NV_FLAGS_2_END_RCVD_38_SHIFT)
+#define CP_NV_FLAGS_2_SET_DISCARD_39(cp_nv_flags_2_reg, discard_39) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_DISCARD_39_MASK) | (discard_39 << CP_NV_FLAGS_2_DISCARD_39_SHIFT)
+#define CP_NV_FLAGS_2_SET_END_RCVD_39(cp_nv_flags_2_reg, end_rcvd_39) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_END_RCVD_39_MASK) | (end_rcvd_39 << CP_NV_FLAGS_2_END_RCVD_39_SHIFT)
+#define CP_NV_FLAGS_2_SET_DISCARD_40(cp_nv_flags_2_reg, discard_40) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_DISCARD_40_MASK) | (discard_40 << CP_NV_FLAGS_2_DISCARD_40_SHIFT)
+#define CP_NV_FLAGS_2_SET_END_RCVD_40(cp_nv_flags_2_reg, end_rcvd_40) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_END_RCVD_40_MASK) | (end_rcvd_40 << CP_NV_FLAGS_2_END_RCVD_40_SHIFT)
+#define CP_NV_FLAGS_2_SET_DISCARD_41(cp_nv_flags_2_reg, discard_41) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_DISCARD_41_MASK) | (discard_41 << CP_NV_FLAGS_2_DISCARD_41_SHIFT)
+#define CP_NV_FLAGS_2_SET_END_RCVD_41(cp_nv_flags_2_reg, end_rcvd_41) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_END_RCVD_41_MASK) | (end_rcvd_41 << CP_NV_FLAGS_2_END_RCVD_41_SHIFT)
+#define CP_NV_FLAGS_2_SET_DISCARD_42(cp_nv_flags_2_reg, discard_42) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_DISCARD_42_MASK) | (discard_42 << CP_NV_FLAGS_2_DISCARD_42_SHIFT)
+#define CP_NV_FLAGS_2_SET_END_RCVD_42(cp_nv_flags_2_reg, end_rcvd_42) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_END_RCVD_42_MASK) | (end_rcvd_42 << CP_NV_FLAGS_2_END_RCVD_42_SHIFT)
+#define CP_NV_FLAGS_2_SET_DISCARD_43(cp_nv_flags_2_reg, discard_43) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_DISCARD_43_MASK) | (discard_43 << CP_NV_FLAGS_2_DISCARD_43_SHIFT)
+#define CP_NV_FLAGS_2_SET_END_RCVD_43(cp_nv_flags_2_reg, end_rcvd_43) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_END_RCVD_43_MASK) | (end_rcvd_43 << CP_NV_FLAGS_2_END_RCVD_43_SHIFT)
+#define CP_NV_FLAGS_2_SET_DISCARD_44(cp_nv_flags_2_reg, discard_44) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_DISCARD_44_MASK) | (discard_44 << CP_NV_FLAGS_2_DISCARD_44_SHIFT)
+#define CP_NV_FLAGS_2_SET_END_RCVD_44(cp_nv_flags_2_reg, end_rcvd_44) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_END_RCVD_44_MASK) | (end_rcvd_44 << CP_NV_FLAGS_2_END_RCVD_44_SHIFT)
+#define CP_NV_FLAGS_2_SET_DISCARD_45(cp_nv_flags_2_reg, discard_45) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_DISCARD_45_MASK) | (discard_45 << CP_NV_FLAGS_2_DISCARD_45_SHIFT)
+#define CP_NV_FLAGS_2_SET_END_RCVD_45(cp_nv_flags_2_reg, end_rcvd_45) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_END_RCVD_45_MASK) | (end_rcvd_45 << CP_NV_FLAGS_2_END_RCVD_45_SHIFT)
+#define CP_NV_FLAGS_2_SET_DISCARD_46(cp_nv_flags_2_reg, discard_46) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_DISCARD_46_MASK) | (discard_46 << CP_NV_FLAGS_2_DISCARD_46_SHIFT)
+#define CP_NV_FLAGS_2_SET_END_RCVD_46(cp_nv_flags_2_reg, end_rcvd_46) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_END_RCVD_46_MASK) | (end_rcvd_46 << CP_NV_FLAGS_2_END_RCVD_46_SHIFT)
+#define CP_NV_FLAGS_2_SET_DISCARD_47(cp_nv_flags_2_reg, discard_47) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_DISCARD_47_MASK) | (discard_47 << CP_NV_FLAGS_2_DISCARD_47_SHIFT)
+#define CP_NV_FLAGS_2_SET_END_RCVD_47(cp_nv_flags_2_reg, end_rcvd_47) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_END_RCVD_47_MASK) | (end_rcvd_47 << CP_NV_FLAGS_2_END_RCVD_47_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_nv_flags_2_t {
+ unsigned int discard_32 : CP_NV_FLAGS_2_DISCARD_32_SIZE;
+ unsigned int end_rcvd_32 : CP_NV_FLAGS_2_END_RCVD_32_SIZE;
+ unsigned int discard_33 : CP_NV_FLAGS_2_DISCARD_33_SIZE;
+ unsigned int end_rcvd_33 : CP_NV_FLAGS_2_END_RCVD_33_SIZE;
+ unsigned int discard_34 : CP_NV_FLAGS_2_DISCARD_34_SIZE;
+ unsigned int end_rcvd_34 : CP_NV_FLAGS_2_END_RCVD_34_SIZE;
+ unsigned int discard_35 : CP_NV_FLAGS_2_DISCARD_35_SIZE;
+ unsigned int end_rcvd_35 : CP_NV_FLAGS_2_END_RCVD_35_SIZE;
+ unsigned int discard_36 : CP_NV_FLAGS_2_DISCARD_36_SIZE;
+ unsigned int end_rcvd_36 : CP_NV_FLAGS_2_END_RCVD_36_SIZE;
+ unsigned int discard_37 : CP_NV_FLAGS_2_DISCARD_37_SIZE;
+ unsigned int end_rcvd_37 : CP_NV_FLAGS_2_END_RCVD_37_SIZE;
+ unsigned int discard_38 : CP_NV_FLAGS_2_DISCARD_38_SIZE;
+ unsigned int end_rcvd_38 : CP_NV_FLAGS_2_END_RCVD_38_SIZE;
+ unsigned int discard_39 : CP_NV_FLAGS_2_DISCARD_39_SIZE;
+ unsigned int end_rcvd_39 : CP_NV_FLAGS_2_END_RCVD_39_SIZE;
+ unsigned int discard_40 : CP_NV_FLAGS_2_DISCARD_40_SIZE;
+ unsigned int end_rcvd_40 : CP_NV_FLAGS_2_END_RCVD_40_SIZE;
+ unsigned int discard_41 : CP_NV_FLAGS_2_DISCARD_41_SIZE;
+ unsigned int end_rcvd_41 : CP_NV_FLAGS_2_END_RCVD_41_SIZE;
+ unsigned int discard_42 : CP_NV_FLAGS_2_DISCARD_42_SIZE;
+ unsigned int end_rcvd_42 : CP_NV_FLAGS_2_END_RCVD_42_SIZE;
+ unsigned int discard_43 : CP_NV_FLAGS_2_DISCARD_43_SIZE;
+ unsigned int end_rcvd_43 : CP_NV_FLAGS_2_END_RCVD_43_SIZE;
+ unsigned int discard_44 : CP_NV_FLAGS_2_DISCARD_44_SIZE;
+ unsigned int end_rcvd_44 : CP_NV_FLAGS_2_END_RCVD_44_SIZE;
+ unsigned int discard_45 : CP_NV_FLAGS_2_DISCARD_45_SIZE;
+ unsigned int end_rcvd_45 : CP_NV_FLAGS_2_END_RCVD_45_SIZE;
+ unsigned int discard_46 : CP_NV_FLAGS_2_DISCARD_46_SIZE;
+ unsigned int end_rcvd_46 : CP_NV_FLAGS_2_END_RCVD_46_SIZE;
+ unsigned int discard_47 : CP_NV_FLAGS_2_DISCARD_47_SIZE;
+ unsigned int end_rcvd_47 : CP_NV_FLAGS_2_END_RCVD_47_SIZE;
+ } cp_nv_flags_2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_nv_flags_2_t {
+ unsigned int end_rcvd_47 : CP_NV_FLAGS_2_END_RCVD_47_SIZE;
+ unsigned int discard_47 : CP_NV_FLAGS_2_DISCARD_47_SIZE;
+ unsigned int end_rcvd_46 : CP_NV_FLAGS_2_END_RCVD_46_SIZE;
+ unsigned int discard_46 : CP_NV_FLAGS_2_DISCARD_46_SIZE;
+ unsigned int end_rcvd_45 : CP_NV_FLAGS_2_END_RCVD_45_SIZE;
+ unsigned int discard_45 : CP_NV_FLAGS_2_DISCARD_45_SIZE;
+ unsigned int end_rcvd_44 : CP_NV_FLAGS_2_END_RCVD_44_SIZE;
+ unsigned int discard_44 : CP_NV_FLAGS_2_DISCARD_44_SIZE;
+ unsigned int end_rcvd_43 : CP_NV_FLAGS_2_END_RCVD_43_SIZE;
+ unsigned int discard_43 : CP_NV_FLAGS_2_DISCARD_43_SIZE;
+ unsigned int end_rcvd_42 : CP_NV_FLAGS_2_END_RCVD_42_SIZE;
+ unsigned int discard_42 : CP_NV_FLAGS_2_DISCARD_42_SIZE;
+ unsigned int end_rcvd_41 : CP_NV_FLAGS_2_END_RCVD_41_SIZE;
+ unsigned int discard_41 : CP_NV_FLAGS_2_DISCARD_41_SIZE;
+ unsigned int end_rcvd_40 : CP_NV_FLAGS_2_END_RCVD_40_SIZE;
+ unsigned int discard_40 : CP_NV_FLAGS_2_DISCARD_40_SIZE;
+ unsigned int end_rcvd_39 : CP_NV_FLAGS_2_END_RCVD_39_SIZE;
+ unsigned int discard_39 : CP_NV_FLAGS_2_DISCARD_39_SIZE;
+ unsigned int end_rcvd_38 : CP_NV_FLAGS_2_END_RCVD_38_SIZE;
+ unsigned int discard_38 : CP_NV_FLAGS_2_DISCARD_38_SIZE;
+ unsigned int end_rcvd_37 : CP_NV_FLAGS_2_END_RCVD_37_SIZE;
+ unsigned int discard_37 : CP_NV_FLAGS_2_DISCARD_37_SIZE;
+ unsigned int end_rcvd_36 : CP_NV_FLAGS_2_END_RCVD_36_SIZE;
+ unsigned int discard_36 : CP_NV_FLAGS_2_DISCARD_36_SIZE;
+ unsigned int end_rcvd_35 : CP_NV_FLAGS_2_END_RCVD_35_SIZE;
+ unsigned int discard_35 : CP_NV_FLAGS_2_DISCARD_35_SIZE;
+ unsigned int end_rcvd_34 : CP_NV_FLAGS_2_END_RCVD_34_SIZE;
+ unsigned int discard_34 : CP_NV_FLAGS_2_DISCARD_34_SIZE;
+ unsigned int end_rcvd_33 : CP_NV_FLAGS_2_END_RCVD_33_SIZE;
+ unsigned int discard_33 : CP_NV_FLAGS_2_DISCARD_33_SIZE;
+ unsigned int end_rcvd_32 : CP_NV_FLAGS_2_END_RCVD_32_SIZE;
+ unsigned int discard_32 : CP_NV_FLAGS_2_DISCARD_32_SIZE;
+ } cp_nv_flags_2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_nv_flags_2_t f;
+} cp_nv_flags_2_u;
+
+
+/*
+ * CP_NV_FLAGS_3 struct
+ */
+
+#define CP_NV_FLAGS_3_DISCARD_48_SIZE 1
+#define CP_NV_FLAGS_3_END_RCVD_48_SIZE 1
+#define CP_NV_FLAGS_3_DISCARD_49_SIZE 1
+#define CP_NV_FLAGS_3_END_RCVD_49_SIZE 1
+#define CP_NV_FLAGS_3_DISCARD_50_SIZE 1
+#define CP_NV_FLAGS_3_END_RCVD_50_SIZE 1
+#define CP_NV_FLAGS_3_DISCARD_51_SIZE 1
+#define CP_NV_FLAGS_3_END_RCVD_51_SIZE 1
+#define CP_NV_FLAGS_3_DISCARD_52_SIZE 1
+#define CP_NV_FLAGS_3_END_RCVD_52_SIZE 1
+#define CP_NV_FLAGS_3_DISCARD_53_SIZE 1
+#define CP_NV_FLAGS_3_END_RCVD_53_SIZE 1
+#define CP_NV_FLAGS_3_DISCARD_54_SIZE 1
+#define CP_NV_FLAGS_3_END_RCVD_54_SIZE 1
+#define CP_NV_FLAGS_3_DISCARD_55_SIZE 1
+#define CP_NV_FLAGS_3_END_RCVD_55_SIZE 1
+#define CP_NV_FLAGS_3_DISCARD_56_SIZE 1
+#define CP_NV_FLAGS_3_END_RCVD_56_SIZE 1
+#define CP_NV_FLAGS_3_DISCARD_57_SIZE 1
+#define CP_NV_FLAGS_3_END_RCVD_57_SIZE 1
+#define CP_NV_FLAGS_3_DISCARD_58_SIZE 1
+#define CP_NV_FLAGS_3_END_RCVD_58_SIZE 1
+#define CP_NV_FLAGS_3_DISCARD_59_SIZE 1
+#define CP_NV_FLAGS_3_END_RCVD_59_SIZE 1
+#define CP_NV_FLAGS_3_DISCARD_60_SIZE 1
+#define CP_NV_FLAGS_3_END_RCVD_60_SIZE 1
+#define CP_NV_FLAGS_3_DISCARD_61_SIZE 1
+#define CP_NV_FLAGS_3_END_RCVD_61_SIZE 1
+#define CP_NV_FLAGS_3_DISCARD_62_SIZE 1
+#define CP_NV_FLAGS_3_END_RCVD_62_SIZE 1
+#define CP_NV_FLAGS_3_DISCARD_63_SIZE 1
+#define CP_NV_FLAGS_3_END_RCVD_63_SIZE 1
+
+#define CP_NV_FLAGS_3_DISCARD_48_SHIFT 0
+#define CP_NV_FLAGS_3_END_RCVD_48_SHIFT 1
+#define CP_NV_FLAGS_3_DISCARD_49_SHIFT 2
+#define CP_NV_FLAGS_3_END_RCVD_49_SHIFT 3
+#define CP_NV_FLAGS_3_DISCARD_50_SHIFT 4
+#define CP_NV_FLAGS_3_END_RCVD_50_SHIFT 5
+#define CP_NV_FLAGS_3_DISCARD_51_SHIFT 6
+#define CP_NV_FLAGS_3_END_RCVD_51_SHIFT 7
+#define CP_NV_FLAGS_3_DISCARD_52_SHIFT 8
+#define CP_NV_FLAGS_3_END_RCVD_52_SHIFT 9
+#define CP_NV_FLAGS_3_DISCARD_53_SHIFT 10
+#define CP_NV_FLAGS_3_END_RCVD_53_SHIFT 11
+#define CP_NV_FLAGS_3_DISCARD_54_SHIFT 12
+#define CP_NV_FLAGS_3_END_RCVD_54_SHIFT 13
+#define CP_NV_FLAGS_3_DISCARD_55_SHIFT 14
+#define CP_NV_FLAGS_3_END_RCVD_55_SHIFT 15
+#define CP_NV_FLAGS_3_DISCARD_56_SHIFT 16
+#define CP_NV_FLAGS_3_END_RCVD_56_SHIFT 17
+#define CP_NV_FLAGS_3_DISCARD_57_SHIFT 18
+#define CP_NV_FLAGS_3_END_RCVD_57_SHIFT 19
+#define CP_NV_FLAGS_3_DISCARD_58_SHIFT 20
+#define CP_NV_FLAGS_3_END_RCVD_58_SHIFT 21
+#define CP_NV_FLAGS_3_DISCARD_59_SHIFT 22
+#define CP_NV_FLAGS_3_END_RCVD_59_SHIFT 23
+#define CP_NV_FLAGS_3_DISCARD_60_SHIFT 24
+#define CP_NV_FLAGS_3_END_RCVD_60_SHIFT 25
+#define CP_NV_FLAGS_3_DISCARD_61_SHIFT 26
+#define CP_NV_FLAGS_3_END_RCVD_61_SHIFT 27
+#define CP_NV_FLAGS_3_DISCARD_62_SHIFT 28
+#define CP_NV_FLAGS_3_END_RCVD_62_SHIFT 29
+#define CP_NV_FLAGS_3_DISCARD_63_SHIFT 30
+#define CP_NV_FLAGS_3_END_RCVD_63_SHIFT 31
+
+#define CP_NV_FLAGS_3_DISCARD_48_MASK 0x00000001
+#define CP_NV_FLAGS_3_END_RCVD_48_MASK 0x00000002
+#define CP_NV_FLAGS_3_DISCARD_49_MASK 0x00000004
+#define CP_NV_FLAGS_3_END_RCVD_49_MASK 0x00000008
+#define CP_NV_FLAGS_3_DISCARD_50_MASK 0x00000010
+#define CP_NV_FLAGS_3_END_RCVD_50_MASK 0x00000020
+#define CP_NV_FLAGS_3_DISCARD_51_MASK 0x00000040
+#define CP_NV_FLAGS_3_END_RCVD_51_MASK 0x00000080
+#define CP_NV_FLAGS_3_DISCARD_52_MASK 0x00000100
+#define CP_NV_FLAGS_3_END_RCVD_52_MASK 0x00000200
+#define CP_NV_FLAGS_3_DISCARD_53_MASK 0x00000400
+#define CP_NV_FLAGS_3_END_RCVD_53_MASK 0x00000800
+#define CP_NV_FLAGS_3_DISCARD_54_MASK 0x00001000
+#define CP_NV_FLAGS_3_END_RCVD_54_MASK 0x00002000
+#define CP_NV_FLAGS_3_DISCARD_55_MASK 0x00004000
+#define CP_NV_FLAGS_3_END_RCVD_55_MASK 0x00008000
+#define CP_NV_FLAGS_3_DISCARD_56_MASK 0x00010000
+#define CP_NV_FLAGS_3_END_RCVD_56_MASK 0x00020000
+#define CP_NV_FLAGS_3_DISCARD_57_MASK 0x00040000
+#define CP_NV_FLAGS_3_END_RCVD_57_MASK 0x00080000
+#define CP_NV_FLAGS_3_DISCARD_58_MASK 0x00100000
+#define CP_NV_FLAGS_3_END_RCVD_58_MASK 0x00200000
+#define CP_NV_FLAGS_3_DISCARD_59_MASK 0x00400000
+#define CP_NV_FLAGS_3_END_RCVD_59_MASK 0x00800000
+#define CP_NV_FLAGS_3_DISCARD_60_MASK 0x01000000
+#define CP_NV_FLAGS_3_END_RCVD_60_MASK 0x02000000
+#define CP_NV_FLAGS_3_DISCARD_61_MASK 0x04000000
+#define CP_NV_FLAGS_3_END_RCVD_61_MASK 0x08000000
+#define CP_NV_FLAGS_3_DISCARD_62_MASK 0x10000000
+#define CP_NV_FLAGS_3_END_RCVD_62_MASK 0x20000000
+#define CP_NV_FLAGS_3_DISCARD_63_MASK 0x40000000
+#define CP_NV_FLAGS_3_END_RCVD_63_MASK 0x80000000
+
+#define CP_NV_FLAGS_3_MASK \
+ (CP_NV_FLAGS_3_DISCARD_48_MASK | \
+ CP_NV_FLAGS_3_END_RCVD_48_MASK | \
+ CP_NV_FLAGS_3_DISCARD_49_MASK | \
+ CP_NV_FLAGS_3_END_RCVD_49_MASK | \
+ CP_NV_FLAGS_3_DISCARD_50_MASK | \
+ CP_NV_FLAGS_3_END_RCVD_50_MASK | \
+ CP_NV_FLAGS_3_DISCARD_51_MASK | \
+ CP_NV_FLAGS_3_END_RCVD_51_MASK | \
+ CP_NV_FLAGS_3_DISCARD_52_MASK | \
+ CP_NV_FLAGS_3_END_RCVD_52_MASK | \
+ CP_NV_FLAGS_3_DISCARD_53_MASK | \
+ CP_NV_FLAGS_3_END_RCVD_53_MASK | \
+ CP_NV_FLAGS_3_DISCARD_54_MASK | \
+ CP_NV_FLAGS_3_END_RCVD_54_MASK | \
+ CP_NV_FLAGS_3_DISCARD_55_MASK | \
+ CP_NV_FLAGS_3_END_RCVD_55_MASK | \
+ CP_NV_FLAGS_3_DISCARD_56_MASK | \
+ CP_NV_FLAGS_3_END_RCVD_56_MASK | \
+ CP_NV_FLAGS_3_DISCARD_57_MASK | \
+ CP_NV_FLAGS_3_END_RCVD_57_MASK | \
+ CP_NV_FLAGS_3_DISCARD_58_MASK | \
+ CP_NV_FLAGS_3_END_RCVD_58_MASK | \
+ CP_NV_FLAGS_3_DISCARD_59_MASK | \
+ CP_NV_FLAGS_3_END_RCVD_59_MASK | \
+ CP_NV_FLAGS_3_DISCARD_60_MASK | \
+ CP_NV_FLAGS_3_END_RCVD_60_MASK | \
+ CP_NV_FLAGS_3_DISCARD_61_MASK | \
+ CP_NV_FLAGS_3_END_RCVD_61_MASK | \
+ CP_NV_FLAGS_3_DISCARD_62_MASK | \
+ CP_NV_FLAGS_3_END_RCVD_62_MASK | \
+ CP_NV_FLAGS_3_DISCARD_63_MASK | \
+ CP_NV_FLAGS_3_END_RCVD_63_MASK)
+
+#define CP_NV_FLAGS_3(discard_48, end_rcvd_48, discard_49, end_rcvd_49, discard_50, end_rcvd_50, discard_51, end_rcvd_51, discard_52, end_rcvd_52, discard_53, end_rcvd_53, discard_54, end_rcvd_54, discard_55, end_rcvd_55, discard_56, end_rcvd_56, discard_57, end_rcvd_57, discard_58, end_rcvd_58, discard_59, end_rcvd_59, discard_60, end_rcvd_60, discard_61, end_rcvd_61, discard_62, end_rcvd_62, discard_63, end_rcvd_63) \
+ ((discard_48 << CP_NV_FLAGS_3_DISCARD_48_SHIFT) | \
+ (end_rcvd_48 << CP_NV_FLAGS_3_END_RCVD_48_SHIFT) | \
+ (discard_49 << CP_NV_FLAGS_3_DISCARD_49_SHIFT) | \
+ (end_rcvd_49 << CP_NV_FLAGS_3_END_RCVD_49_SHIFT) | \
+ (discard_50 << CP_NV_FLAGS_3_DISCARD_50_SHIFT) | \
+ (end_rcvd_50 << CP_NV_FLAGS_3_END_RCVD_50_SHIFT) | \
+ (discard_51 << CP_NV_FLAGS_3_DISCARD_51_SHIFT) | \
+ (end_rcvd_51 << CP_NV_FLAGS_3_END_RCVD_51_SHIFT) | \
+ (discard_52 << CP_NV_FLAGS_3_DISCARD_52_SHIFT) | \
+ (end_rcvd_52 << CP_NV_FLAGS_3_END_RCVD_52_SHIFT) | \
+ (discard_53 << CP_NV_FLAGS_3_DISCARD_53_SHIFT) | \
+ (end_rcvd_53 << CP_NV_FLAGS_3_END_RCVD_53_SHIFT) | \
+ (discard_54 << CP_NV_FLAGS_3_DISCARD_54_SHIFT) | \
+ (end_rcvd_54 << CP_NV_FLAGS_3_END_RCVD_54_SHIFT) | \
+ (discard_55 << CP_NV_FLAGS_3_DISCARD_55_SHIFT) | \
+ (end_rcvd_55 << CP_NV_FLAGS_3_END_RCVD_55_SHIFT) | \
+ (discard_56 << CP_NV_FLAGS_3_DISCARD_56_SHIFT) | \
+ (end_rcvd_56 << CP_NV_FLAGS_3_END_RCVD_56_SHIFT) | \
+ (discard_57 << CP_NV_FLAGS_3_DISCARD_57_SHIFT) | \
+ (end_rcvd_57 << CP_NV_FLAGS_3_END_RCVD_57_SHIFT) | \
+ (discard_58 << CP_NV_FLAGS_3_DISCARD_58_SHIFT) | \
+ (end_rcvd_58 << CP_NV_FLAGS_3_END_RCVD_58_SHIFT) | \
+ (discard_59 << CP_NV_FLAGS_3_DISCARD_59_SHIFT) | \
+ (end_rcvd_59 << CP_NV_FLAGS_3_END_RCVD_59_SHIFT) | \
+ (discard_60 << CP_NV_FLAGS_3_DISCARD_60_SHIFT) | \
+ (end_rcvd_60 << CP_NV_FLAGS_3_END_RCVD_60_SHIFT) | \
+ (discard_61 << CP_NV_FLAGS_3_DISCARD_61_SHIFT) | \
+ (end_rcvd_61 << CP_NV_FLAGS_3_END_RCVD_61_SHIFT) | \
+ (discard_62 << CP_NV_FLAGS_3_DISCARD_62_SHIFT) | \
+ (end_rcvd_62 << CP_NV_FLAGS_3_END_RCVD_62_SHIFT) | \
+ (discard_63 << CP_NV_FLAGS_3_DISCARD_63_SHIFT) | \
+ (end_rcvd_63 << CP_NV_FLAGS_3_END_RCVD_63_SHIFT))
+
+#define CP_NV_FLAGS_3_GET_DISCARD_48(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_DISCARD_48_MASK) >> CP_NV_FLAGS_3_DISCARD_48_SHIFT)
+#define CP_NV_FLAGS_3_GET_END_RCVD_48(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_END_RCVD_48_MASK) >> CP_NV_FLAGS_3_END_RCVD_48_SHIFT)
+#define CP_NV_FLAGS_3_GET_DISCARD_49(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_DISCARD_49_MASK) >> CP_NV_FLAGS_3_DISCARD_49_SHIFT)
+#define CP_NV_FLAGS_3_GET_END_RCVD_49(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_END_RCVD_49_MASK) >> CP_NV_FLAGS_3_END_RCVD_49_SHIFT)
+#define CP_NV_FLAGS_3_GET_DISCARD_50(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_DISCARD_50_MASK) >> CP_NV_FLAGS_3_DISCARD_50_SHIFT)
+#define CP_NV_FLAGS_3_GET_END_RCVD_50(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_END_RCVD_50_MASK) >> CP_NV_FLAGS_3_END_RCVD_50_SHIFT)
+#define CP_NV_FLAGS_3_GET_DISCARD_51(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_DISCARD_51_MASK) >> CP_NV_FLAGS_3_DISCARD_51_SHIFT)
+#define CP_NV_FLAGS_3_GET_END_RCVD_51(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_END_RCVD_51_MASK) >> CP_NV_FLAGS_3_END_RCVD_51_SHIFT)
+#define CP_NV_FLAGS_3_GET_DISCARD_52(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_DISCARD_52_MASK) >> CP_NV_FLAGS_3_DISCARD_52_SHIFT)
+#define CP_NV_FLAGS_3_GET_END_RCVD_52(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_END_RCVD_52_MASK) >> CP_NV_FLAGS_3_END_RCVD_52_SHIFT)
+#define CP_NV_FLAGS_3_GET_DISCARD_53(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_DISCARD_53_MASK) >> CP_NV_FLAGS_3_DISCARD_53_SHIFT)
+#define CP_NV_FLAGS_3_GET_END_RCVD_53(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_END_RCVD_53_MASK) >> CP_NV_FLAGS_3_END_RCVD_53_SHIFT)
+#define CP_NV_FLAGS_3_GET_DISCARD_54(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_DISCARD_54_MASK) >> CP_NV_FLAGS_3_DISCARD_54_SHIFT)
+#define CP_NV_FLAGS_3_GET_END_RCVD_54(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_END_RCVD_54_MASK) >> CP_NV_FLAGS_3_END_RCVD_54_SHIFT)
+#define CP_NV_FLAGS_3_GET_DISCARD_55(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_DISCARD_55_MASK) >> CP_NV_FLAGS_3_DISCARD_55_SHIFT)
+#define CP_NV_FLAGS_3_GET_END_RCVD_55(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_END_RCVD_55_MASK) >> CP_NV_FLAGS_3_END_RCVD_55_SHIFT)
+#define CP_NV_FLAGS_3_GET_DISCARD_56(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_DISCARD_56_MASK) >> CP_NV_FLAGS_3_DISCARD_56_SHIFT)
+#define CP_NV_FLAGS_3_GET_END_RCVD_56(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_END_RCVD_56_MASK) >> CP_NV_FLAGS_3_END_RCVD_56_SHIFT)
+#define CP_NV_FLAGS_3_GET_DISCARD_57(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_DISCARD_57_MASK) >> CP_NV_FLAGS_3_DISCARD_57_SHIFT)
+#define CP_NV_FLAGS_3_GET_END_RCVD_57(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_END_RCVD_57_MASK) >> CP_NV_FLAGS_3_END_RCVD_57_SHIFT)
+#define CP_NV_FLAGS_3_GET_DISCARD_58(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_DISCARD_58_MASK) >> CP_NV_FLAGS_3_DISCARD_58_SHIFT)
+#define CP_NV_FLAGS_3_GET_END_RCVD_58(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_END_RCVD_58_MASK) >> CP_NV_FLAGS_3_END_RCVD_58_SHIFT)
+#define CP_NV_FLAGS_3_GET_DISCARD_59(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_DISCARD_59_MASK) >> CP_NV_FLAGS_3_DISCARD_59_SHIFT)
+#define CP_NV_FLAGS_3_GET_END_RCVD_59(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_END_RCVD_59_MASK) >> CP_NV_FLAGS_3_END_RCVD_59_SHIFT)
+#define CP_NV_FLAGS_3_GET_DISCARD_60(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_DISCARD_60_MASK) >> CP_NV_FLAGS_3_DISCARD_60_SHIFT)
+#define CP_NV_FLAGS_3_GET_END_RCVD_60(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_END_RCVD_60_MASK) >> CP_NV_FLAGS_3_END_RCVD_60_SHIFT)
+#define CP_NV_FLAGS_3_GET_DISCARD_61(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_DISCARD_61_MASK) >> CP_NV_FLAGS_3_DISCARD_61_SHIFT)
+#define CP_NV_FLAGS_3_GET_END_RCVD_61(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_END_RCVD_61_MASK) >> CP_NV_FLAGS_3_END_RCVD_61_SHIFT)
+#define CP_NV_FLAGS_3_GET_DISCARD_62(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_DISCARD_62_MASK) >> CP_NV_FLAGS_3_DISCARD_62_SHIFT)
+#define CP_NV_FLAGS_3_GET_END_RCVD_62(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_END_RCVD_62_MASK) >> CP_NV_FLAGS_3_END_RCVD_62_SHIFT)
+#define CP_NV_FLAGS_3_GET_DISCARD_63(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_DISCARD_63_MASK) >> CP_NV_FLAGS_3_DISCARD_63_SHIFT)
+#define CP_NV_FLAGS_3_GET_END_RCVD_63(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_END_RCVD_63_MASK) >> CP_NV_FLAGS_3_END_RCVD_63_SHIFT)
+
+#define CP_NV_FLAGS_3_SET_DISCARD_48(cp_nv_flags_3_reg, discard_48) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_DISCARD_48_MASK) | (discard_48 << CP_NV_FLAGS_3_DISCARD_48_SHIFT)
+#define CP_NV_FLAGS_3_SET_END_RCVD_48(cp_nv_flags_3_reg, end_rcvd_48) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_END_RCVD_48_MASK) | (end_rcvd_48 << CP_NV_FLAGS_3_END_RCVD_48_SHIFT)
+#define CP_NV_FLAGS_3_SET_DISCARD_49(cp_nv_flags_3_reg, discard_49) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_DISCARD_49_MASK) | (discard_49 << CP_NV_FLAGS_3_DISCARD_49_SHIFT)
+#define CP_NV_FLAGS_3_SET_END_RCVD_49(cp_nv_flags_3_reg, end_rcvd_49) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_END_RCVD_49_MASK) | (end_rcvd_49 << CP_NV_FLAGS_3_END_RCVD_49_SHIFT)
+#define CP_NV_FLAGS_3_SET_DISCARD_50(cp_nv_flags_3_reg, discard_50) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_DISCARD_50_MASK) | (discard_50 << CP_NV_FLAGS_3_DISCARD_50_SHIFT)
+#define CP_NV_FLAGS_3_SET_END_RCVD_50(cp_nv_flags_3_reg, end_rcvd_50) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_END_RCVD_50_MASK) | (end_rcvd_50 << CP_NV_FLAGS_3_END_RCVD_50_SHIFT)
+#define CP_NV_FLAGS_3_SET_DISCARD_51(cp_nv_flags_3_reg, discard_51) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_DISCARD_51_MASK) | (discard_51 << CP_NV_FLAGS_3_DISCARD_51_SHIFT)
+#define CP_NV_FLAGS_3_SET_END_RCVD_51(cp_nv_flags_3_reg, end_rcvd_51) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_END_RCVD_51_MASK) | (end_rcvd_51 << CP_NV_FLAGS_3_END_RCVD_51_SHIFT)
+#define CP_NV_FLAGS_3_SET_DISCARD_52(cp_nv_flags_3_reg, discard_52) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_DISCARD_52_MASK) | (discard_52 << CP_NV_FLAGS_3_DISCARD_52_SHIFT)
+#define CP_NV_FLAGS_3_SET_END_RCVD_52(cp_nv_flags_3_reg, end_rcvd_52) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_END_RCVD_52_MASK) | (end_rcvd_52 << CP_NV_FLAGS_3_END_RCVD_52_SHIFT)
+#define CP_NV_FLAGS_3_SET_DISCARD_53(cp_nv_flags_3_reg, discard_53) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_DISCARD_53_MASK) | (discard_53 << CP_NV_FLAGS_3_DISCARD_53_SHIFT)
+#define CP_NV_FLAGS_3_SET_END_RCVD_53(cp_nv_flags_3_reg, end_rcvd_53) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_END_RCVD_53_MASK) | (end_rcvd_53 << CP_NV_FLAGS_3_END_RCVD_53_SHIFT)
+#define CP_NV_FLAGS_3_SET_DISCARD_54(cp_nv_flags_3_reg, discard_54) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_DISCARD_54_MASK) | (discard_54 << CP_NV_FLAGS_3_DISCARD_54_SHIFT)
+#define CP_NV_FLAGS_3_SET_END_RCVD_54(cp_nv_flags_3_reg, end_rcvd_54) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_END_RCVD_54_MASK) | (end_rcvd_54 << CP_NV_FLAGS_3_END_RCVD_54_SHIFT)
+#define CP_NV_FLAGS_3_SET_DISCARD_55(cp_nv_flags_3_reg, discard_55) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_DISCARD_55_MASK) | (discard_55 << CP_NV_FLAGS_3_DISCARD_55_SHIFT)
+#define CP_NV_FLAGS_3_SET_END_RCVD_55(cp_nv_flags_3_reg, end_rcvd_55) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_END_RCVD_55_MASK) | (end_rcvd_55 << CP_NV_FLAGS_3_END_RCVD_55_SHIFT)
+#define CP_NV_FLAGS_3_SET_DISCARD_56(cp_nv_flags_3_reg, discard_56) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_DISCARD_56_MASK) | (discard_56 << CP_NV_FLAGS_3_DISCARD_56_SHIFT)
+#define CP_NV_FLAGS_3_SET_END_RCVD_56(cp_nv_flags_3_reg, end_rcvd_56) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_END_RCVD_56_MASK) | (end_rcvd_56 << CP_NV_FLAGS_3_END_RCVD_56_SHIFT)
+#define CP_NV_FLAGS_3_SET_DISCARD_57(cp_nv_flags_3_reg, discard_57) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_DISCARD_57_MASK) | (discard_57 << CP_NV_FLAGS_3_DISCARD_57_SHIFT)
+#define CP_NV_FLAGS_3_SET_END_RCVD_57(cp_nv_flags_3_reg, end_rcvd_57) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_END_RCVD_57_MASK) | (end_rcvd_57 << CP_NV_FLAGS_3_END_RCVD_57_SHIFT)
+#define CP_NV_FLAGS_3_SET_DISCARD_58(cp_nv_flags_3_reg, discard_58) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_DISCARD_58_MASK) | (discard_58 << CP_NV_FLAGS_3_DISCARD_58_SHIFT)
+#define CP_NV_FLAGS_3_SET_END_RCVD_58(cp_nv_flags_3_reg, end_rcvd_58) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_END_RCVD_58_MASK) | (end_rcvd_58 << CP_NV_FLAGS_3_END_RCVD_58_SHIFT)
+#define CP_NV_FLAGS_3_SET_DISCARD_59(cp_nv_flags_3_reg, discard_59) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_DISCARD_59_MASK) | (discard_59 << CP_NV_FLAGS_3_DISCARD_59_SHIFT)
+#define CP_NV_FLAGS_3_SET_END_RCVD_59(cp_nv_flags_3_reg, end_rcvd_59) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_END_RCVD_59_MASK) | (end_rcvd_59 << CP_NV_FLAGS_3_END_RCVD_59_SHIFT)
+#define CP_NV_FLAGS_3_SET_DISCARD_60(cp_nv_flags_3_reg, discard_60) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_DISCARD_60_MASK) | (discard_60 << CP_NV_FLAGS_3_DISCARD_60_SHIFT)
+#define CP_NV_FLAGS_3_SET_END_RCVD_60(cp_nv_flags_3_reg, end_rcvd_60) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_END_RCVD_60_MASK) | (end_rcvd_60 << CP_NV_FLAGS_3_END_RCVD_60_SHIFT)
+#define CP_NV_FLAGS_3_SET_DISCARD_61(cp_nv_flags_3_reg, discard_61) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_DISCARD_61_MASK) | (discard_61 << CP_NV_FLAGS_3_DISCARD_61_SHIFT)
+#define CP_NV_FLAGS_3_SET_END_RCVD_61(cp_nv_flags_3_reg, end_rcvd_61) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_END_RCVD_61_MASK) | (end_rcvd_61 << CP_NV_FLAGS_3_END_RCVD_61_SHIFT)
+#define CP_NV_FLAGS_3_SET_DISCARD_62(cp_nv_flags_3_reg, discard_62) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_DISCARD_62_MASK) | (discard_62 << CP_NV_FLAGS_3_DISCARD_62_SHIFT)
+#define CP_NV_FLAGS_3_SET_END_RCVD_62(cp_nv_flags_3_reg, end_rcvd_62) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_END_RCVD_62_MASK) | (end_rcvd_62 << CP_NV_FLAGS_3_END_RCVD_62_SHIFT)
+#define CP_NV_FLAGS_3_SET_DISCARD_63(cp_nv_flags_3_reg, discard_63) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_DISCARD_63_MASK) | (discard_63 << CP_NV_FLAGS_3_DISCARD_63_SHIFT)
+#define CP_NV_FLAGS_3_SET_END_RCVD_63(cp_nv_flags_3_reg, end_rcvd_63) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_END_RCVD_63_MASK) | (end_rcvd_63 << CP_NV_FLAGS_3_END_RCVD_63_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_nv_flags_3_t {
+ unsigned int discard_48 : CP_NV_FLAGS_3_DISCARD_48_SIZE;
+ unsigned int end_rcvd_48 : CP_NV_FLAGS_3_END_RCVD_48_SIZE;
+ unsigned int discard_49 : CP_NV_FLAGS_3_DISCARD_49_SIZE;
+ unsigned int end_rcvd_49 : CP_NV_FLAGS_3_END_RCVD_49_SIZE;
+ unsigned int discard_50 : CP_NV_FLAGS_3_DISCARD_50_SIZE;
+ unsigned int end_rcvd_50 : CP_NV_FLAGS_3_END_RCVD_50_SIZE;
+ unsigned int discard_51 : CP_NV_FLAGS_3_DISCARD_51_SIZE;
+ unsigned int end_rcvd_51 : CP_NV_FLAGS_3_END_RCVD_51_SIZE;
+ unsigned int discard_52 : CP_NV_FLAGS_3_DISCARD_52_SIZE;
+ unsigned int end_rcvd_52 : CP_NV_FLAGS_3_END_RCVD_52_SIZE;
+ unsigned int discard_53 : CP_NV_FLAGS_3_DISCARD_53_SIZE;
+ unsigned int end_rcvd_53 : CP_NV_FLAGS_3_END_RCVD_53_SIZE;
+ unsigned int discard_54 : CP_NV_FLAGS_3_DISCARD_54_SIZE;
+ unsigned int end_rcvd_54 : CP_NV_FLAGS_3_END_RCVD_54_SIZE;
+ unsigned int discard_55 : CP_NV_FLAGS_3_DISCARD_55_SIZE;
+ unsigned int end_rcvd_55 : CP_NV_FLAGS_3_END_RCVD_55_SIZE;
+ unsigned int discard_56 : CP_NV_FLAGS_3_DISCARD_56_SIZE;
+ unsigned int end_rcvd_56 : CP_NV_FLAGS_3_END_RCVD_56_SIZE;
+ unsigned int discard_57 : CP_NV_FLAGS_3_DISCARD_57_SIZE;
+ unsigned int end_rcvd_57 : CP_NV_FLAGS_3_END_RCVD_57_SIZE;
+ unsigned int discard_58 : CP_NV_FLAGS_3_DISCARD_58_SIZE;
+ unsigned int end_rcvd_58 : CP_NV_FLAGS_3_END_RCVD_58_SIZE;
+ unsigned int discard_59 : CP_NV_FLAGS_3_DISCARD_59_SIZE;
+ unsigned int end_rcvd_59 : CP_NV_FLAGS_3_END_RCVD_59_SIZE;
+ unsigned int discard_60 : CP_NV_FLAGS_3_DISCARD_60_SIZE;
+ unsigned int end_rcvd_60 : CP_NV_FLAGS_3_END_RCVD_60_SIZE;
+ unsigned int discard_61 : CP_NV_FLAGS_3_DISCARD_61_SIZE;
+ unsigned int end_rcvd_61 : CP_NV_FLAGS_3_END_RCVD_61_SIZE;
+ unsigned int discard_62 : CP_NV_FLAGS_3_DISCARD_62_SIZE;
+ unsigned int end_rcvd_62 : CP_NV_FLAGS_3_END_RCVD_62_SIZE;
+ unsigned int discard_63 : CP_NV_FLAGS_3_DISCARD_63_SIZE;
+ unsigned int end_rcvd_63 : CP_NV_FLAGS_3_END_RCVD_63_SIZE;
+ } cp_nv_flags_3_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_nv_flags_3_t {
+ unsigned int end_rcvd_63 : CP_NV_FLAGS_3_END_RCVD_63_SIZE;
+ unsigned int discard_63 : CP_NV_FLAGS_3_DISCARD_63_SIZE;
+ unsigned int end_rcvd_62 : CP_NV_FLAGS_3_END_RCVD_62_SIZE;
+ unsigned int discard_62 : CP_NV_FLAGS_3_DISCARD_62_SIZE;
+ unsigned int end_rcvd_61 : CP_NV_FLAGS_3_END_RCVD_61_SIZE;
+ unsigned int discard_61 : CP_NV_FLAGS_3_DISCARD_61_SIZE;
+ unsigned int end_rcvd_60 : CP_NV_FLAGS_3_END_RCVD_60_SIZE;
+ unsigned int discard_60 : CP_NV_FLAGS_3_DISCARD_60_SIZE;
+ unsigned int end_rcvd_59 : CP_NV_FLAGS_3_END_RCVD_59_SIZE;
+ unsigned int discard_59 : CP_NV_FLAGS_3_DISCARD_59_SIZE;
+ unsigned int end_rcvd_58 : CP_NV_FLAGS_3_END_RCVD_58_SIZE;
+ unsigned int discard_58 : CP_NV_FLAGS_3_DISCARD_58_SIZE;
+ unsigned int end_rcvd_57 : CP_NV_FLAGS_3_END_RCVD_57_SIZE;
+ unsigned int discard_57 : CP_NV_FLAGS_3_DISCARD_57_SIZE;
+ unsigned int end_rcvd_56 : CP_NV_FLAGS_3_END_RCVD_56_SIZE;
+ unsigned int discard_56 : CP_NV_FLAGS_3_DISCARD_56_SIZE;
+ unsigned int end_rcvd_55 : CP_NV_FLAGS_3_END_RCVD_55_SIZE;
+ unsigned int discard_55 : CP_NV_FLAGS_3_DISCARD_55_SIZE;
+ unsigned int end_rcvd_54 : CP_NV_FLAGS_3_END_RCVD_54_SIZE;
+ unsigned int discard_54 : CP_NV_FLAGS_3_DISCARD_54_SIZE;
+ unsigned int end_rcvd_53 : CP_NV_FLAGS_3_END_RCVD_53_SIZE;
+ unsigned int discard_53 : CP_NV_FLAGS_3_DISCARD_53_SIZE;
+ unsigned int end_rcvd_52 : CP_NV_FLAGS_3_END_RCVD_52_SIZE;
+ unsigned int discard_52 : CP_NV_FLAGS_3_DISCARD_52_SIZE;
+ unsigned int end_rcvd_51 : CP_NV_FLAGS_3_END_RCVD_51_SIZE;
+ unsigned int discard_51 : CP_NV_FLAGS_3_DISCARD_51_SIZE;
+ unsigned int end_rcvd_50 : CP_NV_FLAGS_3_END_RCVD_50_SIZE;
+ unsigned int discard_50 : CP_NV_FLAGS_3_DISCARD_50_SIZE;
+ unsigned int end_rcvd_49 : CP_NV_FLAGS_3_END_RCVD_49_SIZE;
+ unsigned int discard_49 : CP_NV_FLAGS_3_DISCARD_49_SIZE;
+ unsigned int end_rcvd_48 : CP_NV_FLAGS_3_END_RCVD_48_SIZE;
+ unsigned int discard_48 : CP_NV_FLAGS_3_DISCARD_48_SIZE;
+ } cp_nv_flags_3_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_nv_flags_3_t f;
+} cp_nv_flags_3_u;
+
+
+/*
+ * CP_STATE_DEBUG_INDEX struct
+ */
+
+#define CP_STATE_DEBUG_INDEX_STATE_DEBUG_INDEX_SIZE 5
+
+#define CP_STATE_DEBUG_INDEX_STATE_DEBUG_INDEX_SHIFT 0
+
+#define CP_STATE_DEBUG_INDEX_STATE_DEBUG_INDEX_MASK 0x0000001f
+
+#define CP_STATE_DEBUG_INDEX_MASK \
+ (CP_STATE_DEBUG_INDEX_STATE_DEBUG_INDEX_MASK)
+
+#define CP_STATE_DEBUG_INDEX(state_debug_index) \
+ ((state_debug_index << CP_STATE_DEBUG_INDEX_STATE_DEBUG_INDEX_SHIFT))
+
+#define CP_STATE_DEBUG_INDEX_GET_STATE_DEBUG_INDEX(cp_state_debug_index) \
+ ((cp_state_debug_index & CP_STATE_DEBUG_INDEX_STATE_DEBUG_INDEX_MASK) >> CP_STATE_DEBUG_INDEX_STATE_DEBUG_INDEX_SHIFT)
+
+#define CP_STATE_DEBUG_INDEX_SET_STATE_DEBUG_INDEX(cp_state_debug_index_reg, state_debug_index) \
+ cp_state_debug_index_reg = (cp_state_debug_index_reg & ~CP_STATE_DEBUG_INDEX_STATE_DEBUG_INDEX_MASK) | (state_debug_index << CP_STATE_DEBUG_INDEX_STATE_DEBUG_INDEX_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_state_debug_index_t {
+ unsigned int state_debug_index : CP_STATE_DEBUG_INDEX_STATE_DEBUG_INDEX_SIZE;
+ unsigned int : 27;
+ } cp_state_debug_index_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_state_debug_index_t {
+ unsigned int : 27;
+ unsigned int state_debug_index : CP_STATE_DEBUG_INDEX_STATE_DEBUG_INDEX_SIZE;
+ } cp_state_debug_index_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_state_debug_index_t f;
+} cp_state_debug_index_u;
+
+
+/*
+ * CP_STATE_DEBUG_DATA struct
+ */
+
+#define CP_STATE_DEBUG_DATA_STATE_DEBUG_DATA_SIZE 32
+
+#define CP_STATE_DEBUG_DATA_STATE_DEBUG_DATA_SHIFT 0
+
+#define CP_STATE_DEBUG_DATA_STATE_DEBUG_DATA_MASK 0xffffffff
+
+#define CP_STATE_DEBUG_DATA_MASK \
+ (CP_STATE_DEBUG_DATA_STATE_DEBUG_DATA_MASK)
+
+#define CP_STATE_DEBUG_DATA(state_debug_data) \
+ ((state_debug_data << CP_STATE_DEBUG_DATA_STATE_DEBUG_DATA_SHIFT))
+
+#define CP_STATE_DEBUG_DATA_GET_STATE_DEBUG_DATA(cp_state_debug_data) \
+ ((cp_state_debug_data & CP_STATE_DEBUG_DATA_STATE_DEBUG_DATA_MASK) >> CP_STATE_DEBUG_DATA_STATE_DEBUG_DATA_SHIFT)
+
+#define CP_STATE_DEBUG_DATA_SET_STATE_DEBUG_DATA(cp_state_debug_data_reg, state_debug_data) \
+ cp_state_debug_data_reg = (cp_state_debug_data_reg & ~CP_STATE_DEBUG_DATA_STATE_DEBUG_DATA_MASK) | (state_debug_data << CP_STATE_DEBUG_DATA_STATE_DEBUG_DATA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_state_debug_data_t {
+ unsigned int state_debug_data : CP_STATE_DEBUG_DATA_STATE_DEBUG_DATA_SIZE;
+ } cp_state_debug_data_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_state_debug_data_t {
+ unsigned int state_debug_data : CP_STATE_DEBUG_DATA_STATE_DEBUG_DATA_SIZE;
+ } cp_state_debug_data_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_state_debug_data_t f;
+} cp_state_debug_data_u;
+
+
+/*
+ * CP_PROG_COUNTER struct
+ */
+
+#define CP_PROG_COUNTER_COUNTER_SIZE 32
+
+#define CP_PROG_COUNTER_COUNTER_SHIFT 0
+
+#define CP_PROG_COUNTER_COUNTER_MASK 0xffffffff
+
+#define CP_PROG_COUNTER_MASK \
+ (CP_PROG_COUNTER_COUNTER_MASK)
+
+#define CP_PROG_COUNTER(counter) \
+ ((counter << CP_PROG_COUNTER_COUNTER_SHIFT))
+
+#define CP_PROG_COUNTER_GET_COUNTER(cp_prog_counter) \
+ ((cp_prog_counter & CP_PROG_COUNTER_COUNTER_MASK) >> CP_PROG_COUNTER_COUNTER_SHIFT)
+
+#define CP_PROG_COUNTER_SET_COUNTER(cp_prog_counter_reg, counter) \
+ cp_prog_counter_reg = (cp_prog_counter_reg & ~CP_PROG_COUNTER_COUNTER_MASK) | (counter << CP_PROG_COUNTER_COUNTER_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_prog_counter_t {
+ unsigned int counter : CP_PROG_COUNTER_COUNTER_SIZE;
+ } cp_prog_counter_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_prog_counter_t {
+ unsigned int counter : CP_PROG_COUNTER_COUNTER_SIZE;
+ } cp_prog_counter_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_prog_counter_t f;
+} cp_prog_counter_u;
+
+
+/*
+ * CP_STAT struct
+ */
+
+#define CP_STAT_MIU_WR_BUSY_SIZE 1
+#define CP_STAT_MIU_RD_REQ_BUSY_SIZE 1
+#define CP_STAT_MIU_RD_RETURN_BUSY_SIZE 1
+#define CP_STAT_RBIU_BUSY_SIZE 1
+#define CP_STAT_RCIU_BUSY_SIZE 1
+#define CP_STAT_CSF_RING_BUSY_SIZE 1
+#define CP_STAT_CSF_INDIRECTS_BUSY_SIZE 1
+#define CP_STAT_CSF_INDIRECT2_BUSY_SIZE 1
+#define CP_STAT_CSF_ST_BUSY_SIZE 1
+#define CP_STAT_CSF_BUSY_SIZE 1
+#define CP_STAT_RING_QUEUE_BUSY_SIZE 1
+#define CP_STAT_INDIRECTS_QUEUE_BUSY_SIZE 1
+#define CP_STAT_INDIRECT2_QUEUE_BUSY_SIZE 1
+#define CP_STAT_ST_QUEUE_BUSY_SIZE 1
+#define CP_STAT_PFP_BUSY_SIZE 1
+#define CP_STAT_MEQ_RING_BUSY_SIZE 1
+#define CP_STAT_MEQ_INDIRECTS_BUSY_SIZE 1
+#define CP_STAT_MEQ_INDIRECT2_BUSY_SIZE 1
+#define CP_STAT_MIU_WC_STALL_SIZE 1
+#define CP_STAT_CP_NRT_BUSY_SIZE 1
+#define CP_STAT__3D_BUSY_SIZE 1
+#define CP_STAT_ME_BUSY_SIZE 1
+#define CP_STAT_ME_WC_BUSY_SIZE 1
+#define CP_STAT_MIU_WC_TRACK_FIFO_EMPTY_SIZE 1
+#define CP_STAT_CP_BUSY_SIZE 1
+
+#define CP_STAT_MIU_WR_BUSY_SHIFT 0
+#define CP_STAT_MIU_RD_REQ_BUSY_SHIFT 1
+#define CP_STAT_MIU_RD_RETURN_BUSY_SHIFT 2
+#define CP_STAT_RBIU_BUSY_SHIFT 3
+#define CP_STAT_RCIU_BUSY_SHIFT 4
+#define CP_STAT_CSF_RING_BUSY_SHIFT 5
+#define CP_STAT_CSF_INDIRECTS_BUSY_SHIFT 6
+#define CP_STAT_CSF_INDIRECT2_BUSY_SHIFT 7
+#define CP_STAT_CSF_ST_BUSY_SHIFT 9
+#define CP_STAT_CSF_BUSY_SHIFT 10
+#define CP_STAT_RING_QUEUE_BUSY_SHIFT 11
+#define CP_STAT_INDIRECTS_QUEUE_BUSY_SHIFT 12
+#define CP_STAT_INDIRECT2_QUEUE_BUSY_SHIFT 13
+#define CP_STAT_ST_QUEUE_BUSY_SHIFT 16
+#define CP_STAT_PFP_BUSY_SHIFT 17
+#define CP_STAT_MEQ_RING_BUSY_SHIFT 18
+#define CP_STAT_MEQ_INDIRECTS_BUSY_SHIFT 19
+#define CP_STAT_MEQ_INDIRECT2_BUSY_SHIFT 20
+#define CP_STAT_MIU_WC_STALL_SHIFT 21
+#define CP_STAT_CP_NRT_BUSY_SHIFT 22
+#define CP_STAT__3D_BUSY_SHIFT 23
+#define CP_STAT_ME_BUSY_SHIFT 26
+#define CP_STAT_ME_WC_BUSY_SHIFT 29
+#define CP_STAT_MIU_WC_TRACK_FIFO_EMPTY_SHIFT 30
+#define CP_STAT_CP_BUSY_SHIFT 31
+
+#define CP_STAT_MIU_WR_BUSY_MASK 0x00000001
+#define CP_STAT_MIU_RD_REQ_BUSY_MASK 0x00000002
+#define CP_STAT_MIU_RD_RETURN_BUSY_MASK 0x00000004
+#define CP_STAT_RBIU_BUSY_MASK 0x00000008
+#define CP_STAT_RCIU_BUSY_MASK 0x00000010
+#define CP_STAT_CSF_RING_BUSY_MASK 0x00000020
+#define CP_STAT_CSF_INDIRECTS_BUSY_MASK 0x00000040
+#define CP_STAT_CSF_INDIRECT2_BUSY_MASK 0x00000080
+#define CP_STAT_CSF_ST_BUSY_MASK 0x00000200
+#define CP_STAT_CSF_BUSY_MASK 0x00000400
+#define CP_STAT_RING_QUEUE_BUSY_MASK 0x00000800
+#define CP_STAT_INDIRECTS_QUEUE_BUSY_MASK 0x00001000
+#define CP_STAT_INDIRECT2_QUEUE_BUSY_MASK 0x00002000
+#define CP_STAT_ST_QUEUE_BUSY_MASK 0x00010000
+#define CP_STAT_PFP_BUSY_MASK 0x00020000
+#define CP_STAT_MEQ_RING_BUSY_MASK 0x00040000
+#define CP_STAT_MEQ_INDIRECTS_BUSY_MASK 0x00080000
+#define CP_STAT_MEQ_INDIRECT2_BUSY_MASK 0x00100000
+#define CP_STAT_MIU_WC_STALL_MASK 0x00200000
+#define CP_STAT_CP_NRT_BUSY_MASK 0x00400000
+#define CP_STAT__3D_BUSY_MASK 0x00800000
+#define CP_STAT_ME_BUSY_MASK 0x04000000
+#define CP_STAT_ME_WC_BUSY_MASK 0x20000000
+#define CP_STAT_MIU_WC_TRACK_FIFO_EMPTY_MASK 0x40000000
+#define CP_STAT_CP_BUSY_MASK 0x80000000
+
+#define CP_STAT_MASK \
+ (CP_STAT_MIU_WR_BUSY_MASK | \
+ CP_STAT_MIU_RD_REQ_BUSY_MASK | \
+ CP_STAT_MIU_RD_RETURN_BUSY_MASK | \
+ CP_STAT_RBIU_BUSY_MASK | \
+ CP_STAT_RCIU_BUSY_MASK | \
+ CP_STAT_CSF_RING_BUSY_MASK | \
+ CP_STAT_CSF_INDIRECTS_BUSY_MASK | \
+ CP_STAT_CSF_INDIRECT2_BUSY_MASK | \
+ CP_STAT_CSF_ST_BUSY_MASK | \
+ CP_STAT_CSF_BUSY_MASK | \
+ CP_STAT_RING_QUEUE_BUSY_MASK | \
+ CP_STAT_INDIRECTS_QUEUE_BUSY_MASK | \
+ CP_STAT_INDIRECT2_QUEUE_BUSY_MASK | \
+ CP_STAT_ST_QUEUE_BUSY_MASK | \
+ CP_STAT_PFP_BUSY_MASK | \
+ CP_STAT_MEQ_RING_BUSY_MASK | \
+ CP_STAT_MEQ_INDIRECTS_BUSY_MASK | \
+ CP_STAT_MEQ_INDIRECT2_BUSY_MASK | \
+ CP_STAT_MIU_WC_STALL_MASK | \
+ CP_STAT_CP_NRT_BUSY_MASK | \
+ CP_STAT__3D_BUSY_MASK | \
+ CP_STAT_ME_BUSY_MASK | \
+ CP_STAT_ME_WC_BUSY_MASK | \
+ CP_STAT_MIU_WC_TRACK_FIFO_EMPTY_MASK | \
+ CP_STAT_CP_BUSY_MASK)
+
+#define CP_STAT(miu_wr_busy, miu_rd_req_busy, miu_rd_return_busy, rbiu_busy, rciu_busy, csf_ring_busy, csf_indirects_busy, csf_indirect2_busy, csf_st_busy, csf_busy, ring_queue_busy, indirects_queue_busy, indirect2_queue_busy, st_queue_busy, pfp_busy, meq_ring_busy, meq_indirects_busy, meq_indirect2_busy, miu_wc_stall, cp_nrt_busy, _3d_busy, me_busy, me_wc_busy, miu_wc_track_fifo_empty, cp_busy) \
+ ((miu_wr_busy << CP_STAT_MIU_WR_BUSY_SHIFT) | \
+ (miu_rd_req_busy << CP_STAT_MIU_RD_REQ_BUSY_SHIFT) | \
+ (miu_rd_return_busy << CP_STAT_MIU_RD_RETURN_BUSY_SHIFT) | \
+ (rbiu_busy << CP_STAT_RBIU_BUSY_SHIFT) | \
+ (rciu_busy << CP_STAT_RCIU_BUSY_SHIFT) | \
+ (csf_ring_busy << CP_STAT_CSF_RING_BUSY_SHIFT) | \
+ (csf_indirects_busy << CP_STAT_CSF_INDIRECTS_BUSY_SHIFT) | \
+ (csf_indirect2_busy << CP_STAT_CSF_INDIRECT2_BUSY_SHIFT) | \
+ (csf_st_busy << CP_STAT_CSF_ST_BUSY_SHIFT) | \
+ (csf_busy << CP_STAT_CSF_BUSY_SHIFT) | \
+ (ring_queue_busy << CP_STAT_RING_QUEUE_BUSY_SHIFT) | \
+ (indirects_queue_busy << CP_STAT_INDIRECTS_QUEUE_BUSY_SHIFT) | \
+ (indirect2_queue_busy << CP_STAT_INDIRECT2_QUEUE_BUSY_SHIFT) | \
+ (st_queue_busy << CP_STAT_ST_QUEUE_BUSY_SHIFT) | \
+ (pfp_busy << CP_STAT_PFP_BUSY_SHIFT) | \
+ (meq_ring_busy << CP_STAT_MEQ_RING_BUSY_SHIFT) | \
+ (meq_indirects_busy << CP_STAT_MEQ_INDIRECTS_BUSY_SHIFT) | \
+ (meq_indirect2_busy << CP_STAT_MEQ_INDIRECT2_BUSY_SHIFT) | \
+ (miu_wc_stall << CP_STAT_MIU_WC_STALL_SHIFT) | \
+ (cp_nrt_busy << CP_STAT_CP_NRT_BUSY_SHIFT) | \
+ (_3d_busy << CP_STAT__3D_BUSY_SHIFT) | \
+ (me_busy << CP_STAT_ME_BUSY_SHIFT) | \
+ (me_wc_busy << CP_STAT_ME_WC_BUSY_SHIFT) | \
+ (miu_wc_track_fifo_empty << CP_STAT_MIU_WC_TRACK_FIFO_EMPTY_SHIFT) | \
+ (cp_busy << CP_STAT_CP_BUSY_SHIFT))
+
+#define CP_STAT_GET_MIU_WR_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_MIU_WR_BUSY_MASK) >> CP_STAT_MIU_WR_BUSY_SHIFT)
+#define CP_STAT_GET_MIU_RD_REQ_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_MIU_RD_REQ_BUSY_MASK) >> CP_STAT_MIU_RD_REQ_BUSY_SHIFT)
+#define CP_STAT_GET_MIU_RD_RETURN_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_MIU_RD_RETURN_BUSY_MASK) >> CP_STAT_MIU_RD_RETURN_BUSY_SHIFT)
+#define CP_STAT_GET_RBIU_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_RBIU_BUSY_MASK) >> CP_STAT_RBIU_BUSY_SHIFT)
+#define CP_STAT_GET_RCIU_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_RCIU_BUSY_MASK) >> CP_STAT_RCIU_BUSY_SHIFT)
+#define CP_STAT_GET_CSF_RING_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_CSF_RING_BUSY_MASK) >> CP_STAT_CSF_RING_BUSY_SHIFT)
+#define CP_STAT_GET_CSF_INDIRECTS_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_CSF_INDIRECTS_BUSY_MASK) >> CP_STAT_CSF_INDIRECTS_BUSY_SHIFT)
+#define CP_STAT_GET_CSF_INDIRECT2_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_CSF_INDIRECT2_BUSY_MASK) >> CP_STAT_CSF_INDIRECT2_BUSY_SHIFT)
+#define CP_STAT_GET_CSF_ST_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_CSF_ST_BUSY_MASK) >> CP_STAT_CSF_ST_BUSY_SHIFT)
+#define CP_STAT_GET_CSF_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_CSF_BUSY_MASK) >> CP_STAT_CSF_BUSY_SHIFT)
+#define CP_STAT_GET_RING_QUEUE_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_RING_QUEUE_BUSY_MASK) >> CP_STAT_RING_QUEUE_BUSY_SHIFT)
+#define CP_STAT_GET_INDIRECTS_QUEUE_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_INDIRECTS_QUEUE_BUSY_MASK) >> CP_STAT_INDIRECTS_QUEUE_BUSY_SHIFT)
+#define CP_STAT_GET_INDIRECT2_QUEUE_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_INDIRECT2_QUEUE_BUSY_MASK) >> CP_STAT_INDIRECT2_QUEUE_BUSY_SHIFT)
+#define CP_STAT_GET_ST_QUEUE_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_ST_QUEUE_BUSY_MASK) >> CP_STAT_ST_QUEUE_BUSY_SHIFT)
+#define CP_STAT_GET_PFP_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_PFP_BUSY_MASK) >> CP_STAT_PFP_BUSY_SHIFT)
+#define CP_STAT_GET_MEQ_RING_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_MEQ_RING_BUSY_MASK) >> CP_STAT_MEQ_RING_BUSY_SHIFT)
+#define CP_STAT_GET_MEQ_INDIRECTS_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_MEQ_INDIRECTS_BUSY_MASK) >> CP_STAT_MEQ_INDIRECTS_BUSY_SHIFT)
+#define CP_STAT_GET_MEQ_INDIRECT2_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_MEQ_INDIRECT2_BUSY_MASK) >> CP_STAT_MEQ_INDIRECT2_BUSY_SHIFT)
+#define CP_STAT_GET_MIU_WC_STALL(cp_stat) \
+ ((cp_stat & CP_STAT_MIU_WC_STALL_MASK) >> CP_STAT_MIU_WC_STALL_SHIFT)
+#define CP_STAT_GET_CP_NRT_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_CP_NRT_BUSY_MASK) >> CP_STAT_CP_NRT_BUSY_SHIFT)
+#define CP_STAT_GET__3D_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT__3D_BUSY_MASK) >> CP_STAT__3D_BUSY_SHIFT)
+#define CP_STAT_GET_ME_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_ME_BUSY_MASK) >> CP_STAT_ME_BUSY_SHIFT)
+#define CP_STAT_GET_ME_WC_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_ME_WC_BUSY_MASK) >> CP_STAT_ME_WC_BUSY_SHIFT)
+#define CP_STAT_GET_MIU_WC_TRACK_FIFO_EMPTY(cp_stat) \
+ ((cp_stat & CP_STAT_MIU_WC_TRACK_FIFO_EMPTY_MASK) >> CP_STAT_MIU_WC_TRACK_FIFO_EMPTY_SHIFT)
+#define CP_STAT_GET_CP_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_CP_BUSY_MASK) >> CP_STAT_CP_BUSY_SHIFT)
+
+#define CP_STAT_SET_MIU_WR_BUSY(cp_stat_reg, miu_wr_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_MIU_WR_BUSY_MASK) | (miu_wr_busy << CP_STAT_MIU_WR_BUSY_SHIFT)
+#define CP_STAT_SET_MIU_RD_REQ_BUSY(cp_stat_reg, miu_rd_req_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_MIU_RD_REQ_BUSY_MASK) | (miu_rd_req_busy << CP_STAT_MIU_RD_REQ_BUSY_SHIFT)
+#define CP_STAT_SET_MIU_RD_RETURN_BUSY(cp_stat_reg, miu_rd_return_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_MIU_RD_RETURN_BUSY_MASK) | (miu_rd_return_busy << CP_STAT_MIU_RD_RETURN_BUSY_SHIFT)
+#define CP_STAT_SET_RBIU_BUSY(cp_stat_reg, rbiu_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_RBIU_BUSY_MASK) | (rbiu_busy << CP_STAT_RBIU_BUSY_SHIFT)
+#define CP_STAT_SET_RCIU_BUSY(cp_stat_reg, rciu_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_RCIU_BUSY_MASK) | (rciu_busy << CP_STAT_RCIU_BUSY_SHIFT)
+#define CP_STAT_SET_CSF_RING_BUSY(cp_stat_reg, csf_ring_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_CSF_RING_BUSY_MASK) | (csf_ring_busy << CP_STAT_CSF_RING_BUSY_SHIFT)
+#define CP_STAT_SET_CSF_INDIRECTS_BUSY(cp_stat_reg, csf_indirects_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_CSF_INDIRECTS_BUSY_MASK) | (csf_indirects_busy << CP_STAT_CSF_INDIRECTS_BUSY_SHIFT)
+#define CP_STAT_SET_CSF_INDIRECT2_BUSY(cp_stat_reg, csf_indirect2_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_CSF_INDIRECT2_BUSY_MASK) | (csf_indirect2_busy << CP_STAT_CSF_INDIRECT2_BUSY_SHIFT)
+#define CP_STAT_SET_CSF_ST_BUSY(cp_stat_reg, csf_st_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_CSF_ST_BUSY_MASK) | (csf_st_busy << CP_STAT_CSF_ST_BUSY_SHIFT)
+#define CP_STAT_SET_CSF_BUSY(cp_stat_reg, csf_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_CSF_BUSY_MASK) | (csf_busy << CP_STAT_CSF_BUSY_SHIFT)
+#define CP_STAT_SET_RING_QUEUE_BUSY(cp_stat_reg, ring_queue_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_RING_QUEUE_BUSY_MASK) | (ring_queue_busy << CP_STAT_RING_QUEUE_BUSY_SHIFT)
+#define CP_STAT_SET_INDIRECTS_QUEUE_BUSY(cp_stat_reg, indirects_queue_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_INDIRECTS_QUEUE_BUSY_MASK) | (indirects_queue_busy << CP_STAT_INDIRECTS_QUEUE_BUSY_SHIFT)
+#define CP_STAT_SET_INDIRECT2_QUEUE_BUSY(cp_stat_reg, indirect2_queue_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_INDIRECT2_QUEUE_BUSY_MASK) | (indirect2_queue_busy << CP_STAT_INDIRECT2_QUEUE_BUSY_SHIFT)
+#define CP_STAT_SET_ST_QUEUE_BUSY(cp_stat_reg, st_queue_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_ST_QUEUE_BUSY_MASK) | (st_queue_busy << CP_STAT_ST_QUEUE_BUSY_SHIFT)
+#define CP_STAT_SET_PFP_BUSY(cp_stat_reg, pfp_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_PFP_BUSY_MASK) | (pfp_busy << CP_STAT_PFP_BUSY_SHIFT)
+#define CP_STAT_SET_MEQ_RING_BUSY(cp_stat_reg, meq_ring_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_MEQ_RING_BUSY_MASK) | (meq_ring_busy << CP_STAT_MEQ_RING_BUSY_SHIFT)
+#define CP_STAT_SET_MEQ_INDIRECTS_BUSY(cp_stat_reg, meq_indirects_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_MEQ_INDIRECTS_BUSY_MASK) | (meq_indirects_busy << CP_STAT_MEQ_INDIRECTS_BUSY_SHIFT)
+#define CP_STAT_SET_MEQ_INDIRECT2_BUSY(cp_stat_reg, meq_indirect2_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_MEQ_INDIRECT2_BUSY_MASK) | (meq_indirect2_busy << CP_STAT_MEQ_INDIRECT2_BUSY_SHIFT)
+#define CP_STAT_SET_MIU_WC_STALL(cp_stat_reg, miu_wc_stall) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_MIU_WC_STALL_MASK) | (miu_wc_stall << CP_STAT_MIU_WC_STALL_SHIFT)
+#define CP_STAT_SET_CP_NRT_BUSY(cp_stat_reg, cp_nrt_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_CP_NRT_BUSY_MASK) | (cp_nrt_busy << CP_STAT_CP_NRT_BUSY_SHIFT)
+#define CP_STAT_SET__3D_BUSY(cp_stat_reg, _3d_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT__3D_BUSY_MASK) | (_3d_busy << CP_STAT__3D_BUSY_SHIFT)
+#define CP_STAT_SET_ME_BUSY(cp_stat_reg, me_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_ME_BUSY_MASK) | (me_busy << CP_STAT_ME_BUSY_SHIFT)
+#define CP_STAT_SET_ME_WC_BUSY(cp_stat_reg, me_wc_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_ME_WC_BUSY_MASK) | (me_wc_busy << CP_STAT_ME_WC_BUSY_SHIFT)
+#define CP_STAT_SET_MIU_WC_TRACK_FIFO_EMPTY(cp_stat_reg, miu_wc_track_fifo_empty) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_MIU_WC_TRACK_FIFO_EMPTY_MASK) | (miu_wc_track_fifo_empty << CP_STAT_MIU_WC_TRACK_FIFO_EMPTY_SHIFT)
+#define CP_STAT_SET_CP_BUSY(cp_stat_reg, cp_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_CP_BUSY_MASK) | (cp_busy << CP_STAT_CP_BUSY_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_stat_t {
+ unsigned int miu_wr_busy : CP_STAT_MIU_WR_BUSY_SIZE;
+ unsigned int miu_rd_req_busy : CP_STAT_MIU_RD_REQ_BUSY_SIZE;
+ unsigned int miu_rd_return_busy : CP_STAT_MIU_RD_RETURN_BUSY_SIZE;
+ unsigned int rbiu_busy : CP_STAT_RBIU_BUSY_SIZE;
+ unsigned int rciu_busy : CP_STAT_RCIU_BUSY_SIZE;
+ unsigned int csf_ring_busy : CP_STAT_CSF_RING_BUSY_SIZE;
+ unsigned int csf_indirects_busy : CP_STAT_CSF_INDIRECTS_BUSY_SIZE;
+ unsigned int csf_indirect2_busy : CP_STAT_CSF_INDIRECT2_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int csf_st_busy : CP_STAT_CSF_ST_BUSY_SIZE;
+ unsigned int csf_busy : CP_STAT_CSF_BUSY_SIZE;
+ unsigned int ring_queue_busy : CP_STAT_RING_QUEUE_BUSY_SIZE;
+ unsigned int indirects_queue_busy : CP_STAT_INDIRECTS_QUEUE_BUSY_SIZE;
+ unsigned int indirect2_queue_busy : CP_STAT_INDIRECT2_QUEUE_BUSY_SIZE;
+ unsigned int : 2;
+ unsigned int st_queue_busy : CP_STAT_ST_QUEUE_BUSY_SIZE;
+ unsigned int pfp_busy : CP_STAT_PFP_BUSY_SIZE;
+ unsigned int meq_ring_busy : CP_STAT_MEQ_RING_BUSY_SIZE;
+ unsigned int meq_indirects_busy : CP_STAT_MEQ_INDIRECTS_BUSY_SIZE;
+ unsigned int meq_indirect2_busy : CP_STAT_MEQ_INDIRECT2_BUSY_SIZE;
+ unsigned int miu_wc_stall : CP_STAT_MIU_WC_STALL_SIZE;
+ unsigned int cp_nrt_busy : CP_STAT_CP_NRT_BUSY_SIZE;
+ unsigned int _3d_busy : CP_STAT__3D_BUSY_SIZE;
+ unsigned int : 2;
+ unsigned int me_busy : CP_STAT_ME_BUSY_SIZE;
+ unsigned int : 2;
+ unsigned int me_wc_busy : CP_STAT_ME_WC_BUSY_SIZE;
+ unsigned int miu_wc_track_fifo_empty : CP_STAT_MIU_WC_TRACK_FIFO_EMPTY_SIZE;
+ unsigned int cp_busy : CP_STAT_CP_BUSY_SIZE;
+ } cp_stat_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_stat_t {
+ unsigned int cp_busy : CP_STAT_CP_BUSY_SIZE;
+ unsigned int miu_wc_track_fifo_empty : CP_STAT_MIU_WC_TRACK_FIFO_EMPTY_SIZE;
+ unsigned int me_wc_busy : CP_STAT_ME_WC_BUSY_SIZE;
+ unsigned int : 2;
+ unsigned int me_busy : CP_STAT_ME_BUSY_SIZE;
+ unsigned int : 2;
+ unsigned int _3d_busy : CP_STAT__3D_BUSY_SIZE;
+ unsigned int cp_nrt_busy : CP_STAT_CP_NRT_BUSY_SIZE;
+ unsigned int miu_wc_stall : CP_STAT_MIU_WC_STALL_SIZE;
+ unsigned int meq_indirect2_busy : CP_STAT_MEQ_INDIRECT2_BUSY_SIZE;
+ unsigned int meq_indirects_busy : CP_STAT_MEQ_INDIRECTS_BUSY_SIZE;
+ unsigned int meq_ring_busy : CP_STAT_MEQ_RING_BUSY_SIZE;
+ unsigned int pfp_busy : CP_STAT_PFP_BUSY_SIZE;
+ unsigned int st_queue_busy : CP_STAT_ST_QUEUE_BUSY_SIZE;
+ unsigned int : 2;
+ unsigned int indirect2_queue_busy : CP_STAT_INDIRECT2_QUEUE_BUSY_SIZE;
+ unsigned int indirects_queue_busy : CP_STAT_INDIRECTS_QUEUE_BUSY_SIZE;
+ unsigned int ring_queue_busy : CP_STAT_RING_QUEUE_BUSY_SIZE;
+ unsigned int csf_busy : CP_STAT_CSF_BUSY_SIZE;
+ unsigned int csf_st_busy : CP_STAT_CSF_ST_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int csf_indirect2_busy : CP_STAT_CSF_INDIRECT2_BUSY_SIZE;
+ unsigned int csf_indirects_busy : CP_STAT_CSF_INDIRECTS_BUSY_SIZE;
+ unsigned int csf_ring_busy : CP_STAT_CSF_RING_BUSY_SIZE;
+ unsigned int rciu_busy : CP_STAT_RCIU_BUSY_SIZE;
+ unsigned int rbiu_busy : CP_STAT_RBIU_BUSY_SIZE;
+ unsigned int miu_rd_return_busy : CP_STAT_MIU_RD_RETURN_BUSY_SIZE;
+ unsigned int miu_rd_req_busy : CP_STAT_MIU_RD_REQ_BUSY_SIZE;
+ unsigned int miu_wr_busy : CP_STAT_MIU_WR_BUSY_SIZE;
+ } cp_stat_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_stat_t f;
+} cp_stat_u;
+
+
+/*
+ * BIOS_0_SCRATCH struct
+ */
+
+#define BIOS_0_SCRATCH_BIOS_SCRATCH_SIZE 32
+
+#define BIOS_0_SCRATCH_BIOS_SCRATCH_SHIFT 0
+
+#define BIOS_0_SCRATCH_BIOS_SCRATCH_MASK 0xffffffff
+
+#define BIOS_0_SCRATCH_MASK \
+ (BIOS_0_SCRATCH_BIOS_SCRATCH_MASK)
+
+#define BIOS_0_SCRATCH(bios_scratch) \
+ ((bios_scratch << BIOS_0_SCRATCH_BIOS_SCRATCH_SHIFT))
+
+#define BIOS_0_SCRATCH_GET_BIOS_SCRATCH(bios_0_scratch) \
+ ((bios_0_scratch & BIOS_0_SCRATCH_BIOS_SCRATCH_MASK) >> BIOS_0_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#define BIOS_0_SCRATCH_SET_BIOS_SCRATCH(bios_0_scratch_reg, bios_scratch) \
+ bios_0_scratch_reg = (bios_0_scratch_reg & ~BIOS_0_SCRATCH_BIOS_SCRATCH_MASK) | (bios_scratch << BIOS_0_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _bios_0_scratch_t {
+ unsigned int bios_scratch : BIOS_0_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_0_scratch_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _bios_0_scratch_t {
+ unsigned int bios_scratch : BIOS_0_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_0_scratch_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ bios_0_scratch_t f;
+} bios_0_scratch_u;
+
+
+/*
+ * BIOS_1_SCRATCH struct
+ */
+
+#define BIOS_1_SCRATCH_BIOS_SCRATCH_SIZE 32
+
+#define BIOS_1_SCRATCH_BIOS_SCRATCH_SHIFT 0
+
+#define BIOS_1_SCRATCH_BIOS_SCRATCH_MASK 0xffffffff
+
+#define BIOS_1_SCRATCH_MASK \
+ (BIOS_1_SCRATCH_BIOS_SCRATCH_MASK)
+
+#define BIOS_1_SCRATCH(bios_scratch) \
+ ((bios_scratch << BIOS_1_SCRATCH_BIOS_SCRATCH_SHIFT))
+
+#define BIOS_1_SCRATCH_GET_BIOS_SCRATCH(bios_1_scratch) \
+ ((bios_1_scratch & BIOS_1_SCRATCH_BIOS_SCRATCH_MASK) >> BIOS_1_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#define BIOS_1_SCRATCH_SET_BIOS_SCRATCH(bios_1_scratch_reg, bios_scratch) \
+ bios_1_scratch_reg = (bios_1_scratch_reg & ~BIOS_1_SCRATCH_BIOS_SCRATCH_MASK) | (bios_scratch << BIOS_1_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _bios_1_scratch_t {
+ unsigned int bios_scratch : BIOS_1_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_1_scratch_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _bios_1_scratch_t {
+ unsigned int bios_scratch : BIOS_1_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_1_scratch_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ bios_1_scratch_t f;
+} bios_1_scratch_u;
+
+
+/*
+ * BIOS_2_SCRATCH struct
+ */
+
+#define BIOS_2_SCRATCH_BIOS_SCRATCH_SIZE 32
+
+#define BIOS_2_SCRATCH_BIOS_SCRATCH_SHIFT 0
+
+#define BIOS_2_SCRATCH_BIOS_SCRATCH_MASK 0xffffffff
+
+#define BIOS_2_SCRATCH_MASK \
+ (BIOS_2_SCRATCH_BIOS_SCRATCH_MASK)
+
+#define BIOS_2_SCRATCH(bios_scratch) \
+ ((bios_scratch << BIOS_2_SCRATCH_BIOS_SCRATCH_SHIFT))
+
+#define BIOS_2_SCRATCH_GET_BIOS_SCRATCH(bios_2_scratch) \
+ ((bios_2_scratch & BIOS_2_SCRATCH_BIOS_SCRATCH_MASK) >> BIOS_2_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#define BIOS_2_SCRATCH_SET_BIOS_SCRATCH(bios_2_scratch_reg, bios_scratch) \
+ bios_2_scratch_reg = (bios_2_scratch_reg & ~BIOS_2_SCRATCH_BIOS_SCRATCH_MASK) | (bios_scratch << BIOS_2_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _bios_2_scratch_t {
+ unsigned int bios_scratch : BIOS_2_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_2_scratch_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _bios_2_scratch_t {
+ unsigned int bios_scratch : BIOS_2_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_2_scratch_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ bios_2_scratch_t f;
+} bios_2_scratch_u;
+
+
+/*
+ * BIOS_3_SCRATCH struct
+ */
+
+#define BIOS_3_SCRATCH_BIOS_SCRATCH_SIZE 32
+
+#define BIOS_3_SCRATCH_BIOS_SCRATCH_SHIFT 0
+
+#define BIOS_3_SCRATCH_BIOS_SCRATCH_MASK 0xffffffff
+
+#define BIOS_3_SCRATCH_MASK \
+ (BIOS_3_SCRATCH_BIOS_SCRATCH_MASK)
+
+#define BIOS_3_SCRATCH(bios_scratch) \
+ ((bios_scratch << BIOS_3_SCRATCH_BIOS_SCRATCH_SHIFT))
+
+#define BIOS_3_SCRATCH_GET_BIOS_SCRATCH(bios_3_scratch) \
+ ((bios_3_scratch & BIOS_3_SCRATCH_BIOS_SCRATCH_MASK) >> BIOS_3_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#define BIOS_3_SCRATCH_SET_BIOS_SCRATCH(bios_3_scratch_reg, bios_scratch) \
+ bios_3_scratch_reg = (bios_3_scratch_reg & ~BIOS_3_SCRATCH_BIOS_SCRATCH_MASK) | (bios_scratch << BIOS_3_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _bios_3_scratch_t {
+ unsigned int bios_scratch : BIOS_3_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_3_scratch_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _bios_3_scratch_t {
+ unsigned int bios_scratch : BIOS_3_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_3_scratch_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ bios_3_scratch_t f;
+} bios_3_scratch_u;
+
+
+/*
+ * BIOS_4_SCRATCH struct
+ */
+
+#define BIOS_4_SCRATCH_BIOS_SCRATCH_SIZE 32
+
+#define BIOS_4_SCRATCH_BIOS_SCRATCH_SHIFT 0
+
+#define BIOS_4_SCRATCH_BIOS_SCRATCH_MASK 0xffffffff
+
+#define BIOS_4_SCRATCH_MASK \
+ (BIOS_4_SCRATCH_BIOS_SCRATCH_MASK)
+
+#define BIOS_4_SCRATCH(bios_scratch) \
+ ((bios_scratch << BIOS_4_SCRATCH_BIOS_SCRATCH_SHIFT))
+
+#define BIOS_4_SCRATCH_GET_BIOS_SCRATCH(bios_4_scratch) \
+ ((bios_4_scratch & BIOS_4_SCRATCH_BIOS_SCRATCH_MASK) >> BIOS_4_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#define BIOS_4_SCRATCH_SET_BIOS_SCRATCH(bios_4_scratch_reg, bios_scratch) \
+ bios_4_scratch_reg = (bios_4_scratch_reg & ~BIOS_4_SCRATCH_BIOS_SCRATCH_MASK) | (bios_scratch << BIOS_4_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _bios_4_scratch_t {
+ unsigned int bios_scratch : BIOS_4_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_4_scratch_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _bios_4_scratch_t {
+ unsigned int bios_scratch : BIOS_4_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_4_scratch_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ bios_4_scratch_t f;
+} bios_4_scratch_u;
+
+
+/*
+ * BIOS_5_SCRATCH struct
+ */
+
+#define BIOS_5_SCRATCH_BIOS_SCRATCH_SIZE 32
+
+#define BIOS_5_SCRATCH_BIOS_SCRATCH_SHIFT 0
+
+#define BIOS_5_SCRATCH_BIOS_SCRATCH_MASK 0xffffffff
+
+#define BIOS_5_SCRATCH_MASK \
+ (BIOS_5_SCRATCH_BIOS_SCRATCH_MASK)
+
+#define BIOS_5_SCRATCH(bios_scratch) \
+ ((bios_scratch << BIOS_5_SCRATCH_BIOS_SCRATCH_SHIFT))
+
+#define BIOS_5_SCRATCH_GET_BIOS_SCRATCH(bios_5_scratch) \
+ ((bios_5_scratch & BIOS_5_SCRATCH_BIOS_SCRATCH_MASK) >> BIOS_5_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#define BIOS_5_SCRATCH_SET_BIOS_SCRATCH(bios_5_scratch_reg, bios_scratch) \
+ bios_5_scratch_reg = (bios_5_scratch_reg & ~BIOS_5_SCRATCH_BIOS_SCRATCH_MASK) | (bios_scratch << BIOS_5_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _bios_5_scratch_t {
+ unsigned int bios_scratch : BIOS_5_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_5_scratch_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _bios_5_scratch_t {
+ unsigned int bios_scratch : BIOS_5_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_5_scratch_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ bios_5_scratch_t f;
+} bios_5_scratch_u;
+
+
+/*
+ * BIOS_6_SCRATCH struct
+ */
+
+#define BIOS_6_SCRATCH_BIOS_SCRATCH_SIZE 32
+
+#define BIOS_6_SCRATCH_BIOS_SCRATCH_SHIFT 0
+
+#define BIOS_6_SCRATCH_BIOS_SCRATCH_MASK 0xffffffff
+
+#define BIOS_6_SCRATCH_MASK \
+ (BIOS_6_SCRATCH_BIOS_SCRATCH_MASK)
+
+#define BIOS_6_SCRATCH(bios_scratch) \
+ ((bios_scratch << BIOS_6_SCRATCH_BIOS_SCRATCH_SHIFT))
+
+#define BIOS_6_SCRATCH_GET_BIOS_SCRATCH(bios_6_scratch) \
+ ((bios_6_scratch & BIOS_6_SCRATCH_BIOS_SCRATCH_MASK) >> BIOS_6_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#define BIOS_6_SCRATCH_SET_BIOS_SCRATCH(bios_6_scratch_reg, bios_scratch) \
+ bios_6_scratch_reg = (bios_6_scratch_reg & ~BIOS_6_SCRATCH_BIOS_SCRATCH_MASK) | (bios_scratch << BIOS_6_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _bios_6_scratch_t {
+ unsigned int bios_scratch : BIOS_6_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_6_scratch_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _bios_6_scratch_t {
+ unsigned int bios_scratch : BIOS_6_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_6_scratch_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ bios_6_scratch_t f;
+} bios_6_scratch_u;
+
+
+/*
+ * BIOS_7_SCRATCH struct
+ */
+
+#define BIOS_7_SCRATCH_BIOS_SCRATCH_SIZE 32
+
+#define BIOS_7_SCRATCH_BIOS_SCRATCH_SHIFT 0
+
+#define BIOS_7_SCRATCH_BIOS_SCRATCH_MASK 0xffffffff
+
+#define BIOS_7_SCRATCH_MASK \
+ (BIOS_7_SCRATCH_BIOS_SCRATCH_MASK)
+
+#define BIOS_7_SCRATCH(bios_scratch) \
+ ((bios_scratch << BIOS_7_SCRATCH_BIOS_SCRATCH_SHIFT))
+
+#define BIOS_7_SCRATCH_GET_BIOS_SCRATCH(bios_7_scratch) \
+ ((bios_7_scratch & BIOS_7_SCRATCH_BIOS_SCRATCH_MASK) >> BIOS_7_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#define BIOS_7_SCRATCH_SET_BIOS_SCRATCH(bios_7_scratch_reg, bios_scratch) \
+ bios_7_scratch_reg = (bios_7_scratch_reg & ~BIOS_7_SCRATCH_BIOS_SCRATCH_MASK) | (bios_scratch << BIOS_7_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _bios_7_scratch_t {
+ unsigned int bios_scratch : BIOS_7_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_7_scratch_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _bios_7_scratch_t {
+ unsigned int bios_scratch : BIOS_7_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_7_scratch_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ bios_7_scratch_t f;
+} bios_7_scratch_u;
+
+
+/*
+ * BIOS_8_SCRATCH struct
+ */
+
+#define BIOS_8_SCRATCH_BIOS_SCRATCH_SIZE 32
+
+#define BIOS_8_SCRATCH_BIOS_SCRATCH_SHIFT 0
+
+#define BIOS_8_SCRATCH_BIOS_SCRATCH_MASK 0xffffffff
+
+#define BIOS_8_SCRATCH_MASK \
+ (BIOS_8_SCRATCH_BIOS_SCRATCH_MASK)
+
+#define BIOS_8_SCRATCH(bios_scratch) \
+ ((bios_scratch << BIOS_8_SCRATCH_BIOS_SCRATCH_SHIFT))
+
+#define BIOS_8_SCRATCH_GET_BIOS_SCRATCH(bios_8_scratch) \
+ ((bios_8_scratch & BIOS_8_SCRATCH_BIOS_SCRATCH_MASK) >> BIOS_8_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#define BIOS_8_SCRATCH_SET_BIOS_SCRATCH(bios_8_scratch_reg, bios_scratch) \
+ bios_8_scratch_reg = (bios_8_scratch_reg & ~BIOS_8_SCRATCH_BIOS_SCRATCH_MASK) | (bios_scratch << BIOS_8_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _bios_8_scratch_t {
+ unsigned int bios_scratch : BIOS_8_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_8_scratch_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _bios_8_scratch_t {
+ unsigned int bios_scratch : BIOS_8_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_8_scratch_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ bios_8_scratch_t f;
+} bios_8_scratch_u;
+
+
+/*
+ * BIOS_9_SCRATCH struct
+ */
+
+#define BIOS_9_SCRATCH_BIOS_SCRATCH_SIZE 32
+
+#define BIOS_9_SCRATCH_BIOS_SCRATCH_SHIFT 0
+
+#define BIOS_9_SCRATCH_BIOS_SCRATCH_MASK 0xffffffff
+
+#define BIOS_9_SCRATCH_MASK \
+ (BIOS_9_SCRATCH_BIOS_SCRATCH_MASK)
+
+#define BIOS_9_SCRATCH(bios_scratch) \
+ ((bios_scratch << BIOS_9_SCRATCH_BIOS_SCRATCH_SHIFT))
+
+#define BIOS_9_SCRATCH_GET_BIOS_SCRATCH(bios_9_scratch) \
+ ((bios_9_scratch & BIOS_9_SCRATCH_BIOS_SCRATCH_MASK) >> BIOS_9_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#define BIOS_9_SCRATCH_SET_BIOS_SCRATCH(bios_9_scratch_reg, bios_scratch) \
+ bios_9_scratch_reg = (bios_9_scratch_reg & ~BIOS_9_SCRATCH_BIOS_SCRATCH_MASK) | (bios_scratch << BIOS_9_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _bios_9_scratch_t {
+ unsigned int bios_scratch : BIOS_9_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_9_scratch_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _bios_9_scratch_t {
+ unsigned int bios_scratch : BIOS_9_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_9_scratch_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ bios_9_scratch_t f;
+} bios_9_scratch_u;
+
+
+/*
+ * BIOS_10_SCRATCH struct
+ */
+
+#define BIOS_10_SCRATCH_BIOS_SCRATCH_SIZE 32
+
+#define BIOS_10_SCRATCH_BIOS_SCRATCH_SHIFT 0
+
+#define BIOS_10_SCRATCH_BIOS_SCRATCH_MASK 0xffffffff
+
+#define BIOS_10_SCRATCH_MASK \
+ (BIOS_10_SCRATCH_BIOS_SCRATCH_MASK)
+
+#define BIOS_10_SCRATCH(bios_scratch) \
+ ((bios_scratch << BIOS_10_SCRATCH_BIOS_SCRATCH_SHIFT))
+
+#define BIOS_10_SCRATCH_GET_BIOS_SCRATCH(bios_10_scratch) \
+ ((bios_10_scratch & BIOS_10_SCRATCH_BIOS_SCRATCH_MASK) >> BIOS_10_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#define BIOS_10_SCRATCH_SET_BIOS_SCRATCH(bios_10_scratch_reg, bios_scratch) \
+ bios_10_scratch_reg = (bios_10_scratch_reg & ~BIOS_10_SCRATCH_BIOS_SCRATCH_MASK) | (bios_scratch << BIOS_10_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _bios_10_scratch_t {
+ unsigned int bios_scratch : BIOS_10_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_10_scratch_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _bios_10_scratch_t {
+ unsigned int bios_scratch : BIOS_10_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_10_scratch_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ bios_10_scratch_t f;
+} bios_10_scratch_u;
+
+
+/*
+ * BIOS_11_SCRATCH struct
+ */
+
+#define BIOS_11_SCRATCH_BIOS_SCRATCH_SIZE 32
+
+#define BIOS_11_SCRATCH_BIOS_SCRATCH_SHIFT 0
+
+#define BIOS_11_SCRATCH_BIOS_SCRATCH_MASK 0xffffffff
+
+#define BIOS_11_SCRATCH_MASK \
+ (BIOS_11_SCRATCH_BIOS_SCRATCH_MASK)
+
+#define BIOS_11_SCRATCH(bios_scratch) \
+ ((bios_scratch << BIOS_11_SCRATCH_BIOS_SCRATCH_SHIFT))
+
+#define BIOS_11_SCRATCH_GET_BIOS_SCRATCH(bios_11_scratch) \
+ ((bios_11_scratch & BIOS_11_SCRATCH_BIOS_SCRATCH_MASK) >> BIOS_11_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#define BIOS_11_SCRATCH_SET_BIOS_SCRATCH(bios_11_scratch_reg, bios_scratch) \
+ bios_11_scratch_reg = (bios_11_scratch_reg & ~BIOS_11_SCRATCH_BIOS_SCRATCH_MASK) | (bios_scratch << BIOS_11_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _bios_11_scratch_t {
+ unsigned int bios_scratch : BIOS_11_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_11_scratch_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _bios_11_scratch_t {
+ unsigned int bios_scratch : BIOS_11_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_11_scratch_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ bios_11_scratch_t f;
+} bios_11_scratch_u;
+
+
+/*
+ * BIOS_12_SCRATCH struct
+ */
+
+#define BIOS_12_SCRATCH_BIOS_SCRATCH_SIZE 32
+
+#define BIOS_12_SCRATCH_BIOS_SCRATCH_SHIFT 0
+
+#define BIOS_12_SCRATCH_BIOS_SCRATCH_MASK 0xffffffff
+
+#define BIOS_12_SCRATCH_MASK \
+ (BIOS_12_SCRATCH_BIOS_SCRATCH_MASK)
+
+#define BIOS_12_SCRATCH(bios_scratch) \
+ ((bios_scratch << BIOS_12_SCRATCH_BIOS_SCRATCH_SHIFT))
+
+#define BIOS_12_SCRATCH_GET_BIOS_SCRATCH(bios_12_scratch) \
+ ((bios_12_scratch & BIOS_12_SCRATCH_BIOS_SCRATCH_MASK) >> BIOS_12_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#define BIOS_12_SCRATCH_SET_BIOS_SCRATCH(bios_12_scratch_reg, bios_scratch) \
+ bios_12_scratch_reg = (bios_12_scratch_reg & ~BIOS_12_SCRATCH_BIOS_SCRATCH_MASK) | (bios_scratch << BIOS_12_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _bios_12_scratch_t {
+ unsigned int bios_scratch : BIOS_12_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_12_scratch_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _bios_12_scratch_t {
+ unsigned int bios_scratch : BIOS_12_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_12_scratch_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ bios_12_scratch_t f;
+} bios_12_scratch_u;
+
+
+/*
+ * BIOS_13_SCRATCH struct
+ */
+
+#define BIOS_13_SCRATCH_BIOS_SCRATCH_SIZE 32
+
+#define BIOS_13_SCRATCH_BIOS_SCRATCH_SHIFT 0
+
+#define BIOS_13_SCRATCH_BIOS_SCRATCH_MASK 0xffffffff
+
+#define BIOS_13_SCRATCH_MASK \
+ (BIOS_13_SCRATCH_BIOS_SCRATCH_MASK)
+
+#define BIOS_13_SCRATCH(bios_scratch) \
+ ((bios_scratch << BIOS_13_SCRATCH_BIOS_SCRATCH_SHIFT))
+
+#define BIOS_13_SCRATCH_GET_BIOS_SCRATCH(bios_13_scratch) \
+ ((bios_13_scratch & BIOS_13_SCRATCH_BIOS_SCRATCH_MASK) >> BIOS_13_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#define BIOS_13_SCRATCH_SET_BIOS_SCRATCH(bios_13_scratch_reg, bios_scratch) \
+ bios_13_scratch_reg = (bios_13_scratch_reg & ~BIOS_13_SCRATCH_BIOS_SCRATCH_MASK) | (bios_scratch << BIOS_13_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _bios_13_scratch_t {
+ unsigned int bios_scratch : BIOS_13_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_13_scratch_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _bios_13_scratch_t {
+ unsigned int bios_scratch : BIOS_13_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_13_scratch_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ bios_13_scratch_t f;
+} bios_13_scratch_u;
+
+
+/*
+ * BIOS_14_SCRATCH struct
+ */
+
+#define BIOS_14_SCRATCH_BIOS_SCRATCH_SIZE 32
+
+#define BIOS_14_SCRATCH_BIOS_SCRATCH_SHIFT 0
+
+#define BIOS_14_SCRATCH_BIOS_SCRATCH_MASK 0xffffffff
+
+#define BIOS_14_SCRATCH_MASK \
+ (BIOS_14_SCRATCH_BIOS_SCRATCH_MASK)
+
+#define BIOS_14_SCRATCH(bios_scratch) \
+ ((bios_scratch << BIOS_14_SCRATCH_BIOS_SCRATCH_SHIFT))
+
+#define BIOS_14_SCRATCH_GET_BIOS_SCRATCH(bios_14_scratch) \
+ ((bios_14_scratch & BIOS_14_SCRATCH_BIOS_SCRATCH_MASK) >> BIOS_14_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#define BIOS_14_SCRATCH_SET_BIOS_SCRATCH(bios_14_scratch_reg, bios_scratch) \
+ bios_14_scratch_reg = (bios_14_scratch_reg & ~BIOS_14_SCRATCH_BIOS_SCRATCH_MASK) | (bios_scratch << BIOS_14_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _bios_14_scratch_t {
+ unsigned int bios_scratch : BIOS_14_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_14_scratch_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _bios_14_scratch_t {
+ unsigned int bios_scratch : BIOS_14_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_14_scratch_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ bios_14_scratch_t f;
+} bios_14_scratch_u;
+
+
+/*
+ * BIOS_15_SCRATCH struct
+ */
+
+#define BIOS_15_SCRATCH_BIOS_SCRATCH_SIZE 32
+
+#define BIOS_15_SCRATCH_BIOS_SCRATCH_SHIFT 0
+
+#define BIOS_15_SCRATCH_BIOS_SCRATCH_MASK 0xffffffff
+
+#define BIOS_15_SCRATCH_MASK \
+ (BIOS_15_SCRATCH_BIOS_SCRATCH_MASK)
+
+#define BIOS_15_SCRATCH(bios_scratch) \
+ ((bios_scratch << BIOS_15_SCRATCH_BIOS_SCRATCH_SHIFT))
+
+#define BIOS_15_SCRATCH_GET_BIOS_SCRATCH(bios_15_scratch) \
+ ((bios_15_scratch & BIOS_15_SCRATCH_BIOS_SCRATCH_MASK) >> BIOS_15_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#define BIOS_15_SCRATCH_SET_BIOS_SCRATCH(bios_15_scratch_reg, bios_scratch) \
+ bios_15_scratch_reg = (bios_15_scratch_reg & ~BIOS_15_SCRATCH_BIOS_SCRATCH_MASK) | (bios_scratch << BIOS_15_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _bios_15_scratch_t {
+ unsigned int bios_scratch : BIOS_15_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_15_scratch_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _bios_15_scratch_t {
+ unsigned int bios_scratch : BIOS_15_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_15_scratch_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ bios_15_scratch_t f;
+} bios_15_scratch_u;
+
+
+/*
+ * COHER_SIZE_PM4 struct
+ */
+
+#define COHER_SIZE_PM4_SIZE_SIZE 32
+
+#define COHER_SIZE_PM4_SIZE_SHIFT 0
+
+#define COHER_SIZE_PM4_SIZE_MASK 0xffffffff
+
+#define COHER_SIZE_PM4_MASK \
+ (COHER_SIZE_PM4_SIZE_MASK)
+
+#define COHER_SIZE_PM4(size) \
+ ((size << COHER_SIZE_PM4_SIZE_SHIFT))
+
+#define COHER_SIZE_PM4_GET_SIZE(coher_size_pm4) \
+ ((coher_size_pm4 & COHER_SIZE_PM4_SIZE_MASK) >> COHER_SIZE_PM4_SIZE_SHIFT)
+
+#define COHER_SIZE_PM4_SET_SIZE(coher_size_pm4_reg, size) \
+ coher_size_pm4_reg = (coher_size_pm4_reg & ~COHER_SIZE_PM4_SIZE_MASK) | (size << COHER_SIZE_PM4_SIZE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _coher_size_pm4_t {
+ unsigned int size : COHER_SIZE_PM4_SIZE_SIZE;
+ } coher_size_pm4_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _coher_size_pm4_t {
+ unsigned int size : COHER_SIZE_PM4_SIZE_SIZE;
+ } coher_size_pm4_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ coher_size_pm4_t f;
+} coher_size_pm4_u;
+
+
+/*
+ * COHER_BASE_PM4 struct
+ */
+
+#define COHER_BASE_PM4_BASE_SIZE 32
+
+#define COHER_BASE_PM4_BASE_SHIFT 0
+
+#define COHER_BASE_PM4_BASE_MASK 0xffffffff
+
+#define COHER_BASE_PM4_MASK \
+ (COHER_BASE_PM4_BASE_MASK)
+
+#define COHER_BASE_PM4(base) \
+ ((base << COHER_BASE_PM4_BASE_SHIFT))
+
+#define COHER_BASE_PM4_GET_BASE(coher_base_pm4) \
+ ((coher_base_pm4 & COHER_BASE_PM4_BASE_MASK) >> COHER_BASE_PM4_BASE_SHIFT)
+
+#define COHER_BASE_PM4_SET_BASE(coher_base_pm4_reg, base) \
+ coher_base_pm4_reg = (coher_base_pm4_reg & ~COHER_BASE_PM4_BASE_MASK) | (base << COHER_BASE_PM4_BASE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _coher_base_pm4_t {
+ unsigned int base : COHER_BASE_PM4_BASE_SIZE;
+ } coher_base_pm4_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _coher_base_pm4_t {
+ unsigned int base : COHER_BASE_PM4_BASE_SIZE;
+ } coher_base_pm4_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ coher_base_pm4_t f;
+} coher_base_pm4_u;
+
+
+/*
+ * COHER_STATUS_PM4 struct
+ */
+
+#define COHER_STATUS_PM4_MATCHING_CONTEXTS_SIZE 8
+#define COHER_STATUS_PM4_RB_COPY_DEST_BASE_ENA_SIZE 1
+#define COHER_STATUS_PM4_DEST_BASE_0_ENA_SIZE 1
+#define COHER_STATUS_PM4_DEST_BASE_1_ENA_SIZE 1
+#define COHER_STATUS_PM4_DEST_BASE_2_ENA_SIZE 1
+#define COHER_STATUS_PM4_DEST_BASE_3_ENA_SIZE 1
+#define COHER_STATUS_PM4_DEST_BASE_4_ENA_SIZE 1
+#define COHER_STATUS_PM4_DEST_BASE_5_ENA_SIZE 1
+#define COHER_STATUS_PM4_DEST_BASE_6_ENA_SIZE 1
+#define COHER_STATUS_PM4_DEST_BASE_7_ENA_SIZE 1
+#define COHER_STATUS_PM4_RB_COLOR_INFO_ENA_SIZE 1
+#define COHER_STATUS_PM4_TC_ACTION_ENA_SIZE 1
+#define COHER_STATUS_PM4_STATUS_SIZE 1
+
+#define COHER_STATUS_PM4_MATCHING_CONTEXTS_SHIFT 0
+#define COHER_STATUS_PM4_RB_COPY_DEST_BASE_ENA_SHIFT 8
+#define COHER_STATUS_PM4_DEST_BASE_0_ENA_SHIFT 9
+#define COHER_STATUS_PM4_DEST_BASE_1_ENA_SHIFT 10
+#define COHER_STATUS_PM4_DEST_BASE_2_ENA_SHIFT 11
+#define COHER_STATUS_PM4_DEST_BASE_3_ENA_SHIFT 12
+#define COHER_STATUS_PM4_DEST_BASE_4_ENA_SHIFT 13
+#define COHER_STATUS_PM4_DEST_BASE_5_ENA_SHIFT 14
+#define COHER_STATUS_PM4_DEST_BASE_6_ENA_SHIFT 15
+#define COHER_STATUS_PM4_DEST_BASE_7_ENA_SHIFT 16
+#define COHER_STATUS_PM4_RB_COLOR_INFO_ENA_SHIFT 17
+#define COHER_STATUS_PM4_TC_ACTION_ENA_SHIFT 25
+#define COHER_STATUS_PM4_STATUS_SHIFT 31
+
+#define COHER_STATUS_PM4_MATCHING_CONTEXTS_MASK 0x000000ff
+#define COHER_STATUS_PM4_RB_COPY_DEST_BASE_ENA_MASK 0x00000100
+#define COHER_STATUS_PM4_DEST_BASE_0_ENA_MASK 0x00000200
+#define COHER_STATUS_PM4_DEST_BASE_1_ENA_MASK 0x00000400
+#define COHER_STATUS_PM4_DEST_BASE_2_ENA_MASK 0x00000800
+#define COHER_STATUS_PM4_DEST_BASE_3_ENA_MASK 0x00001000
+#define COHER_STATUS_PM4_DEST_BASE_4_ENA_MASK 0x00002000
+#define COHER_STATUS_PM4_DEST_BASE_5_ENA_MASK 0x00004000
+#define COHER_STATUS_PM4_DEST_BASE_6_ENA_MASK 0x00008000
+#define COHER_STATUS_PM4_DEST_BASE_7_ENA_MASK 0x00010000
+#define COHER_STATUS_PM4_RB_COLOR_INFO_ENA_MASK 0x00020000
+#define COHER_STATUS_PM4_TC_ACTION_ENA_MASK 0x02000000
+#define COHER_STATUS_PM4_STATUS_MASK 0x80000000
+
+#define COHER_STATUS_PM4_MASK \
+ (COHER_STATUS_PM4_MATCHING_CONTEXTS_MASK | \
+ COHER_STATUS_PM4_RB_COPY_DEST_BASE_ENA_MASK | \
+ COHER_STATUS_PM4_DEST_BASE_0_ENA_MASK | \
+ COHER_STATUS_PM4_DEST_BASE_1_ENA_MASK | \
+ COHER_STATUS_PM4_DEST_BASE_2_ENA_MASK | \
+ COHER_STATUS_PM4_DEST_BASE_3_ENA_MASK | \
+ COHER_STATUS_PM4_DEST_BASE_4_ENA_MASK | \
+ COHER_STATUS_PM4_DEST_BASE_5_ENA_MASK | \
+ COHER_STATUS_PM4_DEST_BASE_6_ENA_MASK | \
+ COHER_STATUS_PM4_DEST_BASE_7_ENA_MASK | \
+ COHER_STATUS_PM4_RB_COLOR_INFO_ENA_MASK | \
+ COHER_STATUS_PM4_TC_ACTION_ENA_MASK | \
+ COHER_STATUS_PM4_STATUS_MASK)
+
+#define COHER_STATUS_PM4(matching_contexts, rb_copy_dest_base_ena, dest_base_0_ena, dest_base_1_ena, dest_base_2_ena, dest_base_3_ena, dest_base_4_ena, dest_base_5_ena, dest_base_6_ena, dest_base_7_ena, rb_color_info_ena, tc_action_ena, status) \
+ ((matching_contexts << COHER_STATUS_PM4_MATCHING_CONTEXTS_SHIFT) | \
+ (rb_copy_dest_base_ena << COHER_STATUS_PM4_RB_COPY_DEST_BASE_ENA_SHIFT) | \
+ (dest_base_0_ena << COHER_STATUS_PM4_DEST_BASE_0_ENA_SHIFT) | \
+ (dest_base_1_ena << COHER_STATUS_PM4_DEST_BASE_1_ENA_SHIFT) | \
+ (dest_base_2_ena << COHER_STATUS_PM4_DEST_BASE_2_ENA_SHIFT) | \
+ (dest_base_3_ena << COHER_STATUS_PM4_DEST_BASE_3_ENA_SHIFT) | \
+ (dest_base_4_ena << COHER_STATUS_PM4_DEST_BASE_4_ENA_SHIFT) | \
+ (dest_base_5_ena << COHER_STATUS_PM4_DEST_BASE_5_ENA_SHIFT) | \
+ (dest_base_6_ena << COHER_STATUS_PM4_DEST_BASE_6_ENA_SHIFT) | \
+ (dest_base_7_ena << COHER_STATUS_PM4_DEST_BASE_7_ENA_SHIFT) | \
+ (rb_color_info_ena << COHER_STATUS_PM4_RB_COLOR_INFO_ENA_SHIFT) | \
+ (tc_action_ena << COHER_STATUS_PM4_TC_ACTION_ENA_SHIFT) | \
+ (status << COHER_STATUS_PM4_STATUS_SHIFT))
+
+#define COHER_STATUS_PM4_GET_MATCHING_CONTEXTS(coher_status_pm4) \
+ ((coher_status_pm4 & COHER_STATUS_PM4_MATCHING_CONTEXTS_MASK) >> COHER_STATUS_PM4_MATCHING_CONTEXTS_SHIFT)
+#define COHER_STATUS_PM4_GET_RB_COPY_DEST_BASE_ENA(coher_status_pm4) \
+ ((coher_status_pm4 & COHER_STATUS_PM4_RB_COPY_DEST_BASE_ENA_MASK) >> COHER_STATUS_PM4_RB_COPY_DEST_BASE_ENA_SHIFT)
+#define COHER_STATUS_PM4_GET_DEST_BASE_0_ENA(coher_status_pm4) \
+ ((coher_status_pm4 & COHER_STATUS_PM4_DEST_BASE_0_ENA_MASK) >> COHER_STATUS_PM4_DEST_BASE_0_ENA_SHIFT)
+#define COHER_STATUS_PM4_GET_DEST_BASE_1_ENA(coher_status_pm4) \
+ ((coher_status_pm4 & COHER_STATUS_PM4_DEST_BASE_1_ENA_MASK) >> COHER_STATUS_PM4_DEST_BASE_1_ENA_SHIFT)
+#define COHER_STATUS_PM4_GET_DEST_BASE_2_ENA(coher_status_pm4) \
+ ((coher_status_pm4 & COHER_STATUS_PM4_DEST_BASE_2_ENA_MASK) >> COHER_STATUS_PM4_DEST_BASE_2_ENA_SHIFT)
+#define COHER_STATUS_PM4_GET_DEST_BASE_3_ENA(coher_status_pm4) \
+ ((coher_status_pm4 & COHER_STATUS_PM4_DEST_BASE_3_ENA_MASK) >> COHER_STATUS_PM4_DEST_BASE_3_ENA_SHIFT)
+#define COHER_STATUS_PM4_GET_DEST_BASE_4_ENA(coher_status_pm4) \
+ ((coher_status_pm4 & COHER_STATUS_PM4_DEST_BASE_4_ENA_MASK) >> COHER_STATUS_PM4_DEST_BASE_4_ENA_SHIFT)
+#define COHER_STATUS_PM4_GET_DEST_BASE_5_ENA(coher_status_pm4) \
+ ((coher_status_pm4 & COHER_STATUS_PM4_DEST_BASE_5_ENA_MASK) >> COHER_STATUS_PM4_DEST_BASE_5_ENA_SHIFT)
+#define COHER_STATUS_PM4_GET_DEST_BASE_6_ENA(coher_status_pm4) \
+ ((coher_status_pm4 & COHER_STATUS_PM4_DEST_BASE_6_ENA_MASK) >> COHER_STATUS_PM4_DEST_BASE_6_ENA_SHIFT)
+#define COHER_STATUS_PM4_GET_DEST_BASE_7_ENA(coher_status_pm4) \
+ ((coher_status_pm4 & COHER_STATUS_PM4_DEST_BASE_7_ENA_MASK) >> COHER_STATUS_PM4_DEST_BASE_7_ENA_SHIFT)
+#define COHER_STATUS_PM4_GET_RB_COLOR_INFO_ENA(coher_status_pm4) \
+ ((coher_status_pm4 & COHER_STATUS_PM4_RB_COLOR_INFO_ENA_MASK) >> COHER_STATUS_PM4_RB_COLOR_INFO_ENA_SHIFT)
+#define COHER_STATUS_PM4_GET_TC_ACTION_ENA(coher_status_pm4) \
+ ((coher_status_pm4 & COHER_STATUS_PM4_TC_ACTION_ENA_MASK) >> COHER_STATUS_PM4_TC_ACTION_ENA_SHIFT)
+#define COHER_STATUS_PM4_GET_STATUS(coher_status_pm4) \
+ ((coher_status_pm4 & COHER_STATUS_PM4_STATUS_MASK) >> COHER_STATUS_PM4_STATUS_SHIFT)
+
+#define COHER_STATUS_PM4_SET_MATCHING_CONTEXTS(coher_status_pm4_reg, matching_contexts) \
+ coher_status_pm4_reg = (coher_status_pm4_reg & ~COHER_STATUS_PM4_MATCHING_CONTEXTS_MASK) | (matching_contexts << COHER_STATUS_PM4_MATCHING_CONTEXTS_SHIFT)
+#define COHER_STATUS_PM4_SET_RB_COPY_DEST_BASE_ENA(coher_status_pm4_reg, rb_copy_dest_base_ena) \
+ coher_status_pm4_reg = (coher_status_pm4_reg & ~COHER_STATUS_PM4_RB_COPY_DEST_BASE_ENA_MASK) | (rb_copy_dest_base_ena << COHER_STATUS_PM4_RB_COPY_DEST_BASE_ENA_SHIFT)
+#define COHER_STATUS_PM4_SET_DEST_BASE_0_ENA(coher_status_pm4_reg, dest_base_0_ena) \
+ coher_status_pm4_reg = (coher_status_pm4_reg & ~COHER_STATUS_PM4_DEST_BASE_0_ENA_MASK) | (dest_base_0_ena << COHER_STATUS_PM4_DEST_BASE_0_ENA_SHIFT)
+#define COHER_STATUS_PM4_SET_DEST_BASE_1_ENA(coher_status_pm4_reg, dest_base_1_ena) \
+ coher_status_pm4_reg = (coher_status_pm4_reg & ~COHER_STATUS_PM4_DEST_BASE_1_ENA_MASK) | (dest_base_1_ena << COHER_STATUS_PM4_DEST_BASE_1_ENA_SHIFT)
+#define COHER_STATUS_PM4_SET_DEST_BASE_2_ENA(coher_status_pm4_reg, dest_base_2_ena) \
+ coher_status_pm4_reg = (coher_status_pm4_reg & ~COHER_STATUS_PM4_DEST_BASE_2_ENA_MASK) | (dest_base_2_ena << COHER_STATUS_PM4_DEST_BASE_2_ENA_SHIFT)
+#define COHER_STATUS_PM4_SET_DEST_BASE_3_ENA(coher_status_pm4_reg, dest_base_3_ena) \
+ coher_status_pm4_reg = (coher_status_pm4_reg & ~COHER_STATUS_PM4_DEST_BASE_3_ENA_MASK) | (dest_base_3_ena << COHER_STATUS_PM4_DEST_BASE_3_ENA_SHIFT)
+#define COHER_STATUS_PM4_SET_DEST_BASE_4_ENA(coher_status_pm4_reg, dest_base_4_ena) \
+ coher_status_pm4_reg = (coher_status_pm4_reg & ~COHER_STATUS_PM4_DEST_BASE_4_ENA_MASK) | (dest_base_4_ena << COHER_STATUS_PM4_DEST_BASE_4_ENA_SHIFT)
+#define COHER_STATUS_PM4_SET_DEST_BASE_5_ENA(coher_status_pm4_reg, dest_base_5_ena) \
+ coher_status_pm4_reg = (coher_status_pm4_reg & ~COHER_STATUS_PM4_DEST_BASE_5_ENA_MASK) | (dest_base_5_ena << COHER_STATUS_PM4_DEST_BASE_5_ENA_SHIFT)
+#define COHER_STATUS_PM4_SET_DEST_BASE_6_ENA(coher_status_pm4_reg, dest_base_6_ena) \
+ coher_status_pm4_reg = (coher_status_pm4_reg & ~COHER_STATUS_PM4_DEST_BASE_6_ENA_MASK) | (dest_base_6_ena << COHER_STATUS_PM4_DEST_BASE_6_ENA_SHIFT)
+#define COHER_STATUS_PM4_SET_DEST_BASE_7_ENA(coher_status_pm4_reg, dest_base_7_ena) \
+ coher_status_pm4_reg = (coher_status_pm4_reg & ~COHER_STATUS_PM4_DEST_BASE_7_ENA_MASK) | (dest_base_7_ena << COHER_STATUS_PM4_DEST_BASE_7_ENA_SHIFT)
+#define COHER_STATUS_PM4_SET_RB_COLOR_INFO_ENA(coher_status_pm4_reg, rb_color_info_ena) \
+ coher_status_pm4_reg = (coher_status_pm4_reg & ~COHER_STATUS_PM4_RB_COLOR_INFO_ENA_MASK) | (rb_color_info_ena << COHER_STATUS_PM4_RB_COLOR_INFO_ENA_SHIFT)
+#define COHER_STATUS_PM4_SET_TC_ACTION_ENA(coher_status_pm4_reg, tc_action_ena) \
+ coher_status_pm4_reg = (coher_status_pm4_reg & ~COHER_STATUS_PM4_TC_ACTION_ENA_MASK) | (tc_action_ena << COHER_STATUS_PM4_TC_ACTION_ENA_SHIFT)
+#define COHER_STATUS_PM4_SET_STATUS(coher_status_pm4_reg, status) \
+ coher_status_pm4_reg = (coher_status_pm4_reg & ~COHER_STATUS_PM4_STATUS_MASK) | (status << COHER_STATUS_PM4_STATUS_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _coher_status_pm4_t {
+ unsigned int matching_contexts : COHER_STATUS_PM4_MATCHING_CONTEXTS_SIZE;
+ unsigned int rb_copy_dest_base_ena : COHER_STATUS_PM4_RB_COPY_DEST_BASE_ENA_SIZE;
+ unsigned int dest_base_0_ena : COHER_STATUS_PM4_DEST_BASE_0_ENA_SIZE;
+ unsigned int dest_base_1_ena : COHER_STATUS_PM4_DEST_BASE_1_ENA_SIZE;
+ unsigned int dest_base_2_ena : COHER_STATUS_PM4_DEST_BASE_2_ENA_SIZE;
+ unsigned int dest_base_3_ena : COHER_STATUS_PM4_DEST_BASE_3_ENA_SIZE;
+ unsigned int dest_base_4_ena : COHER_STATUS_PM4_DEST_BASE_4_ENA_SIZE;
+ unsigned int dest_base_5_ena : COHER_STATUS_PM4_DEST_BASE_5_ENA_SIZE;
+ unsigned int dest_base_6_ena : COHER_STATUS_PM4_DEST_BASE_6_ENA_SIZE;
+ unsigned int dest_base_7_ena : COHER_STATUS_PM4_DEST_BASE_7_ENA_SIZE;
+ unsigned int rb_color_info_ena : COHER_STATUS_PM4_RB_COLOR_INFO_ENA_SIZE;
+ unsigned int : 7;
+ unsigned int tc_action_ena : COHER_STATUS_PM4_TC_ACTION_ENA_SIZE;
+ unsigned int : 5;
+ unsigned int status : COHER_STATUS_PM4_STATUS_SIZE;
+ } coher_status_pm4_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _coher_status_pm4_t {
+ unsigned int status : COHER_STATUS_PM4_STATUS_SIZE;
+ unsigned int : 5;
+ unsigned int tc_action_ena : COHER_STATUS_PM4_TC_ACTION_ENA_SIZE;
+ unsigned int : 7;
+ unsigned int rb_color_info_ena : COHER_STATUS_PM4_RB_COLOR_INFO_ENA_SIZE;
+ unsigned int dest_base_7_ena : COHER_STATUS_PM4_DEST_BASE_7_ENA_SIZE;
+ unsigned int dest_base_6_ena : COHER_STATUS_PM4_DEST_BASE_6_ENA_SIZE;
+ unsigned int dest_base_5_ena : COHER_STATUS_PM4_DEST_BASE_5_ENA_SIZE;
+ unsigned int dest_base_4_ena : COHER_STATUS_PM4_DEST_BASE_4_ENA_SIZE;
+ unsigned int dest_base_3_ena : COHER_STATUS_PM4_DEST_BASE_3_ENA_SIZE;
+ unsigned int dest_base_2_ena : COHER_STATUS_PM4_DEST_BASE_2_ENA_SIZE;
+ unsigned int dest_base_1_ena : COHER_STATUS_PM4_DEST_BASE_1_ENA_SIZE;
+ unsigned int dest_base_0_ena : COHER_STATUS_PM4_DEST_BASE_0_ENA_SIZE;
+ unsigned int rb_copy_dest_base_ena : COHER_STATUS_PM4_RB_COPY_DEST_BASE_ENA_SIZE;
+ unsigned int matching_contexts : COHER_STATUS_PM4_MATCHING_CONTEXTS_SIZE;
+ } coher_status_pm4_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ coher_status_pm4_t f;
+} coher_status_pm4_u;
+
+
+/*
+ * COHER_SIZE_HOST struct
+ */
+
+#define COHER_SIZE_HOST_SIZE_SIZE 32
+
+#define COHER_SIZE_HOST_SIZE_SHIFT 0
+
+#define COHER_SIZE_HOST_SIZE_MASK 0xffffffff
+
+#define COHER_SIZE_HOST_MASK \
+ (COHER_SIZE_HOST_SIZE_MASK)
+
+#define COHER_SIZE_HOST(size) \
+ ((size << COHER_SIZE_HOST_SIZE_SHIFT))
+
+#define COHER_SIZE_HOST_GET_SIZE(coher_size_host) \
+ ((coher_size_host & COHER_SIZE_HOST_SIZE_MASK) >> COHER_SIZE_HOST_SIZE_SHIFT)
+
+#define COHER_SIZE_HOST_SET_SIZE(coher_size_host_reg, size) \
+ coher_size_host_reg = (coher_size_host_reg & ~COHER_SIZE_HOST_SIZE_MASK) | (size << COHER_SIZE_HOST_SIZE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _coher_size_host_t {
+ unsigned int size : COHER_SIZE_HOST_SIZE_SIZE;
+ } coher_size_host_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _coher_size_host_t {
+ unsigned int size : COHER_SIZE_HOST_SIZE_SIZE;
+ } coher_size_host_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ coher_size_host_t f;
+} coher_size_host_u;
+
+
+/*
+ * COHER_BASE_HOST struct
+ */
+
+#define COHER_BASE_HOST_BASE_SIZE 32
+
+#define COHER_BASE_HOST_BASE_SHIFT 0
+
+#define COHER_BASE_HOST_BASE_MASK 0xffffffff
+
+#define COHER_BASE_HOST_MASK \
+ (COHER_BASE_HOST_BASE_MASK)
+
+#define COHER_BASE_HOST(base) \
+ ((base << COHER_BASE_HOST_BASE_SHIFT))
+
+#define COHER_BASE_HOST_GET_BASE(coher_base_host) \
+ ((coher_base_host & COHER_BASE_HOST_BASE_MASK) >> COHER_BASE_HOST_BASE_SHIFT)
+
+#define COHER_BASE_HOST_SET_BASE(coher_base_host_reg, base) \
+ coher_base_host_reg = (coher_base_host_reg & ~COHER_BASE_HOST_BASE_MASK) | (base << COHER_BASE_HOST_BASE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _coher_base_host_t {
+ unsigned int base : COHER_BASE_HOST_BASE_SIZE;
+ } coher_base_host_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _coher_base_host_t {
+ unsigned int base : COHER_BASE_HOST_BASE_SIZE;
+ } coher_base_host_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ coher_base_host_t f;
+} coher_base_host_u;
+
+
+/*
+ * COHER_STATUS_HOST struct
+ */
+
+#define COHER_STATUS_HOST_MATCHING_CONTEXTS_SIZE 8
+#define COHER_STATUS_HOST_RB_COPY_DEST_BASE_ENA_SIZE 1
+#define COHER_STATUS_HOST_DEST_BASE_0_ENA_SIZE 1
+#define COHER_STATUS_HOST_DEST_BASE_1_ENA_SIZE 1
+#define COHER_STATUS_HOST_DEST_BASE_2_ENA_SIZE 1
+#define COHER_STATUS_HOST_DEST_BASE_3_ENA_SIZE 1
+#define COHER_STATUS_HOST_DEST_BASE_4_ENA_SIZE 1
+#define COHER_STATUS_HOST_DEST_BASE_5_ENA_SIZE 1
+#define COHER_STATUS_HOST_DEST_BASE_6_ENA_SIZE 1
+#define COHER_STATUS_HOST_DEST_BASE_7_ENA_SIZE 1
+#define COHER_STATUS_HOST_RB_COLOR_INFO_ENA_SIZE 1
+#define COHER_STATUS_HOST_TC_ACTION_ENA_SIZE 1
+#define COHER_STATUS_HOST_STATUS_SIZE 1
+
+#define COHER_STATUS_HOST_MATCHING_CONTEXTS_SHIFT 0
+#define COHER_STATUS_HOST_RB_COPY_DEST_BASE_ENA_SHIFT 8
+#define COHER_STATUS_HOST_DEST_BASE_0_ENA_SHIFT 9
+#define COHER_STATUS_HOST_DEST_BASE_1_ENA_SHIFT 10
+#define COHER_STATUS_HOST_DEST_BASE_2_ENA_SHIFT 11
+#define COHER_STATUS_HOST_DEST_BASE_3_ENA_SHIFT 12
+#define COHER_STATUS_HOST_DEST_BASE_4_ENA_SHIFT 13
+#define COHER_STATUS_HOST_DEST_BASE_5_ENA_SHIFT 14
+#define COHER_STATUS_HOST_DEST_BASE_6_ENA_SHIFT 15
+#define COHER_STATUS_HOST_DEST_BASE_7_ENA_SHIFT 16
+#define COHER_STATUS_HOST_RB_COLOR_INFO_ENA_SHIFT 17
+#define COHER_STATUS_HOST_TC_ACTION_ENA_SHIFT 25
+#define COHER_STATUS_HOST_STATUS_SHIFT 31
+
+#define COHER_STATUS_HOST_MATCHING_CONTEXTS_MASK 0x000000ff
+#define COHER_STATUS_HOST_RB_COPY_DEST_BASE_ENA_MASK 0x00000100
+#define COHER_STATUS_HOST_DEST_BASE_0_ENA_MASK 0x00000200
+#define COHER_STATUS_HOST_DEST_BASE_1_ENA_MASK 0x00000400
+#define COHER_STATUS_HOST_DEST_BASE_2_ENA_MASK 0x00000800
+#define COHER_STATUS_HOST_DEST_BASE_3_ENA_MASK 0x00001000
+#define COHER_STATUS_HOST_DEST_BASE_4_ENA_MASK 0x00002000
+#define COHER_STATUS_HOST_DEST_BASE_5_ENA_MASK 0x00004000
+#define COHER_STATUS_HOST_DEST_BASE_6_ENA_MASK 0x00008000
+#define COHER_STATUS_HOST_DEST_BASE_7_ENA_MASK 0x00010000
+#define COHER_STATUS_HOST_RB_COLOR_INFO_ENA_MASK 0x00020000
+#define COHER_STATUS_HOST_TC_ACTION_ENA_MASK 0x02000000
+#define COHER_STATUS_HOST_STATUS_MASK 0x80000000
+
+#define COHER_STATUS_HOST_MASK \
+ (COHER_STATUS_HOST_MATCHING_CONTEXTS_MASK | \
+ COHER_STATUS_HOST_RB_COPY_DEST_BASE_ENA_MASK | \
+ COHER_STATUS_HOST_DEST_BASE_0_ENA_MASK | \
+ COHER_STATUS_HOST_DEST_BASE_1_ENA_MASK | \
+ COHER_STATUS_HOST_DEST_BASE_2_ENA_MASK | \
+ COHER_STATUS_HOST_DEST_BASE_3_ENA_MASK | \
+ COHER_STATUS_HOST_DEST_BASE_4_ENA_MASK | \
+ COHER_STATUS_HOST_DEST_BASE_5_ENA_MASK | \
+ COHER_STATUS_HOST_DEST_BASE_6_ENA_MASK | \
+ COHER_STATUS_HOST_DEST_BASE_7_ENA_MASK | \
+ COHER_STATUS_HOST_RB_COLOR_INFO_ENA_MASK | \
+ COHER_STATUS_HOST_TC_ACTION_ENA_MASK | \
+ COHER_STATUS_HOST_STATUS_MASK)
+
+#define COHER_STATUS_HOST(matching_contexts, rb_copy_dest_base_ena, dest_base_0_ena, dest_base_1_ena, dest_base_2_ena, dest_base_3_ena, dest_base_4_ena, dest_base_5_ena, dest_base_6_ena, dest_base_7_ena, rb_color_info_ena, tc_action_ena, status) \
+ ((matching_contexts << COHER_STATUS_HOST_MATCHING_CONTEXTS_SHIFT) | \
+ (rb_copy_dest_base_ena << COHER_STATUS_HOST_RB_COPY_DEST_BASE_ENA_SHIFT) | \
+ (dest_base_0_ena << COHER_STATUS_HOST_DEST_BASE_0_ENA_SHIFT) | \
+ (dest_base_1_ena << COHER_STATUS_HOST_DEST_BASE_1_ENA_SHIFT) | \
+ (dest_base_2_ena << COHER_STATUS_HOST_DEST_BASE_2_ENA_SHIFT) | \
+ (dest_base_3_ena << COHER_STATUS_HOST_DEST_BASE_3_ENA_SHIFT) | \
+ (dest_base_4_ena << COHER_STATUS_HOST_DEST_BASE_4_ENA_SHIFT) | \
+ (dest_base_5_ena << COHER_STATUS_HOST_DEST_BASE_5_ENA_SHIFT) | \
+ (dest_base_6_ena << COHER_STATUS_HOST_DEST_BASE_6_ENA_SHIFT) | \
+ (dest_base_7_ena << COHER_STATUS_HOST_DEST_BASE_7_ENA_SHIFT) | \
+ (rb_color_info_ena << COHER_STATUS_HOST_RB_COLOR_INFO_ENA_SHIFT) | \
+ (tc_action_ena << COHER_STATUS_HOST_TC_ACTION_ENA_SHIFT) | \
+ (status << COHER_STATUS_HOST_STATUS_SHIFT))
+
+#define COHER_STATUS_HOST_GET_MATCHING_CONTEXTS(coher_status_host) \
+ ((coher_status_host & COHER_STATUS_HOST_MATCHING_CONTEXTS_MASK) >> COHER_STATUS_HOST_MATCHING_CONTEXTS_SHIFT)
+#define COHER_STATUS_HOST_GET_RB_COPY_DEST_BASE_ENA(coher_status_host) \
+ ((coher_status_host & COHER_STATUS_HOST_RB_COPY_DEST_BASE_ENA_MASK) >> COHER_STATUS_HOST_RB_COPY_DEST_BASE_ENA_SHIFT)
+#define COHER_STATUS_HOST_GET_DEST_BASE_0_ENA(coher_status_host) \
+ ((coher_status_host & COHER_STATUS_HOST_DEST_BASE_0_ENA_MASK) >> COHER_STATUS_HOST_DEST_BASE_0_ENA_SHIFT)
+#define COHER_STATUS_HOST_GET_DEST_BASE_1_ENA(coher_status_host) \
+ ((coher_status_host & COHER_STATUS_HOST_DEST_BASE_1_ENA_MASK) >> COHER_STATUS_HOST_DEST_BASE_1_ENA_SHIFT)
+#define COHER_STATUS_HOST_GET_DEST_BASE_2_ENA(coher_status_host) \
+ ((coher_status_host & COHER_STATUS_HOST_DEST_BASE_2_ENA_MASK) >> COHER_STATUS_HOST_DEST_BASE_2_ENA_SHIFT)
+#define COHER_STATUS_HOST_GET_DEST_BASE_3_ENA(coher_status_host) \
+ ((coher_status_host & COHER_STATUS_HOST_DEST_BASE_3_ENA_MASK) >> COHER_STATUS_HOST_DEST_BASE_3_ENA_SHIFT)
+#define COHER_STATUS_HOST_GET_DEST_BASE_4_ENA(coher_status_host) \
+ ((coher_status_host & COHER_STATUS_HOST_DEST_BASE_4_ENA_MASK) >> COHER_STATUS_HOST_DEST_BASE_4_ENA_SHIFT)
+#define COHER_STATUS_HOST_GET_DEST_BASE_5_ENA(coher_status_host) \
+ ((coher_status_host & COHER_STATUS_HOST_DEST_BASE_5_ENA_MASK) >> COHER_STATUS_HOST_DEST_BASE_5_ENA_SHIFT)
+#define COHER_STATUS_HOST_GET_DEST_BASE_6_ENA(coher_status_host) \
+ ((coher_status_host & COHER_STATUS_HOST_DEST_BASE_6_ENA_MASK) >> COHER_STATUS_HOST_DEST_BASE_6_ENA_SHIFT)
+#define COHER_STATUS_HOST_GET_DEST_BASE_7_ENA(coher_status_host) \
+ ((coher_status_host & COHER_STATUS_HOST_DEST_BASE_7_ENA_MASK) >> COHER_STATUS_HOST_DEST_BASE_7_ENA_SHIFT)
+#define COHER_STATUS_HOST_GET_RB_COLOR_INFO_ENA(coher_status_host) \
+ ((coher_status_host & COHER_STATUS_HOST_RB_COLOR_INFO_ENA_MASK) >> COHER_STATUS_HOST_RB_COLOR_INFO_ENA_SHIFT)
+#define COHER_STATUS_HOST_GET_TC_ACTION_ENA(coher_status_host) \
+ ((coher_status_host & COHER_STATUS_HOST_TC_ACTION_ENA_MASK) >> COHER_STATUS_HOST_TC_ACTION_ENA_SHIFT)
+#define COHER_STATUS_HOST_GET_STATUS(coher_status_host) \
+ ((coher_status_host & COHER_STATUS_HOST_STATUS_MASK) >> COHER_STATUS_HOST_STATUS_SHIFT)
+
+#define COHER_STATUS_HOST_SET_MATCHING_CONTEXTS(coher_status_host_reg, matching_contexts) \
+ coher_status_host_reg = (coher_status_host_reg & ~COHER_STATUS_HOST_MATCHING_CONTEXTS_MASK) | (matching_contexts << COHER_STATUS_HOST_MATCHING_CONTEXTS_SHIFT)
+#define COHER_STATUS_HOST_SET_RB_COPY_DEST_BASE_ENA(coher_status_host_reg, rb_copy_dest_base_ena) \
+ coher_status_host_reg = (coher_status_host_reg & ~COHER_STATUS_HOST_RB_COPY_DEST_BASE_ENA_MASK) | (rb_copy_dest_base_ena << COHER_STATUS_HOST_RB_COPY_DEST_BASE_ENA_SHIFT)
+#define COHER_STATUS_HOST_SET_DEST_BASE_0_ENA(coher_status_host_reg, dest_base_0_ena) \
+ coher_status_host_reg = (coher_status_host_reg & ~COHER_STATUS_HOST_DEST_BASE_0_ENA_MASK) | (dest_base_0_ena << COHER_STATUS_HOST_DEST_BASE_0_ENA_SHIFT)
+#define COHER_STATUS_HOST_SET_DEST_BASE_1_ENA(coher_status_host_reg, dest_base_1_ena) \
+ coher_status_host_reg = (coher_status_host_reg & ~COHER_STATUS_HOST_DEST_BASE_1_ENA_MASK) | (dest_base_1_ena << COHER_STATUS_HOST_DEST_BASE_1_ENA_SHIFT)
+#define COHER_STATUS_HOST_SET_DEST_BASE_2_ENA(coher_status_host_reg, dest_base_2_ena) \
+ coher_status_host_reg = (coher_status_host_reg & ~COHER_STATUS_HOST_DEST_BASE_2_ENA_MASK) | (dest_base_2_ena << COHER_STATUS_HOST_DEST_BASE_2_ENA_SHIFT)
+#define COHER_STATUS_HOST_SET_DEST_BASE_3_ENA(coher_status_host_reg, dest_base_3_ena) \
+ coher_status_host_reg = (coher_status_host_reg & ~COHER_STATUS_HOST_DEST_BASE_3_ENA_MASK) | (dest_base_3_ena << COHER_STATUS_HOST_DEST_BASE_3_ENA_SHIFT)
+#define COHER_STATUS_HOST_SET_DEST_BASE_4_ENA(coher_status_host_reg, dest_base_4_ena) \
+ coher_status_host_reg = (coher_status_host_reg & ~COHER_STATUS_HOST_DEST_BASE_4_ENA_MASK) | (dest_base_4_ena << COHER_STATUS_HOST_DEST_BASE_4_ENA_SHIFT)
+#define COHER_STATUS_HOST_SET_DEST_BASE_5_ENA(coher_status_host_reg, dest_base_5_ena) \
+ coher_status_host_reg = (coher_status_host_reg & ~COHER_STATUS_HOST_DEST_BASE_5_ENA_MASK) | (dest_base_5_ena << COHER_STATUS_HOST_DEST_BASE_5_ENA_SHIFT)
+#define COHER_STATUS_HOST_SET_DEST_BASE_6_ENA(coher_status_host_reg, dest_base_6_ena) \
+ coher_status_host_reg = (coher_status_host_reg & ~COHER_STATUS_HOST_DEST_BASE_6_ENA_MASK) | (dest_base_6_ena << COHER_STATUS_HOST_DEST_BASE_6_ENA_SHIFT)
+#define COHER_STATUS_HOST_SET_DEST_BASE_7_ENA(coher_status_host_reg, dest_base_7_ena) \
+ coher_status_host_reg = (coher_status_host_reg & ~COHER_STATUS_HOST_DEST_BASE_7_ENA_MASK) | (dest_base_7_ena << COHER_STATUS_HOST_DEST_BASE_7_ENA_SHIFT)
+#define COHER_STATUS_HOST_SET_RB_COLOR_INFO_ENA(coher_status_host_reg, rb_color_info_ena) \
+ coher_status_host_reg = (coher_status_host_reg & ~COHER_STATUS_HOST_RB_COLOR_INFO_ENA_MASK) | (rb_color_info_ena << COHER_STATUS_HOST_RB_COLOR_INFO_ENA_SHIFT)
+#define COHER_STATUS_HOST_SET_TC_ACTION_ENA(coher_status_host_reg, tc_action_ena) \
+ coher_status_host_reg = (coher_status_host_reg & ~COHER_STATUS_HOST_TC_ACTION_ENA_MASK) | (tc_action_ena << COHER_STATUS_HOST_TC_ACTION_ENA_SHIFT)
+#define COHER_STATUS_HOST_SET_STATUS(coher_status_host_reg, status) \
+ coher_status_host_reg = (coher_status_host_reg & ~COHER_STATUS_HOST_STATUS_MASK) | (status << COHER_STATUS_HOST_STATUS_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _coher_status_host_t {
+ unsigned int matching_contexts : COHER_STATUS_HOST_MATCHING_CONTEXTS_SIZE;
+ unsigned int rb_copy_dest_base_ena : COHER_STATUS_HOST_RB_COPY_DEST_BASE_ENA_SIZE;
+ unsigned int dest_base_0_ena : COHER_STATUS_HOST_DEST_BASE_0_ENA_SIZE;
+ unsigned int dest_base_1_ena : COHER_STATUS_HOST_DEST_BASE_1_ENA_SIZE;
+ unsigned int dest_base_2_ena : COHER_STATUS_HOST_DEST_BASE_2_ENA_SIZE;
+ unsigned int dest_base_3_ena : COHER_STATUS_HOST_DEST_BASE_3_ENA_SIZE;
+ unsigned int dest_base_4_ena : COHER_STATUS_HOST_DEST_BASE_4_ENA_SIZE;
+ unsigned int dest_base_5_ena : COHER_STATUS_HOST_DEST_BASE_5_ENA_SIZE;
+ unsigned int dest_base_6_ena : COHER_STATUS_HOST_DEST_BASE_6_ENA_SIZE;
+ unsigned int dest_base_7_ena : COHER_STATUS_HOST_DEST_BASE_7_ENA_SIZE;
+ unsigned int rb_color_info_ena : COHER_STATUS_HOST_RB_COLOR_INFO_ENA_SIZE;
+ unsigned int : 7;
+ unsigned int tc_action_ena : COHER_STATUS_HOST_TC_ACTION_ENA_SIZE;
+ unsigned int : 5;
+ unsigned int status : COHER_STATUS_HOST_STATUS_SIZE;
+ } coher_status_host_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _coher_status_host_t {
+ unsigned int status : COHER_STATUS_HOST_STATUS_SIZE;
+ unsigned int : 5;
+ unsigned int tc_action_ena : COHER_STATUS_HOST_TC_ACTION_ENA_SIZE;
+ unsigned int : 7;
+ unsigned int rb_color_info_ena : COHER_STATUS_HOST_RB_COLOR_INFO_ENA_SIZE;
+ unsigned int dest_base_7_ena : COHER_STATUS_HOST_DEST_BASE_7_ENA_SIZE;
+ unsigned int dest_base_6_ena : COHER_STATUS_HOST_DEST_BASE_6_ENA_SIZE;
+ unsigned int dest_base_5_ena : COHER_STATUS_HOST_DEST_BASE_5_ENA_SIZE;
+ unsigned int dest_base_4_ena : COHER_STATUS_HOST_DEST_BASE_4_ENA_SIZE;
+ unsigned int dest_base_3_ena : COHER_STATUS_HOST_DEST_BASE_3_ENA_SIZE;
+ unsigned int dest_base_2_ena : COHER_STATUS_HOST_DEST_BASE_2_ENA_SIZE;
+ unsigned int dest_base_1_ena : COHER_STATUS_HOST_DEST_BASE_1_ENA_SIZE;
+ unsigned int dest_base_0_ena : COHER_STATUS_HOST_DEST_BASE_0_ENA_SIZE;
+ unsigned int rb_copy_dest_base_ena : COHER_STATUS_HOST_RB_COPY_DEST_BASE_ENA_SIZE;
+ unsigned int matching_contexts : COHER_STATUS_HOST_MATCHING_CONTEXTS_SIZE;
+ } coher_status_host_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ coher_status_host_t f;
+} coher_status_host_u;
+
+
+/*
+ * COHER_DEST_BASE_0 struct
+ */
+
+#define COHER_DEST_BASE_0_DEST_BASE_0_SIZE 20
+
+#define COHER_DEST_BASE_0_DEST_BASE_0_SHIFT 12
+
+#define COHER_DEST_BASE_0_DEST_BASE_0_MASK 0xfffff000
+
+#define COHER_DEST_BASE_0_MASK \
+ (COHER_DEST_BASE_0_DEST_BASE_0_MASK)
+
+#define COHER_DEST_BASE_0(dest_base_0) \
+ ((dest_base_0 << COHER_DEST_BASE_0_DEST_BASE_0_SHIFT))
+
+#define COHER_DEST_BASE_0_GET_DEST_BASE_0(coher_dest_base_0) \
+ ((coher_dest_base_0 & COHER_DEST_BASE_0_DEST_BASE_0_MASK) >> COHER_DEST_BASE_0_DEST_BASE_0_SHIFT)
+
+#define COHER_DEST_BASE_0_SET_DEST_BASE_0(coher_dest_base_0_reg, dest_base_0) \
+ coher_dest_base_0_reg = (coher_dest_base_0_reg & ~COHER_DEST_BASE_0_DEST_BASE_0_MASK) | (dest_base_0 << COHER_DEST_BASE_0_DEST_BASE_0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _coher_dest_base_0_t {
+ unsigned int : 12;
+ unsigned int dest_base_0 : COHER_DEST_BASE_0_DEST_BASE_0_SIZE;
+ } coher_dest_base_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _coher_dest_base_0_t {
+ unsigned int dest_base_0 : COHER_DEST_BASE_0_DEST_BASE_0_SIZE;
+ unsigned int : 12;
+ } coher_dest_base_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ coher_dest_base_0_t f;
+} coher_dest_base_0_u;
+
+
+/*
+ * COHER_DEST_BASE_1 struct
+ */
+
+#define COHER_DEST_BASE_1_DEST_BASE_1_SIZE 20
+
+#define COHER_DEST_BASE_1_DEST_BASE_1_SHIFT 12
+
+#define COHER_DEST_BASE_1_DEST_BASE_1_MASK 0xfffff000
+
+#define COHER_DEST_BASE_1_MASK \
+ (COHER_DEST_BASE_1_DEST_BASE_1_MASK)
+
+#define COHER_DEST_BASE_1(dest_base_1) \
+ ((dest_base_1 << COHER_DEST_BASE_1_DEST_BASE_1_SHIFT))
+
+#define COHER_DEST_BASE_1_GET_DEST_BASE_1(coher_dest_base_1) \
+ ((coher_dest_base_1 & COHER_DEST_BASE_1_DEST_BASE_1_MASK) >> COHER_DEST_BASE_1_DEST_BASE_1_SHIFT)
+
+#define COHER_DEST_BASE_1_SET_DEST_BASE_1(coher_dest_base_1_reg, dest_base_1) \
+ coher_dest_base_1_reg = (coher_dest_base_1_reg & ~COHER_DEST_BASE_1_DEST_BASE_1_MASK) | (dest_base_1 << COHER_DEST_BASE_1_DEST_BASE_1_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _coher_dest_base_1_t {
+ unsigned int : 12;
+ unsigned int dest_base_1 : COHER_DEST_BASE_1_DEST_BASE_1_SIZE;
+ } coher_dest_base_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _coher_dest_base_1_t {
+ unsigned int dest_base_1 : COHER_DEST_BASE_1_DEST_BASE_1_SIZE;
+ unsigned int : 12;
+ } coher_dest_base_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ coher_dest_base_1_t f;
+} coher_dest_base_1_u;
+
+
+/*
+ * COHER_DEST_BASE_2 struct
+ */
+
+#define COHER_DEST_BASE_2_DEST_BASE_2_SIZE 20
+
+#define COHER_DEST_BASE_2_DEST_BASE_2_SHIFT 12
+
+#define COHER_DEST_BASE_2_DEST_BASE_2_MASK 0xfffff000
+
+#define COHER_DEST_BASE_2_MASK \
+ (COHER_DEST_BASE_2_DEST_BASE_2_MASK)
+
+#define COHER_DEST_BASE_2(dest_base_2) \
+ ((dest_base_2 << COHER_DEST_BASE_2_DEST_BASE_2_SHIFT))
+
+#define COHER_DEST_BASE_2_GET_DEST_BASE_2(coher_dest_base_2) \
+ ((coher_dest_base_2 & COHER_DEST_BASE_2_DEST_BASE_2_MASK) >> COHER_DEST_BASE_2_DEST_BASE_2_SHIFT)
+
+#define COHER_DEST_BASE_2_SET_DEST_BASE_2(coher_dest_base_2_reg, dest_base_2) \
+ coher_dest_base_2_reg = (coher_dest_base_2_reg & ~COHER_DEST_BASE_2_DEST_BASE_2_MASK) | (dest_base_2 << COHER_DEST_BASE_2_DEST_BASE_2_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _coher_dest_base_2_t {
+ unsigned int : 12;
+ unsigned int dest_base_2 : COHER_DEST_BASE_2_DEST_BASE_2_SIZE;
+ } coher_dest_base_2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _coher_dest_base_2_t {
+ unsigned int dest_base_2 : COHER_DEST_BASE_2_DEST_BASE_2_SIZE;
+ unsigned int : 12;
+ } coher_dest_base_2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ coher_dest_base_2_t f;
+} coher_dest_base_2_u;
+
+
+/*
+ * COHER_DEST_BASE_3 struct
+ */
+
+#define COHER_DEST_BASE_3_DEST_BASE_3_SIZE 20
+
+#define COHER_DEST_BASE_3_DEST_BASE_3_SHIFT 12
+
+#define COHER_DEST_BASE_3_DEST_BASE_3_MASK 0xfffff000
+
+#define COHER_DEST_BASE_3_MASK \
+ (COHER_DEST_BASE_3_DEST_BASE_3_MASK)
+
+#define COHER_DEST_BASE_3(dest_base_3) \
+ ((dest_base_3 << COHER_DEST_BASE_3_DEST_BASE_3_SHIFT))
+
+#define COHER_DEST_BASE_3_GET_DEST_BASE_3(coher_dest_base_3) \
+ ((coher_dest_base_3 & COHER_DEST_BASE_3_DEST_BASE_3_MASK) >> COHER_DEST_BASE_3_DEST_BASE_3_SHIFT)
+
+#define COHER_DEST_BASE_3_SET_DEST_BASE_3(coher_dest_base_3_reg, dest_base_3) \
+ coher_dest_base_3_reg = (coher_dest_base_3_reg & ~COHER_DEST_BASE_3_DEST_BASE_3_MASK) | (dest_base_3 << COHER_DEST_BASE_3_DEST_BASE_3_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _coher_dest_base_3_t {
+ unsigned int : 12;
+ unsigned int dest_base_3 : COHER_DEST_BASE_3_DEST_BASE_3_SIZE;
+ } coher_dest_base_3_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _coher_dest_base_3_t {
+ unsigned int dest_base_3 : COHER_DEST_BASE_3_DEST_BASE_3_SIZE;
+ unsigned int : 12;
+ } coher_dest_base_3_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ coher_dest_base_3_t f;
+} coher_dest_base_3_u;
+
+
+/*
+ * COHER_DEST_BASE_4 struct
+ */
+
+#define COHER_DEST_BASE_4_DEST_BASE_4_SIZE 20
+
+#define COHER_DEST_BASE_4_DEST_BASE_4_SHIFT 12
+
+#define COHER_DEST_BASE_4_DEST_BASE_4_MASK 0xfffff000
+
+#define COHER_DEST_BASE_4_MASK \
+ (COHER_DEST_BASE_4_DEST_BASE_4_MASK)
+
+#define COHER_DEST_BASE_4(dest_base_4) \
+ ((dest_base_4 << COHER_DEST_BASE_4_DEST_BASE_4_SHIFT))
+
+#define COHER_DEST_BASE_4_GET_DEST_BASE_4(coher_dest_base_4) \
+ ((coher_dest_base_4 & COHER_DEST_BASE_4_DEST_BASE_4_MASK) >> COHER_DEST_BASE_4_DEST_BASE_4_SHIFT)
+
+#define COHER_DEST_BASE_4_SET_DEST_BASE_4(coher_dest_base_4_reg, dest_base_4) \
+ coher_dest_base_4_reg = (coher_dest_base_4_reg & ~COHER_DEST_BASE_4_DEST_BASE_4_MASK) | (dest_base_4 << COHER_DEST_BASE_4_DEST_BASE_4_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _coher_dest_base_4_t {
+ unsigned int : 12;
+ unsigned int dest_base_4 : COHER_DEST_BASE_4_DEST_BASE_4_SIZE;
+ } coher_dest_base_4_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _coher_dest_base_4_t {
+ unsigned int dest_base_4 : COHER_DEST_BASE_4_DEST_BASE_4_SIZE;
+ unsigned int : 12;
+ } coher_dest_base_4_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ coher_dest_base_4_t f;
+} coher_dest_base_4_u;
+
+
+/*
+ * COHER_DEST_BASE_5 struct
+ */
+
+#define COHER_DEST_BASE_5_DEST_BASE_5_SIZE 20
+
+#define COHER_DEST_BASE_5_DEST_BASE_5_SHIFT 12
+
+#define COHER_DEST_BASE_5_DEST_BASE_5_MASK 0xfffff000
+
+#define COHER_DEST_BASE_5_MASK \
+ (COHER_DEST_BASE_5_DEST_BASE_5_MASK)
+
+#define COHER_DEST_BASE_5(dest_base_5) \
+ ((dest_base_5 << COHER_DEST_BASE_5_DEST_BASE_5_SHIFT))
+
+#define COHER_DEST_BASE_5_GET_DEST_BASE_5(coher_dest_base_5) \
+ ((coher_dest_base_5 & COHER_DEST_BASE_5_DEST_BASE_5_MASK) >> COHER_DEST_BASE_5_DEST_BASE_5_SHIFT)
+
+#define COHER_DEST_BASE_5_SET_DEST_BASE_5(coher_dest_base_5_reg, dest_base_5) \
+ coher_dest_base_5_reg = (coher_dest_base_5_reg & ~COHER_DEST_BASE_5_DEST_BASE_5_MASK) | (dest_base_5 << COHER_DEST_BASE_5_DEST_BASE_5_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _coher_dest_base_5_t {
+ unsigned int : 12;
+ unsigned int dest_base_5 : COHER_DEST_BASE_5_DEST_BASE_5_SIZE;
+ } coher_dest_base_5_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _coher_dest_base_5_t {
+ unsigned int dest_base_5 : COHER_DEST_BASE_5_DEST_BASE_5_SIZE;
+ unsigned int : 12;
+ } coher_dest_base_5_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ coher_dest_base_5_t f;
+} coher_dest_base_5_u;
+
+
+/*
+ * COHER_DEST_BASE_6 struct
+ */
+
+#define COHER_DEST_BASE_6_DEST_BASE_6_SIZE 20
+
+#define COHER_DEST_BASE_6_DEST_BASE_6_SHIFT 12
+
+#define COHER_DEST_BASE_6_DEST_BASE_6_MASK 0xfffff000
+
+#define COHER_DEST_BASE_6_MASK \
+ (COHER_DEST_BASE_6_DEST_BASE_6_MASK)
+
+#define COHER_DEST_BASE_6(dest_base_6) \
+ ((dest_base_6 << COHER_DEST_BASE_6_DEST_BASE_6_SHIFT))
+
+#define COHER_DEST_BASE_6_GET_DEST_BASE_6(coher_dest_base_6) \
+ ((coher_dest_base_6 & COHER_DEST_BASE_6_DEST_BASE_6_MASK) >> COHER_DEST_BASE_6_DEST_BASE_6_SHIFT)
+
+#define COHER_DEST_BASE_6_SET_DEST_BASE_6(coher_dest_base_6_reg, dest_base_6) \
+ coher_dest_base_6_reg = (coher_dest_base_6_reg & ~COHER_DEST_BASE_6_DEST_BASE_6_MASK) | (dest_base_6 << COHER_DEST_BASE_6_DEST_BASE_6_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _coher_dest_base_6_t {
+ unsigned int : 12;
+ unsigned int dest_base_6 : COHER_DEST_BASE_6_DEST_BASE_6_SIZE;
+ } coher_dest_base_6_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _coher_dest_base_6_t {
+ unsigned int dest_base_6 : COHER_DEST_BASE_6_DEST_BASE_6_SIZE;
+ unsigned int : 12;
+ } coher_dest_base_6_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ coher_dest_base_6_t f;
+} coher_dest_base_6_u;
+
+
+/*
+ * COHER_DEST_BASE_7 struct
+ */
+
+#define COHER_DEST_BASE_7_DEST_BASE_7_SIZE 20
+
+#define COHER_DEST_BASE_7_DEST_BASE_7_SHIFT 12
+
+#define COHER_DEST_BASE_7_DEST_BASE_7_MASK 0xfffff000
+
+#define COHER_DEST_BASE_7_MASK \
+ (COHER_DEST_BASE_7_DEST_BASE_7_MASK)
+
+#define COHER_DEST_BASE_7(dest_base_7) \
+ ((dest_base_7 << COHER_DEST_BASE_7_DEST_BASE_7_SHIFT))
+
+#define COHER_DEST_BASE_7_GET_DEST_BASE_7(coher_dest_base_7) \
+ ((coher_dest_base_7 & COHER_DEST_BASE_7_DEST_BASE_7_MASK) >> COHER_DEST_BASE_7_DEST_BASE_7_SHIFT)
+
+#define COHER_DEST_BASE_7_SET_DEST_BASE_7(coher_dest_base_7_reg, dest_base_7) \
+ coher_dest_base_7_reg = (coher_dest_base_7_reg & ~COHER_DEST_BASE_7_DEST_BASE_7_MASK) | (dest_base_7 << COHER_DEST_BASE_7_DEST_BASE_7_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _coher_dest_base_7_t {
+ unsigned int : 12;
+ unsigned int dest_base_7 : COHER_DEST_BASE_7_DEST_BASE_7_SIZE;
+ } coher_dest_base_7_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _coher_dest_base_7_t {
+ unsigned int dest_base_7 : COHER_DEST_BASE_7_DEST_BASE_7_SIZE;
+ unsigned int : 12;
+ } coher_dest_base_7_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ coher_dest_base_7_t f;
+} coher_dest_base_7_u;
+
+
+#endif
+
+
+#if !defined (_RBBM_FIDDLE_H)
+#define _RBBM_FIDDLE_H
+
+/*******************************************************
+ * Enums
+ *******************************************************/
+
+
+/*******************************************************
+ * Values
+ *******************************************************/
+
+
+/*******************************************************
+ * Structures
+ *******************************************************/
+
+/*
+ * WAIT_UNTIL struct
+ */
+
+#define WAIT_UNTIL_WAIT_RE_VSYNC_SIZE 1
+#define WAIT_UNTIL_WAIT_FE_VSYNC_SIZE 1
+#define WAIT_UNTIL_WAIT_VSYNC_SIZE 1
+#define WAIT_UNTIL_WAIT_DSPLY_ID0_SIZE 1
+#define WAIT_UNTIL_WAIT_DSPLY_ID1_SIZE 1
+#define WAIT_UNTIL_WAIT_DSPLY_ID2_SIZE 1
+#define WAIT_UNTIL_WAIT_CMDFIFO_SIZE 1
+#define WAIT_UNTIL_WAIT_2D_IDLE_SIZE 1
+#define WAIT_UNTIL_WAIT_3D_IDLE_SIZE 1
+#define WAIT_UNTIL_WAIT_2D_IDLECLEAN_SIZE 1
+#define WAIT_UNTIL_WAIT_3D_IDLECLEAN_SIZE 1
+#define WAIT_UNTIL_CMDFIFO_ENTRIES_SIZE 4
+
+#define WAIT_UNTIL_WAIT_RE_VSYNC_SHIFT 1
+#define WAIT_UNTIL_WAIT_FE_VSYNC_SHIFT 2
+#define WAIT_UNTIL_WAIT_VSYNC_SHIFT 3
+#define WAIT_UNTIL_WAIT_DSPLY_ID0_SHIFT 4
+#define WAIT_UNTIL_WAIT_DSPLY_ID1_SHIFT 5
+#define WAIT_UNTIL_WAIT_DSPLY_ID2_SHIFT 6
+#define WAIT_UNTIL_WAIT_CMDFIFO_SHIFT 10
+#define WAIT_UNTIL_WAIT_2D_IDLE_SHIFT 14
+#define WAIT_UNTIL_WAIT_3D_IDLE_SHIFT 15
+#define WAIT_UNTIL_WAIT_2D_IDLECLEAN_SHIFT 16
+#define WAIT_UNTIL_WAIT_3D_IDLECLEAN_SHIFT 17
+#define WAIT_UNTIL_CMDFIFO_ENTRIES_SHIFT 20
+
+#define WAIT_UNTIL_WAIT_RE_VSYNC_MASK 0x00000002
+#define WAIT_UNTIL_WAIT_FE_VSYNC_MASK 0x00000004
+#define WAIT_UNTIL_WAIT_VSYNC_MASK 0x00000008
+#define WAIT_UNTIL_WAIT_DSPLY_ID0_MASK 0x00000010
+#define WAIT_UNTIL_WAIT_DSPLY_ID1_MASK 0x00000020
+#define WAIT_UNTIL_WAIT_DSPLY_ID2_MASK 0x00000040
+#define WAIT_UNTIL_WAIT_CMDFIFO_MASK 0x00000400
+#define WAIT_UNTIL_WAIT_2D_IDLE_MASK 0x00004000
+#define WAIT_UNTIL_WAIT_3D_IDLE_MASK 0x00008000
+#define WAIT_UNTIL_WAIT_2D_IDLECLEAN_MASK 0x00010000
+#define WAIT_UNTIL_WAIT_3D_IDLECLEAN_MASK 0x00020000
+#define WAIT_UNTIL_CMDFIFO_ENTRIES_MASK 0x00f00000
+
+#define WAIT_UNTIL_MASK \
+ (WAIT_UNTIL_WAIT_RE_VSYNC_MASK | \
+ WAIT_UNTIL_WAIT_FE_VSYNC_MASK | \
+ WAIT_UNTIL_WAIT_VSYNC_MASK | \
+ WAIT_UNTIL_WAIT_DSPLY_ID0_MASK | \
+ WAIT_UNTIL_WAIT_DSPLY_ID1_MASK | \
+ WAIT_UNTIL_WAIT_DSPLY_ID2_MASK | \
+ WAIT_UNTIL_WAIT_CMDFIFO_MASK | \
+ WAIT_UNTIL_WAIT_2D_IDLE_MASK | \
+ WAIT_UNTIL_WAIT_3D_IDLE_MASK | \
+ WAIT_UNTIL_WAIT_2D_IDLECLEAN_MASK | \
+ WAIT_UNTIL_WAIT_3D_IDLECLEAN_MASK | \
+ WAIT_UNTIL_CMDFIFO_ENTRIES_MASK)
+
+#define WAIT_UNTIL(wait_re_vsync, wait_fe_vsync, wait_vsync, wait_dsply_id0, wait_dsply_id1, wait_dsply_id2, wait_cmdfifo, wait_2d_idle, wait_3d_idle, wait_2d_idleclean, wait_3d_idleclean, cmdfifo_entries) \
+ ((wait_re_vsync << WAIT_UNTIL_WAIT_RE_VSYNC_SHIFT) | \
+ (wait_fe_vsync << WAIT_UNTIL_WAIT_FE_VSYNC_SHIFT) | \
+ (wait_vsync << WAIT_UNTIL_WAIT_VSYNC_SHIFT) | \
+ (wait_dsply_id0 << WAIT_UNTIL_WAIT_DSPLY_ID0_SHIFT) | \
+ (wait_dsply_id1 << WAIT_UNTIL_WAIT_DSPLY_ID1_SHIFT) | \
+ (wait_dsply_id2 << WAIT_UNTIL_WAIT_DSPLY_ID2_SHIFT) | \
+ (wait_cmdfifo << WAIT_UNTIL_WAIT_CMDFIFO_SHIFT) | \
+ (wait_2d_idle << WAIT_UNTIL_WAIT_2D_IDLE_SHIFT) | \
+ (wait_3d_idle << WAIT_UNTIL_WAIT_3D_IDLE_SHIFT) | \
+ (wait_2d_idleclean << WAIT_UNTIL_WAIT_2D_IDLECLEAN_SHIFT) | \
+ (wait_3d_idleclean << WAIT_UNTIL_WAIT_3D_IDLECLEAN_SHIFT) | \
+ (cmdfifo_entries << WAIT_UNTIL_CMDFIFO_ENTRIES_SHIFT))
+
+#define WAIT_UNTIL_GET_WAIT_RE_VSYNC(wait_until) \
+ ((wait_until & WAIT_UNTIL_WAIT_RE_VSYNC_MASK) >> WAIT_UNTIL_WAIT_RE_VSYNC_SHIFT)
+#define WAIT_UNTIL_GET_WAIT_FE_VSYNC(wait_until) \
+ ((wait_until & WAIT_UNTIL_WAIT_FE_VSYNC_MASK) >> WAIT_UNTIL_WAIT_FE_VSYNC_SHIFT)
+#define WAIT_UNTIL_GET_WAIT_VSYNC(wait_until) \
+ ((wait_until & WAIT_UNTIL_WAIT_VSYNC_MASK) >> WAIT_UNTIL_WAIT_VSYNC_SHIFT)
+#define WAIT_UNTIL_GET_WAIT_DSPLY_ID0(wait_until) \
+ ((wait_until & WAIT_UNTIL_WAIT_DSPLY_ID0_MASK) >> WAIT_UNTIL_WAIT_DSPLY_ID0_SHIFT)
+#define WAIT_UNTIL_GET_WAIT_DSPLY_ID1(wait_until) \
+ ((wait_until & WAIT_UNTIL_WAIT_DSPLY_ID1_MASK) >> WAIT_UNTIL_WAIT_DSPLY_ID1_SHIFT)
+#define WAIT_UNTIL_GET_WAIT_DSPLY_ID2(wait_until) \
+ ((wait_until & WAIT_UNTIL_WAIT_DSPLY_ID2_MASK) >> WAIT_UNTIL_WAIT_DSPLY_ID2_SHIFT)
+#define WAIT_UNTIL_GET_WAIT_CMDFIFO(wait_until) \
+ ((wait_until & WAIT_UNTIL_WAIT_CMDFIFO_MASK) >> WAIT_UNTIL_WAIT_CMDFIFO_SHIFT)
+#define WAIT_UNTIL_GET_WAIT_2D_IDLE(wait_until) \
+ ((wait_until & WAIT_UNTIL_WAIT_2D_IDLE_MASK) >> WAIT_UNTIL_WAIT_2D_IDLE_SHIFT)
+#define WAIT_UNTIL_GET_WAIT_3D_IDLE(wait_until) \
+ ((wait_until & WAIT_UNTIL_WAIT_3D_IDLE_MASK) >> WAIT_UNTIL_WAIT_3D_IDLE_SHIFT)
+#define WAIT_UNTIL_GET_WAIT_2D_IDLECLEAN(wait_until) \
+ ((wait_until & WAIT_UNTIL_WAIT_2D_IDLECLEAN_MASK) >> WAIT_UNTIL_WAIT_2D_IDLECLEAN_SHIFT)
+#define WAIT_UNTIL_GET_WAIT_3D_IDLECLEAN(wait_until) \
+ ((wait_until & WAIT_UNTIL_WAIT_3D_IDLECLEAN_MASK) >> WAIT_UNTIL_WAIT_3D_IDLECLEAN_SHIFT)
+#define WAIT_UNTIL_GET_CMDFIFO_ENTRIES(wait_until) \
+ ((wait_until & WAIT_UNTIL_CMDFIFO_ENTRIES_MASK) >> WAIT_UNTIL_CMDFIFO_ENTRIES_SHIFT)
+
+#define WAIT_UNTIL_SET_WAIT_RE_VSYNC(wait_until_reg, wait_re_vsync) \
+ wait_until_reg = (wait_until_reg & ~WAIT_UNTIL_WAIT_RE_VSYNC_MASK) | (wait_re_vsync << WAIT_UNTIL_WAIT_RE_VSYNC_SHIFT)
+#define WAIT_UNTIL_SET_WAIT_FE_VSYNC(wait_until_reg, wait_fe_vsync) \
+ wait_until_reg = (wait_until_reg & ~WAIT_UNTIL_WAIT_FE_VSYNC_MASK) | (wait_fe_vsync << WAIT_UNTIL_WAIT_FE_VSYNC_SHIFT)
+#define WAIT_UNTIL_SET_WAIT_VSYNC(wait_until_reg, wait_vsync) \
+ wait_until_reg = (wait_until_reg & ~WAIT_UNTIL_WAIT_VSYNC_MASK) | (wait_vsync << WAIT_UNTIL_WAIT_VSYNC_SHIFT)
+#define WAIT_UNTIL_SET_WAIT_DSPLY_ID0(wait_until_reg, wait_dsply_id0) \
+ wait_until_reg = (wait_until_reg & ~WAIT_UNTIL_WAIT_DSPLY_ID0_MASK) | (wait_dsply_id0 << WAIT_UNTIL_WAIT_DSPLY_ID0_SHIFT)
+#define WAIT_UNTIL_SET_WAIT_DSPLY_ID1(wait_until_reg, wait_dsply_id1) \
+ wait_until_reg = (wait_until_reg & ~WAIT_UNTIL_WAIT_DSPLY_ID1_MASK) | (wait_dsply_id1 << WAIT_UNTIL_WAIT_DSPLY_ID1_SHIFT)
+#define WAIT_UNTIL_SET_WAIT_DSPLY_ID2(wait_until_reg, wait_dsply_id2) \
+ wait_until_reg = (wait_until_reg & ~WAIT_UNTIL_WAIT_DSPLY_ID2_MASK) | (wait_dsply_id2 << WAIT_UNTIL_WAIT_DSPLY_ID2_SHIFT)
+#define WAIT_UNTIL_SET_WAIT_CMDFIFO(wait_until_reg, wait_cmdfifo) \
+ wait_until_reg = (wait_until_reg & ~WAIT_UNTIL_WAIT_CMDFIFO_MASK) | (wait_cmdfifo << WAIT_UNTIL_WAIT_CMDFIFO_SHIFT)
+#define WAIT_UNTIL_SET_WAIT_2D_IDLE(wait_until_reg, wait_2d_idle) \
+ wait_until_reg = (wait_until_reg & ~WAIT_UNTIL_WAIT_2D_IDLE_MASK) | (wait_2d_idle << WAIT_UNTIL_WAIT_2D_IDLE_SHIFT)
+#define WAIT_UNTIL_SET_WAIT_3D_IDLE(wait_until_reg, wait_3d_idle) \
+ wait_until_reg = (wait_until_reg & ~WAIT_UNTIL_WAIT_3D_IDLE_MASK) | (wait_3d_idle << WAIT_UNTIL_WAIT_3D_IDLE_SHIFT)
+#define WAIT_UNTIL_SET_WAIT_2D_IDLECLEAN(wait_until_reg, wait_2d_idleclean) \
+ wait_until_reg = (wait_until_reg & ~WAIT_UNTIL_WAIT_2D_IDLECLEAN_MASK) | (wait_2d_idleclean << WAIT_UNTIL_WAIT_2D_IDLECLEAN_SHIFT)
+#define WAIT_UNTIL_SET_WAIT_3D_IDLECLEAN(wait_until_reg, wait_3d_idleclean) \
+ wait_until_reg = (wait_until_reg & ~WAIT_UNTIL_WAIT_3D_IDLECLEAN_MASK) | (wait_3d_idleclean << WAIT_UNTIL_WAIT_3D_IDLECLEAN_SHIFT)
+#define WAIT_UNTIL_SET_CMDFIFO_ENTRIES(wait_until_reg, cmdfifo_entries) \
+ wait_until_reg = (wait_until_reg & ~WAIT_UNTIL_CMDFIFO_ENTRIES_MASK) | (cmdfifo_entries << WAIT_UNTIL_CMDFIFO_ENTRIES_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _wait_until_t {
+ unsigned int : 1;
+ unsigned int wait_re_vsync : WAIT_UNTIL_WAIT_RE_VSYNC_SIZE;
+ unsigned int wait_fe_vsync : WAIT_UNTIL_WAIT_FE_VSYNC_SIZE;
+ unsigned int wait_vsync : WAIT_UNTIL_WAIT_VSYNC_SIZE;
+ unsigned int wait_dsply_id0 : WAIT_UNTIL_WAIT_DSPLY_ID0_SIZE;
+ unsigned int wait_dsply_id1 : WAIT_UNTIL_WAIT_DSPLY_ID1_SIZE;
+ unsigned int wait_dsply_id2 : WAIT_UNTIL_WAIT_DSPLY_ID2_SIZE;
+ unsigned int : 3;
+ unsigned int wait_cmdfifo : WAIT_UNTIL_WAIT_CMDFIFO_SIZE;
+ unsigned int : 3;
+ unsigned int wait_2d_idle : WAIT_UNTIL_WAIT_2D_IDLE_SIZE;
+ unsigned int wait_3d_idle : WAIT_UNTIL_WAIT_3D_IDLE_SIZE;
+ unsigned int wait_2d_idleclean : WAIT_UNTIL_WAIT_2D_IDLECLEAN_SIZE;
+ unsigned int wait_3d_idleclean : WAIT_UNTIL_WAIT_3D_IDLECLEAN_SIZE;
+ unsigned int : 2;
+ unsigned int cmdfifo_entries : WAIT_UNTIL_CMDFIFO_ENTRIES_SIZE;
+ unsigned int : 8;
+ } wait_until_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _wait_until_t {
+ unsigned int : 8;
+ unsigned int cmdfifo_entries : WAIT_UNTIL_CMDFIFO_ENTRIES_SIZE;
+ unsigned int : 2;
+ unsigned int wait_3d_idleclean : WAIT_UNTIL_WAIT_3D_IDLECLEAN_SIZE;
+ unsigned int wait_2d_idleclean : WAIT_UNTIL_WAIT_2D_IDLECLEAN_SIZE;
+ unsigned int wait_3d_idle : WAIT_UNTIL_WAIT_3D_IDLE_SIZE;
+ unsigned int wait_2d_idle : WAIT_UNTIL_WAIT_2D_IDLE_SIZE;
+ unsigned int : 3;
+ unsigned int wait_cmdfifo : WAIT_UNTIL_WAIT_CMDFIFO_SIZE;
+ unsigned int : 3;
+ unsigned int wait_dsply_id2 : WAIT_UNTIL_WAIT_DSPLY_ID2_SIZE;
+ unsigned int wait_dsply_id1 : WAIT_UNTIL_WAIT_DSPLY_ID1_SIZE;
+ unsigned int wait_dsply_id0 : WAIT_UNTIL_WAIT_DSPLY_ID0_SIZE;
+ unsigned int wait_vsync : WAIT_UNTIL_WAIT_VSYNC_SIZE;
+ unsigned int wait_fe_vsync : WAIT_UNTIL_WAIT_FE_VSYNC_SIZE;
+ unsigned int wait_re_vsync : WAIT_UNTIL_WAIT_RE_VSYNC_SIZE;
+ unsigned int : 1;
+ } wait_until_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ wait_until_t f;
+} wait_until_u;
+
+
+/*
+ * RBBM_ISYNC_CNTL struct
+ */
+
+#define RBBM_ISYNC_CNTL_ISYNC_WAIT_IDLEGUI_SIZE 1
+#define RBBM_ISYNC_CNTL_ISYNC_CPSCRATCH_IDLEGUI_SIZE 1
+
+#define RBBM_ISYNC_CNTL_ISYNC_WAIT_IDLEGUI_SHIFT 4
+#define RBBM_ISYNC_CNTL_ISYNC_CPSCRATCH_IDLEGUI_SHIFT 5
+
+#define RBBM_ISYNC_CNTL_ISYNC_WAIT_IDLEGUI_MASK 0x00000010
+#define RBBM_ISYNC_CNTL_ISYNC_CPSCRATCH_IDLEGUI_MASK 0x00000020
+
+#define RBBM_ISYNC_CNTL_MASK \
+ (RBBM_ISYNC_CNTL_ISYNC_WAIT_IDLEGUI_MASK | \
+ RBBM_ISYNC_CNTL_ISYNC_CPSCRATCH_IDLEGUI_MASK)
+
+#define RBBM_ISYNC_CNTL(isync_wait_idlegui, isync_cpscratch_idlegui) \
+ ((isync_wait_idlegui << RBBM_ISYNC_CNTL_ISYNC_WAIT_IDLEGUI_SHIFT) | \
+ (isync_cpscratch_idlegui << RBBM_ISYNC_CNTL_ISYNC_CPSCRATCH_IDLEGUI_SHIFT))
+
+#define RBBM_ISYNC_CNTL_GET_ISYNC_WAIT_IDLEGUI(rbbm_isync_cntl) \
+ ((rbbm_isync_cntl & RBBM_ISYNC_CNTL_ISYNC_WAIT_IDLEGUI_MASK) >> RBBM_ISYNC_CNTL_ISYNC_WAIT_IDLEGUI_SHIFT)
+#define RBBM_ISYNC_CNTL_GET_ISYNC_CPSCRATCH_IDLEGUI(rbbm_isync_cntl) \
+ ((rbbm_isync_cntl & RBBM_ISYNC_CNTL_ISYNC_CPSCRATCH_IDLEGUI_MASK) >> RBBM_ISYNC_CNTL_ISYNC_CPSCRATCH_IDLEGUI_SHIFT)
+
+#define RBBM_ISYNC_CNTL_SET_ISYNC_WAIT_IDLEGUI(rbbm_isync_cntl_reg, isync_wait_idlegui) \
+ rbbm_isync_cntl_reg = (rbbm_isync_cntl_reg & ~RBBM_ISYNC_CNTL_ISYNC_WAIT_IDLEGUI_MASK) | (isync_wait_idlegui << RBBM_ISYNC_CNTL_ISYNC_WAIT_IDLEGUI_SHIFT)
+#define RBBM_ISYNC_CNTL_SET_ISYNC_CPSCRATCH_IDLEGUI(rbbm_isync_cntl_reg, isync_cpscratch_idlegui) \
+ rbbm_isync_cntl_reg = (rbbm_isync_cntl_reg & ~RBBM_ISYNC_CNTL_ISYNC_CPSCRATCH_IDLEGUI_MASK) | (isync_cpscratch_idlegui << RBBM_ISYNC_CNTL_ISYNC_CPSCRATCH_IDLEGUI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_isync_cntl_t {
+ unsigned int : 4;
+ unsigned int isync_wait_idlegui : RBBM_ISYNC_CNTL_ISYNC_WAIT_IDLEGUI_SIZE;
+ unsigned int isync_cpscratch_idlegui : RBBM_ISYNC_CNTL_ISYNC_CPSCRATCH_IDLEGUI_SIZE;
+ unsigned int : 26;
+ } rbbm_isync_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_isync_cntl_t {
+ unsigned int : 26;
+ unsigned int isync_cpscratch_idlegui : RBBM_ISYNC_CNTL_ISYNC_CPSCRATCH_IDLEGUI_SIZE;
+ unsigned int isync_wait_idlegui : RBBM_ISYNC_CNTL_ISYNC_WAIT_IDLEGUI_SIZE;
+ unsigned int : 4;
+ } rbbm_isync_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_isync_cntl_t f;
+} rbbm_isync_cntl_u;
+
+
+/*
+ * RBBM_STATUS struct
+ */
+
+#define RBBM_STATUS_CMDFIFO_AVAIL_SIZE 5
+#define RBBM_STATUS_TC_BUSY_SIZE 1
+#define RBBM_STATUS_HIRQ_PENDING_SIZE 1
+#define RBBM_STATUS_CPRQ_PENDING_SIZE 1
+#define RBBM_STATUS_CFRQ_PENDING_SIZE 1
+#define RBBM_STATUS_PFRQ_PENDING_SIZE 1
+#define RBBM_STATUS_VGT_BUSY_NO_DMA_SIZE 1
+#define RBBM_STATUS_RBBM_WU_BUSY_SIZE 1
+#define RBBM_STATUS_CP_NRT_BUSY_SIZE 1
+#define RBBM_STATUS_MH_BUSY_SIZE 1
+#define RBBM_STATUS_MH_COHERENCY_BUSY_SIZE 1
+#define RBBM_STATUS_SX_BUSY_SIZE 1
+#define RBBM_STATUS_TPC_BUSY_SIZE 1
+#define RBBM_STATUS_SC_CNTX_BUSY_SIZE 1
+#define RBBM_STATUS_PA_BUSY_SIZE 1
+#define RBBM_STATUS_VGT_BUSY_SIZE 1
+#define RBBM_STATUS_SQ_CNTX17_BUSY_SIZE 1
+#define RBBM_STATUS_SQ_CNTX0_BUSY_SIZE 1
+#define RBBM_STATUS_RB_CNTX_BUSY_SIZE 1
+#define RBBM_STATUS_GUI_ACTIVE_SIZE 1
+
+#define RBBM_STATUS_CMDFIFO_AVAIL_SHIFT 0
+#define RBBM_STATUS_TC_BUSY_SHIFT 5
+#define RBBM_STATUS_HIRQ_PENDING_SHIFT 8
+#define RBBM_STATUS_CPRQ_PENDING_SHIFT 9
+#define RBBM_STATUS_CFRQ_PENDING_SHIFT 10
+#define RBBM_STATUS_PFRQ_PENDING_SHIFT 11
+#define RBBM_STATUS_VGT_BUSY_NO_DMA_SHIFT 12
+#define RBBM_STATUS_RBBM_WU_BUSY_SHIFT 14
+#define RBBM_STATUS_CP_NRT_BUSY_SHIFT 16
+#define RBBM_STATUS_MH_BUSY_SHIFT 18
+#define RBBM_STATUS_MH_COHERENCY_BUSY_SHIFT 19
+#define RBBM_STATUS_SX_BUSY_SHIFT 21
+#define RBBM_STATUS_TPC_BUSY_SHIFT 22
+#define RBBM_STATUS_SC_CNTX_BUSY_SHIFT 24
+#define RBBM_STATUS_PA_BUSY_SHIFT 25
+#define RBBM_STATUS_VGT_BUSY_SHIFT 26
+#define RBBM_STATUS_SQ_CNTX17_BUSY_SHIFT 27
+#define RBBM_STATUS_SQ_CNTX0_BUSY_SHIFT 28
+#define RBBM_STATUS_RB_CNTX_BUSY_SHIFT 30
+#define RBBM_STATUS_GUI_ACTIVE_SHIFT 31
+
+#define RBBM_STATUS_CMDFIFO_AVAIL_MASK 0x0000001f
+#define RBBM_STATUS_TC_BUSY_MASK 0x00000020
+#define RBBM_STATUS_HIRQ_PENDING_MASK 0x00000100
+#define RBBM_STATUS_CPRQ_PENDING_MASK 0x00000200
+#define RBBM_STATUS_CFRQ_PENDING_MASK 0x00000400
+#define RBBM_STATUS_PFRQ_PENDING_MASK 0x00000800
+#define RBBM_STATUS_VGT_BUSY_NO_DMA_MASK 0x00001000
+#define RBBM_STATUS_RBBM_WU_BUSY_MASK 0x00004000
+#define RBBM_STATUS_CP_NRT_BUSY_MASK 0x00010000
+#define RBBM_STATUS_MH_BUSY_MASK 0x00040000
+#define RBBM_STATUS_MH_COHERENCY_BUSY_MASK 0x00080000
+#define RBBM_STATUS_SX_BUSY_MASK 0x00200000
+#define RBBM_STATUS_TPC_BUSY_MASK 0x00400000
+#define RBBM_STATUS_SC_CNTX_BUSY_MASK 0x01000000
+#define RBBM_STATUS_PA_BUSY_MASK 0x02000000
+#define RBBM_STATUS_VGT_BUSY_MASK 0x04000000
+#define RBBM_STATUS_SQ_CNTX17_BUSY_MASK 0x08000000
+#define RBBM_STATUS_SQ_CNTX0_BUSY_MASK 0x10000000
+#define RBBM_STATUS_RB_CNTX_BUSY_MASK 0x40000000
+#define RBBM_STATUS_GUI_ACTIVE_MASK 0x80000000
+
+#define RBBM_STATUS_MASK \
+ (RBBM_STATUS_CMDFIFO_AVAIL_MASK | \
+ RBBM_STATUS_TC_BUSY_MASK | \
+ RBBM_STATUS_HIRQ_PENDING_MASK | \
+ RBBM_STATUS_CPRQ_PENDING_MASK | \
+ RBBM_STATUS_CFRQ_PENDING_MASK | \
+ RBBM_STATUS_PFRQ_PENDING_MASK | \
+ RBBM_STATUS_VGT_BUSY_NO_DMA_MASK | \
+ RBBM_STATUS_RBBM_WU_BUSY_MASK | \
+ RBBM_STATUS_CP_NRT_BUSY_MASK | \
+ RBBM_STATUS_MH_BUSY_MASK | \
+ RBBM_STATUS_MH_COHERENCY_BUSY_MASK | \
+ RBBM_STATUS_SX_BUSY_MASK | \
+ RBBM_STATUS_TPC_BUSY_MASK | \
+ RBBM_STATUS_SC_CNTX_BUSY_MASK | \
+ RBBM_STATUS_PA_BUSY_MASK | \
+ RBBM_STATUS_VGT_BUSY_MASK | \
+ RBBM_STATUS_SQ_CNTX17_BUSY_MASK | \
+ RBBM_STATUS_SQ_CNTX0_BUSY_MASK | \
+ RBBM_STATUS_RB_CNTX_BUSY_MASK | \
+ RBBM_STATUS_GUI_ACTIVE_MASK)
+
+#define RBBM_STATUS(cmdfifo_avail, tc_busy, hirq_pending, cprq_pending, cfrq_pending, pfrq_pending, vgt_busy_no_dma, rbbm_wu_busy, cp_nrt_busy, mh_busy, mh_coherency_busy, sx_busy, tpc_busy, sc_cntx_busy, pa_busy, vgt_busy, sq_cntx17_busy, sq_cntx0_busy, rb_cntx_busy, gui_active) \
+ ((cmdfifo_avail << RBBM_STATUS_CMDFIFO_AVAIL_SHIFT) | \
+ (tc_busy << RBBM_STATUS_TC_BUSY_SHIFT) | \
+ (hirq_pending << RBBM_STATUS_HIRQ_PENDING_SHIFT) | \
+ (cprq_pending << RBBM_STATUS_CPRQ_PENDING_SHIFT) | \
+ (cfrq_pending << RBBM_STATUS_CFRQ_PENDING_SHIFT) | \
+ (pfrq_pending << RBBM_STATUS_PFRQ_PENDING_SHIFT) | \
+ (vgt_busy_no_dma << RBBM_STATUS_VGT_BUSY_NO_DMA_SHIFT) | \
+ (rbbm_wu_busy << RBBM_STATUS_RBBM_WU_BUSY_SHIFT) | \
+ (cp_nrt_busy << RBBM_STATUS_CP_NRT_BUSY_SHIFT) | \
+ (mh_busy << RBBM_STATUS_MH_BUSY_SHIFT) | \
+ (mh_coherency_busy << RBBM_STATUS_MH_COHERENCY_BUSY_SHIFT) | \
+ (sx_busy << RBBM_STATUS_SX_BUSY_SHIFT) | \
+ (tpc_busy << RBBM_STATUS_TPC_BUSY_SHIFT) | \
+ (sc_cntx_busy << RBBM_STATUS_SC_CNTX_BUSY_SHIFT) | \
+ (pa_busy << RBBM_STATUS_PA_BUSY_SHIFT) | \
+ (vgt_busy << RBBM_STATUS_VGT_BUSY_SHIFT) | \
+ (sq_cntx17_busy << RBBM_STATUS_SQ_CNTX17_BUSY_SHIFT) | \
+ (sq_cntx0_busy << RBBM_STATUS_SQ_CNTX0_BUSY_SHIFT) | \
+ (rb_cntx_busy << RBBM_STATUS_RB_CNTX_BUSY_SHIFT) | \
+ (gui_active << RBBM_STATUS_GUI_ACTIVE_SHIFT))
+
+#define RBBM_STATUS_GET_CMDFIFO_AVAIL(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_CMDFIFO_AVAIL_MASK) >> RBBM_STATUS_CMDFIFO_AVAIL_SHIFT)
+#define RBBM_STATUS_GET_TC_BUSY(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_TC_BUSY_MASK) >> RBBM_STATUS_TC_BUSY_SHIFT)
+#define RBBM_STATUS_GET_HIRQ_PENDING(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_HIRQ_PENDING_MASK) >> RBBM_STATUS_HIRQ_PENDING_SHIFT)
+#define RBBM_STATUS_GET_CPRQ_PENDING(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_CPRQ_PENDING_MASK) >> RBBM_STATUS_CPRQ_PENDING_SHIFT)
+#define RBBM_STATUS_GET_CFRQ_PENDING(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_CFRQ_PENDING_MASK) >> RBBM_STATUS_CFRQ_PENDING_SHIFT)
+#define RBBM_STATUS_GET_PFRQ_PENDING(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_PFRQ_PENDING_MASK) >> RBBM_STATUS_PFRQ_PENDING_SHIFT)
+#define RBBM_STATUS_GET_VGT_BUSY_NO_DMA(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_VGT_BUSY_NO_DMA_MASK) >> RBBM_STATUS_VGT_BUSY_NO_DMA_SHIFT)
+#define RBBM_STATUS_GET_RBBM_WU_BUSY(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_RBBM_WU_BUSY_MASK) >> RBBM_STATUS_RBBM_WU_BUSY_SHIFT)
+#define RBBM_STATUS_GET_CP_NRT_BUSY(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_CP_NRT_BUSY_MASK) >> RBBM_STATUS_CP_NRT_BUSY_SHIFT)
+#define RBBM_STATUS_GET_MH_BUSY(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_MH_BUSY_MASK) >> RBBM_STATUS_MH_BUSY_SHIFT)
+#define RBBM_STATUS_GET_MH_COHERENCY_BUSY(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_MH_COHERENCY_BUSY_MASK) >> RBBM_STATUS_MH_COHERENCY_BUSY_SHIFT)
+#define RBBM_STATUS_GET_SX_BUSY(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_SX_BUSY_MASK) >> RBBM_STATUS_SX_BUSY_SHIFT)
+#define RBBM_STATUS_GET_TPC_BUSY(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_TPC_BUSY_MASK) >> RBBM_STATUS_TPC_BUSY_SHIFT)
+#define RBBM_STATUS_GET_SC_CNTX_BUSY(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_SC_CNTX_BUSY_MASK) >> RBBM_STATUS_SC_CNTX_BUSY_SHIFT)
+#define RBBM_STATUS_GET_PA_BUSY(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_PA_BUSY_MASK) >> RBBM_STATUS_PA_BUSY_SHIFT)
+#define RBBM_STATUS_GET_VGT_BUSY(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_VGT_BUSY_MASK) >> RBBM_STATUS_VGT_BUSY_SHIFT)
+#define RBBM_STATUS_GET_SQ_CNTX17_BUSY(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_SQ_CNTX17_BUSY_MASK) >> RBBM_STATUS_SQ_CNTX17_BUSY_SHIFT)
+#define RBBM_STATUS_GET_SQ_CNTX0_BUSY(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_SQ_CNTX0_BUSY_MASK) >> RBBM_STATUS_SQ_CNTX0_BUSY_SHIFT)
+#define RBBM_STATUS_GET_RB_CNTX_BUSY(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_RB_CNTX_BUSY_MASK) >> RBBM_STATUS_RB_CNTX_BUSY_SHIFT)
+#define RBBM_STATUS_GET_GUI_ACTIVE(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_GUI_ACTIVE_MASK) >> RBBM_STATUS_GUI_ACTIVE_SHIFT)
+
+#define RBBM_STATUS_SET_CMDFIFO_AVAIL(rbbm_status_reg, cmdfifo_avail) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_CMDFIFO_AVAIL_MASK) | (cmdfifo_avail << RBBM_STATUS_CMDFIFO_AVAIL_SHIFT)
+#define RBBM_STATUS_SET_TC_BUSY(rbbm_status_reg, tc_busy) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_TC_BUSY_MASK) | (tc_busy << RBBM_STATUS_TC_BUSY_SHIFT)
+#define RBBM_STATUS_SET_HIRQ_PENDING(rbbm_status_reg, hirq_pending) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_HIRQ_PENDING_MASK) | (hirq_pending << RBBM_STATUS_HIRQ_PENDING_SHIFT)
+#define RBBM_STATUS_SET_CPRQ_PENDING(rbbm_status_reg, cprq_pending) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_CPRQ_PENDING_MASK) | (cprq_pending << RBBM_STATUS_CPRQ_PENDING_SHIFT)
+#define RBBM_STATUS_SET_CFRQ_PENDING(rbbm_status_reg, cfrq_pending) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_CFRQ_PENDING_MASK) | (cfrq_pending << RBBM_STATUS_CFRQ_PENDING_SHIFT)
+#define RBBM_STATUS_SET_PFRQ_PENDING(rbbm_status_reg, pfrq_pending) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_PFRQ_PENDING_MASK) | (pfrq_pending << RBBM_STATUS_PFRQ_PENDING_SHIFT)
+#define RBBM_STATUS_SET_VGT_BUSY_NO_DMA(rbbm_status_reg, vgt_busy_no_dma) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_VGT_BUSY_NO_DMA_MASK) | (vgt_busy_no_dma << RBBM_STATUS_VGT_BUSY_NO_DMA_SHIFT)
+#define RBBM_STATUS_SET_RBBM_WU_BUSY(rbbm_status_reg, rbbm_wu_busy) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_RBBM_WU_BUSY_MASK) | (rbbm_wu_busy << RBBM_STATUS_RBBM_WU_BUSY_SHIFT)
+#define RBBM_STATUS_SET_CP_NRT_BUSY(rbbm_status_reg, cp_nrt_busy) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_CP_NRT_BUSY_MASK) | (cp_nrt_busy << RBBM_STATUS_CP_NRT_BUSY_SHIFT)
+#define RBBM_STATUS_SET_MH_BUSY(rbbm_status_reg, mh_busy) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_MH_BUSY_MASK) | (mh_busy << RBBM_STATUS_MH_BUSY_SHIFT)
+#define RBBM_STATUS_SET_MH_COHERENCY_BUSY(rbbm_status_reg, mh_coherency_busy) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_MH_COHERENCY_BUSY_MASK) | (mh_coherency_busy << RBBM_STATUS_MH_COHERENCY_BUSY_SHIFT)
+#define RBBM_STATUS_SET_SX_BUSY(rbbm_status_reg, sx_busy) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_SX_BUSY_MASK) | (sx_busy << RBBM_STATUS_SX_BUSY_SHIFT)
+#define RBBM_STATUS_SET_TPC_BUSY(rbbm_status_reg, tpc_busy) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_TPC_BUSY_MASK) | (tpc_busy << RBBM_STATUS_TPC_BUSY_SHIFT)
+#define RBBM_STATUS_SET_SC_CNTX_BUSY(rbbm_status_reg, sc_cntx_busy) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_SC_CNTX_BUSY_MASK) | (sc_cntx_busy << RBBM_STATUS_SC_CNTX_BUSY_SHIFT)
+#define RBBM_STATUS_SET_PA_BUSY(rbbm_status_reg, pa_busy) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_PA_BUSY_MASK) | (pa_busy << RBBM_STATUS_PA_BUSY_SHIFT)
+#define RBBM_STATUS_SET_VGT_BUSY(rbbm_status_reg, vgt_busy) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_VGT_BUSY_MASK) | (vgt_busy << RBBM_STATUS_VGT_BUSY_SHIFT)
+#define RBBM_STATUS_SET_SQ_CNTX17_BUSY(rbbm_status_reg, sq_cntx17_busy) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_SQ_CNTX17_BUSY_MASK) | (sq_cntx17_busy << RBBM_STATUS_SQ_CNTX17_BUSY_SHIFT)
+#define RBBM_STATUS_SET_SQ_CNTX0_BUSY(rbbm_status_reg, sq_cntx0_busy) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_SQ_CNTX0_BUSY_MASK) | (sq_cntx0_busy << RBBM_STATUS_SQ_CNTX0_BUSY_SHIFT)
+#define RBBM_STATUS_SET_RB_CNTX_BUSY(rbbm_status_reg, rb_cntx_busy) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_RB_CNTX_BUSY_MASK) | (rb_cntx_busy << RBBM_STATUS_RB_CNTX_BUSY_SHIFT)
+#define RBBM_STATUS_SET_GUI_ACTIVE(rbbm_status_reg, gui_active) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_GUI_ACTIVE_MASK) | (gui_active << RBBM_STATUS_GUI_ACTIVE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_status_t {
+ unsigned int cmdfifo_avail : RBBM_STATUS_CMDFIFO_AVAIL_SIZE;
+ unsigned int tc_busy : RBBM_STATUS_TC_BUSY_SIZE;
+ unsigned int : 2;
+ unsigned int hirq_pending : RBBM_STATUS_HIRQ_PENDING_SIZE;
+ unsigned int cprq_pending : RBBM_STATUS_CPRQ_PENDING_SIZE;
+ unsigned int cfrq_pending : RBBM_STATUS_CFRQ_PENDING_SIZE;
+ unsigned int pfrq_pending : RBBM_STATUS_PFRQ_PENDING_SIZE;
+ unsigned int vgt_busy_no_dma : RBBM_STATUS_VGT_BUSY_NO_DMA_SIZE;
+ unsigned int : 1;
+ unsigned int rbbm_wu_busy : RBBM_STATUS_RBBM_WU_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int cp_nrt_busy : RBBM_STATUS_CP_NRT_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int mh_busy : RBBM_STATUS_MH_BUSY_SIZE;
+ unsigned int mh_coherency_busy : RBBM_STATUS_MH_COHERENCY_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int sx_busy : RBBM_STATUS_SX_BUSY_SIZE;
+ unsigned int tpc_busy : RBBM_STATUS_TPC_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int sc_cntx_busy : RBBM_STATUS_SC_CNTX_BUSY_SIZE;
+ unsigned int pa_busy : RBBM_STATUS_PA_BUSY_SIZE;
+ unsigned int vgt_busy : RBBM_STATUS_VGT_BUSY_SIZE;
+ unsigned int sq_cntx17_busy : RBBM_STATUS_SQ_CNTX17_BUSY_SIZE;
+ unsigned int sq_cntx0_busy : RBBM_STATUS_SQ_CNTX0_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int rb_cntx_busy : RBBM_STATUS_RB_CNTX_BUSY_SIZE;
+ unsigned int gui_active : RBBM_STATUS_GUI_ACTIVE_SIZE;
+ } rbbm_status_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_status_t {
+ unsigned int gui_active : RBBM_STATUS_GUI_ACTIVE_SIZE;
+ unsigned int rb_cntx_busy : RBBM_STATUS_RB_CNTX_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int sq_cntx0_busy : RBBM_STATUS_SQ_CNTX0_BUSY_SIZE;
+ unsigned int sq_cntx17_busy : RBBM_STATUS_SQ_CNTX17_BUSY_SIZE;
+ unsigned int vgt_busy : RBBM_STATUS_VGT_BUSY_SIZE;
+ unsigned int pa_busy : RBBM_STATUS_PA_BUSY_SIZE;
+ unsigned int sc_cntx_busy : RBBM_STATUS_SC_CNTX_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int tpc_busy : RBBM_STATUS_TPC_BUSY_SIZE;
+ unsigned int sx_busy : RBBM_STATUS_SX_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int mh_coherency_busy : RBBM_STATUS_MH_COHERENCY_BUSY_SIZE;
+ unsigned int mh_busy : RBBM_STATUS_MH_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int cp_nrt_busy : RBBM_STATUS_CP_NRT_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int rbbm_wu_busy : RBBM_STATUS_RBBM_WU_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int vgt_busy_no_dma : RBBM_STATUS_VGT_BUSY_NO_DMA_SIZE;
+ unsigned int pfrq_pending : RBBM_STATUS_PFRQ_PENDING_SIZE;
+ unsigned int cfrq_pending : RBBM_STATUS_CFRQ_PENDING_SIZE;
+ unsigned int cprq_pending : RBBM_STATUS_CPRQ_PENDING_SIZE;
+ unsigned int hirq_pending : RBBM_STATUS_HIRQ_PENDING_SIZE;
+ unsigned int : 2;
+ unsigned int tc_busy : RBBM_STATUS_TC_BUSY_SIZE;
+ unsigned int cmdfifo_avail : RBBM_STATUS_CMDFIFO_AVAIL_SIZE;
+ } rbbm_status_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_status_t f;
+} rbbm_status_u;
+
+
+/*
+ * RBBM_DSPLY struct
+ */
+
+#define RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID0_SIZE 1
+#define RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID1_SIZE 1
+#define RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID2_SIZE 1
+#define RBBM_DSPLY_SEL_DMI_VSYNC_VALID_SIZE 1
+#define RBBM_DSPLY_DMI_CH1_USE_BUFID0_SIZE 1
+#define RBBM_DSPLY_DMI_CH1_USE_BUFID1_SIZE 1
+#define RBBM_DSPLY_DMI_CH1_USE_BUFID2_SIZE 1
+#define RBBM_DSPLY_DMI_CH1_SW_CNTL_SIZE 1
+#define RBBM_DSPLY_DMI_CH1_NUM_BUFS_SIZE 2
+#define RBBM_DSPLY_DMI_CH2_USE_BUFID0_SIZE 1
+#define RBBM_DSPLY_DMI_CH2_USE_BUFID1_SIZE 1
+#define RBBM_DSPLY_DMI_CH2_USE_BUFID2_SIZE 1
+#define RBBM_DSPLY_DMI_CH2_SW_CNTL_SIZE 1
+#define RBBM_DSPLY_DMI_CH2_NUM_BUFS_SIZE 2
+#define RBBM_DSPLY_DMI_CHANNEL_SELECT_SIZE 2
+#define RBBM_DSPLY_DMI_CH3_USE_BUFID0_SIZE 1
+#define RBBM_DSPLY_DMI_CH3_USE_BUFID1_SIZE 1
+#define RBBM_DSPLY_DMI_CH3_USE_BUFID2_SIZE 1
+#define RBBM_DSPLY_DMI_CH3_SW_CNTL_SIZE 1
+#define RBBM_DSPLY_DMI_CH3_NUM_BUFS_SIZE 2
+#define RBBM_DSPLY_DMI_CH4_USE_BUFID0_SIZE 1
+#define RBBM_DSPLY_DMI_CH4_USE_BUFID1_SIZE 1
+#define RBBM_DSPLY_DMI_CH4_USE_BUFID2_SIZE 1
+#define RBBM_DSPLY_DMI_CH4_SW_CNTL_SIZE 1
+#define RBBM_DSPLY_DMI_CH4_NUM_BUFS_SIZE 2
+
+#define RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID0_SHIFT 0
+#define RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID1_SHIFT 1
+#define RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID2_SHIFT 2
+#define RBBM_DSPLY_SEL_DMI_VSYNC_VALID_SHIFT 3
+#define RBBM_DSPLY_DMI_CH1_USE_BUFID0_SHIFT 4
+#define RBBM_DSPLY_DMI_CH1_USE_BUFID1_SHIFT 5
+#define RBBM_DSPLY_DMI_CH1_USE_BUFID2_SHIFT 6
+#define RBBM_DSPLY_DMI_CH1_SW_CNTL_SHIFT 7
+#define RBBM_DSPLY_DMI_CH1_NUM_BUFS_SHIFT 8
+#define RBBM_DSPLY_DMI_CH2_USE_BUFID0_SHIFT 10
+#define RBBM_DSPLY_DMI_CH2_USE_BUFID1_SHIFT 11
+#define RBBM_DSPLY_DMI_CH2_USE_BUFID2_SHIFT 12
+#define RBBM_DSPLY_DMI_CH2_SW_CNTL_SHIFT 13
+#define RBBM_DSPLY_DMI_CH2_NUM_BUFS_SHIFT 14
+#define RBBM_DSPLY_DMI_CHANNEL_SELECT_SHIFT 16
+#define RBBM_DSPLY_DMI_CH3_USE_BUFID0_SHIFT 20
+#define RBBM_DSPLY_DMI_CH3_USE_BUFID1_SHIFT 21
+#define RBBM_DSPLY_DMI_CH3_USE_BUFID2_SHIFT 22
+#define RBBM_DSPLY_DMI_CH3_SW_CNTL_SHIFT 23
+#define RBBM_DSPLY_DMI_CH3_NUM_BUFS_SHIFT 24
+#define RBBM_DSPLY_DMI_CH4_USE_BUFID0_SHIFT 26
+#define RBBM_DSPLY_DMI_CH4_USE_BUFID1_SHIFT 27
+#define RBBM_DSPLY_DMI_CH4_USE_BUFID2_SHIFT 28
+#define RBBM_DSPLY_DMI_CH4_SW_CNTL_SHIFT 29
+#define RBBM_DSPLY_DMI_CH4_NUM_BUFS_SHIFT 30
+
+#define RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID0_MASK 0x00000001
+#define RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID1_MASK 0x00000002
+#define RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID2_MASK 0x00000004
+#define RBBM_DSPLY_SEL_DMI_VSYNC_VALID_MASK 0x00000008
+#define RBBM_DSPLY_DMI_CH1_USE_BUFID0_MASK 0x00000010
+#define RBBM_DSPLY_DMI_CH1_USE_BUFID1_MASK 0x00000020
+#define RBBM_DSPLY_DMI_CH1_USE_BUFID2_MASK 0x00000040
+#define RBBM_DSPLY_DMI_CH1_SW_CNTL_MASK 0x00000080
+#define RBBM_DSPLY_DMI_CH1_NUM_BUFS_MASK 0x00000300
+#define RBBM_DSPLY_DMI_CH2_USE_BUFID0_MASK 0x00000400
+#define RBBM_DSPLY_DMI_CH2_USE_BUFID1_MASK 0x00000800
+#define RBBM_DSPLY_DMI_CH2_USE_BUFID2_MASK 0x00001000
+#define RBBM_DSPLY_DMI_CH2_SW_CNTL_MASK 0x00002000
+#define RBBM_DSPLY_DMI_CH2_NUM_BUFS_MASK 0x0000c000
+#define RBBM_DSPLY_DMI_CHANNEL_SELECT_MASK 0x00030000
+#define RBBM_DSPLY_DMI_CH3_USE_BUFID0_MASK 0x00100000
+#define RBBM_DSPLY_DMI_CH3_USE_BUFID1_MASK 0x00200000
+#define RBBM_DSPLY_DMI_CH3_USE_BUFID2_MASK 0x00400000
+#define RBBM_DSPLY_DMI_CH3_SW_CNTL_MASK 0x00800000
+#define RBBM_DSPLY_DMI_CH3_NUM_BUFS_MASK 0x03000000
+#define RBBM_DSPLY_DMI_CH4_USE_BUFID0_MASK 0x04000000
+#define RBBM_DSPLY_DMI_CH4_USE_BUFID1_MASK 0x08000000
+#define RBBM_DSPLY_DMI_CH4_USE_BUFID2_MASK 0x10000000
+#define RBBM_DSPLY_DMI_CH4_SW_CNTL_MASK 0x20000000
+#define RBBM_DSPLY_DMI_CH4_NUM_BUFS_MASK 0xc0000000
+
+#define RBBM_DSPLY_MASK \
+ (RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID0_MASK | \
+ RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID1_MASK | \
+ RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID2_MASK | \
+ RBBM_DSPLY_SEL_DMI_VSYNC_VALID_MASK | \
+ RBBM_DSPLY_DMI_CH1_USE_BUFID0_MASK | \
+ RBBM_DSPLY_DMI_CH1_USE_BUFID1_MASK | \
+ RBBM_DSPLY_DMI_CH1_USE_BUFID2_MASK | \
+ RBBM_DSPLY_DMI_CH1_SW_CNTL_MASK | \
+ RBBM_DSPLY_DMI_CH1_NUM_BUFS_MASK | \
+ RBBM_DSPLY_DMI_CH2_USE_BUFID0_MASK | \
+ RBBM_DSPLY_DMI_CH2_USE_BUFID1_MASK | \
+ RBBM_DSPLY_DMI_CH2_USE_BUFID2_MASK | \
+ RBBM_DSPLY_DMI_CH2_SW_CNTL_MASK | \
+ RBBM_DSPLY_DMI_CH2_NUM_BUFS_MASK | \
+ RBBM_DSPLY_DMI_CHANNEL_SELECT_MASK | \
+ RBBM_DSPLY_DMI_CH3_USE_BUFID0_MASK | \
+ RBBM_DSPLY_DMI_CH3_USE_BUFID1_MASK | \
+ RBBM_DSPLY_DMI_CH3_USE_BUFID2_MASK | \
+ RBBM_DSPLY_DMI_CH3_SW_CNTL_MASK | \
+ RBBM_DSPLY_DMI_CH3_NUM_BUFS_MASK | \
+ RBBM_DSPLY_DMI_CH4_USE_BUFID0_MASK | \
+ RBBM_DSPLY_DMI_CH4_USE_BUFID1_MASK | \
+ RBBM_DSPLY_DMI_CH4_USE_BUFID2_MASK | \
+ RBBM_DSPLY_DMI_CH4_SW_CNTL_MASK | \
+ RBBM_DSPLY_DMI_CH4_NUM_BUFS_MASK)
+
+#define RBBM_DSPLY(sel_dmi_active_bufid0, sel_dmi_active_bufid1, sel_dmi_active_bufid2, sel_dmi_vsync_valid, dmi_ch1_use_bufid0, dmi_ch1_use_bufid1, dmi_ch1_use_bufid2, dmi_ch1_sw_cntl, dmi_ch1_num_bufs, dmi_ch2_use_bufid0, dmi_ch2_use_bufid1, dmi_ch2_use_bufid2, dmi_ch2_sw_cntl, dmi_ch2_num_bufs, dmi_channel_select, dmi_ch3_use_bufid0, dmi_ch3_use_bufid1, dmi_ch3_use_bufid2, dmi_ch3_sw_cntl, dmi_ch3_num_bufs, dmi_ch4_use_bufid0, dmi_ch4_use_bufid1, dmi_ch4_use_bufid2, dmi_ch4_sw_cntl, dmi_ch4_num_bufs) \
+ ((sel_dmi_active_bufid0 << RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID0_SHIFT) | \
+ (sel_dmi_active_bufid1 << RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID1_SHIFT) | \
+ (sel_dmi_active_bufid2 << RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID2_SHIFT) | \
+ (sel_dmi_vsync_valid << RBBM_DSPLY_SEL_DMI_VSYNC_VALID_SHIFT) | \
+ (dmi_ch1_use_bufid0 << RBBM_DSPLY_DMI_CH1_USE_BUFID0_SHIFT) | \
+ (dmi_ch1_use_bufid1 << RBBM_DSPLY_DMI_CH1_USE_BUFID1_SHIFT) | \
+ (dmi_ch1_use_bufid2 << RBBM_DSPLY_DMI_CH1_USE_BUFID2_SHIFT) | \
+ (dmi_ch1_sw_cntl << RBBM_DSPLY_DMI_CH1_SW_CNTL_SHIFT) | \
+ (dmi_ch1_num_bufs << RBBM_DSPLY_DMI_CH1_NUM_BUFS_SHIFT) | \
+ (dmi_ch2_use_bufid0 << RBBM_DSPLY_DMI_CH2_USE_BUFID0_SHIFT) | \
+ (dmi_ch2_use_bufid1 << RBBM_DSPLY_DMI_CH2_USE_BUFID1_SHIFT) | \
+ (dmi_ch2_use_bufid2 << RBBM_DSPLY_DMI_CH2_USE_BUFID2_SHIFT) | \
+ (dmi_ch2_sw_cntl << RBBM_DSPLY_DMI_CH2_SW_CNTL_SHIFT) | \
+ (dmi_ch2_num_bufs << RBBM_DSPLY_DMI_CH2_NUM_BUFS_SHIFT) | \
+ (dmi_channel_select << RBBM_DSPLY_DMI_CHANNEL_SELECT_SHIFT) | \
+ (dmi_ch3_use_bufid0 << RBBM_DSPLY_DMI_CH3_USE_BUFID0_SHIFT) | \
+ (dmi_ch3_use_bufid1 << RBBM_DSPLY_DMI_CH3_USE_BUFID1_SHIFT) | \
+ (dmi_ch3_use_bufid2 << RBBM_DSPLY_DMI_CH3_USE_BUFID2_SHIFT) | \
+ (dmi_ch3_sw_cntl << RBBM_DSPLY_DMI_CH3_SW_CNTL_SHIFT) | \
+ (dmi_ch3_num_bufs << RBBM_DSPLY_DMI_CH3_NUM_BUFS_SHIFT) | \
+ (dmi_ch4_use_bufid0 << RBBM_DSPLY_DMI_CH4_USE_BUFID0_SHIFT) | \
+ (dmi_ch4_use_bufid1 << RBBM_DSPLY_DMI_CH4_USE_BUFID1_SHIFT) | \
+ (dmi_ch4_use_bufid2 << RBBM_DSPLY_DMI_CH4_USE_BUFID2_SHIFT) | \
+ (dmi_ch4_sw_cntl << RBBM_DSPLY_DMI_CH4_SW_CNTL_SHIFT) | \
+ (dmi_ch4_num_bufs << RBBM_DSPLY_DMI_CH4_NUM_BUFS_SHIFT))
+
+#define RBBM_DSPLY_GET_SEL_DMI_ACTIVE_BUFID0(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID0_MASK) >> RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID0_SHIFT)
+#define RBBM_DSPLY_GET_SEL_DMI_ACTIVE_BUFID1(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID1_MASK) >> RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID1_SHIFT)
+#define RBBM_DSPLY_GET_SEL_DMI_ACTIVE_BUFID2(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID2_MASK) >> RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID2_SHIFT)
+#define RBBM_DSPLY_GET_SEL_DMI_VSYNC_VALID(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_SEL_DMI_VSYNC_VALID_MASK) >> RBBM_DSPLY_SEL_DMI_VSYNC_VALID_SHIFT)
+#define RBBM_DSPLY_GET_DMI_CH1_USE_BUFID0(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_DMI_CH1_USE_BUFID0_MASK) >> RBBM_DSPLY_DMI_CH1_USE_BUFID0_SHIFT)
+#define RBBM_DSPLY_GET_DMI_CH1_USE_BUFID1(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_DMI_CH1_USE_BUFID1_MASK) >> RBBM_DSPLY_DMI_CH1_USE_BUFID1_SHIFT)
+#define RBBM_DSPLY_GET_DMI_CH1_USE_BUFID2(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_DMI_CH1_USE_BUFID2_MASK) >> RBBM_DSPLY_DMI_CH1_USE_BUFID2_SHIFT)
+#define RBBM_DSPLY_GET_DMI_CH1_SW_CNTL(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_DMI_CH1_SW_CNTL_MASK) >> RBBM_DSPLY_DMI_CH1_SW_CNTL_SHIFT)
+#define RBBM_DSPLY_GET_DMI_CH1_NUM_BUFS(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_DMI_CH1_NUM_BUFS_MASK) >> RBBM_DSPLY_DMI_CH1_NUM_BUFS_SHIFT)
+#define RBBM_DSPLY_GET_DMI_CH2_USE_BUFID0(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_DMI_CH2_USE_BUFID0_MASK) >> RBBM_DSPLY_DMI_CH2_USE_BUFID0_SHIFT)
+#define RBBM_DSPLY_GET_DMI_CH2_USE_BUFID1(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_DMI_CH2_USE_BUFID1_MASK) >> RBBM_DSPLY_DMI_CH2_USE_BUFID1_SHIFT)
+#define RBBM_DSPLY_GET_DMI_CH2_USE_BUFID2(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_DMI_CH2_USE_BUFID2_MASK) >> RBBM_DSPLY_DMI_CH2_USE_BUFID2_SHIFT)
+#define RBBM_DSPLY_GET_DMI_CH2_SW_CNTL(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_DMI_CH2_SW_CNTL_MASK) >> RBBM_DSPLY_DMI_CH2_SW_CNTL_SHIFT)
+#define RBBM_DSPLY_GET_DMI_CH2_NUM_BUFS(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_DMI_CH2_NUM_BUFS_MASK) >> RBBM_DSPLY_DMI_CH2_NUM_BUFS_SHIFT)
+#define RBBM_DSPLY_GET_DMI_CHANNEL_SELECT(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_DMI_CHANNEL_SELECT_MASK) >> RBBM_DSPLY_DMI_CHANNEL_SELECT_SHIFT)
+#define RBBM_DSPLY_GET_DMI_CH3_USE_BUFID0(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_DMI_CH3_USE_BUFID0_MASK) >> RBBM_DSPLY_DMI_CH3_USE_BUFID0_SHIFT)
+#define RBBM_DSPLY_GET_DMI_CH3_USE_BUFID1(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_DMI_CH3_USE_BUFID1_MASK) >> RBBM_DSPLY_DMI_CH3_USE_BUFID1_SHIFT)
+#define RBBM_DSPLY_GET_DMI_CH3_USE_BUFID2(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_DMI_CH3_USE_BUFID2_MASK) >> RBBM_DSPLY_DMI_CH3_USE_BUFID2_SHIFT)
+#define RBBM_DSPLY_GET_DMI_CH3_SW_CNTL(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_DMI_CH3_SW_CNTL_MASK) >> RBBM_DSPLY_DMI_CH3_SW_CNTL_SHIFT)
+#define RBBM_DSPLY_GET_DMI_CH3_NUM_BUFS(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_DMI_CH3_NUM_BUFS_MASK) >> RBBM_DSPLY_DMI_CH3_NUM_BUFS_SHIFT)
+#define RBBM_DSPLY_GET_DMI_CH4_USE_BUFID0(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_DMI_CH4_USE_BUFID0_MASK) >> RBBM_DSPLY_DMI_CH4_USE_BUFID0_SHIFT)
+#define RBBM_DSPLY_GET_DMI_CH4_USE_BUFID1(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_DMI_CH4_USE_BUFID1_MASK) >> RBBM_DSPLY_DMI_CH4_USE_BUFID1_SHIFT)
+#define RBBM_DSPLY_GET_DMI_CH4_USE_BUFID2(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_DMI_CH4_USE_BUFID2_MASK) >> RBBM_DSPLY_DMI_CH4_USE_BUFID2_SHIFT)
+#define RBBM_DSPLY_GET_DMI_CH4_SW_CNTL(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_DMI_CH4_SW_CNTL_MASK) >> RBBM_DSPLY_DMI_CH4_SW_CNTL_SHIFT)
+#define RBBM_DSPLY_GET_DMI_CH4_NUM_BUFS(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_DMI_CH4_NUM_BUFS_MASK) >> RBBM_DSPLY_DMI_CH4_NUM_BUFS_SHIFT)
+
+#define RBBM_DSPLY_SET_SEL_DMI_ACTIVE_BUFID0(rbbm_dsply_reg, sel_dmi_active_bufid0) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID0_MASK) | (sel_dmi_active_bufid0 << RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID0_SHIFT)
+#define RBBM_DSPLY_SET_SEL_DMI_ACTIVE_BUFID1(rbbm_dsply_reg, sel_dmi_active_bufid1) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID1_MASK) | (sel_dmi_active_bufid1 << RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID1_SHIFT)
+#define RBBM_DSPLY_SET_SEL_DMI_ACTIVE_BUFID2(rbbm_dsply_reg, sel_dmi_active_bufid2) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID2_MASK) | (sel_dmi_active_bufid2 << RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID2_SHIFT)
+#define RBBM_DSPLY_SET_SEL_DMI_VSYNC_VALID(rbbm_dsply_reg, sel_dmi_vsync_valid) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_SEL_DMI_VSYNC_VALID_MASK) | (sel_dmi_vsync_valid << RBBM_DSPLY_SEL_DMI_VSYNC_VALID_SHIFT)
+#define RBBM_DSPLY_SET_DMI_CH1_USE_BUFID0(rbbm_dsply_reg, dmi_ch1_use_bufid0) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_DMI_CH1_USE_BUFID0_MASK) | (dmi_ch1_use_bufid0 << RBBM_DSPLY_DMI_CH1_USE_BUFID0_SHIFT)
+#define RBBM_DSPLY_SET_DMI_CH1_USE_BUFID1(rbbm_dsply_reg, dmi_ch1_use_bufid1) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_DMI_CH1_USE_BUFID1_MASK) | (dmi_ch1_use_bufid1 << RBBM_DSPLY_DMI_CH1_USE_BUFID1_SHIFT)
+#define RBBM_DSPLY_SET_DMI_CH1_USE_BUFID2(rbbm_dsply_reg, dmi_ch1_use_bufid2) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_DMI_CH1_USE_BUFID2_MASK) | (dmi_ch1_use_bufid2 << RBBM_DSPLY_DMI_CH1_USE_BUFID2_SHIFT)
+#define RBBM_DSPLY_SET_DMI_CH1_SW_CNTL(rbbm_dsply_reg, dmi_ch1_sw_cntl) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_DMI_CH1_SW_CNTL_MASK) | (dmi_ch1_sw_cntl << RBBM_DSPLY_DMI_CH1_SW_CNTL_SHIFT)
+#define RBBM_DSPLY_SET_DMI_CH1_NUM_BUFS(rbbm_dsply_reg, dmi_ch1_num_bufs) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_DMI_CH1_NUM_BUFS_MASK) | (dmi_ch1_num_bufs << RBBM_DSPLY_DMI_CH1_NUM_BUFS_SHIFT)
+#define RBBM_DSPLY_SET_DMI_CH2_USE_BUFID0(rbbm_dsply_reg, dmi_ch2_use_bufid0) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_DMI_CH2_USE_BUFID0_MASK) | (dmi_ch2_use_bufid0 << RBBM_DSPLY_DMI_CH2_USE_BUFID0_SHIFT)
+#define RBBM_DSPLY_SET_DMI_CH2_USE_BUFID1(rbbm_dsply_reg, dmi_ch2_use_bufid1) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_DMI_CH2_USE_BUFID1_MASK) | (dmi_ch2_use_bufid1 << RBBM_DSPLY_DMI_CH2_USE_BUFID1_SHIFT)
+#define RBBM_DSPLY_SET_DMI_CH2_USE_BUFID2(rbbm_dsply_reg, dmi_ch2_use_bufid2) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_DMI_CH2_USE_BUFID2_MASK) | (dmi_ch2_use_bufid2 << RBBM_DSPLY_DMI_CH2_USE_BUFID2_SHIFT)
+#define RBBM_DSPLY_SET_DMI_CH2_SW_CNTL(rbbm_dsply_reg, dmi_ch2_sw_cntl) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_DMI_CH2_SW_CNTL_MASK) | (dmi_ch2_sw_cntl << RBBM_DSPLY_DMI_CH2_SW_CNTL_SHIFT)
+#define RBBM_DSPLY_SET_DMI_CH2_NUM_BUFS(rbbm_dsply_reg, dmi_ch2_num_bufs) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_DMI_CH2_NUM_BUFS_MASK) | (dmi_ch2_num_bufs << RBBM_DSPLY_DMI_CH2_NUM_BUFS_SHIFT)
+#define RBBM_DSPLY_SET_DMI_CHANNEL_SELECT(rbbm_dsply_reg, dmi_channel_select) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_DMI_CHANNEL_SELECT_MASK) | (dmi_channel_select << RBBM_DSPLY_DMI_CHANNEL_SELECT_SHIFT)
+#define RBBM_DSPLY_SET_DMI_CH3_USE_BUFID0(rbbm_dsply_reg, dmi_ch3_use_bufid0) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_DMI_CH3_USE_BUFID0_MASK) | (dmi_ch3_use_bufid0 << RBBM_DSPLY_DMI_CH3_USE_BUFID0_SHIFT)
+#define RBBM_DSPLY_SET_DMI_CH3_USE_BUFID1(rbbm_dsply_reg, dmi_ch3_use_bufid1) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_DMI_CH3_USE_BUFID1_MASK) | (dmi_ch3_use_bufid1 << RBBM_DSPLY_DMI_CH3_USE_BUFID1_SHIFT)
+#define RBBM_DSPLY_SET_DMI_CH3_USE_BUFID2(rbbm_dsply_reg, dmi_ch3_use_bufid2) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_DMI_CH3_USE_BUFID2_MASK) | (dmi_ch3_use_bufid2 << RBBM_DSPLY_DMI_CH3_USE_BUFID2_SHIFT)
+#define RBBM_DSPLY_SET_DMI_CH3_SW_CNTL(rbbm_dsply_reg, dmi_ch3_sw_cntl) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_DMI_CH3_SW_CNTL_MASK) | (dmi_ch3_sw_cntl << RBBM_DSPLY_DMI_CH3_SW_CNTL_SHIFT)
+#define RBBM_DSPLY_SET_DMI_CH3_NUM_BUFS(rbbm_dsply_reg, dmi_ch3_num_bufs) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_DMI_CH3_NUM_BUFS_MASK) | (dmi_ch3_num_bufs << RBBM_DSPLY_DMI_CH3_NUM_BUFS_SHIFT)
+#define RBBM_DSPLY_SET_DMI_CH4_USE_BUFID0(rbbm_dsply_reg, dmi_ch4_use_bufid0) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_DMI_CH4_USE_BUFID0_MASK) | (dmi_ch4_use_bufid0 << RBBM_DSPLY_DMI_CH4_USE_BUFID0_SHIFT)
+#define RBBM_DSPLY_SET_DMI_CH4_USE_BUFID1(rbbm_dsply_reg, dmi_ch4_use_bufid1) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_DMI_CH4_USE_BUFID1_MASK) | (dmi_ch4_use_bufid1 << RBBM_DSPLY_DMI_CH4_USE_BUFID1_SHIFT)
+#define RBBM_DSPLY_SET_DMI_CH4_USE_BUFID2(rbbm_dsply_reg, dmi_ch4_use_bufid2) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_DMI_CH4_USE_BUFID2_MASK) | (dmi_ch4_use_bufid2 << RBBM_DSPLY_DMI_CH4_USE_BUFID2_SHIFT)
+#define RBBM_DSPLY_SET_DMI_CH4_SW_CNTL(rbbm_dsply_reg, dmi_ch4_sw_cntl) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_DMI_CH4_SW_CNTL_MASK) | (dmi_ch4_sw_cntl << RBBM_DSPLY_DMI_CH4_SW_CNTL_SHIFT)
+#define RBBM_DSPLY_SET_DMI_CH4_NUM_BUFS(rbbm_dsply_reg, dmi_ch4_num_bufs) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_DMI_CH4_NUM_BUFS_MASK) | (dmi_ch4_num_bufs << RBBM_DSPLY_DMI_CH4_NUM_BUFS_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_dsply_t {
+ unsigned int sel_dmi_active_bufid0 : RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID0_SIZE;
+ unsigned int sel_dmi_active_bufid1 : RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID1_SIZE;
+ unsigned int sel_dmi_active_bufid2 : RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID2_SIZE;
+ unsigned int sel_dmi_vsync_valid : RBBM_DSPLY_SEL_DMI_VSYNC_VALID_SIZE;
+ unsigned int dmi_ch1_use_bufid0 : RBBM_DSPLY_DMI_CH1_USE_BUFID0_SIZE;
+ unsigned int dmi_ch1_use_bufid1 : RBBM_DSPLY_DMI_CH1_USE_BUFID1_SIZE;
+ unsigned int dmi_ch1_use_bufid2 : RBBM_DSPLY_DMI_CH1_USE_BUFID2_SIZE;
+ unsigned int dmi_ch1_sw_cntl : RBBM_DSPLY_DMI_CH1_SW_CNTL_SIZE;
+ unsigned int dmi_ch1_num_bufs : RBBM_DSPLY_DMI_CH1_NUM_BUFS_SIZE;
+ unsigned int dmi_ch2_use_bufid0 : RBBM_DSPLY_DMI_CH2_USE_BUFID0_SIZE;
+ unsigned int dmi_ch2_use_bufid1 : RBBM_DSPLY_DMI_CH2_USE_BUFID1_SIZE;
+ unsigned int dmi_ch2_use_bufid2 : RBBM_DSPLY_DMI_CH2_USE_BUFID2_SIZE;
+ unsigned int dmi_ch2_sw_cntl : RBBM_DSPLY_DMI_CH2_SW_CNTL_SIZE;
+ unsigned int dmi_ch2_num_bufs : RBBM_DSPLY_DMI_CH2_NUM_BUFS_SIZE;
+ unsigned int dmi_channel_select : RBBM_DSPLY_DMI_CHANNEL_SELECT_SIZE;
+ unsigned int : 2;
+ unsigned int dmi_ch3_use_bufid0 : RBBM_DSPLY_DMI_CH3_USE_BUFID0_SIZE;
+ unsigned int dmi_ch3_use_bufid1 : RBBM_DSPLY_DMI_CH3_USE_BUFID1_SIZE;
+ unsigned int dmi_ch3_use_bufid2 : RBBM_DSPLY_DMI_CH3_USE_BUFID2_SIZE;
+ unsigned int dmi_ch3_sw_cntl : RBBM_DSPLY_DMI_CH3_SW_CNTL_SIZE;
+ unsigned int dmi_ch3_num_bufs : RBBM_DSPLY_DMI_CH3_NUM_BUFS_SIZE;
+ unsigned int dmi_ch4_use_bufid0 : RBBM_DSPLY_DMI_CH4_USE_BUFID0_SIZE;
+ unsigned int dmi_ch4_use_bufid1 : RBBM_DSPLY_DMI_CH4_USE_BUFID1_SIZE;
+ unsigned int dmi_ch4_use_bufid2 : RBBM_DSPLY_DMI_CH4_USE_BUFID2_SIZE;
+ unsigned int dmi_ch4_sw_cntl : RBBM_DSPLY_DMI_CH4_SW_CNTL_SIZE;
+ unsigned int dmi_ch4_num_bufs : RBBM_DSPLY_DMI_CH4_NUM_BUFS_SIZE;
+ } rbbm_dsply_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_dsply_t {
+ unsigned int dmi_ch4_num_bufs : RBBM_DSPLY_DMI_CH4_NUM_BUFS_SIZE;
+ unsigned int dmi_ch4_sw_cntl : RBBM_DSPLY_DMI_CH4_SW_CNTL_SIZE;
+ unsigned int dmi_ch4_use_bufid2 : RBBM_DSPLY_DMI_CH4_USE_BUFID2_SIZE;
+ unsigned int dmi_ch4_use_bufid1 : RBBM_DSPLY_DMI_CH4_USE_BUFID1_SIZE;
+ unsigned int dmi_ch4_use_bufid0 : RBBM_DSPLY_DMI_CH4_USE_BUFID0_SIZE;
+ unsigned int dmi_ch3_num_bufs : RBBM_DSPLY_DMI_CH3_NUM_BUFS_SIZE;
+ unsigned int dmi_ch3_sw_cntl : RBBM_DSPLY_DMI_CH3_SW_CNTL_SIZE;
+ unsigned int dmi_ch3_use_bufid2 : RBBM_DSPLY_DMI_CH3_USE_BUFID2_SIZE;
+ unsigned int dmi_ch3_use_bufid1 : RBBM_DSPLY_DMI_CH3_USE_BUFID1_SIZE;
+ unsigned int dmi_ch3_use_bufid0 : RBBM_DSPLY_DMI_CH3_USE_BUFID0_SIZE;
+ unsigned int : 2;
+ unsigned int dmi_channel_select : RBBM_DSPLY_DMI_CHANNEL_SELECT_SIZE;
+ unsigned int dmi_ch2_num_bufs : RBBM_DSPLY_DMI_CH2_NUM_BUFS_SIZE;
+ unsigned int dmi_ch2_sw_cntl : RBBM_DSPLY_DMI_CH2_SW_CNTL_SIZE;
+ unsigned int dmi_ch2_use_bufid2 : RBBM_DSPLY_DMI_CH2_USE_BUFID2_SIZE;
+ unsigned int dmi_ch2_use_bufid1 : RBBM_DSPLY_DMI_CH2_USE_BUFID1_SIZE;
+ unsigned int dmi_ch2_use_bufid0 : RBBM_DSPLY_DMI_CH2_USE_BUFID0_SIZE;
+ unsigned int dmi_ch1_num_bufs : RBBM_DSPLY_DMI_CH1_NUM_BUFS_SIZE;
+ unsigned int dmi_ch1_sw_cntl : RBBM_DSPLY_DMI_CH1_SW_CNTL_SIZE;
+ unsigned int dmi_ch1_use_bufid2 : RBBM_DSPLY_DMI_CH1_USE_BUFID2_SIZE;
+ unsigned int dmi_ch1_use_bufid1 : RBBM_DSPLY_DMI_CH1_USE_BUFID1_SIZE;
+ unsigned int dmi_ch1_use_bufid0 : RBBM_DSPLY_DMI_CH1_USE_BUFID0_SIZE;
+ unsigned int sel_dmi_vsync_valid : RBBM_DSPLY_SEL_DMI_VSYNC_VALID_SIZE;
+ unsigned int sel_dmi_active_bufid2 : RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID2_SIZE;
+ unsigned int sel_dmi_active_bufid1 : RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID1_SIZE;
+ unsigned int sel_dmi_active_bufid0 : RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID0_SIZE;
+ } rbbm_dsply_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_dsply_t f;
+} rbbm_dsply_u;
+
+
+/*
+ * RBBM_RENDER_LATEST struct
+ */
+
+#define RBBM_RENDER_LATEST_DMI_CH1_BUFFER_ID_SIZE 2
+#define RBBM_RENDER_LATEST_DMI_CH2_BUFFER_ID_SIZE 2
+#define RBBM_RENDER_LATEST_DMI_CH3_BUFFER_ID_SIZE 2
+#define RBBM_RENDER_LATEST_DMI_CH4_BUFFER_ID_SIZE 2
+
+#define RBBM_RENDER_LATEST_DMI_CH1_BUFFER_ID_SHIFT 0
+#define RBBM_RENDER_LATEST_DMI_CH2_BUFFER_ID_SHIFT 8
+#define RBBM_RENDER_LATEST_DMI_CH3_BUFFER_ID_SHIFT 16
+#define RBBM_RENDER_LATEST_DMI_CH4_BUFFER_ID_SHIFT 24
+
+#define RBBM_RENDER_LATEST_DMI_CH1_BUFFER_ID_MASK 0x00000003
+#define RBBM_RENDER_LATEST_DMI_CH2_BUFFER_ID_MASK 0x00000300
+#define RBBM_RENDER_LATEST_DMI_CH3_BUFFER_ID_MASK 0x00030000
+#define RBBM_RENDER_LATEST_DMI_CH4_BUFFER_ID_MASK 0x03000000
+
+#define RBBM_RENDER_LATEST_MASK \
+ (RBBM_RENDER_LATEST_DMI_CH1_BUFFER_ID_MASK | \
+ RBBM_RENDER_LATEST_DMI_CH2_BUFFER_ID_MASK | \
+ RBBM_RENDER_LATEST_DMI_CH3_BUFFER_ID_MASK | \
+ RBBM_RENDER_LATEST_DMI_CH4_BUFFER_ID_MASK)
+
+#define RBBM_RENDER_LATEST(dmi_ch1_buffer_id, dmi_ch2_buffer_id, dmi_ch3_buffer_id, dmi_ch4_buffer_id) \
+ ((dmi_ch1_buffer_id << RBBM_RENDER_LATEST_DMI_CH1_BUFFER_ID_SHIFT) | \
+ (dmi_ch2_buffer_id << RBBM_RENDER_LATEST_DMI_CH2_BUFFER_ID_SHIFT) | \
+ (dmi_ch3_buffer_id << RBBM_RENDER_LATEST_DMI_CH3_BUFFER_ID_SHIFT) | \
+ (dmi_ch4_buffer_id << RBBM_RENDER_LATEST_DMI_CH4_BUFFER_ID_SHIFT))
+
+#define RBBM_RENDER_LATEST_GET_DMI_CH1_BUFFER_ID(rbbm_render_latest) \
+ ((rbbm_render_latest & RBBM_RENDER_LATEST_DMI_CH1_BUFFER_ID_MASK) >> RBBM_RENDER_LATEST_DMI_CH1_BUFFER_ID_SHIFT)
+#define RBBM_RENDER_LATEST_GET_DMI_CH2_BUFFER_ID(rbbm_render_latest) \
+ ((rbbm_render_latest & RBBM_RENDER_LATEST_DMI_CH2_BUFFER_ID_MASK) >> RBBM_RENDER_LATEST_DMI_CH2_BUFFER_ID_SHIFT)
+#define RBBM_RENDER_LATEST_GET_DMI_CH3_BUFFER_ID(rbbm_render_latest) \
+ ((rbbm_render_latest & RBBM_RENDER_LATEST_DMI_CH3_BUFFER_ID_MASK) >> RBBM_RENDER_LATEST_DMI_CH3_BUFFER_ID_SHIFT)
+#define RBBM_RENDER_LATEST_GET_DMI_CH4_BUFFER_ID(rbbm_render_latest) \
+ ((rbbm_render_latest & RBBM_RENDER_LATEST_DMI_CH4_BUFFER_ID_MASK) >> RBBM_RENDER_LATEST_DMI_CH4_BUFFER_ID_SHIFT)
+
+#define RBBM_RENDER_LATEST_SET_DMI_CH1_BUFFER_ID(rbbm_render_latest_reg, dmi_ch1_buffer_id) \
+ rbbm_render_latest_reg = (rbbm_render_latest_reg & ~RBBM_RENDER_LATEST_DMI_CH1_BUFFER_ID_MASK) | (dmi_ch1_buffer_id << RBBM_RENDER_LATEST_DMI_CH1_BUFFER_ID_SHIFT)
+#define RBBM_RENDER_LATEST_SET_DMI_CH2_BUFFER_ID(rbbm_render_latest_reg, dmi_ch2_buffer_id) \
+ rbbm_render_latest_reg = (rbbm_render_latest_reg & ~RBBM_RENDER_LATEST_DMI_CH2_BUFFER_ID_MASK) | (dmi_ch2_buffer_id << RBBM_RENDER_LATEST_DMI_CH2_BUFFER_ID_SHIFT)
+#define RBBM_RENDER_LATEST_SET_DMI_CH3_BUFFER_ID(rbbm_render_latest_reg, dmi_ch3_buffer_id) \
+ rbbm_render_latest_reg = (rbbm_render_latest_reg & ~RBBM_RENDER_LATEST_DMI_CH3_BUFFER_ID_MASK) | (dmi_ch3_buffer_id << RBBM_RENDER_LATEST_DMI_CH3_BUFFER_ID_SHIFT)
+#define RBBM_RENDER_LATEST_SET_DMI_CH4_BUFFER_ID(rbbm_render_latest_reg, dmi_ch4_buffer_id) \
+ rbbm_render_latest_reg = (rbbm_render_latest_reg & ~RBBM_RENDER_LATEST_DMI_CH4_BUFFER_ID_MASK) | (dmi_ch4_buffer_id << RBBM_RENDER_LATEST_DMI_CH4_BUFFER_ID_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_render_latest_t {
+ unsigned int dmi_ch1_buffer_id : RBBM_RENDER_LATEST_DMI_CH1_BUFFER_ID_SIZE;
+ unsigned int : 6;
+ unsigned int dmi_ch2_buffer_id : RBBM_RENDER_LATEST_DMI_CH2_BUFFER_ID_SIZE;
+ unsigned int : 6;
+ unsigned int dmi_ch3_buffer_id : RBBM_RENDER_LATEST_DMI_CH3_BUFFER_ID_SIZE;
+ unsigned int : 6;
+ unsigned int dmi_ch4_buffer_id : RBBM_RENDER_LATEST_DMI_CH4_BUFFER_ID_SIZE;
+ unsigned int : 6;
+ } rbbm_render_latest_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_render_latest_t {
+ unsigned int : 6;
+ unsigned int dmi_ch4_buffer_id : RBBM_RENDER_LATEST_DMI_CH4_BUFFER_ID_SIZE;
+ unsigned int : 6;
+ unsigned int dmi_ch3_buffer_id : RBBM_RENDER_LATEST_DMI_CH3_BUFFER_ID_SIZE;
+ unsigned int : 6;
+ unsigned int dmi_ch2_buffer_id : RBBM_RENDER_LATEST_DMI_CH2_BUFFER_ID_SIZE;
+ unsigned int : 6;
+ unsigned int dmi_ch1_buffer_id : RBBM_RENDER_LATEST_DMI_CH1_BUFFER_ID_SIZE;
+ } rbbm_render_latest_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_render_latest_t f;
+} rbbm_render_latest_u;
+
+
+/*
+ * RBBM_RTL_RELEASE struct
+ */
+
+#define RBBM_RTL_RELEASE_CHANGELIST_SIZE 32
+
+#define RBBM_RTL_RELEASE_CHANGELIST_SHIFT 0
+
+#define RBBM_RTL_RELEASE_CHANGELIST_MASK 0xffffffff
+
+#define RBBM_RTL_RELEASE_MASK \
+ (RBBM_RTL_RELEASE_CHANGELIST_MASK)
+
+#define RBBM_RTL_RELEASE(changelist) \
+ ((changelist << RBBM_RTL_RELEASE_CHANGELIST_SHIFT))
+
+#define RBBM_RTL_RELEASE_GET_CHANGELIST(rbbm_rtl_release) \
+ ((rbbm_rtl_release & RBBM_RTL_RELEASE_CHANGELIST_MASK) >> RBBM_RTL_RELEASE_CHANGELIST_SHIFT)
+
+#define RBBM_RTL_RELEASE_SET_CHANGELIST(rbbm_rtl_release_reg, changelist) \
+ rbbm_rtl_release_reg = (rbbm_rtl_release_reg & ~RBBM_RTL_RELEASE_CHANGELIST_MASK) | (changelist << RBBM_RTL_RELEASE_CHANGELIST_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_rtl_release_t {
+ unsigned int changelist : RBBM_RTL_RELEASE_CHANGELIST_SIZE;
+ } rbbm_rtl_release_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_rtl_release_t {
+ unsigned int changelist : RBBM_RTL_RELEASE_CHANGELIST_SIZE;
+ } rbbm_rtl_release_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_rtl_release_t f;
+} rbbm_rtl_release_u;
+
+
+/*
+ * RBBM_PATCH_RELEASE struct
+ */
+
+#define RBBM_PATCH_RELEASE_PATCH_REVISION_SIZE 16
+#define RBBM_PATCH_RELEASE_PATCH_SELECTION_SIZE 8
+#define RBBM_PATCH_RELEASE_CUSTOMER_ID_SIZE 8
+
+#define RBBM_PATCH_RELEASE_PATCH_REVISION_SHIFT 0
+#define RBBM_PATCH_RELEASE_PATCH_SELECTION_SHIFT 16
+#define RBBM_PATCH_RELEASE_CUSTOMER_ID_SHIFT 24
+
+#define RBBM_PATCH_RELEASE_PATCH_REVISION_MASK 0x0000ffff
+#define RBBM_PATCH_RELEASE_PATCH_SELECTION_MASK 0x00ff0000
+#define RBBM_PATCH_RELEASE_CUSTOMER_ID_MASK 0xff000000
+
+#define RBBM_PATCH_RELEASE_MASK \
+ (RBBM_PATCH_RELEASE_PATCH_REVISION_MASK | \
+ RBBM_PATCH_RELEASE_PATCH_SELECTION_MASK | \
+ RBBM_PATCH_RELEASE_CUSTOMER_ID_MASK)
+
+#define RBBM_PATCH_RELEASE(patch_revision, patch_selection, customer_id) \
+ ((patch_revision << RBBM_PATCH_RELEASE_PATCH_REVISION_SHIFT) | \
+ (patch_selection << RBBM_PATCH_RELEASE_PATCH_SELECTION_SHIFT) | \
+ (customer_id << RBBM_PATCH_RELEASE_CUSTOMER_ID_SHIFT))
+
+#define RBBM_PATCH_RELEASE_GET_PATCH_REVISION(rbbm_patch_release) \
+ ((rbbm_patch_release & RBBM_PATCH_RELEASE_PATCH_REVISION_MASK) >> RBBM_PATCH_RELEASE_PATCH_REVISION_SHIFT)
+#define RBBM_PATCH_RELEASE_GET_PATCH_SELECTION(rbbm_patch_release) \
+ ((rbbm_patch_release & RBBM_PATCH_RELEASE_PATCH_SELECTION_MASK) >> RBBM_PATCH_RELEASE_PATCH_SELECTION_SHIFT)
+#define RBBM_PATCH_RELEASE_GET_CUSTOMER_ID(rbbm_patch_release) \
+ ((rbbm_patch_release & RBBM_PATCH_RELEASE_CUSTOMER_ID_MASK) >> RBBM_PATCH_RELEASE_CUSTOMER_ID_SHIFT)
+
+#define RBBM_PATCH_RELEASE_SET_PATCH_REVISION(rbbm_patch_release_reg, patch_revision) \
+ rbbm_patch_release_reg = (rbbm_patch_release_reg & ~RBBM_PATCH_RELEASE_PATCH_REVISION_MASK) | (patch_revision << RBBM_PATCH_RELEASE_PATCH_REVISION_SHIFT)
+#define RBBM_PATCH_RELEASE_SET_PATCH_SELECTION(rbbm_patch_release_reg, patch_selection) \
+ rbbm_patch_release_reg = (rbbm_patch_release_reg & ~RBBM_PATCH_RELEASE_PATCH_SELECTION_MASK) | (patch_selection << RBBM_PATCH_RELEASE_PATCH_SELECTION_SHIFT)
+#define RBBM_PATCH_RELEASE_SET_CUSTOMER_ID(rbbm_patch_release_reg, customer_id) \
+ rbbm_patch_release_reg = (rbbm_patch_release_reg & ~RBBM_PATCH_RELEASE_CUSTOMER_ID_MASK) | (customer_id << RBBM_PATCH_RELEASE_CUSTOMER_ID_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_patch_release_t {
+ unsigned int patch_revision : RBBM_PATCH_RELEASE_PATCH_REVISION_SIZE;
+ unsigned int patch_selection : RBBM_PATCH_RELEASE_PATCH_SELECTION_SIZE;
+ unsigned int customer_id : RBBM_PATCH_RELEASE_CUSTOMER_ID_SIZE;
+ } rbbm_patch_release_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_patch_release_t {
+ unsigned int customer_id : RBBM_PATCH_RELEASE_CUSTOMER_ID_SIZE;
+ unsigned int patch_selection : RBBM_PATCH_RELEASE_PATCH_SELECTION_SIZE;
+ unsigned int patch_revision : RBBM_PATCH_RELEASE_PATCH_REVISION_SIZE;
+ } rbbm_patch_release_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_patch_release_t f;
+} rbbm_patch_release_u;
+
+
+/*
+ * RBBM_AUXILIARY_CONFIG struct
+ */
+
+#define RBBM_AUXILIARY_CONFIG_RESERVED_SIZE 32
+
+#define RBBM_AUXILIARY_CONFIG_RESERVED_SHIFT 0
+
+#define RBBM_AUXILIARY_CONFIG_RESERVED_MASK 0xffffffff
+
+#define RBBM_AUXILIARY_CONFIG_MASK \
+ (RBBM_AUXILIARY_CONFIG_RESERVED_MASK)
+
+#define RBBM_AUXILIARY_CONFIG(reserved) \
+ ((reserved << RBBM_AUXILIARY_CONFIG_RESERVED_SHIFT))
+
+#define RBBM_AUXILIARY_CONFIG_GET_RESERVED(rbbm_auxiliary_config) \
+ ((rbbm_auxiliary_config & RBBM_AUXILIARY_CONFIG_RESERVED_MASK) >> RBBM_AUXILIARY_CONFIG_RESERVED_SHIFT)
+
+#define RBBM_AUXILIARY_CONFIG_SET_RESERVED(rbbm_auxiliary_config_reg, reserved) \
+ rbbm_auxiliary_config_reg = (rbbm_auxiliary_config_reg & ~RBBM_AUXILIARY_CONFIG_RESERVED_MASK) | (reserved << RBBM_AUXILIARY_CONFIG_RESERVED_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_auxiliary_config_t {
+ unsigned int reserved : RBBM_AUXILIARY_CONFIG_RESERVED_SIZE;
+ } rbbm_auxiliary_config_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_auxiliary_config_t {
+ unsigned int reserved : RBBM_AUXILIARY_CONFIG_RESERVED_SIZE;
+ } rbbm_auxiliary_config_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_auxiliary_config_t f;
+} rbbm_auxiliary_config_u;
+
+
+/*
+ * RBBM_PERIPHID0 struct
+ */
+
+#define RBBM_PERIPHID0_PARTNUMBER0_SIZE 8
+
+#define RBBM_PERIPHID0_PARTNUMBER0_SHIFT 0
+
+#define RBBM_PERIPHID0_PARTNUMBER0_MASK 0x000000ff
+
+#define RBBM_PERIPHID0_MASK \
+ (RBBM_PERIPHID0_PARTNUMBER0_MASK)
+
+#define RBBM_PERIPHID0(partnumber0) \
+ ((partnumber0 << RBBM_PERIPHID0_PARTNUMBER0_SHIFT))
+
+#define RBBM_PERIPHID0_GET_PARTNUMBER0(rbbm_periphid0) \
+ ((rbbm_periphid0 & RBBM_PERIPHID0_PARTNUMBER0_MASK) >> RBBM_PERIPHID0_PARTNUMBER0_SHIFT)
+
+#define RBBM_PERIPHID0_SET_PARTNUMBER0(rbbm_periphid0_reg, partnumber0) \
+ rbbm_periphid0_reg = (rbbm_periphid0_reg & ~RBBM_PERIPHID0_PARTNUMBER0_MASK) | (partnumber0 << RBBM_PERIPHID0_PARTNUMBER0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_periphid0_t {
+ unsigned int partnumber0 : RBBM_PERIPHID0_PARTNUMBER0_SIZE;
+ unsigned int : 24;
+ } rbbm_periphid0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_periphid0_t {
+ unsigned int : 24;
+ unsigned int partnumber0 : RBBM_PERIPHID0_PARTNUMBER0_SIZE;
+ } rbbm_periphid0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_periphid0_t f;
+} rbbm_periphid0_u;
+
+
+/*
+ * RBBM_PERIPHID1 struct
+ */
+
+#define RBBM_PERIPHID1_PARTNUMBER1_SIZE 4
+#define RBBM_PERIPHID1_DESIGNER0_SIZE 4
+
+#define RBBM_PERIPHID1_PARTNUMBER1_SHIFT 0
+#define RBBM_PERIPHID1_DESIGNER0_SHIFT 4
+
+#define RBBM_PERIPHID1_PARTNUMBER1_MASK 0x0000000f
+#define RBBM_PERIPHID1_DESIGNER0_MASK 0x000000f0
+
+#define RBBM_PERIPHID1_MASK \
+ (RBBM_PERIPHID1_PARTNUMBER1_MASK | \
+ RBBM_PERIPHID1_DESIGNER0_MASK)
+
+#define RBBM_PERIPHID1(partnumber1, designer0) \
+ ((partnumber1 << RBBM_PERIPHID1_PARTNUMBER1_SHIFT) | \
+ (designer0 << RBBM_PERIPHID1_DESIGNER0_SHIFT))
+
+#define RBBM_PERIPHID1_GET_PARTNUMBER1(rbbm_periphid1) \
+ ((rbbm_periphid1 & RBBM_PERIPHID1_PARTNUMBER1_MASK) >> RBBM_PERIPHID1_PARTNUMBER1_SHIFT)
+#define RBBM_PERIPHID1_GET_DESIGNER0(rbbm_periphid1) \
+ ((rbbm_periphid1 & RBBM_PERIPHID1_DESIGNER0_MASK) >> RBBM_PERIPHID1_DESIGNER0_SHIFT)
+
+#define RBBM_PERIPHID1_SET_PARTNUMBER1(rbbm_periphid1_reg, partnumber1) \
+ rbbm_periphid1_reg = (rbbm_periphid1_reg & ~RBBM_PERIPHID1_PARTNUMBER1_MASK) | (partnumber1 << RBBM_PERIPHID1_PARTNUMBER1_SHIFT)
+#define RBBM_PERIPHID1_SET_DESIGNER0(rbbm_periphid1_reg, designer0) \
+ rbbm_periphid1_reg = (rbbm_periphid1_reg & ~RBBM_PERIPHID1_DESIGNER0_MASK) | (designer0 << RBBM_PERIPHID1_DESIGNER0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_periphid1_t {
+ unsigned int partnumber1 : RBBM_PERIPHID1_PARTNUMBER1_SIZE;
+ unsigned int designer0 : RBBM_PERIPHID1_DESIGNER0_SIZE;
+ unsigned int : 24;
+ } rbbm_periphid1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_periphid1_t {
+ unsigned int : 24;
+ unsigned int designer0 : RBBM_PERIPHID1_DESIGNER0_SIZE;
+ unsigned int partnumber1 : RBBM_PERIPHID1_PARTNUMBER1_SIZE;
+ } rbbm_periphid1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_periphid1_t f;
+} rbbm_periphid1_u;
+
+
+/*
+ * RBBM_PERIPHID2 struct
+ */
+
+#define RBBM_PERIPHID2_DESIGNER1_SIZE 4
+#define RBBM_PERIPHID2_REVISION_SIZE 4
+
+#define RBBM_PERIPHID2_DESIGNER1_SHIFT 0
+#define RBBM_PERIPHID2_REVISION_SHIFT 4
+
+#define RBBM_PERIPHID2_DESIGNER1_MASK 0x0000000f
+#define RBBM_PERIPHID2_REVISION_MASK 0x000000f0
+
+#define RBBM_PERIPHID2_MASK \
+ (RBBM_PERIPHID2_DESIGNER1_MASK | \
+ RBBM_PERIPHID2_REVISION_MASK)
+
+#define RBBM_PERIPHID2(designer1, revision) \
+ ((designer1 << RBBM_PERIPHID2_DESIGNER1_SHIFT) | \
+ (revision << RBBM_PERIPHID2_REVISION_SHIFT))
+
+#define RBBM_PERIPHID2_GET_DESIGNER1(rbbm_periphid2) \
+ ((rbbm_periphid2 & RBBM_PERIPHID2_DESIGNER1_MASK) >> RBBM_PERIPHID2_DESIGNER1_SHIFT)
+#define RBBM_PERIPHID2_GET_REVISION(rbbm_periphid2) \
+ ((rbbm_periphid2 & RBBM_PERIPHID2_REVISION_MASK) >> RBBM_PERIPHID2_REVISION_SHIFT)
+
+#define RBBM_PERIPHID2_SET_DESIGNER1(rbbm_periphid2_reg, designer1) \
+ rbbm_periphid2_reg = (rbbm_periphid2_reg & ~RBBM_PERIPHID2_DESIGNER1_MASK) | (designer1 << RBBM_PERIPHID2_DESIGNER1_SHIFT)
+#define RBBM_PERIPHID2_SET_REVISION(rbbm_periphid2_reg, revision) \
+ rbbm_periphid2_reg = (rbbm_periphid2_reg & ~RBBM_PERIPHID2_REVISION_MASK) | (revision << RBBM_PERIPHID2_REVISION_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_periphid2_t {
+ unsigned int designer1 : RBBM_PERIPHID2_DESIGNER1_SIZE;
+ unsigned int revision : RBBM_PERIPHID2_REVISION_SIZE;
+ unsigned int : 24;
+ } rbbm_periphid2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_periphid2_t {
+ unsigned int : 24;
+ unsigned int revision : RBBM_PERIPHID2_REVISION_SIZE;
+ unsigned int designer1 : RBBM_PERIPHID2_DESIGNER1_SIZE;
+ } rbbm_periphid2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_periphid2_t f;
+} rbbm_periphid2_u;
+
+
+/*
+ * RBBM_PERIPHID3 struct
+ */
+
+#define RBBM_PERIPHID3_RBBM_HOST_INTERFACE_SIZE 2
+#define RBBM_PERIPHID3_GARB_SLAVE_INTERFACE_SIZE 2
+#define RBBM_PERIPHID3_MH_INTERFACE_SIZE 2
+#define RBBM_PERIPHID3_CONTINUATION_SIZE 1
+
+#define RBBM_PERIPHID3_RBBM_HOST_INTERFACE_SHIFT 0
+#define RBBM_PERIPHID3_GARB_SLAVE_INTERFACE_SHIFT 2
+#define RBBM_PERIPHID3_MH_INTERFACE_SHIFT 4
+#define RBBM_PERIPHID3_CONTINUATION_SHIFT 7
+
+#define RBBM_PERIPHID3_RBBM_HOST_INTERFACE_MASK 0x00000003
+#define RBBM_PERIPHID3_GARB_SLAVE_INTERFACE_MASK 0x0000000c
+#define RBBM_PERIPHID3_MH_INTERFACE_MASK 0x00000030
+#define RBBM_PERIPHID3_CONTINUATION_MASK 0x00000080
+
+#define RBBM_PERIPHID3_MASK \
+ (RBBM_PERIPHID3_RBBM_HOST_INTERFACE_MASK | \
+ RBBM_PERIPHID3_GARB_SLAVE_INTERFACE_MASK | \
+ RBBM_PERIPHID3_MH_INTERFACE_MASK | \
+ RBBM_PERIPHID3_CONTINUATION_MASK)
+
+#define RBBM_PERIPHID3(rbbm_host_interface, garb_slave_interface, mh_interface, continuation) \
+ ((rbbm_host_interface << RBBM_PERIPHID3_RBBM_HOST_INTERFACE_SHIFT) | \
+ (garb_slave_interface << RBBM_PERIPHID3_GARB_SLAVE_INTERFACE_SHIFT) | \
+ (mh_interface << RBBM_PERIPHID3_MH_INTERFACE_SHIFT) | \
+ (continuation << RBBM_PERIPHID3_CONTINUATION_SHIFT))
+
+#define RBBM_PERIPHID3_GET_RBBM_HOST_INTERFACE(rbbm_periphid3) \
+ ((rbbm_periphid3 & RBBM_PERIPHID3_RBBM_HOST_INTERFACE_MASK) >> RBBM_PERIPHID3_RBBM_HOST_INTERFACE_SHIFT)
+#define RBBM_PERIPHID3_GET_GARB_SLAVE_INTERFACE(rbbm_periphid3) \
+ ((rbbm_periphid3 & RBBM_PERIPHID3_GARB_SLAVE_INTERFACE_MASK) >> RBBM_PERIPHID3_GARB_SLAVE_INTERFACE_SHIFT)
+#define RBBM_PERIPHID3_GET_MH_INTERFACE(rbbm_periphid3) \
+ ((rbbm_periphid3 & RBBM_PERIPHID3_MH_INTERFACE_MASK) >> RBBM_PERIPHID3_MH_INTERFACE_SHIFT)
+#define RBBM_PERIPHID3_GET_CONTINUATION(rbbm_periphid3) \
+ ((rbbm_periphid3 & RBBM_PERIPHID3_CONTINUATION_MASK) >> RBBM_PERIPHID3_CONTINUATION_SHIFT)
+
+#define RBBM_PERIPHID3_SET_RBBM_HOST_INTERFACE(rbbm_periphid3_reg, rbbm_host_interface) \
+ rbbm_periphid3_reg = (rbbm_periphid3_reg & ~RBBM_PERIPHID3_RBBM_HOST_INTERFACE_MASK) | (rbbm_host_interface << RBBM_PERIPHID3_RBBM_HOST_INTERFACE_SHIFT)
+#define RBBM_PERIPHID3_SET_GARB_SLAVE_INTERFACE(rbbm_periphid3_reg, garb_slave_interface) \
+ rbbm_periphid3_reg = (rbbm_periphid3_reg & ~RBBM_PERIPHID3_GARB_SLAVE_INTERFACE_MASK) | (garb_slave_interface << RBBM_PERIPHID3_GARB_SLAVE_INTERFACE_SHIFT)
+#define RBBM_PERIPHID3_SET_MH_INTERFACE(rbbm_periphid3_reg, mh_interface) \
+ rbbm_periphid3_reg = (rbbm_periphid3_reg & ~RBBM_PERIPHID3_MH_INTERFACE_MASK) | (mh_interface << RBBM_PERIPHID3_MH_INTERFACE_SHIFT)
+#define RBBM_PERIPHID3_SET_CONTINUATION(rbbm_periphid3_reg, continuation) \
+ rbbm_periphid3_reg = (rbbm_periphid3_reg & ~RBBM_PERIPHID3_CONTINUATION_MASK) | (continuation << RBBM_PERIPHID3_CONTINUATION_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_periphid3_t {
+ unsigned int rbbm_host_interface : RBBM_PERIPHID3_RBBM_HOST_INTERFACE_SIZE;
+ unsigned int garb_slave_interface : RBBM_PERIPHID3_GARB_SLAVE_INTERFACE_SIZE;
+ unsigned int mh_interface : RBBM_PERIPHID3_MH_INTERFACE_SIZE;
+ unsigned int : 1;
+ unsigned int continuation : RBBM_PERIPHID3_CONTINUATION_SIZE;
+ unsigned int : 24;
+ } rbbm_periphid3_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_periphid3_t {
+ unsigned int : 24;
+ unsigned int continuation : RBBM_PERIPHID3_CONTINUATION_SIZE;
+ unsigned int : 1;
+ unsigned int mh_interface : RBBM_PERIPHID3_MH_INTERFACE_SIZE;
+ unsigned int garb_slave_interface : RBBM_PERIPHID3_GARB_SLAVE_INTERFACE_SIZE;
+ unsigned int rbbm_host_interface : RBBM_PERIPHID3_RBBM_HOST_INTERFACE_SIZE;
+ } rbbm_periphid3_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_periphid3_t f;
+} rbbm_periphid3_u;
+
+
+/*
+ * RBBM_CNTL struct
+ */
+
+#define RBBM_CNTL_READ_TIMEOUT_SIZE 8
+#define RBBM_CNTL_REGCLK_DEASSERT_TIME_SIZE 9
+
+#define RBBM_CNTL_READ_TIMEOUT_SHIFT 0
+#define RBBM_CNTL_REGCLK_DEASSERT_TIME_SHIFT 8
+
+#define RBBM_CNTL_READ_TIMEOUT_MASK 0x000000ff
+#define RBBM_CNTL_REGCLK_DEASSERT_TIME_MASK 0x0001ff00
+
+#define RBBM_CNTL_MASK \
+ (RBBM_CNTL_READ_TIMEOUT_MASK | \
+ RBBM_CNTL_REGCLK_DEASSERT_TIME_MASK)
+
+#define RBBM_CNTL(read_timeout, regclk_deassert_time) \
+ ((read_timeout << RBBM_CNTL_READ_TIMEOUT_SHIFT) | \
+ (regclk_deassert_time << RBBM_CNTL_REGCLK_DEASSERT_TIME_SHIFT))
+
+#define RBBM_CNTL_GET_READ_TIMEOUT(rbbm_cntl) \
+ ((rbbm_cntl & RBBM_CNTL_READ_TIMEOUT_MASK) >> RBBM_CNTL_READ_TIMEOUT_SHIFT)
+#define RBBM_CNTL_GET_REGCLK_DEASSERT_TIME(rbbm_cntl) \
+ ((rbbm_cntl & RBBM_CNTL_REGCLK_DEASSERT_TIME_MASK) >> RBBM_CNTL_REGCLK_DEASSERT_TIME_SHIFT)
+
+#define RBBM_CNTL_SET_READ_TIMEOUT(rbbm_cntl_reg, read_timeout) \
+ rbbm_cntl_reg = (rbbm_cntl_reg & ~RBBM_CNTL_READ_TIMEOUT_MASK) | (read_timeout << RBBM_CNTL_READ_TIMEOUT_SHIFT)
+#define RBBM_CNTL_SET_REGCLK_DEASSERT_TIME(rbbm_cntl_reg, regclk_deassert_time) \
+ rbbm_cntl_reg = (rbbm_cntl_reg & ~RBBM_CNTL_REGCLK_DEASSERT_TIME_MASK) | (regclk_deassert_time << RBBM_CNTL_REGCLK_DEASSERT_TIME_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_cntl_t {
+ unsigned int read_timeout : RBBM_CNTL_READ_TIMEOUT_SIZE;
+ unsigned int regclk_deassert_time : RBBM_CNTL_REGCLK_DEASSERT_TIME_SIZE;
+ unsigned int : 15;
+ } rbbm_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_cntl_t {
+ unsigned int : 15;
+ unsigned int regclk_deassert_time : RBBM_CNTL_REGCLK_DEASSERT_TIME_SIZE;
+ unsigned int read_timeout : RBBM_CNTL_READ_TIMEOUT_SIZE;
+ } rbbm_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_cntl_t f;
+} rbbm_cntl_u;
+
+
+/*
+ * RBBM_SKEW_CNTL struct
+ */
+
+#define RBBM_SKEW_CNTL_SKEW_TOP_THRESHOLD_SIZE 5
+#define RBBM_SKEW_CNTL_SKEW_COUNT_SIZE 5
+
+#define RBBM_SKEW_CNTL_SKEW_TOP_THRESHOLD_SHIFT 0
+#define RBBM_SKEW_CNTL_SKEW_COUNT_SHIFT 5
+
+#define RBBM_SKEW_CNTL_SKEW_TOP_THRESHOLD_MASK 0x0000001f
+#define RBBM_SKEW_CNTL_SKEW_COUNT_MASK 0x000003e0
+
+#define RBBM_SKEW_CNTL_MASK \
+ (RBBM_SKEW_CNTL_SKEW_TOP_THRESHOLD_MASK | \
+ RBBM_SKEW_CNTL_SKEW_COUNT_MASK)
+
+#define RBBM_SKEW_CNTL(skew_top_threshold, skew_count) \
+ ((skew_top_threshold << RBBM_SKEW_CNTL_SKEW_TOP_THRESHOLD_SHIFT) | \
+ (skew_count << RBBM_SKEW_CNTL_SKEW_COUNT_SHIFT))
+
+#define RBBM_SKEW_CNTL_GET_SKEW_TOP_THRESHOLD(rbbm_skew_cntl) \
+ ((rbbm_skew_cntl & RBBM_SKEW_CNTL_SKEW_TOP_THRESHOLD_MASK) >> RBBM_SKEW_CNTL_SKEW_TOP_THRESHOLD_SHIFT)
+#define RBBM_SKEW_CNTL_GET_SKEW_COUNT(rbbm_skew_cntl) \
+ ((rbbm_skew_cntl & RBBM_SKEW_CNTL_SKEW_COUNT_MASK) >> RBBM_SKEW_CNTL_SKEW_COUNT_SHIFT)
+
+#define RBBM_SKEW_CNTL_SET_SKEW_TOP_THRESHOLD(rbbm_skew_cntl_reg, skew_top_threshold) \
+ rbbm_skew_cntl_reg = (rbbm_skew_cntl_reg & ~RBBM_SKEW_CNTL_SKEW_TOP_THRESHOLD_MASK) | (skew_top_threshold << RBBM_SKEW_CNTL_SKEW_TOP_THRESHOLD_SHIFT)
+#define RBBM_SKEW_CNTL_SET_SKEW_COUNT(rbbm_skew_cntl_reg, skew_count) \
+ rbbm_skew_cntl_reg = (rbbm_skew_cntl_reg & ~RBBM_SKEW_CNTL_SKEW_COUNT_MASK) | (skew_count << RBBM_SKEW_CNTL_SKEW_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_skew_cntl_t {
+ unsigned int skew_top_threshold : RBBM_SKEW_CNTL_SKEW_TOP_THRESHOLD_SIZE;
+ unsigned int skew_count : RBBM_SKEW_CNTL_SKEW_COUNT_SIZE;
+ unsigned int : 22;
+ } rbbm_skew_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_skew_cntl_t {
+ unsigned int : 22;
+ unsigned int skew_count : RBBM_SKEW_CNTL_SKEW_COUNT_SIZE;
+ unsigned int skew_top_threshold : RBBM_SKEW_CNTL_SKEW_TOP_THRESHOLD_SIZE;
+ } rbbm_skew_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_skew_cntl_t f;
+} rbbm_skew_cntl_u;
+
+
+/*
+ * RBBM_SOFT_RESET struct
+ */
+
+#define RBBM_SOFT_RESET_SOFT_RESET_CP_SIZE 1
+#define RBBM_SOFT_RESET_SOFT_RESET_PA_SIZE 1
+#define RBBM_SOFT_RESET_SOFT_RESET_MH_SIZE 1
+#define RBBM_SOFT_RESET_SOFT_RESET_BC_SIZE 1
+#define RBBM_SOFT_RESET_SOFT_RESET_SQ_SIZE 1
+#define RBBM_SOFT_RESET_SOFT_RESET_SX_SIZE 1
+#define RBBM_SOFT_RESET_SOFT_RESET_CIB_SIZE 1
+#define RBBM_SOFT_RESET_SOFT_RESET_SC_SIZE 1
+#define RBBM_SOFT_RESET_SOFT_RESET_VGT_SIZE 1
+
+#define RBBM_SOFT_RESET_SOFT_RESET_CP_SHIFT 0
+#define RBBM_SOFT_RESET_SOFT_RESET_PA_SHIFT 2
+#define RBBM_SOFT_RESET_SOFT_RESET_MH_SHIFT 3
+#define RBBM_SOFT_RESET_SOFT_RESET_BC_SHIFT 4
+#define RBBM_SOFT_RESET_SOFT_RESET_SQ_SHIFT 5
+#define RBBM_SOFT_RESET_SOFT_RESET_SX_SHIFT 6
+#define RBBM_SOFT_RESET_SOFT_RESET_CIB_SHIFT 12
+#define RBBM_SOFT_RESET_SOFT_RESET_SC_SHIFT 15
+#define RBBM_SOFT_RESET_SOFT_RESET_VGT_SHIFT 16
+
+#define RBBM_SOFT_RESET_SOFT_RESET_CP_MASK 0x00000001
+#define RBBM_SOFT_RESET_SOFT_RESET_PA_MASK 0x00000004
+#define RBBM_SOFT_RESET_SOFT_RESET_MH_MASK 0x00000008
+#define RBBM_SOFT_RESET_SOFT_RESET_BC_MASK 0x00000010
+#define RBBM_SOFT_RESET_SOFT_RESET_SQ_MASK 0x00000020
+#define RBBM_SOFT_RESET_SOFT_RESET_SX_MASK 0x00000040
+#define RBBM_SOFT_RESET_SOFT_RESET_CIB_MASK 0x00001000
+#define RBBM_SOFT_RESET_SOFT_RESET_SC_MASK 0x00008000
+#define RBBM_SOFT_RESET_SOFT_RESET_VGT_MASK 0x00010000
+
+#define RBBM_SOFT_RESET_MASK \
+ (RBBM_SOFT_RESET_SOFT_RESET_CP_MASK | \
+ RBBM_SOFT_RESET_SOFT_RESET_PA_MASK | \
+ RBBM_SOFT_RESET_SOFT_RESET_MH_MASK | \
+ RBBM_SOFT_RESET_SOFT_RESET_BC_MASK | \
+ RBBM_SOFT_RESET_SOFT_RESET_SQ_MASK | \
+ RBBM_SOFT_RESET_SOFT_RESET_SX_MASK | \
+ RBBM_SOFT_RESET_SOFT_RESET_CIB_MASK | \
+ RBBM_SOFT_RESET_SOFT_RESET_SC_MASK | \
+ RBBM_SOFT_RESET_SOFT_RESET_VGT_MASK)
+
+#define RBBM_SOFT_RESET(soft_reset_cp, soft_reset_pa, soft_reset_mh, soft_reset_bc, soft_reset_sq, soft_reset_sx, soft_reset_cib, soft_reset_sc, soft_reset_vgt) \
+ ((soft_reset_cp << RBBM_SOFT_RESET_SOFT_RESET_CP_SHIFT) | \
+ (soft_reset_pa << RBBM_SOFT_RESET_SOFT_RESET_PA_SHIFT) | \
+ (soft_reset_mh << RBBM_SOFT_RESET_SOFT_RESET_MH_SHIFT) | \
+ (soft_reset_bc << RBBM_SOFT_RESET_SOFT_RESET_BC_SHIFT) | \
+ (soft_reset_sq << RBBM_SOFT_RESET_SOFT_RESET_SQ_SHIFT) | \
+ (soft_reset_sx << RBBM_SOFT_RESET_SOFT_RESET_SX_SHIFT) | \
+ (soft_reset_cib << RBBM_SOFT_RESET_SOFT_RESET_CIB_SHIFT) | \
+ (soft_reset_sc << RBBM_SOFT_RESET_SOFT_RESET_SC_SHIFT) | \
+ (soft_reset_vgt << RBBM_SOFT_RESET_SOFT_RESET_VGT_SHIFT))
+
+#define RBBM_SOFT_RESET_GET_SOFT_RESET_CP(rbbm_soft_reset) \
+ ((rbbm_soft_reset & RBBM_SOFT_RESET_SOFT_RESET_CP_MASK) >> RBBM_SOFT_RESET_SOFT_RESET_CP_SHIFT)
+#define RBBM_SOFT_RESET_GET_SOFT_RESET_PA(rbbm_soft_reset) \
+ ((rbbm_soft_reset & RBBM_SOFT_RESET_SOFT_RESET_PA_MASK) >> RBBM_SOFT_RESET_SOFT_RESET_PA_SHIFT)
+#define RBBM_SOFT_RESET_GET_SOFT_RESET_MH(rbbm_soft_reset) \
+ ((rbbm_soft_reset & RBBM_SOFT_RESET_SOFT_RESET_MH_MASK) >> RBBM_SOFT_RESET_SOFT_RESET_MH_SHIFT)
+#define RBBM_SOFT_RESET_GET_SOFT_RESET_BC(rbbm_soft_reset) \
+ ((rbbm_soft_reset & RBBM_SOFT_RESET_SOFT_RESET_BC_MASK) >> RBBM_SOFT_RESET_SOFT_RESET_BC_SHIFT)
+#define RBBM_SOFT_RESET_GET_SOFT_RESET_SQ(rbbm_soft_reset) \
+ ((rbbm_soft_reset & RBBM_SOFT_RESET_SOFT_RESET_SQ_MASK) >> RBBM_SOFT_RESET_SOFT_RESET_SQ_SHIFT)
+#define RBBM_SOFT_RESET_GET_SOFT_RESET_SX(rbbm_soft_reset) \
+ ((rbbm_soft_reset & RBBM_SOFT_RESET_SOFT_RESET_SX_MASK) >> RBBM_SOFT_RESET_SOFT_RESET_SX_SHIFT)
+#define RBBM_SOFT_RESET_GET_SOFT_RESET_CIB(rbbm_soft_reset) \
+ ((rbbm_soft_reset & RBBM_SOFT_RESET_SOFT_RESET_CIB_MASK) >> RBBM_SOFT_RESET_SOFT_RESET_CIB_SHIFT)
+#define RBBM_SOFT_RESET_GET_SOFT_RESET_SC(rbbm_soft_reset) \
+ ((rbbm_soft_reset & RBBM_SOFT_RESET_SOFT_RESET_SC_MASK) >> RBBM_SOFT_RESET_SOFT_RESET_SC_SHIFT)
+#define RBBM_SOFT_RESET_GET_SOFT_RESET_VGT(rbbm_soft_reset) \
+ ((rbbm_soft_reset & RBBM_SOFT_RESET_SOFT_RESET_VGT_MASK) >> RBBM_SOFT_RESET_SOFT_RESET_VGT_SHIFT)
+
+#define RBBM_SOFT_RESET_SET_SOFT_RESET_CP(rbbm_soft_reset_reg, soft_reset_cp) \
+ rbbm_soft_reset_reg = (rbbm_soft_reset_reg & ~RBBM_SOFT_RESET_SOFT_RESET_CP_MASK) | (soft_reset_cp << RBBM_SOFT_RESET_SOFT_RESET_CP_SHIFT)
+#define RBBM_SOFT_RESET_SET_SOFT_RESET_PA(rbbm_soft_reset_reg, soft_reset_pa) \
+ rbbm_soft_reset_reg = (rbbm_soft_reset_reg & ~RBBM_SOFT_RESET_SOFT_RESET_PA_MASK) | (soft_reset_pa << RBBM_SOFT_RESET_SOFT_RESET_PA_SHIFT)
+#define RBBM_SOFT_RESET_SET_SOFT_RESET_MH(rbbm_soft_reset_reg, soft_reset_mh) \
+ rbbm_soft_reset_reg = (rbbm_soft_reset_reg & ~RBBM_SOFT_RESET_SOFT_RESET_MH_MASK) | (soft_reset_mh << RBBM_SOFT_RESET_SOFT_RESET_MH_SHIFT)
+#define RBBM_SOFT_RESET_SET_SOFT_RESET_BC(rbbm_soft_reset_reg, soft_reset_bc) \
+ rbbm_soft_reset_reg = (rbbm_soft_reset_reg & ~RBBM_SOFT_RESET_SOFT_RESET_BC_MASK) | (soft_reset_bc << RBBM_SOFT_RESET_SOFT_RESET_BC_SHIFT)
+#define RBBM_SOFT_RESET_SET_SOFT_RESET_SQ(rbbm_soft_reset_reg, soft_reset_sq) \
+ rbbm_soft_reset_reg = (rbbm_soft_reset_reg & ~RBBM_SOFT_RESET_SOFT_RESET_SQ_MASK) | (soft_reset_sq << RBBM_SOFT_RESET_SOFT_RESET_SQ_SHIFT)
+#define RBBM_SOFT_RESET_SET_SOFT_RESET_SX(rbbm_soft_reset_reg, soft_reset_sx) \
+ rbbm_soft_reset_reg = (rbbm_soft_reset_reg & ~RBBM_SOFT_RESET_SOFT_RESET_SX_MASK) | (soft_reset_sx << RBBM_SOFT_RESET_SOFT_RESET_SX_SHIFT)
+#define RBBM_SOFT_RESET_SET_SOFT_RESET_CIB(rbbm_soft_reset_reg, soft_reset_cib) \
+ rbbm_soft_reset_reg = (rbbm_soft_reset_reg & ~RBBM_SOFT_RESET_SOFT_RESET_CIB_MASK) | (soft_reset_cib << RBBM_SOFT_RESET_SOFT_RESET_CIB_SHIFT)
+#define RBBM_SOFT_RESET_SET_SOFT_RESET_SC(rbbm_soft_reset_reg, soft_reset_sc) \
+ rbbm_soft_reset_reg = (rbbm_soft_reset_reg & ~RBBM_SOFT_RESET_SOFT_RESET_SC_MASK) | (soft_reset_sc << RBBM_SOFT_RESET_SOFT_RESET_SC_SHIFT)
+#define RBBM_SOFT_RESET_SET_SOFT_RESET_VGT(rbbm_soft_reset_reg, soft_reset_vgt) \
+ rbbm_soft_reset_reg = (rbbm_soft_reset_reg & ~RBBM_SOFT_RESET_SOFT_RESET_VGT_MASK) | (soft_reset_vgt << RBBM_SOFT_RESET_SOFT_RESET_VGT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_soft_reset_t {
+ unsigned int soft_reset_cp : RBBM_SOFT_RESET_SOFT_RESET_CP_SIZE;
+ unsigned int : 1;
+ unsigned int soft_reset_pa : RBBM_SOFT_RESET_SOFT_RESET_PA_SIZE;
+ unsigned int soft_reset_mh : RBBM_SOFT_RESET_SOFT_RESET_MH_SIZE;
+ unsigned int soft_reset_bc : RBBM_SOFT_RESET_SOFT_RESET_BC_SIZE;
+ unsigned int soft_reset_sq : RBBM_SOFT_RESET_SOFT_RESET_SQ_SIZE;
+ unsigned int soft_reset_sx : RBBM_SOFT_RESET_SOFT_RESET_SX_SIZE;
+ unsigned int : 5;
+ unsigned int soft_reset_cib : RBBM_SOFT_RESET_SOFT_RESET_CIB_SIZE;
+ unsigned int : 2;
+ unsigned int soft_reset_sc : RBBM_SOFT_RESET_SOFT_RESET_SC_SIZE;
+ unsigned int soft_reset_vgt : RBBM_SOFT_RESET_SOFT_RESET_VGT_SIZE;
+ unsigned int : 15;
+ } rbbm_soft_reset_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_soft_reset_t {
+ unsigned int : 15;
+ unsigned int soft_reset_vgt : RBBM_SOFT_RESET_SOFT_RESET_VGT_SIZE;
+ unsigned int soft_reset_sc : RBBM_SOFT_RESET_SOFT_RESET_SC_SIZE;
+ unsigned int : 2;
+ unsigned int soft_reset_cib : RBBM_SOFT_RESET_SOFT_RESET_CIB_SIZE;
+ unsigned int : 5;
+ unsigned int soft_reset_sx : RBBM_SOFT_RESET_SOFT_RESET_SX_SIZE;
+ unsigned int soft_reset_sq : RBBM_SOFT_RESET_SOFT_RESET_SQ_SIZE;
+ unsigned int soft_reset_bc : RBBM_SOFT_RESET_SOFT_RESET_BC_SIZE;
+ unsigned int soft_reset_mh : RBBM_SOFT_RESET_SOFT_RESET_MH_SIZE;
+ unsigned int soft_reset_pa : RBBM_SOFT_RESET_SOFT_RESET_PA_SIZE;
+ unsigned int : 1;
+ unsigned int soft_reset_cp : RBBM_SOFT_RESET_SOFT_RESET_CP_SIZE;
+ } rbbm_soft_reset_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_soft_reset_t f;
+} rbbm_soft_reset_u;
+
+
+/*
+ * RBBM_PM_OVERRIDE1 struct
+ */
+
+#define RBBM_PM_OVERRIDE1_RBBM_AHBCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_SC_REG_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_SC_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_SP_TOP_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_SP_V0_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_SQ_REG_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_SQ_REG_FIFOS_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_SQ_CONST_MEM_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_SQ_SQ_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_SX_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_SX_REG_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_TCM_TCO_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_TCM_TCM_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_TCM_TCD_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_TCM_REG_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_TPC_TPC_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_TPC_REG_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_TCF_TCA_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_TCF_TCB_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_TCF_TCB_READ_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_TP_TP_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_TP_REG_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_CP_G_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_CP_REG_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_CP_G_REG_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_SPI_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_RB_REG_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_RB_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_MH_MH_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_MH_REG_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_MH_MMU_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_MH_TCROQ_SCLK_PM_OVERRIDE_SIZE 1
+
+#define RBBM_PM_OVERRIDE1_RBBM_AHBCLK_PM_OVERRIDE_SHIFT 0
+#define RBBM_PM_OVERRIDE1_SC_REG_SCLK_PM_OVERRIDE_SHIFT 1
+#define RBBM_PM_OVERRIDE1_SC_SCLK_PM_OVERRIDE_SHIFT 2
+#define RBBM_PM_OVERRIDE1_SP_TOP_SCLK_PM_OVERRIDE_SHIFT 3
+#define RBBM_PM_OVERRIDE1_SP_V0_SCLK_PM_OVERRIDE_SHIFT 4
+#define RBBM_PM_OVERRIDE1_SQ_REG_SCLK_PM_OVERRIDE_SHIFT 5
+#define RBBM_PM_OVERRIDE1_SQ_REG_FIFOS_SCLK_PM_OVERRIDE_SHIFT 6
+#define RBBM_PM_OVERRIDE1_SQ_CONST_MEM_SCLK_PM_OVERRIDE_SHIFT 7
+#define RBBM_PM_OVERRIDE1_SQ_SQ_SCLK_PM_OVERRIDE_SHIFT 8
+#define RBBM_PM_OVERRIDE1_SX_SCLK_PM_OVERRIDE_SHIFT 9
+#define RBBM_PM_OVERRIDE1_SX_REG_SCLK_PM_OVERRIDE_SHIFT 10
+#define RBBM_PM_OVERRIDE1_TCM_TCO_SCLK_PM_OVERRIDE_SHIFT 11
+#define RBBM_PM_OVERRIDE1_TCM_TCM_SCLK_PM_OVERRIDE_SHIFT 12
+#define RBBM_PM_OVERRIDE1_TCM_TCD_SCLK_PM_OVERRIDE_SHIFT 13
+#define RBBM_PM_OVERRIDE1_TCM_REG_SCLK_PM_OVERRIDE_SHIFT 14
+#define RBBM_PM_OVERRIDE1_TPC_TPC_SCLK_PM_OVERRIDE_SHIFT 15
+#define RBBM_PM_OVERRIDE1_TPC_REG_SCLK_PM_OVERRIDE_SHIFT 16
+#define RBBM_PM_OVERRIDE1_TCF_TCA_SCLK_PM_OVERRIDE_SHIFT 17
+#define RBBM_PM_OVERRIDE1_TCF_TCB_SCLK_PM_OVERRIDE_SHIFT 18
+#define RBBM_PM_OVERRIDE1_TCF_TCB_READ_SCLK_PM_OVERRIDE_SHIFT 19
+#define RBBM_PM_OVERRIDE1_TP_TP_SCLK_PM_OVERRIDE_SHIFT 20
+#define RBBM_PM_OVERRIDE1_TP_REG_SCLK_PM_OVERRIDE_SHIFT 21
+#define RBBM_PM_OVERRIDE1_CP_G_SCLK_PM_OVERRIDE_SHIFT 22
+#define RBBM_PM_OVERRIDE1_CP_REG_SCLK_PM_OVERRIDE_SHIFT 23
+#define RBBM_PM_OVERRIDE1_CP_G_REG_SCLK_PM_OVERRIDE_SHIFT 24
+#define RBBM_PM_OVERRIDE1_SPI_SCLK_PM_OVERRIDE_SHIFT 25
+#define RBBM_PM_OVERRIDE1_RB_REG_SCLK_PM_OVERRIDE_SHIFT 26
+#define RBBM_PM_OVERRIDE1_RB_SCLK_PM_OVERRIDE_SHIFT 27
+#define RBBM_PM_OVERRIDE1_MH_MH_SCLK_PM_OVERRIDE_SHIFT 28
+#define RBBM_PM_OVERRIDE1_MH_REG_SCLK_PM_OVERRIDE_SHIFT 29
+#define RBBM_PM_OVERRIDE1_MH_MMU_SCLK_PM_OVERRIDE_SHIFT 30
+#define RBBM_PM_OVERRIDE1_MH_TCROQ_SCLK_PM_OVERRIDE_SHIFT 31
+
+#define RBBM_PM_OVERRIDE1_RBBM_AHBCLK_PM_OVERRIDE_MASK 0x00000001
+#define RBBM_PM_OVERRIDE1_SC_REG_SCLK_PM_OVERRIDE_MASK 0x00000002
+#define RBBM_PM_OVERRIDE1_SC_SCLK_PM_OVERRIDE_MASK 0x00000004
+#define RBBM_PM_OVERRIDE1_SP_TOP_SCLK_PM_OVERRIDE_MASK 0x00000008
+#define RBBM_PM_OVERRIDE1_SP_V0_SCLK_PM_OVERRIDE_MASK 0x00000010
+#define RBBM_PM_OVERRIDE1_SQ_REG_SCLK_PM_OVERRIDE_MASK 0x00000020
+#define RBBM_PM_OVERRIDE1_SQ_REG_FIFOS_SCLK_PM_OVERRIDE_MASK 0x00000040
+#define RBBM_PM_OVERRIDE1_SQ_CONST_MEM_SCLK_PM_OVERRIDE_MASK 0x00000080
+#define RBBM_PM_OVERRIDE1_SQ_SQ_SCLK_PM_OVERRIDE_MASK 0x00000100
+#define RBBM_PM_OVERRIDE1_SX_SCLK_PM_OVERRIDE_MASK 0x00000200
+#define RBBM_PM_OVERRIDE1_SX_REG_SCLK_PM_OVERRIDE_MASK 0x00000400
+#define RBBM_PM_OVERRIDE1_TCM_TCO_SCLK_PM_OVERRIDE_MASK 0x00000800
+#define RBBM_PM_OVERRIDE1_TCM_TCM_SCLK_PM_OVERRIDE_MASK 0x00001000
+#define RBBM_PM_OVERRIDE1_TCM_TCD_SCLK_PM_OVERRIDE_MASK 0x00002000
+#define RBBM_PM_OVERRIDE1_TCM_REG_SCLK_PM_OVERRIDE_MASK 0x00004000
+#define RBBM_PM_OVERRIDE1_TPC_TPC_SCLK_PM_OVERRIDE_MASK 0x00008000
+#define RBBM_PM_OVERRIDE1_TPC_REG_SCLK_PM_OVERRIDE_MASK 0x00010000
+#define RBBM_PM_OVERRIDE1_TCF_TCA_SCLK_PM_OVERRIDE_MASK 0x00020000
+#define RBBM_PM_OVERRIDE1_TCF_TCB_SCLK_PM_OVERRIDE_MASK 0x00040000
+#define RBBM_PM_OVERRIDE1_TCF_TCB_READ_SCLK_PM_OVERRIDE_MASK 0x00080000
+#define RBBM_PM_OVERRIDE1_TP_TP_SCLK_PM_OVERRIDE_MASK 0x00100000
+#define RBBM_PM_OVERRIDE1_TP_REG_SCLK_PM_OVERRIDE_MASK 0x00200000
+#define RBBM_PM_OVERRIDE1_CP_G_SCLK_PM_OVERRIDE_MASK 0x00400000
+#define RBBM_PM_OVERRIDE1_CP_REG_SCLK_PM_OVERRIDE_MASK 0x00800000
+#define RBBM_PM_OVERRIDE1_CP_G_REG_SCLK_PM_OVERRIDE_MASK 0x01000000
+#define RBBM_PM_OVERRIDE1_SPI_SCLK_PM_OVERRIDE_MASK 0x02000000
+#define RBBM_PM_OVERRIDE1_RB_REG_SCLK_PM_OVERRIDE_MASK 0x04000000
+#define RBBM_PM_OVERRIDE1_RB_SCLK_PM_OVERRIDE_MASK 0x08000000
+#define RBBM_PM_OVERRIDE1_MH_MH_SCLK_PM_OVERRIDE_MASK 0x10000000
+#define RBBM_PM_OVERRIDE1_MH_REG_SCLK_PM_OVERRIDE_MASK 0x20000000
+#define RBBM_PM_OVERRIDE1_MH_MMU_SCLK_PM_OVERRIDE_MASK 0x40000000
+#define RBBM_PM_OVERRIDE1_MH_TCROQ_SCLK_PM_OVERRIDE_MASK 0x80000000
+
+#define RBBM_PM_OVERRIDE1_MASK \
+ (RBBM_PM_OVERRIDE1_RBBM_AHBCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_SC_REG_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_SC_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_SP_TOP_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_SP_V0_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_SQ_REG_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_SQ_REG_FIFOS_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_SQ_CONST_MEM_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_SQ_SQ_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_SX_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_SX_REG_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_TCM_TCO_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_TCM_TCM_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_TCM_TCD_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_TCM_REG_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_TPC_TPC_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_TPC_REG_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_TCF_TCA_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_TCF_TCB_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_TCF_TCB_READ_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_TP_TP_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_TP_REG_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_CP_G_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_CP_REG_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_CP_G_REG_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_SPI_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_RB_REG_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_RB_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_MH_MH_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_MH_REG_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_MH_MMU_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_MH_TCROQ_SCLK_PM_OVERRIDE_MASK)
+
+#define RBBM_PM_OVERRIDE1(rbbm_ahbclk_pm_override, sc_reg_sclk_pm_override, sc_sclk_pm_override, sp_top_sclk_pm_override, sp_v0_sclk_pm_override, sq_reg_sclk_pm_override, sq_reg_fifos_sclk_pm_override, sq_const_mem_sclk_pm_override, sq_sq_sclk_pm_override, sx_sclk_pm_override, sx_reg_sclk_pm_override, tcm_tco_sclk_pm_override, tcm_tcm_sclk_pm_override, tcm_tcd_sclk_pm_override, tcm_reg_sclk_pm_override, tpc_tpc_sclk_pm_override, tpc_reg_sclk_pm_override, tcf_tca_sclk_pm_override, tcf_tcb_sclk_pm_override, tcf_tcb_read_sclk_pm_override, tp_tp_sclk_pm_override, tp_reg_sclk_pm_override, cp_g_sclk_pm_override, cp_reg_sclk_pm_override, cp_g_reg_sclk_pm_override, spi_sclk_pm_override, rb_reg_sclk_pm_override, rb_sclk_pm_override, mh_mh_sclk_pm_override, mh_reg_sclk_pm_override, mh_mmu_sclk_pm_override, mh_tcroq_sclk_pm_override) \
+ ((rbbm_ahbclk_pm_override << RBBM_PM_OVERRIDE1_RBBM_AHBCLK_PM_OVERRIDE_SHIFT) | \
+ (sc_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_SC_REG_SCLK_PM_OVERRIDE_SHIFT) | \
+ (sc_sclk_pm_override << RBBM_PM_OVERRIDE1_SC_SCLK_PM_OVERRIDE_SHIFT) | \
+ (sp_top_sclk_pm_override << RBBM_PM_OVERRIDE1_SP_TOP_SCLK_PM_OVERRIDE_SHIFT) | \
+ (sp_v0_sclk_pm_override << RBBM_PM_OVERRIDE1_SP_V0_SCLK_PM_OVERRIDE_SHIFT) | \
+ (sq_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_SQ_REG_SCLK_PM_OVERRIDE_SHIFT) | \
+ (sq_reg_fifos_sclk_pm_override << RBBM_PM_OVERRIDE1_SQ_REG_FIFOS_SCLK_PM_OVERRIDE_SHIFT) | \
+ (sq_const_mem_sclk_pm_override << RBBM_PM_OVERRIDE1_SQ_CONST_MEM_SCLK_PM_OVERRIDE_SHIFT) | \
+ (sq_sq_sclk_pm_override << RBBM_PM_OVERRIDE1_SQ_SQ_SCLK_PM_OVERRIDE_SHIFT) | \
+ (sx_sclk_pm_override << RBBM_PM_OVERRIDE1_SX_SCLK_PM_OVERRIDE_SHIFT) | \
+ (sx_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_SX_REG_SCLK_PM_OVERRIDE_SHIFT) | \
+ (tcm_tco_sclk_pm_override << RBBM_PM_OVERRIDE1_TCM_TCO_SCLK_PM_OVERRIDE_SHIFT) | \
+ (tcm_tcm_sclk_pm_override << RBBM_PM_OVERRIDE1_TCM_TCM_SCLK_PM_OVERRIDE_SHIFT) | \
+ (tcm_tcd_sclk_pm_override << RBBM_PM_OVERRIDE1_TCM_TCD_SCLK_PM_OVERRIDE_SHIFT) | \
+ (tcm_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_TCM_REG_SCLK_PM_OVERRIDE_SHIFT) | \
+ (tpc_tpc_sclk_pm_override << RBBM_PM_OVERRIDE1_TPC_TPC_SCLK_PM_OVERRIDE_SHIFT) | \
+ (tpc_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_TPC_REG_SCLK_PM_OVERRIDE_SHIFT) | \
+ (tcf_tca_sclk_pm_override << RBBM_PM_OVERRIDE1_TCF_TCA_SCLK_PM_OVERRIDE_SHIFT) | \
+ (tcf_tcb_sclk_pm_override << RBBM_PM_OVERRIDE1_TCF_TCB_SCLK_PM_OVERRIDE_SHIFT) | \
+ (tcf_tcb_read_sclk_pm_override << RBBM_PM_OVERRIDE1_TCF_TCB_READ_SCLK_PM_OVERRIDE_SHIFT) | \
+ (tp_tp_sclk_pm_override << RBBM_PM_OVERRIDE1_TP_TP_SCLK_PM_OVERRIDE_SHIFT) | \
+ (tp_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_TP_REG_SCLK_PM_OVERRIDE_SHIFT) | \
+ (cp_g_sclk_pm_override << RBBM_PM_OVERRIDE1_CP_G_SCLK_PM_OVERRIDE_SHIFT) | \
+ (cp_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_CP_REG_SCLK_PM_OVERRIDE_SHIFT) | \
+ (cp_g_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_CP_G_REG_SCLK_PM_OVERRIDE_SHIFT) | \
+ (spi_sclk_pm_override << RBBM_PM_OVERRIDE1_SPI_SCLK_PM_OVERRIDE_SHIFT) | \
+ (rb_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_RB_REG_SCLK_PM_OVERRIDE_SHIFT) | \
+ (rb_sclk_pm_override << RBBM_PM_OVERRIDE1_RB_SCLK_PM_OVERRIDE_SHIFT) | \
+ (mh_mh_sclk_pm_override << RBBM_PM_OVERRIDE1_MH_MH_SCLK_PM_OVERRIDE_SHIFT) | \
+ (mh_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_MH_REG_SCLK_PM_OVERRIDE_SHIFT) | \
+ (mh_mmu_sclk_pm_override << RBBM_PM_OVERRIDE1_MH_MMU_SCLK_PM_OVERRIDE_SHIFT) | \
+ (mh_tcroq_sclk_pm_override << RBBM_PM_OVERRIDE1_MH_TCROQ_SCLK_PM_OVERRIDE_SHIFT))
+
+#define RBBM_PM_OVERRIDE1_GET_RBBM_AHBCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_RBBM_AHBCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_RBBM_AHBCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_SC_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_SC_REG_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_SC_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_SC_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_SC_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_SC_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_SP_TOP_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_SP_TOP_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_SP_TOP_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_SP_V0_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_SP_V0_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_SP_V0_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_SQ_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_SQ_REG_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_SQ_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_SQ_REG_FIFOS_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_SQ_REG_FIFOS_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_SQ_REG_FIFOS_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_SQ_CONST_MEM_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_SQ_CONST_MEM_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_SQ_CONST_MEM_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_SQ_SQ_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_SQ_SQ_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_SQ_SQ_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_SX_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_SX_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_SX_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_SX_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_SX_REG_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_SX_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_TCM_TCO_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_TCM_TCO_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_TCM_TCO_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_TCM_TCM_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_TCM_TCM_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_TCM_TCM_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_TCM_TCD_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_TCM_TCD_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_TCM_TCD_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_TCM_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_TCM_REG_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_TCM_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_TPC_TPC_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_TPC_TPC_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_TPC_TPC_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_TPC_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_TPC_REG_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_TPC_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_TCF_TCA_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_TCF_TCA_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_TCF_TCA_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_TCF_TCB_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_TCF_TCB_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_TCF_TCB_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_TCF_TCB_READ_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_TCF_TCB_READ_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_TCF_TCB_READ_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_TP_TP_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_TP_TP_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_TP_TP_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_TP_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_TP_REG_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_TP_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_CP_G_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_CP_G_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_CP_G_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_CP_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_CP_REG_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_CP_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_CP_G_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_CP_G_REG_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_CP_G_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_SPI_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_SPI_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_SPI_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_RB_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_RB_REG_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_RB_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_RB_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_RB_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_RB_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_MH_MH_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_MH_MH_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_MH_MH_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_MH_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_MH_REG_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_MH_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_MH_MMU_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_MH_MMU_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_MH_MMU_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_MH_TCROQ_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_MH_TCROQ_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_MH_TCROQ_SCLK_PM_OVERRIDE_SHIFT)
+
+#define RBBM_PM_OVERRIDE1_SET_RBBM_AHBCLK_PM_OVERRIDE(rbbm_pm_override1_reg, rbbm_ahbclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_RBBM_AHBCLK_PM_OVERRIDE_MASK) | (rbbm_ahbclk_pm_override << RBBM_PM_OVERRIDE1_RBBM_AHBCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_SC_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, sc_reg_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_SC_REG_SCLK_PM_OVERRIDE_MASK) | (sc_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_SC_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_SC_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, sc_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_SC_SCLK_PM_OVERRIDE_MASK) | (sc_sclk_pm_override << RBBM_PM_OVERRIDE1_SC_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_SP_TOP_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, sp_top_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_SP_TOP_SCLK_PM_OVERRIDE_MASK) | (sp_top_sclk_pm_override << RBBM_PM_OVERRIDE1_SP_TOP_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_SP_V0_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, sp_v0_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_SP_V0_SCLK_PM_OVERRIDE_MASK) | (sp_v0_sclk_pm_override << RBBM_PM_OVERRIDE1_SP_V0_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_SQ_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, sq_reg_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_SQ_REG_SCLK_PM_OVERRIDE_MASK) | (sq_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_SQ_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_SQ_REG_FIFOS_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, sq_reg_fifos_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_SQ_REG_FIFOS_SCLK_PM_OVERRIDE_MASK) | (sq_reg_fifos_sclk_pm_override << RBBM_PM_OVERRIDE1_SQ_REG_FIFOS_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_SQ_CONST_MEM_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, sq_const_mem_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_SQ_CONST_MEM_SCLK_PM_OVERRIDE_MASK) | (sq_const_mem_sclk_pm_override << RBBM_PM_OVERRIDE1_SQ_CONST_MEM_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_SQ_SQ_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, sq_sq_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_SQ_SQ_SCLK_PM_OVERRIDE_MASK) | (sq_sq_sclk_pm_override << RBBM_PM_OVERRIDE1_SQ_SQ_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_SX_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, sx_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_SX_SCLK_PM_OVERRIDE_MASK) | (sx_sclk_pm_override << RBBM_PM_OVERRIDE1_SX_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_SX_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, sx_reg_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_SX_REG_SCLK_PM_OVERRIDE_MASK) | (sx_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_SX_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_TCM_TCO_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, tcm_tco_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_TCM_TCO_SCLK_PM_OVERRIDE_MASK) | (tcm_tco_sclk_pm_override << RBBM_PM_OVERRIDE1_TCM_TCO_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_TCM_TCM_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, tcm_tcm_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_TCM_TCM_SCLK_PM_OVERRIDE_MASK) | (tcm_tcm_sclk_pm_override << RBBM_PM_OVERRIDE1_TCM_TCM_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_TCM_TCD_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, tcm_tcd_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_TCM_TCD_SCLK_PM_OVERRIDE_MASK) | (tcm_tcd_sclk_pm_override << RBBM_PM_OVERRIDE1_TCM_TCD_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_TCM_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, tcm_reg_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_TCM_REG_SCLK_PM_OVERRIDE_MASK) | (tcm_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_TCM_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_TPC_TPC_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, tpc_tpc_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_TPC_TPC_SCLK_PM_OVERRIDE_MASK) | (tpc_tpc_sclk_pm_override << RBBM_PM_OVERRIDE1_TPC_TPC_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_TPC_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, tpc_reg_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_TPC_REG_SCLK_PM_OVERRIDE_MASK) | (tpc_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_TPC_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_TCF_TCA_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, tcf_tca_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_TCF_TCA_SCLK_PM_OVERRIDE_MASK) | (tcf_tca_sclk_pm_override << RBBM_PM_OVERRIDE1_TCF_TCA_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_TCF_TCB_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, tcf_tcb_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_TCF_TCB_SCLK_PM_OVERRIDE_MASK) | (tcf_tcb_sclk_pm_override << RBBM_PM_OVERRIDE1_TCF_TCB_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_TCF_TCB_READ_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, tcf_tcb_read_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_TCF_TCB_READ_SCLK_PM_OVERRIDE_MASK) | (tcf_tcb_read_sclk_pm_override << RBBM_PM_OVERRIDE1_TCF_TCB_READ_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_TP_TP_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, tp_tp_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_TP_TP_SCLK_PM_OVERRIDE_MASK) | (tp_tp_sclk_pm_override << RBBM_PM_OVERRIDE1_TP_TP_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_TP_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, tp_reg_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_TP_REG_SCLK_PM_OVERRIDE_MASK) | (tp_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_TP_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_CP_G_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, cp_g_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_CP_G_SCLK_PM_OVERRIDE_MASK) | (cp_g_sclk_pm_override << RBBM_PM_OVERRIDE1_CP_G_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_CP_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, cp_reg_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_CP_REG_SCLK_PM_OVERRIDE_MASK) | (cp_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_CP_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_CP_G_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, cp_g_reg_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_CP_G_REG_SCLK_PM_OVERRIDE_MASK) | (cp_g_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_CP_G_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_SPI_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, spi_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_SPI_SCLK_PM_OVERRIDE_MASK) | (spi_sclk_pm_override << RBBM_PM_OVERRIDE1_SPI_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_RB_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, rb_reg_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_RB_REG_SCLK_PM_OVERRIDE_MASK) | (rb_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_RB_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_RB_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, rb_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_RB_SCLK_PM_OVERRIDE_MASK) | (rb_sclk_pm_override << RBBM_PM_OVERRIDE1_RB_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_MH_MH_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, mh_mh_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_MH_MH_SCLK_PM_OVERRIDE_MASK) | (mh_mh_sclk_pm_override << RBBM_PM_OVERRIDE1_MH_MH_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_MH_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, mh_reg_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_MH_REG_SCLK_PM_OVERRIDE_MASK) | (mh_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_MH_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_MH_MMU_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, mh_mmu_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_MH_MMU_SCLK_PM_OVERRIDE_MASK) | (mh_mmu_sclk_pm_override << RBBM_PM_OVERRIDE1_MH_MMU_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_MH_TCROQ_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, mh_tcroq_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_MH_TCROQ_SCLK_PM_OVERRIDE_MASK) | (mh_tcroq_sclk_pm_override << RBBM_PM_OVERRIDE1_MH_TCROQ_SCLK_PM_OVERRIDE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_pm_override1_t {
+ unsigned int rbbm_ahbclk_pm_override : RBBM_PM_OVERRIDE1_RBBM_AHBCLK_PM_OVERRIDE_SIZE;
+ unsigned int sc_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_SC_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sc_sclk_pm_override : RBBM_PM_OVERRIDE1_SC_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sp_top_sclk_pm_override : RBBM_PM_OVERRIDE1_SP_TOP_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sp_v0_sclk_pm_override : RBBM_PM_OVERRIDE1_SP_V0_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sq_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_SQ_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sq_reg_fifos_sclk_pm_override : RBBM_PM_OVERRIDE1_SQ_REG_FIFOS_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sq_const_mem_sclk_pm_override : RBBM_PM_OVERRIDE1_SQ_CONST_MEM_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sq_sq_sclk_pm_override : RBBM_PM_OVERRIDE1_SQ_SQ_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sx_sclk_pm_override : RBBM_PM_OVERRIDE1_SX_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sx_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_SX_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tcm_tco_sclk_pm_override : RBBM_PM_OVERRIDE1_TCM_TCO_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tcm_tcm_sclk_pm_override : RBBM_PM_OVERRIDE1_TCM_TCM_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tcm_tcd_sclk_pm_override : RBBM_PM_OVERRIDE1_TCM_TCD_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tcm_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_TCM_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tpc_tpc_sclk_pm_override : RBBM_PM_OVERRIDE1_TPC_TPC_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tpc_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_TPC_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tcf_tca_sclk_pm_override : RBBM_PM_OVERRIDE1_TCF_TCA_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tcf_tcb_sclk_pm_override : RBBM_PM_OVERRIDE1_TCF_TCB_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tcf_tcb_read_sclk_pm_override : RBBM_PM_OVERRIDE1_TCF_TCB_READ_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tp_tp_sclk_pm_override : RBBM_PM_OVERRIDE1_TP_TP_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tp_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_TP_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int cp_g_sclk_pm_override : RBBM_PM_OVERRIDE1_CP_G_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int cp_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_CP_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int cp_g_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_CP_G_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int spi_sclk_pm_override : RBBM_PM_OVERRIDE1_SPI_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int rb_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_RB_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int rb_sclk_pm_override : RBBM_PM_OVERRIDE1_RB_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int mh_mh_sclk_pm_override : RBBM_PM_OVERRIDE1_MH_MH_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int mh_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_MH_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int mh_mmu_sclk_pm_override : RBBM_PM_OVERRIDE1_MH_MMU_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int mh_tcroq_sclk_pm_override : RBBM_PM_OVERRIDE1_MH_TCROQ_SCLK_PM_OVERRIDE_SIZE;
+ } rbbm_pm_override1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_pm_override1_t {
+ unsigned int mh_tcroq_sclk_pm_override : RBBM_PM_OVERRIDE1_MH_TCROQ_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int mh_mmu_sclk_pm_override : RBBM_PM_OVERRIDE1_MH_MMU_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int mh_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_MH_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int mh_mh_sclk_pm_override : RBBM_PM_OVERRIDE1_MH_MH_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int rb_sclk_pm_override : RBBM_PM_OVERRIDE1_RB_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int rb_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_RB_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int spi_sclk_pm_override : RBBM_PM_OVERRIDE1_SPI_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int cp_g_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_CP_G_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int cp_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_CP_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int cp_g_sclk_pm_override : RBBM_PM_OVERRIDE1_CP_G_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tp_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_TP_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tp_tp_sclk_pm_override : RBBM_PM_OVERRIDE1_TP_TP_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tcf_tcb_read_sclk_pm_override : RBBM_PM_OVERRIDE1_TCF_TCB_READ_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tcf_tcb_sclk_pm_override : RBBM_PM_OVERRIDE1_TCF_TCB_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tcf_tca_sclk_pm_override : RBBM_PM_OVERRIDE1_TCF_TCA_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tpc_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_TPC_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tpc_tpc_sclk_pm_override : RBBM_PM_OVERRIDE1_TPC_TPC_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tcm_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_TCM_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tcm_tcd_sclk_pm_override : RBBM_PM_OVERRIDE1_TCM_TCD_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tcm_tcm_sclk_pm_override : RBBM_PM_OVERRIDE1_TCM_TCM_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tcm_tco_sclk_pm_override : RBBM_PM_OVERRIDE1_TCM_TCO_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sx_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_SX_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sx_sclk_pm_override : RBBM_PM_OVERRIDE1_SX_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sq_sq_sclk_pm_override : RBBM_PM_OVERRIDE1_SQ_SQ_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sq_const_mem_sclk_pm_override : RBBM_PM_OVERRIDE1_SQ_CONST_MEM_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sq_reg_fifos_sclk_pm_override : RBBM_PM_OVERRIDE1_SQ_REG_FIFOS_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sq_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_SQ_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sp_v0_sclk_pm_override : RBBM_PM_OVERRIDE1_SP_V0_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sp_top_sclk_pm_override : RBBM_PM_OVERRIDE1_SP_TOP_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sc_sclk_pm_override : RBBM_PM_OVERRIDE1_SC_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sc_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_SC_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int rbbm_ahbclk_pm_override : RBBM_PM_OVERRIDE1_RBBM_AHBCLK_PM_OVERRIDE_SIZE;
+ } rbbm_pm_override1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_pm_override1_t f;
+} rbbm_pm_override1_u;
+
+
+/*
+ * RBBM_PM_OVERRIDE2 struct
+ */
+
+#define RBBM_PM_OVERRIDE2_PA_REG_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE2_PA_PA_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE2_PA_AG_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE2_VGT_REG_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE2_VGT_FIFOS_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE2_VGT_VGT_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE2_DEBUG_PERF_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE2_PERM_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE2_GC_GA_GMEM0_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE2_GC_GA_GMEM1_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE2_GC_GA_GMEM2_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE2_GC_GA_GMEM3_PM_OVERRIDE_SIZE 1
+
+#define RBBM_PM_OVERRIDE2_PA_REG_SCLK_PM_OVERRIDE_SHIFT 0
+#define RBBM_PM_OVERRIDE2_PA_PA_SCLK_PM_OVERRIDE_SHIFT 1
+#define RBBM_PM_OVERRIDE2_PA_AG_SCLK_PM_OVERRIDE_SHIFT 2
+#define RBBM_PM_OVERRIDE2_VGT_REG_SCLK_PM_OVERRIDE_SHIFT 3
+#define RBBM_PM_OVERRIDE2_VGT_FIFOS_SCLK_PM_OVERRIDE_SHIFT 4
+#define RBBM_PM_OVERRIDE2_VGT_VGT_SCLK_PM_OVERRIDE_SHIFT 5
+#define RBBM_PM_OVERRIDE2_DEBUG_PERF_SCLK_PM_OVERRIDE_SHIFT 6
+#define RBBM_PM_OVERRIDE2_PERM_SCLK_PM_OVERRIDE_SHIFT 7
+#define RBBM_PM_OVERRIDE2_GC_GA_GMEM0_PM_OVERRIDE_SHIFT 8
+#define RBBM_PM_OVERRIDE2_GC_GA_GMEM1_PM_OVERRIDE_SHIFT 9
+#define RBBM_PM_OVERRIDE2_GC_GA_GMEM2_PM_OVERRIDE_SHIFT 10
+#define RBBM_PM_OVERRIDE2_GC_GA_GMEM3_PM_OVERRIDE_SHIFT 11
+
+#define RBBM_PM_OVERRIDE2_PA_REG_SCLK_PM_OVERRIDE_MASK 0x00000001
+#define RBBM_PM_OVERRIDE2_PA_PA_SCLK_PM_OVERRIDE_MASK 0x00000002
+#define RBBM_PM_OVERRIDE2_PA_AG_SCLK_PM_OVERRIDE_MASK 0x00000004
+#define RBBM_PM_OVERRIDE2_VGT_REG_SCLK_PM_OVERRIDE_MASK 0x00000008
+#define RBBM_PM_OVERRIDE2_VGT_FIFOS_SCLK_PM_OVERRIDE_MASK 0x00000010
+#define RBBM_PM_OVERRIDE2_VGT_VGT_SCLK_PM_OVERRIDE_MASK 0x00000020
+#define RBBM_PM_OVERRIDE2_DEBUG_PERF_SCLK_PM_OVERRIDE_MASK 0x00000040
+#define RBBM_PM_OVERRIDE2_PERM_SCLK_PM_OVERRIDE_MASK 0x00000080
+#define RBBM_PM_OVERRIDE2_GC_GA_GMEM0_PM_OVERRIDE_MASK 0x00000100
+#define RBBM_PM_OVERRIDE2_GC_GA_GMEM1_PM_OVERRIDE_MASK 0x00000200
+#define RBBM_PM_OVERRIDE2_GC_GA_GMEM2_PM_OVERRIDE_MASK 0x00000400
+#define RBBM_PM_OVERRIDE2_GC_GA_GMEM3_PM_OVERRIDE_MASK 0x00000800
+
+#define RBBM_PM_OVERRIDE2_MASK \
+ (RBBM_PM_OVERRIDE2_PA_REG_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE2_PA_PA_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE2_PA_AG_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE2_VGT_REG_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE2_VGT_FIFOS_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE2_VGT_VGT_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE2_DEBUG_PERF_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE2_PERM_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE2_GC_GA_GMEM0_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE2_GC_GA_GMEM1_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE2_GC_GA_GMEM2_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE2_GC_GA_GMEM3_PM_OVERRIDE_MASK)
+
+#define RBBM_PM_OVERRIDE2(pa_reg_sclk_pm_override, pa_pa_sclk_pm_override, pa_ag_sclk_pm_override, vgt_reg_sclk_pm_override, vgt_fifos_sclk_pm_override, vgt_vgt_sclk_pm_override, debug_perf_sclk_pm_override, perm_sclk_pm_override, gc_ga_gmem0_pm_override, gc_ga_gmem1_pm_override, gc_ga_gmem2_pm_override, gc_ga_gmem3_pm_override) \
+ ((pa_reg_sclk_pm_override << RBBM_PM_OVERRIDE2_PA_REG_SCLK_PM_OVERRIDE_SHIFT) | \
+ (pa_pa_sclk_pm_override << RBBM_PM_OVERRIDE2_PA_PA_SCLK_PM_OVERRIDE_SHIFT) | \
+ (pa_ag_sclk_pm_override << RBBM_PM_OVERRIDE2_PA_AG_SCLK_PM_OVERRIDE_SHIFT) | \
+ (vgt_reg_sclk_pm_override << RBBM_PM_OVERRIDE2_VGT_REG_SCLK_PM_OVERRIDE_SHIFT) | \
+ (vgt_fifos_sclk_pm_override << RBBM_PM_OVERRIDE2_VGT_FIFOS_SCLK_PM_OVERRIDE_SHIFT) | \
+ (vgt_vgt_sclk_pm_override << RBBM_PM_OVERRIDE2_VGT_VGT_SCLK_PM_OVERRIDE_SHIFT) | \
+ (debug_perf_sclk_pm_override << RBBM_PM_OVERRIDE2_DEBUG_PERF_SCLK_PM_OVERRIDE_SHIFT) | \
+ (perm_sclk_pm_override << RBBM_PM_OVERRIDE2_PERM_SCLK_PM_OVERRIDE_SHIFT) | \
+ (gc_ga_gmem0_pm_override << RBBM_PM_OVERRIDE2_GC_GA_GMEM0_PM_OVERRIDE_SHIFT) | \
+ (gc_ga_gmem1_pm_override << RBBM_PM_OVERRIDE2_GC_GA_GMEM1_PM_OVERRIDE_SHIFT) | \
+ (gc_ga_gmem2_pm_override << RBBM_PM_OVERRIDE2_GC_GA_GMEM2_PM_OVERRIDE_SHIFT) | \
+ (gc_ga_gmem3_pm_override << RBBM_PM_OVERRIDE2_GC_GA_GMEM3_PM_OVERRIDE_SHIFT))
+
+#define RBBM_PM_OVERRIDE2_GET_PA_REG_SCLK_PM_OVERRIDE(rbbm_pm_override2) \
+ ((rbbm_pm_override2 & RBBM_PM_OVERRIDE2_PA_REG_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE2_PA_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_GET_PA_PA_SCLK_PM_OVERRIDE(rbbm_pm_override2) \
+ ((rbbm_pm_override2 & RBBM_PM_OVERRIDE2_PA_PA_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE2_PA_PA_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_GET_PA_AG_SCLK_PM_OVERRIDE(rbbm_pm_override2) \
+ ((rbbm_pm_override2 & RBBM_PM_OVERRIDE2_PA_AG_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE2_PA_AG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_GET_VGT_REG_SCLK_PM_OVERRIDE(rbbm_pm_override2) \
+ ((rbbm_pm_override2 & RBBM_PM_OVERRIDE2_VGT_REG_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE2_VGT_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_GET_VGT_FIFOS_SCLK_PM_OVERRIDE(rbbm_pm_override2) \
+ ((rbbm_pm_override2 & RBBM_PM_OVERRIDE2_VGT_FIFOS_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE2_VGT_FIFOS_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_GET_VGT_VGT_SCLK_PM_OVERRIDE(rbbm_pm_override2) \
+ ((rbbm_pm_override2 & RBBM_PM_OVERRIDE2_VGT_VGT_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE2_VGT_VGT_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_GET_DEBUG_PERF_SCLK_PM_OVERRIDE(rbbm_pm_override2) \
+ ((rbbm_pm_override2 & RBBM_PM_OVERRIDE2_DEBUG_PERF_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE2_DEBUG_PERF_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_GET_PERM_SCLK_PM_OVERRIDE(rbbm_pm_override2) \
+ ((rbbm_pm_override2 & RBBM_PM_OVERRIDE2_PERM_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE2_PERM_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_GET_GC_GA_GMEM0_PM_OVERRIDE(rbbm_pm_override2) \
+ ((rbbm_pm_override2 & RBBM_PM_OVERRIDE2_GC_GA_GMEM0_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE2_GC_GA_GMEM0_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_GET_GC_GA_GMEM1_PM_OVERRIDE(rbbm_pm_override2) \
+ ((rbbm_pm_override2 & RBBM_PM_OVERRIDE2_GC_GA_GMEM1_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE2_GC_GA_GMEM1_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_GET_GC_GA_GMEM2_PM_OVERRIDE(rbbm_pm_override2) \
+ ((rbbm_pm_override2 & RBBM_PM_OVERRIDE2_GC_GA_GMEM2_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE2_GC_GA_GMEM2_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_GET_GC_GA_GMEM3_PM_OVERRIDE(rbbm_pm_override2) \
+ ((rbbm_pm_override2 & RBBM_PM_OVERRIDE2_GC_GA_GMEM3_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE2_GC_GA_GMEM3_PM_OVERRIDE_SHIFT)
+
+#define RBBM_PM_OVERRIDE2_SET_PA_REG_SCLK_PM_OVERRIDE(rbbm_pm_override2_reg, pa_reg_sclk_pm_override) \
+ rbbm_pm_override2_reg = (rbbm_pm_override2_reg & ~RBBM_PM_OVERRIDE2_PA_REG_SCLK_PM_OVERRIDE_MASK) | (pa_reg_sclk_pm_override << RBBM_PM_OVERRIDE2_PA_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_SET_PA_PA_SCLK_PM_OVERRIDE(rbbm_pm_override2_reg, pa_pa_sclk_pm_override) \
+ rbbm_pm_override2_reg = (rbbm_pm_override2_reg & ~RBBM_PM_OVERRIDE2_PA_PA_SCLK_PM_OVERRIDE_MASK) | (pa_pa_sclk_pm_override << RBBM_PM_OVERRIDE2_PA_PA_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_SET_PA_AG_SCLK_PM_OVERRIDE(rbbm_pm_override2_reg, pa_ag_sclk_pm_override) \
+ rbbm_pm_override2_reg = (rbbm_pm_override2_reg & ~RBBM_PM_OVERRIDE2_PA_AG_SCLK_PM_OVERRIDE_MASK) | (pa_ag_sclk_pm_override << RBBM_PM_OVERRIDE2_PA_AG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_SET_VGT_REG_SCLK_PM_OVERRIDE(rbbm_pm_override2_reg, vgt_reg_sclk_pm_override) \
+ rbbm_pm_override2_reg = (rbbm_pm_override2_reg & ~RBBM_PM_OVERRIDE2_VGT_REG_SCLK_PM_OVERRIDE_MASK) | (vgt_reg_sclk_pm_override << RBBM_PM_OVERRIDE2_VGT_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_SET_VGT_FIFOS_SCLK_PM_OVERRIDE(rbbm_pm_override2_reg, vgt_fifos_sclk_pm_override) \
+ rbbm_pm_override2_reg = (rbbm_pm_override2_reg & ~RBBM_PM_OVERRIDE2_VGT_FIFOS_SCLK_PM_OVERRIDE_MASK) | (vgt_fifos_sclk_pm_override << RBBM_PM_OVERRIDE2_VGT_FIFOS_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_SET_VGT_VGT_SCLK_PM_OVERRIDE(rbbm_pm_override2_reg, vgt_vgt_sclk_pm_override) \
+ rbbm_pm_override2_reg = (rbbm_pm_override2_reg & ~RBBM_PM_OVERRIDE2_VGT_VGT_SCLK_PM_OVERRIDE_MASK) | (vgt_vgt_sclk_pm_override << RBBM_PM_OVERRIDE2_VGT_VGT_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_SET_DEBUG_PERF_SCLK_PM_OVERRIDE(rbbm_pm_override2_reg, debug_perf_sclk_pm_override) \
+ rbbm_pm_override2_reg = (rbbm_pm_override2_reg & ~RBBM_PM_OVERRIDE2_DEBUG_PERF_SCLK_PM_OVERRIDE_MASK) | (debug_perf_sclk_pm_override << RBBM_PM_OVERRIDE2_DEBUG_PERF_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_SET_PERM_SCLK_PM_OVERRIDE(rbbm_pm_override2_reg, perm_sclk_pm_override) \
+ rbbm_pm_override2_reg = (rbbm_pm_override2_reg & ~RBBM_PM_OVERRIDE2_PERM_SCLK_PM_OVERRIDE_MASK) | (perm_sclk_pm_override << RBBM_PM_OVERRIDE2_PERM_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_SET_GC_GA_GMEM0_PM_OVERRIDE(rbbm_pm_override2_reg, gc_ga_gmem0_pm_override) \
+ rbbm_pm_override2_reg = (rbbm_pm_override2_reg & ~RBBM_PM_OVERRIDE2_GC_GA_GMEM0_PM_OVERRIDE_MASK) | (gc_ga_gmem0_pm_override << RBBM_PM_OVERRIDE2_GC_GA_GMEM0_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_SET_GC_GA_GMEM1_PM_OVERRIDE(rbbm_pm_override2_reg, gc_ga_gmem1_pm_override) \
+ rbbm_pm_override2_reg = (rbbm_pm_override2_reg & ~RBBM_PM_OVERRIDE2_GC_GA_GMEM1_PM_OVERRIDE_MASK) | (gc_ga_gmem1_pm_override << RBBM_PM_OVERRIDE2_GC_GA_GMEM1_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_SET_GC_GA_GMEM2_PM_OVERRIDE(rbbm_pm_override2_reg, gc_ga_gmem2_pm_override) \
+ rbbm_pm_override2_reg = (rbbm_pm_override2_reg & ~RBBM_PM_OVERRIDE2_GC_GA_GMEM2_PM_OVERRIDE_MASK) | (gc_ga_gmem2_pm_override << RBBM_PM_OVERRIDE2_GC_GA_GMEM2_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_SET_GC_GA_GMEM3_PM_OVERRIDE(rbbm_pm_override2_reg, gc_ga_gmem3_pm_override) \
+ rbbm_pm_override2_reg = (rbbm_pm_override2_reg & ~RBBM_PM_OVERRIDE2_GC_GA_GMEM3_PM_OVERRIDE_MASK) | (gc_ga_gmem3_pm_override << RBBM_PM_OVERRIDE2_GC_GA_GMEM3_PM_OVERRIDE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_pm_override2_t {
+ unsigned int pa_reg_sclk_pm_override : RBBM_PM_OVERRIDE2_PA_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int pa_pa_sclk_pm_override : RBBM_PM_OVERRIDE2_PA_PA_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int pa_ag_sclk_pm_override : RBBM_PM_OVERRIDE2_PA_AG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int vgt_reg_sclk_pm_override : RBBM_PM_OVERRIDE2_VGT_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int vgt_fifos_sclk_pm_override : RBBM_PM_OVERRIDE2_VGT_FIFOS_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int vgt_vgt_sclk_pm_override : RBBM_PM_OVERRIDE2_VGT_VGT_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int debug_perf_sclk_pm_override : RBBM_PM_OVERRIDE2_DEBUG_PERF_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int perm_sclk_pm_override : RBBM_PM_OVERRIDE2_PERM_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int gc_ga_gmem0_pm_override : RBBM_PM_OVERRIDE2_GC_GA_GMEM0_PM_OVERRIDE_SIZE;
+ unsigned int gc_ga_gmem1_pm_override : RBBM_PM_OVERRIDE2_GC_GA_GMEM1_PM_OVERRIDE_SIZE;
+ unsigned int gc_ga_gmem2_pm_override : RBBM_PM_OVERRIDE2_GC_GA_GMEM2_PM_OVERRIDE_SIZE;
+ unsigned int gc_ga_gmem3_pm_override : RBBM_PM_OVERRIDE2_GC_GA_GMEM3_PM_OVERRIDE_SIZE;
+ unsigned int : 20;
+ } rbbm_pm_override2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_pm_override2_t {
+ unsigned int : 20;
+ unsigned int gc_ga_gmem3_pm_override : RBBM_PM_OVERRIDE2_GC_GA_GMEM3_PM_OVERRIDE_SIZE;
+ unsigned int gc_ga_gmem2_pm_override : RBBM_PM_OVERRIDE2_GC_GA_GMEM2_PM_OVERRIDE_SIZE;
+ unsigned int gc_ga_gmem1_pm_override : RBBM_PM_OVERRIDE2_GC_GA_GMEM1_PM_OVERRIDE_SIZE;
+ unsigned int gc_ga_gmem0_pm_override : RBBM_PM_OVERRIDE2_GC_GA_GMEM0_PM_OVERRIDE_SIZE;
+ unsigned int perm_sclk_pm_override : RBBM_PM_OVERRIDE2_PERM_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int debug_perf_sclk_pm_override : RBBM_PM_OVERRIDE2_DEBUG_PERF_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int vgt_vgt_sclk_pm_override : RBBM_PM_OVERRIDE2_VGT_VGT_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int vgt_fifos_sclk_pm_override : RBBM_PM_OVERRIDE2_VGT_FIFOS_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int vgt_reg_sclk_pm_override : RBBM_PM_OVERRIDE2_VGT_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int pa_ag_sclk_pm_override : RBBM_PM_OVERRIDE2_PA_AG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int pa_pa_sclk_pm_override : RBBM_PM_OVERRIDE2_PA_PA_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int pa_reg_sclk_pm_override : RBBM_PM_OVERRIDE2_PA_REG_SCLK_PM_OVERRIDE_SIZE;
+ } rbbm_pm_override2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_pm_override2_t f;
+} rbbm_pm_override2_u;
+
+
+/*
+ * GC_SYS_IDLE struct
+ */
+
+#define GC_SYS_IDLE_GC_SYS_IDLE_DELAY_SIZE 16
+#define GC_SYS_IDLE_GC_SYS_WAIT_DMI_MASK_SIZE 6
+#define GC_SYS_IDLE_GC_SYS_URGENT_RAMP_SIZE 1
+#define GC_SYS_IDLE_GC_SYS_WAIT_DMI_SIZE 1
+#define GC_SYS_IDLE_GC_SYS_URGENT_RAMP_OVERRIDE_SIZE 1
+#define GC_SYS_IDLE_GC_SYS_WAIT_DMI_OVERRIDE_SIZE 1
+#define GC_SYS_IDLE_GC_SYS_IDLE_OVERRIDE_SIZE 1
+
+#define GC_SYS_IDLE_GC_SYS_IDLE_DELAY_SHIFT 0
+#define GC_SYS_IDLE_GC_SYS_WAIT_DMI_MASK_SHIFT 16
+#define GC_SYS_IDLE_GC_SYS_URGENT_RAMP_SHIFT 24
+#define GC_SYS_IDLE_GC_SYS_WAIT_DMI_SHIFT 25
+#define GC_SYS_IDLE_GC_SYS_URGENT_RAMP_OVERRIDE_SHIFT 29
+#define GC_SYS_IDLE_GC_SYS_WAIT_DMI_OVERRIDE_SHIFT 30
+#define GC_SYS_IDLE_GC_SYS_IDLE_OVERRIDE_SHIFT 31
+
+#define GC_SYS_IDLE_GC_SYS_IDLE_DELAY_MASK 0x0000ffff
+#define GC_SYS_IDLE_GC_SYS_WAIT_DMI_MASK_MASK 0x003f0000
+#define GC_SYS_IDLE_GC_SYS_URGENT_RAMP_MASK 0x01000000
+#define GC_SYS_IDLE_GC_SYS_WAIT_DMI_MASK 0x02000000
+#define GC_SYS_IDLE_GC_SYS_URGENT_RAMP_OVERRIDE_MASK 0x20000000
+#define GC_SYS_IDLE_GC_SYS_WAIT_DMI_OVERRIDE_MASK 0x40000000
+#define GC_SYS_IDLE_GC_SYS_IDLE_OVERRIDE_MASK 0x80000000
+
+#define GC_SYS_IDLE_MASK \
+ (GC_SYS_IDLE_GC_SYS_IDLE_DELAY_MASK | \
+ GC_SYS_IDLE_GC_SYS_WAIT_DMI_MASK_MASK | \
+ GC_SYS_IDLE_GC_SYS_URGENT_RAMP_MASK | \
+ GC_SYS_IDLE_GC_SYS_WAIT_DMI_MASK | \
+ GC_SYS_IDLE_GC_SYS_URGENT_RAMP_OVERRIDE_MASK | \
+ GC_SYS_IDLE_GC_SYS_WAIT_DMI_OVERRIDE_MASK | \
+ GC_SYS_IDLE_GC_SYS_IDLE_OVERRIDE_MASK)
+
+#define GC_SYS_IDLE(gc_sys_idle_delay, gc_sys_wait_dmi_mask, gc_sys_urgent_ramp, gc_sys_wait_dmi, gc_sys_urgent_ramp_override, gc_sys_wait_dmi_override, gc_sys_idle_override) \
+ ((gc_sys_idle_delay << GC_SYS_IDLE_GC_SYS_IDLE_DELAY_SHIFT) | \
+ (gc_sys_wait_dmi_mask << GC_SYS_IDLE_GC_SYS_WAIT_DMI_MASK_SHIFT) | \
+ (gc_sys_urgent_ramp << GC_SYS_IDLE_GC_SYS_URGENT_RAMP_SHIFT) | \
+ (gc_sys_wait_dmi << GC_SYS_IDLE_GC_SYS_WAIT_DMI_SHIFT) | \
+ (gc_sys_urgent_ramp_override << GC_SYS_IDLE_GC_SYS_URGENT_RAMP_OVERRIDE_SHIFT) | \
+ (gc_sys_wait_dmi_override << GC_SYS_IDLE_GC_SYS_WAIT_DMI_OVERRIDE_SHIFT) | \
+ (gc_sys_idle_override << GC_SYS_IDLE_GC_SYS_IDLE_OVERRIDE_SHIFT))
+
+#define GC_SYS_IDLE_GET_GC_SYS_IDLE_DELAY(gc_sys_idle) \
+ ((gc_sys_idle & GC_SYS_IDLE_GC_SYS_IDLE_DELAY_MASK) >> GC_SYS_IDLE_GC_SYS_IDLE_DELAY_SHIFT)
+#define GC_SYS_IDLE_GET_GC_SYS_WAIT_DMI_MASK(gc_sys_idle) \
+ ((gc_sys_idle & GC_SYS_IDLE_GC_SYS_WAIT_DMI_MASK_MASK) >> GC_SYS_IDLE_GC_SYS_WAIT_DMI_MASK_SHIFT)
+#define GC_SYS_IDLE_GET_GC_SYS_URGENT_RAMP(gc_sys_idle) \
+ ((gc_sys_idle & GC_SYS_IDLE_GC_SYS_URGENT_RAMP_MASK) >> GC_SYS_IDLE_GC_SYS_URGENT_RAMP_SHIFT)
+#define GC_SYS_IDLE_GET_GC_SYS_WAIT_DMI(gc_sys_idle) \
+ ((gc_sys_idle & GC_SYS_IDLE_GC_SYS_WAIT_DMI_MASK) >> GC_SYS_IDLE_GC_SYS_WAIT_DMI_SHIFT)
+#define GC_SYS_IDLE_GET_GC_SYS_URGENT_RAMP_OVERRIDE(gc_sys_idle) \
+ ((gc_sys_idle & GC_SYS_IDLE_GC_SYS_URGENT_RAMP_OVERRIDE_MASK) >> GC_SYS_IDLE_GC_SYS_URGENT_RAMP_OVERRIDE_SHIFT)
+#define GC_SYS_IDLE_GET_GC_SYS_WAIT_DMI_OVERRIDE(gc_sys_idle) \
+ ((gc_sys_idle & GC_SYS_IDLE_GC_SYS_WAIT_DMI_OVERRIDE_MASK) >> GC_SYS_IDLE_GC_SYS_WAIT_DMI_OVERRIDE_SHIFT)
+#define GC_SYS_IDLE_GET_GC_SYS_IDLE_OVERRIDE(gc_sys_idle) \
+ ((gc_sys_idle & GC_SYS_IDLE_GC_SYS_IDLE_OVERRIDE_MASK) >> GC_SYS_IDLE_GC_SYS_IDLE_OVERRIDE_SHIFT)
+
+#define GC_SYS_IDLE_SET_GC_SYS_IDLE_DELAY(gc_sys_idle_reg, gc_sys_idle_delay) \
+ gc_sys_idle_reg = (gc_sys_idle_reg & ~GC_SYS_IDLE_GC_SYS_IDLE_DELAY_MASK) | (gc_sys_idle_delay << GC_SYS_IDLE_GC_SYS_IDLE_DELAY_SHIFT)
+#define GC_SYS_IDLE_SET_GC_SYS_WAIT_DMI_MASK(gc_sys_idle_reg, gc_sys_wait_dmi_mask) \
+ gc_sys_idle_reg = (gc_sys_idle_reg & ~GC_SYS_IDLE_GC_SYS_WAIT_DMI_MASK_MASK) | (gc_sys_wait_dmi_mask << GC_SYS_IDLE_GC_SYS_WAIT_DMI_MASK_SHIFT)
+#define GC_SYS_IDLE_SET_GC_SYS_URGENT_RAMP(gc_sys_idle_reg, gc_sys_urgent_ramp) \
+ gc_sys_idle_reg = (gc_sys_idle_reg & ~GC_SYS_IDLE_GC_SYS_URGENT_RAMP_MASK) | (gc_sys_urgent_ramp << GC_SYS_IDLE_GC_SYS_URGENT_RAMP_SHIFT)
+#define GC_SYS_IDLE_SET_GC_SYS_WAIT_DMI(gc_sys_idle_reg, gc_sys_wait_dmi) \
+ gc_sys_idle_reg = (gc_sys_idle_reg & ~GC_SYS_IDLE_GC_SYS_WAIT_DMI_MASK) | (gc_sys_wait_dmi << GC_SYS_IDLE_GC_SYS_WAIT_DMI_SHIFT)
+#define GC_SYS_IDLE_SET_GC_SYS_URGENT_RAMP_OVERRIDE(gc_sys_idle_reg, gc_sys_urgent_ramp_override) \
+ gc_sys_idle_reg = (gc_sys_idle_reg & ~GC_SYS_IDLE_GC_SYS_URGENT_RAMP_OVERRIDE_MASK) | (gc_sys_urgent_ramp_override << GC_SYS_IDLE_GC_SYS_URGENT_RAMP_OVERRIDE_SHIFT)
+#define GC_SYS_IDLE_SET_GC_SYS_WAIT_DMI_OVERRIDE(gc_sys_idle_reg, gc_sys_wait_dmi_override) \
+ gc_sys_idle_reg = (gc_sys_idle_reg & ~GC_SYS_IDLE_GC_SYS_WAIT_DMI_OVERRIDE_MASK) | (gc_sys_wait_dmi_override << GC_SYS_IDLE_GC_SYS_WAIT_DMI_OVERRIDE_SHIFT)
+#define GC_SYS_IDLE_SET_GC_SYS_IDLE_OVERRIDE(gc_sys_idle_reg, gc_sys_idle_override) \
+ gc_sys_idle_reg = (gc_sys_idle_reg & ~GC_SYS_IDLE_GC_SYS_IDLE_OVERRIDE_MASK) | (gc_sys_idle_override << GC_SYS_IDLE_GC_SYS_IDLE_OVERRIDE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _gc_sys_idle_t {
+ unsigned int gc_sys_idle_delay : GC_SYS_IDLE_GC_SYS_IDLE_DELAY_SIZE;
+ unsigned int gc_sys_wait_dmi_mask : GC_SYS_IDLE_GC_SYS_WAIT_DMI_MASK_SIZE;
+ unsigned int : 2;
+ unsigned int gc_sys_urgent_ramp : GC_SYS_IDLE_GC_SYS_URGENT_RAMP_SIZE;
+ unsigned int gc_sys_wait_dmi : GC_SYS_IDLE_GC_SYS_WAIT_DMI_SIZE;
+ unsigned int : 3;
+ unsigned int gc_sys_urgent_ramp_override : GC_SYS_IDLE_GC_SYS_URGENT_RAMP_OVERRIDE_SIZE;
+ unsigned int gc_sys_wait_dmi_override : GC_SYS_IDLE_GC_SYS_WAIT_DMI_OVERRIDE_SIZE;
+ unsigned int gc_sys_idle_override : GC_SYS_IDLE_GC_SYS_IDLE_OVERRIDE_SIZE;
+ } gc_sys_idle_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _gc_sys_idle_t {
+ unsigned int gc_sys_idle_override : GC_SYS_IDLE_GC_SYS_IDLE_OVERRIDE_SIZE;
+ unsigned int gc_sys_wait_dmi_override : GC_SYS_IDLE_GC_SYS_WAIT_DMI_OVERRIDE_SIZE;
+ unsigned int gc_sys_urgent_ramp_override : GC_SYS_IDLE_GC_SYS_URGENT_RAMP_OVERRIDE_SIZE;
+ unsigned int : 3;
+ unsigned int gc_sys_wait_dmi : GC_SYS_IDLE_GC_SYS_WAIT_DMI_SIZE;
+ unsigned int gc_sys_urgent_ramp : GC_SYS_IDLE_GC_SYS_URGENT_RAMP_SIZE;
+ unsigned int : 2;
+ unsigned int gc_sys_wait_dmi_mask : GC_SYS_IDLE_GC_SYS_WAIT_DMI_MASK_SIZE;
+ unsigned int gc_sys_idle_delay : GC_SYS_IDLE_GC_SYS_IDLE_DELAY_SIZE;
+ } gc_sys_idle_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ gc_sys_idle_t f;
+} gc_sys_idle_u;
+
+
+/*
+ * NQWAIT_UNTIL struct
+ */
+
+#define NQWAIT_UNTIL_WAIT_GUI_IDLE_SIZE 1
+
+#define NQWAIT_UNTIL_WAIT_GUI_IDLE_SHIFT 0
+
+#define NQWAIT_UNTIL_WAIT_GUI_IDLE_MASK 0x00000001
+
+#define NQWAIT_UNTIL_MASK \
+ (NQWAIT_UNTIL_WAIT_GUI_IDLE_MASK)
+
+#define NQWAIT_UNTIL(wait_gui_idle) \
+ ((wait_gui_idle << NQWAIT_UNTIL_WAIT_GUI_IDLE_SHIFT))
+
+#define NQWAIT_UNTIL_GET_WAIT_GUI_IDLE(nqwait_until) \
+ ((nqwait_until & NQWAIT_UNTIL_WAIT_GUI_IDLE_MASK) >> NQWAIT_UNTIL_WAIT_GUI_IDLE_SHIFT)
+
+#define NQWAIT_UNTIL_SET_WAIT_GUI_IDLE(nqwait_until_reg, wait_gui_idle) \
+ nqwait_until_reg = (nqwait_until_reg & ~NQWAIT_UNTIL_WAIT_GUI_IDLE_MASK) | (wait_gui_idle << NQWAIT_UNTIL_WAIT_GUI_IDLE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _nqwait_until_t {
+ unsigned int wait_gui_idle : NQWAIT_UNTIL_WAIT_GUI_IDLE_SIZE;
+ unsigned int : 31;
+ } nqwait_until_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _nqwait_until_t {
+ unsigned int : 31;
+ unsigned int wait_gui_idle : NQWAIT_UNTIL_WAIT_GUI_IDLE_SIZE;
+ } nqwait_until_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ nqwait_until_t f;
+} nqwait_until_u;
+
+
+/*
+ * RBBM_DEBUG_OUT struct
+ */
+
+#define RBBM_DEBUG_OUT_DEBUG_BUS_OUT_SIZE 32
+
+#define RBBM_DEBUG_OUT_DEBUG_BUS_OUT_SHIFT 0
+
+#define RBBM_DEBUG_OUT_DEBUG_BUS_OUT_MASK 0xffffffff
+
+#define RBBM_DEBUG_OUT_MASK \
+ (RBBM_DEBUG_OUT_DEBUG_BUS_OUT_MASK)
+
+#define RBBM_DEBUG_OUT(debug_bus_out) \
+ ((debug_bus_out << RBBM_DEBUG_OUT_DEBUG_BUS_OUT_SHIFT))
+
+#define RBBM_DEBUG_OUT_GET_DEBUG_BUS_OUT(rbbm_debug_out) \
+ ((rbbm_debug_out & RBBM_DEBUG_OUT_DEBUG_BUS_OUT_MASK) >> RBBM_DEBUG_OUT_DEBUG_BUS_OUT_SHIFT)
+
+#define RBBM_DEBUG_OUT_SET_DEBUG_BUS_OUT(rbbm_debug_out_reg, debug_bus_out) \
+ rbbm_debug_out_reg = (rbbm_debug_out_reg & ~RBBM_DEBUG_OUT_DEBUG_BUS_OUT_MASK) | (debug_bus_out << RBBM_DEBUG_OUT_DEBUG_BUS_OUT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_debug_out_t {
+ unsigned int debug_bus_out : RBBM_DEBUG_OUT_DEBUG_BUS_OUT_SIZE;
+ } rbbm_debug_out_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_debug_out_t {
+ unsigned int debug_bus_out : RBBM_DEBUG_OUT_DEBUG_BUS_OUT_SIZE;
+ } rbbm_debug_out_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_debug_out_t f;
+} rbbm_debug_out_u;
+
+
+/*
+ * RBBM_DEBUG_CNTL struct
+ */
+
+#define RBBM_DEBUG_CNTL_SUB_BLOCK_ADDR_SIZE 6
+#define RBBM_DEBUG_CNTL_SUB_BLOCK_SEL_SIZE 4
+#define RBBM_DEBUG_CNTL_SW_ENABLE_SIZE 1
+#define RBBM_DEBUG_CNTL_GPIO_SUB_BLOCK_ADDR_SIZE 6
+#define RBBM_DEBUG_CNTL_GPIO_SUB_BLOCK_SEL_SIZE 4
+#define RBBM_DEBUG_CNTL_GPIO_BYTE_LANE_ENB_SIZE 4
+
+#define RBBM_DEBUG_CNTL_SUB_BLOCK_ADDR_SHIFT 0
+#define RBBM_DEBUG_CNTL_SUB_BLOCK_SEL_SHIFT 8
+#define RBBM_DEBUG_CNTL_SW_ENABLE_SHIFT 12
+#define RBBM_DEBUG_CNTL_GPIO_SUB_BLOCK_ADDR_SHIFT 16
+#define RBBM_DEBUG_CNTL_GPIO_SUB_BLOCK_SEL_SHIFT 24
+#define RBBM_DEBUG_CNTL_GPIO_BYTE_LANE_ENB_SHIFT 28
+
+#define RBBM_DEBUG_CNTL_SUB_BLOCK_ADDR_MASK 0x0000003f
+#define RBBM_DEBUG_CNTL_SUB_BLOCK_SEL_MASK 0x00000f00
+#define RBBM_DEBUG_CNTL_SW_ENABLE_MASK 0x00001000
+#define RBBM_DEBUG_CNTL_GPIO_SUB_BLOCK_ADDR_MASK 0x003f0000
+#define RBBM_DEBUG_CNTL_GPIO_SUB_BLOCK_SEL_MASK 0x0f000000
+#define RBBM_DEBUG_CNTL_GPIO_BYTE_LANE_ENB_MASK 0xf0000000
+
+#define RBBM_DEBUG_CNTL_MASK \
+ (RBBM_DEBUG_CNTL_SUB_BLOCK_ADDR_MASK | \
+ RBBM_DEBUG_CNTL_SUB_BLOCK_SEL_MASK | \
+ RBBM_DEBUG_CNTL_SW_ENABLE_MASK | \
+ RBBM_DEBUG_CNTL_GPIO_SUB_BLOCK_ADDR_MASK | \
+ RBBM_DEBUG_CNTL_GPIO_SUB_BLOCK_SEL_MASK | \
+ RBBM_DEBUG_CNTL_GPIO_BYTE_LANE_ENB_MASK)
+
+#define RBBM_DEBUG_CNTL(sub_block_addr, sub_block_sel, sw_enable, gpio_sub_block_addr, gpio_sub_block_sel, gpio_byte_lane_enb) \
+ ((sub_block_addr << RBBM_DEBUG_CNTL_SUB_BLOCK_ADDR_SHIFT) | \
+ (sub_block_sel << RBBM_DEBUG_CNTL_SUB_BLOCK_SEL_SHIFT) | \
+ (sw_enable << RBBM_DEBUG_CNTL_SW_ENABLE_SHIFT) | \
+ (gpio_sub_block_addr << RBBM_DEBUG_CNTL_GPIO_SUB_BLOCK_ADDR_SHIFT) | \
+ (gpio_sub_block_sel << RBBM_DEBUG_CNTL_GPIO_SUB_BLOCK_SEL_SHIFT) | \
+ (gpio_byte_lane_enb << RBBM_DEBUG_CNTL_GPIO_BYTE_LANE_ENB_SHIFT))
+
+#define RBBM_DEBUG_CNTL_GET_SUB_BLOCK_ADDR(rbbm_debug_cntl) \
+ ((rbbm_debug_cntl & RBBM_DEBUG_CNTL_SUB_BLOCK_ADDR_MASK) >> RBBM_DEBUG_CNTL_SUB_BLOCK_ADDR_SHIFT)
+#define RBBM_DEBUG_CNTL_GET_SUB_BLOCK_SEL(rbbm_debug_cntl) \
+ ((rbbm_debug_cntl & RBBM_DEBUG_CNTL_SUB_BLOCK_SEL_MASK) >> RBBM_DEBUG_CNTL_SUB_BLOCK_SEL_SHIFT)
+#define RBBM_DEBUG_CNTL_GET_SW_ENABLE(rbbm_debug_cntl) \
+ ((rbbm_debug_cntl & RBBM_DEBUG_CNTL_SW_ENABLE_MASK) >> RBBM_DEBUG_CNTL_SW_ENABLE_SHIFT)
+#define RBBM_DEBUG_CNTL_GET_GPIO_SUB_BLOCK_ADDR(rbbm_debug_cntl) \
+ ((rbbm_debug_cntl & RBBM_DEBUG_CNTL_GPIO_SUB_BLOCK_ADDR_MASK) >> RBBM_DEBUG_CNTL_GPIO_SUB_BLOCK_ADDR_SHIFT)
+#define RBBM_DEBUG_CNTL_GET_GPIO_SUB_BLOCK_SEL(rbbm_debug_cntl) \
+ ((rbbm_debug_cntl & RBBM_DEBUG_CNTL_GPIO_SUB_BLOCK_SEL_MASK) >> RBBM_DEBUG_CNTL_GPIO_SUB_BLOCK_SEL_SHIFT)
+#define RBBM_DEBUG_CNTL_GET_GPIO_BYTE_LANE_ENB(rbbm_debug_cntl) \
+ ((rbbm_debug_cntl & RBBM_DEBUG_CNTL_GPIO_BYTE_LANE_ENB_MASK) >> RBBM_DEBUG_CNTL_GPIO_BYTE_LANE_ENB_SHIFT)
+
+#define RBBM_DEBUG_CNTL_SET_SUB_BLOCK_ADDR(rbbm_debug_cntl_reg, sub_block_addr) \
+ rbbm_debug_cntl_reg = (rbbm_debug_cntl_reg & ~RBBM_DEBUG_CNTL_SUB_BLOCK_ADDR_MASK) | (sub_block_addr << RBBM_DEBUG_CNTL_SUB_BLOCK_ADDR_SHIFT)
+#define RBBM_DEBUG_CNTL_SET_SUB_BLOCK_SEL(rbbm_debug_cntl_reg, sub_block_sel) \
+ rbbm_debug_cntl_reg = (rbbm_debug_cntl_reg & ~RBBM_DEBUG_CNTL_SUB_BLOCK_SEL_MASK) | (sub_block_sel << RBBM_DEBUG_CNTL_SUB_BLOCK_SEL_SHIFT)
+#define RBBM_DEBUG_CNTL_SET_SW_ENABLE(rbbm_debug_cntl_reg, sw_enable) \
+ rbbm_debug_cntl_reg = (rbbm_debug_cntl_reg & ~RBBM_DEBUG_CNTL_SW_ENABLE_MASK) | (sw_enable << RBBM_DEBUG_CNTL_SW_ENABLE_SHIFT)
+#define RBBM_DEBUG_CNTL_SET_GPIO_SUB_BLOCK_ADDR(rbbm_debug_cntl_reg, gpio_sub_block_addr) \
+ rbbm_debug_cntl_reg = (rbbm_debug_cntl_reg & ~RBBM_DEBUG_CNTL_GPIO_SUB_BLOCK_ADDR_MASK) | (gpio_sub_block_addr << RBBM_DEBUG_CNTL_GPIO_SUB_BLOCK_ADDR_SHIFT)
+#define RBBM_DEBUG_CNTL_SET_GPIO_SUB_BLOCK_SEL(rbbm_debug_cntl_reg, gpio_sub_block_sel) \
+ rbbm_debug_cntl_reg = (rbbm_debug_cntl_reg & ~RBBM_DEBUG_CNTL_GPIO_SUB_BLOCK_SEL_MASK) | (gpio_sub_block_sel << RBBM_DEBUG_CNTL_GPIO_SUB_BLOCK_SEL_SHIFT)
+#define RBBM_DEBUG_CNTL_SET_GPIO_BYTE_LANE_ENB(rbbm_debug_cntl_reg, gpio_byte_lane_enb) \
+ rbbm_debug_cntl_reg = (rbbm_debug_cntl_reg & ~RBBM_DEBUG_CNTL_GPIO_BYTE_LANE_ENB_MASK) | (gpio_byte_lane_enb << RBBM_DEBUG_CNTL_GPIO_BYTE_LANE_ENB_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_debug_cntl_t {
+ unsigned int sub_block_addr : RBBM_DEBUG_CNTL_SUB_BLOCK_ADDR_SIZE;
+ unsigned int : 2;
+ unsigned int sub_block_sel : RBBM_DEBUG_CNTL_SUB_BLOCK_SEL_SIZE;
+ unsigned int sw_enable : RBBM_DEBUG_CNTL_SW_ENABLE_SIZE;
+ unsigned int : 3;
+ unsigned int gpio_sub_block_addr : RBBM_DEBUG_CNTL_GPIO_SUB_BLOCK_ADDR_SIZE;
+ unsigned int : 2;
+ unsigned int gpio_sub_block_sel : RBBM_DEBUG_CNTL_GPIO_SUB_BLOCK_SEL_SIZE;
+ unsigned int gpio_byte_lane_enb : RBBM_DEBUG_CNTL_GPIO_BYTE_LANE_ENB_SIZE;
+ } rbbm_debug_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_debug_cntl_t {
+ unsigned int gpio_byte_lane_enb : RBBM_DEBUG_CNTL_GPIO_BYTE_LANE_ENB_SIZE;
+ unsigned int gpio_sub_block_sel : RBBM_DEBUG_CNTL_GPIO_SUB_BLOCK_SEL_SIZE;
+ unsigned int : 2;
+ unsigned int gpio_sub_block_addr : RBBM_DEBUG_CNTL_GPIO_SUB_BLOCK_ADDR_SIZE;
+ unsigned int : 3;
+ unsigned int sw_enable : RBBM_DEBUG_CNTL_SW_ENABLE_SIZE;
+ unsigned int sub_block_sel : RBBM_DEBUG_CNTL_SUB_BLOCK_SEL_SIZE;
+ unsigned int : 2;
+ unsigned int sub_block_addr : RBBM_DEBUG_CNTL_SUB_BLOCK_ADDR_SIZE;
+ } rbbm_debug_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_debug_cntl_t f;
+} rbbm_debug_cntl_u;
+
+
+/*
+ * RBBM_DEBUG struct
+ */
+
+#define RBBM_DEBUG_IGNORE_RTR_SIZE 1
+#define RBBM_DEBUG_IGNORE_CP_SCHED_WU_SIZE 1
+#define RBBM_DEBUG_IGNORE_CP_SCHED_ISYNC_SIZE 1
+#define RBBM_DEBUG_IGNORE_CP_SCHED_NQ_HI_SIZE 1
+#define RBBM_DEBUG_HYSTERESIS_NRT_GUI_ACTIVE_SIZE 4
+#define RBBM_DEBUG_IGNORE_RTR_FOR_HI_SIZE 1
+#define RBBM_DEBUG_IGNORE_CP_RBBM_NRTRTR_FOR_HI_SIZE 1
+#define RBBM_DEBUG_IGNORE_VGT_RBBM_NRTRTR_FOR_HI_SIZE 1
+#define RBBM_DEBUG_IGNORE_SQ_RBBM_NRTRTR_FOR_HI_SIZE 1
+#define RBBM_DEBUG_CP_RBBM_NRTRTR_SIZE 1
+#define RBBM_DEBUG_VGT_RBBM_NRTRTR_SIZE 1
+#define RBBM_DEBUG_SQ_RBBM_NRTRTR_SIZE 1
+#define RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_FOR_HI_SIZE 1
+#define RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_SIZE 1
+#define RBBM_DEBUG_IGNORE_SX_RBBM_BUSY_SIZE 1
+
+#define RBBM_DEBUG_IGNORE_RTR_SHIFT 1
+#define RBBM_DEBUG_IGNORE_CP_SCHED_WU_SHIFT 2
+#define RBBM_DEBUG_IGNORE_CP_SCHED_ISYNC_SHIFT 3
+#define RBBM_DEBUG_IGNORE_CP_SCHED_NQ_HI_SHIFT 4
+#define RBBM_DEBUG_HYSTERESIS_NRT_GUI_ACTIVE_SHIFT 8
+#define RBBM_DEBUG_IGNORE_RTR_FOR_HI_SHIFT 16
+#define RBBM_DEBUG_IGNORE_CP_RBBM_NRTRTR_FOR_HI_SHIFT 17
+#define RBBM_DEBUG_IGNORE_VGT_RBBM_NRTRTR_FOR_HI_SHIFT 18
+#define RBBM_DEBUG_IGNORE_SQ_RBBM_NRTRTR_FOR_HI_SHIFT 19
+#define RBBM_DEBUG_CP_RBBM_NRTRTR_SHIFT 20
+#define RBBM_DEBUG_VGT_RBBM_NRTRTR_SHIFT 21
+#define RBBM_DEBUG_SQ_RBBM_NRTRTR_SHIFT 22
+#define RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_FOR_HI_SHIFT 23
+#define RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_SHIFT 24
+#define RBBM_DEBUG_IGNORE_SX_RBBM_BUSY_SHIFT 31
+
+#define RBBM_DEBUG_IGNORE_RTR_MASK 0x00000002
+#define RBBM_DEBUG_IGNORE_CP_SCHED_WU_MASK 0x00000004
+#define RBBM_DEBUG_IGNORE_CP_SCHED_ISYNC_MASK 0x00000008
+#define RBBM_DEBUG_IGNORE_CP_SCHED_NQ_HI_MASK 0x00000010
+#define RBBM_DEBUG_HYSTERESIS_NRT_GUI_ACTIVE_MASK 0x00000f00
+#define RBBM_DEBUG_IGNORE_RTR_FOR_HI_MASK 0x00010000
+#define RBBM_DEBUG_IGNORE_CP_RBBM_NRTRTR_FOR_HI_MASK 0x00020000
+#define RBBM_DEBUG_IGNORE_VGT_RBBM_NRTRTR_FOR_HI_MASK 0x00040000
+#define RBBM_DEBUG_IGNORE_SQ_RBBM_NRTRTR_FOR_HI_MASK 0x00080000
+#define RBBM_DEBUG_CP_RBBM_NRTRTR_MASK 0x00100000
+#define RBBM_DEBUG_VGT_RBBM_NRTRTR_MASK 0x00200000
+#define RBBM_DEBUG_SQ_RBBM_NRTRTR_MASK 0x00400000
+#define RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_FOR_HI_MASK 0x00800000
+#define RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_MASK 0x01000000
+#define RBBM_DEBUG_IGNORE_SX_RBBM_BUSY_MASK 0x80000000
+
+#define RBBM_DEBUG_MASK \
+ (RBBM_DEBUG_IGNORE_RTR_MASK | \
+ RBBM_DEBUG_IGNORE_CP_SCHED_WU_MASK | \
+ RBBM_DEBUG_IGNORE_CP_SCHED_ISYNC_MASK | \
+ RBBM_DEBUG_IGNORE_CP_SCHED_NQ_HI_MASK | \
+ RBBM_DEBUG_HYSTERESIS_NRT_GUI_ACTIVE_MASK | \
+ RBBM_DEBUG_IGNORE_RTR_FOR_HI_MASK | \
+ RBBM_DEBUG_IGNORE_CP_RBBM_NRTRTR_FOR_HI_MASK | \
+ RBBM_DEBUG_IGNORE_VGT_RBBM_NRTRTR_FOR_HI_MASK | \
+ RBBM_DEBUG_IGNORE_SQ_RBBM_NRTRTR_FOR_HI_MASK | \
+ RBBM_DEBUG_CP_RBBM_NRTRTR_MASK | \
+ RBBM_DEBUG_VGT_RBBM_NRTRTR_MASK | \
+ RBBM_DEBUG_SQ_RBBM_NRTRTR_MASK | \
+ RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_FOR_HI_MASK | \
+ RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_MASK | \
+ RBBM_DEBUG_IGNORE_SX_RBBM_BUSY_MASK)
+
+#define RBBM_DEBUG(ignore_rtr, ignore_cp_sched_wu, ignore_cp_sched_isync, ignore_cp_sched_nq_hi, hysteresis_nrt_gui_active, ignore_rtr_for_hi, ignore_cp_rbbm_nrtrtr_for_hi, ignore_vgt_rbbm_nrtrtr_for_hi, ignore_sq_rbbm_nrtrtr_for_hi, cp_rbbm_nrtrtr, vgt_rbbm_nrtrtr, sq_rbbm_nrtrtr, clients_for_nrt_rtr_for_hi, clients_for_nrt_rtr, ignore_sx_rbbm_busy) \
+ ((ignore_rtr << RBBM_DEBUG_IGNORE_RTR_SHIFT) | \
+ (ignore_cp_sched_wu << RBBM_DEBUG_IGNORE_CP_SCHED_WU_SHIFT) | \
+ (ignore_cp_sched_isync << RBBM_DEBUG_IGNORE_CP_SCHED_ISYNC_SHIFT) | \
+ (ignore_cp_sched_nq_hi << RBBM_DEBUG_IGNORE_CP_SCHED_NQ_HI_SHIFT) | \
+ (hysteresis_nrt_gui_active << RBBM_DEBUG_HYSTERESIS_NRT_GUI_ACTIVE_SHIFT) | \
+ (ignore_rtr_for_hi << RBBM_DEBUG_IGNORE_RTR_FOR_HI_SHIFT) | \
+ (ignore_cp_rbbm_nrtrtr_for_hi << RBBM_DEBUG_IGNORE_CP_RBBM_NRTRTR_FOR_HI_SHIFT) | \
+ (ignore_vgt_rbbm_nrtrtr_for_hi << RBBM_DEBUG_IGNORE_VGT_RBBM_NRTRTR_FOR_HI_SHIFT) | \
+ (ignore_sq_rbbm_nrtrtr_for_hi << RBBM_DEBUG_IGNORE_SQ_RBBM_NRTRTR_FOR_HI_SHIFT) | \
+ (cp_rbbm_nrtrtr << RBBM_DEBUG_CP_RBBM_NRTRTR_SHIFT) | \
+ (vgt_rbbm_nrtrtr << RBBM_DEBUG_VGT_RBBM_NRTRTR_SHIFT) | \
+ (sq_rbbm_nrtrtr << RBBM_DEBUG_SQ_RBBM_NRTRTR_SHIFT) | \
+ (clients_for_nrt_rtr_for_hi << RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_FOR_HI_SHIFT) | \
+ (clients_for_nrt_rtr << RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_SHIFT) | \
+ (ignore_sx_rbbm_busy << RBBM_DEBUG_IGNORE_SX_RBBM_BUSY_SHIFT))
+
+#define RBBM_DEBUG_GET_IGNORE_RTR(rbbm_debug) \
+ ((rbbm_debug & RBBM_DEBUG_IGNORE_RTR_MASK) >> RBBM_DEBUG_IGNORE_RTR_SHIFT)
+#define RBBM_DEBUG_GET_IGNORE_CP_SCHED_WU(rbbm_debug) \
+ ((rbbm_debug & RBBM_DEBUG_IGNORE_CP_SCHED_WU_MASK) >> RBBM_DEBUG_IGNORE_CP_SCHED_WU_SHIFT)
+#define RBBM_DEBUG_GET_IGNORE_CP_SCHED_ISYNC(rbbm_debug) \
+ ((rbbm_debug & RBBM_DEBUG_IGNORE_CP_SCHED_ISYNC_MASK) >> RBBM_DEBUG_IGNORE_CP_SCHED_ISYNC_SHIFT)
+#define RBBM_DEBUG_GET_IGNORE_CP_SCHED_NQ_HI(rbbm_debug) \
+ ((rbbm_debug & RBBM_DEBUG_IGNORE_CP_SCHED_NQ_HI_MASK) >> RBBM_DEBUG_IGNORE_CP_SCHED_NQ_HI_SHIFT)
+#define RBBM_DEBUG_GET_HYSTERESIS_NRT_GUI_ACTIVE(rbbm_debug) \
+ ((rbbm_debug & RBBM_DEBUG_HYSTERESIS_NRT_GUI_ACTIVE_MASK) >> RBBM_DEBUG_HYSTERESIS_NRT_GUI_ACTIVE_SHIFT)
+#define RBBM_DEBUG_GET_IGNORE_RTR_FOR_HI(rbbm_debug) \
+ ((rbbm_debug & RBBM_DEBUG_IGNORE_RTR_FOR_HI_MASK) >> RBBM_DEBUG_IGNORE_RTR_FOR_HI_SHIFT)
+#define RBBM_DEBUG_GET_IGNORE_CP_RBBM_NRTRTR_FOR_HI(rbbm_debug) \
+ ((rbbm_debug & RBBM_DEBUG_IGNORE_CP_RBBM_NRTRTR_FOR_HI_MASK) >> RBBM_DEBUG_IGNORE_CP_RBBM_NRTRTR_FOR_HI_SHIFT)
+#define RBBM_DEBUG_GET_IGNORE_VGT_RBBM_NRTRTR_FOR_HI(rbbm_debug) \
+ ((rbbm_debug & RBBM_DEBUG_IGNORE_VGT_RBBM_NRTRTR_FOR_HI_MASK) >> RBBM_DEBUG_IGNORE_VGT_RBBM_NRTRTR_FOR_HI_SHIFT)
+#define RBBM_DEBUG_GET_IGNORE_SQ_RBBM_NRTRTR_FOR_HI(rbbm_debug) \
+ ((rbbm_debug & RBBM_DEBUG_IGNORE_SQ_RBBM_NRTRTR_FOR_HI_MASK) >> RBBM_DEBUG_IGNORE_SQ_RBBM_NRTRTR_FOR_HI_SHIFT)
+#define RBBM_DEBUG_GET_CP_RBBM_NRTRTR(rbbm_debug) \
+ ((rbbm_debug & RBBM_DEBUG_CP_RBBM_NRTRTR_MASK) >> RBBM_DEBUG_CP_RBBM_NRTRTR_SHIFT)
+#define RBBM_DEBUG_GET_VGT_RBBM_NRTRTR(rbbm_debug) \
+ ((rbbm_debug & RBBM_DEBUG_VGT_RBBM_NRTRTR_MASK) >> RBBM_DEBUG_VGT_RBBM_NRTRTR_SHIFT)
+#define RBBM_DEBUG_GET_SQ_RBBM_NRTRTR(rbbm_debug) \
+ ((rbbm_debug & RBBM_DEBUG_SQ_RBBM_NRTRTR_MASK) >> RBBM_DEBUG_SQ_RBBM_NRTRTR_SHIFT)
+#define RBBM_DEBUG_GET_CLIENTS_FOR_NRT_RTR_FOR_HI(rbbm_debug) \
+ ((rbbm_debug & RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_FOR_HI_MASK) >> RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_FOR_HI_SHIFT)
+#define RBBM_DEBUG_GET_CLIENTS_FOR_NRT_RTR(rbbm_debug) \
+ ((rbbm_debug & RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_MASK) >> RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_SHIFT)
+#define RBBM_DEBUG_GET_IGNORE_SX_RBBM_BUSY(rbbm_debug) \
+ ((rbbm_debug & RBBM_DEBUG_IGNORE_SX_RBBM_BUSY_MASK) >> RBBM_DEBUG_IGNORE_SX_RBBM_BUSY_SHIFT)
+
+#define RBBM_DEBUG_SET_IGNORE_RTR(rbbm_debug_reg, ignore_rtr) \
+ rbbm_debug_reg = (rbbm_debug_reg & ~RBBM_DEBUG_IGNORE_RTR_MASK) | (ignore_rtr << RBBM_DEBUG_IGNORE_RTR_SHIFT)
+#define RBBM_DEBUG_SET_IGNORE_CP_SCHED_WU(rbbm_debug_reg, ignore_cp_sched_wu) \
+ rbbm_debug_reg = (rbbm_debug_reg & ~RBBM_DEBUG_IGNORE_CP_SCHED_WU_MASK) | (ignore_cp_sched_wu << RBBM_DEBUG_IGNORE_CP_SCHED_WU_SHIFT)
+#define RBBM_DEBUG_SET_IGNORE_CP_SCHED_ISYNC(rbbm_debug_reg, ignore_cp_sched_isync) \
+ rbbm_debug_reg = (rbbm_debug_reg & ~RBBM_DEBUG_IGNORE_CP_SCHED_ISYNC_MASK) | (ignore_cp_sched_isync << RBBM_DEBUG_IGNORE_CP_SCHED_ISYNC_SHIFT)
+#define RBBM_DEBUG_SET_IGNORE_CP_SCHED_NQ_HI(rbbm_debug_reg, ignore_cp_sched_nq_hi) \
+ rbbm_debug_reg = (rbbm_debug_reg & ~RBBM_DEBUG_IGNORE_CP_SCHED_NQ_HI_MASK) | (ignore_cp_sched_nq_hi << RBBM_DEBUG_IGNORE_CP_SCHED_NQ_HI_SHIFT)
+#define RBBM_DEBUG_SET_HYSTERESIS_NRT_GUI_ACTIVE(rbbm_debug_reg, hysteresis_nrt_gui_active) \
+ rbbm_debug_reg = (rbbm_debug_reg & ~RBBM_DEBUG_HYSTERESIS_NRT_GUI_ACTIVE_MASK) | (hysteresis_nrt_gui_active << RBBM_DEBUG_HYSTERESIS_NRT_GUI_ACTIVE_SHIFT)
+#define RBBM_DEBUG_SET_IGNORE_RTR_FOR_HI(rbbm_debug_reg, ignore_rtr_for_hi) \
+ rbbm_debug_reg = (rbbm_debug_reg & ~RBBM_DEBUG_IGNORE_RTR_FOR_HI_MASK) | (ignore_rtr_for_hi << RBBM_DEBUG_IGNORE_RTR_FOR_HI_SHIFT)
+#define RBBM_DEBUG_SET_IGNORE_CP_RBBM_NRTRTR_FOR_HI(rbbm_debug_reg, ignore_cp_rbbm_nrtrtr_for_hi) \
+ rbbm_debug_reg = (rbbm_debug_reg & ~RBBM_DEBUG_IGNORE_CP_RBBM_NRTRTR_FOR_HI_MASK) | (ignore_cp_rbbm_nrtrtr_for_hi << RBBM_DEBUG_IGNORE_CP_RBBM_NRTRTR_FOR_HI_SHIFT)
+#define RBBM_DEBUG_SET_IGNORE_VGT_RBBM_NRTRTR_FOR_HI(rbbm_debug_reg, ignore_vgt_rbbm_nrtrtr_for_hi) \
+ rbbm_debug_reg = (rbbm_debug_reg & ~RBBM_DEBUG_IGNORE_VGT_RBBM_NRTRTR_FOR_HI_MASK) | (ignore_vgt_rbbm_nrtrtr_for_hi << RBBM_DEBUG_IGNORE_VGT_RBBM_NRTRTR_FOR_HI_SHIFT)
+#define RBBM_DEBUG_SET_IGNORE_SQ_RBBM_NRTRTR_FOR_HI(rbbm_debug_reg, ignore_sq_rbbm_nrtrtr_for_hi) \
+ rbbm_debug_reg = (rbbm_debug_reg & ~RBBM_DEBUG_IGNORE_SQ_RBBM_NRTRTR_FOR_HI_MASK) | (ignore_sq_rbbm_nrtrtr_for_hi << RBBM_DEBUG_IGNORE_SQ_RBBM_NRTRTR_FOR_HI_SHIFT)
+#define RBBM_DEBUG_SET_CP_RBBM_NRTRTR(rbbm_debug_reg, cp_rbbm_nrtrtr) \
+ rbbm_debug_reg = (rbbm_debug_reg & ~RBBM_DEBUG_CP_RBBM_NRTRTR_MASK) | (cp_rbbm_nrtrtr << RBBM_DEBUG_CP_RBBM_NRTRTR_SHIFT)
+#define RBBM_DEBUG_SET_VGT_RBBM_NRTRTR(rbbm_debug_reg, vgt_rbbm_nrtrtr) \
+ rbbm_debug_reg = (rbbm_debug_reg & ~RBBM_DEBUG_VGT_RBBM_NRTRTR_MASK) | (vgt_rbbm_nrtrtr << RBBM_DEBUG_VGT_RBBM_NRTRTR_SHIFT)
+#define RBBM_DEBUG_SET_SQ_RBBM_NRTRTR(rbbm_debug_reg, sq_rbbm_nrtrtr) \
+ rbbm_debug_reg = (rbbm_debug_reg & ~RBBM_DEBUG_SQ_RBBM_NRTRTR_MASK) | (sq_rbbm_nrtrtr << RBBM_DEBUG_SQ_RBBM_NRTRTR_SHIFT)
+#define RBBM_DEBUG_SET_CLIENTS_FOR_NRT_RTR_FOR_HI(rbbm_debug_reg, clients_for_nrt_rtr_for_hi) \
+ rbbm_debug_reg = (rbbm_debug_reg & ~RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_FOR_HI_MASK) | (clients_for_nrt_rtr_for_hi << RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_FOR_HI_SHIFT)
+#define RBBM_DEBUG_SET_CLIENTS_FOR_NRT_RTR(rbbm_debug_reg, clients_for_nrt_rtr) \
+ rbbm_debug_reg = (rbbm_debug_reg & ~RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_MASK) | (clients_for_nrt_rtr << RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_SHIFT)
+#define RBBM_DEBUG_SET_IGNORE_SX_RBBM_BUSY(rbbm_debug_reg, ignore_sx_rbbm_busy) \
+ rbbm_debug_reg = (rbbm_debug_reg & ~RBBM_DEBUG_IGNORE_SX_RBBM_BUSY_MASK) | (ignore_sx_rbbm_busy << RBBM_DEBUG_IGNORE_SX_RBBM_BUSY_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_debug_t {
+ unsigned int : 1;
+ unsigned int ignore_rtr : RBBM_DEBUG_IGNORE_RTR_SIZE;
+ unsigned int ignore_cp_sched_wu : RBBM_DEBUG_IGNORE_CP_SCHED_WU_SIZE;
+ unsigned int ignore_cp_sched_isync : RBBM_DEBUG_IGNORE_CP_SCHED_ISYNC_SIZE;
+ unsigned int ignore_cp_sched_nq_hi : RBBM_DEBUG_IGNORE_CP_SCHED_NQ_HI_SIZE;
+ unsigned int : 3;
+ unsigned int hysteresis_nrt_gui_active : RBBM_DEBUG_HYSTERESIS_NRT_GUI_ACTIVE_SIZE;
+ unsigned int : 4;
+ unsigned int ignore_rtr_for_hi : RBBM_DEBUG_IGNORE_RTR_FOR_HI_SIZE;
+ unsigned int ignore_cp_rbbm_nrtrtr_for_hi : RBBM_DEBUG_IGNORE_CP_RBBM_NRTRTR_FOR_HI_SIZE;
+ unsigned int ignore_vgt_rbbm_nrtrtr_for_hi : RBBM_DEBUG_IGNORE_VGT_RBBM_NRTRTR_FOR_HI_SIZE;
+ unsigned int ignore_sq_rbbm_nrtrtr_for_hi : RBBM_DEBUG_IGNORE_SQ_RBBM_NRTRTR_FOR_HI_SIZE;
+ unsigned int cp_rbbm_nrtrtr : RBBM_DEBUG_CP_RBBM_NRTRTR_SIZE;
+ unsigned int vgt_rbbm_nrtrtr : RBBM_DEBUG_VGT_RBBM_NRTRTR_SIZE;
+ unsigned int sq_rbbm_nrtrtr : RBBM_DEBUG_SQ_RBBM_NRTRTR_SIZE;
+ unsigned int clients_for_nrt_rtr_for_hi : RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_FOR_HI_SIZE;
+ unsigned int clients_for_nrt_rtr : RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_SIZE;
+ unsigned int : 6;
+ unsigned int ignore_sx_rbbm_busy : RBBM_DEBUG_IGNORE_SX_RBBM_BUSY_SIZE;
+ } rbbm_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_debug_t {
+ unsigned int ignore_sx_rbbm_busy : RBBM_DEBUG_IGNORE_SX_RBBM_BUSY_SIZE;
+ unsigned int : 6;
+ unsigned int clients_for_nrt_rtr : RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_SIZE;
+ unsigned int clients_for_nrt_rtr_for_hi : RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_FOR_HI_SIZE;
+ unsigned int sq_rbbm_nrtrtr : RBBM_DEBUG_SQ_RBBM_NRTRTR_SIZE;
+ unsigned int vgt_rbbm_nrtrtr : RBBM_DEBUG_VGT_RBBM_NRTRTR_SIZE;
+ unsigned int cp_rbbm_nrtrtr : RBBM_DEBUG_CP_RBBM_NRTRTR_SIZE;
+ unsigned int ignore_sq_rbbm_nrtrtr_for_hi : RBBM_DEBUG_IGNORE_SQ_RBBM_NRTRTR_FOR_HI_SIZE;
+ unsigned int ignore_vgt_rbbm_nrtrtr_for_hi : RBBM_DEBUG_IGNORE_VGT_RBBM_NRTRTR_FOR_HI_SIZE;
+ unsigned int ignore_cp_rbbm_nrtrtr_for_hi : RBBM_DEBUG_IGNORE_CP_RBBM_NRTRTR_FOR_HI_SIZE;
+ unsigned int ignore_rtr_for_hi : RBBM_DEBUG_IGNORE_RTR_FOR_HI_SIZE;
+ unsigned int : 4;
+ unsigned int hysteresis_nrt_gui_active : RBBM_DEBUG_HYSTERESIS_NRT_GUI_ACTIVE_SIZE;
+ unsigned int : 3;
+ unsigned int ignore_cp_sched_nq_hi : RBBM_DEBUG_IGNORE_CP_SCHED_NQ_HI_SIZE;
+ unsigned int ignore_cp_sched_isync : RBBM_DEBUG_IGNORE_CP_SCHED_ISYNC_SIZE;
+ unsigned int ignore_cp_sched_wu : RBBM_DEBUG_IGNORE_CP_SCHED_WU_SIZE;
+ unsigned int ignore_rtr : RBBM_DEBUG_IGNORE_RTR_SIZE;
+ unsigned int : 1;
+ } rbbm_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_debug_t f;
+} rbbm_debug_u;
+
+
+/*
+ * RBBM_READ_ERROR struct
+ */
+
+#define RBBM_READ_ERROR_READ_ADDRESS_SIZE 15
+#define RBBM_READ_ERROR_READ_REQUESTER_SIZE 1
+#define RBBM_READ_ERROR_READ_ERROR_SIZE 1
+
+#define RBBM_READ_ERROR_READ_ADDRESS_SHIFT 2
+#define RBBM_READ_ERROR_READ_REQUESTER_SHIFT 30
+#define RBBM_READ_ERROR_READ_ERROR_SHIFT 31
+
+#define RBBM_READ_ERROR_READ_ADDRESS_MASK 0x0001fffc
+#define RBBM_READ_ERROR_READ_REQUESTER_MASK 0x40000000
+#define RBBM_READ_ERROR_READ_ERROR_MASK 0x80000000
+
+#define RBBM_READ_ERROR_MASK \
+ (RBBM_READ_ERROR_READ_ADDRESS_MASK | \
+ RBBM_READ_ERROR_READ_REQUESTER_MASK | \
+ RBBM_READ_ERROR_READ_ERROR_MASK)
+
+#define RBBM_READ_ERROR(read_address, read_requester, read_error) \
+ ((read_address << RBBM_READ_ERROR_READ_ADDRESS_SHIFT) | \
+ (read_requester << RBBM_READ_ERROR_READ_REQUESTER_SHIFT) | \
+ (read_error << RBBM_READ_ERROR_READ_ERROR_SHIFT))
+
+#define RBBM_READ_ERROR_GET_READ_ADDRESS(rbbm_read_error) \
+ ((rbbm_read_error & RBBM_READ_ERROR_READ_ADDRESS_MASK) >> RBBM_READ_ERROR_READ_ADDRESS_SHIFT)
+#define RBBM_READ_ERROR_GET_READ_REQUESTER(rbbm_read_error) \
+ ((rbbm_read_error & RBBM_READ_ERROR_READ_REQUESTER_MASK) >> RBBM_READ_ERROR_READ_REQUESTER_SHIFT)
+#define RBBM_READ_ERROR_GET_READ_ERROR(rbbm_read_error) \
+ ((rbbm_read_error & RBBM_READ_ERROR_READ_ERROR_MASK) >> RBBM_READ_ERROR_READ_ERROR_SHIFT)
+
+#define RBBM_READ_ERROR_SET_READ_ADDRESS(rbbm_read_error_reg, read_address) \
+ rbbm_read_error_reg = (rbbm_read_error_reg & ~RBBM_READ_ERROR_READ_ADDRESS_MASK) | (read_address << RBBM_READ_ERROR_READ_ADDRESS_SHIFT)
+#define RBBM_READ_ERROR_SET_READ_REQUESTER(rbbm_read_error_reg, read_requester) \
+ rbbm_read_error_reg = (rbbm_read_error_reg & ~RBBM_READ_ERROR_READ_REQUESTER_MASK) | (read_requester << RBBM_READ_ERROR_READ_REQUESTER_SHIFT)
+#define RBBM_READ_ERROR_SET_READ_ERROR(rbbm_read_error_reg, read_error) \
+ rbbm_read_error_reg = (rbbm_read_error_reg & ~RBBM_READ_ERROR_READ_ERROR_MASK) | (read_error << RBBM_READ_ERROR_READ_ERROR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_read_error_t {
+ unsigned int : 2;
+ unsigned int read_address : RBBM_READ_ERROR_READ_ADDRESS_SIZE;
+ unsigned int : 13;
+ unsigned int read_requester : RBBM_READ_ERROR_READ_REQUESTER_SIZE;
+ unsigned int read_error : RBBM_READ_ERROR_READ_ERROR_SIZE;
+ } rbbm_read_error_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_read_error_t {
+ unsigned int read_error : RBBM_READ_ERROR_READ_ERROR_SIZE;
+ unsigned int read_requester : RBBM_READ_ERROR_READ_REQUESTER_SIZE;
+ unsigned int : 13;
+ unsigned int read_address : RBBM_READ_ERROR_READ_ADDRESS_SIZE;
+ unsigned int : 2;
+ } rbbm_read_error_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_read_error_t f;
+} rbbm_read_error_u;
+
+
+/*
+ * RBBM_WAIT_IDLE_CLOCKS struct
+ */
+
+#define RBBM_WAIT_IDLE_CLOCKS_WAIT_IDLE_CLOCKS_NRT_SIZE 8
+
+#define RBBM_WAIT_IDLE_CLOCKS_WAIT_IDLE_CLOCKS_NRT_SHIFT 0
+
+#define RBBM_WAIT_IDLE_CLOCKS_WAIT_IDLE_CLOCKS_NRT_MASK 0x000000ff
+
+#define RBBM_WAIT_IDLE_CLOCKS_MASK \
+ (RBBM_WAIT_IDLE_CLOCKS_WAIT_IDLE_CLOCKS_NRT_MASK)
+
+#define RBBM_WAIT_IDLE_CLOCKS(wait_idle_clocks_nrt) \
+ ((wait_idle_clocks_nrt << RBBM_WAIT_IDLE_CLOCKS_WAIT_IDLE_CLOCKS_NRT_SHIFT))
+
+#define RBBM_WAIT_IDLE_CLOCKS_GET_WAIT_IDLE_CLOCKS_NRT(rbbm_wait_idle_clocks) \
+ ((rbbm_wait_idle_clocks & RBBM_WAIT_IDLE_CLOCKS_WAIT_IDLE_CLOCKS_NRT_MASK) >> RBBM_WAIT_IDLE_CLOCKS_WAIT_IDLE_CLOCKS_NRT_SHIFT)
+
+#define RBBM_WAIT_IDLE_CLOCKS_SET_WAIT_IDLE_CLOCKS_NRT(rbbm_wait_idle_clocks_reg, wait_idle_clocks_nrt) \
+ rbbm_wait_idle_clocks_reg = (rbbm_wait_idle_clocks_reg & ~RBBM_WAIT_IDLE_CLOCKS_WAIT_IDLE_CLOCKS_NRT_MASK) | (wait_idle_clocks_nrt << RBBM_WAIT_IDLE_CLOCKS_WAIT_IDLE_CLOCKS_NRT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_wait_idle_clocks_t {
+ unsigned int wait_idle_clocks_nrt : RBBM_WAIT_IDLE_CLOCKS_WAIT_IDLE_CLOCKS_NRT_SIZE;
+ unsigned int : 24;
+ } rbbm_wait_idle_clocks_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_wait_idle_clocks_t {
+ unsigned int : 24;
+ unsigned int wait_idle_clocks_nrt : RBBM_WAIT_IDLE_CLOCKS_WAIT_IDLE_CLOCKS_NRT_SIZE;
+ } rbbm_wait_idle_clocks_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_wait_idle_clocks_t f;
+} rbbm_wait_idle_clocks_u;
+
+
+/*
+ * RBBM_INT_CNTL struct
+ */
+
+#define RBBM_INT_CNTL_RDERR_INT_MASK_SIZE 1
+#define RBBM_INT_CNTL_DISPLAY_UPDATE_INT_MASK_SIZE 1
+#define RBBM_INT_CNTL_GUI_IDLE_INT_MASK_SIZE 1
+
+#define RBBM_INT_CNTL_RDERR_INT_MASK_SHIFT 0
+#define RBBM_INT_CNTL_DISPLAY_UPDATE_INT_MASK_SHIFT 1
+#define RBBM_INT_CNTL_GUI_IDLE_INT_MASK_SHIFT 19
+
+#define RBBM_INT_CNTL_RDERR_INT_MASK_MASK 0x00000001
+#define RBBM_INT_CNTL_DISPLAY_UPDATE_INT_MASK_MASK 0x00000002
+#define RBBM_INT_CNTL_GUI_IDLE_INT_MASK_MASK 0x00080000
+
+#define RBBM_INT_CNTL_MASK \
+ (RBBM_INT_CNTL_RDERR_INT_MASK_MASK | \
+ RBBM_INT_CNTL_DISPLAY_UPDATE_INT_MASK_MASK | \
+ RBBM_INT_CNTL_GUI_IDLE_INT_MASK_MASK)
+
+#define RBBM_INT_CNTL(rderr_int_mask, display_update_int_mask, gui_idle_int_mask) \
+ ((rderr_int_mask << RBBM_INT_CNTL_RDERR_INT_MASK_SHIFT) | \
+ (display_update_int_mask << RBBM_INT_CNTL_DISPLAY_UPDATE_INT_MASK_SHIFT) | \
+ (gui_idle_int_mask << RBBM_INT_CNTL_GUI_IDLE_INT_MASK_SHIFT))
+
+#define RBBM_INT_CNTL_GET_RDERR_INT_MASK(rbbm_int_cntl) \
+ ((rbbm_int_cntl & RBBM_INT_CNTL_RDERR_INT_MASK_MASK) >> RBBM_INT_CNTL_RDERR_INT_MASK_SHIFT)
+#define RBBM_INT_CNTL_GET_DISPLAY_UPDATE_INT_MASK(rbbm_int_cntl) \
+ ((rbbm_int_cntl & RBBM_INT_CNTL_DISPLAY_UPDATE_INT_MASK_MASK) >> RBBM_INT_CNTL_DISPLAY_UPDATE_INT_MASK_SHIFT)
+#define RBBM_INT_CNTL_GET_GUI_IDLE_INT_MASK(rbbm_int_cntl) \
+ ((rbbm_int_cntl & RBBM_INT_CNTL_GUI_IDLE_INT_MASK_MASK) >> RBBM_INT_CNTL_GUI_IDLE_INT_MASK_SHIFT)
+
+#define RBBM_INT_CNTL_SET_RDERR_INT_MASK(rbbm_int_cntl_reg, rderr_int_mask) \
+ rbbm_int_cntl_reg = (rbbm_int_cntl_reg & ~RBBM_INT_CNTL_RDERR_INT_MASK_MASK) | (rderr_int_mask << RBBM_INT_CNTL_RDERR_INT_MASK_SHIFT)
+#define RBBM_INT_CNTL_SET_DISPLAY_UPDATE_INT_MASK(rbbm_int_cntl_reg, display_update_int_mask) \
+ rbbm_int_cntl_reg = (rbbm_int_cntl_reg & ~RBBM_INT_CNTL_DISPLAY_UPDATE_INT_MASK_MASK) | (display_update_int_mask << RBBM_INT_CNTL_DISPLAY_UPDATE_INT_MASK_SHIFT)
+#define RBBM_INT_CNTL_SET_GUI_IDLE_INT_MASK(rbbm_int_cntl_reg, gui_idle_int_mask) \
+ rbbm_int_cntl_reg = (rbbm_int_cntl_reg & ~RBBM_INT_CNTL_GUI_IDLE_INT_MASK_MASK) | (gui_idle_int_mask << RBBM_INT_CNTL_GUI_IDLE_INT_MASK_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_int_cntl_t {
+ unsigned int rderr_int_mask : RBBM_INT_CNTL_RDERR_INT_MASK_SIZE;
+ unsigned int display_update_int_mask : RBBM_INT_CNTL_DISPLAY_UPDATE_INT_MASK_SIZE;
+ unsigned int : 17;
+ unsigned int gui_idle_int_mask : RBBM_INT_CNTL_GUI_IDLE_INT_MASK_SIZE;
+ unsigned int : 12;
+ } rbbm_int_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_int_cntl_t {
+ unsigned int : 12;
+ unsigned int gui_idle_int_mask : RBBM_INT_CNTL_GUI_IDLE_INT_MASK_SIZE;
+ unsigned int : 17;
+ unsigned int display_update_int_mask : RBBM_INT_CNTL_DISPLAY_UPDATE_INT_MASK_SIZE;
+ unsigned int rderr_int_mask : RBBM_INT_CNTL_RDERR_INT_MASK_SIZE;
+ } rbbm_int_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_int_cntl_t f;
+} rbbm_int_cntl_u;
+
+
+/*
+ * RBBM_INT_STATUS struct
+ */
+
+#define RBBM_INT_STATUS_RDERR_INT_STAT_SIZE 1
+#define RBBM_INT_STATUS_DISPLAY_UPDATE_INT_STAT_SIZE 1
+#define RBBM_INT_STATUS_GUI_IDLE_INT_STAT_SIZE 1
+
+#define RBBM_INT_STATUS_RDERR_INT_STAT_SHIFT 0
+#define RBBM_INT_STATUS_DISPLAY_UPDATE_INT_STAT_SHIFT 1
+#define RBBM_INT_STATUS_GUI_IDLE_INT_STAT_SHIFT 19
+
+#define RBBM_INT_STATUS_RDERR_INT_STAT_MASK 0x00000001
+#define RBBM_INT_STATUS_DISPLAY_UPDATE_INT_STAT_MASK 0x00000002
+#define RBBM_INT_STATUS_GUI_IDLE_INT_STAT_MASK 0x00080000
+
+#define RBBM_INT_STATUS_MASK \
+ (RBBM_INT_STATUS_RDERR_INT_STAT_MASK | \
+ RBBM_INT_STATUS_DISPLAY_UPDATE_INT_STAT_MASK | \
+ RBBM_INT_STATUS_GUI_IDLE_INT_STAT_MASK)
+
+#define RBBM_INT_STATUS(rderr_int_stat, display_update_int_stat, gui_idle_int_stat) \
+ ((rderr_int_stat << RBBM_INT_STATUS_RDERR_INT_STAT_SHIFT) | \
+ (display_update_int_stat << RBBM_INT_STATUS_DISPLAY_UPDATE_INT_STAT_SHIFT) | \
+ (gui_idle_int_stat << RBBM_INT_STATUS_GUI_IDLE_INT_STAT_SHIFT))
+
+#define RBBM_INT_STATUS_GET_RDERR_INT_STAT(rbbm_int_status) \
+ ((rbbm_int_status & RBBM_INT_STATUS_RDERR_INT_STAT_MASK) >> RBBM_INT_STATUS_RDERR_INT_STAT_SHIFT)
+#define RBBM_INT_STATUS_GET_DISPLAY_UPDATE_INT_STAT(rbbm_int_status) \
+ ((rbbm_int_status & RBBM_INT_STATUS_DISPLAY_UPDATE_INT_STAT_MASK) >> RBBM_INT_STATUS_DISPLAY_UPDATE_INT_STAT_SHIFT)
+#define RBBM_INT_STATUS_GET_GUI_IDLE_INT_STAT(rbbm_int_status) \
+ ((rbbm_int_status & RBBM_INT_STATUS_GUI_IDLE_INT_STAT_MASK) >> RBBM_INT_STATUS_GUI_IDLE_INT_STAT_SHIFT)
+
+#define RBBM_INT_STATUS_SET_RDERR_INT_STAT(rbbm_int_status_reg, rderr_int_stat) \
+ rbbm_int_status_reg = (rbbm_int_status_reg & ~RBBM_INT_STATUS_RDERR_INT_STAT_MASK) | (rderr_int_stat << RBBM_INT_STATUS_RDERR_INT_STAT_SHIFT)
+#define RBBM_INT_STATUS_SET_DISPLAY_UPDATE_INT_STAT(rbbm_int_status_reg, display_update_int_stat) \
+ rbbm_int_status_reg = (rbbm_int_status_reg & ~RBBM_INT_STATUS_DISPLAY_UPDATE_INT_STAT_MASK) | (display_update_int_stat << RBBM_INT_STATUS_DISPLAY_UPDATE_INT_STAT_SHIFT)
+#define RBBM_INT_STATUS_SET_GUI_IDLE_INT_STAT(rbbm_int_status_reg, gui_idle_int_stat) \
+ rbbm_int_status_reg = (rbbm_int_status_reg & ~RBBM_INT_STATUS_GUI_IDLE_INT_STAT_MASK) | (gui_idle_int_stat << RBBM_INT_STATUS_GUI_IDLE_INT_STAT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_int_status_t {
+ unsigned int rderr_int_stat : RBBM_INT_STATUS_RDERR_INT_STAT_SIZE;
+ unsigned int display_update_int_stat : RBBM_INT_STATUS_DISPLAY_UPDATE_INT_STAT_SIZE;
+ unsigned int : 17;
+ unsigned int gui_idle_int_stat : RBBM_INT_STATUS_GUI_IDLE_INT_STAT_SIZE;
+ unsigned int : 12;
+ } rbbm_int_status_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_int_status_t {
+ unsigned int : 12;
+ unsigned int gui_idle_int_stat : RBBM_INT_STATUS_GUI_IDLE_INT_STAT_SIZE;
+ unsigned int : 17;
+ unsigned int display_update_int_stat : RBBM_INT_STATUS_DISPLAY_UPDATE_INT_STAT_SIZE;
+ unsigned int rderr_int_stat : RBBM_INT_STATUS_RDERR_INT_STAT_SIZE;
+ } rbbm_int_status_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_int_status_t f;
+} rbbm_int_status_u;
+
+
+/*
+ * RBBM_INT_ACK struct
+ */
+
+#define RBBM_INT_ACK_RDERR_INT_ACK_SIZE 1
+#define RBBM_INT_ACK_DISPLAY_UPDATE_INT_ACK_SIZE 1
+#define RBBM_INT_ACK_GUI_IDLE_INT_ACK_SIZE 1
+
+#define RBBM_INT_ACK_RDERR_INT_ACK_SHIFT 0
+#define RBBM_INT_ACK_DISPLAY_UPDATE_INT_ACK_SHIFT 1
+#define RBBM_INT_ACK_GUI_IDLE_INT_ACK_SHIFT 19
+
+#define RBBM_INT_ACK_RDERR_INT_ACK_MASK 0x00000001
+#define RBBM_INT_ACK_DISPLAY_UPDATE_INT_ACK_MASK 0x00000002
+#define RBBM_INT_ACK_GUI_IDLE_INT_ACK_MASK 0x00080000
+
+#define RBBM_INT_ACK_MASK \
+ (RBBM_INT_ACK_RDERR_INT_ACK_MASK | \
+ RBBM_INT_ACK_DISPLAY_UPDATE_INT_ACK_MASK | \
+ RBBM_INT_ACK_GUI_IDLE_INT_ACK_MASK)
+
+#define RBBM_INT_ACK(rderr_int_ack, display_update_int_ack, gui_idle_int_ack) \
+ ((rderr_int_ack << RBBM_INT_ACK_RDERR_INT_ACK_SHIFT) | \
+ (display_update_int_ack << RBBM_INT_ACK_DISPLAY_UPDATE_INT_ACK_SHIFT) | \
+ (gui_idle_int_ack << RBBM_INT_ACK_GUI_IDLE_INT_ACK_SHIFT))
+
+#define RBBM_INT_ACK_GET_RDERR_INT_ACK(rbbm_int_ack) \
+ ((rbbm_int_ack & RBBM_INT_ACK_RDERR_INT_ACK_MASK) >> RBBM_INT_ACK_RDERR_INT_ACK_SHIFT)
+#define RBBM_INT_ACK_GET_DISPLAY_UPDATE_INT_ACK(rbbm_int_ack) \
+ ((rbbm_int_ack & RBBM_INT_ACK_DISPLAY_UPDATE_INT_ACK_MASK) >> RBBM_INT_ACK_DISPLAY_UPDATE_INT_ACK_SHIFT)
+#define RBBM_INT_ACK_GET_GUI_IDLE_INT_ACK(rbbm_int_ack) \
+ ((rbbm_int_ack & RBBM_INT_ACK_GUI_IDLE_INT_ACK_MASK) >> RBBM_INT_ACK_GUI_IDLE_INT_ACK_SHIFT)
+
+#define RBBM_INT_ACK_SET_RDERR_INT_ACK(rbbm_int_ack_reg, rderr_int_ack) \
+ rbbm_int_ack_reg = (rbbm_int_ack_reg & ~RBBM_INT_ACK_RDERR_INT_ACK_MASK) | (rderr_int_ack << RBBM_INT_ACK_RDERR_INT_ACK_SHIFT)
+#define RBBM_INT_ACK_SET_DISPLAY_UPDATE_INT_ACK(rbbm_int_ack_reg, display_update_int_ack) \
+ rbbm_int_ack_reg = (rbbm_int_ack_reg & ~RBBM_INT_ACK_DISPLAY_UPDATE_INT_ACK_MASK) | (display_update_int_ack << RBBM_INT_ACK_DISPLAY_UPDATE_INT_ACK_SHIFT)
+#define RBBM_INT_ACK_SET_GUI_IDLE_INT_ACK(rbbm_int_ack_reg, gui_idle_int_ack) \
+ rbbm_int_ack_reg = (rbbm_int_ack_reg & ~RBBM_INT_ACK_GUI_IDLE_INT_ACK_MASK) | (gui_idle_int_ack << RBBM_INT_ACK_GUI_IDLE_INT_ACK_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_int_ack_t {
+ unsigned int rderr_int_ack : RBBM_INT_ACK_RDERR_INT_ACK_SIZE;
+ unsigned int display_update_int_ack : RBBM_INT_ACK_DISPLAY_UPDATE_INT_ACK_SIZE;
+ unsigned int : 17;
+ unsigned int gui_idle_int_ack : RBBM_INT_ACK_GUI_IDLE_INT_ACK_SIZE;
+ unsigned int : 12;
+ } rbbm_int_ack_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_int_ack_t {
+ unsigned int : 12;
+ unsigned int gui_idle_int_ack : RBBM_INT_ACK_GUI_IDLE_INT_ACK_SIZE;
+ unsigned int : 17;
+ unsigned int display_update_int_ack : RBBM_INT_ACK_DISPLAY_UPDATE_INT_ACK_SIZE;
+ unsigned int rderr_int_ack : RBBM_INT_ACK_RDERR_INT_ACK_SIZE;
+ } rbbm_int_ack_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_int_ack_t f;
+} rbbm_int_ack_u;
+
+
+/*
+ * MASTER_INT_SIGNAL struct
+ */
+
+#define MASTER_INT_SIGNAL_MH_INT_STAT_SIZE 1
+#define MASTER_INT_SIGNAL_SQ_INT_STAT_SIZE 1
+#define MASTER_INT_SIGNAL_CP_INT_STAT_SIZE 1
+#define MASTER_INT_SIGNAL_RBBM_INT_STAT_SIZE 1
+
+#define MASTER_INT_SIGNAL_MH_INT_STAT_SHIFT 5
+#define MASTER_INT_SIGNAL_SQ_INT_STAT_SHIFT 26
+#define MASTER_INT_SIGNAL_CP_INT_STAT_SHIFT 30
+#define MASTER_INT_SIGNAL_RBBM_INT_STAT_SHIFT 31
+
+#define MASTER_INT_SIGNAL_MH_INT_STAT_MASK 0x00000020
+#define MASTER_INT_SIGNAL_SQ_INT_STAT_MASK 0x04000000
+#define MASTER_INT_SIGNAL_CP_INT_STAT_MASK 0x40000000
+#define MASTER_INT_SIGNAL_RBBM_INT_STAT_MASK 0x80000000
+
+#define MASTER_INT_SIGNAL_MASK \
+ (MASTER_INT_SIGNAL_MH_INT_STAT_MASK | \
+ MASTER_INT_SIGNAL_SQ_INT_STAT_MASK | \
+ MASTER_INT_SIGNAL_CP_INT_STAT_MASK | \
+ MASTER_INT_SIGNAL_RBBM_INT_STAT_MASK)
+
+#define MASTER_INT_SIGNAL(mh_int_stat, sq_int_stat, cp_int_stat, rbbm_int_stat) \
+ ((mh_int_stat << MASTER_INT_SIGNAL_MH_INT_STAT_SHIFT) | \
+ (sq_int_stat << MASTER_INT_SIGNAL_SQ_INT_STAT_SHIFT) | \
+ (cp_int_stat << MASTER_INT_SIGNAL_CP_INT_STAT_SHIFT) | \
+ (rbbm_int_stat << MASTER_INT_SIGNAL_RBBM_INT_STAT_SHIFT))
+
+#define MASTER_INT_SIGNAL_GET_MH_INT_STAT(master_int_signal) \
+ ((master_int_signal & MASTER_INT_SIGNAL_MH_INT_STAT_MASK) >> MASTER_INT_SIGNAL_MH_INT_STAT_SHIFT)
+#define MASTER_INT_SIGNAL_GET_SQ_INT_STAT(master_int_signal) \
+ ((master_int_signal & MASTER_INT_SIGNAL_SQ_INT_STAT_MASK) >> MASTER_INT_SIGNAL_SQ_INT_STAT_SHIFT)
+#define MASTER_INT_SIGNAL_GET_CP_INT_STAT(master_int_signal) \
+ ((master_int_signal & MASTER_INT_SIGNAL_CP_INT_STAT_MASK) >> MASTER_INT_SIGNAL_CP_INT_STAT_SHIFT)
+#define MASTER_INT_SIGNAL_GET_RBBM_INT_STAT(master_int_signal) \
+ ((master_int_signal & MASTER_INT_SIGNAL_RBBM_INT_STAT_MASK) >> MASTER_INT_SIGNAL_RBBM_INT_STAT_SHIFT)
+
+#define MASTER_INT_SIGNAL_SET_MH_INT_STAT(master_int_signal_reg, mh_int_stat) \
+ master_int_signal_reg = (master_int_signal_reg & ~MASTER_INT_SIGNAL_MH_INT_STAT_MASK) | (mh_int_stat << MASTER_INT_SIGNAL_MH_INT_STAT_SHIFT)
+#define MASTER_INT_SIGNAL_SET_SQ_INT_STAT(master_int_signal_reg, sq_int_stat) \
+ master_int_signal_reg = (master_int_signal_reg & ~MASTER_INT_SIGNAL_SQ_INT_STAT_MASK) | (sq_int_stat << MASTER_INT_SIGNAL_SQ_INT_STAT_SHIFT)
+#define MASTER_INT_SIGNAL_SET_CP_INT_STAT(master_int_signal_reg, cp_int_stat) \
+ master_int_signal_reg = (master_int_signal_reg & ~MASTER_INT_SIGNAL_CP_INT_STAT_MASK) | (cp_int_stat << MASTER_INT_SIGNAL_CP_INT_STAT_SHIFT)
+#define MASTER_INT_SIGNAL_SET_RBBM_INT_STAT(master_int_signal_reg, rbbm_int_stat) \
+ master_int_signal_reg = (master_int_signal_reg & ~MASTER_INT_SIGNAL_RBBM_INT_STAT_MASK) | (rbbm_int_stat << MASTER_INT_SIGNAL_RBBM_INT_STAT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _master_int_signal_t {
+ unsigned int : 5;
+ unsigned int mh_int_stat : MASTER_INT_SIGNAL_MH_INT_STAT_SIZE;
+ unsigned int : 20;
+ unsigned int sq_int_stat : MASTER_INT_SIGNAL_SQ_INT_STAT_SIZE;
+ unsigned int : 3;
+ unsigned int cp_int_stat : MASTER_INT_SIGNAL_CP_INT_STAT_SIZE;
+ unsigned int rbbm_int_stat : MASTER_INT_SIGNAL_RBBM_INT_STAT_SIZE;
+ } master_int_signal_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _master_int_signal_t {
+ unsigned int rbbm_int_stat : MASTER_INT_SIGNAL_RBBM_INT_STAT_SIZE;
+ unsigned int cp_int_stat : MASTER_INT_SIGNAL_CP_INT_STAT_SIZE;
+ unsigned int : 3;
+ unsigned int sq_int_stat : MASTER_INT_SIGNAL_SQ_INT_STAT_SIZE;
+ unsigned int : 20;
+ unsigned int mh_int_stat : MASTER_INT_SIGNAL_MH_INT_STAT_SIZE;
+ unsigned int : 5;
+ } master_int_signal_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ master_int_signal_t f;
+} master_int_signal_u;
+
+
+/*
+ * RBBM_PERFCOUNTER1_SELECT struct
+ */
+
+#define RBBM_PERFCOUNTER1_SELECT_PERF_COUNT1_SEL_SIZE 6
+
+#define RBBM_PERFCOUNTER1_SELECT_PERF_COUNT1_SEL_SHIFT 0
+
+#define RBBM_PERFCOUNTER1_SELECT_PERF_COUNT1_SEL_MASK 0x0000003f
+
+#define RBBM_PERFCOUNTER1_SELECT_MASK \
+ (RBBM_PERFCOUNTER1_SELECT_PERF_COUNT1_SEL_MASK)
+
+#define RBBM_PERFCOUNTER1_SELECT(perf_count1_sel) \
+ ((perf_count1_sel << RBBM_PERFCOUNTER1_SELECT_PERF_COUNT1_SEL_SHIFT))
+
+#define RBBM_PERFCOUNTER1_SELECT_GET_PERF_COUNT1_SEL(rbbm_perfcounter1_select) \
+ ((rbbm_perfcounter1_select & RBBM_PERFCOUNTER1_SELECT_PERF_COUNT1_SEL_MASK) >> RBBM_PERFCOUNTER1_SELECT_PERF_COUNT1_SEL_SHIFT)
+
+#define RBBM_PERFCOUNTER1_SELECT_SET_PERF_COUNT1_SEL(rbbm_perfcounter1_select_reg, perf_count1_sel) \
+ rbbm_perfcounter1_select_reg = (rbbm_perfcounter1_select_reg & ~RBBM_PERFCOUNTER1_SELECT_PERF_COUNT1_SEL_MASK) | (perf_count1_sel << RBBM_PERFCOUNTER1_SELECT_PERF_COUNT1_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_perfcounter1_select_t {
+ unsigned int perf_count1_sel : RBBM_PERFCOUNTER1_SELECT_PERF_COUNT1_SEL_SIZE;
+ unsigned int : 26;
+ } rbbm_perfcounter1_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_perfcounter1_select_t {
+ unsigned int : 26;
+ unsigned int perf_count1_sel : RBBM_PERFCOUNTER1_SELECT_PERF_COUNT1_SEL_SIZE;
+ } rbbm_perfcounter1_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_perfcounter1_select_t f;
+} rbbm_perfcounter1_select_u;
+
+
+/*
+ * RBBM_PERFCOUNTER1_LO struct
+ */
+
+#define RBBM_PERFCOUNTER1_LO_PERF_COUNT1_LO_SIZE 32
+
+#define RBBM_PERFCOUNTER1_LO_PERF_COUNT1_LO_SHIFT 0
+
+#define RBBM_PERFCOUNTER1_LO_PERF_COUNT1_LO_MASK 0xffffffff
+
+#define RBBM_PERFCOUNTER1_LO_MASK \
+ (RBBM_PERFCOUNTER1_LO_PERF_COUNT1_LO_MASK)
+
+#define RBBM_PERFCOUNTER1_LO(perf_count1_lo) \
+ ((perf_count1_lo << RBBM_PERFCOUNTER1_LO_PERF_COUNT1_LO_SHIFT))
+
+#define RBBM_PERFCOUNTER1_LO_GET_PERF_COUNT1_LO(rbbm_perfcounter1_lo) \
+ ((rbbm_perfcounter1_lo & RBBM_PERFCOUNTER1_LO_PERF_COUNT1_LO_MASK) >> RBBM_PERFCOUNTER1_LO_PERF_COUNT1_LO_SHIFT)
+
+#define RBBM_PERFCOUNTER1_LO_SET_PERF_COUNT1_LO(rbbm_perfcounter1_lo_reg, perf_count1_lo) \
+ rbbm_perfcounter1_lo_reg = (rbbm_perfcounter1_lo_reg & ~RBBM_PERFCOUNTER1_LO_PERF_COUNT1_LO_MASK) | (perf_count1_lo << RBBM_PERFCOUNTER1_LO_PERF_COUNT1_LO_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_perfcounter1_lo_t {
+ unsigned int perf_count1_lo : RBBM_PERFCOUNTER1_LO_PERF_COUNT1_LO_SIZE;
+ } rbbm_perfcounter1_lo_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_perfcounter1_lo_t {
+ unsigned int perf_count1_lo : RBBM_PERFCOUNTER1_LO_PERF_COUNT1_LO_SIZE;
+ } rbbm_perfcounter1_lo_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_perfcounter1_lo_t f;
+} rbbm_perfcounter1_lo_u;
+
+
+/*
+ * RBBM_PERFCOUNTER1_HI struct
+ */
+
+#define RBBM_PERFCOUNTER1_HI_PERF_COUNT1_HI_SIZE 16
+
+#define RBBM_PERFCOUNTER1_HI_PERF_COUNT1_HI_SHIFT 0
+
+#define RBBM_PERFCOUNTER1_HI_PERF_COUNT1_HI_MASK 0x0000ffff
+
+#define RBBM_PERFCOUNTER1_HI_MASK \
+ (RBBM_PERFCOUNTER1_HI_PERF_COUNT1_HI_MASK)
+
+#define RBBM_PERFCOUNTER1_HI(perf_count1_hi) \
+ ((perf_count1_hi << RBBM_PERFCOUNTER1_HI_PERF_COUNT1_HI_SHIFT))
+
+#define RBBM_PERFCOUNTER1_HI_GET_PERF_COUNT1_HI(rbbm_perfcounter1_hi) \
+ ((rbbm_perfcounter1_hi & RBBM_PERFCOUNTER1_HI_PERF_COUNT1_HI_MASK) >> RBBM_PERFCOUNTER1_HI_PERF_COUNT1_HI_SHIFT)
+
+#define RBBM_PERFCOUNTER1_HI_SET_PERF_COUNT1_HI(rbbm_perfcounter1_hi_reg, perf_count1_hi) \
+ rbbm_perfcounter1_hi_reg = (rbbm_perfcounter1_hi_reg & ~RBBM_PERFCOUNTER1_HI_PERF_COUNT1_HI_MASK) | (perf_count1_hi << RBBM_PERFCOUNTER1_HI_PERF_COUNT1_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_perfcounter1_hi_t {
+ unsigned int perf_count1_hi : RBBM_PERFCOUNTER1_HI_PERF_COUNT1_HI_SIZE;
+ unsigned int : 16;
+ } rbbm_perfcounter1_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_perfcounter1_hi_t {
+ unsigned int : 16;
+ unsigned int perf_count1_hi : RBBM_PERFCOUNTER1_HI_PERF_COUNT1_HI_SIZE;
+ } rbbm_perfcounter1_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_perfcounter1_hi_t f;
+} rbbm_perfcounter1_hi_u;
+
+
+#endif
+
+
+#if !defined (_MH_FIDDLE_H)
+#define _MH_FIDDLE_H
+
+/*******************************************************
+ * Enums
+ *******************************************************/
+
+
+/*******************************************************
+ * Values
+ *******************************************************/
+
+
+/*******************************************************
+ * Structures
+ *******************************************************/
+
+/*
+ * MH_ARBITER_CONFIG struct
+ */
+
+#define MH_ARBITER_CONFIG_SAME_PAGE_LIMIT_SIZE 6
+#define MH_ARBITER_CONFIG_SAME_PAGE_GRANULARITY_SIZE 1
+#define MH_ARBITER_CONFIG_L1_ARB_ENABLE_SIZE 1
+#define MH_ARBITER_CONFIG_L1_ARB_HOLD_ENABLE_SIZE 1
+#define MH_ARBITER_CONFIG_L2_ARB_CONTROL_SIZE 1
+#define MH_ARBITER_CONFIG_PAGE_SIZE_SIZE 3
+#define MH_ARBITER_CONFIG_TC_REORDER_ENABLE_SIZE 1
+#define MH_ARBITER_CONFIG_TC_ARB_HOLD_ENABLE_SIZE 1
+#define MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_ENABLE_SIZE 1
+#define MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_SIZE 6
+#define MH_ARBITER_CONFIG_CP_CLNT_ENABLE_SIZE 1
+#define MH_ARBITER_CONFIG_VGT_CLNT_ENABLE_SIZE 1
+#define MH_ARBITER_CONFIG_TC_CLNT_ENABLE_SIZE 1
+#define MH_ARBITER_CONFIG_RB_CLNT_ENABLE_SIZE 1
+#define MH_ARBITER_CONFIG_PA_CLNT_ENABLE_SIZE 1
+
+#define MH_ARBITER_CONFIG_SAME_PAGE_LIMIT_SHIFT 0
+#define MH_ARBITER_CONFIG_SAME_PAGE_GRANULARITY_SHIFT 6
+#define MH_ARBITER_CONFIG_L1_ARB_ENABLE_SHIFT 7
+#define MH_ARBITER_CONFIG_L1_ARB_HOLD_ENABLE_SHIFT 8
+#define MH_ARBITER_CONFIG_L2_ARB_CONTROL_SHIFT 9
+#define MH_ARBITER_CONFIG_PAGE_SIZE_SHIFT 10
+#define MH_ARBITER_CONFIG_TC_REORDER_ENABLE_SHIFT 13
+#define MH_ARBITER_CONFIG_TC_ARB_HOLD_ENABLE_SHIFT 14
+#define MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_ENABLE_SHIFT 15
+#define MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_SHIFT 16
+#define MH_ARBITER_CONFIG_CP_CLNT_ENABLE_SHIFT 22
+#define MH_ARBITER_CONFIG_VGT_CLNT_ENABLE_SHIFT 23
+#define MH_ARBITER_CONFIG_TC_CLNT_ENABLE_SHIFT 24
+#define MH_ARBITER_CONFIG_RB_CLNT_ENABLE_SHIFT 25
+#define MH_ARBITER_CONFIG_PA_CLNT_ENABLE_SHIFT 26
+
+#define MH_ARBITER_CONFIG_SAME_PAGE_LIMIT_MASK 0x0000003f
+#define MH_ARBITER_CONFIG_SAME_PAGE_GRANULARITY_MASK 0x00000040
+#define MH_ARBITER_CONFIG_L1_ARB_ENABLE_MASK 0x00000080
+#define MH_ARBITER_CONFIG_L1_ARB_HOLD_ENABLE_MASK 0x00000100
+#define MH_ARBITER_CONFIG_L2_ARB_CONTROL_MASK 0x00000200
+#define MH_ARBITER_CONFIG_PAGE_SIZE_MASK 0x00001c00
+#define MH_ARBITER_CONFIG_TC_REORDER_ENABLE_MASK 0x00002000
+#define MH_ARBITER_CONFIG_TC_ARB_HOLD_ENABLE_MASK 0x00004000
+#define MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_ENABLE_MASK 0x00008000
+#define MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_MASK 0x003f0000
+#define MH_ARBITER_CONFIG_CP_CLNT_ENABLE_MASK 0x00400000
+#define MH_ARBITER_CONFIG_VGT_CLNT_ENABLE_MASK 0x00800000
+#define MH_ARBITER_CONFIG_TC_CLNT_ENABLE_MASK 0x01000000
+#define MH_ARBITER_CONFIG_RB_CLNT_ENABLE_MASK 0x02000000
+#define MH_ARBITER_CONFIG_PA_CLNT_ENABLE_MASK 0x04000000
+
+#define MH_ARBITER_CONFIG_MASK \
+ (MH_ARBITER_CONFIG_SAME_PAGE_LIMIT_MASK | \
+ MH_ARBITER_CONFIG_SAME_PAGE_GRANULARITY_MASK | \
+ MH_ARBITER_CONFIG_L1_ARB_ENABLE_MASK | \
+ MH_ARBITER_CONFIG_L1_ARB_HOLD_ENABLE_MASK | \
+ MH_ARBITER_CONFIG_L2_ARB_CONTROL_MASK | \
+ MH_ARBITER_CONFIG_PAGE_SIZE_MASK | \
+ MH_ARBITER_CONFIG_TC_REORDER_ENABLE_MASK | \
+ MH_ARBITER_CONFIG_TC_ARB_HOLD_ENABLE_MASK | \
+ MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_ENABLE_MASK | \
+ MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_MASK | \
+ MH_ARBITER_CONFIG_CP_CLNT_ENABLE_MASK | \
+ MH_ARBITER_CONFIG_VGT_CLNT_ENABLE_MASK | \
+ MH_ARBITER_CONFIG_TC_CLNT_ENABLE_MASK | \
+ MH_ARBITER_CONFIG_RB_CLNT_ENABLE_MASK | \
+ MH_ARBITER_CONFIG_PA_CLNT_ENABLE_MASK)
+
+#define MH_ARBITER_CONFIG(same_page_limit, same_page_granularity, l1_arb_enable, l1_arb_hold_enable, l2_arb_control, page_size, tc_reorder_enable, tc_arb_hold_enable, in_flight_limit_enable, in_flight_limit, cp_clnt_enable, vgt_clnt_enable, tc_clnt_enable, rb_clnt_enable, pa_clnt_enable) \
+ ((same_page_limit << MH_ARBITER_CONFIG_SAME_PAGE_LIMIT_SHIFT) | \
+ (same_page_granularity << MH_ARBITER_CONFIG_SAME_PAGE_GRANULARITY_SHIFT) | \
+ (l1_arb_enable << MH_ARBITER_CONFIG_L1_ARB_ENABLE_SHIFT) | \
+ (l1_arb_hold_enable << MH_ARBITER_CONFIG_L1_ARB_HOLD_ENABLE_SHIFT) | \
+ (l2_arb_control << MH_ARBITER_CONFIG_L2_ARB_CONTROL_SHIFT) | \
+ (page_size << MH_ARBITER_CONFIG_PAGE_SIZE_SHIFT) | \
+ (tc_reorder_enable << MH_ARBITER_CONFIG_TC_REORDER_ENABLE_SHIFT) | \
+ (tc_arb_hold_enable << MH_ARBITER_CONFIG_TC_ARB_HOLD_ENABLE_SHIFT) | \
+ (in_flight_limit_enable << MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_ENABLE_SHIFT) | \
+ (in_flight_limit << MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_SHIFT) | \
+ (cp_clnt_enable << MH_ARBITER_CONFIG_CP_CLNT_ENABLE_SHIFT) | \
+ (vgt_clnt_enable << MH_ARBITER_CONFIG_VGT_CLNT_ENABLE_SHIFT) | \
+ (tc_clnt_enable << MH_ARBITER_CONFIG_TC_CLNT_ENABLE_SHIFT) | \
+ (rb_clnt_enable << MH_ARBITER_CONFIG_RB_CLNT_ENABLE_SHIFT) | \
+ (pa_clnt_enable << MH_ARBITER_CONFIG_PA_CLNT_ENABLE_SHIFT))
+
+#define MH_ARBITER_CONFIG_GET_SAME_PAGE_LIMIT(mh_arbiter_config) \
+ ((mh_arbiter_config & MH_ARBITER_CONFIG_SAME_PAGE_LIMIT_MASK) >> MH_ARBITER_CONFIG_SAME_PAGE_LIMIT_SHIFT)
+#define MH_ARBITER_CONFIG_GET_SAME_PAGE_GRANULARITY(mh_arbiter_config) \
+ ((mh_arbiter_config & MH_ARBITER_CONFIG_SAME_PAGE_GRANULARITY_MASK) >> MH_ARBITER_CONFIG_SAME_PAGE_GRANULARITY_SHIFT)
+#define MH_ARBITER_CONFIG_GET_L1_ARB_ENABLE(mh_arbiter_config) \
+ ((mh_arbiter_config & MH_ARBITER_CONFIG_L1_ARB_ENABLE_MASK) >> MH_ARBITER_CONFIG_L1_ARB_ENABLE_SHIFT)
+#define MH_ARBITER_CONFIG_GET_L1_ARB_HOLD_ENABLE(mh_arbiter_config) \
+ ((mh_arbiter_config & MH_ARBITER_CONFIG_L1_ARB_HOLD_ENABLE_MASK) >> MH_ARBITER_CONFIG_L1_ARB_HOLD_ENABLE_SHIFT)
+#define MH_ARBITER_CONFIG_GET_L2_ARB_CONTROL(mh_arbiter_config) \
+ ((mh_arbiter_config & MH_ARBITER_CONFIG_L2_ARB_CONTROL_MASK) >> MH_ARBITER_CONFIG_L2_ARB_CONTROL_SHIFT)
+#define MH_ARBITER_CONFIG_GET_PAGE_SIZE(mh_arbiter_config) \
+ ((mh_arbiter_config & MH_ARBITER_CONFIG_PAGE_SIZE_MASK) >> MH_ARBITER_CONFIG_PAGE_SIZE_SHIFT)
+#define MH_ARBITER_CONFIG_GET_TC_REORDER_ENABLE(mh_arbiter_config) \
+ ((mh_arbiter_config & MH_ARBITER_CONFIG_TC_REORDER_ENABLE_MASK) >> MH_ARBITER_CONFIG_TC_REORDER_ENABLE_SHIFT)
+#define MH_ARBITER_CONFIG_GET_TC_ARB_HOLD_ENABLE(mh_arbiter_config) \
+ ((mh_arbiter_config & MH_ARBITER_CONFIG_TC_ARB_HOLD_ENABLE_MASK) >> MH_ARBITER_CONFIG_TC_ARB_HOLD_ENABLE_SHIFT)
+#define MH_ARBITER_CONFIG_GET_IN_FLIGHT_LIMIT_ENABLE(mh_arbiter_config) \
+ ((mh_arbiter_config & MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_ENABLE_MASK) >> MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_ENABLE_SHIFT)
+#define MH_ARBITER_CONFIG_GET_IN_FLIGHT_LIMIT(mh_arbiter_config) \
+ ((mh_arbiter_config & MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_MASK) >> MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_SHIFT)
+#define MH_ARBITER_CONFIG_GET_CP_CLNT_ENABLE(mh_arbiter_config) \
+ ((mh_arbiter_config & MH_ARBITER_CONFIG_CP_CLNT_ENABLE_MASK) >> MH_ARBITER_CONFIG_CP_CLNT_ENABLE_SHIFT)
+#define MH_ARBITER_CONFIG_GET_VGT_CLNT_ENABLE(mh_arbiter_config) \
+ ((mh_arbiter_config & MH_ARBITER_CONFIG_VGT_CLNT_ENABLE_MASK) >> MH_ARBITER_CONFIG_VGT_CLNT_ENABLE_SHIFT)
+#define MH_ARBITER_CONFIG_GET_TC_CLNT_ENABLE(mh_arbiter_config) \
+ ((mh_arbiter_config & MH_ARBITER_CONFIG_TC_CLNT_ENABLE_MASK) >> MH_ARBITER_CONFIG_TC_CLNT_ENABLE_SHIFT)
+#define MH_ARBITER_CONFIG_GET_RB_CLNT_ENABLE(mh_arbiter_config) \
+ ((mh_arbiter_config & MH_ARBITER_CONFIG_RB_CLNT_ENABLE_MASK) >> MH_ARBITER_CONFIG_RB_CLNT_ENABLE_SHIFT)
+#define MH_ARBITER_CONFIG_GET_PA_CLNT_ENABLE(mh_arbiter_config) \
+ ((mh_arbiter_config & MH_ARBITER_CONFIG_PA_CLNT_ENABLE_MASK) >> MH_ARBITER_CONFIG_PA_CLNT_ENABLE_SHIFT)
+
+#define MH_ARBITER_CONFIG_SET_SAME_PAGE_LIMIT(mh_arbiter_config_reg, same_page_limit) \
+ mh_arbiter_config_reg = (mh_arbiter_config_reg & ~MH_ARBITER_CONFIG_SAME_PAGE_LIMIT_MASK) | (same_page_limit << MH_ARBITER_CONFIG_SAME_PAGE_LIMIT_SHIFT)
+#define MH_ARBITER_CONFIG_SET_SAME_PAGE_GRANULARITY(mh_arbiter_config_reg, same_page_granularity) \
+ mh_arbiter_config_reg = (mh_arbiter_config_reg & ~MH_ARBITER_CONFIG_SAME_PAGE_GRANULARITY_MASK) | (same_page_granularity << MH_ARBITER_CONFIG_SAME_PAGE_GRANULARITY_SHIFT)
+#define MH_ARBITER_CONFIG_SET_L1_ARB_ENABLE(mh_arbiter_config_reg, l1_arb_enable) \
+ mh_arbiter_config_reg = (mh_arbiter_config_reg & ~MH_ARBITER_CONFIG_L1_ARB_ENABLE_MASK) | (l1_arb_enable << MH_ARBITER_CONFIG_L1_ARB_ENABLE_SHIFT)
+#define MH_ARBITER_CONFIG_SET_L1_ARB_HOLD_ENABLE(mh_arbiter_config_reg, l1_arb_hold_enable) \
+ mh_arbiter_config_reg = (mh_arbiter_config_reg & ~MH_ARBITER_CONFIG_L1_ARB_HOLD_ENABLE_MASK) | (l1_arb_hold_enable << MH_ARBITER_CONFIG_L1_ARB_HOLD_ENABLE_SHIFT)
+#define MH_ARBITER_CONFIG_SET_L2_ARB_CONTROL(mh_arbiter_config_reg, l2_arb_control) \
+ mh_arbiter_config_reg = (mh_arbiter_config_reg & ~MH_ARBITER_CONFIG_L2_ARB_CONTROL_MASK) | (l2_arb_control << MH_ARBITER_CONFIG_L2_ARB_CONTROL_SHIFT)
+#define MH_ARBITER_CONFIG_SET_PAGE_SIZE(mh_arbiter_config_reg, page_size) \
+ mh_arbiter_config_reg = (mh_arbiter_config_reg & ~MH_ARBITER_CONFIG_PAGE_SIZE_MASK) | (page_size << MH_ARBITER_CONFIG_PAGE_SIZE_SHIFT)
+#define MH_ARBITER_CONFIG_SET_TC_REORDER_ENABLE(mh_arbiter_config_reg, tc_reorder_enable) \
+ mh_arbiter_config_reg = (mh_arbiter_config_reg & ~MH_ARBITER_CONFIG_TC_REORDER_ENABLE_MASK) | (tc_reorder_enable << MH_ARBITER_CONFIG_TC_REORDER_ENABLE_SHIFT)
+#define MH_ARBITER_CONFIG_SET_TC_ARB_HOLD_ENABLE(mh_arbiter_config_reg, tc_arb_hold_enable) \
+ mh_arbiter_config_reg = (mh_arbiter_config_reg & ~MH_ARBITER_CONFIG_TC_ARB_HOLD_ENABLE_MASK) | (tc_arb_hold_enable << MH_ARBITER_CONFIG_TC_ARB_HOLD_ENABLE_SHIFT)
+#define MH_ARBITER_CONFIG_SET_IN_FLIGHT_LIMIT_ENABLE(mh_arbiter_config_reg, in_flight_limit_enable) \
+ mh_arbiter_config_reg = (mh_arbiter_config_reg & ~MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_ENABLE_MASK) | (in_flight_limit_enable << MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_ENABLE_SHIFT)
+#define MH_ARBITER_CONFIG_SET_IN_FLIGHT_LIMIT(mh_arbiter_config_reg, in_flight_limit) \
+ mh_arbiter_config_reg = (mh_arbiter_config_reg & ~MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_MASK) | (in_flight_limit << MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_SHIFT)
+#define MH_ARBITER_CONFIG_SET_CP_CLNT_ENABLE(mh_arbiter_config_reg, cp_clnt_enable) \
+ mh_arbiter_config_reg = (mh_arbiter_config_reg & ~MH_ARBITER_CONFIG_CP_CLNT_ENABLE_MASK) | (cp_clnt_enable << MH_ARBITER_CONFIG_CP_CLNT_ENABLE_SHIFT)
+#define MH_ARBITER_CONFIG_SET_VGT_CLNT_ENABLE(mh_arbiter_config_reg, vgt_clnt_enable) \
+ mh_arbiter_config_reg = (mh_arbiter_config_reg & ~MH_ARBITER_CONFIG_VGT_CLNT_ENABLE_MASK) | (vgt_clnt_enable << MH_ARBITER_CONFIG_VGT_CLNT_ENABLE_SHIFT)
+#define MH_ARBITER_CONFIG_SET_TC_CLNT_ENABLE(mh_arbiter_config_reg, tc_clnt_enable) \
+ mh_arbiter_config_reg = (mh_arbiter_config_reg & ~MH_ARBITER_CONFIG_TC_CLNT_ENABLE_MASK) | (tc_clnt_enable << MH_ARBITER_CONFIG_TC_CLNT_ENABLE_SHIFT)
+#define MH_ARBITER_CONFIG_SET_RB_CLNT_ENABLE(mh_arbiter_config_reg, rb_clnt_enable) \
+ mh_arbiter_config_reg = (mh_arbiter_config_reg & ~MH_ARBITER_CONFIG_RB_CLNT_ENABLE_MASK) | (rb_clnt_enable << MH_ARBITER_CONFIG_RB_CLNT_ENABLE_SHIFT)
+#define MH_ARBITER_CONFIG_SET_PA_CLNT_ENABLE(mh_arbiter_config_reg, pa_clnt_enable) \
+ mh_arbiter_config_reg = (mh_arbiter_config_reg & ~MH_ARBITER_CONFIG_PA_CLNT_ENABLE_MASK) | (pa_clnt_enable << MH_ARBITER_CONFIG_PA_CLNT_ENABLE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_arbiter_config_t {
+ unsigned int same_page_limit : MH_ARBITER_CONFIG_SAME_PAGE_LIMIT_SIZE;
+ unsigned int same_page_granularity : MH_ARBITER_CONFIG_SAME_PAGE_GRANULARITY_SIZE;
+ unsigned int l1_arb_enable : MH_ARBITER_CONFIG_L1_ARB_ENABLE_SIZE;
+ unsigned int l1_arb_hold_enable : MH_ARBITER_CONFIG_L1_ARB_HOLD_ENABLE_SIZE;
+ unsigned int l2_arb_control : MH_ARBITER_CONFIG_L2_ARB_CONTROL_SIZE;
+ unsigned int page_size : MH_ARBITER_CONFIG_PAGE_SIZE_SIZE;
+ unsigned int tc_reorder_enable : MH_ARBITER_CONFIG_TC_REORDER_ENABLE_SIZE;
+ unsigned int tc_arb_hold_enable : MH_ARBITER_CONFIG_TC_ARB_HOLD_ENABLE_SIZE;
+ unsigned int in_flight_limit_enable : MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_ENABLE_SIZE;
+ unsigned int in_flight_limit : MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_SIZE;
+ unsigned int cp_clnt_enable : MH_ARBITER_CONFIG_CP_CLNT_ENABLE_SIZE;
+ unsigned int vgt_clnt_enable : MH_ARBITER_CONFIG_VGT_CLNT_ENABLE_SIZE;
+ unsigned int tc_clnt_enable : MH_ARBITER_CONFIG_TC_CLNT_ENABLE_SIZE;
+ unsigned int rb_clnt_enable : MH_ARBITER_CONFIG_RB_CLNT_ENABLE_SIZE;
+ unsigned int pa_clnt_enable : MH_ARBITER_CONFIG_PA_CLNT_ENABLE_SIZE;
+ unsigned int : 5;
+ } mh_arbiter_config_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_arbiter_config_t {
+ unsigned int : 5;
+ unsigned int pa_clnt_enable : MH_ARBITER_CONFIG_PA_CLNT_ENABLE_SIZE;
+ unsigned int rb_clnt_enable : MH_ARBITER_CONFIG_RB_CLNT_ENABLE_SIZE;
+ unsigned int tc_clnt_enable : MH_ARBITER_CONFIG_TC_CLNT_ENABLE_SIZE;
+ unsigned int vgt_clnt_enable : MH_ARBITER_CONFIG_VGT_CLNT_ENABLE_SIZE;
+ unsigned int cp_clnt_enable : MH_ARBITER_CONFIG_CP_CLNT_ENABLE_SIZE;
+ unsigned int in_flight_limit : MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_SIZE;
+ unsigned int in_flight_limit_enable : MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_ENABLE_SIZE;
+ unsigned int tc_arb_hold_enable : MH_ARBITER_CONFIG_TC_ARB_HOLD_ENABLE_SIZE;
+ unsigned int tc_reorder_enable : MH_ARBITER_CONFIG_TC_REORDER_ENABLE_SIZE;
+ unsigned int page_size : MH_ARBITER_CONFIG_PAGE_SIZE_SIZE;
+ unsigned int l2_arb_control : MH_ARBITER_CONFIG_L2_ARB_CONTROL_SIZE;
+ unsigned int l1_arb_hold_enable : MH_ARBITER_CONFIG_L1_ARB_HOLD_ENABLE_SIZE;
+ unsigned int l1_arb_enable : MH_ARBITER_CONFIG_L1_ARB_ENABLE_SIZE;
+ unsigned int same_page_granularity : MH_ARBITER_CONFIG_SAME_PAGE_GRANULARITY_SIZE;
+ unsigned int same_page_limit : MH_ARBITER_CONFIG_SAME_PAGE_LIMIT_SIZE;
+ } mh_arbiter_config_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_arbiter_config_t f;
+} mh_arbiter_config_u;
+
+
+/*
+ * MH_CLNT_AXI_ID_REUSE struct
+ */
+
+#define MH_CLNT_AXI_ID_REUSE_CPw_ID_SIZE 3
+#define MH_CLNT_AXI_ID_REUSE_RESERVED1_SIZE 1
+#define MH_CLNT_AXI_ID_REUSE_RBw_ID_SIZE 3
+#define MH_CLNT_AXI_ID_REUSE_RESERVED2_SIZE 1
+#define MH_CLNT_AXI_ID_REUSE_MMUr_ID_SIZE 3
+#define MH_CLNT_AXI_ID_REUSE_RESERVED3_SIZE 1
+#define MH_CLNT_AXI_ID_REUSE_PAw_ID_SIZE 3
+
+#define MH_CLNT_AXI_ID_REUSE_CPw_ID_SHIFT 0
+#define MH_CLNT_AXI_ID_REUSE_RESERVED1_SHIFT 3
+#define MH_CLNT_AXI_ID_REUSE_RBw_ID_SHIFT 4
+#define MH_CLNT_AXI_ID_REUSE_RESERVED2_SHIFT 7
+#define MH_CLNT_AXI_ID_REUSE_MMUr_ID_SHIFT 8
+#define MH_CLNT_AXI_ID_REUSE_RESERVED3_SHIFT 11
+#define MH_CLNT_AXI_ID_REUSE_PAw_ID_SHIFT 12
+
+#define MH_CLNT_AXI_ID_REUSE_CPw_ID_MASK 0x00000007
+#define MH_CLNT_AXI_ID_REUSE_RESERVED1_MASK 0x00000008
+#define MH_CLNT_AXI_ID_REUSE_RBw_ID_MASK 0x00000070
+#define MH_CLNT_AXI_ID_REUSE_RESERVED2_MASK 0x00000080
+#define MH_CLNT_AXI_ID_REUSE_MMUr_ID_MASK 0x00000700
+#define MH_CLNT_AXI_ID_REUSE_RESERVED3_MASK 0x00000800
+#define MH_CLNT_AXI_ID_REUSE_PAw_ID_MASK 0x00007000
+
+#define MH_CLNT_AXI_ID_REUSE_MASK \
+ (MH_CLNT_AXI_ID_REUSE_CPw_ID_MASK | \
+ MH_CLNT_AXI_ID_REUSE_RESERVED1_MASK | \
+ MH_CLNT_AXI_ID_REUSE_RBw_ID_MASK | \
+ MH_CLNT_AXI_ID_REUSE_RESERVED2_MASK | \
+ MH_CLNT_AXI_ID_REUSE_MMUr_ID_MASK | \
+ MH_CLNT_AXI_ID_REUSE_RESERVED3_MASK | \
+ MH_CLNT_AXI_ID_REUSE_PAw_ID_MASK)
+
+#define MH_CLNT_AXI_ID_REUSE(cpw_id, reserved1, rbw_id, reserved2, mmur_id, reserved3, paw_id) \
+ ((cpw_id << MH_CLNT_AXI_ID_REUSE_CPw_ID_SHIFT) | \
+ (reserved1 << MH_CLNT_AXI_ID_REUSE_RESERVED1_SHIFT) | \
+ (rbw_id << MH_CLNT_AXI_ID_REUSE_RBw_ID_SHIFT) | \
+ (reserved2 << MH_CLNT_AXI_ID_REUSE_RESERVED2_SHIFT) | \
+ (mmur_id << MH_CLNT_AXI_ID_REUSE_MMUr_ID_SHIFT) | \
+ (reserved3 << MH_CLNT_AXI_ID_REUSE_RESERVED3_SHIFT) | \
+ (paw_id << MH_CLNT_AXI_ID_REUSE_PAw_ID_SHIFT))
+
+#define MH_CLNT_AXI_ID_REUSE_GET_CPw_ID(mh_clnt_axi_id_reuse) \
+ ((mh_clnt_axi_id_reuse & MH_CLNT_AXI_ID_REUSE_CPw_ID_MASK) >> MH_CLNT_AXI_ID_REUSE_CPw_ID_SHIFT)
+#define MH_CLNT_AXI_ID_REUSE_GET_RESERVED1(mh_clnt_axi_id_reuse) \
+ ((mh_clnt_axi_id_reuse & MH_CLNT_AXI_ID_REUSE_RESERVED1_MASK) >> MH_CLNT_AXI_ID_REUSE_RESERVED1_SHIFT)
+#define MH_CLNT_AXI_ID_REUSE_GET_RBw_ID(mh_clnt_axi_id_reuse) \
+ ((mh_clnt_axi_id_reuse & MH_CLNT_AXI_ID_REUSE_RBw_ID_MASK) >> MH_CLNT_AXI_ID_REUSE_RBw_ID_SHIFT)
+#define MH_CLNT_AXI_ID_REUSE_GET_RESERVED2(mh_clnt_axi_id_reuse) \
+ ((mh_clnt_axi_id_reuse & MH_CLNT_AXI_ID_REUSE_RESERVED2_MASK) >> MH_CLNT_AXI_ID_REUSE_RESERVED2_SHIFT)
+#define MH_CLNT_AXI_ID_REUSE_GET_MMUr_ID(mh_clnt_axi_id_reuse) \
+ ((mh_clnt_axi_id_reuse & MH_CLNT_AXI_ID_REUSE_MMUr_ID_MASK) >> MH_CLNT_AXI_ID_REUSE_MMUr_ID_SHIFT)
+#define MH_CLNT_AXI_ID_REUSE_GET_RESERVED3(mh_clnt_axi_id_reuse) \
+ ((mh_clnt_axi_id_reuse & MH_CLNT_AXI_ID_REUSE_RESERVED3_MASK) >> MH_CLNT_AXI_ID_REUSE_RESERVED3_SHIFT)
+#define MH_CLNT_AXI_ID_REUSE_GET_PAw_ID(mh_clnt_axi_id_reuse) \
+ ((mh_clnt_axi_id_reuse & MH_CLNT_AXI_ID_REUSE_PAw_ID_MASK) >> MH_CLNT_AXI_ID_REUSE_PAw_ID_SHIFT)
+
+#define MH_CLNT_AXI_ID_REUSE_SET_CPw_ID(mh_clnt_axi_id_reuse_reg, cpw_id) \
+ mh_clnt_axi_id_reuse_reg = (mh_clnt_axi_id_reuse_reg & ~MH_CLNT_AXI_ID_REUSE_CPw_ID_MASK) | (cpw_id << MH_CLNT_AXI_ID_REUSE_CPw_ID_SHIFT)
+#define MH_CLNT_AXI_ID_REUSE_SET_RESERVED1(mh_clnt_axi_id_reuse_reg, reserved1) \
+ mh_clnt_axi_id_reuse_reg = (mh_clnt_axi_id_reuse_reg & ~MH_CLNT_AXI_ID_REUSE_RESERVED1_MASK) | (reserved1 << MH_CLNT_AXI_ID_REUSE_RESERVED1_SHIFT)
+#define MH_CLNT_AXI_ID_REUSE_SET_RBw_ID(mh_clnt_axi_id_reuse_reg, rbw_id) \
+ mh_clnt_axi_id_reuse_reg = (mh_clnt_axi_id_reuse_reg & ~MH_CLNT_AXI_ID_REUSE_RBw_ID_MASK) | (rbw_id << MH_CLNT_AXI_ID_REUSE_RBw_ID_SHIFT)
+#define MH_CLNT_AXI_ID_REUSE_SET_RESERVED2(mh_clnt_axi_id_reuse_reg, reserved2) \
+ mh_clnt_axi_id_reuse_reg = (mh_clnt_axi_id_reuse_reg & ~MH_CLNT_AXI_ID_REUSE_RESERVED2_MASK) | (reserved2 << MH_CLNT_AXI_ID_REUSE_RESERVED2_SHIFT)
+#define MH_CLNT_AXI_ID_REUSE_SET_MMUr_ID(mh_clnt_axi_id_reuse_reg, mmur_id) \
+ mh_clnt_axi_id_reuse_reg = (mh_clnt_axi_id_reuse_reg & ~MH_CLNT_AXI_ID_REUSE_MMUr_ID_MASK) | (mmur_id << MH_CLNT_AXI_ID_REUSE_MMUr_ID_SHIFT)
+#define MH_CLNT_AXI_ID_REUSE_SET_RESERVED3(mh_clnt_axi_id_reuse_reg, reserved3) \
+ mh_clnt_axi_id_reuse_reg = (mh_clnt_axi_id_reuse_reg & ~MH_CLNT_AXI_ID_REUSE_RESERVED3_MASK) | (reserved3 << MH_CLNT_AXI_ID_REUSE_RESERVED3_SHIFT)
+#define MH_CLNT_AXI_ID_REUSE_SET_PAw_ID(mh_clnt_axi_id_reuse_reg, paw_id) \
+ mh_clnt_axi_id_reuse_reg = (mh_clnt_axi_id_reuse_reg & ~MH_CLNT_AXI_ID_REUSE_PAw_ID_MASK) | (paw_id << MH_CLNT_AXI_ID_REUSE_PAw_ID_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_clnt_axi_id_reuse_t {
+ unsigned int cpw_id : MH_CLNT_AXI_ID_REUSE_CPw_ID_SIZE;
+ unsigned int reserved1 : MH_CLNT_AXI_ID_REUSE_RESERVED1_SIZE;
+ unsigned int rbw_id : MH_CLNT_AXI_ID_REUSE_RBw_ID_SIZE;
+ unsigned int reserved2 : MH_CLNT_AXI_ID_REUSE_RESERVED2_SIZE;
+ unsigned int mmur_id : MH_CLNT_AXI_ID_REUSE_MMUr_ID_SIZE;
+ unsigned int reserved3 : MH_CLNT_AXI_ID_REUSE_RESERVED3_SIZE;
+ unsigned int paw_id : MH_CLNT_AXI_ID_REUSE_PAw_ID_SIZE;
+ unsigned int : 17;
+ } mh_clnt_axi_id_reuse_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_clnt_axi_id_reuse_t {
+ unsigned int : 17;
+ unsigned int paw_id : MH_CLNT_AXI_ID_REUSE_PAw_ID_SIZE;
+ unsigned int reserved3 : MH_CLNT_AXI_ID_REUSE_RESERVED3_SIZE;
+ unsigned int mmur_id : MH_CLNT_AXI_ID_REUSE_MMUr_ID_SIZE;
+ unsigned int reserved2 : MH_CLNT_AXI_ID_REUSE_RESERVED2_SIZE;
+ unsigned int rbw_id : MH_CLNT_AXI_ID_REUSE_RBw_ID_SIZE;
+ unsigned int reserved1 : MH_CLNT_AXI_ID_REUSE_RESERVED1_SIZE;
+ unsigned int cpw_id : MH_CLNT_AXI_ID_REUSE_CPw_ID_SIZE;
+ } mh_clnt_axi_id_reuse_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_clnt_axi_id_reuse_t f;
+} mh_clnt_axi_id_reuse_u;
+
+
+/*
+ * MH_INTERRUPT_MASK struct
+ */
+
+#define MH_INTERRUPT_MASK_AXI_READ_ERROR_SIZE 1
+#define MH_INTERRUPT_MASK_AXI_WRITE_ERROR_SIZE 1
+#define MH_INTERRUPT_MASK_MMU_PAGE_FAULT_SIZE 1
+
+#define MH_INTERRUPT_MASK_AXI_READ_ERROR_SHIFT 0
+#define MH_INTERRUPT_MASK_AXI_WRITE_ERROR_SHIFT 1
+#define MH_INTERRUPT_MASK_MMU_PAGE_FAULT_SHIFT 2
+
+#define MH_INTERRUPT_MASK_AXI_READ_ERROR_MASK 0x00000001
+#define MH_INTERRUPT_MASK_AXI_WRITE_ERROR_MASK 0x00000002
+#define MH_INTERRUPT_MASK_MMU_PAGE_FAULT_MASK 0x00000004
+
+#define MH_INTERRUPT_MASK_MASK \
+ (MH_INTERRUPT_MASK_AXI_READ_ERROR_MASK | \
+ MH_INTERRUPT_MASK_AXI_WRITE_ERROR_MASK | \
+ MH_INTERRUPT_MASK_MMU_PAGE_FAULT_MASK)
+
+#define MH_INTERRUPT_MASK(axi_read_error, axi_write_error, mmu_page_fault) \
+ ((axi_read_error << MH_INTERRUPT_MASK_AXI_READ_ERROR_SHIFT) | \
+ (axi_write_error << MH_INTERRUPT_MASK_AXI_WRITE_ERROR_SHIFT) | \
+ (mmu_page_fault << MH_INTERRUPT_MASK_MMU_PAGE_FAULT_SHIFT))
+
+#define MH_INTERRUPT_MASK_GET_AXI_READ_ERROR(mh_interrupt_mask) \
+ ((mh_interrupt_mask & MH_INTERRUPT_MASK_AXI_READ_ERROR_MASK) >> MH_INTERRUPT_MASK_AXI_READ_ERROR_SHIFT)
+#define MH_INTERRUPT_MASK_GET_AXI_WRITE_ERROR(mh_interrupt_mask) \
+ ((mh_interrupt_mask & MH_INTERRUPT_MASK_AXI_WRITE_ERROR_MASK) >> MH_INTERRUPT_MASK_AXI_WRITE_ERROR_SHIFT)
+#define MH_INTERRUPT_MASK_GET_MMU_PAGE_FAULT(mh_interrupt_mask) \
+ ((mh_interrupt_mask & MH_INTERRUPT_MASK_MMU_PAGE_FAULT_MASK) >> MH_INTERRUPT_MASK_MMU_PAGE_FAULT_SHIFT)
+
+#define MH_INTERRUPT_MASK_SET_AXI_READ_ERROR(mh_interrupt_mask_reg, axi_read_error) \
+ mh_interrupt_mask_reg = (mh_interrupt_mask_reg & ~MH_INTERRUPT_MASK_AXI_READ_ERROR_MASK) | (axi_read_error << MH_INTERRUPT_MASK_AXI_READ_ERROR_SHIFT)
+#define MH_INTERRUPT_MASK_SET_AXI_WRITE_ERROR(mh_interrupt_mask_reg, axi_write_error) \
+ mh_interrupt_mask_reg = (mh_interrupt_mask_reg & ~MH_INTERRUPT_MASK_AXI_WRITE_ERROR_MASK) | (axi_write_error << MH_INTERRUPT_MASK_AXI_WRITE_ERROR_SHIFT)
+#define MH_INTERRUPT_MASK_SET_MMU_PAGE_FAULT(mh_interrupt_mask_reg, mmu_page_fault) \
+ mh_interrupt_mask_reg = (mh_interrupt_mask_reg & ~MH_INTERRUPT_MASK_MMU_PAGE_FAULT_MASK) | (mmu_page_fault << MH_INTERRUPT_MASK_MMU_PAGE_FAULT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_interrupt_mask_t {
+ unsigned int axi_read_error : MH_INTERRUPT_MASK_AXI_READ_ERROR_SIZE;
+ unsigned int axi_write_error : MH_INTERRUPT_MASK_AXI_WRITE_ERROR_SIZE;
+ unsigned int mmu_page_fault : MH_INTERRUPT_MASK_MMU_PAGE_FAULT_SIZE;
+ unsigned int : 29;
+ } mh_interrupt_mask_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_interrupt_mask_t {
+ unsigned int : 29;
+ unsigned int mmu_page_fault : MH_INTERRUPT_MASK_MMU_PAGE_FAULT_SIZE;
+ unsigned int axi_write_error : MH_INTERRUPT_MASK_AXI_WRITE_ERROR_SIZE;
+ unsigned int axi_read_error : MH_INTERRUPT_MASK_AXI_READ_ERROR_SIZE;
+ } mh_interrupt_mask_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_interrupt_mask_t f;
+} mh_interrupt_mask_u;
+
+
+/*
+ * MH_INTERRUPT_STATUS struct
+ */
+
+#define MH_INTERRUPT_STATUS_AXI_READ_ERROR_SIZE 1
+#define MH_INTERRUPT_STATUS_AXI_WRITE_ERROR_SIZE 1
+#define MH_INTERRUPT_STATUS_MMU_PAGE_FAULT_SIZE 1
+
+#define MH_INTERRUPT_STATUS_AXI_READ_ERROR_SHIFT 0
+#define MH_INTERRUPT_STATUS_AXI_WRITE_ERROR_SHIFT 1
+#define MH_INTERRUPT_STATUS_MMU_PAGE_FAULT_SHIFT 2
+
+#define MH_INTERRUPT_STATUS_AXI_READ_ERROR_MASK 0x00000001
+#define MH_INTERRUPT_STATUS_AXI_WRITE_ERROR_MASK 0x00000002
+#define MH_INTERRUPT_STATUS_MMU_PAGE_FAULT_MASK 0x00000004
+
+#define MH_INTERRUPT_STATUS_MASK \
+ (MH_INTERRUPT_STATUS_AXI_READ_ERROR_MASK | \
+ MH_INTERRUPT_STATUS_AXI_WRITE_ERROR_MASK | \
+ MH_INTERRUPT_STATUS_MMU_PAGE_FAULT_MASK)
+
+#define MH_INTERRUPT_STATUS(axi_read_error, axi_write_error, mmu_page_fault) \
+ ((axi_read_error << MH_INTERRUPT_STATUS_AXI_READ_ERROR_SHIFT) | \
+ (axi_write_error << MH_INTERRUPT_STATUS_AXI_WRITE_ERROR_SHIFT) | \
+ (mmu_page_fault << MH_INTERRUPT_STATUS_MMU_PAGE_FAULT_SHIFT))
+
+#define MH_INTERRUPT_STATUS_GET_AXI_READ_ERROR(mh_interrupt_status) \
+ ((mh_interrupt_status & MH_INTERRUPT_STATUS_AXI_READ_ERROR_MASK) >> MH_INTERRUPT_STATUS_AXI_READ_ERROR_SHIFT)
+#define MH_INTERRUPT_STATUS_GET_AXI_WRITE_ERROR(mh_interrupt_status) \
+ ((mh_interrupt_status & MH_INTERRUPT_STATUS_AXI_WRITE_ERROR_MASK) >> MH_INTERRUPT_STATUS_AXI_WRITE_ERROR_SHIFT)
+#define MH_INTERRUPT_STATUS_GET_MMU_PAGE_FAULT(mh_interrupt_status) \
+ ((mh_interrupt_status & MH_INTERRUPT_STATUS_MMU_PAGE_FAULT_MASK) >> MH_INTERRUPT_STATUS_MMU_PAGE_FAULT_SHIFT)
+
+#define MH_INTERRUPT_STATUS_SET_AXI_READ_ERROR(mh_interrupt_status_reg, axi_read_error) \
+ mh_interrupt_status_reg = (mh_interrupt_status_reg & ~MH_INTERRUPT_STATUS_AXI_READ_ERROR_MASK) | (axi_read_error << MH_INTERRUPT_STATUS_AXI_READ_ERROR_SHIFT)
+#define MH_INTERRUPT_STATUS_SET_AXI_WRITE_ERROR(mh_interrupt_status_reg, axi_write_error) \
+ mh_interrupt_status_reg = (mh_interrupt_status_reg & ~MH_INTERRUPT_STATUS_AXI_WRITE_ERROR_MASK) | (axi_write_error << MH_INTERRUPT_STATUS_AXI_WRITE_ERROR_SHIFT)
+#define MH_INTERRUPT_STATUS_SET_MMU_PAGE_FAULT(mh_interrupt_status_reg, mmu_page_fault) \
+ mh_interrupt_status_reg = (mh_interrupt_status_reg & ~MH_INTERRUPT_STATUS_MMU_PAGE_FAULT_MASK) | (mmu_page_fault << MH_INTERRUPT_STATUS_MMU_PAGE_FAULT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_interrupt_status_t {
+ unsigned int axi_read_error : MH_INTERRUPT_STATUS_AXI_READ_ERROR_SIZE;
+ unsigned int axi_write_error : MH_INTERRUPT_STATUS_AXI_WRITE_ERROR_SIZE;
+ unsigned int mmu_page_fault : MH_INTERRUPT_STATUS_MMU_PAGE_FAULT_SIZE;
+ unsigned int : 29;
+ } mh_interrupt_status_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_interrupt_status_t {
+ unsigned int : 29;
+ unsigned int mmu_page_fault : MH_INTERRUPT_STATUS_MMU_PAGE_FAULT_SIZE;
+ unsigned int axi_write_error : MH_INTERRUPT_STATUS_AXI_WRITE_ERROR_SIZE;
+ unsigned int axi_read_error : MH_INTERRUPT_STATUS_AXI_READ_ERROR_SIZE;
+ } mh_interrupt_status_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_interrupt_status_t f;
+} mh_interrupt_status_u;
+
+
+/*
+ * MH_INTERRUPT_CLEAR struct
+ */
+
+#define MH_INTERRUPT_CLEAR_AXI_READ_ERROR_SIZE 1
+#define MH_INTERRUPT_CLEAR_AXI_WRITE_ERROR_SIZE 1
+#define MH_INTERRUPT_CLEAR_MMU_PAGE_FAULT_SIZE 1
+
+#define MH_INTERRUPT_CLEAR_AXI_READ_ERROR_SHIFT 0
+#define MH_INTERRUPT_CLEAR_AXI_WRITE_ERROR_SHIFT 1
+#define MH_INTERRUPT_CLEAR_MMU_PAGE_FAULT_SHIFT 2
+
+#define MH_INTERRUPT_CLEAR_AXI_READ_ERROR_MASK 0x00000001
+#define MH_INTERRUPT_CLEAR_AXI_WRITE_ERROR_MASK 0x00000002
+#define MH_INTERRUPT_CLEAR_MMU_PAGE_FAULT_MASK 0x00000004
+
+#define MH_INTERRUPT_CLEAR_MASK \
+ (MH_INTERRUPT_CLEAR_AXI_READ_ERROR_MASK | \
+ MH_INTERRUPT_CLEAR_AXI_WRITE_ERROR_MASK | \
+ MH_INTERRUPT_CLEAR_MMU_PAGE_FAULT_MASK)
+
+#define MH_INTERRUPT_CLEAR(axi_read_error, axi_write_error, mmu_page_fault) \
+ ((axi_read_error << MH_INTERRUPT_CLEAR_AXI_READ_ERROR_SHIFT) | \
+ (axi_write_error << MH_INTERRUPT_CLEAR_AXI_WRITE_ERROR_SHIFT) | \
+ (mmu_page_fault << MH_INTERRUPT_CLEAR_MMU_PAGE_FAULT_SHIFT))
+
+#define MH_INTERRUPT_CLEAR_GET_AXI_READ_ERROR(mh_interrupt_clear) \
+ ((mh_interrupt_clear & MH_INTERRUPT_CLEAR_AXI_READ_ERROR_MASK) >> MH_INTERRUPT_CLEAR_AXI_READ_ERROR_SHIFT)
+#define MH_INTERRUPT_CLEAR_GET_AXI_WRITE_ERROR(mh_interrupt_clear) \
+ ((mh_interrupt_clear & MH_INTERRUPT_CLEAR_AXI_WRITE_ERROR_MASK) >> MH_INTERRUPT_CLEAR_AXI_WRITE_ERROR_SHIFT)
+#define MH_INTERRUPT_CLEAR_GET_MMU_PAGE_FAULT(mh_interrupt_clear) \
+ ((mh_interrupt_clear & MH_INTERRUPT_CLEAR_MMU_PAGE_FAULT_MASK) >> MH_INTERRUPT_CLEAR_MMU_PAGE_FAULT_SHIFT)
+
+#define MH_INTERRUPT_CLEAR_SET_AXI_READ_ERROR(mh_interrupt_clear_reg, axi_read_error) \
+ mh_interrupt_clear_reg = (mh_interrupt_clear_reg & ~MH_INTERRUPT_CLEAR_AXI_READ_ERROR_MASK) | (axi_read_error << MH_INTERRUPT_CLEAR_AXI_READ_ERROR_SHIFT)
+#define MH_INTERRUPT_CLEAR_SET_AXI_WRITE_ERROR(mh_interrupt_clear_reg, axi_write_error) \
+ mh_interrupt_clear_reg = (mh_interrupt_clear_reg & ~MH_INTERRUPT_CLEAR_AXI_WRITE_ERROR_MASK) | (axi_write_error << MH_INTERRUPT_CLEAR_AXI_WRITE_ERROR_SHIFT)
+#define MH_INTERRUPT_CLEAR_SET_MMU_PAGE_FAULT(mh_interrupt_clear_reg, mmu_page_fault) \
+ mh_interrupt_clear_reg = (mh_interrupt_clear_reg & ~MH_INTERRUPT_CLEAR_MMU_PAGE_FAULT_MASK) | (mmu_page_fault << MH_INTERRUPT_CLEAR_MMU_PAGE_FAULT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_interrupt_clear_t {
+ unsigned int axi_read_error : MH_INTERRUPT_CLEAR_AXI_READ_ERROR_SIZE;
+ unsigned int axi_write_error : MH_INTERRUPT_CLEAR_AXI_WRITE_ERROR_SIZE;
+ unsigned int mmu_page_fault : MH_INTERRUPT_CLEAR_MMU_PAGE_FAULT_SIZE;
+ unsigned int : 29;
+ } mh_interrupt_clear_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_interrupt_clear_t {
+ unsigned int : 29;
+ unsigned int mmu_page_fault : MH_INTERRUPT_CLEAR_MMU_PAGE_FAULT_SIZE;
+ unsigned int axi_write_error : MH_INTERRUPT_CLEAR_AXI_WRITE_ERROR_SIZE;
+ unsigned int axi_read_error : MH_INTERRUPT_CLEAR_AXI_READ_ERROR_SIZE;
+ } mh_interrupt_clear_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_interrupt_clear_t f;
+} mh_interrupt_clear_u;
+
+
+/*
+ * MH_AXI_ERROR struct
+ */
+
+#define MH_AXI_ERROR_AXI_READ_ID_SIZE 3
+#define MH_AXI_ERROR_AXI_READ_ERROR_SIZE 1
+#define MH_AXI_ERROR_AXI_WRITE_ID_SIZE 3
+#define MH_AXI_ERROR_AXI_WRITE_ERROR_SIZE 1
+
+#define MH_AXI_ERROR_AXI_READ_ID_SHIFT 0
+#define MH_AXI_ERROR_AXI_READ_ERROR_SHIFT 3
+#define MH_AXI_ERROR_AXI_WRITE_ID_SHIFT 4
+#define MH_AXI_ERROR_AXI_WRITE_ERROR_SHIFT 7
+
+#define MH_AXI_ERROR_AXI_READ_ID_MASK 0x00000007
+#define MH_AXI_ERROR_AXI_READ_ERROR_MASK 0x00000008
+#define MH_AXI_ERROR_AXI_WRITE_ID_MASK 0x00000070
+#define MH_AXI_ERROR_AXI_WRITE_ERROR_MASK 0x00000080
+
+#define MH_AXI_ERROR_MASK \
+ (MH_AXI_ERROR_AXI_READ_ID_MASK | \
+ MH_AXI_ERROR_AXI_READ_ERROR_MASK | \
+ MH_AXI_ERROR_AXI_WRITE_ID_MASK | \
+ MH_AXI_ERROR_AXI_WRITE_ERROR_MASK)
+
+#define MH_AXI_ERROR(axi_read_id, axi_read_error, axi_write_id, axi_write_error) \
+ ((axi_read_id << MH_AXI_ERROR_AXI_READ_ID_SHIFT) | \
+ (axi_read_error << MH_AXI_ERROR_AXI_READ_ERROR_SHIFT) | \
+ (axi_write_id << MH_AXI_ERROR_AXI_WRITE_ID_SHIFT) | \
+ (axi_write_error << MH_AXI_ERROR_AXI_WRITE_ERROR_SHIFT))
+
+#define MH_AXI_ERROR_GET_AXI_READ_ID(mh_axi_error) \
+ ((mh_axi_error & MH_AXI_ERROR_AXI_READ_ID_MASK) >> MH_AXI_ERROR_AXI_READ_ID_SHIFT)
+#define MH_AXI_ERROR_GET_AXI_READ_ERROR(mh_axi_error) \
+ ((mh_axi_error & MH_AXI_ERROR_AXI_READ_ERROR_MASK) >> MH_AXI_ERROR_AXI_READ_ERROR_SHIFT)
+#define MH_AXI_ERROR_GET_AXI_WRITE_ID(mh_axi_error) \
+ ((mh_axi_error & MH_AXI_ERROR_AXI_WRITE_ID_MASK) >> MH_AXI_ERROR_AXI_WRITE_ID_SHIFT)
+#define MH_AXI_ERROR_GET_AXI_WRITE_ERROR(mh_axi_error) \
+ ((mh_axi_error & MH_AXI_ERROR_AXI_WRITE_ERROR_MASK) >> MH_AXI_ERROR_AXI_WRITE_ERROR_SHIFT)
+
+#define MH_AXI_ERROR_SET_AXI_READ_ID(mh_axi_error_reg, axi_read_id) \
+ mh_axi_error_reg = (mh_axi_error_reg & ~MH_AXI_ERROR_AXI_READ_ID_MASK) | (axi_read_id << MH_AXI_ERROR_AXI_READ_ID_SHIFT)
+#define MH_AXI_ERROR_SET_AXI_READ_ERROR(mh_axi_error_reg, axi_read_error) \
+ mh_axi_error_reg = (mh_axi_error_reg & ~MH_AXI_ERROR_AXI_READ_ERROR_MASK) | (axi_read_error << MH_AXI_ERROR_AXI_READ_ERROR_SHIFT)
+#define MH_AXI_ERROR_SET_AXI_WRITE_ID(mh_axi_error_reg, axi_write_id) \
+ mh_axi_error_reg = (mh_axi_error_reg & ~MH_AXI_ERROR_AXI_WRITE_ID_MASK) | (axi_write_id << MH_AXI_ERROR_AXI_WRITE_ID_SHIFT)
+#define MH_AXI_ERROR_SET_AXI_WRITE_ERROR(mh_axi_error_reg, axi_write_error) \
+ mh_axi_error_reg = (mh_axi_error_reg & ~MH_AXI_ERROR_AXI_WRITE_ERROR_MASK) | (axi_write_error << MH_AXI_ERROR_AXI_WRITE_ERROR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_axi_error_t {
+ unsigned int axi_read_id : MH_AXI_ERROR_AXI_READ_ID_SIZE;
+ unsigned int axi_read_error : MH_AXI_ERROR_AXI_READ_ERROR_SIZE;
+ unsigned int axi_write_id : MH_AXI_ERROR_AXI_WRITE_ID_SIZE;
+ unsigned int axi_write_error : MH_AXI_ERROR_AXI_WRITE_ERROR_SIZE;
+ unsigned int : 24;
+ } mh_axi_error_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_axi_error_t {
+ unsigned int : 24;
+ unsigned int axi_write_error : MH_AXI_ERROR_AXI_WRITE_ERROR_SIZE;
+ unsigned int axi_write_id : MH_AXI_ERROR_AXI_WRITE_ID_SIZE;
+ unsigned int axi_read_error : MH_AXI_ERROR_AXI_READ_ERROR_SIZE;
+ unsigned int axi_read_id : MH_AXI_ERROR_AXI_READ_ID_SIZE;
+ } mh_axi_error_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_axi_error_t f;
+} mh_axi_error_u;
+
+
+/*
+ * MH_PERFCOUNTER0_SELECT struct
+ */
+
+#define MH_PERFCOUNTER0_SELECT_PERF_SEL_SIZE 8
+
+#define MH_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT 0
+
+#define MH_PERFCOUNTER0_SELECT_PERF_SEL_MASK 0x000000ff
+
+#define MH_PERFCOUNTER0_SELECT_MASK \
+ (MH_PERFCOUNTER0_SELECT_PERF_SEL_MASK)
+
+#define MH_PERFCOUNTER0_SELECT(perf_sel) \
+ ((perf_sel << MH_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT))
+
+#define MH_PERFCOUNTER0_SELECT_GET_PERF_SEL(mh_perfcounter0_select) \
+ ((mh_perfcounter0_select & MH_PERFCOUNTER0_SELECT_PERF_SEL_MASK) >> MH_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT)
+
+#define MH_PERFCOUNTER0_SELECT_SET_PERF_SEL(mh_perfcounter0_select_reg, perf_sel) \
+ mh_perfcounter0_select_reg = (mh_perfcounter0_select_reg & ~MH_PERFCOUNTER0_SELECT_PERF_SEL_MASK) | (perf_sel << MH_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_perfcounter0_select_t {
+ unsigned int perf_sel : MH_PERFCOUNTER0_SELECT_PERF_SEL_SIZE;
+ unsigned int : 24;
+ } mh_perfcounter0_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_perfcounter0_select_t {
+ unsigned int : 24;
+ unsigned int perf_sel : MH_PERFCOUNTER0_SELECT_PERF_SEL_SIZE;
+ } mh_perfcounter0_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_perfcounter0_select_t f;
+} mh_perfcounter0_select_u;
+
+
+/*
+ * MH_PERFCOUNTER1_SELECT struct
+ */
+
+#define MH_PERFCOUNTER1_SELECT_PERF_SEL_SIZE 8
+
+#define MH_PERFCOUNTER1_SELECT_PERF_SEL_SHIFT 0
+
+#define MH_PERFCOUNTER1_SELECT_PERF_SEL_MASK 0x000000ff
+
+#define MH_PERFCOUNTER1_SELECT_MASK \
+ (MH_PERFCOUNTER1_SELECT_PERF_SEL_MASK)
+
+#define MH_PERFCOUNTER1_SELECT(perf_sel) \
+ ((perf_sel << MH_PERFCOUNTER1_SELECT_PERF_SEL_SHIFT))
+
+#define MH_PERFCOUNTER1_SELECT_GET_PERF_SEL(mh_perfcounter1_select) \
+ ((mh_perfcounter1_select & MH_PERFCOUNTER1_SELECT_PERF_SEL_MASK) >> MH_PERFCOUNTER1_SELECT_PERF_SEL_SHIFT)
+
+#define MH_PERFCOUNTER1_SELECT_SET_PERF_SEL(mh_perfcounter1_select_reg, perf_sel) \
+ mh_perfcounter1_select_reg = (mh_perfcounter1_select_reg & ~MH_PERFCOUNTER1_SELECT_PERF_SEL_MASK) | (perf_sel << MH_PERFCOUNTER1_SELECT_PERF_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_perfcounter1_select_t {
+ unsigned int perf_sel : MH_PERFCOUNTER1_SELECT_PERF_SEL_SIZE;
+ unsigned int : 24;
+ } mh_perfcounter1_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_perfcounter1_select_t {
+ unsigned int : 24;
+ unsigned int perf_sel : MH_PERFCOUNTER1_SELECT_PERF_SEL_SIZE;
+ } mh_perfcounter1_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_perfcounter1_select_t f;
+} mh_perfcounter1_select_u;
+
+
+/*
+ * MH_PERFCOUNTER0_CONFIG struct
+ */
+
+#define MH_PERFCOUNTER0_CONFIG_N_VALUE_SIZE 8
+
+#define MH_PERFCOUNTER0_CONFIG_N_VALUE_SHIFT 0
+
+#define MH_PERFCOUNTER0_CONFIG_N_VALUE_MASK 0x000000ff
+
+#define MH_PERFCOUNTER0_CONFIG_MASK \
+ (MH_PERFCOUNTER0_CONFIG_N_VALUE_MASK)
+
+#define MH_PERFCOUNTER0_CONFIG(n_value) \
+ ((n_value << MH_PERFCOUNTER0_CONFIG_N_VALUE_SHIFT))
+
+#define MH_PERFCOUNTER0_CONFIG_GET_N_VALUE(mh_perfcounter0_config) \
+ ((mh_perfcounter0_config & MH_PERFCOUNTER0_CONFIG_N_VALUE_MASK) >> MH_PERFCOUNTER0_CONFIG_N_VALUE_SHIFT)
+
+#define MH_PERFCOUNTER0_CONFIG_SET_N_VALUE(mh_perfcounter0_config_reg, n_value) \
+ mh_perfcounter0_config_reg = (mh_perfcounter0_config_reg & ~MH_PERFCOUNTER0_CONFIG_N_VALUE_MASK) | (n_value << MH_PERFCOUNTER0_CONFIG_N_VALUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_perfcounter0_config_t {
+ unsigned int n_value : MH_PERFCOUNTER0_CONFIG_N_VALUE_SIZE;
+ unsigned int : 24;
+ } mh_perfcounter0_config_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_perfcounter0_config_t {
+ unsigned int : 24;
+ unsigned int n_value : MH_PERFCOUNTER0_CONFIG_N_VALUE_SIZE;
+ } mh_perfcounter0_config_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_perfcounter0_config_t f;
+} mh_perfcounter0_config_u;
+
+
+/*
+ * MH_PERFCOUNTER1_CONFIG struct
+ */
+
+#define MH_PERFCOUNTER1_CONFIG_N_VALUE_SIZE 8
+
+#define MH_PERFCOUNTER1_CONFIG_N_VALUE_SHIFT 0
+
+#define MH_PERFCOUNTER1_CONFIG_N_VALUE_MASK 0x000000ff
+
+#define MH_PERFCOUNTER1_CONFIG_MASK \
+ (MH_PERFCOUNTER1_CONFIG_N_VALUE_MASK)
+
+#define MH_PERFCOUNTER1_CONFIG(n_value) \
+ ((n_value << MH_PERFCOUNTER1_CONFIG_N_VALUE_SHIFT))
+
+#define MH_PERFCOUNTER1_CONFIG_GET_N_VALUE(mh_perfcounter1_config) \
+ ((mh_perfcounter1_config & MH_PERFCOUNTER1_CONFIG_N_VALUE_MASK) >> MH_PERFCOUNTER1_CONFIG_N_VALUE_SHIFT)
+
+#define MH_PERFCOUNTER1_CONFIG_SET_N_VALUE(mh_perfcounter1_config_reg, n_value) \
+ mh_perfcounter1_config_reg = (mh_perfcounter1_config_reg & ~MH_PERFCOUNTER1_CONFIG_N_VALUE_MASK) | (n_value << MH_PERFCOUNTER1_CONFIG_N_VALUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_perfcounter1_config_t {
+ unsigned int n_value : MH_PERFCOUNTER1_CONFIG_N_VALUE_SIZE;
+ unsigned int : 24;
+ } mh_perfcounter1_config_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_perfcounter1_config_t {
+ unsigned int : 24;
+ unsigned int n_value : MH_PERFCOUNTER1_CONFIG_N_VALUE_SIZE;
+ } mh_perfcounter1_config_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_perfcounter1_config_t f;
+} mh_perfcounter1_config_u;
+
+
+/*
+ * MH_PERFCOUNTER0_LOW struct
+ */
+
+#define MH_PERFCOUNTER0_LOW_PERF_COUNTER_LOW_SIZE 32
+
+#define MH_PERFCOUNTER0_LOW_PERF_COUNTER_LOW_SHIFT 0
+
+#define MH_PERFCOUNTER0_LOW_PERF_COUNTER_LOW_MASK 0xffffffff
+
+#define MH_PERFCOUNTER0_LOW_MASK \
+ (MH_PERFCOUNTER0_LOW_PERF_COUNTER_LOW_MASK)
+
+#define MH_PERFCOUNTER0_LOW(perf_counter_low) \
+ ((perf_counter_low << MH_PERFCOUNTER0_LOW_PERF_COUNTER_LOW_SHIFT))
+
+#define MH_PERFCOUNTER0_LOW_GET_PERF_COUNTER_LOW(mh_perfcounter0_low) \
+ ((mh_perfcounter0_low & MH_PERFCOUNTER0_LOW_PERF_COUNTER_LOW_MASK) >> MH_PERFCOUNTER0_LOW_PERF_COUNTER_LOW_SHIFT)
+
+#define MH_PERFCOUNTER0_LOW_SET_PERF_COUNTER_LOW(mh_perfcounter0_low_reg, perf_counter_low) \
+ mh_perfcounter0_low_reg = (mh_perfcounter0_low_reg & ~MH_PERFCOUNTER0_LOW_PERF_COUNTER_LOW_MASK) | (perf_counter_low << MH_PERFCOUNTER0_LOW_PERF_COUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_perfcounter0_low_t {
+ unsigned int perf_counter_low : MH_PERFCOUNTER0_LOW_PERF_COUNTER_LOW_SIZE;
+ } mh_perfcounter0_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_perfcounter0_low_t {
+ unsigned int perf_counter_low : MH_PERFCOUNTER0_LOW_PERF_COUNTER_LOW_SIZE;
+ } mh_perfcounter0_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_perfcounter0_low_t f;
+} mh_perfcounter0_low_u;
+
+
+/*
+ * MH_PERFCOUNTER1_LOW struct
+ */
+
+#define MH_PERFCOUNTER1_LOW_PERF_COUNTER_LOW_SIZE 32
+
+#define MH_PERFCOUNTER1_LOW_PERF_COUNTER_LOW_SHIFT 0
+
+#define MH_PERFCOUNTER1_LOW_PERF_COUNTER_LOW_MASK 0xffffffff
+
+#define MH_PERFCOUNTER1_LOW_MASK \
+ (MH_PERFCOUNTER1_LOW_PERF_COUNTER_LOW_MASK)
+
+#define MH_PERFCOUNTER1_LOW(perf_counter_low) \
+ ((perf_counter_low << MH_PERFCOUNTER1_LOW_PERF_COUNTER_LOW_SHIFT))
+
+#define MH_PERFCOUNTER1_LOW_GET_PERF_COUNTER_LOW(mh_perfcounter1_low) \
+ ((mh_perfcounter1_low & MH_PERFCOUNTER1_LOW_PERF_COUNTER_LOW_MASK) >> MH_PERFCOUNTER1_LOW_PERF_COUNTER_LOW_SHIFT)
+
+#define MH_PERFCOUNTER1_LOW_SET_PERF_COUNTER_LOW(mh_perfcounter1_low_reg, perf_counter_low) \
+ mh_perfcounter1_low_reg = (mh_perfcounter1_low_reg & ~MH_PERFCOUNTER1_LOW_PERF_COUNTER_LOW_MASK) | (perf_counter_low << MH_PERFCOUNTER1_LOW_PERF_COUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_perfcounter1_low_t {
+ unsigned int perf_counter_low : MH_PERFCOUNTER1_LOW_PERF_COUNTER_LOW_SIZE;
+ } mh_perfcounter1_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_perfcounter1_low_t {
+ unsigned int perf_counter_low : MH_PERFCOUNTER1_LOW_PERF_COUNTER_LOW_SIZE;
+ } mh_perfcounter1_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_perfcounter1_low_t f;
+} mh_perfcounter1_low_u;
+
+
+/*
+ * MH_PERFCOUNTER0_HI struct
+ */
+
+#define MH_PERFCOUNTER0_HI_PERF_COUNTER_HI_SIZE 16
+
+#define MH_PERFCOUNTER0_HI_PERF_COUNTER_HI_SHIFT 0
+
+#define MH_PERFCOUNTER0_HI_PERF_COUNTER_HI_MASK 0x0000ffff
+
+#define MH_PERFCOUNTER0_HI_MASK \
+ (MH_PERFCOUNTER0_HI_PERF_COUNTER_HI_MASK)
+
+#define MH_PERFCOUNTER0_HI(perf_counter_hi) \
+ ((perf_counter_hi << MH_PERFCOUNTER0_HI_PERF_COUNTER_HI_SHIFT))
+
+#define MH_PERFCOUNTER0_HI_GET_PERF_COUNTER_HI(mh_perfcounter0_hi) \
+ ((mh_perfcounter0_hi & MH_PERFCOUNTER0_HI_PERF_COUNTER_HI_MASK) >> MH_PERFCOUNTER0_HI_PERF_COUNTER_HI_SHIFT)
+
+#define MH_PERFCOUNTER0_HI_SET_PERF_COUNTER_HI(mh_perfcounter0_hi_reg, perf_counter_hi) \
+ mh_perfcounter0_hi_reg = (mh_perfcounter0_hi_reg & ~MH_PERFCOUNTER0_HI_PERF_COUNTER_HI_MASK) | (perf_counter_hi << MH_PERFCOUNTER0_HI_PERF_COUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_perfcounter0_hi_t {
+ unsigned int perf_counter_hi : MH_PERFCOUNTER0_HI_PERF_COUNTER_HI_SIZE;
+ unsigned int : 16;
+ } mh_perfcounter0_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_perfcounter0_hi_t {
+ unsigned int : 16;
+ unsigned int perf_counter_hi : MH_PERFCOUNTER0_HI_PERF_COUNTER_HI_SIZE;
+ } mh_perfcounter0_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_perfcounter0_hi_t f;
+} mh_perfcounter0_hi_u;
+
+
+/*
+ * MH_PERFCOUNTER1_HI struct
+ */
+
+#define MH_PERFCOUNTER1_HI_PERF_COUNTER_HI_SIZE 16
+
+#define MH_PERFCOUNTER1_HI_PERF_COUNTER_HI_SHIFT 0
+
+#define MH_PERFCOUNTER1_HI_PERF_COUNTER_HI_MASK 0x0000ffff
+
+#define MH_PERFCOUNTER1_HI_MASK \
+ (MH_PERFCOUNTER1_HI_PERF_COUNTER_HI_MASK)
+
+#define MH_PERFCOUNTER1_HI(perf_counter_hi) \
+ ((perf_counter_hi << MH_PERFCOUNTER1_HI_PERF_COUNTER_HI_SHIFT))
+
+#define MH_PERFCOUNTER1_HI_GET_PERF_COUNTER_HI(mh_perfcounter1_hi) \
+ ((mh_perfcounter1_hi & MH_PERFCOUNTER1_HI_PERF_COUNTER_HI_MASK) >> MH_PERFCOUNTER1_HI_PERF_COUNTER_HI_SHIFT)
+
+#define MH_PERFCOUNTER1_HI_SET_PERF_COUNTER_HI(mh_perfcounter1_hi_reg, perf_counter_hi) \
+ mh_perfcounter1_hi_reg = (mh_perfcounter1_hi_reg & ~MH_PERFCOUNTER1_HI_PERF_COUNTER_HI_MASK) | (perf_counter_hi << MH_PERFCOUNTER1_HI_PERF_COUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_perfcounter1_hi_t {
+ unsigned int perf_counter_hi : MH_PERFCOUNTER1_HI_PERF_COUNTER_HI_SIZE;
+ unsigned int : 16;
+ } mh_perfcounter1_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_perfcounter1_hi_t {
+ unsigned int : 16;
+ unsigned int perf_counter_hi : MH_PERFCOUNTER1_HI_PERF_COUNTER_HI_SIZE;
+ } mh_perfcounter1_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_perfcounter1_hi_t f;
+} mh_perfcounter1_hi_u;
+
+
+/*
+ * MH_DEBUG_CTRL struct
+ */
+
+#define MH_DEBUG_CTRL_INDEX_SIZE 6
+
+#define MH_DEBUG_CTRL_INDEX_SHIFT 0
+
+#define MH_DEBUG_CTRL_INDEX_MASK 0x0000003f
+
+#define MH_DEBUG_CTRL_MASK \
+ (MH_DEBUG_CTRL_INDEX_MASK)
+
+#define MH_DEBUG_CTRL(index) \
+ ((index << MH_DEBUG_CTRL_INDEX_SHIFT))
+
+#define MH_DEBUG_CTRL_GET_INDEX(mh_debug_ctrl) \
+ ((mh_debug_ctrl & MH_DEBUG_CTRL_INDEX_MASK) >> MH_DEBUG_CTRL_INDEX_SHIFT)
+
+#define MH_DEBUG_CTRL_SET_INDEX(mh_debug_ctrl_reg, index) \
+ mh_debug_ctrl_reg = (mh_debug_ctrl_reg & ~MH_DEBUG_CTRL_INDEX_MASK) | (index << MH_DEBUG_CTRL_INDEX_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_ctrl_t {
+ unsigned int index : MH_DEBUG_CTRL_INDEX_SIZE;
+ unsigned int : 26;
+ } mh_debug_ctrl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_ctrl_t {
+ unsigned int : 26;
+ unsigned int index : MH_DEBUG_CTRL_INDEX_SIZE;
+ } mh_debug_ctrl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_ctrl_t f;
+} mh_debug_ctrl_u;
+
+
+/*
+ * MH_DEBUG_DATA struct
+ */
+
+#define MH_DEBUG_DATA_DATA_SIZE 32
+
+#define MH_DEBUG_DATA_DATA_SHIFT 0
+
+#define MH_DEBUG_DATA_DATA_MASK 0xffffffff
+
+#define MH_DEBUG_DATA_MASK \
+ (MH_DEBUG_DATA_DATA_MASK)
+
+#define MH_DEBUG_DATA(data) \
+ ((data << MH_DEBUG_DATA_DATA_SHIFT))
+
+#define MH_DEBUG_DATA_GET_DATA(mh_debug_data) \
+ ((mh_debug_data & MH_DEBUG_DATA_DATA_MASK) >> MH_DEBUG_DATA_DATA_SHIFT)
+
+#define MH_DEBUG_DATA_SET_DATA(mh_debug_data_reg, data) \
+ mh_debug_data_reg = (mh_debug_data_reg & ~MH_DEBUG_DATA_DATA_MASK) | (data << MH_DEBUG_DATA_DATA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_data_t {
+ unsigned int data : MH_DEBUG_DATA_DATA_SIZE;
+ } mh_debug_data_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_data_t {
+ unsigned int data : MH_DEBUG_DATA_DATA_SIZE;
+ } mh_debug_data_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_data_t f;
+} mh_debug_data_u;
+
+
+/*
+ * MH_AXI_HALT_CONTROL struct
+ */
+
+#define MH_AXI_HALT_CONTROL_AXI_HALT_SIZE 1
+
+#define MH_AXI_HALT_CONTROL_AXI_HALT_SHIFT 0
+
+#define MH_AXI_HALT_CONTROL_AXI_HALT_MASK 0x00000001
+
+#define MH_AXI_HALT_CONTROL_MASK \
+ (MH_AXI_HALT_CONTROL_AXI_HALT_MASK)
+
+#define MH_AXI_HALT_CONTROL(axi_halt) \
+ ((axi_halt << MH_AXI_HALT_CONTROL_AXI_HALT_SHIFT))
+
+#define MH_AXI_HALT_CONTROL_GET_AXI_HALT(mh_axi_halt_control) \
+ ((mh_axi_halt_control & MH_AXI_HALT_CONTROL_AXI_HALT_MASK) >> MH_AXI_HALT_CONTROL_AXI_HALT_SHIFT)
+
+#define MH_AXI_HALT_CONTROL_SET_AXI_HALT(mh_axi_halt_control_reg, axi_halt) \
+ mh_axi_halt_control_reg = (mh_axi_halt_control_reg & ~MH_AXI_HALT_CONTROL_AXI_HALT_MASK) | (axi_halt << MH_AXI_HALT_CONTROL_AXI_HALT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_axi_halt_control_t {
+ unsigned int axi_halt : MH_AXI_HALT_CONTROL_AXI_HALT_SIZE;
+ unsigned int : 31;
+ } mh_axi_halt_control_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_axi_halt_control_t {
+ unsigned int : 31;
+ unsigned int axi_halt : MH_AXI_HALT_CONTROL_AXI_HALT_SIZE;
+ } mh_axi_halt_control_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_axi_halt_control_t f;
+} mh_axi_halt_control_u;
+
+
+/*
+ * MH_DEBUG_REG00 struct
+ */
+
+#define MH_DEBUG_REG00_MH_BUSY_SIZE 1
+#define MH_DEBUG_REG00_TRANS_OUTSTANDING_SIZE 1
+#define MH_DEBUG_REG00_CP_REQUEST_SIZE 1
+#define MH_DEBUG_REG00_VGT_REQUEST_SIZE 1
+#define MH_DEBUG_REG00_TC_REQUEST_SIZE 1
+#define MH_DEBUG_REG00_TC_CAM_EMPTY_SIZE 1
+#define MH_DEBUG_REG00_TC_CAM_FULL_SIZE 1
+#define MH_DEBUG_REG00_TCD_EMPTY_SIZE 1
+#define MH_DEBUG_REG00_TCD_FULL_SIZE 1
+#define MH_DEBUG_REG00_RB_REQUEST_SIZE 1
+#define MH_DEBUG_REG00_PA_REQUEST_SIZE 1
+#define MH_DEBUG_REG00_MH_CLK_EN_STATE_SIZE 1
+#define MH_DEBUG_REG00_ARQ_EMPTY_SIZE 1
+#define MH_DEBUG_REG00_ARQ_FULL_SIZE 1
+#define MH_DEBUG_REG00_WDB_EMPTY_SIZE 1
+#define MH_DEBUG_REG00_WDB_FULL_SIZE 1
+#define MH_DEBUG_REG00_AXI_AVALID_SIZE 1
+#define MH_DEBUG_REG00_AXI_AREADY_SIZE 1
+#define MH_DEBUG_REG00_AXI_ARVALID_SIZE 1
+#define MH_DEBUG_REG00_AXI_ARREADY_SIZE 1
+#define MH_DEBUG_REG00_AXI_WVALID_SIZE 1
+#define MH_DEBUG_REG00_AXI_WREADY_SIZE 1
+#define MH_DEBUG_REG00_AXI_RVALID_SIZE 1
+#define MH_DEBUG_REG00_AXI_RREADY_SIZE 1
+#define MH_DEBUG_REG00_AXI_BVALID_SIZE 1
+#define MH_DEBUG_REG00_AXI_BREADY_SIZE 1
+#define MH_DEBUG_REG00_AXI_HALT_REQ_SIZE 1
+#define MH_DEBUG_REG00_AXI_HALT_ACK_SIZE 1
+#define MH_DEBUG_REG00_AXI_RDY_ENA_SIZE 1
+
+#define MH_DEBUG_REG00_MH_BUSY_SHIFT 0
+#define MH_DEBUG_REG00_TRANS_OUTSTANDING_SHIFT 1
+#define MH_DEBUG_REG00_CP_REQUEST_SHIFT 2
+#define MH_DEBUG_REG00_VGT_REQUEST_SHIFT 3
+#define MH_DEBUG_REG00_TC_REQUEST_SHIFT 4
+#define MH_DEBUG_REG00_TC_CAM_EMPTY_SHIFT 5
+#define MH_DEBUG_REG00_TC_CAM_FULL_SHIFT 6
+#define MH_DEBUG_REG00_TCD_EMPTY_SHIFT 7
+#define MH_DEBUG_REG00_TCD_FULL_SHIFT 8
+#define MH_DEBUG_REG00_RB_REQUEST_SHIFT 9
+#define MH_DEBUG_REG00_PA_REQUEST_SHIFT 10
+#define MH_DEBUG_REG00_MH_CLK_EN_STATE_SHIFT 11
+#define MH_DEBUG_REG00_ARQ_EMPTY_SHIFT 12
+#define MH_DEBUG_REG00_ARQ_FULL_SHIFT 13
+#define MH_DEBUG_REG00_WDB_EMPTY_SHIFT 14
+#define MH_DEBUG_REG00_WDB_FULL_SHIFT 15
+#define MH_DEBUG_REG00_AXI_AVALID_SHIFT 16
+#define MH_DEBUG_REG00_AXI_AREADY_SHIFT 17
+#define MH_DEBUG_REG00_AXI_ARVALID_SHIFT 18
+#define MH_DEBUG_REG00_AXI_ARREADY_SHIFT 19
+#define MH_DEBUG_REG00_AXI_WVALID_SHIFT 20
+#define MH_DEBUG_REG00_AXI_WREADY_SHIFT 21
+#define MH_DEBUG_REG00_AXI_RVALID_SHIFT 22
+#define MH_DEBUG_REG00_AXI_RREADY_SHIFT 23
+#define MH_DEBUG_REG00_AXI_BVALID_SHIFT 24
+#define MH_DEBUG_REG00_AXI_BREADY_SHIFT 25
+#define MH_DEBUG_REG00_AXI_HALT_REQ_SHIFT 26
+#define MH_DEBUG_REG00_AXI_HALT_ACK_SHIFT 27
+#define MH_DEBUG_REG00_AXI_RDY_ENA_SHIFT 28
+
+#define MH_DEBUG_REG00_MH_BUSY_MASK 0x00000001
+#define MH_DEBUG_REG00_TRANS_OUTSTANDING_MASK 0x00000002
+#define MH_DEBUG_REG00_CP_REQUEST_MASK 0x00000004
+#define MH_DEBUG_REG00_VGT_REQUEST_MASK 0x00000008
+#define MH_DEBUG_REG00_TC_REQUEST_MASK 0x00000010
+#define MH_DEBUG_REG00_TC_CAM_EMPTY_MASK 0x00000020
+#define MH_DEBUG_REG00_TC_CAM_FULL_MASK 0x00000040
+#define MH_DEBUG_REG00_TCD_EMPTY_MASK 0x00000080
+#define MH_DEBUG_REG00_TCD_FULL_MASK 0x00000100
+#define MH_DEBUG_REG00_RB_REQUEST_MASK 0x00000200
+#define MH_DEBUG_REG00_PA_REQUEST_MASK 0x00000400
+#define MH_DEBUG_REG00_MH_CLK_EN_STATE_MASK 0x00000800
+#define MH_DEBUG_REG00_ARQ_EMPTY_MASK 0x00001000
+#define MH_DEBUG_REG00_ARQ_FULL_MASK 0x00002000
+#define MH_DEBUG_REG00_WDB_EMPTY_MASK 0x00004000
+#define MH_DEBUG_REG00_WDB_FULL_MASK 0x00008000
+#define MH_DEBUG_REG00_AXI_AVALID_MASK 0x00010000
+#define MH_DEBUG_REG00_AXI_AREADY_MASK 0x00020000
+#define MH_DEBUG_REG00_AXI_ARVALID_MASK 0x00040000
+#define MH_DEBUG_REG00_AXI_ARREADY_MASK 0x00080000
+#define MH_DEBUG_REG00_AXI_WVALID_MASK 0x00100000
+#define MH_DEBUG_REG00_AXI_WREADY_MASK 0x00200000
+#define MH_DEBUG_REG00_AXI_RVALID_MASK 0x00400000
+#define MH_DEBUG_REG00_AXI_RREADY_MASK 0x00800000
+#define MH_DEBUG_REG00_AXI_BVALID_MASK 0x01000000
+#define MH_DEBUG_REG00_AXI_BREADY_MASK 0x02000000
+#define MH_DEBUG_REG00_AXI_HALT_REQ_MASK 0x04000000
+#define MH_DEBUG_REG00_AXI_HALT_ACK_MASK 0x08000000
+#define MH_DEBUG_REG00_AXI_RDY_ENA_MASK 0x10000000
+
+#define MH_DEBUG_REG00_MASK \
+ (MH_DEBUG_REG00_MH_BUSY_MASK | \
+ MH_DEBUG_REG00_TRANS_OUTSTANDING_MASK | \
+ MH_DEBUG_REG00_CP_REQUEST_MASK | \
+ MH_DEBUG_REG00_VGT_REQUEST_MASK | \
+ MH_DEBUG_REG00_TC_REQUEST_MASK | \
+ MH_DEBUG_REG00_TC_CAM_EMPTY_MASK | \
+ MH_DEBUG_REG00_TC_CAM_FULL_MASK | \
+ MH_DEBUG_REG00_TCD_EMPTY_MASK | \
+ MH_DEBUG_REG00_TCD_FULL_MASK | \
+ MH_DEBUG_REG00_RB_REQUEST_MASK | \
+ MH_DEBUG_REG00_PA_REQUEST_MASK | \
+ MH_DEBUG_REG00_MH_CLK_EN_STATE_MASK | \
+ MH_DEBUG_REG00_ARQ_EMPTY_MASK | \
+ MH_DEBUG_REG00_ARQ_FULL_MASK | \
+ MH_DEBUG_REG00_WDB_EMPTY_MASK | \
+ MH_DEBUG_REG00_WDB_FULL_MASK | \
+ MH_DEBUG_REG00_AXI_AVALID_MASK | \
+ MH_DEBUG_REG00_AXI_AREADY_MASK | \
+ MH_DEBUG_REG00_AXI_ARVALID_MASK | \
+ MH_DEBUG_REG00_AXI_ARREADY_MASK | \
+ MH_DEBUG_REG00_AXI_WVALID_MASK | \
+ MH_DEBUG_REG00_AXI_WREADY_MASK | \
+ MH_DEBUG_REG00_AXI_RVALID_MASK | \
+ MH_DEBUG_REG00_AXI_RREADY_MASK | \
+ MH_DEBUG_REG00_AXI_BVALID_MASK | \
+ MH_DEBUG_REG00_AXI_BREADY_MASK | \
+ MH_DEBUG_REG00_AXI_HALT_REQ_MASK | \
+ MH_DEBUG_REG00_AXI_HALT_ACK_MASK | \
+ MH_DEBUG_REG00_AXI_RDY_ENA_MASK)
+
+#define MH_DEBUG_REG00(mh_busy, trans_outstanding, cp_request, vgt_request, tc_request, tc_cam_empty, tc_cam_full, tcd_empty, tcd_full, rb_request, pa_request, mh_clk_en_state, arq_empty, arq_full, wdb_empty, wdb_full, axi_avalid, axi_aready, axi_arvalid, axi_arready, axi_wvalid, axi_wready, axi_rvalid, axi_rready, axi_bvalid, axi_bready, axi_halt_req, axi_halt_ack, axi_rdy_ena) \
+ ((mh_busy << MH_DEBUG_REG00_MH_BUSY_SHIFT) | \
+ (trans_outstanding << MH_DEBUG_REG00_TRANS_OUTSTANDING_SHIFT) | \
+ (cp_request << MH_DEBUG_REG00_CP_REQUEST_SHIFT) | \
+ (vgt_request << MH_DEBUG_REG00_VGT_REQUEST_SHIFT) | \
+ (tc_request << MH_DEBUG_REG00_TC_REQUEST_SHIFT) | \
+ (tc_cam_empty << MH_DEBUG_REG00_TC_CAM_EMPTY_SHIFT) | \
+ (tc_cam_full << MH_DEBUG_REG00_TC_CAM_FULL_SHIFT) | \
+ (tcd_empty << MH_DEBUG_REG00_TCD_EMPTY_SHIFT) | \
+ (tcd_full << MH_DEBUG_REG00_TCD_FULL_SHIFT) | \
+ (rb_request << MH_DEBUG_REG00_RB_REQUEST_SHIFT) | \
+ (pa_request << MH_DEBUG_REG00_PA_REQUEST_SHIFT) | \
+ (mh_clk_en_state << MH_DEBUG_REG00_MH_CLK_EN_STATE_SHIFT) | \
+ (arq_empty << MH_DEBUG_REG00_ARQ_EMPTY_SHIFT) | \
+ (arq_full << MH_DEBUG_REG00_ARQ_FULL_SHIFT) | \
+ (wdb_empty << MH_DEBUG_REG00_WDB_EMPTY_SHIFT) | \
+ (wdb_full << MH_DEBUG_REG00_WDB_FULL_SHIFT) | \
+ (axi_avalid << MH_DEBUG_REG00_AXI_AVALID_SHIFT) | \
+ (axi_aready << MH_DEBUG_REG00_AXI_AREADY_SHIFT) | \
+ (axi_arvalid << MH_DEBUG_REG00_AXI_ARVALID_SHIFT) | \
+ (axi_arready << MH_DEBUG_REG00_AXI_ARREADY_SHIFT) | \
+ (axi_wvalid << MH_DEBUG_REG00_AXI_WVALID_SHIFT) | \
+ (axi_wready << MH_DEBUG_REG00_AXI_WREADY_SHIFT) | \
+ (axi_rvalid << MH_DEBUG_REG00_AXI_RVALID_SHIFT) | \
+ (axi_rready << MH_DEBUG_REG00_AXI_RREADY_SHIFT) | \
+ (axi_bvalid << MH_DEBUG_REG00_AXI_BVALID_SHIFT) | \
+ (axi_bready << MH_DEBUG_REG00_AXI_BREADY_SHIFT) | \
+ (axi_halt_req << MH_DEBUG_REG00_AXI_HALT_REQ_SHIFT) | \
+ (axi_halt_ack << MH_DEBUG_REG00_AXI_HALT_ACK_SHIFT) | \
+ (axi_rdy_ena << MH_DEBUG_REG00_AXI_RDY_ENA_SHIFT))
+
+#define MH_DEBUG_REG00_GET_MH_BUSY(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_MH_BUSY_MASK) >> MH_DEBUG_REG00_MH_BUSY_SHIFT)
+#define MH_DEBUG_REG00_GET_TRANS_OUTSTANDING(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_TRANS_OUTSTANDING_MASK) >> MH_DEBUG_REG00_TRANS_OUTSTANDING_SHIFT)
+#define MH_DEBUG_REG00_GET_CP_REQUEST(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_CP_REQUEST_MASK) >> MH_DEBUG_REG00_CP_REQUEST_SHIFT)
+#define MH_DEBUG_REG00_GET_VGT_REQUEST(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_VGT_REQUEST_MASK) >> MH_DEBUG_REG00_VGT_REQUEST_SHIFT)
+#define MH_DEBUG_REG00_GET_TC_REQUEST(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_TC_REQUEST_MASK) >> MH_DEBUG_REG00_TC_REQUEST_SHIFT)
+#define MH_DEBUG_REG00_GET_TC_CAM_EMPTY(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_TC_CAM_EMPTY_MASK) >> MH_DEBUG_REG00_TC_CAM_EMPTY_SHIFT)
+#define MH_DEBUG_REG00_GET_TC_CAM_FULL(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_TC_CAM_FULL_MASK) >> MH_DEBUG_REG00_TC_CAM_FULL_SHIFT)
+#define MH_DEBUG_REG00_GET_TCD_EMPTY(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_TCD_EMPTY_MASK) >> MH_DEBUG_REG00_TCD_EMPTY_SHIFT)
+#define MH_DEBUG_REG00_GET_TCD_FULL(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_TCD_FULL_MASK) >> MH_DEBUG_REG00_TCD_FULL_SHIFT)
+#define MH_DEBUG_REG00_GET_RB_REQUEST(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_RB_REQUEST_MASK) >> MH_DEBUG_REG00_RB_REQUEST_SHIFT)
+#define MH_DEBUG_REG00_GET_PA_REQUEST(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_PA_REQUEST_MASK) >> MH_DEBUG_REG00_PA_REQUEST_SHIFT)
+#define MH_DEBUG_REG00_GET_MH_CLK_EN_STATE(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_MH_CLK_EN_STATE_MASK) >> MH_DEBUG_REG00_MH_CLK_EN_STATE_SHIFT)
+#define MH_DEBUG_REG00_GET_ARQ_EMPTY(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_ARQ_EMPTY_MASK) >> MH_DEBUG_REG00_ARQ_EMPTY_SHIFT)
+#define MH_DEBUG_REG00_GET_ARQ_FULL(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_ARQ_FULL_MASK) >> MH_DEBUG_REG00_ARQ_FULL_SHIFT)
+#define MH_DEBUG_REG00_GET_WDB_EMPTY(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_WDB_EMPTY_MASK) >> MH_DEBUG_REG00_WDB_EMPTY_SHIFT)
+#define MH_DEBUG_REG00_GET_WDB_FULL(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_WDB_FULL_MASK) >> MH_DEBUG_REG00_WDB_FULL_SHIFT)
+#define MH_DEBUG_REG00_GET_AXI_AVALID(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_AXI_AVALID_MASK) >> MH_DEBUG_REG00_AXI_AVALID_SHIFT)
+#define MH_DEBUG_REG00_GET_AXI_AREADY(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_AXI_AREADY_MASK) >> MH_DEBUG_REG00_AXI_AREADY_SHIFT)
+#define MH_DEBUG_REG00_GET_AXI_ARVALID(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_AXI_ARVALID_MASK) >> MH_DEBUG_REG00_AXI_ARVALID_SHIFT)
+#define MH_DEBUG_REG00_GET_AXI_ARREADY(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_AXI_ARREADY_MASK) >> MH_DEBUG_REG00_AXI_ARREADY_SHIFT)
+#define MH_DEBUG_REG00_GET_AXI_WVALID(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_AXI_WVALID_MASK) >> MH_DEBUG_REG00_AXI_WVALID_SHIFT)
+#define MH_DEBUG_REG00_GET_AXI_WREADY(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_AXI_WREADY_MASK) >> MH_DEBUG_REG00_AXI_WREADY_SHIFT)
+#define MH_DEBUG_REG00_GET_AXI_RVALID(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_AXI_RVALID_MASK) >> MH_DEBUG_REG00_AXI_RVALID_SHIFT)
+#define MH_DEBUG_REG00_GET_AXI_RREADY(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_AXI_RREADY_MASK) >> MH_DEBUG_REG00_AXI_RREADY_SHIFT)
+#define MH_DEBUG_REG00_GET_AXI_BVALID(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_AXI_BVALID_MASK) >> MH_DEBUG_REG00_AXI_BVALID_SHIFT)
+#define MH_DEBUG_REG00_GET_AXI_BREADY(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_AXI_BREADY_MASK) >> MH_DEBUG_REG00_AXI_BREADY_SHIFT)
+#define MH_DEBUG_REG00_GET_AXI_HALT_REQ(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_AXI_HALT_REQ_MASK) >> MH_DEBUG_REG00_AXI_HALT_REQ_SHIFT)
+#define MH_DEBUG_REG00_GET_AXI_HALT_ACK(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_AXI_HALT_ACK_MASK) >> MH_DEBUG_REG00_AXI_HALT_ACK_SHIFT)
+#define MH_DEBUG_REG00_GET_AXI_RDY_ENA(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_AXI_RDY_ENA_MASK) >> MH_DEBUG_REG00_AXI_RDY_ENA_SHIFT)
+
+#define MH_DEBUG_REG00_SET_MH_BUSY(mh_debug_reg00_reg, mh_busy) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_MH_BUSY_MASK) | (mh_busy << MH_DEBUG_REG00_MH_BUSY_SHIFT)
+#define MH_DEBUG_REG00_SET_TRANS_OUTSTANDING(mh_debug_reg00_reg, trans_outstanding) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_TRANS_OUTSTANDING_MASK) | (trans_outstanding << MH_DEBUG_REG00_TRANS_OUTSTANDING_SHIFT)
+#define MH_DEBUG_REG00_SET_CP_REQUEST(mh_debug_reg00_reg, cp_request) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_CP_REQUEST_MASK) | (cp_request << MH_DEBUG_REG00_CP_REQUEST_SHIFT)
+#define MH_DEBUG_REG00_SET_VGT_REQUEST(mh_debug_reg00_reg, vgt_request) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_VGT_REQUEST_MASK) | (vgt_request << MH_DEBUG_REG00_VGT_REQUEST_SHIFT)
+#define MH_DEBUG_REG00_SET_TC_REQUEST(mh_debug_reg00_reg, tc_request) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_TC_REQUEST_MASK) | (tc_request << MH_DEBUG_REG00_TC_REQUEST_SHIFT)
+#define MH_DEBUG_REG00_SET_TC_CAM_EMPTY(mh_debug_reg00_reg, tc_cam_empty) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_TC_CAM_EMPTY_MASK) | (tc_cam_empty << MH_DEBUG_REG00_TC_CAM_EMPTY_SHIFT)
+#define MH_DEBUG_REG00_SET_TC_CAM_FULL(mh_debug_reg00_reg, tc_cam_full) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_TC_CAM_FULL_MASK) | (tc_cam_full << MH_DEBUG_REG00_TC_CAM_FULL_SHIFT)
+#define MH_DEBUG_REG00_SET_TCD_EMPTY(mh_debug_reg00_reg, tcd_empty) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_TCD_EMPTY_MASK) | (tcd_empty << MH_DEBUG_REG00_TCD_EMPTY_SHIFT)
+#define MH_DEBUG_REG00_SET_TCD_FULL(mh_debug_reg00_reg, tcd_full) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_TCD_FULL_MASK) | (tcd_full << MH_DEBUG_REG00_TCD_FULL_SHIFT)
+#define MH_DEBUG_REG00_SET_RB_REQUEST(mh_debug_reg00_reg, rb_request) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_RB_REQUEST_MASK) | (rb_request << MH_DEBUG_REG00_RB_REQUEST_SHIFT)
+#define MH_DEBUG_REG00_SET_PA_REQUEST(mh_debug_reg00_reg, pa_request) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_PA_REQUEST_MASK) | (pa_request << MH_DEBUG_REG00_PA_REQUEST_SHIFT)
+#define MH_DEBUG_REG00_SET_MH_CLK_EN_STATE(mh_debug_reg00_reg, mh_clk_en_state) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_MH_CLK_EN_STATE_MASK) | (mh_clk_en_state << MH_DEBUG_REG00_MH_CLK_EN_STATE_SHIFT)
+#define MH_DEBUG_REG00_SET_ARQ_EMPTY(mh_debug_reg00_reg, arq_empty) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_ARQ_EMPTY_MASK) | (arq_empty << MH_DEBUG_REG00_ARQ_EMPTY_SHIFT)
+#define MH_DEBUG_REG00_SET_ARQ_FULL(mh_debug_reg00_reg, arq_full) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_ARQ_FULL_MASK) | (arq_full << MH_DEBUG_REG00_ARQ_FULL_SHIFT)
+#define MH_DEBUG_REG00_SET_WDB_EMPTY(mh_debug_reg00_reg, wdb_empty) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_WDB_EMPTY_MASK) | (wdb_empty << MH_DEBUG_REG00_WDB_EMPTY_SHIFT)
+#define MH_DEBUG_REG00_SET_WDB_FULL(mh_debug_reg00_reg, wdb_full) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_WDB_FULL_MASK) | (wdb_full << MH_DEBUG_REG00_WDB_FULL_SHIFT)
+#define MH_DEBUG_REG00_SET_AXI_AVALID(mh_debug_reg00_reg, axi_avalid) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_AXI_AVALID_MASK) | (axi_avalid << MH_DEBUG_REG00_AXI_AVALID_SHIFT)
+#define MH_DEBUG_REG00_SET_AXI_AREADY(mh_debug_reg00_reg, axi_aready) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_AXI_AREADY_MASK) | (axi_aready << MH_DEBUG_REG00_AXI_AREADY_SHIFT)
+#define MH_DEBUG_REG00_SET_AXI_ARVALID(mh_debug_reg00_reg, axi_arvalid) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_AXI_ARVALID_MASK) | (axi_arvalid << MH_DEBUG_REG00_AXI_ARVALID_SHIFT)
+#define MH_DEBUG_REG00_SET_AXI_ARREADY(mh_debug_reg00_reg, axi_arready) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_AXI_ARREADY_MASK) | (axi_arready << MH_DEBUG_REG00_AXI_ARREADY_SHIFT)
+#define MH_DEBUG_REG00_SET_AXI_WVALID(mh_debug_reg00_reg, axi_wvalid) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_AXI_WVALID_MASK) | (axi_wvalid << MH_DEBUG_REG00_AXI_WVALID_SHIFT)
+#define MH_DEBUG_REG00_SET_AXI_WREADY(mh_debug_reg00_reg, axi_wready) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_AXI_WREADY_MASK) | (axi_wready << MH_DEBUG_REG00_AXI_WREADY_SHIFT)
+#define MH_DEBUG_REG00_SET_AXI_RVALID(mh_debug_reg00_reg, axi_rvalid) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_AXI_RVALID_MASK) | (axi_rvalid << MH_DEBUG_REG00_AXI_RVALID_SHIFT)
+#define MH_DEBUG_REG00_SET_AXI_RREADY(mh_debug_reg00_reg, axi_rready) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_AXI_RREADY_MASK) | (axi_rready << MH_DEBUG_REG00_AXI_RREADY_SHIFT)
+#define MH_DEBUG_REG00_SET_AXI_BVALID(mh_debug_reg00_reg, axi_bvalid) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_AXI_BVALID_MASK) | (axi_bvalid << MH_DEBUG_REG00_AXI_BVALID_SHIFT)
+#define MH_DEBUG_REG00_SET_AXI_BREADY(mh_debug_reg00_reg, axi_bready) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_AXI_BREADY_MASK) | (axi_bready << MH_DEBUG_REG00_AXI_BREADY_SHIFT)
+#define MH_DEBUG_REG00_SET_AXI_HALT_REQ(mh_debug_reg00_reg, axi_halt_req) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_AXI_HALT_REQ_MASK) | (axi_halt_req << MH_DEBUG_REG00_AXI_HALT_REQ_SHIFT)
+#define MH_DEBUG_REG00_SET_AXI_HALT_ACK(mh_debug_reg00_reg, axi_halt_ack) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_AXI_HALT_ACK_MASK) | (axi_halt_ack << MH_DEBUG_REG00_AXI_HALT_ACK_SHIFT)
+#define MH_DEBUG_REG00_SET_AXI_RDY_ENA(mh_debug_reg00_reg, axi_rdy_ena) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_AXI_RDY_ENA_MASK) | (axi_rdy_ena << MH_DEBUG_REG00_AXI_RDY_ENA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg00_t {
+ unsigned int mh_busy : MH_DEBUG_REG00_MH_BUSY_SIZE;
+ unsigned int trans_outstanding : MH_DEBUG_REG00_TRANS_OUTSTANDING_SIZE;
+ unsigned int cp_request : MH_DEBUG_REG00_CP_REQUEST_SIZE;
+ unsigned int vgt_request : MH_DEBUG_REG00_VGT_REQUEST_SIZE;
+ unsigned int tc_request : MH_DEBUG_REG00_TC_REQUEST_SIZE;
+ unsigned int tc_cam_empty : MH_DEBUG_REG00_TC_CAM_EMPTY_SIZE;
+ unsigned int tc_cam_full : MH_DEBUG_REG00_TC_CAM_FULL_SIZE;
+ unsigned int tcd_empty : MH_DEBUG_REG00_TCD_EMPTY_SIZE;
+ unsigned int tcd_full : MH_DEBUG_REG00_TCD_FULL_SIZE;
+ unsigned int rb_request : MH_DEBUG_REG00_RB_REQUEST_SIZE;
+ unsigned int pa_request : MH_DEBUG_REG00_PA_REQUEST_SIZE;
+ unsigned int mh_clk_en_state : MH_DEBUG_REG00_MH_CLK_EN_STATE_SIZE;
+ unsigned int arq_empty : MH_DEBUG_REG00_ARQ_EMPTY_SIZE;
+ unsigned int arq_full : MH_DEBUG_REG00_ARQ_FULL_SIZE;
+ unsigned int wdb_empty : MH_DEBUG_REG00_WDB_EMPTY_SIZE;
+ unsigned int wdb_full : MH_DEBUG_REG00_WDB_FULL_SIZE;
+ unsigned int axi_avalid : MH_DEBUG_REG00_AXI_AVALID_SIZE;
+ unsigned int axi_aready : MH_DEBUG_REG00_AXI_AREADY_SIZE;
+ unsigned int axi_arvalid : MH_DEBUG_REG00_AXI_ARVALID_SIZE;
+ unsigned int axi_arready : MH_DEBUG_REG00_AXI_ARREADY_SIZE;
+ unsigned int axi_wvalid : MH_DEBUG_REG00_AXI_WVALID_SIZE;
+ unsigned int axi_wready : MH_DEBUG_REG00_AXI_WREADY_SIZE;
+ unsigned int axi_rvalid : MH_DEBUG_REG00_AXI_RVALID_SIZE;
+ unsigned int axi_rready : MH_DEBUG_REG00_AXI_RREADY_SIZE;
+ unsigned int axi_bvalid : MH_DEBUG_REG00_AXI_BVALID_SIZE;
+ unsigned int axi_bready : MH_DEBUG_REG00_AXI_BREADY_SIZE;
+ unsigned int axi_halt_req : MH_DEBUG_REG00_AXI_HALT_REQ_SIZE;
+ unsigned int axi_halt_ack : MH_DEBUG_REG00_AXI_HALT_ACK_SIZE;
+ unsigned int axi_rdy_ena : MH_DEBUG_REG00_AXI_RDY_ENA_SIZE;
+ unsigned int : 3;
+ } mh_debug_reg00_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg00_t {
+ unsigned int : 3;
+ unsigned int axi_rdy_ena : MH_DEBUG_REG00_AXI_RDY_ENA_SIZE;
+ unsigned int axi_halt_ack : MH_DEBUG_REG00_AXI_HALT_ACK_SIZE;
+ unsigned int axi_halt_req : MH_DEBUG_REG00_AXI_HALT_REQ_SIZE;
+ unsigned int axi_bready : MH_DEBUG_REG00_AXI_BREADY_SIZE;
+ unsigned int axi_bvalid : MH_DEBUG_REG00_AXI_BVALID_SIZE;
+ unsigned int axi_rready : MH_DEBUG_REG00_AXI_RREADY_SIZE;
+ unsigned int axi_rvalid : MH_DEBUG_REG00_AXI_RVALID_SIZE;
+ unsigned int axi_wready : MH_DEBUG_REG00_AXI_WREADY_SIZE;
+ unsigned int axi_wvalid : MH_DEBUG_REG00_AXI_WVALID_SIZE;
+ unsigned int axi_arready : MH_DEBUG_REG00_AXI_ARREADY_SIZE;
+ unsigned int axi_arvalid : MH_DEBUG_REG00_AXI_ARVALID_SIZE;
+ unsigned int axi_aready : MH_DEBUG_REG00_AXI_AREADY_SIZE;
+ unsigned int axi_avalid : MH_DEBUG_REG00_AXI_AVALID_SIZE;
+ unsigned int wdb_full : MH_DEBUG_REG00_WDB_FULL_SIZE;
+ unsigned int wdb_empty : MH_DEBUG_REG00_WDB_EMPTY_SIZE;
+ unsigned int arq_full : MH_DEBUG_REG00_ARQ_FULL_SIZE;
+ unsigned int arq_empty : MH_DEBUG_REG00_ARQ_EMPTY_SIZE;
+ unsigned int mh_clk_en_state : MH_DEBUG_REG00_MH_CLK_EN_STATE_SIZE;
+ unsigned int pa_request : MH_DEBUG_REG00_PA_REQUEST_SIZE;
+ unsigned int rb_request : MH_DEBUG_REG00_RB_REQUEST_SIZE;
+ unsigned int tcd_full : MH_DEBUG_REG00_TCD_FULL_SIZE;
+ unsigned int tcd_empty : MH_DEBUG_REG00_TCD_EMPTY_SIZE;
+ unsigned int tc_cam_full : MH_DEBUG_REG00_TC_CAM_FULL_SIZE;
+ unsigned int tc_cam_empty : MH_DEBUG_REG00_TC_CAM_EMPTY_SIZE;
+ unsigned int tc_request : MH_DEBUG_REG00_TC_REQUEST_SIZE;
+ unsigned int vgt_request : MH_DEBUG_REG00_VGT_REQUEST_SIZE;
+ unsigned int cp_request : MH_DEBUG_REG00_CP_REQUEST_SIZE;
+ unsigned int trans_outstanding : MH_DEBUG_REG00_TRANS_OUTSTANDING_SIZE;
+ unsigned int mh_busy : MH_DEBUG_REG00_MH_BUSY_SIZE;
+ } mh_debug_reg00_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg00_t f;
+} mh_debug_reg00_u;
+
+
+/*
+ * MH_DEBUG_REG01 struct
+ */
+
+#define MH_DEBUG_REG01_CP_SEND_q_SIZE 1
+#define MH_DEBUG_REG01_CP_RTR_q_SIZE 1
+#define MH_DEBUG_REG01_CP_WRITE_q_SIZE 1
+#define MH_DEBUG_REG01_CP_TAG_q_SIZE 3
+#define MH_DEBUG_REG01_CP_BLEN_q_SIZE 1
+#define MH_DEBUG_REG01_VGT_SEND_q_SIZE 1
+#define MH_DEBUG_REG01_VGT_RTR_q_SIZE 1
+#define MH_DEBUG_REG01_VGT_TAG_q_SIZE 1
+#define MH_DEBUG_REG01_TC_SEND_q_SIZE 1
+#define MH_DEBUG_REG01_TC_RTR_q_SIZE 1
+#define MH_DEBUG_REG01_TC_BLEN_q_SIZE 1
+#define MH_DEBUG_REG01_TC_ROQ_SEND_q_SIZE 1
+#define MH_DEBUG_REG01_TC_ROQ_RTR_q_SIZE 1
+#define MH_DEBUG_REG01_TC_MH_written_SIZE 1
+#define MH_DEBUG_REG01_RB_SEND_q_SIZE 1
+#define MH_DEBUG_REG01_RB_RTR_q_SIZE 1
+#define MH_DEBUG_REG01_PA_SEND_q_SIZE 1
+#define MH_DEBUG_REG01_PA_RTR_q_SIZE 1
+
+#define MH_DEBUG_REG01_CP_SEND_q_SHIFT 0
+#define MH_DEBUG_REG01_CP_RTR_q_SHIFT 1
+#define MH_DEBUG_REG01_CP_WRITE_q_SHIFT 2
+#define MH_DEBUG_REG01_CP_TAG_q_SHIFT 3
+#define MH_DEBUG_REG01_CP_BLEN_q_SHIFT 6
+#define MH_DEBUG_REG01_VGT_SEND_q_SHIFT 7
+#define MH_DEBUG_REG01_VGT_RTR_q_SHIFT 8
+#define MH_DEBUG_REG01_VGT_TAG_q_SHIFT 9
+#define MH_DEBUG_REG01_TC_SEND_q_SHIFT 10
+#define MH_DEBUG_REG01_TC_RTR_q_SHIFT 11
+#define MH_DEBUG_REG01_TC_BLEN_q_SHIFT 12
+#define MH_DEBUG_REG01_TC_ROQ_SEND_q_SHIFT 13
+#define MH_DEBUG_REG01_TC_ROQ_RTR_q_SHIFT 14
+#define MH_DEBUG_REG01_TC_MH_written_SHIFT 15
+#define MH_DEBUG_REG01_RB_SEND_q_SHIFT 16
+#define MH_DEBUG_REG01_RB_RTR_q_SHIFT 17
+#define MH_DEBUG_REG01_PA_SEND_q_SHIFT 18
+#define MH_DEBUG_REG01_PA_RTR_q_SHIFT 19
+
+#define MH_DEBUG_REG01_CP_SEND_q_MASK 0x00000001
+#define MH_DEBUG_REG01_CP_RTR_q_MASK 0x00000002
+#define MH_DEBUG_REG01_CP_WRITE_q_MASK 0x00000004
+#define MH_DEBUG_REG01_CP_TAG_q_MASK 0x00000038
+#define MH_DEBUG_REG01_CP_BLEN_q_MASK 0x00000040
+#define MH_DEBUG_REG01_VGT_SEND_q_MASK 0x00000080
+#define MH_DEBUG_REG01_VGT_RTR_q_MASK 0x00000100
+#define MH_DEBUG_REG01_VGT_TAG_q_MASK 0x00000200
+#define MH_DEBUG_REG01_TC_SEND_q_MASK 0x00000400
+#define MH_DEBUG_REG01_TC_RTR_q_MASK 0x00000800
+#define MH_DEBUG_REG01_TC_BLEN_q_MASK 0x00001000
+#define MH_DEBUG_REG01_TC_ROQ_SEND_q_MASK 0x00002000
+#define MH_DEBUG_REG01_TC_ROQ_RTR_q_MASK 0x00004000
+#define MH_DEBUG_REG01_TC_MH_written_MASK 0x00008000
+#define MH_DEBUG_REG01_RB_SEND_q_MASK 0x00010000
+#define MH_DEBUG_REG01_RB_RTR_q_MASK 0x00020000
+#define MH_DEBUG_REG01_PA_SEND_q_MASK 0x00040000
+#define MH_DEBUG_REG01_PA_RTR_q_MASK 0x00080000
+
+#define MH_DEBUG_REG01_MASK \
+ (MH_DEBUG_REG01_CP_SEND_q_MASK | \
+ MH_DEBUG_REG01_CP_RTR_q_MASK | \
+ MH_DEBUG_REG01_CP_WRITE_q_MASK | \
+ MH_DEBUG_REG01_CP_TAG_q_MASK | \
+ MH_DEBUG_REG01_CP_BLEN_q_MASK | \
+ MH_DEBUG_REG01_VGT_SEND_q_MASK | \
+ MH_DEBUG_REG01_VGT_RTR_q_MASK | \
+ MH_DEBUG_REG01_VGT_TAG_q_MASK | \
+ MH_DEBUG_REG01_TC_SEND_q_MASK | \
+ MH_DEBUG_REG01_TC_RTR_q_MASK | \
+ MH_DEBUG_REG01_TC_BLEN_q_MASK | \
+ MH_DEBUG_REG01_TC_ROQ_SEND_q_MASK | \
+ MH_DEBUG_REG01_TC_ROQ_RTR_q_MASK | \
+ MH_DEBUG_REG01_TC_MH_written_MASK | \
+ MH_DEBUG_REG01_RB_SEND_q_MASK | \
+ MH_DEBUG_REG01_RB_RTR_q_MASK | \
+ MH_DEBUG_REG01_PA_SEND_q_MASK | \
+ MH_DEBUG_REG01_PA_RTR_q_MASK)
+
+#define MH_DEBUG_REG01(cp_send_q, cp_rtr_q, cp_write_q, cp_tag_q, cp_blen_q, vgt_send_q, vgt_rtr_q, vgt_tag_q, tc_send_q, tc_rtr_q, tc_blen_q, tc_roq_send_q, tc_roq_rtr_q, tc_mh_written, rb_send_q, rb_rtr_q, pa_send_q, pa_rtr_q) \
+ ((cp_send_q << MH_DEBUG_REG01_CP_SEND_q_SHIFT) | \
+ (cp_rtr_q << MH_DEBUG_REG01_CP_RTR_q_SHIFT) | \
+ (cp_write_q << MH_DEBUG_REG01_CP_WRITE_q_SHIFT) | \
+ (cp_tag_q << MH_DEBUG_REG01_CP_TAG_q_SHIFT) | \
+ (cp_blen_q << MH_DEBUG_REG01_CP_BLEN_q_SHIFT) | \
+ (vgt_send_q << MH_DEBUG_REG01_VGT_SEND_q_SHIFT) | \
+ (vgt_rtr_q << MH_DEBUG_REG01_VGT_RTR_q_SHIFT) | \
+ (vgt_tag_q << MH_DEBUG_REG01_VGT_TAG_q_SHIFT) | \
+ (tc_send_q << MH_DEBUG_REG01_TC_SEND_q_SHIFT) | \
+ (tc_rtr_q << MH_DEBUG_REG01_TC_RTR_q_SHIFT) | \
+ (tc_blen_q << MH_DEBUG_REG01_TC_BLEN_q_SHIFT) | \
+ (tc_roq_send_q << MH_DEBUG_REG01_TC_ROQ_SEND_q_SHIFT) | \
+ (tc_roq_rtr_q << MH_DEBUG_REG01_TC_ROQ_RTR_q_SHIFT) | \
+ (tc_mh_written << MH_DEBUG_REG01_TC_MH_written_SHIFT) | \
+ (rb_send_q << MH_DEBUG_REG01_RB_SEND_q_SHIFT) | \
+ (rb_rtr_q << MH_DEBUG_REG01_RB_RTR_q_SHIFT) | \
+ (pa_send_q << MH_DEBUG_REG01_PA_SEND_q_SHIFT) | \
+ (pa_rtr_q << MH_DEBUG_REG01_PA_RTR_q_SHIFT))
+
+#define MH_DEBUG_REG01_GET_CP_SEND_q(mh_debug_reg01) \
+ ((mh_debug_reg01 & MH_DEBUG_REG01_CP_SEND_q_MASK) >> MH_DEBUG_REG01_CP_SEND_q_SHIFT)
+#define MH_DEBUG_REG01_GET_CP_RTR_q(mh_debug_reg01) \
+ ((mh_debug_reg01 & MH_DEBUG_REG01_CP_RTR_q_MASK) >> MH_DEBUG_REG01_CP_RTR_q_SHIFT)
+#define MH_DEBUG_REG01_GET_CP_WRITE_q(mh_debug_reg01) \
+ ((mh_debug_reg01 & MH_DEBUG_REG01_CP_WRITE_q_MASK) >> MH_DEBUG_REG01_CP_WRITE_q_SHIFT)
+#define MH_DEBUG_REG01_GET_CP_TAG_q(mh_debug_reg01) \
+ ((mh_debug_reg01 & MH_DEBUG_REG01_CP_TAG_q_MASK) >> MH_DEBUG_REG01_CP_TAG_q_SHIFT)
+#define MH_DEBUG_REG01_GET_CP_BLEN_q(mh_debug_reg01) \
+ ((mh_debug_reg01 & MH_DEBUG_REG01_CP_BLEN_q_MASK) >> MH_DEBUG_REG01_CP_BLEN_q_SHIFT)
+#define MH_DEBUG_REG01_GET_VGT_SEND_q(mh_debug_reg01) \
+ ((mh_debug_reg01 & MH_DEBUG_REG01_VGT_SEND_q_MASK) >> MH_DEBUG_REG01_VGT_SEND_q_SHIFT)
+#define MH_DEBUG_REG01_GET_VGT_RTR_q(mh_debug_reg01) \
+ ((mh_debug_reg01 & MH_DEBUG_REG01_VGT_RTR_q_MASK) >> MH_DEBUG_REG01_VGT_RTR_q_SHIFT)
+#define MH_DEBUG_REG01_GET_VGT_TAG_q(mh_debug_reg01) \
+ ((mh_debug_reg01 & MH_DEBUG_REG01_VGT_TAG_q_MASK) >> MH_DEBUG_REG01_VGT_TAG_q_SHIFT)
+#define MH_DEBUG_REG01_GET_TC_SEND_q(mh_debug_reg01) \
+ ((mh_debug_reg01 & MH_DEBUG_REG01_TC_SEND_q_MASK) >> MH_DEBUG_REG01_TC_SEND_q_SHIFT)
+#define MH_DEBUG_REG01_GET_TC_RTR_q(mh_debug_reg01) \
+ ((mh_debug_reg01 & MH_DEBUG_REG01_TC_RTR_q_MASK) >> MH_DEBUG_REG01_TC_RTR_q_SHIFT)
+#define MH_DEBUG_REG01_GET_TC_BLEN_q(mh_debug_reg01) \
+ ((mh_debug_reg01 & MH_DEBUG_REG01_TC_BLEN_q_MASK) >> MH_DEBUG_REG01_TC_BLEN_q_SHIFT)
+#define MH_DEBUG_REG01_GET_TC_ROQ_SEND_q(mh_debug_reg01) \
+ ((mh_debug_reg01 & MH_DEBUG_REG01_TC_ROQ_SEND_q_MASK) >> MH_DEBUG_REG01_TC_ROQ_SEND_q_SHIFT)
+#define MH_DEBUG_REG01_GET_TC_ROQ_RTR_q(mh_debug_reg01) \
+ ((mh_debug_reg01 & MH_DEBUG_REG01_TC_ROQ_RTR_q_MASK) >> MH_DEBUG_REG01_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG01_GET_TC_MH_written(mh_debug_reg01) \
+ ((mh_debug_reg01 & MH_DEBUG_REG01_TC_MH_written_MASK) >> MH_DEBUG_REG01_TC_MH_written_SHIFT)
+#define MH_DEBUG_REG01_GET_RB_SEND_q(mh_debug_reg01) \
+ ((mh_debug_reg01 & MH_DEBUG_REG01_RB_SEND_q_MASK) >> MH_DEBUG_REG01_RB_SEND_q_SHIFT)
+#define MH_DEBUG_REG01_GET_RB_RTR_q(mh_debug_reg01) \
+ ((mh_debug_reg01 & MH_DEBUG_REG01_RB_RTR_q_MASK) >> MH_DEBUG_REG01_RB_RTR_q_SHIFT)
+#define MH_DEBUG_REG01_GET_PA_SEND_q(mh_debug_reg01) \
+ ((mh_debug_reg01 & MH_DEBUG_REG01_PA_SEND_q_MASK) >> MH_DEBUG_REG01_PA_SEND_q_SHIFT)
+#define MH_DEBUG_REG01_GET_PA_RTR_q(mh_debug_reg01) \
+ ((mh_debug_reg01 & MH_DEBUG_REG01_PA_RTR_q_MASK) >> MH_DEBUG_REG01_PA_RTR_q_SHIFT)
+
+#define MH_DEBUG_REG01_SET_CP_SEND_q(mh_debug_reg01_reg, cp_send_q) \
+ mh_debug_reg01_reg = (mh_debug_reg01_reg & ~MH_DEBUG_REG01_CP_SEND_q_MASK) | (cp_send_q << MH_DEBUG_REG01_CP_SEND_q_SHIFT)
+#define MH_DEBUG_REG01_SET_CP_RTR_q(mh_debug_reg01_reg, cp_rtr_q) \
+ mh_debug_reg01_reg = (mh_debug_reg01_reg & ~MH_DEBUG_REG01_CP_RTR_q_MASK) | (cp_rtr_q << MH_DEBUG_REG01_CP_RTR_q_SHIFT)
+#define MH_DEBUG_REG01_SET_CP_WRITE_q(mh_debug_reg01_reg, cp_write_q) \
+ mh_debug_reg01_reg = (mh_debug_reg01_reg & ~MH_DEBUG_REG01_CP_WRITE_q_MASK) | (cp_write_q << MH_DEBUG_REG01_CP_WRITE_q_SHIFT)
+#define MH_DEBUG_REG01_SET_CP_TAG_q(mh_debug_reg01_reg, cp_tag_q) \
+ mh_debug_reg01_reg = (mh_debug_reg01_reg & ~MH_DEBUG_REG01_CP_TAG_q_MASK) | (cp_tag_q << MH_DEBUG_REG01_CP_TAG_q_SHIFT)
+#define MH_DEBUG_REG01_SET_CP_BLEN_q(mh_debug_reg01_reg, cp_blen_q) \
+ mh_debug_reg01_reg = (mh_debug_reg01_reg & ~MH_DEBUG_REG01_CP_BLEN_q_MASK) | (cp_blen_q << MH_DEBUG_REG01_CP_BLEN_q_SHIFT)
+#define MH_DEBUG_REG01_SET_VGT_SEND_q(mh_debug_reg01_reg, vgt_send_q) \
+ mh_debug_reg01_reg = (mh_debug_reg01_reg & ~MH_DEBUG_REG01_VGT_SEND_q_MASK) | (vgt_send_q << MH_DEBUG_REG01_VGT_SEND_q_SHIFT)
+#define MH_DEBUG_REG01_SET_VGT_RTR_q(mh_debug_reg01_reg, vgt_rtr_q) \
+ mh_debug_reg01_reg = (mh_debug_reg01_reg & ~MH_DEBUG_REG01_VGT_RTR_q_MASK) | (vgt_rtr_q << MH_DEBUG_REG01_VGT_RTR_q_SHIFT)
+#define MH_DEBUG_REG01_SET_VGT_TAG_q(mh_debug_reg01_reg, vgt_tag_q) \
+ mh_debug_reg01_reg = (mh_debug_reg01_reg & ~MH_DEBUG_REG01_VGT_TAG_q_MASK) | (vgt_tag_q << MH_DEBUG_REG01_VGT_TAG_q_SHIFT)
+#define MH_DEBUG_REG01_SET_TC_SEND_q(mh_debug_reg01_reg, tc_send_q) \
+ mh_debug_reg01_reg = (mh_debug_reg01_reg & ~MH_DEBUG_REG01_TC_SEND_q_MASK) | (tc_send_q << MH_DEBUG_REG01_TC_SEND_q_SHIFT)
+#define MH_DEBUG_REG01_SET_TC_RTR_q(mh_debug_reg01_reg, tc_rtr_q) \
+ mh_debug_reg01_reg = (mh_debug_reg01_reg & ~MH_DEBUG_REG01_TC_RTR_q_MASK) | (tc_rtr_q << MH_DEBUG_REG01_TC_RTR_q_SHIFT)
+#define MH_DEBUG_REG01_SET_TC_BLEN_q(mh_debug_reg01_reg, tc_blen_q) \
+ mh_debug_reg01_reg = (mh_debug_reg01_reg & ~MH_DEBUG_REG01_TC_BLEN_q_MASK) | (tc_blen_q << MH_DEBUG_REG01_TC_BLEN_q_SHIFT)
+#define MH_DEBUG_REG01_SET_TC_ROQ_SEND_q(mh_debug_reg01_reg, tc_roq_send_q) \
+ mh_debug_reg01_reg = (mh_debug_reg01_reg & ~MH_DEBUG_REG01_TC_ROQ_SEND_q_MASK) | (tc_roq_send_q << MH_DEBUG_REG01_TC_ROQ_SEND_q_SHIFT)
+#define MH_DEBUG_REG01_SET_TC_ROQ_RTR_q(mh_debug_reg01_reg, tc_roq_rtr_q) \
+ mh_debug_reg01_reg = (mh_debug_reg01_reg & ~MH_DEBUG_REG01_TC_ROQ_RTR_q_MASK) | (tc_roq_rtr_q << MH_DEBUG_REG01_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG01_SET_TC_MH_written(mh_debug_reg01_reg, tc_mh_written) \
+ mh_debug_reg01_reg = (mh_debug_reg01_reg & ~MH_DEBUG_REG01_TC_MH_written_MASK) | (tc_mh_written << MH_DEBUG_REG01_TC_MH_written_SHIFT)
+#define MH_DEBUG_REG01_SET_RB_SEND_q(mh_debug_reg01_reg, rb_send_q) \
+ mh_debug_reg01_reg = (mh_debug_reg01_reg & ~MH_DEBUG_REG01_RB_SEND_q_MASK) | (rb_send_q << MH_DEBUG_REG01_RB_SEND_q_SHIFT)
+#define MH_DEBUG_REG01_SET_RB_RTR_q(mh_debug_reg01_reg, rb_rtr_q) \
+ mh_debug_reg01_reg = (mh_debug_reg01_reg & ~MH_DEBUG_REG01_RB_RTR_q_MASK) | (rb_rtr_q << MH_DEBUG_REG01_RB_RTR_q_SHIFT)
+#define MH_DEBUG_REG01_SET_PA_SEND_q(mh_debug_reg01_reg, pa_send_q) \
+ mh_debug_reg01_reg = (mh_debug_reg01_reg & ~MH_DEBUG_REG01_PA_SEND_q_MASK) | (pa_send_q << MH_DEBUG_REG01_PA_SEND_q_SHIFT)
+#define MH_DEBUG_REG01_SET_PA_RTR_q(mh_debug_reg01_reg, pa_rtr_q) \
+ mh_debug_reg01_reg = (mh_debug_reg01_reg & ~MH_DEBUG_REG01_PA_RTR_q_MASK) | (pa_rtr_q << MH_DEBUG_REG01_PA_RTR_q_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg01_t {
+ unsigned int cp_send_q : MH_DEBUG_REG01_CP_SEND_q_SIZE;
+ unsigned int cp_rtr_q : MH_DEBUG_REG01_CP_RTR_q_SIZE;
+ unsigned int cp_write_q : MH_DEBUG_REG01_CP_WRITE_q_SIZE;
+ unsigned int cp_tag_q : MH_DEBUG_REG01_CP_TAG_q_SIZE;
+ unsigned int cp_blen_q : MH_DEBUG_REG01_CP_BLEN_q_SIZE;
+ unsigned int vgt_send_q : MH_DEBUG_REG01_VGT_SEND_q_SIZE;
+ unsigned int vgt_rtr_q : MH_DEBUG_REG01_VGT_RTR_q_SIZE;
+ unsigned int vgt_tag_q : MH_DEBUG_REG01_VGT_TAG_q_SIZE;
+ unsigned int tc_send_q : MH_DEBUG_REG01_TC_SEND_q_SIZE;
+ unsigned int tc_rtr_q : MH_DEBUG_REG01_TC_RTR_q_SIZE;
+ unsigned int tc_blen_q : MH_DEBUG_REG01_TC_BLEN_q_SIZE;
+ unsigned int tc_roq_send_q : MH_DEBUG_REG01_TC_ROQ_SEND_q_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG01_TC_ROQ_RTR_q_SIZE;
+ unsigned int tc_mh_written : MH_DEBUG_REG01_TC_MH_written_SIZE;
+ unsigned int rb_send_q : MH_DEBUG_REG01_RB_SEND_q_SIZE;
+ unsigned int rb_rtr_q : MH_DEBUG_REG01_RB_RTR_q_SIZE;
+ unsigned int pa_send_q : MH_DEBUG_REG01_PA_SEND_q_SIZE;
+ unsigned int pa_rtr_q : MH_DEBUG_REG01_PA_RTR_q_SIZE;
+ unsigned int : 12;
+ } mh_debug_reg01_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg01_t {
+ unsigned int : 12;
+ unsigned int pa_rtr_q : MH_DEBUG_REG01_PA_RTR_q_SIZE;
+ unsigned int pa_send_q : MH_DEBUG_REG01_PA_SEND_q_SIZE;
+ unsigned int rb_rtr_q : MH_DEBUG_REG01_RB_RTR_q_SIZE;
+ unsigned int rb_send_q : MH_DEBUG_REG01_RB_SEND_q_SIZE;
+ unsigned int tc_mh_written : MH_DEBUG_REG01_TC_MH_written_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG01_TC_ROQ_RTR_q_SIZE;
+ unsigned int tc_roq_send_q : MH_DEBUG_REG01_TC_ROQ_SEND_q_SIZE;
+ unsigned int tc_blen_q : MH_DEBUG_REG01_TC_BLEN_q_SIZE;
+ unsigned int tc_rtr_q : MH_DEBUG_REG01_TC_RTR_q_SIZE;
+ unsigned int tc_send_q : MH_DEBUG_REG01_TC_SEND_q_SIZE;
+ unsigned int vgt_tag_q : MH_DEBUG_REG01_VGT_TAG_q_SIZE;
+ unsigned int vgt_rtr_q : MH_DEBUG_REG01_VGT_RTR_q_SIZE;
+ unsigned int vgt_send_q : MH_DEBUG_REG01_VGT_SEND_q_SIZE;
+ unsigned int cp_blen_q : MH_DEBUG_REG01_CP_BLEN_q_SIZE;
+ unsigned int cp_tag_q : MH_DEBUG_REG01_CP_TAG_q_SIZE;
+ unsigned int cp_write_q : MH_DEBUG_REG01_CP_WRITE_q_SIZE;
+ unsigned int cp_rtr_q : MH_DEBUG_REG01_CP_RTR_q_SIZE;
+ unsigned int cp_send_q : MH_DEBUG_REG01_CP_SEND_q_SIZE;
+ } mh_debug_reg01_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg01_t f;
+} mh_debug_reg01_u;
+
+
+/*
+ * MH_DEBUG_REG02 struct
+ */
+
+#define MH_DEBUG_REG02_MH_CP_grb_send_SIZE 1
+#define MH_DEBUG_REG02_MH_VGT_grb_send_SIZE 1
+#define MH_DEBUG_REG02_MH_TC_mcsend_SIZE 1
+#define MH_DEBUG_REG02_MH_CLNT_rlast_SIZE 1
+#define MH_DEBUG_REG02_MH_CLNT_tag_SIZE 3
+#define MH_DEBUG_REG02_RDC_RID_SIZE 3
+#define MH_DEBUG_REG02_RDC_RRESP_SIZE 2
+#define MH_DEBUG_REG02_MH_CP_writeclean_SIZE 1
+#define MH_DEBUG_REG02_MH_RB_writeclean_SIZE 1
+#define MH_DEBUG_REG02_MH_PA_writeclean_SIZE 1
+#define MH_DEBUG_REG02_BRC_BID_SIZE 3
+#define MH_DEBUG_REG02_BRC_BRESP_SIZE 2
+
+#define MH_DEBUG_REG02_MH_CP_grb_send_SHIFT 0
+#define MH_DEBUG_REG02_MH_VGT_grb_send_SHIFT 1
+#define MH_DEBUG_REG02_MH_TC_mcsend_SHIFT 2
+#define MH_DEBUG_REG02_MH_CLNT_rlast_SHIFT 3
+#define MH_DEBUG_REG02_MH_CLNT_tag_SHIFT 4
+#define MH_DEBUG_REG02_RDC_RID_SHIFT 7
+#define MH_DEBUG_REG02_RDC_RRESP_SHIFT 10
+#define MH_DEBUG_REG02_MH_CP_writeclean_SHIFT 12
+#define MH_DEBUG_REG02_MH_RB_writeclean_SHIFT 13
+#define MH_DEBUG_REG02_MH_PA_writeclean_SHIFT 14
+#define MH_DEBUG_REG02_BRC_BID_SHIFT 15
+#define MH_DEBUG_REG02_BRC_BRESP_SHIFT 18
+
+#define MH_DEBUG_REG02_MH_CP_grb_send_MASK 0x00000001
+#define MH_DEBUG_REG02_MH_VGT_grb_send_MASK 0x00000002
+#define MH_DEBUG_REG02_MH_TC_mcsend_MASK 0x00000004
+#define MH_DEBUG_REG02_MH_CLNT_rlast_MASK 0x00000008
+#define MH_DEBUG_REG02_MH_CLNT_tag_MASK 0x00000070
+#define MH_DEBUG_REG02_RDC_RID_MASK 0x00000380
+#define MH_DEBUG_REG02_RDC_RRESP_MASK 0x00000c00
+#define MH_DEBUG_REG02_MH_CP_writeclean_MASK 0x00001000
+#define MH_DEBUG_REG02_MH_RB_writeclean_MASK 0x00002000
+#define MH_DEBUG_REG02_MH_PA_writeclean_MASK 0x00004000
+#define MH_DEBUG_REG02_BRC_BID_MASK 0x00038000
+#define MH_DEBUG_REG02_BRC_BRESP_MASK 0x000c0000
+
+#define MH_DEBUG_REG02_MASK \
+ (MH_DEBUG_REG02_MH_CP_grb_send_MASK | \
+ MH_DEBUG_REG02_MH_VGT_grb_send_MASK | \
+ MH_DEBUG_REG02_MH_TC_mcsend_MASK | \
+ MH_DEBUG_REG02_MH_CLNT_rlast_MASK | \
+ MH_DEBUG_REG02_MH_CLNT_tag_MASK | \
+ MH_DEBUG_REG02_RDC_RID_MASK | \
+ MH_DEBUG_REG02_RDC_RRESP_MASK | \
+ MH_DEBUG_REG02_MH_CP_writeclean_MASK | \
+ MH_DEBUG_REG02_MH_RB_writeclean_MASK | \
+ MH_DEBUG_REG02_MH_PA_writeclean_MASK | \
+ MH_DEBUG_REG02_BRC_BID_MASK | \
+ MH_DEBUG_REG02_BRC_BRESP_MASK)
+
+#define MH_DEBUG_REG02(mh_cp_grb_send, mh_vgt_grb_send, mh_tc_mcsend, mh_clnt_rlast, mh_clnt_tag, rdc_rid, rdc_rresp, mh_cp_writeclean, mh_rb_writeclean, mh_pa_writeclean, brc_bid, brc_bresp) \
+ ((mh_cp_grb_send << MH_DEBUG_REG02_MH_CP_grb_send_SHIFT) | \
+ (mh_vgt_grb_send << MH_DEBUG_REG02_MH_VGT_grb_send_SHIFT) | \
+ (mh_tc_mcsend << MH_DEBUG_REG02_MH_TC_mcsend_SHIFT) | \
+ (mh_clnt_rlast << MH_DEBUG_REG02_MH_CLNT_rlast_SHIFT) | \
+ (mh_clnt_tag << MH_DEBUG_REG02_MH_CLNT_tag_SHIFT) | \
+ (rdc_rid << MH_DEBUG_REG02_RDC_RID_SHIFT) | \
+ (rdc_rresp << MH_DEBUG_REG02_RDC_RRESP_SHIFT) | \
+ (mh_cp_writeclean << MH_DEBUG_REG02_MH_CP_writeclean_SHIFT) | \
+ (mh_rb_writeclean << MH_DEBUG_REG02_MH_RB_writeclean_SHIFT) | \
+ (mh_pa_writeclean << MH_DEBUG_REG02_MH_PA_writeclean_SHIFT) | \
+ (brc_bid << MH_DEBUG_REG02_BRC_BID_SHIFT) | \
+ (brc_bresp << MH_DEBUG_REG02_BRC_BRESP_SHIFT))
+
+#define MH_DEBUG_REG02_GET_MH_CP_grb_send(mh_debug_reg02) \
+ ((mh_debug_reg02 & MH_DEBUG_REG02_MH_CP_grb_send_MASK) >> MH_DEBUG_REG02_MH_CP_grb_send_SHIFT)
+#define MH_DEBUG_REG02_GET_MH_VGT_grb_send(mh_debug_reg02) \
+ ((mh_debug_reg02 & MH_DEBUG_REG02_MH_VGT_grb_send_MASK) >> MH_DEBUG_REG02_MH_VGT_grb_send_SHIFT)
+#define MH_DEBUG_REG02_GET_MH_TC_mcsend(mh_debug_reg02) \
+ ((mh_debug_reg02 & MH_DEBUG_REG02_MH_TC_mcsend_MASK) >> MH_DEBUG_REG02_MH_TC_mcsend_SHIFT)
+#define MH_DEBUG_REG02_GET_MH_CLNT_rlast(mh_debug_reg02) \
+ ((mh_debug_reg02 & MH_DEBUG_REG02_MH_CLNT_rlast_MASK) >> MH_DEBUG_REG02_MH_CLNT_rlast_SHIFT)
+#define MH_DEBUG_REG02_GET_MH_CLNT_tag(mh_debug_reg02) \
+ ((mh_debug_reg02 & MH_DEBUG_REG02_MH_CLNT_tag_MASK) >> MH_DEBUG_REG02_MH_CLNT_tag_SHIFT)
+#define MH_DEBUG_REG02_GET_RDC_RID(mh_debug_reg02) \
+ ((mh_debug_reg02 & MH_DEBUG_REG02_RDC_RID_MASK) >> MH_DEBUG_REG02_RDC_RID_SHIFT)
+#define MH_DEBUG_REG02_GET_RDC_RRESP(mh_debug_reg02) \
+ ((mh_debug_reg02 & MH_DEBUG_REG02_RDC_RRESP_MASK) >> MH_DEBUG_REG02_RDC_RRESP_SHIFT)
+#define MH_DEBUG_REG02_GET_MH_CP_writeclean(mh_debug_reg02) \
+ ((mh_debug_reg02 & MH_DEBUG_REG02_MH_CP_writeclean_MASK) >> MH_DEBUG_REG02_MH_CP_writeclean_SHIFT)
+#define MH_DEBUG_REG02_GET_MH_RB_writeclean(mh_debug_reg02) \
+ ((mh_debug_reg02 & MH_DEBUG_REG02_MH_RB_writeclean_MASK) >> MH_DEBUG_REG02_MH_RB_writeclean_SHIFT)
+#define MH_DEBUG_REG02_GET_MH_PA_writeclean(mh_debug_reg02) \
+ ((mh_debug_reg02 & MH_DEBUG_REG02_MH_PA_writeclean_MASK) >> MH_DEBUG_REG02_MH_PA_writeclean_SHIFT)
+#define MH_DEBUG_REG02_GET_BRC_BID(mh_debug_reg02) \
+ ((mh_debug_reg02 & MH_DEBUG_REG02_BRC_BID_MASK) >> MH_DEBUG_REG02_BRC_BID_SHIFT)
+#define MH_DEBUG_REG02_GET_BRC_BRESP(mh_debug_reg02) \
+ ((mh_debug_reg02 & MH_DEBUG_REG02_BRC_BRESP_MASK) >> MH_DEBUG_REG02_BRC_BRESP_SHIFT)
+
+#define MH_DEBUG_REG02_SET_MH_CP_grb_send(mh_debug_reg02_reg, mh_cp_grb_send) \
+ mh_debug_reg02_reg = (mh_debug_reg02_reg & ~MH_DEBUG_REG02_MH_CP_grb_send_MASK) | (mh_cp_grb_send << MH_DEBUG_REG02_MH_CP_grb_send_SHIFT)
+#define MH_DEBUG_REG02_SET_MH_VGT_grb_send(mh_debug_reg02_reg, mh_vgt_grb_send) \
+ mh_debug_reg02_reg = (mh_debug_reg02_reg & ~MH_DEBUG_REG02_MH_VGT_grb_send_MASK) | (mh_vgt_grb_send << MH_DEBUG_REG02_MH_VGT_grb_send_SHIFT)
+#define MH_DEBUG_REG02_SET_MH_TC_mcsend(mh_debug_reg02_reg, mh_tc_mcsend) \
+ mh_debug_reg02_reg = (mh_debug_reg02_reg & ~MH_DEBUG_REG02_MH_TC_mcsend_MASK) | (mh_tc_mcsend << MH_DEBUG_REG02_MH_TC_mcsend_SHIFT)
+#define MH_DEBUG_REG02_SET_MH_CLNT_rlast(mh_debug_reg02_reg, mh_clnt_rlast) \
+ mh_debug_reg02_reg = (mh_debug_reg02_reg & ~MH_DEBUG_REG02_MH_CLNT_rlast_MASK) | (mh_clnt_rlast << MH_DEBUG_REG02_MH_CLNT_rlast_SHIFT)
+#define MH_DEBUG_REG02_SET_MH_CLNT_tag(mh_debug_reg02_reg, mh_clnt_tag) \
+ mh_debug_reg02_reg = (mh_debug_reg02_reg & ~MH_DEBUG_REG02_MH_CLNT_tag_MASK) | (mh_clnt_tag << MH_DEBUG_REG02_MH_CLNT_tag_SHIFT)
+#define MH_DEBUG_REG02_SET_RDC_RID(mh_debug_reg02_reg, rdc_rid) \
+ mh_debug_reg02_reg = (mh_debug_reg02_reg & ~MH_DEBUG_REG02_RDC_RID_MASK) | (rdc_rid << MH_DEBUG_REG02_RDC_RID_SHIFT)
+#define MH_DEBUG_REG02_SET_RDC_RRESP(mh_debug_reg02_reg, rdc_rresp) \
+ mh_debug_reg02_reg = (mh_debug_reg02_reg & ~MH_DEBUG_REG02_RDC_RRESP_MASK) | (rdc_rresp << MH_DEBUG_REG02_RDC_RRESP_SHIFT)
+#define MH_DEBUG_REG02_SET_MH_CP_writeclean(mh_debug_reg02_reg, mh_cp_writeclean) \
+ mh_debug_reg02_reg = (mh_debug_reg02_reg & ~MH_DEBUG_REG02_MH_CP_writeclean_MASK) | (mh_cp_writeclean << MH_DEBUG_REG02_MH_CP_writeclean_SHIFT)
+#define MH_DEBUG_REG02_SET_MH_RB_writeclean(mh_debug_reg02_reg, mh_rb_writeclean) \
+ mh_debug_reg02_reg = (mh_debug_reg02_reg & ~MH_DEBUG_REG02_MH_RB_writeclean_MASK) | (mh_rb_writeclean << MH_DEBUG_REG02_MH_RB_writeclean_SHIFT)
+#define MH_DEBUG_REG02_SET_MH_PA_writeclean(mh_debug_reg02_reg, mh_pa_writeclean) \
+ mh_debug_reg02_reg = (mh_debug_reg02_reg & ~MH_DEBUG_REG02_MH_PA_writeclean_MASK) | (mh_pa_writeclean << MH_DEBUG_REG02_MH_PA_writeclean_SHIFT)
+#define MH_DEBUG_REG02_SET_BRC_BID(mh_debug_reg02_reg, brc_bid) \
+ mh_debug_reg02_reg = (mh_debug_reg02_reg & ~MH_DEBUG_REG02_BRC_BID_MASK) | (brc_bid << MH_DEBUG_REG02_BRC_BID_SHIFT)
+#define MH_DEBUG_REG02_SET_BRC_BRESP(mh_debug_reg02_reg, brc_bresp) \
+ mh_debug_reg02_reg = (mh_debug_reg02_reg & ~MH_DEBUG_REG02_BRC_BRESP_MASK) | (brc_bresp << MH_DEBUG_REG02_BRC_BRESP_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg02_t {
+ unsigned int mh_cp_grb_send : MH_DEBUG_REG02_MH_CP_grb_send_SIZE;
+ unsigned int mh_vgt_grb_send : MH_DEBUG_REG02_MH_VGT_grb_send_SIZE;
+ unsigned int mh_tc_mcsend : MH_DEBUG_REG02_MH_TC_mcsend_SIZE;
+ unsigned int mh_clnt_rlast : MH_DEBUG_REG02_MH_CLNT_rlast_SIZE;
+ unsigned int mh_clnt_tag : MH_DEBUG_REG02_MH_CLNT_tag_SIZE;
+ unsigned int rdc_rid : MH_DEBUG_REG02_RDC_RID_SIZE;
+ unsigned int rdc_rresp : MH_DEBUG_REG02_RDC_RRESP_SIZE;
+ unsigned int mh_cp_writeclean : MH_DEBUG_REG02_MH_CP_writeclean_SIZE;
+ unsigned int mh_rb_writeclean : MH_DEBUG_REG02_MH_RB_writeclean_SIZE;
+ unsigned int mh_pa_writeclean : MH_DEBUG_REG02_MH_PA_writeclean_SIZE;
+ unsigned int brc_bid : MH_DEBUG_REG02_BRC_BID_SIZE;
+ unsigned int brc_bresp : MH_DEBUG_REG02_BRC_BRESP_SIZE;
+ unsigned int : 12;
+ } mh_debug_reg02_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg02_t {
+ unsigned int : 12;
+ unsigned int brc_bresp : MH_DEBUG_REG02_BRC_BRESP_SIZE;
+ unsigned int brc_bid : MH_DEBUG_REG02_BRC_BID_SIZE;
+ unsigned int mh_pa_writeclean : MH_DEBUG_REG02_MH_PA_writeclean_SIZE;
+ unsigned int mh_rb_writeclean : MH_DEBUG_REG02_MH_RB_writeclean_SIZE;
+ unsigned int mh_cp_writeclean : MH_DEBUG_REG02_MH_CP_writeclean_SIZE;
+ unsigned int rdc_rresp : MH_DEBUG_REG02_RDC_RRESP_SIZE;
+ unsigned int rdc_rid : MH_DEBUG_REG02_RDC_RID_SIZE;
+ unsigned int mh_clnt_tag : MH_DEBUG_REG02_MH_CLNT_tag_SIZE;
+ unsigned int mh_clnt_rlast : MH_DEBUG_REG02_MH_CLNT_rlast_SIZE;
+ unsigned int mh_tc_mcsend : MH_DEBUG_REG02_MH_TC_mcsend_SIZE;
+ unsigned int mh_vgt_grb_send : MH_DEBUG_REG02_MH_VGT_grb_send_SIZE;
+ unsigned int mh_cp_grb_send : MH_DEBUG_REG02_MH_CP_grb_send_SIZE;
+ } mh_debug_reg02_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg02_t f;
+} mh_debug_reg02_u;
+
+
+/*
+ * MH_DEBUG_REG03 struct
+ */
+
+#define MH_DEBUG_REG03_MH_CLNT_data_31_0_SIZE 32
+
+#define MH_DEBUG_REG03_MH_CLNT_data_31_0_SHIFT 0
+
+#define MH_DEBUG_REG03_MH_CLNT_data_31_0_MASK 0xffffffff
+
+#define MH_DEBUG_REG03_MASK \
+ (MH_DEBUG_REG03_MH_CLNT_data_31_0_MASK)
+
+#define MH_DEBUG_REG03(mh_clnt_data_31_0) \
+ ((mh_clnt_data_31_0 << MH_DEBUG_REG03_MH_CLNT_data_31_0_SHIFT))
+
+#define MH_DEBUG_REG03_GET_MH_CLNT_data_31_0(mh_debug_reg03) \
+ ((mh_debug_reg03 & MH_DEBUG_REG03_MH_CLNT_data_31_0_MASK) >> MH_DEBUG_REG03_MH_CLNT_data_31_0_SHIFT)
+
+#define MH_DEBUG_REG03_SET_MH_CLNT_data_31_0(mh_debug_reg03_reg, mh_clnt_data_31_0) \
+ mh_debug_reg03_reg = (mh_debug_reg03_reg & ~MH_DEBUG_REG03_MH_CLNT_data_31_0_MASK) | (mh_clnt_data_31_0 << MH_DEBUG_REG03_MH_CLNT_data_31_0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg03_t {
+ unsigned int mh_clnt_data_31_0 : MH_DEBUG_REG03_MH_CLNT_data_31_0_SIZE;
+ } mh_debug_reg03_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg03_t {
+ unsigned int mh_clnt_data_31_0 : MH_DEBUG_REG03_MH_CLNT_data_31_0_SIZE;
+ } mh_debug_reg03_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg03_t f;
+} mh_debug_reg03_u;
+
+
+/*
+ * MH_DEBUG_REG04 struct
+ */
+
+#define MH_DEBUG_REG04_MH_CLNT_data_63_32_SIZE 32
+
+#define MH_DEBUG_REG04_MH_CLNT_data_63_32_SHIFT 0
+
+#define MH_DEBUG_REG04_MH_CLNT_data_63_32_MASK 0xffffffff
+
+#define MH_DEBUG_REG04_MASK \
+ (MH_DEBUG_REG04_MH_CLNT_data_63_32_MASK)
+
+#define MH_DEBUG_REG04(mh_clnt_data_63_32) \
+ ((mh_clnt_data_63_32 << MH_DEBUG_REG04_MH_CLNT_data_63_32_SHIFT))
+
+#define MH_DEBUG_REG04_GET_MH_CLNT_data_63_32(mh_debug_reg04) \
+ ((mh_debug_reg04 & MH_DEBUG_REG04_MH_CLNT_data_63_32_MASK) >> MH_DEBUG_REG04_MH_CLNT_data_63_32_SHIFT)
+
+#define MH_DEBUG_REG04_SET_MH_CLNT_data_63_32(mh_debug_reg04_reg, mh_clnt_data_63_32) \
+ mh_debug_reg04_reg = (mh_debug_reg04_reg & ~MH_DEBUG_REG04_MH_CLNT_data_63_32_MASK) | (mh_clnt_data_63_32 << MH_DEBUG_REG04_MH_CLNT_data_63_32_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg04_t {
+ unsigned int mh_clnt_data_63_32 : MH_DEBUG_REG04_MH_CLNT_data_63_32_SIZE;
+ } mh_debug_reg04_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg04_t {
+ unsigned int mh_clnt_data_63_32 : MH_DEBUG_REG04_MH_CLNT_data_63_32_SIZE;
+ } mh_debug_reg04_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg04_t f;
+} mh_debug_reg04_u;
+
+
+/*
+ * MH_DEBUG_REG05 struct
+ */
+
+#define MH_DEBUG_REG05_CP_MH_send_SIZE 1
+#define MH_DEBUG_REG05_CP_MH_write_SIZE 1
+#define MH_DEBUG_REG05_CP_MH_tag_SIZE 3
+#define MH_DEBUG_REG05_CP_MH_ad_31_5_SIZE 27
+
+#define MH_DEBUG_REG05_CP_MH_send_SHIFT 0
+#define MH_DEBUG_REG05_CP_MH_write_SHIFT 1
+#define MH_DEBUG_REG05_CP_MH_tag_SHIFT 2
+#define MH_DEBUG_REG05_CP_MH_ad_31_5_SHIFT 5
+
+#define MH_DEBUG_REG05_CP_MH_send_MASK 0x00000001
+#define MH_DEBUG_REG05_CP_MH_write_MASK 0x00000002
+#define MH_DEBUG_REG05_CP_MH_tag_MASK 0x0000001c
+#define MH_DEBUG_REG05_CP_MH_ad_31_5_MASK 0xffffffe0
+
+#define MH_DEBUG_REG05_MASK \
+ (MH_DEBUG_REG05_CP_MH_send_MASK | \
+ MH_DEBUG_REG05_CP_MH_write_MASK | \
+ MH_DEBUG_REG05_CP_MH_tag_MASK | \
+ MH_DEBUG_REG05_CP_MH_ad_31_5_MASK)
+
+#define MH_DEBUG_REG05(cp_mh_send, cp_mh_write, cp_mh_tag, cp_mh_ad_31_5) \
+ ((cp_mh_send << MH_DEBUG_REG05_CP_MH_send_SHIFT) | \
+ (cp_mh_write << MH_DEBUG_REG05_CP_MH_write_SHIFT) | \
+ (cp_mh_tag << MH_DEBUG_REG05_CP_MH_tag_SHIFT) | \
+ (cp_mh_ad_31_5 << MH_DEBUG_REG05_CP_MH_ad_31_5_SHIFT))
+
+#define MH_DEBUG_REG05_GET_CP_MH_send(mh_debug_reg05) \
+ ((mh_debug_reg05 & MH_DEBUG_REG05_CP_MH_send_MASK) >> MH_DEBUG_REG05_CP_MH_send_SHIFT)
+#define MH_DEBUG_REG05_GET_CP_MH_write(mh_debug_reg05) \
+ ((mh_debug_reg05 & MH_DEBUG_REG05_CP_MH_write_MASK) >> MH_DEBUG_REG05_CP_MH_write_SHIFT)
+#define MH_DEBUG_REG05_GET_CP_MH_tag(mh_debug_reg05) \
+ ((mh_debug_reg05 & MH_DEBUG_REG05_CP_MH_tag_MASK) >> MH_DEBUG_REG05_CP_MH_tag_SHIFT)
+#define MH_DEBUG_REG05_GET_CP_MH_ad_31_5(mh_debug_reg05) \
+ ((mh_debug_reg05 & MH_DEBUG_REG05_CP_MH_ad_31_5_MASK) >> MH_DEBUG_REG05_CP_MH_ad_31_5_SHIFT)
+
+#define MH_DEBUG_REG05_SET_CP_MH_send(mh_debug_reg05_reg, cp_mh_send) \
+ mh_debug_reg05_reg = (mh_debug_reg05_reg & ~MH_DEBUG_REG05_CP_MH_send_MASK) | (cp_mh_send << MH_DEBUG_REG05_CP_MH_send_SHIFT)
+#define MH_DEBUG_REG05_SET_CP_MH_write(mh_debug_reg05_reg, cp_mh_write) \
+ mh_debug_reg05_reg = (mh_debug_reg05_reg & ~MH_DEBUG_REG05_CP_MH_write_MASK) | (cp_mh_write << MH_DEBUG_REG05_CP_MH_write_SHIFT)
+#define MH_DEBUG_REG05_SET_CP_MH_tag(mh_debug_reg05_reg, cp_mh_tag) \
+ mh_debug_reg05_reg = (mh_debug_reg05_reg & ~MH_DEBUG_REG05_CP_MH_tag_MASK) | (cp_mh_tag << MH_DEBUG_REG05_CP_MH_tag_SHIFT)
+#define MH_DEBUG_REG05_SET_CP_MH_ad_31_5(mh_debug_reg05_reg, cp_mh_ad_31_5) \
+ mh_debug_reg05_reg = (mh_debug_reg05_reg & ~MH_DEBUG_REG05_CP_MH_ad_31_5_MASK) | (cp_mh_ad_31_5 << MH_DEBUG_REG05_CP_MH_ad_31_5_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg05_t {
+ unsigned int cp_mh_send : MH_DEBUG_REG05_CP_MH_send_SIZE;
+ unsigned int cp_mh_write : MH_DEBUG_REG05_CP_MH_write_SIZE;
+ unsigned int cp_mh_tag : MH_DEBUG_REG05_CP_MH_tag_SIZE;
+ unsigned int cp_mh_ad_31_5 : MH_DEBUG_REG05_CP_MH_ad_31_5_SIZE;
+ } mh_debug_reg05_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg05_t {
+ unsigned int cp_mh_ad_31_5 : MH_DEBUG_REG05_CP_MH_ad_31_5_SIZE;
+ unsigned int cp_mh_tag : MH_DEBUG_REG05_CP_MH_tag_SIZE;
+ unsigned int cp_mh_write : MH_DEBUG_REG05_CP_MH_write_SIZE;
+ unsigned int cp_mh_send : MH_DEBUG_REG05_CP_MH_send_SIZE;
+ } mh_debug_reg05_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg05_t f;
+} mh_debug_reg05_u;
+
+
+/*
+ * MH_DEBUG_REG06 struct
+ */
+
+#define MH_DEBUG_REG06_CP_MH_data_31_0_SIZE 32
+
+#define MH_DEBUG_REG06_CP_MH_data_31_0_SHIFT 0
+
+#define MH_DEBUG_REG06_CP_MH_data_31_0_MASK 0xffffffff
+
+#define MH_DEBUG_REG06_MASK \
+ (MH_DEBUG_REG06_CP_MH_data_31_0_MASK)
+
+#define MH_DEBUG_REG06(cp_mh_data_31_0) \
+ ((cp_mh_data_31_0 << MH_DEBUG_REG06_CP_MH_data_31_0_SHIFT))
+
+#define MH_DEBUG_REG06_GET_CP_MH_data_31_0(mh_debug_reg06) \
+ ((mh_debug_reg06 & MH_DEBUG_REG06_CP_MH_data_31_0_MASK) >> MH_DEBUG_REG06_CP_MH_data_31_0_SHIFT)
+
+#define MH_DEBUG_REG06_SET_CP_MH_data_31_0(mh_debug_reg06_reg, cp_mh_data_31_0) \
+ mh_debug_reg06_reg = (mh_debug_reg06_reg & ~MH_DEBUG_REG06_CP_MH_data_31_0_MASK) | (cp_mh_data_31_0 << MH_DEBUG_REG06_CP_MH_data_31_0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg06_t {
+ unsigned int cp_mh_data_31_0 : MH_DEBUG_REG06_CP_MH_data_31_0_SIZE;
+ } mh_debug_reg06_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg06_t {
+ unsigned int cp_mh_data_31_0 : MH_DEBUG_REG06_CP_MH_data_31_0_SIZE;
+ } mh_debug_reg06_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg06_t f;
+} mh_debug_reg06_u;
+
+
+/*
+ * MH_DEBUG_REG07 struct
+ */
+
+#define MH_DEBUG_REG07_CP_MH_data_63_32_SIZE 32
+
+#define MH_DEBUG_REG07_CP_MH_data_63_32_SHIFT 0
+
+#define MH_DEBUG_REG07_CP_MH_data_63_32_MASK 0xffffffff
+
+#define MH_DEBUG_REG07_MASK \
+ (MH_DEBUG_REG07_CP_MH_data_63_32_MASK)
+
+#define MH_DEBUG_REG07(cp_mh_data_63_32) \
+ ((cp_mh_data_63_32 << MH_DEBUG_REG07_CP_MH_data_63_32_SHIFT))
+
+#define MH_DEBUG_REG07_GET_CP_MH_data_63_32(mh_debug_reg07) \
+ ((mh_debug_reg07 & MH_DEBUG_REG07_CP_MH_data_63_32_MASK) >> MH_DEBUG_REG07_CP_MH_data_63_32_SHIFT)
+
+#define MH_DEBUG_REG07_SET_CP_MH_data_63_32(mh_debug_reg07_reg, cp_mh_data_63_32) \
+ mh_debug_reg07_reg = (mh_debug_reg07_reg & ~MH_DEBUG_REG07_CP_MH_data_63_32_MASK) | (cp_mh_data_63_32 << MH_DEBUG_REG07_CP_MH_data_63_32_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg07_t {
+ unsigned int cp_mh_data_63_32 : MH_DEBUG_REG07_CP_MH_data_63_32_SIZE;
+ } mh_debug_reg07_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg07_t {
+ unsigned int cp_mh_data_63_32 : MH_DEBUG_REG07_CP_MH_data_63_32_SIZE;
+ } mh_debug_reg07_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg07_t f;
+} mh_debug_reg07_u;
+
+
+/*
+ * MH_DEBUG_REG08 struct
+ */
+
+#define MH_DEBUG_REG08_CP_MH_be_SIZE 8
+#define MH_DEBUG_REG08_RB_MH_be_SIZE 8
+#define MH_DEBUG_REG08_PA_MH_be_SIZE 8
+
+#define MH_DEBUG_REG08_CP_MH_be_SHIFT 0
+#define MH_DEBUG_REG08_RB_MH_be_SHIFT 8
+#define MH_DEBUG_REG08_PA_MH_be_SHIFT 16
+
+#define MH_DEBUG_REG08_CP_MH_be_MASK 0x000000ff
+#define MH_DEBUG_REG08_RB_MH_be_MASK 0x0000ff00
+#define MH_DEBUG_REG08_PA_MH_be_MASK 0x00ff0000
+
+#define MH_DEBUG_REG08_MASK \
+ (MH_DEBUG_REG08_CP_MH_be_MASK | \
+ MH_DEBUG_REG08_RB_MH_be_MASK | \
+ MH_DEBUG_REG08_PA_MH_be_MASK)
+
+#define MH_DEBUG_REG08(cp_mh_be, rb_mh_be, pa_mh_be) \
+ ((cp_mh_be << MH_DEBUG_REG08_CP_MH_be_SHIFT) | \
+ (rb_mh_be << MH_DEBUG_REG08_RB_MH_be_SHIFT) | \
+ (pa_mh_be << MH_DEBUG_REG08_PA_MH_be_SHIFT))
+
+#define MH_DEBUG_REG08_GET_CP_MH_be(mh_debug_reg08) \
+ ((mh_debug_reg08 & MH_DEBUG_REG08_CP_MH_be_MASK) >> MH_DEBUG_REG08_CP_MH_be_SHIFT)
+#define MH_DEBUG_REG08_GET_RB_MH_be(mh_debug_reg08) \
+ ((mh_debug_reg08 & MH_DEBUG_REG08_RB_MH_be_MASK) >> MH_DEBUG_REG08_RB_MH_be_SHIFT)
+#define MH_DEBUG_REG08_GET_PA_MH_be(mh_debug_reg08) \
+ ((mh_debug_reg08 & MH_DEBUG_REG08_PA_MH_be_MASK) >> MH_DEBUG_REG08_PA_MH_be_SHIFT)
+
+#define MH_DEBUG_REG08_SET_CP_MH_be(mh_debug_reg08_reg, cp_mh_be) \
+ mh_debug_reg08_reg = (mh_debug_reg08_reg & ~MH_DEBUG_REG08_CP_MH_be_MASK) | (cp_mh_be << MH_DEBUG_REG08_CP_MH_be_SHIFT)
+#define MH_DEBUG_REG08_SET_RB_MH_be(mh_debug_reg08_reg, rb_mh_be) \
+ mh_debug_reg08_reg = (mh_debug_reg08_reg & ~MH_DEBUG_REG08_RB_MH_be_MASK) | (rb_mh_be << MH_DEBUG_REG08_RB_MH_be_SHIFT)
+#define MH_DEBUG_REG08_SET_PA_MH_be(mh_debug_reg08_reg, pa_mh_be) \
+ mh_debug_reg08_reg = (mh_debug_reg08_reg & ~MH_DEBUG_REG08_PA_MH_be_MASK) | (pa_mh_be << MH_DEBUG_REG08_PA_MH_be_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg08_t {
+ unsigned int cp_mh_be : MH_DEBUG_REG08_CP_MH_be_SIZE;
+ unsigned int rb_mh_be : MH_DEBUG_REG08_RB_MH_be_SIZE;
+ unsigned int pa_mh_be : MH_DEBUG_REG08_PA_MH_be_SIZE;
+ unsigned int : 8;
+ } mh_debug_reg08_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg08_t {
+ unsigned int : 8;
+ unsigned int pa_mh_be : MH_DEBUG_REG08_PA_MH_be_SIZE;
+ unsigned int rb_mh_be : MH_DEBUG_REG08_RB_MH_be_SIZE;
+ unsigned int cp_mh_be : MH_DEBUG_REG08_CP_MH_be_SIZE;
+ } mh_debug_reg08_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg08_t f;
+} mh_debug_reg08_u;
+
+
+/*
+ * MH_DEBUG_REG09 struct
+ */
+
+#define MH_DEBUG_REG09_ALWAYS_ZERO_SIZE 3
+#define MH_DEBUG_REG09_VGT_MH_send_SIZE 1
+#define MH_DEBUG_REG09_VGT_MH_tagbe_SIZE 1
+#define MH_DEBUG_REG09_VGT_MH_ad_31_5_SIZE 27
+
+#define MH_DEBUG_REG09_ALWAYS_ZERO_SHIFT 0
+#define MH_DEBUG_REG09_VGT_MH_send_SHIFT 3
+#define MH_DEBUG_REG09_VGT_MH_tagbe_SHIFT 4
+#define MH_DEBUG_REG09_VGT_MH_ad_31_5_SHIFT 5
+
+#define MH_DEBUG_REG09_ALWAYS_ZERO_MASK 0x00000007
+#define MH_DEBUG_REG09_VGT_MH_send_MASK 0x00000008
+#define MH_DEBUG_REG09_VGT_MH_tagbe_MASK 0x00000010
+#define MH_DEBUG_REG09_VGT_MH_ad_31_5_MASK 0xffffffe0
+
+#define MH_DEBUG_REG09_MASK \
+ (MH_DEBUG_REG09_ALWAYS_ZERO_MASK | \
+ MH_DEBUG_REG09_VGT_MH_send_MASK | \
+ MH_DEBUG_REG09_VGT_MH_tagbe_MASK | \
+ MH_DEBUG_REG09_VGT_MH_ad_31_5_MASK)
+
+#define MH_DEBUG_REG09(always_zero, vgt_mh_send, vgt_mh_tagbe, vgt_mh_ad_31_5) \
+ ((always_zero << MH_DEBUG_REG09_ALWAYS_ZERO_SHIFT) | \
+ (vgt_mh_send << MH_DEBUG_REG09_VGT_MH_send_SHIFT) | \
+ (vgt_mh_tagbe << MH_DEBUG_REG09_VGT_MH_tagbe_SHIFT) | \
+ (vgt_mh_ad_31_5 << MH_DEBUG_REG09_VGT_MH_ad_31_5_SHIFT))
+
+#define MH_DEBUG_REG09_GET_ALWAYS_ZERO(mh_debug_reg09) \
+ ((mh_debug_reg09 & MH_DEBUG_REG09_ALWAYS_ZERO_MASK) >> MH_DEBUG_REG09_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG09_GET_VGT_MH_send(mh_debug_reg09) \
+ ((mh_debug_reg09 & MH_DEBUG_REG09_VGT_MH_send_MASK) >> MH_DEBUG_REG09_VGT_MH_send_SHIFT)
+#define MH_DEBUG_REG09_GET_VGT_MH_tagbe(mh_debug_reg09) \
+ ((mh_debug_reg09 & MH_DEBUG_REG09_VGT_MH_tagbe_MASK) >> MH_DEBUG_REG09_VGT_MH_tagbe_SHIFT)
+#define MH_DEBUG_REG09_GET_VGT_MH_ad_31_5(mh_debug_reg09) \
+ ((mh_debug_reg09 & MH_DEBUG_REG09_VGT_MH_ad_31_5_MASK) >> MH_DEBUG_REG09_VGT_MH_ad_31_5_SHIFT)
+
+#define MH_DEBUG_REG09_SET_ALWAYS_ZERO(mh_debug_reg09_reg, always_zero) \
+ mh_debug_reg09_reg = (mh_debug_reg09_reg & ~MH_DEBUG_REG09_ALWAYS_ZERO_MASK) | (always_zero << MH_DEBUG_REG09_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG09_SET_VGT_MH_send(mh_debug_reg09_reg, vgt_mh_send) \
+ mh_debug_reg09_reg = (mh_debug_reg09_reg & ~MH_DEBUG_REG09_VGT_MH_send_MASK) | (vgt_mh_send << MH_DEBUG_REG09_VGT_MH_send_SHIFT)
+#define MH_DEBUG_REG09_SET_VGT_MH_tagbe(mh_debug_reg09_reg, vgt_mh_tagbe) \
+ mh_debug_reg09_reg = (mh_debug_reg09_reg & ~MH_DEBUG_REG09_VGT_MH_tagbe_MASK) | (vgt_mh_tagbe << MH_DEBUG_REG09_VGT_MH_tagbe_SHIFT)
+#define MH_DEBUG_REG09_SET_VGT_MH_ad_31_5(mh_debug_reg09_reg, vgt_mh_ad_31_5) \
+ mh_debug_reg09_reg = (mh_debug_reg09_reg & ~MH_DEBUG_REG09_VGT_MH_ad_31_5_MASK) | (vgt_mh_ad_31_5 << MH_DEBUG_REG09_VGT_MH_ad_31_5_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg09_t {
+ unsigned int always_zero : MH_DEBUG_REG09_ALWAYS_ZERO_SIZE;
+ unsigned int vgt_mh_send : MH_DEBUG_REG09_VGT_MH_send_SIZE;
+ unsigned int vgt_mh_tagbe : MH_DEBUG_REG09_VGT_MH_tagbe_SIZE;
+ unsigned int vgt_mh_ad_31_5 : MH_DEBUG_REG09_VGT_MH_ad_31_5_SIZE;
+ } mh_debug_reg09_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg09_t {
+ unsigned int vgt_mh_ad_31_5 : MH_DEBUG_REG09_VGT_MH_ad_31_5_SIZE;
+ unsigned int vgt_mh_tagbe : MH_DEBUG_REG09_VGT_MH_tagbe_SIZE;
+ unsigned int vgt_mh_send : MH_DEBUG_REG09_VGT_MH_send_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG09_ALWAYS_ZERO_SIZE;
+ } mh_debug_reg09_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg09_t f;
+} mh_debug_reg09_u;
+
+
+/*
+ * MH_DEBUG_REG10 struct
+ */
+
+#define MH_DEBUG_REG10_ALWAYS_ZERO_SIZE 2
+#define MH_DEBUG_REG10_TC_MH_send_SIZE 1
+#define MH_DEBUG_REG10_TC_MH_mask_SIZE 2
+#define MH_DEBUG_REG10_TC_MH_addr_31_5_SIZE 27
+
+#define MH_DEBUG_REG10_ALWAYS_ZERO_SHIFT 0
+#define MH_DEBUG_REG10_TC_MH_send_SHIFT 2
+#define MH_DEBUG_REG10_TC_MH_mask_SHIFT 3
+#define MH_DEBUG_REG10_TC_MH_addr_31_5_SHIFT 5
+
+#define MH_DEBUG_REG10_ALWAYS_ZERO_MASK 0x00000003
+#define MH_DEBUG_REG10_TC_MH_send_MASK 0x00000004
+#define MH_DEBUG_REG10_TC_MH_mask_MASK 0x00000018
+#define MH_DEBUG_REG10_TC_MH_addr_31_5_MASK 0xffffffe0
+
+#define MH_DEBUG_REG10_MASK \
+ (MH_DEBUG_REG10_ALWAYS_ZERO_MASK | \
+ MH_DEBUG_REG10_TC_MH_send_MASK | \
+ MH_DEBUG_REG10_TC_MH_mask_MASK | \
+ MH_DEBUG_REG10_TC_MH_addr_31_5_MASK)
+
+#define MH_DEBUG_REG10(always_zero, tc_mh_send, tc_mh_mask, tc_mh_addr_31_5) \
+ ((always_zero << MH_DEBUG_REG10_ALWAYS_ZERO_SHIFT) | \
+ (tc_mh_send << MH_DEBUG_REG10_TC_MH_send_SHIFT) | \
+ (tc_mh_mask << MH_DEBUG_REG10_TC_MH_mask_SHIFT) | \
+ (tc_mh_addr_31_5 << MH_DEBUG_REG10_TC_MH_addr_31_5_SHIFT))
+
+#define MH_DEBUG_REG10_GET_ALWAYS_ZERO(mh_debug_reg10) \
+ ((mh_debug_reg10 & MH_DEBUG_REG10_ALWAYS_ZERO_MASK) >> MH_DEBUG_REG10_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG10_GET_TC_MH_send(mh_debug_reg10) \
+ ((mh_debug_reg10 & MH_DEBUG_REG10_TC_MH_send_MASK) >> MH_DEBUG_REG10_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG10_GET_TC_MH_mask(mh_debug_reg10) \
+ ((mh_debug_reg10 & MH_DEBUG_REG10_TC_MH_mask_MASK) >> MH_DEBUG_REG10_TC_MH_mask_SHIFT)
+#define MH_DEBUG_REG10_GET_TC_MH_addr_31_5(mh_debug_reg10) \
+ ((mh_debug_reg10 & MH_DEBUG_REG10_TC_MH_addr_31_5_MASK) >> MH_DEBUG_REG10_TC_MH_addr_31_5_SHIFT)
+
+#define MH_DEBUG_REG10_SET_ALWAYS_ZERO(mh_debug_reg10_reg, always_zero) \
+ mh_debug_reg10_reg = (mh_debug_reg10_reg & ~MH_DEBUG_REG10_ALWAYS_ZERO_MASK) | (always_zero << MH_DEBUG_REG10_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG10_SET_TC_MH_send(mh_debug_reg10_reg, tc_mh_send) \
+ mh_debug_reg10_reg = (mh_debug_reg10_reg & ~MH_DEBUG_REG10_TC_MH_send_MASK) | (tc_mh_send << MH_DEBUG_REG10_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG10_SET_TC_MH_mask(mh_debug_reg10_reg, tc_mh_mask) \
+ mh_debug_reg10_reg = (mh_debug_reg10_reg & ~MH_DEBUG_REG10_TC_MH_mask_MASK) | (tc_mh_mask << MH_DEBUG_REG10_TC_MH_mask_SHIFT)
+#define MH_DEBUG_REG10_SET_TC_MH_addr_31_5(mh_debug_reg10_reg, tc_mh_addr_31_5) \
+ mh_debug_reg10_reg = (mh_debug_reg10_reg & ~MH_DEBUG_REG10_TC_MH_addr_31_5_MASK) | (tc_mh_addr_31_5 << MH_DEBUG_REG10_TC_MH_addr_31_5_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg10_t {
+ unsigned int always_zero : MH_DEBUG_REG10_ALWAYS_ZERO_SIZE;
+ unsigned int tc_mh_send : MH_DEBUG_REG10_TC_MH_send_SIZE;
+ unsigned int tc_mh_mask : MH_DEBUG_REG10_TC_MH_mask_SIZE;
+ unsigned int tc_mh_addr_31_5 : MH_DEBUG_REG10_TC_MH_addr_31_5_SIZE;
+ } mh_debug_reg10_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg10_t {
+ unsigned int tc_mh_addr_31_5 : MH_DEBUG_REG10_TC_MH_addr_31_5_SIZE;
+ unsigned int tc_mh_mask : MH_DEBUG_REG10_TC_MH_mask_SIZE;
+ unsigned int tc_mh_send : MH_DEBUG_REG10_TC_MH_send_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG10_ALWAYS_ZERO_SIZE;
+ } mh_debug_reg10_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg10_t f;
+} mh_debug_reg10_u;
+
+
+/*
+ * MH_DEBUG_REG11 struct
+ */
+
+#define MH_DEBUG_REG11_TC_MH_info_SIZE 25
+#define MH_DEBUG_REG11_TC_MH_send_SIZE 1
+
+#define MH_DEBUG_REG11_TC_MH_info_SHIFT 0
+#define MH_DEBUG_REG11_TC_MH_send_SHIFT 25
+
+#define MH_DEBUG_REG11_TC_MH_info_MASK 0x01ffffff
+#define MH_DEBUG_REG11_TC_MH_send_MASK 0x02000000
+
+#define MH_DEBUG_REG11_MASK \
+ (MH_DEBUG_REG11_TC_MH_info_MASK | \
+ MH_DEBUG_REG11_TC_MH_send_MASK)
+
+#define MH_DEBUG_REG11(tc_mh_info, tc_mh_send) \
+ ((tc_mh_info << MH_DEBUG_REG11_TC_MH_info_SHIFT) | \
+ (tc_mh_send << MH_DEBUG_REG11_TC_MH_send_SHIFT))
+
+#define MH_DEBUG_REG11_GET_TC_MH_info(mh_debug_reg11) \
+ ((mh_debug_reg11 & MH_DEBUG_REG11_TC_MH_info_MASK) >> MH_DEBUG_REG11_TC_MH_info_SHIFT)
+#define MH_DEBUG_REG11_GET_TC_MH_send(mh_debug_reg11) \
+ ((mh_debug_reg11 & MH_DEBUG_REG11_TC_MH_send_MASK) >> MH_DEBUG_REG11_TC_MH_send_SHIFT)
+
+#define MH_DEBUG_REG11_SET_TC_MH_info(mh_debug_reg11_reg, tc_mh_info) \
+ mh_debug_reg11_reg = (mh_debug_reg11_reg & ~MH_DEBUG_REG11_TC_MH_info_MASK) | (tc_mh_info << MH_DEBUG_REG11_TC_MH_info_SHIFT)
+#define MH_DEBUG_REG11_SET_TC_MH_send(mh_debug_reg11_reg, tc_mh_send) \
+ mh_debug_reg11_reg = (mh_debug_reg11_reg & ~MH_DEBUG_REG11_TC_MH_send_MASK) | (tc_mh_send << MH_DEBUG_REG11_TC_MH_send_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg11_t {
+ unsigned int tc_mh_info : MH_DEBUG_REG11_TC_MH_info_SIZE;
+ unsigned int tc_mh_send : MH_DEBUG_REG11_TC_MH_send_SIZE;
+ unsigned int : 6;
+ } mh_debug_reg11_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg11_t {
+ unsigned int : 6;
+ unsigned int tc_mh_send : MH_DEBUG_REG11_TC_MH_send_SIZE;
+ unsigned int tc_mh_info : MH_DEBUG_REG11_TC_MH_info_SIZE;
+ } mh_debug_reg11_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg11_t f;
+} mh_debug_reg11_u;
+
+
+/*
+ * MH_DEBUG_REG12 struct
+ */
+
+#define MH_DEBUG_REG12_MH_TC_mcinfo_SIZE 25
+#define MH_DEBUG_REG12_MH_TC_mcinfo_send_SIZE 1
+#define MH_DEBUG_REG12_TC_MH_written_SIZE 1
+
+#define MH_DEBUG_REG12_MH_TC_mcinfo_SHIFT 0
+#define MH_DEBUG_REG12_MH_TC_mcinfo_send_SHIFT 25
+#define MH_DEBUG_REG12_TC_MH_written_SHIFT 26
+
+#define MH_DEBUG_REG12_MH_TC_mcinfo_MASK 0x01ffffff
+#define MH_DEBUG_REG12_MH_TC_mcinfo_send_MASK 0x02000000
+#define MH_DEBUG_REG12_TC_MH_written_MASK 0x04000000
+
+#define MH_DEBUG_REG12_MASK \
+ (MH_DEBUG_REG12_MH_TC_mcinfo_MASK | \
+ MH_DEBUG_REG12_MH_TC_mcinfo_send_MASK | \
+ MH_DEBUG_REG12_TC_MH_written_MASK)
+
+#define MH_DEBUG_REG12(mh_tc_mcinfo, mh_tc_mcinfo_send, tc_mh_written) \
+ ((mh_tc_mcinfo << MH_DEBUG_REG12_MH_TC_mcinfo_SHIFT) | \
+ (mh_tc_mcinfo_send << MH_DEBUG_REG12_MH_TC_mcinfo_send_SHIFT) | \
+ (tc_mh_written << MH_DEBUG_REG12_TC_MH_written_SHIFT))
+
+#define MH_DEBUG_REG12_GET_MH_TC_mcinfo(mh_debug_reg12) \
+ ((mh_debug_reg12 & MH_DEBUG_REG12_MH_TC_mcinfo_MASK) >> MH_DEBUG_REG12_MH_TC_mcinfo_SHIFT)
+#define MH_DEBUG_REG12_GET_MH_TC_mcinfo_send(mh_debug_reg12) \
+ ((mh_debug_reg12 & MH_DEBUG_REG12_MH_TC_mcinfo_send_MASK) >> MH_DEBUG_REG12_MH_TC_mcinfo_send_SHIFT)
+#define MH_DEBUG_REG12_GET_TC_MH_written(mh_debug_reg12) \
+ ((mh_debug_reg12 & MH_DEBUG_REG12_TC_MH_written_MASK) >> MH_DEBUG_REG12_TC_MH_written_SHIFT)
+
+#define MH_DEBUG_REG12_SET_MH_TC_mcinfo(mh_debug_reg12_reg, mh_tc_mcinfo) \
+ mh_debug_reg12_reg = (mh_debug_reg12_reg & ~MH_DEBUG_REG12_MH_TC_mcinfo_MASK) | (mh_tc_mcinfo << MH_DEBUG_REG12_MH_TC_mcinfo_SHIFT)
+#define MH_DEBUG_REG12_SET_MH_TC_mcinfo_send(mh_debug_reg12_reg, mh_tc_mcinfo_send) \
+ mh_debug_reg12_reg = (mh_debug_reg12_reg & ~MH_DEBUG_REG12_MH_TC_mcinfo_send_MASK) | (mh_tc_mcinfo_send << MH_DEBUG_REG12_MH_TC_mcinfo_send_SHIFT)
+#define MH_DEBUG_REG12_SET_TC_MH_written(mh_debug_reg12_reg, tc_mh_written) \
+ mh_debug_reg12_reg = (mh_debug_reg12_reg & ~MH_DEBUG_REG12_TC_MH_written_MASK) | (tc_mh_written << MH_DEBUG_REG12_TC_MH_written_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg12_t {
+ unsigned int mh_tc_mcinfo : MH_DEBUG_REG12_MH_TC_mcinfo_SIZE;
+ unsigned int mh_tc_mcinfo_send : MH_DEBUG_REG12_MH_TC_mcinfo_send_SIZE;
+ unsigned int tc_mh_written : MH_DEBUG_REG12_TC_MH_written_SIZE;
+ unsigned int : 5;
+ } mh_debug_reg12_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg12_t {
+ unsigned int : 5;
+ unsigned int tc_mh_written : MH_DEBUG_REG12_TC_MH_written_SIZE;
+ unsigned int mh_tc_mcinfo_send : MH_DEBUG_REG12_MH_TC_mcinfo_send_SIZE;
+ unsigned int mh_tc_mcinfo : MH_DEBUG_REG12_MH_TC_mcinfo_SIZE;
+ } mh_debug_reg12_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg12_t f;
+} mh_debug_reg12_u;
+
+
+/*
+ * MH_DEBUG_REG13 struct
+ */
+
+#define MH_DEBUG_REG13_ALWAYS_ZERO_SIZE 2
+#define MH_DEBUG_REG13_TC_ROQ_SEND_SIZE 1
+#define MH_DEBUG_REG13_TC_ROQ_MASK_SIZE 2
+#define MH_DEBUG_REG13_TC_ROQ_ADDR_31_5_SIZE 27
+
+#define MH_DEBUG_REG13_ALWAYS_ZERO_SHIFT 0
+#define MH_DEBUG_REG13_TC_ROQ_SEND_SHIFT 2
+#define MH_DEBUG_REG13_TC_ROQ_MASK_SHIFT 3
+#define MH_DEBUG_REG13_TC_ROQ_ADDR_31_5_SHIFT 5
+
+#define MH_DEBUG_REG13_ALWAYS_ZERO_MASK 0x00000003
+#define MH_DEBUG_REG13_TC_ROQ_SEND_MASK 0x00000004
+#define MH_DEBUG_REG13_TC_ROQ_MASK_MASK 0x00000018
+#define MH_DEBUG_REG13_TC_ROQ_ADDR_31_5_MASK 0xffffffe0
+
+#define MH_DEBUG_REG13_MASK \
+ (MH_DEBUG_REG13_ALWAYS_ZERO_MASK | \
+ MH_DEBUG_REG13_TC_ROQ_SEND_MASK | \
+ MH_DEBUG_REG13_TC_ROQ_MASK_MASK | \
+ MH_DEBUG_REG13_TC_ROQ_ADDR_31_5_MASK)
+
+#define MH_DEBUG_REG13(always_zero, tc_roq_send, tc_roq_mask, tc_roq_addr_31_5) \
+ ((always_zero << MH_DEBUG_REG13_ALWAYS_ZERO_SHIFT) | \
+ (tc_roq_send << MH_DEBUG_REG13_TC_ROQ_SEND_SHIFT) | \
+ (tc_roq_mask << MH_DEBUG_REG13_TC_ROQ_MASK_SHIFT) | \
+ (tc_roq_addr_31_5 << MH_DEBUG_REG13_TC_ROQ_ADDR_31_5_SHIFT))
+
+#define MH_DEBUG_REG13_GET_ALWAYS_ZERO(mh_debug_reg13) \
+ ((mh_debug_reg13 & MH_DEBUG_REG13_ALWAYS_ZERO_MASK) >> MH_DEBUG_REG13_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG13_GET_TC_ROQ_SEND(mh_debug_reg13) \
+ ((mh_debug_reg13 & MH_DEBUG_REG13_TC_ROQ_SEND_MASK) >> MH_DEBUG_REG13_TC_ROQ_SEND_SHIFT)
+#define MH_DEBUG_REG13_GET_TC_ROQ_MASK(mh_debug_reg13) \
+ ((mh_debug_reg13 & MH_DEBUG_REG13_TC_ROQ_MASK_MASK) >> MH_DEBUG_REG13_TC_ROQ_MASK_SHIFT)
+#define MH_DEBUG_REG13_GET_TC_ROQ_ADDR_31_5(mh_debug_reg13) \
+ ((mh_debug_reg13 & MH_DEBUG_REG13_TC_ROQ_ADDR_31_5_MASK) >> MH_DEBUG_REG13_TC_ROQ_ADDR_31_5_SHIFT)
+
+#define MH_DEBUG_REG13_SET_ALWAYS_ZERO(mh_debug_reg13_reg, always_zero) \
+ mh_debug_reg13_reg = (mh_debug_reg13_reg & ~MH_DEBUG_REG13_ALWAYS_ZERO_MASK) | (always_zero << MH_DEBUG_REG13_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG13_SET_TC_ROQ_SEND(mh_debug_reg13_reg, tc_roq_send) \
+ mh_debug_reg13_reg = (mh_debug_reg13_reg & ~MH_DEBUG_REG13_TC_ROQ_SEND_MASK) | (tc_roq_send << MH_DEBUG_REG13_TC_ROQ_SEND_SHIFT)
+#define MH_DEBUG_REG13_SET_TC_ROQ_MASK(mh_debug_reg13_reg, tc_roq_mask) \
+ mh_debug_reg13_reg = (mh_debug_reg13_reg & ~MH_DEBUG_REG13_TC_ROQ_MASK_MASK) | (tc_roq_mask << MH_DEBUG_REG13_TC_ROQ_MASK_SHIFT)
+#define MH_DEBUG_REG13_SET_TC_ROQ_ADDR_31_5(mh_debug_reg13_reg, tc_roq_addr_31_5) \
+ mh_debug_reg13_reg = (mh_debug_reg13_reg & ~MH_DEBUG_REG13_TC_ROQ_ADDR_31_5_MASK) | (tc_roq_addr_31_5 << MH_DEBUG_REG13_TC_ROQ_ADDR_31_5_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg13_t {
+ unsigned int always_zero : MH_DEBUG_REG13_ALWAYS_ZERO_SIZE;
+ unsigned int tc_roq_send : MH_DEBUG_REG13_TC_ROQ_SEND_SIZE;
+ unsigned int tc_roq_mask : MH_DEBUG_REG13_TC_ROQ_MASK_SIZE;
+ unsigned int tc_roq_addr_31_5 : MH_DEBUG_REG13_TC_ROQ_ADDR_31_5_SIZE;
+ } mh_debug_reg13_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg13_t {
+ unsigned int tc_roq_addr_31_5 : MH_DEBUG_REG13_TC_ROQ_ADDR_31_5_SIZE;
+ unsigned int tc_roq_mask : MH_DEBUG_REG13_TC_ROQ_MASK_SIZE;
+ unsigned int tc_roq_send : MH_DEBUG_REG13_TC_ROQ_SEND_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG13_ALWAYS_ZERO_SIZE;
+ } mh_debug_reg13_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg13_t f;
+} mh_debug_reg13_u;
+
+
+/*
+ * MH_DEBUG_REG14 struct
+ */
+
+#define MH_DEBUG_REG14_TC_ROQ_INFO_SIZE 25
+#define MH_DEBUG_REG14_TC_ROQ_SEND_SIZE 1
+
+#define MH_DEBUG_REG14_TC_ROQ_INFO_SHIFT 0
+#define MH_DEBUG_REG14_TC_ROQ_SEND_SHIFT 25
+
+#define MH_DEBUG_REG14_TC_ROQ_INFO_MASK 0x01ffffff
+#define MH_DEBUG_REG14_TC_ROQ_SEND_MASK 0x02000000
+
+#define MH_DEBUG_REG14_MASK \
+ (MH_DEBUG_REG14_TC_ROQ_INFO_MASK | \
+ MH_DEBUG_REG14_TC_ROQ_SEND_MASK)
+
+#define MH_DEBUG_REG14(tc_roq_info, tc_roq_send) \
+ ((tc_roq_info << MH_DEBUG_REG14_TC_ROQ_INFO_SHIFT) | \
+ (tc_roq_send << MH_DEBUG_REG14_TC_ROQ_SEND_SHIFT))
+
+#define MH_DEBUG_REG14_GET_TC_ROQ_INFO(mh_debug_reg14) \
+ ((mh_debug_reg14 & MH_DEBUG_REG14_TC_ROQ_INFO_MASK) >> MH_DEBUG_REG14_TC_ROQ_INFO_SHIFT)
+#define MH_DEBUG_REG14_GET_TC_ROQ_SEND(mh_debug_reg14) \
+ ((mh_debug_reg14 & MH_DEBUG_REG14_TC_ROQ_SEND_MASK) >> MH_DEBUG_REG14_TC_ROQ_SEND_SHIFT)
+
+#define MH_DEBUG_REG14_SET_TC_ROQ_INFO(mh_debug_reg14_reg, tc_roq_info) \
+ mh_debug_reg14_reg = (mh_debug_reg14_reg & ~MH_DEBUG_REG14_TC_ROQ_INFO_MASK) | (tc_roq_info << MH_DEBUG_REG14_TC_ROQ_INFO_SHIFT)
+#define MH_DEBUG_REG14_SET_TC_ROQ_SEND(mh_debug_reg14_reg, tc_roq_send) \
+ mh_debug_reg14_reg = (mh_debug_reg14_reg & ~MH_DEBUG_REG14_TC_ROQ_SEND_MASK) | (tc_roq_send << MH_DEBUG_REG14_TC_ROQ_SEND_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg14_t {
+ unsigned int tc_roq_info : MH_DEBUG_REG14_TC_ROQ_INFO_SIZE;
+ unsigned int tc_roq_send : MH_DEBUG_REG14_TC_ROQ_SEND_SIZE;
+ unsigned int : 6;
+ } mh_debug_reg14_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg14_t {
+ unsigned int : 6;
+ unsigned int tc_roq_send : MH_DEBUG_REG14_TC_ROQ_SEND_SIZE;
+ unsigned int tc_roq_info : MH_DEBUG_REG14_TC_ROQ_INFO_SIZE;
+ } mh_debug_reg14_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg14_t f;
+} mh_debug_reg14_u;
+
+
+/*
+ * MH_DEBUG_REG15 struct
+ */
+
+#define MH_DEBUG_REG15_ALWAYS_ZERO_SIZE 4
+#define MH_DEBUG_REG15_RB_MH_send_SIZE 1
+#define MH_DEBUG_REG15_RB_MH_addr_31_5_SIZE 27
+
+#define MH_DEBUG_REG15_ALWAYS_ZERO_SHIFT 0
+#define MH_DEBUG_REG15_RB_MH_send_SHIFT 4
+#define MH_DEBUG_REG15_RB_MH_addr_31_5_SHIFT 5
+
+#define MH_DEBUG_REG15_ALWAYS_ZERO_MASK 0x0000000f
+#define MH_DEBUG_REG15_RB_MH_send_MASK 0x00000010
+#define MH_DEBUG_REG15_RB_MH_addr_31_5_MASK 0xffffffe0
+
+#define MH_DEBUG_REG15_MASK \
+ (MH_DEBUG_REG15_ALWAYS_ZERO_MASK | \
+ MH_DEBUG_REG15_RB_MH_send_MASK | \
+ MH_DEBUG_REG15_RB_MH_addr_31_5_MASK)
+
+#define MH_DEBUG_REG15(always_zero, rb_mh_send, rb_mh_addr_31_5) \
+ ((always_zero << MH_DEBUG_REG15_ALWAYS_ZERO_SHIFT) | \
+ (rb_mh_send << MH_DEBUG_REG15_RB_MH_send_SHIFT) | \
+ (rb_mh_addr_31_5 << MH_DEBUG_REG15_RB_MH_addr_31_5_SHIFT))
+
+#define MH_DEBUG_REG15_GET_ALWAYS_ZERO(mh_debug_reg15) \
+ ((mh_debug_reg15 & MH_DEBUG_REG15_ALWAYS_ZERO_MASK) >> MH_DEBUG_REG15_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG15_GET_RB_MH_send(mh_debug_reg15) \
+ ((mh_debug_reg15 & MH_DEBUG_REG15_RB_MH_send_MASK) >> MH_DEBUG_REG15_RB_MH_send_SHIFT)
+#define MH_DEBUG_REG15_GET_RB_MH_addr_31_5(mh_debug_reg15) \
+ ((mh_debug_reg15 & MH_DEBUG_REG15_RB_MH_addr_31_5_MASK) >> MH_DEBUG_REG15_RB_MH_addr_31_5_SHIFT)
+
+#define MH_DEBUG_REG15_SET_ALWAYS_ZERO(mh_debug_reg15_reg, always_zero) \
+ mh_debug_reg15_reg = (mh_debug_reg15_reg & ~MH_DEBUG_REG15_ALWAYS_ZERO_MASK) | (always_zero << MH_DEBUG_REG15_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG15_SET_RB_MH_send(mh_debug_reg15_reg, rb_mh_send) \
+ mh_debug_reg15_reg = (mh_debug_reg15_reg & ~MH_DEBUG_REG15_RB_MH_send_MASK) | (rb_mh_send << MH_DEBUG_REG15_RB_MH_send_SHIFT)
+#define MH_DEBUG_REG15_SET_RB_MH_addr_31_5(mh_debug_reg15_reg, rb_mh_addr_31_5) \
+ mh_debug_reg15_reg = (mh_debug_reg15_reg & ~MH_DEBUG_REG15_RB_MH_addr_31_5_MASK) | (rb_mh_addr_31_5 << MH_DEBUG_REG15_RB_MH_addr_31_5_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg15_t {
+ unsigned int always_zero : MH_DEBUG_REG15_ALWAYS_ZERO_SIZE;
+ unsigned int rb_mh_send : MH_DEBUG_REG15_RB_MH_send_SIZE;
+ unsigned int rb_mh_addr_31_5 : MH_DEBUG_REG15_RB_MH_addr_31_5_SIZE;
+ } mh_debug_reg15_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg15_t {
+ unsigned int rb_mh_addr_31_5 : MH_DEBUG_REG15_RB_MH_addr_31_5_SIZE;
+ unsigned int rb_mh_send : MH_DEBUG_REG15_RB_MH_send_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG15_ALWAYS_ZERO_SIZE;
+ } mh_debug_reg15_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg15_t f;
+} mh_debug_reg15_u;
+
+
+/*
+ * MH_DEBUG_REG16 struct
+ */
+
+#define MH_DEBUG_REG16_RB_MH_data_31_0_SIZE 32
+
+#define MH_DEBUG_REG16_RB_MH_data_31_0_SHIFT 0
+
+#define MH_DEBUG_REG16_RB_MH_data_31_0_MASK 0xffffffff
+
+#define MH_DEBUG_REG16_MASK \
+ (MH_DEBUG_REG16_RB_MH_data_31_0_MASK)
+
+#define MH_DEBUG_REG16(rb_mh_data_31_0) \
+ ((rb_mh_data_31_0 << MH_DEBUG_REG16_RB_MH_data_31_0_SHIFT))
+
+#define MH_DEBUG_REG16_GET_RB_MH_data_31_0(mh_debug_reg16) \
+ ((mh_debug_reg16 & MH_DEBUG_REG16_RB_MH_data_31_0_MASK) >> MH_DEBUG_REG16_RB_MH_data_31_0_SHIFT)
+
+#define MH_DEBUG_REG16_SET_RB_MH_data_31_0(mh_debug_reg16_reg, rb_mh_data_31_0) \
+ mh_debug_reg16_reg = (mh_debug_reg16_reg & ~MH_DEBUG_REG16_RB_MH_data_31_0_MASK) | (rb_mh_data_31_0 << MH_DEBUG_REG16_RB_MH_data_31_0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg16_t {
+ unsigned int rb_mh_data_31_0 : MH_DEBUG_REG16_RB_MH_data_31_0_SIZE;
+ } mh_debug_reg16_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg16_t {
+ unsigned int rb_mh_data_31_0 : MH_DEBUG_REG16_RB_MH_data_31_0_SIZE;
+ } mh_debug_reg16_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg16_t f;
+} mh_debug_reg16_u;
+
+
+/*
+ * MH_DEBUG_REG17 struct
+ */
+
+#define MH_DEBUG_REG17_RB_MH_data_63_32_SIZE 32
+
+#define MH_DEBUG_REG17_RB_MH_data_63_32_SHIFT 0
+
+#define MH_DEBUG_REG17_RB_MH_data_63_32_MASK 0xffffffff
+
+#define MH_DEBUG_REG17_MASK \
+ (MH_DEBUG_REG17_RB_MH_data_63_32_MASK)
+
+#define MH_DEBUG_REG17(rb_mh_data_63_32) \
+ ((rb_mh_data_63_32 << MH_DEBUG_REG17_RB_MH_data_63_32_SHIFT))
+
+#define MH_DEBUG_REG17_GET_RB_MH_data_63_32(mh_debug_reg17) \
+ ((mh_debug_reg17 & MH_DEBUG_REG17_RB_MH_data_63_32_MASK) >> MH_DEBUG_REG17_RB_MH_data_63_32_SHIFT)
+
+#define MH_DEBUG_REG17_SET_RB_MH_data_63_32(mh_debug_reg17_reg, rb_mh_data_63_32) \
+ mh_debug_reg17_reg = (mh_debug_reg17_reg & ~MH_DEBUG_REG17_RB_MH_data_63_32_MASK) | (rb_mh_data_63_32 << MH_DEBUG_REG17_RB_MH_data_63_32_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg17_t {
+ unsigned int rb_mh_data_63_32 : MH_DEBUG_REG17_RB_MH_data_63_32_SIZE;
+ } mh_debug_reg17_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg17_t {
+ unsigned int rb_mh_data_63_32 : MH_DEBUG_REG17_RB_MH_data_63_32_SIZE;
+ } mh_debug_reg17_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg17_t f;
+} mh_debug_reg17_u;
+
+
+/*
+ * MH_DEBUG_REG18 struct
+ */
+
+#define MH_DEBUG_REG18_ALWAYS_ZERO_SIZE 4
+#define MH_DEBUG_REG18_PA_MH_send_SIZE 1
+#define MH_DEBUG_REG18_PA_MH_addr_31_5_SIZE 27
+
+#define MH_DEBUG_REG18_ALWAYS_ZERO_SHIFT 0
+#define MH_DEBUG_REG18_PA_MH_send_SHIFT 4
+#define MH_DEBUG_REG18_PA_MH_addr_31_5_SHIFT 5
+
+#define MH_DEBUG_REG18_ALWAYS_ZERO_MASK 0x0000000f
+#define MH_DEBUG_REG18_PA_MH_send_MASK 0x00000010
+#define MH_DEBUG_REG18_PA_MH_addr_31_5_MASK 0xffffffe0
+
+#define MH_DEBUG_REG18_MASK \
+ (MH_DEBUG_REG18_ALWAYS_ZERO_MASK | \
+ MH_DEBUG_REG18_PA_MH_send_MASK | \
+ MH_DEBUG_REG18_PA_MH_addr_31_5_MASK)
+
+#define MH_DEBUG_REG18(always_zero, pa_mh_send, pa_mh_addr_31_5) \
+ ((always_zero << MH_DEBUG_REG18_ALWAYS_ZERO_SHIFT) | \
+ (pa_mh_send << MH_DEBUG_REG18_PA_MH_send_SHIFT) | \
+ (pa_mh_addr_31_5 << MH_DEBUG_REG18_PA_MH_addr_31_5_SHIFT))
+
+#define MH_DEBUG_REG18_GET_ALWAYS_ZERO(mh_debug_reg18) \
+ ((mh_debug_reg18 & MH_DEBUG_REG18_ALWAYS_ZERO_MASK) >> MH_DEBUG_REG18_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG18_GET_PA_MH_send(mh_debug_reg18) \
+ ((mh_debug_reg18 & MH_DEBUG_REG18_PA_MH_send_MASK) >> MH_DEBUG_REG18_PA_MH_send_SHIFT)
+#define MH_DEBUG_REG18_GET_PA_MH_addr_31_5(mh_debug_reg18) \
+ ((mh_debug_reg18 & MH_DEBUG_REG18_PA_MH_addr_31_5_MASK) >> MH_DEBUG_REG18_PA_MH_addr_31_5_SHIFT)
+
+#define MH_DEBUG_REG18_SET_ALWAYS_ZERO(mh_debug_reg18_reg, always_zero) \
+ mh_debug_reg18_reg = (mh_debug_reg18_reg & ~MH_DEBUG_REG18_ALWAYS_ZERO_MASK) | (always_zero << MH_DEBUG_REG18_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG18_SET_PA_MH_send(mh_debug_reg18_reg, pa_mh_send) \
+ mh_debug_reg18_reg = (mh_debug_reg18_reg & ~MH_DEBUG_REG18_PA_MH_send_MASK) | (pa_mh_send << MH_DEBUG_REG18_PA_MH_send_SHIFT)
+#define MH_DEBUG_REG18_SET_PA_MH_addr_31_5(mh_debug_reg18_reg, pa_mh_addr_31_5) \
+ mh_debug_reg18_reg = (mh_debug_reg18_reg & ~MH_DEBUG_REG18_PA_MH_addr_31_5_MASK) | (pa_mh_addr_31_5 << MH_DEBUG_REG18_PA_MH_addr_31_5_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg18_t {
+ unsigned int always_zero : MH_DEBUG_REG18_ALWAYS_ZERO_SIZE;
+ unsigned int pa_mh_send : MH_DEBUG_REG18_PA_MH_send_SIZE;
+ unsigned int pa_mh_addr_31_5 : MH_DEBUG_REG18_PA_MH_addr_31_5_SIZE;
+ } mh_debug_reg18_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg18_t {
+ unsigned int pa_mh_addr_31_5 : MH_DEBUG_REG18_PA_MH_addr_31_5_SIZE;
+ unsigned int pa_mh_send : MH_DEBUG_REG18_PA_MH_send_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG18_ALWAYS_ZERO_SIZE;
+ } mh_debug_reg18_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg18_t f;
+} mh_debug_reg18_u;
+
+
+/*
+ * MH_DEBUG_REG19 struct
+ */
+
+#define MH_DEBUG_REG19_PA_MH_data_31_0_SIZE 32
+
+#define MH_DEBUG_REG19_PA_MH_data_31_0_SHIFT 0
+
+#define MH_DEBUG_REG19_PA_MH_data_31_0_MASK 0xffffffff
+
+#define MH_DEBUG_REG19_MASK \
+ (MH_DEBUG_REG19_PA_MH_data_31_0_MASK)
+
+#define MH_DEBUG_REG19(pa_mh_data_31_0) \
+ ((pa_mh_data_31_0 << MH_DEBUG_REG19_PA_MH_data_31_0_SHIFT))
+
+#define MH_DEBUG_REG19_GET_PA_MH_data_31_0(mh_debug_reg19) \
+ ((mh_debug_reg19 & MH_DEBUG_REG19_PA_MH_data_31_0_MASK) >> MH_DEBUG_REG19_PA_MH_data_31_0_SHIFT)
+
+#define MH_DEBUG_REG19_SET_PA_MH_data_31_0(mh_debug_reg19_reg, pa_mh_data_31_0) \
+ mh_debug_reg19_reg = (mh_debug_reg19_reg & ~MH_DEBUG_REG19_PA_MH_data_31_0_MASK) | (pa_mh_data_31_0 << MH_DEBUG_REG19_PA_MH_data_31_0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg19_t {
+ unsigned int pa_mh_data_31_0 : MH_DEBUG_REG19_PA_MH_data_31_0_SIZE;
+ } mh_debug_reg19_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg19_t {
+ unsigned int pa_mh_data_31_0 : MH_DEBUG_REG19_PA_MH_data_31_0_SIZE;
+ } mh_debug_reg19_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg19_t f;
+} mh_debug_reg19_u;
+
+
+/*
+ * MH_DEBUG_REG20 struct
+ */
+
+#define MH_DEBUG_REG20_PA_MH_data_63_32_SIZE 32
+
+#define MH_DEBUG_REG20_PA_MH_data_63_32_SHIFT 0
+
+#define MH_DEBUG_REG20_PA_MH_data_63_32_MASK 0xffffffff
+
+#define MH_DEBUG_REG20_MASK \
+ (MH_DEBUG_REG20_PA_MH_data_63_32_MASK)
+
+#define MH_DEBUG_REG20(pa_mh_data_63_32) \
+ ((pa_mh_data_63_32 << MH_DEBUG_REG20_PA_MH_data_63_32_SHIFT))
+
+#define MH_DEBUG_REG20_GET_PA_MH_data_63_32(mh_debug_reg20) \
+ ((mh_debug_reg20 & MH_DEBUG_REG20_PA_MH_data_63_32_MASK) >> MH_DEBUG_REG20_PA_MH_data_63_32_SHIFT)
+
+#define MH_DEBUG_REG20_SET_PA_MH_data_63_32(mh_debug_reg20_reg, pa_mh_data_63_32) \
+ mh_debug_reg20_reg = (mh_debug_reg20_reg & ~MH_DEBUG_REG20_PA_MH_data_63_32_MASK) | (pa_mh_data_63_32 << MH_DEBUG_REG20_PA_MH_data_63_32_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg20_t {
+ unsigned int pa_mh_data_63_32 : MH_DEBUG_REG20_PA_MH_data_63_32_SIZE;
+ } mh_debug_reg20_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg20_t {
+ unsigned int pa_mh_data_63_32 : MH_DEBUG_REG20_PA_MH_data_63_32_SIZE;
+ } mh_debug_reg20_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg20_t f;
+} mh_debug_reg20_u;
+
+
+/*
+ * MH_DEBUG_REG21 struct
+ */
+
+#define MH_DEBUG_REG21_AVALID_q_SIZE 1
+#define MH_DEBUG_REG21_AREADY_q_SIZE 1
+#define MH_DEBUG_REG21_AID_q_SIZE 3
+#define MH_DEBUG_REG21_ALEN_q_2_0_SIZE 3
+#define MH_DEBUG_REG21_ARVALID_q_SIZE 1
+#define MH_DEBUG_REG21_ARREADY_q_SIZE 1
+#define MH_DEBUG_REG21_ARID_q_SIZE 3
+#define MH_DEBUG_REG21_ARLEN_q_1_0_SIZE 2
+#define MH_DEBUG_REG21_RVALID_q_SIZE 1
+#define MH_DEBUG_REG21_RREADY_q_SIZE 1
+#define MH_DEBUG_REG21_RLAST_q_SIZE 1
+#define MH_DEBUG_REG21_RID_q_SIZE 3
+#define MH_DEBUG_REG21_WVALID_q_SIZE 1
+#define MH_DEBUG_REG21_WREADY_q_SIZE 1
+#define MH_DEBUG_REG21_WLAST_q_SIZE 1
+#define MH_DEBUG_REG21_WID_q_SIZE 3
+#define MH_DEBUG_REG21_BVALID_q_SIZE 1
+#define MH_DEBUG_REG21_BREADY_q_SIZE 1
+#define MH_DEBUG_REG21_BID_q_SIZE 3
+
+#define MH_DEBUG_REG21_AVALID_q_SHIFT 0
+#define MH_DEBUG_REG21_AREADY_q_SHIFT 1
+#define MH_DEBUG_REG21_AID_q_SHIFT 2
+#define MH_DEBUG_REG21_ALEN_q_2_0_SHIFT 5
+#define MH_DEBUG_REG21_ARVALID_q_SHIFT 8
+#define MH_DEBUG_REG21_ARREADY_q_SHIFT 9
+#define MH_DEBUG_REG21_ARID_q_SHIFT 10
+#define MH_DEBUG_REG21_ARLEN_q_1_0_SHIFT 13
+#define MH_DEBUG_REG21_RVALID_q_SHIFT 15
+#define MH_DEBUG_REG21_RREADY_q_SHIFT 16
+#define MH_DEBUG_REG21_RLAST_q_SHIFT 17
+#define MH_DEBUG_REG21_RID_q_SHIFT 18
+#define MH_DEBUG_REG21_WVALID_q_SHIFT 21
+#define MH_DEBUG_REG21_WREADY_q_SHIFT 22
+#define MH_DEBUG_REG21_WLAST_q_SHIFT 23
+#define MH_DEBUG_REG21_WID_q_SHIFT 24
+#define MH_DEBUG_REG21_BVALID_q_SHIFT 27
+#define MH_DEBUG_REG21_BREADY_q_SHIFT 28
+#define MH_DEBUG_REG21_BID_q_SHIFT 29
+
+#define MH_DEBUG_REG21_AVALID_q_MASK 0x00000001
+#define MH_DEBUG_REG21_AREADY_q_MASK 0x00000002
+#define MH_DEBUG_REG21_AID_q_MASK 0x0000001c
+#define MH_DEBUG_REG21_ALEN_q_2_0_MASK 0x000000e0
+#define MH_DEBUG_REG21_ARVALID_q_MASK 0x00000100
+#define MH_DEBUG_REG21_ARREADY_q_MASK 0x00000200
+#define MH_DEBUG_REG21_ARID_q_MASK 0x00001c00
+#define MH_DEBUG_REG21_ARLEN_q_1_0_MASK 0x00006000
+#define MH_DEBUG_REG21_RVALID_q_MASK 0x00008000
+#define MH_DEBUG_REG21_RREADY_q_MASK 0x00010000
+#define MH_DEBUG_REG21_RLAST_q_MASK 0x00020000
+#define MH_DEBUG_REG21_RID_q_MASK 0x001c0000
+#define MH_DEBUG_REG21_WVALID_q_MASK 0x00200000
+#define MH_DEBUG_REG21_WREADY_q_MASK 0x00400000
+#define MH_DEBUG_REG21_WLAST_q_MASK 0x00800000
+#define MH_DEBUG_REG21_WID_q_MASK 0x07000000
+#define MH_DEBUG_REG21_BVALID_q_MASK 0x08000000
+#define MH_DEBUG_REG21_BREADY_q_MASK 0x10000000
+#define MH_DEBUG_REG21_BID_q_MASK 0xe0000000
+
+#define MH_DEBUG_REG21_MASK \
+ (MH_DEBUG_REG21_AVALID_q_MASK | \
+ MH_DEBUG_REG21_AREADY_q_MASK | \
+ MH_DEBUG_REG21_AID_q_MASK | \
+ MH_DEBUG_REG21_ALEN_q_2_0_MASK | \
+ MH_DEBUG_REG21_ARVALID_q_MASK | \
+ MH_DEBUG_REG21_ARREADY_q_MASK | \
+ MH_DEBUG_REG21_ARID_q_MASK | \
+ MH_DEBUG_REG21_ARLEN_q_1_0_MASK | \
+ MH_DEBUG_REG21_RVALID_q_MASK | \
+ MH_DEBUG_REG21_RREADY_q_MASK | \
+ MH_DEBUG_REG21_RLAST_q_MASK | \
+ MH_DEBUG_REG21_RID_q_MASK | \
+ MH_DEBUG_REG21_WVALID_q_MASK | \
+ MH_DEBUG_REG21_WREADY_q_MASK | \
+ MH_DEBUG_REG21_WLAST_q_MASK | \
+ MH_DEBUG_REG21_WID_q_MASK | \
+ MH_DEBUG_REG21_BVALID_q_MASK | \
+ MH_DEBUG_REG21_BREADY_q_MASK | \
+ MH_DEBUG_REG21_BID_q_MASK)
+
+#define MH_DEBUG_REG21(avalid_q, aready_q, aid_q, alen_q_2_0, arvalid_q, arready_q, arid_q, arlen_q_1_0, rvalid_q, rready_q, rlast_q, rid_q, wvalid_q, wready_q, wlast_q, wid_q, bvalid_q, bready_q, bid_q) \
+ ((avalid_q << MH_DEBUG_REG21_AVALID_q_SHIFT) | \
+ (aready_q << MH_DEBUG_REG21_AREADY_q_SHIFT) | \
+ (aid_q << MH_DEBUG_REG21_AID_q_SHIFT) | \
+ (alen_q_2_0 << MH_DEBUG_REG21_ALEN_q_2_0_SHIFT) | \
+ (arvalid_q << MH_DEBUG_REG21_ARVALID_q_SHIFT) | \
+ (arready_q << MH_DEBUG_REG21_ARREADY_q_SHIFT) | \
+ (arid_q << MH_DEBUG_REG21_ARID_q_SHIFT) | \
+ (arlen_q_1_0 << MH_DEBUG_REG21_ARLEN_q_1_0_SHIFT) | \
+ (rvalid_q << MH_DEBUG_REG21_RVALID_q_SHIFT) | \
+ (rready_q << MH_DEBUG_REG21_RREADY_q_SHIFT) | \
+ (rlast_q << MH_DEBUG_REG21_RLAST_q_SHIFT) | \
+ (rid_q << MH_DEBUG_REG21_RID_q_SHIFT) | \
+ (wvalid_q << MH_DEBUG_REG21_WVALID_q_SHIFT) | \
+ (wready_q << MH_DEBUG_REG21_WREADY_q_SHIFT) | \
+ (wlast_q << MH_DEBUG_REG21_WLAST_q_SHIFT) | \
+ (wid_q << MH_DEBUG_REG21_WID_q_SHIFT) | \
+ (bvalid_q << MH_DEBUG_REG21_BVALID_q_SHIFT) | \
+ (bready_q << MH_DEBUG_REG21_BREADY_q_SHIFT) | \
+ (bid_q << MH_DEBUG_REG21_BID_q_SHIFT))
+
+#define MH_DEBUG_REG21_GET_AVALID_q(mh_debug_reg21) \
+ ((mh_debug_reg21 & MH_DEBUG_REG21_AVALID_q_MASK) >> MH_DEBUG_REG21_AVALID_q_SHIFT)
+#define MH_DEBUG_REG21_GET_AREADY_q(mh_debug_reg21) \
+ ((mh_debug_reg21 & MH_DEBUG_REG21_AREADY_q_MASK) >> MH_DEBUG_REG21_AREADY_q_SHIFT)
+#define MH_DEBUG_REG21_GET_AID_q(mh_debug_reg21) \
+ ((mh_debug_reg21 & MH_DEBUG_REG21_AID_q_MASK) >> MH_DEBUG_REG21_AID_q_SHIFT)
+#define MH_DEBUG_REG21_GET_ALEN_q_2_0(mh_debug_reg21) \
+ ((mh_debug_reg21 & MH_DEBUG_REG21_ALEN_q_2_0_MASK) >> MH_DEBUG_REG21_ALEN_q_2_0_SHIFT)
+#define MH_DEBUG_REG21_GET_ARVALID_q(mh_debug_reg21) \
+ ((mh_debug_reg21 & MH_DEBUG_REG21_ARVALID_q_MASK) >> MH_DEBUG_REG21_ARVALID_q_SHIFT)
+#define MH_DEBUG_REG21_GET_ARREADY_q(mh_debug_reg21) \
+ ((mh_debug_reg21 & MH_DEBUG_REG21_ARREADY_q_MASK) >> MH_DEBUG_REG21_ARREADY_q_SHIFT)
+#define MH_DEBUG_REG21_GET_ARID_q(mh_debug_reg21) \
+ ((mh_debug_reg21 & MH_DEBUG_REG21_ARID_q_MASK) >> MH_DEBUG_REG21_ARID_q_SHIFT)
+#define MH_DEBUG_REG21_GET_ARLEN_q_1_0(mh_debug_reg21) \
+ ((mh_debug_reg21 & MH_DEBUG_REG21_ARLEN_q_1_0_MASK) >> MH_DEBUG_REG21_ARLEN_q_1_0_SHIFT)
+#define MH_DEBUG_REG21_GET_RVALID_q(mh_debug_reg21) \
+ ((mh_debug_reg21 & MH_DEBUG_REG21_RVALID_q_MASK) >> MH_DEBUG_REG21_RVALID_q_SHIFT)
+#define MH_DEBUG_REG21_GET_RREADY_q(mh_debug_reg21) \
+ ((mh_debug_reg21 & MH_DEBUG_REG21_RREADY_q_MASK) >> MH_DEBUG_REG21_RREADY_q_SHIFT)
+#define MH_DEBUG_REG21_GET_RLAST_q(mh_debug_reg21) \
+ ((mh_debug_reg21 & MH_DEBUG_REG21_RLAST_q_MASK) >> MH_DEBUG_REG21_RLAST_q_SHIFT)
+#define MH_DEBUG_REG21_GET_RID_q(mh_debug_reg21) \
+ ((mh_debug_reg21 & MH_DEBUG_REG21_RID_q_MASK) >> MH_DEBUG_REG21_RID_q_SHIFT)
+#define MH_DEBUG_REG21_GET_WVALID_q(mh_debug_reg21) \
+ ((mh_debug_reg21 & MH_DEBUG_REG21_WVALID_q_MASK) >> MH_DEBUG_REG21_WVALID_q_SHIFT)
+#define MH_DEBUG_REG21_GET_WREADY_q(mh_debug_reg21) \
+ ((mh_debug_reg21 & MH_DEBUG_REG21_WREADY_q_MASK) >> MH_DEBUG_REG21_WREADY_q_SHIFT)
+#define MH_DEBUG_REG21_GET_WLAST_q(mh_debug_reg21) \
+ ((mh_debug_reg21 & MH_DEBUG_REG21_WLAST_q_MASK) >> MH_DEBUG_REG21_WLAST_q_SHIFT)
+#define MH_DEBUG_REG21_GET_WID_q(mh_debug_reg21) \
+ ((mh_debug_reg21 & MH_DEBUG_REG21_WID_q_MASK) >> MH_DEBUG_REG21_WID_q_SHIFT)
+#define MH_DEBUG_REG21_GET_BVALID_q(mh_debug_reg21) \
+ ((mh_debug_reg21 & MH_DEBUG_REG21_BVALID_q_MASK) >> MH_DEBUG_REG21_BVALID_q_SHIFT)
+#define MH_DEBUG_REG21_GET_BREADY_q(mh_debug_reg21) \
+ ((mh_debug_reg21 & MH_DEBUG_REG21_BREADY_q_MASK) >> MH_DEBUG_REG21_BREADY_q_SHIFT)
+#define MH_DEBUG_REG21_GET_BID_q(mh_debug_reg21) \
+ ((mh_debug_reg21 & MH_DEBUG_REG21_BID_q_MASK) >> MH_DEBUG_REG21_BID_q_SHIFT)
+
+#define MH_DEBUG_REG21_SET_AVALID_q(mh_debug_reg21_reg, avalid_q) \
+ mh_debug_reg21_reg = (mh_debug_reg21_reg & ~MH_DEBUG_REG21_AVALID_q_MASK) | (avalid_q << MH_DEBUG_REG21_AVALID_q_SHIFT)
+#define MH_DEBUG_REG21_SET_AREADY_q(mh_debug_reg21_reg, aready_q) \
+ mh_debug_reg21_reg = (mh_debug_reg21_reg & ~MH_DEBUG_REG21_AREADY_q_MASK) | (aready_q << MH_DEBUG_REG21_AREADY_q_SHIFT)
+#define MH_DEBUG_REG21_SET_AID_q(mh_debug_reg21_reg, aid_q) \
+ mh_debug_reg21_reg = (mh_debug_reg21_reg & ~MH_DEBUG_REG21_AID_q_MASK) | (aid_q << MH_DEBUG_REG21_AID_q_SHIFT)
+#define MH_DEBUG_REG21_SET_ALEN_q_2_0(mh_debug_reg21_reg, alen_q_2_0) \
+ mh_debug_reg21_reg = (mh_debug_reg21_reg & ~MH_DEBUG_REG21_ALEN_q_2_0_MASK) | (alen_q_2_0 << MH_DEBUG_REG21_ALEN_q_2_0_SHIFT)
+#define MH_DEBUG_REG21_SET_ARVALID_q(mh_debug_reg21_reg, arvalid_q) \
+ mh_debug_reg21_reg = (mh_debug_reg21_reg & ~MH_DEBUG_REG21_ARVALID_q_MASK) | (arvalid_q << MH_DEBUG_REG21_ARVALID_q_SHIFT)
+#define MH_DEBUG_REG21_SET_ARREADY_q(mh_debug_reg21_reg, arready_q) \
+ mh_debug_reg21_reg = (mh_debug_reg21_reg & ~MH_DEBUG_REG21_ARREADY_q_MASK) | (arready_q << MH_DEBUG_REG21_ARREADY_q_SHIFT)
+#define MH_DEBUG_REG21_SET_ARID_q(mh_debug_reg21_reg, arid_q) \
+ mh_debug_reg21_reg = (mh_debug_reg21_reg & ~MH_DEBUG_REG21_ARID_q_MASK) | (arid_q << MH_DEBUG_REG21_ARID_q_SHIFT)
+#define MH_DEBUG_REG21_SET_ARLEN_q_1_0(mh_debug_reg21_reg, arlen_q_1_0) \
+ mh_debug_reg21_reg = (mh_debug_reg21_reg & ~MH_DEBUG_REG21_ARLEN_q_1_0_MASK) | (arlen_q_1_0 << MH_DEBUG_REG21_ARLEN_q_1_0_SHIFT)
+#define MH_DEBUG_REG21_SET_RVALID_q(mh_debug_reg21_reg, rvalid_q) \
+ mh_debug_reg21_reg = (mh_debug_reg21_reg & ~MH_DEBUG_REG21_RVALID_q_MASK) | (rvalid_q << MH_DEBUG_REG21_RVALID_q_SHIFT)
+#define MH_DEBUG_REG21_SET_RREADY_q(mh_debug_reg21_reg, rready_q) \
+ mh_debug_reg21_reg = (mh_debug_reg21_reg & ~MH_DEBUG_REG21_RREADY_q_MASK) | (rready_q << MH_DEBUG_REG21_RREADY_q_SHIFT)
+#define MH_DEBUG_REG21_SET_RLAST_q(mh_debug_reg21_reg, rlast_q) \
+ mh_debug_reg21_reg = (mh_debug_reg21_reg & ~MH_DEBUG_REG21_RLAST_q_MASK) | (rlast_q << MH_DEBUG_REG21_RLAST_q_SHIFT)
+#define MH_DEBUG_REG21_SET_RID_q(mh_debug_reg21_reg, rid_q) \
+ mh_debug_reg21_reg = (mh_debug_reg21_reg & ~MH_DEBUG_REG21_RID_q_MASK) | (rid_q << MH_DEBUG_REG21_RID_q_SHIFT)
+#define MH_DEBUG_REG21_SET_WVALID_q(mh_debug_reg21_reg, wvalid_q) \
+ mh_debug_reg21_reg = (mh_debug_reg21_reg & ~MH_DEBUG_REG21_WVALID_q_MASK) | (wvalid_q << MH_DEBUG_REG21_WVALID_q_SHIFT)
+#define MH_DEBUG_REG21_SET_WREADY_q(mh_debug_reg21_reg, wready_q) \
+ mh_debug_reg21_reg = (mh_debug_reg21_reg & ~MH_DEBUG_REG21_WREADY_q_MASK) | (wready_q << MH_DEBUG_REG21_WREADY_q_SHIFT)
+#define MH_DEBUG_REG21_SET_WLAST_q(mh_debug_reg21_reg, wlast_q) \
+ mh_debug_reg21_reg = (mh_debug_reg21_reg & ~MH_DEBUG_REG21_WLAST_q_MASK) | (wlast_q << MH_DEBUG_REG21_WLAST_q_SHIFT)
+#define MH_DEBUG_REG21_SET_WID_q(mh_debug_reg21_reg, wid_q) \
+ mh_debug_reg21_reg = (mh_debug_reg21_reg & ~MH_DEBUG_REG21_WID_q_MASK) | (wid_q << MH_DEBUG_REG21_WID_q_SHIFT)
+#define MH_DEBUG_REG21_SET_BVALID_q(mh_debug_reg21_reg, bvalid_q) \
+ mh_debug_reg21_reg = (mh_debug_reg21_reg & ~MH_DEBUG_REG21_BVALID_q_MASK) | (bvalid_q << MH_DEBUG_REG21_BVALID_q_SHIFT)
+#define MH_DEBUG_REG21_SET_BREADY_q(mh_debug_reg21_reg, bready_q) \
+ mh_debug_reg21_reg = (mh_debug_reg21_reg & ~MH_DEBUG_REG21_BREADY_q_MASK) | (bready_q << MH_DEBUG_REG21_BREADY_q_SHIFT)
+#define MH_DEBUG_REG21_SET_BID_q(mh_debug_reg21_reg, bid_q) \
+ mh_debug_reg21_reg = (mh_debug_reg21_reg & ~MH_DEBUG_REG21_BID_q_MASK) | (bid_q << MH_DEBUG_REG21_BID_q_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg21_t {
+ unsigned int avalid_q : MH_DEBUG_REG21_AVALID_q_SIZE;
+ unsigned int aready_q : MH_DEBUG_REG21_AREADY_q_SIZE;
+ unsigned int aid_q : MH_DEBUG_REG21_AID_q_SIZE;
+ unsigned int alen_q_2_0 : MH_DEBUG_REG21_ALEN_q_2_0_SIZE;
+ unsigned int arvalid_q : MH_DEBUG_REG21_ARVALID_q_SIZE;
+ unsigned int arready_q : MH_DEBUG_REG21_ARREADY_q_SIZE;
+ unsigned int arid_q : MH_DEBUG_REG21_ARID_q_SIZE;
+ unsigned int arlen_q_1_0 : MH_DEBUG_REG21_ARLEN_q_1_0_SIZE;
+ unsigned int rvalid_q : MH_DEBUG_REG21_RVALID_q_SIZE;
+ unsigned int rready_q : MH_DEBUG_REG21_RREADY_q_SIZE;
+ unsigned int rlast_q : MH_DEBUG_REG21_RLAST_q_SIZE;
+ unsigned int rid_q : MH_DEBUG_REG21_RID_q_SIZE;
+ unsigned int wvalid_q : MH_DEBUG_REG21_WVALID_q_SIZE;
+ unsigned int wready_q : MH_DEBUG_REG21_WREADY_q_SIZE;
+ unsigned int wlast_q : MH_DEBUG_REG21_WLAST_q_SIZE;
+ unsigned int wid_q : MH_DEBUG_REG21_WID_q_SIZE;
+ unsigned int bvalid_q : MH_DEBUG_REG21_BVALID_q_SIZE;
+ unsigned int bready_q : MH_DEBUG_REG21_BREADY_q_SIZE;
+ unsigned int bid_q : MH_DEBUG_REG21_BID_q_SIZE;
+ } mh_debug_reg21_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg21_t {
+ unsigned int bid_q : MH_DEBUG_REG21_BID_q_SIZE;
+ unsigned int bready_q : MH_DEBUG_REG21_BREADY_q_SIZE;
+ unsigned int bvalid_q : MH_DEBUG_REG21_BVALID_q_SIZE;
+ unsigned int wid_q : MH_DEBUG_REG21_WID_q_SIZE;
+ unsigned int wlast_q : MH_DEBUG_REG21_WLAST_q_SIZE;
+ unsigned int wready_q : MH_DEBUG_REG21_WREADY_q_SIZE;
+ unsigned int wvalid_q : MH_DEBUG_REG21_WVALID_q_SIZE;
+ unsigned int rid_q : MH_DEBUG_REG21_RID_q_SIZE;
+ unsigned int rlast_q : MH_DEBUG_REG21_RLAST_q_SIZE;
+ unsigned int rready_q : MH_DEBUG_REG21_RREADY_q_SIZE;
+ unsigned int rvalid_q : MH_DEBUG_REG21_RVALID_q_SIZE;
+ unsigned int arlen_q_1_0 : MH_DEBUG_REG21_ARLEN_q_1_0_SIZE;
+ unsigned int arid_q : MH_DEBUG_REG21_ARID_q_SIZE;
+ unsigned int arready_q : MH_DEBUG_REG21_ARREADY_q_SIZE;
+ unsigned int arvalid_q : MH_DEBUG_REG21_ARVALID_q_SIZE;
+ unsigned int alen_q_2_0 : MH_DEBUG_REG21_ALEN_q_2_0_SIZE;
+ unsigned int aid_q : MH_DEBUG_REG21_AID_q_SIZE;
+ unsigned int aready_q : MH_DEBUG_REG21_AREADY_q_SIZE;
+ unsigned int avalid_q : MH_DEBUG_REG21_AVALID_q_SIZE;
+ } mh_debug_reg21_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg21_t f;
+} mh_debug_reg21_u;
+
+
+/*
+ * MH_DEBUG_REG22 struct
+ */
+
+#define MH_DEBUG_REG22_AVALID_q_SIZE 1
+#define MH_DEBUG_REG22_AREADY_q_SIZE 1
+#define MH_DEBUG_REG22_AID_q_SIZE 3
+#define MH_DEBUG_REG22_ALEN_q_1_0_SIZE 2
+#define MH_DEBUG_REG22_ARVALID_q_SIZE 1
+#define MH_DEBUG_REG22_ARREADY_q_SIZE 1
+#define MH_DEBUG_REG22_ARID_q_SIZE 3
+#define MH_DEBUG_REG22_ARLEN_q_1_1_SIZE 1
+#define MH_DEBUG_REG22_WVALID_q_SIZE 1
+#define MH_DEBUG_REG22_WREADY_q_SIZE 1
+#define MH_DEBUG_REG22_WLAST_q_SIZE 1
+#define MH_DEBUG_REG22_WID_q_SIZE 3
+#define MH_DEBUG_REG22_WSTRB_q_SIZE 8
+#define MH_DEBUG_REG22_BVALID_q_SIZE 1
+#define MH_DEBUG_REG22_BREADY_q_SIZE 1
+#define MH_DEBUG_REG22_BID_q_SIZE 3
+
+#define MH_DEBUG_REG22_AVALID_q_SHIFT 0
+#define MH_DEBUG_REG22_AREADY_q_SHIFT 1
+#define MH_DEBUG_REG22_AID_q_SHIFT 2
+#define MH_DEBUG_REG22_ALEN_q_1_0_SHIFT 5
+#define MH_DEBUG_REG22_ARVALID_q_SHIFT 7
+#define MH_DEBUG_REG22_ARREADY_q_SHIFT 8
+#define MH_DEBUG_REG22_ARID_q_SHIFT 9
+#define MH_DEBUG_REG22_ARLEN_q_1_1_SHIFT 12
+#define MH_DEBUG_REG22_WVALID_q_SHIFT 13
+#define MH_DEBUG_REG22_WREADY_q_SHIFT 14
+#define MH_DEBUG_REG22_WLAST_q_SHIFT 15
+#define MH_DEBUG_REG22_WID_q_SHIFT 16
+#define MH_DEBUG_REG22_WSTRB_q_SHIFT 19
+#define MH_DEBUG_REG22_BVALID_q_SHIFT 27
+#define MH_DEBUG_REG22_BREADY_q_SHIFT 28
+#define MH_DEBUG_REG22_BID_q_SHIFT 29
+
+#define MH_DEBUG_REG22_AVALID_q_MASK 0x00000001
+#define MH_DEBUG_REG22_AREADY_q_MASK 0x00000002
+#define MH_DEBUG_REG22_AID_q_MASK 0x0000001c
+#define MH_DEBUG_REG22_ALEN_q_1_0_MASK 0x00000060
+#define MH_DEBUG_REG22_ARVALID_q_MASK 0x00000080
+#define MH_DEBUG_REG22_ARREADY_q_MASK 0x00000100
+#define MH_DEBUG_REG22_ARID_q_MASK 0x00000e00
+#define MH_DEBUG_REG22_ARLEN_q_1_1_MASK 0x00001000
+#define MH_DEBUG_REG22_WVALID_q_MASK 0x00002000
+#define MH_DEBUG_REG22_WREADY_q_MASK 0x00004000
+#define MH_DEBUG_REG22_WLAST_q_MASK 0x00008000
+#define MH_DEBUG_REG22_WID_q_MASK 0x00070000
+#define MH_DEBUG_REG22_WSTRB_q_MASK 0x07f80000
+#define MH_DEBUG_REG22_BVALID_q_MASK 0x08000000
+#define MH_DEBUG_REG22_BREADY_q_MASK 0x10000000
+#define MH_DEBUG_REG22_BID_q_MASK 0xe0000000
+
+#define MH_DEBUG_REG22_MASK \
+ (MH_DEBUG_REG22_AVALID_q_MASK | \
+ MH_DEBUG_REG22_AREADY_q_MASK | \
+ MH_DEBUG_REG22_AID_q_MASK | \
+ MH_DEBUG_REG22_ALEN_q_1_0_MASK | \
+ MH_DEBUG_REG22_ARVALID_q_MASK | \
+ MH_DEBUG_REG22_ARREADY_q_MASK | \
+ MH_DEBUG_REG22_ARID_q_MASK | \
+ MH_DEBUG_REG22_ARLEN_q_1_1_MASK | \
+ MH_DEBUG_REG22_WVALID_q_MASK | \
+ MH_DEBUG_REG22_WREADY_q_MASK | \
+ MH_DEBUG_REG22_WLAST_q_MASK | \
+ MH_DEBUG_REG22_WID_q_MASK | \
+ MH_DEBUG_REG22_WSTRB_q_MASK | \
+ MH_DEBUG_REG22_BVALID_q_MASK | \
+ MH_DEBUG_REG22_BREADY_q_MASK | \
+ MH_DEBUG_REG22_BID_q_MASK)
+
+#define MH_DEBUG_REG22(avalid_q, aready_q, aid_q, alen_q_1_0, arvalid_q, arready_q, arid_q, arlen_q_1_1, wvalid_q, wready_q, wlast_q, wid_q, wstrb_q, bvalid_q, bready_q, bid_q) \
+ ((avalid_q << MH_DEBUG_REG22_AVALID_q_SHIFT) | \
+ (aready_q << MH_DEBUG_REG22_AREADY_q_SHIFT) | \
+ (aid_q << MH_DEBUG_REG22_AID_q_SHIFT) | \
+ (alen_q_1_0 << MH_DEBUG_REG22_ALEN_q_1_0_SHIFT) | \
+ (arvalid_q << MH_DEBUG_REG22_ARVALID_q_SHIFT) | \
+ (arready_q << MH_DEBUG_REG22_ARREADY_q_SHIFT) | \
+ (arid_q << MH_DEBUG_REG22_ARID_q_SHIFT) | \
+ (arlen_q_1_1 << MH_DEBUG_REG22_ARLEN_q_1_1_SHIFT) | \
+ (wvalid_q << MH_DEBUG_REG22_WVALID_q_SHIFT) | \
+ (wready_q << MH_DEBUG_REG22_WREADY_q_SHIFT) | \
+ (wlast_q << MH_DEBUG_REG22_WLAST_q_SHIFT) | \
+ (wid_q << MH_DEBUG_REG22_WID_q_SHIFT) | \
+ (wstrb_q << MH_DEBUG_REG22_WSTRB_q_SHIFT) | \
+ (bvalid_q << MH_DEBUG_REG22_BVALID_q_SHIFT) | \
+ (bready_q << MH_DEBUG_REG22_BREADY_q_SHIFT) | \
+ (bid_q << MH_DEBUG_REG22_BID_q_SHIFT))
+
+#define MH_DEBUG_REG22_GET_AVALID_q(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_AVALID_q_MASK) >> MH_DEBUG_REG22_AVALID_q_SHIFT)
+#define MH_DEBUG_REG22_GET_AREADY_q(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_AREADY_q_MASK) >> MH_DEBUG_REG22_AREADY_q_SHIFT)
+#define MH_DEBUG_REG22_GET_AID_q(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_AID_q_MASK) >> MH_DEBUG_REG22_AID_q_SHIFT)
+#define MH_DEBUG_REG22_GET_ALEN_q_1_0(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_ALEN_q_1_0_MASK) >> MH_DEBUG_REG22_ALEN_q_1_0_SHIFT)
+#define MH_DEBUG_REG22_GET_ARVALID_q(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_ARVALID_q_MASK) >> MH_DEBUG_REG22_ARVALID_q_SHIFT)
+#define MH_DEBUG_REG22_GET_ARREADY_q(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_ARREADY_q_MASK) >> MH_DEBUG_REG22_ARREADY_q_SHIFT)
+#define MH_DEBUG_REG22_GET_ARID_q(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_ARID_q_MASK) >> MH_DEBUG_REG22_ARID_q_SHIFT)
+#define MH_DEBUG_REG22_GET_ARLEN_q_1_1(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_ARLEN_q_1_1_MASK) >> MH_DEBUG_REG22_ARLEN_q_1_1_SHIFT)
+#define MH_DEBUG_REG22_GET_WVALID_q(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_WVALID_q_MASK) >> MH_DEBUG_REG22_WVALID_q_SHIFT)
+#define MH_DEBUG_REG22_GET_WREADY_q(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_WREADY_q_MASK) >> MH_DEBUG_REG22_WREADY_q_SHIFT)
+#define MH_DEBUG_REG22_GET_WLAST_q(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_WLAST_q_MASK) >> MH_DEBUG_REG22_WLAST_q_SHIFT)
+#define MH_DEBUG_REG22_GET_WID_q(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_WID_q_MASK) >> MH_DEBUG_REG22_WID_q_SHIFT)
+#define MH_DEBUG_REG22_GET_WSTRB_q(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_WSTRB_q_MASK) >> MH_DEBUG_REG22_WSTRB_q_SHIFT)
+#define MH_DEBUG_REG22_GET_BVALID_q(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_BVALID_q_MASK) >> MH_DEBUG_REG22_BVALID_q_SHIFT)
+#define MH_DEBUG_REG22_GET_BREADY_q(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_BREADY_q_MASK) >> MH_DEBUG_REG22_BREADY_q_SHIFT)
+#define MH_DEBUG_REG22_GET_BID_q(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_BID_q_MASK) >> MH_DEBUG_REG22_BID_q_SHIFT)
+
+#define MH_DEBUG_REG22_SET_AVALID_q(mh_debug_reg22_reg, avalid_q) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_AVALID_q_MASK) | (avalid_q << MH_DEBUG_REG22_AVALID_q_SHIFT)
+#define MH_DEBUG_REG22_SET_AREADY_q(mh_debug_reg22_reg, aready_q) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_AREADY_q_MASK) | (aready_q << MH_DEBUG_REG22_AREADY_q_SHIFT)
+#define MH_DEBUG_REG22_SET_AID_q(mh_debug_reg22_reg, aid_q) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_AID_q_MASK) | (aid_q << MH_DEBUG_REG22_AID_q_SHIFT)
+#define MH_DEBUG_REG22_SET_ALEN_q_1_0(mh_debug_reg22_reg, alen_q_1_0) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_ALEN_q_1_0_MASK) | (alen_q_1_0 << MH_DEBUG_REG22_ALEN_q_1_0_SHIFT)
+#define MH_DEBUG_REG22_SET_ARVALID_q(mh_debug_reg22_reg, arvalid_q) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_ARVALID_q_MASK) | (arvalid_q << MH_DEBUG_REG22_ARVALID_q_SHIFT)
+#define MH_DEBUG_REG22_SET_ARREADY_q(mh_debug_reg22_reg, arready_q) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_ARREADY_q_MASK) | (arready_q << MH_DEBUG_REG22_ARREADY_q_SHIFT)
+#define MH_DEBUG_REG22_SET_ARID_q(mh_debug_reg22_reg, arid_q) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_ARID_q_MASK) | (arid_q << MH_DEBUG_REG22_ARID_q_SHIFT)
+#define MH_DEBUG_REG22_SET_ARLEN_q_1_1(mh_debug_reg22_reg, arlen_q_1_1) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_ARLEN_q_1_1_MASK) | (arlen_q_1_1 << MH_DEBUG_REG22_ARLEN_q_1_1_SHIFT)
+#define MH_DEBUG_REG22_SET_WVALID_q(mh_debug_reg22_reg, wvalid_q) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_WVALID_q_MASK) | (wvalid_q << MH_DEBUG_REG22_WVALID_q_SHIFT)
+#define MH_DEBUG_REG22_SET_WREADY_q(mh_debug_reg22_reg, wready_q) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_WREADY_q_MASK) | (wready_q << MH_DEBUG_REG22_WREADY_q_SHIFT)
+#define MH_DEBUG_REG22_SET_WLAST_q(mh_debug_reg22_reg, wlast_q) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_WLAST_q_MASK) | (wlast_q << MH_DEBUG_REG22_WLAST_q_SHIFT)
+#define MH_DEBUG_REG22_SET_WID_q(mh_debug_reg22_reg, wid_q) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_WID_q_MASK) | (wid_q << MH_DEBUG_REG22_WID_q_SHIFT)
+#define MH_DEBUG_REG22_SET_WSTRB_q(mh_debug_reg22_reg, wstrb_q) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_WSTRB_q_MASK) | (wstrb_q << MH_DEBUG_REG22_WSTRB_q_SHIFT)
+#define MH_DEBUG_REG22_SET_BVALID_q(mh_debug_reg22_reg, bvalid_q) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_BVALID_q_MASK) | (bvalid_q << MH_DEBUG_REG22_BVALID_q_SHIFT)
+#define MH_DEBUG_REG22_SET_BREADY_q(mh_debug_reg22_reg, bready_q) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_BREADY_q_MASK) | (bready_q << MH_DEBUG_REG22_BREADY_q_SHIFT)
+#define MH_DEBUG_REG22_SET_BID_q(mh_debug_reg22_reg, bid_q) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_BID_q_MASK) | (bid_q << MH_DEBUG_REG22_BID_q_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg22_t {
+ unsigned int avalid_q : MH_DEBUG_REG22_AVALID_q_SIZE;
+ unsigned int aready_q : MH_DEBUG_REG22_AREADY_q_SIZE;
+ unsigned int aid_q : MH_DEBUG_REG22_AID_q_SIZE;
+ unsigned int alen_q_1_0 : MH_DEBUG_REG22_ALEN_q_1_0_SIZE;
+ unsigned int arvalid_q : MH_DEBUG_REG22_ARVALID_q_SIZE;
+ unsigned int arready_q : MH_DEBUG_REG22_ARREADY_q_SIZE;
+ unsigned int arid_q : MH_DEBUG_REG22_ARID_q_SIZE;
+ unsigned int arlen_q_1_1 : MH_DEBUG_REG22_ARLEN_q_1_1_SIZE;
+ unsigned int wvalid_q : MH_DEBUG_REG22_WVALID_q_SIZE;
+ unsigned int wready_q : MH_DEBUG_REG22_WREADY_q_SIZE;
+ unsigned int wlast_q : MH_DEBUG_REG22_WLAST_q_SIZE;
+ unsigned int wid_q : MH_DEBUG_REG22_WID_q_SIZE;
+ unsigned int wstrb_q : MH_DEBUG_REG22_WSTRB_q_SIZE;
+ unsigned int bvalid_q : MH_DEBUG_REG22_BVALID_q_SIZE;
+ unsigned int bready_q : MH_DEBUG_REG22_BREADY_q_SIZE;
+ unsigned int bid_q : MH_DEBUG_REG22_BID_q_SIZE;
+ } mh_debug_reg22_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg22_t {
+ unsigned int bid_q : MH_DEBUG_REG22_BID_q_SIZE;
+ unsigned int bready_q : MH_DEBUG_REG22_BREADY_q_SIZE;
+ unsigned int bvalid_q : MH_DEBUG_REG22_BVALID_q_SIZE;
+ unsigned int wstrb_q : MH_DEBUG_REG22_WSTRB_q_SIZE;
+ unsigned int wid_q : MH_DEBUG_REG22_WID_q_SIZE;
+ unsigned int wlast_q : MH_DEBUG_REG22_WLAST_q_SIZE;
+ unsigned int wready_q : MH_DEBUG_REG22_WREADY_q_SIZE;
+ unsigned int wvalid_q : MH_DEBUG_REG22_WVALID_q_SIZE;
+ unsigned int arlen_q_1_1 : MH_DEBUG_REG22_ARLEN_q_1_1_SIZE;
+ unsigned int arid_q : MH_DEBUG_REG22_ARID_q_SIZE;
+ unsigned int arready_q : MH_DEBUG_REG22_ARREADY_q_SIZE;
+ unsigned int arvalid_q : MH_DEBUG_REG22_ARVALID_q_SIZE;
+ unsigned int alen_q_1_0 : MH_DEBUG_REG22_ALEN_q_1_0_SIZE;
+ unsigned int aid_q : MH_DEBUG_REG22_AID_q_SIZE;
+ unsigned int aready_q : MH_DEBUG_REG22_AREADY_q_SIZE;
+ unsigned int avalid_q : MH_DEBUG_REG22_AVALID_q_SIZE;
+ } mh_debug_reg22_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg22_t f;
+} mh_debug_reg22_u;
+
+
+/*
+ * MH_DEBUG_REG23 struct
+ */
+
+#define MH_DEBUG_REG23_ARC_CTRL_RE_q_SIZE 1
+#define MH_DEBUG_REG23_CTRL_ARC_ID_SIZE 3
+#define MH_DEBUG_REG23_CTRL_ARC_PAD_SIZE 28
+
+#define MH_DEBUG_REG23_ARC_CTRL_RE_q_SHIFT 0
+#define MH_DEBUG_REG23_CTRL_ARC_ID_SHIFT 1
+#define MH_DEBUG_REG23_CTRL_ARC_PAD_SHIFT 4
+
+#define MH_DEBUG_REG23_ARC_CTRL_RE_q_MASK 0x00000001
+#define MH_DEBUG_REG23_CTRL_ARC_ID_MASK 0x0000000e
+#define MH_DEBUG_REG23_CTRL_ARC_PAD_MASK 0xfffffff0
+
+#define MH_DEBUG_REG23_MASK \
+ (MH_DEBUG_REG23_ARC_CTRL_RE_q_MASK | \
+ MH_DEBUG_REG23_CTRL_ARC_ID_MASK | \
+ MH_DEBUG_REG23_CTRL_ARC_PAD_MASK)
+
+#define MH_DEBUG_REG23(arc_ctrl_re_q, ctrl_arc_id, ctrl_arc_pad) \
+ ((arc_ctrl_re_q << MH_DEBUG_REG23_ARC_CTRL_RE_q_SHIFT) | \
+ (ctrl_arc_id << MH_DEBUG_REG23_CTRL_ARC_ID_SHIFT) | \
+ (ctrl_arc_pad << MH_DEBUG_REG23_CTRL_ARC_PAD_SHIFT))
+
+#define MH_DEBUG_REG23_GET_ARC_CTRL_RE_q(mh_debug_reg23) \
+ ((mh_debug_reg23 & MH_DEBUG_REG23_ARC_CTRL_RE_q_MASK) >> MH_DEBUG_REG23_ARC_CTRL_RE_q_SHIFT)
+#define MH_DEBUG_REG23_GET_CTRL_ARC_ID(mh_debug_reg23) \
+ ((mh_debug_reg23 & MH_DEBUG_REG23_CTRL_ARC_ID_MASK) >> MH_DEBUG_REG23_CTRL_ARC_ID_SHIFT)
+#define MH_DEBUG_REG23_GET_CTRL_ARC_PAD(mh_debug_reg23) \
+ ((mh_debug_reg23 & MH_DEBUG_REG23_CTRL_ARC_PAD_MASK) >> MH_DEBUG_REG23_CTRL_ARC_PAD_SHIFT)
+
+#define MH_DEBUG_REG23_SET_ARC_CTRL_RE_q(mh_debug_reg23_reg, arc_ctrl_re_q) \
+ mh_debug_reg23_reg = (mh_debug_reg23_reg & ~MH_DEBUG_REG23_ARC_CTRL_RE_q_MASK) | (arc_ctrl_re_q << MH_DEBUG_REG23_ARC_CTRL_RE_q_SHIFT)
+#define MH_DEBUG_REG23_SET_CTRL_ARC_ID(mh_debug_reg23_reg, ctrl_arc_id) \
+ mh_debug_reg23_reg = (mh_debug_reg23_reg & ~MH_DEBUG_REG23_CTRL_ARC_ID_MASK) | (ctrl_arc_id << MH_DEBUG_REG23_CTRL_ARC_ID_SHIFT)
+#define MH_DEBUG_REG23_SET_CTRL_ARC_PAD(mh_debug_reg23_reg, ctrl_arc_pad) \
+ mh_debug_reg23_reg = (mh_debug_reg23_reg & ~MH_DEBUG_REG23_CTRL_ARC_PAD_MASK) | (ctrl_arc_pad << MH_DEBUG_REG23_CTRL_ARC_PAD_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg23_t {
+ unsigned int arc_ctrl_re_q : MH_DEBUG_REG23_ARC_CTRL_RE_q_SIZE;
+ unsigned int ctrl_arc_id : MH_DEBUG_REG23_CTRL_ARC_ID_SIZE;
+ unsigned int ctrl_arc_pad : MH_DEBUG_REG23_CTRL_ARC_PAD_SIZE;
+ } mh_debug_reg23_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg23_t {
+ unsigned int ctrl_arc_pad : MH_DEBUG_REG23_CTRL_ARC_PAD_SIZE;
+ unsigned int ctrl_arc_id : MH_DEBUG_REG23_CTRL_ARC_ID_SIZE;
+ unsigned int arc_ctrl_re_q : MH_DEBUG_REG23_ARC_CTRL_RE_q_SIZE;
+ } mh_debug_reg23_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg23_t f;
+} mh_debug_reg23_u;
+
+
+/*
+ * MH_DEBUG_REG24 struct
+ */
+
+#define MH_DEBUG_REG24_ALWAYS_ZERO_SIZE 2
+#define MH_DEBUG_REG24_REG_A_SIZE 14
+#define MH_DEBUG_REG24_REG_RE_SIZE 1
+#define MH_DEBUG_REG24_REG_WE_SIZE 1
+#define MH_DEBUG_REG24_BLOCK_RS_SIZE 1
+
+#define MH_DEBUG_REG24_ALWAYS_ZERO_SHIFT 0
+#define MH_DEBUG_REG24_REG_A_SHIFT 2
+#define MH_DEBUG_REG24_REG_RE_SHIFT 16
+#define MH_DEBUG_REG24_REG_WE_SHIFT 17
+#define MH_DEBUG_REG24_BLOCK_RS_SHIFT 18
+
+#define MH_DEBUG_REG24_ALWAYS_ZERO_MASK 0x00000003
+#define MH_DEBUG_REG24_REG_A_MASK 0x0000fffc
+#define MH_DEBUG_REG24_REG_RE_MASK 0x00010000
+#define MH_DEBUG_REG24_REG_WE_MASK 0x00020000
+#define MH_DEBUG_REG24_BLOCK_RS_MASK 0x00040000
+
+#define MH_DEBUG_REG24_MASK \
+ (MH_DEBUG_REG24_ALWAYS_ZERO_MASK | \
+ MH_DEBUG_REG24_REG_A_MASK | \
+ MH_DEBUG_REG24_REG_RE_MASK | \
+ MH_DEBUG_REG24_REG_WE_MASK | \
+ MH_DEBUG_REG24_BLOCK_RS_MASK)
+
+#define MH_DEBUG_REG24(always_zero, reg_a, reg_re, reg_we, block_rs) \
+ ((always_zero << MH_DEBUG_REG24_ALWAYS_ZERO_SHIFT) | \
+ (reg_a << MH_DEBUG_REG24_REG_A_SHIFT) | \
+ (reg_re << MH_DEBUG_REG24_REG_RE_SHIFT) | \
+ (reg_we << MH_DEBUG_REG24_REG_WE_SHIFT) | \
+ (block_rs << MH_DEBUG_REG24_BLOCK_RS_SHIFT))
+
+#define MH_DEBUG_REG24_GET_ALWAYS_ZERO(mh_debug_reg24) \
+ ((mh_debug_reg24 & MH_DEBUG_REG24_ALWAYS_ZERO_MASK) >> MH_DEBUG_REG24_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG24_GET_REG_A(mh_debug_reg24) \
+ ((mh_debug_reg24 & MH_DEBUG_REG24_REG_A_MASK) >> MH_DEBUG_REG24_REG_A_SHIFT)
+#define MH_DEBUG_REG24_GET_REG_RE(mh_debug_reg24) \
+ ((mh_debug_reg24 & MH_DEBUG_REG24_REG_RE_MASK) >> MH_DEBUG_REG24_REG_RE_SHIFT)
+#define MH_DEBUG_REG24_GET_REG_WE(mh_debug_reg24) \
+ ((mh_debug_reg24 & MH_DEBUG_REG24_REG_WE_MASK) >> MH_DEBUG_REG24_REG_WE_SHIFT)
+#define MH_DEBUG_REG24_GET_BLOCK_RS(mh_debug_reg24) \
+ ((mh_debug_reg24 & MH_DEBUG_REG24_BLOCK_RS_MASK) >> MH_DEBUG_REG24_BLOCK_RS_SHIFT)
+
+#define MH_DEBUG_REG24_SET_ALWAYS_ZERO(mh_debug_reg24_reg, always_zero) \
+ mh_debug_reg24_reg = (mh_debug_reg24_reg & ~MH_DEBUG_REG24_ALWAYS_ZERO_MASK) | (always_zero << MH_DEBUG_REG24_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG24_SET_REG_A(mh_debug_reg24_reg, reg_a) \
+ mh_debug_reg24_reg = (mh_debug_reg24_reg & ~MH_DEBUG_REG24_REG_A_MASK) | (reg_a << MH_DEBUG_REG24_REG_A_SHIFT)
+#define MH_DEBUG_REG24_SET_REG_RE(mh_debug_reg24_reg, reg_re) \
+ mh_debug_reg24_reg = (mh_debug_reg24_reg & ~MH_DEBUG_REG24_REG_RE_MASK) | (reg_re << MH_DEBUG_REG24_REG_RE_SHIFT)
+#define MH_DEBUG_REG24_SET_REG_WE(mh_debug_reg24_reg, reg_we) \
+ mh_debug_reg24_reg = (mh_debug_reg24_reg & ~MH_DEBUG_REG24_REG_WE_MASK) | (reg_we << MH_DEBUG_REG24_REG_WE_SHIFT)
+#define MH_DEBUG_REG24_SET_BLOCK_RS(mh_debug_reg24_reg, block_rs) \
+ mh_debug_reg24_reg = (mh_debug_reg24_reg & ~MH_DEBUG_REG24_BLOCK_RS_MASK) | (block_rs << MH_DEBUG_REG24_BLOCK_RS_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg24_t {
+ unsigned int always_zero : MH_DEBUG_REG24_ALWAYS_ZERO_SIZE;
+ unsigned int reg_a : MH_DEBUG_REG24_REG_A_SIZE;
+ unsigned int reg_re : MH_DEBUG_REG24_REG_RE_SIZE;
+ unsigned int reg_we : MH_DEBUG_REG24_REG_WE_SIZE;
+ unsigned int block_rs : MH_DEBUG_REG24_BLOCK_RS_SIZE;
+ unsigned int : 13;
+ } mh_debug_reg24_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg24_t {
+ unsigned int : 13;
+ unsigned int block_rs : MH_DEBUG_REG24_BLOCK_RS_SIZE;
+ unsigned int reg_we : MH_DEBUG_REG24_REG_WE_SIZE;
+ unsigned int reg_re : MH_DEBUG_REG24_REG_RE_SIZE;
+ unsigned int reg_a : MH_DEBUG_REG24_REG_A_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG24_ALWAYS_ZERO_SIZE;
+ } mh_debug_reg24_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg24_t f;
+} mh_debug_reg24_u;
+
+
+/*
+ * MH_DEBUG_REG25 struct
+ */
+
+#define MH_DEBUG_REG25_REG_WD_SIZE 32
+
+#define MH_DEBUG_REG25_REG_WD_SHIFT 0
+
+#define MH_DEBUG_REG25_REG_WD_MASK 0xffffffff
+
+#define MH_DEBUG_REG25_MASK \
+ (MH_DEBUG_REG25_REG_WD_MASK)
+
+#define MH_DEBUG_REG25(reg_wd) \
+ ((reg_wd << MH_DEBUG_REG25_REG_WD_SHIFT))
+
+#define MH_DEBUG_REG25_GET_REG_WD(mh_debug_reg25) \
+ ((mh_debug_reg25 & MH_DEBUG_REG25_REG_WD_MASK) >> MH_DEBUG_REG25_REG_WD_SHIFT)
+
+#define MH_DEBUG_REG25_SET_REG_WD(mh_debug_reg25_reg, reg_wd) \
+ mh_debug_reg25_reg = (mh_debug_reg25_reg & ~MH_DEBUG_REG25_REG_WD_MASK) | (reg_wd << MH_DEBUG_REG25_REG_WD_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg25_t {
+ unsigned int reg_wd : MH_DEBUG_REG25_REG_WD_SIZE;
+ } mh_debug_reg25_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg25_t {
+ unsigned int reg_wd : MH_DEBUG_REG25_REG_WD_SIZE;
+ } mh_debug_reg25_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg25_t f;
+} mh_debug_reg25_u;
+
+
+/*
+ * MH_DEBUG_REG26 struct
+ */
+
+#define MH_DEBUG_REG26_MH_RBBM_busy_SIZE 1
+#define MH_DEBUG_REG26_MH_CIB_mh_clk_en_int_SIZE 1
+#define MH_DEBUG_REG26_MH_CIB_mmu_clk_en_int_SIZE 1
+#define MH_DEBUG_REG26_MH_CIB_tcroq_clk_en_int_SIZE 1
+#define MH_DEBUG_REG26_GAT_CLK_ENA_SIZE 1
+#define MH_DEBUG_REG26_RBBM_MH_clk_en_override_SIZE 1
+#define MH_DEBUG_REG26_CNT_q_SIZE 6
+#define MH_DEBUG_REG26_TCD_EMPTY_q_SIZE 1
+#define MH_DEBUG_REG26_TC_ROQ_EMPTY_SIZE 1
+#define MH_DEBUG_REG26_MH_BUSY_d_SIZE 1
+#define MH_DEBUG_REG26_ANY_CLNT_BUSY_SIZE 1
+#define MH_DEBUG_REG26_MH_MMU_INVALIDATE_INVALIDATE_ALL_SIZE 1
+#define MH_DEBUG_REG26_MH_MMU_INVALIDATE_INVALIDATE_TC_SIZE 1
+#define MH_DEBUG_REG26_CP_SEND_q_SIZE 1
+#define MH_DEBUG_REG26_CP_RTR_q_SIZE 1
+#define MH_DEBUG_REG26_VGT_SEND_q_SIZE 1
+#define MH_DEBUG_REG26_VGT_RTR_q_SIZE 1
+#define MH_DEBUG_REG26_TC_ROQ_SEND_q_SIZE 1
+#define MH_DEBUG_REG26_TC_ROQ_RTR_DBG_q_SIZE 1
+#define MH_DEBUG_REG26_RB_SEND_q_SIZE 1
+#define MH_DEBUG_REG26_RB_RTR_q_SIZE 1
+#define MH_DEBUG_REG26_PA_SEND_q_SIZE 1
+#define MH_DEBUG_REG26_PA_RTR_q_SIZE 1
+#define MH_DEBUG_REG26_RDC_VALID_SIZE 1
+#define MH_DEBUG_REG26_RDC_RLAST_SIZE 1
+#define MH_DEBUG_REG26_TLBMISS_VALID_SIZE 1
+#define MH_DEBUG_REG26_BRC_VALID_SIZE 1
+
+#define MH_DEBUG_REG26_MH_RBBM_busy_SHIFT 0
+#define MH_DEBUG_REG26_MH_CIB_mh_clk_en_int_SHIFT 1
+#define MH_DEBUG_REG26_MH_CIB_mmu_clk_en_int_SHIFT 2
+#define MH_DEBUG_REG26_MH_CIB_tcroq_clk_en_int_SHIFT 3
+#define MH_DEBUG_REG26_GAT_CLK_ENA_SHIFT 4
+#define MH_DEBUG_REG26_RBBM_MH_clk_en_override_SHIFT 5
+#define MH_DEBUG_REG26_CNT_q_SHIFT 6
+#define MH_DEBUG_REG26_TCD_EMPTY_q_SHIFT 12
+#define MH_DEBUG_REG26_TC_ROQ_EMPTY_SHIFT 13
+#define MH_DEBUG_REG26_MH_BUSY_d_SHIFT 14
+#define MH_DEBUG_REG26_ANY_CLNT_BUSY_SHIFT 15
+#define MH_DEBUG_REG26_MH_MMU_INVALIDATE_INVALIDATE_ALL_SHIFT 16
+#define MH_DEBUG_REG26_MH_MMU_INVALIDATE_INVALIDATE_TC_SHIFT 17
+#define MH_DEBUG_REG26_CP_SEND_q_SHIFT 18
+#define MH_DEBUG_REG26_CP_RTR_q_SHIFT 19
+#define MH_DEBUG_REG26_VGT_SEND_q_SHIFT 20
+#define MH_DEBUG_REG26_VGT_RTR_q_SHIFT 21
+#define MH_DEBUG_REG26_TC_ROQ_SEND_q_SHIFT 22
+#define MH_DEBUG_REG26_TC_ROQ_RTR_DBG_q_SHIFT 23
+#define MH_DEBUG_REG26_RB_SEND_q_SHIFT 24
+#define MH_DEBUG_REG26_RB_RTR_q_SHIFT 25
+#define MH_DEBUG_REG26_PA_SEND_q_SHIFT 26
+#define MH_DEBUG_REG26_PA_RTR_q_SHIFT 27
+#define MH_DEBUG_REG26_RDC_VALID_SHIFT 28
+#define MH_DEBUG_REG26_RDC_RLAST_SHIFT 29
+#define MH_DEBUG_REG26_TLBMISS_VALID_SHIFT 30
+#define MH_DEBUG_REG26_BRC_VALID_SHIFT 31
+
+#define MH_DEBUG_REG26_MH_RBBM_busy_MASK 0x00000001
+#define MH_DEBUG_REG26_MH_CIB_mh_clk_en_int_MASK 0x00000002
+#define MH_DEBUG_REG26_MH_CIB_mmu_clk_en_int_MASK 0x00000004
+#define MH_DEBUG_REG26_MH_CIB_tcroq_clk_en_int_MASK 0x00000008
+#define MH_DEBUG_REG26_GAT_CLK_ENA_MASK 0x00000010
+#define MH_DEBUG_REG26_RBBM_MH_clk_en_override_MASK 0x00000020
+#define MH_DEBUG_REG26_CNT_q_MASK 0x00000fc0
+#define MH_DEBUG_REG26_TCD_EMPTY_q_MASK 0x00001000
+#define MH_DEBUG_REG26_TC_ROQ_EMPTY_MASK 0x00002000
+#define MH_DEBUG_REG26_MH_BUSY_d_MASK 0x00004000
+#define MH_DEBUG_REG26_ANY_CLNT_BUSY_MASK 0x00008000
+#define MH_DEBUG_REG26_MH_MMU_INVALIDATE_INVALIDATE_ALL_MASK 0x00010000
+#define MH_DEBUG_REG26_MH_MMU_INVALIDATE_INVALIDATE_TC_MASK 0x00020000
+#define MH_DEBUG_REG26_CP_SEND_q_MASK 0x00040000
+#define MH_DEBUG_REG26_CP_RTR_q_MASK 0x00080000
+#define MH_DEBUG_REG26_VGT_SEND_q_MASK 0x00100000
+#define MH_DEBUG_REG26_VGT_RTR_q_MASK 0x00200000
+#define MH_DEBUG_REG26_TC_ROQ_SEND_q_MASK 0x00400000
+#define MH_DEBUG_REG26_TC_ROQ_RTR_DBG_q_MASK 0x00800000
+#define MH_DEBUG_REG26_RB_SEND_q_MASK 0x01000000
+#define MH_DEBUG_REG26_RB_RTR_q_MASK 0x02000000
+#define MH_DEBUG_REG26_PA_SEND_q_MASK 0x04000000
+#define MH_DEBUG_REG26_PA_RTR_q_MASK 0x08000000
+#define MH_DEBUG_REG26_RDC_VALID_MASK 0x10000000
+#define MH_DEBUG_REG26_RDC_RLAST_MASK 0x20000000
+#define MH_DEBUG_REG26_TLBMISS_VALID_MASK 0x40000000
+#define MH_DEBUG_REG26_BRC_VALID_MASK 0x80000000
+
+#define MH_DEBUG_REG26_MASK \
+ (MH_DEBUG_REG26_MH_RBBM_busy_MASK | \
+ MH_DEBUG_REG26_MH_CIB_mh_clk_en_int_MASK | \
+ MH_DEBUG_REG26_MH_CIB_mmu_clk_en_int_MASK | \
+ MH_DEBUG_REG26_MH_CIB_tcroq_clk_en_int_MASK | \
+ MH_DEBUG_REG26_GAT_CLK_ENA_MASK | \
+ MH_DEBUG_REG26_RBBM_MH_clk_en_override_MASK | \
+ MH_DEBUG_REG26_CNT_q_MASK | \
+ MH_DEBUG_REG26_TCD_EMPTY_q_MASK | \
+ MH_DEBUG_REG26_TC_ROQ_EMPTY_MASK | \
+ MH_DEBUG_REG26_MH_BUSY_d_MASK | \
+ MH_DEBUG_REG26_ANY_CLNT_BUSY_MASK | \
+ MH_DEBUG_REG26_MH_MMU_INVALIDATE_INVALIDATE_ALL_MASK | \
+ MH_DEBUG_REG26_MH_MMU_INVALIDATE_INVALIDATE_TC_MASK | \
+ MH_DEBUG_REG26_CP_SEND_q_MASK | \
+ MH_DEBUG_REG26_CP_RTR_q_MASK | \
+ MH_DEBUG_REG26_VGT_SEND_q_MASK | \
+ MH_DEBUG_REG26_VGT_RTR_q_MASK | \
+ MH_DEBUG_REG26_TC_ROQ_SEND_q_MASK | \
+ MH_DEBUG_REG26_TC_ROQ_RTR_DBG_q_MASK | \
+ MH_DEBUG_REG26_RB_SEND_q_MASK | \
+ MH_DEBUG_REG26_RB_RTR_q_MASK | \
+ MH_DEBUG_REG26_PA_SEND_q_MASK | \
+ MH_DEBUG_REG26_PA_RTR_q_MASK | \
+ MH_DEBUG_REG26_RDC_VALID_MASK | \
+ MH_DEBUG_REG26_RDC_RLAST_MASK | \
+ MH_DEBUG_REG26_TLBMISS_VALID_MASK | \
+ MH_DEBUG_REG26_BRC_VALID_MASK)
+
+#define MH_DEBUG_REG26(mh_rbbm_busy, mh_cib_mh_clk_en_int, mh_cib_mmu_clk_en_int, mh_cib_tcroq_clk_en_int, gat_clk_ena, rbbm_mh_clk_en_override, cnt_q, tcd_empty_q, tc_roq_empty, mh_busy_d, any_clnt_busy, mh_mmu_invalidate_invalidate_all, mh_mmu_invalidate_invalidate_tc, cp_send_q, cp_rtr_q, vgt_send_q, vgt_rtr_q, tc_roq_send_q, tc_roq_rtr_dbg_q, rb_send_q, rb_rtr_q, pa_send_q, pa_rtr_q, rdc_valid, rdc_rlast, tlbmiss_valid, brc_valid) \
+ ((mh_rbbm_busy << MH_DEBUG_REG26_MH_RBBM_busy_SHIFT) | \
+ (mh_cib_mh_clk_en_int << MH_DEBUG_REG26_MH_CIB_mh_clk_en_int_SHIFT) | \
+ (mh_cib_mmu_clk_en_int << MH_DEBUG_REG26_MH_CIB_mmu_clk_en_int_SHIFT) | \
+ (mh_cib_tcroq_clk_en_int << MH_DEBUG_REG26_MH_CIB_tcroq_clk_en_int_SHIFT) | \
+ (gat_clk_ena << MH_DEBUG_REG26_GAT_CLK_ENA_SHIFT) | \
+ (rbbm_mh_clk_en_override << MH_DEBUG_REG26_RBBM_MH_clk_en_override_SHIFT) | \
+ (cnt_q << MH_DEBUG_REG26_CNT_q_SHIFT) | \
+ (tcd_empty_q << MH_DEBUG_REG26_TCD_EMPTY_q_SHIFT) | \
+ (tc_roq_empty << MH_DEBUG_REG26_TC_ROQ_EMPTY_SHIFT) | \
+ (mh_busy_d << MH_DEBUG_REG26_MH_BUSY_d_SHIFT) | \
+ (any_clnt_busy << MH_DEBUG_REG26_ANY_CLNT_BUSY_SHIFT) | \
+ (mh_mmu_invalidate_invalidate_all << MH_DEBUG_REG26_MH_MMU_INVALIDATE_INVALIDATE_ALL_SHIFT) | \
+ (mh_mmu_invalidate_invalidate_tc << MH_DEBUG_REG26_MH_MMU_INVALIDATE_INVALIDATE_TC_SHIFT) | \
+ (cp_send_q << MH_DEBUG_REG26_CP_SEND_q_SHIFT) | \
+ (cp_rtr_q << MH_DEBUG_REG26_CP_RTR_q_SHIFT) | \
+ (vgt_send_q << MH_DEBUG_REG26_VGT_SEND_q_SHIFT) | \
+ (vgt_rtr_q << MH_DEBUG_REG26_VGT_RTR_q_SHIFT) | \
+ (tc_roq_send_q << MH_DEBUG_REG26_TC_ROQ_SEND_q_SHIFT) | \
+ (tc_roq_rtr_dbg_q << MH_DEBUG_REG26_TC_ROQ_RTR_DBG_q_SHIFT) | \
+ (rb_send_q << MH_DEBUG_REG26_RB_SEND_q_SHIFT) | \
+ (rb_rtr_q << MH_DEBUG_REG26_RB_RTR_q_SHIFT) | \
+ (pa_send_q << MH_DEBUG_REG26_PA_SEND_q_SHIFT) | \
+ (pa_rtr_q << MH_DEBUG_REG26_PA_RTR_q_SHIFT) | \
+ (rdc_valid << MH_DEBUG_REG26_RDC_VALID_SHIFT) | \
+ (rdc_rlast << MH_DEBUG_REG26_RDC_RLAST_SHIFT) | \
+ (tlbmiss_valid << MH_DEBUG_REG26_TLBMISS_VALID_SHIFT) | \
+ (brc_valid << MH_DEBUG_REG26_BRC_VALID_SHIFT))
+
+#define MH_DEBUG_REG26_GET_MH_RBBM_busy(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_MH_RBBM_busy_MASK) >> MH_DEBUG_REG26_MH_RBBM_busy_SHIFT)
+#define MH_DEBUG_REG26_GET_MH_CIB_mh_clk_en_int(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_MH_CIB_mh_clk_en_int_MASK) >> MH_DEBUG_REG26_MH_CIB_mh_clk_en_int_SHIFT)
+#define MH_DEBUG_REG26_GET_MH_CIB_mmu_clk_en_int(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_MH_CIB_mmu_clk_en_int_MASK) >> MH_DEBUG_REG26_MH_CIB_mmu_clk_en_int_SHIFT)
+#define MH_DEBUG_REG26_GET_MH_CIB_tcroq_clk_en_int(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_MH_CIB_tcroq_clk_en_int_MASK) >> MH_DEBUG_REG26_MH_CIB_tcroq_clk_en_int_SHIFT)
+#define MH_DEBUG_REG26_GET_GAT_CLK_ENA(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_GAT_CLK_ENA_MASK) >> MH_DEBUG_REG26_GAT_CLK_ENA_SHIFT)
+#define MH_DEBUG_REG26_GET_RBBM_MH_clk_en_override(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_RBBM_MH_clk_en_override_MASK) >> MH_DEBUG_REG26_RBBM_MH_clk_en_override_SHIFT)
+#define MH_DEBUG_REG26_GET_CNT_q(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_CNT_q_MASK) >> MH_DEBUG_REG26_CNT_q_SHIFT)
+#define MH_DEBUG_REG26_GET_TCD_EMPTY_q(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_TCD_EMPTY_q_MASK) >> MH_DEBUG_REG26_TCD_EMPTY_q_SHIFT)
+#define MH_DEBUG_REG26_GET_TC_ROQ_EMPTY(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_TC_ROQ_EMPTY_MASK) >> MH_DEBUG_REG26_TC_ROQ_EMPTY_SHIFT)
+#define MH_DEBUG_REG26_GET_MH_BUSY_d(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_MH_BUSY_d_MASK) >> MH_DEBUG_REG26_MH_BUSY_d_SHIFT)
+#define MH_DEBUG_REG26_GET_ANY_CLNT_BUSY(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_ANY_CLNT_BUSY_MASK) >> MH_DEBUG_REG26_ANY_CLNT_BUSY_SHIFT)
+#define MH_DEBUG_REG26_GET_MH_MMU_INVALIDATE_INVALIDATE_ALL(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_MH_MMU_INVALIDATE_INVALIDATE_ALL_MASK) >> MH_DEBUG_REG26_MH_MMU_INVALIDATE_INVALIDATE_ALL_SHIFT)
+#define MH_DEBUG_REG26_GET_MH_MMU_INVALIDATE_INVALIDATE_TC(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_MH_MMU_INVALIDATE_INVALIDATE_TC_MASK) >> MH_DEBUG_REG26_MH_MMU_INVALIDATE_INVALIDATE_TC_SHIFT)
+#define MH_DEBUG_REG26_GET_CP_SEND_q(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_CP_SEND_q_MASK) >> MH_DEBUG_REG26_CP_SEND_q_SHIFT)
+#define MH_DEBUG_REG26_GET_CP_RTR_q(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_CP_RTR_q_MASK) >> MH_DEBUG_REG26_CP_RTR_q_SHIFT)
+#define MH_DEBUG_REG26_GET_VGT_SEND_q(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_VGT_SEND_q_MASK) >> MH_DEBUG_REG26_VGT_SEND_q_SHIFT)
+#define MH_DEBUG_REG26_GET_VGT_RTR_q(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_VGT_RTR_q_MASK) >> MH_DEBUG_REG26_VGT_RTR_q_SHIFT)
+#define MH_DEBUG_REG26_GET_TC_ROQ_SEND_q(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_TC_ROQ_SEND_q_MASK) >> MH_DEBUG_REG26_TC_ROQ_SEND_q_SHIFT)
+#define MH_DEBUG_REG26_GET_TC_ROQ_RTR_DBG_q(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_TC_ROQ_RTR_DBG_q_MASK) >> MH_DEBUG_REG26_TC_ROQ_RTR_DBG_q_SHIFT)
+#define MH_DEBUG_REG26_GET_RB_SEND_q(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_RB_SEND_q_MASK) >> MH_DEBUG_REG26_RB_SEND_q_SHIFT)
+#define MH_DEBUG_REG26_GET_RB_RTR_q(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_RB_RTR_q_MASK) >> MH_DEBUG_REG26_RB_RTR_q_SHIFT)
+#define MH_DEBUG_REG26_GET_PA_SEND_q(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_PA_SEND_q_MASK) >> MH_DEBUG_REG26_PA_SEND_q_SHIFT)
+#define MH_DEBUG_REG26_GET_PA_RTR_q(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_PA_RTR_q_MASK) >> MH_DEBUG_REG26_PA_RTR_q_SHIFT)
+#define MH_DEBUG_REG26_GET_RDC_VALID(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_RDC_VALID_MASK) >> MH_DEBUG_REG26_RDC_VALID_SHIFT)
+#define MH_DEBUG_REG26_GET_RDC_RLAST(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_RDC_RLAST_MASK) >> MH_DEBUG_REG26_RDC_RLAST_SHIFT)
+#define MH_DEBUG_REG26_GET_TLBMISS_VALID(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_TLBMISS_VALID_MASK) >> MH_DEBUG_REG26_TLBMISS_VALID_SHIFT)
+#define MH_DEBUG_REG26_GET_BRC_VALID(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_BRC_VALID_MASK) >> MH_DEBUG_REG26_BRC_VALID_SHIFT)
+
+#define MH_DEBUG_REG26_SET_MH_RBBM_busy(mh_debug_reg26_reg, mh_rbbm_busy) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_MH_RBBM_busy_MASK) | (mh_rbbm_busy << MH_DEBUG_REG26_MH_RBBM_busy_SHIFT)
+#define MH_DEBUG_REG26_SET_MH_CIB_mh_clk_en_int(mh_debug_reg26_reg, mh_cib_mh_clk_en_int) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_MH_CIB_mh_clk_en_int_MASK) | (mh_cib_mh_clk_en_int << MH_DEBUG_REG26_MH_CIB_mh_clk_en_int_SHIFT)
+#define MH_DEBUG_REG26_SET_MH_CIB_mmu_clk_en_int(mh_debug_reg26_reg, mh_cib_mmu_clk_en_int) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_MH_CIB_mmu_clk_en_int_MASK) | (mh_cib_mmu_clk_en_int << MH_DEBUG_REG26_MH_CIB_mmu_clk_en_int_SHIFT)
+#define MH_DEBUG_REG26_SET_MH_CIB_tcroq_clk_en_int(mh_debug_reg26_reg, mh_cib_tcroq_clk_en_int) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_MH_CIB_tcroq_clk_en_int_MASK) | (mh_cib_tcroq_clk_en_int << MH_DEBUG_REG26_MH_CIB_tcroq_clk_en_int_SHIFT)
+#define MH_DEBUG_REG26_SET_GAT_CLK_ENA(mh_debug_reg26_reg, gat_clk_ena) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_GAT_CLK_ENA_MASK) | (gat_clk_ena << MH_DEBUG_REG26_GAT_CLK_ENA_SHIFT)
+#define MH_DEBUG_REG26_SET_RBBM_MH_clk_en_override(mh_debug_reg26_reg, rbbm_mh_clk_en_override) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_RBBM_MH_clk_en_override_MASK) | (rbbm_mh_clk_en_override << MH_DEBUG_REG26_RBBM_MH_clk_en_override_SHIFT)
+#define MH_DEBUG_REG26_SET_CNT_q(mh_debug_reg26_reg, cnt_q) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_CNT_q_MASK) | (cnt_q << MH_DEBUG_REG26_CNT_q_SHIFT)
+#define MH_DEBUG_REG26_SET_TCD_EMPTY_q(mh_debug_reg26_reg, tcd_empty_q) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_TCD_EMPTY_q_MASK) | (tcd_empty_q << MH_DEBUG_REG26_TCD_EMPTY_q_SHIFT)
+#define MH_DEBUG_REG26_SET_TC_ROQ_EMPTY(mh_debug_reg26_reg, tc_roq_empty) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_TC_ROQ_EMPTY_MASK) | (tc_roq_empty << MH_DEBUG_REG26_TC_ROQ_EMPTY_SHIFT)
+#define MH_DEBUG_REG26_SET_MH_BUSY_d(mh_debug_reg26_reg, mh_busy_d) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_MH_BUSY_d_MASK) | (mh_busy_d << MH_DEBUG_REG26_MH_BUSY_d_SHIFT)
+#define MH_DEBUG_REG26_SET_ANY_CLNT_BUSY(mh_debug_reg26_reg, any_clnt_busy) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_ANY_CLNT_BUSY_MASK) | (any_clnt_busy << MH_DEBUG_REG26_ANY_CLNT_BUSY_SHIFT)
+#define MH_DEBUG_REG26_SET_MH_MMU_INVALIDATE_INVALIDATE_ALL(mh_debug_reg26_reg, mh_mmu_invalidate_invalidate_all) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_MH_MMU_INVALIDATE_INVALIDATE_ALL_MASK) | (mh_mmu_invalidate_invalidate_all << MH_DEBUG_REG26_MH_MMU_INVALIDATE_INVALIDATE_ALL_SHIFT)
+#define MH_DEBUG_REG26_SET_MH_MMU_INVALIDATE_INVALIDATE_TC(mh_debug_reg26_reg, mh_mmu_invalidate_invalidate_tc) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_MH_MMU_INVALIDATE_INVALIDATE_TC_MASK) | (mh_mmu_invalidate_invalidate_tc << MH_DEBUG_REG26_MH_MMU_INVALIDATE_INVALIDATE_TC_SHIFT)
+#define MH_DEBUG_REG26_SET_CP_SEND_q(mh_debug_reg26_reg, cp_send_q) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_CP_SEND_q_MASK) | (cp_send_q << MH_DEBUG_REG26_CP_SEND_q_SHIFT)
+#define MH_DEBUG_REG26_SET_CP_RTR_q(mh_debug_reg26_reg, cp_rtr_q) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_CP_RTR_q_MASK) | (cp_rtr_q << MH_DEBUG_REG26_CP_RTR_q_SHIFT)
+#define MH_DEBUG_REG26_SET_VGT_SEND_q(mh_debug_reg26_reg, vgt_send_q) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_VGT_SEND_q_MASK) | (vgt_send_q << MH_DEBUG_REG26_VGT_SEND_q_SHIFT)
+#define MH_DEBUG_REG26_SET_VGT_RTR_q(mh_debug_reg26_reg, vgt_rtr_q) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_VGT_RTR_q_MASK) | (vgt_rtr_q << MH_DEBUG_REG26_VGT_RTR_q_SHIFT)
+#define MH_DEBUG_REG26_SET_TC_ROQ_SEND_q(mh_debug_reg26_reg, tc_roq_send_q) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_TC_ROQ_SEND_q_MASK) | (tc_roq_send_q << MH_DEBUG_REG26_TC_ROQ_SEND_q_SHIFT)
+#define MH_DEBUG_REG26_SET_TC_ROQ_RTR_DBG_q(mh_debug_reg26_reg, tc_roq_rtr_dbg_q) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_TC_ROQ_RTR_DBG_q_MASK) | (tc_roq_rtr_dbg_q << MH_DEBUG_REG26_TC_ROQ_RTR_DBG_q_SHIFT)
+#define MH_DEBUG_REG26_SET_RB_SEND_q(mh_debug_reg26_reg, rb_send_q) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_RB_SEND_q_MASK) | (rb_send_q << MH_DEBUG_REG26_RB_SEND_q_SHIFT)
+#define MH_DEBUG_REG26_SET_RB_RTR_q(mh_debug_reg26_reg, rb_rtr_q) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_RB_RTR_q_MASK) | (rb_rtr_q << MH_DEBUG_REG26_RB_RTR_q_SHIFT)
+#define MH_DEBUG_REG26_SET_PA_SEND_q(mh_debug_reg26_reg, pa_send_q) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_PA_SEND_q_MASK) | (pa_send_q << MH_DEBUG_REG26_PA_SEND_q_SHIFT)
+#define MH_DEBUG_REG26_SET_PA_RTR_q(mh_debug_reg26_reg, pa_rtr_q) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_PA_RTR_q_MASK) | (pa_rtr_q << MH_DEBUG_REG26_PA_RTR_q_SHIFT)
+#define MH_DEBUG_REG26_SET_RDC_VALID(mh_debug_reg26_reg, rdc_valid) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_RDC_VALID_MASK) | (rdc_valid << MH_DEBUG_REG26_RDC_VALID_SHIFT)
+#define MH_DEBUG_REG26_SET_RDC_RLAST(mh_debug_reg26_reg, rdc_rlast) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_RDC_RLAST_MASK) | (rdc_rlast << MH_DEBUG_REG26_RDC_RLAST_SHIFT)
+#define MH_DEBUG_REG26_SET_TLBMISS_VALID(mh_debug_reg26_reg, tlbmiss_valid) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_TLBMISS_VALID_MASK) | (tlbmiss_valid << MH_DEBUG_REG26_TLBMISS_VALID_SHIFT)
+#define MH_DEBUG_REG26_SET_BRC_VALID(mh_debug_reg26_reg, brc_valid) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_BRC_VALID_MASK) | (brc_valid << MH_DEBUG_REG26_BRC_VALID_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg26_t {
+ unsigned int mh_rbbm_busy : MH_DEBUG_REG26_MH_RBBM_busy_SIZE;
+ unsigned int mh_cib_mh_clk_en_int : MH_DEBUG_REG26_MH_CIB_mh_clk_en_int_SIZE;
+ unsigned int mh_cib_mmu_clk_en_int : MH_DEBUG_REG26_MH_CIB_mmu_clk_en_int_SIZE;
+ unsigned int mh_cib_tcroq_clk_en_int : MH_DEBUG_REG26_MH_CIB_tcroq_clk_en_int_SIZE;
+ unsigned int gat_clk_ena : MH_DEBUG_REG26_GAT_CLK_ENA_SIZE;
+ unsigned int rbbm_mh_clk_en_override : MH_DEBUG_REG26_RBBM_MH_clk_en_override_SIZE;
+ unsigned int cnt_q : MH_DEBUG_REG26_CNT_q_SIZE;
+ unsigned int tcd_empty_q : MH_DEBUG_REG26_TCD_EMPTY_q_SIZE;
+ unsigned int tc_roq_empty : MH_DEBUG_REG26_TC_ROQ_EMPTY_SIZE;
+ unsigned int mh_busy_d : MH_DEBUG_REG26_MH_BUSY_d_SIZE;
+ unsigned int any_clnt_busy : MH_DEBUG_REG26_ANY_CLNT_BUSY_SIZE;
+ unsigned int mh_mmu_invalidate_invalidate_all : MH_DEBUG_REG26_MH_MMU_INVALIDATE_INVALIDATE_ALL_SIZE;
+ unsigned int mh_mmu_invalidate_invalidate_tc : MH_DEBUG_REG26_MH_MMU_INVALIDATE_INVALIDATE_TC_SIZE;
+ unsigned int cp_send_q : MH_DEBUG_REG26_CP_SEND_q_SIZE;
+ unsigned int cp_rtr_q : MH_DEBUG_REG26_CP_RTR_q_SIZE;
+ unsigned int vgt_send_q : MH_DEBUG_REG26_VGT_SEND_q_SIZE;
+ unsigned int vgt_rtr_q : MH_DEBUG_REG26_VGT_RTR_q_SIZE;
+ unsigned int tc_roq_send_q : MH_DEBUG_REG26_TC_ROQ_SEND_q_SIZE;
+ unsigned int tc_roq_rtr_dbg_q : MH_DEBUG_REG26_TC_ROQ_RTR_DBG_q_SIZE;
+ unsigned int rb_send_q : MH_DEBUG_REG26_RB_SEND_q_SIZE;
+ unsigned int rb_rtr_q : MH_DEBUG_REG26_RB_RTR_q_SIZE;
+ unsigned int pa_send_q : MH_DEBUG_REG26_PA_SEND_q_SIZE;
+ unsigned int pa_rtr_q : MH_DEBUG_REG26_PA_RTR_q_SIZE;
+ unsigned int rdc_valid : MH_DEBUG_REG26_RDC_VALID_SIZE;
+ unsigned int rdc_rlast : MH_DEBUG_REG26_RDC_RLAST_SIZE;
+ unsigned int tlbmiss_valid : MH_DEBUG_REG26_TLBMISS_VALID_SIZE;
+ unsigned int brc_valid : MH_DEBUG_REG26_BRC_VALID_SIZE;
+ } mh_debug_reg26_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg26_t {
+ unsigned int brc_valid : MH_DEBUG_REG26_BRC_VALID_SIZE;
+ unsigned int tlbmiss_valid : MH_DEBUG_REG26_TLBMISS_VALID_SIZE;
+ unsigned int rdc_rlast : MH_DEBUG_REG26_RDC_RLAST_SIZE;
+ unsigned int rdc_valid : MH_DEBUG_REG26_RDC_VALID_SIZE;
+ unsigned int pa_rtr_q : MH_DEBUG_REG26_PA_RTR_q_SIZE;
+ unsigned int pa_send_q : MH_DEBUG_REG26_PA_SEND_q_SIZE;
+ unsigned int rb_rtr_q : MH_DEBUG_REG26_RB_RTR_q_SIZE;
+ unsigned int rb_send_q : MH_DEBUG_REG26_RB_SEND_q_SIZE;
+ unsigned int tc_roq_rtr_dbg_q : MH_DEBUG_REG26_TC_ROQ_RTR_DBG_q_SIZE;
+ unsigned int tc_roq_send_q : MH_DEBUG_REG26_TC_ROQ_SEND_q_SIZE;
+ unsigned int vgt_rtr_q : MH_DEBUG_REG26_VGT_RTR_q_SIZE;
+ unsigned int vgt_send_q : MH_DEBUG_REG26_VGT_SEND_q_SIZE;
+ unsigned int cp_rtr_q : MH_DEBUG_REG26_CP_RTR_q_SIZE;
+ unsigned int cp_send_q : MH_DEBUG_REG26_CP_SEND_q_SIZE;
+ unsigned int mh_mmu_invalidate_invalidate_tc : MH_DEBUG_REG26_MH_MMU_INVALIDATE_INVALIDATE_TC_SIZE;
+ unsigned int mh_mmu_invalidate_invalidate_all : MH_DEBUG_REG26_MH_MMU_INVALIDATE_INVALIDATE_ALL_SIZE;
+ unsigned int any_clnt_busy : MH_DEBUG_REG26_ANY_CLNT_BUSY_SIZE;
+ unsigned int mh_busy_d : MH_DEBUG_REG26_MH_BUSY_d_SIZE;
+ unsigned int tc_roq_empty : MH_DEBUG_REG26_TC_ROQ_EMPTY_SIZE;
+ unsigned int tcd_empty_q : MH_DEBUG_REG26_TCD_EMPTY_q_SIZE;
+ unsigned int cnt_q : MH_DEBUG_REG26_CNT_q_SIZE;
+ unsigned int rbbm_mh_clk_en_override : MH_DEBUG_REG26_RBBM_MH_clk_en_override_SIZE;
+ unsigned int gat_clk_ena : MH_DEBUG_REG26_GAT_CLK_ENA_SIZE;
+ unsigned int mh_cib_tcroq_clk_en_int : MH_DEBUG_REG26_MH_CIB_tcroq_clk_en_int_SIZE;
+ unsigned int mh_cib_mmu_clk_en_int : MH_DEBUG_REG26_MH_CIB_mmu_clk_en_int_SIZE;
+ unsigned int mh_cib_mh_clk_en_int : MH_DEBUG_REG26_MH_CIB_mh_clk_en_int_SIZE;
+ unsigned int mh_rbbm_busy : MH_DEBUG_REG26_MH_RBBM_busy_SIZE;
+ } mh_debug_reg26_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg26_t f;
+} mh_debug_reg26_u;
+
+
+/*
+ * MH_DEBUG_REG27 struct
+ */
+
+#define MH_DEBUG_REG27_EFF2_FP_WINNER_SIZE 3
+#define MH_DEBUG_REG27_EFF2_LRU_WINNER_out_SIZE 3
+#define MH_DEBUG_REG27_EFF1_WINNER_SIZE 3
+#define MH_DEBUG_REG27_ARB_WINNER_SIZE 3
+#define MH_DEBUG_REG27_ARB_WINNER_q_SIZE 3
+#define MH_DEBUG_REG27_EFF1_WIN_SIZE 1
+#define MH_DEBUG_REG27_KILL_EFF1_SIZE 1
+#define MH_DEBUG_REG27_ARB_HOLD_SIZE 1
+#define MH_DEBUG_REG27_ARB_RTR_q_SIZE 1
+#define MH_DEBUG_REG27_CP_SEND_QUAL_SIZE 1
+#define MH_DEBUG_REG27_VGT_SEND_QUAL_SIZE 1
+#define MH_DEBUG_REG27_TC_SEND_QUAL_SIZE 1
+#define MH_DEBUG_REG27_TC_SEND_EFF1_QUAL_SIZE 1
+#define MH_DEBUG_REG27_RB_SEND_QUAL_SIZE 1
+#define MH_DEBUG_REG27_PA_SEND_QUAL_SIZE 1
+#define MH_DEBUG_REG27_ARB_QUAL_SIZE 1
+#define MH_DEBUG_REG27_CP_EFF1_REQ_SIZE 1
+#define MH_DEBUG_REG27_VGT_EFF1_REQ_SIZE 1
+#define MH_DEBUG_REG27_TC_EFF1_REQ_SIZE 1
+#define MH_DEBUG_REG27_RB_EFF1_REQ_SIZE 1
+#define MH_DEBUG_REG27_TCD_NEARFULL_q_SIZE 1
+#define MH_DEBUG_REG27_TCHOLD_IP_q_SIZE 1
+
+#define MH_DEBUG_REG27_EFF2_FP_WINNER_SHIFT 0
+#define MH_DEBUG_REG27_EFF2_LRU_WINNER_out_SHIFT 3
+#define MH_DEBUG_REG27_EFF1_WINNER_SHIFT 6
+#define MH_DEBUG_REG27_ARB_WINNER_SHIFT 9
+#define MH_DEBUG_REG27_ARB_WINNER_q_SHIFT 12
+#define MH_DEBUG_REG27_EFF1_WIN_SHIFT 15
+#define MH_DEBUG_REG27_KILL_EFF1_SHIFT 16
+#define MH_DEBUG_REG27_ARB_HOLD_SHIFT 17
+#define MH_DEBUG_REG27_ARB_RTR_q_SHIFT 18
+#define MH_DEBUG_REG27_CP_SEND_QUAL_SHIFT 19
+#define MH_DEBUG_REG27_VGT_SEND_QUAL_SHIFT 20
+#define MH_DEBUG_REG27_TC_SEND_QUAL_SHIFT 21
+#define MH_DEBUG_REG27_TC_SEND_EFF1_QUAL_SHIFT 22
+#define MH_DEBUG_REG27_RB_SEND_QUAL_SHIFT 23
+#define MH_DEBUG_REG27_PA_SEND_QUAL_SHIFT 24
+#define MH_DEBUG_REG27_ARB_QUAL_SHIFT 25
+#define MH_DEBUG_REG27_CP_EFF1_REQ_SHIFT 26
+#define MH_DEBUG_REG27_VGT_EFF1_REQ_SHIFT 27
+#define MH_DEBUG_REG27_TC_EFF1_REQ_SHIFT 28
+#define MH_DEBUG_REG27_RB_EFF1_REQ_SHIFT 29
+#define MH_DEBUG_REG27_TCD_NEARFULL_q_SHIFT 30
+#define MH_DEBUG_REG27_TCHOLD_IP_q_SHIFT 31
+
+#define MH_DEBUG_REG27_EFF2_FP_WINNER_MASK 0x00000007
+#define MH_DEBUG_REG27_EFF2_LRU_WINNER_out_MASK 0x00000038
+#define MH_DEBUG_REG27_EFF1_WINNER_MASK 0x000001c0
+#define MH_DEBUG_REG27_ARB_WINNER_MASK 0x00000e00
+#define MH_DEBUG_REG27_ARB_WINNER_q_MASK 0x00007000
+#define MH_DEBUG_REG27_EFF1_WIN_MASK 0x00008000
+#define MH_DEBUG_REG27_KILL_EFF1_MASK 0x00010000
+#define MH_DEBUG_REG27_ARB_HOLD_MASK 0x00020000
+#define MH_DEBUG_REG27_ARB_RTR_q_MASK 0x00040000
+#define MH_DEBUG_REG27_CP_SEND_QUAL_MASK 0x00080000
+#define MH_DEBUG_REG27_VGT_SEND_QUAL_MASK 0x00100000
+#define MH_DEBUG_REG27_TC_SEND_QUAL_MASK 0x00200000
+#define MH_DEBUG_REG27_TC_SEND_EFF1_QUAL_MASK 0x00400000
+#define MH_DEBUG_REG27_RB_SEND_QUAL_MASK 0x00800000
+#define MH_DEBUG_REG27_PA_SEND_QUAL_MASK 0x01000000
+#define MH_DEBUG_REG27_ARB_QUAL_MASK 0x02000000
+#define MH_DEBUG_REG27_CP_EFF1_REQ_MASK 0x04000000
+#define MH_DEBUG_REG27_VGT_EFF1_REQ_MASK 0x08000000
+#define MH_DEBUG_REG27_TC_EFF1_REQ_MASK 0x10000000
+#define MH_DEBUG_REG27_RB_EFF1_REQ_MASK 0x20000000
+#define MH_DEBUG_REG27_TCD_NEARFULL_q_MASK 0x40000000
+#define MH_DEBUG_REG27_TCHOLD_IP_q_MASK 0x80000000
+
+#define MH_DEBUG_REG27_MASK \
+ (MH_DEBUG_REG27_EFF2_FP_WINNER_MASK | \
+ MH_DEBUG_REG27_EFF2_LRU_WINNER_out_MASK | \
+ MH_DEBUG_REG27_EFF1_WINNER_MASK | \
+ MH_DEBUG_REG27_ARB_WINNER_MASK | \
+ MH_DEBUG_REG27_ARB_WINNER_q_MASK | \
+ MH_DEBUG_REG27_EFF1_WIN_MASK | \
+ MH_DEBUG_REG27_KILL_EFF1_MASK | \
+ MH_DEBUG_REG27_ARB_HOLD_MASK | \
+ MH_DEBUG_REG27_ARB_RTR_q_MASK | \
+ MH_DEBUG_REG27_CP_SEND_QUAL_MASK | \
+ MH_DEBUG_REG27_VGT_SEND_QUAL_MASK | \
+ MH_DEBUG_REG27_TC_SEND_QUAL_MASK | \
+ MH_DEBUG_REG27_TC_SEND_EFF1_QUAL_MASK | \
+ MH_DEBUG_REG27_RB_SEND_QUAL_MASK | \
+ MH_DEBUG_REG27_PA_SEND_QUAL_MASK | \
+ MH_DEBUG_REG27_ARB_QUAL_MASK | \
+ MH_DEBUG_REG27_CP_EFF1_REQ_MASK | \
+ MH_DEBUG_REG27_VGT_EFF1_REQ_MASK | \
+ MH_DEBUG_REG27_TC_EFF1_REQ_MASK | \
+ MH_DEBUG_REG27_RB_EFF1_REQ_MASK | \
+ MH_DEBUG_REG27_TCD_NEARFULL_q_MASK | \
+ MH_DEBUG_REG27_TCHOLD_IP_q_MASK)
+
+#define MH_DEBUG_REG27(eff2_fp_winner, eff2_lru_winner_out, eff1_winner, arb_winner, arb_winner_q, eff1_win, kill_eff1, arb_hold, arb_rtr_q, cp_send_qual, vgt_send_qual, tc_send_qual, tc_send_eff1_qual, rb_send_qual, pa_send_qual, arb_qual, cp_eff1_req, vgt_eff1_req, tc_eff1_req, rb_eff1_req, tcd_nearfull_q, tchold_ip_q) \
+ ((eff2_fp_winner << MH_DEBUG_REG27_EFF2_FP_WINNER_SHIFT) | \
+ (eff2_lru_winner_out << MH_DEBUG_REG27_EFF2_LRU_WINNER_out_SHIFT) | \
+ (eff1_winner << MH_DEBUG_REG27_EFF1_WINNER_SHIFT) | \
+ (arb_winner << MH_DEBUG_REG27_ARB_WINNER_SHIFT) | \
+ (arb_winner_q << MH_DEBUG_REG27_ARB_WINNER_q_SHIFT) | \
+ (eff1_win << MH_DEBUG_REG27_EFF1_WIN_SHIFT) | \
+ (kill_eff1 << MH_DEBUG_REG27_KILL_EFF1_SHIFT) | \
+ (arb_hold << MH_DEBUG_REG27_ARB_HOLD_SHIFT) | \
+ (arb_rtr_q << MH_DEBUG_REG27_ARB_RTR_q_SHIFT) | \
+ (cp_send_qual << MH_DEBUG_REG27_CP_SEND_QUAL_SHIFT) | \
+ (vgt_send_qual << MH_DEBUG_REG27_VGT_SEND_QUAL_SHIFT) | \
+ (tc_send_qual << MH_DEBUG_REG27_TC_SEND_QUAL_SHIFT) | \
+ (tc_send_eff1_qual << MH_DEBUG_REG27_TC_SEND_EFF1_QUAL_SHIFT) | \
+ (rb_send_qual << MH_DEBUG_REG27_RB_SEND_QUAL_SHIFT) | \
+ (pa_send_qual << MH_DEBUG_REG27_PA_SEND_QUAL_SHIFT) | \
+ (arb_qual << MH_DEBUG_REG27_ARB_QUAL_SHIFT) | \
+ (cp_eff1_req << MH_DEBUG_REG27_CP_EFF1_REQ_SHIFT) | \
+ (vgt_eff1_req << MH_DEBUG_REG27_VGT_EFF1_REQ_SHIFT) | \
+ (tc_eff1_req << MH_DEBUG_REG27_TC_EFF1_REQ_SHIFT) | \
+ (rb_eff1_req << MH_DEBUG_REG27_RB_EFF1_REQ_SHIFT) | \
+ (tcd_nearfull_q << MH_DEBUG_REG27_TCD_NEARFULL_q_SHIFT) | \
+ (tchold_ip_q << MH_DEBUG_REG27_TCHOLD_IP_q_SHIFT))
+
+#define MH_DEBUG_REG27_GET_EFF2_FP_WINNER(mh_debug_reg27) \
+ ((mh_debug_reg27 & MH_DEBUG_REG27_EFF2_FP_WINNER_MASK) >> MH_DEBUG_REG27_EFF2_FP_WINNER_SHIFT)
+#define MH_DEBUG_REG27_GET_EFF2_LRU_WINNER_out(mh_debug_reg27) \
+ ((mh_debug_reg27 & MH_DEBUG_REG27_EFF2_LRU_WINNER_out_MASK) >> MH_DEBUG_REG27_EFF2_LRU_WINNER_out_SHIFT)
+#define MH_DEBUG_REG27_GET_EFF1_WINNER(mh_debug_reg27) \
+ ((mh_debug_reg27 & MH_DEBUG_REG27_EFF1_WINNER_MASK) >> MH_DEBUG_REG27_EFF1_WINNER_SHIFT)
+#define MH_DEBUG_REG27_GET_ARB_WINNER(mh_debug_reg27) \
+ ((mh_debug_reg27 & MH_DEBUG_REG27_ARB_WINNER_MASK) >> MH_DEBUG_REG27_ARB_WINNER_SHIFT)
+#define MH_DEBUG_REG27_GET_ARB_WINNER_q(mh_debug_reg27) \
+ ((mh_debug_reg27 & MH_DEBUG_REG27_ARB_WINNER_q_MASK) >> MH_DEBUG_REG27_ARB_WINNER_q_SHIFT)
+#define MH_DEBUG_REG27_GET_EFF1_WIN(mh_debug_reg27) \
+ ((mh_debug_reg27 & MH_DEBUG_REG27_EFF1_WIN_MASK) >> MH_DEBUG_REG27_EFF1_WIN_SHIFT)
+#define MH_DEBUG_REG27_GET_KILL_EFF1(mh_debug_reg27) \
+ ((mh_debug_reg27 & MH_DEBUG_REG27_KILL_EFF1_MASK) >> MH_DEBUG_REG27_KILL_EFF1_SHIFT)
+#define MH_DEBUG_REG27_GET_ARB_HOLD(mh_debug_reg27) \
+ ((mh_debug_reg27 & MH_DEBUG_REG27_ARB_HOLD_MASK) >> MH_DEBUG_REG27_ARB_HOLD_SHIFT)
+#define MH_DEBUG_REG27_GET_ARB_RTR_q(mh_debug_reg27) \
+ ((mh_debug_reg27 & MH_DEBUG_REG27_ARB_RTR_q_MASK) >> MH_DEBUG_REG27_ARB_RTR_q_SHIFT)
+#define MH_DEBUG_REG27_GET_CP_SEND_QUAL(mh_debug_reg27) \
+ ((mh_debug_reg27 & MH_DEBUG_REG27_CP_SEND_QUAL_MASK) >> MH_DEBUG_REG27_CP_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG27_GET_VGT_SEND_QUAL(mh_debug_reg27) \
+ ((mh_debug_reg27 & MH_DEBUG_REG27_VGT_SEND_QUAL_MASK) >> MH_DEBUG_REG27_VGT_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG27_GET_TC_SEND_QUAL(mh_debug_reg27) \
+ ((mh_debug_reg27 & MH_DEBUG_REG27_TC_SEND_QUAL_MASK) >> MH_DEBUG_REG27_TC_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG27_GET_TC_SEND_EFF1_QUAL(mh_debug_reg27) \
+ ((mh_debug_reg27 & MH_DEBUG_REG27_TC_SEND_EFF1_QUAL_MASK) >> MH_DEBUG_REG27_TC_SEND_EFF1_QUAL_SHIFT)
+#define MH_DEBUG_REG27_GET_RB_SEND_QUAL(mh_debug_reg27) \
+ ((mh_debug_reg27 & MH_DEBUG_REG27_RB_SEND_QUAL_MASK) >> MH_DEBUG_REG27_RB_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG27_GET_PA_SEND_QUAL(mh_debug_reg27) \
+ ((mh_debug_reg27 & MH_DEBUG_REG27_PA_SEND_QUAL_MASK) >> MH_DEBUG_REG27_PA_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG27_GET_ARB_QUAL(mh_debug_reg27) \
+ ((mh_debug_reg27 & MH_DEBUG_REG27_ARB_QUAL_MASK) >> MH_DEBUG_REG27_ARB_QUAL_SHIFT)
+#define MH_DEBUG_REG27_GET_CP_EFF1_REQ(mh_debug_reg27) \
+ ((mh_debug_reg27 & MH_DEBUG_REG27_CP_EFF1_REQ_MASK) >> MH_DEBUG_REG27_CP_EFF1_REQ_SHIFT)
+#define MH_DEBUG_REG27_GET_VGT_EFF1_REQ(mh_debug_reg27) \
+ ((mh_debug_reg27 & MH_DEBUG_REG27_VGT_EFF1_REQ_MASK) >> MH_DEBUG_REG27_VGT_EFF1_REQ_SHIFT)
+#define MH_DEBUG_REG27_GET_TC_EFF1_REQ(mh_debug_reg27) \
+ ((mh_debug_reg27 & MH_DEBUG_REG27_TC_EFF1_REQ_MASK) >> MH_DEBUG_REG27_TC_EFF1_REQ_SHIFT)
+#define MH_DEBUG_REG27_GET_RB_EFF1_REQ(mh_debug_reg27) \
+ ((mh_debug_reg27 & MH_DEBUG_REG27_RB_EFF1_REQ_MASK) >> MH_DEBUG_REG27_RB_EFF1_REQ_SHIFT)
+#define MH_DEBUG_REG27_GET_TCD_NEARFULL_q(mh_debug_reg27) \
+ ((mh_debug_reg27 & MH_DEBUG_REG27_TCD_NEARFULL_q_MASK) >> MH_DEBUG_REG27_TCD_NEARFULL_q_SHIFT)
+#define MH_DEBUG_REG27_GET_TCHOLD_IP_q(mh_debug_reg27) \
+ ((mh_debug_reg27 & MH_DEBUG_REG27_TCHOLD_IP_q_MASK) >> MH_DEBUG_REG27_TCHOLD_IP_q_SHIFT)
+
+#define MH_DEBUG_REG27_SET_EFF2_FP_WINNER(mh_debug_reg27_reg, eff2_fp_winner) \
+ mh_debug_reg27_reg = (mh_debug_reg27_reg & ~MH_DEBUG_REG27_EFF2_FP_WINNER_MASK) | (eff2_fp_winner << MH_DEBUG_REG27_EFF2_FP_WINNER_SHIFT)
+#define MH_DEBUG_REG27_SET_EFF2_LRU_WINNER_out(mh_debug_reg27_reg, eff2_lru_winner_out) \
+ mh_debug_reg27_reg = (mh_debug_reg27_reg & ~MH_DEBUG_REG27_EFF2_LRU_WINNER_out_MASK) | (eff2_lru_winner_out << MH_DEBUG_REG27_EFF2_LRU_WINNER_out_SHIFT)
+#define MH_DEBUG_REG27_SET_EFF1_WINNER(mh_debug_reg27_reg, eff1_winner) \
+ mh_debug_reg27_reg = (mh_debug_reg27_reg & ~MH_DEBUG_REG27_EFF1_WINNER_MASK) | (eff1_winner << MH_DEBUG_REG27_EFF1_WINNER_SHIFT)
+#define MH_DEBUG_REG27_SET_ARB_WINNER(mh_debug_reg27_reg, arb_winner) \
+ mh_debug_reg27_reg = (mh_debug_reg27_reg & ~MH_DEBUG_REG27_ARB_WINNER_MASK) | (arb_winner << MH_DEBUG_REG27_ARB_WINNER_SHIFT)
+#define MH_DEBUG_REG27_SET_ARB_WINNER_q(mh_debug_reg27_reg, arb_winner_q) \
+ mh_debug_reg27_reg = (mh_debug_reg27_reg & ~MH_DEBUG_REG27_ARB_WINNER_q_MASK) | (arb_winner_q << MH_DEBUG_REG27_ARB_WINNER_q_SHIFT)
+#define MH_DEBUG_REG27_SET_EFF1_WIN(mh_debug_reg27_reg, eff1_win) \
+ mh_debug_reg27_reg = (mh_debug_reg27_reg & ~MH_DEBUG_REG27_EFF1_WIN_MASK) | (eff1_win << MH_DEBUG_REG27_EFF1_WIN_SHIFT)
+#define MH_DEBUG_REG27_SET_KILL_EFF1(mh_debug_reg27_reg, kill_eff1) \
+ mh_debug_reg27_reg = (mh_debug_reg27_reg & ~MH_DEBUG_REG27_KILL_EFF1_MASK) | (kill_eff1 << MH_DEBUG_REG27_KILL_EFF1_SHIFT)
+#define MH_DEBUG_REG27_SET_ARB_HOLD(mh_debug_reg27_reg, arb_hold) \
+ mh_debug_reg27_reg = (mh_debug_reg27_reg & ~MH_DEBUG_REG27_ARB_HOLD_MASK) | (arb_hold << MH_DEBUG_REG27_ARB_HOLD_SHIFT)
+#define MH_DEBUG_REG27_SET_ARB_RTR_q(mh_debug_reg27_reg, arb_rtr_q) \
+ mh_debug_reg27_reg = (mh_debug_reg27_reg & ~MH_DEBUG_REG27_ARB_RTR_q_MASK) | (arb_rtr_q << MH_DEBUG_REG27_ARB_RTR_q_SHIFT)
+#define MH_DEBUG_REG27_SET_CP_SEND_QUAL(mh_debug_reg27_reg, cp_send_qual) \
+ mh_debug_reg27_reg = (mh_debug_reg27_reg & ~MH_DEBUG_REG27_CP_SEND_QUAL_MASK) | (cp_send_qual << MH_DEBUG_REG27_CP_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG27_SET_VGT_SEND_QUAL(mh_debug_reg27_reg, vgt_send_qual) \
+ mh_debug_reg27_reg = (mh_debug_reg27_reg & ~MH_DEBUG_REG27_VGT_SEND_QUAL_MASK) | (vgt_send_qual << MH_DEBUG_REG27_VGT_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG27_SET_TC_SEND_QUAL(mh_debug_reg27_reg, tc_send_qual) \
+ mh_debug_reg27_reg = (mh_debug_reg27_reg & ~MH_DEBUG_REG27_TC_SEND_QUAL_MASK) | (tc_send_qual << MH_DEBUG_REG27_TC_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG27_SET_TC_SEND_EFF1_QUAL(mh_debug_reg27_reg, tc_send_eff1_qual) \
+ mh_debug_reg27_reg = (mh_debug_reg27_reg & ~MH_DEBUG_REG27_TC_SEND_EFF1_QUAL_MASK) | (tc_send_eff1_qual << MH_DEBUG_REG27_TC_SEND_EFF1_QUAL_SHIFT)
+#define MH_DEBUG_REG27_SET_RB_SEND_QUAL(mh_debug_reg27_reg, rb_send_qual) \
+ mh_debug_reg27_reg = (mh_debug_reg27_reg & ~MH_DEBUG_REG27_RB_SEND_QUAL_MASK) | (rb_send_qual << MH_DEBUG_REG27_RB_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG27_SET_PA_SEND_QUAL(mh_debug_reg27_reg, pa_send_qual) \
+ mh_debug_reg27_reg = (mh_debug_reg27_reg & ~MH_DEBUG_REG27_PA_SEND_QUAL_MASK) | (pa_send_qual << MH_DEBUG_REG27_PA_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG27_SET_ARB_QUAL(mh_debug_reg27_reg, arb_qual) \
+ mh_debug_reg27_reg = (mh_debug_reg27_reg & ~MH_DEBUG_REG27_ARB_QUAL_MASK) | (arb_qual << MH_DEBUG_REG27_ARB_QUAL_SHIFT)
+#define MH_DEBUG_REG27_SET_CP_EFF1_REQ(mh_debug_reg27_reg, cp_eff1_req) \
+ mh_debug_reg27_reg = (mh_debug_reg27_reg & ~MH_DEBUG_REG27_CP_EFF1_REQ_MASK) | (cp_eff1_req << MH_DEBUG_REG27_CP_EFF1_REQ_SHIFT)
+#define MH_DEBUG_REG27_SET_VGT_EFF1_REQ(mh_debug_reg27_reg, vgt_eff1_req) \
+ mh_debug_reg27_reg = (mh_debug_reg27_reg & ~MH_DEBUG_REG27_VGT_EFF1_REQ_MASK) | (vgt_eff1_req << MH_DEBUG_REG27_VGT_EFF1_REQ_SHIFT)
+#define MH_DEBUG_REG27_SET_TC_EFF1_REQ(mh_debug_reg27_reg, tc_eff1_req) \
+ mh_debug_reg27_reg = (mh_debug_reg27_reg & ~MH_DEBUG_REG27_TC_EFF1_REQ_MASK) | (tc_eff1_req << MH_DEBUG_REG27_TC_EFF1_REQ_SHIFT)
+#define MH_DEBUG_REG27_SET_RB_EFF1_REQ(mh_debug_reg27_reg, rb_eff1_req) \
+ mh_debug_reg27_reg = (mh_debug_reg27_reg & ~MH_DEBUG_REG27_RB_EFF1_REQ_MASK) | (rb_eff1_req << MH_DEBUG_REG27_RB_EFF1_REQ_SHIFT)
+#define MH_DEBUG_REG27_SET_TCD_NEARFULL_q(mh_debug_reg27_reg, tcd_nearfull_q) \
+ mh_debug_reg27_reg = (mh_debug_reg27_reg & ~MH_DEBUG_REG27_TCD_NEARFULL_q_MASK) | (tcd_nearfull_q << MH_DEBUG_REG27_TCD_NEARFULL_q_SHIFT)
+#define MH_DEBUG_REG27_SET_TCHOLD_IP_q(mh_debug_reg27_reg, tchold_ip_q) \
+ mh_debug_reg27_reg = (mh_debug_reg27_reg & ~MH_DEBUG_REG27_TCHOLD_IP_q_MASK) | (tchold_ip_q << MH_DEBUG_REG27_TCHOLD_IP_q_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg27_t {
+ unsigned int eff2_fp_winner : MH_DEBUG_REG27_EFF2_FP_WINNER_SIZE;
+ unsigned int eff2_lru_winner_out : MH_DEBUG_REG27_EFF2_LRU_WINNER_out_SIZE;
+ unsigned int eff1_winner : MH_DEBUG_REG27_EFF1_WINNER_SIZE;
+ unsigned int arb_winner : MH_DEBUG_REG27_ARB_WINNER_SIZE;
+ unsigned int arb_winner_q : MH_DEBUG_REG27_ARB_WINNER_q_SIZE;
+ unsigned int eff1_win : MH_DEBUG_REG27_EFF1_WIN_SIZE;
+ unsigned int kill_eff1 : MH_DEBUG_REG27_KILL_EFF1_SIZE;
+ unsigned int arb_hold : MH_DEBUG_REG27_ARB_HOLD_SIZE;
+ unsigned int arb_rtr_q : MH_DEBUG_REG27_ARB_RTR_q_SIZE;
+ unsigned int cp_send_qual : MH_DEBUG_REG27_CP_SEND_QUAL_SIZE;
+ unsigned int vgt_send_qual : MH_DEBUG_REG27_VGT_SEND_QUAL_SIZE;
+ unsigned int tc_send_qual : MH_DEBUG_REG27_TC_SEND_QUAL_SIZE;
+ unsigned int tc_send_eff1_qual : MH_DEBUG_REG27_TC_SEND_EFF1_QUAL_SIZE;
+ unsigned int rb_send_qual : MH_DEBUG_REG27_RB_SEND_QUAL_SIZE;
+ unsigned int pa_send_qual : MH_DEBUG_REG27_PA_SEND_QUAL_SIZE;
+ unsigned int arb_qual : MH_DEBUG_REG27_ARB_QUAL_SIZE;
+ unsigned int cp_eff1_req : MH_DEBUG_REG27_CP_EFF1_REQ_SIZE;
+ unsigned int vgt_eff1_req : MH_DEBUG_REG27_VGT_EFF1_REQ_SIZE;
+ unsigned int tc_eff1_req : MH_DEBUG_REG27_TC_EFF1_REQ_SIZE;
+ unsigned int rb_eff1_req : MH_DEBUG_REG27_RB_EFF1_REQ_SIZE;
+ unsigned int tcd_nearfull_q : MH_DEBUG_REG27_TCD_NEARFULL_q_SIZE;
+ unsigned int tchold_ip_q : MH_DEBUG_REG27_TCHOLD_IP_q_SIZE;
+ } mh_debug_reg27_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg27_t {
+ unsigned int tchold_ip_q : MH_DEBUG_REG27_TCHOLD_IP_q_SIZE;
+ unsigned int tcd_nearfull_q : MH_DEBUG_REG27_TCD_NEARFULL_q_SIZE;
+ unsigned int rb_eff1_req : MH_DEBUG_REG27_RB_EFF1_REQ_SIZE;
+ unsigned int tc_eff1_req : MH_DEBUG_REG27_TC_EFF1_REQ_SIZE;
+ unsigned int vgt_eff1_req : MH_DEBUG_REG27_VGT_EFF1_REQ_SIZE;
+ unsigned int cp_eff1_req : MH_DEBUG_REG27_CP_EFF1_REQ_SIZE;
+ unsigned int arb_qual : MH_DEBUG_REG27_ARB_QUAL_SIZE;
+ unsigned int pa_send_qual : MH_DEBUG_REG27_PA_SEND_QUAL_SIZE;
+ unsigned int rb_send_qual : MH_DEBUG_REG27_RB_SEND_QUAL_SIZE;
+ unsigned int tc_send_eff1_qual : MH_DEBUG_REG27_TC_SEND_EFF1_QUAL_SIZE;
+ unsigned int tc_send_qual : MH_DEBUG_REG27_TC_SEND_QUAL_SIZE;
+ unsigned int vgt_send_qual : MH_DEBUG_REG27_VGT_SEND_QUAL_SIZE;
+ unsigned int cp_send_qual : MH_DEBUG_REG27_CP_SEND_QUAL_SIZE;
+ unsigned int arb_rtr_q : MH_DEBUG_REG27_ARB_RTR_q_SIZE;
+ unsigned int arb_hold : MH_DEBUG_REG27_ARB_HOLD_SIZE;
+ unsigned int kill_eff1 : MH_DEBUG_REG27_KILL_EFF1_SIZE;
+ unsigned int eff1_win : MH_DEBUG_REG27_EFF1_WIN_SIZE;
+ unsigned int arb_winner_q : MH_DEBUG_REG27_ARB_WINNER_q_SIZE;
+ unsigned int arb_winner : MH_DEBUG_REG27_ARB_WINNER_SIZE;
+ unsigned int eff1_winner : MH_DEBUG_REG27_EFF1_WINNER_SIZE;
+ unsigned int eff2_lru_winner_out : MH_DEBUG_REG27_EFF2_LRU_WINNER_out_SIZE;
+ unsigned int eff2_fp_winner : MH_DEBUG_REG27_EFF2_FP_WINNER_SIZE;
+ } mh_debug_reg27_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg27_t f;
+} mh_debug_reg27_u;
+
+
+/*
+ * MH_DEBUG_REG28 struct
+ */
+
+#define MH_DEBUG_REG28_EFF1_WINNER_SIZE 3
+#define MH_DEBUG_REG28_ARB_WINNER_SIZE 3
+#define MH_DEBUG_REG28_CP_SEND_QUAL_SIZE 1
+#define MH_DEBUG_REG28_VGT_SEND_QUAL_SIZE 1
+#define MH_DEBUG_REG28_TC_SEND_QUAL_SIZE 1
+#define MH_DEBUG_REG28_TC_SEND_EFF1_QUAL_SIZE 1
+#define MH_DEBUG_REG28_RB_SEND_QUAL_SIZE 1
+#define MH_DEBUG_REG28_ARB_QUAL_SIZE 1
+#define MH_DEBUG_REG28_CP_EFF1_REQ_SIZE 1
+#define MH_DEBUG_REG28_VGT_EFF1_REQ_SIZE 1
+#define MH_DEBUG_REG28_TC_EFF1_REQ_SIZE 1
+#define MH_DEBUG_REG28_RB_EFF1_REQ_SIZE 1
+#define MH_DEBUG_REG28_EFF1_WIN_SIZE 1
+#define MH_DEBUG_REG28_KILL_EFF1_SIZE 1
+#define MH_DEBUG_REG28_TCD_NEARFULL_q_SIZE 1
+#define MH_DEBUG_REG28_TC_ARB_HOLD_SIZE 1
+#define MH_DEBUG_REG28_ARB_HOLD_SIZE 1
+#define MH_DEBUG_REG28_ARB_RTR_q_SIZE 1
+#define MH_DEBUG_REG28_SAME_PAGE_LIMIT_COUNT_q_SIZE 10
+
+#define MH_DEBUG_REG28_EFF1_WINNER_SHIFT 0
+#define MH_DEBUG_REG28_ARB_WINNER_SHIFT 3
+#define MH_DEBUG_REG28_CP_SEND_QUAL_SHIFT 6
+#define MH_DEBUG_REG28_VGT_SEND_QUAL_SHIFT 7
+#define MH_DEBUG_REG28_TC_SEND_QUAL_SHIFT 8
+#define MH_DEBUG_REG28_TC_SEND_EFF1_QUAL_SHIFT 9
+#define MH_DEBUG_REG28_RB_SEND_QUAL_SHIFT 10
+#define MH_DEBUG_REG28_ARB_QUAL_SHIFT 11
+#define MH_DEBUG_REG28_CP_EFF1_REQ_SHIFT 12
+#define MH_DEBUG_REG28_VGT_EFF1_REQ_SHIFT 13
+#define MH_DEBUG_REG28_TC_EFF1_REQ_SHIFT 14
+#define MH_DEBUG_REG28_RB_EFF1_REQ_SHIFT 15
+#define MH_DEBUG_REG28_EFF1_WIN_SHIFT 16
+#define MH_DEBUG_REG28_KILL_EFF1_SHIFT 17
+#define MH_DEBUG_REG28_TCD_NEARFULL_q_SHIFT 18
+#define MH_DEBUG_REG28_TC_ARB_HOLD_SHIFT 19
+#define MH_DEBUG_REG28_ARB_HOLD_SHIFT 20
+#define MH_DEBUG_REG28_ARB_RTR_q_SHIFT 21
+#define MH_DEBUG_REG28_SAME_PAGE_LIMIT_COUNT_q_SHIFT 22
+
+#define MH_DEBUG_REG28_EFF1_WINNER_MASK 0x00000007
+#define MH_DEBUG_REG28_ARB_WINNER_MASK 0x00000038
+#define MH_DEBUG_REG28_CP_SEND_QUAL_MASK 0x00000040
+#define MH_DEBUG_REG28_VGT_SEND_QUAL_MASK 0x00000080
+#define MH_DEBUG_REG28_TC_SEND_QUAL_MASK 0x00000100
+#define MH_DEBUG_REG28_TC_SEND_EFF1_QUAL_MASK 0x00000200
+#define MH_DEBUG_REG28_RB_SEND_QUAL_MASK 0x00000400
+#define MH_DEBUG_REG28_ARB_QUAL_MASK 0x00000800
+#define MH_DEBUG_REG28_CP_EFF1_REQ_MASK 0x00001000
+#define MH_DEBUG_REG28_VGT_EFF1_REQ_MASK 0x00002000
+#define MH_DEBUG_REG28_TC_EFF1_REQ_MASK 0x00004000
+#define MH_DEBUG_REG28_RB_EFF1_REQ_MASK 0x00008000
+#define MH_DEBUG_REG28_EFF1_WIN_MASK 0x00010000
+#define MH_DEBUG_REG28_KILL_EFF1_MASK 0x00020000
+#define MH_DEBUG_REG28_TCD_NEARFULL_q_MASK 0x00040000
+#define MH_DEBUG_REG28_TC_ARB_HOLD_MASK 0x00080000
+#define MH_DEBUG_REG28_ARB_HOLD_MASK 0x00100000
+#define MH_DEBUG_REG28_ARB_RTR_q_MASK 0x00200000
+#define MH_DEBUG_REG28_SAME_PAGE_LIMIT_COUNT_q_MASK 0xffc00000
+
+#define MH_DEBUG_REG28_MASK \
+ (MH_DEBUG_REG28_EFF1_WINNER_MASK | \
+ MH_DEBUG_REG28_ARB_WINNER_MASK | \
+ MH_DEBUG_REG28_CP_SEND_QUAL_MASK | \
+ MH_DEBUG_REG28_VGT_SEND_QUAL_MASK | \
+ MH_DEBUG_REG28_TC_SEND_QUAL_MASK | \
+ MH_DEBUG_REG28_TC_SEND_EFF1_QUAL_MASK | \
+ MH_DEBUG_REG28_RB_SEND_QUAL_MASK | \
+ MH_DEBUG_REG28_ARB_QUAL_MASK | \
+ MH_DEBUG_REG28_CP_EFF1_REQ_MASK | \
+ MH_DEBUG_REG28_VGT_EFF1_REQ_MASK | \
+ MH_DEBUG_REG28_TC_EFF1_REQ_MASK | \
+ MH_DEBUG_REG28_RB_EFF1_REQ_MASK | \
+ MH_DEBUG_REG28_EFF1_WIN_MASK | \
+ MH_DEBUG_REG28_KILL_EFF1_MASK | \
+ MH_DEBUG_REG28_TCD_NEARFULL_q_MASK | \
+ MH_DEBUG_REG28_TC_ARB_HOLD_MASK | \
+ MH_DEBUG_REG28_ARB_HOLD_MASK | \
+ MH_DEBUG_REG28_ARB_RTR_q_MASK | \
+ MH_DEBUG_REG28_SAME_PAGE_LIMIT_COUNT_q_MASK)
+
+#define MH_DEBUG_REG28(eff1_winner, arb_winner, cp_send_qual, vgt_send_qual, tc_send_qual, tc_send_eff1_qual, rb_send_qual, arb_qual, cp_eff1_req, vgt_eff1_req, tc_eff1_req, rb_eff1_req, eff1_win, kill_eff1, tcd_nearfull_q, tc_arb_hold, arb_hold, arb_rtr_q, same_page_limit_count_q) \
+ ((eff1_winner << MH_DEBUG_REG28_EFF1_WINNER_SHIFT) | \
+ (arb_winner << MH_DEBUG_REG28_ARB_WINNER_SHIFT) | \
+ (cp_send_qual << MH_DEBUG_REG28_CP_SEND_QUAL_SHIFT) | \
+ (vgt_send_qual << MH_DEBUG_REG28_VGT_SEND_QUAL_SHIFT) | \
+ (tc_send_qual << MH_DEBUG_REG28_TC_SEND_QUAL_SHIFT) | \
+ (tc_send_eff1_qual << MH_DEBUG_REG28_TC_SEND_EFF1_QUAL_SHIFT) | \
+ (rb_send_qual << MH_DEBUG_REG28_RB_SEND_QUAL_SHIFT) | \
+ (arb_qual << MH_DEBUG_REG28_ARB_QUAL_SHIFT) | \
+ (cp_eff1_req << MH_DEBUG_REG28_CP_EFF1_REQ_SHIFT) | \
+ (vgt_eff1_req << MH_DEBUG_REG28_VGT_EFF1_REQ_SHIFT) | \
+ (tc_eff1_req << MH_DEBUG_REG28_TC_EFF1_REQ_SHIFT) | \
+ (rb_eff1_req << MH_DEBUG_REG28_RB_EFF1_REQ_SHIFT) | \
+ (eff1_win << MH_DEBUG_REG28_EFF1_WIN_SHIFT) | \
+ (kill_eff1 << MH_DEBUG_REG28_KILL_EFF1_SHIFT) | \
+ (tcd_nearfull_q << MH_DEBUG_REG28_TCD_NEARFULL_q_SHIFT) | \
+ (tc_arb_hold << MH_DEBUG_REG28_TC_ARB_HOLD_SHIFT) | \
+ (arb_hold << MH_DEBUG_REG28_ARB_HOLD_SHIFT) | \
+ (arb_rtr_q << MH_DEBUG_REG28_ARB_RTR_q_SHIFT) | \
+ (same_page_limit_count_q << MH_DEBUG_REG28_SAME_PAGE_LIMIT_COUNT_q_SHIFT))
+
+#define MH_DEBUG_REG28_GET_EFF1_WINNER(mh_debug_reg28) \
+ ((mh_debug_reg28 & MH_DEBUG_REG28_EFF1_WINNER_MASK) >> MH_DEBUG_REG28_EFF1_WINNER_SHIFT)
+#define MH_DEBUG_REG28_GET_ARB_WINNER(mh_debug_reg28) \
+ ((mh_debug_reg28 & MH_DEBUG_REG28_ARB_WINNER_MASK) >> MH_DEBUG_REG28_ARB_WINNER_SHIFT)
+#define MH_DEBUG_REG28_GET_CP_SEND_QUAL(mh_debug_reg28) \
+ ((mh_debug_reg28 & MH_DEBUG_REG28_CP_SEND_QUAL_MASK) >> MH_DEBUG_REG28_CP_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG28_GET_VGT_SEND_QUAL(mh_debug_reg28) \
+ ((mh_debug_reg28 & MH_DEBUG_REG28_VGT_SEND_QUAL_MASK) >> MH_DEBUG_REG28_VGT_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG28_GET_TC_SEND_QUAL(mh_debug_reg28) \
+ ((mh_debug_reg28 & MH_DEBUG_REG28_TC_SEND_QUAL_MASK) >> MH_DEBUG_REG28_TC_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG28_GET_TC_SEND_EFF1_QUAL(mh_debug_reg28) \
+ ((mh_debug_reg28 & MH_DEBUG_REG28_TC_SEND_EFF1_QUAL_MASK) >> MH_DEBUG_REG28_TC_SEND_EFF1_QUAL_SHIFT)
+#define MH_DEBUG_REG28_GET_RB_SEND_QUAL(mh_debug_reg28) \
+ ((mh_debug_reg28 & MH_DEBUG_REG28_RB_SEND_QUAL_MASK) >> MH_DEBUG_REG28_RB_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG28_GET_ARB_QUAL(mh_debug_reg28) \
+ ((mh_debug_reg28 & MH_DEBUG_REG28_ARB_QUAL_MASK) >> MH_DEBUG_REG28_ARB_QUAL_SHIFT)
+#define MH_DEBUG_REG28_GET_CP_EFF1_REQ(mh_debug_reg28) \
+ ((mh_debug_reg28 & MH_DEBUG_REG28_CP_EFF1_REQ_MASK) >> MH_DEBUG_REG28_CP_EFF1_REQ_SHIFT)
+#define MH_DEBUG_REG28_GET_VGT_EFF1_REQ(mh_debug_reg28) \
+ ((mh_debug_reg28 & MH_DEBUG_REG28_VGT_EFF1_REQ_MASK) >> MH_DEBUG_REG28_VGT_EFF1_REQ_SHIFT)
+#define MH_DEBUG_REG28_GET_TC_EFF1_REQ(mh_debug_reg28) \
+ ((mh_debug_reg28 & MH_DEBUG_REG28_TC_EFF1_REQ_MASK) >> MH_DEBUG_REG28_TC_EFF1_REQ_SHIFT)
+#define MH_DEBUG_REG28_GET_RB_EFF1_REQ(mh_debug_reg28) \
+ ((mh_debug_reg28 & MH_DEBUG_REG28_RB_EFF1_REQ_MASK) >> MH_DEBUG_REG28_RB_EFF1_REQ_SHIFT)
+#define MH_DEBUG_REG28_GET_EFF1_WIN(mh_debug_reg28) \
+ ((mh_debug_reg28 & MH_DEBUG_REG28_EFF1_WIN_MASK) >> MH_DEBUG_REG28_EFF1_WIN_SHIFT)
+#define MH_DEBUG_REG28_GET_KILL_EFF1(mh_debug_reg28) \
+ ((mh_debug_reg28 & MH_DEBUG_REG28_KILL_EFF1_MASK) >> MH_DEBUG_REG28_KILL_EFF1_SHIFT)
+#define MH_DEBUG_REG28_GET_TCD_NEARFULL_q(mh_debug_reg28) \
+ ((mh_debug_reg28 & MH_DEBUG_REG28_TCD_NEARFULL_q_MASK) >> MH_DEBUG_REG28_TCD_NEARFULL_q_SHIFT)
+#define MH_DEBUG_REG28_GET_TC_ARB_HOLD(mh_debug_reg28) \
+ ((mh_debug_reg28 & MH_DEBUG_REG28_TC_ARB_HOLD_MASK) >> MH_DEBUG_REG28_TC_ARB_HOLD_SHIFT)
+#define MH_DEBUG_REG28_GET_ARB_HOLD(mh_debug_reg28) \
+ ((mh_debug_reg28 & MH_DEBUG_REG28_ARB_HOLD_MASK) >> MH_DEBUG_REG28_ARB_HOLD_SHIFT)
+#define MH_DEBUG_REG28_GET_ARB_RTR_q(mh_debug_reg28) \
+ ((mh_debug_reg28 & MH_DEBUG_REG28_ARB_RTR_q_MASK) >> MH_DEBUG_REG28_ARB_RTR_q_SHIFT)
+#define MH_DEBUG_REG28_GET_SAME_PAGE_LIMIT_COUNT_q(mh_debug_reg28) \
+ ((mh_debug_reg28 & MH_DEBUG_REG28_SAME_PAGE_LIMIT_COUNT_q_MASK) >> MH_DEBUG_REG28_SAME_PAGE_LIMIT_COUNT_q_SHIFT)
+
+#define MH_DEBUG_REG28_SET_EFF1_WINNER(mh_debug_reg28_reg, eff1_winner) \
+ mh_debug_reg28_reg = (mh_debug_reg28_reg & ~MH_DEBUG_REG28_EFF1_WINNER_MASK) | (eff1_winner << MH_DEBUG_REG28_EFF1_WINNER_SHIFT)
+#define MH_DEBUG_REG28_SET_ARB_WINNER(mh_debug_reg28_reg, arb_winner) \
+ mh_debug_reg28_reg = (mh_debug_reg28_reg & ~MH_DEBUG_REG28_ARB_WINNER_MASK) | (arb_winner << MH_DEBUG_REG28_ARB_WINNER_SHIFT)
+#define MH_DEBUG_REG28_SET_CP_SEND_QUAL(mh_debug_reg28_reg, cp_send_qual) \
+ mh_debug_reg28_reg = (mh_debug_reg28_reg & ~MH_DEBUG_REG28_CP_SEND_QUAL_MASK) | (cp_send_qual << MH_DEBUG_REG28_CP_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG28_SET_VGT_SEND_QUAL(mh_debug_reg28_reg, vgt_send_qual) \
+ mh_debug_reg28_reg = (mh_debug_reg28_reg & ~MH_DEBUG_REG28_VGT_SEND_QUAL_MASK) | (vgt_send_qual << MH_DEBUG_REG28_VGT_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG28_SET_TC_SEND_QUAL(mh_debug_reg28_reg, tc_send_qual) \
+ mh_debug_reg28_reg = (mh_debug_reg28_reg & ~MH_DEBUG_REG28_TC_SEND_QUAL_MASK) | (tc_send_qual << MH_DEBUG_REG28_TC_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG28_SET_TC_SEND_EFF1_QUAL(mh_debug_reg28_reg, tc_send_eff1_qual) \
+ mh_debug_reg28_reg = (mh_debug_reg28_reg & ~MH_DEBUG_REG28_TC_SEND_EFF1_QUAL_MASK) | (tc_send_eff1_qual << MH_DEBUG_REG28_TC_SEND_EFF1_QUAL_SHIFT)
+#define MH_DEBUG_REG28_SET_RB_SEND_QUAL(mh_debug_reg28_reg, rb_send_qual) \
+ mh_debug_reg28_reg = (mh_debug_reg28_reg & ~MH_DEBUG_REG28_RB_SEND_QUAL_MASK) | (rb_send_qual << MH_DEBUG_REG28_RB_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG28_SET_ARB_QUAL(mh_debug_reg28_reg, arb_qual) \
+ mh_debug_reg28_reg = (mh_debug_reg28_reg & ~MH_DEBUG_REG28_ARB_QUAL_MASK) | (arb_qual << MH_DEBUG_REG28_ARB_QUAL_SHIFT)
+#define MH_DEBUG_REG28_SET_CP_EFF1_REQ(mh_debug_reg28_reg, cp_eff1_req) \
+ mh_debug_reg28_reg = (mh_debug_reg28_reg & ~MH_DEBUG_REG28_CP_EFF1_REQ_MASK) | (cp_eff1_req << MH_DEBUG_REG28_CP_EFF1_REQ_SHIFT)
+#define MH_DEBUG_REG28_SET_VGT_EFF1_REQ(mh_debug_reg28_reg, vgt_eff1_req) \
+ mh_debug_reg28_reg = (mh_debug_reg28_reg & ~MH_DEBUG_REG28_VGT_EFF1_REQ_MASK) | (vgt_eff1_req << MH_DEBUG_REG28_VGT_EFF1_REQ_SHIFT)
+#define MH_DEBUG_REG28_SET_TC_EFF1_REQ(mh_debug_reg28_reg, tc_eff1_req) \
+ mh_debug_reg28_reg = (mh_debug_reg28_reg & ~MH_DEBUG_REG28_TC_EFF1_REQ_MASK) | (tc_eff1_req << MH_DEBUG_REG28_TC_EFF1_REQ_SHIFT)
+#define MH_DEBUG_REG28_SET_RB_EFF1_REQ(mh_debug_reg28_reg, rb_eff1_req) \
+ mh_debug_reg28_reg = (mh_debug_reg28_reg & ~MH_DEBUG_REG28_RB_EFF1_REQ_MASK) | (rb_eff1_req << MH_DEBUG_REG28_RB_EFF1_REQ_SHIFT)
+#define MH_DEBUG_REG28_SET_EFF1_WIN(mh_debug_reg28_reg, eff1_win) \
+ mh_debug_reg28_reg = (mh_debug_reg28_reg & ~MH_DEBUG_REG28_EFF1_WIN_MASK) | (eff1_win << MH_DEBUG_REG28_EFF1_WIN_SHIFT)
+#define MH_DEBUG_REG28_SET_KILL_EFF1(mh_debug_reg28_reg, kill_eff1) \
+ mh_debug_reg28_reg = (mh_debug_reg28_reg & ~MH_DEBUG_REG28_KILL_EFF1_MASK) | (kill_eff1 << MH_DEBUG_REG28_KILL_EFF1_SHIFT)
+#define MH_DEBUG_REG28_SET_TCD_NEARFULL_q(mh_debug_reg28_reg, tcd_nearfull_q) \
+ mh_debug_reg28_reg = (mh_debug_reg28_reg & ~MH_DEBUG_REG28_TCD_NEARFULL_q_MASK) | (tcd_nearfull_q << MH_DEBUG_REG28_TCD_NEARFULL_q_SHIFT)
+#define MH_DEBUG_REG28_SET_TC_ARB_HOLD(mh_debug_reg28_reg, tc_arb_hold) \
+ mh_debug_reg28_reg = (mh_debug_reg28_reg & ~MH_DEBUG_REG28_TC_ARB_HOLD_MASK) | (tc_arb_hold << MH_DEBUG_REG28_TC_ARB_HOLD_SHIFT)
+#define MH_DEBUG_REG28_SET_ARB_HOLD(mh_debug_reg28_reg, arb_hold) \
+ mh_debug_reg28_reg = (mh_debug_reg28_reg & ~MH_DEBUG_REG28_ARB_HOLD_MASK) | (arb_hold << MH_DEBUG_REG28_ARB_HOLD_SHIFT)
+#define MH_DEBUG_REG28_SET_ARB_RTR_q(mh_debug_reg28_reg, arb_rtr_q) \
+ mh_debug_reg28_reg = (mh_debug_reg28_reg & ~MH_DEBUG_REG28_ARB_RTR_q_MASK) | (arb_rtr_q << MH_DEBUG_REG28_ARB_RTR_q_SHIFT)
+#define MH_DEBUG_REG28_SET_SAME_PAGE_LIMIT_COUNT_q(mh_debug_reg28_reg, same_page_limit_count_q) \
+ mh_debug_reg28_reg = (mh_debug_reg28_reg & ~MH_DEBUG_REG28_SAME_PAGE_LIMIT_COUNT_q_MASK) | (same_page_limit_count_q << MH_DEBUG_REG28_SAME_PAGE_LIMIT_COUNT_q_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg28_t {
+ unsigned int eff1_winner : MH_DEBUG_REG28_EFF1_WINNER_SIZE;
+ unsigned int arb_winner : MH_DEBUG_REG28_ARB_WINNER_SIZE;
+ unsigned int cp_send_qual : MH_DEBUG_REG28_CP_SEND_QUAL_SIZE;
+ unsigned int vgt_send_qual : MH_DEBUG_REG28_VGT_SEND_QUAL_SIZE;
+ unsigned int tc_send_qual : MH_DEBUG_REG28_TC_SEND_QUAL_SIZE;
+ unsigned int tc_send_eff1_qual : MH_DEBUG_REG28_TC_SEND_EFF1_QUAL_SIZE;
+ unsigned int rb_send_qual : MH_DEBUG_REG28_RB_SEND_QUAL_SIZE;
+ unsigned int arb_qual : MH_DEBUG_REG28_ARB_QUAL_SIZE;
+ unsigned int cp_eff1_req : MH_DEBUG_REG28_CP_EFF1_REQ_SIZE;
+ unsigned int vgt_eff1_req : MH_DEBUG_REG28_VGT_EFF1_REQ_SIZE;
+ unsigned int tc_eff1_req : MH_DEBUG_REG28_TC_EFF1_REQ_SIZE;
+ unsigned int rb_eff1_req : MH_DEBUG_REG28_RB_EFF1_REQ_SIZE;
+ unsigned int eff1_win : MH_DEBUG_REG28_EFF1_WIN_SIZE;
+ unsigned int kill_eff1 : MH_DEBUG_REG28_KILL_EFF1_SIZE;
+ unsigned int tcd_nearfull_q : MH_DEBUG_REG28_TCD_NEARFULL_q_SIZE;
+ unsigned int tc_arb_hold : MH_DEBUG_REG28_TC_ARB_HOLD_SIZE;
+ unsigned int arb_hold : MH_DEBUG_REG28_ARB_HOLD_SIZE;
+ unsigned int arb_rtr_q : MH_DEBUG_REG28_ARB_RTR_q_SIZE;
+ unsigned int same_page_limit_count_q : MH_DEBUG_REG28_SAME_PAGE_LIMIT_COUNT_q_SIZE;
+ } mh_debug_reg28_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg28_t {
+ unsigned int same_page_limit_count_q : MH_DEBUG_REG28_SAME_PAGE_LIMIT_COUNT_q_SIZE;
+ unsigned int arb_rtr_q : MH_DEBUG_REG28_ARB_RTR_q_SIZE;
+ unsigned int arb_hold : MH_DEBUG_REG28_ARB_HOLD_SIZE;
+ unsigned int tc_arb_hold : MH_DEBUG_REG28_TC_ARB_HOLD_SIZE;
+ unsigned int tcd_nearfull_q : MH_DEBUG_REG28_TCD_NEARFULL_q_SIZE;
+ unsigned int kill_eff1 : MH_DEBUG_REG28_KILL_EFF1_SIZE;
+ unsigned int eff1_win : MH_DEBUG_REG28_EFF1_WIN_SIZE;
+ unsigned int rb_eff1_req : MH_DEBUG_REG28_RB_EFF1_REQ_SIZE;
+ unsigned int tc_eff1_req : MH_DEBUG_REG28_TC_EFF1_REQ_SIZE;
+ unsigned int vgt_eff1_req : MH_DEBUG_REG28_VGT_EFF1_REQ_SIZE;
+ unsigned int cp_eff1_req : MH_DEBUG_REG28_CP_EFF1_REQ_SIZE;
+ unsigned int arb_qual : MH_DEBUG_REG28_ARB_QUAL_SIZE;
+ unsigned int rb_send_qual : MH_DEBUG_REG28_RB_SEND_QUAL_SIZE;
+ unsigned int tc_send_eff1_qual : MH_DEBUG_REG28_TC_SEND_EFF1_QUAL_SIZE;
+ unsigned int tc_send_qual : MH_DEBUG_REG28_TC_SEND_QUAL_SIZE;
+ unsigned int vgt_send_qual : MH_DEBUG_REG28_VGT_SEND_QUAL_SIZE;
+ unsigned int cp_send_qual : MH_DEBUG_REG28_CP_SEND_QUAL_SIZE;
+ unsigned int arb_winner : MH_DEBUG_REG28_ARB_WINNER_SIZE;
+ unsigned int eff1_winner : MH_DEBUG_REG28_EFF1_WINNER_SIZE;
+ } mh_debug_reg28_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg28_t f;
+} mh_debug_reg28_u;
+
+
+/*
+ * MH_DEBUG_REG29 struct
+ */
+
+#define MH_DEBUG_REG29_EFF2_LRU_WINNER_out_SIZE 3
+#define MH_DEBUG_REG29_LEAST_RECENT_INDEX_d_SIZE 3
+#define MH_DEBUG_REG29_LEAST_RECENT_d_SIZE 3
+#define MH_DEBUG_REG29_UPDATE_RECENT_STACK_d_SIZE 1
+#define MH_DEBUG_REG29_ARB_HOLD_SIZE 1
+#define MH_DEBUG_REG29_ARB_RTR_q_SIZE 1
+#define MH_DEBUG_REG29_CLNT_REQ_SIZE 5
+#define MH_DEBUG_REG29_RECENT_d_0_SIZE 3
+#define MH_DEBUG_REG29_RECENT_d_1_SIZE 3
+#define MH_DEBUG_REG29_RECENT_d_2_SIZE 3
+#define MH_DEBUG_REG29_RECENT_d_3_SIZE 3
+#define MH_DEBUG_REG29_RECENT_d_4_SIZE 3
+
+#define MH_DEBUG_REG29_EFF2_LRU_WINNER_out_SHIFT 0
+#define MH_DEBUG_REG29_LEAST_RECENT_INDEX_d_SHIFT 3
+#define MH_DEBUG_REG29_LEAST_RECENT_d_SHIFT 6
+#define MH_DEBUG_REG29_UPDATE_RECENT_STACK_d_SHIFT 9
+#define MH_DEBUG_REG29_ARB_HOLD_SHIFT 10
+#define MH_DEBUG_REG29_ARB_RTR_q_SHIFT 11
+#define MH_DEBUG_REG29_CLNT_REQ_SHIFT 12
+#define MH_DEBUG_REG29_RECENT_d_0_SHIFT 17
+#define MH_DEBUG_REG29_RECENT_d_1_SHIFT 20
+#define MH_DEBUG_REG29_RECENT_d_2_SHIFT 23
+#define MH_DEBUG_REG29_RECENT_d_3_SHIFT 26
+#define MH_DEBUG_REG29_RECENT_d_4_SHIFT 29
+
+#define MH_DEBUG_REG29_EFF2_LRU_WINNER_out_MASK 0x00000007
+#define MH_DEBUG_REG29_LEAST_RECENT_INDEX_d_MASK 0x00000038
+#define MH_DEBUG_REG29_LEAST_RECENT_d_MASK 0x000001c0
+#define MH_DEBUG_REG29_UPDATE_RECENT_STACK_d_MASK 0x00000200
+#define MH_DEBUG_REG29_ARB_HOLD_MASK 0x00000400
+#define MH_DEBUG_REG29_ARB_RTR_q_MASK 0x00000800
+#define MH_DEBUG_REG29_CLNT_REQ_MASK 0x0001f000
+#define MH_DEBUG_REG29_RECENT_d_0_MASK 0x000e0000
+#define MH_DEBUG_REG29_RECENT_d_1_MASK 0x00700000
+#define MH_DEBUG_REG29_RECENT_d_2_MASK 0x03800000
+#define MH_DEBUG_REG29_RECENT_d_3_MASK 0x1c000000
+#define MH_DEBUG_REG29_RECENT_d_4_MASK 0xe0000000
+
+#define MH_DEBUG_REG29_MASK \
+ (MH_DEBUG_REG29_EFF2_LRU_WINNER_out_MASK | \
+ MH_DEBUG_REG29_LEAST_RECENT_INDEX_d_MASK | \
+ MH_DEBUG_REG29_LEAST_RECENT_d_MASK | \
+ MH_DEBUG_REG29_UPDATE_RECENT_STACK_d_MASK | \
+ MH_DEBUG_REG29_ARB_HOLD_MASK | \
+ MH_DEBUG_REG29_ARB_RTR_q_MASK | \
+ MH_DEBUG_REG29_CLNT_REQ_MASK | \
+ MH_DEBUG_REG29_RECENT_d_0_MASK | \
+ MH_DEBUG_REG29_RECENT_d_1_MASK | \
+ MH_DEBUG_REG29_RECENT_d_2_MASK | \
+ MH_DEBUG_REG29_RECENT_d_3_MASK | \
+ MH_DEBUG_REG29_RECENT_d_4_MASK)
+
+#define MH_DEBUG_REG29(eff2_lru_winner_out, least_recent_index_d, least_recent_d, update_recent_stack_d, arb_hold, arb_rtr_q, clnt_req, recent_d_0, recent_d_1, recent_d_2, recent_d_3, recent_d_4) \
+ ((eff2_lru_winner_out << MH_DEBUG_REG29_EFF2_LRU_WINNER_out_SHIFT) | \
+ (least_recent_index_d << MH_DEBUG_REG29_LEAST_RECENT_INDEX_d_SHIFT) | \
+ (least_recent_d << MH_DEBUG_REG29_LEAST_RECENT_d_SHIFT) | \
+ (update_recent_stack_d << MH_DEBUG_REG29_UPDATE_RECENT_STACK_d_SHIFT) | \
+ (arb_hold << MH_DEBUG_REG29_ARB_HOLD_SHIFT) | \
+ (arb_rtr_q << MH_DEBUG_REG29_ARB_RTR_q_SHIFT) | \
+ (clnt_req << MH_DEBUG_REG29_CLNT_REQ_SHIFT) | \
+ (recent_d_0 << MH_DEBUG_REG29_RECENT_d_0_SHIFT) | \
+ (recent_d_1 << MH_DEBUG_REG29_RECENT_d_1_SHIFT) | \
+ (recent_d_2 << MH_DEBUG_REG29_RECENT_d_2_SHIFT) | \
+ (recent_d_3 << MH_DEBUG_REG29_RECENT_d_3_SHIFT) | \
+ (recent_d_4 << MH_DEBUG_REG29_RECENT_d_4_SHIFT))
+
+#define MH_DEBUG_REG29_GET_EFF2_LRU_WINNER_out(mh_debug_reg29) \
+ ((mh_debug_reg29 & MH_DEBUG_REG29_EFF2_LRU_WINNER_out_MASK) >> MH_DEBUG_REG29_EFF2_LRU_WINNER_out_SHIFT)
+#define MH_DEBUG_REG29_GET_LEAST_RECENT_INDEX_d(mh_debug_reg29) \
+ ((mh_debug_reg29 & MH_DEBUG_REG29_LEAST_RECENT_INDEX_d_MASK) >> MH_DEBUG_REG29_LEAST_RECENT_INDEX_d_SHIFT)
+#define MH_DEBUG_REG29_GET_LEAST_RECENT_d(mh_debug_reg29) \
+ ((mh_debug_reg29 & MH_DEBUG_REG29_LEAST_RECENT_d_MASK) >> MH_DEBUG_REG29_LEAST_RECENT_d_SHIFT)
+#define MH_DEBUG_REG29_GET_UPDATE_RECENT_STACK_d(mh_debug_reg29) \
+ ((mh_debug_reg29 & MH_DEBUG_REG29_UPDATE_RECENT_STACK_d_MASK) >> MH_DEBUG_REG29_UPDATE_RECENT_STACK_d_SHIFT)
+#define MH_DEBUG_REG29_GET_ARB_HOLD(mh_debug_reg29) \
+ ((mh_debug_reg29 & MH_DEBUG_REG29_ARB_HOLD_MASK) >> MH_DEBUG_REG29_ARB_HOLD_SHIFT)
+#define MH_DEBUG_REG29_GET_ARB_RTR_q(mh_debug_reg29) \
+ ((mh_debug_reg29 & MH_DEBUG_REG29_ARB_RTR_q_MASK) >> MH_DEBUG_REG29_ARB_RTR_q_SHIFT)
+#define MH_DEBUG_REG29_GET_CLNT_REQ(mh_debug_reg29) \
+ ((mh_debug_reg29 & MH_DEBUG_REG29_CLNT_REQ_MASK) >> MH_DEBUG_REG29_CLNT_REQ_SHIFT)
+#define MH_DEBUG_REG29_GET_RECENT_d_0(mh_debug_reg29) \
+ ((mh_debug_reg29 & MH_DEBUG_REG29_RECENT_d_0_MASK) >> MH_DEBUG_REG29_RECENT_d_0_SHIFT)
+#define MH_DEBUG_REG29_GET_RECENT_d_1(mh_debug_reg29) \
+ ((mh_debug_reg29 & MH_DEBUG_REG29_RECENT_d_1_MASK) >> MH_DEBUG_REG29_RECENT_d_1_SHIFT)
+#define MH_DEBUG_REG29_GET_RECENT_d_2(mh_debug_reg29) \
+ ((mh_debug_reg29 & MH_DEBUG_REG29_RECENT_d_2_MASK) >> MH_DEBUG_REG29_RECENT_d_2_SHIFT)
+#define MH_DEBUG_REG29_GET_RECENT_d_3(mh_debug_reg29) \
+ ((mh_debug_reg29 & MH_DEBUG_REG29_RECENT_d_3_MASK) >> MH_DEBUG_REG29_RECENT_d_3_SHIFT)
+#define MH_DEBUG_REG29_GET_RECENT_d_4(mh_debug_reg29) \
+ ((mh_debug_reg29 & MH_DEBUG_REG29_RECENT_d_4_MASK) >> MH_DEBUG_REG29_RECENT_d_4_SHIFT)
+
+#define MH_DEBUG_REG29_SET_EFF2_LRU_WINNER_out(mh_debug_reg29_reg, eff2_lru_winner_out) \
+ mh_debug_reg29_reg = (mh_debug_reg29_reg & ~MH_DEBUG_REG29_EFF2_LRU_WINNER_out_MASK) | (eff2_lru_winner_out << MH_DEBUG_REG29_EFF2_LRU_WINNER_out_SHIFT)
+#define MH_DEBUG_REG29_SET_LEAST_RECENT_INDEX_d(mh_debug_reg29_reg, least_recent_index_d) \
+ mh_debug_reg29_reg = (mh_debug_reg29_reg & ~MH_DEBUG_REG29_LEAST_RECENT_INDEX_d_MASK) | (least_recent_index_d << MH_DEBUG_REG29_LEAST_RECENT_INDEX_d_SHIFT)
+#define MH_DEBUG_REG29_SET_LEAST_RECENT_d(mh_debug_reg29_reg, least_recent_d) \
+ mh_debug_reg29_reg = (mh_debug_reg29_reg & ~MH_DEBUG_REG29_LEAST_RECENT_d_MASK) | (least_recent_d << MH_DEBUG_REG29_LEAST_RECENT_d_SHIFT)
+#define MH_DEBUG_REG29_SET_UPDATE_RECENT_STACK_d(mh_debug_reg29_reg, update_recent_stack_d) \
+ mh_debug_reg29_reg = (mh_debug_reg29_reg & ~MH_DEBUG_REG29_UPDATE_RECENT_STACK_d_MASK) | (update_recent_stack_d << MH_DEBUG_REG29_UPDATE_RECENT_STACK_d_SHIFT)
+#define MH_DEBUG_REG29_SET_ARB_HOLD(mh_debug_reg29_reg, arb_hold) \
+ mh_debug_reg29_reg = (mh_debug_reg29_reg & ~MH_DEBUG_REG29_ARB_HOLD_MASK) | (arb_hold << MH_DEBUG_REG29_ARB_HOLD_SHIFT)
+#define MH_DEBUG_REG29_SET_ARB_RTR_q(mh_debug_reg29_reg, arb_rtr_q) \
+ mh_debug_reg29_reg = (mh_debug_reg29_reg & ~MH_DEBUG_REG29_ARB_RTR_q_MASK) | (arb_rtr_q << MH_DEBUG_REG29_ARB_RTR_q_SHIFT)
+#define MH_DEBUG_REG29_SET_CLNT_REQ(mh_debug_reg29_reg, clnt_req) \
+ mh_debug_reg29_reg = (mh_debug_reg29_reg & ~MH_DEBUG_REG29_CLNT_REQ_MASK) | (clnt_req << MH_DEBUG_REG29_CLNT_REQ_SHIFT)
+#define MH_DEBUG_REG29_SET_RECENT_d_0(mh_debug_reg29_reg, recent_d_0) \
+ mh_debug_reg29_reg = (mh_debug_reg29_reg & ~MH_DEBUG_REG29_RECENT_d_0_MASK) | (recent_d_0 << MH_DEBUG_REG29_RECENT_d_0_SHIFT)
+#define MH_DEBUG_REG29_SET_RECENT_d_1(mh_debug_reg29_reg, recent_d_1) \
+ mh_debug_reg29_reg = (mh_debug_reg29_reg & ~MH_DEBUG_REG29_RECENT_d_1_MASK) | (recent_d_1 << MH_DEBUG_REG29_RECENT_d_1_SHIFT)
+#define MH_DEBUG_REG29_SET_RECENT_d_2(mh_debug_reg29_reg, recent_d_2) \
+ mh_debug_reg29_reg = (mh_debug_reg29_reg & ~MH_DEBUG_REG29_RECENT_d_2_MASK) | (recent_d_2 << MH_DEBUG_REG29_RECENT_d_2_SHIFT)
+#define MH_DEBUG_REG29_SET_RECENT_d_3(mh_debug_reg29_reg, recent_d_3) \
+ mh_debug_reg29_reg = (mh_debug_reg29_reg & ~MH_DEBUG_REG29_RECENT_d_3_MASK) | (recent_d_3 << MH_DEBUG_REG29_RECENT_d_3_SHIFT)
+#define MH_DEBUG_REG29_SET_RECENT_d_4(mh_debug_reg29_reg, recent_d_4) \
+ mh_debug_reg29_reg = (mh_debug_reg29_reg & ~MH_DEBUG_REG29_RECENT_d_4_MASK) | (recent_d_4 << MH_DEBUG_REG29_RECENT_d_4_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg29_t {
+ unsigned int eff2_lru_winner_out : MH_DEBUG_REG29_EFF2_LRU_WINNER_out_SIZE;
+ unsigned int least_recent_index_d : MH_DEBUG_REG29_LEAST_RECENT_INDEX_d_SIZE;
+ unsigned int least_recent_d : MH_DEBUG_REG29_LEAST_RECENT_d_SIZE;
+ unsigned int update_recent_stack_d : MH_DEBUG_REG29_UPDATE_RECENT_STACK_d_SIZE;
+ unsigned int arb_hold : MH_DEBUG_REG29_ARB_HOLD_SIZE;
+ unsigned int arb_rtr_q : MH_DEBUG_REG29_ARB_RTR_q_SIZE;
+ unsigned int clnt_req : MH_DEBUG_REG29_CLNT_REQ_SIZE;
+ unsigned int recent_d_0 : MH_DEBUG_REG29_RECENT_d_0_SIZE;
+ unsigned int recent_d_1 : MH_DEBUG_REG29_RECENT_d_1_SIZE;
+ unsigned int recent_d_2 : MH_DEBUG_REG29_RECENT_d_2_SIZE;
+ unsigned int recent_d_3 : MH_DEBUG_REG29_RECENT_d_3_SIZE;
+ unsigned int recent_d_4 : MH_DEBUG_REG29_RECENT_d_4_SIZE;
+ } mh_debug_reg29_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg29_t {
+ unsigned int recent_d_4 : MH_DEBUG_REG29_RECENT_d_4_SIZE;
+ unsigned int recent_d_3 : MH_DEBUG_REG29_RECENT_d_3_SIZE;
+ unsigned int recent_d_2 : MH_DEBUG_REG29_RECENT_d_2_SIZE;
+ unsigned int recent_d_1 : MH_DEBUG_REG29_RECENT_d_1_SIZE;
+ unsigned int recent_d_0 : MH_DEBUG_REG29_RECENT_d_0_SIZE;
+ unsigned int clnt_req : MH_DEBUG_REG29_CLNT_REQ_SIZE;
+ unsigned int arb_rtr_q : MH_DEBUG_REG29_ARB_RTR_q_SIZE;
+ unsigned int arb_hold : MH_DEBUG_REG29_ARB_HOLD_SIZE;
+ unsigned int update_recent_stack_d : MH_DEBUG_REG29_UPDATE_RECENT_STACK_d_SIZE;
+ unsigned int least_recent_d : MH_DEBUG_REG29_LEAST_RECENT_d_SIZE;
+ unsigned int least_recent_index_d : MH_DEBUG_REG29_LEAST_RECENT_INDEX_d_SIZE;
+ unsigned int eff2_lru_winner_out : MH_DEBUG_REG29_EFF2_LRU_WINNER_out_SIZE;
+ } mh_debug_reg29_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg29_t f;
+} mh_debug_reg29_u;
+
+
+/*
+ * MH_DEBUG_REG30 struct
+ */
+
+#define MH_DEBUG_REG30_TC_ARB_HOLD_SIZE 1
+#define MH_DEBUG_REG30_TC_NOROQ_SAME_ROW_BANK_SIZE 1
+#define MH_DEBUG_REG30_TC_ROQ_SAME_ROW_BANK_SIZE 1
+#define MH_DEBUG_REG30_TCD_NEARFULL_q_SIZE 1
+#define MH_DEBUG_REG30_TCHOLD_IP_q_SIZE 1
+#define MH_DEBUG_REG30_TCHOLD_CNT_q_SIZE 3
+#define MH_DEBUG_REG30_MH_ARBITER_CONFIG_TC_REORDER_ENABLE_SIZE 1
+#define MH_DEBUG_REG30_TC_ROQ_RTR_DBG_q_SIZE 1
+#define MH_DEBUG_REG30_TC_ROQ_SEND_q_SIZE 1
+#define MH_DEBUG_REG30_TC_MH_written_SIZE 1
+#define MH_DEBUG_REG30_TCD_FULLNESS_CNT_q_SIZE 7
+#define MH_DEBUG_REG30_WBURST_ACTIVE_SIZE 1
+#define MH_DEBUG_REG30_WLAST_q_SIZE 1
+#define MH_DEBUG_REG30_WBURST_IP_q_SIZE 1
+#define MH_DEBUG_REG30_WBURST_CNT_q_SIZE 3
+#define MH_DEBUG_REG30_CP_SEND_QUAL_SIZE 1
+#define MH_DEBUG_REG30_CP_MH_write_SIZE 1
+#define MH_DEBUG_REG30_RB_SEND_QUAL_SIZE 1
+#define MH_DEBUG_REG30_PA_SEND_QUAL_SIZE 1
+#define MH_DEBUG_REG30_ARB_WINNER_SIZE 3
+
+#define MH_DEBUG_REG30_TC_ARB_HOLD_SHIFT 0
+#define MH_DEBUG_REG30_TC_NOROQ_SAME_ROW_BANK_SHIFT 1
+#define MH_DEBUG_REG30_TC_ROQ_SAME_ROW_BANK_SHIFT 2
+#define MH_DEBUG_REG30_TCD_NEARFULL_q_SHIFT 3
+#define MH_DEBUG_REG30_TCHOLD_IP_q_SHIFT 4
+#define MH_DEBUG_REG30_TCHOLD_CNT_q_SHIFT 5
+#define MH_DEBUG_REG30_MH_ARBITER_CONFIG_TC_REORDER_ENABLE_SHIFT 8
+#define MH_DEBUG_REG30_TC_ROQ_RTR_DBG_q_SHIFT 9
+#define MH_DEBUG_REG30_TC_ROQ_SEND_q_SHIFT 10
+#define MH_DEBUG_REG30_TC_MH_written_SHIFT 11
+#define MH_DEBUG_REG30_TCD_FULLNESS_CNT_q_SHIFT 12
+#define MH_DEBUG_REG30_WBURST_ACTIVE_SHIFT 19
+#define MH_DEBUG_REG30_WLAST_q_SHIFT 20
+#define MH_DEBUG_REG30_WBURST_IP_q_SHIFT 21
+#define MH_DEBUG_REG30_WBURST_CNT_q_SHIFT 22
+#define MH_DEBUG_REG30_CP_SEND_QUAL_SHIFT 25
+#define MH_DEBUG_REG30_CP_MH_write_SHIFT 26
+#define MH_DEBUG_REG30_RB_SEND_QUAL_SHIFT 27
+#define MH_DEBUG_REG30_PA_SEND_QUAL_SHIFT 28
+#define MH_DEBUG_REG30_ARB_WINNER_SHIFT 29
+
+#define MH_DEBUG_REG30_TC_ARB_HOLD_MASK 0x00000001
+#define MH_DEBUG_REG30_TC_NOROQ_SAME_ROW_BANK_MASK 0x00000002
+#define MH_DEBUG_REG30_TC_ROQ_SAME_ROW_BANK_MASK 0x00000004
+#define MH_DEBUG_REG30_TCD_NEARFULL_q_MASK 0x00000008
+#define MH_DEBUG_REG30_TCHOLD_IP_q_MASK 0x00000010
+#define MH_DEBUG_REG30_TCHOLD_CNT_q_MASK 0x000000e0
+#define MH_DEBUG_REG30_MH_ARBITER_CONFIG_TC_REORDER_ENABLE_MASK 0x00000100
+#define MH_DEBUG_REG30_TC_ROQ_RTR_DBG_q_MASK 0x00000200
+#define MH_DEBUG_REG30_TC_ROQ_SEND_q_MASK 0x00000400
+#define MH_DEBUG_REG30_TC_MH_written_MASK 0x00000800
+#define MH_DEBUG_REG30_TCD_FULLNESS_CNT_q_MASK 0x0007f000
+#define MH_DEBUG_REG30_WBURST_ACTIVE_MASK 0x00080000
+#define MH_DEBUG_REG30_WLAST_q_MASK 0x00100000
+#define MH_DEBUG_REG30_WBURST_IP_q_MASK 0x00200000
+#define MH_DEBUG_REG30_WBURST_CNT_q_MASK 0x01c00000
+#define MH_DEBUG_REG30_CP_SEND_QUAL_MASK 0x02000000
+#define MH_DEBUG_REG30_CP_MH_write_MASK 0x04000000
+#define MH_DEBUG_REG30_RB_SEND_QUAL_MASK 0x08000000
+#define MH_DEBUG_REG30_PA_SEND_QUAL_MASK 0x10000000
+#define MH_DEBUG_REG30_ARB_WINNER_MASK 0xe0000000
+
+#define MH_DEBUG_REG30_MASK \
+ (MH_DEBUG_REG30_TC_ARB_HOLD_MASK | \
+ MH_DEBUG_REG30_TC_NOROQ_SAME_ROW_BANK_MASK | \
+ MH_DEBUG_REG30_TC_ROQ_SAME_ROW_BANK_MASK | \
+ MH_DEBUG_REG30_TCD_NEARFULL_q_MASK | \
+ MH_DEBUG_REG30_TCHOLD_IP_q_MASK | \
+ MH_DEBUG_REG30_TCHOLD_CNT_q_MASK | \
+ MH_DEBUG_REG30_MH_ARBITER_CONFIG_TC_REORDER_ENABLE_MASK | \
+ MH_DEBUG_REG30_TC_ROQ_RTR_DBG_q_MASK | \
+ MH_DEBUG_REG30_TC_ROQ_SEND_q_MASK | \
+ MH_DEBUG_REG30_TC_MH_written_MASK | \
+ MH_DEBUG_REG30_TCD_FULLNESS_CNT_q_MASK | \
+ MH_DEBUG_REG30_WBURST_ACTIVE_MASK | \
+ MH_DEBUG_REG30_WLAST_q_MASK | \
+ MH_DEBUG_REG30_WBURST_IP_q_MASK | \
+ MH_DEBUG_REG30_WBURST_CNT_q_MASK | \
+ MH_DEBUG_REG30_CP_SEND_QUAL_MASK | \
+ MH_DEBUG_REG30_CP_MH_write_MASK | \
+ MH_DEBUG_REG30_RB_SEND_QUAL_MASK | \
+ MH_DEBUG_REG30_PA_SEND_QUAL_MASK | \
+ MH_DEBUG_REG30_ARB_WINNER_MASK)
+
+#define MH_DEBUG_REG30(tc_arb_hold, tc_noroq_same_row_bank, tc_roq_same_row_bank, tcd_nearfull_q, tchold_ip_q, tchold_cnt_q, mh_arbiter_config_tc_reorder_enable, tc_roq_rtr_dbg_q, tc_roq_send_q, tc_mh_written, tcd_fullness_cnt_q, wburst_active, wlast_q, wburst_ip_q, wburst_cnt_q, cp_send_qual, cp_mh_write, rb_send_qual, pa_send_qual, arb_winner) \
+ ((tc_arb_hold << MH_DEBUG_REG30_TC_ARB_HOLD_SHIFT) | \
+ (tc_noroq_same_row_bank << MH_DEBUG_REG30_TC_NOROQ_SAME_ROW_BANK_SHIFT) | \
+ (tc_roq_same_row_bank << MH_DEBUG_REG30_TC_ROQ_SAME_ROW_BANK_SHIFT) | \
+ (tcd_nearfull_q << MH_DEBUG_REG30_TCD_NEARFULL_q_SHIFT) | \
+ (tchold_ip_q << MH_DEBUG_REG30_TCHOLD_IP_q_SHIFT) | \
+ (tchold_cnt_q << MH_DEBUG_REG30_TCHOLD_CNT_q_SHIFT) | \
+ (mh_arbiter_config_tc_reorder_enable << MH_DEBUG_REG30_MH_ARBITER_CONFIG_TC_REORDER_ENABLE_SHIFT) | \
+ (tc_roq_rtr_dbg_q << MH_DEBUG_REG30_TC_ROQ_RTR_DBG_q_SHIFT) | \
+ (tc_roq_send_q << MH_DEBUG_REG30_TC_ROQ_SEND_q_SHIFT) | \
+ (tc_mh_written << MH_DEBUG_REG30_TC_MH_written_SHIFT) | \
+ (tcd_fullness_cnt_q << MH_DEBUG_REG30_TCD_FULLNESS_CNT_q_SHIFT) | \
+ (wburst_active << MH_DEBUG_REG30_WBURST_ACTIVE_SHIFT) | \
+ (wlast_q << MH_DEBUG_REG30_WLAST_q_SHIFT) | \
+ (wburst_ip_q << MH_DEBUG_REG30_WBURST_IP_q_SHIFT) | \
+ (wburst_cnt_q << MH_DEBUG_REG30_WBURST_CNT_q_SHIFT) | \
+ (cp_send_qual << MH_DEBUG_REG30_CP_SEND_QUAL_SHIFT) | \
+ (cp_mh_write << MH_DEBUG_REG30_CP_MH_write_SHIFT) | \
+ (rb_send_qual << MH_DEBUG_REG30_RB_SEND_QUAL_SHIFT) | \
+ (pa_send_qual << MH_DEBUG_REG30_PA_SEND_QUAL_SHIFT) | \
+ (arb_winner << MH_DEBUG_REG30_ARB_WINNER_SHIFT))
+
+#define MH_DEBUG_REG30_GET_TC_ARB_HOLD(mh_debug_reg30) \
+ ((mh_debug_reg30 & MH_DEBUG_REG30_TC_ARB_HOLD_MASK) >> MH_DEBUG_REG30_TC_ARB_HOLD_SHIFT)
+#define MH_DEBUG_REG30_GET_TC_NOROQ_SAME_ROW_BANK(mh_debug_reg30) \
+ ((mh_debug_reg30 & MH_DEBUG_REG30_TC_NOROQ_SAME_ROW_BANK_MASK) >> MH_DEBUG_REG30_TC_NOROQ_SAME_ROW_BANK_SHIFT)
+#define MH_DEBUG_REG30_GET_TC_ROQ_SAME_ROW_BANK(mh_debug_reg30) \
+ ((mh_debug_reg30 & MH_DEBUG_REG30_TC_ROQ_SAME_ROW_BANK_MASK) >> MH_DEBUG_REG30_TC_ROQ_SAME_ROW_BANK_SHIFT)
+#define MH_DEBUG_REG30_GET_TCD_NEARFULL_q(mh_debug_reg30) \
+ ((mh_debug_reg30 & MH_DEBUG_REG30_TCD_NEARFULL_q_MASK) >> MH_DEBUG_REG30_TCD_NEARFULL_q_SHIFT)
+#define MH_DEBUG_REG30_GET_TCHOLD_IP_q(mh_debug_reg30) \
+ ((mh_debug_reg30 & MH_DEBUG_REG30_TCHOLD_IP_q_MASK) >> MH_DEBUG_REG30_TCHOLD_IP_q_SHIFT)
+#define MH_DEBUG_REG30_GET_TCHOLD_CNT_q(mh_debug_reg30) \
+ ((mh_debug_reg30 & MH_DEBUG_REG30_TCHOLD_CNT_q_MASK) >> MH_DEBUG_REG30_TCHOLD_CNT_q_SHIFT)
+#define MH_DEBUG_REG30_GET_MH_ARBITER_CONFIG_TC_REORDER_ENABLE(mh_debug_reg30) \
+ ((mh_debug_reg30 & MH_DEBUG_REG30_MH_ARBITER_CONFIG_TC_REORDER_ENABLE_MASK) >> MH_DEBUG_REG30_MH_ARBITER_CONFIG_TC_REORDER_ENABLE_SHIFT)
+#define MH_DEBUG_REG30_GET_TC_ROQ_RTR_DBG_q(mh_debug_reg30) \
+ ((mh_debug_reg30 & MH_DEBUG_REG30_TC_ROQ_RTR_DBG_q_MASK) >> MH_DEBUG_REG30_TC_ROQ_RTR_DBG_q_SHIFT)
+#define MH_DEBUG_REG30_GET_TC_ROQ_SEND_q(mh_debug_reg30) \
+ ((mh_debug_reg30 & MH_DEBUG_REG30_TC_ROQ_SEND_q_MASK) >> MH_DEBUG_REG30_TC_ROQ_SEND_q_SHIFT)
+#define MH_DEBUG_REG30_GET_TC_MH_written(mh_debug_reg30) \
+ ((mh_debug_reg30 & MH_DEBUG_REG30_TC_MH_written_MASK) >> MH_DEBUG_REG30_TC_MH_written_SHIFT)
+#define MH_DEBUG_REG30_GET_TCD_FULLNESS_CNT_q(mh_debug_reg30) \
+ ((mh_debug_reg30 & MH_DEBUG_REG30_TCD_FULLNESS_CNT_q_MASK) >> MH_DEBUG_REG30_TCD_FULLNESS_CNT_q_SHIFT)
+#define MH_DEBUG_REG30_GET_WBURST_ACTIVE(mh_debug_reg30) \
+ ((mh_debug_reg30 & MH_DEBUG_REG30_WBURST_ACTIVE_MASK) >> MH_DEBUG_REG30_WBURST_ACTIVE_SHIFT)
+#define MH_DEBUG_REG30_GET_WLAST_q(mh_debug_reg30) \
+ ((mh_debug_reg30 & MH_DEBUG_REG30_WLAST_q_MASK) >> MH_DEBUG_REG30_WLAST_q_SHIFT)
+#define MH_DEBUG_REG30_GET_WBURST_IP_q(mh_debug_reg30) \
+ ((mh_debug_reg30 & MH_DEBUG_REG30_WBURST_IP_q_MASK) >> MH_DEBUG_REG30_WBURST_IP_q_SHIFT)
+#define MH_DEBUG_REG30_GET_WBURST_CNT_q(mh_debug_reg30) \
+ ((mh_debug_reg30 & MH_DEBUG_REG30_WBURST_CNT_q_MASK) >> MH_DEBUG_REG30_WBURST_CNT_q_SHIFT)
+#define MH_DEBUG_REG30_GET_CP_SEND_QUAL(mh_debug_reg30) \
+ ((mh_debug_reg30 & MH_DEBUG_REG30_CP_SEND_QUAL_MASK) >> MH_DEBUG_REG30_CP_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG30_GET_CP_MH_write(mh_debug_reg30) \
+ ((mh_debug_reg30 & MH_DEBUG_REG30_CP_MH_write_MASK) >> MH_DEBUG_REG30_CP_MH_write_SHIFT)
+#define MH_DEBUG_REG30_GET_RB_SEND_QUAL(mh_debug_reg30) \
+ ((mh_debug_reg30 & MH_DEBUG_REG30_RB_SEND_QUAL_MASK) >> MH_DEBUG_REG30_RB_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG30_GET_PA_SEND_QUAL(mh_debug_reg30) \
+ ((mh_debug_reg30 & MH_DEBUG_REG30_PA_SEND_QUAL_MASK) >> MH_DEBUG_REG30_PA_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG30_GET_ARB_WINNER(mh_debug_reg30) \
+ ((mh_debug_reg30 & MH_DEBUG_REG30_ARB_WINNER_MASK) >> MH_DEBUG_REG30_ARB_WINNER_SHIFT)
+
+#define MH_DEBUG_REG30_SET_TC_ARB_HOLD(mh_debug_reg30_reg, tc_arb_hold) \
+ mh_debug_reg30_reg = (mh_debug_reg30_reg & ~MH_DEBUG_REG30_TC_ARB_HOLD_MASK) | (tc_arb_hold << MH_DEBUG_REG30_TC_ARB_HOLD_SHIFT)
+#define MH_DEBUG_REG30_SET_TC_NOROQ_SAME_ROW_BANK(mh_debug_reg30_reg, tc_noroq_same_row_bank) \
+ mh_debug_reg30_reg = (mh_debug_reg30_reg & ~MH_DEBUG_REG30_TC_NOROQ_SAME_ROW_BANK_MASK) | (tc_noroq_same_row_bank << MH_DEBUG_REG30_TC_NOROQ_SAME_ROW_BANK_SHIFT)
+#define MH_DEBUG_REG30_SET_TC_ROQ_SAME_ROW_BANK(mh_debug_reg30_reg, tc_roq_same_row_bank) \
+ mh_debug_reg30_reg = (mh_debug_reg30_reg & ~MH_DEBUG_REG30_TC_ROQ_SAME_ROW_BANK_MASK) | (tc_roq_same_row_bank << MH_DEBUG_REG30_TC_ROQ_SAME_ROW_BANK_SHIFT)
+#define MH_DEBUG_REG30_SET_TCD_NEARFULL_q(mh_debug_reg30_reg, tcd_nearfull_q) \
+ mh_debug_reg30_reg = (mh_debug_reg30_reg & ~MH_DEBUG_REG30_TCD_NEARFULL_q_MASK) | (tcd_nearfull_q << MH_DEBUG_REG30_TCD_NEARFULL_q_SHIFT)
+#define MH_DEBUG_REG30_SET_TCHOLD_IP_q(mh_debug_reg30_reg, tchold_ip_q) \
+ mh_debug_reg30_reg = (mh_debug_reg30_reg & ~MH_DEBUG_REG30_TCHOLD_IP_q_MASK) | (tchold_ip_q << MH_DEBUG_REG30_TCHOLD_IP_q_SHIFT)
+#define MH_DEBUG_REG30_SET_TCHOLD_CNT_q(mh_debug_reg30_reg, tchold_cnt_q) \
+ mh_debug_reg30_reg = (mh_debug_reg30_reg & ~MH_DEBUG_REG30_TCHOLD_CNT_q_MASK) | (tchold_cnt_q << MH_DEBUG_REG30_TCHOLD_CNT_q_SHIFT)
+#define MH_DEBUG_REG30_SET_MH_ARBITER_CONFIG_TC_REORDER_ENABLE(mh_debug_reg30_reg, mh_arbiter_config_tc_reorder_enable) \
+ mh_debug_reg30_reg = (mh_debug_reg30_reg & ~MH_DEBUG_REG30_MH_ARBITER_CONFIG_TC_REORDER_ENABLE_MASK) | (mh_arbiter_config_tc_reorder_enable << MH_DEBUG_REG30_MH_ARBITER_CONFIG_TC_REORDER_ENABLE_SHIFT)
+#define MH_DEBUG_REG30_SET_TC_ROQ_RTR_DBG_q(mh_debug_reg30_reg, tc_roq_rtr_dbg_q) \
+ mh_debug_reg30_reg = (mh_debug_reg30_reg & ~MH_DEBUG_REG30_TC_ROQ_RTR_DBG_q_MASK) | (tc_roq_rtr_dbg_q << MH_DEBUG_REG30_TC_ROQ_RTR_DBG_q_SHIFT)
+#define MH_DEBUG_REG30_SET_TC_ROQ_SEND_q(mh_debug_reg30_reg, tc_roq_send_q) \
+ mh_debug_reg30_reg = (mh_debug_reg30_reg & ~MH_DEBUG_REG30_TC_ROQ_SEND_q_MASK) | (tc_roq_send_q << MH_DEBUG_REG30_TC_ROQ_SEND_q_SHIFT)
+#define MH_DEBUG_REG30_SET_TC_MH_written(mh_debug_reg30_reg, tc_mh_written) \
+ mh_debug_reg30_reg = (mh_debug_reg30_reg & ~MH_DEBUG_REG30_TC_MH_written_MASK) | (tc_mh_written << MH_DEBUG_REG30_TC_MH_written_SHIFT)
+#define MH_DEBUG_REG30_SET_TCD_FULLNESS_CNT_q(mh_debug_reg30_reg, tcd_fullness_cnt_q) \
+ mh_debug_reg30_reg = (mh_debug_reg30_reg & ~MH_DEBUG_REG30_TCD_FULLNESS_CNT_q_MASK) | (tcd_fullness_cnt_q << MH_DEBUG_REG30_TCD_FULLNESS_CNT_q_SHIFT)
+#define MH_DEBUG_REG30_SET_WBURST_ACTIVE(mh_debug_reg30_reg, wburst_active) \
+ mh_debug_reg30_reg = (mh_debug_reg30_reg & ~MH_DEBUG_REG30_WBURST_ACTIVE_MASK) | (wburst_active << MH_DEBUG_REG30_WBURST_ACTIVE_SHIFT)
+#define MH_DEBUG_REG30_SET_WLAST_q(mh_debug_reg30_reg, wlast_q) \
+ mh_debug_reg30_reg = (mh_debug_reg30_reg & ~MH_DEBUG_REG30_WLAST_q_MASK) | (wlast_q << MH_DEBUG_REG30_WLAST_q_SHIFT)
+#define MH_DEBUG_REG30_SET_WBURST_IP_q(mh_debug_reg30_reg, wburst_ip_q) \
+ mh_debug_reg30_reg = (mh_debug_reg30_reg & ~MH_DEBUG_REG30_WBURST_IP_q_MASK) | (wburst_ip_q << MH_DEBUG_REG30_WBURST_IP_q_SHIFT)
+#define MH_DEBUG_REG30_SET_WBURST_CNT_q(mh_debug_reg30_reg, wburst_cnt_q) \
+ mh_debug_reg30_reg = (mh_debug_reg30_reg & ~MH_DEBUG_REG30_WBURST_CNT_q_MASK) | (wburst_cnt_q << MH_DEBUG_REG30_WBURST_CNT_q_SHIFT)
+#define MH_DEBUG_REG30_SET_CP_SEND_QUAL(mh_debug_reg30_reg, cp_send_qual) \
+ mh_debug_reg30_reg = (mh_debug_reg30_reg & ~MH_DEBUG_REG30_CP_SEND_QUAL_MASK) | (cp_send_qual << MH_DEBUG_REG30_CP_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG30_SET_CP_MH_write(mh_debug_reg30_reg, cp_mh_write) \
+ mh_debug_reg30_reg = (mh_debug_reg30_reg & ~MH_DEBUG_REG30_CP_MH_write_MASK) | (cp_mh_write << MH_DEBUG_REG30_CP_MH_write_SHIFT)
+#define MH_DEBUG_REG30_SET_RB_SEND_QUAL(mh_debug_reg30_reg, rb_send_qual) \
+ mh_debug_reg30_reg = (mh_debug_reg30_reg & ~MH_DEBUG_REG30_RB_SEND_QUAL_MASK) | (rb_send_qual << MH_DEBUG_REG30_RB_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG30_SET_PA_SEND_QUAL(mh_debug_reg30_reg, pa_send_qual) \
+ mh_debug_reg30_reg = (mh_debug_reg30_reg & ~MH_DEBUG_REG30_PA_SEND_QUAL_MASK) | (pa_send_qual << MH_DEBUG_REG30_PA_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG30_SET_ARB_WINNER(mh_debug_reg30_reg, arb_winner) \
+ mh_debug_reg30_reg = (mh_debug_reg30_reg & ~MH_DEBUG_REG30_ARB_WINNER_MASK) | (arb_winner << MH_DEBUG_REG30_ARB_WINNER_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg30_t {
+ unsigned int tc_arb_hold : MH_DEBUG_REG30_TC_ARB_HOLD_SIZE;
+ unsigned int tc_noroq_same_row_bank : MH_DEBUG_REG30_TC_NOROQ_SAME_ROW_BANK_SIZE;
+ unsigned int tc_roq_same_row_bank : MH_DEBUG_REG30_TC_ROQ_SAME_ROW_BANK_SIZE;
+ unsigned int tcd_nearfull_q : MH_DEBUG_REG30_TCD_NEARFULL_q_SIZE;
+ unsigned int tchold_ip_q : MH_DEBUG_REG30_TCHOLD_IP_q_SIZE;
+ unsigned int tchold_cnt_q : MH_DEBUG_REG30_TCHOLD_CNT_q_SIZE;
+ unsigned int mh_arbiter_config_tc_reorder_enable : MH_DEBUG_REG30_MH_ARBITER_CONFIG_TC_REORDER_ENABLE_SIZE;
+ unsigned int tc_roq_rtr_dbg_q : MH_DEBUG_REG30_TC_ROQ_RTR_DBG_q_SIZE;
+ unsigned int tc_roq_send_q : MH_DEBUG_REG30_TC_ROQ_SEND_q_SIZE;
+ unsigned int tc_mh_written : MH_DEBUG_REG30_TC_MH_written_SIZE;
+ unsigned int tcd_fullness_cnt_q : MH_DEBUG_REG30_TCD_FULLNESS_CNT_q_SIZE;
+ unsigned int wburst_active : MH_DEBUG_REG30_WBURST_ACTIVE_SIZE;
+ unsigned int wlast_q : MH_DEBUG_REG30_WLAST_q_SIZE;
+ unsigned int wburst_ip_q : MH_DEBUG_REG30_WBURST_IP_q_SIZE;
+ unsigned int wburst_cnt_q : MH_DEBUG_REG30_WBURST_CNT_q_SIZE;
+ unsigned int cp_send_qual : MH_DEBUG_REG30_CP_SEND_QUAL_SIZE;
+ unsigned int cp_mh_write : MH_DEBUG_REG30_CP_MH_write_SIZE;
+ unsigned int rb_send_qual : MH_DEBUG_REG30_RB_SEND_QUAL_SIZE;
+ unsigned int pa_send_qual : MH_DEBUG_REG30_PA_SEND_QUAL_SIZE;
+ unsigned int arb_winner : MH_DEBUG_REG30_ARB_WINNER_SIZE;
+ } mh_debug_reg30_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg30_t {
+ unsigned int arb_winner : MH_DEBUG_REG30_ARB_WINNER_SIZE;
+ unsigned int pa_send_qual : MH_DEBUG_REG30_PA_SEND_QUAL_SIZE;
+ unsigned int rb_send_qual : MH_DEBUG_REG30_RB_SEND_QUAL_SIZE;
+ unsigned int cp_mh_write : MH_DEBUG_REG30_CP_MH_write_SIZE;
+ unsigned int cp_send_qual : MH_DEBUG_REG30_CP_SEND_QUAL_SIZE;
+ unsigned int wburst_cnt_q : MH_DEBUG_REG30_WBURST_CNT_q_SIZE;
+ unsigned int wburst_ip_q : MH_DEBUG_REG30_WBURST_IP_q_SIZE;
+ unsigned int wlast_q : MH_DEBUG_REG30_WLAST_q_SIZE;
+ unsigned int wburst_active : MH_DEBUG_REG30_WBURST_ACTIVE_SIZE;
+ unsigned int tcd_fullness_cnt_q : MH_DEBUG_REG30_TCD_FULLNESS_CNT_q_SIZE;
+ unsigned int tc_mh_written : MH_DEBUG_REG30_TC_MH_written_SIZE;
+ unsigned int tc_roq_send_q : MH_DEBUG_REG30_TC_ROQ_SEND_q_SIZE;
+ unsigned int tc_roq_rtr_dbg_q : MH_DEBUG_REG30_TC_ROQ_RTR_DBG_q_SIZE;
+ unsigned int mh_arbiter_config_tc_reorder_enable : MH_DEBUG_REG30_MH_ARBITER_CONFIG_TC_REORDER_ENABLE_SIZE;
+ unsigned int tchold_cnt_q : MH_DEBUG_REG30_TCHOLD_CNT_q_SIZE;
+ unsigned int tchold_ip_q : MH_DEBUG_REG30_TCHOLD_IP_q_SIZE;
+ unsigned int tcd_nearfull_q : MH_DEBUG_REG30_TCD_NEARFULL_q_SIZE;
+ unsigned int tc_roq_same_row_bank : MH_DEBUG_REG30_TC_ROQ_SAME_ROW_BANK_SIZE;
+ unsigned int tc_noroq_same_row_bank : MH_DEBUG_REG30_TC_NOROQ_SAME_ROW_BANK_SIZE;
+ unsigned int tc_arb_hold : MH_DEBUG_REG30_TC_ARB_HOLD_SIZE;
+ } mh_debug_reg30_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg30_t f;
+} mh_debug_reg30_u;
+
+
+/*
+ * MH_DEBUG_REG31 struct
+ */
+
+#define MH_DEBUG_REG31_RF_ARBITER_CONFIG_q_SIZE 26
+#define MH_DEBUG_REG31_MH_CLNT_AXI_ID_REUSE_MMUr_ID_SIZE 3
+
+#define MH_DEBUG_REG31_RF_ARBITER_CONFIG_q_SHIFT 0
+#define MH_DEBUG_REG31_MH_CLNT_AXI_ID_REUSE_MMUr_ID_SHIFT 26
+
+#define MH_DEBUG_REG31_RF_ARBITER_CONFIG_q_MASK 0x03ffffff
+#define MH_DEBUG_REG31_MH_CLNT_AXI_ID_REUSE_MMUr_ID_MASK 0x1c000000
+
+#define MH_DEBUG_REG31_MASK \
+ (MH_DEBUG_REG31_RF_ARBITER_CONFIG_q_MASK | \
+ MH_DEBUG_REG31_MH_CLNT_AXI_ID_REUSE_MMUr_ID_MASK)
+
+#define MH_DEBUG_REG31(rf_arbiter_config_q, mh_clnt_axi_id_reuse_mmur_id) \
+ ((rf_arbiter_config_q << MH_DEBUG_REG31_RF_ARBITER_CONFIG_q_SHIFT) | \
+ (mh_clnt_axi_id_reuse_mmur_id << MH_DEBUG_REG31_MH_CLNT_AXI_ID_REUSE_MMUr_ID_SHIFT))
+
+#define MH_DEBUG_REG31_GET_RF_ARBITER_CONFIG_q(mh_debug_reg31) \
+ ((mh_debug_reg31 & MH_DEBUG_REG31_RF_ARBITER_CONFIG_q_MASK) >> MH_DEBUG_REG31_RF_ARBITER_CONFIG_q_SHIFT)
+#define MH_DEBUG_REG31_GET_MH_CLNT_AXI_ID_REUSE_MMUr_ID(mh_debug_reg31) \
+ ((mh_debug_reg31 & MH_DEBUG_REG31_MH_CLNT_AXI_ID_REUSE_MMUr_ID_MASK) >> MH_DEBUG_REG31_MH_CLNT_AXI_ID_REUSE_MMUr_ID_SHIFT)
+
+#define MH_DEBUG_REG31_SET_RF_ARBITER_CONFIG_q(mh_debug_reg31_reg, rf_arbiter_config_q) \
+ mh_debug_reg31_reg = (mh_debug_reg31_reg & ~MH_DEBUG_REG31_RF_ARBITER_CONFIG_q_MASK) | (rf_arbiter_config_q << MH_DEBUG_REG31_RF_ARBITER_CONFIG_q_SHIFT)
+#define MH_DEBUG_REG31_SET_MH_CLNT_AXI_ID_REUSE_MMUr_ID(mh_debug_reg31_reg, mh_clnt_axi_id_reuse_mmur_id) \
+ mh_debug_reg31_reg = (mh_debug_reg31_reg & ~MH_DEBUG_REG31_MH_CLNT_AXI_ID_REUSE_MMUr_ID_MASK) | (mh_clnt_axi_id_reuse_mmur_id << MH_DEBUG_REG31_MH_CLNT_AXI_ID_REUSE_MMUr_ID_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg31_t {
+ unsigned int rf_arbiter_config_q : MH_DEBUG_REG31_RF_ARBITER_CONFIG_q_SIZE;
+ unsigned int mh_clnt_axi_id_reuse_mmur_id : MH_DEBUG_REG31_MH_CLNT_AXI_ID_REUSE_MMUr_ID_SIZE;
+ unsigned int : 3;
+ } mh_debug_reg31_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg31_t {
+ unsigned int : 3;
+ unsigned int mh_clnt_axi_id_reuse_mmur_id : MH_DEBUG_REG31_MH_CLNT_AXI_ID_REUSE_MMUr_ID_SIZE;
+ unsigned int rf_arbiter_config_q : MH_DEBUG_REG31_RF_ARBITER_CONFIG_q_SIZE;
+ } mh_debug_reg31_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg31_t f;
+} mh_debug_reg31_u;
+
+
+/*
+ * MH_DEBUG_REG32 struct
+ */
+
+#define MH_DEBUG_REG32_SAME_ROW_BANK_q_SIZE 8
+#define MH_DEBUG_REG32_ROQ_MARK_q_SIZE 8
+#define MH_DEBUG_REG32_ROQ_VALID_q_SIZE 8
+#define MH_DEBUG_REG32_TC_MH_send_SIZE 1
+#define MH_DEBUG_REG32_TC_ROQ_RTR_q_SIZE 1
+#define MH_DEBUG_REG32_KILL_EFF1_SIZE 1
+#define MH_DEBUG_REG32_TC_ROQ_SAME_ROW_BANK_SEL_SIZE 1
+#define MH_DEBUG_REG32_ANY_SAME_ROW_BANK_SIZE 1
+#define MH_DEBUG_REG32_TC_EFF1_QUAL_SIZE 1
+#define MH_DEBUG_REG32_TC_ROQ_EMPTY_SIZE 1
+#define MH_DEBUG_REG32_TC_ROQ_FULL_SIZE 1
+
+#define MH_DEBUG_REG32_SAME_ROW_BANK_q_SHIFT 0
+#define MH_DEBUG_REG32_ROQ_MARK_q_SHIFT 8
+#define MH_DEBUG_REG32_ROQ_VALID_q_SHIFT 16
+#define MH_DEBUG_REG32_TC_MH_send_SHIFT 24
+#define MH_DEBUG_REG32_TC_ROQ_RTR_q_SHIFT 25
+#define MH_DEBUG_REG32_KILL_EFF1_SHIFT 26
+#define MH_DEBUG_REG32_TC_ROQ_SAME_ROW_BANK_SEL_SHIFT 27
+#define MH_DEBUG_REG32_ANY_SAME_ROW_BANK_SHIFT 28
+#define MH_DEBUG_REG32_TC_EFF1_QUAL_SHIFT 29
+#define MH_DEBUG_REG32_TC_ROQ_EMPTY_SHIFT 30
+#define MH_DEBUG_REG32_TC_ROQ_FULL_SHIFT 31
+
+#define MH_DEBUG_REG32_SAME_ROW_BANK_q_MASK 0x000000ff
+#define MH_DEBUG_REG32_ROQ_MARK_q_MASK 0x0000ff00
+#define MH_DEBUG_REG32_ROQ_VALID_q_MASK 0x00ff0000
+#define MH_DEBUG_REG32_TC_MH_send_MASK 0x01000000
+#define MH_DEBUG_REG32_TC_ROQ_RTR_q_MASK 0x02000000
+#define MH_DEBUG_REG32_KILL_EFF1_MASK 0x04000000
+#define MH_DEBUG_REG32_TC_ROQ_SAME_ROW_BANK_SEL_MASK 0x08000000
+#define MH_DEBUG_REG32_ANY_SAME_ROW_BANK_MASK 0x10000000
+#define MH_DEBUG_REG32_TC_EFF1_QUAL_MASK 0x20000000
+#define MH_DEBUG_REG32_TC_ROQ_EMPTY_MASK 0x40000000
+#define MH_DEBUG_REG32_TC_ROQ_FULL_MASK 0x80000000
+
+#define MH_DEBUG_REG32_MASK \
+ (MH_DEBUG_REG32_SAME_ROW_BANK_q_MASK | \
+ MH_DEBUG_REG32_ROQ_MARK_q_MASK | \
+ MH_DEBUG_REG32_ROQ_VALID_q_MASK | \
+ MH_DEBUG_REG32_TC_MH_send_MASK | \
+ MH_DEBUG_REG32_TC_ROQ_RTR_q_MASK | \
+ MH_DEBUG_REG32_KILL_EFF1_MASK | \
+ MH_DEBUG_REG32_TC_ROQ_SAME_ROW_BANK_SEL_MASK | \
+ MH_DEBUG_REG32_ANY_SAME_ROW_BANK_MASK | \
+ MH_DEBUG_REG32_TC_EFF1_QUAL_MASK | \
+ MH_DEBUG_REG32_TC_ROQ_EMPTY_MASK | \
+ MH_DEBUG_REG32_TC_ROQ_FULL_MASK)
+
+#define MH_DEBUG_REG32(same_row_bank_q, roq_mark_q, roq_valid_q, tc_mh_send, tc_roq_rtr_q, kill_eff1, tc_roq_same_row_bank_sel, any_same_row_bank, tc_eff1_qual, tc_roq_empty, tc_roq_full) \
+ ((same_row_bank_q << MH_DEBUG_REG32_SAME_ROW_BANK_q_SHIFT) | \
+ (roq_mark_q << MH_DEBUG_REG32_ROQ_MARK_q_SHIFT) | \
+ (roq_valid_q << MH_DEBUG_REG32_ROQ_VALID_q_SHIFT) | \
+ (tc_mh_send << MH_DEBUG_REG32_TC_MH_send_SHIFT) | \
+ (tc_roq_rtr_q << MH_DEBUG_REG32_TC_ROQ_RTR_q_SHIFT) | \
+ (kill_eff1 << MH_DEBUG_REG32_KILL_EFF1_SHIFT) | \
+ (tc_roq_same_row_bank_sel << MH_DEBUG_REG32_TC_ROQ_SAME_ROW_BANK_SEL_SHIFT) | \
+ (any_same_row_bank << MH_DEBUG_REG32_ANY_SAME_ROW_BANK_SHIFT) | \
+ (tc_eff1_qual << MH_DEBUG_REG32_TC_EFF1_QUAL_SHIFT) | \
+ (tc_roq_empty << MH_DEBUG_REG32_TC_ROQ_EMPTY_SHIFT) | \
+ (tc_roq_full << MH_DEBUG_REG32_TC_ROQ_FULL_SHIFT))
+
+#define MH_DEBUG_REG32_GET_SAME_ROW_BANK_q(mh_debug_reg32) \
+ ((mh_debug_reg32 & MH_DEBUG_REG32_SAME_ROW_BANK_q_MASK) >> MH_DEBUG_REG32_SAME_ROW_BANK_q_SHIFT)
+#define MH_DEBUG_REG32_GET_ROQ_MARK_q(mh_debug_reg32) \
+ ((mh_debug_reg32 & MH_DEBUG_REG32_ROQ_MARK_q_MASK) >> MH_DEBUG_REG32_ROQ_MARK_q_SHIFT)
+#define MH_DEBUG_REG32_GET_ROQ_VALID_q(mh_debug_reg32) \
+ ((mh_debug_reg32 & MH_DEBUG_REG32_ROQ_VALID_q_MASK) >> MH_DEBUG_REG32_ROQ_VALID_q_SHIFT)
+#define MH_DEBUG_REG32_GET_TC_MH_send(mh_debug_reg32) \
+ ((mh_debug_reg32 & MH_DEBUG_REG32_TC_MH_send_MASK) >> MH_DEBUG_REG32_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG32_GET_TC_ROQ_RTR_q(mh_debug_reg32) \
+ ((mh_debug_reg32 & MH_DEBUG_REG32_TC_ROQ_RTR_q_MASK) >> MH_DEBUG_REG32_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG32_GET_KILL_EFF1(mh_debug_reg32) \
+ ((mh_debug_reg32 & MH_DEBUG_REG32_KILL_EFF1_MASK) >> MH_DEBUG_REG32_KILL_EFF1_SHIFT)
+#define MH_DEBUG_REG32_GET_TC_ROQ_SAME_ROW_BANK_SEL(mh_debug_reg32) \
+ ((mh_debug_reg32 & MH_DEBUG_REG32_TC_ROQ_SAME_ROW_BANK_SEL_MASK) >> MH_DEBUG_REG32_TC_ROQ_SAME_ROW_BANK_SEL_SHIFT)
+#define MH_DEBUG_REG32_GET_ANY_SAME_ROW_BANK(mh_debug_reg32) \
+ ((mh_debug_reg32 & MH_DEBUG_REG32_ANY_SAME_ROW_BANK_MASK) >> MH_DEBUG_REG32_ANY_SAME_ROW_BANK_SHIFT)
+#define MH_DEBUG_REG32_GET_TC_EFF1_QUAL(mh_debug_reg32) \
+ ((mh_debug_reg32 & MH_DEBUG_REG32_TC_EFF1_QUAL_MASK) >> MH_DEBUG_REG32_TC_EFF1_QUAL_SHIFT)
+#define MH_DEBUG_REG32_GET_TC_ROQ_EMPTY(mh_debug_reg32) \
+ ((mh_debug_reg32 & MH_DEBUG_REG32_TC_ROQ_EMPTY_MASK) >> MH_DEBUG_REG32_TC_ROQ_EMPTY_SHIFT)
+#define MH_DEBUG_REG32_GET_TC_ROQ_FULL(mh_debug_reg32) \
+ ((mh_debug_reg32 & MH_DEBUG_REG32_TC_ROQ_FULL_MASK) >> MH_DEBUG_REG32_TC_ROQ_FULL_SHIFT)
+
+#define MH_DEBUG_REG32_SET_SAME_ROW_BANK_q(mh_debug_reg32_reg, same_row_bank_q) \
+ mh_debug_reg32_reg = (mh_debug_reg32_reg & ~MH_DEBUG_REG32_SAME_ROW_BANK_q_MASK) | (same_row_bank_q << MH_DEBUG_REG32_SAME_ROW_BANK_q_SHIFT)
+#define MH_DEBUG_REG32_SET_ROQ_MARK_q(mh_debug_reg32_reg, roq_mark_q) \
+ mh_debug_reg32_reg = (mh_debug_reg32_reg & ~MH_DEBUG_REG32_ROQ_MARK_q_MASK) | (roq_mark_q << MH_DEBUG_REG32_ROQ_MARK_q_SHIFT)
+#define MH_DEBUG_REG32_SET_ROQ_VALID_q(mh_debug_reg32_reg, roq_valid_q) \
+ mh_debug_reg32_reg = (mh_debug_reg32_reg & ~MH_DEBUG_REG32_ROQ_VALID_q_MASK) | (roq_valid_q << MH_DEBUG_REG32_ROQ_VALID_q_SHIFT)
+#define MH_DEBUG_REG32_SET_TC_MH_send(mh_debug_reg32_reg, tc_mh_send) \
+ mh_debug_reg32_reg = (mh_debug_reg32_reg & ~MH_DEBUG_REG32_TC_MH_send_MASK) | (tc_mh_send << MH_DEBUG_REG32_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG32_SET_TC_ROQ_RTR_q(mh_debug_reg32_reg, tc_roq_rtr_q) \
+ mh_debug_reg32_reg = (mh_debug_reg32_reg & ~MH_DEBUG_REG32_TC_ROQ_RTR_q_MASK) | (tc_roq_rtr_q << MH_DEBUG_REG32_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG32_SET_KILL_EFF1(mh_debug_reg32_reg, kill_eff1) \
+ mh_debug_reg32_reg = (mh_debug_reg32_reg & ~MH_DEBUG_REG32_KILL_EFF1_MASK) | (kill_eff1 << MH_DEBUG_REG32_KILL_EFF1_SHIFT)
+#define MH_DEBUG_REG32_SET_TC_ROQ_SAME_ROW_BANK_SEL(mh_debug_reg32_reg, tc_roq_same_row_bank_sel) \
+ mh_debug_reg32_reg = (mh_debug_reg32_reg & ~MH_DEBUG_REG32_TC_ROQ_SAME_ROW_BANK_SEL_MASK) | (tc_roq_same_row_bank_sel << MH_DEBUG_REG32_TC_ROQ_SAME_ROW_BANK_SEL_SHIFT)
+#define MH_DEBUG_REG32_SET_ANY_SAME_ROW_BANK(mh_debug_reg32_reg, any_same_row_bank) \
+ mh_debug_reg32_reg = (mh_debug_reg32_reg & ~MH_DEBUG_REG32_ANY_SAME_ROW_BANK_MASK) | (any_same_row_bank << MH_DEBUG_REG32_ANY_SAME_ROW_BANK_SHIFT)
+#define MH_DEBUG_REG32_SET_TC_EFF1_QUAL(mh_debug_reg32_reg, tc_eff1_qual) \
+ mh_debug_reg32_reg = (mh_debug_reg32_reg & ~MH_DEBUG_REG32_TC_EFF1_QUAL_MASK) | (tc_eff1_qual << MH_DEBUG_REG32_TC_EFF1_QUAL_SHIFT)
+#define MH_DEBUG_REG32_SET_TC_ROQ_EMPTY(mh_debug_reg32_reg, tc_roq_empty) \
+ mh_debug_reg32_reg = (mh_debug_reg32_reg & ~MH_DEBUG_REG32_TC_ROQ_EMPTY_MASK) | (tc_roq_empty << MH_DEBUG_REG32_TC_ROQ_EMPTY_SHIFT)
+#define MH_DEBUG_REG32_SET_TC_ROQ_FULL(mh_debug_reg32_reg, tc_roq_full) \
+ mh_debug_reg32_reg = (mh_debug_reg32_reg & ~MH_DEBUG_REG32_TC_ROQ_FULL_MASK) | (tc_roq_full << MH_DEBUG_REG32_TC_ROQ_FULL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg32_t {
+ unsigned int same_row_bank_q : MH_DEBUG_REG32_SAME_ROW_BANK_q_SIZE;
+ unsigned int roq_mark_q : MH_DEBUG_REG32_ROQ_MARK_q_SIZE;
+ unsigned int roq_valid_q : MH_DEBUG_REG32_ROQ_VALID_q_SIZE;
+ unsigned int tc_mh_send : MH_DEBUG_REG32_TC_MH_send_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG32_TC_ROQ_RTR_q_SIZE;
+ unsigned int kill_eff1 : MH_DEBUG_REG32_KILL_EFF1_SIZE;
+ unsigned int tc_roq_same_row_bank_sel : MH_DEBUG_REG32_TC_ROQ_SAME_ROW_BANK_SEL_SIZE;
+ unsigned int any_same_row_bank : MH_DEBUG_REG32_ANY_SAME_ROW_BANK_SIZE;
+ unsigned int tc_eff1_qual : MH_DEBUG_REG32_TC_EFF1_QUAL_SIZE;
+ unsigned int tc_roq_empty : MH_DEBUG_REG32_TC_ROQ_EMPTY_SIZE;
+ unsigned int tc_roq_full : MH_DEBUG_REG32_TC_ROQ_FULL_SIZE;
+ } mh_debug_reg32_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg32_t {
+ unsigned int tc_roq_full : MH_DEBUG_REG32_TC_ROQ_FULL_SIZE;
+ unsigned int tc_roq_empty : MH_DEBUG_REG32_TC_ROQ_EMPTY_SIZE;
+ unsigned int tc_eff1_qual : MH_DEBUG_REG32_TC_EFF1_QUAL_SIZE;
+ unsigned int any_same_row_bank : MH_DEBUG_REG32_ANY_SAME_ROW_BANK_SIZE;
+ unsigned int tc_roq_same_row_bank_sel : MH_DEBUG_REG32_TC_ROQ_SAME_ROW_BANK_SEL_SIZE;
+ unsigned int kill_eff1 : MH_DEBUG_REG32_KILL_EFF1_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG32_TC_ROQ_RTR_q_SIZE;
+ unsigned int tc_mh_send : MH_DEBUG_REG32_TC_MH_send_SIZE;
+ unsigned int roq_valid_q : MH_DEBUG_REG32_ROQ_VALID_q_SIZE;
+ unsigned int roq_mark_q : MH_DEBUG_REG32_ROQ_MARK_q_SIZE;
+ unsigned int same_row_bank_q : MH_DEBUG_REG32_SAME_ROW_BANK_q_SIZE;
+ } mh_debug_reg32_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg32_t f;
+} mh_debug_reg32_u;
+
+
+/*
+ * MH_DEBUG_REG33 struct
+ */
+
+#define MH_DEBUG_REG33_SAME_ROW_BANK_q_SIZE 8
+#define MH_DEBUG_REG33_ROQ_MARK_d_SIZE 8
+#define MH_DEBUG_REG33_ROQ_VALID_d_SIZE 8
+#define MH_DEBUG_REG33_TC_MH_send_SIZE 1
+#define MH_DEBUG_REG33_TC_ROQ_RTR_q_SIZE 1
+#define MH_DEBUG_REG33_KILL_EFF1_SIZE 1
+#define MH_DEBUG_REG33_TC_ROQ_SAME_ROW_BANK_SEL_SIZE 1
+#define MH_DEBUG_REG33_ANY_SAME_ROW_BANK_SIZE 1
+#define MH_DEBUG_REG33_TC_EFF1_QUAL_SIZE 1
+#define MH_DEBUG_REG33_TC_ROQ_EMPTY_SIZE 1
+#define MH_DEBUG_REG33_TC_ROQ_FULL_SIZE 1
+
+#define MH_DEBUG_REG33_SAME_ROW_BANK_q_SHIFT 0
+#define MH_DEBUG_REG33_ROQ_MARK_d_SHIFT 8
+#define MH_DEBUG_REG33_ROQ_VALID_d_SHIFT 16
+#define MH_DEBUG_REG33_TC_MH_send_SHIFT 24
+#define MH_DEBUG_REG33_TC_ROQ_RTR_q_SHIFT 25
+#define MH_DEBUG_REG33_KILL_EFF1_SHIFT 26
+#define MH_DEBUG_REG33_TC_ROQ_SAME_ROW_BANK_SEL_SHIFT 27
+#define MH_DEBUG_REG33_ANY_SAME_ROW_BANK_SHIFT 28
+#define MH_DEBUG_REG33_TC_EFF1_QUAL_SHIFT 29
+#define MH_DEBUG_REG33_TC_ROQ_EMPTY_SHIFT 30
+#define MH_DEBUG_REG33_TC_ROQ_FULL_SHIFT 31
+
+#define MH_DEBUG_REG33_SAME_ROW_BANK_q_MASK 0x000000ff
+#define MH_DEBUG_REG33_ROQ_MARK_d_MASK 0x0000ff00
+#define MH_DEBUG_REG33_ROQ_VALID_d_MASK 0x00ff0000
+#define MH_DEBUG_REG33_TC_MH_send_MASK 0x01000000
+#define MH_DEBUG_REG33_TC_ROQ_RTR_q_MASK 0x02000000
+#define MH_DEBUG_REG33_KILL_EFF1_MASK 0x04000000
+#define MH_DEBUG_REG33_TC_ROQ_SAME_ROW_BANK_SEL_MASK 0x08000000
+#define MH_DEBUG_REG33_ANY_SAME_ROW_BANK_MASK 0x10000000
+#define MH_DEBUG_REG33_TC_EFF1_QUAL_MASK 0x20000000
+#define MH_DEBUG_REG33_TC_ROQ_EMPTY_MASK 0x40000000
+#define MH_DEBUG_REG33_TC_ROQ_FULL_MASK 0x80000000
+
+#define MH_DEBUG_REG33_MASK \
+ (MH_DEBUG_REG33_SAME_ROW_BANK_q_MASK | \
+ MH_DEBUG_REG33_ROQ_MARK_d_MASK | \
+ MH_DEBUG_REG33_ROQ_VALID_d_MASK | \
+ MH_DEBUG_REG33_TC_MH_send_MASK | \
+ MH_DEBUG_REG33_TC_ROQ_RTR_q_MASK | \
+ MH_DEBUG_REG33_KILL_EFF1_MASK | \
+ MH_DEBUG_REG33_TC_ROQ_SAME_ROW_BANK_SEL_MASK | \
+ MH_DEBUG_REG33_ANY_SAME_ROW_BANK_MASK | \
+ MH_DEBUG_REG33_TC_EFF1_QUAL_MASK | \
+ MH_DEBUG_REG33_TC_ROQ_EMPTY_MASK | \
+ MH_DEBUG_REG33_TC_ROQ_FULL_MASK)
+
+#define MH_DEBUG_REG33(same_row_bank_q, roq_mark_d, roq_valid_d, tc_mh_send, tc_roq_rtr_q, kill_eff1, tc_roq_same_row_bank_sel, any_same_row_bank, tc_eff1_qual, tc_roq_empty, tc_roq_full) \
+ ((same_row_bank_q << MH_DEBUG_REG33_SAME_ROW_BANK_q_SHIFT) | \
+ (roq_mark_d << MH_DEBUG_REG33_ROQ_MARK_d_SHIFT) | \
+ (roq_valid_d << MH_DEBUG_REG33_ROQ_VALID_d_SHIFT) | \
+ (tc_mh_send << MH_DEBUG_REG33_TC_MH_send_SHIFT) | \
+ (tc_roq_rtr_q << MH_DEBUG_REG33_TC_ROQ_RTR_q_SHIFT) | \
+ (kill_eff1 << MH_DEBUG_REG33_KILL_EFF1_SHIFT) | \
+ (tc_roq_same_row_bank_sel << MH_DEBUG_REG33_TC_ROQ_SAME_ROW_BANK_SEL_SHIFT) | \
+ (any_same_row_bank << MH_DEBUG_REG33_ANY_SAME_ROW_BANK_SHIFT) | \
+ (tc_eff1_qual << MH_DEBUG_REG33_TC_EFF1_QUAL_SHIFT) | \
+ (tc_roq_empty << MH_DEBUG_REG33_TC_ROQ_EMPTY_SHIFT) | \
+ (tc_roq_full << MH_DEBUG_REG33_TC_ROQ_FULL_SHIFT))
+
+#define MH_DEBUG_REG33_GET_SAME_ROW_BANK_q(mh_debug_reg33) \
+ ((mh_debug_reg33 & MH_DEBUG_REG33_SAME_ROW_BANK_q_MASK) >> MH_DEBUG_REG33_SAME_ROW_BANK_q_SHIFT)
+#define MH_DEBUG_REG33_GET_ROQ_MARK_d(mh_debug_reg33) \
+ ((mh_debug_reg33 & MH_DEBUG_REG33_ROQ_MARK_d_MASK) >> MH_DEBUG_REG33_ROQ_MARK_d_SHIFT)
+#define MH_DEBUG_REG33_GET_ROQ_VALID_d(mh_debug_reg33) \
+ ((mh_debug_reg33 & MH_DEBUG_REG33_ROQ_VALID_d_MASK) >> MH_DEBUG_REG33_ROQ_VALID_d_SHIFT)
+#define MH_DEBUG_REG33_GET_TC_MH_send(mh_debug_reg33) \
+ ((mh_debug_reg33 & MH_DEBUG_REG33_TC_MH_send_MASK) >> MH_DEBUG_REG33_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG33_GET_TC_ROQ_RTR_q(mh_debug_reg33) \
+ ((mh_debug_reg33 & MH_DEBUG_REG33_TC_ROQ_RTR_q_MASK) >> MH_DEBUG_REG33_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG33_GET_KILL_EFF1(mh_debug_reg33) \
+ ((mh_debug_reg33 & MH_DEBUG_REG33_KILL_EFF1_MASK) >> MH_DEBUG_REG33_KILL_EFF1_SHIFT)
+#define MH_DEBUG_REG33_GET_TC_ROQ_SAME_ROW_BANK_SEL(mh_debug_reg33) \
+ ((mh_debug_reg33 & MH_DEBUG_REG33_TC_ROQ_SAME_ROW_BANK_SEL_MASK) >> MH_DEBUG_REG33_TC_ROQ_SAME_ROW_BANK_SEL_SHIFT)
+#define MH_DEBUG_REG33_GET_ANY_SAME_ROW_BANK(mh_debug_reg33) \
+ ((mh_debug_reg33 & MH_DEBUG_REG33_ANY_SAME_ROW_BANK_MASK) >> MH_DEBUG_REG33_ANY_SAME_ROW_BANK_SHIFT)
+#define MH_DEBUG_REG33_GET_TC_EFF1_QUAL(mh_debug_reg33) \
+ ((mh_debug_reg33 & MH_DEBUG_REG33_TC_EFF1_QUAL_MASK) >> MH_DEBUG_REG33_TC_EFF1_QUAL_SHIFT)
+#define MH_DEBUG_REG33_GET_TC_ROQ_EMPTY(mh_debug_reg33) \
+ ((mh_debug_reg33 & MH_DEBUG_REG33_TC_ROQ_EMPTY_MASK) >> MH_DEBUG_REG33_TC_ROQ_EMPTY_SHIFT)
+#define MH_DEBUG_REG33_GET_TC_ROQ_FULL(mh_debug_reg33) \
+ ((mh_debug_reg33 & MH_DEBUG_REG33_TC_ROQ_FULL_MASK) >> MH_DEBUG_REG33_TC_ROQ_FULL_SHIFT)
+
+#define MH_DEBUG_REG33_SET_SAME_ROW_BANK_q(mh_debug_reg33_reg, same_row_bank_q) \
+ mh_debug_reg33_reg = (mh_debug_reg33_reg & ~MH_DEBUG_REG33_SAME_ROW_BANK_q_MASK) | (same_row_bank_q << MH_DEBUG_REG33_SAME_ROW_BANK_q_SHIFT)
+#define MH_DEBUG_REG33_SET_ROQ_MARK_d(mh_debug_reg33_reg, roq_mark_d) \
+ mh_debug_reg33_reg = (mh_debug_reg33_reg & ~MH_DEBUG_REG33_ROQ_MARK_d_MASK) | (roq_mark_d << MH_DEBUG_REG33_ROQ_MARK_d_SHIFT)
+#define MH_DEBUG_REG33_SET_ROQ_VALID_d(mh_debug_reg33_reg, roq_valid_d) \
+ mh_debug_reg33_reg = (mh_debug_reg33_reg & ~MH_DEBUG_REG33_ROQ_VALID_d_MASK) | (roq_valid_d << MH_DEBUG_REG33_ROQ_VALID_d_SHIFT)
+#define MH_DEBUG_REG33_SET_TC_MH_send(mh_debug_reg33_reg, tc_mh_send) \
+ mh_debug_reg33_reg = (mh_debug_reg33_reg & ~MH_DEBUG_REG33_TC_MH_send_MASK) | (tc_mh_send << MH_DEBUG_REG33_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG33_SET_TC_ROQ_RTR_q(mh_debug_reg33_reg, tc_roq_rtr_q) \
+ mh_debug_reg33_reg = (mh_debug_reg33_reg & ~MH_DEBUG_REG33_TC_ROQ_RTR_q_MASK) | (tc_roq_rtr_q << MH_DEBUG_REG33_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG33_SET_KILL_EFF1(mh_debug_reg33_reg, kill_eff1) \
+ mh_debug_reg33_reg = (mh_debug_reg33_reg & ~MH_DEBUG_REG33_KILL_EFF1_MASK) | (kill_eff1 << MH_DEBUG_REG33_KILL_EFF1_SHIFT)
+#define MH_DEBUG_REG33_SET_TC_ROQ_SAME_ROW_BANK_SEL(mh_debug_reg33_reg, tc_roq_same_row_bank_sel) \
+ mh_debug_reg33_reg = (mh_debug_reg33_reg & ~MH_DEBUG_REG33_TC_ROQ_SAME_ROW_BANK_SEL_MASK) | (tc_roq_same_row_bank_sel << MH_DEBUG_REG33_TC_ROQ_SAME_ROW_BANK_SEL_SHIFT)
+#define MH_DEBUG_REG33_SET_ANY_SAME_ROW_BANK(mh_debug_reg33_reg, any_same_row_bank) \
+ mh_debug_reg33_reg = (mh_debug_reg33_reg & ~MH_DEBUG_REG33_ANY_SAME_ROW_BANK_MASK) | (any_same_row_bank << MH_DEBUG_REG33_ANY_SAME_ROW_BANK_SHIFT)
+#define MH_DEBUG_REG33_SET_TC_EFF1_QUAL(mh_debug_reg33_reg, tc_eff1_qual) \
+ mh_debug_reg33_reg = (mh_debug_reg33_reg & ~MH_DEBUG_REG33_TC_EFF1_QUAL_MASK) | (tc_eff1_qual << MH_DEBUG_REG33_TC_EFF1_QUAL_SHIFT)
+#define MH_DEBUG_REG33_SET_TC_ROQ_EMPTY(mh_debug_reg33_reg, tc_roq_empty) \
+ mh_debug_reg33_reg = (mh_debug_reg33_reg & ~MH_DEBUG_REG33_TC_ROQ_EMPTY_MASK) | (tc_roq_empty << MH_DEBUG_REG33_TC_ROQ_EMPTY_SHIFT)
+#define MH_DEBUG_REG33_SET_TC_ROQ_FULL(mh_debug_reg33_reg, tc_roq_full) \
+ mh_debug_reg33_reg = (mh_debug_reg33_reg & ~MH_DEBUG_REG33_TC_ROQ_FULL_MASK) | (tc_roq_full << MH_DEBUG_REG33_TC_ROQ_FULL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg33_t {
+ unsigned int same_row_bank_q : MH_DEBUG_REG33_SAME_ROW_BANK_q_SIZE;
+ unsigned int roq_mark_d : MH_DEBUG_REG33_ROQ_MARK_d_SIZE;
+ unsigned int roq_valid_d : MH_DEBUG_REG33_ROQ_VALID_d_SIZE;
+ unsigned int tc_mh_send : MH_DEBUG_REG33_TC_MH_send_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG33_TC_ROQ_RTR_q_SIZE;
+ unsigned int kill_eff1 : MH_DEBUG_REG33_KILL_EFF1_SIZE;
+ unsigned int tc_roq_same_row_bank_sel : MH_DEBUG_REG33_TC_ROQ_SAME_ROW_BANK_SEL_SIZE;
+ unsigned int any_same_row_bank : MH_DEBUG_REG33_ANY_SAME_ROW_BANK_SIZE;
+ unsigned int tc_eff1_qual : MH_DEBUG_REG33_TC_EFF1_QUAL_SIZE;
+ unsigned int tc_roq_empty : MH_DEBUG_REG33_TC_ROQ_EMPTY_SIZE;
+ unsigned int tc_roq_full : MH_DEBUG_REG33_TC_ROQ_FULL_SIZE;
+ } mh_debug_reg33_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg33_t {
+ unsigned int tc_roq_full : MH_DEBUG_REG33_TC_ROQ_FULL_SIZE;
+ unsigned int tc_roq_empty : MH_DEBUG_REG33_TC_ROQ_EMPTY_SIZE;
+ unsigned int tc_eff1_qual : MH_DEBUG_REG33_TC_EFF1_QUAL_SIZE;
+ unsigned int any_same_row_bank : MH_DEBUG_REG33_ANY_SAME_ROW_BANK_SIZE;
+ unsigned int tc_roq_same_row_bank_sel : MH_DEBUG_REG33_TC_ROQ_SAME_ROW_BANK_SEL_SIZE;
+ unsigned int kill_eff1 : MH_DEBUG_REG33_KILL_EFF1_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG33_TC_ROQ_RTR_q_SIZE;
+ unsigned int tc_mh_send : MH_DEBUG_REG33_TC_MH_send_SIZE;
+ unsigned int roq_valid_d : MH_DEBUG_REG33_ROQ_VALID_d_SIZE;
+ unsigned int roq_mark_d : MH_DEBUG_REG33_ROQ_MARK_d_SIZE;
+ unsigned int same_row_bank_q : MH_DEBUG_REG33_SAME_ROW_BANK_q_SIZE;
+ } mh_debug_reg33_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg33_t f;
+} mh_debug_reg33_u;
+
+
+/*
+ * MH_DEBUG_REG34 struct
+ */
+
+#define MH_DEBUG_REG34_SAME_ROW_BANK_WIN_SIZE 8
+#define MH_DEBUG_REG34_SAME_ROW_BANK_REQ_SIZE 8
+#define MH_DEBUG_REG34_NON_SAME_ROW_BANK_WIN_SIZE 8
+#define MH_DEBUG_REG34_NON_SAME_ROW_BANK_REQ_SIZE 8
+
+#define MH_DEBUG_REG34_SAME_ROW_BANK_WIN_SHIFT 0
+#define MH_DEBUG_REG34_SAME_ROW_BANK_REQ_SHIFT 8
+#define MH_DEBUG_REG34_NON_SAME_ROW_BANK_WIN_SHIFT 16
+#define MH_DEBUG_REG34_NON_SAME_ROW_BANK_REQ_SHIFT 24
+
+#define MH_DEBUG_REG34_SAME_ROW_BANK_WIN_MASK 0x000000ff
+#define MH_DEBUG_REG34_SAME_ROW_BANK_REQ_MASK 0x0000ff00
+#define MH_DEBUG_REG34_NON_SAME_ROW_BANK_WIN_MASK 0x00ff0000
+#define MH_DEBUG_REG34_NON_SAME_ROW_BANK_REQ_MASK 0xff000000
+
+#define MH_DEBUG_REG34_MASK \
+ (MH_DEBUG_REG34_SAME_ROW_BANK_WIN_MASK | \
+ MH_DEBUG_REG34_SAME_ROW_BANK_REQ_MASK | \
+ MH_DEBUG_REG34_NON_SAME_ROW_BANK_WIN_MASK | \
+ MH_DEBUG_REG34_NON_SAME_ROW_BANK_REQ_MASK)
+
+#define MH_DEBUG_REG34(same_row_bank_win, same_row_bank_req, non_same_row_bank_win, non_same_row_bank_req) \
+ ((same_row_bank_win << MH_DEBUG_REG34_SAME_ROW_BANK_WIN_SHIFT) | \
+ (same_row_bank_req << MH_DEBUG_REG34_SAME_ROW_BANK_REQ_SHIFT) | \
+ (non_same_row_bank_win << MH_DEBUG_REG34_NON_SAME_ROW_BANK_WIN_SHIFT) | \
+ (non_same_row_bank_req << MH_DEBUG_REG34_NON_SAME_ROW_BANK_REQ_SHIFT))
+
+#define MH_DEBUG_REG34_GET_SAME_ROW_BANK_WIN(mh_debug_reg34) \
+ ((mh_debug_reg34 & MH_DEBUG_REG34_SAME_ROW_BANK_WIN_MASK) >> MH_DEBUG_REG34_SAME_ROW_BANK_WIN_SHIFT)
+#define MH_DEBUG_REG34_GET_SAME_ROW_BANK_REQ(mh_debug_reg34) \
+ ((mh_debug_reg34 & MH_DEBUG_REG34_SAME_ROW_BANK_REQ_MASK) >> MH_DEBUG_REG34_SAME_ROW_BANK_REQ_SHIFT)
+#define MH_DEBUG_REG34_GET_NON_SAME_ROW_BANK_WIN(mh_debug_reg34) \
+ ((mh_debug_reg34 & MH_DEBUG_REG34_NON_SAME_ROW_BANK_WIN_MASK) >> MH_DEBUG_REG34_NON_SAME_ROW_BANK_WIN_SHIFT)
+#define MH_DEBUG_REG34_GET_NON_SAME_ROW_BANK_REQ(mh_debug_reg34) \
+ ((mh_debug_reg34 & MH_DEBUG_REG34_NON_SAME_ROW_BANK_REQ_MASK) >> MH_DEBUG_REG34_NON_SAME_ROW_BANK_REQ_SHIFT)
+
+#define MH_DEBUG_REG34_SET_SAME_ROW_BANK_WIN(mh_debug_reg34_reg, same_row_bank_win) \
+ mh_debug_reg34_reg = (mh_debug_reg34_reg & ~MH_DEBUG_REG34_SAME_ROW_BANK_WIN_MASK) | (same_row_bank_win << MH_DEBUG_REG34_SAME_ROW_BANK_WIN_SHIFT)
+#define MH_DEBUG_REG34_SET_SAME_ROW_BANK_REQ(mh_debug_reg34_reg, same_row_bank_req) \
+ mh_debug_reg34_reg = (mh_debug_reg34_reg & ~MH_DEBUG_REG34_SAME_ROW_BANK_REQ_MASK) | (same_row_bank_req << MH_DEBUG_REG34_SAME_ROW_BANK_REQ_SHIFT)
+#define MH_DEBUG_REG34_SET_NON_SAME_ROW_BANK_WIN(mh_debug_reg34_reg, non_same_row_bank_win) \
+ mh_debug_reg34_reg = (mh_debug_reg34_reg & ~MH_DEBUG_REG34_NON_SAME_ROW_BANK_WIN_MASK) | (non_same_row_bank_win << MH_DEBUG_REG34_NON_SAME_ROW_BANK_WIN_SHIFT)
+#define MH_DEBUG_REG34_SET_NON_SAME_ROW_BANK_REQ(mh_debug_reg34_reg, non_same_row_bank_req) \
+ mh_debug_reg34_reg = (mh_debug_reg34_reg & ~MH_DEBUG_REG34_NON_SAME_ROW_BANK_REQ_MASK) | (non_same_row_bank_req << MH_DEBUG_REG34_NON_SAME_ROW_BANK_REQ_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg34_t {
+ unsigned int same_row_bank_win : MH_DEBUG_REG34_SAME_ROW_BANK_WIN_SIZE;
+ unsigned int same_row_bank_req : MH_DEBUG_REG34_SAME_ROW_BANK_REQ_SIZE;
+ unsigned int non_same_row_bank_win : MH_DEBUG_REG34_NON_SAME_ROW_BANK_WIN_SIZE;
+ unsigned int non_same_row_bank_req : MH_DEBUG_REG34_NON_SAME_ROW_BANK_REQ_SIZE;
+ } mh_debug_reg34_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg34_t {
+ unsigned int non_same_row_bank_req : MH_DEBUG_REG34_NON_SAME_ROW_BANK_REQ_SIZE;
+ unsigned int non_same_row_bank_win : MH_DEBUG_REG34_NON_SAME_ROW_BANK_WIN_SIZE;
+ unsigned int same_row_bank_req : MH_DEBUG_REG34_SAME_ROW_BANK_REQ_SIZE;
+ unsigned int same_row_bank_win : MH_DEBUG_REG34_SAME_ROW_BANK_WIN_SIZE;
+ } mh_debug_reg34_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg34_t f;
+} mh_debug_reg34_u;
+
+
+/*
+ * MH_DEBUG_REG35 struct
+ */
+
+#define MH_DEBUG_REG35_TC_MH_send_SIZE 1
+#define MH_DEBUG_REG35_TC_ROQ_RTR_q_SIZE 1
+#define MH_DEBUG_REG35_ROQ_MARK_q_0_SIZE 1
+#define MH_DEBUG_REG35_ROQ_VALID_q_0_SIZE 1
+#define MH_DEBUG_REG35_SAME_ROW_BANK_q_0_SIZE 1
+#define MH_DEBUG_REG35_ROQ_ADDR_0_SIZE 27
+
+#define MH_DEBUG_REG35_TC_MH_send_SHIFT 0
+#define MH_DEBUG_REG35_TC_ROQ_RTR_q_SHIFT 1
+#define MH_DEBUG_REG35_ROQ_MARK_q_0_SHIFT 2
+#define MH_DEBUG_REG35_ROQ_VALID_q_0_SHIFT 3
+#define MH_DEBUG_REG35_SAME_ROW_BANK_q_0_SHIFT 4
+#define MH_DEBUG_REG35_ROQ_ADDR_0_SHIFT 5
+
+#define MH_DEBUG_REG35_TC_MH_send_MASK 0x00000001
+#define MH_DEBUG_REG35_TC_ROQ_RTR_q_MASK 0x00000002
+#define MH_DEBUG_REG35_ROQ_MARK_q_0_MASK 0x00000004
+#define MH_DEBUG_REG35_ROQ_VALID_q_0_MASK 0x00000008
+#define MH_DEBUG_REG35_SAME_ROW_BANK_q_0_MASK 0x00000010
+#define MH_DEBUG_REG35_ROQ_ADDR_0_MASK 0xffffffe0
+
+#define MH_DEBUG_REG35_MASK \
+ (MH_DEBUG_REG35_TC_MH_send_MASK | \
+ MH_DEBUG_REG35_TC_ROQ_RTR_q_MASK | \
+ MH_DEBUG_REG35_ROQ_MARK_q_0_MASK | \
+ MH_DEBUG_REG35_ROQ_VALID_q_0_MASK | \
+ MH_DEBUG_REG35_SAME_ROW_BANK_q_0_MASK | \
+ MH_DEBUG_REG35_ROQ_ADDR_0_MASK)
+
+#define MH_DEBUG_REG35(tc_mh_send, tc_roq_rtr_q, roq_mark_q_0, roq_valid_q_0, same_row_bank_q_0, roq_addr_0) \
+ ((tc_mh_send << MH_DEBUG_REG35_TC_MH_send_SHIFT) | \
+ (tc_roq_rtr_q << MH_DEBUG_REG35_TC_ROQ_RTR_q_SHIFT) | \
+ (roq_mark_q_0 << MH_DEBUG_REG35_ROQ_MARK_q_0_SHIFT) | \
+ (roq_valid_q_0 << MH_DEBUG_REG35_ROQ_VALID_q_0_SHIFT) | \
+ (same_row_bank_q_0 << MH_DEBUG_REG35_SAME_ROW_BANK_q_0_SHIFT) | \
+ (roq_addr_0 << MH_DEBUG_REG35_ROQ_ADDR_0_SHIFT))
+
+#define MH_DEBUG_REG35_GET_TC_MH_send(mh_debug_reg35) \
+ ((mh_debug_reg35 & MH_DEBUG_REG35_TC_MH_send_MASK) >> MH_DEBUG_REG35_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG35_GET_TC_ROQ_RTR_q(mh_debug_reg35) \
+ ((mh_debug_reg35 & MH_DEBUG_REG35_TC_ROQ_RTR_q_MASK) >> MH_DEBUG_REG35_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG35_GET_ROQ_MARK_q_0(mh_debug_reg35) \
+ ((mh_debug_reg35 & MH_DEBUG_REG35_ROQ_MARK_q_0_MASK) >> MH_DEBUG_REG35_ROQ_MARK_q_0_SHIFT)
+#define MH_DEBUG_REG35_GET_ROQ_VALID_q_0(mh_debug_reg35) \
+ ((mh_debug_reg35 & MH_DEBUG_REG35_ROQ_VALID_q_0_MASK) >> MH_DEBUG_REG35_ROQ_VALID_q_0_SHIFT)
+#define MH_DEBUG_REG35_GET_SAME_ROW_BANK_q_0(mh_debug_reg35) \
+ ((mh_debug_reg35 & MH_DEBUG_REG35_SAME_ROW_BANK_q_0_MASK) >> MH_DEBUG_REG35_SAME_ROW_BANK_q_0_SHIFT)
+#define MH_DEBUG_REG35_GET_ROQ_ADDR_0(mh_debug_reg35) \
+ ((mh_debug_reg35 & MH_DEBUG_REG35_ROQ_ADDR_0_MASK) >> MH_DEBUG_REG35_ROQ_ADDR_0_SHIFT)
+
+#define MH_DEBUG_REG35_SET_TC_MH_send(mh_debug_reg35_reg, tc_mh_send) \
+ mh_debug_reg35_reg = (mh_debug_reg35_reg & ~MH_DEBUG_REG35_TC_MH_send_MASK) | (tc_mh_send << MH_DEBUG_REG35_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG35_SET_TC_ROQ_RTR_q(mh_debug_reg35_reg, tc_roq_rtr_q) \
+ mh_debug_reg35_reg = (mh_debug_reg35_reg & ~MH_DEBUG_REG35_TC_ROQ_RTR_q_MASK) | (tc_roq_rtr_q << MH_DEBUG_REG35_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG35_SET_ROQ_MARK_q_0(mh_debug_reg35_reg, roq_mark_q_0) \
+ mh_debug_reg35_reg = (mh_debug_reg35_reg & ~MH_DEBUG_REG35_ROQ_MARK_q_0_MASK) | (roq_mark_q_0 << MH_DEBUG_REG35_ROQ_MARK_q_0_SHIFT)
+#define MH_DEBUG_REG35_SET_ROQ_VALID_q_0(mh_debug_reg35_reg, roq_valid_q_0) \
+ mh_debug_reg35_reg = (mh_debug_reg35_reg & ~MH_DEBUG_REG35_ROQ_VALID_q_0_MASK) | (roq_valid_q_0 << MH_DEBUG_REG35_ROQ_VALID_q_0_SHIFT)
+#define MH_DEBUG_REG35_SET_SAME_ROW_BANK_q_0(mh_debug_reg35_reg, same_row_bank_q_0) \
+ mh_debug_reg35_reg = (mh_debug_reg35_reg & ~MH_DEBUG_REG35_SAME_ROW_BANK_q_0_MASK) | (same_row_bank_q_0 << MH_DEBUG_REG35_SAME_ROW_BANK_q_0_SHIFT)
+#define MH_DEBUG_REG35_SET_ROQ_ADDR_0(mh_debug_reg35_reg, roq_addr_0) \
+ mh_debug_reg35_reg = (mh_debug_reg35_reg & ~MH_DEBUG_REG35_ROQ_ADDR_0_MASK) | (roq_addr_0 << MH_DEBUG_REG35_ROQ_ADDR_0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg35_t {
+ unsigned int tc_mh_send : MH_DEBUG_REG35_TC_MH_send_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG35_TC_ROQ_RTR_q_SIZE;
+ unsigned int roq_mark_q_0 : MH_DEBUG_REG35_ROQ_MARK_q_0_SIZE;
+ unsigned int roq_valid_q_0 : MH_DEBUG_REG35_ROQ_VALID_q_0_SIZE;
+ unsigned int same_row_bank_q_0 : MH_DEBUG_REG35_SAME_ROW_BANK_q_0_SIZE;
+ unsigned int roq_addr_0 : MH_DEBUG_REG35_ROQ_ADDR_0_SIZE;
+ } mh_debug_reg35_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg35_t {
+ unsigned int roq_addr_0 : MH_DEBUG_REG35_ROQ_ADDR_0_SIZE;
+ unsigned int same_row_bank_q_0 : MH_DEBUG_REG35_SAME_ROW_BANK_q_0_SIZE;
+ unsigned int roq_valid_q_0 : MH_DEBUG_REG35_ROQ_VALID_q_0_SIZE;
+ unsigned int roq_mark_q_0 : MH_DEBUG_REG35_ROQ_MARK_q_0_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG35_TC_ROQ_RTR_q_SIZE;
+ unsigned int tc_mh_send : MH_DEBUG_REG35_TC_MH_send_SIZE;
+ } mh_debug_reg35_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg35_t f;
+} mh_debug_reg35_u;
+
+
+/*
+ * MH_DEBUG_REG36 struct
+ */
+
+#define MH_DEBUG_REG36_TC_MH_send_SIZE 1
+#define MH_DEBUG_REG36_TC_ROQ_RTR_q_SIZE 1
+#define MH_DEBUG_REG36_ROQ_MARK_q_1_SIZE 1
+#define MH_DEBUG_REG36_ROQ_VALID_q_1_SIZE 1
+#define MH_DEBUG_REG36_SAME_ROW_BANK_q_1_SIZE 1
+#define MH_DEBUG_REG36_ROQ_ADDR_1_SIZE 27
+
+#define MH_DEBUG_REG36_TC_MH_send_SHIFT 0
+#define MH_DEBUG_REG36_TC_ROQ_RTR_q_SHIFT 1
+#define MH_DEBUG_REG36_ROQ_MARK_q_1_SHIFT 2
+#define MH_DEBUG_REG36_ROQ_VALID_q_1_SHIFT 3
+#define MH_DEBUG_REG36_SAME_ROW_BANK_q_1_SHIFT 4
+#define MH_DEBUG_REG36_ROQ_ADDR_1_SHIFT 5
+
+#define MH_DEBUG_REG36_TC_MH_send_MASK 0x00000001
+#define MH_DEBUG_REG36_TC_ROQ_RTR_q_MASK 0x00000002
+#define MH_DEBUG_REG36_ROQ_MARK_q_1_MASK 0x00000004
+#define MH_DEBUG_REG36_ROQ_VALID_q_1_MASK 0x00000008
+#define MH_DEBUG_REG36_SAME_ROW_BANK_q_1_MASK 0x00000010
+#define MH_DEBUG_REG36_ROQ_ADDR_1_MASK 0xffffffe0
+
+#define MH_DEBUG_REG36_MASK \
+ (MH_DEBUG_REG36_TC_MH_send_MASK | \
+ MH_DEBUG_REG36_TC_ROQ_RTR_q_MASK | \
+ MH_DEBUG_REG36_ROQ_MARK_q_1_MASK | \
+ MH_DEBUG_REG36_ROQ_VALID_q_1_MASK | \
+ MH_DEBUG_REG36_SAME_ROW_BANK_q_1_MASK | \
+ MH_DEBUG_REG36_ROQ_ADDR_1_MASK)
+
+#define MH_DEBUG_REG36(tc_mh_send, tc_roq_rtr_q, roq_mark_q_1, roq_valid_q_1, same_row_bank_q_1, roq_addr_1) \
+ ((tc_mh_send << MH_DEBUG_REG36_TC_MH_send_SHIFT) | \
+ (tc_roq_rtr_q << MH_DEBUG_REG36_TC_ROQ_RTR_q_SHIFT) | \
+ (roq_mark_q_1 << MH_DEBUG_REG36_ROQ_MARK_q_1_SHIFT) | \
+ (roq_valid_q_1 << MH_DEBUG_REG36_ROQ_VALID_q_1_SHIFT) | \
+ (same_row_bank_q_1 << MH_DEBUG_REG36_SAME_ROW_BANK_q_1_SHIFT) | \
+ (roq_addr_1 << MH_DEBUG_REG36_ROQ_ADDR_1_SHIFT))
+
+#define MH_DEBUG_REG36_GET_TC_MH_send(mh_debug_reg36) \
+ ((mh_debug_reg36 & MH_DEBUG_REG36_TC_MH_send_MASK) >> MH_DEBUG_REG36_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG36_GET_TC_ROQ_RTR_q(mh_debug_reg36) \
+ ((mh_debug_reg36 & MH_DEBUG_REG36_TC_ROQ_RTR_q_MASK) >> MH_DEBUG_REG36_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG36_GET_ROQ_MARK_q_1(mh_debug_reg36) \
+ ((mh_debug_reg36 & MH_DEBUG_REG36_ROQ_MARK_q_1_MASK) >> MH_DEBUG_REG36_ROQ_MARK_q_1_SHIFT)
+#define MH_DEBUG_REG36_GET_ROQ_VALID_q_1(mh_debug_reg36) \
+ ((mh_debug_reg36 & MH_DEBUG_REG36_ROQ_VALID_q_1_MASK) >> MH_DEBUG_REG36_ROQ_VALID_q_1_SHIFT)
+#define MH_DEBUG_REG36_GET_SAME_ROW_BANK_q_1(mh_debug_reg36) \
+ ((mh_debug_reg36 & MH_DEBUG_REG36_SAME_ROW_BANK_q_1_MASK) >> MH_DEBUG_REG36_SAME_ROW_BANK_q_1_SHIFT)
+#define MH_DEBUG_REG36_GET_ROQ_ADDR_1(mh_debug_reg36) \
+ ((mh_debug_reg36 & MH_DEBUG_REG36_ROQ_ADDR_1_MASK) >> MH_DEBUG_REG36_ROQ_ADDR_1_SHIFT)
+
+#define MH_DEBUG_REG36_SET_TC_MH_send(mh_debug_reg36_reg, tc_mh_send) \
+ mh_debug_reg36_reg = (mh_debug_reg36_reg & ~MH_DEBUG_REG36_TC_MH_send_MASK) | (tc_mh_send << MH_DEBUG_REG36_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG36_SET_TC_ROQ_RTR_q(mh_debug_reg36_reg, tc_roq_rtr_q) \
+ mh_debug_reg36_reg = (mh_debug_reg36_reg & ~MH_DEBUG_REG36_TC_ROQ_RTR_q_MASK) | (tc_roq_rtr_q << MH_DEBUG_REG36_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG36_SET_ROQ_MARK_q_1(mh_debug_reg36_reg, roq_mark_q_1) \
+ mh_debug_reg36_reg = (mh_debug_reg36_reg & ~MH_DEBUG_REG36_ROQ_MARK_q_1_MASK) | (roq_mark_q_1 << MH_DEBUG_REG36_ROQ_MARK_q_1_SHIFT)
+#define MH_DEBUG_REG36_SET_ROQ_VALID_q_1(mh_debug_reg36_reg, roq_valid_q_1) \
+ mh_debug_reg36_reg = (mh_debug_reg36_reg & ~MH_DEBUG_REG36_ROQ_VALID_q_1_MASK) | (roq_valid_q_1 << MH_DEBUG_REG36_ROQ_VALID_q_1_SHIFT)
+#define MH_DEBUG_REG36_SET_SAME_ROW_BANK_q_1(mh_debug_reg36_reg, same_row_bank_q_1) \
+ mh_debug_reg36_reg = (mh_debug_reg36_reg & ~MH_DEBUG_REG36_SAME_ROW_BANK_q_1_MASK) | (same_row_bank_q_1 << MH_DEBUG_REG36_SAME_ROW_BANK_q_1_SHIFT)
+#define MH_DEBUG_REG36_SET_ROQ_ADDR_1(mh_debug_reg36_reg, roq_addr_1) \
+ mh_debug_reg36_reg = (mh_debug_reg36_reg & ~MH_DEBUG_REG36_ROQ_ADDR_1_MASK) | (roq_addr_1 << MH_DEBUG_REG36_ROQ_ADDR_1_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg36_t {
+ unsigned int tc_mh_send : MH_DEBUG_REG36_TC_MH_send_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG36_TC_ROQ_RTR_q_SIZE;
+ unsigned int roq_mark_q_1 : MH_DEBUG_REG36_ROQ_MARK_q_1_SIZE;
+ unsigned int roq_valid_q_1 : MH_DEBUG_REG36_ROQ_VALID_q_1_SIZE;
+ unsigned int same_row_bank_q_1 : MH_DEBUG_REG36_SAME_ROW_BANK_q_1_SIZE;
+ unsigned int roq_addr_1 : MH_DEBUG_REG36_ROQ_ADDR_1_SIZE;
+ } mh_debug_reg36_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg36_t {
+ unsigned int roq_addr_1 : MH_DEBUG_REG36_ROQ_ADDR_1_SIZE;
+ unsigned int same_row_bank_q_1 : MH_DEBUG_REG36_SAME_ROW_BANK_q_1_SIZE;
+ unsigned int roq_valid_q_1 : MH_DEBUG_REG36_ROQ_VALID_q_1_SIZE;
+ unsigned int roq_mark_q_1 : MH_DEBUG_REG36_ROQ_MARK_q_1_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG36_TC_ROQ_RTR_q_SIZE;
+ unsigned int tc_mh_send : MH_DEBUG_REG36_TC_MH_send_SIZE;
+ } mh_debug_reg36_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg36_t f;
+} mh_debug_reg36_u;
+
+
+/*
+ * MH_DEBUG_REG37 struct
+ */
+
+#define MH_DEBUG_REG37_TC_MH_send_SIZE 1
+#define MH_DEBUG_REG37_TC_ROQ_RTR_q_SIZE 1
+#define MH_DEBUG_REG37_ROQ_MARK_q_2_SIZE 1
+#define MH_DEBUG_REG37_ROQ_VALID_q_2_SIZE 1
+#define MH_DEBUG_REG37_SAME_ROW_BANK_q_2_SIZE 1
+#define MH_DEBUG_REG37_ROQ_ADDR_2_SIZE 27
+
+#define MH_DEBUG_REG37_TC_MH_send_SHIFT 0
+#define MH_DEBUG_REG37_TC_ROQ_RTR_q_SHIFT 1
+#define MH_DEBUG_REG37_ROQ_MARK_q_2_SHIFT 2
+#define MH_DEBUG_REG37_ROQ_VALID_q_2_SHIFT 3
+#define MH_DEBUG_REG37_SAME_ROW_BANK_q_2_SHIFT 4
+#define MH_DEBUG_REG37_ROQ_ADDR_2_SHIFT 5
+
+#define MH_DEBUG_REG37_TC_MH_send_MASK 0x00000001
+#define MH_DEBUG_REG37_TC_ROQ_RTR_q_MASK 0x00000002
+#define MH_DEBUG_REG37_ROQ_MARK_q_2_MASK 0x00000004
+#define MH_DEBUG_REG37_ROQ_VALID_q_2_MASK 0x00000008
+#define MH_DEBUG_REG37_SAME_ROW_BANK_q_2_MASK 0x00000010
+#define MH_DEBUG_REG37_ROQ_ADDR_2_MASK 0xffffffe0
+
+#define MH_DEBUG_REG37_MASK \
+ (MH_DEBUG_REG37_TC_MH_send_MASK | \
+ MH_DEBUG_REG37_TC_ROQ_RTR_q_MASK | \
+ MH_DEBUG_REG37_ROQ_MARK_q_2_MASK | \
+ MH_DEBUG_REG37_ROQ_VALID_q_2_MASK | \
+ MH_DEBUG_REG37_SAME_ROW_BANK_q_2_MASK | \
+ MH_DEBUG_REG37_ROQ_ADDR_2_MASK)
+
+#define MH_DEBUG_REG37(tc_mh_send, tc_roq_rtr_q, roq_mark_q_2, roq_valid_q_2, same_row_bank_q_2, roq_addr_2) \
+ ((tc_mh_send << MH_DEBUG_REG37_TC_MH_send_SHIFT) | \
+ (tc_roq_rtr_q << MH_DEBUG_REG37_TC_ROQ_RTR_q_SHIFT) | \
+ (roq_mark_q_2 << MH_DEBUG_REG37_ROQ_MARK_q_2_SHIFT) | \
+ (roq_valid_q_2 << MH_DEBUG_REG37_ROQ_VALID_q_2_SHIFT) | \
+ (same_row_bank_q_2 << MH_DEBUG_REG37_SAME_ROW_BANK_q_2_SHIFT) | \
+ (roq_addr_2 << MH_DEBUG_REG37_ROQ_ADDR_2_SHIFT))
+
+#define MH_DEBUG_REG37_GET_TC_MH_send(mh_debug_reg37) \
+ ((mh_debug_reg37 & MH_DEBUG_REG37_TC_MH_send_MASK) >> MH_DEBUG_REG37_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG37_GET_TC_ROQ_RTR_q(mh_debug_reg37) \
+ ((mh_debug_reg37 & MH_DEBUG_REG37_TC_ROQ_RTR_q_MASK) >> MH_DEBUG_REG37_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG37_GET_ROQ_MARK_q_2(mh_debug_reg37) \
+ ((mh_debug_reg37 & MH_DEBUG_REG37_ROQ_MARK_q_2_MASK) >> MH_DEBUG_REG37_ROQ_MARK_q_2_SHIFT)
+#define MH_DEBUG_REG37_GET_ROQ_VALID_q_2(mh_debug_reg37) \
+ ((mh_debug_reg37 & MH_DEBUG_REG37_ROQ_VALID_q_2_MASK) >> MH_DEBUG_REG37_ROQ_VALID_q_2_SHIFT)
+#define MH_DEBUG_REG37_GET_SAME_ROW_BANK_q_2(mh_debug_reg37) \
+ ((mh_debug_reg37 & MH_DEBUG_REG37_SAME_ROW_BANK_q_2_MASK) >> MH_DEBUG_REG37_SAME_ROW_BANK_q_2_SHIFT)
+#define MH_DEBUG_REG37_GET_ROQ_ADDR_2(mh_debug_reg37) \
+ ((mh_debug_reg37 & MH_DEBUG_REG37_ROQ_ADDR_2_MASK) >> MH_DEBUG_REG37_ROQ_ADDR_2_SHIFT)
+
+#define MH_DEBUG_REG37_SET_TC_MH_send(mh_debug_reg37_reg, tc_mh_send) \
+ mh_debug_reg37_reg = (mh_debug_reg37_reg & ~MH_DEBUG_REG37_TC_MH_send_MASK) | (tc_mh_send << MH_DEBUG_REG37_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG37_SET_TC_ROQ_RTR_q(mh_debug_reg37_reg, tc_roq_rtr_q) \
+ mh_debug_reg37_reg = (mh_debug_reg37_reg & ~MH_DEBUG_REG37_TC_ROQ_RTR_q_MASK) | (tc_roq_rtr_q << MH_DEBUG_REG37_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG37_SET_ROQ_MARK_q_2(mh_debug_reg37_reg, roq_mark_q_2) \
+ mh_debug_reg37_reg = (mh_debug_reg37_reg & ~MH_DEBUG_REG37_ROQ_MARK_q_2_MASK) | (roq_mark_q_2 << MH_DEBUG_REG37_ROQ_MARK_q_2_SHIFT)
+#define MH_DEBUG_REG37_SET_ROQ_VALID_q_2(mh_debug_reg37_reg, roq_valid_q_2) \
+ mh_debug_reg37_reg = (mh_debug_reg37_reg & ~MH_DEBUG_REG37_ROQ_VALID_q_2_MASK) | (roq_valid_q_2 << MH_DEBUG_REG37_ROQ_VALID_q_2_SHIFT)
+#define MH_DEBUG_REG37_SET_SAME_ROW_BANK_q_2(mh_debug_reg37_reg, same_row_bank_q_2) \
+ mh_debug_reg37_reg = (mh_debug_reg37_reg & ~MH_DEBUG_REG37_SAME_ROW_BANK_q_2_MASK) | (same_row_bank_q_2 << MH_DEBUG_REG37_SAME_ROW_BANK_q_2_SHIFT)
+#define MH_DEBUG_REG37_SET_ROQ_ADDR_2(mh_debug_reg37_reg, roq_addr_2) \
+ mh_debug_reg37_reg = (mh_debug_reg37_reg & ~MH_DEBUG_REG37_ROQ_ADDR_2_MASK) | (roq_addr_2 << MH_DEBUG_REG37_ROQ_ADDR_2_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg37_t {
+ unsigned int tc_mh_send : MH_DEBUG_REG37_TC_MH_send_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG37_TC_ROQ_RTR_q_SIZE;
+ unsigned int roq_mark_q_2 : MH_DEBUG_REG37_ROQ_MARK_q_2_SIZE;
+ unsigned int roq_valid_q_2 : MH_DEBUG_REG37_ROQ_VALID_q_2_SIZE;
+ unsigned int same_row_bank_q_2 : MH_DEBUG_REG37_SAME_ROW_BANK_q_2_SIZE;
+ unsigned int roq_addr_2 : MH_DEBUG_REG37_ROQ_ADDR_2_SIZE;
+ } mh_debug_reg37_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg37_t {
+ unsigned int roq_addr_2 : MH_DEBUG_REG37_ROQ_ADDR_2_SIZE;
+ unsigned int same_row_bank_q_2 : MH_DEBUG_REG37_SAME_ROW_BANK_q_2_SIZE;
+ unsigned int roq_valid_q_2 : MH_DEBUG_REG37_ROQ_VALID_q_2_SIZE;
+ unsigned int roq_mark_q_2 : MH_DEBUG_REG37_ROQ_MARK_q_2_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG37_TC_ROQ_RTR_q_SIZE;
+ unsigned int tc_mh_send : MH_DEBUG_REG37_TC_MH_send_SIZE;
+ } mh_debug_reg37_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg37_t f;
+} mh_debug_reg37_u;
+
+
+/*
+ * MH_DEBUG_REG38 struct
+ */
+
+#define MH_DEBUG_REG38_TC_MH_send_SIZE 1
+#define MH_DEBUG_REG38_TC_ROQ_RTR_q_SIZE 1
+#define MH_DEBUG_REG38_ROQ_MARK_q_3_SIZE 1
+#define MH_DEBUG_REG38_ROQ_VALID_q_3_SIZE 1
+#define MH_DEBUG_REG38_SAME_ROW_BANK_q_3_SIZE 1
+#define MH_DEBUG_REG38_ROQ_ADDR_3_SIZE 27
+
+#define MH_DEBUG_REG38_TC_MH_send_SHIFT 0
+#define MH_DEBUG_REG38_TC_ROQ_RTR_q_SHIFT 1
+#define MH_DEBUG_REG38_ROQ_MARK_q_3_SHIFT 2
+#define MH_DEBUG_REG38_ROQ_VALID_q_3_SHIFT 3
+#define MH_DEBUG_REG38_SAME_ROW_BANK_q_3_SHIFT 4
+#define MH_DEBUG_REG38_ROQ_ADDR_3_SHIFT 5
+
+#define MH_DEBUG_REG38_TC_MH_send_MASK 0x00000001
+#define MH_DEBUG_REG38_TC_ROQ_RTR_q_MASK 0x00000002
+#define MH_DEBUG_REG38_ROQ_MARK_q_3_MASK 0x00000004
+#define MH_DEBUG_REG38_ROQ_VALID_q_3_MASK 0x00000008
+#define MH_DEBUG_REG38_SAME_ROW_BANK_q_3_MASK 0x00000010
+#define MH_DEBUG_REG38_ROQ_ADDR_3_MASK 0xffffffe0
+
+#define MH_DEBUG_REG38_MASK \
+ (MH_DEBUG_REG38_TC_MH_send_MASK | \
+ MH_DEBUG_REG38_TC_ROQ_RTR_q_MASK | \
+ MH_DEBUG_REG38_ROQ_MARK_q_3_MASK | \
+ MH_DEBUG_REG38_ROQ_VALID_q_3_MASK | \
+ MH_DEBUG_REG38_SAME_ROW_BANK_q_3_MASK | \
+ MH_DEBUG_REG38_ROQ_ADDR_3_MASK)
+
+#define MH_DEBUG_REG38(tc_mh_send, tc_roq_rtr_q, roq_mark_q_3, roq_valid_q_3, same_row_bank_q_3, roq_addr_3) \
+ ((tc_mh_send << MH_DEBUG_REG38_TC_MH_send_SHIFT) | \
+ (tc_roq_rtr_q << MH_DEBUG_REG38_TC_ROQ_RTR_q_SHIFT) | \
+ (roq_mark_q_3 << MH_DEBUG_REG38_ROQ_MARK_q_3_SHIFT) | \
+ (roq_valid_q_3 << MH_DEBUG_REG38_ROQ_VALID_q_3_SHIFT) | \
+ (same_row_bank_q_3 << MH_DEBUG_REG38_SAME_ROW_BANK_q_3_SHIFT) | \
+ (roq_addr_3 << MH_DEBUG_REG38_ROQ_ADDR_3_SHIFT))
+
+#define MH_DEBUG_REG38_GET_TC_MH_send(mh_debug_reg38) \
+ ((mh_debug_reg38 & MH_DEBUG_REG38_TC_MH_send_MASK) >> MH_DEBUG_REG38_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG38_GET_TC_ROQ_RTR_q(mh_debug_reg38) \
+ ((mh_debug_reg38 & MH_DEBUG_REG38_TC_ROQ_RTR_q_MASK) >> MH_DEBUG_REG38_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG38_GET_ROQ_MARK_q_3(mh_debug_reg38) \
+ ((mh_debug_reg38 & MH_DEBUG_REG38_ROQ_MARK_q_3_MASK) >> MH_DEBUG_REG38_ROQ_MARK_q_3_SHIFT)
+#define MH_DEBUG_REG38_GET_ROQ_VALID_q_3(mh_debug_reg38) \
+ ((mh_debug_reg38 & MH_DEBUG_REG38_ROQ_VALID_q_3_MASK) >> MH_DEBUG_REG38_ROQ_VALID_q_3_SHIFT)
+#define MH_DEBUG_REG38_GET_SAME_ROW_BANK_q_3(mh_debug_reg38) \
+ ((mh_debug_reg38 & MH_DEBUG_REG38_SAME_ROW_BANK_q_3_MASK) >> MH_DEBUG_REG38_SAME_ROW_BANK_q_3_SHIFT)
+#define MH_DEBUG_REG38_GET_ROQ_ADDR_3(mh_debug_reg38) \
+ ((mh_debug_reg38 & MH_DEBUG_REG38_ROQ_ADDR_3_MASK) >> MH_DEBUG_REG38_ROQ_ADDR_3_SHIFT)
+
+#define MH_DEBUG_REG38_SET_TC_MH_send(mh_debug_reg38_reg, tc_mh_send) \
+ mh_debug_reg38_reg = (mh_debug_reg38_reg & ~MH_DEBUG_REG38_TC_MH_send_MASK) | (tc_mh_send << MH_DEBUG_REG38_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG38_SET_TC_ROQ_RTR_q(mh_debug_reg38_reg, tc_roq_rtr_q) \
+ mh_debug_reg38_reg = (mh_debug_reg38_reg & ~MH_DEBUG_REG38_TC_ROQ_RTR_q_MASK) | (tc_roq_rtr_q << MH_DEBUG_REG38_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG38_SET_ROQ_MARK_q_3(mh_debug_reg38_reg, roq_mark_q_3) \
+ mh_debug_reg38_reg = (mh_debug_reg38_reg & ~MH_DEBUG_REG38_ROQ_MARK_q_3_MASK) | (roq_mark_q_3 << MH_DEBUG_REG38_ROQ_MARK_q_3_SHIFT)
+#define MH_DEBUG_REG38_SET_ROQ_VALID_q_3(mh_debug_reg38_reg, roq_valid_q_3) \
+ mh_debug_reg38_reg = (mh_debug_reg38_reg & ~MH_DEBUG_REG38_ROQ_VALID_q_3_MASK) | (roq_valid_q_3 << MH_DEBUG_REG38_ROQ_VALID_q_3_SHIFT)
+#define MH_DEBUG_REG38_SET_SAME_ROW_BANK_q_3(mh_debug_reg38_reg, same_row_bank_q_3) \
+ mh_debug_reg38_reg = (mh_debug_reg38_reg & ~MH_DEBUG_REG38_SAME_ROW_BANK_q_3_MASK) | (same_row_bank_q_3 << MH_DEBUG_REG38_SAME_ROW_BANK_q_3_SHIFT)
+#define MH_DEBUG_REG38_SET_ROQ_ADDR_3(mh_debug_reg38_reg, roq_addr_3) \
+ mh_debug_reg38_reg = (mh_debug_reg38_reg & ~MH_DEBUG_REG38_ROQ_ADDR_3_MASK) | (roq_addr_3 << MH_DEBUG_REG38_ROQ_ADDR_3_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg38_t {
+ unsigned int tc_mh_send : MH_DEBUG_REG38_TC_MH_send_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG38_TC_ROQ_RTR_q_SIZE;
+ unsigned int roq_mark_q_3 : MH_DEBUG_REG38_ROQ_MARK_q_3_SIZE;
+ unsigned int roq_valid_q_3 : MH_DEBUG_REG38_ROQ_VALID_q_3_SIZE;
+ unsigned int same_row_bank_q_3 : MH_DEBUG_REG38_SAME_ROW_BANK_q_3_SIZE;
+ unsigned int roq_addr_3 : MH_DEBUG_REG38_ROQ_ADDR_3_SIZE;
+ } mh_debug_reg38_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg38_t {
+ unsigned int roq_addr_3 : MH_DEBUG_REG38_ROQ_ADDR_3_SIZE;
+ unsigned int same_row_bank_q_3 : MH_DEBUG_REG38_SAME_ROW_BANK_q_3_SIZE;
+ unsigned int roq_valid_q_3 : MH_DEBUG_REG38_ROQ_VALID_q_3_SIZE;
+ unsigned int roq_mark_q_3 : MH_DEBUG_REG38_ROQ_MARK_q_3_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG38_TC_ROQ_RTR_q_SIZE;
+ unsigned int tc_mh_send : MH_DEBUG_REG38_TC_MH_send_SIZE;
+ } mh_debug_reg38_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg38_t f;
+} mh_debug_reg38_u;
+
+
+/*
+ * MH_DEBUG_REG39 struct
+ */
+
+#define MH_DEBUG_REG39_TC_MH_send_SIZE 1
+#define MH_DEBUG_REG39_TC_ROQ_RTR_q_SIZE 1
+#define MH_DEBUG_REG39_ROQ_MARK_q_4_SIZE 1
+#define MH_DEBUG_REG39_ROQ_VALID_q_4_SIZE 1
+#define MH_DEBUG_REG39_SAME_ROW_BANK_q_4_SIZE 1
+#define MH_DEBUG_REG39_ROQ_ADDR_4_SIZE 27
+
+#define MH_DEBUG_REG39_TC_MH_send_SHIFT 0
+#define MH_DEBUG_REG39_TC_ROQ_RTR_q_SHIFT 1
+#define MH_DEBUG_REG39_ROQ_MARK_q_4_SHIFT 2
+#define MH_DEBUG_REG39_ROQ_VALID_q_4_SHIFT 3
+#define MH_DEBUG_REG39_SAME_ROW_BANK_q_4_SHIFT 4
+#define MH_DEBUG_REG39_ROQ_ADDR_4_SHIFT 5
+
+#define MH_DEBUG_REG39_TC_MH_send_MASK 0x00000001
+#define MH_DEBUG_REG39_TC_ROQ_RTR_q_MASK 0x00000002
+#define MH_DEBUG_REG39_ROQ_MARK_q_4_MASK 0x00000004
+#define MH_DEBUG_REG39_ROQ_VALID_q_4_MASK 0x00000008
+#define MH_DEBUG_REG39_SAME_ROW_BANK_q_4_MASK 0x00000010
+#define MH_DEBUG_REG39_ROQ_ADDR_4_MASK 0xffffffe0
+
+#define MH_DEBUG_REG39_MASK \
+ (MH_DEBUG_REG39_TC_MH_send_MASK | \
+ MH_DEBUG_REG39_TC_ROQ_RTR_q_MASK | \
+ MH_DEBUG_REG39_ROQ_MARK_q_4_MASK | \
+ MH_DEBUG_REG39_ROQ_VALID_q_4_MASK | \
+ MH_DEBUG_REG39_SAME_ROW_BANK_q_4_MASK | \
+ MH_DEBUG_REG39_ROQ_ADDR_4_MASK)
+
+#define MH_DEBUG_REG39(tc_mh_send, tc_roq_rtr_q, roq_mark_q_4, roq_valid_q_4, same_row_bank_q_4, roq_addr_4) \
+ ((tc_mh_send << MH_DEBUG_REG39_TC_MH_send_SHIFT) | \
+ (tc_roq_rtr_q << MH_DEBUG_REG39_TC_ROQ_RTR_q_SHIFT) | \
+ (roq_mark_q_4 << MH_DEBUG_REG39_ROQ_MARK_q_4_SHIFT) | \
+ (roq_valid_q_4 << MH_DEBUG_REG39_ROQ_VALID_q_4_SHIFT) | \
+ (same_row_bank_q_4 << MH_DEBUG_REG39_SAME_ROW_BANK_q_4_SHIFT) | \
+ (roq_addr_4 << MH_DEBUG_REG39_ROQ_ADDR_4_SHIFT))
+
+#define MH_DEBUG_REG39_GET_TC_MH_send(mh_debug_reg39) \
+ ((mh_debug_reg39 & MH_DEBUG_REG39_TC_MH_send_MASK) >> MH_DEBUG_REG39_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG39_GET_TC_ROQ_RTR_q(mh_debug_reg39) \
+ ((mh_debug_reg39 & MH_DEBUG_REG39_TC_ROQ_RTR_q_MASK) >> MH_DEBUG_REG39_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG39_GET_ROQ_MARK_q_4(mh_debug_reg39) \
+ ((mh_debug_reg39 & MH_DEBUG_REG39_ROQ_MARK_q_4_MASK) >> MH_DEBUG_REG39_ROQ_MARK_q_4_SHIFT)
+#define MH_DEBUG_REG39_GET_ROQ_VALID_q_4(mh_debug_reg39) \
+ ((mh_debug_reg39 & MH_DEBUG_REG39_ROQ_VALID_q_4_MASK) >> MH_DEBUG_REG39_ROQ_VALID_q_4_SHIFT)
+#define MH_DEBUG_REG39_GET_SAME_ROW_BANK_q_4(mh_debug_reg39) \
+ ((mh_debug_reg39 & MH_DEBUG_REG39_SAME_ROW_BANK_q_4_MASK) >> MH_DEBUG_REG39_SAME_ROW_BANK_q_4_SHIFT)
+#define MH_DEBUG_REG39_GET_ROQ_ADDR_4(mh_debug_reg39) \
+ ((mh_debug_reg39 & MH_DEBUG_REG39_ROQ_ADDR_4_MASK) >> MH_DEBUG_REG39_ROQ_ADDR_4_SHIFT)
+
+#define MH_DEBUG_REG39_SET_TC_MH_send(mh_debug_reg39_reg, tc_mh_send) \
+ mh_debug_reg39_reg = (mh_debug_reg39_reg & ~MH_DEBUG_REG39_TC_MH_send_MASK) | (tc_mh_send << MH_DEBUG_REG39_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG39_SET_TC_ROQ_RTR_q(mh_debug_reg39_reg, tc_roq_rtr_q) \
+ mh_debug_reg39_reg = (mh_debug_reg39_reg & ~MH_DEBUG_REG39_TC_ROQ_RTR_q_MASK) | (tc_roq_rtr_q << MH_DEBUG_REG39_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG39_SET_ROQ_MARK_q_4(mh_debug_reg39_reg, roq_mark_q_4) \
+ mh_debug_reg39_reg = (mh_debug_reg39_reg & ~MH_DEBUG_REG39_ROQ_MARK_q_4_MASK) | (roq_mark_q_4 << MH_DEBUG_REG39_ROQ_MARK_q_4_SHIFT)
+#define MH_DEBUG_REG39_SET_ROQ_VALID_q_4(mh_debug_reg39_reg, roq_valid_q_4) \
+ mh_debug_reg39_reg = (mh_debug_reg39_reg & ~MH_DEBUG_REG39_ROQ_VALID_q_4_MASK) | (roq_valid_q_4 << MH_DEBUG_REG39_ROQ_VALID_q_4_SHIFT)
+#define MH_DEBUG_REG39_SET_SAME_ROW_BANK_q_4(mh_debug_reg39_reg, same_row_bank_q_4) \
+ mh_debug_reg39_reg = (mh_debug_reg39_reg & ~MH_DEBUG_REG39_SAME_ROW_BANK_q_4_MASK) | (same_row_bank_q_4 << MH_DEBUG_REG39_SAME_ROW_BANK_q_4_SHIFT)
+#define MH_DEBUG_REG39_SET_ROQ_ADDR_4(mh_debug_reg39_reg, roq_addr_4) \
+ mh_debug_reg39_reg = (mh_debug_reg39_reg & ~MH_DEBUG_REG39_ROQ_ADDR_4_MASK) | (roq_addr_4 << MH_DEBUG_REG39_ROQ_ADDR_4_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg39_t {
+ unsigned int tc_mh_send : MH_DEBUG_REG39_TC_MH_send_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG39_TC_ROQ_RTR_q_SIZE;
+ unsigned int roq_mark_q_4 : MH_DEBUG_REG39_ROQ_MARK_q_4_SIZE;
+ unsigned int roq_valid_q_4 : MH_DEBUG_REG39_ROQ_VALID_q_4_SIZE;
+ unsigned int same_row_bank_q_4 : MH_DEBUG_REG39_SAME_ROW_BANK_q_4_SIZE;
+ unsigned int roq_addr_4 : MH_DEBUG_REG39_ROQ_ADDR_4_SIZE;
+ } mh_debug_reg39_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg39_t {
+ unsigned int roq_addr_4 : MH_DEBUG_REG39_ROQ_ADDR_4_SIZE;
+ unsigned int same_row_bank_q_4 : MH_DEBUG_REG39_SAME_ROW_BANK_q_4_SIZE;
+ unsigned int roq_valid_q_4 : MH_DEBUG_REG39_ROQ_VALID_q_4_SIZE;
+ unsigned int roq_mark_q_4 : MH_DEBUG_REG39_ROQ_MARK_q_4_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG39_TC_ROQ_RTR_q_SIZE;
+ unsigned int tc_mh_send : MH_DEBUG_REG39_TC_MH_send_SIZE;
+ } mh_debug_reg39_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg39_t f;
+} mh_debug_reg39_u;
+
+
+/*
+ * MH_DEBUG_REG40 struct
+ */
+
+#define MH_DEBUG_REG40_TC_MH_send_SIZE 1
+#define MH_DEBUG_REG40_TC_ROQ_RTR_q_SIZE 1
+#define MH_DEBUG_REG40_ROQ_MARK_q_5_SIZE 1
+#define MH_DEBUG_REG40_ROQ_VALID_q_5_SIZE 1
+#define MH_DEBUG_REG40_SAME_ROW_BANK_q_5_SIZE 1
+#define MH_DEBUG_REG40_ROQ_ADDR_5_SIZE 27
+
+#define MH_DEBUG_REG40_TC_MH_send_SHIFT 0
+#define MH_DEBUG_REG40_TC_ROQ_RTR_q_SHIFT 1
+#define MH_DEBUG_REG40_ROQ_MARK_q_5_SHIFT 2
+#define MH_DEBUG_REG40_ROQ_VALID_q_5_SHIFT 3
+#define MH_DEBUG_REG40_SAME_ROW_BANK_q_5_SHIFT 4
+#define MH_DEBUG_REG40_ROQ_ADDR_5_SHIFT 5
+
+#define MH_DEBUG_REG40_TC_MH_send_MASK 0x00000001
+#define MH_DEBUG_REG40_TC_ROQ_RTR_q_MASK 0x00000002
+#define MH_DEBUG_REG40_ROQ_MARK_q_5_MASK 0x00000004
+#define MH_DEBUG_REG40_ROQ_VALID_q_5_MASK 0x00000008
+#define MH_DEBUG_REG40_SAME_ROW_BANK_q_5_MASK 0x00000010
+#define MH_DEBUG_REG40_ROQ_ADDR_5_MASK 0xffffffe0
+
+#define MH_DEBUG_REG40_MASK \
+ (MH_DEBUG_REG40_TC_MH_send_MASK | \
+ MH_DEBUG_REG40_TC_ROQ_RTR_q_MASK | \
+ MH_DEBUG_REG40_ROQ_MARK_q_5_MASK | \
+ MH_DEBUG_REG40_ROQ_VALID_q_5_MASK | \
+ MH_DEBUG_REG40_SAME_ROW_BANK_q_5_MASK | \
+ MH_DEBUG_REG40_ROQ_ADDR_5_MASK)
+
+#define MH_DEBUG_REG40(tc_mh_send, tc_roq_rtr_q, roq_mark_q_5, roq_valid_q_5, same_row_bank_q_5, roq_addr_5) \
+ ((tc_mh_send << MH_DEBUG_REG40_TC_MH_send_SHIFT) | \
+ (tc_roq_rtr_q << MH_DEBUG_REG40_TC_ROQ_RTR_q_SHIFT) | \
+ (roq_mark_q_5 << MH_DEBUG_REG40_ROQ_MARK_q_5_SHIFT) | \
+ (roq_valid_q_5 << MH_DEBUG_REG40_ROQ_VALID_q_5_SHIFT) | \
+ (same_row_bank_q_5 << MH_DEBUG_REG40_SAME_ROW_BANK_q_5_SHIFT) | \
+ (roq_addr_5 << MH_DEBUG_REG40_ROQ_ADDR_5_SHIFT))
+
+#define MH_DEBUG_REG40_GET_TC_MH_send(mh_debug_reg40) \
+ ((mh_debug_reg40 & MH_DEBUG_REG40_TC_MH_send_MASK) >> MH_DEBUG_REG40_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG40_GET_TC_ROQ_RTR_q(mh_debug_reg40) \
+ ((mh_debug_reg40 & MH_DEBUG_REG40_TC_ROQ_RTR_q_MASK) >> MH_DEBUG_REG40_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG40_GET_ROQ_MARK_q_5(mh_debug_reg40) \
+ ((mh_debug_reg40 & MH_DEBUG_REG40_ROQ_MARK_q_5_MASK) >> MH_DEBUG_REG40_ROQ_MARK_q_5_SHIFT)
+#define MH_DEBUG_REG40_GET_ROQ_VALID_q_5(mh_debug_reg40) \
+ ((mh_debug_reg40 & MH_DEBUG_REG40_ROQ_VALID_q_5_MASK) >> MH_DEBUG_REG40_ROQ_VALID_q_5_SHIFT)
+#define MH_DEBUG_REG40_GET_SAME_ROW_BANK_q_5(mh_debug_reg40) \
+ ((mh_debug_reg40 & MH_DEBUG_REG40_SAME_ROW_BANK_q_5_MASK) >> MH_DEBUG_REG40_SAME_ROW_BANK_q_5_SHIFT)
+#define MH_DEBUG_REG40_GET_ROQ_ADDR_5(mh_debug_reg40) \
+ ((mh_debug_reg40 & MH_DEBUG_REG40_ROQ_ADDR_5_MASK) >> MH_DEBUG_REG40_ROQ_ADDR_5_SHIFT)
+
+#define MH_DEBUG_REG40_SET_TC_MH_send(mh_debug_reg40_reg, tc_mh_send) \
+ mh_debug_reg40_reg = (mh_debug_reg40_reg & ~MH_DEBUG_REG40_TC_MH_send_MASK) | (tc_mh_send << MH_DEBUG_REG40_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG40_SET_TC_ROQ_RTR_q(mh_debug_reg40_reg, tc_roq_rtr_q) \
+ mh_debug_reg40_reg = (mh_debug_reg40_reg & ~MH_DEBUG_REG40_TC_ROQ_RTR_q_MASK) | (tc_roq_rtr_q << MH_DEBUG_REG40_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG40_SET_ROQ_MARK_q_5(mh_debug_reg40_reg, roq_mark_q_5) \
+ mh_debug_reg40_reg = (mh_debug_reg40_reg & ~MH_DEBUG_REG40_ROQ_MARK_q_5_MASK) | (roq_mark_q_5 << MH_DEBUG_REG40_ROQ_MARK_q_5_SHIFT)
+#define MH_DEBUG_REG40_SET_ROQ_VALID_q_5(mh_debug_reg40_reg, roq_valid_q_5) \
+ mh_debug_reg40_reg = (mh_debug_reg40_reg & ~MH_DEBUG_REG40_ROQ_VALID_q_5_MASK) | (roq_valid_q_5 << MH_DEBUG_REG40_ROQ_VALID_q_5_SHIFT)
+#define MH_DEBUG_REG40_SET_SAME_ROW_BANK_q_5(mh_debug_reg40_reg, same_row_bank_q_5) \
+ mh_debug_reg40_reg = (mh_debug_reg40_reg & ~MH_DEBUG_REG40_SAME_ROW_BANK_q_5_MASK) | (same_row_bank_q_5 << MH_DEBUG_REG40_SAME_ROW_BANK_q_5_SHIFT)
+#define MH_DEBUG_REG40_SET_ROQ_ADDR_5(mh_debug_reg40_reg, roq_addr_5) \
+ mh_debug_reg40_reg = (mh_debug_reg40_reg & ~MH_DEBUG_REG40_ROQ_ADDR_5_MASK) | (roq_addr_5 << MH_DEBUG_REG40_ROQ_ADDR_5_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg40_t {
+ unsigned int tc_mh_send : MH_DEBUG_REG40_TC_MH_send_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG40_TC_ROQ_RTR_q_SIZE;
+ unsigned int roq_mark_q_5 : MH_DEBUG_REG40_ROQ_MARK_q_5_SIZE;
+ unsigned int roq_valid_q_5 : MH_DEBUG_REG40_ROQ_VALID_q_5_SIZE;
+ unsigned int same_row_bank_q_5 : MH_DEBUG_REG40_SAME_ROW_BANK_q_5_SIZE;
+ unsigned int roq_addr_5 : MH_DEBUG_REG40_ROQ_ADDR_5_SIZE;
+ } mh_debug_reg40_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg40_t {
+ unsigned int roq_addr_5 : MH_DEBUG_REG40_ROQ_ADDR_5_SIZE;
+ unsigned int same_row_bank_q_5 : MH_DEBUG_REG40_SAME_ROW_BANK_q_5_SIZE;
+ unsigned int roq_valid_q_5 : MH_DEBUG_REG40_ROQ_VALID_q_5_SIZE;
+ unsigned int roq_mark_q_5 : MH_DEBUG_REG40_ROQ_MARK_q_5_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG40_TC_ROQ_RTR_q_SIZE;
+ unsigned int tc_mh_send : MH_DEBUG_REG40_TC_MH_send_SIZE;
+ } mh_debug_reg40_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg40_t f;
+} mh_debug_reg40_u;
+
+
+/*
+ * MH_DEBUG_REG41 struct
+ */
+
+#define MH_DEBUG_REG41_TC_MH_send_SIZE 1
+#define MH_DEBUG_REG41_TC_ROQ_RTR_q_SIZE 1
+#define MH_DEBUG_REG41_ROQ_MARK_q_6_SIZE 1
+#define MH_DEBUG_REG41_ROQ_VALID_q_6_SIZE 1
+#define MH_DEBUG_REG41_SAME_ROW_BANK_q_6_SIZE 1
+#define MH_DEBUG_REG41_ROQ_ADDR_6_SIZE 27
+
+#define MH_DEBUG_REG41_TC_MH_send_SHIFT 0
+#define MH_DEBUG_REG41_TC_ROQ_RTR_q_SHIFT 1
+#define MH_DEBUG_REG41_ROQ_MARK_q_6_SHIFT 2
+#define MH_DEBUG_REG41_ROQ_VALID_q_6_SHIFT 3
+#define MH_DEBUG_REG41_SAME_ROW_BANK_q_6_SHIFT 4
+#define MH_DEBUG_REG41_ROQ_ADDR_6_SHIFT 5
+
+#define MH_DEBUG_REG41_TC_MH_send_MASK 0x00000001
+#define MH_DEBUG_REG41_TC_ROQ_RTR_q_MASK 0x00000002
+#define MH_DEBUG_REG41_ROQ_MARK_q_6_MASK 0x00000004
+#define MH_DEBUG_REG41_ROQ_VALID_q_6_MASK 0x00000008
+#define MH_DEBUG_REG41_SAME_ROW_BANK_q_6_MASK 0x00000010
+#define MH_DEBUG_REG41_ROQ_ADDR_6_MASK 0xffffffe0
+
+#define MH_DEBUG_REG41_MASK \
+ (MH_DEBUG_REG41_TC_MH_send_MASK | \
+ MH_DEBUG_REG41_TC_ROQ_RTR_q_MASK | \
+ MH_DEBUG_REG41_ROQ_MARK_q_6_MASK | \
+ MH_DEBUG_REG41_ROQ_VALID_q_6_MASK | \
+ MH_DEBUG_REG41_SAME_ROW_BANK_q_6_MASK | \
+ MH_DEBUG_REG41_ROQ_ADDR_6_MASK)
+
+#define MH_DEBUG_REG41(tc_mh_send, tc_roq_rtr_q, roq_mark_q_6, roq_valid_q_6, same_row_bank_q_6, roq_addr_6) \
+ ((tc_mh_send << MH_DEBUG_REG41_TC_MH_send_SHIFT) | \
+ (tc_roq_rtr_q << MH_DEBUG_REG41_TC_ROQ_RTR_q_SHIFT) | \
+ (roq_mark_q_6 << MH_DEBUG_REG41_ROQ_MARK_q_6_SHIFT) | \
+ (roq_valid_q_6 << MH_DEBUG_REG41_ROQ_VALID_q_6_SHIFT) | \
+ (same_row_bank_q_6 << MH_DEBUG_REG41_SAME_ROW_BANK_q_6_SHIFT) | \
+ (roq_addr_6 << MH_DEBUG_REG41_ROQ_ADDR_6_SHIFT))
+
+#define MH_DEBUG_REG41_GET_TC_MH_send(mh_debug_reg41) \
+ ((mh_debug_reg41 & MH_DEBUG_REG41_TC_MH_send_MASK) >> MH_DEBUG_REG41_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG41_GET_TC_ROQ_RTR_q(mh_debug_reg41) \
+ ((mh_debug_reg41 & MH_DEBUG_REG41_TC_ROQ_RTR_q_MASK) >> MH_DEBUG_REG41_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG41_GET_ROQ_MARK_q_6(mh_debug_reg41) \
+ ((mh_debug_reg41 & MH_DEBUG_REG41_ROQ_MARK_q_6_MASK) >> MH_DEBUG_REG41_ROQ_MARK_q_6_SHIFT)
+#define MH_DEBUG_REG41_GET_ROQ_VALID_q_6(mh_debug_reg41) \
+ ((mh_debug_reg41 & MH_DEBUG_REG41_ROQ_VALID_q_6_MASK) >> MH_DEBUG_REG41_ROQ_VALID_q_6_SHIFT)
+#define MH_DEBUG_REG41_GET_SAME_ROW_BANK_q_6(mh_debug_reg41) \
+ ((mh_debug_reg41 & MH_DEBUG_REG41_SAME_ROW_BANK_q_6_MASK) >> MH_DEBUG_REG41_SAME_ROW_BANK_q_6_SHIFT)
+#define MH_DEBUG_REG41_GET_ROQ_ADDR_6(mh_debug_reg41) \
+ ((mh_debug_reg41 & MH_DEBUG_REG41_ROQ_ADDR_6_MASK) >> MH_DEBUG_REG41_ROQ_ADDR_6_SHIFT)
+
+#define MH_DEBUG_REG41_SET_TC_MH_send(mh_debug_reg41_reg, tc_mh_send) \
+ mh_debug_reg41_reg = (mh_debug_reg41_reg & ~MH_DEBUG_REG41_TC_MH_send_MASK) | (tc_mh_send << MH_DEBUG_REG41_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG41_SET_TC_ROQ_RTR_q(mh_debug_reg41_reg, tc_roq_rtr_q) \
+ mh_debug_reg41_reg = (mh_debug_reg41_reg & ~MH_DEBUG_REG41_TC_ROQ_RTR_q_MASK) | (tc_roq_rtr_q << MH_DEBUG_REG41_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG41_SET_ROQ_MARK_q_6(mh_debug_reg41_reg, roq_mark_q_6) \
+ mh_debug_reg41_reg = (mh_debug_reg41_reg & ~MH_DEBUG_REG41_ROQ_MARK_q_6_MASK) | (roq_mark_q_6 << MH_DEBUG_REG41_ROQ_MARK_q_6_SHIFT)
+#define MH_DEBUG_REG41_SET_ROQ_VALID_q_6(mh_debug_reg41_reg, roq_valid_q_6) \
+ mh_debug_reg41_reg = (mh_debug_reg41_reg & ~MH_DEBUG_REG41_ROQ_VALID_q_6_MASK) | (roq_valid_q_6 << MH_DEBUG_REG41_ROQ_VALID_q_6_SHIFT)
+#define MH_DEBUG_REG41_SET_SAME_ROW_BANK_q_6(mh_debug_reg41_reg, same_row_bank_q_6) \
+ mh_debug_reg41_reg = (mh_debug_reg41_reg & ~MH_DEBUG_REG41_SAME_ROW_BANK_q_6_MASK) | (same_row_bank_q_6 << MH_DEBUG_REG41_SAME_ROW_BANK_q_6_SHIFT)
+#define MH_DEBUG_REG41_SET_ROQ_ADDR_6(mh_debug_reg41_reg, roq_addr_6) \
+ mh_debug_reg41_reg = (mh_debug_reg41_reg & ~MH_DEBUG_REG41_ROQ_ADDR_6_MASK) | (roq_addr_6 << MH_DEBUG_REG41_ROQ_ADDR_6_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg41_t {
+ unsigned int tc_mh_send : MH_DEBUG_REG41_TC_MH_send_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG41_TC_ROQ_RTR_q_SIZE;
+ unsigned int roq_mark_q_6 : MH_DEBUG_REG41_ROQ_MARK_q_6_SIZE;
+ unsigned int roq_valid_q_6 : MH_DEBUG_REG41_ROQ_VALID_q_6_SIZE;
+ unsigned int same_row_bank_q_6 : MH_DEBUG_REG41_SAME_ROW_BANK_q_6_SIZE;
+ unsigned int roq_addr_6 : MH_DEBUG_REG41_ROQ_ADDR_6_SIZE;
+ } mh_debug_reg41_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg41_t {
+ unsigned int roq_addr_6 : MH_DEBUG_REG41_ROQ_ADDR_6_SIZE;
+ unsigned int same_row_bank_q_6 : MH_DEBUG_REG41_SAME_ROW_BANK_q_6_SIZE;
+ unsigned int roq_valid_q_6 : MH_DEBUG_REG41_ROQ_VALID_q_6_SIZE;
+ unsigned int roq_mark_q_6 : MH_DEBUG_REG41_ROQ_MARK_q_6_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG41_TC_ROQ_RTR_q_SIZE;
+ unsigned int tc_mh_send : MH_DEBUG_REG41_TC_MH_send_SIZE;
+ } mh_debug_reg41_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg41_t f;
+} mh_debug_reg41_u;
+
+
+/*
+ * MH_DEBUG_REG42 struct
+ */
+
+#define MH_DEBUG_REG42_TC_MH_send_SIZE 1
+#define MH_DEBUG_REG42_TC_ROQ_RTR_q_SIZE 1
+#define MH_DEBUG_REG42_ROQ_MARK_q_7_SIZE 1
+#define MH_DEBUG_REG42_ROQ_VALID_q_7_SIZE 1
+#define MH_DEBUG_REG42_SAME_ROW_BANK_q_7_SIZE 1
+#define MH_DEBUG_REG42_ROQ_ADDR_7_SIZE 27
+
+#define MH_DEBUG_REG42_TC_MH_send_SHIFT 0
+#define MH_DEBUG_REG42_TC_ROQ_RTR_q_SHIFT 1
+#define MH_DEBUG_REG42_ROQ_MARK_q_7_SHIFT 2
+#define MH_DEBUG_REG42_ROQ_VALID_q_7_SHIFT 3
+#define MH_DEBUG_REG42_SAME_ROW_BANK_q_7_SHIFT 4
+#define MH_DEBUG_REG42_ROQ_ADDR_7_SHIFT 5
+
+#define MH_DEBUG_REG42_TC_MH_send_MASK 0x00000001
+#define MH_DEBUG_REG42_TC_ROQ_RTR_q_MASK 0x00000002
+#define MH_DEBUG_REG42_ROQ_MARK_q_7_MASK 0x00000004
+#define MH_DEBUG_REG42_ROQ_VALID_q_7_MASK 0x00000008
+#define MH_DEBUG_REG42_SAME_ROW_BANK_q_7_MASK 0x00000010
+#define MH_DEBUG_REG42_ROQ_ADDR_7_MASK 0xffffffe0
+
+#define MH_DEBUG_REG42_MASK \
+ (MH_DEBUG_REG42_TC_MH_send_MASK | \
+ MH_DEBUG_REG42_TC_ROQ_RTR_q_MASK | \
+ MH_DEBUG_REG42_ROQ_MARK_q_7_MASK | \
+ MH_DEBUG_REG42_ROQ_VALID_q_7_MASK | \
+ MH_DEBUG_REG42_SAME_ROW_BANK_q_7_MASK | \
+ MH_DEBUG_REG42_ROQ_ADDR_7_MASK)
+
+#define MH_DEBUG_REG42(tc_mh_send, tc_roq_rtr_q, roq_mark_q_7, roq_valid_q_7, same_row_bank_q_7, roq_addr_7) \
+ ((tc_mh_send << MH_DEBUG_REG42_TC_MH_send_SHIFT) | \
+ (tc_roq_rtr_q << MH_DEBUG_REG42_TC_ROQ_RTR_q_SHIFT) | \
+ (roq_mark_q_7 << MH_DEBUG_REG42_ROQ_MARK_q_7_SHIFT) | \
+ (roq_valid_q_7 << MH_DEBUG_REG42_ROQ_VALID_q_7_SHIFT) | \
+ (same_row_bank_q_7 << MH_DEBUG_REG42_SAME_ROW_BANK_q_7_SHIFT) | \
+ (roq_addr_7 << MH_DEBUG_REG42_ROQ_ADDR_7_SHIFT))
+
+#define MH_DEBUG_REG42_GET_TC_MH_send(mh_debug_reg42) \
+ ((mh_debug_reg42 & MH_DEBUG_REG42_TC_MH_send_MASK) >> MH_DEBUG_REG42_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG42_GET_TC_ROQ_RTR_q(mh_debug_reg42) \
+ ((mh_debug_reg42 & MH_DEBUG_REG42_TC_ROQ_RTR_q_MASK) >> MH_DEBUG_REG42_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG42_GET_ROQ_MARK_q_7(mh_debug_reg42) \
+ ((mh_debug_reg42 & MH_DEBUG_REG42_ROQ_MARK_q_7_MASK) >> MH_DEBUG_REG42_ROQ_MARK_q_7_SHIFT)
+#define MH_DEBUG_REG42_GET_ROQ_VALID_q_7(mh_debug_reg42) \
+ ((mh_debug_reg42 & MH_DEBUG_REG42_ROQ_VALID_q_7_MASK) >> MH_DEBUG_REG42_ROQ_VALID_q_7_SHIFT)
+#define MH_DEBUG_REG42_GET_SAME_ROW_BANK_q_7(mh_debug_reg42) \
+ ((mh_debug_reg42 & MH_DEBUG_REG42_SAME_ROW_BANK_q_7_MASK) >> MH_DEBUG_REG42_SAME_ROW_BANK_q_7_SHIFT)
+#define MH_DEBUG_REG42_GET_ROQ_ADDR_7(mh_debug_reg42) \
+ ((mh_debug_reg42 & MH_DEBUG_REG42_ROQ_ADDR_7_MASK) >> MH_DEBUG_REG42_ROQ_ADDR_7_SHIFT)
+
+#define MH_DEBUG_REG42_SET_TC_MH_send(mh_debug_reg42_reg, tc_mh_send) \
+ mh_debug_reg42_reg = (mh_debug_reg42_reg & ~MH_DEBUG_REG42_TC_MH_send_MASK) | (tc_mh_send << MH_DEBUG_REG42_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG42_SET_TC_ROQ_RTR_q(mh_debug_reg42_reg, tc_roq_rtr_q) \
+ mh_debug_reg42_reg = (mh_debug_reg42_reg & ~MH_DEBUG_REG42_TC_ROQ_RTR_q_MASK) | (tc_roq_rtr_q << MH_DEBUG_REG42_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG42_SET_ROQ_MARK_q_7(mh_debug_reg42_reg, roq_mark_q_7) \
+ mh_debug_reg42_reg = (mh_debug_reg42_reg & ~MH_DEBUG_REG42_ROQ_MARK_q_7_MASK) | (roq_mark_q_7 << MH_DEBUG_REG42_ROQ_MARK_q_7_SHIFT)
+#define MH_DEBUG_REG42_SET_ROQ_VALID_q_7(mh_debug_reg42_reg, roq_valid_q_7) \
+ mh_debug_reg42_reg = (mh_debug_reg42_reg & ~MH_DEBUG_REG42_ROQ_VALID_q_7_MASK) | (roq_valid_q_7 << MH_DEBUG_REG42_ROQ_VALID_q_7_SHIFT)
+#define MH_DEBUG_REG42_SET_SAME_ROW_BANK_q_7(mh_debug_reg42_reg, same_row_bank_q_7) \
+ mh_debug_reg42_reg = (mh_debug_reg42_reg & ~MH_DEBUG_REG42_SAME_ROW_BANK_q_7_MASK) | (same_row_bank_q_7 << MH_DEBUG_REG42_SAME_ROW_BANK_q_7_SHIFT)
+#define MH_DEBUG_REG42_SET_ROQ_ADDR_7(mh_debug_reg42_reg, roq_addr_7) \
+ mh_debug_reg42_reg = (mh_debug_reg42_reg & ~MH_DEBUG_REG42_ROQ_ADDR_7_MASK) | (roq_addr_7 << MH_DEBUG_REG42_ROQ_ADDR_7_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg42_t {
+ unsigned int tc_mh_send : MH_DEBUG_REG42_TC_MH_send_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG42_TC_ROQ_RTR_q_SIZE;
+ unsigned int roq_mark_q_7 : MH_DEBUG_REG42_ROQ_MARK_q_7_SIZE;
+ unsigned int roq_valid_q_7 : MH_DEBUG_REG42_ROQ_VALID_q_7_SIZE;
+ unsigned int same_row_bank_q_7 : MH_DEBUG_REG42_SAME_ROW_BANK_q_7_SIZE;
+ unsigned int roq_addr_7 : MH_DEBUG_REG42_ROQ_ADDR_7_SIZE;
+ } mh_debug_reg42_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg42_t {
+ unsigned int roq_addr_7 : MH_DEBUG_REG42_ROQ_ADDR_7_SIZE;
+ unsigned int same_row_bank_q_7 : MH_DEBUG_REG42_SAME_ROW_BANK_q_7_SIZE;
+ unsigned int roq_valid_q_7 : MH_DEBUG_REG42_ROQ_VALID_q_7_SIZE;
+ unsigned int roq_mark_q_7 : MH_DEBUG_REG42_ROQ_MARK_q_7_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG42_TC_ROQ_RTR_q_SIZE;
+ unsigned int tc_mh_send : MH_DEBUG_REG42_TC_MH_send_SIZE;
+ } mh_debug_reg42_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg42_t f;
+} mh_debug_reg42_u;
+
+
+/*
+ * MH_DEBUG_REG43 struct
+ */
+
+#define MH_DEBUG_REG43_ARB_REG_WE_q_SIZE 1
+#define MH_DEBUG_REG43_ARB_WE_SIZE 1
+#define MH_DEBUG_REG43_ARB_REG_VALID_q_SIZE 1
+#define MH_DEBUG_REG43_ARB_RTR_q_SIZE 1
+#define MH_DEBUG_REG43_ARB_REG_RTR_SIZE 1
+#define MH_DEBUG_REG43_WDAT_BURST_RTR_SIZE 1
+#define MH_DEBUG_REG43_MMU_RTR_SIZE 1
+#define MH_DEBUG_REG43_ARB_ID_q_SIZE 3
+#define MH_DEBUG_REG43_ARB_WRITE_q_SIZE 1
+#define MH_DEBUG_REG43_ARB_BLEN_q_SIZE 1
+#define MH_DEBUG_REG43_ARQ_CTRL_EMPTY_SIZE 1
+#define MH_DEBUG_REG43_ARQ_FIFO_CNT_q_SIZE 3
+#define MH_DEBUG_REG43_MMU_WE_SIZE 1
+#define MH_DEBUG_REG43_ARQ_RTR_SIZE 1
+#define MH_DEBUG_REG43_MMU_ID_SIZE 3
+#define MH_DEBUG_REG43_MMU_WRITE_SIZE 1
+#define MH_DEBUG_REG43_MMU_BLEN_SIZE 1
+#define MH_DEBUG_REG43_WBURST_IP_q_SIZE 1
+#define MH_DEBUG_REG43_WDAT_REG_WE_q_SIZE 1
+#define MH_DEBUG_REG43_WDB_WE_SIZE 1
+#define MH_DEBUG_REG43_WDB_RTR_SKID_4_SIZE 1
+#define MH_DEBUG_REG43_WDB_RTR_SKID_3_SIZE 1
+
+#define MH_DEBUG_REG43_ARB_REG_WE_q_SHIFT 0
+#define MH_DEBUG_REG43_ARB_WE_SHIFT 1
+#define MH_DEBUG_REG43_ARB_REG_VALID_q_SHIFT 2
+#define MH_DEBUG_REG43_ARB_RTR_q_SHIFT 3
+#define MH_DEBUG_REG43_ARB_REG_RTR_SHIFT 4
+#define MH_DEBUG_REG43_WDAT_BURST_RTR_SHIFT 5
+#define MH_DEBUG_REG43_MMU_RTR_SHIFT 6
+#define MH_DEBUG_REG43_ARB_ID_q_SHIFT 7
+#define MH_DEBUG_REG43_ARB_WRITE_q_SHIFT 10
+#define MH_DEBUG_REG43_ARB_BLEN_q_SHIFT 11
+#define MH_DEBUG_REG43_ARQ_CTRL_EMPTY_SHIFT 12
+#define MH_DEBUG_REG43_ARQ_FIFO_CNT_q_SHIFT 13
+#define MH_DEBUG_REG43_MMU_WE_SHIFT 16
+#define MH_DEBUG_REG43_ARQ_RTR_SHIFT 17
+#define MH_DEBUG_REG43_MMU_ID_SHIFT 18
+#define MH_DEBUG_REG43_MMU_WRITE_SHIFT 21
+#define MH_DEBUG_REG43_MMU_BLEN_SHIFT 22
+#define MH_DEBUG_REG43_WBURST_IP_q_SHIFT 23
+#define MH_DEBUG_REG43_WDAT_REG_WE_q_SHIFT 24
+#define MH_DEBUG_REG43_WDB_WE_SHIFT 25
+#define MH_DEBUG_REG43_WDB_RTR_SKID_4_SHIFT 26
+#define MH_DEBUG_REG43_WDB_RTR_SKID_3_SHIFT 27
+
+#define MH_DEBUG_REG43_ARB_REG_WE_q_MASK 0x00000001
+#define MH_DEBUG_REG43_ARB_WE_MASK 0x00000002
+#define MH_DEBUG_REG43_ARB_REG_VALID_q_MASK 0x00000004
+#define MH_DEBUG_REG43_ARB_RTR_q_MASK 0x00000008
+#define MH_DEBUG_REG43_ARB_REG_RTR_MASK 0x00000010
+#define MH_DEBUG_REG43_WDAT_BURST_RTR_MASK 0x00000020
+#define MH_DEBUG_REG43_MMU_RTR_MASK 0x00000040
+#define MH_DEBUG_REG43_ARB_ID_q_MASK 0x00000380
+#define MH_DEBUG_REG43_ARB_WRITE_q_MASK 0x00000400
+#define MH_DEBUG_REG43_ARB_BLEN_q_MASK 0x00000800
+#define MH_DEBUG_REG43_ARQ_CTRL_EMPTY_MASK 0x00001000
+#define MH_DEBUG_REG43_ARQ_FIFO_CNT_q_MASK 0x0000e000
+#define MH_DEBUG_REG43_MMU_WE_MASK 0x00010000
+#define MH_DEBUG_REG43_ARQ_RTR_MASK 0x00020000
+#define MH_DEBUG_REG43_MMU_ID_MASK 0x001c0000
+#define MH_DEBUG_REG43_MMU_WRITE_MASK 0x00200000
+#define MH_DEBUG_REG43_MMU_BLEN_MASK 0x00400000
+#define MH_DEBUG_REG43_WBURST_IP_q_MASK 0x00800000
+#define MH_DEBUG_REG43_WDAT_REG_WE_q_MASK 0x01000000
+#define MH_DEBUG_REG43_WDB_WE_MASK 0x02000000
+#define MH_DEBUG_REG43_WDB_RTR_SKID_4_MASK 0x04000000
+#define MH_DEBUG_REG43_WDB_RTR_SKID_3_MASK 0x08000000
+
+#define MH_DEBUG_REG43_MASK \
+ (MH_DEBUG_REG43_ARB_REG_WE_q_MASK | \
+ MH_DEBUG_REG43_ARB_WE_MASK | \
+ MH_DEBUG_REG43_ARB_REG_VALID_q_MASK | \
+ MH_DEBUG_REG43_ARB_RTR_q_MASK | \
+ MH_DEBUG_REG43_ARB_REG_RTR_MASK | \
+ MH_DEBUG_REG43_WDAT_BURST_RTR_MASK | \
+ MH_DEBUG_REG43_MMU_RTR_MASK | \
+ MH_DEBUG_REG43_ARB_ID_q_MASK | \
+ MH_DEBUG_REG43_ARB_WRITE_q_MASK | \
+ MH_DEBUG_REG43_ARB_BLEN_q_MASK | \
+ MH_DEBUG_REG43_ARQ_CTRL_EMPTY_MASK | \
+ MH_DEBUG_REG43_ARQ_FIFO_CNT_q_MASK | \
+ MH_DEBUG_REG43_MMU_WE_MASK | \
+ MH_DEBUG_REG43_ARQ_RTR_MASK | \
+ MH_DEBUG_REG43_MMU_ID_MASK | \
+ MH_DEBUG_REG43_MMU_WRITE_MASK | \
+ MH_DEBUG_REG43_MMU_BLEN_MASK | \
+ MH_DEBUG_REG43_WBURST_IP_q_MASK | \
+ MH_DEBUG_REG43_WDAT_REG_WE_q_MASK | \
+ MH_DEBUG_REG43_WDB_WE_MASK | \
+ MH_DEBUG_REG43_WDB_RTR_SKID_4_MASK | \
+ MH_DEBUG_REG43_WDB_RTR_SKID_3_MASK)
+
+#define MH_DEBUG_REG43(arb_reg_we_q, arb_we, arb_reg_valid_q, arb_rtr_q, arb_reg_rtr, wdat_burst_rtr, mmu_rtr, arb_id_q, arb_write_q, arb_blen_q, arq_ctrl_empty, arq_fifo_cnt_q, mmu_we, arq_rtr, mmu_id, mmu_write, mmu_blen, wburst_ip_q, wdat_reg_we_q, wdb_we, wdb_rtr_skid_4, wdb_rtr_skid_3) \
+ ((arb_reg_we_q << MH_DEBUG_REG43_ARB_REG_WE_q_SHIFT) | \
+ (arb_we << MH_DEBUG_REG43_ARB_WE_SHIFT) | \
+ (arb_reg_valid_q << MH_DEBUG_REG43_ARB_REG_VALID_q_SHIFT) | \
+ (arb_rtr_q << MH_DEBUG_REG43_ARB_RTR_q_SHIFT) | \
+ (arb_reg_rtr << MH_DEBUG_REG43_ARB_REG_RTR_SHIFT) | \
+ (wdat_burst_rtr << MH_DEBUG_REG43_WDAT_BURST_RTR_SHIFT) | \
+ (mmu_rtr << MH_DEBUG_REG43_MMU_RTR_SHIFT) | \
+ (arb_id_q << MH_DEBUG_REG43_ARB_ID_q_SHIFT) | \
+ (arb_write_q << MH_DEBUG_REG43_ARB_WRITE_q_SHIFT) | \
+ (arb_blen_q << MH_DEBUG_REG43_ARB_BLEN_q_SHIFT) | \
+ (arq_ctrl_empty << MH_DEBUG_REG43_ARQ_CTRL_EMPTY_SHIFT) | \
+ (arq_fifo_cnt_q << MH_DEBUG_REG43_ARQ_FIFO_CNT_q_SHIFT) | \
+ (mmu_we << MH_DEBUG_REG43_MMU_WE_SHIFT) | \
+ (arq_rtr << MH_DEBUG_REG43_ARQ_RTR_SHIFT) | \
+ (mmu_id << MH_DEBUG_REG43_MMU_ID_SHIFT) | \
+ (mmu_write << MH_DEBUG_REG43_MMU_WRITE_SHIFT) | \
+ (mmu_blen << MH_DEBUG_REG43_MMU_BLEN_SHIFT) | \
+ (wburst_ip_q << MH_DEBUG_REG43_WBURST_IP_q_SHIFT) | \
+ (wdat_reg_we_q << MH_DEBUG_REG43_WDAT_REG_WE_q_SHIFT) | \
+ (wdb_we << MH_DEBUG_REG43_WDB_WE_SHIFT) | \
+ (wdb_rtr_skid_4 << MH_DEBUG_REG43_WDB_RTR_SKID_4_SHIFT) | \
+ (wdb_rtr_skid_3 << MH_DEBUG_REG43_WDB_RTR_SKID_3_SHIFT))
+
+#define MH_DEBUG_REG43_GET_ARB_REG_WE_q(mh_debug_reg43) \
+ ((mh_debug_reg43 & MH_DEBUG_REG43_ARB_REG_WE_q_MASK) >> MH_DEBUG_REG43_ARB_REG_WE_q_SHIFT)
+#define MH_DEBUG_REG43_GET_ARB_WE(mh_debug_reg43) \
+ ((mh_debug_reg43 & MH_DEBUG_REG43_ARB_WE_MASK) >> MH_DEBUG_REG43_ARB_WE_SHIFT)
+#define MH_DEBUG_REG43_GET_ARB_REG_VALID_q(mh_debug_reg43) \
+ ((mh_debug_reg43 & MH_DEBUG_REG43_ARB_REG_VALID_q_MASK) >> MH_DEBUG_REG43_ARB_REG_VALID_q_SHIFT)
+#define MH_DEBUG_REG43_GET_ARB_RTR_q(mh_debug_reg43) \
+ ((mh_debug_reg43 & MH_DEBUG_REG43_ARB_RTR_q_MASK) >> MH_DEBUG_REG43_ARB_RTR_q_SHIFT)
+#define MH_DEBUG_REG43_GET_ARB_REG_RTR(mh_debug_reg43) \
+ ((mh_debug_reg43 & MH_DEBUG_REG43_ARB_REG_RTR_MASK) >> MH_DEBUG_REG43_ARB_REG_RTR_SHIFT)
+#define MH_DEBUG_REG43_GET_WDAT_BURST_RTR(mh_debug_reg43) \
+ ((mh_debug_reg43 & MH_DEBUG_REG43_WDAT_BURST_RTR_MASK) >> MH_DEBUG_REG43_WDAT_BURST_RTR_SHIFT)
+#define MH_DEBUG_REG43_GET_MMU_RTR(mh_debug_reg43) \
+ ((mh_debug_reg43 & MH_DEBUG_REG43_MMU_RTR_MASK) >> MH_DEBUG_REG43_MMU_RTR_SHIFT)
+#define MH_DEBUG_REG43_GET_ARB_ID_q(mh_debug_reg43) \
+ ((mh_debug_reg43 & MH_DEBUG_REG43_ARB_ID_q_MASK) >> MH_DEBUG_REG43_ARB_ID_q_SHIFT)
+#define MH_DEBUG_REG43_GET_ARB_WRITE_q(mh_debug_reg43) \
+ ((mh_debug_reg43 & MH_DEBUG_REG43_ARB_WRITE_q_MASK) >> MH_DEBUG_REG43_ARB_WRITE_q_SHIFT)
+#define MH_DEBUG_REG43_GET_ARB_BLEN_q(mh_debug_reg43) \
+ ((mh_debug_reg43 & MH_DEBUG_REG43_ARB_BLEN_q_MASK) >> MH_DEBUG_REG43_ARB_BLEN_q_SHIFT)
+#define MH_DEBUG_REG43_GET_ARQ_CTRL_EMPTY(mh_debug_reg43) \
+ ((mh_debug_reg43 & MH_DEBUG_REG43_ARQ_CTRL_EMPTY_MASK) >> MH_DEBUG_REG43_ARQ_CTRL_EMPTY_SHIFT)
+#define MH_DEBUG_REG43_GET_ARQ_FIFO_CNT_q(mh_debug_reg43) \
+ ((mh_debug_reg43 & MH_DEBUG_REG43_ARQ_FIFO_CNT_q_MASK) >> MH_DEBUG_REG43_ARQ_FIFO_CNT_q_SHIFT)
+#define MH_DEBUG_REG43_GET_MMU_WE(mh_debug_reg43) \
+ ((mh_debug_reg43 & MH_DEBUG_REG43_MMU_WE_MASK) >> MH_DEBUG_REG43_MMU_WE_SHIFT)
+#define MH_DEBUG_REG43_GET_ARQ_RTR(mh_debug_reg43) \
+ ((mh_debug_reg43 & MH_DEBUG_REG43_ARQ_RTR_MASK) >> MH_DEBUG_REG43_ARQ_RTR_SHIFT)
+#define MH_DEBUG_REG43_GET_MMU_ID(mh_debug_reg43) \
+ ((mh_debug_reg43 & MH_DEBUG_REG43_MMU_ID_MASK) >> MH_DEBUG_REG43_MMU_ID_SHIFT)
+#define MH_DEBUG_REG43_GET_MMU_WRITE(mh_debug_reg43) \
+ ((mh_debug_reg43 & MH_DEBUG_REG43_MMU_WRITE_MASK) >> MH_DEBUG_REG43_MMU_WRITE_SHIFT)
+#define MH_DEBUG_REG43_GET_MMU_BLEN(mh_debug_reg43) \
+ ((mh_debug_reg43 & MH_DEBUG_REG43_MMU_BLEN_MASK) >> MH_DEBUG_REG43_MMU_BLEN_SHIFT)
+#define MH_DEBUG_REG43_GET_WBURST_IP_q(mh_debug_reg43) \
+ ((mh_debug_reg43 & MH_DEBUG_REG43_WBURST_IP_q_MASK) >> MH_DEBUG_REG43_WBURST_IP_q_SHIFT)
+#define MH_DEBUG_REG43_GET_WDAT_REG_WE_q(mh_debug_reg43) \
+ ((mh_debug_reg43 & MH_DEBUG_REG43_WDAT_REG_WE_q_MASK) >> MH_DEBUG_REG43_WDAT_REG_WE_q_SHIFT)
+#define MH_DEBUG_REG43_GET_WDB_WE(mh_debug_reg43) \
+ ((mh_debug_reg43 & MH_DEBUG_REG43_WDB_WE_MASK) >> MH_DEBUG_REG43_WDB_WE_SHIFT)
+#define MH_DEBUG_REG43_GET_WDB_RTR_SKID_4(mh_debug_reg43) \
+ ((mh_debug_reg43 & MH_DEBUG_REG43_WDB_RTR_SKID_4_MASK) >> MH_DEBUG_REG43_WDB_RTR_SKID_4_SHIFT)
+#define MH_DEBUG_REG43_GET_WDB_RTR_SKID_3(mh_debug_reg43) \
+ ((mh_debug_reg43 & MH_DEBUG_REG43_WDB_RTR_SKID_3_MASK) >> MH_DEBUG_REG43_WDB_RTR_SKID_3_SHIFT)
+
+#define MH_DEBUG_REG43_SET_ARB_REG_WE_q(mh_debug_reg43_reg, arb_reg_we_q) \
+ mh_debug_reg43_reg = (mh_debug_reg43_reg & ~MH_DEBUG_REG43_ARB_REG_WE_q_MASK) | (arb_reg_we_q << MH_DEBUG_REG43_ARB_REG_WE_q_SHIFT)
+#define MH_DEBUG_REG43_SET_ARB_WE(mh_debug_reg43_reg, arb_we) \
+ mh_debug_reg43_reg = (mh_debug_reg43_reg & ~MH_DEBUG_REG43_ARB_WE_MASK) | (arb_we << MH_DEBUG_REG43_ARB_WE_SHIFT)
+#define MH_DEBUG_REG43_SET_ARB_REG_VALID_q(mh_debug_reg43_reg, arb_reg_valid_q) \
+ mh_debug_reg43_reg = (mh_debug_reg43_reg & ~MH_DEBUG_REG43_ARB_REG_VALID_q_MASK) | (arb_reg_valid_q << MH_DEBUG_REG43_ARB_REG_VALID_q_SHIFT)
+#define MH_DEBUG_REG43_SET_ARB_RTR_q(mh_debug_reg43_reg, arb_rtr_q) \
+ mh_debug_reg43_reg = (mh_debug_reg43_reg & ~MH_DEBUG_REG43_ARB_RTR_q_MASK) | (arb_rtr_q << MH_DEBUG_REG43_ARB_RTR_q_SHIFT)
+#define MH_DEBUG_REG43_SET_ARB_REG_RTR(mh_debug_reg43_reg, arb_reg_rtr) \
+ mh_debug_reg43_reg = (mh_debug_reg43_reg & ~MH_DEBUG_REG43_ARB_REG_RTR_MASK) | (arb_reg_rtr << MH_DEBUG_REG43_ARB_REG_RTR_SHIFT)
+#define MH_DEBUG_REG43_SET_WDAT_BURST_RTR(mh_debug_reg43_reg, wdat_burst_rtr) \
+ mh_debug_reg43_reg = (mh_debug_reg43_reg & ~MH_DEBUG_REG43_WDAT_BURST_RTR_MASK) | (wdat_burst_rtr << MH_DEBUG_REG43_WDAT_BURST_RTR_SHIFT)
+#define MH_DEBUG_REG43_SET_MMU_RTR(mh_debug_reg43_reg, mmu_rtr) \
+ mh_debug_reg43_reg = (mh_debug_reg43_reg & ~MH_DEBUG_REG43_MMU_RTR_MASK) | (mmu_rtr << MH_DEBUG_REG43_MMU_RTR_SHIFT)
+#define MH_DEBUG_REG43_SET_ARB_ID_q(mh_debug_reg43_reg, arb_id_q) \
+ mh_debug_reg43_reg = (mh_debug_reg43_reg & ~MH_DEBUG_REG43_ARB_ID_q_MASK) | (arb_id_q << MH_DEBUG_REG43_ARB_ID_q_SHIFT)
+#define MH_DEBUG_REG43_SET_ARB_WRITE_q(mh_debug_reg43_reg, arb_write_q) \
+ mh_debug_reg43_reg = (mh_debug_reg43_reg & ~MH_DEBUG_REG43_ARB_WRITE_q_MASK) | (arb_write_q << MH_DEBUG_REG43_ARB_WRITE_q_SHIFT)
+#define MH_DEBUG_REG43_SET_ARB_BLEN_q(mh_debug_reg43_reg, arb_blen_q) \
+ mh_debug_reg43_reg = (mh_debug_reg43_reg & ~MH_DEBUG_REG43_ARB_BLEN_q_MASK) | (arb_blen_q << MH_DEBUG_REG43_ARB_BLEN_q_SHIFT)
+#define MH_DEBUG_REG43_SET_ARQ_CTRL_EMPTY(mh_debug_reg43_reg, arq_ctrl_empty) \
+ mh_debug_reg43_reg = (mh_debug_reg43_reg & ~MH_DEBUG_REG43_ARQ_CTRL_EMPTY_MASK) | (arq_ctrl_empty << MH_DEBUG_REG43_ARQ_CTRL_EMPTY_SHIFT)
+#define MH_DEBUG_REG43_SET_ARQ_FIFO_CNT_q(mh_debug_reg43_reg, arq_fifo_cnt_q) \
+ mh_debug_reg43_reg = (mh_debug_reg43_reg & ~MH_DEBUG_REG43_ARQ_FIFO_CNT_q_MASK) | (arq_fifo_cnt_q << MH_DEBUG_REG43_ARQ_FIFO_CNT_q_SHIFT)
+#define MH_DEBUG_REG43_SET_MMU_WE(mh_debug_reg43_reg, mmu_we) \
+ mh_debug_reg43_reg = (mh_debug_reg43_reg & ~MH_DEBUG_REG43_MMU_WE_MASK) | (mmu_we << MH_DEBUG_REG43_MMU_WE_SHIFT)
+#define MH_DEBUG_REG43_SET_ARQ_RTR(mh_debug_reg43_reg, arq_rtr) \
+ mh_debug_reg43_reg = (mh_debug_reg43_reg & ~MH_DEBUG_REG43_ARQ_RTR_MASK) | (arq_rtr << MH_DEBUG_REG43_ARQ_RTR_SHIFT)
+#define MH_DEBUG_REG43_SET_MMU_ID(mh_debug_reg43_reg, mmu_id) \
+ mh_debug_reg43_reg = (mh_debug_reg43_reg & ~MH_DEBUG_REG43_MMU_ID_MASK) | (mmu_id << MH_DEBUG_REG43_MMU_ID_SHIFT)
+#define MH_DEBUG_REG43_SET_MMU_WRITE(mh_debug_reg43_reg, mmu_write) \
+ mh_debug_reg43_reg = (mh_debug_reg43_reg & ~MH_DEBUG_REG43_MMU_WRITE_MASK) | (mmu_write << MH_DEBUG_REG43_MMU_WRITE_SHIFT)
+#define MH_DEBUG_REG43_SET_MMU_BLEN(mh_debug_reg43_reg, mmu_blen) \
+ mh_debug_reg43_reg = (mh_debug_reg43_reg & ~MH_DEBUG_REG43_MMU_BLEN_MASK) | (mmu_blen << MH_DEBUG_REG43_MMU_BLEN_SHIFT)
+#define MH_DEBUG_REG43_SET_WBURST_IP_q(mh_debug_reg43_reg, wburst_ip_q) \
+ mh_debug_reg43_reg = (mh_debug_reg43_reg & ~MH_DEBUG_REG43_WBURST_IP_q_MASK) | (wburst_ip_q << MH_DEBUG_REG43_WBURST_IP_q_SHIFT)
+#define MH_DEBUG_REG43_SET_WDAT_REG_WE_q(mh_debug_reg43_reg, wdat_reg_we_q) \
+ mh_debug_reg43_reg = (mh_debug_reg43_reg & ~MH_DEBUG_REG43_WDAT_REG_WE_q_MASK) | (wdat_reg_we_q << MH_DEBUG_REG43_WDAT_REG_WE_q_SHIFT)
+#define MH_DEBUG_REG43_SET_WDB_WE(mh_debug_reg43_reg, wdb_we) \
+ mh_debug_reg43_reg = (mh_debug_reg43_reg & ~MH_DEBUG_REG43_WDB_WE_MASK) | (wdb_we << MH_DEBUG_REG43_WDB_WE_SHIFT)
+#define MH_DEBUG_REG43_SET_WDB_RTR_SKID_4(mh_debug_reg43_reg, wdb_rtr_skid_4) \
+ mh_debug_reg43_reg = (mh_debug_reg43_reg & ~MH_DEBUG_REG43_WDB_RTR_SKID_4_MASK) | (wdb_rtr_skid_4 << MH_DEBUG_REG43_WDB_RTR_SKID_4_SHIFT)
+#define MH_DEBUG_REG43_SET_WDB_RTR_SKID_3(mh_debug_reg43_reg, wdb_rtr_skid_3) \
+ mh_debug_reg43_reg = (mh_debug_reg43_reg & ~MH_DEBUG_REG43_WDB_RTR_SKID_3_MASK) | (wdb_rtr_skid_3 << MH_DEBUG_REG43_WDB_RTR_SKID_3_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg43_t {
+ unsigned int arb_reg_we_q : MH_DEBUG_REG43_ARB_REG_WE_q_SIZE;
+ unsigned int arb_we : MH_DEBUG_REG43_ARB_WE_SIZE;
+ unsigned int arb_reg_valid_q : MH_DEBUG_REG43_ARB_REG_VALID_q_SIZE;
+ unsigned int arb_rtr_q : MH_DEBUG_REG43_ARB_RTR_q_SIZE;
+ unsigned int arb_reg_rtr : MH_DEBUG_REG43_ARB_REG_RTR_SIZE;
+ unsigned int wdat_burst_rtr : MH_DEBUG_REG43_WDAT_BURST_RTR_SIZE;
+ unsigned int mmu_rtr : MH_DEBUG_REG43_MMU_RTR_SIZE;
+ unsigned int arb_id_q : MH_DEBUG_REG43_ARB_ID_q_SIZE;
+ unsigned int arb_write_q : MH_DEBUG_REG43_ARB_WRITE_q_SIZE;
+ unsigned int arb_blen_q : MH_DEBUG_REG43_ARB_BLEN_q_SIZE;
+ unsigned int arq_ctrl_empty : MH_DEBUG_REG43_ARQ_CTRL_EMPTY_SIZE;
+ unsigned int arq_fifo_cnt_q : MH_DEBUG_REG43_ARQ_FIFO_CNT_q_SIZE;
+ unsigned int mmu_we : MH_DEBUG_REG43_MMU_WE_SIZE;
+ unsigned int arq_rtr : MH_DEBUG_REG43_ARQ_RTR_SIZE;
+ unsigned int mmu_id : MH_DEBUG_REG43_MMU_ID_SIZE;
+ unsigned int mmu_write : MH_DEBUG_REG43_MMU_WRITE_SIZE;
+ unsigned int mmu_blen : MH_DEBUG_REG43_MMU_BLEN_SIZE;
+ unsigned int wburst_ip_q : MH_DEBUG_REG43_WBURST_IP_q_SIZE;
+ unsigned int wdat_reg_we_q : MH_DEBUG_REG43_WDAT_REG_WE_q_SIZE;
+ unsigned int wdb_we : MH_DEBUG_REG43_WDB_WE_SIZE;
+ unsigned int wdb_rtr_skid_4 : MH_DEBUG_REG43_WDB_RTR_SKID_4_SIZE;
+ unsigned int wdb_rtr_skid_3 : MH_DEBUG_REG43_WDB_RTR_SKID_3_SIZE;
+ unsigned int : 4;
+ } mh_debug_reg43_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg43_t {
+ unsigned int : 4;
+ unsigned int wdb_rtr_skid_3 : MH_DEBUG_REG43_WDB_RTR_SKID_3_SIZE;
+ unsigned int wdb_rtr_skid_4 : MH_DEBUG_REG43_WDB_RTR_SKID_4_SIZE;
+ unsigned int wdb_we : MH_DEBUG_REG43_WDB_WE_SIZE;
+ unsigned int wdat_reg_we_q : MH_DEBUG_REG43_WDAT_REG_WE_q_SIZE;
+ unsigned int wburst_ip_q : MH_DEBUG_REG43_WBURST_IP_q_SIZE;
+ unsigned int mmu_blen : MH_DEBUG_REG43_MMU_BLEN_SIZE;
+ unsigned int mmu_write : MH_DEBUG_REG43_MMU_WRITE_SIZE;
+ unsigned int mmu_id : MH_DEBUG_REG43_MMU_ID_SIZE;
+ unsigned int arq_rtr : MH_DEBUG_REG43_ARQ_RTR_SIZE;
+ unsigned int mmu_we : MH_DEBUG_REG43_MMU_WE_SIZE;
+ unsigned int arq_fifo_cnt_q : MH_DEBUG_REG43_ARQ_FIFO_CNT_q_SIZE;
+ unsigned int arq_ctrl_empty : MH_DEBUG_REG43_ARQ_CTRL_EMPTY_SIZE;
+ unsigned int arb_blen_q : MH_DEBUG_REG43_ARB_BLEN_q_SIZE;
+ unsigned int arb_write_q : MH_DEBUG_REG43_ARB_WRITE_q_SIZE;
+ unsigned int arb_id_q : MH_DEBUG_REG43_ARB_ID_q_SIZE;
+ unsigned int mmu_rtr : MH_DEBUG_REG43_MMU_RTR_SIZE;
+ unsigned int wdat_burst_rtr : MH_DEBUG_REG43_WDAT_BURST_RTR_SIZE;
+ unsigned int arb_reg_rtr : MH_DEBUG_REG43_ARB_REG_RTR_SIZE;
+ unsigned int arb_rtr_q : MH_DEBUG_REG43_ARB_RTR_q_SIZE;
+ unsigned int arb_reg_valid_q : MH_DEBUG_REG43_ARB_REG_VALID_q_SIZE;
+ unsigned int arb_we : MH_DEBUG_REG43_ARB_WE_SIZE;
+ unsigned int arb_reg_we_q : MH_DEBUG_REG43_ARB_REG_WE_q_SIZE;
+ } mh_debug_reg43_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg43_t f;
+} mh_debug_reg43_u;
+
+
+/*
+ * MH_DEBUG_REG44 struct
+ */
+
+#define MH_DEBUG_REG44_ARB_WE_SIZE 1
+#define MH_DEBUG_REG44_ARB_ID_q_SIZE 3
+#define MH_DEBUG_REG44_ARB_VAD_q_SIZE 28
+
+#define MH_DEBUG_REG44_ARB_WE_SHIFT 0
+#define MH_DEBUG_REG44_ARB_ID_q_SHIFT 1
+#define MH_DEBUG_REG44_ARB_VAD_q_SHIFT 4
+
+#define MH_DEBUG_REG44_ARB_WE_MASK 0x00000001
+#define MH_DEBUG_REG44_ARB_ID_q_MASK 0x0000000e
+#define MH_DEBUG_REG44_ARB_VAD_q_MASK 0xfffffff0
+
+#define MH_DEBUG_REG44_MASK \
+ (MH_DEBUG_REG44_ARB_WE_MASK | \
+ MH_DEBUG_REG44_ARB_ID_q_MASK | \
+ MH_DEBUG_REG44_ARB_VAD_q_MASK)
+
+#define MH_DEBUG_REG44(arb_we, arb_id_q, arb_vad_q) \
+ ((arb_we << MH_DEBUG_REG44_ARB_WE_SHIFT) | \
+ (arb_id_q << MH_DEBUG_REG44_ARB_ID_q_SHIFT) | \
+ (arb_vad_q << MH_DEBUG_REG44_ARB_VAD_q_SHIFT))
+
+#define MH_DEBUG_REG44_GET_ARB_WE(mh_debug_reg44) \
+ ((mh_debug_reg44 & MH_DEBUG_REG44_ARB_WE_MASK) >> MH_DEBUG_REG44_ARB_WE_SHIFT)
+#define MH_DEBUG_REG44_GET_ARB_ID_q(mh_debug_reg44) \
+ ((mh_debug_reg44 & MH_DEBUG_REG44_ARB_ID_q_MASK) >> MH_DEBUG_REG44_ARB_ID_q_SHIFT)
+#define MH_DEBUG_REG44_GET_ARB_VAD_q(mh_debug_reg44) \
+ ((mh_debug_reg44 & MH_DEBUG_REG44_ARB_VAD_q_MASK) >> MH_DEBUG_REG44_ARB_VAD_q_SHIFT)
+
+#define MH_DEBUG_REG44_SET_ARB_WE(mh_debug_reg44_reg, arb_we) \
+ mh_debug_reg44_reg = (mh_debug_reg44_reg & ~MH_DEBUG_REG44_ARB_WE_MASK) | (arb_we << MH_DEBUG_REG44_ARB_WE_SHIFT)
+#define MH_DEBUG_REG44_SET_ARB_ID_q(mh_debug_reg44_reg, arb_id_q) \
+ mh_debug_reg44_reg = (mh_debug_reg44_reg & ~MH_DEBUG_REG44_ARB_ID_q_MASK) | (arb_id_q << MH_DEBUG_REG44_ARB_ID_q_SHIFT)
+#define MH_DEBUG_REG44_SET_ARB_VAD_q(mh_debug_reg44_reg, arb_vad_q) \
+ mh_debug_reg44_reg = (mh_debug_reg44_reg & ~MH_DEBUG_REG44_ARB_VAD_q_MASK) | (arb_vad_q << MH_DEBUG_REG44_ARB_VAD_q_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg44_t {
+ unsigned int arb_we : MH_DEBUG_REG44_ARB_WE_SIZE;
+ unsigned int arb_id_q : MH_DEBUG_REG44_ARB_ID_q_SIZE;
+ unsigned int arb_vad_q : MH_DEBUG_REG44_ARB_VAD_q_SIZE;
+ } mh_debug_reg44_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg44_t {
+ unsigned int arb_vad_q : MH_DEBUG_REG44_ARB_VAD_q_SIZE;
+ unsigned int arb_id_q : MH_DEBUG_REG44_ARB_ID_q_SIZE;
+ unsigned int arb_we : MH_DEBUG_REG44_ARB_WE_SIZE;
+ } mh_debug_reg44_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg44_t f;
+} mh_debug_reg44_u;
+
+
+/*
+ * MH_DEBUG_REG45 struct
+ */
+
+#define MH_DEBUG_REG45_MMU_WE_SIZE 1
+#define MH_DEBUG_REG45_MMU_ID_SIZE 3
+#define MH_DEBUG_REG45_MMU_PAD_SIZE 28
+
+#define MH_DEBUG_REG45_MMU_WE_SHIFT 0
+#define MH_DEBUG_REG45_MMU_ID_SHIFT 1
+#define MH_DEBUG_REG45_MMU_PAD_SHIFT 4
+
+#define MH_DEBUG_REG45_MMU_WE_MASK 0x00000001
+#define MH_DEBUG_REG45_MMU_ID_MASK 0x0000000e
+#define MH_DEBUG_REG45_MMU_PAD_MASK 0xfffffff0
+
+#define MH_DEBUG_REG45_MASK \
+ (MH_DEBUG_REG45_MMU_WE_MASK | \
+ MH_DEBUG_REG45_MMU_ID_MASK | \
+ MH_DEBUG_REG45_MMU_PAD_MASK)
+
+#define MH_DEBUG_REG45(mmu_we, mmu_id, mmu_pad) \
+ ((mmu_we << MH_DEBUG_REG45_MMU_WE_SHIFT) | \
+ (mmu_id << MH_DEBUG_REG45_MMU_ID_SHIFT) | \
+ (mmu_pad << MH_DEBUG_REG45_MMU_PAD_SHIFT))
+
+#define MH_DEBUG_REG45_GET_MMU_WE(mh_debug_reg45) \
+ ((mh_debug_reg45 & MH_DEBUG_REG45_MMU_WE_MASK) >> MH_DEBUG_REG45_MMU_WE_SHIFT)
+#define MH_DEBUG_REG45_GET_MMU_ID(mh_debug_reg45) \
+ ((mh_debug_reg45 & MH_DEBUG_REG45_MMU_ID_MASK) >> MH_DEBUG_REG45_MMU_ID_SHIFT)
+#define MH_DEBUG_REG45_GET_MMU_PAD(mh_debug_reg45) \
+ ((mh_debug_reg45 & MH_DEBUG_REG45_MMU_PAD_MASK) >> MH_DEBUG_REG45_MMU_PAD_SHIFT)
+
+#define MH_DEBUG_REG45_SET_MMU_WE(mh_debug_reg45_reg, mmu_we) \
+ mh_debug_reg45_reg = (mh_debug_reg45_reg & ~MH_DEBUG_REG45_MMU_WE_MASK) | (mmu_we << MH_DEBUG_REG45_MMU_WE_SHIFT)
+#define MH_DEBUG_REG45_SET_MMU_ID(mh_debug_reg45_reg, mmu_id) \
+ mh_debug_reg45_reg = (mh_debug_reg45_reg & ~MH_DEBUG_REG45_MMU_ID_MASK) | (mmu_id << MH_DEBUG_REG45_MMU_ID_SHIFT)
+#define MH_DEBUG_REG45_SET_MMU_PAD(mh_debug_reg45_reg, mmu_pad) \
+ mh_debug_reg45_reg = (mh_debug_reg45_reg & ~MH_DEBUG_REG45_MMU_PAD_MASK) | (mmu_pad << MH_DEBUG_REG45_MMU_PAD_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg45_t {
+ unsigned int mmu_we : MH_DEBUG_REG45_MMU_WE_SIZE;
+ unsigned int mmu_id : MH_DEBUG_REG45_MMU_ID_SIZE;
+ unsigned int mmu_pad : MH_DEBUG_REG45_MMU_PAD_SIZE;
+ } mh_debug_reg45_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg45_t {
+ unsigned int mmu_pad : MH_DEBUG_REG45_MMU_PAD_SIZE;
+ unsigned int mmu_id : MH_DEBUG_REG45_MMU_ID_SIZE;
+ unsigned int mmu_we : MH_DEBUG_REG45_MMU_WE_SIZE;
+ } mh_debug_reg45_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg45_t f;
+} mh_debug_reg45_u;
+
+
+/*
+ * MH_DEBUG_REG46 struct
+ */
+
+#define MH_DEBUG_REG46_WDAT_REG_WE_q_SIZE 1
+#define MH_DEBUG_REG46_WDB_WE_SIZE 1
+#define MH_DEBUG_REG46_WDAT_REG_VALID_q_SIZE 1
+#define MH_DEBUG_REG46_WDB_RTR_SKID_4_SIZE 1
+#define MH_DEBUG_REG46_ARB_WSTRB_q_SIZE 8
+#define MH_DEBUG_REG46_ARB_WLAST_SIZE 1
+#define MH_DEBUG_REG46_WDB_CTRL_EMPTY_SIZE 1
+#define MH_DEBUG_REG46_WDB_FIFO_CNT_q_SIZE 5
+#define MH_DEBUG_REG46_WDC_WDB_RE_q_SIZE 1
+#define MH_DEBUG_REG46_WDB_WDC_WID_SIZE 3
+#define MH_DEBUG_REG46_WDB_WDC_WLAST_SIZE 1
+#define MH_DEBUG_REG46_WDB_WDC_WSTRB_SIZE 8
+
+#define MH_DEBUG_REG46_WDAT_REG_WE_q_SHIFT 0
+#define MH_DEBUG_REG46_WDB_WE_SHIFT 1
+#define MH_DEBUG_REG46_WDAT_REG_VALID_q_SHIFT 2
+#define MH_DEBUG_REG46_WDB_RTR_SKID_4_SHIFT 3
+#define MH_DEBUG_REG46_ARB_WSTRB_q_SHIFT 4
+#define MH_DEBUG_REG46_ARB_WLAST_SHIFT 12
+#define MH_DEBUG_REG46_WDB_CTRL_EMPTY_SHIFT 13
+#define MH_DEBUG_REG46_WDB_FIFO_CNT_q_SHIFT 14
+#define MH_DEBUG_REG46_WDC_WDB_RE_q_SHIFT 19
+#define MH_DEBUG_REG46_WDB_WDC_WID_SHIFT 20
+#define MH_DEBUG_REG46_WDB_WDC_WLAST_SHIFT 23
+#define MH_DEBUG_REG46_WDB_WDC_WSTRB_SHIFT 24
+
+#define MH_DEBUG_REG46_WDAT_REG_WE_q_MASK 0x00000001
+#define MH_DEBUG_REG46_WDB_WE_MASK 0x00000002
+#define MH_DEBUG_REG46_WDAT_REG_VALID_q_MASK 0x00000004
+#define MH_DEBUG_REG46_WDB_RTR_SKID_4_MASK 0x00000008
+#define MH_DEBUG_REG46_ARB_WSTRB_q_MASK 0x00000ff0
+#define MH_DEBUG_REG46_ARB_WLAST_MASK 0x00001000
+#define MH_DEBUG_REG46_WDB_CTRL_EMPTY_MASK 0x00002000
+#define MH_DEBUG_REG46_WDB_FIFO_CNT_q_MASK 0x0007c000
+#define MH_DEBUG_REG46_WDC_WDB_RE_q_MASK 0x00080000
+#define MH_DEBUG_REG46_WDB_WDC_WID_MASK 0x00700000
+#define MH_DEBUG_REG46_WDB_WDC_WLAST_MASK 0x00800000
+#define MH_DEBUG_REG46_WDB_WDC_WSTRB_MASK 0xff000000
+
+#define MH_DEBUG_REG46_MASK \
+ (MH_DEBUG_REG46_WDAT_REG_WE_q_MASK | \
+ MH_DEBUG_REG46_WDB_WE_MASK | \
+ MH_DEBUG_REG46_WDAT_REG_VALID_q_MASK | \
+ MH_DEBUG_REG46_WDB_RTR_SKID_4_MASK | \
+ MH_DEBUG_REG46_ARB_WSTRB_q_MASK | \
+ MH_DEBUG_REG46_ARB_WLAST_MASK | \
+ MH_DEBUG_REG46_WDB_CTRL_EMPTY_MASK | \
+ MH_DEBUG_REG46_WDB_FIFO_CNT_q_MASK | \
+ MH_DEBUG_REG46_WDC_WDB_RE_q_MASK | \
+ MH_DEBUG_REG46_WDB_WDC_WID_MASK | \
+ MH_DEBUG_REG46_WDB_WDC_WLAST_MASK | \
+ MH_DEBUG_REG46_WDB_WDC_WSTRB_MASK)
+
+#define MH_DEBUG_REG46(wdat_reg_we_q, wdb_we, wdat_reg_valid_q, wdb_rtr_skid_4, arb_wstrb_q, arb_wlast, wdb_ctrl_empty, wdb_fifo_cnt_q, wdc_wdb_re_q, wdb_wdc_wid, wdb_wdc_wlast, wdb_wdc_wstrb) \
+ ((wdat_reg_we_q << MH_DEBUG_REG46_WDAT_REG_WE_q_SHIFT) | \
+ (wdb_we << MH_DEBUG_REG46_WDB_WE_SHIFT) | \
+ (wdat_reg_valid_q << MH_DEBUG_REG46_WDAT_REG_VALID_q_SHIFT) | \
+ (wdb_rtr_skid_4 << MH_DEBUG_REG46_WDB_RTR_SKID_4_SHIFT) | \
+ (arb_wstrb_q << MH_DEBUG_REG46_ARB_WSTRB_q_SHIFT) | \
+ (arb_wlast << MH_DEBUG_REG46_ARB_WLAST_SHIFT) | \
+ (wdb_ctrl_empty << MH_DEBUG_REG46_WDB_CTRL_EMPTY_SHIFT) | \
+ (wdb_fifo_cnt_q << MH_DEBUG_REG46_WDB_FIFO_CNT_q_SHIFT) | \
+ (wdc_wdb_re_q << MH_DEBUG_REG46_WDC_WDB_RE_q_SHIFT) | \
+ (wdb_wdc_wid << MH_DEBUG_REG46_WDB_WDC_WID_SHIFT) | \
+ (wdb_wdc_wlast << MH_DEBUG_REG46_WDB_WDC_WLAST_SHIFT) | \
+ (wdb_wdc_wstrb << MH_DEBUG_REG46_WDB_WDC_WSTRB_SHIFT))
+
+#define MH_DEBUG_REG46_GET_WDAT_REG_WE_q(mh_debug_reg46) \
+ ((mh_debug_reg46 & MH_DEBUG_REG46_WDAT_REG_WE_q_MASK) >> MH_DEBUG_REG46_WDAT_REG_WE_q_SHIFT)
+#define MH_DEBUG_REG46_GET_WDB_WE(mh_debug_reg46) \
+ ((mh_debug_reg46 & MH_DEBUG_REG46_WDB_WE_MASK) >> MH_DEBUG_REG46_WDB_WE_SHIFT)
+#define MH_DEBUG_REG46_GET_WDAT_REG_VALID_q(mh_debug_reg46) \
+ ((mh_debug_reg46 & MH_DEBUG_REG46_WDAT_REG_VALID_q_MASK) >> MH_DEBUG_REG46_WDAT_REG_VALID_q_SHIFT)
+#define MH_DEBUG_REG46_GET_WDB_RTR_SKID_4(mh_debug_reg46) \
+ ((mh_debug_reg46 & MH_DEBUG_REG46_WDB_RTR_SKID_4_MASK) >> MH_DEBUG_REG46_WDB_RTR_SKID_4_SHIFT)
+#define MH_DEBUG_REG46_GET_ARB_WSTRB_q(mh_debug_reg46) \
+ ((mh_debug_reg46 & MH_DEBUG_REG46_ARB_WSTRB_q_MASK) >> MH_DEBUG_REG46_ARB_WSTRB_q_SHIFT)
+#define MH_DEBUG_REG46_GET_ARB_WLAST(mh_debug_reg46) \
+ ((mh_debug_reg46 & MH_DEBUG_REG46_ARB_WLAST_MASK) >> MH_DEBUG_REG46_ARB_WLAST_SHIFT)
+#define MH_DEBUG_REG46_GET_WDB_CTRL_EMPTY(mh_debug_reg46) \
+ ((mh_debug_reg46 & MH_DEBUG_REG46_WDB_CTRL_EMPTY_MASK) >> MH_DEBUG_REG46_WDB_CTRL_EMPTY_SHIFT)
+#define MH_DEBUG_REG46_GET_WDB_FIFO_CNT_q(mh_debug_reg46) \
+ ((mh_debug_reg46 & MH_DEBUG_REG46_WDB_FIFO_CNT_q_MASK) >> MH_DEBUG_REG46_WDB_FIFO_CNT_q_SHIFT)
+#define MH_DEBUG_REG46_GET_WDC_WDB_RE_q(mh_debug_reg46) \
+ ((mh_debug_reg46 & MH_DEBUG_REG46_WDC_WDB_RE_q_MASK) >> MH_DEBUG_REG46_WDC_WDB_RE_q_SHIFT)
+#define MH_DEBUG_REG46_GET_WDB_WDC_WID(mh_debug_reg46) \
+ ((mh_debug_reg46 & MH_DEBUG_REG46_WDB_WDC_WID_MASK) >> MH_DEBUG_REG46_WDB_WDC_WID_SHIFT)
+#define MH_DEBUG_REG46_GET_WDB_WDC_WLAST(mh_debug_reg46) \
+ ((mh_debug_reg46 & MH_DEBUG_REG46_WDB_WDC_WLAST_MASK) >> MH_DEBUG_REG46_WDB_WDC_WLAST_SHIFT)
+#define MH_DEBUG_REG46_GET_WDB_WDC_WSTRB(mh_debug_reg46) \
+ ((mh_debug_reg46 & MH_DEBUG_REG46_WDB_WDC_WSTRB_MASK) >> MH_DEBUG_REG46_WDB_WDC_WSTRB_SHIFT)
+
+#define MH_DEBUG_REG46_SET_WDAT_REG_WE_q(mh_debug_reg46_reg, wdat_reg_we_q) \
+ mh_debug_reg46_reg = (mh_debug_reg46_reg & ~MH_DEBUG_REG46_WDAT_REG_WE_q_MASK) | (wdat_reg_we_q << MH_DEBUG_REG46_WDAT_REG_WE_q_SHIFT)
+#define MH_DEBUG_REG46_SET_WDB_WE(mh_debug_reg46_reg, wdb_we) \
+ mh_debug_reg46_reg = (mh_debug_reg46_reg & ~MH_DEBUG_REG46_WDB_WE_MASK) | (wdb_we << MH_DEBUG_REG46_WDB_WE_SHIFT)
+#define MH_DEBUG_REG46_SET_WDAT_REG_VALID_q(mh_debug_reg46_reg, wdat_reg_valid_q) \
+ mh_debug_reg46_reg = (mh_debug_reg46_reg & ~MH_DEBUG_REG46_WDAT_REG_VALID_q_MASK) | (wdat_reg_valid_q << MH_DEBUG_REG46_WDAT_REG_VALID_q_SHIFT)
+#define MH_DEBUG_REG46_SET_WDB_RTR_SKID_4(mh_debug_reg46_reg, wdb_rtr_skid_4) \
+ mh_debug_reg46_reg = (mh_debug_reg46_reg & ~MH_DEBUG_REG46_WDB_RTR_SKID_4_MASK) | (wdb_rtr_skid_4 << MH_DEBUG_REG46_WDB_RTR_SKID_4_SHIFT)
+#define MH_DEBUG_REG46_SET_ARB_WSTRB_q(mh_debug_reg46_reg, arb_wstrb_q) \
+ mh_debug_reg46_reg = (mh_debug_reg46_reg & ~MH_DEBUG_REG46_ARB_WSTRB_q_MASK) | (arb_wstrb_q << MH_DEBUG_REG46_ARB_WSTRB_q_SHIFT)
+#define MH_DEBUG_REG46_SET_ARB_WLAST(mh_debug_reg46_reg, arb_wlast) \
+ mh_debug_reg46_reg = (mh_debug_reg46_reg & ~MH_DEBUG_REG46_ARB_WLAST_MASK) | (arb_wlast << MH_DEBUG_REG46_ARB_WLAST_SHIFT)
+#define MH_DEBUG_REG46_SET_WDB_CTRL_EMPTY(mh_debug_reg46_reg, wdb_ctrl_empty) \
+ mh_debug_reg46_reg = (mh_debug_reg46_reg & ~MH_DEBUG_REG46_WDB_CTRL_EMPTY_MASK) | (wdb_ctrl_empty << MH_DEBUG_REG46_WDB_CTRL_EMPTY_SHIFT)
+#define MH_DEBUG_REG46_SET_WDB_FIFO_CNT_q(mh_debug_reg46_reg, wdb_fifo_cnt_q) \
+ mh_debug_reg46_reg = (mh_debug_reg46_reg & ~MH_DEBUG_REG46_WDB_FIFO_CNT_q_MASK) | (wdb_fifo_cnt_q << MH_DEBUG_REG46_WDB_FIFO_CNT_q_SHIFT)
+#define MH_DEBUG_REG46_SET_WDC_WDB_RE_q(mh_debug_reg46_reg, wdc_wdb_re_q) \
+ mh_debug_reg46_reg = (mh_debug_reg46_reg & ~MH_DEBUG_REG46_WDC_WDB_RE_q_MASK) | (wdc_wdb_re_q << MH_DEBUG_REG46_WDC_WDB_RE_q_SHIFT)
+#define MH_DEBUG_REG46_SET_WDB_WDC_WID(mh_debug_reg46_reg, wdb_wdc_wid) \
+ mh_debug_reg46_reg = (mh_debug_reg46_reg & ~MH_DEBUG_REG46_WDB_WDC_WID_MASK) | (wdb_wdc_wid << MH_DEBUG_REG46_WDB_WDC_WID_SHIFT)
+#define MH_DEBUG_REG46_SET_WDB_WDC_WLAST(mh_debug_reg46_reg, wdb_wdc_wlast) \
+ mh_debug_reg46_reg = (mh_debug_reg46_reg & ~MH_DEBUG_REG46_WDB_WDC_WLAST_MASK) | (wdb_wdc_wlast << MH_DEBUG_REG46_WDB_WDC_WLAST_SHIFT)
+#define MH_DEBUG_REG46_SET_WDB_WDC_WSTRB(mh_debug_reg46_reg, wdb_wdc_wstrb) \
+ mh_debug_reg46_reg = (mh_debug_reg46_reg & ~MH_DEBUG_REG46_WDB_WDC_WSTRB_MASK) | (wdb_wdc_wstrb << MH_DEBUG_REG46_WDB_WDC_WSTRB_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg46_t {
+ unsigned int wdat_reg_we_q : MH_DEBUG_REG46_WDAT_REG_WE_q_SIZE;
+ unsigned int wdb_we : MH_DEBUG_REG46_WDB_WE_SIZE;
+ unsigned int wdat_reg_valid_q : MH_DEBUG_REG46_WDAT_REG_VALID_q_SIZE;
+ unsigned int wdb_rtr_skid_4 : MH_DEBUG_REG46_WDB_RTR_SKID_4_SIZE;
+ unsigned int arb_wstrb_q : MH_DEBUG_REG46_ARB_WSTRB_q_SIZE;
+ unsigned int arb_wlast : MH_DEBUG_REG46_ARB_WLAST_SIZE;
+ unsigned int wdb_ctrl_empty : MH_DEBUG_REG46_WDB_CTRL_EMPTY_SIZE;
+ unsigned int wdb_fifo_cnt_q : MH_DEBUG_REG46_WDB_FIFO_CNT_q_SIZE;
+ unsigned int wdc_wdb_re_q : MH_DEBUG_REG46_WDC_WDB_RE_q_SIZE;
+ unsigned int wdb_wdc_wid : MH_DEBUG_REG46_WDB_WDC_WID_SIZE;
+ unsigned int wdb_wdc_wlast : MH_DEBUG_REG46_WDB_WDC_WLAST_SIZE;
+ unsigned int wdb_wdc_wstrb : MH_DEBUG_REG46_WDB_WDC_WSTRB_SIZE;
+ } mh_debug_reg46_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg46_t {
+ unsigned int wdb_wdc_wstrb : MH_DEBUG_REG46_WDB_WDC_WSTRB_SIZE;
+ unsigned int wdb_wdc_wlast : MH_DEBUG_REG46_WDB_WDC_WLAST_SIZE;
+ unsigned int wdb_wdc_wid : MH_DEBUG_REG46_WDB_WDC_WID_SIZE;
+ unsigned int wdc_wdb_re_q : MH_DEBUG_REG46_WDC_WDB_RE_q_SIZE;
+ unsigned int wdb_fifo_cnt_q : MH_DEBUG_REG46_WDB_FIFO_CNT_q_SIZE;
+ unsigned int wdb_ctrl_empty : MH_DEBUG_REG46_WDB_CTRL_EMPTY_SIZE;
+ unsigned int arb_wlast : MH_DEBUG_REG46_ARB_WLAST_SIZE;
+ unsigned int arb_wstrb_q : MH_DEBUG_REG46_ARB_WSTRB_q_SIZE;
+ unsigned int wdb_rtr_skid_4 : MH_DEBUG_REG46_WDB_RTR_SKID_4_SIZE;
+ unsigned int wdat_reg_valid_q : MH_DEBUG_REG46_WDAT_REG_VALID_q_SIZE;
+ unsigned int wdb_we : MH_DEBUG_REG46_WDB_WE_SIZE;
+ unsigned int wdat_reg_we_q : MH_DEBUG_REG46_WDAT_REG_WE_q_SIZE;
+ } mh_debug_reg46_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg46_t f;
+} mh_debug_reg46_u;
+
+
+/*
+ * MH_DEBUG_REG47 struct
+ */
+
+#define MH_DEBUG_REG47_WDB_WDC_WDATA_31_0_SIZE 32
+
+#define MH_DEBUG_REG47_WDB_WDC_WDATA_31_0_SHIFT 0
+
+#define MH_DEBUG_REG47_WDB_WDC_WDATA_31_0_MASK 0xffffffff
+
+#define MH_DEBUG_REG47_MASK \
+ (MH_DEBUG_REG47_WDB_WDC_WDATA_31_0_MASK)
+
+#define MH_DEBUG_REG47(wdb_wdc_wdata_31_0) \
+ ((wdb_wdc_wdata_31_0 << MH_DEBUG_REG47_WDB_WDC_WDATA_31_0_SHIFT))
+
+#define MH_DEBUG_REG47_GET_WDB_WDC_WDATA_31_0(mh_debug_reg47) \
+ ((mh_debug_reg47 & MH_DEBUG_REG47_WDB_WDC_WDATA_31_0_MASK) >> MH_DEBUG_REG47_WDB_WDC_WDATA_31_0_SHIFT)
+
+#define MH_DEBUG_REG47_SET_WDB_WDC_WDATA_31_0(mh_debug_reg47_reg, wdb_wdc_wdata_31_0) \
+ mh_debug_reg47_reg = (mh_debug_reg47_reg & ~MH_DEBUG_REG47_WDB_WDC_WDATA_31_0_MASK) | (wdb_wdc_wdata_31_0 << MH_DEBUG_REG47_WDB_WDC_WDATA_31_0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg47_t {
+ unsigned int wdb_wdc_wdata_31_0 : MH_DEBUG_REG47_WDB_WDC_WDATA_31_0_SIZE;
+ } mh_debug_reg47_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg47_t {
+ unsigned int wdb_wdc_wdata_31_0 : MH_DEBUG_REG47_WDB_WDC_WDATA_31_0_SIZE;
+ } mh_debug_reg47_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg47_t f;
+} mh_debug_reg47_u;
+
+
+/*
+ * MH_DEBUG_REG48 struct
+ */
+
+#define MH_DEBUG_REG48_WDB_WDC_WDATA_63_32_SIZE 32
+
+#define MH_DEBUG_REG48_WDB_WDC_WDATA_63_32_SHIFT 0
+
+#define MH_DEBUG_REG48_WDB_WDC_WDATA_63_32_MASK 0xffffffff
+
+#define MH_DEBUG_REG48_MASK \
+ (MH_DEBUG_REG48_WDB_WDC_WDATA_63_32_MASK)
+
+#define MH_DEBUG_REG48(wdb_wdc_wdata_63_32) \
+ ((wdb_wdc_wdata_63_32 << MH_DEBUG_REG48_WDB_WDC_WDATA_63_32_SHIFT))
+
+#define MH_DEBUG_REG48_GET_WDB_WDC_WDATA_63_32(mh_debug_reg48) \
+ ((mh_debug_reg48 & MH_DEBUG_REG48_WDB_WDC_WDATA_63_32_MASK) >> MH_DEBUG_REG48_WDB_WDC_WDATA_63_32_SHIFT)
+
+#define MH_DEBUG_REG48_SET_WDB_WDC_WDATA_63_32(mh_debug_reg48_reg, wdb_wdc_wdata_63_32) \
+ mh_debug_reg48_reg = (mh_debug_reg48_reg & ~MH_DEBUG_REG48_WDB_WDC_WDATA_63_32_MASK) | (wdb_wdc_wdata_63_32 << MH_DEBUG_REG48_WDB_WDC_WDATA_63_32_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg48_t {
+ unsigned int wdb_wdc_wdata_63_32 : MH_DEBUG_REG48_WDB_WDC_WDATA_63_32_SIZE;
+ } mh_debug_reg48_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg48_t {
+ unsigned int wdb_wdc_wdata_63_32 : MH_DEBUG_REG48_WDB_WDC_WDATA_63_32_SIZE;
+ } mh_debug_reg48_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg48_t f;
+} mh_debug_reg48_u;
+
+
+/*
+ * MH_DEBUG_REG49 struct
+ */
+
+#define MH_DEBUG_REG49_CTRL_ARC_EMPTY_SIZE 1
+#define MH_DEBUG_REG49_CTRL_RARC_EMPTY_SIZE 1
+#define MH_DEBUG_REG49_ARQ_CTRL_EMPTY_SIZE 1
+#define MH_DEBUG_REG49_ARQ_CTRL_WRITE_SIZE 1
+#define MH_DEBUG_REG49_TLBMISS_CTRL_RTS_SIZE 1
+#define MH_DEBUG_REG49_CTRL_TLBMISS_RE_q_SIZE 1
+#define MH_DEBUG_REG49_INFLT_LIMIT_q_SIZE 1
+#define MH_DEBUG_REG49_INFLT_LIMIT_CNT_q_SIZE 6
+#define MH_DEBUG_REG49_ARC_CTRL_RE_q_SIZE 1
+#define MH_DEBUG_REG49_RARC_CTRL_RE_q_SIZE 1
+#define MH_DEBUG_REG49_RVALID_q_SIZE 1
+#define MH_DEBUG_REG49_RREADY_q_SIZE 1
+#define MH_DEBUG_REG49_RLAST_q_SIZE 1
+#define MH_DEBUG_REG49_BVALID_q_SIZE 1
+#define MH_DEBUG_REG49_BREADY_q_SIZE 1
+
+#define MH_DEBUG_REG49_CTRL_ARC_EMPTY_SHIFT 0
+#define MH_DEBUG_REG49_CTRL_RARC_EMPTY_SHIFT 1
+#define MH_DEBUG_REG49_ARQ_CTRL_EMPTY_SHIFT 2
+#define MH_DEBUG_REG49_ARQ_CTRL_WRITE_SHIFT 3
+#define MH_DEBUG_REG49_TLBMISS_CTRL_RTS_SHIFT 4
+#define MH_DEBUG_REG49_CTRL_TLBMISS_RE_q_SHIFT 5
+#define MH_DEBUG_REG49_INFLT_LIMIT_q_SHIFT 6
+#define MH_DEBUG_REG49_INFLT_LIMIT_CNT_q_SHIFT 7
+#define MH_DEBUG_REG49_ARC_CTRL_RE_q_SHIFT 13
+#define MH_DEBUG_REG49_RARC_CTRL_RE_q_SHIFT 14
+#define MH_DEBUG_REG49_RVALID_q_SHIFT 15
+#define MH_DEBUG_REG49_RREADY_q_SHIFT 16
+#define MH_DEBUG_REG49_RLAST_q_SHIFT 17
+#define MH_DEBUG_REG49_BVALID_q_SHIFT 18
+#define MH_DEBUG_REG49_BREADY_q_SHIFT 19
+
+#define MH_DEBUG_REG49_CTRL_ARC_EMPTY_MASK 0x00000001
+#define MH_DEBUG_REG49_CTRL_RARC_EMPTY_MASK 0x00000002
+#define MH_DEBUG_REG49_ARQ_CTRL_EMPTY_MASK 0x00000004
+#define MH_DEBUG_REG49_ARQ_CTRL_WRITE_MASK 0x00000008
+#define MH_DEBUG_REG49_TLBMISS_CTRL_RTS_MASK 0x00000010
+#define MH_DEBUG_REG49_CTRL_TLBMISS_RE_q_MASK 0x00000020
+#define MH_DEBUG_REG49_INFLT_LIMIT_q_MASK 0x00000040
+#define MH_DEBUG_REG49_INFLT_LIMIT_CNT_q_MASK 0x00001f80
+#define MH_DEBUG_REG49_ARC_CTRL_RE_q_MASK 0x00002000
+#define MH_DEBUG_REG49_RARC_CTRL_RE_q_MASK 0x00004000
+#define MH_DEBUG_REG49_RVALID_q_MASK 0x00008000
+#define MH_DEBUG_REG49_RREADY_q_MASK 0x00010000
+#define MH_DEBUG_REG49_RLAST_q_MASK 0x00020000
+#define MH_DEBUG_REG49_BVALID_q_MASK 0x00040000
+#define MH_DEBUG_REG49_BREADY_q_MASK 0x00080000
+
+#define MH_DEBUG_REG49_MASK \
+ (MH_DEBUG_REG49_CTRL_ARC_EMPTY_MASK | \
+ MH_DEBUG_REG49_CTRL_RARC_EMPTY_MASK | \
+ MH_DEBUG_REG49_ARQ_CTRL_EMPTY_MASK | \
+ MH_DEBUG_REG49_ARQ_CTRL_WRITE_MASK | \
+ MH_DEBUG_REG49_TLBMISS_CTRL_RTS_MASK | \
+ MH_DEBUG_REG49_CTRL_TLBMISS_RE_q_MASK | \
+ MH_DEBUG_REG49_INFLT_LIMIT_q_MASK | \
+ MH_DEBUG_REG49_INFLT_LIMIT_CNT_q_MASK | \
+ MH_DEBUG_REG49_ARC_CTRL_RE_q_MASK | \
+ MH_DEBUG_REG49_RARC_CTRL_RE_q_MASK | \
+ MH_DEBUG_REG49_RVALID_q_MASK | \
+ MH_DEBUG_REG49_RREADY_q_MASK | \
+ MH_DEBUG_REG49_RLAST_q_MASK | \
+ MH_DEBUG_REG49_BVALID_q_MASK | \
+ MH_DEBUG_REG49_BREADY_q_MASK)
+
+#define MH_DEBUG_REG49(ctrl_arc_empty, ctrl_rarc_empty, arq_ctrl_empty, arq_ctrl_write, tlbmiss_ctrl_rts, ctrl_tlbmiss_re_q, inflt_limit_q, inflt_limit_cnt_q, arc_ctrl_re_q, rarc_ctrl_re_q, rvalid_q, rready_q, rlast_q, bvalid_q, bready_q) \
+ ((ctrl_arc_empty << MH_DEBUG_REG49_CTRL_ARC_EMPTY_SHIFT) | \
+ (ctrl_rarc_empty << MH_DEBUG_REG49_CTRL_RARC_EMPTY_SHIFT) | \
+ (arq_ctrl_empty << MH_DEBUG_REG49_ARQ_CTRL_EMPTY_SHIFT) | \
+ (arq_ctrl_write << MH_DEBUG_REG49_ARQ_CTRL_WRITE_SHIFT) | \
+ (tlbmiss_ctrl_rts << MH_DEBUG_REG49_TLBMISS_CTRL_RTS_SHIFT) | \
+ (ctrl_tlbmiss_re_q << MH_DEBUG_REG49_CTRL_TLBMISS_RE_q_SHIFT) | \
+ (inflt_limit_q << MH_DEBUG_REG49_INFLT_LIMIT_q_SHIFT) | \
+ (inflt_limit_cnt_q << MH_DEBUG_REG49_INFLT_LIMIT_CNT_q_SHIFT) | \
+ (arc_ctrl_re_q << MH_DEBUG_REG49_ARC_CTRL_RE_q_SHIFT) | \
+ (rarc_ctrl_re_q << MH_DEBUG_REG49_RARC_CTRL_RE_q_SHIFT) | \
+ (rvalid_q << MH_DEBUG_REG49_RVALID_q_SHIFT) | \
+ (rready_q << MH_DEBUG_REG49_RREADY_q_SHIFT) | \
+ (rlast_q << MH_DEBUG_REG49_RLAST_q_SHIFT) | \
+ (bvalid_q << MH_DEBUG_REG49_BVALID_q_SHIFT) | \
+ (bready_q << MH_DEBUG_REG49_BREADY_q_SHIFT))
+
+#define MH_DEBUG_REG49_GET_CTRL_ARC_EMPTY(mh_debug_reg49) \
+ ((mh_debug_reg49 & MH_DEBUG_REG49_CTRL_ARC_EMPTY_MASK) >> MH_DEBUG_REG49_CTRL_ARC_EMPTY_SHIFT)
+#define MH_DEBUG_REG49_GET_CTRL_RARC_EMPTY(mh_debug_reg49) \
+ ((mh_debug_reg49 & MH_DEBUG_REG49_CTRL_RARC_EMPTY_MASK) >> MH_DEBUG_REG49_CTRL_RARC_EMPTY_SHIFT)
+#define MH_DEBUG_REG49_GET_ARQ_CTRL_EMPTY(mh_debug_reg49) \
+ ((mh_debug_reg49 & MH_DEBUG_REG49_ARQ_CTRL_EMPTY_MASK) >> MH_DEBUG_REG49_ARQ_CTRL_EMPTY_SHIFT)
+#define MH_DEBUG_REG49_GET_ARQ_CTRL_WRITE(mh_debug_reg49) \
+ ((mh_debug_reg49 & MH_DEBUG_REG49_ARQ_CTRL_WRITE_MASK) >> MH_DEBUG_REG49_ARQ_CTRL_WRITE_SHIFT)
+#define MH_DEBUG_REG49_GET_TLBMISS_CTRL_RTS(mh_debug_reg49) \
+ ((mh_debug_reg49 & MH_DEBUG_REG49_TLBMISS_CTRL_RTS_MASK) >> MH_DEBUG_REG49_TLBMISS_CTRL_RTS_SHIFT)
+#define MH_DEBUG_REG49_GET_CTRL_TLBMISS_RE_q(mh_debug_reg49) \
+ ((mh_debug_reg49 & MH_DEBUG_REG49_CTRL_TLBMISS_RE_q_MASK) >> MH_DEBUG_REG49_CTRL_TLBMISS_RE_q_SHIFT)
+#define MH_DEBUG_REG49_GET_INFLT_LIMIT_q(mh_debug_reg49) \
+ ((mh_debug_reg49 & MH_DEBUG_REG49_INFLT_LIMIT_q_MASK) >> MH_DEBUG_REG49_INFLT_LIMIT_q_SHIFT)
+#define MH_DEBUG_REG49_GET_INFLT_LIMIT_CNT_q(mh_debug_reg49) \
+ ((mh_debug_reg49 & MH_DEBUG_REG49_INFLT_LIMIT_CNT_q_MASK) >> MH_DEBUG_REG49_INFLT_LIMIT_CNT_q_SHIFT)
+#define MH_DEBUG_REG49_GET_ARC_CTRL_RE_q(mh_debug_reg49) \
+ ((mh_debug_reg49 & MH_DEBUG_REG49_ARC_CTRL_RE_q_MASK) >> MH_DEBUG_REG49_ARC_CTRL_RE_q_SHIFT)
+#define MH_DEBUG_REG49_GET_RARC_CTRL_RE_q(mh_debug_reg49) \
+ ((mh_debug_reg49 & MH_DEBUG_REG49_RARC_CTRL_RE_q_MASK) >> MH_DEBUG_REG49_RARC_CTRL_RE_q_SHIFT)
+#define MH_DEBUG_REG49_GET_RVALID_q(mh_debug_reg49) \
+ ((mh_debug_reg49 & MH_DEBUG_REG49_RVALID_q_MASK) >> MH_DEBUG_REG49_RVALID_q_SHIFT)
+#define MH_DEBUG_REG49_GET_RREADY_q(mh_debug_reg49) \
+ ((mh_debug_reg49 & MH_DEBUG_REG49_RREADY_q_MASK) >> MH_DEBUG_REG49_RREADY_q_SHIFT)
+#define MH_DEBUG_REG49_GET_RLAST_q(mh_debug_reg49) \
+ ((mh_debug_reg49 & MH_DEBUG_REG49_RLAST_q_MASK) >> MH_DEBUG_REG49_RLAST_q_SHIFT)
+#define MH_DEBUG_REG49_GET_BVALID_q(mh_debug_reg49) \
+ ((mh_debug_reg49 & MH_DEBUG_REG49_BVALID_q_MASK) >> MH_DEBUG_REG49_BVALID_q_SHIFT)
+#define MH_DEBUG_REG49_GET_BREADY_q(mh_debug_reg49) \
+ ((mh_debug_reg49 & MH_DEBUG_REG49_BREADY_q_MASK) >> MH_DEBUG_REG49_BREADY_q_SHIFT)
+
+#define MH_DEBUG_REG49_SET_CTRL_ARC_EMPTY(mh_debug_reg49_reg, ctrl_arc_empty) \
+ mh_debug_reg49_reg = (mh_debug_reg49_reg & ~MH_DEBUG_REG49_CTRL_ARC_EMPTY_MASK) | (ctrl_arc_empty << MH_DEBUG_REG49_CTRL_ARC_EMPTY_SHIFT)
+#define MH_DEBUG_REG49_SET_CTRL_RARC_EMPTY(mh_debug_reg49_reg, ctrl_rarc_empty) \
+ mh_debug_reg49_reg = (mh_debug_reg49_reg & ~MH_DEBUG_REG49_CTRL_RARC_EMPTY_MASK) | (ctrl_rarc_empty << MH_DEBUG_REG49_CTRL_RARC_EMPTY_SHIFT)
+#define MH_DEBUG_REG49_SET_ARQ_CTRL_EMPTY(mh_debug_reg49_reg, arq_ctrl_empty) \
+ mh_debug_reg49_reg = (mh_debug_reg49_reg & ~MH_DEBUG_REG49_ARQ_CTRL_EMPTY_MASK) | (arq_ctrl_empty << MH_DEBUG_REG49_ARQ_CTRL_EMPTY_SHIFT)
+#define MH_DEBUG_REG49_SET_ARQ_CTRL_WRITE(mh_debug_reg49_reg, arq_ctrl_write) \
+ mh_debug_reg49_reg = (mh_debug_reg49_reg & ~MH_DEBUG_REG49_ARQ_CTRL_WRITE_MASK) | (arq_ctrl_write << MH_DEBUG_REG49_ARQ_CTRL_WRITE_SHIFT)
+#define MH_DEBUG_REG49_SET_TLBMISS_CTRL_RTS(mh_debug_reg49_reg, tlbmiss_ctrl_rts) \
+ mh_debug_reg49_reg = (mh_debug_reg49_reg & ~MH_DEBUG_REG49_TLBMISS_CTRL_RTS_MASK) | (tlbmiss_ctrl_rts << MH_DEBUG_REG49_TLBMISS_CTRL_RTS_SHIFT)
+#define MH_DEBUG_REG49_SET_CTRL_TLBMISS_RE_q(mh_debug_reg49_reg, ctrl_tlbmiss_re_q) \
+ mh_debug_reg49_reg = (mh_debug_reg49_reg & ~MH_DEBUG_REG49_CTRL_TLBMISS_RE_q_MASK) | (ctrl_tlbmiss_re_q << MH_DEBUG_REG49_CTRL_TLBMISS_RE_q_SHIFT)
+#define MH_DEBUG_REG49_SET_INFLT_LIMIT_q(mh_debug_reg49_reg, inflt_limit_q) \
+ mh_debug_reg49_reg = (mh_debug_reg49_reg & ~MH_DEBUG_REG49_INFLT_LIMIT_q_MASK) | (inflt_limit_q << MH_DEBUG_REG49_INFLT_LIMIT_q_SHIFT)
+#define MH_DEBUG_REG49_SET_INFLT_LIMIT_CNT_q(mh_debug_reg49_reg, inflt_limit_cnt_q) \
+ mh_debug_reg49_reg = (mh_debug_reg49_reg & ~MH_DEBUG_REG49_INFLT_LIMIT_CNT_q_MASK) | (inflt_limit_cnt_q << MH_DEBUG_REG49_INFLT_LIMIT_CNT_q_SHIFT)
+#define MH_DEBUG_REG49_SET_ARC_CTRL_RE_q(mh_debug_reg49_reg, arc_ctrl_re_q) \
+ mh_debug_reg49_reg = (mh_debug_reg49_reg & ~MH_DEBUG_REG49_ARC_CTRL_RE_q_MASK) | (arc_ctrl_re_q << MH_DEBUG_REG49_ARC_CTRL_RE_q_SHIFT)
+#define MH_DEBUG_REG49_SET_RARC_CTRL_RE_q(mh_debug_reg49_reg, rarc_ctrl_re_q) \
+ mh_debug_reg49_reg = (mh_debug_reg49_reg & ~MH_DEBUG_REG49_RARC_CTRL_RE_q_MASK) | (rarc_ctrl_re_q << MH_DEBUG_REG49_RARC_CTRL_RE_q_SHIFT)
+#define MH_DEBUG_REG49_SET_RVALID_q(mh_debug_reg49_reg, rvalid_q) \
+ mh_debug_reg49_reg = (mh_debug_reg49_reg & ~MH_DEBUG_REG49_RVALID_q_MASK) | (rvalid_q << MH_DEBUG_REG49_RVALID_q_SHIFT)
+#define MH_DEBUG_REG49_SET_RREADY_q(mh_debug_reg49_reg, rready_q) \
+ mh_debug_reg49_reg = (mh_debug_reg49_reg & ~MH_DEBUG_REG49_RREADY_q_MASK) | (rready_q << MH_DEBUG_REG49_RREADY_q_SHIFT)
+#define MH_DEBUG_REG49_SET_RLAST_q(mh_debug_reg49_reg, rlast_q) \
+ mh_debug_reg49_reg = (mh_debug_reg49_reg & ~MH_DEBUG_REG49_RLAST_q_MASK) | (rlast_q << MH_DEBUG_REG49_RLAST_q_SHIFT)
+#define MH_DEBUG_REG49_SET_BVALID_q(mh_debug_reg49_reg, bvalid_q) \
+ mh_debug_reg49_reg = (mh_debug_reg49_reg & ~MH_DEBUG_REG49_BVALID_q_MASK) | (bvalid_q << MH_DEBUG_REG49_BVALID_q_SHIFT)
+#define MH_DEBUG_REG49_SET_BREADY_q(mh_debug_reg49_reg, bready_q) \
+ mh_debug_reg49_reg = (mh_debug_reg49_reg & ~MH_DEBUG_REG49_BREADY_q_MASK) | (bready_q << MH_DEBUG_REG49_BREADY_q_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg49_t {
+ unsigned int ctrl_arc_empty : MH_DEBUG_REG49_CTRL_ARC_EMPTY_SIZE;
+ unsigned int ctrl_rarc_empty : MH_DEBUG_REG49_CTRL_RARC_EMPTY_SIZE;
+ unsigned int arq_ctrl_empty : MH_DEBUG_REG49_ARQ_CTRL_EMPTY_SIZE;
+ unsigned int arq_ctrl_write : MH_DEBUG_REG49_ARQ_CTRL_WRITE_SIZE;
+ unsigned int tlbmiss_ctrl_rts : MH_DEBUG_REG49_TLBMISS_CTRL_RTS_SIZE;
+ unsigned int ctrl_tlbmiss_re_q : MH_DEBUG_REG49_CTRL_TLBMISS_RE_q_SIZE;
+ unsigned int inflt_limit_q : MH_DEBUG_REG49_INFLT_LIMIT_q_SIZE;
+ unsigned int inflt_limit_cnt_q : MH_DEBUG_REG49_INFLT_LIMIT_CNT_q_SIZE;
+ unsigned int arc_ctrl_re_q : MH_DEBUG_REG49_ARC_CTRL_RE_q_SIZE;
+ unsigned int rarc_ctrl_re_q : MH_DEBUG_REG49_RARC_CTRL_RE_q_SIZE;
+ unsigned int rvalid_q : MH_DEBUG_REG49_RVALID_q_SIZE;
+ unsigned int rready_q : MH_DEBUG_REG49_RREADY_q_SIZE;
+ unsigned int rlast_q : MH_DEBUG_REG49_RLAST_q_SIZE;
+ unsigned int bvalid_q : MH_DEBUG_REG49_BVALID_q_SIZE;
+ unsigned int bready_q : MH_DEBUG_REG49_BREADY_q_SIZE;
+ unsigned int : 12;
+ } mh_debug_reg49_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg49_t {
+ unsigned int : 12;
+ unsigned int bready_q : MH_DEBUG_REG49_BREADY_q_SIZE;
+ unsigned int bvalid_q : MH_DEBUG_REG49_BVALID_q_SIZE;
+ unsigned int rlast_q : MH_DEBUG_REG49_RLAST_q_SIZE;
+ unsigned int rready_q : MH_DEBUG_REG49_RREADY_q_SIZE;
+ unsigned int rvalid_q : MH_DEBUG_REG49_RVALID_q_SIZE;
+ unsigned int rarc_ctrl_re_q : MH_DEBUG_REG49_RARC_CTRL_RE_q_SIZE;
+ unsigned int arc_ctrl_re_q : MH_DEBUG_REG49_ARC_CTRL_RE_q_SIZE;
+ unsigned int inflt_limit_cnt_q : MH_DEBUG_REG49_INFLT_LIMIT_CNT_q_SIZE;
+ unsigned int inflt_limit_q : MH_DEBUG_REG49_INFLT_LIMIT_q_SIZE;
+ unsigned int ctrl_tlbmiss_re_q : MH_DEBUG_REG49_CTRL_TLBMISS_RE_q_SIZE;
+ unsigned int tlbmiss_ctrl_rts : MH_DEBUG_REG49_TLBMISS_CTRL_RTS_SIZE;
+ unsigned int arq_ctrl_write : MH_DEBUG_REG49_ARQ_CTRL_WRITE_SIZE;
+ unsigned int arq_ctrl_empty : MH_DEBUG_REG49_ARQ_CTRL_EMPTY_SIZE;
+ unsigned int ctrl_rarc_empty : MH_DEBUG_REG49_CTRL_RARC_EMPTY_SIZE;
+ unsigned int ctrl_arc_empty : MH_DEBUG_REG49_CTRL_ARC_EMPTY_SIZE;
+ } mh_debug_reg49_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg49_t f;
+} mh_debug_reg49_u;
+
+
+/*
+ * MH_DEBUG_REG50 struct
+ */
+
+#define MH_DEBUG_REG50_MH_CP_grb_send_SIZE 1
+#define MH_DEBUG_REG50_MH_VGT_grb_send_SIZE 1
+#define MH_DEBUG_REG50_MH_TC_mcsend_SIZE 1
+#define MH_DEBUG_REG50_MH_TLBMISS_SEND_SIZE 1
+#define MH_DEBUG_REG50_TLBMISS_VALID_SIZE 1
+#define MH_DEBUG_REG50_RDC_VALID_SIZE 1
+#define MH_DEBUG_REG50_RDC_RID_SIZE 3
+#define MH_DEBUG_REG50_RDC_RLAST_SIZE 1
+#define MH_DEBUG_REG50_RDC_RRESP_SIZE 2
+#define MH_DEBUG_REG50_TLBMISS_CTRL_RTS_SIZE 1
+#define MH_DEBUG_REG50_CTRL_TLBMISS_RE_q_SIZE 1
+#define MH_DEBUG_REG50_MMU_ID_REQUEST_q_SIZE 1
+#define MH_DEBUG_REG50_OUTSTANDING_MMUID_CNT_q_SIZE 6
+#define MH_DEBUG_REG50_MMU_ID_RESPONSE_SIZE 1
+#define MH_DEBUG_REG50_TLBMISS_RETURN_CNT_q_SIZE 6
+#define MH_DEBUG_REG50_CNT_HOLD_q1_SIZE 1
+#define MH_DEBUG_REG50_MH_CLNT_AXI_ID_REUSE_MMUr_ID_SIZE 3
+
+#define MH_DEBUG_REG50_MH_CP_grb_send_SHIFT 0
+#define MH_DEBUG_REG50_MH_VGT_grb_send_SHIFT 1
+#define MH_DEBUG_REG50_MH_TC_mcsend_SHIFT 2
+#define MH_DEBUG_REG50_MH_TLBMISS_SEND_SHIFT 3
+#define MH_DEBUG_REG50_TLBMISS_VALID_SHIFT 4
+#define MH_DEBUG_REG50_RDC_VALID_SHIFT 5
+#define MH_DEBUG_REG50_RDC_RID_SHIFT 6
+#define MH_DEBUG_REG50_RDC_RLAST_SHIFT 9
+#define MH_DEBUG_REG50_RDC_RRESP_SHIFT 10
+#define MH_DEBUG_REG50_TLBMISS_CTRL_RTS_SHIFT 12
+#define MH_DEBUG_REG50_CTRL_TLBMISS_RE_q_SHIFT 13
+#define MH_DEBUG_REG50_MMU_ID_REQUEST_q_SHIFT 14
+#define MH_DEBUG_REG50_OUTSTANDING_MMUID_CNT_q_SHIFT 15
+#define MH_DEBUG_REG50_MMU_ID_RESPONSE_SHIFT 21
+#define MH_DEBUG_REG50_TLBMISS_RETURN_CNT_q_SHIFT 22
+#define MH_DEBUG_REG50_CNT_HOLD_q1_SHIFT 28
+#define MH_DEBUG_REG50_MH_CLNT_AXI_ID_REUSE_MMUr_ID_SHIFT 29
+
+#define MH_DEBUG_REG50_MH_CP_grb_send_MASK 0x00000001
+#define MH_DEBUG_REG50_MH_VGT_grb_send_MASK 0x00000002
+#define MH_DEBUG_REG50_MH_TC_mcsend_MASK 0x00000004
+#define MH_DEBUG_REG50_MH_TLBMISS_SEND_MASK 0x00000008
+#define MH_DEBUG_REG50_TLBMISS_VALID_MASK 0x00000010
+#define MH_DEBUG_REG50_RDC_VALID_MASK 0x00000020
+#define MH_DEBUG_REG50_RDC_RID_MASK 0x000001c0
+#define MH_DEBUG_REG50_RDC_RLAST_MASK 0x00000200
+#define MH_DEBUG_REG50_RDC_RRESP_MASK 0x00000c00
+#define MH_DEBUG_REG50_TLBMISS_CTRL_RTS_MASK 0x00001000
+#define MH_DEBUG_REG50_CTRL_TLBMISS_RE_q_MASK 0x00002000
+#define MH_DEBUG_REG50_MMU_ID_REQUEST_q_MASK 0x00004000
+#define MH_DEBUG_REG50_OUTSTANDING_MMUID_CNT_q_MASK 0x001f8000
+#define MH_DEBUG_REG50_MMU_ID_RESPONSE_MASK 0x00200000
+#define MH_DEBUG_REG50_TLBMISS_RETURN_CNT_q_MASK 0x0fc00000
+#define MH_DEBUG_REG50_CNT_HOLD_q1_MASK 0x10000000
+#define MH_DEBUG_REG50_MH_CLNT_AXI_ID_REUSE_MMUr_ID_MASK 0xe0000000
+
+#define MH_DEBUG_REG50_MASK \
+ (MH_DEBUG_REG50_MH_CP_grb_send_MASK | \
+ MH_DEBUG_REG50_MH_VGT_grb_send_MASK | \
+ MH_DEBUG_REG50_MH_TC_mcsend_MASK | \
+ MH_DEBUG_REG50_MH_TLBMISS_SEND_MASK | \
+ MH_DEBUG_REG50_TLBMISS_VALID_MASK | \
+ MH_DEBUG_REG50_RDC_VALID_MASK | \
+ MH_DEBUG_REG50_RDC_RID_MASK | \
+ MH_DEBUG_REG50_RDC_RLAST_MASK | \
+ MH_DEBUG_REG50_RDC_RRESP_MASK | \
+ MH_DEBUG_REG50_TLBMISS_CTRL_RTS_MASK | \
+ MH_DEBUG_REG50_CTRL_TLBMISS_RE_q_MASK | \
+ MH_DEBUG_REG50_MMU_ID_REQUEST_q_MASK | \
+ MH_DEBUG_REG50_OUTSTANDING_MMUID_CNT_q_MASK | \
+ MH_DEBUG_REG50_MMU_ID_RESPONSE_MASK | \
+ MH_DEBUG_REG50_TLBMISS_RETURN_CNT_q_MASK | \
+ MH_DEBUG_REG50_CNT_HOLD_q1_MASK | \
+ MH_DEBUG_REG50_MH_CLNT_AXI_ID_REUSE_MMUr_ID_MASK)
+
+#define MH_DEBUG_REG50(mh_cp_grb_send, mh_vgt_grb_send, mh_tc_mcsend, mh_tlbmiss_send, tlbmiss_valid, rdc_valid, rdc_rid, rdc_rlast, rdc_rresp, tlbmiss_ctrl_rts, ctrl_tlbmiss_re_q, mmu_id_request_q, outstanding_mmuid_cnt_q, mmu_id_response, tlbmiss_return_cnt_q, cnt_hold_q1, mh_clnt_axi_id_reuse_mmur_id) \
+ ((mh_cp_grb_send << MH_DEBUG_REG50_MH_CP_grb_send_SHIFT) | \
+ (mh_vgt_grb_send << MH_DEBUG_REG50_MH_VGT_grb_send_SHIFT) | \
+ (mh_tc_mcsend << MH_DEBUG_REG50_MH_TC_mcsend_SHIFT) | \
+ (mh_tlbmiss_send << MH_DEBUG_REG50_MH_TLBMISS_SEND_SHIFT) | \
+ (tlbmiss_valid << MH_DEBUG_REG50_TLBMISS_VALID_SHIFT) | \
+ (rdc_valid << MH_DEBUG_REG50_RDC_VALID_SHIFT) | \
+ (rdc_rid << MH_DEBUG_REG50_RDC_RID_SHIFT) | \
+ (rdc_rlast << MH_DEBUG_REG50_RDC_RLAST_SHIFT) | \
+ (rdc_rresp << MH_DEBUG_REG50_RDC_RRESP_SHIFT) | \
+ (tlbmiss_ctrl_rts << MH_DEBUG_REG50_TLBMISS_CTRL_RTS_SHIFT) | \
+ (ctrl_tlbmiss_re_q << MH_DEBUG_REG50_CTRL_TLBMISS_RE_q_SHIFT) | \
+ (mmu_id_request_q << MH_DEBUG_REG50_MMU_ID_REQUEST_q_SHIFT) | \
+ (outstanding_mmuid_cnt_q << MH_DEBUG_REG50_OUTSTANDING_MMUID_CNT_q_SHIFT) | \
+ (mmu_id_response << MH_DEBUG_REG50_MMU_ID_RESPONSE_SHIFT) | \
+ (tlbmiss_return_cnt_q << MH_DEBUG_REG50_TLBMISS_RETURN_CNT_q_SHIFT) | \
+ (cnt_hold_q1 << MH_DEBUG_REG50_CNT_HOLD_q1_SHIFT) | \
+ (mh_clnt_axi_id_reuse_mmur_id << MH_DEBUG_REG50_MH_CLNT_AXI_ID_REUSE_MMUr_ID_SHIFT))
+
+#define MH_DEBUG_REG50_GET_MH_CP_grb_send(mh_debug_reg50) \
+ ((mh_debug_reg50 & MH_DEBUG_REG50_MH_CP_grb_send_MASK) >> MH_DEBUG_REG50_MH_CP_grb_send_SHIFT)
+#define MH_DEBUG_REG50_GET_MH_VGT_grb_send(mh_debug_reg50) \
+ ((mh_debug_reg50 & MH_DEBUG_REG50_MH_VGT_grb_send_MASK) >> MH_DEBUG_REG50_MH_VGT_grb_send_SHIFT)
+#define MH_DEBUG_REG50_GET_MH_TC_mcsend(mh_debug_reg50) \
+ ((mh_debug_reg50 & MH_DEBUG_REG50_MH_TC_mcsend_MASK) >> MH_DEBUG_REG50_MH_TC_mcsend_SHIFT)
+#define MH_DEBUG_REG50_GET_MH_TLBMISS_SEND(mh_debug_reg50) \
+ ((mh_debug_reg50 & MH_DEBUG_REG50_MH_TLBMISS_SEND_MASK) >> MH_DEBUG_REG50_MH_TLBMISS_SEND_SHIFT)
+#define MH_DEBUG_REG50_GET_TLBMISS_VALID(mh_debug_reg50) \
+ ((mh_debug_reg50 & MH_DEBUG_REG50_TLBMISS_VALID_MASK) >> MH_DEBUG_REG50_TLBMISS_VALID_SHIFT)
+#define MH_DEBUG_REG50_GET_RDC_VALID(mh_debug_reg50) \
+ ((mh_debug_reg50 & MH_DEBUG_REG50_RDC_VALID_MASK) >> MH_DEBUG_REG50_RDC_VALID_SHIFT)
+#define MH_DEBUG_REG50_GET_RDC_RID(mh_debug_reg50) \
+ ((mh_debug_reg50 & MH_DEBUG_REG50_RDC_RID_MASK) >> MH_DEBUG_REG50_RDC_RID_SHIFT)
+#define MH_DEBUG_REG50_GET_RDC_RLAST(mh_debug_reg50) \
+ ((mh_debug_reg50 & MH_DEBUG_REG50_RDC_RLAST_MASK) >> MH_DEBUG_REG50_RDC_RLAST_SHIFT)
+#define MH_DEBUG_REG50_GET_RDC_RRESP(mh_debug_reg50) \
+ ((mh_debug_reg50 & MH_DEBUG_REG50_RDC_RRESP_MASK) >> MH_DEBUG_REG50_RDC_RRESP_SHIFT)
+#define MH_DEBUG_REG50_GET_TLBMISS_CTRL_RTS(mh_debug_reg50) \
+ ((mh_debug_reg50 & MH_DEBUG_REG50_TLBMISS_CTRL_RTS_MASK) >> MH_DEBUG_REG50_TLBMISS_CTRL_RTS_SHIFT)
+#define MH_DEBUG_REG50_GET_CTRL_TLBMISS_RE_q(mh_debug_reg50) \
+ ((mh_debug_reg50 & MH_DEBUG_REG50_CTRL_TLBMISS_RE_q_MASK) >> MH_DEBUG_REG50_CTRL_TLBMISS_RE_q_SHIFT)
+#define MH_DEBUG_REG50_GET_MMU_ID_REQUEST_q(mh_debug_reg50) \
+ ((mh_debug_reg50 & MH_DEBUG_REG50_MMU_ID_REQUEST_q_MASK) >> MH_DEBUG_REG50_MMU_ID_REQUEST_q_SHIFT)
+#define MH_DEBUG_REG50_GET_OUTSTANDING_MMUID_CNT_q(mh_debug_reg50) \
+ ((mh_debug_reg50 & MH_DEBUG_REG50_OUTSTANDING_MMUID_CNT_q_MASK) >> MH_DEBUG_REG50_OUTSTANDING_MMUID_CNT_q_SHIFT)
+#define MH_DEBUG_REG50_GET_MMU_ID_RESPONSE(mh_debug_reg50) \
+ ((mh_debug_reg50 & MH_DEBUG_REG50_MMU_ID_RESPONSE_MASK) >> MH_DEBUG_REG50_MMU_ID_RESPONSE_SHIFT)
+#define MH_DEBUG_REG50_GET_TLBMISS_RETURN_CNT_q(mh_debug_reg50) \
+ ((mh_debug_reg50 & MH_DEBUG_REG50_TLBMISS_RETURN_CNT_q_MASK) >> MH_DEBUG_REG50_TLBMISS_RETURN_CNT_q_SHIFT)
+#define MH_DEBUG_REG50_GET_CNT_HOLD_q1(mh_debug_reg50) \
+ ((mh_debug_reg50 & MH_DEBUG_REG50_CNT_HOLD_q1_MASK) >> MH_DEBUG_REG50_CNT_HOLD_q1_SHIFT)
+#define MH_DEBUG_REG50_GET_MH_CLNT_AXI_ID_REUSE_MMUr_ID(mh_debug_reg50) \
+ ((mh_debug_reg50 & MH_DEBUG_REG50_MH_CLNT_AXI_ID_REUSE_MMUr_ID_MASK) >> MH_DEBUG_REG50_MH_CLNT_AXI_ID_REUSE_MMUr_ID_SHIFT)
+
+#define MH_DEBUG_REG50_SET_MH_CP_grb_send(mh_debug_reg50_reg, mh_cp_grb_send) \
+ mh_debug_reg50_reg = (mh_debug_reg50_reg & ~MH_DEBUG_REG50_MH_CP_grb_send_MASK) | (mh_cp_grb_send << MH_DEBUG_REG50_MH_CP_grb_send_SHIFT)
+#define MH_DEBUG_REG50_SET_MH_VGT_grb_send(mh_debug_reg50_reg, mh_vgt_grb_send) \
+ mh_debug_reg50_reg = (mh_debug_reg50_reg & ~MH_DEBUG_REG50_MH_VGT_grb_send_MASK) | (mh_vgt_grb_send << MH_DEBUG_REG50_MH_VGT_grb_send_SHIFT)
+#define MH_DEBUG_REG50_SET_MH_TC_mcsend(mh_debug_reg50_reg, mh_tc_mcsend) \
+ mh_debug_reg50_reg = (mh_debug_reg50_reg & ~MH_DEBUG_REG50_MH_TC_mcsend_MASK) | (mh_tc_mcsend << MH_DEBUG_REG50_MH_TC_mcsend_SHIFT)
+#define MH_DEBUG_REG50_SET_MH_TLBMISS_SEND(mh_debug_reg50_reg, mh_tlbmiss_send) \
+ mh_debug_reg50_reg = (mh_debug_reg50_reg & ~MH_DEBUG_REG50_MH_TLBMISS_SEND_MASK) | (mh_tlbmiss_send << MH_DEBUG_REG50_MH_TLBMISS_SEND_SHIFT)
+#define MH_DEBUG_REG50_SET_TLBMISS_VALID(mh_debug_reg50_reg, tlbmiss_valid) \
+ mh_debug_reg50_reg = (mh_debug_reg50_reg & ~MH_DEBUG_REG50_TLBMISS_VALID_MASK) | (tlbmiss_valid << MH_DEBUG_REG50_TLBMISS_VALID_SHIFT)
+#define MH_DEBUG_REG50_SET_RDC_VALID(mh_debug_reg50_reg, rdc_valid) \
+ mh_debug_reg50_reg = (mh_debug_reg50_reg & ~MH_DEBUG_REG50_RDC_VALID_MASK) | (rdc_valid << MH_DEBUG_REG50_RDC_VALID_SHIFT)
+#define MH_DEBUG_REG50_SET_RDC_RID(mh_debug_reg50_reg, rdc_rid) \
+ mh_debug_reg50_reg = (mh_debug_reg50_reg & ~MH_DEBUG_REG50_RDC_RID_MASK) | (rdc_rid << MH_DEBUG_REG50_RDC_RID_SHIFT)
+#define MH_DEBUG_REG50_SET_RDC_RLAST(mh_debug_reg50_reg, rdc_rlast) \
+ mh_debug_reg50_reg = (mh_debug_reg50_reg & ~MH_DEBUG_REG50_RDC_RLAST_MASK) | (rdc_rlast << MH_DEBUG_REG50_RDC_RLAST_SHIFT)
+#define MH_DEBUG_REG50_SET_RDC_RRESP(mh_debug_reg50_reg, rdc_rresp) \
+ mh_debug_reg50_reg = (mh_debug_reg50_reg & ~MH_DEBUG_REG50_RDC_RRESP_MASK) | (rdc_rresp << MH_DEBUG_REG50_RDC_RRESP_SHIFT)
+#define MH_DEBUG_REG50_SET_TLBMISS_CTRL_RTS(mh_debug_reg50_reg, tlbmiss_ctrl_rts) \
+ mh_debug_reg50_reg = (mh_debug_reg50_reg & ~MH_DEBUG_REG50_TLBMISS_CTRL_RTS_MASK) | (tlbmiss_ctrl_rts << MH_DEBUG_REG50_TLBMISS_CTRL_RTS_SHIFT)
+#define MH_DEBUG_REG50_SET_CTRL_TLBMISS_RE_q(mh_debug_reg50_reg, ctrl_tlbmiss_re_q) \
+ mh_debug_reg50_reg = (mh_debug_reg50_reg & ~MH_DEBUG_REG50_CTRL_TLBMISS_RE_q_MASK) | (ctrl_tlbmiss_re_q << MH_DEBUG_REG50_CTRL_TLBMISS_RE_q_SHIFT)
+#define MH_DEBUG_REG50_SET_MMU_ID_REQUEST_q(mh_debug_reg50_reg, mmu_id_request_q) \
+ mh_debug_reg50_reg = (mh_debug_reg50_reg & ~MH_DEBUG_REG50_MMU_ID_REQUEST_q_MASK) | (mmu_id_request_q << MH_DEBUG_REG50_MMU_ID_REQUEST_q_SHIFT)
+#define MH_DEBUG_REG50_SET_OUTSTANDING_MMUID_CNT_q(mh_debug_reg50_reg, outstanding_mmuid_cnt_q) \
+ mh_debug_reg50_reg = (mh_debug_reg50_reg & ~MH_DEBUG_REG50_OUTSTANDING_MMUID_CNT_q_MASK) | (outstanding_mmuid_cnt_q << MH_DEBUG_REG50_OUTSTANDING_MMUID_CNT_q_SHIFT)
+#define MH_DEBUG_REG50_SET_MMU_ID_RESPONSE(mh_debug_reg50_reg, mmu_id_response) \
+ mh_debug_reg50_reg = (mh_debug_reg50_reg & ~MH_DEBUG_REG50_MMU_ID_RESPONSE_MASK) | (mmu_id_response << MH_DEBUG_REG50_MMU_ID_RESPONSE_SHIFT)
+#define MH_DEBUG_REG50_SET_TLBMISS_RETURN_CNT_q(mh_debug_reg50_reg, tlbmiss_return_cnt_q) \
+ mh_debug_reg50_reg = (mh_debug_reg50_reg & ~MH_DEBUG_REG50_TLBMISS_RETURN_CNT_q_MASK) | (tlbmiss_return_cnt_q << MH_DEBUG_REG50_TLBMISS_RETURN_CNT_q_SHIFT)
+#define MH_DEBUG_REG50_SET_CNT_HOLD_q1(mh_debug_reg50_reg, cnt_hold_q1) \
+ mh_debug_reg50_reg = (mh_debug_reg50_reg & ~MH_DEBUG_REG50_CNT_HOLD_q1_MASK) | (cnt_hold_q1 << MH_DEBUG_REG50_CNT_HOLD_q1_SHIFT)
+#define MH_DEBUG_REG50_SET_MH_CLNT_AXI_ID_REUSE_MMUr_ID(mh_debug_reg50_reg, mh_clnt_axi_id_reuse_mmur_id) \
+ mh_debug_reg50_reg = (mh_debug_reg50_reg & ~MH_DEBUG_REG50_MH_CLNT_AXI_ID_REUSE_MMUr_ID_MASK) | (mh_clnt_axi_id_reuse_mmur_id << MH_DEBUG_REG50_MH_CLNT_AXI_ID_REUSE_MMUr_ID_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg50_t {
+ unsigned int mh_cp_grb_send : MH_DEBUG_REG50_MH_CP_grb_send_SIZE;
+ unsigned int mh_vgt_grb_send : MH_DEBUG_REG50_MH_VGT_grb_send_SIZE;
+ unsigned int mh_tc_mcsend : MH_DEBUG_REG50_MH_TC_mcsend_SIZE;
+ unsigned int mh_tlbmiss_send : MH_DEBUG_REG50_MH_TLBMISS_SEND_SIZE;
+ unsigned int tlbmiss_valid : MH_DEBUG_REG50_TLBMISS_VALID_SIZE;
+ unsigned int rdc_valid : MH_DEBUG_REG50_RDC_VALID_SIZE;
+ unsigned int rdc_rid : MH_DEBUG_REG50_RDC_RID_SIZE;
+ unsigned int rdc_rlast : MH_DEBUG_REG50_RDC_RLAST_SIZE;
+ unsigned int rdc_rresp : MH_DEBUG_REG50_RDC_RRESP_SIZE;
+ unsigned int tlbmiss_ctrl_rts : MH_DEBUG_REG50_TLBMISS_CTRL_RTS_SIZE;
+ unsigned int ctrl_tlbmiss_re_q : MH_DEBUG_REG50_CTRL_TLBMISS_RE_q_SIZE;
+ unsigned int mmu_id_request_q : MH_DEBUG_REG50_MMU_ID_REQUEST_q_SIZE;
+ unsigned int outstanding_mmuid_cnt_q : MH_DEBUG_REG50_OUTSTANDING_MMUID_CNT_q_SIZE;
+ unsigned int mmu_id_response : MH_DEBUG_REG50_MMU_ID_RESPONSE_SIZE;
+ unsigned int tlbmiss_return_cnt_q : MH_DEBUG_REG50_TLBMISS_RETURN_CNT_q_SIZE;
+ unsigned int cnt_hold_q1 : MH_DEBUG_REG50_CNT_HOLD_q1_SIZE;
+ unsigned int mh_clnt_axi_id_reuse_mmur_id : MH_DEBUG_REG50_MH_CLNT_AXI_ID_REUSE_MMUr_ID_SIZE;
+ } mh_debug_reg50_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg50_t {
+ unsigned int mh_clnt_axi_id_reuse_mmur_id : MH_DEBUG_REG50_MH_CLNT_AXI_ID_REUSE_MMUr_ID_SIZE;
+ unsigned int cnt_hold_q1 : MH_DEBUG_REG50_CNT_HOLD_q1_SIZE;
+ unsigned int tlbmiss_return_cnt_q : MH_DEBUG_REG50_TLBMISS_RETURN_CNT_q_SIZE;
+ unsigned int mmu_id_response : MH_DEBUG_REG50_MMU_ID_RESPONSE_SIZE;
+ unsigned int outstanding_mmuid_cnt_q : MH_DEBUG_REG50_OUTSTANDING_MMUID_CNT_q_SIZE;
+ unsigned int mmu_id_request_q : MH_DEBUG_REG50_MMU_ID_REQUEST_q_SIZE;
+ unsigned int ctrl_tlbmiss_re_q : MH_DEBUG_REG50_CTRL_TLBMISS_RE_q_SIZE;
+ unsigned int tlbmiss_ctrl_rts : MH_DEBUG_REG50_TLBMISS_CTRL_RTS_SIZE;
+ unsigned int rdc_rresp : MH_DEBUG_REG50_RDC_RRESP_SIZE;
+ unsigned int rdc_rlast : MH_DEBUG_REG50_RDC_RLAST_SIZE;
+ unsigned int rdc_rid : MH_DEBUG_REG50_RDC_RID_SIZE;
+ unsigned int rdc_valid : MH_DEBUG_REG50_RDC_VALID_SIZE;
+ unsigned int tlbmiss_valid : MH_DEBUG_REG50_TLBMISS_VALID_SIZE;
+ unsigned int mh_tlbmiss_send : MH_DEBUG_REG50_MH_TLBMISS_SEND_SIZE;
+ unsigned int mh_tc_mcsend : MH_DEBUG_REG50_MH_TC_mcsend_SIZE;
+ unsigned int mh_vgt_grb_send : MH_DEBUG_REG50_MH_VGT_grb_send_SIZE;
+ unsigned int mh_cp_grb_send : MH_DEBUG_REG50_MH_CP_grb_send_SIZE;
+ } mh_debug_reg50_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg50_t f;
+} mh_debug_reg50_u;
+
+
+/*
+ * MH_DEBUG_REG51 struct
+ */
+
+#define MH_DEBUG_REG51_RF_MMU_PAGE_FAULT_SIZE 32
+
+#define MH_DEBUG_REG51_RF_MMU_PAGE_FAULT_SHIFT 0
+
+#define MH_DEBUG_REG51_RF_MMU_PAGE_FAULT_MASK 0xffffffff
+
+#define MH_DEBUG_REG51_MASK \
+ (MH_DEBUG_REG51_RF_MMU_PAGE_FAULT_MASK)
+
+#define MH_DEBUG_REG51(rf_mmu_page_fault) \
+ ((rf_mmu_page_fault << MH_DEBUG_REG51_RF_MMU_PAGE_FAULT_SHIFT))
+
+#define MH_DEBUG_REG51_GET_RF_MMU_PAGE_FAULT(mh_debug_reg51) \
+ ((mh_debug_reg51 & MH_DEBUG_REG51_RF_MMU_PAGE_FAULT_MASK) >> MH_DEBUG_REG51_RF_MMU_PAGE_FAULT_SHIFT)
+
+#define MH_DEBUG_REG51_SET_RF_MMU_PAGE_FAULT(mh_debug_reg51_reg, rf_mmu_page_fault) \
+ mh_debug_reg51_reg = (mh_debug_reg51_reg & ~MH_DEBUG_REG51_RF_MMU_PAGE_FAULT_MASK) | (rf_mmu_page_fault << MH_DEBUG_REG51_RF_MMU_PAGE_FAULT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg51_t {
+ unsigned int rf_mmu_page_fault : MH_DEBUG_REG51_RF_MMU_PAGE_FAULT_SIZE;
+ } mh_debug_reg51_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg51_t {
+ unsigned int rf_mmu_page_fault : MH_DEBUG_REG51_RF_MMU_PAGE_FAULT_SIZE;
+ } mh_debug_reg51_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg51_t f;
+} mh_debug_reg51_u;
+
+
+/*
+ * MH_DEBUG_REG52 struct
+ */
+
+#define MH_DEBUG_REG52_RF_MMU_CONFIG_q_1_to_0_SIZE 2
+#define MH_DEBUG_REG52_ARB_WE_SIZE 1
+#define MH_DEBUG_REG52_MMU_RTR_SIZE 1
+#define MH_DEBUG_REG52_RF_MMU_CONFIG_q_25_to_4_SIZE 22
+#define MH_DEBUG_REG52_ARB_ID_q_SIZE 3
+#define MH_DEBUG_REG52_ARB_WRITE_q_SIZE 1
+#define MH_DEBUG_REG52_client_behavior_q_SIZE 2
+
+#define MH_DEBUG_REG52_RF_MMU_CONFIG_q_1_to_0_SHIFT 0
+#define MH_DEBUG_REG52_ARB_WE_SHIFT 2
+#define MH_DEBUG_REG52_MMU_RTR_SHIFT 3
+#define MH_DEBUG_REG52_RF_MMU_CONFIG_q_25_to_4_SHIFT 4
+#define MH_DEBUG_REG52_ARB_ID_q_SHIFT 26
+#define MH_DEBUG_REG52_ARB_WRITE_q_SHIFT 29
+#define MH_DEBUG_REG52_client_behavior_q_SHIFT 30
+
+#define MH_DEBUG_REG52_RF_MMU_CONFIG_q_1_to_0_MASK 0x00000003
+#define MH_DEBUG_REG52_ARB_WE_MASK 0x00000004
+#define MH_DEBUG_REG52_MMU_RTR_MASK 0x00000008
+#define MH_DEBUG_REG52_RF_MMU_CONFIG_q_25_to_4_MASK 0x03fffff0
+#define MH_DEBUG_REG52_ARB_ID_q_MASK 0x1c000000
+#define MH_DEBUG_REG52_ARB_WRITE_q_MASK 0x20000000
+#define MH_DEBUG_REG52_client_behavior_q_MASK 0xc0000000
+
+#define MH_DEBUG_REG52_MASK \
+ (MH_DEBUG_REG52_RF_MMU_CONFIG_q_1_to_0_MASK | \
+ MH_DEBUG_REG52_ARB_WE_MASK | \
+ MH_DEBUG_REG52_MMU_RTR_MASK | \
+ MH_DEBUG_REG52_RF_MMU_CONFIG_q_25_to_4_MASK | \
+ MH_DEBUG_REG52_ARB_ID_q_MASK | \
+ MH_DEBUG_REG52_ARB_WRITE_q_MASK | \
+ MH_DEBUG_REG52_client_behavior_q_MASK)
+
+#define MH_DEBUG_REG52(rf_mmu_config_q_1_to_0, arb_we, mmu_rtr, rf_mmu_config_q_25_to_4, arb_id_q, arb_write_q, client_behavior_q) \
+ ((rf_mmu_config_q_1_to_0 << MH_DEBUG_REG52_RF_MMU_CONFIG_q_1_to_0_SHIFT) | \
+ (arb_we << MH_DEBUG_REG52_ARB_WE_SHIFT) | \
+ (mmu_rtr << MH_DEBUG_REG52_MMU_RTR_SHIFT) | \
+ (rf_mmu_config_q_25_to_4 << MH_DEBUG_REG52_RF_MMU_CONFIG_q_25_to_4_SHIFT) | \
+ (arb_id_q << MH_DEBUG_REG52_ARB_ID_q_SHIFT) | \
+ (arb_write_q << MH_DEBUG_REG52_ARB_WRITE_q_SHIFT) | \
+ (client_behavior_q << MH_DEBUG_REG52_client_behavior_q_SHIFT))
+
+#define MH_DEBUG_REG52_GET_RF_MMU_CONFIG_q_1_to_0(mh_debug_reg52) \
+ ((mh_debug_reg52 & MH_DEBUG_REG52_RF_MMU_CONFIG_q_1_to_0_MASK) >> MH_DEBUG_REG52_RF_MMU_CONFIG_q_1_to_0_SHIFT)
+#define MH_DEBUG_REG52_GET_ARB_WE(mh_debug_reg52) \
+ ((mh_debug_reg52 & MH_DEBUG_REG52_ARB_WE_MASK) >> MH_DEBUG_REG52_ARB_WE_SHIFT)
+#define MH_DEBUG_REG52_GET_MMU_RTR(mh_debug_reg52) \
+ ((mh_debug_reg52 & MH_DEBUG_REG52_MMU_RTR_MASK) >> MH_DEBUG_REG52_MMU_RTR_SHIFT)
+#define MH_DEBUG_REG52_GET_RF_MMU_CONFIG_q_25_to_4(mh_debug_reg52) \
+ ((mh_debug_reg52 & MH_DEBUG_REG52_RF_MMU_CONFIG_q_25_to_4_MASK) >> MH_DEBUG_REG52_RF_MMU_CONFIG_q_25_to_4_SHIFT)
+#define MH_DEBUG_REG52_GET_ARB_ID_q(mh_debug_reg52) \
+ ((mh_debug_reg52 & MH_DEBUG_REG52_ARB_ID_q_MASK) >> MH_DEBUG_REG52_ARB_ID_q_SHIFT)
+#define MH_DEBUG_REG52_GET_ARB_WRITE_q(mh_debug_reg52) \
+ ((mh_debug_reg52 & MH_DEBUG_REG52_ARB_WRITE_q_MASK) >> MH_DEBUG_REG52_ARB_WRITE_q_SHIFT)
+#define MH_DEBUG_REG52_GET_client_behavior_q(mh_debug_reg52) \
+ ((mh_debug_reg52 & MH_DEBUG_REG52_client_behavior_q_MASK) >> MH_DEBUG_REG52_client_behavior_q_SHIFT)
+
+#define MH_DEBUG_REG52_SET_RF_MMU_CONFIG_q_1_to_0(mh_debug_reg52_reg, rf_mmu_config_q_1_to_0) \
+ mh_debug_reg52_reg = (mh_debug_reg52_reg & ~MH_DEBUG_REG52_RF_MMU_CONFIG_q_1_to_0_MASK) | (rf_mmu_config_q_1_to_0 << MH_DEBUG_REG52_RF_MMU_CONFIG_q_1_to_0_SHIFT)
+#define MH_DEBUG_REG52_SET_ARB_WE(mh_debug_reg52_reg, arb_we) \
+ mh_debug_reg52_reg = (mh_debug_reg52_reg & ~MH_DEBUG_REG52_ARB_WE_MASK) | (arb_we << MH_DEBUG_REG52_ARB_WE_SHIFT)
+#define MH_DEBUG_REG52_SET_MMU_RTR(mh_debug_reg52_reg, mmu_rtr) \
+ mh_debug_reg52_reg = (mh_debug_reg52_reg & ~MH_DEBUG_REG52_MMU_RTR_MASK) | (mmu_rtr << MH_DEBUG_REG52_MMU_RTR_SHIFT)
+#define MH_DEBUG_REG52_SET_RF_MMU_CONFIG_q_25_to_4(mh_debug_reg52_reg, rf_mmu_config_q_25_to_4) \
+ mh_debug_reg52_reg = (mh_debug_reg52_reg & ~MH_DEBUG_REG52_RF_MMU_CONFIG_q_25_to_4_MASK) | (rf_mmu_config_q_25_to_4 << MH_DEBUG_REG52_RF_MMU_CONFIG_q_25_to_4_SHIFT)
+#define MH_DEBUG_REG52_SET_ARB_ID_q(mh_debug_reg52_reg, arb_id_q) \
+ mh_debug_reg52_reg = (mh_debug_reg52_reg & ~MH_DEBUG_REG52_ARB_ID_q_MASK) | (arb_id_q << MH_DEBUG_REG52_ARB_ID_q_SHIFT)
+#define MH_DEBUG_REG52_SET_ARB_WRITE_q(mh_debug_reg52_reg, arb_write_q) \
+ mh_debug_reg52_reg = (mh_debug_reg52_reg & ~MH_DEBUG_REG52_ARB_WRITE_q_MASK) | (arb_write_q << MH_DEBUG_REG52_ARB_WRITE_q_SHIFT)
+#define MH_DEBUG_REG52_SET_client_behavior_q(mh_debug_reg52_reg, client_behavior_q) \
+ mh_debug_reg52_reg = (mh_debug_reg52_reg & ~MH_DEBUG_REG52_client_behavior_q_MASK) | (client_behavior_q << MH_DEBUG_REG52_client_behavior_q_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg52_t {
+ unsigned int rf_mmu_config_q_1_to_0 : MH_DEBUG_REG52_RF_MMU_CONFIG_q_1_to_0_SIZE;
+ unsigned int arb_we : MH_DEBUG_REG52_ARB_WE_SIZE;
+ unsigned int mmu_rtr : MH_DEBUG_REG52_MMU_RTR_SIZE;
+ unsigned int rf_mmu_config_q_25_to_4 : MH_DEBUG_REG52_RF_MMU_CONFIG_q_25_to_4_SIZE;
+ unsigned int arb_id_q : MH_DEBUG_REG52_ARB_ID_q_SIZE;
+ unsigned int arb_write_q : MH_DEBUG_REG52_ARB_WRITE_q_SIZE;
+ unsigned int client_behavior_q : MH_DEBUG_REG52_client_behavior_q_SIZE;
+ } mh_debug_reg52_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg52_t {
+ unsigned int client_behavior_q : MH_DEBUG_REG52_client_behavior_q_SIZE;
+ unsigned int arb_write_q : MH_DEBUG_REG52_ARB_WRITE_q_SIZE;
+ unsigned int arb_id_q : MH_DEBUG_REG52_ARB_ID_q_SIZE;
+ unsigned int rf_mmu_config_q_25_to_4 : MH_DEBUG_REG52_RF_MMU_CONFIG_q_25_to_4_SIZE;
+ unsigned int mmu_rtr : MH_DEBUG_REG52_MMU_RTR_SIZE;
+ unsigned int arb_we : MH_DEBUG_REG52_ARB_WE_SIZE;
+ unsigned int rf_mmu_config_q_1_to_0 : MH_DEBUG_REG52_RF_MMU_CONFIG_q_1_to_0_SIZE;
+ } mh_debug_reg52_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg52_t f;
+} mh_debug_reg52_u;
+
+
+/*
+ * MH_DEBUG_REG53 struct
+ */
+
+#define MH_DEBUG_REG53_stage1_valid_SIZE 1
+#define MH_DEBUG_REG53_IGNORE_TAG_MISS_q_SIZE 1
+#define MH_DEBUG_REG53_pa_in_mpu_range_SIZE 1
+#define MH_DEBUG_REG53_tag_match_q_SIZE 1
+#define MH_DEBUG_REG53_tag_miss_q_SIZE 1
+#define MH_DEBUG_REG53_va_in_range_q_SIZE 1
+#define MH_DEBUG_REG53_MMU_MISS_SIZE 1
+#define MH_DEBUG_REG53_MMU_READ_MISS_SIZE 1
+#define MH_DEBUG_REG53_MMU_WRITE_MISS_SIZE 1
+#define MH_DEBUG_REG53_MMU_HIT_SIZE 1
+#define MH_DEBUG_REG53_MMU_READ_HIT_SIZE 1
+#define MH_DEBUG_REG53_MMU_WRITE_HIT_SIZE 1
+#define MH_DEBUG_REG53_MMU_SPLIT_MODE_TC_MISS_SIZE 1
+#define MH_DEBUG_REG53_MMU_SPLIT_MODE_TC_HIT_SIZE 1
+#define MH_DEBUG_REG53_MMU_SPLIT_MODE_nonTC_MISS_SIZE 1
+#define MH_DEBUG_REG53_MMU_SPLIT_MODE_nonTC_HIT_SIZE 1
+#define MH_DEBUG_REG53_REQ_VA_OFFSET_q_SIZE 16
+
+#define MH_DEBUG_REG53_stage1_valid_SHIFT 0
+#define MH_DEBUG_REG53_IGNORE_TAG_MISS_q_SHIFT 1
+#define MH_DEBUG_REG53_pa_in_mpu_range_SHIFT 2
+#define MH_DEBUG_REG53_tag_match_q_SHIFT 3
+#define MH_DEBUG_REG53_tag_miss_q_SHIFT 4
+#define MH_DEBUG_REG53_va_in_range_q_SHIFT 5
+#define MH_DEBUG_REG53_MMU_MISS_SHIFT 6
+#define MH_DEBUG_REG53_MMU_READ_MISS_SHIFT 7
+#define MH_DEBUG_REG53_MMU_WRITE_MISS_SHIFT 8
+#define MH_DEBUG_REG53_MMU_HIT_SHIFT 9
+#define MH_DEBUG_REG53_MMU_READ_HIT_SHIFT 10
+#define MH_DEBUG_REG53_MMU_WRITE_HIT_SHIFT 11
+#define MH_DEBUG_REG53_MMU_SPLIT_MODE_TC_MISS_SHIFT 12
+#define MH_DEBUG_REG53_MMU_SPLIT_MODE_TC_HIT_SHIFT 13
+#define MH_DEBUG_REG53_MMU_SPLIT_MODE_nonTC_MISS_SHIFT 14
+#define MH_DEBUG_REG53_MMU_SPLIT_MODE_nonTC_HIT_SHIFT 15
+#define MH_DEBUG_REG53_REQ_VA_OFFSET_q_SHIFT 16
+
+#define MH_DEBUG_REG53_stage1_valid_MASK 0x00000001
+#define MH_DEBUG_REG53_IGNORE_TAG_MISS_q_MASK 0x00000002
+#define MH_DEBUG_REG53_pa_in_mpu_range_MASK 0x00000004
+#define MH_DEBUG_REG53_tag_match_q_MASK 0x00000008
+#define MH_DEBUG_REG53_tag_miss_q_MASK 0x00000010
+#define MH_DEBUG_REG53_va_in_range_q_MASK 0x00000020
+#define MH_DEBUG_REG53_MMU_MISS_MASK 0x00000040
+#define MH_DEBUG_REG53_MMU_READ_MISS_MASK 0x00000080
+#define MH_DEBUG_REG53_MMU_WRITE_MISS_MASK 0x00000100
+#define MH_DEBUG_REG53_MMU_HIT_MASK 0x00000200
+#define MH_DEBUG_REG53_MMU_READ_HIT_MASK 0x00000400
+#define MH_DEBUG_REG53_MMU_WRITE_HIT_MASK 0x00000800
+#define MH_DEBUG_REG53_MMU_SPLIT_MODE_TC_MISS_MASK 0x00001000
+#define MH_DEBUG_REG53_MMU_SPLIT_MODE_TC_HIT_MASK 0x00002000
+#define MH_DEBUG_REG53_MMU_SPLIT_MODE_nonTC_MISS_MASK 0x00004000
+#define MH_DEBUG_REG53_MMU_SPLIT_MODE_nonTC_HIT_MASK 0x00008000
+#define MH_DEBUG_REG53_REQ_VA_OFFSET_q_MASK 0xffff0000
+
+#define MH_DEBUG_REG53_MASK \
+ (MH_DEBUG_REG53_stage1_valid_MASK | \
+ MH_DEBUG_REG53_IGNORE_TAG_MISS_q_MASK | \
+ MH_DEBUG_REG53_pa_in_mpu_range_MASK | \
+ MH_DEBUG_REG53_tag_match_q_MASK | \
+ MH_DEBUG_REG53_tag_miss_q_MASK | \
+ MH_DEBUG_REG53_va_in_range_q_MASK | \
+ MH_DEBUG_REG53_MMU_MISS_MASK | \
+ MH_DEBUG_REG53_MMU_READ_MISS_MASK | \
+ MH_DEBUG_REG53_MMU_WRITE_MISS_MASK | \
+ MH_DEBUG_REG53_MMU_HIT_MASK | \
+ MH_DEBUG_REG53_MMU_READ_HIT_MASK | \
+ MH_DEBUG_REG53_MMU_WRITE_HIT_MASK | \
+ MH_DEBUG_REG53_MMU_SPLIT_MODE_TC_MISS_MASK | \
+ MH_DEBUG_REG53_MMU_SPLIT_MODE_TC_HIT_MASK | \
+ MH_DEBUG_REG53_MMU_SPLIT_MODE_nonTC_MISS_MASK | \
+ MH_DEBUG_REG53_MMU_SPLIT_MODE_nonTC_HIT_MASK | \
+ MH_DEBUG_REG53_REQ_VA_OFFSET_q_MASK)
+
+#define MH_DEBUG_REG53(stage1_valid, ignore_tag_miss_q, pa_in_mpu_range, tag_match_q, tag_miss_q, va_in_range_q, mmu_miss, mmu_read_miss, mmu_write_miss, mmu_hit, mmu_read_hit, mmu_write_hit, mmu_split_mode_tc_miss, mmu_split_mode_tc_hit, mmu_split_mode_nontc_miss, mmu_split_mode_nontc_hit, req_va_offset_q) \
+ ((stage1_valid << MH_DEBUG_REG53_stage1_valid_SHIFT) | \
+ (ignore_tag_miss_q << MH_DEBUG_REG53_IGNORE_TAG_MISS_q_SHIFT) | \
+ (pa_in_mpu_range << MH_DEBUG_REG53_pa_in_mpu_range_SHIFT) | \
+ (tag_match_q << MH_DEBUG_REG53_tag_match_q_SHIFT) | \
+ (tag_miss_q << MH_DEBUG_REG53_tag_miss_q_SHIFT) | \
+ (va_in_range_q << MH_DEBUG_REG53_va_in_range_q_SHIFT) | \
+ (mmu_miss << MH_DEBUG_REG53_MMU_MISS_SHIFT) | \
+ (mmu_read_miss << MH_DEBUG_REG53_MMU_READ_MISS_SHIFT) | \
+ (mmu_write_miss << MH_DEBUG_REG53_MMU_WRITE_MISS_SHIFT) | \
+ (mmu_hit << MH_DEBUG_REG53_MMU_HIT_SHIFT) | \
+ (mmu_read_hit << MH_DEBUG_REG53_MMU_READ_HIT_SHIFT) | \
+ (mmu_write_hit << MH_DEBUG_REG53_MMU_WRITE_HIT_SHIFT) | \
+ (mmu_split_mode_tc_miss << MH_DEBUG_REG53_MMU_SPLIT_MODE_TC_MISS_SHIFT) | \
+ (mmu_split_mode_tc_hit << MH_DEBUG_REG53_MMU_SPLIT_MODE_TC_HIT_SHIFT) | \
+ (mmu_split_mode_nontc_miss << MH_DEBUG_REG53_MMU_SPLIT_MODE_nonTC_MISS_SHIFT) | \
+ (mmu_split_mode_nontc_hit << MH_DEBUG_REG53_MMU_SPLIT_MODE_nonTC_HIT_SHIFT) | \
+ (req_va_offset_q << MH_DEBUG_REG53_REQ_VA_OFFSET_q_SHIFT))
+
+#define MH_DEBUG_REG53_GET_stage1_valid(mh_debug_reg53) \
+ ((mh_debug_reg53 & MH_DEBUG_REG53_stage1_valid_MASK) >> MH_DEBUG_REG53_stage1_valid_SHIFT)
+#define MH_DEBUG_REG53_GET_IGNORE_TAG_MISS_q(mh_debug_reg53) \
+ ((mh_debug_reg53 & MH_DEBUG_REG53_IGNORE_TAG_MISS_q_MASK) >> MH_DEBUG_REG53_IGNORE_TAG_MISS_q_SHIFT)
+#define MH_DEBUG_REG53_GET_pa_in_mpu_range(mh_debug_reg53) \
+ ((mh_debug_reg53 & MH_DEBUG_REG53_pa_in_mpu_range_MASK) >> MH_DEBUG_REG53_pa_in_mpu_range_SHIFT)
+#define MH_DEBUG_REG53_GET_tag_match_q(mh_debug_reg53) \
+ ((mh_debug_reg53 & MH_DEBUG_REG53_tag_match_q_MASK) >> MH_DEBUG_REG53_tag_match_q_SHIFT)
+#define MH_DEBUG_REG53_GET_tag_miss_q(mh_debug_reg53) \
+ ((mh_debug_reg53 & MH_DEBUG_REG53_tag_miss_q_MASK) >> MH_DEBUG_REG53_tag_miss_q_SHIFT)
+#define MH_DEBUG_REG53_GET_va_in_range_q(mh_debug_reg53) \
+ ((mh_debug_reg53 & MH_DEBUG_REG53_va_in_range_q_MASK) >> MH_DEBUG_REG53_va_in_range_q_SHIFT)
+#define MH_DEBUG_REG53_GET_MMU_MISS(mh_debug_reg53) \
+ ((mh_debug_reg53 & MH_DEBUG_REG53_MMU_MISS_MASK) >> MH_DEBUG_REG53_MMU_MISS_SHIFT)
+#define MH_DEBUG_REG53_GET_MMU_READ_MISS(mh_debug_reg53) \
+ ((mh_debug_reg53 & MH_DEBUG_REG53_MMU_READ_MISS_MASK) >> MH_DEBUG_REG53_MMU_READ_MISS_SHIFT)
+#define MH_DEBUG_REG53_GET_MMU_WRITE_MISS(mh_debug_reg53) \
+ ((mh_debug_reg53 & MH_DEBUG_REG53_MMU_WRITE_MISS_MASK) >> MH_DEBUG_REG53_MMU_WRITE_MISS_SHIFT)
+#define MH_DEBUG_REG53_GET_MMU_HIT(mh_debug_reg53) \
+ ((mh_debug_reg53 & MH_DEBUG_REG53_MMU_HIT_MASK) >> MH_DEBUG_REG53_MMU_HIT_SHIFT)
+#define MH_DEBUG_REG53_GET_MMU_READ_HIT(mh_debug_reg53) \
+ ((mh_debug_reg53 & MH_DEBUG_REG53_MMU_READ_HIT_MASK) >> MH_DEBUG_REG53_MMU_READ_HIT_SHIFT)
+#define MH_DEBUG_REG53_GET_MMU_WRITE_HIT(mh_debug_reg53) \
+ ((mh_debug_reg53 & MH_DEBUG_REG53_MMU_WRITE_HIT_MASK) >> MH_DEBUG_REG53_MMU_WRITE_HIT_SHIFT)
+#define MH_DEBUG_REG53_GET_MMU_SPLIT_MODE_TC_MISS(mh_debug_reg53) \
+ ((mh_debug_reg53 & MH_DEBUG_REG53_MMU_SPLIT_MODE_TC_MISS_MASK) >> MH_DEBUG_REG53_MMU_SPLIT_MODE_TC_MISS_SHIFT)
+#define MH_DEBUG_REG53_GET_MMU_SPLIT_MODE_TC_HIT(mh_debug_reg53) \
+ ((mh_debug_reg53 & MH_DEBUG_REG53_MMU_SPLIT_MODE_TC_HIT_MASK) >> MH_DEBUG_REG53_MMU_SPLIT_MODE_TC_HIT_SHIFT)
+#define MH_DEBUG_REG53_GET_MMU_SPLIT_MODE_nonTC_MISS(mh_debug_reg53) \
+ ((mh_debug_reg53 & MH_DEBUG_REG53_MMU_SPLIT_MODE_nonTC_MISS_MASK) >> MH_DEBUG_REG53_MMU_SPLIT_MODE_nonTC_MISS_SHIFT)
+#define MH_DEBUG_REG53_GET_MMU_SPLIT_MODE_nonTC_HIT(mh_debug_reg53) \
+ ((mh_debug_reg53 & MH_DEBUG_REG53_MMU_SPLIT_MODE_nonTC_HIT_MASK) >> MH_DEBUG_REG53_MMU_SPLIT_MODE_nonTC_HIT_SHIFT)
+#define MH_DEBUG_REG53_GET_REQ_VA_OFFSET_q(mh_debug_reg53) \
+ ((mh_debug_reg53 & MH_DEBUG_REG53_REQ_VA_OFFSET_q_MASK) >> MH_DEBUG_REG53_REQ_VA_OFFSET_q_SHIFT)
+
+#define MH_DEBUG_REG53_SET_stage1_valid(mh_debug_reg53_reg, stage1_valid) \
+ mh_debug_reg53_reg = (mh_debug_reg53_reg & ~MH_DEBUG_REG53_stage1_valid_MASK) | (stage1_valid << MH_DEBUG_REG53_stage1_valid_SHIFT)
+#define MH_DEBUG_REG53_SET_IGNORE_TAG_MISS_q(mh_debug_reg53_reg, ignore_tag_miss_q) \
+ mh_debug_reg53_reg = (mh_debug_reg53_reg & ~MH_DEBUG_REG53_IGNORE_TAG_MISS_q_MASK) | (ignore_tag_miss_q << MH_DEBUG_REG53_IGNORE_TAG_MISS_q_SHIFT)
+#define MH_DEBUG_REG53_SET_pa_in_mpu_range(mh_debug_reg53_reg, pa_in_mpu_range) \
+ mh_debug_reg53_reg = (mh_debug_reg53_reg & ~MH_DEBUG_REG53_pa_in_mpu_range_MASK) | (pa_in_mpu_range << MH_DEBUG_REG53_pa_in_mpu_range_SHIFT)
+#define MH_DEBUG_REG53_SET_tag_match_q(mh_debug_reg53_reg, tag_match_q) \
+ mh_debug_reg53_reg = (mh_debug_reg53_reg & ~MH_DEBUG_REG53_tag_match_q_MASK) | (tag_match_q << MH_DEBUG_REG53_tag_match_q_SHIFT)
+#define MH_DEBUG_REG53_SET_tag_miss_q(mh_debug_reg53_reg, tag_miss_q) \
+ mh_debug_reg53_reg = (mh_debug_reg53_reg & ~MH_DEBUG_REG53_tag_miss_q_MASK) | (tag_miss_q << MH_DEBUG_REG53_tag_miss_q_SHIFT)
+#define MH_DEBUG_REG53_SET_va_in_range_q(mh_debug_reg53_reg, va_in_range_q) \
+ mh_debug_reg53_reg = (mh_debug_reg53_reg & ~MH_DEBUG_REG53_va_in_range_q_MASK) | (va_in_range_q << MH_DEBUG_REG53_va_in_range_q_SHIFT)
+#define MH_DEBUG_REG53_SET_MMU_MISS(mh_debug_reg53_reg, mmu_miss) \
+ mh_debug_reg53_reg = (mh_debug_reg53_reg & ~MH_DEBUG_REG53_MMU_MISS_MASK) | (mmu_miss << MH_DEBUG_REG53_MMU_MISS_SHIFT)
+#define MH_DEBUG_REG53_SET_MMU_READ_MISS(mh_debug_reg53_reg, mmu_read_miss) \
+ mh_debug_reg53_reg = (mh_debug_reg53_reg & ~MH_DEBUG_REG53_MMU_READ_MISS_MASK) | (mmu_read_miss << MH_DEBUG_REG53_MMU_READ_MISS_SHIFT)
+#define MH_DEBUG_REG53_SET_MMU_WRITE_MISS(mh_debug_reg53_reg, mmu_write_miss) \
+ mh_debug_reg53_reg = (mh_debug_reg53_reg & ~MH_DEBUG_REG53_MMU_WRITE_MISS_MASK) | (mmu_write_miss << MH_DEBUG_REG53_MMU_WRITE_MISS_SHIFT)
+#define MH_DEBUG_REG53_SET_MMU_HIT(mh_debug_reg53_reg, mmu_hit) \
+ mh_debug_reg53_reg = (mh_debug_reg53_reg & ~MH_DEBUG_REG53_MMU_HIT_MASK) | (mmu_hit << MH_DEBUG_REG53_MMU_HIT_SHIFT)
+#define MH_DEBUG_REG53_SET_MMU_READ_HIT(mh_debug_reg53_reg, mmu_read_hit) \
+ mh_debug_reg53_reg = (mh_debug_reg53_reg & ~MH_DEBUG_REG53_MMU_READ_HIT_MASK) | (mmu_read_hit << MH_DEBUG_REG53_MMU_READ_HIT_SHIFT)
+#define MH_DEBUG_REG53_SET_MMU_WRITE_HIT(mh_debug_reg53_reg, mmu_write_hit) \
+ mh_debug_reg53_reg = (mh_debug_reg53_reg & ~MH_DEBUG_REG53_MMU_WRITE_HIT_MASK) | (mmu_write_hit << MH_DEBUG_REG53_MMU_WRITE_HIT_SHIFT)
+#define MH_DEBUG_REG53_SET_MMU_SPLIT_MODE_TC_MISS(mh_debug_reg53_reg, mmu_split_mode_tc_miss) \
+ mh_debug_reg53_reg = (mh_debug_reg53_reg & ~MH_DEBUG_REG53_MMU_SPLIT_MODE_TC_MISS_MASK) | (mmu_split_mode_tc_miss << MH_DEBUG_REG53_MMU_SPLIT_MODE_TC_MISS_SHIFT)
+#define MH_DEBUG_REG53_SET_MMU_SPLIT_MODE_TC_HIT(mh_debug_reg53_reg, mmu_split_mode_tc_hit) \
+ mh_debug_reg53_reg = (mh_debug_reg53_reg & ~MH_DEBUG_REG53_MMU_SPLIT_MODE_TC_HIT_MASK) | (mmu_split_mode_tc_hit << MH_DEBUG_REG53_MMU_SPLIT_MODE_TC_HIT_SHIFT)
+#define MH_DEBUG_REG53_SET_MMU_SPLIT_MODE_nonTC_MISS(mh_debug_reg53_reg, mmu_split_mode_nontc_miss) \
+ mh_debug_reg53_reg = (mh_debug_reg53_reg & ~MH_DEBUG_REG53_MMU_SPLIT_MODE_nonTC_MISS_MASK) | (mmu_split_mode_nontc_miss << MH_DEBUG_REG53_MMU_SPLIT_MODE_nonTC_MISS_SHIFT)
+#define MH_DEBUG_REG53_SET_MMU_SPLIT_MODE_nonTC_HIT(mh_debug_reg53_reg, mmu_split_mode_nontc_hit) \
+ mh_debug_reg53_reg = (mh_debug_reg53_reg & ~MH_DEBUG_REG53_MMU_SPLIT_MODE_nonTC_HIT_MASK) | (mmu_split_mode_nontc_hit << MH_DEBUG_REG53_MMU_SPLIT_MODE_nonTC_HIT_SHIFT)
+#define MH_DEBUG_REG53_SET_REQ_VA_OFFSET_q(mh_debug_reg53_reg, req_va_offset_q) \
+ mh_debug_reg53_reg = (mh_debug_reg53_reg & ~MH_DEBUG_REG53_REQ_VA_OFFSET_q_MASK) | (req_va_offset_q << MH_DEBUG_REG53_REQ_VA_OFFSET_q_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg53_t {
+ unsigned int stage1_valid : MH_DEBUG_REG53_stage1_valid_SIZE;
+ unsigned int ignore_tag_miss_q : MH_DEBUG_REG53_IGNORE_TAG_MISS_q_SIZE;
+ unsigned int pa_in_mpu_range : MH_DEBUG_REG53_pa_in_mpu_range_SIZE;
+ unsigned int tag_match_q : MH_DEBUG_REG53_tag_match_q_SIZE;
+ unsigned int tag_miss_q : MH_DEBUG_REG53_tag_miss_q_SIZE;
+ unsigned int va_in_range_q : MH_DEBUG_REG53_va_in_range_q_SIZE;
+ unsigned int mmu_miss : MH_DEBUG_REG53_MMU_MISS_SIZE;
+ unsigned int mmu_read_miss : MH_DEBUG_REG53_MMU_READ_MISS_SIZE;
+ unsigned int mmu_write_miss : MH_DEBUG_REG53_MMU_WRITE_MISS_SIZE;
+ unsigned int mmu_hit : MH_DEBUG_REG53_MMU_HIT_SIZE;
+ unsigned int mmu_read_hit : MH_DEBUG_REG53_MMU_READ_HIT_SIZE;
+ unsigned int mmu_write_hit : MH_DEBUG_REG53_MMU_WRITE_HIT_SIZE;
+ unsigned int mmu_split_mode_tc_miss : MH_DEBUG_REG53_MMU_SPLIT_MODE_TC_MISS_SIZE;
+ unsigned int mmu_split_mode_tc_hit : MH_DEBUG_REG53_MMU_SPLIT_MODE_TC_HIT_SIZE;
+ unsigned int mmu_split_mode_nontc_miss : MH_DEBUG_REG53_MMU_SPLIT_MODE_nonTC_MISS_SIZE;
+ unsigned int mmu_split_mode_nontc_hit : MH_DEBUG_REG53_MMU_SPLIT_MODE_nonTC_HIT_SIZE;
+ unsigned int req_va_offset_q : MH_DEBUG_REG53_REQ_VA_OFFSET_q_SIZE;
+ } mh_debug_reg53_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg53_t {
+ unsigned int req_va_offset_q : MH_DEBUG_REG53_REQ_VA_OFFSET_q_SIZE;
+ unsigned int mmu_split_mode_nontc_hit : MH_DEBUG_REG53_MMU_SPLIT_MODE_nonTC_HIT_SIZE;
+ unsigned int mmu_split_mode_nontc_miss : MH_DEBUG_REG53_MMU_SPLIT_MODE_nonTC_MISS_SIZE;
+ unsigned int mmu_split_mode_tc_hit : MH_DEBUG_REG53_MMU_SPLIT_MODE_TC_HIT_SIZE;
+ unsigned int mmu_split_mode_tc_miss : MH_DEBUG_REG53_MMU_SPLIT_MODE_TC_MISS_SIZE;
+ unsigned int mmu_write_hit : MH_DEBUG_REG53_MMU_WRITE_HIT_SIZE;
+ unsigned int mmu_read_hit : MH_DEBUG_REG53_MMU_READ_HIT_SIZE;
+ unsigned int mmu_hit : MH_DEBUG_REG53_MMU_HIT_SIZE;
+ unsigned int mmu_write_miss : MH_DEBUG_REG53_MMU_WRITE_MISS_SIZE;
+ unsigned int mmu_read_miss : MH_DEBUG_REG53_MMU_READ_MISS_SIZE;
+ unsigned int mmu_miss : MH_DEBUG_REG53_MMU_MISS_SIZE;
+ unsigned int va_in_range_q : MH_DEBUG_REG53_va_in_range_q_SIZE;
+ unsigned int tag_miss_q : MH_DEBUG_REG53_tag_miss_q_SIZE;
+ unsigned int tag_match_q : MH_DEBUG_REG53_tag_match_q_SIZE;
+ unsigned int pa_in_mpu_range : MH_DEBUG_REG53_pa_in_mpu_range_SIZE;
+ unsigned int ignore_tag_miss_q : MH_DEBUG_REG53_IGNORE_TAG_MISS_q_SIZE;
+ unsigned int stage1_valid : MH_DEBUG_REG53_stage1_valid_SIZE;
+ } mh_debug_reg53_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg53_t f;
+} mh_debug_reg53_u;
+
+
+/*
+ * MH_DEBUG_REG54 struct
+ */
+
+#define MH_DEBUG_REG54_ARQ_RTR_SIZE 1
+#define MH_DEBUG_REG54_MMU_WE_SIZE 1
+#define MH_DEBUG_REG54_CTRL_TLBMISS_RE_q_SIZE 1
+#define MH_DEBUG_REG54_TLBMISS_CTRL_RTS_SIZE 1
+#define MH_DEBUG_REG54_MH_TLBMISS_SEND_SIZE 1
+#define MH_DEBUG_REG54_MMU_STALL_AWAITING_TLB_MISS_FETCH_SIZE 1
+#define MH_DEBUG_REG54_pa_in_mpu_range_SIZE 1
+#define MH_DEBUG_REG54_stage1_valid_SIZE 1
+#define MH_DEBUG_REG54_stage2_valid_SIZE 1
+#define MH_DEBUG_REG54_client_behavior_q_SIZE 2
+#define MH_DEBUG_REG54_IGNORE_TAG_MISS_q_SIZE 1
+#define MH_DEBUG_REG54_tag_match_q_SIZE 1
+#define MH_DEBUG_REG54_tag_miss_q_SIZE 1
+#define MH_DEBUG_REG54_va_in_range_q_SIZE 1
+#define MH_DEBUG_REG54_PTE_FETCH_COMPLETE_q_SIZE 1
+#define MH_DEBUG_REG54_TAG_valid_q_SIZE 16
+
+#define MH_DEBUG_REG54_ARQ_RTR_SHIFT 0
+#define MH_DEBUG_REG54_MMU_WE_SHIFT 1
+#define MH_DEBUG_REG54_CTRL_TLBMISS_RE_q_SHIFT 2
+#define MH_DEBUG_REG54_TLBMISS_CTRL_RTS_SHIFT 3
+#define MH_DEBUG_REG54_MH_TLBMISS_SEND_SHIFT 4
+#define MH_DEBUG_REG54_MMU_STALL_AWAITING_TLB_MISS_FETCH_SHIFT 5
+#define MH_DEBUG_REG54_pa_in_mpu_range_SHIFT 6
+#define MH_DEBUG_REG54_stage1_valid_SHIFT 7
+#define MH_DEBUG_REG54_stage2_valid_SHIFT 8
+#define MH_DEBUG_REG54_client_behavior_q_SHIFT 9
+#define MH_DEBUG_REG54_IGNORE_TAG_MISS_q_SHIFT 11
+#define MH_DEBUG_REG54_tag_match_q_SHIFT 12
+#define MH_DEBUG_REG54_tag_miss_q_SHIFT 13
+#define MH_DEBUG_REG54_va_in_range_q_SHIFT 14
+#define MH_DEBUG_REG54_PTE_FETCH_COMPLETE_q_SHIFT 15
+#define MH_DEBUG_REG54_TAG_valid_q_SHIFT 16
+
+#define MH_DEBUG_REG54_ARQ_RTR_MASK 0x00000001
+#define MH_DEBUG_REG54_MMU_WE_MASK 0x00000002
+#define MH_DEBUG_REG54_CTRL_TLBMISS_RE_q_MASK 0x00000004
+#define MH_DEBUG_REG54_TLBMISS_CTRL_RTS_MASK 0x00000008
+#define MH_DEBUG_REG54_MH_TLBMISS_SEND_MASK 0x00000010
+#define MH_DEBUG_REG54_MMU_STALL_AWAITING_TLB_MISS_FETCH_MASK 0x00000020
+#define MH_DEBUG_REG54_pa_in_mpu_range_MASK 0x00000040
+#define MH_DEBUG_REG54_stage1_valid_MASK 0x00000080
+#define MH_DEBUG_REG54_stage2_valid_MASK 0x00000100
+#define MH_DEBUG_REG54_client_behavior_q_MASK 0x00000600
+#define MH_DEBUG_REG54_IGNORE_TAG_MISS_q_MASK 0x00000800
+#define MH_DEBUG_REG54_tag_match_q_MASK 0x00001000
+#define MH_DEBUG_REG54_tag_miss_q_MASK 0x00002000
+#define MH_DEBUG_REG54_va_in_range_q_MASK 0x00004000
+#define MH_DEBUG_REG54_PTE_FETCH_COMPLETE_q_MASK 0x00008000
+#define MH_DEBUG_REG54_TAG_valid_q_MASK 0xffff0000
+
+#define MH_DEBUG_REG54_MASK \
+ (MH_DEBUG_REG54_ARQ_RTR_MASK | \
+ MH_DEBUG_REG54_MMU_WE_MASK | \
+ MH_DEBUG_REG54_CTRL_TLBMISS_RE_q_MASK | \
+ MH_DEBUG_REG54_TLBMISS_CTRL_RTS_MASK | \
+ MH_DEBUG_REG54_MH_TLBMISS_SEND_MASK | \
+ MH_DEBUG_REG54_MMU_STALL_AWAITING_TLB_MISS_FETCH_MASK | \
+ MH_DEBUG_REG54_pa_in_mpu_range_MASK | \
+ MH_DEBUG_REG54_stage1_valid_MASK | \
+ MH_DEBUG_REG54_stage2_valid_MASK | \
+ MH_DEBUG_REG54_client_behavior_q_MASK | \
+ MH_DEBUG_REG54_IGNORE_TAG_MISS_q_MASK | \
+ MH_DEBUG_REG54_tag_match_q_MASK | \
+ MH_DEBUG_REG54_tag_miss_q_MASK | \
+ MH_DEBUG_REG54_va_in_range_q_MASK | \
+ MH_DEBUG_REG54_PTE_FETCH_COMPLETE_q_MASK | \
+ MH_DEBUG_REG54_TAG_valid_q_MASK)
+
+#define MH_DEBUG_REG54(arq_rtr, mmu_we, ctrl_tlbmiss_re_q, tlbmiss_ctrl_rts, mh_tlbmiss_send, mmu_stall_awaiting_tlb_miss_fetch, pa_in_mpu_range, stage1_valid, stage2_valid, client_behavior_q, ignore_tag_miss_q, tag_match_q, tag_miss_q, va_in_range_q, pte_fetch_complete_q, tag_valid_q) \
+ ((arq_rtr << MH_DEBUG_REG54_ARQ_RTR_SHIFT) | \
+ (mmu_we << MH_DEBUG_REG54_MMU_WE_SHIFT) | \
+ (ctrl_tlbmiss_re_q << MH_DEBUG_REG54_CTRL_TLBMISS_RE_q_SHIFT) | \
+ (tlbmiss_ctrl_rts << MH_DEBUG_REG54_TLBMISS_CTRL_RTS_SHIFT) | \
+ (mh_tlbmiss_send << MH_DEBUG_REG54_MH_TLBMISS_SEND_SHIFT) | \
+ (mmu_stall_awaiting_tlb_miss_fetch << MH_DEBUG_REG54_MMU_STALL_AWAITING_TLB_MISS_FETCH_SHIFT) | \
+ (pa_in_mpu_range << MH_DEBUG_REG54_pa_in_mpu_range_SHIFT) | \
+ (stage1_valid << MH_DEBUG_REG54_stage1_valid_SHIFT) | \
+ (stage2_valid << MH_DEBUG_REG54_stage2_valid_SHIFT) | \
+ (client_behavior_q << MH_DEBUG_REG54_client_behavior_q_SHIFT) | \
+ (ignore_tag_miss_q << MH_DEBUG_REG54_IGNORE_TAG_MISS_q_SHIFT) | \
+ (tag_match_q << MH_DEBUG_REG54_tag_match_q_SHIFT) | \
+ (tag_miss_q << MH_DEBUG_REG54_tag_miss_q_SHIFT) | \
+ (va_in_range_q << MH_DEBUG_REG54_va_in_range_q_SHIFT) | \
+ (pte_fetch_complete_q << MH_DEBUG_REG54_PTE_FETCH_COMPLETE_q_SHIFT) | \
+ (tag_valid_q << MH_DEBUG_REG54_TAG_valid_q_SHIFT))
+
+#define MH_DEBUG_REG54_GET_ARQ_RTR(mh_debug_reg54) \
+ ((mh_debug_reg54 & MH_DEBUG_REG54_ARQ_RTR_MASK) >> MH_DEBUG_REG54_ARQ_RTR_SHIFT)
+#define MH_DEBUG_REG54_GET_MMU_WE(mh_debug_reg54) \
+ ((mh_debug_reg54 & MH_DEBUG_REG54_MMU_WE_MASK) >> MH_DEBUG_REG54_MMU_WE_SHIFT)
+#define MH_DEBUG_REG54_GET_CTRL_TLBMISS_RE_q(mh_debug_reg54) \
+ ((mh_debug_reg54 & MH_DEBUG_REG54_CTRL_TLBMISS_RE_q_MASK) >> MH_DEBUG_REG54_CTRL_TLBMISS_RE_q_SHIFT)
+#define MH_DEBUG_REG54_GET_TLBMISS_CTRL_RTS(mh_debug_reg54) \
+ ((mh_debug_reg54 & MH_DEBUG_REG54_TLBMISS_CTRL_RTS_MASK) >> MH_DEBUG_REG54_TLBMISS_CTRL_RTS_SHIFT)
+#define MH_DEBUG_REG54_GET_MH_TLBMISS_SEND(mh_debug_reg54) \
+ ((mh_debug_reg54 & MH_DEBUG_REG54_MH_TLBMISS_SEND_MASK) >> MH_DEBUG_REG54_MH_TLBMISS_SEND_SHIFT)
+#define MH_DEBUG_REG54_GET_MMU_STALL_AWAITING_TLB_MISS_FETCH(mh_debug_reg54) \
+ ((mh_debug_reg54 & MH_DEBUG_REG54_MMU_STALL_AWAITING_TLB_MISS_FETCH_MASK) >> MH_DEBUG_REG54_MMU_STALL_AWAITING_TLB_MISS_FETCH_SHIFT)
+#define MH_DEBUG_REG54_GET_pa_in_mpu_range(mh_debug_reg54) \
+ ((mh_debug_reg54 & MH_DEBUG_REG54_pa_in_mpu_range_MASK) >> MH_DEBUG_REG54_pa_in_mpu_range_SHIFT)
+#define MH_DEBUG_REG54_GET_stage1_valid(mh_debug_reg54) \
+ ((mh_debug_reg54 & MH_DEBUG_REG54_stage1_valid_MASK) >> MH_DEBUG_REG54_stage1_valid_SHIFT)
+#define MH_DEBUG_REG54_GET_stage2_valid(mh_debug_reg54) \
+ ((mh_debug_reg54 & MH_DEBUG_REG54_stage2_valid_MASK) >> MH_DEBUG_REG54_stage2_valid_SHIFT)
+#define MH_DEBUG_REG54_GET_client_behavior_q(mh_debug_reg54) \
+ ((mh_debug_reg54 & MH_DEBUG_REG54_client_behavior_q_MASK) >> MH_DEBUG_REG54_client_behavior_q_SHIFT)
+#define MH_DEBUG_REG54_GET_IGNORE_TAG_MISS_q(mh_debug_reg54) \
+ ((mh_debug_reg54 & MH_DEBUG_REG54_IGNORE_TAG_MISS_q_MASK) >> MH_DEBUG_REG54_IGNORE_TAG_MISS_q_SHIFT)
+#define MH_DEBUG_REG54_GET_tag_match_q(mh_debug_reg54) \
+ ((mh_debug_reg54 & MH_DEBUG_REG54_tag_match_q_MASK) >> MH_DEBUG_REG54_tag_match_q_SHIFT)
+#define MH_DEBUG_REG54_GET_tag_miss_q(mh_debug_reg54) \
+ ((mh_debug_reg54 & MH_DEBUG_REG54_tag_miss_q_MASK) >> MH_DEBUG_REG54_tag_miss_q_SHIFT)
+#define MH_DEBUG_REG54_GET_va_in_range_q(mh_debug_reg54) \
+ ((mh_debug_reg54 & MH_DEBUG_REG54_va_in_range_q_MASK) >> MH_DEBUG_REG54_va_in_range_q_SHIFT)
+#define MH_DEBUG_REG54_GET_PTE_FETCH_COMPLETE_q(mh_debug_reg54) \
+ ((mh_debug_reg54 & MH_DEBUG_REG54_PTE_FETCH_COMPLETE_q_MASK) >> MH_DEBUG_REG54_PTE_FETCH_COMPLETE_q_SHIFT)
+#define MH_DEBUG_REG54_GET_TAG_valid_q(mh_debug_reg54) \
+ ((mh_debug_reg54 & MH_DEBUG_REG54_TAG_valid_q_MASK) >> MH_DEBUG_REG54_TAG_valid_q_SHIFT)
+
+#define MH_DEBUG_REG54_SET_ARQ_RTR(mh_debug_reg54_reg, arq_rtr) \
+ mh_debug_reg54_reg = (mh_debug_reg54_reg & ~MH_DEBUG_REG54_ARQ_RTR_MASK) | (arq_rtr << MH_DEBUG_REG54_ARQ_RTR_SHIFT)
+#define MH_DEBUG_REG54_SET_MMU_WE(mh_debug_reg54_reg, mmu_we) \
+ mh_debug_reg54_reg = (mh_debug_reg54_reg & ~MH_DEBUG_REG54_MMU_WE_MASK) | (mmu_we << MH_DEBUG_REG54_MMU_WE_SHIFT)
+#define MH_DEBUG_REG54_SET_CTRL_TLBMISS_RE_q(mh_debug_reg54_reg, ctrl_tlbmiss_re_q) \
+ mh_debug_reg54_reg = (mh_debug_reg54_reg & ~MH_DEBUG_REG54_CTRL_TLBMISS_RE_q_MASK) | (ctrl_tlbmiss_re_q << MH_DEBUG_REG54_CTRL_TLBMISS_RE_q_SHIFT)
+#define MH_DEBUG_REG54_SET_TLBMISS_CTRL_RTS(mh_debug_reg54_reg, tlbmiss_ctrl_rts) \
+ mh_debug_reg54_reg = (mh_debug_reg54_reg & ~MH_DEBUG_REG54_TLBMISS_CTRL_RTS_MASK) | (tlbmiss_ctrl_rts << MH_DEBUG_REG54_TLBMISS_CTRL_RTS_SHIFT)
+#define MH_DEBUG_REG54_SET_MH_TLBMISS_SEND(mh_debug_reg54_reg, mh_tlbmiss_send) \
+ mh_debug_reg54_reg = (mh_debug_reg54_reg & ~MH_DEBUG_REG54_MH_TLBMISS_SEND_MASK) | (mh_tlbmiss_send << MH_DEBUG_REG54_MH_TLBMISS_SEND_SHIFT)
+#define MH_DEBUG_REG54_SET_MMU_STALL_AWAITING_TLB_MISS_FETCH(mh_debug_reg54_reg, mmu_stall_awaiting_tlb_miss_fetch) \
+ mh_debug_reg54_reg = (mh_debug_reg54_reg & ~MH_DEBUG_REG54_MMU_STALL_AWAITING_TLB_MISS_FETCH_MASK) | (mmu_stall_awaiting_tlb_miss_fetch << MH_DEBUG_REG54_MMU_STALL_AWAITING_TLB_MISS_FETCH_SHIFT)
+#define MH_DEBUG_REG54_SET_pa_in_mpu_range(mh_debug_reg54_reg, pa_in_mpu_range) \
+ mh_debug_reg54_reg = (mh_debug_reg54_reg & ~MH_DEBUG_REG54_pa_in_mpu_range_MASK) | (pa_in_mpu_range << MH_DEBUG_REG54_pa_in_mpu_range_SHIFT)
+#define MH_DEBUG_REG54_SET_stage1_valid(mh_debug_reg54_reg, stage1_valid) \
+ mh_debug_reg54_reg = (mh_debug_reg54_reg & ~MH_DEBUG_REG54_stage1_valid_MASK) | (stage1_valid << MH_DEBUG_REG54_stage1_valid_SHIFT)
+#define MH_DEBUG_REG54_SET_stage2_valid(mh_debug_reg54_reg, stage2_valid) \
+ mh_debug_reg54_reg = (mh_debug_reg54_reg & ~MH_DEBUG_REG54_stage2_valid_MASK) | (stage2_valid << MH_DEBUG_REG54_stage2_valid_SHIFT)
+#define MH_DEBUG_REG54_SET_client_behavior_q(mh_debug_reg54_reg, client_behavior_q) \
+ mh_debug_reg54_reg = (mh_debug_reg54_reg & ~MH_DEBUG_REG54_client_behavior_q_MASK) | (client_behavior_q << MH_DEBUG_REG54_client_behavior_q_SHIFT)
+#define MH_DEBUG_REG54_SET_IGNORE_TAG_MISS_q(mh_debug_reg54_reg, ignore_tag_miss_q) \
+ mh_debug_reg54_reg = (mh_debug_reg54_reg & ~MH_DEBUG_REG54_IGNORE_TAG_MISS_q_MASK) | (ignore_tag_miss_q << MH_DEBUG_REG54_IGNORE_TAG_MISS_q_SHIFT)
+#define MH_DEBUG_REG54_SET_tag_match_q(mh_debug_reg54_reg, tag_match_q) \
+ mh_debug_reg54_reg = (mh_debug_reg54_reg & ~MH_DEBUG_REG54_tag_match_q_MASK) | (tag_match_q << MH_DEBUG_REG54_tag_match_q_SHIFT)
+#define MH_DEBUG_REG54_SET_tag_miss_q(mh_debug_reg54_reg, tag_miss_q) \
+ mh_debug_reg54_reg = (mh_debug_reg54_reg & ~MH_DEBUG_REG54_tag_miss_q_MASK) | (tag_miss_q << MH_DEBUG_REG54_tag_miss_q_SHIFT)
+#define MH_DEBUG_REG54_SET_va_in_range_q(mh_debug_reg54_reg, va_in_range_q) \
+ mh_debug_reg54_reg = (mh_debug_reg54_reg & ~MH_DEBUG_REG54_va_in_range_q_MASK) | (va_in_range_q << MH_DEBUG_REG54_va_in_range_q_SHIFT)
+#define MH_DEBUG_REG54_SET_PTE_FETCH_COMPLETE_q(mh_debug_reg54_reg, pte_fetch_complete_q) \
+ mh_debug_reg54_reg = (mh_debug_reg54_reg & ~MH_DEBUG_REG54_PTE_FETCH_COMPLETE_q_MASK) | (pte_fetch_complete_q << MH_DEBUG_REG54_PTE_FETCH_COMPLETE_q_SHIFT)
+#define MH_DEBUG_REG54_SET_TAG_valid_q(mh_debug_reg54_reg, tag_valid_q) \
+ mh_debug_reg54_reg = (mh_debug_reg54_reg & ~MH_DEBUG_REG54_TAG_valid_q_MASK) | (tag_valid_q << MH_DEBUG_REG54_TAG_valid_q_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg54_t {
+ unsigned int arq_rtr : MH_DEBUG_REG54_ARQ_RTR_SIZE;
+ unsigned int mmu_we : MH_DEBUG_REG54_MMU_WE_SIZE;
+ unsigned int ctrl_tlbmiss_re_q : MH_DEBUG_REG54_CTRL_TLBMISS_RE_q_SIZE;
+ unsigned int tlbmiss_ctrl_rts : MH_DEBUG_REG54_TLBMISS_CTRL_RTS_SIZE;
+ unsigned int mh_tlbmiss_send : MH_DEBUG_REG54_MH_TLBMISS_SEND_SIZE;
+ unsigned int mmu_stall_awaiting_tlb_miss_fetch : MH_DEBUG_REG54_MMU_STALL_AWAITING_TLB_MISS_FETCH_SIZE;
+ unsigned int pa_in_mpu_range : MH_DEBUG_REG54_pa_in_mpu_range_SIZE;
+ unsigned int stage1_valid : MH_DEBUG_REG54_stage1_valid_SIZE;
+ unsigned int stage2_valid : MH_DEBUG_REG54_stage2_valid_SIZE;
+ unsigned int client_behavior_q : MH_DEBUG_REG54_client_behavior_q_SIZE;
+ unsigned int ignore_tag_miss_q : MH_DEBUG_REG54_IGNORE_TAG_MISS_q_SIZE;
+ unsigned int tag_match_q : MH_DEBUG_REG54_tag_match_q_SIZE;
+ unsigned int tag_miss_q : MH_DEBUG_REG54_tag_miss_q_SIZE;
+ unsigned int va_in_range_q : MH_DEBUG_REG54_va_in_range_q_SIZE;
+ unsigned int pte_fetch_complete_q : MH_DEBUG_REG54_PTE_FETCH_COMPLETE_q_SIZE;
+ unsigned int tag_valid_q : MH_DEBUG_REG54_TAG_valid_q_SIZE;
+ } mh_debug_reg54_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg54_t {
+ unsigned int tag_valid_q : MH_DEBUG_REG54_TAG_valid_q_SIZE;
+ unsigned int pte_fetch_complete_q : MH_DEBUG_REG54_PTE_FETCH_COMPLETE_q_SIZE;
+ unsigned int va_in_range_q : MH_DEBUG_REG54_va_in_range_q_SIZE;
+ unsigned int tag_miss_q : MH_DEBUG_REG54_tag_miss_q_SIZE;
+ unsigned int tag_match_q : MH_DEBUG_REG54_tag_match_q_SIZE;
+ unsigned int ignore_tag_miss_q : MH_DEBUG_REG54_IGNORE_TAG_MISS_q_SIZE;
+ unsigned int client_behavior_q : MH_DEBUG_REG54_client_behavior_q_SIZE;
+ unsigned int stage2_valid : MH_DEBUG_REG54_stage2_valid_SIZE;
+ unsigned int stage1_valid : MH_DEBUG_REG54_stage1_valid_SIZE;
+ unsigned int pa_in_mpu_range : MH_DEBUG_REG54_pa_in_mpu_range_SIZE;
+ unsigned int mmu_stall_awaiting_tlb_miss_fetch : MH_DEBUG_REG54_MMU_STALL_AWAITING_TLB_MISS_FETCH_SIZE;
+ unsigned int mh_tlbmiss_send : MH_DEBUG_REG54_MH_TLBMISS_SEND_SIZE;
+ unsigned int tlbmiss_ctrl_rts : MH_DEBUG_REG54_TLBMISS_CTRL_RTS_SIZE;
+ unsigned int ctrl_tlbmiss_re_q : MH_DEBUG_REG54_CTRL_TLBMISS_RE_q_SIZE;
+ unsigned int mmu_we : MH_DEBUG_REG54_MMU_WE_SIZE;
+ unsigned int arq_rtr : MH_DEBUG_REG54_ARQ_RTR_SIZE;
+ } mh_debug_reg54_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg54_t f;
+} mh_debug_reg54_u;
+
+
+/*
+ * MH_DEBUG_REG55 struct
+ */
+
+#define MH_DEBUG_REG55_TAG0_VA_SIZE 13
+#define MH_DEBUG_REG55_TAG_valid_q_0_SIZE 1
+#define MH_DEBUG_REG55_ALWAYS_ZERO_SIZE 2
+#define MH_DEBUG_REG55_TAG1_VA_SIZE 13
+#define MH_DEBUG_REG55_TAG_valid_q_1_SIZE 1
+
+#define MH_DEBUG_REG55_TAG0_VA_SHIFT 0
+#define MH_DEBUG_REG55_TAG_valid_q_0_SHIFT 13
+#define MH_DEBUG_REG55_ALWAYS_ZERO_SHIFT 14
+#define MH_DEBUG_REG55_TAG1_VA_SHIFT 16
+#define MH_DEBUG_REG55_TAG_valid_q_1_SHIFT 29
+
+#define MH_DEBUG_REG55_TAG0_VA_MASK 0x00001fff
+#define MH_DEBUG_REG55_TAG_valid_q_0_MASK 0x00002000
+#define MH_DEBUG_REG55_ALWAYS_ZERO_MASK 0x0000c000
+#define MH_DEBUG_REG55_TAG1_VA_MASK 0x1fff0000
+#define MH_DEBUG_REG55_TAG_valid_q_1_MASK 0x20000000
+
+#define MH_DEBUG_REG55_MASK \
+ (MH_DEBUG_REG55_TAG0_VA_MASK | \
+ MH_DEBUG_REG55_TAG_valid_q_0_MASK | \
+ MH_DEBUG_REG55_ALWAYS_ZERO_MASK | \
+ MH_DEBUG_REG55_TAG1_VA_MASK | \
+ MH_DEBUG_REG55_TAG_valid_q_1_MASK)
+
+#define MH_DEBUG_REG55(tag0_va, tag_valid_q_0, always_zero, tag1_va, tag_valid_q_1) \
+ ((tag0_va << MH_DEBUG_REG55_TAG0_VA_SHIFT) | \
+ (tag_valid_q_0 << MH_DEBUG_REG55_TAG_valid_q_0_SHIFT) | \
+ (always_zero << MH_DEBUG_REG55_ALWAYS_ZERO_SHIFT) | \
+ (tag1_va << MH_DEBUG_REG55_TAG1_VA_SHIFT) | \
+ (tag_valid_q_1 << MH_DEBUG_REG55_TAG_valid_q_1_SHIFT))
+
+#define MH_DEBUG_REG55_GET_TAG0_VA(mh_debug_reg55) \
+ ((mh_debug_reg55 & MH_DEBUG_REG55_TAG0_VA_MASK) >> MH_DEBUG_REG55_TAG0_VA_SHIFT)
+#define MH_DEBUG_REG55_GET_TAG_valid_q_0(mh_debug_reg55) \
+ ((mh_debug_reg55 & MH_DEBUG_REG55_TAG_valid_q_0_MASK) >> MH_DEBUG_REG55_TAG_valid_q_0_SHIFT)
+#define MH_DEBUG_REG55_GET_ALWAYS_ZERO(mh_debug_reg55) \
+ ((mh_debug_reg55 & MH_DEBUG_REG55_ALWAYS_ZERO_MASK) >> MH_DEBUG_REG55_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG55_GET_TAG1_VA(mh_debug_reg55) \
+ ((mh_debug_reg55 & MH_DEBUG_REG55_TAG1_VA_MASK) >> MH_DEBUG_REG55_TAG1_VA_SHIFT)
+#define MH_DEBUG_REG55_GET_TAG_valid_q_1(mh_debug_reg55) \
+ ((mh_debug_reg55 & MH_DEBUG_REG55_TAG_valid_q_1_MASK) >> MH_DEBUG_REG55_TAG_valid_q_1_SHIFT)
+
+#define MH_DEBUG_REG55_SET_TAG0_VA(mh_debug_reg55_reg, tag0_va) \
+ mh_debug_reg55_reg = (mh_debug_reg55_reg & ~MH_DEBUG_REG55_TAG0_VA_MASK) | (tag0_va << MH_DEBUG_REG55_TAG0_VA_SHIFT)
+#define MH_DEBUG_REG55_SET_TAG_valid_q_0(mh_debug_reg55_reg, tag_valid_q_0) \
+ mh_debug_reg55_reg = (mh_debug_reg55_reg & ~MH_DEBUG_REG55_TAG_valid_q_0_MASK) | (tag_valid_q_0 << MH_DEBUG_REG55_TAG_valid_q_0_SHIFT)
+#define MH_DEBUG_REG55_SET_ALWAYS_ZERO(mh_debug_reg55_reg, always_zero) \
+ mh_debug_reg55_reg = (mh_debug_reg55_reg & ~MH_DEBUG_REG55_ALWAYS_ZERO_MASK) | (always_zero << MH_DEBUG_REG55_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG55_SET_TAG1_VA(mh_debug_reg55_reg, tag1_va) \
+ mh_debug_reg55_reg = (mh_debug_reg55_reg & ~MH_DEBUG_REG55_TAG1_VA_MASK) | (tag1_va << MH_DEBUG_REG55_TAG1_VA_SHIFT)
+#define MH_DEBUG_REG55_SET_TAG_valid_q_1(mh_debug_reg55_reg, tag_valid_q_1) \
+ mh_debug_reg55_reg = (mh_debug_reg55_reg & ~MH_DEBUG_REG55_TAG_valid_q_1_MASK) | (tag_valid_q_1 << MH_DEBUG_REG55_TAG_valid_q_1_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg55_t {
+ unsigned int tag0_va : MH_DEBUG_REG55_TAG0_VA_SIZE;
+ unsigned int tag_valid_q_0 : MH_DEBUG_REG55_TAG_valid_q_0_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG55_ALWAYS_ZERO_SIZE;
+ unsigned int tag1_va : MH_DEBUG_REG55_TAG1_VA_SIZE;
+ unsigned int tag_valid_q_1 : MH_DEBUG_REG55_TAG_valid_q_1_SIZE;
+ unsigned int : 2;
+ } mh_debug_reg55_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg55_t {
+ unsigned int : 2;
+ unsigned int tag_valid_q_1 : MH_DEBUG_REG55_TAG_valid_q_1_SIZE;
+ unsigned int tag1_va : MH_DEBUG_REG55_TAG1_VA_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG55_ALWAYS_ZERO_SIZE;
+ unsigned int tag_valid_q_0 : MH_DEBUG_REG55_TAG_valid_q_0_SIZE;
+ unsigned int tag0_va : MH_DEBUG_REG55_TAG0_VA_SIZE;
+ } mh_debug_reg55_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg55_t f;
+} mh_debug_reg55_u;
+
+
+/*
+ * MH_DEBUG_REG56 struct
+ */
+
+#define MH_DEBUG_REG56_TAG2_VA_SIZE 13
+#define MH_DEBUG_REG56_TAG_valid_q_2_SIZE 1
+#define MH_DEBUG_REG56_ALWAYS_ZERO_SIZE 2
+#define MH_DEBUG_REG56_TAG3_VA_SIZE 13
+#define MH_DEBUG_REG56_TAG_valid_q_3_SIZE 1
+
+#define MH_DEBUG_REG56_TAG2_VA_SHIFT 0
+#define MH_DEBUG_REG56_TAG_valid_q_2_SHIFT 13
+#define MH_DEBUG_REG56_ALWAYS_ZERO_SHIFT 14
+#define MH_DEBUG_REG56_TAG3_VA_SHIFT 16
+#define MH_DEBUG_REG56_TAG_valid_q_3_SHIFT 29
+
+#define MH_DEBUG_REG56_TAG2_VA_MASK 0x00001fff
+#define MH_DEBUG_REG56_TAG_valid_q_2_MASK 0x00002000
+#define MH_DEBUG_REG56_ALWAYS_ZERO_MASK 0x0000c000
+#define MH_DEBUG_REG56_TAG3_VA_MASK 0x1fff0000
+#define MH_DEBUG_REG56_TAG_valid_q_3_MASK 0x20000000
+
+#define MH_DEBUG_REG56_MASK \
+ (MH_DEBUG_REG56_TAG2_VA_MASK | \
+ MH_DEBUG_REG56_TAG_valid_q_2_MASK | \
+ MH_DEBUG_REG56_ALWAYS_ZERO_MASK | \
+ MH_DEBUG_REG56_TAG3_VA_MASK | \
+ MH_DEBUG_REG56_TAG_valid_q_3_MASK)
+
+#define MH_DEBUG_REG56(tag2_va, tag_valid_q_2, always_zero, tag3_va, tag_valid_q_3) \
+ ((tag2_va << MH_DEBUG_REG56_TAG2_VA_SHIFT) | \
+ (tag_valid_q_2 << MH_DEBUG_REG56_TAG_valid_q_2_SHIFT) | \
+ (always_zero << MH_DEBUG_REG56_ALWAYS_ZERO_SHIFT) | \
+ (tag3_va << MH_DEBUG_REG56_TAG3_VA_SHIFT) | \
+ (tag_valid_q_3 << MH_DEBUG_REG56_TAG_valid_q_3_SHIFT))
+
+#define MH_DEBUG_REG56_GET_TAG2_VA(mh_debug_reg56) \
+ ((mh_debug_reg56 & MH_DEBUG_REG56_TAG2_VA_MASK) >> MH_DEBUG_REG56_TAG2_VA_SHIFT)
+#define MH_DEBUG_REG56_GET_TAG_valid_q_2(mh_debug_reg56) \
+ ((mh_debug_reg56 & MH_DEBUG_REG56_TAG_valid_q_2_MASK) >> MH_DEBUG_REG56_TAG_valid_q_2_SHIFT)
+#define MH_DEBUG_REG56_GET_ALWAYS_ZERO(mh_debug_reg56) \
+ ((mh_debug_reg56 & MH_DEBUG_REG56_ALWAYS_ZERO_MASK) >> MH_DEBUG_REG56_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG56_GET_TAG3_VA(mh_debug_reg56) \
+ ((mh_debug_reg56 & MH_DEBUG_REG56_TAG3_VA_MASK) >> MH_DEBUG_REG56_TAG3_VA_SHIFT)
+#define MH_DEBUG_REG56_GET_TAG_valid_q_3(mh_debug_reg56) \
+ ((mh_debug_reg56 & MH_DEBUG_REG56_TAG_valid_q_3_MASK) >> MH_DEBUG_REG56_TAG_valid_q_3_SHIFT)
+
+#define MH_DEBUG_REG56_SET_TAG2_VA(mh_debug_reg56_reg, tag2_va) \
+ mh_debug_reg56_reg = (mh_debug_reg56_reg & ~MH_DEBUG_REG56_TAG2_VA_MASK) | (tag2_va << MH_DEBUG_REG56_TAG2_VA_SHIFT)
+#define MH_DEBUG_REG56_SET_TAG_valid_q_2(mh_debug_reg56_reg, tag_valid_q_2) \
+ mh_debug_reg56_reg = (mh_debug_reg56_reg & ~MH_DEBUG_REG56_TAG_valid_q_2_MASK) | (tag_valid_q_2 << MH_DEBUG_REG56_TAG_valid_q_2_SHIFT)
+#define MH_DEBUG_REG56_SET_ALWAYS_ZERO(mh_debug_reg56_reg, always_zero) \
+ mh_debug_reg56_reg = (mh_debug_reg56_reg & ~MH_DEBUG_REG56_ALWAYS_ZERO_MASK) | (always_zero << MH_DEBUG_REG56_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG56_SET_TAG3_VA(mh_debug_reg56_reg, tag3_va) \
+ mh_debug_reg56_reg = (mh_debug_reg56_reg & ~MH_DEBUG_REG56_TAG3_VA_MASK) | (tag3_va << MH_DEBUG_REG56_TAG3_VA_SHIFT)
+#define MH_DEBUG_REG56_SET_TAG_valid_q_3(mh_debug_reg56_reg, tag_valid_q_3) \
+ mh_debug_reg56_reg = (mh_debug_reg56_reg & ~MH_DEBUG_REG56_TAG_valid_q_3_MASK) | (tag_valid_q_3 << MH_DEBUG_REG56_TAG_valid_q_3_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg56_t {
+ unsigned int tag2_va : MH_DEBUG_REG56_TAG2_VA_SIZE;
+ unsigned int tag_valid_q_2 : MH_DEBUG_REG56_TAG_valid_q_2_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG56_ALWAYS_ZERO_SIZE;
+ unsigned int tag3_va : MH_DEBUG_REG56_TAG3_VA_SIZE;
+ unsigned int tag_valid_q_3 : MH_DEBUG_REG56_TAG_valid_q_3_SIZE;
+ unsigned int : 2;
+ } mh_debug_reg56_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg56_t {
+ unsigned int : 2;
+ unsigned int tag_valid_q_3 : MH_DEBUG_REG56_TAG_valid_q_3_SIZE;
+ unsigned int tag3_va : MH_DEBUG_REG56_TAG3_VA_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG56_ALWAYS_ZERO_SIZE;
+ unsigned int tag_valid_q_2 : MH_DEBUG_REG56_TAG_valid_q_2_SIZE;
+ unsigned int tag2_va : MH_DEBUG_REG56_TAG2_VA_SIZE;
+ } mh_debug_reg56_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg56_t f;
+} mh_debug_reg56_u;
+
+
+/*
+ * MH_DEBUG_REG57 struct
+ */
+
+#define MH_DEBUG_REG57_TAG4_VA_SIZE 13
+#define MH_DEBUG_REG57_TAG_valid_q_4_SIZE 1
+#define MH_DEBUG_REG57_ALWAYS_ZERO_SIZE 2
+#define MH_DEBUG_REG57_TAG5_VA_SIZE 13
+#define MH_DEBUG_REG57_TAG_valid_q_5_SIZE 1
+
+#define MH_DEBUG_REG57_TAG4_VA_SHIFT 0
+#define MH_DEBUG_REG57_TAG_valid_q_4_SHIFT 13
+#define MH_DEBUG_REG57_ALWAYS_ZERO_SHIFT 14
+#define MH_DEBUG_REG57_TAG5_VA_SHIFT 16
+#define MH_DEBUG_REG57_TAG_valid_q_5_SHIFT 29
+
+#define MH_DEBUG_REG57_TAG4_VA_MASK 0x00001fff
+#define MH_DEBUG_REG57_TAG_valid_q_4_MASK 0x00002000
+#define MH_DEBUG_REG57_ALWAYS_ZERO_MASK 0x0000c000
+#define MH_DEBUG_REG57_TAG5_VA_MASK 0x1fff0000
+#define MH_DEBUG_REG57_TAG_valid_q_5_MASK 0x20000000
+
+#define MH_DEBUG_REG57_MASK \
+ (MH_DEBUG_REG57_TAG4_VA_MASK | \
+ MH_DEBUG_REG57_TAG_valid_q_4_MASK | \
+ MH_DEBUG_REG57_ALWAYS_ZERO_MASK | \
+ MH_DEBUG_REG57_TAG5_VA_MASK | \
+ MH_DEBUG_REG57_TAG_valid_q_5_MASK)
+
+#define MH_DEBUG_REG57(tag4_va, tag_valid_q_4, always_zero, tag5_va, tag_valid_q_5) \
+ ((tag4_va << MH_DEBUG_REG57_TAG4_VA_SHIFT) | \
+ (tag_valid_q_4 << MH_DEBUG_REG57_TAG_valid_q_4_SHIFT) | \
+ (always_zero << MH_DEBUG_REG57_ALWAYS_ZERO_SHIFT) | \
+ (tag5_va << MH_DEBUG_REG57_TAG5_VA_SHIFT) | \
+ (tag_valid_q_5 << MH_DEBUG_REG57_TAG_valid_q_5_SHIFT))
+
+#define MH_DEBUG_REG57_GET_TAG4_VA(mh_debug_reg57) \
+ ((mh_debug_reg57 & MH_DEBUG_REG57_TAG4_VA_MASK) >> MH_DEBUG_REG57_TAG4_VA_SHIFT)
+#define MH_DEBUG_REG57_GET_TAG_valid_q_4(mh_debug_reg57) \
+ ((mh_debug_reg57 & MH_DEBUG_REG57_TAG_valid_q_4_MASK) >> MH_DEBUG_REG57_TAG_valid_q_4_SHIFT)
+#define MH_DEBUG_REG57_GET_ALWAYS_ZERO(mh_debug_reg57) \
+ ((mh_debug_reg57 & MH_DEBUG_REG57_ALWAYS_ZERO_MASK) >> MH_DEBUG_REG57_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG57_GET_TAG5_VA(mh_debug_reg57) \
+ ((mh_debug_reg57 & MH_DEBUG_REG57_TAG5_VA_MASK) >> MH_DEBUG_REG57_TAG5_VA_SHIFT)
+#define MH_DEBUG_REG57_GET_TAG_valid_q_5(mh_debug_reg57) \
+ ((mh_debug_reg57 & MH_DEBUG_REG57_TAG_valid_q_5_MASK) >> MH_DEBUG_REG57_TAG_valid_q_5_SHIFT)
+
+#define MH_DEBUG_REG57_SET_TAG4_VA(mh_debug_reg57_reg, tag4_va) \
+ mh_debug_reg57_reg = (mh_debug_reg57_reg & ~MH_DEBUG_REG57_TAG4_VA_MASK) | (tag4_va << MH_DEBUG_REG57_TAG4_VA_SHIFT)
+#define MH_DEBUG_REG57_SET_TAG_valid_q_4(mh_debug_reg57_reg, tag_valid_q_4) \
+ mh_debug_reg57_reg = (mh_debug_reg57_reg & ~MH_DEBUG_REG57_TAG_valid_q_4_MASK) | (tag_valid_q_4 << MH_DEBUG_REG57_TAG_valid_q_4_SHIFT)
+#define MH_DEBUG_REG57_SET_ALWAYS_ZERO(mh_debug_reg57_reg, always_zero) \
+ mh_debug_reg57_reg = (mh_debug_reg57_reg & ~MH_DEBUG_REG57_ALWAYS_ZERO_MASK) | (always_zero << MH_DEBUG_REG57_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG57_SET_TAG5_VA(mh_debug_reg57_reg, tag5_va) \
+ mh_debug_reg57_reg = (mh_debug_reg57_reg & ~MH_DEBUG_REG57_TAG5_VA_MASK) | (tag5_va << MH_DEBUG_REG57_TAG5_VA_SHIFT)
+#define MH_DEBUG_REG57_SET_TAG_valid_q_5(mh_debug_reg57_reg, tag_valid_q_5) \
+ mh_debug_reg57_reg = (mh_debug_reg57_reg & ~MH_DEBUG_REG57_TAG_valid_q_5_MASK) | (tag_valid_q_5 << MH_DEBUG_REG57_TAG_valid_q_5_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg57_t {
+ unsigned int tag4_va : MH_DEBUG_REG57_TAG4_VA_SIZE;
+ unsigned int tag_valid_q_4 : MH_DEBUG_REG57_TAG_valid_q_4_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG57_ALWAYS_ZERO_SIZE;
+ unsigned int tag5_va : MH_DEBUG_REG57_TAG5_VA_SIZE;
+ unsigned int tag_valid_q_5 : MH_DEBUG_REG57_TAG_valid_q_5_SIZE;
+ unsigned int : 2;
+ } mh_debug_reg57_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg57_t {
+ unsigned int : 2;
+ unsigned int tag_valid_q_5 : MH_DEBUG_REG57_TAG_valid_q_5_SIZE;
+ unsigned int tag5_va : MH_DEBUG_REG57_TAG5_VA_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG57_ALWAYS_ZERO_SIZE;
+ unsigned int tag_valid_q_4 : MH_DEBUG_REG57_TAG_valid_q_4_SIZE;
+ unsigned int tag4_va : MH_DEBUG_REG57_TAG4_VA_SIZE;
+ } mh_debug_reg57_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg57_t f;
+} mh_debug_reg57_u;
+
+
+/*
+ * MH_DEBUG_REG58 struct
+ */
+
+#define MH_DEBUG_REG58_TAG6_VA_SIZE 13
+#define MH_DEBUG_REG58_TAG_valid_q_6_SIZE 1
+#define MH_DEBUG_REG58_ALWAYS_ZERO_SIZE 2
+#define MH_DEBUG_REG58_TAG7_VA_SIZE 13
+#define MH_DEBUG_REG58_TAG_valid_q_7_SIZE 1
+
+#define MH_DEBUG_REG58_TAG6_VA_SHIFT 0
+#define MH_DEBUG_REG58_TAG_valid_q_6_SHIFT 13
+#define MH_DEBUG_REG58_ALWAYS_ZERO_SHIFT 14
+#define MH_DEBUG_REG58_TAG7_VA_SHIFT 16
+#define MH_DEBUG_REG58_TAG_valid_q_7_SHIFT 29
+
+#define MH_DEBUG_REG58_TAG6_VA_MASK 0x00001fff
+#define MH_DEBUG_REG58_TAG_valid_q_6_MASK 0x00002000
+#define MH_DEBUG_REG58_ALWAYS_ZERO_MASK 0x0000c000
+#define MH_DEBUG_REG58_TAG7_VA_MASK 0x1fff0000
+#define MH_DEBUG_REG58_TAG_valid_q_7_MASK 0x20000000
+
+#define MH_DEBUG_REG58_MASK \
+ (MH_DEBUG_REG58_TAG6_VA_MASK | \
+ MH_DEBUG_REG58_TAG_valid_q_6_MASK | \
+ MH_DEBUG_REG58_ALWAYS_ZERO_MASK | \
+ MH_DEBUG_REG58_TAG7_VA_MASK | \
+ MH_DEBUG_REG58_TAG_valid_q_7_MASK)
+
+#define MH_DEBUG_REG58(tag6_va, tag_valid_q_6, always_zero, tag7_va, tag_valid_q_7) \
+ ((tag6_va << MH_DEBUG_REG58_TAG6_VA_SHIFT) | \
+ (tag_valid_q_6 << MH_DEBUG_REG58_TAG_valid_q_6_SHIFT) | \
+ (always_zero << MH_DEBUG_REG58_ALWAYS_ZERO_SHIFT) | \
+ (tag7_va << MH_DEBUG_REG58_TAG7_VA_SHIFT) | \
+ (tag_valid_q_7 << MH_DEBUG_REG58_TAG_valid_q_7_SHIFT))
+
+#define MH_DEBUG_REG58_GET_TAG6_VA(mh_debug_reg58) \
+ ((mh_debug_reg58 & MH_DEBUG_REG58_TAG6_VA_MASK) >> MH_DEBUG_REG58_TAG6_VA_SHIFT)
+#define MH_DEBUG_REG58_GET_TAG_valid_q_6(mh_debug_reg58) \
+ ((mh_debug_reg58 & MH_DEBUG_REG58_TAG_valid_q_6_MASK) >> MH_DEBUG_REG58_TAG_valid_q_6_SHIFT)
+#define MH_DEBUG_REG58_GET_ALWAYS_ZERO(mh_debug_reg58) \
+ ((mh_debug_reg58 & MH_DEBUG_REG58_ALWAYS_ZERO_MASK) >> MH_DEBUG_REG58_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG58_GET_TAG7_VA(mh_debug_reg58) \
+ ((mh_debug_reg58 & MH_DEBUG_REG58_TAG7_VA_MASK) >> MH_DEBUG_REG58_TAG7_VA_SHIFT)
+#define MH_DEBUG_REG58_GET_TAG_valid_q_7(mh_debug_reg58) \
+ ((mh_debug_reg58 & MH_DEBUG_REG58_TAG_valid_q_7_MASK) >> MH_DEBUG_REG58_TAG_valid_q_7_SHIFT)
+
+#define MH_DEBUG_REG58_SET_TAG6_VA(mh_debug_reg58_reg, tag6_va) \
+ mh_debug_reg58_reg = (mh_debug_reg58_reg & ~MH_DEBUG_REG58_TAG6_VA_MASK) | (tag6_va << MH_DEBUG_REG58_TAG6_VA_SHIFT)
+#define MH_DEBUG_REG58_SET_TAG_valid_q_6(mh_debug_reg58_reg, tag_valid_q_6) \
+ mh_debug_reg58_reg = (mh_debug_reg58_reg & ~MH_DEBUG_REG58_TAG_valid_q_6_MASK) | (tag_valid_q_6 << MH_DEBUG_REG58_TAG_valid_q_6_SHIFT)
+#define MH_DEBUG_REG58_SET_ALWAYS_ZERO(mh_debug_reg58_reg, always_zero) \
+ mh_debug_reg58_reg = (mh_debug_reg58_reg & ~MH_DEBUG_REG58_ALWAYS_ZERO_MASK) | (always_zero << MH_DEBUG_REG58_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG58_SET_TAG7_VA(mh_debug_reg58_reg, tag7_va) \
+ mh_debug_reg58_reg = (mh_debug_reg58_reg & ~MH_DEBUG_REG58_TAG7_VA_MASK) | (tag7_va << MH_DEBUG_REG58_TAG7_VA_SHIFT)
+#define MH_DEBUG_REG58_SET_TAG_valid_q_7(mh_debug_reg58_reg, tag_valid_q_7) \
+ mh_debug_reg58_reg = (mh_debug_reg58_reg & ~MH_DEBUG_REG58_TAG_valid_q_7_MASK) | (tag_valid_q_7 << MH_DEBUG_REG58_TAG_valid_q_7_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg58_t {
+ unsigned int tag6_va : MH_DEBUG_REG58_TAG6_VA_SIZE;
+ unsigned int tag_valid_q_6 : MH_DEBUG_REG58_TAG_valid_q_6_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG58_ALWAYS_ZERO_SIZE;
+ unsigned int tag7_va : MH_DEBUG_REG58_TAG7_VA_SIZE;
+ unsigned int tag_valid_q_7 : MH_DEBUG_REG58_TAG_valid_q_7_SIZE;
+ unsigned int : 2;
+ } mh_debug_reg58_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg58_t {
+ unsigned int : 2;
+ unsigned int tag_valid_q_7 : MH_DEBUG_REG58_TAG_valid_q_7_SIZE;
+ unsigned int tag7_va : MH_DEBUG_REG58_TAG7_VA_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG58_ALWAYS_ZERO_SIZE;
+ unsigned int tag_valid_q_6 : MH_DEBUG_REG58_TAG_valid_q_6_SIZE;
+ unsigned int tag6_va : MH_DEBUG_REG58_TAG6_VA_SIZE;
+ } mh_debug_reg58_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg58_t f;
+} mh_debug_reg58_u;
+
+
+/*
+ * MH_DEBUG_REG59 struct
+ */
+
+#define MH_DEBUG_REG59_TAG8_VA_SIZE 13
+#define MH_DEBUG_REG59_TAG_valid_q_8_SIZE 1
+#define MH_DEBUG_REG59_ALWAYS_ZERO_SIZE 2
+#define MH_DEBUG_REG59_TAG9_VA_SIZE 13
+#define MH_DEBUG_REG59_TAG_valid_q_9_SIZE 1
+
+#define MH_DEBUG_REG59_TAG8_VA_SHIFT 0
+#define MH_DEBUG_REG59_TAG_valid_q_8_SHIFT 13
+#define MH_DEBUG_REG59_ALWAYS_ZERO_SHIFT 14
+#define MH_DEBUG_REG59_TAG9_VA_SHIFT 16
+#define MH_DEBUG_REG59_TAG_valid_q_9_SHIFT 29
+
+#define MH_DEBUG_REG59_TAG8_VA_MASK 0x00001fff
+#define MH_DEBUG_REG59_TAG_valid_q_8_MASK 0x00002000
+#define MH_DEBUG_REG59_ALWAYS_ZERO_MASK 0x0000c000
+#define MH_DEBUG_REG59_TAG9_VA_MASK 0x1fff0000
+#define MH_DEBUG_REG59_TAG_valid_q_9_MASK 0x20000000
+
+#define MH_DEBUG_REG59_MASK \
+ (MH_DEBUG_REG59_TAG8_VA_MASK | \
+ MH_DEBUG_REG59_TAG_valid_q_8_MASK | \
+ MH_DEBUG_REG59_ALWAYS_ZERO_MASK | \
+ MH_DEBUG_REG59_TAG9_VA_MASK | \
+ MH_DEBUG_REG59_TAG_valid_q_9_MASK)
+
+#define MH_DEBUG_REG59(tag8_va, tag_valid_q_8, always_zero, tag9_va, tag_valid_q_9) \
+ ((tag8_va << MH_DEBUG_REG59_TAG8_VA_SHIFT) | \
+ (tag_valid_q_8 << MH_DEBUG_REG59_TAG_valid_q_8_SHIFT) | \
+ (always_zero << MH_DEBUG_REG59_ALWAYS_ZERO_SHIFT) | \
+ (tag9_va << MH_DEBUG_REG59_TAG9_VA_SHIFT) | \
+ (tag_valid_q_9 << MH_DEBUG_REG59_TAG_valid_q_9_SHIFT))
+
+#define MH_DEBUG_REG59_GET_TAG8_VA(mh_debug_reg59) \
+ ((mh_debug_reg59 & MH_DEBUG_REG59_TAG8_VA_MASK) >> MH_DEBUG_REG59_TAG8_VA_SHIFT)
+#define MH_DEBUG_REG59_GET_TAG_valid_q_8(mh_debug_reg59) \
+ ((mh_debug_reg59 & MH_DEBUG_REG59_TAG_valid_q_8_MASK) >> MH_DEBUG_REG59_TAG_valid_q_8_SHIFT)
+#define MH_DEBUG_REG59_GET_ALWAYS_ZERO(mh_debug_reg59) \
+ ((mh_debug_reg59 & MH_DEBUG_REG59_ALWAYS_ZERO_MASK) >> MH_DEBUG_REG59_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG59_GET_TAG9_VA(mh_debug_reg59) \
+ ((mh_debug_reg59 & MH_DEBUG_REG59_TAG9_VA_MASK) >> MH_DEBUG_REG59_TAG9_VA_SHIFT)
+#define MH_DEBUG_REG59_GET_TAG_valid_q_9(mh_debug_reg59) \
+ ((mh_debug_reg59 & MH_DEBUG_REG59_TAG_valid_q_9_MASK) >> MH_DEBUG_REG59_TAG_valid_q_9_SHIFT)
+
+#define MH_DEBUG_REG59_SET_TAG8_VA(mh_debug_reg59_reg, tag8_va) \
+ mh_debug_reg59_reg = (mh_debug_reg59_reg & ~MH_DEBUG_REG59_TAG8_VA_MASK) | (tag8_va << MH_DEBUG_REG59_TAG8_VA_SHIFT)
+#define MH_DEBUG_REG59_SET_TAG_valid_q_8(mh_debug_reg59_reg, tag_valid_q_8) \
+ mh_debug_reg59_reg = (mh_debug_reg59_reg & ~MH_DEBUG_REG59_TAG_valid_q_8_MASK) | (tag_valid_q_8 << MH_DEBUG_REG59_TAG_valid_q_8_SHIFT)
+#define MH_DEBUG_REG59_SET_ALWAYS_ZERO(mh_debug_reg59_reg, always_zero) \
+ mh_debug_reg59_reg = (mh_debug_reg59_reg & ~MH_DEBUG_REG59_ALWAYS_ZERO_MASK) | (always_zero << MH_DEBUG_REG59_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG59_SET_TAG9_VA(mh_debug_reg59_reg, tag9_va) \
+ mh_debug_reg59_reg = (mh_debug_reg59_reg & ~MH_DEBUG_REG59_TAG9_VA_MASK) | (tag9_va << MH_DEBUG_REG59_TAG9_VA_SHIFT)
+#define MH_DEBUG_REG59_SET_TAG_valid_q_9(mh_debug_reg59_reg, tag_valid_q_9) \
+ mh_debug_reg59_reg = (mh_debug_reg59_reg & ~MH_DEBUG_REG59_TAG_valid_q_9_MASK) | (tag_valid_q_9 << MH_DEBUG_REG59_TAG_valid_q_9_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg59_t {
+ unsigned int tag8_va : MH_DEBUG_REG59_TAG8_VA_SIZE;
+ unsigned int tag_valid_q_8 : MH_DEBUG_REG59_TAG_valid_q_8_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG59_ALWAYS_ZERO_SIZE;
+ unsigned int tag9_va : MH_DEBUG_REG59_TAG9_VA_SIZE;
+ unsigned int tag_valid_q_9 : MH_DEBUG_REG59_TAG_valid_q_9_SIZE;
+ unsigned int : 2;
+ } mh_debug_reg59_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg59_t {
+ unsigned int : 2;
+ unsigned int tag_valid_q_9 : MH_DEBUG_REG59_TAG_valid_q_9_SIZE;
+ unsigned int tag9_va : MH_DEBUG_REG59_TAG9_VA_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG59_ALWAYS_ZERO_SIZE;
+ unsigned int tag_valid_q_8 : MH_DEBUG_REG59_TAG_valid_q_8_SIZE;
+ unsigned int tag8_va : MH_DEBUG_REG59_TAG8_VA_SIZE;
+ } mh_debug_reg59_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg59_t f;
+} mh_debug_reg59_u;
+
+
+/*
+ * MH_DEBUG_REG60 struct
+ */
+
+#define MH_DEBUG_REG60_TAG10_VA_SIZE 13
+#define MH_DEBUG_REG60_TAG_valid_q_10_SIZE 1
+#define MH_DEBUG_REG60_ALWAYS_ZERO_SIZE 2
+#define MH_DEBUG_REG60_TAG11_VA_SIZE 13
+#define MH_DEBUG_REG60_TAG_valid_q_11_SIZE 1
+
+#define MH_DEBUG_REG60_TAG10_VA_SHIFT 0
+#define MH_DEBUG_REG60_TAG_valid_q_10_SHIFT 13
+#define MH_DEBUG_REG60_ALWAYS_ZERO_SHIFT 14
+#define MH_DEBUG_REG60_TAG11_VA_SHIFT 16
+#define MH_DEBUG_REG60_TAG_valid_q_11_SHIFT 29
+
+#define MH_DEBUG_REG60_TAG10_VA_MASK 0x00001fff
+#define MH_DEBUG_REG60_TAG_valid_q_10_MASK 0x00002000
+#define MH_DEBUG_REG60_ALWAYS_ZERO_MASK 0x0000c000
+#define MH_DEBUG_REG60_TAG11_VA_MASK 0x1fff0000
+#define MH_DEBUG_REG60_TAG_valid_q_11_MASK 0x20000000
+
+#define MH_DEBUG_REG60_MASK \
+ (MH_DEBUG_REG60_TAG10_VA_MASK | \
+ MH_DEBUG_REG60_TAG_valid_q_10_MASK | \
+ MH_DEBUG_REG60_ALWAYS_ZERO_MASK | \
+ MH_DEBUG_REG60_TAG11_VA_MASK | \
+ MH_DEBUG_REG60_TAG_valid_q_11_MASK)
+
+#define MH_DEBUG_REG60(tag10_va, tag_valid_q_10, always_zero, tag11_va, tag_valid_q_11) \
+ ((tag10_va << MH_DEBUG_REG60_TAG10_VA_SHIFT) | \
+ (tag_valid_q_10 << MH_DEBUG_REG60_TAG_valid_q_10_SHIFT) | \
+ (always_zero << MH_DEBUG_REG60_ALWAYS_ZERO_SHIFT) | \
+ (tag11_va << MH_DEBUG_REG60_TAG11_VA_SHIFT) | \
+ (tag_valid_q_11 << MH_DEBUG_REG60_TAG_valid_q_11_SHIFT))
+
+#define MH_DEBUG_REG60_GET_TAG10_VA(mh_debug_reg60) \
+ ((mh_debug_reg60 & MH_DEBUG_REG60_TAG10_VA_MASK) >> MH_DEBUG_REG60_TAG10_VA_SHIFT)
+#define MH_DEBUG_REG60_GET_TAG_valid_q_10(mh_debug_reg60) \
+ ((mh_debug_reg60 & MH_DEBUG_REG60_TAG_valid_q_10_MASK) >> MH_DEBUG_REG60_TAG_valid_q_10_SHIFT)
+#define MH_DEBUG_REG60_GET_ALWAYS_ZERO(mh_debug_reg60) \
+ ((mh_debug_reg60 & MH_DEBUG_REG60_ALWAYS_ZERO_MASK) >> MH_DEBUG_REG60_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG60_GET_TAG11_VA(mh_debug_reg60) \
+ ((mh_debug_reg60 & MH_DEBUG_REG60_TAG11_VA_MASK) >> MH_DEBUG_REG60_TAG11_VA_SHIFT)
+#define MH_DEBUG_REG60_GET_TAG_valid_q_11(mh_debug_reg60) \
+ ((mh_debug_reg60 & MH_DEBUG_REG60_TAG_valid_q_11_MASK) >> MH_DEBUG_REG60_TAG_valid_q_11_SHIFT)
+
+#define MH_DEBUG_REG60_SET_TAG10_VA(mh_debug_reg60_reg, tag10_va) \
+ mh_debug_reg60_reg = (mh_debug_reg60_reg & ~MH_DEBUG_REG60_TAG10_VA_MASK) | (tag10_va << MH_DEBUG_REG60_TAG10_VA_SHIFT)
+#define MH_DEBUG_REG60_SET_TAG_valid_q_10(mh_debug_reg60_reg, tag_valid_q_10) \
+ mh_debug_reg60_reg = (mh_debug_reg60_reg & ~MH_DEBUG_REG60_TAG_valid_q_10_MASK) | (tag_valid_q_10 << MH_DEBUG_REG60_TAG_valid_q_10_SHIFT)
+#define MH_DEBUG_REG60_SET_ALWAYS_ZERO(mh_debug_reg60_reg, always_zero) \
+ mh_debug_reg60_reg = (mh_debug_reg60_reg & ~MH_DEBUG_REG60_ALWAYS_ZERO_MASK) | (always_zero << MH_DEBUG_REG60_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG60_SET_TAG11_VA(mh_debug_reg60_reg, tag11_va) \
+ mh_debug_reg60_reg = (mh_debug_reg60_reg & ~MH_DEBUG_REG60_TAG11_VA_MASK) | (tag11_va << MH_DEBUG_REG60_TAG11_VA_SHIFT)
+#define MH_DEBUG_REG60_SET_TAG_valid_q_11(mh_debug_reg60_reg, tag_valid_q_11) \
+ mh_debug_reg60_reg = (mh_debug_reg60_reg & ~MH_DEBUG_REG60_TAG_valid_q_11_MASK) | (tag_valid_q_11 << MH_DEBUG_REG60_TAG_valid_q_11_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg60_t {
+ unsigned int tag10_va : MH_DEBUG_REG60_TAG10_VA_SIZE;
+ unsigned int tag_valid_q_10 : MH_DEBUG_REG60_TAG_valid_q_10_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG60_ALWAYS_ZERO_SIZE;
+ unsigned int tag11_va : MH_DEBUG_REG60_TAG11_VA_SIZE;
+ unsigned int tag_valid_q_11 : MH_DEBUG_REG60_TAG_valid_q_11_SIZE;
+ unsigned int : 2;
+ } mh_debug_reg60_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg60_t {
+ unsigned int : 2;
+ unsigned int tag_valid_q_11 : MH_DEBUG_REG60_TAG_valid_q_11_SIZE;
+ unsigned int tag11_va : MH_DEBUG_REG60_TAG11_VA_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG60_ALWAYS_ZERO_SIZE;
+ unsigned int tag_valid_q_10 : MH_DEBUG_REG60_TAG_valid_q_10_SIZE;
+ unsigned int tag10_va : MH_DEBUG_REG60_TAG10_VA_SIZE;
+ } mh_debug_reg60_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg60_t f;
+} mh_debug_reg60_u;
+
+
+/*
+ * MH_DEBUG_REG61 struct
+ */
+
+#define MH_DEBUG_REG61_TAG12_VA_SIZE 13
+#define MH_DEBUG_REG61_TAG_valid_q_12_SIZE 1
+#define MH_DEBUG_REG61_ALWAYS_ZERO_SIZE 2
+#define MH_DEBUG_REG61_TAG13_VA_SIZE 13
+#define MH_DEBUG_REG61_TAG_valid_q_13_SIZE 1
+
+#define MH_DEBUG_REG61_TAG12_VA_SHIFT 0
+#define MH_DEBUG_REG61_TAG_valid_q_12_SHIFT 13
+#define MH_DEBUG_REG61_ALWAYS_ZERO_SHIFT 14
+#define MH_DEBUG_REG61_TAG13_VA_SHIFT 16
+#define MH_DEBUG_REG61_TAG_valid_q_13_SHIFT 29
+
+#define MH_DEBUG_REG61_TAG12_VA_MASK 0x00001fff
+#define MH_DEBUG_REG61_TAG_valid_q_12_MASK 0x00002000
+#define MH_DEBUG_REG61_ALWAYS_ZERO_MASK 0x0000c000
+#define MH_DEBUG_REG61_TAG13_VA_MASK 0x1fff0000
+#define MH_DEBUG_REG61_TAG_valid_q_13_MASK 0x20000000
+
+#define MH_DEBUG_REG61_MASK \
+ (MH_DEBUG_REG61_TAG12_VA_MASK | \
+ MH_DEBUG_REG61_TAG_valid_q_12_MASK | \
+ MH_DEBUG_REG61_ALWAYS_ZERO_MASK | \
+ MH_DEBUG_REG61_TAG13_VA_MASK | \
+ MH_DEBUG_REG61_TAG_valid_q_13_MASK)
+
+#define MH_DEBUG_REG61(tag12_va, tag_valid_q_12, always_zero, tag13_va, tag_valid_q_13) \
+ ((tag12_va << MH_DEBUG_REG61_TAG12_VA_SHIFT) | \
+ (tag_valid_q_12 << MH_DEBUG_REG61_TAG_valid_q_12_SHIFT) | \
+ (always_zero << MH_DEBUG_REG61_ALWAYS_ZERO_SHIFT) | \
+ (tag13_va << MH_DEBUG_REG61_TAG13_VA_SHIFT) | \
+ (tag_valid_q_13 << MH_DEBUG_REG61_TAG_valid_q_13_SHIFT))
+
+#define MH_DEBUG_REG61_GET_TAG12_VA(mh_debug_reg61) \
+ ((mh_debug_reg61 & MH_DEBUG_REG61_TAG12_VA_MASK) >> MH_DEBUG_REG61_TAG12_VA_SHIFT)
+#define MH_DEBUG_REG61_GET_TAG_valid_q_12(mh_debug_reg61) \
+ ((mh_debug_reg61 & MH_DEBUG_REG61_TAG_valid_q_12_MASK) >> MH_DEBUG_REG61_TAG_valid_q_12_SHIFT)
+#define MH_DEBUG_REG61_GET_ALWAYS_ZERO(mh_debug_reg61) \
+ ((mh_debug_reg61 & MH_DEBUG_REG61_ALWAYS_ZERO_MASK) >> MH_DEBUG_REG61_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG61_GET_TAG13_VA(mh_debug_reg61) \
+ ((mh_debug_reg61 & MH_DEBUG_REG61_TAG13_VA_MASK) >> MH_DEBUG_REG61_TAG13_VA_SHIFT)
+#define MH_DEBUG_REG61_GET_TAG_valid_q_13(mh_debug_reg61) \
+ ((mh_debug_reg61 & MH_DEBUG_REG61_TAG_valid_q_13_MASK) >> MH_DEBUG_REG61_TAG_valid_q_13_SHIFT)
+
+#define MH_DEBUG_REG61_SET_TAG12_VA(mh_debug_reg61_reg, tag12_va) \
+ mh_debug_reg61_reg = (mh_debug_reg61_reg & ~MH_DEBUG_REG61_TAG12_VA_MASK) | (tag12_va << MH_DEBUG_REG61_TAG12_VA_SHIFT)
+#define MH_DEBUG_REG61_SET_TAG_valid_q_12(mh_debug_reg61_reg, tag_valid_q_12) \
+ mh_debug_reg61_reg = (mh_debug_reg61_reg & ~MH_DEBUG_REG61_TAG_valid_q_12_MASK) | (tag_valid_q_12 << MH_DEBUG_REG61_TAG_valid_q_12_SHIFT)
+#define MH_DEBUG_REG61_SET_ALWAYS_ZERO(mh_debug_reg61_reg, always_zero) \
+ mh_debug_reg61_reg = (mh_debug_reg61_reg & ~MH_DEBUG_REG61_ALWAYS_ZERO_MASK) | (always_zero << MH_DEBUG_REG61_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG61_SET_TAG13_VA(mh_debug_reg61_reg, tag13_va) \
+ mh_debug_reg61_reg = (mh_debug_reg61_reg & ~MH_DEBUG_REG61_TAG13_VA_MASK) | (tag13_va << MH_DEBUG_REG61_TAG13_VA_SHIFT)
+#define MH_DEBUG_REG61_SET_TAG_valid_q_13(mh_debug_reg61_reg, tag_valid_q_13) \
+ mh_debug_reg61_reg = (mh_debug_reg61_reg & ~MH_DEBUG_REG61_TAG_valid_q_13_MASK) | (tag_valid_q_13 << MH_DEBUG_REG61_TAG_valid_q_13_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg61_t {
+ unsigned int tag12_va : MH_DEBUG_REG61_TAG12_VA_SIZE;
+ unsigned int tag_valid_q_12 : MH_DEBUG_REG61_TAG_valid_q_12_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG61_ALWAYS_ZERO_SIZE;
+ unsigned int tag13_va : MH_DEBUG_REG61_TAG13_VA_SIZE;
+ unsigned int tag_valid_q_13 : MH_DEBUG_REG61_TAG_valid_q_13_SIZE;
+ unsigned int : 2;
+ } mh_debug_reg61_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg61_t {
+ unsigned int : 2;
+ unsigned int tag_valid_q_13 : MH_DEBUG_REG61_TAG_valid_q_13_SIZE;
+ unsigned int tag13_va : MH_DEBUG_REG61_TAG13_VA_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG61_ALWAYS_ZERO_SIZE;
+ unsigned int tag_valid_q_12 : MH_DEBUG_REG61_TAG_valid_q_12_SIZE;
+ unsigned int tag12_va : MH_DEBUG_REG61_TAG12_VA_SIZE;
+ } mh_debug_reg61_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg61_t f;
+} mh_debug_reg61_u;
+
+
+/*
+ * MH_DEBUG_REG62 struct
+ */
+
+#define MH_DEBUG_REG62_TAG14_VA_SIZE 13
+#define MH_DEBUG_REG62_TAG_valid_q_14_SIZE 1
+#define MH_DEBUG_REG62_ALWAYS_ZERO_SIZE 2
+#define MH_DEBUG_REG62_TAG15_VA_SIZE 13
+#define MH_DEBUG_REG62_TAG_valid_q_15_SIZE 1
+
+#define MH_DEBUG_REG62_TAG14_VA_SHIFT 0
+#define MH_DEBUG_REG62_TAG_valid_q_14_SHIFT 13
+#define MH_DEBUG_REG62_ALWAYS_ZERO_SHIFT 14
+#define MH_DEBUG_REG62_TAG15_VA_SHIFT 16
+#define MH_DEBUG_REG62_TAG_valid_q_15_SHIFT 29
+
+#define MH_DEBUG_REG62_TAG14_VA_MASK 0x00001fff
+#define MH_DEBUG_REG62_TAG_valid_q_14_MASK 0x00002000
+#define MH_DEBUG_REG62_ALWAYS_ZERO_MASK 0x0000c000
+#define MH_DEBUG_REG62_TAG15_VA_MASK 0x1fff0000
+#define MH_DEBUG_REG62_TAG_valid_q_15_MASK 0x20000000
+
+#define MH_DEBUG_REG62_MASK \
+ (MH_DEBUG_REG62_TAG14_VA_MASK | \
+ MH_DEBUG_REG62_TAG_valid_q_14_MASK | \
+ MH_DEBUG_REG62_ALWAYS_ZERO_MASK | \
+ MH_DEBUG_REG62_TAG15_VA_MASK | \
+ MH_DEBUG_REG62_TAG_valid_q_15_MASK)
+
+#define MH_DEBUG_REG62(tag14_va, tag_valid_q_14, always_zero, tag15_va, tag_valid_q_15) \
+ ((tag14_va << MH_DEBUG_REG62_TAG14_VA_SHIFT) | \
+ (tag_valid_q_14 << MH_DEBUG_REG62_TAG_valid_q_14_SHIFT) | \
+ (always_zero << MH_DEBUG_REG62_ALWAYS_ZERO_SHIFT) | \
+ (tag15_va << MH_DEBUG_REG62_TAG15_VA_SHIFT) | \
+ (tag_valid_q_15 << MH_DEBUG_REG62_TAG_valid_q_15_SHIFT))
+
+#define MH_DEBUG_REG62_GET_TAG14_VA(mh_debug_reg62) \
+ ((mh_debug_reg62 & MH_DEBUG_REG62_TAG14_VA_MASK) >> MH_DEBUG_REG62_TAG14_VA_SHIFT)
+#define MH_DEBUG_REG62_GET_TAG_valid_q_14(mh_debug_reg62) \
+ ((mh_debug_reg62 & MH_DEBUG_REG62_TAG_valid_q_14_MASK) >> MH_DEBUG_REG62_TAG_valid_q_14_SHIFT)
+#define MH_DEBUG_REG62_GET_ALWAYS_ZERO(mh_debug_reg62) \
+ ((mh_debug_reg62 & MH_DEBUG_REG62_ALWAYS_ZERO_MASK) >> MH_DEBUG_REG62_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG62_GET_TAG15_VA(mh_debug_reg62) \
+ ((mh_debug_reg62 & MH_DEBUG_REG62_TAG15_VA_MASK) >> MH_DEBUG_REG62_TAG15_VA_SHIFT)
+#define MH_DEBUG_REG62_GET_TAG_valid_q_15(mh_debug_reg62) \
+ ((mh_debug_reg62 & MH_DEBUG_REG62_TAG_valid_q_15_MASK) >> MH_DEBUG_REG62_TAG_valid_q_15_SHIFT)
+
+#define MH_DEBUG_REG62_SET_TAG14_VA(mh_debug_reg62_reg, tag14_va) \
+ mh_debug_reg62_reg = (mh_debug_reg62_reg & ~MH_DEBUG_REG62_TAG14_VA_MASK) | (tag14_va << MH_DEBUG_REG62_TAG14_VA_SHIFT)
+#define MH_DEBUG_REG62_SET_TAG_valid_q_14(mh_debug_reg62_reg, tag_valid_q_14) \
+ mh_debug_reg62_reg = (mh_debug_reg62_reg & ~MH_DEBUG_REG62_TAG_valid_q_14_MASK) | (tag_valid_q_14 << MH_DEBUG_REG62_TAG_valid_q_14_SHIFT)
+#define MH_DEBUG_REG62_SET_ALWAYS_ZERO(mh_debug_reg62_reg, always_zero) \
+ mh_debug_reg62_reg = (mh_debug_reg62_reg & ~MH_DEBUG_REG62_ALWAYS_ZERO_MASK) | (always_zero << MH_DEBUG_REG62_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG62_SET_TAG15_VA(mh_debug_reg62_reg, tag15_va) \
+ mh_debug_reg62_reg = (mh_debug_reg62_reg & ~MH_DEBUG_REG62_TAG15_VA_MASK) | (tag15_va << MH_DEBUG_REG62_TAG15_VA_SHIFT)
+#define MH_DEBUG_REG62_SET_TAG_valid_q_15(mh_debug_reg62_reg, tag_valid_q_15) \
+ mh_debug_reg62_reg = (mh_debug_reg62_reg & ~MH_DEBUG_REG62_TAG_valid_q_15_MASK) | (tag_valid_q_15 << MH_DEBUG_REG62_TAG_valid_q_15_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg62_t {
+ unsigned int tag14_va : MH_DEBUG_REG62_TAG14_VA_SIZE;
+ unsigned int tag_valid_q_14 : MH_DEBUG_REG62_TAG_valid_q_14_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG62_ALWAYS_ZERO_SIZE;
+ unsigned int tag15_va : MH_DEBUG_REG62_TAG15_VA_SIZE;
+ unsigned int tag_valid_q_15 : MH_DEBUG_REG62_TAG_valid_q_15_SIZE;
+ unsigned int : 2;
+ } mh_debug_reg62_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg62_t {
+ unsigned int : 2;
+ unsigned int tag_valid_q_15 : MH_DEBUG_REG62_TAG_valid_q_15_SIZE;
+ unsigned int tag15_va : MH_DEBUG_REG62_TAG15_VA_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG62_ALWAYS_ZERO_SIZE;
+ unsigned int tag_valid_q_14 : MH_DEBUG_REG62_TAG_valid_q_14_SIZE;
+ unsigned int tag14_va : MH_DEBUG_REG62_TAG14_VA_SIZE;
+ } mh_debug_reg62_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg62_t f;
+} mh_debug_reg62_u;
+
+
+/*
+ * MH_DEBUG_REG63 struct
+ */
+
+#define MH_DEBUG_REG63_MH_DBG_DEFAULT_SIZE 32
+
+#define MH_DEBUG_REG63_MH_DBG_DEFAULT_SHIFT 0
+
+#define MH_DEBUG_REG63_MH_DBG_DEFAULT_MASK 0xffffffff
+
+#define MH_DEBUG_REG63_MASK \
+ (MH_DEBUG_REG63_MH_DBG_DEFAULT_MASK)
+
+#define MH_DEBUG_REG63(mh_dbg_default) \
+ ((mh_dbg_default << MH_DEBUG_REG63_MH_DBG_DEFAULT_SHIFT))
+
+#define MH_DEBUG_REG63_GET_MH_DBG_DEFAULT(mh_debug_reg63) \
+ ((mh_debug_reg63 & MH_DEBUG_REG63_MH_DBG_DEFAULT_MASK) >> MH_DEBUG_REG63_MH_DBG_DEFAULT_SHIFT)
+
+#define MH_DEBUG_REG63_SET_MH_DBG_DEFAULT(mh_debug_reg63_reg, mh_dbg_default) \
+ mh_debug_reg63_reg = (mh_debug_reg63_reg & ~MH_DEBUG_REG63_MH_DBG_DEFAULT_MASK) | (mh_dbg_default << MH_DEBUG_REG63_MH_DBG_DEFAULT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg63_t {
+ unsigned int mh_dbg_default : MH_DEBUG_REG63_MH_DBG_DEFAULT_SIZE;
+ } mh_debug_reg63_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg63_t {
+ unsigned int mh_dbg_default : MH_DEBUG_REG63_MH_DBG_DEFAULT_SIZE;
+ } mh_debug_reg63_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg63_t f;
+} mh_debug_reg63_u;
+
+
+/*
+ * MH_MMU_CONFIG struct
+ */
+
+#define MH_MMU_CONFIG_MMU_ENABLE_SIZE 1
+#define MH_MMU_CONFIG_SPLIT_MODE_ENABLE_SIZE 1
+#define MH_MMU_CONFIG_RESERVED1_SIZE 2
+#define MH_MMU_CONFIG_RB_W_CLNT_BEHAVIOR_SIZE 2
+#define MH_MMU_CONFIG_CP_W_CLNT_BEHAVIOR_SIZE 2
+#define MH_MMU_CONFIG_CP_R0_CLNT_BEHAVIOR_SIZE 2
+#define MH_MMU_CONFIG_CP_R1_CLNT_BEHAVIOR_SIZE 2
+#define MH_MMU_CONFIG_CP_R2_CLNT_BEHAVIOR_SIZE 2
+#define MH_MMU_CONFIG_CP_R3_CLNT_BEHAVIOR_SIZE 2
+#define MH_MMU_CONFIG_CP_R4_CLNT_BEHAVIOR_SIZE 2
+#define MH_MMU_CONFIG_VGT_R0_CLNT_BEHAVIOR_SIZE 2
+#define MH_MMU_CONFIG_VGT_R1_CLNT_BEHAVIOR_SIZE 2
+#define MH_MMU_CONFIG_TC_R_CLNT_BEHAVIOR_SIZE 2
+#define MH_MMU_CONFIG_PA_W_CLNT_BEHAVIOR_SIZE 2
+
+#define MH_MMU_CONFIG_MMU_ENABLE_SHIFT 0
+#define MH_MMU_CONFIG_SPLIT_MODE_ENABLE_SHIFT 1
+#define MH_MMU_CONFIG_RESERVED1_SHIFT 2
+#define MH_MMU_CONFIG_RB_W_CLNT_BEHAVIOR_SHIFT 4
+#define MH_MMU_CONFIG_CP_W_CLNT_BEHAVIOR_SHIFT 6
+#define MH_MMU_CONFIG_CP_R0_CLNT_BEHAVIOR_SHIFT 8
+#define MH_MMU_CONFIG_CP_R1_CLNT_BEHAVIOR_SHIFT 10
+#define MH_MMU_CONFIG_CP_R2_CLNT_BEHAVIOR_SHIFT 12
+#define MH_MMU_CONFIG_CP_R3_CLNT_BEHAVIOR_SHIFT 14
+#define MH_MMU_CONFIG_CP_R4_CLNT_BEHAVIOR_SHIFT 16
+#define MH_MMU_CONFIG_VGT_R0_CLNT_BEHAVIOR_SHIFT 18
+#define MH_MMU_CONFIG_VGT_R1_CLNT_BEHAVIOR_SHIFT 20
+#define MH_MMU_CONFIG_TC_R_CLNT_BEHAVIOR_SHIFT 22
+#define MH_MMU_CONFIG_PA_W_CLNT_BEHAVIOR_SHIFT 24
+
+#define MH_MMU_CONFIG_MMU_ENABLE_MASK 0x00000001
+#define MH_MMU_CONFIG_SPLIT_MODE_ENABLE_MASK 0x00000002
+#define MH_MMU_CONFIG_RESERVED1_MASK 0x0000000c
+#define MH_MMU_CONFIG_RB_W_CLNT_BEHAVIOR_MASK 0x00000030
+#define MH_MMU_CONFIG_CP_W_CLNT_BEHAVIOR_MASK 0x000000c0
+#define MH_MMU_CONFIG_CP_R0_CLNT_BEHAVIOR_MASK 0x00000300
+#define MH_MMU_CONFIG_CP_R1_CLNT_BEHAVIOR_MASK 0x00000c00
+#define MH_MMU_CONFIG_CP_R2_CLNT_BEHAVIOR_MASK 0x00003000
+#define MH_MMU_CONFIG_CP_R3_CLNT_BEHAVIOR_MASK 0x0000c000
+#define MH_MMU_CONFIG_CP_R4_CLNT_BEHAVIOR_MASK 0x00030000
+#define MH_MMU_CONFIG_VGT_R0_CLNT_BEHAVIOR_MASK 0x000c0000
+#define MH_MMU_CONFIG_VGT_R1_CLNT_BEHAVIOR_MASK 0x00300000
+#define MH_MMU_CONFIG_TC_R_CLNT_BEHAVIOR_MASK 0x00c00000
+#define MH_MMU_CONFIG_PA_W_CLNT_BEHAVIOR_MASK 0x03000000
+
+#define MH_MMU_CONFIG_MASK \
+ (MH_MMU_CONFIG_MMU_ENABLE_MASK | \
+ MH_MMU_CONFIG_SPLIT_MODE_ENABLE_MASK | \
+ MH_MMU_CONFIG_RESERVED1_MASK | \
+ MH_MMU_CONFIG_RB_W_CLNT_BEHAVIOR_MASK | \
+ MH_MMU_CONFIG_CP_W_CLNT_BEHAVIOR_MASK | \
+ MH_MMU_CONFIG_CP_R0_CLNT_BEHAVIOR_MASK | \
+ MH_MMU_CONFIG_CP_R1_CLNT_BEHAVIOR_MASK | \
+ MH_MMU_CONFIG_CP_R2_CLNT_BEHAVIOR_MASK | \
+ MH_MMU_CONFIG_CP_R3_CLNT_BEHAVIOR_MASK | \
+ MH_MMU_CONFIG_CP_R4_CLNT_BEHAVIOR_MASK | \
+ MH_MMU_CONFIG_VGT_R0_CLNT_BEHAVIOR_MASK | \
+ MH_MMU_CONFIG_VGT_R1_CLNT_BEHAVIOR_MASK | \
+ MH_MMU_CONFIG_TC_R_CLNT_BEHAVIOR_MASK | \
+ MH_MMU_CONFIG_PA_W_CLNT_BEHAVIOR_MASK)
+
+#define MH_MMU_CONFIG(mmu_enable, split_mode_enable, reserved1, rb_w_clnt_behavior, cp_w_clnt_behavior, cp_r0_clnt_behavior, cp_r1_clnt_behavior, cp_r2_clnt_behavior, cp_r3_clnt_behavior, cp_r4_clnt_behavior, vgt_r0_clnt_behavior, vgt_r1_clnt_behavior, tc_r_clnt_behavior, pa_w_clnt_behavior) \
+ ((mmu_enable << MH_MMU_CONFIG_MMU_ENABLE_SHIFT) | \
+ (split_mode_enable << MH_MMU_CONFIG_SPLIT_MODE_ENABLE_SHIFT) | \
+ (reserved1 << MH_MMU_CONFIG_RESERVED1_SHIFT) | \
+ (rb_w_clnt_behavior << MH_MMU_CONFIG_RB_W_CLNT_BEHAVIOR_SHIFT) | \
+ (cp_w_clnt_behavior << MH_MMU_CONFIG_CP_W_CLNT_BEHAVIOR_SHIFT) | \
+ (cp_r0_clnt_behavior << MH_MMU_CONFIG_CP_R0_CLNT_BEHAVIOR_SHIFT) | \
+ (cp_r1_clnt_behavior << MH_MMU_CONFIG_CP_R1_CLNT_BEHAVIOR_SHIFT) | \
+ (cp_r2_clnt_behavior << MH_MMU_CONFIG_CP_R2_CLNT_BEHAVIOR_SHIFT) | \
+ (cp_r3_clnt_behavior << MH_MMU_CONFIG_CP_R3_CLNT_BEHAVIOR_SHIFT) | \
+ (cp_r4_clnt_behavior << MH_MMU_CONFIG_CP_R4_CLNT_BEHAVIOR_SHIFT) | \
+ (vgt_r0_clnt_behavior << MH_MMU_CONFIG_VGT_R0_CLNT_BEHAVIOR_SHIFT) | \
+ (vgt_r1_clnt_behavior << MH_MMU_CONFIG_VGT_R1_CLNT_BEHAVIOR_SHIFT) | \
+ (tc_r_clnt_behavior << MH_MMU_CONFIG_TC_R_CLNT_BEHAVIOR_SHIFT) | \
+ (pa_w_clnt_behavior << MH_MMU_CONFIG_PA_W_CLNT_BEHAVIOR_SHIFT))
+
+#define MH_MMU_CONFIG_GET_MMU_ENABLE(mh_mmu_config) \
+ ((mh_mmu_config & MH_MMU_CONFIG_MMU_ENABLE_MASK) >> MH_MMU_CONFIG_MMU_ENABLE_SHIFT)
+#define MH_MMU_CONFIG_GET_SPLIT_MODE_ENABLE(mh_mmu_config) \
+ ((mh_mmu_config & MH_MMU_CONFIG_SPLIT_MODE_ENABLE_MASK) >> MH_MMU_CONFIG_SPLIT_MODE_ENABLE_SHIFT)
+#define MH_MMU_CONFIG_GET_RESERVED1(mh_mmu_config) \
+ ((mh_mmu_config & MH_MMU_CONFIG_RESERVED1_MASK) >> MH_MMU_CONFIG_RESERVED1_SHIFT)
+#define MH_MMU_CONFIG_GET_RB_W_CLNT_BEHAVIOR(mh_mmu_config) \
+ ((mh_mmu_config & MH_MMU_CONFIG_RB_W_CLNT_BEHAVIOR_MASK) >> MH_MMU_CONFIG_RB_W_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_GET_CP_W_CLNT_BEHAVIOR(mh_mmu_config) \
+ ((mh_mmu_config & MH_MMU_CONFIG_CP_W_CLNT_BEHAVIOR_MASK) >> MH_MMU_CONFIG_CP_W_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_GET_CP_R0_CLNT_BEHAVIOR(mh_mmu_config) \
+ ((mh_mmu_config & MH_MMU_CONFIG_CP_R0_CLNT_BEHAVIOR_MASK) >> MH_MMU_CONFIG_CP_R0_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_GET_CP_R1_CLNT_BEHAVIOR(mh_mmu_config) \
+ ((mh_mmu_config & MH_MMU_CONFIG_CP_R1_CLNT_BEHAVIOR_MASK) >> MH_MMU_CONFIG_CP_R1_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_GET_CP_R2_CLNT_BEHAVIOR(mh_mmu_config) \
+ ((mh_mmu_config & MH_MMU_CONFIG_CP_R2_CLNT_BEHAVIOR_MASK) >> MH_MMU_CONFIG_CP_R2_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_GET_CP_R3_CLNT_BEHAVIOR(mh_mmu_config) \
+ ((mh_mmu_config & MH_MMU_CONFIG_CP_R3_CLNT_BEHAVIOR_MASK) >> MH_MMU_CONFIG_CP_R3_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_GET_CP_R4_CLNT_BEHAVIOR(mh_mmu_config) \
+ ((mh_mmu_config & MH_MMU_CONFIG_CP_R4_CLNT_BEHAVIOR_MASK) >> MH_MMU_CONFIG_CP_R4_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_GET_VGT_R0_CLNT_BEHAVIOR(mh_mmu_config) \
+ ((mh_mmu_config & MH_MMU_CONFIG_VGT_R0_CLNT_BEHAVIOR_MASK) >> MH_MMU_CONFIG_VGT_R0_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_GET_VGT_R1_CLNT_BEHAVIOR(mh_mmu_config) \
+ ((mh_mmu_config & MH_MMU_CONFIG_VGT_R1_CLNT_BEHAVIOR_MASK) >> MH_MMU_CONFIG_VGT_R1_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_GET_TC_R_CLNT_BEHAVIOR(mh_mmu_config) \
+ ((mh_mmu_config & MH_MMU_CONFIG_TC_R_CLNT_BEHAVIOR_MASK) >> MH_MMU_CONFIG_TC_R_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_GET_PA_W_CLNT_BEHAVIOR(mh_mmu_config) \
+ ((mh_mmu_config & MH_MMU_CONFIG_PA_W_CLNT_BEHAVIOR_MASK) >> MH_MMU_CONFIG_PA_W_CLNT_BEHAVIOR_SHIFT)
+
+#define MH_MMU_CONFIG_SET_MMU_ENABLE(mh_mmu_config_reg, mmu_enable) \
+ mh_mmu_config_reg = (mh_mmu_config_reg & ~MH_MMU_CONFIG_MMU_ENABLE_MASK) | (mmu_enable << MH_MMU_CONFIG_MMU_ENABLE_SHIFT)
+#define MH_MMU_CONFIG_SET_SPLIT_MODE_ENABLE(mh_mmu_config_reg, split_mode_enable) \
+ mh_mmu_config_reg = (mh_mmu_config_reg & ~MH_MMU_CONFIG_SPLIT_MODE_ENABLE_MASK) | (split_mode_enable << MH_MMU_CONFIG_SPLIT_MODE_ENABLE_SHIFT)
+#define MH_MMU_CONFIG_SET_RESERVED1(mh_mmu_config_reg, reserved1) \
+ mh_mmu_config_reg = (mh_mmu_config_reg & ~MH_MMU_CONFIG_RESERVED1_MASK) | (reserved1 << MH_MMU_CONFIG_RESERVED1_SHIFT)
+#define MH_MMU_CONFIG_SET_RB_W_CLNT_BEHAVIOR(mh_mmu_config_reg, rb_w_clnt_behavior) \
+ mh_mmu_config_reg = (mh_mmu_config_reg & ~MH_MMU_CONFIG_RB_W_CLNT_BEHAVIOR_MASK) | (rb_w_clnt_behavior << MH_MMU_CONFIG_RB_W_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_SET_CP_W_CLNT_BEHAVIOR(mh_mmu_config_reg, cp_w_clnt_behavior) \
+ mh_mmu_config_reg = (mh_mmu_config_reg & ~MH_MMU_CONFIG_CP_W_CLNT_BEHAVIOR_MASK) | (cp_w_clnt_behavior << MH_MMU_CONFIG_CP_W_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_SET_CP_R0_CLNT_BEHAVIOR(mh_mmu_config_reg, cp_r0_clnt_behavior) \
+ mh_mmu_config_reg = (mh_mmu_config_reg & ~MH_MMU_CONFIG_CP_R0_CLNT_BEHAVIOR_MASK) | (cp_r0_clnt_behavior << MH_MMU_CONFIG_CP_R0_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_SET_CP_R1_CLNT_BEHAVIOR(mh_mmu_config_reg, cp_r1_clnt_behavior) \
+ mh_mmu_config_reg = (mh_mmu_config_reg & ~MH_MMU_CONFIG_CP_R1_CLNT_BEHAVIOR_MASK) | (cp_r1_clnt_behavior << MH_MMU_CONFIG_CP_R1_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_SET_CP_R2_CLNT_BEHAVIOR(mh_mmu_config_reg, cp_r2_clnt_behavior) \
+ mh_mmu_config_reg = (mh_mmu_config_reg & ~MH_MMU_CONFIG_CP_R2_CLNT_BEHAVIOR_MASK) | (cp_r2_clnt_behavior << MH_MMU_CONFIG_CP_R2_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_SET_CP_R3_CLNT_BEHAVIOR(mh_mmu_config_reg, cp_r3_clnt_behavior) \
+ mh_mmu_config_reg = (mh_mmu_config_reg & ~MH_MMU_CONFIG_CP_R3_CLNT_BEHAVIOR_MASK) | (cp_r3_clnt_behavior << MH_MMU_CONFIG_CP_R3_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_SET_CP_R4_CLNT_BEHAVIOR(mh_mmu_config_reg, cp_r4_clnt_behavior) \
+ mh_mmu_config_reg = (mh_mmu_config_reg & ~MH_MMU_CONFIG_CP_R4_CLNT_BEHAVIOR_MASK) | (cp_r4_clnt_behavior << MH_MMU_CONFIG_CP_R4_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_SET_VGT_R0_CLNT_BEHAVIOR(mh_mmu_config_reg, vgt_r0_clnt_behavior) \
+ mh_mmu_config_reg = (mh_mmu_config_reg & ~MH_MMU_CONFIG_VGT_R0_CLNT_BEHAVIOR_MASK) | (vgt_r0_clnt_behavior << MH_MMU_CONFIG_VGT_R0_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_SET_VGT_R1_CLNT_BEHAVIOR(mh_mmu_config_reg, vgt_r1_clnt_behavior) \
+ mh_mmu_config_reg = (mh_mmu_config_reg & ~MH_MMU_CONFIG_VGT_R1_CLNT_BEHAVIOR_MASK) | (vgt_r1_clnt_behavior << MH_MMU_CONFIG_VGT_R1_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_SET_TC_R_CLNT_BEHAVIOR(mh_mmu_config_reg, tc_r_clnt_behavior) \
+ mh_mmu_config_reg = (mh_mmu_config_reg & ~MH_MMU_CONFIG_TC_R_CLNT_BEHAVIOR_MASK) | (tc_r_clnt_behavior << MH_MMU_CONFIG_TC_R_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_SET_PA_W_CLNT_BEHAVIOR(mh_mmu_config_reg, pa_w_clnt_behavior) \
+ mh_mmu_config_reg = (mh_mmu_config_reg & ~MH_MMU_CONFIG_PA_W_CLNT_BEHAVIOR_MASK) | (pa_w_clnt_behavior << MH_MMU_CONFIG_PA_W_CLNT_BEHAVIOR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_mmu_config_t {
+ unsigned int mmu_enable : MH_MMU_CONFIG_MMU_ENABLE_SIZE;
+ unsigned int split_mode_enable : MH_MMU_CONFIG_SPLIT_MODE_ENABLE_SIZE;
+ unsigned int reserved1 : MH_MMU_CONFIG_RESERVED1_SIZE;
+ unsigned int rb_w_clnt_behavior : MH_MMU_CONFIG_RB_W_CLNT_BEHAVIOR_SIZE;
+ unsigned int cp_w_clnt_behavior : MH_MMU_CONFIG_CP_W_CLNT_BEHAVIOR_SIZE;
+ unsigned int cp_r0_clnt_behavior : MH_MMU_CONFIG_CP_R0_CLNT_BEHAVIOR_SIZE;
+ unsigned int cp_r1_clnt_behavior : MH_MMU_CONFIG_CP_R1_CLNT_BEHAVIOR_SIZE;
+ unsigned int cp_r2_clnt_behavior : MH_MMU_CONFIG_CP_R2_CLNT_BEHAVIOR_SIZE;
+ unsigned int cp_r3_clnt_behavior : MH_MMU_CONFIG_CP_R3_CLNT_BEHAVIOR_SIZE;
+ unsigned int cp_r4_clnt_behavior : MH_MMU_CONFIG_CP_R4_CLNT_BEHAVIOR_SIZE;
+ unsigned int vgt_r0_clnt_behavior : MH_MMU_CONFIG_VGT_R0_CLNT_BEHAVIOR_SIZE;
+ unsigned int vgt_r1_clnt_behavior : MH_MMU_CONFIG_VGT_R1_CLNT_BEHAVIOR_SIZE;
+ unsigned int tc_r_clnt_behavior : MH_MMU_CONFIG_TC_R_CLNT_BEHAVIOR_SIZE;
+ unsigned int pa_w_clnt_behavior : MH_MMU_CONFIG_PA_W_CLNT_BEHAVIOR_SIZE;
+ unsigned int : 6;
+ } mh_mmu_config_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_mmu_config_t {
+ unsigned int : 6;
+ unsigned int pa_w_clnt_behavior : MH_MMU_CONFIG_PA_W_CLNT_BEHAVIOR_SIZE;
+ unsigned int tc_r_clnt_behavior : MH_MMU_CONFIG_TC_R_CLNT_BEHAVIOR_SIZE;
+ unsigned int vgt_r1_clnt_behavior : MH_MMU_CONFIG_VGT_R1_CLNT_BEHAVIOR_SIZE;
+ unsigned int vgt_r0_clnt_behavior : MH_MMU_CONFIG_VGT_R0_CLNT_BEHAVIOR_SIZE;
+ unsigned int cp_r4_clnt_behavior : MH_MMU_CONFIG_CP_R4_CLNT_BEHAVIOR_SIZE;
+ unsigned int cp_r3_clnt_behavior : MH_MMU_CONFIG_CP_R3_CLNT_BEHAVIOR_SIZE;
+ unsigned int cp_r2_clnt_behavior : MH_MMU_CONFIG_CP_R2_CLNT_BEHAVIOR_SIZE;
+ unsigned int cp_r1_clnt_behavior : MH_MMU_CONFIG_CP_R1_CLNT_BEHAVIOR_SIZE;
+ unsigned int cp_r0_clnt_behavior : MH_MMU_CONFIG_CP_R0_CLNT_BEHAVIOR_SIZE;
+ unsigned int cp_w_clnt_behavior : MH_MMU_CONFIG_CP_W_CLNT_BEHAVIOR_SIZE;
+ unsigned int rb_w_clnt_behavior : MH_MMU_CONFIG_RB_W_CLNT_BEHAVIOR_SIZE;
+ unsigned int reserved1 : MH_MMU_CONFIG_RESERVED1_SIZE;
+ unsigned int split_mode_enable : MH_MMU_CONFIG_SPLIT_MODE_ENABLE_SIZE;
+ unsigned int mmu_enable : MH_MMU_CONFIG_MMU_ENABLE_SIZE;
+ } mh_mmu_config_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_mmu_config_t f;
+} mh_mmu_config_u;
+
+
+/*
+ * MH_MMU_VA_RANGE struct
+ */
+
+#define MH_MMU_VA_RANGE_NUM_64KB_REGIONS_SIZE 12
+#define MH_MMU_VA_RANGE_VA_BASE_SIZE 20
+
+#define MH_MMU_VA_RANGE_NUM_64KB_REGIONS_SHIFT 0
+#define MH_MMU_VA_RANGE_VA_BASE_SHIFT 12
+
+#define MH_MMU_VA_RANGE_NUM_64KB_REGIONS_MASK 0x00000fff
+#define MH_MMU_VA_RANGE_VA_BASE_MASK 0xfffff000
+
+#define MH_MMU_VA_RANGE_MASK \
+ (MH_MMU_VA_RANGE_NUM_64KB_REGIONS_MASK | \
+ MH_MMU_VA_RANGE_VA_BASE_MASK)
+
+#define MH_MMU_VA_RANGE(num_64kb_regions, va_base) \
+ ((num_64kb_regions << MH_MMU_VA_RANGE_NUM_64KB_REGIONS_SHIFT) | \
+ (va_base << MH_MMU_VA_RANGE_VA_BASE_SHIFT))
+
+#define MH_MMU_VA_RANGE_GET_NUM_64KB_REGIONS(mh_mmu_va_range) \
+ ((mh_mmu_va_range & MH_MMU_VA_RANGE_NUM_64KB_REGIONS_MASK) >> MH_MMU_VA_RANGE_NUM_64KB_REGIONS_SHIFT)
+#define MH_MMU_VA_RANGE_GET_VA_BASE(mh_mmu_va_range) \
+ ((mh_mmu_va_range & MH_MMU_VA_RANGE_VA_BASE_MASK) >> MH_MMU_VA_RANGE_VA_BASE_SHIFT)
+
+#define MH_MMU_VA_RANGE_SET_NUM_64KB_REGIONS(mh_mmu_va_range_reg, num_64kb_regions) \
+ mh_mmu_va_range_reg = (mh_mmu_va_range_reg & ~MH_MMU_VA_RANGE_NUM_64KB_REGIONS_MASK) | (num_64kb_regions << MH_MMU_VA_RANGE_NUM_64KB_REGIONS_SHIFT)
+#define MH_MMU_VA_RANGE_SET_VA_BASE(mh_mmu_va_range_reg, va_base) \
+ mh_mmu_va_range_reg = (mh_mmu_va_range_reg & ~MH_MMU_VA_RANGE_VA_BASE_MASK) | (va_base << MH_MMU_VA_RANGE_VA_BASE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_mmu_va_range_t {
+ unsigned int num_64kb_regions : MH_MMU_VA_RANGE_NUM_64KB_REGIONS_SIZE;
+ unsigned int va_base : MH_MMU_VA_RANGE_VA_BASE_SIZE;
+ } mh_mmu_va_range_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_mmu_va_range_t {
+ unsigned int va_base : MH_MMU_VA_RANGE_VA_BASE_SIZE;
+ unsigned int num_64kb_regions : MH_MMU_VA_RANGE_NUM_64KB_REGIONS_SIZE;
+ } mh_mmu_va_range_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_mmu_va_range_t f;
+} mh_mmu_va_range_u;
+
+
+/*
+ * MH_MMU_PT_BASE struct
+ */
+
+#define MH_MMU_PT_BASE_PT_BASE_SIZE 20
+
+#define MH_MMU_PT_BASE_PT_BASE_SHIFT 12
+
+#define MH_MMU_PT_BASE_PT_BASE_MASK 0xfffff000
+
+#define MH_MMU_PT_BASE_MASK \
+ (MH_MMU_PT_BASE_PT_BASE_MASK)
+
+#define MH_MMU_PT_BASE(pt_base) \
+ ((pt_base << MH_MMU_PT_BASE_PT_BASE_SHIFT))
+
+#define MH_MMU_PT_BASE_GET_PT_BASE(mh_mmu_pt_base) \
+ ((mh_mmu_pt_base & MH_MMU_PT_BASE_PT_BASE_MASK) >> MH_MMU_PT_BASE_PT_BASE_SHIFT)
+
+#define MH_MMU_PT_BASE_SET_PT_BASE(mh_mmu_pt_base_reg, pt_base) \
+ mh_mmu_pt_base_reg = (mh_mmu_pt_base_reg & ~MH_MMU_PT_BASE_PT_BASE_MASK) | (pt_base << MH_MMU_PT_BASE_PT_BASE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_mmu_pt_base_t {
+ unsigned int : 12;
+ unsigned int pt_base : MH_MMU_PT_BASE_PT_BASE_SIZE;
+ } mh_mmu_pt_base_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_mmu_pt_base_t {
+ unsigned int pt_base : MH_MMU_PT_BASE_PT_BASE_SIZE;
+ unsigned int : 12;
+ } mh_mmu_pt_base_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_mmu_pt_base_t f;
+} mh_mmu_pt_base_u;
+
+
+/*
+ * MH_MMU_PAGE_FAULT struct
+ */
+
+#define MH_MMU_PAGE_FAULT_PAGE_FAULT_SIZE 1
+#define MH_MMU_PAGE_FAULT_OP_TYPE_SIZE 1
+#define MH_MMU_PAGE_FAULT_CLNT_BEHAVIOR_SIZE 2
+#define MH_MMU_PAGE_FAULT_AXI_ID_SIZE 3
+#define MH_MMU_PAGE_FAULT_RESERVED1_SIZE 1
+#define MH_MMU_PAGE_FAULT_MPU_ADDRESS_OUT_OF_RANGE_SIZE 1
+#define MH_MMU_PAGE_FAULT_ADDRESS_OUT_OF_RANGE_SIZE 1
+#define MH_MMU_PAGE_FAULT_READ_PROTECTION_ERROR_SIZE 1
+#define MH_MMU_PAGE_FAULT_WRITE_PROTECTION_ERROR_SIZE 1
+#define MH_MMU_PAGE_FAULT_REQ_VA_SIZE 20
+
+#define MH_MMU_PAGE_FAULT_PAGE_FAULT_SHIFT 0
+#define MH_MMU_PAGE_FAULT_OP_TYPE_SHIFT 1
+#define MH_MMU_PAGE_FAULT_CLNT_BEHAVIOR_SHIFT 2
+#define MH_MMU_PAGE_FAULT_AXI_ID_SHIFT 4
+#define MH_MMU_PAGE_FAULT_RESERVED1_SHIFT 7
+#define MH_MMU_PAGE_FAULT_MPU_ADDRESS_OUT_OF_RANGE_SHIFT 8
+#define MH_MMU_PAGE_FAULT_ADDRESS_OUT_OF_RANGE_SHIFT 9
+#define MH_MMU_PAGE_FAULT_READ_PROTECTION_ERROR_SHIFT 10
+#define MH_MMU_PAGE_FAULT_WRITE_PROTECTION_ERROR_SHIFT 11
+#define MH_MMU_PAGE_FAULT_REQ_VA_SHIFT 12
+
+#define MH_MMU_PAGE_FAULT_PAGE_FAULT_MASK 0x00000001
+#define MH_MMU_PAGE_FAULT_OP_TYPE_MASK 0x00000002
+#define MH_MMU_PAGE_FAULT_CLNT_BEHAVIOR_MASK 0x0000000c
+#define MH_MMU_PAGE_FAULT_AXI_ID_MASK 0x00000070
+#define MH_MMU_PAGE_FAULT_RESERVED1_MASK 0x00000080
+#define MH_MMU_PAGE_FAULT_MPU_ADDRESS_OUT_OF_RANGE_MASK 0x00000100
+#define MH_MMU_PAGE_FAULT_ADDRESS_OUT_OF_RANGE_MASK 0x00000200
+#define MH_MMU_PAGE_FAULT_READ_PROTECTION_ERROR_MASK 0x00000400
+#define MH_MMU_PAGE_FAULT_WRITE_PROTECTION_ERROR_MASK 0x00000800
+#define MH_MMU_PAGE_FAULT_REQ_VA_MASK 0xfffff000
+
+#define MH_MMU_PAGE_FAULT_MASK \
+ (MH_MMU_PAGE_FAULT_PAGE_FAULT_MASK | \
+ MH_MMU_PAGE_FAULT_OP_TYPE_MASK | \
+ MH_MMU_PAGE_FAULT_CLNT_BEHAVIOR_MASK | \
+ MH_MMU_PAGE_FAULT_AXI_ID_MASK | \
+ MH_MMU_PAGE_FAULT_RESERVED1_MASK | \
+ MH_MMU_PAGE_FAULT_MPU_ADDRESS_OUT_OF_RANGE_MASK | \
+ MH_MMU_PAGE_FAULT_ADDRESS_OUT_OF_RANGE_MASK | \
+ MH_MMU_PAGE_FAULT_READ_PROTECTION_ERROR_MASK | \
+ MH_MMU_PAGE_FAULT_WRITE_PROTECTION_ERROR_MASK | \
+ MH_MMU_PAGE_FAULT_REQ_VA_MASK)
+
+#define MH_MMU_PAGE_FAULT(page_fault, op_type, clnt_behavior, axi_id, reserved1, mpu_address_out_of_range, address_out_of_range, read_protection_error, write_protection_error, req_va) \
+ ((page_fault << MH_MMU_PAGE_FAULT_PAGE_FAULT_SHIFT) | \
+ (op_type << MH_MMU_PAGE_FAULT_OP_TYPE_SHIFT) | \
+ (clnt_behavior << MH_MMU_PAGE_FAULT_CLNT_BEHAVIOR_SHIFT) | \
+ (axi_id << MH_MMU_PAGE_FAULT_AXI_ID_SHIFT) | \
+ (reserved1 << MH_MMU_PAGE_FAULT_RESERVED1_SHIFT) | \
+ (mpu_address_out_of_range << MH_MMU_PAGE_FAULT_MPU_ADDRESS_OUT_OF_RANGE_SHIFT) | \
+ (address_out_of_range << MH_MMU_PAGE_FAULT_ADDRESS_OUT_OF_RANGE_SHIFT) | \
+ (read_protection_error << MH_MMU_PAGE_FAULT_READ_PROTECTION_ERROR_SHIFT) | \
+ (write_protection_error << MH_MMU_PAGE_FAULT_WRITE_PROTECTION_ERROR_SHIFT) | \
+ (req_va << MH_MMU_PAGE_FAULT_REQ_VA_SHIFT))
+
+#define MH_MMU_PAGE_FAULT_GET_PAGE_FAULT(mh_mmu_page_fault) \
+ ((mh_mmu_page_fault & MH_MMU_PAGE_FAULT_PAGE_FAULT_MASK) >> MH_MMU_PAGE_FAULT_PAGE_FAULT_SHIFT)
+#define MH_MMU_PAGE_FAULT_GET_OP_TYPE(mh_mmu_page_fault) \
+ ((mh_mmu_page_fault & MH_MMU_PAGE_FAULT_OP_TYPE_MASK) >> MH_MMU_PAGE_FAULT_OP_TYPE_SHIFT)
+#define MH_MMU_PAGE_FAULT_GET_CLNT_BEHAVIOR(mh_mmu_page_fault) \
+ ((mh_mmu_page_fault & MH_MMU_PAGE_FAULT_CLNT_BEHAVIOR_MASK) >> MH_MMU_PAGE_FAULT_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_PAGE_FAULT_GET_AXI_ID(mh_mmu_page_fault) \
+ ((mh_mmu_page_fault & MH_MMU_PAGE_FAULT_AXI_ID_MASK) >> MH_MMU_PAGE_FAULT_AXI_ID_SHIFT)
+#define MH_MMU_PAGE_FAULT_GET_RESERVED1(mh_mmu_page_fault) \
+ ((mh_mmu_page_fault & MH_MMU_PAGE_FAULT_RESERVED1_MASK) >> MH_MMU_PAGE_FAULT_RESERVED1_SHIFT)
+#define MH_MMU_PAGE_FAULT_GET_MPU_ADDRESS_OUT_OF_RANGE(mh_mmu_page_fault) \
+ ((mh_mmu_page_fault & MH_MMU_PAGE_FAULT_MPU_ADDRESS_OUT_OF_RANGE_MASK) >> MH_MMU_PAGE_FAULT_MPU_ADDRESS_OUT_OF_RANGE_SHIFT)
+#define MH_MMU_PAGE_FAULT_GET_ADDRESS_OUT_OF_RANGE(mh_mmu_page_fault) \
+ ((mh_mmu_page_fault & MH_MMU_PAGE_FAULT_ADDRESS_OUT_OF_RANGE_MASK) >> MH_MMU_PAGE_FAULT_ADDRESS_OUT_OF_RANGE_SHIFT)
+#define MH_MMU_PAGE_FAULT_GET_READ_PROTECTION_ERROR(mh_mmu_page_fault) \
+ ((mh_mmu_page_fault & MH_MMU_PAGE_FAULT_READ_PROTECTION_ERROR_MASK) >> MH_MMU_PAGE_FAULT_READ_PROTECTION_ERROR_SHIFT)
+#define MH_MMU_PAGE_FAULT_GET_WRITE_PROTECTION_ERROR(mh_mmu_page_fault) \
+ ((mh_mmu_page_fault & MH_MMU_PAGE_FAULT_WRITE_PROTECTION_ERROR_MASK) >> MH_MMU_PAGE_FAULT_WRITE_PROTECTION_ERROR_SHIFT)
+#define MH_MMU_PAGE_FAULT_GET_REQ_VA(mh_mmu_page_fault) \
+ ((mh_mmu_page_fault & MH_MMU_PAGE_FAULT_REQ_VA_MASK) >> MH_MMU_PAGE_FAULT_REQ_VA_SHIFT)
+
+#define MH_MMU_PAGE_FAULT_SET_PAGE_FAULT(mh_mmu_page_fault_reg, page_fault) \
+ mh_mmu_page_fault_reg = (mh_mmu_page_fault_reg & ~MH_MMU_PAGE_FAULT_PAGE_FAULT_MASK) | (page_fault << MH_MMU_PAGE_FAULT_PAGE_FAULT_SHIFT)
+#define MH_MMU_PAGE_FAULT_SET_OP_TYPE(mh_mmu_page_fault_reg, op_type) \
+ mh_mmu_page_fault_reg = (mh_mmu_page_fault_reg & ~MH_MMU_PAGE_FAULT_OP_TYPE_MASK) | (op_type << MH_MMU_PAGE_FAULT_OP_TYPE_SHIFT)
+#define MH_MMU_PAGE_FAULT_SET_CLNT_BEHAVIOR(mh_mmu_page_fault_reg, clnt_behavior) \
+ mh_mmu_page_fault_reg = (mh_mmu_page_fault_reg & ~MH_MMU_PAGE_FAULT_CLNT_BEHAVIOR_MASK) | (clnt_behavior << MH_MMU_PAGE_FAULT_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_PAGE_FAULT_SET_AXI_ID(mh_mmu_page_fault_reg, axi_id) \
+ mh_mmu_page_fault_reg = (mh_mmu_page_fault_reg & ~MH_MMU_PAGE_FAULT_AXI_ID_MASK) | (axi_id << MH_MMU_PAGE_FAULT_AXI_ID_SHIFT)
+#define MH_MMU_PAGE_FAULT_SET_RESERVED1(mh_mmu_page_fault_reg, reserved1) \
+ mh_mmu_page_fault_reg = (mh_mmu_page_fault_reg & ~MH_MMU_PAGE_FAULT_RESERVED1_MASK) | (reserved1 << MH_MMU_PAGE_FAULT_RESERVED1_SHIFT)
+#define MH_MMU_PAGE_FAULT_SET_MPU_ADDRESS_OUT_OF_RANGE(mh_mmu_page_fault_reg, mpu_address_out_of_range) \
+ mh_mmu_page_fault_reg = (mh_mmu_page_fault_reg & ~MH_MMU_PAGE_FAULT_MPU_ADDRESS_OUT_OF_RANGE_MASK) | (mpu_address_out_of_range << MH_MMU_PAGE_FAULT_MPU_ADDRESS_OUT_OF_RANGE_SHIFT)
+#define MH_MMU_PAGE_FAULT_SET_ADDRESS_OUT_OF_RANGE(mh_mmu_page_fault_reg, address_out_of_range) \
+ mh_mmu_page_fault_reg = (mh_mmu_page_fault_reg & ~MH_MMU_PAGE_FAULT_ADDRESS_OUT_OF_RANGE_MASK) | (address_out_of_range << MH_MMU_PAGE_FAULT_ADDRESS_OUT_OF_RANGE_SHIFT)
+#define MH_MMU_PAGE_FAULT_SET_READ_PROTECTION_ERROR(mh_mmu_page_fault_reg, read_protection_error) \
+ mh_mmu_page_fault_reg = (mh_mmu_page_fault_reg & ~MH_MMU_PAGE_FAULT_READ_PROTECTION_ERROR_MASK) | (read_protection_error << MH_MMU_PAGE_FAULT_READ_PROTECTION_ERROR_SHIFT)
+#define MH_MMU_PAGE_FAULT_SET_WRITE_PROTECTION_ERROR(mh_mmu_page_fault_reg, write_protection_error) \
+ mh_mmu_page_fault_reg = (mh_mmu_page_fault_reg & ~MH_MMU_PAGE_FAULT_WRITE_PROTECTION_ERROR_MASK) | (write_protection_error << MH_MMU_PAGE_FAULT_WRITE_PROTECTION_ERROR_SHIFT)
+#define MH_MMU_PAGE_FAULT_SET_REQ_VA(mh_mmu_page_fault_reg, req_va) \
+ mh_mmu_page_fault_reg = (mh_mmu_page_fault_reg & ~MH_MMU_PAGE_FAULT_REQ_VA_MASK) | (req_va << MH_MMU_PAGE_FAULT_REQ_VA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_mmu_page_fault_t {
+ unsigned int page_fault : MH_MMU_PAGE_FAULT_PAGE_FAULT_SIZE;
+ unsigned int op_type : MH_MMU_PAGE_FAULT_OP_TYPE_SIZE;
+ unsigned int clnt_behavior : MH_MMU_PAGE_FAULT_CLNT_BEHAVIOR_SIZE;
+ unsigned int axi_id : MH_MMU_PAGE_FAULT_AXI_ID_SIZE;
+ unsigned int reserved1 : MH_MMU_PAGE_FAULT_RESERVED1_SIZE;
+ unsigned int mpu_address_out_of_range : MH_MMU_PAGE_FAULT_MPU_ADDRESS_OUT_OF_RANGE_SIZE;
+ unsigned int address_out_of_range : MH_MMU_PAGE_FAULT_ADDRESS_OUT_OF_RANGE_SIZE;
+ unsigned int read_protection_error : MH_MMU_PAGE_FAULT_READ_PROTECTION_ERROR_SIZE;
+ unsigned int write_protection_error : MH_MMU_PAGE_FAULT_WRITE_PROTECTION_ERROR_SIZE;
+ unsigned int req_va : MH_MMU_PAGE_FAULT_REQ_VA_SIZE;
+ } mh_mmu_page_fault_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_mmu_page_fault_t {
+ unsigned int req_va : MH_MMU_PAGE_FAULT_REQ_VA_SIZE;
+ unsigned int write_protection_error : MH_MMU_PAGE_FAULT_WRITE_PROTECTION_ERROR_SIZE;
+ unsigned int read_protection_error : MH_MMU_PAGE_FAULT_READ_PROTECTION_ERROR_SIZE;
+ unsigned int address_out_of_range : MH_MMU_PAGE_FAULT_ADDRESS_OUT_OF_RANGE_SIZE;
+ unsigned int mpu_address_out_of_range : MH_MMU_PAGE_FAULT_MPU_ADDRESS_OUT_OF_RANGE_SIZE;
+ unsigned int reserved1 : MH_MMU_PAGE_FAULT_RESERVED1_SIZE;
+ unsigned int axi_id : MH_MMU_PAGE_FAULT_AXI_ID_SIZE;
+ unsigned int clnt_behavior : MH_MMU_PAGE_FAULT_CLNT_BEHAVIOR_SIZE;
+ unsigned int op_type : MH_MMU_PAGE_FAULT_OP_TYPE_SIZE;
+ unsigned int page_fault : MH_MMU_PAGE_FAULT_PAGE_FAULT_SIZE;
+ } mh_mmu_page_fault_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_mmu_page_fault_t f;
+} mh_mmu_page_fault_u;
+
+
+/*
+ * MH_MMU_TRAN_ERROR struct
+ */
+
+#define MH_MMU_TRAN_ERROR_TRAN_ERROR_SIZE 27
+
+#define MH_MMU_TRAN_ERROR_TRAN_ERROR_SHIFT 5
+
+#define MH_MMU_TRAN_ERROR_TRAN_ERROR_MASK 0xffffffe0
+
+#define MH_MMU_TRAN_ERROR_MASK \
+ (MH_MMU_TRAN_ERROR_TRAN_ERROR_MASK)
+
+#define MH_MMU_TRAN_ERROR(tran_error) \
+ ((tran_error << MH_MMU_TRAN_ERROR_TRAN_ERROR_SHIFT))
+
+#define MH_MMU_TRAN_ERROR_GET_TRAN_ERROR(mh_mmu_tran_error) \
+ ((mh_mmu_tran_error & MH_MMU_TRAN_ERROR_TRAN_ERROR_MASK) >> MH_MMU_TRAN_ERROR_TRAN_ERROR_SHIFT)
+
+#define MH_MMU_TRAN_ERROR_SET_TRAN_ERROR(mh_mmu_tran_error_reg, tran_error) \
+ mh_mmu_tran_error_reg = (mh_mmu_tran_error_reg & ~MH_MMU_TRAN_ERROR_TRAN_ERROR_MASK) | (tran_error << MH_MMU_TRAN_ERROR_TRAN_ERROR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_mmu_tran_error_t {
+ unsigned int : 5;
+ unsigned int tran_error : MH_MMU_TRAN_ERROR_TRAN_ERROR_SIZE;
+ } mh_mmu_tran_error_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_mmu_tran_error_t {
+ unsigned int tran_error : MH_MMU_TRAN_ERROR_TRAN_ERROR_SIZE;
+ unsigned int : 5;
+ } mh_mmu_tran_error_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_mmu_tran_error_t f;
+} mh_mmu_tran_error_u;
+
+
+/*
+ * MH_MMU_INVALIDATE struct
+ */
+
+#define MH_MMU_INVALIDATE_INVALIDATE_ALL_SIZE 1
+#define MH_MMU_INVALIDATE_INVALIDATE_TC_SIZE 1
+
+#define MH_MMU_INVALIDATE_INVALIDATE_ALL_SHIFT 0
+#define MH_MMU_INVALIDATE_INVALIDATE_TC_SHIFT 1
+
+#define MH_MMU_INVALIDATE_INVALIDATE_ALL_MASK 0x00000001
+#define MH_MMU_INVALIDATE_INVALIDATE_TC_MASK 0x00000002
+
+#define MH_MMU_INVALIDATE_MASK \
+ (MH_MMU_INVALIDATE_INVALIDATE_ALL_MASK | \
+ MH_MMU_INVALIDATE_INVALIDATE_TC_MASK)
+
+#define MH_MMU_INVALIDATE(invalidate_all, invalidate_tc) \
+ ((invalidate_all << MH_MMU_INVALIDATE_INVALIDATE_ALL_SHIFT) | \
+ (invalidate_tc << MH_MMU_INVALIDATE_INVALIDATE_TC_SHIFT))
+
+#define MH_MMU_INVALIDATE_GET_INVALIDATE_ALL(mh_mmu_invalidate) \
+ ((mh_mmu_invalidate & MH_MMU_INVALIDATE_INVALIDATE_ALL_MASK) >> MH_MMU_INVALIDATE_INVALIDATE_ALL_SHIFT)
+#define MH_MMU_INVALIDATE_GET_INVALIDATE_TC(mh_mmu_invalidate) \
+ ((mh_mmu_invalidate & MH_MMU_INVALIDATE_INVALIDATE_TC_MASK) >> MH_MMU_INVALIDATE_INVALIDATE_TC_SHIFT)
+
+#define MH_MMU_INVALIDATE_SET_INVALIDATE_ALL(mh_mmu_invalidate_reg, invalidate_all) \
+ mh_mmu_invalidate_reg = (mh_mmu_invalidate_reg & ~MH_MMU_INVALIDATE_INVALIDATE_ALL_MASK) | (invalidate_all << MH_MMU_INVALIDATE_INVALIDATE_ALL_SHIFT)
+#define MH_MMU_INVALIDATE_SET_INVALIDATE_TC(mh_mmu_invalidate_reg, invalidate_tc) \
+ mh_mmu_invalidate_reg = (mh_mmu_invalidate_reg & ~MH_MMU_INVALIDATE_INVALIDATE_TC_MASK) | (invalidate_tc << MH_MMU_INVALIDATE_INVALIDATE_TC_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_mmu_invalidate_t {
+ unsigned int invalidate_all : MH_MMU_INVALIDATE_INVALIDATE_ALL_SIZE;
+ unsigned int invalidate_tc : MH_MMU_INVALIDATE_INVALIDATE_TC_SIZE;
+ unsigned int : 30;
+ } mh_mmu_invalidate_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_mmu_invalidate_t {
+ unsigned int : 30;
+ unsigned int invalidate_tc : MH_MMU_INVALIDATE_INVALIDATE_TC_SIZE;
+ unsigned int invalidate_all : MH_MMU_INVALIDATE_INVALIDATE_ALL_SIZE;
+ } mh_mmu_invalidate_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_mmu_invalidate_t f;
+} mh_mmu_invalidate_u;
+
+
+/*
+ * MH_MMU_MPU_BASE struct
+ */
+
+#define MH_MMU_MPU_BASE_MPU_BASE_SIZE 20
+
+#define MH_MMU_MPU_BASE_MPU_BASE_SHIFT 12
+
+#define MH_MMU_MPU_BASE_MPU_BASE_MASK 0xfffff000
+
+#define MH_MMU_MPU_BASE_MASK \
+ (MH_MMU_MPU_BASE_MPU_BASE_MASK)
+
+#define MH_MMU_MPU_BASE(mpu_base) \
+ ((mpu_base << MH_MMU_MPU_BASE_MPU_BASE_SHIFT))
+
+#define MH_MMU_MPU_BASE_GET_MPU_BASE(mh_mmu_mpu_base) \
+ ((mh_mmu_mpu_base & MH_MMU_MPU_BASE_MPU_BASE_MASK) >> MH_MMU_MPU_BASE_MPU_BASE_SHIFT)
+
+#define MH_MMU_MPU_BASE_SET_MPU_BASE(mh_mmu_mpu_base_reg, mpu_base) \
+ mh_mmu_mpu_base_reg = (mh_mmu_mpu_base_reg & ~MH_MMU_MPU_BASE_MPU_BASE_MASK) | (mpu_base << MH_MMU_MPU_BASE_MPU_BASE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_mmu_mpu_base_t {
+ unsigned int : 12;
+ unsigned int mpu_base : MH_MMU_MPU_BASE_MPU_BASE_SIZE;
+ } mh_mmu_mpu_base_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_mmu_mpu_base_t {
+ unsigned int mpu_base : MH_MMU_MPU_BASE_MPU_BASE_SIZE;
+ unsigned int : 12;
+ } mh_mmu_mpu_base_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_mmu_mpu_base_t f;
+} mh_mmu_mpu_base_u;
+
+
+/*
+ * MH_MMU_MPU_END struct
+ */
+
+#define MH_MMU_MPU_END_MPU_END_SIZE 20
+
+#define MH_MMU_MPU_END_MPU_END_SHIFT 12
+
+#define MH_MMU_MPU_END_MPU_END_MASK 0xfffff000
+
+#define MH_MMU_MPU_END_MASK \
+ (MH_MMU_MPU_END_MPU_END_MASK)
+
+#define MH_MMU_MPU_END(mpu_end) \
+ ((mpu_end << MH_MMU_MPU_END_MPU_END_SHIFT))
+
+#define MH_MMU_MPU_END_GET_MPU_END(mh_mmu_mpu_end) \
+ ((mh_mmu_mpu_end & MH_MMU_MPU_END_MPU_END_MASK) >> MH_MMU_MPU_END_MPU_END_SHIFT)
+
+#define MH_MMU_MPU_END_SET_MPU_END(mh_mmu_mpu_end_reg, mpu_end) \
+ mh_mmu_mpu_end_reg = (mh_mmu_mpu_end_reg & ~MH_MMU_MPU_END_MPU_END_MASK) | (mpu_end << MH_MMU_MPU_END_MPU_END_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_mmu_mpu_end_t {
+ unsigned int : 12;
+ unsigned int mpu_end : MH_MMU_MPU_END_MPU_END_SIZE;
+ } mh_mmu_mpu_end_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_mmu_mpu_end_t {
+ unsigned int mpu_end : MH_MMU_MPU_END_MPU_END_SIZE;
+ unsigned int : 12;
+ } mh_mmu_mpu_end_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_mmu_mpu_end_t f;
+} mh_mmu_mpu_end_u;
+
+
+#endif
+
+
+#if !defined (_PA_FIDDLE_H)
+#define _PA_FIDDLE_H
+
+/*******************************************************
+ * Enums
+ *******************************************************/
+
+
+/*******************************************************
+ * Values
+ *******************************************************/
+
+
+/*******************************************************
+ * Structures
+ *******************************************************/
+
+/*
+ * PA_CL_VPORT_XSCALE struct
+ */
+
+#define PA_CL_VPORT_XSCALE_VPORT_XSCALE_SIZE 32
+
+#define PA_CL_VPORT_XSCALE_VPORT_XSCALE_SHIFT 0
+
+#define PA_CL_VPORT_XSCALE_VPORT_XSCALE_MASK 0xffffffff
+
+#define PA_CL_VPORT_XSCALE_MASK \
+ (PA_CL_VPORT_XSCALE_VPORT_XSCALE_MASK)
+
+#define PA_CL_VPORT_XSCALE(vport_xscale) \
+ ((vport_xscale << PA_CL_VPORT_XSCALE_VPORT_XSCALE_SHIFT))
+
+#define PA_CL_VPORT_XSCALE_GET_VPORT_XSCALE(pa_cl_vport_xscale) \
+ ((pa_cl_vport_xscale & PA_CL_VPORT_XSCALE_VPORT_XSCALE_MASK) >> PA_CL_VPORT_XSCALE_VPORT_XSCALE_SHIFT)
+
+#define PA_CL_VPORT_XSCALE_SET_VPORT_XSCALE(pa_cl_vport_xscale_reg, vport_xscale) \
+ pa_cl_vport_xscale_reg = (pa_cl_vport_xscale_reg & ~PA_CL_VPORT_XSCALE_VPORT_XSCALE_MASK) | (vport_xscale << PA_CL_VPORT_XSCALE_VPORT_XSCALE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_cl_vport_xscale_t {
+ unsigned int vport_xscale : PA_CL_VPORT_XSCALE_VPORT_XSCALE_SIZE;
+ } pa_cl_vport_xscale_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_cl_vport_xscale_t {
+ unsigned int vport_xscale : PA_CL_VPORT_XSCALE_VPORT_XSCALE_SIZE;
+ } pa_cl_vport_xscale_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_cl_vport_xscale_t f;
+} pa_cl_vport_xscale_u;
+
+
+/*
+ * PA_CL_VPORT_XOFFSET struct
+ */
+
+#define PA_CL_VPORT_XOFFSET_VPORT_XOFFSET_SIZE 32
+
+#define PA_CL_VPORT_XOFFSET_VPORT_XOFFSET_SHIFT 0
+
+#define PA_CL_VPORT_XOFFSET_VPORT_XOFFSET_MASK 0xffffffff
+
+#define PA_CL_VPORT_XOFFSET_MASK \
+ (PA_CL_VPORT_XOFFSET_VPORT_XOFFSET_MASK)
+
+#define PA_CL_VPORT_XOFFSET(vport_xoffset) \
+ ((vport_xoffset << PA_CL_VPORT_XOFFSET_VPORT_XOFFSET_SHIFT))
+
+#define PA_CL_VPORT_XOFFSET_GET_VPORT_XOFFSET(pa_cl_vport_xoffset) \
+ ((pa_cl_vport_xoffset & PA_CL_VPORT_XOFFSET_VPORT_XOFFSET_MASK) >> PA_CL_VPORT_XOFFSET_VPORT_XOFFSET_SHIFT)
+
+#define PA_CL_VPORT_XOFFSET_SET_VPORT_XOFFSET(pa_cl_vport_xoffset_reg, vport_xoffset) \
+ pa_cl_vport_xoffset_reg = (pa_cl_vport_xoffset_reg & ~PA_CL_VPORT_XOFFSET_VPORT_XOFFSET_MASK) | (vport_xoffset << PA_CL_VPORT_XOFFSET_VPORT_XOFFSET_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_cl_vport_xoffset_t {
+ unsigned int vport_xoffset : PA_CL_VPORT_XOFFSET_VPORT_XOFFSET_SIZE;
+ } pa_cl_vport_xoffset_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_cl_vport_xoffset_t {
+ unsigned int vport_xoffset : PA_CL_VPORT_XOFFSET_VPORT_XOFFSET_SIZE;
+ } pa_cl_vport_xoffset_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_cl_vport_xoffset_t f;
+} pa_cl_vport_xoffset_u;
+
+
+/*
+ * PA_CL_VPORT_YSCALE struct
+ */
+
+#define PA_CL_VPORT_YSCALE_VPORT_YSCALE_SIZE 32
+
+#define PA_CL_VPORT_YSCALE_VPORT_YSCALE_SHIFT 0
+
+#define PA_CL_VPORT_YSCALE_VPORT_YSCALE_MASK 0xffffffff
+
+#define PA_CL_VPORT_YSCALE_MASK \
+ (PA_CL_VPORT_YSCALE_VPORT_YSCALE_MASK)
+
+#define PA_CL_VPORT_YSCALE(vport_yscale) \
+ ((vport_yscale << PA_CL_VPORT_YSCALE_VPORT_YSCALE_SHIFT))
+
+#define PA_CL_VPORT_YSCALE_GET_VPORT_YSCALE(pa_cl_vport_yscale) \
+ ((pa_cl_vport_yscale & PA_CL_VPORT_YSCALE_VPORT_YSCALE_MASK) >> PA_CL_VPORT_YSCALE_VPORT_YSCALE_SHIFT)
+
+#define PA_CL_VPORT_YSCALE_SET_VPORT_YSCALE(pa_cl_vport_yscale_reg, vport_yscale) \
+ pa_cl_vport_yscale_reg = (pa_cl_vport_yscale_reg & ~PA_CL_VPORT_YSCALE_VPORT_YSCALE_MASK) | (vport_yscale << PA_CL_VPORT_YSCALE_VPORT_YSCALE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_cl_vport_yscale_t {
+ unsigned int vport_yscale : PA_CL_VPORT_YSCALE_VPORT_YSCALE_SIZE;
+ } pa_cl_vport_yscale_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_cl_vport_yscale_t {
+ unsigned int vport_yscale : PA_CL_VPORT_YSCALE_VPORT_YSCALE_SIZE;
+ } pa_cl_vport_yscale_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_cl_vport_yscale_t f;
+} pa_cl_vport_yscale_u;
+
+
+/*
+ * PA_CL_VPORT_YOFFSET struct
+ */
+
+#define PA_CL_VPORT_YOFFSET_VPORT_YOFFSET_SIZE 32
+
+#define PA_CL_VPORT_YOFFSET_VPORT_YOFFSET_SHIFT 0
+
+#define PA_CL_VPORT_YOFFSET_VPORT_YOFFSET_MASK 0xffffffff
+
+#define PA_CL_VPORT_YOFFSET_MASK \
+ (PA_CL_VPORT_YOFFSET_VPORT_YOFFSET_MASK)
+
+#define PA_CL_VPORT_YOFFSET(vport_yoffset) \
+ ((vport_yoffset << PA_CL_VPORT_YOFFSET_VPORT_YOFFSET_SHIFT))
+
+#define PA_CL_VPORT_YOFFSET_GET_VPORT_YOFFSET(pa_cl_vport_yoffset) \
+ ((pa_cl_vport_yoffset & PA_CL_VPORT_YOFFSET_VPORT_YOFFSET_MASK) >> PA_CL_VPORT_YOFFSET_VPORT_YOFFSET_SHIFT)
+
+#define PA_CL_VPORT_YOFFSET_SET_VPORT_YOFFSET(pa_cl_vport_yoffset_reg, vport_yoffset) \
+ pa_cl_vport_yoffset_reg = (pa_cl_vport_yoffset_reg & ~PA_CL_VPORT_YOFFSET_VPORT_YOFFSET_MASK) | (vport_yoffset << PA_CL_VPORT_YOFFSET_VPORT_YOFFSET_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_cl_vport_yoffset_t {
+ unsigned int vport_yoffset : PA_CL_VPORT_YOFFSET_VPORT_YOFFSET_SIZE;
+ } pa_cl_vport_yoffset_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_cl_vport_yoffset_t {
+ unsigned int vport_yoffset : PA_CL_VPORT_YOFFSET_VPORT_YOFFSET_SIZE;
+ } pa_cl_vport_yoffset_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_cl_vport_yoffset_t f;
+} pa_cl_vport_yoffset_u;
+
+
+/*
+ * PA_CL_VPORT_ZSCALE struct
+ */
+
+#define PA_CL_VPORT_ZSCALE_VPORT_ZSCALE_SIZE 32
+
+#define PA_CL_VPORT_ZSCALE_VPORT_ZSCALE_SHIFT 0
+
+#define PA_CL_VPORT_ZSCALE_VPORT_ZSCALE_MASK 0xffffffff
+
+#define PA_CL_VPORT_ZSCALE_MASK \
+ (PA_CL_VPORT_ZSCALE_VPORT_ZSCALE_MASK)
+
+#define PA_CL_VPORT_ZSCALE(vport_zscale) \
+ ((vport_zscale << PA_CL_VPORT_ZSCALE_VPORT_ZSCALE_SHIFT))
+
+#define PA_CL_VPORT_ZSCALE_GET_VPORT_ZSCALE(pa_cl_vport_zscale) \
+ ((pa_cl_vport_zscale & PA_CL_VPORT_ZSCALE_VPORT_ZSCALE_MASK) >> PA_CL_VPORT_ZSCALE_VPORT_ZSCALE_SHIFT)
+
+#define PA_CL_VPORT_ZSCALE_SET_VPORT_ZSCALE(pa_cl_vport_zscale_reg, vport_zscale) \
+ pa_cl_vport_zscale_reg = (pa_cl_vport_zscale_reg & ~PA_CL_VPORT_ZSCALE_VPORT_ZSCALE_MASK) | (vport_zscale << PA_CL_VPORT_ZSCALE_VPORT_ZSCALE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_cl_vport_zscale_t {
+ unsigned int vport_zscale : PA_CL_VPORT_ZSCALE_VPORT_ZSCALE_SIZE;
+ } pa_cl_vport_zscale_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_cl_vport_zscale_t {
+ unsigned int vport_zscale : PA_CL_VPORT_ZSCALE_VPORT_ZSCALE_SIZE;
+ } pa_cl_vport_zscale_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_cl_vport_zscale_t f;
+} pa_cl_vport_zscale_u;
+
+
+/*
+ * PA_CL_VPORT_ZOFFSET struct
+ */
+
+#define PA_CL_VPORT_ZOFFSET_VPORT_ZOFFSET_SIZE 32
+
+#define PA_CL_VPORT_ZOFFSET_VPORT_ZOFFSET_SHIFT 0
+
+#define PA_CL_VPORT_ZOFFSET_VPORT_ZOFFSET_MASK 0xffffffff
+
+#define PA_CL_VPORT_ZOFFSET_MASK \
+ (PA_CL_VPORT_ZOFFSET_VPORT_ZOFFSET_MASK)
+
+#define PA_CL_VPORT_ZOFFSET(vport_zoffset) \
+ ((vport_zoffset << PA_CL_VPORT_ZOFFSET_VPORT_ZOFFSET_SHIFT))
+
+#define PA_CL_VPORT_ZOFFSET_GET_VPORT_ZOFFSET(pa_cl_vport_zoffset) \
+ ((pa_cl_vport_zoffset & PA_CL_VPORT_ZOFFSET_VPORT_ZOFFSET_MASK) >> PA_CL_VPORT_ZOFFSET_VPORT_ZOFFSET_SHIFT)
+
+#define PA_CL_VPORT_ZOFFSET_SET_VPORT_ZOFFSET(pa_cl_vport_zoffset_reg, vport_zoffset) \
+ pa_cl_vport_zoffset_reg = (pa_cl_vport_zoffset_reg & ~PA_CL_VPORT_ZOFFSET_VPORT_ZOFFSET_MASK) | (vport_zoffset << PA_CL_VPORT_ZOFFSET_VPORT_ZOFFSET_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_cl_vport_zoffset_t {
+ unsigned int vport_zoffset : PA_CL_VPORT_ZOFFSET_VPORT_ZOFFSET_SIZE;
+ } pa_cl_vport_zoffset_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_cl_vport_zoffset_t {
+ unsigned int vport_zoffset : PA_CL_VPORT_ZOFFSET_VPORT_ZOFFSET_SIZE;
+ } pa_cl_vport_zoffset_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_cl_vport_zoffset_t f;
+} pa_cl_vport_zoffset_u;
+
+
+/*
+ * PA_CL_VTE_CNTL struct
+ */
+
+#define PA_CL_VTE_CNTL_VPORT_X_SCALE_ENA_SIZE 1
+#define PA_CL_VTE_CNTL_VPORT_X_OFFSET_ENA_SIZE 1
+#define PA_CL_VTE_CNTL_VPORT_Y_SCALE_ENA_SIZE 1
+#define PA_CL_VTE_CNTL_VPORT_Y_OFFSET_ENA_SIZE 1
+#define PA_CL_VTE_CNTL_VPORT_Z_SCALE_ENA_SIZE 1
+#define PA_CL_VTE_CNTL_VPORT_Z_OFFSET_ENA_SIZE 1
+#define PA_CL_VTE_CNTL_VTX_XY_FMT_SIZE 1
+#define PA_CL_VTE_CNTL_VTX_Z_FMT_SIZE 1
+#define PA_CL_VTE_CNTL_VTX_W0_FMT_SIZE 1
+#define PA_CL_VTE_CNTL_PERFCOUNTER_REF_SIZE 1
+
+#define PA_CL_VTE_CNTL_VPORT_X_SCALE_ENA_SHIFT 0
+#define PA_CL_VTE_CNTL_VPORT_X_OFFSET_ENA_SHIFT 1
+#define PA_CL_VTE_CNTL_VPORT_Y_SCALE_ENA_SHIFT 2
+#define PA_CL_VTE_CNTL_VPORT_Y_OFFSET_ENA_SHIFT 3
+#define PA_CL_VTE_CNTL_VPORT_Z_SCALE_ENA_SHIFT 4
+#define PA_CL_VTE_CNTL_VPORT_Z_OFFSET_ENA_SHIFT 5
+#define PA_CL_VTE_CNTL_VTX_XY_FMT_SHIFT 8
+#define PA_CL_VTE_CNTL_VTX_Z_FMT_SHIFT 9
+#define PA_CL_VTE_CNTL_VTX_W0_FMT_SHIFT 10
+#define PA_CL_VTE_CNTL_PERFCOUNTER_REF_SHIFT 11
+
+#define PA_CL_VTE_CNTL_VPORT_X_SCALE_ENA_MASK 0x00000001
+#define PA_CL_VTE_CNTL_VPORT_X_OFFSET_ENA_MASK 0x00000002
+#define PA_CL_VTE_CNTL_VPORT_Y_SCALE_ENA_MASK 0x00000004
+#define PA_CL_VTE_CNTL_VPORT_Y_OFFSET_ENA_MASK 0x00000008
+#define PA_CL_VTE_CNTL_VPORT_Z_SCALE_ENA_MASK 0x00000010
+#define PA_CL_VTE_CNTL_VPORT_Z_OFFSET_ENA_MASK 0x00000020
+#define PA_CL_VTE_CNTL_VTX_XY_FMT_MASK 0x00000100
+#define PA_CL_VTE_CNTL_VTX_Z_FMT_MASK 0x00000200
+#define PA_CL_VTE_CNTL_VTX_W0_FMT_MASK 0x00000400
+#define PA_CL_VTE_CNTL_PERFCOUNTER_REF_MASK 0x00000800
+
+#define PA_CL_VTE_CNTL_MASK \
+ (PA_CL_VTE_CNTL_VPORT_X_SCALE_ENA_MASK | \
+ PA_CL_VTE_CNTL_VPORT_X_OFFSET_ENA_MASK | \
+ PA_CL_VTE_CNTL_VPORT_Y_SCALE_ENA_MASK | \
+ PA_CL_VTE_CNTL_VPORT_Y_OFFSET_ENA_MASK | \
+ PA_CL_VTE_CNTL_VPORT_Z_SCALE_ENA_MASK | \
+ PA_CL_VTE_CNTL_VPORT_Z_OFFSET_ENA_MASK | \
+ PA_CL_VTE_CNTL_VTX_XY_FMT_MASK | \
+ PA_CL_VTE_CNTL_VTX_Z_FMT_MASK | \
+ PA_CL_VTE_CNTL_VTX_W0_FMT_MASK | \
+ PA_CL_VTE_CNTL_PERFCOUNTER_REF_MASK)
+
+#define PA_CL_VTE_CNTL(vport_x_scale_ena, vport_x_offset_ena, vport_y_scale_ena, vport_y_offset_ena, vport_z_scale_ena, vport_z_offset_ena, vtx_xy_fmt, vtx_z_fmt, vtx_w0_fmt, perfcounter_ref) \
+ ((vport_x_scale_ena << PA_CL_VTE_CNTL_VPORT_X_SCALE_ENA_SHIFT) | \
+ (vport_x_offset_ena << PA_CL_VTE_CNTL_VPORT_X_OFFSET_ENA_SHIFT) | \
+ (vport_y_scale_ena << PA_CL_VTE_CNTL_VPORT_Y_SCALE_ENA_SHIFT) | \
+ (vport_y_offset_ena << PA_CL_VTE_CNTL_VPORT_Y_OFFSET_ENA_SHIFT) | \
+ (vport_z_scale_ena << PA_CL_VTE_CNTL_VPORT_Z_SCALE_ENA_SHIFT) | \
+ (vport_z_offset_ena << PA_CL_VTE_CNTL_VPORT_Z_OFFSET_ENA_SHIFT) | \
+ (vtx_xy_fmt << PA_CL_VTE_CNTL_VTX_XY_FMT_SHIFT) | \
+ (vtx_z_fmt << PA_CL_VTE_CNTL_VTX_Z_FMT_SHIFT) | \
+ (vtx_w0_fmt << PA_CL_VTE_CNTL_VTX_W0_FMT_SHIFT) | \
+ (perfcounter_ref << PA_CL_VTE_CNTL_PERFCOUNTER_REF_SHIFT))
+
+#define PA_CL_VTE_CNTL_GET_VPORT_X_SCALE_ENA(pa_cl_vte_cntl) \
+ ((pa_cl_vte_cntl & PA_CL_VTE_CNTL_VPORT_X_SCALE_ENA_MASK) >> PA_CL_VTE_CNTL_VPORT_X_SCALE_ENA_SHIFT)
+#define PA_CL_VTE_CNTL_GET_VPORT_X_OFFSET_ENA(pa_cl_vte_cntl) \
+ ((pa_cl_vte_cntl & PA_CL_VTE_CNTL_VPORT_X_OFFSET_ENA_MASK) >> PA_CL_VTE_CNTL_VPORT_X_OFFSET_ENA_SHIFT)
+#define PA_CL_VTE_CNTL_GET_VPORT_Y_SCALE_ENA(pa_cl_vte_cntl) \
+ ((pa_cl_vte_cntl & PA_CL_VTE_CNTL_VPORT_Y_SCALE_ENA_MASK) >> PA_CL_VTE_CNTL_VPORT_Y_SCALE_ENA_SHIFT)
+#define PA_CL_VTE_CNTL_GET_VPORT_Y_OFFSET_ENA(pa_cl_vte_cntl) \
+ ((pa_cl_vte_cntl & PA_CL_VTE_CNTL_VPORT_Y_OFFSET_ENA_MASK) >> PA_CL_VTE_CNTL_VPORT_Y_OFFSET_ENA_SHIFT)
+#define PA_CL_VTE_CNTL_GET_VPORT_Z_SCALE_ENA(pa_cl_vte_cntl) \
+ ((pa_cl_vte_cntl & PA_CL_VTE_CNTL_VPORT_Z_SCALE_ENA_MASK) >> PA_CL_VTE_CNTL_VPORT_Z_SCALE_ENA_SHIFT)
+#define PA_CL_VTE_CNTL_GET_VPORT_Z_OFFSET_ENA(pa_cl_vte_cntl) \
+ ((pa_cl_vte_cntl & PA_CL_VTE_CNTL_VPORT_Z_OFFSET_ENA_MASK) >> PA_CL_VTE_CNTL_VPORT_Z_OFFSET_ENA_SHIFT)
+#define PA_CL_VTE_CNTL_GET_VTX_XY_FMT(pa_cl_vte_cntl) \
+ ((pa_cl_vte_cntl & PA_CL_VTE_CNTL_VTX_XY_FMT_MASK) >> PA_CL_VTE_CNTL_VTX_XY_FMT_SHIFT)
+#define PA_CL_VTE_CNTL_GET_VTX_Z_FMT(pa_cl_vte_cntl) \
+ ((pa_cl_vte_cntl & PA_CL_VTE_CNTL_VTX_Z_FMT_MASK) >> PA_CL_VTE_CNTL_VTX_Z_FMT_SHIFT)
+#define PA_CL_VTE_CNTL_GET_VTX_W0_FMT(pa_cl_vte_cntl) \
+ ((pa_cl_vte_cntl & PA_CL_VTE_CNTL_VTX_W0_FMT_MASK) >> PA_CL_VTE_CNTL_VTX_W0_FMT_SHIFT)
+#define PA_CL_VTE_CNTL_GET_PERFCOUNTER_REF(pa_cl_vte_cntl) \
+ ((pa_cl_vte_cntl & PA_CL_VTE_CNTL_PERFCOUNTER_REF_MASK) >> PA_CL_VTE_CNTL_PERFCOUNTER_REF_SHIFT)
+
+#define PA_CL_VTE_CNTL_SET_VPORT_X_SCALE_ENA(pa_cl_vte_cntl_reg, vport_x_scale_ena) \
+ pa_cl_vte_cntl_reg = (pa_cl_vte_cntl_reg & ~PA_CL_VTE_CNTL_VPORT_X_SCALE_ENA_MASK) | (vport_x_scale_ena << PA_CL_VTE_CNTL_VPORT_X_SCALE_ENA_SHIFT)
+#define PA_CL_VTE_CNTL_SET_VPORT_X_OFFSET_ENA(pa_cl_vte_cntl_reg, vport_x_offset_ena) \
+ pa_cl_vte_cntl_reg = (pa_cl_vte_cntl_reg & ~PA_CL_VTE_CNTL_VPORT_X_OFFSET_ENA_MASK) | (vport_x_offset_ena << PA_CL_VTE_CNTL_VPORT_X_OFFSET_ENA_SHIFT)
+#define PA_CL_VTE_CNTL_SET_VPORT_Y_SCALE_ENA(pa_cl_vte_cntl_reg, vport_y_scale_ena) \
+ pa_cl_vte_cntl_reg = (pa_cl_vte_cntl_reg & ~PA_CL_VTE_CNTL_VPORT_Y_SCALE_ENA_MASK) | (vport_y_scale_ena << PA_CL_VTE_CNTL_VPORT_Y_SCALE_ENA_SHIFT)
+#define PA_CL_VTE_CNTL_SET_VPORT_Y_OFFSET_ENA(pa_cl_vte_cntl_reg, vport_y_offset_ena) \
+ pa_cl_vte_cntl_reg = (pa_cl_vte_cntl_reg & ~PA_CL_VTE_CNTL_VPORT_Y_OFFSET_ENA_MASK) | (vport_y_offset_ena << PA_CL_VTE_CNTL_VPORT_Y_OFFSET_ENA_SHIFT)
+#define PA_CL_VTE_CNTL_SET_VPORT_Z_SCALE_ENA(pa_cl_vte_cntl_reg, vport_z_scale_ena) \
+ pa_cl_vte_cntl_reg = (pa_cl_vte_cntl_reg & ~PA_CL_VTE_CNTL_VPORT_Z_SCALE_ENA_MASK) | (vport_z_scale_ena << PA_CL_VTE_CNTL_VPORT_Z_SCALE_ENA_SHIFT)
+#define PA_CL_VTE_CNTL_SET_VPORT_Z_OFFSET_ENA(pa_cl_vte_cntl_reg, vport_z_offset_ena) \
+ pa_cl_vte_cntl_reg = (pa_cl_vte_cntl_reg & ~PA_CL_VTE_CNTL_VPORT_Z_OFFSET_ENA_MASK) | (vport_z_offset_ena << PA_CL_VTE_CNTL_VPORT_Z_OFFSET_ENA_SHIFT)
+#define PA_CL_VTE_CNTL_SET_VTX_XY_FMT(pa_cl_vte_cntl_reg, vtx_xy_fmt) \
+ pa_cl_vte_cntl_reg = (pa_cl_vte_cntl_reg & ~PA_CL_VTE_CNTL_VTX_XY_FMT_MASK) | (vtx_xy_fmt << PA_CL_VTE_CNTL_VTX_XY_FMT_SHIFT)
+#define PA_CL_VTE_CNTL_SET_VTX_Z_FMT(pa_cl_vte_cntl_reg, vtx_z_fmt) \
+ pa_cl_vte_cntl_reg = (pa_cl_vte_cntl_reg & ~PA_CL_VTE_CNTL_VTX_Z_FMT_MASK) | (vtx_z_fmt << PA_CL_VTE_CNTL_VTX_Z_FMT_SHIFT)
+#define PA_CL_VTE_CNTL_SET_VTX_W0_FMT(pa_cl_vte_cntl_reg, vtx_w0_fmt) \
+ pa_cl_vte_cntl_reg = (pa_cl_vte_cntl_reg & ~PA_CL_VTE_CNTL_VTX_W0_FMT_MASK) | (vtx_w0_fmt << PA_CL_VTE_CNTL_VTX_W0_FMT_SHIFT)
+#define PA_CL_VTE_CNTL_SET_PERFCOUNTER_REF(pa_cl_vte_cntl_reg, perfcounter_ref) \
+ pa_cl_vte_cntl_reg = (pa_cl_vte_cntl_reg & ~PA_CL_VTE_CNTL_PERFCOUNTER_REF_MASK) | (perfcounter_ref << PA_CL_VTE_CNTL_PERFCOUNTER_REF_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_cl_vte_cntl_t {
+ unsigned int vport_x_scale_ena : PA_CL_VTE_CNTL_VPORT_X_SCALE_ENA_SIZE;
+ unsigned int vport_x_offset_ena : PA_CL_VTE_CNTL_VPORT_X_OFFSET_ENA_SIZE;
+ unsigned int vport_y_scale_ena : PA_CL_VTE_CNTL_VPORT_Y_SCALE_ENA_SIZE;
+ unsigned int vport_y_offset_ena : PA_CL_VTE_CNTL_VPORT_Y_OFFSET_ENA_SIZE;
+ unsigned int vport_z_scale_ena : PA_CL_VTE_CNTL_VPORT_Z_SCALE_ENA_SIZE;
+ unsigned int vport_z_offset_ena : PA_CL_VTE_CNTL_VPORT_Z_OFFSET_ENA_SIZE;
+ unsigned int : 2;
+ unsigned int vtx_xy_fmt : PA_CL_VTE_CNTL_VTX_XY_FMT_SIZE;
+ unsigned int vtx_z_fmt : PA_CL_VTE_CNTL_VTX_Z_FMT_SIZE;
+ unsigned int vtx_w0_fmt : PA_CL_VTE_CNTL_VTX_W0_FMT_SIZE;
+ unsigned int perfcounter_ref : PA_CL_VTE_CNTL_PERFCOUNTER_REF_SIZE;
+ unsigned int : 20;
+ } pa_cl_vte_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_cl_vte_cntl_t {
+ unsigned int : 20;
+ unsigned int perfcounter_ref : PA_CL_VTE_CNTL_PERFCOUNTER_REF_SIZE;
+ unsigned int vtx_w0_fmt : PA_CL_VTE_CNTL_VTX_W0_FMT_SIZE;
+ unsigned int vtx_z_fmt : PA_CL_VTE_CNTL_VTX_Z_FMT_SIZE;
+ unsigned int vtx_xy_fmt : PA_CL_VTE_CNTL_VTX_XY_FMT_SIZE;
+ unsigned int : 2;
+ unsigned int vport_z_offset_ena : PA_CL_VTE_CNTL_VPORT_Z_OFFSET_ENA_SIZE;
+ unsigned int vport_z_scale_ena : PA_CL_VTE_CNTL_VPORT_Z_SCALE_ENA_SIZE;
+ unsigned int vport_y_offset_ena : PA_CL_VTE_CNTL_VPORT_Y_OFFSET_ENA_SIZE;
+ unsigned int vport_y_scale_ena : PA_CL_VTE_CNTL_VPORT_Y_SCALE_ENA_SIZE;
+ unsigned int vport_x_offset_ena : PA_CL_VTE_CNTL_VPORT_X_OFFSET_ENA_SIZE;
+ unsigned int vport_x_scale_ena : PA_CL_VTE_CNTL_VPORT_X_SCALE_ENA_SIZE;
+ } pa_cl_vte_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_cl_vte_cntl_t f;
+} pa_cl_vte_cntl_u;
+
+
+/*
+ * PA_CL_CLIP_CNTL struct
+ */
+
+#define PA_CL_CLIP_CNTL_CLIP_DISABLE_SIZE 1
+#define PA_CL_CLIP_CNTL_BOUNDARY_EDGE_FLAG_ENA_SIZE 1
+#define PA_CL_CLIP_CNTL_DX_CLIP_SPACE_DEF_SIZE 1
+#define PA_CL_CLIP_CNTL_DIS_CLIP_ERR_DETECT_SIZE 1
+#define PA_CL_CLIP_CNTL_VTX_KILL_OR_SIZE 1
+#define PA_CL_CLIP_CNTL_XY_NAN_RETAIN_SIZE 1
+#define PA_CL_CLIP_CNTL_Z_NAN_RETAIN_SIZE 1
+#define PA_CL_CLIP_CNTL_W_NAN_RETAIN_SIZE 1
+
+#define PA_CL_CLIP_CNTL_CLIP_DISABLE_SHIFT 16
+#define PA_CL_CLIP_CNTL_BOUNDARY_EDGE_FLAG_ENA_SHIFT 18
+#define PA_CL_CLIP_CNTL_DX_CLIP_SPACE_DEF_SHIFT 19
+#define PA_CL_CLIP_CNTL_DIS_CLIP_ERR_DETECT_SHIFT 20
+#define PA_CL_CLIP_CNTL_VTX_KILL_OR_SHIFT 21
+#define PA_CL_CLIP_CNTL_XY_NAN_RETAIN_SHIFT 22
+#define PA_CL_CLIP_CNTL_Z_NAN_RETAIN_SHIFT 23
+#define PA_CL_CLIP_CNTL_W_NAN_RETAIN_SHIFT 24
+
+#define PA_CL_CLIP_CNTL_CLIP_DISABLE_MASK 0x00010000
+#define PA_CL_CLIP_CNTL_BOUNDARY_EDGE_FLAG_ENA_MASK 0x00040000
+#define PA_CL_CLIP_CNTL_DX_CLIP_SPACE_DEF_MASK 0x00080000
+#define PA_CL_CLIP_CNTL_DIS_CLIP_ERR_DETECT_MASK 0x00100000
+#define PA_CL_CLIP_CNTL_VTX_KILL_OR_MASK 0x00200000
+#define PA_CL_CLIP_CNTL_XY_NAN_RETAIN_MASK 0x00400000
+#define PA_CL_CLIP_CNTL_Z_NAN_RETAIN_MASK 0x00800000
+#define PA_CL_CLIP_CNTL_W_NAN_RETAIN_MASK 0x01000000
+
+#define PA_CL_CLIP_CNTL_MASK \
+ (PA_CL_CLIP_CNTL_CLIP_DISABLE_MASK | \
+ PA_CL_CLIP_CNTL_BOUNDARY_EDGE_FLAG_ENA_MASK | \
+ PA_CL_CLIP_CNTL_DX_CLIP_SPACE_DEF_MASK | \
+ PA_CL_CLIP_CNTL_DIS_CLIP_ERR_DETECT_MASK | \
+ PA_CL_CLIP_CNTL_VTX_KILL_OR_MASK | \
+ PA_CL_CLIP_CNTL_XY_NAN_RETAIN_MASK | \
+ PA_CL_CLIP_CNTL_Z_NAN_RETAIN_MASK | \
+ PA_CL_CLIP_CNTL_W_NAN_RETAIN_MASK)
+
+#define PA_CL_CLIP_CNTL(clip_disable, boundary_edge_flag_ena, dx_clip_space_def, dis_clip_err_detect, vtx_kill_or, xy_nan_retain, z_nan_retain, w_nan_retain) \
+ ((clip_disable << PA_CL_CLIP_CNTL_CLIP_DISABLE_SHIFT) | \
+ (boundary_edge_flag_ena << PA_CL_CLIP_CNTL_BOUNDARY_EDGE_FLAG_ENA_SHIFT) | \
+ (dx_clip_space_def << PA_CL_CLIP_CNTL_DX_CLIP_SPACE_DEF_SHIFT) | \
+ (dis_clip_err_detect << PA_CL_CLIP_CNTL_DIS_CLIP_ERR_DETECT_SHIFT) | \
+ (vtx_kill_or << PA_CL_CLIP_CNTL_VTX_KILL_OR_SHIFT) | \
+ (xy_nan_retain << PA_CL_CLIP_CNTL_XY_NAN_RETAIN_SHIFT) | \
+ (z_nan_retain << PA_CL_CLIP_CNTL_Z_NAN_RETAIN_SHIFT) | \
+ (w_nan_retain << PA_CL_CLIP_CNTL_W_NAN_RETAIN_SHIFT))
+
+#define PA_CL_CLIP_CNTL_GET_CLIP_DISABLE(pa_cl_clip_cntl) \
+ ((pa_cl_clip_cntl & PA_CL_CLIP_CNTL_CLIP_DISABLE_MASK) >> PA_CL_CLIP_CNTL_CLIP_DISABLE_SHIFT)
+#define PA_CL_CLIP_CNTL_GET_BOUNDARY_EDGE_FLAG_ENA(pa_cl_clip_cntl) \
+ ((pa_cl_clip_cntl & PA_CL_CLIP_CNTL_BOUNDARY_EDGE_FLAG_ENA_MASK) >> PA_CL_CLIP_CNTL_BOUNDARY_EDGE_FLAG_ENA_SHIFT)
+#define PA_CL_CLIP_CNTL_GET_DX_CLIP_SPACE_DEF(pa_cl_clip_cntl) \
+ ((pa_cl_clip_cntl & PA_CL_CLIP_CNTL_DX_CLIP_SPACE_DEF_MASK) >> PA_CL_CLIP_CNTL_DX_CLIP_SPACE_DEF_SHIFT)
+#define PA_CL_CLIP_CNTL_GET_DIS_CLIP_ERR_DETECT(pa_cl_clip_cntl) \
+ ((pa_cl_clip_cntl & PA_CL_CLIP_CNTL_DIS_CLIP_ERR_DETECT_MASK) >> PA_CL_CLIP_CNTL_DIS_CLIP_ERR_DETECT_SHIFT)
+#define PA_CL_CLIP_CNTL_GET_VTX_KILL_OR(pa_cl_clip_cntl) \
+ ((pa_cl_clip_cntl & PA_CL_CLIP_CNTL_VTX_KILL_OR_MASK) >> PA_CL_CLIP_CNTL_VTX_KILL_OR_SHIFT)
+#define PA_CL_CLIP_CNTL_GET_XY_NAN_RETAIN(pa_cl_clip_cntl) \
+ ((pa_cl_clip_cntl & PA_CL_CLIP_CNTL_XY_NAN_RETAIN_MASK) >> PA_CL_CLIP_CNTL_XY_NAN_RETAIN_SHIFT)
+#define PA_CL_CLIP_CNTL_GET_Z_NAN_RETAIN(pa_cl_clip_cntl) \
+ ((pa_cl_clip_cntl & PA_CL_CLIP_CNTL_Z_NAN_RETAIN_MASK) >> PA_CL_CLIP_CNTL_Z_NAN_RETAIN_SHIFT)
+#define PA_CL_CLIP_CNTL_GET_W_NAN_RETAIN(pa_cl_clip_cntl) \
+ ((pa_cl_clip_cntl & PA_CL_CLIP_CNTL_W_NAN_RETAIN_MASK) >> PA_CL_CLIP_CNTL_W_NAN_RETAIN_SHIFT)
+
+#define PA_CL_CLIP_CNTL_SET_CLIP_DISABLE(pa_cl_clip_cntl_reg, clip_disable) \
+ pa_cl_clip_cntl_reg = (pa_cl_clip_cntl_reg & ~PA_CL_CLIP_CNTL_CLIP_DISABLE_MASK) | (clip_disable << PA_CL_CLIP_CNTL_CLIP_DISABLE_SHIFT)
+#define PA_CL_CLIP_CNTL_SET_BOUNDARY_EDGE_FLAG_ENA(pa_cl_clip_cntl_reg, boundary_edge_flag_ena) \
+ pa_cl_clip_cntl_reg = (pa_cl_clip_cntl_reg & ~PA_CL_CLIP_CNTL_BOUNDARY_EDGE_FLAG_ENA_MASK) | (boundary_edge_flag_ena << PA_CL_CLIP_CNTL_BOUNDARY_EDGE_FLAG_ENA_SHIFT)
+#define PA_CL_CLIP_CNTL_SET_DX_CLIP_SPACE_DEF(pa_cl_clip_cntl_reg, dx_clip_space_def) \
+ pa_cl_clip_cntl_reg = (pa_cl_clip_cntl_reg & ~PA_CL_CLIP_CNTL_DX_CLIP_SPACE_DEF_MASK) | (dx_clip_space_def << PA_CL_CLIP_CNTL_DX_CLIP_SPACE_DEF_SHIFT)
+#define PA_CL_CLIP_CNTL_SET_DIS_CLIP_ERR_DETECT(pa_cl_clip_cntl_reg, dis_clip_err_detect) \
+ pa_cl_clip_cntl_reg = (pa_cl_clip_cntl_reg & ~PA_CL_CLIP_CNTL_DIS_CLIP_ERR_DETECT_MASK) | (dis_clip_err_detect << PA_CL_CLIP_CNTL_DIS_CLIP_ERR_DETECT_SHIFT)
+#define PA_CL_CLIP_CNTL_SET_VTX_KILL_OR(pa_cl_clip_cntl_reg, vtx_kill_or) \
+ pa_cl_clip_cntl_reg = (pa_cl_clip_cntl_reg & ~PA_CL_CLIP_CNTL_VTX_KILL_OR_MASK) | (vtx_kill_or << PA_CL_CLIP_CNTL_VTX_KILL_OR_SHIFT)
+#define PA_CL_CLIP_CNTL_SET_XY_NAN_RETAIN(pa_cl_clip_cntl_reg, xy_nan_retain) \
+ pa_cl_clip_cntl_reg = (pa_cl_clip_cntl_reg & ~PA_CL_CLIP_CNTL_XY_NAN_RETAIN_MASK) | (xy_nan_retain << PA_CL_CLIP_CNTL_XY_NAN_RETAIN_SHIFT)
+#define PA_CL_CLIP_CNTL_SET_Z_NAN_RETAIN(pa_cl_clip_cntl_reg, z_nan_retain) \
+ pa_cl_clip_cntl_reg = (pa_cl_clip_cntl_reg & ~PA_CL_CLIP_CNTL_Z_NAN_RETAIN_MASK) | (z_nan_retain << PA_CL_CLIP_CNTL_Z_NAN_RETAIN_SHIFT)
+#define PA_CL_CLIP_CNTL_SET_W_NAN_RETAIN(pa_cl_clip_cntl_reg, w_nan_retain) \
+ pa_cl_clip_cntl_reg = (pa_cl_clip_cntl_reg & ~PA_CL_CLIP_CNTL_W_NAN_RETAIN_MASK) | (w_nan_retain << PA_CL_CLIP_CNTL_W_NAN_RETAIN_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_cl_clip_cntl_t {
+ unsigned int : 16;
+ unsigned int clip_disable : PA_CL_CLIP_CNTL_CLIP_DISABLE_SIZE;
+ unsigned int : 1;
+ unsigned int boundary_edge_flag_ena : PA_CL_CLIP_CNTL_BOUNDARY_EDGE_FLAG_ENA_SIZE;
+ unsigned int dx_clip_space_def : PA_CL_CLIP_CNTL_DX_CLIP_SPACE_DEF_SIZE;
+ unsigned int dis_clip_err_detect : PA_CL_CLIP_CNTL_DIS_CLIP_ERR_DETECT_SIZE;
+ unsigned int vtx_kill_or : PA_CL_CLIP_CNTL_VTX_KILL_OR_SIZE;
+ unsigned int xy_nan_retain : PA_CL_CLIP_CNTL_XY_NAN_RETAIN_SIZE;
+ unsigned int z_nan_retain : PA_CL_CLIP_CNTL_Z_NAN_RETAIN_SIZE;
+ unsigned int w_nan_retain : PA_CL_CLIP_CNTL_W_NAN_RETAIN_SIZE;
+ unsigned int : 7;
+ } pa_cl_clip_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_cl_clip_cntl_t {
+ unsigned int : 7;
+ unsigned int w_nan_retain : PA_CL_CLIP_CNTL_W_NAN_RETAIN_SIZE;
+ unsigned int z_nan_retain : PA_CL_CLIP_CNTL_Z_NAN_RETAIN_SIZE;
+ unsigned int xy_nan_retain : PA_CL_CLIP_CNTL_XY_NAN_RETAIN_SIZE;
+ unsigned int vtx_kill_or : PA_CL_CLIP_CNTL_VTX_KILL_OR_SIZE;
+ unsigned int dis_clip_err_detect : PA_CL_CLIP_CNTL_DIS_CLIP_ERR_DETECT_SIZE;
+ unsigned int dx_clip_space_def : PA_CL_CLIP_CNTL_DX_CLIP_SPACE_DEF_SIZE;
+ unsigned int boundary_edge_flag_ena : PA_CL_CLIP_CNTL_BOUNDARY_EDGE_FLAG_ENA_SIZE;
+ unsigned int : 1;
+ unsigned int clip_disable : PA_CL_CLIP_CNTL_CLIP_DISABLE_SIZE;
+ unsigned int : 16;
+ } pa_cl_clip_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_cl_clip_cntl_t f;
+} pa_cl_clip_cntl_u;
+
+
+/*
+ * PA_CL_GB_VERT_CLIP_ADJ struct
+ */
+
+#define PA_CL_GB_VERT_CLIP_ADJ_DATA_REGISTER_SIZE 32
+
+#define PA_CL_GB_VERT_CLIP_ADJ_DATA_REGISTER_SHIFT 0
+
+#define PA_CL_GB_VERT_CLIP_ADJ_DATA_REGISTER_MASK 0xffffffff
+
+#define PA_CL_GB_VERT_CLIP_ADJ_MASK \
+ (PA_CL_GB_VERT_CLIP_ADJ_DATA_REGISTER_MASK)
+
+#define PA_CL_GB_VERT_CLIP_ADJ(data_register) \
+ ((data_register << PA_CL_GB_VERT_CLIP_ADJ_DATA_REGISTER_SHIFT))
+
+#define PA_CL_GB_VERT_CLIP_ADJ_GET_DATA_REGISTER(pa_cl_gb_vert_clip_adj) \
+ ((pa_cl_gb_vert_clip_adj & PA_CL_GB_VERT_CLIP_ADJ_DATA_REGISTER_MASK) >> PA_CL_GB_VERT_CLIP_ADJ_DATA_REGISTER_SHIFT)
+
+#define PA_CL_GB_VERT_CLIP_ADJ_SET_DATA_REGISTER(pa_cl_gb_vert_clip_adj_reg, data_register) \
+ pa_cl_gb_vert_clip_adj_reg = (pa_cl_gb_vert_clip_adj_reg & ~PA_CL_GB_VERT_CLIP_ADJ_DATA_REGISTER_MASK) | (data_register << PA_CL_GB_VERT_CLIP_ADJ_DATA_REGISTER_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_cl_gb_vert_clip_adj_t {
+ unsigned int data_register : PA_CL_GB_VERT_CLIP_ADJ_DATA_REGISTER_SIZE;
+ } pa_cl_gb_vert_clip_adj_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_cl_gb_vert_clip_adj_t {
+ unsigned int data_register : PA_CL_GB_VERT_CLIP_ADJ_DATA_REGISTER_SIZE;
+ } pa_cl_gb_vert_clip_adj_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_cl_gb_vert_clip_adj_t f;
+} pa_cl_gb_vert_clip_adj_u;
+
+
+/*
+ * PA_CL_GB_VERT_DISC_ADJ struct
+ */
+
+#define PA_CL_GB_VERT_DISC_ADJ_DATA_REGISTER_SIZE 32
+
+#define PA_CL_GB_VERT_DISC_ADJ_DATA_REGISTER_SHIFT 0
+
+#define PA_CL_GB_VERT_DISC_ADJ_DATA_REGISTER_MASK 0xffffffff
+
+#define PA_CL_GB_VERT_DISC_ADJ_MASK \
+ (PA_CL_GB_VERT_DISC_ADJ_DATA_REGISTER_MASK)
+
+#define PA_CL_GB_VERT_DISC_ADJ(data_register) \
+ ((data_register << PA_CL_GB_VERT_DISC_ADJ_DATA_REGISTER_SHIFT))
+
+#define PA_CL_GB_VERT_DISC_ADJ_GET_DATA_REGISTER(pa_cl_gb_vert_disc_adj) \
+ ((pa_cl_gb_vert_disc_adj & PA_CL_GB_VERT_DISC_ADJ_DATA_REGISTER_MASK) >> PA_CL_GB_VERT_DISC_ADJ_DATA_REGISTER_SHIFT)
+
+#define PA_CL_GB_VERT_DISC_ADJ_SET_DATA_REGISTER(pa_cl_gb_vert_disc_adj_reg, data_register) \
+ pa_cl_gb_vert_disc_adj_reg = (pa_cl_gb_vert_disc_adj_reg & ~PA_CL_GB_VERT_DISC_ADJ_DATA_REGISTER_MASK) | (data_register << PA_CL_GB_VERT_DISC_ADJ_DATA_REGISTER_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_cl_gb_vert_disc_adj_t {
+ unsigned int data_register : PA_CL_GB_VERT_DISC_ADJ_DATA_REGISTER_SIZE;
+ } pa_cl_gb_vert_disc_adj_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_cl_gb_vert_disc_adj_t {
+ unsigned int data_register : PA_CL_GB_VERT_DISC_ADJ_DATA_REGISTER_SIZE;
+ } pa_cl_gb_vert_disc_adj_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_cl_gb_vert_disc_adj_t f;
+} pa_cl_gb_vert_disc_adj_u;
+
+
+/*
+ * PA_CL_GB_HORZ_CLIP_ADJ struct
+ */
+
+#define PA_CL_GB_HORZ_CLIP_ADJ_DATA_REGISTER_SIZE 32
+
+#define PA_CL_GB_HORZ_CLIP_ADJ_DATA_REGISTER_SHIFT 0
+
+#define PA_CL_GB_HORZ_CLIP_ADJ_DATA_REGISTER_MASK 0xffffffff
+
+#define PA_CL_GB_HORZ_CLIP_ADJ_MASK \
+ (PA_CL_GB_HORZ_CLIP_ADJ_DATA_REGISTER_MASK)
+
+#define PA_CL_GB_HORZ_CLIP_ADJ(data_register) \
+ ((data_register << PA_CL_GB_HORZ_CLIP_ADJ_DATA_REGISTER_SHIFT))
+
+#define PA_CL_GB_HORZ_CLIP_ADJ_GET_DATA_REGISTER(pa_cl_gb_horz_clip_adj) \
+ ((pa_cl_gb_horz_clip_adj & PA_CL_GB_HORZ_CLIP_ADJ_DATA_REGISTER_MASK) >> PA_CL_GB_HORZ_CLIP_ADJ_DATA_REGISTER_SHIFT)
+
+#define PA_CL_GB_HORZ_CLIP_ADJ_SET_DATA_REGISTER(pa_cl_gb_horz_clip_adj_reg, data_register) \
+ pa_cl_gb_horz_clip_adj_reg = (pa_cl_gb_horz_clip_adj_reg & ~PA_CL_GB_HORZ_CLIP_ADJ_DATA_REGISTER_MASK) | (data_register << PA_CL_GB_HORZ_CLIP_ADJ_DATA_REGISTER_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_cl_gb_horz_clip_adj_t {
+ unsigned int data_register : PA_CL_GB_HORZ_CLIP_ADJ_DATA_REGISTER_SIZE;
+ } pa_cl_gb_horz_clip_adj_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_cl_gb_horz_clip_adj_t {
+ unsigned int data_register : PA_CL_GB_HORZ_CLIP_ADJ_DATA_REGISTER_SIZE;
+ } pa_cl_gb_horz_clip_adj_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_cl_gb_horz_clip_adj_t f;
+} pa_cl_gb_horz_clip_adj_u;
+
+
+/*
+ * PA_CL_GB_HORZ_DISC_ADJ struct
+ */
+
+#define PA_CL_GB_HORZ_DISC_ADJ_DATA_REGISTER_SIZE 32
+
+#define PA_CL_GB_HORZ_DISC_ADJ_DATA_REGISTER_SHIFT 0
+
+#define PA_CL_GB_HORZ_DISC_ADJ_DATA_REGISTER_MASK 0xffffffff
+
+#define PA_CL_GB_HORZ_DISC_ADJ_MASK \
+ (PA_CL_GB_HORZ_DISC_ADJ_DATA_REGISTER_MASK)
+
+#define PA_CL_GB_HORZ_DISC_ADJ(data_register) \
+ ((data_register << PA_CL_GB_HORZ_DISC_ADJ_DATA_REGISTER_SHIFT))
+
+#define PA_CL_GB_HORZ_DISC_ADJ_GET_DATA_REGISTER(pa_cl_gb_horz_disc_adj) \
+ ((pa_cl_gb_horz_disc_adj & PA_CL_GB_HORZ_DISC_ADJ_DATA_REGISTER_MASK) >> PA_CL_GB_HORZ_DISC_ADJ_DATA_REGISTER_SHIFT)
+
+#define PA_CL_GB_HORZ_DISC_ADJ_SET_DATA_REGISTER(pa_cl_gb_horz_disc_adj_reg, data_register) \
+ pa_cl_gb_horz_disc_adj_reg = (pa_cl_gb_horz_disc_adj_reg & ~PA_CL_GB_HORZ_DISC_ADJ_DATA_REGISTER_MASK) | (data_register << PA_CL_GB_HORZ_DISC_ADJ_DATA_REGISTER_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_cl_gb_horz_disc_adj_t {
+ unsigned int data_register : PA_CL_GB_HORZ_DISC_ADJ_DATA_REGISTER_SIZE;
+ } pa_cl_gb_horz_disc_adj_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_cl_gb_horz_disc_adj_t {
+ unsigned int data_register : PA_CL_GB_HORZ_DISC_ADJ_DATA_REGISTER_SIZE;
+ } pa_cl_gb_horz_disc_adj_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_cl_gb_horz_disc_adj_t f;
+} pa_cl_gb_horz_disc_adj_u;
+
+
+/*
+ * PA_CL_ENHANCE struct
+ */
+
+#define PA_CL_ENHANCE_CLIP_VTX_REORDER_ENA_SIZE 1
+#define PA_CL_ENHANCE_ECO_SPARE3_SIZE 1
+#define PA_CL_ENHANCE_ECO_SPARE2_SIZE 1
+#define PA_CL_ENHANCE_ECO_SPARE1_SIZE 1
+#define PA_CL_ENHANCE_ECO_SPARE0_SIZE 1
+
+#define PA_CL_ENHANCE_CLIP_VTX_REORDER_ENA_SHIFT 0
+#define PA_CL_ENHANCE_ECO_SPARE3_SHIFT 28
+#define PA_CL_ENHANCE_ECO_SPARE2_SHIFT 29
+#define PA_CL_ENHANCE_ECO_SPARE1_SHIFT 30
+#define PA_CL_ENHANCE_ECO_SPARE0_SHIFT 31
+
+#define PA_CL_ENHANCE_CLIP_VTX_REORDER_ENA_MASK 0x00000001
+#define PA_CL_ENHANCE_ECO_SPARE3_MASK 0x10000000
+#define PA_CL_ENHANCE_ECO_SPARE2_MASK 0x20000000
+#define PA_CL_ENHANCE_ECO_SPARE1_MASK 0x40000000
+#define PA_CL_ENHANCE_ECO_SPARE0_MASK 0x80000000
+
+#define PA_CL_ENHANCE_MASK \
+ (PA_CL_ENHANCE_CLIP_VTX_REORDER_ENA_MASK | \
+ PA_CL_ENHANCE_ECO_SPARE3_MASK | \
+ PA_CL_ENHANCE_ECO_SPARE2_MASK | \
+ PA_CL_ENHANCE_ECO_SPARE1_MASK | \
+ PA_CL_ENHANCE_ECO_SPARE0_MASK)
+
+#define PA_CL_ENHANCE(clip_vtx_reorder_ena, eco_spare3, eco_spare2, eco_spare1, eco_spare0) \
+ ((clip_vtx_reorder_ena << PA_CL_ENHANCE_CLIP_VTX_REORDER_ENA_SHIFT) | \
+ (eco_spare3 << PA_CL_ENHANCE_ECO_SPARE3_SHIFT) | \
+ (eco_spare2 << PA_CL_ENHANCE_ECO_SPARE2_SHIFT) | \
+ (eco_spare1 << PA_CL_ENHANCE_ECO_SPARE1_SHIFT) | \
+ (eco_spare0 << PA_CL_ENHANCE_ECO_SPARE0_SHIFT))
+
+#define PA_CL_ENHANCE_GET_CLIP_VTX_REORDER_ENA(pa_cl_enhance) \
+ ((pa_cl_enhance & PA_CL_ENHANCE_CLIP_VTX_REORDER_ENA_MASK) >> PA_CL_ENHANCE_CLIP_VTX_REORDER_ENA_SHIFT)
+#define PA_CL_ENHANCE_GET_ECO_SPARE3(pa_cl_enhance) \
+ ((pa_cl_enhance & PA_CL_ENHANCE_ECO_SPARE3_MASK) >> PA_CL_ENHANCE_ECO_SPARE3_SHIFT)
+#define PA_CL_ENHANCE_GET_ECO_SPARE2(pa_cl_enhance) \
+ ((pa_cl_enhance & PA_CL_ENHANCE_ECO_SPARE2_MASK) >> PA_CL_ENHANCE_ECO_SPARE2_SHIFT)
+#define PA_CL_ENHANCE_GET_ECO_SPARE1(pa_cl_enhance) \
+ ((pa_cl_enhance & PA_CL_ENHANCE_ECO_SPARE1_MASK) >> PA_CL_ENHANCE_ECO_SPARE1_SHIFT)
+#define PA_CL_ENHANCE_GET_ECO_SPARE0(pa_cl_enhance) \
+ ((pa_cl_enhance & PA_CL_ENHANCE_ECO_SPARE0_MASK) >> PA_CL_ENHANCE_ECO_SPARE0_SHIFT)
+
+#define PA_CL_ENHANCE_SET_CLIP_VTX_REORDER_ENA(pa_cl_enhance_reg, clip_vtx_reorder_ena) \
+ pa_cl_enhance_reg = (pa_cl_enhance_reg & ~PA_CL_ENHANCE_CLIP_VTX_REORDER_ENA_MASK) | (clip_vtx_reorder_ena << PA_CL_ENHANCE_CLIP_VTX_REORDER_ENA_SHIFT)
+#define PA_CL_ENHANCE_SET_ECO_SPARE3(pa_cl_enhance_reg, eco_spare3) \
+ pa_cl_enhance_reg = (pa_cl_enhance_reg & ~PA_CL_ENHANCE_ECO_SPARE3_MASK) | (eco_spare3 << PA_CL_ENHANCE_ECO_SPARE3_SHIFT)
+#define PA_CL_ENHANCE_SET_ECO_SPARE2(pa_cl_enhance_reg, eco_spare2) \
+ pa_cl_enhance_reg = (pa_cl_enhance_reg & ~PA_CL_ENHANCE_ECO_SPARE2_MASK) | (eco_spare2 << PA_CL_ENHANCE_ECO_SPARE2_SHIFT)
+#define PA_CL_ENHANCE_SET_ECO_SPARE1(pa_cl_enhance_reg, eco_spare1) \
+ pa_cl_enhance_reg = (pa_cl_enhance_reg & ~PA_CL_ENHANCE_ECO_SPARE1_MASK) | (eco_spare1 << PA_CL_ENHANCE_ECO_SPARE1_SHIFT)
+#define PA_CL_ENHANCE_SET_ECO_SPARE0(pa_cl_enhance_reg, eco_spare0) \
+ pa_cl_enhance_reg = (pa_cl_enhance_reg & ~PA_CL_ENHANCE_ECO_SPARE0_MASK) | (eco_spare0 << PA_CL_ENHANCE_ECO_SPARE0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_cl_enhance_t {
+ unsigned int clip_vtx_reorder_ena : PA_CL_ENHANCE_CLIP_VTX_REORDER_ENA_SIZE;
+ unsigned int : 27;
+ unsigned int eco_spare3 : PA_CL_ENHANCE_ECO_SPARE3_SIZE;
+ unsigned int eco_spare2 : PA_CL_ENHANCE_ECO_SPARE2_SIZE;
+ unsigned int eco_spare1 : PA_CL_ENHANCE_ECO_SPARE1_SIZE;
+ unsigned int eco_spare0 : PA_CL_ENHANCE_ECO_SPARE0_SIZE;
+ } pa_cl_enhance_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_cl_enhance_t {
+ unsigned int eco_spare0 : PA_CL_ENHANCE_ECO_SPARE0_SIZE;
+ unsigned int eco_spare1 : PA_CL_ENHANCE_ECO_SPARE1_SIZE;
+ unsigned int eco_spare2 : PA_CL_ENHANCE_ECO_SPARE2_SIZE;
+ unsigned int eco_spare3 : PA_CL_ENHANCE_ECO_SPARE3_SIZE;
+ unsigned int : 27;
+ unsigned int clip_vtx_reorder_ena : PA_CL_ENHANCE_CLIP_VTX_REORDER_ENA_SIZE;
+ } pa_cl_enhance_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_cl_enhance_t f;
+} pa_cl_enhance_u;
+
+
+/*
+ * PA_SC_ENHANCE struct
+ */
+
+#define PA_SC_ENHANCE_ECO_SPARE3_SIZE 1
+#define PA_SC_ENHANCE_ECO_SPARE2_SIZE 1
+#define PA_SC_ENHANCE_ECO_SPARE1_SIZE 1
+#define PA_SC_ENHANCE_ECO_SPARE0_SIZE 1
+
+#define PA_SC_ENHANCE_ECO_SPARE3_SHIFT 28
+#define PA_SC_ENHANCE_ECO_SPARE2_SHIFT 29
+#define PA_SC_ENHANCE_ECO_SPARE1_SHIFT 30
+#define PA_SC_ENHANCE_ECO_SPARE0_SHIFT 31
+
+#define PA_SC_ENHANCE_ECO_SPARE3_MASK 0x10000000
+#define PA_SC_ENHANCE_ECO_SPARE2_MASK 0x20000000
+#define PA_SC_ENHANCE_ECO_SPARE1_MASK 0x40000000
+#define PA_SC_ENHANCE_ECO_SPARE0_MASK 0x80000000
+
+#define PA_SC_ENHANCE_MASK \
+ (PA_SC_ENHANCE_ECO_SPARE3_MASK | \
+ PA_SC_ENHANCE_ECO_SPARE2_MASK | \
+ PA_SC_ENHANCE_ECO_SPARE1_MASK | \
+ PA_SC_ENHANCE_ECO_SPARE0_MASK)
+
+#define PA_SC_ENHANCE(eco_spare3, eco_spare2, eco_spare1, eco_spare0) \
+ ((eco_spare3 << PA_SC_ENHANCE_ECO_SPARE3_SHIFT) | \
+ (eco_spare2 << PA_SC_ENHANCE_ECO_SPARE2_SHIFT) | \
+ (eco_spare1 << PA_SC_ENHANCE_ECO_SPARE1_SHIFT) | \
+ (eco_spare0 << PA_SC_ENHANCE_ECO_SPARE0_SHIFT))
+
+#define PA_SC_ENHANCE_GET_ECO_SPARE3(pa_sc_enhance) \
+ ((pa_sc_enhance & PA_SC_ENHANCE_ECO_SPARE3_MASK) >> PA_SC_ENHANCE_ECO_SPARE3_SHIFT)
+#define PA_SC_ENHANCE_GET_ECO_SPARE2(pa_sc_enhance) \
+ ((pa_sc_enhance & PA_SC_ENHANCE_ECO_SPARE2_MASK) >> PA_SC_ENHANCE_ECO_SPARE2_SHIFT)
+#define PA_SC_ENHANCE_GET_ECO_SPARE1(pa_sc_enhance) \
+ ((pa_sc_enhance & PA_SC_ENHANCE_ECO_SPARE1_MASK) >> PA_SC_ENHANCE_ECO_SPARE1_SHIFT)
+#define PA_SC_ENHANCE_GET_ECO_SPARE0(pa_sc_enhance) \
+ ((pa_sc_enhance & PA_SC_ENHANCE_ECO_SPARE0_MASK) >> PA_SC_ENHANCE_ECO_SPARE0_SHIFT)
+
+#define PA_SC_ENHANCE_SET_ECO_SPARE3(pa_sc_enhance_reg, eco_spare3) \
+ pa_sc_enhance_reg = (pa_sc_enhance_reg & ~PA_SC_ENHANCE_ECO_SPARE3_MASK) | (eco_spare3 << PA_SC_ENHANCE_ECO_SPARE3_SHIFT)
+#define PA_SC_ENHANCE_SET_ECO_SPARE2(pa_sc_enhance_reg, eco_spare2) \
+ pa_sc_enhance_reg = (pa_sc_enhance_reg & ~PA_SC_ENHANCE_ECO_SPARE2_MASK) | (eco_spare2 << PA_SC_ENHANCE_ECO_SPARE2_SHIFT)
+#define PA_SC_ENHANCE_SET_ECO_SPARE1(pa_sc_enhance_reg, eco_spare1) \
+ pa_sc_enhance_reg = (pa_sc_enhance_reg & ~PA_SC_ENHANCE_ECO_SPARE1_MASK) | (eco_spare1 << PA_SC_ENHANCE_ECO_SPARE1_SHIFT)
+#define PA_SC_ENHANCE_SET_ECO_SPARE0(pa_sc_enhance_reg, eco_spare0) \
+ pa_sc_enhance_reg = (pa_sc_enhance_reg & ~PA_SC_ENHANCE_ECO_SPARE0_MASK) | (eco_spare0 << PA_SC_ENHANCE_ECO_SPARE0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_enhance_t {
+ unsigned int : 28;
+ unsigned int eco_spare3 : PA_SC_ENHANCE_ECO_SPARE3_SIZE;
+ unsigned int eco_spare2 : PA_SC_ENHANCE_ECO_SPARE2_SIZE;
+ unsigned int eco_spare1 : PA_SC_ENHANCE_ECO_SPARE1_SIZE;
+ unsigned int eco_spare0 : PA_SC_ENHANCE_ECO_SPARE0_SIZE;
+ } pa_sc_enhance_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_enhance_t {
+ unsigned int eco_spare0 : PA_SC_ENHANCE_ECO_SPARE0_SIZE;
+ unsigned int eco_spare1 : PA_SC_ENHANCE_ECO_SPARE1_SIZE;
+ unsigned int eco_spare2 : PA_SC_ENHANCE_ECO_SPARE2_SIZE;
+ unsigned int eco_spare3 : PA_SC_ENHANCE_ECO_SPARE3_SIZE;
+ unsigned int : 28;
+ } pa_sc_enhance_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_enhance_t f;
+} pa_sc_enhance_u;
+
+
+/*
+ * PA_SU_VTX_CNTL struct
+ */
+
+#define PA_SU_VTX_CNTL_PIX_CENTER_SIZE 1
+#define PA_SU_VTX_CNTL_ROUND_MODE_SIZE 2
+#define PA_SU_VTX_CNTL_QUANT_MODE_SIZE 3
+
+#define PA_SU_VTX_CNTL_PIX_CENTER_SHIFT 0
+#define PA_SU_VTX_CNTL_ROUND_MODE_SHIFT 1
+#define PA_SU_VTX_CNTL_QUANT_MODE_SHIFT 3
+
+#define PA_SU_VTX_CNTL_PIX_CENTER_MASK 0x00000001
+#define PA_SU_VTX_CNTL_ROUND_MODE_MASK 0x00000006
+#define PA_SU_VTX_CNTL_QUANT_MODE_MASK 0x00000038
+
+#define PA_SU_VTX_CNTL_MASK \
+ (PA_SU_VTX_CNTL_PIX_CENTER_MASK | \
+ PA_SU_VTX_CNTL_ROUND_MODE_MASK | \
+ PA_SU_VTX_CNTL_QUANT_MODE_MASK)
+
+#define PA_SU_VTX_CNTL(pix_center, round_mode, quant_mode) \
+ ((pix_center << PA_SU_VTX_CNTL_PIX_CENTER_SHIFT) | \
+ (round_mode << PA_SU_VTX_CNTL_ROUND_MODE_SHIFT) | \
+ (quant_mode << PA_SU_VTX_CNTL_QUANT_MODE_SHIFT))
+
+#define PA_SU_VTX_CNTL_GET_PIX_CENTER(pa_su_vtx_cntl) \
+ ((pa_su_vtx_cntl & PA_SU_VTX_CNTL_PIX_CENTER_MASK) >> PA_SU_VTX_CNTL_PIX_CENTER_SHIFT)
+#define PA_SU_VTX_CNTL_GET_ROUND_MODE(pa_su_vtx_cntl) \
+ ((pa_su_vtx_cntl & PA_SU_VTX_CNTL_ROUND_MODE_MASK) >> PA_SU_VTX_CNTL_ROUND_MODE_SHIFT)
+#define PA_SU_VTX_CNTL_GET_QUANT_MODE(pa_su_vtx_cntl) \
+ ((pa_su_vtx_cntl & PA_SU_VTX_CNTL_QUANT_MODE_MASK) >> PA_SU_VTX_CNTL_QUANT_MODE_SHIFT)
+
+#define PA_SU_VTX_CNTL_SET_PIX_CENTER(pa_su_vtx_cntl_reg, pix_center) \
+ pa_su_vtx_cntl_reg = (pa_su_vtx_cntl_reg & ~PA_SU_VTX_CNTL_PIX_CENTER_MASK) | (pix_center << PA_SU_VTX_CNTL_PIX_CENTER_SHIFT)
+#define PA_SU_VTX_CNTL_SET_ROUND_MODE(pa_su_vtx_cntl_reg, round_mode) \
+ pa_su_vtx_cntl_reg = (pa_su_vtx_cntl_reg & ~PA_SU_VTX_CNTL_ROUND_MODE_MASK) | (round_mode << PA_SU_VTX_CNTL_ROUND_MODE_SHIFT)
+#define PA_SU_VTX_CNTL_SET_QUANT_MODE(pa_su_vtx_cntl_reg, quant_mode) \
+ pa_su_vtx_cntl_reg = (pa_su_vtx_cntl_reg & ~PA_SU_VTX_CNTL_QUANT_MODE_MASK) | (quant_mode << PA_SU_VTX_CNTL_QUANT_MODE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_vtx_cntl_t {
+ unsigned int pix_center : PA_SU_VTX_CNTL_PIX_CENTER_SIZE;
+ unsigned int round_mode : PA_SU_VTX_CNTL_ROUND_MODE_SIZE;
+ unsigned int quant_mode : PA_SU_VTX_CNTL_QUANT_MODE_SIZE;
+ unsigned int : 26;
+ } pa_su_vtx_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_vtx_cntl_t {
+ unsigned int : 26;
+ unsigned int quant_mode : PA_SU_VTX_CNTL_QUANT_MODE_SIZE;
+ unsigned int round_mode : PA_SU_VTX_CNTL_ROUND_MODE_SIZE;
+ unsigned int pix_center : PA_SU_VTX_CNTL_PIX_CENTER_SIZE;
+ } pa_su_vtx_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_vtx_cntl_t f;
+} pa_su_vtx_cntl_u;
+
+
+/*
+ * PA_SU_POINT_SIZE struct
+ */
+
+#define PA_SU_POINT_SIZE_HEIGHT_SIZE 16
+#define PA_SU_POINT_SIZE_WIDTH_SIZE 16
+
+#define PA_SU_POINT_SIZE_HEIGHT_SHIFT 0
+#define PA_SU_POINT_SIZE_WIDTH_SHIFT 16
+
+#define PA_SU_POINT_SIZE_HEIGHT_MASK 0x0000ffff
+#define PA_SU_POINT_SIZE_WIDTH_MASK 0xffff0000
+
+#define PA_SU_POINT_SIZE_MASK \
+ (PA_SU_POINT_SIZE_HEIGHT_MASK | \
+ PA_SU_POINT_SIZE_WIDTH_MASK)
+
+#define PA_SU_POINT_SIZE(height, width) \
+ ((height << PA_SU_POINT_SIZE_HEIGHT_SHIFT) | \
+ (width << PA_SU_POINT_SIZE_WIDTH_SHIFT))
+
+#define PA_SU_POINT_SIZE_GET_HEIGHT(pa_su_point_size) \
+ ((pa_su_point_size & PA_SU_POINT_SIZE_HEIGHT_MASK) >> PA_SU_POINT_SIZE_HEIGHT_SHIFT)
+#define PA_SU_POINT_SIZE_GET_WIDTH(pa_su_point_size) \
+ ((pa_su_point_size & PA_SU_POINT_SIZE_WIDTH_MASK) >> PA_SU_POINT_SIZE_WIDTH_SHIFT)
+
+#define PA_SU_POINT_SIZE_SET_HEIGHT(pa_su_point_size_reg, height) \
+ pa_su_point_size_reg = (pa_su_point_size_reg & ~PA_SU_POINT_SIZE_HEIGHT_MASK) | (height << PA_SU_POINT_SIZE_HEIGHT_SHIFT)
+#define PA_SU_POINT_SIZE_SET_WIDTH(pa_su_point_size_reg, width) \
+ pa_su_point_size_reg = (pa_su_point_size_reg & ~PA_SU_POINT_SIZE_WIDTH_MASK) | (width << PA_SU_POINT_SIZE_WIDTH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_point_size_t {
+ unsigned int height : PA_SU_POINT_SIZE_HEIGHT_SIZE;
+ unsigned int width : PA_SU_POINT_SIZE_WIDTH_SIZE;
+ } pa_su_point_size_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_point_size_t {
+ unsigned int width : PA_SU_POINT_SIZE_WIDTH_SIZE;
+ unsigned int height : PA_SU_POINT_SIZE_HEIGHT_SIZE;
+ } pa_su_point_size_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_point_size_t f;
+} pa_su_point_size_u;
+
+
+/*
+ * PA_SU_POINT_MINMAX struct
+ */
+
+#define PA_SU_POINT_MINMAX_MIN_SIZE_SIZE 16
+#define PA_SU_POINT_MINMAX_MAX_SIZE_SIZE 16
+
+#define PA_SU_POINT_MINMAX_MIN_SIZE_SHIFT 0
+#define PA_SU_POINT_MINMAX_MAX_SIZE_SHIFT 16
+
+#define PA_SU_POINT_MINMAX_MIN_SIZE_MASK 0x0000ffff
+#define PA_SU_POINT_MINMAX_MAX_SIZE_MASK 0xffff0000
+
+#define PA_SU_POINT_MINMAX_MASK \
+ (PA_SU_POINT_MINMAX_MIN_SIZE_MASK | \
+ PA_SU_POINT_MINMAX_MAX_SIZE_MASK)
+
+#define PA_SU_POINT_MINMAX(min_size, max_size) \
+ ((min_size << PA_SU_POINT_MINMAX_MIN_SIZE_SHIFT) | \
+ (max_size << PA_SU_POINT_MINMAX_MAX_SIZE_SHIFT))
+
+#define PA_SU_POINT_MINMAX_GET_MIN_SIZE(pa_su_point_minmax) \
+ ((pa_su_point_minmax & PA_SU_POINT_MINMAX_MIN_SIZE_MASK) >> PA_SU_POINT_MINMAX_MIN_SIZE_SHIFT)
+#define PA_SU_POINT_MINMAX_GET_MAX_SIZE(pa_su_point_minmax) \
+ ((pa_su_point_minmax & PA_SU_POINT_MINMAX_MAX_SIZE_MASK) >> PA_SU_POINT_MINMAX_MAX_SIZE_SHIFT)
+
+#define PA_SU_POINT_MINMAX_SET_MIN_SIZE(pa_su_point_minmax_reg, min_size) \
+ pa_su_point_minmax_reg = (pa_su_point_minmax_reg & ~PA_SU_POINT_MINMAX_MIN_SIZE_MASK) | (min_size << PA_SU_POINT_MINMAX_MIN_SIZE_SHIFT)
+#define PA_SU_POINT_MINMAX_SET_MAX_SIZE(pa_su_point_minmax_reg, max_size) \
+ pa_su_point_minmax_reg = (pa_su_point_minmax_reg & ~PA_SU_POINT_MINMAX_MAX_SIZE_MASK) | (max_size << PA_SU_POINT_MINMAX_MAX_SIZE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_point_minmax_t {
+ unsigned int min_size : PA_SU_POINT_MINMAX_MIN_SIZE_SIZE;
+ unsigned int max_size : PA_SU_POINT_MINMAX_MAX_SIZE_SIZE;
+ } pa_su_point_minmax_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_point_minmax_t {
+ unsigned int max_size : PA_SU_POINT_MINMAX_MAX_SIZE_SIZE;
+ unsigned int min_size : PA_SU_POINT_MINMAX_MIN_SIZE_SIZE;
+ } pa_su_point_minmax_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_point_minmax_t f;
+} pa_su_point_minmax_u;
+
+
+/*
+ * PA_SU_LINE_CNTL struct
+ */
+
+#define PA_SU_LINE_CNTL_WIDTH_SIZE 16
+
+#define PA_SU_LINE_CNTL_WIDTH_SHIFT 0
+
+#define PA_SU_LINE_CNTL_WIDTH_MASK 0x0000ffff
+
+#define PA_SU_LINE_CNTL_MASK \
+ (PA_SU_LINE_CNTL_WIDTH_MASK)
+
+#define PA_SU_LINE_CNTL(width) \
+ ((width << PA_SU_LINE_CNTL_WIDTH_SHIFT))
+
+#define PA_SU_LINE_CNTL_GET_WIDTH(pa_su_line_cntl) \
+ ((pa_su_line_cntl & PA_SU_LINE_CNTL_WIDTH_MASK) >> PA_SU_LINE_CNTL_WIDTH_SHIFT)
+
+#define PA_SU_LINE_CNTL_SET_WIDTH(pa_su_line_cntl_reg, width) \
+ pa_su_line_cntl_reg = (pa_su_line_cntl_reg & ~PA_SU_LINE_CNTL_WIDTH_MASK) | (width << PA_SU_LINE_CNTL_WIDTH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_line_cntl_t {
+ unsigned int width : PA_SU_LINE_CNTL_WIDTH_SIZE;
+ unsigned int : 16;
+ } pa_su_line_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_line_cntl_t {
+ unsigned int : 16;
+ unsigned int width : PA_SU_LINE_CNTL_WIDTH_SIZE;
+ } pa_su_line_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_line_cntl_t f;
+} pa_su_line_cntl_u;
+
+
+/*
+ * PA_SU_FACE_DATA struct
+ */
+
+#define PA_SU_FACE_DATA_BASE_ADDR_SIZE 27
+
+#define PA_SU_FACE_DATA_BASE_ADDR_SHIFT 5
+
+#define PA_SU_FACE_DATA_BASE_ADDR_MASK 0xffffffe0
+
+#define PA_SU_FACE_DATA_MASK \
+ (PA_SU_FACE_DATA_BASE_ADDR_MASK)
+
+#define PA_SU_FACE_DATA(base_addr) \
+ ((base_addr << PA_SU_FACE_DATA_BASE_ADDR_SHIFT))
+
+#define PA_SU_FACE_DATA_GET_BASE_ADDR(pa_su_face_data) \
+ ((pa_su_face_data & PA_SU_FACE_DATA_BASE_ADDR_MASK) >> PA_SU_FACE_DATA_BASE_ADDR_SHIFT)
+
+#define PA_SU_FACE_DATA_SET_BASE_ADDR(pa_su_face_data_reg, base_addr) \
+ pa_su_face_data_reg = (pa_su_face_data_reg & ~PA_SU_FACE_DATA_BASE_ADDR_MASK) | (base_addr << PA_SU_FACE_DATA_BASE_ADDR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_face_data_t {
+ unsigned int : 5;
+ unsigned int base_addr : PA_SU_FACE_DATA_BASE_ADDR_SIZE;
+ } pa_su_face_data_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_face_data_t {
+ unsigned int base_addr : PA_SU_FACE_DATA_BASE_ADDR_SIZE;
+ unsigned int : 5;
+ } pa_su_face_data_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_face_data_t f;
+} pa_su_face_data_u;
+
+
+/*
+ * PA_SU_SC_MODE_CNTL struct
+ */
+
+#define PA_SU_SC_MODE_CNTL_CULL_FRONT_SIZE 1
+#define PA_SU_SC_MODE_CNTL_CULL_BACK_SIZE 1
+#define PA_SU_SC_MODE_CNTL_FACE_SIZE 1
+#define PA_SU_SC_MODE_CNTL_POLY_MODE_SIZE 2
+#define PA_SU_SC_MODE_CNTL_POLYMODE_FRONT_PTYPE_SIZE 3
+#define PA_SU_SC_MODE_CNTL_POLYMODE_BACK_PTYPE_SIZE 3
+#define PA_SU_SC_MODE_CNTL_POLY_OFFSET_FRONT_ENABLE_SIZE 1
+#define PA_SU_SC_MODE_CNTL_POLY_OFFSET_BACK_ENABLE_SIZE 1
+#define PA_SU_SC_MODE_CNTL_POLY_OFFSET_PARA_ENABLE_SIZE 1
+#define PA_SU_SC_MODE_CNTL_MSAA_ENABLE_SIZE 1
+#define PA_SU_SC_MODE_CNTL_VTX_WINDOW_OFFSET_ENABLE_SIZE 1
+#define PA_SU_SC_MODE_CNTL_LINE_STIPPLE_ENABLE_SIZE 1
+#define PA_SU_SC_MODE_CNTL_PROVOKING_VTX_LAST_SIZE 1
+#define PA_SU_SC_MODE_CNTL_PERSP_CORR_DIS_SIZE 1
+#define PA_SU_SC_MODE_CNTL_MULTI_PRIM_IB_ENA_SIZE 1
+#define PA_SU_SC_MODE_CNTL_QUAD_ORDER_ENABLE_SIZE 1
+#define PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_ALL_TRI_SIZE 1
+#define PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_FIRST_TRI_NEW_STATE_SIZE 1
+#define PA_SU_SC_MODE_CNTL_ZERO_AREA_FACENESS_SIZE 1
+#define PA_SU_SC_MODE_CNTL_FACE_KILL_ENABLE_SIZE 1
+#define PA_SU_SC_MODE_CNTL_FACE_WRITE_ENABLE_SIZE 1
+
+#define PA_SU_SC_MODE_CNTL_CULL_FRONT_SHIFT 0
+#define PA_SU_SC_MODE_CNTL_CULL_BACK_SHIFT 1
+#define PA_SU_SC_MODE_CNTL_FACE_SHIFT 2
+#define PA_SU_SC_MODE_CNTL_POLY_MODE_SHIFT 3
+#define PA_SU_SC_MODE_CNTL_POLYMODE_FRONT_PTYPE_SHIFT 5
+#define PA_SU_SC_MODE_CNTL_POLYMODE_BACK_PTYPE_SHIFT 8
+#define PA_SU_SC_MODE_CNTL_POLY_OFFSET_FRONT_ENABLE_SHIFT 11
+#define PA_SU_SC_MODE_CNTL_POLY_OFFSET_BACK_ENABLE_SHIFT 12
+#define PA_SU_SC_MODE_CNTL_POLY_OFFSET_PARA_ENABLE_SHIFT 13
+#define PA_SU_SC_MODE_CNTL_MSAA_ENABLE_SHIFT 15
+#define PA_SU_SC_MODE_CNTL_VTX_WINDOW_OFFSET_ENABLE_SHIFT 16
+#define PA_SU_SC_MODE_CNTL_LINE_STIPPLE_ENABLE_SHIFT 18
+#define PA_SU_SC_MODE_CNTL_PROVOKING_VTX_LAST_SHIFT 19
+#define PA_SU_SC_MODE_CNTL_PERSP_CORR_DIS_SHIFT 20
+#define PA_SU_SC_MODE_CNTL_MULTI_PRIM_IB_ENA_SHIFT 21
+#define PA_SU_SC_MODE_CNTL_QUAD_ORDER_ENABLE_SHIFT 23
+#define PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_ALL_TRI_SHIFT 25
+#define PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_FIRST_TRI_NEW_STATE_SHIFT 26
+#define PA_SU_SC_MODE_CNTL_ZERO_AREA_FACENESS_SHIFT 29
+#define PA_SU_SC_MODE_CNTL_FACE_KILL_ENABLE_SHIFT 30
+#define PA_SU_SC_MODE_CNTL_FACE_WRITE_ENABLE_SHIFT 31
+
+#define PA_SU_SC_MODE_CNTL_CULL_FRONT_MASK 0x00000001
+#define PA_SU_SC_MODE_CNTL_CULL_BACK_MASK 0x00000002
+#define PA_SU_SC_MODE_CNTL_FACE_MASK 0x00000004
+#define PA_SU_SC_MODE_CNTL_POLY_MODE_MASK 0x00000018
+#define PA_SU_SC_MODE_CNTL_POLYMODE_FRONT_PTYPE_MASK 0x000000e0
+#define PA_SU_SC_MODE_CNTL_POLYMODE_BACK_PTYPE_MASK 0x00000700
+#define PA_SU_SC_MODE_CNTL_POLY_OFFSET_FRONT_ENABLE_MASK 0x00000800
+#define PA_SU_SC_MODE_CNTL_POLY_OFFSET_BACK_ENABLE_MASK 0x00001000
+#define PA_SU_SC_MODE_CNTL_POLY_OFFSET_PARA_ENABLE_MASK 0x00002000
+#define PA_SU_SC_MODE_CNTL_MSAA_ENABLE_MASK 0x00008000
+#define PA_SU_SC_MODE_CNTL_VTX_WINDOW_OFFSET_ENABLE_MASK 0x00010000
+#define PA_SU_SC_MODE_CNTL_LINE_STIPPLE_ENABLE_MASK 0x00040000
+#define PA_SU_SC_MODE_CNTL_PROVOKING_VTX_LAST_MASK 0x00080000
+#define PA_SU_SC_MODE_CNTL_PERSP_CORR_DIS_MASK 0x00100000
+#define PA_SU_SC_MODE_CNTL_MULTI_PRIM_IB_ENA_MASK 0x00200000
+#define PA_SU_SC_MODE_CNTL_QUAD_ORDER_ENABLE_MASK 0x00800000
+#define PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_ALL_TRI_MASK 0x02000000
+#define PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_FIRST_TRI_NEW_STATE_MASK 0x04000000
+#define PA_SU_SC_MODE_CNTL_ZERO_AREA_FACENESS_MASK 0x20000000
+#define PA_SU_SC_MODE_CNTL_FACE_KILL_ENABLE_MASK 0x40000000
+#define PA_SU_SC_MODE_CNTL_FACE_WRITE_ENABLE_MASK 0x80000000
+
+#define PA_SU_SC_MODE_CNTL_MASK \
+ (PA_SU_SC_MODE_CNTL_CULL_FRONT_MASK | \
+ PA_SU_SC_MODE_CNTL_CULL_BACK_MASK | \
+ PA_SU_SC_MODE_CNTL_FACE_MASK | \
+ PA_SU_SC_MODE_CNTL_POLY_MODE_MASK | \
+ PA_SU_SC_MODE_CNTL_POLYMODE_FRONT_PTYPE_MASK | \
+ PA_SU_SC_MODE_CNTL_POLYMODE_BACK_PTYPE_MASK | \
+ PA_SU_SC_MODE_CNTL_POLY_OFFSET_FRONT_ENABLE_MASK | \
+ PA_SU_SC_MODE_CNTL_POLY_OFFSET_BACK_ENABLE_MASK | \
+ PA_SU_SC_MODE_CNTL_POLY_OFFSET_PARA_ENABLE_MASK | \
+ PA_SU_SC_MODE_CNTL_MSAA_ENABLE_MASK | \
+ PA_SU_SC_MODE_CNTL_VTX_WINDOW_OFFSET_ENABLE_MASK | \
+ PA_SU_SC_MODE_CNTL_LINE_STIPPLE_ENABLE_MASK | \
+ PA_SU_SC_MODE_CNTL_PROVOKING_VTX_LAST_MASK | \
+ PA_SU_SC_MODE_CNTL_PERSP_CORR_DIS_MASK | \
+ PA_SU_SC_MODE_CNTL_MULTI_PRIM_IB_ENA_MASK | \
+ PA_SU_SC_MODE_CNTL_QUAD_ORDER_ENABLE_MASK | \
+ PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_ALL_TRI_MASK | \
+ PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_FIRST_TRI_NEW_STATE_MASK | \
+ PA_SU_SC_MODE_CNTL_ZERO_AREA_FACENESS_MASK | \
+ PA_SU_SC_MODE_CNTL_FACE_KILL_ENABLE_MASK | \
+ PA_SU_SC_MODE_CNTL_FACE_WRITE_ENABLE_MASK)
+
+#define PA_SU_SC_MODE_CNTL(cull_front, cull_back, face, poly_mode, polymode_front_ptype, polymode_back_ptype, poly_offset_front_enable, poly_offset_back_enable, poly_offset_para_enable, msaa_enable, vtx_window_offset_enable, line_stipple_enable, provoking_vtx_last, persp_corr_dis, multi_prim_ib_ena, quad_order_enable, wait_rb_idle_all_tri, wait_rb_idle_first_tri_new_state, zero_area_faceness, face_kill_enable, face_write_enable) \
+ ((cull_front << PA_SU_SC_MODE_CNTL_CULL_FRONT_SHIFT) | \
+ (cull_back << PA_SU_SC_MODE_CNTL_CULL_BACK_SHIFT) | \
+ (face << PA_SU_SC_MODE_CNTL_FACE_SHIFT) | \
+ (poly_mode << PA_SU_SC_MODE_CNTL_POLY_MODE_SHIFT) | \
+ (polymode_front_ptype << PA_SU_SC_MODE_CNTL_POLYMODE_FRONT_PTYPE_SHIFT) | \
+ (polymode_back_ptype << PA_SU_SC_MODE_CNTL_POLYMODE_BACK_PTYPE_SHIFT) | \
+ (poly_offset_front_enable << PA_SU_SC_MODE_CNTL_POLY_OFFSET_FRONT_ENABLE_SHIFT) | \
+ (poly_offset_back_enable << PA_SU_SC_MODE_CNTL_POLY_OFFSET_BACK_ENABLE_SHIFT) | \
+ (poly_offset_para_enable << PA_SU_SC_MODE_CNTL_POLY_OFFSET_PARA_ENABLE_SHIFT) | \
+ (msaa_enable << PA_SU_SC_MODE_CNTL_MSAA_ENABLE_SHIFT) | \
+ (vtx_window_offset_enable << PA_SU_SC_MODE_CNTL_VTX_WINDOW_OFFSET_ENABLE_SHIFT) | \
+ (line_stipple_enable << PA_SU_SC_MODE_CNTL_LINE_STIPPLE_ENABLE_SHIFT) | \
+ (provoking_vtx_last << PA_SU_SC_MODE_CNTL_PROVOKING_VTX_LAST_SHIFT) | \
+ (persp_corr_dis << PA_SU_SC_MODE_CNTL_PERSP_CORR_DIS_SHIFT) | \
+ (multi_prim_ib_ena << PA_SU_SC_MODE_CNTL_MULTI_PRIM_IB_ENA_SHIFT) | \
+ (quad_order_enable << PA_SU_SC_MODE_CNTL_QUAD_ORDER_ENABLE_SHIFT) | \
+ (wait_rb_idle_all_tri << PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_ALL_TRI_SHIFT) | \
+ (wait_rb_idle_first_tri_new_state << PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_FIRST_TRI_NEW_STATE_SHIFT) | \
+ (zero_area_faceness << PA_SU_SC_MODE_CNTL_ZERO_AREA_FACENESS_SHIFT) | \
+ (face_kill_enable << PA_SU_SC_MODE_CNTL_FACE_KILL_ENABLE_SHIFT) | \
+ (face_write_enable << PA_SU_SC_MODE_CNTL_FACE_WRITE_ENABLE_SHIFT))
+
+#define PA_SU_SC_MODE_CNTL_GET_CULL_FRONT(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_CULL_FRONT_MASK) >> PA_SU_SC_MODE_CNTL_CULL_FRONT_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_CULL_BACK(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_CULL_BACK_MASK) >> PA_SU_SC_MODE_CNTL_CULL_BACK_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_FACE(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_FACE_MASK) >> PA_SU_SC_MODE_CNTL_FACE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_POLY_MODE(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_POLY_MODE_MASK) >> PA_SU_SC_MODE_CNTL_POLY_MODE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_POLYMODE_FRONT_PTYPE(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_POLYMODE_FRONT_PTYPE_MASK) >> PA_SU_SC_MODE_CNTL_POLYMODE_FRONT_PTYPE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_POLYMODE_BACK_PTYPE(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_POLYMODE_BACK_PTYPE_MASK) >> PA_SU_SC_MODE_CNTL_POLYMODE_BACK_PTYPE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_POLY_OFFSET_FRONT_ENABLE(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_POLY_OFFSET_FRONT_ENABLE_MASK) >> PA_SU_SC_MODE_CNTL_POLY_OFFSET_FRONT_ENABLE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_POLY_OFFSET_BACK_ENABLE(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_POLY_OFFSET_BACK_ENABLE_MASK) >> PA_SU_SC_MODE_CNTL_POLY_OFFSET_BACK_ENABLE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_POLY_OFFSET_PARA_ENABLE(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_POLY_OFFSET_PARA_ENABLE_MASK) >> PA_SU_SC_MODE_CNTL_POLY_OFFSET_PARA_ENABLE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_MSAA_ENABLE(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_MSAA_ENABLE_MASK) >> PA_SU_SC_MODE_CNTL_MSAA_ENABLE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_VTX_WINDOW_OFFSET_ENABLE(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_VTX_WINDOW_OFFSET_ENABLE_MASK) >> PA_SU_SC_MODE_CNTL_VTX_WINDOW_OFFSET_ENABLE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_LINE_STIPPLE_ENABLE(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_LINE_STIPPLE_ENABLE_MASK) >> PA_SU_SC_MODE_CNTL_LINE_STIPPLE_ENABLE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_PROVOKING_VTX_LAST(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_PROVOKING_VTX_LAST_MASK) >> PA_SU_SC_MODE_CNTL_PROVOKING_VTX_LAST_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_PERSP_CORR_DIS(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_PERSP_CORR_DIS_MASK) >> PA_SU_SC_MODE_CNTL_PERSP_CORR_DIS_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_MULTI_PRIM_IB_ENA(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_MULTI_PRIM_IB_ENA_MASK) >> PA_SU_SC_MODE_CNTL_MULTI_PRIM_IB_ENA_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_QUAD_ORDER_ENABLE(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_QUAD_ORDER_ENABLE_MASK) >> PA_SU_SC_MODE_CNTL_QUAD_ORDER_ENABLE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_WAIT_RB_IDLE_ALL_TRI(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_ALL_TRI_MASK) >> PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_ALL_TRI_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_WAIT_RB_IDLE_FIRST_TRI_NEW_STATE(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_FIRST_TRI_NEW_STATE_MASK) >> PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_FIRST_TRI_NEW_STATE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_ZERO_AREA_FACENESS(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_ZERO_AREA_FACENESS_MASK) >> PA_SU_SC_MODE_CNTL_ZERO_AREA_FACENESS_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_FACE_KILL_ENABLE(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_FACE_KILL_ENABLE_MASK) >> PA_SU_SC_MODE_CNTL_FACE_KILL_ENABLE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_FACE_WRITE_ENABLE(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_FACE_WRITE_ENABLE_MASK) >> PA_SU_SC_MODE_CNTL_FACE_WRITE_ENABLE_SHIFT)
+
+#define PA_SU_SC_MODE_CNTL_SET_CULL_FRONT(pa_su_sc_mode_cntl_reg, cull_front) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_CULL_FRONT_MASK) | (cull_front << PA_SU_SC_MODE_CNTL_CULL_FRONT_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_CULL_BACK(pa_su_sc_mode_cntl_reg, cull_back) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_CULL_BACK_MASK) | (cull_back << PA_SU_SC_MODE_CNTL_CULL_BACK_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_FACE(pa_su_sc_mode_cntl_reg, face) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_FACE_MASK) | (face << PA_SU_SC_MODE_CNTL_FACE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_POLY_MODE(pa_su_sc_mode_cntl_reg, poly_mode) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_POLY_MODE_MASK) | (poly_mode << PA_SU_SC_MODE_CNTL_POLY_MODE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_POLYMODE_FRONT_PTYPE(pa_su_sc_mode_cntl_reg, polymode_front_ptype) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_POLYMODE_FRONT_PTYPE_MASK) | (polymode_front_ptype << PA_SU_SC_MODE_CNTL_POLYMODE_FRONT_PTYPE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_POLYMODE_BACK_PTYPE(pa_su_sc_mode_cntl_reg, polymode_back_ptype) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_POLYMODE_BACK_PTYPE_MASK) | (polymode_back_ptype << PA_SU_SC_MODE_CNTL_POLYMODE_BACK_PTYPE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_POLY_OFFSET_FRONT_ENABLE(pa_su_sc_mode_cntl_reg, poly_offset_front_enable) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_POLY_OFFSET_FRONT_ENABLE_MASK) | (poly_offset_front_enable << PA_SU_SC_MODE_CNTL_POLY_OFFSET_FRONT_ENABLE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_POLY_OFFSET_BACK_ENABLE(pa_su_sc_mode_cntl_reg, poly_offset_back_enable) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_POLY_OFFSET_BACK_ENABLE_MASK) | (poly_offset_back_enable << PA_SU_SC_MODE_CNTL_POLY_OFFSET_BACK_ENABLE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_POLY_OFFSET_PARA_ENABLE(pa_su_sc_mode_cntl_reg, poly_offset_para_enable) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_POLY_OFFSET_PARA_ENABLE_MASK) | (poly_offset_para_enable << PA_SU_SC_MODE_CNTL_POLY_OFFSET_PARA_ENABLE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_MSAA_ENABLE(pa_su_sc_mode_cntl_reg, msaa_enable) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_MSAA_ENABLE_MASK) | (msaa_enable << PA_SU_SC_MODE_CNTL_MSAA_ENABLE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_VTX_WINDOW_OFFSET_ENABLE(pa_su_sc_mode_cntl_reg, vtx_window_offset_enable) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_VTX_WINDOW_OFFSET_ENABLE_MASK) | (vtx_window_offset_enable << PA_SU_SC_MODE_CNTL_VTX_WINDOW_OFFSET_ENABLE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_LINE_STIPPLE_ENABLE(pa_su_sc_mode_cntl_reg, line_stipple_enable) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_LINE_STIPPLE_ENABLE_MASK) | (line_stipple_enable << PA_SU_SC_MODE_CNTL_LINE_STIPPLE_ENABLE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_PROVOKING_VTX_LAST(pa_su_sc_mode_cntl_reg, provoking_vtx_last) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_PROVOKING_VTX_LAST_MASK) | (provoking_vtx_last << PA_SU_SC_MODE_CNTL_PROVOKING_VTX_LAST_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_PERSP_CORR_DIS(pa_su_sc_mode_cntl_reg, persp_corr_dis) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_PERSP_CORR_DIS_MASK) | (persp_corr_dis << PA_SU_SC_MODE_CNTL_PERSP_CORR_DIS_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_MULTI_PRIM_IB_ENA(pa_su_sc_mode_cntl_reg, multi_prim_ib_ena) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_MULTI_PRIM_IB_ENA_MASK) | (multi_prim_ib_ena << PA_SU_SC_MODE_CNTL_MULTI_PRIM_IB_ENA_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_QUAD_ORDER_ENABLE(pa_su_sc_mode_cntl_reg, quad_order_enable) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_QUAD_ORDER_ENABLE_MASK) | (quad_order_enable << PA_SU_SC_MODE_CNTL_QUAD_ORDER_ENABLE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_WAIT_RB_IDLE_ALL_TRI(pa_su_sc_mode_cntl_reg, wait_rb_idle_all_tri) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_ALL_TRI_MASK) | (wait_rb_idle_all_tri << PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_ALL_TRI_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_WAIT_RB_IDLE_FIRST_TRI_NEW_STATE(pa_su_sc_mode_cntl_reg, wait_rb_idle_first_tri_new_state) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_FIRST_TRI_NEW_STATE_MASK) | (wait_rb_idle_first_tri_new_state << PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_FIRST_TRI_NEW_STATE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_ZERO_AREA_FACENESS(pa_su_sc_mode_cntl_reg, zero_area_faceness) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_ZERO_AREA_FACENESS_MASK) | (zero_area_faceness << PA_SU_SC_MODE_CNTL_ZERO_AREA_FACENESS_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_FACE_KILL_ENABLE(pa_su_sc_mode_cntl_reg, face_kill_enable) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_FACE_KILL_ENABLE_MASK) | (face_kill_enable << PA_SU_SC_MODE_CNTL_FACE_KILL_ENABLE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_FACE_WRITE_ENABLE(pa_su_sc_mode_cntl_reg, face_write_enable) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_FACE_WRITE_ENABLE_MASK) | (face_write_enable << PA_SU_SC_MODE_CNTL_FACE_WRITE_ENABLE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_sc_mode_cntl_t {
+ unsigned int cull_front : PA_SU_SC_MODE_CNTL_CULL_FRONT_SIZE;
+ unsigned int cull_back : PA_SU_SC_MODE_CNTL_CULL_BACK_SIZE;
+ unsigned int face : PA_SU_SC_MODE_CNTL_FACE_SIZE;
+ unsigned int poly_mode : PA_SU_SC_MODE_CNTL_POLY_MODE_SIZE;
+ unsigned int polymode_front_ptype : PA_SU_SC_MODE_CNTL_POLYMODE_FRONT_PTYPE_SIZE;
+ unsigned int polymode_back_ptype : PA_SU_SC_MODE_CNTL_POLYMODE_BACK_PTYPE_SIZE;
+ unsigned int poly_offset_front_enable : PA_SU_SC_MODE_CNTL_POLY_OFFSET_FRONT_ENABLE_SIZE;
+ unsigned int poly_offset_back_enable : PA_SU_SC_MODE_CNTL_POLY_OFFSET_BACK_ENABLE_SIZE;
+ unsigned int poly_offset_para_enable : PA_SU_SC_MODE_CNTL_POLY_OFFSET_PARA_ENABLE_SIZE;
+ unsigned int : 1;
+ unsigned int msaa_enable : PA_SU_SC_MODE_CNTL_MSAA_ENABLE_SIZE;
+ unsigned int vtx_window_offset_enable : PA_SU_SC_MODE_CNTL_VTX_WINDOW_OFFSET_ENABLE_SIZE;
+ unsigned int : 1;
+ unsigned int line_stipple_enable : PA_SU_SC_MODE_CNTL_LINE_STIPPLE_ENABLE_SIZE;
+ unsigned int provoking_vtx_last : PA_SU_SC_MODE_CNTL_PROVOKING_VTX_LAST_SIZE;
+ unsigned int persp_corr_dis : PA_SU_SC_MODE_CNTL_PERSP_CORR_DIS_SIZE;
+ unsigned int multi_prim_ib_ena : PA_SU_SC_MODE_CNTL_MULTI_PRIM_IB_ENA_SIZE;
+ unsigned int : 1;
+ unsigned int quad_order_enable : PA_SU_SC_MODE_CNTL_QUAD_ORDER_ENABLE_SIZE;
+ unsigned int : 1;
+ unsigned int wait_rb_idle_all_tri : PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_ALL_TRI_SIZE;
+ unsigned int wait_rb_idle_first_tri_new_state : PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_FIRST_TRI_NEW_STATE_SIZE;
+ unsigned int : 2;
+ unsigned int zero_area_faceness : PA_SU_SC_MODE_CNTL_ZERO_AREA_FACENESS_SIZE;
+ unsigned int face_kill_enable : PA_SU_SC_MODE_CNTL_FACE_KILL_ENABLE_SIZE;
+ unsigned int face_write_enable : PA_SU_SC_MODE_CNTL_FACE_WRITE_ENABLE_SIZE;
+ } pa_su_sc_mode_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_sc_mode_cntl_t {
+ unsigned int face_write_enable : PA_SU_SC_MODE_CNTL_FACE_WRITE_ENABLE_SIZE;
+ unsigned int face_kill_enable : PA_SU_SC_MODE_CNTL_FACE_KILL_ENABLE_SIZE;
+ unsigned int zero_area_faceness : PA_SU_SC_MODE_CNTL_ZERO_AREA_FACENESS_SIZE;
+ unsigned int : 2;
+ unsigned int wait_rb_idle_first_tri_new_state : PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_FIRST_TRI_NEW_STATE_SIZE;
+ unsigned int wait_rb_idle_all_tri : PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_ALL_TRI_SIZE;
+ unsigned int : 1;
+ unsigned int quad_order_enable : PA_SU_SC_MODE_CNTL_QUAD_ORDER_ENABLE_SIZE;
+ unsigned int : 1;
+ unsigned int multi_prim_ib_ena : PA_SU_SC_MODE_CNTL_MULTI_PRIM_IB_ENA_SIZE;
+ unsigned int persp_corr_dis : PA_SU_SC_MODE_CNTL_PERSP_CORR_DIS_SIZE;
+ unsigned int provoking_vtx_last : PA_SU_SC_MODE_CNTL_PROVOKING_VTX_LAST_SIZE;
+ unsigned int line_stipple_enable : PA_SU_SC_MODE_CNTL_LINE_STIPPLE_ENABLE_SIZE;
+ unsigned int : 1;
+ unsigned int vtx_window_offset_enable : PA_SU_SC_MODE_CNTL_VTX_WINDOW_OFFSET_ENABLE_SIZE;
+ unsigned int msaa_enable : PA_SU_SC_MODE_CNTL_MSAA_ENABLE_SIZE;
+ unsigned int : 1;
+ unsigned int poly_offset_para_enable : PA_SU_SC_MODE_CNTL_POLY_OFFSET_PARA_ENABLE_SIZE;
+ unsigned int poly_offset_back_enable : PA_SU_SC_MODE_CNTL_POLY_OFFSET_BACK_ENABLE_SIZE;
+ unsigned int poly_offset_front_enable : PA_SU_SC_MODE_CNTL_POLY_OFFSET_FRONT_ENABLE_SIZE;
+ unsigned int polymode_back_ptype : PA_SU_SC_MODE_CNTL_POLYMODE_BACK_PTYPE_SIZE;
+ unsigned int polymode_front_ptype : PA_SU_SC_MODE_CNTL_POLYMODE_FRONT_PTYPE_SIZE;
+ unsigned int poly_mode : PA_SU_SC_MODE_CNTL_POLY_MODE_SIZE;
+ unsigned int face : PA_SU_SC_MODE_CNTL_FACE_SIZE;
+ unsigned int cull_back : PA_SU_SC_MODE_CNTL_CULL_BACK_SIZE;
+ unsigned int cull_front : PA_SU_SC_MODE_CNTL_CULL_FRONT_SIZE;
+ } pa_su_sc_mode_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_sc_mode_cntl_t f;
+} pa_su_sc_mode_cntl_u;
+
+
+/*
+ * PA_SU_POLY_OFFSET_FRONT_SCALE struct
+ */
+
+#define PA_SU_POLY_OFFSET_FRONT_SCALE_SCALE_SIZE 32
+
+#define PA_SU_POLY_OFFSET_FRONT_SCALE_SCALE_SHIFT 0
+
+#define PA_SU_POLY_OFFSET_FRONT_SCALE_SCALE_MASK 0xffffffff
+
+#define PA_SU_POLY_OFFSET_FRONT_SCALE_MASK \
+ (PA_SU_POLY_OFFSET_FRONT_SCALE_SCALE_MASK)
+
+#define PA_SU_POLY_OFFSET_FRONT_SCALE(scale) \
+ ((scale << PA_SU_POLY_OFFSET_FRONT_SCALE_SCALE_SHIFT))
+
+#define PA_SU_POLY_OFFSET_FRONT_SCALE_GET_SCALE(pa_su_poly_offset_front_scale) \
+ ((pa_su_poly_offset_front_scale & PA_SU_POLY_OFFSET_FRONT_SCALE_SCALE_MASK) >> PA_SU_POLY_OFFSET_FRONT_SCALE_SCALE_SHIFT)
+
+#define PA_SU_POLY_OFFSET_FRONT_SCALE_SET_SCALE(pa_su_poly_offset_front_scale_reg, scale) \
+ pa_su_poly_offset_front_scale_reg = (pa_su_poly_offset_front_scale_reg & ~PA_SU_POLY_OFFSET_FRONT_SCALE_SCALE_MASK) | (scale << PA_SU_POLY_OFFSET_FRONT_SCALE_SCALE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_poly_offset_front_scale_t {
+ unsigned int scale : PA_SU_POLY_OFFSET_FRONT_SCALE_SCALE_SIZE;
+ } pa_su_poly_offset_front_scale_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_poly_offset_front_scale_t {
+ unsigned int scale : PA_SU_POLY_OFFSET_FRONT_SCALE_SCALE_SIZE;
+ } pa_su_poly_offset_front_scale_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_poly_offset_front_scale_t f;
+} pa_su_poly_offset_front_scale_u;
+
+
+/*
+ * PA_SU_POLY_OFFSET_FRONT_OFFSET struct
+ */
+
+#define PA_SU_POLY_OFFSET_FRONT_OFFSET_OFFSET_SIZE 32
+
+#define PA_SU_POLY_OFFSET_FRONT_OFFSET_OFFSET_SHIFT 0
+
+#define PA_SU_POLY_OFFSET_FRONT_OFFSET_OFFSET_MASK 0xffffffff
+
+#define PA_SU_POLY_OFFSET_FRONT_OFFSET_MASK \
+ (PA_SU_POLY_OFFSET_FRONT_OFFSET_OFFSET_MASK)
+
+#define PA_SU_POLY_OFFSET_FRONT_OFFSET(offset) \
+ ((offset << PA_SU_POLY_OFFSET_FRONT_OFFSET_OFFSET_SHIFT))
+
+#define PA_SU_POLY_OFFSET_FRONT_OFFSET_GET_OFFSET(pa_su_poly_offset_front_offset) \
+ ((pa_su_poly_offset_front_offset & PA_SU_POLY_OFFSET_FRONT_OFFSET_OFFSET_MASK) >> PA_SU_POLY_OFFSET_FRONT_OFFSET_OFFSET_SHIFT)
+
+#define PA_SU_POLY_OFFSET_FRONT_OFFSET_SET_OFFSET(pa_su_poly_offset_front_offset_reg, offset) \
+ pa_su_poly_offset_front_offset_reg = (pa_su_poly_offset_front_offset_reg & ~PA_SU_POLY_OFFSET_FRONT_OFFSET_OFFSET_MASK) | (offset << PA_SU_POLY_OFFSET_FRONT_OFFSET_OFFSET_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_poly_offset_front_offset_t {
+ unsigned int offset : PA_SU_POLY_OFFSET_FRONT_OFFSET_OFFSET_SIZE;
+ } pa_su_poly_offset_front_offset_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_poly_offset_front_offset_t {
+ unsigned int offset : PA_SU_POLY_OFFSET_FRONT_OFFSET_OFFSET_SIZE;
+ } pa_su_poly_offset_front_offset_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_poly_offset_front_offset_t f;
+} pa_su_poly_offset_front_offset_u;
+
+
+/*
+ * PA_SU_POLY_OFFSET_BACK_SCALE struct
+ */
+
+#define PA_SU_POLY_OFFSET_BACK_SCALE_SCALE_SIZE 32
+
+#define PA_SU_POLY_OFFSET_BACK_SCALE_SCALE_SHIFT 0
+
+#define PA_SU_POLY_OFFSET_BACK_SCALE_SCALE_MASK 0xffffffff
+
+#define PA_SU_POLY_OFFSET_BACK_SCALE_MASK \
+ (PA_SU_POLY_OFFSET_BACK_SCALE_SCALE_MASK)
+
+#define PA_SU_POLY_OFFSET_BACK_SCALE(scale) \
+ ((scale << PA_SU_POLY_OFFSET_BACK_SCALE_SCALE_SHIFT))
+
+#define PA_SU_POLY_OFFSET_BACK_SCALE_GET_SCALE(pa_su_poly_offset_back_scale) \
+ ((pa_su_poly_offset_back_scale & PA_SU_POLY_OFFSET_BACK_SCALE_SCALE_MASK) >> PA_SU_POLY_OFFSET_BACK_SCALE_SCALE_SHIFT)
+
+#define PA_SU_POLY_OFFSET_BACK_SCALE_SET_SCALE(pa_su_poly_offset_back_scale_reg, scale) \
+ pa_su_poly_offset_back_scale_reg = (pa_su_poly_offset_back_scale_reg & ~PA_SU_POLY_OFFSET_BACK_SCALE_SCALE_MASK) | (scale << PA_SU_POLY_OFFSET_BACK_SCALE_SCALE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_poly_offset_back_scale_t {
+ unsigned int scale : PA_SU_POLY_OFFSET_BACK_SCALE_SCALE_SIZE;
+ } pa_su_poly_offset_back_scale_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_poly_offset_back_scale_t {
+ unsigned int scale : PA_SU_POLY_OFFSET_BACK_SCALE_SCALE_SIZE;
+ } pa_su_poly_offset_back_scale_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_poly_offset_back_scale_t f;
+} pa_su_poly_offset_back_scale_u;
+
+
+/*
+ * PA_SU_POLY_OFFSET_BACK_OFFSET struct
+ */
+
+#define PA_SU_POLY_OFFSET_BACK_OFFSET_OFFSET_SIZE 32
+
+#define PA_SU_POLY_OFFSET_BACK_OFFSET_OFFSET_SHIFT 0
+
+#define PA_SU_POLY_OFFSET_BACK_OFFSET_OFFSET_MASK 0xffffffff
+
+#define PA_SU_POLY_OFFSET_BACK_OFFSET_MASK \
+ (PA_SU_POLY_OFFSET_BACK_OFFSET_OFFSET_MASK)
+
+#define PA_SU_POLY_OFFSET_BACK_OFFSET(offset) \
+ ((offset << PA_SU_POLY_OFFSET_BACK_OFFSET_OFFSET_SHIFT))
+
+#define PA_SU_POLY_OFFSET_BACK_OFFSET_GET_OFFSET(pa_su_poly_offset_back_offset) \
+ ((pa_su_poly_offset_back_offset & PA_SU_POLY_OFFSET_BACK_OFFSET_OFFSET_MASK) >> PA_SU_POLY_OFFSET_BACK_OFFSET_OFFSET_SHIFT)
+
+#define PA_SU_POLY_OFFSET_BACK_OFFSET_SET_OFFSET(pa_su_poly_offset_back_offset_reg, offset) \
+ pa_su_poly_offset_back_offset_reg = (pa_su_poly_offset_back_offset_reg & ~PA_SU_POLY_OFFSET_BACK_OFFSET_OFFSET_MASK) | (offset << PA_SU_POLY_OFFSET_BACK_OFFSET_OFFSET_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_poly_offset_back_offset_t {
+ unsigned int offset : PA_SU_POLY_OFFSET_BACK_OFFSET_OFFSET_SIZE;
+ } pa_su_poly_offset_back_offset_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_poly_offset_back_offset_t {
+ unsigned int offset : PA_SU_POLY_OFFSET_BACK_OFFSET_OFFSET_SIZE;
+ } pa_su_poly_offset_back_offset_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_poly_offset_back_offset_t f;
+} pa_su_poly_offset_back_offset_u;
+
+
+/*
+ * PA_SU_PERFCOUNTER0_SELECT struct
+ */
+
+#define PA_SU_PERFCOUNTER0_SELECT_PERF_SEL_SIZE 8
+
+#define PA_SU_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT 0
+
+#define PA_SU_PERFCOUNTER0_SELECT_PERF_SEL_MASK 0x000000ff
+
+#define PA_SU_PERFCOUNTER0_SELECT_MASK \
+ (PA_SU_PERFCOUNTER0_SELECT_PERF_SEL_MASK)
+
+#define PA_SU_PERFCOUNTER0_SELECT(perf_sel) \
+ ((perf_sel << PA_SU_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT))
+
+#define PA_SU_PERFCOUNTER0_SELECT_GET_PERF_SEL(pa_su_perfcounter0_select) \
+ ((pa_su_perfcounter0_select & PA_SU_PERFCOUNTER0_SELECT_PERF_SEL_MASK) >> PA_SU_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT)
+
+#define PA_SU_PERFCOUNTER0_SELECT_SET_PERF_SEL(pa_su_perfcounter0_select_reg, perf_sel) \
+ pa_su_perfcounter0_select_reg = (pa_su_perfcounter0_select_reg & ~PA_SU_PERFCOUNTER0_SELECT_PERF_SEL_MASK) | (perf_sel << PA_SU_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter0_select_t {
+ unsigned int perf_sel : PA_SU_PERFCOUNTER0_SELECT_PERF_SEL_SIZE;
+ unsigned int : 24;
+ } pa_su_perfcounter0_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter0_select_t {
+ unsigned int : 24;
+ unsigned int perf_sel : PA_SU_PERFCOUNTER0_SELECT_PERF_SEL_SIZE;
+ } pa_su_perfcounter0_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_perfcounter0_select_t f;
+} pa_su_perfcounter0_select_u;
+
+
+/*
+ * PA_SU_PERFCOUNTER1_SELECT struct
+ */
+
+#define PA_SU_PERFCOUNTER1_SELECT_PERF_SEL_SIZE 8
+
+#define PA_SU_PERFCOUNTER1_SELECT_PERF_SEL_SHIFT 0
+
+#define PA_SU_PERFCOUNTER1_SELECT_PERF_SEL_MASK 0x000000ff
+
+#define PA_SU_PERFCOUNTER1_SELECT_MASK \
+ (PA_SU_PERFCOUNTER1_SELECT_PERF_SEL_MASK)
+
+#define PA_SU_PERFCOUNTER1_SELECT(perf_sel) \
+ ((perf_sel << PA_SU_PERFCOUNTER1_SELECT_PERF_SEL_SHIFT))
+
+#define PA_SU_PERFCOUNTER1_SELECT_GET_PERF_SEL(pa_su_perfcounter1_select) \
+ ((pa_su_perfcounter1_select & PA_SU_PERFCOUNTER1_SELECT_PERF_SEL_MASK) >> PA_SU_PERFCOUNTER1_SELECT_PERF_SEL_SHIFT)
+
+#define PA_SU_PERFCOUNTER1_SELECT_SET_PERF_SEL(pa_su_perfcounter1_select_reg, perf_sel) \
+ pa_su_perfcounter1_select_reg = (pa_su_perfcounter1_select_reg & ~PA_SU_PERFCOUNTER1_SELECT_PERF_SEL_MASK) | (perf_sel << PA_SU_PERFCOUNTER1_SELECT_PERF_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter1_select_t {
+ unsigned int perf_sel : PA_SU_PERFCOUNTER1_SELECT_PERF_SEL_SIZE;
+ unsigned int : 24;
+ } pa_su_perfcounter1_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter1_select_t {
+ unsigned int : 24;
+ unsigned int perf_sel : PA_SU_PERFCOUNTER1_SELECT_PERF_SEL_SIZE;
+ } pa_su_perfcounter1_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_perfcounter1_select_t f;
+} pa_su_perfcounter1_select_u;
+
+
+/*
+ * PA_SU_PERFCOUNTER2_SELECT struct
+ */
+
+#define PA_SU_PERFCOUNTER2_SELECT_PERF_SEL_SIZE 8
+
+#define PA_SU_PERFCOUNTER2_SELECT_PERF_SEL_SHIFT 0
+
+#define PA_SU_PERFCOUNTER2_SELECT_PERF_SEL_MASK 0x000000ff
+
+#define PA_SU_PERFCOUNTER2_SELECT_MASK \
+ (PA_SU_PERFCOUNTER2_SELECT_PERF_SEL_MASK)
+
+#define PA_SU_PERFCOUNTER2_SELECT(perf_sel) \
+ ((perf_sel << PA_SU_PERFCOUNTER2_SELECT_PERF_SEL_SHIFT))
+
+#define PA_SU_PERFCOUNTER2_SELECT_GET_PERF_SEL(pa_su_perfcounter2_select) \
+ ((pa_su_perfcounter2_select & PA_SU_PERFCOUNTER2_SELECT_PERF_SEL_MASK) >> PA_SU_PERFCOUNTER2_SELECT_PERF_SEL_SHIFT)
+
+#define PA_SU_PERFCOUNTER2_SELECT_SET_PERF_SEL(pa_su_perfcounter2_select_reg, perf_sel) \
+ pa_su_perfcounter2_select_reg = (pa_su_perfcounter2_select_reg & ~PA_SU_PERFCOUNTER2_SELECT_PERF_SEL_MASK) | (perf_sel << PA_SU_PERFCOUNTER2_SELECT_PERF_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter2_select_t {
+ unsigned int perf_sel : PA_SU_PERFCOUNTER2_SELECT_PERF_SEL_SIZE;
+ unsigned int : 24;
+ } pa_su_perfcounter2_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter2_select_t {
+ unsigned int : 24;
+ unsigned int perf_sel : PA_SU_PERFCOUNTER2_SELECT_PERF_SEL_SIZE;
+ } pa_su_perfcounter2_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_perfcounter2_select_t f;
+} pa_su_perfcounter2_select_u;
+
+
+/*
+ * PA_SU_PERFCOUNTER3_SELECT struct
+ */
+
+#define PA_SU_PERFCOUNTER3_SELECT_PERF_SEL_SIZE 8
+
+#define PA_SU_PERFCOUNTER3_SELECT_PERF_SEL_SHIFT 0
+
+#define PA_SU_PERFCOUNTER3_SELECT_PERF_SEL_MASK 0x000000ff
+
+#define PA_SU_PERFCOUNTER3_SELECT_MASK \
+ (PA_SU_PERFCOUNTER3_SELECT_PERF_SEL_MASK)
+
+#define PA_SU_PERFCOUNTER3_SELECT(perf_sel) \
+ ((perf_sel << PA_SU_PERFCOUNTER3_SELECT_PERF_SEL_SHIFT))
+
+#define PA_SU_PERFCOUNTER3_SELECT_GET_PERF_SEL(pa_su_perfcounter3_select) \
+ ((pa_su_perfcounter3_select & PA_SU_PERFCOUNTER3_SELECT_PERF_SEL_MASK) >> PA_SU_PERFCOUNTER3_SELECT_PERF_SEL_SHIFT)
+
+#define PA_SU_PERFCOUNTER3_SELECT_SET_PERF_SEL(pa_su_perfcounter3_select_reg, perf_sel) \
+ pa_su_perfcounter3_select_reg = (pa_su_perfcounter3_select_reg & ~PA_SU_PERFCOUNTER3_SELECT_PERF_SEL_MASK) | (perf_sel << PA_SU_PERFCOUNTER3_SELECT_PERF_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter3_select_t {
+ unsigned int perf_sel : PA_SU_PERFCOUNTER3_SELECT_PERF_SEL_SIZE;
+ unsigned int : 24;
+ } pa_su_perfcounter3_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter3_select_t {
+ unsigned int : 24;
+ unsigned int perf_sel : PA_SU_PERFCOUNTER3_SELECT_PERF_SEL_SIZE;
+ } pa_su_perfcounter3_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_perfcounter3_select_t f;
+} pa_su_perfcounter3_select_u;
+
+
+/*
+ * PA_SU_PERFCOUNTER0_LOW struct
+ */
+
+#define PA_SU_PERFCOUNTER0_LOW_PERF_COUNT_SIZE 32
+
+#define PA_SU_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT 0
+
+#define PA_SU_PERFCOUNTER0_LOW_PERF_COUNT_MASK 0xffffffff
+
+#define PA_SU_PERFCOUNTER0_LOW_MASK \
+ (PA_SU_PERFCOUNTER0_LOW_PERF_COUNT_MASK)
+
+#define PA_SU_PERFCOUNTER0_LOW(perf_count) \
+ ((perf_count << PA_SU_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT))
+
+#define PA_SU_PERFCOUNTER0_LOW_GET_PERF_COUNT(pa_su_perfcounter0_low) \
+ ((pa_su_perfcounter0_low & PA_SU_PERFCOUNTER0_LOW_PERF_COUNT_MASK) >> PA_SU_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT)
+
+#define PA_SU_PERFCOUNTER0_LOW_SET_PERF_COUNT(pa_su_perfcounter0_low_reg, perf_count) \
+ pa_su_perfcounter0_low_reg = (pa_su_perfcounter0_low_reg & ~PA_SU_PERFCOUNTER0_LOW_PERF_COUNT_MASK) | (perf_count << PA_SU_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter0_low_t {
+ unsigned int perf_count : PA_SU_PERFCOUNTER0_LOW_PERF_COUNT_SIZE;
+ } pa_su_perfcounter0_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter0_low_t {
+ unsigned int perf_count : PA_SU_PERFCOUNTER0_LOW_PERF_COUNT_SIZE;
+ } pa_su_perfcounter0_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_perfcounter0_low_t f;
+} pa_su_perfcounter0_low_u;
+
+
+/*
+ * PA_SU_PERFCOUNTER0_HI struct
+ */
+
+#define PA_SU_PERFCOUNTER0_HI_PERF_COUNT_SIZE 16
+
+#define PA_SU_PERFCOUNTER0_HI_PERF_COUNT_SHIFT 0
+
+#define PA_SU_PERFCOUNTER0_HI_PERF_COUNT_MASK 0x0000ffff
+
+#define PA_SU_PERFCOUNTER0_HI_MASK \
+ (PA_SU_PERFCOUNTER0_HI_PERF_COUNT_MASK)
+
+#define PA_SU_PERFCOUNTER0_HI(perf_count) \
+ ((perf_count << PA_SU_PERFCOUNTER0_HI_PERF_COUNT_SHIFT))
+
+#define PA_SU_PERFCOUNTER0_HI_GET_PERF_COUNT(pa_su_perfcounter0_hi) \
+ ((pa_su_perfcounter0_hi & PA_SU_PERFCOUNTER0_HI_PERF_COUNT_MASK) >> PA_SU_PERFCOUNTER0_HI_PERF_COUNT_SHIFT)
+
+#define PA_SU_PERFCOUNTER0_HI_SET_PERF_COUNT(pa_su_perfcounter0_hi_reg, perf_count) \
+ pa_su_perfcounter0_hi_reg = (pa_su_perfcounter0_hi_reg & ~PA_SU_PERFCOUNTER0_HI_PERF_COUNT_MASK) | (perf_count << PA_SU_PERFCOUNTER0_HI_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter0_hi_t {
+ unsigned int perf_count : PA_SU_PERFCOUNTER0_HI_PERF_COUNT_SIZE;
+ unsigned int : 16;
+ } pa_su_perfcounter0_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter0_hi_t {
+ unsigned int : 16;
+ unsigned int perf_count : PA_SU_PERFCOUNTER0_HI_PERF_COUNT_SIZE;
+ } pa_su_perfcounter0_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_perfcounter0_hi_t f;
+} pa_su_perfcounter0_hi_u;
+
+
+/*
+ * PA_SU_PERFCOUNTER1_LOW struct
+ */
+
+#define PA_SU_PERFCOUNTER1_LOW_PERF_COUNT_SIZE 32
+
+#define PA_SU_PERFCOUNTER1_LOW_PERF_COUNT_SHIFT 0
+
+#define PA_SU_PERFCOUNTER1_LOW_PERF_COUNT_MASK 0xffffffff
+
+#define PA_SU_PERFCOUNTER1_LOW_MASK \
+ (PA_SU_PERFCOUNTER1_LOW_PERF_COUNT_MASK)
+
+#define PA_SU_PERFCOUNTER1_LOW(perf_count) \
+ ((perf_count << PA_SU_PERFCOUNTER1_LOW_PERF_COUNT_SHIFT))
+
+#define PA_SU_PERFCOUNTER1_LOW_GET_PERF_COUNT(pa_su_perfcounter1_low) \
+ ((pa_su_perfcounter1_low & PA_SU_PERFCOUNTER1_LOW_PERF_COUNT_MASK) >> PA_SU_PERFCOUNTER1_LOW_PERF_COUNT_SHIFT)
+
+#define PA_SU_PERFCOUNTER1_LOW_SET_PERF_COUNT(pa_su_perfcounter1_low_reg, perf_count) \
+ pa_su_perfcounter1_low_reg = (pa_su_perfcounter1_low_reg & ~PA_SU_PERFCOUNTER1_LOW_PERF_COUNT_MASK) | (perf_count << PA_SU_PERFCOUNTER1_LOW_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter1_low_t {
+ unsigned int perf_count : PA_SU_PERFCOUNTER1_LOW_PERF_COUNT_SIZE;
+ } pa_su_perfcounter1_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter1_low_t {
+ unsigned int perf_count : PA_SU_PERFCOUNTER1_LOW_PERF_COUNT_SIZE;
+ } pa_su_perfcounter1_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_perfcounter1_low_t f;
+} pa_su_perfcounter1_low_u;
+
+
+/*
+ * PA_SU_PERFCOUNTER1_HI struct
+ */
+
+#define PA_SU_PERFCOUNTER1_HI_PERF_COUNT_SIZE 16
+
+#define PA_SU_PERFCOUNTER1_HI_PERF_COUNT_SHIFT 0
+
+#define PA_SU_PERFCOUNTER1_HI_PERF_COUNT_MASK 0x0000ffff
+
+#define PA_SU_PERFCOUNTER1_HI_MASK \
+ (PA_SU_PERFCOUNTER1_HI_PERF_COUNT_MASK)
+
+#define PA_SU_PERFCOUNTER1_HI(perf_count) \
+ ((perf_count << PA_SU_PERFCOUNTER1_HI_PERF_COUNT_SHIFT))
+
+#define PA_SU_PERFCOUNTER1_HI_GET_PERF_COUNT(pa_su_perfcounter1_hi) \
+ ((pa_su_perfcounter1_hi & PA_SU_PERFCOUNTER1_HI_PERF_COUNT_MASK) >> PA_SU_PERFCOUNTER1_HI_PERF_COUNT_SHIFT)
+
+#define PA_SU_PERFCOUNTER1_HI_SET_PERF_COUNT(pa_su_perfcounter1_hi_reg, perf_count) \
+ pa_su_perfcounter1_hi_reg = (pa_su_perfcounter1_hi_reg & ~PA_SU_PERFCOUNTER1_HI_PERF_COUNT_MASK) | (perf_count << PA_SU_PERFCOUNTER1_HI_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter1_hi_t {
+ unsigned int perf_count : PA_SU_PERFCOUNTER1_HI_PERF_COUNT_SIZE;
+ unsigned int : 16;
+ } pa_su_perfcounter1_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter1_hi_t {
+ unsigned int : 16;
+ unsigned int perf_count : PA_SU_PERFCOUNTER1_HI_PERF_COUNT_SIZE;
+ } pa_su_perfcounter1_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_perfcounter1_hi_t f;
+} pa_su_perfcounter1_hi_u;
+
+
+/*
+ * PA_SU_PERFCOUNTER2_LOW struct
+ */
+
+#define PA_SU_PERFCOUNTER2_LOW_PERF_COUNT_SIZE 32
+
+#define PA_SU_PERFCOUNTER2_LOW_PERF_COUNT_SHIFT 0
+
+#define PA_SU_PERFCOUNTER2_LOW_PERF_COUNT_MASK 0xffffffff
+
+#define PA_SU_PERFCOUNTER2_LOW_MASK \
+ (PA_SU_PERFCOUNTER2_LOW_PERF_COUNT_MASK)
+
+#define PA_SU_PERFCOUNTER2_LOW(perf_count) \
+ ((perf_count << PA_SU_PERFCOUNTER2_LOW_PERF_COUNT_SHIFT))
+
+#define PA_SU_PERFCOUNTER2_LOW_GET_PERF_COUNT(pa_su_perfcounter2_low) \
+ ((pa_su_perfcounter2_low & PA_SU_PERFCOUNTER2_LOW_PERF_COUNT_MASK) >> PA_SU_PERFCOUNTER2_LOW_PERF_COUNT_SHIFT)
+
+#define PA_SU_PERFCOUNTER2_LOW_SET_PERF_COUNT(pa_su_perfcounter2_low_reg, perf_count) \
+ pa_su_perfcounter2_low_reg = (pa_su_perfcounter2_low_reg & ~PA_SU_PERFCOUNTER2_LOW_PERF_COUNT_MASK) | (perf_count << PA_SU_PERFCOUNTER2_LOW_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter2_low_t {
+ unsigned int perf_count : PA_SU_PERFCOUNTER2_LOW_PERF_COUNT_SIZE;
+ } pa_su_perfcounter2_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter2_low_t {
+ unsigned int perf_count : PA_SU_PERFCOUNTER2_LOW_PERF_COUNT_SIZE;
+ } pa_su_perfcounter2_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_perfcounter2_low_t f;
+} pa_su_perfcounter2_low_u;
+
+
+/*
+ * PA_SU_PERFCOUNTER2_HI struct
+ */
+
+#define PA_SU_PERFCOUNTER2_HI_PERF_COUNT_SIZE 16
+
+#define PA_SU_PERFCOUNTER2_HI_PERF_COUNT_SHIFT 0
+
+#define PA_SU_PERFCOUNTER2_HI_PERF_COUNT_MASK 0x0000ffff
+
+#define PA_SU_PERFCOUNTER2_HI_MASK \
+ (PA_SU_PERFCOUNTER2_HI_PERF_COUNT_MASK)
+
+#define PA_SU_PERFCOUNTER2_HI(perf_count) \
+ ((perf_count << PA_SU_PERFCOUNTER2_HI_PERF_COUNT_SHIFT))
+
+#define PA_SU_PERFCOUNTER2_HI_GET_PERF_COUNT(pa_su_perfcounter2_hi) \
+ ((pa_su_perfcounter2_hi & PA_SU_PERFCOUNTER2_HI_PERF_COUNT_MASK) >> PA_SU_PERFCOUNTER2_HI_PERF_COUNT_SHIFT)
+
+#define PA_SU_PERFCOUNTER2_HI_SET_PERF_COUNT(pa_su_perfcounter2_hi_reg, perf_count) \
+ pa_su_perfcounter2_hi_reg = (pa_su_perfcounter2_hi_reg & ~PA_SU_PERFCOUNTER2_HI_PERF_COUNT_MASK) | (perf_count << PA_SU_PERFCOUNTER2_HI_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter2_hi_t {
+ unsigned int perf_count : PA_SU_PERFCOUNTER2_HI_PERF_COUNT_SIZE;
+ unsigned int : 16;
+ } pa_su_perfcounter2_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter2_hi_t {
+ unsigned int : 16;
+ unsigned int perf_count : PA_SU_PERFCOUNTER2_HI_PERF_COUNT_SIZE;
+ } pa_su_perfcounter2_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_perfcounter2_hi_t f;
+} pa_su_perfcounter2_hi_u;
+
+
+/*
+ * PA_SU_PERFCOUNTER3_LOW struct
+ */
+
+#define PA_SU_PERFCOUNTER3_LOW_PERF_COUNT_SIZE 32
+
+#define PA_SU_PERFCOUNTER3_LOW_PERF_COUNT_SHIFT 0
+
+#define PA_SU_PERFCOUNTER3_LOW_PERF_COUNT_MASK 0xffffffff
+
+#define PA_SU_PERFCOUNTER3_LOW_MASK \
+ (PA_SU_PERFCOUNTER3_LOW_PERF_COUNT_MASK)
+
+#define PA_SU_PERFCOUNTER3_LOW(perf_count) \
+ ((perf_count << PA_SU_PERFCOUNTER3_LOW_PERF_COUNT_SHIFT))
+
+#define PA_SU_PERFCOUNTER3_LOW_GET_PERF_COUNT(pa_su_perfcounter3_low) \
+ ((pa_su_perfcounter3_low & PA_SU_PERFCOUNTER3_LOW_PERF_COUNT_MASK) >> PA_SU_PERFCOUNTER3_LOW_PERF_COUNT_SHIFT)
+
+#define PA_SU_PERFCOUNTER3_LOW_SET_PERF_COUNT(pa_su_perfcounter3_low_reg, perf_count) \
+ pa_su_perfcounter3_low_reg = (pa_su_perfcounter3_low_reg & ~PA_SU_PERFCOUNTER3_LOW_PERF_COUNT_MASK) | (perf_count << PA_SU_PERFCOUNTER3_LOW_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter3_low_t {
+ unsigned int perf_count : PA_SU_PERFCOUNTER3_LOW_PERF_COUNT_SIZE;
+ } pa_su_perfcounter3_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter3_low_t {
+ unsigned int perf_count : PA_SU_PERFCOUNTER3_LOW_PERF_COUNT_SIZE;
+ } pa_su_perfcounter3_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_perfcounter3_low_t f;
+} pa_su_perfcounter3_low_u;
+
+
+/*
+ * PA_SU_PERFCOUNTER3_HI struct
+ */
+
+#define PA_SU_PERFCOUNTER3_HI_PERF_COUNT_SIZE 16
+
+#define PA_SU_PERFCOUNTER3_HI_PERF_COUNT_SHIFT 0
+
+#define PA_SU_PERFCOUNTER3_HI_PERF_COUNT_MASK 0x0000ffff
+
+#define PA_SU_PERFCOUNTER3_HI_MASK \
+ (PA_SU_PERFCOUNTER3_HI_PERF_COUNT_MASK)
+
+#define PA_SU_PERFCOUNTER3_HI(perf_count) \
+ ((perf_count << PA_SU_PERFCOUNTER3_HI_PERF_COUNT_SHIFT))
+
+#define PA_SU_PERFCOUNTER3_HI_GET_PERF_COUNT(pa_su_perfcounter3_hi) \
+ ((pa_su_perfcounter3_hi & PA_SU_PERFCOUNTER3_HI_PERF_COUNT_MASK) >> PA_SU_PERFCOUNTER3_HI_PERF_COUNT_SHIFT)
+
+#define PA_SU_PERFCOUNTER3_HI_SET_PERF_COUNT(pa_su_perfcounter3_hi_reg, perf_count) \
+ pa_su_perfcounter3_hi_reg = (pa_su_perfcounter3_hi_reg & ~PA_SU_PERFCOUNTER3_HI_PERF_COUNT_MASK) | (perf_count << PA_SU_PERFCOUNTER3_HI_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter3_hi_t {
+ unsigned int perf_count : PA_SU_PERFCOUNTER3_HI_PERF_COUNT_SIZE;
+ unsigned int : 16;
+ } pa_su_perfcounter3_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter3_hi_t {
+ unsigned int : 16;
+ unsigned int perf_count : PA_SU_PERFCOUNTER3_HI_PERF_COUNT_SIZE;
+ } pa_su_perfcounter3_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_perfcounter3_hi_t f;
+} pa_su_perfcounter3_hi_u;
+
+
+/*
+ * PA_SC_WINDOW_OFFSET struct
+ */
+
+#define PA_SC_WINDOW_OFFSET_WINDOW_X_OFFSET_SIZE 15
+#define PA_SC_WINDOW_OFFSET_WINDOW_Y_OFFSET_SIZE 15
+
+#define PA_SC_WINDOW_OFFSET_WINDOW_X_OFFSET_SHIFT 0
+#define PA_SC_WINDOW_OFFSET_WINDOW_Y_OFFSET_SHIFT 16
+
+#define PA_SC_WINDOW_OFFSET_WINDOW_X_OFFSET_MASK 0x00007fff
+#define PA_SC_WINDOW_OFFSET_WINDOW_Y_OFFSET_MASK 0x7fff0000
+
+#define PA_SC_WINDOW_OFFSET_MASK \
+ (PA_SC_WINDOW_OFFSET_WINDOW_X_OFFSET_MASK | \
+ PA_SC_WINDOW_OFFSET_WINDOW_Y_OFFSET_MASK)
+
+#define PA_SC_WINDOW_OFFSET(window_x_offset, window_y_offset) \
+ ((window_x_offset << PA_SC_WINDOW_OFFSET_WINDOW_X_OFFSET_SHIFT) | \
+ (window_y_offset << PA_SC_WINDOW_OFFSET_WINDOW_Y_OFFSET_SHIFT))
+
+#define PA_SC_WINDOW_OFFSET_GET_WINDOW_X_OFFSET(pa_sc_window_offset) \
+ ((pa_sc_window_offset & PA_SC_WINDOW_OFFSET_WINDOW_X_OFFSET_MASK) >> PA_SC_WINDOW_OFFSET_WINDOW_X_OFFSET_SHIFT)
+#define PA_SC_WINDOW_OFFSET_GET_WINDOW_Y_OFFSET(pa_sc_window_offset) \
+ ((pa_sc_window_offset & PA_SC_WINDOW_OFFSET_WINDOW_Y_OFFSET_MASK) >> PA_SC_WINDOW_OFFSET_WINDOW_Y_OFFSET_SHIFT)
+
+#define PA_SC_WINDOW_OFFSET_SET_WINDOW_X_OFFSET(pa_sc_window_offset_reg, window_x_offset) \
+ pa_sc_window_offset_reg = (pa_sc_window_offset_reg & ~PA_SC_WINDOW_OFFSET_WINDOW_X_OFFSET_MASK) | (window_x_offset << PA_SC_WINDOW_OFFSET_WINDOW_X_OFFSET_SHIFT)
+#define PA_SC_WINDOW_OFFSET_SET_WINDOW_Y_OFFSET(pa_sc_window_offset_reg, window_y_offset) \
+ pa_sc_window_offset_reg = (pa_sc_window_offset_reg & ~PA_SC_WINDOW_OFFSET_WINDOW_Y_OFFSET_MASK) | (window_y_offset << PA_SC_WINDOW_OFFSET_WINDOW_Y_OFFSET_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_window_offset_t {
+ unsigned int window_x_offset : PA_SC_WINDOW_OFFSET_WINDOW_X_OFFSET_SIZE;
+ unsigned int : 1;
+ unsigned int window_y_offset : PA_SC_WINDOW_OFFSET_WINDOW_Y_OFFSET_SIZE;
+ unsigned int : 1;
+ } pa_sc_window_offset_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_window_offset_t {
+ unsigned int : 1;
+ unsigned int window_y_offset : PA_SC_WINDOW_OFFSET_WINDOW_Y_OFFSET_SIZE;
+ unsigned int : 1;
+ unsigned int window_x_offset : PA_SC_WINDOW_OFFSET_WINDOW_X_OFFSET_SIZE;
+ } pa_sc_window_offset_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_window_offset_t f;
+} pa_sc_window_offset_u;
+
+
+/*
+ * PA_SC_AA_CONFIG struct
+ */
+
+#define PA_SC_AA_CONFIG_MSAA_NUM_SAMPLES_SIZE 3
+#define PA_SC_AA_CONFIG_MAX_SAMPLE_DIST_SIZE 4
+
+#define PA_SC_AA_CONFIG_MSAA_NUM_SAMPLES_SHIFT 0
+#define PA_SC_AA_CONFIG_MAX_SAMPLE_DIST_SHIFT 13
+
+#define PA_SC_AA_CONFIG_MSAA_NUM_SAMPLES_MASK 0x00000007
+#define PA_SC_AA_CONFIG_MAX_SAMPLE_DIST_MASK 0x0001e000
+
+#define PA_SC_AA_CONFIG_MASK \
+ (PA_SC_AA_CONFIG_MSAA_NUM_SAMPLES_MASK | \
+ PA_SC_AA_CONFIG_MAX_SAMPLE_DIST_MASK)
+
+#define PA_SC_AA_CONFIG(msaa_num_samples, max_sample_dist) \
+ ((msaa_num_samples << PA_SC_AA_CONFIG_MSAA_NUM_SAMPLES_SHIFT) | \
+ (max_sample_dist << PA_SC_AA_CONFIG_MAX_SAMPLE_DIST_SHIFT))
+
+#define PA_SC_AA_CONFIG_GET_MSAA_NUM_SAMPLES(pa_sc_aa_config) \
+ ((pa_sc_aa_config & PA_SC_AA_CONFIG_MSAA_NUM_SAMPLES_MASK) >> PA_SC_AA_CONFIG_MSAA_NUM_SAMPLES_SHIFT)
+#define PA_SC_AA_CONFIG_GET_MAX_SAMPLE_DIST(pa_sc_aa_config) \
+ ((pa_sc_aa_config & PA_SC_AA_CONFIG_MAX_SAMPLE_DIST_MASK) >> PA_SC_AA_CONFIG_MAX_SAMPLE_DIST_SHIFT)
+
+#define PA_SC_AA_CONFIG_SET_MSAA_NUM_SAMPLES(pa_sc_aa_config_reg, msaa_num_samples) \
+ pa_sc_aa_config_reg = (pa_sc_aa_config_reg & ~PA_SC_AA_CONFIG_MSAA_NUM_SAMPLES_MASK) | (msaa_num_samples << PA_SC_AA_CONFIG_MSAA_NUM_SAMPLES_SHIFT)
+#define PA_SC_AA_CONFIG_SET_MAX_SAMPLE_DIST(pa_sc_aa_config_reg, max_sample_dist) \
+ pa_sc_aa_config_reg = (pa_sc_aa_config_reg & ~PA_SC_AA_CONFIG_MAX_SAMPLE_DIST_MASK) | (max_sample_dist << PA_SC_AA_CONFIG_MAX_SAMPLE_DIST_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_aa_config_t {
+ unsigned int msaa_num_samples : PA_SC_AA_CONFIG_MSAA_NUM_SAMPLES_SIZE;
+ unsigned int : 10;
+ unsigned int max_sample_dist : PA_SC_AA_CONFIG_MAX_SAMPLE_DIST_SIZE;
+ unsigned int : 15;
+ } pa_sc_aa_config_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_aa_config_t {
+ unsigned int : 15;
+ unsigned int max_sample_dist : PA_SC_AA_CONFIG_MAX_SAMPLE_DIST_SIZE;
+ unsigned int : 10;
+ unsigned int msaa_num_samples : PA_SC_AA_CONFIG_MSAA_NUM_SAMPLES_SIZE;
+ } pa_sc_aa_config_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_aa_config_t f;
+} pa_sc_aa_config_u;
+
+
+/*
+ * PA_SC_AA_MASK struct
+ */
+
+#define PA_SC_AA_MASK_AA_MASK_SIZE 16
+
+#define PA_SC_AA_MASK_AA_MASK_SHIFT 0
+
+#define PA_SC_AA_MASK_AA_MASK_MASK 0x0000ffff
+
+#define PA_SC_AA_MASK_MASK \
+ (PA_SC_AA_MASK_AA_MASK_MASK)
+
+#define PA_SC_AA_MASK(aa_mask) \
+ ((aa_mask << PA_SC_AA_MASK_AA_MASK_SHIFT))
+
+#define PA_SC_AA_MASK_GET_AA_MASK(pa_sc_aa_mask) \
+ ((pa_sc_aa_mask & PA_SC_AA_MASK_AA_MASK_MASK) >> PA_SC_AA_MASK_AA_MASK_SHIFT)
+
+#define PA_SC_AA_MASK_SET_AA_MASK(pa_sc_aa_mask_reg, aa_mask) \
+ pa_sc_aa_mask_reg = (pa_sc_aa_mask_reg & ~PA_SC_AA_MASK_AA_MASK_MASK) | (aa_mask << PA_SC_AA_MASK_AA_MASK_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_aa_mask_t {
+ unsigned int aa_mask : PA_SC_AA_MASK_AA_MASK_SIZE;
+ unsigned int : 16;
+ } pa_sc_aa_mask_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_aa_mask_t {
+ unsigned int : 16;
+ unsigned int aa_mask : PA_SC_AA_MASK_AA_MASK_SIZE;
+ } pa_sc_aa_mask_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_aa_mask_t f;
+} pa_sc_aa_mask_u;
+
+
+/*
+ * PA_SC_LINE_STIPPLE struct
+ */
+
+#define PA_SC_LINE_STIPPLE_LINE_PATTERN_SIZE 16
+#define PA_SC_LINE_STIPPLE_REPEAT_COUNT_SIZE 8
+#define PA_SC_LINE_STIPPLE_PATTERN_BIT_ORDER_SIZE 1
+#define PA_SC_LINE_STIPPLE_AUTO_RESET_CNTL_SIZE 2
+
+#define PA_SC_LINE_STIPPLE_LINE_PATTERN_SHIFT 0
+#define PA_SC_LINE_STIPPLE_REPEAT_COUNT_SHIFT 16
+#define PA_SC_LINE_STIPPLE_PATTERN_BIT_ORDER_SHIFT 28
+#define PA_SC_LINE_STIPPLE_AUTO_RESET_CNTL_SHIFT 29
+
+#define PA_SC_LINE_STIPPLE_LINE_PATTERN_MASK 0x0000ffff
+#define PA_SC_LINE_STIPPLE_REPEAT_COUNT_MASK 0x00ff0000
+#define PA_SC_LINE_STIPPLE_PATTERN_BIT_ORDER_MASK 0x10000000
+#define PA_SC_LINE_STIPPLE_AUTO_RESET_CNTL_MASK 0x60000000
+
+#define PA_SC_LINE_STIPPLE_MASK \
+ (PA_SC_LINE_STIPPLE_LINE_PATTERN_MASK | \
+ PA_SC_LINE_STIPPLE_REPEAT_COUNT_MASK | \
+ PA_SC_LINE_STIPPLE_PATTERN_BIT_ORDER_MASK | \
+ PA_SC_LINE_STIPPLE_AUTO_RESET_CNTL_MASK)
+
+#define PA_SC_LINE_STIPPLE(line_pattern, repeat_count, pattern_bit_order, auto_reset_cntl) \
+ ((line_pattern << PA_SC_LINE_STIPPLE_LINE_PATTERN_SHIFT) | \
+ (repeat_count << PA_SC_LINE_STIPPLE_REPEAT_COUNT_SHIFT) | \
+ (pattern_bit_order << PA_SC_LINE_STIPPLE_PATTERN_BIT_ORDER_SHIFT) | \
+ (auto_reset_cntl << PA_SC_LINE_STIPPLE_AUTO_RESET_CNTL_SHIFT))
+
+#define PA_SC_LINE_STIPPLE_GET_LINE_PATTERN(pa_sc_line_stipple) \
+ ((pa_sc_line_stipple & PA_SC_LINE_STIPPLE_LINE_PATTERN_MASK) >> PA_SC_LINE_STIPPLE_LINE_PATTERN_SHIFT)
+#define PA_SC_LINE_STIPPLE_GET_REPEAT_COUNT(pa_sc_line_stipple) \
+ ((pa_sc_line_stipple & PA_SC_LINE_STIPPLE_REPEAT_COUNT_MASK) >> PA_SC_LINE_STIPPLE_REPEAT_COUNT_SHIFT)
+#define PA_SC_LINE_STIPPLE_GET_PATTERN_BIT_ORDER(pa_sc_line_stipple) \
+ ((pa_sc_line_stipple & PA_SC_LINE_STIPPLE_PATTERN_BIT_ORDER_MASK) >> PA_SC_LINE_STIPPLE_PATTERN_BIT_ORDER_SHIFT)
+#define PA_SC_LINE_STIPPLE_GET_AUTO_RESET_CNTL(pa_sc_line_stipple) \
+ ((pa_sc_line_stipple & PA_SC_LINE_STIPPLE_AUTO_RESET_CNTL_MASK) >> PA_SC_LINE_STIPPLE_AUTO_RESET_CNTL_SHIFT)
+
+#define PA_SC_LINE_STIPPLE_SET_LINE_PATTERN(pa_sc_line_stipple_reg, line_pattern) \
+ pa_sc_line_stipple_reg = (pa_sc_line_stipple_reg & ~PA_SC_LINE_STIPPLE_LINE_PATTERN_MASK) | (line_pattern << PA_SC_LINE_STIPPLE_LINE_PATTERN_SHIFT)
+#define PA_SC_LINE_STIPPLE_SET_REPEAT_COUNT(pa_sc_line_stipple_reg, repeat_count) \
+ pa_sc_line_stipple_reg = (pa_sc_line_stipple_reg & ~PA_SC_LINE_STIPPLE_REPEAT_COUNT_MASK) | (repeat_count << PA_SC_LINE_STIPPLE_REPEAT_COUNT_SHIFT)
+#define PA_SC_LINE_STIPPLE_SET_PATTERN_BIT_ORDER(pa_sc_line_stipple_reg, pattern_bit_order) \
+ pa_sc_line_stipple_reg = (pa_sc_line_stipple_reg & ~PA_SC_LINE_STIPPLE_PATTERN_BIT_ORDER_MASK) | (pattern_bit_order << PA_SC_LINE_STIPPLE_PATTERN_BIT_ORDER_SHIFT)
+#define PA_SC_LINE_STIPPLE_SET_AUTO_RESET_CNTL(pa_sc_line_stipple_reg, auto_reset_cntl) \
+ pa_sc_line_stipple_reg = (pa_sc_line_stipple_reg & ~PA_SC_LINE_STIPPLE_AUTO_RESET_CNTL_MASK) | (auto_reset_cntl << PA_SC_LINE_STIPPLE_AUTO_RESET_CNTL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_line_stipple_t {
+ unsigned int line_pattern : PA_SC_LINE_STIPPLE_LINE_PATTERN_SIZE;
+ unsigned int repeat_count : PA_SC_LINE_STIPPLE_REPEAT_COUNT_SIZE;
+ unsigned int : 4;
+ unsigned int pattern_bit_order : PA_SC_LINE_STIPPLE_PATTERN_BIT_ORDER_SIZE;
+ unsigned int auto_reset_cntl : PA_SC_LINE_STIPPLE_AUTO_RESET_CNTL_SIZE;
+ unsigned int : 1;
+ } pa_sc_line_stipple_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_line_stipple_t {
+ unsigned int : 1;
+ unsigned int auto_reset_cntl : PA_SC_LINE_STIPPLE_AUTO_RESET_CNTL_SIZE;
+ unsigned int pattern_bit_order : PA_SC_LINE_STIPPLE_PATTERN_BIT_ORDER_SIZE;
+ unsigned int : 4;
+ unsigned int repeat_count : PA_SC_LINE_STIPPLE_REPEAT_COUNT_SIZE;
+ unsigned int line_pattern : PA_SC_LINE_STIPPLE_LINE_PATTERN_SIZE;
+ } pa_sc_line_stipple_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_line_stipple_t f;
+} pa_sc_line_stipple_u;
+
+
+/*
+ * PA_SC_LINE_CNTL struct
+ */
+
+#define PA_SC_LINE_CNTL_BRES_CNTL_SIZE 8
+#define PA_SC_LINE_CNTL_USE_BRES_CNTL_SIZE 1
+#define PA_SC_LINE_CNTL_EXPAND_LINE_WIDTH_SIZE 1
+#define PA_SC_LINE_CNTL_LAST_PIXEL_SIZE 1
+
+#define PA_SC_LINE_CNTL_BRES_CNTL_SHIFT 0
+#define PA_SC_LINE_CNTL_USE_BRES_CNTL_SHIFT 8
+#define PA_SC_LINE_CNTL_EXPAND_LINE_WIDTH_SHIFT 9
+#define PA_SC_LINE_CNTL_LAST_PIXEL_SHIFT 10
+
+#define PA_SC_LINE_CNTL_BRES_CNTL_MASK 0x000000ff
+#define PA_SC_LINE_CNTL_USE_BRES_CNTL_MASK 0x00000100
+#define PA_SC_LINE_CNTL_EXPAND_LINE_WIDTH_MASK 0x00000200
+#define PA_SC_LINE_CNTL_LAST_PIXEL_MASK 0x00000400
+
+#define PA_SC_LINE_CNTL_MASK \
+ (PA_SC_LINE_CNTL_BRES_CNTL_MASK | \
+ PA_SC_LINE_CNTL_USE_BRES_CNTL_MASK | \
+ PA_SC_LINE_CNTL_EXPAND_LINE_WIDTH_MASK | \
+ PA_SC_LINE_CNTL_LAST_PIXEL_MASK)
+
+#define PA_SC_LINE_CNTL(bres_cntl, use_bres_cntl, expand_line_width, last_pixel) \
+ ((bres_cntl << PA_SC_LINE_CNTL_BRES_CNTL_SHIFT) | \
+ (use_bres_cntl << PA_SC_LINE_CNTL_USE_BRES_CNTL_SHIFT) | \
+ (expand_line_width << PA_SC_LINE_CNTL_EXPAND_LINE_WIDTH_SHIFT) | \
+ (last_pixel << PA_SC_LINE_CNTL_LAST_PIXEL_SHIFT))
+
+#define PA_SC_LINE_CNTL_GET_BRES_CNTL(pa_sc_line_cntl) \
+ ((pa_sc_line_cntl & PA_SC_LINE_CNTL_BRES_CNTL_MASK) >> PA_SC_LINE_CNTL_BRES_CNTL_SHIFT)
+#define PA_SC_LINE_CNTL_GET_USE_BRES_CNTL(pa_sc_line_cntl) \
+ ((pa_sc_line_cntl & PA_SC_LINE_CNTL_USE_BRES_CNTL_MASK) >> PA_SC_LINE_CNTL_USE_BRES_CNTL_SHIFT)
+#define PA_SC_LINE_CNTL_GET_EXPAND_LINE_WIDTH(pa_sc_line_cntl) \
+ ((pa_sc_line_cntl & PA_SC_LINE_CNTL_EXPAND_LINE_WIDTH_MASK) >> PA_SC_LINE_CNTL_EXPAND_LINE_WIDTH_SHIFT)
+#define PA_SC_LINE_CNTL_GET_LAST_PIXEL(pa_sc_line_cntl) \
+ ((pa_sc_line_cntl & PA_SC_LINE_CNTL_LAST_PIXEL_MASK) >> PA_SC_LINE_CNTL_LAST_PIXEL_SHIFT)
+
+#define PA_SC_LINE_CNTL_SET_BRES_CNTL(pa_sc_line_cntl_reg, bres_cntl) \
+ pa_sc_line_cntl_reg = (pa_sc_line_cntl_reg & ~PA_SC_LINE_CNTL_BRES_CNTL_MASK) | (bres_cntl << PA_SC_LINE_CNTL_BRES_CNTL_SHIFT)
+#define PA_SC_LINE_CNTL_SET_USE_BRES_CNTL(pa_sc_line_cntl_reg, use_bres_cntl) \
+ pa_sc_line_cntl_reg = (pa_sc_line_cntl_reg & ~PA_SC_LINE_CNTL_USE_BRES_CNTL_MASK) | (use_bres_cntl << PA_SC_LINE_CNTL_USE_BRES_CNTL_SHIFT)
+#define PA_SC_LINE_CNTL_SET_EXPAND_LINE_WIDTH(pa_sc_line_cntl_reg, expand_line_width) \
+ pa_sc_line_cntl_reg = (pa_sc_line_cntl_reg & ~PA_SC_LINE_CNTL_EXPAND_LINE_WIDTH_MASK) | (expand_line_width << PA_SC_LINE_CNTL_EXPAND_LINE_WIDTH_SHIFT)
+#define PA_SC_LINE_CNTL_SET_LAST_PIXEL(pa_sc_line_cntl_reg, last_pixel) \
+ pa_sc_line_cntl_reg = (pa_sc_line_cntl_reg & ~PA_SC_LINE_CNTL_LAST_PIXEL_MASK) | (last_pixel << PA_SC_LINE_CNTL_LAST_PIXEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_line_cntl_t {
+ unsigned int bres_cntl : PA_SC_LINE_CNTL_BRES_CNTL_SIZE;
+ unsigned int use_bres_cntl : PA_SC_LINE_CNTL_USE_BRES_CNTL_SIZE;
+ unsigned int expand_line_width : PA_SC_LINE_CNTL_EXPAND_LINE_WIDTH_SIZE;
+ unsigned int last_pixel : PA_SC_LINE_CNTL_LAST_PIXEL_SIZE;
+ unsigned int : 21;
+ } pa_sc_line_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_line_cntl_t {
+ unsigned int : 21;
+ unsigned int last_pixel : PA_SC_LINE_CNTL_LAST_PIXEL_SIZE;
+ unsigned int expand_line_width : PA_SC_LINE_CNTL_EXPAND_LINE_WIDTH_SIZE;
+ unsigned int use_bres_cntl : PA_SC_LINE_CNTL_USE_BRES_CNTL_SIZE;
+ unsigned int bres_cntl : PA_SC_LINE_CNTL_BRES_CNTL_SIZE;
+ } pa_sc_line_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_line_cntl_t f;
+} pa_sc_line_cntl_u;
+
+
+/*
+ * PA_SC_WINDOW_SCISSOR_TL struct
+ */
+
+#define PA_SC_WINDOW_SCISSOR_TL_TL_X_SIZE 14
+#define PA_SC_WINDOW_SCISSOR_TL_TL_Y_SIZE 14
+#define PA_SC_WINDOW_SCISSOR_TL_WINDOW_OFFSET_DISABLE_SIZE 1
+
+#define PA_SC_WINDOW_SCISSOR_TL_TL_X_SHIFT 0
+#define PA_SC_WINDOW_SCISSOR_TL_TL_Y_SHIFT 16
+#define PA_SC_WINDOW_SCISSOR_TL_WINDOW_OFFSET_DISABLE_SHIFT 31
+
+#define PA_SC_WINDOW_SCISSOR_TL_TL_X_MASK 0x00003fff
+#define PA_SC_WINDOW_SCISSOR_TL_TL_Y_MASK 0x3fff0000
+#define PA_SC_WINDOW_SCISSOR_TL_WINDOW_OFFSET_DISABLE_MASK 0x80000000
+
+#define PA_SC_WINDOW_SCISSOR_TL_MASK \
+ (PA_SC_WINDOW_SCISSOR_TL_TL_X_MASK | \
+ PA_SC_WINDOW_SCISSOR_TL_TL_Y_MASK | \
+ PA_SC_WINDOW_SCISSOR_TL_WINDOW_OFFSET_DISABLE_MASK)
+
+#define PA_SC_WINDOW_SCISSOR_TL(tl_x, tl_y, window_offset_disable) \
+ ((tl_x << PA_SC_WINDOW_SCISSOR_TL_TL_X_SHIFT) | \
+ (tl_y << PA_SC_WINDOW_SCISSOR_TL_TL_Y_SHIFT) | \
+ (window_offset_disable << PA_SC_WINDOW_SCISSOR_TL_WINDOW_OFFSET_DISABLE_SHIFT))
+
+#define PA_SC_WINDOW_SCISSOR_TL_GET_TL_X(pa_sc_window_scissor_tl) \
+ ((pa_sc_window_scissor_tl & PA_SC_WINDOW_SCISSOR_TL_TL_X_MASK) >> PA_SC_WINDOW_SCISSOR_TL_TL_X_SHIFT)
+#define PA_SC_WINDOW_SCISSOR_TL_GET_TL_Y(pa_sc_window_scissor_tl) \
+ ((pa_sc_window_scissor_tl & PA_SC_WINDOW_SCISSOR_TL_TL_Y_MASK) >> PA_SC_WINDOW_SCISSOR_TL_TL_Y_SHIFT)
+#define PA_SC_WINDOW_SCISSOR_TL_GET_WINDOW_OFFSET_DISABLE(pa_sc_window_scissor_tl) \
+ ((pa_sc_window_scissor_tl & PA_SC_WINDOW_SCISSOR_TL_WINDOW_OFFSET_DISABLE_MASK) >> PA_SC_WINDOW_SCISSOR_TL_WINDOW_OFFSET_DISABLE_SHIFT)
+
+#define PA_SC_WINDOW_SCISSOR_TL_SET_TL_X(pa_sc_window_scissor_tl_reg, tl_x) \
+ pa_sc_window_scissor_tl_reg = (pa_sc_window_scissor_tl_reg & ~PA_SC_WINDOW_SCISSOR_TL_TL_X_MASK) | (tl_x << PA_SC_WINDOW_SCISSOR_TL_TL_X_SHIFT)
+#define PA_SC_WINDOW_SCISSOR_TL_SET_TL_Y(pa_sc_window_scissor_tl_reg, tl_y) \
+ pa_sc_window_scissor_tl_reg = (pa_sc_window_scissor_tl_reg & ~PA_SC_WINDOW_SCISSOR_TL_TL_Y_MASK) | (tl_y << PA_SC_WINDOW_SCISSOR_TL_TL_Y_SHIFT)
+#define PA_SC_WINDOW_SCISSOR_TL_SET_WINDOW_OFFSET_DISABLE(pa_sc_window_scissor_tl_reg, window_offset_disable) \
+ pa_sc_window_scissor_tl_reg = (pa_sc_window_scissor_tl_reg & ~PA_SC_WINDOW_SCISSOR_TL_WINDOW_OFFSET_DISABLE_MASK) | (window_offset_disable << PA_SC_WINDOW_SCISSOR_TL_WINDOW_OFFSET_DISABLE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_window_scissor_tl_t {
+ unsigned int tl_x : PA_SC_WINDOW_SCISSOR_TL_TL_X_SIZE;
+ unsigned int : 2;
+ unsigned int tl_y : PA_SC_WINDOW_SCISSOR_TL_TL_Y_SIZE;
+ unsigned int : 1;
+ unsigned int window_offset_disable : PA_SC_WINDOW_SCISSOR_TL_WINDOW_OFFSET_DISABLE_SIZE;
+ } pa_sc_window_scissor_tl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_window_scissor_tl_t {
+ unsigned int window_offset_disable : PA_SC_WINDOW_SCISSOR_TL_WINDOW_OFFSET_DISABLE_SIZE;
+ unsigned int : 1;
+ unsigned int tl_y : PA_SC_WINDOW_SCISSOR_TL_TL_Y_SIZE;
+ unsigned int : 2;
+ unsigned int tl_x : PA_SC_WINDOW_SCISSOR_TL_TL_X_SIZE;
+ } pa_sc_window_scissor_tl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_window_scissor_tl_t f;
+} pa_sc_window_scissor_tl_u;
+
+
+/*
+ * PA_SC_WINDOW_SCISSOR_BR struct
+ */
+
+#define PA_SC_WINDOW_SCISSOR_BR_BR_X_SIZE 14
+#define PA_SC_WINDOW_SCISSOR_BR_BR_Y_SIZE 14
+
+#define PA_SC_WINDOW_SCISSOR_BR_BR_X_SHIFT 0
+#define PA_SC_WINDOW_SCISSOR_BR_BR_Y_SHIFT 16
+
+#define PA_SC_WINDOW_SCISSOR_BR_BR_X_MASK 0x00003fff
+#define PA_SC_WINDOW_SCISSOR_BR_BR_Y_MASK 0x3fff0000
+
+#define PA_SC_WINDOW_SCISSOR_BR_MASK \
+ (PA_SC_WINDOW_SCISSOR_BR_BR_X_MASK | \
+ PA_SC_WINDOW_SCISSOR_BR_BR_Y_MASK)
+
+#define PA_SC_WINDOW_SCISSOR_BR(br_x, br_y) \
+ ((br_x << PA_SC_WINDOW_SCISSOR_BR_BR_X_SHIFT) | \
+ (br_y << PA_SC_WINDOW_SCISSOR_BR_BR_Y_SHIFT))
+
+#define PA_SC_WINDOW_SCISSOR_BR_GET_BR_X(pa_sc_window_scissor_br) \
+ ((pa_sc_window_scissor_br & PA_SC_WINDOW_SCISSOR_BR_BR_X_MASK) >> PA_SC_WINDOW_SCISSOR_BR_BR_X_SHIFT)
+#define PA_SC_WINDOW_SCISSOR_BR_GET_BR_Y(pa_sc_window_scissor_br) \
+ ((pa_sc_window_scissor_br & PA_SC_WINDOW_SCISSOR_BR_BR_Y_MASK) >> PA_SC_WINDOW_SCISSOR_BR_BR_Y_SHIFT)
+
+#define PA_SC_WINDOW_SCISSOR_BR_SET_BR_X(pa_sc_window_scissor_br_reg, br_x) \
+ pa_sc_window_scissor_br_reg = (pa_sc_window_scissor_br_reg & ~PA_SC_WINDOW_SCISSOR_BR_BR_X_MASK) | (br_x << PA_SC_WINDOW_SCISSOR_BR_BR_X_SHIFT)
+#define PA_SC_WINDOW_SCISSOR_BR_SET_BR_Y(pa_sc_window_scissor_br_reg, br_y) \
+ pa_sc_window_scissor_br_reg = (pa_sc_window_scissor_br_reg & ~PA_SC_WINDOW_SCISSOR_BR_BR_Y_MASK) | (br_y << PA_SC_WINDOW_SCISSOR_BR_BR_Y_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_window_scissor_br_t {
+ unsigned int br_x : PA_SC_WINDOW_SCISSOR_BR_BR_X_SIZE;
+ unsigned int : 2;
+ unsigned int br_y : PA_SC_WINDOW_SCISSOR_BR_BR_Y_SIZE;
+ unsigned int : 2;
+ } pa_sc_window_scissor_br_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_window_scissor_br_t {
+ unsigned int : 2;
+ unsigned int br_y : PA_SC_WINDOW_SCISSOR_BR_BR_Y_SIZE;
+ unsigned int : 2;
+ unsigned int br_x : PA_SC_WINDOW_SCISSOR_BR_BR_X_SIZE;
+ } pa_sc_window_scissor_br_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_window_scissor_br_t f;
+} pa_sc_window_scissor_br_u;
+
+
+/*
+ * PA_SC_SCREEN_SCISSOR_TL struct
+ */
+
+#define PA_SC_SCREEN_SCISSOR_TL_TL_X_SIZE 15
+#define PA_SC_SCREEN_SCISSOR_TL_TL_Y_SIZE 15
+
+#define PA_SC_SCREEN_SCISSOR_TL_TL_X_SHIFT 0
+#define PA_SC_SCREEN_SCISSOR_TL_TL_Y_SHIFT 16
+
+#define PA_SC_SCREEN_SCISSOR_TL_TL_X_MASK 0x00007fff
+#define PA_SC_SCREEN_SCISSOR_TL_TL_Y_MASK 0x7fff0000
+
+#define PA_SC_SCREEN_SCISSOR_TL_MASK \
+ (PA_SC_SCREEN_SCISSOR_TL_TL_X_MASK | \
+ PA_SC_SCREEN_SCISSOR_TL_TL_Y_MASK)
+
+#define PA_SC_SCREEN_SCISSOR_TL(tl_x, tl_y) \
+ ((tl_x << PA_SC_SCREEN_SCISSOR_TL_TL_X_SHIFT) | \
+ (tl_y << PA_SC_SCREEN_SCISSOR_TL_TL_Y_SHIFT))
+
+#define PA_SC_SCREEN_SCISSOR_TL_GET_TL_X(pa_sc_screen_scissor_tl) \
+ ((pa_sc_screen_scissor_tl & PA_SC_SCREEN_SCISSOR_TL_TL_X_MASK) >> PA_SC_SCREEN_SCISSOR_TL_TL_X_SHIFT)
+#define PA_SC_SCREEN_SCISSOR_TL_GET_TL_Y(pa_sc_screen_scissor_tl) \
+ ((pa_sc_screen_scissor_tl & PA_SC_SCREEN_SCISSOR_TL_TL_Y_MASK) >> PA_SC_SCREEN_SCISSOR_TL_TL_Y_SHIFT)
+
+#define PA_SC_SCREEN_SCISSOR_TL_SET_TL_X(pa_sc_screen_scissor_tl_reg, tl_x) \
+ pa_sc_screen_scissor_tl_reg = (pa_sc_screen_scissor_tl_reg & ~PA_SC_SCREEN_SCISSOR_TL_TL_X_MASK) | (tl_x << PA_SC_SCREEN_SCISSOR_TL_TL_X_SHIFT)
+#define PA_SC_SCREEN_SCISSOR_TL_SET_TL_Y(pa_sc_screen_scissor_tl_reg, tl_y) \
+ pa_sc_screen_scissor_tl_reg = (pa_sc_screen_scissor_tl_reg & ~PA_SC_SCREEN_SCISSOR_TL_TL_Y_MASK) | (tl_y << PA_SC_SCREEN_SCISSOR_TL_TL_Y_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_screen_scissor_tl_t {
+ unsigned int tl_x : PA_SC_SCREEN_SCISSOR_TL_TL_X_SIZE;
+ unsigned int : 1;
+ unsigned int tl_y : PA_SC_SCREEN_SCISSOR_TL_TL_Y_SIZE;
+ unsigned int : 1;
+ } pa_sc_screen_scissor_tl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_screen_scissor_tl_t {
+ unsigned int : 1;
+ unsigned int tl_y : PA_SC_SCREEN_SCISSOR_TL_TL_Y_SIZE;
+ unsigned int : 1;
+ unsigned int tl_x : PA_SC_SCREEN_SCISSOR_TL_TL_X_SIZE;
+ } pa_sc_screen_scissor_tl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_screen_scissor_tl_t f;
+} pa_sc_screen_scissor_tl_u;
+
+
+/*
+ * PA_SC_SCREEN_SCISSOR_BR struct
+ */
+
+#define PA_SC_SCREEN_SCISSOR_BR_BR_X_SIZE 15
+#define PA_SC_SCREEN_SCISSOR_BR_BR_Y_SIZE 15
+
+#define PA_SC_SCREEN_SCISSOR_BR_BR_X_SHIFT 0
+#define PA_SC_SCREEN_SCISSOR_BR_BR_Y_SHIFT 16
+
+#define PA_SC_SCREEN_SCISSOR_BR_BR_X_MASK 0x00007fff
+#define PA_SC_SCREEN_SCISSOR_BR_BR_Y_MASK 0x7fff0000
+
+#define PA_SC_SCREEN_SCISSOR_BR_MASK \
+ (PA_SC_SCREEN_SCISSOR_BR_BR_X_MASK | \
+ PA_SC_SCREEN_SCISSOR_BR_BR_Y_MASK)
+
+#define PA_SC_SCREEN_SCISSOR_BR(br_x, br_y) \
+ ((br_x << PA_SC_SCREEN_SCISSOR_BR_BR_X_SHIFT) | \
+ (br_y << PA_SC_SCREEN_SCISSOR_BR_BR_Y_SHIFT))
+
+#define PA_SC_SCREEN_SCISSOR_BR_GET_BR_X(pa_sc_screen_scissor_br) \
+ ((pa_sc_screen_scissor_br & PA_SC_SCREEN_SCISSOR_BR_BR_X_MASK) >> PA_SC_SCREEN_SCISSOR_BR_BR_X_SHIFT)
+#define PA_SC_SCREEN_SCISSOR_BR_GET_BR_Y(pa_sc_screen_scissor_br) \
+ ((pa_sc_screen_scissor_br & PA_SC_SCREEN_SCISSOR_BR_BR_Y_MASK) >> PA_SC_SCREEN_SCISSOR_BR_BR_Y_SHIFT)
+
+#define PA_SC_SCREEN_SCISSOR_BR_SET_BR_X(pa_sc_screen_scissor_br_reg, br_x) \
+ pa_sc_screen_scissor_br_reg = (pa_sc_screen_scissor_br_reg & ~PA_SC_SCREEN_SCISSOR_BR_BR_X_MASK) | (br_x << PA_SC_SCREEN_SCISSOR_BR_BR_X_SHIFT)
+#define PA_SC_SCREEN_SCISSOR_BR_SET_BR_Y(pa_sc_screen_scissor_br_reg, br_y) \
+ pa_sc_screen_scissor_br_reg = (pa_sc_screen_scissor_br_reg & ~PA_SC_SCREEN_SCISSOR_BR_BR_Y_MASK) | (br_y << PA_SC_SCREEN_SCISSOR_BR_BR_Y_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_screen_scissor_br_t {
+ unsigned int br_x : PA_SC_SCREEN_SCISSOR_BR_BR_X_SIZE;
+ unsigned int : 1;
+ unsigned int br_y : PA_SC_SCREEN_SCISSOR_BR_BR_Y_SIZE;
+ unsigned int : 1;
+ } pa_sc_screen_scissor_br_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_screen_scissor_br_t {
+ unsigned int : 1;
+ unsigned int br_y : PA_SC_SCREEN_SCISSOR_BR_BR_Y_SIZE;
+ unsigned int : 1;
+ unsigned int br_x : PA_SC_SCREEN_SCISSOR_BR_BR_X_SIZE;
+ } pa_sc_screen_scissor_br_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_screen_scissor_br_t f;
+} pa_sc_screen_scissor_br_u;
+
+
+/*
+ * PA_SC_VIZ_QUERY struct
+ */
+
+#define PA_SC_VIZ_QUERY_VIZ_QUERY_ENA_SIZE 1
+#define PA_SC_VIZ_QUERY_VIZ_QUERY_ID_SIZE 5
+#define PA_SC_VIZ_QUERY_KILL_PIX_POST_EARLY_Z_SIZE 1
+
+#define PA_SC_VIZ_QUERY_VIZ_QUERY_ENA_SHIFT 0
+#define PA_SC_VIZ_QUERY_VIZ_QUERY_ID_SHIFT 1
+#define PA_SC_VIZ_QUERY_KILL_PIX_POST_EARLY_Z_SHIFT 7
+
+#define PA_SC_VIZ_QUERY_VIZ_QUERY_ENA_MASK 0x00000001
+#define PA_SC_VIZ_QUERY_VIZ_QUERY_ID_MASK 0x0000003e
+#define PA_SC_VIZ_QUERY_KILL_PIX_POST_EARLY_Z_MASK 0x00000080
+
+#define PA_SC_VIZ_QUERY_MASK \
+ (PA_SC_VIZ_QUERY_VIZ_QUERY_ENA_MASK | \
+ PA_SC_VIZ_QUERY_VIZ_QUERY_ID_MASK | \
+ PA_SC_VIZ_QUERY_KILL_PIX_POST_EARLY_Z_MASK)
+
+#define PA_SC_VIZ_QUERY(viz_query_ena, viz_query_id, kill_pix_post_early_z) \
+ ((viz_query_ena << PA_SC_VIZ_QUERY_VIZ_QUERY_ENA_SHIFT) | \
+ (viz_query_id << PA_SC_VIZ_QUERY_VIZ_QUERY_ID_SHIFT) | \
+ (kill_pix_post_early_z << PA_SC_VIZ_QUERY_KILL_PIX_POST_EARLY_Z_SHIFT))
+
+#define PA_SC_VIZ_QUERY_GET_VIZ_QUERY_ENA(pa_sc_viz_query) \
+ ((pa_sc_viz_query & PA_SC_VIZ_QUERY_VIZ_QUERY_ENA_MASK) >> PA_SC_VIZ_QUERY_VIZ_QUERY_ENA_SHIFT)
+#define PA_SC_VIZ_QUERY_GET_VIZ_QUERY_ID(pa_sc_viz_query) \
+ ((pa_sc_viz_query & PA_SC_VIZ_QUERY_VIZ_QUERY_ID_MASK) >> PA_SC_VIZ_QUERY_VIZ_QUERY_ID_SHIFT)
+#define PA_SC_VIZ_QUERY_GET_KILL_PIX_POST_EARLY_Z(pa_sc_viz_query) \
+ ((pa_sc_viz_query & PA_SC_VIZ_QUERY_KILL_PIX_POST_EARLY_Z_MASK) >> PA_SC_VIZ_QUERY_KILL_PIX_POST_EARLY_Z_SHIFT)
+
+#define PA_SC_VIZ_QUERY_SET_VIZ_QUERY_ENA(pa_sc_viz_query_reg, viz_query_ena) \
+ pa_sc_viz_query_reg = (pa_sc_viz_query_reg & ~PA_SC_VIZ_QUERY_VIZ_QUERY_ENA_MASK) | (viz_query_ena << PA_SC_VIZ_QUERY_VIZ_QUERY_ENA_SHIFT)
+#define PA_SC_VIZ_QUERY_SET_VIZ_QUERY_ID(pa_sc_viz_query_reg, viz_query_id) \
+ pa_sc_viz_query_reg = (pa_sc_viz_query_reg & ~PA_SC_VIZ_QUERY_VIZ_QUERY_ID_MASK) | (viz_query_id << PA_SC_VIZ_QUERY_VIZ_QUERY_ID_SHIFT)
+#define PA_SC_VIZ_QUERY_SET_KILL_PIX_POST_EARLY_Z(pa_sc_viz_query_reg, kill_pix_post_early_z) \
+ pa_sc_viz_query_reg = (pa_sc_viz_query_reg & ~PA_SC_VIZ_QUERY_KILL_PIX_POST_EARLY_Z_MASK) | (kill_pix_post_early_z << PA_SC_VIZ_QUERY_KILL_PIX_POST_EARLY_Z_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_viz_query_t {
+ unsigned int viz_query_ena : PA_SC_VIZ_QUERY_VIZ_QUERY_ENA_SIZE;
+ unsigned int viz_query_id : PA_SC_VIZ_QUERY_VIZ_QUERY_ID_SIZE;
+ unsigned int : 1;
+ unsigned int kill_pix_post_early_z : PA_SC_VIZ_QUERY_KILL_PIX_POST_EARLY_Z_SIZE;
+ unsigned int : 24;
+ } pa_sc_viz_query_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_viz_query_t {
+ unsigned int : 24;
+ unsigned int kill_pix_post_early_z : PA_SC_VIZ_QUERY_KILL_PIX_POST_EARLY_Z_SIZE;
+ unsigned int : 1;
+ unsigned int viz_query_id : PA_SC_VIZ_QUERY_VIZ_QUERY_ID_SIZE;
+ unsigned int viz_query_ena : PA_SC_VIZ_QUERY_VIZ_QUERY_ENA_SIZE;
+ } pa_sc_viz_query_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_viz_query_t f;
+} pa_sc_viz_query_u;
+
+
+/*
+ * PA_SC_VIZ_QUERY_STATUS struct
+ */
+
+#define PA_SC_VIZ_QUERY_STATUS_STATUS_BITS_SIZE 32
+
+#define PA_SC_VIZ_QUERY_STATUS_STATUS_BITS_SHIFT 0
+
+#define PA_SC_VIZ_QUERY_STATUS_STATUS_BITS_MASK 0xffffffff
+
+#define PA_SC_VIZ_QUERY_STATUS_MASK \
+ (PA_SC_VIZ_QUERY_STATUS_STATUS_BITS_MASK)
+
+#define PA_SC_VIZ_QUERY_STATUS(status_bits) \
+ ((status_bits << PA_SC_VIZ_QUERY_STATUS_STATUS_BITS_SHIFT))
+
+#define PA_SC_VIZ_QUERY_STATUS_GET_STATUS_BITS(pa_sc_viz_query_status) \
+ ((pa_sc_viz_query_status & PA_SC_VIZ_QUERY_STATUS_STATUS_BITS_MASK) >> PA_SC_VIZ_QUERY_STATUS_STATUS_BITS_SHIFT)
+
+#define PA_SC_VIZ_QUERY_STATUS_SET_STATUS_BITS(pa_sc_viz_query_status_reg, status_bits) \
+ pa_sc_viz_query_status_reg = (pa_sc_viz_query_status_reg & ~PA_SC_VIZ_QUERY_STATUS_STATUS_BITS_MASK) | (status_bits << PA_SC_VIZ_QUERY_STATUS_STATUS_BITS_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_viz_query_status_t {
+ unsigned int status_bits : PA_SC_VIZ_QUERY_STATUS_STATUS_BITS_SIZE;
+ } pa_sc_viz_query_status_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_viz_query_status_t {
+ unsigned int status_bits : PA_SC_VIZ_QUERY_STATUS_STATUS_BITS_SIZE;
+ } pa_sc_viz_query_status_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_viz_query_status_t f;
+} pa_sc_viz_query_status_u;
+
+
+/*
+ * PA_SC_LINE_STIPPLE_STATE struct
+ */
+
+#define PA_SC_LINE_STIPPLE_STATE_CURRENT_PTR_SIZE 4
+#define PA_SC_LINE_STIPPLE_STATE_CURRENT_COUNT_SIZE 8
+
+#define PA_SC_LINE_STIPPLE_STATE_CURRENT_PTR_SHIFT 0
+#define PA_SC_LINE_STIPPLE_STATE_CURRENT_COUNT_SHIFT 8
+
+#define PA_SC_LINE_STIPPLE_STATE_CURRENT_PTR_MASK 0x0000000f
+#define PA_SC_LINE_STIPPLE_STATE_CURRENT_COUNT_MASK 0x0000ff00
+
+#define PA_SC_LINE_STIPPLE_STATE_MASK \
+ (PA_SC_LINE_STIPPLE_STATE_CURRENT_PTR_MASK | \
+ PA_SC_LINE_STIPPLE_STATE_CURRENT_COUNT_MASK)
+
+#define PA_SC_LINE_STIPPLE_STATE(current_ptr, current_count) \
+ ((current_ptr << PA_SC_LINE_STIPPLE_STATE_CURRENT_PTR_SHIFT) | \
+ (current_count << PA_SC_LINE_STIPPLE_STATE_CURRENT_COUNT_SHIFT))
+
+#define PA_SC_LINE_STIPPLE_STATE_GET_CURRENT_PTR(pa_sc_line_stipple_state) \
+ ((pa_sc_line_stipple_state & PA_SC_LINE_STIPPLE_STATE_CURRENT_PTR_MASK) >> PA_SC_LINE_STIPPLE_STATE_CURRENT_PTR_SHIFT)
+#define PA_SC_LINE_STIPPLE_STATE_GET_CURRENT_COUNT(pa_sc_line_stipple_state) \
+ ((pa_sc_line_stipple_state & PA_SC_LINE_STIPPLE_STATE_CURRENT_COUNT_MASK) >> PA_SC_LINE_STIPPLE_STATE_CURRENT_COUNT_SHIFT)
+
+#define PA_SC_LINE_STIPPLE_STATE_SET_CURRENT_PTR(pa_sc_line_stipple_state_reg, current_ptr) \
+ pa_sc_line_stipple_state_reg = (pa_sc_line_stipple_state_reg & ~PA_SC_LINE_STIPPLE_STATE_CURRENT_PTR_MASK) | (current_ptr << PA_SC_LINE_STIPPLE_STATE_CURRENT_PTR_SHIFT)
+#define PA_SC_LINE_STIPPLE_STATE_SET_CURRENT_COUNT(pa_sc_line_stipple_state_reg, current_count) \
+ pa_sc_line_stipple_state_reg = (pa_sc_line_stipple_state_reg & ~PA_SC_LINE_STIPPLE_STATE_CURRENT_COUNT_MASK) | (current_count << PA_SC_LINE_STIPPLE_STATE_CURRENT_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_line_stipple_state_t {
+ unsigned int current_ptr : PA_SC_LINE_STIPPLE_STATE_CURRENT_PTR_SIZE;
+ unsigned int : 4;
+ unsigned int current_count : PA_SC_LINE_STIPPLE_STATE_CURRENT_COUNT_SIZE;
+ unsigned int : 16;
+ } pa_sc_line_stipple_state_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_line_stipple_state_t {
+ unsigned int : 16;
+ unsigned int current_count : PA_SC_LINE_STIPPLE_STATE_CURRENT_COUNT_SIZE;
+ unsigned int : 4;
+ unsigned int current_ptr : PA_SC_LINE_STIPPLE_STATE_CURRENT_PTR_SIZE;
+ } pa_sc_line_stipple_state_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_line_stipple_state_t f;
+} pa_sc_line_stipple_state_u;
+
+
+/*
+ * PA_SC_PERFCOUNTER0_SELECT struct
+ */
+
+#define PA_SC_PERFCOUNTER0_SELECT_PERF_SEL_SIZE 8
+
+#define PA_SC_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT 0
+
+#define PA_SC_PERFCOUNTER0_SELECT_PERF_SEL_MASK 0x000000ff
+
+#define PA_SC_PERFCOUNTER0_SELECT_MASK \
+ (PA_SC_PERFCOUNTER0_SELECT_PERF_SEL_MASK)
+
+#define PA_SC_PERFCOUNTER0_SELECT(perf_sel) \
+ ((perf_sel << PA_SC_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT))
+
+#define PA_SC_PERFCOUNTER0_SELECT_GET_PERF_SEL(pa_sc_perfcounter0_select) \
+ ((pa_sc_perfcounter0_select & PA_SC_PERFCOUNTER0_SELECT_PERF_SEL_MASK) >> PA_SC_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT)
+
+#define PA_SC_PERFCOUNTER0_SELECT_SET_PERF_SEL(pa_sc_perfcounter0_select_reg, perf_sel) \
+ pa_sc_perfcounter0_select_reg = (pa_sc_perfcounter0_select_reg & ~PA_SC_PERFCOUNTER0_SELECT_PERF_SEL_MASK) | (perf_sel << PA_SC_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_perfcounter0_select_t {
+ unsigned int perf_sel : PA_SC_PERFCOUNTER0_SELECT_PERF_SEL_SIZE;
+ unsigned int : 24;
+ } pa_sc_perfcounter0_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_perfcounter0_select_t {
+ unsigned int : 24;
+ unsigned int perf_sel : PA_SC_PERFCOUNTER0_SELECT_PERF_SEL_SIZE;
+ } pa_sc_perfcounter0_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_perfcounter0_select_t f;
+} pa_sc_perfcounter0_select_u;
+
+
+/*
+ * PA_SC_PERFCOUNTER0_LOW struct
+ */
+
+#define PA_SC_PERFCOUNTER0_LOW_PERF_COUNT_SIZE 32
+
+#define PA_SC_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT 0
+
+#define PA_SC_PERFCOUNTER0_LOW_PERF_COUNT_MASK 0xffffffff
+
+#define PA_SC_PERFCOUNTER0_LOW_MASK \
+ (PA_SC_PERFCOUNTER0_LOW_PERF_COUNT_MASK)
+
+#define PA_SC_PERFCOUNTER0_LOW(perf_count) \
+ ((perf_count << PA_SC_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT))
+
+#define PA_SC_PERFCOUNTER0_LOW_GET_PERF_COUNT(pa_sc_perfcounter0_low) \
+ ((pa_sc_perfcounter0_low & PA_SC_PERFCOUNTER0_LOW_PERF_COUNT_MASK) >> PA_SC_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT)
+
+#define PA_SC_PERFCOUNTER0_LOW_SET_PERF_COUNT(pa_sc_perfcounter0_low_reg, perf_count) \
+ pa_sc_perfcounter0_low_reg = (pa_sc_perfcounter0_low_reg & ~PA_SC_PERFCOUNTER0_LOW_PERF_COUNT_MASK) | (perf_count << PA_SC_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_perfcounter0_low_t {
+ unsigned int perf_count : PA_SC_PERFCOUNTER0_LOW_PERF_COUNT_SIZE;
+ } pa_sc_perfcounter0_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_perfcounter0_low_t {
+ unsigned int perf_count : PA_SC_PERFCOUNTER0_LOW_PERF_COUNT_SIZE;
+ } pa_sc_perfcounter0_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_perfcounter0_low_t f;
+} pa_sc_perfcounter0_low_u;
+
+
+/*
+ * PA_SC_PERFCOUNTER0_HI struct
+ */
+
+#define PA_SC_PERFCOUNTER0_HI_PERF_COUNT_SIZE 16
+
+#define PA_SC_PERFCOUNTER0_HI_PERF_COUNT_SHIFT 0
+
+#define PA_SC_PERFCOUNTER0_HI_PERF_COUNT_MASK 0x0000ffff
+
+#define PA_SC_PERFCOUNTER0_HI_MASK \
+ (PA_SC_PERFCOUNTER0_HI_PERF_COUNT_MASK)
+
+#define PA_SC_PERFCOUNTER0_HI(perf_count) \
+ ((perf_count << PA_SC_PERFCOUNTER0_HI_PERF_COUNT_SHIFT))
+
+#define PA_SC_PERFCOUNTER0_HI_GET_PERF_COUNT(pa_sc_perfcounter0_hi) \
+ ((pa_sc_perfcounter0_hi & PA_SC_PERFCOUNTER0_HI_PERF_COUNT_MASK) >> PA_SC_PERFCOUNTER0_HI_PERF_COUNT_SHIFT)
+
+#define PA_SC_PERFCOUNTER0_HI_SET_PERF_COUNT(pa_sc_perfcounter0_hi_reg, perf_count) \
+ pa_sc_perfcounter0_hi_reg = (pa_sc_perfcounter0_hi_reg & ~PA_SC_PERFCOUNTER0_HI_PERF_COUNT_MASK) | (perf_count << PA_SC_PERFCOUNTER0_HI_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_perfcounter0_hi_t {
+ unsigned int perf_count : PA_SC_PERFCOUNTER0_HI_PERF_COUNT_SIZE;
+ unsigned int : 16;
+ } pa_sc_perfcounter0_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_perfcounter0_hi_t {
+ unsigned int : 16;
+ unsigned int perf_count : PA_SC_PERFCOUNTER0_HI_PERF_COUNT_SIZE;
+ } pa_sc_perfcounter0_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_perfcounter0_hi_t f;
+} pa_sc_perfcounter0_hi_u;
+
+
+/*
+ * PA_CL_CNTL_STATUS struct
+ */
+
+#define PA_CL_CNTL_STATUS_CL_BUSY_SIZE 1
+
+#define PA_CL_CNTL_STATUS_CL_BUSY_SHIFT 31
+
+#define PA_CL_CNTL_STATUS_CL_BUSY_MASK 0x80000000
+
+#define PA_CL_CNTL_STATUS_MASK \
+ (PA_CL_CNTL_STATUS_CL_BUSY_MASK)
+
+#define PA_CL_CNTL_STATUS(cl_busy) \
+ ((cl_busy << PA_CL_CNTL_STATUS_CL_BUSY_SHIFT))
+
+#define PA_CL_CNTL_STATUS_GET_CL_BUSY(pa_cl_cntl_status) \
+ ((pa_cl_cntl_status & PA_CL_CNTL_STATUS_CL_BUSY_MASK) >> PA_CL_CNTL_STATUS_CL_BUSY_SHIFT)
+
+#define PA_CL_CNTL_STATUS_SET_CL_BUSY(pa_cl_cntl_status_reg, cl_busy) \
+ pa_cl_cntl_status_reg = (pa_cl_cntl_status_reg & ~PA_CL_CNTL_STATUS_CL_BUSY_MASK) | (cl_busy << PA_CL_CNTL_STATUS_CL_BUSY_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_cl_cntl_status_t {
+ unsigned int : 31;
+ unsigned int cl_busy : PA_CL_CNTL_STATUS_CL_BUSY_SIZE;
+ } pa_cl_cntl_status_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_cl_cntl_status_t {
+ unsigned int cl_busy : PA_CL_CNTL_STATUS_CL_BUSY_SIZE;
+ unsigned int : 31;
+ } pa_cl_cntl_status_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_cl_cntl_status_t f;
+} pa_cl_cntl_status_u;
+
+
+/*
+ * PA_SU_CNTL_STATUS struct
+ */
+
+#define PA_SU_CNTL_STATUS_SU_BUSY_SIZE 1
+
+#define PA_SU_CNTL_STATUS_SU_BUSY_SHIFT 31
+
+#define PA_SU_CNTL_STATUS_SU_BUSY_MASK 0x80000000
+
+#define PA_SU_CNTL_STATUS_MASK \
+ (PA_SU_CNTL_STATUS_SU_BUSY_MASK)
+
+#define PA_SU_CNTL_STATUS(su_busy) \
+ ((su_busy << PA_SU_CNTL_STATUS_SU_BUSY_SHIFT))
+
+#define PA_SU_CNTL_STATUS_GET_SU_BUSY(pa_su_cntl_status) \
+ ((pa_su_cntl_status & PA_SU_CNTL_STATUS_SU_BUSY_MASK) >> PA_SU_CNTL_STATUS_SU_BUSY_SHIFT)
+
+#define PA_SU_CNTL_STATUS_SET_SU_BUSY(pa_su_cntl_status_reg, su_busy) \
+ pa_su_cntl_status_reg = (pa_su_cntl_status_reg & ~PA_SU_CNTL_STATUS_SU_BUSY_MASK) | (su_busy << PA_SU_CNTL_STATUS_SU_BUSY_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_cntl_status_t {
+ unsigned int : 31;
+ unsigned int su_busy : PA_SU_CNTL_STATUS_SU_BUSY_SIZE;
+ } pa_su_cntl_status_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_cntl_status_t {
+ unsigned int su_busy : PA_SU_CNTL_STATUS_SU_BUSY_SIZE;
+ unsigned int : 31;
+ } pa_su_cntl_status_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_cntl_status_t f;
+} pa_su_cntl_status_u;
+
+
+/*
+ * PA_SC_CNTL_STATUS struct
+ */
+
+#define PA_SC_CNTL_STATUS_SC_BUSY_SIZE 1
+
+#define PA_SC_CNTL_STATUS_SC_BUSY_SHIFT 31
+
+#define PA_SC_CNTL_STATUS_SC_BUSY_MASK 0x80000000
+
+#define PA_SC_CNTL_STATUS_MASK \
+ (PA_SC_CNTL_STATUS_SC_BUSY_MASK)
+
+#define PA_SC_CNTL_STATUS(sc_busy) \
+ ((sc_busy << PA_SC_CNTL_STATUS_SC_BUSY_SHIFT))
+
+#define PA_SC_CNTL_STATUS_GET_SC_BUSY(pa_sc_cntl_status) \
+ ((pa_sc_cntl_status & PA_SC_CNTL_STATUS_SC_BUSY_MASK) >> PA_SC_CNTL_STATUS_SC_BUSY_SHIFT)
+
+#define PA_SC_CNTL_STATUS_SET_SC_BUSY(pa_sc_cntl_status_reg, sc_busy) \
+ pa_sc_cntl_status_reg = (pa_sc_cntl_status_reg & ~PA_SC_CNTL_STATUS_SC_BUSY_MASK) | (sc_busy << PA_SC_CNTL_STATUS_SC_BUSY_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_cntl_status_t {
+ unsigned int : 31;
+ unsigned int sc_busy : PA_SC_CNTL_STATUS_SC_BUSY_SIZE;
+ } pa_sc_cntl_status_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_cntl_status_t {
+ unsigned int sc_busy : PA_SC_CNTL_STATUS_SC_BUSY_SIZE;
+ unsigned int : 31;
+ } pa_sc_cntl_status_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_cntl_status_t f;
+} pa_sc_cntl_status_u;
+
+
+/*
+ * PA_SU_DEBUG_CNTL struct
+ */
+
+#define PA_SU_DEBUG_CNTL_SU_DEBUG_INDX_SIZE 5
+
+#define PA_SU_DEBUG_CNTL_SU_DEBUG_INDX_SHIFT 0
+
+#define PA_SU_DEBUG_CNTL_SU_DEBUG_INDX_MASK 0x0000001f
+
+#define PA_SU_DEBUG_CNTL_MASK \
+ (PA_SU_DEBUG_CNTL_SU_DEBUG_INDX_MASK)
+
+#define PA_SU_DEBUG_CNTL(su_debug_indx) \
+ ((su_debug_indx << PA_SU_DEBUG_CNTL_SU_DEBUG_INDX_SHIFT))
+
+#define PA_SU_DEBUG_CNTL_GET_SU_DEBUG_INDX(pa_su_debug_cntl) \
+ ((pa_su_debug_cntl & PA_SU_DEBUG_CNTL_SU_DEBUG_INDX_MASK) >> PA_SU_DEBUG_CNTL_SU_DEBUG_INDX_SHIFT)
+
+#define PA_SU_DEBUG_CNTL_SET_SU_DEBUG_INDX(pa_su_debug_cntl_reg, su_debug_indx) \
+ pa_su_debug_cntl_reg = (pa_su_debug_cntl_reg & ~PA_SU_DEBUG_CNTL_SU_DEBUG_INDX_MASK) | (su_debug_indx << PA_SU_DEBUG_CNTL_SU_DEBUG_INDX_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_debug_cntl_t {
+ unsigned int su_debug_indx : PA_SU_DEBUG_CNTL_SU_DEBUG_INDX_SIZE;
+ unsigned int : 27;
+ } pa_su_debug_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_debug_cntl_t {
+ unsigned int : 27;
+ unsigned int su_debug_indx : PA_SU_DEBUG_CNTL_SU_DEBUG_INDX_SIZE;
+ } pa_su_debug_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_debug_cntl_t f;
+} pa_su_debug_cntl_u;
+
+
+/*
+ * PA_SU_DEBUG_DATA struct
+ */
+
+#define PA_SU_DEBUG_DATA_DATA_SIZE 32
+
+#define PA_SU_DEBUG_DATA_DATA_SHIFT 0
+
+#define PA_SU_DEBUG_DATA_DATA_MASK 0xffffffff
+
+#define PA_SU_DEBUG_DATA_MASK \
+ (PA_SU_DEBUG_DATA_DATA_MASK)
+
+#define PA_SU_DEBUG_DATA(data) \
+ ((data << PA_SU_DEBUG_DATA_DATA_SHIFT))
+
+#define PA_SU_DEBUG_DATA_GET_DATA(pa_su_debug_data) \
+ ((pa_su_debug_data & PA_SU_DEBUG_DATA_DATA_MASK) >> PA_SU_DEBUG_DATA_DATA_SHIFT)
+
+#define PA_SU_DEBUG_DATA_SET_DATA(pa_su_debug_data_reg, data) \
+ pa_su_debug_data_reg = (pa_su_debug_data_reg & ~PA_SU_DEBUG_DATA_DATA_MASK) | (data << PA_SU_DEBUG_DATA_DATA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_debug_data_t {
+ unsigned int data : PA_SU_DEBUG_DATA_DATA_SIZE;
+ } pa_su_debug_data_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_debug_data_t {
+ unsigned int data : PA_SU_DEBUG_DATA_DATA_SIZE;
+ } pa_su_debug_data_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_debug_data_t f;
+} pa_su_debug_data_u;
+
+
+/*
+ * CLIPPER_DEBUG_REG00 struct
+ */
+
+#define CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_write_SIZE 1
+#define CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_full_SIZE 1
+#define CLIPPER_DEBUG_REG00_clip_to_ga_fifo_write_SIZE 1
+#define CLIPPER_DEBUG_REG00_clip_to_ga_fifo_full_SIZE 1
+#define CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_empty_SIZE 1
+#define CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_full_SIZE 1
+#define CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_empty_SIZE 1
+#define CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_full_SIZE 1
+#define CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_empty_SIZE 1
+#define CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_full_SIZE 1
+#define CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_empty_SIZE 1
+#define CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_full_SIZE 1
+#define CLIPPER_DEBUG_REG00_clipcode_fifo_fifo_empty_SIZE 1
+#define CLIPPER_DEBUG_REG00_clipcode_fifo_full_SIZE 1
+#define CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_empty_SIZE 1
+#define CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_full_SIZE 1
+#define CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_empty_SIZE 1
+#define CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_full_SIZE 1
+#define CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_empty_SIZE 1
+#define CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_full_SIZE 1
+#define CLIPPER_DEBUG_REG00_ALWAYS_ZERO_SIZE 12
+
+#define CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_write_SHIFT 0
+#define CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_full_SHIFT 1
+#define CLIPPER_DEBUG_REG00_clip_to_ga_fifo_write_SHIFT 2
+#define CLIPPER_DEBUG_REG00_clip_to_ga_fifo_full_SHIFT 3
+#define CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_empty_SHIFT 4
+#define CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_full_SHIFT 5
+#define CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_empty_SHIFT 6
+#define CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_full_SHIFT 7
+#define CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_empty_SHIFT 8
+#define CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_full_SHIFT 9
+#define CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_empty_SHIFT 10
+#define CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_full_SHIFT 11
+#define CLIPPER_DEBUG_REG00_clipcode_fifo_fifo_empty_SHIFT 12
+#define CLIPPER_DEBUG_REG00_clipcode_fifo_full_SHIFT 13
+#define CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_empty_SHIFT 14
+#define CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_full_SHIFT 15
+#define CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_empty_SHIFT 16
+#define CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_full_SHIFT 17
+#define CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_empty_SHIFT 18
+#define CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_full_SHIFT 19
+#define CLIPPER_DEBUG_REG00_ALWAYS_ZERO_SHIFT 20
+
+#define CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_write_MASK 0x00000001
+#define CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_full_MASK 0x00000002
+#define CLIPPER_DEBUG_REG00_clip_to_ga_fifo_write_MASK 0x00000004
+#define CLIPPER_DEBUG_REG00_clip_to_ga_fifo_full_MASK 0x00000008
+#define CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_empty_MASK 0x00000010
+#define CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_full_MASK 0x00000020
+#define CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_empty_MASK 0x00000040
+#define CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_full_MASK 0x00000080
+#define CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_empty_MASK 0x00000100
+#define CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_full_MASK 0x00000200
+#define CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_empty_MASK 0x00000400
+#define CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_full_MASK 0x00000800
+#define CLIPPER_DEBUG_REG00_clipcode_fifo_fifo_empty_MASK 0x00001000
+#define CLIPPER_DEBUG_REG00_clipcode_fifo_full_MASK 0x00002000
+#define CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_empty_MASK 0x00004000
+#define CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_full_MASK 0x00008000
+#define CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_empty_MASK 0x00010000
+#define CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_full_MASK 0x00020000
+#define CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_empty_MASK 0x00040000
+#define CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_full_MASK 0x00080000
+#define CLIPPER_DEBUG_REG00_ALWAYS_ZERO_MASK 0xfff00000
+
+#define CLIPPER_DEBUG_REG00_MASK \
+ (CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_write_MASK | \
+ CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_full_MASK | \
+ CLIPPER_DEBUG_REG00_clip_to_ga_fifo_write_MASK | \
+ CLIPPER_DEBUG_REG00_clip_to_ga_fifo_full_MASK | \
+ CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_empty_MASK | \
+ CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_full_MASK | \
+ CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_empty_MASK | \
+ CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_full_MASK | \
+ CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_empty_MASK | \
+ CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_full_MASK | \
+ CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_empty_MASK | \
+ CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_full_MASK | \
+ CLIPPER_DEBUG_REG00_clipcode_fifo_fifo_empty_MASK | \
+ CLIPPER_DEBUG_REG00_clipcode_fifo_full_MASK | \
+ CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_empty_MASK | \
+ CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_full_MASK | \
+ CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_empty_MASK | \
+ CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_full_MASK | \
+ CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_empty_MASK | \
+ CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_full_MASK | \
+ CLIPPER_DEBUG_REG00_ALWAYS_ZERO_MASK)
+
+#define CLIPPER_DEBUG_REG00(clip_ga_bc_fifo_write, clip_ga_bc_fifo_full, clip_to_ga_fifo_write, clip_to_ga_fifo_full, primic_to_clprim_fifo_empty, primic_to_clprim_fifo_full, clip_to_outsm_fifo_empty, clip_to_outsm_fifo_full, vgt_to_clipp_fifo_empty, vgt_to_clipp_fifo_full, vgt_to_clips_fifo_empty, vgt_to_clips_fifo_full, clipcode_fifo_fifo_empty, clipcode_fifo_full, vte_out_clip_fifo_fifo_empty, vte_out_clip_fifo_fifo_full, vte_out_orig_fifo_fifo_empty, vte_out_orig_fifo_fifo_full, ccgen_to_clipcc_fifo_empty, ccgen_to_clipcc_fifo_full, always_zero) \
+ ((clip_ga_bc_fifo_write << CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_write_SHIFT) | \
+ (clip_ga_bc_fifo_full << CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_full_SHIFT) | \
+ (clip_to_ga_fifo_write << CLIPPER_DEBUG_REG00_clip_to_ga_fifo_write_SHIFT) | \
+ (clip_to_ga_fifo_full << CLIPPER_DEBUG_REG00_clip_to_ga_fifo_full_SHIFT) | \
+ (primic_to_clprim_fifo_empty << CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_empty_SHIFT) | \
+ (primic_to_clprim_fifo_full << CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_full_SHIFT) | \
+ (clip_to_outsm_fifo_empty << CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_empty_SHIFT) | \
+ (clip_to_outsm_fifo_full << CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_full_SHIFT) | \
+ (vgt_to_clipp_fifo_empty << CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_empty_SHIFT) | \
+ (vgt_to_clipp_fifo_full << CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_full_SHIFT) | \
+ (vgt_to_clips_fifo_empty << CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_empty_SHIFT) | \
+ (vgt_to_clips_fifo_full << CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_full_SHIFT) | \
+ (clipcode_fifo_fifo_empty << CLIPPER_DEBUG_REG00_clipcode_fifo_fifo_empty_SHIFT) | \
+ (clipcode_fifo_full << CLIPPER_DEBUG_REG00_clipcode_fifo_full_SHIFT) | \
+ (vte_out_clip_fifo_fifo_empty << CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_empty_SHIFT) | \
+ (vte_out_clip_fifo_fifo_full << CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_full_SHIFT) | \
+ (vte_out_orig_fifo_fifo_empty << CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_empty_SHIFT) | \
+ (vte_out_orig_fifo_fifo_full << CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_full_SHIFT) | \
+ (ccgen_to_clipcc_fifo_empty << CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_empty_SHIFT) | \
+ (ccgen_to_clipcc_fifo_full << CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_full_SHIFT) | \
+ (always_zero << CLIPPER_DEBUG_REG00_ALWAYS_ZERO_SHIFT))
+
+#define CLIPPER_DEBUG_REG00_GET_clip_ga_bc_fifo_write(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_write_MASK) >> CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_write_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_clip_ga_bc_fifo_full(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_full_MASK) >> CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_clip_to_ga_fifo_write(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_clip_to_ga_fifo_write_MASK) >> CLIPPER_DEBUG_REG00_clip_to_ga_fifo_write_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_clip_to_ga_fifo_full(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_clip_to_ga_fifo_full_MASK) >> CLIPPER_DEBUG_REG00_clip_to_ga_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_primic_to_clprim_fifo_empty(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_empty_MASK) >> CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_primic_to_clprim_fifo_full(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_full_MASK) >> CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_clip_to_outsm_fifo_empty(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_empty_MASK) >> CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_clip_to_outsm_fifo_full(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_full_MASK) >> CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_vgt_to_clipp_fifo_empty(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_empty_MASK) >> CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_vgt_to_clipp_fifo_full(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_full_MASK) >> CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_vgt_to_clips_fifo_empty(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_empty_MASK) >> CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_vgt_to_clips_fifo_full(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_full_MASK) >> CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_clipcode_fifo_fifo_empty(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_clipcode_fifo_fifo_empty_MASK) >> CLIPPER_DEBUG_REG00_clipcode_fifo_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_clipcode_fifo_full(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_clipcode_fifo_full_MASK) >> CLIPPER_DEBUG_REG00_clipcode_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_vte_out_clip_fifo_fifo_empty(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_empty_MASK) >> CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_vte_out_clip_fifo_fifo_full(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_full_MASK) >> CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_vte_out_orig_fifo_fifo_empty(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_empty_MASK) >> CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_vte_out_orig_fifo_fifo_full(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_full_MASK) >> CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_ccgen_to_clipcc_fifo_empty(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_empty_MASK) >> CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_ccgen_to_clipcc_fifo_full(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_full_MASK) >> CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_ALWAYS_ZERO(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_ALWAYS_ZERO_MASK) >> CLIPPER_DEBUG_REG00_ALWAYS_ZERO_SHIFT)
+
+#define CLIPPER_DEBUG_REG00_SET_clip_ga_bc_fifo_write(clipper_debug_reg00_reg, clip_ga_bc_fifo_write) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_write_MASK) | (clip_ga_bc_fifo_write << CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_write_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_clip_ga_bc_fifo_full(clipper_debug_reg00_reg, clip_ga_bc_fifo_full) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_full_MASK) | (clip_ga_bc_fifo_full << CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_clip_to_ga_fifo_write(clipper_debug_reg00_reg, clip_to_ga_fifo_write) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_clip_to_ga_fifo_write_MASK) | (clip_to_ga_fifo_write << CLIPPER_DEBUG_REG00_clip_to_ga_fifo_write_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_clip_to_ga_fifo_full(clipper_debug_reg00_reg, clip_to_ga_fifo_full) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_clip_to_ga_fifo_full_MASK) | (clip_to_ga_fifo_full << CLIPPER_DEBUG_REG00_clip_to_ga_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_primic_to_clprim_fifo_empty(clipper_debug_reg00_reg, primic_to_clprim_fifo_empty) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_empty_MASK) | (primic_to_clprim_fifo_empty << CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_primic_to_clprim_fifo_full(clipper_debug_reg00_reg, primic_to_clprim_fifo_full) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_full_MASK) | (primic_to_clprim_fifo_full << CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_clip_to_outsm_fifo_empty(clipper_debug_reg00_reg, clip_to_outsm_fifo_empty) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_empty_MASK) | (clip_to_outsm_fifo_empty << CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_clip_to_outsm_fifo_full(clipper_debug_reg00_reg, clip_to_outsm_fifo_full) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_full_MASK) | (clip_to_outsm_fifo_full << CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_vgt_to_clipp_fifo_empty(clipper_debug_reg00_reg, vgt_to_clipp_fifo_empty) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_empty_MASK) | (vgt_to_clipp_fifo_empty << CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_vgt_to_clipp_fifo_full(clipper_debug_reg00_reg, vgt_to_clipp_fifo_full) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_full_MASK) | (vgt_to_clipp_fifo_full << CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_vgt_to_clips_fifo_empty(clipper_debug_reg00_reg, vgt_to_clips_fifo_empty) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_empty_MASK) | (vgt_to_clips_fifo_empty << CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_vgt_to_clips_fifo_full(clipper_debug_reg00_reg, vgt_to_clips_fifo_full) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_full_MASK) | (vgt_to_clips_fifo_full << CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_clipcode_fifo_fifo_empty(clipper_debug_reg00_reg, clipcode_fifo_fifo_empty) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_clipcode_fifo_fifo_empty_MASK) | (clipcode_fifo_fifo_empty << CLIPPER_DEBUG_REG00_clipcode_fifo_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_clipcode_fifo_full(clipper_debug_reg00_reg, clipcode_fifo_full) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_clipcode_fifo_full_MASK) | (clipcode_fifo_full << CLIPPER_DEBUG_REG00_clipcode_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_vte_out_clip_fifo_fifo_empty(clipper_debug_reg00_reg, vte_out_clip_fifo_fifo_empty) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_empty_MASK) | (vte_out_clip_fifo_fifo_empty << CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_vte_out_clip_fifo_fifo_full(clipper_debug_reg00_reg, vte_out_clip_fifo_fifo_full) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_full_MASK) | (vte_out_clip_fifo_fifo_full << CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_vte_out_orig_fifo_fifo_empty(clipper_debug_reg00_reg, vte_out_orig_fifo_fifo_empty) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_empty_MASK) | (vte_out_orig_fifo_fifo_empty << CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_vte_out_orig_fifo_fifo_full(clipper_debug_reg00_reg, vte_out_orig_fifo_fifo_full) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_full_MASK) | (vte_out_orig_fifo_fifo_full << CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_ccgen_to_clipcc_fifo_empty(clipper_debug_reg00_reg, ccgen_to_clipcc_fifo_empty) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_empty_MASK) | (ccgen_to_clipcc_fifo_empty << CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_ccgen_to_clipcc_fifo_full(clipper_debug_reg00_reg, ccgen_to_clipcc_fifo_full) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_full_MASK) | (ccgen_to_clipcc_fifo_full << CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_ALWAYS_ZERO(clipper_debug_reg00_reg, always_zero) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_ALWAYS_ZERO_MASK) | (always_zero << CLIPPER_DEBUG_REG00_ALWAYS_ZERO_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg00_t {
+ unsigned int clip_ga_bc_fifo_write : CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_write_SIZE;
+ unsigned int clip_ga_bc_fifo_full : CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_full_SIZE;
+ unsigned int clip_to_ga_fifo_write : CLIPPER_DEBUG_REG00_clip_to_ga_fifo_write_SIZE;
+ unsigned int clip_to_ga_fifo_full : CLIPPER_DEBUG_REG00_clip_to_ga_fifo_full_SIZE;
+ unsigned int primic_to_clprim_fifo_empty : CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_empty_SIZE;
+ unsigned int primic_to_clprim_fifo_full : CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_full_SIZE;
+ unsigned int clip_to_outsm_fifo_empty : CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_empty_SIZE;
+ unsigned int clip_to_outsm_fifo_full : CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_full_SIZE;
+ unsigned int vgt_to_clipp_fifo_empty : CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_empty_SIZE;
+ unsigned int vgt_to_clipp_fifo_full : CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_full_SIZE;
+ unsigned int vgt_to_clips_fifo_empty : CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_empty_SIZE;
+ unsigned int vgt_to_clips_fifo_full : CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_full_SIZE;
+ unsigned int clipcode_fifo_fifo_empty : CLIPPER_DEBUG_REG00_clipcode_fifo_fifo_empty_SIZE;
+ unsigned int clipcode_fifo_full : CLIPPER_DEBUG_REG00_clipcode_fifo_full_SIZE;
+ unsigned int vte_out_clip_fifo_fifo_empty : CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_empty_SIZE;
+ unsigned int vte_out_clip_fifo_fifo_full : CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_full_SIZE;
+ unsigned int vte_out_orig_fifo_fifo_empty : CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_empty_SIZE;
+ unsigned int vte_out_orig_fifo_fifo_full : CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_full_SIZE;
+ unsigned int ccgen_to_clipcc_fifo_empty : CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_empty_SIZE;
+ unsigned int ccgen_to_clipcc_fifo_full : CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_full_SIZE;
+ unsigned int always_zero : CLIPPER_DEBUG_REG00_ALWAYS_ZERO_SIZE;
+ } clipper_debug_reg00_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg00_t {
+ unsigned int always_zero : CLIPPER_DEBUG_REG00_ALWAYS_ZERO_SIZE;
+ unsigned int ccgen_to_clipcc_fifo_full : CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_full_SIZE;
+ unsigned int ccgen_to_clipcc_fifo_empty : CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_empty_SIZE;
+ unsigned int vte_out_orig_fifo_fifo_full : CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_full_SIZE;
+ unsigned int vte_out_orig_fifo_fifo_empty : CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_empty_SIZE;
+ unsigned int vte_out_clip_fifo_fifo_full : CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_full_SIZE;
+ unsigned int vte_out_clip_fifo_fifo_empty : CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_empty_SIZE;
+ unsigned int clipcode_fifo_full : CLIPPER_DEBUG_REG00_clipcode_fifo_full_SIZE;
+ unsigned int clipcode_fifo_fifo_empty : CLIPPER_DEBUG_REG00_clipcode_fifo_fifo_empty_SIZE;
+ unsigned int vgt_to_clips_fifo_full : CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_full_SIZE;
+ unsigned int vgt_to_clips_fifo_empty : CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_empty_SIZE;
+ unsigned int vgt_to_clipp_fifo_full : CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_full_SIZE;
+ unsigned int vgt_to_clipp_fifo_empty : CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_empty_SIZE;
+ unsigned int clip_to_outsm_fifo_full : CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_full_SIZE;
+ unsigned int clip_to_outsm_fifo_empty : CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_empty_SIZE;
+ unsigned int primic_to_clprim_fifo_full : CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_full_SIZE;
+ unsigned int primic_to_clprim_fifo_empty : CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_empty_SIZE;
+ unsigned int clip_to_ga_fifo_full : CLIPPER_DEBUG_REG00_clip_to_ga_fifo_full_SIZE;
+ unsigned int clip_to_ga_fifo_write : CLIPPER_DEBUG_REG00_clip_to_ga_fifo_write_SIZE;
+ unsigned int clip_ga_bc_fifo_full : CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_full_SIZE;
+ unsigned int clip_ga_bc_fifo_write : CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_write_SIZE;
+ } clipper_debug_reg00_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ clipper_debug_reg00_t f;
+} clipper_debug_reg00_u;
+
+
+/*
+ * CLIPPER_DEBUG_REG01 struct
+ */
+
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_end_of_packet_SIZE 1
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_first_prim_of_slot_SIZE 1
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_deallocate_slot_SIZE 3
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_clipped_prim_SIZE 1
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_null_primitive_SIZE 1
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_2_SIZE 4
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_1_SIZE 4
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_0_SIZE 4
+#define CLIPPER_DEBUG_REG01_clip_vert_vte_valid_SIZE 3
+#define CLIPPER_DEBUG_REG01_vte_out_clip_rd_vertex_store_indx_SIZE 2
+#define CLIPPER_DEBUG_REG01_ALWAYS_ZERO_SIZE 8
+
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_end_of_packet_SHIFT 0
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_first_prim_of_slot_SHIFT 1
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_deallocate_slot_SHIFT 2
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_clipped_prim_SHIFT 5
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_null_primitive_SHIFT 6
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_2_SHIFT 7
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_1_SHIFT 11
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_0_SHIFT 15
+#define CLIPPER_DEBUG_REG01_clip_vert_vte_valid_SHIFT 19
+#define CLIPPER_DEBUG_REG01_vte_out_clip_rd_vertex_store_indx_SHIFT 22
+#define CLIPPER_DEBUG_REG01_ALWAYS_ZERO_SHIFT 24
+
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_end_of_packet_MASK 0x00000001
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_first_prim_of_slot_MASK 0x00000002
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_deallocate_slot_MASK 0x0000001c
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_clipped_prim_MASK 0x00000020
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_null_primitive_MASK 0x00000040
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_2_MASK 0x00000780
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_1_MASK 0x00007800
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_0_MASK 0x00078000
+#define CLIPPER_DEBUG_REG01_clip_vert_vte_valid_MASK 0x00380000
+#define CLIPPER_DEBUG_REG01_vte_out_clip_rd_vertex_store_indx_MASK 0x00c00000
+#define CLIPPER_DEBUG_REG01_ALWAYS_ZERO_MASK 0xff000000
+
+#define CLIPPER_DEBUG_REG01_MASK \
+ (CLIPPER_DEBUG_REG01_clip_to_outsm_end_of_packet_MASK | \
+ CLIPPER_DEBUG_REG01_clip_to_outsm_first_prim_of_slot_MASK | \
+ CLIPPER_DEBUG_REG01_clip_to_outsm_deallocate_slot_MASK | \
+ CLIPPER_DEBUG_REG01_clip_to_outsm_clipped_prim_MASK | \
+ CLIPPER_DEBUG_REG01_clip_to_outsm_null_primitive_MASK | \
+ CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_2_MASK | \
+ CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_1_MASK | \
+ CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_0_MASK | \
+ CLIPPER_DEBUG_REG01_clip_vert_vte_valid_MASK | \
+ CLIPPER_DEBUG_REG01_vte_out_clip_rd_vertex_store_indx_MASK | \
+ CLIPPER_DEBUG_REG01_ALWAYS_ZERO_MASK)
+
+#define CLIPPER_DEBUG_REG01(clip_to_outsm_end_of_packet, clip_to_outsm_first_prim_of_slot, clip_to_outsm_deallocate_slot, clip_to_outsm_clipped_prim, clip_to_outsm_null_primitive, clip_to_outsm_vertex_store_indx_2, clip_to_outsm_vertex_store_indx_1, clip_to_outsm_vertex_store_indx_0, clip_vert_vte_valid, vte_out_clip_rd_vertex_store_indx, always_zero) \
+ ((clip_to_outsm_end_of_packet << CLIPPER_DEBUG_REG01_clip_to_outsm_end_of_packet_SHIFT) | \
+ (clip_to_outsm_first_prim_of_slot << CLIPPER_DEBUG_REG01_clip_to_outsm_first_prim_of_slot_SHIFT) | \
+ (clip_to_outsm_deallocate_slot << CLIPPER_DEBUG_REG01_clip_to_outsm_deallocate_slot_SHIFT) | \
+ (clip_to_outsm_clipped_prim << CLIPPER_DEBUG_REG01_clip_to_outsm_clipped_prim_SHIFT) | \
+ (clip_to_outsm_null_primitive << CLIPPER_DEBUG_REG01_clip_to_outsm_null_primitive_SHIFT) | \
+ (clip_to_outsm_vertex_store_indx_2 << CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_2_SHIFT) | \
+ (clip_to_outsm_vertex_store_indx_1 << CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_1_SHIFT) | \
+ (clip_to_outsm_vertex_store_indx_0 << CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_0_SHIFT) | \
+ (clip_vert_vte_valid << CLIPPER_DEBUG_REG01_clip_vert_vte_valid_SHIFT) | \
+ (vte_out_clip_rd_vertex_store_indx << CLIPPER_DEBUG_REG01_vte_out_clip_rd_vertex_store_indx_SHIFT) | \
+ (always_zero << CLIPPER_DEBUG_REG01_ALWAYS_ZERO_SHIFT))
+
+#define CLIPPER_DEBUG_REG01_GET_clip_to_outsm_end_of_packet(clipper_debug_reg01) \
+ ((clipper_debug_reg01 & CLIPPER_DEBUG_REG01_clip_to_outsm_end_of_packet_MASK) >> CLIPPER_DEBUG_REG01_clip_to_outsm_end_of_packet_SHIFT)
+#define CLIPPER_DEBUG_REG01_GET_clip_to_outsm_first_prim_of_slot(clipper_debug_reg01) \
+ ((clipper_debug_reg01 & CLIPPER_DEBUG_REG01_clip_to_outsm_first_prim_of_slot_MASK) >> CLIPPER_DEBUG_REG01_clip_to_outsm_first_prim_of_slot_SHIFT)
+#define CLIPPER_DEBUG_REG01_GET_clip_to_outsm_deallocate_slot(clipper_debug_reg01) \
+ ((clipper_debug_reg01 & CLIPPER_DEBUG_REG01_clip_to_outsm_deallocate_slot_MASK) >> CLIPPER_DEBUG_REG01_clip_to_outsm_deallocate_slot_SHIFT)
+#define CLIPPER_DEBUG_REG01_GET_clip_to_outsm_clipped_prim(clipper_debug_reg01) \
+ ((clipper_debug_reg01 & CLIPPER_DEBUG_REG01_clip_to_outsm_clipped_prim_MASK) >> CLIPPER_DEBUG_REG01_clip_to_outsm_clipped_prim_SHIFT)
+#define CLIPPER_DEBUG_REG01_GET_clip_to_outsm_null_primitive(clipper_debug_reg01) \
+ ((clipper_debug_reg01 & CLIPPER_DEBUG_REG01_clip_to_outsm_null_primitive_MASK) >> CLIPPER_DEBUG_REG01_clip_to_outsm_null_primitive_SHIFT)
+#define CLIPPER_DEBUG_REG01_GET_clip_to_outsm_vertex_store_indx_2(clipper_debug_reg01) \
+ ((clipper_debug_reg01 & CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_2_MASK) >> CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_2_SHIFT)
+#define CLIPPER_DEBUG_REG01_GET_clip_to_outsm_vertex_store_indx_1(clipper_debug_reg01) \
+ ((clipper_debug_reg01 & CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_1_MASK) >> CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_1_SHIFT)
+#define CLIPPER_DEBUG_REG01_GET_clip_to_outsm_vertex_store_indx_0(clipper_debug_reg01) \
+ ((clipper_debug_reg01 & CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_0_MASK) >> CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_0_SHIFT)
+#define CLIPPER_DEBUG_REG01_GET_clip_vert_vte_valid(clipper_debug_reg01) \
+ ((clipper_debug_reg01 & CLIPPER_DEBUG_REG01_clip_vert_vte_valid_MASK) >> CLIPPER_DEBUG_REG01_clip_vert_vte_valid_SHIFT)
+#define CLIPPER_DEBUG_REG01_GET_vte_out_clip_rd_vertex_store_indx(clipper_debug_reg01) \
+ ((clipper_debug_reg01 & CLIPPER_DEBUG_REG01_vte_out_clip_rd_vertex_store_indx_MASK) >> CLIPPER_DEBUG_REG01_vte_out_clip_rd_vertex_store_indx_SHIFT)
+#define CLIPPER_DEBUG_REG01_GET_ALWAYS_ZERO(clipper_debug_reg01) \
+ ((clipper_debug_reg01 & CLIPPER_DEBUG_REG01_ALWAYS_ZERO_MASK) >> CLIPPER_DEBUG_REG01_ALWAYS_ZERO_SHIFT)
+
+#define CLIPPER_DEBUG_REG01_SET_clip_to_outsm_end_of_packet(clipper_debug_reg01_reg, clip_to_outsm_end_of_packet) \
+ clipper_debug_reg01_reg = (clipper_debug_reg01_reg & ~CLIPPER_DEBUG_REG01_clip_to_outsm_end_of_packet_MASK) | (clip_to_outsm_end_of_packet << CLIPPER_DEBUG_REG01_clip_to_outsm_end_of_packet_SHIFT)
+#define CLIPPER_DEBUG_REG01_SET_clip_to_outsm_first_prim_of_slot(clipper_debug_reg01_reg, clip_to_outsm_first_prim_of_slot) \
+ clipper_debug_reg01_reg = (clipper_debug_reg01_reg & ~CLIPPER_DEBUG_REG01_clip_to_outsm_first_prim_of_slot_MASK) | (clip_to_outsm_first_prim_of_slot << CLIPPER_DEBUG_REG01_clip_to_outsm_first_prim_of_slot_SHIFT)
+#define CLIPPER_DEBUG_REG01_SET_clip_to_outsm_deallocate_slot(clipper_debug_reg01_reg, clip_to_outsm_deallocate_slot) \
+ clipper_debug_reg01_reg = (clipper_debug_reg01_reg & ~CLIPPER_DEBUG_REG01_clip_to_outsm_deallocate_slot_MASK) | (clip_to_outsm_deallocate_slot << CLIPPER_DEBUG_REG01_clip_to_outsm_deallocate_slot_SHIFT)
+#define CLIPPER_DEBUG_REG01_SET_clip_to_outsm_clipped_prim(clipper_debug_reg01_reg, clip_to_outsm_clipped_prim) \
+ clipper_debug_reg01_reg = (clipper_debug_reg01_reg & ~CLIPPER_DEBUG_REG01_clip_to_outsm_clipped_prim_MASK) | (clip_to_outsm_clipped_prim << CLIPPER_DEBUG_REG01_clip_to_outsm_clipped_prim_SHIFT)
+#define CLIPPER_DEBUG_REG01_SET_clip_to_outsm_null_primitive(clipper_debug_reg01_reg, clip_to_outsm_null_primitive) \
+ clipper_debug_reg01_reg = (clipper_debug_reg01_reg & ~CLIPPER_DEBUG_REG01_clip_to_outsm_null_primitive_MASK) | (clip_to_outsm_null_primitive << CLIPPER_DEBUG_REG01_clip_to_outsm_null_primitive_SHIFT)
+#define CLIPPER_DEBUG_REG01_SET_clip_to_outsm_vertex_store_indx_2(clipper_debug_reg01_reg, clip_to_outsm_vertex_store_indx_2) \
+ clipper_debug_reg01_reg = (clipper_debug_reg01_reg & ~CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_2_MASK) | (clip_to_outsm_vertex_store_indx_2 << CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_2_SHIFT)
+#define CLIPPER_DEBUG_REG01_SET_clip_to_outsm_vertex_store_indx_1(clipper_debug_reg01_reg, clip_to_outsm_vertex_store_indx_1) \
+ clipper_debug_reg01_reg = (clipper_debug_reg01_reg & ~CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_1_MASK) | (clip_to_outsm_vertex_store_indx_1 << CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_1_SHIFT)
+#define CLIPPER_DEBUG_REG01_SET_clip_to_outsm_vertex_store_indx_0(clipper_debug_reg01_reg, clip_to_outsm_vertex_store_indx_0) \
+ clipper_debug_reg01_reg = (clipper_debug_reg01_reg & ~CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_0_MASK) | (clip_to_outsm_vertex_store_indx_0 << CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_0_SHIFT)
+#define CLIPPER_DEBUG_REG01_SET_clip_vert_vte_valid(clipper_debug_reg01_reg, clip_vert_vte_valid) \
+ clipper_debug_reg01_reg = (clipper_debug_reg01_reg & ~CLIPPER_DEBUG_REG01_clip_vert_vte_valid_MASK) | (clip_vert_vte_valid << CLIPPER_DEBUG_REG01_clip_vert_vte_valid_SHIFT)
+#define CLIPPER_DEBUG_REG01_SET_vte_out_clip_rd_vertex_store_indx(clipper_debug_reg01_reg, vte_out_clip_rd_vertex_store_indx) \
+ clipper_debug_reg01_reg = (clipper_debug_reg01_reg & ~CLIPPER_DEBUG_REG01_vte_out_clip_rd_vertex_store_indx_MASK) | (vte_out_clip_rd_vertex_store_indx << CLIPPER_DEBUG_REG01_vte_out_clip_rd_vertex_store_indx_SHIFT)
+#define CLIPPER_DEBUG_REG01_SET_ALWAYS_ZERO(clipper_debug_reg01_reg, always_zero) \
+ clipper_debug_reg01_reg = (clipper_debug_reg01_reg & ~CLIPPER_DEBUG_REG01_ALWAYS_ZERO_MASK) | (always_zero << CLIPPER_DEBUG_REG01_ALWAYS_ZERO_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg01_t {
+ unsigned int clip_to_outsm_end_of_packet : CLIPPER_DEBUG_REG01_clip_to_outsm_end_of_packet_SIZE;
+ unsigned int clip_to_outsm_first_prim_of_slot : CLIPPER_DEBUG_REG01_clip_to_outsm_first_prim_of_slot_SIZE;
+ unsigned int clip_to_outsm_deallocate_slot : CLIPPER_DEBUG_REG01_clip_to_outsm_deallocate_slot_SIZE;
+ unsigned int clip_to_outsm_clipped_prim : CLIPPER_DEBUG_REG01_clip_to_outsm_clipped_prim_SIZE;
+ unsigned int clip_to_outsm_null_primitive : CLIPPER_DEBUG_REG01_clip_to_outsm_null_primitive_SIZE;
+ unsigned int clip_to_outsm_vertex_store_indx_2 : CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_2_SIZE;
+ unsigned int clip_to_outsm_vertex_store_indx_1 : CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_1_SIZE;
+ unsigned int clip_to_outsm_vertex_store_indx_0 : CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_0_SIZE;
+ unsigned int clip_vert_vte_valid : CLIPPER_DEBUG_REG01_clip_vert_vte_valid_SIZE;
+ unsigned int vte_out_clip_rd_vertex_store_indx : CLIPPER_DEBUG_REG01_vte_out_clip_rd_vertex_store_indx_SIZE;
+ unsigned int always_zero : CLIPPER_DEBUG_REG01_ALWAYS_ZERO_SIZE;
+ } clipper_debug_reg01_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg01_t {
+ unsigned int always_zero : CLIPPER_DEBUG_REG01_ALWAYS_ZERO_SIZE;
+ unsigned int vte_out_clip_rd_vertex_store_indx : CLIPPER_DEBUG_REG01_vte_out_clip_rd_vertex_store_indx_SIZE;
+ unsigned int clip_vert_vte_valid : CLIPPER_DEBUG_REG01_clip_vert_vte_valid_SIZE;
+ unsigned int clip_to_outsm_vertex_store_indx_0 : CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_0_SIZE;
+ unsigned int clip_to_outsm_vertex_store_indx_1 : CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_1_SIZE;
+ unsigned int clip_to_outsm_vertex_store_indx_2 : CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_2_SIZE;
+ unsigned int clip_to_outsm_null_primitive : CLIPPER_DEBUG_REG01_clip_to_outsm_null_primitive_SIZE;
+ unsigned int clip_to_outsm_clipped_prim : CLIPPER_DEBUG_REG01_clip_to_outsm_clipped_prim_SIZE;
+ unsigned int clip_to_outsm_deallocate_slot : CLIPPER_DEBUG_REG01_clip_to_outsm_deallocate_slot_SIZE;
+ unsigned int clip_to_outsm_first_prim_of_slot : CLIPPER_DEBUG_REG01_clip_to_outsm_first_prim_of_slot_SIZE;
+ unsigned int clip_to_outsm_end_of_packet : CLIPPER_DEBUG_REG01_clip_to_outsm_end_of_packet_SIZE;
+ } clipper_debug_reg01_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ clipper_debug_reg01_t f;
+} clipper_debug_reg01_u;
+
+
+/*
+ * CLIPPER_DEBUG_REG02 struct
+ */
+
+#define CLIPPER_DEBUG_REG02_ALWAYS_ZERO1_SIZE 21
+#define CLIPPER_DEBUG_REG02_clipsm0_clip_to_clipga_clip_to_outsm_cnt_SIZE 3
+#define CLIPPER_DEBUG_REG02_ALWAYS_ZERO0_SIZE 7
+#define CLIPPER_DEBUG_REG02_clipsm0_clprim_to_clip_prim_valid_SIZE 1
+
+#define CLIPPER_DEBUG_REG02_ALWAYS_ZERO1_SHIFT 0
+#define CLIPPER_DEBUG_REG02_clipsm0_clip_to_clipga_clip_to_outsm_cnt_SHIFT 21
+#define CLIPPER_DEBUG_REG02_ALWAYS_ZERO0_SHIFT 24
+#define CLIPPER_DEBUG_REG02_clipsm0_clprim_to_clip_prim_valid_SHIFT 31
+
+#define CLIPPER_DEBUG_REG02_ALWAYS_ZERO1_MASK 0x001fffff
+#define CLIPPER_DEBUG_REG02_clipsm0_clip_to_clipga_clip_to_outsm_cnt_MASK 0x00e00000
+#define CLIPPER_DEBUG_REG02_ALWAYS_ZERO0_MASK 0x7f000000
+#define CLIPPER_DEBUG_REG02_clipsm0_clprim_to_clip_prim_valid_MASK 0x80000000
+
+#define CLIPPER_DEBUG_REG02_MASK \
+ (CLIPPER_DEBUG_REG02_ALWAYS_ZERO1_MASK | \
+ CLIPPER_DEBUG_REG02_clipsm0_clip_to_clipga_clip_to_outsm_cnt_MASK | \
+ CLIPPER_DEBUG_REG02_ALWAYS_ZERO0_MASK | \
+ CLIPPER_DEBUG_REG02_clipsm0_clprim_to_clip_prim_valid_MASK)
+
+#define CLIPPER_DEBUG_REG02(always_zero1, clipsm0_clip_to_clipga_clip_to_outsm_cnt, always_zero0, clipsm0_clprim_to_clip_prim_valid) \
+ ((always_zero1 << CLIPPER_DEBUG_REG02_ALWAYS_ZERO1_SHIFT) | \
+ (clipsm0_clip_to_clipga_clip_to_outsm_cnt << CLIPPER_DEBUG_REG02_clipsm0_clip_to_clipga_clip_to_outsm_cnt_SHIFT) | \
+ (always_zero0 << CLIPPER_DEBUG_REG02_ALWAYS_ZERO0_SHIFT) | \
+ (clipsm0_clprim_to_clip_prim_valid << CLIPPER_DEBUG_REG02_clipsm0_clprim_to_clip_prim_valid_SHIFT))
+
+#define CLIPPER_DEBUG_REG02_GET_ALWAYS_ZERO1(clipper_debug_reg02) \
+ ((clipper_debug_reg02 & CLIPPER_DEBUG_REG02_ALWAYS_ZERO1_MASK) >> CLIPPER_DEBUG_REG02_ALWAYS_ZERO1_SHIFT)
+#define CLIPPER_DEBUG_REG02_GET_clipsm0_clip_to_clipga_clip_to_outsm_cnt(clipper_debug_reg02) \
+ ((clipper_debug_reg02 & CLIPPER_DEBUG_REG02_clipsm0_clip_to_clipga_clip_to_outsm_cnt_MASK) >> CLIPPER_DEBUG_REG02_clipsm0_clip_to_clipga_clip_to_outsm_cnt_SHIFT)
+#define CLIPPER_DEBUG_REG02_GET_ALWAYS_ZERO0(clipper_debug_reg02) \
+ ((clipper_debug_reg02 & CLIPPER_DEBUG_REG02_ALWAYS_ZERO0_MASK) >> CLIPPER_DEBUG_REG02_ALWAYS_ZERO0_SHIFT)
+#define CLIPPER_DEBUG_REG02_GET_clipsm0_clprim_to_clip_prim_valid(clipper_debug_reg02) \
+ ((clipper_debug_reg02 & CLIPPER_DEBUG_REG02_clipsm0_clprim_to_clip_prim_valid_MASK) >> CLIPPER_DEBUG_REG02_clipsm0_clprim_to_clip_prim_valid_SHIFT)
+
+#define CLIPPER_DEBUG_REG02_SET_ALWAYS_ZERO1(clipper_debug_reg02_reg, always_zero1) \
+ clipper_debug_reg02_reg = (clipper_debug_reg02_reg & ~CLIPPER_DEBUG_REG02_ALWAYS_ZERO1_MASK) | (always_zero1 << CLIPPER_DEBUG_REG02_ALWAYS_ZERO1_SHIFT)
+#define CLIPPER_DEBUG_REG02_SET_clipsm0_clip_to_clipga_clip_to_outsm_cnt(clipper_debug_reg02_reg, clipsm0_clip_to_clipga_clip_to_outsm_cnt) \
+ clipper_debug_reg02_reg = (clipper_debug_reg02_reg & ~CLIPPER_DEBUG_REG02_clipsm0_clip_to_clipga_clip_to_outsm_cnt_MASK) | (clipsm0_clip_to_clipga_clip_to_outsm_cnt << CLIPPER_DEBUG_REG02_clipsm0_clip_to_clipga_clip_to_outsm_cnt_SHIFT)
+#define CLIPPER_DEBUG_REG02_SET_ALWAYS_ZERO0(clipper_debug_reg02_reg, always_zero0) \
+ clipper_debug_reg02_reg = (clipper_debug_reg02_reg & ~CLIPPER_DEBUG_REG02_ALWAYS_ZERO0_MASK) | (always_zero0 << CLIPPER_DEBUG_REG02_ALWAYS_ZERO0_SHIFT)
+#define CLIPPER_DEBUG_REG02_SET_clipsm0_clprim_to_clip_prim_valid(clipper_debug_reg02_reg, clipsm0_clprim_to_clip_prim_valid) \
+ clipper_debug_reg02_reg = (clipper_debug_reg02_reg & ~CLIPPER_DEBUG_REG02_clipsm0_clprim_to_clip_prim_valid_MASK) | (clipsm0_clprim_to_clip_prim_valid << CLIPPER_DEBUG_REG02_clipsm0_clprim_to_clip_prim_valid_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg02_t {
+ unsigned int always_zero1 : CLIPPER_DEBUG_REG02_ALWAYS_ZERO1_SIZE;
+ unsigned int clipsm0_clip_to_clipga_clip_to_outsm_cnt : CLIPPER_DEBUG_REG02_clipsm0_clip_to_clipga_clip_to_outsm_cnt_SIZE;
+ unsigned int always_zero0 : CLIPPER_DEBUG_REG02_ALWAYS_ZERO0_SIZE;
+ unsigned int clipsm0_clprim_to_clip_prim_valid : CLIPPER_DEBUG_REG02_clipsm0_clprim_to_clip_prim_valid_SIZE;
+ } clipper_debug_reg02_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg02_t {
+ unsigned int clipsm0_clprim_to_clip_prim_valid : CLIPPER_DEBUG_REG02_clipsm0_clprim_to_clip_prim_valid_SIZE;
+ unsigned int always_zero0 : CLIPPER_DEBUG_REG02_ALWAYS_ZERO0_SIZE;
+ unsigned int clipsm0_clip_to_clipga_clip_to_outsm_cnt : CLIPPER_DEBUG_REG02_clipsm0_clip_to_clipga_clip_to_outsm_cnt_SIZE;
+ unsigned int always_zero1 : CLIPPER_DEBUG_REG02_ALWAYS_ZERO1_SIZE;
+ } clipper_debug_reg02_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ clipper_debug_reg02_t f;
+} clipper_debug_reg02_u;
+
+
+/*
+ * CLIPPER_DEBUG_REG03 struct
+ */
+
+#define CLIPPER_DEBUG_REG03_ALWAYS_ZERO3_SIZE 3
+#define CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_primitive_SIZE 1
+#define CLIPPER_DEBUG_REG03_ALWAYS_ZERO2_SIZE 3
+#define CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_null_primitive_SIZE 1
+#define CLIPPER_DEBUG_REG03_ALWAYS_ZERO1_SIZE 12
+#define CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_code_or_SIZE 6
+#define CLIPPER_DEBUG_REG03_ALWAYS_ZERO0_SIZE 6
+
+#define CLIPPER_DEBUG_REG03_ALWAYS_ZERO3_SHIFT 0
+#define CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_primitive_SHIFT 3
+#define CLIPPER_DEBUG_REG03_ALWAYS_ZERO2_SHIFT 4
+#define CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_null_primitive_SHIFT 7
+#define CLIPPER_DEBUG_REG03_ALWAYS_ZERO1_SHIFT 8
+#define CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_code_or_SHIFT 20
+#define CLIPPER_DEBUG_REG03_ALWAYS_ZERO0_SHIFT 26
+
+#define CLIPPER_DEBUG_REG03_ALWAYS_ZERO3_MASK 0x00000007
+#define CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_primitive_MASK 0x00000008
+#define CLIPPER_DEBUG_REG03_ALWAYS_ZERO2_MASK 0x00000070
+#define CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_null_primitive_MASK 0x00000080
+#define CLIPPER_DEBUG_REG03_ALWAYS_ZERO1_MASK 0x000fff00
+#define CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_code_or_MASK 0x03f00000
+#define CLIPPER_DEBUG_REG03_ALWAYS_ZERO0_MASK 0xfc000000
+
+#define CLIPPER_DEBUG_REG03_MASK \
+ (CLIPPER_DEBUG_REG03_ALWAYS_ZERO3_MASK | \
+ CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_primitive_MASK | \
+ CLIPPER_DEBUG_REG03_ALWAYS_ZERO2_MASK | \
+ CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_null_primitive_MASK | \
+ CLIPPER_DEBUG_REG03_ALWAYS_ZERO1_MASK | \
+ CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_code_or_MASK | \
+ CLIPPER_DEBUG_REG03_ALWAYS_ZERO0_MASK)
+
+#define CLIPPER_DEBUG_REG03(always_zero3, clipsm0_clprim_to_clip_clip_primitive, always_zero2, clipsm0_clprim_to_clip_null_primitive, always_zero1, clipsm0_clprim_to_clip_clip_code_or, always_zero0) \
+ ((always_zero3 << CLIPPER_DEBUG_REG03_ALWAYS_ZERO3_SHIFT) | \
+ (clipsm0_clprim_to_clip_clip_primitive << CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_primitive_SHIFT) | \
+ (always_zero2 << CLIPPER_DEBUG_REG03_ALWAYS_ZERO2_SHIFT) | \
+ (clipsm0_clprim_to_clip_null_primitive << CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_null_primitive_SHIFT) | \
+ (always_zero1 << CLIPPER_DEBUG_REG03_ALWAYS_ZERO1_SHIFT) | \
+ (clipsm0_clprim_to_clip_clip_code_or << CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_code_or_SHIFT) | \
+ (always_zero0 << CLIPPER_DEBUG_REG03_ALWAYS_ZERO0_SHIFT))
+
+#define CLIPPER_DEBUG_REG03_GET_ALWAYS_ZERO3(clipper_debug_reg03) \
+ ((clipper_debug_reg03 & CLIPPER_DEBUG_REG03_ALWAYS_ZERO3_MASK) >> CLIPPER_DEBUG_REG03_ALWAYS_ZERO3_SHIFT)
+#define CLIPPER_DEBUG_REG03_GET_clipsm0_clprim_to_clip_clip_primitive(clipper_debug_reg03) \
+ ((clipper_debug_reg03 & CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_primitive_MASK) >> CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_primitive_SHIFT)
+#define CLIPPER_DEBUG_REG03_GET_ALWAYS_ZERO2(clipper_debug_reg03) \
+ ((clipper_debug_reg03 & CLIPPER_DEBUG_REG03_ALWAYS_ZERO2_MASK) >> CLIPPER_DEBUG_REG03_ALWAYS_ZERO2_SHIFT)
+#define CLIPPER_DEBUG_REG03_GET_clipsm0_clprim_to_clip_null_primitive(clipper_debug_reg03) \
+ ((clipper_debug_reg03 & CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_null_primitive_MASK) >> CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_null_primitive_SHIFT)
+#define CLIPPER_DEBUG_REG03_GET_ALWAYS_ZERO1(clipper_debug_reg03) \
+ ((clipper_debug_reg03 & CLIPPER_DEBUG_REG03_ALWAYS_ZERO1_MASK) >> CLIPPER_DEBUG_REG03_ALWAYS_ZERO1_SHIFT)
+#define CLIPPER_DEBUG_REG03_GET_clipsm0_clprim_to_clip_clip_code_or(clipper_debug_reg03) \
+ ((clipper_debug_reg03 & CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_code_or_MASK) >> CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_code_or_SHIFT)
+#define CLIPPER_DEBUG_REG03_GET_ALWAYS_ZERO0(clipper_debug_reg03) \
+ ((clipper_debug_reg03 & CLIPPER_DEBUG_REG03_ALWAYS_ZERO0_MASK) >> CLIPPER_DEBUG_REG03_ALWAYS_ZERO0_SHIFT)
+
+#define CLIPPER_DEBUG_REG03_SET_ALWAYS_ZERO3(clipper_debug_reg03_reg, always_zero3) \
+ clipper_debug_reg03_reg = (clipper_debug_reg03_reg & ~CLIPPER_DEBUG_REG03_ALWAYS_ZERO3_MASK) | (always_zero3 << CLIPPER_DEBUG_REG03_ALWAYS_ZERO3_SHIFT)
+#define CLIPPER_DEBUG_REG03_SET_clipsm0_clprim_to_clip_clip_primitive(clipper_debug_reg03_reg, clipsm0_clprim_to_clip_clip_primitive) \
+ clipper_debug_reg03_reg = (clipper_debug_reg03_reg & ~CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_primitive_MASK) | (clipsm0_clprim_to_clip_clip_primitive << CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_primitive_SHIFT)
+#define CLIPPER_DEBUG_REG03_SET_ALWAYS_ZERO2(clipper_debug_reg03_reg, always_zero2) \
+ clipper_debug_reg03_reg = (clipper_debug_reg03_reg & ~CLIPPER_DEBUG_REG03_ALWAYS_ZERO2_MASK) | (always_zero2 << CLIPPER_DEBUG_REG03_ALWAYS_ZERO2_SHIFT)
+#define CLIPPER_DEBUG_REG03_SET_clipsm0_clprim_to_clip_null_primitive(clipper_debug_reg03_reg, clipsm0_clprim_to_clip_null_primitive) \
+ clipper_debug_reg03_reg = (clipper_debug_reg03_reg & ~CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_null_primitive_MASK) | (clipsm0_clprim_to_clip_null_primitive << CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_null_primitive_SHIFT)
+#define CLIPPER_DEBUG_REG03_SET_ALWAYS_ZERO1(clipper_debug_reg03_reg, always_zero1) \
+ clipper_debug_reg03_reg = (clipper_debug_reg03_reg & ~CLIPPER_DEBUG_REG03_ALWAYS_ZERO1_MASK) | (always_zero1 << CLIPPER_DEBUG_REG03_ALWAYS_ZERO1_SHIFT)
+#define CLIPPER_DEBUG_REG03_SET_clipsm0_clprim_to_clip_clip_code_or(clipper_debug_reg03_reg, clipsm0_clprim_to_clip_clip_code_or) \
+ clipper_debug_reg03_reg = (clipper_debug_reg03_reg & ~CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_code_or_MASK) | (clipsm0_clprim_to_clip_clip_code_or << CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_code_or_SHIFT)
+#define CLIPPER_DEBUG_REG03_SET_ALWAYS_ZERO0(clipper_debug_reg03_reg, always_zero0) \
+ clipper_debug_reg03_reg = (clipper_debug_reg03_reg & ~CLIPPER_DEBUG_REG03_ALWAYS_ZERO0_MASK) | (always_zero0 << CLIPPER_DEBUG_REG03_ALWAYS_ZERO0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg03_t {
+ unsigned int always_zero3 : CLIPPER_DEBUG_REG03_ALWAYS_ZERO3_SIZE;
+ unsigned int clipsm0_clprim_to_clip_clip_primitive : CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_primitive_SIZE;
+ unsigned int always_zero2 : CLIPPER_DEBUG_REG03_ALWAYS_ZERO2_SIZE;
+ unsigned int clipsm0_clprim_to_clip_null_primitive : CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_null_primitive_SIZE;
+ unsigned int always_zero1 : CLIPPER_DEBUG_REG03_ALWAYS_ZERO1_SIZE;
+ unsigned int clipsm0_clprim_to_clip_clip_code_or : CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_code_or_SIZE;
+ unsigned int always_zero0 : CLIPPER_DEBUG_REG03_ALWAYS_ZERO0_SIZE;
+ } clipper_debug_reg03_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg03_t {
+ unsigned int always_zero0 : CLIPPER_DEBUG_REG03_ALWAYS_ZERO0_SIZE;
+ unsigned int clipsm0_clprim_to_clip_clip_code_or : CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_code_or_SIZE;
+ unsigned int always_zero1 : CLIPPER_DEBUG_REG03_ALWAYS_ZERO1_SIZE;
+ unsigned int clipsm0_clprim_to_clip_null_primitive : CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_null_primitive_SIZE;
+ unsigned int always_zero2 : CLIPPER_DEBUG_REG03_ALWAYS_ZERO2_SIZE;
+ unsigned int clipsm0_clprim_to_clip_clip_primitive : CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_primitive_SIZE;
+ unsigned int always_zero3 : CLIPPER_DEBUG_REG03_ALWAYS_ZERO3_SIZE;
+ } clipper_debug_reg03_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ clipper_debug_reg03_t f;
+} clipper_debug_reg03_u;
+
+
+/*
+ * CLIPPER_DEBUG_REG04 struct
+ */
+
+#define CLIPPER_DEBUG_REG04_ALWAYS_ZERO2_SIZE 3
+#define CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_first_prim_of_slot_SIZE 1
+#define CLIPPER_DEBUG_REG04_ALWAYS_ZERO1_SIZE 3
+#define CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_event_SIZE 1
+#define CLIPPER_DEBUG_REG04_ALWAYS_ZERO0_SIZE 24
+
+#define CLIPPER_DEBUG_REG04_ALWAYS_ZERO2_SHIFT 0
+#define CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_first_prim_of_slot_SHIFT 3
+#define CLIPPER_DEBUG_REG04_ALWAYS_ZERO1_SHIFT 4
+#define CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_event_SHIFT 7
+#define CLIPPER_DEBUG_REG04_ALWAYS_ZERO0_SHIFT 8
+
+#define CLIPPER_DEBUG_REG04_ALWAYS_ZERO2_MASK 0x00000007
+#define CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_first_prim_of_slot_MASK 0x00000008
+#define CLIPPER_DEBUG_REG04_ALWAYS_ZERO1_MASK 0x00000070
+#define CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_event_MASK 0x00000080
+#define CLIPPER_DEBUG_REG04_ALWAYS_ZERO0_MASK 0xffffff00
+
+#define CLIPPER_DEBUG_REG04_MASK \
+ (CLIPPER_DEBUG_REG04_ALWAYS_ZERO2_MASK | \
+ CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_first_prim_of_slot_MASK | \
+ CLIPPER_DEBUG_REG04_ALWAYS_ZERO1_MASK | \
+ CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_event_MASK | \
+ CLIPPER_DEBUG_REG04_ALWAYS_ZERO0_MASK)
+
+#define CLIPPER_DEBUG_REG04(always_zero2, clipsm0_clprim_to_clip_first_prim_of_slot, always_zero1, clipsm0_clprim_to_clip_event, always_zero0) \
+ ((always_zero2 << CLIPPER_DEBUG_REG04_ALWAYS_ZERO2_SHIFT) | \
+ (clipsm0_clprim_to_clip_first_prim_of_slot << CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_first_prim_of_slot_SHIFT) | \
+ (always_zero1 << CLIPPER_DEBUG_REG04_ALWAYS_ZERO1_SHIFT) | \
+ (clipsm0_clprim_to_clip_event << CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_event_SHIFT) | \
+ (always_zero0 << CLIPPER_DEBUG_REG04_ALWAYS_ZERO0_SHIFT))
+
+#define CLIPPER_DEBUG_REG04_GET_ALWAYS_ZERO2(clipper_debug_reg04) \
+ ((clipper_debug_reg04 & CLIPPER_DEBUG_REG04_ALWAYS_ZERO2_MASK) >> CLIPPER_DEBUG_REG04_ALWAYS_ZERO2_SHIFT)
+#define CLIPPER_DEBUG_REG04_GET_clipsm0_clprim_to_clip_first_prim_of_slot(clipper_debug_reg04) \
+ ((clipper_debug_reg04 & CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_first_prim_of_slot_MASK) >> CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_first_prim_of_slot_SHIFT)
+#define CLIPPER_DEBUG_REG04_GET_ALWAYS_ZERO1(clipper_debug_reg04) \
+ ((clipper_debug_reg04 & CLIPPER_DEBUG_REG04_ALWAYS_ZERO1_MASK) >> CLIPPER_DEBUG_REG04_ALWAYS_ZERO1_SHIFT)
+#define CLIPPER_DEBUG_REG04_GET_clipsm0_clprim_to_clip_event(clipper_debug_reg04) \
+ ((clipper_debug_reg04 & CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_event_MASK) >> CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_event_SHIFT)
+#define CLIPPER_DEBUG_REG04_GET_ALWAYS_ZERO0(clipper_debug_reg04) \
+ ((clipper_debug_reg04 & CLIPPER_DEBUG_REG04_ALWAYS_ZERO0_MASK) >> CLIPPER_DEBUG_REG04_ALWAYS_ZERO0_SHIFT)
+
+#define CLIPPER_DEBUG_REG04_SET_ALWAYS_ZERO2(clipper_debug_reg04_reg, always_zero2) \
+ clipper_debug_reg04_reg = (clipper_debug_reg04_reg & ~CLIPPER_DEBUG_REG04_ALWAYS_ZERO2_MASK) | (always_zero2 << CLIPPER_DEBUG_REG04_ALWAYS_ZERO2_SHIFT)
+#define CLIPPER_DEBUG_REG04_SET_clipsm0_clprim_to_clip_first_prim_of_slot(clipper_debug_reg04_reg, clipsm0_clprim_to_clip_first_prim_of_slot) \
+ clipper_debug_reg04_reg = (clipper_debug_reg04_reg & ~CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_first_prim_of_slot_MASK) | (clipsm0_clprim_to_clip_first_prim_of_slot << CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_first_prim_of_slot_SHIFT)
+#define CLIPPER_DEBUG_REG04_SET_ALWAYS_ZERO1(clipper_debug_reg04_reg, always_zero1) \
+ clipper_debug_reg04_reg = (clipper_debug_reg04_reg & ~CLIPPER_DEBUG_REG04_ALWAYS_ZERO1_MASK) | (always_zero1 << CLIPPER_DEBUG_REG04_ALWAYS_ZERO1_SHIFT)
+#define CLIPPER_DEBUG_REG04_SET_clipsm0_clprim_to_clip_event(clipper_debug_reg04_reg, clipsm0_clprim_to_clip_event) \
+ clipper_debug_reg04_reg = (clipper_debug_reg04_reg & ~CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_event_MASK) | (clipsm0_clprim_to_clip_event << CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_event_SHIFT)
+#define CLIPPER_DEBUG_REG04_SET_ALWAYS_ZERO0(clipper_debug_reg04_reg, always_zero0) \
+ clipper_debug_reg04_reg = (clipper_debug_reg04_reg & ~CLIPPER_DEBUG_REG04_ALWAYS_ZERO0_MASK) | (always_zero0 << CLIPPER_DEBUG_REG04_ALWAYS_ZERO0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg04_t {
+ unsigned int always_zero2 : CLIPPER_DEBUG_REG04_ALWAYS_ZERO2_SIZE;
+ unsigned int clipsm0_clprim_to_clip_first_prim_of_slot : CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_first_prim_of_slot_SIZE;
+ unsigned int always_zero1 : CLIPPER_DEBUG_REG04_ALWAYS_ZERO1_SIZE;
+ unsigned int clipsm0_clprim_to_clip_event : CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_event_SIZE;
+ unsigned int always_zero0 : CLIPPER_DEBUG_REG04_ALWAYS_ZERO0_SIZE;
+ } clipper_debug_reg04_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg04_t {
+ unsigned int always_zero0 : CLIPPER_DEBUG_REG04_ALWAYS_ZERO0_SIZE;
+ unsigned int clipsm0_clprim_to_clip_event : CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_event_SIZE;
+ unsigned int always_zero1 : CLIPPER_DEBUG_REG04_ALWAYS_ZERO1_SIZE;
+ unsigned int clipsm0_clprim_to_clip_first_prim_of_slot : CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_first_prim_of_slot_SIZE;
+ unsigned int always_zero2 : CLIPPER_DEBUG_REG04_ALWAYS_ZERO2_SIZE;
+ } clipper_debug_reg04_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ clipper_debug_reg04_t f;
+} clipper_debug_reg04_u;
+
+
+/*
+ * CLIPPER_DEBUG_REG05 struct
+ */
+
+#define CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_state_var_indx_SIZE 1
+#define CLIPPER_DEBUG_REG05_ALWAYS_ZERO3_SIZE 2
+#define CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_deallocate_slot_SIZE 3
+#define CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_event_id_SIZE 6
+#define CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_2_SIZE 4
+#define CLIPPER_DEBUG_REG05_ALWAYS_ZERO2_SIZE 2
+#define CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_1_SIZE 4
+#define CLIPPER_DEBUG_REG05_ALWAYS_ZERO1_SIZE 2
+#define CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_0_SIZE 4
+#define CLIPPER_DEBUG_REG05_ALWAYS_ZERO0_SIZE 4
+
+#define CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_state_var_indx_SHIFT 0
+#define CLIPPER_DEBUG_REG05_ALWAYS_ZERO3_SHIFT 1
+#define CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_deallocate_slot_SHIFT 3
+#define CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_event_id_SHIFT 6
+#define CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_2_SHIFT 12
+#define CLIPPER_DEBUG_REG05_ALWAYS_ZERO2_SHIFT 16
+#define CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_1_SHIFT 18
+#define CLIPPER_DEBUG_REG05_ALWAYS_ZERO1_SHIFT 22
+#define CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_0_SHIFT 24
+#define CLIPPER_DEBUG_REG05_ALWAYS_ZERO0_SHIFT 28
+
+#define CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_state_var_indx_MASK 0x00000001
+#define CLIPPER_DEBUG_REG05_ALWAYS_ZERO3_MASK 0x00000006
+#define CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_deallocate_slot_MASK 0x00000038
+#define CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_event_id_MASK 0x00000fc0
+#define CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_2_MASK 0x0000f000
+#define CLIPPER_DEBUG_REG05_ALWAYS_ZERO2_MASK 0x00030000
+#define CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_1_MASK 0x003c0000
+#define CLIPPER_DEBUG_REG05_ALWAYS_ZERO1_MASK 0x00c00000
+#define CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_0_MASK 0x0f000000
+#define CLIPPER_DEBUG_REG05_ALWAYS_ZERO0_MASK 0xf0000000
+
+#define CLIPPER_DEBUG_REG05_MASK \
+ (CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_state_var_indx_MASK | \
+ CLIPPER_DEBUG_REG05_ALWAYS_ZERO3_MASK | \
+ CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_deallocate_slot_MASK | \
+ CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_event_id_MASK | \
+ CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_2_MASK | \
+ CLIPPER_DEBUG_REG05_ALWAYS_ZERO2_MASK | \
+ CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_1_MASK | \
+ CLIPPER_DEBUG_REG05_ALWAYS_ZERO1_MASK | \
+ CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_0_MASK | \
+ CLIPPER_DEBUG_REG05_ALWAYS_ZERO0_MASK)
+
+#define CLIPPER_DEBUG_REG05(clipsm0_clprim_to_clip_state_var_indx, always_zero3, clipsm0_clprim_to_clip_deallocate_slot, clipsm0_clprim_to_clip_event_id, clipsm0_clprim_to_clip_vertex_store_indx_2, always_zero2, clipsm0_clprim_to_clip_vertex_store_indx_1, always_zero1, clipsm0_clprim_to_clip_vertex_store_indx_0, always_zero0) \
+ ((clipsm0_clprim_to_clip_state_var_indx << CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_state_var_indx_SHIFT) | \
+ (always_zero3 << CLIPPER_DEBUG_REG05_ALWAYS_ZERO3_SHIFT) | \
+ (clipsm0_clprim_to_clip_deallocate_slot << CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_deallocate_slot_SHIFT) | \
+ (clipsm0_clprim_to_clip_event_id << CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_event_id_SHIFT) | \
+ (clipsm0_clprim_to_clip_vertex_store_indx_2 << CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_2_SHIFT) | \
+ (always_zero2 << CLIPPER_DEBUG_REG05_ALWAYS_ZERO2_SHIFT) | \
+ (clipsm0_clprim_to_clip_vertex_store_indx_1 << CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_1_SHIFT) | \
+ (always_zero1 << CLIPPER_DEBUG_REG05_ALWAYS_ZERO1_SHIFT) | \
+ (clipsm0_clprim_to_clip_vertex_store_indx_0 << CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_0_SHIFT) | \
+ (always_zero0 << CLIPPER_DEBUG_REG05_ALWAYS_ZERO0_SHIFT))
+
+#define CLIPPER_DEBUG_REG05_GET_clipsm0_clprim_to_clip_state_var_indx(clipper_debug_reg05) \
+ ((clipper_debug_reg05 & CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_state_var_indx_MASK) >> CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_state_var_indx_SHIFT)
+#define CLIPPER_DEBUG_REG05_GET_ALWAYS_ZERO3(clipper_debug_reg05) \
+ ((clipper_debug_reg05 & CLIPPER_DEBUG_REG05_ALWAYS_ZERO3_MASK) >> CLIPPER_DEBUG_REG05_ALWAYS_ZERO3_SHIFT)
+#define CLIPPER_DEBUG_REG05_GET_clipsm0_clprim_to_clip_deallocate_slot(clipper_debug_reg05) \
+ ((clipper_debug_reg05 & CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_deallocate_slot_MASK) >> CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_deallocate_slot_SHIFT)
+#define CLIPPER_DEBUG_REG05_GET_clipsm0_clprim_to_clip_event_id(clipper_debug_reg05) \
+ ((clipper_debug_reg05 & CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_event_id_MASK) >> CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_event_id_SHIFT)
+#define CLIPPER_DEBUG_REG05_GET_clipsm0_clprim_to_clip_vertex_store_indx_2(clipper_debug_reg05) \
+ ((clipper_debug_reg05 & CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_2_MASK) >> CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_2_SHIFT)
+#define CLIPPER_DEBUG_REG05_GET_ALWAYS_ZERO2(clipper_debug_reg05) \
+ ((clipper_debug_reg05 & CLIPPER_DEBUG_REG05_ALWAYS_ZERO2_MASK) >> CLIPPER_DEBUG_REG05_ALWAYS_ZERO2_SHIFT)
+#define CLIPPER_DEBUG_REG05_GET_clipsm0_clprim_to_clip_vertex_store_indx_1(clipper_debug_reg05) \
+ ((clipper_debug_reg05 & CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_1_MASK) >> CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_1_SHIFT)
+#define CLIPPER_DEBUG_REG05_GET_ALWAYS_ZERO1(clipper_debug_reg05) \
+ ((clipper_debug_reg05 & CLIPPER_DEBUG_REG05_ALWAYS_ZERO1_MASK) >> CLIPPER_DEBUG_REG05_ALWAYS_ZERO1_SHIFT)
+#define CLIPPER_DEBUG_REG05_GET_clipsm0_clprim_to_clip_vertex_store_indx_0(clipper_debug_reg05) \
+ ((clipper_debug_reg05 & CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_0_MASK) >> CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_0_SHIFT)
+#define CLIPPER_DEBUG_REG05_GET_ALWAYS_ZERO0(clipper_debug_reg05) \
+ ((clipper_debug_reg05 & CLIPPER_DEBUG_REG05_ALWAYS_ZERO0_MASK) >> CLIPPER_DEBUG_REG05_ALWAYS_ZERO0_SHIFT)
+
+#define CLIPPER_DEBUG_REG05_SET_clipsm0_clprim_to_clip_state_var_indx(clipper_debug_reg05_reg, clipsm0_clprim_to_clip_state_var_indx) \
+ clipper_debug_reg05_reg = (clipper_debug_reg05_reg & ~CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_state_var_indx_MASK) | (clipsm0_clprim_to_clip_state_var_indx << CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_state_var_indx_SHIFT)
+#define CLIPPER_DEBUG_REG05_SET_ALWAYS_ZERO3(clipper_debug_reg05_reg, always_zero3) \
+ clipper_debug_reg05_reg = (clipper_debug_reg05_reg & ~CLIPPER_DEBUG_REG05_ALWAYS_ZERO3_MASK) | (always_zero3 << CLIPPER_DEBUG_REG05_ALWAYS_ZERO3_SHIFT)
+#define CLIPPER_DEBUG_REG05_SET_clipsm0_clprim_to_clip_deallocate_slot(clipper_debug_reg05_reg, clipsm0_clprim_to_clip_deallocate_slot) \
+ clipper_debug_reg05_reg = (clipper_debug_reg05_reg & ~CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_deallocate_slot_MASK) | (clipsm0_clprim_to_clip_deallocate_slot << CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_deallocate_slot_SHIFT)
+#define CLIPPER_DEBUG_REG05_SET_clipsm0_clprim_to_clip_event_id(clipper_debug_reg05_reg, clipsm0_clprim_to_clip_event_id) \
+ clipper_debug_reg05_reg = (clipper_debug_reg05_reg & ~CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_event_id_MASK) | (clipsm0_clprim_to_clip_event_id << CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_event_id_SHIFT)
+#define CLIPPER_DEBUG_REG05_SET_clipsm0_clprim_to_clip_vertex_store_indx_2(clipper_debug_reg05_reg, clipsm0_clprim_to_clip_vertex_store_indx_2) \
+ clipper_debug_reg05_reg = (clipper_debug_reg05_reg & ~CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_2_MASK) | (clipsm0_clprim_to_clip_vertex_store_indx_2 << CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_2_SHIFT)
+#define CLIPPER_DEBUG_REG05_SET_ALWAYS_ZERO2(clipper_debug_reg05_reg, always_zero2) \
+ clipper_debug_reg05_reg = (clipper_debug_reg05_reg & ~CLIPPER_DEBUG_REG05_ALWAYS_ZERO2_MASK) | (always_zero2 << CLIPPER_DEBUG_REG05_ALWAYS_ZERO2_SHIFT)
+#define CLIPPER_DEBUG_REG05_SET_clipsm0_clprim_to_clip_vertex_store_indx_1(clipper_debug_reg05_reg, clipsm0_clprim_to_clip_vertex_store_indx_1) \
+ clipper_debug_reg05_reg = (clipper_debug_reg05_reg & ~CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_1_MASK) | (clipsm0_clprim_to_clip_vertex_store_indx_1 << CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_1_SHIFT)
+#define CLIPPER_DEBUG_REG05_SET_ALWAYS_ZERO1(clipper_debug_reg05_reg, always_zero1) \
+ clipper_debug_reg05_reg = (clipper_debug_reg05_reg & ~CLIPPER_DEBUG_REG05_ALWAYS_ZERO1_MASK) | (always_zero1 << CLIPPER_DEBUG_REG05_ALWAYS_ZERO1_SHIFT)
+#define CLIPPER_DEBUG_REG05_SET_clipsm0_clprim_to_clip_vertex_store_indx_0(clipper_debug_reg05_reg, clipsm0_clprim_to_clip_vertex_store_indx_0) \
+ clipper_debug_reg05_reg = (clipper_debug_reg05_reg & ~CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_0_MASK) | (clipsm0_clprim_to_clip_vertex_store_indx_0 << CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_0_SHIFT)
+#define CLIPPER_DEBUG_REG05_SET_ALWAYS_ZERO0(clipper_debug_reg05_reg, always_zero0) \
+ clipper_debug_reg05_reg = (clipper_debug_reg05_reg & ~CLIPPER_DEBUG_REG05_ALWAYS_ZERO0_MASK) | (always_zero0 << CLIPPER_DEBUG_REG05_ALWAYS_ZERO0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg05_t {
+ unsigned int clipsm0_clprim_to_clip_state_var_indx : CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_state_var_indx_SIZE;
+ unsigned int always_zero3 : CLIPPER_DEBUG_REG05_ALWAYS_ZERO3_SIZE;
+ unsigned int clipsm0_clprim_to_clip_deallocate_slot : CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_deallocate_slot_SIZE;
+ unsigned int clipsm0_clprim_to_clip_event_id : CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_event_id_SIZE;
+ unsigned int clipsm0_clprim_to_clip_vertex_store_indx_2 : CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_2_SIZE;
+ unsigned int always_zero2 : CLIPPER_DEBUG_REG05_ALWAYS_ZERO2_SIZE;
+ unsigned int clipsm0_clprim_to_clip_vertex_store_indx_1 : CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_1_SIZE;
+ unsigned int always_zero1 : CLIPPER_DEBUG_REG05_ALWAYS_ZERO1_SIZE;
+ unsigned int clipsm0_clprim_to_clip_vertex_store_indx_0 : CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_0_SIZE;
+ unsigned int always_zero0 : CLIPPER_DEBUG_REG05_ALWAYS_ZERO0_SIZE;
+ } clipper_debug_reg05_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg05_t {
+ unsigned int always_zero0 : CLIPPER_DEBUG_REG05_ALWAYS_ZERO0_SIZE;
+ unsigned int clipsm0_clprim_to_clip_vertex_store_indx_0 : CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_0_SIZE;
+ unsigned int always_zero1 : CLIPPER_DEBUG_REG05_ALWAYS_ZERO1_SIZE;
+ unsigned int clipsm0_clprim_to_clip_vertex_store_indx_1 : CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_1_SIZE;
+ unsigned int always_zero2 : CLIPPER_DEBUG_REG05_ALWAYS_ZERO2_SIZE;
+ unsigned int clipsm0_clprim_to_clip_vertex_store_indx_2 : CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_2_SIZE;
+ unsigned int clipsm0_clprim_to_clip_event_id : CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_event_id_SIZE;
+ unsigned int clipsm0_clprim_to_clip_deallocate_slot : CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_deallocate_slot_SIZE;
+ unsigned int always_zero3 : CLIPPER_DEBUG_REG05_ALWAYS_ZERO3_SIZE;
+ unsigned int clipsm0_clprim_to_clip_state_var_indx : CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_state_var_indx_SIZE;
+ } clipper_debug_reg05_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ clipper_debug_reg05_t f;
+} clipper_debug_reg05_u;
+
+
+/*
+ * CLIPPER_DEBUG_REG09 struct
+ */
+
+#define CLIPPER_DEBUG_REG09_clprim_in_back_event_SIZE 1
+#define CLIPPER_DEBUG_REG09_outputclprimtoclip_null_primitive_SIZE 1
+#define CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_2_SIZE 4
+#define CLIPPER_DEBUG_REG09_ALWAYS_ZERO2_SIZE 2
+#define CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_1_SIZE 4
+#define CLIPPER_DEBUG_REG09_ALWAYS_ZERO1_SIZE 2
+#define CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_0_SIZE 4
+#define CLIPPER_DEBUG_REG09_ALWAYS_ZERO0_SIZE 2
+#define CLIPPER_DEBUG_REG09_prim_back_valid_SIZE 1
+#define CLIPPER_DEBUG_REG09_clip_priority_seq_indx_out_cnt_SIZE 4
+#define CLIPPER_DEBUG_REG09_outsm_clr_rd_orig_vertices_SIZE 2
+#define CLIPPER_DEBUG_REG09_outsm_clr_rd_clipsm_wait_SIZE 1
+#define CLIPPER_DEBUG_REG09_outsm_clr_fifo_empty_SIZE 1
+#define CLIPPER_DEBUG_REG09_outsm_clr_fifo_full_SIZE 1
+#define CLIPPER_DEBUG_REG09_clip_priority_seq_indx_load_SIZE 2
+
+#define CLIPPER_DEBUG_REG09_clprim_in_back_event_SHIFT 0
+#define CLIPPER_DEBUG_REG09_outputclprimtoclip_null_primitive_SHIFT 1
+#define CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_2_SHIFT 2
+#define CLIPPER_DEBUG_REG09_ALWAYS_ZERO2_SHIFT 6
+#define CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_1_SHIFT 8
+#define CLIPPER_DEBUG_REG09_ALWAYS_ZERO1_SHIFT 12
+#define CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_0_SHIFT 14
+#define CLIPPER_DEBUG_REG09_ALWAYS_ZERO0_SHIFT 18
+#define CLIPPER_DEBUG_REG09_prim_back_valid_SHIFT 20
+#define CLIPPER_DEBUG_REG09_clip_priority_seq_indx_out_cnt_SHIFT 21
+#define CLIPPER_DEBUG_REG09_outsm_clr_rd_orig_vertices_SHIFT 25
+#define CLIPPER_DEBUG_REG09_outsm_clr_rd_clipsm_wait_SHIFT 27
+#define CLIPPER_DEBUG_REG09_outsm_clr_fifo_empty_SHIFT 28
+#define CLIPPER_DEBUG_REG09_outsm_clr_fifo_full_SHIFT 29
+#define CLIPPER_DEBUG_REG09_clip_priority_seq_indx_load_SHIFT 30
+
+#define CLIPPER_DEBUG_REG09_clprim_in_back_event_MASK 0x00000001
+#define CLIPPER_DEBUG_REG09_outputclprimtoclip_null_primitive_MASK 0x00000002
+#define CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_2_MASK 0x0000003c
+#define CLIPPER_DEBUG_REG09_ALWAYS_ZERO2_MASK 0x000000c0
+#define CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_1_MASK 0x00000f00
+#define CLIPPER_DEBUG_REG09_ALWAYS_ZERO1_MASK 0x00003000
+#define CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_0_MASK 0x0003c000
+#define CLIPPER_DEBUG_REG09_ALWAYS_ZERO0_MASK 0x000c0000
+#define CLIPPER_DEBUG_REG09_prim_back_valid_MASK 0x00100000
+#define CLIPPER_DEBUG_REG09_clip_priority_seq_indx_out_cnt_MASK 0x01e00000
+#define CLIPPER_DEBUG_REG09_outsm_clr_rd_orig_vertices_MASK 0x06000000
+#define CLIPPER_DEBUG_REG09_outsm_clr_rd_clipsm_wait_MASK 0x08000000
+#define CLIPPER_DEBUG_REG09_outsm_clr_fifo_empty_MASK 0x10000000
+#define CLIPPER_DEBUG_REG09_outsm_clr_fifo_full_MASK 0x20000000
+#define CLIPPER_DEBUG_REG09_clip_priority_seq_indx_load_MASK 0xc0000000
+
+#define CLIPPER_DEBUG_REG09_MASK \
+ (CLIPPER_DEBUG_REG09_clprim_in_back_event_MASK | \
+ CLIPPER_DEBUG_REG09_outputclprimtoclip_null_primitive_MASK | \
+ CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_2_MASK | \
+ CLIPPER_DEBUG_REG09_ALWAYS_ZERO2_MASK | \
+ CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_1_MASK | \
+ CLIPPER_DEBUG_REG09_ALWAYS_ZERO1_MASK | \
+ CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_0_MASK | \
+ CLIPPER_DEBUG_REG09_ALWAYS_ZERO0_MASK | \
+ CLIPPER_DEBUG_REG09_prim_back_valid_MASK | \
+ CLIPPER_DEBUG_REG09_clip_priority_seq_indx_out_cnt_MASK | \
+ CLIPPER_DEBUG_REG09_outsm_clr_rd_orig_vertices_MASK | \
+ CLIPPER_DEBUG_REG09_outsm_clr_rd_clipsm_wait_MASK | \
+ CLIPPER_DEBUG_REG09_outsm_clr_fifo_empty_MASK | \
+ CLIPPER_DEBUG_REG09_outsm_clr_fifo_full_MASK | \
+ CLIPPER_DEBUG_REG09_clip_priority_seq_indx_load_MASK)
+
+#define CLIPPER_DEBUG_REG09(clprim_in_back_event, outputclprimtoclip_null_primitive, clprim_in_back_vertex_store_indx_2, always_zero2, clprim_in_back_vertex_store_indx_1, always_zero1, clprim_in_back_vertex_store_indx_0, always_zero0, prim_back_valid, clip_priority_seq_indx_out_cnt, outsm_clr_rd_orig_vertices, outsm_clr_rd_clipsm_wait, outsm_clr_fifo_empty, outsm_clr_fifo_full, clip_priority_seq_indx_load) \
+ ((clprim_in_back_event << CLIPPER_DEBUG_REG09_clprim_in_back_event_SHIFT) | \
+ (outputclprimtoclip_null_primitive << CLIPPER_DEBUG_REG09_outputclprimtoclip_null_primitive_SHIFT) | \
+ (clprim_in_back_vertex_store_indx_2 << CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_2_SHIFT) | \
+ (always_zero2 << CLIPPER_DEBUG_REG09_ALWAYS_ZERO2_SHIFT) | \
+ (clprim_in_back_vertex_store_indx_1 << CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_1_SHIFT) | \
+ (always_zero1 << CLIPPER_DEBUG_REG09_ALWAYS_ZERO1_SHIFT) | \
+ (clprim_in_back_vertex_store_indx_0 << CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_0_SHIFT) | \
+ (always_zero0 << CLIPPER_DEBUG_REG09_ALWAYS_ZERO0_SHIFT) | \
+ (prim_back_valid << CLIPPER_DEBUG_REG09_prim_back_valid_SHIFT) | \
+ (clip_priority_seq_indx_out_cnt << CLIPPER_DEBUG_REG09_clip_priority_seq_indx_out_cnt_SHIFT) | \
+ (outsm_clr_rd_orig_vertices << CLIPPER_DEBUG_REG09_outsm_clr_rd_orig_vertices_SHIFT) | \
+ (outsm_clr_rd_clipsm_wait << CLIPPER_DEBUG_REG09_outsm_clr_rd_clipsm_wait_SHIFT) | \
+ (outsm_clr_fifo_empty << CLIPPER_DEBUG_REG09_outsm_clr_fifo_empty_SHIFT) | \
+ (outsm_clr_fifo_full << CLIPPER_DEBUG_REG09_outsm_clr_fifo_full_SHIFT) | \
+ (clip_priority_seq_indx_load << CLIPPER_DEBUG_REG09_clip_priority_seq_indx_load_SHIFT))
+
+#define CLIPPER_DEBUG_REG09_GET_clprim_in_back_event(clipper_debug_reg09) \
+ ((clipper_debug_reg09 & CLIPPER_DEBUG_REG09_clprim_in_back_event_MASK) >> CLIPPER_DEBUG_REG09_clprim_in_back_event_SHIFT)
+#define CLIPPER_DEBUG_REG09_GET_outputclprimtoclip_null_primitive(clipper_debug_reg09) \
+ ((clipper_debug_reg09 & CLIPPER_DEBUG_REG09_outputclprimtoclip_null_primitive_MASK) >> CLIPPER_DEBUG_REG09_outputclprimtoclip_null_primitive_SHIFT)
+#define CLIPPER_DEBUG_REG09_GET_clprim_in_back_vertex_store_indx_2(clipper_debug_reg09) \
+ ((clipper_debug_reg09 & CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_2_MASK) >> CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_2_SHIFT)
+#define CLIPPER_DEBUG_REG09_GET_ALWAYS_ZERO2(clipper_debug_reg09) \
+ ((clipper_debug_reg09 & CLIPPER_DEBUG_REG09_ALWAYS_ZERO2_MASK) >> CLIPPER_DEBUG_REG09_ALWAYS_ZERO2_SHIFT)
+#define CLIPPER_DEBUG_REG09_GET_clprim_in_back_vertex_store_indx_1(clipper_debug_reg09) \
+ ((clipper_debug_reg09 & CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_1_MASK) >> CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_1_SHIFT)
+#define CLIPPER_DEBUG_REG09_GET_ALWAYS_ZERO1(clipper_debug_reg09) \
+ ((clipper_debug_reg09 & CLIPPER_DEBUG_REG09_ALWAYS_ZERO1_MASK) >> CLIPPER_DEBUG_REG09_ALWAYS_ZERO1_SHIFT)
+#define CLIPPER_DEBUG_REG09_GET_clprim_in_back_vertex_store_indx_0(clipper_debug_reg09) \
+ ((clipper_debug_reg09 & CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_0_MASK) >> CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_0_SHIFT)
+#define CLIPPER_DEBUG_REG09_GET_ALWAYS_ZERO0(clipper_debug_reg09) \
+ ((clipper_debug_reg09 & CLIPPER_DEBUG_REG09_ALWAYS_ZERO0_MASK) >> CLIPPER_DEBUG_REG09_ALWAYS_ZERO0_SHIFT)
+#define CLIPPER_DEBUG_REG09_GET_prim_back_valid(clipper_debug_reg09) \
+ ((clipper_debug_reg09 & CLIPPER_DEBUG_REG09_prim_back_valid_MASK) >> CLIPPER_DEBUG_REG09_prim_back_valid_SHIFT)
+#define CLIPPER_DEBUG_REG09_GET_clip_priority_seq_indx_out_cnt(clipper_debug_reg09) \
+ ((clipper_debug_reg09 & CLIPPER_DEBUG_REG09_clip_priority_seq_indx_out_cnt_MASK) >> CLIPPER_DEBUG_REG09_clip_priority_seq_indx_out_cnt_SHIFT)
+#define CLIPPER_DEBUG_REG09_GET_outsm_clr_rd_orig_vertices(clipper_debug_reg09) \
+ ((clipper_debug_reg09 & CLIPPER_DEBUG_REG09_outsm_clr_rd_orig_vertices_MASK) >> CLIPPER_DEBUG_REG09_outsm_clr_rd_orig_vertices_SHIFT)
+#define CLIPPER_DEBUG_REG09_GET_outsm_clr_rd_clipsm_wait(clipper_debug_reg09) \
+ ((clipper_debug_reg09 & CLIPPER_DEBUG_REG09_outsm_clr_rd_clipsm_wait_MASK) >> CLIPPER_DEBUG_REG09_outsm_clr_rd_clipsm_wait_SHIFT)
+#define CLIPPER_DEBUG_REG09_GET_outsm_clr_fifo_empty(clipper_debug_reg09) \
+ ((clipper_debug_reg09 & CLIPPER_DEBUG_REG09_outsm_clr_fifo_empty_MASK) >> CLIPPER_DEBUG_REG09_outsm_clr_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG09_GET_outsm_clr_fifo_full(clipper_debug_reg09) \
+ ((clipper_debug_reg09 & CLIPPER_DEBUG_REG09_outsm_clr_fifo_full_MASK) >> CLIPPER_DEBUG_REG09_outsm_clr_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG09_GET_clip_priority_seq_indx_load(clipper_debug_reg09) \
+ ((clipper_debug_reg09 & CLIPPER_DEBUG_REG09_clip_priority_seq_indx_load_MASK) >> CLIPPER_DEBUG_REG09_clip_priority_seq_indx_load_SHIFT)
+
+#define CLIPPER_DEBUG_REG09_SET_clprim_in_back_event(clipper_debug_reg09_reg, clprim_in_back_event) \
+ clipper_debug_reg09_reg = (clipper_debug_reg09_reg & ~CLIPPER_DEBUG_REG09_clprim_in_back_event_MASK) | (clprim_in_back_event << CLIPPER_DEBUG_REG09_clprim_in_back_event_SHIFT)
+#define CLIPPER_DEBUG_REG09_SET_outputclprimtoclip_null_primitive(clipper_debug_reg09_reg, outputclprimtoclip_null_primitive) \
+ clipper_debug_reg09_reg = (clipper_debug_reg09_reg & ~CLIPPER_DEBUG_REG09_outputclprimtoclip_null_primitive_MASK) | (outputclprimtoclip_null_primitive << CLIPPER_DEBUG_REG09_outputclprimtoclip_null_primitive_SHIFT)
+#define CLIPPER_DEBUG_REG09_SET_clprim_in_back_vertex_store_indx_2(clipper_debug_reg09_reg, clprim_in_back_vertex_store_indx_2) \
+ clipper_debug_reg09_reg = (clipper_debug_reg09_reg & ~CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_2_MASK) | (clprim_in_back_vertex_store_indx_2 << CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_2_SHIFT)
+#define CLIPPER_DEBUG_REG09_SET_ALWAYS_ZERO2(clipper_debug_reg09_reg, always_zero2) \
+ clipper_debug_reg09_reg = (clipper_debug_reg09_reg & ~CLIPPER_DEBUG_REG09_ALWAYS_ZERO2_MASK) | (always_zero2 << CLIPPER_DEBUG_REG09_ALWAYS_ZERO2_SHIFT)
+#define CLIPPER_DEBUG_REG09_SET_clprim_in_back_vertex_store_indx_1(clipper_debug_reg09_reg, clprim_in_back_vertex_store_indx_1) \
+ clipper_debug_reg09_reg = (clipper_debug_reg09_reg & ~CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_1_MASK) | (clprim_in_back_vertex_store_indx_1 << CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_1_SHIFT)
+#define CLIPPER_DEBUG_REG09_SET_ALWAYS_ZERO1(clipper_debug_reg09_reg, always_zero1) \
+ clipper_debug_reg09_reg = (clipper_debug_reg09_reg & ~CLIPPER_DEBUG_REG09_ALWAYS_ZERO1_MASK) | (always_zero1 << CLIPPER_DEBUG_REG09_ALWAYS_ZERO1_SHIFT)
+#define CLIPPER_DEBUG_REG09_SET_clprim_in_back_vertex_store_indx_0(clipper_debug_reg09_reg, clprim_in_back_vertex_store_indx_0) \
+ clipper_debug_reg09_reg = (clipper_debug_reg09_reg & ~CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_0_MASK) | (clprim_in_back_vertex_store_indx_0 << CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_0_SHIFT)
+#define CLIPPER_DEBUG_REG09_SET_ALWAYS_ZERO0(clipper_debug_reg09_reg, always_zero0) \
+ clipper_debug_reg09_reg = (clipper_debug_reg09_reg & ~CLIPPER_DEBUG_REG09_ALWAYS_ZERO0_MASK) | (always_zero0 << CLIPPER_DEBUG_REG09_ALWAYS_ZERO0_SHIFT)
+#define CLIPPER_DEBUG_REG09_SET_prim_back_valid(clipper_debug_reg09_reg, prim_back_valid) \
+ clipper_debug_reg09_reg = (clipper_debug_reg09_reg & ~CLIPPER_DEBUG_REG09_prim_back_valid_MASK) | (prim_back_valid << CLIPPER_DEBUG_REG09_prim_back_valid_SHIFT)
+#define CLIPPER_DEBUG_REG09_SET_clip_priority_seq_indx_out_cnt(clipper_debug_reg09_reg, clip_priority_seq_indx_out_cnt) \
+ clipper_debug_reg09_reg = (clipper_debug_reg09_reg & ~CLIPPER_DEBUG_REG09_clip_priority_seq_indx_out_cnt_MASK) | (clip_priority_seq_indx_out_cnt << CLIPPER_DEBUG_REG09_clip_priority_seq_indx_out_cnt_SHIFT)
+#define CLIPPER_DEBUG_REG09_SET_outsm_clr_rd_orig_vertices(clipper_debug_reg09_reg, outsm_clr_rd_orig_vertices) \
+ clipper_debug_reg09_reg = (clipper_debug_reg09_reg & ~CLIPPER_DEBUG_REG09_outsm_clr_rd_orig_vertices_MASK) | (outsm_clr_rd_orig_vertices << CLIPPER_DEBUG_REG09_outsm_clr_rd_orig_vertices_SHIFT)
+#define CLIPPER_DEBUG_REG09_SET_outsm_clr_rd_clipsm_wait(clipper_debug_reg09_reg, outsm_clr_rd_clipsm_wait) \
+ clipper_debug_reg09_reg = (clipper_debug_reg09_reg & ~CLIPPER_DEBUG_REG09_outsm_clr_rd_clipsm_wait_MASK) | (outsm_clr_rd_clipsm_wait << CLIPPER_DEBUG_REG09_outsm_clr_rd_clipsm_wait_SHIFT)
+#define CLIPPER_DEBUG_REG09_SET_outsm_clr_fifo_empty(clipper_debug_reg09_reg, outsm_clr_fifo_empty) \
+ clipper_debug_reg09_reg = (clipper_debug_reg09_reg & ~CLIPPER_DEBUG_REG09_outsm_clr_fifo_empty_MASK) | (outsm_clr_fifo_empty << CLIPPER_DEBUG_REG09_outsm_clr_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG09_SET_outsm_clr_fifo_full(clipper_debug_reg09_reg, outsm_clr_fifo_full) \
+ clipper_debug_reg09_reg = (clipper_debug_reg09_reg & ~CLIPPER_DEBUG_REG09_outsm_clr_fifo_full_MASK) | (outsm_clr_fifo_full << CLIPPER_DEBUG_REG09_outsm_clr_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG09_SET_clip_priority_seq_indx_load(clipper_debug_reg09_reg, clip_priority_seq_indx_load) \
+ clipper_debug_reg09_reg = (clipper_debug_reg09_reg & ~CLIPPER_DEBUG_REG09_clip_priority_seq_indx_load_MASK) | (clip_priority_seq_indx_load << CLIPPER_DEBUG_REG09_clip_priority_seq_indx_load_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg09_t {
+ unsigned int clprim_in_back_event : CLIPPER_DEBUG_REG09_clprim_in_back_event_SIZE;
+ unsigned int outputclprimtoclip_null_primitive : CLIPPER_DEBUG_REG09_outputclprimtoclip_null_primitive_SIZE;
+ unsigned int clprim_in_back_vertex_store_indx_2 : CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_2_SIZE;
+ unsigned int always_zero2 : CLIPPER_DEBUG_REG09_ALWAYS_ZERO2_SIZE;
+ unsigned int clprim_in_back_vertex_store_indx_1 : CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_1_SIZE;
+ unsigned int always_zero1 : CLIPPER_DEBUG_REG09_ALWAYS_ZERO1_SIZE;
+ unsigned int clprim_in_back_vertex_store_indx_0 : CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_0_SIZE;
+ unsigned int always_zero0 : CLIPPER_DEBUG_REG09_ALWAYS_ZERO0_SIZE;
+ unsigned int prim_back_valid : CLIPPER_DEBUG_REG09_prim_back_valid_SIZE;
+ unsigned int clip_priority_seq_indx_out_cnt : CLIPPER_DEBUG_REG09_clip_priority_seq_indx_out_cnt_SIZE;
+ unsigned int outsm_clr_rd_orig_vertices : CLIPPER_DEBUG_REG09_outsm_clr_rd_orig_vertices_SIZE;
+ unsigned int outsm_clr_rd_clipsm_wait : CLIPPER_DEBUG_REG09_outsm_clr_rd_clipsm_wait_SIZE;
+ unsigned int outsm_clr_fifo_empty : CLIPPER_DEBUG_REG09_outsm_clr_fifo_empty_SIZE;
+ unsigned int outsm_clr_fifo_full : CLIPPER_DEBUG_REG09_outsm_clr_fifo_full_SIZE;
+ unsigned int clip_priority_seq_indx_load : CLIPPER_DEBUG_REG09_clip_priority_seq_indx_load_SIZE;
+ } clipper_debug_reg09_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg09_t {
+ unsigned int clip_priority_seq_indx_load : CLIPPER_DEBUG_REG09_clip_priority_seq_indx_load_SIZE;
+ unsigned int outsm_clr_fifo_full : CLIPPER_DEBUG_REG09_outsm_clr_fifo_full_SIZE;
+ unsigned int outsm_clr_fifo_empty : CLIPPER_DEBUG_REG09_outsm_clr_fifo_empty_SIZE;
+ unsigned int outsm_clr_rd_clipsm_wait : CLIPPER_DEBUG_REG09_outsm_clr_rd_clipsm_wait_SIZE;
+ unsigned int outsm_clr_rd_orig_vertices : CLIPPER_DEBUG_REG09_outsm_clr_rd_orig_vertices_SIZE;
+ unsigned int clip_priority_seq_indx_out_cnt : CLIPPER_DEBUG_REG09_clip_priority_seq_indx_out_cnt_SIZE;
+ unsigned int prim_back_valid : CLIPPER_DEBUG_REG09_prim_back_valid_SIZE;
+ unsigned int always_zero0 : CLIPPER_DEBUG_REG09_ALWAYS_ZERO0_SIZE;
+ unsigned int clprim_in_back_vertex_store_indx_0 : CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_0_SIZE;
+ unsigned int always_zero1 : CLIPPER_DEBUG_REG09_ALWAYS_ZERO1_SIZE;
+ unsigned int clprim_in_back_vertex_store_indx_1 : CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_1_SIZE;
+ unsigned int always_zero2 : CLIPPER_DEBUG_REG09_ALWAYS_ZERO2_SIZE;
+ unsigned int clprim_in_back_vertex_store_indx_2 : CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_2_SIZE;
+ unsigned int outputclprimtoclip_null_primitive : CLIPPER_DEBUG_REG09_outputclprimtoclip_null_primitive_SIZE;
+ unsigned int clprim_in_back_event : CLIPPER_DEBUG_REG09_clprim_in_back_event_SIZE;
+ } clipper_debug_reg09_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ clipper_debug_reg09_t f;
+} clipper_debug_reg09_u;
+
+
+/*
+ * CLIPPER_DEBUG_REG10 struct
+ */
+
+#define CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_2_SIZE 4
+#define CLIPPER_DEBUG_REG10_ALWAYS_ZERO3_SIZE 2
+#define CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_1_SIZE 4
+#define CLIPPER_DEBUG_REG10_ALWAYS_ZERO2_SIZE 2
+#define CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_0_SIZE 4
+#define CLIPPER_DEBUG_REG10_ALWAYS_ZERO1_SIZE 2
+#define CLIPPER_DEBUG_REG10_clprim_in_back_state_var_indx_SIZE 1
+#define CLIPPER_DEBUG_REG10_ALWAYS_ZERO0_SIZE 2
+#define CLIPPER_DEBUG_REG10_clprim_in_back_end_of_packet_SIZE 1
+#define CLIPPER_DEBUG_REG10_clprim_in_back_first_prim_of_slot_SIZE 1
+#define CLIPPER_DEBUG_REG10_clprim_in_back_deallocate_slot_SIZE 3
+#define CLIPPER_DEBUG_REG10_clprim_in_back_event_id_SIZE 6
+
+#define CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_2_SHIFT 0
+#define CLIPPER_DEBUG_REG10_ALWAYS_ZERO3_SHIFT 4
+#define CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_1_SHIFT 6
+#define CLIPPER_DEBUG_REG10_ALWAYS_ZERO2_SHIFT 10
+#define CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_0_SHIFT 12
+#define CLIPPER_DEBUG_REG10_ALWAYS_ZERO1_SHIFT 16
+#define CLIPPER_DEBUG_REG10_clprim_in_back_state_var_indx_SHIFT 18
+#define CLIPPER_DEBUG_REG10_ALWAYS_ZERO0_SHIFT 19
+#define CLIPPER_DEBUG_REG10_clprim_in_back_end_of_packet_SHIFT 21
+#define CLIPPER_DEBUG_REG10_clprim_in_back_first_prim_of_slot_SHIFT 22
+#define CLIPPER_DEBUG_REG10_clprim_in_back_deallocate_slot_SHIFT 23
+#define CLIPPER_DEBUG_REG10_clprim_in_back_event_id_SHIFT 26
+
+#define CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_2_MASK 0x0000000f
+#define CLIPPER_DEBUG_REG10_ALWAYS_ZERO3_MASK 0x00000030
+#define CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_1_MASK 0x000003c0
+#define CLIPPER_DEBUG_REG10_ALWAYS_ZERO2_MASK 0x00000c00
+#define CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_0_MASK 0x0000f000
+#define CLIPPER_DEBUG_REG10_ALWAYS_ZERO1_MASK 0x00030000
+#define CLIPPER_DEBUG_REG10_clprim_in_back_state_var_indx_MASK 0x00040000
+#define CLIPPER_DEBUG_REG10_ALWAYS_ZERO0_MASK 0x00180000
+#define CLIPPER_DEBUG_REG10_clprim_in_back_end_of_packet_MASK 0x00200000
+#define CLIPPER_DEBUG_REG10_clprim_in_back_first_prim_of_slot_MASK 0x00400000
+#define CLIPPER_DEBUG_REG10_clprim_in_back_deallocate_slot_MASK 0x03800000
+#define CLIPPER_DEBUG_REG10_clprim_in_back_event_id_MASK 0xfc000000
+
+#define CLIPPER_DEBUG_REG10_MASK \
+ (CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_2_MASK | \
+ CLIPPER_DEBUG_REG10_ALWAYS_ZERO3_MASK | \
+ CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_1_MASK | \
+ CLIPPER_DEBUG_REG10_ALWAYS_ZERO2_MASK | \
+ CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_0_MASK | \
+ CLIPPER_DEBUG_REG10_ALWAYS_ZERO1_MASK | \
+ CLIPPER_DEBUG_REG10_clprim_in_back_state_var_indx_MASK | \
+ CLIPPER_DEBUG_REG10_ALWAYS_ZERO0_MASK | \
+ CLIPPER_DEBUG_REG10_clprim_in_back_end_of_packet_MASK | \
+ CLIPPER_DEBUG_REG10_clprim_in_back_first_prim_of_slot_MASK | \
+ CLIPPER_DEBUG_REG10_clprim_in_back_deallocate_slot_MASK | \
+ CLIPPER_DEBUG_REG10_clprim_in_back_event_id_MASK)
+
+#define CLIPPER_DEBUG_REG10(primic_to_clprim_fifo_vertex_store_indx_2, always_zero3, primic_to_clprim_fifo_vertex_store_indx_1, always_zero2, primic_to_clprim_fifo_vertex_store_indx_0, always_zero1, clprim_in_back_state_var_indx, always_zero0, clprim_in_back_end_of_packet, clprim_in_back_first_prim_of_slot, clprim_in_back_deallocate_slot, clprim_in_back_event_id) \
+ ((primic_to_clprim_fifo_vertex_store_indx_2 << CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_2_SHIFT) | \
+ (always_zero3 << CLIPPER_DEBUG_REG10_ALWAYS_ZERO3_SHIFT) | \
+ (primic_to_clprim_fifo_vertex_store_indx_1 << CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_1_SHIFT) | \
+ (always_zero2 << CLIPPER_DEBUG_REG10_ALWAYS_ZERO2_SHIFT) | \
+ (primic_to_clprim_fifo_vertex_store_indx_0 << CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_0_SHIFT) | \
+ (always_zero1 << CLIPPER_DEBUG_REG10_ALWAYS_ZERO1_SHIFT) | \
+ (clprim_in_back_state_var_indx << CLIPPER_DEBUG_REG10_clprim_in_back_state_var_indx_SHIFT) | \
+ (always_zero0 << CLIPPER_DEBUG_REG10_ALWAYS_ZERO0_SHIFT) | \
+ (clprim_in_back_end_of_packet << CLIPPER_DEBUG_REG10_clprim_in_back_end_of_packet_SHIFT) | \
+ (clprim_in_back_first_prim_of_slot << CLIPPER_DEBUG_REG10_clprim_in_back_first_prim_of_slot_SHIFT) | \
+ (clprim_in_back_deallocate_slot << CLIPPER_DEBUG_REG10_clprim_in_back_deallocate_slot_SHIFT) | \
+ (clprim_in_back_event_id << CLIPPER_DEBUG_REG10_clprim_in_back_event_id_SHIFT))
+
+#define CLIPPER_DEBUG_REG10_GET_primic_to_clprim_fifo_vertex_store_indx_2(clipper_debug_reg10) \
+ ((clipper_debug_reg10 & CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_2_MASK) >> CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_2_SHIFT)
+#define CLIPPER_DEBUG_REG10_GET_ALWAYS_ZERO3(clipper_debug_reg10) \
+ ((clipper_debug_reg10 & CLIPPER_DEBUG_REG10_ALWAYS_ZERO3_MASK) >> CLIPPER_DEBUG_REG10_ALWAYS_ZERO3_SHIFT)
+#define CLIPPER_DEBUG_REG10_GET_primic_to_clprim_fifo_vertex_store_indx_1(clipper_debug_reg10) \
+ ((clipper_debug_reg10 & CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_1_MASK) >> CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_1_SHIFT)
+#define CLIPPER_DEBUG_REG10_GET_ALWAYS_ZERO2(clipper_debug_reg10) \
+ ((clipper_debug_reg10 & CLIPPER_DEBUG_REG10_ALWAYS_ZERO2_MASK) >> CLIPPER_DEBUG_REG10_ALWAYS_ZERO2_SHIFT)
+#define CLIPPER_DEBUG_REG10_GET_primic_to_clprim_fifo_vertex_store_indx_0(clipper_debug_reg10) \
+ ((clipper_debug_reg10 & CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_0_MASK) >> CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_0_SHIFT)
+#define CLIPPER_DEBUG_REG10_GET_ALWAYS_ZERO1(clipper_debug_reg10) \
+ ((clipper_debug_reg10 & CLIPPER_DEBUG_REG10_ALWAYS_ZERO1_MASK) >> CLIPPER_DEBUG_REG10_ALWAYS_ZERO1_SHIFT)
+#define CLIPPER_DEBUG_REG10_GET_clprim_in_back_state_var_indx(clipper_debug_reg10) \
+ ((clipper_debug_reg10 & CLIPPER_DEBUG_REG10_clprim_in_back_state_var_indx_MASK) >> CLIPPER_DEBUG_REG10_clprim_in_back_state_var_indx_SHIFT)
+#define CLIPPER_DEBUG_REG10_GET_ALWAYS_ZERO0(clipper_debug_reg10) \
+ ((clipper_debug_reg10 & CLIPPER_DEBUG_REG10_ALWAYS_ZERO0_MASK) >> CLIPPER_DEBUG_REG10_ALWAYS_ZERO0_SHIFT)
+#define CLIPPER_DEBUG_REG10_GET_clprim_in_back_end_of_packet(clipper_debug_reg10) \
+ ((clipper_debug_reg10 & CLIPPER_DEBUG_REG10_clprim_in_back_end_of_packet_MASK) >> CLIPPER_DEBUG_REG10_clprim_in_back_end_of_packet_SHIFT)
+#define CLIPPER_DEBUG_REG10_GET_clprim_in_back_first_prim_of_slot(clipper_debug_reg10) \
+ ((clipper_debug_reg10 & CLIPPER_DEBUG_REG10_clprim_in_back_first_prim_of_slot_MASK) >> CLIPPER_DEBUG_REG10_clprim_in_back_first_prim_of_slot_SHIFT)
+#define CLIPPER_DEBUG_REG10_GET_clprim_in_back_deallocate_slot(clipper_debug_reg10) \
+ ((clipper_debug_reg10 & CLIPPER_DEBUG_REG10_clprim_in_back_deallocate_slot_MASK) >> CLIPPER_DEBUG_REG10_clprim_in_back_deallocate_slot_SHIFT)
+#define CLIPPER_DEBUG_REG10_GET_clprim_in_back_event_id(clipper_debug_reg10) \
+ ((clipper_debug_reg10 & CLIPPER_DEBUG_REG10_clprim_in_back_event_id_MASK) >> CLIPPER_DEBUG_REG10_clprim_in_back_event_id_SHIFT)
+
+#define CLIPPER_DEBUG_REG10_SET_primic_to_clprim_fifo_vertex_store_indx_2(clipper_debug_reg10_reg, primic_to_clprim_fifo_vertex_store_indx_2) \
+ clipper_debug_reg10_reg = (clipper_debug_reg10_reg & ~CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_2_MASK) | (primic_to_clprim_fifo_vertex_store_indx_2 << CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_2_SHIFT)
+#define CLIPPER_DEBUG_REG10_SET_ALWAYS_ZERO3(clipper_debug_reg10_reg, always_zero3) \
+ clipper_debug_reg10_reg = (clipper_debug_reg10_reg & ~CLIPPER_DEBUG_REG10_ALWAYS_ZERO3_MASK) | (always_zero3 << CLIPPER_DEBUG_REG10_ALWAYS_ZERO3_SHIFT)
+#define CLIPPER_DEBUG_REG10_SET_primic_to_clprim_fifo_vertex_store_indx_1(clipper_debug_reg10_reg, primic_to_clprim_fifo_vertex_store_indx_1) \
+ clipper_debug_reg10_reg = (clipper_debug_reg10_reg & ~CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_1_MASK) | (primic_to_clprim_fifo_vertex_store_indx_1 << CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_1_SHIFT)
+#define CLIPPER_DEBUG_REG10_SET_ALWAYS_ZERO2(clipper_debug_reg10_reg, always_zero2) \
+ clipper_debug_reg10_reg = (clipper_debug_reg10_reg & ~CLIPPER_DEBUG_REG10_ALWAYS_ZERO2_MASK) | (always_zero2 << CLIPPER_DEBUG_REG10_ALWAYS_ZERO2_SHIFT)
+#define CLIPPER_DEBUG_REG10_SET_primic_to_clprim_fifo_vertex_store_indx_0(clipper_debug_reg10_reg, primic_to_clprim_fifo_vertex_store_indx_0) \
+ clipper_debug_reg10_reg = (clipper_debug_reg10_reg & ~CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_0_MASK) | (primic_to_clprim_fifo_vertex_store_indx_0 << CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_0_SHIFT)
+#define CLIPPER_DEBUG_REG10_SET_ALWAYS_ZERO1(clipper_debug_reg10_reg, always_zero1) \
+ clipper_debug_reg10_reg = (clipper_debug_reg10_reg & ~CLIPPER_DEBUG_REG10_ALWAYS_ZERO1_MASK) | (always_zero1 << CLIPPER_DEBUG_REG10_ALWAYS_ZERO1_SHIFT)
+#define CLIPPER_DEBUG_REG10_SET_clprim_in_back_state_var_indx(clipper_debug_reg10_reg, clprim_in_back_state_var_indx) \
+ clipper_debug_reg10_reg = (clipper_debug_reg10_reg & ~CLIPPER_DEBUG_REG10_clprim_in_back_state_var_indx_MASK) | (clprim_in_back_state_var_indx << CLIPPER_DEBUG_REG10_clprim_in_back_state_var_indx_SHIFT)
+#define CLIPPER_DEBUG_REG10_SET_ALWAYS_ZERO0(clipper_debug_reg10_reg, always_zero0) \
+ clipper_debug_reg10_reg = (clipper_debug_reg10_reg & ~CLIPPER_DEBUG_REG10_ALWAYS_ZERO0_MASK) | (always_zero0 << CLIPPER_DEBUG_REG10_ALWAYS_ZERO0_SHIFT)
+#define CLIPPER_DEBUG_REG10_SET_clprim_in_back_end_of_packet(clipper_debug_reg10_reg, clprim_in_back_end_of_packet) \
+ clipper_debug_reg10_reg = (clipper_debug_reg10_reg & ~CLIPPER_DEBUG_REG10_clprim_in_back_end_of_packet_MASK) | (clprim_in_back_end_of_packet << CLIPPER_DEBUG_REG10_clprim_in_back_end_of_packet_SHIFT)
+#define CLIPPER_DEBUG_REG10_SET_clprim_in_back_first_prim_of_slot(clipper_debug_reg10_reg, clprim_in_back_first_prim_of_slot) \
+ clipper_debug_reg10_reg = (clipper_debug_reg10_reg & ~CLIPPER_DEBUG_REG10_clprim_in_back_first_prim_of_slot_MASK) | (clprim_in_back_first_prim_of_slot << CLIPPER_DEBUG_REG10_clprim_in_back_first_prim_of_slot_SHIFT)
+#define CLIPPER_DEBUG_REG10_SET_clprim_in_back_deallocate_slot(clipper_debug_reg10_reg, clprim_in_back_deallocate_slot) \
+ clipper_debug_reg10_reg = (clipper_debug_reg10_reg & ~CLIPPER_DEBUG_REG10_clprim_in_back_deallocate_slot_MASK) | (clprim_in_back_deallocate_slot << CLIPPER_DEBUG_REG10_clprim_in_back_deallocate_slot_SHIFT)
+#define CLIPPER_DEBUG_REG10_SET_clprim_in_back_event_id(clipper_debug_reg10_reg, clprim_in_back_event_id) \
+ clipper_debug_reg10_reg = (clipper_debug_reg10_reg & ~CLIPPER_DEBUG_REG10_clprim_in_back_event_id_MASK) | (clprim_in_back_event_id << CLIPPER_DEBUG_REG10_clprim_in_back_event_id_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg10_t {
+ unsigned int primic_to_clprim_fifo_vertex_store_indx_2 : CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_2_SIZE;
+ unsigned int always_zero3 : CLIPPER_DEBUG_REG10_ALWAYS_ZERO3_SIZE;
+ unsigned int primic_to_clprim_fifo_vertex_store_indx_1 : CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_1_SIZE;
+ unsigned int always_zero2 : CLIPPER_DEBUG_REG10_ALWAYS_ZERO2_SIZE;
+ unsigned int primic_to_clprim_fifo_vertex_store_indx_0 : CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_0_SIZE;
+ unsigned int always_zero1 : CLIPPER_DEBUG_REG10_ALWAYS_ZERO1_SIZE;
+ unsigned int clprim_in_back_state_var_indx : CLIPPER_DEBUG_REG10_clprim_in_back_state_var_indx_SIZE;
+ unsigned int always_zero0 : CLIPPER_DEBUG_REG10_ALWAYS_ZERO0_SIZE;
+ unsigned int clprim_in_back_end_of_packet : CLIPPER_DEBUG_REG10_clprim_in_back_end_of_packet_SIZE;
+ unsigned int clprim_in_back_first_prim_of_slot : CLIPPER_DEBUG_REG10_clprim_in_back_first_prim_of_slot_SIZE;
+ unsigned int clprim_in_back_deallocate_slot : CLIPPER_DEBUG_REG10_clprim_in_back_deallocate_slot_SIZE;
+ unsigned int clprim_in_back_event_id : CLIPPER_DEBUG_REG10_clprim_in_back_event_id_SIZE;
+ } clipper_debug_reg10_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg10_t {
+ unsigned int clprim_in_back_event_id : CLIPPER_DEBUG_REG10_clprim_in_back_event_id_SIZE;
+ unsigned int clprim_in_back_deallocate_slot : CLIPPER_DEBUG_REG10_clprim_in_back_deallocate_slot_SIZE;
+ unsigned int clprim_in_back_first_prim_of_slot : CLIPPER_DEBUG_REG10_clprim_in_back_first_prim_of_slot_SIZE;
+ unsigned int clprim_in_back_end_of_packet : CLIPPER_DEBUG_REG10_clprim_in_back_end_of_packet_SIZE;
+ unsigned int always_zero0 : CLIPPER_DEBUG_REG10_ALWAYS_ZERO0_SIZE;
+ unsigned int clprim_in_back_state_var_indx : CLIPPER_DEBUG_REG10_clprim_in_back_state_var_indx_SIZE;
+ unsigned int always_zero1 : CLIPPER_DEBUG_REG10_ALWAYS_ZERO1_SIZE;
+ unsigned int primic_to_clprim_fifo_vertex_store_indx_0 : CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_0_SIZE;
+ unsigned int always_zero2 : CLIPPER_DEBUG_REG10_ALWAYS_ZERO2_SIZE;
+ unsigned int primic_to_clprim_fifo_vertex_store_indx_1 : CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_1_SIZE;
+ unsigned int always_zero3 : CLIPPER_DEBUG_REG10_ALWAYS_ZERO3_SIZE;
+ unsigned int primic_to_clprim_fifo_vertex_store_indx_2 : CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_2_SIZE;
+ } clipper_debug_reg10_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ clipper_debug_reg10_t f;
+} clipper_debug_reg10_u;
+
+
+/*
+ * CLIPPER_DEBUG_REG11 struct
+ */
+
+#define CLIPPER_DEBUG_REG11_vertval_bits_vertex_vertex_store_msb_SIZE 4
+#define CLIPPER_DEBUG_REG11_ALWAYS_ZERO_SIZE 28
+
+#define CLIPPER_DEBUG_REG11_vertval_bits_vertex_vertex_store_msb_SHIFT 0
+#define CLIPPER_DEBUG_REG11_ALWAYS_ZERO_SHIFT 4
+
+#define CLIPPER_DEBUG_REG11_vertval_bits_vertex_vertex_store_msb_MASK 0x0000000f
+#define CLIPPER_DEBUG_REG11_ALWAYS_ZERO_MASK 0xfffffff0
+
+#define CLIPPER_DEBUG_REG11_MASK \
+ (CLIPPER_DEBUG_REG11_vertval_bits_vertex_vertex_store_msb_MASK | \
+ CLIPPER_DEBUG_REG11_ALWAYS_ZERO_MASK)
+
+#define CLIPPER_DEBUG_REG11(vertval_bits_vertex_vertex_store_msb, always_zero) \
+ ((vertval_bits_vertex_vertex_store_msb << CLIPPER_DEBUG_REG11_vertval_bits_vertex_vertex_store_msb_SHIFT) | \
+ (always_zero << CLIPPER_DEBUG_REG11_ALWAYS_ZERO_SHIFT))
+
+#define CLIPPER_DEBUG_REG11_GET_vertval_bits_vertex_vertex_store_msb(clipper_debug_reg11) \
+ ((clipper_debug_reg11 & CLIPPER_DEBUG_REG11_vertval_bits_vertex_vertex_store_msb_MASK) >> CLIPPER_DEBUG_REG11_vertval_bits_vertex_vertex_store_msb_SHIFT)
+#define CLIPPER_DEBUG_REG11_GET_ALWAYS_ZERO(clipper_debug_reg11) \
+ ((clipper_debug_reg11 & CLIPPER_DEBUG_REG11_ALWAYS_ZERO_MASK) >> CLIPPER_DEBUG_REG11_ALWAYS_ZERO_SHIFT)
+
+#define CLIPPER_DEBUG_REG11_SET_vertval_bits_vertex_vertex_store_msb(clipper_debug_reg11_reg, vertval_bits_vertex_vertex_store_msb) \
+ clipper_debug_reg11_reg = (clipper_debug_reg11_reg & ~CLIPPER_DEBUG_REG11_vertval_bits_vertex_vertex_store_msb_MASK) | (vertval_bits_vertex_vertex_store_msb << CLIPPER_DEBUG_REG11_vertval_bits_vertex_vertex_store_msb_SHIFT)
+#define CLIPPER_DEBUG_REG11_SET_ALWAYS_ZERO(clipper_debug_reg11_reg, always_zero) \
+ clipper_debug_reg11_reg = (clipper_debug_reg11_reg & ~CLIPPER_DEBUG_REG11_ALWAYS_ZERO_MASK) | (always_zero << CLIPPER_DEBUG_REG11_ALWAYS_ZERO_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg11_t {
+ unsigned int vertval_bits_vertex_vertex_store_msb : CLIPPER_DEBUG_REG11_vertval_bits_vertex_vertex_store_msb_SIZE;
+ unsigned int always_zero : CLIPPER_DEBUG_REG11_ALWAYS_ZERO_SIZE;
+ } clipper_debug_reg11_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg11_t {
+ unsigned int always_zero : CLIPPER_DEBUG_REG11_ALWAYS_ZERO_SIZE;
+ unsigned int vertval_bits_vertex_vertex_store_msb : CLIPPER_DEBUG_REG11_vertval_bits_vertex_vertex_store_msb_SIZE;
+ } clipper_debug_reg11_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ clipper_debug_reg11_t f;
+} clipper_debug_reg11_u;
+
+
+/*
+ * CLIPPER_DEBUG_REG12 struct
+ */
+
+#define CLIPPER_DEBUG_REG12_clip_priority_available_vte_out_clip_SIZE 2
+#define CLIPPER_DEBUG_REG12_ALWAYS_ZERO2_SIZE 3
+#define CLIPPER_DEBUG_REG12_clip_vertex_fifo_empty_SIZE 1
+#define CLIPPER_DEBUG_REG12_clip_priority_available_clip_verts_SIZE 5
+#define CLIPPER_DEBUG_REG12_ALWAYS_ZERO1_SIZE 4
+#define CLIPPER_DEBUG_REG12_vertval_bits_vertex_cc_next_valid_SIZE 4
+#define CLIPPER_DEBUG_REG12_clipcc_vertex_store_indx_SIZE 2
+#define CLIPPER_DEBUG_REG12_primic_to_clprim_valid_SIZE 1
+#define CLIPPER_DEBUG_REG12_ALWAYS_ZERO0_SIZE 10
+
+#define CLIPPER_DEBUG_REG12_clip_priority_available_vte_out_clip_SHIFT 0
+#define CLIPPER_DEBUG_REG12_ALWAYS_ZERO2_SHIFT 2
+#define CLIPPER_DEBUG_REG12_clip_vertex_fifo_empty_SHIFT 5
+#define CLIPPER_DEBUG_REG12_clip_priority_available_clip_verts_SHIFT 6
+#define CLIPPER_DEBUG_REG12_ALWAYS_ZERO1_SHIFT 11
+#define CLIPPER_DEBUG_REG12_vertval_bits_vertex_cc_next_valid_SHIFT 15
+#define CLIPPER_DEBUG_REG12_clipcc_vertex_store_indx_SHIFT 19
+#define CLIPPER_DEBUG_REG12_primic_to_clprim_valid_SHIFT 21
+#define CLIPPER_DEBUG_REG12_ALWAYS_ZERO0_SHIFT 22
+
+#define CLIPPER_DEBUG_REG12_clip_priority_available_vte_out_clip_MASK 0x00000003
+#define CLIPPER_DEBUG_REG12_ALWAYS_ZERO2_MASK 0x0000001c
+#define CLIPPER_DEBUG_REG12_clip_vertex_fifo_empty_MASK 0x00000020
+#define CLIPPER_DEBUG_REG12_clip_priority_available_clip_verts_MASK 0x000007c0
+#define CLIPPER_DEBUG_REG12_ALWAYS_ZERO1_MASK 0x00007800
+#define CLIPPER_DEBUG_REG12_vertval_bits_vertex_cc_next_valid_MASK 0x00078000
+#define CLIPPER_DEBUG_REG12_clipcc_vertex_store_indx_MASK 0x00180000
+#define CLIPPER_DEBUG_REG12_primic_to_clprim_valid_MASK 0x00200000
+#define CLIPPER_DEBUG_REG12_ALWAYS_ZERO0_MASK 0xffc00000
+
+#define CLIPPER_DEBUG_REG12_MASK \
+ (CLIPPER_DEBUG_REG12_clip_priority_available_vte_out_clip_MASK | \
+ CLIPPER_DEBUG_REG12_ALWAYS_ZERO2_MASK | \
+ CLIPPER_DEBUG_REG12_clip_vertex_fifo_empty_MASK | \
+ CLIPPER_DEBUG_REG12_clip_priority_available_clip_verts_MASK | \
+ CLIPPER_DEBUG_REG12_ALWAYS_ZERO1_MASK | \
+ CLIPPER_DEBUG_REG12_vertval_bits_vertex_cc_next_valid_MASK | \
+ CLIPPER_DEBUG_REG12_clipcc_vertex_store_indx_MASK | \
+ CLIPPER_DEBUG_REG12_primic_to_clprim_valid_MASK | \
+ CLIPPER_DEBUG_REG12_ALWAYS_ZERO0_MASK)
+
+#define CLIPPER_DEBUG_REG12(clip_priority_available_vte_out_clip, always_zero2, clip_vertex_fifo_empty, clip_priority_available_clip_verts, always_zero1, vertval_bits_vertex_cc_next_valid, clipcc_vertex_store_indx, primic_to_clprim_valid, always_zero0) \
+ ((clip_priority_available_vte_out_clip << CLIPPER_DEBUG_REG12_clip_priority_available_vte_out_clip_SHIFT) | \
+ (always_zero2 << CLIPPER_DEBUG_REG12_ALWAYS_ZERO2_SHIFT) | \
+ (clip_vertex_fifo_empty << CLIPPER_DEBUG_REG12_clip_vertex_fifo_empty_SHIFT) | \
+ (clip_priority_available_clip_verts << CLIPPER_DEBUG_REG12_clip_priority_available_clip_verts_SHIFT) | \
+ (always_zero1 << CLIPPER_DEBUG_REG12_ALWAYS_ZERO1_SHIFT) | \
+ (vertval_bits_vertex_cc_next_valid << CLIPPER_DEBUG_REG12_vertval_bits_vertex_cc_next_valid_SHIFT) | \
+ (clipcc_vertex_store_indx << CLIPPER_DEBUG_REG12_clipcc_vertex_store_indx_SHIFT) | \
+ (primic_to_clprim_valid << CLIPPER_DEBUG_REG12_primic_to_clprim_valid_SHIFT) | \
+ (always_zero0 << CLIPPER_DEBUG_REG12_ALWAYS_ZERO0_SHIFT))
+
+#define CLIPPER_DEBUG_REG12_GET_clip_priority_available_vte_out_clip(clipper_debug_reg12) \
+ ((clipper_debug_reg12 & CLIPPER_DEBUG_REG12_clip_priority_available_vte_out_clip_MASK) >> CLIPPER_DEBUG_REG12_clip_priority_available_vte_out_clip_SHIFT)
+#define CLIPPER_DEBUG_REG12_GET_ALWAYS_ZERO2(clipper_debug_reg12) \
+ ((clipper_debug_reg12 & CLIPPER_DEBUG_REG12_ALWAYS_ZERO2_MASK) >> CLIPPER_DEBUG_REG12_ALWAYS_ZERO2_SHIFT)
+#define CLIPPER_DEBUG_REG12_GET_clip_vertex_fifo_empty(clipper_debug_reg12) \
+ ((clipper_debug_reg12 & CLIPPER_DEBUG_REG12_clip_vertex_fifo_empty_MASK) >> CLIPPER_DEBUG_REG12_clip_vertex_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG12_GET_clip_priority_available_clip_verts(clipper_debug_reg12) \
+ ((clipper_debug_reg12 & CLIPPER_DEBUG_REG12_clip_priority_available_clip_verts_MASK) >> CLIPPER_DEBUG_REG12_clip_priority_available_clip_verts_SHIFT)
+#define CLIPPER_DEBUG_REG12_GET_ALWAYS_ZERO1(clipper_debug_reg12) \
+ ((clipper_debug_reg12 & CLIPPER_DEBUG_REG12_ALWAYS_ZERO1_MASK) >> CLIPPER_DEBUG_REG12_ALWAYS_ZERO1_SHIFT)
+#define CLIPPER_DEBUG_REG12_GET_vertval_bits_vertex_cc_next_valid(clipper_debug_reg12) \
+ ((clipper_debug_reg12 & CLIPPER_DEBUG_REG12_vertval_bits_vertex_cc_next_valid_MASK) >> CLIPPER_DEBUG_REG12_vertval_bits_vertex_cc_next_valid_SHIFT)
+#define CLIPPER_DEBUG_REG12_GET_clipcc_vertex_store_indx(clipper_debug_reg12) \
+ ((clipper_debug_reg12 & CLIPPER_DEBUG_REG12_clipcc_vertex_store_indx_MASK) >> CLIPPER_DEBUG_REG12_clipcc_vertex_store_indx_SHIFT)
+#define CLIPPER_DEBUG_REG12_GET_primic_to_clprim_valid(clipper_debug_reg12) \
+ ((clipper_debug_reg12 & CLIPPER_DEBUG_REG12_primic_to_clprim_valid_MASK) >> CLIPPER_DEBUG_REG12_primic_to_clprim_valid_SHIFT)
+#define CLIPPER_DEBUG_REG12_GET_ALWAYS_ZERO0(clipper_debug_reg12) \
+ ((clipper_debug_reg12 & CLIPPER_DEBUG_REG12_ALWAYS_ZERO0_MASK) >> CLIPPER_DEBUG_REG12_ALWAYS_ZERO0_SHIFT)
+
+#define CLIPPER_DEBUG_REG12_SET_clip_priority_available_vte_out_clip(clipper_debug_reg12_reg, clip_priority_available_vte_out_clip) \
+ clipper_debug_reg12_reg = (clipper_debug_reg12_reg & ~CLIPPER_DEBUG_REG12_clip_priority_available_vte_out_clip_MASK) | (clip_priority_available_vte_out_clip << CLIPPER_DEBUG_REG12_clip_priority_available_vte_out_clip_SHIFT)
+#define CLIPPER_DEBUG_REG12_SET_ALWAYS_ZERO2(clipper_debug_reg12_reg, always_zero2) \
+ clipper_debug_reg12_reg = (clipper_debug_reg12_reg & ~CLIPPER_DEBUG_REG12_ALWAYS_ZERO2_MASK) | (always_zero2 << CLIPPER_DEBUG_REG12_ALWAYS_ZERO2_SHIFT)
+#define CLIPPER_DEBUG_REG12_SET_clip_vertex_fifo_empty(clipper_debug_reg12_reg, clip_vertex_fifo_empty) \
+ clipper_debug_reg12_reg = (clipper_debug_reg12_reg & ~CLIPPER_DEBUG_REG12_clip_vertex_fifo_empty_MASK) | (clip_vertex_fifo_empty << CLIPPER_DEBUG_REG12_clip_vertex_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG12_SET_clip_priority_available_clip_verts(clipper_debug_reg12_reg, clip_priority_available_clip_verts) \
+ clipper_debug_reg12_reg = (clipper_debug_reg12_reg & ~CLIPPER_DEBUG_REG12_clip_priority_available_clip_verts_MASK) | (clip_priority_available_clip_verts << CLIPPER_DEBUG_REG12_clip_priority_available_clip_verts_SHIFT)
+#define CLIPPER_DEBUG_REG12_SET_ALWAYS_ZERO1(clipper_debug_reg12_reg, always_zero1) \
+ clipper_debug_reg12_reg = (clipper_debug_reg12_reg & ~CLIPPER_DEBUG_REG12_ALWAYS_ZERO1_MASK) | (always_zero1 << CLIPPER_DEBUG_REG12_ALWAYS_ZERO1_SHIFT)
+#define CLIPPER_DEBUG_REG12_SET_vertval_bits_vertex_cc_next_valid(clipper_debug_reg12_reg, vertval_bits_vertex_cc_next_valid) \
+ clipper_debug_reg12_reg = (clipper_debug_reg12_reg & ~CLIPPER_DEBUG_REG12_vertval_bits_vertex_cc_next_valid_MASK) | (vertval_bits_vertex_cc_next_valid << CLIPPER_DEBUG_REG12_vertval_bits_vertex_cc_next_valid_SHIFT)
+#define CLIPPER_DEBUG_REG12_SET_clipcc_vertex_store_indx(clipper_debug_reg12_reg, clipcc_vertex_store_indx) \
+ clipper_debug_reg12_reg = (clipper_debug_reg12_reg & ~CLIPPER_DEBUG_REG12_clipcc_vertex_store_indx_MASK) | (clipcc_vertex_store_indx << CLIPPER_DEBUG_REG12_clipcc_vertex_store_indx_SHIFT)
+#define CLIPPER_DEBUG_REG12_SET_primic_to_clprim_valid(clipper_debug_reg12_reg, primic_to_clprim_valid) \
+ clipper_debug_reg12_reg = (clipper_debug_reg12_reg & ~CLIPPER_DEBUG_REG12_primic_to_clprim_valid_MASK) | (primic_to_clprim_valid << CLIPPER_DEBUG_REG12_primic_to_clprim_valid_SHIFT)
+#define CLIPPER_DEBUG_REG12_SET_ALWAYS_ZERO0(clipper_debug_reg12_reg, always_zero0) \
+ clipper_debug_reg12_reg = (clipper_debug_reg12_reg & ~CLIPPER_DEBUG_REG12_ALWAYS_ZERO0_MASK) | (always_zero0 << CLIPPER_DEBUG_REG12_ALWAYS_ZERO0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg12_t {
+ unsigned int clip_priority_available_vte_out_clip : CLIPPER_DEBUG_REG12_clip_priority_available_vte_out_clip_SIZE;
+ unsigned int always_zero2 : CLIPPER_DEBUG_REG12_ALWAYS_ZERO2_SIZE;
+ unsigned int clip_vertex_fifo_empty : CLIPPER_DEBUG_REG12_clip_vertex_fifo_empty_SIZE;
+ unsigned int clip_priority_available_clip_verts : CLIPPER_DEBUG_REG12_clip_priority_available_clip_verts_SIZE;
+ unsigned int always_zero1 : CLIPPER_DEBUG_REG12_ALWAYS_ZERO1_SIZE;
+ unsigned int vertval_bits_vertex_cc_next_valid : CLIPPER_DEBUG_REG12_vertval_bits_vertex_cc_next_valid_SIZE;
+ unsigned int clipcc_vertex_store_indx : CLIPPER_DEBUG_REG12_clipcc_vertex_store_indx_SIZE;
+ unsigned int primic_to_clprim_valid : CLIPPER_DEBUG_REG12_primic_to_clprim_valid_SIZE;
+ unsigned int always_zero0 : CLIPPER_DEBUG_REG12_ALWAYS_ZERO0_SIZE;
+ } clipper_debug_reg12_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg12_t {
+ unsigned int always_zero0 : CLIPPER_DEBUG_REG12_ALWAYS_ZERO0_SIZE;
+ unsigned int primic_to_clprim_valid : CLIPPER_DEBUG_REG12_primic_to_clprim_valid_SIZE;
+ unsigned int clipcc_vertex_store_indx : CLIPPER_DEBUG_REG12_clipcc_vertex_store_indx_SIZE;
+ unsigned int vertval_bits_vertex_cc_next_valid : CLIPPER_DEBUG_REG12_vertval_bits_vertex_cc_next_valid_SIZE;
+ unsigned int always_zero1 : CLIPPER_DEBUG_REG12_ALWAYS_ZERO1_SIZE;
+ unsigned int clip_priority_available_clip_verts : CLIPPER_DEBUG_REG12_clip_priority_available_clip_verts_SIZE;
+ unsigned int clip_vertex_fifo_empty : CLIPPER_DEBUG_REG12_clip_vertex_fifo_empty_SIZE;
+ unsigned int always_zero2 : CLIPPER_DEBUG_REG12_ALWAYS_ZERO2_SIZE;
+ unsigned int clip_priority_available_vte_out_clip : CLIPPER_DEBUG_REG12_clip_priority_available_vte_out_clip_SIZE;
+ } clipper_debug_reg12_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ clipper_debug_reg12_t f;
+} clipper_debug_reg12_u;
+
+
+/*
+ * CLIPPER_DEBUG_REG13 struct
+ */
+
+#define CLIPPER_DEBUG_REG13_sm0_clip_vert_cnt_SIZE 4
+#define CLIPPER_DEBUG_REG13_sm0_prim_end_state_SIZE 7
+#define CLIPPER_DEBUG_REG13_ALWAYS_ZERO1_SIZE 3
+#define CLIPPER_DEBUG_REG13_sm0_vertex_clip_cnt_SIZE 4
+#define CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_1_SIZE 1
+#define CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_0_SIZE 1
+#define CLIPPER_DEBUG_REG13_sm0_current_state_SIZE 7
+#define CLIPPER_DEBUG_REG13_ALWAYS_ZERO0_SIZE 5
+
+#define CLIPPER_DEBUG_REG13_sm0_clip_vert_cnt_SHIFT 0
+#define CLIPPER_DEBUG_REG13_sm0_prim_end_state_SHIFT 4
+#define CLIPPER_DEBUG_REG13_ALWAYS_ZERO1_SHIFT 11
+#define CLIPPER_DEBUG_REG13_sm0_vertex_clip_cnt_SHIFT 14
+#define CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_1_SHIFT 18
+#define CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_0_SHIFT 19
+#define CLIPPER_DEBUG_REG13_sm0_current_state_SHIFT 20
+#define CLIPPER_DEBUG_REG13_ALWAYS_ZERO0_SHIFT 27
+
+#define CLIPPER_DEBUG_REG13_sm0_clip_vert_cnt_MASK 0x0000000f
+#define CLIPPER_DEBUG_REG13_sm0_prim_end_state_MASK 0x000007f0
+#define CLIPPER_DEBUG_REG13_ALWAYS_ZERO1_MASK 0x00003800
+#define CLIPPER_DEBUG_REG13_sm0_vertex_clip_cnt_MASK 0x0003c000
+#define CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_1_MASK 0x00040000
+#define CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_0_MASK 0x00080000
+#define CLIPPER_DEBUG_REG13_sm0_current_state_MASK 0x07f00000
+#define CLIPPER_DEBUG_REG13_ALWAYS_ZERO0_MASK 0xf8000000
+
+#define CLIPPER_DEBUG_REG13_MASK \
+ (CLIPPER_DEBUG_REG13_sm0_clip_vert_cnt_MASK | \
+ CLIPPER_DEBUG_REG13_sm0_prim_end_state_MASK | \
+ CLIPPER_DEBUG_REG13_ALWAYS_ZERO1_MASK | \
+ CLIPPER_DEBUG_REG13_sm0_vertex_clip_cnt_MASK | \
+ CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_1_MASK | \
+ CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_0_MASK | \
+ CLIPPER_DEBUG_REG13_sm0_current_state_MASK | \
+ CLIPPER_DEBUG_REG13_ALWAYS_ZERO0_MASK)
+
+#define CLIPPER_DEBUG_REG13(sm0_clip_vert_cnt, sm0_prim_end_state, always_zero1, sm0_vertex_clip_cnt, sm0_inv_to_clip_data_valid_1, sm0_inv_to_clip_data_valid_0, sm0_current_state, always_zero0) \
+ ((sm0_clip_vert_cnt << CLIPPER_DEBUG_REG13_sm0_clip_vert_cnt_SHIFT) | \
+ (sm0_prim_end_state << CLIPPER_DEBUG_REG13_sm0_prim_end_state_SHIFT) | \
+ (always_zero1 << CLIPPER_DEBUG_REG13_ALWAYS_ZERO1_SHIFT) | \
+ (sm0_vertex_clip_cnt << CLIPPER_DEBUG_REG13_sm0_vertex_clip_cnt_SHIFT) | \
+ (sm0_inv_to_clip_data_valid_1 << CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_1_SHIFT) | \
+ (sm0_inv_to_clip_data_valid_0 << CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_0_SHIFT) | \
+ (sm0_current_state << CLIPPER_DEBUG_REG13_sm0_current_state_SHIFT) | \
+ (always_zero0 << CLIPPER_DEBUG_REG13_ALWAYS_ZERO0_SHIFT))
+
+#define CLIPPER_DEBUG_REG13_GET_sm0_clip_vert_cnt(clipper_debug_reg13) \
+ ((clipper_debug_reg13 & CLIPPER_DEBUG_REG13_sm0_clip_vert_cnt_MASK) >> CLIPPER_DEBUG_REG13_sm0_clip_vert_cnt_SHIFT)
+#define CLIPPER_DEBUG_REG13_GET_sm0_prim_end_state(clipper_debug_reg13) \
+ ((clipper_debug_reg13 & CLIPPER_DEBUG_REG13_sm0_prim_end_state_MASK) >> CLIPPER_DEBUG_REG13_sm0_prim_end_state_SHIFT)
+#define CLIPPER_DEBUG_REG13_GET_ALWAYS_ZERO1(clipper_debug_reg13) \
+ ((clipper_debug_reg13 & CLIPPER_DEBUG_REG13_ALWAYS_ZERO1_MASK) >> CLIPPER_DEBUG_REG13_ALWAYS_ZERO1_SHIFT)
+#define CLIPPER_DEBUG_REG13_GET_sm0_vertex_clip_cnt(clipper_debug_reg13) \
+ ((clipper_debug_reg13 & CLIPPER_DEBUG_REG13_sm0_vertex_clip_cnt_MASK) >> CLIPPER_DEBUG_REG13_sm0_vertex_clip_cnt_SHIFT)
+#define CLIPPER_DEBUG_REG13_GET_sm0_inv_to_clip_data_valid_1(clipper_debug_reg13) \
+ ((clipper_debug_reg13 & CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_1_MASK) >> CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_1_SHIFT)
+#define CLIPPER_DEBUG_REG13_GET_sm0_inv_to_clip_data_valid_0(clipper_debug_reg13) \
+ ((clipper_debug_reg13 & CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_0_MASK) >> CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_0_SHIFT)
+#define CLIPPER_DEBUG_REG13_GET_sm0_current_state(clipper_debug_reg13) \
+ ((clipper_debug_reg13 & CLIPPER_DEBUG_REG13_sm0_current_state_MASK) >> CLIPPER_DEBUG_REG13_sm0_current_state_SHIFT)
+#define CLIPPER_DEBUG_REG13_GET_ALWAYS_ZERO0(clipper_debug_reg13) \
+ ((clipper_debug_reg13 & CLIPPER_DEBUG_REG13_ALWAYS_ZERO0_MASK) >> CLIPPER_DEBUG_REG13_ALWAYS_ZERO0_SHIFT)
+
+#define CLIPPER_DEBUG_REG13_SET_sm0_clip_vert_cnt(clipper_debug_reg13_reg, sm0_clip_vert_cnt) \
+ clipper_debug_reg13_reg = (clipper_debug_reg13_reg & ~CLIPPER_DEBUG_REG13_sm0_clip_vert_cnt_MASK) | (sm0_clip_vert_cnt << CLIPPER_DEBUG_REG13_sm0_clip_vert_cnt_SHIFT)
+#define CLIPPER_DEBUG_REG13_SET_sm0_prim_end_state(clipper_debug_reg13_reg, sm0_prim_end_state) \
+ clipper_debug_reg13_reg = (clipper_debug_reg13_reg & ~CLIPPER_DEBUG_REG13_sm0_prim_end_state_MASK) | (sm0_prim_end_state << CLIPPER_DEBUG_REG13_sm0_prim_end_state_SHIFT)
+#define CLIPPER_DEBUG_REG13_SET_ALWAYS_ZERO1(clipper_debug_reg13_reg, always_zero1) \
+ clipper_debug_reg13_reg = (clipper_debug_reg13_reg & ~CLIPPER_DEBUG_REG13_ALWAYS_ZERO1_MASK) | (always_zero1 << CLIPPER_DEBUG_REG13_ALWAYS_ZERO1_SHIFT)
+#define CLIPPER_DEBUG_REG13_SET_sm0_vertex_clip_cnt(clipper_debug_reg13_reg, sm0_vertex_clip_cnt) \
+ clipper_debug_reg13_reg = (clipper_debug_reg13_reg & ~CLIPPER_DEBUG_REG13_sm0_vertex_clip_cnt_MASK) | (sm0_vertex_clip_cnt << CLIPPER_DEBUG_REG13_sm0_vertex_clip_cnt_SHIFT)
+#define CLIPPER_DEBUG_REG13_SET_sm0_inv_to_clip_data_valid_1(clipper_debug_reg13_reg, sm0_inv_to_clip_data_valid_1) \
+ clipper_debug_reg13_reg = (clipper_debug_reg13_reg & ~CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_1_MASK) | (sm0_inv_to_clip_data_valid_1 << CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_1_SHIFT)
+#define CLIPPER_DEBUG_REG13_SET_sm0_inv_to_clip_data_valid_0(clipper_debug_reg13_reg, sm0_inv_to_clip_data_valid_0) \
+ clipper_debug_reg13_reg = (clipper_debug_reg13_reg & ~CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_0_MASK) | (sm0_inv_to_clip_data_valid_0 << CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_0_SHIFT)
+#define CLIPPER_DEBUG_REG13_SET_sm0_current_state(clipper_debug_reg13_reg, sm0_current_state) \
+ clipper_debug_reg13_reg = (clipper_debug_reg13_reg & ~CLIPPER_DEBUG_REG13_sm0_current_state_MASK) | (sm0_current_state << CLIPPER_DEBUG_REG13_sm0_current_state_SHIFT)
+#define CLIPPER_DEBUG_REG13_SET_ALWAYS_ZERO0(clipper_debug_reg13_reg, always_zero0) \
+ clipper_debug_reg13_reg = (clipper_debug_reg13_reg & ~CLIPPER_DEBUG_REG13_ALWAYS_ZERO0_MASK) | (always_zero0 << CLIPPER_DEBUG_REG13_ALWAYS_ZERO0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg13_t {
+ unsigned int sm0_clip_vert_cnt : CLIPPER_DEBUG_REG13_sm0_clip_vert_cnt_SIZE;
+ unsigned int sm0_prim_end_state : CLIPPER_DEBUG_REG13_sm0_prim_end_state_SIZE;
+ unsigned int always_zero1 : CLIPPER_DEBUG_REG13_ALWAYS_ZERO1_SIZE;
+ unsigned int sm0_vertex_clip_cnt : CLIPPER_DEBUG_REG13_sm0_vertex_clip_cnt_SIZE;
+ unsigned int sm0_inv_to_clip_data_valid_1 : CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_1_SIZE;
+ unsigned int sm0_inv_to_clip_data_valid_0 : CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_0_SIZE;
+ unsigned int sm0_current_state : CLIPPER_DEBUG_REG13_sm0_current_state_SIZE;
+ unsigned int always_zero0 : CLIPPER_DEBUG_REG13_ALWAYS_ZERO0_SIZE;
+ } clipper_debug_reg13_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg13_t {
+ unsigned int always_zero0 : CLIPPER_DEBUG_REG13_ALWAYS_ZERO0_SIZE;
+ unsigned int sm0_current_state : CLIPPER_DEBUG_REG13_sm0_current_state_SIZE;
+ unsigned int sm0_inv_to_clip_data_valid_0 : CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_0_SIZE;
+ unsigned int sm0_inv_to_clip_data_valid_1 : CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_1_SIZE;
+ unsigned int sm0_vertex_clip_cnt : CLIPPER_DEBUG_REG13_sm0_vertex_clip_cnt_SIZE;
+ unsigned int always_zero1 : CLIPPER_DEBUG_REG13_ALWAYS_ZERO1_SIZE;
+ unsigned int sm0_prim_end_state : CLIPPER_DEBUG_REG13_sm0_prim_end_state_SIZE;
+ unsigned int sm0_clip_vert_cnt : CLIPPER_DEBUG_REG13_sm0_clip_vert_cnt_SIZE;
+ } clipper_debug_reg13_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ clipper_debug_reg13_t f;
+} clipper_debug_reg13_u;
+
+
+/*
+ * SXIFCCG_DEBUG_REG0 struct
+ */
+
+#define SXIFCCG_DEBUG_REG0_nan_kill_flag_SIZE 4
+#define SXIFCCG_DEBUG_REG0_position_address_SIZE 3
+#define SXIFCCG_DEBUG_REG0_ALWAYS_ZERO2_SIZE 3
+#define SXIFCCG_DEBUG_REG0_point_address_SIZE 3
+#define SXIFCCG_DEBUG_REG0_ALWAYS_ZERO1_SIZE 3
+#define SXIFCCG_DEBUG_REG0_sx_pending_rd_state_var_indx_SIZE 1
+#define SXIFCCG_DEBUG_REG0_ALWAYS_ZERO0_SIZE 2
+#define SXIFCCG_DEBUG_REG0_sx_pending_rd_req_mask_SIZE 4
+#define SXIFCCG_DEBUG_REG0_sx_pending_rd_pci_SIZE 7
+#define SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_inc_SIZE 1
+#define SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_sel_SIZE 1
+
+#define SXIFCCG_DEBUG_REG0_nan_kill_flag_SHIFT 0
+#define SXIFCCG_DEBUG_REG0_position_address_SHIFT 4
+#define SXIFCCG_DEBUG_REG0_ALWAYS_ZERO2_SHIFT 7
+#define SXIFCCG_DEBUG_REG0_point_address_SHIFT 10
+#define SXIFCCG_DEBUG_REG0_ALWAYS_ZERO1_SHIFT 13
+#define SXIFCCG_DEBUG_REG0_sx_pending_rd_state_var_indx_SHIFT 16
+#define SXIFCCG_DEBUG_REG0_ALWAYS_ZERO0_SHIFT 17
+#define SXIFCCG_DEBUG_REG0_sx_pending_rd_req_mask_SHIFT 19
+#define SXIFCCG_DEBUG_REG0_sx_pending_rd_pci_SHIFT 23
+#define SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_inc_SHIFT 30
+#define SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_sel_SHIFT 31
+
+#define SXIFCCG_DEBUG_REG0_nan_kill_flag_MASK 0x0000000f
+#define SXIFCCG_DEBUG_REG0_position_address_MASK 0x00000070
+#define SXIFCCG_DEBUG_REG0_ALWAYS_ZERO2_MASK 0x00000380
+#define SXIFCCG_DEBUG_REG0_point_address_MASK 0x00001c00
+#define SXIFCCG_DEBUG_REG0_ALWAYS_ZERO1_MASK 0x0000e000
+#define SXIFCCG_DEBUG_REG0_sx_pending_rd_state_var_indx_MASK 0x00010000
+#define SXIFCCG_DEBUG_REG0_ALWAYS_ZERO0_MASK 0x00060000
+#define SXIFCCG_DEBUG_REG0_sx_pending_rd_req_mask_MASK 0x00780000
+#define SXIFCCG_DEBUG_REG0_sx_pending_rd_pci_MASK 0x3f800000
+#define SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_inc_MASK 0x40000000
+#define SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_sel_MASK 0x80000000
+
+#define SXIFCCG_DEBUG_REG0_MASK \
+ (SXIFCCG_DEBUG_REG0_nan_kill_flag_MASK | \
+ SXIFCCG_DEBUG_REG0_position_address_MASK | \
+ SXIFCCG_DEBUG_REG0_ALWAYS_ZERO2_MASK | \
+ SXIFCCG_DEBUG_REG0_point_address_MASK | \
+ SXIFCCG_DEBUG_REG0_ALWAYS_ZERO1_MASK | \
+ SXIFCCG_DEBUG_REG0_sx_pending_rd_state_var_indx_MASK | \
+ SXIFCCG_DEBUG_REG0_ALWAYS_ZERO0_MASK | \
+ SXIFCCG_DEBUG_REG0_sx_pending_rd_req_mask_MASK | \
+ SXIFCCG_DEBUG_REG0_sx_pending_rd_pci_MASK | \
+ SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_inc_MASK | \
+ SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_sel_MASK)
+
+#define SXIFCCG_DEBUG_REG0(nan_kill_flag, position_address, always_zero2, point_address, always_zero1, sx_pending_rd_state_var_indx, always_zero0, sx_pending_rd_req_mask, sx_pending_rd_pci, sx_pending_rd_aux_inc, sx_pending_rd_aux_sel) \
+ ((nan_kill_flag << SXIFCCG_DEBUG_REG0_nan_kill_flag_SHIFT) | \
+ (position_address << SXIFCCG_DEBUG_REG0_position_address_SHIFT) | \
+ (always_zero2 << SXIFCCG_DEBUG_REG0_ALWAYS_ZERO2_SHIFT) | \
+ (point_address << SXIFCCG_DEBUG_REG0_point_address_SHIFT) | \
+ (always_zero1 << SXIFCCG_DEBUG_REG0_ALWAYS_ZERO1_SHIFT) | \
+ (sx_pending_rd_state_var_indx << SXIFCCG_DEBUG_REG0_sx_pending_rd_state_var_indx_SHIFT) | \
+ (always_zero0 << SXIFCCG_DEBUG_REG0_ALWAYS_ZERO0_SHIFT) | \
+ (sx_pending_rd_req_mask << SXIFCCG_DEBUG_REG0_sx_pending_rd_req_mask_SHIFT) | \
+ (sx_pending_rd_pci << SXIFCCG_DEBUG_REG0_sx_pending_rd_pci_SHIFT) | \
+ (sx_pending_rd_aux_inc << SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_inc_SHIFT) | \
+ (sx_pending_rd_aux_sel << SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_sel_SHIFT))
+
+#define SXIFCCG_DEBUG_REG0_GET_nan_kill_flag(sxifccg_debug_reg0) \
+ ((sxifccg_debug_reg0 & SXIFCCG_DEBUG_REG0_nan_kill_flag_MASK) >> SXIFCCG_DEBUG_REG0_nan_kill_flag_SHIFT)
+#define SXIFCCG_DEBUG_REG0_GET_position_address(sxifccg_debug_reg0) \
+ ((sxifccg_debug_reg0 & SXIFCCG_DEBUG_REG0_position_address_MASK) >> SXIFCCG_DEBUG_REG0_position_address_SHIFT)
+#define SXIFCCG_DEBUG_REG0_GET_ALWAYS_ZERO2(sxifccg_debug_reg0) \
+ ((sxifccg_debug_reg0 & SXIFCCG_DEBUG_REG0_ALWAYS_ZERO2_MASK) >> SXIFCCG_DEBUG_REG0_ALWAYS_ZERO2_SHIFT)
+#define SXIFCCG_DEBUG_REG0_GET_point_address(sxifccg_debug_reg0) \
+ ((sxifccg_debug_reg0 & SXIFCCG_DEBUG_REG0_point_address_MASK) >> SXIFCCG_DEBUG_REG0_point_address_SHIFT)
+#define SXIFCCG_DEBUG_REG0_GET_ALWAYS_ZERO1(sxifccg_debug_reg0) \
+ ((sxifccg_debug_reg0 & SXIFCCG_DEBUG_REG0_ALWAYS_ZERO1_MASK) >> SXIFCCG_DEBUG_REG0_ALWAYS_ZERO1_SHIFT)
+#define SXIFCCG_DEBUG_REG0_GET_sx_pending_rd_state_var_indx(sxifccg_debug_reg0) \
+ ((sxifccg_debug_reg0 & SXIFCCG_DEBUG_REG0_sx_pending_rd_state_var_indx_MASK) >> SXIFCCG_DEBUG_REG0_sx_pending_rd_state_var_indx_SHIFT)
+#define SXIFCCG_DEBUG_REG0_GET_ALWAYS_ZERO0(sxifccg_debug_reg0) \
+ ((sxifccg_debug_reg0 & SXIFCCG_DEBUG_REG0_ALWAYS_ZERO0_MASK) >> SXIFCCG_DEBUG_REG0_ALWAYS_ZERO0_SHIFT)
+#define SXIFCCG_DEBUG_REG0_GET_sx_pending_rd_req_mask(sxifccg_debug_reg0) \
+ ((sxifccg_debug_reg0 & SXIFCCG_DEBUG_REG0_sx_pending_rd_req_mask_MASK) >> SXIFCCG_DEBUG_REG0_sx_pending_rd_req_mask_SHIFT)
+#define SXIFCCG_DEBUG_REG0_GET_sx_pending_rd_pci(sxifccg_debug_reg0) \
+ ((sxifccg_debug_reg0 & SXIFCCG_DEBUG_REG0_sx_pending_rd_pci_MASK) >> SXIFCCG_DEBUG_REG0_sx_pending_rd_pci_SHIFT)
+#define SXIFCCG_DEBUG_REG0_GET_sx_pending_rd_aux_inc(sxifccg_debug_reg0) \
+ ((sxifccg_debug_reg0 & SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_inc_MASK) >> SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_inc_SHIFT)
+#define SXIFCCG_DEBUG_REG0_GET_sx_pending_rd_aux_sel(sxifccg_debug_reg0) \
+ ((sxifccg_debug_reg0 & SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_sel_MASK) >> SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_sel_SHIFT)
+
+#define SXIFCCG_DEBUG_REG0_SET_nan_kill_flag(sxifccg_debug_reg0_reg, nan_kill_flag) \
+ sxifccg_debug_reg0_reg = (sxifccg_debug_reg0_reg & ~SXIFCCG_DEBUG_REG0_nan_kill_flag_MASK) | (nan_kill_flag << SXIFCCG_DEBUG_REG0_nan_kill_flag_SHIFT)
+#define SXIFCCG_DEBUG_REG0_SET_position_address(sxifccg_debug_reg0_reg, position_address) \
+ sxifccg_debug_reg0_reg = (sxifccg_debug_reg0_reg & ~SXIFCCG_DEBUG_REG0_position_address_MASK) | (position_address << SXIFCCG_DEBUG_REG0_position_address_SHIFT)
+#define SXIFCCG_DEBUG_REG0_SET_ALWAYS_ZERO2(sxifccg_debug_reg0_reg, always_zero2) \
+ sxifccg_debug_reg0_reg = (sxifccg_debug_reg0_reg & ~SXIFCCG_DEBUG_REG0_ALWAYS_ZERO2_MASK) | (always_zero2 << SXIFCCG_DEBUG_REG0_ALWAYS_ZERO2_SHIFT)
+#define SXIFCCG_DEBUG_REG0_SET_point_address(sxifccg_debug_reg0_reg, point_address) \
+ sxifccg_debug_reg0_reg = (sxifccg_debug_reg0_reg & ~SXIFCCG_DEBUG_REG0_point_address_MASK) | (point_address << SXIFCCG_DEBUG_REG0_point_address_SHIFT)
+#define SXIFCCG_DEBUG_REG0_SET_ALWAYS_ZERO1(sxifccg_debug_reg0_reg, always_zero1) \
+ sxifccg_debug_reg0_reg = (sxifccg_debug_reg0_reg & ~SXIFCCG_DEBUG_REG0_ALWAYS_ZERO1_MASK) | (always_zero1 << SXIFCCG_DEBUG_REG0_ALWAYS_ZERO1_SHIFT)
+#define SXIFCCG_DEBUG_REG0_SET_sx_pending_rd_state_var_indx(sxifccg_debug_reg0_reg, sx_pending_rd_state_var_indx) \
+ sxifccg_debug_reg0_reg = (sxifccg_debug_reg0_reg & ~SXIFCCG_DEBUG_REG0_sx_pending_rd_state_var_indx_MASK) | (sx_pending_rd_state_var_indx << SXIFCCG_DEBUG_REG0_sx_pending_rd_state_var_indx_SHIFT)
+#define SXIFCCG_DEBUG_REG0_SET_ALWAYS_ZERO0(sxifccg_debug_reg0_reg, always_zero0) \
+ sxifccg_debug_reg0_reg = (sxifccg_debug_reg0_reg & ~SXIFCCG_DEBUG_REG0_ALWAYS_ZERO0_MASK) | (always_zero0 << SXIFCCG_DEBUG_REG0_ALWAYS_ZERO0_SHIFT)
+#define SXIFCCG_DEBUG_REG0_SET_sx_pending_rd_req_mask(sxifccg_debug_reg0_reg, sx_pending_rd_req_mask) \
+ sxifccg_debug_reg0_reg = (sxifccg_debug_reg0_reg & ~SXIFCCG_DEBUG_REG0_sx_pending_rd_req_mask_MASK) | (sx_pending_rd_req_mask << SXIFCCG_DEBUG_REG0_sx_pending_rd_req_mask_SHIFT)
+#define SXIFCCG_DEBUG_REG0_SET_sx_pending_rd_pci(sxifccg_debug_reg0_reg, sx_pending_rd_pci) \
+ sxifccg_debug_reg0_reg = (sxifccg_debug_reg0_reg & ~SXIFCCG_DEBUG_REG0_sx_pending_rd_pci_MASK) | (sx_pending_rd_pci << SXIFCCG_DEBUG_REG0_sx_pending_rd_pci_SHIFT)
+#define SXIFCCG_DEBUG_REG0_SET_sx_pending_rd_aux_inc(sxifccg_debug_reg0_reg, sx_pending_rd_aux_inc) \
+ sxifccg_debug_reg0_reg = (sxifccg_debug_reg0_reg & ~SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_inc_MASK) | (sx_pending_rd_aux_inc << SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_inc_SHIFT)
+#define SXIFCCG_DEBUG_REG0_SET_sx_pending_rd_aux_sel(sxifccg_debug_reg0_reg, sx_pending_rd_aux_sel) \
+ sxifccg_debug_reg0_reg = (sxifccg_debug_reg0_reg & ~SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_sel_MASK) | (sx_pending_rd_aux_sel << SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_sel_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sxifccg_debug_reg0_t {
+ unsigned int nan_kill_flag : SXIFCCG_DEBUG_REG0_nan_kill_flag_SIZE;
+ unsigned int position_address : SXIFCCG_DEBUG_REG0_position_address_SIZE;
+ unsigned int always_zero2 : SXIFCCG_DEBUG_REG0_ALWAYS_ZERO2_SIZE;
+ unsigned int point_address : SXIFCCG_DEBUG_REG0_point_address_SIZE;
+ unsigned int always_zero1 : SXIFCCG_DEBUG_REG0_ALWAYS_ZERO1_SIZE;
+ unsigned int sx_pending_rd_state_var_indx : SXIFCCG_DEBUG_REG0_sx_pending_rd_state_var_indx_SIZE;
+ unsigned int always_zero0 : SXIFCCG_DEBUG_REG0_ALWAYS_ZERO0_SIZE;
+ unsigned int sx_pending_rd_req_mask : SXIFCCG_DEBUG_REG0_sx_pending_rd_req_mask_SIZE;
+ unsigned int sx_pending_rd_pci : SXIFCCG_DEBUG_REG0_sx_pending_rd_pci_SIZE;
+ unsigned int sx_pending_rd_aux_inc : SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_inc_SIZE;
+ unsigned int sx_pending_rd_aux_sel : SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_sel_SIZE;
+ } sxifccg_debug_reg0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sxifccg_debug_reg0_t {
+ unsigned int sx_pending_rd_aux_sel : SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_sel_SIZE;
+ unsigned int sx_pending_rd_aux_inc : SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_inc_SIZE;
+ unsigned int sx_pending_rd_pci : SXIFCCG_DEBUG_REG0_sx_pending_rd_pci_SIZE;
+ unsigned int sx_pending_rd_req_mask : SXIFCCG_DEBUG_REG0_sx_pending_rd_req_mask_SIZE;
+ unsigned int always_zero0 : SXIFCCG_DEBUG_REG0_ALWAYS_ZERO0_SIZE;
+ unsigned int sx_pending_rd_state_var_indx : SXIFCCG_DEBUG_REG0_sx_pending_rd_state_var_indx_SIZE;
+ unsigned int always_zero1 : SXIFCCG_DEBUG_REG0_ALWAYS_ZERO1_SIZE;
+ unsigned int point_address : SXIFCCG_DEBUG_REG0_point_address_SIZE;
+ unsigned int always_zero2 : SXIFCCG_DEBUG_REG0_ALWAYS_ZERO2_SIZE;
+ unsigned int position_address : SXIFCCG_DEBUG_REG0_position_address_SIZE;
+ unsigned int nan_kill_flag : SXIFCCG_DEBUG_REG0_nan_kill_flag_SIZE;
+ } sxifccg_debug_reg0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sxifccg_debug_reg0_t f;
+} sxifccg_debug_reg0_u;
+
+
+/*
+ * SXIFCCG_DEBUG_REG1 struct
+ */
+
+#define SXIFCCG_DEBUG_REG1_ALWAYS_ZERO3_SIZE 2
+#define SXIFCCG_DEBUG_REG1_sx_to_pa_empty_SIZE 2
+#define SXIFCCG_DEBUG_REG1_available_positions_SIZE 3
+#define SXIFCCG_DEBUG_REG1_ALWAYS_ZERO2_SIZE 4
+#define SXIFCCG_DEBUG_REG1_sx_pending_advance_SIZE 1
+#define SXIFCCG_DEBUG_REG1_sx_receive_indx_SIZE 3
+#define SXIFCCG_DEBUG_REG1_statevar_bits_sxpa_aux_vector_SIZE 1
+#define SXIFCCG_DEBUG_REG1_ALWAYS_ZERO1_SIZE 4
+#define SXIFCCG_DEBUG_REG1_aux_sel_SIZE 1
+#define SXIFCCG_DEBUG_REG1_ALWAYS_ZERO0_SIZE 2
+#define SXIFCCG_DEBUG_REG1_pasx_req_cnt_SIZE 2
+#define SXIFCCG_DEBUG_REG1_param_cache_base_SIZE 7
+
+#define SXIFCCG_DEBUG_REG1_ALWAYS_ZERO3_SHIFT 0
+#define SXIFCCG_DEBUG_REG1_sx_to_pa_empty_SHIFT 2
+#define SXIFCCG_DEBUG_REG1_available_positions_SHIFT 4
+#define SXIFCCG_DEBUG_REG1_ALWAYS_ZERO2_SHIFT 7
+#define SXIFCCG_DEBUG_REG1_sx_pending_advance_SHIFT 11
+#define SXIFCCG_DEBUG_REG1_sx_receive_indx_SHIFT 12
+#define SXIFCCG_DEBUG_REG1_statevar_bits_sxpa_aux_vector_SHIFT 15
+#define SXIFCCG_DEBUG_REG1_ALWAYS_ZERO1_SHIFT 16
+#define SXIFCCG_DEBUG_REG1_aux_sel_SHIFT 20
+#define SXIFCCG_DEBUG_REG1_ALWAYS_ZERO0_SHIFT 21
+#define SXIFCCG_DEBUG_REG1_pasx_req_cnt_SHIFT 23
+#define SXIFCCG_DEBUG_REG1_param_cache_base_SHIFT 25
+
+#define SXIFCCG_DEBUG_REG1_ALWAYS_ZERO3_MASK 0x00000003
+#define SXIFCCG_DEBUG_REG1_sx_to_pa_empty_MASK 0x0000000c
+#define SXIFCCG_DEBUG_REG1_available_positions_MASK 0x00000070
+#define SXIFCCG_DEBUG_REG1_ALWAYS_ZERO2_MASK 0x00000780
+#define SXIFCCG_DEBUG_REG1_sx_pending_advance_MASK 0x00000800
+#define SXIFCCG_DEBUG_REG1_sx_receive_indx_MASK 0x00007000
+#define SXIFCCG_DEBUG_REG1_statevar_bits_sxpa_aux_vector_MASK 0x00008000
+#define SXIFCCG_DEBUG_REG1_ALWAYS_ZERO1_MASK 0x000f0000
+#define SXIFCCG_DEBUG_REG1_aux_sel_MASK 0x00100000
+#define SXIFCCG_DEBUG_REG1_ALWAYS_ZERO0_MASK 0x00600000
+#define SXIFCCG_DEBUG_REG1_pasx_req_cnt_MASK 0x01800000
+#define SXIFCCG_DEBUG_REG1_param_cache_base_MASK 0xfe000000
+
+#define SXIFCCG_DEBUG_REG1_MASK \
+ (SXIFCCG_DEBUG_REG1_ALWAYS_ZERO3_MASK | \
+ SXIFCCG_DEBUG_REG1_sx_to_pa_empty_MASK | \
+ SXIFCCG_DEBUG_REG1_available_positions_MASK | \
+ SXIFCCG_DEBUG_REG1_ALWAYS_ZERO2_MASK | \
+ SXIFCCG_DEBUG_REG1_sx_pending_advance_MASK | \
+ SXIFCCG_DEBUG_REG1_sx_receive_indx_MASK | \
+ SXIFCCG_DEBUG_REG1_statevar_bits_sxpa_aux_vector_MASK | \
+ SXIFCCG_DEBUG_REG1_ALWAYS_ZERO1_MASK | \
+ SXIFCCG_DEBUG_REG1_aux_sel_MASK | \
+ SXIFCCG_DEBUG_REG1_ALWAYS_ZERO0_MASK | \
+ SXIFCCG_DEBUG_REG1_pasx_req_cnt_MASK | \
+ SXIFCCG_DEBUG_REG1_param_cache_base_MASK)
+
+#define SXIFCCG_DEBUG_REG1(always_zero3, sx_to_pa_empty, available_positions, always_zero2, sx_pending_advance, sx_receive_indx, statevar_bits_sxpa_aux_vector, always_zero1, aux_sel, always_zero0, pasx_req_cnt, param_cache_base) \
+ ((always_zero3 << SXIFCCG_DEBUG_REG1_ALWAYS_ZERO3_SHIFT) | \
+ (sx_to_pa_empty << SXIFCCG_DEBUG_REG1_sx_to_pa_empty_SHIFT) | \
+ (available_positions << SXIFCCG_DEBUG_REG1_available_positions_SHIFT) | \
+ (always_zero2 << SXIFCCG_DEBUG_REG1_ALWAYS_ZERO2_SHIFT) | \
+ (sx_pending_advance << SXIFCCG_DEBUG_REG1_sx_pending_advance_SHIFT) | \
+ (sx_receive_indx << SXIFCCG_DEBUG_REG1_sx_receive_indx_SHIFT) | \
+ (statevar_bits_sxpa_aux_vector << SXIFCCG_DEBUG_REG1_statevar_bits_sxpa_aux_vector_SHIFT) | \
+ (always_zero1 << SXIFCCG_DEBUG_REG1_ALWAYS_ZERO1_SHIFT) | \
+ (aux_sel << SXIFCCG_DEBUG_REG1_aux_sel_SHIFT) | \
+ (always_zero0 << SXIFCCG_DEBUG_REG1_ALWAYS_ZERO0_SHIFT) | \
+ (pasx_req_cnt << SXIFCCG_DEBUG_REG1_pasx_req_cnt_SHIFT) | \
+ (param_cache_base << SXIFCCG_DEBUG_REG1_param_cache_base_SHIFT))
+
+#define SXIFCCG_DEBUG_REG1_GET_ALWAYS_ZERO3(sxifccg_debug_reg1) \
+ ((sxifccg_debug_reg1 & SXIFCCG_DEBUG_REG1_ALWAYS_ZERO3_MASK) >> SXIFCCG_DEBUG_REG1_ALWAYS_ZERO3_SHIFT)
+#define SXIFCCG_DEBUG_REG1_GET_sx_to_pa_empty(sxifccg_debug_reg1) \
+ ((sxifccg_debug_reg1 & SXIFCCG_DEBUG_REG1_sx_to_pa_empty_MASK) >> SXIFCCG_DEBUG_REG1_sx_to_pa_empty_SHIFT)
+#define SXIFCCG_DEBUG_REG1_GET_available_positions(sxifccg_debug_reg1) \
+ ((sxifccg_debug_reg1 & SXIFCCG_DEBUG_REG1_available_positions_MASK) >> SXIFCCG_DEBUG_REG1_available_positions_SHIFT)
+#define SXIFCCG_DEBUG_REG1_GET_ALWAYS_ZERO2(sxifccg_debug_reg1) \
+ ((sxifccg_debug_reg1 & SXIFCCG_DEBUG_REG1_ALWAYS_ZERO2_MASK) >> SXIFCCG_DEBUG_REG1_ALWAYS_ZERO2_SHIFT)
+#define SXIFCCG_DEBUG_REG1_GET_sx_pending_advance(sxifccg_debug_reg1) \
+ ((sxifccg_debug_reg1 & SXIFCCG_DEBUG_REG1_sx_pending_advance_MASK) >> SXIFCCG_DEBUG_REG1_sx_pending_advance_SHIFT)
+#define SXIFCCG_DEBUG_REG1_GET_sx_receive_indx(sxifccg_debug_reg1) \
+ ((sxifccg_debug_reg1 & SXIFCCG_DEBUG_REG1_sx_receive_indx_MASK) >> SXIFCCG_DEBUG_REG1_sx_receive_indx_SHIFT)
+#define SXIFCCG_DEBUG_REG1_GET_statevar_bits_sxpa_aux_vector(sxifccg_debug_reg1) \
+ ((sxifccg_debug_reg1 & SXIFCCG_DEBUG_REG1_statevar_bits_sxpa_aux_vector_MASK) >> SXIFCCG_DEBUG_REG1_statevar_bits_sxpa_aux_vector_SHIFT)
+#define SXIFCCG_DEBUG_REG1_GET_ALWAYS_ZERO1(sxifccg_debug_reg1) \
+ ((sxifccg_debug_reg1 & SXIFCCG_DEBUG_REG1_ALWAYS_ZERO1_MASK) >> SXIFCCG_DEBUG_REG1_ALWAYS_ZERO1_SHIFT)
+#define SXIFCCG_DEBUG_REG1_GET_aux_sel(sxifccg_debug_reg1) \
+ ((sxifccg_debug_reg1 & SXIFCCG_DEBUG_REG1_aux_sel_MASK) >> SXIFCCG_DEBUG_REG1_aux_sel_SHIFT)
+#define SXIFCCG_DEBUG_REG1_GET_ALWAYS_ZERO0(sxifccg_debug_reg1) \
+ ((sxifccg_debug_reg1 & SXIFCCG_DEBUG_REG1_ALWAYS_ZERO0_MASK) >> SXIFCCG_DEBUG_REG1_ALWAYS_ZERO0_SHIFT)
+#define SXIFCCG_DEBUG_REG1_GET_pasx_req_cnt(sxifccg_debug_reg1) \
+ ((sxifccg_debug_reg1 & SXIFCCG_DEBUG_REG1_pasx_req_cnt_MASK) >> SXIFCCG_DEBUG_REG1_pasx_req_cnt_SHIFT)
+#define SXIFCCG_DEBUG_REG1_GET_param_cache_base(sxifccg_debug_reg1) \
+ ((sxifccg_debug_reg1 & SXIFCCG_DEBUG_REG1_param_cache_base_MASK) >> SXIFCCG_DEBUG_REG1_param_cache_base_SHIFT)
+
+#define SXIFCCG_DEBUG_REG1_SET_ALWAYS_ZERO3(sxifccg_debug_reg1_reg, always_zero3) \
+ sxifccg_debug_reg1_reg = (sxifccg_debug_reg1_reg & ~SXIFCCG_DEBUG_REG1_ALWAYS_ZERO3_MASK) | (always_zero3 << SXIFCCG_DEBUG_REG1_ALWAYS_ZERO3_SHIFT)
+#define SXIFCCG_DEBUG_REG1_SET_sx_to_pa_empty(sxifccg_debug_reg1_reg, sx_to_pa_empty) \
+ sxifccg_debug_reg1_reg = (sxifccg_debug_reg1_reg & ~SXIFCCG_DEBUG_REG1_sx_to_pa_empty_MASK) | (sx_to_pa_empty << SXIFCCG_DEBUG_REG1_sx_to_pa_empty_SHIFT)
+#define SXIFCCG_DEBUG_REG1_SET_available_positions(sxifccg_debug_reg1_reg, available_positions) \
+ sxifccg_debug_reg1_reg = (sxifccg_debug_reg1_reg & ~SXIFCCG_DEBUG_REG1_available_positions_MASK) | (available_positions << SXIFCCG_DEBUG_REG1_available_positions_SHIFT)
+#define SXIFCCG_DEBUG_REG1_SET_ALWAYS_ZERO2(sxifccg_debug_reg1_reg, always_zero2) \
+ sxifccg_debug_reg1_reg = (sxifccg_debug_reg1_reg & ~SXIFCCG_DEBUG_REG1_ALWAYS_ZERO2_MASK) | (always_zero2 << SXIFCCG_DEBUG_REG1_ALWAYS_ZERO2_SHIFT)
+#define SXIFCCG_DEBUG_REG1_SET_sx_pending_advance(sxifccg_debug_reg1_reg, sx_pending_advance) \
+ sxifccg_debug_reg1_reg = (sxifccg_debug_reg1_reg & ~SXIFCCG_DEBUG_REG1_sx_pending_advance_MASK) | (sx_pending_advance << SXIFCCG_DEBUG_REG1_sx_pending_advance_SHIFT)
+#define SXIFCCG_DEBUG_REG1_SET_sx_receive_indx(sxifccg_debug_reg1_reg, sx_receive_indx) \
+ sxifccg_debug_reg1_reg = (sxifccg_debug_reg1_reg & ~SXIFCCG_DEBUG_REG1_sx_receive_indx_MASK) | (sx_receive_indx << SXIFCCG_DEBUG_REG1_sx_receive_indx_SHIFT)
+#define SXIFCCG_DEBUG_REG1_SET_statevar_bits_sxpa_aux_vector(sxifccg_debug_reg1_reg, statevar_bits_sxpa_aux_vector) \
+ sxifccg_debug_reg1_reg = (sxifccg_debug_reg1_reg & ~SXIFCCG_DEBUG_REG1_statevar_bits_sxpa_aux_vector_MASK) | (statevar_bits_sxpa_aux_vector << SXIFCCG_DEBUG_REG1_statevar_bits_sxpa_aux_vector_SHIFT)
+#define SXIFCCG_DEBUG_REG1_SET_ALWAYS_ZERO1(sxifccg_debug_reg1_reg, always_zero1) \
+ sxifccg_debug_reg1_reg = (sxifccg_debug_reg1_reg & ~SXIFCCG_DEBUG_REG1_ALWAYS_ZERO1_MASK) | (always_zero1 << SXIFCCG_DEBUG_REG1_ALWAYS_ZERO1_SHIFT)
+#define SXIFCCG_DEBUG_REG1_SET_aux_sel(sxifccg_debug_reg1_reg, aux_sel) \
+ sxifccg_debug_reg1_reg = (sxifccg_debug_reg1_reg & ~SXIFCCG_DEBUG_REG1_aux_sel_MASK) | (aux_sel << SXIFCCG_DEBUG_REG1_aux_sel_SHIFT)
+#define SXIFCCG_DEBUG_REG1_SET_ALWAYS_ZERO0(sxifccg_debug_reg1_reg, always_zero0) \
+ sxifccg_debug_reg1_reg = (sxifccg_debug_reg1_reg & ~SXIFCCG_DEBUG_REG1_ALWAYS_ZERO0_MASK) | (always_zero0 << SXIFCCG_DEBUG_REG1_ALWAYS_ZERO0_SHIFT)
+#define SXIFCCG_DEBUG_REG1_SET_pasx_req_cnt(sxifccg_debug_reg1_reg, pasx_req_cnt) \
+ sxifccg_debug_reg1_reg = (sxifccg_debug_reg1_reg & ~SXIFCCG_DEBUG_REG1_pasx_req_cnt_MASK) | (pasx_req_cnt << SXIFCCG_DEBUG_REG1_pasx_req_cnt_SHIFT)
+#define SXIFCCG_DEBUG_REG1_SET_param_cache_base(sxifccg_debug_reg1_reg, param_cache_base) \
+ sxifccg_debug_reg1_reg = (sxifccg_debug_reg1_reg & ~SXIFCCG_DEBUG_REG1_param_cache_base_MASK) | (param_cache_base << SXIFCCG_DEBUG_REG1_param_cache_base_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sxifccg_debug_reg1_t {
+ unsigned int always_zero3 : SXIFCCG_DEBUG_REG1_ALWAYS_ZERO3_SIZE;
+ unsigned int sx_to_pa_empty : SXIFCCG_DEBUG_REG1_sx_to_pa_empty_SIZE;
+ unsigned int available_positions : SXIFCCG_DEBUG_REG1_available_positions_SIZE;
+ unsigned int always_zero2 : SXIFCCG_DEBUG_REG1_ALWAYS_ZERO2_SIZE;
+ unsigned int sx_pending_advance : SXIFCCG_DEBUG_REG1_sx_pending_advance_SIZE;
+ unsigned int sx_receive_indx : SXIFCCG_DEBUG_REG1_sx_receive_indx_SIZE;
+ unsigned int statevar_bits_sxpa_aux_vector : SXIFCCG_DEBUG_REG1_statevar_bits_sxpa_aux_vector_SIZE;
+ unsigned int always_zero1 : SXIFCCG_DEBUG_REG1_ALWAYS_ZERO1_SIZE;
+ unsigned int aux_sel : SXIFCCG_DEBUG_REG1_aux_sel_SIZE;
+ unsigned int always_zero0 : SXIFCCG_DEBUG_REG1_ALWAYS_ZERO0_SIZE;
+ unsigned int pasx_req_cnt : SXIFCCG_DEBUG_REG1_pasx_req_cnt_SIZE;
+ unsigned int param_cache_base : SXIFCCG_DEBUG_REG1_param_cache_base_SIZE;
+ } sxifccg_debug_reg1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sxifccg_debug_reg1_t {
+ unsigned int param_cache_base : SXIFCCG_DEBUG_REG1_param_cache_base_SIZE;
+ unsigned int pasx_req_cnt : SXIFCCG_DEBUG_REG1_pasx_req_cnt_SIZE;
+ unsigned int always_zero0 : SXIFCCG_DEBUG_REG1_ALWAYS_ZERO0_SIZE;
+ unsigned int aux_sel : SXIFCCG_DEBUG_REG1_aux_sel_SIZE;
+ unsigned int always_zero1 : SXIFCCG_DEBUG_REG1_ALWAYS_ZERO1_SIZE;
+ unsigned int statevar_bits_sxpa_aux_vector : SXIFCCG_DEBUG_REG1_statevar_bits_sxpa_aux_vector_SIZE;
+ unsigned int sx_receive_indx : SXIFCCG_DEBUG_REG1_sx_receive_indx_SIZE;
+ unsigned int sx_pending_advance : SXIFCCG_DEBUG_REG1_sx_pending_advance_SIZE;
+ unsigned int always_zero2 : SXIFCCG_DEBUG_REG1_ALWAYS_ZERO2_SIZE;
+ unsigned int available_positions : SXIFCCG_DEBUG_REG1_available_positions_SIZE;
+ unsigned int sx_to_pa_empty : SXIFCCG_DEBUG_REG1_sx_to_pa_empty_SIZE;
+ unsigned int always_zero3 : SXIFCCG_DEBUG_REG1_ALWAYS_ZERO3_SIZE;
+ } sxifccg_debug_reg1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sxifccg_debug_reg1_t f;
+} sxifccg_debug_reg1_u;
+
+
+/*
+ * SXIFCCG_DEBUG_REG2 struct
+ */
+
+#define SXIFCCG_DEBUG_REG2_sx_sent_SIZE 1
+#define SXIFCCG_DEBUG_REG2_ALWAYS_ZERO3_SIZE 1
+#define SXIFCCG_DEBUG_REG2_sx_aux_SIZE 1
+#define SXIFCCG_DEBUG_REG2_sx_request_indx_SIZE 6
+#define SXIFCCG_DEBUG_REG2_req_active_verts_SIZE 7
+#define SXIFCCG_DEBUG_REG2_ALWAYS_ZERO2_SIZE 1
+#define SXIFCCG_DEBUG_REG2_vgt_to_ccgen_state_var_indx_SIZE 1
+#define SXIFCCG_DEBUG_REG2_ALWAYS_ZERO1_SIZE 2
+#define SXIFCCG_DEBUG_REG2_vgt_to_ccgen_active_verts_SIZE 2
+#define SXIFCCG_DEBUG_REG2_ALWAYS_ZERO0_SIZE 4
+#define SXIFCCG_DEBUG_REG2_req_active_verts_loaded_SIZE 1
+#define SXIFCCG_DEBUG_REG2_sx_pending_fifo_empty_SIZE 1
+#define SXIFCCG_DEBUG_REG2_sx_pending_fifo_full_SIZE 1
+#define SXIFCCG_DEBUG_REG2_sx_pending_fifo_contents_SIZE 3
+
+#define SXIFCCG_DEBUG_REG2_sx_sent_SHIFT 0
+#define SXIFCCG_DEBUG_REG2_ALWAYS_ZERO3_SHIFT 1
+#define SXIFCCG_DEBUG_REG2_sx_aux_SHIFT 2
+#define SXIFCCG_DEBUG_REG2_sx_request_indx_SHIFT 3
+#define SXIFCCG_DEBUG_REG2_req_active_verts_SHIFT 9
+#define SXIFCCG_DEBUG_REG2_ALWAYS_ZERO2_SHIFT 16
+#define SXIFCCG_DEBUG_REG2_vgt_to_ccgen_state_var_indx_SHIFT 17
+#define SXIFCCG_DEBUG_REG2_ALWAYS_ZERO1_SHIFT 18
+#define SXIFCCG_DEBUG_REG2_vgt_to_ccgen_active_verts_SHIFT 20
+#define SXIFCCG_DEBUG_REG2_ALWAYS_ZERO0_SHIFT 22
+#define SXIFCCG_DEBUG_REG2_req_active_verts_loaded_SHIFT 26
+#define SXIFCCG_DEBUG_REG2_sx_pending_fifo_empty_SHIFT 27
+#define SXIFCCG_DEBUG_REG2_sx_pending_fifo_full_SHIFT 28
+#define SXIFCCG_DEBUG_REG2_sx_pending_fifo_contents_SHIFT 29
+
+#define SXIFCCG_DEBUG_REG2_sx_sent_MASK 0x00000001
+#define SXIFCCG_DEBUG_REG2_ALWAYS_ZERO3_MASK 0x00000002
+#define SXIFCCG_DEBUG_REG2_sx_aux_MASK 0x00000004
+#define SXIFCCG_DEBUG_REG2_sx_request_indx_MASK 0x000001f8
+#define SXIFCCG_DEBUG_REG2_req_active_verts_MASK 0x0000fe00
+#define SXIFCCG_DEBUG_REG2_ALWAYS_ZERO2_MASK 0x00010000
+#define SXIFCCG_DEBUG_REG2_vgt_to_ccgen_state_var_indx_MASK 0x00020000
+#define SXIFCCG_DEBUG_REG2_ALWAYS_ZERO1_MASK 0x000c0000
+#define SXIFCCG_DEBUG_REG2_vgt_to_ccgen_active_verts_MASK 0x00300000
+#define SXIFCCG_DEBUG_REG2_ALWAYS_ZERO0_MASK 0x03c00000
+#define SXIFCCG_DEBUG_REG2_req_active_verts_loaded_MASK 0x04000000
+#define SXIFCCG_DEBUG_REG2_sx_pending_fifo_empty_MASK 0x08000000
+#define SXIFCCG_DEBUG_REG2_sx_pending_fifo_full_MASK 0x10000000
+#define SXIFCCG_DEBUG_REG2_sx_pending_fifo_contents_MASK 0xe0000000
+
+#define SXIFCCG_DEBUG_REG2_MASK \
+ (SXIFCCG_DEBUG_REG2_sx_sent_MASK | \
+ SXIFCCG_DEBUG_REG2_ALWAYS_ZERO3_MASK | \
+ SXIFCCG_DEBUG_REG2_sx_aux_MASK | \
+ SXIFCCG_DEBUG_REG2_sx_request_indx_MASK | \
+ SXIFCCG_DEBUG_REG2_req_active_verts_MASK | \
+ SXIFCCG_DEBUG_REG2_ALWAYS_ZERO2_MASK | \
+ SXIFCCG_DEBUG_REG2_vgt_to_ccgen_state_var_indx_MASK | \
+ SXIFCCG_DEBUG_REG2_ALWAYS_ZERO1_MASK | \
+ SXIFCCG_DEBUG_REG2_vgt_to_ccgen_active_verts_MASK | \
+ SXIFCCG_DEBUG_REG2_ALWAYS_ZERO0_MASK | \
+ SXIFCCG_DEBUG_REG2_req_active_verts_loaded_MASK | \
+ SXIFCCG_DEBUG_REG2_sx_pending_fifo_empty_MASK | \
+ SXIFCCG_DEBUG_REG2_sx_pending_fifo_full_MASK | \
+ SXIFCCG_DEBUG_REG2_sx_pending_fifo_contents_MASK)
+
+#define SXIFCCG_DEBUG_REG2(sx_sent, always_zero3, sx_aux, sx_request_indx, req_active_verts, always_zero2, vgt_to_ccgen_state_var_indx, always_zero1, vgt_to_ccgen_active_verts, always_zero0, req_active_verts_loaded, sx_pending_fifo_empty, sx_pending_fifo_full, sx_pending_fifo_contents) \
+ ((sx_sent << SXIFCCG_DEBUG_REG2_sx_sent_SHIFT) | \
+ (always_zero3 << SXIFCCG_DEBUG_REG2_ALWAYS_ZERO3_SHIFT) | \
+ (sx_aux << SXIFCCG_DEBUG_REG2_sx_aux_SHIFT) | \
+ (sx_request_indx << SXIFCCG_DEBUG_REG2_sx_request_indx_SHIFT) | \
+ (req_active_verts << SXIFCCG_DEBUG_REG2_req_active_verts_SHIFT) | \
+ (always_zero2 << SXIFCCG_DEBUG_REG2_ALWAYS_ZERO2_SHIFT) | \
+ (vgt_to_ccgen_state_var_indx << SXIFCCG_DEBUG_REG2_vgt_to_ccgen_state_var_indx_SHIFT) | \
+ (always_zero1 << SXIFCCG_DEBUG_REG2_ALWAYS_ZERO1_SHIFT) | \
+ (vgt_to_ccgen_active_verts << SXIFCCG_DEBUG_REG2_vgt_to_ccgen_active_verts_SHIFT) | \
+ (always_zero0 << SXIFCCG_DEBUG_REG2_ALWAYS_ZERO0_SHIFT) | \
+ (req_active_verts_loaded << SXIFCCG_DEBUG_REG2_req_active_verts_loaded_SHIFT) | \
+ (sx_pending_fifo_empty << SXIFCCG_DEBUG_REG2_sx_pending_fifo_empty_SHIFT) | \
+ (sx_pending_fifo_full << SXIFCCG_DEBUG_REG2_sx_pending_fifo_full_SHIFT) | \
+ (sx_pending_fifo_contents << SXIFCCG_DEBUG_REG2_sx_pending_fifo_contents_SHIFT))
+
+#define SXIFCCG_DEBUG_REG2_GET_sx_sent(sxifccg_debug_reg2) \
+ ((sxifccg_debug_reg2 & SXIFCCG_DEBUG_REG2_sx_sent_MASK) >> SXIFCCG_DEBUG_REG2_sx_sent_SHIFT)
+#define SXIFCCG_DEBUG_REG2_GET_ALWAYS_ZERO3(sxifccg_debug_reg2) \
+ ((sxifccg_debug_reg2 & SXIFCCG_DEBUG_REG2_ALWAYS_ZERO3_MASK) >> SXIFCCG_DEBUG_REG2_ALWAYS_ZERO3_SHIFT)
+#define SXIFCCG_DEBUG_REG2_GET_sx_aux(sxifccg_debug_reg2) \
+ ((sxifccg_debug_reg2 & SXIFCCG_DEBUG_REG2_sx_aux_MASK) >> SXIFCCG_DEBUG_REG2_sx_aux_SHIFT)
+#define SXIFCCG_DEBUG_REG2_GET_sx_request_indx(sxifccg_debug_reg2) \
+ ((sxifccg_debug_reg2 & SXIFCCG_DEBUG_REG2_sx_request_indx_MASK) >> SXIFCCG_DEBUG_REG2_sx_request_indx_SHIFT)
+#define SXIFCCG_DEBUG_REG2_GET_req_active_verts(sxifccg_debug_reg2) \
+ ((sxifccg_debug_reg2 & SXIFCCG_DEBUG_REG2_req_active_verts_MASK) >> SXIFCCG_DEBUG_REG2_req_active_verts_SHIFT)
+#define SXIFCCG_DEBUG_REG2_GET_ALWAYS_ZERO2(sxifccg_debug_reg2) \
+ ((sxifccg_debug_reg2 & SXIFCCG_DEBUG_REG2_ALWAYS_ZERO2_MASK) >> SXIFCCG_DEBUG_REG2_ALWAYS_ZERO2_SHIFT)
+#define SXIFCCG_DEBUG_REG2_GET_vgt_to_ccgen_state_var_indx(sxifccg_debug_reg2) \
+ ((sxifccg_debug_reg2 & SXIFCCG_DEBUG_REG2_vgt_to_ccgen_state_var_indx_MASK) >> SXIFCCG_DEBUG_REG2_vgt_to_ccgen_state_var_indx_SHIFT)
+#define SXIFCCG_DEBUG_REG2_GET_ALWAYS_ZERO1(sxifccg_debug_reg2) \
+ ((sxifccg_debug_reg2 & SXIFCCG_DEBUG_REG2_ALWAYS_ZERO1_MASK) >> SXIFCCG_DEBUG_REG2_ALWAYS_ZERO1_SHIFT)
+#define SXIFCCG_DEBUG_REG2_GET_vgt_to_ccgen_active_verts(sxifccg_debug_reg2) \
+ ((sxifccg_debug_reg2 & SXIFCCG_DEBUG_REG2_vgt_to_ccgen_active_verts_MASK) >> SXIFCCG_DEBUG_REG2_vgt_to_ccgen_active_verts_SHIFT)
+#define SXIFCCG_DEBUG_REG2_GET_ALWAYS_ZERO0(sxifccg_debug_reg2) \
+ ((sxifccg_debug_reg2 & SXIFCCG_DEBUG_REG2_ALWAYS_ZERO0_MASK) >> SXIFCCG_DEBUG_REG2_ALWAYS_ZERO0_SHIFT)
+#define SXIFCCG_DEBUG_REG2_GET_req_active_verts_loaded(sxifccg_debug_reg2) \
+ ((sxifccg_debug_reg2 & SXIFCCG_DEBUG_REG2_req_active_verts_loaded_MASK) >> SXIFCCG_DEBUG_REG2_req_active_verts_loaded_SHIFT)
+#define SXIFCCG_DEBUG_REG2_GET_sx_pending_fifo_empty(sxifccg_debug_reg2) \
+ ((sxifccg_debug_reg2 & SXIFCCG_DEBUG_REG2_sx_pending_fifo_empty_MASK) >> SXIFCCG_DEBUG_REG2_sx_pending_fifo_empty_SHIFT)
+#define SXIFCCG_DEBUG_REG2_GET_sx_pending_fifo_full(sxifccg_debug_reg2) \
+ ((sxifccg_debug_reg2 & SXIFCCG_DEBUG_REG2_sx_pending_fifo_full_MASK) >> SXIFCCG_DEBUG_REG2_sx_pending_fifo_full_SHIFT)
+#define SXIFCCG_DEBUG_REG2_GET_sx_pending_fifo_contents(sxifccg_debug_reg2) \
+ ((sxifccg_debug_reg2 & SXIFCCG_DEBUG_REG2_sx_pending_fifo_contents_MASK) >> SXIFCCG_DEBUG_REG2_sx_pending_fifo_contents_SHIFT)
+
+#define SXIFCCG_DEBUG_REG2_SET_sx_sent(sxifccg_debug_reg2_reg, sx_sent) \
+ sxifccg_debug_reg2_reg = (sxifccg_debug_reg2_reg & ~SXIFCCG_DEBUG_REG2_sx_sent_MASK) | (sx_sent << SXIFCCG_DEBUG_REG2_sx_sent_SHIFT)
+#define SXIFCCG_DEBUG_REG2_SET_ALWAYS_ZERO3(sxifccg_debug_reg2_reg, always_zero3) \
+ sxifccg_debug_reg2_reg = (sxifccg_debug_reg2_reg & ~SXIFCCG_DEBUG_REG2_ALWAYS_ZERO3_MASK) | (always_zero3 << SXIFCCG_DEBUG_REG2_ALWAYS_ZERO3_SHIFT)
+#define SXIFCCG_DEBUG_REG2_SET_sx_aux(sxifccg_debug_reg2_reg, sx_aux) \
+ sxifccg_debug_reg2_reg = (sxifccg_debug_reg2_reg & ~SXIFCCG_DEBUG_REG2_sx_aux_MASK) | (sx_aux << SXIFCCG_DEBUG_REG2_sx_aux_SHIFT)
+#define SXIFCCG_DEBUG_REG2_SET_sx_request_indx(sxifccg_debug_reg2_reg, sx_request_indx) \
+ sxifccg_debug_reg2_reg = (sxifccg_debug_reg2_reg & ~SXIFCCG_DEBUG_REG2_sx_request_indx_MASK) | (sx_request_indx << SXIFCCG_DEBUG_REG2_sx_request_indx_SHIFT)
+#define SXIFCCG_DEBUG_REG2_SET_req_active_verts(sxifccg_debug_reg2_reg, req_active_verts) \
+ sxifccg_debug_reg2_reg = (sxifccg_debug_reg2_reg & ~SXIFCCG_DEBUG_REG2_req_active_verts_MASK) | (req_active_verts << SXIFCCG_DEBUG_REG2_req_active_verts_SHIFT)
+#define SXIFCCG_DEBUG_REG2_SET_ALWAYS_ZERO2(sxifccg_debug_reg2_reg, always_zero2) \
+ sxifccg_debug_reg2_reg = (sxifccg_debug_reg2_reg & ~SXIFCCG_DEBUG_REG2_ALWAYS_ZERO2_MASK) | (always_zero2 << SXIFCCG_DEBUG_REG2_ALWAYS_ZERO2_SHIFT)
+#define SXIFCCG_DEBUG_REG2_SET_vgt_to_ccgen_state_var_indx(sxifccg_debug_reg2_reg, vgt_to_ccgen_state_var_indx) \
+ sxifccg_debug_reg2_reg = (sxifccg_debug_reg2_reg & ~SXIFCCG_DEBUG_REG2_vgt_to_ccgen_state_var_indx_MASK) | (vgt_to_ccgen_state_var_indx << SXIFCCG_DEBUG_REG2_vgt_to_ccgen_state_var_indx_SHIFT)
+#define SXIFCCG_DEBUG_REG2_SET_ALWAYS_ZERO1(sxifccg_debug_reg2_reg, always_zero1) \
+ sxifccg_debug_reg2_reg = (sxifccg_debug_reg2_reg & ~SXIFCCG_DEBUG_REG2_ALWAYS_ZERO1_MASK) | (always_zero1 << SXIFCCG_DEBUG_REG2_ALWAYS_ZERO1_SHIFT)
+#define SXIFCCG_DEBUG_REG2_SET_vgt_to_ccgen_active_verts(sxifccg_debug_reg2_reg, vgt_to_ccgen_active_verts) \
+ sxifccg_debug_reg2_reg = (sxifccg_debug_reg2_reg & ~SXIFCCG_DEBUG_REG2_vgt_to_ccgen_active_verts_MASK) | (vgt_to_ccgen_active_verts << SXIFCCG_DEBUG_REG2_vgt_to_ccgen_active_verts_SHIFT)
+#define SXIFCCG_DEBUG_REG2_SET_ALWAYS_ZERO0(sxifccg_debug_reg2_reg, always_zero0) \
+ sxifccg_debug_reg2_reg = (sxifccg_debug_reg2_reg & ~SXIFCCG_DEBUG_REG2_ALWAYS_ZERO0_MASK) | (always_zero0 << SXIFCCG_DEBUG_REG2_ALWAYS_ZERO0_SHIFT)
+#define SXIFCCG_DEBUG_REG2_SET_req_active_verts_loaded(sxifccg_debug_reg2_reg, req_active_verts_loaded) \
+ sxifccg_debug_reg2_reg = (sxifccg_debug_reg2_reg & ~SXIFCCG_DEBUG_REG2_req_active_verts_loaded_MASK) | (req_active_verts_loaded << SXIFCCG_DEBUG_REG2_req_active_verts_loaded_SHIFT)
+#define SXIFCCG_DEBUG_REG2_SET_sx_pending_fifo_empty(sxifccg_debug_reg2_reg, sx_pending_fifo_empty) \
+ sxifccg_debug_reg2_reg = (sxifccg_debug_reg2_reg & ~SXIFCCG_DEBUG_REG2_sx_pending_fifo_empty_MASK) | (sx_pending_fifo_empty << SXIFCCG_DEBUG_REG2_sx_pending_fifo_empty_SHIFT)
+#define SXIFCCG_DEBUG_REG2_SET_sx_pending_fifo_full(sxifccg_debug_reg2_reg, sx_pending_fifo_full) \
+ sxifccg_debug_reg2_reg = (sxifccg_debug_reg2_reg & ~SXIFCCG_DEBUG_REG2_sx_pending_fifo_full_MASK) | (sx_pending_fifo_full << SXIFCCG_DEBUG_REG2_sx_pending_fifo_full_SHIFT)
+#define SXIFCCG_DEBUG_REG2_SET_sx_pending_fifo_contents(sxifccg_debug_reg2_reg, sx_pending_fifo_contents) \
+ sxifccg_debug_reg2_reg = (sxifccg_debug_reg2_reg & ~SXIFCCG_DEBUG_REG2_sx_pending_fifo_contents_MASK) | (sx_pending_fifo_contents << SXIFCCG_DEBUG_REG2_sx_pending_fifo_contents_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sxifccg_debug_reg2_t {
+ unsigned int sx_sent : SXIFCCG_DEBUG_REG2_sx_sent_SIZE;
+ unsigned int always_zero3 : SXIFCCG_DEBUG_REG2_ALWAYS_ZERO3_SIZE;
+ unsigned int sx_aux : SXIFCCG_DEBUG_REG2_sx_aux_SIZE;
+ unsigned int sx_request_indx : SXIFCCG_DEBUG_REG2_sx_request_indx_SIZE;
+ unsigned int req_active_verts : SXIFCCG_DEBUG_REG2_req_active_verts_SIZE;
+ unsigned int always_zero2 : SXIFCCG_DEBUG_REG2_ALWAYS_ZERO2_SIZE;
+ unsigned int vgt_to_ccgen_state_var_indx : SXIFCCG_DEBUG_REG2_vgt_to_ccgen_state_var_indx_SIZE;
+ unsigned int always_zero1 : SXIFCCG_DEBUG_REG2_ALWAYS_ZERO1_SIZE;
+ unsigned int vgt_to_ccgen_active_verts : SXIFCCG_DEBUG_REG2_vgt_to_ccgen_active_verts_SIZE;
+ unsigned int always_zero0 : SXIFCCG_DEBUG_REG2_ALWAYS_ZERO0_SIZE;
+ unsigned int req_active_verts_loaded : SXIFCCG_DEBUG_REG2_req_active_verts_loaded_SIZE;
+ unsigned int sx_pending_fifo_empty : SXIFCCG_DEBUG_REG2_sx_pending_fifo_empty_SIZE;
+ unsigned int sx_pending_fifo_full : SXIFCCG_DEBUG_REG2_sx_pending_fifo_full_SIZE;
+ unsigned int sx_pending_fifo_contents : SXIFCCG_DEBUG_REG2_sx_pending_fifo_contents_SIZE;
+ } sxifccg_debug_reg2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sxifccg_debug_reg2_t {
+ unsigned int sx_pending_fifo_contents : SXIFCCG_DEBUG_REG2_sx_pending_fifo_contents_SIZE;
+ unsigned int sx_pending_fifo_full : SXIFCCG_DEBUG_REG2_sx_pending_fifo_full_SIZE;
+ unsigned int sx_pending_fifo_empty : SXIFCCG_DEBUG_REG2_sx_pending_fifo_empty_SIZE;
+ unsigned int req_active_verts_loaded : SXIFCCG_DEBUG_REG2_req_active_verts_loaded_SIZE;
+ unsigned int always_zero0 : SXIFCCG_DEBUG_REG2_ALWAYS_ZERO0_SIZE;
+ unsigned int vgt_to_ccgen_active_verts : SXIFCCG_DEBUG_REG2_vgt_to_ccgen_active_verts_SIZE;
+ unsigned int always_zero1 : SXIFCCG_DEBUG_REG2_ALWAYS_ZERO1_SIZE;
+ unsigned int vgt_to_ccgen_state_var_indx : SXIFCCG_DEBUG_REG2_vgt_to_ccgen_state_var_indx_SIZE;
+ unsigned int always_zero2 : SXIFCCG_DEBUG_REG2_ALWAYS_ZERO2_SIZE;
+ unsigned int req_active_verts : SXIFCCG_DEBUG_REG2_req_active_verts_SIZE;
+ unsigned int sx_request_indx : SXIFCCG_DEBUG_REG2_sx_request_indx_SIZE;
+ unsigned int sx_aux : SXIFCCG_DEBUG_REG2_sx_aux_SIZE;
+ unsigned int always_zero3 : SXIFCCG_DEBUG_REG2_ALWAYS_ZERO3_SIZE;
+ unsigned int sx_sent : SXIFCCG_DEBUG_REG2_sx_sent_SIZE;
+ } sxifccg_debug_reg2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sxifccg_debug_reg2_t f;
+} sxifccg_debug_reg2_u;
+
+
+/*
+ * SXIFCCG_DEBUG_REG3 struct
+ */
+
+#define SXIFCCG_DEBUG_REG3_vertex_fifo_entriesavailable_SIZE 4
+#define SXIFCCG_DEBUG_REG3_ALWAYS_ZERO3_SIZE 1
+#define SXIFCCG_DEBUG_REG3_available_positions_SIZE 3
+#define SXIFCCG_DEBUG_REG3_ALWAYS_ZERO2_SIZE 4
+#define SXIFCCG_DEBUG_REG3_current_state_SIZE 2
+#define SXIFCCG_DEBUG_REG3_vertex_fifo_empty_SIZE 1
+#define SXIFCCG_DEBUG_REG3_vertex_fifo_full_SIZE 1
+#define SXIFCCG_DEBUG_REG3_ALWAYS_ZERO1_SIZE 2
+#define SXIFCCG_DEBUG_REG3_sx0_receive_fifo_empty_SIZE 1
+#define SXIFCCG_DEBUG_REG3_sx0_receive_fifo_full_SIZE 1
+#define SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_empty_SIZE 1
+#define SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_full_SIZE 1
+#define SXIFCCG_DEBUG_REG3_ALWAYS_ZERO0_SIZE 10
+
+#define SXIFCCG_DEBUG_REG3_vertex_fifo_entriesavailable_SHIFT 0
+#define SXIFCCG_DEBUG_REG3_ALWAYS_ZERO3_SHIFT 4
+#define SXIFCCG_DEBUG_REG3_available_positions_SHIFT 5
+#define SXIFCCG_DEBUG_REG3_ALWAYS_ZERO2_SHIFT 8
+#define SXIFCCG_DEBUG_REG3_current_state_SHIFT 12
+#define SXIFCCG_DEBUG_REG3_vertex_fifo_empty_SHIFT 14
+#define SXIFCCG_DEBUG_REG3_vertex_fifo_full_SHIFT 15
+#define SXIFCCG_DEBUG_REG3_ALWAYS_ZERO1_SHIFT 16
+#define SXIFCCG_DEBUG_REG3_sx0_receive_fifo_empty_SHIFT 18
+#define SXIFCCG_DEBUG_REG3_sx0_receive_fifo_full_SHIFT 19
+#define SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_empty_SHIFT 20
+#define SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_full_SHIFT 21
+#define SXIFCCG_DEBUG_REG3_ALWAYS_ZERO0_SHIFT 22
+
+#define SXIFCCG_DEBUG_REG3_vertex_fifo_entriesavailable_MASK 0x0000000f
+#define SXIFCCG_DEBUG_REG3_ALWAYS_ZERO3_MASK 0x00000010
+#define SXIFCCG_DEBUG_REG3_available_positions_MASK 0x000000e0
+#define SXIFCCG_DEBUG_REG3_ALWAYS_ZERO2_MASK 0x00000f00
+#define SXIFCCG_DEBUG_REG3_current_state_MASK 0x00003000
+#define SXIFCCG_DEBUG_REG3_vertex_fifo_empty_MASK 0x00004000
+#define SXIFCCG_DEBUG_REG3_vertex_fifo_full_MASK 0x00008000
+#define SXIFCCG_DEBUG_REG3_ALWAYS_ZERO1_MASK 0x00030000
+#define SXIFCCG_DEBUG_REG3_sx0_receive_fifo_empty_MASK 0x00040000
+#define SXIFCCG_DEBUG_REG3_sx0_receive_fifo_full_MASK 0x00080000
+#define SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_empty_MASK 0x00100000
+#define SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_full_MASK 0x00200000
+#define SXIFCCG_DEBUG_REG3_ALWAYS_ZERO0_MASK 0xffc00000
+
+#define SXIFCCG_DEBUG_REG3_MASK \
+ (SXIFCCG_DEBUG_REG3_vertex_fifo_entriesavailable_MASK | \
+ SXIFCCG_DEBUG_REG3_ALWAYS_ZERO3_MASK | \
+ SXIFCCG_DEBUG_REG3_available_positions_MASK | \
+ SXIFCCG_DEBUG_REG3_ALWAYS_ZERO2_MASK | \
+ SXIFCCG_DEBUG_REG3_current_state_MASK | \
+ SXIFCCG_DEBUG_REG3_vertex_fifo_empty_MASK | \
+ SXIFCCG_DEBUG_REG3_vertex_fifo_full_MASK | \
+ SXIFCCG_DEBUG_REG3_ALWAYS_ZERO1_MASK | \
+ SXIFCCG_DEBUG_REG3_sx0_receive_fifo_empty_MASK | \
+ SXIFCCG_DEBUG_REG3_sx0_receive_fifo_full_MASK | \
+ SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_empty_MASK | \
+ SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_full_MASK | \
+ SXIFCCG_DEBUG_REG3_ALWAYS_ZERO0_MASK)
+
+#define SXIFCCG_DEBUG_REG3(vertex_fifo_entriesavailable, always_zero3, available_positions, always_zero2, current_state, vertex_fifo_empty, vertex_fifo_full, always_zero1, sx0_receive_fifo_empty, sx0_receive_fifo_full, vgt_to_ccgen_fifo_empty, vgt_to_ccgen_fifo_full, always_zero0) \
+ ((vertex_fifo_entriesavailable << SXIFCCG_DEBUG_REG3_vertex_fifo_entriesavailable_SHIFT) | \
+ (always_zero3 << SXIFCCG_DEBUG_REG3_ALWAYS_ZERO3_SHIFT) | \
+ (available_positions << SXIFCCG_DEBUG_REG3_available_positions_SHIFT) | \
+ (always_zero2 << SXIFCCG_DEBUG_REG3_ALWAYS_ZERO2_SHIFT) | \
+ (current_state << SXIFCCG_DEBUG_REG3_current_state_SHIFT) | \
+ (vertex_fifo_empty << SXIFCCG_DEBUG_REG3_vertex_fifo_empty_SHIFT) | \
+ (vertex_fifo_full << SXIFCCG_DEBUG_REG3_vertex_fifo_full_SHIFT) | \
+ (always_zero1 << SXIFCCG_DEBUG_REG3_ALWAYS_ZERO1_SHIFT) | \
+ (sx0_receive_fifo_empty << SXIFCCG_DEBUG_REG3_sx0_receive_fifo_empty_SHIFT) | \
+ (sx0_receive_fifo_full << SXIFCCG_DEBUG_REG3_sx0_receive_fifo_full_SHIFT) | \
+ (vgt_to_ccgen_fifo_empty << SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_empty_SHIFT) | \
+ (vgt_to_ccgen_fifo_full << SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_full_SHIFT) | \
+ (always_zero0 << SXIFCCG_DEBUG_REG3_ALWAYS_ZERO0_SHIFT))
+
+#define SXIFCCG_DEBUG_REG3_GET_vertex_fifo_entriesavailable(sxifccg_debug_reg3) \
+ ((sxifccg_debug_reg3 & SXIFCCG_DEBUG_REG3_vertex_fifo_entriesavailable_MASK) >> SXIFCCG_DEBUG_REG3_vertex_fifo_entriesavailable_SHIFT)
+#define SXIFCCG_DEBUG_REG3_GET_ALWAYS_ZERO3(sxifccg_debug_reg3) \
+ ((sxifccg_debug_reg3 & SXIFCCG_DEBUG_REG3_ALWAYS_ZERO3_MASK) >> SXIFCCG_DEBUG_REG3_ALWAYS_ZERO3_SHIFT)
+#define SXIFCCG_DEBUG_REG3_GET_available_positions(sxifccg_debug_reg3) \
+ ((sxifccg_debug_reg3 & SXIFCCG_DEBUG_REG3_available_positions_MASK) >> SXIFCCG_DEBUG_REG3_available_positions_SHIFT)
+#define SXIFCCG_DEBUG_REG3_GET_ALWAYS_ZERO2(sxifccg_debug_reg3) \
+ ((sxifccg_debug_reg3 & SXIFCCG_DEBUG_REG3_ALWAYS_ZERO2_MASK) >> SXIFCCG_DEBUG_REG3_ALWAYS_ZERO2_SHIFT)
+#define SXIFCCG_DEBUG_REG3_GET_current_state(sxifccg_debug_reg3) \
+ ((sxifccg_debug_reg3 & SXIFCCG_DEBUG_REG3_current_state_MASK) >> SXIFCCG_DEBUG_REG3_current_state_SHIFT)
+#define SXIFCCG_DEBUG_REG3_GET_vertex_fifo_empty(sxifccg_debug_reg3) \
+ ((sxifccg_debug_reg3 & SXIFCCG_DEBUG_REG3_vertex_fifo_empty_MASK) >> SXIFCCG_DEBUG_REG3_vertex_fifo_empty_SHIFT)
+#define SXIFCCG_DEBUG_REG3_GET_vertex_fifo_full(sxifccg_debug_reg3) \
+ ((sxifccg_debug_reg3 & SXIFCCG_DEBUG_REG3_vertex_fifo_full_MASK) >> SXIFCCG_DEBUG_REG3_vertex_fifo_full_SHIFT)
+#define SXIFCCG_DEBUG_REG3_GET_ALWAYS_ZERO1(sxifccg_debug_reg3) \
+ ((sxifccg_debug_reg3 & SXIFCCG_DEBUG_REG3_ALWAYS_ZERO1_MASK) >> SXIFCCG_DEBUG_REG3_ALWAYS_ZERO1_SHIFT)
+#define SXIFCCG_DEBUG_REG3_GET_sx0_receive_fifo_empty(sxifccg_debug_reg3) \
+ ((sxifccg_debug_reg3 & SXIFCCG_DEBUG_REG3_sx0_receive_fifo_empty_MASK) >> SXIFCCG_DEBUG_REG3_sx0_receive_fifo_empty_SHIFT)
+#define SXIFCCG_DEBUG_REG3_GET_sx0_receive_fifo_full(sxifccg_debug_reg3) \
+ ((sxifccg_debug_reg3 & SXIFCCG_DEBUG_REG3_sx0_receive_fifo_full_MASK) >> SXIFCCG_DEBUG_REG3_sx0_receive_fifo_full_SHIFT)
+#define SXIFCCG_DEBUG_REG3_GET_vgt_to_ccgen_fifo_empty(sxifccg_debug_reg3) \
+ ((sxifccg_debug_reg3 & SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_empty_MASK) >> SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_empty_SHIFT)
+#define SXIFCCG_DEBUG_REG3_GET_vgt_to_ccgen_fifo_full(sxifccg_debug_reg3) \
+ ((sxifccg_debug_reg3 & SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_full_MASK) >> SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_full_SHIFT)
+#define SXIFCCG_DEBUG_REG3_GET_ALWAYS_ZERO0(sxifccg_debug_reg3) \
+ ((sxifccg_debug_reg3 & SXIFCCG_DEBUG_REG3_ALWAYS_ZERO0_MASK) >> SXIFCCG_DEBUG_REG3_ALWAYS_ZERO0_SHIFT)
+
+#define SXIFCCG_DEBUG_REG3_SET_vertex_fifo_entriesavailable(sxifccg_debug_reg3_reg, vertex_fifo_entriesavailable) \
+ sxifccg_debug_reg3_reg = (sxifccg_debug_reg3_reg & ~SXIFCCG_DEBUG_REG3_vertex_fifo_entriesavailable_MASK) | (vertex_fifo_entriesavailable << SXIFCCG_DEBUG_REG3_vertex_fifo_entriesavailable_SHIFT)
+#define SXIFCCG_DEBUG_REG3_SET_ALWAYS_ZERO3(sxifccg_debug_reg3_reg, always_zero3) \
+ sxifccg_debug_reg3_reg = (sxifccg_debug_reg3_reg & ~SXIFCCG_DEBUG_REG3_ALWAYS_ZERO3_MASK) | (always_zero3 << SXIFCCG_DEBUG_REG3_ALWAYS_ZERO3_SHIFT)
+#define SXIFCCG_DEBUG_REG3_SET_available_positions(sxifccg_debug_reg3_reg, available_positions) \
+ sxifccg_debug_reg3_reg = (sxifccg_debug_reg3_reg & ~SXIFCCG_DEBUG_REG3_available_positions_MASK) | (available_positions << SXIFCCG_DEBUG_REG3_available_positions_SHIFT)
+#define SXIFCCG_DEBUG_REG3_SET_ALWAYS_ZERO2(sxifccg_debug_reg3_reg, always_zero2) \
+ sxifccg_debug_reg3_reg = (sxifccg_debug_reg3_reg & ~SXIFCCG_DEBUG_REG3_ALWAYS_ZERO2_MASK) | (always_zero2 << SXIFCCG_DEBUG_REG3_ALWAYS_ZERO2_SHIFT)
+#define SXIFCCG_DEBUG_REG3_SET_current_state(sxifccg_debug_reg3_reg, current_state) \
+ sxifccg_debug_reg3_reg = (sxifccg_debug_reg3_reg & ~SXIFCCG_DEBUG_REG3_current_state_MASK) | (current_state << SXIFCCG_DEBUG_REG3_current_state_SHIFT)
+#define SXIFCCG_DEBUG_REG3_SET_vertex_fifo_empty(sxifccg_debug_reg3_reg, vertex_fifo_empty) \
+ sxifccg_debug_reg3_reg = (sxifccg_debug_reg3_reg & ~SXIFCCG_DEBUG_REG3_vertex_fifo_empty_MASK) | (vertex_fifo_empty << SXIFCCG_DEBUG_REG3_vertex_fifo_empty_SHIFT)
+#define SXIFCCG_DEBUG_REG3_SET_vertex_fifo_full(sxifccg_debug_reg3_reg, vertex_fifo_full) \
+ sxifccg_debug_reg3_reg = (sxifccg_debug_reg3_reg & ~SXIFCCG_DEBUG_REG3_vertex_fifo_full_MASK) | (vertex_fifo_full << SXIFCCG_DEBUG_REG3_vertex_fifo_full_SHIFT)
+#define SXIFCCG_DEBUG_REG3_SET_ALWAYS_ZERO1(sxifccg_debug_reg3_reg, always_zero1) \
+ sxifccg_debug_reg3_reg = (sxifccg_debug_reg3_reg & ~SXIFCCG_DEBUG_REG3_ALWAYS_ZERO1_MASK) | (always_zero1 << SXIFCCG_DEBUG_REG3_ALWAYS_ZERO1_SHIFT)
+#define SXIFCCG_DEBUG_REG3_SET_sx0_receive_fifo_empty(sxifccg_debug_reg3_reg, sx0_receive_fifo_empty) \
+ sxifccg_debug_reg3_reg = (sxifccg_debug_reg3_reg & ~SXIFCCG_DEBUG_REG3_sx0_receive_fifo_empty_MASK) | (sx0_receive_fifo_empty << SXIFCCG_DEBUG_REG3_sx0_receive_fifo_empty_SHIFT)
+#define SXIFCCG_DEBUG_REG3_SET_sx0_receive_fifo_full(sxifccg_debug_reg3_reg, sx0_receive_fifo_full) \
+ sxifccg_debug_reg3_reg = (sxifccg_debug_reg3_reg & ~SXIFCCG_DEBUG_REG3_sx0_receive_fifo_full_MASK) | (sx0_receive_fifo_full << SXIFCCG_DEBUG_REG3_sx0_receive_fifo_full_SHIFT)
+#define SXIFCCG_DEBUG_REG3_SET_vgt_to_ccgen_fifo_empty(sxifccg_debug_reg3_reg, vgt_to_ccgen_fifo_empty) \
+ sxifccg_debug_reg3_reg = (sxifccg_debug_reg3_reg & ~SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_empty_MASK) | (vgt_to_ccgen_fifo_empty << SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_empty_SHIFT)
+#define SXIFCCG_DEBUG_REG3_SET_vgt_to_ccgen_fifo_full(sxifccg_debug_reg3_reg, vgt_to_ccgen_fifo_full) \
+ sxifccg_debug_reg3_reg = (sxifccg_debug_reg3_reg & ~SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_full_MASK) | (vgt_to_ccgen_fifo_full << SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_full_SHIFT)
+#define SXIFCCG_DEBUG_REG3_SET_ALWAYS_ZERO0(sxifccg_debug_reg3_reg, always_zero0) \
+ sxifccg_debug_reg3_reg = (sxifccg_debug_reg3_reg & ~SXIFCCG_DEBUG_REG3_ALWAYS_ZERO0_MASK) | (always_zero0 << SXIFCCG_DEBUG_REG3_ALWAYS_ZERO0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sxifccg_debug_reg3_t {
+ unsigned int vertex_fifo_entriesavailable : SXIFCCG_DEBUG_REG3_vertex_fifo_entriesavailable_SIZE;
+ unsigned int always_zero3 : SXIFCCG_DEBUG_REG3_ALWAYS_ZERO3_SIZE;
+ unsigned int available_positions : SXIFCCG_DEBUG_REG3_available_positions_SIZE;
+ unsigned int always_zero2 : SXIFCCG_DEBUG_REG3_ALWAYS_ZERO2_SIZE;
+ unsigned int current_state : SXIFCCG_DEBUG_REG3_current_state_SIZE;
+ unsigned int vertex_fifo_empty : SXIFCCG_DEBUG_REG3_vertex_fifo_empty_SIZE;
+ unsigned int vertex_fifo_full : SXIFCCG_DEBUG_REG3_vertex_fifo_full_SIZE;
+ unsigned int always_zero1 : SXIFCCG_DEBUG_REG3_ALWAYS_ZERO1_SIZE;
+ unsigned int sx0_receive_fifo_empty : SXIFCCG_DEBUG_REG3_sx0_receive_fifo_empty_SIZE;
+ unsigned int sx0_receive_fifo_full : SXIFCCG_DEBUG_REG3_sx0_receive_fifo_full_SIZE;
+ unsigned int vgt_to_ccgen_fifo_empty : SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_empty_SIZE;
+ unsigned int vgt_to_ccgen_fifo_full : SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_full_SIZE;
+ unsigned int always_zero0 : SXIFCCG_DEBUG_REG3_ALWAYS_ZERO0_SIZE;
+ } sxifccg_debug_reg3_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sxifccg_debug_reg3_t {
+ unsigned int always_zero0 : SXIFCCG_DEBUG_REG3_ALWAYS_ZERO0_SIZE;
+ unsigned int vgt_to_ccgen_fifo_full : SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_full_SIZE;
+ unsigned int vgt_to_ccgen_fifo_empty : SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_empty_SIZE;
+ unsigned int sx0_receive_fifo_full : SXIFCCG_DEBUG_REG3_sx0_receive_fifo_full_SIZE;
+ unsigned int sx0_receive_fifo_empty : SXIFCCG_DEBUG_REG3_sx0_receive_fifo_empty_SIZE;
+ unsigned int always_zero1 : SXIFCCG_DEBUG_REG3_ALWAYS_ZERO1_SIZE;
+ unsigned int vertex_fifo_full : SXIFCCG_DEBUG_REG3_vertex_fifo_full_SIZE;
+ unsigned int vertex_fifo_empty : SXIFCCG_DEBUG_REG3_vertex_fifo_empty_SIZE;
+ unsigned int current_state : SXIFCCG_DEBUG_REG3_current_state_SIZE;
+ unsigned int always_zero2 : SXIFCCG_DEBUG_REG3_ALWAYS_ZERO2_SIZE;
+ unsigned int available_positions : SXIFCCG_DEBUG_REG3_available_positions_SIZE;
+ unsigned int always_zero3 : SXIFCCG_DEBUG_REG3_ALWAYS_ZERO3_SIZE;
+ unsigned int vertex_fifo_entriesavailable : SXIFCCG_DEBUG_REG3_vertex_fifo_entriesavailable_SIZE;
+ } sxifccg_debug_reg3_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sxifccg_debug_reg3_t f;
+} sxifccg_debug_reg3_u;
+
+
+/*
+ * SETUP_DEBUG_REG0 struct
+ */
+
+#define SETUP_DEBUG_REG0_su_cntl_state_SIZE 5
+#define SETUP_DEBUG_REG0_pmode_state_SIZE 6
+#define SETUP_DEBUG_REG0_ge_stallb_SIZE 1
+#define SETUP_DEBUG_REG0_geom_enable_SIZE 1
+#define SETUP_DEBUG_REG0_su_clip_baryc_rtr_SIZE 1
+#define SETUP_DEBUG_REG0_su_clip_rtr_SIZE 1
+#define SETUP_DEBUG_REG0_pfifo_busy_SIZE 1
+#define SETUP_DEBUG_REG0_su_cntl_busy_SIZE 1
+#define SETUP_DEBUG_REG0_geom_busy_SIZE 1
+
+#define SETUP_DEBUG_REG0_su_cntl_state_SHIFT 0
+#define SETUP_DEBUG_REG0_pmode_state_SHIFT 5
+#define SETUP_DEBUG_REG0_ge_stallb_SHIFT 11
+#define SETUP_DEBUG_REG0_geom_enable_SHIFT 12
+#define SETUP_DEBUG_REG0_su_clip_baryc_rtr_SHIFT 13
+#define SETUP_DEBUG_REG0_su_clip_rtr_SHIFT 14
+#define SETUP_DEBUG_REG0_pfifo_busy_SHIFT 15
+#define SETUP_DEBUG_REG0_su_cntl_busy_SHIFT 16
+#define SETUP_DEBUG_REG0_geom_busy_SHIFT 17
+
+#define SETUP_DEBUG_REG0_su_cntl_state_MASK 0x0000001f
+#define SETUP_DEBUG_REG0_pmode_state_MASK 0x000007e0
+#define SETUP_DEBUG_REG0_ge_stallb_MASK 0x00000800
+#define SETUP_DEBUG_REG0_geom_enable_MASK 0x00001000
+#define SETUP_DEBUG_REG0_su_clip_baryc_rtr_MASK 0x00002000
+#define SETUP_DEBUG_REG0_su_clip_rtr_MASK 0x00004000
+#define SETUP_DEBUG_REG0_pfifo_busy_MASK 0x00008000
+#define SETUP_DEBUG_REG0_su_cntl_busy_MASK 0x00010000
+#define SETUP_DEBUG_REG0_geom_busy_MASK 0x00020000
+
+#define SETUP_DEBUG_REG0_MASK \
+ (SETUP_DEBUG_REG0_su_cntl_state_MASK | \
+ SETUP_DEBUG_REG0_pmode_state_MASK | \
+ SETUP_DEBUG_REG0_ge_stallb_MASK | \
+ SETUP_DEBUG_REG0_geom_enable_MASK | \
+ SETUP_DEBUG_REG0_su_clip_baryc_rtr_MASK | \
+ SETUP_DEBUG_REG0_su_clip_rtr_MASK | \
+ SETUP_DEBUG_REG0_pfifo_busy_MASK | \
+ SETUP_DEBUG_REG0_su_cntl_busy_MASK | \
+ SETUP_DEBUG_REG0_geom_busy_MASK)
+
+#define SETUP_DEBUG_REG0(su_cntl_state, pmode_state, ge_stallb, geom_enable, su_clip_baryc_rtr, su_clip_rtr, pfifo_busy, su_cntl_busy, geom_busy) \
+ ((su_cntl_state << SETUP_DEBUG_REG0_su_cntl_state_SHIFT) | \
+ (pmode_state << SETUP_DEBUG_REG0_pmode_state_SHIFT) | \
+ (ge_stallb << SETUP_DEBUG_REG0_ge_stallb_SHIFT) | \
+ (geom_enable << SETUP_DEBUG_REG0_geom_enable_SHIFT) | \
+ (su_clip_baryc_rtr << SETUP_DEBUG_REG0_su_clip_baryc_rtr_SHIFT) | \
+ (su_clip_rtr << SETUP_DEBUG_REG0_su_clip_rtr_SHIFT) | \
+ (pfifo_busy << SETUP_DEBUG_REG0_pfifo_busy_SHIFT) | \
+ (su_cntl_busy << SETUP_DEBUG_REG0_su_cntl_busy_SHIFT) | \
+ (geom_busy << SETUP_DEBUG_REG0_geom_busy_SHIFT))
+
+#define SETUP_DEBUG_REG0_GET_su_cntl_state(setup_debug_reg0) \
+ ((setup_debug_reg0 & SETUP_DEBUG_REG0_su_cntl_state_MASK) >> SETUP_DEBUG_REG0_su_cntl_state_SHIFT)
+#define SETUP_DEBUG_REG0_GET_pmode_state(setup_debug_reg0) \
+ ((setup_debug_reg0 & SETUP_DEBUG_REG0_pmode_state_MASK) >> SETUP_DEBUG_REG0_pmode_state_SHIFT)
+#define SETUP_DEBUG_REG0_GET_ge_stallb(setup_debug_reg0) \
+ ((setup_debug_reg0 & SETUP_DEBUG_REG0_ge_stallb_MASK) >> SETUP_DEBUG_REG0_ge_stallb_SHIFT)
+#define SETUP_DEBUG_REG0_GET_geom_enable(setup_debug_reg0) \
+ ((setup_debug_reg0 & SETUP_DEBUG_REG0_geom_enable_MASK) >> SETUP_DEBUG_REG0_geom_enable_SHIFT)
+#define SETUP_DEBUG_REG0_GET_su_clip_baryc_rtr(setup_debug_reg0) \
+ ((setup_debug_reg0 & SETUP_DEBUG_REG0_su_clip_baryc_rtr_MASK) >> SETUP_DEBUG_REG0_su_clip_baryc_rtr_SHIFT)
+#define SETUP_DEBUG_REG0_GET_su_clip_rtr(setup_debug_reg0) \
+ ((setup_debug_reg0 & SETUP_DEBUG_REG0_su_clip_rtr_MASK) >> SETUP_DEBUG_REG0_su_clip_rtr_SHIFT)
+#define SETUP_DEBUG_REG0_GET_pfifo_busy(setup_debug_reg0) \
+ ((setup_debug_reg0 & SETUP_DEBUG_REG0_pfifo_busy_MASK) >> SETUP_DEBUG_REG0_pfifo_busy_SHIFT)
+#define SETUP_DEBUG_REG0_GET_su_cntl_busy(setup_debug_reg0) \
+ ((setup_debug_reg0 & SETUP_DEBUG_REG0_su_cntl_busy_MASK) >> SETUP_DEBUG_REG0_su_cntl_busy_SHIFT)
+#define SETUP_DEBUG_REG0_GET_geom_busy(setup_debug_reg0) \
+ ((setup_debug_reg0 & SETUP_DEBUG_REG0_geom_busy_MASK) >> SETUP_DEBUG_REG0_geom_busy_SHIFT)
+
+#define SETUP_DEBUG_REG0_SET_su_cntl_state(setup_debug_reg0_reg, su_cntl_state) \
+ setup_debug_reg0_reg = (setup_debug_reg0_reg & ~SETUP_DEBUG_REG0_su_cntl_state_MASK) | (su_cntl_state << SETUP_DEBUG_REG0_su_cntl_state_SHIFT)
+#define SETUP_DEBUG_REG0_SET_pmode_state(setup_debug_reg0_reg, pmode_state) \
+ setup_debug_reg0_reg = (setup_debug_reg0_reg & ~SETUP_DEBUG_REG0_pmode_state_MASK) | (pmode_state << SETUP_DEBUG_REG0_pmode_state_SHIFT)
+#define SETUP_DEBUG_REG0_SET_ge_stallb(setup_debug_reg0_reg, ge_stallb) \
+ setup_debug_reg0_reg = (setup_debug_reg0_reg & ~SETUP_DEBUG_REG0_ge_stallb_MASK) | (ge_stallb << SETUP_DEBUG_REG0_ge_stallb_SHIFT)
+#define SETUP_DEBUG_REG0_SET_geom_enable(setup_debug_reg0_reg, geom_enable) \
+ setup_debug_reg0_reg = (setup_debug_reg0_reg & ~SETUP_DEBUG_REG0_geom_enable_MASK) | (geom_enable << SETUP_DEBUG_REG0_geom_enable_SHIFT)
+#define SETUP_DEBUG_REG0_SET_su_clip_baryc_rtr(setup_debug_reg0_reg, su_clip_baryc_rtr) \
+ setup_debug_reg0_reg = (setup_debug_reg0_reg & ~SETUP_DEBUG_REG0_su_clip_baryc_rtr_MASK) | (su_clip_baryc_rtr << SETUP_DEBUG_REG0_su_clip_baryc_rtr_SHIFT)
+#define SETUP_DEBUG_REG0_SET_su_clip_rtr(setup_debug_reg0_reg, su_clip_rtr) \
+ setup_debug_reg0_reg = (setup_debug_reg0_reg & ~SETUP_DEBUG_REG0_su_clip_rtr_MASK) | (su_clip_rtr << SETUP_DEBUG_REG0_su_clip_rtr_SHIFT)
+#define SETUP_DEBUG_REG0_SET_pfifo_busy(setup_debug_reg0_reg, pfifo_busy) \
+ setup_debug_reg0_reg = (setup_debug_reg0_reg & ~SETUP_DEBUG_REG0_pfifo_busy_MASK) | (pfifo_busy << SETUP_DEBUG_REG0_pfifo_busy_SHIFT)
+#define SETUP_DEBUG_REG0_SET_su_cntl_busy(setup_debug_reg0_reg, su_cntl_busy) \
+ setup_debug_reg0_reg = (setup_debug_reg0_reg & ~SETUP_DEBUG_REG0_su_cntl_busy_MASK) | (su_cntl_busy << SETUP_DEBUG_REG0_su_cntl_busy_SHIFT)
+#define SETUP_DEBUG_REG0_SET_geom_busy(setup_debug_reg0_reg, geom_busy) \
+ setup_debug_reg0_reg = (setup_debug_reg0_reg & ~SETUP_DEBUG_REG0_geom_busy_MASK) | (geom_busy << SETUP_DEBUG_REG0_geom_busy_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _setup_debug_reg0_t {
+ unsigned int su_cntl_state : SETUP_DEBUG_REG0_su_cntl_state_SIZE;
+ unsigned int pmode_state : SETUP_DEBUG_REG0_pmode_state_SIZE;
+ unsigned int ge_stallb : SETUP_DEBUG_REG0_ge_stallb_SIZE;
+ unsigned int geom_enable : SETUP_DEBUG_REG0_geom_enable_SIZE;
+ unsigned int su_clip_baryc_rtr : SETUP_DEBUG_REG0_su_clip_baryc_rtr_SIZE;
+ unsigned int su_clip_rtr : SETUP_DEBUG_REG0_su_clip_rtr_SIZE;
+ unsigned int pfifo_busy : SETUP_DEBUG_REG0_pfifo_busy_SIZE;
+ unsigned int su_cntl_busy : SETUP_DEBUG_REG0_su_cntl_busy_SIZE;
+ unsigned int geom_busy : SETUP_DEBUG_REG0_geom_busy_SIZE;
+ unsigned int : 14;
+ } setup_debug_reg0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _setup_debug_reg0_t {
+ unsigned int : 14;
+ unsigned int geom_busy : SETUP_DEBUG_REG0_geom_busy_SIZE;
+ unsigned int su_cntl_busy : SETUP_DEBUG_REG0_su_cntl_busy_SIZE;
+ unsigned int pfifo_busy : SETUP_DEBUG_REG0_pfifo_busy_SIZE;
+ unsigned int su_clip_rtr : SETUP_DEBUG_REG0_su_clip_rtr_SIZE;
+ unsigned int su_clip_baryc_rtr : SETUP_DEBUG_REG0_su_clip_baryc_rtr_SIZE;
+ unsigned int geom_enable : SETUP_DEBUG_REG0_geom_enable_SIZE;
+ unsigned int ge_stallb : SETUP_DEBUG_REG0_ge_stallb_SIZE;
+ unsigned int pmode_state : SETUP_DEBUG_REG0_pmode_state_SIZE;
+ unsigned int su_cntl_state : SETUP_DEBUG_REG0_su_cntl_state_SIZE;
+ } setup_debug_reg0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ setup_debug_reg0_t f;
+} setup_debug_reg0_u;
+
+
+/*
+ * SETUP_DEBUG_REG1 struct
+ */
+
+#define SETUP_DEBUG_REG1_y_sort0_gated_17_4_SIZE 14
+#define SETUP_DEBUG_REG1_x_sort0_gated_17_4_SIZE 14
+
+#define SETUP_DEBUG_REG1_y_sort0_gated_17_4_SHIFT 0
+#define SETUP_DEBUG_REG1_x_sort0_gated_17_4_SHIFT 14
+
+#define SETUP_DEBUG_REG1_y_sort0_gated_17_4_MASK 0x00003fff
+#define SETUP_DEBUG_REG1_x_sort0_gated_17_4_MASK 0x0fffc000
+
+#define SETUP_DEBUG_REG1_MASK \
+ (SETUP_DEBUG_REG1_y_sort0_gated_17_4_MASK | \
+ SETUP_DEBUG_REG1_x_sort0_gated_17_4_MASK)
+
+#define SETUP_DEBUG_REG1(y_sort0_gated_17_4, x_sort0_gated_17_4) \
+ ((y_sort0_gated_17_4 << SETUP_DEBUG_REG1_y_sort0_gated_17_4_SHIFT) | \
+ (x_sort0_gated_17_4 << SETUP_DEBUG_REG1_x_sort0_gated_17_4_SHIFT))
+
+#define SETUP_DEBUG_REG1_GET_y_sort0_gated_17_4(setup_debug_reg1) \
+ ((setup_debug_reg1 & SETUP_DEBUG_REG1_y_sort0_gated_17_4_MASK) >> SETUP_DEBUG_REG1_y_sort0_gated_17_4_SHIFT)
+#define SETUP_DEBUG_REG1_GET_x_sort0_gated_17_4(setup_debug_reg1) \
+ ((setup_debug_reg1 & SETUP_DEBUG_REG1_x_sort0_gated_17_4_MASK) >> SETUP_DEBUG_REG1_x_sort0_gated_17_4_SHIFT)
+
+#define SETUP_DEBUG_REG1_SET_y_sort0_gated_17_4(setup_debug_reg1_reg, y_sort0_gated_17_4) \
+ setup_debug_reg1_reg = (setup_debug_reg1_reg & ~SETUP_DEBUG_REG1_y_sort0_gated_17_4_MASK) | (y_sort0_gated_17_4 << SETUP_DEBUG_REG1_y_sort0_gated_17_4_SHIFT)
+#define SETUP_DEBUG_REG1_SET_x_sort0_gated_17_4(setup_debug_reg1_reg, x_sort0_gated_17_4) \
+ setup_debug_reg1_reg = (setup_debug_reg1_reg & ~SETUP_DEBUG_REG1_x_sort0_gated_17_4_MASK) | (x_sort0_gated_17_4 << SETUP_DEBUG_REG1_x_sort0_gated_17_4_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _setup_debug_reg1_t {
+ unsigned int y_sort0_gated_17_4 : SETUP_DEBUG_REG1_y_sort0_gated_17_4_SIZE;
+ unsigned int x_sort0_gated_17_4 : SETUP_DEBUG_REG1_x_sort0_gated_17_4_SIZE;
+ unsigned int : 4;
+ } setup_debug_reg1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _setup_debug_reg1_t {
+ unsigned int : 4;
+ unsigned int x_sort0_gated_17_4 : SETUP_DEBUG_REG1_x_sort0_gated_17_4_SIZE;
+ unsigned int y_sort0_gated_17_4 : SETUP_DEBUG_REG1_y_sort0_gated_17_4_SIZE;
+ } setup_debug_reg1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ setup_debug_reg1_t f;
+} setup_debug_reg1_u;
+
+
+/*
+ * SETUP_DEBUG_REG2 struct
+ */
+
+#define SETUP_DEBUG_REG2_y_sort1_gated_17_4_SIZE 14
+#define SETUP_DEBUG_REG2_x_sort1_gated_17_4_SIZE 14
+
+#define SETUP_DEBUG_REG2_y_sort1_gated_17_4_SHIFT 0
+#define SETUP_DEBUG_REG2_x_sort1_gated_17_4_SHIFT 14
+
+#define SETUP_DEBUG_REG2_y_sort1_gated_17_4_MASK 0x00003fff
+#define SETUP_DEBUG_REG2_x_sort1_gated_17_4_MASK 0x0fffc000
+
+#define SETUP_DEBUG_REG2_MASK \
+ (SETUP_DEBUG_REG2_y_sort1_gated_17_4_MASK | \
+ SETUP_DEBUG_REG2_x_sort1_gated_17_4_MASK)
+
+#define SETUP_DEBUG_REG2(y_sort1_gated_17_4, x_sort1_gated_17_4) \
+ ((y_sort1_gated_17_4 << SETUP_DEBUG_REG2_y_sort1_gated_17_4_SHIFT) | \
+ (x_sort1_gated_17_4 << SETUP_DEBUG_REG2_x_sort1_gated_17_4_SHIFT))
+
+#define SETUP_DEBUG_REG2_GET_y_sort1_gated_17_4(setup_debug_reg2) \
+ ((setup_debug_reg2 & SETUP_DEBUG_REG2_y_sort1_gated_17_4_MASK) >> SETUP_DEBUG_REG2_y_sort1_gated_17_4_SHIFT)
+#define SETUP_DEBUG_REG2_GET_x_sort1_gated_17_4(setup_debug_reg2) \
+ ((setup_debug_reg2 & SETUP_DEBUG_REG2_x_sort1_gated_17_4_MASK) >> SETUP_DEBUG_REG2_x_sort1_gated_17_4_SHIFT)
+
+#define SETUP_DEBUG_REG2_SET_y_sort1_gated_17_4(setup_debug_reg2_reg, y_sort1_gated_17_4) \
+ setup_debug_reg2_reg = (setup_debug_reg2_reg & ~SETUP_DEBUG_REG2_y_sort1_gated_17_4_MASK) | (y_sort1_gated_17_4 << SETUP_DEBUG_REG2_y_sort1_gated_17_4_SHIFT)
+#define SETUP_DEBUG_REG2_SET_x_sort1_gated_17_4(setup_debug_reg2_reg, x_sort1_gated_17_4) \
+ setup_debug_reg2_reg = (setup_debug_reg2_reg & ~SETUP_DEBUG_REG2_x_sort1_gated_17_4_MASK) | (x_sort1_gated_17_4 << SETUP_DEBUG_REG2_x_sort1_gated_17_4_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _setup_debug_reg2_t {
+ unsigned int y_sort1_gated_17_4 : SETUP_DEBUG_REG2_y_sort1_gated_17_4_SIZE;
+ unsigned int x_sort1_gated_17_4 : SETUP_DEBUG_REG2_x_sort1_gated_17_4_SIZE;
+ unsigned int : 4;
+ } setup_debug_reg2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _setup_debug_reg2_t {
+ unsigned int : 4;
+ unsigned int x_sort1_gated_17_4 : SETUP_DEBUG_REG2_x_sort1_gated_17_4_SIZE;
+ unsigned int y_sort1_gated_17_4 : SETUP_DEBUG_REG2_y_sort1_gated_17_4_SIZE;
+ } setup_debug_reg2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ setup_debug_reg2_t f;
+} setup_debug_reg2_u;
+
+
+/*
+ * SETUP_DEBUG_REG3 struct
+ */
+
+#define SETUP_DEBUG_REG3_y_sort2_gated_17_4_SIZE 14
+#define SETUP_DEBUG_REG3_x_sort2_gated_17_4_SIZE 14
+
+#define SETUP_DEBUG_REG3_y_sort2_gated_17_4_SHIFT 0
+#define SETUP_DEBUG_REG3_x_sort2_gated_17_4_SHIFT 14
+
+#define SETUP_DEBUG_REG3_y_sort2_gated_17_4_MASK 0x00003fff
+#define SETUP_DEBUG_REG3_x_sort2_gated_17_4_MASK 0x0fffc000
+
+#define SETUP_DEBUG_REG3_MASK \
+ (SETUP_DEBUG_REG3_y_sort2_gated_17_4_MASK | \
+ SETUP_DEBUG_REG3_x_sort2_gated_17_4_MASK)
+
+#define SETUP_DEBUG_REG3(y_sort2_gated_17_4, x_sort2_gated_17_4) \
+ ((y_sort2_gated_17_4 << SETUP_DEBUG_REG3_y_sort2_gated_17_4_SHIFT) | \
+ (x_sort2_gated_17_4 << SETUP_DEBUG_REG3_x_sort2_gated_17_4_SHIFT))
+
+#define SETUP_DEBUG_REG3_GET_y_sort2_gated_17_4(setup_debug_reg3) \
+ ((setup_debug_reg3 & SETUP_DEBUG_REG3_y_sort2_gated_17_4_MASK) >> SETUP_DEBUG_REG3_y_sort2_gated_17_4_SHIFT)
+#define SETUP_DEBUG_REG3_GET_x_sort2_gated_17_4(setup_debug_reg3) \
+ ((setup_debug_reg3 & SETUP_DEBUG_REG3_x_sort2_gated_17_4_MASK) >> SETUP_DEBUG_REG3_x_sort2_gated_17_4_SHIFT)
+
+#define SETUP_DEBUG_REG3_SET_y_sort2_gated_17_4(setup_debug_reg3_reg, y_sort2_gated_17_4) \
+ setup_debug_reg3_reg = (setup_debug_reg3_reg & ~SETUP_DEBUG_REG3_y_sort2_gated_17_4_MASK) | (y_sort2_gated_17_4 << SETUP_DEBUG_REG3_y_sort2_gated_17_4_SHIFT)
+#define SETUP_DEBUG_REG3_SET_x_sort2_gated_17_4(setup_debug_reg3_reg, x_sort2_gated_17_4) \
+ setup_debug_reg3_reg = (setup_debug_reg3_reg & ~SETUP_DEBUG_REG3_x_sort2_gated_17_4_MASK) | (x_sort2_gated_17_4 << SETUP_DEBUG_REG3_x_sort2_gated_17_4_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _setup_debug_reg3_t {
+ unsigned int y_sort2_gated_17_4 : SETUP_DEBUG_REG3_y_sort2_gated_17_4_SIZE;
+ unsigned int x_sort2_gated_17_4 : SETUP_DEBUG_REG3_x_sort2_gated_17_4_SIZE;
+ unsigned int : 4;
+ } setup_debug_reg3_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _setup_debug_reg3_t {
+ unsigned int : 4;
+ unsigned int x_sort2_gated_17_4 : SETUP_DEBUG_REG3_x_sort2_gated_17_4_SIZE;
+ unsigned int y_sort2_gated_17_4 : SETUP_DEBUG_REG3_y_sort2_gated_17_4_SIZE;
+ } setup_debug_reg3_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ setup_debug_reg3_t f;
+} setup_debug_reg3_u;
+
+
+/*
+ * SETUP_DEBUG_REG4 struct
+ */
+
+#define SETUP_DEBUG_REG4_attr_indx_sort0_gated_SIZE 11
+#define SETUP_DEBUG_REG4_null_prim_gated_SIZE 1
+#define SETUP_DEBUG_REG4_backfacing_gated_SIZE 1
+#define SETUP_DEBUG_REG4_st_indx_gated_SIZE 3
+#define SETUP_DEBUG_REG4_clipped_gated_SIZE 1
+#define SETUP_DEBUG_REG4_dealloc_slot_gated_SIZE 3
+#define SETUP_DEBUG_REG4_xmajor_gated_SIZE 1
+#define SETUP_DEBUG_REG4_diamond_rule_gated_SIZE 2
+#define SETUP_DEBUG_REG4_type_gated_SIZE 3
+#define SETUP_DEBUG_REG4_fpov_gated_SIZE 1
+#define SETUP_DEBUG_REG4_pmode_prim_gated_SIZE 1
+#define SETUP_DEBUG_REG4_event_gated_SIZE 1
+#define SETUP_DEBUG_REG4_eop_gated_SIZE 1
+
+#define SETUP_DEBUG_REG4_attr_indx_sort0_gated_SHIFT 0
+#define SETUP_DEBUG_REG4_null_prim_gated_SHIFT 11
+#define SETUP_DEBUG_REG4_backfacing_gated_SHIFT 12
+#define SETUP_DEBUG_REG4_st_indx_gated_SHIFT 13
+#define SETUP_DEBUG_REG4_clipped_gated_SHIFT 16
+#define SETUP_DEBUG_REG4_dealloc_slot_gated_SHIFT 17
+#define SETUP_DEBUG_REG4_xmajor_gated_SHIFT 20
+#define SETUP_DEBUG_REG4_diamond_rule_gated_SHIFT 21
+#define SETUP_DEBUG_REG4_type_gated_SHIFT 23
+#define SETUP_DEBUG_REG4_fpov_gated_SHIFT 26
+#define SETUP_DEBUG_REG4_pmode_prim_gated_SHIFT 27
+#define SETUP_DEBUG_REG4_event_gated_SHIFT 28
+#define SETUP_DEBUG_REG4_eop_gated_SHIFT 29
+
+#define SETUP_DEBUG_REG4_attr_indx_sort0_gated_MASK 0x000007ff
+#define SETUP_DEBUG_REG4_null_prim_gated_MASK 0x00000800
+#define SETUP_DEBUG_REG4_backfacing_gated_MASK 0x00001000
+#define SETUP_DEBUG_REG4_st_indx_gated_MASK 0x0000e000
+#define SETUP_DEBUG_REG4_clipped_gated_MASK 0x00010000
+#define SETUP_DEBUG_REG4_dealloc_slot_gated_MASK 0x000e0000
+#define SETUP_DEBUG_REG4_xmajor_gated_MASK 0x00100000
+#define SETUP_DEBUG_REG4_diamond_rule_gated_MASK 0x00600000
+#define SETUP_DEBUG_REG4_type_gated_MASK 0x03800000
+#define SETUP_DEBUG_REG4_fpov_gated_MASK 0x04000000
+#define SETUP_DEBUG_REG4_pmode_prim_gated_MASK 0x08000000
+#define SETUP_DEBUG_REG4_event_gated_MASK 0x10000000
+#define SETUP_DEBUG_REG4_eop_gated_MASK 0x20000000
+
+#define SETUP_DEBUG_REG4_MASK \
+ (SETUP_DEBUG_REG4_attr_indx_sort0_gated_MASK | \
+ SETUP_DEBUG_REG4_null_prim_gated_MASK | \
+ SETUP_DEBUG_REG4_backfacing_gated_MASK | \
+ SETUP_DEBUG_REG4_st_indx_gated_MASK | \
+ SETUP_DEBUG_REG4_clipped_gated_MASK | \
+ SETUP_DEBUG_REG4_dealloc_slot_gated_MASK | \
+ SETUP_DEBUG_REG4_xmajor_gated_MASK | \
+ SETUP_DEBUG_REG4_diamond_rule_gated_MASK | \
+ SETUP_DEBUG_REG4_type_gated_MASK | \
+ SETUP_DEBUG_REG4_fpov_gated_MASK | \
+ SETUP_DEBUG_REG4_pmode_prim_gated_MASK | \
+ SETUP_DEBUG_REG4_event_gated_MASK | \
+ SETUP_DEBUG_REG4_eop_gated_MASK)
+
+#define SETUP_DEBUG_REG4(attr_indx_sort0_gated, null_prim_gated, backfacing_gated, st_indx_gated, clipped_gated, dealloc_slot_gated, xmajor_gated, diamond_rule_gated, type_gated, fpov_gated, pmode_prim_gated, event_gated, eop_gated) \
+ ((attr_indx_sort0_gated << SETUP_DEBUG_REG4_attr_indx_sort0_gated_SHIFT) | \
+ (null_prim_gated << SETUP_DEBUG_REG4_null_prim_gated_SHIFT) | \
+ (backfacing_gated << SETUP_DEBUG_REG4_backfacing_gated_SHIFT) | \
+ (st_indx_gated << SETUP_DEBUG_REG4_st_indx_gated_SHIFT) | \
+ (clipped_gated << SETUP_DEBUG_REG4_clipped_gated_SHIFT) | \
+ (dealloc_slot_gated << SETUP_DEBUG_REG4_dealloc_slot_gated_SHIFT) | \
+ (xmajor_gated << SETUP_DEBUG_REG4_xmajor_gated_SHIFT) | \
+ (diamond_rule_gated << SETUP_DEBUG_REG4_diamond_rule_gated_SHIFT) | \
+ (type_gated << SETUP_DEBUG_REG4_type_gated_SHIFT) | \
+ (fpov_gated << SETUP_DEBUG_REG4_fpov_gated_SHIFT) | \
+ (pmode_prim_gated << SETUP_DEBUG_REG4_pmode_prim_gated_SHIFT) | \
+ (event_gated << SETUP_DEBUG_REG4_event_gated_SHIFT) | \
+ (eop_gated << SETUP_DEBUG_REG4_eop_gated_SHIFT))
+
+#define SETUP_DEBUG_REG4_GET_attr_indx_sort0_gated(setup_debug_reg4) \
+ ((setup_debug_reg4 & SETUP_DEBUG_REG4_attr_indx_sort0_gated_MASK) >> SETUP_DEBUG_REG4_attr_indx_sort0_gated_SHIFT)
+#define SETUP_DEBUG_REG4_GET_null_prim_gated(setup_debug_reg4) \
+ ((setup_debug_reg4 & SETUP_DEBUG_REG4_null_prim_gated_MASK) >> SETUP_DEBUG_REG4_null_prim_gated_SHIFT)
+#define SETUP_DEBUG_REG4_GET_backfacing_gated(setup_debug_reg4) \
+ ((setup_debug_reg4 & SETUP_DEBUG_REG4_backfacing_gated_MASK) >> SETUP_DEBUG_REG4_backfacing_gated_SHIFT)
+#define SETUP_DEBUG_REG4_GET_st_indx_gated(setup_debug_reg4) \
+ ((setup_debug_reg4 & SETUP_DEBUG_REG4_st_indx_gated_MASK) >> SETUP_DEBUG_REG4_st_indx_gated_SHIFT)
+#define SETUP_DEBUG_REG4_GET_clipped_gated(setup_debug_reg4) \
+ ((setup_debug_reg4 & SETUP_DEBUG_REG4_clipped_gated_MASK) >> SETUP_DEBUG_REG4_clipped_gated_SHIFT)
+#define SETUP_DEBUG_REG4_GET_dealloc_slot_gated(setup_debug_reg4) \
+ ((setup_debug_reg4 & SETUP_DEBUG_REG4_dealloc_slot_gated_MASK) >> SETUP_DEBUG_REG4_dealloc_slot_gated_SHIFT)
+#define SETUP_DEBUG_REG4_GET_xmajor_gated(setup_debug_reg4) \
+ ((setup_debug_reg4 & SETUP_DEBUG_REG4_xmajor_gated_MASK) >> SETUP_DEBUG_REG4_xmajor_gated_SHIFT)
+#define SETUP_DEBUG_REG4_GET_diamond_rule_gated(setup_debug_reg4) \
+ ((setup_debug_reg4 & SETUP_DEBUG_REG4_diamond_rule_gated_MASK) >> SETUP_DEBUG_REG4_diamond_rule_gated_SHIFT)
+#define SETUP_DEBUG_REG4_GET_type_gated(setup_debug_reg4) \
+ ((setup_debug_reg4 & SETUP_DEBUG_REG4_type_gated_MASK) >> SETUP_DEBUG_REG4_type_gated_SHIFT)
+#define SETUP_DEBUG_REG4_GET_fpov_gated(setup_debug_reg4) \
+ ((setup_debug_reg4 & SETUP_DEBUG_REG4_fpov_gated_MASK) >> SETUP_DEBUG_REG4_fpov_gated_SHIFT)
+#define SETUP_DEBUG_REG4_GET_pmode_prim_gated(setup_debug_reg4) \
+ ((setup_debug_reg4 & SETUP_DEBUG_REG4_pmode_prim_gated_MASK) >> SETUP_DEBUG_REG4_pmode_prim_gated_SHIFT)
+#define SETUP_DEBUG_REG4_GET_event_gated(setup_debug_reg4) \
+ ((setup_debug_reg4 & SETUP_DEBUG_REG4_event_gated_MASK) >> SETUP_DEBUG_REG4_event_gated_SHIFT)
+#define SETUP_DEBUG_REG4_GET_eop_gated(setup_debug_reg4) \
+ ((setup_debug_reg4 & SETUP_DEBUG_REG4_eop_gated_MASK) >> SETUP_DEBUG_REG4_eop_gated_SHIFT)
+
+#define SETUP_DEBUG_REG4_SET_attr_indx_sort0_gated(setup_debug_reg4_reg, attr_indx_sort0_gated) \
+ setup_debug_reg4_reg = (setup_debug_reg4_reg & ~SETUP_DEBUG_REG4_attr_indx_sort0_gated_MASK) | (attr_indx_sort0_gated << SETUP_DEBUG_REG4_attr_indx_sort0_gated_SHIFT)
+#define SETUP_DEBUG_REG4_SET_null_prim_gated(setup_debug_reg4_reg, null_prim_gated) \
+ setup_debug_reg4_reg = (setup_debug_reg4_reg & ~SETUP_DEBUG_REG4_null_prim_gated_MASK) | (null_prim_gated << SETUP_DEBUG_REG4_null_prim_gated_SHIFT)
+#define SETUP_DEBUG_REG4_SET_backfacing_gated(setup_debug_reg4_reg, backfacing_gated) \
+ setup_debug_reg4_reg = (setup_debug_reg4_reg & ~SETUP_DEBUG_REG4_backfacing_gated_MASK) | (backfacing_gated << SETUP_DEBUG_REG4_backfacing_gated_SHIFT)
+#define SETUP_DEBUG_REG4_SET_st_indx_gated(setup_debug_reg4_reg, st_indx_gated) \
+ setup_debug_reg4_reg = (setup_debug_reg4_reg & ~SETUP_DEBUG_REG4_st_indx_gated_MASK) | (st_indx_gated << SETUP_DEBUG_REG4_st_indx_gated_SHIFT)
+#define SETUP_DEBUG_REG4_SET_clipped_gated(setup_debug_reg4_reg, clipped_gated) \
+ setup_debug_reg4_reg = (setup_debug_reg4_reg & ~SETUP_DEBUG_REG4_clipped_gated_MASK) | (clipped_gated << SETUP_DEBUG_REG4_clipped_gated_SHIFT)
+#define SETUP_DEBUG_REG4_SET_dealloc_slot_gated(setup_debug_reg4_reg, dealloc_slot_gated) \
+ setup_debug_reg4_reg = (setup_debug_reg4_reg & ~SETUP_DEBUG_REG4_dealloc_slot_gated_MASK) | (dealloc_slot_gated << SETUP_DEBUG_REG4_dealloc_slot_gated_SHIFT)
+#define SETUP_DEBUG_REG4_SET_xmajor_gated(setup_debug_reg4_reg, xmajor_gated) \
+ setup_debug_reg4_reg = (setup_debug_reg4_reg & ~SETUP_DEBUG_REG4_xmajor_gated_MASK) | (xmajor_gated << SETUP_DEBUG_REG4_xmajor_gated_SHIFT)
+#define SETUP_DEBUG_REG4_SET_diamond_rule_gated(setup_debug_reg4_reg, diamond_rule_gated) \
+ setup_debug_reg4_reg = (setup_debug_reg4_reg & ~SETUP_DEBUG_REG4_diamond_rule_gated_MASK) | (diamond_rule_gated << SETUP_DEBUG_REG4_diamond_rule_gated_SHIFT)
+#define SETUP_DEBUG_REG4_SET_type_gated(setup_debug_reg4_reg, type_gated) \
+ setup_debug_reg4_reg = (setup_debug_reg4_reg & ~SETUP_DEBUG_REG4_type_gated_MASK) | (type_gated << SETUP_DEBUG_REG4_type_gated_SHIFT)
+#define SETUP_DEBUG_REG4_SET_fpov_gated(setup_debug_reg4_reg, fpov_gated) \
+ setup_debug_reg4_reg = (setup_debug_reg4_reg & ~SETUP_DEBUG_REG4_fpov_gated_MASK) | (fpov_gated << SETUP_DEBUG_REG4_fpov_gated_SHIFT)
+#define SETUP_DEBUG_REG4_SET_pmode_prim_gated(setup_debug_reg4_reg, pmode_prim_gated) \
+ setup_debug_reg4_reg = (setup_debug_reg4_reg & ~SETUP_DEBUG_REG4_pmode_prim_gated_MASK) | (pmode_prim_gated << SETUP_DEBUG_REG4_pmode_prim_gated_SHIFT)
+#define SETUP_DEBUG_REG4_SET_event_gated(setup_debug_reg4_reg, event_gated) \
+ setup_debug_reg4_reg = (setup_debug_reg4_reg & ~SETUP_DEBUG_REG4_event_gated_MASK) | (event_gated << SETUP_DEBUG_REG4_event_gated_SHIFT)
+#define SETUP_DEBUG_REG4_SET_eop_gated(setup_debug_reg4_reg, eop_gated) \
+ setup_debug_reg4_reg = (setup_debug_reg4_reg & ~SETUP_DEBUG_REG4_eop_gated_MASK) | (eop_gated << SETUP_DEBUG_REG4_eop_gated_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _setup_debug_reg4_t {
+ unsigned int attr_indx_sort0_gated : SETUP_DEBUG_REG4_attr_indx_sort0_gated_SIZE;
+ unsigned int null_prim_gated : SETUP_DEBUG_REG4_null_prim_gated_SIZE;
+ unsigned int backfacing_gated : SETUP_DEBUG_REG4_backfacing_gated_SIZE;
+ unsigned int st_indx_gated : SETUP_DEBUG_REG4_st_indx_gated_SIZE;
+ unsigned int clipped_gated : SETUP_DEBUG_REG4_clipped_gated_SIZE;
+ unsigned int dealloc_slot_gated : SETUP_DEBUG_REG4_dealloc_slot_gated_SIZE;
+ unsigned int xmajor_gated : SETUP_DEBUG_REG4_xmajor_gated_SIZE;
+ unsigned int diamond_rule_gated : SETUP_DEBUG_REG4_diamond_rule_gated_SIZE;
+ unsigned int type_gated : SETUP_DEBUG_REG4_type_gated_SIZE;
+ unsigned int fpov_gated : SETUP_DEBUG_REG4_fpov_gated_SIZE;
+ unsigned int pmode_prim_gated : SETUP_DEBUG_REG4_pmode_prim_gated_SIZE;
+ unsigned int event_gated : SETUP_DEBUG_REG4_event_gated_SIZE;
+ unsigned int eop_gated : SETUP_DEBUG_REG4_eop_gated_SIZE;
+ unsigned int : 2;
+ } setup_debug_reg4_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _setup_debug_reg4_t {
+ unsigned int : 2;
+ unsigned int eop_gated : SETUP_DEBUG_REG4_eop_gated_SIZE;
+ unsigned int event_gated : SETUP_DEBUG_REG4_event_gated_SIZE;
+ unsigned int pmode_prim_gated : SETUP_DEBUG_REG4_pmode_prim_gated_SIZE;
+ unsigned int fpov_gated : SETUP_DEBUG_REG4_fpov_gated_SIZE;
+ unsigned int type_gated : SETUP_DEBUG_REG4_type_gated_SIZE;
+ unsigned int diamond_rule_gated : SETUP_DEBUG_REG4_diamond_rule_gated_SIZE;
+ unsigned int xmajor_gated : SETUP_DEBUG_REG4_xmajor_gated_SIZE;
+ unsigned int dealloc_slot_gated : SETUP_DEBUG_REG4_dealloc_slot_gated_SIZE;
+ unsigned int clipped_gated : SETUP_DEBUG_REG4_clipped_gated_SIZE;
+ unsigned int st_indx_gated : SETUP_DEBUG_REG4_st_indx_gated_SIZE;
+ unsigned int backfacing_gated : SETUP_DEBUG_REG4_backfacing_gated_SIZE;
+ unsigned int null_prim_gated : SETUP_DEBUG_REG4_null_prim_gated_SIZE;
+ unsigned int attr_indx_sort0_gated : SETUP_DEBUG_REG4_attr_indx_sort0_gated_SIZE;
+ } setup_debug_reg4_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ setup_debug_reg4_t f;
+} setup_debug_reg4_u;
+
+
+/*
+ * SETUP_DEBUG_REG5 struct
+ */
+
+#define SETUP_DEBUG_REG5_attr_indx_sort2_gated_SIZE 11
+#define SETUP_DEBUG_REG5_attr_indx_sort1_gated_SIZE 11
+#define SETUP_DEBUG_REG5_provoking_vtx_gated_SIZE 2
+#define SETUP_DEBUG_REG5_event_id_gated_SIZE 5
+
+#define SETUP_DEBUG_REG5_attr_indx_sort2_gated_SHIFT 0
+#define SETUP_DEBUG_REG5_attr_indx_sort1_gated_SHIFT 11
+#define SETUP_DEBUG_REG5_provoking_vtx_gated_SHIFT 22
+#define SETUP_DEBUG_REG5_event_id_gated_SHIFT 24
+
+#define SETUP_DEBUG_REG5_attr_indx_sort2_gated_MASK 0x000007ff
+#define SETUP_DEBUG_REG5_attr_indx_sort1_gated_MASK 0x003ff800
+#define SETUP_DEBUG_REG5_provoking_vtx_gated_MASK 0x00c00000
+#define SETUP_DEBUG_REG5_event_id_gated_MASK 0x1f000000
+
+#define SETUP_DEBUG_REG5_MASK \
+ (SETUP_DEBUG_REG5_attr_indx_sort2_gated_MASK | \
+ SETUP_DEBUG_REG5_attr_indx_sort1_gated_MASK | \
+ SETUP_DEBUG_REG5_provoking_vtx_gated_MASK | \
+ SETUP_DEBUG_REG5_event_id_gated_MASK)
+
+#define SETUP_DEBUG_REG5(attr_indx_sort2_gated, attr_indx_sort1_gated, provoking_vtx_gated, event_id_gated) \
+ ((attr_indx_sort2_gated << SETUP_DEBUG_REG5_attr_indx_sort2_gated_SHIFT) | \
+ (attr_indx_sort1_gated << SETUP_DEBUG_REG5_attr_indx_sort1_gated_SHIFT) | \
+ (provoking_vtx_gated << SETUP_DEBUG_REG5_provoking_vtx_gated_SHIFT) | \
+ (event_id_gated << SETUP_DEBUG_REG5_event_id_gated_SHIFT))
+
+#define SETUP_DEBUG_REG5_GET_attr_indx_sort2_gated(setup_debug_reg5) \
+ ((setup_debug_reg5 & SETUP_DEBUG_REG5_attr_indx_sort2_gated_MASK) >> SETUP_DEBUG_REG5_attr_indx_sort2_gated_SHIFT)
+#define SETUP_DEBUG_REG5_GET_attr_indx_sort1_gated(setup_debug_reg5) \
+ ((setup_debug_reg5 & SETUP_DEBUG_REG5_attr_indx_sort1_gated_MASK) >> SETUP_DEBUG_REG5_attr_indx_sort1_gated_SHIFT)
+#define SETUP_DEBUG_REG5_GET_provoking_vtx_gated(setup_debug_reg5) \
+ ((setup_debug_reg5 & SETUP_DEBUG_REG5_provoking_vtx_gated_MASK) >> SETUP_DEBUG_REG5_provoking_vtx_gated_SHIFT)
+#define SETUP_DEBUG_REG5_GET_event_id_gated(setup_debug_reg5) \
+ ((setup_debug_reg5 & SETUP_DEBUG_REG5_event_id_gated_MASK) >> SETUP_DEBUG_REG5_event_id_gated_SHIFT)
+
+#define SETUP_DEBUG_REG5_SET_attr_indx_sort2_gated(setup_debug_reg5_reg, attr_indx_sort2_gated) \
+ setup_debug_reg5_reg = (setup_debug_reg5_reg & ~SETUP_DEBUG_REG5_attr_indx_sort2_gated_MASK) | (attr_indx_sort2_gated << SETUP_DEBUG_REG5_attr_indx_sort2_gated_SHIFT)
+#define SETUP_DEBUG_REG5_SET_attr_indx_sort1_gated(setup_debug_reg5_reg, attr_indx_sort1_gated) \
+ setup_debug_reg5_reg = (setup_debug_reg5_reg & ~SETUP_DEBUG_REG5_attr_indx_sort1_gated_MASK) | (attr_indx_sort1_gated << SETUP_DEBUG_REG5_attr_indx_sort1_gated_SHIFT)
+#define SETUP_DEBUG_REG5_SET_provoking_vtx_gated(setup_debug_reg5_reg, provoking_vtx_gated) \
+ setup_debug_reg5_reg = (setup_debug_reg5_reg & ~SETUP_DEBUG_REG5_provoking_vtx_gated_MASK) | (provoking_vtx_gated << SETUP_DEBUG_REG5_provoking_vtx_gated_SHIFT)
+#define SETUP_DEBUG_REG5_SET_event_id_gated(setup_debug_reg5_reg, event_id_gated) \
+ setup_debug_reg5_reg = (setup_debug_reg5_reg & ~SETUP_DEBUG_REG5_event_id_gated_MASK) | (event_id_gated << SETUP_DEBUG_REG5_event_id_gated_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _setup_debug_reg5_t {
+ unsigned int attr_indx_sort2_gated : SETUP_DEBUG_REG5_attr_indx_sort2_gated_SIZE;
+ unsigned int attr_indx_sort1_gated : SETUP_DEBUG_REG5_attr_indx_sort1_gated_SIZE;
+ unsigned int provoking_vtx_gated : SETUP_DEBUG_REG5_provoking_vtx_gated_SIZE;
+ unsigned int event_id_gated : SETUP_DEBUG_REG5_event_id_gated_SIZE;
+ unsigned int : 3;
+ } setup_debug_reg5_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _setup_debug_reg5_t {
+ unsigned int : 3;
+ unsigned int event_id_gated : SETUP_DEBUG_REG5_event_id_gated_SIZE;
+ unsigned int provoking_vtx_gated : SETUP_DEBUG_REG5_provoking_vtx_gated_SIZE;
+ unsigned int attr_indx_sort1_gated : SETUP_DEBUG_REG5_attr_indx_sort1_gated_SIZE;
+ unsigned int attr_indx_sort2_gated : SETUP_DEBUG_REG5_attr_indx_sort2_gated_SIZE;
+ } setup_debug_reg5_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ setup_debug_reg5_t f;
+} setup_debug_reg5_u;
+
+
+/*
+ * PA_SC_DEBUG_CNTL struct
+ */
+
+#define PA_SC_DEBUG_CNTL_SC_DEBUG_INDX_SIZE 5
+
+#define PA_SC_DEBUG_CNTL_SC_DEBUG_INDX_SHIFT 0
+
+#define PA_SC_DEBUG_CNTL_SC_DEBUG_INDX_MASK 0x0000001f
+
+#define PA_SC_DEBUG_CNTL_MASK \
+ (PA_SC_DEBUG_CNTL_SC_DEBUG_INDX_MASK)
+
+#define PA_SC_DEBUG_CNTL(sc_debug_indx) \
+ ((sc_debug_indx << PA_SC_DEBUG_CNTL_SC_DEBUG_INDX_SHIFT))
+
+#define PA_SC_DEBUG_CNTL_GET_SC_DEBUG_INDX(pa_sc_debug_cntl) \
+ ((pa_sc_debug_cntl & PA_SC_DEBUG_CNTL_SC_DEBUG_INDX_MASK) >> PA_SC_DEBUG_CNTL_SC_DEBUG_INDX_SHIFT)
+
+#define PA_SC_DEBUG_CNTL_SET_SC_DEBUG_INDX(pa_sc_debug_cntl_reg, sc_debug_indx) \
+ pa_sc_debug_cntl_reg = (pa_sc_debug_cntl_reg & ~PA_SC_DEBUG_CNTL_SC_DEBUG_INDX_MASK) | (sc_debug_indx << PA_SC_DEBUG_CNTL_SC_DEBUG_INDX_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_debug_cntl_t {
+ unsigned int sc_debug_indx : PA_SC_DEBUG_CNTL_SC_DEBUG_INDX_SIZE;
+ unsigned int : 27;
+ } pa_sc_debug_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_debug_cntl_t {
+ unsigned int : 27;
+ unsigned int sc_debug_indx : PA_SC_DEBUG_CNTL_SC_DEBUG_INDX_SIZE;
+ } pa_sc_debug_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_debug_cntl_t f;
+} pa_sc_debug_cntl_u;
+
+
+/*
+ * PA_SC_DEBUG_DATA struct
+ */
+
+#define PA_SC_DEBUG_DATA_DATA_SIZE 32
+
+#define PA_SC_DEBUG_DATA_DATA_SHIFT 0
+
+#define PA_SC_DEBUG_DATA_DATA_MASK 0xffffffff
+
+#define PA_SC_DEBUG_DATA_MASK \
+ (PA_SC_DEBUG_DATA_DATA_MASK)
+
+#define PA_SC_DEBUG_DATA(data) \
+ ((data << PA_SC_DEBUG_DATA_DATA_SHIFT))
+
+#define PA_SC_DEBUG_DATA_GET_DATA(pa_sc_debug_data) \
+ ((pa_sc_debug_data & PA_SC_DEBUG_DATA_DATA_MASK) >> PA_SC_DEBUG_DATA_DATA_SHIFT)
+
+#define PA_SC_DEBUG_DATA_SET_DATA(pa_sc_debug_data_reg, data) \
+ pa_sc_debug_data_reg = (pa_sc_debug_data_reg & ~PA_SC_DEBUG_DATA_DATA_MASK) | (data << PA_SC_DEBUG_DATA_DATA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_debug_data_t {
+ unsigned int data : PA_SC_DEBUG_DATA_DATA_SIZE;
+ } pa_sc_debug_data_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_debug_data_t {
+ unsigned int data : PA_SC_DEBUG_DATA_DATA_SIZE;
+ } pa_sc_debug_data_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_debug_data_t f;
+} pa_sc_debug_data_u;
+
+
+/*
+ * SC_DEBUG_0 struct
+ */
+
+#define SC_DEBUG_0_pa_freeze_b1_SIZE 1
+#define SC_DEBUG_0_pa_sc_valid_SIZE 1
+#define SC_DEBUG_0_pa_sc_phase_SIZE 3
+#define SC_DEBUG_0_cntx_cnt_SIZE 7
+#define SC_DEBUG_0_decr_cntx_cnt_SIZE 1
+#define SC_DEBUG_0_incr_cntx_cnt_SIZE 1
+#define SC_DEBUG_0_trigger_SIZE 1
+
+#define SC_DEBUG_0_pa_freeze_b1_SHIFT 0
+#define SC_DEBUG_0_pa_sc_valid_SHIFT 1
+#define SC_DEBUG_0_pa_sc_phase_SHIFT 2
+#define SC_DEBUG_0_cntx_cnt_SHIFT 5
+#define SC_DEBUG_0_decr_cntx_cnt_SHIFT 12
+#define SC_DEBUG_0_incr_cntx_cnt_SHIFT 13
+#define SC_DEBUG_0_trigger_SHIFT 31
+
+#define SC_DEBUG_0_pa_freeze_b1_MASK 0x00000001
+#define SC_DEBUG_0_pa_sc_valid_MASK 0x00000002
+#define SC_DEBUG_0_pa_sc_phase_MASK 0x0000001c
+#define SC_DEBUG_0_cntx_cnt_MASK 0x00000fe0
+#define SC_DEBUG_0_decr_cntx_cnt_MASK 0x00001000
+#define SC_DEBUG_0_incr_cntx_cnt_MASK 0x00002000
+#define SC_DEBUG_0_trigger_MASK 0x80000000
+
+#define SC_DEBUG_0_MASK \
+ (SC_DEBUG_0_pa_freeze_b1_MASK | \
+ SC_DEBUG_0_pa_sc_valid_MASK | \
+ SC_DEBUG_0_pa_sc_phase_MASK | \
+ SC_DEBUG_0_cntx_cnt_MASK | \
+ SC_DEBUG_0_decr_cntx_cnt_MASK | \
+ SC_DEBUG_0_incr_cntx_cnt_MASK | \
+ SC_DEBUG_0_trigger_MASK)
+
+#define SC_DEBUG_0(pa_freeze_b1, pa_sc_valid, pa_sc_phase, cntx_cnt, decr_cntx_cnt, incr_cntx_cnt, trigger) \
+ ((pa_freeze_b1 << SC_DEBUG_0_pa_freeze_b1_SHIFT) | \
+ (pa_sc_valid << SC_DEBUG_0_pa_sc_valid_SHIFT) | \
+ (pa_sc_phase << SC_DEBUG_0_pa_sc_phase_SHIFT) | \
+ (cntx_cnt << SC_DEBUG_0_cntx_cnt_SHIFT) | \
+ (decr_cntx_cnt << SC_DEBUG_0_decr_cntx_cnt_SHIFT) | \
+ (incr_cntx_cnt << SC_DEBUG_0_incr_cntx_cnt_SHIFT) | \
+ (trigger << SC_DEBUG_0_trigger_SHIFT))
+
+#define SC_DEBUG_0_GET_pa_freeze_b1(sc_debug_0) \
+ ((sc_debug_0 & SC_DEBUG_0_pa_freeze_b1_MASK) >> SC_DEBUG_0_pa_freeze_b1_SHIFT)
+#define SC_DEBUG_0_GET_pa_sc_valid(sc_debug_0) \
+ ((sc_debug_0 & SC_DEBUG_0_pa_sc_valid_MASK) >> SC_DEBUG_0_pa_sc_valid_SHIFT)
+#define SC_DEBUG_0_GET_pa_sc_phase(sc_debug_0) \
+ ((sc_debug_0 & SC_DEBUG_0_pa_sc_phase_MASK) >> SC_DEBUG_0_pa_sc_phase_SHIFT)
+#define SC_DEBUG_0_GET_cntx_cnt(sc_debug_0) \
+ ((sc_debug_0 & SC_DEBUG_0_cntx_cnt_MASK) >> SC_DEBUG_0_cntx_cnt_SHIFT)
+#define SC_DEBUG_0_GET_decr_cntx_cnt(sc_debug_0) \
+ ((sc_debug_0 & SC_DEBUG_0_decr_cntx_cnt_MASK) >> SC_DEBUG_0_decr_cntx_cnt_SHIFT)
+#define SC_DEBUG_0_GET_incr_cntx_cnt(sc_debug_0) \
+ ((sc_debug_0 & SC_DEBUG_0_incr_cntx_cnt_MASK) >> SC_DEBUG_0_incr_cntx_cnt_SHIFT)
+#define SC_DEBUG_0_GET_trigger(sc_debug_0) \
+ ((sc_debug_0 & SC_DEBUG_0_trigger_MASK) >> SC_DEBUG_0_trigger_SHIFT)
+
+#define SC_DEBUG_0_SET_pa_freeze_b1(sc_debug_0_reg, pa_freeze_b1) \
+ sc_debug_0_reg = (sc_debug_0_reg & ~SC_DEBUG_0_pa_freeze_b1_MASK) | (pa_freeze_b1 << SC_DEBUG_0_pa_freeze_b1_SHIFT)
+#define SC_DEBUG_0_SET_pa_sc_valid(sc_debug_0_reg, pa_sc_valid) \
+ sc_debug_0_reg = (sc_debug_0_reg & ~SC_DEBUG_0_pa_sc_valid_MASK) | (pa_sc_valid << SC_DEBUG_0_pa_sc_valid_SHIFT)
+#define SC_DEBUG_0_SET_pa_sc_phase(sc_debug_0_reg, pa_sc_phase) \
+ sc_debug_0_reg = (sc_debug_0_reg & ~SC_DEBUG_0_pa_sc_phase_MASK) | (pa_sc_phase << SC_DEBUG_0_pa_sc_phase_SHIFT)
+#define SC_DEBUG_0_SET_cntx_cnt(sc_debug_0_reg, cntx_cnt) \
+ sc_debug_0_reg = (sc_debug_0_reg & ~SC_DEBUG_0_cntx_cnt_MASK) | (cntx_cnt << SC_DEBUG_0_cntx_cnt_SHIFT)
+#define SC_DEBUG_0_SET_decr_cntx_cnt(sc_debug_0_reg, decr_cntx_cnt) \
+ sc_debug_0_reg = (sc_debug_0_reg & ~SC_DEBUG_0_decr_cntx_cnt_MASK) | (decr_cntx_cnt << SC_DEBUG_0_decr_cntx_cnt_SHIFT)
+#define SC_DEBUG_0_SET_incr_cntx_cnt(sc_debug_0_reg, incr_cntx_cnt) \
+ sc_debug_0_reg = (sc_debug_0_reg & ~SC_DEBUG_0_incr_cntx_cnt_MASK) | (incr_cntx_cnt << SC_DEBUG_0_incr_cntx_cnt_SHIFT)
+#define SC_DEBUG_0_SET_trigger(sc_debug_0_reg, trigger) \
+ sc_debug_0_reg = (sc_debug_0_reg & ~SC_DEBUG_0_trigger_MASK) | (trigger << SC_DEBUG_0_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sc_debug_0_t {
+ unsigned int pa_freeze_b1 : SC_DEBUG_0_pa_freeze_b1_SIZE;
+ unsigned int pa_sc_valid : SC_DEBUG_0_pa_sc_valid_SIZE;
+ unsigned int pa_sc_phase : SC_DEBUG_0_pa_sc_phase_SIZE;
+ unsigned int cntx_cnt : SC_DEBUG_0_cntx_cnt_SIZE;
+ unsigned int decr_cntx_cnt : SC_DEBUG_0_decr_cntx_cnt_SIZE;
+ unsigned int incr_cntx_cnt : SC_DEBUG_0_incr_cntx_cnt_SIZE;
+ unsigned int : 17;
+ unsigned int trigger : SC_DEBUG_0_trigger_SIZE;
+ } sc_debug_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sc_debug_0_t {
+ unsigned int trigger : SC_DEBUG_0_trigger_SIZE;
+ unsigned int : 17;
+ unsigned int incr_cntx_cnt : SC_DEBUG_0_incr_cntx_cnt_SIZE;
+ unsigned int decr_cntx_cnt : SC_DEBUG_0_decr_cntx_cnt_SIZE;
+ unsigned int cntx_cnt : SC_DEBUG_0_cntx_cnt_SIZE;
+ unsigned int pa_sc_phase : SC_DEBUG_0_pa_sc_phase_SIZE;
+ unsigned int pa_sc_valid : SC_DEBUG_0_pa_sc_valid_SIZE;
+ unsigned int pa_freeze_b1 : SC_DEBUG_0_pa_freeze_b1_SIZE;
+ } sc_debug_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sc_debug_0_t f;
+} sc_debug_0_u;
+
+
+/*
+ * SC_DEBUG_1 struct
+ */
+
+#define SC_DEBUG_1_em_state_SIZE 3
+#define SC_DEBUG_1_em1_data_ready_SIZE 1
+#define SC_DEBUG_1_em2_data_ready_SIZE 1
+#define SC_DEBUG_1_move_em1_to_em2_SIZE 1
+#define SC_DEBUG_1_ef_data_ready_SIZE 1
+#define SC_DEBUG_1_ef_state_SIZE 2
+#define SC_DEBUG_1_pipe_valid_SIZE 1
+#define SC_DEBUG_1_trigger_SIZE 1
+
+#define SC_DEBUG_1_em_state_SHIFT 0
+#define SC_DEBUG_1_em1_data_ready_SHIFT 3
+#define SC_DEBUG_1_em2_data_ready_SHIFT 4
+#define SC_DEBUG_1_move_em1_to_em2_SHIFT 5
+#define SC_DEBUG_1_ef_data_ready_SHIFT 6
+#define SC_DEBUG_1_ef_state_SHIFT 7
+#define SC_DEBUG_1_pipe_valid_SHIFT 9
+#define SC_DEBUG_1_trigger_SHIFT 31
+
+#define SC_DEBUG_1_em_state_MASK 0x00000007
+#define SC_DEBUG_1_em1_data_ready_MASK 0x00000008
+#define SC_DEBUG_1_em2_data_ready_MASK 0x00000010
+#define SC_DEBUG_1_move_em1_to_em2_MASK 0x00000020
+#define SC_DEBUG_1_ef_data_ready_MASK 0x00000040
+#define SC_DEBUG_1_ef_state_MASK 0x00000180
+#define SC_DEBUG_1_pipe_valid_MASK 0x00000200
+#define SC_DEBUG_1_trigger_MASK 0x80000000
+
+#define SC_DEBUG_1_MASK \
+ (SC_DEBUG_1_em_state_MASK | \
+ SC_DEBUG_1_em1_data_ready_MASK | \
+ SC_DEBUG_1_em2_data_ready_MASK | \
+ SC_DEBUG_1_move_em1_to_em2_MASK | \
+ SC_DEBUG_1_ef_data_ready_MASK | \
+ SC_DEBUG_1_ef_state_MASK | \
+ SC_DEBUG_1_pipe_valid_MASK | \
+ SC_DEBUG_1_trigger_MASK)
+
+#define SC_DEBUG_1(em_state, em1_data_ready, em2_data_ready, move_em1_to_em2, ef_data_ready, ef_state, pipe_valid, trigger) \
+ ((em_state << SC_DEBUG_1_em_state_SHIFT) | \
+ (em1_data_ready << SC_DEBUG_1_em1_data_ready_SHIFT) | \
+ (em2_data_ready << SC_DEBUG_1_em2_data_ready_SHIFT) | \
+ (move_em1_to_em2 << SC_DEBUG_1_move_em1_to_em2_SHIFT) | \
+ (ef_data_ready << SC_DEBUG_1_ef_data_ready_SHIFT) | \
+ (ef_state << SC_DEBUG_1_ef_state_SHIFT) | \
+ (pipe_valid << SC_DEBUG_1_pipe_valid_SHIFT) | \
+ (trigger << SC_DEBUG_1_trigger_SHIFT))
+
+#define SC_DEBUG_1_GET_em_state(sc_debug_1) \
+ ((sc_debug_1 & SC_DEBUG_1_em_state_MASK) >> SC_DEBUG_1_em_state_SHIFT)
+#define SC_DEBUG_1_GET_em1_data_ready(sc_debug_1) \
+ ((sc_debug_1 & SC_DEBUG_1_em1_data_ready_MASK) >> SC_DEBUG_1_em1_data_ready_SHIFT)
+#define SC_DEBUG_1_GET_em2_data_ready(sc_debug_1) \
+ ((sc_debug_1 & SC_DEBUG_1_em2_data_ready_MASK) >> SC_DEBUG_1_em2_data_ready_SHIFT)
+#define SC_DEBUG_1_GET_move_em1_to_em2(sc_debug_1) \
+ ((sc_debug_1 & SC_DEBUG_1_move_em1_to_em2_MASK) >> SC_DEBUG_1_move_em1_to_em2_SHIFT)
+#define SC_DEBUG_1_GET_ef_data_ready(sc_debug_1) \
+ ((sc_debug_1 & SC_DEBUG_1_ef_data_ready_MASK) >> SC_DEBUG_1_ef_data_ready_SHIFT)
+#define SC_DEBUG_1_GET_ef_state(sc_debug_1) \
+ ((sc_debug_1 & SC_DEBUG_1_ef_state_MASK) >> SC_DEBUG_1_ef_state_SHIFT)
+#define SC_DEBUG_1_GET_pipe_valid(sc_debug_1) \
+ ((sc_debug_1 & SC_DEBUG_1_pipe_valid_MASK) >> SC_DEBUG_1_pipe_valid_SHIFT)
+#define SC_DEBUG_1_GET_trigger(sc_debug_1) \
+ ((sc_debug_1 & SC_DEBUG_1_trigger_MASK) >> SC_DEBUG_1_trigger_SHIFT)
+
+#define SC_DEBUG_1_SET_em_state(sc_debug_1_reg, em_state) \
+ sc_debug_1_reg = (sc_debug_1_reg & ~SC_DEBUG_1_em_state_MASK) | (em_state << SC_DEBUG_1_em_state_SHIFT)
+#define SC_DEBUG_1_SET_em1_data_ready(sc_debug_1_reg, em1_data_ready) \
+ sc_debug_1_reg = (sc_debug_1_reg & ~SC_DEBUG_1_em1_data_ready_MASK) | (em1_data_ready << SC_DEBUG_1_em1_data_ready_SHIFT)
+#define SC_DEBUG_1_SET_em2_data_ready(sc_debug_1_reg, em2_data_ready) \
+ sc_debug_1_reg = (sc_debug_1_reg & ~SC_DEBUG_1_em2_data_ready_MASK) | (em2_data_ready << SC_DEBUG_1_em2_data_ready_SHIFT)
+#define SC_DEBUG_1_SET_move_em1_to_em2(sc_debug_1_reg, move_em1_to_em2) \
+ sc_debug_1_reg = (sc_debug_1_reg & ~SC_DEBUG_1_move_em1_to_em2_MASK) | (move_em1_to_em2 << SC_DEBUG_1_move_em1_to_em2_SHIFT)
+#define SC_DEBUG_1_SET_ef_data_ready(sc_debug_1_reg, ef_data_ready) \
+ sc_debug_1_reg = (sc_debug_1_reg & ~SC_DEBUG_1_ef_data_ready_MASK) | (ef_data_ready << SC_DEBUG_1_ef_data_ready_SHIFT)
+#define SC_DEBUG_1_SET_ef_state(sc_debug_1_reg, ef_state) \
+ sc_debug_1_reg = (sc_debug_1_reg & ~SC_DEBUG_1_ef_state_MASK) | (ef_state << SC_DEBUG_1_ef_state_SHIFT)
+#define SC_DEBUG_1_SET_pipe_valid(sc_debug_1_reg, pipe_valid) \
+ sc_debug_1_reg = (sc_debug_1_reg & ~SC_DEBUG_1_pipe_valid_MASK) | (pipe_valid << SC_DEBUG_1_pipe_valid_SHIFT)
+#define SC_DEBUG_1_SET_trigger(sc_debug_1_reg, trigger) \
+ sc_debug_1_reg = (sc_debug_1_reg & ~SC_DEBUG_1_trigger_MASK) | (trigger << SC_DEBUG_1_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sc_debug_1_t {
+ unsigned int em_state : SC_DEBUG_1_em_state_SIZE;
+ unsigned int em1_data_ready : SC_DEBUG_1_em1_data_ready_SIZE;
+ unsigned int em2_data_ready : SC_DEBUG_1_em2_data_ready_SIZE;
+ unsigned int move_em1_to_em2 : SC_DEBUG_1_move_em1_to_em2_SIZE;
+ unsigned int ef_data_ready : SC_DEBUG_1_ef_data_ready_SIZE;
+ unsigned int ef_state : SC_DEBUG_1_ef_state_SIZE;
+ unsigned int pipe_valid : SC_DEBUG_1_pipe_valid_SIZE;
+ unsigned int : 21;
+ unsigned int trigger : SC_DEBUG_1_trigger_SIZE;
+ } sc_debug_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sc_debug_1_t {
+ unsigned int trigger : SC_DEBUG_1_trigger_SIZE;
+ unsigned int : 21;
+ unsigned int pipe_valid : SC_DEBUG_1_pipe_valid_SIZE;
+ unsigned int ef_state : SC_DEBUG_1_ef_state_SIZE;
+ unsigned int ef_data_ready : SC_DEBUG_1_ef_data_ready_SIZE;
+ unsigned int move_em1_to_em2 : SC_DEBUG_1_move_em1_to_em2_SIZE;
+ unsigned int em2_data_ready : SC_DEBUG_1_em2_data_ready_SIZE;
+ unsigned int em1_data_ready : SC_DEBUG_1_em1_data_ready_SIZE;
+ unsigned int em_state : SC_DEBUG_1_em_state_SIZE;
+ } sc_debug_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sc_debug_1_t f;
+} sc_debug_1_u;
+
+
+/*
+ * SC_DEBUG_2 struct
+ */
+
+#define SC_DEBUG_2_rc_rtr_dly_SIZE 1
+#define SC_DEBUG_2_qmask_ff_alm_full_d1_SIZE 1
+#define SC_DEBUG_2_pipe_freeze_b_SIZE 1
+#define SC_DEBUG_2_prim_rts_SIZE 1
+#define SC_DEBUG_2_next_prim_rts_dly_SIZE 1
+#define SC_DEBUG_2_next_prim_rtr_dly_SIZE 1
+#define SC_DEBUG_2_pre_stage1_rts_d1_SIZE 1
+#define SC_DEBUG_2_stage0_rts_SIZE 1
+#define SC_DEBUG_2_phase_rts_dly_SIZE 1
+#define SC_DEBUG_2_end_of_prim_s1_dly_SIZE 1
+#define SC_DEBUG_2_pass_empty_prim_s1_SIZE 1
+#define SC_DEBUG_2_event_id_s1_SIZE 5
+#define SC_DEBUG_2_event_s1_SIZE 1
+#define SC_DEBUG_2_trigger_SIZE 1
+
+#define SC_DEBUG_2_rc_rtr_dly_SHIFT 0
+#define SC_DEBUG_2_qmask_ff_alm_full_d1_SHIFT 1
+#define SC_DEBUG_2_pipe_freeze_b_SHIFT 3
+#define SC_DEBUG_2_prim_rts_SHIFT 4
+#define SC_DEBUG_2_next_prim_rts_dly_SHIFT 5
+#define SC_DEBUG_2_next_prim_rtr_dly_SHIFT 6
+#define SC_DEBUG_2_pre_stage1_rts_d1_SHIFT 7
+#define SC_DEBUG_2_stage0_rts_SHIFT 8
+#define SC_DEBUG_2_phase_rts_dly_SHIFT 9
+#define SC_DEBUG_2_end_of_prim_s1_dly_SHIFT 15
+#define SC_DEBUG_2_pass_empty_prim_s1_SHIFT 16
+#define SC_DEBUG_2_event_id_s1_SHIFT 17
+#define SC_DEBUG_2_event_s1_SHIFT 22
+#define SC_DEBUG_2_trigger_SHIFT 31
+
+#define SC_DEBUG_2_rc_rtr_dly_MASK 0x00000001
+#define SC_DEBUG_2_qmask_ff_alm_full_d1_MASK 0x00000002
+#define SC_DEBUG_2_pipe_freeze_b_MASK 0x00000008
+#define SC_DEBUG_2_prim_rts_MASK 0x00000010
+#define SC_DEBUG_2_next_prim_rts_dly_MASK 0x00000020
+#define SC_DEBUG_2_next_prim_rtr_dly_MASK 0x00000040
+#define SC_DEBUG_2_pre_stage1_rts_d1_MASK 0x00000080
+#define SC_DEBUG_2_stage0_rts_MASK 0x00000100
+#define SC_DEBUG_2_phase_rts_dly_MASK 0x00000200
+#define SC_DEBUG_2_end_of_prim_s1_dly_MASK 0x00008000
+#define SC_DEBUG_2_pass_empty_prim_s1_MASK 0x00010000
+#define SC_DEBUG_2_event_id_s1_MASK 0x003e0000
+#define SC_DEBUG_2_event_s1_MASK 0x00400000
+#define SC_DEBUG_2_trigger_MASK 0x80000000
+
+#define SC_DEBUG_2_MASK \
+ (SC_DEBUG_2_rc_rtr_dly_MASK | \
+ SC_DEBUG_2_qmask_ff_alm_full_d1_MASK | \
+ SC_DEBUG_2_pipe_freeze_b_MASK | \
+ SC_DEBUG_2_prim_rts_MASK | \
+ SC_DEBUG_2_next_prim_rts_dly_MASK | \
+ SC_DEBUG_2_next_prim_rtr_dly_MASK | \
+ SC_DEBUG_2_pre_stage1_rts_d1_MASK | \
+ SC_DEBUG_2_stage0_rts_MASK | \
+ SC_DEBUG_2_phase_rts_dly_MASK | \
+ SC_DEBUG_2_end_of_prim_s1_dly_MASK | \
+ SC_DEBUG_2_pass_empty_prim_s1_MASK | \
+ SC_DEBUG_2_event_id_s1_MASK | \
+ SC_DEBUG_2_event_s1_MASK | \
+ SC_DEBUG_2_trigger_MASK)
+
+#define SC_DEBUG_2(rc_rtr_dly, qmask_ff_alm_full_d1, pipe_freeze_b, prim_rts, next_prim_rts_dly, next_prim_rtr_dly, pre_stage1_rts_d1, stage0_rts, phase_rts_dly, end_of_prim_s1_dly, pass_empty_prim_s1, event_id_s1, event_s1, trigger) \
+ ((rc_rtr_dly << SC_DEBUG_2_rc_rtr_dly_SHIFT) | \
+ (qmask_ff_alm_full_d1 << SC_DEBUG_2_qmask_ff_alm_full_d1_SHIFT) | \
+ (pipe_freeze_b << SC_DEBUG_2_pipe_freeze_b_SHIFT) | \
+ (prim_rts << SC_DEBUG_2_prim_rts_SHIFT) | \
+ (next_prim_rts_dly << SC_DEBUG_2_next_prim_rts_dly_SHIFT) | \
+ (next_prim_rtr_dly << SC_DEBUG_2_next_prim_rtr_dly_SHIFT) | \
+ (pre_stage1_rts_d1 << SC_DEBUG_2_pre_stage1_rts_d1_SHIFT) | \
+ (stage0_rts << SC_DEBUG_2_stage0_rts_SHIFT) | \
+ (phase_rts_dly << SC_DEBUG_2_phase_rts_dly_SHIFT) | \
+ (end_of_prim_s1_dly << SC_DEBUG_2_end_of_prim_s1_dly_SHIFT) | \
+ (pass_empty_prim_s1 << SC_DEBUG_2_pass_empty_prim_s1_SHIFT) | \
+ (event_id_s1 << SC_DEBUG_2_event_id_s1_SHIFT) | \
+ (event_s1 << SC_DEBUG_2_event_s1_SHIFT) | \
+ (trigger << SC_DEBUG_2_trigger_SHIFT))
+
+#define SC_DEBUG_2_GET_rc_rtr_dly(sc_debug_2) \
+ ((sc_debug_2 & SC_DEBUG_2_rc_rtr_dly_MASK) >> SC_DEBUG_2_rc_rtr_dly_SHIFT)
+#define SC_DEBUG_2_GET_qmask_ff_alm_full_d1(sc_debug_2) \
+ ((sc_debug_2 & SC_DEBUG_2_qmask_ff_alm_full_d1_MASK) >> SC_DEBUG_2_qmask_ff_alm_full_d1_SHIFT)
+#define SC_DEBUG_2_GET_pipe_freeze_b(sc_debug_2) \
+ ((sc_debug_2 & SC_DEBUG_2_pipe_freeze_b_MASK) >> SC_DEBUG_2_pipe_freeze_b_SHIFT)
+#define SC_DEBUG_2_GET_prim_rts(sc_debug_2) \
+ ((sc_debug_2 & SC_DEBUG_2_prim_rts_MASK) >> SC_DEBUG_2_prim_rts_SHIFT)
+#define SC_DEBUG_2_GET_next_prim_rts_dly(sc_debug_2) \
+ ((sc_debug_2 & SC_DEBUG_2_next_prim_rts_dly_MASK) >> SC_DEBUG_2_next_prim_rts_dly_SHIFT)
+#define SC_DEBUG_2_GET_next_prim_rtr_dly(sc_debug_2) \
+ ((sc_debug_2 & SC_DEBUG_2_next_prim_rtr_dly_MASK) >> SC_DEBUG_2_next_prim_rtr_dly_SHIFT)
+#define SC_DEBUG_2_GET_pre_stage1_rts_d1(sc_debug_2) \
+ ((sc_debug_2 & SC_DEBUG_2_pre_stage1_rts_d1_MASK) >> SC_DEBUG_2_pre_stage1_rts_d1_SHIFT)
+#define SC_DEBUG_2_GET_stage0_rts(sc_debug_2) \
+ ((sc_debug_2 & SC_DEBUG_2_stage0_rts_MASK) >> SC_DEBUG_2_stage0_rts_SHIFT)
+#define SC_DEBUG_2_GET_phase_rts_dly(sc_debug_2) \
+ ((sc_debug_2 & SC_DEBUG_2_phase_rts_dly_MASK) >> SC_DEBUG_2_phase_rts_dly_SHIFT)
+#define SC_DEBUG_2_GET_end_of_prim_s1_dly(sc_debug_2) \
+ ((sc_debug_2 & SC_DEBUG_2_end_of_prim_s1_dly_MASK) >> SC_DEBUG_2_end_of_prim_s1_dly_SHIFT)
+#define SC_DEBUG_2_GET_pass_empty_prim_s1(sc_debug_2) \
+ ((sc_debug_2 & SC_DEBUG_2_pass_empty_prim_s1_MASK) >> SC_DEBUG_2_pass_empty_prim_s1_SHIFT)
+#define SC_DEBUG_2_GET_event_id_s1(sc_debug_2) \
+ ((sc_debug_2 & SC_DEBUG_2_event_id_s1_MASK) >> SC_DEBUG_2_event_id_s1_SHIFT)
+#define SC_DEBUG_2_GET_event_s1(sc_debug_2) \
+ ((sc_debug_2 & SC_DEBUG_2_event_s1_MASK) >> SC_DEBUG_2_event_s1_SHIFT)
+#define SC_DEBUG_2_GET_trigger(sc_debug_2) \
+ ((sc_debug_2 & SC_DEBUG_2_trigger_MASK) >> SC_DEBUG_2_trigger_SHIFT)
+
+#define SC_DEBUG_2_SET_rc_rtr_dly(sc_debug_2_reg, rc_rtr_dly) \
+ sc_debug_2_reg = (sc_debug_2_reg & ~SC_DEBUG_2_rc_rtr_dly_MASK) | (rc_rtr_dly << SC_DEBUG_2_rc_rtr_dly_SHIFT)
+#define SC_DEBUG_2_SET_qmask_ff_alm_full_d1(sc_debug_2_reg, qmask_ff_alm_full_d1) \
+ sc_debug_2_reg = (sc_debug_2_reg & ~SC_DEBUG_2_qmask_ff_alm_full_d1_MASK) | (qmask_ff_alm_full_d1 << SC_DEBUG_2_qmask_ff_alm_full_d1_SHIFT)
+#define SC_DEBUG_2_SET_pipe_freeze_b(sc_debug_2_reg, pipe_freeze_b) \
+ sc_debug_2_reg = (sc_debug_2_reg & ~SC_DEBUG_2_pipe_freeze_b_MASK) | (pipe_freeze_b << SC_DEBUG_2_pipe_freeze_b_SHIFT)
+#define SC_DEBUG_2_SET_prim_rts(sc_debug_2_reg, prim_rts) \
+ sc_debug_2_reg = (sc_debug_2_reg & ~SC_DEBUG_2_prim_rts_MASK) | (prim_rts << SC_DEBUG_2_prim_rts_SHIFT)
+#define SC_DEBUG_2_SET_next_prim_rts_dly(sc_debug_2_reg, next_prim_rts_dly) \
+ sc_debug_2_reg = (sc_debug_2_reg & ~SC_DEBUG_2_next_prim_rts_dly_MASK) | (next_prim_rts_dly << SC_DEBUG_2_next_prim_rts_dly_SHIFT)
+#define SC_DEBUG_2_SET_next_prim_rtr_dly(sc_debug_2_reg, next_prim_rtr_dly) \
+ sc_debug_2_reg = (sc_debug_2_reg & ~SC_DEBUG_2_next_prim_rtr_dly_MASK) | (next_prim_rtr_dly << SC_DEBUG_2_next_prim_rtr_dly_SHIFT)
+#define SC_DEBUG_2_SET_pre_stage1_rts_d1(sc_debug_2_reg, pre_stage1_rts_d1) \
+ sc_debug_2_reg = (sc_debug_2_reg & ~SC_DEBUG_2_pre_stage1_rts_d1_MASK) | (pre_stage1_rts_d1 << SC_DEBUG_2_pre_stage1_rts_d1_SHIFT)
+#define SC_DEBUG_2_SET_stage0_rts(sc_debug_2_reg, stage0_rts) \
+ sc_debug_2_reg = (sc_debug_2_reg & ~SC_DEBUG_2_stage0_rts_MASK) | (stage0_rts << SC_DEBUG_2_stage0_rts_SHIFT)
+#define SC_DEBUG_2_SET_phase_rts_dly(sc_debug_2_reg, phase_rts_dly) \
+ sc_debug_2_reg = (sc_debug_2_reg & ~SC_DEBUG_2_phase_rts_dly_MASK) | (phase_rts_dly << SC_DEBUG_2_phase_rts_dly_SHIFT)
+#define SC_DEBUG_2_SET_end_of_prim_s1_dly(sc_debug_2_reg, end_of_prim_s1_dly) \
+ sc_debug_2_reg = (sc_debug_2_reg & ~SC_DEBUG_2_end_of_prim_s1_dly_MASK) | (end_of_prim_s1_dly << SC_DEBUG_2_end_of_prim_s1_dly_SHIFT)
+#define SC_DEBUG_2_SET_pass_empty_prim_s1(sc_debug_2_reg, pass_empty_prim_s1) \
+ sc_debug_2_reg = (sc_debug_2_reg & ~SC_DEBUG_2_pass_empty_prim_s1_MASK) | (pass_empty_prim_s1 << SC_DEBUG_2_pass_empty_prim_s1_SHIFT)
+#define SC_DEBUG_2_SET_event_id_s1(sc_debug_2_reg, event_id_s1) \
+ sc_debug_2_reg = (sc_debug_2_reg & ~SC_DEBUG_2_event_id_s1_MASK) | (event_id_s1 << SC_DEBUG_2_event_id_s1_SHIFT)
+#define SC_DEBUG_2_SET_event_s1(sc_debug_2_reg, event_s1) \
+ sc_debug_2_reg = (sc_debug_2_reg & ~SC_DEBUG_2_event_s1_MASK) | (event_s1 << SC_DEBUG_2_event_s1_SHIFT)
+#define SC_DEBUG_2_SET_trigger(sc_debug_2_reg, trigger) \
+ sc_debug_2_reg = (sc_debug_2_reg & ~SC_DEBUG_2_trigger_MASK) | (trigger << SC_DEBUG_2_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sc_debug_2_t {
+ unsigned int rc_rtr_dly : SC_DEBUG_2_rc_rtr_dly_SIZE;
+ unsigned int qmask_ff_alm_full_d1 : SC_DEBUG_2_qmask_ff_alm_full_d1_SIZE;
+ unsigned int : 1;
+ unsigned int pipe_freeze_b : SC_DEBUG_2_pipe_freeze_b_SIZE;
+ unsigned int prim_rts : SC_DEBUG_2_prim_rts_SIZE;
+ unsigned int next_prim_rts_dly : SC_DEBUG_2_next_prim_rts_dly_SIZE;
+ unsigned int next_prim_rtr_dly : SC_DEBUG_2_next_prim_rtr_dly_SIZE;
+ unsigned int pre_stage1_rts_d1 : SC_DEBUG_2_pre_stage1_rts_d1_SIZE;
+ unsigned int stage0_rts : SC_DEBUG_2_stage0_rts_SIZE;
+ unsigned int phase_rts_dly : SC_DEBUG_2_phase_rts_dly_SIZE;
+ unsigned int : 5;
+ unsigned int end_of_prim_s1_dly : SC_DEBUG_2_end_of_prim_s1_dly_SIZE;
+ unsigned int pass_empty_prim_s1 : SC_DEBUG_2_pass_empty_prim_s1_SIZE;
+ unsigned int event_id_s1 : SC_DEBUG_2_event_id_s1_SIZE;
+ unsigned int event_s1 : SC_DEBUG_2_event_s1_SIZE;
+ unsigned int : 8;
+ unsigned int trigger : SC_DEBUG_2_trigger_SIZE;
+ } sc_debug_2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sc_debug_2_t {
+ unsigned int trigger : SC_DEBUG_2_trigger_SIZE;
+ unsigned int : 8;
+ unsigned int event_s1 : SC_DEBUG_2_event_s1_SIZE;
+ unsigned int event_id_s1 : SC_DEBUG_2_event_id_s1_SIZE;
+ unsigned int pass_empty_prim_s1 : SC_DEBUG_2_pass_empty_prim_s1_SIZE;
+ unsigned int end_of_prim_s1_dly : SC_DEBUG_2_end_of_prim_s1_dly_SIZE;
+ unsigned int : 5;
+ unsigned int phase_rts_dly : SC_DEBUG_2_phase_rts_dly_SIZE;
+ unsigned int stage0_rts : SC_DEBUG_2_stage0_rts_SIZE;
+ unsigned int pre_stage1_rts_d1 : SC_DEBUG_2_pre_stage1_rts_d1_SIZE;
+ unsigned int next_prim_rtr_dly : SC_DEBUG_2_next_prim_rtr_dly_SIZE;
+ unsigned int next_prim_rts_dly : SC_DEBUG_2_next_prim_rts_dly_SIZE;
+ unsigned int prim_rts : SC_DEBUG_2_prim_rts_SIZE;
+ unsigned int pipe_freeze_b : SC_DEBUG_2_pipe_freeze_b_SIZE;
+ unsigned int : 1;
+ unsigned int qmask_ff_alm_full_d1 : SC_DEBUG_2_qmask_ff_alm_full_d1_SIZE;
+ unsigned int rc_rtr_dly : SC_DEBUG_2_rc_rtr_dly_SIZE;
+ } sc_debug_2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sc_debug_2_t f;
+} sc_debug_2_u;
+
+
+/*
+ * SC_DEBUG_3 struct
+ */
+
+#define SC_DEBUG_3_x_curr_s1_SIZE 11
+#define SC_DEBUG_3_y_curr_s1_SIZE 11
+#define SC_DEBUG_3_trigger_SIZE 1
+
+#define SC_DEBUG_3_x_curr_s1_SHIFT 0
+#define SC_DEBUG_3_y_curr_s1_SHIFT 11
+#define SC_DEBUG_3_trigger_SHIFT 31
+
+#define SC_DEBUG_3_x_curr_s1_MASK 0x000007ff
+#define SC_DEBUG_3_y_curr_s1_MASK 0x003ff800
+#define SC_DEBUG_3_trigger_MASK 0x80000000
+
+#define SC_DEBUG_3_MASK \
+ (SC_DEBUG_3_x_curr_s1_MASK | \
+ SC_DEBUG_3_y_curr_s1_MASK | \
+ SC_DEBUG_3_trigger_MASK)
+
+#define SC_DEBUG_3(x_curr_s1, y_curr_s1, trigger) \
+ ((x_curr_s1 << SC_DEBUG_3_x_curr_s1_SHIFT) | \
+ (y_curr_s1 << SC_DEBUG_3_y_curr_s1_SHIFT) | \
+ (trigger << SC_DEBUG_3_trigger_SHIFT))
+
+#define SC_DEBUG_3_GET_x_curr_s1(sc_debug_3) \
+ ((sc_debug_3 & SC_DEBUG_3_x_curr_s1_MASK) >> SC_DEBUG_3_x_curr_s1_SHIFT)
+#define SC_DEBUG_3_GET_y_curr_s1(sc_debug_3) \
+ ((sc_debug_3 & SC_DEBUG_3_y_curr_s1_MASK) >> SC_DEBUG_3_y_curr_s1_SHIFT)
+#define SC_DEBUG_3_GET_trigger(sc_debug_3) \
+ ((sc_debug_3 & SC_DEBUG_3_trigger_MASK) >> SC_DEBUG_3_trigger_SHIFT)
+
+#define SC_DEBUG_3_SET_x_curr_s1(sc_debug_3_reg, x_curr_s1) \
+ sc_debug_3_reg = (sc_debug_3_reg & ~SC_DEBUG_3_x_curr_s1_MASK) | (x_curr_s1 << SC_DEBUG_3_x_curr_s1_SHIFT)
+#define SC_DEBUG_3_SET_y_curr_s1(sc_debug_3_reg, y_curr_s1) \
+ sc_debug_3_reg = (sc_debug_3_reg & ~SC_DEBUG_3_y_curr_s1_MASK) | (y_curr_s1 << SC_DEBUG_3_y_curr_s1_SHIFT)
+#define SC_DEBUG_3_SET_trigger(sc_debug_3_reg, trigger) \
+ sc_debug_3_reg = (sc_debug_3_reg & ~SC_DEBUG_3_trigger_MASK) | (trigger << SC_DEBUG_3_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sc_debug_3_t {
+ unsigned int x_curr_s1 : SC_DEBUG_3_x_curr_s1_SIZE;
+ unsigned int y_curr_s1 : SC_DEBUG_3_y_curr_s1_SIZE;
+ unsigned int : 9;
+ unsigned int trigger : SC_DEBUG_3_trigger_SIZE;
+ } sc_debug_3_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sc_debug_3_t {
+ unsigned int trigger : SC_DEBUG_3_trigger_SIZE;
+ unsigned int : 9;
+ unsigned int y_curr_s1 : SC_DEBUG_3_y_curr_s1_SIZE;
+ unsigned int x_curr_s1 : SC_DEBUG_3_x_curr_s1_SIZE;
+ } sc_debug_3_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sc_debug_3_t f;
+} sc_debug_3_u;
+
+
+/*
+ * SC_DEBUG_4 struct
+ */
+
+#define SC_DEBUG_4_y_end_s1_SIZE 14
+#define SC_DEBUG_4_y_start_s1_SIZE 14
+#define SC_DEBUG_4_y_dir_s1_SIZE 1
+#define SC_DEBUG_4_trigger_SIZE 1
+
+#define SC_DEBUG_4_y_end_s1_SHIFT 0
+#define SC_DEBUG_4_y_start_s1_SHIFT 14
+#define SC_DEBUG_4_y_dir_s1_SHIFT 28
+#define SC_DEBUG_4_trigger_SHIFT 31
+
+#define SC_DEBUG_4_y_end_s1_MASK 0x00003fff
+#define SC_DEBUG_4_y_start_s1_MASK 0x0fffc000
+#define SC_DEBUG_4_y_dir_s1_MASK 0x10000000
+#define SC_DEBUG_4_trigger_MASK 0x80000000
+
+#define SC_DEBUG_4_MASK \
+ (SC_DEBUG_4_y_end_s1_MASK | \
+ SC_DEBUG_4_y_start_s1_MASK | \
+ SC_DEBUG_4_y_dir_s1_MASK | \
+ SC_DEBUG_4_trigger_MASK)
+
+#define SC_DEBUG_4(y_end_s1, y_start_s1, y_dir_s1, trigger) \
+ ((y_end_s1 << SC_DEBUG_4_y_end_s1_SHIFT) | \
+ (y_start_s1 << SC_DEBUG_4_y_start_s1_SHIFT) | \
+ (y_dir_s1 << SC_DEBUG_4_y_dir_s1_SHIFT) | \
+ (trigger << SC_DEBUG_4_trigger_SHIFT))
+
+#define SC_DEBUG_4_GET_y_end_s1(sc_debug_4) \
+ ((sc_debug_4 & SC_DEBUG_4_y_end_s1_MASK) >> SC_DEBUG_4_y_end_s1_SHIFT)
+#define SC_DEBUG_4_GET_y_start_s1(sc_debug_4) \
+ ((sc_debug_4 & SC_DEBUG_4_y_start_s1_MASK) >> SC_DEBUG_4_y_start_s1_SHIFT)
+#define SC_DEBUG_4_GET_y_dir_s1(sc_debug_4) \
+ ((sc_debug_4 & SC_DEBUG_4_y_dir_s1_MASK) >> SC_DEBUG_4_y_dir_s1_SHIFT)
+#define SC_DEBUG_4_GET_trigger(sc_debug_4) \
+ ((sc_debug_4 & SC_DEBUG_4_trigger_MASK) >> SC_DEBUG_4_trigger_SHIFT)
+
+#define SC_DEBUG_4_SET_y_end_s1(sc_debug_4_reg, y_end_s1) \
+ sc_debug_4_reg = (sc_debug_4_reg & ~SC_DEBUG_4_y_end_s1_MASK) | (y_end_s1 << SC_DEBUG_4_y_end_s1_SHIFT)
+#define SC_DEBUG_4_SET_y_start_s1(sc_debug_4_reg, y_start_s1) \
+ sc_debug_4_reg = (sc_debug_4_reg & ~SC_DEBUG_4_y_start_s1_MASK) | (y_start_s1 << SC_DEBUG_4_y_start_s1_SHIFT)
+#define SC_DEBUG_4_SET_y_dir_s1(sc_debug_4_reg, y_dir_s1) \
+ sc_debug_4_reg = (sc_debug_4_reg & ~SC_DEBUG_4_y_dir_s1_MASK) | (y_dir_s1 << SC_DEBUG_4_y_dir_s1_SHIFT)
+#define SC_DEBUG_4_SET_trigger(sc_debug_4_reg, trigger) \
+ sc_debug_4_reg = (sc_debug_4_reg & ~SC_DEBUG_4_trigger_MASK) | (trigger << SC_DEBUG_4_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sc_debug_4_t {
+ unsigned int y_end_s1 : SC_DEBUG_4_y_end_s1_SIZE;
+ unsigned int y_start_s1 : SC_DEBUG_4_y_start_s1_SIZE;
+ unsigned int y_dir_s1 : SC_DEBUG_4_y_dir_s1_SIZE;
+ unsigned int : 2;
+ unsigned int trigger : SC_DEBUG_4_trigger_SIZE;
+ } sc_debug_4_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sc_debug_4_t {
+ unsigned int trigger : SC_DEBUG_4_trigger_SIZE;
+ unsigned int : 2;
+ unsigned int y_dir_s1 : SC_DEBUG_4_y_dir_s1_SIZE;
+ unsigned int y_start_s1 : SC_DEBUG_4_y_start_s1_SIZE;
+ unsigned int y_end_s1 : SC_DEBUG_4_y_end_s1_SIZE;
+ } sc_debug_4_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sc_debug_4_t f;
+} sc_debug_4_u;
+
+
+/*
+ * SC_DEBUG_5 struct
+ */
+
+#define SC_DEBUG_5_x_end_s1_SIZE 14
+#define SC_DEBUG_5_x_start_s1_SIZE 14
+#define SC_DEBUG_5_x_dir_s1_SIZE 1
+#define SC_DEBUG_5_trigger_SIZE 1
+
+#define SC_DEBUG_5_x_end_s1_SHIFT 0
+#define SC_DEBUG_5_x_start_s1_SHIFT 14
+#define SC_DEBUG_5_x_dir_s1_SHIFT 28
+#define SC_DEBUG_5_trigger_SHIFT 31
+
+#define SC_DEBUG_5_x_end_s1_MASK 0x00003fff
+#define SC_DEBUG_5_x_start_s1_MASK 0x0fffc000
+#define SC_DEBUG_5_x_dir_s1_MASK 0x10000000
+#define SC_DEBUG_5_trigger_MASK 0x80000000
+
+#define SC_DEBUG_5_MASK \
+ (SC_DEBUG_5_x_end_s1_MASK | \
+ SC_DEBUG_5_x_start_s1_MASK | \
+ SC_DEBUG_5_x_dir_s1_MASK | \
+ SC_DEBUG_5_trigger_MASK)
+
+#define SC_DEBUG_5(x_end_s1, x_start_s1, x_dir_s1, trigger) \
+ ((x_end_s1 << SC_DEBUG_5_x_end_s1_SHIFT) | \
+ (x_start_s1 << SC_DEBUG_5_x_start_s1_SHIFT) | \
+ (x_dir_s1 << SC_DEBUG_5_x_dir_s1_SHIFT) | \
+ (trigger << SC_DEBUG_5_trigger_SHIFT))
+
+#define SC_DEBUG_5_GET_x_end_s1(sc_debug_5) \
+ ((sc_debug_5 & SC_DEBUG_5_x_end_s1_MASK) >> SC_DEBUG_5_x_end_s1_SHIFT)
+#define SC_DEBUG_5_GET_x_start_s1(sc_debug_5) \
+ ((sc_debug_5 & SC_DEBUG_5_x_start_s1_MASK) >> SC_DEBUG_5_x_start_s1_SHIFT)
+#define SC_DEBUG_5_GET_x_dir_s1(sc_debug_5) \
+ ((sc_debug_5 & SC_DEBUG_5_x_dir_s1_MASK) >> SC_DEBUG_5_x_dir_s1_SHIFT)
+#define SC_DEBUG_5_GET_trigger(sc_debug_5) \
+ ((sc_debug_5 & SC_DEBUG_5_trigger_MASK) >> SC_DEBUG_5_trigger_SHIFT)
+
+#define SC_DEBUG_5_SET_x_end_s1(sc_debug_5_reg, x_end_s1) \
+ sc_debug_5_reg = (sc_debug_5_reg & ~SC_DEBUG_5_x_end_s1_MASK) | (x_end_s1 << SC_DEBUG_5_x_end_s1_SHIFT)
+#define SC_DEBUG_5_SET_x_start_s1(sc_debug_5_reg, x_start_s1) \
+ sc_debug_5_reg = (sc_debug_5_reg & ~SC_DEBUG_5_x_start_s1_MASK) | (x_start_s1 << SC_DEBUG_5_x_start_s1_SHIFT)
+#define SC_DEBUG_5_SET_x_dir_s1(sc_debug_5_reg, x_dir_s1) \
+ sc_debug_5_reg = (sc_debug_5_reg & ~SC_DEBUG_5_x_dir_s1_MASK) | (x_dir_s1 << SC_DEBUG_5_x_dir_s1_SHIFT)
+#define SC_DEBUG_5_SET_trigger(sc_debug_5_reg, trigger) \
+ sc_debug_5_reg = (sc_debug_5_reg & ~SC_DEBUG_5_trigger_MASK) | (trigger << SC_DEBUG_5_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sc_debug_5_t {
+ unsigned int x_end_s1 : SC_DEBUG_5_x_end_s1_SIZE;
+ unsigned int x_start_s1 : SC_DEBUG_5_x_start_s1_SIZE;
+ unsigned int x_dir_s1 : SC_DEBUG_5_x_dir_s1_SIZE;
+ unsigned int : 2;
+ unsigned int trigger : SC_DEBUG_5_trigger_SIZE;
+ } sc_debug_5_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sc_debug_5_t {
+ unsigned int trigger : SC_DEBUG_5_trigger_SIZE;
+ unsigned int : 2;
+ unsigned int x_dir_s1 : SC_DEBUG_5_x_dir_s1_SIZE;
+ unsigned int x_start_s1 : SC_DEBUG_5_x_start_s1_SIZE;
+ unsigned int x_end_s1 : SC_DEBUG_5_x_end_s1_SIZE;
+ } sc_debug_5_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sc_debug_5_t f;
+} sc_debug_5_u;
+
+
+/*
+ * SC_DEBUG_6 struct
+ */
+
+#define SC_DEBUG_6_z_ff_empty_SIZE 1
+#define SC_DEBUG_6_qmcntl_ff_empty_SIZE 1
+#define SC_DEBUG_6_xy_ff_empty_SIZE 1
+#define SC_DEBUG_6_event_flag_SIZE 1
+#define SC_DEBUG_6_z_mask_needed_SIZE 1
+#define SC_DEBUG_6_state_SIZE 3
+#define SC_DEBUG_6_state_delayed_SIZE 3
+#define SC_DEBUG_6_data_valid_SIZE 1
+#define SC_DEBUG_6_data_valid_d_SIZE 1
+#define SC_DEBUG_6_tilex_delayed_SIZE 9
+#define SC_DEBUG_6_tiley_delayed_SIZE 9
+#define SC_DEBUG_6_trigger_SIZE 1
+
+#define SC_DEBUG_6_z_ff_empty_SHIFT 0
+#define SC_DEBUG_6_qmcntl_ff_empty_SHIFT 1
+#define SC_DEBUG_6_xy_ff_empty_SHIFT 2
+#define SC_DEBUG_6_event_flag_SHIFT 3
+#define SC_DEBUG_6_z_mask_needed_SHIFT 4
+#define SC_DEBUG_6_state_SHIFT 5
+#define SC_DEBUG_6_state_delayed_SHIFT 8
+#define SC_DEBUG_6_data_valid_SHIFT 11
+#define SC_DEBUG_6_data_valid_d_SHIFT 12
+#define SC_DEBUG_6_tilex_delayed_SHIFT 13
+#define SC_DEBUG_6_tiley_delayed_SHIFT 22
+#define SC_DEBUG_6_trigger_SHIFT 31
+
+#define SC_DEBUG_6_z_ff_empty_MASK 0x00000001
+#define SC_DEBUG_6_qmcntl_ff_empty_MASK 0x00000002
+#define SC_DEBUG_6_xy_ff_empty_MASK 0x00000004
+#define SC_DEBUG_6_event_flag_MASK 0x00000008
+#define SC_DEBUG_6_z_mask_needed_MASK 0x00000010
+#define SC_DEBUG_6_state_MASK 0x000000e0
+#define SC_DEBUG_6_state_delayed_MASK 0x00000700
+#define SC_DEBUG_6_data_valid_MASK 0x00000800
+#define SC_DEBUG_6_data_valid_d_MASK 0x00001000
+#define SC_DEBUG_6_tilex_delayed_MASK 0x003fe000
+#define SC_DEBUG_6_tiley_delayed_MASK 0x7fc00000
+#define SC_DEBUG_6_trigger_MASK 0x80000000
+
+#define SC_DEBUG_6_MASK \
+ (SC_DEBUG_6_z_ff_empty_MASK | \
+ SC_DEBUG_6_qmcntl_ff_empty_MASK | \
+ SC_DEBUG_6_xy_ff_empty_MASK | \
+ SC_DEBUG_6_event_flag_MASK | \
+ SC_DEBUG_6_z_mask_needed_MASK | \
+ SC_DEBUG_6_state_MASK | \
+ SC_DEBUG_6_state_delayed_MASK | \
+ SC_DEBUG_6_data_valid_MASK | \
+ SC_DEBUG_6_data_valid_d_MASK | \
+ SC_DEBUG_6_tilex_delayed_MASK | \
+ SC_DEBUG_6_tiley_delayed_MASK | \
+ SC_DEBUG_6_trigger_MASK)
+
+#define SC_DEBUG_6(z_ff_empty, qmcntl_ff_empty, xy_ff_empty, event_flag, z_mask_needed, state, state_delayed, data_valid, data_valid_d, tilex_delayed, tiley_delayed, trigger) \
+ ((z_ff_empty << SC_DEBUG_6_z_ff_empty_SHIFT) | \
+ (qmcntl_ff_empty << SC_DEBUG_6_qmcntl_ff_empty_SHIFT) | \
+ (xy_ff_empty << SC_DEBUG_6_xy_ff_empty_SHIFT) | \
+ (event_flag << SC_DEBUG_6_event_flag_SHIFT) | \
+ (z_mask_needed << SC_DEBUG_6_z_mask_needed_SHIFT) | \
+ (state << SC_DEBUG_6_state_SHIFT) | \
+ (state_delayed << SC_DEBUG_6_state_delayed_SHIFT) | \
+ (data_valid << SC_DEBUG_6_data_valid_SHIFT) | \
+ (data_valid_d << SC_DEBUG_6_data_valid_d_SHIFT) | \
+ (tilex_delayed << SC_DEBUG_6_tilex_delayed_SHIFT) | \
+ (tiley_delayed << SC_DEBUG_6_tiley_delayed_SHIFT) | \
+ (trigger << SC_DEBUG_6_trigger_SHIFT))
+
+#define SC_DEBUG_6_GET_z_ff_empty(sc_debug_6) \
+ ((sc_debug_6 & SC_DEBUG_6_z_ff_empty_MASK) >> SC_DEBUG_6_z_ff_empty_SHIFT)
+#define SC_DEBUG_6_GET_qmcntl_ff_empty(sc_debug_6) \
+ ((sc_debug_6 & SC_DEBUG_6_qmcntl_ff_empty_MASK) >> SC_DEBUG_6_qmcntl_ff_empty_SHIFT)
+#define SC_DEBUG_6_GET_xy_ff_empty(sc_debug_6) \
+ ((sc_debug_6 & SC_DEBUG_6_xy_ff_empty_MASK) >> SC_DEBUG_6_xy_ff_empty_SHIFT)
+#define SC_DEBUG_6_GET_event_flag(sc_debug_6) \
+ ((sc_debug_6 & SC_DEBUG_6_event_flag_MASK) >> SC_DEBUG_6_event_flag_SHIFT)
+#define SC_DEBUG_6_GET_z_mask_needed(sc_debug_6) \
+ ((sc_debug_6 & SC_DEBUG_6_z_mask_needed_MASK) >> SC_DEBUG_6_z_mask_needed_SHIFT)
+#define SC_DEBUG_6_GET_state(sc_debug_6) \
+ ((sc_debug_6 & SC_DEBUG_6_state_MASK) >> SC_DEBUG_6_state_SHIFT)
+#define SC_DEBUG_6_GET_state_delayed(sc_debug_6) \
+ ((sc_debug_6 & SC_DEBUG_6_state_delayed_MASK) >> SC_DEBUG_6_state_delayed_SHIFT)
+#define SC_DEBUG_6_GET_data_valid(sc_debug_6) \
+ ((sc_debug_6 & SC_DEBUG_6_data_valid_MASK) >> SC_DEBUG_6_data_valid_SHIFT)
+#define SC_DEBUG_6_GET_data_valid_d(sc_debug_6) \
+ ((sc_debug_6 & SC_DEBUG_6_data_valid_d_MASK) >> SC_DEBUG_6_data_valid_d_SHIFT)
+#define SC_DEBUG_6_GET_tilex_delayed(sc_debug_6) \
+ ((sc_debug_6 & SC_DEBUG_6_tilex_delayed_MASK) >> SC_DEBUG_6_tilex_delayed_SHIFT)
+#define SC_DEBUG_6_GET_tiley_delayed(sc_debug_6) \
+ ((sc_debug_6 & SC_DEBUG_6_tiley_delayed_MASK) >> SC_DEBUG_6_tiley_delayed_SHIFT)
+#define SC_DEBUG_6_GET_trigger(sc_debug_6) \
+ ((sc_debug_6 & SC_DEBUG_6_trigger_MASK) >> SC_DEBUG_6_trigger_SHIFT)
+
+#define SC_DEBUG_6_SET_z_ff_empty(sc_debug_6_reg, z_ff_empty) \
+ sc_debug_6_reg = (sc_debug_6_reg & ~SC_DEBUG_6_z_ff_empty_MASK) | (z_ff_empty << SC_DEBUG_6_z_ff_empty_SHIFT)
+#define SC_DEBUG_6_SET_qmcntl_ff_empty(sc_debug_6_reg, qmcntl_ff_empty) \
+ sc_debug_6_reg = (sc_debug_6_reg & ~SC_DEBUG_6_qmcntl_ff_empty_MASK) | (qmcntl_ff_empty << SC_DEBUG_6_qmcntl_ff_empty_SHIFT)
+#define SC_DEBUG_6_SET_xy_ff_empty(sc_debug_6_reg, xy_ff_empty) \
+ sc_debug_6_reg = (sc_debug_6_reg & ~SC_DEBUG_6_xy_ff_empty_MASK) | (xy_ff_empty << SC_DEBUG_6_xy_ff_empty_SHIFT)
+#define SC_DEBUG_6_SET_event_flag(sc_debug_6_reg, event_flag) \
+ sc_debug_6_reg = (sc_debug_6_reg & ~SC_DEBUG_6_event_flag_MASK) | (event_flag << SC_DEBUG_6_event_flag_SHIFT)
+#define SC_DEBUG_6_SET_z_mask_needed(sc_debug_6_reg, z_mask_needed) \
+ sc_debug_6_reg = (sc_debug_6_reg & ~SC_DEBUG_6_z_mask_needed_MASK) | (z_mask_needed << SC_DEBUG_6_z_mask_needed_SHIFT)
+#define SC_DEBUG_6_SET_state(sc_debug_6_reg, state) \
+ sc_debug_6_reg = (sc_debug_6_reg & ~SC_DEBUG_6_state_MASK) | (state << SC_DEBUG_6_state_SHIFT)
+#define SC_DEBUG_6_SET_state_delayed(sc_debug_6_reg, state_delayed) \
+ sc_debug_6_reg = (sc_debug_6_reg & ~SC_DEBUG_6_state_delayed_MASK) | (state_delayed << SC_DEBUG_6_state_delayed_SHIFT)
+#define SC_DEBUG_6_SET_data_valid(sc_debug_6_reg, data_valid) \
+ sc_debug_6_reg = (sc_debug_6_reg & ~SC_DEBUG_6_data_valid_MASK) | (data_valid << SC_DEBUG_6_data_valid_SHIFT)
+#define SC_DEBUG_6_SET_data_valid_d(sc_debug_6_reg, data_valid_d) \
+ sc_debug_6_reg = (sc_debug_6_reg & ~SC_DEBUG_6_data_valid_d_MASK) | (data_valid_d << SC_DEBUG_6_data_valid_d_SHIFT)
+#define SC_DEBUG_6_SET_tilex_delayed(sc_debug_6_reg, tilex_delayed) \
+ sc_debug_6_reg = (sc_debug_6_reg & ~SC_DEBUG_6_tilex_delayed_MASK) | (tilex_delayed << SC_DEBUG_6_tilex_delayed_SHIFT)
+#define SC_DEBUG_6_SET_tiley_delayed(sc_debug_6_reg, tiley_delayed) \
+ sc_debug_6_reg = (sc_debug_6_reg & ~SC_DEBUG_6_tiley_delayed_MASK) | (tiley_delayed << SC_DEBUG_6_tiley_delayed_SHIFT)
+#define SC_DEBUG_6_SET_trigger(sc_debug_6_reg, trigger) \
+ sc_debug_6_reg = (sc_debug_6_reg & ~SC_DEBUG_6_trigger_MASK) | (trigger << SC_DEBUG_6_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sc_debug_6_t {
+ unsigned int z_ff_empty : SC_DEBUG_6_z_ff_empty_SIZE;
+ unsigned int qmcntl_ff_empty : SC_DEBUG_6_qmcntl_ff_empty_SIZE;
+ unsigned int xy_ff_empty : SC_DEBUG_6_xy_ff_empty_SIZE;
+ unsigned int event_flag : SC_DEBUG_6_event_flag_SIZE;
+ unsigned int z_mask_needed : SC_DEBUG_6_z_mask_needed_SIZE;
+ unsigned int state : SC_DEBUG_6_state_SIZE;
+ unsigned int state_delayed : SC_DEBUG_6_state_delayed_SIZE;
+ unsigned int data_valid : SC_DEBUG_6_data_valid_SIZE;
+ unsigned int data_valid_d : SC_DEBUG_6_data_valid_d_SIZE;
+ unsigned int tilex_delayed : SC_DEBUG_6_tilex_delayed_SIZE;
+ unsigned int tiley_delayed : SC_DEBUG_6_tiley_delayed_SIZE;
+ unsigned int trigger : SC_DEBUG_6_trigger_SIZE;
+ } sc_debug_6_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sc_debug_6_t {
+ unsigned int trigger : SC_DEBUG_6_trigger_SIZE;
+ unsigned int tiley_delayed : SC_DEBUG_6_tiley_delayed_SIZE;
+ unsigned int tilex_delayed : SC_DEBUG_6_tilex_delayed_SIZE;
+ unsigned int data_valid_d : SC_DEBUG_6_data_valid_d_SIZE;
+ unsigned int data_valid : SC_DEBUG_6_data_valid_SIZE;
+ unsigned int state_delayed : SC_DEBUG_6_state_delayed_SIZE;
+ unsigned int state : SC_DEBUG_6_state_SIZE;
+ unsigned int z_mask_needed : SC_DEBUG_6_z_mask_needed_SIZE;
+ unsigned int event_flag : SC_DEBUG_6_event_flag_SIZE;
+ unsigned int xy_ff_empty : SC_DEBUG_6_xy_ff_empty_SIZE;
+ unsigned int qmcntl_ff_empty : SC_DEBUG_6_qmcntl_ff_empty_SIZE;
+ unsigned int z_ff_empty : SC_DEBUG_6_z_ff_empty_SIZE;
+ } sc_debug_6_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sc_debug_6_t f;
+} sc_debug_6_u;
+
+
+/*
+ * SC_DEBUG_7 struct
+ */
+
+#define SC_DEBUG_7_event_flag_SIZE 1
+#define SC_DEBUG_7_deallocate_SIZE 3
+#define SC_DEBUG_7_fposition_SIZE 1
+#define SC_DEBUG_7_sr_prim_we_SIZE 1
+#define SC_DEBUG_7_last_tile_SIZE 1
+#define SC_DEBUG_7_tile_ff_we_SIZE 1
+#define SC_DEBUG_7_qs_data_valid_SIZE 1
+#define SC_DEBUG_7_qs_q0_y_SIZE 2
+#define SC_DEBUG_7_qs_q0_x_SIZE 2
+#define SC_DEBUG_7_qs_q0_valid_SIZE 1
+#define SC_DEBUG_7_prim_ff_we_SIZE 1
+#define SC_DEBUG_7_tile_ff_re_SIZE 1
+#define SC_DEBUG_7_fw_prim_data_valid_SIZE 1
+#define SC_DEBUG_7_last_quad_of_tile_SIZE 1
+#define SC_DEBUG_7_first_quad_of_tile_SIZE 1
+#define SC_DEBUG_7_first_quad_of_prim_SIZE 1
+#define SC_DEBUG_7_new_prim_SIZE 1
+#define SC_DEBUG_7_load_new_tile_data_SIZE 1
+#define SC_DEBUG_7_state_SIZE 2
+#define SC_DEBUG_7_fifos_ready_SIZE 1
+#define SC_DEBUG_7_trigger_SIZE 1
+
+#define SC_DEBUG_7_event_flag_SHIFT 0
+#define SC_DEBUG_7_deallocate_SHIFT 1
+#define SC_DEBUG_7_fposition_SHIFT 4
+#define SC_DEBUG_7_sr_prim_we_SHIFT 5
+#define SC_DEBUG_7_last_tile_SHIFT 6
+#define SC_DEBUG_7_tile_ff_we_SHIFT 7
+#define SC_DEBUG_7_qs_data_valid_SHIFT 8
+#define SC_DEBUG_7_qs_q0_y_SHIFT 9
+#define SC_DEBUG_7_qs_q0_x_SHIFT 11
+#define SC_DEBUG_7_qs_q0_valid_SHIFT 13
+#define SC_DEBUG_7_prim_ff_we_SHIFT 14
+#define SC_DEBUG_7_tile_ff_re_SHIFT 15
+#define SC_DEBUG_7_fw_prim_data_valid_SHIFT 16
+#define SC_DEBUG_7_last_quad_of_tile_SHIFT 17
+#define SC_DEBUG_7_first_quad_of_tile_SHIFT 18
+#define SC_DEBUG_7_first_quad_of_prim_SHIFT 19
+#define SC_DEBUG_7_new_prim_SHIFT 20
+#define SC_DEBUG_7_load_new_tile_data_SHIFT 21
+#define SC_DEBUG_7_state_SHIFT 22
+#define SC_DEBUG_7_fifos_ready_SHIFT 24
+#define SC_DEBUG_7_trigger_SHIFT 31
+
+#define SC_DEBUG_7_event_flag_MASK 0x00000001
+#define SC_DEBUG_7_deallocate_MASK 0x0000000e
+#define SC_DEBUG_7_fposition_MASK 0x00000010
+#define SC_DEBUG_7_sr_prim_we_MASK 0x00000020
+#define SC_DEBUG_7_last_tile_MASK 0x00000040
+#define SC_DEBUG_7_tile_ff_we_MASK 0x00000080
+#define SC_DEBUG_7_qs_data_valid_MASK 0x00000100
+#define SC_DEBUG_7_qs_q0_y_MASK 0x00000600
+#define SC_DEBUG_7_qs_q0_x_MASK 0x00001800
+#define SC_DEBUG_7_qs_q0_valid_MASK 0x00002000
+#define SC_DEBUG_7_prim_ff_we_MASK 0x00004000
+#define SC_DEBUG_7_tile_ff_re_MASK 0x00008000
+#define SC_DEBUG_7_fw_prim_data_valid_MASK 0x00010000
+#define SC_DEBUG_7_last_quad_of_tile_MASK 0x00020000
+#define SC_DEBUG_7_first_quad_of_tile_MASK 0x00040000
+#define SC_DEBUG_7_first_quad_of_prim_MASK 0x00080000
+#define SC_DEBUG_7_new_prim_MASK 0x00100000
+#define SC_DEBUG_7_load_new_tile_data_MASK 0x00200000
+#define SC_DEBUG_7_state_MASK 0x00c00000
+#define SC_DEBUG_7_fifos_ready_MASK 0x01000000
+#define SC_DEBUG_7_trigger_MASK 0x80000000
+
+#define SC_DEBUG_7_MASK \
+ (SC_DEBUG_7_event_flag_MASK | \
+ SC_DEBUG_7_deallocate_MASK | \
+ SC_DEBUG_7_fposition_MASK | \
+ SC_DEBUG_7_sr_prim_we_MASK | \
+ SC_DEBUG_7_last_tile_MASK | \
+ SC_DEBUG_7_tile_ff_we_MASK | \
+ SC_DEBUG_7_qs_data_valid_MASK | \
+ SC_DEBUG_7_qs_q0_y_MASK | \
+ SC_DEBUG_7_qs_q0_x_MASK | \
+ SC_DEBUG_7_qs_q0_valid_MASK | \
+ SC_DEBUG_7_prim_ff_we_MASK | \
+ SC_DEBUG_7_tile_ff_re_MASK | \
+ SC_DEBUG_7_fw_prim_data_valid_MASK | \
+ SC_DEBUG_7_last_quad_of_tile_MASK | \
+ SC_DEBUG_7_first_quad_of_tile_MASK | \
+ SC_DEBUG_7_first_quad_of_prim_MASK | \
+ SC_DEBUG_7_new_prim_MASK | \
+ SC_DEBUG_7_load_new_tile_data_MASK | \
+ SC_DEBUG_7_state_MASK | \
+ SC_DEBUG_7_fifos_ready_MASK | \
+ SC_DEBUG_7_trigger_MASK)
+
+#define SC_DEBUG_7(event_flag, deallocate, fposition, sr_prim_we, last_tile, tile_ff_we, qs_data_valid, qs_q0_y, qs_q0_x, qs_q0_valid, prim_ff_we, tile_ff_re, fw_prim_data_valid, last_quad_of_tile, first_quad_of_tile, first_quad_of_prim, new_prim, load_new_tile_data, state, fifos_ready, trigger) \
+ ((event_flag << SC_DEBUG_7_event_flag_SHIFT) | \
+ (deallocate << SC_DEBUG_7_deallocate_SHIFT) | \
+ (fposition << SC_DEBUG_7_fposition_SHIFT) | \
+ (sr_prim_we << SC_DEBUG_7_sr_prim_we_SHIFT) | \
+ (last_tile << SC_DEBUG_7_last_tile_SHIFT) | \
+ (tile_ff_we << SC_DEBUG_7_tile_ff_we_SHIFT) | \
+ (qs_data_valid << SC_DEBUG_7_qs_data_valid_SHIFT) | \
+ (qs_q0_y << SC_DEBUG_7_qs_q0_y_SHIFT) | \
+ (qs_q0_x << SC_DEBUG_7_qs_q0_x_SHIFT) | \
+ (qs_q0_valid << SC_DEBUG_7_qs_q0_valid_SHIFT) | \
+ (prim_ff_we << SC_DEBUG_7_prim_ff_we_SHIFT) | \
+ (tile_ff_re << SC_DEBUG_7_tile_ff_re_SHIFT) | \
+ (fw_prim_data_valid << SC_DEBUG_7_fw_prim_data_valid_SHIFT) | \
+ (last_quad_of_tile << SC_DEBUG_7_last_quad_of_tile_SHIFT) | \
+ (first_quad_of_tile << SC_DEBUG_7_first_quad_of_tile_SHIFT) | \
+ (first_quad_of_prim << SC_DEBUG_7_first_quad_of_prim_SHIFT) | \
+ (new_prim << SC_DEBUG_7_new_prim_SHIFT) | \
+ (load_new_tile_data << SC_DEBUG_7_load_new_tile_data_SHIFT) | \
+ (state << SC_DEBUG_7_state_SHIFT) | \
+ (fifos_ready << SC_DEBUG_7_fifos_ready_SHIFT) | \
+ (trigger << SC_DEBUG_7_trigger_SHIFT))
+
+#define SC_DEBUG_7_GET_event_flag(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_event_flag_MASK) >> SC_DEBUG_7_event_flag_SHIFT)
+#define SC_DEBUG_7_GET_deallocate(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_deallocate_MASK) >> SC_DEBUG_7_deallocate_SHIFT)
+#define SC_DEBUG_7_GET_fposition(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_fposition_MASK) >> SC_DEBUG_7_fposition_SHIFT)
+#define SC_DEBUG_7_GET_sr_prim_we(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_sr_prim_we_MASK) >> SC_DEBUG_7_sr_prim_we_SHIFT)
+#define SC_DEBUG_7_GET_last_tile(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_last_tile_MASK) >> SC_DEBUG_7_last_tile_SHIFT)
+#define SC_DEBUG_7_GET_tile_ff_we(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_tile_ff_we_MASK) >> SC_DEBUG_7_tile_ff_we_SHIFT)
+#define SC_DEBUG_7_GET_qs_data_valid(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_qs_data_valid_MASK) >> SC_DEBUG_7_qs_data_valid_SHIFT)
+#define SC_DEBUG_7_GET_qs_q0_y(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_qs_q0_y_MASK) >> SC_DEBUG_7_qs_q0_y_SHIFT)
+#define SC_DEBUG_7_GET_qs_q0_x(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_qs_q0_x_MASK) >> SC_DEBUG_7_qs_q0_x_SHIFT)
+#define SC_DEBUG_7_GET_qs_q0_valid(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_qs_q0_valid_MASK) >> SC_DEBUG_7_qs_q0_valid_SHIFT)
+#define SC_DEBUG_7_GET_prim_ff_we(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_prim_ff_we_MASK) >> SC_DEBUG_7_prim_ff_we_SHIFT)
+#define SC_DEBUG_7_GET_tile_ff_re(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_tile_ff_re_MASK) >> SC_DEBUG_7_tile_ff_re_SHIFT)
+#define SC_DEBUG_7_GET_fw_prim_data_valid(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_fw_prim_data_valid_MASK) >> SC_DEBUG_7_fw_prim_data_valid_SHIFT)
+#define SC_DEBUG_7_GET_last_quad_of_tile(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_last_quad_of_tile_MASK) >> SC_DEBUG_7_last_quad_of_tile_SHIFT)
+#define SC_DEBUG_7_GET_first_quad_of_tile(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_first_quad_of_tile_MASK) >> SC_DEBUG_7_first_quad_of_tile_SHIFT)
+#define SC_DEBUG_7_GET_first_quad_of_prim(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_first_quad_of_prim_MASK) >> SC_DEBUG_7_first_quad_of_prim_SHIFT)
+#define SC_DEBUG_7_GET_new_prim(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_new_prim_MASK) >> SC_DEBUG_7_new_prim_SHIFT)
+#define SC_DEBUG_7_GET_load_new_tile_data(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_load_new_tile_data_MASK) >> SC_DEBUG_7_load_new_tile_data_SHIFT)
+#define SC_DEBUG_7_GET_state(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_state_MASK) >> SC_DEBUG_7_state_SHIFT)
+#define SC_DEBUG_7_GET_fifos_ready(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_fifos_ready_MASK) >> SC_DEBUG_7_fifos_ready_SHIFT)
+#define SC_DEBUG_7_GET_trigger(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_trigger_MASK) >> SC_DEBUG_7_trigger_SHIFT)
+
+#define SC_DEBUG_7_SET_event_flag(sc_debug_7_reg, event_flag) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_event_flag_MASK) | (event_flag << SC_DEBUG_7_event_flag_SHIFT)
+#define SC_DEBUG_7_SET_deallocate(sc_debug_7_reg, deallocate) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_deallocate_MASK) | (deallocate << SC_DEBUG_7_deallocate_SHIFT)
+#define SC_DEBUG_7_SET_fposition(sc_debug_7_reg, fposition) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_fposition_MASK) | (fposition << SC_DEBUG_7_fposition_SHIFT)
+#define SC_DEBUG_7_SET_sr_prim_we(sc_debug_7_reg, sr_prim_we) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_sr_prim_we_MASK) | (sr_prim_we << SC_DEBUG_7_sr_prim_we_SHIFT)
+#define SC_DEBUG_7_SET_last_tile(sc_debug_7_reg, last_tile) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_last_tile_MASK) | (last_tile << SC_DEBUG_7_last_tile_SHIFT)
+#define SC_DEBUG_7_SET_tile_ff_we(sc_debug_7_reg, tile_ff_we) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_tile_ff_we_MASK) | (tile_ff_we << SC_DEBUG_7_tile_ff_we_SHIFT)
+#define SC_DEBUG_7_SET_qs_data_valid(sc_debug_7_reg, qs_data_valid) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_qs_data_valid_MASK) | (qs_data_valid << SC_DEBUG_7_qs_data_valid_SHIFT)
+#define SC_DEBUG_7_SET_qs_q0_y(sc_debug_7_reg, qs_q0_y) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_qs_q0_y_MASK) | (qs_q0_y << SC_DEBUG_7_qs_q0_y_SHIFT)
+#define SC_DEBUG_7_SET_qs_q0_x(sc_debug_7_reg, qs_q0_x) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_qs_q0_x_MASK) | (qs_q0_x << SC_DEBUG_7_qs_q0_x_SHIFT)
+#define SC_DEBUG_7_SET_qs_q0_valid(sc_debug_7_reg, qs_q0_valid) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_qs_q0_valid_MASK) | (qs_q0_valid << SC_DEBUG_7_qs_q0_valid_SHIFT)
+#define SC_DEBUG_7_SET_prim_ff_we(sc_debug_7_reg, prim_ff_we) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_prim_ff_we_MASK) | (prim_ff_we << SC_DEBUG_7_prim_ff_we_SHIFT)
+#define SC_DEBUG_7_SET_tile_ff_re(sc_debug_7_reg, tile_ff_re) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_tile_ff_re_MASK) | (tile_ff_re << SC_DEBUG_7_tile_ff_re_SHIFT)
+#define SC_DEBUG_7_SET_fw_prim_data_valid(sc_debug_7_reg, fw_prim_data_valid) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_fw_prim_data_valid_MASK) | (fw_prim_data_valid << SC_DEBUG_7_fw_prim_data_valid_SHIFT)
+#define SC_DEBUG_7_SET_last_quad_of_tile(sc_debug_7_reg, last_quad_of_tile) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_last_quad_of_tile_MASK) | (last_quad_of_tile << SC_DEBUG_7_last_quad_of_tile_SHIFT)
+#define SC_DEBUG_7_SET_first_quad_of_tile(sc_debug_7_reg, first_quad_of_tile) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_first_quad_of_tile_MASK) | (first_quad_of_tile << SC_DEBUG_7_first_quad_of_tile_SHIFT)
+#define SC_DEBUG_7_SET_first_quad_of_prim(sc_debug_7_reg, first_quad_of_prim) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_first_quad_of_prim_MASK) | (first_quad_of_prim << SC_DEBUG_7_first_quad_of_prim_SHIFT)
+#define SC_DEBUG_7_SET_new_prim(sc_debug_7_reg, new_prim) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_new_prim_MASK) | (new_prim << SC_DEBUG_7_new_prim_SHIFT)
+#define SC_DEBUG_7_SET_load_new_tile_data(sc_debug_7_reg, load_new_tile_data) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_load_new_tile_data_MASK) | (load_new_tile_data << SC_DEBUG_7_load_new_tile_data_SHIFT)
+#define SC_DEBUG_7_SET_state(sc_debug_7_reg, state) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_state_MASK) | (state << SC_DEBUG_7_state_SHIFT)
+#define SC_DEBUG_7_SET_fifos_ready(sc_debug_7_reg, fifos_ready) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_fifos_ready_MASK) | (fifos_ready << SC_DEBUG_7_fifos_ready_SHIFT)
+#define SC_DEBUG_7_SET_trigger(sc_debug_7_reg, trigger) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_trigger_MASK) | (trigger << SC_DEBUG_7_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sc_debug_7_t {
+ unsigned int event_flag : SC_DEBUG_7_event_flag_SIZE;
+ unsigned int deallocate : SC_DEBUG_7_deallocate_SIZE;
+ unsigned int fposition : SC_DEBUG_7_fposition_SIZE;
+ unsigned int sr_prim_we : SC_DEBUG_7_sr_prim_we_SIZE;
+ unsigned int last_tile : SC_DEBUG_7_last_tile_SIZE;
+ unsigned int tile_ff_we : SC_DEBUG_7_tile_ff_we_SIZE;
+ unsigned int qs_data_valid : SC_DEBUG_7_qs_data_valid_SIZE;
+ unsigned int qs_q0_y : SC_DEBUG_7_qs_q0_y_SIZE;
+ unsigned int qs_q0_x : SC_DEBUG_7_qs_q0_x_SIZE;
+ unsigned int qs_q0_valid : SC_DEBUG_7_qs_q0_valid_SIZE;
+ unsigned int prim_ff_we : SC_DEBUG_7_prim_ff_we_SIZE;
+ unsigned int tile_ff_re : SC_DEBUG_7_tile_ff_re_SIZE;
+ unsigned int fw_prim_data_valid : SC_DEBUG_7_fw_prim_data_valid_SIZE;
+ unsigned int last_quad_of_tile : SC_DEBUG_7_last_quad_of_tile_SIZE;
+ unsigned int first_quad_of_tile : SC_DEBUG_7_first_quad_of_tile_SIZE;
+ unsigned int first_quad_of_prim : SC_DEBUG_7_first_quad_of_prim_SIZE;
+ unsigned int new_prim : SC_DEBUG_7_new_prim_SIZE;
+ unsigned int load_new_tile_data : SC_DEBUG_7_load_new_tile_data_SIZE;
+ unsigned int state : SC_DEBUG_7_state_SIZE;
+ unsigned int fifos_ready : SC_DEBUG_7_fifos_ready_SIZE;
+ unsigned int : 6;
+ unsigned int trigger : SC_DEBUG_7_trigger_SIZE;
+ } sc_debug_7_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sc_debug_7_t {
+ unsigned int trigger : SC_DEBUG_7_trigger_SIZE;
+ unsigned int : 6;
+ unsigned int fifos_ready : SC_DEBUG_7_fifos_ready_SIZE;
+ unsigned int state : SC_DEBUG_7_state_SIZE;
+ unsigned int load_new_tile_data : SC_DEBUG_7_load_new_tile_data_SIZE;
+ unsigned int new_prim : SC_DEBUG_7_new_prim_SIZE;
+ unsigned int first_quad_of_prim : SC_DEBUG_7_first_quad_of_prim_SIZE;
+ unsigned int first_quad_of_tile : SC_DEBUG_7_first_quad_of_tile_SIZE;
+ unsigned int last_quad_of_tile : SC_DEBUG_7_last_quad_of_tile_SIZE;
+ unsigned int fw_prim_data_valid : SC_DEBUG_7_fw_prim_data_valid_SIZE;
+ unsigned int tile_ff_re : SC_DEBUG_7_tile_ff_re_SIZE;
+ unsigned int prim_ff_we : SC_DEBUG_7_prim_ff_we_SIZE;
+ unsigned int qs_q0_valid : SC_DEBUG_7_qs_q0_valid_SIZE;
+ unsigned int qs_q0_x : SC_DEBUG_7_qs_q0_x_SIZE;
+ unsigned int qs_q0_y : SC_DEBUG_7_qs_q0_y_SIZE;
+ unsigned int qs_data_valid : SC_DEBUG_7_qs_data_valid_SIZE;
+ unsigned int tile_ff_we : SC_DEBUG_7_tile_ff_we_SIZE;
+ unsigned int last_tile : SC_DEBUG_7_last_tile_SIZE;
+ unsigned int sr_prim_we : SC_DEBUG_7_sr_prim_we_SIZE;
+ unsigned int fposition : SC_DEBUG_7_fposition_SIZE;
+ unsigned int deallocate : SC_DEBUG_7_deallocate_SIZE;
+ unsigned int event_flag : SC_DEBUG_7_event_flag_SIZE;
+ } sc_debug_7_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sc_debug_7_t f;
+} sc_debug_7_u;
+
+
+/*
+ * SC_DEBUG_8 struct
+ */
+
+#define SC_DEBUG_8_sample_last_SIZE 1
+#define SC_DEBUG_8_sample_mask_SIZE 4
+#define SC_DEBUG_8_sample_y_SIZE 2
+#define SC_DEBUG_8_sample_x_SIZE 2
+#define SC_DEBUG_8_sample_send_SIZE 1
+#define SC_DEBUG_8_next_cycle_SIZE 2
+#define SC_DEBUG_8_ez_sample_ff_full_SIZE 1
+#define SC_DEBUG_8_rb_sc_samp_rtr_SIZE 1
+#define SC_DEBUG_8_num_samples_SIZE 2
+#define SC_DEBUG_8_last_quad_of_tile_SIZE 1
+#define SC_DEBUG_8_last_quad_of_prim_SIZE 1
+#define SC_DEBUG_8_first_quad_of_prim_SIZE 1
+#define SC_DEBUG_8_sample_we_SIZE 1
+#define SC_DEBUG_8_fposition_SIZE 1
+#define SC_DEBUG_8_event_id_SIZE 5
+#define SC_DEBUG_8_event_flag_SIZE 1
+#define SC_DEBUG_8_fw_prim_data_valid_SIZE 1
+#define SC_DEBUG_8_trigger_SIZE 1
+
+#define SC_DEBUG_8_sample_last_SHIFT 0
+#define SC_DEBUG_8_sample_mask_SHIFT 1
+#define SC_DEBUG_8_sample_y_SHIFT 5
+#define SC_DEBUG_8_sample_x_SHIFT 7
+#define SC_DEBUG_8_sample_send_SHIFT 9
+#define SC_DEBUG_8_next_cycle_SHIFT 10
+#define SC_DEBUG_8_ez_sample_ff_full_SHIFT 12
+#define SC_DEBUG_8_rb_sc_samp_rtr_SHIFT 13
+#define SC_DEBUG_8_num_samples_SHIFT 14
+#define SC_DEBUG_8_last_quad_of_tile_SHIFT 16
+#define SC_DEBUG_8_last_quad_of_prim_SHIFT 17
+#define SC_DEBUG_8_first_quad_of_prim_SHIFT 18
+#define SC_DEBUG_8_sample_we_SHIFT 19
+#define SC_DEBUG_8_fposition_SHIFT 20
+#define SC_DEBUG_8_event_id_SHIFT 21
+#define SC_DEBUG_8_event_flag_SHIFT 26
+#define SC_DEBUG_8_fw_prim_data_valid_SHIFT 27
+#define SC_DEBUG_8_trigger_SHIFT 31
+
+#define SC_DEBUG_8_sample_last_MASK 0x00000001
+#define SC_DEBUG_8_sample_mask_MASK 0x0000001e
+#define SC_DEBUG_8_sample_y_MASK 0x00000060
+#define SC_DEBUG_8_sample_x_MASK 0x00000180
+#define SC_DEBUG_8_sample_send_MASK 0x00000200
+#define SC_DEBUG_8_next_cycle_MASK 0x00000c00
+#define SC_DEBUG_8_ez_sample_ff_full_MASK 0x00001000
+#define SC_DEBUG_8_rb_sc_samp_rtr_MASK 0x00002000
+#define SC_DEBUG_8_num_samples_MASK 0x0000c000
+#define SC_DEBUG_8_last_quad_of_tile_MASK 0x00010000
+#define SC_DEBUG_8_last_quad_of_prim_MASK 0x00020000
+#define SC_DEBUG_8_first_quad_of_prim_MASK 0x00040000
+#define SC_DEBUG_8_sample_we_MASK 0x00080000
+#define SC_DEBUG_8_fposition_MASK 0x00100000
+#define SC_DEBUG_8_event_id_MASK 0x03e00000
+#define SC_DEBUG_8_event_flag_MASK 0x04000000
+#define SC_DEBUG_8_fw_prim_data_valid_MASK 0x08000000
+#define SC_DEBUG_8_trigger_MASK 0x80000000
+
+#define SC_DEBUG_8_MASK \
+ (SC_DEBUG_8_sample_last_MASK | \
+ SC_DEBUG_8_sample_mask_MASK | \
+ SC_DEBUG_8_sample_y_MASK | \
+ SC_DEBUG_8_sample_x_MASK | \
+ SC_DEBUG_8_sample_send_MASK | \
+ SC_DEBUG_8_next_cycle_MASK | \
+ SC_DEBUG_8_ez_sample_ff_full_MASK | \
+ SC_DEBUG_8_rb_sc_samp_rtr_MASK | \
+ SC_DEBUG_8_num_samples_MASK | \
+ SC_DEBUG_8_last_quad_of_tile_MASK | \
+ SC_DEBUG_8_last_quad_of_prim_MASK | \
+ SC_DEBUG_8_first_quad_of_prim_MASK | \
+ SC_DEBUG_8_sample_we_MASK | \
+ SC_DEBUG_8_fposition_MASK | \
+ SC_DEBUG_8_event_id_MASK | \
+ SC_DEBUG_8_event_flag_MASK | \
+ SC_DEBUG_8_fw_prim_data_valid_MASK | \
+ SC_DEBUG_8_trigger_MASK)
+
+#define SC_DEBUG_8(sample_last, sample_mask, sample_y, sample_x, sample_send, next_cycle, ez_sample_ff_full, rb_sc_samp_rtr, num_samples, last_quad_of_tile, last_quad_of_prim, first_quad_of_prim, sample_we, fposition, event_id, event_flag, fw_prim_data_valid, trigger) \
+ ((sample_last << SC_DEBUG_8_sample_last_SHIFT) | \
+ (sample_mask << SC_DEBUG_8_sample_mask_SHIFT) | \
+ (sample_y << SC_DEBUG_8_sample_y_SHIFT) | \
+ (sample_x << SC_DEBUG_8_sample_x_SHIFT) | \
+ (sample_send << SC_DEBUG_8_sample_send_SHIFT) | \
+ (next_cycle << SC_DEBUG_8_next_cycle_SHIFT) | \
+ (ez_sample_ff_full << SC_DEBUG_8_ez_sample_ff_full_SHIFT) | \
+ (rb_sc_samp_rtr << SC_DEBUG_8_rb_sc_samp_rtr_SHIFT) | \
+ (num_samples << SC_DEBUG_8_num_samples_SHIFT) | \
+ (last_quad_of_tile << SC_DEBUG_8_last_quad_of_tile_SHIFT) | \
+ (last_quad_of_prim << SC_DEBUG_8_last_quad_of_prim_SHIFT) | \
+ (first_quad_of_prim << SC_DEBUG_8_first_quad_of_prim_SHIFT) | \
+ (sample_we << SC_DEBUG_8_sample_we_SHIFT) | \
+ (fposition << SC_DEBUG_8_fposition_SHIFT) | \
+ (event_id << SC_DEBUG_8_event_id_SHIFT) | \
+ (event_flag << SC_DEBUG_8_event_flag_SHIFT) | \
+ (fw_prim_data_valid << SC_DEBUG_8_fw_prim_data_valid_SHIFT) | \
+ (trigger << SC_DEBUG_8_trigger_SHIFT))
+
+#define SC_DEBUG_8_GET_sample_last(sc_debug_8) \
+ ((sc_debug_8 & SC_DEBUG_8_sample_last_MASK) >> SC_DEBUG_8_sample_last_SHIFT)
+#define SC_DEBUG_8_GET_sample_mask(sc_debug_8) \
+ ((sc_debug_8 & SC_DEBUG_8_sample_mask_MASK) >> SC_DEBUG_8_sample_mask_SHIFT)
+#define SC_DEBUG_8_GET_sample_y(sc_debug_8) \
+ ((sc_debug_8 & SC_DEBUG_8_sample_y_MASK) >> SC_DEBUG_8_sample_y_SHIFT)
+#define SC_DEBUG_8_GET_sample_x(sc_debug_8) \
+ ((sc_debug_8 & SC_DEBUG_8_sample_x_MASK) >> SC_DEBUG_8_sample_x_SHIFT)
+#define SC_DEBUG_8_GET_sample_send(sc_debug_8) \
+ ((sc_debug_8 & SC_DEBUG_8_sample_send_MASK) >> SC_DEBUG_8_sample_send_SHIFT)
+#define SC_DEBUG_8_GET_next_cycle(sc_debug_8) \
+ ((sc_debug_8 & SC_DEBUG_8_next_cycle_MASK) >> SC_DEBUG_8_next_cycle_SHIFT)
+#define SC_DEBUG_8_GET_ez_sample_ff_full(sc_debug_8) \
+ ((sc_debug_8 & SC_DEBUG_8_ez_sample_ff_full_MASK) >> SC_DEBUG_8_ez_sample_ff_full_SHIFT)
+#define SC_DEBUG_8_GET_rb_sc_samp_rtr(sc_debug_8) \
+ ((sc_debug_8 & SC_DEBUG_8_rb_sc_samp_rtr_MASK) >> SC_DEBUG_8_rb_sc_samp_rtr_SHIFT)
+#define SC_DEBUG_8_GET_num_samples(sc_debug_8) \
+ ((sc_debug_8 & SC_DEBUG_8_num_samples_MASK) >> SC_DEBUG_8_num_samples_SHIFT)
+#define SC_DEBUG_8_GET_last_quad_of_tile(sc_debug_8) \
+ ((sc_debug_8 & SC_DEBUG_8_last_quad_of_tile_MASK) >> SC_DEBUG_8_last_quad_of_tile_SHIFT)
+#define SC_DEBUG_8_GET_last_quad_of_prim(sc_debug_8) \
+ ((sc_debug_8 & SC_DEBUG_8_last_quad_of_prim_MASK) >> SC_DEBUG_8_last_quad_of_prim_SHIFT)
+#define SC_DEBUG_8_GET_first_quad_of_prim(sc_debug_8) \
+ ((sc_debug_8 & SC_DEBUG_8_first_quad_of_prim_MASK) >> SC_DEBUG_8_first_quad_of_prim_SHIFT)
+#define SC_DEBUG_8_GET_sample_we(sc_debug_8) \
+ ((sc_debug_8 & SC_DEBUG_8_sample_we_MASK) >> SC_DEBUG_8_sample_we_SHIFT)
+#define SC_DEBUG_8_GET_fposition(sc_debug_8) \
+ ((sc_debug_8 & SC_DEBUG_8_fposition_MASK) >> SC_DEBUG_8_fposition_SHIFT)
+#define SC_DEBUG_8_GET_event_id(sc_debug_8) \
+ ((sc_debug_8 & SC_DEBUG_8_event_id_MASK) >> SC_DEBUG_8_event_id_SHIFT)
+#define SC_DEBUG_8_GET_event_flag(sc_debug_8) \
+ ((sc_debug_8 & SC_DEBUG_8_event_flag_MASK) >> SC_DEBUG_8_event_flag_SHIFT)
+#define SC_DEBUG_8_GET_fw_prim_data_valid(sc_debug_8) \
+ ((sc_debug_8 & SC_DEBUG_8_fw_prim_data_valid_MASK) >> SC_DEBUG_8_fw_prim_data_valid_SHIFT)
+#define SC_DEBUG_8_GET_trigger(sc_debug_8) \
+ ((sc_debug_8 & SC_DEBUG_8_trigger_MASK) >> SC_DEBUG_8_trigger_SHIFT)
+
+#define SC_DEBUG_8_SET_sample_last(sc_debug_8_reg, sample_last) \
+ sc_debug_8_reg = (sc_debug_8_reg & ~SC_DEBUG_8_sample_last_MASK) | (sample_last << SC_DEBUG_8_sample_last_SHIFT)
+#define SC_DEBUG_8_SET_sample_mask(sc_debug_8_reg, sample_mask) \
+ sc_debug_8_reg = (sc_debug_8_reg & ~SC_DEBUG_8_sample_mask_MASK) | (sample_mask << SC_DEBUG_8_sample_mask_SHIFT)
+#define SC_DEBUG_8_SET_sample_y(sc_debug_8_reg, sample_y) \
+ sc_debug_8_reg = (sc_debug_8_reg & ~SC_DEBUG_8_sample_y_MASK) | (sample_y << SC_DEBUG_8_sample_y_SHIFT)
+#define SC_DEBUG_8_SET_sample_x(sc_debug_8_reg, sample_x) \
+ sc_debug_8_reg = (sc_debug_8_reg & ~SC_DEBUG_8_sample_x_MASK) | (sample_x << SC_DEBUG_8_sample_x_SHIFT)
+#define SC_DEBUG_8_SET_sample_send(sc_debug_8_reg, sample_send) \
+ sc_debug_8_reg = (sc_debug_8_reg & ~SC_DEBUG_8_sample_send_MASK) | (sample_send << SC_DEBUG_8_sample_send_SHIFT)
+#define SC_DEBUG_8_SET_next_cycle(sc_debug_8_reg, next_cycle) \
+ sc_debug_8_reg = (sc_debug_8_reg & ~SC_DEBUG_8_next_cycle_MASK) | (next_cycle << SC_DEBUG_8_next_cycle_SHIFT)
+#define SC_DEBUG_8_SET_ez_sample_ff_full(sc_debug_8_reg, ez_sample_ff_full) \
+ sc_debug_8_reg = (sc_debug_8_reg & ~SC_DEBUG_8_ez_sample_ff_full_MASK) | (ez_sample_ff_full << SC_DEBUG_8_ez_sample_ff_full_SHIFT)
+#define SC_DEBUG_8_SET_rb_sc_samp_rtr(sc_debug_8_reg, rb_sc_samp_rtr) \
+ sc_debug_8_reg = (sc_debug_8_reg & ~SC_DEBUG_8_rb_sc_samp_rtr_MASK) | (rb_sc_samp_rtr << SC_DEBUG_8_rb_sc_samp_rtr_SHIFT)
+#define SC_DEBUG_8_SET_num_samples(sc_debug_8_reg, num_samples) \
+ sc_debug_8_reg = (sc_debug_8_reg & ~SC_DEBUG_8_num_samples_MASK) | (num_samples << SC_DEBUG_8_num_samples_SHIFT)
+#define SC_DEBUG_8_SET_last_quad_of_tile(sc_debug_8_reg, last_quad_of_tile) \
+ sc_debug_8_reg = (sc_debug_8_reg & ~SC_DEBUG_8_last_quad_of_tile_MASK) | (last_quad_of_tile << SC_DEBUG_8_last_quad_of_tile_SHIFT)
+#define SC_DEBUG_8_SET_last_quad_of_prim(sc_debug_8_reg, last_quad_of_prim) \
+ sc_debug_8_reg = (sc_debug_8_reg & ~SC_DEBUG_8_last_quad_of_prim_MASK) | (last_quad_of_prim << SC_DEBUG_8_last_quad_of_prim_SHIFT)
+#define SC_DEBUG_8_SET_first_quad_of_prim(sc_debug_8_reg, first_quad_of_prim) \
+ sc_debug_8_reg = (sc_debug_8_reg & ~SC_DEBUG_8_first_quad_of_prim_MASK) | (first_quad_of_prim << SC_DEBUG_8_first_quad_of_prim_SHIFT)
+#define SC_DEBUG_8_SET_sample_we(sc_debug_8_reg, sample_we) \
+ sc_debug_8_reg = (sc_debug_8_reg & ~SC_DEBUG_8_sample_we_MASK) | (sample_we << SC_DEBUG_8_sample_we_SHIFT)
+#define SC_DEBUG_8_SET_fposition(sc_debug_8_reg, fposition) \
+ sc_debug_8_reg = (sc_debug_8_reg & ~SC_DEBUG_8_fposition_MASK) | (fposition << SC_DEBUG_8_fposition_SHIFT)
+#define SC_DEBUG_8_SET_event_id(sc_debug_8_reg, event_id) \
+ sc_debug_8_reg = (sc_debug_8_reg & ~SC_DEBUG_8_event_id_MASK) | (event_id << SC_DEBUG_8_event_id_SHIFT)
+#define SC_DEBUG_8_SET_event_flag(sc_debug_8_reg, event_flag) \
+ sc_debug_8_reg = (sc_debug_8_reg & ~SC_DEBUG_8_event_flag_MASK) | (event_flag << SC_DEBUG_8_event_flag_SHIFT)
+#define SC_DEBUG_8_SET_fw_prim_data_valid(sc_debug_8_reg, fw_prim_data_valid) \
+ sc_debug_8_reg = (sc_debug_8_reg & ~SC_DEBUG_8_fw_prim_data_valid_MASK) | (fw_prim_data_valid << SC_DEBUG_8_fw_prim_data_valid_SHIFT)
+#define SC_DEBUG_8_SET_trigger(sc_debug_8_reg, trigger) \
+ sc_debug_8_reg = (sc_debug_8_reg & ~SC_DEBUG_8_trigger_MASK) | (trigger << SC_DEBUG_8_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sc_debug_8_t {
+ unsigned int sample_last : SC_DEBUG_8_sample_last_SIZE;
+ unsigned int sample_mask : SC_DEBUG_8_sample_mask_SIZE;
+ unsigned int sample_y : SC_DEBUG_8_sample_y_SIZE;
+ unsigned int sample_x : SC_DEBUG_8_sample_x_SIZE;
+ unsigned int sample_send : SC_DEBUG_8_sample_send_SIZE;
+ unsigned int next_cycle : SC_DEBUG_8_next_cycle_SIZE;
+ unsigned int ez_sample_ff_full : SC_DEBUG_8_ez_sample_ff_full_SIZE;
+ unsigned int rb_sc_samp_rtr : SC_DEBUG_8_rb_sc_samp_rtr_SIZE;
+ unsigned int num_samples : SC_DEBUG_8_num_samples_SIZE;
+ unsigned int last_quad_of_tile : SC_DEBUG_8_last_quad_of_tile_SIZE;
+ unsigned int last_quad_of_prim : SC_DEBUG_8_last_quad_of_prim_SIZE;
+ unsigned int first_quad_of_prim : SC_DEBUG_8_first_quad_of_prim_SIZE;
+ unsigned int sample_we : SC_DEBUG_8_sample_we_SIZE;
+ unsigned int fposition : SC_DEBUG_8_fposition_SIZE;
+ unsigned int event_id : SC_DEBUG_8_event_id_SIZE;
+ unsigned int event_flag : SC_DEBUG_8_event_flag_SIZE;
+ unsigned int fw_prim_data_valid : SC_DEBUG_8_fw_prim_data_valid_SIZE;
+ unsigned int : 3;
+ unsigned int trigger : SC_DEBUG_8_trigger_SIZE;
+ } sc_debug_8_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sc_debug_8_t {
+ unsigned int trigger : SC_DEBUG_8_trigger_SIZE;
+ unsigned int : 3;
+ unsigned int fw_prim_data_valid : SC_DEBUG_8_fw_prim_data_valid_SIZE;
+ unsigned int event_flag : SC_DEBUG_8_event_flag_SIZE;
+ unsigned int event_id : SC_DEBUG_8_event_id_SIZE;
+ unsigned int fposition : SC_DEBUG_8_fposition_SIZE;
+ unsigned int sample_we : SC_DEBUG_8_sample_we_SIZE;
+ unsigned int first_quad_of_prim : SC_DEBUG_8_first_quad_of_prim_SIZE;
+ unsigned int last_quad_of_prim : SC_DEBUG_8_last_quad_of_prim_SIZE;
+ unsigned int last_quad_of_tile : SC_DEBUG_8_last_quad_of_tile_SIZE;
+ unsigned int num_samples : SC_DEBUG_8_num_samples_SIZE;
+ unsigned int rb_sc_samp_rtr : SC_DEBUG_8_rb_sc_samp_rtr_SIZE;
+ unsigned int ez_sample_ff_full : SC_DEBUG_8_ez_sample_ff_full_SIZE;
+ unsigned int next_cycle : SC_DEBUG_8_next_cycle_SIZE;
+ unsigned int sample_send : SC_DEBUG_8_sample_send_SIZE;
+ unsigned int sample_x : SC_DEBUG_8_sample_x_SIZE;
+ unsigned int sample_y : SC_DEBUG_8_sample_y_SIZE;
+ unsigned int sample_mask : SC_DEBUG_8_sample_mask_SIZE;
+ unsigned int sample_last : SC_DEBUG_8_sample_last_SIZE;
+ } sc_debug_8_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sc_debug_8_t f;
+} sc_debug_8_u;
+
+
+/*
+ * SC_DEBUG_9 struct
+ */
+
+#define SC_DEBUG_9_rb_sc_send_SIZE 1
+#define SC_DEBUG_9_rb_sc_ez_mask_SIZE 4
+#define SC_DEBUG_9_fifo_data_ready_SIZE 1
+#define SC_DEBUG_9_early_z_enable_SIZE 1
+#define SC_DEBUG_9_mask_state_SIZE 2
+#define SC_DEBUG_9_next_ez_mask_SIZE 16
+#define SC_DEBUG_9_mask_ready_SIZE 1
+#define SC_DEBUG_9_drop_sample_SIZE 1
+#define SC_DEBUG_9_fetch_new_sample_data_SIZE 1
+#define SC_DEBUG_9_fetch_new_ez_sample_mask_SIZE 1
+#define SC_DEBUG_9_pkr_fetch_new_sample_data_SIZE 1
+#define SC_DEBUG_9_pkr_fetch_new_prim_data_SIZE 1
+#define SC_DEBUG_9_trigger_SIZE 1
+
+#define SC_DEBUG_9_rb_sc_send_SHIFT 0
+#define SC_DEBUG_9_rb_sc_ez_mask_SHIFT 1
+#define SC_DEBUG_9_fifo_data_ready_SHIFT 5
+#define SC_DEBUG_9_early_z_enable_SHIFT 6
+#define SC_DEBUG_9_mask_state_SHIFT 7
+#define SC_DEBUG_9_next_ez_mask_SHIFT 9
+#define SC_DEBUG_9_mask_ready_SHIFT 25
+#define SC_DEBUG_9_drop_sample_SHIFT 26
+#define SC_DEBUG_9_fetch_new_sample_data_SHIFT 27
+#define SC_DEBUG_9_fetch_new_ez_sample_mask_SHIFT 28
+#define SC_DEBUG_9_pkr_fetch_new_sample_data_SHIFT 29
+#define SC_DEBUG_9_pkr_fetch_new_prim_data_SHIFT 30
+#define SC_DEBUG_9_trigger_SHIFT 31
+
+#define SC_DEBUG_9_rb_sc_send_MASK 0x00000001
+#define SC_DEBUG_9_rb_sc_ez_mask_MASK 0x0000001e
+#define SC_DEBUG_9_fifo_data_ready_MASK 0x00000020
+#define SC_DEBUG_9_early_z_enable_MASK 0x00000040
+#define SC_DEBUG_9_mask_state_MASK 0x00000180
+#define SC_DEBUG_9_next_ez_mask_MASK 0x01fffe00
+#define SC_DEBUG_9_mask_ready_MASK 0x02000000
+#define SC_DEBUG_9_drop_sample_MASK 0x04000000
+#define SC_DEBUG_9_fetch_new_sample_data_MASK 0x08000000
+#define SC_DEBUG_9_fetch_new_ez_sample_mask_MASK 0x10000000
+#define SC_DEBUG_9_pkr_fetch_new_sample_data_MASK 0x20000000
+#define SC_DEBUG_9_pkr_fetch_new_prim_data_MASK 0x40000000
+#define SC_DEBUG_9_trigger_MASK 0x80000000
+
+#define SC_DEBUG_9_MASK \
+ (SC_DEBUG_9_rb_sc_send_MASK | \
+ SC_DEBUG_9_rb_sc_ez_mask_MASK | \
+ SC_DEBUG_9_fifo_data_ready_MASK | \
+ SC_DEBUG_9_early_z_enable_MASK | \
+ SC_DEBUG_9_mask_state_MASK | \
+ SC_DEBUG_9_next_ez_mask_MASK | \
+ SC_DEBUG_9_mask_ready_MASK | \
+ SC_DEBUG_9_drop_sample_MASK | \
+ SC_DEBUG_9_fetch_new_sample_data_MASK | \
+ SC_DEBUG_9_fetch_new_ez_sample_mask_MASK | \
+ SC_DEBUG_9_pkr_fetch_new_sample_data_MASK | \
+ SC_DEBUG_9_pkr_fetch_new_prim_data_MASK | \
+ SC_DEBUG_9_trigger_MASK)
+
+#define SC_DEBUG_9(rb_sc_send, rb_sc_ez_mask, fifo_data_ready, early_z_enable, mask_state, next_ez_mask, mask_ready, drop_sample, fetch_new_sample_data, fetch_new_ez_sample_mask, pkr_fetch_new_sample_data, pkr_fetch_new_prim_data, trigger) \
+ ((rb_sc_send << SC_DEBUG_9_rb_sc_send_SHIFT) | \
+ (rb_sc_ez_mask << SC_DEBUG_9_rb_sc_ez_mask_SHIFT) | \
+ (fifo_data_ready << SC_DEBUG_9_fifo_data_ready_SHIFT) | \
+ (early_z_enable << SC_DEBUG_9_early_z_enable_SHIFT) | \
+ (mask_state << SC_DEBUG_9_mask_state_SHIFT) | \
+ (next_ez_mask << SC_DEBUG_9_next_ez_mask_SHIFT) | \
+ (mask_ready << SC_DEBUG_9_mask_ready_SHIFT) | \
+ (drop_sample << SC_DEBUG_9_drop_sample_SHIFT) | \
+ (fetch_new_sample_data << SC_DEBUG_9_fetch_new_sample_data_SHIFT) | \
+ (fetch_new_ez_sample_mask << SC_DEBUG_9_fetch_new_ez_sample_mask_SHIFT) | \
+ (pkr_fetch_new_sample_data << SC_DEBUG_9_pkr_fetch_new_sample_data_SHIFT) | \
+ (pkr_fetch_new_prim_data << SC_DEBUG_9_pkr_fetch_new_prim_data_SHIFT) | \
+ (trigger << SC_DEBUG_9_trigger_SHIFT))
+
+#define SC_DEBUG_9_GET_rb_sc_send(sc_debug_9) \
+ ((sc_debug_9 & SC_DEBUG_9_rb_sc_send_MASK) >> SC_DEBUG_9_rb_sc_send_SHIFT)
+#define SC_DEBUG_9_GET_rb_sc_ez_mask(sc_debug_9) \
+ ((sc_debug_9 & SC_DEBUG_9_rb_sc_ez_mask_MASK) >> SC_DEBUG_9_rb_sc_ez_mask_SHIFT)
+#define SC_DEBUG_9_GET_fifo_data_ready(sc_debug_9) \
+ ((sc_debug_9 & SC_DEBUG_9_fifo_data_ready_MASK) >> SC_DEBUG_9_fifo_data_ready_SHIFT)
+#define SC_DEBUG_9_GET_early_z_enable(sc_debug_9) \
+ ((sc_debug_9 & SC_DEBUG_9_early_z_enable_MASK) >> SC_DEBUG_9_early_z_enable_SHIFT)
+#define SC_DEBUG_9_GET_mask_state(sc_debug_9) \
+ ((sc_debug_9 & SC_DEBUG_9_mask_state_MASK) >> SC_DEBUG_9_mask_state_SHIFT)
+#define SC_DEBUG_9_GET_next_ez_mask(sc_debug_9) \
+ ((sc_debug_9 & SC_DEBUG_9_next_ez_mask_MASK) >> SC_DEBUG_9_next_ez_mask_SHIFT)
+#define SC_DEBUG_9_GET_mask_ready(sc_debug_9) \
+ ((sc_debug_9 & SC_DEBUG_9_mask_ready_MASK) >> SC_DEBUG_9_mask_ready_SHIFT)
+#define SC_DEBUG_9_GET_drop_sample(sc_debug_9) \
+ ((sc_debug_9 & SC_DEBUG_9_drop_sample_MASK) >> SC_DEBUG_9_drop_sample_SHIFT)
+#define SC_DEBUG_9_GET_fetch_new_sample_data(sc_debug_9) \
+ ((sc_debug_9 & SC_DEBUG_9_fetch_new_sample_data_MASK) >> SC_DEBUG_9_fetch_new_sample_data_SHIFT)
+#define SC_DEBUG_9_GET_fetch_new_ez_sample_mask(sc_debug_9) \
+ ((sc_debug_9 & SC_DEBUG_9_fetch_new_ez_sample_mask_MASK) >> SC_DEBUG_9_fetch_new_ez_sample_mask_SHIFT)
+#define SC_DEBUG_9_GET_pkr_fetch_new_sample_data(sc_debug_9) \
+ ((sc_debug_9 & SC_DEBUG_9_pkr_fetch_new_sample_data_MASK) >> SC_DEBUG_9_pkr_fetch_new_sample_data_SHIFT)
+#define SC_DEBUG_9_GET_pkr_fetch_new_prim_data(sc_debug_9) \
+ ((sc_debug_9 & SC_DEBUG_9_pkr_fetch_new_prim_data_MASK) >> SC_DEBUG_9_pkr_fetch_new_prim_data_SHIFT)
+#define SC_DEBUG_9_GET_trigger(sc_debug_9) \
+ ((sc_debug_9 & SC_DEBUG_9_trigger_MASK) >> SC_DEBUG_9_trigger_SHIFT)
+
+#define SC_DEBUG_9_SET_rb_sc_send(sc_debug_9_reg, rb_sc_send) \
+ sc_debug_9_reg = (sc_debug_9_reg & ~SC_DEBUG_9_rb_sc_send_MASK) | (rb_sc_send << SC_DEBUG_9_rb_sc_send_SHIFT)
+#define SC_DEBUG_9_SET_rb_sc_ez_mask(sc_debug_9_reg, rb_sc_ez_mask) \
+ sc_debug_9_reg = (sc_debug_9_reg & ~SC_DEBUG_9_rb_sc_ez_mask_MASK) | (rb_sc_ez_mask << SC_DEBUG_9_rb_sc_ez_mask_SHIFT)
+#define SC_DEBUG_9_SET_fifo_data_ready(sc_debug_9_reg, fifo_data_ready) \
+ sc_debug_9_reg = (sc_debug_9_reg & ~SC_DEBUG_9_fifo_data_ready_MASK) | (fifo_data_ready << SC_DEBUG_9_fifo_data_ready_SHIFT)
+#define SC_DEBUG_9_SET_early_z_enable(sc_debug_9_reg, early_z_enable) \
+ sc_debug_9_reg = (sc_debug_9_reg & ~SC_DEBUG_9_early_z_enable_MASK) | (early_z_enable << SC_DEBUG_9_early_z_enable_SHIFT)
+#define SC_DEBUG_9_SET_mask_state(sc_debug_9_reg, mask_state) \
+ sc_debug_9_reg = (sc_debug_9_reg & ~SC_DEBUG_9_mask_state_MASK) | (mask_state << SC_DEBUG_9_mask_state_SHIFT)
+#define SC_DEBUG_9_SET_next_ez_mask(sc_debug_9_reg, next_ez_mask) \
+ sc_debug_9_reg = (sc_debug_9_reg & ~SC_DEBUG_9_next_ez_mask_MASK) | (next_ez_mask << SC_DEBUG_9_next_ez_mask_SHIFT)
+#define SC_DEBUG_9_SET_mask_ready(sc_debug_9_reg, mask_ready) \
+ sc_debug_9_reg = (sc_debug_9_reg & ~SC_DEBUG_9_mask_ready_MASK) | (mask_ready << SC_DEBUG_9_mask_ready_SHIFT)
+#define SC_DEBUG_9_SET_drop_sample(sc_debug_9_reg, drop_sample) \
+ sc_debug_9_reg = (sc_debug_9_reg & ~SC_DEBUG_9_drop_sample_MASK) | (drop_sample << SC_DEBUG_9_drop_sample_SHIFT)
+#define SC_DEBUG_9_SET_fetch_new_sample_data(sc_debug_9_reg, fetch_new_sample_data) \
+ sc_debug_9_reg = (sc_debug_9_reg & ~SC_DEBUG_9_fetch_new_sample_data_MASK) | (fetch_new_sample_data << SC_DEBUG_9_fetch_new_sample_data_SHIFT)
+#define SC_DEBUG_9_SET_fetch_new_ez_sample_mask(sc_debug_9_reg, fetch_new_ez_sample_mask) \
+ sc_debug_9_reg = (sc_debug_9_reg & ~SC_DEBUG_9_fetch_new_ez_sample_mask_MASK) | (fetch_new_ez_sample_mask << SC_DEBUG_9_fetch_new_ez_sample_mask_SHIFT)
+#define SC_DEBUG_9_SET_pkr_fetch_new_sample_data(sc_debug_9_reg, pkr_fetch_new_sample_data) \
+ sc_debug_9_reg = (sc_debug_9_reg & ~SC_DEBUG_9_pkr_fetch_new_sample_data_MASK) | (pkr_fetch_new_sample_data << SC_DEBUG_9_pkr_fetch_new_sample_data_SHIFT)
+#define SC_DEBUG_9_SET_pkr_fetch_new_prim_data(sc_debug_9_reg, pkr_fetch_new_prim_data) \
+ sc_debug_9_reg = (sc_debug_9_reg & ~SC_DEBUG_9_pkr_fetch_new_prim_data_MASK) | (pkr_fetch_new_prim_data << SC_DEBUG_9_pkr_fetch_new_prim_data_SHIFT)
+#define SC_DEBUG_9_SET_trigger(sc_debug_9_reg, trigger) \
+ sc_debug_9_reg = (sc_debug_9_reg & ~SC_DEBUG_9_trigger_MASK) | (trigger << SC_DEBUG_9_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sc_debug_9_t {
+ unsigned int rb_sc_send : SC_DEBUG_9_rb_sc_send_SIZE;
+ unsigned int rb_sc_ez_mask : SC_DEBUG_9_rb_sc_ez_mask_SIZE;
+ unsigned int fifo_data_ready : SC_DEBUG_9_fifo_data_ready_SIZE;
+ unsigned int early_z_enable : SC_DEBUG_9_early_z_enable_SIZE;
+ unsigned int mask_state : SC_DEBUG_9_mask_state_SIZE;
+ unsigned int next_ez_mask : SC_DEBUG_9_next_ez_mask_SIZE;
+ unsigned int mask_ready : SC_DEBUG_9_mask_ready_SIZE;
+ unsigned int drop_sample : SC_DEBUG_9_drop_sample_SIZE;
+ unsigned int fetch_new_sample_data : SC_DEBUG_9_fetch_new_sample_data_SIZE;
+ unsigned int fetch_new_ez_sample_mask : SC_DEBUG_9_fetch_new_ez_sample_mask_SIZE;
+ unsigned int pkr_fetch_new_sample_data : SC_DEBUG_9_pkr_fetch_new_sample_data_SIZE;
+ unsigned int pkr_fetch_new_prim_data : SC_DEBUG_9_pkr_fetch_new_prim_data_SIZE;
+ unsigned int trigger : SC_DEBUG_9_trigger_SIZE;
+ } sc_debug_9_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sc_debug_9_t {
+ unsigned int trigger : SC_DEBUG_9_trigger_SIZE;
+ unsigned int pkr_fetch_new_prim_data : SC_DEBUG_9_pkr_fetch_new_prim_data_SIZE;
+ unsigned int pkr_fetch_new_sample_data : SC_DEBUG_9_pkr_fetch_new_sample_data_SIZE;
+ unsigned int fetch_new_ez_sample_mask : SC_DEBUG_9_fetch_new_ez_sample_mask_SIZE;
+ unsigned int fetch_new_sample_data : SC_DEBUG_9_fetch_new_sample_data_SIZE;
+ unsigned int drop_sample : SC_DEBUG_9_drop_sample_SIZE;
+ unsigned int mask_ready : SC_DEBUG_9_mask_ready_SIZE;
+ unsigned int next_ez_mask : SC_DEBUG_9_next_ez_mask_SIZE;
+ unsigned int mask_state : SC_DEBUG_9_mask_state_SIZE;
+ unsigned int early_z_enable : SC_DEBUG_9_early_z_enable_SIZE;
+ unsigned int fifo_data_ready : SC_DEBUG_9_fifo_data_ready_SIZE;
+ unsigned int rb_sc_ez_mask : SC_DEBUG_9_rb_sc_ez_mask_SIZE;
+ unsigned int rb_sc_send : SC_DEBUG_9_rb_sc_send_SIZE;
+ } sc_debug_9_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sc_debug_9_t f;
+} sc_debug_9_u;
+
+
+/*
+ * SC_DEBUG_10 struct
+ */
+
+#define SC_DEBUG_10_combined_sample_mask_SIZE 16
+#define SC_DEBUG_10_trigger_SIZE 1
+
+#define SC_DEBUG_10_combined_sample_mask_SHIFT 0
+#define SC_DEBUG_10_trigger_SHIFT 31
+
+#define SC_DEBUG_10_combined_sample_mask_MASK 0x0000ffff
+#define SC_DEBUG_10_trigger_MASK 0x80000000
+
+#define SC_DEBUG_10_MASK \
+ (SC_DEBUG_10_combined_sample_mask_MASK | \
+ SC_DEBUG_10_trigger_MASK)
+
+#define SC_DEBUG_10(combined_sample_mask, trigger) \
+ ((combined_sample_mask << SC_DEBUG_10_combined_sample_mask_SHIFT) | \
+ (trigger << SC_DEBUG_10_trigger_SHIFT))
+
+#define SC_DEBUG_10_GET_combined_sample_mask(sc_debug_10) \
+ ((sc_debug_10 & SC_DEBUG_10_combined_sample_mask_MASK) >> SC_DEBUG_10_combined_sample_mask_SHIFT)
+#define SC_DEBUG_10_GET_trigger(sc_debug_10) \
+ ((sc_debug_10 & SC_DEBUG_10_trigger_MASK) >> SC_DEBUG_10_trigger_SHIFT)
+
+#define SC_DEBUG_10_SET_combined_sample_mask(sc_debug_10_reg, combined_sample_mask) \
+ sc_debug_10_reg = (sc_debug_10_reg & ~SC_DEBUG_10_combined_sample_mask_MASK) | (combined_sample_mask << SC_DEBUG_10_combined_sample_mask_SHIFT)
+#define SC_DEBUG_10_SET_trigger(sc_debug_10_reg, trigger) \
+ sc_debug_10_reg = (sc_debug_10_reg & ~SC_DEBUG_10_trigger_MASK) | (trigger << SC_DEBUG_10_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sc_debug_10_t {
+ unsigned int combined_sample_mask : SC_DEBUG_10_combined_sample_mask_SIZE;
+ unsigned int : 15;
+ unsigned int trigger : SC_DEBUG_10_trigger_SIZE;
+ } sc_debug_10_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sc_debug_10_t {
+ unsigned int trigger : SC_DEBUG_10_trigger_SIZE;
+ unsigned int : 15;
+ unsigned int combined_sample_mask : SC_DEBUG_10_combined_sample_mask_SIZE;
+ } sc_debug_10_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sc_debug_10_t f;
+} sc_debug_10_u;
+
+
+/*
+ * SC_DEBUG_11 struct
+ */
+
+#define SC_DEBUG_11_ez_sample_data_ready_SIZE 1
+#define SC_DEBUG_11_pkr_fetch_new_sample_data_SIZE 1
+#define SC_DEBUG_11_ez_prim_data_ready_SIZE 1
+#define SC_DEBUG_11_pkr_fetch_new_prim_data_SIZE 1
+#define SC_DEBUG_11_iterator_input_fz_SIZE 1
+#define SC_DEBUG_11_packer_send_quads_SIZE 1
+#define SC_DEBUG_11_packer_send_cmd_SIZE 1
+#define SC_DEBUG_11_packer_send_event_SIZE 1
+#define SC_DEBUG_11_next_state_SIZE 3
+#define SC_DEBUG_11_state_SIZE 3
+#define SC_DEBUG_11_stall_SIZE 1
+#define SC_DEBUG_11_trigger_SIZE 1
+
+#define SC_DEBUG_11_ez_sample_data_ready_SHIFT 0
+#define SC_DEBUG_11_pkr_fetch_new_sample_data_SHIFT 1
+#define SC_DEBUG_11_ez_prim_data_ready_SHIFT 2
+#define SC_DEBUG_11_pkr_fetch_new_prim_data_SHIFT 3
+#define SC_DEBUG_11_iterator_input_fz_SHIFT 4
+#define SC_DEBUG_11_packer_send_quads_SHIFT 5
+#define SC_DEBUG_11_packer_send_cmd_SHIFT 6
+#define SC_DEBUG_11_packer_send_event_SHIFT 7
+#define SC_DEBUG_11_next_state_SHIFT 8
+#define SC_DEBUG_11_state_SHIFT 11
+#define SC_DEBUG_11_stall_SHIFT 14
+#define SC_DEBUG_11_trigger_SHIFT 31
+
+#define SC_DEBUG_11_ez_sample_data_ready_MASK 0x00000001
+#define SC_DEBUG_11_pkr_fetch_new_sample_data_MASK 0x00000002
+#define SC_DEBUG_11_ez_prim_data_ready_MASK 0x00000004
+#define SC_DEBUG_11_pkr_fetch_new_prim_data_MASK 0x00000008
+#define SC_DEBUG_11_iterator_input_fz_MASK 0x00000010
+#define SC_DEBUG_11_packer_send_quads_MASK 0x00000020
+#define SC_DEBUG_11_packer_send_cmd_MASK 0x00000040
+#define SC_DEBUG_11_packer_send_event_MASK 0x00000080
+#define SC_DEBUG_11_next_state_MASK 0x00000700
+#define SC_DEBUG_11_state_MASK 0x00003800
+#define SC_DEBUG_11_stall_MASK 0x00004000
+#define SC_DEBUG_11_trigger_MASK 0x80000000
+
+#define SC_DEBUG_11_MASK \
+ (SC_DEBUG_11_ez_sample_data_ready_MASK | \
+ SC_DEBUG_11_pkr_fetch_new_sample_data_MASK | \
+ SC_DEBUG_11_ez_prim_data_ready_MASK | \
+ SC_DEBUG_11_pkr_fetch_new_prim_data_MASK | \
+ SC_DEBUG_11_iterator_input_fz_MASK | \
+ SC_DEBUG_11_packer_send_quads_MASK | \
+ SC_DEBUG_11_packer_send_cmd_MASK | \
+ SC_DEBUG_11_packer_send_event_MASK | \
+ SC_DEBUG_11_next_state_MASK | \
+ SC_DEBUG_11_state_MASK | \
+ SC_DEBUG_11_stall_MASK | \
+ SC_DEBUG_11_trigger_MASK)
+
+#define SC_DEBUG_11(ez_sample_data_ready, pkr_fetch_new_sample_data, ez_prim_data_ready, pkr_fetch_new_prim_data, iterator_input_fz, packer_send_quads, packer_send_cmd, packer_send_event, next_state, state, stall, trigger) \
+ ((ez_sample_data_ready << SC_DEBUG_11_ez_sample_data_ready_SHIFT) | \
+ (pkr_fetch_new_sample_data << SC_DEBUG_11_pkr_fetch_new_sample_data_SHIFT) | \
+ (ez_prim_data_ready << SC_DEBUG_11_ez_prim_data_ready_SHIFT) | \
+ (pkr_fetch_new_prim_data << SC_DEBUG_11_pkr_fetch_new_prim_data_SHIFT) | \
+ (iterator_input_fz << SC_DEBUG_11_iterator_input_fz_SHIFT) | \
+ (packer_send_quads << SC_DEBUG_11_packer_send_quads_SHIFT) | \
+ (packer_send_cmd << SC_DEBUG_11_packer_send_cmd_SHIFT) | \
+ (packer_send_event << SC_DEBUG_11_packer_send_event_SHIFT) | \
+ (next_state << SC_DEBUG_11_next_state_SHIFT) | \
+ (state << SC_DEBUG_11_state_SHIFT) | \
+ (stall << SC_DEBUG_11_stall_SHIFT) | \
+ (trigger << SC_DEBUG_11_trigger_SHIFT))
+
+#define SC_DEBUG_11_GET_ez_sample_data_ready(sc_debug_11) \
+ ((sc_debug_11 & SC_DEBUG_11_ez_sample_data_ready_MASK) >> SC_DEBUG_11_ez_sample_data_ready_SHIFT)
+#define SC_DEBUG_11_GET_pkr_fetch_new_sample_data(sc_debug_11) \
+ ((sc_debug_11 & SC_DEBUG_11_pkr_fetch_new_sample_data_MASK) >> SC_DEBUG_11_pkr_fetch_new_sample_data_SHIFT)
+#define SC_DEBUG_11_GET_ez_prim_data_ready(sc_debug_11) \
+ ((sc_debug_11 & SC_DEBUG_11_ez_prim_data_ready_MASK) >> SC_DEBUG_11_ez_prim_data_ready_SHIFT)
+#define SC_DEBUG_11_GET_pkr_fetch_new_prim_data(sc_debug_11) \
+ ((sc_debug_11 & SC_DEBUG_11_pkr_fetch_new_prim_data_MASK) >> SC_DEBUG_11_pkr_fetch_new_prim_data_SHIFT)
+#define SC_DEBUG_11_GET_iterator_input_fz(sc_debug_11) \
+ ((sc_debug_11 & SC_DEBUG_11_iterator_input_fz_MASK) >> SC_DEBUG_11_iterator_input_fz_SHIFT)
+#define SC_DEBUG_11_GET_packer_send_quads(sc_debug_11) \
+ ((sc_debug_11 & SC_DEBUG_11_packer_send_quads_MASK) >> SC_DEBUG_11_packer_send_quads_SHIFT)
+#define SC_DEBUG_11_GET_packer_send_cmd(sc_debug_11) \
+ ((sc_debug_11 & SC_DEBUG_11_packer_send_cmd_MASK) >> SC_DEBUG_11_packer_send_cmd_SHIFT)
+#define SC_DEBUG_11_GET_packer_send_event(sc_debug_11) \
+ ((sc_debug_11 & SC_DEBUG_11_packer_send_event_MASK) >> SC_DEBUG_11_packer_send_event_SHIFT)
+#define SC_DEBUG_11_GET_next_state(sc_debug_11) \
+ ((sc_debug_11 & SC_DEBUG_11_next_state_MASK) >> SC_DEBUG_11_next_state_SHIFT)
+#define SC_DEBUG_11_GET_state(sc_debug_11) \
+ ((sc_debug_11 & SC_DEBUG_11_state_MASK) >> SC_DEBUG_11_state_SHIFT)
+#define SC_DEBUG_11_GET_stall(sc_debug_11) \
+ ((sc_debug_11 & SC_DEBUG_11_stall_MASK) >> SC_DEBUG_11_stall_SHIFT)
+#define SC_DEBUG_11_GET_trigger(sc_debug_11) \
+ ((sc_debug_11 & SC_DEBUG_11_trigger_MASK) >> SC_DEBUG_11_trigger_SHIFT)
+
+#define SC_DEBUG_11_SET_ez_sample_data_ready(sc_debug_11_reg, ez_sample_data_ready) \
+ sc_debug_11_reg = (sc_debug_11_reg & ~SC_DEBUG_11_ez_sample_data_ready_MASK) | (ez_sample_data_ready << SC_DEBUG_11_ez_sample_data_ready_SHIFT)
+#define SC_DEBUG_11_SET_pkr_fetch_new_sample_data(sc_debug_11_reg, pkr_fetch_new_sample_data) \
+ sc_debug_11_reg = (sc_debug_11_reg & ~SC_DEBUG_11_pkr_fetch_new_sample_data_MASK) | (pkr_fetch_new_sample_data << SC_DEBUG_11_pkr_fetch_new_sample_data_SHIFT)
+#define SC_DEBUG_11_SET_ez_prim_data_ready(sc_debug_11_reg, ez_prim_data_ready) \
+ sc_debug_11_reg = (sc_debug_11_reg & ~SC_DEBUG_11_ez_prim_data_ready_MASK) | (ez_prim_data_ready << SC_DEBUG_11_ez_prim_data_ready_SHIFT)
+#define SC_DEBUG_11_SET_pkr_fetch_new_prim_data(sc_debug_11_reg, pkr_fetch_new_prim_data) \
+ sc_debug_11_reg = (sc_debug_11_reg & ~SC_DEBUG_11_pkr_fetch_new_prim_data_MASK) | (pkr_fetch_new_prim_data << SC_DEBUG_11_pkr_fetch_new_prim_data_SHIFT)
+#define SC_DEBUG_11_SET_iterator_input_fz(sc_debug_11_reg, iterator_input_fz) \
+ sc_debug_11_reg = (sc_debug_11_reg & ~SC_DEBUG_11_iterator_input_fz_MASK) | (iterator_input_fz << SC_DEBUG_11_iterator_input_fz_SHIFT)
+#define SC_DEBUG_11_SET_packer_send_quads(sc_debug_11_reg, packer_send_quads) \
+ sc_debug_11_reg = (sc_debug_11_reg & ~SC_DEBUG_11_packer_send_quads_MASK) | (packer_send_quads << SC_DEBUG_11_packer_send_quads_SHIFT)
+#define SC_DEBUG_11_SET_packer_send_cmd(sc_debug_11_reg, packer_send_cmd) \
+ sc_debug_11_reg = (sc_debug_11_reg & ~SC_DEBUG_11_packer_send_cmd_MASK) | (packer_send_cmd << SC_DEBUG_11_packer_send_cmd_SHIFT)
+#define SC_DEBUG_11_SET_packer_send_event(sc_debug_11_reg, packer_send_event) \
+ sc_debug_11_reg = (sc_debug_11_reg & ~SC_DEBUG_11_packer_send_event_MASK) | (packer_send_event << SC_DEBUG_11_packer_send_event_SHIFT)
+#define SC_DEBUG_11_SET_next_state(sc_debug_11_reg, next_state) \
+ sc_debug_11_reg = (sc_debug_11_reg & ~SC_DEBUG_11_next_state_MASK) | (next_state << SC_DEBUG_11_next_state_SHIFT)
+#define SC_DEBUG_11_SET_state(sc_debug_11_reg, state) \
+ sc_debug_11_reg = (sc_debug_11_reg & ~SC_DEBUG_11_state_MASK) | (state << SC_DEBUG_11_state_SHIFT)
+#define SC_DEBUG_11_SET_stall(sc_debug_11_reg, stall) \
+ sc_debug_11_reg = (sc_debug_11_reg & ~SC_DEBUG_11_stall_MASK) | (stall << SC_DEBUG_11_stall_SHIFT)
+#define SC_DEBUG_11_SET_trigger(sc_debug_11_reg, trigger) \
+ sc_debug_11_reg = (sc_debug_11_reg & ~SC_DEBUG_11_trigger_MASK) | (trigger << SC_DEBUG_11_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sc_debug_11_t {
+ unsigned int ez_sample_data_ready : SC_DEBUG_11_ez_sample_data_ready_SIZE;
+ unsigned int pkr_fetch_new_sample_data : SC_DEBUG_11_pkr_fetch_new_sample_data_SIZE;
+ unsigned int ez_prim_data_ready : SC_DEBUG_11_ez_prim_data_ready_SIZE;
+ unsigned int pkr_fetch_new_prim_data : SC_DEBUG_11_pkr_fetch_new_prim_data_SIZE;
+ unsigned int iterator_input_fz : SC_DEBUG_11_iterator_input_fz_SIZE;
+ unsigned int packer_send_quads : SC_DEBUG_11_packer_send_quads_SIZE;
+ unsigned int packer_send_cmd : SC_DEBUG_11_packer_send_cmd_SIZE;
+ unsigned int packer_send_event : SC_DEBUG_11_packer_send_event_SIZE;
+ unsigned int next_state : SC_DEBUG_11_next_state_SIZE;
+ unsigned int state : SC_DEBUG_11_state_SIZE;
+ unsigned int stall : SC_DEBUG_11_stall_SIZE;
+ unsigned int : 16;
+ unsigned int trigger : SC_DEBUG_11_trigger_SIZE;
+ } sc_debug_11_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sc_debug_11_t {
+ unsigned int trigger : SC_DEBUG_11_trigger_SIZE;
+ unsigned int : 16;
+ unsigned int stall : SC_DEBUG_11_stall_SIZE;
+ unsigned int state : SC_DEBUG_11_state_SIZE;
+ unsigned int next_state : SC_DEBUG_11_next_state_SIZE;
+ unsigned int packer_send_event : SC_DEBUG_11_packer_send_event_SIZE;
+ unsigned int packer_send_cmd : SC_DEBUG_11_packer_send_cmd_SIZE;
+ unsigned int packer_send_quads : SC_DEBUG_11_packer_send_quads_SIZE;
+ unsigned int iterator_input_fz : SC_DEBUG_11_iterator_input_fz_SIZE;
+ unsigned int pkr_fetch_new_prim_data : SC_DEBUG_11_pkr_fetch_new_prim_data_SIZE;
+ unsigned int ez_prim_data_ready : SC_DEBUG_11_ez_prim_data_ready_SIZE;
+ unsigned int pkr_fetch_new_sample_data : SC_DEBUG_11_pkr_fetch_new_sample_data_SIZE;
+ unsigned int ez_sample_data_ready : SC_DEBUG_11_ez_sample_data_ready_SIZE;
+ } sc_debug_11_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sc_debug_11_t f;
+} sc_debug_11_u;
+
+
+/*
+ * SC_DEBUG_12 struct
+ */
+
+#define SC_DEBUG_12_SQ_iterator_free_buff_SIZE 1
+#define SC_DEBUG_12_event_id_SIZE 5
+#define SC_DEBUG_12_event_flag_SIZE 1
+#define SC_DEBUG_12_itercmdfifo_busy_nc_dly_SIZE 1
+#define SC_DEBUG_12_itercmdfifo_full_SIZE 1
+#define SC_DEBUG_12_itercmdfifo_empty_SIZE 1
+#define SC_DEBUG_12_iter_ds_one_clk_command_SIZE 1
+#define SC_DEBUG_12_iter_ds_end_of_prim0_SIZE 1
+#define SC_DEBUG_12_iter_ds_end_of_vector_SIZE 1
+#define SC_DEBUG_12_iter_qdhit0_SIZE 1
+#define SC_DEBUG_12_bc_use_centers_reg_SIZE 1
+#define SC_DEBUG_12_bc_output_xy_reg_SIZE 1
+#define SC_DEBUG_12_iter_phase_out_SIZE 2
+#define SC_DEBUG_12_iter_phase_reg_SIZE 2
+#define SC_DEBUG_12_iterator_SP_valid_SIZE 1
+#define SC_DEBUG_12_eopv_reg_SIZE 1
+#define SC_DEBUG_12_one_clk_cmd_reg_SIZE 1
+#define SC_DEBUG_12_iter_dx_end_of_prim_SIZE 1
+#define SC_DEBUG_12_trigger_SIZE 1
+
+#define SC_DEBUG_12_SQ_iterator_free_buff_SHIFT 0
+#define SC_DEBUG_12_event_id_SHIFT 1
+#define SC_DEBUG_12_event_flag_SHIFT 6
+#define SC_DEBUG_12_itercmdfifo_busy_nc_dly_SHIFT 7
+#define SC_DEBUG_12_itercmdfifo_full_SHIFT 8
+#define SC_DEBUG_12_itercmdfifo_empty_SHIFT 9
+#define SC_DEBUG_12_iter_ds_one_clk_command_SHIFT 10
+#define SC_DEBUG_12_iter_ds_end_of_prim0_SHIFT 11
+#define SC_DEBUG_12_iter_ds_end_of_vector_SHIFT 12
+#define SC_DEBUG_12_iter_qdhit0_SHIFT 13
+#define SC_DEBUG_12_bc_use_centers_reg_SHIFT 14
+#define SC_DEBUG_12_bc_output_xy_reg_SHIFT 15
+#define SC_DEBUG_12_iter_phase_out_SHIFT 16
+#define SC_DEBUG_12_iter_phase_reg_SHIFT 18
+#define SC_DEBUG_12_iterator_SP_valid_SHIFT 20
+#define SC_DEBUG_12_eopv_reg_SHIFT 21
+#define SC_DEBUG_12_one_clk_cmd_reg_SHIFT 22
+#define SC_DEBUG_12_iter_dx_end_of_prim_SHIFT 23
+#define SC_DEBUG_12_trigger_SHIFT 31
+
+#define SC_DEBUG_12_SQ_iterator_free_buff_MASK 0x00000001
+#define SC_DEBUG_12_event_id_MASK 0x0000003e
+#define SC_DEBUG_12_event_flag_MASK 0x00000040
+#define SC_DEBUG_12_itercmdfifo_busy_nc_dly_MASK 0x00000080
+#define SC_DEBUG_12_itercmdfifo_full_MASK 0x00000100
+#define SC_DEBUG_12_itercmdfifo_empty_MASK 0x00000200
+#define SC_DEBUG_12_iter_ds_one_clk_command_MASK 0x00000400
+#define SC_DEBUG_12_iter_ds_end_of_prim0_MASK 0x00000800
+#define SC_DEBUG_12_iter_ds_end_of_vector_MASK 0x00001000
+#define SC_DEBUG_12_iter_qdhit0_MASK 0x00002000
+#define SC_DEBUG_12_bc_use_centers_reg_MASK 0x00004000
+#define SC_DEBUG_12_bc_output_xy_reg_MASK 0x00008000
+#define SC_DEBUG_12_iter_phase_out_MASK 0x00030000
+#define SC_DEBUG_12_iter_phase_reg_MASK 0x000c0000
+#define SC_DEBUG_12_iterator_SP_valid_MASK 0x00100000
+#define SC_DEBUG_12_eopv_reg_MASK 0x00200000
+#define SC_DEBUG_12_one_clk_cmd_reg_MASK 0x00400000
+#define SC_DEBUG_12_iter_dx_end_of_prim_MASK 0x00800000
+#define SC_DEBUG_12_trigger_MASK 0x80000000
+
+#define SC_DEBUG_12_MASK \
+ (SC_DEBUG_12_SQ_iterator_free_buff_MASK | \
+ SC_DEBUG_12_event_id_MASK | \
+ SC_DEBUG_12_event_flag_MASK | \
+ SC_DEBUG_12_itercmdfifo_busy_nc_dly_MASK | \
+ SC_DEBUG_12_itercmdfifo_full_MASK | \
+ SC_DEBUG_12_itercmdfifo_empty_MASK | \
+ SC_DEBUG_12_iter_ds_one_clk_command_MASK | \
+ SC_DEBUG_12_iter_ds_end_of_prim0_MASK | \
+ SC_DEBUG_12_iter_ds_end_of_vector_MASK | \
+ SC_DEBUG_12_iter_qdhit0_MASK | \
+ SC_DEBUG_12_bc_use_centers_reg_MASK | \
+ SC_DEBUG_12_bc_output_xy_reg_MASK | \
+ SC_DEBUG_12_iter_phase_out_MASK | \
+ SC_DEBUG_12_iter_phase_reg_MASK | \
+ SC_DEBUG_12_iterator_SP_valid_MASK | \
+ SC_DEBUG_12_eopv_reg_MASK | \
+ SC_DEBUG_12_one_clk_cmd_reg_MASK | \
+ SC_DEBUG_12_iter_dx_end_of_prim_MASK | \
+ SC_DEBUG_12_trigger_MASK)
+
+#define SC_DEBUG_12(sq_iterator_free_buff, event_id, event_flag, itercmdfifo_busy_nc_dly, itercmdfifo_full, itercmdfifo_empty, iter_ds_one_clk_command, iter_ds_end_of_prim0, iter_ds_end_of_vector, iter_qdhit0, bc_use_centers_reg, bc_output_xy_reg, iter_phase_out, iter_phase_reg, iterator_sp_valid, eopv_reg, one_clk_cmd_reg, iter_dx_end_of_prim, trigger) \
+ ((sq_iterator_free_buff << SC_DEBUG_12_SQ_iterator_free_buff_SHIFT) | \
+ (event_id << SC_DEBUG_12_event_id_SHIFT) | \
+ (event_flag << SC_DEBUG_12_event_flag_SHIFT) | \
+ (itercmdfifo_busy_nc_dly << SC_DEBUG_12_itercmdfifo_busy_nc_dly_SHIFT) | \
+ (itercmdfifo_full << SC_DEBUG_12_itercmdfifo_full_SHIFT) | \
+ (itercmdfifo_empty << SC_DEBUG_12_itercmdfifo_empty_SHIFT) | \
+ (iter_ds_one_clk_command << SC_DEBUG_12_iter_ds_one_clk_command_SHIFT) | \
+ (iter_ds_end_of_prim0 << SC_DEBUG_12_iter_ds_end_of_prim0_SHIFT) | \
+ (iter_ds_end_of_vector << SC_DEBUG_12_iter_ds_end_of_vector_SHIFT) | \
+ (iter_qdhit0 << SC_DEBUG_12_iter_qdhit0_SHIFT) | \
+ (bc_use_centers_reg << SC_DEBUG_12_bc_use_centers_reg_SHIFT) | \
+ (bc_output_xy_reg << SC_DEBUG_12_bc_output_xy_reg_SHIFT) | \
+ (iter_phase_out << SC_DEBUG_12_iter_phase_out_SHIFT) | \
+ (iter_phase_reg << SC_DEBUG_12_iter_phase_reg_SHIFT) | \
+ (iterator_sp_valid << SC_DEBUG_12_iterator_SP_valid_SHIFT) | \
+ (eopv_reg << SC_DEBUG_12_eopv_reg_SHIFT) | \
+ (one_clk_cmd_reg << SC_DEBUG_12_one_clk_cmd_reg_SHIFT) | \
+ (iter_dx_end_of_prim << SC_DEBUG_12_iter_dx_end_of_prim_SHIFT) | \
+ (trigger << SC_DEBUG_12_trigger_SHIFT))
+
+#define SC_DEBUG_12_GET_SQ_iterator_free_buff(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_SQ_iterator_free_buff_MASK) >> SC_DEBUG_12_SQ_iterator_free_buff_SHIFT)
+#define SC_DEBUG_12_GET_event_id(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_event_id_MASK) >> SC_DEBUG_12_event_id_SHIFT)
+#define SC_DEBUG_12_GET_event_flag(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_event_flag_MASK) >> SC_DEBUG_12_event_flag_SHIFT)
+#define SC_DEBUG_12_GET_itercmdfifo_busy_nc_dly(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_itercmdfifo_busy_nc_dly_MASK) >> SC_DEBUG_12_itercmdfifo_busy_nc_dly_SHIFT)
+#define SC_DEBUG_12_GET_itercmdfifo_full(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_itercmdfifo_full_MASK) >> SC_DEBUG_12_itercmdfifo_full_SHIFT)
+#define SC_DEBUG_12_GET_itercmdfifo_empty(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_itercmdfifo_empty_MASK) >> SC_DEBUG_12_itercmdfifo_empty_SHIFT)
+#define SC_DEBUG_12_GET_iter_ds_one_clk_command(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_iter_ds_one_clk_command_MASK) >> SC_DEBUG_12_iter_ds_one_clk_command_SHIFT)
+#define SC_DEBUG_12_GET_iter_ds_end_of_prim0(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_iter_ds_end_of_prim0_MASK) >> SC_DEBUG_12_iter_ds_end_of_prim0_SHIFT)
+#define SC_DEBUG_12_GET_iter_ds_end_of_vector(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_iter_ds_end_of_vector_MASK) >> SC_DEBUG_12_iter_ds_end_of_vector_SHIFT)
+#define SC_DEBUG_12_GET_iter_qdhit0(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_iter_qdhit0_MASK) >> SC_DEBUG_12_iter_qdhit0_SHIFT)
+#define SC_DEBUG_12_GET_bc_use_centers_reg(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_bc_use_centers_reg_MASK) >> SC_DEBUG_12_bc_use_centers_reg_SHIFT)
+#define SC_DEBUG_12_GET_bc_output_xy_reg(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_bc_output_xy_reg_MASK) >> SC_DEBUG_12_bc_output_xy_reg_SHIFT)
+#define SC_DEBUG_12_GET_iter_phase_out(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_iter_phase_out_MASK) >> SC_DEBUG_12_iter_phase_out_SHIFT)
+#define SC_DEBUG_12_GET_iter_phase_reg(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_iter_phase_reg_MASK) >> SC_DEBUG_12_iter_phase_reg_SHIFT)
+#define SC_DEBUG_12_GET_iterator_SP_valid(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_iterator_SP_valid_MASK) >> SC_DEBUG_12_iterator_SP_valid_SHIFT)
+#define SC_DEBUG_12_GET_eopv_reg(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_eopv_reg_MASK) >> SC_DEBUG_12_eopv_reg_SHIFT)
+#define SC_DEBUG_12_GET_one_clk_cmd_reg(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_one_clk_cmd_reg_MASK) >> SC_DEBUG_12_one_clk_cmd_reg_SHIFT)
+#define SC_DEBUG_12_GET_iter_dx_end_of_prim(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_iter_dx_end_of_prim_MASK) >> SC_DEBUG_12_iter_dx_end_of_prim_SHIFT)
+#define SC_DEBUG_12_GET_trigger(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_trigger_MASK) >> SC_DEBUG_12_trigger_SHIFT)
+
+#define SC_DEBUG_12_SET_SQ_iterator_free_buff(sc_debug_12_reg, sq_iterator_free_buff) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_SQ_iterator_free_buff_MASK) | (sq_iterator_free_buff << SC_DEBUG_12_SQ_iterator_free_buff_SHIFT)
+#define SC_DEBUG_12_SET_event_id(sc_debug_12_reg, event_id) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_event_id_MASK) | (event_id << SC_DEBUG_12_event_id_SHIFT)
+#define SC_DEBUG_12_SET_event_flag(sc_debug_12_reg, event_flag) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_event_flag_MASK) | (event_flag << SC_DEBUG_12_event_flag_SHIFT)
+#define SC_DEBUG_12_SET_itercmdfifo_busy_nc_dly(sc_debug_12_reg, itercmdfifo_busy_nc_dly) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_itercmdfifo_busy_nc_dly_MASK) | (itercmdfifo_busy_nc_dly << SC_DEBUG_12_itercmdfifo_busy_nc_dly_SHIFT)
+#define SC_DEBUG_12_SET_itercmdfifo_full(sc_debug_12_reg, itercmdfifo_full) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_itercmdfifo_full_MASK) | (itercmdfifo_full << SC_DEBUG_12_itercmdfifo_full_SHIFT)
+#define SC_DEBUG_12_SET_itercmdfifo_empty(sc_debug_12_reg, itercmdfifo_empty) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_itercmdfifo_empty_MASK) | (itercmdfifo_empty << SC_DEBUG_12_itercmdfifo_empty_SHIFT)
+#define SC_DEBUG_12_SET_iter_ds_one_clk_command(sc_debug_12_reg, iter_ds_one_clk_command) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_iter_ds_one_clk_command_MASK) | (iter_ds_one_clk_command << SC_DEBUG_12_iter_ds_one_clk_command_SHIFT)
+#define SC_DEBUG_12_SET_iter_ds_end_of_prim0(sc_debug_12_reg, iter_ds_end_of_prim0) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_iter_ds_end_of_prim0_MASK) | (iter_ds_end_of_prim0 << SC_DEBUG_12_iter_ds_end_of_prim0_SHIFT)
+#define SC_DEBUG_12_SET_iter_ds_end_of_vector(sc_debug_12_reg, iter_ds_end_of_vector) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_iter_ds_end_of_vector_MASK) | (iter_ds_end_of_vector << SC_DEBUG_12_iter_ds_end_of_vector_SHIFT)
+#define SC_DEBUG_12_SET_iter_qdhit0(sc_debug_12_reg, iter_qdhit0) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_iter_qdhit0_MASK) | (iter_qdhit0 << SC_DEBUG_12_iter_qdhit0_SHIFT)
+#define SC_DEBUG_12_SET_bc_use_centers_reg(sc_debug_12_reg, bc_use_centers_reg) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_bc_use_centers_reg_MASK) | (bc_use_centers_reg << SC_DEBUG_12_bc_use_centers_reg_SHIFT)
+#define SC_DEBUG_12_SET_bc_output_xy_reg(sc_debug_12_reg, bc_output_xy_reg) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_bc_output_xy_reg_MASK) | (bc_output_xy_reg << SC_DEBUG_12_bc_output_xy_reg_SHIFT)
+#define SC_DEBUG_12_SET_iter_phase_out(sc_debug_12_reg, iter_phase_out) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_iter_phase_out_MASK) | (iter_phase_out << SC_DEBUG_12_iter_phase_out_SHIFT)
+#define SC_DEBUG_12_SET_iter_phase_reg(sc_debug_12_reg, iter_phase_reg) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_iter_phase_reg_MASK) | (iter_phase_reg << SC_DEBUG_12_iter_phase_reg_SHIFT)
+#define SC_DEBUG_12_SET_iterator_SP_valid(sc_debug_12_reg, iterator_sp_valid) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_iterator_SP_valid_MASK) | (iterator_sp_valid << SC_DEBUG_12_iterator_SP_valid_SHIFT)
+#define SC_DEBUG_12_SET_eopv_reg(sc_debug_12_reg, eopv_reg) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_eopv_reg_MASK) | (eopv_reg << SC_DEBUG_12_eopv_reg_SHIFT)
+#define SC_DEBUG_12_SET_one_clk_cmd_reg(sc_debug_12_reg, one_clk_cmd_reg) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_one_clk_cmd_reg_MASK) | (one_clk_cmd_reg << SC_DEBUG_12_one_clk_cmd_reg_SHIFT)
+#define SC_DEBUG_12_SET_iter_dx_end_of_prim(sc_debug_12_reg, iter_dx_end_of_prim) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_iter_dx_end_of_prim_MASK) | (iter_dx_end_of_prim << SC_DEBUG_12_iter_dx_end_of_prim_SHIFT)
+#define SC_DEBUG_12_SET_trigger(sc_debug_12_reg, trigger) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_trigger_MASK) | (trigger << SC_DEBUG_12_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sc_debug_12_t {
+ unsigned int sq_iterator_free_buff : SC_DEBUG_12_SQ_iterator_free_buff_SIZE;
+ unsigned int event_id : SC_DEBUG_12_event_id_SIZE;
+ unsigned int event_flag : SC_DEBUG_12_event_flag_SIZE;
+ unsigned int itercmdfifo_busy_nc_dly : SC_DEBUG_12_itercmdfifo_busy_nc_dly_SIZE;
+ unsigned int itercmdfifo_full : SC_DEBUG_12_itercmdfifo_full_SIZE;
+ unsigned int itercmdfifo_empty : SC_DEBUG_12_itercmdfifo_empty_SIZE;
+ unsigned int iter_ds_one_clk_command : SC_DEBUG_12_iter_ds_one_clk_command_SIZE;
+ unsigned int iter_ds_end_of_prim0 : SC_DEBUG_12_iter_ds_end_of_prim0_SIZE;
+ unsigned int iter_ds_end_of_vector : SC_DEBUG_12_iter_ds_end_of_vector_SIZE;
+ unsigned int iter_qdhit0 : SC_DEBUG_12_iter_qdhit0_SIZE;
+ unsigned int bc_use_centers_reg : SC_DEBUG_12_bc_use_centers_reg_SIZE;
+ unsigned int bc_output_xy_reg : SC_DEBUG_12_bc_output_xy_reg_SIZE;
+ unsigned int iter_phase_out : SC_DEBUG_12_iter_phase_out_SIZE;
+ unsigned int iter_phase_reg : SC_DEBUG_12_iter_phase_reg_SIZE;
+ unsigned int iterator_sp_valid : SC_DEBUG_12_iterator_SP_valid_SIZE;
+ unsigned int eopv_reg : SC_DEBUG_12_eopv_reg_SIZE;
+ unsigned int one_clk_cmd_reg : SC_DEBUG_12_one_clk_cmd_reg_SIZE;
+ unsigned int iter_dx_end_of_prim : SC_DEBUG_12_iter_dx_end_of_prim_SIZE;
+ unsigned int : 7;
+ unsigned int trigger : SC_DEBUG_12_trigger_SIZE;
+ } sc_debug_12_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sc_debug_12_t {
+ unsigned int trigger : SC_DEBUG_12_trigger_SIZE;
+ unsigned int : 7;
+ unsigned int iter_dx_end_of_prim : SC_DEBUG_12_iter_dx_end_of_prim_SIZE;
+ unsigned int one_clk_cmd_reg : SC_DEBUG_12_one_clk_cmd_reg_SIZE;
+ unsigned int eopv_reg : SC_DEBUG_12_eopv_reg_SIZE;
+ unsigned int iterator_sp_valid : SC_DEBUG_12_iterator_SP_valid_SIZE;
+ unsigned int iter_phase_reg : SC_DEBUG_12_iter_phase_reg_SIZE;
+ unsigned int iter_phase_out : SC_DEBUG_12_iter_phase_out_SIZE;
+ unsigned int bc_output_xy_reg : SC_DEBUG_12_bc_output_xy_reg_SIZE;
+ unsigned int bc_use_centers_reg : SC_DEBUG_12_bc_use_centers_reg_SIZE;
+ unsigned int iter_qdhit0 : SC_DEBUG_12_iter_qdhit0_SIZE;
+ unsigned int iter_ds_end_of_vector : SC_DEBUG_12_iter_ds_end_of_vector_SIZE;
+ unsigned int iter_ds_end_of_prim0 : SC_DEBUG_12_iter_ds_end_of_prim0_SIZE;
+ unsigned int iter_ds_one_clk_command : SC_DEBUG_12_iter_ds_one_clk_command_SIZE;
+ unsigned int itercmdfifo_empty : SC_DEBUG_12_itercmdfifo_empty_SIZE;
+ unsigned int itercmdfifo_full : SC_DEBUG_12_itercmdfifo_full_SIZE;
+ unsigned int itercmdfifo_busy_nc_dly : SC_DEBUG_12_itercmdfifo_busy_nc_dly_SIZE;
+ unsigned int event_flag : SC_DEBUG_12_event_flag_SIZE;
+ unsigned int event_id : SC_DEBUG_12_event_id_SIZE;
+ unsigned int sq_iterator_free_buff : SC_DEBUG_12_SQ_iterator_free_buff_SIZE;
+ } sc_debug_12_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sc_debug_12_t f;
+} sc_debug_12_u;
+
+
+#endif
+
+
+#if !defined (_VGT_FIDDLE_H)
+#define _VGT_FIDDLE_H
+
+/*******************************************************
+ * Enums
+ *******************************************************/
+
+/*
+ * VGT_OUT_PRIM_TYPE enum
+ */
+
+#define VGT_OUT_POINT 0x00000000
+#define VGT_OUT_LINE 0x00000001
+#define VGT_OUT_TRI 0x00000002
+#define VGT_OUT_RECT_V0 0x00000003
+#define VGT_OUT_RECT_V1 0x00000004
+#define VGT_OUT_RECT_V2 0x00000005
+#define VGT_OUT_RECT_V3 0x00000006
+#define VGT_OUT_RESERVED 0x00000007
+#define VGT_TE_QUAD 0x00000008
+#define VGT_TE_PRIM_INDEX_LINE 0x00000009
+#define VGT_TE_PRIM_INDEX_TRI 0x0000000a
+#define VGT_TE_PRIM_INDEX_QUAD 0x0000000b
+
+
+/*******************************************************
+ * Values
+ *******************************************************/
+
+
+/*******************************************************
+ * Structures
+ *******************************************************/
+
+/*
+ * GFX_COPY_STATE struct
+ */
+
+#define GFX_COPY_STATE_SRC_STATE_ID_SIZE 1
+
+#define GFX_COPY_STATE_SRC_STATE_ID_SHIFT 0
+
+#define GFX_COPY_STATE_SRC_STATE_ID_MASK 0x00000001
+
+#define GFX_COPY_STATE_MASK \
+ (GFX_COPY_STATE_SRC_STATE_ID_MASK)
+
+#define GFX_COPY_STATE(src_state_id) \
+ ((src_state_id << GFX_COPY_STATE_SRC_STATE_ID_SHIFT))
+
+#define GFX_COPY_STATE_GET_SRC_STATE_ID(gfx_copy_state) \
+ ((gfx_copy_state & GFX_COPY_STATE_SRC_STATE_ID_MASK) >> GFX_COPY_STATE_SRC_STATE_ID_SHIFT)
+
+#define GFX_COPY_STATE_SET_SRC_STATE_ID(gfx_copy_state_reg, src_state_id) \
+ gfx_copy_state_reg = (gfx_copy_state_reg & ~GFX_COPY_STATE_SRC_STATE_ID_MASK) | (src_state_id << GFX_COPY_STATE_SRC_STATE_ID_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _gfx_copy_state_t {
+ unsigned int src_state_id : GFX_COPY_STATE_SRC_STATE_ID_SIZE;
+ unsigned int : 31;
+ } gfx_copy_state_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _gfx_copy_state_t {
+ unsigned int : 31;
+ unsigned int src_state_id : GFX_COPY_STATE_SRC_STATE_ID_SIZE;
+ } gfx_copy_state_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ gfx_copy_state_t f;
+} gfx_copy_state_u;
+
+
+/*
+ * VGT_DRAW_INITIATOR struct
+ */
+
+#define VGT_DRAW_INITIATOR_PRIM_TYPE_SIZE 6
+#define VGT_DRAW_INITIATOR_SOURCE_SELECT_SIZE 2
+#define VGT_DRAW_INITIATOR_FACENESS_CULL_SELECT_SIZE 2
+#define VGT_DRAW_INITIATOR_INDEX_SIZE_SIZE 1
+#define VGT_DRAW_INITIATOR_NOT_EOP_SIZE 1
+#define VGT_DRAW_INITIATOR_SMALL_INDEX_SIZE 1
+#define VGT_DRAW_INITIATOR_PRE_FETCH_CULL_ENABLE_SIZE 1
+#define VGT_DRAW_INITIATOR_GRP_CULL_ENABLE_SIZE 1
+#define VGT_DRAW_INITIATOR_NUM_INDICES_SIZE 16
+
+#define VGT_DRAW_INITIATOR_PRIM_TYPE_SHIFT 0
+#define VGT_DRAW_INITIATOR_SOURCE_SELECT_SHIFT 6
+#define VGT_DRAW_INITIATOR_FACENESS_CULL_SELECT_SHIFT 8
+#define VGT_DRAW_INITIATOR_INDEX_SIZE_SHIFT 11
+#define VGT_DRAW_INITIATOR_NOT_EOP_SHIFT 12
+#define VGT_DRAW_INITIATOR_SMALL_INDEX_SHIFT 13
+#define VGT_DRAW_INITIATOR_PRE_FETCH_CULL_ENABLE_SHIFT 14
+#define VGT_DRAW_INITIATOR_GRP_CULL_ENABLE_SHIFT 15
+#define VGT_DRAW_INITIATOR_NUM_INDICES_SHIFT 16
+
+#define VGT_DRAW_INITIATOR_PRIM_TYPE_MASK 0x0000003f
+#define VGT_DRAW_INITIATOR_SOURCE_SELECT_MASK 0x000000c0
+#define VGT_DRAW_INITIATOR_FACENESS_CULL_SELECT_MASK 0x00000300
+#define VGT_DRAW_INITIATOR_INDEX_SIZE_MASK 0x00000800
+#define VGT_DRAW_INITIATOR_NOT_EOP_MASK 0x00001000
+#define VGT_DRAW_INITIATOR_SMALL_INDEX_MASK 0x00002000
+#define VGT_DRAW_INITIATOR_PRE_FETCH_CULL_ENABLE_MASK 0x00004000
+#define VGT_DRAW_INITIATOR_GRP_CULL_ENABLE_MASK 0x00008000
+#define VGT_DRAW_INITIATOR_NUM_INDICES_MASK 0xffff0000
+
+#define VGT_DRAW_INITIATOR_MASK \
+ (VGT_DRAW_INITIATOR_PRIM_TYPE_MASK | \
+ VGT_DRAW_INITIATOR_SOURCE_SELECT_MASK | \
+ VGT_DRAW_INITIATOR_FACENESS_CULL_SELECT_MASK | \
+ VGT_DRAW_INITIATOR_INDEX_SIZE_MASK | \
+ VGT_DRAW_INITIATOR_NOT_EOP_MASK | \
+ VGT_DRAW_INITIATOR_SMALL_INDEX_MASK | \
+ VGT_DRAW_INITIATOR_PRE_FETCH_CULL_ENABLE_MASK | \
+ VGT_DRAW_INITIATOR_GRP_CULL_ENABLE_MASK | \
+ VGT_DRAW_INITIATOR_NUM_INDICES_MASK)
+
+#define VGT_DRAW_INITIATOR(prim_type, source_select, faceness_cull_select, index_size, not_eop, small_index, pre_fetch_cull_enable, grp_cull_enable, num_indices) \
+ ((prim_type << VGT_DRAW_INITIATOR_PRIM_TYPE_SHIFT) | \
+ (source_select << VGT_DRAW_INITIATOR_SOURCE_SELECT_SHIFT) | \
+ (faceness_cull_select << VGT_DRAW_INITIATOR_FACENESS_CULL_SELECT_SHIFT) | \
+ (index_size << VGT_DRAW_INITIATOR_INDEX_SIZE_SHIFT) | \
+ (not_eop << VGT_DRAW_INITIATOR_NOT_EOP_SHIFT) | \
+ (small_index << VGT_DRAW_INITIATOR_SMALL_INDEX_SHIFT) | \
+ (pre_fetch_cull_enable << VGT_DRAW_INITIATOR_PRE_FETCH_CULL_ENABLE_SHIFT) | \
+ (grp_cull_enable << VGT_DRAW_INITIATOR_GRP_CULL_ENABLE_SHIFT) | \
+ (num_indices << VGT_DRAW_INITIATOR_NUM_INDICES_SHIFT))
+
+#define VGT_DRAW_INITIATOR_GET_PRIM_TYPE(vgt_draw_initiator) \
+ ((vgt_draw_initiator & VGT_DRAW_INITIATOR_PRIM_TYPE_MASK) >> VGT_DRAW_INITIATOR_PRIM_TYPE_SHIFT)
+#define VGT_DRAW_INITIATOR_GET_SOURCE_SELECT(vgt_draw_initiator) \
+ ((vgt_draw_initiator & VGT_DRAW_INITIATOR_SOURCE_SELECT_MASK) >> VGT_DRAW_INITIATOR_SOURCE_SELECT_SHIFT)
+#define VGT_DRAW_INITIATOR_GET_FACENESS_CULL_SELECT(vgt_draw_initiator) \
+ ((vgt_draw_initiator & VGT_DRAW_INITIATOR_FACENESS_CULL_SELECT_MASK) >> VGT_DRAW_INITIATOR_FACENESS_CULL_SELECT_SHIFT)
+#define VGT_DRAW_INITIATOR_GET_INDEX_SIZE(vgt_draw_initiator) \
+ ((vgt_draw_initiator & VGT_DRAW_INITIATOR_INDEX_SIZE_MASK) >> VGT_DRAW_INITIATOR_INDEX_SIZE_SHIFT)
+#define VGT_DRAW_INITIATOR_GET_NOT_EOP(vgt_draw_initiator) \
+ ((vgt_draw_initiator & VGT_DRAW_INITIATOR_NOT_EOP_MASK) >> VGT_DRAW_INITIATOR_NOT_EOP_SHIFT)
+#define VGT_DRAW_INITIATOR_GET_SMALL_INDEX(vgt_draw_initiator) \
+ ((vgt_draw_initiator & VGT_DRAW_INITIATOR_SMALL_INDEX_MASK) >> VGT_DRAW_INITIATOR_SMALL_INDEX_SHIFT)
+#define VGT_DRAW_INITIATOR_GET_PRE_FETCH_CULL_ENABLE(vgt_draw_initiator) \
+ ((vgt_draw_initiator & VGT_DRAW_INITIATOR_PRE_FETCH_CULL_ENABLE_MASK) >> VGT_DRAW_INITIATOR_PRE_FETCH_CULL_ENABLE_SHIFT)
+#define VGT_DRAW_INITIATOR_GET_GRP_CULL_ENABLE(vgt_draw_initiator) \
+ ((vgt_draw_initiator & VGT_DRAW_INITIATOR_GRP_CULL_ENABLE_MASK) >> VGT_DRAW_INITIATOR_GRP_CULL_ENABLE_SHIFT)
+#define VGT_DRAW_INITIATOR_GET_NUM_INDICES(vgt_draw_initiator) \
+ ((vgt_draw_initiator & VGT_DRAW_INITIATOR_NUM_INDICES_MASK) >> VGT_DRAW_INITIATOR_NUM_INDICES_SHIFT)
+
+#define VGT_DRAW_INITIATOR_SET_PRIM_TYPE(vgt_draw_initiator_reg, prim_type) \
+ vgt_draw_initiator_reg = (vgt_draw_initiator_reg & ~VGT_DRAW_INITIATOR_PRIM_TYPE_MASK) | (prim_type << VGT_DRAW_INITIATOR_PRIM_TYPE_SHIFT)
+#define VGT_DRAW_INITIATOR_SET_SOURCE_SELECT(vgt_draw_initiator_reg, source_select) \
+ vgt_draw_initiator_reg = (vgt_draw_initiator_reg & ~VGT_DRAW_INITIATOR_SOURCE_SELECT_MASK) | (source_select << VGT_DRAW_INITIATOR_SOURCE_SELECT_SHIFT)
+#define VGT_DRAW_INITIATOR_SET_FACENESS_CULL_SELECT(vgt_draw_initiator_reg, faceness_cull_select) \
+ vgt_draw_initiator_reg = (vgt_draw_initiator_reg & ~VGT_DRAW_INITIATOR_FACENESS_CULL_SELECT_MASK) | (faceness_cull_select << VGT_DRAW_INITIATOR_FACENESS_CULL_SELECT_SHIFT)
+#define VGT_DRAW_INITIATOR_SET_INDEX_SIZE(vgt_draw_initiator_reg, index_size) \
+ vgt_draw_initiator_reg = (vgt_draw_initiator_reg & ~VGT_DRAW_INITIATOR_INDEX_SIZE_MASK) | (index_size << VGT_DRAW_INITIATOR_INDEX_SIZE_SHIFT)
+#define VGT_DRAW_INITIATOR_SET_NOT_EOP(vgt_draw_initiator_reg, not_eop) \
+ vgt_draw_initiator_reg = (vgt_draw_initiator_reg & ~VGT_DRAW_INITIATOR_NOT_EOP_MASK) | (not_eop << VGT_DRAW_INITIATOR_NOT_EOP_SHIFT)
+#define VGT_DRAW_INITIATOR_SET_SMALL_INDEX(vgt_draw_initiator_reg, small_index) \
+ vgt_draw_initiator_reg = (vgt_draw_initiator_reg & ~VGT_DRAW_INITIATOR_SMALL_INDEX_MASK) | (small_index << VGT_DRAW_INITIATOR_SMALL_INDEX_SHIFT)
+#define VGT_DRAW_INITIATOR_SET_PRE_FETCH_CULL_ENABLE(vgt_draw_initiator_reg, pre_fetch_cull_enable) \
+ vgt_draw_initiator_reg = (vgt_draw_initiator_reg & ~VGT_DRAW_INITIATOR_PRE_FETCH_CULL_ENABLE_MASK) | (pre_fetch_cull_enable << VGT_DRAW_INITIATOR_PRE_FETCH_CULL_ENABLE_SHIFT)
+#define VGT_DRAW_INITIATOR_SET_GRP_CULL_ENABLE(vgt_draw_initiator_reg, grp_cull_enable) \
+ vgt_draw_initiator_reg = (vgt_draw_initiator_reg & ~VGT_DRAW_INITIATOR_GRP_CULL_ENABLE_MASK) | (grp_cull_enable << VGT_DRAW_INITIATOR_GRP_CULL_ENABLE_SHIFT)
+#define VGT_DRAW_INITIATOR_SET_NUM_INDICES(vgt_draw_initiator_reg, num_indices) \
+ vgt_draw_initiator_reg = (vgt_draw_initiator_reg & ~VGT_DRAW_INITIATOR_NUM_INDICES_MASK) | (num_indices << VGT_DRAW_INITIATOR_NUM_INDICES_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_draw_initiator_t {
+ unsigned int prim_type : VGT_DRAW_INITIATOR_PRIM_TYPE_SIZE;
+ unsigned int source_select : VGT_DRAW_INITIATOR_SOURCE_SELECT_SIZE;
+ unsigned int faceness_cull_select : VGT_DRAW_INITIATOR_FACENESS_CULL_SELECT_SIZE;
+ unsigned int : 1;
+ unsigned int index_size : VGT_DRAW_INITIATOR_INDEX_SIZE_SIZE;
+ unsigned int not_eop : VGT_DRAW_INITIATOR_NOT_EOP_SIZE;
+ unsigned int small_index : VGT_DRAW_INITIATOR_SMALL_INDEX_SIZE;
+ unsigned int pre_fetch_cull_enable : VGT_DRAW_INITIATOR_PRE_FETCH_CULL_ENABLE_SIZE;
+ unsigned int grp_cull_enable : VGT_DRAW_INITIATOR_GRP_CULL_ENABLE_SIZE;
+ unsigned int num_indices : VGT_DRAW_INITIATOR_NUM_INDICES_SIZE;
+ } vgt_draw_initiator_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_draw_initiator_t {
+ unsigned int num_indices : VGT_DRAW_INITIATOR_NUM_INDICES_SIZE;
+ unsigned int grp_cull_enable : VGT_DRAW_INITIATOR_GRP_CULL_ENABLE_SIZE;
+ unsigned int pre_fetch_cull_enable : VGT_DRAW_INITIATOR_PRE_FETCH_CULL_ENABLE_SIZE;
+ unsigned int small_index : VGT_DRAW_INITIATOR_SMALL_INDEX_SIZE;
+ unsigned int not_eop : VGT_DRAW_INITIATOR_NOT_EOP_SIZE;
+ unsigned int index_size : VGT_DRAW_INITIATOR_INDEX_SIZE_SIZE;
+ unsigned int : 1;
+ unsigned int faceness_cull_select : VGT_DRAW_INITIATOR_FACENESS_CULL_SELECT_SIZE;
+ unsigned int source_select : VGT_DRAW_INITIATOR_SOURCE_SELECT_SIZE;
+ unsigned int prim_type : VGT_DRAW_INITIATOR_PRIM_TYPE_SIZE;
+ } vgt_draw_initiator_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_draw_initiator_t f;
+} vgt_draw_initiator_u;
+
+
+/*
+ * VGT_EVENT_INITIATOR struct
+ */
+
+#define VGT_EVENT_INITIATOR_EVENT_TYPE_SIZE 6
+
+#define VGT_EVENT_INITIATOR_EVENT_TYPE_SHIFT 0
+
+#define VGT_EVENT_INITIATOR_EVENT_TYPE_MASK 0x0000003f
+
+#define VGT_EVENT_INITIATOR_MASK \
+ (VGT_EVENT_INITIATOR_EVENT_TYPE_MASK)
+
+#define VGT_EVENT_INITIATOR(event_type) \
+ ((event_type << VGT_EVENT_INITIATOR_EVENT_TYPE_SHIFT))
+
+#define VGT_EVENT_INITIATOR_GET_EVENT_TYPE(vgt_event_initiator) \
+ ((vgt_event_initiator & VGT_EVENT_INITIATOR_EVENT_TYPE_MASK) >> VGT_EVENT_INITIATOR_EVENT_TYPE_SHIFT)
+
+#define VGT_EVENT_INITIATOR_SET_EVENT_TYPE(vgt_event_initiator_reg, event_type) \
+ vgt_event_initiator_reg = (vgt_event_initiator_reg & ~VGT_EVENT_INITIATOR_EVENT_TYPE_MASK) | (event_type << VGT_EVENT_INITIATOR_EVENT_TYPE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_event_initiator_t {
+ unsigned int event_type : VGT_EVENT_INITIATOR_EVENT_TYPE_SIZE;
+ unsigned int : 26;
+ } vgt_event_initiator_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_event_initiator_t {
+ unsigned int : 26;
+ unsigned int event_type : VGT_EVENT_INITIATOR_EVENT_TYPE_SIZE;
+ } vgt_event_initiator_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_event_initiator_t f;
+} vgt_event_initiator_u;
+
+
+/*
+ * VGT_DMA_BASE struct
+ */
+
+#define VGT_DMA_BASE_BASE_ADDR_SIZE 32
+
+#define VGT_DMA_BASE_BASE_ADDR_SHIFT 0
+
+#define VGT_DMA_BASE_BASE_ADDR_MASK 0xffffffff
+
+#define VGT_DMA_BASE_MASK \
+ (VGT_DMA_BASE_BASE_ADDR_MASK)
+
+#define VGT_DMA_BASE(base_addr) \
+ ((base_addr << VGT_DMA_BASE_BASE_ADDR_SHIFT))
+
+#define VGT_DMA_BASE_GET_BASE_ADDR(vgt_dma_base) \
+ ((vgt_dma_base & VGT_DMA_BASE_BASE_ADDR_MASK) >> VGT_DMA_BASE_BASE_ADDR_SHIFT)
+
+#define VGT_DMA_BASE_SET_BASE_ADDR(vgt_dma_base_reg, base_addr) \
+ vgt_dma_base_reg = (vgt_dma_base_reg & ~VGT_DMA_BASE_BASE_ADDR_MASK) | (base_addr << VGT_DMA_BASE_BASE_ADDR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_dma_base_t {
+ unsigned int base_addr : VGT_DMA_BASE_BASE_ADDR_SIZE;
+ } vgt_dma_base_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_dma_base_t {
+ unsigned int base_addr : VGT_DMA_BASE_BASE_ADDR_SIZE;
+ } vgt_dma_base_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_dma_base_t f;
+} vgt_dma_base_u;
+
+
+/*
+ * VGT_DMA_SIZE struct
+ */
+
+#define VGT_DMA_SIZE_NUM_WORDS_SIZE 24
+#define VGT_DMA_SIZE_SWAP_MODE_SIZE 2
+
+#define VGT_DMA_SIZE_NUM_WORDS_SHIFT 0
+#define VGT_DMA_SIZE_SWAP_MODE_SHIFT 30
+
+#define VGT_DMA_SIZE_NUM_WORDS_MASK 0x00ffffff
+#define VGT_DMA_SIZE_SWAP_MODE_MASK 0xc0000000
+
+#define VGT_DMA_SIZE_MASK \
+ (VGT_DMA_SIZE_NUM_WORDS_MASK | \
+ VGT_DMA_SIZE_SWAP_MODE_MASK)
+
+#define VGT_DMA_SIZE(num_words, swap_mode) \
+ ((num_words << VGT_DMA_SIZE_NUM_WORDS_SHIFT) | \
+ (swap_mode << VGT_DMA_SIZE_SWAP_MODE_SHIFT))
+
+#define VGT_DMA_SIZE_GET_NUM_WORDS(vgt_dma_size) \
+ ((vgt_dma_size & VGT_DMA_SIZE_NUM_WORDS_MASK) >> VGT_DMA_SIZE_NUM_WORDS_SHIFT)
+#define VGT_DMA_SIZE_GET_SWAP_MODE(vgt_dma_size) \
+ ((vgt_dma_size & VGT_DMA_SIZE_SWAP_MODE_MASK) >> VGT_DMA_SIZE_SWAP_MODE_SHIFT)
+
+#define VGT_DMA_SIZE_SET_NUM_WORDS(vgt_dma_size_reg, num_words) \
+ vgt_dma_size_reg = (vgt_dma_size_reg & ~VGT_DMA_SIZE_NUM_WORDS_MASK) | (num_words << VGT_DMA_SIZE_NUM_WORDS_SHIFT)
+#define VGT_DMA_SIZE_SET_SWAP_MODE(vgt_dma_size_reg, swap_mode) \
+ vgt_dma_size_reg = (vgt_dma_size_reg & ~VGT_DMA_SIZE_SWAP_MODE_MASK) | (swap_mode << VGT_DMA_SIZE_SWAP_MODE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_dma_size_t {
+ unsigned int num_words : VGT_DMA_SIZE_NUM_WORDS_SIZE;
+ unsigned int : 6;
+ unsigned int swap_mode : VGT_DMA_SIZE_SWAP_MODE_SIZE;
+ } vgt_dma_size_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_dma_size_t {
+ unsigned int swap_mode : VGT_DMA_SIZE_SWAP_MODE_SIZE;
+ unsigned int : 6;
+ unsigned int num_words : VGT_DMA_SIZE_NUM_WORDS_SIZE;
+ } vgt_dma_size_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_dma_size_t f;
+} vgt_dma_size_u;
+
+
+/*
+ * VGT_BIN_BASE struct
+ */
+
+#define VGT_BIN_BASE_BIN_BASE_ADDR_SIZE 32
+
+#define VGT_BIN_BASE_BIN_BASE_ADDR_SHIFT 0
+
+#define VGT_BIN_BASE_BIN_BASE_ADDR_MASK 0xffffffff
+
+#define VGT_BIN_BASE_MASK \
+ (VGT_BIN_BASE_BIN_BASE_ADDR_MASK)
+
+#define VGT_BIN_BASE(bin_base_addr) \
+ ((bin_base_addr << VGT_BIN_BASE_BIN_BASE_ADDR_SHIFT))
+
+#define VGT_BIN_BASE_GET_BIN_BASE_ADDR(vgt_bin_base) \
+ ((vgt_bin_base & VGT_BIN_BASE_BIN_BASE_ADDR_MASK) >> VGT_BIN_BASE_BIN_BASE_ADDR_SHIFT)
+
+#define VGT_BIN_BASE_SET_BIN_BASE_ADDR(vgt_bin_base_reg, bin_base_addr) \
+ vgt_bin_base_reg = (vgt_bin_base_reg & ~VGT_BIN_BASE_BIN_BASE_ADDR_MASK) | (bin_base_addr << VGT_BIN_BASE_BIN_BASE_ADDR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_bin_base_t {
+ unsigned int bin_base_addr : VGT_BIN_BASE_BIN_BASE_ADDR_SIZE;
+ } vgt_bin_base_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_bin_base_t {
+ unsigned int bin_base_addr : VGT_BIN_BASE_BIN_BASE_ADDR_SIZE;
+ } vgt_bin_base_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_bin_base_t f;
+} vgt_bin_base_u;
+
+
+/*
+ * VGT_BIN_SIZE struct
+ */
+
+#define VGT_BIN_SIZE_NUM_WORDS_SIZE 24
+#define VGT_BIN_SIZE_FACENESS_FETCH_SIZE 1
+#define VGT_BIN_SIZE_FACENESS_RESET_SIZE 1
+
+#define VGT_BIN_SIZE_NUM_WORDS_SHIFT 0
+#define VGT_BIN_SIZE_FACENESS_FETCH_SHIFT 30
+#define VGT_BIN_SIZE_FACENESS_RESET_SHIFT 31
+
+#define VGT_BIN_SIZE_NUM_WORDS_MASK 0x00ffffff
+#define VGT_BIN_SIZE_FACENESS_FETCH_MASK 0x40000000
+#define VGT_BIN_SIZE_FACENESS_RESET_MASK 0x80000000
+
+#define VGT_BIN_SIZE_MASK \
+ (VGT_BIN_SIZE_NUM_WORDS_MASK | \
+ VGT_BIN_SIZE_FACENESS_FETCH_MASK | \
+ VGT_BIN_SIZE_FACENESS_RESET_MASK)
+
+#define VGT_BIN_SIZE(num_words, faceness_fetch, faceness_reset) \
+ ((num_words << VGT_BIN_SIZE_NUM_WORDS_SHIFT) | \
+ (faceness_fetch << VGT_BIN_SIZE_FACENESS_FETCH_SHIFT) | \
+ (faceness_reset << VGT_BIN_SIZE_FACENESS_RESET_SHIFT))
+
+#define VGT_BIN_SIZE_GET_NUM_WORDS(vgt_bin_size) \
+ ((vgt_bin_size & VGT_BIN_SIZE_NUM_WORDS_MASK) >> VGT_BIN_SIZE_NUM_WORDS_SHIFT)
+#define VGT_BIN_SIZE_GET_FACENESS_FETCH(vgt_bin_size) \
+ ((vgt_bin_size & VGT_BIN_SIZE_FACENESS_FETCH_MASK) >> VGT_BIN_SIZE_FACENESS_FETCH_SHIFT)
+#define VGT_BIN_SIZE_GET_FACENESS_RESET(vgt_bin_size) \
+ ((vgt_bin_size & VGT_BIN_SIZE_FACENESS_RESET_MASK) >> VGT_BIN_SIZE_FACENESS_RESET_SHIFT)
+
+#define VGT_BIN_SIZE_SET_NUM_WORDS(vgt_bin_size_reg, num_words) \
+ vgt_bin_size_reg = (vgt_bin_size_reg & ~VGT_BIN_SIZE_NUM_WORDS_MASK) | (num_words << VGT_BIN_SIZE_NUM_WORDS_SHIFT)
+#define VGT_BIN_SIZE_SET_FACENESS_FETCH(vgt_bin_size_reg, faceness_fetch) \
+ vgt_bin_size_reg = (vgt_bin_size_reg & ~VGT_BIN_SIZE_FACENESS_FETCH_MASK) | (faceness_fetch << VGT_BIN_SIZE_FACENESS_FETCH_SHIFT)
+#define VGT_BIN_SIZE_SET_FACENESS_RESET(vgt_bin_size_reg, faceness_reset) \
+ vgt_bin_size_reg = (vgt_bin_size_reg & ~VGT_BIN_SIZE_FACENESS_RESET_MASK) | (faceness_reset << VGT_BIN_SIZE_FACENESS_RESET_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_bin_size_t {
+ unsigned int num_words : VGT_BIN_SIZE_NUM_WORDS_SIZE;
+ unsigned int : 6;
+ unsigned int faceness_fetch : VGT_BIN_SIZE_FACENESS_FETCH_SIZE;
+ unsigned int faceness_reset : VGT_BIN_SIZE_FACENESS_RESET_SIZE;
+ } vgt_bin_size_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_bin_size_t {
+ unsigned int faceness_reset : VGT_BIN_SIZE_FACENESS_RESET_SIZE;
+ unsigned int faceness_fetch : VGT_BIN_SIZE_FACENESS_FETCH_SIZE;
+ unsigned int : 6;
+ unsigned int num_words : VGT_BIN_SIZE_NUM_WORDS_SIZE;
+ } vgt_bin_size_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_bin_size_t f;
+} vgt_bin_size_u;
+
+
+/*
+ * VGT_CURRENT_BIN_ID_MIN struct
+ */
+
+#define VGT_CURRENT_BIN_ID_MIN_COLUMN_SIZE 3
+#define VGT_CURRENT_BIN_ID_MIN_ROW_SIZE 3
+#define VGT_CURRENT_BIN_ID_MIN_GUARD_BAND_SIZE 3
+
+#define VGT_CURRENT_BIN_ID_MIN_COLUMN_SHIFT 0
+#define VGT_CURRENT_BIN_ID_MIN_ROW_SHIFT 3
+#define VGT_CURRENT_BIN_ID_MIN_GUARD_BAND_SHIFT 6
+
+#define VGT_CURRENT_BIN_ID_MIN_COLUMN_MASK 0x00000007
+#define VGT_CURRENT_BIN_ID_MIN_ROW_MASK 0x00000038
+#define VGT_CURRENT_BIN_ID_MIN_GUARD_BAND_MASK 0x000001c0
+
+#define VGT_CURRENT_BIN_ID_MIN_MASK \
+ (VGT_CURRENT_BIN_ID_MIN_COLUMN_MASK | \
+ VGT_CURRENT_BIN_ID_MIN_ROW_MASK | \
+ VGT_CURRENT_BIN_ID_MIN_GUARD_BAND_MASK)
+
+#define VGT_CURRENT_BIN_ID_MIN(column, row, guard_band) \
+ ((column << VGT_CURRENT_BIN_ID_MIN_COLUMN_SHIFT) | \
+ (row << VGT_CURRENT_BIN_ID_MIN_ROW_SHIFT) | \
+ (guard_band << VGT_CURRENT_BIN_ID_MIN_GUARD_BAND_SHIFT))
+
+#define VGT_CURRENT_BIN_ID_MIN_GET_COLUMN(vgt_current_bin_id_min) \
+ ((vgt_current_bin_id_min & VGT_CURRENT_BIN_ID_MIN_COLUMN_MASK) >> VGT_CURRENT_BIN_ID_MIN_COLUMN_SHIFT)
+#define VGT_CURRENT_BIN_ID_MIN_GET_ROW(vgt_current_bin_id_min) \
+ ((vgt_current_bin_id_min & VGT_CURRENT_BIN_ID_MIN_ROW_MASK) >> VGT_CURRENT_BIN_ID_MIN_ROW_SHIFT)
+#define VGT_CURRENT_BIN_ID_MIN_GET_GUARD_BAND(vgt_current_bin_id_min) \
+ ((vgt_current_bin_id_min & VGT_CURRENT_BIN_ID_MIN_GUARD_BAND_MASK) >> VGT_CURRENT_BIN_ID_MIN_GUARD_BAND_SHIFT)
+
+#define VGT_CURRENT_BIN_ID_MIN_SET_COLUMN(vgt_current_bin_id_min_reg, column) \
+ vgt_current_bin_id_min_reg = (vgt_current_bin_id_min_reg & ~VGT_CURRENT_BIN_ID_MIN_COLUMN_MASK) | (column << VGT_CURRENT_BIN_ID_MIN_COLUMN_SHIFT)
+#define VGT_CURRENT_BIN_ID_MIN_SET_ROW(vgt_current_bin_id_min_reg, row) \
+ vgt_current_bin_id_min_reg = (vgt_current_bin_id_min_reg & ~VGT_CURRENT_BIN_ID_MIN_ROW_MASK) | (row << VGT_CURRENT_BIN_ID_MIN_ROW_SHIFT)
+#define VGT_CURRENT_BIN_ID_MIN_SET_GUARD_BAND(vgt_current_bin_id_min_reg, guard_band) \
+ vgt_current_bin_id_min_reg = (vgt_current_bin_id_min_reg & ~VGT_CURRENT_BIN_ID_MIN_GUARD_BAND_MASK) | (guard_band << VGT_CURRENT_BIN_ID_MIN_GUARD_BAND_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_current_bin_id_min_t {
+ unsigned int column : VGT_CURRENT_BIN_ID_MIN_COLUMN_SIZE;
+ unsigned int row : VGT_CURRENT_BIN_ID_MIN_ROW_SIZE;
+ unsigned int guard_band : VGT_CURRENT_BIN_ID_MIN_GUARD_BAND_SIZE;
+ unsigned int : 23;
+ } vgt_current_bin_id_min_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_current_bin_id_min_t {
+ unsigned int : 23;
+ unsigned int guard_band : VGT_CURRENT_BIN_ID_MIN_GUARD_BAND_SIZE;
+ unsigned int row : VGT_CURRENT_BIN_ID_MIN_ROW_SIZE;
+ unsigned int column : VGT_CURRENT_BIN_ID_MIN_COLUMN_SIZE;
+ } vgt_current_bin_id_min_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_current_bin_id_min_t f;
+} vgt_current_bin_id_min_u;
+
+
+/*
+ * VGT_CURRENT_BIN_ID_MAX struct
+ */
+
+#define VGT_CURRENT_BIN_ID_MAX_COLUMN_SIZE 3
+#define VGT_CURRENT_BIN_ID_MAX_ROW_SIZE 3
+#define VGT_CURRENT_BIN_ID_MAX_GUARD_BAND_SIZE 3
+
+#define VGT_CURRENT_BIN_ID_MAX_COLUMN_SHIFT 0
+#define VGT_CURRENT_BIN_ID_MAX_ROW_SHIFT 3
+#define VGT_CURRENT_BIN_ID_MAX_GUARD_BAND_SHIFT 6
+
+#define VGT_CURRENT_BIN_ID_MAX_COLUMN_MASK 0x00000007
+#define VGT_CURRENT_BIN_ID_MAX_ROW_MASK 0x00000038
+#define VGT_CURRENT_BIN_ID_MAX_GUARD_BAND_MASK 0x000001c0
+
+#define VGT_CURRENT_BIN_ID_MAX_MASK \
+ (VGT_CURRENT_BIN_ID_MAX_COLUMN_MASK | \
+ VGT_CURRENT_BIN_ID_MAX_ROW_MASK | \
+ VGT_CURRENT_BIN_ID_MAX_GUARD_BAND_MASK)
+
+#define VGT_CURRENT_BIN_ID_MAX(column, row, guard_band) \
+ ((column << VGT_CURRENT_BIN_ID_MAX_COLUMN_SHIFT) | \
+ (row << VGT_CURRENT_BIN_ID_MAX_ROW_SHIFT) | \
+ (guard_band << VGT_CURRENT_BIN_ID_MAX_GUARD_BAND_SHIFT))
+
+#define VGT_CURRENT_BIN_ID_MAX_GET_COLUMN(vgt_current_bin_id_max) \
+ ((vgt_current_bin_id_max & VGT_CURRENT_BIN_ID_MAX_COLUMN_MASK) >> VGT_CURRENT_BIN_ID_MAX_COLUMN_SHIFT)
+#define VGT_CURRENT_BIN_ID_MAX_GET_ROW(vgt_current_bin_id_max) \
+ ((vgt_current_bin_id_max & VGT_CURRENT_BIN_ID_MAX_ROW_MASK) >> VGT_CURRENT_BIN_ID_MAX_ROW_SHIFT)
+#define VGT_CURRENT_BIN_ID_MAX_GET_GUARD_BAND(vgt_current_bin_id_max) \
+ ((vgt_current_bin_id_max & VGT_CURRENT_BIN_ID_MAX_GUARD_BAND_MASK) >> VGT_CURRENT_BIN_ID_MAX_GUARD_BAND_SHIFT)
+
+#define VGT_CURRENT_BIN_ID_MAX_SET_COLUMN(vgt_current_bin_id_max_reg, column) \
+ vgt_current_bin_id_max_reg = (vgt_current_bin_id_max_reg & ~VGT_CURRENT_BIN_ID_MAX_COLUMN_MASK) | (column << VGT_CURRENT_BIN_ID_MAX_COLUMN_SHIFT)
+#define VGT_CURRENT_BIN_ID_MAX_SET_ROW(vgt_current_bin_id_max_reg, row) \
+ vgt_current_bin_id_max_reg = (vgt_current_bin_id_max_reg & ~VGT_CURRENT_BIN_ID_MAX_ROW_MASK) | (row << VGT_CURRENT_BIN_ID_MAX_ROW_SHIFT)
+#define VGT_CURRENT_BIN_ID_MAX_SET_GUARD_BAND(vgt_current_bin_id_max_reg, guard_band) \
+ vgt_current_bin_id_max_reg = (vgt_current_bin_id_max_reg & ~VGT_CURRENT_BIN_ID_MAX_GUARD_BAND_MASK) | (guard_band << VGT_CURRENT_BIN_ID_MAX_GUARD_BAND_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_current_bin_id_max_t {
+ unsigned int column : VGT_CURRENT_BIN_ID_MAX_COLUMN_SIZE;
+ unsigned int row : VGT_CURRENT_BIN_ID_MAX_ROW_SIZE;
+ unsigned int guard_band : VGT_CURRENT_BIN_ID_MAX_GUARD_BAND_SIZE;
+ unsigned int : 23;
+ } vgt_current_bin_id_max_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_current_bin_id_max_t {
+ unsigned int : 23;
+ unsigned int guard_band : VGT_CURRENT_BIN_ID_MAX_GUARD_BAND_SIZE;
+ unsigned int row : VGT_CURRENT_BIN_ID_MAX_ROW_SIZE;
+ unsigned int column : VGT_CURRENT_BIN_ID_MAX_COLUMN_SIZE;
+ } vgt_current_bin_id_max_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_current_bin_id_max_t f;
+} vgt_current_bin_id_max_u;
+
+
+/*
+ * VGT_IMMED_DATA struct
+ */
+
+#define VGT_IMMED_DATA_DATA_SIZE 32
+
+#define VGT_IMMED_DATA_DATA_SHIFT 0
+
+#define VGT_IMMED_DATA_DATA_MASK 0xffffffff
+
+#define VGT_IMMED_DATA_MASK \
+ (VGT_IMMED_DATA_DATA_MASK)
+
+#define VGT_IMMED_DATA(data) \
+ ((data << VGT_IMMED_DATA_DATA_SHIFT))
+
+#define VGT_IMMED_DATA_GET_DATA(vgt_immed_data) \
+ ((vgt_immed_data & VGT_IMMED_DATA_DATA_MASK) >> VGT_IMMED_DATA_DATA_SHIFT)
+
+#define VGT_IMMED_DATA_SET_DATA(vgt_immed_data_reg, data) \
+ vgt_immed_data_reg = (vgt_immed_data_reg & ~VGT_IMMED_DATA_DATA_MASK) | (data << VGT_IMMED_DATA_DATA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_immed_data_t {
+ unsigned int data : VGT_IMMED_DATA_DATA_SIZE;
+ } vgt_immed_data_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_immed_data_t {
+ unsigned int data : VGT_IMMED_DATA_DATA_SIZE;
+ } vgt_immed_data_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_immed_data_t f;
+} vgt_immed_data_u;
+
+
+/*
+ * VGT_MAX_VTX_INDX struct
+ */
+
+#define VGT_MAX_VTX_INDX_MAX_INDX_SIZE 24
+
+#define VGT_MAX_VTX_INDX_MAX_INDX_SHIFT 0
+
+#define VGT_MAX_VTX_INDX_MAX_INDX_MASK 0x00ffffff
+
+#define VGT_MAX_VTX_INDX_MASK \
+ (VGT_MAX_VTX_INDX_MAX_INDX_MASK)
+
+#define VGT_MAX_VTX_INDX(max_indx) \
+ ((max_indx << VGT_MAX_VTX_INDX_MAX_INDX_SHIFT))
+
+#define VGT_MAX_VTX_INDX_GET_MAX_INDX(vgt_max_vtx_indx) \
+ ((vgt_max_vtx_indx & VGT_MAX_VTX_INDX_MAX_INDX_MASK) >> VGT_MAX_VTX_INDX_MAX_INDX_SHIFT)
+
+#define VGT_MAX_VTX_INDX_SET_MAX_INDX(vgt_max_vtx_indx_reg, max_indx) \
+ vgt_max_vtx_indx_reg = (vgt_max_vtx_indx_reg & ~VGT_MAX_VTX_INDX_MAX_INDX_MASK) | (max_indx << VGT_MAX_VTX_INDX_MAX_INDX_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_max_vtx_indx_t {
+ unsigned int max_indx : VGT_MAX_VTX_INDX_MAX_INDX_SIZE;
+ unsigned int : 8;
+ } vgt_max_vtx_indx_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_max_vtx_indx_t {
+ unsigned int : 8;
+ unsigned int max_indx : VGT_MAX_VTX_INDX_MAX_INDX_SIZE;
+ } vgt_max_vtx_indx_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_max_vtx_indx_t f;
+} vgt_max_vtx_indx_u;
+
+
+/*
+ * VGT_MIN_VTX_INDX struct
+ */
+
+#define VGT_MIN_VTX_INDX_MIN_INDX_SIZE 24
+
+#define VGT_MIN_VTX_INDX_MIN_INDX_SHIFT 0
+
+#define VGT_MIN_VTX_INDX_MIN_INDX_MASK 0x00ffffff
+
+#define VGT_MIN_VTX_INDX_MASK \
+ (VGT_MIN_VTX_INDX_MIN_INDX_MASK)
+
+#define VGT_MIN_VTX_INDX(min_indx) \
+ ((min_indx << VGT_MIN_VTX_INDX_MIN_INDX_SHIFT))
+
+#define VGT_MIN_VTX_INDX_GET_MIN_INDX(vgt_min_vtx_indx) \
+ ((vgt_min_vtx_indx & VGT_MIN_VTX_INDX_MIN_INDX_MASK) >> VGT_MIN_VTX_INDX_MIN_INDX_SHIFT)
+
+#define VGT_MIN_VTX_INDX_SET_MIN_INDX(vgt_min_vtx_indx_reg, min_indx) \
+ vgt_min_vtx_indx_reg = (vgt_min_vtx_indx_reg & ~VGT_MIN_VTX_INDX_MIN_INDX_MASK) | (min_indx << VGT_MIN_VTX_INDX_MIN_INDX_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_min_vtx_indx_t {
+ unsigned int min_indx : VGT_MIN_VTX_INDX_MIN_INDX_SIZE;
+ unsigned int : 8;
+ } vgt_min_vtx_indx_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_min_vtx_indx_t {
+ unsigned int : 8;
+ unsigned int min_indx : VGT_MIN_VTX_INDX_MIN_INDX_SIZE;
+ } vgt_min_vtx_indx_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_min_vtx_indx_t f;
+} vgt_min_vtx_indx_u;
+
+
+/*
+ * VGT_INDX_OFFSET struct
+ */
+
+#define VGT_INDX_OFFSET_INDX_OFFSET_SIZE 24
+
+#define VGT_INDX_OFFSET_INDX_OFFSET_SHIFT 0
+
+#define VGT_INDX_OFFSET_INDX_OFFSET_MASK 0x00ffffff
+
+#define VGT_INDX_OFFSET_MASK \
+ (VGT_INDX_OFFSET_INDX_OFFSET_MASK)
+
+#define VGT_INDX_OFFSET(indx_offset) \
+ ((indx_offset << VGT_INDX_OFFSET_INDX_OFFSET_SHIFT))
+
+#define VGT_INDX_OFFSET_GET_INDX_OFFSET(vgt_indx_offset) \
+ ((vgt_indx_offset & VGT_INDX_OFFSET_INDX_OFFSET_MASK) >> VGT_INDX_OFFSET_INDX_OFFSET_SHIFT)
+
+#define VGT_INDX_OFFSET_SET_INDX_OFFSET(vgt_indx_offset_reg, indx_offset) \
+ vgt_indx_offset_reg = (vgt_indx_offset_reg & ~VGT_INDX_OFFSET_INDX_OFFSET_MASK) | (indx_offset << VGT_INDX_OFFSET_INDX_OFFSET_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_indx_offset_t {
+ unsigned int indx_offset : VGT_INDX_OFFSET_INDX_OFFSET_SIZE;
+ unsigned int : 8;
+ } vgt_indx_offset_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_indx_offset_t {
+ unsigned int : 8;
+ unsigned int indx_offset : VGT_INDX_OFFSET_INDX_OFFSET_SIZE;
+ } vgt_indx_offset_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_indx_offset_t f;
+} vgt_indx_offset_u;
+
+
+/*
+ * VGT_VERTEX_REUSE_BLOCK_CNTL struct
+ */
+
+#define VGT_VERTEX_REUSE_BLOCK_CNTL_VTX_REUSE_DEPTH_SIZE 3
+
+#define VGT_VERTEX_REUSE_BLOCK_CNTL_VTX_REUSE_DEPTH_SHIFT 0
+
+#define VGT_VERTEX_REUSE_BLOCK_CNTL_VTX_REUSE_DEPTH_MASK 0x00000007
+
+#define VGT_VERTEX_REUSE_BLOCK_CNTL_MASK \
+ (VGT_VERTEX_REUSE_BLOCK_CNTL_VTX_REUSE_DEPTH_MASK)
+
+#define VGT_VERTEX_REUSE_BLOCK_CNTL(vtx_reuse_depth) \
+ ((vtx_reuse_depth << VGT_VERTEX_REUSE_BLOCK_CNTL_VTX_REUSE_DEPTH_SHIFT))
+
+#define VGT_VERTEX_REUSE_BLOCK_CNTL_GET_VTX_REUSE_DEPTH(vgt_vertex_reuse_block_cntl) \
+ ((vgt_vertex_reuse_block_cntl & VGT_VERTEX_REUSE_BLOCK_CNTL_VTX_REUSE_DEPTH_MASK) >> VGT_VERTEX_REUSE_BLOCK_CNTL_VTX_REUSE_DEPTH_SHIFT)
+
+#define VGT_VERTEX_REUSE_BLOCK_CNTL_SET_VTX_REUSE_DEPTH(vgt_vertex_reuse_block_cntl_reg, vtx_reuse_depth) \
+ vgt_vertex_reuse_block_cntl_reg = (vgt_vertex_reuse_block_cntl_reg & ~VGT_VERTEX_REUSE_BLOCK_CNTL_VTX_REUSE_DEPTH_MASK) | (vtx_reuse_depth << VGT_VERTEX_REUSE_BLOCK_CNTL_VTX_REUSE_DEPTH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_vertex_reuse_block_cntl_t {
+ unsigned int vtx_reuse_depth : VGT_VERTEX_REUSE_BLOCK_CNTL_VTX_REUSE_DEPTH_SIZE;
+ unsigned int : 29;
+ } vgt_vertex_reuse_block_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_vertex_reuse_block_cntl_t {
+ unsigned int : 29;
+ unsigned int vtx_reuse_depth : VGT_VERTEX_REUSE_BLOCK_CNTL_VTX_REUSE_DEPTH_SIZE;
+ } vgt_vertex_reuse_block_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_vertex_reuse_block_cntl_t f;
+} vgt_vertex_reuse_block_cntl_u;
+
+
+/*
+ * VGT_OUT_DEALLOC_CNTL struct
+ */
+
+#define VGT_OUT_DEALLOC_CNTL_DEALLOC_DIST_SIZE 2
+
+#define VGT_OUT_DEALLOC_CNTL_DEALLOC_DIST_SHIFT 0
+
+#define VGT_OUT_DEALLOC_CNTL_DEALLOC_DIST_MASK 0x00000003
+
+#define VGT_OUT_DEALLOC_CNTL_MASK \
+ (VGT_OUT_DEALLOC_CNTL_DEALLOC_DIST_MASK)
+
+#define VGT_OUT_DEALLOC_CNTL(dealloc_dist) \
+ ((dealloc_dist << VGT_OUT_DEALLOC_CNTL_DEALLOC_DIST_SHIFT))
+
+#define VGT_OUT_DEALLOC_CNTL_GET_DEALLOC_DIST(vgt_out_dealloc_cntl) \
+ ((vgt_out_dealloc_cntl & VGT_OUT_DEALLOC_CNTL_DEALLOC_DIST_MASK) >> VGT_OUT_DEALLOC_CNTL_DEALLOC_DIST_SHIFT)
+
+#define VGT_OUT_DEALLOC_CNTL_SET_DEALLOC_DIST(vgt_out_dealloc_cntl_reg, dealloc_dist) \
+ vgt_out_dealloc_cntl_reg = (vgt_out_dealloc_cntl_reg & ~VGT_OUT_DEALLOC_CNTL_DEALLOC_DIST_MASK) | (dealloc_dist << VGT_OUT_DEALLOC_CNTL_DEALLOC_DIST_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_out_dealloc_cntl_t {
+ unsigned int dealloc_dist : VGT_OUT_DEALLOC_CNTL_DEALLOC_DIST_SIZE;
+ unsigned int : 30;
+ } vgt_out_dealloc_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_out_dealloc_cntl_t {
+ unsigned int : 30;
+ unsigned int dealloc_dist : VGT_OUT_DEALLOC_CNTL_DEALLOC_DIST_SIZE;
+ } vgt_out_dealloc_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_out_dealloc_cntl_t f;
+} vgt_out_dealloc_cntl_u;
+
+
+/*
+ * VGT_MULTI_PRIM_IB_RESET_INDX struct
+ */
+
+#define VGT_MULTI_PRIM_IB_RESET_INDX_RESET_INDX_SIZE 24
+
+#define VGT_MULTI_PRIM_IB_RESET_INDX_RESET_INDX_SHIFT 0
+
+#define VGT_MULTI_PRIM_IB_RESET_INDX_RESET_INDX_MASK 0x00ffffff
+
+#define VGT_MULTI_PRIM_IB_RESET_INDX_MASK \
+ (VGT_MULTI_PRIM_IB_RESET_INDX_RESET_INDX_MASK)
+
+#define VGT_MULTI_PRIM_IB_RESET_INDX(reset_indx) \
+ ((reset_indx << VGT_MULTI_PRIM_IB_RESET_INDX_RESET_INDX_SHIFT))
+
+#define VGT_MULTI_PRIM_IB_RESET_INDX_GET_RESET_INDX(vgt_multi_prim_ib_reset_indx) \
+ ((vgt_multi_prim_ib_reset_indx & VGT_MULTI_PRIM_IB_RESET_INDX_RESET_INDX_MASK) >> VGT_MULTI_PRIM_IB_RESET_INDX_RESET_INDX_SHIFT)
+
+#define VGT_MULTI_PRIM_IB_RESET_INDX_SET_RESET_INDX(vgt_multi_prim_ib_reset_indx_reg, reset_indx) \
+ vgt_multi_prim_ib_reset_indx_reg = (vgt_multi_prim_ib_reset_indx_reg & ~VGT_MULTI_PRIM_IB_RESET_INDX_RESET_INDX_MASK) | (reset_indx << VGT_MULTI_PRIM_IB_RESET_INDX_RESET_INDX_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_multi_prim_ib_reset_indx_t {
+ unsigned int reset_indx : VGT_MULTI_PRIM_IB_RESET_INDX_RESET_INDX_SIZE;
+ unsigned int : 8;
+ } vgt_multi_prim_ib_reset_indx_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_multi_prim_ib_reset_indx_t {
+ unsigned int : 8;
+ unsigned int reset_indx : VGT_MULTI_PRIM_IB_RESET_INDX_RESET_INDX_SIZE;
+ } vgt_multi_prim_ib_reset_indx_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_multi_prim_ib_reset_indx_t f;
+} vgt_multi_prim_ib_reset_indx_u;
+
+
+/*
+ * VGT_ENHANCE struct
+ */
+
+#define VGT_ENHANCE_MISC_SIZE 16
+
+#define VGT_ENHANCE_MISC_SHIFT 0
+
+#define VGT_ENHANCE_MISC_MASK 0x0000ffff
+
+#define VGT_ENHANCE_MASK \
+ (VGT_ENHANCE_MISC_MASK)
+
+#define VGT_ENHANCE(misc) \
+ ((misc << VGT_ENHANCE_MISC_SHIFT))
+
+#define VGT_ENHANCE_GET_MISC(vgt_enhance) \
+ ((vgt_enhance & VGT_ENHANCE_MISC_MASK) >> VGT_ENHANCE_MISC_SHIFT)
+
+#define VGT_ENHANCE_SET_MISC(vgt_enhance_reg, misc) \
+ vgt_enhance_reg = (vgt_enhance_reg & ~VGT_ENHANCE_MISC_MASK) | (misc << VGT_ENHANCE_MISC_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_enhance_t {
+ unsigned int misc : VGT_ENHANCE_MISC_SIZE;
+ unsigned int : 16;
+ } vgt_enhance_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_enhance_t {
+ unsigned int : 16;
+ unsigned int misc : VGT_ENHANCE_MISC_SIZE;
+ } vgt_enhance_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_enhance_t f;
+} vgt_enhance_u;
+
+
+/*
+ * VGT_VTX_VECT_EJECT_REG struct
+ */
+
+#define VGT_VTX_VECT_EJECT_REG_PRIM_COUNT_SIZE 5
+
+#define VGT_VTX_VECT_EJECT_REG_PRIM_COUNT_SHIFT 0
+
+#define VGT_VTX_VECT_EJECT_REG_PRIM_COUNT_MASK 0x0000001f
+
+#define VGT_VTX_VECT_EJECT_REG_MASK \
+ (VGT_VTX_VECT_EJECT_REG_PRIM_COUNT_MASK)
+
+#define VGT_VTX_VECT_EJECT_REG(prim_count) \
+ ((prim_count << VGT_VTX_VECT_EJECT_REG_PRIM_COUNT_SHIFT))
+
+#define VGT_VTX_VECT_EJECT_REG_GET_PRIM_COUNT(vgt_vtx_vect_eject_reg) \
+ ((vgt_vtx_vect_eject_reg & VGT_VTX_VECT_EJECT_REG_PRIM_COUNT_MASK) >> VGT_VTX_VECT_EJECT_REG_PRIM_COUNT_SHIFT)
+
+#define VGT_VTX_VECT_EJECT_REG_SET_PRIM_COUNT(vgt_vtx_vect_eject_reg_reg, prim_count) \
+ vgt_vtx_vect_eject_reg_reg = (vgt_vtx_vect_eject_reg_reg & ~VGT_VTX_VECT_EJECT_REG_PRIM_COUNT_MASK) | (prim_count << VGT_VTX_VECT_EJECT_REG_PRIM_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_vtx_vect_eject_reg_t {
+ unsigned int prim_count : VGT_VTX_VECT_EJECT_REG_PRIM_COUNT_SIZE;
+ unsigned int : 27;
+ } vgt_vtx_vect_eject_reg_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_vtx_vect_eject_reg_t {
+ unsigned int : 27;
+ unsigned int prim_count : VGT_VTX_VECT_EJECT_REG_PRIM_COUNT_SIZE;
+ } vgt_vtx_vect_eject_reg_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_vtx_vect_eject_reg_t f;
+} vgt_vtx_vect_eject_reg_u;
+
+
+/*
+ * VGT_LAST_COPY_STATE struct
+ */
+
+#define VGT_LAST_COPY_STATE_SRC_STATE_ID_SIZE 1
+#define VGT_LAST_COPY_STATE_DST_STATE_ID_SIZE 1
+
+#define VGT_LAST_COPY_STATE_SRC_STATE_ID_SHIFT 0
+#define VGT_LAST_COPY_STATE_DST_STATE_ID_SHIFT 16
+
+#define VGT_LAST_COPY_STATE_SRC_STATE_ID_MASK 0x00000001
+#define VGT_LAST_COPY_STATE_DST_STATE_ID_MASK 0x00010000
+
+#define VGT_LAST_COPY_STATE_MASK \
+ (VGT_LAST_COPY_STATE_SRC_STATE_ID_MASK | \
+ VGT_LAST_COPY_STATE_DST_STATE_ID_MASK)
+
+#define VGT_LAST_COPY_STATE(src_state_id, dst_state_id) \
+ ((src_state_id << VGT_LAST_COPY_STATE_SRC_STATE_ID_SHIFT) | \
+ (dst_state_id << VGT_LAST_COPY_STATE_DST_STATE_ID_SHIFT))
+
+#define VGT_LAST_COPY_STATE_GET_SRC_STATE_ID(vgt_last_copy_state) \
+ ((vgt_last_copy_state & VGT_LAST_COPY_STATE_SRC_STATE_ID_MASK) >> VGT_LAST_COPY_STATE_SRC_STATE_ID_SHIFT)
+#define VGT_LAST_COPY_STATE_GET_DST_STATE_ID(vgt_last_copy_state) \
+ ((vgt_last_copy_state & VGT_LAST_COPY_STATE_DST_STATE_ID_MASK) >> VGT_LAST_COPY_STATE_DST_STATE_ID_SHIFT)
+
+#define VGT_LAST_COPY_STATE_SET_SRC_STATE_ID(vgt_last_copy_state_reg, src_state_id) \
+ vgt_last_copy_state_reg = (vgt_last_copy_state_reg & ~VGT_LAST_COPY_STATE_SRC_STATE_ID_MASK) | (src_state_id << VGT_LAST_COPY_STATE_SRC_STATE_ID_SHIFT)
+#define VGT_LAST_COPY_STATE_SET_DST_STATE_ID(vgt_last_copy_state_reg, dst_state_id) \
+ vgt_last_copy_state_reg = (vgt_last_copy_state_reg & ~VGT_LAST_COPY_STATE_DST_STATE_ID_MASK) | (dst_state_id << VGT_LAST_COPY_STATE_DST_STATE_ID_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_last_copy_state_t {
+ unsigned int src_state_id : VGT_LAST_COPY_STATE_SRC_STATE_ID_SIZE;
+ unsigned int : 15;
+ unsigned int dst_state_id : VGT_LAST_COPY_STATE_DST_STATE_ID_SIZE;
+ unsigned int : 15;
+ } vgt_last_copy_state_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_last_copy_state_t {
+ unsigned int : 15;
+ unsigned int dst_state_id : VGT_LAST_COPY_STATE_DST_STATE_ID_SIZE;
+ unsigned int : 15;
+ unsigned int src_state_id : VGT_LAST_COPY_STATE_SRC_STATE_ID_SIZE;
+ } vgt_last_copy_state_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_last_copy_state_t f;
+} vgt_last_copy_state_u;
+
+
+/*
+ * VGT_DEBUG_CNTL struct
+ */
+
+#define VGT_DEBUG_CNTL_VGT_DEBUG_INDX_SIZE 5
+
+#define VGT_DEBUG_CNTL_VGT_DEBUG_INDX_SHIFT 0
+
+#define VGT_DEBUG_CNTL_VGT_DEBUG_INDX_MASK 0x0000001f
+
+#define VGT_DEBUG_CNTL_MASK \
+ (VGT_DEBUG_CNTL_VGT_DEBUG_INDX_MASK)
+
+#define VGT_DEBUG_CNTL(vgt_debug_indx) \
+ ((vgt_debug_indx << VGT_DEBUG_CNTL_VGT_DEBUG_INDX_SHIFT))
+
+#define VGT_DEBUG_CNTL_GET_VGT_DEBUG_INDX(vgt_debug_cntl) \
+ ((vgt_debug_cntl & VGT_DEBUG_CNTL_VGT_DEBUG_INDX_MASK) >> VGT_DEBUG_CNTL_VGT_DEBUG_INDX_SHIFT)
+
+#define VGT_DEBUG_CNTL_SET_VGT_DEBUG_INDX(vgt_debug_cntl_reg, vgt_debug_indx) \
+ vgt_debug_cntl_reg = (vgt_debug_cntl_reg & ~VGT_DEBUG_CNTL_VGT_DEBUG_INDX_MASK) | (vgt_debug_indx << VGT_DEBUG_CNTL_VGT_DEBUG_INDX_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_cntl_t {
+ unsigned int vgt_debug_indx : VGT_DEBUG_CNTL_VGT_DEBUG_INDX_SIZE;
+ unsigned int : 27;
+ } vgt_debug_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_cntl_t {
+ unsigned int : 27;
+ unsigned int vgt_debug_indx : VGT_DEBUG_CNTL_VGT_DEBUG_INDX_SIZE;
+ } vgt_debug_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_cntl_t f;
+} vgt_debug_cntl_u;
+
+
+/*
+ * VGT_DEBUG_DATA struct
+ */
+
+#define VGT_DEBUG_DATA_DATA_SIZE 32
+
+#define VGT_DEBUG_DATA_DATA_SHIFT 0
+
+#define VGT_DEBUG_DATA_DATA_MASK 0xffffffff
+
+#define VGT_DEBUG_DATA_MASK \
+ (VGT_DEBUG_DATA_DATA_MASK)
+
+#define VGT_DEBUG_DATA(data) \
+ ((data << VGT_DEBUG_DATA_DATA_SHIFT))
+
+#define VGT_DEBUG_DATA_GET_DATA(vgt_debug_data) \
+ ((vgt_debug_data & VGT_DEBUG_DATA_DATA_MASK) >> VGT_DEBUG_DATA_DATA_SHIFT)
+
+#define VGT_DEBUG_DATA_SET_DATA(vgt_debug_data_reg, data) \
+ vgt_debug_data_reg = (vgt_debug_data_reg & ~VGT_DEBUG_DATA_DATA_MASK) | (data << VGT_DEBUG_DATA_DATA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_data_t {
+ unsigned int data : VGT_DEBUG_DATA_DATA_SIZE;
+ } vgt_debug_data_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_data_t {
+ unsigned int data : VGT_DEBUG_DATA_DATA_SIZE;
+ } vgt_debug_data_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_data_t f;
+} vgt_debug_data_u;
+
+
+/*
+ * VGT_CNTL_STATUS struct
+ */
+
+#define VGT_CNTL_STATUS_VGT_BUSY_SIZE 1
+#define VGT_CNTL_STATUS_VGT_DMA_BUSY_SIZE 1
+#define VGT_CNTL_STATUS_VGT_DMA_REQ_BUSY_SIZE 1
+#define VGT_CNTL_STATUS_VGT_GRP_BUSY_SIZE 1
+#define VGT_CNTL_STATUS_VGT_VR_BUSY_SIZE 1
+#define VGT_CNTL_STATUS_VGT_BIN_BUSY_SIZE 1
+#define VGT_CNTL_STATUS_VGT_PT_BUSY_SIZE 1
+#define VGT_CNTL_STATUS_VGT_OUT_BUSY_SIZE 1
+#define VGT_CNTL_STATUS_VGT_OUT_INDX_BUSY_SIZE 1
+
+#define VGT_CNTL_STATUS_VGT_BUSY_SHIFT 0
+#define VGT_CNTL_STATUS_VGT_DMA_BUSY_SHIFT 1
+#define VGT_CNTL_STATUS_VGT_DMA_REQ_BUSY_SHIFT 2
+#define VGT_CNTL_STATUS_VGT_GRP_BUSY_SHIFT 3
+#define VGT_CNTL_STATUS_VGT_VR_BUSY_SHIFT 4
+#define VGT_CNTL_STATUS_VGT_BIN_BUSY_SHIFT 5
+#define VGT_CNTL_STATUS_VGT_PT_BUSY_SHIFT 6
+#define VGT_CNTL_STATUS_VGT_OUT_BUSY_SHIFT 7
+#define VGT_CNTL_STATUS_VGT_OUT_INDX_BUSY_SHIFT 8
+
+#define VGT_CNTL_STATUS_VGT_BUSY_MASK 0x00000001
+#define VGT_CNTL_STATUS_VGT_DMA_BUSY_MASK 0x00000002
+#define VGT_CNTL_STATUS_VGT_DMA_REQ_BUSY_MASK 0x00000004
+#define VGT_CNTL_STATUS_VGT_GRP_BUSY_MASK 0x00000008
+#define VGT_CNTL_STATUS_VGT_VR_BUSY_MASK 0x00000010
+#define VGT_CNTL_STATUS_VGT_BIN_BUSY_MASK 0x00000020
+#define VGT_CNTL_STATUS_VGT_PT_BUSY_MASK 0x00000040
+#define VGT_CNTL_STATUS_VGT_OUT_BUSY_MASK 0x00000080
+#define VGT_CNTL_STATUS_VGT_OUT_INDX_BUSY_MASK 0x00000100
+
+#define VGT_CNTL_STATUS_MASK \
+ (VGT_CNTL_STATUS_VGT_BUSY_MASK | \
+ VGT_CNTL_STATUS_VGT_DMA_BUSY_MASK | \
+ VGT_CNTL_STATUS_VGT_DMA_REQ_BUSY_MASK | \
+ VGT_CNTL_STATUS_VGT_GRP_BUSY_MASK | \
+ VGT_CNTL_STATUS_VGT_VR_BUSY_MASK | \
+ VGT_CNTL_STATUS_VGT_BIN_BUSY_MASK | \
+ VGT_CNTL_STATUS_VGT_PT_BUSY_MASK | \
+ VGT_CNTL_STATUS_VGT_OUT_BUSY_MASK | \
+ VGT_CNTL_STATUS_VGT_OUT_INDX_BUSY_MASK)
+
+#define VGT_CNTL_STATUS(vgt_busy, vgt_dma_busy, vgt_dma_req_busy, vgt_grp_busy, vgt_vr_busy, vgt_bin_busy, vgt_pt_busy, vgt_out_busy, vgt_out_indx_busy) \
+ ((vgt_busy << VGT_CNTL_STATUS_VGT_BUSY_SHIFT) | \
+ (vgt_dma_busy << VGT_CNTL_STATUS_VGT_DMA_BUSY_SHIFT) | \
+ (vgt_dma_req_busy << VGT_CNTL_STATUS_VGT_DMA_REQ_BUSY_SHIFT) | \
+ (vgt_grp_busy << VGT_CNTL_STATUS_VGT_GRP_BUSY_SHIFT) | \
+ (vgt_vr_busy << VGT_CNTL_STATUS_VGT_VR_BUSY_SHIFT) | \
+ (vgt_bin_busy << VGT_CNTL_STATUS_VGT_BIN_BUSY_SHIFT) | \
+ (vgt_pt_busy << VGT_CNTL_STATUS_VGT_PT_BUSY_SHIFT) | \
+ (vgt_out_busy << VGT_CNTL_STATUS_VGT_OUT_BUSY_SHIFT) | \
+ (vgt_out_indx_busy << VGT_CNTL_STATUS_VGT_OUT_INDX_BUSY_SHIFT))
+
+#define VGT_CNTL_STATUS_GET_VGT_BUSY(vgt_cntl_status) \
+ ((vgt_cntl_status & VGT_CNTL_STATUS_VGT_BUSY_MASK) >> VGT_CNTL_STATUS_VGT_BUSY_SHIFT)
+#define VGT_CNTL_STATUS_GET_VGT_DMA_BUSY(vgt_cntl_status) \
+ ((vgt_cntl_status & VGT_CNTL_STATUS_VGT_DMA_BUSY_MASK) >> VGT_CNTL_STATUS_VGT_DMA_BUSY_SHIFT)
+#define VGT_CNTL_STATUS_GET_VGT_DMA_REQ_BUSY(vgt_cntl_status) \
+ ((vgt_cntl_status & VGT_CNTL_STATUS_VGT_DMA_REQ_BUSY_MASK) >> VGT_CNTL_STATUS_VGT_DMA_REQ_BUSY_SHIFT)
+#define VGT_CNTL_STATUS_GET_VGT_GRP_BUSY(vgt_cntl_status) \
+ ((vgt_cntl_status & VGT_CNTL_STATUS_VGT_GRP_BUSY_MASK) >> VGT_CNTL_STATUS_VGT_GRP_BUSY_SHIFT)
+#define VGT_CNTL_STATUS_GET_VGT_VR_BUSY(vgt_cntl_status) \
+ ((vgt_cntl_status & VGT_CNTL_STATUS_VGT_VR_BUSY_MASK) >> VGT_CNTL_STATUS_VGT_VR_BUSY_SHIFT)
+#define VGT_CNTL_STATUS_GET_VGT_BIN_BUSY(vgt_cntl_status) \
+ ((vgt_cntl_status & VGT_CNTL_STATUS_VGT_BIN_BUSY_MASK) >> VGT_CNTL_STATUS_VGT_BIN_BUSY_SHIFT)
+#define VGT_CNTL_STATUS_GET_VGT_PT_BUSY(vgt_cntl_status) \
+ ((vgt_cntl_status & VGT_CNTL_STATUS_VGT_PT_BUSY_MASK) >> VGT_CNTL_STATUS_VGT_PT_BUSY_SHIFT)
+#define VGT_CNTL_STATUS_GET_VGT_OUT_BUSY(vgt_cntl_status) \
+ ((vgt_cntl_status & VGT_CNTL_STATUS_VGT_OUT_BUSY_MASK) >> VGT_CNTL_STATUS_VGT_OUT_BUSY_SHIFT)
+#define VGT_CNTL_STATUS_GET_VGT_OUT_INDX_BUSY(vgt_cntl_status) \
+ ((vgt_cntl_status & VGT_CNTL_STATUS_VGT_OUT_INDX_BUSY_MASK) >> VGT_CNTL_STATUS_VGT_OUT_INDX_BUSY_SHIFT)
+
+#define VGT_CNTL_STATUS_SET_VGT_BUSY(vgt_cntl_status_reg, vgt_busy) \
+ vgt_cntl_status_reg = (vgt_cntl_status_reg & ~VGT_CNTL_STATUS_VGT_BUSY_MASK) | (vgt_busy << VGT_CNTL_STATUS_VGT_BUSY_SHIFT)
+#define VGT_CNTL_STATUS_SET_VGT_DMA_BUSY(vgt_cntl_status_reg, vgt_dma_busy) \
+ vgt_cntl_status_reg = (vgt_cntl_status_reg & ~VGT_CNTL_STATUS_VGT_DMA_BUSY_MASK) | (vgt_dma_busy << VGT_CNTL_STATUS_VGT_DMA_BUSY_SHIFT)
+#define VGT_CNTL_STATUS_SET_VGT_DMA_REQ_BUSY(vgt_cntl_status_reg, vgt_dma_req_busy) \
+ vgt_cntl_status_reg = (vgt_cntl_status_reg & ~VGT_CNTL_STATUS_VGT_DMA_REQ_BUSY_MASK) | (vgt_dma_req_busy << VGT_CNTL_STATUS_VGT_DMA_REQ_BUSY_SHIFT)
+#define VGT_CNTL_STATUS_SET_VGT_GRP_BUSY(vgt_cntl_status_reg, vgt_grp_busy) \
+ vgt_cntl_status_reg = (vgt_cntl_status_reg & ~VGT_CNTL_STATUS_VGT_GRP_BUSY_MASK) | (vgt_grp_busy << VGT_CNTL_STATUS_VGT_GRP_BUSY_SHIFT)
+#define VGT_CNTL_STATUS_SET_VGT_VR_BUSY(vgt_cntl_status_reg, vgt_vr_busy) \
+ vgt_cntl_status_reg = (vgt_cntl_status_reg & ~VGT_CNTL_STATUS_VGT_VR_BUSY_MASK) | (vgt_vr_busy << VGT_CNTL_STATUS_VGT_VR_BUSY_SHIFT)
+#define VGT_CNTL_STATUS_SET_VGT_BIN_BUSY(vgt_cntl_status_reg, vgt_bin_busy) \
+ vgt_cntl_status_reg = (vgt_cntl_status_reg & ~VGT_CNTL_STATUS_VGT_BIN_BUSY_MASK) | (vgt_bin_busy << VGT_CNTL_STATUS_VGT_BIN_BUSY_SHIFT)
+#define VGT_CNTL_STATUS_SET_VGT_PT_BUSY(vgt_cntl_status_reg, vgt_pt_busy) \
+ vgt_cntl_status_reg = (vgt_cntl_status_reg & ~VGT_CNTL_STATUS_VGT_PT_BUSY_MASK) | (vgt_pt_busy << VGT_CNTL_STATUS_VGT_PT_BUSY_SHIFT)
+#define VGT_CNTL_STATUS_SET_VGT_OUT_BUSY(vgt_cntl_status_reg, vgt_out_busy) \
+ vgt_cntl_status_reg = (vgt_cntl_status_reg & ~VGT_CNTL_STATUS_VGT_OUT_BUSY_MASK) | (vgt_out_busy << VGT_CNTL_STATUS_VGT_OUT_BUSY_SHIFT)
+#define VGT_CNTL_STATUS_SET_VGT_OUT_INDX_BUSY(vgt_cntl_status_reg, vgt_out_indx_busy) \
+ vgt_cntl_status_reg = (vgt_cntl_status_reg & ~VGT_CNTL_STATUS_VGT_OUT_INDX_BUSY_MASK) | (vgt_out_indx_busy << VGT_CNTL_STATUS_VGT_OUT_INDX_BUSY_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_cntl_status_t {
+ unsigned int vgt_busy : VGT_CNTL_STATUS_VGT_BUSY_SIZE;
+ unsigned int vgt_dma_busy : VGT_CNTL_STATUS_VGT_DMA_BUSY_SIZE;
+ unsigned int vgt_dma_req_busy : VGT_CNTL_STATUS_VGT_DMA_REQ_BUSY_SIZE;
+ unsigned int vgt_grp_busy : VGT_CNTL_STATUS_VGT_GRP_BUSY_SIZE;
+ unsigned int vgt_vr_busy : VGT_CNTL_STATUS_VGT_VR_BUSY_SIZE;
+ unsigned int vgt_bin_busy : VGT_CNTL_STATUS_VGT_BIN_BUSY_SIZE;
+ unsigned int vgt_pt_busy : VGT_CNTL_STATUS_VGT_PT_BUSY_SIZE;
+ unsigned int vgt_out_busy : VGT_CNTL_STATUS_VGT_OUT_BUSY_SIZE;
+ unsigned int vgt_out_indx_busy : VGT_CNTL_STATUS_VGT_OUT_INDX_BUSY_SIZE;
+ unsigned int : 23;
+ } vgt_cntl_status_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_cntl_status_t {
+ unsigned int : 23;
+ unsigned int vgt_out_indx_busy : VGT_CNTL_STATUS_VGT_OUT_INDX_BUSY_SIZE;
+ unsigned int vgt_out_busy : VGT_CNTL_STATUS_VGT_OUT_BUSY_SIZE;
+ unsigned int vgt_pt_busy : VGT_CNTL_STATUS_VGT_PT_BUSY_SIZE;
+ unsigned int vgt_bin_busy : VGT_CNTL_STATUS_VGT_BIN_BUSY_SIZE;
+ unsigned int vgt_vr_busy : VGT_CNTL_STATUS_VGT_VR_BUSY_SIZE;
+ unsigned int vgt_grp_busy : VGT_CNTL_STATUS_VGT_GRP_BUSY_SIZE;
+ unsigned int vgt_dma_req_busy : VGT_CNTL_STATUS_VGT_DMA_REQ_BUSY_SIZE;
+ unsigned int vgt_dma_busy : VGT_CNTL_STATUS_VGT_DMA_BUSY_SIZE;
+ unsigned int vgt_busy : VGT_CNTL_STATUS_VGT_BUSY_SIZE;
+ } vgt_cntl_status_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_cntl_status_t f;
+} vgt_cntl_status_u;
+
+
+/*
+ * VGT_DEBUG_REG0 struct
+ */
+
+#define VGT_DEBUG_REG0_te_grp_busy_SIZE 1
+#define VGT_DEBUG_REG0_pt_grp_busy_SIZE 1
+#define VGT_DEBUG_REG0_vr_grp_busy_SIZE 1
+#define VGT_DEBUG_REG0_dma_request_busy_SIZE 1
+#define VGT_DEBUG_REG0_out_busy_SIZE 1
+#define VGT_DEBUG_REG0_grp_backend_busy_SIZE 1
+#define VGT_DEBUG_REG0_grp_busy_SIZE 1
+#define VGT_DEBUG_REG0_dma_busy_SIZE 1
+#define VGT_DEBUG_REG0_rbiu_dma_request_busy_SIZE 1
+#define VGT_DEBUG_REG0_rbiu_busy_SIZE 1
+#define VGT_DEBUG_REG0_vgt_no_dma_busy_extended_SIZE 1
+#define VGT_DEBUG_REG0_vgt_no_dma_busy_SIZE 1
+#define VGT_DEBUG_REG0_vgt_busy_extended_SIZE 1
+#define VGT_DEBUG_REG0_vgt_busy_SIZE 1
+#define VGT_DEBUG_REG0_rbbm_skid_fifo_busy_out_SIZE 1
+#define VGT_DEBUG_REG0_VGT_RBBM_no_dma_busy_SIZE 1
+#define VGT_DEBUG_REG0_VGT_RBBM_busy_SIZE 1
+
+#define VGT_DEBUG_REG0_te_grp_busy_SHIFT 0
+#define VGT_DEBUG_REG0_pt_grp_busy_SHIFT 1
+#define VGT_DEBUG_REG0_vr_grp_busy_SHIFT 2
+#define VGT_DEBUG_REG0_dma_request_busy_SHIFT 3
+#define VGT_DEBUG_REG0_out_busy_SHIFT 4
+#define VGT_DEBUG_REG0_grp_backend_busy_SHIFT 5
+#define VGT_DEBUG_REG0_grp_busy_SHIFT 6
+#define VGT_DEBUG_REG0_dma_busy_SHIFT 7
+#define VGT_DEBUG_REG0_rbiu_dma_request_busy_SHIFT 8
+#define VGT_DEBUG_REG0_rbiu_busy_SHIFT 9
+#define VGT_DEBUG_REG0_vgt_no_dma_busy_extended_SHIFT 10
+#define VGT_DEBUG_REG0_vgt_no_dma_busy_SHIFT 11
+#define VGT_DEBUG_REG0_vgt_busy_extended_SHIFT 12
+#define VGT_DEBUG_REG0_vgt_busy_SHIFT 13
+#define VGT_DEBUG_REG0_rbbm_skid_fifo_busy_out_SHIFT 14
+#define VGT_DEBUG_REG0_VGT_RBBM_no_dma_busy_SHIFT 15
+#define VGT_DEBUG_REG0_VGT_RBBM_busy_SHIFT 16
+
+#define VGT_DEBUG_REG0_te_grp_busy_MASK 0x00000001
+#define VGT_DEBUG_REG0_pt_grp_busy_MASK 0x00000002
+#define VGT_DEBUG_REG0_vr_grp_busy_MASK 0x00000004
+#define VGT_DEBUG_REG0_dma_request_busy_MASK 0x00000008
+#define VGT_DEBUG_REG0_out_busy_MASK 0x00000010
+#define VGT_DEBUG_REG0_grp_backend_busy_MASK 0x00000020
+#define VGT_DEBUG_REG0_grp_busy_MASK 0x00000040
+#define VGT_DEBUG_REG0_dma_busy_MASK 0x00000080
+#define VGT_DEBUG_REG0_rbiu_dma_request_busy_MASK 0x00000100
+#define VGT_DEBUG_REG0_rbiu_busy_MASK 0x00000200
+#define VGT_DEBUG_REG0_vgt_no_dma_busy_extended_MASK 0x00000400
+#define VGT_DEBUG_REG0_vgt_no_dma_busy_MASK 0x00000800
+#define VGT_DEBUG_REG0_vgt_busy_extended_MASK 0x00001000
+#define VGT_DEBUG_REG0_vgt_busy_MASK 0x00002000
+#define VGT_DEBUG_REG0_rbbm_skid_fifo_busy_out_MASK 0x00004000
+#define VGT_DEBUG_REG0_VGT_RBBM_no_dma_busy_MASK 0x00008000
+#define VGT_DEBUG_REG0_VGT_RBBM_busy_MASK 0x00010000
+
+#define VGT_DEBUG_REG0_MASK \
+ (VGT_DEBUG_REG0_te_grp_busy_MASK | \
+ VGT_DEBUG_REG0_pt_grp_busy_MASK | \
+ VGT_DEBUG_REG0_vr_grp_busy_MASK | \
+ VGT_DEBUG_REG0_dma_request_busy_MASK | \
+ VGT_DEBUG_REG0_out_busy_MASK | \
+ VGT_DEBUG_REG0_grp_backend_busy_MASK | \
+ VGT_DEBUG_REG0_grp_busy_MASK | \
+ VGT_DEBUG_REG0_dma_busy_MASK | \
+ VGT_DEBUG_REG0_rbiu_dma_request_busy_MASK | \
+ VGT_DEBUG_REG0_rbiu_busy_MASK | \
+ VGT_DEBUG_REG0_vgt_no_dma_busy_extended_MASK | \
+ VGT_DEBUG_REG0_vgt_no_dma_busy_MASK | \
+ VGT_DEBUG_REG0_vgt_busy_extended_MASK | \
+ VGT_DEBUG_REG0_vgt_busy_MASK | \
+ VGT_DEBUG_REG0_rbbm_skid_fifo_busy_out_MASK | \
+ VGT_DEBUG_REG0_VGT_RBBM_no_dma_busy_MASK | \
+ VGT_DEBUG_REG0_VGT_RBBM_busy_MASK)
+
+#define VGT_DEBUG_REG0(te_grp_busy, pt_grp_busy, vr_grp_busy, dma_request_busy, out_busy, grp_backend_busy, grp_busy, dma_busy, rbiu_dma_request_busy, rbiu_busy, vgt_no_dma_busy_extended, vgt_no_dma_busy, vgt_busy_extended, vgt_busy, rbbm_skid_fifo_busy_out, vgt_rbbm_no_dma_busy, vgt_rbbm_busy) \
+ ((te_grp_busy << VGT_DEBUG_REG0_te_grp_busy_SHIFT) | \
+ (pt_grp_busy << VGT_DEBUG_REG0_pt_grp_busy_SHIFT) | \
+ (vr_grp_busy << VGT_DEBUG_REG0_vr_grp_busy_SHIFT) | \
+ (dma_request_busy << VGT_DEBUG_REG0_dma_request_busy_SHIFT) | \
+ (out_busy << VGT_DEBUG_REG0_out_busy_SHIFT) | \
+ (grp_backend_busy << VGT_DEBUG_REG0_grp_backend_busy_SHIFT) | \
+ (grp_busy << VGT_DEBUG_REG0_grp_busy_SHIFT) | \
+ (dma_busy << VGT_DEBUG_REG0_dma_busy_SHIFT) | \
+ (rbiu_dma_request_busy << VGT_DEBUG_REG0_rbiu_dma_request_busy_SHIFT) | \
+ (rbiu_busy << VGT_DEBUG_REG0_rbiu_busy_SHIFT) | \
+ (vgt_no_dma_busy_extended << VGT_DEBUG_REG0_vgt_no_dma_busy_extended_SHIFT) | \
+ (vgt_no_dma_busy << VGT_DEBUG_REG0_vgt_no_dma_busy_SHIFT) | \
+ (vgt_busy_extended << VGT_DEBUG_REG0_vgt_busy_extended_SHIFT) | \
+ (vgt_busy << VGT_DEBUG_REG0_vgt_busy_SHIFT) | \
+ (rbbm_skid_fifo_busy_out << VGT_DEBUG_REG0_rbbm_skid_fifo_busy_out_SHIFT) | \
+ (vgt_rbbm_no_dma_busy << VGT_DEBUG_REG0_VGT_RBBM_no_dma_busy_SHIFT) | \
+ (vgt_rbbm_busy << VGT_DEBUG_REG0_VGT_RBBM_busy_SHIFT))
+
+#define VGT_DEBUG_REG0_GET_te_grp_busy(vgt_debug_reg0) \
+ ((vgt_debug_reg0 & VGT_DEBUG_REG0_te_grp_busy_MASK) >> VGT_DEBUG_REG0_te_grp_busy_SHIFT)
+#define VGT_DEBUG_REG0_GET_pt_grp_busy(vgt_debug_reg0) \
+ ((vgt_debug_reg0 & VGT_DEBUG_REG0_pt_grp_busy_MASK) >> VGT_DEBUG_REG0_pt_grp_busy_SHIFT)
+#define VGT_DEBUG_REG0_GET_vr_grp_busy(vgt_debug_reg0) \
+ ((vgt_debug_reg0 & VGT_DEBUG_REG0_vr_grp_busy_MASK) >> VGT_DEBUG_REG0_vr_grp_busy_SHIFT)
+#define VGT_DEBUG_REG0_GET_dma_request_busy(vgt_debug_reg0) \
+ ((vgt_debug_reg0 & VGT_DEBUG_REG0_dma_request_busy_MASK) >> VGT_DEBUG_REG0_dma_request_busy_SHIFT)
+#define VGT_DEBUG_REG0_GET_out_busy(vgt_debug_reg0) \
+ ((vgt_debug_reg0 & VGT_DEBUG_REG0_out_busy_MASK) >> VGT_DEBUG_REG0_out_busy_SHIFT)
+#define VGT_DEBUG_REG0_GET_grp_backend_busy(vgt_debug_reg0) \
+ ((vgt_debug_reg0 & VGT_DEBUG_REG0_grp_backend_busy_MASK) >> VGT_DEBUG_REG0_grp_backend_busy_SHIFT)
+#define VGT_DEBUG_REG0_GET_grp_busy(vgt_debug_reg0) \
+ ((vgt_debug_reg0 & VGT_DEBUG_REG0_grp_busy_MASK) >> VGT_DEBUG_REG0_grp_busy_SHIFT)
+#define VGT_DEBUG_REG0_GET_dma_busy(vgt_debug_reg0) \
+ ((vgt_debug_reg0 & VGT_DEBUG_REG0_dma_busy_MASK) >> VGT_DEBUG_REG0_dma_busy_SHIFT)
+#define VGT_DEBUG_REG0_GET_rbiu_dma_request_busy(vgt_debug_reg0) \
+ ((vgt_debug_reg0 & VGT_DEBUG_REG0_rbiu_dma_request_busy_MASK) >> VGT_DEBUG_REG0_rbiu_dma_request_busy_SHIFT)
+#define VGT_DEBUG_REG0_GET_rbiu_busy(vgt_debug_reg0) \
+ ((vgt_debug_reg0 & VGT_DEBUG_REG0_rbiu_busy_MASK) >> VGT_DEBUG_REG0_rbiu_busy_SHIFT)
+#define VGT_DEBUG_REG0_GET_vgt_no_dma_busy_extended(vgt_debug_reg0) \
+ ((vgt_debug_reg0 & VGT_DEBUG_REG0_vgt_no_dma_busy_extended_MASK) >> VGT_DEBUG_REG0_vgt_no_dma_busy_extended_SHIFT)
+#define VGT_DEBUG_REG0_GET_vgt_no_dma_busy(vgt_debug_reg0) \
+ ((vgt_debug_reg0 & VGT_DEBUG_REG0_vgt_no_dma_busy_MASK) >> VGT_DEBUG_REG0_vgt_no_dma_busy_SHIFT)
+#define VGT_DEBUG_REG0_GET_vgt_busy_extended(vgt_debug_reg0) \
+ ((vgt_debug_reg0 & VGT_DEBUG_REG0_vgt_busy_extended_MASK) >> VGT_DEBUG_REG0_vgt_busy_extended_SHIFT)
+#define VGT_DEBUG_REG0_GET_vgt_busy(vgt_debug_reg0) \
+ ((vgt_debug_reg0 & VGT_DEBUG_REG0_vgt_busy_MASK) >> VGT_DEBUG_REG0_vgt_busy_SHIFT)
+#define VGT_DEBUG_REG0_GET_rbbm_skid_fifo_busy_out(vgt_debug_reg0) \
+ ((vgt_debug_reg0 & VGT_DEBUG_REG0_rbbm_skid_fifo_busy_out_MASK) >> VGT_DEBUG_REG0_rbbm_skid_fifo_busy_out_SHIFT)
+#define VGT_DEBUG_REG0_GET_VGT_RBBM_no_dma_busy(vgt_debug_reg0) \
+ ((vgt_debug_reg0 & VGT_DEBUG_REG0_VGT_RBBM_no_dma_busy_MASK) >> VGT_DEBUG_REG0_VGT_RBBM_no_dma_busy_SHIFT)
+#define VGT_DEBUG_REG0_GET_VGT_RBBM_busy(vgt_debug_reg0) \
+ ((vgt_debug_reg0 & VGT_DEBUG_REG0_VGT_RBBM_busy_MASK) >> VGT_DEBUG_REG0_VGT_RBBM_busy_SHIFT)
+
+#define VGT_DEBUG_REG0_SET_te_grp_busy(vgt_debug_reg0_reg, te_grp_busy) \
+ vgt_debug_reg0_reg = (vgt_debug_reg0_reg & ~VGT_DEBUG_REG0_te_grp_busy_MASK) | (te_grp_busy << VGT_DEBUG_REG0_te_grp_busy_SHIFT)
+#define VGT_DEBUG_REG0_SET_pt_grp_busy(vgt_debug_reg0_reg, pt_grp_busy) \
+ vgt_debug_reg0_reg = (vgt_debug_reg0_reg & ~VGT_DEBUG_REG0_pt_grp_busy_MASK) | (pt_grp_busy << VGT_DEBUG_REG0_pt_grp_busy_SHIFT)
+#define VGT_DEBUG_REG0_SET_vr_grp_busy(vgt_debug_reg0_reg, vr_grp_busy) \
+ vgt_debug_reg0_reg = (vgt_debug_reg0_reg & ~VGT_DEBUG_REG0_vr_grp_busy_MASK) | (vr_grp_busy << VGT_DEBUG_REG0_vr_grp_busy_SHIFT)
+#define VGT_DEBUG_REG0_SET_dma_request_busy(vgt_debug_reg0_reg, dma_request_busy) \
+ vgt_debug_reg0_reg = (vgt_debug_reg0_reg & ~VGT_DEBUG_REG0_dma_request_busy_MASK) | (dma_request_busy << VGT_DEBUG_REG0_dma_request_busy_SHIFT)
+#define VGT_DEBUG_REG0_SET_out_busy(vgt_debug_reg0_reg, out_busy) \
+ vgt_debug_reg0_reg = (vgt_debug_reg0_reg & ~VGT_DEBUG_REG0_out_busy_MASK) | (out_busy << VGT_DEBUG_REG0_out_busy_SHIFT)
+#define VGT_DEBUG_REG0_SET_grp_backend_busy(vgt_debug_reg0_reg, grp_backend_busy) \
+ vgt_debug_reg0_reg = (vgt_debug_reg0_reg & ~VGT_DEBUG_REG0_grp_backend_busy_MASK) | (grp_backend_busy << VGT_DEBUG_REG0_grp_backend_busy_SHIFT)
+#define VGT_DEBUG_REG0_SET_grp_busy(vgt_debug_reg0_reg, grp_busy) \
+ vgt_debug_reg0_reg = (vgt_debug_reg0_reg & ~VGT_DEBUG_REG0_grp_busy_MASK) | (grp_busy << VGT_DEBUG_REG0_grp_busy_SHIFT)
+#define VGT_DEBUG_REG0_SET_dma_busy(vgt_debug_reg0_reg, dma_busy) \
+ vgt_debug_reg0_reg = (vgt_debug_reg0_reg & ~VGT_DEBUG_REG0_dma_busy_MASK) | (dma_busy << VGT_DEBUG_REG0_dma_busy_SHIFT)
+#define VGT_DEBUG_REG0_SET_rbiu_dma_request_busy(vgt_debug_reg0_reg, rbiu_dma_request_busy) \
+ vgt_debug_reg0_reg = (vgt_debug_reg0_reg & ~VGT_DEBUG_REG0_rbiu_dma_request_busy_MASK) | (rbiu_dma_request_busy << VGT_DEBUG_REG0_rbiu_dma_request_busy_SHIFT)
+#define VGT_DEBUG_REG0_SET_rbiu_busy(vgt_debug_reg0_reg, rbiu_busy) \
+ vgt_debug_reg0_reg = (vgt_debug_reg0_reg & ~VGT_DEBUG_REG0_rbiu_busy_MASK) | (rbiu_busy << VGT_DEBUG_REG0_rbiu_busy_SHIFT)
+#define VGT_DEBUG_REG0_SET_vgt_no_dma_busy_extended(vgt_debug_reg0_reg, vgt_no_dma_busy_extended) \
+ vgt_debug_reg0_reg = (vgt_debug_reg0_reg & ~VGT_DEBUG_REG0_vgt_no_dma_busy_extended_MASK) | (vgt_no_dma_busy_extended << VGT_DEBUG_REG0_vgt_no_dma_busy_extended_SHIFT)
+#define VGT_DEBUG_REG0_SET_vgt_no_dma_busy(vgt_debug_reg0_reg, vgt_no_dma_busy) \
+ vgt_debug_reg0_reg = (vgt_debug_reg0_reg & ~VGT_DEBUG_REG0_vgt_no_dma_busy_MASK) | (vgt_no_dma_busy << VGT_DEBUG_REG0_vgt_no_dma_busy_SHIFT)
+#define VGT_DEBUG_REG0_SET_vgt_busy_extended(vgt_debug_reg0_reg, vgt_busy_extended) \
+ vgt_debug_reg0_reg = (vgt_debug_reg0_reg & ~VGT_DEBUG_REG0_vgt_busy_extended_MASK) | (vgt_busy_extended << VGT_DEBUG_REG0_vgt_busy_extended_SHIFT)
+#define VGT_DEBUG_REG0_SET_vgt_busy(vgt_debug_reg0_reg, vgt_busy) \
+ vgt_debug_reg0_reg = (vgt_debug_reg0_reg & ~VGT_DEBUG_REG0_vgt_busy_MASK) | (vgt_busy << VGT_DEBUG_REG0_vgt_busy_SHIFT)
+#define VGT_DEBUG_REG0_SET_rbbm_skid_fifo_busy_out(vgt_debug_reg0_reg, rbbm_skid_fifo_busy_out) \
+ vgt_debug_reg0_reg = (vgt_debug_reg0_reg & ~VGT_DEBUG_REG0_rbbm_skid_fifo_busy_out_MASK) | (rbbm_skid_fifo_busy_out << VGT_DEBUG_REG0_rbbm_skid_fifo_busy_out_SHIFT)
+#define VGT_DEBUG_REG0_SET_VGT_RBBM_no_dma_busy(vgt_debug_reg0_reg, vgt_rbbm_no_dma_busy) \
+ vgt_debug_reg0_reg = (vgt_debug_reg0_reg & ~VGT_DEBUG_REG0_VGT_RBBM_no_dma_busy_MASK) | (vgt_rbbm_no_dma_busy << VGT_DEBUG_REG0_VGT_RBBM_no_dma_busy_SHIFT)
+#define VGT_DEBUG_REG0_SET_VGT_RBBM_busy(vgt_debug_reg0_reg, vgt_rbbm_busy) \
+ vgt_debug_reg0_reg = (vgt_debug_reg0_reg & ~VGT_DEBUG_REG0_VGT_RBBM_busy_MASK) | (vgt_rbbm_busy << VGT_DEBUG_REG0_VGT_RBBM_busy_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg0_t {
+ unsigned int te_grp_busy : VGT_DEBUG_REG0_te_grp_busy_SIZE;
+ unsigned int pt_grp_busy : VGT_DEBUG_REG0_pt_grp_busy_SIZE;
+ unsigned int vr_grp_busy : VGT_DEBUG_REG0_vr_grp_busy_SIZE;
+ unsigned int dma_request_busy : VGT_DEBUG_REG0_dma_request_busy_SIZE;
+ unsigned int out_busy : VGT_DEBUG_REG0_out_busy_SIZE;
+ unsigned int grp_backend_busy : VGT_DEBUG_REG0_grp_backend_busy_SIZE;
+ unsigned int grp_busy : VGT_DEBUG_REG0_grp_busy_SIZE;
+ unsigned int dma_busy : VGT_DEBUG_REG0_dma_busy_SIZE;
+ unsigned int rbiu_dma_request_busy : VGT_DEBUG_REG0_rbiu_dma_request_busy_SIZE;
+ unsigned int rbiu_busy : VGT_DEBUG_REG0_rbiu_busy_SIZE;
+ unsigned int vgt_no_dma_busy_extended : VGT_DEBUG_REG0_vgt_no_dma_busy_extended_SIZE;
+ unsigned int vgt_no_dma_busy : VGT_DEBUG_REG0_vgt_no_dma_busy_SIZE;
+ unsigned int vgt_busy_extended : VGT_DEBUG_REG0_vgt_busy_extended_SIZE;
+ unsigned int vgt_busy : VGT_DEBUG_REG0_vgt_busy_SIZE;
+ unsigned int rbbm_skid_fifo_busy_out : VGT_DEBUG_REG0_rbbm_skid_fifo_busy_out_SIZE;
+ unsigned int vgt_rbbm_no_dma_busy : VGT_DEBUG_REG0_VGT_RBBM_no_dma_busy_SIZE;
+ unsigned int vgt_rbbm_busy : VGT_DEBUG_REG0_VGT_RBBM_busy_SIZE;
+ unsigned int : 15;
+ } vgt_debug_reg0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg0_t {
+ unsigned int : 15;
+ unsigned int vgt_rbbm_busy : VGT_DEBUG_REG0_VGT_RBBM_busy_SIZE;
+ unsigned int vgt_rbbm_no_dma_busy : VGT_DEBUG_REG0_VGT_RBBM_no_dma_busy_SIZE;
+ unsigned int rbbm_skid_fifo_busy_out : VGT_DEBUG_REG0_rbbm_skid_fifo_busy_out_SIZE;
+ unsigned int vgt_busy : VGT_DEBUG_REG0_vgt_busy_SIZE;
+ unsigned int vgt_busy_extended : VGT_DEBUG_REG0_vgt_busy_extended_SIZE;
+ unsigned int vgt_no_dma_busy : VGT_DEBUG_REG0_vgt_no_dma_busy_SIZE;
+ unsigned int vgt_no_dma_busy_extended : VGT_DEBUG_REG0_vgt_no_dma_busy_extended_SIZE;
+ unsigned int rbiu_busy : VGT_DEBUG_REG0_rbiu_busy_SIZE;
+ unsigned int rbiu_dma_request_busy : VGT_DEBUG_REG0_rbiu_dma_request_busy_SIZE;
+ unsigned int dma_busy : VGT_DEBUG_REG0_dma_busy_SIZE;
+ unsigned int grp_busy : VGT_DEBUG_REG0_grp_busy_SIZE;
+ unsigned int grp_backend_busy : VGT_DEBUG_REG0_grp_backend_busy_SIZE;
+ unsigned int out_busy : VGT_DEBUG_REG0_out_busy_SIZE;
+ unsigned int dma_request_busy : VGT_DEBUG_REG0_dma_request_busy_SIZE;
+ unsigned int vr_grp_busy : VGT_DEBUG_REG0_vr_grp_busy_SIZE;
+ unsigned int pt_grp_busy : VGT_DEBUG_REG0_pt_grp_busy_SIZE;
+ unsigned int te_grp_busy : VGT_DEBUG_REG0_te_grp_busy_SIZE;
+ } vgt_debug_reg0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_reg0_t f;
+} vgt_debug_reg0_u;
+
+
+/*
+ * VGT_DEBUG_REG1 struct
+ */
+
+#define VGT_DEBUG_REG1_out_te_data_read_SIZE 1
+#define VGT_DEBUG_REG1_te_out_data_valid_SIZE 1
+#define VGT_DEBUG_REG1_out_pt_prim_read_SIZE 1
+#define VGT_DEBUG_REG1_pt_out_prim_valid_SIZE 1
+#define VGT_DEBUG_REG1_out_pt_data_read_SIZE 1
+#define VGT_DEBUG_REG1_pt_out_indx_valid_SIZE 1
+#define VGT_DEBUG_REG1_out_vr_prim_read_SIZE 1
+#define VGT_DEBUG_REG1_vr_out_prim_valid_SIZE 1
+#define VGT_DEBUG_REG1_out_vr_indx_read_SIZE 1
+#define VGT_DEBUG_REG1_vr_out_indx_valid_SIZE 1
+#define VGT_DEBUG_REG1_te_grp_read_SIZE 1
+#define VGT_DEBUG_REG1_grp_te_valid_SIZE 1
+#define VGT_DEBUG_REG1_pt_grp_read_SIZE 1
+#define VGT_DEBUG_REG1_grp_pt_valid_SIZE 1
+#define VGT_DEBUG_REG1_vr_grp_read_SIZE 1
+#define VGT_DEBUG_REG1_grp_vr_valid_SIZE 1
+#define VGT_DEBUG_REG1_grp_dma_read_SIZE 1
+#define VGT_DEBUG_REG1_dma_grp_valid_SIZE 1
+#define VGT_DEBUG_REG1_grp_rbiu_di_read_SIZE 1
+#define VGT_DEBUG_REG1_rbiu_grp_di_valid_SIZE 1
+#define VGT_DEBUG_REG1_MH_VGT_rtr_SIZE 1
+#define VGT_DEBUG_REG1_VGT_MH_send_SIZE 1
+#define VGT_DEBUG_REG1_PA_VGT_clip_s_rtr_SIZE 1
+#define VGT_DEBUG_REG1_VGT_PA_clip_s_send_SIZE 1
+#define VGT_DEBUG_REG1_PA_VGT_clip_p_rtr_SIZE 1
+#define VGT_DEBUG_REG1_VGT_PA_clip_p_send_SIZE 1
+#define VGT_DEBUG_REG1_PA_VGT_clip_v_rtr_SIZE 1
+#define VGT_DEBUG_REG1_VGT_PA_clip_v_send_SIZE 1
+#define VGT_DEBUG_REG1_SQ_VGT_rtr_SIZE 1
+#define VGT_DEBUG_REG1_VGT_SQ_send_SIZE 1
+#define VGT_DEBUG_REG1_mh_vgt_tag_7_q_SIZE 1
+
+#define VGT_DEBUG_REG1_out_te_data_read_SHIFT 0
+#define VGT_DEBUG_REG1_te_out_data_valid_SHIFT 1
+#define VGT_DEBUG_REG1_out_pt_prim_read_SHIFT 2
+#define VGT_DEBUG_REG1_pt_out_prim_valid_SHIFT 3
+#define VGT_DEBUG_REG1_out_pt_data_read_SHIFT 4
+#define VGT_DEBUG_REG1_pt_out_indx_valid_SHIFT 5
+#define VGT_DEBUG_REG1_out_vr_prim_read_SHIFT 6
+#define VGT_DEBUG_REG1_vr_out_prim_valid_SHIFT 7
+#define VGT_DEBUG_REG1_out_vr_indx_read_SHIFT 8
+#define VGT_DEBUG_REG1_vr_out_indx_valid_SHIFT 9
+#define VGT_DEBUG_REG1_te_grp_read_SHIFT 10
+#define VGT_DEBUG_REG1_grp_te_valid_SHIFT 11
+#define VGT_DEBUG_REG1_pt_grp_read_SHIFT 12
+#define VGT_DEBUG_REG1_grp_pt_valid_SHIFT 13
+#define VGT_DEBUG_REG1_vr_grp_read_SHIFT 14
+#define VGT_DEBUG_REG1_grp_vr_valid_SHIFT 15
+#define VGT_DEBUG_REG1_grp_dma_read_SHIFT 16
+#define VGT_DEBUG_REG1_dma_grp_valid_SHIFT 17
+#define VGT_DEBUG_REG1_grp_rbiu_di_read_SHIFT 18
+#define VGT_DEBUG_REG1_rbiu_grp_di_valid_SHIFT 19
+#define VGT_DEBUG_REG1_MH_VGT_rtr_SHIFT 20
+#define VGT_DEBUG_REG1_VGT_MH_send_SHIFT 21
+#define VGT_DEBUG_REG1_PA_VGT_clip_s_rtr_SHIFT 22
+#define VGT_DEBUG_REG1_VGT_PA_clip_s_send_SHIFT 23
+#define VGT_DEBUG_REG1_PA_VGT_clip_p_rtr_SHIFT 24
+#define VGT_DEBUG_REG1_VGT_PA_clip_p_send_SHIFT 25
+#define VGT_DEBUG_REG1_PA_VGT_clip_v_rtr_SHIFT 26
+#define VGT_DEBUG_REG1_VGT_PA_clip_v_send_SHIFT 27
+#define VGT_DEBUG_REG1_SQ_VGT_rtr_SHIFT 28
+#define VGT_DEBUG_REG1_VGT_SQ_send_SHIFT 29
+#define VGT_DEBUG_REG1_mh_vgt_tag_7_q_SHIFT 30
+
+#define VGT_DEBUG_REG1_out_te_data_read_MASK 0x00000001
+#define VGT_DEBUG_REG1_te_out_data_valid_MASK 0x00000002
+#define VGT_DEBUG_REG1_out_pt_prim_read_MASK 0x00000004
+#define VGT_DEBUG_REG1_pt_out_prim_valid_MASK 0x00000008
+#define VGT_DEBUG_REG1_out_pt_data_read_MASK 0x00000010
+#define VGT_DEBUG_REG1_pt_out_indx_valid_MASK 0x00000020
+#define VGT_DEBUG_REG1_out_vr_prim_read_MASK 0x00000040
+#define VGT_DEBUG_REG1_vr_out_prim_valid_MASK 0x00000080
+#define VGT_DEBUG_REG1_out_vr_indx_read_MASK 0x00000100
+#define VGT_DEBUG_REG1_vr_out_indx_valid_MASK 0x00000200
+#define VGT_DEBUG_REG1_te_grp_read_MASK 0x00000400
+#define VGT_DEBUG_REG1_grp_te_valid_MASK 0x00000800
+#define VGT_DEBUG_REG1_pt_grp_read_MASK 0x00001000
+#define VGT_DEBUG_REG1_grp_pt_valid_MASK 0x00002000
+#define VGT_DEBUG_REG1_vr_grp_read_MASK 0x00004000
+#define VGT_DEBUG_REG1_grp_vr_valid_MASK 0x00008000
+#define VGT_DEBUG_REG1_grp_dma_read_MASK 0x00010000
+#define VGT_DEBUG_REG1_dma_grp_valid_MASK 0x00020000
+#define VGT_DEBUG_REG1_grp_rbiu_di_read_MASK 0x00040000
+#define VGT_DEBUG_REG1_rbiu_grp_di_valid_MASK 0x00080000
+#define VGT_DEBUG_REG1_MH_VGT_rtr_MASK 0x00100000
+#define VGT_DEBUG_REG1_VGT_MH_send_MASK 0x00200000
+#define VGT_DEBUG_REG1_PA_VGT_clip_s_rtr_MASK 0x00400000
+#define VGT_DEBUG_REG1_VGT_PA_clip_s_send_MASK 0x00800000
+#define VGT_DEBUG_REG1_PA_VGT_clip_p_rtr_MASK 0x01000000
+#define VGT_DEBUG_REG1_VGT_PA_clip_p_send_MASK 0x02000000
+#define VGT_DEBUG_REG1_PA_VGT_clip_v_rtr_MASK 0x04000000
+#define VGT_DEBUG_REG1_VGT_PA_clip_v_send_MASK 0x08000000
+#define VGT_DEBUG_REG1_SQ_VGT_rtr_MASK 0x10000000
+#define VGT_DEBUG_REG1_VGT_SQ_send_MASK 0x20000000
+#define VGT_DEBUG_REG1_mh_vgt_tag_7_q_MASK 0x40000000
+
+#define VGT_DEBUG_REG1_MASK \
+ (VGT_DEBUG_REG1_out_te_data_read_MASK | \
+ VGT_DEBUG_REG1_te_out_data_valid_MASK | \
+ VGT_DEBUG_REG1_out_pt_prim_read_MASK | \
+ VGT_DEBUG_REG1_pt_out_prim_valid_MASK | \
+ VGT_DEBUG_REG1_out_pt_data_read_MASK | \
+ VGT_DEBUG_REG1_pt_out_indx_valid_MASK | \
+ VGT_DEBUG_REG1_out_vr_prim_read_MASK | \
+ VGT_DEBUG_REG1_vr_out_prim_valid_MASK | \
+ VGT_DEBUG_REG1_out_vr_indx_read_MASK | \
+ VGT_DEBUG_REG1_vr_out_indx_valid_MASK | \
+ VGT_DEBUG_REG1_te_grp_read_MASK | \
+ VGT_DEBUG_REG1_grp_te_valid_MASK | \
+ VGT_DEBUG_REG1_pt_grp_read_MASK | \
+ VGT_DEBUG_REG1_grp_pt_valid_MASK | \
+ VGT_DEBUG_REG1_vr_grp_read_MASK | \
+ VGT_DEBUG_REG1_grp_vr_valid_MASK | \
+ VGT_DEBUG_REG1_grp_dma_read_MASK | \
+ VGT_DEBUG_REG1_dma_grp_valid_MASK | \
+ VGT_DEBUG_REG1_grp_rbiu_di_read_MASK | \
+ VGT_DEBUG_REG1_rbiu_grp_di_valid_MASK | \
+ VGT_DEBUG_REG1_MH_VGT_rtr_MASK | \
+ VGT_DEBUG_REG1_VGT_MH_send_MASK | \
+ VGT_DEBUG_REG1_PA_VGT_clip_s_rtr_MASK | \
+ VGT_DEBUG_REG1_VGT_PA_clip_s_send_MASK | \
+ VGT_DEBUG_REG1_PA_VGT_clip_p_rtr_MASK | \
+ VGT_DEBUG_REG1_VGT_PA_clip_p_send_MASK | \
+ VGT_DEBUG_REG1_PA_VGT_clip_v_rtr_MASK | \
+ VGT_DEBUG_REG1_VGT_PA_clip_v_send_MASK | \
+ VGT_DEBUG_REG1_SQ_VGT_rtr_MASK | \
+ VGT_DEBUG_REG1_VGT_SQ_send_MASK | \
+ VGT_DEBUG_REG1_mh_vgt_tag_7_q_MASK)
+
+#define VGT_DEBUG_REG1(out_te_data_read, te_out_data_valid, out_pt_prim_read, pt_out_prim_valid, out_pt_data_read, pt_out_indx_valid, out_vr_prim_read, vr_out_prim_valid, out_vr_indx_read, vr_out_indx_valid, te_grp_read, grp_te_valid, pt_grp_read, grp_pt_valid, vr_grp_read, grp_vr_valid, grp_dma_read, dma_grp_valid, grp_rbiu_di_read, rbiu_grp_di_valid, mh_vgt_rtr, vgt_mh_send, pa_vgt_clip_s_rtr, vgt_pa_clip_s_send, pa_vgt_clip_p_rtr, vgt_pa_clip_p_send, pa_vgt_clip_v_rtr, vgt_pa_clip_v_send, sq_vgt_rtr, vgt_sq_send, mh_vgt_tag_7_q) \
+ ((out_te_data_read << VGT_DEBUG_REG1_out_te_data_read_SHIFT) | \
+ (te_out_data_valid << VGT_DEBUG_REG1_te_out_data_valid_SHIFT) | \
+ (out_pt_prim_read << VGT_DEBUG_REG1_out_pt_prim_read_SHIFT) | \
+ (pt_out_prim_valid << VGT_DEBUG_REG1_pt_out_prim_valid_SHIFT) | \
+ (out_pt_data_read << VGT_DEBUG_REG1_out_pt_data_read_SHIFT) | \
+ (pt_out_indx_valid << VGT_DEBUG_REG1_pt_out_indx_valid_SHIFT) | \
+ (out_vr_prim_read << VGT_DEBUG_REG1_out_vr_prim_read_SHIFT) | \
+ (vr_out_prim_valid << VGT_DEBUG_REG1_vr_out_prim_valid_SHIFT) | \
+ (out_vr_indx_read << VGT_DEBUG_REG1_out_vr_indx_read_SHIFT) | \
+ (vr_out_indx_valid << VGT_DEBUG_REG1_vr_out_indx_valid_SHIFT) | \
+ (te_grp_read << VGT_DEBUG_REG1_te_grp_read_SHIFT) | \
+ (grp_te_valid << VGT_DEBUG_REG1_grp_te_valid_SHIFT) | \
+ (pt_grp_read << VGT_DEBUG_REG1_pt_grp_read_SHIFT) | \
+ (grp_pt_valid << VGT_DEBUG_REG1_grp_pt_valid_SHIFT) | \
+ (vr_grp_read << VGT_DEBUG_REG1_vr_grp_read_SHIFT) | \
+ (grp_vr_valid << VGT_DEBUG_REG1_grp_vr_valid_SHIFT) | \
+ (grp_dma_read << VGT_DEBUG_REG1_grp_dma_read_SHIFT) | \
+ (dma_grp_valid << VGT_DEBUG_REG1_dma_grp_valid_SHIFT) | \
+ (grp_rbiu_di_read << VGT_DEBUG_REG1_grp_rbiu_di_read_SHIFT) | \
+ (rbiu_grp_di_valid << VGT_DEBUG_REG1_rbiu_grp_di_valid_SHIFT) | \
+ (mh_vgt_rtr << VGT_DEBUG_REG1_MH_VGT_rtr_SHIFT) | \
+ (vgt_mh_send << VGT_DEBUG_REG1_VGT_MH_send_SHIFT) | \
+ (pa_vgt_clip_s_rtr << VGT_DEBUG_REG1_PA_VGT_clip_s_rtr_SHIFT) | \
+ (vgt_pa_clip_s_send << VGT_DEBUG_REG1_VGT_PA_clip_s_send_SHIFT) | \
+ (pa_vgt_clip_p_rtr << VGT_DEBUG_REG1_PA_VGT_clip_p_rtr_SHIFT) | \
+ (vgt_pa_clip_p_send << VGT_DEBUG_REG1_VGT_PA_clip_p_send_SHIFT) | \
+ (pa_vgt_clip_v_rtr << VGT_DEBUG_REG1_PA_VGT_clip_v_rtr_SHIFT) | \
+ (vgt_pa_clip_v_send << VGT_DEBUG_REG1_VGT_PA_clip_v_send_SHIFT) | \
+ (sq_vgt_rtr << VGT_DEBUG_REG1_SQ_VGT_rtr_SHIFT) | \
+ (vgt_sq_send << VGT_DEBUG_REG1_VGT_SQ_send_SHIFT) | \
+ (mh_vgt_tag_7_q << VGT_DEBUG_REG1_mh_vgt_tag_7_q_SHIFT))
+
+#define VGT_DEBUG_REG1_GET_out_te_data_read(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_out_te_data_read_MASK) >> VGT_DEBUG_REG1_out_te_data_read_SHIFT)
+#define VGT_DEBUG_REG1_GET_te_out_data_valid(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_te_out_data_valid_MASK) >> VGT_DEBUG_REG1_te_out_data_valid_SHIFT)
+#define VGT_DEBUG_REG1_GET_out_pt_prim_read(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_out_pt_prim_read_MASK) >> VGT_DEBUG_REG1_out_pt_prim_read_SHIFT)
+#define VGT_DEBUG_REG1_GET_pt_out_prim_valid(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_pt_out_prim_valid_MASK) >> VGT_DEBUG_REG1_pt_out_prim_valid_SHIFT)
+#define VGT_DEBUG_REG1_GET_out_pt_data_read(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_out_pt_data_read_MASK) >> VGT_DEBUG_REG1_out_pt_data_read_SHIFT)
+#define VGT_DEBUG_REG1_GET_pt_out_indx_valid(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_pt_out_indx_valid_MASK) >> VGT_DEBUG_REG1_pt_out_indx_valid_SHIFT)
+#define VGT_DEBUG_REG1_GET_out_vr_prim_read(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_out_vr_prim_read_MASK) >> VGT_DEBUG_REG1_out_vr_prim_read_SHIFT)
+#define VGT_DEBUG_REG1_GET_vr_out_prim_valid(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_vr_out_prim_valid_MASK) >> VGT_DEBUG_REG1_vr_out_prim_valid_SHIFT)
+#define VGT_DEBUG_REG1_GET_out_vr_indx_read(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_out_vr_indx_read_MASK) >> VGT_DEBUG_REG1_out_vr_indx_read_SHIFT)
+#define VGT_DEBUG_REG1_GET_vr_out_indx_valid(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_vr_out_indx_valid_MASK) >> VGT_DEBUG_REG1_vr_out_indx_valid_SHIFT)
+#define VGT_DEBUG_REG1_GET_te_grp_read(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_te_grp_read_MASK) >> VGT_DEBUG_REG1_te_grp_read_SHIFT)
+#define VGT_DEBUG_REG1_GET_grp_te_valid(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_grp_te_valid_MASK) >> VGT_DEBUG_REG1_grp_te_valid_SHIFT)
+#define VGT_DEBUG_REG1_GET_pt_grp_read(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_pt_grp_read_MASK) >> VGT_DEBUG_REG1_pt_grp_read_SHIFT)
+#define VGT_DEBUG_REG1_GET_grp_pt_valid(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_grp_pt_valid_MASK) >> VGT_DEBUG_REG1_grp_pt_valid_SHIFT)
+#define VGT_DEBUG_REG1_GET_vr_grp_read(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_vr_grp_read_MASK) >> VGT_DEBUG_REG1_vr_grp_read_SHIFT)
+#define VGT_DEBUG_REG1_GET_grp_vr_valid(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_grp_vr_valid_MASK) >> VGT_DEBUG_REG1_grp_vr_valid_SHIFT)
+#define VGT_DEBUG_REG1_GET_grp_dma_read(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_grp_dma_read_MASK) >> VGT_DEBUG_REG1_grp_dma_read_SHIFT)
+#define VGT_DEBUG_REG1_GET_dma_grp_valid(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_dma_grp_valid_MASK) >> VGT_DEBUG_REG1_dma_grp_valid_SHIFT)
+#define VGT_DEBUG_REG1_GET_grp_rbiu_di_read(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_grp_rbiu_di_read_MASK) >> VGT_DEBUG_REG1_grp_rbiu_di_read_SHIFT)
+#define VGT_DEBUG_REG1_GET_rbiu_grp_di_valid(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_rbiu_grp_di_valid_MASK) >> VGT_DEBUG_REG1_rbiu_grp_di_valid_SHIFT)
+#define VGT_DEBUG_REG1_GET_MH_VGT_rtr(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_MH_VGT_rtr_MASK) >> VGT_DEBUG_REG1_MH_VGT_rtr_SHIFT)
+#define VGT_DEBUG_REG1_GET_VGT_MH_send(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_VGT_MH_send_MASK) >> VGT_DEBUG_REG1_VGT_MH_send_SHIFT)
+#define VGT_DEBUG_REG1_GET_PA_VGT_clip_s_rtr(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_PA_VGT_clip_s_rtr_MASK) >> VGT_DEBUG_REG1_PA_VGT_clip_s_rtr_SHIFT)
+#define VGT_DEBUG_REG1_GET_VGT_PA_clip_s_send(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_VGT_PA_clip_s_send_MASK) >> VGT_DEBUG_REG1_VGT_PA_clip_s_send_SHIFT)
+#define VGT_DEBUG_REG1_GET_PA_VGT_clip_p_rtr(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_PA_VGT_clip_p_rtr_MASK) >> VGT_DEBUG_REG1_PA_VGT_clip_p_rtr_SHIFT)
+#define VGT_DEBUG_REG1_GET_VGT_PA_clip_p_send(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_VGT_PA_clip_p_send_MASK) >> VGT_DEBUG_REG1_VGT_PA_clip_p_send_SHIFT)
+#define VGT_DEBUG_REG1_GET_PA_VGT_clip_v_rtr(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_PA_VGT_clip_v_rtr_MASK) >> VGT_DEBUG_REG1_PA_VGT_clip_v_rtr_SHIFT)
+#define VGT_DEBUG_REG1_GET_VGT_PA_clip_v_send(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_VGT_PA_clip_v_send_MASK) >> VGT_DEBUG_REG1_VGT_PA_clip_v_send_SHIFT)
+#define VGT_DEBUG_REG1_GET_SQ_VGT_rtr(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_SQ_VGT_rtr_MASK) >> VGT_DEBUG_REG1_SQ_VGT_rtr_SHIFT)
+#define VGT_DEBUG_REG1_GET_VGT_SQ_send(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_VGT_SQ_send_MASK) >> VGT_DEBUG_REG1_VGT_SQ_send_SHIFT)
+#define VGT_DEBUG_REG1_GET_mh_vgt_tag_7_q(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_mh_vgt_tag_7_q_MASK) >> VGT_DEBUG_REG1_mh_vgt_tag_7_q_SHIFT)
+
+#define VGT_DEBUG_REG1_SET_out_te_data_read(vgt_debug_reg1_reg, out_te_data_read) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_out_te_data_read_MASK) | (out_te_data_read << VGT_DEBUG_REG1_out_te_data_read_SHIFT)
+#define VGT_DEBUG_REG1_SET_te_out_data_valid(vgt_debug_reg1_reg, te_out_data_valid) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_te_out_data_valid_MASK) | (te_out_data_valid << VGT_DEBUG_REG1_te_out_data_valid_SHIFT)
+#define VGT_DEBUG_REG1_SET_out_pt_prim_read(vgt_debug_reg1_reg, out_pt_prim_read) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_out_pt_prim_read_MASK) | (out_pt_prim_read << VGT_DEBUG_REG1_out_pt_prim_read_SHIFT)
+#define VGT_DEBUG_REG1_SET_pt_out_prim_valid(vgt_debug_reg1_reg, pt_out_prim_valid) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_pt_out_prim_valid_MASK) | (pt_out_prim_valid << VGT_DEBUG_REG1_pt_out_prim_valid_SHIFT)
+#define VGT_DEBUG_REG1_SET_out_pt_data_read(vgt_debug_reg1_reg, out_pt_data_read) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_out_pt_data_read_MASK) | (out_pt_data_read << VGT_DEBUG_REG1_out_pt_data_read_SHIFT)
+#define VGT_DEBUG_REG1_SET_pt_out_indx_valid(vgt_debug_reg1_reg, pt_out_indx_valid) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_pt_out_indx_valid_MASK) | (pt_out_indx_valid << VGT_DEBUG_REG1_pt_out_indx_valid_SHIFT)
+#define VGT_DEBUG_REG1_SET_out_vr_prim_read(vgt_debug_reg1_reg, out_vr_prim_read) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_out_vr_prim_read_MASK) | (out_vr_prim_read << VGT_DEBUG_REG1_out_vr_prim_read_SHIFT)
+#define VGT_DEBUG_REG1_SET_vr_out_prim_valid(vgt_debug_reg1_reg, vr_out_prim_valid) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_vr_out_prim_valid_MASK) | (vr_out_prim_valid << VGT_DEBUG_REG1_vr_out_prim_valid_SHIFT)
+#define VGT_DEBUG_REG1_SET_out_vr_indx_read(vgt_debug_reg1_reg, out_vr_indx_read) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_out_vr_indx_read_MASK) | (out_vr_indx_read << VGT_DEBUG_REG1_out_vr_indx_read_SHIFT)
+#define VGT_DEBUG_REG1_SET_vr_out_indx_valid(vgt_debug_reg1_reg, vr_out_indx_valid) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_vr_out_indx_valid_MASK) | (vr_out_indx_valid << VGT_DEBUG_REG1_vr_out_indx_valid_SHIFT)
+#define VGT_DEBUG_REG1_SET_te_grp_read(vgt_debug_reg1_reg, te_grp_read) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_te_grp_read_MASK) | (te_grp_read << VGT_DEBUG_REG1_te_grp_read_SHIFT)
+#define VGT_DEBUG_REG1_SET_grp_te_valid(vgt_debug_reg1_reg, grp_te_valid) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_grp_te_valid_MASK) | (grp_te_valid << VGT_DEBUG_REG1_grp_te_valid_SHIFT)
+#define VGT_DEBUG_REG1_SET_pt_grp_read(vgt_debug_reg1_reg, pt_grp_read) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_pt_grp_read_MASK) | (pt_grp_read << VGT_DEBUG_REG1_pt_grp_read_SHIFT)
+#define VGT_DEBUG_REG1_SET_grp_pt_valid(vgt_debug_reg1_reg, grp_pt_valid) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_grp_pt_valid_MASK) | (grp_pt_valid << VGT_DEBUG_REG1_grp_pt_valid_SHIFT)
+#define VGT_DEBUG_REG1_SET_vr_grp_read(vgt_debug_reg1_reg, vr_grp_read) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_vr_grp_read_MASK) | (vr_grp_read << VGT_DEBUG_REG1_vr_grp_read_SHIFT)
+#define VGT_DEBUG_REG1_SET_grp_vr_valid(vgt_debug_reg1_reg, grp_vr_valid) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_grp_vr_valid_MASK) | (grp_vr_valid << VGT_DEBUG_REG1_grp_vr_valid_SHIFT)
+#define VGT_DEBUG_REG1_SET_grp_dma_read(vgt_debug_reg1_reg, grp_dma_read) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_grp_dma_read_MASK) | (grp_dma_read << VGT_DEBUG_REG1_grp_dma_read_SHIFT)
+#define VGT_DEBUG_REG1_SET_dma_grp_valid(vgt_debug_reg1_reg, dma_grp_valid) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_dma_grp_valid_MASK) | (dma_grp_valid << VGT_DEBUG_REG1_dma_grp_valid_SHIFT)
+#define VGT_DEBUG_REG1_SET_grp_rbiu_di_read(vgt_debug_reg1_reg, grp_rbiu_di_read) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_grp_rbiu_di_read_MASK) | (grp_rbiu_di_read << VGT_DEBUG_REG1_grp_rbiu_di_read_SHIFT)
+#define VGT_DEBUG_REG1_SET_rbiu_grp_di_valid(vgt_debug_reg1_reg, rbiu_grp_di_valid) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_rbiu_grp_di_valid_MASK) | (rbiu_grp_di_valid << VGT_DEBUG_REG1_rbiu_grp_di_valid_SHIFT)
+#define VGT_DEBUG_REG1_SET_MH_VGT_rtr(vgt_debug_reg1_reg, mh_vgt_rtr) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_MH_VGT_rtr_MASK) | (mh_vgt_rtr << VGT_DEBUG_REG1_MH_VGT_rtr_SHIFT)
+#define VGT_DEBUG_REG1_SET_VGT_MH_send(vgt_debug_reg1_reg, vgt_mh_send) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_VGT_MH_send_MASK) | (vgt_mh_send << VGT_DEBUG_REG1_VGT_MH_send_SHIFT)
+#define VGT_DEBUG_REG1_SET_PA_VGT_clip_s_rtr(vgt_debug_reg1_reg, pa_vgt_clip_s_rtr) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_PA_VGT_clip_s_rtr_MASK) | (pa_vgt_clip_s_rtr << VGT_DEBUG_REG1_PA_VGT_clip_s_rtr_SHIFT)
+#define VGT_DEBUG_REG1_SET_VGT_PA_clip_s_send(vgt_debug_reg1_reg, vgt_pa_clip_s_send) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_VGT_PA_clip_s_send_MASK) | (vgt_pa_clip_s_send << VGT_DEBUG_REG1_VGT_PA_clip_s_send_SHIFT)
+#define VGT_DEBUG_REG1_SET_PA_VGT_clip_p_rtr(vgt_debug_reg1_reg, pa_vgt_clip_p_rtr) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_PA_VGT_clip_p_rtr_MASK) | (pa_vgt_clip_p_rtr << VGT_DEBUG_REG1_PA_VGT_clip_p_rtr_SHIFT)
+#define VGT_DEBUG_REG1_SET_VGT_PA_clip_p_send(vgt_debug_reg1_reg, vgt_pa_clip_p_send) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_VGT_PA_clip_p_send_MASK) | (vgt_pa_clip_p_send << VGT_DEBUG_REG1_VGT_PA_clip_p_send_SHIFT)
+#define VGT_DEBUG_REG1_SET_PA_VGT_clip_v_rtr(vgt_debug_reg1_reg, pa_vgt_clip_v_rtr) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_PA_VGT_clip_v_rtr_MASK) | (pa_vgt_clip_v_rtr << VGT_DEBUG_REG1_PA_VGT_clip_v_rtr_SHIFT)
+#define VGT_DEBUG_REG1_SET_VGT_PA_clip_v_send(vgt_debug_reg1_reg, vgt_pa_clip_v_send) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_VGT_PA_clip_v_send_MASK) | (vgt_pa_clip_v_send << VGT_DEBUG_REG1_VGT_PA_clip_v_send_SHIFT)
+#define VGT_DEBUG_REG1_SET_SQ_VGT_rtr(vgt_debug_reg1_reg, sq_vgt_rtr) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_SQ_VGT_rtr_MASK) | (sq_vgt_rtr << VGT_DEBUG_REG1_SQ_VGT_rtr_SHIFT)
+#define VGT_DEBUG_REG1_SET_VGT_SQ_send(vgt_debug_reg1_reg, vgt_sq_send) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_VGT_SQ_send_MASK) | (vgt_sq_send << VGT_DEBUG_REG1_VGT_SQ_send_SHIFT)
+#define VGT_DEBUG_REG1_SET_mh_vgt_tag_7_q(vgt_debug_reg1_reg, mh_vgt_tag_7_q) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_mh_vgt_tag_7_q_MASK) | (mh_vgt_tag_7_q << VGT_DEBUG_REG1_mh_vgt_tag_7_q_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg1_t {
+ unsigned int out_te_data_read : VGT_DEBUG_REG1_out_te_data_read_SIZE;
+ unsigned int te_out_data_valid : VGT_DEBUG_REG1_te_out_data_valid_SIZE;
+ unsigned int out_pt_prim_read : VGT_DEBUG_REG1_out_pt_prim_read_SIZE;
+ unsigned int pt_out_prim_valid : VGT_DEBUG_REG1_pt_out_prim_valid_SIZE;
+ unsigned int out_pt_data_read : VGT_DEBUG_REG1_out_pt_data_read_SIZE;
+ unsigned int pt_out_indx_valid : VGT_DEBUG_REG1_pt_out_indx_valid_SIZE;
+ unsigned int out_vr_prim_read : VGT_DEBUG_REG1_out_vr_prim_read_SIZE;
+ unsigned int vr_out_prim_valid : VGT_DEBUG_REG1_vr_out_prim_valid_SIZE;
+ unsigned int out_vr_indx_read : VGT_DEBUG_REG1_out_vr_indx_read_SIZE;
+ unsigned int vr_out_indx_valid : VGT_DEBUG_REG1_vr_out_indx_valid_SIZE;
+ unsigned int te_grp_read : VGT_DEBUG_REG1_te_grp_read_SIZE;
+ unsigned int grp_te_valid : VGT_DEBUG_REG1_grp_te_valid_SIZE;
+ unsigned int pt_grp_read : VGT_DEBUG_REG1_pt_grp_read_SIZE;
+ unsigned int grp_pt_valid : VGT_DEBUG_REG1_grp_pt_valid_SIZE;
+ unsigned int vr_grp_read : VGT_DEBUG_REG1_vr_grp_read_SIZE;
+ unsigned int grp_vr_valid : VGT_DEBUG_REG1_grp_vr_valid_SIZE;
+ unsigned int grp_dma_read : VGT_DEBUG_REG1_grp_dma_read_SIZE;
+ unsigned int dma_grp_valid : VGT_DEBUG_REG1_dma_grp_valid_SIZE;
+ unsigned int grp_rbiu_di_read : VGT_DEBUG_REG1_grp_rbiu_di_read_SIZE;
+ unsigned int rbiu_grp_di_valid : VGT_DEBUG_REG1_rbiu_grp_di_valid_SIZE;
+ unsigned int mh_vgt_rtr : VGT_DEBUG_REG1_MH_VGT_rtr_SIZE;
+ unsigned int vgt_mh_send : VGT_DEBUG_REG1_VGT_MH_send_SIZE;
+ unsigned int pa_vgt_clip_s_rtr : VGT_DEBUG_REG1_PA_VGT_clip_s_rtr_SIZE;
+ unsigned int vgt_pa_clip_s_send : VGT_DEBUG_REG1_VGT_PA_clip_s_send_SIZE;
+ unsigned int pa_vgt_clip_p_rtr : VGT_DEBUG_REG1_PA_VGT_clip_p_rtr_SIZE;
+ unsigned int vgt_pa_clip_p_send : VGT_DEBUG_REG1_VGT_PA_clip_p_send_SIZE;
+ unsigned int pa_vgt_clip_v_rtr : VGT_DEBUG_REG1_PA_VGT_clip_v_rtr_SIZE;
+ unsigned int vgt_pa_clip_v_send : VGT_DEBUG_REG1_VGT_PA_clip_v_send_SIZE;
+ unsigned int sq_vgt_rtr : VGT_DEBUG_REG1_SQ_VGT_rtr_SIZE;
+ unsigned int vgt_sq_send : VGT_DEBUG_REG1_VGT_SQ_send_SIZE;
+ unsigned int mh_vgt_tag_7_q : VGT_DEBUG_REG1_mh_vgt_tag_7_q_SIZE;
+ unsigned int : 1;
+ } vgt_debug_reg1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg1_t {
+ unsigned int : 1;
+ unsigned int mh_vgt_tag_7_q : VGT_DEBUG_REG1_mh_vgt_tag_7_q_SIZE;
+ unsigned int vgt_sq_send : VGT_DEBUG_REG1_VGT_SQ_send_SIZE;
+ unsigned int sq_vgt_rtr : VGT_DEBUG_REG1_SQ_VGT_rtr_SIZE;
+ unsigned int vgt_pa_clip_v_send : VGT_DEBUG_REG1_VGT_PA_clip_v_send_SIZE;
+ unsigned int pa_vgt_clip_v_rtr : VGT_DEBUG_REG1_PA_VGT_clip_v_rtr_SIZE;
+ unsigned int vgt_pa_clip_p_send : VGT_DEBUG_REG1_VGT_PA_clip_p_send_SIZE;
+ unsigned int pa_vgt_clip_p_rtr : VGT_DEBUG_REG1_PA_VGT_clip_p_rtr_SIZE;
+ unsigned int vgt_pa_clip_s_send : VGT_DEBUG_REG1_VGT_PA_clip_s_send_SIZE;
+ unsigned int pa_vgt_clip_s_rtr : VGT_DEBUG_REG1_PA_VGT_clip_s_rtr_SIZE;
+ unsigned int vgt_mh_send : VGT_DEBUG_REG1_VGT_MH_send_SIZE;
+ unsigned int mh_vgt_rtr : VGT_DEBUG_REG1_MH_VGT_rtr_SIZE;
+ unsigned int rbiu_grp_di_valid : VGT_DEBUG_REG1_rbiu_grp_di_valid_SIZE;
+ unsigned int grp_rbiu_di_read : VGT_DEBUG_REG1_grp_rbiu_di_read_SIZE;
+ unsigned int dma_grp_valid : VGT_DEBUG_REG1_dma_grp_valid_SIZE;
+ unsigned int grp_dma_read : VGT_DEBUG_REG1_grp_dma_read_SIZE;
+ unsigned int grp_vr_valid : VGT_DEBUG_REG1_grp_vr_valid_SIZE;
+ unsigned int vr_grp_read : VGT_DEBUG_REG1_vr_grp_read_SIZE;
+ unsigned int grp_pt_valid : VGT_DEBUG_REG1_grp_pt_valid_SIZE;
+ unsigned int pt_grp_read : VGT_DEBUG_REG1_pt_grp_read_SIZE;
+ unsigned int grp_te_valid : VGT_DEBUG_REG1_grp_te_valid_SIZE;
+ unsigned int te_grp_read : VGT_DEBUG_REG1_te_grp_read_SIZE;
+ unsigned int vr_out_indx_valid : VGT_DEBUG_REG1_vr_out_indx_valid_SIZE;
+ unsigned int out_vr_indx_read : VGT_DEBUG_REG1_out_vr_indx_read_SIZE;
+ unsigned int vr_out_prim_valid : VGT_DEBUG_REG1_vr_out_prim_valid_SIZE;
+ unsigned int out_vr_prim_read : VGT_DEBUG_REG1_out_vr_prim_read_SIZE;
+ unsigned int pt_out_indx_valid : VGT_DEBUG_REG1_pt_out_indx_valid_SIZE;
+ unsigned int out_pt_data_read : VGT_DEBUG_REG1_out_pt_data_read_SIZE;
+ unsigned int pt_out_prim_valid : VGT_DEBUG_REG1_pt_out_prim_valid_SIZE;
+ unsigned int out_pt_prim_read : VGT_DEBUG_REG1_out_pt_prim_read_SIZE;
+ unsigned int te_out_data_valid : VGT_DEBUG_REG1_te_out_data_valid_SIZE;
+ unsigned int out_te_data_read : VGT_DEBUG_REG1_out_te_data_read_SIZE;
+ } vgt_debug_reg1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_reg1_t f;
+} vgt_debug_reg1_u;
+
+
+/*
+ * VGT_DEBUG_REG3 struct
+ */
+
+#define VGT_DEBUG_REG3_vgt_clk_en_SIZE 1
+#define VGT_DEBUG_REG3_reg_fifos_clk_en_SIZE 1
+
+#define VGT_DEBUG_REG3_vgt_clk_en_SHIFT 0
+#define VGT_DEBUG_REG3_reg_fifos_clk_en_SHIFT 1
+
+#define VGT_DEBUG_REG3_vgt_clk_en_MASK 0x00000001
+#define VGT_DEBUG_REG3_reg_fifos_clk_en_MASK 0x00000002
+
+#define VGT_DEBUG_REG3_MASK \
+ (VGT_DEBUG_REG3_vgt_clk_en_MASK | \
+ VGT_DEBUG_REG3_reg_fifos_clk_en_MASK)
+
+#define VGT_DEBUG_REG3(vgt_clk_en, reg_fifos_clk_en) \
+ ((vgt_clk_en << VGT_DEBUG_REG3_vgt_clk_en_SHIFT) | \
+ (reg_fifos_clk_en << VGT_DEBUG_REG3_reg_fifos_clk_en_SHIFT))
+
+#define VGT_DEBUG_REG3_GET_vgt_clk_en(vgt_debug_reg3) \
+ ((vgt_debug_reg3 & VGT_DEBUG_REG3_vgt_clk_en_MASK) >> VGT_DEBUG_REG3_vgt_clk_en_SHIFT)
+#define VGT_DEBUG_REG3_GET_reg_fifos_clk_en(vgt_debug_reg3) \
+ ((vgt_debug_reg3 & VGT_DEBUG_REG3_reg_fifos_clk_en_MASK) >> VGT_DEBUG_REG3_reg_fifos_clk_en_SHIFT)
+
+#define VGT_DEBUG_REG3_SET_vgt_clk_en(vgt_debug_reg3_reg, vgt_clk_en) \
+ vgt_debug_reg3_reg = (vgt_debug_reg3_reg & ~VGT_DEBUG_REG3_vgt_clk_en_MASK) | (vgt_clk_en << VGT_DEBUG_REG3_vgt_clk_en_SHIFT)
+#define VGT_DEBUG_REG3_SET_reg_fifos_clk_en(vgt_debug_reg3_reg, reg_fifos_clk_en) \
+ vgt_debug_reg3_reg = (vgt_debug_reg3_reg & ~VGT_DEBUG_REG3_reg_fifos_clk_en_MASK) | (reg_fifos_clk_en << VGT_DEBUG_REG3_reg_fifos_clk_en_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg3_t {
+ unsigned int vgt_clk_en : VGT_DEBUG_REG3_vgt_clk_en_SIZE;
+ unsigned int reg_fifos_clk_en : VGT_DEBUG_REG3_reg_fifos_clk_en_SIZE;
+ unsigned int : 30;
+ } vgt_debug_reg3_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg3_t {
+ unsigned int : 30;
+ unsigned int reg_fifos_clk_en : VGT_DEBUG_REG3_reg_fifos_clk_en_SIZE;
+ unsigned int vgt_clk_en : VGT_DEBUG_REG3_vgt_clk_en_SIZE;
+ } vgt_debug_reg3_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_reg3_t f;
+} vgt_debug_reg3_u;
+
+
+/*
+ * VGT_DEBUG_REG6 struct
+ */
+
+#define VGT_DEBUG_REG6_shifter_byte_count_q_SIZE 5
+#define VGT_DEBUG_REG6_right_word_indx_q_SIZE 5
+#define VGT_DEBUG_REG6_input_data_valid_SIZE 1
+#define VGT_DEBUG_REG6_input_data_xfer_SIZE 1
+#define VGT_DEBUG_REG6_next_shift_is_vect_1_q_SIZE 1
+#define VGT_DEBUG_REG6_next_shift_is_vect_1_d_SIZE 1
+#define VGT_DEBUG_REG6_next_shift_is_vect_1_pre_d_SIZE 1
+#define VGT_DEBUG_REG6_space_avail_from_shift_SIZE 1
+#define VGT_DEBUG_REG6_shifter_first_load_SIZE 1
+#define VGT_DEBUG_REG6_di_state_sel_q_SIZE 1
+#define VGT_DEBUG_REG6_shifter_waiting_for_first_load_q_SIZE 1
+#define VGT_DEBUG_REG6_di_first_group_flag_q_SIZE 1
+#define VGT_DEBUG_REG6_di_event_flag_q_SIZE 1
+#define VGT_DEBUG_REG6_read_draw_initiator_SIZE 1
+#define VGT_DEBUG_REG6_loading_di_requires_shifter_SIZE 1
+#define VGT_DEBUG_REG6_last_shift_of_packet_SIZE 1
+#define VGT_DEBUG_REG6_last_decr_of_packet_SIZE 1
+#define VGT_DEBUG_REG6_extract_vector_SIZE 1
+#define VGT_DEBUG_REG6_shift_vect_rtr_SIZE 1
+#define VGT_DEBUG_REG6_destination_rtr_SIZE 1
+#define VGT_DEBUG_REG6_grp_trigger_SIZE 1
+
+#define VGT_DEBUG_REG6_shifter_byte_count_q_SHIFT 0
+#define VGT_DEBUG_REG6_right_word_indx_q_SHIFT 5
+#define VGT_DEBUG_REG6_input_data_valid_SHIFT 10
+#define VGT_DEBUG_REG6_input_data_xfer_SHIFT 11
+#define VGT_DEBUG_REG6_next_shift_is_vect_1_q_SHIFT 12
+#define VGT_DEBUG_REG6_next_shift_is_vect_1_d_SHIFT 13
+#define VGT_DEBUG_REG6_next_shift_is_vect_1_pre_d_SHIFT 14
+#define VGT_DEBUG_REG6_space_avail_from_shift_SHIFT 15
+#define VGT_DEBUG_REG6_shifter_first_load_SHIFT 16
+#define VGT_DEBUG_REG6_di_state_sel_q_SHIFT 17
+#define VGT_DEBUG_REG6_shifter_waiting_for_first_load_q_SHIFT 18
+#define VGT_DEBUG_REG6_di_first_group_flag_q_SHIFT 19
+#define VGT_DEBUG_REG6_di_event_flag_q_SHIFT 20
+#define VGT_DEBUG_REG6_read_draw_initiator_SHIFT 21
+#define VGT_DEBUG_REG6_loading_di_requires_shifter_SHIFT 22
+#define VGT_DEBUG_REG6_last_shift_of_packet_SHIFT 23
+#define VGT_DEBUG_REG6_last_decr_of_packet_SHIFT 24
+#define VGT_DEBUG_REG6_extract_vector_SHIFT 25
+#define VGT_DEBUG_REG6_shift_vect_rtr_SHIFT 26
+#define VGT_DEBUG_REG6_destination_rtr_SHIFT 27
+#define VGT_DEBUG_REG6_grp_trigger_SHIFT 28
+
+#define VGT_DEBUG_REG6_shifter_byte_count_q_MASK 0x0000001f
+#define VGT_DEBUG_REG6_right_word_indx_q_MASK 0x000003e0
+#define VGT_DEBUG_REG6_input_data_valid_MASK 0x00000400
+#define VGT_DEBUG_REG6_input_data_xfer_MASK 0x00000800
+#define VGT_DEBUG_REG6_next_shift_is_vect_1_q_MASK 0x00001000
+#define VGT_DEBUG_REG6_next_shift_is_vect_1_d_MASK 0x00002000
+#define VGT_DEBUG_REG6_next_shift_is_vect_1_pre_d_MASK 0x00004000
+#define VGT_DEBUG_REG6_space_avail_from_shift_MASK 0x00008000
+#define VGT_DEBUG_REG6_shifter_first_load_MASK 0x00010000
+#define VGT_DEBUG_REG6_di_state_sel_q_MASK 0x00020000
+#define VGT_DEBUG_REG6_shifter_waiting_for_first_load_q_MASK 0x00040000
+#define VGT_DEBUG_REG6_di_first_group_flag_q_MASK 0x00080000
+#define VGT_DEBUG_REG6_di_event_flag_q_MASK 0x00100000
+#define VGT_DEBUG_REG6_read_draw_initiator_MASK 0x00200000
+#define VGT_DEBUG_REG6_loading_di_requires_shifter_MASK 0x00400000
+#define VGT_DEBUG_REG6_last_shift_of_packet_MASK 0x00800000
+#define VGT_DEBUG_REG6_last_decr_of_packet_MASK 0x01000000
+#define VGT_DEBUG_REG6_extract_vector_MASK 0x02000000
+#define VGT_DEBUG_REG6_shift_vect_rtr_MASK 0x04000000
+#define VGT_DEBUG_REG6_destination_rtr_MASK 0x08000000
+#define VGT_DEBUG_REG6_grp_trigger_MASK 0x10000000
+
+#define VGT_DEBUG_REG6_MASK \
+ (VGT_DEBUG_REG6_shifter_byte_count_q_MASK | \
+ VGT_DEBUG_REG6_right_word_indx_q_MASK | \
+ VGT_DEBUG_REG6_input_data_valid_MASK | \
+ VGT_DEBUG_REG6_input_data_xfer_MASK | \
+ VGT_DEBUG_REG6_next_shift_is_vect_1_q_MASK | \
+ VGT_DEBUG_REG6_next_shift_is_vect_1_d_MASK | \
+ VGT_DEBUG_REG6_next_shift_is_vect_1_pre_d_MASK | \
+ VGT_DEBUG_REG6_space_avail_from_shift_MASK | \
+ VGT_DEBUG_REG6_shifter_first_load_MASK | \
+ VGT_DEBUG_REG6_di_state_sel_q_MASK | \
+ VGT_DEBUG_REG6_shifter_waiting_for_first_load_q_MASK | \
+ VGT_DEBUG_REG6_di_first_group_flag_q_MASK | \
+ VGT_DEBUG_REG6_di_event_flag_q_MASK | \
+ VGT_DEBUG_REG6_read_draw_initiator_MASK | \
+ VGT_DEBUG_REG6_loading_di_requires_shifter_MASK | \
+ VGT_DEBUG_REG6_last_shift_of_packet_MASK | \
+ VGT_DEBUG_REG6_last_decr_of_packet_MASK | \
+ VGT_DEBUG_REG6_extract_vector_MASK | \
+ VGT_DEBUG_REG6_shift_vect_rtr_MASK | \
+ VGT_DEBUG_REG6_destination_rtr_MASK | \
+ VGT_DEBUG_REG6_grp_trigger_MASK)
+
+#define VGT_DEBUG_REG6(shifter_byte_count_q, right_word_indx_q, input_data_valid, input_data_xfer, next_shift_is_vect_1_q, next_shift_is_vect_1_d, next_shift_is_vect_1_pre_d, space_avail_from_shift, shifter_first_load, di_state_sel_q, shifter_waiting_for_first_load_q, di_first_group_flag_q, di_event_flag_q, read_draw_initiator, loading_di_requires_shifter, last_shift_of_packet, last_decr_of_packet, extract_vector, shift_vect_rtr, destination_rtr, grp_trigger) \
+ ((shifter_byte_count_q << VGT_DEBUG_REG6_shifter_byte_count_q_SHIFT) | \
+ (right_word_indx_q << VGT_DEBUG_REG6_right_word_indx_q_SHIFT) | \
+ (input_data_valid << VGT_DEBUG_REG6_input_data_valid_SHIFT) | \
+ (input_data_xfer << VGT_DEBUG_REG6_input_data_xfer_SHIFT) | \
+ (next_shift_is_vect_1_q << VGT_DEBUG_REG6_next_shift_is_vect_1_q_SHIFT) | \
+ (next_shift_is_vect_1_d << VGT_DEBUG_REG6_next_shift_is_vect_1_d_SHIFT) | \
+ (next_shift_is_vect_1_pre_d << VGT_DEBUG_REG6_next_shift_is_vect_1_pre_d_SHIFT) | \
+ (space_avail_from_shift << VGT_DEBUG_REG6_space_avail_from_shift_SHIFT) | \
+ (shifter_first_load << VGT_DEBUG_REG6_shifter_first_load_SHIFT) | \
+ (di_state_sel_q << VGT_DEBUG_REG6_di_state_sel_q_SHIFT) | \
+ (shifter_waiting_for_first_load_q << VGT_DEBUG_REG6_shifter_waiting_for_first_load_q_SHIFT) | \
+ (di_first_group_flag_q << VGT_DEBUG_REG6_di_first_group_flag_q_SHIFT) | \
+ (di_event_flag_q << VGT_DEBUG_REG6_di_event_flag_q_SHIFT) | \
+ (read_draw_initiator << VGT_DEBUG_REG6_read_draw_initiator_SHIFT) | \
+ (loading_di_requires_shifter << VGT_DEBUG_REG6_loading_di_requires_shifter_SHIFT) | \
+ (last_shift_of_packet << VGT_DEBUG_REG6_last_shift_of_packet_SHIFT) | \
+ (last_decr_of_packet << VGT_DEBUG_REG6_last_decr_of_packet_SHIFT) | \
+ (extract_vector << VGT_DEBUG_REG6_extract_vector_SHIFT) | \
+ (shift_vect_rtr << VGT_DEBUG_REG6_shift_vect_rtr_SHIFT) | \
+ (destination_rtr << VGT_DEBUG_REG6_destination_rtr_SHIFT) | \
+ (grp_trigger << VGT_DEBUG_REG6_grp_trigger_SHIFT))
+
+#define VGT_DEBUG_REG6_GET_shifter_byte_count_q(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_shifter_byte_count_q_MASK) >> VGT_DEBUG_REG6_shifter_byte_count_q_SHIFT)
+#define VGT_DEBUG_REG6_GET_right_word_indx_q(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_right_word_indx_q_MASK) >> VGT_DEBUG_REG6_right_word_indx_q_SHIFT)
+#define VGT_DEBUG_REG6_GET_input_data_valid(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_input_data_valid_MASK) >> VGT_DEBUG_REG6_input_data_valid_SHIFT)
+#define VGT_DEBUG_REG6_GET_input_data_xfer(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_input_data_xfer_MASK) >> VGT_DEBUG_REG6_input_data_xfer_SHIFT)
+#define VGT_DEBUG_REG6_GET_next_shift_is_vect_1_q(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_next_shift_is_vect_1_q_MASK) >> VGT_DEBUG_REG6_next_shift_is_vect_1_q_SHIFT)
+#define VGT_DEBUG_REG6_GET_next_shift_is_vect_1_d(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_next_shift_is_vect_1_d_MASK) >> VGT_DEBUG_REG6_next_shift_is_vect_1_d_SHIFT)
+#define VGT_DEBUG_REG6_GET_next_shift_is_vect_1_pre_d(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_next_shift_is_vect_1_pre_d_MASK) >> VGT_DEBUG_REG6_next_shift_is_vect_1_pre_d_SHIFT)
+#define VGT_DEBUG_REG6_GET_space_avail_from_shift(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_space_avail_from_shift_MASK) >> VGT_DEBUG_REG6_space_avail_from_shift_SHIFT)
+#define VGT_DEBUG_REG6_GET_shifter_first_load(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_shifter_first_load_MASK) >> VGT_DEBUG_REG6_shifter_first_load_SHIFT)
+#define VGT_DEBUG_REG6_GET_di_state_sel_q(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_di_state_sel_q_MASK) >> VGT_DEBUG_REG6_di_state_sel_q_SHIFT)
+#define VGT_DEBUG_REG6_GET_shifter_waiting_for_first_load_q(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_shifter_waiting_for_first_load_q_MASK) >> VGT_DEBUG_REG6_shifter_waiting_for_first_load_q_SHIFT)
+#define VGT_DEBUG_REG6_GET_di_first_group_flag_q(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_di_first_group_flag_q_MASK) >> VGT_DEBUG_REG6_di_first_group_flag_q_SHIFT)
+#define VGT_DEBUG_REG6_GET_di_event_flag_q(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_di_event_flag_q_MASK) >> VGT_DEBUG_REG6_di_event_flag_q_SHIFT)
+#define VGT_DEBUG_REG6_GET_read_draw_initiator(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_read_draw_initiator_MASK) >> VGT_DEBUG_REG6_read_draw_initiator_SHIFT)
+#define VGT_DEBUG_REG6_GET_loading_di_requires_shifter(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_loading_di_requires_shifter_MASK) >> VGT_DEBUG_REG6_loading_di_requires_shifter_SHIFT)
+#define VGT_DEBUG_REG6_GET_last_shift_of_packet(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_last_shift_of_packet_MASK) >> VGT_DEBUG_REG6_last_shift_of_packet_SHIFT)
+#define VGT_DEBUG_REG6_GET_last_decr_of_packet(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_last_decr_of_packet_MASK) >> VGT_DEBUG_REG6_last_decr_of_packet_SHIFT)
+#define VGT_DEBUG_REG6_GET_extract_vector(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_extract_vector_MASK) >> VGT_DEBUG_REG6_extract_vector_SHIFT)
+#define VGT_DEBUG_REG6_GET_shift_vect_rtr(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_shift_vect_rtr_MASK) >> VGT_DEBUG_REG6_shift_vect_rtr_SHIFT)
+#define VGT_DEBUG_REG6_GET_destination_rtr(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_destination_rtr_MASK) >> VGT_DEBUG_REG6_destination_rtr_SHIFT)
+#define VGT_DEBUG_REG6_GET_grp_trigger(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_grp_trigger_MASK) >> VGT_DEBUG_REG6_grp_trigger_SHIFT)
+
+#define VGT_DEBUG_REG6_SET_shifter_byte_count_q(vgt_debug_reg6_reg, shifter_byte_count_q) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_shifter_byte_count_q_MASK) | (shifter_byte_count_q << VGT_DEBUG_REG6_shifter_byte_count_q_SHIFT)
+#define VGT_DEBUG_REG6_SET_right_word_indx_q(vgt_debug_reg6_reg, right_word_indx_q) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_right_word_indx_q_MASK) | (right_word_indx_q << VGT_DEBUG_REG6_right_word_indx_q_SHIFT)
+#define VGT_DEBUG_REG6_SET_input_data_valid(vgt_debug_reg6_reg, input_data_valid) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_input_data_valid_MASK) | (input_data_valid << VGT_DEBUG_REG6_input_data_valid_SHIFT)
+#define VGT_DEBUG_REG6_SET_input_data_xfer(vgt_debug_reg6_reg, input_data_xfer) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_input_data_xfer_MASK) | (input_data_xfer << VGT_DEBUG_REG6_input_data_xfer_SHIFT)
+#define VGT_DEBUG_REG6_SET_next_shift_is_vect_1_q(vgt_debug_reg6_reg, next_shift_is_vect_1_q) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_next_shift_is_vect_1_q_MASK) | (next_shift_is_vect_1_q << VGT_DEBUG_REG6_next_shift_is_vect_1_q_SHIFT)
+#define VGT_DEBUG_REG6_SET_next_shift_is_vect_1_d(vgt_debug_reg6_reg, next_shift_is_vect_1_d) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_next_shift_is_vect_1_d_MASK) | (next_shift_is_vect_1_d << VGT_DEBUG_REG6_next_shift_is_vect_1_d_SHIFT)
+#define VGT_DEBUG_REG6_SET_next_shift_is_vect_1_pre_d(vgt_debug_reg6_reg, next_shift_is_vect_1_pre_d) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_next_shift_is_vect_1_pre_d_MASK) | (next_shift_is_vect_1_pre_d << VGT_DEBUG_REG6_next_shift_is_vect_1_pre_d_SHIFT)
+#define VGT_DEBUG_REG6_SET_space_avail_from_shift(vgt_debug_reg6_reg, space_avail_from_shift) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_space_avail_from_shift_MASK) | (space_avail_from_shift << VGT_DEBUG_REG6_space_avail_from_shift_SHIFT)
+#define VGT_DEBUG_REG6_SET_shifter_first_load(vgt_debug_reg6_reg, shifter_first_load) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_shifter_first_load_MASK) | (shifter_first_load << VGT_DEBUG_REG6_shifter_first_load_SHIFT)
+#define VGT_DEBUG_REG6_SET_di_state_sel_q(vgt_debug_reg6_reg, di_state_sel_q) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_di_state_sel_q_MASK) | (di_state_sel_q << VGT_DEBUG_REG6_di_state_sel_q_SHIFT)
+#define VGT_DEBUG_REG6_SET_shifter_waiting_for_first_load_q(vgt_debug_reg6_reg, shifter_waiting_for_first_load_q) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_shifter_waiting_for_first_load_q_MASK) | (shifter_waiting_for_first_load_q << VGT_DEBUG_REG6_shifter_waiting_for_first_load_q_SHIFT)
+#define VGT_DEBUG_REG6_SET_di_first_group_flag_q(vgt_debug_reg6_reg, di_first_group_flag_q) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_di_first_group_flag_q_MASK) | (di_first_group_flag_q << VGT_DEBUG_REG6_di_first_group_flag_q_SHIFT)
+#define VGT_DEBUG_REG6_SET_di_event_flag_q(vgt_debug_reg6_reg, di_event_flag_q) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_di_event_flag_q_MASK) | (di_event_flag_q << VGT_DEBUG_REG6_di_event_flag_q_SHIFT)
+#define VGT_DEBUG_REG6_SET_read_draw_initiator(vgt_debug_reg6_reg, read_draw_initiator) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_read_draw_initiator_MASK) | (read_draw_initiator << VGT_DEBUG_REG6_read_draw_initiator_SHIFT)
+#define VGT_DEBUG_REG6_SET_loading_di_requires_shifter(vgt_debug_reg6_reg, loading_di_requires_shifter) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_loading_di_requires_shifter_MASK) | (loading_di_requires_shifter << VGT_DEBUG_REG6_loading_di_requires_shifter_SHIFT)
+#define VGT_DEBUG_REG6_SET_last_shift_of_packet(vgt_debug_reg6_reg, last_shift_of_packet) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_last_shift_of_packet_MASK) | (last_shift_of_packet << VGT_DEBUG_REG6_last_shift_of_packet_SHIFT)
+#define VGT_DEBUG_REG6_SET_last_decr_of_packet(vgt_debug_reg6_reg, last_decr_of_packet) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_last_decr_of_packet_MASK) | (last_decr_of_packet << VGT_DEBUG_REG6_last_decr_of_packet_SHIFT)
+#define VGT_DEBUG_REG6_SET_extract_vector(vgt_debug_reg6_reg, extract_vector) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_extract_vector_MASK) | (extract_vector << VGT_DEBUG_REG6_extract_vector_SHIFT)
+#define VGT_DEBUG_REG6_SET_shift_vect_rtr(vgt_debug_reg6_reg, shift_vect_rtr) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_shift_vect_rtr_MASK) | (shift_vect_rtr << VGT_DEBUG_REG6_shift_vect_rtr_SHIFT)
+#define VGT_DEBUG_REG6_SET_destination_rtr(vgt_debug_reg6_reg, destination_rtr) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_destination_rtr_MASK) | (destination_rtr << VGT_DEBUG_REG6_destination_rtr_SHIFT)
+#define VGT_DEBUG_REG6_SET_grp_trigger(vgt_debug_reg6_reg, grp_trigger) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_grp_trigger_MASK) | (grp_trigger << VGT_DEBUG_REG6_grp_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg6_t {
+ unsigned int shifter_byte_count_q : VGT_DEBUG_REG6_shifter_byte_count_q_SIZE;
+ unsigned int right_word_indx_q : VGT_DEBUG_REG6_right_word_indx_q_SIZE;
+ unsigned int input_data_valid : VGT_DEBUG_REG6_input_data_valid_SIZE;
+ unsigned int input_data_xfer : VGT_DEBUG_REG6_input_data_xfer_SIZE;
+ unsigned int next_shift_is_vect_1_q : VGT_DEBUG_REG6_next_shift_is_vect_1_q_SIZE;
+ unsigned int next_shift_is_vect_1_d : VGT_DEBUG_REG6_next_shift_is_vect_1_d_SIZE;
+ unsigned int next_shift_is_vect_1_pre_d : VGT_DEBUG_REG6_next_shift_is_vect_1_pre_d_SIZE;
+ unsigned int space_avail_from_shift : VGT_DEBUG_REG6_space_avail_from_shift_SIZE;
+ unsigned int shifter_first_load : VGT_DEBUG_REG6_shifter_first_load_SIZE;
+ unsigned int di_state_sel_q : VGT_DEBUG_REG6_di_state_sel_q_SIZE;
+ unsigned int shifter_waiting_for_first_load_q : VGT_DEBUG_REG6_shifter_waiting_for_first_load_q_SIZE;
+ unsigned int di_first_group_flag_q : VGT_DEBUG_REG6_di_first_group_flag_q_SIZE;
+ unsigned int di_event_flag_q : VGT_DEBUG_REG6_di_event_flag_q_SIZE;
+ unsigned int read_draw_initiator : VGT_DEBUG_REG6_read_draw_initiator_SIZE;
+ unsigned int loading_di_requires_shifter : VGT_DEBUG_REG6_loading_di_requires_shifter_SIZE;
+ unsigned int last_shift_of_packet : VGT_DEBUG_REG6_last_shift_of_packet_SIZE;
+ unsigned int last_decr_of_packet : VGT_DEBUG_REG6_last_decr_of_packet_SIZE;
+ unsigned int extract_vector : VGT_DEBUG_REG6_extract_vector_SIZE;
+ unsigned int shift_vect_rtr : VGT_DEBUG_REG6_shift_vect_rtr_SIZE;
+ unsigned int destination_rtr : VGT_DEBUG_REG6_destination_rtr_SIZE;
+ unsigned int grp_trigger : VGT_DEBUG_REG6_grp_trigger_SIZE;
+ unsigned int : 3;
+ } vgt_debug_reg6_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg6_t {
+ unsigned int : 3;
+ unsigned int grp_trigger : VGT_DEBUG_REG6_grp_trigger_SIZE;
+ unsigned int destination_rtr : VGT_DEBUG_REG6_destination_rtr_SIZE;
+ unsigned int shift_vect_rtr : VGT_DEBUG_REG6_shift_vect_rtr_SIZE;
+ unsigned int extract_vector : VGT_DEBUG_REG6_extract_vector_SIZE;
+ unsigned int last_decr_of_packet : VGT_DEBUG_REG6_last_decr_of_packet_SIZE;
+ unsigned int last_shift_of_packet : VGT_DEBUG_REG6_last_shift_of_packet_SIZE;
+ unsigned int loading_di_requires_shifter : VGT_DEBUG_REG6_loading_di_requires_shifter_SIZE;
+ unsigned int read_draw_initiator : VGT_DEBUG_REG6_read_draw_initiator_SIZE;
+ unsigned int di_event_flag_q : VGT_DEBUG_REG6_di_event_flag_q_SIZE;
+ unsigned int di_first_group_flag_q : VGT_DEBUG_REG6_di_first_group_flag_q_SIZE;
+ unsigned int shifter_waiting_for_first_load_q : VGT_DEBUG_REG6_shifter_waiting_for_first_load_q_SIZE;
+ unsigned int di_state_sel_q : VGT_DEBUG_REG6_di_state_sel_q_SIZE;
+ unsigned int shifter_first_load : VGT_DEBUG_REG6_shifter_first_load_SIZE;
+ unsigned int space_avail_from_shift : VGT_DEBUG_REG6_space_avail_from_shift_SIZE;
+ unsigned int next_shift_is_vect_1_pre_d : VGT_DEBUG_REG6_next_shift_is_vect_1_pre_d_SIZE;
+ unsigned int next_shift_is_vect_1_d : VGT_DEBUG_REG6_next_shift_is_vect_1_d_SIZE;
+ unsigned int next_shift_is_vect_1_q : VGT_DEBUG_REG6_next_shift_is_vect_1_q_SIZE;
+ unsigned int input_data_xfer : VGT_DEBUG_REG6_input_data_xfer_SIZE;
+ unsigned int input_data_valid : VGT_DEBUG_REG6_input_data_valid_SIZE;
+ unsigned int right_word_indx_q : VGT_DEBUG_REG6_right_word_indx_q_SIZE;
+ unsigned int shifter_byte_count_q : VGT_DEBUG_REG6_shifter_byte_count_q_SIZE;
+ } vgt_debug_reg6_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_reg6_t f;
+} vgt_debug_reg6_u;
+
+
+/*
+ * VGT_DEBUG_REG7 struct
+ */
+
+#define VGT_DEBUG_REG7_di_index_counter_q_SIZE 16
+#define VGT_DEBUG_REG7_shift_amount_no_extract_SIZE 4
+#define VGT_DEBUG_REG7_shift_amount_extract_SIZE 4
+#define VGT_DEBUG_REG7_di_prim_type_q_SIZE 6
+#define VGT_DEBUG_REG7_current_source_sel_SIZE 2
+
+#define VGT_DEBUG_REG7_di_index_counter_q_SHIFT 0
+#define VGT_DEBUG_REG7_shift_amount_no_extract_SHIFT 16
+#define VGT_DEBUG_REG7_shift_amount_extract_SHIFT 20
+#define VGT_DEBUG_REG7_di_prim_type_q_SHIFT 24
+#define VGT_DEBUG_REG7_current_source_sel_SHIFT 30
+
+#define VGT_DEBUG_REG7_di_index_counter_q_MASK 0x0000ffff
+#define VGT_DEBUG_REG7_shift_amount_no_extract_MASK 0x000f0000
+#define VGT_DEBUG_REG7_shift_amount_extract_MASK 0x00f00000
+#define VGT_DEBUG_REG7_di_prim_type_q_MASK 0x3f000000
+#define VGT_DEBUG_REG7_current_source_sel_MASK 0xc0000000
+
+#define VGT_DEBUG_REG7_MASK \
+ (VGT_DEBUG_REG7_di_index_counter_q_MASK | \
+ VGT_DEBUG_REG7_shift_amount_no_extract_MASK | \
+ VGT_DEBUG_REG7_shift_amount_extract_MASK | \
+ VGT_DEBUG_REG7_di_prim_type_q_MASK | \
+ VGT_DEBUG_REG7_current_source_sel_MASK)
+
+#define VGT_DEBUG_REG7(di_index_counter_q, shift_amount_no_extract, shift_amount_extract, di_prim_type_q, current_source_sel) \
+ ((di_index_counter_q << VGT_DEBUG_REG7_di_index_counter_q_SHIFT) | \
+ (shift_amount_no_extract << VGT_DEBUG_REG7_shift_amount_no_extract_SHIFT) | \
+ (shift_amount_extract << VGT_DEBUG_REG7_shift_amount_extract_SHIFT) | \
+ (di_prim_type_q << VGT_DEBUG_REG7_di_prim_type_q_SHIFT) | \
+ (current_source_sel << VGT_DEBUG_REG7_current_source_sel_SHIFT))
+
+#define VGT_DEBUG_REG7_GET_di_index_counter_q(vgt_debug_reg7) \
+ ((vgt_debug_reg7 & VGT_DEBUG_REG7_di_index_counter_q_MASK) >> VGT_DEBUG_REG7_di_index_counter_q_SHIFT)
+#define VGT_DEBUG_REG7_GET_shift_amount_no_extract(vgt_debug_reg7) \
+ ((vgt_debug_reg7 & VGT_DEBUG_REG7_shift_amount_no_extract_MASK) >> VGT_DEBUG_REG7_shift_amount_no_extract_SHIFT)
+#define VGT_DEBUG_REG7_GET_shift_amount_extract(vgt_debug_reg7) \
+ ((vgt_debug_reg7 & VGT_DEBUG_REG7_shift_amount_extract_MASK) >> VGT_DEBUG_REG7_shift_amount_extract_SHIFT)
+#define VGT_DEBUG_REG7_GET_di_prim_type_q(vgt_debug_reg7) \
+ ((vgt_debug_reg7 & VGT_DEBUG_REG7_di_prim_type_q_MASK) >> VGT_DEBUG_REG7_di_prim_type_q_SHIFT)
+#define VGT_DEBUG_REG7_GET_current_source_sel(vgt_debug_reg7) \
+ ((vgt_debug_reg7 & VGT_DEBUG_REG7_current_source_sel_MASK) >> VGT_DEBUG_REG7_current_source_sel_SHIFT)
+
+#define VGT_DEBUG_REG7_SET_di_index_counter_q(vgt_debug_reg7_reg, di_index_counter_q) \
+ vgt_debug_reg7_reg = (vgt_debug_reg7_reg & ~VGT_DEBUG_REG7_di_index_counter_q_MASK) | (di_index_counter_q << VGT_DEBUG_REG7_di_index_counter_q_SHIFT)
+#define VGT_DEBUG_REG7_SET_shift_amount_no_extract(vgt_debug_reg7_reg, shift_amount_no_extract) \
+ vgt_debug_reg7_reg = (vgt_debug_reg7_reg & ~VGT_DEBUG_REG7_shift_amount_no_extract_MASK) | (shift_amount_no_extract << VGT_DEBUG_REG7_shift_amount_no_extract_SHIFT)
+#define VGT_DEBUG_REG7_SET_shift_amount_extract(vgt_debug_reg7_reg, shift_amount_extract) \
+ vgt_debug_reg7_reg = (vgt_debug_reg7_reg & ~VGT_DEBUG_REG7_shift_amount_extract_MASK) | (shift_amount_extract << VGT_DEBUG_REG7_shift_amount_extract_SHIFT)
+#define VGT_DEBUG_REG7_SET_di_prim_type_q(vgt_debug_reg7_reg, di_prim_type_q) \
+ vgt_debug_reg7_reg = (vgt_debug_reg7_reg & ~VGT_DEBUG_REG7_di_prim_type_q_MASK) | (di_prim_type_q << VGT_DEBUG_REG7_di_prim_type_q_SHIFT)
+#define VGT_DEBUG_REG7_SET_current_source_sel(vgt_debug_reg7_reg, current_source_sel) \
+ vgt_debug_reg7_reg = (vgt_debug_reg7_reg & ~VGT_DEBUG_REG7_current_source_sel_MASK) | (current_source_sel << VGT_DEBUG_REG7_current_source_sel_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg7_t {
+ unsigned int di_index_counter_q : VGT_DEBUG_REG7_di_index_counter_q_SIZE;
+ unsigned int shift_amount_no_extract : VGT_DEBUG_REG7_shift_amount_no_extract_SIZE;
+ unsigned int shift_amount_extract : VGT_DEBUG_REG7_shift_amount_extract_SIZE;
+ unsigned int di_prim_type_q : VGT_DEBUG_REG7_di_prim_type_q_SIZE;
+ unsigned int current_source_sel : VGT_DEBUG_REG7_current_source_sel_SIZE;
+ } vgt_debug_reg7_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg7_t {
+ unsigned int current_source_sel : VGT_DEBUG_REG7_current_source_sel_SIZE;
+ unsigned int di_prim_type_q : VGT_DEBUG_REG7_di_prim_type_q_SIZE;
+ unsigned int shift_amount_extract : VGT_DEBUG_REG7_shift_amount_extract_SIZE;
+ unsigned int shift_amount_no_extract : VGT_DEBUG_REG7_shift_amount_no_extract_SIZE;
+ unsigned int di_index_counter_q : VGT_DEBUG_REG7_di_index_counter_q_SIZE;
+ } vgt_debug_reg7_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_reg7_t f;
+} vgt_debug_reg7_u;
+
+
+/*
+ * VGT_DEBUG_REG8 struct
+ */
+
+#define VGT_DEBUG_REG8_current_source_sel_SIZE 2
+#define VGT_DEBUG_REG8_left_word_indx_q_SIZE 5
+#define VGT_DEBUG_REG8_input_data_cnt_SIZE 5
+#define VGT_DEBUG_REG8_input_data_lsw_SIZE 5
+#define VGT_DEBUG_REG8_input_data_msw_SIZE 5
+#define VGT_DEBUG_REG8_next_small_stride_shift_limit_q_SIZE 5
+#define VGT_DEBUG_REG8_current_small_stride_shift_limit_q_SIZE 5
+
+#define VGT_DEBUG_REG8_current_source_sel_SHIFT 0
+#define VGT_DEBUG_REG8_left_word_indx_q_SHIFT 2
+#define VGT_DEBUG_REG8_input_data_cnt_SHIFT 7
+#define VGT_DEBUG_REG8_input_data_lsw_SHIFT 12
+#define VGT_DEBUG_REG8_input_data_msw_SHIFT 17
+#define VGT_DEBUG_REG8_next_small_stride_shift_limit_q_SHIFT 22
+#define VGT_DEBUG_REG8_current_small_stride_shift_limit_q_SHIFT 27
+
+#define VGT_DEBUG_REG8_current_source_sel_MASK 0x00000003
+#define VGT_DEBUG_REG8_left_word_indx_q_MASK 0x0000007c
+#define VGT_DEBUG_REG8_input_data_cnt_MASK 0x00000f80
+#define VGT_DEBUG_REG8_input_data_lsw_MASK 0x0001f000
+#define VGT_DEBUG_REG8_input_data_msw_MASK 0x003e0000
+#define VGT_DEBUG_REG8_next_small_stride_shift_limit_q_MASK 0x07c00000
+#define VGT_DEBUG_REG8_current_small_stride_shift_limit_q_MASK 0xf8000000
+
+#define VGT_DEBUG_REG8_MASK \
+ (VGT_DEBUG_REG8_current_source_sel_MASK | \
+ VGT_DEBUG_REG8_left_word_indx_q_MASK | \
+ VGT_DEBUG_REG8_input_data_cnt_MASK | \
+ VGT_DEBUG_REG8_input_data_lsw_MASK | \
+ VGT_DEBUG_REG8_input_data_msw_MASK | \
+ VGT_DEBUG_REG8_next_small_stride_shift_limit_q_MASK | \
+ VGT_DEBUG_REG8_current_small_stride_shift_limit_q_MASK)
+
+#define VGT_DEBUG_REG8(current_source_sel, left_word_indx_q, input_data_cnt, input_data_lsw, input_data_msw, next_small_stride_shift_limit_q, current_small_stride_shift_limit_q) \
+ ((current_source_sel << VGT_DEBUG_REG8_current_source_sel_SHIFT) | \
+ (left_word_indx_q << VGT_DEBUG_REG8_left_word_indx_q_SHIFT) | \
+ (input_data_cnt << VGT_DEBUG_REG8_input_data_cnt_SHIFT) | \
+ (input_data_lsw << VGT_DEBUG_REG8_input_data_lsw_SHIFT) | \
+ (input_data_msw << VGT_DEBUG_REG8_input_data_msw_SHIFT) | \
+ (next_small_stride_shift_limit_q << VGT_DEBUG_REG8_next_small_stride_shift_limit_q_SHIFT) | \
+ (current_small_stride_shift_limit_q << VGT_DEBUG_REG8_current_small_stride_shift_limit_q_SHIFT))
+
+#define VGT_DEBUG_REG8_GET_current_source_sel(vgt_debug_reg8) \
+ ((vgt_debug_reg8 & VGT_DEBUG_REG8_current_source_sel_MASK) >> VGT_DEBUG_REG8_current_source_sel_SHIFT)
+#define VGT_DEBUG_REG8_GET_left_word_indx_q(vgt_debug_reg8) \
+ ((vgt_debug_reg8 & VGT_DEBUG_REG8_left_word_indx_q_MASK) >> VGT_DEBUG_REG8_left_word_indx_q_SHIFT)
+#define VGT_DEBUG_REG8_GET_input_data_cnt(vgt_debug_reg8) \
+ ((vgt_debug_reg8 & VGT_DEBUG_REG8_input_data_cnt_MASK) >> VGT_DEBUG_REG8_input_data_cnt_SHIFT)
+#define VGT_DEBUG_REG8_GET_input_data_lsw(vgt_debug_reg8) \
+ ((vgt_debug_reg8 & VGT_DEBUG_REG8_input_data_lsw_MASK) >> VGT_DEBUG_REG8_input_data_lsw_SHIFT)
+#define VGT_DEBUG_REG8_GET_input_data_msw(vgt_debug_reg8) \
+ ((vgt_debug_reg8 & VGT_DEBUG_REG8_input_data_msw_MASK) >> VGT_DEBUG_REG8_input_data_msw_SHIFT)
+#define VGT_DEBUG_REG8_GET_next_small_stride_shift_limit_q(vgt_debug_reg8) \
+ ((vgt_debug_reg8 & VGT_DEBUG_REG8_next_small_stride_shift_limit_q_MASK) >> VGT_DEBUG_REG8_next_small_stride_shift_limit_q_SHIFT)
+#define VGT_DEBUG_REG8_GET_current_small_stride_shift_limit_q(vgt_debug_reg8) \
+ ((vgt_debug_reg8 & VGT_DEBUG_REG8_current_small_stride_shift_limit_q_MASK) >> VGT_DEBUG_REG8_current_small_stride_shift_limit_q_SHIFT)
+
+#define VGT_DEBUG_REG8_SET_current_source_sel(vgt_debug_reg8_reg, current_source_sel) \
+ vgt_debug_reg8_reg = (vgt_debug_reg8_reg & ~VGT_DEBUG_REG8_current_source_sel_MASK) | (current_source_sel << VGT_DEBUG_REG8_current_source_sel_SHIFT)
+#define VGT_DEBUG_REG8_SET_left_word_indx_q(vgt_debug_reg8_reg, left_word_indx_q) \
+ vgt_debug_reg8_reg = (vgt_debug_reg8_reg & ~VGT_DEBUG_REG8_left_word_indx_q_MASK) | (left_word_indx_q << VGT_DEBUG_REG8_left_word_indx_q_SHIFT)
+#define VGT_DEBUG_REG8_SET_input_data_cnt(vgt_debug_reg8_reg, input_data_cnt) \
+ vgt_debug_reg8_reg = (vgt_debug_reg8_reg & ~VGT_DEBUG_REG8_input_data_cnt_MASK) | (input_data_cnt << VGT_DEBUG_REG8_input_data_cnt_SHIFT)
+#define VGT_DEBUG_REG8_SET_input_data_lsw(vgt_debug_reg8_reg, input_data_lsw) \
+ vgt_debug_reg8_reg = (vgt_debug_reg8_reg & ~VGT_DEBUG_REG8_input_data_lsw_MASK) | (input_data_lsw << VGT_DEBUG_REG8_input_data_lsw_SHIFT)
+#define VGT_DEBUG_REG8_SET_input_data_msw(vgt_debug_reg8_reg, input_data_msw) \
+ vgt_debug_reg8_reg = (vgt_debug_reg8_reg & ~VGT_DEBUG_REG8_input_data_msw_MASK) | (input_data_msw << VGT_DEBUG_REG8_input_data_msw_SHIFT)
+#define VGT_DEBUG_REG8_SET_next_small_stride_shift_limit_q(vgt_debug_reg8_reg, next_small_stride_shift_limit_q) \
+ vgt_debug_reg8_reg = (vgt_debug_reg8_reg & ~VGT_DEBUG_REG8_next_small_stride_shift_limit_q_MASK) | (next_small_stride_shift_limit_q << VGT_DEBUG_REG8_next_small_stride_shift_limit_q_SHIFT)
+#define VGT_DEBUG_REG8_SET_current_small_stride_shift_limit_q(vgt_debug_reg8_reg, current_small_stride_shift_limit_q) \
+ vgt_debug_reg8_reg = (vgt_debug_reg8_reg & ~VGT_DEBUG_REG8_current_small_stride_shift_limit_q_MASK) | (current_small_stride_shift_limit_q << VGT_DEBUG_REG8_current_small_stride_shift_limit_q_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg8_t {
+ unsigned int current_source_sel : VGT_DEBUG_REG8_current_source_sel_SIZE;
+ unsigned int left_word_indx_q : VGT_DEBUG_REG8_left_word_indx_q_SIZE;
+ unsigned int input_data_cnt : VGT_DEBUG_REG8_input_data_cnt_SIZE;
+ unsigned int input_data_lsw : VGT_DEBUG_REG8_input_data_lsw_SIZE;
+ unsigned int input_data_msw : VGT_DEBUG_REG8_input_data_msw_SIZE;
+ unsigned int next_small_stride_shift_limit_q : VGT_DEBUG_REG8_next_small_stride_shift_limit_q_SIZE;
+ unsigned int current_small_stride_shift_limit_q : VGT_DEBUG_REG8_current_small_stride_shift_limit_q_SIZE;
+ } vgt_debug_reg8_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg8_t {
+ unsigned int current_small_stride_shift_limit_q : VGT_DEBUG_REG8_current_small_stride_shift_limit_q_SIZE;
+ unsigned int next_small_stride_shift_limit_q : VGT_DEBUG_REG8_next_small_stride_shift_limit_q_SIZE;
+ unsigned int input_data_msw : VGT_DEBUG_REG8_input_data_msw_SIZE;
+ unsigned int input_data_lsw : VGT_DEBUG_REG8_input_data_lsw_SIZE;
+ unsigned int input_data_cnt : VGT_DEBUG_REG8_input_data_cnt_SIZE;
+ unsigned int left_word_indx_q : VGT_DEBUG_REG8_left_word_indx_q_SIZE;
+ unsigned int current_source_sel : VGT_DEBUG_REG8_current_source_sel_SIZE;
+ } vgt_debug_reg8_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_reg8_t f;
+} vgt_debug_reg8_u;
+
+
+/*
+ * VGT_DEBUG_REG9 struct
+ */
+
+#define VGT_DEBUG_REG9_next_stride_q_SIZE 5
+#define VGT_DEBUG_REG9_next_stride_d_SIZE 5
+#define VGT_DEBUG_REG9_current_shift_q_SIZE 5
+#define VGT_DEBUG_REG9_current_shift_d_SIZE 5
+#define VGT_DEBUG_REG9_current_stride_q_SIZE 5
+#define VGT_DEBUG_REG9_current_stride_d_SIZE 5
+#define VGT_DEBUG_REG9_grp_trigger_SIZE 1
+
+#define VGT_DEBUG_REG9_next_stride_q_SHIFT 0
+#define VGT_DEBUG_REG9_next_stride_d_SHIFT 5
+#define VGT_DEBUG_REG9_current_shift_q_SHIFT 10
+#define VGT_DEBUG_REG9_current_shift_d_SHIFT 15
+#define VGT_DEBUG_REG9_current_stride_q_SHIFT 20
+#define VGT_DEBUG_REG9_current_stride_d_SHIFT 25
+#define VGT_DEBUG_REG9_grp_trigger_SHIFT 30
+
+#define VGT_DEBUG_REG9_next_stride_q_MASK 0x0000001f
+#define VGT_DEBUG_REG9_next_stride_d_MASK 0x000003e0
+#define VGT_DEBUG_REG9_current_shift_q_MASK 0x00007c00
+#define VGT_DEBUG_REG9_current_shift_d_MASK 0x000f8000
+#define VGT_DEBUG_REG9_current_stride_q_MASK 0x01f00000
+#define VGT_DEBUG_REG9_current_stride_d_MASK 0x3e000000
+#define VGT_DEBUG_REG9_grp_trigger_MASK 0x40000000
+
+#define VGT_DEBUG_REG9_MASK \
+ (VGT_DEBUG_REG9_next_stride_q_MASK | \
+ VGT_DEBUG_REG9_next_stride_d_MASK | \
+ VGT_DEBUG_REG9_current_shift_q_MASK | \
+ VGT_DEBUG_REG9_current_shift_d_MASK | \
+ VGT_DEBUG_REG9_current_stride_q_MASK | \
+ VGT_DEBUG_REG9_current_stride_d_MASK | \
+ VGT_DEBUG_REG9_grp_trigger_MASK)
+
+#define VGT_DEBUG_REG9(next_stride_q, next_stride_d, current_shift_q, current_shift_d, current_stride_q, current_stride_d, grp_trigger) \
+ ((next_stride_q << VGT_DEBUG_REG9_next_stride_q_SHIFT) | \
+ (next_stride_d << VGT_DEBUG_REG9_next_stride_d_SHIFT) | \
+ (current_shift_q << VGT_DEBUG_REG9_current_shift_q_SHIFT) | \
+ (current_shift_d << VGT_DEBUG_REG9_current_shift_d_SHIFT) | \
+ (current_stride_q << VGT_DEBUG_REG9_current_stride_q_SHIFT) | \
+ (current_stride_d << VGT_DEBUG_REG9_current_stride_d_SHIFT) | \
+ (grp_trigger << VGT_DEBUG_REG9_grp_trigger_SHIFT))
+
+#define VGT_DEBUG_REG9_GET_next_stride_q(vgt_debug_reg9) \
+ ((vgt_debug_reg9 & VGT_DEBUG_REG9_next_stride_q_MASK) >> VGT_DEBUG_REG9_next_stride_q_SHIFT)
+#define VGT_DEBUG_REG9_GET_next_stride_d(vgt_debug_reg9) \
+ ((vgt_debug_reg9 & VGT_DEBUG_REG9_next_stride_d_MASK) >> VGT_DEBUG_REG9_next_stride_d_SHIFT)
+#define VGT_DEBUG_REG9_GET_current_shift_q(vgt_debug_reg9) \
+ ((vgt_debug_reg9 & VGT_DEBUG_REG9_current_shift_q_MASK) >> VGT_DEBUG_REG9_current_shift_q_SHIFT)
+#define VGT_DEBUG_REG9_GET_current_shift_d(vgt_debug_reg9) \
+ ((vgt_debug_reg9 & VGT_DEBUG_REG9_current_shift_d_MASK) >> VGT_DEBUG_REG9_current_shift_d_SHIFT)
+#define VGT_DEBUG_REG9_GET_current_stride_q(vgt_debug_reg9) \
+ ((vgt_debug_reg9 & VGT_DEBUG_REG9_current_stride_q_MASK) >> VGT_DEBUG_REG9_current_stride_q_SHIFT)
+#define VGT_DEBUG_REG9_GET_current_stride_d(vgt_debug_reg9) \
+ ((vgt_debug_reg9 & VGT_DEBUG_REG9_current_stride_d_MASK) >> VGT_DEBUG_REG9_current_stride_d_SHIFT)
+#define VGT_DEBUG_REG9_GET_grp_trigger(vgt_debug_reg9) \
+ ((vgt_debug_reg9 & VGT_DEBUG_REG9_grp_trigger_MASK) >> VGT_DEBUG_REG9_grp_trigger_SHIFT)
+
+#define VGT_DEBUG_REG9_SET_next_stride_q(vgt_debug_reg9_reg, next_stride_q) \
+ vgt_debug_reg9_reg = (vgt_debug_reg9_reg & ~VGT_DEBUG_REG9_next_stride_q_MASK) | (next_stride_q << VGT_DEBUG_REG9_next_stride_q_SHIFT)
+#define VGT_DEBUG_REG9_SET_next_stride_d(vgt_debug_reg9_reg, next_stride_d) \
+ vgt_debug_reg9_reg = (vgt_debug_reg9_reg & ~VGT_DEBUG_REG9_next_stride_d_MASK) | (next_stride_d << VGT_DEBUG_REG9_next_stride_d_SHIFT)
+#define VGT_DEBUG_REG9_SET_current_shift_q(vgt_debug_reg9_reg, current_shift_q) \
+ vgt_debug_reg9_reg = (vgt_debug_reg9_reg & ~VGT_DEBUG_REG9_current_shift_q_MASK) | (current_shift_q << VGT_DEBUG_REG9_current_shift_q_SHIFT)
+#define VGT_DEBUG_REG9_SET_current_shift_d(vgt_debug_reg9_reg, current_shift_d) \
+ vgt_debug_reg9_reg = (vgt_debug_reg9_reg & ~VGT_DEBUG_REG9_current_shift_d_MASK) | (current_shift_d << VGT_DEBUG_REG9_current_shift_d_SHIFT)
+#define VGT_DEBUG_REG9_SET_current_stride_q(vgt_debug_reg9_reg, current_stride_q) \
+ vgt_debug_reg9_reg = (vgt_debug_reg9_reg & ~VGT_DEBUG_REG9_current_stride_q_MASK) | (current_stride_q << VGT_DEBUG_REG9_current_stride_q_SHIFT)
+#define VGT_DEBUG_REG9_SET_current_stride_d(vgt_debug_reg9_reg, current_stride_d) \
+ vgt_debug_reg9_reg = (vgt_debug_reg9_reg & ~VGT_DEBUG_REG9_current_stride_d_MASK) | (current_stride_d << VGT_DEBUG_REG9_current_stride_d_SHIFT)
+#define VGT_DEBUG_REG9_SET_grp_trigger(vgt_debug_reg9_reg, grp_trigger) \
+ vgt_debug_reg9_reg = (vgt_debug_reg9_reg & ~VGT_DEBUG_REG9_grp_trigger_MASK) | (grp_trigger << VGT_DEBUG_REG9_grp_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg9_t {
+ unsigned int next_stride_q : VGT_DEBUG_REG9_next_stride_q_SIZE;
+ unsigned int next_stride_d : VGT_DEBUG_REG9_next_stride_d_SIZE;
+ unsigned int current_shift_q : VGT_DEBUG_REG9_current_shift_q_SIZE;
+ unsigned int current_shift_d : VGT_DEBUG_REG9_current_shift_d_SIZE;
+ unsigned int current_stride_q : VGT_DEBUG_REG9_current_stride_q_SIZE;
+ unsigned int current_stride_d : VGT_DEBUG_REG9_current_stride_d_SIZE;
+ unsigned int grp_trigger : VGT_DEBUG_REG9_grp_trigger_SIZE;
+ unsigned int : 1;
+ } vgt_debug_reg9_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg9_t {
+ unsigned int : 1;
+ unsigned int grp_trigger : VGT_DEBUG_REG9_grp_trigger_SIZE;
+ unsigned int current_stride_d : VGT_DEBUG_REG9_current_stride_d_SIZE;
+ unsigned int current_stride_q : VGT_DEBUG_REG9_current_stride_q_SIZE;
+ unsigned int current_shift_d : VGT_DEBUG_REG9_current_shift_d_SIZE;
+ unsigned int current_shift_q : VGT_DEBUG_REG9_current_shift_q_SIZE;
+ unsigned int next_stride_d : VGT_DEBUG_REG9_next_stride_d_SIZE;
+ unsigned int next_stride_q : VGT_DEBUG_REG9_next_stride_q_SIZE;
+ } vgt_debug_reg9_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_reg9_t f;
+} vgt_debug_reg9_u;
+
+
+/*
+ * VGT_DEBUG_REG10 struct
+ */
+
+#define VGT_DEBUG_REG10_temp_derived_di_prim_type_t0_SIZE 1
+#define VGT_DEBUG_REG10_temp_derived_di_small_index_t0_SIZE 1
+#define VGT_DEBUG_REG10_temp_derived_di_cull_enable_t0_SIZE 1
+#define VGT_DEBUG_REG10_temp_derived_di_pre_fetch_cull_enable_t0_SIZE 1
+#define VGT_DEBUG_REG10_di_state_sel_q_SIZE 1
+#define VGT_DEBUG_REG10_last_decr_of_packet_SIZE 1
+#define VGT_DEBUG_REG10_bin_valid_SIZE 1
+#define VGT_DEBUG_REG10_read_block_SIZE 1
+#define VGT_DEBUG_REG10_grp_bgrp_last_bit_read_SIZE 1
+#define VGT_DEBUG_REG10_last_bit_enable_q_SIZE 1
+#define VGT_DEBUG_REG10_last_bit_end_di_q_SIZE 1
+#define VGT_DEBUG_REG10_selected_data_SIZE 8
+#define VGT_DEBUG_REG10_mask_input_data_SIZE 8
+#define VGT_DEBUG_REG10_gap_q_SIZE 1
+#define VGT_DEBUG_REG10_temp_mini_reset_z_SIZE 1
+#define VGT_DEBUG_REG10_temp_mini_reset_y_SIZE 1
+#define VGT_DEBUG_REG10_temp_mini_reset_x_SIZE 1
+#define VGT_DEBUG_REG10_grp_trigger_SIZE 1
+
+#define VGT_DEBUG_REG10_temp_derived_di_prim_type_t0_SHIFT 0
+#define VGT_DEBUG_REG10_temp_derived_di_small_index_t0_SHIFT 1
+#define VGT_DEBUG_REG10_temp_derived_di_cull_enable_t0_SHIFT 2
+#define VGT_DEBUG_REG10_temp_derived_di_pre_fetch_cull_enable_t0_SHIFT 3
+#define VGT_DEBUG_REG10_di_state_sel_q_SHIFT 4
+#define VGT_DEBUG_REG10_last_decr_of_packet_SHIFT 5
+#define VGT_DEBUG_REG10_bin_valid_SHIFT 6
+#define VGT_DEBUG_REG10_read_block_SHIFT 7
+#define VGT_DEBUG_REG10_grp_bgrp_last_bit_read_SHIFT 8
+#define VGT_DEBUG_REG10_last_bit_enable_q_SHIFT 9
+#define VGT_DEBUG_REG10_last_bit_end_di_q_SHIFT 10
+#define VGT_DEBUG_REG10_selected_data_SHIFT 11
+#define VGT_DEBUG_REG10_mask_input_data_SHIFT 19
+#define VGT_DEBUG_REG10_gap_q_SHIFT 27
+#define VGT_DEBUG_REG10_temp_mini_reset_z_SHIFT 28
+#define VGT_DEBUG_REG10_temp_mini_reset_y_SHIFT 29
+#define VGT_DEBUG_REG10_temp_mini_reset_x_SHIFT 30
+#define VGT_DEBUG_REG10_grp_trigger_SHIFT 31
+
+#define VGT_DEBUG_REG10_temp_derived_di_prim_type_t0_MASK 0x00000001
+#define VGT_DEBUG_REG10_temp_derived_di_small_index_t0_MASK 0x00000002
+#define VGT_DEBUG_REG10_temp_derived_di_cull_enable_t0_MASK 0x00000004
+#define VGT_DEBUG_REG10_temp_derived_di_pre_fetch_cull_enable_t0_MASK 0x00000008
+#define VGT_DEBUG_REG10_di_state_sel_q_MASK 0x00000010
+#define VGT_DEBUG_REG10_last_decr_of_packet_MASK 0x00000020
+#define VGT_DEBUG_REG10_bin_valid_MASK 0x00000040
+#define VGT_DEBUG_REG10_read_block_MASK 0x00000080
+#define VGT_DEBUG_REG10_grp_bgrp_last_bit_read_MASK 0x00000100
+#define VGT_DEBUG_REG10_last_bit_enable_q_MASK 0x00000200
+#define VGT_DEBUG_REG10_last_bit_end_di_q_MASK 0x00000400
+#define VGT_DEBUG_REG10_selected_data_MASK 0x0007f800
+#define VGT_DEBUG_REG10_mask_input_data_MASK 0x07f80000
+#define VGT_DEBUG_REG10_gap_q_MASK 0x08000000
+#define VGT_DEBUG_REG10_temp_mini_reset_z_MASK 0x10000000
+#define VGT_DEBUG_REG10_temp_mini_reset_y_MASK 0x20000000
+#define VGT_DEBUG_REG10_temp_mini_reset_x_MASK 0x40000000
+#define VGT_DEBUG_REG10_grp_trigger_MASK 0x80000000
+
+#define VGT_DEBUG_REG10_MASK \
+ (VGT_DEBUG_REG10_temp_derived_di_prim_type_t0_MASK | \
+ VGT_DEBUG_REG10_temp_derived_di_small_index_t0_MASK | \
+ VGT_DEBUG_REG10_temp_derived_di_cull_enable_t0_MASK | \
+ VGT_DEBUG_REG10_temp_derived_di_pre_fetch_cull_enable_t0_MASK | \
+ VGT_DEBUG_REG10_di_state_sel_q_MASK | \
+ VGT_DEBUG_REG10_last_decr_of_packet_MASK | \
+ VGT_DEBUG_REG10_bin_valid_MASK | \
+ VGT_DEBUG_REG10_read_block_MASK | \
+ VGT_DEBUG_REG10_grp_bgrp_last_bit_read_MASK | \
+ VGT_DEBUG_REG10_last_bit_enable_q_MASK | \
+ VGT_DEBUG_REG10_last_bit_end_di_q_MASK | \
+ VGT_DEBUG_REG10_selected_data_MASK | \
+ VGT_DEBUG_REG10_mask_input_data_MASK | \
+ VGT_DEBUG_REG10_gap_q_MASK | \
+ VGT_DEBUG_REG10_temp_mini_reset_z_MASK | \
+ VGT_DEBUG_REG10_temp_mini_reset_y_MASK | \
+ VGT_DEBUG_REG10_temp_mini_reset_x_MASK | \
+ VGT_DEBUG_REG10_grp_trigger_MASK)
+
+#define VGT_DEBUG_REG10(temp_derived_di_prim_type_t0, temp_derived_di_small_index_t0, temp_derived_di_cull_enable_t0, temp_derived_di_pre_fetch_cull_enable_t0, di_state_sel_q, last_decr_of_packet, bin_valid, read_block, grp_bgrp_last_bit_read, last_bit_enable_q, last_bit_end_di_q, selected_data, mask_input_data, gap_q, temp_mini_reset_z, temp_mini_reset_y, temp_mini_reset_x, grp_trigger) \
+ ((temp_derived_di_prim_type_t0 << VGT_DEBUG_REG10_temp_derived_di_prim_type_t0_SHIFT) | \
+ (temp_derived_di_small_index_t0 << VGT_DEBUG_REG10_temp_derived_di_small_index_t0_SHIFT) | \
+ (temp_derived_di_cull_enable_t0 << VGT_DEBUG_REG10_temp_derived_di_cull_enable_t0_SHIFT) | \
+ (temp_derived_di_pre_fetch_cull_enable_t0 << VGT_DEBUG_REG10_temp_derived_di_pre_fetch_cull_enable_t0_SHIFT) | \
+ (di_state_sel_q << VGT_DEBUG_REG10_di_state_sel_q_SHIFT) | \
+ (last_decr_of_packet << VGT_DEBUG_REG10_last_decr_of_packet_SHIFT) | \
+ (bin_valid << VGT_DEBUG_REG10_bin_valid_SHIFT) | \
+ (read_block << VGT_DEBUG_REG10_read_block_SHIFT) | \
+ (grp_bgrp_last_bit_read << VGT_DEBUG_REG10_grp_bgrp_last_bit_read_SHIFT) | \
+ (last_bit_enable_q << VGT_DEBUG_REG10_last_bit_enable_q_SHIFT) | \
+ (last_bit_end_di_q << VGT_DEBUG_REG10_last_bit_end_di_q_SHIFT) | \
+ (selected_data << VGT_DEBUG_REG10_selected_data_SHIFT) | \
+ (mask_input_data << VGT_DEBUG_REG10_mask_input_data_SHIFT) | \
+ (gap_q << VGT_DEBUG_REG10_gap_q_SHIFT) | \
+ (temp_mini_reset_z << VGT_DEBUG_REG10_temp_mini_reset_z_SHIFT) | \
+ (temp_mini_reset_y << VGT_DEBUG_REG10_temp_mini_reset_y_SHIFT) | \
+ (temp_mini_reset_x << VGT_DEBUG_REG10_temp_mini_reset_x_SHIFT) | \
+ (grp_trigger << VGT_DEBUG_REG10_grp_trigger_SHIFT))
+
+#define VGT_DEBUG_REG10_GET_temp_derived_di_prim_type_t0(vgt_debug_reg10) \
+ ((vgt_debug_reg10 & VGT_DEBUG_REG10_temp_derived_di_prim_type_t0_MASK) >> VGT_DEBUG_REG10_temp_derived_di_prim_type_t0_SHIFT)
+#define VGT_DEBUG_REG10_GET_temp_derived_di_small_index_t0(vgt_debug_reg10) \
+ ((vgt_debug_reg10 & VGT_DEBUG_REG10_temp_derived_di_small_index_t0_MASK) >> VGT_DEBUG_REG10_temp_derived_di_small_index_t0_SHIFT)
+#define VGT_DEBUG_REG10_GET_temp_derived_di_cull_enable_t0(vgt_debug_reg10) \
+ ((vgt_debug_reg10 & VGT_DEBUG_REG10_temp_derived_di_cull_enable_t0_MASK) >> VGT_DEBUG_REG10_temp_derived_di_cull_enable_t0_SHIFT)
+#define VGT_DEBUG_REG10_GET_temp_derived_di_pre_fetch_cull_enable_t0(vgt_debug_reg10) \
+ ((vgt_debug_reg10 & VGT_DEBUG_REG10_temp_derived_di_pre_fetch_cull_enable_t0_MASK) >> VGT_DEBUG_REG10_temp_derived_di_pre_fetch_cull_enable_t0_SHIFT)
+#define VGT_DEBUG_REG10_GET_di_state_sel_q(vgt_debug_reg10) \
+ ((vgt_debug_reg10 & VGT_DEBUG_REG10_di_state_sel_q_MASK) >> VGT_DEBUG_REG10_di_state_sel_q_SHIFT)
+#define VGT_DEBUG_REG10_GET_last_decr_of_packet(vgt_debug_reg10) \
+ ((vgt_debug_reg10 & VGT_DEBUG_REG10_last_decr_of_packet_MASK) >> VGT_DEBUG_REG10_last_decr_of_packet_SHIFT)
+#define VGT_DEBUG_REG10_GET_bin_valid(vgt_debug_reg10) \
+ ((vgt_debug_reg10 & VGT_DEBUG_REG10_bin_valid_MASK) >> VGT_DEBUG_REG10_bin_valid_SHIFT)
+#define VGT_DEBUG_REG10_GET_read_block(vgt_debug_reg10) \
+ ((vgt_debug_reg10 & VGT_DEBUG_REG10_read_block_MASK) >> VGT_DEBUG_REG10_read_block_SHIFT)
+#define VGT_DEBUG_REG10_GET_grp_bgrp_last_bit_read(vgt_debug_reg10) \
+ ((vgt_debug_reg10 & VGT_DEBUG_REG10_grp_bgrp_last_bit_read_MASK) >> VGT_DEBUG_REG10_grp_bgrp_last_bit_read_SHIFT)
+#define VGT_DEBUG_REG10_GET_last_bit_enable_q(vgt_debug_reg10) \
+ ((vgt_debug_reg10 & VGT_DEBUG_REG10_last_bit_enable_q_MASK) >> VGT_DEBUG_REG10_last_bit_enable_q_SHIFT)
+#define VGT_DEBUG_REG10_GET_last_bit_end_di_q(vgt_debug_reg10) \
+ ((vgt_debug_reg10 & VGT_DEBUG_REG10_last_bit_end_di_q_MASK) >> VGT_DEBUG_REG10_last_bit_end_di_q_SHIFT)
+#define VGT_DEBUG_REG10_GET_selected_data(vgt_debug_reg10) \
+ ((vgt_debug_reg10 & VGT_DEBUG_REG10_selected_data_MASK) >> VGT_DEBUG_REG10_selected_data_SHIFT)
+#define VGT_DEBUG_REG10_GET_mask_input_data(vgt_debug_reg10) \
+ ((vgt_debug_reg10 & VGT_DEBUG_REG10_mask_input_data_MASK) >> VGT_DEBUG_REG10_mask_input_data_SHIFT)
+#define VGT_DEBUG_REG10_GET_gap_q(vgt_debug_reg10) \
+ ((vgt_debug_reg10 & VGT_DEBUG_REG10_gap_q_MASK) >> VGT_DEBUG_REG10_gap_q_SHIFT)
+#define VGT_DEBUG_REG10_GET_temp_mini_reset_z(vgt_debug_reg10) \
+ ((vgt_debug_reg10 & VGT_DEBUG_REG10_temp_mini_reset_z_MASK) >> VGT_DEBUG_REG10_temp_mini_reset_z_SHIFT)
+#define VGT_DEBUG_REG10_GET_temp_mini_reset_y(vgt_debug_reg10) \
+ ((vgt_debug_reg10 & VGT_DEBUG_REG10_temp_mini_reset_y_MASK) >> VGT_DEBUG_REG10_temp_mini_reset_y_SHIFT)
+#define VGT_DEBUG_REG10_GET_temp_mini_reset_x(vgt_debug_reg10) \
+ ((vgt_debug_reg10 & VGT_DEBUG_REG10_temp_mini_reset_x_MASK) >> VGT_DEBUG_REG10_temp_mini_reset_x_SHIFT)
+#define VGT_DEBUG_REG10_GET_grp_trigger(vgt_debug_reg10) \
+ ((vgt_debug_reg10 & VGT_DEBUG_REG10_grp_trigger_MASK) >> VGT_DEBUG_REG10_grp_trigger_SHIFT)
+
+#define VGT_DEBUG_REG10_SET_temp_derived_di_prim_type_t0(vgt_debug_reg10_reg, temp_derived_di_prim_type_t0) \
+ vgt_debug_reg10_reg = (vgt_debug_reg10_reg & ~VGT_DEBUG_REG10_temp_derived_di_prim_type_t0_MASK) | (temp_derived_di_prim_type_t0 << VGT_DEBUG_REG10_temp_derived_di_prim_type_t0_SHIFT)
+#define VGT_DEBUG_REG10_SET_temp_derived_di_small_index_t0(vgt_debug_reg10_reg, temp_derived_di_small_index_t0) \
+ vgt_debug_reg10_reg = (vgt_debug_reg10_reg & ~VGT_DEBUG_REG10_temp_derived_di_small_index_t0_MASK) | (temp_derived_di_small_index_t0 << VGT_DEBUG_REG10_temp_derived_di_small_index_t0_SHIFT)
+#define VGT_DEBUG_REG10_SET_temp_derived_di_cull_enable_t0(vgt_debug_reg10_reg, temp_derived_di_cull_enable_t0) \
+ vgt_debug_reg10_reg = (vgt_debug_reg10_reg & ~VGT_DEBUG_REG10_temp_derived_di_cull_enable_t0_MASK) | (temp_derived_di_cull_enable_t0 << VGT_DEBUG_REG10_temp_derived_di_cull_enable_t0_SHIFT)
+#define VGT_DEBUG_REG10_SET_temp_derived_di_pre_fetch_cull_enable_t0(vgt_debug_reg10_reg, temp_derived_di_pre_fetch_cull_enable_t0) \
+ vgt_debug_reg10_reg = (vgt_debug_reg10_reg & ~VGT_DEBUG_REG10_temp_derived_di_pre_fetch_cull_enable_t0_MASK) | (temp_derived_di_pre_fetch_cull_enable_t0 << VGT_DEBUG_REG10_temp_derived_di_pre_fetch_cull_enable_t0_SHIFT)
+#define VGT_DEBUG_REG10_SET_di_state_sel_q(vgt_debug_reg10_reg, di_state_sel_q) \
+ vgt_debug_reg10_reg = (vgt_debug_reg10_reg & ~VGT_DEBUG_REG10_di_state_sel_q_MASK) | (di_state_sel_q << VGT_DEBUG_REG10_di_state_sel_q_SHIFT)
+#define VGT_DEBUG_REG10_SET_last_decr_of_packet(vgt_debug_reg10_reg, last_decr_of_packet) \
+ vgt_debug_reg10_reg = (vgt_debug_reg10_reg & ~VGT_DEBUG_REG10_last_decr_of_packet_MASK) | (last_decr_of_packet << VGT_DEBUG_REG10_last_decr_of_packet_SHIFT)
+#define VGT_DEBUG_REG10_SET_bin_valid(vgt_debug_reg10_reg, bin_valid) \
+ vgt_debug_reg10_reg = (vgt_debug_reg10_reg & ~VGT_DEBUG_REG10_bin_valid_MASK) | (bin_valid << VGT_DEBUG_REG10_bin_valid_SHIFT)
+#define VGT_DEBUG_REG10_SET_read_block(vgt_debug_reg10_reg, read_block) \
+ vgt_debug_reg10_reg = (vgt_debug_reg10_reg & ~VGT_DEBUG_REG10_read_block_MASK) | (read_block << VGT_DEBUG_REG10_read_block_SHIFT)
+#define VGT_DEBUG_REG10_SET_grp_bgrp_last_bit_read(vgt_debug_reg10_reg, grp_bgrp_last_bit_read) \
+ vgt_debug_reg10_reg = (vgt_debug_reg10_reg & ~VGT_DEBUG_REG10_grp_bgrp_last_bit_read_MASK) | (grp_bgrp_last_bit_read << VGT_DEBUG_REG10_grp_bgrp_last_bit_read_SHIFT)
+#define VGT_DEBUG_REG10_SET_last_bit_enable_q(vgt_debug_reg10_reg, last_bit_enable_q) \
+ vgt_debug_reg10_reg = (vgt_debug_reg10_reg & ~VGT_DEBUG_REG10_last_bit_enable_q_MASK) | (last_bit_enable_q << VGT_DEBUG_REG10_last_bit_enable_q_SHIFT)
+#define VGT_DEBUG_REG10_SET_last_bit_end_di_q(vgt_debug_reg10_reg, last_bit_end_di_q) \
+ vgt_debug_reg10_reg = (vgt_debug_reg10_reg & ~VGT_DEBUG_REG10_last_bit_end_di_q_MASK) | (last_bit_end_di_q << VGT_DEBUG_REG10_last_bit_end_di_q_SHIFT)
+#define VGT_DEBUG_REG10_SET_selected_data(vgt_debug_reg10_reg, selected_data) \
+ vgt_debug_reg10_reg = (vgt_debug_reg10_reg & ~VGT_DEBUG_REG10_selected_data_MASK) | (selected_data << VGT_DEBUG_REG10_selected_data_SHIFT)
+#define VGT_DEBUG_REG10_SET_mask_input_data(vgt_debug_reg10_reg, mask_input_data) \
+ vgt_debug_reg10_reg = (vgt_debug_reg10_reg & ~VGT_DEBUG_REG10_mask_input_data_MASK) | (mask_input_data << VGT_DEBUG_REG10_mask_input_data_SHIFT)
+#define VGT_DEBUG_REG10_SET_gap_q(vgt_debug_reg10_reg, gap_q) \
+ vgt_debug_reg10_reg = (vgt_debug_reg10_reg & ~VGT_DEBUG_REG10_gap_q_MASK) | (gap_q << VGT_DEBUG_REG10_gap_q_SHIFT)
+#define VGT_DEBUG_REG10_SET_temp_mini_reset_z(vgt_debug_reg10_reg, temp_mini_reset_z) \
+ vgt_debug_reg10_reg = (vgt_debug_reg10_reg & ~VGT_DEBUG_REG10_temp_mini_reset_z_MASK) | (temp_mini_reset_z << VGT_DEBUG_REG10_temp_mini_reset_z_SHIFT)
+#define VGT_DEBUG_REG10_SET_temp_mini_reset_y(vgt_debug_reg10_reg, temp_mini_reset_y) \
+ vgt_debug_reg10_reg = (vgt_debug_reg10_reg & ~VGT_DEBUG_REG10_temp_mini_reset_y_MASK) | (temp_mini_reset_y << VGT_DEBUG_REG10_temp_mini_reset_y_SHIFT)
+#define VGT_DEBUG_REG10_SET_temp_mini_reset_x(vgt_debug_reg10_reg, temp_mini_reset_x) \
+ vgt_debug_reg10_reg = (vgt_debug_reg10_reg & ~VGT_DEBUG_REG10_temp_mini_reset_x_MASK) | (temp_mini_reset_x << VGT_DEBUG_REG10_temp_mini_reset_x_SHIFT)
+#define VGT_DEBUG_REG10_SET_grp_trigger(vgt_debug_reg10_reg, grp_trigger) \
+ vgt_debug_reg10_reg = (vgt_debug_reg10_reg & ~VGT_DEBUG_REG10_grp_trigger_MASK) | (grp_trigger << VGT_DEBUG_REG10_grp_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg10_t {
+ unsigned int temp_derived_di_prim_type_t0 : VGT_DEBUG_REG10_temp_derived_di_prim_type_t0_SIZE;
+ unsigned int temp_derived_di_small_index_t0 : VGT_DEBUG_REG10_temp_derived_di_small_index_t0_SIZE;
+ unsigned int temp_derived_di_cull_enable_t0 : VGT_DEBUG_REG10_temp_derived_di_cull_enable_t0_SIZE;
+ unsigned int temp_derived_di_pre_fetch_cull_enable_t0 : VGT_DEBUG_REG10_temp_derived_di_pre_fetch_cull_enable_t0_SIZE;
+ unsigned int di_state_sel_q : VGT_DEBUG_REG10_di_state_sel_q_SIZE;
+ unsigned int last_decr_of_packet : VGT_DEBUG_REG10_last_decr_of_packet_SIZE;
+ unsigned int bin_valid : VGT_DEBUG_REG10_bin_valid_SIZE;
+ unsigned int read_block : VGT_DEBUG_REG10_read_block_SIZE;
+ unsigned int grp_bgrp_last_bit_read : VGT_DEBUG_REG10_grp_bgrp_last_bit_read_SIZE;
+ unsigned int last_bit_enable_q : VGT_DEBUG_REG10_last_bit_enable_q_SIZE;
+ unsigned int last_bit_end_di_q : VGT_DEBUG_REG10_last_bit_end_di_q_SIZE;
+ unsigned int selected_data : VGT_DEBUG_REG10_selected_data_SIZE;
+ unsigned int mask_input_data : VGT_DEBUG_REG10_mask_input_data_SIZE;
+ unsigned int gap_q : VGT_DEBUG_REG10_gap_q_SIZE;
+ unsigned int temp_mini_reset_z : VGT_DEBUG_REG10_temp_mini_reset_z_SIZE;
+ unsigned int temp_mini_reset_y : VGT_DEBUG_REG10_temp_mini_reset_y_SIZE;
+ unsigned int temp_mini_reset_x : VGT_DEBUG_REG10_temp_mini_reset_x_SIZE;
+ unsigned int grp_trigger : VGT_DEBUG_REG10_grp_trigger_SIZE;
+ } vgt_debug_reg10_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg10_t {
+ unsigned int grp_trigger : VGT_DEBUG_REG10_grp_trigger_SIZE;
+ unsigned int temp_mini_reset_x : VGT_DEBUG_REG10_temp_mini_reset_x_SIZE;
+ unsigned int temp_mini_reset_y : VGT_DEBUG_REG10_temp_mini_reset_y_SIZE;
+ unsigned int temp_mini_reset_z : VGT_DEBUG_REG10_temp_mini_reset_z_SIZE;
+ unsigned int gap_q : VGT_DEBUG_REG10_gap_q_SIZE;
+ unsigned int mask_input_data : VGT_DEBUG_REG10_mask_input_data_SIZE;
+ unsigned int selected_data : VGT_DEBUG_REG10_selected_data_SIZE;
+ unsigned int last_bit_end_di_q : VGT_DEBUG_REG10_last_bit_end_di_q_SIZE;
+ unsigned int last_bit_enable_q : VGT_DEBUG_REG10_last_bit_enable_q_SIZE;
+ unsigned int grp_bgrp_last_bit_read : VGT_DEBUG_REG10_grp_bgrp_last_bit_read_SIZE;
+ unsigned int read_block : VGT_DEBUG_REG10_read_block_SIZE;
+ unsigned int bin_valid : VGT_DEBUG_REG10_bin_valid_SIZE;
+ unsigned int last_decr_of_packet : VGT_DEBUG_REG10_last_decr_of_packet_SIZE;
+ unsigned int di_state_sel_q : VGT_DEBUG_REG10_di_state_sel_q_SIZE;
+ unsigned int temp_derived_di_pre_fetch_cull_enable_t0 : VGT_DEBUG_REG10_temp_derived_di_pre_fetch_cull_enable_t0_SIZE;
+ unsigned int temp_derived_di_cull_enable_t0 : VGT_DEBUG_REG10_temp_derived_di_cull_enable_t0_SIZE;
+ unsigned int temp_derived_di_small_index_t0 : VGT_DEBUG_REG10_temp_derived_di_small_index_t0_SIZE;
+ unsigned int temp_derived_di_prim_type_t0 : VGT_DEBUG_REG10_temp_derived_di_prim_type_t0_SIZE;
+ } vgt_debug_reg10_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_reg10_t f;
+} vgt_debug_reg10_u;
+
+
+/*
+ * VGT_DEBUG_REG12 struct
+ */
+
+#define VGT_DEBUG_REG12_shifter_byte_count_q_SIZE 5
+#define VGT_DEBUG_REG12_right_word_indx_q_SIZE 5
+#define VGT_DEBUG_REG12_input_data_valid_SIZE 1
+#define VGT_DEBUG_REG12_input_data_xfer_SIZE 1
+#define VGT_DEBUG_REG12_next_shift_is_vect_1_q_SIZE 1
+#define VGT_DEBUG_REG12_next_shift_is_vect_1_d_SIZE 1
+#define VGT_DEBUG_REG12_next_shift_is_vect_1_pre_d_SIZE 1
+#define VGT_DEBUG_REG12_space_avail_from_shift_SIZE 1
+#define VGT_DEBUG_REG12_shifter_first_load_SIZE 1
+#define VGT_DEBUG_REG12_di_state_sel_q_SIZE 1
+#define VGT_DEBUG_REG12_shifter_waiting_for_first_load_q_SIZE 1
+#define VGT_DEBUG_REG12_di_first_group_flag_q_SIZE 1
+#define VGT_DEBUG_REG12_di_event_flag_q_SIZE 1
+#define VGT_DEBUG_REG12_read_draw_initiator_SIZE 1
+#define VGT_DEBUG_REG12_loading_di_requires_shifter_SIZE 1
+#define VGT_DEBUG_REG12_last_shift_of_packet_SIZE 1
+#define VGT_DEBUG_REG12_last_decr_of_packet_SIZE 1
+#define VGT_DEBUG_REG12_extract_vector_SIZE 1
+#define VGT_DEBUG_REG12_shift_vect_rtr_SIZE 1
+#define VGT_DEBUG_REG12_destination_rtr_SIZE 1
+#define VGT_DEBUG_REG12_bgrp_trigger_SIZE 1
+
+#define VGT_DEBUG_REG12_shifter_byte_count_q_SHIFT 0
+#define VGT_DEBUG_REG12_right_word_indx_q_SHIFT 5
+#define VGT_DEBUG_REG12_input_data_valid_SHIFT 10
+#define VGT_DEBUG_REG12_input_data_xfer_SHIFT 11
+#define VGT_DEBUG_REG12_next_shift_is_vect_1_q_SHIFT 12
+#define VGT_DEBUG_REG12_next_shift_is_vect_1_d_SHIFT 13
+#define VGT_DEBUG_REG12_next_shift_is_vect_1_pre_d_SHIFT 14
+#define VGT_DEBUG_REG12_space_avail_from_shift_SHIFT 15
+#define VGT_DEBUG_REG12_shifter_first_load_SHIFT 16
+#define VGT_DEBUG_REG12_di_state_sel_q_SHIFT 17
+#define VGT_DEBUG_REG12_shifter_waiting_for_first_load_q_SHIFT 18
+#define VGT_DEBUG_REG12_di_first_group_flag_q_SHIFT 19
+#define VGT_DEBUG_REG12_di_event_flag_q_SHIFT 20
+#define VGT_DEBUG_REG12_read_draw_initiator_SHIFT 21
+#define VGT_DEBUG_REG12_loading_di_requires_shifter_SHIFT 22
+#define VGT_DEBUG_REG12_last_shift_of_packet_SHIFT 23
+#define VGT_DEBUG_REG12_last_decr_of_packet_SHIFT 24
+#define VGT_DEBUG_REG12_extract_vector_SHIFT 25
+#define VGT_DEBUG_REG12_shift_vect_rtr_SHIFT 26
+#define VGT_DEBUG_REG12_destination_rtr_SHIFT 27
+#define VGT_DEBUG_REG12_bgrp_trigger_SHIFT 28
+
+#define VGT_DEBUG_REG12_shifter_byte_count_q_MASK 0x0000001f
+#define VGT_DEBUG_REG12_right_word_indx_q_MASK 0x000003e0
+#define VGT_DEBUG_REG12_input_data_valid_MASK 0x00000400
+#define VGT_DEBUG_REG12_input_data_xfer_MASK 0x00000800
+#define VGT_DEBUG_REG12_next_shift_is_vect_1_q_MASK 0x00001000
+#define VGT_DEBUG_REG12_next_shift_is_vect_1_d_MASK 0x00002000
+#define VGT_DEBUG_REG12_next_shift_is_vect_1_pre_d_MASK 0x00004000
+#define VGT_DEBUG_REG12_space_avail_from_shift_MASK 0x00008000
+#define VGT_DEBUG_REG12_shifter_first_load_MASK 0x00010000
+#define VGT_DEBUG_REG12_di_state_sel_q_MASK 0x00020000
+#define VGT_DEBUG_REG12_shifter_waiting_for_first_load_q_MASK 0x00040000
+#define VGT_DEBUG_REG12_di_first_group_flag_q_MASK 0x00080000
+#define VGT_DEBUG_REG12_di_event_flag_q_MASK 0x00100000
+#define VGT_DEBUG_REG12_read_draw_initiator_MASK 0x00200000
+#define VGT_DEBUG_REG12_loading_di_requires_shifter_MASK 0x00400000
+#define VGT_DEBUG_REG12_last_shift_of_packet_MASK 0x00800000
+#define VGT_DEBUG_REG12_last_decr_of_packet_MASK 0x01000000
+#define VGT_DEBUG_REG12_extract_vector_MASK 0x02000000
+#define VGT_DEBUG_REG12_shift_vect_rtr_MASK 0x04000000
+#define VGT_DEBUG_REG12_destination_rtr_MASK 0x08000000
+#define VGT_DEBUG_REG12_bgrp_trigger_MASK 0x10000000
+
+#define VGT_DEBUG_REG12_MASK \
+ (VGT_DEBUG_REG12_shifter_byte_count_q_MASK | \
+ VGT_DEBUG_REG12_right_word_indx_q_MASK | \
+ VGT_DEBUG_REG12_input_data_valid_MASK | \
+ VGT_DEBUG_REG12_input_data_xfer_MASK | \
+ VGT_DEBUG_REG12_next_shift_is_vect_1_q_MASK | \
+ VGT_DEBUG_REG12_next_shift_is_vect_1_d_MASK | \
+ VGT_DEBUG_REG12_next_shift_is_vect_1_pre_d_MASK | \
+ VGT_DEBUG_REG12_space_avail_from_shift_MASK | \
+ VGT_DEBUG_REG12_shifter_first_load_MASK | \
+ VGT_DEBUG_REG12_di_state_sel_q_MASK | \
+ VGT_DEBUG_REG12_shifter_waiting_for_first_load_q_MASK | \
+ VGT_DEBUG_REG12_di_first_group_flag_q_MASK | \
+ VGT_DEBUG_REG12_di_event_flag_q_MASK | \
+ VGT_DEBUG_REG12_read_draw_initiator_MASK | \
+ VGT_DEBUG_REG12_loading_di_requires_shifter_MASK | \
+ VGT_DEBUG_REG12_last_shift_of_packet_MASK | \
+ VGT_DEBUG_REG12_last_decr_of_packet_MASK | \
+ VGT_DEBUG_REG12_extract_vector_MASK | \
+ VGT_DEBUG_REG12_shift_vect_rtr_MASK | \
+ VGT_DEBUG_REG12_destination_rtr_MASK | \
+ VGT_DEBUG_REG12_bgrp_trigger_MASK)
+
+#define VGT_DEBUG_REG12(shifter_byte_count_q, right_word_indx_q, input_data_valid, input_data_xfer, next_shift_is_vect_1_q, next_shift_is_vect_1_d, next_shift_is_vect_1_pre_d, space_avail_from_shift, shifter_first_load, di_state_sel_q, shifter_waiting_for_first_load_q, di_first_group_flag_q, di_event_flag_q, read_draw_initiator, loading_di_requires_shifter, last_shift_of_packet, last_decr_of_packet, extract_vector, shift_vect_rtr, destination_rtr, bgrp_trigger) \
+ ((shifter_byte_count_q << VGT_DEBUG_REG12_shifter_byte_count_q_SHIFT) | \
+ (right_word_indx_q << VGT_DEBUG_REG12_right_word_indx_q_SHIFT) | \
+ (input_data_valid << VGT_DEBUG_REG12_input_data_valid_SHIFT) | \
+ (input_data_xfer << VGT_DEBUG_REG12_input_data_xfer_SHIFT) | \
+ (next_shift_is_vect_1_q << VGT_DEBUG_REG12_next_shift_is_vect_1_q_SHIFT) | \
+ (next_shift_is_vect_1_d << VGT_DEBUG_REG12_next_shift_is_vect_1_d_SHIFT) | \
+ (next_shift_is_vect_1_pre_d << VGT_DEBUG_REG12_next_shift_is_vect_1_pre_d_SHIFT) | \
+ (space_avail_from_shift << VGT_DEBUG_REG12_space_avail_from_shift_SHIFT) | \
+ (shifter_first_load << VGT_DEBUG_REG12_shifter_first_load_SHIFT) | \
+ (di_state_sel_q << VGT_DEBUG_REG12_di_state_sel_q_SHIFT) | \
+ (shifter_waiting_for_first_load_q << VGT_DEBUG_REG12_shifter_waiting_for_first_load_q_SHIFT) | \
+ (di_first_group_flag_q << VGT_DEBUG_REG12_di_first_group_flag_q_SHIFT) | \
+ (di_event_flag_q << VGT_DEBUG_REG12_di_event_flag_q_SHIFT) | \
+ (read_draw_initiator << VGT_DEBUG_REG12_read_draw_initiator_SHIFT) | \
+ (loading_di_requires_shifter << VGT_DEBUG_REG12_loading_di_requires_shifter_SHIFT) | \
+ (last_shift_of_packet << VGT_DEBUG_REG12_last_shift_of_packet_SHIFT) | \
+ (last_decr_of_packet << VGT_DEBUG_REG12_last_decr_of_packet_SHIFT) | \
+ (extract_vector << VGT_DEBUG_REG12_extract_vector_SHIFT) | \
+ (shift_vect_rtr << VGT_DEBUG_REG12_shift_vect_rtr_SHIFT) | \
+ (destination_rtr << VGT_DEBUG_REG12_destination_rtr_SHIFT) | \
+ (bgrp_trigger << VGT_DEBUG_REG12_bgrp_trigger_SHIFT))
+
+#define VGT_DEBUG_REG12_GET_shifter_byte_count_q(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_shifter_byte_count_q_MASK) >> VGT_DEBUG_REG12_shifter_byte_count_q_SHIFT)
+#define VGT_DEBUG_REG12_GET_right_word_indx_q(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_right_word_indx_q_MASK) >> VGT_DEBUG_REG12_right_word_indx_q_SHIFT)
+#define VGT_DEBUG_REG12_GET_input_data_valid(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_input_data_valid_MASK) >> VGT_DEBUG_REG12_input_data_valid_SHIFT)
+#define VGT_DEBUG_REG12_GET_input_data_xfer(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_input_data_xfer_MASK) >> VGT_DEBUG_REG12_input_data_xfer_SHIFT)
+#define VGT_DEBUG_REG12_GET_next_shift_is_vect_1_q(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_next_shift_is_vect_1_q_MASK) >> VGT_DEBUG_REG12_next_shift_is_vect_1_q_SHIFT)
+#define VGT_DEBUG_REG12_GET_next_shift_is_vect_1_d(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_next_shift_is_vect_1_d_MASK) >> VGT_DEBUG_REG12_next_shift_is_vect_1_d_SHIFT)
+#define VGT_DEBUG_REG12_GET_next_shift_is_vect_1_pre_d(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_next_shift_is_vect_1_pre_d_MASK) >> VGT_DEBUG_REG12_next_shift_is_vect_1_pre_d_SHIFT)
+#define VGT_DEBUG_REG12_GET_space_avail_from_shift(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_space_avail_from_shift_MASK) >> VGT_DEBUG_REG12_space_avail_from_shift_SHIFT)
+#define VGT_DEBUG_REG12_GET_shifter_first_load(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_shifter_first_load_MASK) >> VGT_DEBUG_REG12_shifter_first_load_SHIFT)
+#define VGT_DEBUG_REG12_GET_di_state_sel_q(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_di_state_sel_q_MASK) >> VGT_DEBUG_REG12_di_state_sel_q_SHIFT)
+#define VGT_DEBUG_REG12_GET_shifter_waiting_for_first_load_q(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_shifter_waiting_for_first_load_q_MASK) >> VGT_DEBUG_REG12_shifter_waiting_for_first_load_q_SHIFT)
+#define VGT_DEBUG_REG12_GET_di_first_group_flag_q(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_di_first_group_flag_q_MASK) >> VGT_DEBUG_REG12_di_first_group_flag_q_SHIFT)
+#define VGT_DEBUG_REG12_GET_di_event_flag_q(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_di_event_flag_q_MASK) >> VGT_DEBUG_REG12_di_event_flag_q_SHIFT)
+#define VGT_DEBUG_REG12_GET_read_draw_initiator(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_read_draw_initiator_MASK) >> VGT_DEBUG_REG12_read_draw_initiator_SHIFT)
+#define VGT_DEBUG_REG12_GET_loading_di_requires_shifter(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_loading_di_requires_shifter_MASK) >> VGT_DEBUG_REG12_loading_di_requires_shifter_SHIFT)
+#define VGT_DEBUG_REG12_GET_last_shift_of_packet(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_last_shift_of_packet_MASK) >> VGT_DEBUG_REG12_last_shift_of_packet_SHIFT)
+#define VGT_DEBUG_REG12_GET_last_decr_of_packet(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_last_decr_of_packet_MASK) >> VGT_DEBUG_REG12_last_decr_of_packet_SHIFT)
+#define VGT_DEBUG_REG12_GET_extract_vector(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_extract_vector_MASK) >> VGT_DEBUG_REG12_extract_vector_SHIFT)
+#define VGT_DEBUG_REG12_GET_shift_vect_rtr(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_shift_vect_rtr_MASK) >> VGT_DEBUG_REG12_shift_vect_rtr_SHIFT)
+#define VGT_DEBUG_REG12_GET_destination_rtr(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_destination_rtr_MASK) >> VGT_DEBUG_REG12_destination_rtr_SHIFT)
+#define VGT_DEBUG_REG12_GET_bgrp_trigger(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_bgrp_trigger_MASK) >> VGT_DEBUG_REG12_bgrp_trigger_SHIFT)
+
+#define VGT_DEBUG_REG12_SET_shifter_byte_count_q(vgt_debug_reg12_reg, shifter_byte_count_q) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_shifter_byte_count_q_MASK) | (shifter_byte_count_q << VGT_DEBUG_REG12_shifter_byte_count_q_SHIFT)
+#define VGT_DEBUG_REG12_SET_right_word_indx_q(vgt_debug_reg12_reg, right_word_indx_q) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_right_word_indx_q_MASK) | (right_word_indx_q << VGT_DEBUG_REG12_right_word_indx_q_SHIFT)
+#define VGT_DEBUG_REG12_SET_input_data_valid(vgt_debug_reg12_reg, input_data_valid) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_input_data_valid_MASK) | (input_data_valid << VGT_DEBUG_REG12_input_data_valid_SHIFT)
+#define VGT_DEBUG_REG12_SET_input_data_xfer(vgt_debug_reg12_reg, input_data_xfer) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_input_data_xfer_MASK) | (input_data_xfer << VGT_DEBUG_REG12_input_data_xfer_SHIFT)
+#define VGT_DEBUG_REG12_SET_next_shift_is_vect_1_q(vgt_debug_reg12_reg, next_shift_is_vect_1_q) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_next_shift_is_vect_1_q_MASK) | (next_shift_is_vect_1_q << VGT_DEBUG_REG12_next_shift_is_vect_1_q_SHIFT)
+#define VGT_DEBUG_REG12_SET_next_shift_is_vect_1_d(vgt_debug_reg12_reg, next_shift_is_vect_1_d) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_next_shift_is_vect_1_d_MASK) | (next_shift_is_vect_1_d << VGT_DEBUG_REG12_next_shift_is_vect_1_d_SHIFT)
+#define VGT_DEBUG_REG12_SET_next_shift_is_vect_1_pre_d(vgt_debug_reg12_reg, next_shift_is_vect_1_pre_d) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_next_shift_is_vect_1_pre_d_MASK) | (next_shift_is_vect_1_pre_d << VGT_DEBUG_REG12_next_shift_is_vect_1_pre_d_SHIFT)
+#define VGT_DEBUG_REG12_SET_space_avail_from_shift(vgt_debug_reg12_reg, space_avail_from_shift) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_space_avail_from_shift_MASK) | (space_avail_from_shift << VGT_DEBUG_REG12_space_avail_from_shift_SHIFT)
+#define VGT_DEBUG_REG12_SET_shifter_first_load(vgt_debug_reg12_reg, shifter_first_load) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_shifter_first_load_MASK) | (shifter_first_load << VGT_DEBUG_REG12_shifter_first_load_SHIFT)
+#define VGT_DEBUG_REG12_SET_di_state_sel_q(vgt_debug_reg12_reg, di_state_sel_q) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_di_state_sel_q_MASK) | (di_state_sel_q << VGT_DEBUG_REG12_di_state_sel_q_SHIFT)
+#define VGT_DEBUG_REG12_SET_shifter_waiting_for_first_load_q(vgt_debug_reg12_reg, shifter_waiting_for_first_load_q) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_shifter_waiting_for_first_load_q_MASK) | (shifter_waiting_for_first_load_q << VGT_DEBUG_REG12_shifter_waiting_for_first_load_q_SHIFT)
+#define VGT_DEBUG_REG12_SET_di_first_group_flag_q(vgt_debug_reg12_reg, di_first_group_flag_q) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_di_first_group_flag_q_MASK) | (di_first_group_flag_q << VGT_DEBUG_REG12_di_first_group_flag_q_SHIFT)
+#define VGT_DEBUG_REG12_SET_di_event_flag_q(vgt_debug_reg12_reg, di_event_flag_q) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_di_event_flag_q_MASK) | (di_event_flag_q << VGT_DEBUG_REG12_di_event_flag_q_SHIFT)
+#define VGT_DEBUG_REG12_SET_read_draw_initiator(vgt_debug_reg12_reg, read_draw_initiator) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_read_draw_initiator_MASK) | (read_draw_initiator << VGT_DEBUG_REG12_read_draw_initiator_SHIFT)
+#define VGT_DEBUG_REG12_SET_loading_di_requires_shifter(vgt_debug_reg12_reg, loading_di_requires_shifter) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_loading_di_requires_shifter_MASK) | (loading_di_requires_shifter << VGT_DEBUG_REG12_loading_di_requires_shifter_SHIFT)
+#define VGT_DEBUG_REG12_SET_last_shift_of_packet(vgt_debug_reg12_reg, last_shift_of_packet) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_last_shift_of_packet_MASK) | (last_shift_of_packet << VGT_DEBUG_REG12_last_shift_of_packet_SHIFT)
+#define VGT_DEBUG_REG12_SET_last_decr_of_packet(vgt_debug_reg12_reg, last_decr_of_packet) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_last_decr_of_packet_MASK) | (last_decr_of_packet << VGT_DEBUG_REG12_last_decr_of_packet_SHIFT)
+#define VGT_DEBUG_REG12_SET_extract_vector(vgt_debug_reg12_reg, extract_vector) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_extract_vector_MASK) | (extract_vector << VGT_DEBUG_REG12_extract_vector_SHIFT)
+#define VGT_DEBUG_REG12_SET_shift_vect_rtr(vgt_debug_reg12_reg, shift_vect_rtr) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_shift_vect_rtr_MASK) | (shift_vect_rtr << VGT_DEBUG_REG12_shift_vect_rtr_SHIFT)
+#define VGT_DEBUG_REG12_SET_destination_rtr(vgt_debug_reg12_reg, destination_rtr) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_destination_rtr_MASK) | (destination_rtr << VGT_DEBUG_REG12_destination_rtr_SHIFT)
+#define VGT_DEBUG_REG12_SET_bgrp_trigger(vgt_debug_reg12_reg, bgrp_trigger) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_bgrp_trigger_MASK) | (bgrp_trigger << VGT_DEBUG_REG12_bgrp_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg12_t {
+ unsigned int shifter_byte_count_q : VGT_DEBUG_REG12_shifter_byte_count_q_SIZE;
+ unsigned int right_word_indx_q : VGT_DEBUG_REG12_right_word_indx_q_SIZE;
+ unsigned int input_data_valid : VGT_DEBUG_REG12_input_data_valid_SIZE;
+ unsigned int input_data_xfer : VGT_DEBUG_REG12_input_data_xfer_SIZE;
+ unsigned int next_shift_is_vect_1_q : VGT_DEBUG_REG12_next_shift_is_vect_1_q_SIZE;
+ unsigned int next_shift_is_vect_1_d : VGT_DEBUG_REG12_next_shift_is_vect_1_d_SIZE;
+ unsigned int next_shift_is_vect_1_pre_d : VGT_DEBUG_REG12_next_shift_is_vect_1_pre_d_SIZE;
+ unsigned int space_avail_from_shift : VGT_DEBUG_REG12_space_avail_from_shift_SIZE;
+ unsigned int shifter_first_load : VGT_DEBUG_REG12_shifter_first_load_SIZE;
+ unsigned int di_state_sel_q : VGT_DEBUG_REG12_di_state_sel_q_SIZE;
+ unsigned int shifter_waiting_for_first_load_q : VGT_DEBUG_REG12_shifter_waiting_for_first_load_q_SIZE;
+ unsigned int di_first_group_flag_q : VGT_DEBUG_REG12_di_first_group_flag_q_SIZE;
+ unsigned int di_event_flag_q : VGT_DEBUG_REG12_di_event_flag_q_SIZE;
+ unsigned int read_draw_initiator : VGT_DEBUG_REG12_read_draw_initiator_SIZE;
+ unsigned int loading_di_requires_shifter : VGT_DEBUG_REG12_loading_di_requires_shifter_SIZE;
+ unsigned int last_shift_of_packet : VGT_DEBUG_REG12_last_shift_of_packet_SIZE;
+ unsigned int last_decr_of_packet : VGT_DEBUG_REG12_last_decr_of_packet_SIZE;
+ unsigned int extract_vector : VGT_DEBUG_REG12_extract_vector_SIZE;
+ unsigned int shift_vect_rtr : VGT_DEBUG_REG12_shift_vect_rtr_SIZE;
+ unsigned int destination_rtr : VGT_DEBUG_REG12_destination_rtr_SIZE;
+ unsigned int bgrp_trigger : VGT_DEBUG_REG12_bgrp_trigger_SIZE;
+ unsigned int : 3;
+ } vgt_debug_reg12_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg12_t {
+ unsigned int : 3;
+ unsigned int bgrp_trigger : VGT_DEBUG_REG12_bgrp_trigger_SIZE;
+ unsigned int destination_rtr : VGT_DEBUG_REG12_destination_rtr_SIZE;
+ unsigned int shift_vect_rtr : VGT_DEBUG_REG12_shift_vect_rtr_SIZE;
+ unsigned int extract_vector : VGT_DEBUG_REG12_extract_vector_SIZE;
+ unsigned int last_decr_of_packet : VGT_DEBUG_REG12_last_decr_of_packet_SIZE;
+ unsigned int last_shift_of_packet : VGT_DEBUG_REG12_last_shift_of_packet_SIZE;
+ unsigned int loading_di_requires_shifter : VGT_DEBUG_REG12_loading_di_requires_shifter_SIZE;
+ unsigned int read_draw_initiator : VGT_DEBUG_REG12_read_draw_initiator_SIZE;
+ unsigned int di_event_flag_q : VGT_DEBUG_REG12_di_event_flag_q_SIZE;
+ unsigned int di_first_group_flag_q : VGT_DEBUG_REG12_di_first_group_flag_q_SIZE;
+ unsigned int shifter_waiting_for_first_load_q : VGT_DEBUG_REG12_shifter_waiting_for_first_load_q_SIZE;
+ unsigned int di_state_sel_q : VGT_DEBUG_REG12_di_state_sel_q_SIZE;
+ unsigned int shifter_first_load : VGT_DEBUG_REG12_shifter_first_load_SIZE;
+ unsigned int space_avail_from_shift : VGT_DEBUG_REG12_space_avail_from_shift_SIZE;
+ unsigned int next_shift_is_vect_1_pre_d : VGT_DEBUG_REG12_next_shift_is_vect_1_pre_d_SIZE;
+ unsigned int next_shift_is_vect_1_d : VGT_DEBUG_REG12_next_shift_is_vect_1_d_SIZE;
+ unsigned int next_shift_is_vect_1_q : VGT_DEBUG_REG12_next_shift_is_vect_1_q_SIZE;
+ unsigned int input_data_xfer : VGT_DEBUG_REG12_input_data_xfer_SIZE;
+ unsigned int input_data_valid : VGT_DEBUG_REG12_input_data_valid_SIZE;
+ unsigned int right_word_indx_q : VGT_DEBUG_REG12_right_word_indx_q_SIZE;
+ unsigned int shifter_byte_count_q : VGT_DEBUG_REG12_shifter_byte_count_q_SIZE;
+ } vgt_debug_reg12_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_reg12_t f;
+} vgt_debug_reg12_u;
+
+
+/*
+ * VGT_DEBUG_REG13 struct
+ */
+
+#define VGT_DEBUG_REG13_di_index_counter_q_SIZE 16
+#define VGT_DEBUG_REG13_shift_amount_no_extract_SIZE 4
+#define VGT_DEBUG_REG13_shift_amount_extract_SIZE 4
+#define VGT_DEBUG_REG13_di_prim_type_q_SIZE 6
+#define VGT_DEBUG_REG13_current_source_sel_SIZE 2
+
+#define VGT_DEBUG_REG13_di_index_counter_q_SHIFT 0
+#define VGT_DEBUG_REG13_shift_amount_no_extract_SHIFT 16
+#define VGT_DEBUG_REG13_shift_amount_extract_SHIFT 20
+#define VGT_DEBUG_REG13_di_prim_type_q_SHIFT 24
+#define VGT_DEBUG_REG13_current_source_sel_SHIFT 30
+
+#define VGT_DEBUG_REG13_di_index_counter_q_MASK 0x0000ffff
+#define VGT_DEBUG_REG13_shift_amount_no_extract_MASK 0x000f0000
+#define VGT_DEBUG_REG13_shift_amount_extract_MASK 0x00f00000
+#define VGT_DEBUG_REG13_di_prim_type_q_MASK 0x3f000000
+#define VGT_DEBUG_REG13_current_source_sel_MASK 0xc0000000
+
+#define VGT_DEBUG_REG13_MASK \
+ (VGT_DEBUG_REG13_di_index_counter_q_MASK | \
+ VGT_DEBUG_REG13_shift_amount_no_extract_MASK | \
+ VGT_DEBUG_REG13_shift_amount_extract_MASK | \
+ VGT_DEBUG_REG13_di_prim_type_q_MASK | \
+ VGT_DEBUG_REG13_current_source_sel_MASK)
+
+#define VGT_DEBUG_REG13(di_index_counter_q, shift_amount_no_extract, shift_amount_extract, di_prim_type_q, current_source_sel) \
+ ((di_index_counter_q << VGT_DEBUG_REG13_di_index_counter_q_SHIFT) | \
+ (shift_amount_no_extract << VGT_DEBUG_REG13_shift_amount_no_extract_SHIFT) | \
+ (shift_amount_extract << VGT_DEBUG_REG13_shift_amount_extract_SHIFT) | \
+ (di_prim_type_q << VGT_DEBUG_REG13_di_prim_type_q_SHIFT) | \
+ (current_source_sel << VGT_DEBUG_REG13_current_source_sel_SHIFT))
+
+#define VGT_DEBUG_REG13_GET_di_index_counter_q(vgt_debug_reg13) \
+ ((vgt_debug_reg13 & VGT_DEBUG_REG13_di_index_counter_q_MASK) >> VGT_DEBUG_REG13_di_index_counter_q_SHIFT)
+#define VGT_DEBUG_REG13_GET_shift_amount_no_extract(vgt_debug_reg13) \
+ ((vgt_debug_reg13 & VGT_DEBUG_REG13_shift_amount_no_extract_MASK) >> VGT_DEBUG_REG13_shift_amount_no_extract_SHIFT)
+#define VGT_DEBUG_REG13_GET_shift_amount_extract(vgt_debug_reg13) \
+ ((vgt_debug_reg13 & VGT_DEBUG_REG13_shift_amount_extract_MASK) >> VGT_DEBUG_REG13_shift_amount_extract_SHIFT)
+#define VGT_DEBUG_REG13_GET_di_prim_type_q(vgt_debug_reg13) \
+ ((vgt_debug_reg13 & VGT_DEBUG_REG13_di_prim_type_q_MASK) >> VGT_DEBUG_REG13_di_prim_type_q_SHIFT)
+#define VGT_DEBUG_REG13_GET_current_source_sel(vgt_debug_reg13) \
+ ((vgt_debug_reg13 & VGT_DEBUG_REG13_current_source_sel_MASK) >> VGT_DEBUG_REG13_current_source_sel_SHIFT)
+
+#define VGT_DEBUG_REG13_SET_di_index_counter_q(vgt_debug_reg13_reg, di_index_counter_q) \
+ vgt_debug_reg13_reg = (vgt_debug_reg13_reg & ~VGT_DEBUG_REG13_di_index_counter_q_MASK) | (di_index_counter_q << VGT_DEBUG_REG13_di_index_counter_q_SHIFT)
+#define VGT_DEBUG_REG13_SET_shift_amount_no_extract(vgt_debug_reg13_reg, shift_amount_no_extract) \
+ vgt_debug_reg13_reg = (vgt_debug_reg13_reg & ~VGT_DEBUG_REG13_shift_amount_no_extract_MASK) | (shift_amount_no_extract << VGT_DEBUG_REG13_shift_amount_no_extract_SHIFT)
+#define VGT_DEBUG_REG13_SET_shift_amount_extract(vgt_debug_reg13_reg, shift_amount_extract) \
+ vgt_debug_reg13_reg = (vgt_debug_reg13_reg & ~VGT_DEBUG_REG13_shift_amount_extract_MASK) | (shift_amount_extract << VGT_DEBUG_REG13_shift_amount_extract_SHIFT)
+#define VGT_DEBUG_REG13_SET_di_prim_type_q(vgt_debug_reg13_reg, di_prim_type_q) \
+ vgt_debug_reg13_reg = (vgt_debug_reg13_reg & ~VGT_DEBUG_REG13_di_prim_type_q_MASK) | (di_prim_type_q << VGT_DEBUG_REG13_di_prim_type_q_SHIFT)
+#define VGT_DEBUG_REG13_SET_current_source_sel(vgt_debug_reg13_reg, current_source_sel) \
+ vgt_debug_reg13_reg = (vgt_debug_reg13_reg & ~VGT_DEBUG_REG13_current_source_sel_MASK) | (current_source_sel << VGT_DEBUG_REG13_current_source_sel_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg13_t {
+ unsigned int di_index_counter_q : VGT_DEBUG_REG13_di_index_counter_q_SIZE;
+ unsigned int shift_amount_no_extract : VGT_DEBUG_REG13_shift_amount_no_extract_SIZE;
+ unsigned int shift_amount_extract : VGT_DEBUG_REG13_shift_amount_extract_SIZE;
+ unsigned int di_prim_type_q : VGT_DEBUG_REG13_di_prim_type_q_SIZE;
+ unsigned int current_source_sel : VGT_DEBUG_REG13_current_source_sel_SIZE;
+ } vgt_debug_reg13_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg13_t {
+ unsigned int current_source_sel : VGT_DEBUG_REG13_current_source_sel_SIZE;
+ unsigned int di_prim_type_q : VGT_DEBUG_REG13_di_prim_type_q_SIZE;
+ unsigned int shift_amount_extract : VGT_DEBUG_REG13_shift_amount_extract_SIZE;
+ unsigned int shift_amount_no_extract : VGT_DEBUG_REG13_shift_amount_no_extract_SIZE;
+ unsigned int di_index_counter_q : VGT_DEBUG_REG13_di_index_counter_q_SIZE;
+ } vgt_debug_reg13_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_reg13_t f;
+} vgt_debug_reg13_u;
+
+
+/*
+ * VGT_DEBUG_REG14 struct
+ */
+
+#define VGT_DEBUG_REG14_current_source_sel_SIZE 2
+#define VGT_DEBUG_REG14_left_word_indx_q_SIZE 5
+#define VGT_DEBUG_REG14_input_data_cnt_SIZE 5
+#define VGT_DEBUG_REG14_input_data_lsw_SIZE 5
+#define VGT_DEBUG_REG14_input_data_msw_SIZE 5
+#define VGT_DEBUG_REG14_next_small_stride_shift_limit_q_SIZE 5
+#define VGT_DEBUG_REG14_current_small_stride_shift_limit_q_SIZE 5
+
+#define VGT_DEBUG_REG14_current_source_sel_SHIFT 0
+#define VGT_DEBUG_REG14_left_word_indx_q_SHIFT 2
+#define VGT_DEBUG_REG14_input_data_cnt_SHIFT 7
+#define VGT_DEBUG_REG14_input_data_lsw_SHIFT 12
+#define VGT_DEBUG_REG14_input_data_msw_SHIFT 17
+#define VGT_DEBUG_REG14_next_small_stride_shift_limit_q_SHIFT 22
+#define VGT_DEBUG_REG14_current_small_stride_shift_limit_q_SHIFT 27
+
+#define VGT_DEBUG_REG14_current_source_sel_MASK 0x00000003
+#define VGT_DEBUG_REG14_left_word_indx_q_MASK 0x0000007c
+#define VGT_DEBUG_REG14_input_data_cnt_MASK 0x00000f80
+#define VGT_DEBUG_REG14_input_data_lsw_MASK 0x0001f000
+#define VGT_DEBUG_REG14_input_data_msw_MASK 0x003e0000
+#define VGT_DEBUG_REG14_next_small_stride_shift_limit_q_MASK 0x07c00000
+#define VGT_DEBUG_REG14_current_small_stride_shift_limit_q_MASK 0xf8000000
+
+#define VGT_DEBUG_REG14_MASK \
+ (VGT_DEBUG_REG14_current_source_sel_MASK | \
+ VGT_DEBUG_REG14_left_word_indx_q_MASK | \
+ VGT_DEBUG_REG14_input_data_cnt_MASK | \
+ VGT_DEBUG_REG14_input_data_lsw_MASK | \
+ VGT_DEBUG_REG14_input_data_msw_MASK | \
+ VGT_DEBUG_REG14_next_small_stride_shift_limit_q_MASK | \
+ VGT_DEBUG_REG14_current_small_stride_shift_limit_q_MASK)
+
+#define VGT_DEBUG_REG14(current_source_sel, left_word_indx_q, input_data_cnt, input_data_lsw, input_data_msw, next_small_stride_shift_limit_q, current_small_stride_shift_limit_q) \
+ ((current_source_sel << VGT_DEBUG_REG14_current_source_sel_SHIFT) | \
+ (left_word_indx_q << VGT_DEBUG_REG14_left_word_indx_q_SHIFT) | \
+ (input_data_cnt << VGT_DEBUG_REG14_input_data_cnt_SHIFT) | \
+ (input_data_lsw << VGT_DEBUG_REG14_input_data_lsw_SHIFT) | \
+ (input_data_msw << VGT_DEBUG_REG14_input_data_msw_SHIFT) | \
+ (next_small_stride_shift_limit_q << VGT_DEBUG_REG14_next_small_stride_shift_limit_q_SHIFT) | \
+ (current_small_stride_shift_limit_q << VGT_DEBUG_REG14_current_small_stride_shift_limit_q_SHIFT))
+
+#define VGT_DEBUG_REG14_GET_current_source_sel(vgt_debug_reg14) \
+ ((vgt_debug_reg14 & VGT_DEBUG_REG14_current_source_sel_MASK) >> VGT_DEBUG_REG14_current_source_sel_SHIFT)
+#define VGT_DEBUG_REG14_GET_left_word_indx_q(vgt_debug_reg14) \
+ ((vgt_debug_reg14 & VGT_DEBUG_REG14_left_word_indx_q_MASK) >> VGT_DEBUG_REG14_left_word_indx_q_SHIFT)
+#define VGT_DEBUG_REG14_GET_input_data_cnt(vgt_debug_reg14) \
+ ((vgt_debug_reg14 & VGT_DEBUG_REG14_input_data_cnt_MASK) >> VGT_DEBUG_REG14_input_data_cnt_SHIFT)
+#define VGT_DEBUG_REG14_GET_input_data_lsw(vgt_debug_reg14) \
+ ((vgt_debug_reg14 & VGT_DEBUG_REG14_input_data_lsw_MASK) >> VGT_DEBUG_REG14_input_data_lsw_SHIFT)
+#define VGT_DEBUG_REG14_GET_input_data_msw(vgt_debug_reg14) \
+ ((vgt_debug_reg14 & VGT_DEBUG_REG14_input_data_msw_MASK) >> VGT_DEBUG_REG14_input_data_msw_SHIFT)
+#define VGT_DEBUG_REG14_GET_next_small_stride_shift_limit_q(vgt_debug_reg14) \
+ ((vgt_debug_reg14 & VGT_DEBUG_REG14_next_small_stride_shift_limit_q_MASK) >> VGT_DEBUG_REG14_next_small_stride_shift_limit_q_SHIFT)
+#define VGT_DEBUG_REG14_GET_current_small_stride_shift_limit_q(vgt_debug_reg14) \
+ ((vgt_debug_reg14 & VGT_DEBUG_REG14_current_small_stride_shift_limit_q_MASK) >> VGT_DEBUG_REG14_current_small_stride_shift_limit_q_SHIFT)
+
+#define VGT_DEBUG_REG14_SET_current_source_sel(vgt_debug_reg14_reg, current_source_sel) \
+ vgt_debug_reg14_reg = (vgt_debug_reg14_reg & ~VGT_DEBUG_REG14_current_source_sel_MASK) | (current_source_sel << VGT_DEBUG_REG14_current_source_sel_SHIFT)
+#define VGT_DEBUG_REG14_SET_left_word_indx_q(vgt_debug_reg14_reg, left_word_indx_q) \
+ vgt_debug_reg14_reg = (vgt_debug_reg14_reg & ~VGT_DEBUG_REG14_left_word_indx_q_MASK) | (left_word_indx_q << VGT_DEBUG_REG14_left_word_indx_q_SHIFT)
+#define VGT_DEBUG_REG14_SET_input_data_cnt(vgt_debug_reg14_reg, input_data_cnt) \
+ vgt_debug_reg14_reg = (vgt_debug_reg14_reg & ~VGT_DEBUG_REG14_input_data_cnt_MASK) | (input_data_cnt << VGT_DEBUG_REG14_input_data_cnt_SHIFT)
+#define VGT_DEBUG_REG14_SET_input_data_lsw(vgt_debug_reg14_reg, input_data_lsw) \
+ vgt_debug_reg14_reg = (vgt_debug_reg14_reg & ~VGT_DEBUG_REG14_input_data_lsw_MASK) | (input_data_lsw << VGT_DEBUG_REG14_input_data_lsw_SHIFT)
+#define VGT_DEBUG_REG14_SET_input_data_msw(vgt_debug_reg14_reg, input_data_msw) \
+ vgt_debug_reg14_reg = (vgt_debug_reg14_reg & ~VGT_DEBUG_REG14_input_data_msw_MASK) | (input_data_msw << VGT_DEBUG_REG14_input_data_msw_SHIFT)
+#define VGT_DEBUG_REG14_SET_next_small_stride_shift_limit_q(vgt_debug_reg14_reg, next_small_stride_shift_limit_q) \
+ vgt_debug_reg14_reg = (vgt_debug_reg14_reg & ~VGT_DEBUG_REG14_next_small_stride_shift_limit_q_MASK) | (next_small_stride_shift_limit_q << VGT_DEBUG_REG14_next_small_stride_shift_limit_q_SHIFT)
+#define VGT_DEBUG_REG14_SET_current_small_stride_shift_limit_q(vgt_debug_reg14_reg, current_small_stride_shift_limit_q) \
+ vgt_debug_reg14_reg = (vgt_debug_reg14_reg & ~VGT_DEBUG_REG14_current_small_stride_shift_limit_q_MASK) | (current_small_stride_shift_limit_q << VGT_DEBUG_REG14_current_small_stride_shift_limit_q_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg14_t {
+ unsigned int current_source_sel : VGT_DEBUG_REG14_current_source_sel_SIZE;
+ unsigned int left_word_indx_q : VGT_DEBUG_REG14_left_word_indx_q_SIZE;
+ unsigned int input_data_cnt : VGT_DEBUG_REG14_input_data_cnt_SIZE;
+ unsigned int input_data_lsw : VGT_DEBUG_REG14_input_data_lsw_SIZE;
+ unsigned int input_data_msw : VGT_DEBUG_REG14_input_data_msw_SIZE;
+ unsigned int next_small_stride_shift_limit_q : VGT_DEBUG_REG14_next_small_stride_shift_limit_q_SIZE;
+ unsigned int current_small_stride_shift_limit_q : VGT_DEBUG_REG14_current_small_stride_shift_limit_q_SIZE;
+ } vgt_debug_reg14_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg14_t {
+ unsigned int current_small_stride_shift_limit_q : VGT_DEBUG_REG14_current_small_stride_shift_limit_q_SIZE;
+ unsigned int next_small_stride_shift_limit_q : VGT_DEBUG_REG14_next_small_stride_shift_limit_q_SIZE;
+ unsigned int input_data_msw : VGT_DEBUG_REG14_input_data_msw_SIZE;
+ unsigned int input_data_lsw : VGT_DEBUG_REG14_input_data_lsw_SIZE;
+ unsigned int input_data_cnt : VGT_DEBUG_REG14_input_data_cnt_SIZE;
+ unsigned int left_word_indx_q : VGT_DEBUG_REG14_left_word_indx_q_SIZE;
+ unsigned int current_source_sel : VGT_DEBUG_REG14_current_source_sel_SIZE;
+ } vgt_debug_reg14_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_reg14_t f;
+} vgt_debug_reg14_u;
+
+
+/*
+ * VGT_DEBUG_REG15 struct
+ */
+
+#define VGT_DEBUG_REG15_next_stride_q_SIZE 5
+#define VGT_DEBUG_REG15_next_stride_d_SIZE 5
+#define VGT_DEBUG_REG15_current_shift_q_SIZE 5
+#define VGT_DEBUG_REG15_current_shift_d_SIZE 5
+#define VGT_DEBUG_REG15_current_stride_q_SIZE 5
+#define VGT_DEBUG_REG15_current_stride_d_SIZE 5
+#define VGT_DEBUG_REG15_bgrp_trigger_SIZE 1
+
+#define VGT_DEBUG_REG15_next_stride_q_SHIFT 0
+#define VGT_DEBUG_REG15_next_stride_d_SHIFT 5
+#define VGT_DEBUG_REG15_current_shift_q_SHIFT 10
+#define VGT_DEBUG_REG15_current_shift_d_SHIFT 15
+#define VGT_DEBUG_REG15_current_stride_q_SHIFT 20
+#define VGT_DEBUG_REG15_current_stride_d_SHIFT 25
+#define VGT_DEBUG_REG15_bgrp_trigger_SHIFT 30
+
+#define VGT_DEBUG_REG15_next_stride_q_MASK 0x0000001f
+#define VGT_DEBUG_REG15_next_stride_d_MASK 0x000003e0
+#define VGT_DEBUG_REG15_current_shift_q_MASK 0x00007c00
+#define VGT_DEBUG_REG15_current_shift_d_MASK 0x000f8000
+#define VGT_DEBUG_REG15_current_stride_q_MASK 0x01f00000
+#define VGT_DEBUG_REG15_current_stride_d_MASK 0x3e000000
+#define VGT_DEBUG_REG15_bgrp_trigger_MASK 0x40000000
+
+#define VGT_DEBUG_REG15_MASK \
+ (VGT_DEBUG_REG15_next_stride_q_MASK | \
+ VGT_DEBUG_REG15_next_stride_d_MASK | \
+ VGT_DEBUG_REG15_current_shift_q_MASK | \
+ VGT_DEBUG_REG15_current_shift_d_MASK | \
+ VGT_DEBUG_REG15_current_stride_q_MASK | \
+ VGT_DEBUG_REG15_current_stride_d_MASK | \
+ VGT_DEBUG_REG15_bgrp_trigger_MASK)
+
+#define VGT_DEBUG_REG15(next_stride_q, next_stride_d, current_shift_q, current_shift_d, current_stride_q, current_stride_d, bgrp_trigger) \
+ ((next_stride_q << VGT_DEBUG_REG15_next_stride_q_SHIFT) | \
+ (next_stride_d << VGT_DEBUG_REG15_next_stride_d_SHIFT) | \
+ (current_shift_q << VGT_DEBUG_REG15_current_shift_q_SHIFT) | \
+ (current_shift_d << VGT_DEBUG_REG15_current_shift_d_SHIFT) | \
+ (current_stride_q << VGT_DEBUG_REG15_current_stride_q_SHIFT) | \
+ (current_stride_d << VGT_DEBUG_REG15_current_stride_d_SHIFT) | \
+ (bgrp_trigger << VGT_DEBUG_REG15_bgrp_trigger_SHIFT))
+
+#define VGT_DEBUG_REG15_GET_next_stride_q(vgt_debug_reg15) \
+ ((vgt_debug_reg15 & VGT_DEBUG_REG15_next_stride_q_MASK) >> VGT_DEBUG_REG15_next_stride_q_SHIFT)
+#define VGT_DEBUG_REG15_GET_next_stride_d(vgt_debug_reg15) \
+ ((vgt_debug_reg15 & VGT_DEBUG_REG15_next_stride_d_MASK) >> VGT_DEBUG_REG15_next_stride_d_SHIFT)
+#define VGT_DEBUG_REG15_GET_current_shift_q(vgt_debug_reg15) \
+ ((vgt_debug_reg15 & VGT_DEBUG_REG15_current_shift_q_MASK) >> VGT_DEBUG_REG15_current_shift_q_SHIFT)
+#define VGT_DEBUG_REG15_GET_current_shift_d(vgt_debug_reg15) \
+ ((vgt_debug_reg15 & VGT_DEBUG_REG15_current_shift_d_MASK) >> VGT_DEBUG_REG15_current_shift_d_SHIFT)
+#define VGT_DEBUG_REG15_GET_current_stride_q(vgt_debug_reg15) \
+ ((vgt_debug_reg15 & VGT_DEBUG_REG15_current_stride_q_MASK) >> VGT_DEBUG_REG15_current_stride_q_SHIFT)
+#define VGT_DEBUG_REG15_GET_current_stride_d(vgt_debug_reg15) \
+ ((vgt_debug_reg15 & VGT_DEBUG_REG15_current_stride_d_MASK) >> VGT_DEBUG_REG15_current_stride_d_SHIFT)
+#define VGT_DEBUG_REG15_GET_bgrp_trigger(vgt_debug_reg15) \
+ ((vgt_debug_reg15 & VGT_DEBUG_REG15_bgrp_trigger_MASK) >> VGT_DEBUG_REG15_bgrp_trigger_SHIFT)
+
+#define VGT_DEBUG_REG15_SET_next_stride_q(vgt_debug_reg15_reg, next_stride_q) \
+ vgt_debug_reg15_reg = (vgt_debug_reg15_reg & ~VGT_DEBUG_REG15_next_stride_q_MASK) | (next_stride_q << VGT_DEBUG_REG15_next_stride_q_SHIFT)
+#define VGT_DEBUG_REG15_SET_next_stride_d(vgt_debug_reg15_reg, next_stride_d) \
+ vgt_debug_reg15_reg = (vgt_debug_reg15_reg & ~VGT_DEBUG_REG15_next_stride_d_MASK) | (next_stride_d << VGT_DEBUG_REG15_next_stride_d_SHIFT)
+#define VGT_DEBUG_REG15_SET_current_shift_q(vgt_debug_reg15_reg, current_shift_q) \
+ vgt_debug_reg15_reg = (vgt_debug_reg15_reg & ~VGT_DEBUG_REG15_current_shift_q_MASK) | (current_shift_q << VGT_DEBUG_REG15_current_shift_q_SHIFT)
+#define VGT_DEBUG_REG15_SET_current_shift_d(vgt_debug_reg15_reg, current_shift_d) \
+ vgt_debug_reg15_reg = (vgt_debug_reg15_reg & ~VGT_DEBUG_REG15_current_shift_d_MASK) | (current_shift_d << VGT_DEBUG_REG15_current_shift_d_SHIFT)
+#define VGT_DEBUG_REG15_SET_current_stride_q(vgt_debug_reg15_reg, current_stride_q) \
+ vgt_debug_reg15_reg = (vgt_debug_reg15_reg & ~VGT_DEBUG_REG15_current_stride_q_MASK) | (current_stride_q << VGT_DEBUG_REG15_current_stride_q_SHIFT)
+#define VGT_DEBUG_REG15_SET_current_stride_d(vgt_debug_reg15_reg, current_stride_d) \
+ vgt_debug_reg15_reg = (vgt_debug_reg15_reg & ~VGT_DEBUG_REG15_current_stride_d_MASK) | (current_stride_d << VGT_DEBUG_REG15_current_stride_d_SHIFT)
+#define VGT_DEBUG_REG15_SET_bgrp_trigger(vgt_debug_reg15_reg, bgrp_trigger) \
+ vgt_debug_reg15_reg = (vgt_debug_reg15_reg & ~VGT_DEBUG_REG15_bgrp_trigger_MASK) | (bgrp_trigger << VGT_DEBUG_REG15_bgrp_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg15_t {
+ unsigned int next_stride_q : VGT_DEBUG_REG15_next_stride_q_SIZE;
+ unsigned int next_stride_d : VGT_DEBUG_REG15_next_stride_d_SIZE;
+ unsigned int current_shift_q : VGT_DEBUG_REG15_current_shift_q_SIZE;
+ unsigned int current_shift_d : VGT_DEBUG_REG15_current_shift_d_SIZE;
+ unsigned int current_stride_q : VGT_DEBUG_REG15_current_stride_q_SIZE;
+ unsigned int current_stride_d : VGT_DEBUG_REG15_current_stride_d_SIZE;
+ unsigned int bgrp_trigger : VGT_DEBUG_REG15_bgrp_trigger_SIZE;
+ unsigned int : 1;
+ } vgt_debug_reg15_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg15_t {
+ unsigned int : 1;
+ unsigned int bgrp_trigger : VGT_DEBUG_REG15_bgrp_trigger_SIZE;
+ unsigned int current_stride_d : VGT_DEBUG_REG15_current_stride_d_SIZE;
+ unsigned int current_stride_q : VGT_DEBUG_REG15_current_stride_q_SIZE;
+ unsigned int current_shift_d : VGT_DEBUG_REG15_current_shift_d_SIZE;
+ unsigned int current_shift_q : VGT_DEBUG_REG15_current_shift_q_SIZE;
+ unsigned int next_stride_d : VGT_DEBUG_REG15_next_stride_d_SIZE;
+ unsigned int next_stride_q : VGT_DEBUG_REG15_next_stride_q_SIZE;
+ } vgt_debug_reg15_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_reg15_t f;
+} vgt_debug_reg15_u;
+
+
+/*
+ * VGT_DEBUG_REG16 struct
+ */
+
+#define VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_full_SIZE 1
+#define VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_empty_SIZE 1
+#define VGT_DEBUG_REG16_dma_bgrp_cull_fetch_read_SIZE 1
+#define VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_we_SIZE 1
+#define VGT_DEBUG_REG16_bgrp_byte_mask_fifo_full_SIZE 1
+#define VGT_DEBUG_REG16_bgrp_byte_mask_fifo_empty_SIZE 1
+#define VGT_DEBUG_REG16_bgrp_byte_mask_fifo_re_q_SIZE 1
+#define VGT_DEBUG_REG16_bgrp_byte_mask_fifo_we_SIZE 1
+#define VGT_DEBUG_REG16_bgrp_dma_mask_kill_SIZE 1
+#define VGT_DEBUG_REG16_bgrp_grp_bin_valid_SIZE 1
+#define VGT_DEBUG_REG16_rst_last_bit_SIZE 1
+#define VGT_DEBUG_REG16_current_state_q_SIZE 1
+#define VGT_DEBUG_REG16_old_state_q_SIZE 1
+#define VGT_DEBUG_REG16_old_state_en_SIZE 1
+#define VGT_DEBUG_REG16_prev_last_bit_q_SIZE 1
+#define VGT_DEBUG_REG16_dbl_last_bit_q_SIZE 1
+#define VGT_DEBUG_REG16_last_bit_block_q_SIZE 1
+#define VGT_DEBUG_REG16_ast_bit_block2_q_SIZE 1
+#define VGT_DEBUG_REG16_load_empty_reg_SIZE 1
+#define VGT_DEBUG_REG16_bgrp_grp_byte_mask_rdata_SIZE 8
+#define VGT_DEBUG_REG16_dma_bgrp_dma_data_fifo_rptr_SIZE 2
+#define VGT_DEBUG_REG16_top_di_pre_fetch_cull_enable_SIZE 1
+#define VGT_DEBUG_REG16_top_di_grp_cull_enable_q_SIZE 1
+#define VGT_DEBUG_REG16_bgrp_trigger_SIZE 1
+
+#define VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_full_SHIFT 0
+#define VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_empty_SHIFT 1
+#define VGT_DEBUG_REG16_dma_bgrp_cull_fetch_read_SHIFT 2
+#define VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_we_SHIFT 3
+#define VGT_DEBUG_REG16_bgrp_byte_mask_fifo_full_SHIFT 4
+#define VGT_DEBUG_REG16_bgrp_byte_mask_fifo_empty_SHIFT 5
+#define VGT_DEBUG_REG16_bgrp_byte_mask_fifo_re_q_SHIFT 6
+#define VGT_DEBUG_REG16_bgrp_byte_mask_fifo_we_SHIFT 7
+#define VGT_DEBUG_REG16_bgrp_dma_mask_kill_SHIFT 8
+#define VGT_DEBUG_REG16_bgrp_grp_bin_valid_SHIFT 9
+#define VGT_DEBUG_REG16_rst_last_bit_SHIFT 10
+#define VGT_DEBUG_REG16_current_state_q_SHIFT 11
+#define VGT_DEBUG_REG16_old_state_q_SHIFT 12
+#define VGT_DEBUG_REG16_old_state_en_SHIFT 13
+#define VGT_DEBUG_REG16_prev_last_bit_q_SHIFT 14
+#define VGT_DEBUG_REG16_dbl_last_bit_q_SHIFT 15
+#define VGT_DEBUG_REG16_last_bit_block_q_SHIFT 16
+#define VGT_DEBUG_REG16_ast_bit_block2_q_SHIFT 17
+#define VGT_DEBUG_REG16_load_empty_reg_SHIFT 18
+#define VGT_DEBUG_REG16_bgrp_grp_byte_mask_rdata_SHIFT 19
+#define VGT_DEBUG_REG16_dma_bgrp_dma_data_fifo_rptr_SHIFT 27
+#define VGT_DEBUG_REG16_top_di_pre_fetch_cull_enable_SHIFT 29
+#define VGT_DEBUG_REG16_top_di_grp_cull_enable_q_SHIFT 30
+#define VGT_DEBUG_REG16_bgrp_trigger_SHIFT 31
+
+#define VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_full_MASK 0x00000001
+#define VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_empty_MASK 0x00000002
+#define VGT_DEBUG_REG16_dma_bgrp_cull_fetch_read_MASK 0x00000004
+#define VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_we_MASK 0x00000008
+#define VGT_DEBUG_REG16_bgrp_byte_mask_fifo_full_MASK 0x00000010
+#define VGT_DEBUG_REG16_bgrp_byte_mask_fifo_empty_MASK 0x00000020
+#define VGT_DEBUG_REG16_bgrp_byte_mask_fifo_re_q_MASK 0x00000040
+#define VGT_DEBUG_REG16_bgrp_byte_mask_fifo_we_MASK 0x00000080
+#define VGT_DEBUG_REG16_bgrp_dma_mask_kill_MASK 0x00000100
+#define VGT_DEBUG_REG16_bgrp_grp_bin_valid_MASK 0x00000200
+#define VGT_DEBUG_REG16_rst_last_bit_MASK 0x00000400
+#define VGT_DEBUG_REG16_current_state_q_MASK 0x00000800
+#define VGT_DEBUG_REG16_old_state_q_MASK 0x00001000
+#define VGT_DEBUG_REG16_old_state_en_MASK 0x00002000
+#define VGT_DEBUG_REG16_prev_last_bit_q_MASK 0x00004000
+#define VGT_DEBUG_REG16_dbl_last_bit_q_MASK 0x00008000
+#define VGT_DEBUG_REG16_last_bit_block_q_MASK 0x00010000
+#define VGT_DEBUG_REG16_ast_bit_block2_q_MASK 0x00020000
+#define VGT_DEBUG_REG16_load_empty_reg_MASK 0x00040000
+#define VGT_DEBUG_REG16_bgrp_grp_byte_mask_rdata_MASK 0x07f80000
+#define VGT_DEBUG_REG16_dma_bgrp_dma_data_fifo_rptr_MASK 0x18000000
+#define VGT_DEBUG_REG16_top_di_pre_fetch_cull_enable_MASK 0x20000000
+#define VGT_DEBUG_REG16_top_di_grp_cull_enable_q_MASK 0x40000000
+#define VGT_DEBUG_REG16_bgrp_trigger_MASK 0x80000000
+
+#define VGT_DEBUG_REG16_MASK \
+ (VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_full_MASK | \
+ VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_empty_MASK | \
+ VGT_DEBUG_REG16_dma_bgrp_cull_fetch_read_MASK | \
+ VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_we_MASK | \
+ VGT_DEBUG_REG16_bgrp_byte_mask_fifo_full_MASK | \
+ VGT_DEBUG_REG16_bgrp_byte_mask_fifo_empty_MASK | \
+ VGT_DEBUG_REG16_bgrp_byte_mask_fifo_re_q_MASK | \
+ VGT_DEBUG_REG16_bgrp_byte_mask_fifo_we_MASK | \
+ VGT_DEBUG_REG16_bgrp_dma_mask_kill_MASK | \
+ VGT_DEBUG_REG16_bgrp_grp_bin_valid_MASK | \
+ VGT_DEBUG_REG16_rst_last_bit_MASK | \
+ VGT_DEBUG_REG16_current_state_q_MASK | \
+ VGT_DEBUG_REG16_old_state_q_MASK | \
+ VGT_DEBUG_REG16_old_state_en_MASK | \
+ VGT_DEBUG_REG16_prev_last_bit_q_MASK | \
+ VGT_DEBUG_REG16_dbl_last_bit_q_MASK | \
+ VGT_DEBUG_REG16_last_bit_block_q_MASK | \
+ VGT_DEBUG_REG16_ast_bit_block2_q_MASK | \
+ VGT_DEBUG_REG16_load_empty_reg_MASK | \
+ VGT_DEBUG_REG16_bgrp_grp_byte_mask_rdata_MASK | \
+ VGT_DEBUG_REG16_dma_bgrp_dma_data_fifo_rptr_MASK | \
+ VGT_DEBUG_REG16_top_di_pre_fetch_cull_enable_MASK | \
+ VGT_DEBUG_REG16_top_di_grp_cull_enable_q_MASK | \
+ VGT_DEBUG_REG16_bgrp_trigger_MASK)
+
+#define VGT_DEBUG_REG16(bgrp_cull_fetch_fifo_full, bgrp_cull_fetch_fifo_empty, dma_bgrp_cull_fetch_read, bgrp_cull_fetch_fifo_we, bgrp_byte_mask_fifo_full, bgrp_byte_mask_fifo_empty, bgrp_byte_mask_fifo_re_q, bgrp_byte_mask_fifo_we, bgrp_dma_mask_kill, bgrp_grp_bin_valid, rst_last_bit, current_state_q, old_state_q, old_state_en, prev_last_bit_q, dbl_last_bit_q, last_bit_block_q, ast_bit_block2_q, load_empty_reg, bgrp_grp_byte_mask_rdata, dma_bgrp_dma_data_fifo_rptr, top_di_pre_fetch_cull_enable, top_di_grp_cull_enable_q, bgrp_trigger) \
+ ((bgrp_cull_fetch_fifo_full << VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_full_SHIFT) | \
+ (bgrp_cull_fetch_fifo_empty << VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_empty_SHIFT) | \
+ (dma_bgrp_cull_fetch_read << VGT_DEBUG_REG16_dma_bgrp_cull_fetch_read_SHIFT) | \
+ (bgrp_cull_fetch_fifo_we << VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_we_SHIFT) | \
+ (bgrp_byte_mask_fifo_full << VGT_DEBUG_REG16_bgrp_byte_mask_fifo_full_SHIFT) | \
+ (bgrp_byte_mask_fifo_empty << VGT_DEBUG_REG16_bgrp_byte_mask_fifo_empty_SHIFT) | \
+ (bgrp_byte_mask_fifo_re_q << VGT_DEBUG_REG16_bgrp_byte_mask_fifo_re_q_SHIFT) | \
+ (bgrp_byte_mask_fifo_we << VGT_DEBUG_REG16_bgrp_byte_mask_fifo_we_SHIFT) | \
+ (bgrp_dma_mask_kill << VGT_DEBUG_REG16_bgrp_dma_mask_kill_SHIFT) | \
+ (bgrp_grp_bin_valid << VGT_DEBUG_REG16_bgrp_grp_bin_valid_SHIFT) | \
+ (rst_last_bit << VGT_DEBUG_REG16_rst_last_bit_SHIFT) | \
+ (current_state_q << VGT_DEBUG_REG16_current_state_q_SHIFT) | \
+ (old_state_q << VGT_DEBUG_REG16_old_state_q_SHIFT) | \
+ (old_state_en << VGT_DEBUG_REG16_old_state_en_SHIFT) | \
+ (prev_last_bit_q << VGT_DEBUG_REG16_prev_last_bit_q_SHIFT) | \
+ (dbl_last_bit_q << VGT_DEBUG_REG16_dbl_last_bit_q_SHIFT) | \
+ (last_bit_block_q << VGT_DEBUG_REG16_last_bit_block_q_SHIFT) | \
+ (ast_bit_block2_q << VGT_DEBUG_REG16_ast_bit_block2_q_SHIFT) | \
+ (load_empty_reg << VGT_DEBUG_REG16_load_empty_reg_SHIFT) | \
+ (bgrp_grp_byte_mask_rdata << VGT_DEBUG_REG16_bgrp_grp_byte_mask_rdata_SHIFT) | \
+ (dma_bgrp_dma_data_fifo_rptr << VGT_DEBUG_REG16_dma_bgrp_dma_data_fifo_rptr_SHIFT) | \
+ (top_di_pre_fetch_cull_enable << VGT_DEBUG_REG16_top_di_pre_fetch_cull_enable_SHIFT) | \
+ (top_di_grp_cull_enable_q << VGT_DEBUG_REG16_top_di_grp_cull_enable_q_SHIFT) | \
+ (bgrp_trigger << VGT_DEBUG_REG16_bgrp_trigger_SHIFT))
+
+#define VGT_DEBUG_REG16_GET_bgrp_cull_fetch_fifo_full(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_full_MASK) >> VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_full_SHIFT)
+#define VGT_DEBUG_REG16_GET_bgrp_cull_fetch_fifo_empty(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_empty_MASK) >> VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_empty_SHIFT)
+#define VGT_DEBUG_REG16_GET_dma_bgrp_cull_fetch_read(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_dma_bgrp_cull_fetch_read_MASK) >> VGT_DEBUG_REG16_dma_bgrp_cull_fetch_read_SHIFT)
+#define VGT_DEBUG_REG16_GET_bgrp_cull_fetch_fifo_we(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_we_MASK) >> VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_we_SHIFT)
+#define VGT_DEBUG_REG16_GET_bgrp_byte_mask_fifo_full(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_bgrp_byte_mask_fifo_full_MASK) >> VGT_DEBUG_REG16_bgrp_byte_mask_fifo_full_SHIFT)
+#define VGT_DEBUG_REG16_GET_bgrp_byte_mask_fifo_empty(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_bgrp_byte_mask_fifo_empty_MASK) >> VGT_DEBUG_REG16_bgrp_byte_mask_fifo_empty_SHIFT)
+#define VGT_DEBUG_REG16_GET_bgrp_byte_mask_fifo_re_q(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_bgrp_byte_mask_fifo_re_q_MASK) >> VGT_DEBUG_REG16_bgrp_byte_mask_fifo_re_q_SHIFT)
+#define VGT_DEBUG_REG16_GET_bgrp_byte_mask_fifo_we(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_bgrp_byte_mask_fifo_we_MASK) >> VGT_DEBUG_REG16_bgrp_byte_mask_fifo_we_SHIFT)
+#define VGT_DEBUG_REG16_GET_bgrp_dma_mask_kill(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_bgrp_dma_mask_kill_MASK) >> VGT_DEBUG_REG16_bgrp_dma_mask_kill_SHIFT)
+#define VGT_DEBUG_REG16_GET_bgrp_grp_bin_valid(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_bgrp_grp_bin_valid_MASK) >> VGT_DEBUG_REG16_bgrp_grp_bin_valid_SHIFT)
+#define VGT_DEBUG_REG16_GET_rst_last_bit(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_rst_last_bit_MASK) >> VGT_DEBUG_REG16_rst_last_bit_SHIFT)
+#define VGT_DEBUG_REG16_GET_current_state_q(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_current_state_q_MASK) >> VGT_DEBUG_REG16_current_state_q_SHIFT)
+#define VGT_DEBUG_REG16_GET_old_state_q(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_old_state_q_MASK) >> VGT_DEBUG_REG16_old_state_q_SHIFT)
+#define VGT_DEBUG_REG16_GET_old_state_en(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_old_state_en_MASK) >> VGT_DEBUG_REG16_old_state_en_SHIFT)
+#define VGT_DEBUG_REG16_GET_prev_last_bit_q(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_prev_last_bit_q_MASK) >> VGT_DEBUG_REG16_prev_last_bit_q_SHIFT)
+#define VGT_DEBUG_REG16_GET_dbl_last_bit_q(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_dbl_last_bit_q_MASK) >> VGT_DEBUG_REG16_dbl_last_bit_q_SHIFT)
+#define VGT_DEBUG_REG16_GET_last_bit_block_q(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_last_bit_block_q_MASK) >> VGT_DEBUG_REG16_last_bit_block_q_SHIFT)
+#define VGT_DEBUG_REG16_GET_ast_bit_block2_q(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_ast_bit_block2_q_MASK) >> VGT_DEBUG_REG16_ast_bit_block2_q_SHIFT)
+#define VGT_DEBUG_REG16_GET_load_empty_reg(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_load_empty_reg_MASK) >> VGT_DEBUG_REG16_load_empty_reg_SHIFT)
+#define VGT_DEBUG_REG16_GET_bgrp_grp_byte_mask_rdata(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_bgrp_grp_byte_mask_rdata_MASK) >> VGT_DEBUG_REG16_bgrp_grp_byte_mask_rdata_SHIFT)
+#define VGT_DEBUG_REG16_GET_dma_bgrp_dma_data_fifo_rptr(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_dma_bgrp_dma_data_fifo_rptr_MASK) >> VGT_DEBUG_REG16_dma_bgrp_dma_data_fifo_rptr_SHIFT)
+#define VGT_DEBUG_REG16_GET_top_di_pre_fetch_cull_enable(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_top_di_pre_fetch_cull_enable_MASK) >> VGT_DEBUG_REG16_top_di_pre_fetch_cull_enable_SHIFT)
+#define VGT_DEBUG_REG16_GET_top_di_grp_cull_enable_q(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_top_di_grp_cull_enable_q_MASK) >> VGT_DEBUG_REG16_top_di_grp_cull_enable_q_SHIFT)
+#define VGT_DEBUG_REG16_GET_bgrp_trigger(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_bgrp_trigger_MASK) >> VGT_DEBUG_REG16_bgrp_trigger_SHIFT)
+
+#define VGT_DEBUG_REG16_SET_bgrp_cull_fetch_fifo_full(vgt_debug_reg16_reg, bgrp_cull_fetch_fifo_full) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_full_MASK) | (bgrp_cull_fetch_fifo_full << VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_full_SHIFT)
+#define VGT_DEBUG_REG16_SET_bgrp_cull_fetch_fifo_empty(vgt_debug_reg16_reg, bgrp_cull_fetch_fifo_empty) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_empty_MASK) | (bgrp_cull_fetch_fifo_empty << VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_empty_SHIFT)
+#define VGT_DEBUG_REG16_SET_dma_bgrp_cull_fetch_read(vgt_debug_reg16_reg, dma_bgrp_cull_fetch_read) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_dma_bgrp_cull_fetch_read_MASK) | (dma_bgrp_cull_fetch_read << VGT_DEBUG_REG16_dma_bgrp_cull_fetch_read_SHIFT)
+#define VGT_DEBUG_REG16_SET_bgrp_cull_fetch_fifo_we(vgt_debug_reg16_reg, bgrp_cull_fetch_fifo_we) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_we_MASK) | (bgrp_cull_fetch_fifo_we << VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_we_SHIFT)
+#define VGT_DEBUG_REG16_SET_bgrp_byte_mask_fifo_full(vgt_debug_reg16_reg, bgrp_byte_mask_fifo_full) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_bgrp_byte_mask_fifo_full_MASK) | (bgrp_byte_mask_fifo_full << VGT_DEBUG_REG16_bgrp_byte_mask_fifo_full_SHIFT)
+#define VGT_DEBUG_REG16_SET_bgrp_byte_mask_fifo_empty(vgt_debug_reg16_reg, bgrp_byte_mask_fifo_empty) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_bgrp_byte_mask_fifo_empty_MASK) | (bgrp_byte_mask_fifo_empty << VGT_DEBUG_REG16_bgrp_byte_mask_fifo_empty_SHIFT)
+#define VGT_DEBUG_REG16_SET_bgrp_byte_mask_fifo_re_q(vgt_debug_reg16_reg, bgrp_byte_mask_fifo_re_q) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_bgrp_byte_mask_fifo_re_q_MASK) | (bgrp_byte_mask_fifo_re_q << VGT_DEBUG_REG16_bgrp_byte_mask_fifo_re_q_SHIFT)
+#define VGT_DEBUG_REG16_SET_bgrp_byte_mask_fifo_we(vgt_debug_reg16_reg, bgrp_byte_mask_fifo_we) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_bgrp_byte_mask_fifo_we_MASK) | (bgrp_byte_mask_fifo_we << VGT_DEBUG_REG16_bgrp_byte_mask_fifo_we_SHIFT)
+#define VGT_DEBUG_REG16_SET_bgrp_dma_mask_kill(vgt_debug_reg16_reg, bgrp_dma_mask_kill) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_bgrp_dma_mask_kill_MASK) | (bgrp_dma_mask_kill << VGT_DEBUG_REG16_bgrp_dma_mask_kill_SHIFT)
+#define VGT_DEBUG_REG16_SET_bgrp_grp_bin_valid(vgt_debug_reg16_reg, bgrp_grp_bin_valid) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_bgrp_grp_bin_valid_MASK) | (bgrp_grp_bin_valid << VGT_DEBUG_REG16_bgrp_grp_bin_valid_SHIFT)
+#define VGT_DEBUG_REG16_SET_rst_last_bit(vgt_debug_reg16_reg, rst_last_bit) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_rst_last_bit_MASK) | (rst_last_bit << VGT_DEBUG_REG16_rst_last_bit_SHIFT)
+#define VGT_DEBUG_REG16_SET_current_state_q(vgt_debug_reg16_reg, current_state_q) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_current_state_q_MASK) | (current_state_q << VGT_DEBUG_REG16_current_state_q_SHIFT)
+#define VGT_DEBUG_REG16_SET_old_state_q(vgt_debug_reg16_reg, old_state_q) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_old_state_q_MASK) | (old_state_q << VGT_DEBUG_REG16_old_state_q_SHIFT)
+#define VGT_DEBUG_REG16_SET_old_state_en(vgt_debug_reg16_reg, old_state_en) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_old_state_en_MASK) | (old_state_en << VGT_DEBUG_REG16_old_state_en_SHIFT)
+#define VGT_DEBUG_REG16_SET_prev_last_bit_q(vgt_debug_reg16_reg, prev_last_bit_q) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_prev_last_bit_q_MASK) | (prev_last_bit_q << VGT_DEBUG_REG16_prev_last_bit_q_SHIFT)
+#define VGT_DEBUG_REG16_SET_dbl_last_bit_q(vgt_debug_reg16_reg, dbl_last_bit_q) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_dbl_last_bit_q_MASK) | (dbl_last_bit_q << VGT_DEBUG_REG16_dbl_last_bit_q_SHIFT)
+#define VGT_DEBUG_REG16_SET_last_bit_block_q(vgt_debug_reg16_reg, last_bit_block_q) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_last_bit_block_q_MASK) | (last_bit_block_q << VGT_DEBUG_REG16_last_bit_block_q_SHIFT)
+#define VGT_DEBUG_REG16_SET_ast_bit_block2_q(vgt_debug_reg16_reg, ast_bit_block2_q) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_ast_bit_block2_q_MASK) | (ast_bit_block2_q << VGT_DEBUG_REG16_ast_bit_block2_q_SHIFT)
+#define VGT_DEBUG_REG16_SET_load_empty_reg(vgt_debug_reg16_reg, load_empty_reg) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_load_empty_reg_MASK) | (load_empty_reg << VGT_DEBUG_REG16_load_empty_reg_SHIFT)
+#define VGT_DEBUG_REG16_SET_bgrp_grp_byte_mask_rdata(vgt_debug_reg16_reg, bgrp_grp_byte_mask_rdata) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_bgrp_grp_byte_mask_rdata_MASK) | (bgrp_grp_byte_mask_rdata << VGT_DEBUG_REG16_bgrp_grp_byte_mask_rdata_SHIFT)
+#define VGT_DEBUG_REG16_SET_dma_bgrp_dma_data_fifo_rptr(vgt_debug_reg16_reg, dma_bgrp_dma_data_fifo_rptr) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_dma_bgrp_dma_data_fifo_rptr_MASK) | (dma_bgrp_dma_data_fifo_rptr << VGT_DEBUG_REG16_dma_bgrp_dma_data_fifo_rptr_SHIFT)
+#define VGT_DEBUG_REG16_SET_top_di_pre_fetch_cull_enable(vgt_debug_reg16_reg, top_di_pre_fetch_cull_enable) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_top_di_pre_fetch_cull_enable_MASK) | (top_di_pre_fetch_cull_enable << VGT_DEBUG_REG16_top_di_pre_fetch_cull_enable_SHIFT)
+#define VGT_DEBUG_REG16_SET_top_di_grp_cull_enable_q(vgt_debug_reg16_reg, top_di_grp_cull_enable_q) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_top_di_grp_cull_enable_q_MASK) | (top_di_grp_cull_enable_q << VGT_DEBUG_REG16_top_di_grp_cull_enable_q_SHIFT)
+#define VGT_DEBUG_REG16_SET_bgrp_trigger(vgt_debug_reg16_reg, bgrp_trigger) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_bgrp_trigger_MASK) | (bgrp_trigger << VGT_DEBUG_REG16_bgrp_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg16_t {
+ unsigned int bgrp_cull_fetch_fifo_full : VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_full_SIZE;
+ unsigned int bgrp_cull_fetch_fifo_empty : VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_empty_SIZE;
+ unsigned int dma_bgrp_cull_fetch_read : VGT_DEBUG_REG16_dma_bgrp_cull_fetch_read_SIZE;
+ unsigned int bgrp_cull_fetch_fifo_we : VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_we_SIZE;
+ unsigned int bgrp_byte_mask_fifo_full : VGT_DEBUG_REG16_bgrp_byte_mask_fifo_full_SIZE;
+ unsigned int bgrp_byte_mask_fifo_empty : VGT_DEBUG_REG16_bgrp_byte_mask_fifo_empty_SIZE;
+ unsigned int bgrp_byte_mask_fifo_re_q : VGT_DEBUG_REG16_bgrp_byte_mask_fifo_re_q_SIZE;
+ unsigned int bgrp_byte_mask_fifo_we : VGT_DEBUG_REG16_bgrp_byte_mask_fifo_we_SIZE;
+ unsigned int bgrp_dma_mask_kill : VGT_DEBUG_REG16_bgrp_dma_mask_kill_SIZE;
+ unsigned int bgrp_grp_bin_valid : VGT_DEBUG_REG16_bgrp_grp_bin_valid_SIZE;
+ unsigned int rst_last_bit : VGT_DEBUG_REG16_rst_last_bit_SIZE;
+ unsigned int current_state_q : VGT_DEBUG_REG16_current_state_q_SIZE;
+ unsigned int old_state_q : VGT_DEBUG_REG16_old_state_q_SIZE;
+ unsigned int old_state_en : VGT_DEBUG_REG16_old_state_en_SIZE;
+ unsigned int prev_last_bit_q : VGT_DEBUG_REG16_prev_last_bit_q_SIZE;
+ unsigned int dbl_last_bit_q : VGT_DEBUG_REG16_dbl_last_bit_q_SIZE;
+ unsigned int last_bit_block_q : VGT_DEBUG_REG16_last_bit_block_q_SIZE;
+ unsigned int ast_bit_block2_q : VGT_DEBUG_REG16_ast_bit_block2_q_SIZE;
+ unsigned int load_empty_reg : VGT_DEBUG_REG16_load_empty_reg_SIZE;
+ unsigned int bgrp_grp_byte_mask_rdata : VGT_DEBUG_REG16_bgrp_grp_byte_mask_rdata_SIZE;
+ unsigned int dma_bgrp_dma_data_fifo_rptr : VGT_DEBUG_REG16_dma_bgrp_dma_data_fifo_rptr_SIZE;
+ unsigned int top_di_pre_fetch_cull_enable : VGT_DEBUG_REG16_top_di_pre_fetch_cull_enable_SIZE;
+ unsigned int top_di_grp_cull_enable_q : VGT_DEBUG_REG16_top_di_grp_cull_enable_q_SIZE;
+ unsigned int bgrp_trigger : VGT_DEBUG_REG16_bgrp_trigger_SIZE;
+ } vgt_debug_reg16_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg16_t {
+ unsigned int bgrp_trigger : VGT_DEBUG_REG16_bgrp_trigger_SIZE;
+ unsigned int top_di_grp_cull_enable_q : VGT_DEBUG_REG16_top_di_grp_cull_enable_q_SIZE;
+ unsigned int top_di_pre_fetch_cull_enable : VGT_DEBUG_REG16_top_di_pre_fetch_cull_enable_SIZE;
+ unsigned int dma_bgrp_dma_data_fifo_rptr : VGT_DEBUG_REG16_dma_bgrp_dma_data_fifo_rptr_SIZE;
+ unsigned int bgrp_grp_byte_mask_rdata : VGT_DEBUG_REG16_bgrp_grp_byte_mask_rdata_SIZE;
+ unsigned int load_empty_reg : VGT_DEBUG_REG16_load_empty_reg_SIZE;
+ unsigned int ast_bit_block2_q : VGT_DEBUG_REG16_ast_bit_block2_q_SIZE;
+ unsigned int last_bit_block_q : VGT_DEBUG_REG16_last_bit_block_q_SIZE;
+ unsigned int dbl_last_bit_q : VGT_DEBUG_REG16_dbl_last_bit_q_SIZE;
+ unsigned int prev_last_bit_q : VGT_DEBUG_REG16_prev_last_bit_q_SIZE;
+ unsigned int old_state_en : VGT_DEBUG_REG16_old_state_en_SIZE;
+ unsigned int old_state_q : VGT_DEBUG_REG16_old_state_q_SIZE;
+ unsigned int current_state_q : VGT_DEBUG_REG16_current_state_q_SIZE;
+ unsigned int rst_last_bit : VGT_DEBUG_REG16_rst_last_bit_SIZE;
+ unsigned int bgrp_grp_bin_valid : VGT_DEBUG_REG16_bgrp_grp_bin_valid_SIZE;
+ unsigned int bgrp_dma_mask_kill : VGT_DEBUG_REG16_bgrp_dma_mask_kill_SIZE;
+ unsigned int bgrp_byte_mask_fifo_we : VGT_DEBUG_REG16_bgrp_byte_mask_fifo_we_SIZE;
+ unsigned int bgrp_byte_mask_fifo_re_q : VGT_DEBUG_REG16_bgrp_byte_mask_fifo_re_q_SIZE;
+ unsigned int bgrp_byte_mask_fifo_empty : VGT_DEBUG_REG16_bgrp_byte_mask_fifo_empty_SIZE;
+ unsigned int bgrp_byte_mask_fifo_full : VGT_DEBUG_REG16_bgrp_byte_mask_fifo_full_SIZE;
+ unsigned int bgrp_cull_fetch_fifo_we : VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_we_SIZE;
+ unsigned int dma_bgrp_cull_fetch_read : VGT_DEBUG_REG16_dma_bgrp_cull_fetch_read_SIZE;
+ unsigned int bgrp_cull_fetch_fifo_empty : VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_empty_SIZE;
+ unsigned int bgrp_cull_fetch_fifo_full : VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_full_SIZE;
+ } vgt_debug_reg16_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_reg16_t f;
+} vgt_debug_reg16_u;
+
+
+/*
+ * VGT_DEBUG_REG17 struct
+ */
+
+#define VGT_DEBUG_REG17_save_read_q_SIZE 1
+#define VGT_DEBUG_REG17_extend_read_q_SIZE 1
+#define VGT_DEBUG_REG17_grp_indx_size_SIZE 2
+#define VGT_DEBUG_REG17_cull_prim_true_SIZE 1
+#define VGT_DEBUG_REG17_reset_bit2_q_SIZE 1
+#define VGT_DEBUG_REG17_reset_bit1_q_SIZE 1
+#define VGT_DEBUG_REG17_first_reg_first_q_SIZE 1
+#define VGT_DEBUG_REG17_check_second_reg_SIZE 1
+#define VGT_DEBUG_REG17_check_first_reg_SIZE 1
+#define VGT_DEBUG_REG17_bgrp_cull_fetch_fifo_wdata_SIZE 1
+#define VGT_DEBUG_REG17_save_cull_fetch_data2_q_SIZE 1
+#define VGT_DEBUG_REG17_save_cull_fetch_data1_q_SIZE 1
+#define VGT_DEBUG_REG17_save_byte_mask_data2_q_SIZE 1
+#define VGT_DEBUG_REG17_save_byte_mask_data1_q_SIZE 1
+#define VGT_DEBUG_REG17_to_second_reg_q_SIZE 1
+#define VGT_DEBUG_REG17_roll_over_msk_q_SIZE 1
+#define VGT_DEBUG_REG17_max_msk_ptr_q_SIZE 7
+#define VGT_DEBUG_REG17_min_msk_ptr_q_SIZE 7
+#define VGT_DEBUG_REG17_bgrp_trigger_SIZE 1
+
+#define VGT_DEBUG_REG17_save_read_q_SHIFT 0
+#define VGT_DEBUG_REG17_extend_read_q_SHIFT 1
+#define VGT_DEBUG_REG17_grp_indx_size_SHIFT 2
+#define VGT_DEBUG_REG17_cull_prim_true_SHIFT 4
+#define VGT_DEBUG_REG17_reset_bit2_q_SHIFT 5
+#define VGT_DEBUG_REG17_reset_bit1_q_SHIFT 6
+#define VGT_DEBUG_REG17_first_reg_first_q_SHIFT 7
+#define VGT_DEBUG_REG17_check_second_reg_SHIFT 8
+#define VGT_DEBUG_REG17_check_first_reg_SHIFT 9
+#define VGT_DEBUG_REG17_bgrp_cull_fetch_fifo_wdata_SHIFT 10
+#define VGT_DEBUG_REG17_save_cull_fetch_data2_q_SHIFT 11
+#define VGT_DEBUG_REG17_save_cull_fetch_data1_q_SHIFT 12
+#define VGT_DEBUG_REG17_save_byte_mask_data2_q_SHIFT 13
+#define VGT_DEBUG_REG17_save_byte_mask_data1_q_SHIFT 14
+#define VGT_DEBUG_REG17_to_second_reg_q_SHIFT 15
+#define VGT_DEBUG_REG17_roll_over_msk_q_SHIFT 16
+#define VGT_DEBUG_REG17_max_msk_ptr_q_SHIFT 17
+#define VGT_DEBUG_REG17_min_msk_ptr_q_SHIFT 24
+#define VGT_DEBUG_REG17_bgrp_trigger_SHIFT 31
+
+#define VGT_DEBUG_REG17_save_read_q_MASK 0x00000001
+#define VGT_DEBUG_REG17_extend_read_q_MASK 0x00000002
+#define VGT_DEBUG_REG17_grp_indx_size_MASK 0x0000000c
+#define VGT_DEBUG_REG17_cull_prim_true_MASK 0x00000010
+#define VGT_DEBUG_REG17_reset_bit2_q_MASK 0x00000020
+#define VGT_DEBUG_REG17_reset_bit1_q_MASK 0x00000040
+#define VGT_DEBUG_REG17_first_reg_first_q_MASK 0x00000080
+#define VGT_DEBUG_REG17_check_second_reg_MASK 0x00000100
+#define VGT_DEBUG_REG17_check_first_reg_MASK 0x00000200
+#define VGT_DEBUG_REG17_bgrp_cull_fetch_fifo_wdata_MASK 0x00000400
+#define VGT_DEBUG_REG17_save_cull_fetch_data2_q_MASK 0x00000800
+#define VGT_DEBUG_REG17_save_cull_fetch_data1_q_MASK 0x00001000
+#define VGT_DEBUG_REG17_save_byte_mask_data2_q_MASK 0x00002000
+#define VGT_DEBUG_REG17_save_byte_mask_data1_q_MASK 0x00004000
+#define VGT_DEBUG_REG17_to_second_reg_q_MASK 0x00008000
+#define VGT_DEBUG_REG17_roll_over_msk_q_MASK 0x00010000
+#define VGT_DEBUG_REG17_max_msk_ptr_q_MASK 0x00fe0000
+#define VGT_DEBUG_REG17_min_msk_ptr_q_MASK 0x7f000000
+#define VGT_DEBUG_REG17_bgrp_trigger_MASK 0x80000000
+
+#define VGT_DEBUG_REG17_MASK \
+ (VGT_DEBUG_REG17_save_read_q_MASK | \
+ VGT_DEBUG_REG17_extend_read_q_MASK | \
+ VGT_DEBUG_REG17_grp_indx_size_MASK | \
+ VGT_DEBUG_REG17_cull_prim_true_MASK | \
+ VGT_DEBUG_REG17_reset_bit2_q_MASK | \
+ VGT_DEBUG_REG17_reset_bit1_q_MASK | \
+ VGT_DEBUG_REG17_first_reg_first_q_MASK | \
+ VGT_DEBUG_REG17_check_second_reg_MASK | \
+ VGT_DEBUG_REG17_check_first_reg_MASK | \
+ VGT_DEBUG_REG17_bgrp_cull_fetch_fifo_wdata_MASK | \
+ VGT_DEBUG_REG17_save_cull_fetch_data2_q_MASK | \
+ VGT_DEBUG_REG17_save_cull_fetch_data1_q_MASK | \
+ VGT_DEBUG_REG17_save_byte_mask_data2_q_MASK | \
+ VGT_DEBUG_REG17_save_byte_mask_data1_q_MASK | \
+ VGT_DEBUG_REG17_to_second_reg_q_MASK | \
+ VGT_DEBUG_REG17_roll_over_msk_q_MASK | \
+ VGT_DEBUG_REG17_max_msk_ptr_q_MASK | \
+ VGT_DEBUG_REG17_min_msk_ptr_q_MASK | \
+ VGT_DEBUG_REG17_bgrp_trigger_MASK)
+
+#define VGT_DEBUG_REG17(save_read_q, extend_read_q, grp_indx_size, cull_prim_true, reset_bit2_q, reset_bit1_q, first_reg_first_q, check_second_reg, check_first_reg, bgrp_cull_fetch_fifo_wdata, save_cull_fetch_data2_q, save_cull_fetch_data1_q, save_byte_mask_data2_q, save_byte_mask_data1_q, to_second_reg_q, roll_over_msk_q, max_msk_ptr_q, min_msk_ptr_q, bgrp_trigger) \
+ ((save_read_q << VGT_DEBUG_REG17_save_read_q_SHIFT) | \
+ (extend_read_q << VGT_DEBUG_REG17_extend_read_q_SHIFT) | \
+ (grp_indx_size << VGT_DEBUG_REG17_grp_indx_size_SHIFT) | \
+ (cull_prim_true << VGT_DEBUG_REG17_cull_prim_true_SHIFT) | \
+ (reset_bit2_q << VGT_DEBUG_REG17_reset_bit2_q_SHIFT) | \
+ (reset_bit1_q << VGT_DEBUG_REG17_reset_bit1_q_SHIFT) | \
+ (first_reg_first_q << VGT_DEBUG_REG17_first_reg_first_q_SHIFT) | \
+ (check_second_reg << VGT_DEBUG_REG17_check_second_reg_SHIFT) | \
+ (check_first_reg << VGT_DEBUG_REG17_check_first_reg_SHIFT) | \
+ (bgrp_cull_fetch_fifo_wdata << VGT_DEBUG_REG17_bgrp_cull_fetch_fifo_wdata_SHIFT) | \
+ (save_cull_fetch_data2_q << VGT_DEBUG_REG17_save_cull_fetch_data2_q_SHIFT) | \
+ (save_cull_fetch_data1_q << VGT_DEBUG_REG17_save_cull_fetch_data1_q_SHIFT) | \
+ (save_byte_mask_data2_q << VGT_DEBUG_REG17_save_byte_mask_data2_q_SHIFT) | \
+ (save_byte_mask_data1_q << VGT_DEBUG_REG17_save_byte_mask_data1_q_SHIFT) | \
+ (to_second_reg_q << VGT_DEBUG_REG17_to_second_reg_q_SHIFT) | \
+ (roll_over_msk_q << VGT_DEBUG_REG17_roll_over_msk_q_SHIFT) | \
+ (max_msk_ptr_q << VGT_DEBUG_REG17_max_msk_ptr_q_SHIFT) | \
+ (min_msk_ptr_q << VGT_DEBUG_REG17_min_msk_ptr_q_SHIFT) | \
+ (bgrp_trigger << VGT_DEBUG_REG17_bgrp_trigger_SHIFT))
+
+#define VGT_DEBUG_REG17_GET_save_read_q(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_save_read_q_MASK) >> VGT_DEBUG_REG17_save_read_q_SHIFT)
+#define VGT_DEBUG_REG17_GET_extend_read_q(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_extend_read_q_MASK) >> VGT_DEBUG_REG17_extend_read_q_SHIFT)
+#define VGT_DEBUG_REG17_GET_grp_indx_size(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_grp_indx_size_MASK) >> VGT_DEBUG_REG17_grp_indx_size_SHIFT)
+#define VGT_DEBUG_REG17_GET_cull_prim_true(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_cull_prim_true_MASK) >> VGT_DEBUG_REG17_cull_prim_true_SHIFT)
+#define VGT_DEBUG_REG17_GET_reset_bit2_q(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_reset_bit2_q_MASK) >> VGT_DEBUG_REG17_reset_bit2_q_SHIFT)
+#define VGT_DEBUG_REG17_GET_reset_bit1_q(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_reset_bit1_q_MASK) >> VGT_DEBUG_REG17_reset_bit1_q_SHIFT)
+#define VGT_DEBUG_REG17_GET_first_reg_first_q(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_first_reg_first_q_MASK) >> VGT_DEBUG_REG17_first_reg_first_q_SHIFT)
+#define VGT_DEBUG_REG17_GET_check_second_reg(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_check_second_reg_MASK) >> VGT_DEBUG_REG17_check_second_reg_SHIFT)
+#define VGT_DEBUG_REG17_GET_check_first_reg(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_check_first_reg_MASK) >> VGT_DEBUG_REG17_check_first_reg_SHIFT)
+#define VGT_DEBUG_REG17_GET_bgrp_cull_fetch_fifo_wdata(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_bgrp_cull_fetch_fifo_wdata_MASK) >> VGT_DEBUG_REG17_bgrp_cull_fetch_fifo_wdata_SHIFT)
+#define VGT_DEBUG_REG17_GET_save_cull_fetch_data2_q(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_save_cull_fetch_data2_q_MASK) >> VGT_DEBUG_REG17_save_cull_fetch_data2_q_SHIFT)
+#define VGT_DEBUG_REG17_GET_save_cull_fetch_data1_q(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_save_cull_fetch_data1_q_MASK) >> VGT_DEBUG_REG17_save_cull_fetch_data1_q_SHIFT)
+#define VGT_DEBUG_REG17_GET_save_byte_mask_data2_q(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_save_byte_mask_data2_q_MASK) >> VGT_DEBUG_REG17_save_byte_mask_data2_q_SHIFT)
+#define VGT_DEBUG_REG17_GET_save_byte_mask_data1_q(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_save_byte_mask_data1_q_MASK) >> VGT_DEBUG_REG17_save_byte_mask_data1_q_SHIFT)
+#define VGT_DEBUG_REG17_GET_to_second_reg_q(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_to_second_reg_q_MASK) >> VGT_DEBUG_REG17_to_second_reg_q_SHIFT)
+#define VGT_DEBUG_REG17_GET_roll_over_msk_q(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_roll_over_msk_q_MASK) >> VGT_DEBUG_REG17_roll_over_msk_q_SHIFT)
+#define VGT_DEBUG_REG17_GET_max_msk_ptr_q(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_max_msk_ptr_q_MASK) >> VGT_DEBUG_REG17_max_msk_ptr_q_SHIFT)
+#define VGT_DEBUG_REG17_GET_min_msk_ptr_q(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_min_msk_ptr_q_MASK) >> VGT_DEBUG_REG17_min_msk_ptr_q_SHIFT)
+#define VGT_DEBUG_REG17_GET_bgrp_trigger(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_bgrp_trigger_MASK) >> VGT_DEBUG_REG17_bgrp_trigger_SHIFT)
+
+#define VGT_DEBUG_REG17_SET_save_read_q(vgt_debug_reg17_reg, save_read_q) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_save_read_q_MASK) | (save_read_q << VGT_DEBUG_REG17_save_read_q_SHIFT)
+#define VGT_DEBUG_REG17_SET_extend_read_q(vgt_debug_reg17_reg, extend_read_q) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_extend_read_q_MASK) | (extend_read_q << VGT_DEBUG_REG17_extend_read_q_SHIFT)
+#define VGT_DEBUG_REG17_SET_grp_indx_size(vgt_debug_reg17_reg, grp_indx_size) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_grp_indx_size_MASK) | (grp_indx_size << VGT_DEBUG_REG17_grp_indx_size_SHIFT)
+#define VGT_DEBUG_REG17_SET_cull_prim_true(vgt_debug_reg17_reg, cull_prim_true) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_cull_prim_true_MASK) | (cull_prim_true << VGT_DEBUG_REG17_cull_prim_true_SHIFT)
+#define VGT_DEBUG_REG17_SET_reset_bit2_q(vgt_debug_reg17_reg, reset_bit2_q) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_reset_bit2_q_MASK) | (reset_bit2_q << VGT_DEBUG_REG17_reset_bit2_q_SHIFT)
+#define VGT_DEBUG_REG17_SET_reset_bit1_q(vgt_debug_reg17_reg, reset_bit1_q) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_reset_bit1_q_MASK) | (reset_bit1_q << VGT_DEBUG_REG17_reset_bit1_q_SHIFT)
+#define VGT_DEBUG_REG17_SET_first_reg_first_q(vgt_debug_reg17_reg, first_reg_first_q) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_first_reg_first_q_MASK) | (first_reg_first_q << VGT_DEBUG_REG17_first_reg_first_q_SHIFT)
+#define VGT_DEBUG_REG17_SET_check_second_reg(vgt_debug_reg17_reg, check_second_reg) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_check_second_reg_MASK) | (check_second_reg << VGT_DEBUG_REG17_check_second_reg_SHIFT)
+#define VGT_DEBUG_REG17_SET_check_first_reg(vgt_debug_reg17_reg, check_first_reg) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_check_first_reg_MASK) | (check_first_reg << VGT_DEBUG_REG17_check_first_reg_SHIFT)
+#define VGT_DEBUG_REG17_SET_bgrp_cull_fetch_fifo_wdata(vgt_debug_reg17_reg, bgrp_cull_fetch_fifo_wdata) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_bgrp_cull_fetch_fifo_wdata_MASK) | (bgrp_cull_fetch_fifo_wdata << VGT_DEBUG_REG17_bgrp_cull_fetch_fifo_wdata_SHIFT)
+#define VGT_DEBUG_REG17_SET_save_cull_fetch_data2_q(vgt_debug_reg17_reg, save_cull_fetch_data2_q) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_save_cull_fetch_data2_q_MASK) | (save_cull_fetch_data2_q << VGT_DEBUG_REG17_save_cull_fetch_data2_q_SHIFT)
+#define VGT_DEBUG_REG17_SET_save_cull_fetch_data1_q(vgt_debug_reg17_reg, save_cull_fetch_data1_q) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_save_cull_fetch_data1_q_MASK) | (save_cull_fetch_data1_q << VGT_DEBUG_REG17_save_cull_fetch_data1_q_SHIFT)
+#define VGT_DEBUG_REG17_SET_save_byte_mask_data2_q(vgt_debug_reg17_reg, save_byte_mask_data2_q) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_save_byte_mask_data2_q_MASK) | (save_byte_mask_data2_q << VGT_DEBUG_REG17_save_byte_mask_data2_q_SHIFT)
+#define VGT_DEBUG_REG17_SET_save_byte_mask_data1_q(vgt_debug_reg17_reg, save_byte_mask_data1_q) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_save_byte_mask_data1_q_MASK) | (save_byte_mask_data1_q << VGT_DEBUG_REG17_save_byte_mask_data1_q_SHIFT)
+#define VGT_DEBUG_REG17_SET_to_second_reg_q(vgt_debug_reg17_reg, to_second_reg_q) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_to_second_reg_q_MASK) | (to_second_reg_q << VGT_DEBUG_REG17_to_second_reg_q_SHIFT)
+#define VGT_DEBUG_REG17_SET_roll_over_msk_q(vgt_debug_reg17_reg, roll_over_msk_q) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_roll_over_msk_q_MASK) | (roll_over_msk_q << VGT_DEBUG_REG17_roll_over_msk_q_SHIFT)
+#define VGT_DEBUG_REG17_SET_max_msk_ptr_q(vgt_debug_reg17_reg, max_msk_ptr_q) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_max_msk_ptr_q_MASK) | (max_msk_ptr_q << VGT_DEBUG_REG17_max_msk_ptr_q_SHIFT)
+#define VGT_DEBUG_REG17_SET_min_msk_ptr_q(vgt_debug_reg17_reg, min_msk_ptr_q) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_min_msk_ptr_q_MASK) | (min_msk_ptr_q << VGT_DEBUG_REG17_min_msk_ptr_q_SHIFT)
+#define VGT_DEBUG_REG17_SET_bgrp_trigger(vgt_debug_reg17_reg, bgrp_trigger) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_bgrp_trigger_MASK) | (bgrp_trigger << VGT_DEBUG_REG17_bgrp_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg17_t {
+ unsigned int save_read_q : VGT_DEBUG_REG17_save_read_q_SIZE;
+ unsigned int extend_read_q : VGT_DEBUG_REG17_extend_read_q_SIZE;
+ unsigned int grp_indx_size : VGT_DEBUG_REG17_grp_indx_size_SIZE;
+ unsigned int cull_prim_true : VGT_DEBUG_REG17_cull_prim_true_SIZE;
+ unsigned int reset_bit2_q : VGT_DEBUG_REG17_reset_bit2_q_SIZE;
+ unsigned int reset_bit1_q : VGT_DEBUG_REG17_reset_bit1_q_SIZE;
+ unsigned int first_reg_first_q : VGT_DEBUG_REG17_first_reg_first_q_SIZE;
+ unsigned int check_second_reg : VGT_DEBUG_REG17_check_second_reg_SIZE;
+ unsigned int check_first_reg : VGT_DEBUG_REG17_check_first_reg_SIZE;
+ unsigned int bgrp_cull_fetch_fifo_wdata : VGT_DEBUG_REG17_bgrp_cull_fetch_fifo_wdata_SIZE;
+ unsigned int save_cull_fetch_data2_q : VGT_DEBUG_REG17_save_cull_fetch_data2_q_SIZE;
+ unsigned int save_cull_fetch_data1_q : VGT_DEBUG_REG17_save_cull_fetch_data1_q_SIZE;
+ unsigned int save_byte_mask_data2_q : VGT_DEBUG_REG17_save_byte_mask_data2_q_SIZE;
+ unsigned int save_byte_mask_data1_q : VGT_DEBUG_REG17_save_byte_mask_data1_q_SIZE;
+ unsigned int to_second_reg_q : VGT_DEBUG_REG17_to_second_reg_q_SIZE;
+ unsigned int roll_over_msk_q : VGT_DEBUG_REG17_roll_over_msk_q_SIZE;
+ unsigned int max_msk_ptr_q : VGT_DEBUG_REG17_max_msk_ptr_q_SIZE;
+ unsigned int min_msk_ptr_q : VGT_DEBUG_REG17_min_msk_ptr_q_SIZE;
+ unsigned int bgrp_trigger : VGT_DEBUG_REG17_bgrp_trigger_SIZE;
+ } vgt_debug_reg17_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg17_t {
+ unsigned int bgrp_trigger : VGT_DEBUG_REG17_bgrp_trigger_SIZE;
+ unsigned int min_msk_ptr_q : VGT_DEBUG_REG17_min_msk_ptr_q_SIZE;
+ unsigned int max_msk_ptr_q : VGT_DEBUG_REG17_max_msk_ptr_q_SIZE;
+ unsigned int roll_over_msk_q : VGT_DEBUG_REG17_roll_over_msk_q_SIZE;
+ unsigned int to_second_reg_q : VGT_DEBUG_REG17_to_second_reg_q_SIZE;
+ unsigned int save_byte_mask_data1_q : VGT_DEBUG_REG17_save_byte_mask_data1_q_SIZE;
+ unsigned int save_byte_mask_data2_q : VGT_DEBUG_REG17_save_byte_mask_data2_q_SIZE;
+ unsigned int save_cull_fetch_data1_q : VGT_DEBUG_REG17_save_cull_fetch_data1_q_SIZE;
+ unsigned int save_cull_fetch_data2_q : VGT_DEBUG_REG17_save_cull_fetch_data2_q_SIZE;
+ unsigned int bgrp_cull_fetch_fifo_wdata : VGT_DEBUG_REG17_bgrp_cull_fetch_fifo_wdata_SIZE;
+ unsigned int check_first_reg : VGT_DEBUG_REG17_check_first_reg_SIZE;
+ unsigned int check_second_reg : VGT_DEBUG_REG17_check_second_reg_SIZE;
+ unsigned int first_reg_first_q : VGT_DEBUG_REG17_first_reg_first_q_SIZE;
+ unsigned int reset_bit1_q : VGT_DEBUG_REG17_reset_bit1_q_SIZE;
+ unsigned int reset_bit2_q : VGT_DEBUG_REG17_reset_bit2_q_SIZE;
+ unsigned int cull_prim_true : VGT_DEBUG_REG17_cull_prim_true_SIZE;
+ unsigned int grp_indx_size : VGT_DEBUG_REG17_grp_indx_size_SIZE;
+ unsigned int extend_read_q : VGT_DEBUG_REG17_extend_read_q_SIZE;
+ unsigned int save_read_q : VGT_DEBUG_REG17_save_read_q_SIZE;
+ } vgt_debug_reg17_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_reg17_t f;
+} vgt_debug_reg17_u;
+
+
+/*
+ * VGT_DEBUG_REG18 struct
+ */
+
+#define VGT_DEBUG_REG18_dma_data_fifo_mem_raddr_SIZE 6
+#define VGT_DEBUG_REG18_dma_data_fifo_mem_waddr_SIZE 6
+#define VGT_DEBUG_REG18_dma_bgrp_byte_mask_fifo_re_SIZE 1
+#define VGT_DEBUG_REG18_dma_bgrp_dma_data_fifo_rptr_SIZE 2
+#define VGT_DEBUG_REG18_dma_mem_full_SIZE 1
+#define VGT_DEBUG_REG18_dma_ram_re_SIZE 1
+#define VGT_DEBUG_REG18_dma_ram_we_SIZE 1
+#define VGT_DEBUG_REG18_dma_mem_empty_SIZE 1
+#define VGT_DEBUG_REG18_dma_data_fifo_mem_re_SIZE 1
+#define VGT_DEBUG_REG18_dma_data_fifo_mem_we_SIZE 1
+#define VGT_DEBUG_REG18_bin_mem_full_SIZE 1
+#define VGT_DEBUG_REG18_bin_ram_we_SIZE 1
+#define VGT_DEBUG_REG18_bin_ram_re_SIZE 1
+#define VGT_DEBUG_REG18_bin_mem_empty_SIZE 1
+#define VGT_DEBUG_REG18_start_bin_req_SIZE 1
+#define VGT_DEBUG_REG18_fetch_cull_not_used_SIZE 1
+#define VGT_DEBUG_REG18_dma_req_xfer_SIZE 1
+#define VGT_DEBUG_REG18_have_valid_bin_req_SIZE 1
+#define VGT_DEBUG_REG18_have_valid_dma_req_SIZE 1
+#define VGT_DEBUG_REG18_bgrp_dma_di_grp_cull_enable_SIZE 1
+#define VGT_DEBUG_REG18_bgrp_dma_di_pre_fetch_cull_enable_SIZE 1
+
+#define VGT_DEBUG_REG18_dma_data_fifo_mem_raddr_SHIFT 0
+#define VGT_DEBUG_REG18_dma_data_fifo_mem_waddr_SHIFT 6
+#define VGT_DEBUG_REG18_dma_bgrp_byte_mask_fifo_re_SHIFT 12
+#define VGT_DEBUG_REG18_dma_bgrp_dma_data_fifo_rptr_SHIFT 13
+#define VGT_DEBUG_REG18_dma_mem_full_SHIFT 15
+#define VGT_DEBUG_REG18_dma_ram_re_SHIFT 16
+#define VGT_DEBUG_REG18_dma_ram_we_SHIFT 17
+#define VGT_DEBUG_REG18_dma_mem_empty_SHIFT 18
+#define VGT_DEBUG_REG18_dma_data_fifo_mem_re_SHIFT 19
+#define VGT_DEBUG_REG18_dma_data_fifo_mem_we_SHIFT 20
+#define VGT_DEBUG_REG18_bin_mem_full_SHIFT 21
+#define VGT_DEBUG_REG18_bin_ram_we_SHIFT 22
+#define VGT_DEBUG_REG18_bin_ram_re_SHIFT 23
+#define VGT_DEBUG_REG18_bin_mem_empty_SHIFT 24
+#define VGT_DEBUG_REG18_start_bin_req_SHIFT 25
+#define VGT_DEBUG_REG18_fetch_cull_not_used_SHIFT 26
+#define VGT_DEBUG_REG18_dma_req_xfer_SHIFT 27
+#define VGT_DEBUG_REG18_have_valid_bin_req_SHIFT 28
+#define VGT_DEBUG_REG18_have_valid_dma_req_SHIFT 29
+#define VGT_DEBUG_REG18_bgrp_dma_di_grp_cull_enable_SHIFT 30
+#define VGT_DEBUG_REG18_bgrp_dma_di_pre_fetch_cull_enable_SHIFT 31
+
+#define VGT_DEBUG_REG18_dma_data_fifo_mem_raddr_MASK 0x0000003f
+#define VGT_DEBUG_REG18_dma_data_fifo_mem_waddr_MASK 0x00000fc0
+#define VGT_DEBUG_REG18_dma_bgrp_byte_mask_fifo_re_MASK 0x00001000
+#define VGT_DEBUG_REG18_dma_bgrp_dma_data_fifo_rptr_MASK 0x00006000
+#define VGT_DEBUG_REG18_dma_mem_full_MASK 0x00008000
+#define VGT_DEBUG_REG18_dma_ram_re_MASK 0x00010000
+#define VGT_DEBUG_REG18_dma_ram_we_MASK 0x00020000
+#define VGT_DEBUG_REG18_dma_mem_empty_MASK 0x00040000
+#define VGT_DEBUG_REG18_dma_data_fifo_mem_re_MASK 0x00080000
+#define VGT_DEBUG_REG18_dma_data_fifo_mem_we_MASK 0x00100000
+#define VGT_DEBUG_REG18_bin_mem_full_MASK 0x00200000
+#define VGT_DEBUG_REG18_bin_ram_we_MASK 0x00400000
+#define VGT_DEBUG_REG18_bin_ram_re_MASK 0x00800000
+#define VGT_DEBUG_REG18_bin_mem_empty_MASK 0x01000000
+#define VGT_DEBUG_REG18_start_bin_req_MASK 0x02000000
+#define VGT_DEBUG_REG18_fetch_cull_not_used_MASK 0x04000000
+#define VGT_DEBUG_REG18_dma_req_xfer_MASK 0x08000000
+#define VGT_DEBUG_REG18_have_valid_bin_req_MASK 0x10000000
+#define VGT_DEBUG_REG18_have_valid_dma_req_MASK 0x20000000
+#define VGT_DEBUG_REG18_bgrp_dma_di_grp_cull_enable_MASK 0x40000000
+#define VGT_DEBUG_REG18_bgrp_dma_di_pre_fetch_cull_enable_MASK 0x80000000
+
+#define VGT_DEBUG_REG18_MASK \
+ (VGT_DEBUG_REG18_dma_data_fifo_mem_raddr_MASK | \
+ VGT_DEBUG_REG18_dma_data_fifo_mem_waddr_MASK | \
+ VGT_DEBUG_REG18_dma_bgrp_byte_mask_fifo_re_MASK | \
+ VGT_DEBUG_REG18_dma_bgrp_dma_data_fifo_rptr_MASK | \
+ VGT_DEBUG_REG18_dma_mem_full_MASK | \
+ VGT_DEBUG_REG18_dma_ram_re_MASK | \
+ VGT_DEBUG_REG18_dma_ram_we_MASK | \
+ VGT_DEBUG_REG18_dma_mem_empty_MASK | \
+ VGT_DEBUG_REG18_dma_data_fifo_mem_re_MASK | \
+ VGT_DEBUG_REG18_dma_data_fifo_mem_we_MASK | \
+ VGT_DEBUG_REG18_bin_mem_full_MASK | \
+ VGT_DEBUG_REG18_bin_ram_we_MASK | \
+ VGT_DEBUG_REG18_bin_ram_re_MASK | \
+ VGT_DEBUG_REG18_bin_mem_empty_MASK | \
+ VGT_DEBUG_REG18_start_bin_req_MASK | \
+ VGT_DEBUG_REG18_fetch_cull_not_used_MASK | \
+ VGT_DEBUG_REG18_dma_req_xfer_MASK | \
+ VGT_DEBUG_REG18_have_valid_bin_req_MASK | \
+ VGT_DEBUG_REG18_have_valid_dma_req_MASK | \
+ VGT_DEBUG_REG18_bgrp_dma_di_grp_cull_enable_MASK | \
+ VGT_DEBUG_REG18_bgrp_dma_di_pre_fetch_cull_enable_MASK)
+
+#define VGT_DEBUG_REG18(dma_data_fifo_mem_raddr, dma_data_fifo_mem_waddr, dma_bgrp_byte_mask_fifo_re, dma_bgrp_dma_data_fifo_rptr, dma_mem_full, dma_ram_re, dma_ram_we, dma_mem_empty, dma_data_fifo_mem_re, dma_data_fifo_mem_we, bin_mem_full, bin_ram_we, bin_ram_re, bin_mem_empty, start_bin_req, fetch_cull_not_used, dma_req_xfer, have_valid_bin_req, have_valid_dma_req, bgrp_dma_di_grp_cull_enable, bgrp_dma_di_pre_fetch_cull_enable) \
+ ((dma_data_fifo_mem_raddr << VGT_DEBUG_REG18_dma_data_fifo_mem_raddr_SHIFT) | \
+ (dma_data_fifo_mem_waddr << VGT_DEBUG_REG18_dma_data_fifo_mem_waddr_SHIFT) | \
+ (dma_bgrp_byte_mask_fifo_re << VGT_DEBUG_REG18_dma_bgrp_byte_mask_fifo_re_SHIFT) | \
+ (dma_bgrp_dma_data_fifo_rptr << VGT_DEBUG_REG18_dma_bgrp_dma_data_fifo_rptr_SHIFT) | \
+ (dma_mem_full << VGT_DEBUG_REG18_dma_mem_full_SHIFT) | \
+ (dma_ram_re << VGT_DEBUG_REG18_dma_ram_re_SHIFT) | \
+ (dma_ram_we << VGT_DEBUG_REG18_dma_ram_we_SHIFT) | \
+ (dma_mem_empty << VGT_DEBUG_REG18_dma_mem_empty_SHIFT) | \
+ (dma_data_fifo_mem_re << VGT_DEBUG_REG18_dma_data_fifo_mem_re_SHIFT) | \
+ (dma_data_fifo_mem_we << VGT_DEBUG_REG18_dma_data_fifo_mem_we_SHIFT) | \
+ (bin_mem_full << VGT_DEBUG_REG18_bin_mem_full_SHIFT) | \
+ (bin_ram_we << VGT_DEBUG_REG18_bin_ram_we_SHIFT) | \
+ (bin_ram_re << VGT_DEBUG_REG18_bin_ram_re_SHIFT) | \
+ (bin_mem_empty << VGT_DEBUG_REG18_bin_mem_empty_SHIFT) | \
+ (start_bin_req << VGT_DEBUG_REG18_start_bin_req_SHIFT) | \
+ (fetch_cull_not_used << VGT_DEBUG_REG18_fetch_cull_not_used_SHIFT) | \
+ (dma_req_xfer << VGT_DEBUG_REG18_dma_req_xfer_SHIFT) | \
+ (have_valid_bin_req << VGT_DEBUG_REG18_have_valid_bin_req_SHIFT) | \
+ (have_valid_dma_req << VGT_DEBUG_REG18_have_valid_dma_req_SHIFT) | \
+ (bgrp_dma_di_grp_cull_enable << VGT_DEBUG_REG18_bgrp_dma_di_grp_cull_enable_SHIFT) | \
+ (bgrp_dma_di_pre_fetch_cull_enable << VGT_DEBUG_REG18_bgrp_dma_di_pre_fetch_cull_enable_SHIFT))
+
+#define VGT_DEBUG_REG18_GET_dma_data_fifo_mem_raddr(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_dma_data_fifo_mem_raddr_MASK) >> VGT_DEBUG_REG18_dma_data_fifo_mem_raddr_SHIFT)
+#define VGT_DEBUG_REG18_GET_dma_data_fifo_mem_waddr(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_dma_data_fifo_mem_waddr_MASK) >> VGT_DEBUG_REG18_dma_data_fifo_mem_waddr_SHIFT)
+#define VGT_DEBUG_REG18_GET_dma_bgrp_byte_mask_fifo_re(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_dma_bgrp_byte_mask_fifo_re_MASK) >> VGT_DEBUG_REG18_dma_bgrp_byte_mask_fifo_re_SHIFT)
+#define VGT_DEBUG_REG18_GET_dma_bgrp_dma_data_fifo_rptr(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_dma_bgrp_dma_data_fifo_rptr_MASK) >> VGT_DEBUG_REG18_dma_bgrp_dma_data_fifo_rptr_SHIFT)
+#define VGT_DEBUG_REG18_GET_dma_mem_full(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_dma_mem_full_MASK) >> VGT_DEBUG_REG18_dma_mem_full_SHIFT)
+#define VGT_DEBUG_REG18_GET_dma_ram_re(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_dma_ram_re_MASK) >> VGT_DEBUG_REG18_dma_ram_re_SHIFT)
+#define VGT_DEBUG_REG18_GET_dma_ram_we(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_dma_ram_we_MASK) >> VGT_DEBUG_REG18_dma_ram_we_SHIFT)
+#define VGT_DEBUG_REG18_GET_dma_mem_empty(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_dma_mem_empty_MASK) >> VGT_DEBUG_REG18_dma_mem_empty_SHIFT)
+#define VGT_DEBUG_REG18_GET_dma_data_fifo_mem_re(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_dma_data_fifo_mem_re_MASK) >> VGT_DEBUG_REG18_dma_data_fifo_mem_re_SHIFT)
+#define VGT_DEBUG_REG18_GET_dma_data_fifo_mem_we(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_dma_data_fifo_mem_we_MASK) >> VGT_DEBUG_REG18_dma_data_fifo_mem_we_SHIFT)
+#define VGT_DEBUG_REG18_GET_bin_mem_full(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_bin_mem_full_MASK) >> VGT_DEBUG_REG18_bin_mem_full_SHIFT)
+#define VGT_DEBUG_REG18_GET_bin_ram_we(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_bin_ram_we_MASK) >> VGT_DEBUG_REG18_bin_ram_we_SHIFT)
+#define VGT_DEBUG_REG18_GET_bin_ram_re(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_bin_ram_re_MASK) >> VGT_DEBUG_REG18_bin_ram_re_SHIFT)
+#define VGT_DEBUG_REG18_GET_bin_mem_empty(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_bin_mem_empty_MASK) >> VGT_DEBUG_REG18_bin_mem_empty_SHIFT)
+#define VGT_DEBUG_REG18_GET_start_bin_req(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_start_bin_req_MASK) >> VGT_DEBUG_REG18_start_bin_req_SHIFT)
+#define VGT_DEBUG_REG18_GET_fetch_cull_not_used(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_fetch_cull_not_used_MASK) >> VGT_DEBUG_REG18_fetch_cull_not_used_SHIFT)
+#define VGT_DEBUG_REG18_GET_dma_req_xfer(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_dma_req_xfer_MASK) >> VGT_DEBUG_REG18_dma_req_xfer_SHIFT)
+#define VGT_DEBUG_REG18_GET_have_valid_bin_req(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_have_valid_bin_req_MASK) >> VGT_DEBUG_REG18_have_valid_bin_req_SHIFT)
+#define VGT_DEBUG_REG18_GET_have_valid_dma_req(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_have_valid_dma_req_MASK) >> VGT_DEBUG_REG18_have_valid_dma_req_SHIFT)
+#define VGT_DEBUG_REG18_GET_bgrp_dma_di_grp_cull_enable(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_bgrp_dma_di_grp_cull_enable_MASK) >> VGT_DEBUG_REG18_bgrp_dma_di_grp_cull_enable_SHIFT)
+#define VGT_DEBUG_REG18_GET_bgrp_dma_di_pre_fetch_cull_enable(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_bgrp_dma_di_pre_fetch_cull_enable_MASK) >> VGT_DEBUG_REG18_bgrp_dma_di_pre_fetch_cull_enable_SHIFT)
+
+#define VGT_DEBUG_REG18_SET_dma_data_fifo_mem_raddr(vgt_debug_reg18_reg, dma_data_fifo_mem_raddr) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_dma_data_fifo_mem_raddr_MASK) | (dma_data_fifo_mem_raddr << VGT_DEBUG_REG18_dma_data_fifo_mem_raddr_SHIFT)
+#define VGT_DEBUG_REG18_SET_dma_data_fifo_mem_waddr(vgt_debug_reg18_reg, dma_data_fifo_mem_waddr) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_dma_data_fifo_mem_waddr_MASK) | (dma_data_fifo_mem_waddr << VGT_DEBUG_REG18_dma_data_fifo_mem_waddr_SHIFT)
+#define VGT_DEBUG_REG18_SET_dma_bgrp_byte_mask_fifo_re(vgt_debug_reg18_reg, dma_bgrp_byte_mask_fifo_re) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_dma_bgrp_byte_mask_fifo_re_MASK) | (dma_bgrp_byte_mask_fifo_re << VGT_DEBUG_REG18_dma_bgrp_byte_mask_fifo_re_SHIFT)
+#define VGT_DEBUG_REG18_SET_dma_bgrp_dma_data_fifo_rptr(vgt_debug_reg18_reg, dma_bgrp_dma_data_fifo_rptr) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_dma_bgrp_dma_data_fifo_rptr_MASK) | (dma_bgrp_dma_data_fifo_rptr << VGT_DEBUG_REG18_dma_bgrp_dma_data_fifo_rptr_SHIFT)
+#define VGT_DEBUG_REG18_SET_dma_mem_full(vgt_debug_reg18_reg, dma_mem_full) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_dma_mem_full_MASK) | (dma_mem_full << VGT_DEBUG_REG18_dma_mem_full_SHIFT)
+#define VGT_DEBUG_REG18_SET_dma_ram_re(vgt_debug_reg18_reg, dma_ram_re) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_dma_ram_re_MASK) | (dma_ram_re << VGT_DEBUG_REG18_dma_ram_re_SHIFT)
+#define VGT_DEBUG_REG18_SET_dma_ram_we(vgt_debug_reg18_reg, dma_ram_we) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_dma_ram_we_MASK) | (dma_ram_we << VGT_DEBUG_REG18_dma_ram_we_SHIFT)
+#define VGT_DEBUG_REG18_SET_dma_mem_empty(vgt_debug_reg18_reg, dma_mem_empty) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_dma_mem_empty_MASK) | (dma_mem_empty << VGT_DEBUG_REG18_dma_mem_empty_SHIFT)
+#define VGT_DEBUG_REG18_SET_dma_data_fifo_mem_re(vgt_debug_reg18_reg, dma_data_fifo_mem_re) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_dma_data_fifo_mem_re_MASK) | (dma_data_fifo_mem_re << VGT_DEBUG_REG18_dma_data_fifo_mem_re_SHIFT)
+#define VGT_DEBUG_REG18_SET_dma_data_fifo_mem_we(vgt_debug_reg18_reg, dma_data_fifo_mem_we) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_dma_data_fifo_mem_we_MASK) | (dma_data_fifo_mem_we << VGT_DEBUG_REG18_dma_data_fifo_mem_we_SHIFT)
+#define VGT_DEBUG_REG18_SET_bin_mem_full(vgt_debug_reg18_reg, bin_mem_full) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_bin_mem_full_MASK) | (bin_mem_full << VGT_DEBUG_REG18_bin_mem_full_SHIFT)
+#define VGT_DEBUG_REG18_SET_bin_ram_we(vgt_debug_reg18_reg, bin_ram_we) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_bin_ram_we_MASK) | (bin_ram_we << VGT_DEBUG_REG18_bin_ram_we_SHIFT)
+#define VGT_DEBUG_REG18_SET_bin_ram_re(vgt_debug_reg18_reg, bin_ram_re) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_bin_ram_re_MASK) | (bin_ram_re << VGT_DEBUG_REG18_bin_ram_re_SHIFT)
+#define VGT_DEBUG_REG18_SET_bin_mem_empty(vgt_debug_reg18_reg, bin_mem_empty) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_bin_mem_empty_MASK) | (bin_mem_empty << VGT_DEBUG_REG18_bin_mem_empty_SHIFT)
+#define VGT_DEBUG_REG18_SET_start_bin_req(vgt_debug_reg18_reg, start_bin_req) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_start_bin_req_MASK) | (start_bin_req << VGT_DEBUG_REG18_start_bin_req_SHIFT)
+#define VGT_DEBUG_REG18_SET_fetch_cull_not_used(vgt_debug_reg18_reg, fetch_cull_not_used) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_fetch_cull_not_used_MASK) | (fetch_cull_not_used << VGT_DEBUG_REG18_fetch_cull_not_used_SHIFT)
+#define VGT_DEBUG_REG18_SET_dma_req_xfer(vgt_debug_reg18_reg, dma_req_xfer) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_dma_req_xfer_MASK) | (dma_req_xfer << VGT_DEBUG_REG18_dma_req_xfer_SHIFT)
+#define VGT_DEBUG_REG18_SET_have_valid_bin_req(vgt_debug_reg18_reg, have_valid_bin_req) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_have_valid_bin_req_MASK) | (have_valid_bin_req << VGT_DEBUG_REG18_have_valid_bin_req_SHIFT)
+#define VGT_DEBUG_REG18_SET_have_valid_dma_req(vgt_debug_reg18_reg, have_valid_dma_req) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_have_valid_dma_req_MASK) | (have_valid_dma_req << VGT_DEBUG_REG18_have_valid_dma_req_SHIFT)
+#define VGT_DEBUG_REG18_SET_bgrp_dma_di_grp_cull_enable(vgt_debug_reg18_reg, bgrp_dma_di_grp_cull_enable) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_bgrp_dma_di_grp_cull_enable_MASK) | (bgrp_dma_di_grp_cull_enable << VGT_DEBUG_REG18_bgrp_dma_di_grp_cull_enable_SHIFT)
+#define VGT_DEBUG_REG18_SET_bgrp_dma_di_pre_fetch_cull_enable(vgt_debug_reg18_reg, bgrp_dma_di_pre_fetch_cull_enable) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_bgrp_dma_di_pre_fetch_cull_enable_MASK) | (bgrp_dma_di_pre_fetch_cull_enable << VGT_DEBUG_REG18_bgrp_dma_di_pre_fetch_cull_enable_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg18_t {
+ unsigned int dma_data_fifo_mem_raddr : VGT_DEBUG_REG18_dma_data_fifo_mem_raddr_SIZE;
+ unsigned int dma_data_fifo_mem_waddr : VGT_DEBUG_REG18_dma_data_fifo_mem_waddr_SIZE;
+ unsigned int dma_bgrp_byte_mask_fifo_re : VGT_DEBUG_REG18_dma_bgrp_byte_mask_fifo_re_SIZE;
+ unsigned int dma_bgrp_dma_data_fifo_rptr : VGT_DEBUG_REG18_dma_bgrp_dma_data_fifo_rptr_SIZE;
+ unsigned int dma_mem_full : VGT_DEBUG_REG18_dma_mem_full_SIZE;
+ unsigned int dma_ram_re : VGT_DEBUG_REG18_dma_ram_re_SIZE;
+ unsigned int dma_ram_we : VGT_DEBUG_REG18_dma_ram_we_SIZE;
+ unsigned int dma_mem_empty : VGT_DEBUG_REG18_dma_mem_empty_SIZE;
+ unsigned int dma_data_fifo_mem_re : VGT_DEBUG_REG18_dma_data_fifo_mem_re_SIZE;
+ unsigned int dma_data_fifo_mem_we : VGT_DEBUG_REG18_dma_data_fifo_mem_we_SIZE;
+ unsigned int bin_mem_full : VGT_DEBUG_REG18_bin_mem_full_SIZE;
+ unsigned int bin_ram_we : VGT_DEBUG_REG18_bin_ram_we_SIZE;
+ unsigned int bin_ram_re : VGT_DEBUG_REG18_bin_ram_re_SIZE;
+ unsigned int bin_mem_empty : VGT_DEBUG_REG18_bin_mem_empty_SIZE;
+ unsigned int start_bin_req : VGT_DEBUG_REG18_start_bin_req_SIZE;
+ unsigned int fetch_cull_not_used : VGT_DEBUG_REG18_fetch_cull_not_used_SIZE;
+ unsigned int dma_req_xfer : VGT_DEBUG_REG18_dma_req_xfer_SIZE;
+ unsigned int have_valid_bin_req : VGT_DEBUG_REG18_have_valid_bin_req_SIZE;
+ unsigned int have_valid_dma_req : VGT_DEBUG_REG18_have_valid_dma_req_SIZE;
+ unsigned int bgrp_dma_di_grp_cull_enable : VGT_DEBUG_REG18_bgrp_dma_di_grp_cull_enable_SIZE;
+ unsigned int bgrp_dma_di_pre_fetch_cull_enable : VGT_DEBUG_REG18_bgrp_dma_di_pre_fetch_cull_enable_SIZE;
+ } vgt_debug_reg18_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg18_t {
+ unsigned int bgrp_dma_di_pre_fetch_cull_enable : VGT_DEBUG_REG18_bgrp_dma_di_pre_fetch_cull_enable_SIZE;
+ unsigned int bgrp_dma_di_grp_cull_enable : VGT_DEBUG_REG18_bgrp_dma_di_grp_cull_enable_SIZE;
+ unsigned int have_valid_dma_req : VGT_DEBUG_REG18_have_valid_dma_req_SIZE;
+ unsigned int have_valid_bin_req : VGT_DEBUG_REG18_have_valid_bin_req_SIZE;
+ unsigned int dma_req_xfer : VGT_DEBUG_REG18_dma_req_xfer_SIZE;
+ unsigned int fetch_cull_not_used : VGT_DEBUG_REG18_fetch_cull_not_used_SIZE;
+ unsigned int start_bin_req : VGT_DEBUG_REG18_start_bin_req_SIZE;
+ unsigned int bin_mem_empty : VGT_DEBUG_REG18_bin_mem_empty_SIZE;
+ unsigned int bin_ram_re : VGT_DEBUG_REG18_bin_ram_re_SIZE;
+ unsigned int bin_ram_we : VGT_DEBUG_REG18_bin_ram_we_SIZE;
+ unsigned int bin_mem_full : VGT_DEBUG_REG18_bin_mem_full_SIZE;
+ unsigned int dma_data_fifo_mem_we : VGT_DEBUG_REG18_dma_data_fifo_mem_we_SIZE;
+ unsigned int dma_data_fifo_mem_re : VGT_DEBUG_REG18_dma_data_fifo_mem_re_SIZE;
+ unsigned int dma_mem_empty : VGT_DEBUG_REG18_dma_mem_empty_SIZE;
+ unsigned int dma_ram_we : VGT_DEBUG_REG18_dma_ram_we_SIZE;
+ unsigned int dma_ram_re : VGT_DEBUG_REG18_dma_ram_re_SIZE;
+ unsigned int dma_mem_full : VGT_DEBUG_REG18_dma_mem_full_SIZE;
+ unsigned int dma_bgrp_dma_data_fifo_rptr : VGT_DEBUG_REG18_dma_bgrp_dma_data_fifo_rptr_SIZE;
+ unsigned int dma_bgrp_byte_mask_fifo_re : VGT_DEBUG_REG18_dma_bgrp_byte_mask_fifo_re_SIZE;
+ unsigned int dma_data_fifo_mem_waddr : VGT_DEBUG_REG18_dma_data_fifo_mem_waddr_SIZE;
+ unsigned int dma_data_fifo_mem_raddr : VGT_DEBUG_REG18_dma_data_fifo_mem_raddr_SIZE;
+ } vgt_debug_reg18_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_reg18_t f;
+} vgt_debug_reg18_u;
+
+
+/*
+ * VGT_DEBUG_REG20 struct
+ */
+
+#define VGT_DEBUG_REG20_prim_side_indx_valid_SIZE 1
+#define VGT_DEBUG_REG20_indx_side_fifo_empty_SIZE 1
+#define VGT_DEBUG_REG20_indx_side_fifo_re_SIZE 1
+#define VGT_DEBUG_REG20_indx_side_fifo_we_SIZE 1
+#define VGT_DEBUG_REG20_indx_side_fifo_full_SIZE 1
+#define VGT_DEBUG_REG20_prim_buffer_empty_SIZE 1
+#define VGT_DEBUG_REG20_prim_buffer_re_SIZE 1
+#define VGT_DEBUG_REG20_prim_buffer_we_SIZE 1
+#define VGT_DEBUG_REG20_prim_buffer_full_SIZE 1
+#define VGT_DEBUG_REG20_indx_buffer_empty_SIZE 1
+#define VGT_DEBUG_REG20_indx_buffer_re_SIZE 1
+#define VGT_DEBUG_REG20_indx_buffer_we_SIZE 1
+#define VGT_DEBUG_REG20_indx_buffer_full_SIZE 1
+#define VGT_DEBUG_REG20_hold_prim_SIZE 1
+#define VGT_DEBUG_REG20_sent_cnt_SIZE 4
+#define VGT_DEBUG_REG20_start_of_vtx_vector_SIZE 1
+#define VGT_DEBUG_REG20_clip_s_pre_hold_prim_SIZE 1
+#define VGT_DEBUG_REG20_clip_p_pre_hold_prim_SIZE 1
+#define VGT_DEBUG_REG20_buffered_prim_type_event_SIZE 5
+#define VGT_DEBUG_REG20_out_trigger_SIZE 1
+
+#define VGT_DEBUG_REG20_prim_side_indx_valid_SHIFT 0
+#define VGT_DEBUG_REG20_indx_side_fifo_empty_SHIFT 1
+#define VGT_DEBUG_REG20_indx_side_fifo_re_SHIFT 2
+#define VGT_DEBUG_REG20_indx_side_fifo_we_SHIFT 3
+#define VGT_DEBUG_REG20_indx_side_fifo_full_SHIFT 4
+#define VGT_DEBUG_REG20_prim_buffer_empty_SHIFT 5
+#define VGT_DEBUG_REG20_prim_buffer_re_SHIFT 6
+#define VGT_DEBUG_REG20_prim_buffer_we_SHIFT 7
+#define VGT_DEBUG_REG20_prim_buffer_full_SHIFT 8
+#define VGT_DEBUG_REG20_indx_buffer_empty_SHIFT 9
+#define VGT_DEBUG_REG20_indx_buffer_re_SHIFT 10
+#define VGT_DEBUG_REG20_indx_buffer_we_SHIFT 11
+#define VGT_DEBUG_REG20_indx_buffer_full_SHIFT 12
+#define VGT_DEBUG_REG20_hold_prim_SHIFT 13
+#define VGT_DEBUG_REG20_sent_cnt_SHIFT 14
+#define VGT_DEBUG_REG20_start_of_vtx_vector_SHIFT 18
+#define VGT_DEBUG_REG20_clip_s_pre_hold_prim_SHIFT 19
+#define VGT_DEBUG_REG20_clip_p_pre_hold_prim_SHIFT 20
+#define VGT_DEBUG_REG20_buffered_prim_type_event_SHIFT 21
+#define VGT_DEBUG_REG20_out_trigger_SHIFT 26
+
+#define VGT_DEBUG_REG20_prim_side_indx_valid_MASK 0x00000001
+#define VGT_DEBUG_REG20_indx_side_fifo_empty_MASK 0x00000002
+#define VGT_DEBUG_REG20_indx_side_fifo_re_MASK 0x00000004
+#define VGT_DEBUG_REG20_indx_side_fifo_we_MASK 0x00000008
+#define VGT_DEBUG_REG20_indx_side_fifo_full_MASK 0x00000010
+#define VGT_DEBUG_REG20_prim_buffer_empty_MASK 0x00000020
+#define VGT_DEBUG_REG20_prim_buffer_re_MASK 0x00000040
+#define VGT_DEBUG_REG20_prim_buffer_we_MASK 0x00000080
+#define VGT_DEBUG_REG20_prim_buffer_full_MASK 0x00000100
+#define VGT_DEBUG_REG20_indx_buffer_empty_MASK 0x00000200
+#define VGT_DEBUG_REG20_indx_buffer_re_MASK 0x00000400
+#define VGT_DEBUG_REG20_indx_buffer_we_MASK 0x00000800
+#define VGT_DEBUG_REG20_indx_buffer_full_MASK 0x00001000
+#define VGT_DEBUG_REG20_hold_prim_MASK 0x00002000
+#define VGT_DEBUG_REG20_sent_cnt_MASK 0x0003c000
+#define VGT_DEBUG_REG20_start_of_vtx_vector_MASK 0x00040000
+#define VGT_DEBUG_REG20_clip_s_pre_hold_prim_MASK 0x00080000
+#define VGT_DEBUG_REG20_clip_p_pre_hold_prim_MASK 0x00100000
+#define VGT_DEBUG_REG20_buffered_prim_type_event_MASK 0x03e00000
+#define VGT_DEBUG_REG20_out_trigger_MASK 0x04000000
+
+#define VGT_DEBUG_REG20_MASK \
+ (VGT_DEBUG_REG20_prim_side_indx_valid_MASK | \
+ VGT_DEBUG_REG20_indx_side_fifo_empty_MASK | \
+ VGT_DEBUG_REG20_indx_side_fifo_re_MASK | \
+ VGT_DEBUG_REG20_indx_side_fifo_we_MASK | \
+ VGT_DEBUG_REG20_indx_side_fifo_full_MASK | \
+ VGT_DEBUG_REG20_prim_buffer_empty_MASK | \
+ VGT_DEBUG_REG20_prim_buffer_re_MASK | \
+ VGT_DEBUG_REG20_prim_buffer_we_MASK | \
+ VGT_DEBUG_REG20_prim_buffer_full_MASK | \
+ VGT_DEBUG_REG20_indx_buffer_empty_MASK | \
+ VGT_DEBUG_REG20_indx_buffer_re_MASK | \
+ VGT_DEBUG_REG20_indx_buffer_we_MASK | \
+ VGT_DEBUG_REG20_indx_buffer_full_MASK | \
+ VGT_DEBUG_REG20_hold_prim_MASK | \
+ VGT_DEBUG_REG20_sent_cnt_MASK | \
+ VGT_DEBUG_REG20_start_of_vtx_vector_MASK | \
+ VGT_DEBUG_REG20_clip_s_pre_hold_prim_MASK | \
+ VGT_DEBUG_REG20_clip_p_pre_hold_prim_MASK | \
+ VGT_DEBUG_REG20_buffered_prim_type_event_MASK | \
+ VGT_DEBUG_REG20_out_trigger_MASK)
+
+#define VGT_DEBUG_REG20(prim_side_indx_valid, indx_side_fifo_empty, indx_side_fifo_re, indx_side_fifo_we, indx_side_fifo_full, prim_buffer_empty, prim_buffer_re, prim_buffer_we, prim_buffer_full, indx_buffer_empty, indx_buffer_re, indx_buffer_we, indx_buffer_full, hold_prim, sent_cnt, start_of_vtx_vector, clip_s_pre_hold_prim, clip_p_pre_hold_prim, buffered_prim_type_event, out_trigger) \
+ ((prim_side_indx_valid << VGT_DEBUG_REG20_prim_side_indx_valid_SHIFT) | \
+ (indx_side_fifo_empty << VGT_DEBUG_REG20_indx_side_fifo_empty_SHIFT) | \
+ (indx_side_fifo_re << VGT_DEBUG_REG20_indx_side_fifo_re_SHIFT) | \
+ (indx_side_fifo_we << VGT_DEBUG_REG20_indx_side_fifo_we_SHIFT) | \
+ (indx_side_fifo_full << VGT_DEBUG_REG20_indx_side_fifo_full_SHIFT) | \
+ (prim_buffer_empty << VGT_DEBUG_REG20_prim_buffer_empty_SHIFT) | \
+ (prim_buffer_re << VGT_DEBUG_REG20_prim_buffer_re_SHIFT) | \
+ (prim_buffer_we << VGT_DEBUG_REG20_prim_buffer_we_SHIFT) | \
+ (prim_buffer_full << VGT_DEBUG_REG20_prim_buffer_full_SHIFT) | \
+ (indx_buffer_empty << VGT_DEBUG_REG20_indx_buffer_empty_SHIFT) | \
+ (indx_buffer_re << VGT_DEBUG_REG20_indx_buffer_re_SHIFT) | \
+ (indx_buffer_we << VGT_DEBUG_REG20_indx_buffer_we_SHIFT) | \
+ (indx_buffer_full << VGT_DEBUG_REG20_indx_buffer_full_SHIFT) | \
+ (hold_prim << VGT_DEBUG_REG20_hold_prim_SHIFT) | \
+ (sent_cnt << VGT_DEBUG_REG20_sent_cnt_SHIFT) | \
+ (start_of_vtx_vector << VGT_DEBUG_REG20_start_of_vtx_vector_SHIFT) | \
+ (clip_s_pre_hold_prim << VGT_DEBUG_REG20_clip_s_pre_hold_prim_SHIFT) | \
+ (clip_p_pre_hold_prim << VGT_DEBUG_REG20_clip_p_pre_hold_prim_SHIFT) | \
+ (buffered_prim_type_event << VGT_DEBUG_REG20_buffered_prim_type_event_SHIFT) | \
+ (out_trigger << VGT_DEBUG_REG20_out_trigger_SHIFT))
+
+#define VGT_DEBUG_REG20_GET_prim_side_indx_valid(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_prim_side_indx_valid_MASK) >> VGT_DEBUG_REG20_prim_side_indx_valid_SHIFT)
+#define VGT_DEBUG_REG20_GET_indx_side_fifo_empty(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_indx_side_fifo_empty_MASK) >> VGT_DEBUG_REG20_indx_side_fifo_empty_SHIFT)
+#define VGT_DEBUG_REG20_GET_indx_side_fifo_re(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_indx_side_fifo_re_MASK) >> VGT_DEBUG_REG20_indx_side_fifo_re_SHIFT)
+#define VGT_DEBUG_REG20_GET_indx_side_fifo_we(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_indx_side_fifo_we_MASK) >> VGT_DEBUG_REG20_indx_side_fifo_we_SHIFT)
+#define VGT_DEBUG_REG20_GET_indx_side_fifo_full(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_indx_side_fifo_full_MASK) >> VGT_DEBUG_REG20_indx_side_fifo_full_SHIFT)
+#define VGT_DEBUG_REG20_GET_prim_buffer_empty(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_prim_buffer_empty_MASK) >> VGT_DEBUG_REG20_prim_buffer_empty_SHIFT)
+#define VGT_DEBUG_REG20_GET_prim_buffer_re(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_prim_buffer_re_MASK) >> VGT_DEBUG_REG20_prim_buffer_re_SHIFT)
+#define VGT_DEBUG_REG20_GET_prim_buffer_we(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_prim_buffer_we_MASK) >> VGT_DEBUG_REG20_prim_buffer_we_SHIFT)
+#define VGT_DEBUG_REG20_GET_prim_buffer_full(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_prim_buffer_full_MASK) >> VGT_DEBUG_REG20_prim_buffer_full_SHIFT)
+#define VGT_DEBUG_REG20_GET_indx_buffer_empty(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_indx_buffer_empty_MASK) >> VGT_DEBUG_REG20_indx_buffer_empty_SHIFT)
+#define VGT_DEBUG_REG20_GET_indx_buffer_re(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_indx_buffer_re_MASK) >> VGT_DEBUG_REG20_indx_buffer_re_SHIFT)
+#define VGT_DEBUG_REG20_GET_indx_buffer_we(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_indx_buffer_we_MASK) >> VGT_DEBUG_REG20_indx_buffer_we_SHIFT)
+#define VGT_DEBUG_REG20_GET_indx_buffer_full(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_indx_buffer_full_MASK) >> VGT_DEBUG_REG20_indx_buffer_full_SHIFT)
+#define VGT_DEBUG_REG20_GET_hold_prim(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_hold_prim_MASK) >> VGT_DEBUG_REG20_hold_prim_SHIFT)
+#define VGT_DEBUG_REG20_GET_sent_cnt(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_sent_cnt_MASK) >> VGT_DEBUG_REG20_sent_cnt_SHIFT)
+#define VGT_DEBUG_REG20_GET_start_of_vtx_vector(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_start_of_vtx_vector_MASK) >> VGT_DEBUG_REG20_start_of_vtx_vector_SHIFT)
+#define VGT_DEBUG_REG20_GET_clip_s_pre_hold_prim(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_clip_s_pre_hold_prim_MASK) >> VGT_DEBUG_REG20_clip_s_pre_hold_prim_SHIFT)
+#define VGT_DEBUG_REG20_GET_clip_p_pre_hold_prim(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_clip_p_pre_hold_prim_MASK) >> VGT_DEBUG_REG20_clip_p_pre_hold_prim_SHIFT)
+#define VGT_DEBUG_REG20_GET_buffered_prim_type_event(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_buffered_prim_type_event_MASK) >> VGT_DEBUG_REG20_buffered_prim_type_event_SHIFT)
+#define VGT_DEBUG_REG20_GET_out_trigger(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_out_trigger_MASK) >> VGT_DEBUG_REG20_out_trigger_SHIFT)
+
+#define VGT_DEBUG_REG20_SET_prim_side_indx_valid(vgt_debug_reg20_reg, prim_side_indx_valid) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_prim_side_indx_valid_MASK) | (prim_side_indx_valid << VGT_DEBUG_REG20_prim_side_indx_valid_SHIFT)
+#define VGT_DEBUG_REG20_SET_indx_side_fifo_empty(vgt_debug_reg20_reg, indx_side_fifo_empty) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_indx_side_fifo_empty_MASK) | (indx_side_fifo_empty << VGT_DEBUG_REG20_indx_side_fifo_empty_SHIFT)
+#define VGT_DEBUG_REG20_SET_indx_side_fifo_re(vgt_debug_reg20_reg, indx_side_fifo_re) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_indx_side_fifo_re_MASK) | (indx_side_fifo_re << VGT_DEBUG_REG20_indx_side_fifo_re_SHIFT)
+#define VGT_DEBUG_REG20_SET_indx_side_fifo_we(vgt_debug_reg20_reg, indx_side_fifo_we) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_indx_side_fifo_we_MASK) | (indx_side_fifo_we << VGT_DEBUG_REG20_indx_side_fifo_we_SHIFT)
+#define VGT_DEBUG_REG20_SET_indx_side_fifo_full(vgt_debug_reg20_reg, indx_side_fifo_full) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_indx_side_fifo_full_MASK) | (indx_side_fifo_full << VGT_DEBUG_REG20_indx_side_fifo_full_SHIFT)
+#define VGT_DEBUG_REG20_SET_prim_buffer_empty(vgt_debug_reg20_reg, prim_buffer_empty) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_prim_buffer_empty_MASK) | (prim_buffer_empty << VGT_DEBUG_REG20_prim_buffer_empty_SHIFT)
+#define VGT_DEBUG_REG20_SET_prim_buffer_re(vgt_debug_reg20_reg, prim_buffer_re) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_prim_buffer_re_MASK) | (prim_buffer_re << VGT_DEBUG_REG20_prim_buffer_re_SHIFT)
+#define VGT_DEBUG_REG20_SET_prim_buffer_we(vgt_debug_reg20_reg, prim_buffer_we) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_prim_buffer_we_MASK) | (prim_buffer_we << VGT_DEBUG_REG20_prim_buffer_we_SHIFT)
+#define VGT_DEBUG_REG20_SET_prim_buffer_full(vgt_debug_reg20_reg, prim_buffer_full) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_prim_buffer_full_MASK) | (prim_buffer_full << VGT_DEBUG_REG20_prim_buffer_full_SHIFT)
+#define VGT_DEBUG_REG20_SET_indx_buffer_empty(vgt_debug_reg20_reg, indx_buffer_empty) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_indx_buffer_empty_MASK) | (indx_buffer_empty << VGT_DEBUG_REG20_indx_buffer_empty_SHIFT)
+#define VGT_DEBUG_REG20_SET_indx_buffer_re(vgt_debug_reg20_reg, indx_buffer_re) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_indx_buffer_re_MASK) | (indx_buffer_re << VGT_DEBUG_REG20_indx_buffer_re_SHIFT)
+#define VGT_DEBUG_REG20_SET_indx_buffer_we(vgt_debug_reg20_reg, indx_buffer_we) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_indx_buffer_we_MASK) | (indx_buffer_we << VGT_DEBUG_REG20_indx_buffer_we_SHIFT)
+#define VGT_DEBUG_REG20_SET_indx_buffer_full(vgt_debug_reg20_reg, indx_buffer_full) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_indx_buffer_full_MASK) | (indx_buffer_full << VGT_DEBUG_REG20_indx_buffer_full_SHIFT)
+#define VGT_DEBUG_REG20_SET_hold_prim(vgt_debug_reg20_reg, hold_prim) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_hold_prim_MASK) | (hold_prim << VGT_DEBUG_REG20_hold_prim_SHIFT)
+#define VGT_DEBUG_REG20_SET_sent_cnt(vgt_debug_reg20_reg, sent_cnt) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_sent_cnt_MASK) | (sent_cnt << VGT_DEBUG_REG20_sent_cnt_SHIFT)
+#define VGT_DEBUG_REG20_SET_start_of_vtx_vector(vgt_debug_reg20_reg, start_of_vtx_vector) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_start_of_vtx_vector_MASK) | (start_of_vtx_vector << VGT_DEBUG_REG20_start_of_vtx_vector_SHIFT)
+#define VGT_DEBUG_REG20_SET_clip_s_pre_hold_prim(vgt_debug_reg20_reg, clip_s_pre_hold_prim) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_clip_s_pre_hold_prim_MASK) | (clip_s_pre_hold_prim << VGT_DEBUG_REG20_clip_s_pre_hold_prim_SHIFT)
+#define VGT_DEBUG_REG20_SET_clip_p_pre_hold_prim(vgt_debug_reg20_reg, clip_p_pre_hold_prim) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_clip_p_pre_hold_prim_MASK) | (clip_p_pre_hold_prim << VGT_DEBUG_REG20_clip_p_pre_hold_prim_SHIFT)
+#define VGT_DEBUG_REG20_SET_buffered_prim_type_event(vgt_debug_reg20_reg, buffered_prim_type_event) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_buffered_prim_type_event_MASK) | (buffered_prim_type_event << VGT_DEBUG_REG20_buffered_prim_type_event_SHIFT)
+#define VGT_DEBUG_REG20_SET_out_trigger(vgt_debug_reg20_reg, out_trigger) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_out_trigger_MASK) | (out_trigger << VGT_DEBUG_REG20_out_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg20_t {
+ unsigned int prim_side_indx_valid : VGT_DEBUG_REG20_prim_side_indx_valid_SIZE;
+ unsigned int indx_side_fifo_empty : VGT_DEBUG_REG20_indx_side_fifo_empty_SIZE;
+ unsigned int indx_side_fifo_re : VGT_DEBUG_REG20_indx_side_fifo_re_SIZE;
+ unsigned int indx_side_fifo_we : VGT_DEBUG_REG20_indx_side_fifo_we_SIZE;
+ unsigned int indx_side_fifo_full : VGT_DEBUG_REG20_indx_side_fifo_full_SIZE;
+ unsigned int prim_buffer_empty : VGT_DEBUG_REG20_prim_buffer_empty_SIZE;
+ unsigned int prim_buffer_re : VGT_DEBUG_REG20_prim_buffer_re_SIZE;
+ unsigned int prim_buffer_we : VGT_DEBUG_REG20_prim_buffer_we_SIZE;
+ unsigned int prim_buffer_full : VGT_DEBUG_REG20_prim_buffer_full_SIZE;
+ unsigned int indx_buffer_empty : VGT_DEBUG_REG20_indx_buffer_empty_SIZE;
+ unsigned int indx_buffer_re : VGT_DEBUG_REG20_indx_buffer_re_SIZE;
+ unsigned int indx_buffer_we : VGT_DEBUG_REG20_indx_buffer_we_SIZE;
+ unsigned int indx_buffer_full : VGT_DEBUG_REG20_indx_buffer_full_SIZE;
+ unsigned int hold_prim : VGT_DEBUG_REG20_hold_prim_SIZE;
+ unsigned int sent_cnt : VGT_DEBUG_REG20_sent_cnt_SIZE;
+ unsigned int start_of_vtx_vector : VGT_DEBUG_REG20_start_of_vtx_vector_SIZE;
+ unsigned int clip_s_pre_hold_prim : VGT_DEBUG_REG20_clip_s_pre_hold_prim_SIZE;
+ unsigned int clip_p_pre_hold_prim : VGT_DEBUG_REG20_clip_p_pre_hold_prim_SIZE;
+ unsigned int buffered_prim_type_event : VGT_DEBUG_REG20_buffered_prim_type_event_SIZE;
+ unsigned int out_trigger : VGT_DEBUG_REG20_out_trigger_SIZE;
+ unsigned int : 5;
+ } vgt_debug_reg20_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg20_t {
+ unsigned int : 5;
+ unsigned int out_trigger : VGT_DEBUG_REG20_out_trigger_SIZE;
+ unsigned int buffered_prim_type_event : VGT_DEBUG_REG20_buffered_prim_type_event_SIZE;
+ unsigned int clip_p_pre_hold_prim : VGT_DEBUG_REG20_clip_p_pre_hold_prim_SIZE;
+ unsigned int clip_s_pre_hold_prim : VGT_DEBUG_REG20_clip_s_pre_hold_prim_SIZE;
+ unsigned int start_of_vtx_vector : VGT_DEBUG_REG20_start_of_vtx_vector_SIZE;
+ unsigned int sent_cnt : VGT_DEBUG_REG20_sent_cnt_SIZE;
+ unsigned int hold_prim : VGT_DEBUG_REG20_hold_prim_SIZE;
+ unsigned int indx_buffer_full : VGT_DEBUG_REG20_indx_buffer_full_SIZE;
+ unsigned int indx_buffer_we : VGT_DEBUG_REG20_indx_buffer_we_SIZE;
+ unsigned int indx_buffer_re : VGT_DEBUG_REG20_indx_buffer_re_SIZE;
+ unsigned int indx_buffer_empty : VGT_DEBUG_REG20_indx_buffer_empty_SIZE;
+ unsigned int prim_buffer_full : VGT_DEBUG_REG20_prim_buffer_full_SIZE;
+ unsigned int prim_buffer_we : VGT_DEBUG_REG20_prim_buffer_we_SIZE;
+ unsigned int prim_buffer_re : VGT_DEBUG_REG20_prim_buffer_re_SIZE;
+ unsigned int prim_buffer_empty : VGT_DEBUG_REG20_prim_buffer_empty_SIZE;
+ unsigned int indx_side_fifo_full : VGT_DEBUG_REG20_indx_side_fifo_full_SIZE;
+ unsigned int indx_side_fifo_we : VGT_DEBUG_REG20_indx_side_fifo_we_SIZE;
+ unsigned int indx_side_fifo_re : VGT_DEBUG_REG20_indx_side_fifo_re_SIZE;
+ unsigned int indx_side_fifo_empty : VGT_DEBUG_REG20_indx_side_fifo_empty_SIZE;
+ unsigned int prim_side_indx_valid : VGT_DEBUG_REG20_prim_side_indx_valid_SIZE;
+ } vgt_debug_reg20_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_reg20_t f;
+} vgt_debug_reg20_u;
+
+
+/*
+ * VGT_DEBUG_REG21 struct
+ */
+
+#define VGT_DEBUG_REG21_null_terminate_vtx_vector_SIZE 1
+#define VGT_DEBUG_REG21_prim_end_of_vtx_vect_flags_SIZE 3
+#define VGT_DEBUG_REG21_alloc_counter_q_SIZE 3
+#define VGT_DEBUG_REG21_curr_slot_in_vtx_vect_q_SIZE 3
+#define VGT_DEBUG_REG21_int_vtx_counter_q_SIZE 4
+#define VGT_DEBUG_REG21_curr_dealloc_distance_q_SIZE 4
+#define VGT_DEBUG_REG21_new_packet_q_SIZE 1
+#define VGT_DEBUG_REG21_new_allocate_q_SIZE 1
+#define VGT_DEBUG_REG21_num_new_unique_rel_indx_SIZE 2
+#define VGT_DEBUG_REG21_inserted_null_prim_q_SIZE 1
+#define VGT_DEBUG_REG21_insert_null_prim_SIZE 1
+#define VGT_DEBUG_REG21_buffered_prim_eop_mux_SIZE 1
+#define VGT_DEBUG_REG21_prim_buffer_empty_mux_SIZE 1
+#define VGT_DEBUG_REG21_buffered_thread_size_SIZE 1
+#define VGT_DEBUG_REG21_out_trigger_SIZE 1
+
+#define VGT_DEBUG_REG21_null_terminate_vtx_vector_SHIFT 0
+#define VGT_DEBUG_REG21_prim_end_of_vtx_vect_flags_SHIFT 1
+#define VGT_DEBUG_REG21_alloc_counter_q_SHIFT 4
+#define VGT_DEBUG_REG21_curr_slot_in_vtx_vect_q_SHIFT 7
+#define VGT_DEBUG_REG21_int_vtx_counter_q_SHIFT 10
+#define VGT_DEBUG_REG21_curr_dealloc_distance_q_SHIFT 14
+#define VGT_DEBUG_REG21_new_packet_q_SHIFT 18
+#define VGT_DEBUG_REG21_new_allocate_q_SHIFT 19
+#define VGT_DEBUG_REG21_num_new_unique_rel_indx_SHIFT 20
+#define VGT_DEBUG_REG21_inserted_null_prim_q_SHIFT 22
+#define VGT_DEBUG_REG21_insert_null_prim_SHIFT 23
+#define VGT_DEBUG_REG21_buffered_prim_eop_mux_SHIFT 24
+#define VGT_DEBUG_REG21_prim_buffer_empty_mux_SHIFT 25
+#define VGT_DEBUG_REG21_buffered_thread_size_SHIFT 26
+#define VGT_DEBUG_REG21_out_trigger_SHIFT 31
+
+#define VGT_DEBUG_REG21_null_terminate_vtx_vector_MASK 0x00000001
+#define VGT_DEBUG_REG21_prim_end_of_vtx_vect_flags_MASK 0x0000000e
+#define VGT_DEBUG_REG21_alloc_counter_q_MASK 0x00000070
+#define VGT_DEBUG_REG21_curr_slot_in_vtx_vect_q_MASK 0x00000380
+#define VGT_DEBUG_REG21_int_vtx_counter_q_MASK 0x00003c00
+#define VGT_DEBUG_REG21_curr_dealloc_distance_q_MASK 0x0003c000
+#define VGT_DEBUG_REG21_new_packet_q_MASK 0x00040000
+#define VGT_DEBUG_REG21_new_allocate_q_MASK 0x00080000
+#define VGT_DEBUG_REG21_num_new_unique_rel_indx_MASK 0x00300000
+#define VGT_DEBUG_REG21_inserted_null_prim_q_MASK 0x00400000
+#define VGT_DEBUG_REG21_insert_null_prim_MASK 0x00800000
+#define VGT_DEBUG_REG21_buffered_prim_eop_mux_MASK 0x01000000
+#define VGT_DEBUG_REG21_prim_buffer_empty_mux_MASK 0x02000000
+#define VGT_DEBUG_REG21_buffered_thread_size_MASK 0x04000000
+#define VGT_DEBUG_REG21_out_trigger_MASK 0x80000000
+
+#define VGT_DEBUG_REG21_MASK \
+ (VGT_DEBUG_REG21_null_terminate_vtx_vector_MASK | \
+ VGT_DEBUG_REG21_prim_end_of_vtx_vect_flags_MASK | \
+ VGT_DEBUG_REG21_alloc_counter_q_MASK | \
+ VGT_DEBUG_REG21_curr_slot_in_vtx_vect_q_MASK | \
+ VGT_DEBUG_REG21_int_vtx_counter_q_MASK | \
+ VGT_DEBUG_REG21_curr_dealloc_distance_q_MASK | \
+ VGT_DEBUG_REG21_new_packet_q_MASK | \
+ VGT_DEBUG_REG21_new_allocate_q_MASK | \
+ VGT_DEBUG_REG21_num_new_unique_rel_indx_MASK | \
+ VGT_DEBUG_REG21_inserted_null_prim_q_MASK | \
+ VGT_DEBUG_REG21_insert_null_prim_MASK | \
+ VGT_DEBUG_REG21_buffered_prim_eop_mux_MASK | \
+ VGT_DEBUG_REG21_prim_buffer_empty_mux_MASK | \
+ VGT_DEBUG_REG21_buffered_thread_size_MASK | \
+ VGT_DEBUG_REG21_out_trigger_MASK)
+
+#define VGT_DEBUG_REG21(null_terminate_vtx_vector, prim_end_of_vtx_vect_flags, alloc_counter_q, curr_slot_in_vtx_vect_q, int_vtx_counter_q, curr_dealloc_distance_q, new_packet_q, new_allocate_q, num_new_unique_rel_indx, inserted_null_prim_q, insert_null_prim, buffered_prim_eop_mux, prim_buffer_empty_mux, buffered_thread_size, out_trigger) \
+ ((null_terminate_vtx_vector << VGT_DEBUG_REG21_null_terminate_vtx_vector_SHIFT) | \
+ (prim_end_of_vtx_vect_flags << VGT_DEBUG_REG21_prim_end_of_vtx_vect_flags_SHIFT) | \
+ (alloc_counter_q << VGT_DEBUG_REG21_alloc_counter_q_SHIFT) | \
+ (curr_slot_in_vtx_vect_q << VGT_DEBUG_REG21_curr_slot_in_vtx_vect_q_SHIFT) | \
+ (int_vtx_counter_q << VGT_DEBUG_REG21_int_vtx_counter_q_SHIFT) | \
+ (curr_dealloc_distance_q << VGT_DEBUG_REG21_curr_dealloc_distance_q_SHIFT) | \
+ (new_packet_q << VGT_DEBUG_REG21_new_packet_q_SHIFT) | \
+ (new_allocate_q << VGT_DEBUG_REG21_new_allocate_q_SHIFT) | \
+ (num_new_unique_rel_indx << VGT_DEBUG_REG21_num_new_unique_rel_indx_SHIFT) | \
+ (inserted_null_prim_q << VGT_DEBUG_REG21_inserted_null_prim_q_SHIFT) | \
+ (insert_null_prim << VGT_DEBUG_REG21_insert_null_prim_SHIFT) | \
+ (buffered_prim_eop_mux << VGT_DEBUG_REG21_buffered_prim_eop_mux_SHIFT) | \
+ (prim_buffer_empty_mux << VGT_DEBUG_REG21_prim_buffer_empty_mux_SHIFT) | \
+ (buffered_thread_size << VGT_DEBUG_REG21_buffered_thread_size_SHIFT) | \
+ (out_trigger << VGT_DEBUG_REG21_out_trigger_SHIFT))
+
+#define VGT_DEBUG_REG21_GET_null_terminate_vtx_vector(vgt_debug_reg21) \
+ ((vgt_debug_reg21 & VGT_DEBUG_REG21_null_terminate_vtx_vector_MASK) >> VGT_DEBUG_REG21_null_terminate_vtx_vector_SHIFT)
+#define VGT_DEBUG_REG21_GET_prim_end_of_vtx_vect_flags(vgt_debug_reg21) \
+ ((vgt_debug_reg21 & VGT_DEBUG_REG21_prim_end_of_vtx_vect_flags_MASK) >> VGT_DEBUG_REG21_prim_end_of_vtx_vect_flags_SHIFT)
+#define VGT_DEBUG_REG21_GET_alloc_counter_q(vgt_debug_reg21) \
+ ((vgt_debug_reg21 & VGT_DEBUG_REG21_alloc_counter_q_MASK) >> VGT_DEBUG_REG21_alloc_counter_q_SHIFT)
+#define VGT_DEBUG_REG21_GET_curr_slot_in_vtx_vect_q(vgt_debug_reg21) \
+ ((vgt_debug_reg21 & VGT_DEBUG_REG21_curr_slot_in_vtx_vect_q_MASK) >> VGT_DEBUG_REG21_curr_slot_in_vtx_vect_q_SHIFT)
+#define VGT_DEBUG_REG21_GET_int_vtx_counter_q(vgt_debug_reg21) \
+ ((vgt_debug_reg21 & VGT_DEBUG_REG21_int_vtx_counter_q_MASK) >> VGT_DEBUG_REG21_int_vtx_counter_q_SHIFT)
+#define VGT_DEBUG_REG21_GET_curr_dealloc_distance_q(vgt_debug_reg21) \
+ ((vgt_debug_reg21 & VGT_DEBUG_REG21_curr_dealloc_distance_q_MASK) >> VGT_DEBUG_REG21_curr_dealloc_distance_q_SHIFT)
+#define VGT_DEBUG_REG21_GET_new_packet_q(vgt_debug_reg21) \
+ ((vgt_debug_reg21 & VGT_DEBUG_REG21_new_packet_q_MASK) >> VGT_DEBUG_REG21_new_packet_q_SHIFT)
+#define VGT_DEBUG_REG21_GET_new_allocate_q(vgt_debug_reg21) \
+ ((vgt_debug_reg21 & VGT_DEBUG_REG21_new_allocate_q_MASK) >> VGT_DEBUG_REG21_new_allocate_q_SHIFT)
+#define VGT_DEBUG_REG21_GET_num_new_unique_rel_indx(vgt_debug_reg21) \
+ ((vgt_debug_reg21 & VGT_DEBUG_REG21_num_new_unique_rel_indx_MASK) >> VGT_DEBUG_REG21_num_new_unique_rel_indx_SHIFT)
+#define VGT_DEBUG_REG21_GET_inserted_null_prim_q(vgt_debug_reg21) \
+ ((vgt_debug_reg21 & VGT_DEBUG_REG21_inserted_null_prim_q_MASK) >> VGT_DEBUG_REG21_inserted_null_prim_q_SHIFT)
+#define VGT_DEBUG_REG21_GET_insert_null_prim(vgt_debug_reg21) \
+ ((vgt_debug_reg21 & VGT_DEBUG_REG21_insert_null_prim_MASK) >> VGT_DEBUG_REG21_insert_null_prim_SHIFT)
+#define VGT_DEBUG_REG21_GET_buffered_prim_eop_mux(vgt_debug_reg21) \
+ ((vgt_debug_reg21 & VGT_DEBUG_REG21_buffered_prim_eop_mux_MASK) >> VGT_DEBUG_REG21_buffered_prim_eop_mux_SHIFT)
+#define VGT_DEBUG_REG21_GET_prim_buffer_empty_mux(vgt_debug_reg21) \
+ ((vgt_debug_reg21 & VGT_DEBUG_REG21_prim_buffer_empty_mux_MASK) >> VGT_DEBUG_REG21_prim_buffer_empty_mux_SHIFT)
+#define VGT_DEBUG_REG21_GET_buffered_thread_size(vgt_debug_reg21) \
+ ((vgt_debug_reg21 & VGT_DEBUG_REG21_buffered_thread_size_MASK) >> VGT_DEBUG_REG21_buffered_thread_size_SHIFT)
+#define VGT_DEBUG_REG21_GET_out_trigger(vgt_debug_reg21) \
+ ((vgt_debug_reg21 & VGT_DEBUG_REG21_out_trigger_MASK) >> VGT_DEBUG_REG21_out_trigger_SHIFT)
+
+#define VGT_DEBUG_REG21_SET_null_terminate_vtx_vector(vgt_debug_reg21_reg, null_terminate_vtx_vector) \
+ vgt_debug_reg21_reg = (vgt_debug_reg21_reg & ~VGT_DEBUG_REG21_null_terminate_vtx_vector_MASK) | (null_terminate_vtx_vector << VGT_DEBUG_REG21_null_terminate_vtx_vector_SHIFT)
+#define VGT_DEBUG_REG21_SET_prim_end_of_vtx_vect_flags(vgt_debug_reg21_reg, prim_end_of_vtx_vect_flags) \
+ vgt_debug_reg21_reg = (vgt_debug_reg21_reg & ~VGT_DEBUG_REG21_prim_end_of_vtx_vect_flags_MASK) | (prim_end_of_vtx_vect_flags << VGT_DEBUG_REG21_prim_end_of_vtx_vect_flags_SHIFT)
+#define VGT_DEBUG_REG21_SET_alloc_counter_q(vgt_debug_reg21_reg, alloc_counter_q) \
+ vgt_debug_reg21_reg = (vgt_debug_reg21_reg & ~VGT_DEBUG_REG21_alloc_counter_q_MASK) | (alloc_counter_q << VGT_DEBUG_REG21_alloc_counter_q_SHIFT)
+#define VGT_DEBUG_REG21_SET_curr_slot_in_vtx_vect_q(vgt_debug_reg21_reg, curr_slot_in_vtx_vect_q) \
+ vgt_debug_reg21_reg = (vgt_debug_reg21_reg & ~VGT_DEBUG_REG21_curr_slot_in_vtx_vect_q_MASK) | (curr_slot_in_vtx_vect_q << VGT_DEBUG_REG21_curr_slot_in_vtx_vect_q_SHIFT)
+#define VGT_DEBUG_REG21_SET_int_vtx_counter_q(vgt_debug_reg21_reg, int_vtx_counter_q) \
+ vgt_debug_reg21_reg = (vgt_debug_reg21_reg & ~VGT_DEBUG_REG21_int_vtx_counter_q_MASK) | (int_vtx_counter_q << VGT_DEBUG_REG21_int_vtx_counter_q_SHIFT)
+#define VGT_DEBUG_REG21_SET_curr_dealloc_distance_q(vgt_debug_reg21_reg, curr_dealloc_distance_q) \
+ vgt_debug_reg21_reg = (vgt_debug_reg21_reg & ~VGT_DEBUG_REG21_curr_dealloc_distance_q_MASK) | (curr_dealloc_distance_q << VGT_DEBUG_REG21_curr_dealloc_distance_q_SHIFT)
+#define VGT_DEBUG_REG21_SET_new_packet_q(vgt_debug_reg21_reg, new_packet_q) \
+ vgt_debug_reg21_reg = (vgt_debug_reg21_reg & ~VGT_DEBUG_REG21_new_packet_q_MASK) | (new_packet_q << VGT_DEBUG_REG21_new_packet_q_SHIFT)
+#define VGT_DEBUG_REG21_SET_new_allocate_q(vgt_debug_reg21_reg, new_allocate_q) \
+ vgt_debug_reg21_reg = (vgt_debug_reg21_reg & ~VGT_DEBUG_REG21_new_allocate_q_MASK) | (new_allocate_q << VGT_DEBUG_REG21_new_allocate_q_SHIFT)
+#define VGT_DEBUG_REG21_SET_num_new_unique_rel_indx(vgt_debug_reg21_reg, num_new_unique_rel_indx) \
+ vgt_debug_reg21_reg = (vgt_debug_reg21_reg & ~VGT_DEBUG_REG21_num_new_unique_rel_indx_MASK) | (num_new_unique_rel_indx << VGT_DEBUG_REG21_num_new_unique_rel_indx_SHIFT)
+#define VGT_DEBUG_REG21_SET_inserted_null_prim_q(vgt_debug_reg21_reg, inserted_null_prim_q) \
+ vgt_debug_reg21_reg = (vgt_debug_reg21_reg & ~VGT_DEBUG_REG21_inserted_null_prim_q_MASK) | (inserted_null_prim_q << VGT_DEBUG_REG21_inserted_null_prim_q_SHIFT)
+#define VGT_DEBUG_REG21_SET_insert_null_prim(vgt_debug_reg21_reg, insert_null_prim) \
+ vgt_debug_reg21_reg = (vgt_debug_reg21_reg & ~VGT_DEBUG_REG21_insert_null_prim_MASK) | (insert_null_prim << VGT_DEBUG_REG21_insert_null_prim_SHIFT)
+#define VGT_DEBUG_REG21_SET_buffered_prim_eop_mux(vgt_debug_reg21_reg, buffered_prim_eop_mux) \
+ vgt_debug_reg21_reg = (vgt_debug_reg21_reg & ~VGT_DEBUG_REG21_buffered_prim_eop_mux_MASK) | (buffered_prim_eop_mux << VGT_DEBUG_REG21_buffered_prim_eop_mux_SHIFT)
+#define VGT_DEBUG_REG21_SET_prim_buffer_empty_mux(vgt_debug_reg21_reg, prim_buffer_empty_mux) \
+ vgt_debug_reg21_reg = (vgt_debug_reg21_reg & ~VGT_DEBUG_REG21_prim_buffer_empty_mux_MASK) | (prim_buffer_empty_mux << VGT_DEBUG_REG21_prim_buffer_empty_mux_SHIFT)
+#define VGT_DEBUG_REG21_SET_buffered_thread_size(vgt_debug_reg21_reg, buffered_thread_size) \
+ vgt_debug_reg21_reg = (vgt_debug_reg21_reg & ~VGT_DEBUG_REG21_buffered_thread_size_MASK) | (buffered_thread_size << VGT_DEBUG_REG21_buffered_thread_size_SHIFT)
+#define VGT_DEBUG_REG21_SET_out_trigger(vgt_debug_reg21_reg, out_trigger) \
+ vgt_debug_reg21_reg = (vgt_debug_reg21_reg & ~VGT_DEBUG_REG21_out_trigger_MASK) | (out_trigger << VGT_DEBUG_REG21_out_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg21_t {
+ unsigned int null_terminate_vtx_vector : VGT_DEBUG_REG21_null_terminate_vtx_vector_SIZE;
+ unsigned int prim_end_of_vtx_vect_flags : VGT_DEBUG_REG21_prim_end_of_vtx_vect_flags_SIZE;
+ unsigned int alloc_counter_q : VGT_DEBUG_REG21_alloc_counter_q_SIZE;
+ unsigned int curr_slot_in_vtx_vect_q : VGT_DEBUG_REG21_curr_slot_in_vtx_vect_q_SIZE;
+ unsigned int int_vtx_counter_q : VGT_DEBUG_REG21_int_vtx_counter_q_SIZE;
+ unsigned int curr_dealloc_distance_q : VGT_DEBUG_REG21_curr_dealloc_distance_q_SIZE;
+ unsigned int new_packet_q : VGT_DEBUG_REG21_new_packet_q_SIZE;
+ unsigned int new_allocate_q : VGT_DEBUG_REG21_new_allocate_q_SIZE;
+ unsigned int num_new_unique_rel_indx : VGT_DEBUG_REG21_num_new_unique_rel_indx_SIZE;
+ unsigned int inserted_null_prim_q : VGT_DEBUG_REG21_inserted_null_prim_q_SIZE;
+ unsigned int insert_null_prim : VGT_DEBUG_REG21_insert_null_prim_SIZE;
+ unsigned int buffered_prim_eop_mux : VGT_DEBUG_REG21_buffered_prim_eop_mux_SIZE;
+ unsigned int prim_buffer_empty_mux : VGT_DEBUG_REG21_prim_buffer_empty_mux_SIZE;
+ unsigned int buffered_thread_size : VGT_DEBUG_REG21_buffered_thread_size_SIZE;
+ unsigned int : 4;
+ unsigned int out_trigger : VGT_DEBUG_REG21_out_trigger_SIZE;
+ } vgt_debug_reg21_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg21_t {
+ unsigned int out_trigger : VGT_DEBUG_REG21_out_trigger_SIZE;
+ unsigned int : 4;
+ unsigned int buffered_thread_size : VGT_DEBUG_REG21_buffered_thread_size_SIZE;
+ unsigned int prim_buffer_empty_mux : VGT_DEBUG_REG21_prim_buffer_empty_mux_SIZE;
+ unsigned int buffered_prim_eop_mux : VGT_DEBUG_REG21_buffered_prim_eop_mux_SIZE;
+ unsigned int insert_null_prim : VGT_DEBUG_REG21_insert_null_prim_SIZE;
+ unsigned int inserted_null_prim_q : VGT_DEBUG_REG21_inserted_null_prim_q_SIZE;
+ unsigned int num_new_unique_rel_indx : VGT_DEBUG_REG21_num_new_unique_rel_indx_SIZE;
+ unsigned int new_allocate_q : VGT_DEBUG_REG21_new_allocate_q_SIZE;
+ unsigned int new_packet_q : VGT_DEBUG_REG21_new_packet_q_SIZE;
+ unsigned int curr_dealloc_distance_q : VGT_DEBUG_REG21_curr_dealloc_distance_q_SIZE;
+ unsigned int int_vtx_counter_q : VGT_DEBUG_REG21_int_vtx_counter_q_SIZE;
+ unsigned int curr_slot_in_vtx_vect_q : VGT_DEBUG_REG21_curr_slot_in_vtx_vect_q_SIZE;
+ unsigned int alloc_counter_q : VGT_DEBUG_REG21_alloc_counter_q_SIZE;
+ unsigned int prim_end_of_vtx_vect_flags : VGT_DEBUG_REG21_prim_end_of_vtx_vect_flags_SIZE;
+ unsigned int null_terminate_vtx_vector : VGT_DEBUG_REG21_null_terminate_vtx_vector_SIZE;
+ } vgt_debug_reg21_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_reg21_t f;
+} vgt_debug_reg21_u;
+
+
+/*
+ * VGT_CRC_SQ_DATA struct
+ */
+
+#define VGT_CRC_SQ_DATA_CRC_SIZE 32
+
+#define VGT_CRC_SQ_DATA_CRC_SHIFT 0
+
+#define VGT_CRC_SQ_DATA_CRC_MASK 0xffffffff
+
+#define VGT_CRC_SQ_DATA_MASK \
+ (VGT_CRC_SQ_DATA_CRC_MASK)
+
+#define VGT_CRC_SQ_DATA(crc) \
+ ((crc << VGT_CRC_SQ_DATA_CRC_SHIFT))
+
+#define VGT_CRC_SQ_DATA_GET_CRC(vgt_crc_sq_data) \
+ ((vgt_crc_sq_data & VGT_CRC_SQ_DATA_CRC_MASK) >> VGT_CRC_SQ_DATA_CRC_SHIFT)
+
+#define VGT_CRC_SQ_DATA_SET_CRC(vgt_crc_sq_data_reg, crc) \
+ vgt_crc_sq_data_reg = (vgt_crc_sq_data_reg & ~VGT_CRC_SQ_DATA_CRC_MASK) | (crc << VGT_CRC_SQ_DATA_CRC_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_crc_sq_data_t {
+ unsigned int crc : VGT_CRC_SQ_DATA_CRC_SIZE;
+ } vgt_crc_sq_data_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_crc_sq_data_t {
+ unsigned int crc : VGT_CRC_SQ_DATA_CRC_SIZE;
+ } vgt_crc_sq_data_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_crc_sq_data_t f;
+} vgt_crc_sq_data_u;
+
+
+/*
+ * VGT_CRC_SQ_CTRL struct
+ */
+
+#define VGT_CRC_SQ_CTRL_CRC_SIZE 32
+
+#define VGT_CRC_SQ_CTRL_CRC_SHIFT 0
+
+#define VGT_CRC_SQ_CTRL_CRC_MASK 0xffffffff
+
+#define VGT_CRC_SQ_CTRL_MASK \
+ (VGT_CRC_SQ_CTRL_CRC_MASK)
+
+#define VGT_CRC_SQ_CTRL(crc) \
+ ((crc << VGT_CRC_SQ_CTRL_CRC_SHIFT))
+
+#define VGT_CRC_SQ_CTRL_GET_CRC(vgt_crc_sq_ctrl) \
+ ((vgt_crc_sq_ctrl & VGT_CRC_SQ_CTRL_CRC_MASK) >> VGT_CRC_SQ_CTRL_CRC_SHIFT)
+
+#define VGT_CRC_SQ_CTRL_SET_CRC(vgt_crc_sq_ctrl_reg, crc) \
+ vgt_crc_sq_ctrl_reg = (vgt_crc_sq_ctrl_reg & ~VGT_CRC_SQ_CTRL_CRC_MASK) | (crc << VGT_CRC_SQ_CTRL_CRC_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_crc_sq_ctrl_t {
+ unsigned int crc : VGT_CRC_SQ_CTRL_CRC_SIZE;
+ } vgt_crc_sq_ctrl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_crc_sq_ctrl_t {
+ unsigned int crc : VGT_CRC_SQ_CTRL_CRC_SIZE;
+ } vgt_crc_sq_ctrl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_crc_sq_ctrl_t f;
+} vgt_crc_sq_ctrl_u;
+
+
+/*
+ * VGT_PERFCOUNTER0_SELECT struct
+ */
+
+#define VGT_PERFCOUNTER0_SELECT_PERF_SEL_SIZE 8
+
+#define VGT_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT 0
+
+#define VGT_PERFCOUNTER0_SELECT_PERF_SEL_MASK 0x000000ff
+
+#define VGT_PERFCOUNTER0_SELECT_MASK \
+ (VGT_PERFCOUNTER0_SELECT_PERF_SEL_MASK)
+
+#define VGT_PERFCOUNTER0_SELECT(perf_sel) \
+ ((perf_sel << VGT_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT))
+
+#define VGT_PERFCOUNTER0_SELECT_GET_PERF_SEL(vgt_perfcounter0_select) \
+ ((vgt_perfcounter0_select & VGT_PERFCOUNTER0_SELECT_PERF_SEL_MASK) >> VGT_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT)
+
+#define VGT_PERFCOUNTER0_SELECT_SET_PERF_SEL(vgt_perfcounter0_select_reg, perf_sel) \
+ vgt_perfcounter0_select_reg = (vgt_perfcounter0_select_reg & ~VGT_PERFCOUNTER0_SELECT_PERF_SEL_MASK) | (perf_sel << VGT_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter0_select_t {
+ unsigned int perf_sel : VGT_PERFCOUNTER0_SELECT_PERF_SEL_SIZE;
+ unsigned int : 24;
+ } vgt_perfcounter0_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter0_select_t {
+ unsigned int : 24;
+ unsigned int perf_sel : VGT_PERFCOUNTER0_SELECT_PERF_SEL_SIZE;
+ } vgt_perfcounter0_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_perfcounter0_select_t f;
+} vgt_perfcounter0_select_u;
+
+
+/*
+ * VGT_PERFCOUNTER1_SELECT struct
+ */
+
+#define VGT_PERFCOUNTER1_SELECT_PERF_SEL_SIZE 8
+
+#define VGT_PERFCOUNTER1_SELECT_PERF_SEL_SHIFT 0
+
+#define VGT_PERFCOUNTER1_SELECT_PERF_SEL_MASK 0x000000ff
+
+#define VGT_PERFCOUNTER1_SELECT_MASK \
+ (VGT_PERFCOUNTER1_SELECT_PERF_SEL_MASK)
+
+#define VGT_PERFCOUNTER1_SELECT(perf_sel) \
+ ((perf_sel << VGT_PERFCOUNTER1_SELECT_PERF_SEL_SHIFT))
+
+#define VGT_PERFCOUNTER1_SELECT_GET_PERF_SEL(vgt_perfcounter1_select) \
+ ((vgt_perfcounter1_select & VGT_PERFCOUNTER1_SELECT_PERF_SEL_MASK) >> VGT_PERFCOUNTER1_SELECT_PERF_SEL_SHIFT)
+
+#define VGT_PERFCOUNTER1_SELECT_SET_PERF_SEL(vgt_perfcounter1_select_reg, perf_sel) \
+ vgt_perfcounter1_select_reg = (vgt_perfcounter1_select_reg & ~VGT_PERFCOUNTER1_SELECT_PERF_SEL_MASK) | (perf_sel << VGT_PERFCOUNTER1_SELECT_PERF_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter1_select_t {
+ unsigned int perf_sel : VGT_PERFCOUNTER1_SELECT_PERF_SEL_SIZE;
+ unsigned int : 24;
+ } vgt_perfcounter1_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter1_select_t {
+ unsigned int : 24;
+ unsigned int perf_sel : VGT_PERFCOUNTER1_SELECT_PERF_SEL_SIZE;
+ } vgt_perfcounter1_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_perfcounter1_select_t f;
+} vgt_perfcounter1_select_u;
+
+
+/*
+ * VGT_PERFCOUNTER2_SELECT struct
+ */
+
+#define VGT_PERFCOUNTER2_SELECT_PERF_SEL_SIZE 8
+
+#define VGT_PERFCOUNTER2_SELECT_PERF_SEL_SHIFT 0
+
+#define VGT_PERFCOUNTER2_SELECT_PERF_SEL_MASK 0x000000ff
+
+#define VGT_PERFCOUNTER2_SELECT_MASK \
+ (VGT_PERFCOUNTER2_SELECT_PERF_SEL_MASK)
+
+#define VGT_PERFCOUNTER2_SELECT(perf_sel) \
+ ((perf_sel << VGT_PERFCOUNTER2_SELECT_PERF_SEL_SHIFT))
+
+#define VGT_PERFCOUNTER2_SELECT_GET_PERF_SEL(vgt_perfcounter2_select) \
+ ((vgt_perfcounter2_select & VGT_PERFCOUNTER2_SELECT_PERF_SEL_MASK) >> VGT_PERFCOUNTER2_SELECT_PERF_SEL_SHIFT)
+
+#define VGT_PERFCOUNTER2_SELECT_SET_PERF_SEL(vgt_perfcounter2_select_reg, perf_sel) \
+ vgt_perfcounter2_select_reg = (vgt_perfcounter2_select_reg & ~VGT_PERFCOUNTER2_SELECT_PERF_SEL_MASK) | (perf_sel << VGT_PERFCOUNTER2_SELECT_PERF_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter2_select_t {
+ unsigned int perf_sel : VGT_PERFCOUNTER2_SELECT_PERF_SEL_SIZE;
+ unsigned int : 24;
+ } vgt_perfcounter2_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter2_select_t {
+ unsigned int : 24;
+ unsigned int perf_sel : VGT_PERFCOUNTER2_SELECT_PERF_SEL_SIZE;
+ } vgt_perfcounter2_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_perfcounter2_select_t f;
+} vgt_perfcounter2_select_u;
+
+
+/*
+ * VGT_PERFCOUNTER3_SELECT struct
+ */
+
+#define VGT_PERFCOUNTER3_SELECT_PERF_SEL_SIZE 8
+
+#define VGT_PERFCOUNTER3_SELECT_PERF_SEL_SHIFT 0
+
+#define VGT_PERFCOUNTER3_SELECT_PERF_SEL_MASK 0x000000ff
+
+#define VGT_PERFCOUNTER3_SELECT_MASK \
+ (VGT_PERFCOUNTER3_SELECT_PERF_SEL_MASK)
+
+#define VGT_PERFCOUNTER3_SELECT(perf_sel) \
+ ((perf_sel << VGT_PERFCOUNTER3_SELECT_PERF_SEL_SHIFT))
+
+#define VGT_PERFCOUNTER3_SELECT_GET_PERF_SEL(vgt_perfcounter3_select) \
+ ((vgt_perfcounter3_select & VGT_PERFCOUNTER3_SELECT_PERF_SEL_MASK) >> VGT_PERFCOUNTER3_SELECT_PERF_SEL_SHIFT)
+
+#define VGT_PERFCOUNTER3_SELECT_SET_PERF_SEL(vgt_perfcounter3_select_reg, perf_sel) \
+ vgt_perfcounter3_select_reg = (vgt_perfcounter3_select_reg & ~VGT_PERFCOUNTER3_SELECT_PERF_SEL_MASK) | (perf_sel << VGT_PERFCOUNTER3_SELECT_PERF_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter3_select_t {
+ unsigned int perf_sel : VGT_PERFCOUNTER3_SELECT_PERF_SEL_SIZE;
+ unsigned int : 24;
+ } vgt_perfcounter3_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter3_select_t {
+ unsigned int : 24;
+ unsigned int perf_sel : VGT_PERFCOUNTER3_SELECT_PERF_SEL_SIZE;
+ } vgt_perfcounter3_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_perfcounter3_select_t f;
+} vgt_perfcounter3_select_u;
+
+
+/*
+ * VGT_PERFCOUNTER0_LOW struct
+ */
+
+#define VGT_PERFCOUNTER0_LOW_PERF_COUNT_SIZE 32
+
+#define VGT_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT 0
+
+#define VGT_PERFCOUNTER0_LOW_PERF_COUNT_MASK 0xffffffff
+
+#define VGT_PERFCOUNTER0_LOW_MASK \
+ (VGT_PERFCOUNTER0_LOW_PERF_COUNT_MASK)
+
+#define VGT_PERFCOUNTER0_LOW(perf_count) \
+ ((perf_count << VGT_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT))
+
+#define VGT_PERFCOUNTER0_LOW_GET_PERF_COUNT(vgt_perfcounter0_low) \
+ ((vgt_perfcounter0_low & VGT_PERFCOUNTER0_LOW_PERF_COUNT_MASK) >> VGT_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT)
+
+#define VGT_PERFCOUNTER0_LOW_SET_PERF_COUNT(vgt_perfcounter0_low_reg, perf_count) \
+ vgt_perfcounter0_low_reg = (vgt_perfcounter0_low_reg & ~VGT_PERFCOUNTER0_LOW_PERF_COUNT_MASK) | (perf_count << VGT_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter0_low_t {
+ unsigned int perf_count : VGT_PERFCOUNTER0_LOW_PERF_COUNT_SIZE;
+ } vgt_perfcounter0_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter0_low_t {
+ unsigned int perf_count : VGT_PERFCOUNTER0_LOW_PERF_COUNT_SIZE;
+ } vgt_perfcounter0_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_perfcounter0_low_t f;
+} vgt_perfcounter0_low_u;
+
+
+/*
+ * VGT_PERFCOUNTER1_LOW struct
+ */
+
+#define VGT_PERFCOUNTER1_LOW_PERF_COUNT_SIZE 32
+
+#define VGT_PERFCOUNTER1_LOW_PERF_COUNT_SHIFT 0
+
+#define VGT_PERFCOUNTER1_LOW_PERF_COUNT_MASK 0xffffffff
+
+#define VGT_PERFCOUNTER1_LOW_MASK \
+ (VGT_PERFCOUNTER1_LOW_PERF_COUNT_MASK)
+
+#define VGT_PERFCOUNTER1_LOW(perf_count) \
+ ((perf_count << VGT_PERFCOUNTER1_LOW_PERF_COUNT_SHIFT))
+
+#define VGT_PERFCOUNTER1_LOW_GET_PERF_COUNT(vgt_perfcounter1_low) \
+ ((vgt_perfcounter1_low & VGT_PERFCOUNTER1_LOW_PERF_COUNT_MASK) >> VGT_PERFCOUNTER1_LOW_PERF_COUNT_SHIFT)
+
+#define VGT_PERFCOUNTER1_LOW_SET_PERF_COUNT(vgt_perfcounter1_low_reg, perf_count) \
+ vgt_perfcounter1_low_reg = (vgt_perfcounter1_low_reg & ~VGT_PERFCOUNTER1_LOW_PERF_COUNT_MASK) | (perf_count << VGT_PERFCOUNTER1_LOW_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter1_low_t {
+ unsigned int perf_count : VGT_PERFCOUNTER1_LOW_PERF_COUNT_SIZE;
+ } vgt_perfcounter1_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter1_low_t {
+ unsigned int perf_count : VGT_PERFCOUNTER1_LOW_PERF_COUNT_SIZE;
+ } vgt_perfcounter1_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_perfcounter1_low_t f;
+} vgt_perfcounter1_low_u;
+
+
+/*
+ * VGT_PERFCOUNTER2_LOW struct
+ */
+
+#define VGT_PERFCOUNTER2_LOW_PERF_COUNT_SIZE 32
+
+#define VGT_PERFCOUNTER2_LOW_PERF_COUNT_SHIFT 0
+
+#define VGT_PERFCOUNTER2_LOW_PERF_COUNT_MASK 0xffffffff
+
+#define VGT_PERFCOUNTER2_LOW_MASK \
+ (VGT_PERFCOUNTER2_LOW_PERF_COUNT_MASK)
+
+#define VGT_PERFCOUNTER2_LOW(perf_count) \
+ ((perf_count << VGT_PERFCOUNTER2_LOW_PERF_COUNT_SHIFT))
+
+#define VGT_PERFCOUNTER2_LOW_GET_PERF_COUNT(vgt_perfcounter2_low) \
+ ((vgt_perfcounter2_low & VGT_PERFCOUNTER2_LOW_PERF_COUNT_MASK) >> VGT_PERFCOUNTER2_LOW_PERF_COUNT_SHIFT)
+
+#define VGT_PERFCOUNTER2_LOW_SET_PERF_COUNT(vgt_perfcounter2_low_reg, perf_count) \
+ vgt_perfcounter2_low_reg = (vgt_perfcounter2_low_reg & ~VGT_PERFCOUNTER2_LOW_PERF_COUNT_MASK) | (perf_count << VGT_PERFCOUNTER2_LOW_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter2_low_t {
+ unsigned int perf_count : VGT_PERFCOUNTER2_LOW_PERF_COUNT_SIZE;
+ } vgt_perfcounter2_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter2_low_t {
+ unsigned int perf_count : VGT_PERFCOUNTER2_LOW_PERF_COUNT_SIZE;
+ } vgt_perfcounter2_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_perfcounter2_low_t f;
+} vgt_perfcounter2_low_u;
+
+
+/*
+ * VGT_PERFCOUNTER3_LOW struct
+ */
+
+#define VGT_PERFCOUNTER3_LOW_PERF_COUNT_SIZE 32
+
+#define VGT_PERFCOUNTER3_LOW_PERF_COUNT_SHIFT 0
+
+#define VGT_PERFCOUNTER3_LOW_PERF_COUNT_MASK 0xffffffff
+
+#define VGT_PERFCOUNTER3_LOW_MASK \
+ (VGT_PERFCOUNTER3_LOW_PERF_COUNT_MASK)
+
+#define VGT_PERFCOUNTER3_LOW(perf_count) \
+ ((perf_count << VGT_PERFCOUNTER3_LOW_PERF_COUNT_SHIFT))
+
+#define VGT_PERFCOUNTER3_LOW_GET_PERF_COUNT(vgt_perfcounter3_low) \
+ ((vgt_perfcounter3_low & VGT_PERFCOUNTER3_LOW_PERF_COUNT_MASK) >> VGT_PERFCOUNTER3_LOW_PERF_COUNT_SHIFT)
+
+#define VGT_PERFCOUNTER3_LOW_SET_PERF_COUNT(vgt_perfcounter3_low_reg, perf_count) \
+ vgt_perfcounter3_low_reg = (vgt_perfcounter3_low_reg & ~VGT_PERFCOUNTER3_LOW_PERF_COUNT_MASK) | (perf_count << VGT_PERFCOUNTER3_LOW_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter3_low_t {
+ unsigned int perf_count : VGT_PERFCOUNTER3_LOW_PERF_COUNT_SIZE;
+ } vgt_perfcounter3_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter3_low_t {
+ unsigned int perf_count : VGT_PERFCOUNTER3_LOW_PERF_COUNT_SIZE;
+ } vgt_perfcounter3_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_perfcounter3_low_t f;
+} vgt_perfcounter3_low_u;
+
+
+/*
+ * VGT_PERFCOUNTER0_HI struct
+ */
+
+#define VGT_PERFCOUNTER0_HI_PERF_COUNT_SIZE 16
+
+#define VGT_PERFCOUNTER0_HI_PERF_COUNT_SHIFT 0
+
+#define VGT_PERFCOUNTER0_HI_PERF_COUNT_MASK 0x0000ffff
+
+#define VGT_PERFCOUNTER0_HI_MASK \
+ (VGT_PERFCOUNTER0_HI_PERF_COUNT_MASK)
+
+#define VGT_PERFCOUNTER0_HI(perf_count) \
+ ((perf_count << VGT_PERFCOUNTER0_HI_PERF_COUNT_SHIFT))
+
+#define VGT_PERFCOUNTER0_HI_GET_PERF_COUNT(vgt_perfcounter0_hi) \
+ ((vgt_perfcounter0_hi & VGT_PERFCOUNTER0_HI_PERF_COUNT_MASK) >> VGT_PERFCOUNTER0_HI_PERF_COUNT_SHIFT)
+
+#define VGT_PERFCOUNTER0_HI_SET_PERF_COUNT(vgt_perfcounter0_hi_reg, perf_count) \
+ vgt_perfcounter0_hi_reg = (vgt_perfcounter0_hi_reg & ~VGT_PERFCOUNTER0_HI_PERF_COUNT_MASK) | (perf_count << VGT_PERFCOUNTER0_HI_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter0_hi_t {
+ unsigned int perf_count : VGT_PERFCOUNTER0_HI_PERF_COUNT_SIZE;
+ unsigned int : 16;
+ } vgt_perfcounter0_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter0_hi_t {
+ unsigned int : 16;
+ unsigned int perf_count : VGT_PERFCOUNTER0_HI_PERF_COUNT_SIZE;
+ } vgt_perfcounter0_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_perfcounter0_hi_t f;
+} vgt_perfcounter0_hi_u;
+
+
+/*
+ * VGT_PERFCOUNTER1_HI struct
+ */
+
+#define VGT_PERFCOUNTER1_HI_PERF_COUNT_SIZE 16
+
+#define VGT_PERFCOUNTER1_HI_PERF_COUNT_SHIFT 0
+
+#define VGT_PERFCOUNTER1_HI_PERF_COUNT_MASK 0x0000ffff
+
+#define VGT_PERFCOUNTER1_HI_MASK \
+ (VGT_PERFCOUNTER1_HI_PERF_COUNT_MASK)
+
+#define VGT_PERFCOUNTER1_HI(perf_count) \
+ ((perf_count << VGT_PERFCOUNTER1_HI_PERF_COUNT_SHIFT))
+
+#define VGT_PERFCOUNTER1_HI_GET_PERF_COUNT(vgt_perfcounter1_hi) \
+ ((vgt_perfcounter1_hi & VGT_PERFCOUNTER1_HI_PERF_COUNT_MASK) >> VGT_PERFCOUNTER1_HI_PERF_COUNT_SHIFT)
+
+#define VGT_PERFCOUNTER1_HI_SET_PERF_COUNT(vgt_perfcounter1_hi_reg, perf_count) \
+ vgt_perfcounter1_hi_reg = (vgt_perfcounter1_hi_reg & ~VGT_PERFCOUNTER1_HI_PERF_COUNT_MASK) | (perf_count << VGT_PERFCOUNTER1_HI_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter1_hi_t {
+ unsigned int perf_count : VGT_PERFCOUNTER1_HI_PERF_COUNT_SIZE;
+ unsigned int : 16;
+ } vgt_perfcounter1_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter1_hi_t {
+ unsigned int : 16;
+ unsigned int perf_count : VGT_PERFCOUNTER1_HI_PERF_COUNT_SIZE;
+ } vgt_perfcounter1_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_perfcounter1_hi_t f;
+} vgt_perfcounter1_hi_u;
+
+
+/*
+ * VGT_PERFCOUNTER2_HI struct
+ */
+
+#define VGT_PERFCOUNTER2_HI_PERF_COUNT_SIZE 16
+
+#define VGT_PERFCOUNTER2_HI_PERF_COUNT_SHIFT 0
+
+#define VGT_PERFCOUNTER2_HI_PERF_COUNT_MASK 0x0000ffff
+
+#define VGT_PERFCOUNTER2_HI_MASK \
+ (VGT_PERFCOUNTER2_HI_PERF_COUNT_MASK)
+
+#define VGT_PERFCOUNTER2_HI(perf_count) \
+ ((perf_count << VGT_PERFCOUNTER2_HI_PERF_COUNT_SHIFT))
+
+#define VGT_PERFCOUNTER2_HI_GET_PERF_COUNT(vgt_perfcounter2_hi) \
+ ((vgt_perfcounter2_hi & VGT_PERFCOUNTER2_HI_PERF_COUNT_MASK) >> VGT_PERFCOUNTER2_HI_PERF_COUNT_SHIFT)
+
+#define VGT_PERFCOUNTER2_HI_SET_PERF_COUNT(vgt_perfcounter2_hi_reg, perf_count) \
+ vgt_perfcounter2_hi_reg = (vgt_perfcounter2_hi_reg & ~VGT_PERFCOUNTER2_HI_PERF_COUNT_MASK) | (perf_count << VGT_PERFCOUNTER2_HI_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter2_hi_t {
+ unsigned int perf_count : VGT_PERFCOUNTER2_HI_PERF_COUNT_SIZE;
+ unsigned int : 16;
+ } vgt_perfcounter2_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter2_hi_t {
+ unsigned int : 16;
+ unsigned int perf_count : VGT_PERFCOUNTER2_HI_PERF_COUNT_SIZE;
+ } vgt_perfcounter2_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_perfcounter2_hi_t f;
+} vgt_perfcounter2_hi_u;
+
+
+/*
+ * VGT_PERFCOUNTER3_HI struct
+ */
+
+#define VGT_PERFCOUNTER3_HI_PERF_COUNT_SIZE 16
+
+#define VGT_PERFCOUNTER3_HI_PERF_COUNT_SHIFT 0
+
+#define VGT_PERFCOUNTER3_HI_PERF_COUNT_MASK 0x0000ffff
+
+#define VGT_PERFCOUNTER3_HI_MASK \
+ (VGT_PERFCOUNTER3_HI_PERF_COUNT_MASK)
+
+#define VGT_PERFCOUNTER3_HI(perf_count) \
+ ((perf_count << VGT_PERFCOUNTER3_HI_PERF_COUNT_SHIFT))
+
+#define VGT_PERFCOUNTER3_HI_GET_PERF_COUNT(vgt_perfcounter3_hi) \
+ ((vgt_perfcounter3_hi & VGT_PERFCOUNTER3_HI_PERF_COUNT_MASK) >> VGT_PERFCOUNTER3_HI_PERF_COUNT_SHIFT)
+
+#define VGT_PERFCOUNTER3_HI_SET_PERF_COUNT(vgt_perfcounter3_hi_reg, perf_count) \
+ vgt_perfcounter3_hi_reg = (vgt_perfcounter3_hi_reg & ~VGT_PERFCOUNTER3_HI_PERF_COUNT_MASK) | (perf_count << VGT_PERFCOUNTER3_HI_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter3_hi_t {
+ unsigned int perf_count : VGT_PERFCOUNTER3_HI_PERF_COUNT_SIZE;
+ unsigned int : 16;
+ } vgt_perfcounter3_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter3_hi_t {
+ unsigned int : 16;
+ unsigned int perf_count : VGT_PERFCOUNTER3_HI_PERF_COUNT_SIZE;
+ } vgt_perfcounter3_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_perfcounter3_hi_t f;
+} vgt_perfcounter3_hi_u;
+
+
+#endif
+
+
+#if !defined (_SQ_FIDDLE_H)
+#define _SQ_FIDDLE_H
+
+/*******************************************************
+ * Enums
+ *******************************************************/
+
+
+/*******************************************************
+ * Values
+ *******************************************************/
+
+
+/*******************************************************
+ * Structures
+ *******************************************************/
+
+/*
+ * SQ_GPR_MANAGEMENT struct
+ */
+
+#define SQ_GPR_MANAGEMENT_REG_DYNAMIC_SIZE 1
+#define SQ_GPR_MANAGEMENT_REG_SIZE_PIX_SIZE 7
+#define SQ_GPR_MANAGEMENT_REG_SIZE_VTX_SIZE 7
+
+#define SQ_GPR_MANAGEMENT_REG_DYNAMIC_SHIFT 0
+#define SQ_GPR_MANAGEMENT_REG_SIZE_PIX_SHIFT 4
+#define SQ_GPR_MANAGEMENT_REG_SIZE_VTX_SHIFT 12
+
+#define SQ_GPR_MANAGEMENT_REG_DYNAMIC_MASK 0x00000001
+#define SQ_GPR_MANAGEMENT_REG_SIZE_PIX_MASK 0x000007f0
+#define SQ_GPR_MANAGEMENT_REG_SIZE_VTX_MASK 0x0007f000
+
+#define SQ_GPR_MANAGEMENT_MASK \
+ (SQ_GPR_MANAGEMENT_REG_DYNAMIC_MASK | \
+ SQ_GPR_MANAGEMENT_REG_SIZE_PIX_MASK | \
+ SQ_GPR_MANAGEMENT_REG_SIZE_VTX_MASK)
+
+#define SQ_GPR_MANAGEMENT(reg_dynamic, reg_size_pix, reg_size_vtx) \
+ ((reg_dynamic << SQ_GPR_MANAGEMENT_REG_DYNAMIC_SHIFT) | \
+ (reg_size_pix << SQ_GPR_MANAGEMENT_REG_SIZE_PIX_SHIFT) | \
+ (reg_size_vtx << SQ_GPR_MANAGEMENT_REG_SIZE_VTX_SHIFT))
+
+#define SQ_GPR_MANAGEMENT_GET_REG_DYNAMIC(sq_gpr_management) \
+ ((sq_gpr_management & SQ_GPR_MANAGEMENT_REG_DYNAMIC_MASK) >> SQ_GPR_MANAGEMENT_REG_DYNAMIC_SHIFT)
+#define SQ_GPR_MANAGEMENT_GET_REG_SIZE_PIX(sq_gpr_management) \
+ ((sq_gpr_management & SQ_GPR_MANAGEMENT_REG_SIZE_PIX_MASK) >> SQ_GPR_MANAGEMENT_REG_SIZE_PIX_SHIFT)
+#define SQ_GPR_MANAGEMENT_GET_REG_SIZE_VTX(sq_gpr_management) \
+ ((sq_gpr_management & SQ_GPR_MANAGEMENT_REG_SIZE_VTX_MASK) >> SQ_GPR_MANAGEMENT_REG_SIZE_VTX_SHIFT)
+
+#define SQ_GPR_MANAGEMENT_SET_REG_DYNAMIC(sq_gpr_management_reg, reg_dynamic) \
+ sq_gpr_management_reg = (sq_gpr_management_reg & ~SQ_GPR_MANAGEMENT_REG_DYNAMIC_MASK) | (reg_dynamic << SQ_GPR_MANAGEMENT_REG_DYNAMIC_SHIFT)
+#define SQ_GPR_MANAGEMENT_SET_REG_SIZE_PIX(sq_gpr_management_reg, reg_size_pix) \
+ sq_gpr_management_reg = (sq_gpr_management_reg & ~SQ_GPR_MANAGEMENT_REG_SIZE_PIX_MASK) | (reg_size_pix << SQ_GPR_MANAGEMENT_REG_SIZE_PIX_SHIFT)
+#define SQ_GPR_MANAGEMENT_SET_REG_SIZE_VTX(sq_gpr_management_reg, reg_size_vtx) \
+ sq_gpr_management_reg = (sq_gpr_management_reg & ~SQ_GPR_MANAGEMENT_REG_SIZE_VTX_MASK) | (reg_size_vtx << SQ_GPR_MANAGEMENT_REG_SIZE_VTX_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_gpr_management_t {
+ unsigned int reg_dynamic : SQ_GPR_MANAGEMENT_REG_DYNAMIC_SIZE;
+ unsigned int : 3;
+ unsigned int reg_size_pix : SQ_GPR_MANAGEMENT_REG_SIZE_PIX_SIZE;
+ unsigned int : 1;
+ unsigned int reg_size_vtx : SQ_GPR_MANAGEMENT_REG_SIZE_VTX_SIZE;
+ unsigned int : 13;
+ } sq_gpr_management_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_gpr_management_t {
+ unsigned int : 13;
+ unsigned int reg_size_vtx : SQ_GPR_MANAGEMENT_REG_SIZE_VTX_SIZE;
+ unsigned int : 1;
+ unsigned int reg_size_pix : SQ_GPR_MANAGEMENT_REG_SIZE_PIX_SIZE;
+ unsigned int : 3;
+ unsigned int reg_dynamic : SQ_GPR_MANAGEMENT_REG_DYNAMIC_SIZE;
+ } sq_gpr_management_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_gpr_management_t f;
+} sq_gpr_management_u;
+
+
+/*
+ * SQ_FLOW_CONTROL struct
+ */
+
+#define SQ_FLOW_CONTROL_INPUT_ARBITRATION_POLICY_SIZE 2
+#define SQ_FLOW_CONTROL_ONE_THREAD_SIZE 1
+#define SQ_FLOW_CONTROL_ONE_ALU_SIZE 1
+#define SQ_FLOW_CONTROL_CF_WR_BASE_SIZE 4
+#define SQ_FLOW_CONTROL_NO_PV_PS_SIZE 1
+#define SQ_FLOW_CONTROL_NO_LOOP_EXIT_SIZE 1
+#define SQ_FLOW_CONTROL_NO_CEXEC_OPTIMIZE_SIZE 1
+#define SQ_FLOW_CONTROL_TEXTURE_ARBITRATION_POLICY_SIZE 2
+#define SQ_FLOW_CONTROL_VC_ARBITRATION_POLICY_SIZE 1
+#define SQ_FLOW_CONTROL_ALU_ARBITRATION_POLICY_SIZE 1
+#define SQ_FLOW_CONTROL_NO_ARB_EJECT_SIZE 1
+#define SQ_FLOW_CONTROL_NO_CFS_EJECT_SIZE 1
+#define SQ_FLOW_CONTROL_POS_EXP_PRIORITY_SIZE 1
+#define SQ_FLOW_CONTROL_NO_EARLY_THREAD_TERMINATION_SIZE 1
+#define SQ_FLOW_CONTROL_PS_PREFETCH_COLOR_ALLOC_SIZE 1
+
+#define SQ_FLOW_CONTROL_INPUT_ARBITRATION_POLICY_SHIFT 0
+#define SQ_FLOW_CONTROL_ONE_THREAD_SHIFT 4
+#define SQ_FLOW_CONTROL_ONE_ALU_SHIFT 8
+#define SQ_FLOW_CONTROL_CF_WR_BASE_SHIFT 12
+#define SQ_FLOW_CONTROL_NO_PV_PS_SHIFT 16
+#define SQ_FLOW_CONTROL_NO_LOOP_EXIT_SHIFT 17
+#define SQ_FLOW_CONTROL_NO_CEXEC_OPTIMIZE_SHIFT 18
+#define SQ_FLOW_CONTROL_TEXTURE_ARBITRATION_POLICY_SHIFT 19
+#define SQ_FLOW_CONTROL_VC_ARBITRATION_POLICY_SHIFT 21
+#define SQ_FLOW_CONTROL_ALU_ARBITRATION_POLICY_SHIFT 22
+#define SQ_FLOW_CONTROL_NO_ARB_EJECT_SHIFT 23
+#define SQ_FLOW_CONTROL_NO_CFS_EJECT_SHIFT 24
+#define SQ_FLOW_CONTROL_POS_EXP_PRIORITY_SHIFT 25
+#define SQ_FLOW_CONTROL_NO_EARLY_THREAD_TERMINATION_SHIFT 26
+#define SQ_FLOW_CONTROL_PS_PREFETCH_COLOR_ALLOC_SHIFT 27
+
+#define SQ_FLOW_CONTROL_INPUT_ARBITRATION_POLICY_MASK 0x00000003
+#define SQ_FLOW_CONTROL_ONE_THREAD_MASK 0x00000010
+#define SQ_FLOW_CONTROL_ONE_ALU_MASK 0x00000100
+#define SQ_FLOW_CONTROL_CF_WR_BASE_MASK 0x0000f000
+#define SQ_FLOW_CONTROL_NO_PV_PS_MASK 0x00010000
+#define SQ_FLOW_CONTROL_NO_LOOP_EXIT_MASK 0x00020000
+#define SQ_FLOW_CONTROL_NO_CEXEC_OPTIMIZE_MASK 0x00040000
+#define SQ_FLOW_CONTROL_TEXTURE_ARBITRATION_POLICY_MASK 0x00180000
+#define SQ_FLOW_CONTROL_VC_ARBITRATION_POLICY_MASK 0x00200000
+#define SQ_FLOW_CONTROL_ALU_ARBITRATION_POLICY_MASK 0x00400000
+#define SQ_FLOW_CONTROL_NO_ARB_EJECT_MASK 0x00800000
+#define SQ_FLOW_CONTROL_NO_CFS_EJECT_MASK 0x01000000
+#define SQ_FLOW_CONTROL_POS_EXP_PRIORITY_MASK 0x02000000
+#define SQ_FLOW_CONTROL_NO_EARLY_THREAD_TERMINATION_MASK 0x04000000
+#define SQ_FLOW_CONTROL_PS_PREFETCH_COLOR_ALLOC_MASK 0x08000000
+
+#define SQ_FLOW_CONTROL_MASK \
+ (SQ_FLOW_CONTROL_INPUT_ARBITRATION_POLICY_MASK | \
+ SQ_FLOW_CONTROL_ONE_THREAD_MASK | \
+ SQ_FLOW_CONTROL_ONE_ALU_MASK | \
+ SQ_FLOW_CONTROL_CF_WR_BASE_MASK | \
+ SQ_FLOW_CONTROL_NO_PV_PS_MASK | \
+ SQ_FLOW_CONTROL_NO_LOOP_EXIT_MASK | \
+ SQ_FLOW_CONTROL_NO_CEXEC_OPTIMIZE_MASK | \
+ SQ_FLOW_CONTROL_TEXTURE_ARBITRATION_POLICY_MASK | \
+ SQ_FLOW_CONTROL_VC_ARBITRATION_POLICY_MASK | \
+ SQ_FLOW_CONTROL_ALU_ARBITRATION_POLICY_MASK | \
+ SQ_FLOW_CONTROL_NO_ARB_EJECT_MASK | \
+ SQ_FLOW_CONTROL_NO_CFS_EJECT_MASK | \
+ SQ_FLOW_CONTROL_POS_EXP_PRIORITY_MASK | \
+ SQ_FLOW_CONTROL_NO_EARLY_THREAD_TERMINATION_MASK | \
+ SQ_FLOW_CONTROL_PS_PREFETCH_COLOR_ALLOC_MASK)
+
+#define SQ_FLOW_CONTROL(input_arbitration_policy, one_thread, one_alu, cf_wr_base, no_pv_ps, no_loop_exit, no_cexec_optimize, texture_arbitration_policy, vc_arbitration_policy, alu_arbitration_policy, no_arb_eject, no_cfs_eject, pos_exp_priority, no_early_thread_termination, ps_prefetch_color_alloc) \
+ ((input_arbitration_policy << SQ_FLOW_CONTROL_INPUT_ARBITRATION_POLICY_SHIFT) | \
+ (one_thread << SQ_FLOW_CONTROL_ONE_THREAD_SHIFT) | \
+ (one_alu << SQ_FLOW_CONTROL_ONE_ALU_SHIFT) | \
+ (cf_wr_base << SQ_FLOW_CONTROL_CF_WR_BASE_SHIFT) | \
+ (no_pv_ps << SQ_FLOW_CONTROL_NO_PV_PS_SHIFT) | \
+ (no_loop_exit << SQ_FLOW_CONTROL_NO_LOOP_EXIT_SHIFT) | \
+ (no_cexec_optimize << SQ_FLOW_CONTROL_NO_CEXEC_OPTIMIZE_SHIFT) | \
+ (texture_arbitration_policy << SQ_FLOW_CONTROL_TEXTURE_ARBITRATION_POLICY_SHIFT) | \
+ (vc_arbitration_policy << SQ_FLOW_CONTROL_VC_ARBITRATION_POLICY_SHIFT) | \
+ (alu_arbitration_policy << SQ_FLOW_CONTROL_ALU_ARBITRATION_POLICY_SHIFT) | \
+ (no_arb_eject << SQ_FLOW_CONTROL_NO_ARB_EJECT_SHIFT) | \
+ (no_cfs_eject << SQ_FLOW_CONTROL_NO_CFS_EJECT_SHIFT) | \
+ (pos_exp_priority << SQ_FLOW_CONTROL_POS_EXP_PRIORITY_SHIFT) | \
+ (no_early_thread_termination << SQ_FLOW_CONTROL_NO_EARLY_THREAD_TERMINATION_SHIFT) | \
+ (ps_prefetch_color_alloc << SQ_FLOW_CONTROL_PS_PREFETCH_COLOR_ALLOC_SHIFT))
+
+#define SQ_FLOW_CONTROL_GET_INPUT_ARBITRATION_POLICY(sq_flow_control) \
+ ((sq_flow_control & SQ_FLOW_CONTROL_INPUT_ARBITRATION_POLICY_MASK) >> SQ_FLOW_CONTROL_INPUT_ARBITRATION_POLICY_SHIFT)
+#define SQ_FLOW_CONTROL_GET_ONE_THREAD(sq_flow_control) \
+ ((sq_flow_control & SQ_FLOW_CONTROL_ONE_THREAD_MASK) >> SQ_FLOW_CONTROL_ONE_THREAD_SHIFT)
+#define SQ_FLOW_CONTROL_GET_ONE_ALU(sq_flow_control) \
+ ((sq_flow_control & SQ_FLOW_CONTROL_ONE_ALU_MASK) >> SQ_FLOW_CONTROL_ONE_ALU_SHIFT)
+#define SQ_FLOW_CONTROL_GET_CF_WR_BASE(sq_flow_control) \
+ ((sq_flow_control & SQ_FLOW_CONTROL_CF_WR_BASE_MASK) >> SQ_FLOW_CONTROL_CF_WR_BASE_SHIFT)
+#define SQ_FLOW_CONTROL_GET_NO_PV_PS(sq_flow_control) \
+ ((sq_flow_control & SQ_FLOW_CONTROL_NO_PV_PS_MASK) >> SQ_FLOW_CONTROL_NO_PV_PS_SHIFT)
+#define SQ_FLOW_CONTROL_GET_NO_LOOP_EXIT(sq_flow_control) \
+ ((sq_flow_control & SQ_FLOW_CONTROL_NO_LOOP_EXIT_MASK) >> SQ_FLOW_CONTROL_NO_LOOP_EXIT_SHIFT)
+#define SQ_FLOW_CONTROL_GET_NO_CEXEC_OPTIMIZE(sq_flow_control) \
+ ((sq_flow_control & SQ_FLOW_CONTROL_NO_CEXEC_OPTIMIZE_MASK) >> SQ_FLOW_CONTROL_NO_CEXEC_OPTIMIZE_SHIFT)
+#define SQ_FLOW_CONTROL_GET_TEXTURE_ARBITRATION_POLICY(sq_flow_control) \
+ ((sq_flow_control & SQ_FLOW_CONTROL_TEXTURE_ARBITRATION_POLICY_MASK) >> SQ_FLOW_CONTROL_TEXTURE_ARBITRATION_POLICY_SHIFT)
+#define SQ_FLOW_CONTROL_GET_VC_ARBITRATION_POLICY(sq_flow_control) \
+ ((sq_flow_control & SQ_FLOW_CONTROL_VC_ARBITRATION_POLICY_MASK) >> SQ_FLOW_CONTROL_VC_ARBITRATION_POLICY_SHIFT)
+#define SQ_FLOW_CONTROL_GET_ALU_ARBITRATION_POLICY(sq_flow_control) \
+ ((sq_flow_control & SQ_FLOW_CONTROL_ALU_ARBITRATION_POLICY_MASK) >> SQ_FLOW_CONTROL_ALU_ARBITRATION_POLICY_SHIFT)
+#define SQ_FLOW_CONTROL_GET_NO_ARB_EJECT(sq_flow_control) \
+ ((sq_flow_control & SQ_FLOW_CONTROL_NO_ARB_EJECT_MASK) >> SQ_FLOW_CONTROL_NO_ARB_EJECT_SHIFT)
+#define SQ_FLOW_CONTROL_GET_NO_CFS_EJECT(sq_flow_control) \
+ ((sq_flow_control & SQ_FLOW_CONTROL_NO_CFS_EJECT_MASK) >> SQ_FLOW_CONTROL_NO_CFS_EJECT_SHIFT)
+#define SQ_FLOW_CONTROL_GET_POS_EXP_PRIORITY(sq_flow_control) \
+ ((sq_flow_control & SQ_FLOW_CONTROL_POS_EXP_PRIORITY_MASK) >> SQ_FLOW_CONTROL_POS_EXP_PRIORITY_SHIFT)
+#define SQ_FLOW_CONTROL_GET_NO_EARLY_THREAD_TERMINATION(sq_flow_control) \
+ ((sq_flow_control & SQ_FLOW_CONTROL_NO_EARLY_THREAD_TERMINATION_MASK) >> SQ_FLOW_CONTROL_NO_EARLY_THREAD_TERMINATION_SHIFT)
+#define SQ_FLOW_CONTROL_GET_PS_PREFETCH_COLOR_ALLOC(sq_flow_control) \
+ ((sq_flow_control & SQ_FLOW_CONTROL_PS_PREFETCH_COLOR_ALLOC_MASK) >> SQ_FLOW_CONTROL_PS_PREFETCH_COLOR_ALLOC_SHIFT)
+
+#define SQ_FLOW_CONTROL_SET_INPUT_ARBITRATION_POLICY(sq_flow_control_reg, input_arbitration_policy) \
+ sq_flow_control_reg = (sq_flow_control_reg & ~SQ_FLOW_CONTROL_INPUT_ARBITRATION_POLICY_MASK) | (input_arbitration_policy << SQ_FLOW_CONTROL_INPUT_ARBITRATION_POLICY_SHIFT)
+#define SQ_FLOW_CONTROL_SET_ONE_THREAD(sq_flow_control_reg, one_thread) \
+ sq_flow_control_reg = (sq_flow_control_reg & ~SQ_FLOW_CONTROL_ONE_THREAD_MASK) | (one_thread << SQ_FLOW_CONTROL_ONE_THREAD_SHIFT)
+#define SQ_FLOW_CONTROL_SET_ONE_ALU(sq_flow_control_reg, one_alu) \
+ sq_flow_control_reg = (sq_flow_control_reg & ~SQ_FLOW_CONTROL_ONE_ALU_MASK) | (one_alu << SQ_FLOW_CONTROL_ONE_ALU_SHIFT)
+#define SQ_FLOW_CONTROL_SET_CF_WR_BASE(sq_flow_control_reg, cf_wr_base) \
+ sq_flow_control_reg = (sq_flow_control_reg & ~SQ_FLOW_CONTROL_CF_WR_BASE_MASK) | (cf_wr_base << SQ_FLOW_CONTROL_CF_WR_BASE_SHIFT)
+#define SQ_FLOW_CONTROL_SET_NO_PV_PS(sq_flow_control_reg, no_pv_ps) \
+ sq_flow_control_reg = (sq_flow_control_reg & ~SQ_FLOW_CONTROL_NO_PV_PS_MASK) | (no_pv_ps << SQ_FLOW_CONTROL_NO_PV_PS_SHIFT)
+#define SQ_FLOW_CONTROL_SET_NO_LOOP_EXIT(sq_flow_control_reg, no_loop_exit) \
+ sq_flow_control_reg = (sq_flow_control_reg & ~SQ_FLOW_CONTROL_NO_LOOP_EXIT_MASK) | (no_loop_exit << SQ_FLOW_CONTROL_NO_LOOP_EXIT_SHIFT)
+#define SQ_FLOW_CONTROL_SET_NO_CEXEC_OPTIMIZE(sq_flow_control_reg, no_cexec_optimize) \
+ sq_flow_control_reg = (sq_flow_control_reg & ~SQ_FLOW_CONTROL_NO_CEXEC_OPTIMIZE_MASK) | (no_cexec_optimize << SQ_FLOW_CONTROL_NO_CEXEC_OPTIMIZE_SHIFT)
+#define SQ_FLOW_CONTROL_SET_TEXTURE_ARBITRATION_POLICY(sq_flow_control_reg, texture_arbitration_policy) \
+ sq_flow_control_reg = (sq_flow_control_reg & ~SQ_FLOW_CONTROL_TEXTURE_ARBITRATION_POLICY_MASK) | (texture_arbitration_policy << SQ_FLOW_CONTROL_TEXTURE_ARBITRATION_POLICY_SHIFT)
+#define SQ_FLOW_CONTROL_SET_VC_ARBITRATION_POLICY(sq_flow_control_reg, vc_arbitration_policy) \
+ sq_flow_control_reg = (sq_flow_control_reg & ~SQ_FLOW_CONTROL_VC_ARBITRATION_POLICY_MASK) | (vc_arbitration_policy << SQ_FLOW_CONTROL_VC_ARBITRATION_POLICY_SHIFT)
+#define SQ_FLOW_CONTROL_SET_ALU_ARBITRATION_POLICY(sq_flow_control_reg, alu_arbitration_policy) \
+ sq_flow_control_reg = (sq_flow_control_reg & ~SQ_FLOW_CONTROL_ALU_ARBITRATION_POLICY_MASK) | (alu_arbitration_policy << SQ_FLOW_CONTROL_ALU_ARBITRATION_POLICY_SHIFT)
+#define SQ_FLOW_CONTROL_SET_NO_ARB_EJECT(sq_flow_control_reg, no_arb_eject) \
+ sq_flow_control_reg = (sq_flow_control_reg & ~SQ_FLOW_CONTROL_NO_ARB_EJECT_MASK) | (no_arb_eject << SQ_FLOW_CONTROL_NO_ARB_EJECT_SHIFT)
+#define SQ_FLOW_CONTROL_SET_NO_CFS_EJECT(sq_flow_control_reg, no_cfs_eject) \
+ sq_flow_control_reg = (sq_flow_control_reg & ~SQ_FLOW_CONTROL_NO_CFS_EJECT_MASK) | (no_cfs_eject << SQ_FLOW_CONTROL_NO_CFS_EJECT_SHIFT)
+#define SQ_FLOW_CONTROL_SET_POS_EXP_PRIORITY(sq_flow_control_reg, pos_exp_priority) \
+ sq_flow_control_reg = (sq_flow_control_reg & ~SQ_FLOW_CONTROL_POS_EXP_PRIORITY_MASK) | (pos_exp_priority << SQ_FLOW_CONTROL_POS_EXP_PRIORITY_SHIFT)
+#define SQ_FLOW_CONTROL_SET_NO_EARLY_THREAD_TERMINATION(sq_flow_control_reg, no_early_thread_termination) \
+ sq_flow_control_reg = (sq_flow_control_reg & ~SQ_FLOW_CONTROL_NO_EARLY_THREAD_TERMINATION_MASK) | (no_early_thread_termination << SQ_FLOW_CONTROL_NO_EARLY_THREAD_TERMINATION_SHIFT)
+#define SQ_FLOW_CONTROL_SET_PS_PREFETCH_COLOR_ALLOC(sq_flow_control_reg, ps_prefetch_color_alloc) \
+ sq_flow_control_reg = (sq_flow_control_reg & ~SQ_FLOW_CONTROL_PS_PREFETCH_COLOR_ALLOC_MASK) | (ps_prefetch_color_alloc << SQ_FLOW_CONTROL_PS_PREFETCH_COLOR_ALLOC_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_flow_control_t {
+ unsigned int input_arbitration_policy : SQ_FLOW_CONTROL_INPUT_ARBITRATION_POLICY_SIZE;
+ unsigned int : 2;
+ unsigned int one_thread : SQ_FLOW_CONTROL_ONE_THREAD_SIZE;
+ unsigned int : 3;
+ unsigned int one_alu : SQ_FLOW_CONTROL_ONE_ALU_SIZE;
+ unsigned int : 3;
+ unsigned int cf_wr_base : SQ_FLOW_CONTROL_CF_WR_BASE_SIZE;
+ unsigned int no_pv_ps : SQ_FLOW_CONTROL_NO_PV_PS_SIZE;
+ unsigned int no_loop_exit : SQ_FLOW_CONTROL_NO_LOOP_EXIT_SIZE;
+ unsigned int no_cexec_optimize : SQ_FLOW_CONTROL_NO_CEXEC_OPTIMIZE_SIZE;
+ unsigned int texture_arbitration_policy : SQ_FLOW_CONTROL_TEXTURE_ARBITRATION_POLICY_SIZE;
+ unsigned int vc_arbitration_policy : SQ_FLOW_CONTROL_VC_ARBITRATION_POLICY_SIZE;
+ unsigned int alu_arbitration_policy : SQ_FLOW_CONTROL_ALU_ARBITRATION_POLICY_SIZE;
+ unsigned int no_arb_eject : SQ_FLOW_CONTROL_NO_ARB_EJECT_SIZE;
+ unsigned int no_cfs_eject : SQ_FLOW_CONTROL_NO_CFS_EJECT_SIZE;
+ unsigned int pos_exp_priority : SQ_FLOW_CONTROL_POS_EXP_PRIORITY_SIZE;
+ unsigned int no_early_thread_termination : SQ_FLOW_CONTROL_NO_EARLY_THREAD_TERMINATION_SIZE;
+ unsigned int ps_prefetch_color_alloc : SQ_FLOW_CONTROL_PS_PREFETCH_COLOR_ALLOC_SIZE;
+ unsigned int : 4;
+ } sq_flow_control_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_flow_control_t {
+ unsigned int : 4;
+ unsigned int ps_prefetch_color_alloc : SQ_FLOW_CONTROL_PS_PREFETCH_COLOR_ALLOC_SIZE;
+ unsigned int no_early_thread_termination : SQ_FLOW_CONTROL_NO_EARLY_THREAD_TERMINATION_SIZE;
+ unsigned int pos_exp_priority : SQ_FLOW_CONTROL_POS_EXP_PRIORITY_SIZE;
+ unsigned int no_cfs_eject : SQ_FLOW_CONTROL_NO_CFS_EJECT_SIZE;
+ unsigned int no_arb_eject : SQ_FLOW_CONTROL_NO_ARB_EJECT_SIZE;
+ unsigned int alu_arbitration_policy : SQ_FLOW_CONTROL_ALU_ARBITRATION_POLICY_SIZE;
+ unsigned int vc_arbitration_policy : SQ_FLOW_CONTROL_VC_ARBITRATION_POLICY_SIZE;
+ unsigned int texture_arbitration_policy : SQ_FLOW_CONTROL_TEXTURE_ARBITRATION_POLICY_SIZE;
+ unsigned int no_cexec_optimize : SQ_FLOW_CONTROL_NO_CEXEC_OPTIMIZE_SIZE;
+ unsigned int no_loop_exit : SQ_FLOW_CONTROL_NO_LOOP_EXIT_SIZE;
+ unsigned int no_pv_ps : SQ_FLOW_CONTROL_NO_PV_PS_SIZE;
+ unsigned int cf_wr_base : SQ_FLOW_CONTROL_CF_WR_BASE_SIZE;
+ unsigned int : 3;
+ unsigned int one_alu : SQ_FLOW_CONTROL_ONE_ALU_SIZE;
+ unsigned int : 3;
+ unsigned int one_thread : SQ_FLOW_CONTROL_ONE_THREAD_SIZE;
+ unsigned int : 2;
+ unsigned int input_arbitration_policy : SQ_FLOW_CONTROL_INPUT_ARBITRATION_POLICY_SIZE;
+ } sq_flow_control_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_flow_control_t f;
+} sq_flow_control_u;
+
+
+/*
+ * SQ_INST_STORE_MANAGMENT struct
+ */
+
+#define SQ_INST_STORE_MANAGMENT_INST_BASE_PIX_SIZE 12
+#define SQ_INST_STORE_MANAGMENT_INST_BASE_VTX_SIZE 12
+
+#define SQ_INST_STORE_MANAGMENT_INST_BASE_PIX_SHIFT 0
+#define SQ_INST_STORE_MANAGMENT_INST_BASE_VTX_SHIFT 16
+
+#define SQ_INST_STORE_MANAGMENT_INST_BASE_PIX_MASK 0x00000fff
+#define SQ_INST_STORE_MANAGMENT_INST_BASE_VTX_MASK 0x0fff0000
+
+#define SQ_INST_STORE_MANAGMENT_MASK \
+ (SQ_INST_STORE_MANAGMENT_INST_BASE_PIX_MASK | \
+ SQ_INST_STORE_MANAGMENT_INST_BASE_VTX_MASK)
+
+#define SQ_INST_STORE_MANAGMENT(inst_base_pix, inst_base_vtx) \
+ ((inst_base_pix << SQ_INST_STORE_MANAGMENT_INST_BASE_PIX_SHIFT) | \
+ (inst_base_vtx << SQ_INST_STORE_MANAGMENT_INST_BASE_VTX_SHIFT))
+
+#define SQ_INST_STORE_MANAGMENT_GET_INST_BASE_PIX(sq_inst_store_managment) \
+ ((sq_inst_store_managment & SQ_INST_STORE_MANAGMENT_INST_BASE_PIX_MASK) >> SQ_INST_STORE_MANAGMENT_INST_BASE_PIX_SHIFT)
+#define SQ_INST_STORE_MANAGMENT_GET_INST_BASE_VTX(sq_inst_store_managment) \
+ ((sq_inst_store_managment & SQ_INST_STORE_MANAGMENT_INST_BASE_VTX_MASK) >> SQ_INST_STORE_MANAGMENT_INST_BASE_VTX_SHIFT)
+
+#define SQ_INST_STORE_MANAGMENT_SET_INST_BASE_PIX(sq_inst_store_managment_reg, inst_base_pix) \
+ sq_inst_store_managment_reg = (sq_inst_store_managment_reg & ~SQ_INST_STORE_MANAGMENT_INST_BASE_PIX_MASK) | (inst_base_pix << SQ_INST_STORE_MANAGMENT_INST_BASE_PIX_SHIFT)
+#define SQ_INST_STORE_MANAGMENT_SET_INST_BASE_VTX(sq_inst_store_managment_reg, inst_base_vtx) \
+ sq_inst_store_managment_reg = (sq_inst_store_managment_reg & ~SQ_INST_STORE_MANAGMENT_INST_BASE_VTX_MASK) | (inst_base_vtx << SQ_INST_STORE_MANAGMENT_INST_BASE_VTX_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_inst_store_managment_t {
+ unsigned int inst_base_pix : SQ_INST_STORE_MANAGMENT_INST_BASE_PIX_SIZE;
+ unsigned int : 4;
+ unsigned int inst_base_vtx : SQ_INST_STORE_MANAGMENT_INST_BASE_VTX_SIZE;
+ unsigned int : 4;
+ } sq_inst_store_managment_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_inst_store_managment_t {
+ unsigned int : 4;
+ unsigned int inst_base_vtx : SQ_INST_STORE_MANAGMENT_INST_BASE_VTX_SIZE;
+ unsigned int : 4;
+ unsigned int inst_base_pix : SQ_INST_STORE_MANAGMENT_INST_BASE_PIX_SIZE;
+ } sq_inst_store_managment_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_inst_store_managment_t f;
+} sq_inst_store_managment_u;
+
+
+/*
+ * SQ_RESOURCE_MANAGMENT struct
+ */
+
+#define SQ_RESOURCE_MANAGMENT_VTX_THREAD_BUF_ENTRIES_SIZE 8
+#define SQ_RESOURCE_MANAGMENT_PIX_THREAD_BUF_ENTRIES_SIZE 8
+#define SQ_RESOURCE_MANAGMENT_EXPORT_BUF_ENTRIES_SIZE 9
+
+#define SQ_RESOURCE_MANAGMENT_VTX_THREAD_BUF_ENTRIES_SHIFT 0
+#define SQ_RESOURCE_MANAGMENT_PIX_THREAD_BUF_ENTRIES_SHIFT 8
+#define SQ_RESOURCE_MANAGMENT_EXPORT_BUF_ENTRIES_SHIFT 16
+
+#define SQ_RESOURCE_MANAGMENT_VTX_THREAD_BUF_ENTRIES_MASK 0x000000ff
+#define SQ_RESOURCE_MANAGMENT_PIX_THREAD_BUF_ENTRIES_MASK 0x0000ff00
+#define SQ_RESOURCE_MANAGMENT_EXPORT_BUF_ENTRIES_MASK 0x01ff0000
+
+#define SQ_RESOURCE_MANAGMENT_MASK \
+ (SQ_RESOURCE_MANAGMENT_VTX_THREAD_BUF_ENTRIES_MASK | \
+ SQ_RESOURCE_MANAGMENT_PIX_THREAD_BUF_ENTRIES_MASK | \
+ SQ_RESOURCE_MANAGMENT_EXPORT_BUF_ENTRIES_MASK)
+
+#define SQ_RESOURCE_MANAGMENT(vtx_thread_buf_entries, pix_thread_buf_entries, export_buf_entries) \
+ ((vtx_thread_buf_entries << SQ_RESOURCE_MANAGMENT_VTX_THREAD_BUF_ENTRIES_SHIFT) | \
+ (pix_thread_buf_entries << SQ_RESOURCE_MANAGMENT_PIX_THREAD_BUF_ENTRIES_SHIFT) | \
+ (export_buf_entries << SQ_RESOURCE_MANAGMENT_EXPORT_BUF_ENTRIES_SHIFT))
+
+#define SQ_RESOURCE_MANAGMENT_GET_VTX_THREAD_BUF_ENTRIES(sq_resource_managment) \
+ ((sq_resource_managment & SQ_RESOURCE_MANAGMENT_VTX_THREAD_BUF_ENTRIES_MASK) >> SQ_RESOURCE_MANAGMENT_VTX_THREAD_BUF_ENTRIES_SHIFT)
+#define SQ_RESOURCE_MANAGMENT_GET_PIX_THREAD_BUF_ENTRIES(sq_resource_managment) \
+ ((sq_resource_managment & SQ_RESOURCE_MANAGMENT_PIX_THREAD_BUF_ENTRIES_MASK) >> SQ_RESOURCE_MANAGMENT_PIX_THREAD_BUF_ENTRIES_SHIFT)
+#define SQ_RESOURCE_MANAGMENT_GET_EXPORT_BUF_ENTRIES(sq_resource_managment) \
+ ((sq_resource_managment & SQ_RESOURCE_MANAGMENT_EXPORT_BUF_ENTRIES_MASK) >> SQ_RESOURCE_MANAGMENT_EXPORT_BUF_ENTRIES_SHIFT)
+
+#define SQ_RESOURCE_MANAGMENT_SET_VTX_THREAD_BUF_ENTRIES(sq_resource_managment_reg, vtx_thread_buf_entries) \
+ sq_resource_managment_reg = (sq_resource_managment_reg & ~SQ_RESOURCE_MANAGMENT_VTX_THREAD_BUF_ENTRIES_MASK) | (vtx_thread_buf_entries << SQ_RESOURCE_MANAGMENT_VTX_THREAD_BUF_ENTRIES_SHIFT)
+#define SQ_RESOURCE_MANAGMENT_SET_PIX_THREAD_BUF_ENTRIES(sq_resource_managment_reg, pix_thread_buf_entries) \
+ sq_resource_managment_reg = (sq_resource_managment_reg & ~SQ_RESOURCE_MANAGMENT_PIX_THREAD_BUF_ENTRIES_MASK) | (pix_thread_buf_entries << SQ_RESOURCE_MANAGMENT_PIX_THREAD_BUF_ENTRIES_SHIFT)
+#define SQ_RESOURCE_MANAGMENT_SET_EXPORT_BUF_ENTRIES(sq_resource_managment_reg, export_buf_entries) \
+ sq_resource_managment_reg = (sq_resource_managment_reg & ~SQ_RESOURCE_MANAGMENT_EXPORT_BUF_ENTRIES_MASK) | (export_buf_entries << SQ_RESOURCE_MANAGMENT_EXPORT_BUF_ENTRIES_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_resource_managment_t {
+ unsigned int vtx_thread_buf_entries : SQ_RESOURCE_MANAGMENT_VTX_THREAD_BUF_ENTRIES_SIZE;
+ unsigned int pix_thread_buf_entries : SQ_RESOURCE_MANAGMENT_PIX_THREAD_BUF_ENTRIES_SIZE;
+ unsigned int export_buf_entries : SQ_RESOURCE_MANAGMENT_EXPORT_BUF_ENTRIES_SIZE;
+ unsigned int : 7;
+ } sq_resource_managment_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_resource_managment_t {
+ unsigned int : 7;
+ unsigned int export_buf_entries : SQ_RESOURCE_MANAGMENT_EXPORT_BUF_ENTRIES_SIZE;
+ unsigned int pix_thread_buf_entries : SQ_RESOURCE_MANAGMENT_PIX_THREAD_BUF_ENTRIES_SIZE;
+ unsigned int vtx_thread_buf_entries : SQ_RESOURCE_MANAGMENT_VTX_THREAD_BUF_ENTRIES_SIZE;
+ } sq_resource_managment_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_resource_managment_t f;
+} sq_resource_managment_u;
+
+
+/*
+ * SQ_EO_RT struct
+ */
+
+#define SQ_EO_RT_EO_CONSTANTS_RT_SIZE 8
+#define SQ_EO_RT_EO_TSTATE_RT_SIZE 8
+
+#define SQ_EO_RT_EO_CONSTANTS_RT_SHIFT 0
+#define SQ_EO_RT_EO_TSTATE_RT_SHIFT 16
+
+#define SQ_EO_RT_EO_CONSTANTS_RT_MASK 0x000000ff
+#define SQ_EO_RT_EO_TSTATE_RT_MASK 0x00ff0000
+
+#define SQ_EO_RT_MASK \
+ (SQ_EO_RT_EO_CONSTANTS_RT_MASK | \
+ SQ_EO_RT_EO_TSTATE_RT_MASK)
+
+#define SQ_EO_RT(eo_constants_rt, eo_tstate_rt) \
+ ((eo_constants_rt << SQ_EO_RT_EO_CONSTANTS_RT_SHIFT) | \
+ (eo_tstate_rt << SQ_EO_RT_EO_TSTATE_RT_SHIFT))
+
+#define SQ_EO_RT_GET_EO_CONSTANTS_RT(sq_eo_rt) \
+ ((sq_eo_rt & SQ_EO_RT_EO_CONSTANTS_RT_MASK) >> SQ_EO_RT_EO_CONSTANTS_RT_SHIFT)
+#define SQ_EO_RT_GET_EO_TSTATE_RT(sq_eo_rt) \
+ ((sq_eo_rt & SQ_EO_RT_EO_TSTATE_RT_MASK) >> SQ_EO_RT_EO_TSTATE_RT_SHIFT)
+
+#define SQ_EO_RT_SET_EO_CONSTANTS_RT(sq_eo_rt_reg, eo_constants_rt) \
+ sq_eo_rt_reg = (sq_eo_rt_reg & ~SQ_EO_RT_EO_CONSTANTS_RT_MASK) | (eo_constants_rt << SQ_EO_RT_EO_CONSTANTS_RT_SHIFT)
+#define SQ_EO_RT_SET_EO_TSTATE_RT(sq_eo_rt_reg, eo_tstate_rt) \
+ sq_eo_rt_reg = (sq_eo_rt_reg & ~SQ_EO_RT_EO_TSTATE_RT_MASK) | (eo_tstate_rt << SQ_EO_RT_EO_TSTATE_RT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_eo_rt_t {
+ unsigned int eo_constants_rt : SQ_EO_RT_EO_CONSTANTS_RT_SIZE;
+ unsigned int : 8;
+ unsigned int eo_tstate_rt : SQ_EO_RT_EO_TSTATE_RT_SIZE;
+ unsigned int : 8;
+ } sq_eo_rt_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_eo_rt_t {
+ unsigned int : 8;
+ unsigned int eo_tstate_rt : SQ_EO_RT_EO_TSTATE_RT_SIZE;
+ unsigned int : 8;
+ unsigned int eo_constants_rt : SQ_EO_RT_EO_CONSTANTS_RT_SIZE;
+ } sq_eo_rt_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_eo_rt_t f;
+} sq_eo_rt_u;
+
+
+/*
+ * SQ_DEBUG_MISC struct
+ */
+
+#define SQ_DEBUG_MISC_DB_ALUCST_SIZE_SIZE 11
+#define SQ_DEBUG_MISC_DB_TSTATE_SIZE_SIZE 8
+#define SQ_DEBUG_MISC_DB_READ_CTX_SIZE 1
+#define SQ_DEBUG_MISC_RESERVED_SIZE 2
+#define SQ_DEBUG_MISC_DB_READ_MEMORY_SIZE 2
+#define SQ_DEBUG_MISC_DB_WEN_MEMORY_0_SIZE 1
+#define SQ_DEBUG_MISC_DB_WEN_MEMORY_1_SIZE 1
+#define SQ_DEBUG_MISC_DB_WEN_MEMORY_2_SIZE 1
+#define SQ_DEBUG_MISC_DB_WEN_MEMORY_3_SIZE 1
+
+#define SQ_DEBUG_MISC_DB_ALUCST_SIZE_SHIFT 0
+#define SQ_DEBUG_MISC_DB_TSTATE_SIZE_SHIFT 12
+#define SQ_DEBUG_MISC_DB_READ_CTX_SHIFT 20
+#define SQ_DEBUG_MISC_RESERVED_SHIFT 21
+#define SQ_DEBUG_MISC_DB_READ_MEMORY_SHIFT 23
+#define SQ_DEBUG_MISC_DB_WEN_MEMORY_0_SHIFT 25
+#define SQ_DEBUG_MISC_DB_WEN_MEMORY_1_SHIFT 26
+#define SQ_DEBUG_MISC_DB_WEN_MEMORY_2_SHIFT 27
+#define SQ_DEBUG_MISC_DB_WEN_MEMORY_3_SHIFT 28
+
+#define SQ_DEBUG_MISC_DB_ALUCST_SIZE_MASK 0x000007ff
+#define SQ_DEBUG_MISC_DB_TSTATE_SIZE_MASK 0x000ff000
+#define SQ_DEBUG_MISC_DB_READ_CTX_MASK 0x00100000
+#define SQ_DEBUG_MISC_RESERVED_MASK 0x00600000
+#define SQ_DEBUG_MISC_DB_READ_MEMORY_MASK 0x01800000
+#define SQ_DEBUG_MISC_DB_WEN_MEMORY_0_MASK 0x02000000
+#define SQ_DEBUG_MISC_DB_WEN_MEMORY_1_MASK 0x04000000
+#define SQ_DEBUG_MISC_DB_WEN_MEMORY_2_MASK 0x08000000
+#define SQ_DEBUG_MISC_DB_WEN_MEMORY_3_MASK 0x10000000
+
+#define SQ_DEBUG_MISC_MASK \
+ (SQ_DEBUG_MISC_DB_ALUCST_SIZE_MASK | \
+ SQ_DEBUG_MISC_DB_TSTATE_SIZE_MASK | \
+ SQ_DEBUG_MISC_DB_READ_CTX_MASK | \
+ SQ_DEBUG_MISC_RESERVED_MASK | \
+ SQ_DEBUG_MISC_DB_READ_MEMORY_MASK | \
+ SQ_DEBUG_MISC_DB_WEN_MEMORY_0_MASK | \
+ SQ_DEBUG_MISC_DB_WEN_MEMORY_1_MASK | \
+ SQ_DEBUG_MISC_DB_WEN_MEMORY_2_MASK | \
+ SQ_DEBUG_MISC_DB_WEN_MEMORY_3_MASK)
+
+#define SQ_DEBUG_MISC(db_alucst_size, db_tstate_size, db_read_ctx, reserved, db_read_memory, db_wen_memory_0, db_wen_memory_1, db_wen_memory_2, db_wen_memory_3) \
+ ((db_alucst_size << SQ_DEBUG_MISC_DB_ALUCST_SIZE_SHIFT) | \
+ (db_tstate_size << SQ_DEBUG_MISC_DB_TSTATE_SIZE_SHIFT) | \
+ (db_read_ctx << SQ_DEBUG_MISC_DB_READ_CTX_SHIFT) | \
+ (reserved << SQ_DEBUG_MISC_RESERVED_SHIFT) | \
+ (db_read_memory << SQ_DEBUG_MISC_DB_READ_MEMORY_SHIFT) | \
+ (db_wen_memory_0 << SQ_DEBUG_MISC_DB_WEN_MEMORY_0_SHIFT) | \
+ (db_wen_memory_1 << SQ_DEBUG_MISC_DB_WEN_MEMORY_1_SHIFT) | \
+ (db_wen_memory_2 << SQ_DEBUG_MISC_DB_WEN_MEMORY_2_SHIFT) | \
+ (db_wen_memory_3 << SQ_DEBUG_MISC_DB_WEN_MEMORY_3_SHIFT))
+
+#define SQ_DEBUG_MISC_GET_DB_ALUCST_SIZE(sq_debug_misc) \
+ ((sq_debug_misc & SQ_DEBUG_MISC_DB_ALUCST_SIZE_MASK) >> SQ_DEBUG_MISC_DB_ALUCST_SIZE_SHIFT)
+#define SQ_DEBUG_MISC_GET_DB_TSTATE_SIZE(sq_debug_misc) \
+ ((sq_debug_misc & SQ_DEBUG_MISC_DB_TSTATE_SIZE_MASK) >> SQ_DEBUG_MISC_DB_TSTATE_SIZE_SHIFT)
+#define SQ_DEBUG_MISC_GET_DB_READ_CTX(sq_debug_misc) \
+ ((sq_debug_misc & SQ_DEBUG_MISC_DB_READ_CTX_MASK) >> SQ_DEBUG_MISC_DB_READ_CTX_SHIFT)
+#define SQ_DEBUG_MISC_GET_RESERVED(sq_debug_misc) \
+ ((sq_debug_misc & SQ_DEBUG_MISC_RESERVED_MASK) >> SQ_DEBUG_MISC_RESERVED_SHIFT)
+#define SQ_DEBUG_MISC_GET_DB_READ_MEMORY(sq_debug_misc) \
+ ((sq_debug_misc & SQ_DEBUG_MISC_DB_READ_MEMORY_MASK) >> SQ_DEBUG_MISC_DB_READ_MEMORY_SHIFT)
+#define SQ_DEBUG_MISC_GET_DB_WEN_MEMORY_0(sq_debug_misc) \
+ ((sq_debug_misc & SQ_DEBUG_MISC_DB_WEN_MEMORY_0_MASK) >> SQ_DEBUG_MISC_DB_WEN_MEMORY_0_SHIFT)
+#define SQ_DEBUG_MISC_GET_DB_WEN_MEMORY_1(sq_debug_misc) \
+ ((sq_debug_misc & SQ_DEBUG_MISC_DB_WEN_MEMORY_1_MASK) >> SQ_DEBUG_MISC_DB_WEN_MEMORY_1_SHIFT)
+#define SQ_DEBUG_MISC_GET_DB_WEN_MEMORY_2(sq_debug_misc) \
+ ((sq_debug_misc & SQ_DEBUG_MISC_DB_WEN_MEMORY_2_MASK) >> SQ_DEBUG_MISC_DB_WEN_MEMORY_2_SHIFT)
+#define SQ_DEBUG_MISC_GET_DB_WEN_MEMORY_3(sq_debug_misc) \
+ ((sq_debug_misc & SQ_DEBUG_MISC_DB_WEN_MEMORY_3_MASK) >> SQ_DEBUG_MISC_DB_WEN_MEMORY_3_SHIFT)
+
+#define SQ_DEBUG_MISC_SET_DB_ALUCST_SIZE(sq_debug_misc_reg, db_alucst_size) \
+ sq_debug_misc_reg = (sq_debug_misc_reg & ~SQ_DEBUG_MISC_DB_ALUCST_SIZE_MASK) | (db_alucst_size << SQ_DEBUG_MISC_DB_ALUCST_SIZE_SHIFT)
+#define SQ_DEBUG_MISC_SET_DB_TSTATE_SIZE(sq_debug_misc_reg, db_tstate_size) \
+ sq_debug_misc_reg = (sq_debug_misc_reg & ~SQ_DEBUG_MISC_DB_TSTATE_SIZE_MASK) | (db_tstate_size << SQ_DEBUG_MISC_DB_TSTATE_SIZE_SHIFT)
+#define SQ_DEBUG_MISC_SET_DB_READ_CTX(sq_debug_misc_reg, db_read_ctx) \
+ sq_debug_misc_reg = (sq_debug_misc_reg & ~SQ_DEBUG_MISC_DB_READ_CTX_MASK) | (db_read_ctx << SQ_DEBUG_MISC_DB_READ_CTX_SHIFT)
+#define SQ_DEBUG_MISC_SET_RESERVED(sq_debug_misc_reg, reserved) \
+ sq_debug_misc_reg = (sq_debug_misc_reg & ~SQ_DEBUG_MISC_RESERVED_MASK) | (reserved << SQ_DEBUG_MISC_RESERVED_SHIFT)
+#define SQ_DEBUG_MISC_SET_DB_READ_MEMORY(sq_debug_misc_reg, db_read_memory) \
+ sq_debug_misc_reg = (sq_debug_misc_reg & ~SQ_DEBUG_MISC_DB_READ_MEMORY_MASK) | (db_read_memory << SQ_DEBUG_MISC_DB_READ_MEMORY_SHIFT)
+#define SQ_DEBUG_MISC_SET_DB_WEN_MEMORY_0(sq_debug_misc_reg, db_wen_memory_0) \
+ sq_debug_misc_reg = (sq_debug_misc_reg & ~SQ_DEBUG_MISC_DB_WEN_MEMORY_0_MASK) | (db_wen_memory_0 << SQ_DEBUG_MISC_DB_WEN_MEMORY_0_SHIFT)
+#define SQ_DEBUG_MISC_SET_DB_WEN_MEMORY_1(sq_debug_misc_reg, db_wen_memory_1) \
+ sq_debug_misc_reg = (sq_debug_misc_reg & ~SQ_DEBUG_MISC_DB_WEN_MEMORY_1_MASK) | (db_wen_memory_1 << SQ_DEBUG_MISC_DB_WEN_MEMORY_1_SHIFT)
+#define SQ_DEBUG_MISC_SET_DB_WEN_MEMORY_2(sq_debug_misc_reg, db_wen_memory_2) \
+ sq_debug_misc_reg = (sq_debug_misc_reg & ~SQ_DEBUG_MISC_DB_WEN_MEMORY_2_MASK) | (db_wen_memory_2 << SQ_DEBUG_MISC_DB_WEN_MEMORY_2_SHIFT)
+#define SQ_DEBUG_MISC_SET_DB_WEN_MEMORY_3(sq_debug_misc_reg, db_wen_memory_3) \
+ sq_debug_misc_reg = (sq_debug_misc_reg & ~SQ_DEBUG_MISC_DB_WEN_MEMORY_3_MASK) | (db_wen_memory_3 << SQ_DEBUG_MISC_DB_WEN_MEMORY_3_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_misc_t {
+ unsigned int db_alucst_size : SQ_DEBUG_MISC_DB_ALUCST_SIZE_SIZE;
+ unsigned int : 1;
+ unsigned int db_tstate_size : SQ_DEBUG_MISC_DB_TSTATE_SIZE_SIZE;
+ unsigned int db_read_ctx : SQ_DEBUG_MISC_DB_READ_CTX_SIZE;
+ unsigned int reserved : SQ_DEBUG_MISC_RESERVED_SIZE;
+ unsigned int db_read_memory : SQ_DEBUG_MISC_DB_READ_MEMORY_SIZE;
+ unsigned int db_wen_memory_0 : SQ_DEBUG_MISC_DB_WEN_MEMORY_0_SIZE;
+ unsigned int db_wen_memory_1 : SQ_DEBUG_MISC_DB_WEN_MEMORY_1_SIZE;
+ unsigned int db_wen_memory_2 : SQ_DEBUG_MISC_DB_WEN_MEMORY_2_SIZE;
+ unsigned int db_wen_memory_3 : SQ_DEBUG_MISC_DB_WEN_MEMORY_3_SIZE;
+ unsigned int : 3;
+ } sq_debug_misc_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_misc_t {
+ unsigned int : 3;
+ unsigned int db_wen_memory_3 : SQ_DEBUG_MISC_DB_WEN_MEMORY_3_SIZE;
+ unsigned int db_wen_memory_2 : SQ_DEBUG_MISC_DB_WEN_MEMORY_2_SIZE;
+ unsigned int db_wen_memory_1 : SQ_DEBUG_MISC_DB_WEN_MEMORY_1_SIZE;
+ unsigned int db_wen_memory_0 : SQ_DEBUG_MISC_DB_WEN_MEMORY_0_SIZE;
+ unsigned int db_read_memory : SQ_DEBUG_MISC_DB_READ_MEMORY_SIZE;
+ unsigned int reserved : SQ_DEBUG_MISC_RESERVED_SIZE;
+ unsigned int db_read_ctx : SQ_DEBUG_MISC_DB_READ_CTX_SIZE;
+ unsigned int db_tstate_size : SQ_DEBUG_MISC_DB_TSTATE_SIZE_SIZE;
+ unsigned int : 1;
+ unsigned int db_alucst_size : SQ_DEBUG_MISC_DB_ALUCST_SIZE_SIZE;
+ } sq_debug_misc_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_misc_t f;
+} sq_debug_misc_u;
+
+
+/*
+ * SQ_ACTIVITY_METER_CNTL struct
+ */
+
+#define SQ_ACTIVITY_METER_CNTL_TIMEBASE_SIZE 8
+#define SQ_ACTIVITY_METER_CNTL_THRESHOLD_LOW_SIZE 8
+#define SQ_ACTIVITY_METER_CNTL_THRESHOLD_HIGH_SIZE 8
+#define SQ_ACTIVITY_METER_CNTL_SPARE_SIZE 8
+
+#define SQ_ACTIVITY_METER_CNTL_TIMEBASE_SHIFT 0
+#define SQ_ACTIVITY_METER_CNTL_THRESHOLD_LOW_SHIFT 8
+#define SQ_ACTIVITY_METER_CNTL_THRESHOLD_HIGH_SHIFT 16
+#define SQ_ACTIVITY_METER_CNTL_SPARE_SHIFT 24
+
+#define SQ_ACTIVITY_METER_CNTL_TIMEBASE_MASK 0x000000ff
+#define SQ_ACTIVITY_METER_CNTL_THRESHOLD_LOW_MASK 0x0000ff00
+#define SQ_ACTIVITY_METER_CNTL_THRESHOLD_HIGH_MASK 0x00ff0000
+#define SQ_ACTIVITY_METER_CNTL_SPARE_MASK 0xff000000
+
+#define SQ_ACTIVITY_METER_CNTL_MASK \
+ (SQ_ACTIVITY_METER_CNTL_TIMEBASE_MASK | \
+ SQ_ACTIVITY_METER_CNTL_THRESHOLD_LOW_MASK | \
+ SQ_ACTIVITY_METER_CNTL_THRESHOLD_HIGH_MASK | \
+ SQ_ACTIVITY_METER_CNTL_SPARE_MASK)
+
+#define SQ_ACTIVITY_METER_CNTL(timebase, threshold_low, threshold_high, spare) \
+ ((timebase << SQ_ACTIVITY_METER_CNTL_TIMEBASE_SHIFT) | \
+ (threshold_low << SQ_ACTIVITY_METER_CNTL_THRESHOLD_LOW_SHIFT) | \
+ (threshold_high << SQ_ACTIVITY_METER_CNTL_THRESHOLD_HIGH_SHIFT) | \
+ (spare << SQ_ACTIVITY_METER_CNTL_SPARE_SHIFT))
+
+#define SQ_ACTIVITY_METER_CNTL_GET_TIMEBASE(sq_activity_meter_cntl) \
+ ((sq_activity_meter_cntl & SQ_ACTIVITY_METER_CNTL_TIMEBASE_MASK) >> SQ_ACTIVITY_METER_CNTL_TIMEBASE_SHIFT)
+#define SQ_ACTIVITY_METER_CNTL_GET_THRESHOLD_LOW(sq_activity_meter_cntl) \
+ ((sq_activity_meter_cntl & SQ_ACTIVITY_METER_CNTL_THRESHOLD_LOW_MASK) >> SQ_ACTIVITY_METER_CNTL_THRESHOLD_LOW_SHIFT)
+#define SQ_ACTIVITY_METER_CNTL_GET_THRESHOLD_HIGH(sq_activity_meter_cntl) \
+ ((sq_activity_meter_cntl & SQ_ACTIVITY_METER_CNTL_THRESHOLD_HIGH_MASK) >> SQ_ACTIVITY_METER_CNTL_THRESHOLD_HIGH_SHIFT)
+#define SQ_ACTIVITY_METER_CNTL_GET_SPARE(sq_activity_meter_cntl) \
+ ((sq_activity_meter_cntl & SQ_ACTIVITY_METER_CNTL_SPARE_MASK) >> SQ_ACTIVITY_METER_CNTL_SPARE_SHIFT)
+
+#define SQ_ACTIVITY_METER_CNTL_SET_TIMEBASE(sq_activity_meter_cntl_reg, timebase) \
+ sq_activity_meter_cntl_reg = (sq_activity_meter_cntl_reg & ~SQ_ACTIVITY_METER_CNTL_TIMEBASE_MASK) | (timebase << SQ_ACTIVITY_METER_CNTL_TIMEBASE_SHIFT)
+#define SQ_ACTIVITY_METER_CNTL_SET_THRESHOLD_LOW(sq_activity_meter_cntl_reg, threshold_low) \
+ sq_activity_meter_cntl_reg = (sq_activity_meter_cntl_reg & ~SQ_ACTIVITY_METER_CNTL_THRESHOLD_LOW_MASK) | (threshold_low << SQ_ACTIVITY_METER_CNTL_THRESHOLD_LOW_SHIFT)
+#define SQ_ACTIVITY_METER_CNTL_SET_THRESHOLD_HIGH(sq_activity_meter_cntl_reg, threshold_high) \
+ sq_activity_meter_cntl_reg = (sq_activity_meter_cntl_reg & ~SQ_ACTIVITY_METER_CNTL_THRESHOLD_HIGH_MASK) | (threshold_high << SQ_ACTIVITY_METER_CNTL_THRESHOLD_HIGH_SHIFT)
+#define SQ_ACTIVITY_METER_CNTL_SET_SPARE(sq_activity_meter_cntl_reg, spare) \
+ sq_activity_meter_cntl_reg = (sq_activity_meter_cntl_reg & ~SQ_ACTIVITY_METER_CNTL_SPARE_MASK) | (spare << SQ_ACTIVITY_METER_CNTL_SPARE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_activity_meter_cntl_t {
+ unsigned int timebase : SQ_ACTIVITY_METER_CNTL_TIMEBASE_SIZE;
+ unsigned int threshold_low : SQ_ACTIVITY_METER_CNTL_THRESHOLD_LOW_SIZE;
+ unsigned int threshold_high : SQ_ACTIVITY_METER_CNTL_THRESHOLD_HIGH_SIZE;
+ unsigned int spare : SQ_ACTIVITY_METER_CNTL_SPARE_SIZE;
+ } sq_activity_meter_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_activity_meter_cntl_t {
+ unsigned int spare : SQ_ACTIVITY_METER_CNTL_SPARE_SIZE;
+ unsigned int threshold_high : SQ_ACTIVITY_METER_CNTL_THRESHOLD_HIGH_SIZE;
+ unsigned int threshold_low : SQ_ACTIVITY_METER_CNTL_THRESHOLD_LOW_SIZE;
+ unsigned int timebase : SQ_ACTIVITY_METER_CNTL_TIMEBASE_SIZE;
+ } sq_activity_meter_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_activity_meter_cntl_t f;
+} sq_activity_meter_cntl_u;
+
+
+/*
+ * SQ_ACTIVITY_METER_STATUS struct
+ */
+
+#define SQ_ACTIVITY_METER_STATUS_PERCENT_BUSY_SIZE 8
+
+#define SQ_ACTIVITY_METER_STATUS_PERCENT_BUSY_SHIFT 0
+
+#define SQ_ACTIVITY_METER_STATUS_PERCENT_BUSY_MASK 0x000000ff
+
+#define SQ_ACTIVITY_METER_STATUS_MASK \
+ (SQ_ACTIVITY_METER_STATUS_PERCENT_BUSY_MASK)
+
+#define SQ_ACTIVITY_METER_STATUS(percent_busy) \
+ ((percent_busy << SQ_ACTIVITY_METER_STATUS_PERCENT_BUSY_SHIFT))
+
+#define SQ_ACTIVITY_METER_STATUS_GET_PERCENT_BUSY(sq_activity_meter_status) \
+ ((sq_activity_meter_status & SQ_ACTIVITY_METER_STATUS_PERCENT_BUSY_MASK) >> SQ_ACTIVITY_METER_STATUS_PERCENT_BUSY_SHIFT)
+
+#define SQ_ACTIVITY_METER_STATUS_SET_PERCENT_BUSY(sq_activity_meter_status_reg, percent_busy) \
+ sq_activity_meter_status_reg = (sq_activity_meter_status_reg & ~SQ_ACTIVITY_METER_STATUS_PERCENT_BUSY_MASK) | (percent_busy << SQ_ACTIVITY_METER_STATUS_PERCENT_BUSY_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_activity_meter_status_t {
+ unsigned int percent_busy : SQ_ACTIVITY_METER_STATUS_PERCENT_BUSY_SIZE;
+ unsigned int : 24;
+ } sq_activity_meter_status_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_activity_meter_status_t {
+ unsigned int : 24;
+ unsigned int percent_busy : SQ_ACTIVITY_METER_STATUS_PERCENT_BUSY_SIZE;
+ } sq_activity_meter_status_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_activity_meter_status_t f;
+} sq_activity_meter_status_u;
+
+
+/*
+ * SQ_INPUT_ARB_PRIORITY struct
+ */
+
+#define SQ_INPUT_ARB_PRIORITY_PC_AVAIL_WEIGHT_SIZE 3
+#define SQ_INPUT_ARB_PRIORITY_PC_AVAIL_SIGN_SIZE 1
+#define SQ_INPUT_ARB_PRIORITY_SX_AVAIL_WEIGHT_SIZE 3
+#define SQ_INPUT_ARB_PRIORITY_SX_AVAIL_SIGN_SIZE 1
+#define SQ_INPUT_ARB_PRIORITY_THRESHOLD_SIZE 10
+
+#define SQ_INPUT_ARB_PRIORITY_PC_AVAIL_WEIGHT_SHIFT 0
+#define SQ_INPUT_ARB_PRIORITY_PC_AVAIL_SIGN_SHIFT 3
+#define SQ_INPUT_ARB_PRIORITY_SX_AVAIL_WEIGHT_SHIFT 4
+#define SQ_INPUT_ARB_PRIORITY_SX_AVAIL_SIGN_SHIFT 7
+#define SQ_INPUT_ARB_PRIORITY_THRESHOLD_SHIFT 8
+
+#define SQ_INPUT_ARB_PRIORITY_PC_AVAIL_WEIGHT_MASK 0x00000007
+#define SQ_INPUT_ARB_PRIORITY_PC_AVAIL_SIGN_MASK 0x00000008
+#define SQ_INPUT_ARB_PRIORITY_SX_AVAIL_WEIGHT_MASK 0x00000070
+#define SQ_INPUT_ARB_PRIORITY_SX_AVAIL_SIGN_MASK 0x00000080
+#define SQ_INPUT_ARB_PRIORITY_THRESHOLD_MASK 0x0003ff00
+
+#define SQ_INPUT_ARB_PRIORITY_MASK \
+ (SQ_INPUT_ARB_PRIORITY_PC_AVAIL_WEIGHT_MASK | \
+ SQ_INPUT_ARB_PRIORITY_PC_AVAIL_SIGN_MASK | \
+ SQ_INPUT_ARB_PRIORITY_SX_AVAIL_WEIGHT_MASK | \
+ SQ_INPUT_ARB_PRIORITY_SX_AVAIL_SIGN_MASK | \
+ SQ_INPUT_ARB_PRIORITY_THRESHOLD_MASK)
+
+#define SQ_INPUT_ARB_PRIORITY(pc_avail_weight, pc_avail_sign, sx_avail_weight, sx_avail_sign, threshold) \
+ ((pc_avail_weight << SQ_INPUT_ARB_PRIORITY_PC_AVAIL_WEIGHT_SHIFT) | \
+ (pc_avail_sign << SQ_INPUT_ARB_PRIORITY_PC_AVAIL_SIGN_SHIFT) | \
+ (sx_avail_weight << SQ_INPUT_ARB_PRIORITY_SX_AVAIL_WEIGHT_SHIFT) | \
+ (sx_avail_sign << SQ_INPUT_ARB_PRIORITY_SX_AVAIL_SIGN_SHIFT) | \
+ (threshold << SQ_INPUT_ARB_PRIORITY_THRESHOLD_SHIFT))
+
+#define SQ_INPUT_ARB_PRIORITY_GET_PC_AVAIL_WEIGHT(sq_input_arb_priority) \
+ ((sq_input_arb_priority & SQ_INPUT_ARB_PRIORITY_PC_AVAIL_WEIGHT_MASK) >> SQ_INPUT_ARB_PRIORITY_PC_AVAIL_WEIGHT_SHIFT)
+#define SQ_INPUT_ARB_PRIORITY_GET_PC_AVAIL_SIGN(sq_input_arb_priority) \
+ ((sq_input_arb_priority & SQ_INPUT_ARB_PRIORITY_PC_AVAIL_SIGN_MASK) >> SQ_INPUT_ARB_PRIORITY_PC_AVAIL_SIGN_SHIFT)
+#define SQ_INPUT_ARB_PRIORITY_GET_SX_AVAIL_WEIGHT(sq_input_arb_priority) \
+ ((sq_input_arb_priority & SQ_INPUT_ARB_PRIORITY_SX_AVAIL_WEIGHT_MASK) >> SQ_INPUT_ARB_PRIORITY_SX_AVAIL_WEIGHT_SHIFT)
+#define SQ_INPUT_ARB_PRIORITY_GET_SX_AVAIL_SIGN(sq_input_arb_priority) \
+ ((sq_input_arb_priority & SQ_INPUT_ARB_PRIORITY_SX_AVAIL_SIGN_MASK) >> SQ_INPUT_ARB_PRIORITY_SX_AVAIL_SIGN_SHIFT)
+#define SQ_INPUT_ARB_PRIORITY_GET_THRESHOLD(sq_input_arb_priority) \
+ ((sq_input_arb_priority & SQ_INPUT_ARB_PRIORITY_THRESHOLD_MASK) >> SQ_INPUT_ARB_PRIORITY_THRESHOLD_SHIFT)
+
+#define SQ_INPUT_ARB_PRIORITY_SET_PC_AVAIL_WEIGHT(sq_input_arb_priority_reg, pc_avail_weight) \
+ sq_input_arb_priority_reg = (sq_input_arb_priority_reg & ~SQ_INPUT_ARB_PRIORITY_PC_AVAIL_WEIGHT_MASK) | (pc_avail_weight << SQ_INPUT_ARB_PRIORITY_PC_AVAIL_WEIGHT_SHIFT)
+#define SQ_INPUT_ARB_PRIORITY_SET_PC_AVAIL_SIGN(sq_input_arb_priority_reg, pc_avail_sign) \
+ sq_input_arb_priority_reg = (sq_input_arb_priority_reg & ~SQ_INPUT_ARB_PRIORITY_PC_AVAIL_SIGN_MASK) | (pc_avail_sign << SQ_INPUT_ARB_PRIORITY_PC_AVAIL_SIGN_SHIFT)
+#define SQ_INPUT_ARB_PRIORITY_SET_SX_AVAIL_WEIGHT(sq_input_arb_priority_reg, sx_avail_weight) \
+ sq_input_arb_priority_reg = (sq_input_arb_priority_reg & ~SQ_INPUT_ARB_PRIORITY_SX_AVAIL_WEIGHT_MASK) | (sx_avail_weight << SQ_INPUT_ARB_PRIORITY_SX_AVAIL_WEIGHT_SHIFT)
+#define SQ_INPUT_ARB_PRIORITY_SET_SX_AVAIL_SIGN(sq_input_arb_priority_reg, sx_avail_sign) \
+ sq_input_arb_priority_reg = (sq_input_arb_priority_reg & ~SQ_INPUT_ARB_PRIORITY_SX_AVAIL_SIGN_MASK) | (sx_avail_sign << SQ_INPUT_ARB_PRIORITY_SX_AVAIL_SIGN_SHIFT)
+#define SQ_INPUT_ARB_PRIORITY_SET_THRESHOLD(sq_input_arb_priority_reg, threshold) \
+ sq_input_arb_priority_reg = (sq_input_arb_priority_reg & ~SQ_INPUT_ARB_PRIORITY_THRESHOLD_MASK) | (threshold << SQ_INPUT_ARB_PRIORITY_THRESHOLD_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_input_arb_priority_t {
+ unsigned int pc_avail_weight : SQ_INPUT_ARB_PRIORITY_PC_AVAIL_WEIGHT_SIZE;
+ unsigned int pc_avail_sign : SQ_INPUT_ARB_PRIORITY_PC_AVAIL_SIGN_SIZE;
+ unsigned int sx_avail_weight : SQ_INPUT_ARB_PRIORITY_SX_AVAIL_WEIGHT_SIZE;
+ unsigned int sx_avail_sign : SQ_INPUT_ARB_PRIORITY_SX_AVAIL_SIGN_SIZE;
+ unsigned int threshold : SQ_INPUT_ARB_PRIORITY_THRESHOLD_SIZE;
+ unsigned int : 14;
+ } sq_input_arb_priority_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_input_arb_priority_t {
+ unsigned int : 14;
+ unsigned int threshold : SQ_INPUT_ARB_PRIORITY_THRESHOLD_SIZE;
+ unsigned int sx_avail_sign : SQ_INPUT_ARB_PRIORITY_SX_AVAIL_SIGN_SIZE;
+ unsigned int sx_avail_weight : SQ_INPUT_ARB_PRIORITY_SX_AVAIL_WEIGHT_SIZE;
+ unsigned int pc_avail_sign : SQ_INPUT_ARB_PRIORITY_PC_AVAIL_SIGN_SIZE;
+ unsigned int pc_avail_weight : SQ_INPUT_ARB_PRIORITY_PC_AVAIL_WEIGHT_SIZE;
+ } sq_input_arb_priority_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_input_arb_priority_t f;
+} sq_input_arb_priority_u;
+
+
+/*
+ * SQ_THREAD_ARB_PRIORITY struct
+ */
+
+#define SQ_THREAD_ARB_PRIORITY_PC_AVAIL_WEIGHT_SIZE 3
+#define SQ_THREAD_ARB_PRIORITY_PC_AVAIL_SIGN_SIZE 1
+#define SQ_THREAD_ARB_PRIORITY_SX_AVAIL_WEIGHT_SIZE 3
+#define SQ_THREAD_ARB_PRIORITY_SX_AVAIL_SIGN_SIZE 1
+#define SQ_THREAD_ARB_PRIORITY_THRESHOLD_SIZE 10
+#define SQ_THREAD_ARB_PRIORITY_RESERVED_SIZE 2
+#define SQ_THREAD_ARB_PRIORITY_VS_PRIORITIZE_SERIAL_SIZE 1
+#define SQ_THREAD_ARB_PRIORITY_PS_PRIORITIZE_SERIAL_SIZE 1
+#define SQ_THREAD_ARB_PRIORITY_USE_SERIAL_COUNT_THRESHOLD_SIZE 1
+
+#define SQ_THREAD_ARB_PRIORITY_PC_AVAIL_WEIGHT_SHIFT 0
+#define SQ_THREAD_ARB_PRIORITY_PC_AVAIL_SIGN_SHIFT 3
+#define SQ_THREAD_ARB_PRIORITY_SX_AVAIL_WEIGHT_SHIFT 4
+#define SQ_THREAD_ARB_PRIORITY_SX_AVAIL_SIGN_SHIFT 7
+#define SQ_THREAD_ARB_PRIORITY_THRESHOLD_SHIFT 8
+#define SQ_THREAD_ARB_PRIORITY_RESERVED_SHIFT 18
+#define SQ_THREAD_ARB_PRIORITY_VS_PRIORITIZE_SERIAL_SHIFT 20
+#define SQ_THREAD_ARB_PRIORITY_PS_PRIORITIZE_SERIAL_SHIFT 21
+#define SQ_THREAD_ARB_PRIORITY_USE_SERIAL_COUNT_THRESHOLD_SHIFT 22
+
+#define SQ_THREAD_ARB_PRIORITY_PC_AVAIL_WEIGHT_MASK 0x00000007
+#define SQ_THREAD_ARB_PRIORITY_PC_AVAIL_SIGN_MASK 0x00000008
+#define SQ_THREAD_ARB_PRIORITY_SX_AVAIL_WEIGHT_MASK 0x00000070
+#define SQ_THREAD_ARB_PRIORITY_SX_AVAIL_SIGN_MASK 0x00000080
+#define SQ_THREAD_ARB_PRIORITY_THRESHOLD_MASK 0x0003ff00
+#define SQ_THREAD_ARB_PRIORITY_RESERVED_MASK 0x000c0000
+#define SQ_THREAD_ARB_PRIORITY_VS_PRIORITIZE_SERIAL_MASK 0x00100000
+#define SQ_THREAD_ARB_PRIORITY_PS_PRIORITIZE_SERIAL_MASK 0x00200000
+#define SQ_THREAD_ARB_PRIORITY_USE_SERIAL_COUNT_THRESHOLD_MASK 0x00400000
+
+#define SQ_THREAD_ARB_PRIORITY_MASK \
+ (SQ_THREAD_ARB_PRIORITY_PC_AVAIL_WEIGHT_MASK | \
+ SQ_THREAD_ARB_PRIORITY_PC_AVAIL_SIGN_MASK | \
+ SQ_THREAD_ARB_PRIORITY_SX_AVAIL_WEIGHT_MASK | \
+ SQ_THREAD_ARB_PRIORITY_SX_AVAIL_SIGN_MASK | \
+ SQ_THREAD_ARB_PRIORITY_THRESHOLD_MASK | \
+ SQ_THREAD_ARB_PRIORITY_RESERVED_MASK | \
+ SQ_THREAD_ARB_PRIORITY_VS_PRIORITIZE_SERIAL_MASK | \
+ SQ_THREAD_ARB_PRIORITY_PS_PRIORITIZE_SERIAL_MASK | \
+ SQ_THREAD_ARB_PRIORITY_USE_SERIAL_COUNT_THRESHOLD_MASK)
+
+#define SQ_THREAD_ARB_PRIORITY(pc_avail_weight, pc_avail_sign, sx_avail_weight, sx_avail_sign, threshold, reserved, vs_prioritize_serial, ps_prioritize_serial, use_serial_count_threshold) \
+ ((pc_avail_weight << SQ_THREAD_ARB_PRIORITY_PC_AVAIL_WEIGHT_SHIFT) | \
+ (pc_avail_sign << SQ_THREAD_ARB_PRIORITY_PC_AVAIL_SIGN_SHIFT) | \
+ (sx_avail_weight << SQ_THREAD_ARB_PRIORITY_SX_AVAIL_WEIGHT_SHIFT) | \
+ (sx_avail_sign << SQ_THREAD_ARB_PRIORITY_SX_AVAIL_SIGN_SHIFT) | \
+ (threshold << SQ_THREAD_ARB_PRIORITY_THRESHOLD_SHIFT) | \
+ (reserved << SQ_THREAD_ARB_PRIORITY_RESERVED_SHIFT) | \
+ (vs_prioritize_serial << SQ_THREAD_ARB_PRIORITY_VS_PRIORITIZE_SERIAL_SHIFT) | \
+ (ps_prioritize_serial << SQ_THREAD_ARB_PRIORITY_PS_PRIORITIZE_SERIAL_SHIFT) | \
+ (use_serial_count_threshold << SQ_THREAD_ARB_PRIORITY_USE_SERIAL_COUNT_THRESHOLD_SHIFT))
+
+#define SQ_THREAD_ARB_PRIORITY_GET_PC_AVAIL_WEIGHT(sq_thread_arb_priority) \
+ ((sq_thread_arb_priority & SQ_THREAD_ARB_PRIORITY_PC_AVAIL_WEIGHT_MASK) >> SQ_THREAD_ARB_PRIORITY_PC_AVAIL_WEIGHT_SHIFT)
+#define SQ_THREAD_ARB_PRIORITY_GET_PC_AVAIL_SIGN(sq_thread_arb_priority) \
+ ((sq_thread_arb_priority & SQ_THREAD_ARB_PRIORITY_PC_AVAIL_SIGN_MASK) >> SQ_THREAD_ARB_PRIORITY_PC_AVAIL_SIGN_SHIFT)
+#define SQ_THREAD_ARB_PRIORITY_GET_SX_AVAIL_WEIGHT(sq_thread_arb_priority) \
+ ((sq_thread_arb_priority & SQ_THREAD_ARB_PRIORITY_SX_AVAIL_WEIGHT_MASK) >> SQ_THREAD_ARB_PRIORITY_SX_AVAIL_WEIGHT_SHIFT)
+#define SQ_THREAD_ARB_PRIORITY_GET_SX_AVAIL_SIGN(sq_thread_arb_priority) \
+ ((sq_thread_arb_priority & SQ_THREAD_ARB_PRIORITY_SX_AVAIL_SIGN_MASK) >> SQ_THREAD_ARB_PRIORITY_SX_AVAIL_SIGN_SHIFT)
+#define SQ_THREAD_ARB_PRIORITY_GET_THRESHOLD(sq_thread_arb_priority) \
+ ((sq_thread_arb_priority & SQ_THREAD_ARB_PRIORITY_THRESHOLD_MASK) >> SQ_THREAD_ARB_PRIORITY_THRESHOLD_SHIFT)
+#define SQ_THREAD_ARB_PRIORITY_GET_RESERVED(sq_thread_arb_priority) \
+ ((sq_thread_arb_priority & SQ_THREAD_ARB_PRIORITY_RESERVED_MASK) >> SQ_THREAD_ARB_PRIORITY_RESERVED_SHIFT)
+#define SQ_THREAD_ARB_PRIORITY_GET_VS_PRIORITIZE_SERIAL(sq_thread_arb_priority) \
+ ((sq_thread_arb_priority & SQ_THREAD_ARB_PRIORITY_VS_PRIORITIZE_SERIAL_MASK) >> SQ_THREAD_ARB_PRIORITY_VS_PRIORITIZE_SERIAL_SHIFT)
+#define SQ_THREAD_ARB_PRIORITY_GET_PS_PRIORITIZE_SERIAL(sq_thread_arb_priority) \
+ ((sq_thread_arb_priority & SQ_THREAD_ARB_PRIORITY_PS_PRIORITIZE_SERIAL_MASK) >> SQ_THREAD_ARB_PRIORITY_PS_PRIORITIZE_SERIAL_SHIFT)
+#define SQ_THREAD_ARB_PRIORITY_GET_USE_SERIAL_COUNT_THRESHOLD(sq_thread_arb_priority) \
+ ((sq_thread_arb_priority & SQ_THREAD_ARB_PRIORITY_USE_SERIAL_COUNT_THRESHOLD_MASK) >> SQ_THREAD_ARB_PRIORITY_USE_SERIAL_COUNT_THRESHOLD_SHIFT)
+
+#define SQ_THREAD_ARB_PRIORITY_SET_PC_AVAIL_WEIGHT(sq_thread_arb_priority_reg, pc_avail_weight) \
+ sq_thread_arb_priority_reg = (sq_thread_arb_priority_reg & ~SQ_THREAD_ARB_PRIORITY_PC_AVAIL_WEIGHT_MASK) | (pc_avail_weight << SQ_THREAD_ARB_PRIORITY_PC_AVAIL_WEIGHT_SHIFT)
+#define SQ_THREAD_ARB_PRIORITY_SET_PC_AVAIL_SIGN(sq_thread_arb_priority_reg, pc_avail_sign) \
+ sq_thread_arb_priority_reg = (sq_thread_arb_priority_reg & ~SQ_THREAD_ARB_PRIORITY_PC_AVAIL_SIGN_MASK) | (pc_avail_sign << SQ_THREAD_ARB_PRIORITY_PC_AVAIL_SIGN_SHIFT)
+#define SQ_THREAD_ARB_PRIORITY_SET_SX_AVAIL_WEIGHT(sq_thread_arb_priority_reg, sx_avail_weight) \
+ sq_thread_arb_priority_reg = (sq_thread_arb_priority_reg & ~SQ_THREAD_ARB_PRIORITY_SX_AVAIL_WEIGHT_MASK) | (sx_avail_weight << SQ_THREAD_ARB_PRIORITY_SX_AVAIL_WEIGHT_SHIFT)
+#define SQ_THREAD_ARB_PRIORITY_SET_SX_AVAIL_SIGN(sq_thread_arb_priority_reg, sx_avail_sign) \
+ sq_thread_arb_priority_reg = (sq_thread_arb_priority_reg & ~SQ_THREAD_ARB_PRIORITY_SX_AVAIL_SIGN_MASK) | (sx_avail_sign << SQ_THREAD_ARB_PRIORITY_SX_AVAIL_SIGN_SHIFT)
+#define SQ_THREAD_ARB_PRIORITY_SET_THRESHOLD(sq_thread_arb_priority_reg, threshold) \
+ sq_thread_arb_priority_reg = (sq_thread_arb_priority_reg & ~SQ_THREAD_ARB_PRIORITY_THRESHOLD_MASK) | (threshold << SQ_THREAD_ARB_PRIORITY_THRESHOLD_SHIFT)
+#define SQ_THREAD_ARB_PRIORITY_SET_RESERVED(sq_thread_arb_priority_reg, reserved) \
+ sq_thread_arb_priority_reg = (sq_thread_arb_priority_reg & ~SQ_THREAD_ARB_PRIORITY_RESERVED_MASK) | (reserved << SQ_THREAD_ARB_PRIORITY_RESERVED_SHIFT)
+#define SQ_THREAD_ARB_PRIORITY_SET_VS_PRIORITIZE_SERIAL(sq_thread_arb_priority_reg, vs_prioritize_serial) \
+ sq_thread_arb_priority_reg = (sq_thread_arb_priority_reg & ~SQ_THREAD_ARB_PRIORITY_VS_PRIORITIZE_SERIAL_MASK) | (vs_prioritize_serial << SQ_THREAD_ARB_PRIORITY_VS_PRIORITIZE_SERIAL_SHIFT)
+#define SQ_THREAD_ARB_PRIORITY_SET_PS_PRIORITIZE_SERIAL(sq_thread_arb_priority_reg, ps_prioritize_serial) \
+ sq_thread_arb_priority_reg = (sq_thread_arb_priority_reg & ~SQ_THREAD_ARB_PRIORITY_PS_PRIORITIZE_SERIAL_MASK) | (ps_prioritize_serial << SQ_THREAD_ARB_PRIORITY_PS_PRIORITIZE_SERIAL_SHIFT)
+#define SQ_THREAD_ARB_PRIORITY_SET_USE_SERIAL_COUNT_THRESHOLD(sq_thread_arb_priority_reg, use_serial_count_threshold) \
+ sq_thread_arb_priority_reg = (sq_thread_arb_priority_reg & ~SQ_THREAD_ARB_PRIORITY_USE_SERIAL_COUNT_THRESHOLD_MASK) | (use_serial_count_threshold << SQ_THREAD_ARB_PRIORITY_USE_SERIAL_COUNT_THRESHOLD_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_thread_arb_priority_t {
+ unsigned int pc_avail_weight : SQ_THREAD_ARB_PRIORITY_PC_AVAIL_WEIGHT_SIZE;
+ unsigned int pc_avail_sign : SQ_THREAD_ARB_PRIORITY_PC_AVAIL_SIGN_SIZE;
+ unsigned int sx_avail_weight : SQ_THREAD_ARB_PRIORITY_SX_AVAIL_WEIGHT_SIZE;
+ unsigned int sx_avail_sign : SQ_THREAD_ARB_PRIORITY_SX_AVAIL_SIGN_SIZE;
+ unsigned int threshold : SQ_THREAD_ARB_PRIORITY_THRESHOLD_SIZE;
+ unsigned int reserved : SQ_THREAD_ARB_PRIORITY_RESERVED_SIZE;
+ unsigned int vs_prioritize_serial : SQ_THREAD_ARB_PRIORITY_VS_PRIORITIZE_SERIAL_SIZE;
+ unsigned int ps_prioritize_serial : SQ_THREAD_ARB_PRIORITY_PS_PRIORITIZE_SERIAL_SIZE;
+ unsigned int use_serial_count_threshold : SQ_THREAD_ARB_PRIORITY_USE_SERIAL_COUNT_THRESHOLD_SIZE;
+ unsigned int : 9;
+ } sq_thread_arb_priority_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_thread_arb_priority_t {
+ unsigned int : 9;
+ unsigned int use_serial_count_threshold : SQ_THREAD_ARB_PRIORITY_USE_SERIAL_COUNT_THRESHOLD_SIZE;
+ unsigned int ps_prioritize_serial : SQ_THREAD_ARB_PRIORITY_PS_PRIORITIZE_SERIAL_SIZE;
+ unsigned int vs_prioritize_serial : SQ_THREAD_ARB_PRIORITY_VS_PRIORITIZE_SERIAL_SIZE;
+ unsigned int reserved : SQ_THREAD_ARB_PRIORITY_RESERVED_SIZE;
+ unsigned int threshold : SQ_THREAD_ARB_PRIORITY_THRESHOLD_SIZE;
+ unsigned int sx_avail_sign : SQ_THREAD_ARB_PRIORITY_SX_AVAIL_SIGN_SIZE;
+ unsigned int sx_avail_weight : SQ_THREAD_ARB_PRIORITY_SX_AVAIL_WEIGHT_SIZE;
+ unsigned int pc_avail_sign : SQ_THREAD_ARB_PRIORITY_PC_AVAIL_SIGN_SIZE;
+ unsigned int pc_avail_weight : SQ_THREAD_ARB_PRIORITY_PC_AVAIL_WEIGHT_SIZE;
+ } sq_thread_arb_priority_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_thread_arb_priority_t f;
+} sq_thread_arb_priority_u;
+
+
+/*
+ * SQ_VS_WATCHDOG_TIMER struct
+ */
+
+#define SQ_VS_WATCHDOG_TIMER_ENABLE_SIZE 1
+#define SQ_VS_WATCHDOG_TIMER_TIMEOUT_COUNT_SIZE 31
+
+#define SQ_VS_WATCHDOG_TIMER_ENABLE_SHIFT 0
+#define SQ_VS_WATCHDOG_TIMER_TIMEOUT_COUNT_SHIFT 1
+
+#define SQ_VS_WATCHDOG_TIMER_ENABLE_MASK 0x00000001
+#define SQ_VS_WATCHDOG_TIMER_TIMEOUT_COUNT_MASK 0xfffffffe
+
+#define SQ_VS_WATCHDOG_TIMER_MASK \
+ (SQ_VS_WATCHDOG_TIMER_ENABLE_MASK | \
+ SQ_VS_WATCHDOG_TIMER_TIMEOUT_COUNT_MASK)
+
+#define SQ_VS_WATCHDOG_TIMER(enable, timeout_count) \
+ ((enable << SQ_VS_WATCHDOG_TIMER_ENABLE_SHIFT) | \
+ (timeout_count << SQ_VS_WATCHDOG_TIMER_TIMEOUT_COUNT_SHIFT))
+
+#define SQ_VS_WATCHDOG_TIMER_GET_ENABLE(sq_vs_watchdog_timer) \
+ ((sq_vs_watchdog_timer & SQ_VS_WATCHDOG_TIMER_ENABLE_MASK) >> SQ_VS_WATCHDOG_TIMER_ENABLE_SHIFT)
+#define SQ_VS_WATCHDOG_TIMER_GET_TIMEOUT_COUNT(sq_vs_watchdog_timer) \
+ ((sq_vs_watchdog_timer & SQ_VS_WATCHDOG_TIMER_TIMEOUT_COUNT_MASK) >> SQ_VS_WATCHDOG_TIMER_TIMEOUT_COUNT_SHIFT)
+
+#define SQ_VS_WATCHDOG_TIMER_SET_ENABLE(sq_vs_watchdog_timer_reg, enable) \
+ sq_vs_watchdog_timer_reg = (sq_vs_watchdog_timer_reg & ~SQ_VS_WATCHDOG_TIMER_ENABLE_MASK) | (enable << SQ_VS_WATCHDOG_TIMER_ENABLE_SHIFT)
+#define SQ_VS_WATCHDOG_TIMER_SET_TIMEOUT_COUNT(sq_vs_watchdog_timer_reg, timeout_count) \
+ sq_vs_watchdog_timer_reg = (sq_vs_watchdog_timer_reg & ~SQ_VS_WATCHDOG_TIMER_TIMEOUT_COUNT_MASK) | (timeout_count << SQ_VS_WATCHDOG_TIMER_TIMEOUT_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_vs_watchdog_timer_t {
+ unsigned int enable : SQ_VS_WATCHDOG_TIMER_ENABLE_SIZE;
+ unsigned int timeout_count : SQ_VS_WATCHDOG_TIMER_TIMEOUT_COUNT_SIZE;
+ } sq_vs_watchdog_timer_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_vs_watchdog_timer_t {
+ unsigned int timeout_count : SQ_VS_WATCHDOG_TIMER_TIMEOUT_COUNT_SIZE;
+ unsigned int enable : SQ_VS_WATCHDOG_TIMER_ENABLE_SIZE;
+ } sq_vs_watchdog_timer_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_vs_watchdog_timer_t f;
+} sq_vs_watchdog_timer_u;
+
+
+/*
+ * SQ_PS_WATCHDOG_TIMER struct
+ */
+
+#define SQ_PS_WATCHDOG_TIMER_ENABLE_SIZE 1
+#define SQ_PS_WATCHDOG_TIMER_TIMEOUT_COUNT_SIZE 31
+
+#define SQ_PS_WATCHDOG_TIMER_ENABLE_SHIFT 0
+#define SQ_PS_WATCHDOG_TIMER_TIMEOUT_COUNT_SHIFT 1
+
+#define SQ_PS_WATCHDOG_TIMER_ENABLE_MASK 0x00000001
+#define SQ_PS_WATCHDOG_TIMER_TIMEOUT_COUNT_MASK 0xfffffffe
+
+#define SQ_PS_WATCHDOG_TIMER_MASK \
+ (SQ_PS_WATCHDOG_TIMER_ENABLE_MASK | \
+ SQ_PS_WATCHDOG_TIMER_TIMEOUT_COUNT_MASK)
+
+#define SQ_PS_WATCHDOG_TIMER(enable, timeout_count) \
+ ((enable << SQ_PS_WATCHDOG_TIMER_ENABLE_SHIFT) | \
+ (timeout_count << SQ_PS_WATCHDOG_TIMER_TIMEOUT_COUNT_SHIFT))
+
+#define SQ_PS_WATCHDOG_TIMER_GET_ENABLE(sq_ps_watchdog_timer) \
+ ((sq_ps_watchdog_timer & SQ_PS_WATCHDOG_TIMER_ENABLE_MASK) >> SQ_PS_WATCHDOG_TIMER_ENABLE_SHIFT)
+#define SQ_PS_WATCHDOG_TIMER_GET_TIMEOUT_COUNT(sq_ps_watchdog_timer) \
+ ((sq_ps_watchdog_timer & SQ_PS_WATCHDOG_TIMER_TIMEOUT_COUNT_MASK) >> SQ_PS_WATCHDOG_TIMER_TIMEOUT_COUNT_SHIFT)
+
+#define SQ_PS_WATCHDOG_TIMER_SET_ENABLE(sq_ps_watchdog_timer_reg, enable) \
+ sq_ps_watchdog_timer_reg = (sq_ps_watchdog_timer_reg & ~SQ_PS_WATCHDOG_TIMER_ENABLE_MASK) | (enable << SQ_PS_WATCHDOG_TIMER_ENABLE_SHIFT)
+#define SQ_PS_WATCHDOG_TIMER_SET_TIMEOUT_COUNT(sq_ps_watchdog_timer_reg, timeout_count) \
+ sq_ps_watchdog_timer_reg = (sq_ps_watchdog_timer_reg & ~SQ_PS_WATCHDOG_TIMER_TIMEOUT_COUNT_MASK) | (timeout_count << SQ_PS_WATCHDOG_TIMER_TIMEOUT_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_ps_watchdog_timer_t {
+ unsigned int enable : SQ_PS_WATCHDOG_TIMER_ENABLE_SIZE;
+ unsigned int timeout_count : SQ_PS_WATCHDOG_TIMER_TIMEOUT_COUNT_SIZE;
+ } sq_ps_watchdog_timer_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_ps_watchdog_timer_t {
+ unsigned int timeout_count : SQ_PS_WATCHDOG_TIMER_TIMEOUT_COUNT_SIZE;
+ unsigned int enable : SQ_PS_WATCHDOG_TIMER_ENABLE_SIZE;
+ } sq_ps_watchdog_timer_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_ps_watchdog_timer_t f;
+} sq_ps_watchdog_timer_u;
+
+
+/*
+ * SQ_INT_CNTL struct
+ */
+
+#define SQ_INT_CNTL_PS_WATCHDOG_MASK_SIZE 1
+#define SQ_INT_CNTL_VS_WATCHDOG_MASK_SIZE 1
+
+#define SQ_INT_CNTL_PS_WATCHDOG_MASK_SHIFT 0
+#define SQ_INT_CNTL_VS_WATCHDOG_MASK_SHIFT 1
+
+#define SQ_INT_CNTL_PS_WATCHDOG_MASK_MASK 0x00000001
+#define SQ_INT_CNTL_VS_WATCHDOG_MASK_MASK 0x00000002
+
+#define SQ_INT_CNTL_MASK \
+ (SQ_INT_CNTL_PS_WATCHDOG_MASK_MASK | \
+ SQ_INT_CNTL_VS_WATCHDOG_MASK_MASK)
+
+#define SQ_INT_CNTL(ps_watchdog_mask, vs_watchdog_mask) \
+ ((ps_watchdog_mask << SQ_INT_CNTL_PS_WATCHDOG_MASK_SHIFT) | \
+ (vs_watchdog_mask << SQ_INT_CNTL_VS_WATCHDOG_MASK_SHIFT))
+
+#define SQ_INT_CNTL_GET_PS_WATCHDOG_MASK(sq_int_cntl) \
+ ((sq_int_cntl & SQ_INT_CNTL_PS_WATCHDOG_MASK_MASK) >> SQ_INT_CNTL_PS_WATCHDOG_MASK_SHIFT)
+#define SQ_INT_CNTL_GET_VS_WATCHDOG_MASK(sq_int_cntl) \
+ ((sq_int_cntl & SQ_INT_CNTL_VS_WATCHDOG_MASK_MASK) >> SQ_INT_CNTL_VS_WATCHDOG_MASK_SHIFT)
+
+#define SQ_INT_CNTL_SET_PS_WATCHDOG_MASK(sq_int_cntl_reg, ps_watchdog_mask) \
+ sq_int_cntl_reg = (sq_int_cntl_reg & ~SQ_INT_CNTL_PS_WATCHDOG_MASK_MASK) | (ps_watchdog_mask << SQ_INT_CNTL_PS_WATCHDOG_MASK_SHIFT)
+#define SQ_INT_CNTL_SET_VS_WATCHDOG_MASK(sq_int_cntl_reg, vs_watchdog_mask) \
+ sq_int_cntl_reg = (sq_int_cntl_reg & ~SQ_INT_CNTL_VS_WATCHDOG_MASK_MASK) | (vs_watchdog_mask << SQ_INT_CNTL_VS_WATCHDOG_MASK_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_int_cntl_t {
+ unsigned int ps_watchdog_mask : SQ_INT_CNTL_PS_WATCHDOG_MASK_SIZE;
+ unsigned int vs_watchdog_mask : SQ_INT_CNTL_VS_WATCHDOG_MASK_SIZE;
+ unsigned int : 30;
+ } sq_int_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_int_cntl_t {
+ unsigned int : 30;
+ unsigned int vs_watchdog_mask : SQ_INT_CNTL_VS_WATCHDOG_MASK_SIZE;
+ unsigned int ps_watchdog_mask : SQ_INT_CNTL_PS_WATCHDOG_MASK_SIZE;
+ } sq_int_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_int_cntl_t f;
+} sq_int_cntl_u;
+
+
+/*
+ * SQ_INT_STATUS struct
+ */
+
+#define SQ_INT_STATUS_PS_WATCHDOG_TIMEOUT_SIZE 1
+#define SQ_INT_STATUS_VS_WATCHDOG_TIMEOUT_SIZE 1
+
+#define SQ_INT_STATUS_PS_WATCHDOG_TIMEOUT_SHIFT 0
+#define SQ_INT_STATUS_VS_WATCHDOG_TIMEOUT_SHIFT 1
+
+#define SQ_INT_STATUS_PS_WATCHDOG_TIMEOUT_MASK 0x00000001
+#define SQ_INT_STATUS_VS_WATCHDOG_TIMEOUT_MASK 0x00000002
+
+#define SQ_INT_STATUS_MASK \
+ (SQ_INT_STATUS_PS_WATCHDOG_TIMEOUT_MASK | \
+ SQ_INT_STATUS_VS_WATCHDOG_TIMEOUT_MASK)
+
+#define SQ_INT_STATUS(ps_watchdog_timeout, vs_watchdog_timeout) \
+ ((ps_watchdog_timeout << SQ_INT_STATUS_PS_WATCHDOG_TIMEOUT_SHIFT) | \
+ (vs_watchdog_timeout << SQ_INT_STATUS_VS_WATCHDOG_TIMEOUT_SHIFT))
+
+#define SQ_INT_STATUS_GET_PS_WATCHDOG_TIMEOUT(sq_int_status) \
+ ((sq_int_status & SQ_INT_STATUS_PS_WATCHDOG_TIMEOUT_MASK) >> SQ_INT_STATUS_PS_WATCHDOG_TIMEOUT_SHIFT)
+#define SQ_INT_STATUS_GET_VS_WATCHDOG_TIMEOUT(sq_int_status) \
+ ((sq_int_status & SQ_INT_STATUS_VS_WATCHDOG_TIMEOUT_MASK) >> SQ_INT_STATUS_VS_WATCHDOG_TIMEOUT_SHIFT)
+
+#define SQ_INT_STATUS_SET_PS_WATCHDOG_TIMEOUT(sq_int_status_reg, ps_watchdog_timeout) \
+ sq_int_status_reg = (sq_int_status_reg & ~SQ_INT_STATUS_PS_WATCHDOG_TIMEOUT_MASK) | (ps_watchdog_timeout << SQ_INT_STATUS_PS_WATCHDOG_TIMEOUT_SHIFT)
+#define SQ_INT_STATUS_SET_VS_WATCHDOG_TIMEOUT(sq_int_status_reg, vs_watchdog_timeout) \
+ sq_int_status_reg = (sq_int_status_reg & ~SQ_INT_STATUS_VS_WATCHDOG_TIMEOUT_MASK) | (vs_watchdog_timeout << SQ_INT_STATUS_VS_WATCHDOG_TIMEOUT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_int_status_t {
+ unsigned int ps_watchdog_timeout : SQ_INT_STATUS_PS_WATCHDOG_TIMEOUT_SIZE;
+ unsigned int vs_watchdog_timeout : SQ_INT_STATUS_VS_WATCHDOG_TIMEOUT_SIZE;
+ unsigned int : 30;
+ } sq_int_status_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_int_status_t {
+ unsigned int : 30;
+ unsigned int vs_watchdog_timeout : SQ_INT_STATUS_VS_WATCHDOG_TIMEOUT_SIZE;
+ unsigned int ps_watchdog_timeout : SQ_INT_STATUS_PS_WATCHDOG_TIMEOUT_SIZE;
+ } sq_int_status_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_int_status_t f;
+} sq_int_status_u;
+
+
+/*
+ * SQ_INT_ACK struct
+ */
+
+#define SQ_INT_ACK_PS_WATCHDOG_ACK_SIZE 1
+#define SQ_INT_ACK_VS_WATCHDOG_ACK_SIZE 1
+
+#define SQ_INT_ACK_PS_WATCHDOG_ACK_SHIFT 0
+#define SQ_INT_ACK_VS_WATCHDOG_ACK_SHIFT 1
+
+#define SQ_INT_ACK_PS_WATCHDOG_ACK_MASK 0x00000001
+#define SQ_INT_ACK_VS_WATCHDOG_ACK_MASK 0x00000002
+
+#define SQ_INT_ACK_MASK \
+ (SQ_INT_ACK_PS_WATCHDOG_ACK_MASK | \
+ SQ_INT_ACK_VS_WATCHDOG_ACK_MASK)
+
+#define SQ_INT_ACK(ps_watchdog_ack, vs_watchdog_ack) \
+ ((ps_watchdog_ack << SQ_INT_ACK_PS_WATCHDOG_ACK_SHIFT) | \
+ (vs_watchdog_ack << SQ_INT_ACK_VS_WATCHDOG_ACK_SHIFT))
+
+#define SQ_INT_ACK_GET_PS_WATCHDOG_ACK(sq_int_ack) \
+ ((sq_int_ack & SQ_INT_ACK_PS_WATCHDOG_ACK_MASK) >> SQ_INT_ACK_PS_WATCHDOG_ACK_SHIFT)
+#define SQ_INT_ACK_GET_VS_WATCHDOG_ACK(sq_int_ack) \
+ ((sq_int_ack & SQ_INT_ACK_VS_WATCHDOG_ACK_MASK) >> SQ_INT_ACK_VS_WATCHDOG_ACK_SHIFT)
+
+#define SQ_INT_ACK_SET_PS_WATCHDOG_ACK(sq_int_ack_reg, ps_watchdog_ack) \
+ sq_int_ack_reg = (sq_int_ack_reg & ~SQ_INT_ACK_PS_WATCHDOG_ACK_MASK) | (ps_watchdog_ack << SQ_INT_ACK_PS_WATCHDOG_ACK_SHIFT)
+#define SQ_INT_ACK_SET_VS_WATCHDOG_ACK(sq_int_ack_reg, vs_watchdog_ack) \
+ sq_int_ack_reg = (sq_int_ack_reg & ~SQ_INT_ACK_VS_WATCHDOG_ACK_MASK) | (vs_watchdog_ack << SQ_INT_ACK_VS_WATCHDOG_ACK_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_int_ack_t {
+ unsigned int ps_watchdog_ack : SQ_INT_ACK_PS_WATCHDOG_ACK_SIZE;
+ unsigned int vs_watchdog_ack : SQ_INT_ACK_VS_WATCHDOG_ACK_SIZE;
+ unsigned int : 30;
+ } sq_int_ack_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_int_ack_t {
+ unsigned int : 30;
+ unsigned int vs_watchdog_ack : SQ_INT_ACK_VS_WATCHDOG_ACK_SIZE;
+ unsigned int ps_watchdog_ack : SQ_INT_ACK_PS_WATCHDOG_ACK_SIZE;
+ } sq_int_ack_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_int_ack_t f;
+} sq_int_ack_u;
+
+
+/*
+ * SQ_DEBUG_INPUT_FSM struct
+ */
+
+#define SQ_DEBUG_INPUT_FSM_VC_VSR_LD_SIZE 3
+#define SQ_DEBUG_INPUT_FSM_RESERVED_SIZE 1
+#define SQ_DEBUG_INPUT_FSM_VC_GPR_LD_SIZE 4
+#define SQ_DEBUG_INPUT_FSM_PC_PISM_SIZE 3
+#define SQ_DEBUG_INPUT_FSM_RESERVED1_SIZE 1
+#define SQ_DEBUG_INPUT_FSM_PC_AS_SIZE 3
+#define SQ_DEBUG_INPUT_FSM_PC_INTERP_CNT_SIZE 5
+#define SQ_DEBUG_INPUT_FSM_PC_GPR_SIZE_SIZE 8
+
+#define SQ_DEBUG_INPUT_FSM_VC_VSR_LD_SHIFT 0
+#define SQ_DEBUG_INPUT_FSM_RESERVED_SHIFT 3
+#define SQ_DEBUG_INPUT_FSM_VC_GPR_LD_SHIFT 4
+#define SQ_DEBUG_INPUT_FSM_PC_PISM_SHIFT 8
+#define SQ_DEBUG_INPUT_FSM_RESERVED1_SHIFT 11
+#define SQ_DEBUG_INPUT_FSM_PC_AS_SHIFT 12
+#define SQ_DEBUG_INPUT_FSM_PC_INTERP_CNT_SHIFT 15
+#define SQ_DEBUG_INPUT_FSM_PC_GPR_SIZE_SHIFT 20
+
+#define SQ_DEBUG_INPUT_FSM_VC_VSR_LD_MASK 0x00000007
+#define SQ_DEBUG_INPUT_FSM_RESERVED_MASK 0x00000008
+#define SQ_DEBUG_INPUT_FSM_VC_GPR_LD_MASK 0x000000f0
+#define SQ_DEBUG_INPUT_FSM_PC_PISM_MASK 0x00000700
+#define SQ_DEBUG_INPUT_FSM_RESERVED1_MASK 0x00000800
+#define SQ_DEBUG_INPUT_FSM_PC_AS_MASK 0x00007000
+#define SQ_DEBUG_INPUT_FSM_PC_INTERP_CNT_MASK 0x000f8000
+#define SQ_DEBUG_INPUT_FSM_PC_GPR_SIZE_MASK 0x0ff00000
+
+#define SQ_DEBUG_INPUT_FSM_MASK \
+ (SQ_DEBUG_INPUT_FSM_VC_VSR_LD_MASK | \
+ SQ_DEBUG_INPUT_FSM_RESERVED_MASK | \
+ SQ_DEBUG_INPUT_FSM_VC_GPR_LD_MASK | \
+ SQ_DEBUG_INPUT_FSM_PC_PISM_MASK | \
+ SQ_DEBUG_INPUT_FSM_RESERVED1_MASK | \
+ SQ_DEBUG_INPUT_FSM_PC_AS_MASK | \
+ SQ_DEBUG_INPUT_FSM_PC_INTERP_CNT_MASK | \
+ SQ_DEBUG_INPUT_FSM_PC_GPR_SIZE_MASK)
+
+#define SQ_DEBUG_INPUT_FSM(vc_vsr_ld, reserved, vc_gpr_ld, pc_pism, reserved1, pc_as, pc_interp_cnt, pc_gpr_size) \
+ ((vc_vsr_ld << SQ_DEBUG_INPUT_FSM_VC_VSR_LD_SHIFT) | \
+ (reserved << SQ_DEBUG_INPUT_FSM_RESERVED_SHIFT) | \
+ (vc_gpr_ld << SQ_DEBUG_INPUT_FSM_VC_GPR_LD_SHIFT) | \
+ (pc_pism << SQ_DEBUG_INPUT_FSM_PC_PISM_SHIFT) | \
+ (reserved1 << SQ_DEBUG_INPUT_FSM_RESERVED1_SHIFT) | \
+ (pc_as << SQ_DEBUG_INPUT_FSM_PC_AS_SHIFT) | \
+ (pc_interp_cnt << SQ_DEBUG_INPUT_FSM_PC_INTERP_CNT_SHIFT) | \
+ (pc_gpr_size << SQ_DEBUG_INPUT_FSM_PC_GPR_SIZE_SHIFT))
+
+#define SQ_DEBUG_INPUT_FSM_GET_VC_VSR_LD(sq_debug_input_fsm) \
+ ((sq_debug_input_fsm & SQ_DEBUG_INPUT_FSM_VC_VSR_LD_MASK) >> SQ_DEBUG_INPUT_FSM_VC_VSR_LD_SHIFT)
+#define SQ_DEBUG_INPUT_FSM_GET_RESERVED(sq_debug_input_fsm) \
+ ((sq_debug_input_fsm & SQ_DEBUG_INPUT_FSM_RESERVED_MASK) >> SQ_DEBUG_INPUT_FSM_RESERVED_SHIFT)
+#define SQ_DEBUG_INPUT_FSM_GET_VC_GPR_LD(sq_debug_input_fsm) \
+ ((sq_debug_input_fsm & SQ_DEBUG_INPUT_FSM_VC_GPR_LD_MASK) >> SQ_DEBUG_INPUT_FSM_VC_GPR_LD_SHIFT)
+#define SQ_DEBUG_INPUT_FSM_GET_PC_PISM(sq_debug_input_fsm) \
+ ((sq_debug_input_fsm & SQ_DEBUG_INPUT_FSM_PC_PISM_MASK) >> SQ_DEBUG_INPUT_FSM_PC_PISM_SHIFT)
+#define SQ_DEBUG_INPUT_FSM_GET_RESERVED1(sq_debug_input_fsm) \
+ ((sq_debug_input_fsm & SQ_DEBUG_INPUT_FSM_RESERVED1_MASK) >> SQ_DEBUG_INPUT_FSM_RESERVED1_SHIFT)
+#define SQ_DEBUG_INPUT_FSM_GET_PC_AS(sq_debug_input_fsm) \
+ ((sq_debug_input_fsm & SQ_DEBUG_INPUT_FSM_PC_AS_MASK) >> SQ_DEBUG_INPUT_FSM_PC_AS_SHIFT)
+#define SQ_DEBUG_INPUT_FSM_GET_PC_INTERP_CNT(sq_debug_input_fsm) \
+ ((sq_debug_input_fsm & SQ_DEBUG_INPUT_FSM_PC_INTERP_CNT_MASK) >> SQ_DEBUG_INPUT_FSM_PC_INTERP_CNT_SHIFT)
+#define SQ_DEBUG_INPUT_FSM_GET_PC_GPR_SIZE(sq_debug_input_fsm) \
+ ((sq_debug_input_fsm & SQ_DEBUG_INPUT_FSM_PC_GPR_SIZE_MASK) >> SQ_DEBUG_INPUT_FSM_PC_GPR_SIZE_SHIFT)
+
+#define SQ_DEBUG_INPUT_FSM_SET_VC_VSR_LD(sq_debug_input_fsm_reg, vc_vsr_ld) \
+ sq_debug_input_fsm_reg = (sq_debug_input_fsm_reg & ~SQ_DEBUG_INPUT_FSM_VC_VSR_LD_MASK) | (vc_vsr_ld << SQ_DEBUG_INPUT_FSM_VC_VSR_LD_SHIFT)
+#define SQ_DEBUG_INPUT_FSM_SET_RESERVED(sq_debug_input_fsm_reg, reserved) \
+ sq_debug_input_fsm_reg = (sq_debug_input_fsm_reg & ~SQ_DEBUG_INPUT_FSM_RESERVED_MASK) | (reserved << SQ_DEBUG_INPUT_FSM_RESERVED_SHIFT)
+#define SQ_DEBUG_INPUT_FSM_SET_VC_GPR_LD(sq_debug_input_fsm_reg, vc_gpr_ld) \
+ sq_debug_input_fsm_reg = (sq_debug_input_fsm_reg & ~SQ_DEBUG_INPUT_FSM_VC_GPR_LD_MASK) | (vc_gpr_ld << SQ_DEBUG_INPUT_FSM_VC_GPR_LD_SHIFT)
+#define SQ_DEBUG_INPUT_FSM_SET_PC_PISM(sq_debug_input_fsm_reg, pc_pism) \
+ sq_debug_input_fsm_reg = (sq_debug_input_fsm_reg & ~SQ_DEBUG_INPUT_FSM_PC_PISM_MASK) | (pc_pism << SQ_DEBUG_INPUT_FSM_PC_PISM_SHIFT)
+#define SQ_DEBUG_INPUT_FSM_SET_RESERVED1(sq_debug_input_fsm_reg, reserved1) \
+ sq_debug_input_fsm_reg = (sq_debug_input_fsm_reg & ~SQ_DEBUG_INPUT_FSM_RESERVED1_MASK) | (reserved1 << SQ_DEBUG_INPUT_FSM_RESERVED1_SHIFT)
+#define SQ_DEBUG_INPUT_FSM_SET_PC_AS(sq_debug_input_fsm_reg, pc_as) \
+ sq_debug_input_fsm_reg = (sq_debug_input_fsm_reg & ~SQ_DEBUG_INPUT_FSM_PC_AS_MASK) | (pc_as << SQ_DEBUG_INPUT_FSM_PC_AS_SHIFT)
+#define SQ_DEBUG_INPUT_FSM_SET_PC_INTERP_CNT(sq_debug_input_fsm_reg, pc_interp_cnt) \
+ sq_debug_input_fsm_reg = (sq_debug_input_fsm_reg & ~SQ_DEBUG_INPUT_FSM_PC_INTERP_CNT_MASK) | (pc_interp_cnt << SQ_DEBUG_INPUT_FSM_PC_INTERP_CNT_SHIFT)
+#define SQ_DEBUG_INPUT_FSM_SET_PC_GPR_SIZE(sq_debug_input_fsm_reg, pc_gpr_size) \
+ sq_debug_input_fsm_reg = (sq_debug_input_fsm_reg & ~SQ_DEBUG_INPUT_FSM_PC_GPR_SIZE_MASK) | (pc_gpr_size << SQ_DEBUG_INPUT_FSM_PC_GPR_SIZE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_input_fsm_t {
+ unsigned int vc_vsr_ld : SQ_DEBUG_INPUT_FSM_VC_VSR_LD_SIZE;
+ unsigned int reserved : SQ_DEBUG_INPUT_FSM_RESERVED_SIZE;
+ unsigned int vc_gpr_ld : SQ_DEBUG_INPUT_FSM_VC_GPR_LD_SIZE;
+ unsigned int pc_pism : SQ_DEBUG_INPUT_FSM_PC_PISM_SIZE;
+ unsigned int reserved1 : SQ_DEBUG_INPUT_FSM_RESERVED1_SIZE;
+ unsigned int pc_as : SQ_DEBUG_INPUT_FSM_PC_AS_SIZE;
+ unsigned int pc_interp_cnt : SQ_DEBUG_INPUT_FSM_PC_INTERP_CNT_SIZE;
+ unsigned int pc_gpr_size : SQ_DEBUG_INPUT_FSM_PC_GPR_SIZE_SIZE;
+ unsigned int : 4;
+ } sq_debug_input_fsm_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_input_fsm_t {
+ unsigned int : 4;
+ unsigned int pc_gpr_size : SQ_DEBUG_INPUT_FSM_PC_GPR_SIZE_SIZE;
+ unsigned int pc_interp_cnt : SQ_DEBUG_INPUT_FSM_PC_INTERP_CNT_SIZE;
+ unsigned int pc_as : SQ_DEBUG_INPUT_FSM_PC_AS_SIZE;
+ unsigned int reserved1 : SQ_DEBUG_INPUT_FSM_RESERVED1_SIZE;
+ unsigned int pc_pism : SQ_DEBUG_INPUT_FSM_PC_PISM_SIZE;
+ unsigned int vc_gpr_ld : SQ_DEBUG_INPUT_FSM_VC_GPR_LD_SIZE;
+ unsigned int reserved : SQ_DEBUG_INPUT_FSM_RESERVED_SIZE;
+ unsigned int vc_vsr_ld : SQ_DEBUG_INPUT_FSM_VC_VSR_LD_SIZE;
+ } sq_debug_input_fsm_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_input_fsm_t f;
+} sq_debug_input_fsm_u;
+
+
+/*
+ * SQ_DEBUG_CONST_MGR_FSM struct
+ */
+
+#define SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_EVENT_STATE_SIZE 5
+#define SQ_DEBUG_CONST_MGR_FSM_RESERVED1_SIZE 3
+#define SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_EVENT_STATE_SIZE 5
+#define SQ_DEBUG_CONST_MGR_FSM_RESERVED2_SIZE 3
+#define SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_CNTX_VALID_SIZE 2
+#define SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_CNTX_VALID_SIZE 2
+#define SQ_DEBUG_CONST_MGR_FSM_CNTX0_VTX_EVENT_DONE_SIZE 1
+#define SQ_DEBUG_CONST_MGR_FSM_CNTX0_PIX_EVENT_DONE_SIZE 1
+#define SQ_DEBUG_CONST_MGR_FSM_CNTX1_VTX_EVENT_DONE_SIZE 1
+#define SQ_DEBUG_CONST_MGR_FSM_CNTX1_PIX_EVENT_DONE_SIZE 1
+
+#define SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_EVENT_STATE_SHIFT 0
+#define SQ_DEBUG_CONST_MGR_FSM_RESERVED1_SHIFT 5
+#define SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_EVENT_STATE_SHIFT 8
+#define SQ_DEBUG_CONST_MGR_FSM_RESERVED2_SHIFT 13
+#define SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_CNTX_VALID_SHIFT 16
+#define SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_CNTX_VALID_SHIFT 18
+#define SQ_DEBUG_CONST_MGR_FSM_CNTX0_VTX_EVENT_DONE_SHIFT 20
+#define SQ_DEBUG_CONST_MGR_FSM_CNTX0_PIX_EVENT_DONE_SHIFT 21
+#define SQ_DEBUG_CONST_MGR_FSM_CNTX1_VTX_EVENT_DONE_SHIFT 22
+#define SQ_DEBUG_CONST_MGR_FSM_CNTX1_PIX_EVENT_DONE_SHIFT 23
+
+#define SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_EVENT_STATE_MASK 0x0000001f
+#define SQ_DEBUG_CONST_MGR_FSM_RESERVED1_MASK 0x000000e0
+#define SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_EVENT_STATE_MASK 0x00001f00
+#define SQ_DEBUG_CONST_MGR_FSM_RESERVED2_MASK 0x0000e000
+#define SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_CNTX_VALID_MASK 0x00030000
+#define SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_CNTX_VALID_MASK 0x000c0000
+#define SQ_DEBUG_CONST_MGR_FSM_CNTX0_VTX_EVENT_DONE_MASK 0x00100000
+#define SQ_DEBUG_CONST_MGR_FSM_CNTX0_PIX_EVENT_DONE_MASK 0x00200000
+#define SQ_DEBUG_CONST_MGR_FSM_CNTX1_VTX_EVENT_DONE_MASK 0x00400000
+#define SQ_DEBUG_CONST_MGR_FSM_CNTX1_PIX_EVENT_DONE_MASK 0x00800000
+
+#define SQ_DEBUG_CONST_MGR_FSM_MASK \
+ (SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_EVENT_STATE_MASK | \
+ SQ_DEBUG_CONST_MGR_FSM_RESERVED1_MASK | \
+ SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_EVENT_STATE_MASK | \
+ SQ_DEBUG_CONST_MGR_FSM_RESERVED2_MASK | \
+ SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_CNTX_VALID_MASK | \
+ SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_CNTX_VALID_MASK | \
+ SQ_DEBUG_CONST_MGR_FSM_CNTX0_VTX_EVENT_DONE_MASK | \
+ SQ_DEBUG_CONST_MGR_FSM_CNTX0_PIX_EVENT_DONE_MASK | \
+ SQ_DEBUG_CONST_MGR_FSM_CNTX1_VTX_EVENT_DONE_MASK | \
+ SQ_DEBUG_CONST_MGR_FSM_CNTX1_PIX_EVENT_DONE_MASK)
+
+#define SQ_DEBUG_CONST_MGR_FSM(tex_const_event_state, reserved1, alu_const_event_state, reserved2, alu_const_cntx_valid, tex_const_cntx_valid, cntx0_vtx_event_done, cntx0_pix_event_done, cntx1_vtx_event_done, cntx1_pix_event_done) \
+ ((tex_const_event_state << SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_EVENT_STATE_SHIFT) | \
+ (reserved1 << SQ_DEBUG_CONST_MGR_FSM_RESERVED1_SHIFT) | \
+ (alu_const_event_state << SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_EVENT_STATE_SHIFT) | \
+ (reserved2 << SQ_DEBUG_CONST_MGR_FSM_RESERVED2_SHIFT) | \
+ (alu_const_cntx_valid << SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_CNTX_VALID_SHIFT) | \
+ (tex_const_cntx_valid << SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_CNTX_VALID_SHIFT) | \
+ (cntx0_vtx_event_done << SQ_DEBUG_CONST_MGR_FSM_CNTX0_VTX_EVENT_DONE_SHIFT) | \
+ (cntx0_pix_event_done << SQ_DEBUG_CONST_MGR_FSM_CNTX0_PIX_EVENT_DONE_SHIFT) | \
+ (cntx1_vtx_event_done << SQ_DEBUG_CONST_MGR_FSM_CNTX1_VTX_EVENT_DONE_SHIFT) | \
+ (cntx1_pix_event_done << SQ_DEBUG_CONST_MGR_FSM_CNTX1_PIX_EVENT_DONE_SHIFT))
+
+#define SQ_DEBUG_CONST_MGR_FSM_GET_TEX_CONST_EVENT_STATE(sq_debug_const_mgr_fsm) \
+ ((sq_debug_const_mgr_fsm & SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_EVENT_STATE_MASK) >> SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_EVENT_STATE_SHIFT)
+#define SQ_DEBUG_CONST_MGR_FSM_GET_RESERVED1(sq_debug_const_mgr_fsm) \
+ ((sq_debug_const_mgr_fsm & SQ_DEBUG_CONST_MGR_FSM_RESERVED1_MASK) >> SQ_DEBUG_CONST_MGR_FSM_RESERVED1_SHIFT)
+#define SQ_DEBUG_CONST_MGR_FSM_GET_ALU_CONST_EVENT_STATE(sq_debug_const_mgr_fsm) \
+ ((sq_debug_const_mgr_fsm & SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_EVENT_STATE_MASK) >> SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_EVENT_STATE_SHIFT)
+#define SQ_DEBUG_CONST_MGR_FSM_GET_RESERVED2(sq_debug_const_mgr_fsm) \
+ ((sq_debug_const_mgr_fsm & SQ_DEBUG_CONST_MGR_FSM_RESERVED2_MASK) >> SQ_DEBUG_CONST_MGR_FSM_RESERVED2_SHIFT)
+#define SQ_DEBUG_CONST_MGR_FSM_GET_ALU_CONST_CNTX_VALID(sq_debug_const_mgr_fsm) \
+ ((sq_debug_const_mgr_fsm & SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_CNTX_VALID_MASK) >> SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_CNTX_VALID_SHIFT)
+#define SQ_DEBUG_CONST_MGR_FSM_GET_TEX_CONST_CNTX_VALID(sq_debug_const_mgr_fsm) \
+ ((sq_debug_const_mgr_fsm & SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_CNTX_VALID_MASK) >> SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_CNTX_VALID_SHIFT)
+#define SQ_DEBUG_CONST_MGR_FSM_GET_CNTX0_VTX_EVENT_DONE(sq_debug_const_mgr_fsm) \
+ ((sq_debug_const_mgr_fsm & SQ_DEBUG_CONST_MGR_FSM_CNTX0_VTX_EVENT_DONE_MASK) >> SQ_DEBUG_CONST_MGR_FSM_CNTX0_VTX_EVENT_DONE_SHIFT)
+#define SQ_DEBUG_CONST_MGR_FSM_GET_CNTX0_PIX_EVENT_DONE(sq_debug_const_mgr_fsm) \
+ ((sq_debug_const_mgr_fsm & SQ_DEBUG_CONST_MGR_FSM_CNTX0_PIX_EVENT_DONE_MASK) >> SQ_DEBUG_CONST_MGR_FSM_CNTX0_PIX_EVENT_DONE_SHIFT)
+#define SQ_DEBUG_CONST_MGR_FSM_GET_CNTX1_VTX_EVENT_DONE(sq_debug_const_mgr_fsm) \
+ ((sq_debug_const_mgr_fsm & SQ_DEBUG_CONST_MGR_FSM_CNTX1_VTX_EVENT_DONE_MASK) >> SQ_DEBUG_CONST_MGR_FSM_CNTX1_VTX_EVENT_DONE_SHIFT)
+#define SQ_DEBUG_CONST_MGR_FSM_GET_CNTX1_PIX_EVENT_DONE(sq_debug_const_mgr_fsm) \
+ ((sq_debug_const_mgr_fsm & SQ_DEBUG_CONST_MGR_FSM_CNTX1_PIX_EVENT_DONE_MASK) >> SQ_DEBUG_CONST_MGR_FSM_CNTX1_PIX_EVENT_DONE_SHIFT)
+
+#define SQ_DEBUG_CONST_MGR_FSM_SET_TEX_CONST_EVENT_STATE(sq_debug_const_mgr_fsm_reg, tex_const_event_state) \
+ sq_debug_const_mgr_fsm_reg = (sq_debug_const_mgr_fsm_reg & ~SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_EVENT_STATE_MASK) | (tex_const_event_state << SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_EVENT_STATE_SHIFT)
+#define SQ_DEBUG_CONST_MGR_FSM_SET_RESERVED1(sq_debug_const_mgr_fsm_reg, reserved1) \
+ sq_debug_const_mgr_fsm_reg = (sq_debug_const_mgr_fsm_reg & ~SQ_DEBUG_CONST_MGR_FSM_RESERVED1_MASK) | (reserved1 << SQ_DEBUG_CONST_MGR_FSM_RESERVED1_SHIFT)
+#define SQ_DEBUG_CONST_MGR_FSM_SET_ALU_CONST_EVENT_STATE(sq_debug_const_mgr_fsm_reg, alu_const_event_state) \
+ sq_debug_const_mgr_fsm_reg = (sq_debug_const_mgr_fsm_reg & ~SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_EVENT_STATE_MASK) | (alu_const_event_state << SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_EVENT_STATE_SHIFT)
+#define SQ_DEBUG_CONST_MGR_FSM_SET_RESERVED2(sq_debug_const_mgr_fsm_reg, reserved2) \
+ sq_debug_const_mgr_fsm_reg = (sq_debug_const_mgr_fsm_reg & ~SQ_DEBUG_CONST_MGR_FSM_RESERVED2_MASK) | (reserved2 << SQ_DEBUG_CONST_MGR_FSM_RESERVED2_SHIFT)
+#define SQ_DEBUG_CONST_MGR_FSM_SET_ALU_CONST_CNTX_VALID(sq_debug_const_mgr_fsm_reg, alu_const_cntx_valid) \
+ sq_debug_const_mgr_fsm_reg = (sq_debug_const_mgr_fsm_reg & ~SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_CNTX_VALID_MASK) | (alu_const_cntx_valid << SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_CNTX_VALID_SHIFT)
+#define SQ_DEBUG_CONST_MGR_FSM_SET_TEX_CONST_CNTX_VALID(sq_debug_const_mgr_fsm_reg, tex_const_cntx_valid) \
+ sq_debug_const_mgr_fsm_reg = (sq_debug_const_mgr_fsm_reg & ~SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_CNTX_VALID_MASK) | (tex_const_cntx_valid << SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_CNTX_VALID_SHIFT)
+#define SQ_DEBUG_CONST_MGR_FSM_SET_CNTX0_VTX_EVENT_DONE(sq_debug_const_mgr_fsm_reg, cntx0_vtx_event_done) \
+ sq_debug_const_mgr_fsm_reg = (sq_debug_const_mgr_fsm_reg & ~SQ_DEBUG_CONST_MGR_FSM_CNTX0_VTX_EVENT_DONE_MASK) | (cntx0_vtx_event_done << SQ_DEBUG_CONST_MGR_FSM_CNTX0_VTX_EVENT_DONE_SHIFT)
+#define SQ_DEBUG_CONST_MGR_FSM_SET_CNTX0_PIX_EVENT_DONE(sq_debug_const_mgr_fsm_reg, cntx0_pix_event_done) \
+ sq_debug_const_mgr_fsm_reg = (sq_debug_const_mgr_fsm_reg & ~SQ_DEBUG_CONST_MGR_FSM_CNTX0_PIX_EVENT_DONE_MASK) | (cntx0_pix_event_done << SQ_DEBUG_CONST_MGR_FSM_CNTX0_PIX_EVENT_DONE_SHIFT)
+#define SQ_DEBUG_CONST_MGR_FSM_SET_CNTX1_VTX_EVENT_DONE(sq_debug_const_mgr_fsm_reg, cntx1_vtx_event_done) \
+ sq_debug_const_mgr_fsm_reg = (sq_debug_const_mgr_fsm_reg & ~SQ_DEBUG_CONST_MGR_FSM_CNTX1_VTX_EVENT_DONE_MASK) | (cntx1_vtx_event_done << SQ_DEBUG_CONST_MGR_FSM_CNTX1_VTX_EVENT_DONE_SHIFT)
+#define SQ_DEBUG_CONST_MGR_FSM_SET_CNTX1_PIX_EVENT_DONE(sq_debug_const_mgr_fsm_reg, cntx1_pix_event_done) \
+ sq_debug_const_mgr_fsm_reg = (sq_debug_const_mgr_fsm_reg & ~SQ_DEBUG_CONST_MGR_FSM_CNTX1_PIX_EVENT_DONE_MASK) | (cntx1_pix_event_done << SQ_DEBUG_CONST_MGR_FSM_CNTX1_PIX_EVENT_DONE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_const_mgr_fsm_t {
+ unsigned int tex_const_event_state : SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_EVENT_STATE_SIZE;
+ unsigned int reserved1 : SQ_DEBUG_CONST_MGR_FSM_RESERVED1_SIZE;
+ unsigned int alu_const_event_state : SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_EVENT_STATE_SIZE;
+ unsigned int reserved2 : SQ_DEBUG_CONST_MGR_FSM_RESERVED2_SIZE;
+ unsigned int alu_const_cntx_valid : SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_CNTX_VALID_SIZE;
+ unsigned int tex_const_cntx_valid : SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_CNTX_VALID_SIZE;
+ unsigned int cntx0_vtx_event_done : SQ_DEBUG_CONST_MGR_FSM_CNTX0_VTX_EVENT_DONE_SIZE;
+ unsigned int cntx0_pix_event_done : SQ_DEBUG_CONST_MGR_FSM_CNTX0_PIX_EVENT_DONE_SIZE;
+ unsigned int cntx1_vtx_event_done : SQ_DEBUG_CONST_MGR_FSM_CNTX1_VTX_EVENT_DONE_SIZE;
+ unsigned int cntx1_pix_event_done : SQ_DEBUG_CONST_MGR_FSM_CNTX1_PIX_EVENT_DONE_SIZE;
+ unsigned int : 8;
+ } sq_debug_const_mgr_fsm_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_const_mgr_fsm_t {
+ unsigned int : 8;
+ unsigned int cntx1_pix_event_done : SQ_DEBUG_CONST_MGR_FSM_CNTX1_PIX_EVENT_DONE_SIZE;
+ unsigned int cntx1_vtx_event_done : SQ_DEBUG_CONST_MGR_FSM_CNTX1_VTX_EVENT_DONE_SIZE;
+ unsigned int cntx0_pix_event_done : SQ_DEBUG_CONST_MGR_FSM_CNTX0_PIX_EVENT_DONE_SIZE;
+ unsigned int cntx0_vtx_event_done : SQ_DEBUG_CONST_MGR_FSM_CNTX0_VTX_EVENT_DONE_SIZE;
+ unsigned int tex_const_cntx_valid : SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_CNTX_VALID_SIZE;
+ unsigned int alu_const_cntx_valid : SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_CNTX_VALID_SIZE;
+ unsigned int reserved2 : SQ_DEBUG_CONST_MGR_FSM_RESERVED2_SIZE;
+ unsigned int alu_const_event_state : SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_EVENT_STATE_SIZE;
+ unsigned int reserved1 : SQ_DEBUG_CONST_MGR_FSM_RESERVED1_SIZE;
+ unsigned int tex_const_event_state : SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_EVENT_STATE_SIZE;
+ } sq_debug_const_mgr_fsm_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_const_mgr_fsm_t f;
+} sq_debug_const_mgr_fsm_u;
+
+
+/*
+ * SQ_DEBUG_TP_FSM struct
+ */
+
+#define SQ_DEBUG_TP_FSM_EX_TP_SIZE 3
+#define SQ_DEBUG_TP_FSM_RESERVED0_SIZE 1
+#define SQ_DEBUG_TP_FSM_CF_TP_SIZE 4
+#define SQ_DEBUG_TP_FSM_IF_TP_SIZE 3
+#define SQ_DEBUG_TP_FSM_RESERVED1_SIZE 1
+#define SQ_DEBUG_TP_FSM_TIS_TP_SIZE 2
+#define SQ_DEBUG_TP_FSM_RESERVED2_SIZE 2
+#define SQ_DEBUG_TP_FSM_GS_TP_SIZE 2
+#define SQ_DEBUG_TP_FSM_RESERVED3_SIZE 2
+#define SQ_DEBUG_TP_FSM_FCR_TP_SIZE 2
+#define SQ_DEBUG_TP_FSM_RESERVED4_SIZE 2
+#define SQ_DEBUG_TP_FSM_FCS_TP_SIZE 2
+#define SQ_DEBUG_TP_FSM_RESERVED5_SIZE 2
+#define SQ_DEBUG_TP_FSM_ARB_TR_TP_SIZE 3
+
+#define SQ_DEBUG_TP_FSM_EX_TP_SHIFT 0
+#define SQ_DEBUG_TP_FSM_RESERVED0_SHIFT 3
+#define SQ_DEBUG_TP_FSM_CF_TP_SHIFT 4
+#define SQ_DEBUG_TP_FSM_IF_TP_SHIFT 8
+#define SQ_DEBUG_TP_FSM_RESERVED1_SHIFT 11
+#define SQ_DEBUG_TP_FSM_TIS_TP_SHIFT 12
+#define SQ_DEBUG_TP_FSM_RESERVED2_SHIFT 14
+#define SQ_DEBUG_TP_FSM_GS_TP_SHIFT 16
+#define SQ_DEBUG_TP_FSM_RESERVED3_SHIFT 18
+#define SQ_DEBUG_TP_FSM_FCR_TP_SHIFT 20
+#define SQ_DEBUG_TP_FSM_RESERVED4_SHIFT 22
+#define SQ_DEBUG_TP_FSM_FCS_TP_SHIFT 24
+#define SQ_DEBUG_TP_FSM_RESERVED5_SHIFT 26
+#define SQ_DEBUG_TP_FSM_ARB_TR_TP_SHIFT 28
+
+#define SQ_DEBUG_TP_FSM_EX_TP_MASK 0x00000007
+#define SQ_DEBUG_TP_FSM_RESERVED0_MASK 0x00000008
+#define SQ_DEBUG_TP_FSM_CF_TP_MASK 0x000000f0
+#define SQ_DEBUG_TP_FSM_IF_TP_MASK 0x00000700
+#define SQ_DEBUG_TP_FSM_RESERVED1_MASK 0x00000800
+#define SQ_DEBUG_TP_FSM_TIS_TP_MASK 0x00003000
+#define SQ_DEBUG_TP_FSM_RESERVED2_MASK 0x0000c000
+#define SQ_DEBUG_TP_FSM_GS_TP_MASK 0x00030000
+#define SQ_DEBUG_TP_FSM_RESERVED3_MASK 0x000c0000
+#define SQ_DEBUG_TP_FSM_FCR_TP_MASK 0x00300000
+#define SQ_DEBUG_TP_FSM_RESERVED4_MASK 0x00c00000
+#define SQ_DEBUG_TP_FSM_FCS_TP_MASK 0x03000000
+#define SQ_DEBUG_TP_FSM_RESERVED5_MASK 0x0c000000
+#define SQ_DEBUG_TP_FSM_ARB_TR_TP_MASK 0x70000000
+
+#define SQ_DEBUG_TP_FSM_MASK \
+ (SQ_DEBUG_TP_FSM_EX_TP_MASK | \
+ SQ_DEBUG_TP_FSM_RESERVED0_MASK | \
+ SQ_DEBUG_TP_FSM_CF_TP_MASK | \
+ SQ_DEBUG_TP_FSM_IF_TP_MASK | \
+ SQ_DEBUG_TP_FSM_RESERVED1_MASK | \
+ SQ_DEBUG_TP_FSM_TIS_TP_MASK | \
+ SQ_DEBUG_TP_FSM_RESERVED2_MASK | \
+ SQ_DEBUG_TP_FSM_GS_TP_MASK | \
+ SQ_DEBUG_TP_FSM_RESERVED3_MASK | \
+ SQ_DEBUG_TP_FSM_FCR_TP_MASK | \
+ SQ_DEBUG_TP_FSM_RESERVED4_MASK | \
+ SQ_DEBUG_TP_FSM_FCS_TP_MASK | \
+ SQ_DEBUG_TP_FSM_RESERVED5_MASK | \
+ SQ_DEBUG_TP_FSM_ARB_TR_TP_MASK)
+
+#define SQ_DEBUG_TP_FSM(ex_tp, reserved0, cf_tp, if_tp, reserved1, tis_tp, reserved2, gs_tp, reserved3, fcr_tp, reserved4, fcs_tp, reserved5, arb_tr_tp) \
+ ((ex_tp << SQ_DEBUG_TP_FSM_EX_TP_SHIFT) | \
+ (reserved0 << SQ_DEBUG_TP_FSM_RESERVED0_SHIFT) | \
+ (cf_tp << SQ_DEBUG_TP_FSM_CF_TP_SHIFT) | \
+ (if_tp << SQ_DEBUG_TP_FSM_IF_TP_SHIFT) | \
+ (reserved1 << SQ_DEBUG_TP_FSM_RESERVED1_SHIFT) | \
+ (tis_tp << SQ_DEBUG_TP_FSM_TIS_TP_SHIFT) | \
+ (reserved2 << SQ_DEBUG_TP_FSM_RESERVED2_SHIFT) | \
+ (gs_tp << SQ_DEBUG_TP_FSM_GS_TP_SHIFT) | \
+ (reserved3 << SQ_DEBUG_TP_FSM_RESERVED3_SHIFT) | \
+ (fcr_tp << SQ_DEBUG_TP_FSM_FCR_TP_SHIFT) | \
+ (reserved4 << SQ_DEBUG_TP_FSM_RESERVED4_SHIFT) | \
+ (fcs_tp << SQ_DEBUG_TP_FSM_FCS_TP_SHIFT) | \
+ (reserved5 << SQ_DEBUG_TP_FSM_RESERVED5_SHIFT) | \
+ (arb_tr_tp << SQ_DEBUG_TP_FSM_ARB_TR_TP_SHIFT))
+
+#define SQ_DEBUG_TP_FSM_GET_EX_TP(sq_debug_tp_fsm) \
+ ((sq_debug_tp_fsm & SQ_DEBUG_TP_FSM_EX_TP_MASK) >> SQ_DEBUG_TP_FSM_EX_TP_SHIFT)
+#define SQ_DEBUG_TP_FSM_GET_RESERVED0(sq_debug_tp_fsm) \
+ ((sq_debug_tp_fsm & SQ_DEBUG_TP_FSM_RESERVED0_MASK) >> SQ_DEBUG_TP_FSM_RESERVED0_SHIFT)
+#define SQ_DEBUG_TP_FSM_GET_CF_TP(sq_debug_tp_fsm) \
+ ((sq_debug_tp_fsm & SQ_DEBUG_TP_FSM_CF_TP_MASK) >> SQ_DEBUG_TP_FSM_CF_TP_SHIFT)
+#define SQ_DEBUG_TP_FSM_GET_IF_TP(sq_debug_tp_fsm) \
+ ((sq_debug_tp_fsm & SQ_DEBUG_TP_FSM_IF_TP_MASK) >> SQ_DEBUG_TP_FSM_IF_TP_SHIFT)
+#define SQ_DEBUG_TP_FSM_GET_RESERVED1(sq_debug_tp_fsm) \
+ ((sq_debug_tp_fsm & SQ_DEBUG_TP_FSM_RESERVED1_MASK) >> SQ_DEBUG_TP_FSM_RESERVED1_SHIFT)
+#define SQ_DEBUG_TP_FSM_GET_TIS_TP(sq_debug_tp_fsm) \
+ ((sq_debug_tp_fsm & SQ_DEBUG_TP_FSM_TIS_TP_MASK) >> SQ_DEBUG_TP_FSM_TIS_TP_SHIFT)
+#define SQ_DEBUG_TP_FSM_GET_RESERVED2(sq_debug_tp_fsm) \
+ ((sq_debug_tp_fsm & SQ_DEBUG_TP_FSM_RESERVED2_MASK) >> SQ_DEBUG_TP_FSM_RESERVED2_SHIFT)
+#define SQ_DEBUG_TP_FSM_GET_GS_TP(sq_debug_tp_fsm) \
+ ((sq_debug_tp_fsm & SQ_DEBUG_TP_FSM_GS_TP_MASK) >> SQ_DEBUG_TP_FSM_GS_TP_SHIFT)
+#define SQ_DEBUG_TP_FSM_GET_RESERVED3(sq_debug_tp_fsm) \
+ ((sq_debug_tp_fsm & SQ_DEBUG_TP_FSM_RESERVED3_MASK) >> SQ_DEBUG_TP_FSM_RESERVED3_SHIFT)
+#define SQ_DEBUG_TP_FSM_GET_FCR_TP(sq_debug_tp_fsm) \
+ ((sq_debug_tp_fsm & SQ_DEBUG_TP_FSM_FCR_TP_MASK) >> SQ_DEBUG_TP_FSM_FCR_TP_SHIFT)
+#define SQ_DEBUG_TP_FSM_GET_RESERVED4(sq_debug_tp_fsm) \
+ ((sq_debug_tp_fsm & SQ_DEBUG_TP_FSM_RESERVED4_MASK) >> SQ_DEBUG_TP_FSM_RESERVED4_SHIFT)
+#define SQ_DEBUG_TP_FSM_GET_FCS_TP(sq_debug_tp_fsm) \
+ ((sq_debug_tp_fsm & SQ_DEBUG_TP_FSM_FCS_TP_MASK) >> SQ_DEBUG_TP_FSM_FCS_TP_SHIFT)
+#define SQ_DEBUG_TP_FSM_GET_RESERVED5(sq_debug_tp_fsm) \
+ ((sq_debug_tp_fsm & SQ_DEBUG_TP_FSM_RESERVED5_MASK) >> SQ_DEBUG_TP_FSM_RESERVED5_SHIFT)
+#define SQ_DEBUG_TP_FSM_GET_ARB_TR_TP(sq_debug_tp_fsm) \
+ ((sq_debug_tp_fsm & SQ_DEBUG_TP_FSM_ARB_TR_TP_MASK) >> SQ_DEBUG_TP_FSM_ARB_TR_TP_SHIFT)
+
+#define SQ_DEBUG_TP_FSM_SET_EX_TP(sq_debug_tp_fsm_reg, ex_tp) \
+ sq_debug_tp_fsm_reg = (sq_debug_tp_fsm_reg & ~SQ_DEBUG_TP_FSM_EX_TP_MASK) | (ex_tp << SQ_DEBUG_TP_FSM_EX_TP_SHIFT)
+#define SQ_DEBUG_TP_FSM_SET_RESERVED0(sq_debug_tp_fsm_reg, reserved0) \
+ sq_debug_tp_fsm_reg = (sq_debug_tp_fsm_reg & ~SQ_DEBUG_TP_FSM_RESERVED0_MASK) | (reserved0 << SQ_DEBUG_TP_FSM_RESERVED0_SHIFT)
+#define SQ_DEBUG_TP_FSM_SET_CF_TP(sq_debug_tp_fsm_reg, cf_tp) \
+ sq_debug_tp_fsm_reg = (sq_debug_tp_fsm_reg & ~SQ_DEBUG_TP_FSM_CF_TP_MASK) | (cf_tp << SQ_DEBUG_TP_FSM_CF_TP_SHIFT)
+#define SQ_DEBUG_TP_FSM_SET_IF_TP(sq_debug_tp_fsm_reg, if_tp) \
+ sq_debug_tp_fsm_reg = (sq_debug_tp_fsm_reg & ~SQ_DEBUG_TP_FSM_IF_TP_MASK) | (if_tp << SQ_DEBUG_TP_FSM_IF_TP_SHIFT)
+#define SQ_DEBUG_TP_FSM_SET_RESERVED1(sq_debug_tp_fsm_reg, reserved1) \
+ sq_debug_tp_fsm_reg = (sq_debug_tp_fsm_reg & ~SQ_DEBUG_TP_FSM_RESERVED1_MASK) | (reserved1 << SQ_DEBUG_TP_FSM_RESERVED1_SHIFT)
+#define SQ_DEBUG_TP_FSM_SET_TIS_TP(sq_debug_tp_fsm_reg, tis_tp) \
+ sq_debug_tp_fsm_reg = (sq_debug_tp_fsm_reg & ~SQ_DEBUG_TP_FSM_TIS_TP_MASK) | (tis_tp << SQ_DEBUG_TP_FSM_TIS_TP_SHIFT)
+#define SQ_DEBUG_TP_FSM_SET_RESERVED2(sq_debug_tp_fsm_reg, reserved2) \
+ sq_debug_tp_fsm_reg = (sq_debug_tp_fsm_reg & ~SQ_DEBUG_TP_FSM_RESERVED2_MASK) | (reserved2 << SQ_DEBUG_TP_FSM_RESERVED2_SHIFT)
+#define SQ_DEBUG_TP_FSM_SET_GS_TP(sq_debug_tp_fsm_reg, gs_tp) \
+ sq_debug_tp_fsm_reg = (sq_debug_tp_fsm_reg & ~SQ_DEBUG_TP_FSM_GS_TP_MASK) | (gs_tp << SQ_DEBUG_TP_FSM_GS_TP_SHIFT)
+#define SQ_DEBUG_TP_FSM_SET_RESERVED3(sq_debug_tp_fsm_reg, reserved3) \
+ sq_debug_tp_fsm_reg = (sq_debug_tp_fsm_reg & ~SQ_DEBUG_TP_FSM_RESERVED3_MASK) | (reserved3 << SQ_DEBUG_TP_FSM_RESERVED3_SHIFT)
+#define SQ_DEBUG_TP_FSM_SET_FCR_TP(sq_debug_tp_fsm_reg, fcr_tp) \
+ sq_debug_tp_fsm_reg = (sq_debug_tp_fsm_reg & ~SQ_DEBUG_TP_FSM_FCR_TP_MASK) | (fcr_tp << SQ_DEBUG_TP_FSM_FCR_TP_SHIFT)
+#define SQ_DEBUG_TP_FSM_SET_RESERVED4(sq_debug_tp_fsm_reg, reserved4) \
+ sq_debug_tp_fsm_reg = (sq_debug_tp_fsm_reg & ~SQ_DEBUG_TP_FSM_RESERVED4_MASK) | (reserved4 << SQ_DEBUG_TP_FSM_RESERVED4_SHIFT)
+#define SQ_DEBUG_TP_FSM_SET_FCS_TP(sq_debug_tp_fsm_reg, fcs_tp) \
+ sq_debug_tp_fsm_reg = (sq_debug_tp_fsm_reg & ~SQ_DEBUG_TP_FSM_FCS_TP_MASK) | (fcs_tp << SQ_DEBUG_TP_FSM_FCS_TP_SHIFT)
+#define SQ_DEBUG_TP_FSM_SET_RESERVED5(sq_debug_tp_fsm_reg, reserved5) \
+ sq_debug_tp_fsm_reg = (sq_debug_tp_fsm_reg & ~SQ_DEBUG_TP_FSM_RESERVED5_MASK) | (reserved5 << SQ_DEBUG_TP_FSM_RESERVED5_SHIFT)
+#define SQ_DEBUG_TP_FSM_SET_ARB_TR_TP(sq_debug_tp_fsm_reg, arb_tr_tp) \
+ sq_debug_tp_fsm_reg = (sq_debug_tp_fsm_reg & ~SQ_DEBUG_TP_FSM_ARB_TR_TP_MASK) | (arb_tr_tp << SQ_DEBUG_TP_FSM_ARB_TR_TP_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_tp_fsm_t {
+ unsigned int ex_tp : SQ_DEBUG_TP_FSM_EX_TP_SIZE;
+ unsigned int reserved0 : SQ_DEBUG_TP_FSM_RESERVED0_SIZE;
+ unsigned int cf_tp : SQ_DEBUG_TP_FSM_CF_TP_SIZE;
+ unsigned int if_tp : SQ_DEBUG_TP_FSM_IF_TP_SIZE;
+ unsigned int reserved1 : SQ_DEBUG_TP_FSM_RESERVED1_SIZE;
+ unsigned int tis_tp : SQ_DEBUG_TP_FSM_TIS_TP_SIZE;
+ unsigned int reserved2 : SQ_DEBUG_TP_FSM_RESERVED2_SIZE;
+ unsigned int gs_tp : SQ_DEBUG_TP_FSM_GS_TP_SIZE;
+ unsigned int reserved3 : SQ_DEBUG_TP_FSM_RESERVED3_SIZE;
+ unsigned int fcr_tp : SQ_DEBUG_TP_FSM_FCR_TP_SIZE;
+ unsigned int reserved4 : SQ_DEBUG_TP_FSM_RESERVED4_SIZE;
+ unsigned int fcs_tp : SQ_DEBUG_TP_FSM_FCS_TP_SIZE;
+ unsigned int reserved5 : SQ_DEBUG_TP_FSM_RESERVED5_SIZE;
+ unsigned int arb_tr_tp : SQ_DEBUG_TP_FSM_ARB_TR_TP_SIZE;
+ unsigned int : 1;
+ } sq_debug_tp_fsm_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_tp_fsm_t {
+ unsigned int : 1;
+ unsigned int arb_tr_tp : SQ_DEBUG_TP_FSM_ARB_TR_TP_SIZE;
+ unsigned int reserved5 : SQ_DEBUG_TP_FSM_RESERVED5_SIZE;
+ unsigned int fcs_tp : SQ_DEBUG_TP_FSM_FCS_TP_SIZE;
+ unsigned int reserved4 : SQ_DEBUG_TP_FSM_RESERVED4_SIZE;
+ unsigned int fcr_tp : SQ_DEBUG_TP_FSM_FCR_TP_SIZE;
+ unsigned int reserved3 : SQ_DEBUG_TP_FSM_RESERVED3_SIZE;
+ unsigned int gs_tp : SQ_DEBUG_TP_FSM_GS_TP_SIZE;
+ unsigned int reserved2 : SQ_DEBUG_TP_FSM_RESERVED2_SIZE;
+ unsigned int tis_tp : SQ_DEBUG_TP_FSM_TIS_TP_SIZE;
+ unsigned int reserved1 : SQ_DEBUG_TP_FSM_RESERVED1_SIZE;
+ unsigned int if_tp : SQ_DEBUG_TP_FSM_IF_TP_SIZE;
+ unsigned int cf_tp : SQ_DEBUG_TP_FSM_CF_TP_SIZE;
+ unsigned int reserved0 : SQ_DEBUG_TP_FSM_RESERVED0_SIZE;
+ unsigned int ex_tp : SQ_DEBUG_TP_FSM_EX_TP_SIZE;
+ } sq_debug_tp_fsm_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_tp_fsm_t f;
+} sq_debug_tp_fsm_u;
+
+
+/*
+ * SQ_DEBUG_FSM_ALU_0 struct
+ */
+
+#define SQ_DEBUG_FSM_ALU_0_EX_ALU_0_SIZE 3
+#define SQ_DEBUG_FSM_ALU_0_RESERVED0_SIZE 1
+#define SQ_DEBUG_FSM_ALU_0_CF_ALU_0_SIZE 4
+#define SQ_DEBUG_FSM_ALU_0_IF_ALU_0_SIZE 3
+#define SQ_DEBUG_FSM_ALU_0_RESERVED1_SIZE 1
+#define SQ_DEBUG_FSM_ALU_0_DU1_ALU_0_SIZE 3
+#define SQ_DEBUG_FSM_ALU_0_RESERVED2_SIZE 1
+#define SQ_DEBUG_FSM_ALU_0_DU0_ALU_0_SIZE 3
+#define SQ_DEBUG_FSM_ALU_0_RESERVED3_SIZE 1
+#define SQ_DEBUG_FSM_ALU_0_AIS_ALU_0_SIZE 3
+#define SQ_DEBUG_FSM_ALU_0_RESERVED4_SIZE 1
+#define SQ_DEBUG_FSM_ALU_0_ACS_ALU_0_SIZE 3
+#define SQ_DEBUG_FSM_ALU_0_RESERVED5_SIZE 1
+#define SQ_DEBUG_FSM_ALU_0_ARB_TR_ALU_SIZE 3
+
+#define SQ_DEBUG_FSM_ALU_0_EX_ALU_0_SHIFT 0
+#define SQ_DEBUG_FSM_ALU_0_RESERVED0_SHIFT 3
+#define SQ_DEBUG_FSM_ALU_0_CF_ALU_0_SHIFT 4
+#define SQ_DEBUG_FSM_ALU_0_IF_ALU_0_SHIFT 8
+#define SQ_DEBUG_FSM_ALU_0_RESERVED1_SHIFT 11
+#define SQ_DEBUG_FSM_ALU_0_DU1_ALU_0_SHIFT 12
+#define SQ_DEBUG_FSM_ALU_0_RESERVED2_SHIFT 15
+#define SQ_DEBUG_FSM_ALU_0_DU0_ALU_0_SHIFT 16
+#define SQ_DEBUG_FSM_ALU_0_RESERVED3_SHIFT 19
+#define SQ_DEBUG_FSM_ALU_0_AIS_ALU_0_SHIFT 20
+#define SQ_DEBUG_FSM_ALU_0_RESERVED4_SHIFT 23
+#define SQ_DEBUG_FSM_ALU_0_ACS_ALU_0_SHIFT 24
+#define SQ_DEBUG_FSM_ALU_0_RESERVED5_SHIFT 27
+#define SQ_DEBUG_FSM_ALU_0_ARB_TR_ALU_SHIFT 28
+
+#define SQ_DEBUG_FSM_ALU_0_EX_ALU_0_MASK 0x00000007
+#define SQ_DEBUG_FSM_ALU_0_RESERVED0_MASK 0x00000008
+#define SQ_DEBUG_FSM_ALU_0_CF_ALU_0_MASK 0x000000f0
+#define SQ_DEBUG_FSM_ALU_0_IF_ALU_0_MASK 0x00000700
+#define SQ_DEBUG_FSM_ALU_0_RESERVED1_MASK 0x00000800
+#define SQ_DEBUG_FSM_ALU_0_DU1_ALU_0_MASK 0x00007000
+#define SQ_DEBUG_FSM_ALU_0_RESERVED2_MASK 0x00008000
+#define SQ_DEBUG_FSM_ALU_0_DU0_ALU_0_MASK 0x00070000
+#define SQ_DEBUG_FSM_ALU_0_RESERVED3_MASK 0x00080000
+#define SQ_DEBUG_FSM_ALU_0_AIS_ALU_0_MASK 0x00700000
+#define SQ_DEBUG_FSM_ALU_0_RESERVED4_MASK 0x00800000
+#define SQ_DEBUG_FSM_ALU_0_ACS_ALU_0_MASK 0x07000000
+#define SQ_DEBUG_FSM_ALU_0_RESERVED5_MASK 0x08000000
+#define SQ_DEBUG_FSM_ALU_0_ARB_TR_ALU_MASK 0x70000000
+
+#define SQ_DEBUG_FSM_ALU_0_MASK \
+ (SQ_DEBUG_FSM_ALU_0_EX_ALU_0_MASK | \
+ SQ_DEBUG_FSM_ALU_0_RESERVED0_MASK | \
+ SQ_DEBUG_FSM_ALU_0_CF_ALU_0_MASK | \
+ SQ_DEBUG_FSM_ALU_0_IF_ALU_0_MASK | \
+ SQ_DEBUG_FSM_ALU_0_RESERVED1_MASK | \
+ SQ_DEBUG_FSM_ALU_0_DU1_ALU_0_MASK | \
+ SQ_DEBUG_FSM_ALU_0_RESERVED2_MASK | \
+ SQ_DEBUG_FSM_ALU_0_DU0_ALU_0_MASK | \
+ SQ_DEBUG_FSM_ALU_0_RESERVED3_MASK | \
+ SQ_DEBUG_FSM_ALU_0_AIS_ALU_0_MASK | \
+ SQ_DEBUG_FSM_ALU_0_RESERVED4_MASK | \
+ SQ_DEBUG_FSM_ALU_0_ACS_ALU_0_MASK | \
+ SQ_DEBUG_FSM_ALU_0_RESERVED5_MASK | \
+ SQ_DEBUG_FSM_ALU_0_ARB_TR_ALU_MASK)
+
+#define SQ_DEBUG_FSM_ALU_0(ex_alu_0, reserved0, cf_alu_0, if_alu_0, reserved1, du1_alu_0, reserved2, du0_alu_0, reserved3, ais_alu_0, reserved4, acs_alu_0, reserved5, arb_tr_alu) \
+ ((ex_alu_0 << SQ_DEBUG_FSM_ALU_0_EX_ALU_0_SHIFT) | \
+ (reserved0 << SQ_DEBUG_FSM_ALU_0_RESERVED0_SHIFT) | \
+ (cf_alu_0 << SQ_DEBUG_FSM_ALU_0_CF_ALU_0_SHIFT) | \
+ (if_alu_0 << SQ_DEBUG_FSM_ALU_0_IF_ALU_0_SHIFT) | \
+ (reserved1 << SQ_DEBUG_FSM_ALU_0_RESERVED1_SHIFT) | \
+ (du1_alu_0 << SQ_DEBUG_FSM_ALU_0_DU1_ALU_0_SHIFT) | \
+ (reserved2 << SQ_DEBUG_FSM_ALU_0_RESERVED2_SHIFT) | \
+ (du0_alu_0 << SQ_DEBUG_FSM_ALU_0_DU0_ALU_0_SHIFT) | \
+ (reserved3 << SQ_DEBUG_FSM_ALU_0_RESERVED3_SHIFT) | \
+ (ais_alu_0 << SQ_DEBUG_FSM_ALU_0_AIS_ALU_0_SHIFT) | \
+ (reserved4 << SQ_DEBUG_FSM_ALU_0_RESERVED4_SHIFT) | \
+ (acs_alu_0 << SQ_DEBUG_FSM_ALU_0_ACS_ALU_0_SHIFT) | \
+ (reserved5 << SQ_DEBUG_FSM_ALU_0_RESERVED5_SHIFT) | \
+ (arb_tr_alu << SQ_DEBUG_FSM_ALU_0_ARB_TR_ALU_SHIFT))
+
+#define SQ_DEBUG_FSM_ALU_0_GET_EX_ALU_0(sq_debug_fsm_alu_0) \
+ ((sq_debug_fsm_alu_0 & SQ_DEBUG_FSM_ALU_0_EX_ALU_0_MASK) >> SQ_DEBUG_FSM_ALU_0_EX_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_GET_RESERVED0(sq_debug_fsm_alu_0) \
+ ((sq_debug_fsm_alu_0 & SQ_DEBUG_FSM_ALU_0_RESERVED0_MASK) >> SQ_DEBUG_FSM_ALU_0_RESERVED0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_GET_CF_ALU_0(sq_debug_fsm_alu_0) \
+ ((sq_debug_fsm_alu_0 & SQ_DEBUG_FSM_ALU_0_CF_ALU_0_MASK) >> SQ_DEBUG_FSM_ALU_0_CF_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_GET_IF_ALU_0(sq_debug_fsm_alu_0) \
+ ((sq_debug_fsm_alu_0 & SQ_DEBUG_FSM_ALU_0_IF_ALU_0_MASK) >> SQ_DEBUG_FSM_ALU_0_IF_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_GET_RESERVED1(sq_debug_fsm_alu_0) \
+ ((sq_debug_fsm_alu_0 & SQ_DEBUG_FSM_ALU_0_RESERVED1_MASK) >> SQ_DEBUG_FSM_ALU_0_RESERVED1_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_GET_DU1_ALU_0(sq_debug_fsm_alu_0) \
+ ((sq_debug_fsm_alu_0 & SQ_DEBUG_FSM_ALU_0_DU1_ALU_0_MASK) >> SQ_DEBUG_FSM_ALU_0_DU1_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_GET_RESERVED2(sq_debug_fsm_alu_0) \
+ ((sq_debug_fsm_alu_0 & SQ_DEBUG_FSM_ALU_0_RESERVED2_MASK) >> SQ_DEBUG_FSM_ALU_0_RESERVED2_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_GET_DU0_ALU_0(sq_debug_fsm_alu_0) \
+ ((sq_debug_fsm_alu_0 & SQ_DEBUG_FSM_ALU_0_DU0_ALU_0_MASK) >> SQ_DEBUG_FSM_ALU_0_DU0_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_GET_RESERVED3(sq_debug_fsm_alu_0) \
+ ((sq_debug_fsm_alu_0 & SQ_DEBUG_FSM_ALU_0_RESERVED3_MASK) >> SQ_DEBUG_FSM_ALU_0_RESERVED3_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_GET_AIS_ALU_0(sq_debug_fsm_alu_0) \
+ ((sq_debug_fsm_alu_0 & SQ_DEBUG_FSM_ALU_0_AIS_ALU_0_MASK) >> SQ_DEBUG_FSM_ALU_0_AIS_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_GET_RESERVED4(sq_debug_fsm_alu_0) \
+ ((sq_debug_fsm_alu_0 & SQ_DEBUG_FSM_ALU_0_RESERVED4_MASK) >> SQ_DEBUG_FSM_ALU_0_RESERVED4_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_GET_ACS_ALU_0(sq_debug_fsm_alu_0) \
+ ((sq_debug_fsm_alu_0 & SQ_DEBUG_FSM_ALU_0_ACS_ALU_0_MASK) >> SQ_DEBUG_FSM_ALU_0_ACS_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_GET_RESERVED5(sq_debug_fsm_alu_0) \
+ ((sq_debug_fsm_alu_0 & SQ_DEBUG_FSM_ALU_0_RESERVED5_MASK) >> SQ_DEBUG_FSM_ALU_0_RESERVED5_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_GET_ARB_TR_ALU(sq_debug_fsm_alu_0) \
+ ((sq_debug_fsm_alu_0 & SQ_DEBUG_FSM_ALU_0_ARB_TR_ALU_MASK) >> SQ_DEBUG_FSM_ALU_0_ARB_TR_ALU_SHIFT)
+
+#define SQ_DEBUG_FSM_ALU_0_SET_EX_ALU_0(sq_debug_fsm_alu_0_reg, ex_alu_0) \
+ sq_debug_fsm_alu_0_reg = (sq_debug_fsm_alu_0_reg & ~SQ_DEBUG_FSM_ALU_0_EX_ALU_0_MASK) | (ex_alu_0 << SQ_DEBUG_FSM_ALU_0_EX_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_SET_RESERVED0(sq_debug_fsm_alu_0_reg, reserved0) \
+ sq_debug_fsm_alu_0_reg = (sq_debug_fsm_alu_0_reg & ~SQ_DEBUG_FSM_ALU_0_RESERVED0_MASK) | (reserved0 << SQ_DEBUG_FSM_ALU_0_RESERVED0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_SET_CF_ALU_0(sq_debug_fsm_alu_0_reg, cf_alu_0) \
+ sq_debug_fsm_alu_0_reg = (sq_debug_fsm_alu_0_reg & ~SQ_DEBUG_FSM_ALU_0_CF_ALU_0_MASK) | (cf_alu_0 << SQ_DEBUG_FSM_ALU_0_CF_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_SET_IF_ALU_0(sq_debug_fsm_alu_0_reg, if_alu_0) \
+ sq_debug_fsm_alu_0_reg = (sq_debug_fsm_alu_0_reg & ~SQ_DEBUG_FSM_ALU_0_IF_ALU_0_MASK) | (if_alu_0 << SQ_DEBUG_FSM_ALU_0_IF_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_SET_RESERVED1(sq_debug_fsm_alu_0_reg, reserved1) \
+ sq_debug_fsm_alu_0_reg = (sq_debug_fsm_alu_0_reg & ~SQ_DEBUG_FSM_ALU_0_RESERVED1_MASK) | (reserved1 << SQ_DEBUG_FSM_ALU_0_RESERVED1_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_SET_DU1_ALU_0(sq_debug_fsm_alu_0_reg, du1_alu_0) \
+ sq_debug_fsm_alu_0_reg = (sq_debug_fsm_alu_0_reg & ~SQ_DEBUG_FSM_ALU_0_DU1_ALU_0_MASK) | (du1_alu_0 << SQ_DEBUG_FSM_ALU_0_DU1_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_SET_RESERVED2(sq_debug_fsm_alu_0_reg, reserved2) \
+ sq_debug_fsm_alu_0_reg = (sq_debug_fsm_alu_0_reg & ~SQ_DEBUG_FSM_ALU_0_RESERVED2_MASK) | (reserved2 << SQ_DEBUG_FSM_ALU_0_RESERVED2_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_SET_DU0_ALU_0(sq_debug_fsm_alu_0_reg, du0_alu_0) \
+ sq_debug_fsm_alu_0_reg = (sq_debug_fsm_alu_0_reg & ~SQ_DEBUG_FSM_ALU_0_DU0_ALU_0_MASK) | (du0_alu_0 << SQ_DEBUG_FSM_ALU_0_DU0_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_SET_RESERVED3(sq_debug_fsm_alu_0_reg, reserved3) \
+ sq_debug_fsm_alu_0_reg = (sq_debug_fsm_alu_0_reg & ~SQ_DEBUG_FSM_ALU_0_RESERVED3_MASK) | (reserved3 << SQ_DEBUG_FSM_ALU_0_RESERVED3_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_SET_AIS_ALU_0(sq_debug_fsm_alu_0_reg, ais_alu_0) \
+ sq_debug_fsm_alu_0_reg = (sq_debug_fsm_alu_0_reg & ~SQ_DEBUG_FSM_ALU_0_AIS_ALU_0_MASK) | (ais_alu_0 << SQ_DEBUG_FSM_ALU_0_AIS_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_SET_RESERVED4(sq_debug_fsm_alu_0_reg, reserved4) \
+ sq_debug_fsm_alu_0_reg = (sq_debug_fsm_alu_0_reg & ~SQ_DEBUG_FSM_ALU_0_RESERVED4_MASK) | (reserved4 << SQ_DEBUG_FSM_ALU_0_RESERVED4_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_SET_ACS_ALU_0(sq_debug_fsm_alu_0_reg, acs_alu_0) \
+ sq_debug_fsm_alu_0_reg = (sq_debug_fsm_alu_0_reg & ~SQ_DEBUG_FSM_ALU_0_ACS_ALU_0_MASK) | (acs_alu_0 << SQ_DEBUG_FSM_ALU_0_ACS_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_SET_RESERVED5(sq_debug_fsm_alu_0_reg, reserved5) \
+ sq_debug_fsm_alu_0_reg = (sq_debug_fsm_alu_0_reg & ~SQ_DEBUG_FSM_ALU_0_RESERVED5_MASK) | (reserved5 << SQ_DEBUG_FSM_ALU_0_RESERVED5_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_SET_ARB_TR_ALU(sq_debug_fsm_alu_0_reg, arb_tr_alu) \
+ sq_debug_fsm_alu_0_reg = (sq_debug_fsm_alu_0_reg & ~SQ_DEBUG_FSM_ALU_0_ARB_TR_ALU_MASK) | (arb_tr_alu << SQ_DEBUG_FSM_ALU_0_ARB_TR_ALU_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_fsm_alu_0_t {
+ unsigned int ex_alu_0 : SQ_DEBUG_FSM_ALU_0_EX_ALU_0_SIZE;
+ unsigned int reserved0 : SQ_DEBUG_FSM_ALU_0_RESERVED0_SIZE;
+ unsigned int cf_alu_0 : SQ_DEBUG_FSM_ALU_0_CF_ALU_0_SIZE;
+ unsigned int if_alu_0 : SQ_DEBUG_FSM_ALU_0_IF_ALU_0_SIZE;
+ unsigned int reserved1 : SQ_DEBUG_FSM_ALU_0_RESERVED1_SIZE;
+ unsigned int du1_alu_0 : SQ_DEBUG_FSM_ALU_0_DU1_ALU_0_SIZE;
+ unsigned int reserved2 : SQ_DEBUG_FSM_ALU_0_RESERVED2_SIZE;
+ unsigned int du0_alu_0 : SQ_DEBUG_FSM_ALU_0_DU0_ALU_0_SIZE;
+ unsigned int reserved3 : SQ_DEBUG_FSM_ALU_0_RESERVED3_SIZE;
+ unsigned int ais_alu_0 : SQ_DEBUG_FSM_ALU_0_AIS_ALU_0_SIZE;
+ unsigned int reserved4 : SQ_DEBUG_FSM_ALU_0_RESERVED4_SIZE;
+ unsigned int acs_alu_0 : SQ_DEBUG_FSM_ALU_0_ACS_ALU_0_SIZE;
+ unsigned int reserved5 : SQ_DEBUG_FSM_ALU_0_RESERVED5_SIZE;
+ unsigned int arb_tr_alu : SQ_DEBUG_FSM_ALU_0_ARB_TR_ALU_SIZE;
+ unsigned int : 1;
+ } sq_debug_fsm_alu_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_fsm_alu_0_t {
+ unsigned int : 1;
+ unsigned int arb_tr_alu : SQ_DEBUG_FSM_ALU_0_ARB_TR_ALU_SIZE;
+ unsigned int reserved5 : SQ_DEBUG_FSM_ALU_0_RESERVED5_SIZE;
+ unsigned int acs_alu_0 : SQ_DEBUG_FSM_ALU_0_ACS_ALU_0_SIZE;
+ unsigned int reserved4 : SQ_DEBUG_FSM_ALU_0_RESERVED4_SIZE;
+ unsigned int ais_alu_0 : SQ_DEBUG_FSM_ALU_0_AIS_ALU_0_SIZE;
+ unsigned int reserved3 : SQ_DEBUG_FSM_ALU_0_RESERVED3_SIZE;
+ unsigned int du0_alu_0 : SQ_DEBUG_FSM_ALU_0_DU0_ALU_0_SIZE;
+ unsigned int reserved2 : SQ_DEBUG_FSM_ALU_0_RESERVED2_SIZE;
+ unsigned int du1_alu_0 : SQ_DEBUG_FSM_ALU_0_DU1_ALU_0_SIZE;
+ unsigned int reserved1 : SQ_DEBUG_FSM_ALU_0_RESERVED1_SIZE;
+ unsigned int if_alu_0 : SQ_DEBUG_FSM_ALU_0_IF_ALU_0_SIZE;
+ unsigned int cf_alu_0 : SQ_DEBUG_FSM_ALU_0_CF_ALU_0_SIZE;
+ unsigned int reserved0 : SQ_DEBUG_FSM_ALU_0_RESERVED0_SIZE;
+ unsigned int ex_alu_0 : SQ_DEBUG_FSM_ALU_0_EX_ALU_0_SIZE;
+ } sq_debug_fsm_alu_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_fsm_alu_0_t f;
+} sq_debug_fsm_alu_0_u;
+
+
+/*
+ * SQ_DEBUG_FSM_ALU_1 struct
+ */
+
+#define SQ_DEBUG_FSM_ALU_1_EX_ALU_0_SIZE 3
+#define SQ_DEBUG_FSM_ALU_1_RESERVED0_SIZE 1
+#define SQ_DEBUG_FSM_ALU_1_CF_ALU_0_SIZE 4
+#define SQ_DEBUG_FSM_ALU_1_IF_ALU_0_SIZE 3
+#define SQ_DEBUG_FSM_ALU_1_RESERVED1_SIZE 1
+#define SQ_DEBUG_FSM_ALU_1_DU1_ALU_0_SIZE 3
+#define SQ_DEBUG_FSM_ALU_1_RESERVED2_SIZE 1
+#define SQ_DEBUG_FSM_ALU_1_DU0_ALU_0_SIZE 3
+#define SQ_DEBUG_FSM_ALU_1_RESERVED3_SIZE 1
+#define SQ_DEBUG_FSM_ALU_1_AIS_ALU_0_SIZE 3
+#define SQ_DEBUG_FSM_ALU_1_RESERVED4_SIZE 1
+#define SQ_DEBUG_FSM_ALU_1_ACS_ALU_0_SIZE 3
+#define SQ_DEBUG_FSM_ALU_1_RESERVED5_SIZE 1
+#define SQ_DEBUG_FSM_ALU_1_ARB_TR_ALU_SIZE 3
+
+#define SQ_DEBUG_FSM_ALU_1_EX_ALU_0_SHIFT 0
+#define SQ_DEBUG_FSM_ALU_1_RESERVED0_SHIFT 3
+#define SQ_DEBUG_FSM_ALU_1_CF_ALU_0_SHIFT 4
+#define SQ_DEBUG_FSM_ALU_1_IF_ALU_0_SHIFT 8
+#define SQ_DEBUG_FSM_ALU_1_RESERVED1_SHIFT 11
+#define SQ_DEBUG_FSM_ALU_1_DU1_ALU_0_SHIFT 12
+#define SQ_DEBUG_FSM_ALU_1_RESERVED2_SHIFT 15
+#define SQ_DEBUG_FSM_ALU_1_DU0_ALU_0_SHIFT 16
+#define SQ_DEBUG_FSM_ALU_1_RESERVED3_SHIFT 19
+#define SQ_DEBUG_FSM_ALU_1_AIS_ALU_0_SHIFT 20
+#define SQ_DEBUG_FSM_ALU_1_RESERVED4_SHIFT 23
+#define SQ_DEBUG_FSM_ALU_1_ACS_ALU_0_SHIFT 24
+#define SQ_DEBUG_FSM_ALU_1_RESERVED5_SHIFT 27
+#define SQ_DEBUG_FSM_ALU_1_ARB_TR_ALU_SHIFT 28
+
+#define SQ_DEBUG_FSM_ALU_1_EX_ALU_0_MASK 0x00000007
+#define SQ_DEBUG_FSM_ALU_1_RESERVED0_MASK 0x00000008
+#define SQ_DEBUG_FSM_ALU_1_CF_ALU_0_MASK 0x000000f0
+#define SQ_DEBUG_FSM_ALU_1_IF_ALU_0_MASK 0x00000700
+#define SQ_DEBUG_FSM_ALU_1_RESERVED1_MASK 0x00000800
+#define SQ_DEBUG_FSM_ALU_1_DU1_ALU_0_MASK 0x00007000
+#define SQ_DEBUG_FSM_ALU_1_RESERVED2_MASK 0x00008000
+#define SQ_DEBUG_FSM_ALU_1_DU0_ALU_0_MASK 0x00070000
+#define SQ_DEBUG_FSM_ALU_1_RESERVED3_MASK 0x00080000
+#define SQ_DEBUG_FSM_ALU_1_AIS_ALU_0_MASK 0x00700000
+#define SQ_DEBUG_FSM_ALU_1_RESERVED4_MASK 0x00800000
+#define SQ_DEBUG_FSM_ALU_1_ACS_ALU_0_MASK 0x07000000
+#define SQ_DEBUG_FSM_ALU_1_RESERVED5_MASK 0x08000000
+#define SQ_DEBUG_FSM_ALU_1_ARB_TR_ALU_MASK 0x70000000
+
+#define SQ_DEBUG_FSM_ALU_1_MASK \
+ (SQ_DEBUG_FSM_ALU_1_EX_ALU_0_MASK | \
+ SQ_DEBUG_FSM_ALU_1_RESERVED0_MASK | \
+ SQ_DEBUG_FSM_ALU_1_CF_ALU_0_MASK | \
+ SQ_DEBUG_FSM_ALU_1_IF_ALU_0_MASK | \
+ SQ_DEBUG_FSM_ALU_1_RESERVED1_MASK | \
+ SQ_DEBUG_FSM_ALU_1_DU1_ALU_0_MASK | \
+ SQ_DEBUG_FSM_ALU_1_RESERVED2_MASK | \
+ SQ_DEBUG_FSM_ALU_1_DU0_ALU_0_MASK | \
+ SQ_DEBUG_FSM_ALU_1_RESERVED3_MASK | \
+ SQ_DEBUG_FSM_ALU_1_AIS_ALU_0_MASK | \
+ SQ_DEBUG_FSM_ALU_1_RESERVED4_MASK | \
+ SQ_DEBUG_FSM_ALU_1_ACS_ALU_0_MASK | \
+ SQ_DEBUG_FSM_ALU_1_RESERVED5_MASK | \
+ SQ_DEBUG_FSM_ALU_1_ARB_TR_ALU_MASK)
+
+#define SQ_DEBUG_FSM_ALU_1(ex_alu_0, reserved0, cf_alu_0, if_alu_0, reserved1, du1_alu_0, reserved2, du0_alu_0, reserved3, ais_alu_0, reserved4, acs_alu_0, reserved5, arb_tr_alu) \
+ ((ex_alu_0 << SQ_DEBUG_FSM_ALU_1_EX_ALU_0_SHIFT) | \
+ (reserved0 << SQ_DEBUG_FSM_ALU_1_RESERVED0_SHIFT) | \
+ (cf_alu_0 << SQ_DEBUG_FSM_ALU_1_CF_ALU_0_SHIFT) | \
+ (if_alu_0 << SQ_DEBUG_FSM_ALU_1_IF_ALU_0_SHIFT) | \
+ (reserved1 << SQ_DEBUG_FSM_ALU_1_RESERVED1_SHIFT) | \
+ (du1_alu_0 << SQ_DEBUG_FSM_ALU_1_DU1_ALU_0_SHIFT) | \
+ (reserved2 << SQ_DEBUG_FSM_ALU_1_RESERVED2_SHIFT) | \
+ (du0_alu_0 << SQ_DEBUG_FSM_ALU_1_DU0_ALU_0_SHIFT) | \
+ (reserved3 << SQ_DEBUG_FSM_ALU_1_RESERVED3_SHIFT) | \
+ (ais_alu_0 << SQ_DEBUG_FSM_ALU_1_AIS_ALU_0_SHIFT) | \
+ (reserved4 << SQ_DEBUG_FSM_ALU_1_RESERVED4_SHIFT) | \
+ (acs_alu_0 << SQ_DEBUG_FSM_ALU_1_ACS_ALU_0_SHIFT) | \
+ (reserved5 << SQ_DEBUG_FSM_ALU_1_RESERVED5_SHIFT) | \
+ (arb_tr_alu << SQ_DEBUG_FSM_ALU_1_ARB_TR_ALU_SHIFT))
+
+#define SQ_DEBUG_FSM_ALU_1_GET_EX_ALU_0(sq_debug_fsm_alu_1) \
+ ((sq_debug_fsm_alu_1 & SQ_DEBUG_FSM_ALU_1_EX_ALU_0_MASK) >> SQ_DEBUG_FSM_ALU_1_EX_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_GET_RESERVED0(sq_debug_fsm_alu_1) \
+ ((sq_debug_fsm_alu_1 & SQ_DEBUG_FSM_ALU_1_RESERVED0_MASK) >> SQ_DEBUG_FSM_ALU_1_RESERVED0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_GET_CF_ALU_0(sq_debug_fsm_alu_1) \
+ ((sq_debug_fsm_alu_1 & SQ_DEBUG_FSM_ALU_1_CF_ALU_0_MASK) >> SQ_DEBUG_FSM_ALU_1_CF_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_GET_IF_ALU_0(sq_debug_fsm_alu_1) \
+ ((sq_debug_fsm_alu_1 & SQ_DEBUG_FSM_ALU_1_IF_ALU_0_MASK) >> SQ_DEBUG_FSM_ALU_1_IF_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_GET_RESERVED1(sq_debug_fsm_alu_1) \
+ ((sq_debug_fsm_alu_1 & SQ_DEBUG_FSM_ALU_1_RESERVED1_MASK) >> SQ_DEBUG_FSM_ALU_1_RESERVED1_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_GET_DU1_ALU_0(sq_debug_fsm_alu_1) \
+ ((sq_debug_fsm_alu_1 & SQ_DEBUG_FSM_ALU_1_DU1_ALU_0_MASK) >> SQ_DEBUG_FSM_ALU_1_DU1_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_GET_RESERVED2(sq_debug_fsm_alu_1) \
+ ((sq_debug_fsm_alu_1 & SQ_DEBUG_FSM_ALU_1_RESERVED2_MASK) >> SQ_DEBUG_FSM_ALU_1_RESERVED2_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_GET_DU0_ALU_0(sq_debug_fsm_alu_1) \
+ ((sq_debug_fsm_alu_1 & SQ_DEBUG_FSM_ALU_1_DU0_ALU_0_MASK) >> SQ_DEBUG_FSM_ALU_1_DU0_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_GET_RESERVED3(sq_debug_fsm_alu_1) \
+ ((sq_debug_fsm_alu_1 & SQ_DEBUG_FSM_ALU_1_RESERVED3_MASK) >> SQ_DEBUG_FSM_ALU_1_RESERVED3_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_GET_AIS_ALU_0(sq_debug_fsm_alu_1) \
+ ((sq_debug_fsm_alu_1 & SQ_DEBUG_FSM_ALU_1_AIS_ALU_0_MASK) >> SQ_DEBUG_FSM_ALU_1_AIS_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_GET_RESERVED4(sq_debug_fsm_alu_1) \
+ ((sq_debug_fsm_alu_1 & SQ_DEBUG_FSM_ALU_1_RESERVED4_MASK) >> SQ_DEBUG_FSM_ALU_1_RESERVED4_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_GET_ACS_ALU_0(sq_debug_fsm_alu_1) \
+ ((sq_debug_fsm_alu_1 & SQ_DEBUG_FSM_ALU_1_ACS_ALU_0_MASK) >> SQ_DEBUG_FSM_ALU_1_ACS_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_GET_RESERVED5(sq_debug_fsm_alu_1) \
+ ((sq_debug_fsm_alu_1 & SQ_DEBUG_FSM_ALU_1_RESERVED5_MASK) >> SQ_DEBUG_FSM_ALU_1_RESERVED5_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_GET_ARB_TR_ALU(sq_debug_fsm_alu_1) \
+ ((sq_debug_fsm_alu_1 & SQ_DEBUG_FSM_ALU_1_ARB_TR_ALU_MASK) >> SQ_DEBUG_FSM_ALU_1_ARB_TR_ALU_SHIFT)
+
+#define SQ_DEBUG_FSM_ALU_1_SET_EX_ALU_0(sq_debug_fsm_alu_1_reg, ex_alu_0) \
+ sq_debug_fsm_alu_1_reg = (sq_debug_fsm_alu_1_reg & ~SQ_DEBUG_FSM_ALU_1_EX_ALU_0_MASK) | (ex_alu_0 << SQ_DEBUG_FSM_ALU_1_EX_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_SET_RESERVED0(sq_debug_fsm_alu_1_reg, reserved0) \
+ sq_debug_fsm_alu_1_reg = (sq_debug_fsm_alu_1_reg & ~SQ_DEBUG_FSM_ALU_1_RESERVED0_MASK) | (reserved0 << SQ_DEBUG_FSM_ALU_1_RESERVED0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_SET_CF_ALU_0(sq_debug_fsm_alu_1_reg, cf_alu_0) \
+ sq_debug_fsm_alu_1_reg = (sq_debug_fsm_alu_1_reg & ~SQ_DEBUG_FSM_ALU_1_CF_ALU_0_MASK) | (cf_alu_0 << SQ_DEBUG_FSM_ALU_1_CF_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_SET_IF_ALU_0(sq_debug_fsm_alu_1_reg, if_alu_0) \
+ sq_debug_fsm_alu_1_reg = (sq_debug_fsm_alu_1_reg & ~SQ_DEBUG_FSM_ALU_1_IF_ALU_0_MASK) | (if_alu_0 << SQ_DEBUG_FSM_ALU_1_IF_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_SET_RESERVED1(sq_debug_fsm_alu_1_reg, reserved1) \
+ sq_debug_fsm_alu_1_reg = (sq_debug_fsm_alu_1_reg & ~SQ_DEBUG_FSM_ALU_1_RESERVED1_MASK) | (reserved1 << SQ_DEBUG_FSM_ALU_1_RESERVED1_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_SET_DU1_ALU_0(sq_debug_fsm_alu_1_reg, du1_alu_0) \
+ sq_debug_fsm_alu_1_reg = (sq_debug_fsm_alu_1_reg & ~SQ_DEBUG_FSM_ALU_1_DU1_ALU_0_MASK) | (du1_alu_0 << SQ_DEBUG_FSM_ALU_1_DU1_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_SET_RESERVED2(sq_debug_fsm_alu_1_reg, reserved2) \
+ sq_debug_fsm_alu_1_reg = (sq_debug_fsm_alu_1_reg & ~SQ_DEBUG_FSM_ALU_1_RESERVED2_MASK) | (reserved2 << SQ_DEBUG_FSM_ALU_1_RESERVED2_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_SET_DU0_ALU_0(sq_debug_fsm_alu_1_reg, du0_alu_0) \
+ sq_debug_fsm_alu_1_reg = (sq_debug_fsm_alu_1_reg & ~SQ_DEBUG_FSM_ALU_1_DU0_ALU_0_MASK) | (du0_alu_0 << SQ_DEBUG_FSM_ALU_1_DU0_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_SET_RESERVED3(sq_debug_fsm_alu_1_reg, reserved3) \
+ sq_debug_fsm_alu_1_reg = (sq_debug_fsm_alu_1_reg & ~SQ_DEBUG_FSM_ALU_1_RESERVED3_MASK) | (reserved3 << SQ_DEBUG_FSM_ALU_1_RESERVED3_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_SET_AIS_ALU_0(sq_debug_fsm_alu_1_reg, ais_alu_0) \
+ sq_debug_fsm_alu_1_reg = (sq_debug_fsm_alu_1_reg & ~SQ_DEBUG_FSM_ALU_1_AIS_ALU_0_MASK) | (ais_alu_0 << SQ_DEBUG_FSM_ALU_1_AIS_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_SET_RESERVED4(sq_debug_fsm_alu_1_reg, reserved4) \
+ sq_debug_fsm_alu_1_reg = (sq_debug_fsm_alu_1_reg & ~SQ_DEBUG_FSM_ALU_1_RESERVED4_MASK) | (reserved4 << SQ_DEBUG_FSM_ALU_1_RESERVED4_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_SET_ACS_ALU_0(sq_debug_fsm_alu_1_reg, acs_alu_0) \
+ sq_debug_fsm_alu_1_reg = (sq_debug_fsm_alu_1_reg & ~SQ_DEBUG_FSM_ALU_1_ACS_ALU_0_MASK) | (acs_alu_0 << SQ_DEBUG_FSM_ALU_1_ACS_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_SET_RESERVED5(sq_debug_fsm_alu_1_reg, reserved5) \
+ sq_debug_fsm_alu_1_reg = (sq_debug_fsm_alu_1_reg & ~SQ_DEBUG_FSM_ALU_1_RESERVED5_MASK) | (reserved5 << SQ_DEBUG_FSM_ALU_1_RESERVED5_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_SET_ARB_TR_ALU(sq_debug_fsm_alu_1_reg, arb_tr_alu) \
+ sq_debug_fsm_alu_1_reg = (sq_debug_fsm_alu_1_reg & ~SQ_DEBUG_FSM_ALU_1_ARB_TR_ALU_MASK) | (arb_tr_alu << SQ_DEBUG_FSM_ALU_1_ARB_TR_ALU_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_fsm_alu_1_t {
+ unsigned int ex_alu_0 : SQ_DEBUG_FSM_ALU_1_EX_ALU_0_SIZE;
+ unsigned int reserved0 : SQ_DEBUG_FSM_ALU_1_RESERVED0_SIZE;
+ unsigned int cf_alu_0 : SQ_DEBUG_FSM_ALU_1_CF_ALU_0_SIZE;
+ unsigned int if_alu_0 : SQ_DEBUG_FSM_ALU_1_IF_ALU_0_SIZE;
+ unsigned int reserved1 : SQ_DEBUG_FSM_ALU_1_RESERVED1_SIZE;
+ unsigned int du1_alu_0 : SQ_DEBUG_FSM_ALU_1_DU1_ALU_0_SIZE;
+ unsigned int reserved2 : SQ_DEBUG_FSM_ALU_1_RESERVED2_SIZE;
+ unsigned int du0_alu_0 : SQ_DEBUG_FSM_ALU_1_DU0_ALU_0_SIZE;
+ unsigned int reserved3 : SQ_DEBUG_FSM_ALU_1_RESERVED3_SIZE;
+ unsigned int ais_alu_0 : SQ_DEBUG_FSM_ALU_1_AIS_ALU_0_SIZE;
+ unsigned int reserved4 : SQ_DEBUG_FSM_ALU_1_RESERVED4_SIZE;
+ unsigned int acs_alu_0 : SQ_DEBUG_FSM_ALU_1_ACS_ALU_0_SIZE;
+ unsigned int reserved5 : SQ_DEBUG_FSM_ALU_1_RESERVED5_SIZE;
+ unsigned int arb_tr_alu : SQ_DEBUG_FSM_ALU_1_ARB_TR_ALU_SIZE;
+ unsigned int : 1;
+ } sq_debug_fsm_alu_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_fsm_alu_1_t {
+ unsigned int : 1;
+ unsigned int arb_tr_alu : SQ_DEBUG_FSM_ALU_1_ARB_TR_ALU_SIZE;
+ unsigned int reserved5 : SQ_DEBUG_FSM_ALU_1_RESERVED5_SIZE;
+ unsigned int acs_alu_0 : SQ_DEBUG_FSM_ALU_1_ACS_ALU_0_SIZE;
+ unsigned int reserved4 : SQ_DEBUG_FSM_ALU_1_RESERVED4_SIZE;
+ unsigned int ais_alu_0 : SQ_DEBUG_FSM_ALU_1_AIS_ALU_0_SIZE;
+ unsigned int reserved3 : SQ_DEBUG_FSM_ALU_1_RESERVED3_SIZE;
+ unsigned int du0_alu_0 : SQ_DEBUG_FSM_ALU_1_DU0_ALU_0_SIZE;
+ unsigned int reserved2 : SQ_DEBUG_FSM_ALU_1_RESERVED2_SIZE;
+ unsigned int du1_alu_0 : SQ_DEBUG_FSM_ALU_1_DU1_ALU_0_SIZE;
+ unsigned int reserved1 : SQ_DEBUG_FSM_ALU_1_RESERVED1_SIZE;
+ unsigned int if_alu_0 : SQ_DEBUG_FSM_ALU_1_IF_ALU_0_SIZE;
+ unsigned int cf_alu_0 : SQ_DEBUG_FSM_ALU_1_CF_ALU_0_SIZE;
+ unsigned int reserved0 : SQ_DEBUG_FSM_ALU_1_RESERVED0_SIZE;
+ unsigned int ex_alu_0 : SQ_DEBUG_FSM_ALU_1_EX_ALU_0_SIZE;
+ } sq_debug_fsm_alu_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_fsm_alu_1_t f;
+} sq_debug_fsm_alu_1_u;
+
+
+/*
+ * SQ_DEBUG_EXP_ALLOC struct
+ */
+
+#define SQ_DEBUG_EXP_ALLOC_POS_BUF_AVAIL_SIZE 4
+#define SQ_DEBUG_EXP_ALLOC_COLOR_BUF_AVAIL_SIZE 8
+#define SQ_DEBUG_EXP_ALLOC_EA_BUF_AVAIL_SIZE 3
+#define SQ_DEBUG_EXP_ALLOC_RESERVED_SIZE 1
+#define SQ_DEBUG_EXP_ALLOC_ALLOC_TBL_BUF_AVAIL_SIZE 6
+
+#define SQ_DEBUG_EXP_ALLOC_POS_BUF_AVAIL_SHIFT 0
+#define SQ_DEBUG_EXP_ALLOC_COLOR_BUF_AVAIL_SHIFT 4
+#define SQ_DEBUG_EXP_ALLOC_EA_BUF_AVAIL_SHIFT 12
+#define SQ_DEBUG_EXP_ALLOC_RESERVED_SHIFT 15
+#define SQ_DEBUG_EXP_ALLOC_ALLOC_TBL_BUF_AVAIL_SHIFT 16
+
+#define SQ_DEBUG_EXP_ALLOC_POS_BUF_AVAIL_MASK 0x0000000f
+#define SQ_DEBUG_EXP_ALLOC_COLOR_BUF_AVAIL_MASK 0x00000ff0
+#define SQ_DEBUG_EXP_ALLOC_EA_BUF_AVAIL_MASK 0x00007000
+#define SQ_DEBUG_EXP_ALLOC_RESERVED_MASK 0x00008000
+#define SQ_DEBUG_EXP_ALLOC_ALLOC_TBL_BUF_AVAIL_MASK 0x003f0000
+
+#define SQ_DEBUG_EXP_ALLOC_MASK \
+ (SQ_DEBUG_EXP_ALLOC_POS_BUF_AVAIL_MASK | \
+ SQ_DEBUG_EXP_ALLOC_COLOR_BUF_AVAIL_MASK | \
+ SQ_DEBUG_EXP_ALLOC_EA_BUF_AVAIL_MASK | \
+ SQ_DEBUG_EXP_ALLOC_RESERVED_MASK | \
+ SQ_DEBUG_EXP_ALLOC_ALLOC_TBL_BUF_AVAIL_MASK)
+
+#define SQ_DEBUG_EXP_ALLOC(pos_buf_avail, color_buf_avail, ea_buf_avail, reserved, alloc_tbl_buf_avail) \
+ ((pos_buf_avail << SQ_DEBUG_EXP_ALLOC_POS_BUF_AVAIL_SHIFT) | \
+ (color_buf_avail << SQ_DEBUG_EXP_ALLOC_COLOR_BUF_AVAIL_SHIFT) | \
+ (ea_buf_avail << SQ_DEBUG_EXP_ALLOC_EA_BUF_AVAIL_SHIFT) | \
+ (reserved << SQ_DEBUG_EXP_ALLOC_RESERVED_SHIFT) | \
+ (alloc_tbl_buf_avail << SQ_DEBUG_EXP_ALLOC_ALLOC_TBL_BUF_AVAIL_SHIFT))
+
+#define SQ_DEBUG_EXP_ALLOC_GET_POS_BUF_AVAIL(sq_debug_exp_alloc) \
+ ((sq_debug_exp_alloc & SQ_DEBUG_EXP_ALLOC_POS_BUF_AVAIL_MASK) >> SQ_DEBUG_EXP_ALLOC_POS_BUF_AVAIL_SHIFT)
+#define SQ_DEBUG_EXP_ALLOC_GET_COLOR_BUF_AVAIL(sq_debug_exp_alloc) \
+ ((sq_debug_exp_alloc & SQ_DEBUG_EXP_ALLOC_COLOR_BUF_AVAIL_MASK) >> SQ_DEBUG_EXP_ALLOC_COLOR_BUF_AVAIL_SHIFT)
+#define SQ_DEBUG_EXP_ALLOC_GET_EA_BUF_AVAIL(sq_debug_exp_alloc) \
+ ((sq_debug_exp_alloc & SQ_DEBUG_EXP_ALLOC_EA_BUF_AVAIL_MASK) >> SQ_DEBUG_EXP_ALLOC_EA_BUF_AVAIL_SHIFT)
+#define SQ_DEBUG_EXP_ALLOC_GET_RESERVED(sq_debug_exp_alloc) \
+ ((sq_debug_exp_alloc & SQ_DEBUG_EXP_ALLOC_RESERVED_MASK) >> SQ_DEBUG_EXP_ALLOC_RESERVED_SHIFT)
+#define SQ_DEBUG_EXP_ALLOC_GET_ALLOC_TBL_BUF_AVAIL(sq_debug_exp_alloc) \
+ ((sq_debug_exp_alloc & SQ_DEBUG_EXP_ALLOC_ALLOC_TBL_BUF_AVAIL_MASK) >> SQ_DEBUG_EXP_ALLOC_ALLOC_TBL_BUF_AVAIL_SHIFT)
+
+#define SQ_DEBUG_EXP_ALLOC_SET_POS_BUF_AVAIL(sq_debug_exp_alloc_reg, pos_buf_avail) \
+ sq_debug_exp_alloc_reg = (sq_debug_exp_alloc_reg & ~SQ_DEBUG_EXP_ALLOC_POS_BUF_AVAIL_MASK) | (pos_buf_avail << SQ_DEBUG_EXP_ALLOC_POS_BUF_AVAIL_SHIFT)
+#define SQ_DEBUG_EXP_ALLOC_SET_COLOR_BUF_AVAIL(sq_debug_exp_alloc_reg, color_buf_avail) \
+ sq_debug_exp_alloc_reg = (sq_debug_exp_alloc_reg & ~SQ_DEBUG_EXP_ALLOC_COLOR_BUF_AVAIL_MASK) | (color_buf_avail << SQ_DEBUG_EXP_ALLOC_COLOR_BUF_AVAIL_SHIFT)
+#define SQ_DEBUG_EXP_ALLOC_SET_EA_BUF_AVAIL(sq_debug_exp_alloc_reg, ea_buf_avail) \
+ sq_debug_exp_alloc_reg = (sq_debug_exp_alloc_reg & ~SQ_DEBUG_EXP_ALLOC_EA_BUF_AVAIL_MASK) | (ea_buf_avail << SQ_DEBUG_EXP_ALLOC_EA_BUF_AVAIL_SHIFT)
+#define SQ_DEBUG_EXP_ALLOC_SET_RESERVED(sq_debug_exp_alloc_reg, reserved) \
+ sq_debug_exp_alloc_reg = (sq_debug_exp_alloc_reg & ~SQ_DEBUG_EXP_ALLOC_RESERVED_MASK) | (reserved << SQ_DEBUG_EXP_ALLOC_RESERVED_SHIFT)
+#define SQ_DEBUG_EXP_ALLOC_SET_ALLOC_TBL_BUF_AVAIL(sq_debug_exp_alloc_reg, alloc_tbl_buf_avail) \
+ sq_debug_exp_alloc_reg = (sq_debug_exp_alloc_reg & ~SQ_DEBUG_EXP_ALLOC_ALLOC_TBL_BUF_AVAIL_MASK) | (alloc_tbl_buf_avail << SQ_DEBUG_EXP_ALLOC_ALLOC_TBL_BUF_AVAIL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_exp_alloc_t {
+ unsigned int pos_buf_avail : SQ_DEBUG_EXP_ALLOC_POS_BUF_AVAIL_SIZE;
+ unsigned int color_buf_avail : SQ_DEBUG_EXP_ALLOC_COLOR_BUF_AVAIL_SIZE;
+ unsigned int ea_buf_avail : SQ_DEBUG_EXP_ALLOC_EA_BUF_AVAIL_SIZE;
+ unsigned int reserved : SQ_DEBUG_EXP_ALLOC_RESERVED_SIZE;
+ unsigned int alloc_tbl_buf_avail : SQ_DEBUG_EXP_ALLOC_ALLOC_TBL_BUF_AVAIL_SIZE;
+ unsigned int : 10;
+ } sq_debug_exp_alloc_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_exp_alloc_t {
+ unsigned int : 10;
+ unsigned int alloc_tbl_buf_avail : SQ_DEBUG_EXP_ALLOC_ALLOC_TBL_BUF_AVAIL_SIZE;
+ unsigned int reserved : SQ_DEBUG_EXP_ALLOC_RESERVED_SIZE;
+ unsigned int ea_buf_avail : SQ_DEBUG_EXP_ALLOC_EA_BUF_AVAIL_SIZE;
+ unsigned int color_buf_avail : SQ_DEBUG_EXP_ALLOC_COLOR_BUF_AVAIL_SIZE;
+ unsigned int pos_buf_avail : SQ_DEBUG_EXP_ALLOC_POS_BUF_AVAIL_SIZE;
+ } sq_debug_exp_alloc_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_exp_alloc_t f;
+} sq_debug_exp_alloc_u;
+
+
+/*
+ * SQ_DEBUG_PTR_BUFF struct
+ */
+
+#define SQ_DEBUG_PTR_BUFF_END_OF_BUFFER_SIZE 1
+#define SQ_DEBUG_PTR_BUFF_DEALLOC_CNT_SIZE 4
+#define SQ_DEBUG_PTR_BUFF_QUAL_NEW_VECTOR_SIZE 1
+#define SQ_DEBUG_PTR_BUFF_EVENT_CONTEXT_ID_SIZE 3
+#define SQ_DEBUG_PTR_BUFF_SC_EVENT_ID_SIZE 5
+#define SQ_DEBUG_PTR_BUFF_QUAL_EVENT_SIZE 1
+#define SQ_DEBUG_PTR_BUFF_PRIM_TYPE_POLYGON_SIZE 1
+#define SQ_DEBUG_PTR_BUFF_EF_EMPTY_SIZE 1
+#define SQ_DEBUG_PTR_BUFF_VTX_SYNC_CNT_SIZE 11
+
+#define SQ_DEBUG_PTR_BUFF_END_OF_BUFFER_SHIFT 0
+#define SQ_DEBUG_PTR_BUFF_DEALLOC_CNT_SHIFT 1
+#define SQ_DEBUG_PTR_BUFF_QUAL_NEW_VECTOR_SHIFT 5
+#define SQ_DEBUG_PTR_BUFF_EVENT_CONTEXT_ID_SHIFT 6
+#define SQ_DEBUG_PTR_BUFF_SC_EVENT_ID_SHIFT 9
+#define SQ_DEBUG_PTR_BUFF_QUAL_EVENT_SHIFT 14
+#define SQ_DEBUG_PTR_BUFF_PRIM_TYPE_POLYGON_SHIFT 15
+#define SQ_DEBUG_PTR_BUFF_EF_EMPTY_SHIFT 16
+#define SQ_DEBUG_PTR_BUFF_VTX_SYNC_CNT_SHIFT 17
+
+#define SQ_DEBUG_PTR_BUFF_END_OF_BUFFER_MASK 0x00000001
+#define SQ_DEBUG_PTR_BUFF_DEALLOC_CNT_MASK 0x0000001e
+#define SQ_DEBUG_PTR_BUFF_QUAL_NEW_VECTOR_MASK 0x00000020
+#define SQ_DEBUG_PTR_BUFF_EVENT_CONTEXT_ID_MASK 0x000001c0
+#define SQ_DEBUG_PTR_BUFF_SC_EVENT_ID_MASK 0x00003e00
+#define SQ_DEBUG_PTR_BUFF_QUAL_EVENT_MASK 0x00004000
+#define SQ_DEBUG_PTR_BUFF_PRIM_TYPE_POLYGON_MASK 0x00008000
+#define SQ_DEBUG_PTR_BUFF_EF_EMPTY_MASK 0x00010000
+#define SQ_DEBUG_PTR_BUFF_VTX_SYNC_CNT_MASK 0x0ffe0000
+
+#define SQ_DEBUG_PTR_BUFF_MASK \
+ (SQ_DEBUG_PTR_BUFF_END_OF_BUFFER_MASK | \
+ SQ_DEBUG_PTR_BUFF_DEALLOC_CNT_MASK | \
+ SQ_DEBUG_PTR_BUFF_QUAL_NEW_VECTOR_MASK | \
+ SQ_DEBUG_PTR_BUFF_EVENT_CONTEXT_ID_MASK | \
+ SQ_DEBUG_PTR_BUFF_SC_EVENT_ID_MASK | \
+ SQ_DEBUG_PTR_BUFF_QUAL_EVENT_MASK | \
+ SQ_DEBUG_PTR_BUFF_PRIM_TYPE_POLYGON_MASK | \
+ SQ_DEBUG_PTR_BUFF_EF_EMPTY_MASK | \
+ SQ_DEBUG_PTR_BUFF_VTX_SYNC_CNT_MASK)
+
+#define SQ_DEBUG_PTR_BUFF(end_of_buffer, dealloc_cnt, qual_new_vector, event_context_id, sc_event_id, qual_event, prim_type_polygon, ef_empty, vtx_sync_cnt) \
+ ((end_of_buffer << SQ_DEBUG_PTR_BUFF_END_OF_BUFFER_SHIFT) | \
+ (dealloc_cnt << SQ_DEBUG_PTR_BUFF_DEALLOC_CNT_SHIFT) | \
+ (qual_new_vector << SQ_DEBUG_PTR_BUFF_QUAL_NEW_VECTOR_SHIFT) | \
+ (event_context_id << SQ_DEBUG_PTR_BUFF_EVENT_CONTEXT_ID_SHIFT) | \
+ (sc_event_id << SQ_DEBUG_PTR_BUFF_SC_EVENT_ID_SHIFT) | \
+ (qual_event << SQ_DEBUG_PTR_BUFF_QUAL_EVENT_SHIFT) | \
+ (prim_type_polygon << SQ_DEBUG_PTR_BUFF_PRIM_TYPE_POLYGON_SHIFT) | \
+ (ef_empty << SQ_DEBUG_PTR_BUFF_EF_EMPTY_SHIFT) | \
+ (vtx_sync_cnt << SQ_DEBUG_PTR_BUFF_VTX_SYNC_CNT_SHIFT))
+
+#define SQ_DEBUG_PTR_BUFF_GET_END_OF_BUFFER(sq_debug_ptr_buff) \
+ ((sq_debug_ptr_buff & SQ_DEBUG_PTR_BUFF_END_OF_BUFFER_MASK) >> SQ_DEBUG_PTR_BUFF_END_OF_BUFFER_SHIFT)
+#define SQ_DEBUG_PTR_BUFF_GET_DEALLOC_CNT(sq_debug_ptr_buff) \
+ ((sq_debug_ptr_buff & SQ_DEBUG_PTR_BUFF_DEALLOC_CNT_MASK) >> SQ_DEBUG_PTR_BUFF_DEALLOC_CNT_SHIFT)
+#define SQ_DEBUG_PTR_BUFF_GET_QUAL_NEW_VECTOR(sq_debug_ptr_buff) \
+ ((sq_debug_ptr_buff & SQ_DEBUG_PTR_BUFF_QUAL_NEW_VECTOR_MASK) >> SQ_DEBUG_PTR_BUFF_QUAL_NEW_VECTOR_SHIFT)
+#define SQ_DEBUG_PTR_BUFF_GET_EVENT_CONTEXT_ID(sq_debug_ptr_buff) \
+ ((sq_debug_ptr_buff & SQ_DEBUG_PTR_BUFF_EVENT_CONTEXT_ID_MASK) >> SQ_DEBUG_PTR_BUFF_EVENT_CONTEXT_ID_SHIFT)
+#define SQ_DEBUG_PTR_BUFF_GET_SC_EVENT_ID(sq_debug_ptr_buff) \
+ ((sq_debug_ptr_buff & SQ_DEBUG_PTR_BUFF_SC_EVENT_ID_MASK) >> SQ_DEBUG_PTR_BUFF_SC_EVENT_ID_SHIFT)
+#define SQ_DEBUG_PTR_BUFF_GET_QUAL_EVENT(sq_debug_ptr_buff) \
+ ((sq_debug_ptr_buff & SQ_DEBUG_PTR_BUFF_QUAL_EVENT_MASK) >> SQ_DEBUG_PTR_BUFF_QUAL_EVENT_SHIFT)
+#define SQ_DEBUG_PTR_BUFF_GET_PRIM_TYPE_POLYGON(sq_debug_ptr_buff) \
+ ((sq_debug_ptr_buff & SQ_DEBUG_PTR_BUFF_PRIM_TYPE_POLYGON_MASK) >> SQ_DEBUG_PTR_BUFF_PRIM_TYPE_POLYGON_SHIFT)
+#define SQ_DEBUG_PTR_BUFF_GET_EF_EMPTY(sq_debug_ptr_buff) \
+ ((sq_debug_ptr_buff & SQ_DEBUG_PTR_BUFF_EF_EMPTY_MASK) >> SQ_DEBUG_PTR_BUFF_EF_EMPTY_SHIFT)
+#define SQ_DEBUG_PTR_BUFF_GET_VTX_SYNC_CNT(sq_debug_ptr_buff) \
+ ((sq_debug_ptr_buff & SQ_DEBUG_PTR_BUFF_VTX_SYNC_CNT_MASK) >> SQ_DEBUG_PTR_BUFF_VTX_SYNC_CNT_SHIFT)
+
+#define SQ_DEBUG_PTR_BUFF_SET_END_OF_BUFFER(sq_debug_ptr_buff_reg, end_of_buffer) \
+ sq_debug_ptr_buff_reg = (sq_debug_ptr_buff_reg & ~SQ_DEBUG_PTR_BUFF_END_OF_BUFFER_MASK) | (end_of_buffer << SQ_DEBUG_PTR_BUFF_END_OF_BUFFER_SHIFT)
+#define SQ_DEBUG_PTR_BUFF_SET_DEALLOC_CNT(sq_debug_ptr_buff_reg, dealloc_cnt) \
+ sq_debug_ptr_buff_reg = (sq_debug_ptr_buff_reg & ~SQ_DEBUG_PTR_BUFF_DEALLOC_CNT_MASK) | (dealloc_cnt << SQ_DEBUG_PTR_BUFF_DEALLOC_CNT_SHIFT)
+#define SQ_DEBUG_PTR_BUFF_SET_QUAL_NEW_VECTOR(sq_debug_ptr_buff_reg, qual_new_vector) \
+ sq_debug_ptr_buff_reg = (sq_debug_ptr_buff_reg & ~SQ_DEBUG_PTR_BUFF_QUAL_NEW_VECTOR_MASK) | (qual_new_vector << SQ_DEBUG_PTR_BUFF_QUAL_NEW_VECTOR_SHIFT)
+#define SQ_DEBUG_PTR_BUFF_SET_EVENT_CONTEXT_ID(sq_debug_ptr_buff_reg, event_context_id) \
+ sq_debug_ptr_buff_reg = (sq_debug_ptr_buff_reg & ~SQ_DEBUG_PTR_BUFF_EVENT_CONTEXT_ID_MASK) | (event_context_id << SQ_DEBUG_PTR_BUFF_EVENT_CONTEXT_ID_SHIFT)
+#define SQ_DEBUG_PTR_BUFF_SET_SC_EVENT_ID(sq_debug_ptr_buff_reg, sc_event_id) \
+ sq_debug_ptr_buff_reg = (sq_debug_ptr_buff_reg & ~SQ_DEBUG_PTR_BUFF_SC_EVENT_ID_MASK) | (sc_event_id << SQ_DEBUG_PTR_BUFF_SC_EVENT_ID_SHIFT)
+#define SQ_DEBUG_PTR_BUFF_SET_QUAL_EVENT(sq_debug_ptr_buff_reg, qual_event) \
+ sq_debug_ptr_buff_reg = (sq_debug_ptr_buff_reg & ~SQ_DEBUG_PTR_BUFF_QUAL_EVENT_MASK) | (qual_event << SQ_DEBUG_PTR_BUFF_QUAL_EVENT_SHIFT)
+#define SQ_DEBUG_PTR_BUFF_SET_PRIM_TYPE_POLYGON(sq_debug_ptr_buff_reg, prim_type_polygon) \
+ sq_debug_ptr_buff_reg = (sq_debug_ptr_buff_reg & ~SQ_DEBUG_PTR_BUFF_PRIM_TYPE_POLYGON_MASK) | (prim_type_polygon << SQ_DEBUG_PTR_BUFF_PRIM_TYPE_POLYGON_SHIFT)
+#define SQ_DEBUG_PTR_BUFF_SET_EF_EMPTY(sq_debug_ptr_buff_reg, ef_empty) \
+ sq_debug_ptr_buff_reg = (sq_debug_ptr_buff_reg & ~SQ_DEBUG_PTR_BUFF_EF_EMPTY_MASK) | (ef_empty << SQ_DEBUG_PTR_BUFF_EF_EMPTY_SHIFT)
+#define SQ_DEBUG_PTR_BUFF_SET_VTX_SYNC_CNT(sq_debug_ptr_buff_reg, vtx_sync_cnt) \
+ sq_debug_ptr_buff_reg = (sq_debug_ptr_buff_reg & ~SQ_DEBUG_PTR_BUFF_VTX_SYNC_CNT_MASK) | (vtx_sync_cnt << SQ_DEBUG_PTR_BUFF_VTX_SYNC_CNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_ptr_buff_t {
+ unsigned int end_of_buffer : SQ_DEBUG_PTR_BUFF_END_OF_BUFFER_SIZE;
+ unsigned int dealloc_cnt : SQ_DEBUG_PTR_BUFF_DEALLOC_CNT_SIZE;
+ unsigned int qual_new_vector : SQ_DEBUG_PTR_BUFF_QUAL_NEW_VECTOR_SIZE;
+ unsigned int event_context_id : SQ_DEBUG_PTR_BUFF_EVENT_CONTEXT_ID_SIZE;
+ unsigned int sc_event_id : SQ_DEBUG_PTR_BUFF_SC_EVENT_ID_SIZE;
+ unsigned int qual_event : SQ_DEBUG_PTR_BUFF_QUAL_EVENT_SIZE;
+ unsigned int prim_type_polygon : SQ_DEBUG_PTR_BUFF_PRIM_TYPE_POLYGON_SIZE;
+ unsigned int ef_empty : SQ_DEBUG_PTR_BUFF_EF_EMPTY_SIZE;
+ unsigned int vtx_sync_cnt : SQ_DEBUG_PTR_BUFF_VTX_SYNC_CNT_SIZE;
+ unsigned int : 4;
+ } sq_debug_ptr_buff_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_ptr_buff_t {
+ unsigned int : 4;
+ unsigned int vtx_sync_cnt : SQ_DEBUG_PTR_BUFF_VTX_SYNC_CNT_SIZE;
+ unsigned int ef_empty : SQ_DEBUG_PTR_BUFF_EF_EMPTY_SIZE;
+ unsigned int prim_type_polygon : SQ_DEBUG_PTR_BUFF_PRIM_TYPE_POLYGON_SIZE;
+ unsigned int qual_event : SQ_DEBUG_PTR_BUFF_QUAL_EVENT_SIZE;
+ unsigned int sc_event_id : SQ_DEBUG_PTR_BUFF_SC_EVENT_ID_SIZE;
+ unsigned int event_context_id : SQ_DEBUG_PTR_BUFF_EVENT_CONTEXT_ID_SIZE;
+ unsigned int qual_new_vector : SQ_DEBUG_PTR_BUFF_QUAL_NEW_VECTOR_SIZE;
+ unsigned int dealloc_cnt : SQ_DEBUG_PTR_BUFF_DEALLOC_CNT_SIZE;
+ unsigned int end_of_buffer : SQ_DEBUG_PTR_BUFF_END_OF_BUFFER_SIZE;
+ } sq_debug_ptr_buff_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_ptr_buff_t f;
+} sq_debug_ptr_buff_u;
+
+
+/*
+ * SQ_DEBUG_GPR_VTX struct
+ */
+
+#define SQ_DEBUG_GPR_VTX_VTX_TAIL_PTR_SIZE 7
+#define SQ_DEBUG_GPR_VTX_RESERVED_SIZE 1
+#define SQ_DEBUG_GPR_VTX_VTX_HEAD_PTR_SIZE 7
+#define SQ_DEBUG_GPR_VTX_RESERVED1_SIZE 1
+#define SQ_DEBUG_GPR_VTX_VTX_MAX_SIZE 7
+#define SQ_DEBUG_GPR_VTX_RESERVED2_SIZE 1
+#define SQ_DEBUG_GPR_VTX_VTX_FREE_SIZE 7
+
+#define SQ_DEBUG_GPR_VTX_VTX_TAIL_PTR_SHIFT 0
+#define SQ_DEBUG_GPR_VTX_RESERVED_SHIFT 7
+#define SQ_DEBUG_GPR_VTX_VTX_HEAD_PTR_SHIFT 8
+#define SQ_DEBUG_GPR_VTX_RESERVED1_SHIFT 15
+#define SQ_DEBUG_GPR_VTX_VTX_MAX_SHIFT 16
+#define SQ_DEBUG_GPR_VTX_RESERVED2_SHIFT 23
+#define SQ_DEBUG_GPR_VTX_VTX_FREE_SHIFT 24
+
+#define SQ_DEBUG_GPR_VTX_VTX_TAIL_PTR_MASK 0x0000007f
+#define SQ_DEBUG_GPR_VTX_RESERVED_MASK 0x00000080
+#define SQ_DEBUG_GPR_VTX_VTX_HEAD_PTR_MASK 0x00007f00
+#define SQ_DEBUG_GPR_VTX_RESERVED1_MASK 0x00008000
+#define SQ_DEBUG_GPR_VTX_VTX_MAX_MASK 0x007f0000
+#define SQ_DEBUG_GPR_VTX_RESERVED2_MASK 0x00800000
+#define SQ_DEBUG_GPR_VTX_VTX_FREE_MASK 0x7f000000
+
+#define SQ_DEBUG_GPR_VTX_MASK \
+ (SQ_DEBUG_GPR_VTX_VTX_TAIL_PTR_MASK | \
+ SQ_DEBUG_GPR_VTX_RESERVED_MASK | \
+ SQ_DEBUG_GPR_VTX_VTX_HEAD_PTR_MASK | \
+ SQ_DEBUG_GPR_VTX_RESERVED1_MASK | \
+ SQ_DEBUG_GPR_VTX_VTX_MAX_MASK | \
+ SQ_DEBUG_GPR_VTX_RESERVED2_MASK | \
+ SQ_DEBUG_GPR_VTX_VTX_FREE_MASK)
+
+#define SQ_DEBUG_GPR_VTX(vtx_tail_ptr, reserved, vtx_head_ptr, reserved1, vtx_max, reserved2, vtx_free) \
+ ((vtx_tail_ptr << SQ_DEBUG_GPR_VTX_VTX_TAIL_PTR_SHIFT) | \
+ (reserved << SQ_DEBUG_GPR_VTX_RESERVED_SHIFT) | \
+ (vtx_head_ptr << SQ_DEBUG_GPR_VTX_VTX_HEAD_PTR_SHIFT) | \
+ (reserved1 << SQ_DEBUG_GPR_VTX_RESERVED1_SHIFT) | \
+ (vtx_max << SQ_DEBUG_GPR_VTX_VTX_MAX_SHIFT) | \
+ (reserved2 << SQ_DEBUG_GPR_VTX_RESERVED2_SHIFT) | \
+ (vtx_free << SQ_DEBUG_GPR_VTX_VTX_FREE_SHIFT))
+
+#define SQ_DEBUG_GPR_VTX_GET_VTX_TAIL_PTR(sq_debug_gpr_vtx) \
+ ((sq_debug_gpr_vtx & SQ_DEBUG_GPR_VTX_VTX_TAIL_PTR_MASK) >> SQ_DEBUG_GPR_VTX_VTX_TAIL_PTR_SHIFT)
+#define SQ_DEBUG_GPR_VTX_GET_RESERVED(sq_debug_gpr_vtx) \
+ ((sq_debug_gpr_vtx & SQ_DEBUG_GPR_VTX_RESERVED_MASK) >> SQ_DEBUG_GPR_VTX_RESERVED_SHIFT)
+#define SQ_DEBUG_GPR_VTX_GET_VTX_HEAD_PTR(sq_debug_gpr_vtx) \
+ ((sq_debug_gpr_vtx & SQ_DEBUG_GPR_VTX_VTX_HEAD_PTR_MASK) >> SQ_DEBUG_GPR_VTX_VTX_HEAD_PTR_SHIFT)
+#define SQ_DEBUG_GPR_VTX_GET_RESERVED1(sq_debug_gpr_vtx) \
+ ((sq_debug_gpr_vtx & SQ_DEBUG_GPR_VTX_RESERVED1_MASK) >> SQ_DEBUG_GPR_VTX_RESERVED1_SHIFT)
+#define SQ_DEBUG_GPR_VTX_GET_VTX_MAX(sq_debug_gpr_vtx) \
+ ((sq_debug_gpr_vtx & SQ_DEBUG_GPR_VTX_VTX_MAX_MASK) >> SQ_DEBUG_GPR_VTX_VTX_MAX_SHIFT)
+#define SQ_DEBUG_GPR_VTX_GET_RESERVED2(sq_debug_gpr_vtx) \
+ ((sq_debug_gpr_vtx & SQ_DEBUG_GPR_VTX_RESERVED2_MASK) >> SQ_DEBUG_GPR_VTX_RESERVED2_SHIFT)
+#define SQ_DEBUG_GPR_VTX_GET_VTX_FREE(sq_debug_gpr_vtx) \
+ ((sq_debug_gpr_vtx & SQ_DEBUG_GPR_VTX_VTX_FREE_MASK) >> SQ_DEBUG_GPR_VTX_VTX_FREE_SHIFT)
+
+#define SQ_DEBUG_GPR_VTX_SET_VTX_TAIL_PTR(sq_debug_gpr_vtx_reg, vtx_tail_ptr) \
+ sq_debug_gpr_vtx_reg = (sq_debug_gpr_vtx_reg & ~SQ_DEBUG_GPR_VTX_VTX_TAIL_PTR_MASK) | (vtx_tail_ptr << SQ_DEBUG_GPR_VTX_VTX_TAIL_PTR_SHIFT)
+#define SQ_DEBUG_GPR_VTX_SET_RESERVED(sq_debug_gpr_vtx_reg, reserved) \
+ sq_debug_gpr_vtx_reg = (sq_debug_gpr_vtx_reg & ~SQ_DEBUG_GPR_VTX_RESERVED_MASK) | (reserved << SQ_DEBUG_GPR_VTX_RESERVED_SHIFT)
+#define SQ_DEBUG_GPR_VTX_SET_VTX_HEAD_PTR(sq_debug_gpr_vtx_reg, vtx_head_ptr) \
+ sq_debug_gpr_vtx_reg = (sq_debug_gpr_vtx_reg & ~SQ_DEBUG_GPR_VTX_VTX_HEAD_PTR_MASK) | (vtx_head_ptr << SQ_DEBUG_GPR_VTX_VTX_HEAD_PTR_SHIFT)
+#define SQ_DEBUG_GPR_VTX_SET_RESERVED1(sq_debug_gpr_vtx_reg, reserved1) \
+ sq_debug_gpr_vtx_reg = (sq_debug_gpr_vtx_reg & ~SQ_DEBUG_GPR_VTX_RESERVED1_MASK) | (reserved1 << SQ_DEBUG_GPR_VTX_RESERVED1_SHIFT)
+#define SQ_DEBUG_GPR_VTX_SET_VTX_MAX(sq_debug_gpr_vtx_reg, vtx_max) \
+ sq_debug_gpr_vtx_reg = (sq_debug_gpr_vtx_reg & ~SQ_DEBUG_GPR_VTX_VTX_MAX_MASK) | (vtx_max << SQ_DEBUG_GPR_VTX_VTX_MAX_SHIFT)
+#define SQ_DEBUG_GPR_VTX_SET_RESERVED2(sq_debug_gpr_vtx_reg, reserved2) \
+ sq_debug_gpr_vtx_reg = (sq_debug_gpr_vtx_reg & ~SQ_DEBUG_GPR_VTX_RESERVED2_MASK) | (reserved2 << SQ_DEBUG_GPR_VTX_RESERVED2_SHIFT)
+#define SQ_DEBUG_GPR_VTX_SET_VTX_FREE(sq_debug_gpr_vtx_reg, vtx_free) \
+ sq_debug_gpr_vtx_reg = (sq_debug_gpr_vtx_reg & ~SQ_DEBUG_GPR_VTX_VTX_FREE_MASK) | (vtx_free << SQ_DEBUG_GPR_VTX_VTX_FREE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_gpr_vtx_t {
+ unsigned int vtx_tail_ptr : SQ_DEBUG_GPR_VTX_VTX_TAIL_PTR_SIZE;
+ unsigned int reserved : SQ_DEBUG_GPR_VTX_RESERVED_SIZE;
+ unsigned int vtx_head_ptr : SQ_DEBUG_GPR_VTX_VTX_HEAD_PTR_SIZE;
+ unsigned int reserved1 : SQ_DEBUG_GPR_VTX_RESERVED1_SIZE;
+ unsigned int vtx_max : SQ_DEBUG_GPR_VTX_VTX_MAX_SIZE;
+ unsigned int reserved2 : SQ_DEBUG_GPR_VTX_RESERVED2_SIZE;
+ unsigned int vtx_free : SQ_DEBUG_GPR_VTX_VTX_FREE_SIZE;
+ unsigned int : 1;
+ } sq_debug_gpr_vtx_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_gpr_vtx_t {
+ unsigned int : 1;
+ unsigned int vtx_free : SQ_DEBUG_GPR_VTX_VTX_FREE_SIZE;
+ unsigned int reserved2 : SQ_DEBUG_GPR_VTX_RESERVED2_SIZE;
+ unsigned int vtx_max : SQ_DEBUG_GPR_VTX_VTX_MAX_SIZE;
+ unsigned int reserved1 : SQ_DEBUG_GPR_VTX_RESERVED1_SIZE;
+ unsigned int vtx_head_ptr : SQ_DEBUG_GPR_VTX_VTX_HEAD_PTR_SIZE;
+ unsigned int reserved : SQ_DEBUG_GPR_VTX_RESERVED_SIZE;
+ unsigned int vtx_tail_ptr : SQ_DEBUG_GPR_VTX_VTX_TAIL_PTR_SIZE;
+ } sq_debug_gpr_vtx_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_gpr_vtx_t f;
+} sq_debug_gpr_vtx_u;
+
+
+/*
+ * SQ_DEBUG_GPR_PIX struct
+ */
+
+#define SQ_DEBUG_GPR_PIX_PIX_TAIL_PTR_SIZE 7
+#define SQ_DEBUG_GPR_PIX_RESERVED_SIZE 1
+#define SQ_DEBUG_GPR_PIX_PIX_HEAD_PTR_SIZE 7
+#define SQ_DEBUG_GPR_PIX_RESERVED1_SIZE 1
+#define SQ_DEBUG_GPR_PIX_PIX_MAX_SIZE 7
+#define SQ_DEBUG_GPR_PIX_RESERVED2_SIZE 1
+#define SQ_DEBUG_GPR_PIX_PIX_FREE_SIZE 7
+
+#define SQ_DEBUG_GPR_PIX_PIX_TAIL_PTR_SHIFT 0
+#define SQ_DEBUG_GPR_PIX_RESERVED_SHIFT 7
+#define SQ_DEBUG_GPR_PIX_PIX_HEAD_PTR_SHIFT 8
+#define SQ_DEBUG_GPR_PIX_RESERVED1_SHIFT 15
+#define SQ_DEBUG_GPR_PIX_PIX_MAX_SHIFT 16
+#define SQ_DEBUG_GPR_PIX_RESERVED2_SHIFT 23
+#define SQ_DEBUG_GPR_PIX_PIX_FREE_SHIFT 24
+
+#define SQ_DEBUG_GPR_PIX_PIX_TAIL_PTR_MASK 0x0000007f
+#define SQ_DEBUG_GPR_PIX_RESERVED_MASK 0x00000080
+#define SQ_DEBUG_GPR_PIX_PIX_HEAD_PTR_MASK 0x00007f00
+#define SQ_DEBUG_GPR_PIX_RESERVED1_MASK 0x00008000
+#define SQ_DEBUG_GPR_PIX_PIX_MAX_MASK 0x007f0000
+#define SQ_DEBUG_GPR_PIX_RESERVED2_MASK 0x00800000
+#define SQ_DEBUG_GPR_PIX_PIX_FREE_MASK 0x7f000000
+
+#define SQ_DEBUG_GPR_PIX_MASK \
+ (SQ_DEBUG_GPR_PIX_PIX_TAIL_PTR_MASK | \
+ SQ_DEBUG_GPR_PIX_RESERVED_MASK | \
+ SQ_DEBUG_GPR_PIX_PIX_HEAD_PTR_MASK | \
+ SQ_DEBUG_GPR_PIX_RESERVED1_MASK | \
+ SQ_DEBUG_GPR_PIX_PIX_MAX_MASK | \
+ SQ_DEBUG_GPR_PIX_RESERVED2_MASK | \
+ SQ_DEBUG_GPR_PIX_PIX_FREE_MASK)
+
+#define SQ_DEBUG_GPR_PIX(pix_tail_ptr, reserved, pix_head_ptr, reserved1, pix_max, reserved2, pix_free) \
+ ((pix_tail_ptr << SQ_DEBUG_GPR_PIX_PIX_TAIL_PTR_SHIFT) | \
+ (reserved << SQ_DEBUG_GPR_PIX_RESERVED_SHIFT) | \
+ (pix_head_ptr << SQ_DEBUG_GPR_PIX_PIX_HEAD_PTR_SHIFT) | \
+ (reserved1 << SQ_DEBUG_GPR_PIX_RESERVED1_SHIFT) | \
+ (pix_max << SQ_DEBUG_GPR_PIX_PIX_MAX_SHIFT) | \
+ (reserved2 << SQ_DEBUG_GPR_PIX_RESERVED2_SHIFT) | \
+ (pix_free << SQ_DEBUG_GPR_PIX_PIX_FREE_SHIFT))
+
+#define SQ_DEBUG_GPR_PIX_GET_PIX_TAIL_PTR(sq_debug_gpr_pix) \
+ ((sq_debug_gpr_pix & SQ_DEBUG_GPR_PIX_PIX_TAIL_PTR_MASK) >> SQ_DEBUG_GPR_PIX_PIX_TAIL_PTR_SHIFT)
+#define SQ_DEBUG_GPR_PIX_GET_RESERVED(sq_debug_gpr_pix) \
+ ((sq_debug_gpr_pix & SQ_DEBUG_GPR_PIX_RESERVED_MASK) >> SQ_DEBUG_GPR_PIX_RESERVED_SHIFT)
+#define SQ_DEBUG_GPR_PIX_GET_PIX_HEAD_PTR(sq_debug_gpr_pix) \
+ ((sq_debug_gpr_pix & SQ_DEBUG_GPR_PIX_PIX_HEAD_PTR_MASK) >> SQ_DEBUG_GPR_PIX_PIX_HEAD_PTR_SHIFT)
+#define SQ_DEBUG_GPR_PIX_GET_RESERVED1(sq_debug_gpr_pix) \
+ ((sq_debug_gpr_pix & SQ_DEBUG_GPR_PIX_RESERVED1_MASK) >> SQ_DEBUG_GPR_PIX_RESERVED1_SHIFT)
+#define SQ_DEBUG_GPR_PIX_GET_PIX_MAX(sq_debug_gpr_pix) \
+ ((sq_debug_gpr_pix & SQ_DEBUG_GPR_PIX_PIX_MAX_MASK) >> SQ_DEBUG_GPR_PIX_PIX_MAX_SHIFT)
+#define SQ_DEBUG_GPR_PIX_GET_RESERVED2(sq_debug_gpr_pix) \
+ ((sq_debug_gpr_pix & SQ_DEBUG_GPR_PIX_RESERVED2_MASK) >> SQ_DEBUG_GPR_PIX_RESERVED2_SHIFT)
+#define SQ_DEBUG_GPR_PIX_GET_PIX_FREE(sq_debug_gpr_pix) \
+ ((sq_debug_gpr_pix & SQ_DEBUG_GPR_PIX_PIX_FREE_MASK) >> SQ_DEBUG_GPR_PIX_PIX_FREE_SHIFT)
+
+#define SQ_DEBUG_GPR_PIX_SET_PIX_TAIL_PTR(sq_debug_gpr_pix_reg, pix_tail_ptr) \
+ sq_debug_gpr_pix_reg = (sq_debug_gpr_pix_reg & ~SQ_DEBUG_GPR_PIX_PIX_TAIL_PTR_MASK) | (pix_tail_ptr << SQ_DEBUG_GPR_PIX_PIX_TAIL_PTR_SHIFT)
+#define SQ_DEBUG_GPR_PIX_SET_RESERVED(sq_debug_gpr_pix_reg, reserved) \
+ sq_debug_gpr_pix_reg = (sq_debug_gpr_pix_reg & ~SQ_DEBUG_GPR_PIX_RESERVED_MASK) | (reserved << SQ_DEBUG_GPR_PIX_RESERVED_SHIFT)
+#define SQ_DEBUG_GPR_PIX_SET_PIX_HEAD_PTR(sq_debug_gpr_pix_reg, pix_head_ptr) \
+ sq_debug_gpr_pix_reg = (sq_debug_gpr_pix_reg & ~SQ_DEBUG_GPR_PIX_PIX_HEAD_PTR_MASK) | (pix_head_ptr << SQ_DEBUG_GPR_PIX_PIX_HEAD_PTR_SHIFT)
+#define SQ_DEBUG_GPR_PIX_SET_RESERVED1(sq_debug_gpr_pix_reg, reserved1) \
+ sq_debug_gpr_pix_reg = (sq_debug_gpr_pix_reg & ~SQ_DEBUG_GPR_PIX_RESERVED1_MASK) | (reserved1 << SQ_DEBUG_GPR_PIX_RESERVED1_SHIFT)
+#define SQ_DEBUG_GPR_PIX_SET_PIX_MAX(sq_debug_gpr_pix_reg, pix_max) \
+ sq_debug_gpr_pix_reg = (sq_debug_gpr_pix_reg & ~SQ_DEBUG_GPR_PIX_PIX_MAX_MASK) | (pix_max << SQ_DEBUG_GPR_PIX_PIX_MAX_SHIFT)
+#define SQ_DEBUG_GPR_PIX_SET_RESERVED2(sq_debug_gpr_pix_reg, reserved2) \
+ sq_debug_gpr_pix_reg = (sq_debug_gpr_pix_reg & ~SQ_DEBUG_GPR_PIX_RESERVED2_MASK) | (reserved2 << SQ_DEBUG_GPR_PIX_RESERVED2_SHIFT)
+#define SQ_DEBUG_GPR_PIX_SET_PIX_FREE(sq_debug_gpr_pix_reg, pix_free) \
+ sq_debug_gpr_pix_reg = (sq_debug_gpr_pix_reg & ~SQ_DEBUG_GPR_PIX_PIX_FREE_MASK) | (pix_free << SQ_DEBUG_GPR_PIX_PIX_FREE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_gpr_pix_t {
+ unsigned int pix_tail_ptr : SQ_DEBUG_GPR_PIX_PIX_TAIL_PTR_SIZE;
+ unsigned int reserved : SQ_DEBUG_GPR_PIX_RESERVED_SIZE;
+ unsigned int pix_head_ptr : SQ_DEBUG_GPR_PIX_PIX_HEAD_PTR_SIZE;
+ unsigned int reserved1 : SQ_DEBUG_GPR_PIX_RESERVED1_SIZE;
+ unsigned int pix_max : SQ_DEBUG_GPR_PIX_PIX_MAX_SIZE;
+ unsigned int reserved2 : SQ_DEBUG_GPR_PIX_RESERVED2_SIZE;
+ unsigned int pix_free : SQ_DEBUG_GPR_PIX_PIX_FREE_SIZE;
+ unsigned int : 1;
+ } sq_debug_gpr_pix_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_gpr_pix_t {
+ unsigned int : 1;
+ unsigned int pix_free : SQ_DEBUG_GPR_PIX_PIX_FREE_SIZE;
+ unsigned int reserved2 : SQ_DEBUG_GPR_PIX_RESERVED2_SIZE;
+ unsigned int pix_max : SQ_DEBUG_GPR_PIX_PIX_MAX_SIZE;
+ unsigned int reserved1 : SQ_DEBUG_GPR_PIX_RESERVED1_SIZE;
+ unsigned int pix_head_ptr : SQ_DEBUG_GPR_PIX_PIX_HEAD_PTR_SIZE;
+ unsigned int reserved : SQ_DEBUG_GPR_PIX_RESERVED_SIZE;
+ unsigned int pix_tail_ptr : SQ_DEBUG_GPR_PIX_PIX_TAIL_PTR_SIZE;
+ } sq_debug_gpr_pix_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_gpr_pix_t f;
+} sq_debug_gpr_pix_u;
+
+
+/*
+ * SQ_DEBUG_TB_STATUS_SEL struct
+ */
+
+#define SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATUS_REG_SEL_SIZE 4
+#define SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_DW_SEL_SIZE 3
+#define SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_ADDR_SIZE 4
+#define SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_EN_SIZE 1
+#define SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_EN_SIZE 1
+#define SQ_DEBUG_TB_STATUS_SEL_DEBUG_BUS_TRIGGER_SEL_SIZE 2
+#define SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATUS_REG_SEL_SIZE 4
+#define SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_DW_SEL_SIZE 3
+#define SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_ADDR_SIZE 6
+#define SQ_DEBUG_TB_STATUS_SEL_VC_THREAD_BUF_DLY_SIZE 2
+#define SQ_DEBUG_TB_STATUS_SEL_DISABLE_STRICT_CTX_SYNC_SIZE 1
+
+#define SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATUS_REG_SEL_SHIFT 0
+#define SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_DW_SEL_SHIFT 4
+#define SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_ADDR_SHIFT 7
+#define SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_EN_SHIFT 11
+#define SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_EN_SHIFT 12
+#define SQ_DEBUG_TB_STATUS_SEL_DEBUG_BUS_TRIGGER_SEL_SHIFT 14
+#define SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATUS_REG_SEL_SHIFT 16
+#define SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_DW_SEL_SHIFT 20
+#define SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_ADDR_SHIFT 23
+#define SQ_DEBUG_TB_STATUS_SEL_VC_THREAD_BUF_DLY_SHIFT 29
+#define SQ_DEBUG_TB_STATUS_SEL_DISABLE_STRICT_CTX_SYNC_SHIFT 31
+
+#define SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATUS_REG_SEL_MASK 0x0000000f
+#define SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_DW_SEL_MASK 0x00000070
+#define SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_ADDR_MASK 0x00000780
+#define SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_EN_MASK 0x00000800
+#define SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_EN_MASK 0x00001000
+#define SQ_DEBUG_TB_STATUS_SEL_DEBUG_BUS_TRIGGER_SEL_MASK 0x0000c000
+#define SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATUS_REG_SEL_MASK 0x000f0000
+#define SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_DW_SEL_MASK 0x00700000
+#define SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_ADDR_MASK 0x1f800000
+#define SQ_DEBUG_TB_STATUS_SEL_VC_THREAD_BUF_DLY_MASK 0x60000000
+#define SQ_DEBUG_TB_STATUS_SEL_DISABLE_STRICT_CTX_SYNC_MASK 0x80000000
+
+#define SQ_DEBUG_TB_STATUS_SEL_MASK \
+ (SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATUS_REG_SEL_MASK | \
+ SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_DW_SEL_MASK | \
+ SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_ADDR_MASK | \
+ SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_EN_MASK | \
+ SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_EN_MASK | \
+ SQ_DEBUG_TB_STATUS_SEL_DEBUG_BUS_TRIGGER_SEL_MASK | \
+ SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATUS_REG_SEL_MASK | \
+ SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_DW_SEL_MASK | \
+ SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_ADDR_MASK | \
+ SQ_DEBUG_TB_STATUS_SEL_VC_THREAD_BUF_DLY_MASK | \
+ SQ_DEBUG_TB_STATUS_SEL_DISABLE_STRICT_CTX_SYNC_MASK)
+
+#define SQ_DEBUG_TB_STATUS_SEL(vtx_tb_status_reg_sel, vtx_tb_state_mem_dw_sel, vtx_tb_state_mem_rd_addr, vtx_tb_state_mem_rd_en, pix_tb_state_mem_rd_en, debug_bus_trigger_sel, pix_tb_status_reg_sel, pix_tb_state_mem_dw_sel, pix_tb_state_mem_rd_addr, vc_thread_buf_dly, disable_strict_ctx_sync) \
+ ((vtx_tb_status_reg_sel << SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATUS_REG_SEL_SHIFT) | \
+ (vtx_tb_state_mem_dw_sel << SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_DW_SEL_SHIFT) | \
+ (vtx_tb_state_mem_rd_addr << SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_ADDR_SHIFT) | \
+ (vtx_tb_state_mem_rd_en << SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_EN_SHIFT) | \
+ (pix_tb_state_mem_rd_en << SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_EN_SHIFT) | \
+ (debug_bus_trigger_sel << SQ_DEBUG_TB_STATUS_SEL_DEBUG_BUS_TRIGGER_SEL_SHIFT) | \
+ (pix_tb_status_reg_sel << SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATUS_REG_SEL_SHIFT) | \
+ (pix_tb_state_mem_dw_sel << SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_DW_SEL_SHIFT) | \
+ (pix_tb_state_mem_rd_addr << SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_ADDR_SHIFT) | \
+ (vc_thread_buf_dly << SQ_DEBUG_TB_STATUS_SEL_VC_THREAD_BUF_DLY_SHIFT) | \
+ (disable_strict_ctx_sync << SQ_DEBUG_TB_STATUS_SEL_DISABLE_STRICT_CTX_SYNC_SHIFT))
+
+#define SQ_DEBUG_TB_STATUS_SEL_GET_VTX_TB_STATUS_REG_SEL(sq_debug_tb_status_sel) \
+ ((sq_debug_tb_status_sel & SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATUS_REG_SEL_MASK) >> SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATUS_REG_SEL_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_GET_VTX_TB_STATE_MEM_DW_SEL(sq_debug_tb_status_sel) \
+ ((sq_debug_tb_status_sel & SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_DW_SEL_MASK) >> SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_DW_SEL_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_GET_VTX_TB_STATE_MEM_RD_ADDR(sq_debug_tb_status_sel) \
+ ((sq_debug_tb_status_sel & SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_ADDR_MASK) >> SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_ADDR_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_GET_VTX_TB_STATE_MEM_RD_EN(sq_debug_tb_status_sel) \
+ ((sq_debug_tb_status_sel & SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_EN_MASK) >> SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_EN_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_GET_PIX_TB_STATE_MEM_RD_EN(sq_debug_tb_status_sel) \
+ ((sq_debug_tb_status_sel & SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_EN_MASK) >> SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_EN_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_GET_DEBUG_BUS_TRIGGER_SEL(sq_debug_tb_status_sel) \
+ ((sq_debug_tb_status_sel & SQ_DEBUG_TB_STATUS_SEL_DEBUG_BUS_TRIGGER_SEL_MASK) >> SQ_DEBUG_TB_STATUS_SEL_DEBUG_BUS_TRIGGER_SEL_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_GET_PIX_TB_STATUS_REG_SEL(sq_debug_tb_status_sel) \
+ ((sq_debug_tb_status_sel & SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATUS_REG_SEL_MASK) >> SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATUS_REG_SEL_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_GET_PIX_TB_STATE_MEM_DW_SEL(sq_debug_tb_status_sel) \
+ ((sq_debug_tb_status_sel & SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_DW_SEL_MASK) >> SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_DW_SEL_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_GET_PIX_TB_STATE_MEM_RD_ADDR(sq_debug_tb_status_sel) \
+ ((sq_debug_tb_status_sel & SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_ADDR_MASK) >> SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_ADDR_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_GET_VC_THREAD_BUF_DLY(sq_debug_tb_status_sel) \
+ ((sq_debug_tb_status_sel & SQ_DEBUG_TB_STATUS_SEL_VC_THREAD_BUF_DLY_MASK) >> SQ_DEBUG_TB_STATUS_SEL_VC_THREAD_BUF_DLY_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_GET_DISABLE_STRICT_CTX_SYNC(sq_debug_tb_status_sel) \
+ ((sq_debug_tb_status_sel & SQ_DEBUG_TB_STATUS_SEL_DISABLE_STRICT_CTX_SYNC_MASK) >> SQ_DEBUG_TB_STATUS_SEL_DISABLE_STRICT_CTX_SYNC_SHIFT)
+
+#define SQ_DEBUG_TB_STATUS_SEL_SET_VTX_TB_STATUS_REG_SEL(sq_debug_tb_status_sel_reg, vtx_tb_status_reg_sel) \
+ sq_debug_tb_status_sel_reg = (sq_debug_tb_status_sel_reg & ~SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATUS_REG_SEL_MASK) | (vtx_tb_status_reg_sel << SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATUS_REG_SEL_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_SET_VTX_TB_STATE_MEM_DW_SEL(sq_debug_tb_status_sel_reg, vtx_tb_state_mem_dw_sel) \
+ sq_debug_tb_status_sel_reg = (sq_debug_tb_status_sel_reg & ~SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_DW_SEL_MASK) | (vtx_tb_state_mem_dw_sel << SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_DW_SEL_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_SET_VTX_TB_STATE_MEM_RD_ADDR(sq_debug_tb_status_sel_reg, vtx_tb_state_mem_rd_addr) \
+ sq_debug_tb_status_sel_reg = (sq_debug_tb_status_sel_reg & ~SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_ADDR_MASK) | (vtx_tb_state_mem_rd_addr << SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_ADDR_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_SET_VTX_TB_STATE_MEM_RD_EN(sq_debug_tb_status_sel_reg, vtx_tb_state_mem_rd_en) \
+ sq_debug_tb_status_sel_reg = (sq_debug_tb_status_sel_reg & ~SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_EN_MASK) | (vtx_tb_state_mem_rd_en << SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_EN_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_SET_PIX_TB_STATE_MEM_RD_EN(sq_debug_tb_status_sel_reg, pix_tb_state_mem_rd_en) \
+ sq_debug_tb_status_sel_reg = (sq_debug_tb_status_sel_reg & ~SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_EN_MASK) | (pix_tb_state_mem_rd_en << SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_EN_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_SET_DEBUG_BUS_TRIGGER_SEL(sq_debug_tb_status_sel_reg, debug_bus_trigger_sel) \
+ sq_debug_tb_status_sel_reg = (sq_debug_tb_status_sel_reg & ~SQ_DEBUG_TB_STATUS_SEL_DEBUG_BUS_TRIGGER_SEL_MASK) | (debug_bus_trigger_sel << SQ_DEBUG_TB_STATUS_SEL_DEBUG_BUS_TRIGGER_SEL_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_SET_PIX_TB_STATUS_REG_SEL(sq_debug_tb_status_sel_reg, pix_tb_status_reg_sel) \
+ sq_debug_tb_status_sel_reg = (sq_debug_tb_status_sel_reg & ~SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATUS_REG_SEL_MASK) | (pix_tb_status_reg_sel << SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATUS_REG_SEL_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_SET_PIX_TB_STATE_MEM_DW_SEL(sq_debug_tb_status_sel_reg, pix_tb_state_mem_dw_sel) \
+ sq_debug_tb_status_sel_reg = (sq_debug_tb_status_sel_reg & ~SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_DW_SEL_MASK) | (pix_tb_state_mem_dw_sel << SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_DW_SEL_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_SET_PIX_TB_STATE_MEM_RD_ADDR(sq_debug_tb_status_sel_reg, pix_tb_state_mem_rd_addr) \
+ sq_debug_tb_status_sel_reg = (sq_debug_tb_status_sel_reg & ~SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_ADDR_MASK) | (pix_tb_state_mem_rd_addr << SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_ADDR_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_SET_VC_THREAD_BUF_DLY(sq_debug_tb_status_sel_reg, vc_thread_buf_dly) \
+ sq_debug_tb_status_sel_reg = (sq_debug_tb_status_sel_reg & ~SQ_DEBUG_TB_STATUS_SEL_VC_THREAD_BUF_DLY_MASK) | (vc_thread_buf_dly << SQ_DEBUG_TB_STATUS_SEL_VC_THREAD_BUF_DLY_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_SET_DISABLE_STRICT_CTX_SYNC(sq_debug_tb_status_sel_reg, disable_strict_ctx_sync) \
+ sq_debug_tb_status_sel_reg = (sq_debug_tb_status_sel_reg & ~SQ_DEBUG_TB_STATUS_SEL_DISABLE_STRICT_CTX_SYNC_MASK) | (disable_strict_ctx_sync << SQ_DEBUG_TB_STATUS_SEL_DISABLE_STRICT_CTX_SYNC_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_tb_status_sel_t {
+ unsigned int vtx_tb_status_reg_sel : SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATUS_REG_SEL_SIZE;
+ unsigned int vtx_tb_state_mem_dw_sel : SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_DW_SEL_SIZE;
+ unsigned int vtx_tb_state_mem_rd_addr : SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_ADDR_SIZE;
+ unsigned int vtx_tb_state_mem_rd_en : SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_EN_SIZE;
+ unsigned int pix_tb_state_mem_rd_en : SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_EN_SIZE;
+ unsigned int : 1;
+ unsigned int debug_bus_trigger_sel : SQ_DEBUG_TB_STATUS_SEL_DEBUG_BUS_TRIGGER_SEL_SIZE;
+ unsigned int pix_tb_status_reg_sel : SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATUS_REG_SEL_SIZE;
+ unsigned int pix_tb_state_mem_dw_sel : SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_DW_SEL_SIZE;
+ unsigned int pix_tb_state_mem_rd_addr : SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_ADDR_SIZE;
+ unsigned int vc_thread_buf_dly : SQ_DEBUG_TB_STATUS_SEL_VC_THREAD_BUF_DLY_SIZE;
+ unsigned int disable_strict_ctx_sync : SQ_DEBUG_TB_STATUS_SEL_DISABLE_STRICT_CTX_SYNC_SIZE;
+ } sq_debug_tb_status_sel_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_tb_status_sel_t {
+ unsigned int disable_strict_ctx_sync : SQ_DEBUG_TB_STATUS_SEL_DISABLE_STRICT_CTX_SYNC_SIZE;
+ unsigned int vc_thread_buf_dly : SQ_DEBUG_TB_STATUS_SEL_VC_THREAD_BUF_DLY_SIZE;
+ unsigned int pix_tb_state_mem_rd_addr : SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_ADDR_SIZE;
+ unsigned int pix_tb_state_mem_dw_sel : SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_DW_SEL_SIZE;
+ unsigned int pix_tb_status_reg_sel : SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATUS_REG_SEL_SIZE;
+ unsigned int debug_bus_trigger_sel : SQ_DEBUG_TB_STATUS_SEL_DEBUG_BUS_TRIGGER_SEL_SIZE;
+ unsigned int : 1;
+ unsigned int pix_tb_state_mem_rd_en : SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_EN_SIZE;
+ unsigned int vtx_tb_state_mem_rd_en : SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_EN_SIZE;
+ unsigned int vtx_tb_state_mem_rd_addr : SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_ADDR_SIZE;
+ unsigned int vtx_tb_state_mem_dw_sel : SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_DW_SEL_SIZE;
+ unsigned int vtx_tb_status_reg_sel : SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATUS_REG_SEL_SIZE;
+ } sq_debug_tb_status_sel_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_tb_status_sel_t f;
+} sq_debug_tb_status_sel_u;
+
+
+/*
+ * SQ_DEBUG_VTX_TB_0 struct
+ */
+
+#define SQ_DEBUG_VTX_TB_0_VTX_HEAD_PTR_Q_SIZE 4
+#define SQ_DEBUG_VTX_TB_0_TAIL_PTR_Q_SIZE 4
+#define SQ_DEBUG_VTX_TB_0_FULL_CNT_Q_SIZE 4
+#define SQ_DEBUG_VTX_TB_0_NXT_POS_ALLOC_CNT_SIZE 4
+#define SQ_DEBUG_VTX_TB_0_NXT_PC_ALLOC_CNT_SIZE 4
+#define SQ_DEBUG_VTX_TB_0_SX_EVENT_FULL_SIZE 1
+#define SQ_DEBUG_VTX_TB_0_BUSY_Q_SIZE 1
+
+#define SQ_DEBUG_VTX_TB_0_VTX_HEAD_PTR_Q_SHIFT 0
+#define SQ_DEBUG_VTX_TB_0_TAIL_PTR_Q_SHIFT 4
+#define SQ_DEBUG_VTX_TB_0_FULL_CNT_Q_SHIFT 8
+#define SQ_DEBUG_VTX_TB_0_NXT_POS_ALLOC_CNT_SHIFT 12
+#define SQ_DEBUG_VTX_TB_0_NXT_PC_ALLOC_CNT_SHIFT 16
+#define SQ_DEBUG_VTX_TB_0_SX_EVENT_FULL_SHIFT 20
+#define SQ_DEBUG_VTX_TB_0_BUSY_Q_SHIFT 21
+
+#define SQ_DEBUG_VTX_TB_0_VTX_HEAD_PTR_Q_MASK 0x0000000f
+#define SQ_DEBUG_VTX_TB_0_TAIL_PTR_Q_MASK 0x000000f0
+#define SQ_DEBUG_VTX_TB_0_FULL_CNT_Q_MASK 0x00000f00
+#define SQ_DEBUG_VTX_TB_0_NXT_POS_ALLOC_CNT_MASK 0x0000f000
+#define SQ_DEBUG_VTX_TB_0_NXT_PC_ALLOC_CNT_MASK 0x000f0000
+#define SQ_DEBUG_VTX_TB_0_SX_EVENT_FULL_MASK 0x00100000
+#define SQ_DEBUG_VTX_TB_0_BUSY_Q_MASK 0x00200000
+
+#define SQ_DEBUG_VTX_TB_0_MASK \
+ (SQ_DEBUG_VTX_TB_0_VTX_HEAD_PTR_Q_MASK | \
+ SQ_DEBUG_VTX_TB_0_TAIL_PTR_Q_MASK | \
+ SQ_DEBUG_VTX_TB_0_FULL_CNT_Q_MASK | \
+ SQ_DEBUG_VTX_TB_0_NXT_POS_ALLOC_CNT_MASK | \
+ SQ_DEBUG_VTX_TB_0_NXT_PC_ALLOC_CNT_MASK | \
+ SQ_DEBUG_VTX_TB_0_SX_EVENT_FULL_MASK | \
+ SQ_DEBUG_VTX_TB_0_BUSY_Q_MASK)
+
+#define SQ_DEBUG_VTX_TB_0(vtx_head_ptr_q, tail_ptr_q, full_cnt_q, nxt_pos_alloc_cnt, nxt_pc_alloc_cnt, sx_event_full, busy_q) \
+ ((vtx_head_ptr_q << SQ_DEBUG_VTX_TB_0_VTX_HEAD_PTR_Q_SHIFT) | \
+ (tail_ptr_q << SQ_DEBUG_VTX_TB_0_TAIL_PTR_Q_SHIFT) | \
+ (full_cnt_q << SQ_DEBUG_VTX_TB_0_FULL_CNT_Q_SHIFT) | \
+ (nxt_pos_alloc_cnt << SQ_DEBUG_VTX_TB_0_NXT_POS_ALLOC_CNT_SHIFT) | \
+ (nxt_pc_alloc_cnt << SQ_DEBUG_VTX_TB_0_NXT_PC_ALLOC_CNT_SHIFT) | \
+ (sx_event_full << SQ_DEBUG_VTX_TB_0_SX_EVENT_FULL_SHIFT) | \
+ (busy_q << SQ_DEBUG_VTX_TB_0_BUSY_Q_SHIFT))
+
+#define SQ_DEBUG_VTX_TB_0_GET_VTX_HEAD_PTR_Q(sq_debug_vtx_tb_0) \
+ ((sq_debug_vtx_tb_0 & SQ_DEBUG_VTX_TB_0_VTX_HEAD_PTR_Q_MASK) >> SQ_DEBUG_VTX_TB_0_VTX_HEAD_PTR_Q_SHIFT)
+#define SQ_DEBUG_VTX_TB_0_GET_TAIL_PTR_Q(sq_debug_vtx_tb_0) \
+ ((sq_debug_vtx_tb_0 & SQ_DEBUG_VTX_TB_0_TAIL_PTR_Q_MASK) >> SQ_DEBUG_VTX_TB_0_TAIL_PTR_Q_SHIFT)
+#define SQ_DEBUG_VTX_TB_0_GET_FULL_CNT_Q(sq_debug_vtx_tb_0) \
+ ((sq_debug_vtx_tb_0 & SQ_DEBUG_VTX_TB_0_FULL_CNT_Q_MASK) >> SQ_DEBUG_VTX_TB_0_FULL_CNT_Q_SHIFT)
+#define SQ_DEBUG_VTX_TB_0_GET_NXT_POS_ALLOC_CNT(sq_debug_vtx_tb_0) \
+ ((sq_debug_vtx_tb_0 & SQ_DEBUG_VTX_TB_0_NXT_POS_ALLOC_CNT_MASK) >> SQ_DEBUG_VTX_TB_0_NXT_POS_ALLOC_CNT_SHIFT)
+#define SQ_DEBUG_VTX_TB_0_GET_NXT_PC_ALLOC_CNT(sq_debug_vtx_tb_0) \
+ ((sq_debug_vtx_tb_0 & SQ_DEBUG_VTX_TB_0_NXT_PC_ALLOC_CNT_MASK) >> SQ_DEBUG_VTX_TB_0_NXT_PC_ALLOC_CNT_SHIFT)
+#define SQ_DEBUG_VTX_TB_0_GET_SX_EVENT_FULL(sq_debug_vtx_tb_0) \
+ ((sq_debug_vtx_tb_0 & SQ_DEBUG_VTX_TB_0_SX_EVENT_FULL_MASK) >> SQ_DEBUG_VTX_TB_0_SX_EVENT_FULL_SHIFT)
+#define SQ_DEBUG_VTX_TB_0_GET_BUSY_Q(sq_debug_vtx_tb_0) \
+ ((sq_debug_vtx_tb_0 & SQ_DEBUG_VTX_TB_0_BUSY_Q_MASK) >> SQ_DEBUG_VTX_TB_0_BUSY_Q_SHIFT)
+
+#define SQ_DEBUG_VTX_TB_0_SET_VTX_HEAD_PTR_Q(sq_debug_vtx_tb_0_reg, vtx_head_ptr_q) \
+ sq_debug_vtx_tb_0_reg = (sq_debug_vtx_tb_0_reg & ~SQ_DEBUG_VTX_TB_0_VTX_HEAD_PTR_Q_MASK) | (vtx_head_ptr_q << SQ_DEBUG_VTX_TB_0_VTX_HEAD_PTR_Q_SHIFT)
+#define SQ_DEBUG_VTX_TB_0_SET_TAIL_PTR_Q(sq_debug_vtx_tb_0_reg, tail_ptr_q) \
+ sq_debug_vtx_tb_0_reg = (sq_debug_vtx_tb_0_reg & ~SQ_DEBUG_VTX_TB_0_TAIL_PTR_Q_MASK) | (tail_ptr_q << SQ_DEBUG_VTX_TB_0_TAIL_PTR_Q_SHIFT)
+#define SQ_DEBUG_VTX_TB_0_SET_FULL_CNT_Q(sq_debug_vtx_tb_0_reg, full_cnt_q) \
+ sq_debug_vtx_tb_0_reg = (sq_debug_vtx_tb_0_reg & ~SQ_DEBUG_VTX_TB_0_FULL_CNT_Q_MASK) | (full_cnt_q << SQ_DEBUG_VTX_TB_0_FULL_CNT_Q_SHIFT)
+#define SQ_DEBUG_VTX_TB_0_SET_NXT_POS_ALLOC_CNT(sq_debug_vtx_tb_0_reg, nxt_pos_alloc_cnt) \
+ sq_debug_vtx_tb_0_reg = (sq_debug_vtx_tb_0_reg & ~SQ_DEBUG_VTX_TB_0_NXT_POS_ALLOC_CNT_MASK) | (nxt_pos_alloc_cnt << SQ_DEBUG_VTX_TB_0_NXT_POS_ALLOC_CNT_SHIFT)
+#define SQ_DEBUG_VTX_TB_0_SET_NXT_PC_ALLOC_CNT(sq_debug_vtx_tb_0_reg, nxt_pc_alloc_cnt) \
+ sq_debug_vtx_tb_0_reg = (sq_debug_vtx_tb_0_reg & ~SQ_DEBUG_VTX_TB_0_NXT_PC_ALLOC_CNT_MASK) | (nxt_pc_alloc_cnt << SQ_DEBUG_VTX_TB_0_NXT_PC_ALLOC_CNT_SHIFT)
+#define SQ_DEBUG_VTX_TB_0_SET_SX_EVENT_FULL(sq_debug_vtx_tb_0_reg, sx_event_full) \
+ sq_debug_vtx_tb_0_reg = (sq_debug_vtx_tb_0_reg & ~SQ_DEBUG_VTX_TB_0_SX_EVENT_FULL_MASK) | (sx_event_full << SQ_DEBUG_VTX_TB_0_SX_EVENT_FULL_SHIFT)
+#define SQ_DEBUG_VTX_TB_0_SET_BUSY_Q(sq_debug_vtx_tb_0_reg, busy_q) \
+ sq_debug_vtx_tb_0_reg = (sq_debug_vtx_tb_0_reg & ~SQ_DEBUG_VTX_TB_0_BUSY_Q_MASK) | (busy_q << SQ_DEBUG_VTX_TB_0_BUSY_Q_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_vtx_tb_0_t {
+ unsigned int vtx_head_ptr_q : SQ_DEBUG_VTX_TB_0_VTX_HEAD_PTR_Q_SIZE;
+ unsigned int tail_ptr_q : SQ_DEBUG_VTX_TB_0_TAIL_PTR_Q_SIZE;
+ unsigned int full_cnt_q : SQ_DEBUG_VTX_TB_0_FULL_CNT_Q_SIZE;
+ unsigned int nxt_pos_alloc_cnt : SQ_DEBUG_VTX_TB_0_NXT_POS_ALLOC_CNT_SIZE;
+ unsigned int nxt_pc_alloc_cnt : SQ_DEBUG_VTX_TB_0_NXT_PC_ALLOC_CNT_SIZE;
+ unsigned int sx_event_full : SQ_DEBUG_VTX_TB_0_SX_EVENT_FULL_SIZE;
+ unsigned int busy_q : SQ_DEBUG_VTX_TB_0_BUSY_Q_SIZE;
+ unsigned int : 10;
+ } sq_debug_vtx_tb_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_vtx_tb_0_t {
+ unsigned int : 10;
+ unsigned int busy_q : SQ_DEBUG_VTX_TB_0_BUSY_Q_SIZE;
+ unsigned int sx_event_full : SQ_DEBUG_VTX_TB_0_SX_EVENT_FULL_SIZE;
+ unsigned int nxt_pc_alloc_cnt : SQ_DEBUG_VTX_TB_0_NXT_PC_ALLOC_CNT_SIZE;
+ unsigned int nxt_pos_alloc_cnt : SQ_DEBUG_VTX_TB_0_NXT_POS_ALLOC_CNT_SIZE;
+ unsigned int full_cnt_q : SQ_DEBUG_VTX_TB_0_FULL_CNT_Q_SIZE;
+ unsigned int tail_ptr_q : SQ_DEBUG_VTX_TB_0_TAIL_PTR_Q_SIZE;
+ unsigned int vtx_head_ptr_q : SQ_DEBUG_VTX_TB_0_VTX_HEAD_PTR_Q_SIZE;
+ } sq_debug_vtx_tb_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_vtx_tb_0_t f;
+} sq_debug_vtx_tb_0_u;
+
+
+/*
+ * SQ_DEBUG_VTX_TB_1 struct
+ */
+
+#define SQ_DEBUG_VTX_TB_1_VS_DONE_PTR_SIZE 16
+
+#define SQ_DEBUG_VTX_TB_1_VS_DONE_PTR_SHIFT 0
+
+#define SQ_DEBUG_VTX_TB_1_VS_DONE_PTR_MASK 0x0000ffff
+
+#define SQ_DEBUG_VTX_TB_1_MASK \
+ (SQ_DEBUG_VTX_TB_1_VS_DONE_PTR_MASK)
+
+#define SQ_DEBUG_VTX_TB_1(vs_done_ptr) \
+ ((vs_done_ptr << SQ_DEBUG_VTX_TB_1_VS_DONE_PTR_SHIFT))
+
+#define SQ_DEBUG_VTX_TB_1_GET_VS_DONE_PTR(sq_debug_vtx_tb_1) \
+ ((sq_debug_vtx_tb_1 & SQ_DEBUG_VTX_TB_1_VS_DONE_PTR_MASK) >> SQ_DEBUG_VTX_TB_1_VS_DONE_PTR_SHIFT)
+
+#define SQ_DEBUG_VTX_TB_1_SET_VS_DONE_PTR(sq_debug_vtx_tb_1_reg, vs_done_ptr) \
+ sq_debug_vtx_tb_1_reg = (sq_debug_vtx_tb_1_reg & ~SQ_DEBUG_VTX_TB_1_VS_DONE_PTR_MASK) | (vs_done_ptr << SQ_DEBUG_VTX_TB_1_VS_DONE_PTR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_vtx_tb_1_t {
+ unsigned int vs_done_ptr : SQ_DEBUG_VTX_TB_1_VS_DONE_PTR_SIZE;
+ unsigned int : 16;
+ } sq_debug_vtx_tb_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_vtx_tb_1_t {
+ unsigned int : 16;
+ unsigned int vs_done_ptr : SQ_DEBUG_VTX_TB_1_VS_DONE_PTR_SIZE;
+ } sq_debug_vtx_tb_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_vtx_tb_1_t f;
+} sq_debug_vtx_tb_1_u;
+
+
+/*
+ * SQ_DEBUG_VTX_TB_STATUS_REG struct
+ */
+
+#define SQ_DEBUG_VTX_TB_STATUS_REG_VS_STATUS_REG_SIZE 32
+
+#define SQ_DEBUG_VTX_TB_STATUS_REG_VS_STATUS_REG_SHIFT 0
+
+#define SQ_DEBUG_VTX_TB_STATUS_REG_VS_STATUS_REG_MASK 0xffffffff
+
+#define SQ_DEBUG_VTX_TB_STATUS_REG_MASK \
+ (SQ_DEBUG_VTX_TB_STATUS_REG_VS_STATUS_REG_MASK)
+
+#define SQ_DEBUG_VTX_TB_STATUS_REG(vs_status_reg) \
+ ((vs_status_reg << SQ_DEBUG_VTX_TB_STATUS_REG_VS_STATUS_REG_SHIFT))
+
+#define SQ_DEBUG_VTX_TB_STATUS_REG_GET_VS_STATUS_REG(sq_debug_vtx_tb_status_reg) \
+ ((sq_debug_vtx_tb_status_reg & SQ_DEBUG_VTX_TB_STATUS_REG_VS_STATUS_REG_MASK) >> SQ_DEBUG_VTX_TB_STATUS_REG_VS_STATUS_REG_SHIFT)
+
+#define SQ_DEBUG_VTX_TB_STATUS_REG_SET_VS_STATUS_REG(sq_debug_vtx_tb_status_reg_reg, vs_status_reg) \
+ sq_debug_vtx_tb_status_reg_reg = (sq_debug_vtx_tb_status_reg_reg & ~SQ_DEBUG_VTX_TB_STATUS_REG_VS_STATUS_REG_MASK) | (vs_status_reg << SQ_DEBUG_VTX_TB_STATUS_REG_VS_STATUS_REG_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_vtx_tb_status_reg_t {
+ unsigned int vs_status_reg : SQ_DEBUG_VTX_TB_STATUS_REG_VS_STATUS_REG_SIZE;
+ } sq_debug_vtx_tb_status_reg_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_vtx_tb_status_reg_t {
+ unsigned int vs_status_reg : SQ_DEBUG_VTX_TB_STATUS_REG_VS_STATUS_REG_SIZE;
+ } sq_debug_vtx_tb_status_reg_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_vtx_tb_status_reg_t f;
+} sq_debug_vtx_tb_status_reg_u;
+
+
+/*
+ * SQ_DEBUG_VTX_TB_STATE_MEM struct
+ */
+
+#define SQ_DEBUG_VTX_TB_STATE_MEM_VS_STATE_MEM_SIZE 32
+
+#define SQ_DEBUG_VTX_TB_STATE_MEM_VS_STATE_MEM_SHIFT 0
+
+#define SQ_DEBUG_VTX_TB_STATE_MEM_VS_STATE_MEM_MASK 0xffffffff
+
+#define SQ_DEBUG_VTX_TB_STATE_MEM_MASK \
+ (SQ_DEBUG_VTX_TB_STATE_MEM_VS_STATE_MEM_MASK)
+
+#define SQ_DEBUG_VTX_TB_STATE_MEM(vs_state_mem) \
+ ((vs_state_mem << SQ_DEBUG_VTX_TB_STATE_MEM_VS_STATE_MEM_SHIFT))
+
+#define SQ_DEBUG_VTX_TB_STATE_MEM_GET_VS_STATE_MEM(sq_debug_vtx_tb_state_mem) \
+ ((sq_debug_vtx_tb_state_mem & SQ_DEBUG_VTX_TB_STATE_MEM_VS_STATE_MEM_MASK) >> SQ_DEBUG_VTX_TB_STATE_MEM_VS_STATE_MEM_SHIFT)
+
+#define SQ_DEBUG_VTX_TB_STATE_MEM_SET_VS_STATE_MEM(sq_debug_vtx_tb_state_mem_reg, vs_state_mem) \
+ sq_debug_vtx_tb_state_mem_reg = (sq_debug_vtx_tb_state_mem_reg & ~SQ_DEBUG_VTX_TB_STATE_MEM_VS_STATE_MEM_MASK) | (vs_state_mem << SQ_DEBUG_VTX_TB_STATE_MEM_VS_STATE_MEM_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_vtx_tb_state_mem_t {
+ unsigned int vs_state_mem : SQ_DEBUG_VTX_TB_STATE_MEM_VS_STATE_MEM_SIZE;
+ } sq_debug_vtx_tb_state_mem_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_vtx_tb_state_mem_t {
+ unsigned int vs_state_mem : SQ_DEBUG_VTX_TB_STATE_MEM_VS_STATE_MEM_SIZE;
+ } sq_debug_vtx_tb_state_mem_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_vtx_tb_state_mem_t f;
+} sq_debug_vtx_tb_state_mem_u;
+
+
+/*
+ * SQ_DEBUG_PIX_TB_0 struct
+ */
+
+#define SQ_DEBUG_PIX_TB_0_PIX_HEAD_PTR_SIZE 6
+#define SQ_DEBUG_PIX_TB_0_TAIL_PTR_SIZE 6
+#define SQ_DEBUG_PIX_TB_0_FULL_CNT_SIZE 7
+#define SQ_DEBUG_PIX_TB_0_NXT_PIX_ALLOC_CNT_SIZE 6
+#define SQ_DEBUG_PIX_TB_0_NXT_PIX_EXP_CNT_SIZE 6
+#define SQ_DEBUG_PIX_TB_0_BUSY_SIZE 1
+
+#define SQ_DEBUG_PIX_TB_0_PIX_HEAD_PTR_SHIFT 0
+#define SQ_DEBUG_PIX_TB_0_TAIL_PTR_SHIFT 6
+#define SQ_DEBUG_PIX_TB_0_FULL_CNT_SHIFT 12
+#define SQ_DEBUG_PIX_TB_0_NXT_PIX_ALLOC_CNT_SHIFT 19
+#define SQ_DEBUG_PIX_TB_0_NXT_PIX_EXP_CNT_SHIFT 25
+#define SQ_DEBUG_PIX_TB_0_BUSY_SHIFT 31
+
+#define SQ_DEBUG_PIX_TB_0_PIX_HEAD_PTR_MASK 0x0000003f
+#define SQ_DEBUG_PIX_TB_0_TAIL_PTR_MASK 0x00000fc0
+#define SQ_DEBUG_PIX_TB_0_FULL_CNT_MASK 0x0007f000
+#define SQ_DEBUG_PIX_TB_0_NXT_PIX_ALLOC_CNT_MASK 0x01f80000
+#define SQ_DEBUG_PIX_TB_0_NXT_PIX_EXP_CNT_MASK 0x7e000000
+#define SQ_DEBUG_PIX_TB_0_BUSY_MASK 0x80000000
+
+#define SQ_DEBUG_PIX_TB_0_MASK \
+ (SQ_DEBUG_PIX_TB_0_PIX_HEAD_PTR_MASK | \
+ SQ_DEBUG_PIX_TB_0_TAIL_PTR_MASK | \
+ SQ_DEBUG_PIX_TB_0_FULL_CNT_MASK | \
+ SQ_DEBUG_PIX_TB_0_NXT_PIX_ALLOC_CNT_MASK | \
+ SQ_DEBUG_PIX_TB_0_NXT_PIX_EXP_CNT_MASK | \
+ SQ_DEBUG_PIX_TB_0_BUSY_MASK)
+
+#define SQ_DEBUG_PIX_TB_0(pix_head_ptr, tail_ptr, full_cnt, nxt_pix_alloc_cnt, nxt_pix_exp_cnt, busy) \
+ ((pix_head_ptr << SQ_DEBUG_PIX_TB_0_PIX_HEAD_PTR_SHIFT) | \
+ (tail_ptr << SQ_DEBUG_PIX_TB_0_TAIL_PTR_SHIFT) | \
+ (full_cnt << SQ_DEBUG_PIX_TB_0_FULL_CNT_SHIFT) | \
+ (nxt_pix_alloc_cnt << SQ_DEBUG_PIX_TB_0_NXT_PIX_ALLOC_CNT_SHIFT) | \
+ (nxt_pix_exp_cnt << SQ_DEBUG_PIX_TB_0_NXT_PIX_EXP_CNT_SHIFT) | \
+ (busy << SQ_DEBUG_PIX_TB_0_BUSY_SHIFT))
+
+#define SQ_DEBUG_PIX_TB_0_GET_PIX_HEAD_PTR(sq_debug_pix_tb_0) \
+ ((sq_debug_pix_tb_0 & SQ_DEBUG_PIX_TB_0_PIX_HEAD_PTR_MASK) >> SQ_DEBUG_PIX_TB_0_PIX_HEAD_PTR_SHIFT)
+#define SQ_DEBUG_PIX_TB_0_GET_TAIL_PTR(sq_debug_pix_tb_0) \
+ ((sq_debug_pix_tb_0 & SQ_DEBUG_PIX_TB_0_TAIL_PTR_MASK) >> SQ_DEBUG_PIX_TB_0_TAIL_PTR_SHIFT)
+#define SQ_DEBUG_PIX_TB_0_GET_FULL_CNT(sq_debug_pix_tb_0) \
+ ((sq_debug_pix_tb_0 & SQ_DEBUG_PIX_TB_0_FULL_CNT_MASK) >> SQ_DEBUG_PIX_TB_0_FULL_CNT_SHIFT)
+#define SQ_DEBUG_PIX_TB_0_GET_NXT_PIX_ALLOC_CNT(sq_debug_pix_tb_0) \
+ ((sq_debug_pix_tb_0 & SQ_DEBUG_PIX_TB_0_NXT_PIX_ALLOC_CNT_MASK) >> SQ_DEBUG_PIX_TB_0_NXT_PIX_ALLOC_CNT_SHIFT)
+#define SQ_DEBUG_PIX_TB_0_GET_NXT_PIX_EXP_CNT(sq_debug_pix_tb_0) \
+ ((sq_debug_pix_tb_0 & SQ_DEBUG_PIX_TB_0_NXT_PIX_EXP_CNT_MASK) >> SQ_DEBUG_PIX_TB_0_NXT_PIX_EXP_CNT_SHIFT)
+#define SQ_DEBUG_PIX_TB_0_GET_BUSY(sq_debug_pix_tb_0) \
+ ((sq_debug_pix_tb_0 & SQ_DEBUG_PIX_TB_0_BUSY_MASK) >> SQ_DEBUG_PIX_TB_0_BUSY_SHIFT)
+
+#define SQ_DEBUG_PIX_TB_0_SET_PIX_HEAD_PTR(sq_debug_pix_tb_0_reg, pix_head_ptr) \
+ sq_debug_pix_tb_0_reg = (sq_debug_pix_tb_0_reg & ~SQ_DEBUG_PIX_TB_0_PIX_HEAD_PTR_MASK) | (pix_head_ptr << SQ_DEBUG_PIX_TB_0_PIX_HEAD_PTR_SHIFT)
+#define SQ_DEBUG_PIX_TB_0_SET_TAIL_PTR(sq_debug_pix_tb_0_reg, tail_ptr) \
+ sq_debug_pix_tb_0_reg = (sq_debug_pix_tb_0_reg & ~SQ_DEBUG_PIX_TB_0_TAIL_PTR_MASK) | (tail_ptr << SQ_DEBUG_PIX_TB_0_TAIL_PTR_SHIFT)
+#define SQ_DEBUG_PIX_TB_0_SET_FULL_CNT(sq_debug_pix_tb_0_reg, full_cnt) \
+ sq_debug_pix_tb_0_reg = (sq_debug_pix_tb_0_reg & ~SQ_DEBUG_PIX_TB_0_FULL_CNT_MASK) | (full_cnt << SQ_DEBUG_PIX_TB_0_FULL_CNT_SHIFT)
+#define SQ_DEBUG_PIX_TB_0_SET_NXT_PIX_ALLOC_CNT(sq_debug_pix_tb_0_reg, nxt_pix_alloc_cnt) \
+ sq_debug_pix_tb_0_reg = (sq_debug_pix_tb_0_reg & ~SQ_DEBUG_PIX_TB_0_NXT_PIX_ALLOC_CNT_MASK) | (nxt_pix_alloc_cnt << SQ_DEBUG_PIX_TB_0_NXT_PIX_ALLOC_CNT_SHIFT)
+#define SQ_DEBUG_PIX_TB_0_SET_NXT_PIX_EXP_CNT(sq_debug_pix_tb_0_reg, nxt_pix_exp_cnt) \
+ sq_debug_pix_tb_0_reg = (sq_debug_pix_tb_0_reg & ~SQ_DEBUG_PIX_TB_0_NXT_PIX_EXP_CNT_MASK) | (nxt_pix_exp_cnt << SQ_DEBUG_PIX_TB_0_NXT_PIX_EXP_CNT_SHIFT)
+#define SQ_DEBUG_PIX_TB_0_SET_BUSY(sq_debug_pix_tb_0_reg, busy) \
+ sq_debug_pix_tb_0_reg = (sq_debug_pix_tb_0_reg & ~SQ_DEBUG_PIX_TB_0_BUSY_MASK) | (busy << SQ_DEBUG_PIX_TB_0_BUSY_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_pix_tb_0_t {
+ unsigned int pix_head_ptr : SQ_DEBUG_PIX_TB_0_PIX_HEAD_PTR_SIZE;
+ unsigned int tail_ptr : SQ_DEBUG_PIX_TB_0_TAIL_PTR_SIZE;
+ unsigned int full_cnt : SQ_DEBUG_PIX_TB_0_FULL_CNT_SIZE;
+ unsigned int nxt_pix_alloc_cnt : SQ_DEBUG_PIX_TB_0_NXT_PIX_ALLOC_CNT_SIZE;
+ unsigned int nxt_pix_exp_cnt : SQ_DEBUG_PIX_TB_0_NXT_PIX_EXP_CNT_SIZE;
+ unsigned int busy : SQ_DEBUG_PIX_TB_0_BUSY_SIZE;
+ } sq_debug_pix_tb_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_pix_tb_0_t {
+ unsigned int busy : SQ_DEBUG_PIX_TB_0_BUSY_SIZE;
+ unsigned int nxt_pix_exp_cnt : SQ_DEBUG_PIX_TB_0_NXT_PIX_EXP_CNT_SIZE;
+ unsigned int nxt_pix_alloc_cnt : SQ_DEBUG_PIX_TB_0_NXT_PIX_ALLOC_CNT_SIZE;
+ unsigned int full_cnt : SQ_DEBUG_PIX_TB_0_FULL_CNT_SIZE;
+ unsigned int tail_ptr : SQ_DEBUG_PIX_TB_0_TAIL_PTR_SIZE;
+ unsigned int pix_head_ptr : SQ_DEBUG_PIX_TB_0_PIX_HEAD_PTR_SIZE;
+ } sq_debug_pix_tb_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_pix_tb_0_t f;
+} sq_debug_pix_tb_0_u;
+
+
+/*
+ * SQ_DEBUG_PIX_TB_STATUS_REG_0 struct
+ */
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_0_PIX_TB_STATUS_REG_0_SIZE 32
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_0_PIX_TB_STATUS_REG_0_SHIFT 0
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_0_PIX_TB_STATUS_REG_0_MASK 0xffffffff
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_0_MASK \
+ (SQ_DEBUG_PIX_TB_STATUS_REG_0_PIX_TB_STATUS_REG_0_MASK)
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_0(pix_tb_status_reg_0) \
+ ((pix_tb_status_reg_0 << SQ_DEBUG_PIX_TB_STATUS_REG_0_PIX_TB_STATUS_REG_0_SHIFT))
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_0_GET_PIX_TB_STATUS_REG_0(sq_debug_pix_tb_status_reg_0) \
+ ((sq_debug_pix_tb_status_reg_0 & SQ_DEBUG_PIX_TB_STATUS_REG_0_PIX_TB_STATUS_REG_0_MASK) >> SQ_DEBUG_PIX_TB_STATUS_REG_0_PIX_TB_STATUS_REG_0_SHIFT)
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_0_SET_PIX_TB_STATUS_REG_0(sq_debug_pix_tb_status_reg_0_reg, pix_tb_status_reg_0) \
+ sq_debug_pix_tb_status_reg_0_reg = (sq_debug_pix_tb_status_reg_0_reg & ~SQ_DEBUG_PIX_TB_STATUS_REG_0_PIX_TB_STATUS_REG_0_MASK) | (pix_tb_status_reg_0 << SQ_DEBUG_PIX_TB_STATUS_REG_0_PIX_TB_STATUS_REG_0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_pix_tb_status_reg_0_t {
+ unsigned int pix_tb_status_reg_0 : SQ_DEBUG_PIX_TB_STATUS_REG_0_PIX_TB_STATUS_REG_0_SIZE;
+ } sq_debug_pix_tb_status_reg_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_pix_tb_status_reg_0_t {
+ unsigned int pix_tb_status_reg_0 : SQ_DEBUG_PIX_TB_STATUS_REG_0_PIX_TB_STATUS_REG_0_SIZE;
+ } sq_debug_pix_tb_status_reg_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_pix_tb_status_reg_0_t f;
+} sq_debug_pix_tb_status_reg_0_u;
+
+
+/*
+ * SQ_DEBUG_PIX_TB_STATUS_REG_1 struct
+ */
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_1_PIX_TB_STATUS_REG_1_SIZE 32
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_1_PIX_TB_STATUS_REG_1_SHIFT 0
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_1_PIX_TB_STATUS_REG_1_MASK 0xffffffff
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_1_MASK \
+ (SQ_DEBUG_PIX_TB_STATUS_REG_1_PIX_TB_STATUS_REG_1_MASK)
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_1(pix_tb_status_reg_1) \
+ ((pix_tb_status_reg_1 << SQ_DEBUG_PIX_TB_STATUS_REG_1_PIX_TB_STATUS_REG_1_SHIFT))
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_1_GET_PIX_TB_STATUS_REG_1(sq_debug_pix_tb_status_reg_1) \
+ ((sq_debug_pix_tb_status_reg_1 & SQ_DEBUG_PIX_TB_STATUS_REG_1_PIX_TB_STATUS_REG_1_MASK) >> SQ_DEBUG_PIX_TB_STATUS_REG_1_PIX_TB_STATUS_REG_1_SHIFT)
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_1_SET_PIX_TB_STATUS_REG_1(sq_debug_pix_tb_status_reg_1_reg, pix_tb_status_reg_1) \
+ sq_debug_pix_tb_status_reg_1_reg = (sq_debug_pix_tb_status_reg_1_reg & ~SQ_DEBUG_PIX_TB_STATUS_REG_1_PIX_TB_STATUS_REG_1_MASK) | (pix_tb_status_reg_1 << SQ_DEBUG_PIX_TB_STATUS_REG_1_PIX_TB_STATUS_REG_1_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_pix_tb_status_reg_1_t {
+ unsigned int pix_tb_status_reg_1 : SQ_DEBUG_PIX_TB_STATUS_REG_1_PIX_TB_STATUS_REG_1_SIZE;
+ } sq_debug_pix_tb_status_reg_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_pix_tb_status_reg_1_t {
+ unsigned int pix_tb_status_reg_1 : SQ_DEBUG_PIX_TB_STATUS_REG_1_PIX_TB_STATUS_REG_1_SIZE;
+ } sq_debug_pix_tb_status_reg_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_pix_tb_status_reg_1_t f;
+} sq_debug_pix_tb_status_reg_1_u;
+
+
+/*
+ * SQ_DEBUG_PIX_TB_STATUS_REG_2 struct
+ */
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_2_PIX_TB_STATUS_REG_2_SIZE 32
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_2_PIX_TB_STATUS_REG_2_SHIFT 0
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_2_PIX_TB_STATUS_REG_2_MASK 0xffffffff
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_2_MASK \
+ (SQ_DEBUG_PIX_TB_STATUS_REG_2_PIX_TB_STATUS_REG_2_MASK)
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_2(pix_tb_status_reg_2) \
+ ((pix_tb_status_reg_2 << SQ_DEBUG_PIX_TB_STATUS_REG_2_PIX_TB_STATUS_REG_2_SHIFT))
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_2_GET_PIX_TB_STATUS_REG_2(sq_debug_pix_tb_status_reg_2) \
+ ((sq_debug_pix_tb_status_reg_2 & SQ_DEBUG_PIX_TB_STATUS_REG_2_PIX_TB_STATUS_REG_2_MASK) >> SQ_DEBUG_PIX_TB_STATUS_REG_2_PIX_TB_STATUS_REG_2_SHIFT)
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_2_SET_PIX_TB_STATUS_REG_2(sq_debug_pix_tb_status_reg_2_reg, pix_tb_status_reg_2) \
+ sq_debug_pix_tb_status_reg_2_reg = (sq_debug_pix_tb_status_reg_2_reg & ~SQ_DEBUG_PIX_TB_STATUS_REG_2_PIX_TB_STATUS_REG_2_MASK) | (pix_tb_status_reg_2 << SQ_DEBUG_PIX_TB_STATUS_REG_2_PIX_TB_STATUS_REG_2_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_pix_tb_status_reg_2_t {
+ unsigned int pix_tb_status_reg_2 : SQ_DEBUG_PIX_TB_STATUS_REG_2_PIX_TB_STATUS_REG_2_SIZE;
+ } sq_debug_pix_tb_status_reg_2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_pix_tb_status_reg_2_t {
+ unsigned int pix_tb_status_reg_2 : SQ_DEBUG_PIX_TB_STATUS_REG_2_PIX_TB_STATUS_REG_2_SIZE;
+ } sq_debug_pix_tb_status_reg_2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_pix_tb_status_reg_2_t f;
+} sq_debug_pix_tb_status_reg_2_u;
+
+
+/*
+ * SQ_DEBUG_PIX_TB_STATUS_REG_3 struct
+ */
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_3_PIX_TB_STATUS_REG_3_SIZE 32
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_3_PIX_TB_STATUS_REG_3_SHIFT 0
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_3_PIX_TB_STATUS_REG_3_MASK 0xffffffff
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_3_MASK \
+ (SQ_DEBUG_PIX_TB_STATUS_REG_3_PIX_TB_STATUS_REG_3_MASK)
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_3(pix_tb_status_reg_3) \
+ ((pix_tb_status_reg_3 << SQ_DEBUG_PIX_TB_STATUS_REG_3_PIX_TB_STATUS_REG_3_SHIFT))
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_3_GET_PIX_TB_STATUS_REG_3(sq_debug_pix_tb_status_reg_3) \
+ ((sq_debug_pix_tb_status_reg_3 & SQ_DEBUG_PIX_TB_STATUS_REG_3_PIX_TB_STATUS_REG_3_MASK) >> SQ_DEBUG_PIX_TB_STATUS_REG_3_PIX_TB_STATUS_REG_3_SHIFT)
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_3_SET_PIX_TB_STATUS_REG_3(sq_debug_pix_tb_status_reg_3_reg, pix_tb_status_reg_3) \
+ sq_debug_pix_tb_status_reg_3_reg = (sq_debug_pix_tb_status_reg_3_reg & ~SQ_DEBUG_PIX_TB_STATUS_REG_3_PIX_TB_STATUS_REG_3_MASK) | (pix_tb_status_reg_3 << SQ_DEBUG_PIX_TB_STATUS_REG_3_PIX_TB_STATUS_REG_3_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_pix_tb_status_reg_3_t {
+ unsigned int pix_tb_status_reg_3 : SQ_DEBUG_PIX_TB_STATUS_REG_3_PIX_TB_STATUS_REG_3_SIZE;
+ } sq_debug_pix_tb_status_reg_3_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_pix_tb_status_reg_3_t {
+ unsigned int pix_tb_status_reg_3 : SQ_DEBUG_PIX_TB_STATUS_REG_3_PIX_TB_STATUS_REG_3_SIZE;
+ } sq_debug_pix_tb_status_reg_3_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_pix_tb_status_reg_3_t f;
+} sq_debug_pix_tb_status_reg_3_u;
+
+
+/*
+ * SQ_DEBUG_PIX_TB_STATE_MEM struct
+ */
+
+#define SQ_DEBUG_PIX_TB_STATE_MEM_PIX_TB_STATE_MEM_SIZE 32
+
+#define SQ_DEBUG_PIX_TB_STATE_MEM_PIX_TB_STATE_MEM_SHIFT 0
+
+#define SQ_DEBUG_PIX_TB_STATE_MEM_PIX_TB_STATE_MEM_MASK 0xffffffff
+
+#define SQ_DEBUG_PIX_TB_STATE_MEM_MASK \
+ (SQ_DEBUG_PIX_TB_STATE_MEM_PIX_TB_STATE_MEM_MASK)
+
+#define SQ_DEBUG_PIX_TB_STATE_MEM(pix_tb_state_mem) \
+ ((pix_tb_state_mem << SQ_DEBUG_PIX_TB_STATE_MEM_PIX_TB_STATE_MEM_SHIFT))
+
+#define SQ_DEBUG_PIX_TB_STATE_MEM_GET_PIX_TB_STATE_MEM(sq_debug_pix_tb_state_mem) \
+ ((sq_debug_pix_tb_state_mem & SQ_DEBUG_PIX_TB_STATE_MEM_PIX_TB_STATE_MEM_MASK) >> SQ_DEBUG_PIX_TB_STATE_MEM_PIX_TB_STATE_MEM_SHIFT)
+
+#define SQ_DEBUG_PIX_TB_STATE_MEM_SET_PIX_TB_STATE_MEM(sq_debug_pix_tb_state_mem_reg, pix_tb_state_mem) \
+ sq_debug_pix_tb_state_mem_reg = (sq_debug_pix_tb_state_mem_reg & ~SQ_DEBUG_PIX_TB_STATE_MEM_PIX_TB_STATE_MEM_MASK) | (pix_tb_state_mem << SQ_DEBUG_PIX_TB_STATE_MEM_PIX_TB_STATE_MEM_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_pix_tb_state_mem_t {
+ unsigned int pix_tb_state_mem : SQ_DEBUG_PIX_TB_STATE_MEM_PIX_TB_STATE_MEM_SIZE;
+ } sq_debug_pix_tb_state_mem_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_pix_tb_state_mem_t {
+ unsigned int pix_tb_state_mem : SQ_DEBUG_PIX_TB_STATE_MEM_PIX_TB_STATE_MEM_SIZE;
+ } sq_debug_pix_tb_state_mem_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_pix_tb_state_mem_t f;
+} sq_debug_pix_tb_state_mem_u;
+
+
+/*
+ * SQ_PERFCOUNTER0_SELECT struct
+ */
+
+#define SQ_PERFCOUNTER0_SELECT_PERF_SEL_SIZE 8
+
+#define SQ_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT 0
+
+#define SQ_PERFCOUNTER0_SELECT_PERF_SEL_MASK 0x000000ff
+
+#define SQ_PERFCOUNTER0_SELECT_MASK \
+ (SQ_PERFCOUNTER0_SELECT_PERF_SEL_MASK)
+
+#define SQ_PERFCOUNTER0_SELECT(perf_sel) \
+ ((perf_sel << SQ_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT))
+
+#define SQ_PERFCOUNTER0_SELECT_GET_PERF_SEL(sq_perfcounter0_select) \
+ ((sq_perfcounter0_select & SQ_PERFCOUNTER0_SELECT_PERF_SEL_MASK) >> SQ_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT)
+
+#define SQ_PERFCOUNTER0_SELECT_SET_PERF_SEL(sq_perfcounter0_select_reg, perf_sel) \
+ sq_perfcounter0_select_reg = (sq_perfcounter0_select_reg & ~SQ_PERFCOUNTER0_SELECT_PERF_SEL_MASK) | (perf_sel << SQ_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter0_select_t {
+ unsigned int perf_sel : SQ_PERFCOUNTER0_SELECT_PERF_SEL_SIZE;
+ unsigned int : 24;
+ } sq_perfcounter0_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter0_select_t {
+ unsigned int : 24;
+ unsigned int perf_sel : SQ_PERFCOUNTER0_SELECT_PERF_SEL_SIZE;
+ } sq_perfcounter0_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_perfcounter0_select_t f;
+} sq_perfcounter0_select_u;
+
+
+/*
+ * SQ_PERFCOUNTER1_SELECT struct
+ */
+
+#define SQ_PERFCOUNTER1_SELECT_PERF_SEL_SIZE 8
+
+#define SQ_PERFCOUNTER1_SELECT_PERF_SEL_SHIFT 0
+
+#define SQ_PERFCOUNTER1_SELECT_PERF_SEL_MASK 0x000000ff
+
+#define SQ_PERFCOUNTER1_SELECT_MASK \
+ (SQ_PERFCOUNTER1_SELECT_PERF_SEL_MASK)
+
+#define SQ_PERFCOUNTER1_SELECT(perf_sel) \
+ ((perf_sel << SQ_PERFCOUNTER1_SELECT_PERF_SEL_SHIFT))
+
+#define SQ_PERFCOUNTER1_SELECT_GET_PERF_SEL(sq_perfcounter1_select) \
+ ((sq_perfcounter1_select & SQ_PERFCOUNTER1_SELECT_PERF_SEL_MASK) >> SQ_PERFCOUNTER1_SELECT_PERF_SEL_SHIFT)
+
+#define SQ_PERFCOUNTER1_SELECT_SET_PERF_SEL(sq_perfcounter1_select_reg, perf_sel) \
+ sq_perfcounter1_select_reg = (sq_perfcounter1_select_reg & ~SQ_PERFCOUNTER1_SELECT_PERF_SEL_MASK) | (perf_sel << SQ_PERFCOUNTER1_SELECT_PERF_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter1_select_t {
+ unsigned int perf_sel : SQ_PERFCOUNTER1_SELECT_PERF_SEL_SIZE;
+ unsigned int : 24;
+ } sq_perfcounter1_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter1_select_t {
+ unsigned int : 24;
+ unsigned int perf_sel : SQ_PERFCOUNTER1_SELECT_PERF_SEL_SIZE;
+ } sq_perfcounter1_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_perfcounter1_select_t f;
+} sq_perfcounter1_select_u;
+
+
+/*
+ * SQ_PERFCOUNTER2_SELECT struct
+ */
+
+#define SQ_PERFCOUNTER2_SELECT_PERF_SEL_SIZE 8
+
+#define SQ_PERFCOUNTER2_SELECT_PERF_SEL_SHIFT 0
+
+#define SQ_PERFCOUNTER2_SELECT_PERF_SEL_MASK 0x000000ff
+
+#define SQ_PERFCOUNTER2_SELECT_MASK \
+ (SQ_PERFCOUNTER2_SELECT_PERF_SEL_MASK)
+
+#define SQ_PERFCOUNTER2_SELECT(perf_sel) \
+ ((perf_sel << SQ_PERFCOUNTER2_SELECT_PERF_SEL_SHIFT))
+
+#define SQ_PERFCOUNTER2_SELECT_GET_PERF_SEL(sq_perfcounter2_select) \
+ ((sq_perfcounter2_select & SQ_PERFCOUNTER2_SELECT_PERF_SEL_MASK) >> SQ_PERFCOUNTER2_SELECT_PERF_SEL_SHIFT)
+
+#define SQ_PERFCOUNTER2_SELECT_SET_PERF_SEL(sq_perfcounter2_select_reg, perf_sel) \
+ sq_perfcounter2_select_reg = (sq_perfcounter2_select_reg & ~SQ_PERFCOUNTER2_SELECT_PERF_SEL_MASK) | (perf_sel << SQ_PERFCOUNTER2_SELECT_PERF_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter2_select_t {
+ unsigned int perf_sel : SQ_PERFCOUNTER2_SELECT_PERF_SEL_SIZE;
+ unsigned int : 24;
+ } sq_perfcounter2_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter2_select_t {
+ unsigned int : 24;
+ unsigned int perf_sel : SQ_PERFCOUNTER2_SELECT_PERF_SEL_SIZE;
+ } sq_perfcounter2_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_perfcounter2_select_t f;
+} sq_perfcounter2_select_u;
+
+
+/*
+ * SQ_PERFCOUNTER3_SELECT struct
+ */
+
+#define SQ_PERFCOUNTER3_SELECT_PERF_SEL_SIZE 8
+
+#define SQ_PERFCOUNTER3_SELECT_PERF_SEL_SHIFT 0
+
+#define SQ_PERFCOUNTER3_SELECT_PERF_SEL_MASK 0x000000ff
+
+#define SQ_PERFCOUNTER3_SELECT_MASK \
+ (SQ_PERFCOUNTER3_SELECT_PERF_SEL_MASK)
+
+#define SQ_PERFCOUNTER3_SELECT(perf_sel) \
+ ((perf_sel << SQ_PERFCOUNTER3_SELECT_PERF_SEL_SHIFT))
+
+#define SQ_PERFCOUNTER3_SELECT_GET_PERF_SEL(sq_perfcounter3_select) \
+ ((sq_perfcounter3_select & SQ_PERFCOUNTER3_SELECT_PERF_SEL_MASK) >> SQ_PERFCOUNTER3_SELECT_PERF_SEL_SHIFT)
+
+#define SQ_PERFCOUNTER3_SELECT_SET_PERF_SEL(sq_perfcounter3_select_reg, perf_sel) \
+ sq_perfcounter3_select_reg = (sq_perfcounter3_select_reg & ~SQ_PERFCOUNTER3_SELECT_PERF_SEL_MASK) | (perf_sel << SQ_PERFCOUNTER3_SELECT_PERF_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter3_select_t {
+ unsigned int perf_sel : SQ_PERFCOUNTER3_SELECT_PERF_SEL_SIZE;
+ unsigned int : 24;
+ } sq_perfcounter3_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter3_select_t {
+ unsigned int : 24;
+ unsigned int perf_sel : SQ_PERFCOUNTER3_SELECT_PERF_SEL_SIZE;
+ } sq_perfcounter3_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_perfcounter3_select_t f;
+} sq_perfcounter3_select_u;
+
+
+/*
+ * SQ_PERFCOUNTER0_LOW struct
+ */
+
+#define SQ_PERFCOUNTER0_LOW_PERF_COUNT_SIZE 32
+
+#define SQ_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT 0
+
+#define SQ_PERFCOUNTER0_LOW_PERF_COUNT_MASK 0xffffffff
+
+#define SQ_PERFCOUNTER0_LOW_MASK \
+ (SQ_PERFCOUNTER0_LOW_PERF_COUNT_MASK)
+
+#define SQ_PERFCOUNTER0_LOW(perf_count) \
+ ((perf_count << SQ_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT))
+
+#define SQ_PERFCOUNTER0_LOW_GET_PERF_COUNT(sq_perfcounter0_low) \
+ ((sq_perfcounter0_low & SQ_PERFCOUNTER0_LOW_PERF_COUNT_MASK) >> SQ_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT)
+
+#define SQ_PERFCOUNTER0_LOW_SET_PERF_COUNT(sq_perfcounter0_low_reg, perf_count) \
+ sq_perfcounter0_low_reg = (sq_perfcounter0_low_reg & ~SQ_PERFCOUNTER0_LOW_PERF_COUNT_MASK) | (perf_count << SQ_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter0_low_t {
+ unsigned int perf_count : SQ_PERFCOUNTER0_LOW_PERF_COUNT_SIZE;
+ } sq_perfcounter0_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter0_low_t {
+ unsigned int perf_count : SQ_PERFCOUNTER0_LOW_PERF_COUNT_SIZE;
+ } sq_perfcounter0_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_perfcounter0_low_t f;
+} sq_perfcounter0_low_u;
+
+
+/*
+ * SQ_PERFCOUNTER0_HI struct
+ */
+
+#define SQ_PERFCOUNTER0_HI_PERF_COUNT_SIZE 16
+
+#define SQ_PERFCOUNTER0_HI_PERF_COUNT_SHIFT 0
+
+#define SQ_PERFCOUNTER0_HI_PERF_COUNT_MASK 0x0000ffff
+
+#define SQ_PERFCOUNTER0_HI_MASK \
+ (SQ_PERFCOUNTER0_HI_PERF_COUNT_MASK)
+
+#define SQ_PERFCOUNTER0_HI(perf_count) \
+ ((perf_count << SQ_PERFCOUNTER0_HI_PERF_COUNT_SHIFT))
+
+#define SQ_PERFCOUNTER0_HI_GET_PERF_COUNT(sq_perfcounter0_hi) \
+ ((sq_perfcounter0_hi & SQ_PERFCOUNTER0_HI_PERF_COUNT_MASK) >> SQ_PERFCOUNTER0_HI_PERF_COUNT_SHIFT)
+
+#define SQ_PERFCOUNTER0_HI_SET_PERF_COUNT(sq_perfcounter0_hi_reg, perf_count) \
+ sq_perfcounter0_hi_reg = (sq_perfcounter0_hi_reg & ~SQ_PERFCOUNTER0_HI_PERF_COUNT_MASK) | (perf_count << SQ_PERFCOUNTER0_HI_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter0_hi_t {
+ unsigned int perf_count : SQ_PERFCOUNTER0_HI_PERF_COUNT_SIZE;
+ unsigned int : 16;
+ } sq_perfcounter0_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter0_hi_t {
+ unsigned int : 16;
+ unsigned int perf_count : SQ_PERFCOUNTER0_HI_PERF_COUNT_SIZE;
+ } sq_perfcounter0_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_perfcounter0_hi_t f;
+} sq_perfcounter0_hi_u;
+
+
+/*
+ * SQ_PERFCOUNTER1_LOW struct
+ */
+
+#define SQ_PERFCOUNTER1_LOW_PERF_COUNT_SIZE 32
+
+#define SQ_PERFCOUNTER1_LOW_PERF_COUNT_SHIFT 0
+
+#define SQ_PERFCOUNTER1_LOW_PERF_COUNT_MASK 0xffffffff
+
+#define SQ_PERFCOUNTER1_LOW_MASK \
+ (SQ_PERFCOUNTER1_LOW_PERF_COUNT_MASK)
+
+#define SQ_PERFCOUNTER1_LOW(perf_count) \
+ ((perf_count << SQ_PERFCOUNTER1_LOW_PERF_COUNT_SHIFT))
+
+#define SQ_PERFCOUNTER1_LOW_GET_PERF_COUNT(sq_perfcounter1_low) \
+ ((sq_perfcounter1_low & SQ_PERFCOUNTER1_LOW_PERF_COUNT_MASK) >> SQ_PERFCOUNTER1_LOW_PERF_COUNT_SHIFT)
+
+#define SQ_PERFCOUNTER1_LOW_SET_PERF_COUNT(sq_perfcounter1_low_reg, perf_count) \
+ sq_perfcounter1_low_reg = (sq_perfcounter1_low_reg & ~SQ_PERFCOUNTER1_LOW_PERF_COUNT_MASK) | (perf_count << SQ_PERFCOUNTER1_LOW_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter1_low_t {
+ unsigned int perf_count : SQ_PERFCOUNTER1_LOW_PERF_COUNT_SIZE;
+ } sq_perfcounter1_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter1_low_t {
+ unsigned int perf_count : SQ_PERFCOUNTER1_LOW_PERF_COUNT_SIZE;
+ } sq_perfcounter1_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_perfcounter1_low_t f;
+} sq_perfcounter1_low_u;
+
+
+/*
+ * SQ_PERFCOUNTER1_HI struct
+ */
+
+#define SQ_PERFCOUNTER1_HI_PERF_COUNT_SIZE 16
+
+#define SQ_PERFCOUNTER1_HI_PERF_COUNT_SHIFT 0
+
+#define SQ_PERFCOUNTER1_HI_PERF_COUNT_MASK 0x0000ffff
+
+#define SQ_PERFCOUNTER1_HI_MASK \
+ (SQ_PERFCOUNTER1_HI_PERF_COUNT_MASK)
+
+#define SQ_PERFCOUNTER1_HI(perf_count) \
+ ((perf_count << SQ_PERFCOUNTER1_HI_PERF_COUNT_SHIFT))
+
+#define SQ_PERFCOUNTER1_HI_GET_PERF_COUNT(sq_perfcounter1_hi) \
+ ((sq_perfcounter1_hi & SQ_PERFCOUNTER1_HI_PERF_COUNT_MASK) >> SQ_PERFCOUNTER1_HI_PERF_COUNT_SHIFT)
+
+#define SQ_PERFCOUNTER1_HI_SET_PERF_COUNT(sq_perfcounter1_hi_reg, perf_count) \
+ sq_perfcounter1_hi_reg = (sq_perfcounter1_hi_reg & ~SQ_PERFCOUNTER1_HI_PERF_COUNT_MASK) | (perf_count << SQ_PERFCOUNTER1_HI_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter1_hi_t {
+ unsigned int perf_count : SQ_PERFCOUNTER1_HI_PERF_COUNT_SIZE;
+ unsigned int : 16;
+ } sq_perfcounter1_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter1_hi_t {
+ unsigned int : 16;
+ unsigned int perf_count : SQ_PERFCOUNTER1_HI_PERF_COUNT_SIZE;
+ } sq_perfcounter1_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_perfcounter1_hi_t f;
+} sq_perfcounter1_hi_u;
+
+
+/*
+ * SQ_PERFCOUNTER2_LOW struct
+ */
+
+#define SQ_PERFCOUNTER2_LOW_PERF_COUNT_SIZE 32
+
+#define SQ_PERFCOUNTER2_LOW_PERF_COUNT_SHIFT 0
+
+#define SQ_PERFCOUNTER2_LOW_PERF_COUNT_MASK 0xffffffff
+
+#define SQ_PERFCOUNTER2_LOW_MASK \
+ (SQ_PERFCOUNTER2_LOW_PERF_COUNT_MASK)
+
+#define SQ_PERFCOUNTER2_LOW(perf_count) \
+ ((perf_count << SQ_PERFCOUNTER2_LOW_PERF_COUNT_SHIFT))
+
+#define SQ_PERFCOUNTER2_LOW_GET_PERF_COUNT(sq_perfcounter2_low) \
+ ((sq_perfcounter2_low & SQ_PERFCOUNTER2_LOW_PERF_COUNT_MASK) >> SQ_PERFCOUNTER2_LOW_PERF_COUNT_SHIFT)
+
+#define SQ_PERFCOUNTER2_LOW_SET_PERF_COUNT(sq_perfcounter2_low_reg, perf_count) \
+ sq_perfcounter2_low_reg = (sq_perfcounter2_low_reg & ~SQ_PERFCOUNTER2_LOW_PERF_COUNT_MASK) | (perf_count << SQ_PERFCOUNTER2_LOW_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter2_low_t {
+ unsigned int perf_count : SQ_PERFCOUNTER2_LOW_PERF_COUNT_SIZE;
+ } sq_perfcounter2_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter2_low_t {
+ unsigned int perf_count : SQ_PERFCOUNTER2_LOW_PERF_COUNT_SIZE;
+ } sq_perfcounter2_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_perfcounter2_low_t f;
+} sq_perfcounter2_low_u;
+
+
+/*
+ * SQ_PERFCOUNTER2_HI struct
+ */
+
+#define SQ_PERFCOUNTER2_HI_PERF_COUNT_SIZE 16
+
+#define SQ_PERFCOUNTER2_HI_PERF_COUNT_SHIFT 0
+
+#define SQ_PERFCOUNTER2_HI_PERF_COUNT_MASK 0x0000ffff
+
+#define SQ_PERFCOUNTER2_HI_MASK \
+ (SQ_PERFCOUNTER2_HI_PERF_COUNT_MASK)
+
+#define SQ_PERFCOUNTER2_HI(perf_count) \
+ ((perf_count << SQ_PERFCOUNTER2_HI_PERF_COUNT_SHIFT))
+
+#define SQ_PERFCOUNTER2_HI_GET_PERF_COUNT(sq_perfcounter2_hi) \
+ ((sq_perfcounter2_hi & SQ_PERFCOUNTER2_HI_PERF_COUNT_MASK) >> SQ_PERFCOUNTER2_HI_PERF_COUNT_SHIFT)
+
+#define SQ_PERFCOUNTER2_HI_SET_PERF_COUNT(sq_perfcounter2_hi_reg, perf_count) \
+ sq_perfcounter2_hi_reg = (sq_perfcounter2_hi_reg & ~SQ_PERFCOUNTER2_HI_PERF_COUNT_MASK) | (perf_count << SQ_PERFCOUNTER2_HI_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter2_hi_t {
+ unsigned int perf_count : SQ_PERFCOUNTER2_HI_PERF_COUNT_SIZE;
+ unsigned int : 16;
+ } sq_perfcounter2_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter2_hi_t {
+ unsigned int : 16;
+ unsigned int perf_count : SQ_PERFCOUNTER2_HI_PERF_COUNT_SIZE;
+ } sq_perfcounter2_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_perfcounter2_hi_t f;
+} sq_perfcounter2_hi_u;
+
+
+/*
+ * SQ_PERFCOUNTER3_LOW struct
+ */
+
+#define SQ_PERFCOUNTER3_LOW_PERF_COUNT_SIZE 32
+
+#define SQ_PERFCOUNTER3_LOW_PERF_COUNT_SHIFT 0
+
+#define SQ_PERFCOUNTER3_LOW_PERF_COUNT_MASK 0xffffffff
+
+#define SQ_PERFCOUNTER3_LOW_MASK \
+ (SQ_PERFCOUNTER3_LOW_PERF_COUNT_MASK)
+
+#define SQ_PERFCOUNTER3_LOW(perf_count) \
+ ((perf_count << SQ_PERFCOUNTER3_LOW_PERF_COUNT_SHIFT))
+
+#define SQ_PERFCOUNTER3_LOW_GET_PERF_COUNT(sq_perfcounter3_low) \
+ ((sq_perfcounter3_low & SQ_PERFCOUNTER3_LOW_PERF_COUNT_MASK) >> SQ_PERFCOUNTER3_LOW_PERF_COUNT_SHIFT)
+
+#define SQ_PERFCOUNTER3_LOW_SET_PERF_COUNT(sq_perfcounter3_low_reg, perf_count) \
+ sq_perfcounter3_low_reg = (sq_perfcounter3_low_reg & ~SQ_PERFCOUNTER3_LOW_PERF_COUNT_MASK) | (perf_count << SQ_PERFCOUNTER3_LOW_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter3_low_t {
+ unsigned int perf_count : SQ_PERFCOUNTER3_LOW_PERF_COUNT_SIZE;
+ } sq_perfcounter3_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter3_low_t {
+ unsigned int perf_count : SQ_PERFCOUNTER3_LOW_PERF_COUNT_SIZE;
+ } sq_perfcounter3_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_perfcounter3_low_t f;
+} sq_perfcounter3_low_u;
+
+
+/*
+ * SQ_PERFCOUNTER3_HI struct
+ */
+
+#define SQ_PERFCOUNTER3_HI_PERF_COUNT_SIZE 16
+
+#define SQ_PERFCOUNTER3_HI_PERF_COUNT_SHIFT 0
+
+#define SQ_PERFCOUNTER3_HI_PERF_COUNT_MASK 0x0000ffff
+
+#define SQ_PERFCOUNTER3_HI_MASK \
+ (SQ_PERFCOUNTER3_HI_PERF_COUNT_MASK)
+
+#define SQ_PERFCOUNTER3_HI(perf_count) \
+ ((perf_count << SQ_PERFCOUNTER3_HI_PERF_COUNT_SHIFT))
+
+#define SQ_PERFCOUNTER3_HI_GET_PERF_COUNT(sq_perfcounter3_hi) \
+ ((sq_perfcounter3_hi & SQ_PERFCOUNTER3_HI_PERF_COUNT_MASK) >> SQ_PERFCOUNTER3_HI_PERF_COUNT_SHIFT)
+
+#define SQ_PERFCOUNTER3_HI_SET_PERF_COUNT(sq_perfcounter3_hi_reg, perf_count) \
+ sq_perfcounter3_hi_reg = (sq_perfcounter3_hi_reg & ~SQ_PERFCOUNTER3_HI_PERF_COUNT_MASK) | (perf_count << SQ_PERFCOUNTER3_HI_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter3_hi_t {
+ unsigned int perf_count : SQ_PERFCOUNTER3_HI_PERF_COUNT_SIZE;
+ unsigned int : 16;
+ } sq_perfcounter3_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter3_hi_t {
+ unsigned int : 16;
+ unsigned int perf_count : SQ_PERFCOUNTER3_HI_PERF_COUNT_SIZE;
+ } sq_perfcounter3_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_perfcounter3_hi_t f;
+} sq_perfcounter3_hi_u;
+
+
+/*
+ * SX_PERFCOUNTER0_SELECT struct
+ */
+
+#define SX_PERFCOUNTER0_SELECT_PERF_SEL_SIZE 8
+
+#define SX_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT 0
+
+#define SX_PERFCOUNTER0_SELECT_PERF_SEL_MASK 0x000000ff
+
+#define SX_PERFCOUNTER0_SELECT_MASK \
+ (SX_PERFCOUNTER0_SELECT_PERF_SEL_MASK)
+
+#define SX_PERFCOUNTER0_SELECT(perf_sel) \
+ ((perf_sel << SX_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT))
+
+#define SX_PERFCOUNTER0_SELECT_GET_PERF_SEL(sx_perfcounter0_select) \
+ ((sx_perfcounter0_select & SX_PERFCOUNTER0_SELECT_PERF_SEL_MASK) >> SX_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT)
+
+#define SX_PERFCOUNTER0_SELECT_SET_PERF_SEL(sx_perfcounter0_select_reg, perf_sel) \
+ sx_perfcounter0_select_reg = (sx_perfcounter0_select_reg & ~SX_PERFCOUNTER0_SELECT_PERF_SEL_MASK) | (perf_sel << SX_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sx_perfcounter0_select_t {
+ unsigned int perf_sel : SX_PERFCOUNTER0_SELECT_PERF_SEL_SIZE;
+ unsigned int : 24;
+ } sx_perfcounter0_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sx_perfcounter0_select_t {
+ unsigned int : 24;
+ unsigned int perf_sel : SX_PERFCOUNTER0_SELECT_PERF_SEL_SIZE;
+ } sx_perfcounter0_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sx_perfcounter0_select_t f;
+} sx_perfcounter0_select_u;
+
+
+/*
+ * SX_PERFCOUNTER0_LOW struct
+ */
+
+#define SX_PERFCOUNTER0_LOW_PERF_COUNT_SIZE 32
+
+#define SX_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT 0
+
+#define SX_PERFCOUNTER0_LOW_PERF_COUNT_MASK 0xffffffff
+
+#define SX_PERFCOUNTER0_LOW_MASK \
+ (SX_PERFCOUNTER0_LOW_PERF_COUNT_MASK)
+
+#define SX_PERFCOUNTER0_LOW(perf_count) \
+ ((perf_count << SX_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT))
+
+#define SX_PERFCOUNTER0_LOW_GET_PERF_COUNT(sx_perfcounter0_low) \
+ ((sx_perfcounter0_low & SX_PERFCOUNTER0_LOW_PERF_COUNT_MASK) >> SX_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT)
+
+#define SX_PERFCOUNTER0_LOW_SET_PERF_COUNT(sx_perfcounter0_low_reg, perf_count) \
+ sx_perfcounter0_low_reg = (sx_perfcounter0_low_reg & ~SX_PERFCOUNTER0_LOW_PERF_COUNT_MASK) | (perf_count << SX_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sx_perfcounter0_low_t {
+ unsigned int perf_count : SX_PERFCOUNTER0_LOW_PERF_COUNT_SIZE;
+ } sx_perfcounter0_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sx_perfcounter0_low_t {
+ unsigned int perf_count : SX_PERFCOUNTER0_LOW_PERF_COUNT_SIZE;
+ } sx_perfcounter0_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sx_perfcounter0_low_t f;
+} sx_perfcounter0_low_u;
+
+
+/*
+ * SX_PERFCOUNTER0_HI struct
+ */
+
+#define SX_PERFCOUNTER0_HI_PERF_COUNT_SIZE 16
+
+#define SX_PERFCOUNTER0_HI_PERF_COUNT_SHIFT 0
+
+#define SX_PERFCOUNTER0_HI_PERF_COUNT_MASK 0x0000ffff
+
+#define SX_PERFCOUNTER0_HI_MASK \
+ (SX_PERFCOUNTER0_HI_PERF_COUNT_MASK)
+
+#define SX_PERFCOUNTER0_HI(perf_count) \
+ ((perf_count << SX_PERFCOUNTER0_HI_PERF_COUNT_SHIFT))
+
+#define SX_PERFCOUNTER0_HI_GET_PERF_COUNT(sx_perfcounter0_hi) \
+ ((sx_perfcounter0_hi & SX_PERFCOUNTER0_HI_PERF_COUNT_MASK) >> SX_PERFCOUNTER0_HI_PERF_COUNT_SHIFT)
+
+#define SX_PERFCOUNTER0_HI_SET_PERF_COUNT(sx_perfcounter0_hi_reg, perf_count) \
+ sx_perfcounter0_hi_reg = (sx_perfcounter0_hi_reg & ~SX_PERFCOUNTER0_HI_PERF_COUNT_MASK) | (perf_count << SX_PERFCOUNTER0_HI_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sx_perfcounter0_hi_t {
+ unsigned int perf_count : SX_PERFCOUNTER0_HI_PERF_COUNT_SIZE;
+ unsigned int : 16;
+ } sx_perfcounter0_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sx_perfcounter0_hi_t {
+ unsigned int : 16;
+ unsigned int perf_count : SX_PERFCOUNTER0_HI_PERF_COUNT_SIZE;
+ } sx_perfcounter0_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sx_perfcounter0_hi_t f;
+} sx_perfcounter0_hi_u;
+
+
+/*
+ * SQ_INSTRUCTION_ALU_0 struct
+ */
+
+#define SQ_INSTRUCTION_ALU_0_VECTOR_RESULT_SIZE 6
+#define SQ_INSTRUCTION_ALU_0_VECTOR_DST_REL_SIZE 1
+#define SQ_INSTRUCTION_ALU_0_LOW_PRECISION_16B_FP_SIZE 1
+#define SQ_INSTRUCTION_ALU_0_SCALAR_RESULT_SIZE 6
+#define SQ_INSTRUCTION_ALU_0_SCALAR_DST_REL_SIZE 1
+#define SQ_INSTRUCTION_ALU_0_EXPORT_DATA_SIZE 1
+#define SQ_INSTRUCTION_ALU_0_VECTOR_WRT_MSK_SIZE 4
+#define SQ_INSTRUCTION_ALU_0_SCALAR_WRT_MSK_SIZE 4
+#define SQ_INSTRUCTION_ALU_0_VECTOR_CLAMP_SIZE 1
+#define SQ_INSTRUCTION_ALU_0_SCALAR_CLAMP_SIZE 1
+#define SQ_INSTRUCTION_ALU_0_SCALAR_OPCODE_SIZE 6
+
+#define SQ_INSTRUCTION_ALU_0_VECTOR_RESULT_SHIFT 0
+#define SQ_INSTRUCTION_ALU_0_VECTOR_DST_REL_SHIFT 6
+#define SQ_INSTRUCTION_ALU_0_LOW_PRECISION_16B_FP_SHIFT 7
+#define SQ_INSTRUCTION_ALU_0_SCALAR_RESULT_SHIFT 8
+#define SQ_INSTRUCTION_ALU_0_SCALAR_DST_REL_SHIFT 14
+#define SQ_INSTRUCTION_ALU_0_EXPORT_DATA_SHIFT 15
+#define SQ_INSTRUCTION_ALU_0_VECTOR_WRT_MSK_SHIFT 16
+#define SQ_INSTRUCTION_ALU_0_SCALAR_WRT_MSK_SHIFT 20
+#define SQ_INSTRUCTION_ALU_0_VECTOR_CLAMP_SHIFT 24
+#define SQ_INSTRUCTION_ALU_0_SCALAR_CLAMP_SHIFT 25
+#define SQ_INSTRUCTION_ALU_0_SCALAR_OPCODE_SHIFT 26
+
+#define SQ_INSTRUCTION_ALU_0_VECTOR_RESULT_MASK 0x0000003f
+#define SQ_INSTRUCTION_ALU_0_VECTOR_DST_REL_MASK 0x00000040
+#define SQ_INSTRUCTION_ALU_0_LOW_PRECISION_16B_FP_MASK 0x00000080
+#define SQ_INSTRUCTION_ALU_0_SCALAR_RESULT_MASK 0x00003f00
+#define SQ_INSTRUCTION_ALU_0_SCALAR_DST_REL_MASK 0x00004000
+#define SQ_INSTRUCTION_ALU_0_EXPORT_DATA_MASK 0x00008000
+#define SQ_INSTRUCTION_ALU_0_VECTOR_WRT_MSK_MASK 0x000f0000
+#define SQ_INSTRUCTION_ALU_0_SCALAR_WRT_MSK_MASK 0x00f00000
+#define SQ_INSTRUCTION_ALU_0_VECTOR_CLAMP_MASK 0x01000000
+#define SQ_INSTRUCTION_ALU_0_SCALAR_CLAMP_MASK 0x02000000
+#define SQ_INSTRUCTION_ALU_0_SCALAR_OPCODE_MASK 0xfc000000
+
+#define SQ_INSTRUCTION_ALU_0_MASK \
+ (SQ_INSTRUCTION_ALU_0_VECTOR_RESULT_MASK | \
+ SQ_INSTRUCTION_ALU_0_VECTOR_DST_REL_MASK | \
+ SQ_INSTRUCTION_ALU_0_LOW_PRECISION_16B_FP_MASK | \
+ SQ_INSTRUCTION_ALU_0_SCALAR_RESULT_MASK | \
+ SQ_INSTRUCTION_ALU_0_SCALAR_DST_REL_MASK | \
+ SQ_INSTRUCTION_ALU_0_EXPORT_DATA_MASK | \
+ SQ_INSTRUCTION_ALU_0_VECTOR_WRT_MSK_MASK | \
+ SQ_INSTRUCTION_ALU_0_SCALAR_WRT_MSK_MASK | \
+ SQ_INSTRUCTION_ALU_0_VECTOR_CLAMP_MASK | \
+ SQ_INSTRUCTION_ALU_0_SCALAR_CLAMP_MASK | \
+ SQ_INSTRUCTION_ALU_0_SCALAR_OPCODE_MASK)
+
+#define SQ_INSTRUCTION_ALU_0(vector_result, vector_dst_rel, low_precision_16b_fp, scalar_result, scalar_dst_rel, export_data, vector_wrt_msk, scalar_wrt_msk, vector_clamp, scalar_clamp, scalar_opcode) \
+ ((vector_result << SQ_INSTRUCTION_ALU_0_VECTOR_RESULT_SHIFT) | \
+ (vector_dst_rel << SQ_INSTRUCTION_ALU_0_VECTOR_DST_REL_SHIFT) | \
+ (low_precision_16b_fp << SQ_INSTRUCTION_ALU_0_LOW_PRECISION_16B_FP_SHIFT) | \
+ (scalar_result << SQ_INSTRUCTION_ALU_0_SCALAR_RESULT_SHIFT) | \
+ (scalar_dst_rel << SQ_INSTRUCTION_ALU_0_SCALAR_DST_REL_SHIFT) | \
+ (export_data << SQ_INSTRUCTION_ALU_0_EXPORT_DATA_SHIFT) | \
+ (vector_wrt_msk << SQ_INSTRUCTION_ALU_0_VECTOR_WRT_MSK_SHIFT) | \
+ (scalar_wrt_msk << SQ_INSTRUCTION_ALU_0_SCALAR_WRT_MSK_SHIFT) | \
+ (vector_clamp << SQ_INSTRUCTION_ALU_0_VECTOR_CLAMP_SHIFT) | \
+ (scalar_clamp << SQ_INSTRUCTION_ALU_0_SCALAR_CLAMP_SHIFT) | \
+ (scalar_opcode << SQ_INSTRUCTION_ALU_0_SCALAR_OPCODE_SHIFT))
+
+#define SQ_INSTRUCTION_ALU_0_GET_VECTOR_RESULT(sq_instruction_alu_0) \
+ ((sq_instruction_alu_0 & SQ_INSTRUCTION_ALU_0_VECTOR_RESULT_MASK) >> SQ_INSTRUCTION_ALU_0_VECTOR_RESULT_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_GET_VECTOR_DST_REL(sq_instruction_alu_0) \
+ ((sq_instruction_alu_0 & SQ_INSTRUCTION_ALU_0_VECTOR_DST_REL_MASK) >> SQ_INSTRUCTION_ALU_0_VECTOR_DST_REL_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_GET_LOW_PRECISION_16B_FP(sq_instruction_alu_0) \
+ ((sq_instruction_alu_0 & SQ_INSTRUCTION_ALU_0_LOW_PRECISION_16B_FP_MASK) >> SQ_INSTRUCTION_ALU_0_LOW_PRECISION_16B_FP_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_GET_SCALAR_RESULT(sq_instruction_alu_0) \
+ ((sq_instruction_alu_0 & SQ_INSTRUCTION_ALU_0_SCALAR_RESULT_MASK) >> SQ_INSTRUCTION_ALU_0_SCALAR_RESULT_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_GET_SCALAR_DST_REL(sq_instruction_alu_0) \
+ ((sq_instruction_alu_0 & SQ_INSTRUCTION_ALU_0_SCALAR_DST_REL_MASK) >> SQ_INSTRUCTION_ALU_0_SCALAR_DST_REL_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_GET_EXPORT_DATA(sq_instruction_alu_0) \
+ ((sq_instruction_alu_0 & SQ_INSTRUCTION_ALU_0_EXPORT_DATA_MASK) >> SQ_INSTRUCTION_ALU_0_EXPORT_DATA_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_GET_VECTOR_WRT_MSK(sq_instruction_alu_0) \
+ ((sq_instruction_alu_0 & SQ_INSTRUCTION_ALU_0_VECTOR_WRT_MSK_MASK) >> SQ_INSTRUCTION_ALU_0_VECTOR_WRT_MSK_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_GET_SCALAR_WRT_MSK(sq_instruction_alu_0) \
+ ((sq_instruction_alu_0 & SQ_INSTRUCTION_ALU_0_SCALAR_WRT_MSK_MASK) >> SQ_INSTRUCTION_ALU_0_SCALAR_WRT_MSK_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_GET_VECTOR_CLAMP(sq_instruction_alu_0) \
+ ((sq_instruction_alu_0 & SQ_INSTRUCTION_ALU_0_VECTOR_CLAMP_MASK) >> SQ_INSTRUCTION_ALU_0_VECTOR_CLAMP_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_GET_SCALAR_CLAMP(sq_instruction_alu_0) \
+ ((sq_instruction_alu_0 & SQ_INSTRUCTION_ALU_0_SCALAR_CLAMP_MASK) >> SQ_INSTRUCTION_ALU_0_SCALAR_CLAMP_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_GET_SCALAR_OPCODE(sq_instruction_alu_0) \
+ ((sq_instruction_alu_0 & SQ_INSTRUCTION_ALU_0_SCALAR_OPCODE_MASK) >> SQ_INSTRUCTION_ALU_0_SCALAR_OPCODE_SHIFT)
+
+#define SQ_INSTRUCTION_ALU_0_SET_VECTOR_RESULT(sq_instruction_alu_0_reg, vector_result) \
+ sq_instruction_alu_0_reg = (sq_instruction_alu_0_reg & ~SQ_INSTRUCTION_ALU_0_VECTOR_RESULT_MASK) | (vector_result << SQ_INSTRUCTION_ALU_0_VECTOR_RESULT_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_SET_VECTOR_DST_REL(sq_instruction_alu_0_reg, vector_dst_rel) \
+ sq_instruction_alu_0_reg = (sq_instruction_alu_0_reg & ~SQ_INSTRUCTION_ALU_0_VECTOR_DST_REL_MASK) | (vector_dst_rel << SQ_INSTRUCTION_ALU_0_VECTOR_DST_REL_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_SET_LOW_PRECISION_16B_FP(sq_instruction_alu_0_reg, low_precision_16b_fp) \
+ sq_instruction_alu_0_reg = (sq_instruction_alu_0_reg & ~SQ_INSTRUCTION_ALU_0_LOW_PRECISION_16B_FP_MASK) | (low_precision_16b_fp << SQ_INSTRUCTION_ALU_0_LOW_PRECISION_16B_FP_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_SET_SCALAR_RESULT(sq_instruction_alu_0_reg, scalar_result) \
+ sq_instruction_alu_0_reg = (sq_instruction_alu_0_reg & ~SQ_INSTRUCTION_ALU_0_SCALAR_RESULT_MASK) | (scalar_result << SQ_INSTRUCTION_ALU_0_SCALAR_RESULT_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_SET_SCALAR_DST_REL(sq_instruction_alu_0_reg, scalar_dst_rel) \
+ sq_instruction_alu_0_reg = (sq_instruction_alu_0_reg & ~SQ_INSTRUCTION_ALU_0_SCALAR_DST_REL_MASK) | (scalar_dst_rel << SQ_INSTRUCTION_ALU_0_SCALAR_DST_REL_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_SET_EXPORT_DATA(sq_instruction_alu_0_reg, export_data) \
+ sq_instruction_alu_0_reg = (sq_instruction_alu_0_reg & ~SQ_INSTRUCTION_ALU_0_EXPORT_DATA_MASK) | (export_data << SQ_INSTRUCTION_ALU_0_EXPORT_DATA_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_SET_VECTOR_WRT_MSK(sq_instruction_alu_0_reg, vector_wrt_msk) \
+ sq_instruction_alu_0_reg = (sq_instruction_alu_0_reg & ~SQ_INSTRUCTION_ALU_0_VECTOR_WRT_MSK_MASK) | (vector_wrt_msk << SQ_INSTRUCTION_ALU_0_VECTOR_WRT_MSK_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_SET_SCALAR_WRT_MSK(sq_instruction_alu_0_reg, scalar_wrt_msk) \
+ sq_instruction_alu_0_reg = (sq_instruction_alu_0_reg & ~SQ_INSTRUCTION_ALU_0_SCALAR_WRT_MSK_MASK) | (scalar_wrt_msk << SQ_INSTRUCTION_ALU_0_SCALAR_WRT_MSK_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_SET_VECTOR_CLAMP(sq_instruction_alu_0_reg, vector_clamp) \
+ sq_instruction_alu_0_reg = (sq_instruction_alu_0_reg & ~SQ_INSTRUCTION_ALU_0_VECTOR_CLAMP_MASK) | (vector_clamp << SQ_INSTRUCTION_ALU_0_VECTOR_CLAMP_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_SET_SCALAR_CLAMP(sq_instruction_alu_0_reg, scalar_clamp) \
+ sq_instruction_alu_0_reg = (sq_instruction_alu_0_reg & ~SQ_INSTRUCTION_ALU_0_SCALAR_CLAMP_MASK) | (scalar_clamp << SQ_INSTRUCTION_ALU_0_SCALAR_CLAMP_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_SET_SCALAR_OPCODE(sq_instruction_alu_0_reg, scalar_opcode) \
+ sq_instruction_alu_0_reg = (sq_instruction_alu_0_reg & ~SQ_INSTRUCTION_ALU_0_SCALAR_OPCODE_MASK) | (scalar_opcode << SQ_INSTRUCTION_ALU_0_SCALAR_OPCODE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_alu_0_t {
+ unsigned int vector_result : SQ_INSTRUCTION_ALU_0_VECTOR_RESULT_SIZE;
+ unsigned int vector_dst_rel : SQ_INSTRUCTION_ALU_0_VECTOR_DST_REL_SIZE;
+ unsigned int low_precision_16b_fp : SQ_INSTRUCTION_ALU_0_LOW_PRECISION_16B_FP_SIZE;
+ unsigned int scalar_result : SQ_INSTRUCTION_ALU_0_SCALAR_RESULT_SIZE;
+ unsigned int scalar_dst_rel : SQ_INSTRUCTION_ALU_0_SCALAR_DST_REL_SIZE;
+ unsigned int export_data : SQ_INSTRUCTION_ALU_0_EXPORT_DATA_SIZE;
+ unsigned int vector_wrt_msk : SQ_INSTRUCTION_ALU_0_VECTOR_WRT_MSK_SIZE;
+ unsigned int scalar_wrt_msk : SQ_INSTRUCTION_ALU_0_SCALAR_WRT_MSK_SIZE;
+ unsigned int vector_clamp : SQ_INSTRUCTION_ALU_0_VECTOR_CLAMP_SIZE;
+ unsigned int scalar_clamp : SQ_INSTRUCTION_ALU_0_SCALAR_CLAMP_SIZE;
+ unsigned int scalar_opcode : SQ_INSTRUCTION_ALU_0_SCALAR_OPCODE_SIZE;
+ } sq_instruction_alu_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_alu_0_t {
+ unsigned int scalar_opcode : SQ_INSTRUCTION_ALU_0_SCALAR_OPCODE_SIZE;
+ unsigned int scalar_clamp : SQ_INSTRUCTION_ALU_0_SCALAR_CLAMP_SIZE;
+ unsigned int vector_clamp : SQ_INSTRUCTION_ALU_0_VECTOR_CLAMP_SIZE;
+ unsigned int scalar_wrt_msk : SQ_INSTRUCTION_ALU_0_SCALAR_WRT_MSK_SIZE;
+ unsigned int vector_wrt_msk : SQ_INSTRUCTION_ALU_0_VECTOR_WRT_MSK_SIZE;
+ unsigned int export_data : SQ_INSTRUCTION_ALU_0_EXPORT_DATA_SIZE;
+ unsigned int scalar_dst_rel : SQ_INSTRUCTION_ALU_0_SCALAR_DST_REL_SIZE;
+ unsigned int scalar_result : SQ_INSTRUCTION_ALU_0_SCALAR_RESULT_SIZE;
+ unsigned int low_precision_16b_fp : SQ_INSTRUCTION_ALU_0_LOW_PRECISION_16B_FP_SIZE;
+ unsigned int vector_dst_rel : SQ_INSTRUCTION_ALU_0_VECTOR_DST_REL_SIZE;
+ unsigned int vector_result : SQ_INSTRUCTION_ALU_0_VECTOR_RESULT_SIZE;
+ } sq_instruction_alu_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_alu_0_t f;
+} sq_instruction_alu_0_u;
+
+
+/*
+ * SQ_INSTRUCTION_ALU_1 struct
+ */
+
+#define SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_R_SIZE 2
+#define SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_G_SIZE 2
+#define SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_B_SIZE 2
+#define SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_A_SIZE 2
+#define SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_R_SIZE 2
+#define SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_G_SIZE 2
+#define SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_B_SIZE 2
+#define SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_A_SIZE 2
+#define SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_R_SIZE 2
+#define SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_G_SIZE 2
+#define SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_B_SIZE 2
+#define SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_A_SIZE 2
+#define SQ_INSTRUCTION_ALU_1_SRC_C_ARG_MOD_SIZE 1
+#define SQ_INSTRUCTION_ALU_1_SRC_B_ARG_MOD_SIZE 1
+#define SQ_INSTRUCTION_ALU_1_SRC_A_ARG_MOD_SIZE 1
+#define SQ_INSTRUCTION_ALU_1_PRED_SELECT_SIZE 2
+#define SQ_INSTRUCTION_ALU_1_RELATIVE_ADDR_SIZE 1
+#define SQ_INSTRUCTION_ALU_1_CONST_1_REL_ABS_SIZE 1
+#define SQ_INSTRUCTION_ALU_1_CONST_0_REL_ABS_SIZE 1
+
+#define SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_R_SHIFT 0
+#define SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_G_SHIFT 2
+#define SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_B_SHIFT 4
+#define SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_A_SHIFT 6
+#define SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_R_SHIFT 8
+#define SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_G_SHIFT 10
+#define SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_B_SHIFT 12
+#define SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_A_SHIFT 14
+#define SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_R_SHIFT 16
+#define SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_G_SHIFT 18
+#define SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_B_SHIFT 20
+#define SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_A_SHIFT 22
+#define SQ_INSTRUCTION_ALU_1_SRC_C_ARG_MOD_SHIFT 24
+#define SQ_INSTRUCTION_ALU_1_SRC_B_ARG_MOD_SHIFT 25
+#define SQ_INSTRUCTION_ALU_1_SRC_A_ARG_MOD_SHIFT 26
+#define SQ_INSTRUCTION_ALU_1_PRED_SELECT_SHIFT 27
+#define SQ_INSTRUCTION_ALU_1_RELATIVE_ADDR_SHIFT 29
+#define SQ_INSTRUCTION_ALU_1_CONST_1_REL_ABS_SHIFT 30
+#define SQ_INSTRUCTION_ALU_1_CONST_0_REL_ABS_SHIFT 31
+
+#define SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_R_MASK 0x00000003
+#define SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_G_MASK 0x0000000c
+#define SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_B_MASK 0x00000030
+#define SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_A_MASK 0x000000c0
+#define SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_R_MASK 0x00000300
+#define SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_G_MASK 0x00000c00
+#define SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_B_MASK 0x00003000
+#define SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_A_MASK 0x0000c000
+#define SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_R_MASK 0x00030000
+#define SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_G_MASK 0x000c0000
+#define SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_B_MASK 0x00300000
+#define SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_A_MASK 0x00c00000
+#define SQ_INSTRUCTION_ALU_1_SRC_C_ARG_MOD_MASK 0x01000000
+#define SQ_INSTRUCTION_ALU_1_SRC_B_ARG_MOD_MASK 0x02000000
+#define SQ_INSTRUCTION_ALU_1_SRC_A_ARG_MOD_MASK 0x04000000
+#define SQ_INSTRUCTION_ALU_1_PRED_SELECT_MASK 0x18000000
+#define SQ_INSTRUCTION_ALU_1_RELATIVE_ADDR_MASK 0x20000000
+#define SQ_INSTRUCTION_ALU_1_CONST_1_REL_ABS_MASK 0x40000000
+#define SQ_INSTRUCTION_ALU_1_CONST_0_REL_ABS_MASK 0x80000000
+
+#define SQ_INSTRUCTION_ALU_1_MASK \
+ (SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_R_MASK | \
+ SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_G_MASK | \
+ SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_B_MASK | \
+ SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_A_MASK | \
+ SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_R_MASK | \
+ SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_G_MASK | \
+ SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_B_MASK | \
+ SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_A_MASK | \
+ SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_R_MASK | \
+ SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_G_MASK | \
+ SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_B_MASK | \
+ SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_A_MASK | \
+ SQ_INSTRUCTION_ALU_1_SRC_C_ARG_MOD_MASK | \
+ SQ_INSTRUCTION_ALU_1_SRC_B_ARG_MOD_MASK | \
+ SQ_INSTRUCTION_ALU_1_SRC_A_ARG_MOD_MASK | \
+ SQ_INSTRUCTION_ALU_1_PRED_SELECT_MASK | \
+ SQ_INSTRUCTION_ALU_1_RELATIVE_ADDR_MASK | \
+ SQ_INSTRUCTION_ALU_1_CONST_1_REL_ABS_MASK | \
+ SQ_INSTRUCTION_ALU_1_CONST_0_REL_ABS_MASK)
+
+#define SQ_INSTRUCTION_ALU_1(src_c_swizzle_r, src_c_swizzle_g, src_c_swizzle_b, src_c_swizzle_a, src_b_swizzle_r, src_b_swizzle_g, src_b_swizzle_b, src_b_swizzle_a, src_a_swizzle_r, src_a_swizzle_g, src_a_swizzle_b, src_a_swizzle_a, src_c_arg_mod, src_b_arg_mod, src_a_arg_mod, pred_select, relative_addr, const_1_rel_abs, const_0_rel_abs) \
+ ((src_c_swizzle_r << SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_R_SHIFT) | \
+ (src_c_swizzle_g << SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_G_SHIFT) | \
+ (src_c_swizzle_b << SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_B_SHIFT) | \
+ (src_c_swizzle_a << SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_A_SHIFT) | \
+ (src_b_swizzle_r << SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_R_SHIFT) | \
+ (src_b_swizzle_g << SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_G_SHIFT) | \
+ (src_b_swizzle_b << SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_B_SHIFT) | \
+ (src_b_swizzle_a << SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_A_SHIFT) | \
+ (src_a_swizzle_r << SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_R_SHIFT) | \
+ (src_a_swizzle_g << SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_G_SHIFT) | \
+ (src_a_swizzle_b << SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_B_SHIFT) | \
+ (src_a_swizzle_a << SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_A_SHIFT) | \
+ (src_c_arg_mod << SQ_INSTRUCTION_ALU_1_SRC_C_ARG_MOD_SHIFT) | \
+ (src_b_arg_mod << SQ_INSTRUCTION_ALU_1_SRC_B_ARG_MOD_SHIFT) | \
+ (src_a_arg_mod << SQ_INSTRUCTION_ALU_1_SRC_A_ARG_MOD_SHIFT) | \
+ (pred_select << SQ_INSTRUCTION_ALU_1_PRED_SELECT_SHIFT) | \
+ (relative_addr << SQ_INSTRUCTION_ALU_1_RELATIVE_ADDR_SHIFT) | \
+ (const_1_rel_abs << SQ_INSTRUCTION_ALU_1_CONST_1_REL_ABS_SHIFT) | \
+ (const_0_rel_abs << SQ_INSTRUCTION_ALU_1_CONST_0_REL_ABS_SHIFT))
+
+#define SQ_INSTRUCTION_ALU_1_GET_SRC_C_SWIZZLE_R(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_R_MASK) >> SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_R_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_GET_SRC_C_SWIZZLE_G(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_G_MASK) >> SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_G_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_GET_SRC_C_SWIZZLE_B(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_B_MASK) >> SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_B_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_GET_SRC_C_SWIZZLE_A(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_A_MASK) >> SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_A_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_GET_SRC_B_SWIZZLE_R(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_R_MASK) >> SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_R_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_GET_SRC_B_SWIZZLE_G(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_G_MASK) >> SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_G_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_GET_SRC_B_SWIZZLE_B(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_B_MASK) >> SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_B_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_GET_SRC_B_SWIZZLE_A(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_A_MASK) >> SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_A_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_GET_SRC_A_SWIZZLE_R(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_R_MASK) >> SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_R_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_GET_SRC_A_SWIZZLE_G(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_G_MASK) >> SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_G_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_GET_SRC_A_SWIZZLE_B(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_B_MASK) >> SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_B_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_GET_SRC_A_SWIZZLE_A(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_A_MASK) >> SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_A_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_GET_SRC_C_ARG_MOD(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_SRC_C_ARG_MOD_MASK) >> SQ_INSTRUCTION_ALU_1_SRC_C_ARG_MOD_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_GET_SRC_B_ARG_MOD(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_SRC_B_ARG_MOD_MASK) >> SQ_INSTRUCTION_ALU_1_SRC_B_ARG_MOD_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_GET_SRC_A_ARG_MOD(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_SRC_A_ARG_MOD_MASK) >> SQ_INSTRUCTION_ALU_1_SRC_A_ARG_MOD_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_GET_PRED_SELECT(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_PRED_SELECT_MASK) >> SQ_INSTRUCTION_ALU_1_PRED_SELECT_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_GET_RELATIVE_ADDR(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_RELATIVE_ADDR_MASK) >> SQ_INSTRUCTION_ALU_1_RELATIVE_ADDR_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_GET_CONST_1_REL_ABS(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_CONST_1_REL_ABS_MASK) >> SQ_INSTRUCTION_ALU_1_CONST_1_REL_ABS_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_GET_CONST_0_REL_ABS(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_CONST_0_REL_ABS_MASK) >> SQ_INSTRUCTION_ALU_1_CONST_0_REL_ABS_SHIFT)
+
+#define SQ_INSTRUCTION_ALU_1_SET_SRC_C_SWIZZLE_R(sq_instruction_alu_1_reg, src_c_swizzle_r) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_R_MASK) | (src_c_swizzle_r << SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_R_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_SET_SRC_C_SWIZZLE_G(sq_instruction_alu_1_reg, src_c_swizzle_g) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_G_MASK) | (src_c_swizzle_g << SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_G_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_SET_SRC_C_SWIZZLE_B(sq_instruction_alu_1_reg, src_c_swizzle_b) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_B_MASK) | (src_c_swizzle_b << SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_B_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_SET_SRC_C_SWIZZLE_A(sq_instruction_alu_1_reg, src_c_swizzle_a) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_A_MASK) | (src_c_swizzle_a << SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_A_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_SET_SRC_B_SWIZZLE_R(sq_instruction_alu_1_reg, src_b_swizzle_r) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_R_MASK) | (src_b_swizzle_r << SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_R_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_SET_SRC_B_SWIZZLE_G(sq_instruction_alu_1_reg, src_b_swizzle_g) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_G_MASK) | (src_b_swizzle_g << SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_G_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_SET_SRC_B_SWIZZLE_B(sq_instruction_alu_1_reg, src_b_swizzle_b) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_B_MASK) | (src_b_swizzle_b << SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_B_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_SET_SRC_B_SWIZZLE_A(sq_instruction_alu_1_reg, src_b_swizzle_a) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_A_MASK) | (src_b_swizzle_a << SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_A_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_SET_SRC_A_SWIZZLE_R(sq_instruction_alu_1_reg, src_a_swizzle_r) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_R_MASK) | (src_a_swizzle_r << SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_R_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_SET_SRC_A_SWIZZLE_G(sq_instruction_alu_1_reg, src_a_swizzle_g) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_G_MASK) | (src_a_swizzle_g << SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_G_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_SET_SRC_A_SWIZZLE_B(sq_instruction_alu_1_reg, src_a_swizzle_b) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_B_MASK) | (src_a_swizzle_b << SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_B_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_SET_SRC_A_SWIZZLE_A(sq_instruction_alu_1_reg, src_a_swizzle_a) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_A_MASK) | (src_a_swizzle_a << SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_A_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_SET_SRC_C_ARG_MOD(sq_instruction_alu_1_reg, src_c_arg_mod) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_SRC_C_ARG_MOD_MASK) | (src_c_arg_mod << SQ_INSTRUCTION_ALU_1_SRC_C_ARG_MOD_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_SET_SRC_B_ARG_MOD(sq_instruction_alu_1_reg, src_b_arg_mod) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_SRC_B_ARG_MOD_MASK) | (src_b_arg_mod << SQ_INSTRUCTION_ALU_1_SRC_B_ARG_MOD_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_SET_SRC_A_ARG_MOD(sq_instruction_alu_1_reg, src_a_arg_mod) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_SRC_A_ARG_MOD_MASK) | (src_a_arg_mod << SQ_INSTRUCTION_ALU_1_SRC_A_ARG_MOD_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_SET_PRED_SELECT(sq_instruction_alu_1_reg, pred_select) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_PRED_SELECT_MASK) | (pred_select << SQ_INSTRUCTION_ALU_1_PRED_SELECT_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_SET_RELATIVE_ADDR(sq_instruction_alu_1_reg, relative_addr) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_RELATIVE_ADDR_MASK) | (relative_addr << SQ_INSTRUCTION_ALU_1_RELATIVE_ADDR_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_SET_CONST_1_REL_ABS(sq_instruction_alu_1_reg, const_1_rel_abs) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_CONST_1_REL_ABS_MASK) | (const_1_rel_abs << SQ_INSTRUCTION_ALU_1_CONST_1_REL_ABS_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_SET_CONST_0_REL_ABS(sq_instruction_alu_1_reg, const_0_rel_abs) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_CONST_0_REL_ABS_MASK) | (const_0_rel_abs << SQ_INSTRUCTION_ALU_1_CONST_0_REL_ABS_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_alu_1_t {
+ unsigned int src_c_swizzle_r : SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_R_SIZE;
+ unsigned int src_c_swizzle_g : SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_G_SIZE;
+ unsigned int src_c_swizzle_b : SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_B_SIZE;
+ unsigned int src_c_swizzle_a : SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_A_SIZE;
+ unsigned int src_b_swizzle_r : SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_R_SIZE;
+ unsigned int src_b_swizzle_g : SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_G_SIZE;
+ unsigned int src_b_swizzle_b : SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_B_SIZE;
+ unsigned int src_b_swizzle_a : SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_A_SIZE;
+ unsigned int src_a_swizzle_r : SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_R_SIZE;
+ unsigned int src_a_swizzle_g : SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_G_SIZE;
+ unsigned int src_a_swizzle_b : SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_B_SIZE;
+ unsigned int src_a_swizzle_a : SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_A_SIZE;
+ unsigned int src_c_arg_mod : SQ_INSTRUCTION_ALU_1_SRC_C_ARG_MOD_SIZE;
+ unsigned int src_b_arg_mod : SQ_INSTRUCTION_ALU_1_SRC_B_ARG_MOD_SIZE;
+ unsigned int src_a_arg_mod : SQ_INSTRUCTION_ALU_1_SRC_A_ARG_MOD_SIZE;
+ unsigned int pred_select : SQ_INSTRUCTION_ALU_1_PRED_SELECT_SIZE;
+ unsigned int relative_addr : SQ_INSTRUCTION_ALU_1_RELATIVE_ADDR_SIZE;
+ unsigned int const_1_rel_abs : SQ_INSTRUCTION_ALU_1_CONST_1_REL_ABS_SIZE;
+ unsigned int const_0_rel_abs : SQ_INSTRUCTION_ALU_1_CONST_0_REL_ABS_SIZE;
+ } sq_instruction_alu_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_alu_1_t {
+ unsigned int const_0_rel_abs : SQ_INSTRUCTION_ALU_1_CONST_0_REL_ABS_SIZE;
+ unsigned int const_1_rel_abs : SQ_INSTRUCTION_ALU_1_CONST_1_REL_ABS_SIZE;
+ unsigned int relative_addr : SQ_INSTRUCTION_ALU_1_RELATIVE_ADDR_SIZE;
+ unsigned int pred_select : SQ_INSTRUCTION_ALU_1_PRED_SELECT_SIZE;
+ unsigned int src_a_arg_mod : SQ_INSTRUCTION_ALU_1_SRC_A_ARG_MOD_SIZE;
+ unsigned int src_b_arg_mod : SQ_INSTRUCTION_ALU_1_SRC_B_ARG_MOD_SIZE;
+ unsigned int src_c_arg_mod : SQ_INSTRUCTION_ALU_1_SRC_C_ARG_MOD_SIZE;
+ unsigned int src_a_swizzle_a : SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_A_SIZE;
+ unsigned int src_a_swizzle_b : SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_B_SIZE;
+ unsigned int src_a_swizzle_g : SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_G_SIZE;
+ unsigned int src_a_swizzle_r : SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_R_SIZE;
+ unsigned int src_b_swizzle_a : SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_A_SIZE;
+ unsigned int src_b_swizzle_b : SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_B_SIZE;
+ unsigned int src_b_swizzle_g : SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_G_SIZE;
+ unsigned int src_b_swizzle_r : SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_R_SIZE;
+ unsigned int src_c_swizzle_a : SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_A_SIZE;
+ unsigned int src_c_swizzle_b : SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_B_SIZE;
+ unsigned int src_c_swizzle_g : SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_G_SIZE;
+ unsigned int src_c_swizzle_r : SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_R_SIZE;
+ } sq_instruction_alu_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_alu_1_t f;
+} sq_instruction_alu_1_u;
+
+
+/*
+ * SQ_INSTRUCTION_ALU_2 struct
+ */
+
+#define SQ_INSTRUCTION_ALU_2_SRC_C_REG_PTR_SIZE 6
+#define SQ_INSTRUCTION_ALU_2_REG_SELECT_C_SIZE 1
+#define SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_C_SIZE 1
+#define SQ_INSTRUCTION_ALU_2_SRC_B_REG_PTR_SIZE 6
+#define SQ_INSTRUCTION_ALU_2_REG_SELECT_B_SIZE 1
+#define SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_B_SIZE 1
+#define SQ_INSTRUCTION_ALU_2_SRC_A_REG_PTR_SIZE 6
+#define SQ_INSTRUCTION_ALU_2_REG_SELECT_A_SIZE 1
+#define SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_A_SIZE 1
+#define SQ_INSTRUCTION_ALU_2_VECTOR_OPCODE_SIZE 5
+#define SQ_INSTRUCTION_ALU_2_SRC_C_SEL_SIZE 1
+#define SQ_INSTRUCTION_ALU_2_SRC_B_SEL_SIZE 1
+#define SQ_INSTRUCTION_ALU_2_SRC_A_SEL_SIZE 1
+
+#define SQ_INSTRUCTION_ALU_2_SRC_C_REG_PTR_SHIFT 0
+#define SQ_INSTRUCTION_ALU_2_REG_SELECT_C_SHIFT 6
+#define SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_C_SHIFT 7
+#define SQ_INSTRUCTION_ALU_2_SRC_B_REG_PTR_SHIFT 8
+#define SQ_INSTRUCTION_ALU_2_REG_SELECT_B_SHIFT 14
+#define SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_B_SHIFT 15
+#define SQ_INSTRUCTION_ALU_2_SRC_A_REG_PTR_SHIFT 16
+#define SQ_INSTRUCTION_ALU_2_REG_SELECT_A_SHIFT 22
+#define SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_A_SHIFT 23
+#define SQ_INSTRUCTION_ALU_2_VECTOR_OPCODE_SHIFT 24
+#define SQ_INSTRUCTION_ALU_2_SRC_C_SEL_SHIFT 29
+#define SQ_INSTRUCTION_ALU_2_SRC_B_SEL_SHIFT 30
+#define SQ_INSTRUCTION_ALU_2_SRC_A_SEL_SHIFT 31
+
+#define SQ_INSTRUCTION_ALU_2_SRC_C_REG_PTR_MASK 0x0000003f
+#define SQ_INSTRUCTION_ALU_2_REG_SELECT_C_MASK 0x00000040
+#define SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_C_MASK 0x00000080
+#define SQ_INSTRUCTION_ALU_2_SRC_B_REG_PTR_MASK 0x00003f00
+#define SQ_INSTRUCTION_ALU_2_REG_SELECT_B_MASK 0x00004000
+#define SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_B_MASK 0x00008000
+#define SQ_INSTRUCTION_ALU_2_SRC_A_REG_PTR_MASK 0x003f0000
+#define SQ_INSTRUCTION_ALU_2_REG_SELECT_A_MASK 0x00400000
+#define SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_A_MASK 0x00800000
+#define SQ_INSTRUCTION_ALU_2_VECTOR_OPCODE_MASK 0x1f000000
+#define SQ_INSTRUCTION_ALU_2_SRC_C_SEL_MASK 0x20000000
+#define SQ_INSTRUCTION_ALU_2_SRC_B_SEL_MASK 0x40000000
+#define SQ_INSTRUCTION_ALU_2_SRC_A_SEL_MASK 0x80000000
+
+#define SQ_INSTRUCTION_ALU_2_MASK \
+ (SQ_INSTRUCTION_ALU_2_SRC_C_REG_PTR_MASK | \
+ SQ_INSTRUCTION_ALU_2_REG_SELECT_C_MASK | \
+ SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_C_MASK | \
+ SQ_INSTRUCTION_ALU_2_SRC_B_REG_PTR_MASK | \
+ SQ_INSTRUCTION_ALU_2_REG_SELECT_B_MASK | \
+ SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_B_MASK | \
+ SQ_INSTRUCTION_ALU_2_SRC_A_REG_PTR_MASK | \
+ SQ_INSTRUCTION_ALU_2_REG_SELECT_A_MASK | \
+ SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_A_MASK | \
+ SQ_INSTRUCTION_ALU_2_VECTOR_OPCODE_MASK | \
+ SQ_INSTRUCTION_ALU_2_SRC_C_SEL_MASK | \
+ SQ_INSTRUCTION_ALU_2_SRC_B_SEL_MASK | \
+ SQ_INSTRUCTION_ALU_2_SRC_A_SEL_MASK)
+
+#define SQ_INSTRUCTION_ALU_2(src_c_reg_ptr, reg_select_c, reg_abs_mod_c, src_b_reg_ptr, reg_select_b, reg_abs_mod_b, src_a_reg_ptr, reg_select_a, reg_abs_mod_a, vector_opcode, src_c_sel, src_b_sel, src_a_sel) \
+ ((src_c_reg_ptr << SQ_INSTRUCTION_ALU_2_SRC_C_REG_PTR_SHIFT) | \
+ (reg_select_c << SQ_INSTRUCTION_ALU_2_REG_SELECT_C_SHIFT) | \
+ (reg_abs_mod_c << SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_C_SHIFT) | \
+ (src_b_reg_ptr << SQ_INSTRUCTION_ALU_2_SRC_B_REG_PTR_SHIFT) | \
+ (reg_select_b << SQ_INSTRUCTION_ALU_2_REG_SELECT_B_SHIFT) | \
+ (reg_abs_mod_b << SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_B_SHIFT) | \
+ (src_a_reg_ptr << SQ_INSTRUCTION_ALU_2_SRC_A_REG_PTR_SHIFT) | \
+ (reg_select_a << SQ_INSTRUCTION_ALU_2_REG_SELECT_A_SHIFT) | \
+ (reg_abs_mod_a << SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_A_SHIFT) | \
+ (vector_opcode << SQ_INSTRUCTION_ALU_2_VECTOR_OPCODE_SHIFT) | \
+ (src_c_sel << SQ_INSTRUCTION_ALU_2_SRC_C_SEL_SHIFT) | \
+ (src_b_sel << SQ_INSTRUCTION_ALU_2_SRC_B_SEL_SHIFT) | \
+ (src_a_sel << SQ_INSTRUCTION_ALU_2_SRC_A_SEL_SHIFT))
+
+#define SQ_INSTRUCTION_ALU_2_GET_SRC_C_REG_PTR(sq_instruction_alu_2) \
+ ((sq_instruction_alu_2 & SQ_INSTRUCTION_ALU_2_SRC_C_REG_PTR_MASK) >> SQ_INSTRUCTION_ALU_2_SRC_C_REG_PTR_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_GET_REG_SELECT_C(sq_instruction_alu_2) \
+ ((sq_instruction_alu_2 & SQ_INSTRUCTION_ALU_2_REG_SELECT_C_MASK) >> SQ_INSTRUCTION_ALU_2_REG_SELECT_C_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_GET_REG_ABS_MOD_C(sq_instruction_alu_2) \
+ ((sq_instruction_alu_2 & SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_C_MASK) >> SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_C_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_GET_SRC_B_REG_PTR(sq_instruction_alu_2) \
+ ((sq_instruction_alu_2 & SQ_INSTRUCTION_ALU_2_SRC_B_REG_PTR_MASK) >> SQ_INSTRUCTION_ALU_2_SRC_B_REG_PTR_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_GET_REG_SELECT_B(sq_instruction_alu_2) \
+ ((sq_instruction_alu_2 & SQ_INSTRUCTION_ALU_2_REG_SELECT_B_MASK) >> SQ_INSTRUCTION_ALU_2_REG_SELECT_B_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_GET_REG_ABS_MOD_B(sq_instruction_alu_2) \
+ ((sq_instruction_alu_2 & SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_B_MASK) >> SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_B_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_GET_SRC_A_REG_PTR(sq_instruction_alu_2) \
+ ((sq_instruction_alu_2 & SQ_INSTRUCTION_ALU_2_SRC_A_REG_PTR_MASK) >> SQ_INSTRUCTION_ALU_2_SRC_A_REG_PTR_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_GET_REG_SELECT_A(sq_instruction_alu_2) \
+ ((sq_instruction_alu_2 & SQ_INSTRUCTION_ALU_2_REG_SELECT_A_MASK) >> SQ_INSTRUCTION_ALU_2_REG_SELECT_A_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_GET_REG_ABS_MOD_A(sq_instruction_alu_2) \
+ ((sq_instruction_alu_2 & SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_A_MASK) >> SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_A_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_GET_VECTOR_OPCODE(sq_instruction_alu_2) \
+ ((sq_instruction_alu_2 & SQ_INSTRUCTION_ALU_2_VECTOR_OPCODE_MASK) >> SQ_INSTRUCTION_ALU_2_VECTOR_OPCODE_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_GET_SRC_C_SEL(sq_instruction_alu_2) \
+ ((sq_instruction_alu_2 & SQ_INSTRUCTION_ALU_2_SRC_C_SEL_MASK) >> SQ_INSTRUCTION_ALU_2_SRC_C_SEL_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_GET_SRC_B_SEL(sq_instruction_alu_2) \
+ ((sq_instruction_alu_2 & SQ_INSTRUCTION_ALU_2_SRC_B_SEL_MASK) >> SQ_INSTRUCTION_ALU_2_SRC_B_SEL_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_GET_SRC_A_SEL(sq_instruction_alu_2) \
+ ((sq_instruction_alu_2 & SQ_INSTRUCTION_ALU_2_SRC_A_SEL_MASK) >> SQ_INSTRUCTION_ALU_2_SRC_A_SEL_SHIFT)
+
+#define SQ_INSTRUCTION_ALU_2_SET_SRC_C_REG_PTR(sq_instruction_alu_2_reg, src_c_reg_ptr) \
+ sq_instruction_alu_2_reg = (sq_instruction_alu_2_reg & ~SQ_INSTRUCTION_ALU_2_SRC_C_REG_PTR_MASK) | (src_c_reg_ptr << SQ_INSTRUCTION_ALU_2_SRC_C_REG_PTR_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_SET_REG_SELECT_C(sq_instruction_alu_2_reg, reg_select_c) \
+ sq_instruction_alu_2_reg = (sq_instruction_alu_2_reg & ~SQ_INSTRUCTION_ALU_2_REG_SELECT_C_MASK) | (reg_select_c << SQ_INSTRUCTION_ALU_2_REG_SELECT_C_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_SET_REG_ABS_MOD_C(sq_instruction_alu_2_reg, reg_abs_mod_c) \
+ sq_instruction_alu_2_reg = (sq_instruction_alu_2_reg & ~SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_C_MASK) | (reg_abs_mod_c << SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_C_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_SET_SRC_B_REG_PTR(sq_instruction_alu_2_reg, src_b_reg_ptr) \
+ sq_instruction_alu_2_reg = (sq_instruction_alu_2_reg & ~SQ_INSTRUCTION_ALU_2_SRC_B_REG_PTR_MASK) | (src_b_reg_ptr << SQ_INSTRUCTION_ALU_2_SRC_B_REG_PTR_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_SET_REG_SELECT_B(sq_instruction_alu_2_reg, reg_select_b) \
+ sq_instruction_alu_2_reg = (sq_instruction_alu_2_reg & ~SQ_INSTRUCTION_ALU_2_REG_SELECT_B_MASK) | (reg_select_b << SQ_INSTRUCTION_ALU_2_REG_SELECT_B_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_SET_REG_ABS_MOD_B(sq_instruction_alu_2_reg, reg_abs_mod_b) \
+ sq_instruction_alu_2_reg = (sq_instruction_alu_2_reg & ~SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_B_MASK) | (reg_abs_mod_b << SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_B_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_SET_SRC_A_REG_PTR(sq_instruction_alu_2_reg, src_a_reg_ptr) \
+ sq_instruction_alu_2_reg = (sq_instruction_alu_2_reg & ~SQ_INSTRUCTION_ALU_2_SRC_A_REG_PTR_MASK) | (src_a_reg_ptr << SQ_INSTRUCTION_ALU_2_SRC_A_REG_PTR_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_SET_REG_SELECT_A(sq_instruction_alu_2_reg, reg_select_a) \
+ sq_instruction_alu_2_reg = (sq_instruction_alu_2_reg & ~SQ_INSTRUCTION_ALU_2_REG_SELECT_A_MASK) | (reg_select_a << SQ_INSTRUCTION_ALU_2_REG_SELECT_A_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_SET_REG_ABS_MOD_A(sq_instruction_alu_2_reg, reg_abs_mod_a) \
+ sq_instruction_alu_2_reg = (sq_instruction_alu_2_reg & ~SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_A_MASK) | (reg_abs_mod_a << SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_A_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_SET_VECTOR_OPCODE(sq_instruction_alu_2_reg, vector_opcode) \
+ sq_instruction_alu_2_reg = (sq_instruction_alu_2_reg & ~SQ_INSTRUCTION_ALU_2_VECTOR_OPCODE_MASK) | (vector_opcode << SQ_INSTRUCTION_ALU_2_VECTOR_OPCODE_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_SET_SRC_C_SEL(sq_instruction_alu_2_reg, src_c_sel) \
+ sq_instruction_alu_2_reg = (sq_instruction_alu_2_reg & ~SQ_INSTRUCTION_ALU_2_SRC_C_SEL_MASK) | (src_c_sel << SQ_INSTRUCTION_ALU_2_SRC_C_SEL_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_SET_SRC_B_SEL(sq_instruction_alu_2_reg, src_b_sel) \
+ sq_instruction_alu_2_reg = (sq_instruction_alu_2_reg & ~SQ_INSTRUCTION_ALU_2_SRC_B_SEL_MASK) | (src_b_sel << SQ_INSTRUCTION_ALU_2_SRC_B_SEL_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_SET_SRC_A_SEL(sq_instruction_alu_2_reg, src_a_sel) \
+ sq_instruction_alu_2_reg = (sq_instruction_alu_2_reg & ~SQ_INSTRUCTION_ALU_2_SRC_A_SEL_MASK) | (src_a_sel << SQ_INSTRUCTION_ALU_2_SRC_A_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_alu_2_t {
+ unsigned int src_c_reg_ptr : SQ_INSTRUCTION_ALU_2_SRC_C_REG_PTR_SIZE;
+ unsigned int reg_select_c : SQ_INSTRUCTION_ALU_2_REG_SELECT_C_SIZE;
+ unsigned int reg_abs_mod_c : SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_C_SIZE;
+ unsigned int src_b_reg_ptr : SQ_INSTRUCTION_ALU_2_SRC_B_REG_PTR_SIZE;
+ unsigned int reg_select_b : SQ_INSTRUCTION_ALU_2_REG_SELECT_B_SIZE;
+ unsigned int reg_abs_mod_b : SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_B_SIZE;
+ unsigned int src_a_reg_ptr : SQ_INSTRUCTION_ALU_2_SRC_A_REG_PTR_SIZE;
+ unsigned int reg_select_a : SQ_INSTRUCTION_ALU_2_REG_SELECT_A_SIZE;
+ unsigned int reg_abs_mod_a : SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_A_SIZE;
+ unsigned int vector_opcode : SQ_INSTRUCTION_ALU_2_VECTOR_OPCODE_SIZE;
+ unsigned int src_c_sel : SQ_INSTRUCTION_ALU_2_SRC_C_SEL_SIZE;
+ unsigned int src_b_sel : SQ_INSTRUCTION_ALU_2_SRC_B_SEL_SIZE;
+ unsigned int src_a_sel : SQ_INSTRUCTION_ALU_2_SRC_A_SEL_SIZE;
+ } sq_instruction_alu_2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_alu_2_t {
+ unsigned int src_a_sel : SQ_INSTRUCTION_ALU_2_SRC_A_SEL_SIZE;
+ unsigned int src_b_sel : SQ_INSTRUCTION_ALU_2_SRC_B_SEL_SIZE;
+ unsigned int src_c_sel : SQ_INSTRUCTION_ALU_2_SRC_C_SEL_SIZE;
+ unsigned int vector_opcode : SQ_INSTRUCTION_ALU_2_VECTOR_OPCODE_SIZE;
+ unsigned int reg_abs_mod_a : SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_A_SIZE;
+ unsigned int reg_select_a : SQ_INSTRUCTION_ALU_2_REG_SELECT_A_SIZE;
+ unsigned int src_a_reg_ptr : SQ_INSTRUCTION_ALU_2_SRC_A_REG_PTR_SIZE;
+ unsigned int reg_abs_mod_b : SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_B_SIZE;
+ unsigned int reg_select_b : SQ_INSTRUCTION_ALU_2_REG_SELECT_B_SIZE;
+ unsigned int src_b_reg_ptr : SQ_INSTRUCTION_ALU_2_SRC_B_REG_PTR_SIZE;
+ unsigned int reg_abs_mod_c : SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_C_SIZE;
+ unsigned int reg_select_c : SQ_INSTRUCTION_ALU_2_REG_SELECT_C_SIZE;
+ unsigned int src_c_reg_ptr : SQ_INSTRUCTION_ALU_2_SRC_C_REG_PTR_SIZE;
+ } sq_instruction_alu_2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_alu_2_t f;
+} sq_instruction_alu_2_u;
+
+
+/*
+ * SQ_INSTRUCTION_CF_EXEC_0 struct
+ */
+
+#define SQ_INSTRUCTION_CF_EXEC_0_ADDRESS_SIZE 9
+#define SQ_INSTRUCTION_CF_EXEC_0_RESERVED_SIZE 3
+#define SQ_INSTRUCTION_CF_EXEC_0_COUNT_SIZE 3
+#define SQ_INSTRUCTION_CF_EXEC_0_YIELD_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_0_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_0_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_1_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_1_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_2_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_2_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_3_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_3_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_4_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_4_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_5_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_5_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_VC_0_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_VC_1_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_VC_2_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_VC_3_SIZE 1
+
+#define SQ_INSTRUCTION_CF_EXEC_0_ADDRESS_SHIFT 0
+#define SQ_INSTRUCTION_CF_EXEC_0_RESERVED_SHIFT 9
+#define SQ_INSTRUCTION_CF_EXEC_0_COUNT_SHIFT 12
+#define SQ_INSTRUCTION_CF_EXEC_0_YIELD_SHIFT 15
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_0_SHIFT 16
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_0_SHIFT 17
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_1_SHIFT 18
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_1_SHIFT 19
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_2_SHIFT 20
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_2_SHIFT 21
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_3_SHIFT 22
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_3_SHIFT 23
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_4_SHIFT 24
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_4_SHIFT 25
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_5_SHIFT 26
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_5_SHIFT 27
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_VC_0_SHIFT 28
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_VC_1_SHIFT 29
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_VC_2_SHIFT 30
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_VC_3_SHIFT 31
+
+#define SQ_INSTRUCTION_CF_EXEC_0_ADDRESS_MASK 0x000001ff
+#define SQ_INSTRUCTION_CF_EXEC_0_RESERVED_MASK 0x00000e00
+#define SQ_INSTRUCTION_CF_EXEC_0_COUNT_MASK 0x00007000
+#define SQ_INSTRUCTION_CF_EXEC_0_YIELD_MASK 0x00008000
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_0_MASK 0x00010000
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_0_MASK 0x00020000
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_1_MASK 0x00040000
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_1_MASK 0x00080000
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_2_MASK 0x00100000
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_2_MASK 0x00200000
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_3_MASK 0x00400000
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_3_MASK 0x00800000
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_4_MASK 0x01000000
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_4_MASK 0x02000000
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_5_MASK 0x04000000
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_5_MASK 0x08000000
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_VC_0_MASK 0x10000000
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_VC_1_MASK 0x20000000
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_VC_2_MASK 0x40000000
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_VC_3_MASK 0x80000000
+
+#define SQ_INSTRUCTION_CF_EXEC_0_MASK \
+ (SQ_INSTRUCTION_CF_EXEC_0_ADDRESS_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_RESERVED_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_COUNT_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_YIELD_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_0_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_0_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_1_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_1_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_2_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_2_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_3_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_3_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_4_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_4_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_5_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_5_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_INST_VC_0_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_INST_VC_1_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_INST_VC_2_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_INST_VC_3_MASK)
+
+#define SQ_INSTRUCTION_CF_EXEC_0(address, reserved, count, yield, inst_type_0, inst_serial_0, inst_type_1, inst_serial_1, inst_type_2, inst_serial_2, inst_type_3, inst_serial_3, inst_type_4, inst_serial_4, inst_type_5, inst_serial_5, inst_vc_0, inst_vc_1, inst_vc_2, inst_vc_3) \
+ ((address << SQ_INSTRUCTION_CF_EXEC_0_ADDRESS_SHIFT) | \
+ (reserved << SQ_INSTRUCTION_CF_EXEC_0_RESERVED_SHIFT) | \
+ (count << SQ_INSTRUCTION_CF_EXEC_0_COUNT_SHIFT) | \
+ (yield << SQ_INSTRUCTION_CF_EXEC_0_YIELD_SHIFT) | \
+ (inst_type_0 << SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_0_SHIFT) | \
+ (inst_serial_0 << SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_0_SHIFT) | \
+ (inst_type_1 << SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_1_SHIFT) | \
+ (inst_serial_1 << SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_1_SHIFT) | \
+ (inst_type_2 << SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_2_SHIFT) | \
+ (inst_serial_2 << SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_2_SHIFT) | \
+ (inst_type_3 << SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_3_SHIFT) | \
+ (inst_serial_3 << SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_3_SHIFT) | \
+ (inst_type_4 << SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_4_SHIFT) | \
+ (inst_serial_4 << SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_4_SHIFT) | \
+ (inst_type_5 << SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_5_SHIFT) | \
+ (inst_serial_5 << SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_5_SHIFT) | \
+ (inst_vc_0 << SQ_INSTRUCTION_CF_EXEC_0_INST_VC_0_SHIFT) | \
+ (inst_vc_1 << SQ_INSTRUCTION_CF_EXEC_0_INST_VC_1_SHIFT) | \
+ (inst_vc_2 << SQ_INSTRUCTION_CF_EXEC_0_INST_VC_2_SHIFT) | \
+ (inst_vc_3 << SQ_INSTRUCTION_CF_EXEC_0_INST_VC_3_SHIFT))
+
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_ADDRESS(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_ADDRESS_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_ADDRESS_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_RESERVED(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_RESERVED_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_RESERVED_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_COUNT(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_COUNT_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_COUNT_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_YIELD(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_YIELD_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_YIELD_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_INST_TYPE_0(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_0_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_0_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_INST_SERIAL_0(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_0_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_0_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_INST_TYPE_1(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_1_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_1_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_INST_SERIAL_1(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_1_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_1_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_INST_TYPE_2(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_2_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_2_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_INST_SERIAL_2(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_2_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_2_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_INST_TYPE_3(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_3_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_3_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_INST_SERIAL_3(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_3_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_3_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_INST_TYPE_4(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_4_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_4_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_INST_SERIAL_4(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_4_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_4_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_INST_TYPE_5(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_5_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_5_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_INST_SERIAL_5(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_5_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_5_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_INST_VC_0(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_INST_VC_0_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_INST_VC_0_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_INST_VC_1(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_INST_VC_1_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_INST_VC_1_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_INST_VC_2(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_INST_VC_2_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_INST_VC_2_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_INST_VC_3(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_INST_VC_3_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_INST_VC_3_SHIFT)
+
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_ADDRESS(sq_instruction_cf_exec_0_reg, address) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_ADDRESS_MASK) | (address << SQ_INSTRUCTION_CF_EXEC_0_ADDRESS_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_RESERVED(sq_instruction_cf_exec_0_reg, reserved) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_RESERVED_MASK) | (reserved << SQ_INSTRUCTION_CF_EXEC_0_RESERVED_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_COUNT(sq_instruction_cf_exec_0_reg, count) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_COUNT_MASK) | (count << SQ_INSTRUCTION_CF_EXEC_0_COUNT_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_YIELD(sq_instruction_cf_exec_0_reg, yield) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_YIELD_MASK) | (yield << SQ_INSTRUCTION_CF_EXEC_0_YIELD_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_INST_TYPE_0(sq_instruction_cf_exec_0_reg, inst_type_0) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_0_MASK) | (inst_type_0 << SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_0_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_INST_SERIAL_0(sq_instruction_cf_exec_0_reg, inst_serial_0) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_0_MASK) | (inst_serial_0 << SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_0_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_INST_TYPE_1(sq_instruction_cf_exec_0_reg, inst_type_1) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_1_MASK) | (inst_type_1 << SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_1_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_INST_SERIAL_1(sq_instruction_cf_exec_0_reg, inst_serial_1) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_1_MASK) | (inst_serial_1 << SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_1_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_INST_TYPE_2(sq_instruction_cf_exec_0_reg, inst_type_2) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_2_MASK) | (inst_type_2 << SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_2_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_INST_SERIAL_2(sq_instruction_cf_exec_0_reg, inst_serial_2) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_2_MASK) | (inst_serial_2 << SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_2_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_INST_TYPE_3(sq_instruction_cf_exec_0_reg, inst_type_3) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_3_MASK) | (inst_type_3 << SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_3_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_INST_SERIAL_3(sq_instruction_cf_exec_0_reg, inst_serial_3) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_3_MASK) | (inst_serial_3 << SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_3_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_INST_TYPE_4(sq_instruction_cf_exec_0_reg, inst_type_4) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_4_MASK) | (inst_type_4 << SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_4_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_INST_SERIAL_4(sq_instruction_cf_exec_0_reg, inst_serial_4) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_4_MASK) | (inst_serial_4 << SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_4_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_INST_TYPE_5(sq_instruction_cf_exec_0_reg, inst_type_5) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_5_MASK) | (inst_type_5 << SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_5_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_INST_SERIAL_5(sq_instruction_cf_exec_0_reg, inst_serial_5) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_5_MASK) | (inst_serial_5 << SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_5_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_INST_VC_0(sq_instruction_cf_exec_0_reg, inst_vc_0) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_INST_VC_0_MASK) | (inst_vc_0 << SQ_INSTRUCTION_CF_EXEC_0_INST_VC_0_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_INST_VC_1(sq_instruction_cf_exec_0_reg, inst_vc_1) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_INST_VC_1_MASK) | (inst_vc_1 << SQ_INSTRUCTION_CF_EXEC_0_INST_VC_1_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_INST_VC_2(sq_instruction_cf_exec_0_reg, inst_vc_2) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_INST_VC_2_MASK) | (inst_vc_2 << SQ_INSTRUCTION_CF_EXEC_0_INST_VC_2_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_INST_VC_3(sq_instruction_cf_exec_0_reg, inst_vc_3) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_INST_VC_3_MASK) | (inst_vc_3 << SQ_INSTRUCTION_CF_EXEC_0_INST_VC_3_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_exec_0_t {
+ unsigned int address : SQ_INSTRUCTION_CF_EXEC_0_ADDRESS_SIZE;
+ unsigned int reserved : SQ_INSTRUCTION_CF_EXEC_0_RESERVED_SIZE;
+ unsigned int count : SQ_INSTRUCTION_CF_EXEC_0_COUNT_SIZE;
+ unsigned int yield : SQ_INSTRUCTION_CF_EXEC_0_YIELD_SIZE;
+ unsigned int inst_type_0 : SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_0_SIZE;
+ unsigned int inst_serial_0 : SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_0_SIZE;
+ unsigned int inst_type_1 : SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_1_SIZE;
+ unsigned int inst_serial_1 : SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_1_SIZE;
+ unsigned int inst_type_2 : SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_2_SIZE;
+ unsigned int inst_serial_2 : SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_2_SIZE;
+ unsigned int inst_type_3 : SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_3_SIZE;
+ unsigned int inst_serial_3 : SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_3_SIZE;
+ unsigned int inst_type_4 : SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_4_SIZE;
+ unsigned int inst_serial_4 : SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_4_SIZE;
+ unsigned int inst_type_5 : SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_5_SIZE;
+ unsigned int inst_serial_5 : SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_5_SIZE;
+ unsigned int inst_vc_0 : SQ_INSTRUCTION_CF_EXEC_0_INST_VC_0_SIZE;
+ unsigned int inst_vc_1 : SQ_INSTRUCTION_CF_EXEC_0_INST_VC_1_SIZE;
+ unsigned int inst_vc_2 : SQ_INSTRUCTION_CF_EXEC_0_INST_VC_2_SIZE;
+ unsigned int inst_vc_3 : SQ_INSTRUCTION_CF_EXEC_0_INST_VC_3_SIZE;
+ } sq_instruction_cf_exec_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_exec_0_t {
+ unsigned int inst_vc_3 : SQ_INSTRUCTION_CF_EXEC_0_INST_VC_3_SIZE;
+ unsigned int inst_vc_2 : SQ_INSTRUCTION_CF_EXEC_0_INST_VC_2_SIZE;
+ unsigned int inst_vc_1 : SQ_INSTRUCTION_CF_EXEC_0_INST_VC_1_SIZE;
+ unsigned int inst_vc_0 : SQ_INSTRUCTION_CF_EXEC_0_INST_VC_0_SIZE;
+ unsigned int inst_serial_5 : SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_5_SIZE;
+ unsigned int inst_type_5 : SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_5_SIZE;
+ unsigned int inst_serial_4 : SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_4_SIZE;
+ unsigned int inst_type_4 : SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_4_SIZE;
+ unsigned int inst_serial_3 : SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_3_SIZE;
+ unsigned int inst_type_3 : SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_3_SIZE;
+ unsigned int inst_serial_2 : SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_2_SIZE;
+ unsigned int inst_type_2 : SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_2_SIZE;
+ unsigned int inst_serial_1 : SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_1_SIZE;
+ unsigned int inst_type_1 : SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_1_SIZE;
+ unsigned int inst_serial_0 : SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_0_SIZE;
+ unsigned int inst_type_0 : SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_0_SIZE;
+ unsigned int yield : SQ_INSTRUCTION_CF_EXEC_0_YIELD_SIZE;
+ unsigned int count : SQ_INSTRUCTION_CF_EXEC_0_COUNT_SIZE;
+ unsigned int reserved : SQ_INSTRUCTION_CF_EXEC_0_RESERVED_SIZE;
+ unsigned int address : SQ_INSTRUCTION_CF_EXEC_0_ADDRESS_SIZE;
+ } sq_instruction_cf_exec_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_cf_exec_0_t f;
+} sq_instruction_cf_exec_0_u;
+
+
+/*
+ * SQ_INSTRUCTION_CF_EXEC_1 struct
+ */
+
+#define SQ_INSTRUCTION_CF_EXEC_1_INST_VC_4_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_1_INST_VC_5_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_1_BOOL_ADDR_SIZE 8
+#define SQ_INSTRUCTION_CF_EXEC_1_CONDITION_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_MODE_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_1_OPCODE_SIZE 4
+#define SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_SIZE 9
+#define SQ_INSTRUCTION_CF_EXEC_1_RESERVED_SIZE 3
+#define SQ_INSTRUCTION_CF_EXEC_1_COUNT_SIZE 3
+#define SQ_INSTRUCTION_CF_EXEC_1_YIELD_SIZE 1
+
+#define SQ_INSTRUCTION_CF_EXEC_1_INST_VC_4_SHIFT 0
+#define SQ_INSTRUCTION_CF_EXEC_1_INST_VC_5_SHIFT 1
+#define SQ_INSTRUCTION_CF_EXEC_1_BOOL_ADDR_SHIFT 2
+#define SQ_INSTRUCTION_CF_EXEC_1_CONDITION_SHIFT 10
+#define SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_MODE_SHIFT 11
+#define SQ_INSTRUCTION_CF_EXEC_1_OPCODE_SHIFT 12
+#define SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_SHIFT 16
+#define SQ_INSTRUCTION_CF_EXEC_1_RESERVED_SHIFT 25
+#define SQ_INSTRUCTION_CF_EXEC_1_COUNT_SHIFT 28
+#define SQ_INSTRUCTION_CF_EXEC_1_YIELD_SHIFT 31
+
+#define SQ_INSTRUCTION_CF_EXEC_1_INST_VC_4_MASK 0x00000001
+#define SQ_INSTRUCTION_CF_EXEC_1_INST_VC_5_MASK 0x00000002
+#define SQ_INSTRUCTION_CF_EXEC_1_BOOL_ADDR_MASK 0x000003fc
+#define SQ_INSTRUCTION_CF_EXEC_1_CONDITION_MASK 0x00000400
+#define SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_MODE_MASK 0x00000800
+#define SQ_INSTRUCTION_CF_EXEC_1_OPCODE_MASK 0x0000f000
+#define SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_MASK 0x01ff0000
+#define SQ_INSTRUCTION_CF_EXEC_1_RESERVED_MASK 0x0e000000
+#define SQ_INSTRUCTION_CF_EXEC_1_COUNT_MASK 0x70000000
+#define SQ_INSTRUCTION_CF_EXEC_1_YIELD_MASK 0x80000000
+
+#define SQ_INSTRUCTION_CF_EXEC_1_MASK \
+ (SQ_INSTRUCTION_CF_EXEC_1_INST_VC_4_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_1_INST_VC_5_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_1_BOOL_ADDR_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_1_CONDITION_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_MODE_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_1_OPCODE_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_1_RESERVED_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_1_COUNT_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_1_YIELD_MASK)
+
+#define SQ_INSTRUCTION_CF_EXEC_1(inst_vc_4, inst_vc_5, bool_addr, condition, address_mode, opcode, address, reserved, count, yield) \
+ ((inst_vc_4 << SQ_INSTRUCTION_CF_EXEC_1_INST_VC_4_SHIFT) | \
+ (inst_vc_5 << SQ_INSTRUCTION_CF_EXEC_1_INST_VC_5_SHIFT) | \
+ (bool_addr << SQ_INSTRUCTION_CF_EXEC_1_BOOL_ADDR_SHIFT) | \
+ (condition << SQ_INSTRUCTION_CF_EXEC_1_CONDITION_SHIFT) | \
+ (address_mode << SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_MODE_SHIFT) | \
+ (opcode << SQ_INSTRUCTION_CF_EXEC_1_OPCODE_SHIFT) | \
+ (address << SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_SHIFT) | \
+ (reserved << SQ_INSTRUCTION_CF_EXEC_1_RESERVED_SHIFT) | \
+ (count << SQ_INSTRUCTION_CF_EXEC_1_COUNT_SHIFT) | \
+ (yield << SQ_INSTRUCTION_CF_EXEC_1_YIELD_SHIFT))
+
+#define SQ_INSTRUCTION_CF_EXEC_1_GET_INST_VC_4(sq_instruction_cf_exec_1) \
+ ((sq_instruction_cf_exec_1 & SQ_INSTRUCTION_CF_EXEC_1_INST_VC_4_MASK) >> SQ_INSTRUCTION_CF_EXEC_1_INST_VC_4_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_1_GET_INST_VC_5(sq_instruction_cf_exec_1) \
+ ((sq_instruction_cf_exec_1 & SQ_INSTRUCTION_CF_EXEC_1_INST_VC_5_MASK) >> SQ_INSTRUCTION_CF_EXEC_1_INST_VC_5_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_1_GET_BOOL_ADDR(sq_instruction_cf_exec_1) \
+ ((sq_instruction_cf_exec_1 & SQ_INSTRUCTION_CF_EXEC_1_BOOL_ADDR_MASK) >> SQ_INSTRUCTION_CF_EXEC_1_BOOL_ADDR_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_1_GET_CONDITION(sq_instruction_cf_exec_1) \
+ ((sq_instruction_cf_exec_1 & SQ_INSTRUCTION_CF_EXEC_1_CONDITION_MASK) >> SQ_INSTRUCTION_CF_EXEC_1_CONDITION_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_1_GET_ADDRESS_MODE(sq_instruction_cf_exec_1) \
+ ((sq_instruction_cf_exec_1 & SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_MODE_MASK) >> SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_MODE_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_1_GET_OPCODE(sq_instruction_cf_exec_1) \
+ ((sq_instruction_cf_exec_1 & SQ_INSTRUCTION_CF_EXEC_1_OPCODE_MASK) >> SQ_INSTRUCTION_CF_EXEC_1_OPCODE_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_1_GET_ADDRESS(sq_instruction_cf_exec_1) \
+ ((sq_instruction_cf_exec_1 & SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_MASK) >> SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_1_GET_RESERVED(sq_instruction_cf_exec_1) \
+ ((sq_instruction_cf_exec_1 & SQ_INSTRUCTION_CF_EXEC_1_RESERVED_MASK) >> SQ_INSTRUCTION_CF_EXEC_1_RESERVED_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_1_GET_COUNT(sq_instruction_cf_exec_1) \
+ ((sq_instruction_cf_exec_1 & SQ_INSTRUCTION_CF_EXEC_1_COUNT_MASK) >> SQ_INSTRUCTION_CF_EXEC_1_COUNT_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_1_GET_YIELD(sq_instruction_cf_exec_1) \
+ ((sq_instruction_cf_exec_1 & SQ_INSTRUCTION_CF_EXEC_1_YIELD_MASK) >> SQ_INSTRUCTION_CF_EXEC_1_YIELD_SHIFT)
+
+#define SQ_INSTRUCTION_CF_EXEC_1_SET_INST_VC_4(sq_instruction_cf_exec_1_reg, inst_vc_4) \
+ sq_instruction_cf_exec_1_reg = (sq_instruction_cf_exec_1_reg & ~SQ_INSTRUCTION_CF_EXEC_1_INST_VC_4_MASK) | (inst_vc_4 << SQ_INSTRUCTION_CF_EXEC_1_INST_VC_4_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_1_SET_INST_VC_5(sq_instruction_cf_exec_1_reg, inst_vc_5) \
+ sq_instruction_cf_exec_1_reg = (sq_instruction_cf_exec_1_reg & ~SQ_INSTRUCTION_CF_EXEC_1_INST_VC_5_MASK) | (inst_vc_5 << SQ_INSTRUCTION_CF_EXEC_1_INST_VC_5_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_1_SET_BOOL_ADDR(sq_instruction_cf_exec_1_reg, bool_addr) \
+ sq_instruction_cf_exec_1_reg = (sq_instruction_cf_exec_1_reg & ~SQ_INSTRUCTION_CF_EXEC_1_BOOL_ADDR_MASK) | (bool_addr << SQ_INSTRUCTION_CF_EXEC_1_BOOL_ADDR_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_1_SET_CONDITION(sq_instruction_cf_exec_1_reg, condition) \
+ sq_instruction_cf_exec_1_reg = (sq_instruction_cf_exec_1_reg & ~SQ_INSTRUCTION_CF_EXEC_1_CONDITION_MASK) | (condition << SQ_INSTRUCTION_CF_EXEC_1_CONDITION_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_1_SET_ADDRESS_MODE(sq_instruction_cf_exec_1_reg, address_mode) \
+ sq_instruction_cf_exec_1_reg = (sq_instruction_cf_exec_1_reg & ~SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_MODE_MASK) | (address_mode << SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_MODE_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_1_SET_OPCODE(sq_instruction_cf_exec_1_reg, opcode) \
+ sq_instruction_cf_exec_1_reg = (sq_instruction_cf_exec_1_reg & ~SQ_INSTRUCTION_CF_EXEC_1_OPCODE_MASK) | (opcode << SQ_INSTRUCTION_CF_EXEC_1_OPCODE_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_1_SET_ADDRESS(sq_instruction_cf_exec_1_reg, address) \
+ sq_instruction_cf_exec_1_reg = (sq_instruction_cf_exec_1_reg & ~SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_MASK) | (address << SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_1_SET_RESERVED(sq_instruction_cf_exec_1_reg, reserved) \
+ sq_instruction_cf_exec_1_reg = (sq_instruction_cf_exec_1_reg & ~SQ_INSTRUCTION_CF_EXEC_1_RESERVED_MASK) | (reserved << SQ_INSTRUCTION_CF_EXEC_1_RESERVED_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_1_SET_COUNT(sq_instruction_cf_exec_1_reg, count) \
+ sq_instruction_cf_exec_1_reg = (sq_instruction_cf_exec_1_reg & ~SQ_INSTRUCTION_CF_EXEC_1_COUNT_MASK) | (count << SQ_INSTRUCTION_CF_EXEC_1_COUNT_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_1_SET_YIELD(sq_instruction_cf_exec_1_reg, yield) \
+ sq_instruction_cf_exec_1_reg = (sq_instruction_cf_exec_1_reg & ~SQ_INSTRUCTION_CF_EXEC_1_YIELD_MASK) | (yield << SQ_INSTRUCTION_CF_EXEC_1_YIELD_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_exec_1_t {
+ unsigned int inst_vc_4 : SQ_INSTRUCTION_CF_EXEC_1_INST_VC_4_SIZE;
+ unsigned int inst_vc_5 : SQ_INSTRUCTION_CF_EXEC_1_INST_VC_5_SIZE;
+ unsigned int bool_addr : SQ_INSTRUCTION_CF_EXEC_1_BOOL_ADDR_SIZE;
+ unsigned int condition : SQ_INSTRUCTION_CF_EXEC_1_CONDITION_SIZE;
+ unsigned int address_mode : SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_MODE_SIZE;
+ unsigned int opcode : SQ_INSTRUCTION_CF_EXEC_1_OPCODE_SIZE;
+ unsigned int address : SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_SIZE;
+ unsigned int reserved : SQ_INSTRUCTION_CF_EXEC_1_RESERVED_SIZE;
+ unsigned int count : SQ_INSTRUCTION_CF_EXEC_1_COUNT_SIZE;
+ unsigned int yield : SQ_INSTRUCTION_CF_EXEC_1_YIELD_SIZE;
+ } sq_instruction_cf_exec_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_exec_1_t {
+ unsigned int yield : SQ_INSTRUCTION_CF_EXEC_1_YIELD_SIZE;
+ unsigned int count : SQ_INSTRUCTION_CF_EXEC_1_COUNT_SIZE;
+ unsigned int reserved : SQ_INSTRUCTION_CF_EXEC_1_RESERVED_SIZE;
+ unsigned int address : SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_SIZE;
+ unsigned int opcode : SQ_INSTRUCTION_CF_EXEC_1_OPCODE_SIZE;
+ unsigned int address_mode : SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_MODE_SIZE;
+ unsigned int condition : SQ_INSTRUCTION_CF_EXEC_1_CONDITION_SIZE;
+ unsigned int bool_addr : SQ_INSTRUCTION_CF_EXEC_1_BOOL_ADDR_SIZE;
+ unsigned int inst_vc_5 : SQ_INSTRUCTION_CF_EXEC_1_INST_VC_5_SIZE;
+ unsigned int inst_vc_4 : SQ_INSTRUCTION_CF_EXEC_1_INST_VC_4_SIZE;
+ } sq_instruction_cf_exec_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_cf_exec_1_t f;
+} sq_instruction_cf_exec_1_u;
+
+
+/*
+ * SQ_INSTRUCTION_CF_EXEC_2 struct
+ */
+
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_0_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_0_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_1_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_1_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_2_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_2_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_3_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_3_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_4_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_4_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_5_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_5_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_VC_0_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_VC_1_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_VC_2_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_VC_3_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_VC_4_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_VC_5_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_BOOL_ADDR_SIZE 8
+#define SQ_INSTRUCTION_CF_EXEC_2_CONDITION_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_ADDRESS_MODE_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_OPCODE_SIZE 4
+
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_0_SHIFT 0
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_0_SHIFT 1
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_1_SHIFT 2
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_1_SHIFT 3
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_2_SHIFT 4
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_2_SHIFT 5
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_3_SHIFT 6
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_3_SHIFT 7
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_4_SHIFT 8
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_4_SHIFT 9
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_5_SHIFT 10
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_5_SHIFT 11
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_VC_0_SHIFT 12
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_VC_1_SHIFT 13
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_VC_2_SHIFT 14
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_VC_3_SHIFT 15
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_VC_4_SHIFT 16
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_VC_5_SHIFT 17
+#define SQ_INSTRUCTION_CF_EXEC_2_BOOL_ADDR_SHIFT 18
+#define SQ_INSTRUCTION_CF_EXEC_2_CONDITION_SHIFT 26
+#define SQ_INSTRUCTION_CF_EXEC_2_ADDRESS_MODE_SHIFT 27
+#define SQ_INSTRUCTION_CF_EXEC_2_OPCODE_SHIFT 28
+
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_0_MASK 0x00000001
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_0_MASK 0x00000002
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_1_MASK 0x00000004
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_1_MASK 0x00000008
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_2_MASK 0x00000010
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_2_MASK 0x00000020
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_3_MASK 0x00000040
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_3_MASK 0x00000080
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_4_MASK 0x00000100
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_4_MASK 0x00000200
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_5_MASK 0x00000400
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_5_MASK 0x00000800
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_VC_0_MASK 0x00001000
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_VC_1_MASK 0x00002000
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_VC_2_MASK 0x00004000
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_VC_3_MASK 0x00008000
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_VC_4_MASK 0x00010000
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_VC_5_MASK 0x00020000
+#define SQ_INSTRUCTION_CF_EXEC_2_BOOL_ADDR_MASK 0x03fc0000
+#define SQ_INSTRUCTION_CF_EXEC_2_CONDITION_MASK 0x04000000
+#define SQ_INSTRUCTION_CF_EXEC_2_ADDRESS_MODE_MASK 0x08000000
+#define SQ_INSTRUCTION_CF_EXEC_2_OPCODE_MASK 0xf0000000
+
+#define SQ_INSTRUCTION_CF_EXEC_2_MASK \
+ (SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_0_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_0_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_1_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_1_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_2_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_2_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_3_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_3_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_4_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_4_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_5_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_5_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_INST_VC_0_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_INST_VC_1_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_INST_VC_2_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_INST_VC_3_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_INST_VC_4_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_INST_VC_5_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_BOOL_ADDR_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_CONDITION_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_ADDRESS_MODE_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_OPCODE_MASK)
+
+#define SQ_INSTRUCTION_CF_EXEC_2(inst_type_0, inst_serial_0, inst_type_1, inst_serial_1, inst_type_2, inst_serial_2, inst_type_3, inst_serial_3, inst_type_4, inst_serial_4, inst_type_5, inst_serial_5, inst_vc_0, inst_vc_1, inst_vc_2, inst_vc_3, inst_vc_4, inst_vc_5, bool_addr, condition, address_mode, opcode) \
+ ((inst_type_0 << SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_0_SHIFT) | \
+ (inst_serial_0 << SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_0_SHIFT) | \
+ (inst_type_1 << SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_1_SHIFT) | \
+ (inst_serial_1 << SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_1_SHIFT) | \
+ (inst_type_2 << SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_2_SHIFT) | \
+ (inst_serial_2 << SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_2_SHIFT) | \
+ (inst_type_3 << SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_3_SHIFT) | \
+ (inst_serial_3 << SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_3_SHIFT) | \
+ (inst_type_4 << SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_4_SHIFT) | \
+ (inst_serial_4 << SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_4_SHIFT) | \
+ (inst_type_5 << SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_5_SHIFT) | \
+ (inst_serial_5 << SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_5_SHIFT) | \
+ (inst_vc_0 << SQ_INSTRUCTION_CF_EXEC_2_INST_VC_0_SHIFT) | \
+ (inst_vc_1 << SQ_INSTRUCTION_CF_EXEC_2_INST_VC_1_SHIFT) | \
+ (inst_vc_2 << SQ_INSTRUCTION_CF_EXEC_2_INST_VC_2_SHIFT) | \
+ (inst_vc_3 << SQ_INSTRUCTION_CF_EXEC_2_INST_VC_3_SHIFT) | \
+ (inst_vc_4 << SQ_INSTRUCTION_CF_EXEC_2_INST_VC_4_SHIFT) | \
+ (inst_vc_5 << SQ_INSTRUCTION_CF_EXEC_2_INST_VC_5_SHIFT) | \
+ (bool_addr << SQ_INSTRUCTION_CF_EXEC_2_BOOL_ADDR_SHIFT) | \
+ (condition << SQ_INSTRUCTION_CF_EXEC_2_CONDITION_SHIFT) | \
+ (address_mode << SQ_INSTRUCTION_CF_EXEC_2_ADDRESS_MODE_SHIFT) | \
+ (opcode << SQ_INSTRUCTION_CF_EXEC_2_OPCODE_SHIFT))
+
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_INST_TYPE_0(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_0_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_0_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_INST_SERIAL_0(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_0_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_0_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_INST_TYPE_1(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_1_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_1_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_INST_SERIAL_1(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_1_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_1_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_INST_TYPE_2(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_2_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_2_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_INST_SERIAL_2(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_2_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_2_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_INST_TYPE_3(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_3_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_3_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_INST_SERIAL_3(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_3_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_3_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_INST_TYPE_4(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_4_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_4_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_INST_SERIAL_4(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_4_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_4_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_INST_TYPE_5(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_5_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_5_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_INST_SERIAL_5(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_5_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_5_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_INST_VC_0(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_INST_VC_0_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_INST_VC_0_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_INST_VC_1(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_INST_VC_1_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_INST_VC_1_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_INST_VC_2(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_INST_VC_2_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_INST_VC_2_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_INST_VC_3(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_INST_VC_3_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_INST_VC_3_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_INST_VC_4(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_INST_VC_4_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_INST_VC_4_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_INST_VC_5(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_INST_VC_5_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_INST_VC_5_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_BOOL_ADDR(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_BOOL_ADDR_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_BOOL_ADDR_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_CONDITION(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_CONDITION_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_CONDITION_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_ADDRESS_MODE(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_ADDRESS_MODE_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_ADDRESS_MODE_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_OPCODE(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_OPCODE_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_OPCODE_SHIFT)
+
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_INST_TYPE_0(sq_instruction_cf_exec_2_reg, inst_type_0) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_0_MASK) | (inst_type_0 << SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_0_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_INST_SERIAL_0(sq_instruction_cf_exec_2_reg, inst_serial_0) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_0_MASK) | (inst_serial_0 << SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_0_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_INST_TYPE_1(sq_instruction_cf_exec_2_reg, inst_type_1) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_1_MASK) | (inst_type_1 << SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_1_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_INST_SERIAL_1(sq_instruction_cf_exec_2_reg, inst_serial_1) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_1_MASK) | (inst_serial_1 << SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_1_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_INST_TYPE_2(sq_instruction_cf_exec_2_reg, inst_type_2) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_2_MASK) | (inst_type_2 << SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_2_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_INST_SERIAL_2(sq_instruction_cf_exec_2_reg, inst_serial_2) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_2_MASK) | (inst_serial_2 << SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_2_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_INST_TYPE_3(sq_instruction_cf_exec_2_reg, inst_type_3) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_3_MASK) | (inst_type_3 << SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_3_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_INST_SERIAL_3(sq_instruction_cf_exec_2_reg, inst_serial_3) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_3_MASK) | (inst_serial_3 << SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_3_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_INST_TYPE_4(sq_instruction_cf_exec_2_reg, inst_type_4) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_4_MASK) | (inst_type_4 << SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_4_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_INST_SERIAL_4(sq_instruction_cf_exec_2_reg, inst_serial_4) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_4_MASK) | (inst_serial_4 << SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_4_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_INST_TYPE_5(sq_instruction_cf_exec_2_reg, inst_type_5) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_5_MASK) | (inst_type_5 << SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_5_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_INST_SERIAL_5(sq_instruction_cf_exec_2_reg, inst_serial_5) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_5_MASK) | (inst_serial_5 << SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_5_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_INST_VC_0(sq_instruction_cf_exec_2_reg, inst_vc_0) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_INST_VC_0_MASK) | (inst_vc_0 << SQ_INSTRUCTION_CF_EXEC_2_INST_VC_0_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_INST_VC_1(sq_instruction_cf_exec_2_reg, inst_vc_1) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_INST_VC_1_MASK) | (inst_vc_1 << SQ_INSTRUCTION_CF_EXEC_2_INST_VC_1_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_INST_VC_2(sq_instruction_cf_exec_2_reg, inst_vc_2) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_INST_VC_2_MASK) | (inst_vc_2 << SQ_INSTRUCTION_CF_EXEC_2_INST_VC_2_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_INST_VC_3(sq_instruction_cf_exec_2_reg, inst_vc_3) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_INST_VC_3_MASK) | (inst_vc_3 << SQ_INSTRUCTION_CF_EXEC_2_INST_VC_3_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_INST_VC_4(sq_instruction_cf_exec_2_reg, inst_vc_4) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_INST_VC_4_MASK) | (inst_vc_4 << SQ_INSTRUCTION_CF_EXEC_2_INST_VC_4_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_INST_VC_5(sq_instruction_cf_exec_2_reg, inst_vc_5) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_INST_VC_5_MASK) | (inst_vc_5 << SQ_INSTRUCTION_CF_EXEC_2_INST_VC_5_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_BOOL_ADDR(sq_instruction_cf_exec_2_reg, bool_addr) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_BOOL_ADDR_MASK) | (bool_addr << SQ_INSTRUCTION_CF_EXEC_2_BOOL_ADDR_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_CONDITION(sq_instruction_cf_exec_2_reg, condition) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_CONDITION_MASK) | (condition << SQ_INSTRUCTION_CF_EXEC_2_CONDITION_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_ADDRESS_MODE(sq_instruction_cf_exec_2_reg, address_mode) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_ADDRESS_MODE_MASK) | (address_mode << SQ_INSTRUCTION_CF_EXEC_2_ADDRESS_MODE_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_OPCODE(sq_instruction_cf_exec_2_reg, opcode) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_OPCODE_MASK) | (opcode << SQ_INSTRUCTION_CF_EXEC_2_OPCODE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_exec_2_t {
+ unsigned int inst_type_0 : SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_0_SIZE;
+ unsigned int inst_serial_0 : SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_0_SIZE;
+ unsigned int inst_type_1 : SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_1_SIZE;
+ unsigned int inst_serial_1 : SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_1_SIZE;
+ unsigned int inst_type_2 : SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_2_SIZE;
+ unsigned int inst_serial_2 : SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_2_SIZE;
+ unsigned int inst_type_3 : SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_3_SIZE;
+ unsigned int inst_serial_3 : SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_3_SIZE;
+ unsigned int inst_type_4 : SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_4_SIZE;
+ unsigned int inst_serial_4 : SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_4_SIZE;
+ unsigned int inst_type_5 : SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_5_SIZE;
+ unsigned int inst_serial_5 : SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_5_SIZE;
+ unsigned int inst_vc_0 : SQ_INSTRUCTION_CF_EXEC_2_INST_VC_0_SIZE;
+ unsigned int inst_vc_1 : SQ_INSTRUCTION_CF_EXEC_2_INST_VC_1_SIZE;
+ unsigned int inst_vc_2 : SQ_INSTRUCTION_CF_EXEC_2_INST_VC_2_SIZE;
+ unsigned int inst_vc_3 : SQ_INSTRUCTION_CF_EXEC_2_INST_VC_3_SIZE;
+ unsigned int inst_vc_4 : SQ_INSTRUCTION_CF_EXEC_2_INST_VC_4_SIZE;
+ unsigned int inst_vc_5 : SQ_INSTRUCTION_CF_EXEC_2_INST_VC_5_SIZE;
+ unsigned int bool_addr : SQ_INSTRUCTION_CF_EXEC_2_BOOL_ADDR_SIZE;
+ unsigned int condition : SQ_INSTRUCTION_CF_EXEC_2_CONDITION_SIZE;
+ unsigned int address_mode : SQ_INSTRUCTION_CF_EXEC_2_ADDRESS_MODE_SIZE;
+ unsigned int opcode : SQ_INSTRUCTION_CF_EXEC_2_OPCODE_SIZE;
+ } sq_instruction_cf_exec_2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_exec_2_t {
+ unsigned int opcode : SQ_INSTRUCTION_CF_EXEC_2_OPCODE_SIZE;
+ unsigned int address_mode : SQ_INSTRUCTION_CF_EXEC_2_ADDRESS_MODE_SIZE;
+ unsigned int condition : SQ_INSTRUCTION_CF_EXEC_2_CONDITION_SIZE;
+ unsigned int bool_addr : SQ_INSTRUCTION_CF_EXEC_2_BOOL_ADDR_SIZE;
+ unsigned int inst_vc_5 : SQ_INSTRUCTION_CF_EXEC_2_INST_VC_5_SIZE;
+ unsigned int inst_vc_4 : SQ_INSTRUCTION_CF_EXEC_2_INST_VC_4_SIZE;
+ unsigned int inst_vc_3 : SQ_INSTRUCTION_CF_EXEC_2_INST_VC_3_SIZE;
+ unsigned int inst_vc_2 : SQ_INSTRUCTION_CF_EXEC_2_INST_VC_2_SIZE;
+ unsigned int inst_vc_1 : SQ_INSTRUCTION_CF_EXEC_2_INST_VC_1_SIZE;
+ unsigned int inst_vc_0 : SQ_INSTRUCTION_CF_EXEC_2_INST_VC_0_SIZE;
+ unsigned int inst_serial_5 : SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_5_SIZE;
+ unsigned int inst_type_5 : SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_5_SIZE;
+ unsigned int inst_serial_4 : SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_4_SIZE;
+ unsigned int inst_type_4 : SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_4_SIZE;
+ unsigned int inst_serial_3 : SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_3_SIZE;
+ unsigned int inst_type_3 : SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_3_SIZE;
+ unsigned int inst_serial_2 : SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_2_SIZE;
+ unsigned int inst_type_2 : SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_2_SIZE;
+ unsigned int inst_serial_1 : SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_1_SIZE;
+ unsigned int inst_type_1 : SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_1_SIZE;
+ unsigned int inst_serial_0 : SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_0_SIZE;
+ unsigned int inst_type_0 : SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_0_SIZE;
+ } sq_instruction_cf_exec_2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_cf_exec_2_t f;
+} sq_instruction_cf_exec_2_u;
+
+
+/*
+ * SQ_INSTRUCTION_CF_LOOP_0 struct
+ */
+
+#define SQ_INSTRUCTION_CF_LOOP_0_ADDRESS_SIZE 10
+#define SQ_INSTRUCTION_CF_LOOP_0_RESERVED_0_SIZE 6
+#define SQ_INSTRUCTION_CF_LOOP_0_LOOP_ID_SIZE 5
+#define SQ_INSTRUCTION_CF_LOOP_0_RESERVED_1_SIZE 11
+
+#define SQ_INSTRUCTION_CF_LOOP_0_ADDRESS_SHIFT 0
+#define SQ_INSTRUCTION_CF_LOOP_0_RESERVED_0_SHIFT 10
+#define SQ_INSTRUCTION_CF_LOOP_0_LOOP_ID_SHIFT 16
+#define SQ_INSTRUCTION_CF_LOOP_0_RESERVED_1_SHIFT 21
+
+#define SQ_INSTRUCTION_CF_LOOP_0_ADDRESS_MASK 0x000003ff
+#define SQ_INSTRUCTION_CF_LOOP_0_RESERVED_0_MASK 0x0000fc00
+#define SQ_INSTRUCTION_CF_LOOP_0_LOOP_ID_MASK 0x001f0000
+#define SQ_INSTRUCTION_CF_LOOP_0_RESERVED_1_MASK 0xffe00000
+
+#define SQ_INSTRUCTION_CF_LOOP_0_MASK \
+ (SQ_INSTRUCTION_CF_LOOP_0_ADDRESS_MASK | \
+ SQ_INSTRUCTION_CF_LOOP_0_RESERVED_0_MASK | \
+ SQ_INSTRUCTION_CF_LOOP_0_LOOP_ID_MASK | \
+ SQ_INSTRUCTION_CF_LOOP_0_RESERVED_1_MASK)
+
+#define SQ_INSTRUCTION_CF_LOOP_0(address, reserved_0, loop_id, reserved_1) \
+ ((address << SQ_INSTRUCTION_CF_LOOP_0_ADDRESS_SHIFT) | \
+ (reserved_0 << SQ_INSTRUCTION_CF_LOOP_0_RESERVED_0_SHIFT) | \
+ (loop_id << SQ_INSTRUCTION_CF_LOOP_0_LOOP_ID_SHIFT) | \
+ (reserved_1 << SQ_INSTRUCTION_CF_LOOP_0_RESERVED_1_SHIFT))
+
+#define SQ_INSTRUCTION_CF_LOOP_0_GET_ADDRESS(sq_instruction_cf_loop_0) \
+ ((sq_instruction_cf_loop_0 & SQ_INSTRUCTION_CF_LOOP_0_ADDRESS_MASK) >> SQ_INSTRUCTION_CF_LOOP_0_ADDRESS_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_0_GET_RESERVED_0(sq_instruction_cf_loop_0) \
+ ((sq_instruction_cf_loop_0 & SQ_INSTRUCTION_CF_LOOP_0_RESERVED_0_MASK) >> SQ_INSTRUCTION_CF_LOOP_0_RESERVED_0_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_0_GET_LOOP_ID(sq_instruction_cf_loop_0) \
+ ((sq_instruction_cf_loop_0 & SQ_INSTRUCTION_CF_LOOP_0_LOOP_ID_MASK) >> SQ_INSTRUCTION_CF_LOOP_0_LOOP_ID_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_0_GET_RESERVED_1(sq_instruction_cf_loop_0) \
+ ((sq_instruction_cf_loop_0 & SQ_INSTRUCTION_CF_LOOP_0_RESERVED_1_MASK) >> SQ_INSTRUCTION_CF_LOOP_0_RESERVED_1_SHIFT)
+
+#define SQ_INSTRUCTION_CF_LOOP_0_SET_ADDRESS(sq_instruction_cf_loop_0_reg, address) \
+ sq_instruction_cf_loop_0_reg = (sq_instruction_cf_loop_0_reg & ~SQ_INSTRUCTION_CF_LOOP_0_ADDRESS_MASK) | (address << SQ_INSTRUCTION_CF_LOOP_0_ADDRESS_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_0_SET_RESERVED_0(sq_instruction_cf_loop_0_reg, reserved_0) \
+ sq_instruction_cf_loop_0_reg = (sq_instruction_cf_loop_0_reg & ~SQ_INSTRUCTION_CF_LOOP_0_RESERVED_0_MASK) | (reserved_0 << SQ_INSTRUCTION_CF_LOOP_0_RESERVED_0_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_0_SET_LOOP_ID(sq_instruction_cf_loop_0_reg, loop_id) \
+ sq_instruction_cf_loop_0_reg = (sq_instruction_cf_loop_0_reg & ~SQ_INSTRUCTION_CF_LOOP_0_LOOP_ID_MASK) | (loop_id << SQ_INSTRUCTION_CF_LOOP_0_LOOP_ID_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_0_SET_RESERVED_1(sq_instruction_cf_loop_0_reg, reserved_1) \
+ sq_instruction_cf_loop_0_reg = (sq_instruction_cf_loop_0_reg & ~SQ_INSTRUCTION_CF_LOOP_0_RESERVED_1_MASK) | (reserved_1 << SQ_INSTRUCTION_CF_LOOP_0_RESERVED_1_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_loop_0_t {
+ unsigned int address : SQ_INSTRUCTION_CF_LOOP_0_ADDRESS_SIZE;
+ unsigned int reserved_0 : SQ_INSTRUCTION_CF_LOOP_0_RESERVED_0_SIZE;
+ unsigned int loop_id : SQ_INSTRUCTION_CF_LOOP_0_LOOP_ID_SIZE;
+ unsigned int reserved_1 : SQ_INSTRUCTION_CF_LOOP_0_RESERVED_1_SIZE;
+ } sq_instruction_cf_loop_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_loop_0_t {
+ unsigned int reserved_1 : SQ_INSTRUCTION_CF_LOOP_0_RESERVED_1_SIZE;
+ unsigned int loop_id : SQ_INSTRUCTION_CF_LOOP_0_LOOP_ID_SIZE;
+ unsigned int reserved_0 : SQ_INSTRUCTION_CF_LOOP_0_RESERVED_0_SIZE;
+ unsigned int address : SQ_INSTRUCTION_CF_LOOP_0_ADDRESS_SIZE;
+ } sq_instruction_cf_loop_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_cf_loop_0_t f;
+} sq_instruction_cf_loop_0_u;
+
+
+/*
+ * SQ_INSTRUCTION_CF_LOOP_1 struct
+ */
+
+#define SQ_INSTRUCTION_CF_LOOP_1_RESERVED_0_SIZE 11
+#define SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_MODE_SIZE 1
+#define SQ_INSTRUCTION_CF_LOOP_1_OPCODE_SIZE 4
+#define SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_SIZE 10
+#define SQ_INSTRUCTION_CF_LOOP_1_RESERVED_1_SIZE 6
+
+#define SQ_INSTRUCTION_CF_LOOP_1_RESERVED_0_SHIFT 0
+#define SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_MODE_SHIFT 11
+#define SQ_INSTRUCTION_CF_LOOP_1_OPCODE_SHIFT 12
+#define SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_SHIFT 16
+#define SQ_INSTRUCTION_CF_LOOP_1_RESERVED_1_SHIFT 26
+
+#define SQ_INSTRUCTION_CF_LOOP_1_RESERVED_0_MASK 0x000007ff
+#define SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_MODE_MASK 0x00000800
+#define SQ_INSTRUCTION_CF_LOOP_1_OPCODE_MASK 0x0000f000
+#define SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_MASK 0x03ff0000
+#define SQ_INSTRUCTION_CF_LOOP_1_RESERVED_1_MASK 0xfc000000
+
+#define SQ_INSTRUCTION_CF_LOOP_1_MASK \
+ (SQ_INSTRUCTION_CF_LOOP_1_RESERVED_0_MASK | \
+ SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_MODE_MASK | \
+ SQ_INSTRUCTION_CF_LOOP_1_OPCODE_MASK | \
+ SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_MASK | \
+ SQ_INSTRUCTION_CF_LOOP_1_RESERVED_1_MASK)
+
+#define SQ_INSTRUCTION_CF_LOOP_1(reserved_0, address_mode, opcode, address, reserved_1) \
+ ((reserved_0 << SQ_INSTRUCTION_CF_LOOP_1_RESERVED_0_SHIFT) | \
+ (address_mode << SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_MODE_SHIFT) | \
+ (opcode << SQ_INSTRUCTION_CF_LOOP_1_OPCODE_SHIFT) | \
+ (address << SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_SHIFT) | \
+ (reserved_1 << SQ_INSTRUCTION_CF_LOOP_1_RESERVED_1_SHIFT))
+
+#define SQ_INSTRUCTION_CF_LOOP_1_GET_RESERVED_0(sq_instruction_cf_loop_1) \
+ ((sq_instruction_cf_loop_1 & SQ_INSTRUCTION_CF_LOOP_1_RESERVED_0_MASK) >> SQ_INSTRUCTION_CF_LOOP_1_RESERVED_0_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_1_GET_ADDRESS_MODE(sq_instruction_cf_loop_1) \
+ ((sq_instruction_cf_loop_1 & SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_MODE_MASK) >> SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_MODE_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_1_GET_OPCODE(sq_instruction_cf_loop_1) \
+ ((sq_instruction_cf_loop_1 & SQ_INSTRUCTION_CF_LOOP_1_OPCODE_MASK) >> SQ_INSTRUCTION_CF_LOOP_1_OPCODE_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_1_GET_ADDRESS(sq_instruction_cf_loop_1) \
+ ((sq_instruction_cf_loop_1 & SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_MASK) >> SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_1_GET_RESERVED_1(sq_instruction_cf_loop_1) \
+ ((sq_instruction_cf_loop_1 & SQ_INSTRUCTION_CF_LOOP_1_RESERVED_1_MASK) >> SQ_INSTRUCTION_CF_LOOP_1_RESERVED_1_SHIFT)
+
+#define SQ_INSTRUCTION_CF_LOOP_1_SET_RESERVED_0(sq_instruction_cf_loop_1_reg, reserved_0) \
+ sq_instruction_cf_loop_1_reg = (sq_instruction_cf_loop_1_reg & ~SQ_INSTRUCTION_CF_LOOP_1_RESERVED_0_MASK) | (reserved_0 << SQ_INSTRUCTION_CF_LOOP_1_RESERVED_0_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_1_SET_ADDRESS_MODE(sq_instruction_cf_loop_1_reg, address_mode) \
+ sq_instruction_cf_loop_1_reg = (sq_instruction_cf_loop_1_reg & ~SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_MODE_MASK) | (address_mode << SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_MODE_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_1_SET_OPCODE(sq_instruction_cf_loop_1_reg, opcode) \
+ sq_instruction_cf_loop_1_reg = (sq_instruction_cf_loop_1_reg & ~SQ_INSTRUCTION_CF_LOOP_1_OPCODE_MASK) | (opcode << SQ_INSTRUCTION_CF_LOOP_1_OPCODE_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_1_SET_ADDRESS(sq_instruction_cf_loop_1_reg, address) \
+ sq_instruction_cf_loop_1_reg = (sq_instruction_cf_loop_1_reg & ~SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_MASK) | (address << SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_1_SET_RESERVED_1(sq_instruction_cf_loop_1_reg, reserved_1) \
+ sq_instruction_cf_loop_1_reg = (sq_instruction_cf_loop_1_reg & ~SQ_INSTRUCTION_CF_LOOP_1_RESERVED_1_MASK) | (reserved_1 << SQ_INSTRUCTION_CF_LOOP_1_RESERVED_1_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_loop_1_t {
+ unsigned int reserved_0 : SQ_INSTRUCTION_CF_LOOP_1_RESERVED_0_SIZE;
+ unsigned int address_mode : SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_MODE_SIZE;
+ unsigned int opcode : SQ_INSTRUCTION_CF_LOOP_1_OPCODE_SIZE;
+ unsigned int address : SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_SIZE;
+ unsigned int reserved_1 : SQ_INSTRUCTION_CF_LOOP_1_RESERVED_1_SIZE;
+ } sq_instruction_cf_loop_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_loop_1_t {
+ unsigned int reserved_1 : SQ_INSTRUCTION_CF_LOOP_1_RESERVED_1_SIZE;
+ unsigned int address : SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_SIZE;
+ unsigned int opcode : SQ_INSTRUCTION_CF_LOOP_1_OPCODE_SIZE;
+ unsigned int address_mode : SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_MODE_SIZE;
+ unsigned int reserved_0 : SQ_INSTRUCTION_CF_LOOP_1_RESERVED_0_SIZE;
+ } sq_instruction_cf_loop_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_cf_loop_1_t f;
+} sq_instruction_cf_loop_1_u;
+
+
+/*
+ * SQ_INSTRUCTION_CF_LOOP_2 struct
+ */
+
+#define SQ_INSTRUCTION_CF_LOOP_2_LOOP_ID_SIZE 5
+#define SQ_INSTRUCTION_CF_LOOP_2_RESERVED_SIZE 22
+#define SQ_INSTRUCTION_CF_LOOP_2_ADDRESS_MODE_SIZE 1
+#define SQ_INSTRUCTION_CF_LOOP_2_OPCODE_SIZE 4
+
+#define SQ_INSTRUCTION_CF_LOOP_2_LOOP_ID_SHIFT 0
+#define SQ_INSTRUCTION_CF_LOOP_2_RESERVED_SHIFT 5
+#define SQ_INSTRUCTION_CF_LOOP_2_ADDRESS_MODE_SHIFT 27
+#define SQ_INSTRUCTION_CF_LOOP_2_OPCODE_SHIFT 28
+
+#define SQ_INSTRUCTION_CF_LOOP_2_LOOP_ID_MASK 0x0000001f
+#define SQ_INSTRUCTION_CF_LOOP_2_RESERVED_MASK 0x07ffffe0
+#define SQ_INSTRUCTION_CF_LOOP_2_ADDRESS_MODE_MASK 0x08000000
+#define SQ_INSTRUCTION_CF_LOOP_2_OPCODE_MASK 0xf0000000
+
+#define SQ_INSTRUCTION_CF_LOOP_2_MASK \
+ (SQ_INSTRUCTION_CF_LOOP_2_LOOP_ID_MASK | \
+ SQ_INSTRUCTION_CF_LOOP_2_RESERVED_MASK | \
+ SQ_INSTRUCTION_CF_LOOP_2_ADDRESS_MODE_MASK | \
+ SQ_INSTRUCTION_CF_LOOP_2_OPCODE_MASK)
+
+#define SQ_INSTRUCTION_CF_LOOP_2(loop_id, reserved, address_mode, opcode) \
+ ((loop_id << SQ_INSTRUCTION_CF_LOOP_2_LOOP_ID_SHIFT) | \
+ (reserved << SQ_INSTRUCTION_CF_LOOP_2_RESERVED_SHIFT) | \
+ (address_mode << SQ_INSTRUCTION_CF_LOOP_2_ADDRESS_MODE_SHIFT) | \
+ (opcode << SQ_INSTRUCTION_CF_LOOP_2_OPCODE_SHIFT))
+
+#define SQ_INSTRUCTION_CF_LOOP_2_GET_LOOP_ID(sq_instruction_cf_loop_2) \
+ ((sq_instruction_cf_loop_2 & SQ_INSTRUCTION_CF_LOOP_2_LOOP_ID_MASK) >> SQ_INSTRUCTION_CF_LOOP_2_LOOP_ID_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_2_GET_RESERVED(sq_instruction_cf_loop_2) \
+ ((sq_instruction_cf_loop_2 & SQ_INSTRUCTION_CF_LOOP_2_RESERVED_MASK) >> SQ_INSTRUCTION_CF_LOOP_2_RESERVED_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_2_GET_ADDRESS_MODE(sq_instruction_cf_loop_2) \
+ ((sq_instruction_cf_loop_2 & SQ_INSTRUCTION_CF_LOOP_2_ADDRESS_MODE_MASK) >> SQ_INSTRUCTION_CF_LOOP_2_ADDRESS_MODE_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_2_GET_OPCODE(sq_instruction_cf_loop_2) \
+ ((sq_instruction_cf_loop_2 & SQ_INSTRUCTION_CF_LOOP_2_OPCODE_MASK) >> SQ_INSTRUCTION_CF_LOOP_2_OPCODE_SHIFT)
+
+#define SQ_INSTRUCTION_CF_LOOP_2_SET_LOOP_ID(sq_instruction_cf_loop_2_reg, loop_id) \
+ sq_instruction_cf_loop_2_reg = (sq_instruction_cf_loop_2_reg & ~SQ_INSTRUCTION_CF_LOOP_2_LOOP_ID_MASK) | (loop_id << SQ_INSTRUCTION_CF_LOOP_2_LOOP_ID_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_2_SET_RESERVED(sq_instruction_cf_loop_2_reg, reserved) \
+ sq_instruction_cf_loop_2_reg = (sq_instruction_cf_loop_2_reg & ~SQ_INSTRUCTION_CF_LOOP_2_RESERVED_MASK) | (reserved << SQ_INSTRUCTION_CF_LOOP_2_RESERVED_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_2_SET_ADDRESS_MODE(sq_instruction_cf_loop_2_reg, address_mode) \
+ sq_instruction_cf_loop_2_reg = (sq_instruction_cf_loop_2_reg & ~SQ_INSTRUCTION_CF_LOOP_2_ADDRESS_MODE_MASK) | (address_mode << SQ_INSTRUCTION_CF_LOOP_2_ADDRESS_MODE_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_2_SET_OPCODE(sq_instruction_cf_loop_2_reg, opcode) \
+ sq_instruction_cf_loop_2_reg = (sq_instruction_cf_loop_2_reg & ~SQ_INSTRUCTION_CF_LOOP_2_OPCODE_MASK) | (opcode << SQ_INSTRUCTION_CF_LOOP_2_OPCODE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_loop_2_t {
+ unsigned int loop_id : SQ_INSTRUCTION_CF_LOOP_2_LOOP_ID_SIZE;
+ unsigned int reserved : SQ_INSTRUCTION_CF_LOOP_2_RESERVED_SIZE;
+ unsigned int address_mode : SQ_INSTRUCTION_CF_LOOP_2_ADDRESS_MODE_SIZE;
+ unsigned int opcode : SQ_INSTRUCTION_CF_LOOP_2_OPCODE_SIZE;
+ } sq_instruction_cf_loop_2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_loop_2_t {
+ unsigned int opcode : SQ_INSTRUCTION_CF_LOOP_2_OPCODE_SIZE;
+ unsigned int address_mode : SQ_INSTRUCTION_CF_LOOP_2_ADDRESS_MODE_SIZE;
+ unsigned int reserved : SQ_INSTRUCTION_CF_LOOP_2_RESERVED_SIZE;
+ unsigned int loop_id : SQ_INSTRUCTION_CF_LOOP_2_LOOP_ID_SIZE;
+ } sq_instruction_cf_loop_2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_cf_loop_2_t f;
+} sq_instruction_cf_loop_2_u;
+
+
+/*
+ * SQ_INSTRUCTION_CF_JMP_CALL_0 struct
+ */
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_ADDRESS_SIZE 10
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_0_SIZE 3
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_FORCE_CALL_SIZE 1
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_PREDICATED_JMP_SIZE 1
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_1_SIZE 17
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_ADDRESS_SHIFT 0
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_0_SHIFT 10
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_FORCE_CALL_SHIFT 13
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_PREDICATED_JMP_SHIFT 14
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_1_SHIFT 15
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_ADDRESS_MASK 0x000003ff
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_0_MASK 0x00001c00
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_FORCE_CALL_MASK 0x00002000
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_PREDICATED_JMP_MASK 0x00004000
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_1_MASK 0xffff8000
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_MASK \
+ (SQ_INSTRUCTION_CF_JMP_CALL_0_ADDRESS_MASK | \
+ SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_0_MASK | \
+ SQ_INSTRUCTION_CF_JMP_CALL_0_FORCE_CALL_MASK | \
+ SQ_INSTRUCTION_CF_JMP_CALL_0_PREDICATED_JMP_MASK | \
+ SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_1_MASK)
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_0(address, reserved_0, force_call, predicated_jmp, reserved_1) \
+ ((address << SQ_INSTRUCTION_CF_JMP_CALL_0_ADDRESS_SHIFT) | \
+ (reserved_0 << SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_0_SHIFT) | \
+ (force_call << SQ_INSTRUCTION_CF_JMP_CALL_0_FORCE_CALL_SHIFT) | \
+ (predicated_jmp << SQ_INSTRUCTION_CF_JMP_CALL_0_PREDICATED_JMP_SHIFT) | \
+ (reserved_1 << SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_1_SHIFT))
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_GET_ADDRESS(sq_instruction_cf_jmp_call_0) \
+ ((sq_instruction_cf_jmp_call_0 & SQ_INSTRUCTION_CF_JMP_CALL_0_ADDRESS_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_0_ADDRESS_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_GET_RESERVED_0(sq_instruction_cf_jmp_call_0) \
+ ((sq_instruction_cf_jmp_call_0 & SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_0_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_0_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_GET_FORCE_CALL(sq_instruction_cf_jmp_call_0) \
+ ((sq_instruction_cf_jmp_call_0 & SQ_INSTRUCTION_CF_JMP_CALL_0_FORCE_CALL_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_0_FORCE_CALL_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_GET_PREDICATED_JMP(sq_instruction_cf_jmp_call_0) \
+ ((sq_instruction_cf_jmp_call_0 & SQ_INSTRUCTION_CF_JMP_CALL_0_PREDICATED_JMP_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_0_PREDICATED_JMP_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_GET_RESERVED_1(sq_instruction_cf_jmp_call_0) \
+ ((sq_instruction_cf_jmp_call_0 & SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_1_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_1_SHIFT)
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_SET_ADDRESS(sq_instruction_cf_jmp_call_0_reg, address) \
+ sq_instruction_cf_jmp_call_0_reg = (sq_instruction_cf_jmp_call_0_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_0_ADDRESS_MASK) | (address << SQ_INSTRUCTION_CF_JMP_CALL_0_ADDRESS_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_SET_RESERVED_0(sq_instruction_cf_jmp_call_0_reg, reserved_0) \
+ sq_instruction_cf_jmp_call_0_reg = (sq_instruction_cf_jmp_call_0_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_0_MASK) | (reserved_0 << SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_0_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_SET_FORCE_CALL(sq_instruction_cf_jmp_call_0_reg, force_call) \
+ sq_instruction_cf_jmp_call_0_reg = (sq_instruction_cf_jmp_call_0_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_0_FORCE_CALL_MASK) | (force_call << SQ_INSTRUCTION_CF_JMP_CALL_0_FORCE_CALL_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_SET_PREDICATED_JMP(sq_instruction_cf_jmp_call_0_reg, predicated_jmp) \
+ sq_instruction_cf_jmp_call_0_reg = (sq_instruction_cf_jmp_call_0_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_0_PREDICATED_JMP_MASK) | (predicated_jmp << SQ_INSTRUCTION_CF_JMP_CALL_0_PREDICATED_JMP_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_SET_RESERVED_1(sq_instruction_cf_jmp_call_0_reg, reserved_1) \
+ sq_instruction_cf_jmp_call_0_reg = (sq_instruction_cf_jmp_call_0_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_1_MASK) | (reserved_1 << SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_1_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_jmp_call_0_t {
+ unsigned int address : SQ_INSTRUCTION_CF_JMP_CALL_0_ADDRESS_SIZE;
+ unsigned int reserved_0 : SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_0_SIZE;
+ unsigned int force_call : SQ_INSTRUCTION_CF_JMP_CALL_0_FORCE_CALL_SIZE;
+ unsigned int predicated_jmp : SQ_INSTRUCTION_CF_JMP_CALL_0_PREDICATED_JMP_SIZE;
+ unsigned int reserved_1 : SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_1_SIZE;
+ } sq_instruction_cf_jmp_call_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_jmp_call_0_t {
+ unsigned int reserved_1 : SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_1_SIZE;
+ unsigned int predicated_jmp : SQ_INSTRUCTION_CF_JMP_CALL_0_PREDICATED_JMP_SIZE;
+ unsigned int force_call : SQ_INSTRUCTION_CF_JMP_CALL_0_FORCE_CALL_SIZE;
+ unsigned int reserved_0 : SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_0_SIZE;
+ unsigned int address : SQ_INSTRUCTION_CF_JMP_CALL_0_ADDRESS_SIZE;
+ } sq_instruction_cf_jmp_call_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_cf_jmp_call_0_t f;
+} sq_instruction_cf_jmp_call_0_u;
+
+
+/*
+ * SQ_INSTRUCTION_CF_JMP_CALL_1 struct
+ */
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_0_SIZE 1
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_DIRECTION_SIZE 1
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_BOOL_ADDR_SIZE 8
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_CONDITION_SIZE 1
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_MODE_SIZE 1
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_OPCODE_SIZE 4
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_SIZE 10
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_1_SIZE 3
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_FORCE_CALL_SIZE 1
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_2_SIZE 2
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_0_SHIFT 0
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_DIRECTION_SHIFT 1
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_BOOL_ADDR_SHIFT 2
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_CONDITION_SHIFT 10
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_MODE_SHIFT 11
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_OPCODE_SHIFT 12
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_SHIFT 16
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_1_SHIFT 26
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_FORCE_CALL_SHIFT 29
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_2_SHIFT 30
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_0_MASK 0x00000001
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_DIRECTION_MASK 0x00000002
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_BOOL_ADDR_MASK 0x000003fc
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_CONDITION_MASK 0x00000400
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_MODE_MASK 0x00000800
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_OPCODE_MASK 0x0000f000
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_MASK 0x03ff0000
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_1_MASK 0x1c000000
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_FORCE_CALL_MASK 0x20000000
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_2_MASK 0xc0000000
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_MASK \
+ (SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_0_MASK | \
+ SQ_INSTRUCTION_CF_JMP_CALL_1_DIRECTION_MASK | \
+ SQ_INSTRUCTION_CF_JMP_CALL_1_BOOL_ADDR_MASK | \
+ SQ_INSTRUCTION_CF_JMP_CALL_1_CONDITION_MASK | \
+ SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_MODE_MASK | \
+ SQ_INSTRUCTION_CF_JMP_CALL_1_OPCODE_MASK | \
+ SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_MASK | \
+ SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_1_MASK | \
+ SQ_INSTRUCTION_CF_JMP_CALL_1_FORCE_CALL_MASK | \
+ SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_2_MASK)
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_1(reserved_0, direction, bool_addr, condition, address_mode, opcode, address, reserved_1, force_call, reserved_2) \
+ ((reserved_0 << SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_0_SHIFT) | \
+ (direction << SQ_INSTRUCTION_CF_JMP_CALL_1_DIRECTION_SHIFT) | \
+ (bool_addr << SQ_INSTRUCTION_CF_JMP_CALL_1_BOOL_ADDR_SHIFT) | \
+ (condition << SQ_INSTRUCTION_CF_JMP_CALL_1_CONDITION_SHIFT) | \
+ (address_mode << SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_MODE_SHIFT) | \
+ (opcode << SQ_INSTRUCTION_CF_JMP_CALL_1_OPCODE_SHIFT) | \
+ (address << SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_SHIFT) | \
+ (reserved_1 << SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_1_SHIFT) | \
+ (force_call << SQ_INSTRUCTION_CF_JMP_CALL_1_FORCE_CALL_SHIFT) | \
+ (reserved_2 << SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_2_SHIFT))
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_GET_RESERVED_0(sq_instruction_cf_jmp_call_1) \
+ ((sq_instruction_cf_jmp_call_1 & SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_0_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_0_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_GET_DIRECTION(sq_instruction_cf_jmp_call_1) \
+ ((sq_instruction_cf_jmp_call_1 & SQ_INSTRUCTION_CF_JMP_CALL_1_DIRECTION_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_1_DIRECTION_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_GET_BOOL_ADDR(sq_instruction_cf_jmp_call_1) \
+ ((sq_instruction_cf_jmp_call_1 & SQ_INSTRUCTION_CF_JMP_CALL_1_BOOL_ADDR_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_1_BOOL_ADDR_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_GET_CONDITION(sq_instruction_cf_jmp_call_1) \
+ ((sq_instruction_cf_jmp_call_1 & SQ_INSTRUCTION_CF_JMP_CALL_1_CONDITION_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_1_CONDITION_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_GET_ADDRESS_MODE(sq_instruction_cf_jmp_call_1) \
+ ((sq_instruction_cf_jmp_call_1 & SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_MODE_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_MODE_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_GET_OPCODE(sq_instruction_cf_jmp_call_1) \
+ ((sq_instruction_cf_jmp_call_1 & SQ_INSTRUCTION_CF_JMP_CALL_1_OPCODE_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_1_OPCODE_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_GET_ADDRESS(sq_instruction_cf_jmp_call_1) \
+ ((sq_instruction_cf_jmp_call_1 & SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_GET_RESERVED_1(sq_instruction_cf_jmp_call_1) \
+ ((sq_instruction_cf_jmp_call_1 & SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_1_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_1_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_GET_FORCE_CALL(sq_instruction_cf_jmp_call_1) \
+ ((sq_instruction_cf_jmp_call_1 & SQ_INSTRUCTION_CF_JMP_CALL_1_FORCE_CALL_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_1_FORCE_CALL_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_GET_RESERVED_2(sq_instruction_cf_jmp_call_1) \
+ ((sq_instruction_cf_jmp_call_1 & SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_2_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_2_SHIFT)
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_SET_RESERVED_0(sq_instruction_cf_jmp_call_1_reg, reserved_0) \
+ sq_instruction_cf_jmp_call_1_reg = (sq_instruction_cf_jmp_call_1_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_0_MASK) | (reserved_0 << SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_0_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_SET_DIRECTION(sq_instruction_cf_jmp_call_1_reg, direction) \
+ sq_instruction_cf_jmp_call_1_reg = (sq_instruction_cf_jmp_call_1_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_1_DIRECTION_MASK) | (direction << SQ_INSTRUCTION_CF_JMP_CALL_1_DIRECTION_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_SET_BOOL_ADDR(sq_instruction_cf_jmp_call_1_reg, bool_addr) \
+ sq_instruction_cf_jmp_call_1_reg = (sq_instruction_cf_jmp_call_1_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_1_BOOL_ADDR_MASK) | (bool_addr << SQ_INSTRUCTION_CF_JMP_CALL_1_BOOL_ADDR_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_SET_CONDITION(sq_instruction_cf_jmp_call_1_reg, condition) \
+ sq_instruction_cf_jmp_call_1_reg = (sq_instruction_cf_jmp_call_1_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_1_CONDITION_MASK) | (condition << SQ_INSTRUCTION_CF_JMP_CALL_1_CONDITION_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_SET_ADDRESS_MODE(sq_instruction_cf_jmp_call_1_reg, address_mode) \
+ sq_instruction_cf_jmp_call_1_reg = (sq_instruction_cf_jmp_call_1_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_MODE_MASK) | (address_mode << SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_MODE_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_SET_OPCODE(sq_instruction_cf_jmp_call_1_reg, opcode) \
+ sq_instruction_cf_jmp_call_1_reg = (sq_instruction_cf_jmp_call_1_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_1_OPCODE_MASK) | (opcode << SQ_INSTRUCTION_CF_JMP_CALL_1_OPCODE_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_SET_ADDRESS(sq_instruction_cf_jmp_call_1_reg, address) \
+ sq_instruction_cf_jmp_call_1_reg = (sq_instruction_cf_jmp_call_1_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_MASK) | (address << SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_SET_RESERVED_1(sq_instruction_cf_jmp_call_1_reg, reserved_1) \
+ sq_instruction_cf_jmp_call_1_reg = (sq_instruction_cf_jmp_call_1_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_1_MASK) | (reserved_1 << SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_1_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_SET_FORCE_CALL(sq_instruction_cf_jmp_call_1_reg, force_call) \
+ sq_instruction_cf_jmp_call_1_reg = (sq_instruction_cf_jmp_call_1_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_1_FORCE_CALL_MASK) | (force_call << SQ_INSTRUCTION_CF_JMP_CALL_1_FORCE_CALL_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_SET_RESERVED_2(sq_instruction_cf_jmp_call_1_reg, reserved_2) \
+ sq_instruction_cf_jmp_call_1_reg = (sq_instruction_cf_jmp_call_1_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_2_MASK) | (reserved_2 << SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_2_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_jmp_call_1_t {
+ unsigned int reserved_0 : SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_0_SIZE;
+ unsigned int direction : SQ_INSTRUCTION_CF_JMP_CALL_1_DIRECTION_SIZE;
+ unsigned int bool_addr : SQ_INSTRUCTION_CF_JMP_CALL_1_BOOL_ADDR_SIZE;
+ unsigned int condition : SQ_INSTRUCTION_CF_JMP_CALL_1_CONDITION_SIZE;
+ unsigned int address_mode : SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_MODE_SIZE;
+ unsigned int opcode : SQ_INSTRUCTION_CF_JMP_CALL_1_OPCODE_SIZE;
+ unsigned int address : SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_SIZE;
+ unsigned int reserved_1 : SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_1_SIZE;
+ unsigned int force_call : SQ_INSTRUCTION_CF_JMP_CALL_1_FORCE_CALL_SIZE;
+ unsigned int reserved_2 : SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_2_SIZE;
+ } sq_instruction_cf_jmp_call_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_jmp_call_1_t {
+ unsigned int reserved_2 : SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_2_SIZE;
+ unsigned int force_call : SQ_INSTRUCTION_CF_JMP_CALL_1_FORCE_CALL_SIZE;
+ unsigned int reserved_1 : SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_1_SIZE;
+ unsigned int address : SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_SIZE;
+ unsigned int opcode : SQ_INSTRUCTION_CF_JMP_CALL_1_OPCODE_SIZE;
+ unsigned int address_mode : SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_MODE_SIZE;
+ unsigned int condition : SQ_INSTRUCTION_CF_JMP_CALL_1_CONDITION_SIZE;
+ unsigned int bool_addr : SQ_INSTRUCTION_CF_JMP_CALL_1_BOOL_ADDR_SIZE;
+ unsigned int direction : SQ_INSTRUCTION_CF_JMP_CALL_1_DIRECTION_SIZE;
+ unsigned int reserved_0 : SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_0_SIZE;
+ } sq_instruction_cf_jmp_call_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_cf_jmp_call_1_t f;
+} sq_instruction_cf_jmp_call_1_u;
+
+
+/*
+ * SQ_INSTRUCTION_CF_JMP_CALL_2 struct
+ */
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_RESERVED_SIZE 17
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_DIRECTION_SIZE 1
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_BOOL_ADDR_SIZE 8
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_CONDITION_SIZE 1
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_ADDRESS_MODE_SIZE 1
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_OPCODE_SIZE 4
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_RESERVED_SHIFT 0
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_DIRECTION_SHIFT 17
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_BOOL_ADDR_SHIFT 18
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_CONDITION_SHIFT 26
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_ADDRESS_MODE_SHIFT 27
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_OPCODE_SHIFT 28
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_RESERVED_MASK 0x0001ffff
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_DIRECTION_MASK 0x00020000
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_BOOL_ADDR_MASK 0x03fc0000
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_CONDITION_MASK 0x04000000
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_ADDRESS_MODE_MASK 0x08000000
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_OPCODE_MASK 0xf0000000
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_MASK \
+ (SQ_INSTRUCTION_CF_JMP_CALL_2_RESERVED_MASK | \
+ SQ_INSTRUCTION_CF_JMP_CALL_2_DIRECTION_MASK | \
+ SQ_INSTRUCTION_CF_JMP_CALL_2_BOOL_ADDR_MASK | \
+ SQ_INSTRUCTION_CF_JMP_CALL_2_CONDITION_MASK | \
+ SQ_INSTRUCTION_CF_JMP_CALL_2_ADDRESS_MODE_MASK | \
+ SQ_INSTRUCTION_CF_JMP_CALL_2_OPCODE_MASK)
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_2(reserved, direction, bool_addr, condition, address_mode, opcode) \
+ ((reserved << SQ_INSTRUCTION_CF_JMP_CALL_2_RESERVED_SHIFT) | \
+ (direction << SQ_INSTRUCTION_CF_JMP_CALL_2_DIRECTION_SHIFT) | \
+ (bool_addr << SQ_INSTRUCTION_CF_JMP_CALL_2_BOOL_ADDR_SHIFT) | \
+ (condition << SQ_INSTRUCTION_CF_JMP_CALL_2_CONDITION_SHIFT) | \
+ (address_mode << SQ_INSTRUCTION_CF_JMP_CALL_2_ADDRESS_MODE_SHIFT) | \
+ (opcode << SQ_INSTRUCTION_CF_JMP_CALL_2_OPCODE_SHIFT))
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_GET_RESERVED(sq_instruction_cf_jmp_call_2) \
+ ((sq_instruction_cf_jmp_call_2 & SQ_INSTRUCTION_CF_JMP_CALL_2_RESERVED_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_2_RESERVED_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_GET_DIRECTION(sq_instruction_cf_jmp_call_2) \
+ ((sq_instruction_cf_jmp_call_2 & SQ_INSTRUCTION_CF_JMP_CALL_2_DIRECTION_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_2_DIRECTION_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_GET_BOOL_ADDR(sq_instruction_cf_jmp_call_2) \
+ ((sq_instruction_cf_jmp_call_2 & SQ_INSTRUCTION_CF_JMP_CALL_2_BOOL_ADDR_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_2_BOOL_ADDR_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_GET_CONDITION(sq_instruction_cf_jmp_call_2) \
+ ((sq_instruction_cf_jmp_call_2 & SQ_INSTRUCTION_CF_JMP_CALL_2_CONDITION_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_2_CONDITION_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_GET_ADDRESS_MODE(sq_instruction_cf_jmp_call_2) \
+ ((sq_instruction_cf_jmp_call_2 & SQ_INSTRUCTION_CF_JMP_CALL_2_ADDRESS_MODE_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_2_ADDRESS_MODE_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_GET_OPCODE(sq_instruction_cf_jmp_call_2) \
+ ((sq_instruction_cf_jmp_call_2 & SQ_INSTRUCTION_CF_JMP_CALL_2_OPCODE_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_2_OPCODE_SHIFT)
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_SET_RESERVED(sq_instruction_cf_jmp_call_2_reg, reserved) \
+ sq_instruction_cf_jmp_call_2_reg = (sq_instruction_cf_jmp_call_2_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_2_RESERVED_MASK) | (reserved << SQ_INSTRUCTION_CF_JMP_CALL_2_RESERVED_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_SET_DIRECTION(sq_instruction_cf_jmp_call_2_reg, direction) \
+ sq_instruction_cf_jmp_call_2_reg = (sq_instruction_cf_jmp_call_2_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_2_DIRECTION_MASK) | (direction << SQ_INSTRUCTION_CF_JMP_CALL_2_DIRECTION_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_SET_BOOL_ADDR(sq_instruction_cf_jmp_call_2_reg, bool_addr) \
+ sq_instruction_cf_jmp_call_2_reg = (sq_instruction_cf_jmp_call_2_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_2_BOOL_ADDR_MASK) | (bool_addr << SQ_INSTRUCTION_CF_JMP_CALL_2_BOOL_ADDR_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_SET_CONDITION(sq_instruction_cf_jmp_call_2_reg, condition) \
+ sq_instruction_cf_jmp_call_2_reg = (sq_instruction_cf_jmp_call_2_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_2_CONDITION_MASK) | (condition << SQ_INSTRUCTION_CF_JMP_CALL_2_CONDITION_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_SET_ADDRESS_MODE(sq_instruction_cf_jmp_call_2_reg, address_mode) \
+ sq_instruction_cf_jmp_call_2_reg = (sq_instruction_cf_jmp_call_2_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_2_ADDRESS_MODE_MASK) | (address_mode << SQ_INSTRUCTION_CF_JMP_CALL_2_ADDRESS_MODE_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_SET_OPCODE(sq_instruction_cf_jmp_call_2_reg, opcode) \
+ sq_instruction_cf_jmp_call_2_reg = (sq_instruction_cf_jmp_call_2_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_2_OPCODE_MASK) | (opcode << SQ_INSTRUCTION_CF_JMP_CALL_2_OPCODE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_jmp_call_2_t {
+ unsigned int reserved : SQ_INSTRUCTION_CF_JMP_CALL_2_RESERVED_SIZE;
+ unsigned int direction : SQ_INSTRUCTION_CF_JMP_CALL_2_DIRECTION_SIZE;
+ unsigned int bool_addr : SQ_INSTRUCTION_CF_JMP_CALL_2_BOOL_ADDR_SIZE;
+ unsigned int condition : SQ_INSTRUCTION_CF_JMP_CALL_2_CONDITION_SIZE;
+ unsigned int address_mode : SQ_INSTRUCTION_CF_JMP_CALL_2_ADDRESS_MODE_SIZE;
+ unsigned int opcode : SQ_INSTRUCTION_CF_JMP_CALL_2_OPCODE_SIZE;
+ } sq_instruction_cf_jmp_call_2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_jmp_call_2_t {
+ unsigned int opcode : SQ_INSTRUCTION_CF_JMP_CALL_2_OPCODE_SIZE;
+ unsigned int address_mode : SQ_INSTRUCTION_CF_JMP_CALL_2_ADDRESS_MODE_SIZE;
+ unsigned int condition : SQ_INSTRUCTION_CF_JMP_CALL_2_CONDITION_SIZE;
+ unsigned int bool_addr : SQ_INSTRUCTION_CF_JMP_CALL_2_BOOL_ADDR_SIZE;
+ unsigned int direction : SQ_INSTRUCTION_CF_JMP_CALL_2_DIRECTION_SIZE;
+ unsigned int reserved : SQ_INSTRUCTION_CF_JMP_CALL_2_RESERVED_SIZE;
+ } sq_instruction_cf_jmp_call_2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_cf_jmp_call_2_t f;
+} sq_instruction_cf_jmp_call_2_u;
+
+
+/*
+ * SQ_INSTRUCTION_CF_ALLOC_0 struct
+ */
+
+#define SQ_INSTRUCTION_CF_ALLOC_0_SIZE_SIZE 4
+#define SQ_INSTRUCTION_CF_ALLOC_0_RESERVED_SIZE 28
+
+#define SQ_INSTRUCTION_CF_ALLOC_0_SIZE_SHIFT 0
+#define SQ_INSTRUCTION_CF_ALLOC_0_RESERVED_SHIFT 4
+
+#define SQ_INSTRUCTION_CF_ALLOC_0_SIZE_MASK 0x0000000f
+#define SQ_INSTRUCTION_CF_ALLOC_0_RESERVED_MASK 0xfffffff0
+
+#define SQ_INSTRUCTION_CF_ALLOC_0_MASK \
+ (SQ_INSTRUCTION_CF_ALLOC_0_SIZE_MASK | \
+ SQ_INSTRUCTION_CF_ALLOC_0_RESERVED_MASK)
+
+#define SQ_INSTRUCTION_CF_ALLOC_0(size, reserved) \
+ ((size << SQ_INSTRUCTION_CF_ALLOC_0_SIZE_SHIFT) | \
+ (reserved << SQ_INSTRUCTION_CF_ALLOC_0_RESERVED_SHIFT))
+
+#define SQ_INSTRUCTION_CF_ALLOC_0_GET_SIZE(sq_instruction_cf_alloc_0) \
+ ((sq_instruction_cf_alloc_0 & SQ_INSTRUCTION_CF_ALLOC_0_SIZE_MASK) >> SQ_INSTRUCTION_CF_ALLOC_0_SIZE_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_0_GET_RESERVED(sq_instruction_cf_alloc_0) \
+ ((sq_instruction_cf_alloc_0 & SQ_INSTRUCTION_CF_ALLOC_0_RESERVED_MASK) >> SQ_INSTRUCTION_CF_ALLOC_0_RESERVED_SHIFT)
+
+#define SQ_INSTRUCTION_CF_ALLOC_0_SET_SIZE(sq_instruction_cf_alloc_0_reg, size) \
+ sq_instruction_cf_alloc_0_reg = (sq_instruction_cf_alloc_0_reg & ~SQ_INSTRUCTION_CF_ALLOC_0_SIZE_MASK) | (size << SQ_INSTRUCTION_CF_ALLOC_0_SIZE_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_0_SET_RESERVED(sq_instruction_cf_alloc_0_reg, reserved) \
+ sq_instruction_cf_alloc_0_reg = (sq_instruction_cf_alloc_0_reg & ~SQ_INSTRUCTION_CF_ALLOC_0_RESERVED_MASK) | (reserved << SQ_INSTRUCTION_CF_ALLOC_0_RESERVED_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_alloc_0_t {
+ unsigned int size : SQ_INSTRUCTION_CF_ALLOC_0_SIZE_SIZE;
+ unsigned int reserved : SQ_INSTRUCTION_CF_ALLOC_0_RESERVED_SIZE;
+ } sq_instruction_cf_alloc_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_alloc_0_t {
+ unsigned int reserved : SQ_INSTRUCTION_CF_ALLOC_0_RESERVED_SIZE;
+ unsigned int size : SQ_INSTRUCTION_CF_ALLOC_0_SIZE_SIZE;
+ } sq_instruction_cf_alloc_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_cf_alloc_0_t f;
+} sq_instruction_cf_alloc_0_u;
+
+
+/*
+ * SQ_INSTRUCTION_CF_ALLOC_1 struct
+ */
+
+#define SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_0_SIZE 8
+#define SQ_INSTRUCTION_CF_ALLOC_1_NO_SERIAL_SIZE 1
+#define SQ_INSTRUCTION_CF_ALLOC_1_BUFFER_SELECT_SIZE 2
+#define SQ_INSTRUCTION_CF_ALLOC_1_ALLOC_MODE_SIZE 1
+#define SQ_INSTRUCTION_CF_ALLOC_1_OPCODE_SIZE 4
+#define SQ_INSTRUCTION_CF_ALLOC_1_SIZE_SIZE 4
+#define SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_1_SIZE 12
+
+#define SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_0_SHIFT 0
+#define SQ_INSTRUCTION_CF_ALLOC_1_NO_SERIAL_SHIFT 8
+#define SQ_INSTRUCTION_CF_ALLOC_1_BUFFER_SELECT_SHIFT 9
+#define SQ_INSTRUCTION_CF_ALLOC_1_ALLOC_MODE_SHIFT 11
+#define SQ_INSTRUCTION_CF_ALLOC_1_OPCODE_SHIFT 12
+#define SQ_INSTRUCTION_CF_ALLOC_1_SIZE_SHIFT 16
+#define SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_1_SHIFT 20
+
+#define SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_0_MASK 0x000000ff
+#define SQ_INSTRUCTION_CF_ALLOC_1_NO_SERIAL_MASK 0x00000100
+#define SQ_INSTRUCTION_CF_ALLOC_1_BUFFER_SELECT_MASK 0x00000600
+#define SQ_INSTRUCTION_CF_ALLOC_1_ALLOC_MODE_MASK 0x00000800
+#define SQ_INSTRUCTION_CF_ALLOC_1_OPCODE_MASK 0x0000f000
+#define SQ_INSTRUCTION_CF_ALLOC_1_SIZE_MASK 0x000f0000
+#define SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_1_MASK 0xfff00000
+
+#define SQ_INSTRUCTION_CF_ALLOC_1_MASK \
+ (SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_0_MASK | \
+ SQ_INSTRUCTION_CF_ALLOC_1_NO_SERIAL_MASK | \
+ SQ_INSTRUCTION_CF_ALLOC_1_BUFFER_SELECT_MASK | \
+ SQ_INSTRUCTION_CF_ALLOC_1_ALLOC_MODE_MASK | \
+ SQ_INSTRUCTION_CF_ALLOC_1_OPCODE_MASK | \
+ SQ_INSTRUCTION_CF_ALLOC_1_SIZE_MASK | \
+ SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_1_MASK)
+
+#define SQ_INSTRUCTION_CF_ALLOC_1(reserved_0, no_serial, buffer_select, alloc_mode, opcode, size, reserved_1) \
+ ((reserved_0 << SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_0_SHIFT) | \
+ (no_serial << SQ_INSTRUCTION_CF_ALLOC_1_NO_SERIAL_SHIFT) | \
+ (buffer_select << SQ_INSTRUCTION_CF_ALLOC_1_BUFFER_SELECT_SHIFT) | \
+ (alloc_mode << SQ_INSTRUCTION_CF_ALLOC_1_ALLOC_MODE_SHIFT) | \
+ (opcode << SQ_INSTRUCTION_CF_ALLOC_1_OPCODE_SHIFT) | \
+ (size << SQ_INSTRUCTION_CF_ALLOC_1_SIZE_SHIFT) | \
+ (reserved_1 << SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_1_SHIFT))
+
+#define SQ_INSTRUCTION_CF_ALLOC_1_GET_RESERVED_0(sq_instruction_cf_alloc_1) \
+ ((sq_instruction_cf_alloc_1 & SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_0_MASK) >> SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_0_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_1_GET_NO_SERIAL(sq_instruction_cf_alloc_1) \
+ ((sq_instruction_cf_alloc_1 & SQ_INSTRUCTION_CF_ALLOC_1_NO_SERIAL_MASK) >> SQ_INSTRUCTION_CF_ALLOC_1_NO_SERIAL_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_1_GET_BUFFER_SELECT(sq_instruction_cf_alloc_1) \
+ ((sq_instruction_cf_alloc_1 & SQ_INSTRUCTION_CF_ALLOC_1_BUFFER_SELECT_MASK) >> SQ_INSTRUCTION_CF_ALLOC_1_BUFFER_SELECT_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_1_GET_ALLOC_MODE(sq_instruction_cf_alloc_1) \
+ ((sq_instruction_cf_alloc_1 & SQ_INSTRUCTION_CF_ALLOC_1_ALLOC_MODE_MASK) >> SQ_INSTRUCTION_CF_ALLOC_1_ALLOC_MODE_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_1_GET_OPCODE(sq_instruction_cf_alloc_1) \
+ ((sq_instruction_cf_alloc_1 & SQ_INSTRUCTION_CF_ALLOC_1_OPCODE_MASK) >> SQ_INSTRUCTION_CF_ALLOC_1_OPCODE_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_1_GET_SIZE(sq_instruction_cf_alloc_1) \
+ ((sq_instruction_cf_alloc_1 & SQ_INSTRUCTION_CF_ALLOC_1_SIZE_MASK) >> SQ_INSTRUCTION_CF_ALLOC_1_SIZE_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_1_GET_RESERVED_1(sq_instruction_cf_alloc_1) \
+ ((sq_instruction_cf_alloc_1 & SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_1_MASK) >> SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_1_SHIFT)
+
+#define SQ_INSTRUCTION_CF_ALLOC_1_SET_RESERVED_0(sq_instruction_cf_alloc_1_reg, reserved_0) \
+ sq_instruction_cf_alloc_1_reg = (sq_instruction_cf_alloc_1_reg & ~SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_0_MASK) | (reserved_0 << SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_0_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_1_SET_NO_SERIAL(sq_instruction_cf_alloc_1_reg, no_serial) \
+ sq_instruction_cf_alloc_1_reg = (sq_instruction_cf_alloc_1_reg & ~SQ_INSTRUCTION_CF_ALLOC_1_NO_SERIAL_MASK) | (no_serial << SQ_INSTRUCTION_CF_ALLOC_1_NO_SERIAL_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_1_SET_BUFFER_SELECT(sq_instruction_cf_alloc_1_reg, buffer_select) \
+ sq_instruction_cf_alloc_1_reg = (sq_instruction_cf_alloc_1_reg & ~SQ_INSTRUCTION_CF_ALLOC_1_BUFFER_SELECT_MASK) | (buffer_select << SQ_INSTRUCTION_CF_ALLOC_1_BUFFER_SELECT_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_1_SET_ALLOC_MODE(sq_instruction_cf_alloc_1_reg, alloc_mode) \
+ sq_instruction_cf_alloc_1_reg = (sq_instruction_cf_alloc_1_reg & ~SQ_INSTRUCTION_CF_ALLOC_1_ALLOC_MODE_MASK) | (alloc_mode << SQ_INSTRUCTION_CF_ALLOC_1_ALLOC_MODE_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_1_SET_OPCODE(sq_instruction_cf_alloc_1_reg, opcode) \
+ sq_instruction_cf_alloc_1_reg = (sq_instruction_cf_alloc_1_reg & ~SQ_INSTRUCTION_CF_ALLOC_1_OPCODE_MASK) | (opcode << SQ_INSTRUCTION_CF_ALLOC_1_OPCODE_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_1_SET_SIZE(sq_instruction_cf_alloc_1_reg, size) \
+ sq_instruction_cf_alloc_1_reg = (sq_instruction_cf_alloc_1_reg & ~SQ_INSTRUCTION_CF_ALLOC_1_SIZE_MASK) | (size << SQ_INSTRUCTION_CF_ALLOC_1_SIZE_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_1_SET_RESERVED_1(sq_instruction_cf_alloc_1_reg, reserved_1) \
+ sq_instruction_cf_alloc_1_reg = (sq_instruction_cf_alloc_1_reg & ~SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_1_MASK) | (reserved_1 << SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_1_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_alloc_1_t {
+ unsigned int reserved_0 : SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_0_SIZE;
+ unsigned int no_serial : SQ_INSTRUCTION_CF_ALLOC_1_NO_SERIAL_SIZE;
+ unsigned int buffer_select : SQ_INSTRUCTION_CF_ALLOC_1_BUFFER_SELECT_SIZE;
+ unsigned int alloc_mode : SQ_INSTRUCTION_CF_ALLOC_1_ALLOC_MODE_SIZE;
+ unsigned int opcode : SQ_INSTRUCTION_CF_ALLOC_1_OPCODE_SIZE;
+ unsigned int size : SQ_INSTRUCTION_CF_ALLOC_1_SIZE_SIZE;
+ unsigned int reserved_1 : SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_1_SIZE;
+ } sq_instruction_cf_alloc_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_alloc_1_t {
+ unsigned int reserved_1 : SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_1_SIZE;
+ unsigned int size : SQ_INSTRUCTION_CF_ALLOC_1_SIZE_SIZE;
+ unsigned int opcode : SQ_INSTRUCTION_CF_ALLOC_1_OPCODE_SIZE;
+ unsigned int alloc_mode : SQ_INSTRUCTION_CF_ALLOC_1_ALLOC_MODE_SIZE;
+ unsigned int buffer_select : SQ_INSTRUCTION_CF_ALLOC_1_BUFFER_SELECT_SIZE;
+ unsigned int no_serial : SQ_INSTRUCTION_CF_ALLOC_1_NO_SERIAL_SIZE;
+ unsigned int reserved_0 : SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_0_SIZE;
+ } sq_instruction_cf_alloc_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_cf_alloc_1_t f;
+} sq_instruction_cf_alloc_1_u;
+
+
+/*
+ * SQ_INSTRUCTION_CF_ALLOC_2 struct
+ */
+
+#define SQ_INSTRUCTION_CF_ALLOC_2_RESERVED_SIZE 24
+#define SQ_INSTRUCTION_CF_ALLOC_2_NO_SERIAL_SIZE 1
+#define SQ_INSTRUCTION_CF_ALLOC_2_BUFFER_SELECT_SIZE 2
+#define SQ_INSTRUCTION_CF_ALLOC_2_ALLOC_MODE_SIZE 1
+#define SQ_INSTRUCTION_CF_ALLOC_2_OPCODE_SIZE 4
+
+#define SQ_INSTRUCTION_CF_ALLOC_2_RESERVED_SHIFT 0
+#define SQ_INSTRUCTION_CF_ALLOC_2_NO_SERIAL_SHIFT 24
+#define SQ_INSTRUCTION_CF_ALLOC_2_BUFFER_SELECT_SHIFT 25
+#define SQ_INSTRUCTION_CF_ALLOC_2_ALLOC_MODE_SHIFT 27
+#define SQ_INSTRUCTION_CF_ALLOC_2_OPCODE_SHIFT 28
+
+#define SQ_INSTRUCTION_CF_ALLOC_2_RESERVED_MASK 0x00ffffff
+#define SQ_INSTRUCTION_CF_ALLOC_2_NO_SERIAL_MASK 0x01000000
+#define SQ_INSTRUCTION_CF_ALLOC_2_BUFFER_SELECT_MASK 0x06000000
+#define SQ_INSTRUCTION_CF_ALLOC_2_ALLOC_MODE_MASK 0x08000000
+#define SQ_INSTRUCTION_CF_ALLOC_2_OPCODE_MASK 0xf0000000
+
+#define SQ_INSTRUCTION_CF_ALLOC_2_MASK \
+ (SQ_INSTRUCTION_CF_ALLOC_2_RESERVED_MASK | \
+ SQ_INSTRUCTION_CF_ALLOC_2_NO_SERIAL_MASK | \
+ SQ_INSTRUCTION_CF_ALLOC_2_BUFFER_SELECT_MASK | \
+ SQ_INSTRUCTION_CF_ALLOC_2_ALLOC_MODE_MASK | \
+ SQ_INSTRUCTION_CF_ALLOC_2_OPCODE_MASK)
+
+#define SQ_INSTRUCTION_CF_ALLOC_2(reserved, no_serial, buffer_select, alloc_mode, opcode) \
+ ((reserved << SQ_INSTRUCTION_CF_ALLOC_2_RESERVED_SHIFT) | \
+ (no_serial << SQ_INSTRUCTION_CF_ALLOC_2_NO_SERIAL_SHIFT) | \
+ (buffer_select << SQ_INSTRUCTION_CF_ALLOC_2_BUFFER_SELECT_SHIFT) | \
+ (alloc_mode << SQ_INSTRUCTION_CF_ALLOC_2_ALLOC_MODE_SHIFT) | \
+ (opcode << SQ_INSTRUCTION_CF_ALLOC_2_OPCODE_SHIFT))
+
+#define SQ_INSTRUCTION_CF_ALLOC_2_GET_RESERVED(sq_instruction_cf_alloc_2) \
+ ((sq_instruction_cf_alloc_2 & SQ_INSTRUCTION_CF_ALLOC_2_RESERVED_MASK) >> SQ_INSTRUCTION_CF_ALLOC_2_RESERVED_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_2_GET_NO_SERIAL(sq_instruction_cf_alloc_2) \
+ ((sq_instruction_cf_alloc_2 & SQ_INSTRUCTION_CF_ALLOC_2_NO_SERIAL_MASK) >> SQ_INSTRUCTION_CF_ALLOC_2_NO_SERIAL_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_2_GET_BUFFER_SELECT(sq_instruction_cf_alloc_2) \
+ ((sq_instruction_cf_alloc_2 & SQ_INSTRUCTION_CF_ALLOC_2_BUFFER_SELECT_MASK) >> SQ_INSTRUCTION_CF_ALLOC_2_BUFFER_SELECT_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_2_GET_ALLOC_MODE(sq_instruction_cf_alloc_2) \
+ ((sq_instruction_cf_alloc_2 & SQ_INSTRUCTION_CF_ALLOC_2_ALLOC_MODE_MASK) >> SQ_INSTRUCTION_CF_ALLOC_2_ALLOC_MODE_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_2_GET_OPCODE(sq_instruction_cf_alloc_2) \
+ ((sq_instruction_cf_alloc_2 & SQ_INSTRUCTION_CF_ALLOC_2_OPCODE_MASK) >> SQ_INSTRUCTION_CF_ALLOC_2_OPCODE_SHIFT)
+
+#define SQ_INSTRUCTION_CF_ALLOC_2_SET_RESERVED(sq_instruction_cf_alloc_2_reg, reserved) \
+ sq_instruction_cf_alloc_2_reg = (sq_instruction_cf_alloc_2_reg & ~SQ_INSTRUCTION_CF_ALLOC_2_RESERVED_MASK) | (reserved << SQ_INSTRUCTION_CF_ALLOC_2_RESERVED_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_2_SET_NO_SERIAL(sq_instruction_cf_alloc_2_reg, no_serial) \
+ sq_instruction_cf_alloc_2_reg = (sq_instruction_cf_alloc_2_reg & ~SQ_INSTRUCTION_CF_ALLOC_2_NO_SERIAL_MASK) | (no_serial << SQ_INSTRUCTION_CF_ALLOC_2_NO_SERIAL_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_2_SET_BUFFER_SELECT(sq_instruction_cf_alloc_2_reg, buffer_select) \
+ sq_instruction_cf_alloc_2_reg = (sq_instruction_cf_alloc_2_reg & ~SQ_INSTRUCTION_CF_ALLOC_2_BUFFER_SELECT_MASK) | (buffer_select << SQ_INSTRUCTION_CF_ALLOC_2_BUFFER_SELECT_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_2_SET_ALLOC_MODE(sq_instruction_cf_alloc_2_reg, alloc_mode) \
+ sq_instruction_cf_alloc_2_reg = (sq_instruction_cf_alloc_2_reg & ~SQ_INSTRUCTION_CF_ALLOC_2_ALLOC_MODE_MASK) | (alloc_mode << SQ_INSTRUCTION_CF_ALLOC_2_ALLOC_MODE_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_2_SET_OPCODE(sq_instruction_cf_alloc_2_reg, opcode) \
+ sq_instruction_cf_alloc_2_reg = (sq_instruction_cf_alloc_2_reg & ~SQ_INSTRUCTION_CF_ALLOC_2_OPCODE_MASK) | (opcode << SQ_INSTRUCTION_CF_ALLOC_2_OPCODE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_alloc_2_t {
+ unsigned int reserved : SQ_INSTRUCTION_CF_ALLOC_2_RESERVED_SIZE;
+ unsigned int no_serial : SQ_INSTRUCTION_CF_ALLOC_2_NO_SERIAL_SIZE;
+ unsigned int buffer_select : SQ_INSTRUCTION_CF_ALLOC_2_BUFFER_SELECT_SIZE;
+ unsigned int alloc_mode : SQ_INSTRUCTION_CF_ALLOC_2_ALLOC_MODE_SIZE;
+ unsigned int opcode : SQ_INSTRUCTION_CF_ALLOC_2_OPCODE_SIZE;
+ } sq_instruction_cf_alloc_2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_alloc_2_t {
+ unsigned int opcode : SQ_INSTRUCTION_CF_ALLOC_2_OPCODE_SIZE;
+ unsigned int alloc_mode : SQ_INSTRUCTION_CF_ALLOC_2_ALLOC_MODE_SIZE;
+ unsigned int buffer_select : SQ_INSTRUCTION_CF_ALLOC_2_BUFFER_SELECT_SIZE;
+ unsigned int no_serial : SQ_INSTRUCTION_CF_ALLOC_2_NO_SERIAL_SIZE;
+ unsigned int reserved : SQ_INSTRUCTION_CF_ALLOC_2_RESERVED_SIZE;
+ } sq_instruction_cf_alloc_2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_cf_alloc_2_t f;
+} sq_instruction_cf_alloc_2_u;
+
+
+/*
+ * SQ_INSTRUCTION_TFETCH_0 struct
+ */
+
+#define SQ_INSTRUCTION_TFETCH_0_OPCODE_SIZE 5
+#define SQ_INSTRUCTION_TFETCH_0_SRC_GPR_SIZE 6
+#define SQ_INSTRUCTION_TFETCH_0_SRC_GPR_AM_SIZE 1
+#define SQ_INSTRUCTION_TFETCH_0_DST_GPR_SIZE 6
+#define SQ_INSTRUCTION_TFETCH_0_DST_GPR_AM_SIZE 1
+#define SQ_INSTRUCTION_TFETCH_0_FETCH_VALID_ONLY_SIZE 1
+#define SQ_INSTRUCTION_TFETCH_0_CONST_INDEX_SIZE 5
+#define SQ_INSTRUCTION_TFETCH_0_TX_COORD_DENORM_SIZE 1
+#define SQ_INSTRUCTION_TFETCH_0_SRC_SEL_X_SIZE 2
+#define SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Y_SIZE 2
+#define SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Z_SIZE 2
+
+#define SQ_INSTRUCTION_TFETCH_0_OPCODE_SHIFT 0
+#define SQ_INSTRUCTION_TFETCH_0_SRC_GPR_SHIFT 5
+#define SQ_INSTRUCTION_TFETCH_0_SRC_GPR_AM_SHIFT 11
+#define SQ_INSTRUCTION_TFETCH_0_DST_GPR_SHIFT 12
+#define SQ_INSTRUCTION_TFETCH_0_DST_GPR_AM_SHIFT 18
+#define SQ_INSTRUCTION_TFETCH_0_FETCH_VALID_ONLY_SHIFT 19
+#define SQ_INSTRUCTION_TFETCH_0_CONST_INDEX_SHIFT 20
+#define SQ_INSTRUCTION_TFETCH_0_TX_COORD_DENORM_SHIFT 25
+#define SQ_INSTRUCTION_TFETCH_0_SRC_SEL_X_SHIFT 26
+#define SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Y_SHIFT 28
+#define SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Z_SHIFT 30
+
+#define SQ_INSTRUCTION_TFETCH_0_OPCODE_MASK 0x0000001f
+#define SQ_INSTRUCTION_TFETCH_0_SRC_GPR_MASK 0x000007e0
+#define SQ_INSTRUCTION_TFETCH_0_SRC_GPR_AM_MASK 0x00000800
+#define SQ_INSTRUCTION_TFETCH_0_DST_GPR_MASK 0x0003f000
+#define SQ_INSTRUCTION_TFETCH_0_DST_GPR_AM_MASK 0x00040000
+#define SQ_INSTRUCTION_TFETCH_0_FETCH_VALID_ONLY_MASK 0x00080000
+#define SQ_INSTRUCTION_TFETCH_0_CONST_INDEX_MASK 0x01f00000
+#define SQ_INSTRUCTION_TFETCH_0_TX_COORD_DENORM_MASK 0x02000000
+#define SQ_INSTRUCTION_TFETCH_0_SRC_SEL_X_MASK 0x0c000000
+#define SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Y_MASK 0x30000000
+#define SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Z_MASK 0xc0000000
+
+#define SQ_INSTRUCTION_TFETCH_0_MASK \
+ (SQ_INSTRUCTION_TFETCH_0_OPCODE_MASK | \
+ SQ_INSTRUCTION_TFETCH_0_SRC_GPR_MASK | \
+ SQ_INSTRUCTION_TFETCH_0_SRC_GPR_AM_MASK | \
+ SQ_INSTRUCTION_TFETCH_0_DST_GPR_MASK | \
+ SQ_INSTRUCTION_TFETCH_0_DST_GPR_AM_MASK | \
+ SQ_INSTRUCTION_TFETCH_0_FETCH_VALID_ONLY_MASK | \
+ SQ_INSTRUCTION_TFETCH_0_CONST_INDEX_MASK | \
+ SQ_INSTRUCTION_TFETCH_0_TX_COORD_DENORM_MASK | \
+ SQ_INSTRUCTION_TFETCH_0_SRC_SEL_X_MASK | \
+ SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Y_MASK | \
+ SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Z_MASK)
+
+#define SQ_INSTRUCTION_TFETCH_0(opcode, src_gpr, src_gpr_am, dst_gpr, dst_gpr_am, fetch_valid_only, const_index, tx_coord_denorm, src_sel_x, src_sel_y, src_sel_z) \
+ ((opcode << SQ_INSTRUCTION_TFETCH_0_OPCODE_SHIFT) | \
+ (src_gpr << SQ_INSTRUCTION_TFETCH_0_SRC_GPR_SHIFT) | \
+ (src_gpr_am << SQ_INSTRUCTION_TFETCH_0_SRC_GPR_AM_SHIFT) | \
+ (dst_gpr << SQ_INSTRUCTION_TFETCH_0_DST_GPR_SHIFT) | \
+ (dst_gpr_am << SQ_INSTRUCTION_TFETCH_0_DST_GPR_AM_SHIFT) | \
+ (fetch_valid_only << SQ_INSTRUCTION_TFETCH_0_FETCH_VALID_ONLY_SHIFT) | \
+ (const_index << SQ_INSTRUCTION_TFETCH_0_CONST_INDEX_SHIFT) | \
+ (tx_coord_denorm << SQ_INSTRUCTION_TFETCH_0_TX_COORD_DENORM_SHIFT) | \
+ (src_sel_x << SQ_INSTRUCTION_TFETCH_0_SRC_SEL_X_SHIFT) | \
+ (src_sel_y << SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Y_SHIFT) | \
+ (src_sel_z << SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Z_SHIFT))
+
+#define SQ_INSTRUCTION_TFETCH_0_GET_OPCODE(sq_instruction_tfetch_0) \
+ ((sq_instruction_tfetch_0 & SQ_INSTRUCTION_TFETCH_0_OPCODE_MASK) >> SQ_INSTRUCTION_TFETCH_0_OPCODE_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_GET_SRC_GPR(sq_instruction_tfetch_0) \
+ ((sq_instruction_tfetch_0 & SQ_INSTRUCTION_TFETCH_0_SRC_GPR_MASK) >> SQ_INSTRUCTION_TFETCH_0_SRC_GPR_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_GET_SRC_GPR_AM(sq_instruction_tfetch_0) \
+ ((sq_instruction_tfetch_0 & SQ_INSTRUCTION_TFETCH_0_SRC_GPR_AM_MASK) >> SQ_INSTRUCTION_TFETCH_0_SRC_GPR_AM_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_GET_DST_GPR(sq_instruction_tfetch_0) \
+ ((sq_instruction_tfetch_0 & SQ_INSTRUCTION_TFETCH_0_DST_GPR_MASK) >> SQ_INSTRUCTION_TFETCH_0_DST_GPR_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_GET_DST_GPR_AM(sq_instruction_tfetch_0) \
+ ((sq_instruction_tfetch_0 & SQ_INSTRUCTION_TFETCH_0_DST_GPR_AM_MASK) >> SQ_INSTRUCTION_TFETCH_0_DST_GPR_AM_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_GET_FETCH_VALID_ONLY(sq_instruction_tfetch_0) \
+ ((sq_instruction_tfetch_0 & SQ_INSTRUCTION_TFETCH_0_FETCH_VALID_ONLY_MASK) >> SQ_INSTRUCTION_TFETCH_0_FETCH_VALID_ONLY_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_GET_CONST_INDEX(sq_instruction_tfetch_0) \
+ ((sq_instruction_tfetch_0 & SQ_INSTRUCTION_TFETCH_0_CONST_INDEX_MASK) >> SQ_INSTRUCTION_TFETCH_0_CONST_INDEX_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_GET_TX_COORD_DENORM(sq_instruction_tfetch_0) \
+ ((sq_instruction_tfetch_0 & SQ_INSTRUCTION_TFETCH_0_TX_COORD_DENORM_MASK) >> SQ_INSTRUCTION_TFETCH_0_TX_COORD_DENORM_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_GET_SRC_SEL_X(sq_instruction_tfetch_0) \
+ ((sq_instruction_tfetch_0 & SQ_INSTRUCTION_TFETCH_0_SRC_SEL_X_MASK) >> SQ_INSTRUCTION_TFETCH_0_SRC_SEL_X_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_GET_SRC_SEL_Y(sq_instruction_tfetch_0) \
+ ((sq_instruction_tfetch_0 & SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Y_MASK) >> SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Y_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_GET_SRC_SEL_Z(sq_instruction_tfetch_0) \
+ ((sq_instruction_tfetch_0 & SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Z_MASK) >> SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Z_SHIFT)
+
+#define SQ_INSTRUCTION_TFETCH_0_SET_OPCODE(sq_instruction_tfetch_0_reg, opcode) \
+ sq_instruction_tfetch_0_reg = (sq_instruction_tfetch_0_reg & ~SQ_INSTRUCTION_TFETCH_0_OPCODE_MASK) | (opcode << SQ_INSTRUCTION_TFETCH_0_OPCODE_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_SET_SRC_GPR(sq_instruction_tfetch_0_reg, src_gpr) \
+ sq_instruction_tfetch_0_reg = (sq_instruction_tfetch_0_reg & ~SQ_INSTRUCTION_TFETCH_0_SRC_GPR_MASK) | (src_gpr << SQ_INSTRUCTION_TFETCH_0_SRC_GPR_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_SET_SRC_GPR_AM(sq_instruction_tfetch_0_reg, src_gpr_am) \
+ sq_instruction_tfetch_0_reg = (sq_instruction_tfetch_0_reg & ~SQ_INSTRUCTION_TFETCH_0_SRC_GPR_AM_MASK) | (src_gpr_am << SQ_INSTRUCTION_TFETCH_0_SRC_GPR_AM_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_SET_DST_GPR(sq_instruction_tfetch_0_reg, dst_gpr) \
+ sq_instruction_tfetch_0_reg = (sq_instruction_tfetch_0_reg & ~SQ_INSTRUCTION_TFETCH_0_DST_GPR_MASK) | (dst_gpr << SQ_INSTRUCTION_TFETCH_0_DST_GPR_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_SET_DST_GPR_AM(sq_instruction_tfetch_0_reg, dst_gpr_am) \
+ sq_instruction_tfetch_0_reg = (sq_instruction_tfetch_0_reg & ~SQ_INSTRUCTION_TFETCH_0_DST_GPR_AM_MASK) | (dst_gpr_am << SQ_INSTRUCTION_TFETCH_0_DST_GPR_AM_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_SET_FETCH_VALID_ONLY(sq_instruction_tfetch_0_reg, fetch_valid_only) \
+ sq_instruction_tfetch_0_reg = (sq_instruction_tfetch_0_reg & ~SQ_INSTRUCTION_TFETCH_0_FETCH_VALID_ONLY_MASK) | (fetch_valid_only << SQ_INSTRUCTION_TFETCH_0_FETCH_VALID_ONLY_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_SET_CONST_INDEX(sq_instruction_tfetch_0_reg, const_index) \
+ sq_instruction_tfetch_0_reg = (sq_instruction_tfetch_0_reg & ~SQ_INSTRUCTION_TFETCH_0_CONST_INDEX_MASK) | (const_index << SQ_INSTRUCTION_TFETCH_0_CONST_INDEX_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_SET_TX_COORD_DENORM(sq_instruction_tfetch_0_reg, tx_coord_denorm) \
+ sq_instruction_tfetch_0_reg = (sq_instruction_tfetch_0_reg & ~SQ_INSTRUCTION_TFETCH_0_TX_COORD_DENORM_MASK) | (tx_coord_denorm << SQ_INSTRUCTION_TFETCH_0_TX_COORD_DENORM_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_SET_SRC_SEL_X(sq_instruction_tfetch_0_reg, src_sel_x) \
+ sq_instruction_tfetch_0_reg = (sq_instruction_tfetch_0_reg & ~SQ_INSTRUCTION_TFETCH_0_SRC_SEL_X_MASK) | (src_sel_x << SQ_INSTRUCTION_TFETCH_0_SRC_SEL_X_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_SET_SRC_SEL_Y(sq_instruction_tfetch_0_reg, src_sel_y) \
+ sq_instruction_tfetch_0_reg = (sq_instruction_tfetch_0_reg & ~SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Y_MASK) | (src_sel_y << SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Y_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_SET_SRC_SEL_Z(sq_instruction_tfetch_0_reg, src_sel_z) \
+ sq_instruction_tfetch_0_reg = (sq_instruction_tfetch_0_reg & ~SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Z_MASK) | (src_sel_z << SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Z_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_tfetch_0_t {
+ unsigned int opcode : SQ_INSTRUCTION_TFETCH_0_OPCODE_SIZE;
+ unsigned int src_gpr : SQ_INSTRUCTION_TFETCH_0_SRC_GPR_SIZE;
+ unsigned int src_gpr_am : SQ_INSTRUCTION_TFETCH_0_SRC_GPR_AM_SIZE;
+ unsigned int dst_gpr : SQ_INSTRUCTION_TFETCH_0_DST_GPR_SIZE;
+ unsigned int dst_gpr_am : SQ_INSTRUCTION_TFETCH_0_DST_GPR_AM_SIZE;
+ unsigned int fetch_valid_only : SQ_INSTRUCTION_TFETCH_0_FETCH_VALID_ONLY_SIZE;
+ unsigned int const_index : SQ_INSTRUCTION_TFETCH_0_CONST_INDEX_SIZE;
+ unsigned int tx_coord_denorm : SQ_INSTRUCTION_TFETCH_0_TX_COORD_DENORM_SIZE;
+ unsigned int src_sel_x : SQ_INSTRUCTION_TFETCH_0_SRC_SEL_X_SIZE;
+ unsigned int src_sel_y : SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Y_SIZE;
+ unsigned int src_sel_z : SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Z_SIZE;
+ } sq_instruction_tfetch_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_tfetch_0_t {
+ unsigned int src_sel_z : SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Z_SIZE;
+ unsigned int src_sel_y : SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Y_SIZE;
+ unsigned int src_sel_x : SQ_INSTRUCTION_TFETCH_0_SRC_SEL_X_SIZE;
+ unsigned int tx_coord_denorm : SQ_INSTRUCTION_TFETCH_0_TX_COORD_DENORM_SIZE;
+ unsigned int const_index : SQ_INSTRUCTION_TFETCH_0_CONST_INDEX_SIZE;
+ unsigned int fetch_valid_only : SQ_INSTRUCTION_TFETCH_0_FETCH_VALID_ONLY_SIZE;
+ unsigned int dst_gpr_am : SQ_INSTRUCTION_TFETCH_0_DST_GPR_AM_SIZE;
+ unsigned int dst_gpr : SQ_INSTRUCTION_TFETCH_0_DST_GPR_SIZE;
+ unsigned int src_gpr_am : SQ_INSTRUCTION_TFETCH_0_SRC_GPR_AM_SIZE;
+ unsigned int src_gpr : SQ_INSTRUCTION_TFETCH_0_SRC_GPR_SIZE;
+ unsigned int opcode : SQ_INSTRUCTION_TFETCH_0_OPCODE_SIZE;
+ } sq_instruction_tfetch_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_tfetch_0_t f;
+} sq_instruction_tfetch_0_u;
+
+
+/*
+ * SQ_INSTRUCTION_TFETCH_1 struct
+ */
+
+#define SQ_INSTRUCTION_TFETCH_1_DST_SEL_X_SIZE 3
+#define SQ_INSTRUCTION_TFETCH_1_DST_SEL_Y_SIZE 3
+#define SQ_INSTRUCTION_TFETCH_1_DST_SEL_Z_SIZE 3
+#define SQ_INSTRUCTION_TFETCH_1_DST_SEL_W_SIZE 3
+#define SQ_INSTRUCTION_TFETCH_1_MAG_FILTER_SIZE 2
+#define SQ_INSTRUCTION_TFETCH_1_MIN_FILTER_SIZE 2
+#define SQ_INSTRUCTION_TFETCH_1_MIP_FILTER_SIZE 2
+#define SQ_INSTRUCTION_TFETCH_1_ANISO_FILTER_SIZE 3
+#define SQ_INSTRUCTION_TFETCH_1_ARBITRARY_FILTER_SIZE 3
+#define SQ_INSTRUCTION_TFETCH_1_VOL_MAG_FILTER_SIZE 2
+#define SQ_INSTRUCTION_TFETCH_1_VOL_MIN_FILTER_SIZE 2
+#define SQ_INSTRUCTION_TFETCH_1_USE_COMP_LOD_SIZE 1
+#define SQ_INSTRUCTION_TFETCH_1_USE_REG_LOD_SIZE 2
+#define SQ_INSTRUCTION_TFETCH_1_PRED_SELECT_SIZE 1
+
+#define SQ_INSTRUCTION_TFETCH_1_DST_SEL_X_SHIFT 0
+#define SQ_INSTRUCTION_TFETCH_1_DST_SEL_Y_SHIFT 3
+#define SQ_INSTRUCTION_TFETCH_1_DST_SEL_Z_SHIFT 6
+#define SQ_INSTRUCTION_TFETCH_1_DST_SEL_W_SHIFT 9
+#define SQ_INSTRUCTION_TFETCH_1_MAG_FILTER_SHIFT 12
+#define SQ_INSTRUCTION_TFETCH_1_MIN_FILTER_SHIFT 14
+#define SQ_INSTRUCTION_TFETCH_1_MIP_FILTER_SHIFT 16
+#define SQ_INSTRUCTION_TFETCH_1_ANISO_FILTER_SHIFT 18
+#define SQ_INSTRUCTION_TFETCH_1_ARBITRARY_FILTER_SHIFT 21
+#define SQ_INSTRUCTION_TFETCH_1_VOL_MAG_FILTER_SHIFT 24
+#define SQ_INSTRUCTION_TFETCH_1_VOL_MIN_FILTER_SHIFT 26
+#define SQ_INSTRUCTION_TFETCH_1_USE_COMP_LOD_SHIFT 28
+#define SQ_INSTRUCTION_TFETCH_1_USE_REG_LOD_SHIFT 29
+#define SQ_INSTRUCTION_TFETCH_1_PRED_SELECT_SHIFT 31
+
+#define SQ_INSTRUCTION_TFETCH_1_DST_SEL_X_MASK 0x00000007
+#define SQ_INSTRUCTION_TFETCH_1_DST_SEL_Y_MASK 0x00000038
+#define SQ_INSTRUCTION_TFETCH_1_DST_SEL_Z_MASK 0x000001c0
+#define SQ_INSTRUCTION_TFETCH_1_DST_SEL_W_MASK 0x00000e00
+#define SQ_INSTRUCTION_TFETCH_1_MAG_FILTER_MASK 0x00003000
+#define SQ_INSTRUCTION_TFETCH_1_MIN_FILTER_MASK 0x0000c000
+#define SQ_INSTRUCTION_TFETCH_1_MIP_FILTER_MASK 0x00030000
+#define SQ_INSTRUCTION_TFETCH_1_ANISO_FILTER_MASK 0x001c0000
+#define SQ_INSTRUCTION_TFETCH_1_ARBITRARY_FILTER_MASK 0x00e00000
+#define SQ_INSTRUCTION_TFETCH_1_VOL_MAG_FILTER_MASK 0x03000000
+#define SQ_INSTRUCTION_TFETCH_1_VOL_MIN_FILTER_MASK 0x0c000000
+#define SQ_INSTRUCTION_TFETCH_1_USE_COMP_LOD_MASK 0x10000000
+#define SQ_INSTRUCTION_TFETCH_1_USE_REG_LOD_MASK 0x60000000
+#define SQ_INSTRUCTION_TFETCH_1_PRED_SELECT_MASK 0x80000000
+
+#define SQ_INSTRUCTION_TFETCH_1_MASK \
+ (SQ_INSTRUCTION_TFETCH_1_DST_SEL_X_MASK | \
+ SQ_INSTRUCTION_TFETCH_1_DST_SEL_Y_MASK | \
+ SQ_INSTRUCTION_TFETCH_1_DST_SEL_Z_MASK | \
+ SQ_INSTRUCTION_TFETCH_1_DST_SEL_W_MASK | \
+ SQ_INSTRUCTION_TFETCH_1_MAG_FILTER_MASK | \
+ SQ_INSTRUCTION_TFETCH_1_MIN_FILTER_MASK | \
+ SQ_INSTRUCTION_TFETCH_1_MIP_FILTER_MASK | \
+ SQ_INSTRUCTION_TFETCH_1_ANISO_FILTER_MASK | \
+ SQ_INSTRUCTION_TFETCH_1_ARBITRARY_FILTER_MASK | \
+ SQ_INSTRUCTION_TFETCH_1_VOL_MAG_FILTER_MASK | \
+ SQ_INSTRUCTION_TFETCH_1_VOL_MIN_FILTER_MASK | \
+ SQ_INSTRUCTION_TFETCH_1_USE_COMP_LOD_MASK | \
+ SQ_INSTRUCTION_TFETCH_1_USE_REG_LOD_MASK | \
+ SQ_INSTRUCTION_TFETCH_1_PRED_SELECT_MASK)
+
+#define SQ_INSTRUCTION_TFETCH_1(dst_sel_x, dst_sel_y, dst_sel_z, dst_sel_w, mag_filter, min_filter, mip_filter, aniso_filter, arbitrary_filter, vol_mag_filter, vol_min_filter, use_comp_lod, use_reg_lod, pred_select) \
+ ((dst_sel_x << SQ_INSTRUCTION_TFETCH_1_DST_SEL_X_SHIFT) | \
+ (dst_sel_y << SQ_INSTRUCTION_TFETCH_1_DST_SEL_Y_SHIFT) | \
+ (dst_sel_z << SQ_INSTRUCTION_TFETCH_1_DST_SEL_Z_SHIFT) | \
+ (dst_sel_w << SQ_INSTRUCTION_TFETCH_1_DST_SEL_W_SHIFT) | \
+ (mag_filter << SQ_INSTRUCTION_TFETCH_1_MAG_FILTER_SHIFT) | \
+ (min_filter << SQ_INSTRUCTION_TFETCH_1_MIN_FILTER_SHIFT) | \
+ (mip_filter << SQ_INSTRUCTION_TFETCH_1_MIP_FILTER_SHIFT) | \
+ (aniso_filter << SQ_INSTRUCTION_TFETCH_1_ANISO_FILTER_SHIFT) | \
+ (arbitrary_filter << SQ_INSTRUCTION_TFETCH_1_ARBITRARY_FILTER_SHIFT) | \
+ (vol_mag_filter << SQ_INSTRUCTION_TFETCH_1_VOL_MAG_FILTER_SHIFT) | \
+ (vol_min_filter << SQ_INSTRUCTION_TFETCH_1_VOL_MIN_FILTER_SHIFT) | \
+ (use_comp_lod << SQ_INSTRUCTION_TFETCH_1_USE_COMP_LOD_SHIFT) | \
+ (use_reg_lod << SQ_INSTRUCTION_TFETCH_1_USE_REG_LOD_SHIFT) | \
+ (pred_select << SQ_INSTRUCTION_TFETCH_1_PRED_SELECT_SHIFT))
+
+#define SQ_INSTRUCTION_TFETCH_1_GET_DST_SEL_X(sq_instruction_tfetch_1) \
+ ((sq_instruction_tfetch_1 & SQ_INSTRUCTION_TFETCH_1_DST_SEL_X_MASK) >> SQ_INSTRUCTION_TFETCH_1_DST_SEL_X_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_GET_DST_SEL_Y(sq_instruction_tfetch_1) \
+ ((sq_instruction_tfetch_1 & SQ_INSTRUCTION_TFETCH_1_DST_SEL_Y_MASK) >> SQ_INSTRUCTION_TFETCH_1_DST_SEL_Y_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_GET_DST_SEL_Z(sq_instruction_tfetch_1) \
+ ((sq_instruction_tfetch_1 & SQ_INSTRUCTION_TFETCH_1_DST_SEL_Z_MASK) >> SQ_INSTRUCTION_TFETCH_1_DST_SEL_Z_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_GET_DST_SEL_W(sq_instruction_tfetch_1) \
+ ((sq_instruction_tfetch_1 & SQ_INSTRUCTION_TFETCH_1_DST_SEL_W_MASK) >> SQ_INSTRUCTION_TFETCH_1_DST_SEL_W_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_GET_MAG_FILTER(sq_instruction_tfetch_1) \
+ ((sq_instruction_tfetch_1 & SQ_INSTRUCTION_TFETCH_1_MAG_FILTER_MASK) >> SQ_INSTRUCTION_TFETCH_1_MAG_FILTER_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_GET_MIN_FILTER(sq_instruction_tfetch_1) \
+ ((sq_instruction_tfetch_1 & SQ_INSTRUCTION_TFETCH_1_MIN_FILTER_MASK) >> SQ_INSTRUCTION_TFETCH_1_MIN_FILTER_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_GET_MIP_FILTER(sq_instruction_tfetch_1) \
+ ((sq_instruction_tfetch_1 & SQ_INSTRUCTION_TFETCH_1_MIP_FILTER_MASK) >> SQ_INSTRUCTION_TFETCH_1_MIP_FILTER_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_GET_ANISO_FILTER(sq_instruction_tfetch_1) \
+ ((sq_instruction_tfetch_1 & SQ_INSTRUCTION_TFETCH_1_ANISO_FILTER_MASK) >> SQ_INSTRUCTION_TFETCH_1_ANISO_FILTER_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_GET_ARBITRARY_FILTER(sq_instruction_tfetch_1) \
+ ((sq_instruction_tfetch_1 & SQ_INSTRUCTION_TFETCH_1_ARBITRARY_FILTER_MASK) >> SQ_INSTRUCTION_TFETCH_1_ARBITRARY_FILTER_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_GET_VOL_MAG_FILTER(sq_instruction_tfetch_1) \
+ ((sq_instruction_tfetch_1 & SQ_INSTRUCTION_TFETCH_1_VOL_MAG_FILTER_MASK) >> SQ_INSTRUCTION_TFETCH_1_VOL_MAG_FILTER_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_GET_VOL_MIN_FILTER(sq_instruction_tfetch_1) \
+ ((sq_instruction_tfetch_1 & SQ_INSTRUCTION_TFETCH_1_VOL_MIN_FILTER_MASK) >> SQ_INSTRUCTION_TFETCH_1_VOL_MIN_FILTER_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_GET_USE_COMP_LOD(sq_instruction_tfetch_1) \
+ ((sq_instruction_tfetch_1 & SQ_INSTRUCTION_TFETCH_1_USE_COMP_LOD_MASK) >> SQ_INSTRUCTION_TFETCH_1_USE_COMP_LOD_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_GET_USE_REG_LOD(sq_instruction_tfetch_1) \
+ ((sq_instruction_tfetch_1 & SQ_INSTRUCTION_TFETCH_1_USE_REG_LOD_MASK) >> SQ_INSTRUCTION_TFETCH_1_USE_REG_LOD_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_GET_PRED_SELECT(sq_instruction_tfetch_1) \
+ ((sq_instruction_tfetch_1 & SQ_INSTRUCTION_TFETCH_1_PRED_SELECT_MASK) >> SQ_INSTRUCTION_TFETCH_1_PRED_SELECT_SHIFT)
+
+#define SQ_INSTRUCTION_TFETCH_1_SET_DST_SEL_X(sq_instruction_tfetch_1_reg, dst_sel_x) \
+ sq_instruction_tfetch_1_reg = (sq_instruction_tfetch_1_reg & ~SQ_INSTRUCTION_TFETCH_1_DST_SEL_X_MASK) | (dst_sel_x << SQ_INSTRUCTION_TFETCH_1_DST_SEL_X_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_SET_DST_SEL_Y(sq_instruction_tfetch_1_reg, dst_sel_y) \
+ sq_instruction_tfetch_1_reg = (sq_instruction_tfetch_1_reg & ~SQ_INSTRUCTION_TFETCH_1_DST_SEL_Y_MASK) | (dst_sel_y << SQ_INSTRUCTION_TFETCH_1_DST_SEL_Y_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_SET_DST_SEL_Z(sq_instruction_tfetch_1_reg, dst_sel_z) \
+ sq_instruction_tfetch_1_reg = (sq_instruction_tfetch_1_reg & ~SQ_INSTRUCTION_TFETCH_1_DST_SEL_Z_MASK) | (dst_sel_z << SQ_INSTRUCTION_TFETCH_1_DST_SEL_Z_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_SET_DST_SEL_W(sq_instruction_tfetch_1_reg, dst_sel_w) \
+ sq_instruction_tfetch_1_reg = (sq_instruction_tfetch_1_reg & ~SQ_INSTRUCTION_TFETCH_1_DST_SEL_W_MASK) | (dst_sel_w << SQ_INSTRUCTION_TFETCH_1_DST_SEL_W_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_SET_MAG_FILTER(sq_instruction_tfetch_1_reg, mag_filter) \
+ sq_instruction_tfetch_1_reg = (sq_instruction_tfetch_1_reg & ~SQ_INSTRUCTION_TFETCH_1_MAG_FILTER_MASK) | (mag_filter << SQ_INSTRUCTION_TFETCH_1_MAG_FILTER_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_SET_MIN_FILTER(sq_instruction_tfetch_1_reg, min_filter) \
+ sq_instruction_tfetch_1_reg = (sq_instruction_tfetch_1_reg & ~SQ_INSTRUCTION_TFETCH_1_MIN_FILTER_MASK) | (min_filter << SQ_INSTRUCTION_TFETCH_1_MIN_FILTER_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_SET_MIP_FILTER(sq_instruction_tfetch_1_reg, mip_filter) \
+ sq_instruction_tfetch_1_reg = (sq_instruction_tfetch_1_reg & ~SQ_INSTRUCTION_TFETCH_1_MIP_FILTER_MASK) | (mip_filter << SQ_INSTRUCTION_TFETCH_1_MIP_FILTER_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_SET_ANISO_FILTER(sq_instruction_tfetch_1_reg, aniso_filter) \
+ sq_instruction_tfetch_1_reg = (sq_instruction_tfetch_1_reg & ~SQ_INSTRUCTION_TFETCH_1_ANISO_FILTER_MASK) | (aniso_filter << SQ_INSTRUCTION_TFETCH_1_ANISO_FILTER_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_SET_ARBITRARY_FILTER(sq_instruction_tfetch_1_reg, arbitrary_filter) \
+ sq_instruction_tfetch_1_reg = (sq_instruction_tfetch_1_reg & ~SQ_INSTRUCTION_TFETCH_1_ARBITRARY_FILTER_MASK) | (arbitrary_filter << SQ_INSTRUCTION_TFETCH_1_ARBITRARY_FILTER_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_SET_VOL_MAG_FILTER(sq_instruction_tfetch_1_reg, vol_mag_filter) \
+ sq_instruction_tfetch_1_reg = (sq_instruction_tfetch_1_reg & ~SQ_INSTRUCTION_TFETCH_1_VOL_MAG_FILTER_MASK) | (vol_mag_filter << SQ_INSTRUCTION_TFETCH_1_VOL_MAG_FILTER_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_SET_VOL_MIN_FILTER(sq_instruction_tfetch_1_reg, vol_min_filter) \
+ sq_instruction_tfetch_1_reg = (sq_instruction_tfetch_1_reg & ~SQ_INSTRUCTION_TFETCH_1_VOL_MIN_FILTER_MASK) | (vol_min_filter << SQ_INSTRUCTION_TFETCH_1_VOL_MIN_FILTER_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_SET_USE_COMP_LOD(sq_instruction_tfetch_1_reg, use_comp_lod) \
+ sq_instruction_tfetch_1_reg = (sq_instruction_tfetch_1_reg & ~SQ_INSTRUCTION_TFETCH_1_USE_COMP_LOD_MASK) | (use_comp_lod << SQ_INSTRUCTION_TFETCH_1_USE_COMP_LOD_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_SET_USE_REG_LOD(sq_instruction_tfetch_1_reg, use_reg_lod) \
+ sq_instruction_tfetch_1_reg = (sq_instruction_tfetch_1_reg & ~SQ_INSTRUCTION_TFETCH_1_USE_REG_LOD_MASK) | (use_reg_lod << SQ_INSTRUCTION_TFETCH_1_USE_REG_LOD_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_SET_PRED_SELECT(sq_instruction_tfetch_1_reg, pred_select) \
+ sq_instruction_tfetch_1_reg = (sq_instruction_tfetch_1_reg & ~SQ_INSTRUCTION_TFETCH_1_PRED_SELECT_MASK) | (pred_select << SQ_INSTRUCTION_TFETCH_1_PRED_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_tfetch_1_t {
+ unsigned int dst_sel_x : SQ_INSTRUCTION_TFETCH_1_DST_SEL_X_SIZE;
+ unsigned int dst_sel_y : SQ_INSTRUCTION_TFETCH_1_DST_SEL_Y_SIZE;
+ unsigned int dst_sel_z : SQ_INSTRUCTION_TFETCH_1_DST_SEL_Z_SIZE;
+ unsigned int dst_sel_w : SQ_INSTRUCTION_TFETCH_1_DST_SEL_W_SIZE;
+ unsigned int mag_filter : SQ_INSTRUCTION_TFETCH_1_MAG_FILTER_SIZE;
+ unsigned int min_filter : SQ_INSTRUCTION_TFETCH_1_MIN_FILTER_SIZE;
+ unsigned int mip_filter : SQ_INSTRUCTION_TFETCH_1_MIP_FILTER_SIZE;
+ unsigned int aniso_filter : SQ_INSTRUCTION_TFETCH_1_ANISO_FILTER_SIZE;
+ unsigned int arbitrary_filter : SQ_INSTRUCTION_TFETCH_1_ARBITRARY_FILTER_SIZE;
+ unsigned int vol_mag_filter : SQ_INSTRUCTION_TFETCH_1_VOL_MAG_FILTER_SIZE;
+ unsigned int vol_min_filter : SQ_INSTRUCTION_TFETCH_1_VOL_MIN_FILTER_SIZE;
+ unsigned int use_comp_lod : SQ_INSTRUCTION_TFETCH_1_USE_COMP_LOD_SIZE;
+ unsigned int use_reg_lod : SQ_INSTRUCTION_TFETCH_1_USE_REG_LOD_SIZE;
+ unsigned int pred_select : SQ_INSTRUCTION_TFETCH_1_PRED_SELECT_SIZE;
+ } sq_instruction_tfetch_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_tfetch_1_t {
+ unsigned int pred_select : SQ_INSTRUCTION_TFETCH_1_PRED_SELECT_SIZE;
+ unsigned int use_reg_lod : SQ_INSTRUCTION_TFETCH_1_USE_REG_LOD_SIZE;
+ unsigned int use_comp_lod : SQ_INSTRUCTION_TFETCH_1_USE_COMP_LOD_SIZE;
+ unsigned int vol_min_filter : SQ_INSTRUCTION_TFETCH_1_VOL_MIN_FILTER_SIZE;
+ unsigned int vol_mag_filter : SQ_INSTRUCTION_TFETCH_1_VOL_MAG_FILTER_SIZE;
+ unsigned int arbitrary_filter : SQ_INSTRUCTION_TFETCH_1_ARBITRARY_FILTER_SIZE;
+ unsigned int aniso_filter : SQ_INSTRUCTION_TFETCH_1_ANISO_FILTER_SIZE;
+ unsigned int mip_filter : SQ_INSTRUCTION_TFETCH_1_MIP_FILTER_SIZE;
+ unsigned int min_filter : SQ_INSTRUCTION_TFETCH_1_MIN_FILTER_SIZE;
+ unsigned int mag_filter : SQ_INSTRUCTION_TFETCH_1_MAG_FILTER_SIZE;
+ unsigned int dst_sel_w : SQ_INSTRUCTION_TFETCH_1_DST_SEL_W_SIZE;
+ unsigned int dst_sel_z : SQ_INSTRUCTION_TFETCH_1_DST_SEL_Z_SIZE;
+ unsigned int dst_sel_y : SQ_INSTRUCTION_TFETCH_1_DST_SEL_Y_SIZE;
+ unsigned int dst_sel_x : SQ_INSTRUCTION_TFETCH_1_DST_SEL_X_SIZE;
+ } sq_instruction_tfetch_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_tfetch_1_t f;
+} sq_instruction_tfetch_1_u;
+
+
+/*
+ * SQ_INSTRUCTION_TFETCH_2 struct
+ */
+
+#define SQ_INSTRUCTION_TFETCH_2_USE_REG_GRADIENTS_SIZE 1
+#define SQ_INSTRUCTION_TFETCH_2_SAMPLE_LOCATION_SIZE 1
+#define SQ_INSTRUCTION_TFETCH_2_LOD_BIAS_SIZE 7
+#define SQ_INSTRUCTION_TFETCH_2_UNUSED_SIZE 7
+#define SQ_INSTRUCTION_TFETCH_2_OFFSET_X_SIZE 5
+#define SQ_INSTRUCTION_TFETCH_2_OFFSET_Y_SIZE 5
+#define SQ_INSTRUCTION_TFETCH_2_OFFSET_Z_SIZE 5
+#define SQ_INSTRUCTION_TFETCH_2_PRED_CONDITION_SIZE 1
+
+#define SQ_INSTRUCTION_TFETCH_2_USE_REG_GRADIENTS_SHIFT 0
+#define SQ_INSTRUCTION_TFETCH_2_SAMPLE_LOCATION_SHIFT 1
+#define SQ_INSTRUCTION_TFETCH_2_LOD_BIAS_SHIFT 2
+#define SQ_INSTRUCTION_TFETCH_2_UNUSED_SHIFT 9
+#define SQ_INSTRUCTION_TFETCH_2_OFFSET_X_SHIFT 16
+#define SQ_INSTRUCTION_TFETCH_2_OFFSET_Y_SHIFT 21
+#define SQ_INSTRUCTION_TFETCH_2_OFFSET_Z_SHIFT 26
+#define SQ_INSTRUCTION_TFETCH_2_PRED_CONDITION_SHIFT 31
+
+#define SQ_INSTRUCTION_TFETCH_2_USE_REG_GRADIENTS_MASK 0x00000001
+#define SQ_INSTRUCTION_TFETCH_2_SAMPLE_LOCATION_MASK 0x00000002
+#define SQ_INSTRUCTION_TFETCH_2_LOD_BIAS_MASK 0x000001fc
+#define SQ_INSTRUCTION_TFETCH_2_UNUSED_MASK 0x0000fe00
+#define SQ_INSTRUCTION_TFETCH_2_OFFSET_X_MASK 0x001f0000
+#define SQ_INSTRUCTION_TFETCH_2_OFFSET_Y_MASK 0x03e00000
+#define SQ_INSTRUCTION_TFETCH_2_OFFSET_Z_MASK 0x7c000000
+#define SQ_INSTRUCTION_TFETCH_2_PRED_CONDITION_MASK 0x80000000
+
+#define SQ_INSTRUCTION_TFETCH_2_MASK \
+ (SQ_INSTRUCTION_TFETCH_2_USE_REG_GRADIENTS_MASK | \
+ SQ_INSTRUCTION_TFETCH_2_SAMPLE_LOCATION_MASK | \
+ SQ_INSTRUCTION_TFETCH_2_LOD_BIAS_MASK | \
+ SQ_INSTRUCTION_TFETCH_2_UNUSED_MASK | \
+ SQ_INSTRUCTION_TFETCH_2_OFFSET_X_MASK | \
+ SQ_INSTRUCTION_TFETCH_2_OFFSET_Y_MASK | \
+ SQ_INSTRUCTION_TFETCH_2_OFFSET_Z_MASK | \
+ SQ_INSTRUCTION_TFETCH_2_PRED_CONDITION_MASK)
+
+#define SQ_INSTRUCTION_TFETCH_2(use_reg_gradients, sample_location, lod_bias, unused, offset_x, offset_y, offset_z, pred_condition) \
+ ((use_reg_gradients << SQ_INSTRUCTION_TFETCH_2_USE_REG_GRADIENTS_SHIFT) | \
+ (sample_location << SQ_INSTRUCTION_TFETCH_2_SAMPLE_LOCATION_SHIFT) | \
+ (lod_bias << SQ_INSTRUCTION_TFETCH_2_LOD_BIAS_SHIFT) | \
+ (unused << SQ_INSTRUCTION_TFETCH_2_UNUSED_SHIFT) | \
+ (offset_x << SQ_INSTRUCTION_TFETCH_2_OFFSET_X_SHIFT) | \
+ (offset_y << SQ_INSTRUCTION_TFETCH_2_OFFSET_Y_SHIFT) | \
+ (offset_z << SQ_INSTRUCTION_TFETCH_2_OFFSET_Z_SHIFT) | \
+ (pred_condition << SQ_INSTRUCTION_TFETCH_2_PRED_CONDITION_SHIFT))
+
+#define SQ_INSTRUCTION_TFETCH_2_GET_USE_REG_GRADIENTS(sq_instruction_tfetch_2) \
+ ((sq_instruction_tfetch_2 & SQ_INSTRUCTION_TFETCH_2_USE_REG_GRADIENTS_MASK) >> SQ_INSTRUCTION_TFETCH_2_USE_REG_GRADIENTS_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_2_GET_SAMPLE_LOCATION(sq_instruction_tfetch_2) \
+ ((sq_instruction_tfetch_2 & SQ_INSTRUCTION_TFETCH_2_SAMPLE_LOCATION_MASK) >> SQ_INSTRUCTION_TFETCH_2_SAMPLE_LOCATION_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_2_GET_LOD_BIAS(sq_instruction_tfetch_2) \
+ ((sq_instruction_tfetch_2 & SQ_INSTRUCTION_TFETCH_2_LOD_BIAS_MASK) >> SQ_INSTRUCTION_TFETCH_2_LOD_BIAS_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_2_GET_UNUSED(sq_instruction_tfetch_2) \
+ ((sq_instruction_tfetch_2 & SQ_INSTRUCTION_TFETCH_2_UNUSED_MASK) >> SQ_INSTRUCTION_TFETCH_2_UNUSED_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_2_GET_OFFSET_X(sq_instruction_tfetch_2) \
+ ((sq_instruction_tfetch_2 & SQ_INSTRUCTION_TFETCH_2_OFFSET_X_MASK) >> SQ_INSTRUCTION_TFETCH_2_OFFSET_X_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_2_GET_OFFSET_Y(sq_instruction_tfetch_2) \
+ ((sq_instruction_tfetch_2 & SQ_INSTRUCTION_TFETCH_2_OFFSET_Y_MASK) >> SQ_INSTRUCTION_TFETCH_2_OFFSET_Y_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_2_GET_OFFSET_Z(sq_instruction_tfetch_2) \
+ ((sq_instruction_tfetch_2 & SQ_INSTRUCTION_TFETCH_2_OFFSET_Z_MASK) >> SQ_INSTRUCTION_TFETCH_2_OFFSET_Z_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_2_GET_PRED_CONDITION(sq_instruction_tfetch_2) \
+ ((sq_instruction_tfetch_2 & SQ_INSTRUCTION_TFETCH_2_PRED_CONDITION_MASK) >> SQ_INSTRUCTION_TFETCH_2_PRED_CONDITION_SHIFT)
+
+#define SQ_INSTRUCTION_TFETCH_2_SET_USE_REG_GRADIENTS(sq_instruction_tfetch_2_reg, use_reg_gradients) \
+ sq_instruction_tfetch_2_reg = (sq_instruction_tfetch_2_reg & ~SQ_INSTRUCTION_TFETCH_2_USE_REG_GRADIENTS_MASK) | (use_reg_gradients << SQ_INSTRUCTION_TFETCH_2_USE_REG_GRADIENTS_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_2_SET_SAMPLE_LOCATION(sq_instruction_tfetch_2_reg, sample_location) \
+ sq_instruction_tfetch_2_reg = (sq_instruction_tfetch_2_reg & ~SQ_INSTRUCTION_TFETCH_2_SAMPLE_LOCATION_MASK) | (sample_location << SQ_INSTRUCTION_TFETCH_2_SAMPLE_LOCATION_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_2_SET_LOD_BIAS(sq_instruction_tfetch_2_reg, lod_bias) \
+ sq_instruction_tfetch_2_reg = (sq_instruction_tfetch_2_reg & ~SQ_INSTRUCTION_TFETCH_2_LOD_BIAS_MASK) | (lod_bias << SQ_INSTRUCTION_TFETCH_2_LOD_BIAS_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_2_SET_UNUSED(sq_instruction_tfetch_2_reg, unused) \
+ sq_instruction_tfetch_2_reg = (sq_instruction_tfetch_2_reg & ~SQ_INSTRUCTION_TFETCH_2_UNUSED_MASK) | (unused << SQ_INSTRUCTION_TFETCH_2_UNUSED_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_2_SET_OFFSET_X(sq_instruction_tfetch_2_reg, offset_x) \
+ sq_instruction_tfetch_2_reg = (sq_instruction_tfetch_2_reg & ~SQ_INSTRUCTION_TFETCH_2_OFFSET_X_MASK) | (offset_x << SQ_INSTRUCTION_TFETCH_2_OFFSET_X_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_2_SET_OFFSET_Y(sq_instruction_tfetch_2_reg, offset_y) \
+ sq_instruction_tfetch_2_reg = (sq_instruction_tfetch_2_reg & ~SQ_INSTRUCTION_TFETCH_2_OFFSET_Y_MASK) | (offset_y << SQ_INSTRUCTION_TFETCH_2_OFFSET_Y_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_2_SET_OFFSET_Z(sq_instruction_tfetch_2_reg, offset_z) \
+ sq_instruction_tfetch_2_reg = (sq_instruction_tfetch_2_reg & ~SQ_INSTRUCTION_TFETCH_2_OFFSET_Z_MASK) | (offset_z << SQ_INSTRUCTION_TFETCH_2_OFFSET_Z_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_2_SET_PRED_CONDITION(sq_instruction_tfetch_2_reg, pred_condition) \
+ sq_instruction_tfetch_2_reg = (sq_instruction_tfetch_2_reg & ~SQ_INSTRUCTION_TFETCH_2_PRED_CONDITION_MASK) | (pred_condition << SQ_INSTRUCTION_TFETCH_2_PRED_CONDITION_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_tfetch_2_t {
+ unsigned int use_reg_gradients : SQ_INSTRUCTION_TFETCH_2_USE_REG_GRADIENTS_SIZE;
+ unsigned int sample_location : SQ_INSTRUCTION_TFETCH_2_SAMPLE_LOCATION_SIZE;
+ unsigned int lod_bias : SQ_INSTRUCTION_TFETCH_2_LOD_BIAS_SIZE;
+ unsigned int unused : SQ_INSTRUCTION_TFETCH_2_UNUSED_SIZE;
+ unsigned int offset_x : SQ_INSTRUCTION_TFETCH_2_OFFSET_X_SIZE;
+ unsigned int offset_y : SQ_INSTRUCTION_TFETCH_2_OFFSET_Y_SIZE;
+ unsigned int offset_z : SQ_INSTRUCTION_TFETCH_2_OFFSET_Z_SIZE;
+ unsigned int pred_condition : SQ_INSTRUCTION_TFETCH_2_PRED_CONDITION_SIZE;
+ } sq_instruction_tfetch_2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_tfetch_2_t {
+ unsigned int pred_condition : SQ_INSTRUCTION_TFETCH_2_PRED_CONDITION_SIZE;
+ unsigned int offset_z : SQ_INSTRUCTION_TFETCH_2_OFFSET_Z_SIZE;
+ unsigned int offset_y : SQ_INSTRUCTION_TFETCH_2_OFFSET_Y_SIZE;
+ unsigned int offset_x : SQ_INSTRUCTION_TFETCH_2_OFFSET_X_SIZE;
+ unsigned int unused : SQ_INSTRUCTION_TFETCH_2_UNUSED_SIZE;
+ unsigned int lod_bias : SQ_INSTRUCTION_TFETCH_2_LOD_BIAS_SIZE;
+ unsigned int sample_location : SQ_INSTRUCTION_TFETCH_2_SAMPLE_LOCATION_SIZE;
+ unsigned int use_reg_gradients : SQ_INSTRUCTION_TFETCH_2_USE_REG_GRADIENTS_SIZE;
+ } sq_instruction_tfetch_2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_tfetch_2_t f;
+} sq_instruction_tfetch_2_u;
+
+
+/*
+ * SQ_INSTRUCTION_VFETCH_0 struct
+ */
+
+#define SQ_INSTRUCTION_VFETCH_0_OPCODE_SIZE 5
+#define SQ_INSTRUCTION_VFETCH_0_SRC_GPR_SIZE 6
+#define SQ_INSTRUCTION_VFETCH_0_SRC_GPR_AM_SIZE 1
+#define SQ_INSTRUCTION_VFETCH_0_DST_GPR_SIZE 6
+#define SQ_INSTRUCTION_VFETCH_0_DST_GPR_AM_SIZE 1
+#define SQ_INSTRUCTION_VFETCH_0_MUST_BE_ONE_SIZE 1
+#define SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_SIZE 5
+#define SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_SEL_SIZE 2
+#define SQ_INSTRUCTION_VFETCH_0_SRC_SEL_SIZE 2
+
+#define SQ_INSTRUCTION_VFETCH_0_OPCODE_SHIFT 0
+#define SQ_INSTRUCTION_VFETCH_0_SRC_GPR_SHIFT 5
+#define SQ_INSTRUCTION_VFETCH_0_SRC_GPR_AM_SHIFT 11
+#define SQ_INSTRUCTION_VFETCH_0_DST_GPR_SHIFT 12
+#define SQ_INSTRUCTION_VFETCH_0_DST_GPR_AM_SHIFT 18
+#define SQ_INSTRUCTION_VFETCH_0_MUST_BE_ONE_SHIFT 19
+#define SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_SHIFT 20
+#define SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_SEL_SHIFT 25
+#define SQ_INSTRUCTION_VFETCH_0_SRC_SEL_SHIFT 30
+
+#define SQ_INSTRUCTION_VFETCH_0_OPCODE_MASK 0x0000001f
+#define SQ_INSTRUCTION_VFETCH_0_SRC_GPR_MASK 0x000007e0
+#define SQ_INSTRUCTION_VFETCH_0_SRC_GPR_AM_MASK 0x00000800
+#define SQ_INSTRUCTION_VFETCH_0_DST_GPR_MASK 0x0003f000
+#define SQ_INSTRUCTION_VFETCH_0_DST_GPR_AM_MASK 0x00040000
+#define SQ_INSTRUCTION_VFETCH_0_MUST_BE_ONE_MASK 0x00080000
+#define SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_MASK 0x01f00000
+#define SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_SEL_MASK 0x06000000
+#define SQ_INSTRUCTION_VFETCH_0_SRC_SEL_MASK 0xc0000000
+
+#define SQ_INSTRUCTION_VFETCH_0_MASK \
+ (SQ_INSTRUCTION_VFETCH_0_OPCODE_MASK | \
+ SQ_INSTRUCTION_VFETCH_0_SRC_GPR_MASK | \
+ SQ_INSTRUCTION_VFETCH_0_SRC_GPR_AM_MASK | \
+ SQ_INSTRUCTION_VFETCH_0_DST_GPR_MASK | \
+ SQ_INSTRUCTION_VFETCH_0_DST_GPR_AM_MASK | \
+ SQ_INSTRUCTION_VFETCH_0_MUST_BE_ONE_MASK | \
+ SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_MASK | \
+ SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_SEL_MASK | \
+ SQ_INSTRUCTION_VFETCH_0_SRC_SEL_MASK)
+
+#define SQ_INSTRUCTION_VFETCH_0(opcode, src_gpr, src_gpr_am, dst_gpr, dst_gpr_am, must_be_one, const_index, const_index_sel, src_sel) \
+ ((opcode << SQ_INSTRUCTION_VFETCH_0_OPCODE_SHIFT) | \
+ (src_gpr << SQ_INSTRUCTION_VFETCH_0_SRC_GPR_SHIFT) | \
+ (src_gpr_am << SQ_INSTRUCTION_VFETCH_0_SRC_GPR_AM_SHIFT) | \
+ (dst_gpr << SQ_INSTRUCTION_VFETCH_0_DST_GPR_SHIFT) | \
+ (dst_gpr_am << SQ_INSTRUCTION_VFETCH_0_DST_GPR_AM_SHIFT) | \
+ (must_be_one << SQ_INSTRUCTION_VFETCH_0_MUST_BE_ONE_SHIFT) | \
+ (const_index << SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_SHIFT) | \
+ (const_index_sel << SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_SEL_SHIFT) | \
+ (src_sel << SQ_INSTRUCTION_VFETCH_0_SRC_SEL_SHIFT))
+
+#define SQ_INSTRUCTION_VFETCH_0_GET_OPCODE(sq_instruction_vfetch_0) \
+ ((sq_instruction_vfetch_0 & SQ_INSTRUCTION_VFETCH_0_OPCODE_MASK) >> SQ_INSTRUCTION_VFETCH_0_OPCODE_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_0_GET_SRC_GPR(sq_instruction_vfetch_0) \
+ ((sq_instruction_vfetch_0 & SQ_INSTRUCTION_VFETCH_0_SRC_GPR_MASK) >> SQ_INSTRUCTION_VFETCH_0_SRC_GPR_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_0_GET_SRC_GPR_AM(sq_instruction_vfetch_0) \
+ ((sq_instruction_vfetch_0 & SQ_INSTRUCTION_VFETCH_0_SRC_GPR_AM_MASK) >> SQ_INSTRUCTION_VFETCH_0_SRC_GPR_AM_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_0_GET_DST_GPR(sq_instruction_vfetch_0) \
+ ((sq_instruction_vfetch_0 & SQ_INSTRUCTION_VFETCH_0_DST_GPR_MASK) >> SQ_INSTRUCTION_VFETCH_0_DST_GPR_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_0_GET_DST_GPR_AM(sq_instruction_vfetch_0) \
+ ((sq_instruction_vfetch_0 & SQ_INSTRUCTION_VFETCH_0_DST_GPR_AM_MASK) >> SQ_INSTRUCTION_VFETCH_0_DST_GPR_AM_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_0_GET_MUST_BE_ONE(sq_instruction_vfetch_0) \
+ ((sq_instruction_vfetch_0 & SQ_INSTRUCTION_VFETCH_0_MUST_BE_ONE_MASK) >> SQ_INSTRUCTION_VFETCH_0_MUST_BE_ONE_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_0_GET_CONST_INDEX(sq_instruction_vfetch_0) \
+ ((sq_instruction_vfetch_0 & SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_MASK) >> SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_0_GET_CONST_INDEX_SEL(sq_instruction_vfetch_0) \
+ ((sq_instruction_vfetch_0 & SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_SEL_MASK) >> SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_SEL_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_0_GET_SRC_SEL(sq_instruction_vfetch_0) \
+ ((sq_instruction_vfetch_0 & SQ_INSTRUCTION_VFETCH_0_SRC_SEL_MASK) >> SQ_INSTRUCTION_VFETCH_0_SRC_SEL_SHIFT)
+
+#define SQ_INSTRUCTION_VFETCH_0_SET_OPCODE(sq_instruction_vfetch_0_reg, opcode) \
+ sq_instruction_vfetch_0_reg = (sq_instruction_vfetch_0_reg & ~SQ_INSTRUCTION_VFETCH_0_OPCODE_MASK) | (opcode << SQ_INSTRUCTION_VFETCH_0_OPCODE_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_0_SET_SRC_GPR(sq_instruction_vfetch_0_reg, src_gpr) \
+ sq_instruction_vfetch_0_reg = (sq_instruction_vfetch_0_reg & ~SQ_INSTRUCTION_VFETCH_0_SRC_GPR_MASK) | (src_gpr << SQ_INSTRUCTION_VFETCH_0_SRC_GPR_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_0_SET_SRC_GPR_AM(sq_instruction_vfetch_0_reg, src_gpr_am) \
+ sq_instruction_vfetch_0_reg = (sq_instruction_vfetch_0_reg & ~SQ_INSTRUCTION_VFETCH_0_SRC_GPR_AM_MASK) | (src_gpr_am << SQ_INSTRUCTION_VFETCH_0_SRC_GPR_AM_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_0_SET_DST_GPR(sq_instruction_vfetch_0_reg, dst_gpr) \
+ sq_instruction_vfetch_0_reg = (sq_instruction_vfetch_0_reg & ~SQ_INSTRUCTION_VFETCH_0_DST_GPR_MASK) | (dst_gpr << SQ_INSTRUCTION_VFETCH_0_DST_GPR_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_0_SET_DST_GPR_AM(sq_instruction_vfetch_0_reg, dst_gpr_am) \
+ sq_instruction_vfetch_0_reg = (sq_instruction_vfetch_0_reg & ~SQ_INSTRUCTION_VFETCH_0_DST_GPR_AM_MASK) | (dst_gpr_am << SQ_INSTRUCTION_VFETCH_0_DST_GPR_AM_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_0_SET_MUST_BE_ONE(sq_instruction_vfetch_0_reg, must_be_one) \
+ sq_instruction_vfetch_0_reg = (sq_instruction_vfetch_0_reg & ~SQ_INSTRUCTION_VFETCH_0_MUST_BE_ONE_MASK) | (must_be_one << SQ_INSTRUCTION_VFETCH_0_MUST_BE_ONE_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_0_SET_CONST_INDEX(sq_instruction_vfetch_0_reg, const_index) \
+ sq_instruction_vfetch_0_reg = (sq_instruction_vfetch_0_reg & ~SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_MASK) | (const_index << SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_0_SET_CONST_INDEX_SEL(sq_instruction_vfetch_0_reg, const_index_sel) \
+ sq_instruction_vfetch_0_reg = (sq_instruction_vfetch_0_reg & ~SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_SEL_MASK) | (const_index_sel << SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_SEL_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_0_SET_SRC_SEL(sq_instruction_vfetch_0_reg, src_sel) \
+ sq_instruction_vfetch_0_reg = (sq_instruction_vfetch_0_reg & ~SQ_INSTRUCTION_VFETCH_0_SRC_SEL_MASK) | (src_sel << SQ_INSTRUCTION_VFETCH_0_SRC_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_vfetch_0_t {
+ unsigned int opcode : SQ_INSTRUCTION_VFETCH_0_OPCODE_SIZE;
+ unsigned int src_gpr : SQ_INSTRUCTION_VFETCH_0_SRC_GPR_SIZE;
+ unsigned int src_gpr_am : SQ_INSTRUCTION_VFETCH_0_SRC_GPR_AM_SIZE;
+ unsigned int dst_gpr : SQ_INSTRUCTION_VFETCH_0_DST_GPR_SIZE;
+ unsigned int dst_gpr_am : SQ_INSTRUCTION_VFETCH_0_DST_GPR_AM_SIZE;
+ unsigned int must_be_one : SQ_INSTRUCTION_VFETCH_0_MUST_BE_ONE_SIZE;
+ unsigned int const_index : SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_SIZE;
+ unsigned int const_index_sel : SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_SEL_SIZE;
+ unsigned int : 3;
+ unsigned int src_sel : SQ_INSTRUCTION_VFETCH_0_SRC_SEL_SIZE;
+ } sq_instruction_vfetch_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_vfetch_0_t {
+ unsigned int src_sel : SQ_INSTRUCTION_VFETCH_0_SRC_SEL_SIZE;
+ unsigned int : 3;
+ unsigned int const_index_sel : SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_SEL_SIZE;
+ unsigned int const_index : SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_SIZE;
+ unsigned int must_be_one : SQ_INSTRUCTION_VFETCH_0_MUST_BE_ONE_SIZE;
+ unsigned int dst_gpr_am : SQ_INSTRUCTION_VFETCH_0_DST_GPR_AM_SIZE;
+ unsigned int dst_gpr : SQ_INSTRUCTION_VFETCH_0_DST_GPR_SIZE;
+ unsigned int src_gpr_am : SQ_INSTRUCTION_VFETCH_0_SRC_GPR_AM_SIZE;
+ unsigned int src_gpr : SQ_INSTRUCTION_VFETCH_0_SRC_GPR_SIZE;
+ unsigned int opcode : SQ_INSTRUCTION_VFETCH_0_OPCODE_SIZE;
+ } sq_instruction_vfetch_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_vfetch_0_t f;
+} sq_instruction_vfetch_0_u;
+
+
+/*
+ * SQ_INSTRUCTION_VFETCH_1 struct
+ */
+
+#define SQ_INSTRUCTION_VFETCH_1_DST_SEL_X_SIZE 3
+#define SQ_INSTRUCTION_VFETCH_1_DST_SEL_Y_SIZE 3
+#define SQ_INSTRUCTION_VFETCH_1_DST_SEL_Z_SIZE 3
+#define SQ_INSTRUCTION_VFETCH_1_DST_SEL_W_SIZE 3
+#define SQ_INSTRUCTION_VFETCH_1_FORMAT_COMP_ALL_SIZE 1
+#define SQ_INSTRUCTION_VFETCH_1_NUM_FORMAT_ALL_SIZE 1
+#define SQ_INSTRUCTION_VFETCH_1_SIGNED_RF_MODE_ALL_SIZE 1
+#define SQ_INSTRUCTION_VFETCH_1_DATA_FORMAT_SIZE 6
+#define SQ_INSTRUCTION_VFETCH_1_EXP_ADJUST_ALL_SIZE 7
+#define SQ_INSTRUCTION_VFETCH_1_PRED_SELECT_SIZE 1
+
+#define SQ_INSTRUCTION_VFETCH_1_DST_SEL_X_SHIFT 0
+#define SQ_INSTRUCTION_VFETCH_1_DST_SEL_Y_SHIFT 3
+#define SQ_INSTRUCTION_VFETCH_1_DST_SEL_Z_SHIFT 6
+#define SQ_INSTRUCTION_VFETCH_1_DST_SEL_W_SHIFT 9
+#define SQ_INSTRUCTION_VFETCH_1_FORMAT_COMP_ALL_SHIFT 12
+#define SQ_INSTRUCTION_VFETCH_1_NUM_FORMAT_ALL_SHIFT 13
+#define SQ_INSTRUCTION_VFETCH_1_SIGNED_RF_MODE_ALL_SHIFT 14
+#define SQ_INSTRUCTION_VFETCH_1_DATA_FORMAT_SHIFT 16
+#define SQ_INSTRUCTION_VFETCH_1_EXP_ADJUST_ALL_SHIFT 23
+#define SQ_INSTRUCTION_VFETCH_1_PRED_SELECT_SHIFT 31
+
+#define SQ_INSTRUCTION_VFETCH_1_DST_SEL_X_MASK 0x00000007
+#define SQ_INSTRUCTION_VFETCH_1_DST_SEL_Y_MASK 0x00000038
+#define SQ_INSTRUCTION_VFETCH_1_DST_SEL_Z_MASK 0x000001c0
+#define SQ_INSTRUCTION_VFETCH_1_DST_SEL_W_MASK 0x00000e00
+#define SQ_INSTRUCTION_VFETCH_1_FORMAT_COMP_ALL_MASK 0x00001000
+#define SQ_INSTRUCTION_VFETCH_1_NUM_FORMAT_ALL_MASK 0x00002000
+#define SQ_INSTRUCTION_VFETCH_1_SIGNED_RF_MODE_ALL_MASK 0x00004000
+#define SQ_INSTRUCTION_VFETCH_1_DATA_FORMAT_MASK 0x003f0000
+#define SQ_INSTRUCTION_VFETCH_1_EXP_ADJUST_ALL_MASK 0x3f800000
+#define SQ_INSTRUCTION_VFETCH_1_PRED_SELECT_MASK 0x80000000
+
+#define SQ_INSTRUCTION_VFETCH_1_MASK \
+ (SQ_INSTRUCTION_VFETCH_1_DST_SEL_X_MASK | \
+ SQ_INSTRUCTION_VFETCH_1_DST_SEL_Y_MASK | \
+ SQ_INSTRUCTION_VFETCH_1_DST_SEL_Z_MASK | \
+ SQ_INSTRUCTION_VFETCH_1_DST_SEL_W_MASK | \
+ SQ_INSTRUCTION_VFETCH_1_FORMAT_COMP_ALL_MASK | \
+ SQ_INSTRUCTION_VFETCH_1_NUM_FORMAT_ALL_MASK | \
+ SQ_INSTRUCTION_VFETCH_1_SIGNED_RF_MODE_ALL_MASK | \
+ SQ_INSTRUCTION_VFETCH_1_DATA_FORMAT_MASK | \
+ SQ_INSTRUCTION_VFETCH_1_EXP_ADJUST_ALL_MASK | \
+ SQ_INSTRUCTION_VFETCH_1_PRED_SELECT_MASK)
+
+#define SQ_INSTRUCTION_VFETCH_1(dst_sel_x, dst_sel_y, dst_sel_z, dst_sel_w, format_comp_all, num_format_all, signed_rf_mode_all, data_format, exp_adjust_all, pred_select) \
+ ((dst_sel_x << SQ_INSTRUCTION_VFETCH_1_DST_SEL_X_SHIFT) | \
+ (dst_sel_y << SQ_INSTRUCTION_VFETCH_1_DST_SEL_Y_SHIFT) | \
+ (dst_sel_z << SQ_INSTRUCTION_VFETCH_1_DST_SEL_Z_SHIFT) | \
+ (dst_sel_w << SQ_INSTRUCTION_VFETCH_1_DST_SEL_W_SHIFT) | \
+ (format_comp_all << SQ_INSTRUCTION_VFETCH_1_FORMAT_COMP_ALL_SHIFT) | \
+ (num_format_all << SQ_INSTRUCTION_VFETCH_1_NUM_FORMAT_ALL_SHIFT) | \
+ (signed_rf_mode_all << SQ_INSTRUCTION_VFETCH_1_SIGNED_RF_MODE_ALL_SHIFT) | \
+ (data_format << SQ_INSTRUCTION_VFETCH_1_DATA_FORMAT_SHIFT) | \
+ (exp_adjust_all << SQ_INSTRUCTION_VFETCH_1_EXP_ADJUST_ALL_SHIFT) | \
+ (pred_select << SQ_INSTRUCTION_VFETCH_1_PRED_SELECT_SHIFT))
+
+#define SQ_INSTRUCTION_VFETCH_1_GET_DST_SEL_X(sq_instruction_vfetch_1) \
+ ((sq_instruction_vfetch_1 & SQ_INSTRUCTION_VFETCH_1_DST_SEL_X_MASK) >> SQ_INSTRUCTION_VFETCH_1_DST_SEL_X_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_1_GET_DST_SEL_Y(sq_instruction_vfetch_1) \
+ ((sq_instruction_vfetch_1 & SQ_INSTRUCTION_VFETCH_1_DST_SEL_Y_MASK) >> SQ_INSTRUCTION_VFETCH_1_DST_SEL_Y_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_1_GET_DST_SEL_Z(sq_instruction_vfetch_1) \
+ ((sq_instruction_vfetch_1 & SQ_INSTRUCTION_VFETCH_1_DST_SEL_Z_MASK) >> SQ_INSTRUCTION_VFETCH_1_DST_SEL_Z_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_1_GET_DST_SEL_W(sq_instruction_vfetch_1) \
+ ((sq_instruction_vfetch_1 & SQ_INSTRUCTION_VFETCH_1_DST_SEL_W_MASK) >> SQ_INSTRUCTION_VFETCH_1_DST_SEL_W_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_1_GET_FORMAT_COMP_ALL(sq_instruction_vfetch_1) \
+ ((sq_instruction_vfetch_1 & SQ_INSTRUCTION_VFETCH_1_FORMAT_COMP_ALL_MASK) >> SQ_INSTRUCTION_VFETCH_1_FORMAT_COMP_ALL_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_1_GET_NUM_FORMAT_ALL(sq_instruction_vfetch_1) \
+ ((sq_instruction_vfetch_1 & SQ_INSTRUCTION_VFETCH_1_NUM_FORMAT_ALL_MASK) >> SQ_INSTRUCTION_VFETCH_1_NUM_FORMAT_ALL_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_1_GET_SIGNED_RF_MODE_ALL(sq_instruction_vfetch_1) \
+ ((sq_instruction_vfetch_1 & SQ_INSTRUCTION_VFETCH_1_SIGNED_RF_MODE_ALL_MASK) >> SQ_INSTRUCTION_VFETCH_1_SIGNED_RF_MODE_ALL_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_1_GET_DATA_FORMAT(sq_instruction_vfetch_1) \
+ ((sq_instruction_vfetch_1 & SQ_INSTRUCTION_VFETCH_1_DATA_FORMAT_MASK) >> SQ_INSTRUCTION_VFETCH_1_DATA_FORMAT_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_1_GET_EXP_ADJUST_ALL(sq_instruction_vfetch_1) \
+ ((sq_instruction_vfetch_1 & SQ_INSTRUCTION_VFETCH_1_EXP_ADJUST_ALL_MASK) >> SQ_INSTRUCTION_VFETCH_1_EXP_ADJUST_ALL_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_1_GET_PRED_SELECT(sq_instruction_vfetch_1) \
+ ((sq_instruction_vfetch_1 & SQ_INSTRUCTION_VFETCH_1_PRED_SELECT_MASK) >> SQ_INSTRUCTION_VFETCH_1_PRED_SELECT_SHIFT)
+
+#define SQ_INSTRUCTION_VFETCH_1_SET_DST_SEL_X(sq_instruction_vfetch_1_reg, dst_sel_x) \
+ sq_instruction_vfetch_1_reg = (sq_instruction_vfetch_1_reg & ~SQ_INSTRUCTION_VFETCH_1_DST_SEL_X_MASK) | (dst_sel_x << SQ_INSTRUCTION_VFETCH_1_DST_SEL_X_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_1_SET_DST_SEL_Y(sq_instruction_vfetch_1_reg, dst_sel_y) \
+ sq_instruction_vfetch_1_reg = (sq_instruction_vfetch_1_reg & ~SQ_INSTRUCTION_VFETCH_1_DST_SEL_Y_MASK) | (dst_sel_y << SQ_INSTRUCTION_VFETCH_1_DST_SEL_Y_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_1_SET_DST_SEL_Z(sq_instruction_vfetch_1_reg, dst_sel_z) \
+ sq_instruction_vfetch_1_reg = (sq_instruction_vfetch_1_reg & ~SQ_INSTRUCTION_VFETCH_1_DST_SEL_Z_MASK) | (dst_sel_z << SQ_INSTRUCTION_VFETCH_1_DST_SEL_Z_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_1_SET_DST_SEL_W(sq_instruction_vfetch_1_reg, dst_sel_w) \
+ sq_instruction_vfetch_1_reg = (sq_instruction_vfetch_1_reg & ~SQ_INSTRUCTION_VFETCH_1_DST_SEL_W_MASK) | (dst_sel_w << SQ_INSTRUCTION_VFETCH_1_DST_SEL_W_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_1_SET_FORMAT_COMP_ALL(sq_instruction_vfetch_1_reg, format_comp_all) \
+ sq_instruction_vfetch_1_reg = (sq_instruction_vfetch_1_reg & ~SQ_INSTRUCTION_VFETCH_1_FORMAT_COMP_ALL_MASK) | (format_comp_all << SQ_INSTRUCTION_VFETCH_1_FORMAT_COMP_ALL_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_1_SET_NUM_FORMAT_ALL(sq_instruction_vfetch_1_reg, num_format_all) \
+ sq_instruction_vfetch_1_reg = (sq_instruction_vfetch_1_reg & ~SQ_INSTRUCTION_VFETCH_1_NUM_FORMAT_ALL_MASK) | (num_format_all << SQ_INSTRUCTION_VFETCH_1_NUM_FORMAT_ALL_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_1_SET_SIGNED_RF_MODE_ALL(sq_instruction_vfetch_1_reg, signed_rf_mode_all) \
+ sq_instruction_vfetch_1_reg = (sq_instruction_vfetch_1_reg & ~SQ_INSTRUCTION_VFETCH_1_SIGNED_RF_MODE_ALL_MASK) | (signed_rf_mode_all << SQ_INSTRUCTION_VFETCH_1_SIGNED_RF_MODE_ALL_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_1_SET_DATA_FORMAT(sq_instruction_vfetch_1_reg, data_format) \
+ sq_instruction_vfetch_1_reg = (sq_instruction_vfetch_1_reg & ~SQ_INSTRUCTION_VFETCH_1_DATA_FORMAT_MASK) | (data_format << SQ_INSTRUCTION_VFETCH_1_DATA_FORMAT_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_1_SET_EXP_ADJUST_ALL(sq_instruction_vfetch_1_reg, exp_adjust_all) \
+ sq_instruction_vfetch_1_reg = (sq_instruction_vfetch_1_reg & ~SQ_INSTRUCTION_VFETCH_1_EXP_ADJUST_ALL_MASK) | (exp_adjust_all << SQ_INSTRUCTION_VFETCH_1_EXP_ADJUST_ALL_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_1_SET_PRED_SELECT(sq_instruction_vfetch_1_reg, pred_select) \
+ sq_instruction_vfetch_1_reg = (sq_instruction_vfetch_1_reg & ~SQ_INSTRUCTION_VFETCH_1_PRED_SELECT_MASK) | (pred_select << SQ_INSTRUCTION_VFETCH_1_PRED_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_vfetch_1_t {
+ unsigned int dst_sel_x : SQ_INSTRUCTION_VFETCH_1_DST_SEL_X_SIZE;
+ unsigned int dst_sel_y : SQ_INSTRUCTION_VFETCH_1_DST_SEL_Y_SIZE;
+ unsigned int dst_sel_z : SQ_INSTRUCTION_VFETCH_1_DST_SEL_Z_SIZE;
+ unsigned int dst_sel_w : SQ_INSTRUCTION_VFETCH_1_DST_SEL_W_SIZE;
+ unsigned int format_comp_all : SQ_INSTRUCTION_VFETCH_1_FORMAT_COMP_ALL_SIZE;
+ unsigned int num_format_all : SQ_INSTRUCTION_VFETCH_1_NUM_FORMAT_ALL_SIZE;
+ unsigned int signed_rf_mode_all : SQ_INSTRUCTION_VFETCH_1_SIGNED_RF_MODE_ALL_SIZE;
+ unsigned int : 1;
+ unsigned int data_format : SQ_INSTRUCTION_VFETCH_1_DATA_FORMAT_SIZE;
+ unsigned int : 1;
+ unsigned int exp_adjust_all : SQ_INSTRUCTION_VFETCH_1_EXP_ADJUST_ALL_SIZE;
+ unsigned int : 1;
+ unsigned int pred_select : SQ_INSTRUCTION_VFETCH_1_PRED_SELECT_SIZE;
+ } sq_instruction_vfetch_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_vfetch_1_t {
+ unsigned int pred_select : SQ_INSTRUCTION_VFETCH_1_PRED_SELECT_SIZE;
+ unsigned int : 1;
+ unsigned int exp_adjust_all : SQ_INSTRUCTION_VFETCH_1_EXP_ADJUST_ALL_SIZE;
+ unsigned int : 1;
+ unsigned int data_format : SQ_INSTRUCTION_VFETCH_1_DATA_FORMAT_SIZE;
+ unsigned int : 1;
+ unsigned int signed_rf_mode_all : SQ_INSTRUCTION_VFETCH_1_SIGNED_RF_MODE_ALL_SIZE;
+ unsigned int num_format_all : SQ_INSTRUCTION_VFETCH_1_NUM_FORMAT_ALL_SIZE;
+ unsigned int format_comp_all : SQ_INSTRUCTION_VFETCH_1_FORMAT_COMP_ALL_SIZE;
+ unsigned int dst_sel_w : SQ_INSTRUCTION_VFETCH_1_DST_SEL_W_SIZE;
+ unsigned int dst_sel_z : SQ_INSTRUCTION_VFETCH_1_DST_SEL_Z_SIZE;
+ unsigned int dst_sel_y : SQ_INSTRUCTION_VFETCH_1_DST_SEL_Y_SIZE;
+ unsigned int dst_sel_x : SQ_INSTRUCTION_VFETCH_1_DST_SEL_X_SIZE;
+ } sq_instruction_vfetch_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_vfetch_1_t f;
+} sq_instruction_vfetch_1_u;
+
+
+/*
+ * SQ_INSTRUCTION_VFETCH_2 struct
+ */
+
+#define SQ_INSTRUCTION_VFETCH_2_STRIDE_SIZE 8
+#define SQ_INSTRUCTION_VFETCH_2_OFFSET_SIZE 8
+#define SQ_INSTRUCTION_VFETCH_2_PRED_CONDITION_SIZE 1
+
+#define SQ_INSTRUCTION_VFETCH_2_STRIDE_SHIFT 0
+#define SQ_INSTRUCTION_VFETCH_2_OFFSET_SHIFT 16
+#define SQ_INSTRUCTION_VFETCH_2_PRED_CONDITION_SHIFT 31
+
+#define SQ_INSTRUCTION_VFETCH_2_STRIDE_MASK 0x000000ff
+#define SQ_INSTRUCTION_VFETCH_2_OFFSET_MASK 0x00ff0000
+#define SQ_INSTRUCTION_VFETCH_2_PRED_CONDITION_MASK 0x80000000
+
+#define SQ_INSTRUCTION_VFETCH_2_MASK \
+ (SQ_INSTRUCTION_VFETCH_2_STRIDE_MASK | \
+ SQ_INSTRUCTION_VFETCH_2_OFFSET_MASK | \
+ SQ_INSTRUCTION_VFETCH_2_PRED_CONDITION_MASK)
+
+#define SQ_INSTRUCTION_VFETCH_2(stride, offset, pred_condition) \
+ ((stride << SQ_INSTRUCTION_VFETCH_2_STRIDE_SHIFT) | \
+ (offset << SQ_INSTRUCTION_VFETCH_2_OFFSET_SHIFT) | \
+ (pred_condition << SQ_INSTRUCTION_VFETCH_2_PRED_CONDITION_SHIFT))
+
+#define SQ_INSTRUCTION_VFETCH_2_GET_STRIDE(sq_instruction_vfetch_2) \
+ ((sq_instruction_vfetch_2 & SQ_INSTRUCTION_VFETCH_2_STRIDE_MASK) >> SQ_INSTRUCTION_VFETCH_2_STRIDE_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_2_GET_OFFSET(sq_instruction_vfetch_2) \
+ ((sq_instruction_vfetch_2 & SQ_INSTRUCTION_VFETCH_2_OFFSET_MASK) >> SQ_INSTRUCTION_VFETCH_2_OFFSET_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_2_GET_PRED_CONDITION(sq_instruction_vfetch_2) \
+ ((sq_instruction_vfetch_2 & SQ_INSTRUCTION_VFETCH_2_PRED_CONDITION_MASK) >> SQ_INSTRUCTION_VFETCH_2_PRED_CONDITION_SHIFT)
+
+#define SQ_INSTRUCTION_VFETCH_2_SET_STRIDE(sq_instruction_vfetch_2_reg, stride) \
+ sq_instruction_vfetch_2_reg = (sq_instruction_vfetch_2_reg & ~SQ_INSTRUCTION_VFETCH_2_STRIDE_MASK) | (stride << SQ_INSTRUCTION_VFETCH_2_STRIDE_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_2_SET_OFFSET(sq_instruction_vfetch_2_reg, offset) \
+ sq_instruction_vfetch_2_reg = (sq_instruction_vfetch_2_reg & ~SQ_INSTRUCTION_VFETCH_2_OFFSET_MASK) | (offset << SQ_INSTRUCTION_VFETCH_2_OFFSET_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_2_SET_PRED_CONDITION(sq_instruction_vfetch_2_reg, pred_condition) \
+ sq_instruction_vfetch_2_reg = (sq_instruction_vfetch_2_reg & ~SQ_INSTRUCTION_VFETCH_2_PRED_CONDITION_MASK) | (pred_condition << SQ_INSTRUCTION_VFETCH_2_PRED_CONDITION_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_vfetch_2_t {
+ unsigned int stride : SQ_INSTRUCTION_VFETCH_2_STRIDE_SIZE;
+ unsigned int : 8;
+ unsigned int offset : SQ_INSTRUCTION_VFETCH_2_OFFSET_SIZE;
+ unsigned int : 7;
+ unsigned int pred_condition : SQ_INSTRUCTION_VFETCH_2_PRED_CONDITION_SIZE;
+ } sq_instruction_vfetch_2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_vfetch_2_t {
+ unsigned int pred_condition : SQ_INSTRUCTION_VFETCH_2_PRED_CONDITION_SIZE;
+ unsigned int : 7;
+ unsigned int offset : SQ_INSTRUCTION_VFETCH_2_OFFSET_SIZE;
+ unsigned int : 8;
+ unsigned int stride : SQ_INSTRUCTION_VFETCH_2_STRIDE_SIZE;
+ } sq_instruction_vfetch_2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_vfetch_2_t f;
+} sq_instruction_vfetch_2_u;
+
+
+/*
+ * SQ_CONSTANT_0 struct
+ */
+
+#define SQ_CONSTANT_0_RED_SIZE 32
+
+#define SQ_CONSTANT_0_RED_SHIFT 0
+
+#define SQ_CONSTANT_0_RED_MASK 0xffffffff
+
+#define SQ_CONSTANT_0_MASK \
+ (SQ_CONSTANT_0_RED_MASK)
+
+#define SQ_CONSTANT_0(red) \
+ ((red << SQ_CONSTANT_0_RED_SHIFT))
+
+#define SQ_CONSTANT_0_GET_RED(sq_constant_0) \
+ ((sq_constant_0 & SQ_CONSTANT_0_RED_MASK) >> SQ_CONSTANT_0_RED_SHIFT)
+
+#define SQ_CONSTANT_0_SET_RED(sq_constant_0_reg, red) \
+ sq_constant_0_reg = (sq_constant_0_reg & ~SQ_CONSTANT_0_RED_MASK) | (red << SQ_CONSTANT_0_RED_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_constant_0_t {
+ unsigned int red : SQ_CONSTANT_0_RED_SIZE;
+ } sq_constant_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_constant_0_t {
+ unsigned int red : SQ_CONSTANT_0_RED_SIZE;
+ } sq_constant_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_constant_0_t f;
+} sq_constant_0_u;
+
+
+/*
+ * SQ_CONSTANT_1 struct
+ */
+
+#define SQ_CONSTANT_1_GREEN_SIZE 32
+
+#define SQ_CONSTANT_1_GREEN_SHIFT 0
+
+#define SQ_CONSTANT_1_GREEN_MASK 0xffffffff
+
+#define SQ_CONSTANT_1_MASK \
+ (SQ_CONSTANT_1_GREEN_MASK)
+
+#define SQ_CONSTANT_1(green) \
+ ((green << SQ_CONSTANT_1_GREEN_SHIFT))
+
+#define SQ_CONSTANT_1_GET_GREEN(sq_constant_1) \
+ ((sq_constant_1 & SQ_CONSTANT_1_GREEN_MASK) >> SQ_CONSTANT_1_GREEN_SHIFT)
+
+#define SQ_CONSTANT_1_SET_GREEN(sq_constant_1_reg, green) \
+ sq_constant_1_reg = (sq_constant_1_reg & ~SQ_CONSTANT_1_GREEN_MASK) | (green << SQ_CONSTANT_1_GREEN_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_constant_1_t {
+ unsigned int green : SQ_CONSTANT_1_GREEN_SIZE;
+ } sq_constant_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_constant_1_t {
+ unsigned int green : SQ_CONSTANT_1_GREEN_SIZE;
+ } sq_constant_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_constant_1_t f;
+} sq_constant_1_u;
+
+
+/*
+ * SQ_CONSTANT_2 struct
+ */
+
+#define SQ_CONSTANT_2_BLUE_SIZE 32
+
+#define SQ_CONSTANT_2_BLUE_SHIFT 0
+
+#define SQ_CONSTANT_2_BLUE_MASK 0xffffffff
+
+#define SQ_CONSTANT_2_MASK \
+ (SQ_CONSTANT_2_BLUE_MASK)
+
+#define SQ_CONSTANT_2(blue) \
+ ((blue << SQ_CONSTANT_2_BLUE_SHIFT))
+
+#define SQ_CONSTANT_2_GET_BLUE(sq_constant_2) \
+ ((sq_constant_2 & SQ_CONSTANT_2_BLUE_MASK) >> SQ_CONSTANT_2_BLUE_SHIFT)
+
+#define SQ_CONSTANT_2_SET_BLUE(sq_constant_2_reg, blue) \
+ sq_constant_2_reg = (sq_constant_2_reg & ~SQ_CONSTANT_2_BLUE_MASK) | (blue << SQ_CONSTANT_2_BLUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_constant_2_t {
+ unsigned int blue : SQ_CONSTANT_2_BLUE_SIZE;
+ } sq_constant_2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_constant_2_t {
+ unsigned int blue : SQ_CONSTANT_2_BLUE_SIZE;
+ } sq_constant_2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_constant_2_t f;
+} sq_constant_2_u;
+
+
+/*
+ * SQ_CONSTANT_3 struct
+ */
+
+#define SQ_CONSTANT_3_ALPHA_SIZE 32
+
+#define SQ_CONSTANT_3_ALPHA_SHIFT 0
+
+#define SQ_CONSTANT_3_ALPHA_MASK 0xffffffff
+
+#define SQ_CONSTANT_3_MASK \
+ (SQ_CONSTANT_3_ALPHA_MASK)
+
+#define SQ_CONSTANT_3(alpha) \
+ ((alpha << SQ_CONSTANT_3_ALPHA_SHIFT))
+
+#define SQ_CONSTANT_3_GET_ALPHA(sq_constant_3) \
+ ((sq_constant_3 & SQ_CONSTANT_3_ALPHA_MASK) >> SQ_CONSTANT_3_ALPHA_SHIFT)
+
+#define SQ_CONSTANT_3_SET_ALPHA(sq_constant_3_reg, alpha) \
+ sq_constant_3_reg = (sq_constant_3_reg & ~SQ_CONSTANT_3_ALPHA_MASK) | (alpha << SQ_CONSTANT_3_ALPHA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_constant_3_t {
+ unsigned int alpha : SQ_CONSTANT_3_ALPHA_SIZE;
+ } sq_constant_3_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_constant_3_t {
+ unsigned int alpha : SQ_CONSTANT_3_ALPHA_SIZE;
+ } sq_constant_3_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_constant_3_t f;
+} sq_constant_3_u;
+
+
+/*
+ * SQ_FETCH_0 struct
+ */
+
+#define SQ_FETCH_0_VALUE_SIZE 32
+
+#define SQ_FETCH_0_VALUE_SHIFT 0
+
+#define SQ_FETCH_0_VALUE_MASK 0xffffffff
+
+#define SQ_FETCH_0_MASK \
+ (SQ_FETCH_0_VALUE_MASK)
+
+#define SQ_FETCH_0(value) \
+ ((value << SQ_FETCH_0_VALUE_SHIFT))
+
+#define SQ_FETCH_0_GET_VALUE(sq_fetch_0) \
+ ((sq_fetch_0 & SQ_FETCH_0_VALUE_MASK) >> SQ_FETCH_0_VALUE_SHIFT)
+
+#define SQ_FETCH_0_SET_VALUE(sq_fetch_0_reg, value) \
+ sq_fetch_0_reg = (sq_fetch_0_reg & ~SQ_FETCH_0_VALUE_MASK) | (value << SQ_FETCH_0_VALUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_fetch_0_t {
+ unsigned int value : SQ_FETCH_0_VALUE_SIZE;
+ } sq_fetch_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_fetch_0_t {
+ unsigned int value : SQ_FETCH_0_VALUE_SIZE;
+ } sq_fetch_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_fetch_0_t f;
+} sq_fetch_0_u;
+
+
+/*
+ * SQ_FETCH_1 struct
+ */
+
+#define SQ_FETCH_1_VALUE_SIZE 32
+
+#define SQ_FETCH_1_VALUE_SHIFT 0
+
+#define SQ_FETCH_1_VALUE_MASK 0xffffffff
+
+#define SQ_FETCH_1_MASK \
+ (SQ_FETCH_1_VALUE_MASK)
+
+#define SQ_FETCH_1(value) \
+ ((value << SQ_FETCH_1_VALUE_SHIFT))
+
+#define SQ_FETCH_1_GET_VALUE(sq_fetch_1) \
+ ((sq_fetch_1 & SQ_FETCH_1_VALUE_MASK) >> SQ_FETCH_1_VALUE_SHIFT)
+
+#define SQ_FETCH_1_SET_VALUE(sq_fetch_1_reg, value) \
+ sq_fetch_1_reg = (sq_fetch_1_reg & ~SQ_FETCH_1_VALUE_MASK) | (value << SQ_FETCH_1_VALUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_fetch_1_t {
+ unsigned int value : SQ_FETCH_1_VALUE_SIZE;
+ } sq_fetch_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_fetch_1_t {
+ unsigned int value : SQ_FETCH_1_VALUE_SIZE;
+ } sq_fetch_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_fetch_1_t f;
+} sq_fetch_1_u;
+
+
+/*
+ * SQ_FETCH_2 struct
+ */
+
+#define SQ_FETCH_2_VALUE_SIZE 32
+
+#define SQ_FETCH_2_VALUE_SHIFT 0
+
+#define SQ_FETCH_2_VALUE_MASK 0xffffffff
+
+#define SQ_FETCH_2_MASK \
+ (SQ_FETCH_2_VALUE_MASK)
+
+#define SQ_FETCH_2(value) \
+ ((value << SQ_FETCH_2_VALUE_SHIFT))
+
+#define SQ_FETCH_2_GET_VALUE(sq_fetch_2) \
+ ((sq_fetch_2 & SQ_FETCH_2_VALUE_MASK) >> SQ_FETCH_2_VALUE_SHIFT)
+
+#define SQ_FETCH_2_SET_VALUE(sq_fetch_2_reg, value) \
+ sq_fetch_2_reg = (sq_fetch_2_reg & ~SQ_FETCH_2_VALUE_MASK) | (value << SQ_FETCH_2_VALUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_fetch_2_t {
+ unsigned int value : SQ_FETCH_2_VALUE_SIZE;
+ } sq_fetch_2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_fetch_2_t {
+ unsigned int value : SQ_FETCH_2_VALUE_SIZE;
+ } sq_fetch_2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_fetch_2_t f;
+} sq_fetch_2_u;
+
+
+/*
+ * SQ_FETCH_3 struct
+ */
+
+#define SQ_FETCH_3_VALUE_SIZE 32
+
+#define SQ_FETCH_3_VALUE_SHIFT 0
+
+#define SQ_FETCH_3_VALUE_MASK 0xffffffff
+
+#define SQ_FETCH_3_MASK \
+ (SQ_FETCH_3_VALUE_MASK)
+
+#define SQ_FETCH_3(value) \
+ ((value << SQ_FETCH_3_VALUE_SHIFT))
+
+#define SQ_FETCH_3_GET_VALUE(sq_fetch_3) \
+ ((sq_fetch_3 & SQ_FETCH_3_VALUE_MASK) >> SQ_FETCH_3_VALUE_SHIFT)
+
+#define SQ_FETCH_3_SET_VALUE(sq_fetch_3_reg, value) \
+ sq_fetch_3_reg = (sq_fetch_3_reg & ~SQ_FETCH_3_VALUE_MASK) | (value << SQ_FETCH_3_VALUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_fetch_3_t {
+ unsigned int value : SQ_FETCH_3_VALUE_SIZE;
+ } sq_fetch_3_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_fetch_3_t {
+ unsigned int value : SQ_FETCH_3_VALUE_SIZE;
+ } sq_fetch_3_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_fetch_3_t f;
+} sq_fetch_3_u;
+
+
+/*
+ * SQ_FETCH_4 struct
+ */
+
+#define SQ_FETCH_4_VALUE_SIZE 32
+
+#define SQ_FETCH_4_VALUE_SHIFT 0
+
+#define SQ_FETCH_4_VALUE_MASK 0xffffffff
+
+#define SQ_FETCH_4_MASK \
+ (SQ_FETCH_4_VALUE_MASK)
+
+#define SQ_FETCH_4(value) \
+ ((value << SQ_FETCH_4_VALUE_SHIFT))
+
+#define SQ_FETCH_4_GET_VALUE(sq_fetch_4) \
+ ((sq_fetch_4 & SQ_FETCH_4_VALUE_MASK) >> SQ_FETCH_4_VALUE_SHIFT)
+
+#define SQ_FETCH_4_SET_VALUE(sq_fetch_4_reg, value) \
+ sq_fetch_4_reg = (sq_fetch_4_reg & ~SQ_FETCH_4_VALUE_MASK) | (value << SQ_FETCH_4_VALUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_fetch_4_t {
+ unsigned int value : SQ_FETCH_4_VALUE_SIZE;
+ } sq_fetch_4_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_fetch_4_t {
+ unsigned int value : SQ_FETCH_4_VALUE_SIZE;
+ } sq_fetch_4_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_fetch_4_t f;
+} sq_fetch_4_u;
+
+
+/*
+ * SQ_FETCH_5 struct
+ */
+
+#define SQ_FETCH_5_VALUE_SIZE 32
+
+#define SQ_FETCH_5_VALUE_SHIFT 0
+
+#define SQ_FETCH_5_VALUE_MASK 0xffffffff
+
+#define SQ_FETCH_5_MASK \
+ (SQ_FETCH_5_VALUE_MASK)
+
+#define SQ_FETCH_5(value) \
+ ((value << SQ_FETCH_5_VALUE_SHIFT))
+
+#define SQ_FETCH_5_GET_VALUE(sq_fetch_5) \
+ ((sq_fetch_5 & SQ_FETCH_5_VALUE_MASK) >> SQ_FETCH_5_VALUE_SHIFT)
+
+#define SQ_FETCH_5_SET_VALUE(sq_fetch_5_reg, value) \
+ sq_fetch_5_reg = (sq_fetch_5_reg & ~SQ_FETCH_5_VALUE_MASK) | (value << SQ_FETCH_5_VALUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_fetch_5_t {
+ unsigned int value : SQ_FETCH_5_VALUE_SIZE;
+ } sq_fetch_5_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_fetch_5_t {
+ unsigned int value : SQ_FETCH_5_VALUE_SIZE;
+ } sq_fetch_5_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_fetch_5_t f;
+} sq_fetch_5_u;
+
+
+/*
+ * SQ_CONSTANT_VFETCH_0 struct
+ */
+
+#define SQ_CONSTANT_VFETCH_0_TYPE_SIZE 1
+#define SQ_CONSTANT_VFETCH_0_STATE_SIZE 1
+#define SQ_CONSTANT_VFETCH_0_BASE_ADDRESS_SIZE 30
+
+#define SQ_CONSTANT_VFETCH_0_TYPE_SHIFT 0
+#define SQ_CONSTANT_VFETCH_0_STATE_SHIFT 1
+#define SQ_CONSTANT_VFETCH_0_BASE_ADDRESS_SHIFT 2
+
+#define SQ_CONSTANT_VFETCH_0_TYPE_MASK 0x00000001
+#define SQ_CONSTANT_VFETCH_0_STATE_MASK 0x00000002
+#define SQ_CONSTANT_VFETCH_0_BASE_ADDRESS_MASK 0xfffffffc
+
+#define SQ_CONSTANT_VFETCH_0_MASK \
+ (SQ_CONSTANT_VFETCH_0_TYPE_MASK | \
+ SQ_CONSTANT_VFETCH_0_STATE_MASK | \
+ SQ_CONSTANT_VFETCH_0_BASE_ADDRESS_MASK)
+
+#define SQ_CONSTANT_VFETCH_0(type, state, base_address) \
+ ((type << SQ_CONSTANT_VFETCH_0_TYPE_SHIFT) | \
+ (state << SQ_CONSTANT_VFETCH_0_STATE_SHIFT) | \
+ (base_address << SQ_CONSTANT_VFETCH_0_BASE_ADDRESS_SHIFT))
+
+#define SQ_CONSTANT_VFETCH_0_GET_TYPE(sq_constant_vfetch_0) \
+ ((sq_constant_vfetch_0 & SQ_CONSTANT_VFETCH_0_TYPE_MASK) >> SQ_CONSTANT_VFETCH_0_TYPE_SHIFT)
+#define SQ_CONSTANT_VFETCH_0_GET_STATE(sq_constant_vfetch_0) \
+ ((sq_constant_vfetch_0 & SQ_CONSTANT_VFETCH_0_STATE_MASK) >> SQ_CONSTANT_VFETCH_0_STATE_SHIFT)
+#define SQ_CONSTANT_VFETCH_0_GET_BASE_ADDRESS(sq_constant_vfetch_0) \
+ ((sq_constant_vfetch_0 & SQ_CONSTANT_VFETCH_0_BASE_ADDRESS_MASK) >> SQ_CONSTANT_VFETCH_0_BASE_ADDRESS_SHIFT)
+
+#define SQ_CONSTANT_VFETCH_0_SET_TYPE(sq_constant_vfetch_0_reg, type) \
+ sq_constant_vfetch_0_reg = (sq_constant_vfetch_0_reg & ~SQ_CONSTANT_VFETCH_0_TYPE_MASK) | (type << SQ_CONSTANT_VFETCH_0_TYPE_SHIFT)
+#define SQ_CONSTANT_VFETCH_0_SET_STATE(sq_constant_vfetch_0_reg, state) \
+ sq_constant_vfetch_0_reg = (sq_constant_vfetch_0_reg & ~SQ_CONSTANT_VFETCH_0_STATE_MASK) | (state << SQ_CONSTANT_VFETCH_0_STATE_SHIFT)
+#define SQ_CONSTANT_VFETCH_0_SET_BASE_ADDRESS(sq_constant_vfetch_0_reg, base_address) \
+ sq_constant_vfetch_0_reg = (sq_constant_vfetch_0_reg & ~SQ_CONSTANT_VFETCH_0_BASE_ADDRESS_MASK) | (base_address << SQ_CONSTANT_VFETCH_0_BASE_ADDRESS_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_constant_vfetch_0_t {
+ unsigned int type : SQ_CONSTANT_VFETCH_0_TYPE_SIZE;
+ unsigned int state : SQ_CONSTANT_VFETCH_0_STATE_SIZE;
+ unsigned int base_address : SQ_CONSTANT_VFETCH_0_BASE_ADDRESS_SIZE;
+ } sq_constant_vfetch_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_constant_vfetch_0_t {
+ unsigned int base_address : SQ_CONSTANT_VFETCH_0_BASE_ADDRESS_SIZE;
+ unsigned int state : SQ_CONSTANT_VFETCH_0_STATE_SIZE;
+ unsigned int type : SQ_CONSTANT_VFETCH_0_TYPE_SIZE;
+ } sq_constant_vfetch_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_constant_vfetch_0_t f;
+} sq_constant_vfetch_0_u;
+
+
+/*
+ * SQ_CONSTANT_VFETCH_1 struct
+ */
+
+#define SQ_CONSTANT_VFETCH_1_ENDIAN_SWAP_SIZE 2
+#define SQ_CONSTANT_VFETCH_1_LIMIT_ADDRESS_SIZE 30
+
+#define SQ_CONSTANT_VFETCH_1_ENDIAN_SWAP_SHIFT 0
+#define SQ_CONSTANT_VFETCH_1_LIMIT_ADDRESS_SHIFT 2
+
+#define SQ_CONSTANT_VFETCH_1_ENDIAN_SWAP_MASK 0x00000003
+#define SQ_CONSTANT_VFETCH_1_LIMIT_ADDRESS_MASK 0xfffffffc
+
+#define SQ_CONSTANT_VFETCH_1_MASK \
+ (SQ_CONSTANT_VFETCH_1_ENDIAN_SWAP_MASK | \
+ SQ_CONSTANT_VFETCH_1_LIMIT_ADDRESS_MASK)
+
+#define SQ_CONSTANT_VFETCH_1(endian_swap, limit_address) \
+ ((endian_swap << SQ_CONSTANT_VFETCH_1_ENDIAN_SWAP_SHIFT) | \
+ (limit_address << SQ_CONSTANT_VFETCH_1_LIMIT_ADDRESS_SHIFT))
+
+#define SQ_CONSTANT_VFETCH_1_GET_ENDIAN_SWAP(sq_constant_vfetch_1) \
+ ((sq_constant_vfetch_1 & SQ_CONSTANT_VFETCH_1_ENDIAN_SWAP_MASK) >> SQ_CONSTANT_VFETCH_1_ENDIAN_SWAP_SHIFT)
+#define SQ_CONSTANT_VFETCH_1_GET_LIMIT_ADDRESS(sq_constant_vfetch_1) \
+ ((sq_constant_vfetch_1 & SQ_CONSTANT_VFETCH_1_LIMIT_ADDRESS_MASK) >> SQ_CONSTANT_VFETCH_1_LIMIT_ADDRESS_SHIFT)
+
+#define SQ_CONSTANT_VFETCH_1_SET_ENDIAN_SWAP(sq_constant_vfetch_1_reg, endian_swap) \
+ sq_constant_vfetch_1_reg = (sq_constant_vfetch_1_reg & ~SQ_CONSTANT_VFETCH_1_ENDIAN_SWAP_MASK) | (endian_swap << SQ_CONSTANT_VFETCH_1_ENDIAN_SWAP_SHIFT)
+#define SQ_CONSTANT_VFETCH_1_SET_LIMIT_ADDRESS(sq_constant_vfetch_1_reg, limit_address) \
+ sq_constant_vfetch_1_reg = (sq_constant_vfetch_1_reg & ~SQ_CONSTANT_VFETCH_1_LIMIT_ADDRESS_MASK) | (limit_address << SQ_CONSTANT_VFETCH_1_LIMIT_ADDRESS_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_constant_vfetch_1_t {
+ unsigned int endian_swap : SQ_CONSTANT_VFETCH_1_ENDIAN_SWAP_SIZE;
+ unsigned int limit_address : SQ_CONSTANT_VFETCH_1_LIMIT_ADDRESS_SIZE;
+ } sq_constant_vfetch_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_constant_vfetch_1_t {
+ unsigned int limit_address : SQ_CONSTANT_VFETCH_1_LIMIT_ADDRESS_SIZE;
+ unsigned int endian_swap : SQ_CONSTANT_VFETCH_1_ENDIAN_SWAP_SIZE;
+ } sq_constant_vfetch_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_constant_vfetch_1_t f;
+} sq_constant_vfetch_1_u;
+
+
+/*
+ * SQ_CONSTANT_T2 struct
+ */
+
+#define SQ_CONSTANT_T2_VALUE_SIZE 32
+
+#define SQ_CONSTANT_T2_VALUE_SHIFT 0
+
+#define SQ_CONSTANT_T2_VALUE_MASK 0xffffffff
+
+#define SQ_CONSTANT_T2_MASK \
+ (SQ_CONSTANT_T2_VALUE_MASK)
+
+#define SQ_CONSTANT_T2(value) \
+ ((value << SQ_CONSTANT_T2_VALUE_SHIFT))
+
+#define SQ_CONSTANT_T2_GET_VALUE(sq_constant_t2) \
+ ((sq_constant_t2 & SQ_CONSTANT_T2_VALUE_MASK) >> SQ_CONSTANT_T2_VALUE_SHIFT)
+
+#define SQ_CONSTANT_T2_SET_VALUE(sq_constant_t2_reg, value) \
+ sq_constant_t2_reg = (sq_constant_t2_reg & ~SQ_CONSTANT_T2_VALUE_MASK) | (value << SQ_CONSTANT_T2_VALUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_constant_t2_t {
+ unsigned int value : SQ_CONSTANT_T2_VALUE_SIZE;
+ } sq_constant_t2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_constant_t2_t {
+ unsigned int value : SQ_CONSTANT_T2_VALUE_SIZE;
+ } sq_constant_t2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_constant_t2_t f;
+} sq_constant_t2_u;
+
+
+/*
+ * SQ_CONSTANT_T3 struct
+ */
+
+#define SQ_CONSTANT_T3_VALUE_SIZE 32
+
+#define SQ_CONSTANT_T3_VALUE_SHIFT 0
+
+#define SQ_CONSTANT_T3_VALUE_MASK 0xffffffff
+
+#define SQ_CONSTANT_T3_MASK \
+ (SQ_CONSTANT_T3_VALUE_MASK)
+
+#define SQ_CONSTANT_T3(value) \
+ ((value << SQ_CONSTANT_T3_VALUE_SHIFT))
+
+#define SQ_CONSTANT_T3_GET_VALUE(sq_constant_t3) \
+ ((sq_constant_t3 & SQ_CONSTANT_T3_VALUE_MASK) >> SQ_CONSTANT_T3_VALUE_SHIFT)
+
+#define SQ_CONSTANT_T3_SET_VALUE(sq_constant_t3_reg, value) \
+ sq_constant_t3_reg = (sq_constant_t3_reg & ~SQ_CONSTANT_T3_VALUE_MASK) | (value << SQ_CONSTANT_T3_VALUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_constant_t3_t {
+ unsigned int value : SQ_CONSTANT_T3_VALUE_SIZE;
+ } sq_constant_t3_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_constant_t3_t {
+ unsigned int value : SQ_CONSTANT_T3_VALUE_SIZE;
+ } sq_constant_t3_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_constant_t3_t f;
+} sq_constant_t3_u;
+
+
+/*
+ * SQ_CF_BOOLEANS struct
+ */
+
+#define SQ_CF_BOOLEANS_CF_BOOLEANS_0_SIZE 8
+#define SQ_CF_BOOLEANS_CF_BOOLEANS_1_SIZE 8
+#define SQ_CF_BOOLEANS_CF_BOOLEANS_2_SIZE 8
+#define SQ_CF_BOOLEANS_CF_BOOLEANS_3_SIZE 8
+
+#define SQ_CF_BOOLEANS_CF_BOOLEANS_0_SHIFT 0
+#define SQ_CF_BOOLEANS_CF_BOOLEANS_1_SHIFT 8
+#define SQ_CF_BOOLEANS_CF_BOOLEANS_2_SHIFT 16
+#define SQ_CF_BOOLEANS_CF_BOOLEANS_3_SHIFT 24
+
+#define SQ_CF_BOOLEANS_CF_BOOLEANS_0_MASK 0x000000ff
+#define SQ_CF_BOOLEANS_CF_BOOLEANS_1_MASK 0x0000ff00
+#define SQ_CF_BOOLEANS_CF_BOOLEANS_2_MASK 0x00ff0000
+#define SQ_CF_BOOLEANS_CF_BOOLEANS_3_MASK 0xff000000
+
+#define SQ_CF_BOOLEANS_MASK \
+ (SQ_CF_BOOLEANS_CF_BOOLEANS_0_MASK | \
+ SQ_CF_BOOLEANS_CF_BOOLEANS_1_MASK | \
+ SQ_CF_BOOLEANS_CF_BOOLEANS_2_MASK | \
+ SQ_CF_BOOLEANS_CF_BOOLEANS_3_MASK)
+
+#define SQ_CF_BOOLEANS(cf_booleans_0, cf_booleans_1, cf_booleans_2, cf_booleans_3) \
+ ((cf_booleans_0 << SQ_CF_BOOLEANS_CF_BOOLEANS_0_SHIFT) | \
+ (cf_booleans_1 << SQ_CF_BOOLEANS_CF_BOOLEANS_1_SHIFT) | \
+ (cf_booleans_2 << SQ_CF_BOOLEANS_CF_BOOLEANS_2_SHIFT) | \
+ (cf_booleans_3 << SQ_CF_BOOLEANS_CF_BOOLEANS_3_SHIFT))
+
+#define SQ_CF_BOOLEANS_GET_CF_BOOLEANS_0(sq_cf_booleans) \
+ ((sq_cf_booleans & SQ_CF_BOOLEANS_CF_BOOLEANS_0_MASK) >> SQ_CF_BOOLEANS_CF_BOOLEANS_0_SHIFT)
+#define SQ_CF_BOOLEANS_GET_CF_BOOLEANS_1(sq_cf_booleans) \
+ ((sq_cf_booleans & SQ_CF_BOOLEANS_CF_BOOLEANS_1_MASK) >> SQ_CF_BOOLEANS_CF_BOOLEANS_1_SHIFT)
+#define SQ_CF_BOOLEANS_GET_CF_BOOLEANS_2(sq_cf_booleans) \
+ ((sq_cf_booleans & SQ_CF_BOOLEANS_CF_BOOLEANS_2_MASK) >> SQ_CF_BOOLEANS_CF_BOOLEANS_2_SHIFT)
+#define SQ_CF_BOOLEANS_GET_CF_BOOLEANS_3(sq_cf_booleans) \
+ ((sq_cf_booleans & SQ_CF_BOOLEANS_CF_BOOLEANS_3_MASK) >> SQ_CF_BOOLEANS_CF_BOOLEANS_3_SHIFT)
+
+#define SQ_CF_BOOLEANS_SET_CF_BOOLEANS_0(sq_cf_booleans_reg, cf_booleans_0) \
+ sq_cf_booleans_reg = (sq_cf_booleans_reg & ~SQ_CF_BOOLEANS_CF_BOOLEANS_0_MASK) | (cf_booleans_0 << SQ_CF_BOOLEANS_CF_BOOLEANS_0_SHIFT)
+#define SQ_CF_BOOLEANS_SET_CF_BOOLEANS_1(sq_cf_booleans_reg, cf_booleans_1) \
+ sq_cf_booleans_reg = (sq_cf_booleans_reg & ~SQ_CF_BOOLEANS_CF_BOOLEANS_1_MASK) | (cf_booleans_1 << SQ_CF_BOOLEANS_CF_BOOLEANS_1_SHIFT)
+#define SQ_CF_BOOLEANS_SET_CF_BOOLEANS_2(sq_cf_booleans_reg, cf_booleans_2) \
+ sq_cf_booleans_reg = (sq_cf_booleans_reg & ~SQ_CF_BOOLEANS_CF_BOOLEANS_2_MASK) | (cf_booleans_2 << SQ_CF_BOOLEANS_CF_BOOLEANS_2_SHIFT)
+#define SQ_CF_BOOLEANS_SET_CF_BOOLEANS_3(sq_cf_booleans_reg, cf_booleans_3) \
+ sq_cf_booleans_reg = (sq_cf_booleans_reg & ~SQ_CF_BOOLEANS_CF_BOOLEANS_3_MASK) | (cf_booleans_3 << SQ_CF_BOOLEANS_CF_BOOLEANS_3_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_cf_booleans_t {
+ unsigned int cf_booleans_0 : SQ_CF_BOOLEANS_CF_BOOLEANS_0_SIZE;
+ unsigned int cf_booleans_1 : SQ_CF_BOOLEANS_CF_BOOLEANS_1_SIZE;
+ unsigned int cf_booleans_2 : SQ_CF_BOOLEANS_CF_BOOLEANS_2_SIZE;
+ unsigned int cf_booleans_3 : SQ_CF_BOOLEANS_CF_BOOLEANS_3_SIZE;
+ } sq_cf_booleans_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_cf_booleans_t {
+ unsigned int cf_booleans_3 : SQ_CF_BOOLEANS_CF_BOOLEANS_3_SIZE;
+ unsigned int cf_booleans_2 : SQ_CF_BOOLEANS_CF_BOOLEANS_2_SIZE;
+ unsigned int cf_booleans_1 : SQ_CF_BOOLEANS_CF_BOOLEANS_1_SIZE;
+ unsigned int cf_booleans_0 : SQ_CF_BOOLEANS_CF_BOOLEANS_0_SIZE;
+ } sq_cf_booleans_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_cf_booleans_t f;
+} sq_cf_booleans_u;
+
+
+/*
+ * SQ_CF_LOOP struct
+ */
+
+#define SQ_CF_LOOP_CF_LOOP_COUNT_SIZE 8
+#define SQ_CF_LOOP_CF_LOOP_START_SIZE 8
+#define SQ_CF_LOOP_CF_LOOP_STEP_SIZE 8
+
+#define SQ_CF_LOOP_CF_LOOP_COUNT_SHIFT 0
+#define SQ_CF_LOOP_CF_LOOP_START_SHIFT 8
+#define SQ_CF_LOOP_CF_LOOP_STEP_SHIFT 16
+
+#define SQ_CF_LOOP_CF_LOOP_COUNT_MASK 0x000000ff
+#define SQ_CF_LOOP_CF_LOOP_START_MASK 0x0000ff00
+#define SQ_CF_LOOP_CF_LOOP_STEP_MASK 0x00ff0000
+
+#define SQ_CF_LOOP_MASK \
+ (SQ_CF_LOOP_CF_LOOP_COUNT_MASK | \
+ SQ_CF_LOOP_CF_LOOP_START_MASK | \
+ SQ_CF_LOOP_CF_LOOP_STEP_MASK)
+
+#define SQ_CF_LOOP(cf_loop_count, cf_loop_start, cf_loop_step) \
+ ((cf_loop_count << SQ_CF_LOOP_CF_LOOP_COUNT_SHIFT) | \
+ (cf_loop_start << SQ_CF_LOOP_CF_LOOP_START_SHIFT) | \
+ (cf_loop_step << SQ_CF_LOOP_CF_LOOP_STEP_SHIFT))
+
+#define SQ_CF_LOOP_GET_CF_LOOP_COUNT(sq_cf_loop) \
+ ((sq_cf_loop & SQ_CF_LOOP_CF_LOOP_COUNT_MASK) >> SQ_CF_LOOP_CF_LOOP_COUNT_SHIFT)
+#define SQ_CF_LOOP_GET_CF_LOOP_START(sq_cf_loop) \
+ ((sq_cf_loop & SQ_CF_LOOP_CF_LOOP_START_MASK) >> SQ_CF_LOOP_CF_LOOP_START_SHIFT)
+#define SQ_CF_LOOP_GET_CF_LOOP_STEP(sq_cf_loop) \
+ ((sq_cf_loop & SQ_CF_LOOP_CF_LOOP_STEP_MASK) >> SQ_CF_LOOP_CF_LOOP_STEP_SHIFT)
+
+#define SQ_CF_LOOP_SET_CF_LOOP_COUNT(sq_cf_loop_reg, cf_loop_count) \
+ sq_cf_loop_reg = (sq_cf_loop_reg & ~SQ_CF_LOOP_CF_LOOP_COUNT_MASK) | (cf_loop_count << SQ_CF_LOOP_CF_LOOP_COUNT_SHIFT)
+#define SQ_CF_LOOP_SET_CF_LOOP_START(sq_cf_loop_reg, cf_loop_start) \
+ sq_cf_loop_reg = (sq_cf_loop_reg & ~SQ_CF_LOOP_CF_LOOP_START_MASK) | (cf_loop_start << SQ_CF_LOOP_CF_LOOP_START_SHIFT)
+#define SQ_CF_LOOP_SET_CF_LOOP_STEP(sq_cf_loop_reg, cf_loop_step) \
+ sq_cf_loop_reg = (sq_cf_loop_reg & ~SQ_CF_LOOP_CF_LOOP_STEP_MASK) | (cf_loop_step << SQ_CF_LOOP_CF_LOOP_STEP_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_cf_loop_t {
+ unsigned int cf_loop_count : SQ_CF_LOOP_CF_LOOP_COUNT_SIZE;
+ unsigned int cf_loop_start : SQ_CF_LOOP_CF_LOOP_START_SIZE;
+ unsigned int cf_loop_step : SQ_CF_LOOP_CF_LOOP_STEP_SIZE;
+ unsigned int : 8;
+ } sq_cf_loop_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_cf_loop_t {
+ unsigned int : 8;
+ unsigned int cf_loop_step : SQ_CF_LOOP_CF_LOOP_STEP_SIZE;
+ unsigned int cf_loop_start : SQ_CF_LOOP_CF_LOOP_START_SIZE;
+ unsigned int cf_loop_count : SQ_CF_LOOP_CF_LOOP_COUNT_SIZE;
+ } sq_cf_loop_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_cf_loop_t f;
+} sq_cf_loop_u;
+
+
+/*
+ * SQ_CONSTANT_RT_0 struct
+ */
+
+#define SQ_CONSTANT_RT_0_RED_SIZE 32
+
+#define SQ_CONSTANT_RT_0_RED_SHIFT 0
+
+#define SQ_CONSTANT_RT_0_RED_MASK 0xffffffff
+
+#define SQ_CONSTANT_RT_0_MASK \
+ (SQ_CONSTANT_RT_0_RED_MASK)
+
+#define SQ_CONSTANT_RT_0(red) \
+ ((red << SQ_CONSTANT_RT_0_RED_SHIFT))
+
+#define SQ_CONSTANT_RT_0_GET_RED(sq_constant_rt_0) \
+ ((sq_constant_rt_0 & SQ_CONSTANT_RT_0_RED_MASK) >> SQ_CONSTANT_RT_0_RED_SHIFT)
+
+#define SQ_CONSTANT_RT_0_SET_RED(sq_constant_rt_0_reg, red) \
+ sq_constant_rt_0_reg = (sq_constant_rt_0_reg & ~SQ_CONSTANT_RT_0_RED_MASK) | (red << SQ_CONSTANT_RT_0_RED_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_constant_rt_0_t {
+ unsigned int red : SQ_CONSTANT_RT_0_RED_SIZE;
+ } sq_constant_rt_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_constant_rt_0_t {
+ unsigned int red : SQ_CONSTANT_RT_0_RED_SIZE;
+ } sq_constant_rt_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_constant_rt_0_t f;
+} sq_constant_rt_0_u;
+
+
+/*
+ * SQ_CONSTANT_RT_1 struct
+ */
+
+#define SQ_CONSTANT_RT_1_GREEN_SIZE 32
+
+#define SQ_CONSTANT_RT_1_GREEN_SHIFT 0
+
+#define SQ_CONSTANT_RT_1_GREEN_MASK 0xffffffff
+
+#define SQ_CONSTANT_RT_1_MASK \
+ (SQ_CONSTANT_RT_1_GREEN_MASK)
+
+#define SQ_CONSTANT_RT_1(green) \
+ ((green << SQ_CONSTANT_RT_1_GREEN_SHIFT))
+
+#define SQ_CONSTANT_RT_1_GET_GREEN(sq_constant_rt_1) \
+ ((sq_constant_rt_1 & SQ_CONSTANT_RT_1_GREEN_MASK) >> SQ_CONSTANT_RT_1_GREEN_SHIFT)
+
+#define SQ_CONSTANT_RT_1_SET_GREEN(sq_constant_rt_1_reg, green) \
+ sq_constant_rt_1_reg = (sq_constant_rt_1_reg & ~SQ_CONSTANT_RT_1_GREEN_MASK) | (green << SQ_CONSTANT_RT_1_GREEN_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_constant_rt_1_t {
+ unsigned int green : SQ_CONSTANT_RT_1_GREEN_SIZE;
+ } sq_constant_rt_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_constant_rt_1_t {
+ unsigned int green : SQ_CONSTANT_RT_1_GREEN_SIZE;
+ } sq_constant_rt_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_constant_rt_1_t f;
+} sq_constant_rt_1_u;
+
+
+/*
+ * SQ_CONSTANT_RT_2 struct
+ */
+
+#define SQ_CONSTANT_RT_2_BLUE_SIZE 32
+
+#define SQ_CONSTANT_RT_2_BLUE_SHIFT 0
+
+#define SQ_CONSTANT_RT_2_BLUE_MASK 0xffffffff
+
+#define SQ_CONSTANT_RT_2_MASK \
+ (SQ_CONSTANT_RT_2_BLUE_MASK)
+
+#define SQ_CONSTANT_RT_2(blue) \
+ ((blue << SQ_CONSTANT_RT_2_BLUE_SHIFT))
+
+#define SQ_CONSTANT_RT_2_GET_BLUE(sq_constant_rt_2) \
+ ((sq_constant_rt_2 & SQ_CONSTANT_RT_2_BLUE_MASK) >> SQ_CONSTANT_RT_2_BLUE_SHIFT)
+
+#define SQ_CONSTANT_RT_2_SET_BLUE(sq_constant_rt_2_reg, blue) \
+ sq_constant_rt_2_reg = (sq_constant_rt_2_reg & ~SQ_CONSTANT_RT_2_BLUE_MASK) | (blue << SQ_CONSTANT_RT_2_BLUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_constant_rt_2_t {
+ unsigned int blue : SQ_CONSTANT_RT_2_BLUE_SIZE;
+ } sq_constant_rt_2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_constant_rt_2_t {
+ unsigned int blue : SQ_CONSTANT_RT_2_BLUE_SIZE;
+ } sq_constant_rt_2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_constant_rt_2_t f;
+} sq_constant_rt_2_u;
+
+
+/*
+ * SQ_CONSTANT_RT_3 struct
+ */
+
+#define SQ_CONSTANT_RT_3_ALPHA_SIZE 32
+
+#define SQ_CONSTANT_RT_3_ALPHA_SHIFT 0
+
+#define SQ_CONSTANT_RT_3_ALPHA_MASK 0xffffffff
+
+#define SQ_CONSTANT_RT_3_MASK \
+ (SQ_CONSTANT_RT_3_ALPHA_MASK)
+
+#define SQ_CONSTANT_RT_3(alpha) \
+ ((alpha << SQ_CONSTANT_RT_3_ALPHA_SHIFT))
+
+#define SQ_CONSTANT_RT_3_GET_ALPHA(sq_constant_rt_3) \
+ ((sq_constant_rt_3 & SQ_CONSTANT_RT_3_ALPHA_MASK) >> SQ_CONSTANT_RT_3_ALPHA_SHIFT)
+
+#define SQ_CONSTANT_RT_3_SET_ALPHA(sq_constant_rt_3_reg, alpha) \
+ sq_constant_rt_3_reg = (sq_constant_rt_3_reg & ~SQ_CONSTANT_RT_3_ALPHA_MASK) | (alpha << SQ_CONSTANT_RT_3_ALPHA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_constant_rt_3_t {
+ unsigned int alpha : SQ_CONSTANT_RT_3_ALPHA_SIZE;
+ } sq_constant_rt_3_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_constant_rt_3_t {
+ unsigned int alpha : SQ_CONSTANT_RT_3_ALPHA_SIZE;
+ } sq_constant_rt_3_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_constant_rt_3_t f;
+} sq_constant_rt_3_u;
+
+
+/*
+ * SQ_FETCH_RT_0 struct
+ */
+
+#define SQ_FETCH_RT_0_VALUE_SIZE 32
+
+#define SQ_FETCH_RT_0_VALUE_SHIFT 0
+
+#define SQ_FETCH_RT_0_VALUE_MASK 0xffffffff
+
+#define SQ_FETCH_RT_0_MASK \
+ (SQ_FETCH_RT_0_VALUE_MASK)
+
+#define SQ_FETCH_RT_0(value) \
+ ((value << SQ_FETCH_RT_0_VALUE_SHIFT))
+
+#define SQ_FETCH_RT_0_GET_VALUE(sq_fetch_rt_0) \
+ ((sq_fetch_rt_0 & SQ_FETCH_RT_0_VALUE_MASK) >> SQ_FETCH_RT_0_VALUE_SHIFT)
+
+#define SQ_FETCH_RT_0_SET_VALUE(sq_fetch_rt_0_reg, value) \
+ sq_fetch_rt_0_reg = (sq_fetch_rt_0_reg & ~SQ_FETCH_RT_0_VALUE_MASK) | (value << SQ_FETCH_RT_0_VALUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_fetch_rt_0_t {
+ unsigned int value : SQ_FETCH_RT_0_VALUE_SIZE;
+ } sq_fetch_rt_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_fetch_rt_0_t {
+ unsigned int value : SQ_FETCH_RT_0_VALUE_SIZE;
+ } sq_fetch_rt_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_fetch_rt_0_t f;
+} sq_fetch_rt_0_u;
+
+
+/*
+ * SQ_FETCH_RT_1 struct
+ */
+
+#define SQ_FETCH_RT_1_VALUE_SIZE 32
+
+#define SQ_FETCH_RT_1_VALUE_SHIFT 0
+
+#define SQ_FETCH_RT_1_VALUE_MASK 0xffffffff
+
+#define SQ_FETCH_RT_1_MASK \
+ (SQ_FETCH_RT_1_VALUE_MASK)
+
+#define SQ_FETCH_RT_1(value) \
+ ((value << SQ_FETCH_RT_1_VALUE_SHIFT))
+
+#define SQ_FETCH_RT_1_GET_VALUE(sq_fetch_rt_1) \
+ ((sq_fetch_rt_1 & SQ_FETCH_RT_1_VALUE_MASK) >> SQ_FETCH_RT_1_VALUE_SHIFT)
+
+#define SQ_FETCH_RT_1_SET_VALUE(sq_fetch_rt_1_reg, value) \
+ sq_fetch_rt_1_reg = (sq_fetch_rt_1_reg & ~SQ_FETCH_RT_1_VALUE_MASK) | (value << SQ_FETCH_RT_1_VALUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_fetch_rt_1_t {
+ unsigned int value : SQ_FETCH_RT_1_VALUE_SIZE;
+ } sq_fetch_rt_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_fetch_rt_1_t {
+ unsigned int value : SQ_FETCH_RT_1_VALUE_SIZE;
+ } sq_fetch_rt_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_fetch_rt_1_t f;
+} sq_fetch_rt_1_u;
+
+
+/*
+ * SQ_FETCH_RT_2 struct
+ */
+
+#define SQ_FETCH_RT_2_VALUE_SIZE 32
+
+#define SQ_FETCH_RT_2_VALUE_SHIFT 0
+
+#define SQ_FETCH_RT_2_VALUE_MASK 0xffffffff
+
+#define SQ_FETCH_RT_2_MASK \
+ (SQ_FETCH_RT_2_VALUE_MASK)
+
+#define SQ_FETCH_RT_2(value) \
+ ((value << SQ_FETCH_RT_2_VALUE_SHIFT))
+
+#define SQ_FETCH_RT_2_GET_VALUE(sq_fetch_rt_2) \
+ ((sq_fetch_rt_2 & SQ_FETCH_RT_2_VALUE_MASK) >> SQ_FETCH_RT_2_VALUE_SHIFT)
+
+#define SQ_FETCH_RT_2_SET_VALUE(sq_fetch_rt_2_reg, value) \
+ sq_fetch_rt_2_reg = (sq_fetch_rt_2_reg & ~SQ_FETCH_RT_2_VALUE_MASK) | (value << SQ_FETCH_RT_2_VALUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_fetch_rt_2_t {
+ unsigned int value : SQ_FETCH_RT_2_VALUE_SIZE;
+ } sq_fetch_rt_2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_fetch_rt_2_t {
+ unsigned int value : SQ_FETCH_RT_2_VALUE_SIZE;
+ } sq_fetch_rt_2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_fetch_rt_2_t f;
+} sq_fetch_rt_2_u;
+
+
+/*
+ * SQ_FETCH_RT_3 struct
+ */
+
+#define SQ_FETCH_RT_3_VALUE_SIZE 32
+
+#define SQ_FETCH_RT_3_VALUE_SHIFT 0
+
+#define SQ_FETCH_RT_3_VALUE_MASK 0xffffffff
+
+#define SQ_FETCH_RT_3_MASK \
+ (SQ_FETCH_RT_3_VALUE_MASK)
+
+#define SQ_FETCH_RT_3(value) \
+ ((value << SQ_FETCH_RT_3_VALUE_SHIFT))
+
+#define SQ_FETCH_RT_3_GET_VALUE(sq_fetch_rt_3) \
+ ((sq_fetch_rt_3 & SQ_FETCH_RT_3_VALUE_MASK) >> SQ_FETCH_RT_3_VALUE_SHIFT)
+
+#define SQ_FETCH_RT_3_SET_VALUE(sq_fetch_rt_3_reg, value) \
+ sq_fetch_rt_3_reg = (sq_fetch_rt_3_reg & ~SQ_FETCH_RT_3_VALUE_MASK) | (value << SQ_FETCH_RT_3_VALUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_fetch_rt_3_t {
+ unsigned int value : SQ_FETCH_RT_3_VALUE_SIZE;
+ } sq_fetch_rt_3_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_fetch_rt_3_t {
+ unsigned int value : SQ_FETCH_RT_3_VALUE_SIZE;
+ } sq_fetch_rt_3_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_fetch_rt_3_t f;
+} sq_fetch_rt_3_u;
+
+
+/*
+ * SQ_FETCH_RT_4 struct
+ */
+
+#define SQ_FETCH_RT_4_VALUE_SIZE 32
+
+#define SQ_FETCH_RT_4_VALUE_SHIFT 0
+
+#define SQ_FETCH_RT_4_VALUE_MASK 0xffffffff
+
+#define SQ_FETCH_RT_4_MASK \
+ (SQ_FETCH_RT_4_VALUE_MASK)
+
+#define SQ_FETCH_RT_4(value) \
+ ((value << SQ_FETCH_RT_4_VALUE_SHIFT))
+
+#define SQ_FETCH_RT_4_GET_VALUE(sq_fetch_rt_4) \
+ ((sq_fetch_rt_4 & SQ_FETCH_RT_4_VALUE_MASK) >> SQ_FETCH_RT_4_VALUE_SHIFT)
+
+#define SQ_FETCH_RT_4_SET_VALUE(sq_fetch_rt_4_reg, value) \
+ sq_fetch_rt_4_reg = (sq_fetch_rt_4_reg & ~SQ_FETCH_RT_4_VALUE_MASK) | (value << SQ_FETCH_RT_4_VALUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_fetch_rt_4_t {
+ unsigned int value : SQ_FETCH_RT_4_VALUE_SIZE;
+ } sq_fetch_rt_4_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_fetch_rt_4_t {
+ unsigned int value : SQ_FETCH_RT_4_VALUE_SIZE;
+ } sq_fetch_rt_4_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_fetch_rt_4_t f;
+} sq_fetch_rt_4_u;
+
+
+/*
+ * SQ_FETCH_RT_5 struct
+ */
+
+#define SQ_FETCH_RT_5_VALUE_SIZE 32
+
+#define SQ_FETCH_RT_5_VALUE_SHIFT 0
+
+#define SQ_FETCH_RT_5_VALUE_MASK 0xffffffff
+
+#define SQ_FETCH_RT_5_MASK \
+ (SQ_FETCH_RT_5_VALUE_MASK)
+
+#define SQ_FETCH_RT_5(value) \
+ ((value << SQ_FETCH_RT_5_VALUE_SHIFT))
+
+#define SQ_FETCH_RT_5_GET_VALUE(sq_fetch_rt_5) \
+ ((sq_fetch_rt_5 & SQ_FETCH_RT_5_VALUE_MASK) >> SQ_FETCH_RT_5_VALUE_SHIFT)
+
+#define SQ_FETCH_RT_5_SET_VALUE(sq_fetch_rt_5_reg, value) \
+ sq_fetch_rt_5_reg = (sq_fetch_rt_5_reg & ~SQ_FETCH_RT_5_VALUE_MASK) | (value << SQ_FETCH_RT_5_VALUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_fetch_rt_5_t {
+ unsigned int value : SQ_FETCH_RT_5_VALUE_SIZE;
+ } sq_fetch_rt_5_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_fetch_rt_5_t {
+ unsigned int value : SQ_FETCH_RT_5_VALUE_SIZE;
+ } sq_fetch_rt_5_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_fetch_rt_5_t f;
+} sq_fetch_rt_5_u;
+
+
+/*
+ * SQ_CF_RT_BOOLEANS struct
+ */
+
+#define SQ_CF_RT_BOOLEANS_CF_BOOLEANS_0_SIZE 8
+#define SQ_CF_RT_BOOLEANS_CF_BOOLEANS_1_SIZE 8
+#define SQ_CF_RT_BOOLEANS_CF_BOOLEANS_2_SIZE 8
+#define SQ_CF_RT_BOOLEANS_CF_BOOLEANS_3_SIZE 8
+
+#define SQ_CF_RT_BOOLEANS_CF_BOOLEANS_0_SHIFT 0
+#define SQ_CF_RT_BOOLEANS_CF_BOOLEANS_1_SHIFT 8
+#define SQ_CF_RT_BOOLEANS_CF_BOOLEANS_2_SHIFT 16
+#define SQ_CF_RT_BOOLEANS_CF_BOOLEANS_3_SHIFT 24
+
+#define SQ_CF_RT_BOOLEANS_CF_BOOLEANS_0_MASK 0x000000ff
+#define SQ_CF_RT_BOOLEANS_CF_BOOLEANS_1_MASK 0x0000ff00
+#define SQ_CF_RT_BOOLEANS_CF_BOOLEANS_2_MASK 0x00ff0000
+#define SQ_CF_RT_BOOLEANS_CF_BOOLEANS_3_MASK 0xff000000
+
+#define SQ_CF_RT_BOOLEANS_MASK \
+ (SQ_CF_RT_BOOLEANS_CF_BOOLEANS_0_MASK | \
+ SQ_CF_RT_BOOLEANS_CF_BOOLEANS_1_MASK | \
+ SQ_CF_RT_BOOLEANS_CF_BOOLEANS_2_MASK | \
+ SQ_CF_RT_BOOLEANS_CF_BOOLEANS_3_MASK)
+
+#define SQ_CF_RT_BOOLEANS(cf_booleans_0, cf_booleans_1, cf_booleans_2, cf_booleans_3) \
+ ((cf_booleans_0 << SQ_CF_RT_BOOLEANS_CF_BOOLEANS_0_SHIFT) | \
+ (cf_booleans_1 << SQ_CF_RT_BOOLEANS_CF_BOOLEANS_1_SHIFT) | \
+ (cf_booleans_2 << SQ_CF_RT_BOOLEANS_CF_BOOLEANS_2_SHIFT) | \
+ (cf_booleans_3 << SQ_CF_RT_BOOLEANS_CF_BOOLEANS_3_SHIFT))
+
+#define SQ_CF_RT_BOOLEANS_GET_CF_BOOLEANS_0(sq_cf_rt_booleans) \
+ ((sq_cf_rt_booleans & SQ_CF_RT_BOOLEANS_CF_BOOLEANS_0_MASK) >> SQ_CF_RT_BOOLEANS_CF_BOOLEANS_0_SHIFT)
+#define SQ_CF_RT_BOOLEANS_GET_CF_BOOLEANS_1(sq_cf_rt_booleans) \
+ ((sq_cf_rt_booleans & SQ_CF_RT_BOOLEANS_CF_BOOLEANS_1_MASK) >> SQ_CF_RT_BOOLEANS_CF_BOOLEANS_1_SHIFT)
+#define SQ_CF_RT_BOOLEANS_GET_CF_BOOLEANS_2(sq_cf_rt_booleans) \
+ ((sq_cf_rt_booleans & SQ_CF_RT_BOOLEANS_CF_BOOLEANS_2_MASK) >> SQ_CF_RT_BOOLEANS_CF_BOOLEANS_2_SHIFT)
+#define SQ_CF_RT_BOOLEANS_GET_CF_BOOLEANS_3(sq_cf_rt_booleans) \
+ ((sq_cf_rt_booleans & SQ_CF_RT_BOOLEANS_CF_BOOLEANS_3_MASK) >> SQ_CF_RT_BOOLEANS_CF_BOOLEANS_3_SHIFT)
+
+#define SQ_CF_RT_BOOLEANS_SET_CF_BOOLEANS_0(sq_cf_rt_booleans_reg, cf_booleans_0) \
+ sq_cf_rt_booleans_reg = (sq_cf_rt_booleans_reg & ~SQ_CF_RT_BOOLEANS_CF_BOOLEANS_0_MASK) | (cf_booleans_0 << SQ_CF_RT_BOOLEANS_CF_BOOLEANS_0_SHIFT)
+#define SQ_CF_RT_BOOLEANS_SET_CF_BOOLEANS_1(sq_cf_rt_booleans_reg, cf_booleans_1) \
+ sq_cf_rt_booleans_reg = (sq_cf_rt_booleans_reg & ~SQ_CF_RT_BOOLEANS_CF_BOOLEANS_1_MASK) | (cf_booleans_1 << SQ_CF_RT_BOOLEANS_CF_BOOLEANS_1_SHIFT)
+#define SQ_CF_RT_BOOLEANS_SET_CF_BOOLEANS_2(sq_cf_rt_booleans_reg, cf_booleans_2) \
+ sq_cf_rt_booleans_reg = (sq_cf_rt_booleans_reg & ~SQ_CF_RT_BOOLEANS_CF_BOOLEANS_2_MASK) | (cf_booleans_2 << SQ_CF_RT_BOOLEANS_CF_BOOLEANS_2_SHIFT)
+#define SQ_CF_RT_BOOLEANS_SET_CF_BOOLEANS_3(sq_cf_rt_booleans_reg, cf_booleans_3) \
+ sq_cf_rt_booleans_reg = (sq_cf_rt_booleans_reg & ~SQ_CF_RT_BOOLEANS_CF_BOOLEANS_3_MASK) | (cf_booleans_3 << SQ_CF_RT_BOOLEANS_CF_BOOLEANS_3_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_cf_rt_booleans_t {
+ unsigned int cf_booleans_0 : SQ_CF_RT_BOOLEANS_CF_BOOLEANS_0_SIZE;
+ unsigned int cf_booleans_1 : SQ_CF_RT_BOOLEANS_CF_BOOLEANS_1_SIZE;
+ unsigned int cf_booleans_2 : SQ_CF_RT_BOOLEANS_CF_BOOLEANS_2_SIZE;
+ unsigned int cf_booleans_3 : SQ_CF_RT_BOOLEANS_CF_BOOLEANS_3_SIZE;
+ } sq_cf_rt_booleans_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_cf_rt_booleans_t {
+ unsigned int cf_booleans_3 : SQ_CF_RT_BOOLEANS_CF_BOOLEANS_3_SIZE;
+ unsigned int cf_booleans_2 : SQ_CF_RT_BOOLEANS_CF_BOOLEANS_2_SIZE;
+ unsigned int cf_booleans_1 : SQ_CF_RT_BOOLEANS_CF_BOOLEANS_1_SIZE;
+ unsigned int cf_booleans_0 : SQ_CF_RT_BOOLEANS_CF_BOOLEANS_0_SIZE;
+ } sq_cf_rt_booleans_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_cf_rt_booleans_t f;
+} sq_cf_rt_booleans_u;
+
+
+/*
+ * SQ_CF_RT_LOOP struct
+ */
+
+#define SQ_CF_RT_LOOP_CF_LOOP_COUNT_SIZE 8
+#define SQ_CF_RT_LOOP_CF_LOOP_START_SIZE 8
+#define SQ_CF_RT_LOOP_CF_LOOP_STEP_SIZE 8
+
+#define SQ_CF_RT_LOOP_CF_LOOP_COUNT_SHIFT 0
+#define SQ_CF_RT_LOOP_CF_LOOP_START_SHIFT 8
+#define SQ_CF_RT_LOOP_CF_LOOP_STEP_SHIFT 16
+
+#define SQ_CF_RT_LOOP_CF_LOOP_COUNT_MASK 0x000000ff
+#define SQ_CF_RT_LOOP_CF_LOOP_START_MASK 0x0000ff00
+#define SQ_CF_RT_LOOP_CF_LOOP_STEP_MASK 0x00ff0000
+
+#define SQ_CF_RT_LOOP_MASK \
+ (SQ_CF_RT_LOOP_CF_LOOP_COUNT_MASK | \
+ SQ_CF_RT_LOOP_CF_LOOP_START_MASK | \
+ SQ_CF_RT_LOOP_CF_LOOP_STEP_MASK)
+
+#define SQ_CF_RT_LOOP(cf_loop_count, cf_loop_start, cf_loop_step) \
+ ((cf_loop_count << SQ_CF_RT_LOOP_CF_LOOP_COUNT_SHIFT) | \
+ (cf_loop_start << SQ_CF_RT_LOOP_CF_LOOP_START_SHIFT) | \
+ (cf_loop_step << SQ_CF_RT_LOOP_CF_LOOP_STEP_SHIFT))
+
+#define SQ_CF_RT_LOOP_GET_CF_LOOP_COUNT(sq_cf_rt_loop) \
+ ((sq_cf_rt_loop & SQ_CF_RT_LOOP_CF_LOOP_COUNT_MASK) >> SQ_CF_RT_LOOP_CF_LOOP_COUNT_SHIFT)
+#define SQ_CF_RT_LOOP_GET_CF_LOOP_START(sq_cf_rt_loop) \
+ ((sq_cf_rt_loop & SQ_CF_RT_LOOP_CF_LOOP_START_MASK) >> SQ_CF_RT_LOOP_CF_LOOP_START_SHIFT)
+#define SQ_CF_RT_LOOP_GET_CF_LOOP_STEP(sq_cf_rt_loop) \
+ ((sq_cf_rt_loop & SQ_CF_RT_LOOP_CF_LOOP_STEP_MASK) >> SQ_CF_RT_LOOP_CF_LOOP_STEP_SHIFT)
+
+#define SQ_CF_RT_LOOP_SET_CF_LOOP_COUNT(sq_cf_rt_loop_reg, cf_loop_count) \
+ sq_cf_rt_loop_reg = (sq_cf_rt_loop_reg & ~SQ_CF_RT_LOOP_CF_LOOP_COUNT_MASK) | (cf_loop_count << SQ_CF_RT_LOOP_CF_LOOP_COUNT_SHIFT)
+#define SQ_CF_RT_LOOP_SET_CF_LOOP_START(sq_cf_rt_loop_reg, cf_loop_start) \
+ sq_cf_rt_loop_reg = (sq_cf_rt_loop_reg & ~SQ_CF_RT_LOOP_CF_LOOP_START_MASK) | (cf_loop_start << SQ_CF_RT_LOOP_CF_LOOP_START_SHIFT)
+#define SQ_CF_RT_LOOP_SET_CF_LOOP_STEP(sq_cf_rt_loop_reg, cf_loop_step) \
+ sq_cf_rt_loop_reg = (sq_cf_rt_loop_reg & ~SQ_CF_RT_LOOP_CF_LOOP_STEP_MASK) | (cf_loop_step << SQ_CF_RT_LOOP_CF_LOOP_STEP_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_cf_rt_loop_t {
+ unsigned int cf_loop_count : SQ_CF_RT_LOOP_CF_LOOP_COUNT_SIZE;
+ unsigned int cf_loop_start : SQ_CF_RT_LOOP_CF_LOOP_START_SIZE;
+ unsigned int cf_loop_step : SQ_CF_RT_LOOP_CF_LOOP_STEP_SIZE;
+ unsigned int : 8;
+ } sq_cf_rt_loop_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_cf_rt_loop_t {
+ unsigned int : 8;
+ unsigned int cf_loop_step : SQ_CF_RT_LOOP_CF_LOOP_STEP_SIZE;
+ unsigned int cf_loop_start : SQ_CF_RT_LOOP_CF_LOOP_START_SIZE;
+ unsigned int cf_loop_count : SQ_CF_RT_LOOP_CF_LOOP_COUNT_SIZE;
+ } sq_cf_rt_loop_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_cf_rt_loop_t f;
+} sq_cf_rt_loop_u;
+
+
+/*
+ * SQ_VS_PROGRAM struct
+ */
+
+#define SQ_VS_PROGRAM_BASE_SIZE 12
+#define SQ_VS_PROGRAM_SIZE_SIZE 12
+
+#define SQ_VS_PROGRAM_BASE_SHIFT 0
+#define SQ_VS_PROGRAM_SIZE_SHIFT 12
+
+#define SQ_VS_PROGRAM_BASE_MASK 0x00000fff
+#define SQ_VS_PROGRAM_SIZE_MASK 0x00fff000
+
+#define SQ_VS_PROGRAM_MASK \
+ (SQ_VS_PROGRAM_BASE_MASK | \
+ SQ_VS_PROGRAM_SIZE_MASK)
+
+#define SQ_VS_PROGRAM(base, size) \
+ ((base << SQ_VS_PROGRAM_BASE_SHIFT) | \
+ (size << SQ_VS_PROGRAM_SIZE_SHIFT))
+
+#define SQ_VS_PROGRAM_GET_BASE(sq_vs_program) \
+ ((sq_vs_program & SQ_VS_PROGRAM_BASE_MASK) >> SQ_VS_PROGRAM_BASE_SHIFT)
+#define SQ_VS_PROGRAM_GET_SIZE(sq_vs_program) \
+ ((sq_vs_program & SQ_VS_PROGRAM_SIZE_MASK) >> SQ_VS_PROGRAM_SIZE_SHIFT)
+
+#define SQ_VS_PROGRAM_SET_BASE(sq_vs_program_reg, base) \
+ sq_vs_program_reg = (sq_vs_program_reg & ~SQ_VS_PROGRAM_BASE_MASK) | (base << SQ_VS_PROGRAM_BASE_SHIFT)
+#define SQ_VS_PROGRAM_SET_SIZE(sq_vs_program_reg, size) \
+ sq_vs_program_reg = (sq_vs_program_reg & ~SQ_VS_PROGRAM_SIZE_MASK) | (size << SQ_VS_PROGRAM_SIZE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_vs_program_t {
+ unsigned int base : SQ_VS_PROGRAM_BASE_SIZE;
+ unsigned int size : SQ_VS_PROGRAM_SIZE_SIZE;
+ unsigned int : 8;
+ } sq_vs_program_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_vs_program_t {
+ unsigned int : 8;
+ unsigned int size : SQ_VS_PROGRAM_SIZE_SIZE;
+ unsigned int base : SQ_VS_PROGRAM_BASE_SIZE;
+ } sq_vs_program_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_vs_program_t f;
+} sq_vs_program_u;
+
+
+/*
+ * SQ_PS_PROGRAM struct
+ */
+
+#define SQ_PS_PROGRAM_BASE_SIZE 12
+#define SQ_PS_PROGRAM_SIZE_SIZE 12
+
+#define SQ_PS_PROGRAM_BASE_SHIFT 0
+#define SQ_PS_PROGRAM_SIZE_SHIFT 12
+
+#define SQ_PS_PROGRAM_BASE_MASK 0x00000fff
+#define SQ_PS_PROGRAM_SIZE_MASK 0x00fff000
+
+#define SQ_PS_PROGRAM_MASK \
+ (SQ_PS_PROGRAM_BASE_MASK | \
+ SQ_PS_PROGRAM_SIZE_MASK)
+
+#define SQ_PS_PROGRAM(base, size) \
+ ((base << SQ_PS_PROGRAM_BASE_SHIFT) | \
+ (size << SQ_PS_PROGRAM_SIZE_SHIFT))
+
+#define SQ_PS_PROGRAM_GET_BASE(sq_ps_program) \
+ ((sq_ps_program & SQ_PS_PROGRAM_BASE_MASK) >> SQ_PS_PROGRAM_BASE_SHIFT)
+#define SQ_PS_PROGRAM_GET_SIZE(sq_ps_program) \
+ ((sq_ps_program & SQ_PS_PROGRAM_SIZE_MASK) >> SQ_PS_PROGRAM_SIZE_SHIFT)
+
+#define SQ_PS_PROGRAM_SET_BASE(sq_ps_program_reg, base) \
+ sq_ps_program_reg = (sq_ps_program_reg & ~SQ_PS_PROGRAM_BASE_MASK) | (base << SQ_PS_PROGRAM_BASE_SHIFT)
+#define SQ_PS_PROGRAM_SET_SIZE(sq_ps_program_reg, size) \
+ sq_ps_program_reg = (sq_ps_program_reg & ~SQ_PS_PROGRAM_SIZE_MASK) | (size << SQ_PS_PROGRAM_SIZE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_ps_program_t {
+ unsigned int base : SQ_PS_PROGRAM_BASE_SIZE;
+ unsigned int size : SQ_PS_PROGRAM_SIZE_SIZE;
+ unsigned int : 8;
+ } sq_ps_program_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_ps_program_t {
+ unsigned int : 8;
+ unsigned int size : SQ_PS_PROGRAM_SIZE_SIZE;
+ unsigned int base : SQ_PS_PROGRAM_BASE_SIZE;
+ } sq_ps_program_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_ps_program_t f;
+} sq_ps_program_u;
+
+
+/*
+ * SQ_CF_PROGRAM_SIZE struct
+ */
+
+#define SQ_CF_PROGRAM_SIZE_VS_CF_SIZE_SIZE 11
+#define SQ_CF_PROGRAM_SIZE_PS_CF_SIZE_SIZE 11
+
+#define SQ_CF_PROGRAM_SIZE_VS_CF_SIZE_SHIFT 0
+#define SQ_CF_PROGRAM_SIZE_PS_CF_SIZE_SHIFT 12
+
+#define SQ_CF_PROGRAM_SIZE_VS_CF_SIZE_MASK 0x000007ff
+#define SQ_CF_PROGRAM_SIZE_PS_CF_SIZE_MASK 0x007ff000
+
+#define SQ_CF_PROGRAM_SIZE_MASK \
+ (SQ_CF_PROGRAM_SIZE_VS_CF_SIZE_MASK | \
+ SQ_CF_PROGRAM_SIZE_PS_CF_SIZE_MASK)
+
+#define SQ_CF_PROGRAM_SIZE(vs_cf_size, ps_cf_size) \
+ ((vs_cf_size << SQ_CF_PROGRAM_SIZE_VS_CF_SIZE_SHIFT) | \
+ (ps_cf_size << SQ_CF_PROGRAM_SIZE_PS_CF_SIZE_SHIFT))
+
+#define SQ_CF_PROGRAM_SIZE_GET_VS_CF_SIZE(sq_cf_program_size) \
+ ((sq_cf_program_size & SQ_CF_PROGRAM_SIZE_VS_CF_SIZE_MASK) >> SQ_CF_PROGRAM_SIZE_VS_CF_SIZE_SHIFT)
+#define SQ_CF_PROGRAM_SIZE_GET_PS_CF_SIZE(sq_cf_program_size) \
+ ((sq_cf_program_size & SQ_CF_PROGRAM_SIZE_PS_CF_SIZE_MASK) >> SQ_CF_PROGRAM_SIZE_PS_CF_SIZE_SHIFT)
+
+#define SQ_CF_PROGRAM_SIZE_SET_VS_CF_SIZE(sq_cf_program_size_reg, vs_cf_size) \
+ sq_cf_program_size_reg = (sq_cf_program_size_reg & ~SQ_CF_PROGRAM_SIZE_VS_CF_SIZE_MASK) | (vs_cf_size << SQ_CF_PROGRAM_SIZE_VS_CF_SIZE_SHIFT)
+#define SQ_CF_PROGRAM_SIZE_SET_PS_CF_SIZE(sq_cf_program_size_reg, ps_cf_size) \
+ sq_cf_program_size_reg = (sq_cf_program_size_reg & ~SQ_CF_PROGRAM_SIZE_PS_CF_SIZE_MASK) | (ps_cf_size << SQ_CF_PROGRAM_SIZE_PS_CF_SIZE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_cf_program_size_t {
+ unsigned int vs_cf_size : SQ_CF_PROGRAM_SIZE_VS_CF_SIZE_SIZE;
+ unsigned int : 1;
+ unsigned int ps_cf_size : SQ_CF_PROGRAM_SIZE_PS_CF_SIZE_SIZE;
+ unsigned int : 9;
+ } sq_cf_program_size_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_cf_program_size_t {
+ unsigned int : 9;
+ unsigned int ps_cf_size : SQ_CF_PROGRAM_SIZE_PS_CF_SIZE_SIZE;
+ unsigned int : 1;
+ unsigned int vs_cf_size : SQ_CF_PROGRAM_SIZE_VS_CF_SIZE_SIZE;
+ } sq_cf_program_size_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_cf_program_size_t f;
+} sq_cf_program_size_u;
+
+
+/*
+ * SQ_INTERPOLATOR_CNTL struct
+ */
+
+#define SQ_INTERPOLATOR_CNTL_PARAM_SHADE_SIZE 16
+#define SQ_INTERPOLATOR_CNTL_SAMPLING_PATTERN_SIZE 16
+
+#define SQ_INTERPOLATOR_CNTL_PARAM_SHADE_SHIFT 0
+#define SQ_INTERPOLATOR_CNTL_SAMPLING_PATTERN_SHIFT 16
+
+#define SQ_INTERPOLATOR_CNTL_PARAM_SHADE_MASK 0x0000ffff
+#define SQ_INTERPOLATOR_CNTL_SAMPLING_PATTERN_MASK 0xffff0000
+
+#define SQ_INTERPOLATOR_CNTL_MASK \
+ (SQ_INTERPOLATOR_CNTL_PARAM_SHADE_MASK | \
+ SQ_INTERPOLATOR_CNTL_SAMPLING_PATTERN_MASK)
+
+#define SQ_INTERPOLATOR_CNTL(param_shade, sampling_pattern) \
+ ((param_shade << SQ_INTERPOLATOR_CNTL_PARAM_SHADE_SHIFT) | \
+ (sampling_pattern << SQ_INTERPOLATOR_CNTL_SAMPLING_PATTERN_SHIFT))
+
+#define SQ_INTERPOLATOR_CNTL_GET_PARAM_SHADE(sq_interpolator_cntl) \
+ ((sq_interpolator_cntl & SQ_INTERPOLATOR_CNTL_PARAM_SHADE_MASK) >> SQ_INTERPOLATOR_CNTL_PARAM_SHADE_SHIFT)
+#define SQ_INTERPOLATOR_CNTL_GET_SAMPLING_PATTERN(sq_interpolator_cntl) \
+ ((sq_interpolator_cntl & SQ_INTERPOLATOR_CNTL_SAMPLING_PATTERN_MASK) >> SQ_INTERPOLATOR_CNTL_SAMPLING_PATTERN_SHIFT)
+
+#define SQ_INTERPOLATOR_CNTL_SET_PARAM_SHADE(sq_interpolator_cntl_reg, param_shade) \
+ sq_interpolator_cntl_reg = (sq_interpolator_cntl_reg & ~SQ_INTERPOLATOR_CNTL_PARAM_SHADE_MASK) | (param_shade << SQ_INTERPOLATOR_CNTL_PARAM_SHADE_SHIFT)
+#define SQ_INTERPOLATOR_CNTL_SET_SAMPLING_PATTERN(sq_interpolator_cntl_reg, sampling_pattern) \
+ sq_interpolator_cntl_reg = (sq_interpolator_cntl_reg & ~SQ_INTERPOLATOR_CNTL_SAMPLING_PATTERN_MASK) | (sampling_pattern << SQ_INTERPOLATOR_CNTL_SAMPLING_PATTERN_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_interpolator_cntl_t {
+ unsigned int param_shade : SQ_INTERPOLATOR_CNTL_PARAM_SHADE_SIZE;
+ unsigned int sampling_pattern : SQ_INTERPOLATOR_CNTL_SAMPLING_PATTERN_SIZE;
+ } sq_interpolator_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_interpolator_cntl_t {
+ unsigned int sampling_pattern : SQ_INTERPOLATOR_CNTL_SAMPLING_PATTERN_SIZE;
+ unsigned int param_shade : SQ_INTERPOLATOR_CNTL_PARAM_SHADE_SIZE;
+ } sq_interpolator_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_interpolator_cntl_t f;
+} sq_interpolator_cntl_u;
+
+
+/*
+ * SQ_PROGRAM_CNTL struct
+ */
+
+#define SQ_PROGRAM_CNTL_VS_NUM_REG_SIZE 6
+#define SQ_PROGRAM_CNTL_PS_NUM_REG_SIZE 6
+#define SQ_PROGRAM_CNTL_VS_RESOURCE_SIZE 1
+#define SQ_PROGRAM_CNTL_PS_RESOURCE_SIZE 1
+#define SQ_PROGRAM_CNTL_PARAM_GEN_SIZE 1
+#define SQ_PROGRAM_CNTL_GEN_INDEX_PIX_SIZE 1
+#define SQ_PROGRAM_CNTL_VS_EXPORT_COUNT_SIZE 4
+#define SQ_PROGRAM_CNTL_VS_EXPORT_MODE_SIZE 3
+#define SQ_PROGRAM_CNTL_PS_EXPORT_MODE_SIZE 4
+#define SQ_PROGRAM_CNTL_GEN_INDEX_VTX_SIZE 1
+
+#define SQ_PROGRAM_CNTL_VS_NUM_REG_SHIFT 0
+#define SQ_PROGRAM_CNTL_PS_NUM_REG_SHIFT 8
+#define SQ_PROGRAM_CNTL_VS_RESOURCE_SHIFT 16
+#define SQ_PROGRAM_CNTL_PS_RESOURCE_SHIFT 17
+#define SQ_PROGRAM_CNTL_PARAM_GEN_SHIFT 18
+#define SQ_PROGRAM_CNTL_GEN_INDEX_PIX_SHIFT 19
+#define SQ_PROGRAM_CNTL_VS_EXPORT_COUNT_SHIFT 20
+#define SQ_PROGRAM_CNTL_VS_EXPORT_MODE_SHIFT 24
+#define SQ_PROGRAM_CNTL_PS_EXPORT_MODE_SHIFT 27
+#define SQ_PROGRAM_CNTL_GEN_INDEX_VTX_SHIFT 31
+
+#define SQ_PROGRAM_CNTL_VS_NUM_REG_MASK 0x0000003f
+#define SQ_PROGRAM_CNTL_PS_NUM_REG_MASK 0x00003f00
+#define SQ_PROGRAM_CNTL_VS_RESOURCE_MASK 0x00010000
+#define SQ_PROGRAM_CNTL_PS_RESOURCE_MASK 0x00020000
+#define SQ_PROGRAM_CNTL_PARAM_GEN_MASK 0x00040000
+#define SQ_PROGRAM_CNTL_GEN_INDEX_PIX_MASK 0x00080000
+#define SQ_PROGRAM_CNTL_VS_EXPORT_COUNT_MASK 0x00f00000
+#define SQ_PROGRAM_CNTL_VS_EXPORT_MODE_MASK 0x07000000
+#define SQ_PROGRAM_CNTL_PS_EXPORT_MODE_MASK 0x78000000
+#define SQ_PROGRAM_CNTL_GEN_INDEX_VTX_MASK 0x80000000
+
+#define SQ_PROGRAM_CNTL_MASK \
+ (SQ_PROGRAM_CNTL_VS_NUM_REG_MASK | \
+ SQ_PROGRAM_CNTL_PS_NUM_REG_MASK | \
+ SQ_PROGRAM_CNTL_VS_RESOURCE_MASK | \
+ SQ_PROGRAM_CNTL_PS_RESOURCE_MASK | \
+ SQ_PROGRAM_CNTL_PARAM_GEN_MASK | \
+ SQ_PROGRAM_CNTL_GEN_INDEX_PIX_MASK | \
+ SQ_PROGRAM_CNTL_VS_EXPORT_COUNT_MASK | \
+ SQ_PROGRAM_CNTL_VS_EXPORT_MODE_MASK | \
+ SQ_PROGRAM_CNTL_PS_EXPORT_MODE_MASK | \
+ SQ_PROGRAM_CNTL_GEN_INDEX_VTX_MASK)
+
+#define SQ_PROGRAM_CNTL(vs_num_reg, ps_num_reg, vs_resource, ps_resource, param_gen, gen_index_pix, vs_export_count, vs_export_mode, ps_export_mode, gen_index_vtx) \
+ ((vs_num_reg << SQ_PROGRAM_CNTL_VS_NUM_REG_SHIFT) | \
+ (ps_num_reg << SQ_PROGRAM_CNTL_PS_NUM_REG_SHIFT) | \
+ (vs_resource << SQ_PROGRAM_CNTL_VS_RESOURCE_SHIFT) | \
+ (ps_resource << SQ_PROGRAM_CNTL_PS_RESOURCE_SHIFT) | \
+ (param_gen << SQ_PROGRAM_CNTL_PARAM_GEN_SHIFT) | \
+ (gen_index_pix << SQ_PROGRAM_CNTL_GEN_INDEX_PIX_SHIFT) | \
+ (vs_export_count << SQ_PROGRAM_CNTL_VS_EXPORT_COUNT_SHIFT) | \
+ (vs_export_mode << SQ_PROGRAM_CNTL_VS_EXPORT_MODE_SHIFT) | \
+ (ps_export_mode << SQ_PROGRAM_CNTL_PS_EXPORT_MODE_SHIFT) | \
+ (gen_index_vtx << SQ_PROGRAM_CNTL_GEN_INDEX_VTX_SHIFT))
+
+#define SQ_PROGRAM_CNTL_GET_VS_NUM_REG(sq_program_cntl) \
+ ((sq_program_cntl & SQ_PROGRAM_CNTL_VS_NUM_REG_MASK) >> SQ_PROGRAM_CNTL_VS_NUM_REG_SHIFT)
+#define SQ_PROGRAM_CNTL_GET_PS_NUM_REG(sq_program_cntl) \
+ ((sq_program_cntl & SQ_PROGRAM_CNTL_PS_NUM_REG_MASK) >> SQ_PROGRAM_CNTL_PS_NUM_REG_SHIFT)
+#define SQ_PROGRAM_CNTL_GET_VS_RESOURCE(sq_program_cntl) \
+ ((sq_program_cntl & SQ_PROGRAM_CNTL_VS_RESOURCE_MASK) >> SQ_PROGRAM_CNTL_VS_RESOURCE_SHIFT)
+#define SQ_PROGRAM_CNTL_GET_PS_RESOURCE(sq_program_cntl) \
+ ((sq_program_cntl & SQ_PROGRAM_CNTL_PS_RESOURCE_MASK) >> SQ_PROGRAM_CNTL_PS_RESOURCE_SHIFT)
+#define SQ_PROGRAM_CNTL_GET_PARAM_GEN(sq_program_cntl) \
+ ((sq_program_cntl & SQ_PROGRAM_CNTL_PARAM_GEN_MASK) >> SQ_PROGRAM_CNTL_PARAM_GEN_SHIFT)
+#define SQ_PROGRAM_CNTL_GET_GEN_INDEX_PIX(sq_program_cntl) \
+ ((sq_program_cntl & SQ_PROGRAM_CNTL_GEN_INDEX_PIX_MASK) >> SQ_PROGRAM_CNTL_GEN_INDEX_PIX_SHIFT)
+#define SQ_PROGRAM_CNTL_GET_VS_EXPORT_COUNT(sq_program_cntl) \
+ ((sq_program_cntl & SQ_PROGRAM_CNTL_VS_EXPORT_COUNT_MASK) >> SQ_PROGRAM_CNTL_VS_EXPORT_COUNT_SHIFT)
+#define SQ_PROGRAM_CNTL_GET_VS_EXPORT_MODE(sq_program_cntl) \
+ ((sq_program_cntl & SQ_PROGRAM_CNTL_VS_EXPORT_MODE_MASK) >> SQ_PROGRAM_CNTL_VS_EXPORT_MODE_SHIFT)
+#define SQ_PROGRAM_CNTL_GET_PS_EXPORT_MODE(sq_program_cntl) \
+ ((sq_program_cntl & SQ_PROGRAM_CNTL_PS_EXPORT_MODE_MASK) >> SQ_PROGRAM_CNTL_PS_EXPORT_MODE_SHIFT)
+#define SQ_PROGRAM_CNTL_GET_GEN_INDEX_VTX(sq_program_cntl) \
+ ((sq_program_cntl & SQ_PROGRAM_CNTL_GEN_INDEX_VTX_MASK) >> SQ_PROGRAM_CNTL_GEN_INDEX_VTX_SHIFT)
+
+#define SQ_PROGRAM_CNTL_SET_VS_NUM_REG(sq_program_cntl_reg, vs_num_reg) \
+ sq_program_cntl_reg = (sq_program_cntl_reg & ~SQ_PROGRAM_CNTL_VS_NUM_REG_MASK) | (vs_num_reg << SQ_PROGRAM_CNTL_VS_NUM_REG_SHIFT)
+#define SQ_PROGRAM_CNTL_SET_PS_NUM_REG(sq_program_cntl_reg, ps_num_reg) \
+ sq_program_cntl_reg = (sq_program_cntl_reg & ~SQ_PROGRAM_CNTL_PS_NUM_REG_MASK) | (ps_num_reg << SQ_PROGRAM_CNTL_PS_NUM_REG_SHIFT)
+#define SQ_PROGRAM_CNTL_SET_VS_RESOURCE(sq_program_cntl_reg, vs_resource) \
+ sq_program_cntl_reg = (sq_program_cntl_reg & ~SQ_PROGRAM_CNTL_VS_RESOURCE_MASK) | (vs_resource << SQ_PROGRAM_CNTL_VS_RESOURCE_SHIFT)
+#define SQ_PROGRAM_CNTL_SET_PS_RESOURCE(sq_program_cntl_reg, ps_resource) \
+ sq_program_cntl_reg = (sq_program_cntl_reg & ~SQ_PROGRAM_CNTL_PS_RESOURCE_MASK) | (ps_resource << SQ_PROGRAM_CNTL_PS_RESOURCE_SHIFT)
+#define SQ_PROGRAM_CNTL_SET_PARAM_GEN(sq_program_cntl_reg, param_gen) \
+ sq_program_cntl_reg = (sq_program_cntl_reg & ~SQ_PROGRAM_CNTL_PARAM_GEN_MASK) | (param_gen << SQ_PROGRAM_CNTL_PARAM_GEN_SHIFT)
+#define SQ_PROGRAM_CNTL_SET_GEN_INDEX_PIX(sq_program_cntl_reg, gen_index_pix) \
+ sq_program_cntl_reg = (sq_program_cntl_reg & ~SQ_PROGRAM_CNTL_GEN_INDEX_PIX_MASK) | (gen_index_pix << SQ_PROGRAM_CNTL_GEN_INDEX_PIX_SHIFT)
+#define SQ_PROGRAM_CNTL_SET_VS_EXPORT_COUNT(sq_program_cntl_reg, vs_export_count) \
+ sq_program_cntl_reg = (sq_program_cntl_reg & ~SQ_PROGRAM_CNTL_VS_EXPORT_COUNT_MASK) | (vs_export_count << SQ_PROGRAM_CNTL_VS_EXPORT_COUNT_SHIFT)
+#define SQ_PROGRAM_CNTL_SET_VS_EXPORT_MODE(sq_program_cntl_reg, vs_export_mode) \
+ sq_program_cntl_reg = (sq_program_cntl_reg & ~SQ_PROGRAM_CNTL_VS_EXPORT_MODE_MASK) | (vs_export_mode << SQ_PROGRAM_CNTL_VS_EXPORT_MODE_SHIFT)
+#define SQ_PROGRAM_CNTL_SET_PS_EXPORT_MODE(sq_program_cntl_reg, ps_export_mode) \
+ sq_program_cntl_reg = (sq_program_cntl_reg & ~SQ_PROGRAM_CNTL_PS_EXPORT_MODE_MASK) | (ps_export_mode << SQ_PROGRAM_CNTL_PS_EXPORT_MODE_SHIFT)
+#define SQ_PROGRAM_CNTL_SET_GEN_INDEX_VTX(sq_program_cntl_reg, gen_index_vtx) \
+ sq_program_cntl_reg = (sq_program_cntl_reg & ~SQ_PROGRAM_CNTL_GEN_INDEX_VTX_MASK) | (gen_index_vtx << SQ_PROGRAM_CNTL_GEN_INDEX_VTX_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_program_cntl_t {
+ unsigned int vs_num_reg : SQ_PROGRAM_CNTL_VS_NUM_REG_SIZE;
+ unsigned int : 2;
+ unsigned int ps_num_reg : SQ_PROGRAM_CNTL_PS_NUM_REG_SIZE;
+ unsigned int : 2;
+ unsigned int vs_resource : SQ_PROGRAM_CNTL_VS_RESOURCE_SIZE;
+ unsigned int ps_resource : SQ_PROGRAM_CNTL_PS_RESOURCE_SIZE;
+ unsigned int param_gen : SQ_PROGRAM_CNTL_PARAM_GEN_SIZE;
+ unsigned int gen_index_pix : SQ_PROGRAM_CNTL_GEN_INDEX_PIX_SIZE;
+ unsigned int vs_export_count : SQ_PROGRAM_CNTL_VS_EXPORT_COUNT_SIZE;
+ unsigned int vs_export_mode : SQ_PROGRAM_CNTL_VS_EXPORT_MODE_SIZE;
+ unsigned int ps_export_mode : SQ_PROGRAM_CNTL_PS_EXPORT_MODE_SIZE;
+ unsigned int gen_index_vtx : SQ_PROGRAM_CNTL_GEN_INDEX_VTX_SIZE;
+ } sq_program_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_program_cntl_t {
+ unsigned int gen_index_vtx : SQ_PROGRAM_CNTL_GEN_INDEX_VTX_SIZE;
+ unsigned int ps_export_mode : SQ_PROGRAM_CNTL_PS_EXPORT_MODE_SIZE;
+ unsigned int vs_export_mode : SQ_PROGRAM_CNTL_VS_EXPORT_MODE_SIZE;
+ unsigned int vs_export_count : SQ_PROGRAM_CNTL_VS_EXPORT_COUNT_SIZE;
+ unsigned int gen_index_pix : SQ_PROGRAM_CNTL_GEN_INDEX_PIX_SIZE;
+ unsigned int param_gen : SQ_PROGRAM_CNTL_PARAM_GEN_SIZE;
+ unsigned int ps_resource : SQ_PROGRAM_CNTL_PS_RESOURCE_SIZE;
+ unsigned int vs_resource : SQ_PROGRAM_CNTL_VS_RESOURCE_SIZE;
+ unsigned int : 2;
+ unsigned int ps_num_reg : SQ_PROGRAM_CNTL_PS_NUM_REG_SIZE;
+ unsigned int : 2;
+ unsigned int vs_num_reg : SQ_PROGRAM_CNTL_VS_NUM_REG_SIZE;
+ } sq_program_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_program_cntl_t f;
+} sq_program_cntl_u;
+
+
+/*
+ * SQ_WRAPPING_0 struct
+ */
+
+#define SQ_WRAPPING_0_PARAM_WRAP_0_SIZE 4
+#define SQ_WRAPPING_0_PARAM_WRAP_1_SIZE 4
+#define SQ_WRAPPING_0_PARAM_WRAP_2_SIZE 4
+#define SQ_WRAPPING_0_PARAM_WRAP_3_SIZE 4
+#define SQ_WRAPPING_0_PARAM_WRAP_4_SIZE 4
+#define SQ_WRAPPING_0_PARAM_WRAP_5_SIZE 4
+#define SQ_WRAPPING_0_PARAM_WRAP_6_SIZE 4
+#define SQ_WRAPPING_0_PARAM_WRAP_7_SIZE 4
+
+#define SQ_WRAPPING_0_PARAM_WRAP_0_SHIFT 0
+#define SQ_WRAPPING_0_PARAM_WRAP_1_SHIFT 4
+#define SQ_WRAPPING_0_PARAM_WRAP_2_SHIFT 8
+#define SQ_WRAPPING_0_PARAM_WRAP_3_SHIFT 12
+#define SQ_WRAPPING_0_PARAM_WRAP_4_SHIFT 16
+#define SQ_WRAPPING_0_PARAM_WRAP_5_SHIFT 20
+#define SQ_WRAPPING_0_PARAM_WRAP_6_SHIFT 24
+#define SQ_WRAPPING_0_PARAM_WRAP_7_SHIFT 28
+
+#define SQ_WRAPPING_0_PARAM_WRAP_0_MASK 0x0000000f
+#define SQ_WRAPPING_0_PARAM_WRAP_1_MASK 0x000000f0
+#define SQ_WRAPPING_0_PARAM_WRAP_2_MASK 0x00000f00
+#define SQ_WRAPPING_0_PARAM_WRAP_3_MASK 0x0000f000
+#define SQ_WRAPPING_0_PARAM_WRAP_4_MASK 0x000f0000
+#define SQ_WRAPPING_0_PARAM_WRAP_5_MASK 0x00f00000
+#define SQ_WRAPPING_0_PARAM_WRAP_6_MASK 0x0f000000
+#define SQ_WRAPPING_0_PARAM_WRAP_7_MASK 0xf0000000
+
+#define SQ_WRAPPING_0_MASK \
+ (SQ_WRAPPING_0_PARAM_WRAP_0_MASK | \
+ SQ_WRAPPING_0_PARAM_WRAP_1_MASK | \
+ SQ_WRAPPING_0_PARAM_WRAP_2_MASK | \
+ SQ_WRAPPING_0_PARAM_WRAP_3_MASK | \
+ SQ_WRAPPING_0_PARAM_WRAP_4_MASK | \
+ SQ_WRAPPING_0_PARAM_WRAP_5_MASK | \
+ SQ_WRAPPING_0_PARAM_WRAP_6_MASK | \
+ SQ_WRAPPING_0_PARAM_WRAP_7_MASK)
+
+#define SQ_WRAPPING_0(param_wrap_0, param_wrap_1, param_wrap_2, param_wrap_3, param_wrap_4, param_wrap_5, param_wrap_6, param_wrap_7) \
+ ((param_wrap_0 << SQ_WRAPPING_0_PARAM_WRAP_0_SHIFT) | \
+ (param_wrap_1 << SQ_WRAPPING_0_PARAM_WRAP_1_SHIFT) | \
+ (param_wrap_2 << SQ_WRAPPING_0_PARAM_WRAP_2_SHIFT) | \
+ (param_wrap_3 << SQ_WRAPPING_0_PARAM_WRAP_3_SHIFT) | \
+ (param_wrap_4 << SQ_WRAPPING_0_PARAM_WRAP_4_SHIFT) | \
+ (param_wrap_5 << SQ_WRAPPING_0_PARAM_WRAP_5_SHIFT) | \
+ (param_wrap_6 << SQ_WRAPPING_0_PARAM_WRAP_6_SHIFT) | \
+ (param_wrap_7 << SQ_WRAPPING_0_PARAM_WRAP_7_SHIFT))
+
+#define SQ_WRAPPING_0_GET_PARAM_WRAP_0(sq_wrapping_0) \
+ ((sq_wrapping_0 & SQ_WRAPPING_0_PARAM_WRAP_0_MASK) >> SQ_WRAPPING_0_PARAM_WRAP_0_SHIFT)
+#define SQ_WRAPPING_0_GET_PARAM_WRAP_1(sq_wrapping_0) \
+ ((sq_wrapping_0 & SQ_WRAPPING_0_PARAM_WRAP_1_MASK) >> SQ_WRAPPING_0_PARAM_WRAP_1_SHIFT)
+#define SQ_WRAPPING_0_GET_PARAM_WRAP_2(sq_wrapping_0) \
+ ((sq_wrapping_0 & SQ_WRAPPING_0_PARAM_WRAP_2_MASK) >> SQ_WRAPPING_0_PARAM_WRAP_2_SHIFT)
+#define SQ_WRAPPING_0_GET_PARAM_WRAP_3(sq_wrapping_0) \
+ ((sq_wrapping_0 & SQ_WRAPPING_0_PARAM_WRAP_3_MASK) >> SQ_WRAPPING_0_PARAM_WRAP_3_SHIFT)
+#define SQ_WRAPPING_0_GET_PARAM_WRAP_4(sq_wrapping_0) \
+ ((sq_wrapping_0 & SQ_WRAPPING_0_PARAM_WRAP_4_MASK) >> SQ_WRAPPING_0_PARAM_WRAP_4_SHIFT)
+#define SQ_WRAPPING_0_GET_PARAM_WRAP_5(sq_wrapping_0) \
+ ((sq_wrapping_0 & SQ_WRAPPING_0_PARAM_WRAP_5_MASK) >> SQ_WRAPPING_0_PARAM_WRAP_5_SHIFT)
+#define SQ_WRAPPING_0_GET_PARAM_WRAP_6(sq_wrapping_0) \
+ ((sq_wrapping_0 & SQ_WRAPPING_0_PARAM_WRAP_6_MASK) >> SQ_WRAPPING_0_PARAM_WRAP_6_SHIFT)
+#define SQ_WRAPPING_0_GET_PARAM_WRAP_7(sq_wrapping_0) \
+ ((sq_wrapping_0 & SQ_WRAPPING_0_PARAM_WRAP_7_MASK) >> SQ_WRAPPING_0_PARAM_WRAP_7_SHIFT)
+
+#define SQ_WRAPPING_0_SET_PARAM_WRAP_0(sq_wrapping_0_reg, param_wrap_0) \
+ sq_wrapping_0_reg = (sq_wrapping_0_reg & ~SQ_WRAPPING_0_PARAM_WRAP_0_MASK) | (param_wrap_0 << SQ_WRAPPING_0_PARAM_WRAP_0_SHIFT)
+#define SQ_WRAPPING_0_SET_PARAM_WRAP_1(sq_wrapping_0_reg, param_wrap_1) \
+ sq_wrapping_0_reg = (sq_wrapping_0_reg & ~SQ_WRAPPING_0_PARAM_WRAP_1_MASK) | (param_wrap_1 << SQ_WRAPPING_0_PARAM_WRAP_1_SHIFT)
+#define SQ_WRAPPING_0_SET_PARAM_WRAP_2(sq_wrapping_0_reg, param_wrap_2) \
+ sq_wrapping_0_reg = (sq_wrapping_0_reg & ~SQ_WRAPPING_0_PARAM_WRAP_2_MASK) | (param_wrap_2 << SQ_WRAPPING_0_PARAM_WRAP_2_SHIFT)
+#define SQ_WRAPPING_0_SET_PARAM_WRAP_3(sq_wrapping_0_reg, param_wrap_3) \
+ sq_wrapping_0_reg = (sq_wrapping_0_reg & ~SQ_WRAPPING_0_PARAM_WRAP_3_MASK) | (param_wrap_3 << SQ_WRAPPING_0_PARAM_WRAP_3_SHIFT)
+#define SQ_WRAPPING_0_SET_PARAM_WRAP_4(sq_wrapping_0_reg, param_wrap_4) \
+ sq_wrapping_0_reg = (sq_wrapping_0_reg & ~SQ_WRAPPING_0_PARAM_WRAP_4_MASK) | (param_wrap_4 << SQ_WRAPPING_0_PARAM_WRAP_4_SHIFT)
+#define SQ_WRAPPING_0_SET_PARAM_WRAP_5(sq_wrapping_0_reg, param_wrap_5) \
+ sq_wrapping_0_reg = (sq_wrapping_0_reg & ~SQ_WRAPPING_0_PARAM_WRAP_5_MASK) | (param_wrap_5 << SQ_WRAPPING_0_PARAM_WRAP_5_SHIFT)
+#define SQ_WRAPPING_0_SET_PARAM_WRAP_6(sq_wrapping_0_reg, param_wrap_6) \
+ sq_wrapping_0_reg = (sq_wrapping_0_reg & ~SQ_WRAPPING_0_PARAM_WRAP_6_MASK) | (param_wrap_6 << SQ_WRAPPING_0_PARAM_WRAP_6_SHIFT)
+#define SQ_WRAPPING_0_SET_PARAM_WRAP_7(sq_wrapping_0_reg, param_wrap_7) \
+ sq_wrapping_0_reg = (sq_wrapping_0_reg & ~SQ_WRAPPING_0_PARAM_WRAP_7_MASK) | (param_wrap_7 << SQ_WRAPPING_0_PARAM_WRAP_7_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_wrapping_0_t {
+ unsigned int param_wrap_0 : SQ_WRAPPING_0_PARAM_WRAP_0_SIZE;
+ unsigned int param_wrap_1 : SQ_WRAPPING_0_PARAM_WRAP_1_SIZE;
+ unsigned int param_wrap_2 : SQ_WRAPPING_0_PARAM_WRAP_2_SIZE;
+ unsigned int param_wrap_3 : SQ_WRAPPING_0_PARAM_WRAP_3_SIZE;
+ unsigned int param_wrap_4 : SQ_WRAPPING_0_PARAM_WRAP_4_SIZE;
+ unsigned int param_wrap_5 : SQ_WRAPPING_0_PARAM_WRAP_5_SIZE;
+ unsigned int param_wrap_6 : SQ_WRAPPING_0_PARAM_WRAP_6_SIZE;
+ unsigned int param_wrap_7 : SQ_WRAPPING_0_PARAM_WRAP_7_SIZE;
+ } sq_wrapping_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_wrapping_0_t {
+ unsigned int param_wrap_7 : SQ_WRAPPING_0_PARAM_WRAP_7_SIZE;
+ unsigned int param_wrap_6 : SQ_WRAPPING_0_PARAM_WRAP_6_SIZE;
+ unsigned int param_wrap_5 : SQ_WRAPPING_0_PARAM_WRAP_5_SIZE;
+ unsigned int param_wrap_4 : SQ_WRAPPING_0_PARAM_WRAP_4_SIZE;
+ unsigned int param_wrap_3 : SQ_WRAPPING_0_PARAM_WRAP_3_SIZE;
+ unsigned int param_wrap_2 : SQ_WRAPPING_0_PARAM_WRAP_2_SIZE;
+ unsigned int param_wrap_1 : SQ_WRAPPING_0_PARAM_WRAP_1_SIZE;
+ unsigned int param_wrap_0 : SQ_WRAPPING_0_PARAM_WRAP_0_SIZE;
+ } sq_wrapping_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_wrapping_0_t f;
+} sq_wrapping_0_u;
+
+
+/*
+ * SQ_WRAPPING_1 struct
+ */
+
+#define SQ_WRAPPING_1_PARAM_WRAP_8_SIZE 4
+#define SQ_WRAPPING_1_PARAM_WRAP_9_SIZE 4
+#define SQ_WRAPPING_1_PARAM_WRAP_10_SIZE 4
+#define SQ_WRAPPING_1_PARAM_WRAP_11_SIZE 4
+#define SQ_WRAPPING_1_PARAM_WRAP_12_SIZE 4
+#define SQ_WRAPPING_1_PARAM_WRAP_13_SIZE 4
+#define SQ_WRAPPING_1_PARAM_WRAP_14_SIZE 4
+#define SQ_WRAPPING_1_PARAM_WRAP_15_SIZE 4
+
+#define SQ_WRAPPING_1_PARAM_WRAP_8_SHIFT 0
+#define SQ_WRAPPING_1_PARAM_WRAP_9_SHIFT 4
+#define SQ_WRAPPING_1_PARAM_WRAP_10_SHIFT 8
+#define SQ_WRAPPING_1_PARAM_WRAP_11_SHIFT 12
+#define SQ_WRAPPING_1_PARAM_WRAP_12_SHIFT 16
+#define SQ_WRAPPING_1_PARAM_WRAP_13_SHIFT 20
+#define SQ_WRAPPING_1_PARAM_WRAP_14_SHIFT 24
+#define SQ_WRAPPING_1_PARAM_WRAP_15_SHIFT 28
+
+#define SQ_WRAPPING_1_PARAM_WRAP_8_MASK 0x0000000f
+#define SQ_WRAPPING_1_PARAM_WRAP_9_MASK 0x000000f0
+#define SQ_WRAPPING_1_PARAM_WRAP_10_MASK 0x00000f00
+#define SQ_WRAPPING_1_PARAM_WRAP_11_MASK 0x0000f000
+#define SQ_WRAPPING_1_PARAM_WRAP_12_MASK 0x000f0000
+#define SQ_WRAPPING_1_PARAM_WRAP_13_MASK 0x00f00000
+#define SQ_WRAPPING_1_PARAM_WRAP_14_MASK 0x0f000000
+#define SQ_WRAPPING_1_PARAM_WRAP_15_MASK 0xf0000000
+
+#define SQ_WRAPPING_1_MASK \
+ (SQ_WRAPPING_1_PARAM_WRAP_8_MASK | \
+ SQ_WRAPPING_1_PARAM_WRAP_9_MASK | \
+ SQ_WRAPPING_1_PARAM_WRAP_10_MASK | \
+ SQ_WRAPPING_1_PARAM_WRAP_11_MASK | \
+ SQ_WRAPPING_1_PARAM_WRAP_12_MASK | \
+ SQ_WRAPPING_1_PARAM_WRAP_13_MASK | \
+ SQ_WRAPPING_1_PARAM_WRAP_14_MASK | \
+ SQ_WRAPPING_1_PARAM_WRAP_15_MASK)
+
+#define SQ_WRAPPING_1(param_wrap_8, param_wrap_9, param_wrap_10, param_wrap_11, param_wrap_12, param_wrap_13, param_wrap_14, param_wrap_15) \
+ ((param_wrap_8 << SQ_WRAPPING_1_PARAM_WRAP_8_SHIFT) | \
+ (param_wrap_9 << SQ_WRAPPING_1_PARAM_WRAP_9_SHIFT) | \
+ (param_wrap_10 << SQ_WRAPPING_1_PARAM_WRAP_10_SHIFT) | \
+ (param_wrap_11 << SQ_WRAPPING_1_PARAM_WRAP_11_SHIFT) | \
+ (param_wrap_12 << SQ_WRAPPING_1_PARAM_WRAP_12_SHIFT) | \
+ (param_wrap_13 << SQ_WRAPPING_1_PARAM_WRAP_13_SHIFT) | \
+ (param_wrap_14 << SQ_WRAPPING_1_PARAM_WRAP_14_SHIFT) | \
+ (param_wrap_15 << SQ_WRAPPING_1_PARAM_WRAP_15_SHIFT))
+
+#define SQ_WRAPPING_1_GET_PARAM_WRAP_8(sq_wrapping_1) \
+ ((sq_wrapping_1 & SQ_WRAPPING_1_PARAM_WRAP_8_MASK) >> SQ_WRAPPING_1_PARAM_WRAP_8_SHIFT)
+#define SQ_WRAPPING_1_GET_PARAM_WRAP_9(sq_wrapping_1) \
+ ((sq_wrapping_1 & SQ_WRAPPING_1_PARAM_WRAP_9_MASK) >> SQ_WRAPPING_1_PARAM_WRAP_9_SHIFT)
+#define SQ_WRAPPING_1_GET_PARAM_WRAP_10(sq_wrapping_1) \
+ ((sq_wrapping_1 & SQ_WRAPPING_1_PARAM_WRAP_10_MASK) >> SQ_WRAPPING_1_PARAM_WRAP_10_SHIFT)
+#define SQ_WRAPPING_1_GET_PARAM_WRAP_11(sq_wrapping_1) \
+ ((sq_wrapping_1 & SQ_WRAPPING_1_PARAM_WRAP_11_MASK) >> SQ_WRAPPING_1_PARAM_WRAP_11_SHIFT)
+#define SQ_WRAPPING_1_GET_PARAM_WRAP_12(sq_wrapping_1) \
+ ((sq_wrapping_1 & SQ_WRAPPING_1_PARAM_WRAP_12_MASK) >> SQ_WRAPPING_1_PARAM_WRAP_12_SHIFT)
+#define SQ_WRAPPING_1_GET_PARAM_WRAP_13(sq_wrapping_1) \
+ ((sq_wrapping_1 & SQ_WRAPPING_1_PARAM_WRAP_13_MASK) >> SQ_WRAPPING_1_PARAM_WRAP_13_SHIFT)
+#define SQ_WRAPPING_1_GET_PARAM_WRAP_14(sq_wrapping_1) \
+ ((sq_wrapping_1 & SQ_WRAPPING_1_PARAM_WRAP_14_MASK) >> SQ_WRAPPING_1_PARAM_WRAP_14_SHIFT)
+#define SQ_WRAPPING_1_GET_PARAM_WRAP_15(sq_wrapping_1) \
+ ((sq_wrapping_1 & SQ_WRAPPING_1_PARAM_WRAP_15_MASK) >> SQ_WRAPPING_1_PARAM_WRAP_15_SHIFT)
+
+#define SQ_WRAPPING_1_SET_PARAM_WRAP_8(sq_wrapping_1_reg, param_wrap_8) \
+ sq_wrapping_1_reg = (sq_wrapping_1_reg & ~SQ_WRAPPING_1_PARAM_WRAP_8_MASK) | (param_wrap_8 << SQ_WRAPPING_1_PARAM_WRAP_8_SHIFT)
+#define SQ_WRAPPING_1_SET_PARAM_WRAP_9(sq_wrapping_1_reg, param_wrap_9) \
+ sq_wrapping_1_reg = (sq_wrapping_1_reg & ~SQ_WRAPPING_1_PARAM_WRAP_9_MASK) | (param_wrap_9 << SQ_WRAPPING_1_PARAM_WRAP_9_SHIFT)
+#define SQ_WRAPPING_1_SET_PARAM_WRAP_10(sq_wrapping_1_reg, param_wrap_10) \
+ sq_wrapping_1_reg = (sq_wrapping_1_reg & ~SQ_WRAPPING_1_PARAM_WRAP_10_MASK) | (param_wrap_10 << SQ_WRAPPING_1_PARAM_WRAP_10_SHIFT)
+#define SQ_WRAPPING_1_SET_PARAM_WRAP_11(sq_wrapping_1_reg, param_wrap_11) \
+ sq_wrapping_1_reg = (sq_wrapping_1_reg & ~SQ_WRAPPING_1_PARAM_WRAP_11_MASK) | (param_wrap_11 << SQ_WRAPPING_1_PARAM_WRAP_11_SHIFT)
+#define SQ_WRAPPING_1_SET_PARAM_WRAP_12(sq_wrapping_1_reg, param_wrap_12) \
+ sq_wrapping_1_reg = (sq_wrapping_1_reg & ~SQ_WRAPPING_1_PARAM_WRAP_12_MASK) | (param_wrap_12 << SQ_WRAPPING_1_PARAM_WRAP_12_SHIFT)
+#define SQ_WRAPPING_1_SET_PARAM_WRAP_13(sq_wrapping_1_reg, param_wrap_13) \
+ sq_wrapping_1_reg = (sq_wrapping_1_reg & ~SQ_WRAPPING_1_PARAM_WRAP_13_MASK) | (param_wrap_13 << SQ_WRAPPING_1_PARAM_WRAP_13_SHIFT)
+#define SQ_WRAPPING_1_SET_PARAM_WRAP_14(sq_wrapping_1_reg, param_wrap_14) \
+ sq_wrapping_1_reg = (sq_wrapping_1_reg & ~SQ_WRAPPING_1_PARAM_WRAP_14_MASK) | (param_wrap_14 << SQ_WRAPPING_1_PARAM_WRAP_14_SHIFT)
+#define SQ_WRAPPING_1_SET_PARAM_WRAP_15(sq_wrapping_1_reg, param_wrap_15) \
+ sq_wrapping_1_reg = (sq_wrapping_1_reg & ~SQ_WRAPPING_1_PARAM_WRAP_15_MASK) | (param_wrap_15 << SQ_WRAPPING_1_PARAM_WRAP_15_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_wrapping_1_t {
+ unsigned int param_wrap_8 : SQ_WRAPPING_1_PARAM_WRAP_8_SIZE;
+ unsigned int param_wrap_9 : SQ_WRAPPING_1_PARAM_WRAP_9_SIZE;
+ unsigned int param_wrap_10 : SQ_WRAPPING_1_PARAM_WRAP_10_SIZE;
+ unsigned int param_wrap_11 : SQ_WRAPPING_1_PARAM_WRAP_11_SIZE;
+ unsigned int param_wrap_12 : SQ_WRAPPING_1_PARAM_WRAP_12_SIZE;
+ unsigned int param_wrap_13 : SQ_WRAPPING_1_PARAM_WRAP_13_SIZE;
+ unsigned int param_wrap_14 : SQ_WRAPPING_1_PARAM_WRAP_14_SIZE;
+ unsigned int param_wrap_15 : SQ_WRAPPING_1_PARAM_WRAP_15_SIZE;
+ } sq_wrapping_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_wrapping_1_t {
+ unsigned int param_wrap_15 : SQ_WRAPPING_1_PARAM_WRAP_15_SIZE;
+ unsigned int param_wrap_14 : SQ_WRAPPING_1_PARAM_WRAP_14_SIZE;
+ unsigned int param_wrap_13 : SQ_WRAPPING_1_PARAM_WRAP_13_SIZE;
+ unsigned int param_wrap_12 : SQ_WRAPPING_1_PARAM_WRAP_12_SIZE;
+ unsigned int param_wrap_11 : SQ_WRAPPING_1_PARAM_WRAP_11_SIZE;
+ unsigned int param_wrap_10 : SQ_WRAPPING_1_PARAM_WRAP_10_SIZE;
+ unsigned int param_wrap_9 : SQ_WRAPPING_1_PARAM_WRAP_9_SIZE;
+ unsigned int param_wrap_8 : SQ_WRAPPING_1_PARAM_WRAP_8_SIZE;
+ } sq_wrapping_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_wrapping_1_t f;
+} sq_wrapping_1_u;
+
+
+/*
+ * SQ_VS_CONST struct
+ */
+
+#define SQ_VS_CONST_BASE_SIZE 9
+#define SQ_VS_CONST_SIZE_SIZE 9
+
+#define SQ_VS_CONST_BASE_SHIFT 0
+#define SQ_VS_CONST_SIZE_SHIFT 12
+
+#define SQ_VS_CONST_BASE_MASK 0x000001ff
+#define SQ_VS_CONST_SIZE_MASK 0x001ff000
+
+#define SQ_VS_CONST_MASK \
+ (SQ_VS_CONST_BASE_MASK | \
+ SQ_VS_CONST_SIZE_MASK)
+
+#define SQ_VS_CONST(base, size) \
+ ((base << SQ_VS_CONST_BASE_SHIFT) | \
+ (size << SQ_VS_CONST_SIZE_SHIFT))
+
+#define SQ_VS_CONST_GET_BASE(sq_vs_const) \
+ ((sq_vs_const & SQ_VS_CONST_BASE_MASK) >> SQ_VS_CONST_BASE_SHIFT)
+#define SQ_VS_CONST_GET_SIZE(sq_vs_const) \
+ ((sq_vs_const & SQ_VS_CONST_SIZE_MASK) >> SQ_VS_CONST_SIZE_SHIFT)
+
+#define SQ_VS_CONST_SET_BASE(sq_vs_const_reg, base) \
+ sq_vs_const_reg = (sq_vs_const_reg & ~SQ_VS_CONST_BASE_MASK) | (base << SQ_VS_CONST_BASE_SHIFT)
+#define SQ_VS_CONST_SET_SIZE(sq_vs_const_reg, size) \
+ sq_vs_const_reg = (sq_vs_const_reg & ~SQ_VS_CONST_SIZE_MASK) | (size << SQ_VS_CONST_SIZE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_vs_const_t {
+ unsigned int base : SQ_VS_CONST_BASE_SIZE;
+ unsigned int : 3;
+ unsigned int size : SQ_VS_CONST_SIZE_SIZE;
+ unsigned int : 11;
+ } sq_vs_const_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_vs_const_t {
+ unsigned int : 11;
+ unsigned int size : SQ_VS_CONST_SIZE_SIZE;
+ unsigned int : 3;
+ unsigned int base : SQ_VS_CONST_BASE_SIZE;
+ } sq_vs_const_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_vs_const_t f;
+} sq_vs_const_u;
+
+
+/*
+ * SQ_PS_CONST struct
+ */
+
+#define SQ_PS_CONST_BASE_SIZE 9
+#define SQ_PS_CONST_SIZE_SIZE 9
+
+#define SQ_PS_CONST_BASE_SHIFT 0
+#define SQ_PS_CONST_SIZE_SHIFT 12
+
+#define SQ_PS_CONST_BASE_MASK 0x000001ff
+#define SQ_PS_CONST_SIZE_MASK 0x001ff000
+
+#define SQ_PS_CONST_MASK \
+ (SQ_PS_CONST_BASE_MASK | \
+ SQ_PS_CONST_SIZE_MASK)
+
+#define SQ_PS_CONST(base, size) \
+ ((base << SQ_PS_CONST_BASE_SHIFT) | \
+ (size << SQ_PS_CONST_SIZE_SHIFT))
+
+#define SQ_PS_CONST_GET_BASE(sq_ps_const) \
+ ((sq_ps_const & SQ_PS_CONST_BASE_MASK) >> SQ_PS_CONST_BASE_SHIFT)
+#define SQ_PS_CONST_GET_SIZE(sq_ps_const) \
+ ((sq_ps_const & SQ_PS_CONST_SIZE_MASK) >> SQ_PS_CONST_SIZE_SHIFT)
+
+#define SQ_PS_CONST_SET_BASE(sq_ps_const_reg, base) \
+ sq_ps_const_reg = (sq_ps_const_reg & ~SQ_PS_CONST_BASE_MASK) | (base << SQ_PS_CONST_BASE_SHIFT)
+#define SQ_PS_CONST_SET_SIZE(sq_ps_const_reg, size) \
+ sq_ps_const_reg = (sq_ps_const_reg & ~SQ_PS_CONST_SIZE_MASK) | (size << SQ_PS_CONST_SIZE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_ps_const_t {
+ unsigned int base : SQ_PS_CONST_BASE_SIZE;
+ unsigned int : 3;
+ unsigned int size : SQ_PS_CONST_SIZE_SIZE;
+ unsigned int : 11;
+ } sq_ps_const_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_ps_const_t {
+ unsigned int : 11;
+ unsigned int size : SQ_PS_CONST_SIZE_SIZE;
+ unsigned int : 3;
+ unsigned int base : SQ_PS_CONST_BASE_SIZE;
+ } sq_ps_const_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_ps_const_t f;
+} sq_ps_const_u;
+
+
+/*
+ * SQ_CONTEXT_MISC struct
+ */
+
+#define SQ_CONTEXT_MISC_INST_PRED_OPTIMIZE_SIZE 1
+#define SQ_CONTEXT_MISC_SC_OUTPUT_SCREEN_XY_SIZE 1
+#define SQ_CONTEXT_MISC_SC_SAMPLE_CNTL_SIZE 2
+#define SQ_CONTEXT_MISC_PARAM_GEN_POS_SIZE 8
+#define SQ_CONTEXT_MISC_PERFCOUNTER_REF_SIZE 1
+#define SQ_CONTEXT_MISC_YEILD_OPTIMIZE_SIZE 1
+#define SQ_CONTEXT_MISC_TX_CACHE_SEL_SIZE 1
+
+#define SQ_CONTEXT_MISC_INST_PRED_OPTIMIZE_SHIFT 0
+#define SQ_CONTEXT_MISC_SC_OUTPUT_SCREEN_XY_SHIFT 1
+#define SQ_CONTEXT_MISC_SC_SAMPLE_CNTL_SHIFT 2
+#define SQ_CONTEXT_MISC_PARAM_GEN_POS_SHIFT 8
+#define SQ_CONTEXT_MISC_PERFCOUNTER_REF_SHIFT 16
+#define SQ_CONTEXT_MISC_YEILD_OPTIMIZE_SHIFT 17
+#define SQ_CONTEXT_MISC_TX_CACHE_SEL_SHIFT 18
+
+#define SQ_CONTEXT_MISC_INST_PRED_OPTIMIZE_MASK 0x00000001
+#define SQ_CONTEXT_MISC_SC_OUTPUT_SCREEN_XY_MASK 0x00000002
+#define SQ_CONTEXT_MISC_SC_SAMPLE_CNTL_MASK 0x0000000c
+#define SQ_CONTEXT_MISC_PARAM_GEN_POS_MASK 0x0000ff00
+#define SQ_CONTEXT_MISC_PERFCOUNTER_REF_MASK 0x00010000
+#define SQ_CONTEXT_MISC_YEILD_OPTIMIZE_MASK 0x00020000
+#define SQ_CONTEXT_MISC_TX_CACHE_SEL_MASK 0x00040000
+
+#define SQ_CONTEXT_MISC_MASK \
+ (SQ_CONTEXT_MISC_INST_PRED_OPTIMIZE_MASK | \
+ SQ_CONTEXT_MISC_SC_OUTPUT_SCREEN_XY_MASK | \
+ SQ_CONTEXT_MISC_SC_SAMPLE_CNTL_MASK | \
+ SQ_CONTEXT_MISC_PARAM_GEN_POS_MASK | \
+ SQ_CONTEXT_MISC_PERFCOUNTER_REF_MASK | \
+ SQ_CONTEXT_MISC_YEILD_OPTIMIZE_MASK | \
+ SQ_CONTEXT_MISC_TX_CACHE_SEL_MASK)
+
+#define SQ_CONTEXT_MISC(inst_pred_optimize, sc_output_screen_xy, sc_sample_cntl, param_gen_pos, perfcounter_ref, yeild_optimize, tx_cache_sel) \
+ ((inst_pred_optimize << SQ_CONTEXT_MISC_INST_PRED_OPTIMIZE_SHIFT) | \
+ (sc_output_screen_xy << SQ_CONTEXT_MISC_SC_OUTPUT_SCREEN_XY_SHIFT) | \
+ (sc_sample_cntl << SQ_CONTEXT_MISC_SC_SAMPLE_CNTL_SHIFT) | \
+ (param_gen_pos << SQ_CONTEXT_MISC_PARAM_GEN_POS_SHIFT) | \
+ (perfcounter_ref << SQ_CONTEXT_MISC_PERFCOUNTER_REF_SHIFT) | \
+ (yeild_optimize << SQ_CONTEXT_MISC_YEILD_OPTIMIZE_SHIFT) | \
+ (tx_cache_sel << SQ_CONTEXT_MISC_TX_CACHE_SEL_SHIFT))
+
+#define SQ_CONTEXT_MISC_GET_INST_PRED_OPTIMIZE(sq_context_misc) \
+ ((sq_context_misc & SQ_CONTEXT_MISC_INST_PRED_OPTIMIZE_MASK) >> SQ_CONTEXT_MISC_INST_PRED_OPTIMIZE_SHIFT)
+#define SQ_CONTEXT_MISC_GET_SC_OUTPUT_SCREEN_XY(sq_context_misc) \
+ ((sq_context_misc & SQ_CONTEXT_MISC_SC_OUTPUT_SCREEN_XY_MASK) >> SQ_CONTEXT_MISC_SC_OUTPUT_SCREEN_XY_SHIFT)
+#define SQ_CONTEXT_MISC_GET_SC_SAMPLE_CNTL(sq_context_misc) \
+ ((sq_context_misc & SQ_CONTEXT_MISC_SC_SAMPLE_CNTL_MASK) >> SQ_CONTEXT_MISC_SC_SAMPLE_CNTL_SHIFT)
+#define SQ_CONTEXT_MISC_GET_PARAM_GEN_POS(sq_context_misc) \
+ ((sq_context_misc & SQ_CONTEXT_MISC_PARAM_GEN_POS_MASK) >> SQ_CONTEXT_MISC_PARAM_GEN_POS_SHIFT)
+#define SQ_CONTEXT_MISC_GET_PERFCOUNTER_REF(sq_context_misc) \
+ ((sq_context_misc & SQ_CONTEXT_MISC_PERFCOUNTER_REF_MASK) >> SQ_CONTEXT_MISC_PERFCOUNTER_REF_SHIFT)
+#define SQ_CONTEXT_MISC_GET_YEILD_OPTIMIZE(sq_context_misc) \
+ ((sq_context_misc & SQ_CONTEXT_MISC_YEILD_OPTIMIZE_MASK) >> SQ_CONTEXT_MISC_YEILD_OPTIMIZE_SHIFT)
+#define SQ_CONTEXT_MISC_GET_TX_CACHE_SEL(sq_context_misc) \
+ ((sq_context_misc & SQ_CONTEXT_MISC_TX_CACHE_SEL_MASK) >> SQ_CONTEXT_MISC_TX_CACHE_SEL_SHIFT)
+
+#define SQ_CONTEXT_MISC_SET_INST_PRED_OPTIMIZE(sq_context_misc_reg, inst_pred_optimize) \
+ sq_context_misc_reg = (sq_context_misc_reg & ~SQ_CONTEXT_MISC_INST_PRED_OPTIMIZE_MASK) | (inst_pred_optimize << SQ_CONTEXT_MISC_INST_PRED_OPTIMIZE_SHIFT)
+#define SQ_CONTEXT_MISC_SET_SC_OUTPUT_SCREEN_XY(sq_context_misc_reg, sc_output_screen_xy) \
+ sq_context_misc_reg = (sq_context_misc_reg & ~SQ_CONTEXT_MISC_SC_OUTPUT_SCREEN_XY_MASK) | (sc_output_screen_xy << SQ_CONTEXT_MISC_SC_OUTPUT_SCREEN_XY_SHIFT)
+#define SQ_CONTEXT_MISC_SET_SC_SAMPLE_CNTL(sq_context_misc_reg, sc_sample_cntl) \
+ sq_context_misc_reg = (sq_context_misc_reg & ~SQ_CONTEXT_MISC_SC_SAMPLE_CNTL_MASK) | (sc_sample_cntl << SQ_CONTEXT_MISC_SC_SAMPLE_CNTL_SHIFT)
+#define SQ_CONTEXT_MISC_SET_PARAM_GEN_POS(sq_context_misc_reg, param_gen_pos) \
+ sq_context_misc_reg = (sq_context_misc_reg & ~SQ_CONTEXT_MISC_PARAM_GEN_POS_MASK) | (param_gen_pos << SQ_CONTEXT_MISC_PARAM_GEN_POS_SHIFT)
+#define SQ_CONTEXT_MISC_SET_PERFCOUNTER_REF(sq_context_misc_reg, perfcounter_ref) \
+ sq_context_misc_reg = (sq_context_misc_reg & ~SQ_CONTEXT_MISC_PERFCOUNTER_REF_MASK) | (perfcounter_ref << SQ_CONTEXT_MISC_PERFCOUNTER_REF_SHIFT)
+#define SQ_CONTEXT_MISC_SET_YEILD_OPTIMIZE(sq_context_misc_reg, yeild_optimize) \
+ sq_context_misc_reg = (sq_context_misc_reg & ~SQ_CONTEXT_MISC_YEILD_OPTIMIZE_MASK) | (yeild_optimize << SQ_CONTEXT_MISC_YEILD_OPTIMIZE_SHIFT)
+#define SQ_CONTEXT_MISC_SET_TX_CACHE_SEL(sq_context_misc_reg, tx_cache_sel) \
+ sq_context_misc_reg = (sq_context_misc_reg & ~SQ_CONTEXT_MISC_TX_CACHE_SEL_MASK) | (tx_cache_sel << SQ_CONTEXT_MISC_TX_CACHE_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_context_misc_t {
+ unsigned int inst_pred_optimize : SQ_CONTEXT_MISC_INST_PRED_OPTIMIZE_SIZE;
+ unsigned int sc_output_screen_xy : SQ_CONTEXT_MISC_SC_OUTPUT_SCREEN_XY_SIZE;
+ unsigned int sc_sample_cntl : SQ_CONTEXT_MISC_SC_SAMPLE_CNTL_SIZE;
+ unsigned int : 4;
+ unsigned int param_gen_pos : SQ_CONTEXT_MISC_PARAM_GEN_POS_SIZE;
+ unsigned int perfcounter_ref : SQ_CONTEXT_MISC_PERFCOUNTER_REF_SIZE;
+ unsigned int yeild_optimize : SQ_CONTEXT_MISC_YEILD_OPTIMIZE_SIZE;
+ unsigned int tx_cache_sel : SQ_CONTEXT_MISC_TX_CACHE_SEL_SIZE;
+ unsigned int : 13;
+ } sq_context_misc_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_context_misc_t {
+ unsigned int : 13;
+ unsigned int tx_cache_sel : SQ_CONTEXT_MISC_TX_CACHE_SEL_SIZE;
+ unsigned int yeild_optimize : SQ_CONTEXT_MISC_YEILD_OPTIMIZE_SIZE;
+ unsigned int perfcounter_ref : SQ_CONTEXT_MISC_PERFCOUNTER_REF_SIZE;
+ unsigned int param_gen_pos : SQ_CONTEXT_MISC_PARAM_GEN_POS_SIZE;
+ unsigned int : 4;
+ unsigned int sc_sample_cntl : SQ_CONTEXT_MISC_SC_SAMPLE_CNTL_SIZE;
+ unsigned int sc_output_screen_xy : SQ_CONTEXT_MISC_SC_OUTPUT_SCREEN_XY_SIZE;
+ unsigned int inst_pred_optimize : SQ_CONTEXT_MISC_INST_PRED_OPTIMIZE_SIZE;
+ } sq_context_misc_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_context_misc_t f;
+} sq_context_misc_u;
+
+
+/*
+ * SQ_CF_RD_BASE struct
+ */
+
+#define SQ_CF_RD_BASE_RD_BASE_SIZE 3
+
+#define SQ_CF_RD_BASE_RD_BASE_SHIFT 0
+
+#define SQ_CF_RD_BASE_RD_BASE_MASK 0x00000007
+
+#define SQ_CF_RD_BASE_MASK \
+ (SQ_CF_RD_BASE_RD_BASE_MASK)
+
+#define SQ_CF_RD_BASE(rd_base) \
+ ((rd_base << SQ_CF_RD_BASE_RD_BASE_SHIFT))
+
+#define SQ_CF_RD_BASE_GET_RD_BASE(sq_cf_rd_base) \
+ ((sq_cf_rd_base & SQ_CF_RD_BASE_RD_BASE_MASK) >> SQ_CF_RD_BASE_RD_BASE_SHIFT)
+
+#define SQ_CF_RD_BASE_SET_RD_BASE(sq_cf_rd_base_reg, rd_base) \
+ sq_cf_rd_base_reg = (sq_cf_rd_base_reg & ~SQ_CF_RD_BASE_RD_BASE_MASK) | (rd_base << SQ_CF_RD_BASE_RD_BASE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_cf_rd_base_t {
+ unsigned int rd_base : SQ_CF_RD_BASE_RD_BASE_SIZE;
+ unsigned int : 29;
+ } sq_cf_rd_base_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_cf_rd_base_t {
+ unsigned int : 29;
+ unsigned int rd_base : SQ_CF_RD_BASE_RD_BASE_SIZE;
+ } sq_cf_rd_base_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_cf_rd_base_t f;
+} sq_cf_rd_base_u;
+
+
+/*
+ * SQ_DEBUG_MISC_0 struct
+ */
+
+#define SQ_DEBUG_MISC_0_DB_PROB_ON_SIZE 1
+#define SQ_DEBUG_MISC_0_DB_PROB_BREAK_SIZE 1
+#define SQ_DEBUG_MISC_0_DB_PROB_ADDR_SIZE 11
+#define SQ_DEBUG_MISC_0_DB_PROB_COUNT_SIZE 8
+
+#define SQ_DEBUG_MISC_0_DB_PROB_ON_SHIFT 0
+#define SQ_DEBUG_MISC_0_DB_PROB_BREAK_SHIFT 4
+#define SQ_DEBUG_MISC_0_DB_PROB_ADDR_SHIFT 8
+#define SQ_DEBUG_MISC_0_DB_PROB_COUNT_SHIFT 24
+
+#define SQ_DEBUG_MISC_0_DB_PROB_ON_MASK 0x00000001
+#define SQ_DEBUG_MISC_0_DB_PROB_BREAK_MASK 0x00000010
+#define SQ_DEBUG_MISC_0_DB_PROB_ADDR_MASK 0x0007ff00
+#define SQ_DEBUG_MISC_0_DB_PROB_COUNT_MASK 0xff000000
+
+#define SQ_DEBUG_MISC_0_MASK \
+ (SQ_DEBUG_MISC_0_DB_PROB_ON_MASK | \
+ SQ_DEBUG_MISC_0_DB_PROB_BREAK_MASK | \
+ SQ_DEBUG_MISC_0_DB_PROB_ADDR_MASK | \
+ SQ_DEBUG_MISC_0_DB_PROB_COUNT_MASK)
+
+#define SQ_DEBUG_MISC_0(db_prob_on, db_prob_break, db_prob_addr, db_prob_count) \
+ ((db_prob_on << SQ_DEBUG_MISC_0_DB_PROB_ON_SHIFT) | \
+ (db_prob_break << SQ_DEBUG_MISC_0_DB_PROB_BREAK_SHIFT) | \
+ (db_prob_addr << SQ_DEBUG_MISC_0_DB_PROB_ADDR_SHIFT) | \
+ (db_prob_count << SQ_DEBUG_MISC_0_DB_PROB_COUNT_SHIFT))
+
+#define SQ_DEBUG_MISC_0_GET_DB_PROB_ON(sq_debug_misc_0) \
+ ((sq_debug_misc_0 & SQ_DEBUG_MISC_0_DB_PROB_ON_MASK) >> SQ_DEBUG_MISC_0_DB_PROB_ON_SHIFT)
+#define SQ_DEBUG_MISC_0_GET_DB_PROB_BREAK(sq_debug_misc_0) \
+ ((sq_debug_misc_0 & SQ_DEBUG_MISC_0_DB_PROB_BREAK_MASK) >> SQ_DEBUG_MISC_0_DB_PROB_BREAK_SHIFT)
+#define SQ_DEBUG_MISC_0_GET_DB_PROB_ADDR(sq_debug_misc_0) \
+ ((sq_debug_misc_0 & SQ_DEBUG_MISC_0_DB_PROB_ADDR_MASK) >> SQ_DEBUG_MISC_0_DB_PROB_ADDR_SHIFT)
+#define SQ_DEBUG_MISC_0_GET_DB_PROB_COUNT(sq_debug_misc_0) \
+ ((sq_debug_misc_0 & SQ_DEBUG_MISC_0_DB_PROB_COUNT_MASK) >> SQ_DEBUG_MISC_0_DB_PROB_COUNT_SHIFT)
+
+#define SQ_DEBUG_MISC_0_SET_DB_PROB_ON(sq_debug_misc_0_reg, db_prob_on) \
+ sq_debug_misc_0_reg = (sq_debug_misc_0_reg & ~SQ_DEBUG_MISC_0_DB_PROB_ON_MASK) | (db_prob_on << SQ_DEBUG_MISC_0_DB_PROB_ON_SHIFT)
+#define SQ_DEBUG_MISC_0_SET_DB_PROB_BREAK(sq_debug_misc_0_reg, db_prob_break) \
+ sq_debug_misc_0_reg = (sq_debug_misc_0_reg & ~SQ_DEBUG_MISC_0_DB_PROB_BREAK_MASK) | (db_prob_break << SQ_DEBUG_MISC_0_DB_PROB_BREAK_SHIFT)
+#define SQ_DEBUG_MISC_0_SET_DB_PROB_ADDR(sq_debug_misc_0_reg, db_prob_addr) \
+ sq_debug_misc_0_reg = (sq_debug_misc_0_reg & ~SQ_DEBUG_MISC_0_DB_PROB_ADDR_MASK) | (db_prob_addr << SQ_DEBUG_MISC_0_DB_PROB_ADDR_SHIFT)
+#define SQ_DEBUG_MISC_0_SET_DB_PROB_COUNT(sq_debug_misc_0_reg, db_prob_count) \
+ sq_debug_misc_0_reg = (sq_debug_misc_0_reg & ~SQ_DEBUG_MISC_0_DB_PROB_COUNT_MASK) | (db_prob_count << SQ_DEBUG_MISC_0_DB_PROB_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_misc_0_t {
+ unsigned int db_prob_on : SQ_DEBUG_MISC_0_DB_PROB_ON_SIZE;
+ unsigned int : 3;
+ unsigned int db_prob_break : SQ_DEBUG_MISC_0_DB_PROB_BREAK_SIZE;
+ unsigned int : 3;
+ unsigned int db_prob_addr : SQ_DEBUG_MISC_0_DB_PROB_ADDR_SIZE;
+ unsigned int : 5;
+ unsigned int db_prob_count : SQ_DEBUG_MISC_0_DB_PROB_COUNT_SIZE;
+ } sq_debug_misc_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_misc_0_t {
+ unsigned int db_prob_count : SQ_DEBUG_MISC_0_DB_PROB_COUNT_SIZE;
+ unsigned int : 5;
+ unsigned int db_prob_addr : SQ_DEBUG_MISC_0_DB_PROB_ADDR_SIZE;
+ unsigned int : 3;
+ unsigned int db_prob_break : SQ_DEBUG_MISC_0_DB_PROB_BREAK_SIZE;
+ unsigned int : 3;
+ unsigned int db_prob_on : SQ_DEBUG_MISC_0_DB_PROB_ON_SIZE;
+ } sq_debug_misc_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_misc_0_t f;
+} sq_debug_misc_0_u;
+
+
+/*
+ * SQ_DEBUG_MISC_1 struct
+ */
+
+#define SQ_DEBUG_MISC_1_DB_ON_PIX_SIZE 1
+#define SQ_DEBUG_MISC_1_DB_ON_VTX_SIZE 1
+#define SQ_DEBUG_MISC_1_DB_INST_COUNT_SIZE 8
+#define SQ_DEBUG_MISC_1_DB_BREAK_ADDR_SIZE 11
+
+#define SQ_DEBUG_MISC_1_DB_ON_PIX_SHIFT 0
+#define SQ_DEBUG_MISC_1_DB_ON_VTX_SHIFT 1
+#define SQ_DEBUG_MISC_1_DB_INST_COUNT_SHIFT 8
+#define SQ_DEBUG_MISC_1_DB_BREAK_ADDR_SHIFT 16
+
+#define SQ_DEBUG_MISC_1_DB_ON_PIX_MASK 0x00000001
+#define SQ_DEBUG_MISC_1_DB_ON_VTX_MASK 0x00000002
+#define SQ_DEBUG_MISC_1_DB_INST_COUNT_MASK 0x0000ff00
+#define SQ_DEBUG_MISC_1_DB_BREAK_ADDR_MASK 0x07ff0000
+
+#define SQ_DEBUG_MISC_1_MASK \
+ (SQ_DEBUG_MISC_1_DB_ON_PIX_MASK | \
+ SQ_DEBUG_MISC_1_DB_ON_VTX_MASK | \
+ SQ_DEBUG_MISC_1_DB_INST_COUNT_MASK | \
+ SQ_DEBUG_MISC_1_DB_BREAK_ADDR_MASK)
+
+#define SQ_DEBUG_MISC_1(db_on_pix, db_on_vtx, db_inst_count, db_break_addr) \
+ ((db_on_pix << SQ_DEBUG_MISC_1_DB_ON_PIX_SHIFT) | \
+ (db_on_vtx << SQ_DEBUG_MISC_1_DB_ON_VTX_SHIFT) | \
+ (db_inst_count << SQ_DEBUG_MISC_1_DB_INST_COUNT_SHIFT) | \
+ (db_break_addr << SQ_DEBUG_MISC_1_DB_BREAK_ADDR_SHIFT))
+
+#define SQ_DEBUG_MISC_1_GET_DB_ON_PIX(sq_debug_misc_1) \
+ ((sq_debug_misc_1 & SQ_DEBUG_MISC_1_DB_ON_PIX_MASK) >> SQ_DEBUG_MISC_1_DB_ON_PIX_SHIFT)
+#define SQ_DEBUG_MISC_1_GET_DB_ON_VTX(sq_debug_misc_1) \
+ ((sq_debug_misc_1 & SQ_DEBUG_MISC_1_DB_ON_VTX_MASK) >> SQ_DEBUG_MISC_1_DB_ON_VTX_SHIFT)
+#define SQ_DEBUG_MISC_1_GET_DB_INST_COUNT(sq_debug_misc_1) \
+ ((sq_debug_misc_1 & SQ_DEBUG_MISC_1_DB_INST_COUNT_MASK) >> SQ_DEBUG_MISC_1_DB_INST_COUNT_SHIFT)
+#define SQ_DEBUG_MISC_1_GET_DB_BREAK_ADDR(sq_debug_misc_1) \
+ ((sq_debug_misc_1 & SQ_DEBUG_MISC_1_DB_BREAK_ADDR_MASK) >> SQ_DEBUG_MISC_1_DB_BREAK_ADDR_SHIFT)
+
+#define SQ_DEBUG_MISC_1_SET_DB_ON_PIX(sq_debug_misc_1_reg, db_on_pix) \
+ sq_debug_misc_1_reg = (sq_debug_misc_1_reg & ~SQ_DEBUG_MISC_1_DB_ON_PIX_MASK) | (db_on_pix << SQ_DEBUG_MISC_1_DB_ON_PIX_SHIFT)
+#define SQ_DEBUG_MISC_1_SET_DB_ON_VTX(sq_debug_misc_1_reg, db_on_vtx) \
+ sq_debug_misc_1_reg = (sq_debug_misc_1_reg & ~SQ_DEBUG_MISC_1_DB_ON_VTX_MASK) | (db_on_vtx << SQ_DEBUG_MISC_1_DB_ON_VTX_SHIFT)
+#define SQ_DEBUG_MISC_1_SET_DB_INST_COUNT(sq_debug_misc_1_reg, db_inst_count) \
+ sq_debug_misc_1_reg = (sq_debug_misc_1_reg & ~SQ_DEBUG_MISC_1_DB_INST_COUNT_MASK) | (db_inst_count << SQ_DEBUG_MISC_1_DB_INST_COUNT_SHIFT)
+#define SQ_DEBUG_MISC_1_SET_DB_BREAK_ADDR(sq_debug_misc_1_reg, db_break_addr) \
+ sq_debug_misc_1_reg = (sq_debug_misc_1_reg & ~SQ_DEBUG_MISC_1_DB_BREAK_ADDR_MASK) | (db_break_addr << SQ_DEBUG_MISC_1_DB_BREAK_ADDR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_misc_1_t {
+ unsigned int db_on_pix : SQ_DEBUG_MISC_1_DB_ON_PIX_SIZE;
+ unsigned int db_on_vtx : SQ_DEBUG_MISC_1_DB_ON_VTX_SIZE;
+ unsigned int : 6;
+ unsigned int db_inst_count : SQ_DEBUG_MISC_1_DB_INST_COUNT_SIZE;
+ unsigned int db_break_addr : SQ_DEBUG_MISC_1_DB_BREAK_ADDR_SIZE;
+ unsigned int : 5;
+ } sq_debug_misc_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_misc_1_t {
+ unsigned int : 5;
+ unsigned int db_break_addr : SQ_DEBUG_MISC_1_DB_BREAK_ADDR_SIZE;
+ unsigned int db_inst_count : SQ_DEBUG_MISC_1_DB_INST_COUNT_SIZE;
+ unsigned int : 6;
+ unsigned int db_on_vtx : SQ_DEBUG_MISC_1_DB_ON_VTX_SIZE;
+ unsigned int db_on_pix : SQ_DEBUG_MISC_1_DB_ON_PIX_SIZE;
+ } sq_debug_misc_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_misc_1_t f;
+} sq_debug_misc_1_u;
+
+
+#endif
+
+
+#if !defined (_SX_FIDDLE_H)
+#define _SX_FIDDLE_H
+
+/*******************************************************
+ * Enums
+ *******************************************************/
+
+
+/*******************************************************
+ * Values
+ *******************************************************/
+
+
+/*******************************************************
+ * Structures
+ *******************************************************/
+
+#endif
+
+
+#if !defined (_TP_FIDDLE_H)
+#define _TP_FIDDLE_H
+
+/*******************************************************
+ * Enums
+ *******************************************************/
+
+
+/*******************************************************
+ * Values
+ *******************************************************/
+
+
+/*******************************************************
+ * Structures
+ *******************************************************/
+
+/*
+ * TC_CNTL_STATUS struct
+ */
+
+#define TC_CNTL_STATUS_L2_INVALIDATE_SIZE 1
+#define TC_CNTL_STATUS_TC_L2_HIT_MISS_SIZE 2
+#define TC_CNTL_STATUS_TC_BUSY_SIZE 1
+
+#define TC_CNTL_STATUS_L2_INVALIDATE_SHIFT 0
+#define TC_CNTL_STATUS_TC_L2_HIT_MISS_SHIFT 18
+#define TC_CNTL_STATUS_TC_BUSY_SHIFT 31
+
+#define TC_CNTL_STATUS_L2_INVALIDATE_MASK 0x00000001
+#define TC_CNTL_STATUS_TC_L2_HIT_MISS_MASK 0x000c0000
+#define TC_CNTL_STATUS_TC_BUSY_MASK 0x80000000
+
+#define TC_CNTL_STATUS_MASK \
+ (TC_CNTL_STATUS_L2_INVALIDATE_MASK | \
+ TC_CNTL_STATUS_TC_L2_HIT_MISS_MASK | \
+ TC_CNTL_STATUS_TC_BUSY_MASK)
+
+#define TC_CNTL_STATUS(l2_invalidate, tc_l2_hit_miss, tc_busy) \
+ ((l2_invalidate << TC_CNTL_STATUS_L2_INVALIDATE_SHIFT) | \
+ (tc_l2_hit_miss << TC_CNTL_STATUS_TC_L2_HIT_MISS_SHIFT) | \
+ (tc_busy << TC_CNTL_STATUS_TC_BUSY_SHIFT))
+
+#define TC_CNTL_STATUS_GET_L2_INVALIDATE(tc_cntl_status) \
+ ((tc_cntl_status & TC_CNTL_STATUS_L2_INVALIDATE_MASK) >> TC_CNTL_STATUS_L2_INVALIDATE_SHIFT)
+#define TC_CNTL_STATUS_GET_TC_L2_HIT_MISS(tc_cntl_status) \
+ ((tc_cntl_status & TC_CNTL_STATUS_TC_L2_HIT_MISS_MASK) >> TC_CNTL_STATUS_TC_L2_HIT_MISS_SHIFT)
+#define TC_CNTL_STATUS_GET_TC_BUSY(tc_cntl_status) \
+ ((tc_cntl_status & TC_CNTL_STATUS_TC_BUSY_MASK) >> TC_CNTL_STATUS_TC_BUSY_SHIFT)
+
+#define TC_CNTL_STATUS_SET_L2_INVALIDATE(tc_cntl_status_reg, l2_invalidate) \
+ tc_cntl_status_reg = (tc_cntl_status_reg & ~TC_CNTL_STATUS_L2_INVALIDATE_MASK) | (l2_invalidate << TC_CNTL_STATUS_L2_INVALIDATE_SHIFT)
+#define TC_CNTL_STATUS_SET_TC_L2_HIT_MISS(tc_cntl_status_reg, tc_l2_hit_miss) \
+ tc_cntl_status_reg = (tc_cntl_status_reg & ~TC_CNTL_STATUS_TC_L2_HIT_MISS_MASK) | (tc_l2_hit_miss << TC_CNTL_STATUS_TC_L2_HIT_MISS_SHIFT)
+#define TC_CNTL_STATUS_SET_TC_BUSY(tc_cntl_status_reg, tc_busy) \
+ tc_cntl_status_reg = (tc_cntl_status_reg & ~TC_CNTL_STATUS_TC_BUSY_MASK) | (tc_busy << TC_CNTL_STATUS_TC_BUSY_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tc_cntl_status_t {
+ unsigned int l2_invalidate : TC_CNTL_STATUS_L2_INVALIDATE_SIZE;
+ unsigned int : 17;
+ unsigned int tc_l2_hit_miss : TC_CNTL_STATUS_TC_L2_HIT_MISS_SIZE;
+ unsigned int : 11;
+ unsigned int tc_busy : TC_CNTL_STATUS_TC_BUSY_SIZE;
+ } tc_cntl_status_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tc_cntl_status_t {
+ unsigned int tc_busy : TC_CNTL_STATUS_TC_BUSY_SIZE;
+ unsigned int : 11;
+ unsigned int tc_l2_hit_miss : TC_CNTL_STATUS_TC_L2_HIT_MISS_SIZE;
+ unsigned int : 17;
+ unsigned int l2_invalidate : TC_CNTL_STATUS_L2_INVALIDATE_SIZE;
+ } tc_cntl_status_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tc_cntl_status_t f;
+} tc_cntl_status_u;
+
+
+/*
+ * TCR_CHICKEN struct
+ */
+
+#define TCR_CHICKEN_SPARE_SIZE 32
+
+#define TCR_CHICKEN_SPARE_SHIFT 0
+
+#define TCR_CHICKEN_SPARE_MASK 0xffffffff
+
+#define TCR_CHICKEN_MASK \
+ (TCR_CHICKEN_SPARE_MASK)
+
+#define TCR_CHICKEN(spare) \
+ ((spare << TCR_CHICKEN_SPARE_SHIFT))
+
+#define TCR_CHICKEN_GET_SPARE(tcr_chicken) \
+ ((tcr_chicken & TCR_CHICKEN_SPARE_MASK) >> TCR_CHICKEN_SPARE_SHIFT)
+
+#define TCR_CHICKEN_SET_SPARE(tcr_chicken_reg, spare) \
+ tcr_chicken_reg = (tcr_chicken_reg & ~TCR_CHICKEN_SPARE_MASK) | (spare << TCR_CHICKEN_SPARE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcr_chicken_t {
+ unsigned int spare : TCR_CHICKEN_SPARE_SIZE;
+ } tcr_chicken_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcr_chicken_t {
+ unsigned int spare : TCR_CHICKEN_SPARE_SIZE;
+ } tcr_chicken_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcr_chicken_t f;
+} tcr_chicken_u;
+
+
+/*
+ * TCF_CHICKEN struct
+ */
+
+#define TCF_CHICKEN_SPARE_SIZE 32
+
+#define TCF_CHICKEN_SPARE_SHIFT 0
+
+#define TCF_CHICKEN_SPARE_MASK 0xffffffff
+
+#define TCF_CHICKEN_MASK \
+ (TCF_CHICKEN_SPARE_MASK)
+
+#define TCF_CHICKEN(spare) \
+ ((spare << TCF_CHICKEN_SPARE_SHIFT))
+
+#define TCF_CHICKEN_GET_SPARE(tcf_chicken) \
+ ((tcf_chicken & TCF_CHICKEN_SPARE_MASK) >> TCF_CHICKEN_SPARE_SHIFT)
+
+#define TCF_CHICKEN_SET_SPARE(tcf_chicken_reg, spare) \
+ tcf_chicken_reg = (tcf_chicken_reg & ~TCF_CHICKEN_SPARE_MASK) | (spare << TCF_CHICKEN_SPARE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_chicken_t {
+ unsigned int spare : TCF_CHICKEN_SPARE_SIZE;
+ } tcf_chicken_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_chicken_t {
+ unsigned int spare : TCF_CHICKEN_SPARE_SIZE;
+ } tcf_chicken_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_chicken_t f;
+} tcf_chicken_u;
+
+
+/*
+ * TCM_CHICKEN struct
+ */
+
+#define TCM_CHICKEN_TCO_READ_LATENCY_FIFO_PROG_DEPTH_SIZE 8
+#define TCM_CHICKEN_ETC_COLOR_ENDIAN_SIZE 1
+#define TCM_CHICKEN_SPARE_SIZE 23
+
+#define TCM_CHICKEN_TCO_READ_LATENCY_FIFO_PROG_DEPTH_SHIFT 0
+#define TCM_CHICKEN_ETC_COLOR_ENDIAN_SHIFT 8
+#define TCM_CHICKEN_SPARE_SHIFT 9
+
+#define TCM_CHICKEN_TCO_READ_LATENCY_FIFO_PROG_DEPTH_MASK 0x000000ff
+#define TCM_CHICKEN_ETC_COLOR_ENDIAN_MASK 0x00000100
+#define TCM_CHICKEN_SPARE_MASK 0xfffffe00
+
+#define TCM_CHICKEN_MASK \
+ (TCM_CHICKEN_TCO_READ_LATENCY_FIFO_PROG_DEPTH_MASK | \
+ TCM_CHICKEN_ETC_COLOR_ENDIAN_MASK | \
+ TCM_CHICKEN_SPARE_MASK)
+
+#define TCM_CHICKEN(tco_read_latency_fifo_prog_depth, etc_color_endian, spare) \
+ ((tco_read_latency_fifo_prog_depth << TCM_CHICKEN_TCO_READ_LATENCY_FIFO_PROG_DEPTH_SHIFT) | \
+ (etc_color_endian << TCM_CHICKEN_ETC_COLOR_ENDIAN_SHIFT) | \
+ (spare << TCM_CHICKEN_SPARE_SHIFT))
+
+#define TCM_CHICKEN_GET_TCO_READ_LATENCY_FIFO_PROG_DEPTH(tcm_chicken) \
+ ((tcm_chicken & TCM_CHICKEN_TCO_READ_LATENCY_FIFO_PROG_DEPTH_MASK) >> TCM_CHICKEN_TCO_READ_LATENCY_FIFO_PROG_DEPTH_SHIFT)
+#define TCM_CHICKEN_GET_ETC_COLOR_ENDIAN(tcm_chicken) \
+ ((tcm_chicken & TCM_CHICKEN_ETC_COLOR_ENDIAN_MASK) >> TCM_CHICKEN_ETC_COLOR_ENDIAN_SHIFT)
+#define TCM_CHICKEN_GET_SPARE(tcm_chicken) \
+ ((tcm_chicken & TCM_CHICKEN_SPARE_MASK) >> TCM_CHICKEN_SPARE_SHIFT)
+
+#define TCM_CHICKEN_SET_TCO_READ_LATENCY_FIFO_PROG_DEPTH(tcm_chicken_reg, tco_read_latency_fifo_prog_depth) \
+ tcm_chicken_reg = (tcm_chicken_reg & ~TCM_CHICKEN_TCO_READ_LATENCY_FIFO_PROG_DEPTH_MASK) | (tco_read_latency_fifo_prog_depth << TCM_CHICKEN_TCO_READ_LATENCY_FIFO_PROG_DEPTH_SHIFT)
+#define TCM_CHICKEN_SET_ETC_COLOR_ENDIAN(tcm_chicken_reg, etc_color_endian) \
+ tcm_chicken_reg = (tcm_chicken_reg & ~TCM_CHICKEN_ETC_COLOR_ENDIAN_MASK) | (etc_color_endian << TCM_CHICKEN_ETC_COLOR_ENDIAN_SHIFT)
+#define TCM_CHICKEN_SET_SPARE(tcm_chicken_reg, spare) \
+ tcm_chicken_reg = (tcm_chicken_reg & ~TCM_CHICKEN_SPARE_MASK) | (spare << TCM_CHICKEN_SPARE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcm_chicken_t {
+ unsigned int tco_read_latency_fifo_prog_depth : TCM_CHICKEN_TCO_READ_LATENCY_FIFO_PROG_DEPTH_SIZE;
+ unsigned int etc_color_endian : TCM_CHICKEN_ETC_COLOR_ENDIAN_SIZE;
+ unsigned int spare : TCM_CHICKEN_SPARE_SIZE;
+ } tcm_chicken_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcm_chicken_t {
+ unsigned int spare : TCM_CHICKEN_SPARE_SIZE;
+ unsigned int etc_color_endian : TCM_CHICKEN_ETC_COLOR_ENDIAN_SIZE;
+ unsigned int tco_read_latency_fifo_prog_depth : TCM_CHICKEN_TCO_READ_LATENCY_FIFO_PROG_DEPTH_SIZE;
+ } tcm_chicken_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcm_chicken_t f;
+} tcm_chicken_u;
+
+
+/*
+ * TCR_PERFCOUNTER0_SELECT struct
+ */
+
+#define TCR_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SIZE 8
+
+#define TCR_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SHIFT 0
+
+#define TCR_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_MASK 0x000000ff
+
+#define TCR_PERFCOUNTER0_SELECT_MASK \
+ (TCR_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_MASK)
+
+#define TCR_PERFCOUNTER0_SELECT(perfcounter_select) \
+ ((perfcounter_select << TCR_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SHIFT))
+
+#define TCR_PERFCOUNTER0_SELECT_GET_PERFCOUNTER_SELECT(tcr_perfcounter0_select) \
+ ((tcr_perfcounter0_select & TCR_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_MASK) >> TCR_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#define TCR_PERFCOUNTER0_SELECT_SET_PERFCOUNTER_SELECT(tcr_perfcounter0_select_reg, perfcounter_select) \
+ tcr_perfcounter0_select_reg = (tcr_perfcounter0_select_reg & ~TCR_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_MASK) | (perfcounter_select << TCR_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcr_perfcounter0_select_t {
+ unsigned int perfcounter_select : TCR_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SIZE;
+ unsigned int : 24;
+ } tcr_perfcounter0_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcr_perfcounter0_select_t {
+ unsigned int : 24;
+ unsigned int perfcounter_select : TCR_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SIZE;
+ } tcr_perfcounter0_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcr_perfcounter0_select_t f;
+} tcr_perfcounter0_select_u;
+
+
+/*
+ * TCR_PERFCOUNTER1_SELECT struct
+ */
+
+#define TCR_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SIZE 8
+
+#define TCR_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SHIFT 0
+
+#define TCR_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_MASK 0x000000ff
+
+#define TCR_PERFCOUNTER1_SELECT_MASK \
+ (TCR_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_MASK)
+
+#define TCR_PERFCOUNTER1_SELECT(perfcounter_select) \
+ ((perfcounter_select << TCR_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SHIFT))
+
+#define TCR_PERFCOUNTER1_SELECT_GET_PERFCOUNTER_SELECT(tcr_perfcounter1_select) \
+ ((tcr_perfcounter1_select & TCR_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_MASK) >> TCR_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#define TCR_PERFCOUNTER1_SELECT_SET_PERFCOUNTER_SELECT(tcr_perfcounter1_select_reg, perfcounter_select) \
+ tcr_perfcounter1_select_reg = (tcr_perfcounter1_select_reg & ~TCR_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_MASK) | (perfcounter_select << TCR_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcr_perfcounter1_select_t {
+ unsigned int perfcounter_select : TCR_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SIZE;
+ unsigned int : 24;
+ } tcr_perfcounter1_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcr_perfcounter1_select_t {
+ unsigned int : 24;
+ unsigned int perfcounter_select : TCR_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SIZE;
+ } tcr_perfcounter1_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcr_perfcounter1_select_t f;
+} tcr_perfcounter1_select_u;
+
+
+/*
+ * TCR_PERFCOUNTER0_HI struct
+ */
+
+#define TCR_PERFCOUNTER0_HI_PERFCOUNTER_HI_SIZE 16
+
+#define TCR_PERFCOUNTER0_HI_PERFCOUNTER_HI_SHIFT 0
+
+#define TCR_PERFCOUNTER0_HI_PERFCOUNTER_HI_MASK 0x0000ffff
+
+#define TCR_PERFCOUNTER0_HI_MASK \
+ (TCR_PERFCOUNTER0_HI_PERFCOUNTER_HI_MASK)
+
+#define TCR_PERFCOUNTER0_HI(perfcounter_hi) \
+ ((perfcounter_hi << TCR_PERFCOUNTER0_HI_PERFCOUNTER_HI_SHIFT))
+
+#define TCR_PERFCOUNTER0_HI_GET_PERFCOUNTER_HI(tcr_perfcounter0_hi) \
+ ((tcr_perfcounter0_hi & TCR_PERFCOUNTER0_HI_PERFCOUNTER_HI_MASK) >> TCR_PERFCOUNTER0_HI_PERFCOUNTER_HI_SHIFT)
+
+#define TCR_PERFCOUNTER0_HI_SET_PERFCOUNTER_HI(tcr_perfcounter0_hi_reg, perfcounter_hi) \
+ tcr_perfcounter0_hi_reg = (tcr_perfcounter0_hi_reg & ~TCR_PERFCOUNTER0_HI_PERFCOUNTER_HI_MASK) | (perfcounter_hi << TCR_PERFCOUNTER0_HI_PERFCOUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcr_perfcounter0_hi_t {
+ unsigned int perfcounter_hi : TCR_PERFCOUNTER0_HI_PERFCOUNTER_HI_SIZE;
+ unsigned int : 16;
+ } tcr_perfcounter0_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcr_perfcounter0_hi_t {
+ unsigned int : 16;
+ unsigned int perfcounter_hi : TCR_PERFCOUNTER0_HI_PERFCOUNTER_HI_SIZE;
+ } tcr_perfcounter0_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcr_perfcounter0_hi_t f;
+} tcr_perfcounter0_hi_u;
+
+
+/*
+ * TCR_PERFCOUNTER1_HI struct
+ */
+
+#define TCR_PERFCOUNTER1_HI_PERFCOUNTER_HI_SIZE 16
+
+#define TCR_PERFCOUNTER1_HI_PERFCOUNTER_HI_SHIFT 0
+
+#define TCR_PERFCOUNTER1_HI_PERFCOUNTER_HI_MASK 0x0000ffff
+
+#define TCR_PERFCOUNTER1_HI_MASK \
+ (TCR_PERFCOUNTER1_HI_PERFCOUNTER_HI_MASK)
+
+#define TCR_PERFCOUNTER1_HI(perfcounter_hi) \
+ ((perfcounter_hi << TCR_PERFCOUNTER1_HI_PERFCOUNTER_HI_SHIFT))
+
+#define TCR_PERFCOUNTER1_HI_GET_PERFCOUNTER_HI(tcr_perfcounter1_hi) \
+ ((tcr_perfcounter1_hi & TCR_PERFCOUNTER1_HI_PERFCOUNTER_HI_MASK) >> TCR_PERFCOUNTER1_HI_PERFCOUNTER_HI_SHIFT)
+
+#define TCR_PERFCOUNTER1_HI_SET_PERFCOUNTER_HI(tcr_perfcounter1_hi_reg, perfcounter_hi) \
+ tcr_perfcounter1_hi_reg = (tcr_perfcounter1_hi_reg & ~TCR_PERFCOUNTER1_HI_PERFCOUNTER_HI_MASK) | (perfcounter_hi << TCR_PERFCOUNTER1_HI_PERFCOUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcr_perfcounter1_hi_t {
+ unsigned int perfcounter_hi : TCR_PERFCOUNTER1_HI_PERFCOUNTER_HI_SIZE;
+ unsigned int : 16;
+ } tcr_perfcounter1_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcr_perfcounter1_hi_t {
+ unsigned int : 16;
+ unsigned int perfcounter_hi : TCR_PERFCOUNTER1_HI_PERFCOUNTER_HI_SIZE;
+ } tcr_perfcounter1_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcr_perfcounter1_hi_t f;
+} tcr_perfcounter1_hi_u;
+
+
+/*
+ * TCR_PERFCOUNTER0_LOW struct
+ */
+
+#define TCR_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SIZE 32
+
+#define TCR_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SHIFT 0
+
+#define TCR_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_MASK 0xffffffff
+
+#define TCR_PERFCOUNTER0_LOW_MASK \
+ (TCR_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_MASK)
+
+#define TCR_PERFCOUNTER0_LOW(perfcounter_low) \
+ ((perfcounter_low << TCR_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SHIFT))
+
+#define TCR_PERFCOUNTER0_LOW_GET_PERFCOUNTER_LOW(tcr_perfcounter0_low) \
+ ((tcr_perfcounter0_low & TCR_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_MASK) >> TCR_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#define TCR_PERFCOUNTER0_LOW_SET_PERFCOUNTER_LOW(tcr_perfcounter0_low_reg, perfcounter_low) \
+ tcr_perfcounter0_low_reg = (tcr_perfcounter0_low_reg & ~TCR_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_MASK) | (perfcounter_low << TCR_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcr_perfcounter0_low_t {
+ unsigned int perfcounter_low : TCR_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcr_perfcounter0_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcr_perfcounter0_low_t {
+ unsigned int perfcounter_low : TCR_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcr_perfcounter0_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcr_perfcounter0_low_t f;
+} tcr_perfcounter0_low_u;
+
+
+/*
+ * TCR_PERFCOUNTER1_LOW struct
+ */
+
+#define TCR_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SIZE 32
+
+#define TCR_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SHIFT 0
+
+#define TCR_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_MASK 0xffffffff
+
+#define TCR_PERFCOUNTER1_LOW_MASK \
+ (TCR_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_MASK)
+
+#define TCR_PERFCOUNTER1_LOW(perfcounter_low) \
+ ((perfcounter_low << TCR_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SHIFT))
+
+#define TCR_PERFCOUNTER1_LOW_GET_PERFCOUNTER_LOW(tcr_perfcounter1_low) \
+ ((tcr_perfcounter1_low & TCR_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_MASK) >> TCR_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#define TCR_PERFCOUNTER1_LOW_SET_PERFCOUNTER_LOW(tcr_perfcounter1_low_reg, perfcounter_low) \
+ tcr_perfcounter1_low_reg = (tcr_perfcounter1_low_reg & ~TCR_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_MASK) | (perfcounter_low << TCR_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcr_perfcounter1_low_t {
+ unsigned int perfcounter_low : TCR_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcr_perfcounter1_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcr_perfcounter1_low_t {
+ unsigned int perfcounter_low : TCR_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcr_perfcounter1_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcr_perfcounter1_low_t f;
+} tcr_perfcounter1_low_u;
+
+
+/*
+ * TP_TC_CLKGATE_CNTL struct
+ */
+
+#define TP_TC_CLKGATE_CNTL_TP_BUSY_EXTEND_SIZE 3
+#define TP_TC_CLKGATE_CNTL_TC_BUSY_EXTEND_SIZE 3
+
+#define TP_TC_CLKGATE_CNTL_TP_BUSY_EXTEND_SHIFT 0
+#define TP_TC_CLKGATE_CNTL_TC_BUSY_EXTEND_SHIFT 3
+
+#define TP_TC_CLKGATE_CNTL_TP_BUSY_EXTEND_MASK 0x00000007
+#define TP_TC_CLKGATE_CNTL_TC_BUSY_EXTEND_MASK 0x00000038
+
+#define TP_TC_CLKGATE_CNTL_MASK \
+ (TP_TC_CLKGATE_CNTL_TP_BUSY_EXTEND_MASK | \
+ TP_TC_CLKGATE_CNTL_TC_BUSY_EXTEND_MASK)
+
+#define TP_TC_CLKGATE_CNTL(tp_busy_extend, tc_busy_extend) \
+ ((tp_busy_extend << TP_TC_CLKGATE_CNTL_TP_BUSY_EXTEND_SHIFT) | \
+ (tc_busy_extend << TP_TC_CLKGATE_CNTL_TC_BUSY_EXTEND_SHIFT))
+
+#define TP_TC_CLKGATE_CNTL_GET_TP_BUSY_EXTEND(tp_tc_clkgate_cntl) \
+ ((tp_tc_clkgate_cntl & TP_TC_CLKGATE_CNTL_TP_BUSY_EXTEND_MASK) >> TP_TC_CLKGATE_CNTL_TP_BUSY_EXTEND_SHIFT)
+#define TP_TC_CLKGATE_CNTL_GET_TC_BUSY_EXTEND(tp_tc_clkgate_cntl) \
+ ((tp_tc_clkgate_cntl & TP_TC_CLKGATE_CNTL_TC_BUSY_EXTEND_MASK) >> TP_TC_CLKGATE_CNTL_TC_BUSY_EXTEND_SHIFT)
+
+#define TP_TC_CLKGATE_CNTL_SET_TP_BUSY_EXTEND(tp_tc_clkgate_cntl_reg, tp_busy_extend) \
+ tp_tc_clkgate_cntl_reg = (tp_tc_clkgate_cntl_reg & ~TP_TC_CLKGATE_CNTL_TP_BUSY_EXTEND_MASK) | (tp_busy_extend << TP_TC_CLKGATE_CNTL_TP_BUSY_EXTEND_SHIFT)
+#define TP_TC_CLKGATE_CNTL_SET_TC_BUSY_EXTEND(tp_tc_clkgate_cntl_reg, tc_busy_extend) \
+ tp_tc_clkgate_cntl_reg = (tp_tc_clkgate_cntl_reg & ~TP_TC_CLKGATE_CNTL_TC_BUSY_EXTEND_MASK) | (tc_busy_extend << TP_TC_CLKGATE_CNTL_TC_BUSY_EXTEND_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tp_tc_clkgate_cntl_t {
+ unsigned int tp_busy_extend : TP_TC_CLKGATE_CNTL_TP_BUSY_EXTEND_SIZE;
+ unsigned int tc_busy_extend : TP_TC_CLKGATE_CNTL_TC_BUSY_EXTEND_SIZE;
+ unsigned int : 26;
+ } tp_tc_clkgate_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tp_tc_clkgate_cntl_t {
+ unsigned int : 26;
+ unsigned int tc_busy_extend : TP_TC_CLKGATE_CNTL_TC_BUSY_EXTEND_SIZE;
+ unsigned int tp_busy_extend : TP_TC_CLKGATE_CNTL_TP_BUSY_EXTEND_SIZE;
+ } tp_tc_clkgate_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tp_tc_clkgate_cntl_t f;
+} tp_tc_clkgate_cntl_u;
+
+
+/*
+ * TPC_CNTL_STATUS struct
+ */
+
+#define TPC_CNTL_STATUS_TPC_INPUT_BUSY_SIZE 1
+#define TPC_CNTL_STATUS_TPC_TC_FIFO_BUSY_SIZE 1
+#define TPC_CNTL_STATUS_TPC_STATE_FIFO_BUSY_SIZE 1
+#define TPC_CNTL_STATUS_TPC_FETCH_FIFO_BUSY_SIZE 1
+#define TPC_CNTL_STATUS_TPC_WALKER_PIPE_BUSY_SIZE 1
+#define TPC_CNTL_STATUS_TPC_WALK_FIFO_BUSY_SIZE 1
+#define TPC_CNTL_STATUS_TPC_WALKER_BUSY_SIZE 1
+#define TPC_CNTL_STATUS_TPC_ALIGNER_PIPE_BUSY_SIZE 1
+#define TPC_CNTL_STATUS_TPC_ALIGN_FIFO_BUSY_SIZE 1
+#define TPC_CNTL_STATUS_TPC_ALIGNER_BUSY_SIZE 1
+#define TPC_CNTL_STATUS_TPC_RR_FIFO_BUSY_SIZE 1
+#define TPC_CNTL_STATUS_TPC_BLEND_PIPE_BUSY_SIZE 1
+#define TPC_CNTL_STATUS_TPC_OUT_FIFO_BUSY_SIZE 1
+#define TPC_CNTL_STATUS_TPC_BLEND_BUSY_SIZE 1
+#define TPC_CNTL_STATUS_TF_TW_RTS_SIZE 1
+#define TPC_CNTL_STATUS_TF_TW_STATE_RTS_SIZE 1
+#define TPC_CNTL_STATUS_TF_TW_RTR_SIZE 1
+#define TPC_CNTL_STATUS_TW_TA_RTS_SIZE 1
+#define TPC_CNTL_STATUS_TW_TA_TT_RTS_SIZE 1
+#define TPC_CNTL_STATUS_TW_TA_LAST_RTS_SIZE 1
+#define TPC_CNTL_STATUS_TW_TA_RTR_SIZE 1
+#define TPC_CNTL_STATUS_TA_TB_RTS_SIZE 1
+#define TPC_CNTL_STATUS_TA_TB_TT_RTS_SIZE 1
+#define TPC_CNTL_STATUS_TA_TB_RTR_SIZE 1
+#define TPC_CNTL_STATUS_TA_TF_RTS_SIZE 1
+#define TPC_CNTL_STATUS_TA_TF_TC_FIFO_REN_SIZE 1
+#define TPC_CNTL_STATUS_TP_SQ_DEC_SIZE 1
+#define TPC_CNTL_STATUS_TPC_BUSY_SIZE 1
+
+#define TPC_CNTL_STATUS_TPC_INPUT_BUSY_SHIFT 0
+#define TPC_CNTL_STATUS_TPC_TC_FIFO_BUSY_SHIFT 1
+#define TPC_CNTL_STATUS_TPC_STATE_FIFO_BUSY_SHIFT 2
+#define TPC_CNTL_STATUS_TPC_FETCH_FIFO_BUSY_SHIFT 3
+#define TPC_CNTL_STATUS_TPC_WALKER_PIPE_BUSY_SHIFT 4
+#define TPC_CNTL_STATUS_TPC_WALK_FIFO_BUSY_SHIFT 5
+#define TPC_CNTL_STATUS_TPC_WALKER_BUSY_SHIFT 6
+#define TPC_CNTL_STATUS_TPC_ALIGNER_PIPE_BUSY_SHIFT 8
+#define TPC_CNTL_STATUS_TPC_ALIGN_FIFO_BUSY_SHIFT 9
+#define TPC_CNTL_STATUS_TPC_ALIGNER_BUSY_SHIFT 10
+#define TPC_CNTL_STATUS_TPC_RR_FIFO_BUSY_SHIFT 12
+#define TPC_CNTL_STATUS_TPC_BLEND_PIPE_BUSY_SHIFT 13
+#define TPC_CNTL_STATUS_TPC_OUT_FIFO_BUSY_SHIFT 14
+#define TPC_CNTL_STATUS_TPC_BLEND_BUSY_SHIFT 15
+#define TPC_CNTL_STATUS_TF_TW_RTS_SHIFT 16
+#define TPC_CNTL_STATUS_TF_TW_STATE_RTS_SHIFT 17
+#define TPC_CNTL_STATUS_TF_TW_RTR_SHIFT 19
+#define TPC_CNTL_STATUS_TW_TA_RTS_SHIFT 20
+#define TPC_CNTL_STATUS_TW_TA_TT_RTS_SHIFT 21
+#define TPC_CNTL_STATUS_TW_TA_LAST_RTS_SHIFT 22
+#define TPC_CNTL_STATUS_TW_TA_RTR_SHIFT 23
+#define TPC_CNTL_STATUS_TA_TB_RTS_SHIFT 24
+#define TPC_CNTL_STATUS_TA_TB_TT_RTS_SHIFT 25
+#define TPC_CNTL_STATUS_TA_TB_RTR_SHIFT 27
+#define TPC_CNTL_STATUS_TA_TF_RTS_SHIFT 28
+#define TPC_CNTL_STATUS_TA_TF_TC_FIFO_REN_SHIFT 29
+#define TPC_CNTL_STATUS_TP_SQ_DEC_SHIFT 30
+#define TPC_CNTL_STATUS_TPC_BUSY_SHIFT 31
+
+#define TPC_CNTL_STATUS_TPC_INPUT_BUSY_MASK 0x00000001
+#define TPC_CNTL_STATUS_TPC_TC_FIFO_BUSY_MASK 0x00000002
+#define TPC_CNTL_STATUS_TPC_STATE_FIFO_BUSY_MASK 0x00000004
+#define TPC_CNTL_STATUS_TPC_FETCH_FIFO_BUSY_MASK 0x00000008
+#define TPC_CNTL_STATUS_TPC_WALKER_PIPE_BUSY_MASK 0x00000010
+#define TPC_CNTL_STATUS_TPC_WALK_FIFO_BUSY_MASK 0x00000020
+#define TPC_CNTL_STATUS_TPC_WALKER_BUSY_MASK 0x00000040
+#define TPC_CNTL_STATUS_TPC_ALIGNER_PIPE_BUSY_MASK 0x00000100
+#define TPC_CNTL_STATUS_TPC_ALIGN_FIFO_BUSY_MASK 0x00000200
+#define TPC_CNTL_STATUS_TPC_ALIGNER_BUSY_MASK 0x00000400
+#define TPC_CNTL_STATUS_TPC_RR_FIFO_BUSY_MASK 0x00001000
+#define TPC_CNTL_STATUS_TPC_BLEND_PIPE_BUSY_MASK 0x00002000
+#define TPC_CNTL_STATUS_TPC_OUT_FIFO_BUSY_MASK 0x00004000
+#define TPC_CNTL_STATUS_TPC_BLEND_BUSY_MASK 0x00008000
+#define TPC_CNTL_STATUS_TF_TW_RTS_MASK 0x00010000
+#define TPC_CNTL_STATUS_TF_TW_STATE_RTS_MASK 0x00020000
+#define TPC_CNTL_STATUS_TF_TW_RTR_MASK 0x00080000
+#define TPC_CNTL_STATUS_TW_TA_RTS_MASK 0x00100000
+#define TPC_CNTL_STATUS_TW_TA_TT_RTS_MASK 0x00200000
+#define TPC_CNTL_STATUS_TW_TA_LAST_RTS_MASK 0x00400000
+#define TPC_CNTL_STATUS_TW_TA_RTR_MASK 0x00800000
+#define TPC_CNTL_STATUS_TA_TB_RTS_MASK 0x01000000
+#define TPC_CNTL_STATUS_TA_TB_TT_RTS_MASK 0x02000000
+#define TPC_CNTL_STATUS_TA_TB_RTR_MASK 0x08000000
+#define TPC_CNTL_STATUS_TA_TF_RTS_MASK 0x10000000
+#define TPC_CNTL_STATUS_TA_TF_TC_FIFO_REN_MASK 0x20000000
+#define TPC_CNTL_STATUS_TP_SQ_DEC_MASK 0x40000000
+#define TPC_CNTL_STATUS_TPC_BUSY_MASK 0x80000000
+
+#define TPC_CNTL_STATUS_MASK \
+ (TPC_CNTL_STATUS_TPC_INPUT_BUSY_MASK | \
+ TPC_CNTL_STATUS_TPC_TC_FIFO_BUSY_MASK | \
+ TPC_CNTL_STATUS_TPC_STATE_FIFO_BUSY_MASK | \
+ TPC_CNTL_STATUS_TPC_FETCH_FIFO_BUSY_MASK | \
+ TPC_CNTL_STATUS_TPC_WALKER_PIPE_BUSY_MASK | \
+ TPC_CNTL_STATUS_TPC_WALK_FIFO_BUSY_MASK | \
+ TPC_CNTL_STATUS_TPC_WALKER_BUSY_MASK | \
+ TPC_CNTL_STATUS_TPC_ALIGNER_PIPE_BUSY_MASK | \
+ TPC_CNTL_STATUS_TPC_ALIGN_FIFO_BUSY_MASK | \
+ TPC_CNTL_STATUS_TPC_ALIGNER_BUSY_MASK | \
+ TPC_CNTL_STATUS_TPC_RR_FIFO_BUSY_MASK | \
+ TPC_CNTL_STATUS_TPC_BLEND_PIPE_BUSY_MASK | \
+ TPC_CNTL_STATUS_TPC_OUT_FIFO_BUSY_MASK | \
+ TPC_CNTL_STATUS_TPC_BLEND_BUSY_MASK | \
+ TPC_CNTL_STATUS_TF_TW_RTS_MASK | \
+ TPC_CNTL_STATUS_TF_TW_STATE_RTS_MASK | \
+ TPC_CNTL_STATUS_TF_TW_RTR_MASK | \
+ TPC_CNTL_STATUS_TW_TA_RTS_MASK | \
+ TPC_CNTL_STATUS_TW_TA_TT_RTS_MASK | \
+ TPC_CNTL_STATUS_TW_TA_LAST_RTS_MASK | \
+ TPC_CNTL_STATUS_TW_TA_RTR_MASK | \
+ TPC_CNTL_STATUS_TA_TB_RTS_MASK | \
+ TPC_CNTL_STATUS_TA_TB_TT_RTS_MASK | \
+ TPC_CNTL_STATUS_TA_TB_RTR_MASK | \
+ TPC_CNTL_STATUS_TA_TF_RTS_MASK | \
+ TPC_CNTL_STATUS_TA_TF_TC_FIFO_REN_MASK | \
+ TPC_CNTL_STATUS_TP_SQ_DEC_MASK | \
+ TPC_CNTL_STATUS_TPC_BUSY_MASK)
+
+#define TPC_CNTL_STATUS(tpc_input_busy, tpc_tc_fifo_busy, tpc_state_fifo_busy, tpc_fetch_fifo_busy, tpc_walker_pipe_busy, tpc_walk_fifo_busy, tpc_walker_busy, tpc_aligner_pipe_busy, tpc_align_fifo_busy, tpc_aligner_busy, tpc_rr_fifo_busy, tpc_blend_pipe_busy, tpc_out_fifo_busy, tpc_blend_busy, tf_tw_rts, tf_tw_state_rts, tf_tw_rtr, tw_ta_rts, tw_ta_tt_rts, tw_ta_last_rts, tw_ta_rtr, ta_tb_rts, ta_tb_tt_rts, ta_tb_rtr, ta_tf_rts, ta_tf_tc_fifo_ren, tp_sq_dec, tpc_busy) \
+ ((tpc_input_busy << TPC_CNTL_STATUS_TPC_INPUT_BUSY_SHIFT) | \
+ (tpc_tc_fifo_busy << TPC_CNTL_STATUS_TPC_TC_FIFO_BUSY_SHIFT) | \
+ (tpc_state_fifo_busy << TPC_CNTL_STATUS_TPC_STATE_FIFO_BUSY_SHIFT) | \
+ (tpc_fetch_fifo_busy << TPC_CNTL_STATUS_TPC_FETCH_FIFO_BUSY_SHIFT) | \
+ (tpc_walker_pipe_busy << TPC_CNTL_STATUS_TPC_WALKER_PIPE_BUSY_SHIFT) | \
+ (tpc_walk_fifo_busy << TPC_CNTL_STATUS_TPC_WALK_FIFO_BUSY_SHIFT) | \
+ (tpc_walker_busy << TPC_CNTL_STATUS_TPC_WALKER_BUSY_SHIFT) | \
+ (tpc_aligner_pipe_busy << TPC_CNTL_STATUS_TPC_ALIGNER_PIPE_BUSY_SHIFT) | \
+ (tpc_align_fifo_busy << TPC_CNTL_STATUS_TPC_ALIGN_FIFO_BUSY_SHIFT) | \
+ (tpc_aligner_busy << TPC_CNTL_STATUS_TPC_ALIGNER_BUSY_SHIFT) | \
+ (tpc_rr_fifo_busy << TPC_CNTL_STATUS_TPC_RR_FIFO_BUSY_SHIFT) | \
+ (tpc_blend_pipe_busy << TPC_CNTL_STATUS_TPC_BLEND_PIPE_BUSY_SHIFT) | \
+ (tpc_out_fifo_busy << TPC_CNTL_STATUS_TPC_OUT_FIFO_BUSY_SHIFT) | \
+ (tpc_blend_busy << TPC_CNTL_STATUS_TPC_BLEND_BUSY_SHIFT) | \
+ (tf_tw_rts << TPC_CNTL_STATUS_TF_TW_RTS_SHIFT) | \
+ (tf_tw_state_rts << TPC_CNTL_STATUS_TF_TW_STATE_RTS_SHIFT) | \
+ (tf_tw_rtr << TPC_CNTL_STATUS_TF_TW_RTR_SHIFT) | \
+ (tw_ta_rts << TPC_CNTL_STATUS_TW_TA_RTS_SHIFT) | \
+ (tw_ta_tt_rts << TPC_CNTL_STATUS_TW_TA_TT_RTS_SHIFT) | \
+ (tw_ta_last_rts << TPC_CNTL_STATUS_TW_TA_LAST_RTS_SHIFT) | \
+ (tw_ta_rtr << TPC_CNTL_STATUS_TW_TA_RTR_SHIFT) | \
+ (ta_tb_rts << TPC_CNTL_STATUS_TA_TB_RTS_SHIFT) | \
+ (ta_tb_tt_rts << TPC_CNTL_STATUS_TA_TB_TT_RTS_SHIFT) | \
+ (ta_tb_rtr << TPC_CNTL_STATUS_TA_TB_RTR_SHIFT) | \
+ (ta_tf_rts << TPC_CNTL_STATUS_TA_TF_RTS_SHIFT) | \
+ (ta_tf_tc_fifo_ren << TPC_CNTL_STATUS_TA_TF_TC_FIFO_REN_SHIFT) | \
+ (tp_sq_dec << TPC_CNTL_STATUS_TP_SQ_DEC_SHIFT) | \
+ (tpc_busy << TPC_CNTL_STATUS_TPC_BUSY_SHIFT))
+
+#define TPC_CNTL_STATUS_GET_TPC_INPUT_BUSY(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TPC_INPUT_BUSY_MASK) >> TPC_CNTL_STATUS_TPC_INPUT_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_GET_TPC_TC_FIFO_BUSY(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TPC_TC_FIFO_BUSY_MASK) >> TPC_CNTL_STATUS_TPC_TC_FIFO_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_GET_TPC_STATE_FIFO_BUSY(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TPC_STATE_FIFO_BUSY_MASK) >> TPC_CNTL_STATUS_TPC_STATE_FIFO_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_GET_TPC_FETCH_FIFO_BUSY(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TPC_FETCH_FIFO_BUSY_MASK) >> TPC_CNTL_STATUS_TPC_FETCH_FIFO_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_GET_TPC_WALKER_PIPE_BUSY(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TPC_WALKER_PIPE_BUSY_MASK) >> TPC_CNTL_STATUS_TPC_WALKER_PIPE_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_GET_TPC_WALK_FIFO_BUSY(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TPC_WALK_FIFO_BUSY_MASK) >> TPC_CNTL_STATUS_TPC_WALK_FIFO_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_GET_TPC_WALKER_BUSY(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TPC_WALKER_BUSY_MASK) >> TPC_CNTL_STATUS_TPC_WALKER_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_GET_TPC_ALIGNER_PIPE_BUSY(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TPC_ALIGNER_PIPE_BUSY_MASK) >> TPC_CNTL_STATUS_TPC_ALIGNER_PIPE_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_GET_TPC_ALIGN_FIFO_BUSY(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TPC_ALIGN_FIFO_BUSY_MASK) >> TPC_CNTL_STATUS_TPC_ALIGN_FIFO_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_GET_TPC_ALIGNER_BUSY(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TPC_ALIGNER_BUSY_MASK) >> TPC_CNTL_STATUS_TPC_ALIGNER_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_GET_TPC_RR_FIFO_BUSY(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TPC_RR_FIFO_BUSY_MASK) >> TPC_CNTL_STATUS_TPC_RR_FIFO_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_GET_TPC_BLEND_PIPE_BUSY(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TPC_BLEND_PIPE_BUSY_MASK) >> TPC_CNTL_STATUS_TPC_BLEND_PIPE_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_GET_TPC_OUT_FIFO_BUSY(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TPC_OUT_FIFO_BUSY_MASK) >> TPC_CNTL_STATUS_TPC_OUT_FIFO_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_GET_TPC_BLEND_BUSY(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TPC_BLEND_BUSY_MASK) >> TPC_CNTL_STATUS_TPC_BLEND_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_GET_TF_TW_RTS(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TF_TW_RTS_MASK) >> TPC_CNTL_STATUS_TF_TW_RTS_SHIFT)
+#define TPC_CNTL_STATUS_GET_TF_TW_STATE_RTS(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TF_TW_STATE_RTS_MASK) >> TPC_CNTL_STATUS_TF_TW_STATE_RTS_SHIFT)
+#define TPC_CNTL_STATUS_GET_TF_TW_RTR(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TF_TW_RTR_MASK) >> TPC_CNTL_STATUS_TF_TW_RTR_SHIFT)
+#define TPC_CNTL_STATUS_GET_TW_TA_RTS(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TW_TA_RTS_MASK) >> TPC_CNTL_STATUS_TW_TA_RTS_SHIFT)
+#define TPC_CNTL_STATUS_GET_TW_TA_TT_RTS(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TW_TA_TT_RTS_MASK) >> TPC_CNTL_STATUS_TW_TA_TT_RTS_SHIFT)
+#define TPC_CNTL_STATUS_GET_TW_TA_LAST_RTS(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TW_TA_LAST_RTS_MASK) >> TPC_CNTL_STATUS_TW_TA_LAST_RTS_SHIFT)
+#define TPC_CNTL_STATUS_GET_TW_TA_RTR(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TW_TA_RTR_MASK) >> TPC_CNTL_STATUS_TW_TA_RTR_SHIFT)
+#define TPC_CNTL_STATUS_GET_TA_TB_RTS(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TA_TB_RTS_MASK) >> TPC_CNTL_STATUS_TA_TB_RTS_SHIFT)
+#define TPC_CNTL_STATUS_GET_TA_TB_TT_RTS(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TA_TB_TT_RTS_MASK) >> TPC_CNTL_STATUS_TA_TB_TT_RTS_SHIFT)
+#define TPC_CNTL_STATUS_GET_TA_TB_RTR(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TA_TB_RTR_MASK) >> TPC_CNTL_STATUS_TA_TB_RTR_SHIFT)
+#define TPC_CNTL_STATUS_GET_TA_TF_RTS(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TA_TF_RTS_MASK) >> TPC_CNTL_STATUS_TA_TF_RTS_SHIFT)
+#define TPC_CNTL_STATUS_GET_TA_TF_TC_FIFO_REN(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TA_TF_TC_FIFO_REN_MASK) >> TPC_CNTL_STATUS_TA_TF_TC_FIFO_REN_SHIFT)
+#define TPC_CNTL_STATUS_GET_TP_SQ_DEC(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TP_SQ_DEC_MASK) >> TPC_CNTL_STATUS_TP_SQ_DEC_SHIFT)
+#define TPC_CNTL_STATUS_GET_TPC_BUSY(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TPC_BUSY_MASK) >> TPC_CNTL_STATUS_TPC_BUSY_SHIFT)
+
+#define TPC_CNTL_STATUS_SET_TPC_INPUT_BUSY(tpc_cntl_status_reg, tpc_input_busy) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TPC_INPUT_BUSY_MASK) | (tpc_input_busy << TPC_CNTL_STATUS_TPC_INPUT_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_SET_TPC_TC_FIFO_BUSY(tpc_cntl_status_reg, tpc_tc_fifo_busy) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TPC_TC_FIFO_BUSY_MASK) | (tpc_tc_fifo_busy << TPC_CNTL_STATUS_TPC_TC_FIFO_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_SET_TPC_STATE_FIFO_BUSY(tpc_cntl_status_reg, tpc_state_fifo_busy) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TPC_STATE_FIFO_BUSY_MASK) | (tpc_state_fifo_busy << TPC_CNTL_STATUS_TPC_STATE_FIFO_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_SET_TPC_FETCH_FIFO_BUSY(tpc_cntl_status_reg, tpc_fetch_fifo_busy) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TPC_FETCH_FIFO_BUSY_MASK) | (tpc_fetch_fifo_busy << TPC_CNTL_STATUS_TPC_FETCH_FIFO_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_SET_TPC_WALKER_PIPE_BUSY(tpc_cntl_status_reg, tpc_walker_pipe_busy) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TPC_WALKER_PIPE_BUSY_MASK) | (tpc_walker_pipe_busy << TPC_CNTL_STATUS_TPC_WALKER_PIPE_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_SET_TPC_WALK_FIFO_BUSY(tpc_cntl_status_reg, tpc_walk_fifo_busy) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TPC_WALK_FIFO_BUSY_MASK) | (tpc_walk_fifo_busy << TPC_CNTL_STATUS_TPC_WALK_FIFO_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_SET_TPC_WALKER_BUSY(tpc_cntl_status_reg, tpc_walker_busy) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TPC_WALKER_BUSY_MASK) | (tpc_walker_busy << TPC_CNTL_STATUS_TPC_WALKER_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_SET_TPC_ALIGNER_PIPE_BUSY(tpc_cntl_status_reg, tpc_aligner_pipe_busy) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TPC_ALIGNER_PIPE_BUSY_MASK) | (tpc_aligner_pipe_busy << TPC_CNTL_STATUS_TPC_ALIGNER_PIPE_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_SET_TPC_ALIGN_FIFO_BUSY(tpc_cntl_status_reg, tpc_align_fifo_busy) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TPC_ALIGN_FIFO_BUSY_MASK) | (tpc_align_fifo_busy << TPC_CNTL_STATUS_TPC_ALIGN_FIFO_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_SET_TPC_ALIGNER_BUSY(tpc_cntl_status_reg, tpc_aligner_busy) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TPC_ALIGNER_BUSY_MASK) | (tpc_aligner_busy << TPC_CNTL_STATUS_TPC_ALIGNER_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_SET_TPC_RR_FIFO_BUSY(tpc_cntl_status_reg, tpc_rr_fifo_busy) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TPC_RR_FIFO_BUSY_MASK) | (tpc_rr_fifo_busy << TPC_CNTL_STATUS_TPC_RR_FIFO_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_SET_TPC_BLEND_PIPE_BUSY(tpc_cntl_status_reg, tpc_blend_pipe_busy) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TPC_BLEND_PIPE_BUSY_MASK) | (tpc_blend_pipe_busy << TPC_CNTL_STATUS_TPC_BLEND_PIPE_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_SET_TPC_OUT_FIFO_BUSY(tpc_cntl_status_reg, tpc_out_fifo_busy) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TPC_OUT_FIFO_BUSY_MASK) | (tpc_out_fifo_busy << TPC_CNTL_STATUS_TPC_OUT_FIFO_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_SET_TPC_BLEND_BUSY(tpc_cntl_status_reg, tpc_blend_busy) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TPC_BLEND_BUSY_MASK) | (tpc_blend_busy << TPC_CNTL_STATUS_TPC_BLEND_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_SET_TF_TW_RTS(tpc_cntl_status_reg, tf_tw_rts) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TF_TW_RTS_MASK) | (tf_tw_rts << TPC_CNTL_STATUS_TF_TW_RTS_SHIFT)
+#define TPC_CNTL_STATUS_SET_TF_TW_STATE_RTS(tpc_cntl_status_reg, tf_tw_state_rts) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TF_TW_STATE_RTS_MASK) | (tf_tw_state_rts << TPC_CNTL_STATUS_TF_TW_STATE_RTS_SHIFT)
+#define TPC_CNTL_STATUS_SET_TF_TW_RTR(tpc_cntl_status_reg, tf_tw_rtr) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TF_TW_RTR_MASK) | (tf_tw_rtr << TPC_CNTL_STATUS_TF_TW_RTR_SHIFT)
+#define TPC_CNTL_STATUS_SET_TW_TA_RTS(tpc_cntl_status_reg, tw_ta_rts) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TW_TA_RTS_MASK) | (tw_ta_rts << TPC_CNTL_STATUS_TW_TA_RTS_SHIFT)
+#define TPC_CNTL_STATUS_SET_TW_TA_TT_RTS(tpc_cntl_status_reg, tw_ta_tt_rts) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TW_TA_TT_RTS_MASK) | (tw_ta_tt_rts << TPC_CNTL_STATUS_TW_TA_TT_RTS_SHIFT)
+#define TPC_CNTL_STATUS_SET_TW_TA_LAST_RTS(tpc_cntl_status_reg, tw_ta_last_rts) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TW_TA_LAST_RTS_MASK) | (tw_ta_last_rts << TPC_CNTL_STATUS_TW_TA_LAST_RTS_SHIFT)
+#define TPC_CNTL_STATUS_SET_TW_TA_RTR(tpc_cntl_status_reg, tw_ta_rtr) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TW_TA_RTR_MASK) | (tw_ta_rtr << TPC_CNTL_STATUS_TW_TA_RTR_SHIFT)
+#define TPC_CNTL_STATUS_SET_TA_TB_RTS(tpc_cntl_status_reg, ta_tb_rts) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TA_TB_RTS_MASK) | (ta_tb_rts << TPC_CNTL_STATUS_TA_TB_RTS_SHIFT)
+#define TPC_CNTL_STATUS_SET_TA_TB_TT_RTS(tpc_cntl_status_reg, ta_tb_tt_rts) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TA_TB_TT_RTS_MASK) | (ta_tb_tt_rts << TPC_CNTL_STATUS_TA_TB_TT_RTS_SHIFT)
+#define TPC_CNTL_STATUS_SET_TA_TB_RTR(tpc_cntl_status_reg, ta_tb_rtr) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TA_TB_RTR_MASK) | (ta_tb_rtr << TPC_CNTL_STATUS_TA_TB_RTR_SHIFT)
+#define TPC_CNTL_STATUS_SET_TA_TF_RTS(tpc_cntl_status_reg, ta_tf_rts) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TA_TF_RTS_MASK) | (ta_tf_rts << TPC_CNTL_STATUS_TA_TF_RTS_SHIFT)
+#define TPC_CNTL_STATUS_SET_TA_TF_TC_FIFO_REN(tpc_cntl_status_reg, ta_tf_tc_fifo_ren) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TA_TF_TC_FIFO_REN_MASK) | (ta_tf_tc_fifo_ren << TPC_CNTL_STATUS_TA_TF_TC_FIFO_REN_SHIFT)
+#define TPC_CNTL_STATUS_SET_TP_SQ_DEC(tpc_cntl_status_reg, tp_sq_dec) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TP_SQ_DEC_MASK) | (tp_sq_dec << TPC_CNTL_STATUS_TP_SQ_DEC_SHIFT)
+#define TPC_CNTL_STATUS_SET_TPC_BUSY(tpc_cntl_status_reg, tpc_busy) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TPC_BUSY_MASK) | (tpc_busy << TPC_CNTL_STATUS_TPC_BUSY_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tpc_cntl_status_t {
+ unsigned int tpc_input_busy : TPC_CNTL_STATUS_TPC_INPUT_BUSY_SIZE;
+ unsigned int tpc_tc_fifo_busy : TPC_CNTL_STATUS_TPC_TC_FIFO_BUSY_SIZE;
+ unsigned int tpc_state_fifo_busy : TPC_CNTL_STATUS_TPC_STATE_FIFO_BUSY_SIZE;
+ unsigned int tpc_fetch_fifo_busy : TPC_CNTL_STATUS_TPC_FETCH_FIFO_BUSY_SIZE;
+ unsigned int tpc_walker_pipe_busy : TPC_CNTL_STATUS_TPC_WALKER_PIPE_BUSY_SIZE;
+ unsigned int tpc_walk_fifo_busy : TPC_CNTL_STATUS_TPC_WALK_FIFO_BUSY_SIZE;
+ unsigned int tpc_walker_busy : TPC_CNTL_STATUS_TPC_WALKER_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int tpc_aligner_pipe_busy : TPC_CNTL_STATUS_TPC_ALIGNER_PIPE_BUSY_SIZE;
+ unsigned int tpc_align_fifo_busy : TPC_CNTL_STATUS_TPC_ALIGN_FIFO_BUSY_SIZE;
+ unsigned int tpc_aligner_busy : TPC_CNTL_STATUS_TPC_ALIGNER_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int tpc_rr_fifo_busy : TPC_CNTL_STATUS_TPC_RR_FIFO_BUSY_SIZE;
+ unsigned int tpc_blend_pipe_busy : TPC_CNTL_STATUS_TPC_BLEND_PIPE_BUSY_SIZE;
+ unsigned int tpc_out_fifo_busy : TPC_CNTL_STATUS_TPC_OUT_FIFO_BUSY_SIZE;
+ unsigned int tpc_blend_busy : TPC_CNTL_STATUS_TPC_BLEND_BUSY_SIZE;
+ unsigned int tf_tw_rts : TPC_CNTL_STATUS_TF_TW_RTS_SIZE;
+ unsigned int tf_tw_state_rts : TPC_CNTL_STATUS_TF_TW_STATE_RTS_SIZE;
+ unsigned int : 1;
+ unsigned int tf_tw_rtr : TPC_CNTL_STATUS_TF_TW_RTR_SIZE;
+ unsigned int tw_ta_rts : TPC_CNTL_STATUS_TW_TA_RTS_SIZE;
+ unsigned int tw_ta_tt_rts : TPC_CNTL_STATUS_TW_TA_TT_RTS_SIZE;
+ unsigned int tw_ta_last_rts : TPC_CNTL_STATUS_TW_TA_LAST_RTS_SIZE;
+ unsigned int tw_ta_rtr : TPC_CNTL_STATUS_TW_TA_RTR_SIZE;
+ unsigned int ta_tb_rts : TPC_CNTL_STATUS_TA_TB_RTS_SIZE;
+ unsigned int ta_tb_tt_rts : TPC_CNTL_STATUS_TA_TB_TT_RTS_SIZE;
+ unsigned int : 1;
+ unsigned int ta_tb_rtr : TPC_CNTL_STATUS_TA_TB_RTR_SIZE;
+ unsigned int ta_tf_rts : TPC_CNTL_STATUS_TA_TF_RTS_SIZE;
+ unsigned int ta_tf_tc_fifo_ren : TPC_CNTL_STATUS_TA_TF_TC_FIFO_REN_SIZE;
+ unsigned int tp_sq_dec : TPC_CNTL_STATUS_TP_SQ_DEC_SIZE;
+ unsigned int tpc_busy : TPC_CNTL_STATUS_TPC_BUSY_SIZE;
+ } tpc_cntl_status_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tpc_cntl_status_t {
+ unsigned int tpc_busy : TPC_CNTL_STATUS_TPC_BUSY_SIZE;
+ unsigned int tp_sq_dec : TPC_CNTL_STATUS_TP_SQ_DEC_SIZE;
+ unsigned int ta_tf_tc_fifo_ren : TPC_CNTL_STATUS_TA_TF_TC_FIFO_REN_SIZE;
+ unsigned int ta_tf_rts : TPC_CNTL_STATUS_TA_TF_RTS_SIZE;
+ unsigned int ta_tb_rtr : TPC_CNTL_STATUS_TA_TB_RTR_SIZE;
+ unsigned int : 1;
+ unsigned int ta_tb_tt_rts : TPC_CNTL_STATUS_TA_TB_TT_RTS_SIZE;
+ unsigned int ta_tb_rts : TPC_CNTL_STATUS_TA_TB_RTS_SIZE;
+ unsigned int tw_ta_rtr : TPC_CNTL_STATUS_TW_TA_RTR_SIZE;
+ unsigned int tw_ta_last_rts : TPC_CNTL_STATUS_TW_TA_LAST_RTS_SIZE;
+ unsigned int tw_ta_tt_rts : TPC_CNTL_STATUS_TW_TA_TT_RTS_SIZE;
+ unsigned int tw_ta_rts : TPC_CNTL_STATUS_TW_TA_RTS_SIZE;
+ unsigned int tf_tw_rtr : TPC_CNTL_STATUS_TF_TW_RTR_SIZE;
+ unsigned int : 1;
+ unsigned int tf_tw_state_rts : TPC_CNTL_STATUS_TF_TW_STATE_RTS_SIZE;
+ unsigned int tf_tw_rts : TPC_CNTL_STATUS_TF_TW_RTS_SIZE;
+ unsigned int tpc_blend_busy : TPC_CNTL_STATUS_TPC_BLEND_BUSY_SIZE;
+ unsigned int tpc_out_fifo_busy : TPC_CNTL_STATUS_TPC_OUT_FIFO_BUSY_SIZE;
+ unsigned int tpc_blend_pipe_busy : TPC_CNTL_STATUS_TPC_BLEND_PIPE_BUSY_SIZE;
+ unsigned int tpc_rr_fifo_busy : TPC_CNTL_STATUS_TPC_RR_FIFO_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int tpc_aligner_busy : TPC_CNTL_STATUS_TPC_ALIGNER_BUSY_SIZE;
+ unsigned int tpc_align_fifo_busy : TPC_CNTL_STATUS_TPC_ALIGN_FIFO_BUSY_SIZE;
+ unsigned int tpc_aligner_pipe_busy : TPC_CNTL_STATUS_TPC_ALIGNER_PIPE_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int tpc_walker_busy : TPC_CNTL_STATUS_TPC_WALKER_BUSY_SIZE;
+ unsigned int tpc_walk_fifo_busy : TPC_CNTL_STATUS_TPC_WALK_FIFO_BUSY_SIZE;
+ unsigned int tpc_walker_pipe_busy : TPC_CNTL_STATUS_TPC_WALKER_PIPE_BUSY_SIZE;
+ unsigned int tpc_fetch_fifo_busy : TPC_CNTL_STATUS_TPC_FETCH_FIFO_BUSY_SIZE;
+ unsigned int tpc_state_fifo_busy : TPC_CNTL_STATUS_TPC_STATE_FIFO_BUSY_SIZE;
+ unsigned int tpc_tc_fifo_busy : TPC_CNTL_STATUS_TPC_TC_FIFO_BUSY_SIZE;
+ unsigned int tpc_input_busy : TPC_CNTL_STATUS_TPC_INPUT_BUSY_SIZE;
+ } tpc_cntl_status_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tpc_cntl_status_t f;
+} tpc_cntl_status_u;
+
+
+/*
+ * TPC_DEBUG0 struct
+ */
+
+#define TPC_DEBUG0_LOD_CNTL_SIZE 2
+#define TPC_DEBUG0_IC_CTR_SIZE 2
+#define TPC_DEBUG0_WALKER_CNTL_SIZE 4
+#define TPC_DEBUG0_ALIGNER_CNTL_SIZE 3
+#define TPC_DEBUG0_PREV_TC_STATE_VALID_SIZE 1
+#define TPC_DEBUG0_WALKER_STATE_SIZE 10
+#define TPC_DEBUG0_ALIGNER_STATE_SIZE 2
+#define TPC_DEBUG0_REG_CLK_EN_SIZE 1
+#define TPC_DEBUG0_TPC_CLK_EN_SIZE 1
+#define TPC_DEBUG0_SQ_TP_WAKEUP_SIZE 1
+
+#define TPC_DEBUG0_LOD_CNTL_SHIFT 0
+#define TPC_DEBUG0_IC_CTR_SHIFT 2
+#define TPC_DEBUG0_WALKER_CNTL_SHIFT 4
+#define TPC_DEBUG0_ALIGNER_CNTL_SHIFT 8
+#define TPC_DEBUG0_PREV_TC_STATE_VALID_SHIFT 12
+#define TPC_DEBUG0_WALKER_STATE_SHIFT 16
+#define TPC_DEBUG0_ALIGNER_STATE_SHIFT 26
+#define TPC_DEBUG0_REG_CLK_EN_SHIFT 29
+#define TPC_DEBUG0_TPC_CLK_EN_SHIFT 30
+#define TPC_DEBUG0_SQ_TP_WAKEUP_SHIFT 31
+
+#define TPC_DEBUG0_LOD_CNTL_MASK 0x00000003
+#define TPC_DEBUG0_IC_CTR_MASK 0x0000000c
+#define TPC_DEBUG0_WALKER_CNTL_MASK 0x000000f0
+#define TPC_DEBUG0_ALIGNER_CNTL_MASK 0x00000700
+#define TPC_DEBUG0_PREV_TC_STATE_VALID_MASK 0x00001000
+#define TPC_DEBUG0_WALKER_STATE_MASK 0x03ff0000
+#define TPC_DEBUG0_ALIGNER_STATE_MASK 0x0c000000
+#define TPC_DEBUG0_REG_CLK_EN_MASK 0x20000000
+#define TPC_DEBUG0_TPC_CLK_EN_MASK 0x40000000
+#define TPC_DEBUG0_SQ_TP_WAKEUP_MASK 0x80000000
+
+#define TPC_DEBUG0_MASK \
+ (TPC_DEBUG0_LOD_CNTL_MASK | \
+ TPC_DEBUG0_IC_CTR_MASK | \
+ TPC_DEBUG0_WALKER_CNTL_MASK | \
+ TPC_DEBUG0_ALIGNER_CNTL_MASK | \
+ TPC_DEBUG0_PREV_TC_STATE_VALID_MASK | \
+ TPC_DEBUG0_WALKER_STATE_MASK | \
+ TPC_DEBUG0_ALIGNER_STATE_MASK | \
+ TPC_DEBUG0_REG_CLK_EN_MASK | \
+ TPC_DEBUG0_TPC_CLK_EN_MASK | \
+ TPC_DEBUG0_SQ_TP_WAKEUP_MASK)
+
+#define TPC_DEBUG0(lod_cntl, ic_ctr, walker_cntl, aligner_cntl, prev_tc_state_valid, walker_state, aligner_state, reg_clk_en, tpc_clk_en, sq_tp_wakeup) \
+ ((lod_cntl << TPC_DEBUG0_LOD_CNTL_SHIFT) | \
+ (ic_ctr << TPC_DEBUG0_IC_CTR_SHIFT) | \
+ (walker_cntl << TPC_DEBUG0_WALKER_CNTL_SHIFT) | \
+ (aligner_cntl << TPC_DEBUG0_ALIGNER_CNTL_SHIFT) | \
+ (prev_tc_state_valid << TPC_DEBUG0_PREV_TC_STATE_VALID_SHIFT) | \
+ (walker_state << TPC_DEBUG0_WALKER_STATE_SHIFT) | \
+ (aligner_state << TPC_DEBUG0_ALIGNER_STATE_SHIFT) | \
+ (reg_clk_en << TPC_DEBUG0_REG_CLK_EN_SHIFT) | \
+ (tpc_clk_en << TPC_DEBUG0_TPC_CLK_EN_SHIFT) | \
+ (sq_tp_wakeup << TPC_DEBUG0_SQ_TP_WAKEUP_SHIFT))
+
+#define TPC_DEBUG0_GET_LOD_CNTL(tpc_debug0) \
+ ((tpc_debug0 & TPC_DEBUG0_LOD_CNTL_MASK) >> TPC_DEBUG0_LOD_CNTL_SHIFT)
+#define TPC_DEBUG0_GET_IC_CTR(tpc_debug0) \
+ ((tpc_debug0 & TPC_DEBUG0_IC_CTR_MASK) >> TPC_DEBUG0_IC_CTR_SHIFT)
+#define TPC_DEBUG0_GET_WALKER_CNTL(tpc_debug0) \
+ ((tpc_debug0 & TPC_DEBUG0_WALKER_CNTL_MASK) >> TPC_DEBUG0_WALKER_CNTL_SHIFT)
+#define TPC_DEBUG0_GET_ALIGNER_CNTL(tpc_debug0) \
+ ((tpc_debug0 & TPC_DEBUG0_ALIGNER_CNTL_MASK) >> TPC_DEBUG0_ALIGNER_CNTL_SHIFT)
+#define TPC_DEBUG0_GET_PREV_TC_STATE_VALID(tpc_debug0) \
+ ((tpc_debug0 & TPC_DEBUG0_PREV_TC_STATE_VALID_MASK) >> TPC_DEBUG0_PREV_TC_STATE_VALID_SHIFT)
+#define TPC_DEBUG0_GET_WALKER_STATE(tpc_debug0) \
+ ((tpc_debug0 & TPC_DEBUG0_WALKER_STATE_MASK) >> TPC_DEBUG0_WALKER_STATE_SHIFT)
+#define TPC_DEBUG0_GET_ALIGNER_STATE(tpc_debug0) \
+ ((tpc_debug0 & TPC_DEBUG0_ALIGNER_STATE_MASK) >> TPC_DEBUG0_ALIGNER_STATE_SHIFT)
+#define TPC_DEBUG0_GET_REG_CLK_EN(tpc_debug0) \
+ ((tpc_debug0 & TPC_DEBUG0_REG_CLK_EN_MASK) >> TPC_DEBUG0_REG_CLK_EN_SHIFT)
+#define TPC_DEBUG0_GET_TPC_CLK_EN(tpc_debug0) \
+ ((tpc_debug0 & TPC_DEBUG0_TPC_CLK_EN_MASK) >> TPC_DEBUG0_TPC_CLK_EN_SHIFT)
+#define TPC_DEBUG0_GET_SQ_TP_WAKEUP(tpc_debug0) \
+ ((tpc_debug0 & TPC_DEBUG0_SQ_TP_WAKEUP_MASK) >> TPC_DEBUG0_SQ_TP_WAKEUP_SHIFT)
+
+#define TPC_DEBUG0_SET_LOD_CNTL(tpc_debug0_reg, lod_cntl) \
+ tpc_debug0_reg = (tpc_debug0_reg & ~TPC_DEBUG0_LOD_CNTL_MASK) | (lod_cntl << TPC_DEBUG0_LOD_CNTL_SHIFT)
+#define TPC_DEBUG0_SET_IC_CTR(tpc_debug0_reg, ic_ctr) \
+ tpc_debug0_reg = (tpc_debug0_reg & ~TPC_DEBUG0_IC_CTR_MASK) | (ic_ctr << TPC_DEBUG0_IC_CTR_SHIFT)
+#define TPC_DEBUG0_SET_WALKER_CNTL(tpc_debug0_reg, walker_cntl) \
+ tpc_debug0_reg = (tpc_debug0_reg & ~TPC_DEBUG0_WALKER_CNTL_MASK) | (walker_cntl << TPC_DEBUG0_WALKER_CNTL_SHIFT)
+#define TPC_DEBUG0_SET_ALIGNER_CNTL(tpc_debug0_reg, aligner_cntl) \
+ tpc_debug0_reg = (tpc_debug0_reg & ~TPC_DEBUG0_ALIGNER_CNTL_MASK) | (aligner_cntl << TPC_DEBUG0_ALIGNER_CNTL_SHIFT)
+#define TPC_DEBUG0_SET_PREV_TC_STATE_VALID(tpc_debug0_reg, prev_tc_state_valid) \
+ tpc_debug0_reg = (tpc_debug0_reg & ~TPC_DEBUG0_PREV_TC_STATE_VALID_MASK) | (prev_tc_state_valid << TPC_DEBUG0_PREV_TC_STATE_VALID_SHIFT)
+#define TPC_DEBUG0_SET_WALKER_STATE(tpc_debug0_reg, walker_state) \
+ tpc_debug0_reg = (tpc_debug0_reg & ~TPC_DEBUG0_WALKER_STATE_MASK) | (walker_state << TPC_DEBUG0_WALKER_STATE_SHIFT)
+#define TPC_DEBUG0_SET_ALIGNER_STATE(tpc_debug0_reg, aligner_state) \
+ tpc_debug0_reg = (tpc_debug0_reg & ~TPC_DEBUG0_ALIGNER_STATE_MASK) | (aligner_state << TPC_DEBUG0_ALIGNER_STATE_SHIFT)
+#define TPC_DEBUG0_SET_REG_CLK_EN(tpc_debug0_reg, reg_clk_en) \
+ tpc_debug0_reg = (tpc_debug0_reg & ~TPC_DEBUG0_REG_CLK_EN_MASK) | (reg_clk_en << TPC_DEBUG0_REG_CLK_EN_SHIFT)
+#define TPC_DEBUG0_SET_TPC_CLK_EN(tpc_debug0_reg, tpc_clk_en) \
+ tpc_debug0_reg = (tpc_debug0_reg & ~TPC_DEBUG0_TPC_CLK_EN_MASK) | (tpc_clk_en << TPC_DEBUG0_TPC_CLK_EN_SHIFT)
+#define TPC_DEBUG0_SET_SQ_TP_WAKEUP(tpc_debug0_reg, sq_tp_wakeup) \
+ tpc_debug0_reg = (tpc_debug0_reg & ~TPC_DEBUG0_SQ_TP_WAKEUP_MASK) | (sq_tp_wakeup << TPC_DEBUG0_SQ_TP_WAKEUP_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tpc_debug0_t {
+ unsigned int lod_cntl : TPC_DEBUG0_LOD_CNTL_SIZE;
+ unsigned int ic_ctr : TPC_DEBUG0_IC_CTR_SIZE;
+ unsigned int walker_cntl : TPC_DEBUG0_WALKER_CNTL_SIZE;
+ unsigned int aligner_cntl : TPC_DEBUG0_ALIGNER_CNTL_SIZE;
+ unsigned int : 1;
+ unsigned int prev_tc_state_valid : TPC_DEBUG0_PREV_TC_STATE_VALID_SIZE;
+ unsigned int : 3;
+ unsigned int walker_state : TPC_DEBUG0_WALKER_STATE_SIZE;
+ unsigned int aligner_state : TPC_DEBUG0_ALIGNER_STATE_SIZE;
+ unsigned int : 1;
+ unsigned int reg_clk_en : TPC_DEBUG0_REG_CLK_EN_SIZE;
+ unsigned int tpc_clk_en : TPC_DEBUG0_TPC_CLK_EN_SIZE;
+ unsigned int sq_tp_wakeup : TPC_DEBUG0_SQ_TP_WAKEUP_SIZE;
+ } tpc_debug0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tpc_debug0_t {
+ unsigned int sq_tp_wakeup : TPC_DEBUG0_SQ_TP_WAKEUP_SIZE;
+ unsigned int tpc_clk_en : TPC_DEBUG0_TPC_CLK_EN_SIZE;
+ unsigned int reg_clk_en : TPC_DEBUG0_REG_CLK_EN_SIZE;
+ unsigned int : 1;
+ unsigned int aligner_state : TPC_DEBUG0_ALIGNER_STATE_SIZE;
+ unsigned int walker_state : TPC_DEBUG0_WALKER_STATE_SIZE;
+ unsigned int : 3;
+ unsigned int prev_tc_state_valid : TPC_DEBUG0_PREV_TC_STATE_VALID_SIZE;
+ unsigned int : 1;
+ unsigned int aligner_cntl : TPC_DEBUG0_ALIGNER_CNTL_SIZE;
+ unsigned int walker_cntl : TPC_DEBUG0_WALKER_CNTL_SIZE;
+ unsigned int ic_ctr : TPC_DEBUG0_IC_CTR_SIZE;
+ unsigned int lod_cntl : TPC_DEBUG0_LOD_CNTL_SIZE;
+ } tpc_debug0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tpc_debug0_t f;
+} tpc_debug0_u;
+
+
+/*
+ * TPC_DEBUG1 struct
+ */
+
+#define TPC_DEBUG1_UNUSED_SIZE 1
+
+#define TPC_DEBUG1_UNUSED_SHIFT 0
+
+#define TPC_DEBUG1_UNUSED_MASK 0x00000001
+
+#define TPC_DEBUG1_MASK \
+ (TPC_DEBUG1_UNUSED_MASK)
+
+#define TPC_DEBUG1(unused) \
+ ((unused << TPC_DEBUG1_UNUSED_SHIFT))
+
+#define TPC_DEBUG1_GET_UNUSED(tpc_debug1) \
+ ((tpc_debug1 & TPC_DEBUG1_UNUSED_MASK) >> TPC_DEBUG1_UNUSED_SHIFT)
+
+#define TPC_DEBUG1_SET_UNUSED(tpc_debug1_reg, unused) \
+ tpc_debug1_reg = (tpc_debug1_reg & ~TPC_DEBUG1_UNUSED_MASK) | (unused << TPC_DEBUG1_UNUSED_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tpc_debug1_t {
+ unsigned int unused : TPC_DEBUG1_UNUSED_SIZE;
+ unsigned int : 31;
+ } tpc_debug1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tpc_debug1_t {
+ unsigned int : 31;
+ unsigned int unused : TPC_DEBUG1_UNUSED_SIZE;
+ } tpc_debug1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tpc_debug1_t f;
+} tpc_debug1_u;
+
+
+/*
+ * TPC_CHICKEN struct
+ */
+
+#define TPC_CHICKEN_BLEND_PRECISION_SIZE 1
+#define TPC_CHICKEN_SPARE_SIZE 31
+
+#define TPC_CHICKEN_BLEND_PRECISION_SHIFT 0
+#define TPC_CHICKEN_SPARE_SHIFT 1
+
+#define TPC_CHICKEN_BLEND_PRECISION_MASK 0x00000001
+#define TPC_CHICKEN_SPARE_MASK 0xfffffffe
+
+#define TPC_CHICKEN_MASK \
+ (TPC_CHICKEN_BLEND_PRECISION_MASK | \
+ TPC_CHICKEN_SPARE_MASK)
+
+#define TPC_CHICKEN(blend_precision, spare) \
+ ((blend_precision << TPC_CHICKEN_BLEND_PRECISION_SHIFT) | \
+ (spare << TPC_CHICKEN_SPARE_SHIFT))
+
+#define TPC_CHICKEN_GET_BLEND_PRECISION(tpc_chicken) \
+ ((tpc_chicken & TPC_CHICKEN_BLEND_PRECISION_MASK) >> TPC_CHICKEN_BLEND_PRECISION_SHIFT)
+#define TPC_CHICKEN_GET_SPARE(tpc_chicken) \
+ ((tpc_chicken & TPC_CHICKEN_SPARE_MASK) >> TPC_CHICKEN_SPARE_SHIFT)
+
+#define TPC_CHICKEN_SET_BLEND_PRECISION(tpc_chicken_reg, blend_precision) \
+ tpc_chicken_reg = (tpc_chicken_reg & ~TPC_CHICKEN_BLEND_PRECISION_MASK) | (blend_precision << TPC_CHICKEN_BLEND_PRECISION_SHIFT)
+#define TPC_CHICKEN_SET_SPARE(tpc_chicken_reg, spare) \
+ tpc_chicken_reg = (tpc_chicken_reg & ~TPC_CHICKEN_SPARE_MASK) | (spare << TPC_CHICKEN_SPARE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tpc_chicken_t {
+ unsigned int blend_precision : TPC_CHICKEN_BLEND_PRECISION_SIZE;
+ unsigned int spare : TPC_CHICKEN_SPARE_SIZE;
+ } tpc_chicken_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tpc_chicken_t {
+ unsigned int spare : TPC_CHICKEN_SPARE_SIZE;
+ unsigned int blend_precision : TPC_CHICKEN_BLEND_PRECISION_SIZE;
+ } tpc_chicken_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tpc_chicken_t f;
+} tpc_chicken_u;
+
+
+/*
+ * TP0_CNTL_STATUS struct
+ */
+
+#define TP0_CNTL_STATUS_TP_INPUT_BUSY_SIZE 1
+#define TP0_CNTL_STATUS_TP_LOD_BUSY_SIZE 1
+#define TP0_CNTL_STATUS_TP_LOD_FIFO_BUSY_SIZE 1
+#define TP0_CNTL_STATUS_TP_ADDR_BUSY_SIZE 1
+#define TP0_CNTL_STATUS_TP_ALIGN_FIFO_BUSY_SIZE 1
+#define TP0_CNTL_STATUS_TP_ALIGNER_BUSY_SIZE 1
+#define TP0_CNTL_STATUS_TP_TC_FIFO_BUSY_SIZE 1
+#define TP0_CNTL_STATUS_TP_RR_FIFO_BUSY_SIZE 1
+#define TP0_CNTL_STATUS_TP_FETCH_BUSY_SIZE 1
+#define TP0_CNTL_STATUS_TP_CH_BLEND_BUSY_SIZE 1
+#define TP0_CNTL_STATUS_TP_TT_BUSY_SIZE 1
+#define TP0_CNTL_STATUS_TP_HICOLOR_BUSY_SIZE 1
+#define TP0_CNTL_STATUS_TP_BLEND_BUSY_SIZE 1
+#define TP0_CNTL_STATUS_TP_OUT_FIFO_BUSY_SIZE 1
+#define TP0_CNTL_STATUS_TP_OUTPUT_BUSY_SIZE 1
+#define TP0_CNTL_STATUS_IN_LC_RTS_SIZE 1
+#define TP0_CNTL_STATUS_LC_LA_RTS_SIZE 1
+#define TP0_CNTL_STATUS_LA_FL_RTS_SIZE 1
+#define TP0_CNTL_STATUS_FL_TA_RTS_SIZE 1
+#define TP0_CNTL_STATUS_TA_FA_RTS_SIZE 1
+#define TP0_CNTL_STATUS_TA_FA_TT_RTS_SIZE 1
+#define TP0_CNTL_STATUS_FA_AL_RTS_SIZE 1
+#define TP0_CNTL_STATUS_FA_AL_TT_RTS_SIZE 1
+#define TP0_CNTL_STATUS_AL_TF_RTS_SIZE 1
+#define TP0_CNTL_STATUS_AL_TF_TT_RTS_SIZE 1
+#define TP0_CNTL_STATUS_TF_TB_RTS_SIZE 1
+#define TP0_CNTL_STATUS_TF_TB_TT_RTS_SIZE 1
+#define TP0_CNTL_STATUS_TB_TT_RTS_SIZE 1
+#define TP0_CNTL_STATUS_TB_TT_TT_RESET_SIZE 1
+#define TP0_CNTL_STATUS_TB_TO_RTS_SIZE 1
+#define TP0_CNTL_STATUS_TP_BUSY_SIZE 1
+
+#define TP0_CNTL_STATUS_TP_INPUT_BUSY_SHIFT 0
+#define TP0_CNTL_STATUS_TP_LOD_BUSY_SHIFT 1
+#define TP0_CNTL_STATUS_TP_LOD_FIFO_BUSY_SHIFT 2
+#define TP0_CNTL_STATUS_TP_ADDR_BUSY_SHIFT 3
+#define TP0_CNTL_STATUS_TP_ALIGN_FIFO_BUSY_SHIFT 4
+#define TP0_CNTL_STATUS_TP_ALIGNER_BUSY_SHIFT 5
+#define TP0_CNTL_STATUS_TP_TC_FIFO_BUSY_SHIFT 6
+#define TP0_CNTL_STATUS_TP_RR_FIFO_BUSY_SHIFT 7
+#define TP0_CNTL_STATUS_TP_FETCH_BUSY_SHIFT 8
+#define TP0_CNTL_STATUS_TP_CH_BLEND_BUSY_SHIFT 9
+#define TP0_CNTL_STATUS_TP_TT_BUSY_SHIFT 10
+#define TP0_CNTL_STATUS_TP_HICOLOR_BUSY_SHIFT 11
+#define TP0_CNTL_STATUS_TP_BLEND_BUSY_SHIFT 12
+#define TP0_CNTL_STATUS_TP_OUT_FIFO_BUSY_SHIFT 13
+#define TP0_CNTL_STATUS_TP_OUTPUT_BUSY_SHIFT 14
+#define TP0_CNTL_STATUS_IN_LC_RTS_SHIFT 16
+#define TP0_CNTL_STATUS_LC_LA_RTS_SHIFT 17
+#define TP0_CNTL_STATUS_LA_FL_RTS_SHIFT 18
+#define TP0_CNTL_STATUS_FL_TA_RTS_SHIFT 19
+#define TP0_CNTL_STATUS_TA_FA_RTS_SHIFT 20
+#define TP0_CNTL_STATUS_TA_FA_TT_RTS_SHIFT 21
+#define TP0_CNTL_STATUS_FA_AL_RTS_SHIFT 22
+#define TP0_CNTL_STATUS_FA_AL_TT_RTS_SHIFT 23
+#define TP0_CNTL_STATUS_AL_TF_RTS_SHIFT 24
+#define TP0_CNTL_STATUS_AL_TF_TT_RTS_SHIFT 25
+#define TP0_CNTL_STATUS_TF_TB_RTS_SHIFT 26
+#define TP0_CNTL_STATUS_TF_TB_TT_RTS_SHIFT 27
+#define TP0_CNTL_STATUS_TB_TT_RTS_SHIFT 28
+#define TP0_CNTL_STATUS_TB_TT_TT_RESET_SHIFT 29
+#define TP0_CNTL_STATUS_TB_TO_RTS_SHIFT 30
+#define TP0_CNTL_STATUS_TP_BUSY_SHIFT 31
+
+#define TP0_CNTL_STATUS_TP_INPUT_BUSY_MASK 0x00000001
+#define TP0_CNTL_STATUS_TP_LOD_BUSY_MASK 0x00000002
+#define TP0_CNTL_STATUS_TP_LOD_FIFO_BUSY_MASK 0x00000004
+#define TP0_CNTL_STATUS_TP_ADDR_BUSY_MASK 0x00000008
+#define TP0_CNTL_STATUS_TP_ALIGN_FIFO_BUSY_MASK 0x00000010
+#define TP0_CNTL_STATUS_TP_ALIGNER_BUSY_MASK 0x00000020
+#define TP0_CNTL_STATUS_TP_TC_FIFO_BUSY_MASK 0x00000040
+#define TP0_CNTL_STATUS_TP_RR_FIFO_BUSY_MASK 0x00000080
+#define TP0_CNTL_STATUS_TP_FETCH_BUSY_MASK 0x00000100
+#define TP0_CNTL_STATUS_TP_CH_BLEND_BUSY_MASK 0x00000200
+#define TP0_CNTL_STATUS_TP_TT_BUSY_MASK 0x00000400
+#define TP0_CNTL_STATUS_TP_HICOLOR_BUSY_MASK 0x00000800
+#define TP0_CNTL_STATUS_TP_BLEND_BUSY_MASK 0x00001000
+#define TP0_CNTL_STATUS_TP_OUT_FIFO_BUSY_MASK 0x00002000
+#define TP0_CNTL_STATUS_TP_OUTPUT_BUSY_MASK 0x00004000
+#define TP0_CNTL_STATUS_IN_LC_RTS_MASK 0x00010000
+#define TP0_CNTL_STATUS_LC_LA_RTS_MASK 0x00020000
+#define TP0_CNTL_STATUS_LA_FL_RTS_MASK 0x00040000
+#define TP0_CNTL_STATUS_FL_TA_RTS_MASK 0x00080000
+#define TP0_CNTL_STATUS_TA_FA_RTS_MASK 0x00100000
+#define TP0_CNTL_STATUS_TA_FA_TT_RTS_MASK 0x00200000
+#define TP0_CNTL_STATUS_FA_AL_RTS_MASK 0x00400000
+#define TP0_CNTL_STATUS_FA_AL_TT_RTS_MASK 0x00800000
+#define TP0_CNTL_STATUS_AL_TF_RTS_MASK 0x01000000
+#define TP0_CNTL_STATUS_AL_TF_TT_RTS_MASK 0x02000000
+#define TP0_CNTL_STATUS_TF_TB_RTS_MASK 0x04000000
+#define TP0_CNTL_STATUS_TF_TB_TT_RTS_MASK 0x08000000
+#define TP0_CNTL_STATUS_TB_TT_RTS_MASK 0x10000000
+#define TP0_CNTL_STATUS_TB_TT_TT_RESET_MASK 0x20000000
+#define TP0_CNTL_STATUS_TB_TO_RTS_MASK 0x40000000
+#define TP0_CNTL_STATUS_TP_BUSY_MASK 0x80000000
+
+#define TP0_CNTL_STATUS_MASK \
+ (TP0_CNTL_STATUS_TP_INPUT_BUSY_MASK | \
+ TP0_CNTL_STATUS_TP_LOD_BUSY_MASK | \
+ TP0_CNTL_STATUS_TP_LOD_FIFO_BUSY_MASK | \
+ TP0_CNTL_STATUS_TP_ADDR_BUSY_MASK | \
+ TP0_CNTL_STATUS_TP_ALIGN_FIFO_BUSY_MASK | \
+ TP0_CNTL_STATUS_TP_ALIGNER_BUSY_MASK | \
+ TP0_CNTL_STATUS_TP_TC_FIFO_BUSY_MASK | \
+ TP0_CNTL_STATUS_TP_RR_FIFO_BUSY_MASK | \
+ TP0_CNTL_STATUS_TP_FETCH_BUSY_MASK | \
+ TP0_CNTL_STATUS_TP_CH_BLEND_BUSY_MASK | \
+ TP0_CNTL_STATUS_TP_TT_BUSY_MASK | \
+ TP0_CNTL_STATUS_TP_HICOLOR_BUSY_MASK | \
+ TP0_CNTL_STATUS_TP_BLEND_BUSY_MASK | \
+ TP0_CNTL_STATUS_TP_OUT_FIFO_BUSY_MASK | \
+ TP0_CNTL_STATUS_TP_OUTPUT_BUSY_MASK | \
+ TP0_CNTL_STATUS_IN_LC_RTS_MASK | \
+ TP0_CNTL_STATUS_LC_LA_RTS_MASK | \
+ TP0_CNTL_STATUS_LA_FL_RTS_MASK | \
+ TP0_CNTL_STATUS_FL_TA_RTS_MASK | \
+ TP0_CNTL_STATUS_TA_FA_RTS_MASK | \
+ TP0_CNTL_STATUS_TA_FA_TT_RTS_MASK | \
+ TP0_CNTL_STATUS_FA_AL_RTS_MASK | \
+ TP0_CNTL_STATUS_FA_AL_TT_RTS_MASK | \
+ TP0_CNTL_STATUS_AL_TF_RTS_MASK | \
+ TP0_CNTL_STATUS_AL_TF_TT_RTS_MASK | \
+ TP0_CNTL_STATUS_TF_TB_RTS_MASK | \
+ TP0_CNTL_STATUS_TF_TB_TT_RTS_MASK | \
+ TP0_CNTL_STATUS_TB_TT_RTS_MASK | \
+ TP0_CNTL_STATUS_TB_TT_TT_RESET_MASK | \
+ TP0_CNTL_STATUS_TB_TO_RTS_MASK | \
+ TP0_CNTL_STATUS_TP_BUSY_MASK)
+
+#define TP0_CNTL_STATUS(tp_input_busy, tp_lod_busy, tp_lod_fifo_busy, tp_addr_busy, tp_align_fifo_busy, tp_aligner_busy, tp_tc_fifo_busy, tp_rr_fifo_busy, tp_fetch_busy, tp_ch_blend_busy, tp_tt_busy, tp_hicolor_busy, tp_blend_busy, tp_out_fifo_busy, tp_output_busy, in_lc_rts, lc_la_rts, la_fl_rts, fl_ta_rts, ta_fa_rts, ta_fa_tt_rts, fa_al_rts, fa_al_tt_rts, al_tf_rts, al_tf_tt_rts, tf_tb_rts, tf_tb_tt_rts, tb_tt_rts, tb_tt_tt_reset, tb_to_rts, tp_busy) \
+ ((tp_input_busy << TP0_CNTL_STATUS_TP_INPUT_BUSY_SHIFT) | \
+ (tp_lod_busy << TP0_CNTL_STATUS_TP_LOD_BUSY_SHIFT) | \
+ (tp_lod_fifo_busy << TP0_CNTL_STATUS_TP_LOD_FIFO_BUSY_SHIFT) | \
+ (tp_addr_busy << TP0_CNTL_STATUS_TP_ADDR_BUSY_SHIFT) | \
+ (tp_align_fifo_busy << TP0_CNTL_STATUS_TP_ALIGN_FIFO_BUSY_SHIFT) | \
+ (tp_aligner_busy << TP0_CNTL_STATUS_TP_ALIGNER_BUSY_SHIFT) | \
+ (tp_tc_fifo_busy << TP0_CNTL_STATUS_TP_TC_FIFO_BUSY_SHIFT) | \
+ (tp_rr_fifo_busy << TP0_CNTL_STATUS_TP_RR_FIFO_BUSY_SHIFT) | \
+ (tp_fetch_busy << TP0_CNTL_STATUS_TP_FETCH_BUSY_SHIFT) | \
+ (tp_ch_blend_busy << TP0_CNTL_STATUS_TP_CH_BLEND_BUSY_SHIFT) | \
+ (tp_tt_busy << TP0_CNTL_STATUS_TP_TT_BUSY_SHIFT) | \
+ (tp_hicolor_busy << TP0_CNTL_STATUS_TP_HICOLOR_BUSY_SHIFT) | \
+ (tp_blend_busy << TP0_CNTL_STATUS_TP_BLEND_BUSY_SHIFT) | \
+ (tp_out_fifo_busy << TP0_CNTL_STATUS_TP_OUT_FIFO_BUSY_SHIFT) | \
+ (tp_output_busy << TP0_CNTL_STATUS_TP_OUTPUT_BUSY_SHIFT) | \
+ (in_lc_rts << TP0_CNTL_STATUS_IN_LC_RTS_SHIFT) | \
+ (lc_la_rts << TP0_CNTL_STATUS_LC_LA_RTS_SHIFT) | \
+ (la_fl_rts << TP0_CNTL_STATUS_LA_FL_RTS_SHIFT) | \
+ (fl_ta_rts << TP0_CNTL_STATUS_FL_TA_RTS_SHIFT) | \
+ (ta_fa_rts << TP0_CNTL_STATUS_TA_FA_RTS_SHIFT) | \
+ (ta_fa_tt_rts << TP0_CNTL_STATUS_TA_FA_TT_RTS_SHIFT) | \
+ (fa_al_rts << TP0_CNTL_STATUS_FA_AL_RTS_SHIFT) | \
+ (fa_al_tt_rts << TP0_CNTL_STATUS_FA_AL_TT_RTS_SHIFT) | \
+ (al_tf_rts << TP0_CNTL_STATUS_AL_TF_RTS_SHIFT) | \
+ (al_tf_tt_rts << TP0_CNTL_STATUS_AL_TF_TT_RTS_SHIFT) | \
+ (tf_tb_rts << TP0_CNTL_STATUS_TF_TB_RTS_SHIFT) | \
+ (tf_tb_tt_rts << TP0_CNTL_STATUS_TF_TB_TT_RTS_SHIFT) | \
+ (tb_tt_rts << TP0_CNTL_STATUS_TB_TT_RTS_SHIFT) | \
+ (tb_tt_tt_reset << TP0_CNTL_STATUS_TB_TT_TT_RESET_SHIFT) | \
+ (tb_to_rts << TP0_CNTL_STATUS_TB_TO_RTS_SHIFT) | \
+ (tp_busy << TP0_CNTL_STATUS_TP_BUSY_SHIFT))
+
+#define TP0_CNTL_STATUS_GET_TP_INPUT_BUSY(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TP_INPUT_BUSY_MASK) >> TP0_CNTL_STATUS_TP_INPUT_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_GET_TP_LOD_BUSY(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TP_LOD_BUSY_MASK) >> TP0_CNTL_STATUS_TP_LOD_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_GET_TP_LOD_FIFO_BUSY(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TP_LOD_FIFO_BUSY_MASK) >> TP0_CNTL_STATUS_TP_LOD_FIFO_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_GET_TP_ADDR_BUSY(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TP_ADDR_BUSY_MASK) >> TP0_CNTL_STATUS_TP_ADDR_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_GET_TP_ALIGN_FIFO_BUSY(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TP_ALIGN_FIFO_BUSY_MASK) >> TP0_CNTL_STATUS_TP_ALIGN_FIFO_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_GET_TP_ALIGNER_BUSY(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TP_ALIGNER_BUSY_MASK) >> TP0_CNTL_STATUS_TP_ALIGNER_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_GET_TP_TC_FIFO_BUSY(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TP_TC_FIFO_BUSY_MASK) >> TP0_CNTL_STATUS_TP_TC_FIFO_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_GET_TP_RR_FIFO_BUSY(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TP_RR_FIFO_BUSY_MASK) >> TP0_CNTL_STATUS_TP_RR_FIFO_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_GET_TP_FETCH_BUSY(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TP_FETCH_BUSY_MASK) >> TP0_CNTL_STATUS_TP_FETCH_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_GET_TP_CH_BLEND_BUSY(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TP_CH_BLEND_BUSY_MASK) >> TP0_CNTL_STATUS_TP_CH_BLEND_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_GET_TP_TT_BUSY(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TP_TT_BUSY_MASK) >> TP0_CNTL_STATUS_TP_TT_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_GET_TP_HICOLOR_BUSY(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TP_HICOLOR_BUSY_MASK) >> TP0_CNTL_STATUS_TP_HICOLOR_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_GET_TP_BLEND_BUSY(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TP_BLEND_BUSY_MASK) >> TP0_CNTL_STATUS_TP_BLEND_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_GET_TP_OUT_FIFO_BUSY(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TP_OUT_FIFO_BUSY_MASK) >> TP0_CNTL_STATUS_TP_OUT_FIFO_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_GET_TP_OUTPUT_BUSY(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TP_OUTPUT_BUSY_MASK) >> TP0_CNTL_STATUS_TP_OUTPUT_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_GET_IN_LC_RTS(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_IN_LC_RTS_MASK) >> TP0_CNTL_STATUS_IN_LC_RTS_SHIFT)
+#define TP0_CNTL_STATUS_GET_LC_LA_RTS(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_LC_LA_RTS_MASK) >> TP0_CNTL_STATUS_LC_LA_RTS_SHIFT)
+#define TP0_CNTL_STATUS_GET_LA_FL_RTS(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_LA_FL_RTS_MASK) >> TP0_CNTL_STATUS_LA_FL_RTS_SHIFT)
+#define TP0_CNTL_STATUS_GET_FL_TA_RTS(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_FL_TA_RTS_MASK) >> TP0_CNTL_STATUS_FL_TA_RTS_SHIFT)
+#define TP0_CNTL_STATUS_GET_TA_FA_RTS(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TA_FA_RTS_MASK) >> TP0_CNTL_STATUS_TA_FA_RTS_SHIFT)
+#define TP0_CNTL_STATUS_GET_TA_FA_TT_RTS(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TA_FA_TT_RTS_MASK) >> TP0_CNTL_STATUS_TA_FA_TT_RTS_SHIFT)
+#define TP0_CNTL_STATUS_GET_FA_AL_RTS(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_FA_AL_RTS_MASK) >> TP0_CNTL_STATUS_FA_AL_RTS_SHIFT)
+#define TP0_CNTL_STATUS_GET_FA_AL_TT_RTS(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_FA_AL_TT_RTS_MASK) >> TP0_CNTL_STATUS_FA_AL_TT_RTS_SHIFT)
+#define TP0_CNTL_STATUS_GET_AL_TF_RTS(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_AL_TF_RTS_MASK) >> TP0_CNTL_STATUS_AL_TF_RTS_SHIFT)
+#define TP0_CNTL_STATUS_GET_AL_TF_TT_RTS(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_AL_TF_TT_RTS_MASK) >> TP0_CNTL_STATUS_AL_TF_TT_RTS_SHIFT)
+#define TP0_CNTL_STATUS_GET_TF_TB_RTS(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TF_TB_RTS_MASK) >> TP0_CNTL_STATUS_TF_TB_RTS_SHIFT)
+#define TP0_CNTL_STATUS_GET_TF_TB_TT_RTS(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TF_TB_TT_RTS_MASK) >> TP0_CNTL_STATUS_TF_TB_TT_RTS_SHIFT)
+#define TP0_CNTL_STATUS_GET_TB_TT_RTS(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TB_TT_RTS_MASK) >> TP0_CNTL_STATUS_TB_TT_RTS_SHIFT)
+#define TP0_CNTL_STATUS_GET_TB_TT_TT_RESET(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TB_TT_TT_RESET_MASK) >> TP0_CNTL_STATUS_TB_TT_TT_RESET_SHIFT)
+#define TP0_CNTL_STATUS_GET_TB_TO_RTS(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TB_TO_RTS_MASK) >> TP0_CNTL_STATUS_TB_TO_RTS_SHIFT)
+#define TP0_CNTL_STATUS_GET_TP_BUSY(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TP_BUSY_MASK) >> TP0_CNTL_STATUS_TP_BUSY_SHIFT)
+
+#define TP0_CNTL_STATUS_SET_TP_INPUT_BUSY(tp0_cntl_status_reg, tp_input_busy) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TP_INPUT_BUSY_MASK) | (tp_input_busy << TP0_CNTL_STATUS_TP_INPUT_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_SET_TP_LOD_BUSY(tp0_cntl_status_reg, tp_lod_busy) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TP_LOD_BUSY_MASK) | (tp_lod_busy << TP0_CNTL_STATUS_TP_LOD_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_SET_TP_LOD_FIFO_BUSY(tp0_cntl_status_reg, tp_lod_fifo_busy) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TP_LOD_FIFO_BUSY_MASK) | (tp_lod_fifo_busy << TP0_CNTL_STATUS_TP_LOD_FIFO_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_SET_TP_ADDR_BUSY(tp0_cntl_status_reg, tp_addr_busy) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TP_ADDR_BUSY_MASK) | (tp_addr_busy << TP0_CNTL_STATUS_TP_ADDR_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_SET_TP_ALIGN_FIFO_BUSY(tp0_cntl_status_reg, tp_align_fifo_busy) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TP_ALIGN_FIFO_BUSY_MASK) | (tp_align_fifo_busy << TP0_CNTL_STATUS_TP_ALIGN_FIFO_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_SET_TP_ALIGNER_BUSY(tp0_cntl_status_reg, tp_aligner_busy) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TP_ALIGNER_BUSY_MASK) | (tp_aligner_busy << TP0_CNTL_STATUS_TP_ALIGNER_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_SET_TP_TC_FIFO_BUSY(tp0_cntl_status_reg, tp_tc_fifo_busy) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TP_TC_FIFO_BUSY_MASK) | (tp_tc_fifo_busy << TP0_CNTL_STATUS_TP_TC_FIFO_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_SET_TP_RR_FIFO_BUSY(tp0_cntl_status_reg, tp_rr_fifo_busy) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TP_RR_FIFO_BUSY_MASK) | (tp_rr_fifo_busy << TP0_CNTL_STATUS_TP_RR_FIFO_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_SET_TP_FETCH_BUSY(tp0_cntl_status_reg, tp_fetch_busy) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TP_FETCH_BUSY_MASK) | (tp_fetch_busy << TP0_CNTL_STATUS_TP_FETCH_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_SET_TP_CH_BLEND_BUSY(tp0_cntl_status_reg, tp_ch_blend_busy) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TP_CH_BLEND_BUSY_MASK) | (tp_ch_blend_busy << TP0_CNTL_STATUS_TP_CH_BLEND_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_SET_TP_TT_BUSY(tp0_cntl_status_reg, tp_tt_busy) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TP_TT_BUSY_MASK) | (tp_tt_busy << TP0_CNTL_STATUS_TP_TT_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_SET_TP_HICOLOR_BUSY(tp0_cntl_status_reg, tp_hicolor_busy) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TP_HICOLOR_BUSY_MASK) | (tp_hicolor_busy << TP0_CNTL_STATUS_TP_HICOLOR_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_SET_TP_BLEND_BUSY(tp0_cntl_status_reg, tp_blend_busy) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TP_BLEND_BUSY_MASK) | (tp_blend_busy << TP0_CNTL_STATUS_TP_BLEND_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_SET_TP_OUT_FIFO_BUSY(tp0_cntl_status_reg, tp_out_fifo_busy) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TP_OUT_FIFO_BUSY_MASK) | (tp_out_fifo_busy << TP0_CNTL_STATUS_TP_OUT_FIFO_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_SET_TP_OUTPUT_BUSY(tp0_cntl_status_reg, tp_output_busy) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TP_OUTPUT_BUSY_MASK) | (tp_output_busy << TP0_CNTL_STATUS_TP_OUTPUT_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_SET_IN_LC_RTS(tp0_cntl_status_reg, in_lc_rts) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_IN_LC_RTS_MASK) | (in_lc_rts << TP0_CNTL_STATUS_IN_LC_RTS_SHIFT)
+#define TP0_CNTL_STATUS_SET_LC_LA_RTS(tp0_cntl_status_reg, lc_la_rts) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_LC_LA_RTS_MASK) | (lc_la_rts << TP0_CNTL_STATUS_LC_LA_RTS_SHIFT)
+#define TP0_CNTL_STATUS_SET_LA_FL_RTS(tp0_cntl_status_reg, la_fl_rts) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_LA_FL_RTS_MASK) | (la_fl_rts << TP0_CNTL_STATUS_LA_FL_RTS_SHIFT)
+#define TP0_CNTL_STATUS_SET_FL_TA_RTS(tp0_cntl_status_reg, fl_ta_rts) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_FL_TA_RTS_MASK) | (fl_ta_rts << TP0_CNTL_STATUS_FL_TA_RTS_SHIFT)
+#define TP0_CNTL_STATUS_SET_TA_FA_RTS(tp0_cntl_status_reg, ta_fa_rts) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TA_FA_RTS_MASK) | (ta_fa_rts << TP0_CNTL_STATUS_TA_FA_RTS_SHIFT)
+#define TP0_CNTL_STATUS_SET_TA_FA_TT_RTS(tp0_cntl_status_reg, ta_fa_tt_rts) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TA_FA_TT_RTS_MASK) | (ta_fa_tt_rts << TP0_CNTL_STATUS_TA_FA_TT_RTS_SHIFT)
+#define TP0_CNTL_STATUS_SET_FA_AL_RTS(tp0_cntl_status_reg, fa_al_rts) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_FA_AL_RTS_MASK) | (fa_al_rts << TP0_CNTL_STATUS_FA_AL_RTS_SHIFT)
+#define TP0_CNTL_STATUS_SET_FA_AL_TT_RTS(tp0_cntl_status_reg, fa_al_tt_rts) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_FA_AL_TT_RTS_MASK) | (fa_al_tt_rts << TP0_CNTL_STATUS_FA_AL_TT_RTS_SHIFT)
+#define TP0_CNTL_STATUS_SET_AL_TF_RTS(tp0_cntl_status_reg, al_tf_rts) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_AL_TF_RTS_MASK) | (al_tf_rts << TP0_CNTL_STATUS_AL_TF_RTS_SHIFT)
+#define TP0_CNTL_STATUS_SET_AL_TF_TT_RTS(tp0_cntl_status_reg, al_tf_tt_rts) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_AL_TF_TT_RTS_MASK) | (al_tf_tt_rts << TP0_CNTL_STATUS_AL_TF_TT_RTS_SHIFT)
+#define TP0_CNTL_STATUS_SET_TF_TB_RTS(tp0_cntl_status_reg, tf_tb_rts) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TF_TB_RTS_MASK) | (tf_tb_rts << TP0_CNTL_STATUS_TF_TB_RTS_SHIFT)
+#define TP0_CNTL_STATUS_SET_TF_TB_TT_RTS(tp0_cntl_status_reg, tf_tb_tt_rts) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TF_TB_TT_RTS_MASK) | (tf_tb_tt_rts << TP0_CNTL_STATUS_TF_TB_TT_RTS_SHIFT)
+#define TP0_CNTL_STATUS_SET_TB_TT_RTS(tp0_cntl_status_reg, tb_tt_rts) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TB_TT_RTS_MASK) | (tb_tt_rts << TP0_CNTL_STATUS_TB_TT_RTS_SHIFT)
+#define TP0_CNTL_STATUS_SET_TB_TT_TT_RESET(tp0_cntl_status_reg, tb_tt_tt_reset) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TB_TT_TT_RESET_MASK) | (tb_tt_tt_reset << TP0_CNTL_STATUS_TB_TT_TT_RESET_SHIFT)
+#define TP0_CNTL_STATUS_SET_TB_TO_RTS(tp0_cntl_status_reg, tb_to_rts) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TB_TO_RTS_MASK) | (tb_to_rts << TP0_CNTL_STATUS_TB_TO_RTS_SHIFT)
+#define TP0_CNTL_STATUS_SET_TP_BUSY(tp0_cntl_status_reg, tp_busy) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TP_BUSY_MASK) | (tp_busy << TP0_CNTL_STATUS_TP_BUSY_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tp0_cntl_status_t {
+ unsigned int tp_input_busy : TP0_CNTL_STATUS_TP_INPUT_BUSY_SIZE;
+ unsigned int tp_lod_busy : TP0_CNTL_STATUS_TP_LOD_BUSY_SIZE;
+ unsigned int tp_lod_fifo_busy : TP0_CNTL_STATUS_TP_LOD_FIFO_BUSY_SIZE;
+ unsigned int tp_addr_busy : TP0_CNTL_STATUS_TP_ADDR_BUSY_SIZE;
+ unsigned int tp_align_fifo_busy : TP0_CNTL_STATUS_TP_ALIGN_FIFO_BUSY_SIZE;
+ unsigned int tp_aligner_busy : TP0_CNTL_STATUS_TP_ALIGNER_BUSY_SIZE;
+ unsigned int tp_tc_fifo_busy : TP0_CNTL_STATUS_TP_TC_FIFO_BUSY_SIZE;
+ unsigned int tp_rr_fifo_busy : TP0_CNTL_STATUS_TP_RR_FIFO_BUSY_SIZE;
+ unsigned int tp_fetch_busy : TP0_CNTL_STATUS_TP_FETCH_BUSY_SIZE;
+ unsigned int tp_ch_blend_busy : TP0_CNTL_STATUS_TP_CH_BLEND_BUSY_SIZE;
+ unsigned int tp_tt_busy : TP0_CNTL_STATUS_TP_TT_BUSY_SIZE;
+ unsigned int tp_hicolor_busy : TP0_CNTL_STATUS_TP_HICOLOR_BUSY_SIZE;
+ unsigned int tp_blend_busy : TP0_CNTL_STATUS_TP_BLEND_BUSY_SIZE;
+ unsigned int tp_out_fifo_busy : TP0_CNTL_STATUS_TP_OUT_FIFO_BUSY_SIZE;
+ unsigned int tp_output_busy : TP0_CNTL_STATUS_TP_OUTPUT_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int in_lc_rts : TP0_CNTL_STATUS_IN_LC_RTS_SIZE;
+ unsigned int lc_la_rts : TP0_CNTL_STATUS_LC_LA_RTS_SIZE;
+ unsigned int la_fl_rts : TP0_CNTL_STATUS_LA_FL_RTS_SIZE;
+ unsigned int fl_ta_rts : TP0_CNTL_STATUS_FL_TA_RTS_SIZE;
+ unsigned int ta_fa_rts : TP0_CNTL_STATUS_TA_FA_RTS_SIZE;
+ unsigned int ta_fa_tt_rts : TP0_CNTL_STATUS_TA_FA_TT_RTS_SIZE;
+ unsigned int fa_al_rts : TP0_CNTL_STATUS_FA_AL_RTS_SIZE;
+ unsigned int fa_al_tt_rts : TP0_CNTL_STATUS_FA_AL_TT_RTS_SIZE;
+ unsigned int al_tf_rts : TP0_CNTL_STATUS_AL_TF_RTS_SIZE;
+ unsigned int al_tf_tt_rts : TP0_CNTL_STATUS_AL_TF_TT_RTS_SIZE;
+ unsigned int tf_tb_rts : TP0_CNTL_STATUS_TF_TB_RTS_SIZE;
+ unsigned int tf_tb_tt_rts : TP0_CNTL_STATUS_TF_TB_TT_RTS_SIZE;
+ unsigned int tb_tt_rts : TP0_CNTL_STATUS_TB_TT_RTS_SIZE;
+ unsigned int tb_tt_tt_reset : TP0_CNTL_STATUS_TB_TT_TT_RESET_SIZE;
+ unsigned int tb_to_rts : TP0_CNTL_STATUS_TB_TO_RTS_SIZE;
+ unsigned int tp_busy : TP0_CNTL_STATUS_TP_BUSY_SIZE;
+ } tp0_cntl_status_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tp0_cntl_status_t {
+ unsigned int tp_busy : TP0_CNTL_STATUS_TP_BUSY_SIZE;
+ unsigned int tb_to_rts : TP0_CNTL_STATUS_TB_TO_RTS_SIZE;
+ unsigned int tb_tt_tt_reset : TP0_CNTL_STATUS_TB_TT_TT_RESET_SIZE;
+ unsigned int tb_tt_rts : TP0_CNTL_STATUS_TB_TT_RTS_SIZE;
+ unsigned int tf_tb_tt_rts : TP0_CNTL_STATUS_TF_TB_TT_RTS_SIZE;
+ unsigned int tf_tb_rts : TP0_CNTL_STATUS_TF_TB_RTS_SIZE;
+ unsigned int al_tf_tt_rts : TP0_CNTL_STATUS_AL_TF_TT_RTS_SIZE;
+ unsigned int al_tf_rts : TP0_CNTL_STATUS_AL_TF_RTS_SIZE;
+ unsigned int fa_al_tt_rts : TP0_CNTL_STATUS_FA_AL_TT_RTS_SIZE;
+ unsigned int fa_al_rts : TP0_CNTL_STATUS_FA_AL_RTS_SIZE;
+ unsigned int ta_fa_tt_rts : TP0_CNTL_STATUS_TA_FA_TT_RTS_SIZE;
+ unsigned int ta_fa_rts : TP0_CNTL_STATUS_TA_FA_RTS_SIZE;
+ unsigned int fl_ta_rts : TP0_CNTL_STATUS_FL_TA_RTS_SIZE;
+ unsigned int la_fl_rts : TP0_CNTL_STATUS_LA_FL_RTS_SIZE;
+ unsigned int lc_la_rts : TP0_CNTL_STATUS_LC_LA_RTS_SIZE;
+ unsigned int in_lc_rts : TP0_CNTL_STATUS_IN_LC_RTS_SIZE;
+ unsigned int : 1;
+ unsigned int tp_output_busy : TP0_CNTL_STATUS_TP_OUTPUT_BUSY_SIZE;
+ unsigned int tp_out_fifo_busy : TP0_CNTL_STATUS_TP_OUT_FIFO_BUSY_SIZE;
+ unsigned int tp_blend_busy : TP0_CNTL_STATUS_TP_BLEND_BUSY_SIZE;
+ unsigned int tp_hicolor_busy : TP0_CNTL_STATUS_TP_HICOLOR_BUSY_SIZE;
+ unsigned int tp_tt_busy : TP0_CNTL_STATUS_TP_TT_BUSY_SIZE;
+ unsigned int tp_ch_blend_busy : TP0_CNTL_STATUS_TP_CH_BLEND_BUSY_SIZE;
+ unsigned int tp_fetch_busy : TP0_CNTL_STATUS_TP_FETCH_BUSY_SIZE;
+ unsigned int tp_rr_fifo_busy : TP0_CNTL_STATUS_TP_RR_FIFO_BUSY_SIZE;
+ unsigned int tp_tc_fifo_busy : TP0_CNTL_STATUS_TP_TC_FIFO_BUSY_SIZE;
+ unsigned int tp_aligner_busy : TP0_CNTL_STATUS_TP_ALIGNER_BUSY_SIZE;
+ unsigned int tp_align_fifo_busy : TP0_CNTL_STATUS_TP_ALIGN_FIFO_BUSY_SIZE;
+ unsigned int tp_addr_busy : TP0_CNTL_STATUS_TP_ADDR_BUSY_SIZE;
+ unsigned int tp_lod_fifo_busy : TP0_CNTL_STATUS_TP_LOD_FIFO_BUSY_SIZE;
+ unsigned int tp_lod_busy : TP0_CNTL_STATUS_TP_LOD_BUSY_SIZE;
+ unsigned int tp_input_busy : TP0_CNTL_STATUS_TP_INPUT_BUSY_SIZE;
+ } tp0_cntl_status_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tp0_cntl_status_t f;
+} tp0_cntl_status_u;
+
+
+/*
+ * TP0_DEBUG struct
+ */
+
+#define TP0_DEBUG_Q_LOD_CNTL_SIZE 2
+#define TP0_DEBUG_Q_SQ_TP_WAKEUP_SIZE 1
+#define TP0_DEBUG_FL_TA_ADDRESSER_CNTL_SIZE 17
+#define TP0_DEBUG_REG_CLK_EN_SIZE 1
+#define TP0_DEBUG_PERF_CLK_EN_SIZE 1
+#define TP0_DEBUG_TP_CLK_EN_SIZE 1
+#define TP0_DEBUG_Q_WALKER_CNTL_SIZE 4
+#define TP0_DEBUG_Q_ALIGNER_CNTL_SIZE 3
+
+#define TP0_DEBUG_Q_LOD_CNTL_SHIFT 0
+#define TP0_DEBUG_Q_SQ_TP_WAKEUP_SHIFT 3
+#define TP0_DEBUG_FL_TA_ADDRESSER_CNTL_SHIFT 4
+#define TP0_DEBUG_REG_CLK_EN_SHIFT 21
+#define TP0_DEBUG_PERF_CLK_EN_SHIFT 22
+#define TP0_DEBUG_TP_CLK_EN_SHIFT 23
+#define TP0_DEBUG_Q_WALKER_CNTL_SHIFT 24
+#define TP0_DEBUG_Q_ALIGNER_CNTL_SHIFT 28
+
+#define TP0_DEBUG_Q_LOD_CNTL_MASK 0x00000003
+#define TP0_DEBUG_Q_SQ_TP_WAKEUP_MASK 0x00000008
+#define TP0_DEBUG_FL_TA_ADDRESSER_CNTL_MASK 0x001ffff0
+#define TP0_DEBUG_REG_CLK_EN_MASK 0x00200000
+#define TP0_DEBUG_PERF_CLK_EN_MASK 0x00400000
+#define TP0_DEBUG_TP_CLK_EN_MASK 0x00800000
+#define TP0_DEBUG_Q_WALKER_CNTL_MASK 0x0f000000
+#define TP0_DEBUG_Q_ALIGNER_CNTL_MASK 0x70000000
+
+#define TP0_DEBUG_MASK \
+ (TP0_DEBUG_Q_LOD_CNTL_MASK | \
+ TP0_DEBUG_Q_SQ_TP_WAKEUP_MASK | \
+ TP0_DEBUG_FL_TA_ADDRESSER_CNTL_MASK | \
+ TP0_DEBUG_REG_CLK_EN_MASK | \
+ TP0_DEBUG_PERF_CLK_EN_MASK | \
+ TP0_DEBUG_TP_CLK_EN_MASK | \
+ TP0_DEBUG_Q_WALKER_CNTL_MASK | \
+ TP0_DEBUG_Q_ALIGNER_CNTL_MASK)
+
+#define TP0_DEBUG(q_lod_cntl, q_sq_tp_wakeup, fl_ta_addresser_cntl, reg_clk_en, perf_clk_en, tp_clk_en, q_walker_cntl, q_aligner_cntl) \
+ ((q_lod_cntl << TP0_DEBUG_Q_LOD_CNTL_SHIFT) | \
+ (q_sq_tp_wakeup << TP0_DEBUG_Q_SQ_TP_WAKEUP_SHIFT) | \
+ (fl_ta_addresser_cntl << TP0_DEBUG_FL_TA_ADDRESSER_CNTL_SHIFT) | \
+ (reg_clk_en << TP0_DEBUG_REG_CLK_EN_SHIFT) | \
+ (perf_clk_en << TP0_DEBUG_PERF_CLK_EN_SHIFT) | \
+ (tp_clk_en << TP0_DEBUG_TP_CLK_EN_SHIFT) | \
+ (q_walker_cntl << TP0_DEBUG_Q_WALKER_CNTL_SHIFT) | \
+ (q_aligner_cntl << TP0_DEBUG_Q_ALIGNER_CNTL_SHIFT))
+
+#define TP0_DEBUG_GET_Q_LOD_CNTL(tp0_debug) \
+ ((tp0_debug & TP0_DEBUG_Q_LOD_CNTL_MASK) >> TP0_DEBUG_Q_LOD_CNTL_SHIFT)
+#define TP0_DEBUG_GET_Q_SQ_TP_WAKEUP(tp0_debug) \
+ ((tp0_debug & TP0_DEBUG_Q_SQ_TP_WAKEUP_MASK) >> TP0_DEBUG_Q_SQ_TP_WAKEUP_SHIFT)
+#define TP0_DEBUG_GET_FL_TA_ADDRESSER_CNTL(tp0_debug) \
+ ((tp0_debug & TP0_DEBUG_FL_TA_ADDRESSER_CNTL_MASK) >> TP0_DEBUG_FL_TA_ADDRESSER_CNTL_SHIFT)
+#define TP0_DEBUG_GET_REG_CLK_EN(tp0_debug) \
+ ((tp0_debug & TP0_DEBUG_REG_CLK_EN_MASK) >> TP0_DEBUG_REG_CLK_EN_SHIFT)
+#define TP0_DEBUG_GET_PERF_CLK_EN(tp0_debug) \
+ ((tp0_debug & TP0_DEBUG_PERF_CLK_EN_MASK) >> TP0_DEBUG_PERF_CLK_EN_SHIFT)
+#define TP0_DEBUG_GET_TP_CLK_EN(tp0_debug) \
+ ((tp0_debug & TP0_DEBUG_TP_CLK_EN_MASK) >> TP0_DEBUG_TP_CLK_EN_SHIFT)
+#define TP0_DEBUG_GET_Q_WALKER_CNTL(tp0_debug) \
+ ((tp0_debug & TP0_DEBUG_Q_WALKER_CNTL_MASK) >> TP0_DEBUG_Q_WALKER_CNTL_SHIFT)
+#define TP0_DEBUG_GET_Q_ALIGNER_CNTL(tp0_debug) \
+ ((tp0_debug & TP0_DEBUG_Q_ALIGNER_CNTL_MASK) >> TP0_DEBUG_Q_ALIGNER_CNTL_SHIFT)
+
+#define TP0_DEBUG_SET_Q_LOD_CNTL(tp0_debug_reg, q_lod_cntl) \
+ tp0_debug_reg = (tp0_debug_reg & ~TP0_DEBUG_Q_LOD_CNTL_MASK) | (q_lod_cntl << TP0_DEBUG_Q_LOD_CNTL_SHIFT)
+#define TP0_DEBUG_SET_Q_SQ_TP_WAKEUP(tp0_debug_reg, q_sq_tp_wakeup) \
+ tp0_debug_reg = (tp0_debug_reg & ~TP0_DEBUG_Q_SQ_TP_WAKEUP_MASK) | (q_sq_tp_wakeup << TP0_DEBUG_Q_SQ_TP_WAKEUP_SHIFT)
+#define TP0_DEBUG_SET_FL_TA_ADDRESSER_CNTL(tp0_debug_reg, fl_ta_addresser_cntl) \
+ tp0_debug_reg = (tp0_debug_reg & ~TP0_DEBUG_FL_TA_ADDRESSER_CNTL_MASK) | (fl_ta_addresser_cntl << TP0_DEBUG_FL_TA_ADDRESSER_CNTL_SHIFT)
+#define TP0_DEBUG_SET_REG_CLK_EN(tp0_debug_reg, reg_clk_en) \
+ tp0_debug_reg = (tp0_debug_reg & ~TP0_DEBUG_REG_CLK_EN_MASK) | (reg_clk_en << TP0_DEBUG_REG_CLK_EN_SHIFT)
+#define TP0_DEBUG_SET_PERF_CLK_EN(tp0_debug_reg, perf_clk_en) \
+ tp0_debug_reg = (tp0_debug_reg & ~TP0_DEBUG_PERF_CLK_EN_MASK) | (perf_clk_en << TP0_DEBUG_PERF_CLK_EN_SHIFT)
+#define TP0_DEBUG_SET_TP_CLK_EN(tp0_debug_reg, tp_clk_en) \
+ tp0_debug_reg = (tp0_debug_reg & ~TP0_DEBUG_TP_CLK_EN_MASK) | (tp_clk_en << TP0_DEBUG_TP_CLK_EN_SHIFT)
+#define TP0_DEBUG_SET_Q_WALKER_CNTL(tp0_debug_reg, q_walker_cntl) \
+ tp0_debug_reg = (tp0_debug_reg & ~TP0_DEBUG_Q_WALKER_CNTL_MASK) | (q_walker_cntl << TP0_DEBUG_Q_WALKER_CNTL_SHIFT)
+#define TP0_DEBUG_SET_Q_ALIGNER_CNTL(tp0_debug_reg, q_aligner_cntl) \
+ tp0_debug_reg = (tp0_debug_reg & ~TP0_DEBUG_Q_ALIGNER_CNTL_MASK) | (q_aligner_cntl << TP0_DEBUG_Q_ALIGNER_CNTL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tp0_debug_t {
+ unsigned int q_lod_cntl : TP0_DEBUG_Q_LOD_CNTL_SIZE;
+ unsigned int : 1;
+ unsigned int q_sq_tp_wakeup : TP0_DEBUG_Q_SQ_TP_WAKEUP_SIZE;
+ unsigned int fl_ta_addresser_cntl : TP0_DEBUG_FL_TA_ADDRESSER_CNTL_SIZE;
+ unsigned int reg_clk_en : TP0_DEBUG_REG_CLK_EN_SIZE;
+ unsigned int perf_clk_en : TP0_DEBUG_PERF_CLK_EN_SIZE;
+ unsigned int tp_clk_en : TP0_DEBUG_TP_CLK_EN_SIZE;
+ unsigned int q_walker_cntl : TP0_DEBUG_Q_WALKER_CNTL_SIZE;
+ unsigned int q_aligner_cntl : TP0_DEBUG_Q_ALIGNER_CNTL_SIZE;
+ unsigned int : 1;
+ } tp0_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tp0_debug_t {
+ unsigned int : 1;
+ unsigned int q_aligner_cntl : TP0_DEBUG_Q_ALIGNER_CNTL_SIZE;
+ unsigned int q_walker_cntl : TP0_DEBUG_Q_WALKER_CNTL_SIZE;
+ unsigned int tp_clk_en : TP0_DEBUG_TP_CLK_EN_SIZE;
+ unsigned int perf_clk_en : TP0_DEBUG_PERF_CLK_EN_SIZE;
+ unsigned int reg_clk_en : TP0_DEBUG_REG_CLK_EN_SIZE;
+ unsigned int fl_ta_addresser_cntl : TP0_DEBUG_FL_TA_ADDRESSER_CNTL_SIZE;
+ unsigned int q_sq_tp_wakeup : TP0_DEBUG_Q_SQ_TP_WAKEUP_SIZE;
+ unsigned int : 1;
+ unsigned int q_lod_cntl : TP0_DEBUG_Q_LOD_CNTL_SIZE;
+ } tp0_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tp0_debug_t f;
+} tp0_debug_u;
+
+
+/*
+ * TP0_CHICKEN struct
+ */
+
+#define TP0_CHICKEN_TT_MODE_SIZE 1
+#define TP0_CHICKEN_VFETCH_ADDRESS_MODE_SIZE 1
+#define TP0_CHICKEN_SPARE_SIZE 30
+
+#define TP0_CHICKEN_TT_MODE_SHIFT 0
+#define TP0_CHICKEN_VFETCH_ADDRESS_MODE_SHIFT 1
+#define TP0_CHICKEN_SPARE_SHIFT 2
+
+#define TP0_CHICKEN_TT_MODE_MASK 0x00000001
+#define TP0_CHICKEN_VFETCH_ADDRESS_MODE_MASK 0x00000002
+#define TP0_CHICKEN_SPARE_MASK 0xfffffffc
+
+#define TP0_CHICKEN_MASK \
+ (TP0_CHICKEN_TT_MODE_MASK | \
+ TP0_CHICKEN_VFETCH_ADDRESS_MODE_MASK | \
+ TP0_CHICKEN_SPARE_MASK)
+
+#define TP0_CHICKEN(tt_mode, vfetch_address_mode, spare) \
+ ((tt_mode << TP0_CHICKEN_TT_MODE_SHIFT) | \
+ (vfetch_address_mode << TP0_CHICKEN_VFETCH_ADDRESS_MODE_SHIFT) | \
+ (spare << TP0_CHICKEN_SPARE_SHIFT))
+
+#define TP0_CHICKEN_GET_TT_MODE(tp0_chicken) \
+ ((tp0_chicken & TP0_CHICKEN_TT_MODE_MASK) >> TP0_CHICKEN_TT_MODE_SHIFT)
+#define TP0_CHICKEN_GET_VFETCH_ADDRESS_MODE(tp0_chicken) \
+ ((tp0_chicken & TP0_CHICKEN_VFETCH_ADDRESS_MODE_MASK) >> TP0_CHICKEN_VFETCH_ADDRESS_MODE_SHIFT)
+#define TP0_CHICKEN_GET_SPARE(tp0_chicken) \
+ ((tp0_chicken & TP0_CHICKEN_SPARE_MASK) >> TP0_CHICKEN_SPARE_SHIFT)
+
+#define TP0_CHICKEN_SET_TT_MODE(tp0_chicken_reg, tt_mode) \
+ tp0_chicken_reg = (tp0_chicken_reg & ~TP0_CHICKEN_TT_MODE_MASK) | (tt_mode << TP0_CHICKEN_TT_MODE_SHIFT)
+#define TP0_CHICKEN_SET_VFETCH_ADDRESS_MODE(tp0_chicken_reg, vfetch_address_mode) \
+ tp0_chicken_reg = (tp0_chicken_reg & ~TP0_CHICKEN_VFETCH_ADDRESS_MODE_MASK) | (vfetch_address_mode << TP0_CHICKEN_VFETCH_ADDRESS_MODE_SHIFT)
+#define TP0_CHICKEN_SET_SPARE(tp0_chicken_reg, spare) \
+ tp0_chicken_reg = (tp0_chicken_reg & ~TP0_CHICKEN_SPARE_MASK) | (spare << TP0_CHICKEN_SPARE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tp0_chicken_t {
+ unsigned int tt_mode : TP0_CHICKEN_TT_MODE_SIZE;
+ unsigned int vfetch_address_mode : TP0_CHICKEN_VFETCH_ADDRESS_MODE_SIZE;
+ unsigned int spare : TP0_CHICKEN_SPARE_SIZE;
+ } tp0_chicken_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tp0_chicken_t {
+ unsigned int spare : TP0_CHICKEN_SPARE_SIZE;
+ unsigned int vfetch_address_mode : TP0_CHICKEN_VFETCH_ADDRESS_MODE_SIZE;
+ unsigned int tt_mode : TP0_CHICKEN_TT_MODE_SIZE;
+ } tp0_chicken_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tp0_chicken_t f;
+} tp0_chicken_u;
+
+
+/*
+ * TP0_PERFCOUNTER0_SELECT struct
+ */
+
+#define TP0_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SIZE 8
+
+#define TP0_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SHIFT 0
+
+#define TP0_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_MASK 0x000000ff
+
+#define TP0_PERFCOUNTER0_SELECT_MASK \
+ (TP0_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_MASK)
+
+#define TP0_PERFCOUNTER0_SELECT(perfcounter_select) \
+ ((perfcounter_select << TP0_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SHIFT))
+
+#define TP0_PERFCOUNTER0_SELECT_GET_PERFCOUNTER_SELECT(tp0_perfcounter0_select) \
+ ((tp0_perfcounter0_select & TP0_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_MASK) >> TP0_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#define TP0_PERFCOUNTER0_SELECT_SET_PERFCOUNTER_SELECT(tp0_perfcounter0_select_reg, perfcounter_select) \
+ tp0_perfcounter0_select_reg = (tp0_perfcounter0_select_reg & ~TP0_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_MASK) | (perfcounter_select << TP0_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tp0_perfcounter0_select_t {
+ unsigned int perfcounter_select : TP0_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SIZE;
+ unsigned int : 24;
+ } tp0_perfcounter0_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tp0_perfcounter0_select_t {
+ unsigned int : 24;
+ unsigned int perfcounter_select : TP0_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SIZE;
+ } tp0_perfcounter0_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tp0_perfcounter0_select_t f;
+} tp0_perfcounter0_select_u;
+
+
+/*
+ * TP0_PERFCOUNTER0_HI struct
+ */
+
+#define TP0_PERFCOUNTER0_HI_PERFCOUNTER_HI_SIZE 16
+
+#define TP0_PERFCOUNTER0_HI_PERFCOUNTER_HI_SHIFT 0
+
+#define TP0_PERFCOUNTER0_HI_PERFCOUNTER_HI_MASK 0x0000ffff
+
+#define TP0_PERFCOUNTER0_HI_MASK \
+ (TP0_PERFCOUNTER0_HI_PERFCOUNTER_HI_MASK)
+
+#define TP0_PERFCOUNTER0_HI(perfcounter_hi) \
+ ((perfcounter_hi << TP0_PERFCOUNTER0_HI_PERFCOUNTER_HI_SHIFT))
+
+#define TP0_PERFCOUNTER0_HI_GET_PERFCOUNTER_HI(tp0_perfcounter0_hi) \
+ ((tp0_perfcounter0_hi & TP0_PERFCOUNTER0_HI_PERFCOUNTER_HI_MASK) >> TP0_PERFCOUNTER0_HI_PERFCOUNTER_HI_SHIFT)
+
+#define TP0_PERFCOUNTER0_HI_SET_PERFCOUNTER_HI(tp0_perfcounter0_hi_reg, perfcounter_hi) \
+ tp0_perfcounter0_hi_reg = (tp0_perfcounter0_hi_reg & ~TP0_PERFCOUNTER0_HI_PERFCOUNTER_HI_MASK) | (perfcounter_hi << TP0_PERFCOUNTER0_HI_PERFCOUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tp0_perfcounter0_hi_t {
+ unsigned int perfcounter_hi : TP0_PERFCOUNTER0_HI_PERFCOUNTER_HI_SIZE;
+ unsigned int : 16;
+ } tp0_perfcounter0_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tp0_perfcounter0_hi_t {
+ unsigned int : 16;
+ unsigned int perfcounter_hi : TP0_PERFCOUNTER0_HI_PERFCOUNTER_HI_SIZE;
+ } tp0_perfcounter0_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tp0_perfcounter0_hi_t f;
+} tp0_perfcounter0_hi_u;
+
+
+/*
+ * TP0_PERFCOUNTER0_LOW struct
+ */
+
+#define TP0_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SIZE 32
+
+#define TP0_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SHIFT 0
+
+#define TP0_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_MASK 0xffffffff
+
+#define TP0_PERFCOUNTER0_LOW_MASK \
+ (TP0_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_MASK)
+
+#define TP0_PERFCOUNTER0_LOW(perfcounter_low) \
+ ((perfcounter_low << TP0_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SHIFT))
+
+#define TP0_PERFCOUNTER0_LOW_GET_PERFCOUNTER_LOW(tp0_perfcounter0_low) \
+ ((tp0_perfcounter0_low & TP0_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_MASK) >> TP0_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#define TP0_PERFCOUNTER0_LOW_SET_PERFCOUNTER_LOW(tp0_perfcounter0_low_reg, perfcounter_low) \
+ tp0_perfcounter0_low_reg = (tp0_perfcounter0_low_reg & ~TP0_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_MASK) | (perfcounter_low << TP0_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tp0_perfcounter0_low_t {
+ unsigned int perfcounter_low : TP0_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SIZE;
+ } tp0_perfcounter0_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tp0_perfcounter0_low_t {
+ unsigned int perfcounter_low : TP0_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SIZE;
+ } tp0_perfcounter0_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tp0_perfcounter0_low_t f;
+} tp0_perfcounter0_low_u;
+
+
+/*
+ * TP0_PERFCOUNTER1_SELECT struct
+ */
+
+#define TP0_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SIZE 8
+
+#define TP0_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SHIFT 0
+
+#define TP0_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_MASK 0x000000ff
+
+#define TP0_PERFCOUNTER1_SELECT_MASK \
+ (TP0_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_MASK)
+
+#define TP0_PERFCOUNTER1_SELECT(perfcounter_select) \
+ ((perfcounter_select << TP0_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SHIFT))
+
+#define TP0_PERFCOUNTER1_SELECT_GET_PERFCOUNTER_SELECT(tp0_perfcounter1_select) \
+ ((tp0_perfcounter1_select & TP0_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_MASK) >> TP0_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#define TP0_PERFCOUNTER1_SELECT_SET_PERFCOUNTER_SELECT(tp0_perfcounter1_select_reg, perfcounter_select) \
+ tp0_perfcounter1_select_reg = (tp0_perfcounter1_select_reg & ~TP0_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_MASK) | (perfcounter_select << TP0_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tp0_perfcounter1_select_t {
+ unsigned int perfcounter_select : TP0_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SIZE;
+ unsigned int : 24;
+ } tp0_perfcounter1_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tp0_perfcounter1_select_t {
+ unsigned int : 24;
+ unsigned int perfcounter_select : TP0_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SIZE;
+ } tp0_perfcounter1_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tp0_perfcounter1_select_t f;
+} tp0_perfcounter1_select_u;
+
+
+/*
+ * TP0_PERFCOUNTER1_HI struct
+ */
+
+#define TP0_PERFCOUNTER1_HI_PERFCOUNTER_HI_SIZE 16
+
+#define TP0_PERFCOUNTER1_HI_PERFCOUNTER_HI_SHIFT 0
+
+#define TP0_PERFCOUNTER1_HI_PERFCOUNTER_HI_MASK 0x0000ffff
+
+#define TP0_PERFCOUNTER1_HI_MASK \
+ (TP0_PERFCOUNTER1_HI_PERFCOUNTER_HI_MASK)
+
+#define TP0_PERFCOUNTER1_HI(perfcounter_hi) \
+ ((perfcounter_hi << TP0_PERFCOUNTER1_HI_PERFCOUNTER_HI_SHIFT))
+
+#define TP0_PERFCOUNTER1_HI_GET_PERFCOUNTER_HI(tp0_perfcounter1_hi) \
+ ((tp0_perfcounter1_hi & TP0_PERFCOUNTER1_HI_PERFCOUNTER_HI_MASK) >> TP0_PERFCOUNTER1_HI_PERFCOUNTER_HI_SHIFT)
+
+#define TP0_PERFCOUNTER1_HI_SET_PERFCOUNTER_HI(tp0_perfcounter1_hi_reg, perfcounter_hi) \
+ tp0_perfcounter1_hi_reg = (tp0_perfcounter1_hi_reg & ~TP0_PERFCOUNTER1_HI_PERFCOUNTER_HI_MASK) | (perfcounter_hi << TP0_PERFCOUNTER1_HI_PERFCOUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tp0_perfcounter1_hi_t {
+ unsigned int perfcounter_hi : TP0_PERFCOUNTER1_HI_PERFCOUNTER_HI_SIZE;
+ unsigned int : 16;
+ } tp0_perfcounter1_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tp0_perfcounter1_hi_t {
+ unsigned int : 16;
+ unsigned int perfcounter_hi : TP0_PERFCOUNTER1_HI_PERFCOUNTER_HI_SIZE;
+ } tp0_perfcounter1_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tp0_perfcounter1_hi_t f;
+} tp0_perfcounter1_hi_u;
+
+
+/*
+ * TP0_PERFCOUNTER1_LOW struct
+ */
+
+#define TP0_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SIZE 32
+
+#define TP0_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SHIFT 0
+
+#define TP0_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_MASK 0xffffffff
+
+#define TP0_PERFCOUNTER1_LOW_MASK \
+ (TP0_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_MASK)
+
+#define TP0_PERFCOUNTER1_LOW(perfcounter_low) \
+ ((perfcounter_low << TP0_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SHIFT))
+
+#define TP0_PERFCOUNTER1_LOW_GET_PERFCOUNTER_LOW(tp0_perfcounter1_low) \
+ ((tp0_perfcounter1_low & TP0_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_MASK) >> TP0_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#define TP0_PERFCOUNTER1_LOW_SET_PERFCOUNTER_LOW(tp0_perfcounter1_low_reg, perfcounter_low) \
+ tp0_perfcounter1_low_reg = (tp0_perfcounter1_low_reg & ~TP0_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_MASK) | (perfcounter_low << TP0_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tp0_perfcounter1_low_t {
+ unsigned int perfcounter_low : TP0_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SIZE;
+ } tp0_perfcounter1_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tp0_perfcounter1_low_t {
+ unsigned int perfcounter_low : TP0_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SIZE;
+ } tp0_perfcounter1_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tp0_perfcounter1_low_t f;
+} tp0_perfcounter1_low_u;
+
+
+/*
+ * TCM_PERFCOUNTER0_SELECT struct
+ */
+
+#define TCM_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SIZE 8
+
+#define TCM_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SHIFT 0
+
+#define TCM_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_MASK 0x000000ff
+
+#define TCM_PERFCOUNTER0_SELECT_MASK \
+ (TCM_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_MASK)
+
+#define TCM_PERFCOUNTER0_SELECT(perfcounter_select) \
+ ((perfcounter_select << TCM_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SHIFT))
+
+#define TCM_PERFCOUNTER0_SELECT_GET_PERFCOUNTER_SELECT(tcm_perfcounter0_select) \
+ ((tcm_perfcounter0_select & TCM_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_MASK) >> TCM_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#define TCM_PERFCOUNTER0_SELECT_SET_PERFCOUNTER_SELECT(tcm_perfcounter0_select_reg, perfcounter_select) \
+ tcm_perfcounter0_select_reg = (tcm_perfcounter0_select_reg & ~TCM_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_MASK) | (perfcounter_select << TCM_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcm_perfcounter0_select_t {
+ unsigned int perfcounter_select : TCM_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SIZE;
+ unsigned int : 24;
+ } tcm_perfcounter0_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcm_perfcounter0_select_t {
+ unsigned int : 24;
+ unsigned int perfcounter_select : TCM_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SIZE;
+ } tcm_perfcounter0_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcm_perfcounter0_select_t f;
+} tcm_perfcounter0_select_u;
+
+
+/*
+ * TCM_PERFCOUNTER1_SELECT struct
+ */
+
+#define TCM_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SIZE 8
+
+#define TCM_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SHIFT 0
+
+#define TCM_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_MASK 0x000000ff
+
+#define TCM_PERFCOUNTER1_SELECT_MASK \
+ (TCM_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_MASK)
+
+#define TCM_PERFCOUNTER1_SELECT(perfcounter_select) \
+ ((perfcounter_select << TCM_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SHIFT))
+
+#define TCM_PERFCOUNTER1_SELECT_GET_PERFCOUNTER_SELECT(tcm_perfcounter1_select) \
+ ((tcm_perfcounter1_select & TCM_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_MASK) >> TCM_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#define TCM_PERFCOUNTER1_SELECT_SET_PERFCOUNTER_SELECT(tcm_perfcounter1_select_reg, perfcounter_select) \
+ tcm_perfcounter1_select_reg = (tcm_perfcounter1_select_reg & ~TCM_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_MASK) | (perfcounter_select << TCM_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcm_perfcounter1_select_t {
+ unsigned int perfcounter_select : TCM_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SIZE;
+ unsigned int : 24;
+ } tcm_perfcounter1_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcm_perfcounter1_select_t {
+ unsigned int : 24;
+ unsigned int perfcounter_select : TCM_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SIZE;
+ } tcm_perfcounter1_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcm_perfcounter1_select_t f;
+} tcm_perfcounter1_select_u;
+
+
+/*
+ * TCM_PERFCOUNTER0_HI struct
+ */
+
+#define TCM_PERFCOUNTER0_HI_PERFCOUNTER_HI_SIZE 16
+
+#define TCM_PERFCOUNTER0_HI_PERFCOUNTER_HI_SHIFT 0
+
+#define TCM_PERFCOUNTER0_HI_PERFCOUNTER_HI_MASK 0x0000ffff
+
+#define TCM_PERFCOUNTER0_HI_MASK \
+ (TCM_PERFCOUNTER0_HI_PERFCOUNTER_HI_MASK)
+
+#define TCM_PERFCOUNTER0_HI(perfcounter_hi) \
+ ((perfcounter_hi << TCM_PERFCOUNTER0_HI_PERFCOUNTER_HI_SHIFT))
+
+#define TCM_PERFCOUNTER0_HI_GET_PERFCOUNTER_HI(tcm_perfcounter0_hi) \
+ ((tcm_perfcounter0_hi & TCM_PERFCOUNTER0_HI_PERFCOUNTER_HI_MASK) >> TCM_PERFCOUNTER0_HI_PERFCOUNTER_HI_SHIFT)
+
+#define TCM_PERFCOUNTER0_HI_SET_PERFCOUNTER_HI(tcm_perfcounter0_hi_reg, perfcounter_hi) \
+ tcm_perfcounter0_hi_reg = (tcm_perfcounter0_hi_reg & ~TCM_PERFCOUNTER0_HI_PERFCOUNTER_HI_MASK) | (perfcounter_hi << TCM_PERFCOUNTER0_HI_PERFCOUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcm_perfcounter0_hi_t {
+ unsigned int perfcounter_hi : TCM_PERFCOUNTER0_HI_PERFCOUNTER_HI_SIZE;
+ unsigned int : 16;
+ } tcm_perfcounter0_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcm_perfcounter0_hi_t {
+ unsigned int : 16;
+ unsigned int perfcounter_hi : TCM_PERFCOUNTER0_HI_PERFCOUNTER_HI_SIZE;
+ } tcm_perfcounter0_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcm_perfcounter0_hi_t f;
+} tcm_perfcounter0_hi_u;
+
+
+/*
+ * TCM_PERFCOUNTER1_HI struct
+ */
+
+#define TCM_PERFCOUNTER1_HI_PERFCOUNTER_HI_SIZE 16
+
+#define TCM_PERFCOUNTER1_HI_PERFCOUNTER_HI_SHIFT 0
+
+#define TCM_PERFCOUNTER1_HI_PERFCOUNTER_HI_MASK 0x0000ffff
+
+#define TCM_PERFCOUNTER1_HI_MASK \
+ (TCM_PERFCOUNTER1_HI_PERFCOUNTER_HI_MASK)
+
+#define TCM_PERFCOUNTER1_HI(perfcounter_hi) \
+ ((perfcounter_hi << TCM_PERFCOUNTER1_HI_PERFCOUNTER_HI_SHIFT))
+
+#define TCM_PERFCOUNTER1_HI_GET_PERFCOUNTER_HI(tcm_perfcounter1_hi) \
+ ((tcm_perfcounter1_hi & TCM_PERFCOUNTER1_HI_PERFCOUNTER_HI_MASK) >> TCM_PERFCOUNTER1_HI_PERFCOUNTER_HI_SHIFT)
+
+#define TCM_PERFCOUNTER1_HI_SET_PERFCOUNTER_HI(tcm_perfcounter1_hi_reg, perfcounter_hi) \
+ tcm_perfcounter1_hi_reg = (tcm_perfcounter1_hi_reg & ~TCM_PERFCOUNTER1_HI_PERFCOUNTER_HI_MASK) | (perfcounter_hi << TCM_PERFCOUNTER1_HI_PERFCOUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcm_perfcounter1_hi_t {
+ unsigned int perfcounter_hi : TCM_PERFCOUNTER1_HI_PERFCOUNTER_HI_SIZE;
+ unsigned int : 16;
+ } tcm_perfcounter1_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcm_perfcounter1_hi_t {
+ unsigned int : 16;
+ unsigned int perfcounter_hi : TCM_PERFCOUNTER1_HI_PERFCOUNTER_HI_SIZE;
+ } tcm_perfcounter1_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcm_perfcounter1_hi_t f;
+} tcm_perfcounter1_hi_u;
+
+
+/*
+ * TCM_PERFCOUNTER0_LOW struct
+ */
+
+#define TCM_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SIZE 32
+
+#define TCM_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SHIFT 0
+
+#define TCM_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_MASK 0xffffffff
+
+#define TCM_PERFCOUNTER0_LOW_MASK \
+ (TCM_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_MASK)
+
+#define TCM_PERFCOUNTER0_LOW(perfcounter_low) \
+ ((perfcounter_low << TCM_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SHIFT))
+
+#define TCM_PERFCOUNTER0_LOW_GET_PERFCOUNTER_LOW(tcm_perfcounter0_low) \
+ ((tcm_perfcounter0_low & TCM_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_MASK) >> TCM_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#define TCM_PERFCOUNTER0_LOW_SET_PERFCOUNTER_LOW(tcm_perfcounter0_low_reg, perfcounter_low) \
+ tcm_perfcounter0_low_reg = (tcm_perfcounter0_low_reg & ~TCM_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_MASK) | (perfcounter_low << TCM_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcm_perfcounter0_low_t {
+ unsigned int perfcounter_low : TCM_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcm_perfcounter0_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcm_perfcounter0_low_t {
+ unsigned int perfcounter_low : TCM_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcm_perfcounter0_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcm_perfcounter0_low_t f;
+} tcm_perfcounter0_low_u;
+
+
+/*
+ * TCM_PERFCOUNTER1_LOW struct
+ */
+
+#define TCM_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SIZE 32
+
+#define TCM_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SHIFT 0
+
+#define TCM_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_MASK 0xffffffff
+
+#define TCM_PERFCOUNTER1_LOW_MASK \
+ (TCM_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_MASK)
+
+#define TCM_PERFCOUNTER1_LOW(perfcounter_low) \
+ ((perfcounter_low << TCM_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SHIFT))
+
+#define TCM_PERFCOUNTER1_LOW_GET_PERFCOUNTER_LOW(tcm_perfcounter1_low) \
+ ((tcm_perfcounter1_low & TCM_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_MASK) >> TCM_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#define TCM_PERFCOUNTER1_LOW_SET_PERFCOUNTER_LOW(tcm_perfcounter1_low_reg, perfcounter_low) \
+ tcm_perfcounter1_low_reg = (tcm_perfcounter1_low_reg & ~TCM_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_MASK) | (perfcounter_low << TCM_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcm_perfcounter1_low_t {
+ unsigned int perfcounter_low : TCM_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcm_perfcounter1_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcm_perfcounter1_low_t {
+ unsigned int perfcounter_low : TCM_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcm_perfcounter1_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcm_perfcounter1_low_t f;
+} tcm_perfcounter1_low_u;
+
+
+/*
+ * TCF_PERFCOUNTER0_SELECT struct
+ */
+
+#define TCF_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SIZE 8
+
+#define TCF_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SHIFT 0
+
+#define TCF_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_MASK 0x000000ff
+
+#define TCF_PERFCOUNTER0_SELECT_MASK \
+ (TCF_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_MASK)
+
+#define TCF_PERFCOUNTER0_SELECT(perfcounter_select) \
+ ((perfcounter_select << TCF_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SHIFT))
+
+#define TCF_PERFCOUNTER0_SELECT_GET_PERFCOUNTER_SELECT(tcf_perfcounter0_select) \
+ ((tcf_perfcounter0_select & TCF_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_MASK) >> TCF_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#define TCF_PERFCOUNTER0_SELECT_SET_PERFCOUNTER_SELECT(tcf_perfcounter0_select_reg, perfcounter_select) \
+ tcf_perfcounter0_select_reg = (tcf_perfcounter0_select_reg & ~TCF_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_MASK) | (perfcounter_select << TCF_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter0_select_t {
+ unsigned int perfcounter_select : TCF_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SIZE;
+ unsigned int : 24;
+ } tcf_perfcounter0_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter0_select_t {
+ unsigned int : 24;
+ unsigned int perfcounter_select : TCF_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SIZE;
+ } tcf_perfcounter0_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter0_select_t f;
+} tcf_perfcounter0_select_u;
+
+
+/*
+ * TCF_PERFCOUNTER1_SELECT struct
+ */
+
+#define TCF_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SIZE 8
+
+#define TCF_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SHIFT 0
+
+#define TCF_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_MASK 0x000000ff
+
+#define TCF_PERFCOUNTER1_SELECT_MASK \
+ (TCF_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_MASK)
+
+#define TCF_PERFCOUNTER1_SELECT(perfcounter_select) \
+ ((perfcounter_select << TCF_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SHIFT))
+
+#define TCF_PERFCOUNTER1_SELECT_GET_PERFCOUNTER_SELECT(tcf_perfcounter1_select) \
+ ((tcf_perfcounter1_select & TCF_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_MASK) >> TCF_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#define TCF_PERFCOUNTER1_SELECT_SET_PERFCOUNTER_SELECT(tcf_perfcounter1_select_reg, perfcounter_select) \
+ tcf_perfcounter1_select_reg = (tcf_perfcounter1_select_reg & ~TCF_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_MASK) | (perfcounter_select << TCF_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter1_select_t {
+ unsigned int perfcounter_select : TCF_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SIZE;
+ unsigned int : 24;
+ } tcf_perfcounter1_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter1_select_t {
+ unsigned int : 24;
+ unsigned int perfcounter_select : TCF_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SIZE;
+ } tcf_perfcounter1_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter1_select_t f;
+} tcf_perfcounter1_select_u;
+
+
+/*
+ * TCF_PERFCOUNTER2_SELECT struct
+ */
+
+#define TCF_PERFCOUNTER2_SELECT_PERFCOUNTER_SELECT_SIZE 8
+
+#define TCF_PERFCOUNTER2_SELECT_PERFCOUNTER_SELECT_SHIFT 0
+
+#define TCF_PERFCOUNTER2_SELECT_PERFCOUNTER_SELECT_MASK 0x000000ff
+
+#define TCF_PERFCOUNTER2_SELECT_MASK \
+ (TCF_PERFCOUNTER2_SELECT_PERFCOUNTER_SELECT_MASK)
+
+#define TCF_PERFCOUNTER2_SELECT(perfcounter_select) \
+ ((perfcounter_select << TCF_PERFCOUNTER2_SELECT_PERFCOUNTER_SELECT_SHIFT))
+
+#define TCF_PERFCOUNTER2_SELECT_GET_PERFCOUNTER_SELECT(tcf_perfcounter2_select) \
+ ((tcf_perfcounter2_select & TCF_PERFCOUNTER2_SELECT_PERFCOUNTER_SELECT_MASK) >> TCF_PERFCOUNTER2_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#define TCF_PERFCOUNTER2_SELECT_SET_PERFCOUNTER_SELECT(tcf_perfcounter2_select_reg, perfcounter_select) \
+ tcf_perfcounter2_select_reg = (tcf_perfcounter2_select_reg & ~TCF_PERFCOUNTER2_SELECT_PERFCOUNTER_SELECT_MASK) | (perfcounter_select << TCF_PERFCOUNTER2_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter2_select_t {
+ unsigned int perfcounter_select : TCF_PERFCOUNTER2_SELECT_PERFCOUNTER_SELECT_SIZE;
+ unsigned int : 24;
+ } tcf_perfcounter2_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter2_select_t {
+ unsigned int : 24;
+ unsigned int perfcounter_select : TCF_PERFCOUNTER2_SELECT_PERFCOUNTER_SELECT_SIZE;
+ } tcf_perfcounter2_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter2_select_t f;
+} tcf_perfcounter2_select_u;
+
+
+/*
+ * TCF_PERFCOUNTER3_SELECT struct
+ */
+
+#define TCF_PERFCOUNTER3_SELECT_PERFCOUNTER_SELECT_SIZE 8
+
+#define TCF_PERFCOUNTER3_SELECT_PERFCOUNTER_SELECT_SHIFT 0
+
+#define TCF_PERFCOUNTER3_SELECT_PERFCOUNTER_SELECT_MASK 0x000000ff
+
+#define TCF_PERFCOUNTER3_SELECT_MASK \
+ (TCF_PERFCOUNTER3_SELECT_PERFCOUNTER_SELECT_MASK)
+
+#define TCF_PERFCOUNTER3_SELECT(perfcounter_select) \
+ ((perfcounter_select << TCF_PERFCOUNTER3_SELECT_PERFCOUNTER_SELECT_SHIFT))
+
+#define TCF_PERFCOUNTER3_SELECT_GET_PERFCOUNTER_SELECT(tcf_perfcounter3_select) \
+ ((tcf_perfcounter3_select & TCF_PERFCOUNTER3_SELECT_PERFCOUNTER_SELECT_MASK) >> TCF_PERFCOUNTER3_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#define TCF_PERFCOUNTER3_SELECT_SET_PERFCOUNTER_SELECT(tcf_perfcounter3_select_reg, perfcounter_select) \
+ tcf_perfcounter3_select_reg = (tcf_perfcounter3_select_reg & ~TCF_PERFCOUNTER3_SELECT_PERFCOUNTER_SELECT_MASK) | (perfcounter_select << TCF_PERFCOUNTER3_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter3_select_t {
+ unsigned int perfcounter_select : TCF_PERFCOUNTER3_SELECT_PERFCOUNTER_SELECT_SIZE;
+ unsigned int : 24;
+ } tcf_perfcounter3_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter3_select_t {
+ unsigned int : 24;
+ unsigned int perfcounter_select : TCF_PERFCOUNTER3_SELECT_PERFCOUNTER_SELECT_SIZE;
+ } tcf_perfcounter3_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter3_select_t f;
+} tcf_perfcounter3_select_u;
+
+
+/*
+ * TCF_PERFCOUNTER4_SELECT struct
+ */
+
+#define TCF_PERFCOUNTER4_SELECT_PERFCOUNTER_SELECT_SIZE 8
+
+#define TCF_PERFCOUNTER4_SELECT_PERFCOUNTER_SELECT_SHIFT 0
+
+#define TCF_PERFCOUNTER4_SELECT_PERFCOUNTER_SELECT_MASK 0x000000ff
+
+#define TCF_PERFCOUNTER4_SELECT_MASK \
+ (TCF_PERFCOUNTER4_SELECT_PERFCOUNTER_SELECT_MASK)
+
+#define TCF_PERFCOUNTER4_SELECT(perfcounter_select) \
+ ((perfcounter_select << TCF_PERFCOUNTER4_SELECT_PERFCOUNTER_SELECT_SHIFT))
+
+#define TCF_PERFCOUNTER4_SELECT_GET_PERFCOUNTER_SELECT(tcf_perfcounter4_select) \
+ ((tcf_perfcounter4_select & TCF_PERFCOUNTER4_SELECT_PERFCOUNTER_SELECT_MASK) >> TCF_PERFCOUNTER4_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#define TCF_PERFCOUNTER4_SELECT_SET_PERFCOUNTER_SELECT(tcf_perfcounter4_select_reg, perfcounter_select) \
+ tcf_perfcounter4_select_reg = (tcf_perfcounter4_select_reg & ~TCF_PERFCOUNTER4_SELECT_PERFCOUNTER_SELECT_MASK) | (perfcounter_select << TCF_PERFCOUNTER4_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter4_select_t {
+ unsigned int perfcounter_select : TCF_PERFCOUNTER4_SELECT_PERFCOUNTER_SELECT_SIZE;
+ unsigned int : 24;
+ } tcf_perfcounter4_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter4_select_t {
+ unsigned int : 24;
+ unsigned int perfcounter_select : TCF_PERFCOUNTER4_SELECT_PERFCOUNTER_SELECT_SIZE;
+ } tcf_perfcounter4_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter4_select_t f;
+} tcf_perfcounter4_select_u;
+
+
+/*
+ * TCF_PERFCOUNTER5_SELECT struct
+ */
+
+#define TCF_PERFCOUNTER5_SELECT_PERFCOUNTER_SELECT_SIZE 8
+
+#define TCF_PERFCOUNTER5_SELECT_PERFCOUNTER_SELECT_SHIFT 0
+
+#define TCF_PERFCOUNTER5_SELECT_PERFCOUNTER_SELECT_MASK 0x000000ff
+
+#define TCF_PERFCOUNTER5_SELECT_MASK \
+ (TCF_PERFCOUNTER5_SELECT_PERFCOUNTER_SELECT_MASK)
+
+#define TCF_PERFCOUNTER5_SELECT(perfcounter_select) \
+ ((perfcounter_select << TCF_PERFCOUNTER5_SELECT_PERFCOUNTER_SELECT_SHIFT))
+
+#define TCF_PERFCOUNTER5_SELECT_GET_PERFCOUNTER_SELECT(tcf_perfcounter5_select) \
+ ((tcf_perfcounter5_select & TCF_PERFCOUNTER5_SELECT_PERFCOUNTER_SELECT_MASK) >> TCF_PERFCOUNTER5_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#define TCF_PERFCOUNTER5_SELECT_SET_PERFCOUNTER_SELECT(tcf_perfcounter5_select_reg, perfcounter_select) \
+ tcf_perfcounter5_select_reg = (tcf_perfcounter5_select_reg & ~TCF_PERFCOUNTER5_SELECT_PERFCOUNTER_SELECT_MASK) | (perfcounter_select << TCF_PERFCOUNTER5_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter5_select_t {
+ unsigned int perfcounter_select : TCF_PERFCOUNTER5_SELECT_PERFCOUNTER_SELECT_SIZE;
+ unsigned int : 24;
+ } tcf_perfcounter5_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter5_select_t {
+ unsigned int : 24;
+ unsigned int perfcounter_select : TCF_PERFCOUNTER5_SELECT_PERFCOUNTER_SELECT_SIZE;
+ } tcf_perfcounter5_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter5_select_t f;
+} tcf_perfcounter5_select_u;
+
+
+/*
+ * TCF_PERFCOUNTER6_SELECT struct
+ */
+
+#define TCF_PERFCOUNTER6_SELECT_PERFCOUNTER_SELECT_SIZE 8
+
+#define TCF_PERFCOUNTER6_SELECT_PERFCOUNTER_SELECT_SHIFT 0
+
+#define TCF_PERFCOUNTER6_SELECT_PERFCOUNTER_SELECT_MASK 0x000000ff
+
+#define TCF_PERFCOUNTER6_SELECT_MASK \
+ (TCF_PERFCOUNTER6_SELECT_PERFCOUNTER_SELECT_MASK)
+
+#define TCF_PERFCOUNTER6_SELECT(perfcounter_select) \
+ ((perfcounter_select << TCF_PERFCOUNTER6_SELECT_PERFCOUNTER_SELECT_SHIFT))
+
+#define TCF_PERFCOUNTER6_SELECT_GET_PERFCOUNTER_SELECT(tcf_perfcounter6_select) \
+ ((tcf_perfcounter6_select & TCF_PERFCOUNTER6_SELECT_PERFCOUNTER_SELECT_MASK) >> TCF_PERFCOUNTER6_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#define TCF_PERFCOUNTER6_SELECT_SET_PERFCOUNTER_SELECT(tcf_perfcounter6_select_reg, perfcounter_select) \
+ tcf_perfcounter6_select_reg = (tcf_perfcounter6_select_reg & ~TCF_PERFCOUNTER6_SELECT_PERFCOUNTER_SELECT_MASK) | (perfcounter_select << TCF_PERFCOUNTER6_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter6_select_t {
+ unsigned int perfcounter_select : TCF_PERFCOUNTER6_SELECT_PERFCOUNTER_SELECT_SIZE;
+ unsigned int : 24;
+ } tcf_perfcounter6_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter6_select_t {
+ unsigned int : 24;
+ unsigned int perfcounter_select : TCF_PERFCOUNTER6_SELECT_PERFCOUNTER_SELECT_SIZE;
+ } tcf_perfcounter6_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter6_select_t f;
+} tcf_perfcounter6_select_u;
+
+
+/*
+ * TCF_PERFCOUNTER7_SELECT struct
+ */
+
+#define TCF_PERFCOUNTER7_SELECT_PERFCOUNTER_SELECT_SIZE 8
+
+#define TCF_PERFCOUNTER7_SELECT_PERFCOUNTER_SELECT_SHIFT 0
+
+#define TCF_PERFCOUNTER7_SELECT_PERFCOUNTER_SELECT_MASK 0x000000ff
+
+#define TCF_PERFCOUNTER7_SELECT_MASK \
+ (TCF_PERFCOUNTER7_SELECT_PERFCOUNTER_SELECT_MASK)
+
+#define TCF_PERFCOUNTER7_SELECT(perfcounter_select) \
+ ((perfcounter_select << TCF_PERFCOUNTER7_SELECT_PERFCOUNTER_SELECT_SHIFT))
+
+#define TCF_PERFCOUNTER7_SELECT_GET_PERFCOUNTER_SELECT(tcf_perfcounter7_select) \
+ ((tcf_perfcounter7_select & TCF_PERFCOUNTER7_SELECT_PERFCOUNTER_SELECT_MASK) >> TCF_PERFCOUNTER7_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#define TCF_PERFCOUNTER7_SELECT_SET_PERFCOUNTER_SELECT(tcf_perfcounter7_select_reg, perfcounter_select) \
+ tcf_perfcounter7_select_reg = (tcf_perfcounter7_select_reg & ~TCF_PERFCOUNTER7_SELECT_PERFCOUNTER_SELECT_MASK) | (perfcounter_select << TCF_PERFCOUNTER7_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter7_select_t {
+ unsigned int perfcounter_select : TCF_PERFCOUNTER7_SELECT_PERFCOUNTER_SELECT_SIZE;
+ unsigned int : 24;
+ } tcf_perfcounter7_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter7_select_t {
+ unsigned int : 24;
+ unsigned int perfcounter_select : TCF_PERFCOUNTER7_SELECT_PERFCOUNTER_SELECT_SIZE;
+ } tcf_perfcounter7_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter7_select_t f;
+} tcf_perfcounter7_select_u;
+
+
+/*
+ * TCF_PERFCOUNTER8_SELECT struct
+ */
+
+#define TCF_PERFCOUNTER8_SELECT_PERFCOUNTER_SELECT_SIZE 8
+
+#define TCF_PERFCOUNTER8_SELECT_PERFCOUNTER_SELECT_SHIFT 0
+
+#define TCF_PERFCOUNTER8_SELECT_PERFCOUNTER_SELECT_MASK 0x000000ff
+
+#define TCF_PERFCOUNTER8_SELECT_MASK \
+ (TCF_PERFCOUNTER8_SELECT_PERFCOUNTER_SELECT_MASK)
+
+#define TCF_PERFCOUNTER8_SELECT(perfcounter_select) \
+ ((perfcounter_select << TCF_PERFCOUNTER8_SELECT_PERFCOUNTER_SELECT_SHIFT))
+
+#define TCF_PERFCOUNTER8_SELECT_GET_PERFCOUNTER_SELECT(tcf_perfcounter8_select) \
+ ((tcf_perfcounter8_select & TCF_PERFCOUNTER8_SELECT_PERFCOUNTER_SELECT_MASK) >> TCF_PERFCOUNTER8_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#define TCF_PERFCOUNTER8_SELECT_SET_PERFCOUNTER_SELECT(tcf_perfcounter8_select_reg, perfcounter_select) \
+ tcf_perfcounter8_select_reg = (tcf_perfcounter8_select_reg & ~TCF_PERFCOUNTER8_SELECT_PERFCOUNTER_SELECT_MASK) | (perfcounter_select << TCF_PERFCOUNTER8_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter8_select_t {
+ unsigned int perfcounter_select : TCF_PERFCOUNTER8_SELECT_PERFCOUNTER_SELECT_SIZE;
+ unsigned int : 24;
+ } tcf_perfcounter8_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter8_select_t {
+ unsigned int : 24;
+ unsigned int perfcounter_select : TCF_PERFCOUNTER8_SELECT_PERFCOUNTER_SELECT_SIZE;
+ } tcf_perfcounter8_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter8_select_t f;
+} tcf_perfcounter8_select_u;
+
+
+/*
+ * TCF_PERFCOUNTER9_SELECT struct
+ */
+
+#define TCF_PERFCOUNTER9_SELECT_PERFCOUNTER_SELECT_SIZE 8
+
+#define TCF_PERFCOUNTER9_SELECT_PERFCOUNTER_SELECT_SHIFT 0
+
+#define TCF_PERFCOUNTER9_SELECT_PERFCOUNTER_SELECT_MASK 0x000000ff
+
+#define TCF_PERFCOUNTER9_SELECT_MASK \
+ (TCF_PERFCOUNTER9_SELECT_PERFCOUNTER_SELECT_MASK)
+
+#define TCF_PERFCOUNTER9_SELECT(perfcounter_select) \
+ ((perfcounter_select << TCF_PERFCOUNTER9_SELECT_PERFCOUNTER_SELECT_SHIFT))
+
+#define TCF_PERFCOUNTER9_SELECT_GET_PERFCOUNTER_SELECT(tcf_perfcounter9_select) \
+ ((tcf_perfcounter9_select & TCF_PERFCOUNTER9_SELECT_PERFCOUNTER_SELECT_MASK) >> TCF_PERFCOUNTER9_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#define TCF_PERFCOUNTER9_SELECT_SET_PERFCOUNTER_SELECT(tcf_perfcounter9_select_reg, perfcounter_select) \
+ tcf_perfcounter9_select_reg = (tcf_perfcounter9_select_reg & ~TCF_PERFCOUNTER9_SELECT_PERFCOUNTER_SELECT_MASK) | (perfcounter_select << TCF_PERFCOUNTER9_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter9_select_t {
+ unsigned int perfcounter_select : TCF_PERFCOUNTER9_SELECT_PERFCOUNTER_SELECT_SIZE;
+ unsigned int : 24;
+ } tcf_perfcounter9_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter9_select_t {
+ unsigned int : 24;
+ unsigned int perfcounter_select : TCF_PERFCOUNTER9_SELECT_PERFCOUNTER_SELECT_SIZE;
+ } tcf_perfcounter9_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter9_select_t f;
+} tcf_perfcounter9_select_u;
+
+
+/*
+ * TCF_PERFCOUNTER10_SELECT struct
+ */
+
+#define TCF_PERFCOUNTER10_SELECT_PERFCOUNTER_SELECT_SIZE 8
+
+#define TCF_PERFCOUNTER10_SELECT_PERFCOUNTER_SELECT_SHIFT 0
+
+#define TCF_PERFCOUNTER10_SELECT_PERFCOUNTER_SELECT_MASK 0x000000ff
+
+#define TCF_PERFCOUNTER10_SELECT_MASK \
+ (TCF_PERFCOUNTER10_SELECT_PERFCOUNTER_SELECT_MASK)
+
+#define TCF_PERFCOUNTER10_SELECT(perfcounter_select) \
+ ((perfcounter_select << TCF_PERFCOUNTER10_SELECT_PERFCOUNTER_SELECT_SHIFT))
+
+#define TCF_PERFCOUNTER10_SELECT_GET_PERFCOUNTER_SELECT(tcf_perfcounter10_select) \
+ ((tcf_perfcounter10_select & TCF_PERFCOUNTER10_SELECT_PERFCOUNTER_SELECT_MASK) >> TCF_PERFCOUNTER10_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#define TCF_PERFCOUNTER10_SELECT_SET_PERFCOUNTER_SELECT(tcf_perfcounter10_select_reg, perfcounter_select) \
+ tcf_perfcounter10_select_reg = (tcf_perfcounter10_select_reg & ~TCF_PERFCOUNTER10_SELECT_PERFCOUNTER_SELECT_MASK) | (perfcounter_select << TCF_PERFCOUNTER10_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter10_select_t {
+ unsigned int perfcounter_select : TCF_PERFCOUNTER10_SELECT_PERFCOUNTER_SELECT_SIZE;
+ unsigned int : 24;
+ } tcf_perfcounter10_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter10_select_t {
+ unsigned int : 24;
+ unsigned int perfcounter_select : TCF_PERFCOUNTER10_SELECT_PERFCOUNTER_SELECT_SIZE;
+ } tcf_perfcounter10_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter10_select_t f;
+} tcf_perfcounter10_select_u;
+
+
+/*
+ * TCF_PERFCOUNTER11_SELECT struct
+ */
+
+#define TCF_PERFCOUNTER11_SELECT_PERFCOUNTER_SELECT_SIZE 8
+
+#define TCF_PERFCOUNTER11_SELECT_PERFCOUNTER_SELECT_SHIFT 0
+
+#define TCF_PERFCOUNTER11_SELECT_PERFCOUNTER_SELECT_MASK 0x000000ff
+
+#define TCF_PERFCOUNTER11_SELECT_MASK \
+ (TCF_PERFCOUNTER11_SELECT_PERFCOUNTER_SELECT_MASK)
+
+#define TCF_PERFCOUNTER11_SELECT(perfcounter_select) \
+ ((perfcounter_select << TCF_PERFCOUNTER11_SELECT_PERFCOUNTER_SELECT_SHIFT))
+
+#define TCF_PERFCOUNTER11_SELECT_GET_PERFCOUNTER_SELECT(tcf_perfcounter11_select) \
+ ((tcf_perfcounter11_select & TCF_PERFCOUNTER11_SELECT_PERFCOUNTER_SELECT_MASK) >> TCF_PERFCOUNTER11_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#define TCF_PERFCOUNTER11_SELECT_SET_PERFCOUNTER_SELECT(tcf_perfcounter11_select_reg, perfcounter_select) \
+ tcf_perfcounter11_select_reg = (tcf_perfcounter11_select_reg & ~TCF_PERFCOUNTER11_SELECT_PERFCOUNTER_SELECT_MASK) | (perfcounter_select << TCF_PERFCOUNTER11_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter11_select_t {
+ unsigned int perfcounter_select : TCF_PERFCOUNTER11_SELECT_PERFCOUNTER_SELECT_SIZE;
+ unsigned int : 24;
+ } tcf_perfcounter11_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter11_select_t {
+ unsigned int : 24;
+ unsigned int perfcounter_select : TCF_PERFCOUNTER11_SELECT_PERFCOUNTER_SELECT_SIZE;
+ } tcf_perfcounter11_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter11_select_t f;
+} tcf_perfcounter11_select_u;
+
+
+/*
+ * TCF_PERFCOUNTER0_HI struct
+ */
+
+#define TCF_PERFCOUNTER0_HI_PERFCOUNTER_HI_SIZE 16
+
+#define TCF_PERFCOUNTER0_HI_PERFCOUNTER_HI_SHIFT 0
+
+#define TCF_PERFCOUNTER0_HI_PERFCOUNTER_HI_MASK 0x0000ffff
+
+#define TCF_PERFCOUNTER0_HI_MASK \
+ (TCF_PERFCOUNTER0_HI_PERFCOUNTER_HI_MASK)
+
+#define TCF_PERFCOUNTER0_HI(perfcounter_hi) \
+ ((perfcounter_hi << TCF_PERFCOUNTER0_HI_PERFCOUNTER_HI_SHIFT))
+
+#define TCF_PERFCOUNTER0_HI_GET_PERFCOUNTER_HI(tcf_perfcounter0_hi) \
+ ((tcf_perfcounter0_hi & TCF_PERFCOUNTER0_HI_PERFCOUNTER_HI_MASK) >> TCF_PERFCOUNTER0_HI_PERFCOUNTER_HI_SHIFT)
+
+#define TCF_PERFCOUNTER0_HI_SET_PERFCOUNTER_HI(tcf_perfcounter0_hi_reg, perfcounter_hi) \
+ tcf_perfcounter0_hi_reg = (tcf_perfcounter0_hi_reg & ~TCF_PERFCOUNTER0_HI_PERFCOUNTER_HI_MASK) | (perfcounter_hi << TCF_PERFCOUNTER0_HI_PERFCOUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter0_hi_t {
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER0_HI_PERFCOUNTER_HI_SIZE;
+ unsigned int : 16;
+ } tcf_perfcounter0_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter0_hi_t {
+ unsigned int : 16;
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER0_HI_PERFCOUNTER_HI_SIZE;
+ } tcf_perfcounter0_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter0_hi_t f;
+} tcf_perfcounter0_hi_u;
+
+
+/*
+ * TCF_PERFCOUNTER1_HI struct
+ */
+
+#define TCF_PERFCOUNTER1_HI_PERFCOUNTER_HI_SIZE 16
+
+#define TCF_PERFCOUNTER1_HI_PERFCOUNTER_HI_SHIFT 0
+
+#define TCF_PERFCOUNTER1_HI_PERFCOUNTER_HI_MASK 0x0000ffff
+
+#define TCF_PERFCOUNTER1_HI_MASK \
+ (TCF_PERFCOUNTER1_HI_PERFCOUNTER_HI_MASK)
+
+#define TCF_PERFCOUNTER1_HI(perfcounter_hi) \
+ ((perfcounter_hi << TCF_PERFCOUNTER1_HI_PERFCOUNTER_HI_SHIFT))
+
+#define TCF_PERFCOUNTER1_HI_GET_PERFCOUNTER_HI(tcf_perfcounter1_hi) \
+ ((tcf_perfcounter1_hi & TCF_PERFCOUNTER1_HI_PERFCOUNTER_HI_MASK) >> TCF_PERFCOUNTER1_HI_PERFCOUNTER_HI_SHIFT)
+
+#define TCF_PERFCOUNTER1_HI_SET_PERFCOUNTER_HI(tcf_perfcounter1_hi_reg, perfcounter_hi) \
+ tcf_perfcounter1_hi_reg = (tcf_perfcounter1_hi_reg & ~TCF_PERFCOUNTER1_HI_PERFCOUNTER_HI_MASK) | (perfcounter_hi << TCF_PERFCOUNTER1_HI_PERFCOUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter1_hi_t {
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER1_HI_PERFCOUNTER_HI_SIZE;
+ unsigned int : 16;
+ } tcf_perfcounter1_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter1_hi_t {
+ unsigned int : 16;
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER1_HI_PERFCOUNTER_HI_SIZE;
+ } tcf_perfcounter1_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter1_hi_t f;
+} tcf_perfcounter1_hi_u;
+
+
+/*
+ * TCF_PERFCOUNTER2_HI struct
+ */
+
+#define TCF_PERFCOUNTER2_HI_PERFCOUNTER_HI_SIZE 16
+
+#define TCF_PERFCOUNTER2_HI_PERFCOUNTER_HI_SHIFT 0
+
+#define TCF_PERFCOUNTER2_HI_PERFCOUNTER_HI_MASK 0x0000ffff
+
+#define TCF_PERFCOUNTER2_HI_MASK \
+ (TCF_PERFCOUNTER2_HI_PERFCOUNTER_HI_MASK)
+
+#define TCF_PERFCOUNTER2_HI(perfcounter_hi) \
+ ((perfcounter_hi << TCF_PERFCOUNTER2_HI_PERFCOUNTER_HI_SHIFT))
+
+#define TCF_PERFCOUNTER2_HI_GET_PERFCOUNTER_HI(tcf_perfcounter2_hi) \
+ ((tcf_perfcounter2_hi & TCF_PERFCOUNTER2_HI_PERFCOUNTER_HI_MASK) >> TCF_PERFCOUNTER2_HI_PERFCOUNTER_HI_SHIFT)
+
+#define TCF_PERFCOUNTER2_HI_SET_PERFCOUNTER_HI(tcf_perfcounter2_hi_reg, perfcounter_hi) \
+ tcf_perfcounter2_hi_reg = (tcf_perfcounter2_hi_reg & ~TCF_PERFCOUNTER2_HI_PERFCOUNTER_HI_MASK) | (perfcounter_hi << TCF_PERFCOUNTER2_HI_PERFCOUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter2_hi_t {
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER2_HI_PERFCOUNTER_HI_SIZE;
+ unsigned int : 16;
+ } tcf_perfcounter2_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter2_hi_t {
+ unsigned int : 16;
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER2_HI_PERFCOUNTER_HI_SIZE;
+ } tcf_perfcounter2_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter2_hi_t f;
+} tcf_perfcounter2_hi_u;
+
+
+/*
+ * TCF_PERFCOUNTER3_HI struct
+ */
+
+#define TCF_PERFCOUNTER3_HI_PERFCOUNTER_HI_SIZE 16
+
+#define TCF_PERFCOUNTER3_HI_PERFCOUNTER_HI_SHIFT 0
+
+#define TCF_PERFCOUNTER3_HI_PERFCOUNTER_HI_MASK 0x0000ffff
+
+#define TCF_PERFCOUNTER3_HI_MASK \
+ (TCF_PERFCOUNTER3_HI_PERFCOUNTER_HI_MASK)
+
+#define TCF_PERFCOUNTER3_HI(perfcounter_hi) \
+ ((perfcounter_hi << TCF_PERFCOUNTER3_HI_PERFCOUNTER_HI_SHIFT))
+
+#define TCF_PERFCOUNTER3_HI_GET_PERFCOUNTER_HI(tcf_perfcounter3_hi) \
+ ((tcf_perfcounter3_hi & TCF_PERFCOUNTER3_HI_PERFCOUNTER_HI_MASK) >> TCF_PERFCOUNTER3_HI_PERFCOUNTER_HI_SHIFT)
+
+#define TCF_PERFCOUNTER3_HI_SET_PERFCOUNTER_HI(tcf_perfcounter3_hi_reg, perfcounter_hi) \
+ tcf_perfcounter3_hi_reg = (tcf_perfcounter3_hi_reg & ~TCF_PERFCOUNTER3_HI_PERFCOUNTER_HI_MASK) | (perfcounter_hi << TCF_PERFCOUNTER3_HI_PERFCOUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter3_hi_t {
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER3_HI_PERFCOUNTER_HI_SIZE;
+ unsigned int : 16;
+ } tcf_perfcounter3_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter3_hi_t {
+ unsigned int : 16;
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER3_HI_PERFCOUNTER_HI_SIZE;
+ } tcf_perfcounter3_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter3_hi_t f;
+} tcf_perfcounter3_hi_u;
+
+
+/*
+ * TCF_PERFCOUNTER4_HI struct
+ */
+
+#define TCF_PERFCOUNTER4_HI_PERFCOUNTER_HI_SIZE 16
+
+#define TCF_PERFCOUNTER4_HI_PERFCOUNTER_HI_SHIFT 0
+
+#define TCF_PERFCOUNTER4_HI_PERFCOUNTER_HI_MASK 0x0000ffff
+
+#define TCF_PERFCOUNTER4_HI_MASK \
+ (TCF_PERFCOUNTER4_HI_PERFCOUNTER_HI_MASK)
+
+#define TCF_PERFCOUNTER4_HI(perfcounter_hi) \
+ ((perfcounter_hi << TCF_PERFCOUNTER4_HI_PERFCOUNTER_HI_SHIFT))
+
+#define TCF_PERFCOUNTER4_HI_GET_PERFCOUNTER_HI(tcf_perfcounter4_hi) \
+ ((tcf_perfcounter4_hi & TCF_PERFCOUNTER4_HI_PERFCOUNTER_HI_MASK) >> TCF_PERFCOUNTER4_HI_PERFCOUNTER_HI_SHIFT)
+
+#define TCF_PERFCOUNTER4_HI_SET_PERFCOUNTER_HI(tcf_perfcounter4_hi_reg, perfcounter_hi) \
+ tcf_perfcounter4_hi_reg = (tcf_perfcounter4_hi_reg & ~TCF_PERFCOUNTER4_HI_PERFCOUNTER_HI_MASK) | (perfcounter_hi << TCF_PERFCOUNTER4_HI_PERFCOUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter4_hi_t {
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER4_HI_PERFCOUNTER_HI_SIZE;
+ unsigned int : 16;
+ } tcf_perfcounter4_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter4_hi_t {
+ unsigned int : 16;
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER4_HI_PERFCOUNTER_HI_SIZE;
+ } tcf_perfcounter4_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter4_hi_t f;
+} tcf_perfcounter4_hi_u;
+
+
+/*
+ * TCF_PERFCOUNTER5_HI struct
+ */
+
+#define TCF_PERFCOUNTER5_HI_PERFCOUNTER_HI_SIZE 16
+
+#define TCF_PERFCOUNTER5_HI_PERFCOUNTER_HI_SHIFT 0
+
+#define TCF_PERFCOUNTER5_HI_PERFCOUNTER_HI_MASK 0x0000ffff
+
+#define TCF_PERFCOUNTER5_HI_MASK \
+ (TCF_PERFCOUNTER5_HI_PERFCOUNTER_HI_MASK)
+
+#define TCF_PERFCOUNTER5_HI(perfcounter_hi) \
+ ((perfcounter_hi << TCF_PERFCOUNTER5_HI_PERFCOUNTER_HI_SHIFT))
+
+#define TCF_PERFCOUNTER5_HI_GET_PERFCOUNTER_HI(tcf_perfcounter5_hi) \
+ ((tcf_perfcounter5_hi & TCF_PERFCOUNTER5_HI_PERFCOUNTER_HI_MASK) >> TCF_PERFCOUNTER5_HI_PERFCOUNTER_HI_SHIFT)
+
+#define TCF_PERFCOUNTER5_HI_SET_PERFCOUNTER_HI(tcf_perfcounter5_hi_reg, perfcounter_hi) \
+ tcf_perfcounter5_hi_reg = (tcf_perfcounter5_hi_reg & ~TCF_PERFCOUNTER5_HI_PERFCOUNTER_HI_MASK) | (perfcounter_hi << TCF_PERFCOUNTER5_HI_PERFCOUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter5_hi_t {
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER5_HI_PERFCOUNTER_HI_SIZE;
+ unsigned int : 16;
+ } tcf_perfcounter5_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter5_hi_t {
+ unsigned int : 16;
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER5_HI_PERFCOUNTER_HI_SIZE;
+ } tcf_perfcounter5_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter5_hi_t f;
+} tcf_perfcounter5_hi_u;
+
+
+/*
+ * TCF_PERFCOUNTER6_HI struct
+ */
+
+#define TCF_PERFCOUNTER6_HI_PERFCOUNTER_HI_SIZE 16
+
+#define TCF_PERFCOUNTER6_HI_PERFCOUNTER_HI_SHIFT 0
+
+#define TCF_PERFCOUNTER6_HI_PERFCOUNTER_HI_MASK 0x0000ffff
+
+#define TCF_PERFCOUNTER6_HI_MASK \
+ (TCF_PERFCOUNTER6_HI_PERFCOUNTER_HI_MASK)
+
+#define TCF_PERFCOUNTER6_HI(perfcounter_hi) \
+ ((perfcounter_hi << TCF_PERFCOUNTER6_HI_PERFCOUNTER_HI_SHIFT))
+
+#define TCF_PERFCOUNTER6_HI_GET_PERFCOUNTER_HI(tcf_perfcounter6_hi) \
+ ((tcf_perfcounter6_hi & TCF_PERFCOUNTER6_HI_PERFCOUNTER_HI_MASK) >> TCF_PERFCOUNTER6_HI_PERFCOUNTER_HI_SHIFT)
+
+#define TCF_PERFCOUNTER6_HI_SET_PERFCOUNTER_HI(tcf_perfcounter6_hi_reg, perfcounter_hi) \
+ tcf_perfcounter6_hi_reg = (tcf_perfcounter6_hi_reg & ~TCF_PERFCOUNTER6_HI_PERFCOUNTER_HI_MASK) | (perfcounter_hi << TCF_PERFCOUNTER6_HI_PERFCOUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter6_hi_t {
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER6_HI_PERFCOUNTER_HI_SIZE;
+ unsigned int : 16;
+ } tcf_perfcounter6_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter6_hi_t {
+ unsigned int : 16;
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER6_HI_PERFCOUNTER_HI_SIZE;
+ } tcf_perfcounter6_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter6_hi_t f;
+} tcf_perfcounter6_hi_u;
+
+
+/*
+ * TCF_PERFCOUNTER7_HI struct
+ */
+
+#define TCF_PERFCOUNTER7_HI_PERFCOUNTER_HI_SIZE 16
+
+#define TCF_PERFCOUNTER7_HI_PERFCOUNTER_HI_SHIFT 0
+
+#define TCF_PERFCOUNTER7_HI_PERFCOUNTER_HI_MASK 0x0000ffff
+
+#define TCF_PERFCOUNTER7_HI_MASK \
+ (TCF_PERFCOUNTER7_HI_PERFCOUNTER_HI_MASK)
+
+#define TCF_PERFCOUNTER7_HI(perfcounter_hi) \
+ ((perfcounter_hi << TCF_PERFCOUNTER7_HI_PERFCOUNTER_HI_SHIFT))
+
+#define TCF_PERFCOUNTER7_HI_GET_PERFCOUNTER_HI(tcf_perfcounter7_hi) \
+ ((tcf_perfcounter7_hi & TCF_PERFCOUNTER7_HI_PERFCOUNTER_HI_MASK) >> TCF_PERFCOUNTER7_HI_PERFCOUNTER_HI_SHIFT)
+
+#define TCF_PERFCOUNTER7_HI_SET_PERFCOUNTER_HI(tcf_perfcounter7_hi_reg, perfcounter_hi) \
+ tcf_perfcounter7_hi_reg = (tcf_perfcounter7_hi_reg & ~TCF_PERFCOUNTER7_HI_PERFCOUNTER_HI_MASK) | (perfcounter_hi << TCF_PERFCOUNTER7_HI_PERFCOUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter7_hi_t {
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER7_HI_PERFCOUNTER_HI_SIZE;
+ unsigned int : 16;
+ } tcf_perfcounter7_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter7_hi_t {
+ unsigned int : 16;
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER7_HI_PERFCOUNTER_HI_SIZE;
+ } tcf_perfcounter7_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter7_hi_t f;
+} tcf_perfcounter7_hi_u;
+
+
+/*
+ * TCF_PERFCOUNTER8_HI struct
+ */
+
+#define TCF_PERFCOUNTER8_HI_PERFCOUNTER_HI_SIZE 16
+
+#define TCF_PERFCOUNTER8_HI_PERFCOUNTER_HI_SHIFT 0
+
+#define TCF_PERFCOUNTER8_HI_PERFCOUNTER_HI_MASK 0x0000ffff
+
+#define TCF_PERFCOUNTER8_HI_MASK \
+ (TCF_PERFCOUNTER8_HI_PERFCOUNTER_HI_MASK)
+
+#define TCF_PERFCOUNTER8_HI(perfcounter_hi) \
+ ((perfcounter_hi << TCF_PERFCOUNTER8_HI_PERFCOUNTER_HI_SHIFT))
+
+#define TCF_PERFCOUNTER8_HI_GET_PERFCOUNTER_HI(tcf_perfcounter8_hi) \
+ ((tcf_perfcounter8_hi & TCF_PERFCOUNTER8_HI_PERFCOUNTER_HI_MASK) >> TCF_PERFCOUNTER8_HI_PERFCOUNTER_HI_SHIFT)
+
+#define TCF_PERFCOUNTER8_HI_SET_PERFCOUNTER_HI(tcf_perfcounter8_hi_reg, perfcounter_hi) \
+ tcf_perfcounter8_hi_reg = (tcf_perfcounter8_hi_reg & ~TCF_PERFCOUNTER8_HI_PERFCOUNTER_HI_MASK) | (perfcounter_hi << TCF_PERFCOUNTER8_HI_PERFCOUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter8_hi_t {
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER8_HI_PERFCOUNTER_HI_SIZE;
+ unsigned int : 16;
+ } tcf_perfcounter8_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter8_hi_t {
+ unsigned int : 16;
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER8_HI_PERFCOUNTER_HI_SIZE;
+ } tcf_perfcounter8_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter8_hi_t f;
+} tcf_perfcounter8_hi_u;
+
+
+/*
+ * TCF_PERFCOUNTER9_HI struct
+ */
+
+#define TCF_PERFCOUNTER9_HI_PERFCOUNTER_HI_SIZE 16
+
+#define TCF_PERFCOUNTER9_HI_PERFCOUNTER_HI_SHIFT 0
+
+#define TCF_PERFCOUNTER9_HI_PERFCOUNTER_HI_MASK 0x0000ffff
+
+#define TCF_PERFCOUNTER9_HI_MASK \
+ (TCF_PERFCOUNTER9_HI_PERFCOUNTER_HI_MASK)
+
+#define TCF_PERFCOUNTER9_HI(perfcounter_hi) \
+ ((perfcounter_hi << TCF_PERFCOUNTER9_HI_PERFCOUNTER_HI_SHIFT))
+
+#define TCF_PERFCOUNTER9_HI_GET_PERFCOUNTER_HI(tcf_perfcounter9_hi) \
+ ((tcf_perfcounter9_hi & TCF_PERFCOUNTER9_HI_PERFCOUNTER_HI_MASK) >> TCF_PERFCOUNTER9_HI_PERFCOUNTER_HI_SHIFT)
+
+#define TCF_PERFCOUNTER9_HI_SET_PERFCOUNTER_HI(tcf_perfcounter9_hi_reg, perfcounter_hi) \
+ tcf_perfcounter9_hi_reg = (tcf_perfcounter9_hi_reg & ~TCF_PERFCOUNTER9_HI_PERFCOUNTER_HI_MASK) | (perfcounter_hi << TCF_PERFCOUNTER9_HI_PERFCOUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter9_hi_t {
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER9_HI_PERFCOUNTER_HI_SIZE;
+ unsigned int : 16;
+ } tcf_perfcounter9_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter9_hi_t {
+ unsigned int : 16;
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER9_HI_PERFCOUNTER_HI_SIZE;
+ } tcf_perfcounter9_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter9_hi_t f;
+} tcf_perfcounter9_hi_u;
+
+
+/*
+ * TCF_PERFCOUNTER10_HI struct
+ */
+
+#define TCF_PERFCOUNTER10_HI_PERFCOUNTER_HI_SIZE 16
+
+#define TCF_PERFCOUNTER10_HI_PERFCOUNTER_HI_SHIFT 0
+
+#define TCF_PERFCOUNTER10_HI_PERFCOUNTER_HI_MASK 0x0000ffff
+
+#define TCF_PERFCOUNTER10_HI_MASK \
+ (TCF_PERFCOUNTER10_HI_PERFCOUNTER_HI_MASK)
+
+#define TCF_PERFCOUNTER10_HI(perfcounter_hi) \
+ ((perfcounter_hi << TCF_PERFCOUNTER10_HI_PERFCOUNTER_HI_SHIFT))
+
+#define TCF_PERFCOUNTER10_HI_GET_PERFCOUNTER_HI(tcf_perfcounter10_hi) \
+ ((tcf_perfcounter10_hi & TCF_PERFCOUNTER10_HI_PERFCOUNTER_HI_MASK) >> TCF_PERFCOUNTER10_HI_PERFCOUNTER_HI_SHIFT)
+
+#define TCF_PERFCOUNTER10_HI_SET_PERFCOUNTER_HI(tcf_perfcounter10_hi_reg, perfcounter_hi) \
+ tcf_perfcounter10_hi_reg = (tcf_perfcounter10_hi_reg & ~TCF_PERFCOUNTER10_HI_PERFCOUNTER_HI_MASK) | (perfcounter_hi << TCF_PERFCOUNTER10_HI_PERFCOUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter10_hi_t {
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER10_HI_PERFCOUNTER_HI_SIZE;
+ unsigned int : 16;
+ } tcf_perfcounter10_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter10_hi_t {
+ unsigned int : 16;
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER10_HI_PERFCOUNTER_HI_SIZE;
+ } tcf_perfcounter10_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter10_hi_t f;
+} tcf_perfcounter10_hi_u;
+
+
+/*
+ * TCF_PERFCOUNTER11_HI struct
+ */
+
+#define TCF_PERFCOUNTER11_HI_PERFCOUNTER_HI_SIZE 16
+
+#define TCF_PERFCOUNTER11_HI_PERFCOUNTER_HI_SHIFT 0
+
+#define TCF_PERFCOUNTER11_HI_PERFCOUNTER_HI_MASK 0x0000ffff
+
+#define TCF_PERFCOUNTER11_HI_MASK \
+ (TCF_PERFCOUNTER11_HI_PERFCOUNTER_HI_MASK)
+
+#define TCF_PERFCOUNTER11_HI(perfcounter_hi) \
+ ((perfcounter_hi << TCF_PERFCOUNTER11_HI_PERFCOUNTER_HI_SHIFT))
+
+#define TCF_PERFCOUNTER11_HI_GET_PERFCOUNTER_HI(tcf_perfcounter11_hi) \
+ ((tcf_perfcounter11_hi & TCF_PERFCOUNTER11_HI_PERFCOUNTER_HI_MASK) >> TCF_PERFCOUNTER11_HI_PERFCOUNTER_HI_SHIFT)
+
+#define TCF_PERFCOUNTER11_HI_SET_PERFCOUNTER_HI(tcf_perfcounter11_hi_reg, perfcounter_hi) \
+ tcf_perfcounter11_hi_reg = (tcf_perfcounter11_hi_reg & ~TCF_PERFCOUNTER11_HI_PERFCOUNTER_HI_MASK) | (perfcounter_hi << TCF_PERFCOUNTER11_HI_PERFCOUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter11_hi_t {
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER11_HI_PERFCOUNTER_HI_SIZE;
+ unsigned int : 16;
+ } tcf_perfcounter11_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter11_hi_t {
+ unsigned int : 16;
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER11_HI_PERFCOUNTER_HI_SIZE;
+ } tcf_perfcounter11_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter11_hi_t f;
+} tcf_perfcounter11_hi_u;
+
+
+/*
+ * TCF_PERFCOUNTER0_LOW struct
+ */
+
+#define TCF_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SIZE 32
+
+#define TCF_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SHIFT 0
+
+#define TCF_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_MASK 0xffffffff
+
+#define TCF_PERFCOUNTER0_LOW_MASK \
+ (TCF_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_MASK)
+
+#define TCF_PERFCOUNTER0_LOW(perfcounter_low) \
+ ((perfcounter_low << TCF_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SHIFT))
+
+#define TCF_PERFCOUNTER0_LOW_GET_PERFCOUNTER_LOW(tcf_perfcounter0_low) \
+ ((tcf_perfcounter0_low & TCF_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_MASK) >> TCF_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#define TCF_PERFCOUNTER0_LOW_SET_PERFCOUNTER_LOW(tcf_perfcounter0_low_reg, perfcounter_low) \
+ tcf_perfcounter0_low_reg = (tcf_perfcounter0_low_reg & ~TCF_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_MASK) | (perfcounter_low << TCF_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter0_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter0_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter0_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter0_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter0_low_t f;
+} tcf_perfcounter0_low_u;
+
+
+/*
+ * TCF_PERFCOUNTER1_LOW struct
+ */
+
+#define TCF_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SIZE 32
+
+#define TCF_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SHIFT 0
+
+#define TCF_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_MASK 0xffffffff
+
+#define TCF_PERFCOUNTER1_LOW_MASK \
+ (TCF_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_MASK)
+
+#define TCF_PERFCOUNTER1_LOW(perfcounter_low) \
+ ((perfcounter_low << TCF_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SHIFT))
+
+#define TCF_PERFCOUNTER1_LOW_GET_PERFCOUNTER_LOW(tcf_perfcounter1_low) \
+ ((tcf_perfcounter1_low & TCF_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_MASK) >> TCF_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#define TCF_PERFCOUNTER1_LOW_SET_PERFCOUNTER_LOW(tcf_perfcounter1_low_reg, perfcounter_low) \
+ tcf_perfcounter1_low_reg = (tcf_perfcounter1_low_reg & ~TCF_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_MASK) | (perfcounter_low << TCF_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter1_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter1_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter1_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter1_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter1_low_t f;
+} tcf_perfcounter1_low_u;
+
+
+/*
+ * TCF_PERFCOUNTER2_LOW struct
+ */
+
+#define TCF_PERFCOUNTER2_LOW_PERFCOUNTER_LOW_SIZE 32
+
+#define TCF_PERFCOUNTER2_LOW_PERFCOUNTER_LOW_SHIFT 0
+
+#define TCF_PERFCOUNTER2_LOW_PERFCOUNTER_LOW_MASK 0xffffffff
+
+#define TCF_PERFCOUNTER2_LOW_MASK \
+ (TCF_PERFCOUNTER2_LOW_PERFCOUNTER_LOW_MASK)
+
+#define TCF_PERFCOUNTER2_LOW(perfcounter_low) \
+ ((perfcounter_low << TCF_PERFCOUNTER2_LOW_PERFCOUNTER_LOW_SHIFT))
+
+#define TCF_PERFCOUNTER2_LOW_GET_PERFCOUNTER_LOW(tcf_perfcounter2_low) \
+ ((tcf_perfcounter2_low & TCF_PERFCOUNTER2_LOW_PERFCOUNTER_LOW_MASK) >> TCF_PERFCOUNTER2_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#define TCF_PERFCOUNTER2_LOW_SET_PERFCOUNTER_LOW(tcf_perfcounter2_low_reg, perfcounter_low) \
+ tcf_perfcounter2_low_reg = (tcf_perfcounter2_low_reg & ~TCF_PERFCOUNTER2_LOW_PERFCOUNTER_LOW_MASK) | (perfcounter_low << TCF_PERFCOUNTER2_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter2_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER2_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter2_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter2_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER2_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter2_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter2_low_t f;
+} tcf_perfcounter2_low_u;
+
+
+/*
+ * TCF_PERFCOUNTER3_LOW struct
+ */
+
+#define TCF_PERFCOUNTER3_LOW_PERFCOUNTER_LOW_SIZE 32
+
+#define TCF_PERFCOUNTER3_LOW_PERFCOUNTER_LOW_SHIFT 0
+
+#define TCF_PERFCOUNTER3_LOW_PERFCOUNTER_LOW_MASK 0xffffffff
+
+#define TCF_PERFCOUNTER3_LOW_MASK \
+ (TCF_PERFCOUNTER3_LOW_PERFCOUNTER_LOW_MASK)
+
+#define TCF_PERFCOUNTER3_LOW(perfcounter_low) \
+ ((perfcounter_low << TCF_PERFCOUNTER3_LOW_PERFCOUNTER_LOW_SHIFT))
+
+#define TCF_PERFCOUNTER3_LOW_GET_PERFCOUNTER_LOW(tcf_perfcounter3_low) \
+ ((tcf_perfcounter3_low & TCF_PERFCOUNTER3_LOW_PERFCOUNTER_LOW_MASK) >> TCF_PERFCOUNTER3_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#define TCF_PERFCOUNTER3_LOW_SET_PERFCOUNTER_LOW(tcf_perfcounter3_low_reg, perfcounter_low) \
+ tcf_perfcounter3_low_reg = (tcf_perfcounter3_low_reg & ~TCF_PERFCOUNTER3_LOW_PERFCOUNTER_LOW_MASK) | (perfcounter_low << TCF_PERFCOUNTER3_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter3_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER3_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter3_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter3_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER3_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter3_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter3_low_t f;
+} tcf_perfcounter3_low_u;
+
+
+/*
+ * TCF_PERFCOUNTER4_LOW struct
+ */
+
+#define TCF_PERFCOUNTER4_LOW_PERFCOUNTER_LOW_SIZE 32
+
+#define TCF_PERFCOUNTER4_LOW_PERFCOUNTER_LOW_SHIFT 0
+
+#define TCF_PERFCOUNTER4_LOW_PERFCOUNTER_LOW_MASK 0xffffffff
+
+#define TCF_PERFCOUNTER4_LOW_MASK \
+ (TCF_PERFCOUNTER4_LOW_PERFCOUNTER_LOW_MASK)
+
+#define TCF_PERFCOUNTER4_LOW(perfcounter_low) \
+ ((perfcounter_low << TCF_PERFCOUNTER4_LOW_PERFCOUNTER_LOW_SHIFT))
+
+#define TCF_PERFCOUNTER4_LOW_GET_PERFCOUNTER_LOW(tcf_perfcounter4_low) \
+ ((tcf_perfcounter4_low & TCF_PERFCOUNTER4_LOW_PERFCOUNTER_LOW_MASK) >> TCF_PERFCOUNTER4_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#define TCF_PERFCOUNTER4_LOW_SET_PERFCOUNTER_LOW(tcf_perfcounter4_low_reg, perfcounter_low) \
+ tcf_perfcounter4_low_reg = (tcf_perfcounter4_low_reg & ~TCF_PERFCOUNTER4_LOW_PERFCOUNTER_LOW_MASK) | (perfcounter_low << TCF_PERFCOUNTER4_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter4_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER4_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter4_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter4_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER4_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter4_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter4_low_t f;
+} tcf_perfcounter4_low_u;
+
+
+/*
+ * TCF_PERFCOUNTER5_LOW struct
+ */
+
+#define TCF_PERFCOUNTER5_LOW_PERFCOUNTER_LOW_SIZE 32
+
+#define TCF_PERFCOUNTER5_LOW_PERFCOUNTER_LOW_SHIFT 0
+
+#define TCF_PERFCOUNTER5_LOW_PERFCOUNTER_LOW_MASK 0xffffffff
+
+#define TCF_PERFCOUNTER5_LOW_MASK \
+ (TCF_PERFCOUNTER5_LOW_PERFCOUNTER_LOW_MASK)
+
+#define TCF_PERFCOUNTER5_LOW(perfcounter_low) \
+ ((perfcounter_low << TCF_PERFCOUNTER5_LOW_PERFCOUNTER_LOW_SHIFT))
+
+#define TCF_PERFCOUNTER5_LOW_GET_PERFCOUNTER_LOW(tcf_perfcounter5_low) \
+ ((tcf_perfcounter5_low & TCF_PERFCOUNTER5_LOW_PERFCOUNTER_LOW_MASK) >> TCF_PERFCOUNTER5_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#define TCF_PERFCOUNTER5_LOW_SET_PERFCOUNTER_LOW(tcf_perfcounter5_low_reg, perfcounter_low) \
+ tcf_perfcounter5_low_reg = (tcf_perfcounter5_low_reg & ~TCF_PERFCOUNTER5_LOW_PERFCOUNTER_LOW_MASK) | (perfcounter_low << TCF_PERFCOUNTER5_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter5_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER5_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter5_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter5_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER5_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter5_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter5_low_t f;
+} tcf_perfcounter5_low_u;
+
+
+/*
+ * TCF_PERFCOUNTER6_LOW struct
+ */
+
+#define TCF_PERFCOUNTER6_LOW_PERFCOUNTER_LOW_SIZE 32
+
+#define TCF_PERFCOUNTER6_LOW_PERFCOUNTER_LOW_SHIFT 0
+
+#define TCF_PERFCOUNTER6_LOW_PERFCOUNTER_LOW_MASK 0xffffffff
+
+#define TCF_PERFCOUNTER6_LOW_MASK \
+ (TCF_PERFCOUNTER6_LOW_PERFCOUNTER_LOW_MASK)
+
+#define TCF_PERFCOUNTER6_LOW(perfcounter_low) \
+ ((perfcounter_low << TCF_PERFCOUNTER6_LOW_PERFCOUNTER_LOW_SHIFT))
+
+#define TCF_PERFCOUNTER6_LOW_GET_PERFCOUNTER_LOW(tcf_perfcounter6_low) \
+ ((tcf_perfcounter6_low & TCF_PERFCOUNTER6_LOW_PERFCOUNTER_LOW_MASK) >> TCF_PERFCOUNTER6_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#define TCF_PERFCOUNTER6_LOW_SET_PERFCOUNTER_LOW(tcf_perfcounter6_low_reg, perfcounter_low) \
+ tcf_perfcounter6_low_reg = (tcf_perfcounter6_low_reg & ~TCF_PERFCOUNTER6_LOW_PERFCOUNTER_LOW_MASK) | (perfcounter_low << TCF_PERFCOUNTER6_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter6_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER6_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter6_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter6_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER6_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter6_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter6_low_t f;
+} tcf_perfcounter6_low_u;
+
+
+/*
+ * TCF_PERFCOUNTER7_LOW struct
+ */
+
+#define TCF_PERFCOUNTER7_LOW_PERFCOUNTER_LOW_SIZE 32
+
+#define TCF_PERFCOUNTER7_LOW_PERFCOUNTER_LOW_SHIFT 0
+
+#define TCF_PERFCOUNTER7_LOW_PERFCOUNTER_LOW_MASK 0xffffffff
+
+#define TCF_PERFCOUNTER7_LOW_MASK \
+ (TCF_PERFCOUNTER7_LOW_PERFCOUNTER_LOW_MASK)
+
+#define TCF_PERFCOUNTER7_LOW(perfcounter_low) \
+ ((perfcounter_low << TCF_PERFCOUNTER7_LOW_PERFCOUNTER_LOW_SHIFT))
+
+#define TCF_PERFCOUNTER7_LOW_GET_PERFCOUNTER_LOW(tcf_perfcounter7_low) \
+ ((tcf_perfcounter7_low & TCF_PERFCOUNTER7_LOW_PERFCOUNTER_LOW_MASK) >> TCF_PERFCOUNTER7_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#define TCF_PERFCOUNTER7_LOW_SET_PERFCOUNTER_LOW(tcf_perfcounter7_low_reg, perfcounter_low) \
+ tcf_perfcounter7_low_reg = (tcf_perfcounter7_low_reg & ~TCF_PERFCOUNTER7_LOW_PERFCOUNTER_LOW_MASK) | (perfcounter_low << TCF_PERFCOUNTER7_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter7_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER7_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter7_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter7_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER7_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter7_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter7_low_t f;
+} tcf_perfcounter7_low_u;
+
+
+/*
+ * TCF_PERFCOUNTER8_LOW struct
+ */
+
+#define TCF_PERFCOUNTER8_LOW_PERFCOUNTER_LOW_SIZE 32
+
+#define TCF_PERFCOUNTER8_LOW_PERFCOUNTER_LOW_SHIFT 0
+
+#define TCF_PERFCOUNTER8_LOW_PERFCOUNTER_LOW_MASK 0xffffffff
+
+#define TCF_PERFCOUNTER8_LOW_MASK \
+ (TCF_PERFCOUNTER8_LOW_PERFCOUNTER_LOW_MASK)
+
+#define TCF_PERFCOUNTER8_LOW(perfcounter_low) \
+ ((perfcounter_low << TCF_PERFCOUNTER8_LOW_PERFCOUNTER_LOW_SHIFT))
+
+#define TCF_PERFCOUNTER8_LOW_GET_PERFCOUNTER_LOW(tcf_perfcounter8_low) \
+ ((tcf_perfcounter8_low & TCF_PERFCOUNTER8_LOW_PERFCOUNTER_LOW_MASK) >> TCF_PERFCOUNTER8_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#define TCF_PERFCOUNTER8_LOW_SET_PERFCOUNTER_LOW(tcf_perfcounter8_low_reg, perfcounter_low) \
+ tcf_perfcounter8_low_reg = (tcf_perfcounter8_low_reg & ~TCF_PERFCOUNTER8_LOW_PERFCOUNTER_LOW_MASK) | (perfcounter_low << TCF_PERFCOUNTER8_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter8_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER8_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter8_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter8_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER8_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter8_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter8_low_t f;
+} tcf_perfcounter8_low_u;
+
+
+/*
+ * TCF_PERFCOUNTER9_LOW struct
+ */
+
+#define TCF_PERFCOUNTER9_LOW_PERFCOUNTER_LOW_SIZE 32
+
+#define TCF_PERFCOUNTER9_LOW_PERFCOUNTER_LOW_SHIFT 0
+
+#define TCF_PERFCOUNTER9_LOW_PERFCOUNTER_LOW_MASK 0xffffffff
+
+#define TCF_PERFCOUNTER9_LOW_MASK \
+ (TCF_PERFCOUNTER9_LOW_PERFCOUNTER_LOW_MASK)
+
+#define TCF_PERFCOUNTER9_LOW(perfcounter_low) \
+ ((perfcounter_low << TCF_PERFCOUNTER9_LOW_PERFCOUNTER_LOW_SHIFT))
+
+#define TCF_PERFCOUNTER9_LOW_GET_PERFCOUNTER_LOW(tcf_perfcounter9_low) \
+ ((tcf_perfcounter9_low & TCF_PERFCOUNTER9_LOW_PERFCOUNTER_LOW_MASK) >> TCF_PERFCOUNTER9_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#define TCF_PERFCOUNTER9_LOW_SET_PERFCOUNTER_LOW(tcf_perfcounter9_low_reg, perfcounter_low) \
+ tcf_perfcounter9_low_reg = (tcf_perfcounter9_low_reg & ~TCF_PERFCOUNTER9_LOW_PERFCOUNTER_LOW_MASK) | (perfcounter_low << TCF_PERFCOUNTER9_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter9_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER9_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter9_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter9_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER9_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter9_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter9_low_t f;
+} tcf_perfcounter9_low_u;
+
+
+/*
+ * TCF_PERFCOUNTER10_LOW struct
+ */
+
+#define TCF_PERFCOUNTER10_LOW_PERFCOUNTER_LOW_SIZE 32
+
+#define TCF_PERFCOUNTER10_LOW_PERFCOUNTER_LOW_SHIFT 0
+
+#define TCF_PERFCOUNTER10_LOW_PERFCOUNTER_LOW_MASK 0xffffffff
+
+#define TCF_PERFCOUNTER10_LOW_MASK \
+ (TCF_PERFCOUNTER10_LOW_PERFCOUNTER_LOW_MASK)
+
+#define TCF_PERFCOUNTER10_LOW(perfcounter_low) \
+ ((perfcounter_low << TCF_PERFCOUNTER10_LOW_PERFCOUNTER_LOW_SHIFT))
+
+#define TCF_PERFCOUNTER10_LOW_GET_PERFCOUNTER_LOW(tcf_perfcounter10_low) \
+ ((tcf_perfcounter10_low & TCF_PERFCOUNTER10_LOW_PERFCOUNTER_LOW_MASK) >> TCF_PERFCOUNTER10_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#define TCF_PERFCOUNTER10_LOW_SET_PERFCOUNTER_LOW(tcf_perfcounter10_low_reg, perfcounter_low) \
+ tcf_perfcounter10_low_reg = (tcf_perfcounter10_low_reg & ~TCF_PERFCOUNTER10_LOW_PERFCOUNTER_LOW_MASK) | (perfcounter_low << TCF_PERFCOUNTER10_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter10_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER10_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter10_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter10_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER10_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter10_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter10_low_t f;
+} tcf_perfcounter10_low_u;
+
+
+/*
+ * TCF_PERFCOUNTER11_LOW struct
+ */
+
+#define TCF_PERFCOUNTER11_LOW_PERFCOUNTER_LOW_SIZE 32
+
+#define TCF_PERFCOUNTER11_LOW_PERFCOUNTER_LOW_SHIFT 0
+
+#define TCF_PERFCOUNTER11_LOW_PERFCOUNTER_LOW_MASK 0xffffffff
+
+#define TCF_PERFCOUNTER11_LOW_MASK \
+ (TCF_PERFCOUNTER11_LOW_PERFCOUNTER_LOW_MASK)
+
+#define TCF_PERFCOUNTER11_LOW(perfcounter_low) \
+ ((perfcounter_low << TCF_PERFCOUNTER11_LOW_PERFCOUNTER_LOW_SHIFT))
+
+#define TCF_PERFCOUNTER11_LOW_GET_PERFCOUNTER_LOW(tcf_perfcounter11_low) \
+ ((tcf_perfcounter11_low & TCF_PERFCOUNTER11_LOW_PERFCOUNTER_LOW_MASK) >> TCF_PERFCOUNTER11_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#define TCF_PERFCOUNTER11_LOW_SET_PERFCOUNTER_LOW(tcf_perfcounter11_low_reg, perfcounter_low) \
+ tcf_perfcounter11_low_reg = (tcf_perfcounter11_low_reg & ~TCF_PERFCOUNTER11_LOW_PERFCOUNTER_LOW_MASK) | (perfcounter_low << TCF_PERFCOUNTER11_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter11_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER11_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter11_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter11_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER11_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter11_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter11_low_t f;
+} tcf_perfcounter11_low_u;
+
+
+/*
+ * TCF_DEBUG struct
+ */
+
+#define TCF_DEBUG_not_MH_TC_rtr_SIZE 1
+#define TCF_DEBUG_TC_MH_send_SIZE 1
+#define TCF_DEBUG_not_FG0_rtr_SIZE 1
+#define TCF_DEBUG_not_TCB_TCO_rtr_SIZE 1
+#define TCF_DEBUG_TCB_ff_stall_SIZE 1
+#define TCF_DEBUG_TCB_miss_stall_SIZE 1
+#define TCF_DEBUG_TCA_TCB_stall_SIZE 1
+#define TCF_DEBUG_PF0_stall_SIZE 1
+#define TCF_DEBUG_TP0_full_SIZE 1
+#define TCF_DEBUG_TPC_full_SIZE 1
+#define TCF_DEBUG_not_TPC_rtr_SIZE 1
+#define TCF_DEBUG_tca_state_rts_SIZE 1
+#define TCF_DEBUG_tca_rts_SIZE 1
+
+#define TCF_DEBUG_not_MH_TC_rtr_SHIFT 6
+#define TCF_DEBUG_TC_MH_send_SHIFT 7
+#define TCF_DEBUG_not_FG0_rtr_SHIFT 8
+#define TCF_DEBUG_not_TCB_TCO_rtr_SHIFT 12
+#define TCF_DEBUG_TCB_ff_stall_SHIFT 13
+#define TCF_DEBUG_TCB_miss_stall_SHIFT 14
+#define TCF_DEBUG_TCA_TCB_stall_SHIFT 15
+#define TCF_DEBUG_PF0_stall_SHIFT 16
+#define TCF_DEBUG_TP0_full_SHIFT 20
+#define TCF_DEBUG_TPC_full_SHIFT 24
+#define TCF_DEBUG_not_TPC_rtr_SHIFT 25
+#define TCF_DEBUG_tca_state_rts_SHIFT 26
+#define TCF_DEBUG_tca_rts_SHIFT 27
+
+#define TCF_DEBUG_not_MH_TC_rtr_MASK 0x00000040
+#define TCF_DEBUG_TC_MH_send_MASK 0x00000080
+#define TCF_DEBUG_not_FG0_rtr_MASK 0x00000100
+#define TCF_DEBUG_not_TCB_TCO_rtr_MASK 0x00001000
+#define TCF_DEBUG_TCB_ff_stall_MASK 0x00002000
+#define TCF_DEBUG_TCB_miss_stall_MASK 0x00004000
+#define TCF_DEBUG_TCA_TCB_stall_MASK 0x00008000
+#define TCF_DEBUG_PF0_stall_MASK 0x00010000
+#define TCF_DEBUG_TP0_full_MASK 0x00100000
+#define TCF_DEBUG_TPC_full_MASK 0x01000000
+#define TCF_DEBUG_not_TPC_rtr_MASK 0x02000000
+#define TCF_DEBUG_tca_state_rts_MASK 0x04000000
+#define TCF_DEBUG_tca_rts_MASK 0x08000000
+
+#define TCF_DEBUG_MASK \
+ (TCF_DEBUG_not_MH_TC_rtr_MASK | \
+ TCF_DEBUG_TC_MH_send_MASK | \
+ TCF_DEBUG_not_FG0_rtr_MASK | \
+ TCF_DEBUG_not_TCB_TCO_rtr_MASK | \
+ TCF_DEBUG_TCB_ff_stall_MASK | \
+ TCF_DEBUG_TCB_miss_stall_MASK | \
+ TCF_DEBUG_TCA_TCB_stall_MASK | \
+ TCF_DEBUG_PF0_stall_MASK | \
+ TCF_DEBUG_TP0_full_MASK | \
+ TCF_DEBUG_TPC_full_MASK | \
+ TCF_DEBUG_not_TPC_rtr_MASK | \
+ TCF_DEBUG_tca_state_rts_MASK | \
+ TCF_DEBUG_tca_rts_MASK)
+
+#define TCF_DEBUG(not_mh_tc_rtr, tc_mh_send, not_fg0_rtr, not_tcb_tco_rtr, tcb_ff_stall, tcb_miss_stall, tca_tcb_stall, pf0_stall, tp0_full, tpc_full, not_tpc_rtr, tca_state_rts, tca_rts) \
+ ((not_mh_tc_rtr << TCF_DEBUG_not_MH_TC_rtr_SHIFT) | \
+ (tc_mh_send << TCF_DEBUG_TC_MH_send_SHIFT) | \
+ (not_fg0_rtr << TCF_DEBUG_not_FG0_rtr_SHIFT) | \
+ (not_tcb_tco_rtr << TCF_DEBUG_not_TCB_TCO_rtr_SHIFT) | \
+ (tcb_ff_stall << TCF_DEBUG_TCB_ff_stall_SHIFT) | \
+ (tcb_miss_stall << TCF_DEBUG_TCB_miss_stall_SHIFT) | \
+ (tca_tcb_stall << TCF_DEBUG_TCA_TCB_stall_SHIFT) | \
+ (pf0_stall << TCF_DEBUG_PF0_stall_SHIFT) | \
+ (tp0_full << TCF_DEBUG_TP0_full_SHIFT) | \
+ (tpc_full << TCF_DEBUG_TPC_full_SHIFT) | \
+ (not_tpc_rtr << TCF_DEBUG_not_TPC_rtr_SHIFT) | \
+ (tca_state_rts << TCF_DEBUG_tca_state_rts_SHIFT) | \
+ (tca_rts << TCF_DEBUG_tca_rts_SHIFT))
+
+#define TCF_DEBUG_GET_not_MH_TC_rtr(tcf_debug) \
+ ((tcf_debug & TCF_DEBUG_not_MH_TC_rtr_MASK) >> TCF_DEBUG_not_MH_TC_rtr_SHIFT)
+#define TCF_DEBUG_GET_TC_MH_send(tcf_debug) \
+ ((tcf_debug & TCF_DEBUG_TC_MH_send_MASK) >> TCF_DEBUG_TC_MH_send_SHIFT)
+#define TCF_DEBUG_GET_not_FG0_rtr(tcf_debug) \
+ ((tcf_debug & TCF_DEBUG_not_FG0_rtr_MASK) >> TCF_DEBUG_not_FG0_rtr_SHIFT)
+#define TCF_DEBUG_GET_not_TCB_TCO_rtr(tcf_debug) \
+ ((tcf_debug & TCF_DEBUG_not_TCB_TCO_rtr_MASK) >> TCF_DEBUG_not_TCB_TCO_rtr_SHIFT)
+#define TCF_DEBUG_GET_TCB_ff_stall(tcf_debug) \
+ ((tcf_debug & TCF_DEBUG_TCB_ff_stall_MASK) >> TCF_DEBUG_TCB_ff_stall_SHIFT)
+#define TCF_DEBUG_GET_TCB_miss_stall(tcf_debug) \
+ ((tcf_debug & TCF_DEBUG_TCB_miss_stall_MASK) >> TCF_DEBUG_TCB_miss_stall_SHIFT)
+#define TCF_DEBUG_GET_TCA_TCB_stall(tcf_debug) \
+ ((tcf_debug & TCF_DEBUG_TCA_TCB_stall_MASK) >> TCF_DEBUG_TCA_TCB_stall_SHIFT)
+#define TCF_DEBUG_GET_PF0_stall(tcf_debug) \
+ ((tcf_debug & TCF_DEBUG_PF0_stall_MASK) >> TCF_DEBUG_PF0_stall_SHIFT)
+#define TCF_DEBUG_GET_TP0_full(tcf_debug) \
+ ((tcf_debug & TCF_DEBUG_TP0_full_MASK) >> TCF_DEBUG_TP0_full_SHIFT)
+#define TCF_DEBUG_GET_TPC_full(tcf_debug) \
+ ((tcf_debug & TCF_DEBUG_TPC_full_MASK) >> TCF_DEBUG_TPC_full_SHIFT)
+#define TCF_DEBUG_GET_not_TPC_rtr(tcf_debug) \
+ ((tcf_debug & TCF_DEBUG_not_TPC_rtr_MASK) >> TCF_DEBUG_not_TPC_rtr_SHIFT)
+#define TCF_DEBUG_GET_tca_state_rts(tcf_debug) \
+ ((tcf_debug & TCF_DEBUG_tca_state_rts_MASK) >> TCF_DEBUG_tca_state_rts_SHIFT)
+#define TCF_DEBUG_GET_tca_rts(tcf_debug) \
+ ((tcf_debug & TCF_DEBUG_tca_rts_MASK) >> TCF_DEBUG_tca_rts_SHIFT)
+
+#define TCF_DEBUG_SET_not_MH_TC_rtr(tcf_debug_reg, not_mh_tc_rtr) \
+ tcf_debug_reg = (tcf_debug_reg & ~TCF_DEBUG_not_MH_TC_rtr_MASK) | (not_mh_tc_rtr << TCF_DEBUG_not_MH_TC_rtr_SHIFT)
+#define TCF_DEBUG_SET_TC_MH_send(tcf_debug_reg, tc_mh_send) \
+ tcf_debug_reg = (tcf_debug_reg & ~TCF_DEBUG_TC_MH_send_MASK) | (tc_mh_send << TCF_DEBUG_TC_MH_send_SHIFT)
+#define TCF_DEBUG_SET_not_FG0_rtr(tcf_debug_reg, not_fg0_rtr) \
+ tcf_debug_reg = (tcf_debug_reg & ~TCF_DEBUG_not_FG0_rtr_MASK) | (not_fg0_rtr << TCF_DEBUG_not_FG0_rtr_SHIFT)
+#define TCF_DEBUG_SET_not_TCB_TCO_rtr(tcf_debug_reg, not_tcb_tco_rtr) \
+ tcf_debug_reg = (tcf_debug_reg & ~TCF_DEBUG_not_TCB_TCO_rtr_MASK) | (not_tcb_tco_rtr << TCF_DEBUG_not_TCB_TCO_rtr_SHIFT)
+#define TCF_DEBUG_SET_TCB_ff_stall(tcf_debug_reg, tcb_ff_stall) \
+ tcf_debug_reg = (tcf_debug_reg & ~TCF_DEBUG_TCB_ff_stall_MASK) | (tcb_ff_stall << TCF_DEBUG_TCB_ff_stall_SHIFT)
+#define TCF_DEBUG_SET_TCB_miss_stall(tcf_debug_reg, tcb_miss_stall) \
+ tcf_debug_reg = (tcf_debug_reg & ~TCF_DEBUG_TCB_miss_stall_MASK) | (tcb_miss_stall << TCF_DEBUG_TCB_miss_stall_SHIFT)
+#define TCF_DEBUG_SET_TCA_TCB_stall(tcf_debug_reg, tca_tcb_stall) \
+ tcf_debug_reg = (tcf_debug_reg & ~TCF_DEBUG_TCA_TCB_stall_MASK) | (tca_tcb_stall << TCF_DEBUG_TCA_TCB_stall_SHIFT)
+#define TCF_DEBUG_SET_PF0_stall(tcf_debug_reg, pf0_stall) \
+ tcf_debug_reg = (tcf_debug_reg & ~TCF_DEBUG_PF0_stall_MASK) | (pf0_stall << TCF_DEBUG_PF0_stall_SHIFT)
+#define TCF_DEBUG_SET_TP0_full(tcf_debug_reg, tp0_full) \
+ tcf_debug_reg = (tcf_debug_reg & ~TCF_DEBUG_TP0_full_MASK) | (tp0_full << TCF_DEBUG_TP0_full_SHIFT)
+#define TCF_DEBUG_SET_TPC_full(tcf_debug_reg, tpc_full) \
+ tcf_debug_reg = (tcf_debug_reg & ~TCF_DEBUG_TPC_full_MASK) | (tpc_full << TCF_DEBUG_TPC_full_SHIFT)
+#define TCF_DEBUG_SET_not_TPC_rtr(tcf_debug_reg, not_tpc_rtr) \
+ tcf_debug_reg = (tcf_debug_reg & ~TCF_DEBUG_not_TPC_rtr_MASK) | (not_tpc_rtr << TCF_DEBUG_not_TPC_rtr_SHIFT)
+#define TCF_DEBUG_SET_tca_state_rts(tcf_debug_reg, tca_state_rts) \
+ tcf_debug_reg = (tcf_debug_reg & ~TCF_DEBUG_tca_state_rts_MASK) | (tca_state_rts << TCF_DEBUG_tca_state_rts_SHIFT)
+#define TCF_DEBUG_SET_tca_rts(tcf_debug_reg, tca_rts) \
+ tcf_debug_reg = (tcf_debug_reg & ~TCF_DEBUG_tca_rts_MASK) | (tca_rts << TCF_DEBUG_tca_rts_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_debug_t {
+ unsigned int : 6;
+ unsigned int not_mh_tc_rtr : TCF_DEBUG_not_MH_TC_rtr_SIZE;
+ unsigned int tc_mh_send : TCF_DEBUG_TC_MH_send_SIZE;
+ unsigned int not_fg0_rtr : TCF_DEBUG_not_FG0_rtr_SIZE;
+ unsigned int : 3;
+ unsigned int not_tcb_tco_rtr : TCF_DEBUG_not_TCB_TCO_rtr_SIZE;
+ unsigned int tcb_ff_stall : TCF_DEBUG_TCB_ff_stall_SIZE;
+ unsigned int tcb_miss_stall : TCF_DEBUG_TCB_miss_stall_SIZE;
+ unsigned int tca_tcb_stall : TCF_DEBUG_TCA_TCB_stall_SIZE;
+ unsigned int pf0_stall : TCF_DEBUG_PF0_stall_SIZE;
+ unsigned int : 3;
+ unsigned int tp0_full : TCF_DEBUG_TP0_full_SIZE;
+ unsigned int : 3;
+ unsigned int tpc_full : TCF_DEBUG_TPC_full_SIZE;
+ unsigned int not_tpc_rtr : TCF_DEBUG_not_TPC_rtr_SIZE;
+ unsigned int tca_state_rts : TCF_DEBUG_tca_state_rts_SIZE;
+ unsigned int tca_rts : TCF_DEBUG_tca_rts_SIZE;
+ unsigned int : 4;
+ } tcf_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_debug_t {
+ unsigned int : 4;
+ unsigned int tca_rts : TCF_DEBUG_tca_rts_SIZE;
+ unsigned int tca_state_rts : TCF_DEBUG_tca_state_rts_SIZE;
+ unsigned int not_tpc_rtr : TCF_DEBUG_not_TPC_rtr_SIZE;
+ unsigned int tpc_full : TCF_DEBUG_TPC_full_SIZE;
+ unsigned int : 3;
+ unsigned int tp0_full : TCF_DEBUG_TP0_full_SIZE;
+ unsigned int : 3;
+ unsigned int pf0_stall : TCF_DEBUG_PF0_stall_SIZE;
+ unsigned int tca_tcb_stall : TCF_DEBUG_TCA_TCB_stall_SIZE;
+ unsigned int tcb_miss_stall : TCF_DEBUG_TCB_miss_stall_SIZE;
+ unsigned int tcb_ff_stall : TCF_DEBUG_TCB_ff_stall_SIZE;
+ unsigned int not_tcb_tco_rtr : TCF_DEBUG_not_TCB_TCO_rtr_SIZE;
+ unsigned int : 3;
+ unsigned int not_fg0_rtr : TCF_DEBUG_not_FG0_rtr_SIZE;
+ unsigned int tc_mh_send : TCF_DEBUG_TC_MH_send_SIZE;
+ unsigned int not_mh_tc_rtr : TCF_DEBUG_not_MH_TC_rtr_SIZE;
+ unsigned int : 6;
+ } tcf_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_debug_t f;
+} tcf_debug_u;
+
+
+/*
+ * TCA_FIFO_DEBUG struct
+ */
+
+#define TCA_FIFO_DEBUG_tp0_full_SIZE 1
+#define TCA_FIFO_DEBUG_tpc_full_SIZE 1
+#define TCA_FIFO_DEBUG_load_tpc_fifo_SIZE 1
+#define TCA_FIFO_DEBUG_load_tp_fifos_SIZE 1
+#define TCA_FIFO_DEBUG_FW_full_SIZE 1
+#define TCA_FIFO_DEBUG_not_FW_rtr0_SIZE 1
+#define TCA_FIFO_DEBUG_FW_rts0_SIZE 1
+#define TCA_FIFO_DEBUG_not_FW_tpc_rtr_SIZE 1
+#define TCA_FIFO_DEBUG_FW_tpc_rts_SIZE 1
+
+#define TCA_FIFO_DEBUG_tp0_full_SHIFT 0
+#define TCA_FIFO_DEBUG_tpc_full_SHIFT 4
+#define TCA_FIFO_DEBUG_load_tpc_fifo_SHIFT 5
+#define TCA_FIFO_DEBUG_load_tp_fifos_SHIFT 6
+#define TCA_FIFO_DEBUG_FW_full_SHIFT 7
+#define TCA_FIFO_DEBUG_not_FW_rtr0_SHIFT 8
+#define TCA_FIFO_DEBUG_FW_rts0_SHIFT 12
+#define TCA_FIFO_DEBUG_not_FW_tpc_rtr_SHIFT 16
+#define TCA_FIFO_DEBUG_FW_tpc_rts_SHIFT 17
+
+#define TCA_FIFO_DEBUG_tp0_full_MASK 0x00000001
+#define TCA_FIFO_DEBUG_tpc_full_MASK 0x00000010
+#define TCA_FIFO_DEBUG_load_tpc_fifo_MASK 0x00000020
+#define TCA_FIFO_DEBUG_load_tp_fifos_MASK 0x00000040
+#define TCA_FIFO_DEBUG_FW_full_MASK 0x00000080
+#define TCA_FIFO_DEBUG_not_FW_rtr0_MASK 0x00000100
+#define TCA_FIFO_DEBUG_FW_rts0_MASK 0x00001000
+#define TCA_FIFO_DEBUG_not_FW_tpc_rtr_MASK 0x00010000
+#define TCA_FIFO_DEBUG_FW_tpc_rts_MASK 0x00020000
+
+#define TCA_FIFO_DEBUG_MASK \
+ (TCA_FIFO_DEBUG_tp0_full_MASK | \
+ TCA_FIFO_DEBUG_tpc_full_MASK | \
+ TCA_FIFO_DEBUG_load_tpc_fifo_MASK | \
+ TCA_FIFO_DEBUG_load_tp_fifos_MASK | \
+ TCA_FIFO_DEBUG_FW_full_MASK | \
+ TCA_FIFO_DEBUG_not_FW_rtr0_MASK | \
+ TCA_FIFO_DEBUG_FW_rts0_MASK | \
+ TCA_FIFO_DEBUG_not_FW_tpc_rtr_MASK | \
+ TCA_FIFO_DEBUG_FW_tpc_rts_MASK)
+
+#define TCA_FIFO_DEBUG(tp0_full, tpc_full, load_tpc_fifo, load_tp_fifos, fw_full, not_fw_rtr0, fw_rts0, not_fw_tpc_rtr, fw_tpc_rts) \
+ ((tp0_full << TCA_FIFO_DEBUG_tp0_full_SHIFT) | \
+ (tpc_full << TCA_FIFO_DEBUG_tpc_full_SHIFT) | \
+ (load_tpc_fifo << TCA_FIFO_DEBUG_load_tpc_fifo_SHIFT) | \
+ (load_tp_fifos << TCA_FIFO_DEBUG_load_tp_fifos_SHIFT) | \
+ (fw_full << TCA_FIFO_DEBUG_FW_full_SHIFT) | \
+ (not_fw_rtr0 << TCA_FIFO_DEBUG_not_FW_rtr0_SHIFT) | \
+ (fw_rts0 << TCA_FIFO_DEBUG_FW_rts0_SHIFT) | \
+ (not_fw_tpc_rtr << TCA_FIFO_DEBUG_not_FW_tpc_rtr_SHIFT) | \
+ (fw_tpc_rts << TCA_FIFO_DEBUG_FW_tpc_rts_SHIFT))
+
+#define TCA_FIFO_DEBUG_GET_tp0_full(tca_fifo_debug) \
+ ((tca_fifo_debug & TCA_FIFO_DEBUG_tp0_full_MASK) >> TCA_FIFO_DEBUG_tp0_full_SHIFT)
+#define TCA_FIFO_DEBUG_GET_tpc_full(tca_fifo_debug) \
+ ((tca_fifo_debug & TCA_FIFO_DEBUG_tpc_full_MASK) >> TCA_FIFO_DEBUG_tpc_full_SHIFT)
+#define TCA_FIFO_DEBUG_GET_load_tpc_fifo(tca_fifo_debug) \
+ ((tca_fifo_debug & TCA_FIFO_DEBUG_load_tpc_fifo_MASK) >> TCA_FIFO_DEBUG_load_tpc_fifo_SHIFT)
+#define TCA_FIFO_DEBUG_GET_load_tp_fifos(tca_fifo_debug) \
+ ((tca_fifo_debug & TCA_FIFO_DEBUG_load_tp_fifos_MASK) >> TCA_FIFO_DEBUG_load_tp_fifos_SHIFT)
+#define TCA_FIFO_DEBUG_GET_FW_full(tca_fifo_debug) \
+ ((tca_fifo_debug & TCA_FIFO_DEBUG_FW_full_MASK) >> TCA_FIFO_DEBUG_FW_full_SHIFT)
+#define TCA_FIFO_DEBUG_GET_not_FW_rtr0(tca_fifo_debug) \
+ ((tca_fifo_debug & TCA_FIFO_DEBUG_not_FW_rtr0_MASK) >> TCA_FIFO_DEBUG_not_FW_rtr0_SHIFT)
+#define TCA_FIFO_DEBUG_GET_FW_rts0(tca_fifo_debug) \
+ ((tca_fifo_debug & TCA_FIFO_DEBUG_FW_rts0_MASK) >> TCA_FIFO_DEBUG_FW_rts0_SHIFT)
+#define TCA_FIFO_DEBUG_GET_not_FW_tpc_rtr(tca_fifo_debug) \
+ ((tca_fifo_debug & TCA_FIFO_DEBUG_not_FW_tpc_rtr_MASK) >> TCA_FIFO_DEBUG_not_FW_tpc_rtr_SHIFT)
+#define TCA_FIFO_DEBUG_GET_FW_tpc_rts(tca_fifo_debug) \
+ ((tca_fifo_debug & TCA_FIFO_DEBUG_FW_tpc_rts_MASK) >> TCA_FIFO_DEBUG_FW_tpc_rts_SHIFT)
+
+#define TCA_FIFO_DEBUG_SET_tp0_full(tca_fifo_debug_reg, tp0_full) \
+ tca_fifo_debug_reg = (tca_fifo_debug_reg & ~TCA_FIFO_DEBUG_tp0_full_MASK) | (tp0_full << TCA_FIFO_DEBUG_tp0_full_SHIFT)
+#define TCA_FIFO_DEBUG_SET_tpc_full(tca_fifo_debug_reg, tpc_full) \
+ tca_fifo_debug_reg = (tca_fifo_debug_reg & ~TCA_FIFO_DEBUG_tpc_full_MASK) | (tpc_full << TCA_FIFO_DEBUG_tpc_full_SHIFT)
+#define TCA_FIFO_DEBUG_SET_load_tpc_fifo(tca_fifo_debug_reg, load_tpc_fifo) \
+ tca_fifo_debug_reg = (tca_fifo_debug_reg & ~TCA_FIFO_DEBUG_load_tpc_fifo_MASK) | (load_tpc_fifo << TCA_FIFO_DEBUG_load_tpc_fifo_SHIFT)
+#define TCA_FIFO_DEBUG_SET_load_tp_fifos(tca_fifo_debug_reg, load_tp_fifos) \
+ tca_fifo_debug_reg = (tca_fifo_debug_reg & ~TCA_FIFO_DEBUG_load_tp_fifos_MASK) | (load_tp_fifos << TCA_FIFO_DEBUG_load_tp_fifos_SHIFT)
+#define TCA_FIFO_DEBUG_SET_FW_full(tca_fifo_debug_reg, fw_full) \
+ tca_fifo_debug_reg = (tca_fifo_debug_reg & ~TCA_FIFO_DEBUG_FW_full_MASK) | (fw_full << TCA_FIFO_DEBUG_FW_full_SHIFT)
+#define TCA_FIFO_DEBUG_SET_not_FW_rtr0(tca_fifo_debug_reg, not_fw_rtr0) \
+ tca_fifo_debug_reg = (tca_fifo_debug_reg & ~TCA_FIFO_DEBUG_not_FW_rtr0_MASK) | (not_fw_rtr0 << TCA_FIFO_DEBUG_not_FW_rtr0_SHIFT)
+#define TCA_FIFO_DEBUG_SET_FW_rts0(tca_fifo_debug_reg, fw_rts0) \
+ tca_fifo_debug_reg = (tca_fifo_debug_reg & ~TCA_FIFO_DEBUG_FW_rts0_MASK) | (fw_rts0 << TCA_FIFO_DEBUG_FW_rts0_SHIFT)
+#define TCA_FIFO_DEBUG_SET_not_FW_tpc_rtr(tca_fifo_debug_reg, not_fw_tpc_rtr) \
+ tca_fifo_debug_reg = (tca_fifo_debug_reg & ~TCA_FIFO_DEBUG_not_FW_tpc_rtr_MASK) | (not_fw_tpc_rtr << TCA_FIFO_DEBUG_not_FW_tpc_rtr_SHIFT)
+#define TCA_FIFO_DEBUG_SET_FW_tpc_rts(tca_fifo_debug_reg, fw_tpc_rts) \
+ tca_fifo_debug_reg = (tca_fifo_debug_reg & ~TCA_FIFO_DEBUG_FW_tpc_rts_MASK) | (fw_tpc_rts << TCA_FIFO_DEBUG_FW_tpc_rts_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tca_fifo_debug_t {
+ unsigned int tp0_full : TCA_FIFO_DEBUG_tp0_full_SIZE;
+ unsigned int : 3;
+ unsigned int tpc_full : TCA_FIFO_DEBUG_tpc_full_SIZE;
+ unsigned int load_tpc_fifo : TCA_FIFO_DEBUG_load_tpc_fifo_SIZE;
+ unsigned int load_tp_fifos : TCA_FIFO_DEBUG_load_tp_fifos_SIZE;
+ unsigned int fw_full : TCA_FIFO_DEBUG_FW_full_SIZE;
+ unsigned int not_fw_rtr0 : TCA_FIFO_DEBUG_not_FW_rtr0_SIZE;
+ unsigned int : 3;
+ unsigned int fw_rts0 : TCA_FIFO_DEBUG_FW_rts0_SIZE;
+ unsigned int : 3;
+ unsigned int not_fw_tpc_rtr : TCA_FIFO_DEBUG_not_FW_tpc_rtr_SIZE;
+ unsigned int fw_tpc_rts : TCA_FIFO_DEBUG_FW_tpc_rts_SIZE;
+ unsigned int : 14;
+ } tca_fifo_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tca_fifo_debug_t {
+ unsigned int : 14;
+ unsigned int fw_tpc_rts : TCA_FIFO_DEBUG_FW_tpc_rts_SIZE;
+ unsigned int not_fw_tpc_rtr : TCA_FIFO_DEBUG_not_FW_tpc_rtr_SIZE;
+ unsigned int : 3;
+ unsigned int fw_rts0 : TCA_FIFO_DEBUG_FW_rts0_SIZE;
+ unsigned int : 3;
+ unsigned int not_fw_rtr0 : TCA_FIFO_DEBUG_not_FW_rtr0_SIZE;
+ unsigned int fw_full : TCA_FIFO_DEBUG_FW_full_SIZE;
+ unsigned int load_tp_fifos : TCA_FIFO_DEBUG_load_tp_fifos_SIZE;
+ unsigned int load_tpc_fifo : TCA_FIFO_DEBUG_load_tpc_fifo_SIZE;
+ unsigned int tpc_full : TCA_FIFO_DEBUG_tpc_full_SIZE;
+ unsigned int : 3;
+ unsigned int tp0_full : TCA_FIFO_DEBUG_tp0_full_SIZE;
+ } tca_fifo_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tca_fifo_debug_t f;
+} tca_fifo_debug_u;
+
+
+/*
+ * TCA_PROBE_DEBUG struct
+ */
+
+#define TCA_PROBE_DEBUG_ProbeFilter_stall_SIZE 1
+
+#define TCA_PROBE_DEBUG_ProbeFilter_stall_SHIFT 0
+
+#define TCA_PROBE_DEBUG_ProbeFilter_stall_MASK 0x00000001
+
+#define TCA_PROBE_DEBUG_MASK \
+ (TCA_PROBE_DEBUG_ProbeFilter_stall_MASK)
+
+#define TCA_PROBE_DEBUG(probefilter_stall) \
+ ((probefilter_stall << TCA_PROBE_DEBUG_ProbeFilter_stall_SHIFT))
+
+#define TCA_PROBE_DEBUG_GET_ProbeFilter_stall(tca_probe_debug) \
+ ((tca_probe_debug & TCA_PROBE_DEBUG_ProbeFilter_stall_MASK) >> TCA_PROBE_DEBUG_ProbeFilter_stall_SHIFT)
+
+#define TCA_PROBE_DEBUG_SET_ProbeFilter_stall(tca_probe_debug_reg, probefilter_stall) \
+ tca_probe_debug_reg = (tca_probe_debug_reg & ~TCA_PROBE_DEBUG_ProbeFilter_stall_MASK) | (probefilter_stall << TCA_PROBE_DEBUG_ProbeFilter_stall_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tca_probe_debug_t {
+ unsigned int probefilter_stall : TCA_PROBE_DEBUG_ProbeFilter_stall_SIZE;
+ unsigned int : 31;
+ } tca_probe_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tca_probe_debug_t {
+ unsigned int : 31;
+ unsigned int probefilter_stall : TCA_PROBE_DEBUG_ProbeFilter_stall_SIZE;
+ } tca_probe_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tca_probe_debug_t f;
+} tca_probe_debug_u;
+
+
+/*
+ * TCA_TPC_DEBUG struct
+ */
+
+#define TCA_TPC_DEBUG_captue_state_rts_SIZE 1
+#define TCA_TPC_DEBUG_capture_tca_rts_SIZE 1
+
+#define TCA_TPC_DEBUG_captue_state_rts_SHIFT 12
+#define TCA_TPC_DEBUG_capture_tca_rts_SHIFT 13
+
+#define TCA_TPC_DEBUG_captue_state_rts_MASK 0x00001000
+#define TCA_TPC_DEBUG_capture_tca_rts_MASK 0x00002000
+
+#define TCA_TPC_DEBUG_MASK \
+ (TCA_TPC_DEBUG_captue_state_rts_MASK | \
+ TCA_TPC_DEBUG_capture_tca_rts_MASK)
+
+#define TCA_TPC_DEBUG(captue_state_rts, capture_tca_rts) \
+ ((captue_state_rts << TCA_TPC_DEBUG_captue_state_rts_SHIFT) | \
+ (capture_tca_rts << TCA_TPC_DEBUG_capture_tca_rts_SHIFT))
+
+#define TCA_TPC_DEBUG_GET_captue_state_rts(tca_tpc_debug) \
+ ((tca_tpc_debug & TCA_TPC_DEBUG_captue_state_rts_MASK) >> TCA_TPC_DEBUG_captue_state_rts_SHIFT)
+#define TCA_TPC_DEBUG_GET_capture_tca_rts(tca_tpc_debug) \
+ ((tca_tpc_debug & TCA_TPC_DEBUG_capture_tca_rts_MASK) >> TCA_TPC_DEBUG_capture_tca_rts_SHIFT)
+
+#define TCA_TPC_DEBUG_SET_captue_state_rts(tca_tpc_debug_reg, captue_state_rts) \
+ tca_tpc_debug_reg = (tca_tpc_debug_reg & ~TCA_TPC_DEBUG_captue_state_rts_MASK) | (captue_state_rts << TCA_TPC_DEBUG_captue_state_rts_SHIFT)
+#define TCA_TPC_DEBUG_SET_capture_tca_rts(tca_tpc_debug_reg, capture_tca_rts) \
+ tca_tpc_debug_reg = (tca_tpc_debug_reg & ~TCA_TPC_DEBUG_capture_tca_rts_MASK) | (capture_tca_rts << TCA_TPC_DEBUG_capture_tca_rts_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tca_tpc_debug_t {
+ unsigned int : 12;
+ unsigned int captue_state_rts : TCA_TPC_DEBUG_captue_state_rts_SIZE;
+ unsigned int capture_tca_rts : TCA_TPC_DEBUG_capture_tca_rts_SIZE;
+ unsigned int : 18;
+ } tca_tpc_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tca_tpc_debug_t {
+ unsigned int : 18;
+ unsigned int capture_tca_rts : TCA_TPC_DEBUG_capture_tca_rts_SIZE;
+ unsigned int captue_state_rts : TCA_TPC_DEBUG_captue_state_rts_SIZE;
+ unsigned int : 12;
+ } tca_tpc_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tca_tpc_debug_t f;
+} tca_tpc_debug_u;
+
+
+/*
+ * TCB_CORE_DEBUG struct
+ */
+
+#define TCB_CORE_DEBUG_access512_SIZE 1
+#define TCB_CORE_DEBUG_tiled_SIZE 1
+#define TCB_CORE_DEBUG_opcode_SIZE 3
+#define TCB_CORE_DEBUG_format_SIZE 6
+#define TCB_CORE_DEBUG_sector_format_SIZE 5
+#define TCB_CORE_DEBUG_sector_format512_SIZE 3
+
+#define TCB_CORE_DEBUG_access512_SHIFT 0
+#define TCB_CORE_DEBUG_tiled_SHIFT 1
+#define TCB_CORE_DEBUG_opcode_SHIFT 4
+#define TCB_CORE_DEBUG_format_SHIFT 8
+#define TCB_CORE_DEBUG_sector_format_SHIFT 16
+#define TCB_CORE_DEBUG_sector_format512_SHIFT 24
+
+#define TCB_CORE_DEBUG_access512_MASK 0x00000001
+#define TCB_CORE_DEBUG_tiled_MASK 0x00000002
+#define TCB_CORE_DEBUG_opcode_MASK 0x00000070
+#define TCB_CORE_DEBUG_format_MASK 0x00003f00
+#define TCB_CORE_DEBUG_sector_format_MASK 0x001f0000
+#define TCB_CORE_DEBUG_sector_format512_MASK 0x07000000
+
+#define TCB_CORE_DEBUG_MASK \
+ (TCB_CORE_DEBUG_access512_MASK | \
+ TCB_CORE_DEBUG_tiled_MASK | \
+ TCB_CORE_DEBUG_opcode_MASK | \
+ TCB_CORE_DEBUG_format_MASK | \
+ TCB_CORE_DEBUG_sector_format_MASK | \
+ TCB_CORE_DEBUG_sector_format512_MASK)
+
+#define TCB_CORE_DEBUG(access512, tiled, opcode, format, sector_format, sector_format512) \
+ ((access512 << TCB_CORE_DEBUG_access512_SHIFT) | \
+ (tiled << TCB_CORE_DEBUG_tiled_SHIFT) | \
+ (opcode << TCB_CORE_DEBUG_opcode_SHIFT) | \
+ (format << TCB_CORE_DEBUG_format_SHIFT) | \
+ (sector_format << TCB_CORE_DEBUG_sector_format_SHIFT) | \
+ (sector_format512 << TCB_CORE_DEBUG_sector_format512_SHIFT))
+
+#define TCB_CORE_DEBUG_GET_access512(tcb_core_debug) \
+ ((tcb_core_debug & TCB_CORE_DEBUG_access512_MASK) >> TCB_CORE_DEBUG_access512_SHIFT)
+#define TCB_CORE_DEBUG_GET_tiled(tcb_core_debug) \
+ ((tcb_core_debug & TCB_CORE_DEBUG_tiled_MASK) >> TCB_CORE_DEBUG_tiled_SHIFT)
+#define TCB_CORE_DEBUG_GET_opcode(tcb_core_debug) \
+ ((tcb_core_debug & TCB_CORE_DEBUG_opcode_MASK) >> TCB_CORE_DEBUG_opcode_SHIFT)
+#define TCB_CORE_DEBUG_GET_format(tcb_core_debug) \
+ ((tcb_core_debug & TCB_CORE_DEBUG_format_MASK) >> TCB_CORE_DEBUG_format_SHIFT)
+#define TCB_CORE_DEBUG_GET_sector_format(tcb_core_debug) \
+ ((tcb_core_debug & TCB_CORE_DEBUG_sector_format_MASK) >> TCB_CORE_DEBUG_sector_format_SHIFT)
+#define TCB_CORE_DEBUG_GET_sector_format512(tcb_core_debug) \
+ ((tcb_core_debug & TCB_CORE_DEBUG_sector_format512_MASK) >> TCB_CORE_DEBUG_sector_format512_SHIFT)
+
+#define TCB_CORE_DEBUG_SET_access512(tcb_core_debug_reg, access512) \
+ tcb_core_debug_reg = (tcb_core_debug_reg & ~TCB_CORE_DEBUG_access512_MASK) | (access512 << TCB_CORE_DEBUG_access512_SHIFT)
+#define TCB_CORE_DEBUG_SET_tiled(tcb_core_debug_reg, tiled) \
+ tcb_core_debug_reg = (tcb_core_debug_reg & ~TCB_CORE_DEBUG_tiled_MASK) | (tiled << TCB_CORE_DEBUG_tiled_SHIFT)
+#define TCB_CORE_DEBUG_SET_opcode(tcb_core_debug_reg, opcode) \
+ tcb_core_debug_reg = (tcb_core_debug_reg & ~TCB_CORE_DEBUG_opcode_MASK) | (opcode << TCB_CORE_DEBUG_opcode_SHIFT)
+#define TCB_CORE_DEBUG_SET_format(tcb_core_debug_reg, format) \
+ tcb_core_debug_reg = (tcb_core_debug_reg & ~TCB_CORE_DEBUG_format_MASK) | (format << TCB_CORE_DEBUG_format_SHIFT)
+#define TCB_CORE_DEBUG_SET_sector_format(tcb_core_debug_reg, sector_format) \
+ tcb_core_debug_reg = (tcb_core_debug_reg & ~TCB_CORE_DEBUG_sector_format_MASK) | (sector_format << TCB_CORE_DEBUG_sector_format_SHIFT)
+#define TCB_CORE_DEBUG_SET_sector_format512(tcb_core_debug_reg, sector_format512) \
+ tcb_core_debug_reg = (tcb_core_debug_reg & ~TCB_CORE_DEBUG_sector_format512_MASK) | (sector_format512 << TCB_CORE_DEBUG_sector_format512_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcb_core_debug_t {
+ unsigned int access512 : TCB_CORE_DEBUG_access512_SIZE;
+ unsigned int tiled : TCB_CORE_DEBUG_tiled_SIZE;
+ unsigned int : 2;
+ unsigned int opcode : TCB_CORE_DEBUG_opcode_SIZE;
+ unsigned int : 1;
+ unsigned int format : TCB_CORE_DEBUG_format_SIZE;
+ unsigned int : 2;
+ unsigned int sector_format : TCB_CORE_DEBUG_sector_format_SIZE;
+ unsigned int : 3;
+ unsigned int sector_format512 : TCB_CORE_DEBUG_sector_format512_SIZE;
+ unsigned int : 5;
+ } tcb_core_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcb_core_debug_t {
+ unsigned int : 5;
+ unsigned int sector_format512 : TCB_CORE_DEBUG_sector_format512_SIZE;
+ unsigned int : 3;
+ unsigned int sector_format : TCB_CORE_DEBUG_sector_format_SIZE;
+ unsigned int : 2;
+ unsigned int format : TCB_CORE_DEBUG_format_SIZE;
+ unsigned int : 1;
+ unsigned int opcode : TCB_CORE_DEBUG_opcode_SIZE;
+ unsigned int : 2;
+ unsigned int tiled : TCB_CORE_DEBUG_tiled_SIZE;
+ unsigned int access512 : TCB_CORE_DEBUG_access512_SIZE;
+ } tcb_core_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcb_core_debug_t f;
+} tcb_core_debug_u;
+
+
+/*
+ * TCB_TAG0_DEBUG struct
+ */
+
+#define TCB_TAG0_DEBUG_mem_read_cycle_SIZE 10
+#define TCB_TAG0_DEBUG_tag_access_cycle_SIZE 9
+#define TCB_TAG0_DEBUG_miss_stall_SIZE 1
+#define TCB_TAG0_DEBUG_num_feee_lines_SIZE 5
+#define TCB_TAG0_DEBUG_max_misses_SIZE 3
+
+#define TCB_TAG0_DEBUG_mem_read_cycle_SHIFT 0
+#define TCB_TAG0_DEBUG_tag_access_cycle_SHIFT 12
+#define TCB_TAG0_DEBUG_miss_stall_SHIFT 23
+#define TCB_TAG0_DEBUG_num_feee_lines_SHIFT 24
+#define TCB_TAG0_DEBUG_max_misses_SHIFT 29
+
+#define TCB_TAG0_DEBUG_mem_read_cycle_MASK 0x000003ff
+#define TCB_TAG0_DEBUG_tag_access_cycle_MASK 0x001ff000
+#define TCB_TAG0_DEBUG_miss_stall_MASK 0x00800000
+#define TCB_TAG0_DEBUG_num_feee_lines_MASK 0x1f000000
+#define TCB_TAG0_DEBUG_max_misses_MASK 0xe0000000
+
+#define TCB_TAG0_DEBUG_MASK \
+ (TCB_TAG0_DEBUG_mem_read_cycle_MASK | \
+ TCB_TAG0_DEBUG_tag_access_cycle_MASK | \
+ TCB_TAG0_DEBUG_miss_stall_MASK | \
+ TCB_TAG0_DEBUG_num_feee_lines_MASK | \
+ TCB_TAG0_DEBUG_max_misses_MASK)
+
+#define TCB_TAG0_DEBUG(mem_read_cycle, tag_access_cycle, miss_stall, num_feee_lines, max_misses) \
+ ((mem_read_cycle << TCB_TAG0_DEBUG_mem_read_cycle_SHIFT) | \
+ (tag_access_cycle << TCB_TAG0_DEBUG_tag_access_cycle_SHIFT) | \
+ (miss_stall << TCB_TAG0_DEBUG_miss_stall_SHIFT) | \
+ (num_feee_lines << TCB_TAG0_DEBUG_num_feee_lines_SHIFT) | \
+ (max_misses << TCB_TAG0_DEBUG_max_misses_SHIFT))
+
+#define TCB_TAG0_DEBUG_GET_mem_read_cycle(tcb_tag0_debug) \
+ ((tcb_tag0_debug & TCB_TAG0_DEBUG_mem_read_cycle_MASK) >> TCB_TAG0_DEBUG_mem_read_cycle_SHIFT)
+#define TCB_TAG0_DEBUG_GET_tag_access_cycle(tcb_tag0_debug) \
+ ((tcb_tag0_debug & TCB_TAG0_DEBUG_tag_access_cycle_MASK) >> TCB_TAG0_DEBUG_tag_access_cycle_SHIFT)
+#define TCB_TAG0_DEBUG_GET_miss_stall(tcb_tag0_debug) \
+ ((tcb_tag0_debug & TCB_TAG0_DEBUG_miss_stall_MASK) >> TCB_TAG0_DEBUG_miss_stall_SHIFT)
+#define TCB_TAG0_DEBUG_GET_num_feee_lines(tcb_tag0_debug) \
+ ((tcb_tag0_debug & TCB_TAG0_DEBUG_num_feee_lines_MASK) >> TCB_TAG0_DEBUG_num_feee_lines_SHIFT)
+#define TCB_TAG0_DEBUG_GET_max_misses(tcb_tag0_debug) \
+ ((tcb_tag0_debug & TCB_TAG0_DEBUG_max_misses_MASK) >> TCB_TAG0_DEBUG_max_misses_SHIFT)
+
+#define TCB_TAG0_DEBUG_SET_mem_read_cycle(tcb_tag0_debug_reg, mem_read_cycle) \
+ tcb_tag0_debug_reg = (tcb_tag0_debug_reg & ~TCB_TAG0_DEBUG_mem_read_cycle_MASK) | (mem_read_cycle << TCB_TAG0_DEBUG_mem_read_cycle_SHIFT)
+#define TCB_TAG0_DEBUG_SET_tag_access_cycle(tcb_tag0_debug_reg, tag_access_cycle) \
+ tcb_tag0_debug_reg = (tcb_tag0_debug_reg & ~TCB_TAG0_DEBUG_tag_access_cycle_MASK) | (tag_access_cycle << TCB_TAG0_DEBUG_tag_access_cycle_SHIFT)
+#define TCB_TAG0_DEBUG_SET_miss_stall(tcb_tag0_debug_reg, miss_stall) \
+ tcb_tag0_debug_reg = (tcb_tag0_debug_reg & ~TCB_TAG0_DEBUG_miss_stall_MASK) | (miss_stall << TCB_TAG0_DEBUG_miss_stall_SHIFT)
+#define TCB_TAG0_DEBUG_SET_num_feee_lines(tcb_tag0_debug_reg, num_feee_lines) \
+ tcb_tag0_debug_reg = (tcb_tag0_debug_reg & ~TCB_TAG0_DEBUG_num_feee_lines_MASK) | (num_feee_lines << TCB_TAG0_DEBUG_num_feee_lines_SHIFT)
+#define TCB_TAG0_DEBUG_SET_max_misses(tcb_tag0_debug_reg, max_misses) \
+ tcb_tag0_debug_reg = (tcb_tag0_debug_reg & ~TCB_TAG0_DEBUG_max_misses_MASK) | (max_misses << TCB_TAG0_DEBUG_max_misses_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcb_tag0_debug_t {
+ unsigned int mem_read_cycle : TCB_TAG0_DEBUG_mem_read_cycle_SIZE;
+ unsigned int : 2;
+ unsigned int tag_access_cycle : TCB_TAG0_DEBUG_tag_access_cycle_SIZE;
+ unsigned int : 2;
+ unsigned int miss_stall : TCB_TAG0_DEBUG_miss_stall_SIZE;
+ unsigned int num_feee_lines : TCB_TAG0_DEBUG_num_feee_lines_SIZE;
+ unsigned int max_misses : TCB_TAG0_DEBUG_max_misses_SIZE;
+ } tcb_tag0_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcb_tag0_debug_t {
+ unsigned int max_misses : TCB_TAG0_DEBUG_max_misses_SIZE;
+ unsigned int num_feee_lines : TCB_TAG0_DEBUG_num_feee_lines_SIZE;
+ unsigned int miss_stall : TCB_TAG0_DEBUG_miss_stall_SIZE;
+ unsigned int : 2;
+ unsigned int tag_access_cycle : TCB_TAG0_DEBUG_tag_access_cycle_SIZE;
+ unsigned int : 2;
+ unsigned int mem_read_cycle : TCB_TAG0_DEBUG_mem_read_cycle_SIZE;
+ } tcb_tag0_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcb_tag0_debug_t f;
+} tcb_tag0_debug_u;
+
+
+/*
+ * TCB_TAG1_DEBUG struct
+ */
+
+#define TCB_TAG1_DEBUG_mem_read_cycle_SIZE 10
+#define TCB_TAG1_DEBUG_tag_access_cycle_SIZE 9
+#define TCB_TAG1_DEBUG_miss_stall_SIZE 1
+#define TCB_TAG1_DEBUG_num_feee_lines_SIZE 5
+#define TCB_TAG1_DEBUG_max_misses_SIZE 3
+
+#define TCB_TAG1_DEBUG_mem_read_cycle_SHIFT 0
+#define TCB_TAG1_DEBUG_tag_access_cycle_SHIFT 12
+#define TCB_TAG1_DEBUG_miss_stall_SHIFT 23
+#define TCB_TAG1_DEBUG_num_feee_lines_SHIFT 24
+#define TCB_TAG1_DEBUG_max_misses_SHIFT 29
+
+#define TCB_TAG1_DEBUG_mem_read_cycle_MASK 0x000003ff
+#define TCB_TAG1_DEBUG_tag_access_cycle_MASK 0x001ff000
+#define TCB_TAG1_DEBUG_miss_stall_MASK 0x00800000
+#define TCB_TAG1_DEBUG_num_feee_lines_MASK 0x1f000000
+#define TCB_TAG1_DEBUG_max_misses_MASK 0xe0000000
+
+#define TCB_TAG1_DEBUG_MASK \
+ (TCB_TAG1_DEBUG_mem_read_cycle_MASK | \
+ TCB_TAG1_DEBUG_tag_access_cycle_MASK | \
+ TCB_TAG1_DEBUG_miss_stall_MASK | \
+ TCB_TAG1_DEBUG_num_feee_lines_MASK | \
+ TCB_TAG1_DEBUG_max_misses_MASK)
+
+#define TCB_TAG1_DEBUG(mem_read_cycle, tag_access_cycle, miss_stall, num_feee_lines, max_misses) \
+ ((mem_read_cycle << TCB_TAG1_DEBUG_mem_read_cycle_SHIFT) | \
+ (tag_access_cycle << TCB_TAG1_DEBUG_tag_access_cycle_SHIFT) | \
+ (miss_stall << TCB_TAG1_DEBUG_miss_stall_SHIFT) | \
+ (num_feee_lines << TCB_TAG1_DEBUG_num_feee_lines_SHIFT) | \
+ (max_misses << TCB_TAG1_DEBUG_max_misses_SHIFT))
+
+#define TCB_TAG1_DEBUG_GET_mem_read_cycle(tcb_tag1_debug) \
+ ((tcb_tag1_debug & TCB_TAG1_DEBUG_mem_read_cycle_MASK) >> TCB_TAG1_DEBUG_mem_read_cycle_SHIFT)
+#define TCB_TAG1_DEBUG_GET_tag_access_cycle(tcb_tag1_debug) \
+ ((tcb_tag1_debug & TCB_TAG1_DEBUG_tag_access_cycle_MASK) >> TCB_TAG1_DEBUG_tag_access_cycle_SHIFT)
+#define TCB_TAG1_DEBUG_GET_miss_stall(tcb_tag1_debug) \
+ ((tcb_tag1_debug & TCB_TAG1_DEBUG_miss_stall_MASK) >> TCB_TAG1_DEBUG_miss_stall_SHIFT)
+#define TCB_TAG1_DEBUG_GET_num_feee_lines(tcb_tag1_debug) \
+ ((tcb_tag1_debug & TCB_TAG1_DEBUG_num_feee_lines_MASK) >> TCB_TAG1_DEBUG_num_feee_lines_SHIFT)
+#define TCB_TAG1_DEBUG_GET_max_misses(tcb_tag1_debug) \
+ ((tcb_tag1_debug & TCB_TAG1_DEBUG_max_misses_MASK) >> TCB_TAG1_DEBUG_max_misses_SHIFT)
+
+#define TCB_TAG1_DEBUG_SET_mem_read_cycle(tcb_tag1_debug_reg, mem_read_cycle) \
+ tcb_tag1_debug_reg = (tcb_tag1_debug_reg & ~TCB_TAG1_DEBUG_mem_read_cycle_MASK) | (mem_read_cycle << TCB_TAG1_DEBUG_mem_read_cycle_SHIFT)
+#define TCB_TAG1_DEBUG_SET_tag_access_cycle(tcb_tag1_debug_reg, tag_access_cycle) \
+ tcb_tag1_debug_reg = (tcb_tag1_debug_reg & ~TCB_TAG1_DEBUG_tag_access_cycle_MASK) | (tag_access_cycle << TCB_TAG1_DEBUG_tag_access_cycle_SHIFT)
+#define TCB_TAG1_DEBUG_SET_miss_stall(tcb_tag1_debug_reg, miss_stall) \
+ tcb_tag1_debug_reg = (tcb_tag1_debug_reg & ~TCB_TAG1_DEBUG_miss_stall_MASK) | (miss_stall << TCB_TAG1_DEBUG_miss_stall_SHIFT)
+#define TCB_TAG1_DEBUG_SET_num_feee_lines(tcb_tag1_debug_reg, num_feee_lines) \
+ tcb_tag1_debug_reg = (tcb_tag1_debug_reg & ~TCB_TAG1_DEBUG_num_feee_lines_MASK) | (num_feee_lines << TCB_TAG1_DEBUG_num_feee_lines_SHIFT)
+#define TCB_TAG1_DEBUG_SET_max_misses(tcb_tag1_debug_reg, max_misses) \
+ tcb_tag1_debug_reg = (tcb_tag1_debug_reg & ~TCB_TAG1_DEBUG_max_misses_MASK) | (max_misses << TCB_TAG1_DEBUG_max_misses_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcb_tag1_debug_t {
+ unsigned int mem_read_cycle : TCB_TAG1_DEBUG_mem_read_cycle_SIZE;
+ unsigned int : 2;
+ unsigned int tag_access_cycle : TCB_TAG1_DEBUG_tag_access_cycle_SIZE;
+ unsigned int : 2;
+ unsigned int miss_stall : TCB_TAG1_DEBUG_miss_stall_SIZE;
+ unsigned int num_feee_lines : TCB_TAG1_DEBUG_num_feee_lines_SIZE;
+ unsigned int max_misses : TCB_TAG1_DEBUG_max_misses_SIZE;
+ } tcb_tag1_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcb_tag1_debug_t {
+ unsigned int max_misses : TCB_TAG1_DEBUG_max_misses_SIZE;
+ unsigned int num_feee_lines : TCB_TAG1_DEBUG_num_feee_lines_SIZE;
+ unsigned int miss_stall : TCB_TAG1_DEBUG_miss_stall_SIZE;
+ unsigned int : 2;
+ unsigned int tag_access_cycle : TCB_TAG1_DEBUG_tag_access_cycle_SIZE;
+ unsigned int : 2;
+ unsigned int mem_read_cycle : TCB_TAG1_DEBUG_mem_read_cycle_SIZE;
+ } tcb_tag1_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcb_tag1_debug_t f;
+} tcb_tag1_debug_u;
+
+
+/*
+ * TCB_TAG2_DEBUG struct
+ */
+
+#define TCB_TAG2_DEBUG_mem_read_cycle_SIZE 10
+#define TCB_TAG2_DEBUG_tag_access_cycle_SIZE 9
+#define TCB_TAG2_DEBUG_miss_stall_SIZE 1
+#define TCB_TAG2_DEBUG_num_feee_lines_SIZE 5
+#define TCB_TAG2_DEBUG_max_misses_SIZE 3
+
+#define TCB_TAG2_DEBUG_mem_read_cycle_SHIFT 0
+#define TCB_TAG2_DEBUG_tag_access_cycle_SHIFT 12
+#define TCB_TAG2_DEBUG_miss_stall_SHIFT 23
+#define TCB_TAG2_DEBUG_num_feee_lines_SHIFT 24
+#define TCB_TAG2_DEBUG_max_misses_SHIFT 29
+
+#define TCB_TAG2_DEBUG_mem_read_cycle_MASK 0x000003ff
+#define TCB_TAG2_DEBUG_tag_access_cycle_MASK 0x001ff000
+#define TCB_TAG2_DEBUG_miss_stall_MASK 0x00800000
+#define TCB_TAG2_DEBUG_num_feee_lines_MASK 0x1f000000
+#define TCB_TAG2_DEBUG_max_misses_MASK 0xe0000000
+
+#define TCB_TAG2_DEBUG_MASK \
+ (TCB_TAG2_DEBUG_mem_read_cycle_MASK | \
+ TCB_TAG2_DEBUG_tag_access_cycle_MASK | \
+ TCB_TAG2_DEBUG_miss_stall_MASK | \
+ TCB_TAG2_DEBUG_num_feee_lines_MASK | \
+ TCB_TAG2_DEBUG_max_misses_MASK)
+
+#define TCB_TAG2_DEBUG(mem_read_cycle, tag_access_cycle, miss_stall, num_feee_lines, max_misses) \
+ ((mem_read_cycle << TCB_TAG2_DEBUG_mem_read_cycle_SHIFT) | \
+ (tag_access_cycle << TCB_TAG2_DEBUG_tag_access_cycle_SHIFT) | \
+ (miss_stall << TCB_TAG2_DEBUG_miss_stall_SHIFT) | \
+ (num_feee_lines << TCB_TAG2_DEBUG_num_feee_lines_SHIFT) | \
+ (max_misses << TCB_TAG2_DEBUG_max_misses_SHIFT))
+
+#define TCB_TAG2_DEBUG_GET_mem_read_cycle(tcb_tag2_debug) \
+ ((tcb_tag2_debug & TCB_TAG2_DEBUG_mem_read_cycle_MASK) >> TCB_TAG2_DEBUG_mem_read_cycle_SHIFT)
+#define TCB_TAG2_DEBUG_GET_tag_access_cycle(tcb_tag2_debug) \
+ ((tcb_tag2_debug & TCB_TAG2_DEBUG_tag_access_cycle_MASK) >> TCB_TAG2_DEBUG_tag_access_cycle_SHIFT)
+#define TCB_TAG2_DEBUG_GET_miss_stall(tcb_tag2_debug) \
+ ((tcb_tag2_debug & TCB_TAG2_DEBUG_miss_stall_MASK) >> TCB_TAG2_DEBUG_miss_stall_SHIFT)
+#define TCB_TAG2_DEBUG_GET_num_feee_lines(tcb_tag2_debug) \
+ ((tcb_tag2_debug & TCB_TAG2_DEBUG_num_feee_lines_MASK) >> TCB_TAG2_DEBUG_num_feee_lines_SHIFT)
+#define TCB_TAG2_DEBUG_GET_max_misses(tcb_tag2_debug) \
+ ((tcb_tag2_debug & TCB_TAG2_DEBUG_max_misses_MASK) >> TCB_TAG2_DEBUG_max_misses_SHIFT)
+
+#define TCB_TAG2_DEBUG_SET_mem_read_cycle(tcb_tag2_debug_reg, mem_read_cycle) \
+ tcb_tag2_debug_reg = (tcb_tag2_debug_reg & ~TCB_TAG2_DEBUG_mem_read_cycle_MASK) | (mem_read_cycle << TCB_TAG2_DEBUG_mem_read_cycle_SHIFT)
+#define TCB_TAG2_DEBUG_SET_tag_access_cycle(tcb_tag2_debug_reg, tag_access_cycle) \
+ tcb_tag2_debug_reg = (tcb_tag2_debug_reg & ~TCB_TAG2_DEBUG_tag_access_cycle_MASK) | (tag_access_cycle << TCB_TAG2_DEBUG_tag_access_cycle_SHIFT)
+#define TCB_TAG2_DEBUG_SET_miss_stall(tcb_tag2_debug_reg, miss_stall) \
+ tcb_tag2_debug_reg = (tcb_tag2_debug_reg & ~TCB_TAG2_DEBUG_miss_stall_MASK) | (miss_stall << TCB_TAG2_DEBUG_miss_stall_SHIFT)
+#define TCB_TAG2_DEBUG_SET_num_feee_lines(tcb_tag2_debug_reg, num_feee_lines) \
+ tcb_tag2_debug_reg = (tcb_tag2_debug_reg & ~TCB_TAG2_DEBUG_num_feee_lines_MASK) | (num_feee_lines << TCB_TAG2_DEBUG_num_feee_lines_SHIFT)
+#define TCB_TAG2_DEBUG_SET_max_misses(tcb_tag2_debug_reg, max_misses) \
+ tcb_tag2_debug_reg = (tcb_tag2_debug_reg & ~TCB_TAG2_DEBUG_max_misses_MASK) | (max_misses << TCB_TAG2_DEBUG_max_misses_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcb_tag2_debug_t {
+ unsigned int mem_read_cycle : TCB_TAG2_DEBUG_mem_read_cycle_SIZE;
+ unsigned int : 2;
+ unsigned int tag_access_cycle : TCB_TAG2_DEBUG_tag_access_cycle_SIZE;
+ unsigned int : 2;
+ unsigned int miss_stall : TCB_TAG2_DEBUG_miss_stall_SIZE;
+ unsigned int num_feee_lines : TCB_TAG2_DEBUG_num_feee_lines_SIZE;
+ unsigned int max_misses : TCB_TAG2_DEBUG_max_misses_SIZE;
+ } tcb_tag2_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcb_tag2_debug_t {
+ unsigned int max_misses : TCB_TAG2_DEBUG_max_misses_SIZE;
+ unsigned int num_feee_lines : TCB_TAG2_DEBUG_num_feee_lines_SIZE;
+ unsigned int miss_stall : TCB_TAG2_DEBUG_miss_stall_SIZE;
+ unsigned int : 2;
+ unsigned int tag_access_cycle : TCB_TAG2_DEBUG_tag_access_cycle_SIZE;
+ unsigned int : 2;
+ unsigned int mem_read_cycle : TCB_TAG2_DEBUG_mem_read_cycle_SIZE;
+ } tcb_tag2_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcb_tag2_debug_t f;
+} tcb_tag2_debug_u;
+
+
+/*
+ * TCB_TAG3_DEBUG struct
+ */
+
+#define TCB_TAG3_DEBUG_mem_read_cycle_SIZE 10
+#define TCB_TAG3_DEBUG_tag_access_cycle_SIZE 9
+#define TCB_TAG3_DEBUG_miss_stall_SIZE 1
+#define TCB_TAG3_DEBUG_num_feee_lines_SIZE 5
+#define TCB_TAG3_DEBUG_max_misses_SIZE 3
+
+#define TCB_TAG3_DEBUG_mem_read_cycle_SHIFT 0
+#define TCB_TAG3_DEBUG_tag_access_cycle_SHIFT 12
+#define TCB_TAG3_DEBUG_miss_stall_SHIFT 23
+#define TCB_TAG3_DEBUG_num_feee_lines_SHIFT 24
+#define TCB_TAG3_DEBUG_max_misses_SHIFT 29
+
+#define TCB_TAG3_DEBUG_mem_read_cycle_MASK 0x000003ff
+#define TCB_TAG3_DEBUG_tag_access_cycle_MASK 0x001ff000
+#define TCB_TAG3_DEBUG_miss_stall_MASK 0x00800000
+#define TCB_TAG3_DEBUG_num_feee_lines_MASK 0x1f000000
+#define TCB_TAG3_DEBUG_max_misses_MASK 0xe0000000
+
+#define TCB_TAG3_DEBUG_MASK \
+ (TCB_TAG3_DEBUG_mem_read_cycle_MASK | \
+ TCB_TAG3_DEBUG_tag_access_cycle_MASK | \
+ TCB_TAG3_DEBUG_miss_stall_MASK | \
+ TCB_TAG3_DEBUG_num_feee_lines_MASK | \
+ TCB_TAG3_DEBUG_max_misses_MASK)
+
+#define TCB_TAG3_DEBUG(mem_read_cycle, tag_access_cycle, miss_stall, num_feee_lines, max_misses) \
+ ((mem_read_cycle << TCB_TAG3_DEBUG_mem_read_cycle_SHIFT) | \
+ (tag_access_cycle << TCB_TAG3_DEBUG_tag_access_cycle_SHIFT) | \
+ (miss_stall << TCB_TAG3_DEBUG_miss_stall_SHIFT) | \
+ (num_feee_lines << TCB_TAG3_DEBUG_num_feee_lines_SHIFT) | \
+ (max_misses << TCB_TAG3_DEBUG_max_misses_SHIFT))
+
+#define TCB_TAG3_DEBUG_GET_mem_read_cycle(tcb_tag3_debug) \
+ ((tcb_tag3_debug & TCB_TAG3_DEBUG_mem_read_cycle_MASK) >> TCB_TAG3_DEBUG_mem_read_cycle_SHIFT)
+#define TCB_TAG3_DEBUG_GET_tag_access_cycle(tcb_tag3_debug) \
+ ((tcb_tag3_debug & TCB_TAG3_DEBUG_tag_access_cycle_MASK) >> TCB_TAG3_DEBUG_tag_access_cycle_SHIFT)
+#define TCB_TAG3_DEBUG_GET_miss_stall(tcb_tag3_debug) \
+ ((tcb_tag3_debug & TCB_TAG3_DEBUG_miss_stall_MASK) >> TCB_TAG3_DEBUG_miss_stall_SHIFT)
+#define TCB_TAG3_DEBUG_GET_num_feee_lines(tcb_tag3_debug) \
+ ((tcb_tag3_debug & TCB_TAG3_DEBUG_num_feee_lines_MASK) >> TCB_TAG3_DEBUG_num_feee_lines_SHIFT)
+#define TCB_TAG3_DEBUG_GET_max_misses(tcb_tag3_debug) \
+ ((tcb_tag3_debug & TCB_TAG3_DEBUG_max_misses_MASK) >> TCB_TAG3_DEBUG_max_misses_SHIFT)
+
+#define TCB_TAG3_DEBUG_SET_mem_read_cycle(tcb_tag3_debug_reg, mem_read_cycle) \
+ tcb_tag3_debug_reg = (tcb_tag3_debug_reg & ~TCB_TAG3_DEBUG_mem_read_cycle_MASK) | (mem_read_cycle << TCB_TAG3_DEBUG_mem_read_cycle_SHIFT)
+#define TCB_TAG3_DEBUG_SET_tag_access_cycle(tcb_tag3_debug_reg, tag_access_cycle) \
+ tcb_tag3_debug_reg = (tcb_tag3_debug_reg & ~TCB_TAG3_DEBUG_tag_access_cycle_MASK) | (tag_access_cycle << TCB_TAG3_DEBUG_tag_access_cycle_SHIFT)
+#define TCB_TAG3_DEBUG_SET_miss_stall(tcb_tag3_debug_reg, miss_stall) \
+ tcb_tag3_debug_reg = (tcb_tag3_debug_reg & ~TCB_TAG3_DEBUG_miss_stall_MASK) | (miss_stall << TCB_TAG3_DEBUG_miss_stall_SHIFT)
+#define TCB_TAG3_DEBUG_SET_num_feee_lines(tcb_tag3_debug_reg, num_feee_lines) \
+ tcb_tag3_debug_reg = (tcb_tag3_debug_reg & ~TCB_TAG3_DEBUG_num_feee_lines_MASK) | (num_feee_lines << TCB_TAG3_DEBUG_num_feee_lines_SHIFT)
+#define TCB_TAG3_DEBUG_SET_max_misses(tcb_tag3_debug_reg, max_misses) \
+ tcb_tag3_debug_reg = (tcb_tag3_debug_reg & ~TCB_TAG3_DEBUG_max_misses_MASK) | (max_misses << TCB_TAG3_DEBUG_max_misses_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcb_tag3_debug_t {
+ unsigned int mem_read_cycle : TCB_TAG3_DEBUG_mem_read_cycle_SIZE;
+ unsigned int : 2;
+ unsigned int tag_access_cycle : TCB_TAG3_DEBUG_tag_access_cycle_SIZE;
+ unsigned int : 2;
+ unsigned int miss_stall : TCB_TAG3_DEBUG_miss_stall_SIZE;
+ unsigned int num_feee_lines : TCB_TAG3_DEBUG_num_feee_lines_SIZE;
+ unsigned int max_misses : TCB_TAG3_DEBUG_max_misses_SIZE;
+ } tcb_tag3_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcb_tag3_debug_t {
+ unsigned int max_misses : TCB_TAG3_DEBUG_max_misses_SIZE;
+ unsigned int num_feee_lines : TCB_TAG3_DEBUG_num_feee_lines_SIZE;
+ unsigned int miss_stall : TCB_TAG3_DEBUG_miss_stall_SIZE;
+ unsigned int : 2;
+ unsigned int tag_access_cycle : TCB_TAG3_DEBUG_tag_access_cycle_SIZE;
+ unsigned int : 2;
+ unsigned int mem_read_cycle : TCB_TAG3_DEBUG_mem_read_cycle_SIZE;
+ } tcb_tag3_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcb_tag3_debug_t f;
+} tcb_tag3_debug_u;
+
+
+/*
+ * TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG struct
+ */
+
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_left_done_SIZE 1
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_fg0_sends_left_SIZE 1
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_one_sector_to_go_left_q_SIZE 1
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_no_sectors_to_go_SIZE 1
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_update_left_SIZE 1
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_count_q_SIZE 5
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_q_SIZE 16
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_valid_left_q_SIZE 1
+
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_left_done_SHIFT 0
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_fg0_sends_left_SHIFT 2
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_one_sector_to_go_left_q_SHIFT 4
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_no_sectors_to_go_SHIFT 5
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_update_left_SHIFT 6
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_count_q_SHIFT 7
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_q_SHIFT 12
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_valid_left_q_SHIFT 28
+
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_left_done_MASK 0x00000001
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_fg0_sends_left_MASK 0x00000004
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_one_sector_to_go_left_q_MASK 0x00000010
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_no_sectors_to_go_MASK 0x00000020
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_update_left_MASK 0x00000040
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_count_q_MASK 0x00000f80
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_q_MASK 0x0ffff000
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_valid_left_q_MASK 0x10000000
+
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_MASK \
+ (TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_left_done_MASK | \
+ TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_fg0_sends_left_MASK | \
+ TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_one_sector_to_go_left_q_MASK | \
+ TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_no_sectors_to_go_MASK | \
+ TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_update_left_MASK | \
+ TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_count_q_MASK | \
+ TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_q_MASK | \
+ TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_valid_left_q_MASK)
+
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG(left_done, fg0_sends_left, one_sector_to_go_left_q, no_sectors_to_go, update_left, sector_mask_left_count_q, sector_mask_left_q, valid_left_q) \
+ ((left_done << TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_left_done_SHIFT) | \
+ (fg0_sends_left << TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_fg0_sends_left_SHIFT) | \
+ (one_sector_to_go_left_q << TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_one_sector_to_go_left_q_SHIFT) | \
+ (no_sectors_to_go << TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_no_sectors_to_go_SHIFT) | \
+ (update_left << TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_update_left_SHIFT) | \
+ (sector_mask_left_count_q << TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_count_q_SHIFT) | \
+ (sector_mask_left_q << TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_q_SHIFT) | \
+ (valid_left_q << TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_valid_left_q_SHIFT))
+
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_GET_left_done(tcb_fetch_gen_sector_walker0_debug) \
+ ((tcb_fetch_gen_sector_walker0_debug & TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_left_done_MASK) >> TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_left_done_SHIFT)
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_GET_fg0_sends_left(tcb_fetch_gen_sector_walker0_debug) \
+ ((tcb_fetch_gen_sector_walker0_debug & TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_fg0_sends_left_MASK) >> TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_fg0_sends_left_SHIFT)
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_GET_one_sector_to_go_left_q(tcb_fetch_gen_sector_walker0_debug) \
+ ((tcb_fetch_gen_sector_walker0_debug & TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_one_sector_to_go_left_q_MASK) >> TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_one_sector_to_go_left_q_SHIFT)
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_GET_no_sectors_to_go(tcb_fetch_gen_sector_walker0_debug) \
+ ((tcb_fetch_gen_sector_walker0_debug & TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_no_sectors_to_go_MASK) >> TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_no_sectors_to_go_SHIFT)
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_GET_update_left(tcb_fetch_gen_sector_walker0_debug) \
+ ((tcb_fetch_gen_sector_walker0_debug & TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_update_left_MASK) >> TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_update_left_SHIFT)
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_GET_sector_mask_left_count_q(tcb_fetch_gen_sector_walker0_debug) \
+ ((tcb_fetch_gen_sector_walker0_debug & TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_count_q_MASK) >> TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_count_q_SHIFT)
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_GET_sector_mask_left_q(tcb_fetch_gen_sector_walker0_debug) \
+ ((tcb_fetch_gen_sector_walker0_debug & TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_q_MASK) >> TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_q_SHIFT)
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_GET_valid_left_q(tcb_fetch_gen_sector_walker0_debug) \
+ ((tcb_fetch_gen_sector_walker0_debug & TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_valid_left_q_MASK) >> TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_valid_left_q_SHIFT)
+
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_SET_left_done(tcb_fetch_gen_sector_walker0_debug_reg, left_done) \
+ tcb_fetch_gen_sector_walker0_debug_reg = (tcb_fetch_gen_sector_walker0_debug_reg & ~TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_left_done_MASK) | (left_done << TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_left_done_SHIFT)
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_SET_fg0_sends_left(tcb_fetch_gen_sector_walker0_debug_reg, fg0_sends_left) \
+ tcb_fetch_gen_sector_walker0_debug_reg = (tcb_fetch_gen_sector_walker0_debug_reg & ~TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_fg0_sends_left_MASK) | (fg0_sends_left << TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_fg0_sends_left_SHIFT)
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_SET_one_sector_to_go_left_q(tcb_fetch_gen_sector_walker0_debug_reg, one_sector_to_go_left_q) \
+ tcb_fetch_gen_sector_walker0_debug_reg = (tcb_fetch_gen_sector_walker0_debug_reg & ~TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_one_sector_to_go_left_q_MASK) | (one_sector_to_go_left_q << TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_one_sector_to_go_left_q_SHIFT)
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_SET_no_sectors_to_go(tcb_fetch_gen_sector_walker0_debug_reg, no_sectors_to_go) \
+ tcb_fetch_gen_sector_walker0_debug_reg = (tcb_fetch_gen_sector_walker0_debug_reg & ~TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_no_sectors_to_go_MASK) | (no_sectors_to_go << TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_no_sectors_to_go_SHIFT)
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_SET_update_left(tcb_fetch_gen_sector_walker0_debug_reg, update_left) \
+ tcb_fetch_gen_sector_walker0_debug_reg = (tcb_fetch_gen_sector_walker0_debug_reg & ~TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_update_left_MASK) | (update_left << TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_update_left_SHIFT)
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_SET_sector_mask_left_count_q(tcb_fetch_gen_sector_walker0_debug_reg, sector_mask_left_count_q) \
+ tcb_fetch_gen_sector_walker0_debug_reg = (tcb_fetch_gen_sector_walker0_debug_reg & ~TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_count_q_MASK) | (sector_mask_left_count_q << TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_count_q_SHIFT)
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_SET_sector_mask_left_q(tcb_fetch_gen_sector_walker0_debug_reg, sector_mask_left_q) \
+ tcb_fetch_gen_sector_walker0_debug_reg = (tcb_fetch_gen_sector_walker0_debug_reg & ~TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_q_MASK) | (sector_mask_left_q << TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_q_SHIFT)
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_SET_valid_left_q(tcb_fetch_gen_sector_walker0_debug_reg, valid_left_q) \
+ tcb_fetch_gen_sector_walker0_debug_reg = (tcb_fetch_gen_sector_walker0_debug_reg & ~TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_valid_left_q_MASK) | (valid_left_q << TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_valid_left_q_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcb_fetch_gen_sector_walker0_debug_t {
+ unsigned int left_done : TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_left_done_SIZE;
+ unsigned int : 1;
+ unsigned int fg0_sends_left : TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_fg0_sends_left_SIZE;
+ unsigned int : 1;
+ unsigned int one_sector_to_go_left_q : TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_one_sector_to_go_left_q_SIZE;
+ unsigned int no_sectors_to_go : TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_no_sectors_to_go_SIZE;
+ unsigned int update_left : TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_update_left_SIZE;
+ unsigned int sector_mask_left_count_q : TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_count_q_SIZE;
+ unsigned int sector_mask_left_q : TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_q_SIZE;
+ unsigned int valid_left_q : TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_valid_left_q_SIZE;
+ unsigned int : 3;
+ } tcb_fetch_gen_sector_walker0_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcb_fetch_gen_sector_walker0_debug_t {
+ unsigned int : 3;
+ unsigned int valid_left_q : TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_valid_left_q_SIZE;
+ unsigned int sector_mask_left_q : TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_q_SIZE;
+ unsigned int sector_mask_left_count_q : TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_count_q_SIZE;
+ unsigned int update_left : TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_update_left_SIZE;
+ unsigned int no_sectors_to_go : TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_no_sectors_to_go_SIZE;
+ unsigned int one_sector_to_go_left_q : TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_one_sector_to_go_left_q_SIZE;
+ unsigned int : 1;
+ unsigned int fg0_sends_left : TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_fg0_sends_left_SIZE;
+ unsigned int : 1;
+ unsigned int left_done : TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_left_done_SIZE;
+ } tcb_fetch_gen_sector_walker0_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcb_fetch_gen_sector_walker0_debug_t f;
+} tcb_fetch_gen_sector_walker0_debug_u;
+
+
+/*
+ * TCB_FETCH_GEN_WALKER_DEBUG struct
+ */
+
+#define TCB_FETCH_GEN_WALKER_DEBUG_quad_sel_left_SIZE 2
+#define TCB_FETCH_GEN_WALKER_DEBUG_set_sel_left_SIZE 2
+#define TCB_FETCH_GEN_WALKER_DEBUG_right_eq_left_SIZE 1
+#define TCB_FETCH_GEN_WALKER_DEBUG_ff_fg_type512_SIZE 3
+#define TCB_FETCH_GEN_WALKER_DEBUG_busy_SIZE 1
+#define TCB_FETCH_GEN_WALKER_DEBUG_setquads_to_send_SIZE 4
+
+#define TCB_FETCH_GEN_WALKER_DEBUG_quad_sel_left_SHIFT 4
+#define TCB_FETCH_GEN_WALKER_DEBUG_set_sel_left_SHIFT 6
+#define TCB_FETCH_GEN_WALKER_DEBUG_right_eq_left_SHIFT 11
+#define TCB_FETCH_GEN_WALKER_DEBUG_ff_fg_type512_SHIFT 12
+#define TCB_FETCH_GEN_WALKER_DEBUG_busy_SHIFT 15
+#define TCB_FETCH_GEN_WALKER_DEBUG_setquads_to_send_SHIFT 16
+
+#define TCB_FETCH_GEN_WALKER_DEBUG_quad_sel_left_MASK 0x00000030
+#define TCB_FETCH_GEN_WALKER_DEBUG_set_sel_left_MASK 0x000000c0
+#define TCB_FETCH_GEN_WALKER_DEBUG_right_eq_left_MASK 0x00000800
+#define TCB_FETCH_GEN_WALKER_DEBUG_ff_fg_type512_MASK 0x00007000
+#define TCB_FETCH_GEN_WALKER_DEBUG_busy_MASK 0x00008000
+#define TCB_FETCH_GEN_WALKER_DEBUG_setquads_to_send_MASK 0x000f0000
+
+#define TCB_FETCH_GEN_WALKER_DEBUG_MASK \
+ (TCB_FETCH_GEN_WALKER_DEBUG_quad_sel_left_MASK | \
+ TCB_FETCH_GEN_WALKER_DEBUG_set_sel_left_MASK | \
+ TCB_FETCH_GEN_WALKER_DEBUG_right_eq_left_MASK | \
+ TCB_FETCH_GEN_WALKER_DEBUG_ff_fg_type512_MASK | \
+ TCB_FETCH_GEN_WALKER_DEBUG_busy_MASK | \
+ TCB_FETCH_GEN_WALKER_DEBUG_setquads_to_send_MASK)
+
+#define TCB_FETCH_GEN_WALKER_DEBUG(quad_sel_left, set_sel_left, right_eq_left, ff_fg_type512, busy, setquads_to_send) \
+ ((quad_sel_left << TCB_FETCH_GEN_WALKER_DEBUG_quad_sel_left_SHIFT) | \
+ (set_sel_left << TCB_FETCH_GEN_WALKER_DEBUG_set_sel_left_SHIFT) | \
+ (right_eq_left << TCB_FETCH_GEN_WALKER_DEBUG_right_eq_left_SHIFT) | \
+ (ff_fg_type512 << TCB_FETCH_GEN_WALKER_DEBUG_ff_fg_type512_SHIFT) | \
+ (busy << TCB_FETCH_GEN_WALKER_DEBUG_busy_SHIFT) | \
+ (setquads_to_send << TCB_FETCH_GEN_WALKER_DEBUG_setquads_to_send_SHIFT))
+
+#define TCB_FETCH_GEN_WALKER_DEBUG_GET_quad_sel_left(tcb_fetch_gen_walker_debug) \
+ ((tcb_fetch_gen_walker_debug & TCB_FETCH_GEN_WALKER_DEBUG_quad_sel_left_MASK) >> TCB_FETCH_GEN_WALKER_DEBUG_quad_sel_left_SHIFT)
+#define TCB_FETCH_GEN_WALKER_DEBUG_GET_set_sel_left(tcb_fetch_gen_walker_debug) \
+ ((tcb_fetch_gen_walker_debug & TCB_FETCH_GEN_WALKER_DEBUG_set_sel_left_MASK) >> TCB_FETCH_GEN_WALKER_DEBUG_set_sel_left_SHIFT)
+#define TCB_FETCH_GEN_WALKER_DEBUG_GET_right_eq_left(tcb_fetch_gen_walker_debug) \
+ ((tcb_fetch_gen_walker_debug & TCB_FETCH_GEN_WALKER_DEBUG_right_eq_left_MASK) >> TCB_FETCH_GEN_WALKER_DEBUG_right_eq_left_SHIFT)
+#define TCB_FETCH_GEN_WALKER_DEBUG_GET_ff_fg_type512(tcb_fetch_gen_walker_debug) \
+ ((tcb_fetch_gen_walker_debug & TCB_FETCH_GEN_WALKER_DEBUG_ff_fg_type512_MASK) >> TCB_FETCH_GEN_WALKER_DEBUG_ff_fg_type512_SHIFT)
+#define TCB_FETCH_GEN_WALKER_DEBUG_GET_busy(tcb_fetch_gen_walker_debug) \
+ ((tcb_fetch_gen_walker_debug & TCB_FETCH_GEN_WALKER_DEBUG_busy_MASK) >> TCB_FETCH_GEN_WALKER_DEBUG_busy_SHIFT)
+#define TCB_FETCH_GEN_WALKER_DEBUG_GET_setquads_to_send(tcb_fetch_gen_walker_debug) \
+ ((tcb_fetch_gen_walker_debug & TCB_FETCH_GEN_WALKER_DEBUG_setquads_to_send_MASK) >> TCB_FETCH_GEN_WALKER_DEBUG_setquads_to_send_SHIFT)
+
+#define TCB_FETCH_GEN_WALKER_DEBUG_SET_quad_sel_left(tcb_fetch_gen_walker_debug_reg, quad_sel_left) \
+ tcb_fetch_gen_walker_debug_reg = (tcb_fetch_gen_walker_debug_reg & ~TCB_FETCH_GEN_WALKER_DEBUG_quad_sel_left_MASK) | (quad_sel_left << TCB_FETCH_GEN_WALKER_DEBUG_quad_sel_left_SHIFT)
+#define TCB_FETCH_GEN_WALKER_DEBUG_SET_set_sel_left(tcb_fetch_gen_walker_debug_reg, set_sel_left) \
+ tcb_fetch_gen_walker_debug_reg = (tcb_fetch_gen_walker_debug_reg & ~TCB_FETCH_GEN_WALKER_DEBUG_set_sel_left_MASK) | (set_sel_left << TCB_FETCH_GEN_WALKER_DEBUG_set_sel_left_SHIFT)
+#define TCB_FETCH_GEN_WALKER_DEBUG_SET_right_eq_left(tcb_fetch_gen_walker_debug_reg, right_eq_left) \
+ tcb_fetch_gen_walker_debug_reg = (tcb_fetch_gen_walker_debug_reg & ~TCB_FETCH_GEN_WALKER_DEBUG_right_eq_left_MASK) | (right_eq_left << TCB_FETCH_GEN_WALKER_DEBUG_right_eq_left_SHIFT)
+#define TCB_FETCH_GEN_WALKER_DEBUG_SET_ff_fg_type512(tcb_fetch_gen_walker_debug_reg, ff_fg_type512) \
+ tcb_fetch_gen_walker_debug_reg = (tcb_fetch_gen_walker_debug_reg & ~TCB_FETCH_GEN_WALKER_DEBUG_ff_fg_type512_MASK) | (ff_fg_type512 << TCB_FETCH_GEN_WALKER_DEBUG_ff_fg_type512_SHIFT)
+#define TCB_FETCH_GEN_WALKER_DEBUG_SET_busy(tcb_fetch_gen_walker_debug_reg, busy) \
+ tcb_fetch_gen_walker_debug_reg = (tcb_fetch_gen_walker_debug_reg & ~TCB_FETCH_GEN_WALKER_DEBUG_busy_MASK) | (busy << TCB_FETCH_GEN_WALKER_DEBUG_busy_SHIFT)
+#define TCB_FETCH_GEN_WALKER_DEBUG_SET_setquads_to_send(tcb_fetch_gen_walker_debug_reg, setquads_to_send) \
+ tcb_fetch_gen_walker_debug_reg = (tcb_fetch_gen_walker_debug_reg & ~TCB_FETCH_GEN_WALKER_DEBUG_setquads_to_send_MASK) | (setquads_to_send << TCB_FETCH_GEN_WALKER_DEBUG_setquads_to_send_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcb_fetch_gen_walker_debug_t {
+ unsigned int : 4;
+ unsigned int quad_sel_left : TCB_FETCH_GEN_WALKER_DEBUG_quad_sel_left_SIZE;
+ unsigned int set_sel_left : TCB_FETCH_GEN_WALKER_DEBUG_set_sel_left_SIZE;
+ unsigned int : 3;
+ unsigned int right_eq_left : TCB_FETCH_GEN_WALKER_DEBUG_right_eq_left_SIZE;
+ unsigned int ff_fg_type512 : TCB_FETCH_GEN_WALKER_DEBUG_ff_fg_type512_SIZE;
+ unsigned int busy : TCB_FETCH_GEN_WALKER_DEBUG_busy_SIZE;
+ unsigned int setquads_to_send : TCB_FETCH_GEN_WALKER_DEBUG_setquads_to_send_SIZE;
+ unsigned int : 12;
+ } tcb_fetch_gen_walker_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcb_fetch_gen_walker_debug_t {
+ unsigned int : 12;
+ unsigned int setquads_to_send : TCB_FETCH_GEN_WALKER_DEBUG_setquads_to_send_SIZE;
+ unsigned int busy : TCB_FETCH_GEN_WALKER_DEBUG_busy_SIZE;
+ unsigned int ff_fg_type512 : TCB_FETCH_GEN_WALKER_DEBUG_ff_fg_type512_SIZE;
+ unsigned int right_eq_left : TCB_FETCH_GEN_WALKER_DEBUG_right_eq_left_SIZE;
+ unsigned int : 3;
+ unsigned int set_sel_left : TCB_FETCH_GEN_WALKER_DEBUG_set_sel_left_SIZE;
+ unsigned int quad_sel_left : TCB_FETCH_GEN_WALKER_DEBUG_quad_sel_left_SIZE;
+ unsigned int : 4;
+ } tcb_fetch_gen_walker_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcb_fetch_gen_walker_debug_t f;
+} tcb_fetch_gen_walker_debug_u;
+
+
+/*
+ * TCB_FETCH_GEN_PIPE0_DEBUG struct
+ */
+
+#define TCB_FETCH_GEN_PIPE0_DEBUG_tc0_arb_rts_SIZE 1
+#define TCB_FETCH_GEN_PIPE0_DEBUG_ga_out_rts_SIZE 1
+#define TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_format_SIZE 12
+#define TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_fmsopcode_SIZE 5
+#define TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_request_type_SIZE 2
+#define TCB_FETCH_GEN_PIPE0_DEBUG_busy_SIZE 1
+#define TCB_FETCH_GEN_PIPE0_DEBUG_fgo_busy_SIZE 1
+#define TCB_FETCH_GEN_PIPE0_DEBUG_ga_busy_SIZE 1
+#define TCB_FETCH_GEN_PIPE0_DEBUG_mc_sel_q_SIZE 2
+#define TCB_FETCH_GEN_PIPE0_DEBUG_valid_q_SIZE 1
+#define TCB_FETCH_GEN_PIPE0_DEBUG_arb_RTR_SIZE 1
+
+#define TCB_FETCH_GEN_PIPE0_DEBUG_tc0_arb_rts_SHIFT 0
+#define TCB_FETCH_GEN_PIPE0_DEBUG_ga_out_rts_SHIFT 2
+#define TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_format_SHIFT 4
+#define TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_fmsopcode_SHIFT 16
+#define TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_request_type_SHIFT 21
+#define TCB_FETCH_GEN_PIPE0_DEBUG_busy_SHIFT 23
+#define TCB_FETCH_GEN_PIPE0_DEBUG_fgo_busy_SHIFT 24
+#define TCB_FETCH_GEN_PIPE0_DEBUG_ga_busy_SHIFT 25
+#define TCB_FETCH_GEN_PIPE0_DEBUG_mc_sel_q_SHIFT 26
+#define TCB_FETCH_GEN_PIPE0_DEBUG_valid_q_SHIFT 28
+#define TCB_FETCH_GEN_PIPE0_DEBUG_arb_RTR_SHIFT 30
+
+#define TCB_FETCH_GEN_PIPE0_DEBUG_tc0_arb_rts_MASK 0x00000001
+#define TCB_FETCH_GEN_PIPE0_DEBUG_ga_out_rts_MASK 0x00000004
+#define TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_format_MASK 0x0000fff0
+#define TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_fmsopcode_MASK 0x001f0000
+#define TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_request_type_MASK 0x00600000
+#define TCB_FETCH_GEN_PIPE0_DEBUG_busy_MASK 0x00800000
+#define TCB_FETCH_GEN_PIPE0_DEBUG_fgo_busy_MASK 0x01000000
+#define TCB_FETCH_GEN_PIPE0_DEBUG_ga_busy_MASK 0x02000000
+#define TCB_FETCH_GEN_PIPE0_DEBUG_mc_sel_q_MASK 0x0c000000
+#define TCB_FETCH_GEN_PIPE0_DEBUG_valid_q_MASK 0x10000000
+#define TCB_FETCH_GEN_PIPE0_DEBUG_arb_RTR_MASK 0x40000000
+
+#define TCB_FETCH_GEN_PIPE0_DEBUG_MASK \
+ (TCB_FETCH_GEN_PIPE0_DEBUG_tc0_arb_rts_MASK | \
+ TCB_FETCH_GEN_PIPE0_DEBUG_ga_out_rts_MASK | \
+ TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_format_MASK | \
+ TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_fmsopcode_MASK | \
+ TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_request_type_MASK | \
+ TCB_FETCH_GEN_PIPE0_DEBUG_busy_MASK | \
+ TCB_FETCH_GEN_PIPE0_DEBUG_fgo_busy_MASK | \
+ TCB_FETCH_GEN_PIPE0_DEBUG_ga_busy_MASK | \
+ TCB_FETCH_GEN_PIPE0_DEBUG_mc_sel_q_MASK | \
+ TCB_FETCH_GEN_PIPE0_DEBUG_valid_q_MASK | \
+ TCB_FETCH_GEN_PIPE0_DEBUG_arb_RTR_MASK)
+
+#define TCB_FETCH_GEN_PIPE0_DEBUG(tc0_arb_rts, ga_out_rts, tc_arb_format, tc_arb_fmsopcode, tc_arb_request_type, busy, fgo_busy, ga_busy, mc_sel_q, valid_q, arb_rtr) \
+ ((tc0_arb_rts << TCB_FETCH_GEN_PIPE0_DEBUG_tc0_arb_rts_SHIFT) | \
+ (ga_out_rts << TCB_FETCH_GEN_PIPE0_DEBUG_ga_out_rts_SHIFT) | \
+ (tc_arb_format << TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_format_SHIFT) | \
+ (tc_arb_fmsopcode << TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_fmsopcode_SHIFT) | \
+ (tc_arb_request_type << TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_request_type_SHIFT) | \
+ (busy << TCB_FETCH_GEN_PIPE0_DEBUG_busy_SHIFT) | \
+ (fgo_busy << TCB_FETCH_GEN_PIPE0_DEBUG_fgo_busy_SHIFT) | \
+ (ga_busy << TCB_FETCH_GEN_PIPE0_DEBUG_ga_busy_SHIFT) | \
+ (mc_sel_q << TCB_FETCH_GEN_PIPE0_DEBUG_mc_sel_q_SHIFT) | \
+ (valid_q << TCB_FETCH_GEN_PIPE0_DEBUG_valid_q_SHIFT) | \
+ (arb_rtr << TCB_FETCH_GEN_PIPE0_DEBUG_arb_RTR_SHIFT))
+
+#define TCB_FETCH_GEN_PIPE0_DEBUG_GET_tc0_arb_rts(tcb_fetch_gen_pipe0_debug) \
+ ((tcb_fetch_gen_pipe0_debug & TCB_FETCH_GEN_PIPE0_DEBUG_tc0_arb_rts_MASK) >> TCB_FETCH_GEN_PIPE0_DEBUG_tc0_arb_rts_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_GET_ga_out_rts(tcb_fetch_gen_pipe0_debug) \
+ ((tcb_fetch_gen_pipe0_debug & TCB_FETCH_GEN_PIPE0_DEBUG_ga_out_rts_MASK) >> TCB_FETCH_GEN_PIPE0_DEBUG_ga_out_rts_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_GET_tc_arb_format(tcb_fetch_gen_pipe0_debug) \
+ ((tcb_fetch_gen_pipe0_debug & TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_format_MASK) >> TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_format_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_GET_tc_arb_fmsopcode(tcb_fetch_gen_pipe0_debug) \
+ ((tcb_fetch_gen_pipe0_debug & TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_fmsopcode_MASK) >> TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_fmsopcode_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_GET_tc_arb_request_type(tcb_fetch_gen_pipe0_debug) \
+ ((tcb_fetch_gen_pipe0_debug & TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_request_type_MASK) >> TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_request_type_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_GET_busy(tcb_fetch_gen_pipe0_debug) \
+ ((tcb_fetch_gen_pipe0_debug & TCB_FETCH_GEN_PIPE0_DEBUG_busy_MASK) >> TCB_FETCH_GEN_PIPE0_DEBUG_busy_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_GET_fgo_busy(tcb_fetch_gen_pipe0_debug) \
+ ((tcb_fetch_gen_pipe0_debug & TCB_FETCH_GEN_PIPE0_DEBUG_fgo_busy_MASK) >> TCB_FETCH_GEN_PIPE0_DEBUG_fgo_busy_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_GET_ga_busy(tcb_fetch_gen_pipe0_debug) \
+ ((tcb_fetch_gen_pipe0_debug & TCB_FETCH_GEN_PIPE0_DEBUG_ga_busy_MASK) >> TCB_FETCH_GEN_PIPE0_DEBUG_ga_busy_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_GET_mc_sel_q(tcb_fetch_gen_pipe0_debug) \
+ ((tcb_fetch_gen_pipe0_debug & TCB_FETCH_GEN_PIPE0_DEBUG_mc_sel_q_MASK) >> TCB_FETCH_GEN_PIPE0_DEBUG_mc_sel_q_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_GET_valid_q(tcb_fetch_gen_pipe0_debug) \
+ ((tcb_fetch_gen_pipe0_debug & TCB_FETCH_GEN_PIPE0_DEBUG_valid_q_MASK) >> TCB_FETCH_GEN_PIPE0_DEBUG_valid_q_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_GET_arb_RTR(tcb_fetch_gen_pipe0_debug) \
+ ((tcb_fetch_gen_pipe0_debug & TCB_FETCH_GEN_PIPE0_DEBUG_arb_RTR_MASK) >> TCB_FETCH_GEN_PIPE0_DEBUG_arb_RTR_SHIFT)
+
+#define TCB_FETCH_GEN_PIPE0_DEBUG_SET_tc0_arb_rts(tcb_fetch_gen_pipe0_debug_reg, tc0_arb_rts) \
+ tcb_fetch_gen_pipe0_debug_reg = (tcb_fetch_gen_pipe0_debug_reg & ~TCB_FETCH_GEN_PIPE0_DEBUG_tc0_arb_rts_MASK) | (tc0_arb_rts << TCB_FETCH_GEN_PIPE0_DEBUG_tc0_arb_rts_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_SET_ga_out_rts(tcb_fetch_gen_pipe0_debug_reg, ga_out_rts) \
+ tcb_fetch_gen_pipe0_debug_reg = (tcb_fetch_gen_pipe0_debug_reg & ~TCB_FETCH_GEN_PIPE0_DEBUG_ga_out_rts_MASK) | (ga_out_rts << TCB_FETCH_GEN_PIPE0_DEBUG_ga_out_rts_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_SET_tc_arb_format(tcb_fetch_gen_pipe0_debug_reg, tc_arb_format) \
+ tcb_fetch_gen_pipe0_debug_reg = (tcb_fetch_gen_pipe0_debug_reg & ~TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_format_MASK) | (tc_arb_format << TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_format_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_SET_tc_arb_fmsopcode(tcb_fetch_gen_pipe0_debug_reg, tc_arb_fmsopcode) \
+ tcb_fetch_gen_pipe0_debug_reg = (tcb_fetch_gen_pipe0_debug_reg & ~TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_fmsopcode_MASK) | (tc_arb_fmsopcode << TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_fmsopcode_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_SET_tc_arb_request_type(tcb_fetch_gen_pipe0_debug_reg, tc_arb_request_type) \
+ tcb_fetch_gen_pipe0_debug_reg = (tcb_fetch_gen_pipe0_debug_reg & ~TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_request_type_MASK) | (tc_arb_request_type << TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_request_type_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_SET_busy(tcb_fetch_gen_pipe0_debug_reg, busy) \
+ tcb_fetch_gen_pipe0_debug_reg = (tcb_fetch_gen_pipe0_debug_reg & ~TCB_FETCH_GEN_PIPE0_DEBUG_busy_MASK) | (busy << TCB_FETCH_GEN_PIPE0_DEBUG_busy_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_SET_fgo_busy(tcb_fetch_gen_pipe0_debug_reg, fgo_busy) \
+ tcb_fetch_gen_pipe0_debug_reg = (tcb_fetch_gen_pipe0_debug_reg & ~TCB_FETCH_GEN_PIPE0_DEBUG_fgo_busy_MASK) | (fgo_busy << TCB_FETCH_GEN_PIPE0_DEBUG_fgo_busy_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_SET_ga_busy(tcb_fetch_gen_pipe0_debug_reg, ga_busy) \
+ tcb_fetch_gen_pipe0_debug_reg = (tcb_fetch_gen_pipe0_debug_reg & ~TCB_FETCH_GEN_PIPE0_DEBUG_ga_busy_MASK) | (ga_busy << TCB_FETCH_GEN_PIPE0_DEBUG_ga_busy_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_SET_mc_sel_q(tcb_fetch_gen_pipe0_debug_reg, mc_sel_q) \
+ tcb_fetch_gen_pipe0_debug_reg = (tcb_fetch_gen_pipe0_debug_reg & ~TCB_FETCH_GEN_PIPE0_DEBUG_mc_sel_q_MASK) | (mc_sel_q << TCB_FETCH_GEN_PIPE0_DEBUG_mc_sel_q_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_SET_valid_q(tcb_fetch_gen_pipe0_debug_reg, valid_q) \
+ tcb_fetch_gen_pipe0_debug_reg = (tcb_fetch_gen_pipe0_debug_reg & ~TCB_FETCH_GEN_PIPE0_DEBUG_valid_q_MASK) | (valid_q << TCB_FETCH_GEN_PIPE0_DEBUG_valid_q_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_SET_arb_RTR(tcb_fetch_gen_pipe0_debug_reg, arb_rtr) \
+ tcb_fetch_gen_pipe0_debug_reg = (tcb_fetch_gen_pipe0_debug_reg & ~TCB_FETCH_GEN_PIPE0_DEBUG_arb_RTR_MASK) | (arb_rtr << TCB_FETCH_GEN_PIPE0_DEBUG_arb_RTR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcb_fetch_gen_pipe0_debug_t {
+ unsigned int tc0_arb_rts : TCB_FETCH_GEN_PIPE0_DEBUG_tc0_arb_rts_SIZE;
+ unsigned int : 1;
+ unsigned int ga_out_rts : TCB_FETCH_GEN_PIPE0_DEBUG_ga_out_rts_SIZE;
+ unsigned int : 1;
+ unsigned int tc_arb_format : TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_format_SIZE;
+ unsigned int tc_arb_fmsopcode : TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_fmsopcode_SIZE;
+ unsigned int tc_arb_request_type : TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_request_type_SIZE;
+ unsigned int busy : TCB_FETCH_GEN_PIPE0_DEBUG_busy_SIZE;
+ unsigned int fgo_busy : TCB_FETCH_GEN_PIPE0_DEBUG_fgo_busy_SIZE;
+ unsigned int ga_busy : TCB_FETCH_GEN_PIPE0_DEBUG_ga_busy_SIZE;
+ unsigned int mc_sel_q : TCB_FETCH_GEN_PIPE0_DEBUG_mc_sel_q_SIZE;
+ unsigned int valid_q : TCB_FETCH_GEN_PIPE0_DEBUG_valid_q_SIZE;
+ unsigned int : 1;
+ unsigned int arb_rtr : TCB_FETCH_GEN_PIPE0_DEBUG_arb_RTR_SIZE;
+ unsigned int : 1;
+ } tcb_fetch_gen_pipe0_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcb_fetch_gen_pipe0_debug_t {
+ unsigned int : 1;
+ unsigned int arb_rtr : TCB_FETCH_GEN_PIPE0_DEBUG_arb_RTR_SIZE;
+ unsigned int : 1;
+ unsigned int valid_q : TCB_FETCH_GEN_PIPE0_DEBUG_valid_q_SIZE;
+ unsigned int mc_sel_q : TCB_FETCH_GEN_PIPE0_DEBUG_mc_sel_q_SIZE;
+ unsigned int ga_busy : TCB_FETCH_GEN_PIPE0_DEBUG_ga_busy_SIZE;
+ unsigned int fgo_busy : TCB_FETCH_GEN_PIPE0_DEBUG_fgo_busy_SIZE;
+ unsigned int busy : TCB_FETCH_GEN_PIPE0_DEBUG_busy_SIZE;
+ unsigned int tc_arb_request_type : TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_request_type_SIZE;
+ unsigned int tc_arb_fmsopcode : TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_fmsopcode_SIZE;
+ unsigned int tc_arb_format : TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_format_SIZE;
+ unsigned int : 1;
+ unsigned int ga_out_rts : TCB_FETCH_GEN_PIPE0_DEBUG_ga_out_rts_SIZE;
+ unsigned int : 1;
+ unsigned int tc0_arb_rts : TCB_FETCH_GEN_PIPE0_DEBUG_tc0_arb_rts_SIZE;
+ } tcb_fetch_gen_pipe0_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcb_fetch_gen_pipe0_debug_t f;
+} tcb_fetch_gen_pipe0_debug_u;
+
+
+/*
+ * TCD_INPUT0_DEBUG struct
+ */
+
+#define TCD_INPUT0_DEBUG_empty_SIZE 1
+#define TCD_INPUT0_DEBUG_full_SIZE 1
+#define TCD_INPUT0_DEBUG_valid_q1_SIZE 1
+#define TCD_INPUT0_DEBUG_cnt_q1_SIZE 2
+#define TCD_INPUT0_DEBUG_last_send_q1_SIZE 1
+#define TCD_INPUT0_DEBUG_ip_send_SIZE 1
+#define TCD_INPUT0_DEBUG_ipbuf_dxt_send_SIZE 1
+#define TCD_INPUT0_DEBUG_ipbuf_busy_SIZE 1
+
+#define TCD_INPUT0_DEBUG_empty_SHIFT 16
+#define TCD_INPUT0_DEBUG_full_SHIFT 17
+#define TCD_INPUT0_DEBUG_valid_q1_SHIFT 20
+#define TCD_INPUT0_DEBUG_cnt_q1_SHIFT 21
+#define TCD_INPUT0_DEBUG_last_send_q1_SHIFT 23
+#define TCD_INPUT0_DEBUG_ip_send_SHIFT 24
+#define TCD_INPUT0_DEBUG_ipbuf_dxt_send_SHIFT 25
+#define TCD_INPUT0_DEBUG_ipbuf_busy_SHIFT 26
+
+#define TCD_INPUT0_DEBUG_empty_MASK 0x00010000
+#define TCD_INPUT0_DEBUG_full_MASK 0x00020000
+#define TCD_INPUT0_DEBUG_valid_q1_MASK 0x00100000
+#define TCD_INPUT0_DEBUG_cnt_q1_MASK 0x00600000
+#define TCD_INPUT0_DEBUG_last_send_q1_MASK 0x00800000
+#define TCD_INPUT0_DEBUG_ip_send_MASK 0x01000000
+#define TCD_INPUT0_DEBUG_ipbuf_dxt_send_MASK 0x02000000
+#define TCD_INPUT0_DEBUG_ipbuf_busy_MASK 0x04000000
+
+#define TCD_INPUT0_DEBUG_MASK \
+ (TCD_INPUT0_DEBUG_empty_MASK | \
+ TCD_INPUT0_DEBUG_full_MASK | \
+ TCD_INPUT0_DEBUG_valid_q1_MASK | \
+ TCD_INPUT0_DEBUG_cnt_q1_MASK | \
+ TCD_INPUT0_DEBUG_last_send_q1_MASK | \
+ TCD_INPUT0_DEBUG_ip_send_MASK | \
+ TCD_INPUT0_DEBUG_ipbuf_dxt_send_MASK | \
+ TCD_INPUT0_DEBUG_ipbuf_busy_MASK)
+
+#define TCD_INPUT0_DEBUG(empty, full, valid_q1, cnt_q1, last_send_q1, ip_send, ipbuf_dxt_send, ipbuf_busy) \
+ ((empty << TCD_INPUT0_DEBUG_empty_SHIFT) | \
+ (full << TCD_INPUT0_DEBUG_full_SHIFT) | \
+ (valid_q1 << TCD_INPUT0_DEBUG_valid_q1_SHIFT) | \
+ (cnt_q1 << TCD_INPUT0_DEBUG_cnt_q1_SHIFT) | \
+ (last_send_q1 << TCD_INPUT0_DEBUG_last_send_q1_SHIFT) | \
+ (ip_send << TCD_INPUT0_DEBUG_ip_send_SHIFT) | \
+ (ipbuf_dxt_send << TCD_INPUT0_DEBUG_ipbuf_dxt_send_SHIFT) | \
+ (ipbuf_busy << TCD_INPUT0_DEBUG_ipbuf_busy_SHIFT))
+
+#define TCD_INPUT0_DEBUG_GET_empty(tcd_input0_debug) \
+ ((tcd_input0_debug & TCD_INPUT0_DEBUG_empty_MASK) >> TCD_INPUT0_DEBUG_empty_SHIFT)
+#define TCD_INPUT0_DEBUG_GET_full(tcd_input0_debug) \
+ ((tcd_input0_debug & TCD_INPUT0_DEBUG_full_MASK) >> TCD_INPUT0_DEBUG_full_SHIFT)
+#define TCD_INPUT0_DEBUG_GET_valid_q1(tcd_input0_debug) \
+ ((tcd_input0_debug & TCD_INPUT0_DEBUG_valid_q1_MASK) >> TCD_INPUT0_DEBUG_valid_q1_SHIFT)
+#define TCD_INPUT0_DEBUG_GET_cnt_q1(tcd_input0_debug) \
+ ((tcd_input0_debug & TCD_INPUT0_DEBUG_cnt_q1_MASK) >> TCD_INPUT0_DEBUG_cnt_q1_SHIFT)
+#define TCD_INPUT0_DEBUG_GET_last_send_q1(tcd_input0_debug) \
+ ((tcd_input0_debug & TCD_INPUT0_DEBUG_last_send_q1_MASK) >> TCD_INPUT0_DEBUG_last_send_q1_SHIFT)
+#define TCD_INPUT0_DEBUG_GET_ip_send(tcd_input0_debug) \
+ ((tcd_input0_debug & TCD_INPUT0_DEBUG_ip_send_MASK) >> TCD_INPUT0_DEBUG_ip_send_SHIFT)
+#define TCD_INPUT0_DEBUG_GET_ipbuf_dxt_send(tcd_input0_debug) \
+ ((tcd_input0_debug & TCD_INPUT0_DEBUG_ipbuf_dxt_send_MASK) >> TCD_INPUT0_DEBUG_ipbuf_dxt_send_SHIFT)
+#define TCD_INPUT0_DEBUG_GET_ipbuf_busy(tcd_input0_debug) \
+ ((tcd_input0_debug & TCD_INPUT0_DEBUG_ipbuf_busy_MASK) >> TCD_INPUT0_DEBUG_ipbuf_busy_SHIFT)
+
+#define TCD_INPUT0_DEBUG_SET_empty(tcd_input0_debug_reg, empty) \
+ tcd_input0_debug_reg = (tcd_input0_debug_reg & ~TCD_INPUT0_DEBUG_empty_MASK) | (empty << TCD_INPUT0_DEBUG_empty_SHIFT)
+#define TCD_INPUT0_DEBUG_SET_full(tcd_input0_debug_reg, full) \
+ tcd_input0_debug_reg = (tcd_input0_debug_reg & ~TCD_INPUT0_DEBUG_full_MASK) | (full << TCD_INPUT0_DEBUG_full_SHIFT)
+#define TCD_INPUT0_DEBUG_SET_valid_q1(tcd_input0_debug_reg, valid_q1) \
+ tcd_input0_debug_reg = (tcd_input0_debug_reg & ~TCD_INPUT0_DEBUG_valid_q1_MASK) | (valid_q1 << TCD_INPUT0_DEBUG_valid_q1_SHIFT)
+#define TCD_INPUT0_DEBUG_SET_cnt_q1(tcd_input0_debug_reg, cnt_q1) \
+ tcd_input0_debug_reg = (tcd_input0_debug_reg & ~TCD_INPUT0_DEBUG_cnt_q1_MASK) | (cnt_q1 << TCD_INPUT0_DEBUG_cnt_q1_SHIFT)
+#define TCD_INPUT0_DEBUG_SET_last_send_q1(tcd_input0_debug_reg, last_send_q1) \
+ tcd_input0_debug_reg = (tcd_input0_debug_reg & ~TCD_INPUT0_DEBUG_last_send_q1_MASK) | (last_send_q1 << TCD_INPUT0_DEBUG_last_send_q1_SHIFT)
+#define TCD_INPUT0_DEBUG_SET_ip_send(tcd_input0_debug_reg, ip_send) \
+ tcd_input0_debug_reg = (tcd_input0_debug_reg & ~TCD_INPUT0_DEBUG_ip_send_MASK) | (ip_send << TCD_INPUT0_DEBUG_ip_send_SHIFT)
+#define TCD_INPUT0_DEBUG_SET_ipbuf_dxt_send(tcd_input0_debug_reg, ipbuf_dxt_send) \
+ tcd_input0_debug_reg = (tcd_input0_debug_reg & ~TCD_INPUT0_DEBUG_ipbuf_dxt_send_MASK) | (ipbuf_dxt_send << TCD_INPUT0_DEBUG_ipbuf_dxt_send_SHIFT)
+#define TCD_INPUT0_DEBUG_SET_ipbuf_busy(tcd_input0_debug_reg, ipbuf_busy) \
+ tcd_input0_debug_reg = (tcd_input0_debug_reg & ~TCD_INPUT0_DEBUG_ipbuf_busy_MASK) | (ipbuf_busy << TCD_INPUT0_DEBUG_ipbuf_busy_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcd_input0_debug_t {
+ unsigned int : 16;
+ unsigned int empty : TCD_INPUT0_DEBUG_empty_SIZE;
+ unsigned int full : TCD_INPUT0_DEBUG_full_SIZE;
+ unsigned int : 2;
+ unsigned int valid_q1 : TCD_INPUT0_DEBUG_valid_q1_SIZE;
+ unsigned int cnt_q1 : TCD_INPUT0_DEBUG_cnt_q1_SIZE;
+ unsigned int last_send_q1 : TCD_INPUT0_DEBUG_last_send_q1_SIZE;
+ unsigned int ip_send : TCD_INPUT0_DEBUG_ip_send_SIZE;
+ unsigned int ipbuf_dxt_send : TCD_INPUT0_DEBUG_ipbuf_dxt_send_SIZE;
+ unsigned int ipbuf_busy : TCD_INPUT0_DEBUG_ipbuf_busy_SIZE;
+ unsigned int : 5;
+ } tcd_input0_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcd_input0_debug_t {
+ unsigned int : 5;
+ unsigned int ipbuf_busy : TCD_INPUT0_DEBUG_ipbuf_busy_SIZE;
+ unsigned int ipbuf_dxt_send : TCD_INPUT0_DEBUG_ipbuf_dxt_send_SIZE;
+ unsigned int ip_send : TCD_INPUT0_DEBUG_ip_send_SIZE;
+ unsigned int last_send_q1 : TCD_INPUT0_DEBUG_last_send_q1_SIZE;
+ unsigned int cnt_q1 : TCD_INPUT0_DEBUG_cnt_q1_SIZE;
+ unsigned int valid_q1 : TCD_INPUT0_DEBUG_valid_q1_SIZE;
+ unsigned int : 2;
+ unsigned int full : TCD_INPUT0_DEBUG_full_SIZE;
+ unsigned int empty : TCD_INPUT0_DEBUG_empty_SIZE;
+ unsigned int : 16;
+ } tcd_input0_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcd_input0_debug_t f;
+} tcd_input0_debug_u;
+
+
+/*
+ * TCD_DEGAMMA_DEBUG struct
+ */
+
+#define TCD_DEGAMMA_DEBUG_dgmm_ftfconv_dgmmen_SIZE 2
+#define TCD_DEGAMMA_DEBUG_dgmm_ctrl_dgmm8_SIZE 1
+#define TCD_DEGAMMA_DEBUG_dgmm_ctrl_last_send_SIZE 1
+#define TCD_DEGAMMA_DEBUG_dgmm_ctrl_send_SIZE 1
+#define TCD_DEGAMMA_DEBUG_dgmm_stall_SIZE 1
+#define TCD_DEGAMMA_DEBUG_dgmm_pstate_SIZE 1
+
+#define TCD_DEGAMMA_DEBUG_dgmm_ftfconv_dgmmen_SHIFT 0
+#define TCD_DEGAMMA_DEBUG_dgmm_ctrl_dgmm8_SHIFT 2
+#define TCD_DEGAMMA_DEBUG_dgmm_ctrl_last_send_SHIFT 3
+#define TCD_DEGAMMA_DEBUG_dgmm_ctrl_send_SHIFT 4
+#define TCD_DEGAMMA_DEBUG_dgmm_stall_SHIFT 5
+#define TCD_DEGAMMA_DEBUG_dgmm_pstate_SHIFT 6
+
+#define TCD_DEGAMMA_DEBUG_dgmm_ftfconv_dgmmen_MASK 0x00000003
+#define TCD_DEGAMMA_DEBUG_dgmm_ctrl_dgmm8_MASK 0x00000004
+#define TCD_DEGAMMA_DEBUG_dgmm_ctrl_last_send_MASK 0x00000008
+#define TCD_DEGAMMA_DEBUG_dgmm_ctrl_send_MASK 0x00000010
+#define TCD_DEGAMMA_DEBUG_dgmm_stall_MASK 0x00000020
+#define TCD_DEGAMMA_DEBUG_dgmm_pstate_MASK 0x00000040
+
+#define TCD_DEGAMMA_DEBUG_MASK \
+ (TCD_DEGAMMA_DEBUG_dgmm_ftfconv_dgmmen_MASK | \
+ TCD_DEGAMMA_DEBUG_dgmm_ctrl_dgmm8_MASK | \
+ TCD_DEGAMMA_DEBUG_dgmm_ctrl_last_send_MASK | \
+ TCD_DEGAMMA_DEBUG_dgmm_ctrl_send_MASK | \
+ TCD_DEGAMMA_DEBUG_dgmm_stall_MASK | \
+ TCD_DEGAMMA_DEBUG_dgmm_pstate_MASK)
+
+#define TCD_DEGAMMA_DEBUG(dgmm_ftfconv_dgmmen, dgmm_ctrl_dgmm8, dgmm_ctrl_last_send, dgmm_ctrl_send, dgmm_stall, dgmm_pstate) \
+ ((dgmm_ftfconv_dgmmen << TCD_DEGAMMA_DEBUG_dgmm_ftfconv_dgmmen_SHIFT) | \
+ (dgmm_ctrl_dgmm8 << TCD_DEGAMMA_DEBUG_dgmm_ctrl_dgmm8_SHIFT) | \
+ (dgmm_ctrl_last_send << TCD_DEGAMMA_DEBUG_dgmm_ctrl_last_send_SHIFT) | \
+ (dgmm_ctrl_send << TCD_DEGAMMA_DEBUG_dgmm_ctrl_send_SHIFT) | \
+ (dgmm_stall << TCD_DEGAMMA_DEBUG_dgmm_stall_SHIFT) | \
+ (dgmm_pstate << TCD_DEGAMMA_DEBUG_dgmm_pstate_SHIFT))
+
+#define TCD_DEGAMMA_DEBUG_GET_dgmm_ftfconv_dgmmen(tcd_degamma_debug) \
+ ((tcd_degamma_debug & TCD_DEGAMMA_DEBUG_dgmm_ftfconv_dgmmen_MASK) >> TCD_DEGAMMA_DEBUG_dgmm_ftfconv_dgmmen_SHIFT)
+#define TCD_DEGAMMA_DEBUG_GET_dgmm_ctrl_dgmm8(tcd_degamma_debug) \
+ ((tcd_degamma_debug & TCD_DEGAMMA_DEBUG_dgmm_ctrl_dgmm8_MASK) >> TCD_DEGAMMA_DEBUG_dgmm_ctrl_dgmm8_SHIFT)
+#define TCD_DEGAMMA_DEBUG_GET_dgmm_ctrl_last_send(tcd_degamma_debug) \
+ ((tcd_degamma_debug & TCD_DEGAMMA_DEBUG_dgmm_ctrl_last_send_MASK) >> TCD_DEGAMMA_DEBUG_dgmm_ctrl_last_send_SHIFT)
+#define TCD_DEGAMMA_DEBUG_GET_dgmm_ctrl_send(tcd_degamma_debug) \
+ ((tcd_degamma_debug & TCD_DEGAMMA_DEBUG_dgmm_ctrl_send_MASK) >> TCD_DEGAMMA_DEBUG_dgmm_ctrl_send_SHIFT)
+#define TCD_DEGAMMA_DEBUG_GET_dgmm_stall(tcd_degamma_debug) \
+ ((tcd_degamma_debug & TCD_DEGAMMA_DEBUG_dgmm_stall_MASK) >> TCD_DEGAMMA_DEBUG_dgmm_stall_SHIFT)
+#define TCD_DEGAMMA_DEBUG_GET_dgmm_pstate(tcd_degamma_debug) \
+ ((tcd_degamma_debug & TCD_DEGAMMA_DEBUG_dgmm_pstate_MASK) >> TCD_DEGAMMA_DEBUG_dgmm_pstate_SHIFT)
+
+#define TCD_DEGAMMA_DEBUG_SET_dgmm_ftfconv_dgmmen(tcd_degamma_debug_reg, dgmm_ftfconv_dgmmen) \
+ tcd_degamma_debug_reg = (tcd_degamma_debug_reg & ~TCD_DEGAMMA_DEBUG_dgmm_ftfconv_dgmmen_MASK) | (dgmm_ftfconv_dgmmen << TCD_DEGAMMA_DEBUG_dgmm_ftfconv_dgmmen_SHIFT)
+#define TCD_DEGAMMA_DEBUG_SET_dgmm_ctrl_dgmm8(tcd_degamma_debug_reg, dgmm_ctrl_dgmm8) \
+ tcd_degamma_debug_reg = (tcd_degamma_debug_reg & ~TCD_DEGAMMA_DEBUG_dgmm_ctrl_dgmm8_MASK) | (dgmm_ctrl_dgmm8 << TCD_DEGAMMA_DEBUG_dgmm_ctrl_dgmm8_SHIFT)
+#define TCD_DEGAMMA_DEBUG_SET_dgmm_ctrl_last_send(tcd_degamma_debug_reg, dgmm_ctrl_last_send) \
+ tcd_degamma_debug_reg = (tcd_degamma_debug_reg & ~TCD_DEGAMMA_DEBUG_dgmm_ctrl_last_send_MASK) | (dgmm_ctrl_last_send << TCD_DEGAMMA_DEBUG_dgmm_ctrl_last_send_SHIFT)
+#define TCD_DEGAMMA_DEBUG_SET_dgmm_ctrl_send(tcd_degamma_debug_reg, dgmm_ctrl_send) \
+ tcd_degamma_debug_reg = (tcd_degamma_debug_reg & ~TCD_DEGAMMA_DEBUG_dgmm_ctrl_send_MASK) | (dgmm_ctrl_send << TCD_DEGAMMA_DEBUG_dgmm_ctrl_send_SHIFT)
+#define TCD_DEGAMMA_DEBUG_SET_dgmm_stall(tcd_degamma_debug_reg, dgmm_stall) \
+ tcd_degamma_debug_reg = (tcd_degamma_debug_reg & ~TCD_DEGAMMA_DEBUG_dgmm_stall_MASK) | (dgmm_stall << TCD_DEGAMMA_DEBUG_dgmm_stall_SHIFT)
+#define TCD_DEGAMMA_DEBUG_SET_dgmm_pstate(tcd_degamma_debug_reg, dgmm_pstate) \
+ tcd_degamma_debug_reg = (tcd_degamma_debug_reg & ~TCD_DEGAMMA_DEBUG_dgmm_pstate_MASK) | (dgmm_pstate << TCD_DEGAMMA_DEBUG_dgmm_pstate_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcd_degamma_debug_t {
+ unsigned int dgmm_ftfconv_dgmmen : TCD_DEGAMMA_DEBUG_dgmm_ftfconv_dgmmen_SIZE;
+ unsigned int dgmm_ctrl_dgmm8 : TCD_DEGAMMA_DEBUG_dgmm_ctrl_dgmm8_SIZE;
+ unsigned int dgmm_ctrl_last_send : TCD_DEGAMMA_DEBUG_dgmm_ctrl_last_send_SIZE;
+ unsigned int dgmm_ctrl_send : TCD_DEGAMMA_DEBUG_dgmm_ctrl_send_SIZE;
+ unsigned int dgmm_stall : TCD_DEGAMMA_DEBUG_dgmm_stall_SIZE;
+ unsigned int dgmm_pstate : TCD_DEGAMMA_DEBUG_dgmm_pstate_SIZE;
+ unsigned int : 25;
+ } tcd_degamma_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcd_degamma_debug_t {
+ unsigned int : 25;
+ unsigned int dgmm_pstate : TCD_DEGAMMA_DEBUG_dgmm_pstate_SIZE;
+ unsigned int dgmm_stall : TCD_DEGAMMA_DEBUG_dgmm_stall_SIZE;
+ unsigned int dgmm_ctrl_send : TCD_DEGAMMA_DEBUG_dgmm_ctrl_send_SIZE;
+ unsigned int dgmm_ctrl_last_send : TCD_DEGAMMA_DEBUG_dgmm_ctrl_last_send_SIZE;
+ unsigned int dgmm_ctrl_dgmm8 : TCD_DEGAMMA_DEBUG_dgmm_ctrl_dgmm8_SIZE;
+ unsigned int dgmm_ftfconv_dgmmen : TCD_DEGAMMA_DEBUG_dgmm_ftfconv_dgmmen_SIZE;
+ } tcd_degamma_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcd_degamma_debug_t f;
+} tcd_degamma_debug_u;
+
+
+/*
+ * TCD_DXTMUX_SCTARB_DEBUG struct
+ */
+
+#define TCD_DXTMUX_SCTARB_DEBUG_pstate_SIZE 1
+#define TCD_DXTMUX_SCTARB_DEBUG_sctrmx_rtr_SIZE 1
+#define TCD_DXTMUX_SCTARB_DEBUG_dxtc_rtr_SIZE 1
+#define TCD_DXTMUX_SCTARB_DEBUG_sctrarb_multcyl_send_SIZE 1
+#define TCD_DXTMUX_SCTARB_DEBUG_sctrmx0_sctrarb_rts_SIZE 1
+#define TCD_DXTMUX_SCTARB_DEBUG_dxtc_sctrarb_send_SIZE 1
+#define TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_last_send_SIZE 1
+#define TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_send_SIZE 1
+#define TCD_DXTMUX_SCTARB_DEBUG_dcmp_mux_send_SIZE 1
+
+#define TCD_DXTMUX_SCTARB_DEBUG_pstate_SHIFT 9
+#define TCD_DXTMUX_SCTARB_DEBUG_sctrmx_rtr_SHIFT 10
+#define TCD_DXTMUX_SCTARB_DEBUG_dxtc_rtr_SHIFT 11
+#define TCD_DXTMUX_SCTARB_DEBUG_sctrarb_multcyl_send_SHIFT 15
+#define TCD_DXTMUX_SCTARB_DEBUG_sctrmx0_sctrarb_rts_SHIFT 16
+#define TCD_DXTMUX_SCTARB_DEBUG_dxtc_sctrarb_send_SHIFT 20
+#define TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_last_send_SHIFT 27
+#define TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_send_SHIFT 28
+#define TCD_DXTMUX_SCTARB_DEBUG_dcmp_mux_send_SHIFT 29
+
+#define TCD_DXTMUX_SCTARB_DEBUG_pstate_MASK 0x00000200
+#define TCD_DXTMUX_SCTARB_DEBUG_sctrmx_rtr_MASK 0x00000400
+#define TCD_DXTMUX_SCTARB_DEBUG_dxtc_rtr_MASK 0x00000800
+#define TCD_DXTMUX_SCTARB_DEBUG_sctrarb_multcyl_send_MASK 0x00008000
+#define TCD_DXTMUX_SCTARB_DEBUG_sctrmx0_sctrarb_rts_MASK 0x00010000
+#define TCD_DXTMUX_SCTARB_DEBUG_dxtc_sctrarb_send_MASK 0x00100000
+#define TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_last_send_MASK 0x08000000
+#define TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_send_MASK 0x10000000
+#define TCD_DXTMUX_SCTARB_DEBUG_dcmp_mux_send_MASK 0x20000000
+
+#define TCD_DXTMUX_SCTARB_DEBUG_MASK \
+ (TCD_DXTMUX_SCTARB_DEBUG_pstate_MASK | \
+ TCD_DXTMUX_SCTARB_DEBUG_sctrmx_rtr_MASK | \
+ TCD_DXTMUX_SCTARB_DEBUG_dxtc_rtr_MASK | \
+ TCD_DXTMUX_SCTARB_DEBUG_sctrarb_multcyl_send_MASK | \
+ TCD_DXTMUX_SCTARB_DEBUG_sctrmx0_sctrarb_rts_MASK | \
+ TCD_DXTMUX_SCTARB_DEBUG_dxtc_sctrarb_send_MASK | \
+ TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_last_send_MASK | \
+ TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_send_MASK | \
+ TCD_DXTMUX_SCTARB_DEBUG_dcmp_mux_send_MASK)
+
+#define TCD_DXTMUX_SCTARB_DEBUG(pstate, sctrmx_rtr, dxtc_rtr, sctrarb_multcyl_send, sctrmx0_sctrarb_rts, dxtc_sctrarb_send, dxtc_dgmmpd_last_send, dxtc_dgmmpd_send, dcmp_mux_send) \
+ ((pstate << TCD_DXTMUX_SCTARB_DEBUG_pstate_SHIFT) | \
+ (sctrmx_rtr << TCD_DXTMUX_SCTARB_DEBUG_sctrmx_rtr_SHIFT) | \
+ (dxtc_rtr << TCD_DXTMUX_SCTARB_DEBUG_dxtc_rtr_SHIFT) | \
+ (sctrarb_multcyl_send << TCD_DXTMUX_SCTARB_DEBUG_sctrarb_multcyl_send_SHIFT) | \
+ (sctrmx0_sctrarb_rts << TCD_DXTMUX_SCTARB_DEBUG_sctrmx0_sctrarb_rts_SHIFT) | \
+ (dxtc_sctrarb_send << TCD_DXTMUX_SCTARB_DEBUG_dxtc_sctrarb_send_SHIFT) | \
+ (dxtc_dgmmpd_last_send << TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_last_send_SHIFT) | \
+ (dxtc_dgmmpd_send << TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_send_SHIFT) | \
+ (dcmp_mux_send << TCD_DXTMUX_SCTARB_DEBUG_dcmp_mux_send_SHIFT))
+
+#define TCD_DXTMUX_SCTARB_DEBUG_GET_pstate(tcd_dxtmux_sctarb_debug) \
+ ((tcd_dxtmux_sctarb_debug & TCD_DXTMUX_SCTARB_DEBUG_pstate_MASK) >> TCD_DXTMUX_SCTARB_DEBUG_pstate_SHIFT)
+#define TCD_DXTMUX_SCTARB_DEBUG_GET_sctrmx_rtr(tcd_dxtmux_sctarb_debug) \
+ ((tcd_dxtmux_sctarb_debug & TCD_DXTMUX_SCTARB_DEBUG_sctrmx_rtr_MASK) >> TCD_DXTMUX_SCTARB_DEBUG_sctrmx_rtr_SHIFT)
+#define TCD_DXTMUX_SCTARB_DEBUG_GET_dxtc_rtr(tcd_dxtmux_sctarb_debug) \
+ ((tcd_dxtmux_sctarb_debug & TCD_DXTMUX_SCTARB_DEBUG_dxtc_rtr_MASK) >> TCD_DXTMUX_SCTARB_DEBUG_dxtc_rtr_SHIFT)
+#define TCD_DXTMUX_SCTARB_DEBUG_GET_sctrarb_multcyl_send(tcd_dxtmux_sctarb_debug) \
+ ((tcd_dxtmux_sctarb_debug & TCD_DXTMUX_SCTARB_DEBUG_sctrarb_multcyl_send_MASK) >> TCD_DXTMUX_SCTARB_DEBUG_sctrarb_multcyl_send_SHIFT)
+#define TCD_DXTMUX_SCTARB_DEBUG_GET_sctrmx0_sctrarb_rts(tcd_dxtmux_sctarb_debug) \
+ ((tcd_dxtmux_sctarb_debug & TCD_DXTMUX_SCTARB_DEBUG_sctrmx0_sctrarb_rts_MASK) >> TCD_DXTMUX_SCTARB_DEBUG_sctrmx0_sctrarb_rts_SHIFT)
+#define TCD_DXTMUX_SCTARB_DEBUG_GET_dxtc_sctrarb_send(tcd_dxtmux_sctarb_debug) \
+ ((tcd_dxtmux_sctarb_debug & TCD_DXTMUX_SCTARB_DEBUG_dxtc_sctrarb_send_MASK) >> TCD_DXTMUX_SCTARB_DEBUG_dxtc_sctrarb_send_SHIFT)
+#define TCD_DXTMUX_SCTARB_DEBUG_GET_dxtc_dgmmpd_last_send(tcd_dxtmux_sctarb_debug) \
+ ((tcd_dxtmux_sctarb_debug & TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_last_send_MASK) >> TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_last_send_SHIFT)
+#define TCD_DXTMUX_SCTARB_DEBUG_GET_dxtc_dgmmpd_send(tcd_dxtmux_sctarb_debug) \
+ ((tcd_dxtmux_sctarb_debug & TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_send_MASK) >> TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_send_SHIFT)
+#define TCD_DXTMUX_SCTARB_DEBUG_GET_dcmp_mux_send(tcd_dxtmux_sctarb_debug) \
+ ((tcd_dxtmux_sctarb_debug & TCD_DXTMUX_SCTARB_DEBUG_dcmp_mux_send_MASK) >> TCD_DXTMUX_SCTARB_DEBUG_dcmp_mux_send_SHIFT)
+
+#define TCD_DXTMUX_SCTARB_DEBUG_SET_pstate(tcd_dxtmux_sctarb_debug_reg, pstate) \
+ tcd_dxtmux_sctarb_debug_reg = (tcd_dxtmux_sctarb_debug_reg & ~TCD_DXTMUX_SCTARB_DEBUG_pstate_MASK) | (pstate << TCD_DXTMUX_SCTARB_DEBUG_pstate_SHIFT)
+#define TCD_DXTMUX_SCTARB_DEBUG_SET_sctrmx_rtr(tcd_dxtmux_sctarb_debug_reg, sctrmx_rtr) \
+ tcd_dxtmux_sctarb_debug_reg = (tcd_dxtmux_sctarb_debug_reg & ~TCD_DXTMUX_SCTARB_DEBUG_sctrmx_rtr_MASK) | (sctrmx_rtr << TCD_DXTMUX_SCTARB_DEBUG_sctrmx_rtr_SHIFT)
+#define TCD_DXTMUX_SCTARB_DEBUG_SET_dxtc_rtr(tcd_dxtmux_sctarb_debug_reg, dxtc_rtr) \
+ tcd_dxtmux_sctarb_debug_reg = (tcd_dxtmux_sctarb_debug_reg & ~TCD_DXTMUX_SCTARB_DEBUG_dxtc_rtr_MASK) | (dxtc_rtr << TCD_DXTMUX_SCTARB_DEBUG_dxtc_rtr_SHIFT)
+#define TCD_DXTMUX_SCTARB_DEBUG_SET_sctrarb_multcyl_send(tcd_dxtmux_sctarb_debug_reg, sctrarb_multcyl_send) \
+ tcd_dxtmux_sctarb_debug_reg = (tcd_dxtmux_sctarb_debug_reg & ~TCD_DXTMUX_SCTARB_DEBUG_sctrarb_multcyl_send_MASK) | (sctrarb_multcyl_send << TCD_DXTMUX_SCTARB_DEBUG_sctrarb_multcyl_send_SHIFT)
+#define TCD_DXTMUX_SCTARB_DEBUG_SET_sctrmx0_sctrarb_rts(tcd_dxtmux_sctarb_debug_reg, sctrmx0_sctrarb_rts) \
+ tcd_dxtmux_sctarb_debug_reg = (tcd_dxtmux_sctarb_debug_reg & ~TCD_DXTMUX_SCTARB_DEBUG_sctrmx0_sctrarb_rts_MASK) | (sctrmx0_sctrarb_rts << TCD_DXTMUX_SCTARB_DEBUG_sctrmx0_sctrarb_rts_SHIFT)
+#define TCD_DXTMUX_SCTARB_DEBUG_SET_dxtc_sctrarb_send(tcd_dxtmux_sctarb_debug_reg, dxtc_sctrarb_send) \
+ tcd_dxtmux_sctarb_debug_reg = (tcd_dxtmux_sctarb_debug_reg & ~TCD_DXTMUX_SCTARB_DEBUG_dxtc_sctrarb_send_MASK) | (dxtc_sctrarb_send << TCD_DXTMUX_SCTARB_DEBUG_dxtc_sctrarb_send_SHIFT)
+#define TCD_DXTMUX_SCTARB_DEBUG_SET_dxtc_dgmmpd_last_send(tcd_dxtmux_sctarb_debug_reg, dxtc_dgmmpd_last_send) \
+ tcd_dxtmux_sctarb_debug_reg = (tcd_dxtmux_sctarb_debug_reg & ~TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_last_send_MASK) | (dxtc_dgmmpd_last_send << TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_last_send_SHIFT)
+#define TCD_DXTMUX_SCTARB_DEBUG_SET_dxtc_dgmmpd_send(tcd_dxtmux_sctarb_debug_reg, dxtc_dgmmpd_send) \
+ tcd_dxtmux_sctarb_debug_reg = (tcd_dxtmux_sctarb_debug_reg & ~TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_send_MASK) | (dxtc_dgmmpd_send << TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_send_SHIFT)
+#define TCD_DXTMUX_SCTARB_DEBUG_SET_dcmp_mux_send(tcd_dxtmux_sctarb_debug_reg, dcmp_mux_send) \
+ tcd_dxtmux_sctarb_debug_reg = (tcd_dxtmux_sctarb_debug_reg & ~TCD_DXTMUX_SCTARB_DEBUG_dcmp_mux_send_MASK) | (dcmp_mux_send << TCD_DXTMUX_SCTARB_DEBUG_dcmp_mux_send_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcd_dxtmux_sctarb_debug_t {
+ unsigned int : 9;
+ unsigned int pstate : TCD_DXTMUX_SCTARB_DEBUG_pstate_SIZE;
+ unsigned int sctrmx_rtr : TCD_DXTMUX_SCTARB_DEBUG_sctrmx_rtr_SIZE;
+ unsigned int dxtc_rtr : TCD_DXTMUX_SCTARB_DEBUG_dxtc_rtr_SIZE;
+ unsigned int : 3;
+ unsigned int sctrarb_multcyl_send : TCD_DXTMUX_SCTARB_DEBUG_sctrarb_multcyl_send_SIZE;
+ unsigned int sctrmx0_sctrarb_rts : TCD_DXTMUX_SCTARB_DEBUG_sctrmx0_sctrarb_rts_SIZE;
+ unsigned int : 3;
+ unsigned int dxtc_sctrarb_send : TCD_DXTMUX_SCTARB_DEBUG_dxtc_sctrarb_send_SIZE;
+ unsigned int : 6;
+ unsigned int dxtc_dgmmpd_last_send : TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_last_send_SIZE;
+ unsigned int dxtc_dgmmpd_send : TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_send_SIZE;
+ unsigned int dcmp_mux_send : TCD_DXTMUX_SCTARB_DEBUG_dcmp_mux_send_SIZE;
+ unsigned int : 2;
+ } tcd_dxtmux_sctarb_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcd_dxtmux_sctarb_debug_t {
+ unsigned int : 2;
+ unsigned int dcmp_mux_send : TCD_DXTMUX_SCTARB_DEBUG_dcmp_mux_send_SIZE;
+ unsigned int dxtc_dgmmpd_send : TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_send_SIZE;
+ unsigned int dxtc_dgmmpd_last_send : TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_last_send_SIZE;
+ unsigned int : 6;
+ unsigned int dxtc_sctrarb_send : TCD_DXTMUX_SCTARB_DEBUG_dxtc_sctrarb_send_SIZE;
+ unsigned int : 3;
+ unsigned int sctrmx0_sctrarb_rts : TCD_DXTMUX_SCTARB_DEBUG_sctrmx0_sctrarb_rts_SIZE;
+ unsigned int sctrarb_multcyl_send : TCD_DXTMUX_SCTARB_DEBUG_sctrarb_multcyl_send_SIZE;
+ unsigned int : 3;
+ unsigned int dxtc_rtr : TCD_DXTMUX_SCTARB_DEBUG_dxtc_rtr_SIZE;
+ unsigned int sctrmx_rtr : TCD_DXTMUX_SCTARB_DEBUG_sctrmx_rtr_SIZE;
+ unsigned int pstate : TCD_DXTMUX_SCTARB_DEBUG_pstate_SIZE;
+ unsigned int : 9;
+ } tcd_dxtmux_sctarb_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcd_dxtmux_sctarb_debug_t f;
+} tcd_dxtmux_sctarb_debug_u;
+
+
+/*
+ * TCD_DXTC_ARB_DEBUG struct
+ */
+
+#define TCD_DXTC_ARB_DEBUG_n0_stall_SIZE 1
+#define TCD_DXTC_ARB_DEBUG_pstate_SIZE 1
+#define TCD_DXTC_ARB_DEBUG_arb_dcmp01_last_send_SIZE 1
+#define TCD_DXTC_ARB_DEBUG_arb_dcmp01_cnt_SIZE 2
+#define TCD_DXTC_ARB_DEBUG_arb_dcmp01_sector_SIZE 3
+#define TCD_DXTC_ARB_DEBUG_arb_dcmp01_cacheline_SIZE 6
+#define TCD_DXTC_ARB_DEBUG_arb_dcmp01_format_SIZE 12
+#define TCD_DXTC_ARB_DEBUG_arb_dcmp01_send_SIZE 1
+#define TCD_DXTC_ARB_DEBUG_n0_dxt2_4_types_SIZE 1
+
+#define TCD_DXTC_ARB_DEBUG_n0_stall_SHIFT 4
+#define TCD_DXTC_ARB_DEBUG_pstate_SHIFT 5
+#define TCD_DXTC_ARB_DEBUG_arb_dcmp01_last_send_SHIFT 6
+#define TCD_DXTC_ARB_DEBUG_arb_dcmp01_cnt_SHIFT 7
+#define TCD_DXTC_ARB_DEBUG_arb_dcmp01_sector_SHIFT 9
+#define TCD_DXTC_ARB_DEBUG_arb_dcmp01_cacheline_SHIFT 12
+#define TCD_DXTC_ARB_DEBUG_arb_dcmp01_format_SHIFT 18
+#define TCD_DXTC_ARB_DEBUG_arb_dcmp01_send_SHIFT 30
+#define TCD_DXTC_ARB_DEBUG_n0_dxt2_4_types_SHIFT 31
+
+#define TCD_DXTC_ARB_DEBUG_n0_stall_MASK 0x00000010
+#define TCD_DXTC_ARB_DEBUG_pstate_MASK 0x00000020
+#define TCD_DXTC_ARB_DEBUG_arb_dcmp01_last_send_MASK 0x00000040
+#define TCD_DXTC_ARB_DEBUG_arb_dcmp01_cnt_MASK 0x00000180
+#define TCD_DXTC_ARB_DEBUG_arb_dcmp01_sector_MASK 0x00000e00
+#define TCD_DXTC_ARB_DEBUG_arb_dcmp01_cacheline_MASK 0x0003f000
+#define TCD_DXTC_ARB_DEBUG_arb_dcmp01_format_MASK 0x3ffc0000
+#define TCD_DXTC_ARB_DEBUG_arb_dcmp01_send_MASK 0x40000000
+#define TCD_DXTC_ARB_DEBUG_n0_dxt2_4_types_MASK 0x80000000
+
+#define TCD_DXTC_ARB_DEBUG_MASK \
+ (TCD_DXTC_ARB_DEBUG_n0_stall_MASK | \
+ TCD_DXTC_ARB_DEBUG_pstate_MASK | \
+ TCD_DXTC_ARB_DEBUG_arb_dcmp01_last_send_MASK | \
+ TCD_DXTC_ARB_DEBUG_arb_dcmp01_cnt_MASK | \
+ TCD_DXTC_ARB_DEBUG_arb_dcmp01_sector_MASK | \
+ TCD_DXTC_ARB_DEBUG_arb_dcmp01_cacheline_MASK | \
+ TCD_DXTC_ARB_DEBUG_arb_dcmp01_format_MASK | \
+ TCD_DXTC_ARB_DEBUG_arb_dcmp01_send_MASK | \
+ TCD_DXTC_ARB_DEBUG_n0_dxt2_4_types_MASK)
+
+#define TCD_DXTC_ARB_DEBUG(n0_stall, pstate, arb_dcmp01_last_send, arb_dcmp01_cnt, arb_dcmp01_sector, arb_dcmp01_cacheline, arb_dcmp01_format, arb_dcmp01_send, n0_dxt2_4_types) \
+ ((n0_stall << TCD_DXTC_ARB_DEBUG_n0_stall_SHIFT) | \
+ (pstate << TCD_DXTC_ARB_DEBUG_pstate_SHIFT) | \
+ (arb_dcmp01_last_send << TCD_DXTC_ARB_DEBUG_arb_dcmp01_last_send_SHIFT) | \
+ (arb_dcmp01_cnt << TCD_DXTC_ARB_DEBUG_arb_dcmp01_cnt_SHIFT) | \
+ (arb_dcmp01_sector << TCD_DXTC_ARB_DEBUG_arb_dcmp01_sector_SHIFT) | \
+ (arb_dcmp01_cacheline << TCD_DXTC_ARB_DEBUG_arb_dcmp01_cacheline_SHIFT) | \
+ (arb_dcmp01_format << TCD_DXTC_ARB_DEBUG_arb_dcmp01_format_SHIFT) | \
+ (arb_dcmp01_send << TCD_DXTC_ARB_DEBUG_arb_dcmp01_send_SHIFT) | \
+ (n0_dxt2_4_types << TCD_DXTC_ARB_DEBUG_n0_dxt2_4_types_SHIFT))
+
+#define TCD_DXTC_ARB_DEBUG_GET_n0_stall(tcd_dxtc_arb_debug) \
+ ((tcd_dxtc_arb_debug & TCD_DXTC_ARB_DEBUG_n0_stall_MASK) >> TCD_DXTC_ARB_DEBUG_n0_stall_SHIFT)
+#define TCD_DXTC_ARB_DEBUG_GET_pstate(tcd_dxtc_arb_debug) \
+ ((tcd_dxtc_arb_debug & TCD_DXTC_ARB_DEBUG_pstate_MASK) >> TCD_DXTC_ARB_DEBUG_pstate_SHIFT)
+#define TCD_DXTC_ARB_DEBUG_GET_arb_dcmp01_last_send(tcd_dxtc_arb_debug) \
+ ((tcd_dxtc_arb_debug & TCD_DXTC_ARB_DEBUG_arb_dcmp01_last_send_MASK) >> TCD_DXTC_ARB_DEBUG_arb_dcmp01_last_send_SHIFT)
+#define TCD_DXTC_ARB_DEBUG_GET_arb_dcmp01_cnt(tcd_dxtc_arb_debug) \
+ ((tcd_dxtc_arb_debug & TCD_DXTC_ARB_DEBUG_arb_dcmp01_cnt_MASK) >> TCD_DXTC_ARB_DEBUG_arb_dcmp01_cnt_SHIFT)
+#define TCD_DXTC_ARB_DEBUG_GET_arb_dcmp01_sector(tcd_dxtc_arb_debug) \
+ ((tcd_dxtc_arb_debug & TCD_DXTC_ARB_DEBUG_arb_dcmp01_sector_MASK) >> TCD_DXTC_ARB_DEBUG_arb_dcmp01_sector_SHIFT)
+#define TCD_DXTC_ARB_DEBUG_GET_arb_dcmp01_cacheline(tcd_dxtc_arb_debug) \
+ ((tcd_dxtc_arb_debug & TCD_DXTC_ARB_DEBUG_arb_dcmp01_cacheline_MASK) >> TCD_DXTC_ARB_DEBUG_arb_dcmp01_cacheline_SHIFT)
+#define TCD_DXTC_ARB_DEBUG_GET_arb_dcmp01_format(tcd_dxtc_arb_debug) \
+ ((tcd_dxtc_arb_debug & TCD_DXTC_ARB_DEBUG_arb_dcmp01_format_MASK) >> TCD_DXTC_ARB_DEBUG_arb_dcmp01_format_SHIFT)
+#define TCD_DXTC_ARB_DEBUG_GET_arb_dcmp01_send(tcd_dxtc_arb_debug) \
+ ((tcd_dxtc_arb_debug & TCD_DXTC_ARB_DEBUG_arb_dcmp01_send_MASK) >> TCD_DXTC_ARB_DEBUG_arb_dcmp01_send_SHIFT)
+#define TCD_DXTC_ARB_DEBUG_GET_n0_dxt2_4_types(tcd_dxtc_arb_debug) \
+ ((tcd_dxtc_arb_debug & TCD_DXTC_ARB_DEBUG_n0_dxt2_4_types_MASK) >> TCD_DXTC_ARB_DEBUG_n0_dxt2_4_types_SHIFT)
+
+#define TCD_DXTC_ARB_DEBUG_SET_n0_stall(tcd_dxtc_arb_debug_reg, n0_stall) \
+ tcd_dxtc_arb_debug_reg = (tcd_dxtc_arb_debug_reg & ~TCD_DXTC_ARB_DEBUG_n0_stall_MASK) | (n0_stall << TCD_DXTC_ARB_DEBUG_n0_stall_SHIFT)
+#define TCD_DXTC_ARB_DEBUG_SET_pstate(tcd_dxtc_arb_debug_reg, pstate) \
+ tcd_dxtc_arb_debug_reg = (tcd_dxtc_arb_debug_reg & ~TCD_DXTC_ARB_DEBUG_pstate_MASK) | (pstate << TCD_DXTC_ARB_DEBUG_pstate_SHIFT)
+#define TCD_DXTC_ARB_DEBUG_SET_arb_dcmp01_last_send(tcd_dxtc_arb_debug_reg, arb_dcmp01_last_send) \
+ tcd_dxtc_arb_debug_reg = (tcd_dxtc_arb_debug_reg & ~TCD_DXTC_ARB_DEBUG_arb_dcmp01_last_send_MASK) | (arb_dcmp01_last_send << TCD_DXTC_ARB_DEBUG_arb_dcmp01_last_send_SHIFT)
+#define TCD_DXTC_ARB_DEBUG_SET_arb_dcmp01_cnt(tcd_dxtc_arb_debug_reg, arb_dcmp01_cnt) \
+ tcd_dxtc_arb_debug_reg = (tcd_dxtc_arb_debug_reg & ~TCD_DXTC_ARB_DEBUG_arb_dcmp01_cnt_MASK) | (arb_dcmp01_cnt << TCD_DXTC_ARB_DEBUG_arb_dcmp01_cnt_SHIFT)
+#define TCD_DXTC_ARB_DEBUG_SET_arb_dcmp01_sector(tcd_dxtc_arb_debug_reg, arb_dcmp01_sector) \
+ tcd_dxtc_arb_debug_reg = (tcd_dxtc_arb_debug_reg & ~TCD_DXTC_ARB_DEBUG_arb_dcmp01_sector_MASK) | (arb_dcmp01_sector << TCD_DXTC_ARB_DEBUG_arb_dcmp01_sector_SHIFT)
+#define TCD_DXTC_ARB_DEBUG_SET_arb_dcmp01_cacheline(tcd_dxtc_arb_debug_reg, arb_dcmp01_cacheline) \
+ tcd_dxtc_arb_debug_reg = (tcd_dxtc_arb_debug_reg & ~TCD_DXTC_ARB_DEBUG_arb_dcmp01_cacheline_MASK) | (arb_dcmp01_cacheline << TCD_DXTC_ARB_DEBUG_arb_dcmp01_cacheline_SHIFT)
+#define TCD_DXTC_ARB_DEBUG_SET_arb_dcmp01_format(tcd_dxtc_arb_debug_reg, arb_dcmp01_format) \
+ tcd_dxtc_arb_debug_reg = (tcd_dxtc_arb_debug_reg & ~TCD_DXTC_ARB_DEBUG_arb_dcmp01_format_MASK) | (arb_dcmp01_format << TCD_DXTC_ARB_DEBUG_arb_dcmp01_format_SHIFT)
+#define TCD_DXTC_ARB_DEBUG_SET_arb_dcmp01_send(tcd_dxtc_arb_debug_reg, arb_dcmp01_send) \
+ tcd_dxtc_arb_debug_reg = (tcd_dxtc_arb_debug_reg & ~TCD_DXTC_ARB_DEBUG_arb_dcmp01_send_MASK) | (arb_dcmp01_send << TCD_DXTC_ARB_DEBUG_arb_dcmp01_send_SHIFT)
+#define TCD_DXTC_ARB_DEBUG_SET_n0_dxt2_4_types(tcd_dxtc_arb_debug_reg, n0_dxt2_4_types) \
+ tcd_dxtc_arb_debug_reg = (tcd_dxtc_arb_debug_reg & ~TCD_DXTC_ARB_DEBUG_n0_dxt2_4_types_MASK) | (n0_dxt2_4_types << TCD_DXTC_ARB_DEBUG_n0_dxt2_4_types_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcd_dxtc_arb_debug_t {
+ unsigned int : 4;
+ unsigned int n0_stall : TCD_DXTC_ARB_DEBUG_n0_stall_SIZE;
+ unsigned int pstate : TCD_DXTC_ARB_DEBUG_pstate_SIZE;
+ unsigned int arb_dcmp01_last_send : TCD_DXTC_ARB_DEBUG_arb_dcmp01_last_send_SIZE;
+ unsigned int arb_dcmp01_cnt : TCD_DXTC_ARB_DEBUG_arb_dcmp01_cnt_SIZE;
+ unsigned int arb_dcmp01_sector : TCD_DXTC_ARB_DEBUG_arb_dcmp01_sector_SIZE;
+ unsigned int arb_dcmp01_cacheline : TCD_DXTC_ARB_DEBUG_arb_dcmp01_cacheline_SIZE;
+ unsigned int arb_dcmp01_format : TCD_DXTC_ARB_DEBUG_arb_dcmp01_format_SIZE;
+ unsigned int arb_dcmp01_send : TCD_DXTC_ARB_DEBUG_arb_dcmp01_send_SIZE;
+ unsigned int n0_dxt2_4_types : TCD_DXTC_ARB_DEBUG_n0_dxt2_4_types_SIZE;
+ } tcd_dxtc_arb_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcd_dxtc_arb_debug_t {
+ unsigned int n0_dxt2_4_types : TCD_DXTC_ARB_DEBUG_n0_dxt2_4_types_SIZE;
+ unsigned int arb_dcmp01_send : TCD_DXTC_ARB_DEBUG_arb_dcmp01_send_SIZE;
+ unsigned int arb_dcmp01_format : TCD_DXTC_ARB_DEBUG_arb_dcmp01_format_SIZE;
+ unsigned int arb_dcmp01_cacheline : TCD_DXTC_ARB_DEBUG_arb_dcmp01_cacheline_SIZE;
+ unsigned int arb_dcmp01_sector : TCD_DXTC_ARB_DEBUG_arb_dcmp01_sector_SIZE;
+ unsigned int arb_dcmp01_cnt : TCD_DXTC_ARB_DEBUG_arb_dcmp01_cnt_SIZE;
+ unsigned int arb_dcmp01_last_send : TCD_DXTC_ARB_DEBUG_arb_dcmp01_last_send_SIZE;
+ unsigned int pstate : TCD_DXTC_ARB_DEBUG_pstate_SIZE;
+ unsigned int n0_stall : TCD_DXTC_ARB_DEBUG_n0_stall_SIZE;
+ unsigned int : 4;
+ } tcd_dxtc_arb_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcd_dxtc_arb_debug_t f;
+} tcd_dxtc_arb_debug_u;
+
+
+/*
+ * TCD_STALLS_DEBUG struct
+ */
+
+#define TCD_STALLS_DEBUG_not_multcyl_sctrarb_rtr_SIZE 1
+#define TCD_STALLS_DEBUG_not_sctrmx0_sctrarb_rtr_SIZE 1
+#define TCD_STALLS_DEBUG_not_dcmp0_arb_rtr_SIZE 1
+#define TCD_STALLS_DEBUG_not_dgmmpd_dxtc_rtr_SIZE 1
+#define TCD_STALLS_DEBUG_not_mux_dcmp_rtr_SIZE 1
+#define TCD_STALLS_DEBUG_not_incoming_rtr_SIZE 1
+
+#define TCD_STALLS_DEBUG_not_multcyl_sctrarb_rtr_SHIFT 10
+#define TCD_STALLS_DEBUG_not_sctrmx0_sctrarb_rtr_SHIFT 11
+#define TCD_STALLS_DEBUG_not_dcmp0_arb_rtr_SHIFT 17
+#define TCD_STALLS_DEBUG_not_dgmmpd_dxtc_rtr_SHIFT 18
+#define TCD_STALLS_DEBUG_not_mux_dcmp_rtr_SHIFT 19
+#define TCD_STALLS_DEBUG_not_incoming_rtr_SHIFT 31
+
+#define TCD_STALLS_DEBUG_not_multcyl_sctrarb_rtr_MASK 0x00000400
+#define TCD_STALLS_DEBUG_not_sctrmx0_sctrarb_rtr_MASK 0x00000800
+#define TCD_STALLS_DEBUG_not_dcmp0_arb_rtr_MASK 0x00020000
+#define TCD_STALLS_DEBUG_not_dgmmpd_dxtc_rtr_MASK 0x00040000
+#define TCD_STALLS_DEBUG_not_mux_dcmp_rtr_MASK 0x00080000
+#define TCD_STALLS_DEBUG_not_incoming_rtr_MASK 0x80000000
+
+#define TCD_STALLS_DEBUG_MASK \
+ (TCD_STALLS_DEBUG_not_multcyl_sctrarb_rtr_MASK | \
+ TCD_STALLS_DEBUG_not_sctrmx0_sctrarb_rtr_MASK | \
+ TCD_STALLS_DEBUG_not_dcmp0_arb_rtr_MASK | \
+ TCD_STALLS_DEBUG_not_dgmmpd_dxtc_rtr_MASK | \
+ TCD_STALLS_DEBUG_not_mux_dcmp_rtr_MASK | \
+ TCD_STALLS_DEBUG_not_incoming_rtr_MASK)
+
+#define TCD_STALLS_DEBUG(not_multcyl_sctrarb_rtr, not_sctrmx0_sctrarb_rtr, not_dcmp0_arb_rtr, not_dgmmpd_dxtc_rtr, not_mux_dcmp_rtr, not_incoming_rtr) \
+ ((not_multcyl_sctrarb_rtr << TCD_STALLS_DEBUG_not_multcyl_sctrarb_rtr_SHIFT) | \
+ (not_sctrmx0_sctrarb_rtr << TCD_STALLS_DEBUG_not_sctrmx0_sctrarb_rtr_SHIFT) | \
+ (not_dcmp0_arb_rtr << TCD_STALLS_DEBUG_not_dcmp0_arb_rtr_SHIFT) | \
+ (not_dgmmpd_dxtc_rtr << TCD_STALLS_DEBUG_not_dgmmpd_dxtc_rtr_SHIFT) | \
+ (not_mux_dcmp_rtr << TCD_STALLS_DEBUG_not_mux_dcmp_rtr_SHIFT) | \
+ (not_incoming_rtr << TCD_STALLS_DEBUG_not_incoming_rtr_SHIFT))
+
+#define TCD_STALLS_DEBUG_GET_not_multcyl_sctrarb_rtr(tcd_stalls_debug) \
+ ((tcd_stalls_debug & TCD_STALLS_DEBUG_not_multcyl_sctrarb_rtr_MASK) >> TCD_STALLS_DEBUG_not_multcyl_sctrarb_rtr_SHIFT)
+#define TCD_STALLS_DEBUG_GET_not_sctrmx0_sctrarb_rtr(tcd_stalls_debug) \
+ ((tcd_stalls_debug & TCD_STALLS_DEBUG_not_sctrmx0_sctrarb_rtr_MASK) >> TCD_STALLS_DEBUG_not_sctrmx0_sctrarb_rtr_SHIFT)
+#define TCD_STALLS_DEBUG_GET_not_dcmp0_arb_rtr(tcd_stalls_debug) \
+ ((tcd_stalls_debug & TCD_STALLS_DEBUG_not_dcmp0_arb_rtr_MASK) >> TCD_STALLS_DEBUG_not_dcmp0_arb_rtr_SHIFT)
+#define TCD_STALLS_DEBUG_GET_not_dgmmpd_dxtc_rtr(tcd_stalls_debug) \
+ ((tcd_stalls_debug & TCD_STALLS_DEBUG_not_dgmmpd_dxtc_rtr_MASK) >> TCD_STALLS_DEBUG_not_dgmmpd_dxtc_rtr_SHIFT)
+#define TCD_STALLS_DEBUG_GET_not_mux_dcmp_rtr(tcd_stalls_debug) \
+ ((tcd_stalls_debug & TCD_STALLS_DEBUG_not_mux_dcmp_rtr_MASK) >> TCD_STALLS_DEBUG_not_mux_dcmp_rtr_SHIFT)
+#define TCD_STALLS_DEBUG_GET_not_incoming_rtr(tcd_stalls_debug) \
+ ((tcd_stalls_debug & TCD_STALLS_DEBUG_not_incoming_rtr_MASK) >> TCD_STALLS_DEBUG_not_incoming_rtr_SHIFT)
+
+#define TCD_STALLS_DEBUG_SET_not_multcyl_sctrarb_rtr(tcd_stalls_debug_reg, not_multcyl_sctrarb_rtr) \
+ tcd_stalls_debug_reg = (tcd_stalls_debug_reg & ~TCD_STALLS_DEBUG_not_multcyl_sctrarb_rtr_MASK) | (not_multcyl_sctrarb_rtr << TCD_STALLS_DEBUG_not_multcyl_sctrarb_rtr_SHIFT)
+#define TCD_STALLS_DEBUG_SET_not_sctrmx0_sctrarb_rtr(tcd_stalls_debug_reg, not_sctrmx0_sctrarb_rtr) \
+ tcd_stalls_debug_reg = (tcd_stalls_debug_reg & ~TCD_STALLS_DEBUG_not_sctrmx0_sctrarb_rtr_MASK) | (not_sctrmx0_sctrarb_rtr << TCD_STALLS_DEBUG_not_sctrmx0_sctrarb_rtr_SHIFT)
+#define TCD_STALLS_DEBUG_SET_not_dcmp0_arb_rtr(tcd_stalls_debug_reg, not_dcmp0_arb_rtr) \
+ tcd_stalls_debug_reg = (tcd_stalls_debug_reg & ~TCD_STALLS_DEBUG_not_dcmp0_arb_rtr_MASK) | (not_dcmp0_arb_rtr << TCD_STALLS_DEBUG_not_dcmp0_arb_rtr_SHIFT)
+#define TCD_STALLS_DEBUG_SET_not_dgmmpd_dxtc_rtr(tcd_stalls_debug_reg, not_dgmmpd_dxtc_rtr) \
+ tcd_stalls_debug_reg = (tcd_stalls_debug_reg & ~TCD_STALLS_DEBUG_not_dgmmpd_dxtc_rtr_MASK) | (not_dgmmpd_dxtc_rtr << TCD_STALLS_DEBUG_not_dgmmpd_dxtc_rtr_SHIFT)
+#define TCD_STALLS_DEBUG_SET_not_mux_dcmp_rtr(tcd_stalls_debug_reg, not_mux_dcmp_rtr) \
+ tcd_stalls_debug_reg = (tcd_stalls_debug_reg & ~TCD_STALLS_DEBUG_not_mux_dcmp_rtr_MASK) | (not_mux_dcmp_rtr << TCD_STALLS_DEBUG_not_mux_dcmp_rtr_SHIFT)
+#define TCD_STALLS_DEBUG_SET_not_incoming_rtr(tcd_stalls_debug_reg, not_incoming_rtr) \
+ tcd_stalls_debug_reg = (tcd_stalls_debug_reg & ~TCD_STALLS_DEBUG_not_incoming_rtr_MASK) | (not_incoming_rtr << TCD_STALLS_DEBUG_not_incoming_rtr_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcd_stalls_debug_t {
+ unsigned int : 10;
+ unsigned int not_multcyl_sctrarb_rtr : TCD_STALLS_DEBUG_not_multcyl_sctrarb_rtr_SIZE;
+ unsigned int not_sctrmx0_sctrarb_rtr : TCD_STALLS_DEBUG_not_sctrmx0_sctrarb_rtr_SIZE;
+ unsigned int : 5;
+ unsigned int not_dcmp0_arb_rtr : TCD_STALLS_DEBUG_not_dcmp0_arb_rtr_SIZE;
+ unsigned int not_dgmmpd_dxtc_rtr : TCD_STALLS_DEBUG_not_dgmmpd_dxtc_rtr_SIZE;
+ unsigned int not_mux_dcmp_rtr : TCD_STALLS_DEBUG_not_mux_dcmp_rtr_SIZE;
+ unsigned int : 11;
+ unsigned int not_incoming_rtr : TCD_STALLS_DEBUG_not_incoming_rtr_SIZE;
+ } tcd_stalls_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcd_stalls_debug_t {
+ unsigned int not_incoming_rtr : TCD_STALLS_DEBUG_not_incoming_rtr_SIZE;
+ unsigned int : 11;
+ unsigned int not_mux_dcmp_rtr : TCD_STALLS_DEBUG_not_mux_dcmp_rtr_SIZE;
+ unsigned int not_dgmmpd_dxtc_rtr : TCD_STALLS_DEBUG_not_dgmmpd_dxtc_rtr_SIZE;
+ unsigned int not_dcmp0_arb_rtr : TCD_STALLS_DEBUG_not_dcmp0_arb_rtr_SIZE;
+ unsigned int : 5;
+ unsigned int not_sctrmx0_sctrarb_rtr : TCD_STALLS_DEBUG_not_sctrmx0_sctrarb_rtr_SIZE;
+ unsigned int not_multcyl_sctrarb_rtr : TCD_STALLS_DEBUG_not_multcyl_sctrarb_rtr_SIZE;
+ unsigned int : 10;
+ } tcd_stalls_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcd_stalls_debug_t f;
+} tcd_stalls_debug_u;
+
+
+/*
+ * TCO_STALLS_DEBUG struct
+ */
+
+#define TCO_STALLS_DEBUG_quad0_sg_crd_RTR_SIZE 1
+#define TCO_STALLS_DEBUG_quad0_rl_sg_RTR_SIZE 1
+#define TCO_STALLS_DEBUG_quad0_TCO_TCB_rtr_d_SIZE 1
+
+#define TCO_STALLS_DEBUG_quad0_sg_crd_RTR_SHIFT 5
+#define TCO_STALLS_DEBUG_quad0_rl_sg_RTR_SHIFT 6
+#define TCO_STALLS_DEBUG_quad0_TCO_TCB_rtr_d_SHIFT 7
+
+#define TCO_STALLS_DEBUG_quad0_sg_crd_RTR_MASK 0x00000020
+#define TCO_STALLS_DEBUG_quad0_rl_sg_RTR_MASK 0x00000040
+#define TCO_STALLS_DEBUG_quad0_TCO_TCB_rtr_d_MASK 0x00000080
+
+#define TCO_STALLS_DEBUG_MASK \
+ (TCO_STALLS_DEBUG_quad0_sg_crd_RTR_MASK | \
+ TCO_STALLS_DEBUG_quad0_rl_sg_RTR_MASK | \
+ TCO_STALLS_DEBUG_quad0_TCO_TCB_rtr_d_MASK)
+
+#define TCO_STALLS_DEBUG(quad0_sg_crd_rtr, quad0_rl_sg_rtr, quad0_tco_tcb_rtr_d) \
+ ((quad0_sg_crd_rtr << TCO_STALLS_DEBUG_quad0_sg_crd_RTR_SHIFT) | \
+ (quad0_rl_sg_rtr << TCO_STALLS_DEBUG_quad0_rl_sg_RTR_SHIFT) | \
+ (quad0_tco_tcb_rtr_d << TCO_STALLS_DEBUG_quad0_TCO_TCB_rtr_d_SHIFT))
+
+#define TCO_STALLS_DEBUG_GET_quad0_sg_crd_RTR(tco_stalls_debug) \
+ ((tco_stalls_debug & TCO_STALLS_DEBUG_quad0_sg_crd_RTR_MASK) >> TCO_STALLS_DEBUG_quad0_sg_crd_RTR_SHIFT)
+#define TCO_STALLS_DEBUG_GET_quad0_rl_sg_RTR(tco_stalls_debug) \
+ ((tco_stalls_debug & TCO_STALLS_DEBUG_quad0_rl_sg_RTR_MASK) >> TCO_STALLS_DEBUG_quad0_rl_sg_RTR_SHIFT)
+#define TCO_STALLS_DEBUG_GET_quad0_TCO_TCB_rtr_d(tco_stalls_debug) \
+ ((tco_stalls_debug & TCO_STALLS_DEBUG_quad0_TCO_TCB_rtr_d_MASK) >> TCO_STALLS_DEBUG_quad0_TCO_TCB_rtr_d_SHIFT)
+
+#define TCO_STALLS_DEBUG_SET_quad0_sg_crd_RTR(tco_stalls_debug_reg, quad0_sg_crd_rtr) \
+ tco_stalls_debug_reg = (tco_stalls_debug_reg & ~TCO_STALLS_DEBUG_quad0_sg_crd_RTR_MASK) | (quad0_sg_crd_rtr << TCO_STALLS_DEBUG_quad0_sg_crd_RTR_SHIFT)
+#define TCO_STALLS_DEBUG_SET_quad0_rl_sg_RTR(tco_stalls_debug_reg, quad0_rl_sg_rtr) \
+ tco_stalls_debug_reg = (tco_stalls_debug_reg & ~TCO_STALLS_DEBUG_quad0_rl_sg_RTR_MASK) | (quad0_rl_sg_rtr << TCO_STALLS_DEBUG_quad0_rl_sg_RTR_SHIFT)
+#define TCO_STALLS_DEBUG_SET_quad0_TCO_TCB_rtr_d(tco_stalls_debug_reg, quad0_tco_tcb_rtr_d) \
+ tco_stalls_debug_reg = (tco_stalls_debug_reg & ~TCO_STALLS_DEBUG_quad0_TCO_TCB_rtr_d_MASK) | (quad0_tco_tcb_rtr_d << TCO_STALLS_DEBUG_quad0_TCO_TCB_rtr_d_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tco_stalls_debug_t {
+ unsigned int : 5;
+ unsigned int quad0_sg_crd_rtr : TCO_STALLS_DEBUG_quad0_sg_crd_RTR_SIZE;
+ unsigned int quad0_rl_sg_rtr : TCO_STALLS_DEBUG_quad0_rl_sg_RTR_SIZE;
+ unsigned int quad0_tco_tcb_rtr_d : TCO_STALLS_DEBUG_quad0_TCO_TCB_rtr_d_SIZE;
+ unsigned int : 24;
+ } tco_stalls_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tco_stalls_debug_t {
+ unsigned int : 24;
+ unsigned int quad0_tco_tcb_rtr_d : TCO_STALLS_DEBUG_quad0_TCO_TCB_rtr_d_SIZE;
+ unsigned int quad0_rl_sg_rtr : TCO_STALLS_DEBUG_quad0_rl_sg_RTR_SIZE;
+ unsigned int quad0_sg_crd_rtr : TCO_STALLS_DEBUG_quad0_sg_crd_RTR_SIZE;
+ unsigned int : 5;
+ } tco_stalls_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tco_stalls_debug_t f;
+} tco_stalls_debug_u;
+
+
+/*
+ * TCO_QUAD0_DEBUG0 struct
+ */
+
+#define TCO_QUAD0_DEBUG0_rl_sg_sector_format_SIZE 8
+#define TCO_QUAD0_DEBUG0_rl_sg_end_of_sample_SIZE 1
+#define TCO_QUAD0_DEBUG0_rl_sg_rtr_SIZE 1
+#define TCO_QUAD0_DEBUG0_rl_sg_rts_SIZE 1
+#define TCO_QUAD0_DEBUG0_sg_crd_end_of_sample_SIZE 1
+#define TCO_QUAD0_DEBUG0_sg_crd_rtr_SIZE 1
+#define TCO_QUAD0_DEBUG0_sg_crd_rts_SIZE 1
+#define TCO_QUAD0_DEBUG0_stageN1_valid_q_SIZE 1
+#define TCO_QUAD0_DEBUG0_read_cache_q_SIZE 1
+#define TCO_QUAD0_DEBUG0_cache_read_RTR_SIZE 1
+#define TCO_QUAD0_DEBUG0_all_sectors_written_set3_SIZE 1
+#define TCO_QUAD0_DEBUG0_all_sectors_written_set2_SIZE 1
+#define TCO_QUAD0_DEBUG0_all_sectors_written_set1_SIZE 1
+#define TCO_QUAD0_DEBUG0_all_sectors_written_set0_SIZE 1
+#define TCO_QUAD0_DEBUG0_busy_SIZE 1
+
+#define TCO_QUAD0_DEBUG0_rl_sg_sector_format_SHIFT 0
+#define TCO_QUAD0_DEBUG0_rl_sg_end_of_sample_SHIFT 8
+#define TCO_QUAD0_DEBUG0_rl_sg_rtr_SHIFT 9
+#define TCO_QUAD0_DEBUG0_rl_sg_rts_SHIFT 10
+#define TCO_QUAD0_DEBUG0_sg_crd_end_of_sample_SHIFT 11
+#define TCO_QUAD0_DEBUG0_sg_crd_rtr_SHIFT 12
+#define TCO_QUAD0_DEBUG0_sg_crd_rts_SHIFT 13
+#define TCO_QUAD0_DEBUG0_stageN1_valid_q_SHIFT 16
+#define TCO_QUAD0_DEBUG0_read_cache_q_SHIFT 24
+#define TCO_QUAD0_DEBUG0_cache_read_RTR_SHIFT 25
+#define TCO_QUAD0_DEBUG0_all_sectors_written_set3_SHIFT 26
+#define TCO_QUAD0_DEBUG0_all_sectors_written_set2_SHIFT 27
+#define TCO_QUAD0_DEBUG0_all_sectors_written_set1_SHIFT 28
+#define TCO_QUAD0_DEBUG0_all_sectors_written_set0_SHIFT 29
+#define TCO_QUAD0_DEBUG0_busy_SHIFT 30
+
+#define TCO_QUAD0_DEBUG0_rl_sg_sector_format_MASK 0x000000ff
+#define TCO_QUAD0_DEBUG0_rl_sg_end_of_sample_MASK 0x00000100
+#define TCO_QUAD0_DEBUG0_rl_sg_rtr_MASK 0x00000200
+#define TCO_QUAD0_DEBUG0_rl_sg_rts_MASK 0x00000400
+#define TCO_QUAD0_DEBUG0_sg_crd_end_of_sample_MASK 0x00000800
+#define TCO_QUAD0_DEBUG0_sg_crd_rtr_MASK 0x00001000
+#define TCO_QUAD0_DEBUG0_sg_crd_rts_MASK 0x00002000
+#define TCO_QUAD0_DEBUG0_stageN1_valid_q_MASK 0x00010000
+#define TCO_QUAD0_DEBUG0_read_cache_q_MASK 0x01000000
+#define TCO_QUAD0_DEBUG0_cache_read_RTR_MASK 0x02000000
+#define TCO_QUAD0_DEBUG0_all_sectors_written_set3_MASK 0x04000000
+#define TCO_QUAD0_DEBUG0_all_sectors_written_set2_MASK 0x08000000
+#define TCO_QUAD0_DEBUG0_all_sectors_written_set1_MASK 0x10000000
+#define TCO_QUAD0_DEBUG0_all_sectors_written_set0_MASK 0x20000000
+#define TCO_QUAD0_DEBUG0_busy_MASK 0x40000000
+
+#define TCO_QUAD0_DEBUG0_MASK \
+ (TCO_QUAD0_DEBUG0_rl_sg_sector_format_MASK | \
+ TCO_QUAD0_DEBUG0_rl_sg_end_of_sample_MASK | \
+ TCO_QUAD0_DEBUG0_rl_sg_rtr_MASK | \
+ TCO_QUAD0_DEBUG0_rl_sg_rts_MASK | \
+ TCO_QUAD0_DEBUG0_sg_crd_end_of_sample_MASK | \
+ TCO_QUAD0_DEBUG0_sg_crd_rtr_MASK | \
+ TCO_QUAD0_DEBUG0_sg_crd_rts_MASK | \
+ TCO_QUAD0_DEBUG0_stageN1_valid_q_MASK | \
+ TCO_QUAD0_DEBUG0_read_cache_q_MASK | \
+ TCO_QUAD0_DEBUG0_cache_read_RTR_MASK | \
+ TCO_QUAD0_DEBUG0_all_sectors_written_set3_MASK | \
+ TCO_QUAD0_DEBUG0_all_sectors_written_set2_MASK | \
+ TCO_QUAD0_DEBUG0_all_sectors_written_set1_MASK | \
+ TCO_QUAD0_DEBUG0_all_sectors_written_set0_MASK | \
+ TCO_QUAD0_DEBUG0_busy_MASK)
+
+#define TCO_QUAD0_DEBUG0(rl_sg_sector_format, rl_sg_end_of_sample, rl_sg_rtr, rl_sg_rts, sg_crd_end_of_sample, sg_crd_rtr, sg_crd_rts, stagen1_valid_q, read_cache_q, cache_read_rtr, all_sectors_written_set3, all_sectors_written_set2, all_sectors_written_set1, all_sectors_written_set0, busy) \
+ ((rl_sg_sector_format << TCO_QUAD0_DEBUG0_rl_sg_sector_format_SHIFT) | \
+ (rl_sg_end_of_sample << TCO_QUAD0_DEBUG0_rl_sg_end_of_sample_SHIFT) | \
+ (rl_sg_rtr << TCO_QUAD0_DEBUG0_rl_sg_rtr_SHIFT) | \
+ (rl_sg_rts << TCO_QUAD0_DEBUG0_rl_sg_rts_SHIFT) | \
+ (sg_crd_end_of_sample << TCO_QUAD0_DEBUG0_sg_crd_end_of_sample_SHIFT) | \
+ (sg_crd_rtr << TCO_QUAD0_DEBUG0_sg_crd_rtr_SHIFT) | \
+ (sg_crd_rts << TCO_QUAD0_DEBUG0_sg_crd_rts_SHIFT) | \
+ (stagen1_valid_q << TCO_QUAD0_DEBUG0_stageN1_valid_q_SHIFT) | \
+ (read_cache_q << TCO_QUAD0_DEBUG0_read_cache_q_SHIFT) | \
+ (cache_read_rtr << TCO_QUAD0_DEBUG0_cache_read_RTR_SHIFT) | \
+ (all_sectors_written_set3 << TCO_QUAD0_DEBUG0_all_sectors_written_set3_SHIFT) | \
+ (all_sectors_written_set2 << TCO_QUAD0_DEBUG0_all_sectors_written_set2_SHIFT) | \
+ (all_sectors_written_set1 << TCO_QUAD0_DEBUG0_all_sectors_written_set1_SHIFT) | \
+ (all_sectors_written_set0 << TCO_QUAD0_DEBUG0_all_sectors_written_set0_SHIFT) | \
+ (busy << TCO_QUAD0_DEBUG0_busy_SHIFT))
+
+#define TCO_QUAD0_DEBUG0_GET_rl_sg_sector_format(tco_quad0_debug0) \
+ ((tco_quad0_debug0 & TCO_QUAD0_DEBUG0_rl_sg_sector_format_MASK) >> TCO_QUAD0_DEBUG0_rl_sg_sector_format_SHIFT)
+#define TCO_QUAD0_DEBUG0_GET_rl_sg_end_of_sample(tco_quad0_debug0) \
+ ((tco_quad0_debug0 & TCO_QUAD0_DEBUG0_rl_sg_end_of_sample_MASK) >> TCO_QUAD0_DEBUG0_rl_sg_end_of_sample_SHIFT)
+#define TCO_QUAD0_DEBUG0_GET_rl_sg_rtr(tco_quad0_debug0) \
+ ((tco_quad0_debug0 & TCO_QUAD0_DEBUG0_rl_sg_rtr_MASK) >> TCO_QUAD0_DEBUG0_rl_sg_rtr_SHIFT)
+#define TCO_QUAD0_DEBUG0_GET_rl_sg_rts(tco_quad0_debug0) \
+ ((tco_quad0_debug0 & TCO_QUAD0_DEBUG0_rl_sg_rts_MASK) >> TCO_QUAD0_DEBUG0_rl_sg_rts_SHIFT)
+#define TCO_QUAD0_DEBUG0_GET_sg_crd_end_of_sample(tco_quad0_debug0) \
+ ((tco_quad0_debug0 & TCO_QUAD0_DEBUG0_sg_crd_end_of_sample_MASK) >> TCO_QUAD0_DEBUG0_sg_crd_end_of_sample_SHIFT)
+#define TCO_QUAD0_DEBUG0_GET_sg_crd_rtr(tco_quad0_debug0) \
+ ((tco_quad0_debug0 & TCO_QUAD0_DEBUG0_sg_crd_rtr_MASK) >> TCO_QUAD0_DEBUG0_sg_crd_rtr_SHIFT)
+#define TCO_QUAD0_DEBUG0_GET_sg_crd_rts(tco_quad0_debug0) \
+ ((tco_quad0_debug0 & TCO_QUAD0_DEBUG0_sg_crd_rts_MASK) >> TCO_QUAD0_DEBUG0_sg_crd_rts_SHIFT)
+#define TCO_QUAD0_DEBUG0_GET_stageN1_valid_q(tco_quad0_debug0) \
+ ((tco_quad0_debug0 & TCO_QUAD0_DEBUG0_stageN1_valid_q_MASK) >> TCO_QUAD0_DEBUG0_stageN1_valid_q_SHIFT)
+#define TCO_QUAD0_DEBUG0_GET_read_cache_q(tco_quad0_debug0) \
+ ((tco_quad0_debug0 & TCO_QUAD0_DEBUG0_read_cache_q_MASK) >> TCO_QUAD0_DEBUG0_read_cache_q_SHIFT)
+#define TCO_QUAD0_DEBUG0_GET_cache_read_RTR(tco_quad0_debug0) \
+ ((tco_quad0_debug0 & TCO_QUAD0_DEBUG0_cache_read_RTR_MASK) >> TCO_QUAD0_DEBUG0_cache_read_RTR_SHIFT)
+#define TCO_QUAD0_DEBUG0_GET_all_sectors_written_set3(tco_quad0_debug0) \
+ ((tco_quad0_debug0 & TCO_QUAD0_DEBUG0_all_sectors_written_set3_MASK) >> TCO_QUAD0_DEBUG0_all_sectors_written_set3_SHIFT)
+#define TCO_QUAD0_DEBUG0_GET_all_sectors_written_set2(tco_quad0_debug0) \
+ ((tco_quad0_debug0 & TCO_QUAD0_DEBUG0_all_sectors_written_set2_MASK) >> TCO_QUAD0_DEBUG0_all_sectors_written_set2_SHIFT)
+#define TCO_QUAD0_DEBUG0_GET_all_sectors_written_set1(tco_quad0_debug0) \
+ ((tco_quad0_debug0 & TCO_QUAD0_DEBUG0_all_sectors_written_set1_MASK) >> TCO_QUAD0_DEBUG0_all_sectors_written_set1_SHIFT)
+#define TCO_QUAD0_DEBUG0_GET_all_sectors_written_set0(tco_quad0_debug0) \
+ ((tco_quad0_debug0 & TCO_QUAD0_DEBUG0_all_sectors_written_set0_MASK) >> TCO_QUAD0_DEBUG0_all_sectors_written_set0_SHIFT)
+#define TCO_QUAD0_DEBUG0_GET_busy(tco_quad0_debug0) \
+ ((tco_quad0_debug0 & TCO_QUAD0_DEBUG0_busy_MASK) >> TCO_QUAD0_DEBUG0_busy_SHIFT)
+
+#define TCO_QUAD0_DEBUG0_SET_rl_sg_sector_format(tco_quad0_debug0_reg, rl_sg_sector_format) \
+ tco_quad0_debug0_reg = (tco_quad0_debug0_reg & ~TCO_QUAD0_DEBUG0_rl_sg_sector_format_MASK) | (rl_sg_sector_format << TCO_QUAD0_DEBUG0_rl_sg_sector_format_SHIFT)
+#define TCO_QUAD0_DEBUG0_SET_rl_sg_end_of_sample(tco_quad0_debug0_reg, rl_sg_end_of_sample) \
+ tco_quad0_debug0_reg = (tco_quad0_debug0_reg & ~TCO_QUAD0_DEBUG0_rl_sg_end_of_sample_MASK) | (rl_sg_end_of_sample << TCO_QUAD0_DEBUG0_rl_sg_end_of_sample_SHIFT)
+#define TCO_QUAD0_DEBUG0_SET_rl_sg_rtr(tco_quad0_debug0_reg, rl_sg_rtr) \
+ tco_quad0_debug0_reg = (tco_quad0_debug0_reg & ~TCO_QUAD0_DEBUG0_rl_sg_rtr_MASK) | (rl_sg_rtr << TCO_QUAD0_DEBUG0_rl_sg_rtr_SHIFT)
+#define TCO_QUAD0_DEBUG0_SET_rl_sg_rts(tco_quad0_debug0_reg, rl_sg_rts) \
+ tco_quad0_debug0_reg = (tco_quad0_debug0_reg & ~TCO_QUAD0_DEBUG0_rl_sg_rts_MASK) | (rl_sg_rts << TCO_QUAD0_DEBUG0_rl_sg_rts_SHIFT)
+#define TCO_QUAD0_DEBUG0_SET_sg_crd_end_of_sample(tco_quad0_debug0_reg, sg_crd_end_of_sample) \
+ tco_quad0_debug0_reg = (tco_quad0_debug0_reg & ~TCO_QUAD0_DEBUG0_sg_crd_end_of_sample_MASK) | (sg_crd_end_of_sample << TCO_QUAD0_DEBUG0_sg_crd_end_of_sample_SHIFT)
+#define TCO_QUAD0_DEBUG0_SET_sg_crd_rtr(tco_quad0_debug0_reg, sg_crd_rtr) \
+ tco_quad0_debug0_reg = (tco_quad0_debug0_reg & ~TCO_QUAD0_DEBUG0_sg_crd_rtr_MASK) | (sg_crd_rtr << TCO_QUAD0_DEBUG0_sg_crd_rtr_SHIFT)
+#define TCO_QUAD0_DEBUG0_SET_sg_crd_rts(tco_quad0_debug0_reg, sg_crd_rts) \
+ tco_quad0_debug0_reg = (tco_quad0_debug0_reg & ~TCO_QUAD0_DEBUG0_sg_crd_rts_MASK) | (sg_crd_rts << TCO_QUAD0_DEBUG0_sg_crd_rts_SHIFT)
+#define TCO_QUAD0_DEBUG0_SET_stageN1_valid_q(tco_quad0_debug0_reg, stagen1_valid_q) \
+ tco_quad0_debug0_reg = (tco_quad0_debug0_reg & ~TCO_QUAD0_DEBUG0_stageN1_valid_q_MASK) | (stagen1_valid_q << TCO_QUAD0_DEBUG0_stageN1_valid_q_SHIFT)
+#define TCO_QUAD0_DEBUG0_SET_read_cache_q(tco_quad0_debug0_reg, read_cache_q) \
+ tco_quad0_debug0_reg = (tco_quad0_debug0_reg & ~TCO_QUAD0_DEBUG0_read_cache_q_MASK) | (read_cache_q << TCO_QUAD0_DEBUG0_read_cache_q_SHIFT)
+#define TCO_QUAD0_DEBUG0_SET_cache_read_RTR(tco_quad0_debug0_reg, cache_read_rtr) \
+ tco_quad0_debug0_reg = (tco_quad0_debug0_reg & ~TCO_QUAD0_DEBUG0_cache_read_RTR_MASK) | (cache_read_rtr << TCO_QUAD0_DEBUG0_cache_read_RTR_SHIFT)
+#define TCO_QUAD0_DEBUG0_SET_all_sectors_written_set3(tco_quad0_debug0_reg, all_sectors_written_set3) \
+ tco_quad0_debug0_reg = (tco_quad0_debug0_reg & ~TCO_QUAD0_DEBUG0_all_sectors_written_set3_MASK) | (all_sectors_written_set3 << TCO_QUAD0_DEBUG0_all_sectors_written_set3_SHIFT)
+#define TCO_QUAD0_DEBUG0_SET_all_sectors_written_set2(tco_quad0_debug0_reg, all_sectors_written_set2) \
+ tco_quad0_debug0_reg = (tco_quad0_debug0_reg & ~TCO_QUAD0_DEBUG0_all_sectors_written_set2_MASK) | (all_sectors_written_set2 << TCO_QUAD0_DEBUG0_all_sectors_written_set2_SHIFT)
+#define TCO_QUAD0_DEBUG0_SET_all_sectors_written_set1(tco_quad0_debug0_reg, all_sectors_written_set1) \
+ tco_quad0_debug0_reg = (tco_quad0_debug0_reg & ~TCO_QUAD0_DEBUG0_all_sectors_written_set1_MASK) | (all_sectors_written_set1 << TCO_QUAD0_DEBUG0_all_sectors_written_set1_SHIFT)
+#define TCO_QUAD0_DEBUG0_SET_all_sectors_written_set0(tco_quad0_debug0_reg, all_sectors_written_set0) \
+ tco_quad0_debug0_reg = (tco_quad0_debug0_reg & ~TCO_QUAD0_DEBUG0_all_sectors_written_set0_MASK) | (all_sectors_written_set0 << TCO_QUAD0_DEBUG0_all_sectors_written_set0_SHIFT)
+#define TCO_QUAD0_DEBUG0_SET_busy(tco_quad0_debug0_reg, busy) \
+ tco_quad0_debug0_reg = (tco_quad0_debug0_reg & ~TCO_QUAD0_DEBUG0_busy_MASK) | (busy << TCO_QUAD0_DEBUG0_busy_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tco_quad0_debug0_t {
+ unsigned int rl_sg_sector_format : TCO_QUAD0_DEBUG0_rl_sg_sector_format_SIZE;
+ unsigned int rl_sg_end_of_sample : TCO_QUAD0_DEBUG0_rl_sg_end_of_sample_SIZE;
+ unsigned int rl_sg_rtr : TCO_QUAD0_DEBUG0_rl_sg_rtr_SIZE;
+ unsigned int rl_sg_rts : TCO_QUAD0_DEBUG0_rl_sg_rts_SIZE;
+ unsigned int sg_crd_end_of_sample : TCO_QUAD0_DEBUG0_sg_crd_end_of_sample_SIZE;
+ unsigned int sg_crd_rtr : TCO_QUAD0_DEBUG0_sg_crd_rtr_SIZE;
+ unsigned int sg_crd_rts : TCO_QUAD0_DEBUG0_sg_crd_rts_SIZE;
+ unsigned int : 2;
+ unsigned int stagen1_valid_q : TCO_QUAD0_DEBUG0_stageN1_valid_q_SIZE;
+ unsigned int : 7;
+ unsigned int read_cache_q : TCO_QUAD0_DEBUG0_read_cache_q_SIZE;
+ unsigned int cache_read_rtr : TCO_QUAD0_DEBUG0_cache_read_RTR_SIZE;
+ unsigned int all_sectors_written_set3 : TCO_QUAD0_DEBUG0_all_sectors_written_set3_SIZE;
+ unsigned int all_sectors_written_set2 : TCO_QUAD0_DEBUG0_all_sectors_written_set2_SIZE;
+ unsigned int all_sectors_written_set1 : TCO_QUAD0_DEBUG0_all_sectors_written_set1_SIZE;
+ unsigned int all_sectors_written_set0 : TCO_QUAD0_DEBUG0_all_sectors_written_set0_SIZE;
+ unsigned int busy : TCO_QUAD0_DEBUG0_busy_SIZE;
+ unsigned int : 1;
+ } tco_quad0_debug0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tco_quad0_debug0_t {
+ unsigned int : 1;
+ unsigned int busy : TCO_QUAD0_DEBUG0_busy_SIZE;
+ unsigned int all_sectors_written_set0 : TCO_QUAD0_DEBUG0_all_sectors_written_set0_SIZE;
+ unsigned int all_sectors_written_set1 : TCO_QUAD0_DEBUG0_all_sectors_written_set1_SIZE;
+ unsigned int all_sectors_written_set2 : TCO_QUAD0_DEBUG0_all_sectors_written_set2_SIZE;
+ unsigned int all_sectors_written_set3 : TCO_QUAD0_DEBUG0_all_sectors_written_set3_SIZE;
+ unsigned int cache_read_rtr : TCO_QUAD0_DEBUG0_cache_read_RTR_SIZE;
+ unsigned int read_cache_q : TCO_QUAD0_DEBUG0_read_cache_q_SIZE;
+ unsigned int : 7;
+ unsigned int stagen1_valid_q : TCO_QUAD0_DEBUG0_stageN1_valid_q_SIZE;
+ unsigned int : 2;
+ unsigned int sg_crd_rts : TCO_QUAD0_DEBUG0_sg_crd_rts_SIZE;
+ unsigned int sg_crd_rtr : TCO_QUAD0_DEBUG0_sg_crd_rtr_SIZE;
+ unsigned int sg_crd_end_of_sample : TCO_QUAD0_DEBUG0_sg_crd_end_of_sample_SIZE;
+ unsigned int rl_sg_rts : TCO_QUAD0_DEBUG0_rl_sg_rts_SIZE;
+ unsigned int rl_sg_rtr : TCO_QUAD0_DEBUG0_rl_sg_rtr_SIZE;
+ unsigned int rl_sg_end_of_sample : TCO_QUAD0_DEBUG0_rl_sg_end_of_sample_SIZE;
+ unsigned int rl_sg_sector_format : TCO_QUAD0_DEBUG0_rl_sg_sector_format_SIZE;
+ } tco_quad0_debug0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tco_quad0_debug0_t f;
+} tco_quad0_debug0_u;
+
+
+/*
+ * TCO_QUAD0_DEBUG1 struct
+ */
+
+#define TCO_QUAD0_DEBUG1_fifo_busy_SIZE 1
+#define TCO_QUAD0_DEBUG1_empty_SIZE 1
+#define TCO_QUAD0_DEBUG1_full_SIZE 1
+#define TCO_QUAD0_DEBUG1_write_enable_SIZE 1
+#define TCO_QUAD0_DEBUG1_fifo_write_ptr_SIZE 7
+#define TCO_QUAD0_DEBUG1_fifo_read_ptr_SIZE 7
+#define TCO_QUAD0_DEBUG1_cache_read_busy_SIZE 1
+#define TCO_QUAD0_DEBUG1_latency_fifo_busy_SIZE 1
+#define TCO_QUAD0_DEBUG1_input_quad_busy_SIZE 1
+#define TCO_QUAD0_DEBUG1_tco_quad_pipe_busy_SIZE 1
+#define TCO_QUAD0_DEBUG1_TCB_TCO_rtr_d_SIZE 1
+#define TCO_QUAD0_DEBUG1_TCB_TCO_xfc_q_SIZE 1
+#define TCO_QUAD0_DEBUG1_rl_sg_rtr_SIZE 1
+#define TCO_QUAD0_DEBUG1_rl_sg_rts_SIZE 1
+#define TCO_QUAD0_DEBUG1_sg_crd_rtr_SIZE 1
+#define TCO_QUAD0_DEBUG1_sg_crd_rts_SIZE 1
+#define TCO_QUAD0_DEBUG1_TCO_TCB_read_xfc_SIZE 1
+
+#define TCO_QUAD0_DEBUG1_fifo_busy_SHIFT 0
+#define TCO_QUAD0_DEBUG1_empty_SHIFT 1
+#define TCO_QUAD0_DEBUG1_full_SHIFT 2
+#define TCO_QUAD0_DEBUG1_write_enable_SHIFT 3
+#define TCO_QUAD0_DEBUG1_fifo_write_ptr_SHIFT 4
+#define TCO_QUAD0_DEBUG1_fifo_read_ptr_SHIFT 11
+#define TCO_QUAD0_DEBUG1_cache_read_busy_SHIFT 20
+#define TCO_QUAD0_DEBUG1_latency_fifo_busy_SHIFT 21
+#define TCO_QUAD0_DEBUG1_input_quad_busy_SHIFT 22
+#define TCO_QUAD0_DEBUG1_tco_quad_pipe_busy_SHIFT 23
+#define TCO_QUAD0_DEBUG1_TCB_TCO_rtr_d_SHIFT 24
+#define TCO_QUAD0_DEBUG1_TCB_TCO_xfc_q_SHIFT 25
+#define TCO_QUAD0_DEBUG1_rl_sg_rtr_SHIFT 26
+#define TCO_QUAD0_DEBUG1_rl_sg_rts_SHIFT 27
+#define TCO_QUAD0_DEBUG1_sg_crd_rtr_SHIFT 28
+#define TCO_QUAD0_DEBUG1_sg_crd_rts_SHIFT 29
+#define TCO_QUAD0_DEBUG1_TCO_TCB_read_xfc_SHIFT 30
+
+#define TCO_QUAD0_DEBUG1_fifo_busy_MASK 0x00000001
+#define TCO_QUAD0_DEBUG1_empty_MASK 0x00000002
+#define TCO_QUAD0_DEBUG1_full_MASK 0x00000004
+#define TCO_QUAD0_DEBUG1_write_enable_MASK 0x00000008
+#define TCO_QUAD0_DEBUG1_fifo_write_ptr_MASK 0x000007f0
+#define TCO_QUAD0_DEBUG1_fifo_read_ptr_MASK 0x0003f800
+#define TCO_QUAD0_DEBUG1_cache_read_busy_MASK 0x00100000
+#define TCO_QUAD0_DEBUG1_latency_fifo_busy_MASK 0x00200000
+#define TCO_QUAD0_DEBUG1_input_quad_busy_MASK 0x00400000
+#define TCO_QUAD0_DEBUG1_tco_quad_pipe_busy_MASK 0x00800000
+#define TCO_QUAD0_DEBUG1_TCB_TCO_rtr_d_MASK 0x01000000
+#define TCO_QUAD0_DEBUG1_TCB_TCO_xfc_q_MASK 0x02000000
+#define TCO_QUAD0_DEBUG1_rl_sg_rtr_MASK 0x04000000
+#define TCO_QUAD0_DEBUG1_rl_sg_rts_MASK 0x08000000
+#define TCO_QUAD0_DEBUG1_sg_crd_rtr_MASK 0x10000000
+#define TCO_QUAD0_DEBUG1_sg_crd_rts_MASK 0x20000000
+#define TCO_QUAD0_DEBUG1_TCO_TCB_read_xfc_MASK 0x40000000
+
+#define TCO_QUAD0_DEBUG1_MASK \
+ (TCO_QUAD0_DEBUG1_fifo_busy_MASK | \
+ TCO_QUAD0_DEBUG1_empty_MASK | \
+ TCO_QUAD0_DEBUG1_full_MASK | \
+ TCO_QUAD0_DEBUG1_write_enable_MASK | \
+ TCO_QUAD0_DEBUG1_fifo_write_ptr_MASK | \
+ TCO_QUAD0_DEBUG1_fifo_read_ptr_MASK | \
+ TCO_QUAD0_DEBUG1_cache_read_busy_MASK | \
+ TCO_QUAD0_DEBUG1_latency_fifo_busy_MASK | \
+ TCO_QUAD0_DEBUG1_input_quad_busy_MASK | \
+ TCO_QUAD0_DEBUG1_tco_quad_pipe_busy_MASK | \
+ TCO_QUAD0_DEBUG1_TCB_TCO_rtr_d_MASK | \
+ TCO_QUAD0_DEBUG1_TCB_TCO_xfc_q_MASK | \
+ TCO_QUAD0_DEBUG1_rl_sg_rtr_MASK | \
+ TCO_QUAD0_DEBUG1_rl_sg_rts_MASK | \
+ TCO_QUAD0_DEBUG1_sg_crd_rtr_MASK | \
+ TCO_QUAD0_DEBUG1_sg_crd_rts_MASK | \
+ TCO_QUAD0_DEBUG1_TCO_TCB_read_xfc_MASK)
+
+#define TCO_QUAD0_DEBUG1(fifo_busy, empty, full, write_enable, fifo_write_ptr, fifo_read_ptr, cache_read_busy, latency_fifo_busy, input_quad_busy, tco_quad_pipe_busy, tcb_tco_rtr_d, tcb_tco_xfc_q, rl_sg_rtr, rl_sg_rts, sg_crd_rtr, sg_crd_rts, tco_tcb_read_xfc) \
+ ((fifo_busy << TCO_QUAD0_DEBUG1_fifo_busy_SHIFT) | \
+ (empty << TCO_QUAD0_DEBUG1_empty_SHIFT) | \
+ (full << TCO_QUAD0_DEBUG1_full_SHIFT) | \
+ (write_enable << TCO_QUAD0_DEBUG1_write_enable_SHIFT) | \
+ (fifo_write_ptr << TCO_QUAD0_DEBUG1_fifo_write_ptr_SHIFT) | \
+ (fifo_read_ptr << TCO_QUAD0_DEBUG1_fifo_read_ptr_SHIFT) | \
+ (cache_read_busy << TCO_QUAD0_DEBUG1_cache_read_busy_SHIFT) | \
+ (latency_fifo_busy << TCO_QUAD0_DEBUG1_latency_fifo_busy_SHIFT) | \
+ (input_quad_busy << TCO_QUAD0_DEBUG1_input_quad_busy_SHIFT) | \
+ (tco_quad_pipe_busy << TCO_QUAD0_DEBUG1_tco_quad_pipe_busy_SHIFT) | \
+ (tcb_tco_rtr_d << TCO_QUAD0_DEBUG1_TCB_TCO_rtr_d_SHIFT) | \
+ (tcb_tco_xfc_q << TCO_QUAD0_DEBUG1_TCB_TCO_xfc_q_SHIFT) | \
+ (rl_sg_rtr << TCO_QUAD0_DEBUG1_rl_sg_rtr_SHIFT) | \
+ (rl_sg_rts << TCO_QUAD0_DEBUG1_rl_sg_rts_SHIFT) | \
+ (sg_crd_rtr << TCO_QUAD0_DEBUG1_sg_crd_rtr_SHIFT) | \
+ (sg_crd_rts << TCO_QUAD0_DEBUG1_sg_crd_rts_SHIFT) | \
+ (tco_tcb_read_xfc << TCO_QUAD0_DEBUG1_TCO_TCB_read_xfc_SHIFT))
+
+#define TCO_QUAD0_DEBUG1_GET_fifo_busy(tco_quad0_debug1) \
+ ((tco_quad0_debug1 & TCO_QUAD0_DEBUG1_fifo_busy_MASK) >> TCO_QUAD0_DEBUG1_fifo_busy_SHIFT)
+#define TCO_QUAD0_DEBUG1_GET_empty(tco_quad0_debug1) \
+ ((tco_quad0_debug1 & TCO_QUAD0_DEBUG1_empty_MASK) >> TCO_QUAD0_DEBUG1_empty_SHIFT)
+#define TCO_QUAD0_DEBUG1_GET_full(tco_quad0_debug1) \
+ ((tco_quad0_debug1 & TCO_QUAD0_DEBUG1_full_MASK) >> TCO_QUAD0_DEBUG1_full_SHIFT)
+#define TCO_QUAD0_DEBUG1_GET_write_enable(tco_quad0_debug1) \
+ ((tco_quad0_debug1 & TCO_QUAD0_DEBUG1_write_enable_MASK) >> TCO_QUAD0_DEBUG1_write_enable_SHIFT)
+#define TCO_QUAD0_DEBUG1_GET_fifo_write_ptr(tco_quad0_debug1) \
+ ((tco_quad0_debug1 & TCO_QUAD0_DEBUG1_fifo_write_ptr_MASK) >> TCO_QUAD0_DEBUG1_fifo_write_ptr_SHIFT)
+#define TCO_QUAD0_DEBUG1_GET_fifo_read_ptr(tco_quad0_debug1) \
+ ((tco_quad0_debug1 & TCO_QUAD0_DEBUG1_fifo_read_ptr_MASK) >> TCO_QUAD0_DEBUG1_fifo_read_ptr_SHIFT)
+#define TCO_QUAD0_DEBUG1_GET_cache_read_busy(tco_quad0_debug1) \
+ ((tco_quad0_debug1 & TCO_QUAD0_DEBUG1_cache_read_busy_MASK) >> TCO_QUAD0_DEBUG1_cache_read_busy_SHIFT)
+#define TCO_QUAD0_DEBUG1_GET_latency_fifo_busy(tco_quad0_debug1) \
+ ((tco_quad0_debug1 & TCO_QUAD0_DEBUG1_latency_fifo_busy_MASK) >> TCO_QUAD0_DEBUG1_latency_fifo_busy_SHIFT)
+#define TCO_QUAD0_DEBUG1_GET_input_quad_busy(tco_quad0_debug1) \
+ ((tco_quad0_debug1 & TCO_QUAD0_DEBUG1_input_quad_busy_MASK) >> TCO_QUAD0_DEBUG1_input_quad_busy_SHIFT)
+#define TCO_QUAD0_DEBUG1_GET_tco_quad_pipe_busy(tco_quad0_debug1) \
+ ((tco_quad0_debug1 & TCO_QUAD0_DEBUG1_tco_quad_pipe_busy_MASK) >> TCO_QUAD0_DEBUG1_tco_quad_pipe_busy_SHIFT)
+#define TCO_QUAD0_DEBUG1_GET_TCB_TCO_rtr_d(tco_quad0_debug1) \
+ ((tco_quad0_debug1 & TCO_QUAD0_DEBUG1_TCB_TCO_rtr_d_MASK) >> TCO_QUAD0_DEBUG1_TCB_TCO_rtr_d_SHIFT)
+#define TCO_QUAD0_DEBUG1_GET_TCB_TCO_xfc_q(tco_quad0_debug1) \
+ ((tco_quad0_debug1 & TCO_QUAD0_DEBUG1_TCB_TCO_xfc_q_MASK) >> TCO_QUAD0_DEBUG1_TCB_TCO_xfc_q_SHIFT)
+#define TCO_QUAD0_DEBUG1_GET_rl_sg_rtr(tco_quad0_debug1) \
+ ((tco_quad0_debug1 & TCO_QUAD0_DEBUG1_rl_sg_rtr_MASK) >> TCO_QUAD0_DEBUG1_rl_sg_rtr_SHIFT)
+#define TCO_QUAD0_DEBUG1_GET_rl_sg_rts(tco_quad0_debug1) \
+ ((tco_quad0_debug1 & TCO_QUAD0_DEBUG1_rl_sg_rts_MASK) >> TCO_QUAD0_DEBUG1_rl_sg_rts_SHIFT)
+#define TCO_QUAD0_DEBUG1_GET_sg_crd_rtr(tco_quad0_debug1) \
+ ((tco_quad0_debug1 & TCO_QUAD0_DEBUG1_sg_crd_rtr_MASK) >> TCO_QUAD0_DEBUG1_sg_crd_rtr_SHIFT)
+#define TCO_QUAD0_DEBUG1_GET_sg_crd_rts(tco_quad0_debug1) \
+ ((tco_quad0_debug1 & TCO_QUAD0_DEBUG1_sg_crd_rts_MASK) >> TCO_QUAD0_DEBUG1_sg_crd_rts_SHIFT)
+#define TCO_QUAD0_DEBUG1_GET_TCO_TCB_read_xfc(tco_quad0_debug1) \
+ ((tco_quad0_debug1 & TCO_QUAD0_DEBUG1_TCO_TCB_read_xfc_MASK) >> TCO_QUAD0_DEBUG1_TCO_TCB_read_xfc_SHIFT)
+
+#define TCO_QUAD0_DEBUG1_SET_fifo_busy(tco_quad0_debug1_reg, fifo_busy) \
+ tco_quad0_debug1_reg = (tco_quad0_debug1_reg & ~TCO_QUAD0_DEBUG1_fifo_busy_MASK) | (fifo_busy << TCO_QUAD0_DEBUG1_fifo_busy_SHIFT)
+#define TCO_QUAD0_DEBUG1_SET_empty(tco_quad0_debug1_reg, empty) \
+ tco_quad0_debug1_reg = (tco_quad0_debug1_reg & ~TCO_QUAD0_DEBUG1_empty_MASK) | (empty << TCO_QUAD0_DEBUG1_empty_SHIFT)
+#define TCO_QUAD0_DEBUG1_SET_full(tco_quad0_debug1_reg, full) \
+ tco_quad0_debug1_reg = (tco_quad0_debug1_reg & ~TCO_QUAD0_DEBUG1_full_MASK) | (full << TCO_QUAD0_DEBUG1_full_SHIFT)
+#define TCO_QUAD0_DEBUG1_SET_write_enable(tco_quad0_debug1_reg, write_enable) \
+ tco_quad0_debug1_reg = (tco_quad0_debug1_reg & ~TCO_QUAD0_DEBUG1_write_enable_MASK) | (write_enable << TCO_QUAD0_DEBUG1_write_enable_SHIFT)
+#define TCO_QUAD0_DEBUG1_SET_fifo_write_ptr(tco_quad0_debug1_reg, fifo_write_ptr) \
+ tco_quad0_debug1_reg = (tco_quad0_debug1_reg & ~TCO_QUAD0_DEBUG1_fifo_write_ptr_MASK) | (fifo_write_ptr << TCO_QUAD0_DEBUG1_fifo_write_ptr_SHIFT)
+#define TCO_QUAD0_DEBUG1_SET_fifo_read_ptr(tco_quad0_debug1_reg, fifo_read_ptr) \
+ tco_quad0_debug1_reg = (tco_quad0_debug1_reg & ~TCO_QUAD0_DEBUG1_fifo_read_ptr_MASK) | (fifo_read_ptr << TCO_QUAD0_DEBUG1_fifo_read_ptr_SHIFT)
+#define TCO_QUAD0_DEBUG1_SET_cache_read_busy(tco_quad0_debug1_reg, cache_read_busy) \
+ tco_quad0_debug1_reg = (tco_quad0_debug1_reg & ~TCO_QUAD0_DEBUG1_cache_read_busy_MASK) | (cache_read_busy << TCO_QUAD0_DEBUG1_cache_read_busy_SHIFT)
+#define TCO_QUAD0_DEBUG1_SET_latency_fifo_busy(tco_quad0_debug1_reg, latency_fifo_busy) \
+ tco_quad0_debug1_reg = (tco_quad0_debug1_reg & ~TCO_QUAD0_DEBUG1_latency_fifo_busy_MASK) | (latency_fifo_busy << TCO_QUAD0_DEBUG1_latency_fifo_busy_SHIFT)
+#define TCO_QUAD0_DEBUG1_SET_input_quad_busy(tco_quad0_debug1_reg, input_quad_busy) \
+ tco_quad0_debug1_reg = (tco_quad0_debug1_reg & ~TCO_QUAD0_DEBUG1_input_quad_busy_MASK) | (input_quad_busy << TCO_QUAD0_DEBUG1_input_quad_busy_SHIFT)
+#define TCO_QUAD0_DEBUG1_SET_tco_quad_pipe_busy(tco_quad0_debug1_reg, tco_quad_pipe_busy) \
+ tco_quad0_debug1_reg = (tco_quad0_debug1_reg & ~TCO_QUAD0_DEBUG1_tco_quad_pipe_busy_MASK) | (tco_quad_pipe_busy << TCO_QUAD0_DEBUG1_tco_quad_pipe_busy_SHIFT)
+#define TCO_QUAD0_DEBUG1_SET_TCB_TCO_rtr_d(tco_quad0_debug1_reg, tcb_tco_rtr_d) \
+ tco_quad0_debug1_reg = (tco_quad0_debug1_reg & ~TCO_QUAD0_DEBUG1_TCB_TCO_rtr_d_MASK) | (tcb_tco_rtr_d << TCO_QUAD0_DEBUG1_TCB_TCO_rtr_d_SHIFT)
+#define TCO_QUAD0_DEBUG1_SET_TCB_TCO_xfc_q(tco_quad0_debug1_reg, tcb_tco_xfc_q) \
+ tco_quad0_debug1_reg = (tco_quad0_debug1_reg & ~TCO_QUAD0_DEBUG1_TCB_TCO_xfc_q_MASK) | (tcb_tco_xfc_q << TCO_QUAD0_DEBUG1_TCB_TCO_xfc_q_SHIFT)
+#define TCO_QUAD0_DEBUG1_SET_rl_sg_rtr(tco_quad0_debug1_reg, rl_sg_rtr) \
+ tco_quad0_debug1_reg = (tco_quad0_debug1_reg & ~TCO_QUAD0_DEBUG1_rl_sg_rtr_MASK) | (rl_sg_rtr << TCO_QUAD0_DEBUG1_rl_sg_rtr_SHIFT)
+#define TCO_QUAD0_DEBUG1_SET_rl_sg_rts(tco_quad0_debug1_reg, rl_sg_rts) \
+ tco_quad0_debug1_reg = (tco_quad0_debug1_reg & ~TCO_QUAD0_DEBUG1_rl_sg_rts_MASK) | (rl_sg_rts << TCO_QUAD0_DEBUG1_rl_sg_rts_SHIFT)
+#define TCO_QUAD0_DEBUG1_SET_sg_crd_rtr(tco_quad0_debug1_reg, sg_crd_rtr) \
+ tco_quad0_debug1_reg = (tco_quad0_debug1_reg & ~TCO_QUAD0_DEBUG1_sg_crd_rtr_MASK) | (sg_crd_rtr << TCO_QUAD0_DEBUG1_sg_crd_rtr_SHIFT)
+#define TCO_QUAD0_DEBUG1_SET_sg_crd_rts(tco_quad0_debug1_reg, sg_crd_rts) \
+ tco_quad0_debug1_reg = (tco_quad0_debug1_reg & ~TCO_QUAD0_DEBUG1_sg_crd_rts_MASK) | (sg_crd_rts << TCO_QUAD0_DEBUG1_sg_crd_rts_SHIFT)
+#define TCO_QUAD0_DEBUG1_SET_TCO_TCB_read_xfc(tco_quad0_debug1_reg, tco_tcb_read_xfc) \
+ tco_quad0_debug1_reg = (tco_quad0_debug1_reg & ~TCO_QUAD0_DEBUG1_TCO_TCB_read_xfc_MASK) | (tco_tcb_read_xfc << TCO_QUAD0_DEBUG1_TCO_TCB_read_xfc_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tco_quad0_debug1_t {
+ unsigned int fifo_busy : TCO_QUAD0_DEBUG1_fifo_busy_SIZE;
+ unsigned int empty : TCO_QUAD0_DEBUG1_empty_SIZE;
+ unsigned int full : TCO_QUAD0_DEBUG1_full_SIZE;
+ unsigned int write_enable : TCO_QUAD0_DEBUG1_write_enable_SIZE;
+ unsigned int fifo_write_ptr : TCO_QUAD0_DEBUG1_fifo_write_ptr_SIZE;
+ unsigned int fifo_read_ptr : TCO_QUAD0_DEBUG1_fifo_read_ptr_SIZE;
+ unsigned int : 2;
+ unsigned int cache_read_busy : TCO_QUAD0_DEBUG1_cache_read_busy_SIZE;
+ unsigned int latency_fifo_busy : TCO_QUAD0_DEBUG1_latency_fifo_busy_SIZE;
+ unsigned int input_quad_busy : TCO_QUAD0_DEBUG1_input_quad_busy_SIZE;
+ unsigned int tco_quad_pipe_busy : TCO_QUAD0_DEBUG1_tco_quad_pipe_busy_SIZE;
+ unsigned int tcb_tco_rtr_d : TCO_QUAD0_DEBUG1_TCB_TCO_rtr_d_SIZE;
+ unsigned int tcb_tco_xfc_q : TCO_QUAD0_DEBUG1_TCB_TCO_xfc_q_SIZE;
+ unsigned int rl_sg_rtr : TCO_QUAD0_DEBUG1_rl_sg_rtr_SIZE;
+ unsigned int rl_sg_rts : TCO_QUAD0_DEBUG1_rl_sg_rts_SIZE;
+ unsigned int sg_crd_rtr : TCO_QUAD0_DEBUG1_sg_crd_rtr_SIZE;
+ unsigned int sg_crd_rts : TCO_QUAD0_DEBUG1_sg_crd_rts_SIZE;
+ unsigned int tco_tcb_read_xfc : TCO_QUAD0_DEBUG1_TCO_TCB_read_xfc_SIZE;
+ unsigned int : 1;
+ } tco_quad0_debug1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tco_quad0_debug1_t {
+ unsigned int : 1;
+ unsigned int tco_tcb_read_xfc : TCO_QUAD0_DEBUG1_TCO_TCB_read_xfc_SIZE;
+ unsigned int sg_crd_rts : TCO_QUAD0_DEBUG1_sg_crd_rts_SIZE;
+ unsigned int sg_crd_rtr : TCO_QUAD0_DEBUG1_sg_crd_rtr_SIZE;
+ unsigned int rl_sg_rts : TCO_QUAD0_DEBUG1_rl_sg_rts_SIZE;
+ unsigned int rl_sg_rtr : TCO_QUAD0_DEBUG1_rl_sg_rtr_SIZE;
+ unsigned int tcb_tco_xfc_q : TCO_QUAD0_DEBUG1_TCB_TCO_xfc_q_SIZE;
+ unsigned int tcb_tco_rtr_d : TCO_QUAD0_DEBUG1_TCB_TCO_rtr_d_SIZE;
+ unsigned int tco_quad_pipe_busy : TCO_QUAD0_DEBUG1_tco_quad_pipe_busy_SIZE;
+ unsigned int input_quad_busy : TCO_QUAD0_DEBUG1_input_quad_busy_SIZE;
+ unsigned int latency_fifo_busy : TCO_QUAD0_DEBUG1_latency_fifo_busy_SIZE;
+ unsigned int cache_read_busy : TCO_QUAD0_DEBUG1_cache_read_busy_SIZE;
+ unsigned int : 2;
+ unsigned int fifo_read_ptr : TCO_QUAD0_DEBUG1_fifo_read_ptr_SIZE;
+ unsigned int fifo_write_ptr : TCO_QUAD0_DEBUG1_fifo_write_ptr_SIZE;
+ unsigned int write_enable : TCO_QUAD0_DEBUG1_write_enable_SIZE;
+ unsigned int full : TCO_QUAD0_DEBUG1_full_SIZE;
+ unsigned int empty : TCO_QUAD0_DEBUG1_empty_SIZE;
+ unsigned int fifo_busy : TCO_QUAD0_DEBUG1_fifo_busy_SIZE;
+ } tco_quad0_debug1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tco_quad0_debug1_t f;
+} tco_quad0_debug1_u;
+
+
+#endif
+
+
+#if !defined (_TC_FIDDLE_H)
+#define _TC_FIDDLE_H
+
+/*******************************************************
+ * Enums
+ *******************************************************/
+
+
+/*******************************************************
+ * Values
+ *******************************************************/
+
+
+/*******************************************************
+ * Structures
+ *******************************************************/
+
+#endif
+
+
+#if !defined (_SC_FIDDLE_H)
+#define _SC_FIDDLE_H
+
+/*******************************************************
+ * Enums
+ *******************************************************/
+
+
+/*******************************************************
+ * Values
+ *******************************************************/
+
+
+/*******************************************************
+ * Structures
+ *******************************************************/
+
+#endif
+
+
+#if !defined (_BC_FIDDLE_H)
+#define _BC_FIDDLE_H
+
+/*******************************************************
+ * Enums
+ *******************************************************/
+
+
+/*******************************************************
+ * Values
+ *******************************************************/
+
+
+/*******************************************************
+ * Structures
+ *******************************************************/
+
+/*
+ * RB_SURFACE_INFO struct
+ */
+
+#define RB_SURFACE_INFO_SURFACE_PITCH_SIZE 14
+#define RB_SURFACE_INFO_MSAA_SAMPLES_SIZE 2
+
+#define RB_SURFACE_INFO_SURFACE_PITCH_SHIFT 0
+#define RB_SURFACE_INFO_MSAA_SAMPLES_SHIFT 14
+
+#define RB_SURFACE_INFO_SURFACE_PITCH_MASK 0x00003fff
+#define RB_SURFACE_INFO_MSAA_SAMPLES_MASK 0x0000c000
+
+#define RB_SURFACE_INFO_MASK \
+ (RB_SURFACE_INFO_SURFACE_PITCH_MASK | \
+ RB_SURFACE_INFO_MSAA_SAMPLES_MASK)
+
+#define RB_SURFACE_INFO(surface_pitch, msaa_samples) \
+ ((surface_pitch << RB_SURFACE_INFO_SURFACE_PITCH_SHIFT) | \
+ (msaa_samples << RB_SURFACE_INFO_MSAA_SAMPLES_SHIFT))
+
+#define RB_SURFACE_INFO_GET_SURFACE_PITCH(rb_surface_info) \
+ ((rb_surface_info & RB_SURFACE_INFO_SURFACE_PITCH_MASK) >> RB_SURFACE_INFO_SURFACE_PITCH_SHIFT)
+#define RB_SURFACE_INFO_GET_MSAA_SAMPLES(rb_surface_info) \
+ ((rb_surface_info & RB_SURFACE_INFO_MSAA_SAMPLES_MASK) >> RB_SURFACE_INFO_MSAA_SAMPLES_SHIFT)
+
+#define RB_SURFACE_INFO_SET_SURFACE_PITCH(rb_surface_info_reg, surface_pitch) \
+ rb_surface_info_reg = (rb_surface_info_reg & ~RB_SURFACE_INFO_SURFACE_PITCH_MASK) | (surface_pitch << RB_SURFACE_INFO_SURFACE_PITCH_SHIFT)
+#define RB_SURFACE_INFO_SET_MSAA_SAMPLES(rb_surface_info_reg, msaa_samples) \
+ rb_surface_info_reg = (rb_surface_info_reg & ~RB_SURFACE_INFO_MSAA_SAMPLES_MASK) | (msaa_samples << RB_SURFACE_INFO_MSAA_SAMPLES_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_surface_info_t {
+ unsigned int surface_pitch : RB_SURFACE_INFO_SURFACE_PITCH_SIZE;
+ unsigned int msaa_samples : RB_SURFACE_INFO_MSAA_SAMPLES_SIZE;
+ unsigned int : 16;
+ } rb_surface_info_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_surface_info_t {
+ unsigned int : 16;
+ unsigned int msaa_samples : RB_SURFACE_INFO_MSAA_SAMPLES_SIZE;
+ unsigned int surface_pitch : RB_SURFACE_INFO_SURFACE_PITCH_SIZE;
+ } rb_surface_info_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_surface_info_t f;
+} rb_surface_info_u;
+
+
+/*
+ * RB_COLOR_INFO struct
+ */
+
+#define RB_COLOR_INFO_COLOR_FORMAT_SIZE 4
+#define RB_COLOR_INFO_COLOR_ROUND_MODE_SIZE 2
+#define RB_COLOR_INFO_COLOR_LINEAR_SIZE 1
+#define RB_COLOR_INFO_COLOR_ENDIAN_SIZE 2
+#define RB_COLOR_INFO_COLOR_SWAP_SIZE 2
+#define RB_COLOR_INFO_COLOR_BASE_SIZE 20
+
+#define RB_COLOR_INFO_COLOR_FORMAT_SHIFT 0
+#define RB_COLOR_INFO_COLOR_ROUND_MODE_SHIFT 4
+#define RB_COLOR_INFO_COLOR_LINEAR_SHIFT 6
+#define RB_COLOR_INFO_COLOR_ENDIAN_SHIFT 7
+#define RB_COLOR_INFO_COLOR_SWAP_SHIFT 9
+#define RB_COLOR_INFO_COLOR_BASE_SHIFT 12
+
+#define RB_COLOR_INFO_COLOR_FORMAT_MASK 0x0000000f
+#define RB_COLOR_INFO_COLOR_ROUND_MODE_MASK 0x00000030
+#define RB_COLOR_INFO_COLOR_LINEAR_MASK 0x00000040
+#define RB_COLOR_INFO_COLOR_ENDIAN_MASK 0x00000180
+#define RB_COLOR_INFO_COLOR_SWAP_MASK 0x00000600
+#define RB_COLOR_INFO_COLOR_BASE_MASK 0xfffff000
+
+#define RB_COLOR_INFO_MASK \
+ (RB_COLOR_INFO_COLOR_FORMAT_MASK | \
+ RB_COLOR_INFO_COLOR_ROUND_MODE_MASK | \
+ RB_COLOR_INFO_COLOR_LINEAR_MASK | \
+ RB_COLOR_INFO_COLOR_ENDIAN_MASK | \
+ RB_COLOR_INFO_COLOR_SWAP_MASK | \
+ RB_COLOR_INFO_COLOR_BASE_MASK)
+
+#define RB_COLOR_INFO(color_format, color_round_mode, color_linear, color_endian, color_swap, color_base) \
+ ((color_format << RB_COLOR_INFO_COLOR_FORMAT_SHIFT) | \
+ (color_round_mode << RB_COLOR_INFO_COLOR_ROUND_MODE_SHIFT) | \
+ (color_linear << RB_COLOR_INFO_COLOR_LINEAR_SHIFT) | \
+ (color_endian << RB_COLOR_INFO_COLOR_ENDIAN_SHIFT) | \
+ (color_swap << RB_COLOR_INFO_COLOR_SWAP_SHIFT) | \
+ (color_base << RB_COLOR_INFO_COLOR_BASE_SHIFT))
+
+#define RB_COLOR_INFO_GET_COLOR_FORMAT(rb_color_info) \
+ ((rb_color_info & RB_COLOR_INFO_COLOR_FORMAT_MASK) >> RB_COLOR_INFO_COLOR_FORMAT_SHIFT)
+#define RB_COLOR_INFO_GET_COLOR_ROUND_MODE(rb_color_info) \
+ ((rb_color_info & RB_COLOR_INFO_COLOR_ROUND_MODE_MASK) >> RB_COLOR_INFO_COLOR_ROUND_MODE_SHIFT)
+#define RB_COLOR_INFO_GET_COLOR_LINEAR(rb_color_info) \
+ ((rb_color_info & RB_COLOR_INFO_COLOR_LINEAR_MASK) >> RB_COLOR_INFO_COLOR_LINEAR_SHIFT)
+#define RB_COLOR_INFO_GET_COLOR_ENDIAN(rb_color_info) \
+ ((rb_color_info & RB_COLOR_INFO_COLOR_ENDIAN_MASK) >> RB_COLOR_INFO_COLOR_ENDIAN_SHIFT)
+#define RB_COLOR_INFO_GET_COLOR_SWAP(rb_color_info) \
+ ((rb_color_info & RB_COLOR_INFO_COLOR_SWAP_MASK) >> RB_COLOR_INFO_COLOR_SWAP_SHIFT)
+#define RB_COLOR_INFO_GET_COLOR_BASE(rb_color_info) \
+ ((rb_color_info & RB_COLOR_INFO_COLOR_BASE_MASK) >> RB_COLOR_INFO_COLOR_BASE_SHIFT)
+
+#define RB_COLOR_INFO_SET_COLOR_FORMAT(rb_color_info_reg, color_format) \
+ rb_color_info_reg = (rb_color_info_reg & ~RB_COLOR_INFO_COLOR_FORMAT_MASK) | (color_format << RB_COLOR_INFO_COLOR_FORMAT_SHIFT)
+#define RB_COLOR_INFO_SET_COLOR_ROUND_MODE(rb_color_info_reg, color_round_mode) \
+ rb_color_info_reg = (rb_color_info_reg & ~RB_COLOR_INFO_COLOR_ROUND_MODE_MASK) | (color_round_mode << RB_COLOR_INFO_COLOR_ROUND_MODE_SHIFT)
+#define RB_COLOR_INFO_SET_COLOR_LINEAR(rb_color_info_reg, color_linear) \
+ rb_color_info_reg = (rb_color_info_reg & ~RB_COLOR_INFO_COLOR_LINEAR_MASK) | (color_linear << RB_COLOR_INFO_COLOR_LINEAR_SHIFT)
+#define RB_COLOR_INFO_SET_COLOR_ENDIAN(rb_color_info_reg, color_endian) \
+ rb_color_info_reg = (rb_color_info_reg & ~RB_COLOR_INFO_COLOR_ENDIAN_MASK) | (color_endian << RB_COLOR_INFO_COLOR_ENDIAN_SHIFT)
+#define RB_COLOR_INFO_SET_COLOR_SWAP(rb_color_info_reg, color_swap) \
+ rb_color_info_reg = (rb_color_info_reg & ~RB_COLOR_INFO_COLOR_SWAP_MASK) | (color_swap << RB_COLOR_INFO_COLOR_SWAP_SHIFT)
+#define RB_COLOR_INFO_SET_COLOR_BASE(rb_color_info_reg, color_base) \
+ rb_color_info_reg = (rb_color_info_reg & ~RB_COLOR_INFO_COLOR_BASE_MASK) | (color_base << RB_COLOR_INFO_COLOR_BASE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_color_info_t {
+ unsigned int color_format : RB_COLOR_INFO_COLOR_FORMAT_SIZE;
+ unsigned int color_round_mode : RB_COLOR_INFO_COLOR_ROUND_MODE_SIZE;
+ unsigned int color_linear : RB_COLOR_INFO_COLOR_LINEAR_SIZE;
+ unsigned int color_endian : RB_COLOR_INFO_COLOR_ENDIAN_SIZE;
+ unsigned int color_swap : RB_COLOR_INFO_COLOR_SWAP_SIZE;
+ unsigned int : 1;
+ unsigned int color_base : RB_COLOR_INFO_COLOR_BASE_SIZE;
+ } rb_color_info_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_color_info_t {
+ unsigned int color_base : RB_COLOR_INFO_COLOR_BASE_SIZE;
+ unsigned int : 1;
+ unsigned int color_swap : RB_COLOR_INFO_COLOR_SWAP_SIZE;
+ unsigned int color_endian : RB_COLOR_INFO_COLOR_ENDIAN_SIZE;
+ unsigned int color_linear : RB_COLOR_INFO_COLOR_LINEAR_SIZE;
+ unsigned int color_round_mode : RB_COLOR_INFO_COLOR_ROUND_MODE_SIZE;
+ unsigned int color_format : RB_COLOR_INFO_COLOR_FORMAT_SIZE;
+ } rb_color_info_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_color_info_t f;
+} rb_color_info_u;
+
+
+/*
+ * RB_DEPTH_INFO struct
+ */
+
+#define RB_DEPTH_INFO_DEPTH_FORMAT_SIZE 1
+#define RB_DEPTH_INFO_DEPTH_BASE_SIZE 20
+
+#define RB_DEPTH_INFO_DEPTH_FORMAT_SHIFT 0
+#define RB_DEPTH_INFO_DEPTH_BASE_SHIFT 12
+
+#define RB_DEPTH_INFO_DEPTH_FORMAT_MASK 0x00000001
+#define RB_DEPTH_INFO_DEPTH_BASE_MASK 0xfffff000
+
+#define RB_DEPTH_INFO_MASK \
+ (RB_DEPTH_INFO_DEPTH_FORMAT_MASK | \
+ RB_DEPTH_INFO_DEPTH_BASE_MASK)
+
+#define RB_DEPTH_INFO(depth_format, depth_base) \
+ ((depth_format << RB_DEPTH_INFO_DEPTH_FORMAT_SHIFT) | \
+ (depth_base << RB_DEPTH_INFO_DEPTH_BASE_SHIFT))
+
+#define RB_DEPTH_INFO_GET_DEPTH_FORMAT(rb_depth_info) \
+ ((rb_depth_info & RB_DEPTH_INFO_DEPTH_FORMAT_MASK) >> RB_DEPTH_INFO_DEPTH_FORMAT_SHIFT)
+#define RB_DEPTH_INFO_GET_DEPTH_BASE(rb_depth_info) \
+ ((rb_depth_info & RB_DEPTH_INFO_DEPTH_BASE_MASK) >> RB_DEPTH_INFO_DEPTH_BASE_SHIFT)
+
+#define RB_DEPTH_INFO_SET_DEPTH_FORMAT(rb_depth_info_reg, depth_format) \
+ rb_depth_info_reg = (rb_depth_info_reg & ~RB_DEPTH_INFO_DEPTH_FORMAT_MASK) | (depth_format << RB_DEPTH_INFO_DEPTH_FORMAT_SHIFT)
+#define RB_DEPTH_INFO_SET_DEPTH_BASE(rb_depth_info_reg, depth_base) \
+ rb_depth_info_reg = (rb_depth_info_reg & ~RB_DEPTH_INFO_DEPTH_BASE_MASK) | (depth_base << RB_DEPTH_INFO_DEPTH_BASE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_depth_info_t {
+ unsigned int depth_format : RB_DEPTH_INFO_DEPTH_FORMAT_SIZE;
+ unsigned int : 11;
+ unsigned int depth_base : RB_DEPTH_INFO_DEPTH_BASE_SIZE;
+ } rb_depth_info_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_depth_info_t {
+ unsigned int depth_base : RB_DEPTH_INFO_DEPTH_BASE_SIZE;
+ unsigned int : 11;
+ unsigned int depth_format : RB_DEPTH_INFO_DEPTH_FORMAT_SIZE;
+ } rb_depth_info_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_depth_info_t f;
+} rb_depth_info_u;
+
+
+/*
+ * RB_STENCILREFMASK struct
+ */
+
+#define RB_STENCILREFMASK_STENCILREF_SIZE 8
+#define RB_STENCILREFMASK_STENCILMASK_SIZE 8
+#define RB_STENCILREFMASK_STENCILWRITEMASK_SIZE 8
+#define RB_STENCILREFMASK_RESERVED0_SIZE 1
+#define RB_STENCILREFMASK_RESERVED1_SIZE 1
+
+#define RB_STENCILREFMASK_STENCILREF_SHIFT 0
+#define RB_STENCILREFMASK_STENCILMASK_SHIFT 8
+#define RB_STENCILREFMASK_STENCILWRITEMASK_SHIFT 16
+#define RB_STENCILREFMASK_RESERVED0_SHIFT 24
+#define RB_STENCILREFMASK_RESERVED1_SHIFT 25
+
+#define RB_STENCILREFMASK_STENCILREF_MASK 0x000000ff
+#define RB_STENCILREFMASK_STENCILMASK_MASK 0x0000ff00
+#define RB_STENCILREFMASK_STENCILWRITEMASK_MASK 0x00ff0000
+#define RB_STENCILREFMASK_RESERVED0_MASK 0x01000000
+#define RB_STENCILREFMASK_RESERVED1_MASK 0x02000000
+
+#define RB_STENCILREFMASK_MASK \
+ (RB_STENCILREFMASK_STENCILREF_MASK | \
+ RB_STENCILREFMASK_STENCILMASK_MASK | \
+ RB_STENCILREFMASK_STENCILWRITEMASK_MASK | \
+ RB_STENCILREFMASK_RESERVED0_MASK | \
+ RB_STENCILREFMASK_RESERVED1_MASK)
+
+#define RB_STENCILREFMASK(stencilref, stencilmask, stencilwritemask, reserved0, reserved1) \
+ ((stencilref << RB_STENCILREFMASK_STENCILREF_SHIFT) | \
+ (stencilmask << RB_STENCILREFMASK_STENCILMASK_SHIFT) | \
+ (stencilwritemask << RB_STENCILREFMASK_STENCILWRITEMASK_SHIFT) | \
+ (reserved0 << RB_STENCILREFMASK_RESERVED0_SHIFT) | \
+ (reserved1 << RB_STENCILREFMASK_RESERVED1_SHIFT))
+
+#define RB_STENCILREFMASK_GET_STENCILREF(rb_stencilrefmask) \
+ ((rb_stencilrefmask & RB_STENCILREFMASK_STENCILREF_MASK) >> RB_STENCILREFMASK_STENCILREF_SHIFT)
+#define RB_STENCILREFMASK_GET_STENCILMASK(rb_stencilrefmask) \
+ ((rb_stencilrefmask & RB_STENCILREFMASK_STENCILMASK_MASK) >> RB_STENCILREFMASK_STENCILMASK_SHIFT)
+#define RB_STENCILREFMASK_GET_STENCILWRITEMASK(rb_stencilrefmask) \
+ ((rb_stencilrefmask & RB_STENCILREFMASK_STENCILWRITEMASK_MASK) >> RB_STENCILREFMASK_STENCILWRITEMASK_SHIFT)
+#define RB_STENCILREFMASK_GET_RESERVED0(rb_stencilrefmask) \
+ ((rb_stencilrefmask & RB_STENCILREFMASK_RESERVED0_MASK) >> RB_STENCILREFMASK_RESERVED0_SHIFT)
+#define RB_STENCILREFMASK_GET_RESERVED1(rb_stencilrefmask) \
+ ((rb_stencilrefmask & RB_STENCILREFMASK_RESERVED1_MASK) >> RB_STENCILREFMASK_RESERVED1_SHIFT)
+
+#define RB_STENCILREFMASK_SET_STENCILREF(rb_stencilrefmask_reg, stencilref) \
+ rb_stencilrefmask_reg = (rb_stencilrefmask_reg & ~RB_STENCILREFMASK_STENCILREF_MASK) | (stencilref << RB_STENCILREFMASK_STENCILREF_SHIFT)
+#define RB_STENCILREFMASK_SET_STENCILMASK(rb_stencilrefmask_reg, stencilmask) \
+ rb_stencilrefmask_reg = (rb_stencilrefmask_reg & ~RB_STENCILREFMASK_STENCILMASK_MASK) | (stencilmask << RB_STENCILREFMASK_STENCILMASK_SHIFT)
+#define RB_STENCILREFMASK_SET_STENCILWRITEMASK(rb_stencilrefmask_reg, stencilwritemask) \
+ rb_stencilrefmask_reg = (rb_stencilrefmask_reg & ~RB_STENCILREFMASK_STENCILWRITEMASK_MASK) | (stencilwritemask << RB_STENCILREFMASK_STENCILWRITEMASK_SHIFT)
+#define RB_STENCILREFMASK_SET_RESERVED0(rb_stencilrefmask_reg, reserved0) \
+ rb_stencilrefmask_reg = (rb_stencilrefmask_reg & ~RB_STENCILREFMASK_RESERVED0_MASK) | (reserved0 << RB_STENCILREFMASK_RESERVED0_SHIFT)
+#define RB_STENCILREFMASK_SET_RESERVED1(rb_stencilrefmask_reg, reserved1) \
+ rb_stencilrefmask_reg = (rb_stencilrefmask_reg & ~RB_STENCILREFMASK_RESERVED1_MASK) | (reserved1 << RB_STENCILREFMASK_RESERVED1_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_stencilrefmask_t {
+ unsigned int stencilref : RB_STENCILREFMASK_STENCILREF_SIZE;
+ unsigned int stencilmask : RB_STENCILREFMASK_STENCILMASK_SIZE;
+ unsigned int stencilwritemask : RB_STENCILREFMASK_STENCILWRITEMASK_SIZE;
+ unsigned int reserved0 : RB_STENCILREFMASK_RESERVED0_SIZE;
+ unsigned int reserved1 : RB_STENCILREFMASK_RESERVED1_SIZE;
+ unsigned int : 6;
+ } rb_stencilrefmask_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_stencilrefmask_t {
+ unsigned int : 6;
+ unsigned int reserved1 : RB_STENCILREFMASK_RESERVED1_SIZE;
+ unsigned int reserved0 : RB_STENCILREFMASK_RESERVED0_SIZE;
+ unsigned int stencilwritemask : RB_STENCILREFMASK_STENCILWRITEMASK_SIZE;
+ unsigned int stencilmask : RB_STENCILREFMASK_STENCILMASK_SIZE;
+ unsigned int stencilref : RB_STENCILREFMASK_STENCILREF_SIZE;
+ } rb_stencilrefmask_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_stencilrefmask_t f;
+} rb_stencilrefmask_u;
+
+
+/*
+ * RB_ALPHA_REF struct
+ */
+
+#define RB_ALPHA_REF_ALPHA_REF_SIZE 32
+
+#define RB_ALPHA_REF_ALPHA_REF_SHIFT 0
+
+#define RB_ALPHA_REF_ALPHA_REF_MASK 0xffffffff
+
+#define RB_ALPHA_REF_MASK \
+ (RB_ALPHA_REF_ALPHA_REF_MASK)
+
+#define RB_ALPHA_REF(alpha_ref) \
+ ((alpha_ref << RB_ALPHA_REF_ALPHA_REF_SHIFT))
+
+#define RB_ALPHA_REF_GET_ALPHA_REF(rb_alpha_ref) \
+ ((rb_alpha_ref & RB_ALPHA_REF_ALPHA_REF_MASK) >> RB_ALPHA_REF_ALPHA_REF_SHIFT)
+
+#define RB_ALPHA_REF_SET_ALPHA_REF(rb_alpha_ref_reg, alpha_ref) \
+ rb_alpha_ref_reg = (rb_alpha_ref_reg & ~RB_ALPHA_REF_ALPHA_REF_MASK) | (alpha_ref << RB_ALPHA_REF_ALPHA_REF_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_alpha_ref_t {
+ unsigned int alpha_ref : RB_ALPHA_REF_ALPHA_REF_SIZE;
+ } rb_alpha_ref_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_alpha_ref_t {
+ unsigned int alpha_ref : RB_ALPHA_REF_ALPHA_REF_SIZE;
+ } rb_alpha_ref_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_alpha_ref_t f;
+} rb_alpha_ref_u;
+
+
+/*
+ * RB_COLOR_MASK struct
+ */
+
+#define RB_COLOR_MASK_WRITE_RED_SIZE 1
+#define RB_COLOR_MASK_WRITE_GREEN_SIZE 1
+#define RB_COLOR_MASK_WRITE_BLUE_SIZE 1
+#define RB_COLOR_MASK_WRITE_ALPHA_SIZE 1
+#define RB_COLOR_MASK_RESERVED2_SIZE 1
+#define RB_COLOR_MASK_RESERVED3_SIZE 1
+
+#define RB_COLOR_MASK_WRITE_RED_SHIFT 0
+#define RB_COLOR_MASK_WRITE_GREEN_SHIFT 1
+#define RB_COLOR_MASK_WRITE_BLUE_SHIFT 2
+#define RB_COLOR_MASK_WRITE_ALPHA_SHIFT 3
+#define RB_COLOR_MASK_RESERVED2_SHIFT 4
+#define RB_COLOR_MASK_RESERVED3_SHIFT 5
+
+#define RB_COLOR_MASK_WRITE_RED_MASK 0x00000001
+#define RB_COLOR_MASK_WRITE_GREEN_MASK 0x00000002
+#define RB_COLOR_MASK_WRITE_BLUE_MASK 0x00000004
+#define RB_COLOR_MASK_WRITE_ALPHA_MASK 0x00000008
+#define RB_COLOR_MASK_RESERVED2_MASK 0x00000010
+#define RB_COLOR_MASK_RESERVED3_MASK 0x00000020
+
+#define RB_COLOR_MASK_MASK \
+ (RB_COLOR_MASK_WRITE_RED_MASK | \
+ RB_COLOR_MASK_WRITE_GREEN_MASK | \
+ RB_COLOR_MASK_WRITE_BLUE_MASK | \
+ RB_COLOR_MASK_WRITE_ALPHA_MASK | \
+ RB_COLOR_MASK_RESERVED2_MASK | \
+ RB_COLOR_MASK_RESERVED3_MASK)
+
+#define RB_COLOR_MASK(write_red, write_green, write_blue, write_alpha, reserved2, reserved3) \
+ ((write_red << RB_COLOR_MASK_WRITE_RED_SHIFT) | \
+ (write_green << RB_COLOR_MASK_WRITE_GREEN_SHIFT) | \
+ (write_blue << RB_COLOR_MASK_WRITE_BLUE_SHIFT) | \
+ (write_alpha << RB_COLOR_MASK_WRITE_ALPHA_SHIFT) | \
+ (reserved2 << RB_COLOR_MASK_RESERVED2_SHIFT) | \
+ (reserved3 << RB_COLOR_MASK_RESERVED3_SHIFT))
+
+#define RB_COLOR_MASK_GET_WRITE_RED(rb_color_mask) \
+ ((rb_color_mask & RB_COLOR_MASK_WRITE_RED_MASK) >> RB_COLOR_MASK_WRITE_RED_SHIFT)
+#define RB_COLOR_MASK_GET_WRITE_GREEN(rb_color_mask) \
+ ((rb_color_mask & RB_COLOR_MASK_WRITE_GREEN_MASK) >> RB_COLOR_MASK_WRITE_GREEN_SHIFT)
+#define RB_COLOR_MASK_GET_WRITE_BLUE(rb_color_mask) \
+ ((rb_color_mask & RB_COLOR_MASK_WRITE_BLUE_MASK) >> RB_COLOR_MASK_WRITE_BLUE_SHIFT)
+#define RB_COLOR_MASK_GET_WRITE_ALPHA(rb_color_mask) \
+ ((rb_color_mask & RB_COLOR_MASK_WRITE_ALPHA_MASK) >> RB_COLOR_MASK_WRITE_ALPHA_SHIFT)
+#define RB_COLOR_MASK_GET_RESERVED2(rb_color_mask) \
+ ((rb_color_mask & RB_COLOR_MASK_RESERVED2_MASK) >> RB_COLOR_MASK_RESERVED2_SHIFT)
+#define RB_COLOR_MASK_GET_RESERVED3(rb_color_mask) \
+ ((rb_color_mask & RB_COLOR_MASK_RESERVED3_MASK) >> RB_COLOR_MASK_RESERVED3_SHIFT)
+
+#define RB_COLOR_MASK_SET_WRITE_RED(rb_color_mask_reg, write_red) \
+ rb_color_mask_reg = (rb_color_mask_reg & ~RB_COLOR_MASK_WRITE_RED_MASK) | (write_red << RB_COLOR_MASK_WRITE_RED_SHIFT)
+#define RB_COLOR_MASK_SET_WRITE_GREEN(rb_color_mask_reg, write_green) \
+ rb_color_mask_reg = (rb_color_mask_reg & ~RB_COLOR_MASK_WRITE_GREEN_MASK) | (write_green << RB_COLOR_MASK_WRITE_GREEN_SHIFT)
+#define RB_COLOR_MASK_SET_WRITE_BLUE(rb_color_mask_reg, write_blue) \
+ rb_color_mask_reg = (rb_color_mask_reg & ~RB_COLOR_MASK_WRITE_BLUE_MASK) | (write_blue << RB_COLOR_MASK_WRITE_BLUE_SHIFT)
+#define RB_COLOR_MASK_SET_WRITE_ALPHA(rb_color_mask_reg, write_alpha) \
+ rb_color_mask_reg = (rb_color_mask_reg & ~RB_COLOR_MASK_WRITE_ALPHA_MASK) | (write_alpha << RB_COLOR_MASK_WRITE_ALPHA_SHIFT)
+#define RB_COLOR_MASK_SET_RESERVED2(rb_color_mask_reg, reserved2) \
+ rb_color_mask_reg = (rb_color_mask_reg & ~RB_COLOR_MASK_RESERVED2_MASK) | (reserved2 << RB_COLOR_MASK_RESERVED2_SHIFT)
+#define RB_COLOR_MASK_SET_RESERVED3(rb_color_mask_reg, reserved3) \
+ rb_color_mask_reg = (rb_color_mask_reg & ~RB_COLOR_MASK_RESERVED3_MASK) | (reserved3 << RB_COLOR_MASK_RESERVED3_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_color_mask_t {
+ unsigned int write_red : RB_COLOR_MASK_WRITE_RED_SIZE;
+ unsigned int write_green : RB_COLOR_MASK_WRITE_GREEN_SIZE;
+ unsigned int write_blue : RB_COLOR_MASK_WRITE_BLUE_SIZE;
+ unsigned int write_alpha : RB_COLOR_MASK_WRITE_ALPHA_SIZE;
+ unsigned int reserved2 : RB_COLOR_MASK_RESERVED2_SIZE;
+ unsigned int reserved3 : RB_COLOR_MASK_RESERVED3_SIZE;
+ unsigned int : 26;
+ } rb_color_mask_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_color_mask_t {
+ unsigned int : 26;
+ unsigned int reserved3 : RB_COLOR_MASK_RESERVED3_SIZE;
+ unsigned int reserved2 : RB_COLOR_MASK_RESERVED2_SIZE;
+ unsigned int write_alpha : RB_COLOR_MASK_WRITE_ALPHA_SIZE;
+ unsigned int write_blue : RB_COLOR_MASK_WRITE_BLUE_SIZE;
+ unsigned int write_green : RB_COLOR_MASK_WRITE_GREEN_SIZE;
+ unsigned int write_red : RB_COLOR_MASK_WRITE_RED_SIZE;
+ } rb_color_mask_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_color_mask_t f;
+} rb_color_mask_u;
+
+
+/*
+ * RB_BLEND_RED struct
+ */
+
+#define RB_BLEND_RED_BLEND_RED_SIZE 8
+
+#define RB_BLEND_RED_BLEND_RED_SHIFT 0
+
+#define RB_BLEND_RED_BLEND_RED_MASK 0x000000ff
+
+#define RB_BLEND_RED_MASK \
+ (RB_BLEND_RED_BLEND_RED_MASK)
+
+#define RB_BLEND_RED(blend_red) \
+ ((blend_red << RB_BLEND_RED_BLEND_RED_SHIFT))
+
+#define RB_BLEND_RED_GET_BLEND_RED(rb_blend_red) \
+ ((rb_blend_red & RB_BLEND_RED_BLEND_RED_MASK) >> RB_BLEND_RED_BLEND_RED_SHIFT)
+
+#define RB_BLEND_RED_SET_BLEND_RED(rb_blend_red_reg, blend_red) \
+ rb_blend_red_reg = (rb_blend_red_reg & ~RB_BLEND_RED_BLEND_RED_MASK) | (blend_red << RB_BLEND_RED_BLEND_RED_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_blend_red_t {
+ unsigned int blend_red : RB_BLEND_RED_BLEND_RED_SIZE;
+ unsigned int : 24;
+ } rb_blend_red_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_blend_red_t {
+ unsigned int : 24;
+ unsigned int blend_red : RB_BLEND_RED_BLEND_RED_SIZE;
+ } rb_blend_red_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_blend_red_t f;
+} rb_blend_red_u;
+
+
+/*
+ * RB_BLEND_GREEN struct
+ */
+
+#define RB_BLEND_GREEN_BLEND_GREEN_SIZE 8
+
+#define RB_BLEND_GREEN_BLEND_GREEN_SHIFT 0
+
+#define RB_BLEND_GREEN_BLEND_GREEN_MASK 0x000000ff
+
+#define RB_BLEND_GREEN_MASK \
+ (RB_BLEND_GREEN_BLEND_GREEN_MASK)
+
+#define RB_BLEND_GREEN(blend_green) \
+ ((blend_green << RB_BLEND_GREEN_BLEND_GREEN_SHIFT))
+
+#define RB_BLEND_GREEN_GET_BLEND_GREEN(rb_blend_green) \
+ ((rb_blend_green & RB_BLEND_GREEN_BLEND_GREEN_MASK) >> RB_BLEND_GREEN_BLEND_GREEN_SHIFT)
+
+#define RB_BLEND_GREEN_SET_BLEND_GREEN(rb_blend_green_reg, blend_green) \
+ rb_blend_green_reg = (rb_blend_green_reg & ~RB_BLEND_GREEN_BLEND_GREEN_MASK) | (blend_green << RB_BLEND_GREEN_BLEND_GREEN_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_blend_green_t {
+ unsigned int blend_green : RB_BLEND_GREEN_BLEND_GREEN_SIZE;
+ unsigned int : 24;
+ } rb_blend_green_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_blend_green_t {
+ unsigned int : 24;
+ unsigned int blend_green : RB_BLEND_GREEN_BLEND_GREEN_SIZE;
+ } rb_blend_green_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_blend_green_t f;
+} rb_blend_green_u;
+
+
+/*
+ * RB_BLEND_BLUE struct
+ */
+
+#define RB_BLEND_BLUE_BLEND_BLUE_SIZE 8
+
+#define RB_BLEND_BLUE_BLEND_BLUE_SHIFT 0
+
+#define RB_BLEND_BLUE_BLEND_BLUE_MASK 0x000000ff
+
+#define RB_BLEND_BLUE_MASK \
+ (RB_BLEND_BLUE_BLEND_BLUE_MASK)
+
+#define RB_BLEND_BLUE(blend_blue) \
+ ((blend_blue << RB_BLEND_BLUE_BLEND_BLUE_SHIFT))
+
+#define RB_BLEND_BLUE_GET_BLEND_BLUE(rb_blend_blue) \
+ ((rb_blend_blue & RB_BLEND_BLUE_BLEND_BLUE_MASK) >> RB_BLEND_BLUE_BLEND_BLUE_SHIFT)
+
+#define RB_BLEND_BLUE_SET_BLEND_BLUE(rb_blend_blue_reg, blend_blue) \
+ rb_blend_blue_reg = (rb_blend_blue_reg & ~RB_BLEND_BLUE_BLEND_BLUE_MASK) | (blend_blue << RB_BLEND_BLUE_BLEND_BLUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_blend_blue_t {
+ unsigned int blend_blue : RB_BLEND_BLUE_BLEND_BLUE_SIZE;
+ unsigned int : 24;
+ } rb_blend_blue_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_blend_blue_t {
+ unsigned int : 24;
+ unsigned int blend_blue : RB_BLEND_BLUE_BLEND_BLUE_SIZE;
+ } rb_blend_blue_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_blend_blue_t f;
+} rb_blend_blue_u;
+
+
+/*
+ * RB_BLEND_ALPHA struct
+ */
+
+#define RB_BLEND_ALPHA_BLEND_ALPHA_SIZE 8
+
+#define RB_BLEND_ALPHA_BLEND_ALPHA_SHIFT 0
+
+#define RB_BLEND_ALPHA_BLEND_ALPHA_MASK 0x000000ff
+
+#define RB_BLEND_ALPHA_MASK \
+ (RB_BLEND_ALPHA_BLEND_ALPHA_MASK)
+
+#define RB_BLEND_ALPHA(blend_alpha) \
+ ((blend_alpha << RB_BLEND_ALPHA_BLEND_ALPHA_SHIFT))
+
+#define RB_BLEND_ALPHA_GET_BLEND_ALPHA(rb_blend_alpha) \
+ ((rb_blend_alpha & RB_BLEND_ALPHA_BLEND_ALPHA_MASK) >> RB_BLEND_ALPHA_BLEND_ALPHA_SHIFT)
+
+#define RB_BLEND_ALPHA_SET_BLEND_ALPHA(rb_blend_alpha_reg, blend_alpha) \
+ rb_blend_alpha_reg = (rb_blend_alpha_reg & ~RB_BLEND_ALPHA_BLEND_ALPHA_MASK) | (blend_alpha << RB_BLEND_ALPHA_BLEND_ALPHA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_blend_alpha_t {
+ unsigned int blend_alpha : RB_BLEND_ALPHA_BLEND_ALPHA_SIZE;
+ unsigned int : 24;
+ } rb_blend_alpha_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_blend_alpha_t {
+ unsigned int : 24;
+ unsigned int blend_alpha : RB_BLEND_ALPHA_BLEND_ALPHA_SIZE;
+ } rb_blend_alpha_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_blend_alpha_t f;
+} rb_blend_alpha_u;
+
+
+/*
+ * RB_FOG_COLOR struct
+ */
+
+#define RB_FOG_COLOR_FOG_RED_SIZE 8
+#define RB_FOG_COLOR_FOG_GREEN_SIZE 8
+#define RB_FOG_COLOR_FOG_BLUE_SIZE 8
+
+#define RB_FOG_COLOR_FOG_RED_SHIFT 0
+#define RB_FOG_COLOR_FOG_GREEN_SHIFT 8
+#define RB_FOG_COLOR_FOG_BLUE_SHIFT 16
+
+#define RB_FOG_COLOR_FOG_RED_MASK 0x000000ff
+#define RB_FOG_COLOR_FOG_GREEN_MASK 0x0000ff00
+#define RB_FOG_COLOR_FOG_BLUE_MASK 0x00ff0000
+
+#define RB_FOG_COLOR_MASK \
+ (RB_FOG_COLOR_FOG_RED_MASK | \
+ RB_FOG_COLOR_FOG_GREEN_MASK | \
+ RB_FOG_COLOR_FOG_BLUE_MASK)
+
+#define RB_FOG_COLOR(fog_red, fog_green, fog_blue) \
+ ((fog_red << RB_FOG_COLOR_FOG_RED_SHIFT) | \
+ (fog_green << RB_FOG_COLOR_FOG_GREEN_SHIFT) | \
+ (fog_blue << RB_FOG_COLOR_FOG_BLUE_SHIFT))
+
+#define RB_FOG_COLOR_GET_FOG_RED(rb_fog_color) \
+ ((rb_fog_color & RB_FOG_COLOR_FOG_RED_MASK) >> RB_FOG_COLOR_FOG_RED_SHIFT)
+#define RB_FOG_COLOR_GET_FOG_GREEN(rb_fog_color) \
+ ((rb_fog_color & RB_FOG_COLOR_FOG_GREEN_MASK) >> RB_FOG_COLOR_FOG_GREEN_SHIFT)
+#define RB_FOG_COLOR_GET_FOG_BLUE(rb_fog_color) \
+ ((rb_fog_color & RB_FOG_COLOR_FOG_BLUE_MASK) >> RB_FOG_COLOR_FOG_BLUE_SHIFT)
+
+#define RB_FOG_COLOR_SET_FOG_RED(rb_fog_color_reg, fog_red) \
+ rb_fog_color_reg = (rb_fog_color_reg & ~RB_FOG_COLOR_FOG_RED_MASK) | (fog_red << RB_FOG_COLOR_FOG_RED_SHIFT)
+#define RB_FOG_COLOR_SET_FOG_GREEN(rb_fog_color_reg, fog_green) \
+ rb_fog_color_reg = (rb_fog_color_reg & ~RB_FOG_COLOR_FOG_GREEN_MASK) | (fog_green << RB_FOG_COLOR_FOG_GREEN_SHIFT)
+#define RB_FOG_COLOR_SET_FOG_BLUE(rb_fog_color_reg, fog_blue) \
+ rb_fog_color_reg = (rb_fog_color_reg & ~RB_FOG_COLOR_FOG_BLUE_MASK) | (fog_blue << RB_FOG_COLOR_FOG_BLUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_fog_color_t {
+ unsigned int fog_red : RB_FOG_COLOR_FOG_RED_SIZE;
+ unsigned int fog_green : RB_FOG_COLOR_FOG_GREEN_SIZE;
+ unsigned int fog_blue : RB_FOG_COLOR_FOG_BLUE_SIZE;
+ unsigned int : 8;
+ } rb_fog_color_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_fog_color_t {
+ unsigned int : 8;
+ unsigned int fog_blue : RB_FOG_COLOR_FOG_BLUE_SIZE;
+ unsigned int fog_green : RB_FOG_COLOR_FOG_GREEN_SIZE;
+ unsigned int fog_red : RB_FOG_COLOR_FOG_RED_SIZE;
+ } rb_fog_color_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_fog_color_t f;
+} rb_fog_color_u;
+
+
+/*
+ * RB_STENCILREFMASK_BF struct
+ */
+
+#define RB_STENCILREFMASK_BF_STENCILREF_BF_SIZE 8
+#define RB_STENCILREFMASK_BF_STENCILMASK_BF_SIZE 8
+#define RB_STENCILREFMASK_BF_STENCILWRITEMASK_BF_SIZE 8
+#define RB_STENCILREFMASK_BF_RESERVED4_SIZE 1
+#define RB_STENCILREFMASK_BF_RESERVED5_SIZE 1
+
+#define RB_STENCILREFMASK_BF_STENCILREF_BF_SHIFT 0
+#define RB_STENCILREFMASK_BF_STENCILMASK_BF_SHIFT 8
+#define RB_STENCILREFMASK_BF_STENCILWRITEMASK_BF_SHIFT 16
+#define RB_STENCILREFMASK_BF_RESERVED4_SHIFT 24
+#define RB_STENCILREFMASK_BF_RESERVED5_SHIFT 25
+
+#define RB_STENCILREFMASK_BF_STENCILREF_BF_MASK 0x000000ff
+#define RB_STENCILREFMASK_BF_STENCILMASK_BF_MASK 0x0000ff00
+#define RB_STENCILREFMASK_BF_STENCILWRITEMASK_BF_MASK 0x00ff0000
+#define RB_STENCILREFMASK_BF_RESERVED4_MASK 0x01000000
+#define RB_STENCILREFMASK_BF_RESERVED5_MASK 0x02000000
+
+#define RB_STENCILREFMASK_BF_MASK \
+ (RB_STENCILREFMASK_BF_STENCILREF_BF_MASK | \
+ RB_STENCILREFMASK_BF_STENCILMASK_BF_MASK | \
+ RB_STENCILREFMASK_BF_STENCILWRITEMASK_BF_MASK | \
+ RB_STENCILREFMASK_BF_RESERVED4_MASK | \
+ RB_STENCILREFMASK_BF_RESERVED5_MASK)
+
+#define RB_STENCILREFMASK_BF(stencilref_bf, stencilmask_bf, stencilwritemask_bf, reserved4, reserved5) \
+ ((stencilref_bf << RB_STENCILREFMASK_BF_STENCILREF_BF_SHIFT) | \
+ (stencilmask_bf << RB_STENCILREFMASK_BF_STENCILMASK_BF_SHIFT) | \
+ (stencilwritemask_bf << RB_STENCILREFMASK_BF_STENCILWRITEMASK_BF_SHIFT) | \
+ (reserved4 << RB_STENCILREFMASK_BF_RESERVED4_SHIFT) | \
+ (reserved5 << RB_STENCILREFMASK_BF_RESERVED5_SHIFT))
+
+#define RB_STENCILREFMASK_BF_GET_STENCILREF_BF(rb_stencilrefmask_bf) \
+ ((rb_stencilrefmask_bf & RB_STENCILREFMASK_BF_STENCILREF_BF_MASK) >> RB_STENCILREFMASK_BF_STENCILREF_BF_SHIFT)
+#define RB_STENCILREFMASK_BF_GET_STENCILMASK_BF(rb_stencilrefmask_bf) \
+ ((rb_stencilrefmask_bf & RB_STENCILREFMASK_BF_STENCILMASK_BF_MASK) >> RB_STENCILREFMASK_BF_STENCILMASK_BF_SHIFT)
+#define RB_STENCILREFMASK_BF_GET_STENCILWRITEMASK_BF(rb_stencilrefmask_bf) \
+ ((rb_stencilrefmask_bf & RB_STENCILREFMASK_BF_STENCILWRITEMASK_BF_MASK) >> RB_STENCILREFMASK_BF_STENCILWRITEMASK_BF_SHIFT)
+#define RB_STENCILREFMASK_BF_GET_RESERVED4(rb_stencilrefmask_bf) \
+ ((rb_stencilrefmask_bf & RB_STENCILREFMASK_BF_RESERVED4_MASK) >> RB_STENCILREFMASK_BF_RESERVED4_SHIFT)
+#define RB_STENCILREFMASK_BF_GET_RESERVED5(rb_stencilrefmask_bf) \
+ ((rb_stencilrefmask_bf & RB_STENCILREFMASK_BF_RESERVED5_MASK) >> RB_STENCILREFMASK_BF_RESERVED5_SHIFT)
+
+#define RB_STENCILREFMASK_BF_SET_STENCILREF_BF(rb_stencilrefmask_bf_reg, stencilref_bf) \
+ rb_stencilrefmask_bf_reg = (rb_stencilrefmask_bf_reg & ~RB_STENCILREFMASK_BF_STENCILREF_BF_MASK) | (stencilref_bf << RB_STENCILREFMASK_BF_STENCILREF_BF_SHIFT)
+#define RB_STENCILREFMASK_BF_SET_STENCILMASK_BF(rb_stencilrefmask_bf_reg, stencilmask_bf) \
+ rb_stencilrefmask_bf_reg = (rb_stencilrefmask_bf_reg & ~RB_STENCILREFMASK_BF_STENCILMASK_BF_MASK) | (stencilmask_bf << RB_STENCILREFMASK_BF_STENCILMASK_BF_SHIFT)
+#define RB_STENCILREFMASK_BF_SET_STENCILWRITEMASK_BF(rb_stencilrefmask_bf_reg, stencilwritemask_bf) \
+ rb_stencilrefmask_bf_reg = (rb_stencilrefmask_bf_reg & ~RB_STENCILREFMASK_BF_STENCILWRITEMASK_BF_MASK) | (stencilwritemask_bf << RB_STENCILREFMASK_BF_STENCILWRITEMASK_BF_SHIFT)
+#define RB_STENCILREFMASK_BF_SET_RESERVED4(rb_stencilrefmask_bf_reg, reserved4) \
+ rb_stencilrefmask_bf_reg = (rb_stencilrefmask_bf_reg & ~RB_STENCILREFMASK_BF_RESERVED4_MASK) | (reserved4 << RB_STENCILREFMASK_BF_RESERVED4_SHIFT)
+#define RB_STENCILREFMASK_BF_SET_RESERVED5(rb_stencilrefmask_bf_reg, reserved5) \
+ rb_stencilrefmask_bf_reg = (rb_stencilrefmask_bf_reg & ~RB_STENCILREFMASK_BF_RESERVED5_MASK) | (reserved5 << RB_STENCILREFMASK_BF_RESERVED5_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_stencilrefmask_bf_t {
+ unsigned int stencilref_bf : RB_STENCILREFMASK_BF_STENCILREF_BF_SIZE;
+ unsigned int stencilmask_bf : RB_STENCILREFMASK_BF_STENCILMASK_BF_SIZE;
+ unsigned int stencilwritemask_bf : RB_STENCILREFMASK_BF_STENCILWRITEMASK_BF_SIZE;
+ unsigned int reserved4 : RB_STENCILREFMASK_BF_RESERVED4_SIZE;
+ unsigned int reserved5 : RB_STENCILREFMASK_BF_RESERVED5_SIZE;
+ unsigned int : 6;
+ } rb_stencilrefmask_bf_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_stencilrefmask_bf_t {
+ unsigned int : 6;
+ unsigned int reserved5 : RB_STENCILREFMASK_BF_RESERVED5_SIZE;
+ unsigned int reserved4 : RB_STENCILREFMASK_BF_RESERVED4_SIZE;
+ unsigned int stencilwritemask_bf : RB_STENCILREFMASK_BF_STENCILWRITEMASK_BF_SIZE;
+ unsigned int stencilmask_bf : RB_STENCILREFMASK_BF_STENCILMASK_BF_SIZE;
+ unsigned int stencilref_bf : RB_STENCILREFMASK_BF_STENCILREF_BF_SIZE;
+ } rb_stencilrefmask_bf_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_stencilrefmask_bf_t f;
+} rb_stencilrefmask_bf_u;
+
+
+/*
+ * RB_DEPTHCONTROL struct
+ */
+
+#define RB_DEPTHCONTROL_STENCIL_ENABLE_SIZE 1
+#define RB_DEPTHCONTROL_Z_ENABLE_SIZE 1
+#define RB_DEPTHCONTROL_Z_WRITE_ENABLE_SIZE 1
+#define RB_DEPTHCONTROL_EARLY_Z_ENABLE_SIZE 1
+#define RB_DEPTHCONTROL_ZFUNC_SIZE 3
+#define RB_DEPTHCONTROL_BACKFACE_ENABLE_SIZE 1
+#define RB_DEPTHCONTROL_STENCILFUNC_SIZE 3
+#define RB_DEPTHCONTROL_STENCILFAIL_SIZE 3
+#define RB_DEPTHCONTROL_STENCILZPASS_SIZE 3
+#define RB_DEPTHCONTROL_STENCILZFAIL_SIZE 3
+#define RB_DEPTHCONTROL_STENCILFUNC_BF_SIZE 3
+#define RB_DEPTHCONTROL_STENCILFAIL_BF_SIZE 3
+#define RB_DEPTHCONTROL_STENCILZPASS_BF_SIZE 3
+#define RB_DEPTHCONTROL_STENCILZFAIL_BF_SIZE 3
+
+#define RB_DEPTHCONTROL_STENCIL_ENABLE_SHIFT 0
+#define RB_DEPTHCONTROL_Z_ENABLE_SHIFT 1
+#define RB_DEPTHCONTROL_Z_WRITE_ENABLE_SHIFT 2
+#define RB_DEPTHCONTROL_EARLY_Z_ENABLE_SHIFT 3
+#define RB_DEPTHCONTROL_ZFUNC_SHIFT 4
+#define RB_DEPTHCONTROL_BACKFACE_ENABLE_SHIFT 7
+#define RB_DEPTHCONTROL_STENCILFUNC_SHIFT 8
+#define RB_DEPTHCONTROL_STENCILFAIL_SHIFT 11
+#define RB_DEPTHCONTROL_STENCILZPASS_SHIFT 14
+#define RB_DEPTHCONTROL_STENCILZFAIL_SHIFT 17
+#define RB_DEPTHCONTROL_STENCILFUNC_BF_SHIFT 20
+#define RB_DEPTHCONTROL_STENCILFAIL_BF_SHIFT 23
+#define RB_DEPTHCONTROL_STENCILZPASS_BF_SHIFT 26
+#define RB_DEPTHCONTROL_STENCILZFAIL_BF_SHIFT 29
+
+#define RB_DEPTHCONTROL_STENCIL_ENABLE_MASK 0x00000001
+#define RB_DEPTHCONTROL_Z_ENABLE_MASK 0x00000002
+#define RB_DEPTHCONTROL_Z_WRITE_ENABLE_MASK 0x00000004
+#define RB_DEPTHCONTROL_EARLY_Z_ENABLE_MASK 0x00000008
+#define RB_DEPTHCONTROL_ZFUNC_MASK 0x00000070
+#define RB_DEPTHCONTROL_BACKFACE_ENABLE_MASK 0x00000080
+#define RB_DEPTHCONTROL_STENCILFUNC_MASK 0x00000700
+#define RB_DEPTHCONTROL_STENCILFAIL_MASK 0x00003800
+#define RB_DEPTHCONTROL_STENCILZPASS_MASK 0x0001c000
+#define RB_DEPTHCONTROL_STENCILZFAIL_MASK 0x000e0000
+#define RB_DEPTHCONTROL_STENCILFUNC_BF_MASK 0x00700000
+#define RB_DEPTHCONTROL_STENCILFAIL_BF_MASK 0x03800000
+#define RB_DEPTHCONTROL_STENCILZPASS_BF_MASK 0x1c000000
+#define RB_DEPTHCONTROL_STENCILZFAIL_BF_MASK 0xe0000000
+
+#define RB_DEPTHCONTROL_MASK \
+ (RB_DEPTHCONTROL_STENCIL_ENABLE_MASK | \
+ RB_DEPTHCONTROL_Z_ENABLE_MASK | \
+ RB_DEPTHCONTROL_Z_WRITE_ENABLE_MASK | \
+ RB_DEPTHCONTROL_EARLY_Z_ENABLE_MASK | \
+ RB_DEPTHCONTROL_ZFUNC_MASK | \
+ RB_DEPTHCONTROL_BACKFACE_ENABLE_MASK | \
+ RB_DEPTHCONTROL_STENCILFUNC_MASK | \
+ RB_DEPTHCONTROL_STENCILFAIL_MASK | \
+ RB_DEPTHCONTROL_STENCILZPASS_MASK | \
+ RB_DEPTHCONTROL_STENCILZFAIL_MASK | \
+ RB_DEPTHCONTROL_STENCILFUNC_BF_MASK | \
+ RB_DEPTHCONTROL_STENCILFAIL_BF_MASK | \
+ RB_DEPTHCONTROL_STENCILZPASS_BF_MASK | \
+ RB_DEPTHCONTROL_STENCILZFAIL_BF_MASK)
+
+#define RB_DEPTHCONTROL(stencil_enable, z_enable, z_write_enable, early_z_enable, zfunc, backface_enable, stencilfunc, stencilfail, stencilzpass, stencilzfail, stencilfunc_bf, stencilfail_bf, stencilzpass_bf, stencilzfail_bf) \
+ ((stencil_enable << RB_DEPTHCONTROL_STENCIL_ENABLE_SHIFT) | \
+ (z_enable << RB_DEPTHCONTROL_Z_ENABLE_SHIFT) | \
+ (z_write_enable << RB_DEPTHCONTROL_Z_WRITE_ENABLE_SHIFT) | \
+ (early_z_enable << RB_DEPTHCONTROL_EARLY_Z_ENABLE_SHIFT) | \
+ (zfunc << RB_DEPTHCONTROL_ZFUNC_SHIFT) | \
+ (backface_enable << RB_DEPTHCONTROL_BACKFACE_ENABLE_SHIFT) | \
+ (stencilfunc << RB_DEPTHCONTROL_STENCILFUNC_SHIFT) | \
+ (stencilfail << RB_DEPTHCONTROL_STENCILFAIL_SHIFT) | \
+ (stencilzpass << RB_DEPTHCONTROL_STENCILZPASS_SHIFT) | \
+ (stencilzfail << RB_DEPTHCONTROL_STENCILZFAIL_SHIFT) | \
+ (stencilfunc_bf << RB_DEPTHCONTROL_STENCILFUNC_BF_SHIFT) | \
+ (stencilfail_bf << RB_DEPTHCONTROL_STENCILFAIL_BF_SHIFT) | \
+ (stencilzpass_bf << RB_DEPTHCONTROL_STENCILZPASS_BF_SHIFT) | \
+ (stencilzfail_bf << RB_DEPTHCONTROL_STENCILZFAIL_BF_SHIFT))
+
+#define RB_DEPTHCONTROL_GET_STENCIL_ENABLE(rb_depthcontrol) \
+ ((rb_depthcontrol & RB_DEPTHCONTROL_STENCIL_ENABLE_MASK) >> RB_DEPTHCONTROL_STENCIL_ENABLE_SHIFT)
+#define RB_DEPTHCONTROL_GET_Z_ENABLE(rb_depthcontrol) \
+ ((rb_depthcontrol & RB_DEPTHCONTROL_Z_ENABLE_MASK) >> RB_DEPTHCONTROL_Z_ENABLE_SHIFT)
+#define RB_DEPTHCONTROL_GET_Z_WRITE_ENABLE(rb_depthcontrol) \
+ ((rb_depthcontrol & RB_DEPTHCONTROL_Z_WRITE_ENABLE_MASK) >> RB_DEPTHCONTROL_Z_WRITE_ENABLE_SHIFT)
+#define RB_DEPTHCONTROL_GET_EARLY_Z_ENABLE(rb_depthcontrol) \
+ ((rb_depthcontrol & RB_DEPTHCONTROL_EARLY_Z_ENABLE_MASK) >> RB_DEPTHCONTROL_EARLY_Z_ENABLE_SHIFT)
+#define RB_DEPTHCONTROL_GET_ZFUNC(rb_depthcontrol) \
+ ((rb_depthcontrol & RB_DEPTHCONTROL_ZFUNC_MASK) >> RB_DEPTHCONTROL_ZFUNC_SHIFT)
+#define RB_DEPTHCONTROL_GET_BACKFACE_ENABLE(rb_depthcontrol) \
+ ((rb_depthcontrol & RB_DEPTHCONTROL_BACKFACE_ENABLE_MASK) >> RB_DEPTHCONTROL_BACKFACE_ENABLE_SHIFT)
+#define RB_DEPTHCONTROL_GET_STENCILFUNC(rb_depthcontrol) \
+ ((rb_depthcontrol & RB_DEPTHCONTROL_STENCILFUNC_MASK) >> RB_DEPTHCONTROL_STENCILFUNC_SHIFT)
+#define RB_DEPTHCONTROL_GET_STENCILFAIL(rb_depthcontrol) \
+ ((rb_depthcontrol & RB_DEPTHCONTROL_STENCILFAIL_MASK) >> RB_DEPTHCONTROL_STENCILFAIL_SHIFT)
+#define RB_DEPTHCONTROL_GET_STENCILZPASS(rb_depthcontrol) \
+ ((rb_depthcontrol & RB_DEPTHCONTROL_STENCILZPASS_MASK) >> RB_DEPTHCONTROL_STENCILZPASS_SHIFT)
+#define RB_DEPTHCONTROL_GET_STENCILZFAIL(rb_depthcontrol) \
+ ((rb_depthcontrol & RB_DEPTHCONTROL_STENCILZFAIL_MASK) >> RB_DEPTHCONTROL_STENCILZFAIL_SHIFT)
+#define RB_DEPTHCONTROL_GET_STENCILFUNC_BF(rb_depthcontrol) \
+ ((rb_depthcontrol & RB_DEPTHCONTROL_STENCILFUNC_BF_MASK) >> RB_DEPTHCONTROL_STENCILFUNC_BF_SHIFT)
+#define RB_DEPTHCONTROL_GET_STENCILFAIL_BF(rb_depthcontrol) \
+ ((rb_depthcontrol & RB_DEPTHCONTROL_STENCILFAIL_BF_MASK) >> RB_DEPTHCONTROL_STENCILFAIL_BF_SHIFT)
+#define RB_DEPTHCONTROL_GET_STENCILZPASS_BF(rb_depthcontrol) \
+ ((rb_depthcontrol & RB_DEPTHCONTROL_STENCILZPASS_BF_MASK) >> RB_DEPTHCONTROL_STENCILZPASS_BF_SHIFT)
+#define RB_DEPTHCONTROL_GET_STENCILZFAIL_BF(rb_depthcontrol) \
+ ((rb_depthcontrol & RB_DEPTHCONTROL_STENCILZFAIL_BF_MASK) >> RB_DEPTHCONTROL_STENCILZFAIL_BF_SHIFT)
+
+#define RB_DEPTHCONTROL_SET_STENCIL_ENABLE(rb_depthcontrol_reg, stencil_enable) \
+ rb_depthcontrol_reg = (rb_depthcontrol_reg & ~RB_DEPTHCONTROL_STENCIL_ENABLE_MASK) | (stencil_enable << RB_DEPTHCONTROL_STENCIL_ENABLE_SHIFT)
+#define RB_DEPTHCONTROL_SET_Z_ENABLE(rb_depthcontrol_reg, z_enable) \
+ rb_depthcontrol_reg = (rb_depthcontrol_reg & ~RB_DEPTHCONTROL_Z_ENABLE_MASK) | (z_enable << RB_DEPTHCONTROL_Z_ENABLE_SHIFT)
+#define RB_DEPTHCONTROL_SET_Z_WRITE_ENABLE(rb_depthcontrol_reg, z_write_enable) \
+ rb_depthcontrol_reg = (rb_depthcontrol_reg & ~RB_DEPTHCONTROL_Z_WRITE_ENABLE_MASK) | (z_write_enable << RB_DEPTHCONTROL_Z_WRITE_ENABLE_SHIFT)
+#define RB_DEPTHCONTROL_SET_EARLY_Z_ENABLE(rb_depthcontrol_reg, early_z_enable) \
+ rb_depthcontrol_reg = (rb_depthcontrol_reg & ~RB_DEPTHCONTROL_EARLY_Z_ENABLE_MASK) | (early_z_enable << RB_DEPTHCONTROL_EARLY_Z_ENABLE_SHIFT)
+#define RB_DEPTHCONTROL_SET_ZFUNC(rb_depthcontrol_reg, zfunc) \
+ rb_depthcontrol_reg = (rb_depthcontrol_reg & ~RB_DEPTHCONTROL_ZFUNC_MASK) | (zfunc << RB_DEPTHCONTROL_ZFUNC_SHIFT)
+#define RB_DEPTHCONTROL_SET_BACKFACE_ENABLE(rb_depthcontrol_reg, backface_enable) \
+ rb_depthcontrol_reg = (rb_depthcontrol_reg & ~RB_DEPTHCONTROL_BACKFACE_ENABLE_MASK) | (backface_enable << RB_DEPTHCONTROL_BACKFACE_ENABLE_SHIFT)
+#define RB_DEPTHCONTROL_SET_STENCILFUNC(rb_depthcontrol_reg, stencilfunc) \
+ rb_depthcontrol_reg = (rb_depthcontrol_reg & ~RB_DEPTHCONTROL_STENCILFUNC_MASK) | (stencilfunc << RB_DEPTHCONTROL_STENCILFUNC_SHIFT)
+#define RB_DEPTHCONTROL_SET_STENCILFAIL(rb_depthcontrol_reg, stencilfail) \
+ rb_depthcontrol_reg = (rb_depthcontrol_reg & ~RB_DEPTHCONTROL_STENCILFAIL_MASK) | (stencilfail << RB_DEPTHCONTROL_STENCILFAIL_SHIFT)
+#define RB_DEPTHCONTROL_SET_STENCILZPASS(rb_depthcontrol_reg, stencilzpass) \
+ rb_depthcontrol_reg = (rb_depthcontrol_reg & ~RB_DEPTHCONTROL_STENCILZPASS_MASK) | (stencilzpass << RB_DEPTHCONTROL_STENCILZPASS_SHIFT)
+#define RB_DEPTHCONTROL_SET_STENCILZFAIL(rb_depthcontrol_reg, stencilzfail) \
+ rb_depthcontrol_reg = (rb_depthcontrol_reg & ~RB_DEPTHCONTROL_STENCILZFAIL_MASK) | (stencilzfail << RB_DEPTHCONTROL_STENCILZFAIL_SHIFT)
+#define RB_DEPTHCONTROL_SET_STENCILFUNC_BF(rb_depthcontrol_reg, stencilfunc_bf) \
+ rb_depthcontrol_reg = (rb_depthcontrol_reg & ~RB_DEPTHCONTROL_STENCILFUNC_BF_MASK) | (stencilfunc_bf << RB_DEPTHCONTROL_STENCILFUNC_BF_SHIFT)
+#define RB_DEPTHCONTROL_SET_STENCILFAIL_BF(rb_depthcontrol_reg, stencilfail_bf) \
+ rb_depthcontrol_reg = (rb_depthcontrol_reg & ~RB_DEPTHCONTROL_STENCILFAIL_BF_MASK) | (stencilfail_bf << RB_DEPTHCONTROL_STENCILFAIL_BF_SHIFT)
+#define RB_DEPTHCONTROL_SET_STENCILZPASS_BF(rb_depthcontrol_reg, stencilzpass_bf) \
+ rb_depthcontrol_reg = (rb_depthcontrol_reg & ~RB_DEPTHCONTROL_STENCILZPASS_BF_MASK) | (stencilzpass_bf << RB_DEPTHCONTROL_STENCILZPASS_BF_SHIFT)
+#define RB_DEPTHCONTROL_SET_STENCILZFAIL_BF(rb_depthcontrol_reg, stencilzfail_bf) \
+ rb_depthcontrol_reg = (rb_depthcontrol_reg & ~RB_DEPTHCONTROL_STENCILZFAIL_BF_MASK) | (stencilzfail_bf << RB_DEPTHCONTROL_STENCILZFAIL_BF_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_depthcontrol_t {
+ unsigned int stencil_enable : RB_DEPTHCONTROL_STENCIL_ENABLE_SIZE;
+ unsigned int z_enable : RB_DEPTHCONTROL_Z_ENABLE_SIZE;
+ unsigned int z_write_enable : RB_DEPTHCONTROL_Z_WRITE_ENABLE_SIZE;
+ unsigned int early_z_enable : RB_DEPTHCONTROL_EARLY_Z_ENABLE_SIZE;
+ unsigned int zfunc : RB_DEPTHCONTROL_ZFUNC_SIZE;
+ unsigned int backface_enable : RB_DEPTHCONTROL_BACKFACE_ENABLE_SIZE;
+ unsigned int stencilfunc : RB_DEPTHCONTROL_STENCILFUNC_SIZE;
+ unsigned int stencilfail : RB_DEPTHCONTROL_STENCILFAIL_SIZE;
+ unsigned int stencilzpass : RB_DEPTHCONTROL_STENCILZPASS_SIZE;
+ unsigned int stencilzfail : RB_DEPTHCONTROL_STENCILZFAIL_SIZE;
+ unsigned int stencilfunc_bf : RB_DEPTHCONTROL_STENCILFUNC_BF_SIZE;
+ unsigned int stencilfail_bf : RB_DEPTHCONTROL_STENCILFAIL_BF_SIZE;
+ unsigned int stencilzpass_bf : RB_DEPTHCONTROL_STENCILZPASS_BF_SIZE;
+ unsigned int stencilzfail_bf : RB_DEPTHCONTROL_STENCILZFAIL_BF_SIZE;
+ } rb_depthcontrol_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_depthcontrol_t {
+ unsigned int stencilzfail_bf : RB_DEPTHCONTROL_STENCILZFAIL_BF_SIZE;
+ unsigned int stencilzpass_bf : RB_DEPTHCONTROL_STENCILZPASS_BF_SIZE;
+ unsigned int stencilfail_bf : RB_DEPTHCONTROL_STENCILFAIL_BF_SIZE;
+ unsigned int stencilfunc_bf : RB_DEPTHCONTROL_STENCILFUNC_BF_SIZE;
+ unsigned int stencilzfail : RB_DEPTHCONTROL_STENCILZFAIL_SIZE;
+ unsigned int stencilzpass : RB_DEPTHCONTROL_STENCILZPASS_SIZE;
+ unsigned int stencilfail : RB_DEPTHCONTROL_STENCILFAIL_SIZE;
+ unsigned int stencilfunc : RB_DEPTHCONTROL_STENCILFUNC_SIZE;
+ unsigned int backface_enable : RB_DEPTHCONTROL_BACKFACE_ENABLE_SIZE;
+ unsigned int zfunc : RB_DEPTHCONTROL_ZFUNC_SIZE;
+ unsigned int early_z_enable : RB_DEPTHCONTROL_EARLY_Z_ENABLE_SIZE;
+ unsigned int z_write_enable : RB_DEPTHCONTROL_Z_WRITE_ENABLE_SIZE;
+ unsigned int z_enable : RB_DEPTHCONTROL_Z_ENABLE_SIZE;
+ unsigned int stencil_enable : RB_DEPTHCONTROL_STENCIL_ENABLE_SIZE;
+ } rb_depthcontrol_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_depthcontrol_t f;
+} rb_depthcontrol_u;
+
+
+/*
+ * RB_BLENDCONTROL struct
+ */
+
+#define RB_BLENDCONTROL_COLOR_SRCBLEND_SIZE 5
+#define RB_BLENDCONTROL_COLOR_COMB_FCN_SIZE 3
+#define RB_BLENDCONTROL_COLOR_DESTBLEND_SIZE 5
+#define RB_BLENDCONTROL_ALPHA_SRCBLEND_SIZE 5
+#define RB_BLENDCONTROL_ALPHA_COMB_FCN_SIZE 3
+#define RB_BLENDCONTROL_ALPHA_DESTBLEND_SIZE 5
+#define RB_BLENDCONTROL_BLEND_FORCE_ENABLE_SIZE 1
+#define RB_BLENDCONTROL_BLEND_FORCE_SIZE 1
+
+#define RB_BLENDCONTROL_COLOR_SRCBLEND_SHIFT 0
+#define RB_BLENDCONTROL_COLOR_COMB_FCN_SHIFT 5
+#define RB_BLENDCONTROL_COLOR_DESTBLEND_SHIFT 8
+#define RB_BLENDCONTROL_ALPHA_SRCBLEND_SHIFT 16
+#define RB_BLENDCONTROL_ALPHA_COMB_FCN_SHIFT 21
+#define RB_BLENDCONTROL_ALPHA_DESTBLEND_SHIFT 24
+#define RB_BLENDCONTROL_BLEND_FORCE_ENABLE_SHIFT 29
+#define RB_BLENDCONTROL_BLEND_FORCE_SHIFT 30
+
+#define RB_BLENDCONTROL_COLOR_SRCBLEND_MASK 0x0000001f
+#define RB_BLENDCONTROL_COLOR_COMB_FCN_MASK 0x000000e0
+#define RB_BLENDCONTROL_COLOR_DESTBLEND_MASK 0x00001f00
+#define RB_BLENDCONTROL_ALPHA_SRCBLEND_MASK 0x001f0000
+#define RB_BLENDCONTROL_ALPHA_COMB_FCN_MASK 0x00e00000
+#define RB_BLENDCONTROL_ALPHA_DESTBLEND_MASK 0x1f000000
+#define RB_BLENDCONTROL_BLEND_FORCE_ENABLE_MASK 0x20000000
+#define RB_BLENDCONTROL_BLEND_FORCE_MASK 0x40000000
+
+#define RB_BLENDCONTROL_MASK \
+ (RB_BLENDCONTROL_COLOR_SRCBLEND_MASK | \
+ RB_BLENDCONTROL_COLOR_COMB_FCN_MASK | \
+ RB_BLENDCONTROL_COLOR_DESTBLEND_MASK | \
+ RB_BLENDCONTROL_ALPHA_SRCBLEND_MASK | \
+ RB_BLENDCONTROL_ALPHA_COMB_FCN_MASK | \
+ RB_BLENDCONTROL_ALPHA_DESTBLEND_MASK | \
+ RB_BLENDCONTROL_BLEND_FORCE_ENABLE_MASK | \
+ RB_BLENDCONTROL_BLEND_FORCE_MASK)
+
+#define RB_BLENDCONTROL(color_srcblend, color_comb_fcn, color_destblend, alpha_srcblend, alpha_comb_fcn, alpha_destblend, blend_force_enable, blend_force) \
+ ((color_srcblend << RB_BLENDCONTROL_COLOR_SRCBLEND_SHIFT) | \
+ (color_comb_fcn << RB_BLENDCONTROL_COLOR_COMB_FCN_SHIFT) | \
+ (color_destblend << RB_BLENDCONTROL_COLOR_DESTBLEND_SHIFT) | \
+ (alpha_srcblend << RB_BLENDCONTROL_ALPHA_SRCBLEND_SHIFT) | \
+ (alpha_comb_fcn << RB_BLENDCONTROL_ALPHA_COMB_FCN_SHIFT) | \
+ (alpha_destblend << RB_BLENDCONTROL_ALPHA_DESTBLEND_SHIFT) | \
+ (blend_force_enable << RB_BLENDCONTROL_BLEND_FORCE_ENABLE_SHIFT) | \
+ (blend_force << RB_BLENDCONTROL_BLEND_FORCE_SHIFT))
+
+#define RB_BLENDCONTROL_GET_COLOR_SRCBLEND(rb_blendcontrol) \
+ ((rb_blendcontrol & RB_BLENDCONTROL_COLOR_SRCBLEND_MASK) >> RB_BLENDCONTROL_COLOR_SRCBLEND_SHIFT)
+#define RB_BLENDCONTROL_GET_COLOR_COMB_FCN(rb_blendcontrol) \
+ ((rb_blendcontrol & RB_BLENDCONTROL_COLOR_COMB_FCN_MASK) >> RB_BLENDCONTROL_COLOR_COMB_FCN_SHIFT)
+#define RB_BLENDCONTROL_GET_COLOR_DESTBLEND(rb_blendcontrol) \
+ ((rb_blendcontrol & RB_BLENDCONTROL_COLOR_DESTBLEND_MASK) >> RB_BLENDCONTROL_COLOR_DESTBLEND_SHIFT)
+#define RB_BLENDCONTROL_GET_ALPHA_SRCBLEND(rb_blendcontrol) \
+ ((rb_blendcontrol & RB_BLENDCONTROL_ALPHA_SRCBLEND_MASK) >> RB_BLENDCONTROL_ALPHA_SRCBLEND_SHIFT)
+#define RB_BLENDCONTROL_GET_ALPHA_COMB_FCN(rb_blendcontrol) \
+ ((rb_blendcontrol & RB_BLENDCONTROL_ALPHA_COMB_FCN_MASK) >> RB_BLENDCONTROL_ALPHA_COMB_FCN_SHIFT)
+#define RB_BLENDCONTROL_GET_ALPHA_DESTBLEND(rb_blendcontrol) \
+ ((rb_blendcontrol & RB_BLENDCONTROL_ALPHA_DESTBLEND_MASK) >> RB_BLENDCONTROL_ALPHA_DESTBLEND_SHIFT)
+#define RB_BLENDCONTROL_GET_BLEND_FORCE_ENABLE(rb_blendcontrol) \
+ ((rb_blendcontrol & RB_BLENDCONTROL_BLEND_FORCE_ENABLE_MASK) >> RB_BLENDCONTROL_BLEND_FORCE_ENABLE_SHIFT)
+#define RB_BLENDCONTROL_GET_BLEND_FORCE(rb_blendcontrol) \
+ ((rb_blendcontrol & RB_BLENDCONTROL_BLEND_FORCE_MASK) >> RB_BLENDCONTROL_BLEND_FORCE_SHIFT)
+
+#define RB_BLENDCONTROL_SET_COLOR_SRCBLEND(rb_blendcontrol_reg, color_srcblend) \
+ rb_blendcontrol_reg = (rb_blendcontrol_reg & ~RB_BLENDCONTROL_COLOR_SRCBLEND_MASK) | (color_srcblend << RB_BLENDCONTROL_COLOR_SRCBLEND_SHIFT)
+#define RB_BLENDCONTROL_SET_COLOR_COMB_FCN(rb_blendcontrol_reg, color_comb_fcn) \
+ rb_blendcontrol_reg = (rb_blendcontrol_reg & ~RB_BLENDCONTROL_COLOR_COMB_FCN_MASK) | (color_comb_fcn << RB_BLENDCONTROL_COLOR_COMB_FCN_SHIFT)
+#define RB_BLENDCONTROL_SET_COLOR_DESTBLEND(rb_blendcontrol_reg, color_destblend) \
+ rb_blendcontrol_reg = (rb_blendcontrol_reg & ~RB_BLENDCONTROL_COLOR_DESTBLEND_MASK) | (color_destblend << RB_BLENDCONTROL_COLOR_DESTBLEND_SHIFT)
+#define RB_BLENDCONTROL_SET_ALPHA_SRCBLEND(rb_blendcontrol_reg, alpha_srcblend) \
+ rb_blendcontrol_reg = (rb_blendcontrol_reg & ~RB_BLENDCONTROL_ALPHA_SRCBLEND_MASK) | (alpha_srcblend << RB_BLENDCONTROL_ALPHA_SRCBLEND_SHIFT)
+#define RB_BLENDCONTROL_SET_ALPHA_COMB_FCN(rb_blendcontrol_reg, alpha_comb_fcn) \
+ rb_blendcontrol_reg = (rb_blendcontrol_reg & ~RB_BLENDCONTROL_ALPHA_COMB_FCN_MASK) | (alpha_comb_fcn << RB_BLENDCONTROL_ALPHA_COMB_FCN_SHIFT)
+#define RB_BLENDCONTROL_SET_ALPHA_DESTBLEND(rb_blendcontrol_reg, alpha_destblend) \
+ rb_blendcontrol_reg = (rb_blendcontrol_reg & ~RB_BLENDCONTROL_ALPHA_DESTBLEND_MASK) | (alpha_destblend << RB_BLENDCONTROL_ALPHA_DESTBLEND_SHIFT)
+#define RB_BLENDCONTROL_SET_BLEND_FORCE_ENABLE(rb_blendcontrol_reg, blend_force_enable) \
+ rb_blendcontrol_reg = (rb_blendcontrol_reg & ~RB_BLENDCONTROL_BLEND_FORCE_ENABLE_MASK) | (blend_force_enable << RB_BLENDCONTROL_BLEND_FORCE_ENABLE_SHIFT)
+#define RB_BLENDCONTROL_SET_BLEND_FORCE(rb_blendcontrol_reg, blend_force) \
+ rb_blendcontrol_reg = (rb_blendcontrol_reg & ~RB_BLENDCONTROL_BLEND_FORCE_MASK) | (blend_force << RB_BLENDCONTROL_BLEND_FORCE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_blendcontrol_t {
+ unsigned int color_srcblend : RB_BLENDCONTROL_COLOR_SRCBLEND_SIZE;
+ unsigned int color_comb_fcn : RB_BLENDCONTROL_COLOR_COMB_FCN_SIZE;
+ unsigned int color_destblend : RB_BLENDCONTROL_COLOR_DESTBLEND_SIZE;
+ unsigned int : 3;
+ unsigned int alpha_srcblend : RB_BLENDCONTROL_ALPHA_SRCBLEND_SIZE;
+ unsigned int alpha_comb_fcn : RB_BLENDCONTROL_ALPHA_COMB_FCN_SIZE;
+ unsigned int alpha_destblend : RB_BLENDCONTROL_ALPHA_DESTBLEND_SIZE;
+ unsigned int blend_force_enable : RB_BLENDCONTROL_BLEND_FORCE_ENABLE_SIZE;
+ unsigned int blend_force : RB_BLENDCONTROL_BLEND_FORCE_SIZE;
+ unsigned int : 1;
+ } rb_blendcontrol_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_blendcontrol_t {
+ unsigned int : 1;
+ unsigned int blend_force : RB_BLENDCONTROL_BLEND_FORCE_SIZE;
+ unsigned int blend_force_enable : RB_BLENDCONTROL_BLEND_FORCE_ENABLE_SIZE;
+ unsigned int alpha_destblend : RB_BLENDCONTROL_ALPHA_DESTBLEND_SIZE;
+ unsigned int alpha_comb_fcn : RB_BLENDCONTROL_ALPHA_COMB_FCN_SIZE;
+ unsigned int alpha_srcblend : RB_BLENDCONTROL_ALPHA_SRCBLEND_SIZE;
+ unsigned int : 3;
+ unsigned int color_destblend : RB_BLENDCONTROL_COLOR_DESTBLEND_SIZE;
+ unsigned int color_comb_fcn : RB_BLENDCONTROL_COLOR_COMB_FCN_SIZE;
+ unsigned int color_srcblend : RB_BLENDCONTROL_COLOR_SRCBLEND_SIZE;
+ } rb_blendcontrol_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_blendcontrol_t f;
+} rb_blendcontrol_u;
+
+
+/*
+ * RB_COLORCONTROL struct
+ */
+
+#define RB_COLORCONTROL_ALPHA_FUNC_SIZE 3
+#define RB_COLORCONTROL_ALPHA_TEST_ENABLE_SIZE 1
+#define RB_COLORCONTROL_ALPHA_TO_MASK_ENABLE_SIZE 1
+#define RB_COLORCONTROL_BLEND_DISABLE_SIZE 1
+#define RB_COLORCONTROL_FOG_ENABLE_SIZE 1
+#define RB_COLORCONTROL_VS_EXPORTS_FOG_SIZE 1
+#define RB_COLORCONTROL_ROP_CODE_SIZE 4
+#define RB_COLORCONTROL_DITHER_MODE_SIZE 2
+#define RB_COLORCONTROL_DITHER_TYPE_SIZE 2
+#define RB_COLORCONTROL_PIXEL_FOG_SIZE 1
+#define RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET0_SIZE 2
+#define RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET1_SIZE 2
+#define RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET2_SIZE 2
+#define RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET3_SIZE 2
+
+#define RB_COLORCONTROL_ALPHA_FUNC_SHIFT 0
+#define RB_COLORCONTROL_ALPHA_TEST_ENABLE_SHIFT 3
+#define RB_COLORCONTROL_ALPHA_TO_MASK_ENABLE_SHIFT 4
+#define RB_COLORCONTROL_BLEND_DISABLE_SHIFT 5
+#define RB_COLORCONTROL_FOG_ENABLE_SHIFT 6
+#define RB_COLORCONTROL_VS_EXPORTS_FOG_SHIFT 7
+#define RB_COLORCONTROL_ROP_CODE_SHIFT 8
+#define RB_COLORCONTROL_DITHER_MODE_SHIFT 12
+#define RB_COLORCONTROL_DITHER_TYPE_SHIFT 14
+#define RB_COLORCONTROL_PIXEL_FOG_SHIFT 16
+#define RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET0_SHIFT 24
+#define RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET1_SHIFT 26
+#define RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET2_SHIFT 28
+#define RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET3_SHIFT 30
+
+#define RB_COLORCONTROL_ALPHA_FUNC_MASK 0x00000007
+#define RB_COLORCONTROL_ALPHA_TEST_ENABLE_MASK 0x00000008
+#define RB_COLORCONTROL_ALPHA_TO_MASK_ENABLE_MASK 0x00000010
+#define RB_COLORCONTROL_BLEND_DISABLE_MASK 0x00000020
+#define RB_COLORCONTROL_FOG_ENABLE_MASK 0x00000040
+#define RB_COLORCONTROL_VS_EXPORTS_FOG_MASK 0x00000080
+#define RB_COLORCONTROL_ROP_CODE_MASK 0x00000f00
+#define RB_COLORCONTROL_DITHER_MODE_MASK 0x00003000
+#define RB_COLORCONTROL_DITHER_TYPE_MASK 0x0000c000
+#define RB_COLORCONTROL_PIXEL_FOG_MASK 0x00010000
+#define RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET0_MASK 0x03000000
+#define RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET1_MASK 0x0c000000
+#define RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET2_MASK 0x30000000
+#define RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET3_MASK 0xc0000000
+
+#define RB_COLORCONTROL_MASK \
+ (RB_COLORCONTROL_ALPHA_FUNC_MASK | \
+ RB_COLORCONTROL_ALPHA_TEST_ENABLE_MASK | \
+ RB_COLORCONTROL_ALPHA_TO_MASK_ENABLE_MASK | \
+ RB_COLORCONTROL_BLEND_DISABLE_MASK | \
+ RB_COLORCONTROL_FOG_ENABLE_MASK | \
+ RB_COLORCONTROL_VS_EXPORTS_FOG_MASK | \
+ RB_COLORCONTROL_ROP_CODE_MASK | \
+ RB_COLORCONTROL_DITHER_MODE_MASK | \
+ RB_COLORCONTROL_DITHER_TYPE_MASK | \
+ RB_COLORCONTROL_PIXEL_FOG_MASK | \
+ RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET0_MASK | \
+ RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET1_MASK | \
+ RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET2_MASK | \
+ RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET3_MASK)
+
+#define RB_COLORCONTROL(alpha_func, alpha_test_enable, alpha_to_mask_enable, blend_disable, fog_enable, vs_exports_fog, rop_code, dither_mode, dither_type, pixel_fog, alpha_to_mask_offset0, alpha_to_mask_offset1, alpha_to_mask_offset2, alpha_to_mask_offset3) \
+ ((alpha_func << RB_COLORCONTROL_ALPHA_FUNC_SHIFT) | \
+ (alpha_test_enable << RB_COLORCONTROL_ALPHA_TEST_ENABLE_SHIFT) | \
+ (alpha_to_mask_enable << RB_COLORCONTROL_ALPHA_TO_MASK_ENABLE_SHIFT) | \
+ (blend_disable << RB_COLORCONTROL_BLEND_DISABLE_SHIFT) | \
+ (fog_enable << RB_COLORCONTROL_FOG_ENABLE_SHIFT) | \
+ (vs_exports_fog << RB_COLORCONTROL_VS_EXPORTS_FOG_SHIFT) | \
+ (rop_code << RB_COLORCONTROL_ROP_CODE_SHIFT) | \
+ (dither_mode << RB_COLORCONTROL_DITHER_MODE_SHIFT) | \
+ (dither_type << RB_COLORCONTROL_DITHER_TYPE_SHIFT) | \
+ (pixel_fog << RB_COLORCONTROL_PIXEL_FOG_SHIFT) | \
+ (alpha_to_mask_offset0 << RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET0_SHIFT) | \
+ (alpha_to_mask_offset1 << RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET1_SHIFT) | \
+ (alpha_to_mask_offset2 << RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET2_SHIFT) | \
+ (alpha_to_mask_offset3 << RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET3_SHIFT))
+
+#define RB_COLORCONTROL_GET_ALPHA_FUNC(rb_colorcontrol) \
+ ((rb_colorcontrol & RB_COLORCONTROL_ALPHA_FUNC_MASK) >> RB_COLORCONTROL_ALPHA_FUNC_SHIFT)
+#define RB_COLORCONTROL_GET_ALPHA_TEST_ENABLE(rb_colorcontrol) \
+ ((rb_colorcontrol & RB_COLORCONTROL_ALPHA_TEST_ENABLE_MASK) >> RB_COLORCONTROL_ALPHA_TEST_ENABLE_SHIFT)
+#define RB_COLORCONTROL_GET_ALPHA_TO_MASK_ENABLE(rb_colorcontrol) \
+ ((rb_colorcontrol & RB_COLORCONTROL_ALPHA_TO_MASK_ENABLE_MASK) >> RB_COLORCONTROL_ALPHA_TO_MASK_ENABLE_SHIFT)
+#define RB_COLORCONTROL_GET_BLEND_DISABLE(rb_colorcontrol) \
+ ((rb_colorcontrol & RB_COLORCONTROL_BLEND_DISABLE_MASK) >> RB_COLORCONTROL_BLEND_DISABLE_SHIFT)
+#define RB_COLORCONTROL_GET_FOG_ENABLE(rb_colorcontrol) \
+ ((rb_colorcontrol & RB_COLORCONTROL_FOG_ENABLE_MASK) >> RB_COLORCONTROL_FOG_ENABLE_SHIFT)
+#define RB_COLORCONTROL_GET_VS_EXPORTS_FOG(rb_colorcontrol) \
+ ((rb_colorcontrol & RB_COLORCONTROL_VS_EXPORTS_FOG_MASK) >> RB_COLORCONTROL_VS_EXPORTS_FOG_SHIFT)
+#define RB_COLORCONTROL_GET_ROP_CODE(rb_colorcontrol) \
+ ((rb_colorcontrol & RB_COLORCONTROL_ROP_CODE_MASK) >> RB_COLORCONTROL_ROP_CODE_SHIFT)
+#define RB_COLORCONTROL_GET_DITHER_MODE(rb_colorcontrol) \
+ ((rb_colorcontrol & RB_COLORCONTROL_DITHER_MODE_MASK) >> RB_COLORCONTROL_DITHER_MODE_SHIFT)
+#define RB_COLORCONTROL_GET_DITHER_TYPE(rb_colorcontrol) \
+ ((rb_colorcontrol & RB_COLORCONTROL_DITHER_TYPE_MASK) >> RB_COLORCONTROL_DITHER_TYPE_SHIFT)
+#define RB_COLORCONTROL_GET_PIXEL_FOG(rb_colorcontrol) \
+ ((rb_colorcontrol & RB_COLORCONTROL_PIXEL_FOG_MASK) >> RB_COLORCONTROL_PIXEL_FOG_SHIFT)
+#define RB_COLORCONTROL_GET_ALPHA_TO_MASK_OFFSET0(rb_colorcontrol) \
+ ((rb_colorcontrol & RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET0_MASK) >> RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET0_SHIFT)
+#define RB_COLORCONTROL_GET_ALPHA_TO_MASK_OFFSET1(rb_colorcontrol) \
+ ((rb_colorcontrol & RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET1_MASK) >> RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET1_SHIFT)
+#define RB_COLORCONTROL_GET_ALPHA_TO_MASK_OFFSET2(rb_colorcontrol) \
+ ((rb_colorcontrol & RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET2_MASK) >> RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET2_SHIFT)
+#define RB_COLORCONTROL_GET_ALPHA_TO_MASK_OFFSET3(rb_colorcontrol) \
+ ((rb_colorcontrol & RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET3_MASK) >> RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET3_SHIFT)
+
+#define RB_COLORCONTROL_SET_ALPHA_FUNC(rb_colorcontrol_reg, alpha_func) \
+ rb_colorcontrol_reg = (rb_colorcontrol_reg & ~RB_COLORCONTROL_ALPHA_FUNC_MASK) | (alpha_func << RB_COLORCONTROL_ALPHA_FUNC_SHIFT)
+#define RB_COLORCONTROL_SET_ALPHA_TEST_ENABLE(rb_colorcontrol_reg, alpha_test_enable) \
+ rb_colorcontrol_reg = (rb_colorcontrol_reg & ~RB_COLORCONTROL_ALPHA_TEST_ENABLE_MASK) | (alpha_test_enable << RB_COLORCONTROL_ALPHA_TEST_ENABLE_SHIFT)
+#define RB_COLORCONTROL_SET_ALPHA_TO_MASK_ENABLE(rb_colorcontrol_reg, alpha_to_mask_enable) \
+ rb_colorcontrol_reg = (rb_colorcontrol_reg & ~RB_COLORCONTROL_ALPHA_TO_MASK_ENABLE_MASK) | (alpha_to_mask_enable << RB_COLORCONTROL_ALPHA_TO_MASK_ENABLE_SHIFT)
+#define RB_COLORCONTROL_SET_BLEND_DISABLE(rb_colorcontrol_reg, blend_disable) \
+ rb_colorcontrol_reg = (rb_colorcontrol_reg & ~RB_COLORCONTROL_BLEND_DISABLE_MASK) | (blend_disable << RB_COLORCONTROL_BLEND_DISABLE_SHIFT)
+#define RB_COLORCONTROL_SET_FOG_ENABLE(rb_colorcontrol_reg, fog_enable) \
+ rb_colorcontrol_reg = (rb_colorcontrol_reg & ~RB_COLORCONTROL_FOG_ENABLE_MASK) | (fog_enable << RB_COLORCONTROL_FOG_ENABLE_SHIFT)
+#define RB_COLORCONTROL_SET_VS_EXPORTS_FOG(rb_colorcontrol_reg, vs_exports_fog) \
+ rb_colorcontrol_reg = (rb_colorcontrol_reg & ~RB_COLORCONTROL_VS_EXPORTS_FOG_MASK) | (vs_exports_fog << RB_COLORCONTROL_VS_EXPORTS_FOG_SHIFT)
+#define RB_COLORCONTROL_SET_ROP_CODE(rb_colorcontrol_reg, rop_code) \
+ rb_colorcontrol_reg = (rb_colorcontrol_reg & ~RB_COLORCONTROL_ROP_CODE_MASK) | (rop_code << RB_COLORCONTROL_ROP_CODE_SHIFT)
+#define RB_COLORCONTROL_SET_DITHER_MODE(rb_colorcontrol_reg, dither_mode) \
+ rb_colorcontrol_reg = (rb_colorcontrol_reg & ~RB_COLORCONTROL_DITHER_MODE_MASK) | (dither_mode << RB_COLORCONTROL_DITHER_MODE_SHIFT)
+#define RB_COLORCONTROL_SET_DITHER_TYPE(rb_colorcontrol_reg, dither_type) \
+ rb_colorcontrol_reg = (rb_colorcontrol_reg & ~RB_COLORCONTROL_DITHER_TYPE_MASK) | (dither_type << RB_COLORCONTROL_DITHER_TYPE_SHIFT)
+#define RB_COLORCONTROL_SET_PIXEL_FOG(rb_colorcontrol_reg, pixel_fog) \
+ rb_colorcontrol_reg = (rb_colorcontrol_reg & ~RB_COLORCONTROL_PIXEL_FOG_MASK) | (pixel_fog << RB_COLORCONTROL_PIXEL_FOG_SHIFT)
+#define RB_COLORCONTROL_SET_ALPHA_TO_MASK_OFFSET0(rb_colorcontrol_reg, alpha_to_mask_offset0) \
+ rb_colorcontrol_reg = (rb_colorcontrol_reg & ~RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET0_MASK) | (alpha_to_mask_offset0 << RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET0_SHIFT)
+#define RB_COLORCONTROL_SET_ALPHA_TO_MASK_OFFSET1(rb_colorcontrol_reg, alpha_to_mask_offset1) \
+ rb_colorcontrol_reg = (rb_colorcontrol_reg & ~RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET1_MASK) | (alpha_to_mask_offset1 << RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET1_SHIFT)
+#define RB_COLORCONTROL_SET_ALPHA_TO_MASK_OFFSET2(rb_colorcontrol_reg, alpha_to_mask_offset2) \
+ rb_colorcontrol_reg = (rb_colorcontrol_reg & ~RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET2_MASK) | (alpha_to_mask_offset2 << RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET2_SHIFT)
+#define RB_COLORCONTROL_SET_ALPHA_TO_MASK_OFFSET3(rb_colorcontrol_reg, alpha_to_mask_offset3) \
+ rb_colorcontrol_reg = (rb_colorcontrol_reg & ~RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET3_MASK) | (alpha_to_mask_offset3 << RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET3_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_colorcontrol_t {
+ unsigned int alpha_func : RB_COLORCONTROL_ALPHA_FUNC_SIZE;
+ unsigned int alpha_test_enable : RB_COLORCONTROL_ALPHA_TEST_ENABLE_SIZE;
+ unsigned int alpha_to_mask_enable : RB_COLORCONTROL_ALPHA_TO_MASK_ENABLE_SIZE;
+ unsigned int blend_disable : RB_COLORCONTROL_BLEND_DISABLE_SIZE;
+ unsigned int fog_enable : RB_COLORCONTROL_FOG_ENABLE_SIZE;
+ unsigned int vs_exports_fog : RB_COLORCONTROL_VS_EXPORTS_FOG_SIZE;
+ unsigned int rop_code : RB_COLORCONTROL_ROP_CODE_SIZE;
+ unsigned int dither_mode : RB_COLORCONTROL_DITHER_MODE_SIZE;
+ unsigned int dither_type : RB_COLORCONTROL_DITHER_TYPE_SIZE;
+ unsigned int pixel_fog : RB_COLORCONTROL_PIXEL_FOG_SIZE;
+ unsigned int : 7;
+ unsigned int alpha_to_mask_offset0 : RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET0_SIZE;
+ unsigned int alpha_to_mask_offset1 : RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET1_SIZE;
+ unsigned int alpha_to_mask_offset2 : RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET2_SIZE;
+ unsigned int alpha_to_mask_offset3 : RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET3_SIZE;
+ } rb_colorcontrol_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_colorcontrol_t {
+ unsigned int alpha_to_mask_offset3 : RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET3_SIZE;
+ unsigned int alpha_to_mask_offset2 : RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET2_SIZE;
+ unsigned int alpha_to_mask_offset1 : RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET1_SIZE;
+ unsigned int alpha_to_mask_offset0 : RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET0_SIZE;
+ unsigned int : 7;
+ unsigned int pixel_fog : RB_COLORCONTROL_PIXEL_FOG_SIZE;
+ unsigned int dither_type : RB_COLORCONTROL_DITHER_TYPE_SIZE;
+ unsigned int dither_mode : RB_COLORCONTROL_DITHER_MODE_SIZE;
+ unsigned int rop_code : RB_COLORCONTROL_ROP_CODE_SIZE;
+ unsigned int vs_exports_fog : RB_COLORCONTROL_VS_EXPORTS_FOG_SIZE;
+ unsigned int fog_enable : RB_COLORCONTROL_FOG_ENABLE_SIZE;
+ unsigned int blend_disable : RB_COLORCONTROL_BLEND_DISABLE_SIZE;
+ unsigned int alpha_to_mask_enable : RB_COLORCONTROL_ALPHA_TO_MASK_ENABLE_SIZE;
+ unsigned int alpha_test_enable : RB_COLORCONTROL_ALPHA_TEST_ENABLE_SIZE;
+ unsigned int alpha_func : RB_COLORCONTROL_ALPHA_FUNC_SIZE;
+ } rb_colorcontrol_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_colorcontrol_t f;
+} rb_colorcontrol_u;
+
+
+/*
+ * RB_MODECONTROL struct
+ */
+
+#define RB_MODECONTROL_EDRAM_MODE_SIZE 3
+
+#define RB_MODECONTROL_EDRAM_MODE_SHIFT 0
+
+#define RB_MODECONTROL_EDRAM_MODE_MASK 0x00000007
+
+#define RB_MODECONTROL_MASK \
+ (RB_MODECONTROL_EDRAM_MODE_MASK)
+
+#define RB_MODECONTROL(edram_mode) \
+ ((edram_mode << RB_MODECONTROL_EDRAM_MODE_SHIFT))
+
+#define RB_MODECONTROL_GET_EDRAM_MODE(rb_modecontrol) \
+ ((rb_modecontrol & RB_MODECONTROL_EDRAM_MODE_MASK) >> RB_MODECONTROL_EDRAM_MODE_SHIFT)
+
+#define RB_MODECONTROL_SET_EDRAM_MODE(rb_modecontrol_reg, edram_mode) \
+ rb_modecontrol_reg = (rb_modecontrol_reg & ~RB_MODECONTROL_EDRAM_MODE_MASK) | (edram_mode << RB_MODECONTROL_EDRAM_MODE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_modecontrol_t {
+ unsigned int edram_mode : RB_MODECONTROL_EDRAM_MODE_SIZE;
+ unsigned int : 29;
+ } rb_modecontrol_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_modecontrol_t {
+ unsigned int : 29;
+ unsigned int edram_mode : RB_MODECONTROL_EDRAM_MODE_SIZE;
+ } rb_modecontrol_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_modecontrol_t f;
+} rb_modecontrol_u;
+
+
+/*
+ * RB_COLOR_DEST_MASK struct
+ */
+
+#define RB_COLOR_DEST_MASK_COLOR_DEST_MASK_SIZE 32
+
+#define RB_COLOR_DEST_MASK_COLOR_DEST_MASK_SHIFT 0
+
+#define RB_COLOR_DEST_MASK_COLOR_DEST_MASK_MASK 0xffffffff
+
+#define RB_COLOR_DEST_MASK_MASK \
+ (RB_COLOR_DEST_MASK_COLOR_DEST_MASK_MASK)
+
+#define RB_COLOR_DEST_MASK(color_dest_mask) \
+ ((color_dest_mask << RB_COLOR_DEST_MASK_COLOR_DEST_MASK_SHIFT))
+
+#define RB_COLOR_DEST_MASK_GET_COLOR_DEST_MASK(rb_color_dest_mask) \
+ ((rb_color_dest_mask & RB_COLOR_DEST_MASK_COLOR_DEST_MASK_MASK) >> RB_COLOR_DEST_MASK_COLOR_DEST_MASK_SHIFT)
+
+#define RB_COLOR_DEST_MASK_SET_COLOR_DEST_MASK(rb_color_dest_mask_reg, color_dest_mask) \
+ rb_color_dest_mask_reg = (rb_color_dest_mask_reg & ~RB_COLOR_DEST_MASK_COLOR_DEST_MASK_MASK) | (color_dest_mask << RB_COLOR_DEST_MASK_COLOR_DEST_MASK_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_color_dest_mask_t {
+ unsigned int color_dest_mask : RB_COLOR_DEST_MASK_COLOR_DEST_MASK_SIZE;
+ } rb_color_dest_mask_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_color_dest_mask_t {
+ unsigned int color_dest_mask : RB_COLOR_DEST_MASK_COLOR_DEST_MASK_SIZE;
+ } rb_color_dest_mask_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_color_dest_mask_t f;
+} rb_color_dest_mask_u;
+
+
+/*
+ * RB_COPY_CONTROL struct
+ */
+
+#define RB_COPY_CONTROL_COPY_SAMPLE_SELECT_SIZE 3
+#define RB_COPY_CONTROL_DEPTH_CLEAR_ENABLE_SIZE 1
+#define RB_COPY_CONTROL_CLEAR_MASK_SIZE 4
+
+#define RB_COPY_CONTROL_COPY_SAMPLE_SELECT_SHIFT 0
+#define RB_COPY_CONTROL_DEPTH_CLEAR_ENABLE_SHIFT 3
+#define RB_COPY_CONTROL_CLEAR_MASK_SHIFT 4
+
+#define RB_COPY_CONTROL_COPY_SAMPLE_SELECT_MASK 0x00000007
+#define RB_COPY_CONTROL_DEPTH_CLEAR_ENABLE_MASK 0x00000008
+#define RB_COPY_CONTROL_CLEAR_MASK_MASK 0x000000f0
+
+#define RB_COPY_CONTROL_MASK \
+ (RB_COPY_CONTROL_COPY_SAMPLE_SELECT_MASK | \
+ RB_COPY_CONTROL_DEPTH_CLEAR_ENABLE_MASK | \
+ RB_COPY_CONTROL_CLEAR_MASK_MASK)
+
+#define RB_COPY_CONTROL(copy_sample_select, depth_clear_enable, clear_mask) \
+ ((copy_sample_select << RB_COPY_CONTROL_COPY_SAMPLE_SELECT_SHIFT) | \
+ (depth_clear_enable << RB_COPY_CONTROL_DEPTH_CLEAR_ENABLE_SHIFT) | \
+ (clear_mask << RB_COPY_CONTROL_CLEAR_MASK_SHIFT))
+
+#define RB_COPY_CONTROL_GET_COPY_SAMPLE_SELECT(rb_copy_control) \
+ ((rb_copy_control & RB_COPY_CONTROL_COPY_SAMPLE_SELECT_MASK) >> RB_COPY_CONTROL_COPY_SAMPLE_SELECT_SHIFT)
+#define RB_COPY_CONTROL_GET_DEPTH_CLEAR_ENABLE(rb_copy_control) \
+ ((rb_copy_control & RB_COPY_CONTROL_DEPTH_CLEAR_ENABLE_MASK) >> RB_COPY_CONTROL_DEPTH_CLEAR_ENABLE_SHIFT)
+#define RB_COPY_CONTROL_GET_CLEAR_MASK(rb_copy_control) \
+ ((rb_copy_control & RB_COPY_CONTROL_CLEAR_MASK_MASK) >> RB_COPY_CONTROL_CLEAR_MASK_SHIFT)
+
+#define RB_COPY_CONTROL_SET_COPY_SAMPLE_SELECT(rb_copy_control_reg, copy_sample_select) \
+ rb_copy_control_reg = (rb_copy_control_reg & ~RB_COPY_CONTROL_COPY_SAMPLE_SELECT_MASK) | (copy_sample_select << RB_COPY_CONTROL_COPY_SAMPLE_SELECT_SHIFT)
+#define RB_COPY_CONTROL_SET_DEPTH_CLEAR_ENABLE(rb_copy_control_reg, depth_clear_enable) \
+ rb_copy_control_reg = (rb_copy_control_reg & ~RB_COPY_CONTROL_DEPTH_CLEAR_ENABLE_MASK) | (depth_clear_enable << RB_COPY_CONTROL_DEPTH_CLEAR_ENABLE_SHIFT)
+#define RB_COPY_CONTROL_SET_CLEAR_MASK(rb_copy_control_reg, clear_mask) \
+ rb_copy_control_reg = (rb_copy_control_reg & ~RB_COPY_CONTROL_CLEAR_MASK_MASK) | (clear_mask << RB_COPY_CONTROL_CLEAR_MASK_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_copy_control_t {
+ unsigned int copy_sample_select : RB_COPY_CONTROL_COPY_SAMPLE_SELECT_SIZE;
+ unsigned int depth_clear_enable : RB_COPY_CONTROL_DEPTH_CLEAR_ENABLE_SIZE;
+ unsigned int clear_mask : RB_COPY_CONTROL_CLEAR_MASK_SIZE;
+ unsigned int : 24;
+ } rb_copy_control_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_copy_control_t {
+ unsigned int : 24;
+ unsigned int clear_mask : RB_COPY_CONTROL_CLEAR_MASK_SIZE;
+ unsigned int depth_clear_enable : RB_COPY_CONTROL_DEPTH_CLEAR_ENABLE_SIZE;
+ unsigned int copy_sample_select : RB_COPY_CONTROL_COPY_SAMPLE_SELECT_SIZE;
+ } rb_copy_control_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_copy_control_t f;
+} rb_copy_control_u;
+
+
+/*
+ * RB_COPY_DEST_BASE struct
+ */
+
+#define RB_COPY_DEST_BASE_COPY_DEST_BASE_SIZE 20
+
+#define RB_COPY_DEST_BASE_COPY_DEST_BASE_SHIFT 12
+
+#define RB_COPY_DEST_BASE_COPY_DEST_BASE_MASK 0xfffff000
+
+#define RB_COPY_DEST_BASE_MASK \
+ (RB_COPY_DEST_BASE_COPY_DEST_BASE_MASK)
+
+#define RB_COPY_DEST_BASE(copy_dest_base) \
+ ((copy_dest_base << RB_COPY_DEST_BASE_COPY_DEST_BASE_SHIFT))
+
+#define RB_COPY_DEST_BASE_GET_COPY_DEST_BASE(rb_copy_dest_base) \
+ ((rb_copy_dest_base & RB_COPY_DEST_BASE_COPY_DEST_BASE_MASK) >> RB_COPY_DEST_BASE_COPY_DEST_BASE_SHIFT)
+
+#define RB_COPY_DEST_BASE_SET_COPY_DEST_BASE(rb_copy_dest_base_reg, copy_dest_base) \
+ rb_copy_dest_base_reg = (rb_copy_dest_base_reg & ~RB_COPY_DEST_BASE_COPY_DEST_BASE_MASK) | (copy_dest_base << RB_COPY_DEST_BASE_COPY_DEST_BASE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_copy_dest_base_t {
+ unsigned int : 12;
+ unsigned int copy_dest_base : RB_COPY_DEST_BASE_COPY_DEST_BASE_SIZE;
+ } rb_copy_dest_base_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_copy_dest_base_t {
+ unsigned int copy_dest_base : RB_COPY_DEST_BASE_COPY_DEST_BASE_SIZE;
+ unsigned int : 12;
+ } rb_copy_dest_base_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_copy_dest_base_t f;
+} rb_copy_dest_base_u;
+
+
+/*
+ * RB_COPY_DEST_PITCH struct
+ */
+
+#define RB_COPY_DEST_PITCH_COPY_DEST_PITCH_SIZE 9
+
+#define RB_COPY_DEST_PITCH_COPY_DEST_PITCH_SHIFT 0
+
+#define RB_COPY_DEST_PITCH_COPY_DEST_PITCH_MASK 0x000001ff
+
+#define RB_COPY_DEST_PITCH_MASK \
+ (RB_COPY_DEST_PITCH_COPY_DEST_PITCH_MASK)
+
+#define RB_COPY_DEST_PITCH(copy_dest_pitch) \
+ ((copy_dest_pitch << RB_COPY_DEST_PITCH_COPY_DEST_PITCH_SHIFT))
+
+#define RB_COPY_DEST_PITCH_GET_COPY_DEST_PITCH(rb_copy_dest_pitch) \
+ ((rb_copy_dest_pitch & RB_COPY_DEST_PITCH_COPY_DEST_PITCH_MASK) >> RB_COPY_DEST_PITCH_COPY_DEST_PITCH_SHIFT)
+
+#define RB_COPY_DEST_PITCH_SET_COPY_DEST_PITCH(rb_copy_dest_pitch_reg, copy_dest_pitch) \
+ rb_copy_dest_pitch_reg = (rb_copy_dest_pitch_reg & ~RB_COPY_DEST_PITCH_COPY_DEST_PITCH_MASK) | (copy_dest_pitch << RB_COPY_DEST_PITCH_COPY_DEST_PITCH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_copy_dest_pitch_t {
+ unsigned int copy_dest_pitch : RB_COPY_DEST_PITCH_COPY_DEST_PITCH_SIZE;
+ unsigned int : 23;
+ } rb_copy_dest_pitch_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_copy_dest_pitch_t {
+ unsigned int : 23;
+ unsigned int copy_dest_pitch : RB_COPY_DEST_PITCH_COPY_DEST_PITCH_SIZE;
+ } rb_copy_dest_pitch_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_copy_dest_pitch_t f;
+} rb_copy_dest_pitch_u;
+
+
+/*
+ * RB_COPY_DEST_INFO struct
+ */
+
+#define RB_COPY_DEST_INFO_COPY_DEST_ENDIAN_SIZE 3
+#define RB_COPY_DEST_INFO_COPY_DEST_LINEAR_SIZE 1
+#define RB_COPY_DEST_INFO_COPY_DEST_FORMAT_SIZE 4
+#define RB_COPY_DEST_INFO_COPY_DEST_SWAP_SIZE 2
+#define RB_COPY_DEST_INFO_COPY_DEST_DITHER_MODE_SIZE 2
+#define RB_COPY_DEST_INFO_COPY_DEST_DITHER_TYPE_SIZE 2
+#define RB_COPY_DEST_INFO_COPY_MASK_WRITE_RED_SIZE 1
+#define RB_COPY_DEST_INFO_COPY_MASK_WRITE_GREEN_SIZE 1
+#define RB_COPY_DEST_INFO_COPY_MASK_WRITE_BLUE_SIZE 1
+#define RB_COPY_DEST_INFO_COPY_MASK_WRITE_ALPHA_SIZE 1
+
+#define RB_COPY_DEST_INFO_COPY_DEST_ENDIAN_SHIFT 0
+#define RB_COPY_DEST_INFO_COPY_DEST_LINEAR_SHIFT 3
+#define RB_COPY_DEST_INFO_COPY_DEST_FORMAT_SHIFT 4
+#define RB_COPY_DEST_INFO_COPY_DEST_SWAP_SHIFT 8
+#define RB_COPY_DEST_INFO_COPY_DEST_DITHER_MODE_SHIFT 10
+#define RB_COPY_DEST_INFO_COPY_DEST_DITHER_TYPE_SHIFT 12
+#define RB_COPY_DEST_INFO_COPY_MASK_WRITE_RED_SHIFT 14
+#define RB_COPY_DEST_INFO_COPY_MASK_WRITE_GREEN_SHIFT 15
+#define RB_COPY_DEST_INFO_COPY_MASK_WRITE_BLUE_SHIFT 16
+#define RB_COPY_DEST_INFO_COPY_MASK_WRITE_ALPHA_SHIFT 17
+
+#define RB_COPY_DEST_INFO_COPY_DEST_ENDIAN_MASK 0x00000007
+#define RB_COPY_DEST_INFO_COPY_DEST_LINEAR_MASK 0x00000008
+#define RB_COPY_DEST_INFO_COPY_DEST_FORMAT_MASK 0x000000f0
+#define RB_COPY_DEST_INFO_COPY_DEST_SWAP_MASK 0x00000300
+#define RB_COPY_DEST_INFO_COPY_DEST_DITHER_MODE_MASK 0x00000c00
+#define RB_COPY_DEST_INFO_COPY_DEST_DITHER_TYPE_MASK 0x00003000
+#define RB_COPY_DEST_INFO_COPY_MASK_WRITE_RED_MASK 0x00004000
+#define RB_COPY_DEST_INFO_COPY_MASK_WRITE_GREEN_MASK 0x00008000
+#define RB_COPY_DEST_INFO_COPY_MASK_WRITE_BLUE_MASK 0x00010000
+#define RB_COPY_DEST_INFO_COPY_MASK_WRITE_ALPHA_MASK 0x00020000
+
+#define RB_COPY_DEST_INFO_MASK \
+ (RB_COPY_DEST_INFO_COPY_DEST_ENDIAN_MASK | \
+ RB_COPY_DEST_INFO_COPY_DEST_LINEAR_MASK | \
+ RB_COPY_DEST_INFO_COPY_DEST_FORMAT_MASK | \
+ RB_COPY_DEST_INFO_COPY_DEST_SWAP_MASK | \
+ RB_COPY_DEST_INFO_COPY_DEST_DITHER_MODE_MASK | \
+ RB_COPY_DEST_INFO_COPY_DEST_DITHER_TYPE_MASK | \
+ RB_COPY_DEST_INFO_COPY_MASK_WRITE_RED_MASK | \
+ RB_COPY_DEST_INFO_COPY_MASK_WRITE_GREEN_MASK | \
+ RB_COPY_DEST_INFO_COPY_MASK_WRITE_BLUE_MASK | \
+ RB_COPY_DEST_INFO_COPY_MASK_WRITE_ALPHA_MASK)
+
+#define RB_COPY_DEST_INFO(copy_dest_endian, copy_dest_linear, copy_dest_format, copy_dest_swap, copy_dest_dither_mode, copy_dest_dither_type, copy_mask_write_red, copy_mask_write_green, copy_mask_write_blue, copy_mask_write_alpha) \
+ ((copy_dest_endian << RB_COPY_DEST_INFO_COPY_DEST_ENDIAN_SHIFT) | \
+ (copy_dest_linear << RB_COPY_DEST_INFO_COPY_DEST_LINEAR_SHIFT) | \
+ (copy_dest_format << RB_COPY_DEST_INFO_COPY_DEST_FORMAT_SHIFT) | \
+ (copy_dest_swap << RB_COPY_DEST_INFO_COPY_DEST_SWAP_SHIFT) | \
+ (copy_dest_dither_mode << RB_COPY_DEST_INFO_COPY_DEST_DITHER_MODE_SHIFT) | \
+ (copy_dest_dither_type << RB_COPY_DEST_INFO_COPY_DEST_DITHER_TYPE_SHIFT) | \
+ (copy_mask_write_red << RB_COPY_DEST_INFO_COPY_MASK_WRITE_RED_SHIFT) | \
+ (copy_mask_write_green << RB_COPY_DEST_INFO_COPY_MASK_WRITE_GREEN_SHIFT) | \
+ (copy_mask_write_blue << RB_COPY_DEST_INFO_COPY_MASK_WRITE_BLUE_SHIFT) | \
+ (copy_mask_write_alpha << RB_COPY_DEST_INFO_COPY_MASK_WRITE_ALPHA_SHIFT))
+
+#define RB_COPY_DEST_INFO_GET_COPY_DEST_ENDIAN(rb_copy_dest_info) \
+ ((rb_copy_dest_info & RB_COPY_DEST_INFO_COPY_DEST_ENDIAN_MASK) >> RB_COPY_DEST_INFO_COPY_DEST_ENDIAN_SHIFT)
+#define RB_COPY_DEST_INFO_GET_COPY_DEST_LINEAR(rb_copy_dest_info) \
+ ((rb_copy_dest_info & RB_COPY_DEST_INFO_COPY_DEST_LINEAR_MASK) >> RB_COPY_DEST_INFO_COPY_DEST_LINEAR_SHIFT)
+#define RB_COPY_DEST_INFO_GET_COPY_DEST_FORMAT(rb_copy_dest_info) \
+ ((rb_copy_dest_info & RB_COPY_DEST_INFO_COPY_DEST_FORMAT_MASK) >> RB_COPY_DEST_INFO_COPY_DEST_FORMAT_SHIFT)
+#define RB_COPY_DEST_INFO_GET_COPY_DEST_SWAP(rb_copy_dest_info) \
+ ((rb_copy_dest_info & RB_COPY_DEST_INFO_COPY_DEST_SWAP_MASK) >> RB_COPY_DEST_INFO_COPY_DEST_SWAP_SHIFT)
+#define RB_COPY_DEST_INFO_GET_COPY_DEST_DITHER_MODE(rb_copy_dest_info) \
+ ((rb_copy_dest_info & RB_COPY_DEST_INFO_COPY_DEST_DITHER_MODE_MASK) >> RB_COPY_DEST_INFO_COPY_DEST_DITHER_MODE_SHIFT)
+#define RB_COPY_DEST_INFO_GET_COPY_DEST_DITHER_TYPE(rb_copy_dest_info) \
+ ((rb_copy_dest_info & RB_COPY_DEST_INFO_COPY_DEST_DITHER_TYPE_MASK) >> RB_COPY_DEST_INFO_COPY_DEST_DITHER_TYPE_SHIFT)
+#define RB_COPY_DEST_INFO_GET_COPY_MASK_WRITE_RED(rb_copy_dest_info) \
+ ((rb_copy_dest_info & RB_COPY_DEST_INFO_COPY_MASK_WRITE_RED_MASK) >> RB_COPY_DEST_INFO_COPY_MASK_WRITE_RED_SHIFT)
+#define RB_COPY_DEST_INFO_GET_COPY_MASK_WRITE_GREEN(rb_copy_dest_info) \
+ ((rb_copy_dest_info & RB_COPY_DEST_INFO_COPY_MASK_WRITE_GREEN_MASK) >> RB_COPY_DEST_INFO_COPY_MASK_WRITE_GREEN_SHIFT)
+#define RB_COPY_DEST_INFO_GET_COPY_MASK_WRITE_BLUE(rb_copy_dest_info) \
+ ((rb_copy_dest_info & RB_COPY_DEST_INFO_COPY_MASK_WRITE_BLUE_MASK) >> RB_COPY_DEST_INFO_COPY_MASK_WRITE_BLUE_SHIFT)
+#define RB_COPY_DEST_INFO_GET_COPY_MASK_WRITE_ALPHA(rb_copy_dest_info) \
+ ((rb_copy_dest_info & RB_COPY_DEST_INFO_COPY_MASK_WRITE_ALPHA_MASK) >> RB_COPY_DEST_INFO_COPY_MASK_WRITE_ALPHA_SHIFT)
+
+#define RB_COPY_DEST_INFO_SET_COPY_DEST_ENDIAN(rb_copy_dest_info_reg, copy_dest_endian) \
+ rb_copy_dest_info_reg = (rb_copy_dest_info_reg & ~RB_COPY_DEST_INFO_COPY_DEST_ENDIAN_MASK) | (copy_dest_endian << RB_COPY_DEST_INFO_COPY_DEST_ENDIAN_SHIFT)
+#define RB_COPY_DEST_INFO_SET_COPY_DEST_LINEAR(rb_copy_dest_info_reg, copy_dest_linear) \
+ rb_copy_dest_info_reg = (rb_copy_dest_info_reg & ~RB_COPY_DEST_INFO_COPY_DEST_LINEAR_MASK) | (copy_dest_linear << RB_COPY_DEST_INFO_COPY_DEST_LINEAR_SHIFT)
+#define RB_COPY_DEST_INFO_SET_COPY_DEST_FORMAT(rb_copy_dest_info_reg, copy_dest_format) \
+ rb_copy_dest_info_reg = (rb_copy_dest_info_reg & ~RB_COPY_DEST_INFO_COPY_DEST_FORMAT_MASK) | (copy_dest_format << RB_COPY_DEST_INFO_COPY_DEST_FORMAT_SHIFT)
+#define RB_COPY_DEST_INFO_SET_COPY_DEST_SWAP(rb_copy_dest_info_reg, copy_dest_swap) \
+ rb_copy_dest_info_reg = (rb_copy_dest_info_reg & ~RB_COPY_DEST_INFO_COPY_DEST_SWAP_MASK) | (copy_dest_swap << RB_COPY_DEST_INFO_COPY_DEST_SWAP_SHIFT)
+#define RB_COPY_DEST_INFO_SET_COPY_DEST_DITHER_MODE(rb_copy_dest_info_reg, copy_dest_dither_mode) \
+ rb_copy_dest_info_reg = (rb_copy_dest_info_reg & ~RB_COPY_DEST_INFO_COPY_DEST_DITHER_MODE_MASK) | (copy_dest_dither_mode << RB_COPY_DEST_INFO_COPY_DEST_DITHER_MODE_SHIFT)
+#define RB_COPY_DEST_INFO_SET_COPY_DEST_DITHER_TYPE(rb_copy_dest_info_reg, copy_dest_dither_type) \
+ rb_copy_dest_info_reg = (rb_copy_dest_info_reg & ~RB_COPY_DEST_INFO_COPY_DEST_DITHER_TYPE_MASK) | (copy_dest_dither_type << RB_COPY_DEST_INFO_COPY_DEST_DITHER_TYPE_SHIFT)
+#define RB_COPY_DEST_INFO_SET_COPY_MASK_WRITE_RED(rb_copy_dest_info_reg, copy_mask_write_red) \
+ rb_copy_dest_info_reg = (rb_copy_dest_info_reg & ~RB_COPY_DEST_INFO_COPY_MASK_WRITE_RED_MASK) | (copy_mask_write_red << RB_COPY_DEST_INFO_COPY_MASK_WRITE_RED_SHIFT)
+#define RB_COPY_DEST_INFO_SET_COPY_MASK_WRITE_GREEN(rb_copy_dest_info_reg, copy_mask_write_green) \
+ rb_copy_dest_info_reg = (rb_copy_dest_info_reg & ~RB_COPY_DEST_INFO_COPY_MASK_WRITE_GREEN_MASK) | (copy_mask_write_green << RB_COPY_DEST_INFO_COPY_MASK_WRITE_GREEN_SHIFT)
+#define RB_COPY_DEST_INFO_SET_COPY_MASK_WRITE_BLUE(rb_copy_dest_info_reg, copy_mask_write_blue) \
+ rb_copy_dest_info_reg = (rb_copy_dest_info_reg & ~RB_COPY_DEST_INFO_COPY_MASK_WRITE_BLUE_MASK) | (copy_mask_write_blue << RB_COPY_DEST_INFO_COPY_MASK_WRITE_BLUE_SHIFT)
+#define RB_COPY_DEST_INFO_SET_COPY_MASK_WRITE_ALPHA(rb_copy_dest_info_reg, copy_mask_write_alpha) \
+ rb_copy_dest_info_reg = (rb_copy_dest_info_reg & ~RB_COPY_DEST_INFO_COPY_MASK_WRITE_ALPHA_MASK) | (copy_mask_write_alpha << RB_COPY_DEST_INFO_COPY_MASK_WRITE_ALPHA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_copy_dest_info_t {
+ unsigned int copy_dest_endian : RB_COPY_DEST_INFO_COPY_DEST_ENDIAN_SIZE;
+ unsigned int copy_dest_linear : RB_COPY_DEST_INFO_COPY_DEST_LINEAR_SIZE;
+ unsigned int copy_dest_format : RB_COPY_DEST_INFO_COPY_DEST_FORMAT_SIZE;
+ unsigned int copy_dest_swap : RB_COPY_DEST_INFO_COPY_DEST_SWAP_SIZE;
+ unsigned int copy_dest_dither_mode : RB_COPY_DEST_INFO_COPY_DEST_DITHER_MODE_SIZE;
+ unsigned int copy_dest_dither_type : RB_COPY_DEST_INFO_COPY_DEST_DITHER_TYPE_SIZE;
+ unsigned int copy_mask_write_red : RB_COPY_DEST_INFO_COPY_MASK_WRITE_RED_SIZE;
+ unsigned int copy_mask_write_green : RB_COPY_DEST_INFO_COPY_MASK_WRITE_GREEN_SIZE;
+ unsigned int copy_mask_write_blue : RB_COPY_DEST_INFO_COPY_MASK_WRITE_BLUE_SIZE;
+ unsigned int copy_mask_write_alpha : RB_COPY_DEST_INFO_COPY_MASK_WRITE_ALPHA_SIZE;
+ unsigned int : 14;
+ } rb_copy_dest_info_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_copy_dest_info_t {
+ unsigned int : 14;
+ unsigned int copy_mask_write_alpha : RB_COPY_DEST_INFO_COPY_MASK_WRITE_ALPHA_SIZE;
+ unsigned int copy_mask_write_blue : RB_COPY_DEST_INFO_COPY_MASK_WRITE_BLUE_SIZE;
+ unsigned int copy_mask_write_green : RB_COPY_DEST_INFO_COPY_MASK_WRITE_GREEN_SIZE;
+ unsigned int copy_mask_write_red : RB_COPY_DEST_INFO_COPY_MASK_WRITE_RED_SIZE;
+ unsigned int copy_dest_dither_type : RB_COPY_DEST_INFO_COPY_DEST_DITHER_TYPE_SIZE;
+ unsigned int copy_dest_dither_mode : RB_COPY_DEST_INFO_COPY_DEST_DITHER_MODE_SIZE;
+ unsigned int copy_dest_swap : RB_COPY_DEST_INFO_COPY_DEST_SWAP_SIZE;
+ unsigned int copy_dest_format : RB_COPY_DEST_INFO_COPY_DEST_FORMAT_SIZE;
+ unsigned int copy_dest_linear : RB_COPY_DEST_INFO_COPY_DEST_LINEAR_SIZE;
+ unsigned int copy_dest_endian : RB_COPY_DEST_INFO_COPY_DEST_ENDIAN_SIZE;
+ } rb_copy_dest_info_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_copy_dest_info_t f;
+} rb_copy_dest_info_u;
+
+
+/*
+ * RB_COPY_DEST_PIXEL_OFFSET struct
+ */
+
+#define RB_COPY_DEST_PIXEL_OFFSET_OFFSET_X_SIZE 13
+#define RB_COPY_DEST_PIXEL_OFFSET_OFFSET_Y_SIZE 13
+
+#define RB_COPY_DEST_PIXEL_OFFSET_OFFSET_X_SHIFT 0
+#define RB_COPY_DEST_PIXEL_OFFSET_OFFSET_Y_SHIFT 13
+
+#define RB_COPY_DEST_PIXEL_OFFSET_OFFSET_X_MASK 0x00001fff
+#define RB_COPY_DEST_PIXEL_OFFSET_OFFSET_Y_MASK 0x03ffe000
+
+#define RB_COPY_DEST_PIXEL_OFFSET_MASK \
+ (RB_COPY_DEST_PIXEL_OFFSET_OFFSET_X_MASK | \
+ RB_COPY_DEST_PIXEL_OFFSET_OFFSET_Y_MASK)
+
+#define RB_COPY_DEST_PIXEL_OFFSET(offset_x, offset_y) \
+ ((offset_x << RB_COPY_DEST_PIXEL_OFFSET_OFFSET_X_SHIFT) | \
+ (offset_y << RB_COPY_DEST_PIXEL_OFFSET_OFFSET_Y_SHIFT))
+
+#define RB_COPY_DEST_PIXEL_OFFSET_GET_OFFSET_X(rb_copy_dest_pixel_offset) \
+ ((rb_copy_dest_pixel_offset & RB_COPY_DEST_PIXEL_OFFSET_OFFSET_X_MASK) >> RB_COPY_DEST_PIXEL_OFFSET_OFFSET_X_SHIFT)
+#define RB_COPY_DEST_PIXEL_OFFSET_GET_OFFSET_Y(rb_copy_dest_pixel_offset) \
+ ((rb_copy_dest_pixel_offset & RB_COPY_DEST_PIXEL_OFFSET_OFFSET_Y_MASK) >> RB_COPY_DEST_PIXEL_OFFSET_OFFSET_Y_SHIFT)
+
+#define RB_COPY_DEST_PIXEL_OFFSET_SET_OFFSET_X(rb_copy_dest_pixel_offset_reg, offset_x) \
+ rb_copy_dest_pixel_offset_reg = (rb_copy_dest_pixel_offset_reg & ~RB_COPY_DEST_PIXEL_OFFSET_OFFSET_X_MASK) | (offset_x << RB_COPY_DEST_PIXEL_OFFSET_OFFSET_X_SHIFT)
+#define RB_COPY_DEST_PIXEL_OFFSET_SET_OFFSET_Y(rb_copy_dest_pixel_offset_reg, offset_y) \
+ rb_copy_dest_pixel_offset_reg = (rb_copy_dest_pixel_offset_reg & ~RB_COPY_DEST_PIXEL_OFFSET_OFFSET_Y_MASK) | (offset_y << RB_COPY_DEST_PIXEL_OFFSET_OFFSET_Y_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_copy_dest_pixel_offset_t {
+ unsigned int offset_x : RB_COPY_DEST_PIXEL_OFFSET_OFFSET_X_SIZE;
+ unsigned int offset_y : RB_COPY_DEST_PIXEL_OFFSET_OFFSET_Y_SIZE;
+ unsigned int : 6;
+ } rb_copy_dest_pixel_offset_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_copy_dest_pixel_offset_t {
+ unsigned int : 6;
+ unsigned int offset_y : RB_COPY_DEST_PIXEL_OFFSET_OFFSET_Y_SIZE;
+ unsigned int offset_x : RB_COPY_DEST_PIXEL_OFFSET_OFFSET_X_SIZE;
+ } rb_copy_dest_pixel_offset_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_copy_dest_pixel_offset_t f;
+} rb_copy_dest_pixel_offset_u;
+
+
+/*
+ * RB_DEPTH_CLEAR struct
+ */
+
+#define RB_DEPTH_CLEAR_DEPTH_CLEAR_SIZE 32
+
+#define RB_DEPTH_CLEAR_DEPTH_CLEAR_SHIFT 0
+
+#define RB_DEPTH_CLEAR_DEPTH_CLEAR_MASK 0xffffffff
+
+#define RB_DEPTH_CLEAR_MASK \
+ (RB_DEPTH_CLEAR_DEPTH_CLEAR_MASK)
+
+#define RB_DEPTH_CLEAR(depth_clear) \
+ ((depth_clear << RB_DEPTH_CLEAR_DEPTH_CLEAR_SHIFT))
+
+#define RB_DEPTH_CLEAR_GET_DEPTH_CLEAR(rb_depth_clear) \
+ ((rb_depth_clear & RB_DEPTH_CLEAR_DEPTH_CLEAR_MASK) >> RB_DEPTH_CLEAR_DEPTH_CLEAR_SHIFT)
+
+#define RB_DEPTH_CLEAR_SET_DEPTH_CLEAR(rb_depth_clear_reg, depth_clear) \
+ rb_depth_clear_reg = (rb_depth_clear_reg & ~RB_DEPTH_CLEAR_DEPTH_CLEAR_MASK) | (depth_clear << RB_DEPTH_CLEAR_DEPTH_CLEAR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_depth_clear_t {
+ unsigned int depth_clear : RB_DEPTH_CLEAR_DEPTH_CLEAR_SIZE;
+ } rb_depth_clear_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_depth_clear_t {
+ unsigned int depth_clear : RB_DEPTH_CLEAR_DEPTH_CLEAR_SIZE;
+ } rb_depth_clear_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_depth_clear_t f;
+} rb_depth_clear_u;
+
+
+/*
+ * RB_SAMPLE_COUNT_CTL struct
+ */
+
+#define RB_SAMPLE_COUNT_CTL_RESET_SAMPLE_COUNT_SIZE 1
+#define RB_SAMPLE_COUNT_CTL_COPY_SAMPLE_COUNT_SIZE 1
+
+#define RB_SAMPLE_COUNT_CTL_RESET_SAMPLE_COUNT_SHIFT 0
+#define RB_SAMPLE_COUNT_CTL_COPY_SAMPLE_COUNT_SHIFT 1
+
+#define RB_SAMPLE_COUNT_CTL_RESET_SAMPLE_COUNT_MASK 0x00000001
+#define RB_SAMPLE_COUNT_CTL_COPY_SAMPLE_COUNT_MASK 0x00000002
+
+#define RB_SAMPLE_COUNT_CTL_MASK \
+ (RB_SAMPLE_COUNT_CTL_RESET_SAMPLE_COUNT_MASK | \
+ RB_SAMPLE_COUNT_CTL_COPY_SAMPLE_COUNT_MASK)
+
+#define RB_SAMPLE_COUNT_CTL(reset_sample_count, copy_sample_count) \
+ ((reset_sample_count << RB_SAMPLE_COUNT_CTL_RESET_SAMPLE_COUNT_SHIFT) | \
+ (copy_sample_count << RB_SAMPLE_COUNT_CTL_COPY_SAMPLE_COUNT_SHIFT))
+
+#define RB_SAMPLE_COUNT_CTL_GET_RESET_SAMPLE_COUNT(rb_sample_count_ctl) \
+ ((rb_sample_count_ctl & RB_SAMPLE_COUNT_CTL_RESET_SAMPLE_COUNT_MASK) >> RB_SAMPLE_COUNT_CTL_RESET_SAMPLE_COUNT_SHIFT)
+#define RB_SAMPLE_COUNT_CTL_GET_COPY_SAMPLE_COUNT(rb_sample_count_ctl) \
+ ((rb_sample_count_ctl & RB_SAMPLE_COUNT_CTL_COPY_SAMPLE_COUNT_MASK) >> RB_SAMPLE_COUNT_CTL_COPY_SAMPLE_COUNT_SHIFT)
+
+#define RB_SAMPLE_COUNT_CTL_SET_RESET_SAMPLE_COUNT(rb_sample_count_ctl_reg, reset_sample_count) \
+ rb_sample_count_ctl_reg = (rb_sample_count_ctl_reg & ~RB_SAMPLE_COUNT_CTL_RESET_SAMPLE_COUNT_MASK) | (reset_sample_count << RB_SAMPLE_COUNT_CTL_RESET_SAMPLE_COUNT_SHIFT)
+#define RB_SAMPLE_COUNT_CTL_SET_COPY_SAMPLE_COUNT(rb_sample_count_ctl_reg, copy_sample_count) \
+ rb_sample_count_ctl_reg = (rb_sample_count_ctl_reg & ~RB_SAMPLE_COUNT_CTL_COPY_SAMPLE_COUNT_MASK) | (copy_sample_count << RB_SAMPLE_COUNT_CTL_COPY_SAMPLE_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_sample_count_ctl_t {
+ unsigned int reset_sample_count : RB_SAMPLE_COUNT_CTL_RESET_SAMPLE_COUNT_SIZE;
+ unsigned int copy_sample_count : RB_SAMPLE_COUNT_CTL_COPY_SAMPLE_COUNT_SIZE;
+ unsigned int : 30;
+ } rb_sample_count_ctl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_sample_count_ctl_t {
+ unsigned int : 30;
+ unsigned int copy_sample_count : RB_SAMPLE_COUNT_CTL_COPY_SAMPLE_COUNT_SIZE;
+ unsigned int reset_sample_count : RB_SAMPLE_COUNT_CTL_RESET_SAMPLE_COUNT_SIZE;
+ } rb_sample_count_ctl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_sample_count_ctl_t f;
+} rb_sample_count_ctl_u;
+
+
+/*
+ * RB_SAMPLE_COUNT_ADDR struct
+ */
+
+#define RB_SAMPLE_COUNT_ADDR_SAMPLE_COUNT_ADDR_SIZE 32
+
+#define RB_SAMPLE_COUNT_ADDR_SAMPLE_COUNT_ADDR_SHIFT 0
+
+#define RB_SAMPLE_COUNT_ADDR_SAMPLE_COUNT_ADDR_MASK 0xffffffff
+
+#define RB_SAMPLE_COUNT_ADDR_MASK \
+ (RB_SAMPLE_COUNT_ADDR_SAMPLE_COUNT_ADDR_MASK)
+
+#define RB_SAMPLE_COUNT_ADDR(sample_count_addr) \
+ ((sample_count_addr << RB_SAMPLE_COUNT_ADDR_SAMPLE_COUNT_ADDR_SHIFT))
+
+#define RB_SAMPLE_COUNT_ADDR_GET_SAMPLE_COUNT_ADDR(rb_sample_count_addr) \
+ ((rb_sample_count_addr & RB_SAMPLE_COUNT_ADDR_SAMPLE_COUNT_ADDR_MASK) >> RB_SAMPLE_COUNT_ADDR_SAMPLE_COUNT_ADDR_SHIFT)
+
+#define RB_SAMPLE_COUNT_ADDR_SET_SAMPLE_COUNT_ADDR(rb_sample_count_addr_reg, sample_count_addr) \
+ rb_sample_count_addr_reg = (rb_sample_count_addr_reg & ~RB_SAMPLE_COUNT_ADDR_SAMPLE_COUNT_ADDR_MASK) | (sample_count_addr << RB_SAMPLE_COUNT_ADDR_SAMPLE_COUNT_ADDR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_sample_count_addr_t {
+ unsigned int sample_count_addr : RB_SAMPLE_COUNT_ADDR_SAMPLE_COUNT_ADDR_SIZE;
+ } rb_sample_count_addr_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_sample_count_addr_t {
+ unsigned int sample_count_addr : RB_SAMPLE_COUNT_ADDR_SAMPLE_COUNT_ADDR_SIZE;
+ } rb_sample_count_addr_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_sample_count_addr_t f;
+} rb_sample_count_addr_u;
+
+
+/*
+ * RB_BC_CONTROL struct
+ */
+
+#define RB_BC_CONTROL_ACCUM_LINEAR_MODE_ENABLE_SIZE 1
+#define RB_BC_CONTROL_ACCUM_TIMEOUT_SELECT_SIZE 2
+#define RB_BC_CONTROL_DISABLE_EDRAM_CAM_SIZE 1
+#define RB_BC_CONTROL_DISABLE_EZ_FAST_CONTEXT_SWITCH_SIZE 1
+#define RB_BC_CONTROL_DISABLE_EZ_NULL_ZCMD_DROP_SIZE 1
+#define RB_BC_CONTROL_DISABLE_LZ_NULL_ZCMD_DROP_SIZE 1
+#define RB_BC_CONTROL_ENABLE_AZ_THROTTLE_SIZE 1
+#define RB_BC_CONTROL_AZ_THROTTLE_COUNT_SIZE 5
+#define RB_BC_CONTROL_ENABLE_CRC_UPDATE_SIZE 1
+#define RB_BC_CONTROL_CRC_MODE_SIZE 1
+#define RB_BC_CONTROL_DISABLE_SAMPLE_COUNTERS_SIZE 1
+#define RB_BC_CONTROL_DISABLE_ACCUM_SIZE 1
+#define RB_BC_CONTROL_ACCUM_ALLOC_MASK_SIZE 4
+#define RB_BC_CONTROL_LINEAR_PERFORMANCE_ENABLE_SIZE 1
+#define RB_BC_CONTROL_ACCUM_DATA_FIFO_LIMIT_SIZE 4
+#define RB_BC_CONTROL_MEM_EXPORT_TIMEOUT_SELECT_SIZE 2
+#define RB_BC_CONTROL_MEM_EXPORT_LINEAR_MODE_ENABLE_SIZE 1
+#define RB_BC_CONTROL_CRC_SYSTEM_SIZE 1
+#define RB_BC_CONTROL_RESERVED6_SIZE 1
+
+#define RB_BC_CONTROL_ACCUM_LINEAR_MODE_ENABLE_SHIFT 0
+#define RB_BC_CONTROL_ACCUM_TIMEOUT_SELECT_SHIFT 1
+#define RB_BC_CONTROL_DISABLE_EDRAM_CAM_SHIFT 3
+#define RB_BC_CONTROL_DISABLE_EZ_FAST_CONTEXT_SWITCH_SHIFT 4
+#define RB_BC_CONTROL_DISABLE_EZ_NULL_ZCMD_DROP_SHIFT 5
+#define RB_BC_CONTROL_DISABLE_LZ_NULL_ZCMD_DROP_SHIFT 6
+#define RB_BC_CONTROL_ENABLE_AZ_THROTTLE_SHIFT 7
+#define RB_BC_CONTROL_AZ_THROTTLE_COUNT_SHIFT 8
+#define RB_BC_CONTROL_ENABLE_CRC_UPDATE_SHIFT 14
+#define RB_BC_CONTROL_CRC_MODE_SHIFT 15
+#define RB_BC_CONTROL_DISABLE_SAMPLE_COUNTERS_SHIFT 16
+#define RB_BC_CONTROL_DISABLE_ACCUM_SHIFT 17
+#define RB_BC_CONTROL_ACCUM_ALLOC_MASK_SHIFT 18
+#define RB_BC_CONTROL_LINEAR_PERFORMANCE_ENABLE_SHIFT 22
+#define RB_BC_CONTROL_ACCUM_DATA_FIFO_LIMIT_SHIFT 23
+#define RB_BC_CONTROL_MEM_EXPORT_TIMEOUT_SELECT_SHIFT 27
+#define RB_BC_CONTROL_MEM_EXPORT_LINEAR_MODE_ENABLE_SHIFT 29
+#define RB_BC_CONTROL_CRC_SYSTEM_SHIFT 30
+#define RB_BC_CONTROL_RESERVED6_SHIFT 31
+
+#define RB_BC_CONTROL_ACCUM_LINEAR_MODE_ENABLE_MASK 0x00000001
+#define RB_BC_CONTROL_ACCUM_TIMEOUT_SELECT_MASK 0x00000006
+#define RB_BC_CONTROL_DISABLE_EDRAM_CAM_MASK 0x00000008
+#define RB_BC_CONTROL_DISABLE_EZ_FAST_CONTEXT_SWITCH_MASK 0x00000010
+#define RB_BC_CONTROL_DISABLE_EZ_NULL_ZCMD_DROP_MASK 0x00000020
+#define RB_BC_CONTROL_DISABLE_LZ_NULL_ZCMD_DROP_MASK 0x00000040
+#define RB_BC_CONTROL_ENABLE_AZ_THROTTLE_MASK 0x00000080
+#define RB_BC_CONTROL_AZ_THROTTLE_COUNT_MASK 0x00001f00
+#define RB_BC_CONTROL_ENABLE_CRC_UPDATE_MASK 0x00004000
+#define RB_BC_CONTROL_CRC_MODE_MASK 0x00008000
+#define RB_BC_CONTROL_DISABLE_SAMPLE_COUNTERS_MASK 0x00010000
+#define RB_BC_CONTROL_DISABLE_ACCUM_MASK 0x00020000
+#define RB_BC_CONTROL_ACCUM_ALLOC_MASK_MASK 0x003c0000
+#define RB_BC_CONTROL_LINEAR_PERFORMANCE_ENABLE_MASK 0x00400000
+#define RB_BC_CONTROL_ACCUM_DATA_FIFO_LIMIT_MASK 0x07800000
+#define RB_BC_CONTROL_MEM_EXPORT_TIMEOUT_SELECT_MASK 0x18000000
+#define RB_BC_CONTROL_MEM_EXPORT_LINEAR_MODE_ENABLE_MASK 0x20000000
+#define RB_BC_CONTROL_CRC_SYSTEM_MASK 0x40000000
+#define RB_BC_CONTROL_RESERVED6_MASK 0x80000000
+
+#define RB_BC_CONTROL_MASK \
+ (RB_BC_CONTROL_ACCUM_LINEAR_MODE_ENABLE_MASK | \
+ RB_BC_CONTROL_ACCUM_TIMEOUT_SELECT_MASK | \
+ RB_BC_CONTROL_DISABLE_EDRAM_CAM_MASK | \
+ RB_BC_CONTROL_DISABLE_EZ_FAST_CONTEXT_SWITCH_MASK | \
+ RB_BC_CONTROL_DISABLE_EZ_NULL_ZCMD_DROP_MASK | \
+ RB_BC_CONTROL_DISABLE_LZ_NULL_ZCMD_DROP_MASK | \
+ RB_BC_CONTROL_ENABLE_AZ_THROTTLE_MASK | \
+ RB_BC_CONTROL_AZ_THROTTLE_COUNT_MASK | \
+ RB_BC_CONTROL_ENABLE_CRC_UPDATE_MASK | \
+ RB_BC_CONTROL_CRC_MODE_MASK | \
+ RB_BC_CONTROL_DISABLE_SAMPLE_COUNTERS_MASK | \
+ RB_BC_CONTROL_DISABLE_ACCUM_MASK | \
+ RB_BC_CONTROL_ACCUM_ALLOC_MASK_MASK | \
+ RB_BC_CONTROL_LINEAR_PERFORMANCE_ENABLE_MASK | \
+ RB_BC_CONTROL_ACCUM_DATA_FIFO_LIMIT_MASK | \
+ RB_BC_CONTROL_MEM_EXPORT_TIMEOUT_SELECT_MASK | \
+ RB_BC_CONTROL_MEM_EXPORT_LINEAR_MODE_ENABLE_MASK | \
+ RB_BC_CONTROL_CRC_SYSTEM_MASK | \
+ RB_BC_CONTROL_RESERVED6_MASK)
+
+#define RB_BC_CONTROL(accum_linear_mode_enable, accum_timeout_select, disable_edram_cam, disable_ez_fast_context_switch, disable_ez_null_zcmd_drop, disable_lz_null_zcmd_drop, enable_az_throttle, az_throttle_count, enable_crc_update, crc_mode, disable_sample_counters, disable_accum, accum_alloc_mask, linear_performance_enable, accum_data_fifo_limit, mem_export_timeout_select, mem_export_linear_mode_enable, crc_system, reserved6) \
+ ((accum_linear_mode_enable << RB_BC_CONTROL_ACCUM_LINEAR_MODE_ENABLE_SHIFT) | \
+ (accum_timeout_select << RB_BC_CONTROL_ACCUM_TIMEOUT_SELECT_SHIFT) | \
+ (disable_edram_cam << RB_BC_CONTROL_DISABLE_EDRAM_CAM_SHIFT) | \
+ (disable_ez_fast_context_switch << RB_BC_CONTROL_DISABLE_EZ_FAST_CONTEXT_SWITCH_SHIFT) | \
+ (disable_ez_null_zcmd_drop << RB_BC_CONTROL_DISABLE_EZ_NULL_ZCMD_DROP_SHIFT) | \
+ (disable_lz_null_zcmd_drop << RB_BC_CONTROL_DISABLE_LZ_NULL_ZCMD_DROP_SHIFT) | \
+ (enable_az_throttle << RB_BC_CONTROL_ENABLE_AZ_THROTTLE_SHIFT) | \
+ (az_throttle_count << RB_BC_CONTROL_AZ_THROTTLE_COUNT_SHIFT) | \
+ (enable_crc_update << RB_BC_CONTROL_ENABLE_CRC_UPDATE_SHIFT) | \
+ (crc_mode << RB_BC_CONTROL_CRC_MODE_SHIFT) | \
+ (disable_sample_counters << RB_BC_CONTROL_DISABLE_SAMPLE_COUNTERS_SHIFT) | \
+ (disable_accum << RB_BC_CONTROL_DISABLE_ACCUM_SHIFT) | \
+ (accum_alloc_mask << RB_BC_CONTROL_ACCUM_ALLOC_MASK_SHIFT) | \
+ (linear_performance_enable << RB_BC_CONTROL_LINEAR_PERFORMANCE_ENABLE_SHIFT) | \
+ (accum_data_fifo_limit << RB_BC_CONTROL_ACCUM_DATA_FIFO_LIMIT_SHIFT) | \
+ (mem_export_timeout_select << RB_BC_CONTROL_MEM_EXPORT_TIMEOUT_SELECT_SHIFT) | \
+ (mem_export_linear_mode_enable << RB_BC_CONTROL_MEM_EXPORT_LINEAR_MODE_ENABLE_SHIFT) | \
+ (crc_system << RB_BC_CONTROL_CRC_SYSTEM_SHIFT) | \
+ (reserved6 << RB_BC_CONTROL_RESERVED6_SHIFT))
+
+#define RB_BC_CONTROL_GET_ACCUM_LINEAR_MODE_ENABLE(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_ACCUM_LINEAR_MODE_ENABLE_MASK) >> RB_BC_CONTROL_ACCUM_LINEAR_MODE_ENABLE_SHIFT)
+#define RB_BC_CONTROL_GET_ACCUM_TIMEOUT_SELECT(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_ACCUM_TIMEOUT_SELECT_MASK) >> RB_BC_CONTROL_ACCUM_TIMEOUT_SELECT_SHIFT)
+#define RB_BC_CONTROL_GET_DISABLE_EDRAM_CAM(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_DISABLE_EDRAM_CAM_MASK) >> RB_BC_CONTROL_DISABLE_EDRAM_CAM_SHIFT)
+#define RB_BC_CONTROL_GET_DISABLE_EZ_FAST_CONTEXT_SWITCH(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_DISABLE_EZ_FAST_CONTEXT_SWITCH_MASK) >> RB_BC_CONTROL_DISABLE_EZ_FAST_CONTEXT_SWITCH_SHIFT)
+#define RB_BC_CONTROL_GET_DISABLE_EZ_NULL_ZCMD_DROP(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_DISABLE_EZ_NULL_ZCMD_DROP_MASK) >> RB_BC_CONTROL_DISABLE_EZ_NULL_ZCMD_DROP_SHIFT)
+#define RB_BC_CONTROL_GET_DISABLE_LZ_NULL_ZCMD_DROP(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_DISABLE_LZ_NULL_ZCMD_DROP_MASK) >> RB_BC_CONTROL_DISABLE_LZ_NULL_ZCMD_DROP_SHIFT)
+#define RB_BC_CONTROL_GET_ENABLE_AZ_THROTTLE(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_ENABLE_AZ_THROTTLE_MASK) >> RB_BC_CONTROL_ENABLE_AZ_THROTTLE_SHIFT)
+#define RB_BC_CONTROL_GET_AZ_THROTTLE_COUNT(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_AZ_THROTTLE_COUNT_MASK) >> RB_BC_CONTROL_AZ_THROTTLE_COUNT_SHIFT)
+#define RB_BC_CONTROL_GET_ENABLE_CRC_UPDATE(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_ENABLE_CRC_UPDATE_MASK) >> RB_BC_CONTROL_ENABLE_CRC_UPDATE_SHIFT)
+#define RB_BC_CONTROL_GET_CRC_MODE(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_CRC_MODE_MASK) >> RB_BC_CONTROL_CRC_MODE_SHIFT)
+#define RB_BC_CONTROL_GET_DISABLE_SAMPLE_COUNTERS(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_DISABLE_SAMPLE_COUNTERS_MASK) >> RB_BC_CONTROL_DISABLE_SAMPLE_COUNTERS_SHIFT)
+#define RB_BC_CONTROL_GET_DISABLE_ACCUM(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_DISABLE_ACCUM_MASK) >> RB_BC_CONTROL_DISABLE_ACCUM_SHIFT)
+#define RB_BC_CONTROL_GET_ACCUM_ALLOC_MASK(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_ACCUM_ALLOC_MASK_MASK) >> RB_BC_CONTROL_ACCUM_ALLOC_MASK_SHIFT)
+#define RB_BC_CONTROL_GET_LINEAR_PERFORMANCE_ENABLE(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_LINEAR_PERFORMANCE_ENABLE_MASK) >> RB_BC_CONTROL_LINEAR_PERFORMANCE_ENABLE_SHIFT)
+#define RB_BC_CONTROL_GET_ACCUM_DATA_FIFO_LIMIT(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_ACCUM_DATA_FIFO_LIMIT_MASK) >> RB_BC_CONTROL_ACCUM_DATA_FIFO_LIMIT_SHIFT)
+#define RB_BC_CONTROL_GET_MEM_EXPORT_TIMEOUT_SELECT(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_MEM_EXPORT_TIMEOUT_SELECT_MASK) >> RB_BC_CONTROL_MEM_EXPORT_TIMEOUT_SELECT_SHIFT)
+#define RB_BC_CONTROL_GET_MEM_EXPORT_LINEAR_MODE_ENABLE(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_MEM_EXPORT_LINEAR_MODE_ENABLE_MASK) >> RB_BC_CONTROL_MEM_EXPORT_LINEAR_MODE_ENABLE_SHIFT)
+#define RB_BC_CONTROL_GET_CRC_SYSTEM(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_CRC_SYSTEM_MASK) >> RB_BC_CONTROL_CRC_SYSTEM_SHIFT)
+#define RB_BC_CONTROL_GET_RESERVED6(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_RESERVED6_MASK) >> RB_BC_CONTROL_RESERVED6_SHIFT)
+
+#define RB_BC_CONTROL_SET_ACCUM_LINEAR_MODE_ENABLE(rb_bc_control_reg, accum_linear_mode_enable) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_ACCUM_LINEAR_MODE_ENABLE_MASK) | (accum_linear_mode_enable << RB_BC_CONTROL_ACCUM_LINEAR_MODE_ENABLE_SHIFT)
+#define RB_BC_CONTROL_SET_ACCUM_TIMEOUT_SELECT(rb_bc_control_reg, accum_timeout_select) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_ACCUM_TIMEOUT_SELECT_MASK) | (accum_timeout_select << RB_BC_CONTROL_ACCUM_TIMEOUT_SELECT_SHIFT)
+#define RB_BC_CONTROL_SET_DISABLE_EDRAM_CAM(rb_bc_control_reg, disable_edram_cam) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_DISABLE_EDRAM_CAM_MASK) | (disable_edram_cam << RB_BC_CONTROL_DISABLE_EDRAM_CAM_SHIFT)
+#define RB_BC_CONTROL_SET_DISABLE_EZ_FAST_CONTEXT_SWITCH(rb_bc_control_reg, disable_ez_fast_context_switch) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_DISABLE_EZ_FAST_CONTEXT_SWITCH_MASK) | (disable_ez_fast_context_switch << RB_BC_CONTROL_DISABLE_EZ_FAST_CONTEXT_SWITCH_SHIFT)
+#define RB_BC_CONTROL_SET_DISABLE_EZ_NULL_ZCMD_DROP(rb_bc_control_reg, disable_ez_null_zcmd_drop) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_DISABLE_EZ_NULL_ZCMD_DROP_MASK) | (disable_ez_null_zcmd_drop << RB_BC_CONTROL_DISABLE_EZ_NULL_ZCMD_DROP_SHIFT)
+#define RB_BC_CONTROL_SET_DISABLE_LZ_NULL_ZCMD_DROP(rb_bc_control_reg, disable_lz_null_zcmd_drop) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_DISABLE_LZ_NULL_ZCMD_DROP_MASK) | (disable_lz_null_zcmd_drop << RB_BC_CONTROL_DISABLE_LZ_NULL_ZCMD_DROP_SHIFT)
+#define RB_BC_CONTROL_SET_ENABLE_AZ_THROTTLE(rb_bc_control_reg, enable_az_throttle) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_ENABLE_AZ_THROTTLE_MASK) | (enable_az_throttle << RB_BC_CONTROL_ENABLE_AZ_THROTTLE_SHIFT)
+#define RB_BC_CONTROL_SET_AZ_THROTTLE_COUNT(rb_bc_control_reg, az_throttle_count) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_AZ_THROTTLE_COUNT_MASK) | (az_throttle_count << RB_BC_CONTROL_AZ_THROTTLE_COUNT_SHIFT)
+#define RB_BC_CONTROL_SET_ENABLE_CRC_UPDATE(rb_bc_control_reg, enable_crc_update) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_ENABLE_CRC_UPDATE_MASK) | (enable_crc_update << RB_BC_CONTROL_ENABLE_CRC_UPDATE_SHIFT)
+#define RB_BC_CONTROL_SET_CRC_MODE(rb_bc_control_reg, crc_mode) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_CRC_MODE_MASK) | (crc_mode << RB_BC_CONTROL_CRC_MODE_SHIFT)
+#define RB_BC_CONTROL_SET_DISABLE_SAMPLE_COUNTERS(rb_bc_control_reg, disable_sample_counters) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_DISABLE_SAMPLE_COUNTERS_MASK) | (disable_sample_counters << RB_BC_CONTROL_DISABLE_SAMPLE_COUNTERS_SHIFT)
+#define RB_BC_CONTROL_SET_DISABLE_ACCUM(rb_bc_control_reg, disable_accum) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_DISABLE_ACCUM_MASK) | (disable_accum << RB_BC_CONTROL_DISABLE_ACCUM_SHIFT)
+#define RB_BC_CONTROL_SET_ACCUM_ALLOC_MASK(rb_bc_control_reg, accum_alloc_mask) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_ACCUM_ALLOC_MASK_MASK) | (accum_alloc_mask << RB_BC_CONTROL_ACCUM_ALLOC_MASK_SHIFT)
+#define RB_BC_CONTROL_SET_LINEAR_PERFORMANCE_ENABLE(rb_bc_control_reg, linear_performance_enable) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_LINEAR_PERFORMANCE_ENABLE_MASK) | (linear_performance_enable << RB_BC_CONTROL_LINEAR_PERFORMANCE_ENABLE_SHIFT)
+#define RB_BC_CONTROL_SET_ACCUM_DATA_FIFO_LIMIT(rb_bc_control_reg, accum_data_fifo_limit) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_ACCUM_DATA_FIFO_LIMIT_MASK) | (accum_data_fifo_limit << RB_BC_CONTROL_ACCUM_DATA_FIFO_LIMIT_SHIFT)
+#define RB_BC_CONTROL_SET_MEM_EXPORT_TIMEOUT_SELECT(rb_bc_control_reg, mem_export_timeout_select) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_MEM_EXPORT_TIMEOUT_SELECT_MASK) | (mem_export_timeout_select << RB_BC_CONTROL_MEM_EXPORT_TIMEOUT_SELECT_SHIFT)
+#define RB_BC_CONTROL_SET_MEM_EXPORT_LINEAR_MODE_ENABLE(rb_bc_control_reg, mem_export_linear_mode_enable) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_MEM_EXPORT_LINEAR_MODE_ENABLE_MASK) | (mem_export_linear_mode_enable << RB_BC_CONTROL_MEM_EXPORT_LINEAR_MODE_ENABLE_SHIFT)
+#define RB_BC_CONTROL_SET_CRC_SYSTEM(rb_bc_control_reg, crc_system) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_CRC_SYSTEM_MASK) | (crc_system << RB_BC_CONTROL_CRC_SYSTEM_SHIFT)
+#define RB_BC_CONTROL_SET_RESERVED6(rb_bc_control_reg, reserved6) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_RESERVED6_MASK) | (reserved6 << RB_BC_CONTROL_RESERVED6_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_bc_control_t {
+ unsigned int accum_linear_mode_enable : RB_BC_CONTROL_ACCUM_LINEAR_MODE_ENABLE_SIZE;
+ unsigned int accum_timeout_select : RB_BC_CONTROL_ACCUM_TIMEOUT_SELECT_SIZE;
+ unsigned int disable_edram_cam : RB_BC_CONTROL_DISABLE_EDRAM_CAM_SIZE;
+ unsigned int disable_ez_fast_context_switch : RB_BC_CONTROL_DISABLE_EZ_FAST_CONTEXT_SWITCH_SIZE;
+ unsigned int disable_ez_null_zcmd_drop : RB_BC_CONTROL_DISABLE_EZ_NULL_ZCMD_DROP_SIZE;
+ unsigned int disable_lz_null_zcmd_drop : RB_BC_CONTROL_DISABLE_LZ_NULL_ZCMD_DROP_SIZE;
+ unsigned int enable_az_throttle : RB_BC_CONTROL_ENABLE_AZ_THROTTLE_SIZE;
+ unsigned int az_throttle_count : RB_BC_CONTROL_AZ_THROTTLE_COUNT_SIZE;
+ unsigned int : 1;
+ unsigned int enable_crc_update : RB_BC_CONTROL_ENABLE_CRC_UPDATE_SIZE;
+ unsigned int crc_mode : RB_BC_CONTROL_CRC_MODE_SIZE;
+ unsigned int disable_sample_counters : RB_BC_CONTROL_DISABLE_SAMPLE_COUNTERS_SIZE;
+ unsigned int disable_accum : RB_BC_CONTROL_DISABLE_ACCUM_SIZE;
+ unsigned int accum_alloc_mask : RB_BC_CONTROL_ACCUM_ALLOC_MASK_SIZE;
+ unsigned int linear_performance_enable : RB_BC_CONTROL_LINEAR_PERFORMANCE_ENABLE_SIZE;
+ unsigned int accum_data_fifo_limit : RB_BC_CONTROL_ACCUM_DATA_FIFO_LIMIT_SIZE;
+ unsigned int mem_export_timeout_select : RB_BC_CONTROL_MEM_EXPORT_TIMEOUT_SELECT_SIZE;
+ unsigned int mem_export_linear_mode_enable : RB_BC_CONTROL_MEM_EXPORT_LINEAR_MODE_ENABLE_SIZE;
+ unsigned int crc_system : RB_BC_CONTROL_CRC_SYSTEM_SIZE;
+ unsigned int reserved6 : RB_BC_CONTROL_RESERVED6_SIZE;
+ } rb_bc_control_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_bc_control_t {
+ unsigned int reserved6 : RB_BC_CONTROL_RESERVED6_SIZE;
+ unsigned int crc_system : RB_BC_CONTROL_CRC_SYSTEM_SIZE;
+ unsigned int mem_export_linear_mode_enable : RB_BC_CONTROL_MEM_EXPORT_LINEAR_MODE_ENABLE_SIZE;
+ unsigned int mem_export_timeout_select : RB_BC_CONTROL_MEM_EXPORT_TIMEOUT_SELECT_SIZE;
+ unsigned int accum_data_fifo_limit : RB_BC_CONTROL_ACCUM_DATA_FIFO_LIMIT_SIZE;
+ unsigned int linear_performance_enable : RB_BC_CONTROL_LINEAR_PERFORMANCE_ENABLE_SIZE;
+ unsigned int accum_alloc_mask : RB_BC_CONTROL_ACCUM_ALLOC_MASK_SIZE;
+ unsigned int disable_accum : RB_BC_CONTROL_DISABLE_ACCUM_SIZE;
+ unsigned int disable_sample_counters : RB_BC_CONTROL_DISABLE_SAMPLE_COUNTERS_SIZE;
+ unsigned int crc_mode : RB_BC_CONTROL_CRC_MODE_SIZE;
+ unsigned int enable_crc_update : RB_BC_CONTROL_ENABLE_CRC_UPDATE_SIZE;
+ unsigned int : 1;
+ unsigned int az_throttle_count : RB_BC_CONTROL_AZ_THROTTLE_COUNT_SIZE;
+ unsigned int enable_az_throttle : RB_BC_CONTROL_ENABLE_AZ_THROTTLE_SIZE;
+ unsigned int disable_lz_null_zcmd_drop : RB_BC_CONTROL_DISABLE_LZ_NULL_ZCMD_DROP_SIZE;
+ unsigned int disable_ez_null_zcmd_drop : RB_BC_CONTROL_DISABLE_EZ_NULL_ZCMD_DROP_SIZE;
+ unsigned int disable_ez_fast_context_switch : RB_BC_CONTROL_DISABLE_EZ_FAST_CONTEXT_SWITCH_SIZE;
+ unsigned int disable_edram_cam : RB_BC_CONTROL_DISABLE_EDRAM_CAM_SIZE;
+ unsigned int accum_timeout_select : RB_BC_CONTROL_ACCUM_TIMEOUT_SELECT_SIZE;
+ unsigned int accum_linear_mode_enable : RB_BC_CONTROL_ACCUM_LINEAR_MODE_ENABLE_SIZE;
+ } rb_bc_control_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_bc_control_t f;
+} rb_bc_control_u;
+
+
+/*
+ * RB_EDRAM_INFO struct
+ */
+
+#define RB_EDRAM_INFO_EDRAM_SIZE_SIZE 4
+#define RB_EDRAM_INFO_EDRAM_MAPPING_MODE_SIZE 2
+#define RB_EDRAM_INFO_EDRAM_RANGE_SIZE 18
+
+#define RB_EDRAM_INFO_EDRAM_SIZE_SHIFT 0
+#define RB_EDRAM_INFO_EDRAM_MAPPING_MODE_SHIFT 4
+#define RB_EDRAM_INFO_EDRAM_RANGE_SHIFT 14
+
+#define RB_EDRAM_INFO_EDRAM_SIZE_MASK 0x0000000f
+#define RB_EDRAM_INFO_EDRAM_MAPPING_MODE_MASK 0x00000030
+#define RB_EDRAM_INFO_EDRAM_RANGE_MASK 0xffffc000
+
+#define RB_EDRAM_INFO_MASK \
+ (RB_EDRAM_INFO_EDRAM_SIZE_MASK | \
+ RB_EDRAM_INFO_EDRAM_MAPPING_MODE_MASK | \
+ RB_EDRAM_INFO_EDRAM_RANGE_MASK)
+
+#define RB_EDRAM_INFO(edram_size, edram_mapping_mode, edram_range) \
+ ((edram_size << RB_EDRAM_INFO_EDRAM_SIZE_SHIFT) | \
+ (edram_mapping_mode << RB_EDRAM_INFO_EDRAM_MAPPING_MODE_SHIFT) | \
+ (edram_range << RB_EDRAM_INFO_EDRAM_RANGE_SHIFT))
+
+#define RB_EDRAM_INFO_GET_EDRAM_SIZE(rb_edram_info) \
+ ((rb_edram_info & RB_EDRAM_INFO_EDRAM_SIZE_MASK) >> RB_EDRAM_INFO_EDRAM_SIZE_SHIFT)
+#define RB_EDRAM_INFO_GET_EDRAM_MAPPING_MODE(rb_edram_info) \
+ ((rb_edram_info & RB_EDRAM_INFO_EDRAM_MAPPING_MODE_MASK) >> RB_EDRAM_INFO_EDRAM_MAPPING_MODE_SHIFT)
+#define RB_EDRAM_INFO_GET_EDRAM_RANGE(rb_edram_info) \
+ ((rb_edram_info & RB_EDRAM_INFO_EDRAM_RANGE_MASK) >> RB_EDRAM_INFO_EDRAM_RANGE_SHIFT)
+
+#define RB_EDRAM_INFO_SET_EDRAM_SIZE(rb_edram_info_reg, edram_size) \
+ rb_edram_info_reg = (rb_edram_info_reg & ~RB_EDRAM_INFO_EDRAM_SIZE_MASK) | (edram_size << RB_EDRAM_INFO_EDRAM_SIZE_SHIFT)
+#define RB_EDRAM_INFO_SET_EDRAM_MAPPING_MODE(rb_edram_info_reg, edram_mapping_mode) \
+ rb_edram_info_reg = (rb_edram_info_reg & ~RB_EDRAM_INFO_EDRAM_MAPPING_MODE_MASK) | (edram_mapping_mode << RB_EDRAM_INFO_EDRAM_MAPPING_MODE_SHIFT)
+#define RB_EDRAM_INFO_SET_EDRAM_RANGE(rb_edram_info_reg, edram_range) \
+ rb_edram_info_reg = (rb_edram_info_reg & ~RB_EDRAM_INFO_EDRAM_RANGE_MASK) | (edram_range << RB_EDRAM_INFO_EDRAM_RANGE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_edram_info_t {
+ unsigned int edram_size : RB_EDRAM_INFO_EDRAM_SIZE_SIZE;
+ unsigned int edram_mapping_mode : RB_EDRAM_INFO_EDRAM_MAPPING_MODE_SIZE;
+ unsigned int : 8;
+ unsigned int edram_range : RB_EDRAM_INFO_EDRAM_RANGE_SIZE;
+ } rb_edram_info_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_edram_info_t {
+ unsigned int edram_range : RB_EDRAM_INFO_EDRAM_RANGE_SIZE;
+ unsigned int : 8;
+ unsigned int edram_mapping_mode : RB_EDRAM_INFO_EDRAM_MAPPING_MODE_SIZE;
+ unsigned int edram_size : RB_EDRAM_INFO_EDRAM_SIZE_SIZE;
+ } rb_edram_info_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_edram_info_t f;
+} rb_edram_info_u;
+
+
+/*
+ * RB_CRC_RD_PORT struct
+ */
+
+#define RB_CRC_RD_PORT_CRC_DATA_SIZE 32
+
+#define RB_CRC_RD_PORT_CRC_DATA_SHIFT 0
+
+#define RB_CRC_RD_PORT_CRC_DATA_MASK 0xffffffff
+
+#define RB_CRC_RD_PORT_MASK \
+ (RB_CRC_RD_PORT_CRC_DATA_MASK)
+
+#define RB_CRC_RD_PORT(crc_data) \
+ ((crc_data << RB_CRC_RD_PORT_CRC_DATA_SHIFT))
+
+#define RB_CRC_RD_PORT_GET_CRC_DATA(rb_crc_rd_port) \
+ ((rb_crc_rd_port & RB_CRC_RD_PORT_CRC_DATA_MASK) >> RB_CRC_RD_PORT_CRC_DATA_SHIFT)
+
+#define RB_CRC_RD_PORT_SET_CRC_DATA(rb_crc_rd_port_reg, crc_data) \
+ rb_crc_rd_port_reg = (rb_crc_rd_port_reg & ~RB_CRC_RD_PORT_CRC_DATA_MASK) | (crc_data << RB_CRC_RD_PORT_CRC_DATA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_crc_rd_port_t {
+ unsigned int crc_data : RB_CRC_RD_PORT_CRC_DATA_SIZE;
+ } rb_crc_rd_port_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_crc_rd_port_t {
+ unsigned int crc_data : RB_CRC_RD_PORT_CRC_DATA_SIZE;
+ } rb_crc_rd_port_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_crc_rd_port_t f;
+} rb_crc_rd_port_u;
+
+
+/*
+ * RB_CRC_CONTROL struct
+ */
+
+#define RB_CRC_CONTROL_CRC_RD_ADVANCE_SIZE 1
+
+#define RB_CRC_CONTROL_CRC_RD_ADVANCE_SHIFT 0
+
+#define RB_CRC_CONTROL_CRC_RD_ADVANCE_MASK 0x00000001
+
+#define RB_CRC_CONTROL_MASK \
+ (RB_CRC_CONTROL_CRC_RD_ADVANCE_MASK)
+
+#define RB_CRC_CONTROL(crc_rd_advance) \
+ ((crc_rd_advance << RB_CRC_CONTROL_CRC_RD_ADVANCE_SHIFT))
+
+#define RB_CRC_CONTROL_GET_CRC_RD_ADVANCE(rb_crc_control) \
+ ((rb_crc_control & RB_CRC_CONTROL_CRC_RD_ADVANCE_MASK) >> RB_CRC_CONTROL_CRC_RD_ADVANCE_SHIFT)
+
+#define RB_CRC_CONTROL_SET_CRC_RD_ADVANCE(rb_crc_control_reg, crc_rd_advance) \
+ rb_crc_control_reg = (rb_crc_control_reg & ~RB_CRC_CONTROL_CRC_RD_ADVANCE_MASK) | (crc_rd_advance << RB_CRC_CONTROL_CRC_RD_ADVANCE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_crc_control_t {
+ unsigned int crc_rd_advance : RB_CRC_CONTROL_CRC_RD_ADVANCE_SIZE;
+ unsigned int : 31;
+ } rb_crc_control_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_crc_control_t {
+ unsigned int : 31;
+ unsigned int crc_rd_advance : RB_CRC_CONTROL_CRC_RD_ADVANCE_SIZE;
+ } rb_crc_control_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_crc_control_t f;
+} rb_crc_control_u;
+
+
+/*
+ * RB_CRC_MASK struct
+ */
+
+#define RB_CRC_MASK_CRC_MASK_SIZE 32
+
+#define RB_CRC_MASK_CRC_MASK_SHIFT 0
+
+#define RB_CRC_MASK_CRC_MASK_MASK 0xffffffff
+
+#define RB_CRC_MASK_MASK \
+ (RB_CRC_MASK_CRC_MASK_MASK)
+
+#define RB_CRC_MASK(crc_mask) \
+ ((crc_mask << RB_CRC_MASK_CRC_MASK_SHIFT))
+
+#define RB_CRC_MASK_GET_CRC_MASK(rb_crc_mask) \
+ ((rb_crc_mask & RB_CRC_MASK_CRC_MASK_MASK) >> RB_CRC_MASK_CRC_MASK_SHIFT)
+
+#define RB_CRC_MASK_SET_CRC_MASK(rb_crc_mask_reg, crc_mask) \
+ rb_crc_mask_reg = (rb_crc_mask_reg & ~RB_CRC_MASK_CRC_MASK_MASK) | (crc_mask << RB_CRC_MASK_CRC_MASK_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_crc_mask_t {
+ unsigned int crc_mask : RB_CRC_MASK_CRC_MASK_SIZE;
+ } rb_crc_mask_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_crc_mask_t {
+ unsigned int crc_mask : RB_CRC_MASK_CRC_MASK_SIZE;
+ } rb_crc_mask_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_crc_mask_t f;
+} rb_crc_mask_u;
+
+
+/*
+ * RB_PERFCOUNTER0_SELECT struct
+ */
+
+#define RB_PERFCOUNTER0_SELECT_PERF_SEL_SIZE 8
+
+#define RB_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT 0
+
+#define RB_PERFCOUNTER0_SELECT_PERF_SEL_MASK 0x000000ff
+
+#define RB_PERFCOUNTER0_SELECT_MASK \
+ (RB_PERFCOUNTER0_SELECT_PERF_SEL_MASK)
+
+#define RB_PERFCOUNTER0_SELECT(perf_sel) \
+ ((perf_sel << RB_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT))
+
+#define RB_PERFCOUNTER0_SELECT_GET_PERF_SEL(rb_perfcounter0_select) \
+ ((rb_perfcounter0_select & RB_PERFCOUNTER0_SELECT_PERF_SEL_MASK) >> RB_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT)
+
+#define RB_PERFCOUNTER0_SELECT_SET_PERF_SEL(rb_perfcounter0_select_reg, perf_sel) \
+ rb_perfcounter0_select_reg = (rb_perfcounter0_select_reg & ~RB_PERFCOUNTER0_SELECT_PERF_SEL_MASK) | (perf_sel << RB_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_perfcounter0_select_t {
+ unsigned int perf_sel : RB_PERFCOUNTER0_SELECT_PERF_SEL_SIZE;
+ unsigned int : 24;
+ } rb_perfcounter0_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_perfcounter0_select_t {
+ unsigned int : 24;
+ unsigned int perf_sel : RB_PERFCOUNTER0_SELECT_PERF_SEL_SIZE;
+ } rb_perfcounter0_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_perfcounter0_select_t f;
+} rb_perfcounter0_select_u;
+
+
+/*
+ * RB_PERFCOUNTER0_LOW struct
+ */
+
+#define RB_PERFCOUNTER0_LOW_PERF_COUNT_SIZE 32
+
+#define RB_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT 0
+
+#define RB_PERFCOUNTER0_LOW_PERF_COUNT_MASK 0xffffffff
+
+#define RB_PERFCOUNTER0_LOW_MASK \
+ (RB_PERFCOUNTER0_LOW_PERF_COUNT_MASK)
+
+#define RB_PERFCOUNTER0_LOW(perf_count) \
+ ((perf_count << RB_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT))
+
+#define RB_PERFCOUNTER0_LOW_GET_PERF_COUNT(rb_perfcounter0_low) \
+ ((rb_perfcounter0_low & RB_PERFCOUNTER0_LOW_PERF_COUNT_MASK) >> RB_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT)
+
+#define RB_PERFCOUNTER0_LOW_SET_PERF_COUNT(rb_perfcounter0_low_reg, perf_count) \
+ rb_perfcounter0_low_reg = (rb_perfcounter0_low_reg & ~RB_PERFCOUNTER0_LOW_PERF_COUNT_MASK) | (perf_count << RB_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_perfcounter0_low_t {
+ unsigned int perf_count : RB_PERFCOUNTER0_LOW_PERF_COUNT_SIZE;
+ } rb_perfcounter0_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_perfcounter0_low_t {
+ unsigned int perf_count : RB_PERFCOUNTER0_LOW_PERF_COUNT_SIZE;
+ } rb_perfcounter0_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_perfcounter0_low_t f;
+} rb_perfcounter0_low_u;
+
+
+/*
+ * RB_PERFCOUNTER0_HI struct
+ */
+
+#define RB_PERFCOUNTER0_HI_PERF_COUNT_SIZE 16
+
+#define RB_PERFCOUNTER0_HI_PERF_COUNT_SHIFT 0
+
+#define RB_PERFCOUNTER0_HI_PERF_COUNT_MASK 0x0000ffff
+
+#define RB_PERFCOUNTER0_HI_MASK \
+ (RB_PERFCOUNTER0_HI_PERF_COUNT_MASK)
+
+#define RB_PERFCOUNTER0_HI(perf_count) \
+ ((perf_count << RB_PERFCOUNTER0_HI_PERF_COUNT_SHIFT))
+
+#define RB_PERFCOUNTER0_HI_GET_PERF_COUNT(rb_perfcounter0_hi) \
+ ((rb_perfcounter0_hi & RB_PERFCOUNTER0_HI_PERF_COUNT_MASK) >> RB_PERFCOUNTER0_HI_PERF_COUNT_SHIFT)
+
+#define RB_PERFCOUNTER0_HI_SET_PERF_COUNT(rb_perfcounter0_hi_reg, perf_count) \
+ rb_perfcounter0_hi_reg = (rb_perfcounter0_hi_reg & ~RB_PERFCOUNTER0_HI_PERF_COUNT_MASK) | (perf_count << RB_PERFCOUNTER0_HI_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_perfcounter0_hi_t {
+ unsigned int perf_count : RB_PERFCOUNTER0_HI_PERF_COUNT_SIZE;
+ unsigned int : 16;
+ } rb_perfcounter0_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_perfcounter0_hi_t {
+ unsigned int : 16;
+ unsigned int perf_count : RB_PERFCOUNTER0_HI_PERF_COUNT_SIZE;
+ } rb_perfcounter0_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_perfcounter0_hi_t f;
+} rb_perfcounter0_hi_u;
+
+
+/*
+ * RB_TOTAL_SAMPLES struct
+ */
+
+#define RB_TOTAL_SAMPLES_TOTAL_SAMPLES_SIZE 32
+
+#define RB_TOTAL_SAMPLES_TOTAL_SAMPLES_SHIFT 0
+
+#define RB_TOTAL_SAMPLES_TOTAL_SAMPLES_MASK 0xffffffff
+
+#define RB_TOTAL_SAMPLES_MASK \
+ (RB_TOTAL_SAMPLES_TOTAL_SAMPLES_MASK)
+
+#define RB_TOTAL_SAMPLES(total_samples) \
+ ((total_samples << RB_TOTAL_SAMPLES_TOTAL_SAMPLES_SHIFT))
+
+#define RB_TOTAL_SAMPLES_GET_TOTAL_SAMPLES(rb_total_samples) \
+ ((rb_total_samples & RB_TOTAL_SAMPLES_TOTAL_SAMPLES_MASK) >> RB_TOTAL_SAMPLES_TOTAL_SAMPLES_SHIFT)
+
+#define RB_TOTAL_SAMPLES_SET_TOTAL_SAMPLES(rb_total_samples_reg, total_samples) \
+ rb_total_samples_reg = (rb_total_samples_reg & ~RB_TOTAL_SAMPLES_TOTAL_SAMPLES_MASK) | (total_samples << RB_TOTAL_SAMPLES_TOTAL_SAMPLES_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_total_samples_t {
+ unsigned int total_samples : RB_TOTAL_SAMPLES_TOTAL_SAMPLES_SIZE;
+ } rb_total_samples_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_total_samples_t {
+ unsigned int total_samples : RB_TOTAL_SAMPLES_TOTAL_SAMPLES_SIZE;
+ } rb_total_samples_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_total_samples_t f;
+} rb_total_samples_u;
+
+
+/*
+ * RB_ZPASS_SAMPLES struct
+ */
+
+#define RB_ZPASS_SAMPLES_ZPASS_SAMPLES_SIZE 32
+
+#define RB_ZPASS_SAMPLES_ZPASS_SAMPLES_SHIFT 0
+
+#define RB_ZPASS_SAMPLES_ZPASS_SAMPLES_MASK 0xffffffff
+
+#define RB_ZPASS_SAMPLES_MASK \
+ (RB_ZPASS_SAMPLES_ZPASS_SAMPLES_MASK)
+
+#define RB_ZPASS_SAMPLES(zpass_samples) \
+ ((zpass_samples << RB_ZPASS_SAMPLES_ZPASS_SAMPLES_SHIFT))
+
+#define RB_ZPASS_SAMPLES_GET_ZPASS_SAMPLES(rb_zpass_samples) \
+ ((rb_zpass_samples & RB_ZPASS_SAMPLES_ZPASS_SAMPLES_MASK) >> RB_ZPASS_SAMPLES_ZPASS_SAMPLES_SHIFT)
+
+#define RB_ZPASS_SAMPLES_SET_ZPASS_SAMPLES(rb_zpass_samples_reg, zpass_samples) \
+ rb_zpass_samples_reg = (rb_zpass_samples_reg & ~RB_ZPASS_SAMPLES_ZPASS_SAMPLES_MASK) | (zpass_samples << RB_ZPASS_SAMPLES_ZPASS_SAMPLES_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_zpass_samples_t {
+ unsigned int zpass_samples : RB_ZPASS_SAMPLES_ZPASS_SAMPLES_SIZE;
+ } rb_zpass_samples_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_zpass_samples_t {
+ unsigned int zpass_samples : RB_ZPASS_SAMPLES_ZPASS_SAMPLES_SIZE;
+ } rb_zpass_samples_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_zpass_samples_t f;
+} rb_zpass_samples_u;
+
+
+/*
+ * RB_ZFAIL_SAMPLES struct
+ */
+
+#define RB_ZFAIL_SAMPLES_ZFAIL_SAMPLES_SIZE 32
+
+#define RB_ZFAIL_SAMPLES_ZFAIL_SAMPLES_SHIFT 0
+
+#define RB_ZFAIL_SAMPLES_ZFAIL_SAMPLES_MASK 0xffffffff
+
+#define RB_ZFAIL_SAMPLES_MASK \
+ (RB_ZFAIL_SAMPLES_ZFAIL_SAMPLES_MASK)
+
+#define RB_ZFAIL_SAMPLES(zfail_samples) \
+ ((zfail_samples << RB_ZFAIL_SAMPLES_ZFAIL_SAMPLES_SHIFT))
+
+#define RB_ZFAIL_SAMPLES_GET_ZFAIL_SAMPLES(rb_zfail_samples) \
+ ((rb_zfail_samples & RB_ZFAIL_SAMPLES_ZFAIL_SAMPLES_MASK) >> RB_ZFAIL_SAMPLES_ZFAIL_SAMPLES_SHIFT)
+
+#define RB_ZFAIL_SAMPLES_SET_ZFAIL_SAMPLES(rb_zfail_samples_reg, zfail_samples) \
+ rb_zfail_samples_reg = (rb_zfail_samples_reg & ~RB_ZFAIL_SAMPLES_ZFAIL_SAMPLES_MASK) | (zfail_samples << RB_ZFAIL_SAMPLES_ZFAIL_SAMPLES_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_zfail_samples_t {
+ unsigned int zfail_samples : RB_ZFAIL_SAMPLES_ZFAIL_SAMPLES_SIZE;
+ } rb_zfail_samples_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_zfail_samples_t {
+ unsigned int zfail_samples : RB_ZFAIL_SAMPLES_ZFAIL_SAMPLES_SIZE;
+ } rb_zfail_samples_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_zfail_samples_t f;
+} rb_zfail_samples_u;
+
+
+/*
+ * RB_SFAIL_SAMPLES struct
+ */
+
+#define RB_SFAIL_SAMPLES_SFAIL_SAMPLES_SIZE 32
+
+#define RB_SFAIL_SAMPLES_SFAIL_SAMPLES_SHIFT 0
+
+#define RB_SFAIL_SAMPLES_SFAIL_SAMPLES_MASK 0xffffffff
+
+#define RB_SFAIL_SAMPLES_MASK \
+ (RB_SFAIL_SAMPLES_SFAIL_SAMPLES_MASK)
+
+#define RB_SFAIL_SAMPLES(sfail_samples) \
+ ((sfail_samples << RB_SFAIL_SAMPLES_SFAIL_SAMPLES_SHIFT))
+
+#define RB_SFAIL_SAMPLES_GET_SFAIL_SAMPLES(rb_sfail_samples) \
+ ((rb_sfail_samples & RB_SFAIL_SAMPLES_SFAIL_SAMPLES_MASK) >> RB_SFAIL_SAMPLES_SFAIL_SAMPLES_SHIFT)
+
+#define RB_SFAIL_SAMPLES_SET_SFAIL_SAMPLES(rb_sfail_samples_reg, sfail_samples) \
+ rb_sfail_samples_reg = (rb_sfail_samples_reg & ~RB_SFAIL_SAMPLES_SFAIL_SAMPLES_MASK) | (sfail_samples << RB_SFAIL_SAMPLES_SFAIL_SAMPLES_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_sfail_samples_t {
+ unsigned int sfail_samples : RB_SFAIL_SAMPLES_SFAIL_SAMPLES_SIZE;
+ } rb_sfail_samples_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_sfail_samples_t {
+ unsigned int sfail_samples : RB_SFAIL_SAMPLES_SFAIL_SAMPLES_SIZE;
+ } rb_sfail_samples_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_sfail_samples_t f;
+} rb_sfail_samples_u;
+
+
+/*
+ * RB_DEBUG_0 struct
+ */
+
+#define RB_DEBUG_0_RDREQ_CTL_Z1_PRE_FULL_SIZE 1
+#define RB_DEBUG_0_RDREQ_CTL_Z0_PRE_FULL_SIZE 1
+#define RB_DEBUG_0_RDREQ_CTL_C1_PRE_FULL_SIZE 1
+#define RB_DEBUG_0_RDREQ_CTL_C0_PRE_FULL_SIZE 1
+#define RB_DEBUG_0_RDREQ_E1_ORDERING_FULL_SIZE 1
+#define RB_DEBUG_0_RDREQ_E0_ORDERING_FULL_SIZE 1
+#define RB_DEBUG_0_RDREQ_Z1_FULL_SIZE 1
+#define RB_DEBUG_0_RDREQ_Z0_FULL_SIZE 1
+#define RB_DEBUG_0_RDREQ_C1_FULL_SIZE 1
+#define RB_DEBUG_0_RDREQ_C0_FULL_SIZE 1
+#define RB_DEBUG_0_WRREQ_E1_MACRO_HI_FULL_SIZE 1
+#define RB_DEBUG_0_WRREQ_E1_MACRO_LO_FULL_SIZE 1
+#define RB_DEBUG_0_WRREQ_E0_MACRO_HI_FULL_SIZE 1
+#define RB_DEBUG_0_WRREQ_E0_MACRO_LO_FULL_SIZE 1
+#define RB_DEBUG_0_WRREQ_C_WE_HI_FULL_SIZE 1
+#define RB_DEBUG_0_WRREQ_C_WE_LO_FULL_SIZE 1
+#define RB_DEBUG_0_WRREQ_Z1_FULL_SIZE 1
+#define RB_DEBUG_0_WRREQ_Z0_FULL_SIZE 1
+#define RB_DEBUG_0_WRREQ_C1_FULL_SIZE 1
+#define RB_DEBUG_0_WRREQ_C0_FULL_SIZE 1
+#define RB_DEBUG_0_CMDFIFO_Z1_HOLD_FULL_SIZE 1
+#define RB_DEBUG_0_CMDFIFO_Z0_HOLD_FULL_SIZE 1
+#define RB_DEBUG_0_CMDFIFO_C1_HOLD_FULL_SIZE 1
+#define RB_DEBUG_0_CMDFIFO_C0_HOLD_FULL_SIZE 1
+#define RB_DEBUG_0_CMDFIFO_Z_ORDERING_FULL_SIZE 1
+#define RB_DEBUG_0_CMDFIFO_C_ORDERING_FULL_SIZE 1
+#define RB_DEBUG_0_C_SX_LAT_FULL_SIZE 1
+#define RB_DEBUG_0_C_SX_CMD_FULL_SIZE 1
+#define RB_DEBUG_0_C_EZ_TILE_FULL_SIZE 1
+#define RB_DEBUG_0_C_REQ_FULL_SIZE 1
+#define RB_DEBUG_0_C_MASK_FULL_SIZE 1
+#define RB_DEBUG_0_EZ_INFSAMP_FULL_SIZE 1
+
+#define RB_DEBUG_0_RDREQ_CTL_Z1_PRE_FULL_SHIFT 0
+#define RB_DEBUG_0_RDREQ_CTL_Z0_PRE_FULL_SHIFT 1
+#define RB_DEBUG_0_RDREQ_CTL_C1_PRE_FULL_SHIFT 2
+#define RB_DEBUG_0_RDREQ_CTL_C0_PRE_FULL_SHIFT 3
+#define RB_DEBUG_0_RDREQ_E1_ORDERING_FULL_SHIFT 4
+#define RB_DEBUG_0_RDREQ_E0_ORDERING_FULL_SHIFT 5
+#define RB_DEBUG_0_RDREQ_Z1_FULL_SHIFT 6
+#define RB_DEBUG_0_RDREQ_Z0_FULL_SHIFT 7
+#define RB_DEBUG_0_RDREQ_C1_FULL_SHIFT 8
+#define RB_DEBUG_0_RDREQ_C0_FULL_SHIFT 9
+#define RB_DEBUG_0_WRREQ_E1_MACRO_HI_FULL_SHIFT 10
+#define RB_DEBUG_0_WRREQ_E1_MACRO_LO_FULL_SHIFT 11
+#define RB_DEBUG_0_WRREQ_E0_MACRO_HI_FULL_SHIFT 12
+#define RB_DEBUG_0_WRREQ_E0_MACRO_LO_FULL_SHIFT 13
+#define RB_DEBUG_0_WRREQ_C_WE_HI_FULL_SHIFT 14
+#define RB_DEBUG_0_WRREQ_C_WE_LO_FULL_SHIFT 15
+#define RB_DEBUG_0_WRREQ_Z1_FULL_SHIFT 16
+#define RB_DEBUG_0_WRREQ_Z0_FULL_SHIFT 17
+#define RB_DEBUG_0_WRREQ_C1_FULL_SHIFT 18
+#define RB_DEBUG_0_WRREQ_C0_FULL_SHIFT 19
+#define RB_DEBUG_0_CMDFIFO_Z1_HOLD_FULL_SHIFT 20
+#define RB_DEBUG_0_CMDFIFO_Z0_HOLD_FULL_SHIFT 21
+#define RB_DEBUG_0_CMDFIFO_C1_HOLD_FULL_SHIFT 22
+#define RB_DEBUG_0_CMDFIFO_C0_HOLD_FULL_SHIFT 23
+#define RB_DEBUG_0_CMDFIFO_Z_ORDERING_FULL_SHIFT 24
+#define RB_DEBUG_0_CMDFIFO_C_ORDERING_FULL_SHIFT 25
+#define RB_DEBUG_0_C_SX_LAT_FULL_SHIFT 26
+#define RB_DEBUG_0_C_SX_CMD_FULL_SHIFT 27
+#define RB_DEBUG_0_C_EZ_TILE_FULL_SHIFT 28
+#define RB_DEBUG_0_C_REQ_FULL_SHIFT 29
+#define RB_DEBUG_0_C_MASK_FULL_SHIFT 30
+#define RB_DEBUG_0_EZ_INFSAMP_FULL_SHIFT 31
+
+#define RB_DEBUG_0_RDREQ_CTL_Z1_PRE_FULL_MASK 0x00000001
+#define RB_DEBUG_0_RDREQ_CTL_Z0_PRE_FULL_MASK 0x00000002
+#define RB_DEBUG_0_RDREQ_CTL_C1_PRE_FULL_MASK 0x00000004
+#define RB_DEBUG_0_RDREQ_CTL_C0_PRE_FULL_MASK 0x00000008
+#define RB_DEBUG_0_RDREQ_E1_ORDERING_FULL_MASK 0x00000010
+#define RB_DEBUG_0_RDREQ_E0_ORDERING_FULL_MASK 0x00000020
+#define RB_DEBUG_0_RDREQ_Z1_FULL_MASK 0x00000040
+#define RB_DEBUG_0_RDREQ_Z0_FULL_MASK 0x00000080
+#define RB_DEBUG_0_RDREQ_C1_FULL_MASK 0x00000100
+#define RB_DEBUG_0_RDREQ_C0_FULL_MASK 0x00000200
+#define RB_DEBUG_0_WRREQ_E1_MACRO_HI_FULL_MASK 0x00000400
+#define RB_DEBUG_0_WRREQ_E1_MACRO_LO_FULL_MASK 0x00000800
+#define RB_DEBUG_0_WRREQ_E0_MACRO_HI_FULL_MASK 0x00001000
+#define RB_DEBUG_0_WRREQ_E0_MACRO_LO_FULL_MASK 0x00002000
+#define RB_DEBUG_0_WRREQ_C_WE_HI_FULL_MASK 0x00004000
+#define RB_DEBUG_0_WRREQ_C_WE_LO_FULL_MASK 0x00008000
+#define RB_DEBUG_0_WRREQ_Z1_FULL_MASK 0x00010000
+#define RB_DEBUG_0_WRREQ_Z0_FULL_MASK 0x00020000
+#define RB_DEBUG_0_WRREQ_C1_FULL_MASK 0x00040000
+#define RB_DEBUG_0_WRREQ_C0_FULL_MASK 0x00080000
+#define RB_DEBUG_0_CMDFIFO_Z1_HOLD_FULL_MASK 0x00100000
+#define RB_DEBUG_0_CMDFIFO_Z0_HOLD_FULL_MASK 0x00200000
+#define RB_DEBUG_0_CMDFIFO_C1_HOLD_FULL_MASK 0x00400000
+#define RB_DEBUG_0_CMDFIFO_C0_HOLD_FULL_MASK 0x00800000
+#define RB_DEBUG_0_CMDFIFO_Z_ORDERING_FULL_MASK 0x01000000
+#define RB_DEBUG_0_CMDFIFO_C_ORDERING_FULL_MASK 0x02000000
+#define RB_DEBUG_0_C_SX_LAT_FULL_MASK 0x04000000
+#define RB_DEBUG_0_C_SX_CMD_FULL_MASK 0x08000000
+#define RB_DEBUG_0_C_EZ_TILE_FULL_MASK 0x10000000
+#define RB_DEBUG_0_C_REQ_FULL_MASK 0x20000000
+#define RB_DEBUG_0_C_MASK_FULL_MASK 0x40000000
+#define RB_DEBUG_0_EZ_INFSAMP_FULL_MASK 0x80000000
+
+#define RB_DEBUG_0_MASK \
+ (RB_DEBUG_0_RDREQ_CTL_Z1_PRE_FULL_MASK | \
+ RB_DEBUG_0_RDREQ_CTL_Z0_PRE_FULL_MASK | \
+ RB_DEBUG_0_RDREQ_CTL_C1_PRE_FULL_MASK | \
+ RB_DEBUG_0_RDREQ_CTL_C0_PRE_FULL_MASK | \
+ RB_DEBUG_0_RDREQ_E1_ORDERING_FULL_MASK | \
+ RB_DEBUG_0_RDREQ_E0_ORDERING_FULL_MASK | \
+ RB_DEBUG_0_RDREQ_Z1_FULL_MASK | \
+ RB_DEBUG_0_RDREQ_Z0_FULL_MASK | \
+ RB_DEBUG_0_RDREQ_C1_FULL_MASK | \
+ RB_DEBUG_0_RDREQ_C0_FULL_MASK | \
+ RB_DEBUG_0_WRREQ_E1_MACRO_HI_FULL_MASK | \
+ RB_DEBUG_0_WRREQ_E1_MACRO_LO_FULL_MASK | \
+ RB_DEBUG_0_WRREQ_E0_MACRO_HI_FULL_MASK | \
+ RB_DEBUG_0_WRREQ_E0_MACRO_LO_FULL_MASK | \
+ RB_DEBUG_0_WRREQ_C_WE_HI_FULL_MASK | \
+ RB_DEBUG_0_WRREQ_C_WE_LO_FULL_MASK | \
+ RB_DEBUG_0_WRREQ_Z1_FULL_MASK | \
+ RB_DEBUG_0_WRREQ_Z0_FULL_MASK | \
+ RB_DEBUG_0_WRREQ_C1_FULL_MASK | \
+ RB_DEBUG_0_WRREQ_C0_FULL_MASK | \
+ RB_DEBUG_0_CMDFIFO_Z1_HOLD_FULL_MASK | \
+ RB_DEBUG_0_CMDFIFO_Z0_HOLD_FULL_MASK | \
+ RB_DEBUG_0_CMDFIFO_C1_HOLD_FULL_MASK | \
+ RB_DEBUG_0_CMDFIFO_C0_HOLD_FULL_MASK | \
+ RB_DEBUG_0_CMDFIFO_Z_ORDERING_FULL_MASK | \
+ RB_DEBUG_0_CMDFIFO_C_ORDERING_FULL_MASK | \
+ RB_DEBUG_0_C_SX_LAT_FULL_MASK | \
+ RB_DEBUG_0_C_SX_CMD_FULL_MASK | \
+ RB_DEBUG_0_C_EZ_TILE_FULL_MASK | \
+ RB_DEBUG_0_C_REQ_FULL_MASK | \
+ RB_DEBUG_0_C_MASK_FULL_MASK | \
+ RB_DEBUG_0_EZ_INFSAMP_FULL_MASK)
+
+#define RB_DEBUG_0(rdreq_ctl_z1_pre_full, rdreq_ctl_z0_pre_full, rdreq_ctl_c1_pre_full, rdreq_ctl_c0_pre_full, rdreq_e1_ordering_full, rdreq_e0_ordering_full, rdreq_z1_full, rdreq_z0_full, rdreq_c1_full, rdreq_c0_full, wrreq_e1_macro_hi_full, wrreq_e1_macro_lo_full, wrreq_e0_macro_hi_full, wrreq_e0_macro_lo_full, wrreq_c_we_hi_full, wrreq_c_we_lo_full, wrreq_z1_full, wrreq_z0_full, wrreq_c1_full, wrreq_c0_full, cmdfifo_z1_hold_full, cmdfifo_z0_hold_full, cmdfifo_c1_hold_full, cmdfifo_c0_hold_full, cmdfifo_z_ordering_full, cmdfifo_c_ordering_full, c_sx_lat_full, c_sx_cmd_full, c_ez_tile_full, c_req_full, c_mask_full, ez_infsamp_full) \
+ ((rdreq_ctl_z1_pre_full << RB_DEBUG_0_RDREQ_CTL_Z1_PRE_FULL_SHIFT) | \
+ (rdreq_ctl_z0_pre_full << RB_DEBUG_0_RDREQ_CTL_Z0_PRE_FULL_SHIFT) | \
+ (rdreq_ctl_c1_pre_full << RB_DEBUG_0_RDREQ_CTL_C1_PRE_FULL_SHIFT) | \
+ (rdreq_ctl_c0_pre_full << RB_DEBUG_0_RDREQ_CTL_C0_PRE_FULL_SHIFT) | \
+ (rdreq_e1_ordering_full << RB_DEBUG_0_RDREQ_E1_ORDERING_FULL_SHIFT) | \
+ (rdreq_e0_ordering_full << RB_DEBUG_0_RDREQ_E0_ORDERING_FULL_SHIFT) | \
+ (rdreq_z1_full << RB_DEBUG_0_RDREQ_Z1_FULL_SHIFT) | \
+ (rdreq_z0_full << RB_DEBUG_0_RDREQ_Z0_FULL_SHIFT) | \
+ (rdreq_c1_full << RB_DEBUG_0_RDREQ_C1_FULL_SHIFT) | \
+ (rdreq_c0_full << RB_DEBUG_0_RDREQ_C0_FULL_SHIFT) | \
+ (wrreq_e1_macro_hi_full << RB_DEBUG_0_WRREQ_E1_MACRO_HI_FULL_SHIFT) | \
+ (wrreq_e1_macro_lo_full << RB_DEBUG_0_WRREQ_E1_MACRO_LO_FULL_SHIFT) | \
+ (wrreq_e0_macro_hi_full << RB_DEBUG_0_WRREQ_E0_MACRO_HI_FULL_SHIFT) | \
+ (wrreq_e0_macro_lo_full << RB_DEBUG_0_WRREQ_E0_MACRO_LO_FULL_SHIFT) | \
+ (wrreq_c_we_hi_full << RB_DEBUG_0_WRREQ_C_WE_HI_FULL_SHIFT) | \
+ (wrreq_c_we_lo_full << RB_DEBUG_0_WRREQ_C_WE_LO_FULL_SHIFT) | \
+ (wrreq_z1_full << RB_DEBUG_0_WRREQ_Z1_FULL_SHIFT) | \
+ (wrreq_z0_full << RB_DEBUG_0_WRREQ_Z0_FULL_SHIFT) | \
+ (wrreq_c1_full << RB_DEBUG_0_WRREQ_C1_FULL_SHIFT) | \
+ (wrreq_c0_full << RB_DEBUG_0_WRREQ_C0_FULL_SHIFT) | \
+ (cmdfifo_z1_hold_full << RB_DEBUG_0_CMDFIFO_Z1_HOLD_FULL_SHIFT) | \
+ (cmdfifo_z0_hold_full << RB_DEBUG_0_CMDFIFO_Z0_HOLD_FULL_SHIFT) | \
+ (cmdfifo_c1_hold_full << RB_DEBUG_0_CMDFIFO_C1_HOLD_FULL_SHIFT) | \
+ (cmdfifo_c0_hold_full << RB_DEBUG_0_CMDFIFO_C0_HOLD_FULL_SHIFT) | \
+ (cmdfifo_z_ordering_full << RB_DEBUG_0_CMDFIFO_Z_ORDERING_FULL_SHIFT) | \
+ (cmdfifo_c_ordering_full << RB_DEBUG_0_CMDFIFO_C_ORDERING_FULL_SHIFT) | \
+ (c_sx_lat_full << RB_DEBUG_0_C_SX_LAT_FULL_SHIFT) | \
+ (c_sx_cmd_full << RB_DEBUG_0_C_SX_CMD_FULL_SHIFT) | \
+ (c_ez_tile_full << RB_DEBUG_0_C_EZ_TILE_FULL_SHIFT) | \
+ (c_req_full << RB_DEBUG_0_C_REQ_FULL_SHIFT) | \
+ (c_mask_full << RB_DEBUG_0_C_MASK_FULL_SHIFT) | \
+ (ez_infsamp_full << RB_DEBUG_0_EZ_INFSAMP_FULL_SHIFT))
+
+#define RB_DEBUG_0_GET_RDREQ_CTL_Z1_PRE_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_RDREQ_CTL_Z1_PRE_FULL_MASK) >> RB_DEBUG_0_RDREQ_CTL_Z1_PRE_FULL_SHIFT)
+#define RB_DEBUG_0_GET_RDREQ_CTL_Z0_PRE_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_RDREQ_CTL_Z0_PRE_FULL_MASK) >> RB_DEBUG_0_RDREQ_CTL_Z0_PRE_FULL_SHIFT)
+#define RB_DEBUG_0_GET_RDREQ_CTL_C1_PRE_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_RDREQ_CTL_C1_PRE_FULL_MASK) >> RB_DEBUG_0_RDREQ_CTL_C1_PRE_FULL_SHIFT)
+#define RB_DEBUG_0_GET_RDREQ_CTL_C0_PRE_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_RDREQ_CTL_C0_PRE_FULL_MASK) >> RB_DEBUG_0_RDREQ_CTL_C0_PRE_FULL_SHIFT)
+#define RB_DEBUG_0_GET_RDREQ_E1_ORDERING_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_RDREQ_E1_ORDERING_FULL_MASK) >> RB_DEBUG_0_RDREQ_E1_ORDERING_FULL_SHIFT)
+#define RB_DEBUG_0_GET_RDREQ_E0_ORDERING_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_RDREQ_E0_ORDERING_FULL_MASK) >> RB_DEBUG_0_RDREQ_E0_ORDERING_FULL_SHIFT)
+#define RB_DEBUG_0_GET_RDREQ_Z1_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_RDREQ_Z1_FULL_MASK) >> RB_DEBUG_0_RDREQ_Z1_FULL_SHIFT)
+#define RB_DEBUG_0_GET_RDREQ_Z0_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_RDREQ_Z0_FULL_MASK) >> RB_DEBUG_0_RDREQ_Z0_FULL_SHIFT)
+#define RB_DEBUG_0_GET_RDREQ_C1_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_RDREQ_C1_FULL_MASK) >> RB_DEBUG_0_RDREQ_C1_FULL_SHIFT)
+#define RB_DEBUG_0_GET_RDREQ_C0_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_RDREQ_C0_FULL_MASK) >> RB_DEBUG_0_RDREQ_C0_FULL_SHIFT)
+#define RB_DEBUG_0_GET_WRREQ_E1_MACRO_HI_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_WRREQ_E1_MACRO_HI_FULL_MASK) >> RB_DEBUG_0_WRREQ_E1_MACRO_HI_FULL_SHIFT)
+#define RB_DEBUG_0_GET_WRREQ_E1_MACRO_LO_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_WRREQ_E1_MACRO_LO_FULL_MASK) >> RB_DEBUG_0_WRREQ_E1_MACRO_LO_FULL_SHIFT)
+#define RB_DEBUG_0_GET_WRREQ_E0_MACRO_HI_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_WRREQ_E0_MACRO_HI_FULL_MASK) >> RB_DEBUG_0_WRREQ_E0_MACRO_HI_FULL_SHIFT)
+#define RB_DEBUG_0_GET_WRREQ_E0_MACRO_LO_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_WRREQ_E0_MACRO_LO_FULL_MASK) >> RB_DEBUG_0_WRREQ_E0_MACRO_LO_FULL_SHIFT)
+#define RB_DEBUG_0_GET_WRREQ_C_WE_HI_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_WRREQ_C_WE_HI_FULL_MASK) >> RB_DEBUG_0_WRREQ_C_WE_HI_FULL_SHIFT)
+#define RB_DEBUG_0_GET_WRREQ_C_WE_LO_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_WRREQ_C_WE_LO_FULL_MASK) >> RB_DEBUG_0_WRREQ_C_WE_LO_FULL_SHIFT)
+#define RB_DEBUG_0_GET_WRREQ_Z1_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_WRREQ_Z1_FULL_MASK) >> RB_DEBUG_0_WRREQ_Z1_FULL_SHIFT)
+#define RB_DEBUG_0_GET_WRREQ_Z0_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_WRREQ_Z0_FULL_MASK) >> RB_DEBUG_0_WRREQ_Z0_FULL_SHIFT)
+#define RB_DEBUG_0_GET_WRREQ_C1_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_WRREQ_C1_FULL_MASK) >> RB_DEBUG_0_WRREQ_C1_FULL_SHIFT)
+#define RB_DEBUG_0_GET_WRREQ_C0_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_WRREQ_C0_FULL_MASK) >> RB_DEBUG_0_WRREQ_C0_FULL_SHIFT)
+#define RB_DEBUG_0_GET_CMDFIFO_Z1_HOLD_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_CMDFIFO_Z1_HOLD_FULL_MASK) >> RB_DEBUG_0_CMDFIFO_Z1_HOLD_FULL_SHIFT)
+#define RB_DEBUG_0_GET_CMDFIFO_Z0_HOLD_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_CMDFIFO_Z0_HOLD_FULL_MASK) >> RB_DEBUG_0_CMDFIFO_Z0_HOLD_FULL_SHIFT)
+#define RB_DEBUG_0_GET_CMDFIFO_C1_HOLD_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_CMDFIFO_C1_HOLD_FULL_MASK) >> RB_DEBUG_0_CMDFIFO_C1_HOLD_FULL_SHIFT)
+#define RB_DEBUG_0_GET_CMDFIFO_C0_HOLD_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_CMDFIFO_C0_HOLD_FULL_MASK) >> RB_DEBUG_0_CMDFIFO_C0_HOLD_FULL_SHIFT)
+#define RB_DEBUG_0_GET_CMDFIFO_Z_ORDERING_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_CMDFIFO_Z_ORDERING_FULL_MASK) >> RB_DEBUG_0_CMDFIFO_Z_ORDERING_FULL_SHIFT)
+#define RB_DEBUG_0_GET_CMDFIFO_C_ORDERING_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_CMDFIFO_C_ORDERING_FULL_MASK) >> RB_DEBUG_0_CMDFIFO_C_ORDERING_FULL_SHIFT)
+#define RB_DEBUG_0_GET_C_SX_LAT_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_C_SX_LAT_FULL_MASK) >> RB_DEBUG_0_C_SX_LAT_FULL_SHIFT)
+#define RB_DEBUG_0_GET_C_SX_CMD_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_C_SX_CMD_FULL_MASK) >> RB_DEBUG_0_C_SX_CMD_FULL_SHIFT)
+#define RB_DEBUG_0_GET_C_EZ_TILE_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_C_EZ_TILE_FULL_MASK) >> RB_DEBUG_0_C_EZ_TILE_FULL_SHIFT)
+#define RB_DEBUG_0_GET_C_REQ_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_C_REQ_FULL_MASK) >> RB_DEBUG_0_C_REQ_FULL_SHIFT)
+#define RB_DEBUG_0_GET_C_MASK_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_C_MASK_FULL_MASK) >> RB_DEBUG_0_C_MASK_FULL_SHIFT)
+#define RB_DEBUG_0_GET_EZ_INFSAMP_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_EZ_INFSAMP_FULL_MASK) >> RB_DEBUG_0_EZ_INFSAMP_FULL_SHIFT)
+
+#define RB_DEBUG_0_SET_RDREQ_CTL_Z1_PRE_FULL(rb_debug_0_reg, rdreq_ctl_z1_pre_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_RDREQ_CTL_Z1_PRE_FULL_MASK) | (rdreq_ctl_z1_pre_full << RB_DEBUG_0_RDREQ_CTL_Z1_PRE_FULL_SHIFT)
+#define RB_DEBUG_0_SET_RDREQ_CTL_Z0_PRE_FULL(rb_debug_0_reg, rdreq_ctl_z0_pre_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_RDREQ_CTL_Z0_PRE_FULL_MASK) | (rdreq_ctl_z0_pre_full << RB_DEBUG_0_RDREQ_CTL_Z0_PRE_FULL_SHIFT)
+#define RB_DEBUG_0_SET_RDREQ_CTL_C1_PRE_FULL(rb_debug_0_reg, rdreq_ctl_c1_pre_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_RDREQ_CTL_C1_PRE_FULL_MASK) | (rdreq_ctl_c1_pre_full << RB_DEBUG_0_RDREQ_CTL_C1_PRE_FULL_SHIFT)
+#define RB_DEBUG_0_SET_RDREQ_CTL_C0_PRE_FULL(rb_debug_0_reg, rdreq_ctl_c0_pre_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_RDREQ_CTL_C0_PRE_FULL_MASK) | (rdreq_ctl_c0_pre_full << RB_DEBUG_0_RDREQ_CTL_C0_PRE_FULL_SHIFT)
+#define RB_DEBUG_0_SET_RDREQ_E1_ORDERING_FULL(rb_debug_0_reg, rdreq_e1_ordering_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_RDREQ_E1_ORDERING_FULL_MASK) | (rdreq_e1_ordering_full << RB_DEBUG_0_RDREQ_E1_ORDERING_FULL_SHIFT)
+#define RB_DEBUG_0_SET_RDREQ_E0_ORDERING_FULL(rb_debug_0_reg, rdreq_e0_ordering_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_RDREQ_E0_ORDERING_FULL_MASK) | (rdreq_e0_ordering_full << RB_DEBUG_0_RDREQ_E0_ORDERING_FULL_SHIFT)
+#define RB_DEBUG_0_SET_RDREQ_Z1_FULL(rb_debug_0_reg, rdreq_z1_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_RDREQ_Z1_FULL_MASK) | (rdreq_z1_full << RB_DEBUG_0_RDREQ_Z1_FULL_SHIFT)
+#define RB_DEBUG_0_SET_RDREQ_Z0_FULL(rb_debug_0_reg, rdreq_z0_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_RDREQ_Z0_FULL_MASK) | (rdreq_z0_full << RB_DEBUG_0_RDREQ_Z0_FULL_SHIFT)
+#define RB_DEBUG_0_SET_RDREQ_C1_FULL(rb_debug_0_reg, rdreq_c1_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_RDREQ_C1_FULL_MASK) | (rdreq_c1_full << RB_DEBUG_0_RDREQ_C1_FULL_SHIFT)
+#define RB_DEBUG_0_SET_RDREQ_C0_FULL(rb_debug_0_reg, rdreq_c0_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_RDREQ_C0_FULL_MASK) | (rdreq_c0_full << RB_DEBUG_0_RDREQ_C0_FULL_SHIFT)
+#define RB_DEBUG_0_SET_WRREQ_E1_MACRO_HI_FULL(rb_debug_0_reg, wrreq_e1_macro_hi_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_WRREQ_E1_MACRO_HI_FULL_MASK) | (wrreq_e1_macro_hi_full << RB_DEBUG_0_WRREQ_E1_MACRO_HI_FULL_SHIFT)
+#define RB_DEBUG_0_SET_WRREQ_E1_MACRO_LO_FULL(rb_debug_0_reg, wrreq_e1_macro_lo_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_WRREQ_E1_MACRO_LO_FULL_MASK) | (wrreq_e1_macro_lo_full << RB_DEBUG_0_WRREQ_E1_MACRO_LO_FULL_SHIFT)
+#define RB_DEBUG_0_SET_WRREQ_E0_MACRO_HI_FULL(rb_debug_0_reg, wrreq_e0_macro_hi_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_WRREQ_E0_MACRO_HI_FULL_MASK) | (wrreq_e0_macro_hi_full << RB_DEBUG_0_WRREQ_E0_MACRO_HI_FULL_SHIFT)
+#define RB_DEBUG_0_SET_WRREQ_E0_MACRO_LO_FULL(rb_debug_0_reg, wrreq_e0_macro_lo_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_WRREQ_E0_MACRO_LO_FULL_MASK) | (wrreq_e0_macro_lo_full << RB_DEBUG_0_WRREQ_E0_MACRO_LO_FULL_SHIFT)
+#define RB_DEBUG_0_SET_WRREQ_C_WE_HI_FULL(rb_debug_0_reg, wrreq_c_we_hi_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_WRREQ_C_WE_HI_FULL_MASK) | (wrreq_c_we_hi_full << RB_DEBUG_0_WRREQ_C_WE_HI_FULL_SHIFT)
+#define RB_DEBUG_0_SET_WRREQ_C_WE_LO_FULL(rb_debug_0_reg, wrreq_c_we_lo_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_WRREQ_C_WE_LO_FULL_MASK) | (wrreq_c_we_lo_full << RB_DEBUG_0_WRREQ_C_WE_LO_FULL_SHIFT)
+#define RB_DEBUG_0_SET_WRREQ_Z1_FULL(rb_debug_0_reg, wrreq_z1_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_WRREQ_Z1_FULL_MASK) | (wrreq_z1_full << RB_DEBUG_0_WRREQ_Z1_FULL_SHIFT)
+#define RB_DEBUG_0_SET_WRREQ_Z0_FULL(rb_debug_0_reg, wrreq_z0_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_WRREQ_Z0_FULL_MASK) | (wrreq_z0_full << RB_DEBUG_0_WRREQ_Z0_FULL_SHIFT)
+#define RB_DEBUG_0_SET_WRREQ_C1_FULL(rb_debug_0_reg, wrreq_c1_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_WRREQ_C1_FULL_MASK) | (wrreq_c1_full << RB_DEBUG_0_WRREQ_C1_FULL_SHIFT)
+#define RB_DEBUG_0_SET_WRREQ_C0_FULL(rb_debug_0_reg, wrreq_c0_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_WRREQ_C0_FULL_MASK) | (wrreq_c0_full << RB_DEBUG_0_WRREQ_C0_FULL_SHIFT)
+#define RB_DEBUG_0_SET_CMDFIFO_Z1_HOLD_FULL(rb_debug_0_reg, cmdfifo_z1_hold_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_CMDFIFO_Z1_HOLD_FULL_MASK) | (cmdfifo_z1_hold_full << RB_DEBUG_0_CMDFIFO_Z1_HOLD_FULL_SHIFT)
+#define RB_DEBUG_0_SET_CMDFIFO_Z0_HOLD_FULL(rb_debug_0_reg, cmdfifo_z0_hold_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_CMDFIFO_Z0_HOLD_FULL_MASK) | (cmdfifo_z0_hold_full << RB_DEBUG_0_CMDFIFO_Z0_HOLD_FULL_SHIFT)
+#define RB_DEBUG_0_SET_CMDFIFO_C1_HOLD_FULL(rb_debug_0_reg, cmdfifo_c1_hold_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_CMDFIFO_C1_HOLD_FULL_MASK) | (cmdfifo_c1_hold_full << RB_DEBUG_0_CMDFIFO_C1_HOLD_FULL_SHIFT)
+#define RB_DEBUG_0_SET_CMDFIFO_C0_HOLD_FULL(rb_debug_0_reg, cmdfifo_c0_hold_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_CMDFIFO_C0_HOLD_FULL_MASK) | (cmdfifo_c0_hold_full << RB_DEBUG_0_CMDFIFO_C0_HOLD_FULL_SHIFT)
+#define RB_DEBUG_0_SET_CMDFIFO_Z_ORDERING_FULL(rb_debug_0_reg, cmdfifo_z_ordering_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_CMDFIFO_Z_ORDERING_FULL_MASK) | (cmdfifo_z_ordering_full << RB_DEBUG_0_CMDFIFO_Z_ORDERING_FULL_SHIFT)
+#define RB_DEBUG_0_SET_CMDFIFO_C_ORDERING_FULL(rb_debug_0_reg, cmdfifo_c_ordering_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_CMDFIFO_C_ORDERING_FULL_MASK) | (cmdfifo_c_ordering_full << RB_DEBUG_0_CMDFIFO_C_ORDERING_FULL_SHIFT)
+#define RB_DEBUG_0_SET_C_SX_LAT_FULL(rb_debug_0_reg, c_sx_lat_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_C_SX_LAT_FULL_MASK) | (c_sx_lat_full << RB_DEBUG_0_C_SX_LAT_FULL_SHIFT)
+#define RB_DEBUG_0_SET_C_SX_CMD_FULL(rb_debug_0_reg, c_sx_cmd_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_C_SX_CMD_FULL_MASK) | (c_sx_cmd_full << RB_DEBUG_0_C_SX_CMD_FULL_SHIFT)
+#define RB_DEBUG_0_SET_C_EZ_TILE_FULL(rb_debug_0_reg, c_ez_tile_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_C_EZ_TILE_FULL_MASK) | (c_ez_tile_full << RB_DEBUG_0_C_EZ_TILE_FULL_SHIFT)
+#define RB_DEBUG_0_SET_C_REQ_FULL(rb_debug_0_reg, c_req_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_C_REQ_FULL_MASK) | (c_req_full << RB_DEBUG_0_C_REQ_FULL_SHIFT)
+#define RB_DEBUG_0_SET_C_MASK_FULL(rb_debug_0_reg, c_mask_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_C_MASK_FULL_MASK) | (c_mask_full << RB_DEBUG_0_C_MASK_FULL_SHIFT)
+#define RB_DEBUG_0_SET_EZ_INFSAMP_FULL(rb_debug_0_reg, ez_infsamp_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_EZ_INFSAMP_FULL_MASK) | (ez_infsamp_full << RB_DEBUG_0_EZ_INFSAMP_FULL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_debug_0_t {
+ unsigned int rdreq_ctl_z1_pre_full : RB_DEBUG_0_RDREQ_CTL_Z1_PRE_FULL_SIZE;
+ unsigned int rdreq_ctl_z0_pre_full : RB_DEBUG_0_RDREQ_CTL_Z0_PRE_FULL_SIZE;
+ unsigned int rdreq_ctl_c1_pre_full : RB_DEBUG_0_RDREQ_CTL_C1_PRE_FULL_SIZE;
+ unsigned int rdreq_ctl_c0_pre_full : RB_DEBUG_0_RDREQ_CTL_C0_PRE_FULL_SIZE;
+ unsigned int rdreq_e1_ordering_full : RB_DEBUG_0_RDREQ_E1_ORDERING_FULL_SIZE;
+ unsigned int rdreq_e0_ordering_full : RB_DEBUG_0_RDREQ_E0_ORDERING_FULL_SIZE;
+ unsigned int rdreq_z1_full : RB_DEBUG_0_RDREQ_Z1_FULL_SIZE;
+ unsigned int rdreq_z0_full : RB_DEBUG_0_RDREQ_Z0_FULL_SIZE;
+ unsigned int rdreq_c1_full : RB_DEBUG_0_RDREQ_C1_FULL_SIZE;
+ unsigned int rdreq_c0_full : RB_DEBUG_0_RDREQ_C0_FULL_SIZE;
+ unsigned int wrreq_e1_macro_hi_full : RB_DEBUG_0_WRREQ_E1_MACRO_HI_FULL_SIZE;
+ unsigned int wrreq_e1_macro_lo_full : RB_DEBUG_0_WRREQ_E1_MACRO_LO_FULL_SIZE;
+ unsigned int wrreq_e0_macro_hi_full : RB_DEBUG_0_WRREQ_E0_MACRO_HI_FULL_SIZE;
+ unsigned int wrreq_e0_macro_lo_full : RB_DEBUG_0_WRREQ_E0_MACRO_LO_FULL_SIZE;
+ unsigned int wrreq_c_we_hi_full : RB_DEBUG_0_WRREQ_C_WE_HI_FULL_SIZE;
+ unsigned int wrreq_c_we_lo_full : RB_DEBUG_0_WRREQ_C_WE_LO_FULL_SIZE;
+ unsigned int wrreq_z1_full : RB_DEBUG_0_WRREQ_Z1_FULL_SIZE;
+ unsigned int wrreq_z0_full : RB_DEBUG_0_WRREQ_Z0_FULL_SIZE;
+ unsigned int wrreq_c1_full : RB_DEBUG_0_WRREQ_C1_FULL_SIZE;
+ unsigned int wrreq_c0_full : RB_DEBUG_0_WRREQ_C0_FULL_SIZE;
+ unsigned int cmdfifo_z1_hold_full : RB_DEBUG_0_CMDFIFO_Z1_HOLD_FULL_SIZE;
+ unsigned int cmdfifo_z0_hold_full : RB_DEBUG_0_CMDFIFO_Z0_HOLD_FULL_SIZE;
+ unsigned int cmdfifo_c1_hold_full : RB_DEBUG_0_CMDFIFO_C1_HOLD_FULL_SIZE;
+ unsigned int cmdfifo_c0_hold_full : RB_DEBUG_0_CMDFIFO_C0_HOLD_FULL_SIZE;
+ unsigned int cmdfifo_z_ordering_full : RB_DEBUG_0_CMDFIFO_Z_ORDERING_FULL_SIZE;
+ unsigned int cmdfifo_c_ordering_full : RB_DEBUG_0_CMDFIFO_C_ORDERING_FULL_SIZE;
+ unsigned int c_sx_lat_full : RB_DEBUG_0_C_SX_LAT_FULL_SIZE;
+ unsigned int c_sx_cmd_full : RB_DEBUG_0_C_SX_CMD_FULL_SIZE;
+ unsigned int c_ez_tile_full : RB_DEBUG_0_C_EZ_TILE_FULL_SIZE;
+ unsigned int c_req_full : RB_DEBUG_0_C_REQ_FULL_SIZE;
+ unsigned int c_mask_full : RB_DEBUG_0_C_MASK_FULL_SIZE;
+ unsigned int ez_infsamp_full : RB_DEBUG_0_EZ_INFSAMP_FULL_SIZE;
+ } rb_debug_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_debug_0_t {
+ unsigned int ez_infsamp_full : RB_DEBUG_0_EZ_INFSAMP_FULL_SIZE;
+ unsigned int c_mask_full : RB_DEBUG_0_C_MASK_FULL_SIZE;
+ unsigned int c_req_full : RB_DEBUG_0_C_REQ_FULL_SIZE;
+ unsigned int c_ez_tile_full : RB_DEBUG_0_C_EZ_TILE_FULL_SIZE;
+ unsigned int c_sx_cmd_full : RB_DEBUG_0_C_SX_CMD_FULL_SIZE;
+ unsigned int c_sx_lat_full : RB_DEBUG_0_C_SX_LAT_FULL_SIZE;
+ unsigned int cmdfifo_c_ordering_full : RB_DEBUG_0_CMDFIFO_C_ORDERING_FULL_SIZE;
+ unsigned int cmdfifo_z_ordering_full : RB_DEBUG_0_CMDFIFO_Z_ORDERING_FULL_SIZE;
+ unsigned int cmdfifo_c0_hold_full : RB_DEBUG_0_CMDFIFO_C0_HOLD_FULL_SIZE;
+ unsigned int cmdfifo_c1_hold_full : RB_DEBUG_0_CMDFIFO_C1_HOLD_FULL_SIZE;
+ unsigned int cmdfifo_z0_hold_full : RB_DEBUG_0_CMDFIFO_Z0_HOLD_FULL_SIZE;
+ unsigned int cmdfifo_z1_hold_full : RB_DEBUG_0_CMDFIFO_Z1_HOLD_FULL_SIZE;
+ unsigned int wrreq_c0_full : RB_DEBUG_0_WRREQ_C0_FULL_SIZE;
+ unsigned int wrreq_c1_full : RB_DEBUG_0_WRREQ_C1_FULL_SIZE;
+ unsigned int wrreq_z0_full : RB_DEBUG_0_WRREQ_Z0_FULL_SIZE;
+ unsigned int wrreq_z1_full : RB_DEBUG_0_WRREQ_Z1_FULL_SIZE;
+ unsigned int wrreq_c_we_lo_full : RB_DEBUG_0_WRREQ_C_WE_LO_FULL_SIZE;
+ unsigned int wrreq_c_we_hi_full : RB_DEBUG_0_WRREQ_C_WE_HI_FULL_SIZE;
+ unsigned int wrreq_e0_macro_lo_full : RB_DEBUG_0_WRREQ_E0_MACRO_LO_FULL_SIZE;
+ unsigned int wrreq_e0_macro_hi_full : RB_DEBUG_0_WRREQ_E0_MACRO_HI_FULL_SIZE;
+ unsigned int wrreq_e1_macro_lo_full : RB_DEBUG_0_WRREQ_E1_MACRO_LO_FULL_SIZE;
+ unsigned int wrreq_e1_macro_hi_full : RB_DEBUG_0_WRREQ_E1_MACRO_HI_FULL_SIZE;
+ unsigned int rdreq_c0_full : RB_DEBUG_0_RDREQ_C0_FULL_SIZE;
+ unsigned int rdreq_c1_full : RB_DEBUG_0_RDREQ_C1_FULL_SIZE;
+ unsigned int rdreq_z0_full : RB_DEBUG_0_RDREQ_Z0_FULL_SIZE;
+ unsigned int rdreq_z1_full : RB_DEBUG_0_RDREQ_Z1_FULL_SIZE;
+ unsigned int rdreq_e0_ordering_full : RB_DEBUG_0_RDREQ_E0_ORDERING_FULL_SIZE;
+ unsigned int rdreq_e1_ordering_full : RB_DEBUG_0_RDREQ_E1_ORDERING_FULL_SIZE;
+ unsigned int rdreq_ctl_c0_pre_full : RB_DEBUG_0_RDREQ_CTL_C0_PRE_FULL_SIZE;
+ unsigned int rdreq_ctl_c1_pre_full : RB_DEBUG_0_RDREQ_CTL_C1_PRE_FULL_SIZE;
+ unsigned int rdreq_ctl_z0_pre_full : RB_DEBUG_0_RDREQ_CTL_Z0_PRE_FULL_SIZE;
+ unsigned int rdreq_ctl_z1_pre_full : RB_DEBUG_0_RDREQ_CTL_Z1_PRE_FULL_SIZE;
+ } rb_debug_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_debug_0_t f;
+} rb_debug_0_u;
+
+
+/*
+ * RB_DEBUG_1 struct
+ */
+
+#define RB_DEBUG_1_RDREQ_Z1_CMD_EMPTY_SIZE 1
+#define RB_DEBUG_1_RDREQ_Z0_CMD_EMPTY_SIZE 1
+#define RB_DEBUG_1_RDREQ_C1_CMD_EMPTY_SIZE 1
+#define RB_DEBUG_1_RDREQ_C0_CMD_EMPTY_SIZE 1
+#define RB_DEBUG_1_RDREQ_E1_ORDERING_EMPTY_SIZE 1
+#define RB_DEBUG_1_RDREQ_E0_ORDERING_EMPTY_SIZE 1
+#define RB_DEBUG_1_RDREQ_Z1_EMPTY_SIZE 1
+#define RB_DEBUG_1_RDREQ_Z0_EMPTY_SIZE 1
+#define RB_DEBUG_1_RDREQ_C1_EMPTY_SIZE 1
+#define RB_DEBUG_1_RDREQ_C0_EMPTY_SIZE 1
+#define RB_DEBUG_1_WRREQ_E1_MACRO_HI_EMPTY_SIZE 1
+#define RB_DEBUG_1_WRREQ_E1_MACRO_LO_EMPTY_SIZE 1
+#define RB_DEBUG_1_WRREQ_E0_MACRO_HI_EMPTY_SIZE 1
+#define RB_DEBUG_1_WRREQ_E0_MACRO_LO_EMPTY_SIZE 1
+#define RB_DEBUG_1_WRREQ_C_WE_HI_EMPTY_SIZE 1
+#define RB_DEBUG_1_WRREQ_C_WE_LO_EMPTY_SIZE 1
+#define RB_DEBUG_1_WRREQ_Z1_EMPTY_SIZE 1
+#define RB_DEBUG_1_WRREQ_Z0_EMPTY_SIZE 1
+#define RB_DEBUG_1_WRREQ_C1_PRE_EMPTY_SIZE 1
+#define RB_DEBUG_1_WRREQ_C0_PRE_EMPTY_SIZE 1
+#define RB_DEBUG_1_CMDFIFO_Z1_HOLD_EMPTY_SIZE 1
+#define RB_DEBUG_1_CMDFIFO_Z0_HOLD_EMPTY_SIZE 1
+#define RB_DEBUG_1_CMDFIFO_C1_HOLD_EMPTY_SIZE 1
+#define RB_DEBUG_1_CMDFIFO_C0_HOLD_EMPTY_SIZE 1
+#define RB_DEBUG_1_CMDFIFO_Z_ORDERING_EMPTY_SIZE 1
+#define RB_DEBUG_1_CMDFIFO_C_ORDERING_EMPTY_SIZE 1
+#define RB_DEBUG_1_C_SX_LAT_EMPTY_SIZE 1
+#define RB_DEBUG_1_C_SX_CMD_EMPTY_SIZE 1
+#define RB_DEBUG_1_C_EZ_TILE_EMPTY_SIZE 1
+#define RB_DEBUG_1_C_REQ_EMPTY_SIZE 1
+#define RB_DEBUG_1_C_MASK_EMPTY_SIZE 1
+#define RB_DEBUG_1_EZ_INFSAMP_EMPTY_SIZE 1
+
+#define RB_DEBUG_1_RDREQ_Z1_CMD_EMPTY_SHIFT 0
+#define RB_DEBUG_1_RDREQ_Z0_CMD_EMPTY_SHIFT 1
+#define RB_DEBUG_1_RDREQ_C1_CMD_EMPTY_SHIFT 2
+#define RB_DEBUG_1_RDREQ_C0_CMD_EMPTY_SHIFT 3
+#define RB_DEBUG_1_RDREQ_E1_ORDERING_EMPTY_SHIFT 4
+#define RB_DEBUG_1_RDREQ_E0_ORDERING_EMPTY_SHIFT 5
+#define RB_DEBUG_1_RDREQ_Z1_EMPTY_SHIFT 6
+#define RB_DEBUG_1_RDREQ_Z0_EMPTY_SHIFT 7
+#define RB_DEBUG_1_RDREQ_C1_EMPTY_SHIFT 8
+#define RB_DEBUG_1_RDREQ_C0_EMPTY_SHIFT 9
+#define RB_DEBUG_1_WRREQ_E1_MACRO_HI_EMPTY_SHIFT 10
+#define RB_DEBUG_1_WRREQ_E1_MACRO_LO_EMPTY_SHIFT 11
+#define RB_DEBUG_1_WRREQ_E0_MACRO_HI_EMPTY_SHIFT 12
+#define RB_DEBUG_1_WRREQ_E0_MACRO_LO_EMPTY_SHIFT 13
+#define RB_DEBUG_1_WRREQ_C_WE_HI_EMPTY_SHIFT 14
+#define RB_DEBUG_1_WRREQ_C_WE_LO_EMPTY_SHIFT 15
+#define RB_DEBUG_1_WRREQ_Z1_EMPTY_SHIFT 16
+#define RB_DEBUG_1_WRREQ_Z0_EMPTY_SHIFT 17
+#define RB_DEBUG_1_WRREQ_C1_PRE_EMPTY_SHIFT 18
+#define RB_DEBUG_1_WRREQ_C0_PRE_EMPTY_SHIFT 19
+#define RB_DEBUG_1_CMDFIFO_Z1_HOLD_EMPTY_SHIFT 20
+#define RB_DEBUG_1_CMDFIFO_Z0_HOLD_EMPTY_SHIFT 21
+#define RB_DEBUG_1_CMDFIFO_C1_HOLD_EMPTY_SHIFT 22
+#define RB_DEBUG_1_CMDFIFO_C0_HOLD_EMPTY_SHIFT 23
+#define RB_DEBUG_1_CMDFIFO_Z_ORDERING_EMPTY_SHIFT 24
+#define RB_DEBUG_1_CMDFIFO_C_ORDERING_EMPTY_SHIFT 25
+#define RB_DEBUG_1_C_SX_LAT_EMPTY_SHIFT 26
+#define RB_DEBUG_1_C_SX_CMD_EMPTY_SHIFT 27
+#define RB_DEBUG_1_C_EZ_TILE_EMPTY_SHIFT 28
+#define RB_DEBUG_1_C_REQ_EMPTY_SHIFT 29
+#define RB_DEBUG_1_C_MASK_EMPTY_SHIFT 30
+#define RB_DEBUG_1_EZ_INFSAMP_EMPTY_SHIFT 31
+
+#define RB_DEBUG_1_RDREQ_Z1_CMD_EMPTY_MASK 0x00000001
+#define RB_DEBUG_1_RDREQ_Z0_CMD_EMPTY_MASK 0x00000002
+#define RB_DEBUG_1_RDREQ_C1_CMD_EMPTY_MASK 0x00000004
+#define RB_DEBUG_1_RDREQ_C0_CMD_EMPTY_MASK 0x00000008
+#define RB_DEBUG_1_RDREQ_E1_ORDERING_EMPTY_MASK 0x00000010
+#define RB_DEBUG_1_RDREQ_E0_ORDERING_EMPTY_MASK 0x00000020
+#define RB_DEBUG_1_RDREQ_Z1_EMPTY_MASK 0x00000040
+#define RB_DEBUG_1_RDREQ_Z0_EMPTY_MASK 0x00000080
+#define RB_DEBUG_1_RDREQ_C1_EMPTY_MASK 0x00000100
+#define RB_DEBUG_1_RDREQ_C0_EMPTY_MASK 0x00000200
+#define RB_DEBUG_1_WRREQ_E1_MACRO_HI_EMPTY_MASK 0x00000400
+#define RB_DEBUG_1_WRREQ_E1_MACRO_LO_EMPTY_MASK 0x00000800
+#define RB_DEBUG_1_WRREQ_E0_MACRO_HI_EMPTY_MASK 0x00001000
+#define RB_DEBUG_1_WRREQ_E0_MACRO_LO_EMPTY_MASK 0x00002000
+#define RB_DEBUG_1_WRREQ_C_WE_HI_EMPTY_MASK 0x00004000
+#define RB_DEBUG_1_WRREQ_C_WE_LO_EMPTY_MASK 0x00008000
+#define RB_DEBUG_1_WRREQ_Z1_EMPTY_MASK 0x00010000
+#define RB_DEBUG_1_WRREQ_Z0_EMPTY_MASK 0x00020000
+#define RB_DEBUG_1_WRREQ_C1_PRE_EMPTY_MASK 0x00040000
+#define RB_DEBUG_1_WRREQ_C0_PRE_EMPTY_MASK 0x00080000
+#define RB_DEBUG_1_CMDFIFO_Z1_HOLD_EMPTY_MASK 0x00100000
+#define RB_DEBUG_1_CMDFIFO_Z0_HOLD_EMPTY_MASK 0x00200000
+#define RB_DEBUG_1_CMDFIFO_C1_HOLD_EMPTY_MASK 0x00400000
+#define RB_DEBUG_1_CMDFIFO_C0_HOLD_EMPTY_MASK 0x00800000
+#define RB_DEBUG_1_CMDFIFO_Z_ORDERING_EMPTY_MASK 0x01000000
+#define RB_DEBUG_1_CMDFIFO_C_ORDERING_EMPTY_MASK 0x02000000
+#define RB_DEBUG_1_C_SX_LAT_EMPTY_MASK 0x04000000
+#define RB_DEBUG_1_C_SX_CMD_EMPTY_MASK 0x08000000
+#define RB_DEBUG_1_C_EZ_TILE_EMPTY_MASK 0x10000000
+#define RB_DEBUG_1_C_REQ_EMPTY_MASK 0x20000000
+#define RB_DEBUG_1_C_MASK_EMPTY_MASK 0x40000000
+#define RB_DEBUG_1_EZ_INFSAMP_EMPTY_MASK 0x80000000
+
+#define RB_DEBUG_1_MASK \
+ (RB_DEBUG_1_RDREQ_Z1_CMD_EMPTY_MASK | \
+ RB_DEBUG_1_RDREQ_Z0_CMD_EMPTY_MASK | \
+ RB_DEBUG_1_RDREQ_C1_CMD_EMPTY_MASK | \
+ RB_DEBUG_1_RDREQ_C0_CMD_EMPTY_MASK | \
+ RB_DEBUG_1_RDREQ_E1_ORDERING_EMPTY_MASK | \
+ RB_DEBUG_1_RDREQ_E0_ORDERING_EMPTY_MASK | \
+ RB_DEBUG_1_RDREQ_Z1_EMPTY_MASK | \
+ RB_DEBUG_1_RDREQ_Z0_EMPTY_MASK | \
+ RB_DEBUG_1_RDREQ_C1_EMPTY_MASK | \
+ RB_DEBUG_1_RDREQ_C0_EMPTY_MASK | \
+ RB_DEBUG_1_WRREQ_E1_MACRO_HI_EMPTY_MASK | \
+ RB_DEBUG_1_WRREQ_E1_MACRO_LO_EMPTY_MASK | \
+ RB_DEBUG_1_WRREQ_E0_MACRO_HI_EMPTY_MASK | \
+ RB_DEBUG_1_WRREQ_E0_MACRO_LO_EMPTY_MASK | \
+ RB_DEBUG_1_WRREQ_C_WE_HI_EMPTY_MASK | \
+ RB_DEBUG_1_WRREQ_C_WE_LO_EMPTY_MASK | \
+ RB_DEBUG_1_WRREQ_Z1_EMPTY_MASK | \
+ RB_DEBUG_1_WRREQ_Z0_EMPTY_MASK | \
+ RB_DEBUG_1_WRREQ_C1_PRE_EMPTY_MASK | \
+ RB_DEBUG_1_WRREQ_C0_PRE_EMPTY_MASK | \
+ RB_DEBUG_1_CMDFIFO_Z1_HOLD_EMPTY_MASK | \
+ RB_DEBUG_1_CMDFIFO_Z0_HOLD_EMPTY_MASK | \
+ RB_DEBUG_1_CMDFIFO_C1_HOLD_EMPTY_MASK | \
+ RB_DEBUG_1_CMDFIFO_C0_HOLD_EMPTY_MASK | \
+ RB_DEBUG_1_CMDFIFO_Z_ORDERING_EMPTY_MASK | \
+ RB_DEBUG_1_CMDFIFO_C_ORDERING_EMPTY_MASK | \
+ RB_DEBUG_1_C_SX_LAT_EMPTY_MASK | \
+ RB_DEBUG_1_C_SX_CMD_EMPTY_MASK | \
+ RB_DEBUG_1_C_EZ_TILE_EMPTY_MASK | \
+ RB_DEBUG_1_C_REQ_EMPTY_MASK | \
+ RB_DEBUG_1_C_MASK_EMPTY_MASK | \
+ RB_DEBUG_1_EZ_INFSAMP_EMPTY_MASK)
+
+#define RB_DEBUG_1(rdreq_z1_cmd_empty, rdreq_z0_cmd_empty, rdreq_c1_cmd_empty, rdreq_c0_cmd_empty, rdreq_e1_ordering_empty, rdreq_e0_ordering_empty, rdreq_z1_empty, rdreq_z0_empty, rdreq_c1_empty, rdreq_c0_empty, wrreq_e1_macro_hi_empty, wrreq_e1_macro_lo_empty, wrreq_e0_macro_hi_empty, wrreq_e0_macro_lo_empty, wrreq_c_we_hi_empty, wrreq_c_we_lo_empty, wrreq_z1_empty, wrreq_z0_empty, wrreq_c1_pre_empty, wrreq_c0_pre_empty, cmdfifo_z1_hold_empty, cmdfifo_z0_hold_empty, cmdfifo_c1_hold_empty, cmdfifo_c0_hold_empty, cmdfifo_z_ordering_empty, cmdfifo_c_ordering_empty, c_sx_lat_empty, c_sx_cmd_empty, c_ez_tile_empty, c_req_empty, c_mask_empty, ez_infsamp_empty) \
+ ((rdreq_z1_cmd_empty << RB_DEBUG_1_RDREQ_Z1_CMD_EMPTY_SHIFT) | \
+ (rdreq_z0_cmd_empty << RB_DEBUG_1_RDREQ_Z0_CMD_EMPTY_SHIFT) | \
+ (rdreq_c1_cmd_empty << RB_DEBUG_1_RDREQ_C1_CMD_EMPTY_SHIFT) | \
+ (rdreq_c0_cmd_empty << RB_DEBUG_1_RDREQ_C0_CMD_EMPTY_SHIFT) | \
+ (rdreq_e1_ordering_empty << RB_DEBUG_1_RDREQ_E1_ORDERING_EMPTY_SHIFT) | \
+ (rdreq_e0_ordering_empty << RB_DEBUG_1_RDREQ_E0_ORDERING_EMPTY_SHIFT) | \
+ (rdreq_z1_empty << RB_DEBUG_1_RDREQ_Z1_EMPTY_SHIFT) | \
+ (rdreq_z0_empty << RB_DEBUG_1_RDREQ_Z0_EMPTY_SHIFT) | \
+ (rdreq_c1_empty << RB_DEBUG_1_RDREQ_C1_EMPTY_SHIFT) | \
+ (rdreq_c0_empty << RB_DEBUG_1_RDREQ_C0_EMPTY_SHIFT) | \
+ (wrreq_e1_macro_hi_empty << RB_DEBUG_1_WRREQ_E1_MACRO_HI_EMPTY_SHIFT) | \
+ (wrreq_e1_macro_lo_empty << RB_DEBUG_1_WRREQ_E1_MACRO_LO_EMPTY_SHIFT) | \
+ (wrreq_e0_macro_hi_empty << RB_DEBUG_1_WRREQ_E0_MACRO_HI_EMPTY_SHIFT) | \
+ (wrreq_e0_macro_lo_empty << RB_DEBUG_1_WRREQ_E0_MACRO_LO_EMPTY_SHIFT) | \
+ (wrreq_c_we_hi_empty << RB_DEBUG_1_WRREQ_C_WE_HI_EMPTY_SHIFT) | \
+ (wrreq_c_we_lo_empty << RB_DEBUG_1_WRREQ_C_WE_LO_EMPTY_SHIFT) | \
+ (wrreq_z1_empty << RB_DEBUG_1_WRREQ_Z1_EMPTY_SHIFT) | \
+ (wrreq_z0_empty << RB_DEBUG_1_WRREQ_Z0_EMPTY_SHIFT) | \
+ (wrreq_c1_pre_empty << RB_DEBUG_1_WRREQ_C1_PRE_EMPTY_SHIFT) | \
+ (wrreq_c0_pre_empty << RB_DEBUG_1_WRREQ_C0_PRE_EMPTY_SHIFT) | \
+ (cmdfifo_z1_hold_empty << RB_DEBUG_1_CMDFIFO_Z1_HOLD_EMPTY_SHIFT) | \
+ (cmdfifo_z0_hold_empty << RB_DEBUG_1_CMDFIFO_Z0_HOLD_EMPTY_SHIFT) | \
+ (cmdfifo_c1_hold_empty << RB_DEBUG_1_CMDFIFO_C1_HOLD_EMPTY_SHIFT) | \
+ (cmdfifo_c0_hold_empty << RB_DEBUG_1_CMDFIFO_C0_HOLD_EMPTY_SHIFT) | \
+ (cmdfifo_z_ordering_empty << RB_DEBUG_1_CMDFIFO_Z_ORDERING_EMPTY_SHIFT) | \
+ (cmdfifo_c_ordering_empty << RB_DEBUG_1_CMDFIFO_C_ORDERING_EMPTY_SHIFT) | \
+ (c_sx_lat_empty << RB_DEBUG_1_C_SX_LAT_EMPTY_SHIFT) | \
+ (c_sx_cmd_empty << RB_DEBUG_1_C_SX_CMD_EMPTY_SHIFT) | \
+ (c_ez_tile_empty << RB_DEBUG_1_C_EZ_TILE_EMPTY_SHIFT) | \
+ (c_req_empty << RB_DEBUG_1_C_REQ_EMPTY_SHIFT) | \
+ (c_mask_empty << RB_DEBUG_1_C_MASK_EMPTY_SHIFT) | \
+ (ez_infsamp_empty << RB_DEBUG_1_EZ_INFSAMP_EMPTY_SHIFT))
+
+#define RB_DEBUG_1_GET_RDREQ_Z1_CMD_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_RDREQ_Z1_CMD_EMPTY_MASK) >> RB_DEBUG_1_RDREQ_Z1_CMD_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_RDREQ_Z0_CMD_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_RDREQ_Z0_CMD_EMPTY_MASK) >> RB_DEBUG_1_RDREQ_Z0_CMD_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_RDREQ_C1_CMD_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_RDREQ_C1_CMD_EMPTY_MASK) >> RB_DEBUG_1_RDREQ_C1_CMD_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_RDREQ_C0_CMD_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_RDREQ_C0_CMD_EMPTY_MASK) >> RB_DEBUG_1_RDREQ_C0_CMD_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_RDREQ_E1_ORDERING_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_RDREQ_E1_ORDERING_EMPTY_MASK) >> RB_DEBUG_1_RDREQ_E1_ORDERING_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_RDREQ_E0_ORDERING_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_RDREQ_E0_ORDERING_EMPTY_MASK) >> RB_DEBUG_1_RDREQ_E0_ORDERING_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_RDREQ_Z1_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_RDREQ_Z1_EMPTY_MASK) >> RB_DEBUG_1_RDREQ_Z1_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_RDREQ_Z0_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_RDREQ_Z0_EMPTY_MASK) >> RB_DEBUG_1_RDREQ_Z0_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_RDREQ_C1_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_RDREQ_C1_EMPTY_MASK) >> RB_DEBUG_1_RDREQ_C1_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_RDREQ_C0_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_RDREQ_C0_EMPTY_MASK) >> RB_DEBUG_1_RDREQ_C0_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_WRREQ_E1_MACRO_HI_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_WRREQ_E1_MACRO_HI_EMPTY_MASK) >> RB_DEBUG_1_WRREQ_E1_MACRO_HI_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_WRREQ_E1_MACRO_LO_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_WRREQ_E1_MACRO_LO_EMPTY_MASK) >> RB_DEBUG_1_WRREQ_E1_MACRO_LO_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_WRREQ_E0_MACRO_HI_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_WRREQ_E0_MACRO_HI_EMPTY_MASK) >> RB_DEBUG_1_WRREQ_E0_MACRO_HI_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_WRREQ_E0_MACRO_LO_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_WRREQ_E0_MACRO_LO_EMPTY_MASK) >> RB_DEBUG_1_WRREQ_E0_MACRO_LO_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_WRREQ_C_WE_HI_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_WRREQ_C_WE_HI_EMPTY_MASK) >> RB_DEBUG_1_WRREQ_C_WE_HI_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_WRREQ_C_WE_LO_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_WRREQ_C_WE_LO_EMPTY_MASK) >> RB_DEBUG_1_WRREQ_C_WE_LO_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_WRREQ_Z1_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_WRREQ_Z1_EMPTY_MASK) >> RB_DEBUG_1_WRREQ_Z1_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_WRREQ_Z0_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_WRREQ_Z0_EMPTY_MASK) >> RB_DEBUG_1_WRREQ_Z0_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_WRREQ_C1_PRE_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_WRREQ_C1_PRE_EMPTY_MASK) >> RB_DEBUG_1_WRREQ_C1_PRE_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_WRREQ_C0_PRE_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_WRREQ_C0_PRE_EMPTY_MASK) >> RB_DEBUG_1_WRREQ_C0_PRE_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_CMDFIFO_Z1_HOLD_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_CMDFIFO_Z1_HOLD_EMPTY_MASK) >> RB_DEBUG_1_CMDFIFO_Z1_HOLD_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_CMDFIFO_Z0_HOLD_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_CMDFIFO_Z0_HOLD_EMPTY_MASK) >> RB_DEBUG_1_CMDFIFO_Z0_HOLD_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_CMDFIFO_C1_HOLD_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_CMDFIFO_C1_HOLD_EMPTY_MASK) >> RB_DEBUG_1_CMDFIFO_C1_HOLD_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_CMDFIFO_C0_HOLD_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_CMDFIFO_C0_HOLD_EMPTY_MASK) >> RB_DEBUG_1_CMDFIFO_C0_HOLD_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_CMDFIFO_Z_ORDERING_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_CMDFIFO_Z_ORDERING_EMPTY_MASK) >> RB_DEBUG_1_CMDFIFO_Z_ORDERING_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_CMDFIFO_C_ORDERING_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_CMDFIFO_C_ORDERING_EMPTY_MASK) >> RB_DEBUG_1_CMDFIFO_C_ORDERING_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_C_SX_LAT_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_C_SX_LAT_EMPTY_MASK) >> RB_DEBUG_1_C_SX_LAT_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_C_SX_CMD_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_C_SX_CMD_EMPTY_MASK) >> RB_DEBUG_1_C_SX_CMD_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_C_EZ_TILE_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_C_EZ_TILE_EMPTY_MASK) >> RB_DEBUG_1_C_EZ_TILE_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_C_REQ_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_C_REQ_EMPTY_MASK) >> RB_DEBUG_1_C_REQ_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_C_MASK_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_C_MASK_EMPTY_MASK) >> RB_DEBUG_1_C_MASK_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_EZ_INFSAMP_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_EZ_INFSAMP_EMPTY_MASK) >> RB_DEBUG_1_EZ_INFSAMP_EMPTY_SHIFT)
+
+#define RB_DEBUG_1_SET_RDREQ_Z1_CMD_EMPTY(rb_debug_1_reg, rdreq_z1_cmd_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_RDREQ_Z1_CMD_EMPTY_MASK) | (rdreq_z1_cmd_empty << RB_DEBUG_1_RDREQ_Z1_CMD_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_RDREQ_Z0_CMD_EMPTY(rb_debug_1_reg, rdreq_z0_cmd_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_RDREQ_Z0_CMD_EMPTY_MASK) | (rdreq_z0_cmd_empty << RB_DEBUG_1_RDREQ_Z0_CMD_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_RDREQ_C1_CMD_EMPTY(rb_debug_1_reg, rdreq_c1_cmd_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_RDREQ_C1_CMD_EMPTY_MASK) | (rdreq_c1_cmd_empty << RB_DEBUG_1_RDREQ_C1_CMD_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_RDREQ_C0_CMD_EMPTY(rb_debug_1_reg, rdreq_c0_cmd_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_RDREQ_C0_CMD_EMPTY_MASK) | (rdreq_c0_cmd_empty << RB_DEBUG_1_RDREQ_C0_CMD_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_RDREQ_E1_ORDERING_EMPTY(rb_debug_1_reg, rdreq_e1_ordering_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_RDREQ_E1_ORDERING_EMPTY_MASK) | (rdreq_e1_ordering_empty << RB_DEBUG_1_RDREQ_E1_ORDERING_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_RDREQ_E0_ORDERING_EMPTY(rb_debug_1_reg, rdreq_e0_ordering_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_RDREQ_E0_ORDERING_EMPTY_MASK) | (rdreq_e0_ordering_empty << RB_DEBUG_1_RDREQ_E0_ORDERING_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_RDREQ_Z1_EMPTY(rb_debug_1_reg, rdreq_z1_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_RDREQ_Z1_EMPTY_MASK) | (rdreq_z1_empty << RB_DEBUG_1_RDREQ_Z1_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_RDREQ_Z0_EMPTY(rb_debug_1_reg, rdreq_z0_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_RDREQ_Z0_EMPTY_MASK) | (rdreq_z0_empty << RB_DEBUG_1_RDREQ_Z0_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_RDREQ_C1_EMPTY(rb_debug_1_reg, rdreq_c1_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_RDREQ_C1_EMPTY_MASK) | (rdreq_c1_empty << RB_DEBUG_1_RDREQ_C1_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_RDREQ_C0_EMPTY(rb_debug_1_reg, rdreq_c0_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_RDREQ_C0_EMPTY_MASK) | (rdreq_c0_empty << RB_DEBUG_1_RDREQ_C0_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_WRREQ_E1_MACRO_HI_EMPTY(rb_debug_1_reg, wrreq_e1_macro_hi_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_WRREQ_E1_MACRO_HI_EMPTY_MASK) | (wrreq_e1_macro_hi_empty << RB_DEBUG_1_WRREQ_E1_MACRO_HI_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_WRREQ_E1_MACRO_LO_EMPTY(rb_debug_1_reg, wrreq_e1_macro_lo_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_WRREQ_E1_MACRO_LO_EMPTY_MASK) | (wrreq_e1_macro_lo_empty << RB_DEBUG_1_WRREQ_E1_MACRO_LO_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_WRREQ_E0_MACRO_HI_EMPTY(rb_debug_1_reg, wrreq_e0_macro_hi_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_WRREQ_E0_MACRO_HI_EMPTY_MASK) | (wrreq_e0_macro_hi_empty << RB_DEBUG_1_WRREQ_E0_MACRO_HI_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_WRREQ_E0_MACRO_LO_EMPTY(rb_debug_1_reg, wrreq_e0_macro_lo_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_WRREQ_E0_MACRO_LO_EMPTY_MASK) | (wrreq_e0_macro_lo_empty << RB_DEBUG_1_WRREQ_E0_MACRO_LO_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_WRREQ_C_WE_HI_EMPTY(rb_debug_1_reg, wrreq_c_we_hi_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_WRREQ_C_WE_HI_EMPTY_MASK) | (wrreq_c_we_hi_empty << RB_DEBUG_1_WRREQ_C_WE_HI_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_WRREQ_C_WE_LO_EMPTY(rb_debug_1_reg, wrreq_c_we_lo_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_WRREQ_C_WE_LO_EMPTY_MASK) | (wrreq_c_we_lo_empty << RB_DEBUG_1_WRREQ_C_WE_LO_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_WRREQ_Z1_EMPTY(rb_debug_1_reg, wrreq_z1_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_WRREQ_Z1_EMPTY_MASK) | (wrreq_z1_empty << RB_DEBUG_1_WRREQ_Z1_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_WRREQ_Z0_EMPTY(rb_debug_1_reg, wrreq_z0_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_WRREQ_Z0_EMPTY_MASK) | (wrreq_z0_empty << RB_DEBUG_1_WRREQ_Z0_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_WRREQ_C1_PRE_EMPTY(rb_debug_1_reg, wrreq_c1_pre_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_WRREQ_C1_PRE_EMPTY_MASK) | (wrreq_c1_pre_empty << RB_DEBUG_1_WRREQ_C1_PRE_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_WRREQ_C0_PRE_EMPTY(rb_debug_1_reg, wrreq_c0_pre_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_WRREQ_C0_PRE_EMPTY_MASK) | (wrreq_c0_pre_empty << RB_DEBUG_1_WRREQ_C0_PRE_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_CMDFIFO_Z1_HOLD_EMPTY(rb_debug_1_reg, cmdfifo_z1_hold_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_CMDFIFO_Z1_HOLD_EMPTY_MASK) | (cmdfifo_z1_hold_empty << RB_DEBUG_1_CMDFIFO_Z1_HOLD_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_CMDFIFO_Z0_HOLD_EMPTY(rb_debug_1_reg, cmdfifo_z0_hold_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_CMDFIFO_Z0_HOLD_EMPTY_MASK) | (cmdfifo_z0_hold_empty << RB_DEBUG_1_CMDFIFO_Z0_HOLD_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_CMDFIFO_C1_HOLD_EMPTY(rb_debug_1_reg, cmdfifo_c1_hold_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_CMDFIFO_C1_HOLD_EMPTY_MASK) | (cmdfifo_c1_hold_empty << RB_DEBUG_1_CMDFIFO_C1_HOLD_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_CMDFIFO_C0_HOLD_EMPTY(rb_debug_1_reg, cmdfifo_c0_hold_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_CMDFIFO_C0_HOLD_EMPTY_MASK) | (cmdfifo_c0_hold_empty << RB_DEBUG_1_CMDFIFO_C0_HOLD_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_CMDFIFO_Z_ORDERING_EMPTY(rb_debug_1_reg, cmdfifo_z_ordering_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_CMDFIFO_Z_ORDERING_EMPTY_MASK) | (cmdfifo_z_ordering_empty << RB_DEBUG_1_CMDFIFO_Z_ORDERING_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_CMDFIFO_C_ORDERING_EMPTY(rb_debug_1_reg, cmdfifo_c_ordering_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_CMDFIFO_C_ORDERING_EMPTY_MASK) | (cmdfifo_c_ordering_empty << RB_DEBUG_1_CMDFIFO_C_ORDERING_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_C_SX_LAT_EMPTY(rb_debug_1_reg, c_sx_lat_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_C_SX_LAT_EMPTY_MASK) | (c_sx_lat_empty << RB_DEBUG_1_C_SX_LAT_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_C_SX_CMD_EMPTY(rb_debug_1_reg, c_sx_cmd_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_C_SX_CMD_EMPTY_MASK) | (c_sx_cmd_empty << RB_DEBUG_1_C_SX_CMD_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_C_EZ_TILE_EMPTY(rb_debug_1_reg, c_ez_tile_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_C_EZ_TILE_EMPTY_MASK) | (c_ez_tile_empty << RB_DEBUG_1_C_EZ_TILE_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_C_REQ_EMPTY(rb_debug_1_reg, c_req_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_C_REQ_EMPTY_MASK) | (c_req_empty << RB_DEBUG_1_C_REQ_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_C_MASK_EMPTY(rb_debug_1_reg, c_mask_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_C_MASK_EMPTY_MASK) | (c_mask_empty << RB_DEBUG_1_C_MASK_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_EZ_INFSAMP_EMPTY(rb_debug_1_reg, ez_infsamp_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_EZ_INFSAMP_EMPTY_MASK) | (ez_infsamp_empty << RB_DEBUG_1_EZ_INFSAMP_EMPTY_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_debug_1_t {
+ unsigned int rdreq_z1_cmd_empty : RB_DEBUG_1_RDREQ_Z1_CMD_EMPTY_SIZE;
+ unsigned int rdreq_z0_cmd_empty : RB_DEBUG_1_RDREQ_Z0_CMD_EMPTY_SIZE;
+ unsigned int rdreq_c1_cmd_empty : RB_DEBUG_1_RDREQ_C1_CMD_EMPTY_SIZE;
+ unsigned int rdreq_c0_cmd_empty : RB_DEBUG_1_RDREQ_C0_CMD_EMPTY_SIZE;
+ unsigned int rdreq_e1_ordering_empty : RB_DEBUG_1_RDREQ_E1_ORDERING_EMPTY_SIZE;
+ unsigned int rdreq_e0_ordering_empty : RB_DEBUG_1_RDREQ_E0_ORDERING_EMPTY_SIZE;
+ unsigned int rdreq_z1_empty : RB_DEBUG_1_RDREQ_Z1_EMPTY_SIZE;
+ unsigned int rdreq_z0_empty : RB_DEBUG_1_RDREQ_Z0_EMPTY_SIZE;
+ unsigned int rdreq_c1_empty : RB_DEBUG_1_RDREQ_C1_EMPTY_SIZE;
+ unsigned int rdreq_c0_empty : RB_DEBUG_1_RDREQ_C0_EMPTY_SIZE;
+ unsigned int wrreq_e1_macro_hi_empty : RB_DEBUG_1_WRREQ_E1_MACRO_HI_EMPTY_SIZE;
+ unsigned int wrreq_e1_macro_lo_empty : RB_DEBUG_1_WRREQ_E1_MACRO_LO_EMPTY_SIZE;
+ unsigned int wrreq_e0_macro_hi_empty : RB_DEBUG_1_WRREQ_E0_MACRO_HI_EMPTY_SIZE;
+ unsigned int wrreq_e0_macro_lo_empty : RB_DEBUG_1_WRREQ_E0_MACRO_LO_EMPTY_SIZE;
+ unsigned int wrreq_c_we_hi_empty : RB_DEBUG_1_WRREQ_C_WE_HI_EMPTY_SIZE;
+ unsigned int wrreq_c_we_lo_empty : RB_DEBUG_1_WRREQ_C_WE_LO_EMPTY_SIZE;
+ unsigned int wrreq_z1_empty : RB_DEBUG_1_WRREQ_Z1_EMPTY_SIZE;
+ unsigned int wrreq_z0_empty : RB_DEBUG_1_WRREQ_Z0_EMPTY_SIZE;
+ unsigned int wrreq_c1_pre_empty : RB_DEBUG_1_WRREQ_C1_PRE_EMPTY_SIZE;
+ unsigned int wrreq_c0_pre_empty : RB_DEBUG_1_WRREQ_C0_PRE_EMPTY_SIZE;
+ unsigned int cmdfifo_z1_hold_empty : RB_DEBUG_1_CMDFIFO_Z1_HOLD_EMPTY_SIZE;
+ unsigned int cmdfifo_z0_hold_empty : RB_DEBUG_1_CMDFIFO_Z0_HOLD_EMPTY_SIZE;
+ unsigned int cmdfifo_c1_hold_empty : RB_DEBUG_1_CMDFIFO_C1_HOLD_EMPTY_SIZE;
+ unsigned int cmdfifo_c0_hold_empty : RB_DEBUG_1_CMDFIFO_C0_HOLD_EMPTY_SIZE;
+ unsigned int cmdfifo_z_ordering_empty : RB_DEBUG_1_CMDFIFO_Z_ORDERING_EMPTY_SIZE;
+ unsigned int cmdfifo_c_ordering_empty : RB_DEBUG_1_CMDFIFO_C_ORDERING_EMPTY_SIZE;
+ unsigned int c_sx_lat_empty : RB_DEBUG_1_C_SX_LAT_EMPTY_SIZE;
+ unsigned int c_sx_cmd_empty : RB_DEBUG_1_C_SX_CMD_EMPTY_SIZE;
+ unsigned int c_ez_tile_empty : RB_DEBUG_1_C_EZ_TILE_EMPTY_SIZE;
+ unsigned int c_req_empty : RB_DEBUG_1_C_REQ_EMPTY_SIZE;
+ unsigned int c_mask_empty : RB_DEBUG_1_C_MASK_EMPTY_SIZE;
+ unsigned int ez_infsamp_empty : RB_DEBUG_1_EZ_INFSAMP_EMPTY_SIZE;
+ } rb_debug_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_debug_1_t {
+ unsigned int ez_infsamp_empty : RB_DEBUG_1_EZ_INFSAMP_EMPTY_SIZE;
+ unsigned int c_mask_empty : RB_DEBUG_1_C_MASK_EMPTY_SIZE;
+ unsigned int c_req_empty : RB_DEBUG_1_C_REQ_EMPTY_SIZE;
+ unsigned int c_ez_tile_empty : RB_DEBUG_1_C_EZ_TILE_EMPTY_SIZE;
+ unsigned int c_sx_cmd_empty : RB_DEBUG_1_C_SX_CMD_EMPTY_SIZE;
+ unsigned int c_sx_lat_empty : RB_DEBUG_1_C_SX_LAT_EMPTY_SIZE;
+ unsigned int cmdfifo_c_ordering_empty : RB_DEBUG_1_CMDFIFO_C_ORDERING_EMPTY_SIZE;
+ unsigned int cmdfifo_z_ordering_empty : RB_DEBUG_1_CMDFIFO_Z_ORDERING_EMPTY_SIZE;
+ unsigned int cmdfifo_c0_hold_empty : RB_DEBUG_1_CMDFIFO_C0_HOLD_EMPTY_SIZE;
+ unsigned int cmdfifo_c1_hold_empty : RB_DEBUG_1_CMDFIFO_C1_HOLD_EMPTY_SIZE;
+ unsigned int cmdfifo_z0_hold_empty : RB_DEBUG_1_CMDFIFO_Z0_HOLD_EMPTY_SIZE;
+ unsigned int cmdfifo_z1_hold_empty : RB_DEBUG_1_CMDFIFO_Z1_HOLD_EMPTY_SIZE;
+ unsigned int wrreq_c0_pre_empty : RB_DEBUG_1_WRREQ_C0_PRE_EMPTY_SIZE;
+ unsigned int wrreq_c1_pre_empty : RB_DEBUG_1_WRREQ_C1_PRE_EMPTY_SIZE;
+ unsigned int wrreq_z0_empty : RB_DEBUG_1_WRREQ_Z0_EMPTY_SIZE;
+ unsigned int wrreq_z1_empty : RB_DEBUG_1_WRREQ_Z1_EMPTY_SIZE;
+ unsigned int wrreq_c_we_lo_empty : RB_DEBUG_1_WRREQ_C_WE_LO_EMPTY_SIZE;
+ unsigned int wrreq_c_we_hi_empty : RB_DEBUG_1_WRREQ_C_WE_HI_EMPTY_SIZE;
+ unsigned int wrreq_e0_macro_lo_empty : RB_DEBUG_1_WRREQ_E0_MACRO_LO_EMPTY_SIZE;
+ unsigned int wrreq_e0_macro_hi_empty : RB_DEBUG_1_WRREQ_E0_MACRO_HI_EMPTY_SIZE;
+ unsigned int wrreq_e1_macro_lo_empty : RB_DEBUG_1_WRREQ_E1_MACRO_LO_EMPTY_SIZE;
+ unsigned int wrreq_e1_macro_hi_empty : RB_DEBUG_1_WRREQ_E1_MACRO_HI_EMPTY_SIZE;
+ unsigned int rdreq_c0_empty : RB_DEBUG_1_RDREQ_C0_EMPTY_SIZE;
+ unsigned int rdreq_c1_empty : RB_DEBUG_1_RDREQ_C1_EMPTY_SIZE;
+ unsigned int rdreq_z0_empty : RB_DEBUG_1_RDREQ_Z0_EMPTY_SIZE;
+ unsigned int rdreq_z1_empty : RB_DEBUG_1_RDREQ_Z1_EMPTY_SIZE;
+ unsigned int rdreq_e0_ordering_empty : RB_DEBUG_1_RDREQ_E0_ORDERING_EMPTY_SIZE;
+ unsigned int rdreq_e1_ordering_empty : RB_DEBUG_1_RDREQ_E1_ORDERING_EMPTY_SIZE;
+ unsigned int rdreq_c0_cmd_empty : RB_DEBUG_1_RDREQ_C0_CMD_EMPTY_SIZE;
+ unsigned int rdreq_c1_cmd_empty : RB_DEBUG_1_RDREQ_C1_CMD_EMPTY_SIZE;
+ unsigned int rdreq_z0_cmd_empty : RB_DEBUG_1_RDREQ_Z0_CMD_EMPTY_SIZE;
+ unsigned int rdreq_z1_cmd_empty : RB_DEBUG_1_RDREQ_Z1_CMD_EMPTY_SIZE;
+ } rb_debug_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_debug_1_t f;
+} rb_debug_1_u;
+
+
+/*
+ * RB_DEBUG_2 struct
+ */
+
+#define RB_DEBUG_2_TILE_FIFO_COUNT_SIZE 4
+#define RB_DEBUG_2_SX_LAT_FIFO_COUNT_SIZE 7
+#define RB_DEBUG_2_MEM_EXPORT_FLAG_SIZE 1
+#define RB_DEBUG_2_SYSMEM_BLEND_FLAG_SIZE 1
+#define RB_DEBUG_2_CURRENT_TILE_EVENT_SIZE 1
+#define RB_DEBUG_2_EZ_INFTILE_FULL_SIZE 1
+#define RB_DEBUG_2_EZ_MASK_LOWER_FULL_SIZE 1
+#define RB_DEBUG_2_EZ_MASK_UPPER_FULL_SIZE 1
+#define RB_DEBUG_2_Z0_MASK_FULL_SIZE 1
+#define RB_DEBUG_2_Z1_MASK_FULL_SIZE 1
+#define RB_DEBUG_2_Z0_REQ_FULL_SIZE 1
+#define RB_DEBUG_2_Z1_REQ_FULL_SIZE 1
+#define RB_DEBUG_2_Z_SAMP_FULL_SIZE 1
+#define RB_DEBUG_2_Z_TILE_FULL_SIZE 1
+#define RB_DEBUG_2_EZ_INFTILE_EMPTY_SIZE 1
+#define RB_DEBUG_2_EZ_MASK_LOWER_EMPTY_SIZE 1
+#define RB_DEBUG_2_EZ_MASK_UPPER_EMPTY_SIZE 1
+#define RB_DEBUG_2_Z0_MASK_EMPTY_SIZE 1
+#define RB_DEBUG_2_Z1_MASK_EMPTY_SIZE 1
+#define RB_DEBUG_2_Z0_REQ_EMPTY_SIZE 1
+#define RB_DEBUG_2_Z1_REQ_EMPTY_SIZE 1
+#define RB_DEBUG_2_Z_SAMP_EMPTY_SIZE 1
+#define RB_DEBUG_2_Z_TILE_EMPTY_SIZE 1
+
+#define RB_DEBUG_2_TILE_FIFO_COUNT_SHIFT 0
+#define RB_DEBUG_2_SX_LAT_FIFO_COUNT_SHIFT 4
+#define RB_DEBUG_2_MEM_EXPORT_FLAG_SHIFT 11
+#define RB_DEBUG_2_SYSMEM_BLEND_FLAG_SHIFT 12
+#define RB_DEBUG_2_CURRENT_TILE_EVENT_SHIFT 13
+#define RB_DEBUG_2_EZ_INFTILE_FULL_SHIFT 14
+#define RB_DEBUG_2_EZ_MASK_LOWER_FULL_SHIFT 15
+#define RB_DEBUG_2_EZ_MASK_UPPER_FULL_SHIFT 16
+#define RB_DEBUG_2_Z0_MASK_FULL_SHIFT 17
+#define RB_DEBUG_2_Z1_MASK_FULL_SHIFT 18
+#define RB_DEBUG_2_Z0_REQ_FULL_SHIFT 19
+#define RB_DEBUG_2_Z1_REQ_FULL_SHIFT 20
+#define RB_DEBUG_2_Z_SAMP_FULL_SHIFT 21
+#define RB_DEBUG_2_Z_TILE_FULL_SHIFT 22
+#define RB_DEBUG_2_EZ_INFTILE_EMPTY_SHIFT 23
+#define RB_DEBUG_2_EZ_MASK_LOWER_EMPTY_SHIFT 24
+#define RB_DEBUG_2_EZ_MASK_UPPER_EMPTY_SHIFT 25
+#define RB_DEBUG_2_Z0_MASK_EMPTY_SHIFT 26
+#define RB_DEBUG_2_Z1_MASK_EMPTY_SHIFT 27
+#define RB_DEBUG_2_Z0_REQ_EMPTY_SHIFT 28
+#define RB_DEBUG_2_Z1_REQ_EMPTY_SHIFT 29
+#define RB_DEBUG_2_Z_SAMP_EMPTY_SHIFT 30
+#define RB_DEBUG_2_Z_TILE_EMPTY_SHIFT 31
+
+#define RB_DEBUG_2_TILE_FIFO_COUNT_MASK 0x0000000f
+#define RB_DEBUG_2_SX_LAT_FIFO_COUNT_MASK 0x000007f0
+#define RB_DEBUG_2_MEM_EXPORT_FLAG_MASK 0x00000800
+#define RB_DEBUG_2_SYSMEM_BLEND_FLAG_MASK 0x00001000
+#define RB_DEBUG_2_CURRENT_TILE_EVENT_MASK 0x00002000
+#define RB_DEBUG_2_EZ_INFTILE_FULL_MASK 0x00004000
+#define RB_DEBUG_2_EZ_MASK_LOWER_FULL_MASK 0x00008000
+#define RB_DEBUG_2_EZ_MASK_UPPER_FULL_MASK 0x00010000
+#define RB_DEBUG_2_Z0_MASK_FULL_MASK 0x00020000
+#define RB_DEBUG_2_Z1_MASK_FULL_MASK 0x00040000
+#define RB_DEBUG_2_Z0_REQ_FULL_MASK 0x00080000
+#define RB_DEBUG_2_Z1_REQ_FULL_MASK 0x00100000
+#define RB_DEBUG_2_Z_SAMP_FULL_MASK 0x00200000
+#define RB_DEBUG_2_Z_TILE_FULL_MASK 0x00400000
+#define RB_DEBUG_2_EZ_INFTILE_EMPTY_MASK 0x00800000
+#define RB_DEBUG_2_EZ_MASK_LOWER_EMPTY_MASK 0x01000000
+#define RB_DEBUG_2_EZ_MASK_UPPER_EMPTY_MASK 0x02000000
+#define RB_DEBUG_2_Z0_MASK_EMPTY_MASK 0x04000000
+#define RB_DEBUG_2_Z1_MASK_EMPTY_MASK 0x08000000
+#define RB_DEBUG_2_Z0_REQ_EMPTY_MASK 0x10000000
+#define RB_DEBUG_2_Z1_REQ_EMPTY_MASK 0x20000000
+#define RB_DEBUG_2_Z_SAMP_EMPTY_MASK 0x40000000
+#define RB_DEBUG_2_Z_TILE_EMPTY_MASK 0x80000000
+
+#define RB_DEBUG_2_MASK \
+ (RB_DEBUG_2_TILE_FIFO_COUNT_MASK | \
+ RB_DEBUG_2_SX_LAT_FIFO_COUNT_MASK | \
+ RB_DEBUG_2_MEM_EXPORT_FLAG_MASK | \
+ RB_DEBUG_2_SYSMEM_BLEND_FLAG_MASK | \
+ RB_DEBUG_2_CURRENT_TILE_EVENT_MASK | \
+ RB_DEBUG_2_EZ_INFTILE_FULL_MASK | \
+ RB_DEBUG_2_EZ_MASK_LOWER_FULL_MASK | \
+ RB_DEBUG_2_EZ_MASK_UPPER_FULL_MASK | \
+ RB_DEBUG_2_Z0_MASK_FULL_MASK | \
+ RB_DEBUG_2_Z1_MASK_FULL_MASK | \
+ RB_DEBUG_2_Z0_REQ_FULL_MASK | \
+ RB_DEBUG_2_Z1_REQ_FULL_MASK | \
+ RB_DEBUG_2_Z_SAMP_FULL_MASK | \
+ RB_DEBUG_2_Z_TILE_FULL_MASK | \
+ RB_DEBUG_2_EZ_INFTILE_EMPTY_MASK | \
+ RB_DEBUG_2_EZ_MASK_LOWER_EMPTY_MASK | \
+ RB_DEBUG_2_EZ_MASK_UPPER_EMPTY_MASK | \
+ RB_DEBUG_2_Z0_MASK_EMPTY_MASK | \
+ RB_DEBUG_2_Z1_MASK_EMPTY_MASK | \
+ RB_DEBUG_2_Z0_REQ_EMPTY_MASK | \
+ RB_DEBUG_2_Z1_REQ_EMPTY_MASK | \
+ RB_DEBUG_2_Z_SAMP_EMPTY_MASK | \
+ RB_DEBUG_2_Z_TILE_EMPTY_MASK)
+
+#define RB_DEBUG_2(tile_fifo_count, sx_lat_fifo_count, mem_export_flag, sysmem_blend_flag, current_tile_event, ez_inftile_full, ez_mask_lower_full, ez_mask_upper_full, z0_mask_full, z1_mask_full, z0_req_full, z1_req_full, z_samp_full, z_tile_full, ez_inftile_empty, ez_mask_lower_empty, ez_mask_upper_empty, z0_mask_empty, z1_mask_empty, z0_req_empty, z1_req_empty, z_samp_empty, z_tile_empty) \
+ ((tile_fifo_count << RB_DEBUG_2_TILE_FIFO_COUNT_SHIFT) | \
+ (sx_lat_fifo_count << RB_DEBUG_2_SX_LAT_FIFO_COUNT_SHIFT) | \
+ (mem_export_flag << RB_DEBUG_2_MEM_EXPORT_FLAG_SHIFT) | \
+ (sysmem_blend_flag << RB_DEBUG_2_SYSMEM_BLEND_FLAG_SHIFT) | \
+ (current_tile_event << RB_DEBUG_2_CURRENT_TILE_EVENT_SHIFT) | \
+ (ez_inftile_full << RB_DEBUG_2_EZ_INFTILE_FULL_SHIFT) | \
+ (ez_mask_lower_full << RB_DEBUG_2_EZ_MASK_LOWER_FULL_SHIFT) | \
+ (ez_mask_upper_full << RB_DEBUG_2_EZ_MASK_UPPER_FULL_SHIFT) | \
+ (z0_mask_full << RB_DEBUG_2_Z0_MASK_FULL_SHIFT) | \
+ (z1_mask_full << RB_DEBUG_2_Z1_MASK_FULL_SHIFT) | \
+ (z0_req_full << RB_DEBUG_2_Z0_REQ_FULL_SHIFT) | \
+ (z1_req_full << RB_DEBUG_2_Z1_REQ_FULL_SHIFT) | \
+ (z_samp_full << RB_DEBUG_2_Z_SAMP_FULL_SHIFT) | \
+ (z_tile_full << RB_DEBUG_2_Z_TILE_FULL_SHIFT) | \
+ (ez_inftile_empty << RB_DEBUG_2_EZ_INFTILE_EMPTY_SHIFT) | \
+ (ez_mask_lower_empty << RB_DEBUG_2_EZ_MASK_LOWER_EMPTY_SHIFT) | \
+ (ez_mask_upper_empty << RB_DEBUG_2_EZ_MASK_UPPER_EMPTY_SHIFT) | \
+ (z0_mask_empty << RB_DEBUG_2_Z0_MASK_EMPTY_SHIFT) | \
+ (z1_mask_empty << RB_DEBUG_2_Z1_MASK_EMPTY_SHIFT) | \
+ (z0_req_empty << RB_DEBUG_2_Z0_REQ_EMPTY_SHIFT) | \
+ (z1_req_empty << RB_DEBUG_2_Z1_REQ_EMPTY_SHIFT) | \
+ (z_samp_empty << RB_DEBUG_2_Z_SAMP_EMPTY_SHIFT) | \
+ (z_tile_empty << RB_DEBUG_2_Z_TILE_EMPTY_SHIFT))
+
+#define RB_DEBUG_2_GET_TILE_FIFO_COUNT(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_TILE_FIFO_COUNT_MASK) >> RB_DEBUG_2_TILE_FIFO_COUNT_SHIFT)
+#define RB_DEBUG_2_GET_SX_LAT_FIFO_COUNT(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_SX_LAT_FIFO_COUNT_MASK) >> RB_DEBUG_2_SX_LAT_FIFO_COUNT_SHIFT)
+#define RB_DEBUG_2_GET_MEM_EXPORT_FLAG(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_MEM_EXPORT_FLAG_MASK) >> RB_DEBUG_2_MEM_EXPORT_FLAG_SHIFT)
+#define RB_DEBUG_2_GET_SYSMEM_BLEND_FLAG(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_SYSMEM_BLEND_FLAG_MASK) >> RB_DEBUG_2_SYSMEM_BLEND_FLAG_SHIFT)
+#define RB_DEBUG_2_GET_CURRENT_TILE_EVENT(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_CURRENT_TILE_EVENT_MASK) >> RB_DEBUG_2_CURRENT_TILE_EVENT_SHIFT)
+#define RB_DEBUG_2_GET_EZ_INFTILE_FULL(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_EZ_INFTILE_FULL_MASK) >> RB_DEBUG_2_EZ_INFTILE_FULL_SHIFT)
+#define RB_DEBUG_2_GET_EZ_MASK_LOWER_FULL(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_EZ_MASK_LOWER_FULL_MASK) >> RB_DEBUG_2_EZ_MASK_LOWER_FULL_SHIFT)
+#define RB_DEBUG_2_GET_EZ_MASK_UPPER_FULL(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_EZ_MASK_UPPER_FULL_MASK) >> RB_DEBUG_2_EZ_MASK_UPPER_FULL_SHIFT)
+#define RB_DEBUG_2_GET_Z0_MASK_FULL(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_Z0_MASK_FULL_MASK) >> RB_DEBUG_2_Z0_MASK_FULL_SHIFT)
+#define RB_DEBUG_2_GET_Z1_MASK_FULL(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_Z1_MASK_FULL_MASK) >> RB_DEBUG_2_Z1_MASK_FULL_SHIFT)
+#define RB_DEBUG_2_GET_Z0_REQ_FULL(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_Z0_REQ_FULL_MASK) >> RB_DEBUG_2_Z0_REQ_FULL_SHIFT)
+#define RB_DEBUG_2_GET_Z1_REQ_FULL(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_Z1_REQ_FULL_MASK) >> RB_DEBUG_2_Z1_REQ_FULL_SHIFT)
+#define RB_DEBUG_2_GET_Z_SAMP_FULL(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_Z_SAMP_FULL_MASK) >> RB_DEBUG_2_Z_SAMP_FULL_SHIFT)
+#define RB_DEBUG_2_GET_Z_TILE_FULL(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_Z_TILE_FULL_MASK) >> RB_DEBUG_2_Z_TILE_FULL_SHIFT)
+#define RB_DEBUG_2_GET_EZ_INFTILE_EMPTY(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_EZ_INFTILE_EMPTY_MASK) >> RB_DEBUG_2_EZ_INFTILE_EMPTY_SHIFT)
+#define RB_DEBUG_2_GET_EZ_MASK_LOWER_EMPTY(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_EZ_MASK_LOWER_EMPTY_MASK) >> RB_DEBUG_2_EZ_MASK_LOWER_EMPTY_SHIFT)
+#define RB_DEBUG_2_GET_EZ_MASK_UPPER_EMPTY(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_EZ_MASK_UPPER_EMPTY_MASK) >> RB_DEBUG_2_EZ_MASK_UPPER_EMPTY_SHIFT)
+#define RB_DEBUG_2_GET_Z0_MASK_EMPTY(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_Z0_MASK_EMPTY_MASK) >> RB_DEBUG_2_Z0_MASK_EMPTY_SHIFT)
+#define RB_DEBUG_2_GET_Z1_MASK_EMPTY(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_Z1_MASK_EMPTY_MASK) >> RB_DEBUG_2_Z1_MASK_EMPTY_SHIFT)
+#define RB_DEBUG_2_GET_Z0_REQ_EMPTY(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_Z0_REQ_EMPTY_MASK) >> RB_DEBUG_2_Z0_REQ_EMPTY_SHIFT)
+#define RB_DEBUG_2_GET_Z1_REQ_EMPTY(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_Z1_REQ_EMPTY_MASK) >> RB_DEBUG_2_Z1_REQ_EMPTY_SHIFT)
+#define RB_DEBUG_2_GET_Z_SAMP_EMPTY(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_Z_SAMP_EMPTY_MASK) >> RB_DEBUG_2_Z_SAMP_EMPTY_SHIFT)
+#define RB_DEBUG_2_GET_Z_TILE_EMPTY(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_Z_TILE_EMPTY_MASK) >> RB_DEBUG_2_Z_TILE_EMPTY_SHIFT)
+
+#define RB_DEBUG_2_SET_TILE_FIFO_COUNT(rb_debug_2_reg, tile_fifo_count) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_TILE_FIFO_COUNT_MASK) | (tile_fifo_count << RB_DEBUG_2_TILE_FIFO_COUNT_SHIFT)
+#define RB_DEBUG_2_SET_SX_LAT_FIFO_COUNT(rb_debug_2_reg, sx_lat_fifo_count) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_SX_LAT_FIFO_COUNT_MASK) | (sx_lat_fifo_count << RB_DEBUG_2_SX_LAT_FIFO_COUNT_SHIFT)
+#define RB_DEBUG_2_SET_MEM_EXPORT_FLAG(rb_debug_2_reg, mem_export_flag) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_MEM_EXPORT_FLAG_MASK) | (mem_export_flag << RB_DEBUG_2_MEM_EXPORT_FLAG_SHIFT)
+#define RB_DEBUG_2_SET_SYSMEM_BLEND_FLAG(rb_debug_2_reg, sysmem_blend_flag) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_SYSMEM_BLEND_FLAG_MASK) | (sysmem_blend_flag << RB_DEBUG_2_SYSMEM_BLEND_FLAG_SHIFT)
+#define RB_DEBUG_2_SET_CURRENT_TILE_EVENT(rb_debug_2_reg, current_tile_event) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_CURRENT_TILE_EVENT_MASK) | (current_tile_event << RB_DEBUG_2_CURRENT_TILE_EVENT_SHIFT)
+#define RB_DEBUG_2_SET_EZ_INFTILE_FULL(rb_debug_2_reg, ez_inftile_full) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_EZ_INFTILE_FULL_MASK) | (ez_inftile_full << RB_DEBUG_2_EZ_INFTILE_FULL_SHIFT)
+#define RB_DEBUG_2_SET_EZ_MASK_LOWER_FULL(rb_debug_2_reg, ez_mask_lower_full) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_EZ_MASK_LOWER_FULL_MASK) | (ez_mask_lower_full << RB_DEBUG_2_EZ_MASK_LOWER_FULL_SHIFT)
+#define RB_DEBUG_2_SET_EZ_MASK_UPPER_FULL(rb_debug_2_reg, ez_mask_upper_full) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_EZ_MASK_UPPER_FULL_MASK) | (ez_mask_upper_full << RB_DEBUG_2_EZ_MASK_UPPER_FULL_SHIFT)
+#define RB_DEBUG_2_SET_Z0_MASK_FULL(rb_debug_2_reg, z0_mask_full) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_Z0_MASK_FULL_MASK) | (z0_mask_full << RB_DEBUG_2_Z0_MASK_FULL_SHIFT)
+#define RB_DEBUG_2_SET_Z1_MASK_FULL(rb_debug_2_reg, z1_mask_full) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_Z1_MASK_FULL_MASK) | (z1_mask_full << RB_DEBUG_2_Z1_MASK_FULL_SHIFT)
+#define RB_DEBUG_2_SET_Z0_REQ_FULL(rb_debug_2_reg, z0_req_full) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_Z0_REQ_FULL_MASK) | (z0_req_full << RB_DEBUG_2_Z0_REQ_FULL_SHIFT)
+#define RB_DEBUG_2_SET_Z1_REQ_FULL(rb_debug_2_reg, z1_req_full) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_Z1_REQ_FULL_MASK) | (z1_req_full << RB_DEBUG_2_Z1_REQ_FULL_SHIFT)
+#define RB_DEBUG_2_SET_Z_SAMP_FULL(rb_debug_2_reg, z_samp_full) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_Z_SAMP_FULL_MASK) | (z_samp_full << RB_DEBUG_2_Z_SAMP_FULL_SHIFT)
+#define RB_DEBUG_2_SET_Z_TILE_FULL(rb_debug_2_reg, z_tile_full) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_Z_TILE_FULL_MASK) | (z_tile_full << RB_DEBUG_2_Z_TILE_FULL_SHIFT)
+#define RB_DEBUG_2_SET_EZ_INFTILE_EMPTY(rb_debug_2_reg, ez_inftile_empty) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_EZ_INFTILE_EMPTY_MASK) | (ez_inftile_empty << RB_DEBUG_2_EZ_INFTILE_EMPTY_SHIFT)
+#define RB_DEBUG_2_SET_EZ_MASK_LOWER_EMPTY(rb_debug_2_reg, ez_mask_lower_empty) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_EZ_MASK_LOWER_EMPTY_MASK) | (ez_mask_lower_empty << RB_DEBUG_2_EZ_MASK_LOWER_EMPTY_SHIFT)
+#define RB_DEBUG_2_SET_EZ_MASK_UPPER_EMPTY(rb_debug_2_reg, ez_mask_upper_empty) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_EZ_MASK_UPPER_EMPTY_MASK) | (ez_mask_upper_empty << RB_DEBUG_2_EZ_MASK_UPPER_EMPTY_SHIFT)
+#define RB_DEBUG_2_SET_Z0_MASK_EMPTY(rb_debug_2_reg, z0_mask_empty) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_Z0_MASK_EMPTY_MASK) | (z0_mask_empty << RB_DEBUG_2_Z0_MASK_EMPTY_SHIFT)
+#define RB_DEBUG_2_SET_Z1_MASK_EMPTY(rb_debug_2_reg, z1_mask_empty) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_Z1_MASK_EMPTY_MASK) | (z1_mask_empty << RB_DEBUG_2_Z1_MASK_EMPTY_SHIFT)
+#define RB_DEBUG_2_SET_Z0_REQ_EMPTY(rb_debug_2_reg, z0_req_empty) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_Z0_REQ_EMPTY_MASK) | (z0_req_empty << RB_DEBUG_2_Z0_REQ_EMPTY_SHIFT)
+#define RB_DEBUG_2_SET_Z1_REQ_EMPTY(rb_debug_2_reg, z1_req_empty) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_Z1_REQ_EMPTY_MASK) | (z1_req_empty << RB_DEBUG_2_Z1_REQ_EMPTY_SHIFT)
+#define RB_DEBUG_2_SET_Z_SAMP_EMPTY(rb_debug_2_reg, z_samp_empty) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_Z_SAMP_EMPTY_MASK) | (z_samp_empty << RB_DEBUG_2_Z_SAMP_EMPTY_SHIFT)
+#define RB_DEBUG_2_SET_Z_TILE_EMPTY(rb_debug_2_reg, z_tile_empty) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_Z_TILE_EMPTY_MASK) | (z_tile_empty << RB_DEBUG_2_Z_TILE_EMPTY_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_debug_2_t {
+ unsigned int tile_fifo_count : RB_DEBUG_2_TILE_FIFO_COUNT_SIZE;
+ unsigned int sx_lat_fifo_count : RB_DEBUG_2_SX_LAT_FIFO_COUNT_SIZE;
+ unsigned int mem_export_flag : RB_DEBUG_2_MEM_EXPORT_FLAG_SIZE;
+ unsigned int sysmem_blend_flag : RB_DEBUG_2_SYSMEM_BLEND_FLAG_SIZE;
+ unsigned int current_tile_event : RB_DEBUG_2_CURRENT_TILE_EVENT_SIZE;
+ unsigned int ez_inftile_full : RB_DEBUG_2_EZ_INFTILE_FULL_SIZE;
+ unsigned int ez_mask_lower_full : RB_DEBUG_2_EZ_MASK_LOWER_FULL_SIZE;
+ unsigned int ez_mask_upper_full : RB_DEBUG_2_EZ_MASK_UPPER_FULL_SIZE;
+ unsigned int z0_mask_full : RB_DEBUG_2_Z0_MASK_FULL_SIZE;
+ unsigned int z1_mask_full : RB_DEBUG_2_Z1_MASK_FULL_SIZE;
+ unsigned int z0_req_full : RB_DEBUG_2_Z0_REQ_FULL_SIZE;
+ unsigned int z1_req_full : RB_DEBUG_2_Z1_REQ_FULL_SIZE;
+ unsigned int z_samp_full : RB_DEBUG_2_Z_SAMP_FULL_SIZE;
+ unsigned int z_tile_full : RB_DEBUG_2_Z_TILE_FULL_SIZE;
+ unsigned int ez_inftile_empty : RB_DEBUG_2_EZ_INFTILE_EMPTY_SIZE;
+ unsigned int ez_mask_lower_empty : RB_DEBUG_2_EZ_MASK_LOWER_EMPTY_SIZE;
+ unsigned int ez_mask_upper_empty : RB_DEBUG_2_EZ_MASK_UPPER_EMPTY_SIZE;
+ unsigned int z0_mask_empty : RB_DEBUG_2_Z0_MASK_EMPTY_SIZE;
+ unsigned int z1_mask_empty : RB_DEBUG_2_Z1_MASK_EMPTY_SIZE;
+ unsigned int z0_req_empty : RB_DEBUG_2_Z0_REQ_EMPTY_SIZE;
+ unsigned int z1_req_empty : RB_DEBUG_2_Z1_REQ_EMPTY_SIZE;
+ unsigned int z_samp_empty : RB_DEBUG_2_Z_SAMP_EMPTY_SIZE;
+ unsigned int z_tile_empty : RB_DEBUG_2_Z_TILE_EMPTY_SIZE;
+ } rb_debug_2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_debug_2_t {
+ unsigned int z_tile_empty : RB_DEBUG_2_Z_TILE_EMPTY_SIZE;
+ unsigned int z_samp_empty : RB_DEBUG_2_Z_SAMP_EMPTY_SIZE;
+ unsigned int z1_req_empty : RB_DEBUG_2_Z1_REQ_EMPTY_SIZE;
+ unsigned int z0_req_empty : RB_DEBUG_2_Z0_REQ_EMPTY_SIZE;
+ unsigned int z1_mask_empty : RB_DEBUG_2_Z1_MASK_EMPTY_SIZE;
+ unsigned int z0_mask_empty : RB_DEBUG_2_Z0_MASK_EMPTY_SIZE;
+ unsigned int ez_mask_upper_empty : RB_DEBUG_2_EZ_MASK_UPPER_EMPTY_SIZE;
+ unsigned int ez_mask_lower_empty : RB_DEBUG_2_EZ_MASK_LOWER_EMPTY_SIZE;
+ unsigned int ez_inftile_empty : RB_DEBUG_2_EZ_INFTILE_EMPTY_SIZE;
+ unsigned int z_tile_full : RB_DEBUG_2_Z_TILE_FULL_SIZE;
+ unsigned int z_samp_full : RB_DEBUG_2_Z_SAMP_FULL_SIZE;
+ unsigned int z1_req_full : RB_DEBUG_2_Z1_REQ_FULL_SIZE;
+ unsigned int z0_req_full : RB_DEBUG_2_Z0_REQ_FULL_SIZE;
+ unsigned int z1_mask_full : RB_DEBUG_2_Z1_MASK_FULL_SIZE;
+ unsigned int z0_mask_full : RB_DEBUG_2_Z0_MASK_FULL_SIZE;
+ unsigned int ez_mask_upper_full : RB_DEBUG_2_EZ_MASK_UPPER_FULL_SIZE;
+ unsigned int ez_mask_lower_full : RB_DEBUG_2_EZ_MASK_LOWER_FULL_SIZE;
+ unsigned int ez_inftile_full : RB_DEBUG_2_EZ_INFTILE_FULL_SIZE;
+ unsigned int current_tile_event : RB_DEBUG_2_CURRENT_TILE_EVENT_SIZE;
+ unsigned int sysmem_blend_flag : RB_DEBUG_2_SYSMEM_BLEND_FLAG_SIZE;
+ unsigned int mem_export_flag : RB_DEBUG_2_MEM_EXPORT_FLAG_SIZE;
+ unsigned int sx_lat_fifo_count : RB_DEBUG_2_SX_LAT_FIFO_COUNT_SIZE;
+ unsigned int tile_fifo_count : RB_DEBUG_2_TILE_FIFO_COUNT_SIZE;
+ } rb_debug_2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_debug_2_t f;
+} rb_debug_2_u;
+
+
+/*
+ * RB_DEBUG_3 struct
+ */
+
+#define RB_DEBUG_3_ACCUM_VALID_SIZE 4
+#define RB_DEBUG_3_ACCUM_FLUSHING_SIZE 4
+#define RB_DEBUG_3_ACCUM_WRITE_CLEAN_COUNT_SIZE 6
+#define RB_DEBUG_3_ACCUM_INPUT_REG_VALID_SIZE 1
+#define RB_DEBUG_3_ACCUM_DATA_FIFO_CNT_SIZE 4
+#define RB_DEBUG_3_SHD_FULL_SIZE 1
+#define RB_DEBUG_3_SHD_EMPTY_SIZE 1
+#define RB_DEBUG_3_EZ_RETURN_LOWER_EMPTY_SIZE 1
+#define RB_DEBUG_3_EZ_RETURN_UPPER_EMPTY_SIZE 1
+#define RB_DEBUG_3_EZ_RETURN_LOWER_FULL_SIZE 1
+#define RB_DEBUG_3_EZ_RETURN_UPPER_FULL_SIZE 1
+#define RB_DEBUG_3_ZEXP_LOWER_EMPTY_SIZE 1
+#define RB_DEBUG_3_ZEXP_UPPER_EMPTY_SIZE 1
+#define RB_DEBUG_3_ZEXP_LOWER_FULL_SIZE 1
+#define RB_DEBUG_3_ZEXP_UPPER_FULL_SIZE 1
+
+#define RB_DEBUG_3_ACCUM_VALID_SHIFT 0
+#define RB_DEBUG_3_ACCUM_FLUSHING_SHIFT 4
+#define RB_DEBUG_3_ACCUM_WRITE_CLEAN_COUNT_SHIFT 8
+#define RB_DEBUG_3_ACCUM_INPUT_REG_VALID_SHIFT 14
+#define RB_DEBUG_3_ACCUM_DATA_FIFO_CNT_SHIFT 15
+#define RB_DEBUG_3_SHD_FULL_SHIFT 19
+#define RB_DEBUG_3_SHD_EMPTY_SHIFT 20
+#define RB_DEBUG_3_EZ_RETURN_LOWER_EMPTY_SHIFT 21
+#define RB_DEBUG_3_EZ_RETURN_UPPER_EMPTY_SHIFT 22
+#define RB_DEBUG_3_EZ_RETURN_LOWER_FULL_SHIFT 23
+#define RB_DEBUG_3_EZ_RETURN_UPPER_FULL_SHIFT 24
+#define RB_DEBUG_3_ZEXP_LOWER_EMPTY_SHIFT 25
+#define RB_DEBUG_3_ZEXP_UPPER_EMPTY_SHIFT 26
+#define RB_DEBUG_3_ZEXP_LOWER_FULL_SHIFT 27
+#define RB_DEBUG_3_ZEXP_UPPER_FULL_SHIFT 28
+
+#define RB_DEBUG_3_ACCUM_VALID_MASK 0x0000000f
+#define RB_DEBUG_3_ACCUM_FLUSHING_MASK 0x000000f0
+#define RB_DEBUG_3_ACCUM_WRITE_CLEAN_COUNT_MASK 0x00003f00
+#define RB_DEBUG_3_ACCUM_INPUT_REG_VALID_MASK 0x00004000
+#define RB_DEBUG_3_ACCUM_DATA_FIFO_CNT_MASK 0x00078000
+#define RB_DEBUG_3_SHD_FULL_MASK 0x00080000
+#define RB_DEBUG_3_SHD_EMPTY_MASK 0x00100000
+#define RB_DEBUG_3_EZ_RETURN_LOWER_EMPTY_MASK 0x00200000
+#define RB_DEBUG_3_EZ_RETURN_UPPER_EMPTY_MASK 0x00400000
+#define RB_DEBUG_3_EZ_RETURN_LOWER_FULL_MASK 0x00800000
+#define RB_DEBUG_3_EZ_RETURN_UPPER_FULL_MASK 0x01000000
+#define RB_DEBUG_3_ZEXP_LOWER_EMPTY_MASK 0x02000000
+#define RB_DEBUG_3_ZEXP_UPPER_EMPTY_MASK 0x04000000
+#define RB_DEBUG_3_ZEXP_LOWER_FULL_MASK 0x08000000
+#define RB_DEBUG_3_ZEXP_UPPER_FULL_MASK 0x10000000
+
+#define RB_DEBUG_3_MASK \
+ (RB_DEBUG_3_ACCUM_VALID_MASK | \
+ RB_DEBUG_3_ACCUM_FLUSHING_MASK | \
+ RB_DEBUG_3_ACCUM_WRITE_CLEAN_COUNT_MASK | \
+ RB_DEBUG_3_ACCUM_INPUT_REG_VALID_MASK | \
+ RB_DEBUG_3_ACCUM_DATA_FIFO_CNT_MASK | \
+ RB_DEBUG_3_SHD_FULL_MASK | \
+ RB_DEBUG_3_SHD_EMPTY_MASK | \
+ RB_DEBUG_3_EZ_RETURN_LOWER_EMPTY_MASK | \
+ RB_DEBUG_3_EZ_RETURN_UPPER_EMPTY_MASK | \
+ RB_DEBUG_3_EZ_RETURN_LOWER_FULL_MASK | \
+ RB_DEBUG_3_EZ_RETURN_UPPER_FULL_MASK | \
+ RB_DEBUG_3_ZEXP_LOWER_EMPTY_MASK | \
+ RB_DEBUG_3_ZEXP_UPPER_EMPTY_MASK | \
+ RB_DEBUG_3_ZEXP_LOWER_FULL_MASK | \
+ RB_DEBUG_3_ZEXP_UPPER_FULL_MASK)
+
+#define RB_DEBUG_3(accum_valid, accum_flushing, accum_write_clean_count, accum_input_reg_valid, accum_data_fifo_cnt, shd_full, shd_empty, ez_return_lower_empty, ez_return_upper_empty, ez_return_lower_full, ez_return_upper_full, zexp_lower_empty, zexp_upper_empty, zexp_lower_full, zexp_upper_full) \
+ ((accum_valid << RB_DEBUG_3_ACCUM_VALID_SHIFT) | \
+ (accum_flushing << RB_DEBUG_3_ACCUM_FLUSHING_SHIFT) | \
+ (accum_write_clean_count << RB_DEBUG_3_ACCUM_WRITE_CLEAN_COUNT_SHIFT) | \
+ (accum_input_reg_valid << RB_DEBUG_3_ACCUM_INPUT_REG_VALID_SHIFT) | \
+ (accum_data_fifo_cnt << RB_DEBUG_3_ACCUM_DATA_FIFO_CNT_SHIFT) | \
+ (shd_full << RB_DEBUG_3_SHD_FULL_SHIFT) | \
+ (shd_empty << RB_DEBUG_3_SHD_EMPTY_SHIFT) | \
+ (ez_return_lower_empty << RB_DEBUG_3_EZ_RETURN_LOWER_EMPTY_SHIFT) | \
+ (ez_return_upper_empty << RB_DEBUG_3_EZ_RETURN_UPPER_EMPTY_SHIFT) | \
+ (ez_return_lower_full << RB_DEBUG_3_EZ_RETURN_LOWER_FULL_SHIFT) | \
+ (ez_return_upper_full << RB_DEBUG_3_EZ_RETURN_UPPER_FULL_SHIFT) | \
+ (zexp_lower_empty << RB_DEBUG_3_ZEXP_LOWER_EMPTY_SHIFT) | \
+ (zexp_upper_empty << RB_DEBUG_3_ZEXP_UPPER_EMPTY_SHIFT) | \
+ (zexp_lower_full << RB_DEBUG_3_ZEXP_LOWER_FULL_SHIFT) | \
+ (zexp_upper_full << RB_DEBUG_3_ZEXP_UPPER_FULL_SHIFT))
+
+#define RB_DEBUG_3_GET_ACCUM_VALID(rb_debug_3) \
+ ((rb_debug_3 & RB_DEBUG_3_ACCUM_VALID_MASK) >> RB_DEBUG_3_ACCUM_VALID_SHIFT)
+#define RB_DEBUG_3_GET_ACCUM_FLUSHING(rb_debug_3) \
+ ((rb_debug_3 & RB_DEBUG_3_ACCUM_FLUSHING_MASK) >> RB_DEBUG_3_ACCUM_FLUSHING_SHIFT)
+#define RB_DEBUG_3_GET_ACCUM_WRITE_CLEAN_COUNT(rb_debug_3) \
+ ((rb_debug_3 & RB_DEBUG_3_ACCUM_WRITE_CLEAN_COUNT_MASK) >> RB_DEBUG_3_ACCUM_WRITE_CLEAN_COUNT_SHIFT)
+#define RB_DEBUG_3_GET_ACCUM_INPUT_REG_VALID(rb_debug_3) \
+ ((rb_debug_3 & RB_DEBUG_3_ACCUM_INPUT_REG_VALID_MASK) >> RB_DEBUG_3_ACCUM_INPUT_REG_VALID_SHIFT)
+#define RB_DEBUG_3_GET_ACCUM_DATA_FIFO_CNT(rb_debug_3) \
+ ((rb_debug_3 & RB_DEBUG_3_ACCUM_DATA_FIFO_CNT_MASK) >> RB_DEBUG_3_ACCUM_DATA_FIFO_CNT_SHIFT)
+#define RB_DEBUG_3_GET_SHD_FULL(rb_debug_3) \
+ ((rb_debug_3 & RB_DEBUG_3_SHD_FULL_MASK) >> RB_DEBUG_3_SHD_FULL_SHIFT)
+#define RB_DEBUG_3_GET_SHD_EMPTY(rb_debug_3) \
+ ((rb_debug_3 & RB_DEBUG_3_SHD_EMPTY_MASK) >> RB_DEBUG_3_SHD_EMPTY_SHIFT)
+#define RB_DEBUG_3_GET_EZ_RETURN_LOWER_EMPTY(rb_debug_3) \
+ ((rb_debug_3 & RB_DEBUG_3_EZ_RETURN_LOWER_EMPTY_MASK) >> RB_DEBUG_3_EZ_RETURN_LOWER_EMPTY_SHIFT)
+#define RB_DEBUG_3_GET_EZ_RETURN_UPPER_EMPTY(rb_debug_3) \
+ ((rb_debug_3 & RB_DEBUG_3_EZ_RETURN_UPPER_EMPTY_MASK) >> RB_DEBUG_3_EZ_RETURN_UPPER_EMPTY_SHIFT)
+#define RB_DEBUG_3_GET_EZ_RETURN_LOWER_FULL(rb_debug_3) \
+ ((rb_debug_3 & RB_DEBUG_3_EZ_RETURN_LOWER_FULL_MASK) >> RB_DEBUG_3_EZ_RETURN_LOWER_FULL_SHIFT)
+#define RB_DEBUG_3_GET_EZ_RETURN_UPPER_FULL(rb_debug_3) \
+ ((rb_debug_3 & RB_DEBUG_3_EZ_RETURN_UPPER_FULL_MASK) >> RB_DEBUG_3_EZ_RETURN_UPPER_FULL_SHIFT)
+#define RB_DEBUG_3_GET_ZEXP_LOWER_EMPTY(rb_debug_3) \
+ ((rb_debug_3 & RB_DEBUG_3_ZEXP_LOWER_EMPTY_MASK) >> RB_DEBUG_3_ZEXP_LOWER_EMPTY_SHIFT)
+#define RB_DEBUG_3_GET_ZEXP_UPPER_EMPTY(rb_debug_3) \
+ ((rb_debug_3 & RB_DEBUG_3_ZEXP_UPPER_EMPTY_MASK) >> RB_DEBUG_3_ZEXP_UPPER_EMPTY_SHIFT)
+#define RB_DEBUG_3_GET_ZEXP_LOWER_FULL(rb_debug_3) \
+ ((rb_debug_3 & RB_DEBUG_3_ZEXP_LOWER_FULL_MASK) >> RB_DEBUG_3_ZEXP_LOWER_FULL_SHIFT)
+#define RB_DEBUG_3_GET_ZEXP_UPPER_FULL(rb_debug_3) \
+ ((rb_debug_3 & RB_DEBUG_3_ZEXP_UPPER_FULL_MASK) >> RB_DEBUG_3_ZEXP_UPPER_FULL_SHIFT)
+
+#define RB_DEBUG_3_SET_ACCUM_VALID(rb_debug_3_reg, accum_valid) \
+ rb_debug_3_reg = (rb_debug_3_reg & ~RB_DEBUG_3_ACCUM_VALID_MASK) | (accum_valid << RB_DEBUG_3_ACCUM_VALID_SHIFT)
+#define RB_DEBUG_3_SET_ACCUM_FLUSHING(rb_debug_3_reg, accum_flushing) \
+ rb_debug_3_reg = (rb_debug_3_reg & ~RB_DEBUG_3_ACCUM_FLUSHING_MASK) | (accum_flushing << RB_DEBUG_3_ACCUM_FLUSHING_SHIFT)
+#define RB_DEBUG_3_SET_ACCUM_WRITE_CLEAN_COUNT(rb_debug_3_reg, accum_write_clean_count) \
+ rb_debug_3_reg = (rb_debug_3_reg & ~RB_DEBUG_3_ACCUM_WRITE_CLEAN_COUNT_MASK) | (accum_write_clean_count << RB_DEBUG_3_ACCUM_WRITE_CLEAN_COUNT_SHIFT)
+#define RB_DEBUG_3_SET_ACCUM_INPUT_REG_VALID(rb_debug_3_reg, accum_input_reg_valid) \
+ rb_debug_3_reg = (rb_debug_3_reg & ~RB_DEBUG_3_ACCUM_INPUT_REG_VALID_MASK) | (accum_input_reg_valid << RB_DEBUG_3_ACCUM_INPUT_REG_VALID_SHIFT)
+#define RB_DEBUG_3_SET_ACCUM_DATA_FIFO_CNT(rb_debug_3_reg, accum_data_fifo_cnt) \
+ rb_debug_3_reg = (rb_debug_3_reg & ~RB_DEBUG_3_ACCUM_DATA_FIFO_CNT_MASK) | (accum_data_fifo_cnt << RB_DEBUG_3_ACCUM_DATA_FIFO_CNT_SHIFT)
+#define RB_DEBUG_3_SET_SHD_FULL(rb_debug_3_reg, shd_full) \
+ rb_debug_3_reg = (rb_debug_3_reg & ~RB_DEBUG_3_SHD_FULL_MASK) | (shd_full << RB_DEBUG_3_SHD_FULL_SHIFT)
+#define RB_DEBUG_3_SET_SHD_EMPTY(rb_debug_3_reg, shd_empty) \
+ rb_debug_3_reg = (rb_debug_3_reg & ~RB_DEBUG_3_SHD_EMPTY_MASK) | (shd_empty << RB_DEBUG_3_SHD_EMPTY_SHIFT)
+#define RB_DEBUG_3_SET_EZ_RETURN_LOWER_EMPTY(rb_debug_3_reg, ez_return_lower_empty) \
+ rb_debug_3_reg = (rb_debug_3_reg & ~RB_DEBUG_3_EZ_RETURN_LOWER_EMPTY_MASK) | (ez_return_lower_empty << RB_DEBUG_3_EZ_RETURN_LOWER_EMPTY_SHIFT)
+#define RB_DEBUG_3_SET_EZ_RETURN_UPPER_EMPTY(rb_debug_3_reg, ez_return_upper_empty) \
+ rb_debug_3_reg = (rb_debug_3_reg & ~RB_DEBUG_3_EZ_RETURN_UPPER_EMPTY_MASK) | (ez_return_upper_empty << RB_DEBUG_3_EZ_RETURN_UPPER_EMPTY_SHIFT)
+#define RB_DEBUG_3_SET_EZ_RETURN_LOWER_FULL(rb_debug_3_reg, ez_return_lower_full) \
+ rb_debug_3_reg = (rb_debug_3_reg & ~RB_DEBUG_3_EZ_RETURN_LOWER_FULL_MASK) | (ez_return_lower_full << RB_DEBUG_3_EZ_RETURN_LOWER_FULL_SHIFT)
+#define RB_DEBUG_3_SET_EZ_RETURN_UPPER_FULL(rb_debug_3_reg, ez_return_upper_full) \
+ rb_debug_3_reg = (rb_debug_3_reg & ~RB_DEBUG_3_EZ_RETURN_UPPER_FULL_MASK) | (ez_return_upper_full << RB_DEBUG_3_EZ_RETURN_UPPER_FULL_SHIFT)
+#define RB_DEBUG_3_SET_ZEXP_LOWER_EMPTY(rb_debug_3_reg, zexp_lower_empty) \
+ rb_debug_3_reg = (rb_debug_3_reg & ~RB_DEBUG_3_ZEXP_LOWER_EMPTY_MASK) | (zexp_lower_empty << RB_DEBUG_3_ZEXP_LOWER_EMPTY_SHIFT)
+#define RB_DEBUG_3_SET_ZEXP_UPPER_EMPTY(rb_debug_3_reg, zexp_upper_empty) \
+ rb_debug_3_reg = (rb_debug_3_reg & ~RB_DEBUG_3_ZEXP_UPPER_EMPTY_MASK) | (zexp_upper_empty << RB_DEBUG_3_ZEXP_UPPER_EMPTY_SHIFT)
+#define RB_DEBUG_3_SET_ZEXP_LOWER_FULL(rb_debug_3_reg, zexp_lower_full) \
+ rb_debug_3_reg = (rb_debug_3_reg & ~RB_DEBUG_3_ZEXP_LOWER_FULL_MASK) | (zexp_lower_full << RB_DEBUG_3_ZEXP_LOWER_FULL_SHIFT)
+#define RB_DEBUG_3_SET_ZEXP_UPPER_FULL(rb_debug_3_reg, zexp_upper_full) \
+ rb_debug_3_reg = (rb_debug_3_reg & ~RB_DEBUG_3_ZEXP_UPPER_FULL_MASK) | (zexp_upper_full << RB_DEBUG_3_ZEXP_UPPER_FULL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_debug_3_t {
+ unsigned int accum_valid : RB_DEBUG_3_ACCUM_VALID_SIZE;
+ unsigned int accum_flushing : RB_DEBUG_3_ACCUM_FLUSHING_SIZE;
+ unsigned int accum_write_clean_count : RB_DEBUG_3_ACCUM_WRITE_CLEAN_COUNT_SIZE;
+ unsigned int accum_input_reg_valid : RB_DEBUG_3_ACCUM_INPUT_REG_VALID_SIZE;
+ unsigned int accum_data_fifo_cnt : RB_DEBUG_3_ACCUM_DATA_FIFO_CNT_SIZE;
+ unsigned int shd_full : RB_DEBUG_3_SHD_FULL_SIZE;
+ unsigned int shd_empty : RB_DEBUG_3_SHD_EMPTY_SIZE;
+ unsigned int ez_return_lower_empty : RB_DEBUG_3_EZ_RETURN_LOWER_EMPTY_SIZE;
+ unsigned int ez_return_upper_empty : RB_DEBUG_3_EZ_RETURN_UPPER_EMPTY_SIZE;
+ unsigned int ez_return_lower_full : RB_DEBUG_3_EZ_RETURN_LOWER_FULL_SIZE;
+ unsigned int ez_return_upper_full : RB_DEBUG_3_EZ_RETURN_UPPER_FULL_SIZE;
+ unsigned int zexp_lower_empty : RB_DEBUG_3_ZEXP_LOWER_EMPTY_SIZE;
+ unsigned int zexp_upper_empty : RB_DEBUG_3_ZEXP_UPPER_EMPTY_SIZE;
+ unsigned int zexp_lower_full : RB_DEBUG_3_ZEXP_LOWER_FULL_SIZE;
+ unsigned int zexp_upper_full : RB_DEBUG_3_ZEXP_UPPER_FULL_SIZE;
+ unsigned int : 3;
+ } rb_debug_3_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_debug_3_t {
+ unsigned int : 3;
+ unsigned int zexp_upper_full : RB_DEBUG_3_ZEXP_UPPER_FULL_SIZE;
+ unsigned int zexp_lower_full : RB_DEBUG_3_ZEXP_LOWER_FULL_SIZE;
+ unsigned int zexp_upper_empty : RB_DEBUG_3_ZEXP_UPPER_EMPTY_SIZE;
+ unsigned int zexp_lower_empty : RB_DEBUG_3_ZEXP_LOWER_EMPTY_SIZE;
+ unsigned int ez_return_upper_full : RB_DEBUG_3_EZ_RETURN_UPPER_FULL_SIZE;
+ unsigned int ez_return_lower_full : RB_DEBUG_3_EZ_RETURN_LOWER_FULL_SIZE;
+ unsigned int ez_return_upper_empty : RB_DEBUG_3_EZ_RETURN_UPPER_EMPTY_SIZE;
+ unsigned int ez_return_lower_empty : RB_DEBUG_3_EZ_RETURN_LOWER_EMPTY_SIZE;
+ unsigned int shd_empty : RB_DEBUG_3_SHD_EMPTY_SIZE;
+ unsigned int shd_full : RB_DEBUG_3_SHD_FULL_SIZE;
+ unsigned int accum_data_fifo_cnt : RB_DEBUG_3_ACCUM_DATA_FIFO_CNT_SIZE;
+ unsigned int accum_input_reg_valid : RB_DEBUG_3_ACCUM_INPUT_REG_VALID_SIZE;
+ unsigned int accum_write_clean_count : RB_DEBUG_3_ACCUM_WRITE_CLEAN_COUNT_SIZE;
+ unsigned int accum_flushing : RB_DEBUG_3_ACCUM_FLUSHING_SIZE;
+ unsigned int accum_valid : RB_DEBUG_3_ACCUM_VALID_SIZE;
+ } rb_debug_3_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_debug_3_t f;
+} rb_debug_3_u;
+
+
+/*
+ * RB_DEBUG_4 struct
+ */
+
+#define RB_DEBUG_4_GMEM_RD_ACCESS_FLAG_SIZE 1
+#define RB_DEBUG_4_GMEM_WR_ACCESS_FLAG_SIZE 1
+#define RB_DEBUG_4_SYSMEM_RD_ACCESS_FLAG_SIZE 1
+#define RB_DEBUG_4_SYSMEM_WR_ACCESS_FLAG_SIZE 1
+#define RB_DEBUG_4_ACCUM_DATA_FIFO_EMPTY_SIZE 1
+#define RB_DEBUG_4_ACCUM_ORDER_FIFO_EMPTY_SIZE 1
+#define RB_DEBUG_4_ACCUM_DATA_FIFO_FULL_SIZE 1
+#define RB_DEBUG_4_ACCUM_ORDER_FIFO_FULL_SIZE 1
+#define RB_DEBUG_4_SYSMEM_WRITE_COUNT_OVERFLOW_SIZE 1
+#define RB_DEBUG_4_CONTEXT_COUNT_DEBUG_SIZE 4
+
+#define RB_DEBUG_4_GMEM_RD_ACCESS_FLAG_SHIFT 0
+#define RB_DEBUG_4_GMEM_WR_ACCESS_FLAG_SHIFT 1
+#define RB_DEBUG_4_SYSMEM_RD_ACCESS_FLAG_SHIFT 2
+#define RB_DEBUG_4_SYSMEM_WR_ACCESS_FLAG_SHIFT 3
+#define RB_DEBUG_4_ACCUM_DATA_FIFO_EMPTY_SHIFT 4
+#define RB_DEBUG_4_ACCUM_ORDER_FIFO_EMPTY_SHIFT 5
+#define RB_DEBUG_4_ACCUM_DATA_FIFO_FULL_SHIFT 6
+#define RB_DEBUG_4_ACCUM_ORDER_FIFO_FULL_SHIFT 7
+#define RB_DEBUG_4_SYSMEM_WRITE_COUNT_OVERFLOW_SHIFT 8
+#define RB_DEBUG_4_CONTEXT_COUNT_DEBUG_SHIFT 9
+
+#define RB_DEBUG_4_GMEM_RD_ACCESS_FLAG_MASK 0x00000001
+#define RB_DEBUG_4_GMEM_WR_ACCESS_FLAG_MASK 0x00000002
+#define RB_DEBUG_4_SYSMEM_RD_ACCESS_FLAG_MASK 0x00000004
+#define RB_DEBUG_4_SYSMEM_WR_ACCESS_FLAG_MASK 0x00000008
+#define RB_DEBUG_4_ACCUM_DATA_FIFO_EMPTY_MASK 0x00000010
+#define RB_DEBUG_4_ACCUM_ORDER_FIFO_EMPTY_MASK 0x00000020
+#define RB_DEBUG_4_ACCUM_DATA_FIFO_FULL_MASK 0x00000040
+#define RB_DEBUG_4_ACCUM_ORDER_FIFO_FULL_MASK 0x00000080
+#define RB_DEBUG_4_SYSMEM_WRITE_COUNT_OVERFLOW_MASK 0x00000100
+#define RB_DEBUG_4_CONTEXT_COUNT_DEBUG_MASK 0x00001e00
+
+#define RB_DEBUG_4_MASK \
+ (RB_DEBUG_4_GMEM_RD_ACCESS_FLAG_MASK | \
+ RB_DEBUG_4_GMEM_WR_ACCESS_FLAG_MASK | \
+ RB_DEBUG_4_SYSMEM_RD_ACCESS_FLAG_MASK | \
+ RB_DEBUG_4_SYSMEM_WR_ACCESS_FLAG_MASK | \
+ RB_DEBUG_4_ACCUM_DATA_FIFO_EMPTY_MASK | \
+ RB_DEBUG_4_ACCUM_ORDER_FIFO_EMPTY_MASK | \
+ RB_DEBUG_4_ACCUM_DATA_FIFO_FULL_MASK | \
+ RB_DEBUG_4_ACCUM_ORDER_FIFO_FULL_MASK | \
+ RB_DEBUG_4_SYSMEM_WRITE_COUNT_OVERFLOW_MASK | \
+ RB_DEBUG_4_CONTEXT_COUNT_DEBUG_MASK)
+
+#define RB_DEBUG_4(gmem_rd_access_flag, gmem_wr_access_flag, sysmem_rd_access_flag, sysmem_wr_access_flag, accum_data_fifo_empty, accum_order_fifo_empty, accum_data_fifo_full, accum_order_fifo_full, sysmem_write_count_overflow, context_count_debug) \
+ ((gmem_rd_access_flag << RB_DEBUG_4_GMEM_RD_ACCESS_FLAG_SHIFT) | \
+ (gmem_wr_access_flag << RB_DEBUG_4_GMEM_WR_ACCESS_FLAG_SHIFT) | \
+ (sysmem_rd_access_flag << RB_DEBUG_4_SYSMEM_RD_ACCESS_FLAG_SHIFT) | \
+ (sysmem_wr_access_flag << RB_DEBUG_4_SYSMEM_WR_ACCESS_FLAG_SHIFT) | \
+ (accum_data_fifo_empty << RB_DEBUG_4_ACCUM_DATA_FIFO_EMPTY_SHIFT) | \
+ (accum_order_fifo_empty << RB_DEBUG_4_ACCUM_ORDER_FIFO_EMPTY_SHIFT) | \
+ (accum_data_fifo_full << RB_DEBUG_4_ACCUM_DATA_FIFO_FULL_SHIFT) | \
+ (accum_order_fifo_full << RB_DEBUG_4_ACCUM_ORDER_FIFO_FULL_SHIFT) | \
+ (sysmem_write_count_overflow << RB_DEBUG_4_SYSMEM_WRITE_COUNT_OVERFLOW_SHIFT) | \
+ (context_count_debug << RB_DEBUG_4_CONTEXT_COUNT_DEBUG_SHIFT))
+
+#define RB_DEBUG_4_GET_GMEM_RD_ACCESS_FLAG(rb_debug_4) \
+ ((rb_debug_4 & RB_DEBUG_4_GMEM_RD_ACCESS_FLAG_MASK) >> RB_DEBUG_4_GMEM_RD_ACCESS_FLAG_SHIFT)
+#define RB_DEBUG_4_GET_GMEM_WR_ACCESS_FLAG(rb_debug_4) \
+ ((rb_debug_4 & RB_DEBUG_4_GMEM_WR_ACCESS_FLAG_MASK) >> RB_DEBUG_4_GMEM_WR_ACCESS_FLAG_SHIFT)
+#define RB_DEBUG_4_GET_SYSMEM_RD_ACCESS_FLAG(rb_debug_4) \
+ ((rb_debug_4 & RB_DEBUG_4_SYSMEM_RD_ACCESS_FLAG_MASK) >> RB_DEBUG_4_SYSMEM_RD_ACCESS_FLAG_SHIFT)
+#define RB_DEBUG_4_GET_SYSMEM_WR_ACCESS_FLAG(rb_debug_4) \
+ ((rb_debug_4 & RB_DEBUG_4_SYSMEM_WR_ACCESS_FLAG_MASK) >> RB_DEBUG_4_SYSMEM_WR_ACCESS_FLAG_SHIFT)
+#define RB_DEBUG_4_GET_ACCUM_DATA_FIFO_EMPTY(rb_debug_4) \
+ ((rb_debug_4 & RB_DEBUG_4_ACCUM_DATA_FIFO_EMPTY_MASK) >> RB_DEBUG_4_ACCUM_DATA_FIFO_EMPTY_SHIFT)
+#define RB_DEBUG_4_GET_ACCUM_ORDER_FIFO_EMPTY(rb_debug_4) \
+ ((rb_debug_4 & RB_DEBUG_4_ACCUM_ORDER_FIFO_EMPTY_MASK) >> RB_DEBUG_4_ACCUM_ORDER_FIFO_EMPTY_SHIFT)
+#define RB_DEBUG_4_GET_ACCUM_DATA_FIFO_FULL(rb_debug_4) \
+ ((rb_debug_4 & RB_DEBUG_4_ACCUM_DATA_FIFO_FULL_MASK) >> RB_DEBUG_4_ACCUM_DATA_FIFO_FULL_SHIFT)
+#define RB_DEBUG_4_GET_ACCUM_ORDER_FIFO_FULL(rb_debug_4) \
+ ((rb_debug_4 & RB_DEBUG_4_ACCUM_ORDER_FIFO_FULL_MASK) >> RB_DEBUG_4_ACCUM_ORDER_FIFO_FULL_SHIFT)
+#define RB_DEBUG_4_GET_SYSMEM_WRITE_COUNT_OVERFLOW(rb_debug_4) \
+ ((rb_debug_4 & RB_DEBUG_4_SYSMEM_WRITE_COUNT_OVERFLOW_MASK) >> RB_DEBUG_4_SYSMEM_WRITE_COUNT_OVERFLOW_SHIFT)
+#define RB_DEBUG_4_GET_CONTEXT_COUNT_DEBUG(rb_debug_4) \
+ ((rb_debug_4 & RB_DEBUG_4_CONTEXT_COUNT_DEBUG_MASK) >> RB_DEBUG_4_CONTEXT_COUNT_DEBUG_SHIFT)
+
+#define RB_DEBUG_4_SET_GMEM_RD_ACCESS_FLAG(rb_debug_4_reg, gmem_rd_access_flag) \
+ rb_debug_4_reg = (rb_debug_4_reg & ~RB_DEBUG_4_GMEM_RD_ACCESS_FLAG_MASK) | (gmem_rd_access_flag << RB_DEBUG_4_GMEM_RD_ACCESS_FLAG_SHIFT)
+#define RB_DEBUG_4_SET_GMEM_WR_ACCESS_FLAG(rb_debug_4_reg, gmem_wr_access_flag) \
+ rb_debug_4_reg = (rb_debug_4_reg & ~RB_DEBUG_4_GMEM_WR_ACCESS_FLAG_MASK) | (gmem_wr_access_flag << RB_DEBUG_4_GMEM_WR_ACCESS_FLAG_SHIFT)
+#define RB_DEBUG_4_SET_SYSMEM_RD_ACCESS_FLAG(rb_debug_4_reg, sysmem_rd_access_flag) \
+ rb_debug_4_reg = (rb_debug_4_reg & ~RB_DEBUG_4_SYSMEM_RD_ACCESS_FLAG_MASK) | (sysmem_rd_access_flag << RB_DEBUG_4_SYSMEM_RD_ACCESS_FLAG_SHIFT)
+#define RB_DEBUG_4_SET_SYSMEM_WR_ACCESS_FLAG(rb_debug_4_reg, sysmem_wr_access_flag) \
+ rb_debug_4_reg = (rb_debug_4_reg & ~RB_DEBUG_4_SYSMEM_WR_ACCESS_FLAG_MASK) | (sysmem_wr_access_flag << RB_DEBUG_4_SYSMEM_WR_ACCESS_FLAG_SHIFT)
+#define RB_DEBUG_4_SET_ACCUM_DATA_FIFO_EMPTY(rb_debug_4_reg, accum_data_fifo_empty) \
+ rb_debug_4_reg = (rb_debug_4_reg & ~RB_DEBUG_4_ACCUM_DATA_FIFO_EMPTY_MASK) | (accum_data_fifo_empty << RB_DEBUG_4_ACCUM_DATA_FIFO_EMPTY_SHIFT)
+#define RB_DEBUG_4_SET_ACCUM_ORDER_FIFO_EMPTY(rb_debug_4_reg, accum_order_fifo_empty) \
+ rb_debug_4_reg = (rb_debug_4_reg & ~RB_DEBUG_4_ACCUM_ORDER_FIFO_EMPTY_MASK) | (accum_order_fifo_empty << RB_DEBUG_4_ACCUM_ORDER_FIFO_EMPTY_SHIFT)
+#define RB_DEBUG_4_SET_ACCUM_DATA_FIFO_FULL(rb_debug_4_reg, accum_data_fifo_full) \
+ rb_debug_4_reg = (rb_debug_4_reg & ~RB_DEBUG_4_ACCUM_DATA_FIFO_FULL_MASK) | (accum_data_fifo_full << RB_DEBUG_4_ACCUM_DATA_FIFO_FULL_SHIFT)
+#define RB_DEBUG_4_SET_ACCUM_ORDER_FIFO_FULL(rb_debug_4_reg, accum_order_fifo_full) \
+ rb_debug_4_reg = (rb_debug_4_reg & ~RB_DEBUG_4_ACCUM_ORDER_FIFO_FULL_MASK) | (accum_order_fifo_full << RB_DEBUG_4_ACCUM_ORDER_FIFO_FULL_SHIFT)
+#define RB_DEBUG_4_SET_SYSMEM_WRITE_COUNT_OVERFLOW(rb_debug_4_reg, sysmem_write_count_overflow) \
+ rb_debug_4_reg = (rb_debug_4_reg & ~RB_DEBUG_4_SYSMEM_WRITE_COUNT_OVERFLOW_MASK) | (sysmem_write_count_overflow << RB_DEBUG_4_SYSMEM_WRITE_COUNT_OVERFLOW_SHIFT)
+#define RB_DEBUG_4_SET_CONTEXT_COUNT_DEBUG(rb_debug_4_reg, context_count_debug) \
+ rb_debug_4_reg = (rb_debug_4_reg & ~RB_DEBUG_4_CONTEXT_COUNT_DEBUG_MASK) | (context_count_debug << RB_DEBUG_4_CONTEXT_COUNT_DEBUG_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_debug_4_t {
+ unsigned int gmem_rd_access_flag : RB_DEBUG_4_GMEM_RD_ACCESS_FLAG_SIZE;
+ unsigned int gmem_wr_access_flag : RB_DEBUG_4_GMEM_WR_ACCESS_FLAG_SIZE;
+ unsigned int sysmem_rd_access_flag : RB_DEBUG_4_SYSMEM_RD_ACCESS_FLAG_SIZE;
+ unsigned int sysmem_wr_access_flag : RB_DEBUG_4_SYSMEM_WR_ACCESS_FLAG_SIZE;
+ unsigned int accum_data_fifo_empty : RB_DEBUG_4_ACCUM_DATA_FIFO_EMPTY_SIZE;
+ unsigned int accum_order_fifo_empty : RB_DEBUG_4_ACCUM_ORDER_FIFO_EMPTY_SIZE;
+ unsigned int accum_data_fifo_full : RB_DEBUG_4_ACCUM_DATA_FIFO_FULL_SIZE;
+ unsigned int accum_order_fifo_full : RB_DEBUG_4_ACCUM_ORDER_FIFO_FULL_SIZE;
+ unsigned int sysmem_write_count_overflow : RB_DEBUG_4_SYSMEM_WRITE_COUNT_OVERFLOW_SIZE;
+ unsigned int context_count_debug : RB_DEBUG_4_CONTEXT_COUNT_DEBUG_SIZE;
+ unsigned int : 19;
+ } rb_debug_4_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_debug_4_t {
+ unsigned int : 19;
+ unsigned int context_count_debug : RB_DEBUG_4_CONTEXT_COUNT_DEBUG_SIZE;
+ unsigned int sysmem_write_count_overflow : RB_DEBUG_4_SYSMEM_WRITE_COUNT_OVERFLOW_SIZE;
+ unsigned int accum_order_fifo_full : RB_DEBUG_4_ACCUM_ORDER_FIFO_FULL_SIZE;
+ unsigned int accum_data_fifo_full : RB_DEBUG_4_ACCUM_DATA_FIFO_FULL_SIZE;
+ unsigned int accum_order_fifo_empty : RB_DEBUG_4_ACCUM_ORDER_FIFO_EMPTY_SIZE;
+ unsigned int accum_data_fifo_empty : RB_DEBUG_4_ACCUM_DATA_FIFO_EMPTY_SIZE;
+ unsigned int sysmem_wr_access_flag : RB_DEBUG_4_SYSMEM_WR_ACCESS_FLAG_SIZE;
+ unsigned int sysmem_rd_access_flag : RB_DEBUG_4_SYSMEM_RD_ACCESS_FLAG_SIZE;
+ unsigned int gmem_wr_access_flag : RB_DEBUG_4_GMEM_WR_ACCESS_FLAG_SIZE;
+ unsigned int gmem_rd_access_flag : RB_DEBUG_4_GMEM_RD_ACCESS_FLAG_SIZE;
+ } rb_debug_4_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_debug_4_t f;
+} rb_debug_4_u;
+
+
+/*
+ * RB_FLAG_CONTROL struct
+ */
+
+#define RB_FLAG_CONTROL_DEBUG_FLAG_CLEAR_SIZE 1
+
+#define RB_FLAG_CONTROL_DEBUG_FLAG_CLEAR_SHIFT 0
+
+#define RB_FLAG_CONTROL_DEBUG_FLAG_CLEAR_MASK 0x00000001
+
+#define RB_FLAG_CONTROL_MASK \
+ (RB_FLAG_CONTROL_DEBUG_FLAG_CLEAR_MASK)
+
+#define RB_FLAG_CONTROL(debug_flag_clear) \
+ ((debug_flag_clear << RB_FLAG_CONTROL_DEBUG_FLAG_CLEAR_SHIFT))
+
+#define RB_FLAG_CONTROL_GET_DEBUG_FLAG_CLEAR(rb_flag_control) \
+ ((rb_flag_control & RB_FLAG_CONTROL_DEBUG_FLAG_CLEAR_MASK) >> RB_FLAG_CONTROL_DEBUG_FLAG_CLEAR_SHIFT)
+
+#define RB_FLAG_CONTROL_SET_DEBUG_FLAG_CLEAR(rb_flag_control_reg, debug_flag_clear) \
+ rb_flag_control_reg = (rb_flag_control_reg & ~RB_FLAG_CONTROL_DEBUG_FLAG_CLEAR_MASK) | (debug_flag_clear << RB_FLAG_CONTROL_DEBUG_FLAG_CLEAR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_flag_control_t {
+ unsigned int debug_flag_clear : RB_FLAG_CONTROL_DEBUG_FLAG_CLEAR_SIZE;
+ unsigned int : 31;
+ } rb_flag_control_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_flag_control_t {
+ unsigned int : 31;
+ unsigned int debug_flag_clear : RB_FLAG_CONTROL_DEBUG_FLAG_CLEAR_SIZE;
+ } rb_flag_control_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_flag_control_t f;
+} rb_flag_control_u;
+
+
+/*
+ * RB_BC_SPARES struct
+ */
+
+#define RB_BC_SPARES_RESERVED_SIZE 32
+
+#define RB_BC_SPARES_RESERVED_SHIFT 0
+
+#define RB_BC_SPARES_RESERVED_MASK 0xffffffff
+
+#define RB_BC_SPARES_MASK \
+ (RB_BC_SPARES_RESERVED_MASK)
+
+#define RB_BC_SPARES(reserved) \
+ ((reserved << RB_BC_SPARES_RESERVED_SHIFT))
+
+#define RB_BC_SPARES_GET_RESERVED(rb_bc_spares) \
+ ((rb_bc_spares & RB_BC_SPARES_RESERVED_MASK) >> RB_BC_SPARES_RESERVED_SHIFT)
+
+#define RB_BC_SPARES_SET_RESERVED(rb_bc_spares_reg, reserved) \
+ rb_bc_spares_reg = (rb_bc_spares_reg & ~RB_BC_SPARES_RESERVED_MASK) | (reserved << RB_BC_SPARES_RESERVED_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_bc_spares_t {
+ unsigned int reserved : RB_BC_SPARES_RESERVED_SIZE;
+ } rb_bc_spares_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_bc_spares_t {
+ unsigned int reserved : RB_BC_SPARES_RESERVED_SIZE;
+ } rb_bc_spares_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_bc_spares_t f;
+} rb_bc_spares_u;
+
+
+/*
+ * BC_DUMMY_CRAYRB_ENUMS struct
+ */
+
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_FORMAT_SIZE 6
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_SWAP_SIZE 1
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_ARRAY_SIZE 2
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_ARRAY_SIZE 2
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_COLOR_FORMAT_SIZE 6
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_NUMBER_SIZE 3
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_FORMAT_SIZE 6
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_TILING_SIZE 1
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_ARRAY_SIZE 2
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_RB_COPY_DEST_INFO_NUMBER_SIZE 3
+
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_FORMAT_SHIFT 0
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_SWAP_SHIFT 6
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_ARRAY_SHIFT 7
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_ARRAY_SHIFT 9
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_COLOR_FORMAT_SHIFT 11
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_NUMBER_SHIFT 17
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_FORMAT_SHIFT 20
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_TILING_SHIFT 26
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_ARRAY_SHIFT 27
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_RB_COPY_DEST_INFO_NUMBER_SHIFT 29
+
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_FORMAT_MASK 0x0000003f
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_SWAP_MASK 0x00000040
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_ARRAY_MASK 0x00000180
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_ARRAY_MASK 0x00000600
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_COLOR_FORMAT_MASK 0x0001f800
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_NUMBER_MASK 0x000e0000
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_FORMAT_MASK 0x03f00000
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_TILING_MASK 0x04000000
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_ARRAY_MASK 0x18000000
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_RB_COPY_DEST_INFO_NUMBER_MASK 0xe0000000
+
+#define BC_DUMMY_CRAYRB_ENUMS_MASK \
+ (BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_FORMAT_MASK | \
+ BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_SWAP_MASK | \
+ BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_ARRAY_MASK | \
+ BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_ARRAY_MASK | \
+ BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_COLOR_FORMAT_MASK | \
+ BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_NUMBER_MASK | \
+ BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_FORMAT_MASK | \
+ BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_TILING_MASK | \
+ BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_ARRAY_MASK | \
+ BC_DUMMY_CRAYRB_ENUMS_DUMMY_RB_COPY_DEST_INFO_NUMBER_MASK)
+
+#define BC_DUMMY_CRAYRB_ENUMS(dummy_crayrb_depth_format, dummy_crayrb_surface_swap, dummy_crayrb_depth_array, dummy_crayrb_array, dummy_crayrb_color_format, dummy_crayrb_surface_number, dummy_crayrb_surface_format, dummy_crayrb_surface_tiling, dummy_crayrb_surface_array, dummy_rb_copy_dest_info_number) \
+ ((dummy_crayrb_depth_format << BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_FORMAT_SHIFT) | \
+ (dummy_crayrb_surface_swap << BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_SWAP_SHIFT) | \
+ (dummy_crayrb_depth_array << BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_ARRAY_SHIFT) | \
+ (dummy_crayrb_array << BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_ARRAY_SHIFT) | \
+ (dummy_crayrb_color_format << BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_COLOR_FORMAT_SHIFT) | \
+ (dummy_crayrb_surface_number << BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_NUMBER_SHIFT) | \
+ (dummy_crayrb_surface_format << BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_FORMAT_SHIFT) | \
+ (dummy_crayrb_surface_tiling << BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_TILING_SHIFT) | \
+ (dummy_crayrb_surface_array << BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_ARRAY_SHIFT) | \
+ (dummy_rb_copy_dest_info_number << BC_DUMMY_CRAYRB_ENUMS_DUMMY_RB_COPY_DEST_INFO_NUMBER_SHIFT))
+
+#define BC_DUMMY_CRAYRB_ENUMS_GET_DUMMY_CRAYRB_DEPTH_FORMAT(bc_dummy_crayrb_enums) \
+ ((bc_dummy_crayrb_enums & BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_FORMAT_MASK) >> BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_FORMAT_SHIFT)
+#define BC_DUMMY_CRAYRB_ENUMS_GET_DUMMY_CRAYRB_SURFACE_SWAP(bc_dummy_crayrb_enums) \
+ ((bc_dummy_crayrb_enums & BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_SWAP_MASK) >> BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_SWAP_SHIFT)
+#define BC_DUMMY_CRAYRB_ENUMS_GET_DUMMY_CRAYRB_DEPTH_ARRAY(bc_dummy_crayrb_enums) \
+ ((bc_dummy_crayrb_enums & BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_ARRAY_MASK) >> BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_ARRAY_SHIFT)
+#define BC_DUMMY_CRAYRB_ENUMS_GET_DUMMY_CRAYRB_ARRAY(bc_dummy_crayrb_enums) \
+ ((bc_dummy_crayrb_enums & BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_ARRAY_MASK) >> BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_ARRAY_SHIFT)
+#define BC_DUMMY_CRAYRB_ENUMS_GET_DUMMY_CRAYRB_COLOR_FORMAT(bc_dummy_crayrb_enums) \
+ ((bc_dummy_crayrb_enums & BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_COLOR_FORMAT_MASK) >> BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_COLOR_FORMAT_SHIFT)
+#define BC_DUMMY_CRAYRB_ENUMS_GET_DUMMY_CRAYRB_SURFACE_NUMBER(bc_dummy_crayrb_enums) \
+ ((bc_dummy_crayrb_enums & BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_NUMBER_MASK) >> BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_NUMBER_SHIFT)
+#define BC_DUMMY_CRAYRB_ENUMS_GET_DUMMY_CRAYRB_SURFACE_FORMAT(bc_dummy_crayrb_enums) \
+ ((bc_dummy_crayrb_enums & BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_FORMAT_MASK) >> BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_FORMAT_SHIFT)
+#define BC_DUMMY_CRAYRB_ENUMS_GET_DUMMY_CRAYRB_SURFACE_TILING(bc_dummy_crayrb_enums) \
+ ((bc_dummy_crayrb_enums & BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_TILING_MASK) >> BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_TILING_SHIFT)
+#define BC_DUMMY_CRAYRB_ENUMS_GET_DUMMY_CRAYRB_SURFACE_ARRAY(bc_dummy_crayrb_enums) \
+ ((bc_dummy_crayrb_enums & BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_ARRAY_MASK) >> BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_ARRAY_SHIFT)
+#define BC_DUMMY_CRAYRB_ENUMS_GET_DUMMY_RB_COPY_DEST_INFO_NUMBER(bc_dummy_crayrb_enums) \
+ ((bc_dummy_crayrb_enums & BC_DUMMY_CRAYRB_ENUMS_DUMMY_RB_COPY_DEST_INFO_NUMBER_MASK) >> BC_DUMMY_CRAYRB_ENUMS_DUMMY_RB_COPY_DEST_INFO_NUMBER_SHIFT)
+
+#define BC_DUMMY_CRAYRB_ENUMS_SET_DUMMY_CRAYRB_DEPTH_FORMAT(bc_dummy_crayrb_enums_reg, dummy_crayrb_depth_format) \
+ bc_dummy_crayrb_enums_reg = (bc_dummy_crayrb_enums_reg & ~BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_FORMAT_MASK) | (dummy_crayrb_depth_format << BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_FORMAT_SHIFT)
+#define BC_DUMMY_CRAYRB_ENUMS_SET_DUMMY_CRAYRB_SURFACE_SWAP(bc_dummy_crayrb_enums_reg, dummy_crayrb_surface_swap) \
+ bc_dummy_crayrb_enums_reg = (bc_dummy_crayrb_enums_reg & ~BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_SWAP_MASK) | (dummy_crayrb_surface_swap << BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_SWAP_SHIFT)
+#define BC_DUMMY_CRAYRB_ENUMS_SET_DUMMY_CRAYRB_DEPTH_ARRAY(bc_dummy_crayrb_enums_reg, dummy_crayrb_depth_array) \
+ bc_dummy_crayrb_enums_reg = (bc_dummy_crayrb_enums_reg & ~BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_ARRAY_MASK) | (dummy_crayrb_depth_array << BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_ARRAY_SHIFT)
+#define BC_DUMMY_CRAYRB_ENUMS_SET_DUMMY_CRAYRB_ARRAY(bc_dummy_crayrb_enums_reg, dummy_crayrb_array) \
+ bc_dummy_crayrb_enums_reg = (bc_dummy_crayrb_enums_reg & ~BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_ARRAY_MASK) | (dummy_crayrb_array << BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_ARRAY_SHIFT)
+#define BC_DUMMY_CRAYRB_ENUMS_SET_DUMMY_CRAYRB_COLOR_FORMAT(bc_dummy_crayrb_enums_reg, dummy_crayrb_color_format) \
+ bc_dummy_crayrb_enums_reg = (bc_dummy_crayrb_enums_reg & ~BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_COLOR_FORMAT_MASK) | (dummy_crayrb_color_format << BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_COLOR_FORMAT_SHIFT)
+#define BC_DUMMY_CRAYRB_ENUMS_SET_DUMMY_CRAYRB_SURFACE_NUMBER(bc_dummy_crayrb_enums_reg, dummy_crayrb_surface_number) \
+ bc_dummy_crayrb_enums_reg = (bc_dummy_crayrb_enums_reg & ~BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_NUMBER_MASK) | (dummy_crayrb_surface_number << BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_NUMBER_SHIFT)
+#define BC_DUMMY_CRAYRB_ENUMS_SET_DUMMY_CRAYRB_SURFACE_FORMAT(bc_dummy_crayrb_enums_reg, dummy_crayrb_surface_format) \
+ bc_dummy_crayrb_enums_reg = (bc_dummy_crayrb_enums_reg & ~BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_FORMAT_MASK) | (dummy_crayrb_surface_format << BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_FORMAT_SHIFT)
+#define BC_DUMMY_CRAYRB_ENUMS_SET_DUMMY_CRAYRB_SURFACE_TILING(bc_dummy_crayrb_enums_reg, dummy_crayrb_surface_tiling) \
+ bc_dummy_crayrb_enums_reg = (bc_dummy_crayrb_enums_reg & ~BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_TILING_MASK) | (dummy_crayrb_surface_tiling << BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_TILING_SHIFT)
+#define BC_DUMMY_CRAYRB_ENUMS_SET_DUMMY_CRAYRB_SURFACE_ARRAY(bc_dummy_crayrb_enums_reg, dummy_crayrb_surface_array) \
+ bc_dummy_crayrb_enums_reg = (bc_dummy_crayrb_enums_reg & ~BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_ARRAY_MASK) | (dummy_crayrb_surface_array << BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_ARRAY_SHIFT)
+#define BC_DUMMY_CRAYRB_ENUMS_SET_DUMMY_RB_COPY_DEST_INFO_NUMBER(bc_dummy_crayrb_enums_reg, dummy_rb_copy_dest_info_number) \
+ bc_dummy_crayrb_enums_reg = (bc_dummy_crayrb_enums_reg & ~BC_DUMMY_CRAYRB_ENUMS_DUMMY_RB_COPY_DEST_INFO_NUMBER_MASK) | (dummy_rb_copy_dest_info_number << BC_DUMMY_CRAYRB_ENUMS_DUMMY_RB_COPY_DEST_INFO_NUMBER_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _bc_dummy_crayrb_enums_t {
+ unsigned int dummy_crayrb_depth_format : BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_FORMAT_SIZE;
+ unsigned int dummy_crayrb_surface_swap : BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_SWAP_SIZE;
+ unsigned int dummy_crayrb_depth_array : BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_ARRAY_SIZE;
+ unsigned int dummy_crayrb_array : BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_ARRAY_SIZE;
+ unsigned int dummy_crayrb_color_format : BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_COLOR_FORMAT_SIZE;
+ unsigned int dummy_crayrb_surface_number : BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_NUMBER_SIZE;
+ unsigned int dummy_crayrb_surface_format : BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_FORMAT_SIZE;
+ unsigned int dummy_crayrb_surface_tiling : BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_TILING_SIZE;
+ unsigned int dummy_crayrb_surface_array : BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_ARRAY_SIZE;
+ unsigned int dummy_rb_copy_dest_info_number : BC_DUMMY_CRAYRB_ENUMS_DUMMY_RB_COPY_DEST_INFO_NUMBER_SIZE;
+ } bc_dummy_crayrb_enums_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _bc_dummy_crayrb_enums_t {
+ unsigned int dummy_rb_copy_dest_info_number : BC_DUMMY_CRAYRB_ENUMS_DUMMY_RB_COPY_DEST_INFO_NUMBER_SIZE;
+ unsigned int dummy_crayrb_surface_array : BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_ARRAY_SIZE;
+ unsigned int dummy_crayrb_surface_tiling : BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_TILING_SIZE;
+ unsigned int dummy_crayrb_surface_format : BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_FORMAT_SIZE;
+ unsigned int dummy_crayrb_surface_number : BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_NUMBER_SIZE;
+ unsigned int dummy_crayrb_color_format : BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_COLOR_FORMAT_SIZE;
+ unsigned int dummy_crayrb_array : BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_ARRAY_SIZE;
+ unsigned int dummy_crayrb_depth_array : BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_ARRAY_SIZE;
+ unsigned int dummy_crayrb_surface_swap : BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_SWAP_SIZE;
+ unsigned int dummy_crayrb_depth_format : BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_FORMAT_SIZE;
+ } bc_dummy_crayrb_enums_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ bc_dummy_crayrb_enums_t f;
+} bc_dummy_crayrb_enums_u;
+
+
+/*
+ * BC_DUMMY_CRAYRB_MOREENUMS struct
+ */
+
+#define BC_DUMMY_CRAYRB_MOREENUMS_DUMMY_CRAYRB_COLORARRAYX_SIZE 2
+
+#define BC_DUMMY_CRAYRB_MOREENUMS_DUMMY_CRAYRB_COLORARRAYX_SHIFT 0
+
+#define BC_DUMMY_CRAYRB_MOREENUMS_DUMMY_CRAYRB_COLORARRAYX_MASK 0x00000003
+
+#define BC_DUMMY_CRAYRB_MOREENUMS_MASK \
+ (BC_DUMMY_CRAYRB_MOREENUMS_DUMMY_CRAYRB_COLORARRAYX_MASK)
+
+#define BC_DUMMY_CRAYRB_MOREENUMS(dummy_crayrb_colorarrayx) \
+ ((dummy_crayrb_colorarrayx << BC_DUMMY_CRAYRB_MOREENUMS_DUMMY_CRAYRB_COLORARRAYX_SHIFT))
+
+#define BC_DUMMY_CRAYRB_MOREENUMS_GET_DUMMY_CRAYRB_COLORARRAYX(bc_dummy_crayrb_moreenums) \
+ ((bc_dummy_crayrb_moreenums & BC_DUMMY_CRAYRB_MOREENUMS_DUMMY_CRAYRB_COLORARRAYX_MASK) >> BC_DUMMY_CRAYRB_MOREENUMS_DUMMY_CRAYRB_COLORARRAYX_SHIFT)
+
+#define BC_DUMMY_CRAYRB_MOREENUMS_SET_DUMMY_CRAYRB_COLORARRAYX(bc_dummy_crayrb_moreenums_reg, dummy_crayrb_colorarrayx) \
+ bc_dummy_crayrb_moreenums_reg = (bc_dummy_crayrb_moreenums_reg & ~BC_DUMMY_CRAYRB_MOREENUMS_DUMMY_CRAYRB_COLORARRAYX_MASK) | (dummy_crayrb_colorarrayx << BC_DUMMY_CRAYRB_MOREENUMS_DUMMY_CRAYRB_COLORARRAYX_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _bc_dummy_crayrb_moreenums_t {
+ unsigned int dummy_crayrb_colorarrayx : BC_DUMMY_CRAYRB_MOREENUMS_DUMMY_CRAYRB_COLORARRAYX_SIZE;
+ unsigned int : 30;
+ } bc_dummy_crayrb_moreenums_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _bc_dummy_crayrb_moreenums_t {
+ unsigned int : 30;
+ unsigned int dummy_crayrb_colorarrayx : BC_DUMMY_CRAYRB_MOREENUMS_DUMMY_CRAYRB_COLORARRAYX_SIZE;
+ } bc_dummy_crayrb_moreenums_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ bc_dummy_crayrb_moreenums_t f;
+} bc_dummy_crayrb_moreenums_u;
+
+
+#endif
+
+
diff --git a/drivers/mxc/amd-gpu/include/reg/yamato/10/yamato_typedef.h b/drivers/mxc/amd-gpu/include/reg/yamato/10/yamato_typedef.h
new file mode 100644
index 000000000000..6968abb48bd7
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/reg/yamato/10/yamato_typedef.h
@@ -0,0 +1,550 @@
+/* Copyright (c) 2002,2007-2009, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#if !defined (_yamato_TYPEDEF_HEADER)
+#define _yamato_TYPEDEF_HEADER
+
+#include "yamato_registers.h"
+
+typedef union PA_CL_VPORT_XSCALE regPA_CL_VPORT_XSCALE;
+typedef union PA_CL_VPORT_XOFFSET regPA_CL_VPORT_XOFFSET;
+typedef union PA_CL_VPORT_YSCALE regPA_CL_VPORT_YSCALE;
+typedef union PA_CL_VPORT_YOFFSET regPA_CL_VPORT_YOFFSET;
+typedef union PA_CL_VPORT_ZSCALE regPA_CL_VPORT_ZSCALE;
+typedef union PA_CL_VPORT_ZOFFSET regPA_CL_VPORT_ZOFFSET;
+typedef union PA_CL_VTE_CNTL regPA_CL_VTE_CNTL;
+typedef union PA_CL_CLIP_CNTL regPA_CL_CLIP_CNTL;
+typedef union PA_CL_GB_VERT_CLIP_ADJ regPA_CL_GB_VERT_CLIP_ADJ;
+typedef union PA_CL_GB_VERT_DISC_ADJ regPA_CL_GB_VERT_DISC_ADJ;
+typedef union PA_CL_GB_HORZ_CLIP_ADJ regPA_CL_GB_HORZ_CLIP_ADJ;
+typedef union PA_CL_GB_HORZ_DISC_ADJ regPA_CL_GB_HORZ_DISC_ADJ;
+typedef union PA_CL_ENHANCE regPA_CL_ENHANCE;
+typedef union PA_SC_ENHANCE regPA_SC_ENHANCE;
+typedef union PA_SU_VTX_CNTL regPA_SU_VTX_CNTL;
+typedef union PA_SU_POINT_SIZE regPA_SU_POINT_SIZE;
+typedef union PA_SU_POINT_MINMAX regPA_SU_POINT_MINMAX;
+typedef union PA_SU_LINE_CNTL regPA_SU_LINE_CNTL;
+typedef union PA_SU_FACE_DATA regPA_SU_FACE_DATA;
+typedef union PA_SU_SC_MODE_CNTL regPA_SU_SC_MODE_CNTL;
+typedef union PA_SU_POLY_OFFSET_FRONT_SCALE regPA_SU_POLY_OFFSET_FRONT_SCALE;
+typedef union PA_SU_POLY_OFFSET_FRONT_OFFSET regPA_SU_POLY_OFFSET_FRONT_OFFSET;
+typedef union PA_SU_POLY_OFFSET_BACK_SCALE regPA_SU_POLY_OFFSET_BACK_SCALE;
+typedef union PA_SU_POLY_OFFSET_BACK_OFFSET regPA_SU_POLY_OFFSET_BACK_OFFSET;
+typedef union PA_SU_PERFCOUNTER0_SELECT regPA_SU_PERFCOUNTER0_SELECT;
+typedef union PA_SU_PERFCOUNTER1_SELECT regPA_SU_PERFCOUNTER1_SELECT;
+typedef union PA_SU_PERFCOUNTER2_SELECT regPA_SU_PERFCOUNTER2_SELECT;
+typedef union PA_SU_PERFCOUNTER3_SELECT regPA_SU_PERFCOUNTER3_SELECT;
+typedef union PA_SU_PERFCOUNTER0_LOW regPA_SU_PERFCOUNTER0_LOW;
+typedef union PA_SU_PERFCOUNTER0_HI regPA_SU_PERFCOUNTER0_HI;
+typedef union PA_SU_PERFCOUNTER1_LOW regPA_SU_PERFCOUNTER1_LOW;
+typedef union PA_SU_PERFCOUNTER1_HI regPA_SU_PERFCOUNTER1_HI;
+typedef union PA_SU_PERFCOUNTER2_LOW regPA_SU_PERFCOUNTER2_LOW;
+typedef union PA_SU_PERFCOUNTER2_HI regPA_SU_PERFCOUNTER2_HI;
+typedef union PA_SU_PERFCOUNTER3_LOW regPA_SU_PERFCOUNTER3_LOW;
+typedef union PA_SU_PERFCOUNTER3_HI regPA_SU_PERFCOUNTER3_HI;
+typedef union PA_SC_WINDOW_OFFSET regPA_SC_WINDOW_OFFSET;
+typedef union PA_SC_AA_CONFIG regPA_SC_AA_CONFIG;
+typedef union PA_SC_AA_MASK regPA_SC_AA_MASK;
+typedef union PA_SC_LINE_STIPPLE regPA_SC_LINE_STIPPLE;
+typedef union PA_SC_LINE_CNTL regPA_SC_LINE_CNTL;
+typedef union PA_SC_WINDOW_SCISSOR_TL regPA_SC_WINDOW_SCISSOR_TL;
+typedef union PA_SC_WINDOW_SCISSOR_BR regPA_SC_WINDOW_SCISSOR_BR;
+typedef union PA_SC_SCREEN_SCISSOR_TL regPA_SC_SCREEN_SCISSOR_TL;
+typedef union PA_SC_SCREEN_SCISSOR_BR regPA_SC_SCREEN_SCISSOR_BR;
+typedef union PA_SC_VIZ_QUERY regPA_SC_VIZ_QUERY;
+typedef union PA_SC_VIZ_QUERY_STATUS regPA_SC_VIZ_QUERY_STATUS;
+typedef union PA_SC_LINE_STIPPLE_STATE regPA_SC_LINE_STIPPLE_STATE;
+typedef union PA_SC_PERFCOUNTER0_SELECT regPA_SC_PERFCOUNTER0_SELECT;
+typedef union PA_SC_PERFCOUNTER0_LOW regPA_SC_PERFCOUNTER0_LOW;
+typedef union PA_SC_PERFCOUNTER0_HI regPA_SC_PERFCOUNTER0_HI;
+typedef union PA_CL_CNTL_STATUS regPA_CL_CNTL_STATUS;
+typedef union PA_SU_CNTL_STATUS regPA_SU_CNTL_STATUS;
+typedef union PA_SC_CNTL_STATUS regPA_SC_CNTL_STATUS;
+typedef union PA_SU_DEBUG_CNTL regPA_SU_DEBUG_CNTL;
+typedef union PA_SU_DEBUG_DATA regPA_SU_DEBUG_DATA;
+typedef union PA_SC_DEBUG_CNTL regPA_SC_DEBUG_CNTL;
+typedef union PA_SC_DEBUG_DATA regPA_SC_DEBUG_DATA;
+typedef union GFX_COPY_STATE regGFX_COPY_STATE;
+typedef union VGT_DRAW_INITIATOR regVGT_DRAW_INITIATOR;
+typedef union VGT_EVENT_INITIATOR regVGT_EVENT_INITIATOR;
+typedef union VGT_DMA_BASE regVGT_DMA_BASE;
+typedef union VGT_DMA_SIZE regVGT_DMA_SIZE;
+typedef union VGT_BIN_BASE regVGT_BIN_BASE;
+typedef union VGT_BIN_SIZE regVGT_BIN_SIZE;
+typedef union VGT_CURRENT_BIN_ID_MIN regVGT_CURRENT_BIN_ID_MIN;
+typedef union VGT_CURRENT_BIN_ID_MAX regVGT_CURRENT_BIN_ID_MAX;
+typedef union VGT_IMMED_DATA regVGT_IMMED_DATA;
+typedef union VGT_MAX_VTX_INDX regVGT_MAX_VTX_INDX;
+typedef union VGT_MIN_VTX_INDX regVGT_MIN_VTX_INDX;
+typedef union VGT_INDX_OFFSET regVGT_INDX_OFFSET;
+typedef union VGT_VERTEX_REUSE_BLOCK_CNTL regVGT_VERTEX_REUSE_BLOCK_CNTL;
+typedef union VGT_OUT_DEALLOC_CNTL regVGT_OUT_DEALLOC_CNTL;
+typedef union VGT_MULTI_PRIM_IB_RESET_INDX regVGT_MULTI_PRIM_IB_RESET_INDX;
+typedef union VGT_ENHANCE regVGT_ENHANCE;
+typedef union VGT_VTX_VECT_EJECT_REG regVGT_VTX_VECT_EJECT_REG;
+typedef union VGT_LAST_COPY_STATE regVGT_LAST_COPY_STATE;
+typedef union VGT_DEBUG_CNTL regVGT_DEBUG_CNTL;
+typedef union VGT_DEBUG_DATA regVGT_DEBUG_DATA;
+typedef union VGT_CNTL_STATUS regVGT_CNTL_STATUS;
+typedef union VGT_CRC_SQ_DATA regVGT_CRC_SQ_DATA;
+typedef union VGT_CRC_SQ_CTRL regVGT_CRC_SQ_CTRL;
+typedef union VGT_PERFCOUNTER0_SELECT regVGT_PERFCOUNTER0_SELECT;
+typedef union VGT_PERFCOUNTER1_SELECT regVGT_PERFCOUNTER1_SELECT;
+typedef union VGT_PERFCOUNTER2_SELECT regVGT_PERFCOUNTER2_SELECT;
+typedef union VGT_PERFCOUNTER3_SELECT regVGT_PERFCOUNTER3_SELECT;
+typedef union VGT_PERFCOUNTER0_LOW regVGT_PERFCOUNTER0_LOW;
+typedef union VGT_PERFCOUNTER1_LOW regVGT_PERFCOUNTER1_LOW;
+typedef union VGT_PERFCOUNTER2_LOW regVGT_PERFCOUNTER2_LOW;
+typedef union VGT_PERFCOUNTER3_LOW regVGT_PERFCOUNTER3_LOW;
+typedef union VGT_PERFCOUNTER0_HI regVGT_PERFCOUNTER0_HI;
+typedef union VGT_PERFCOUNTER1_HI regVGT_PERFCOUNTER1_HI;
+typedef union VGT_PERFCOUNTER2_HI regVGT_PERFCOUNTER2_HI;
+typedef union VGT_PERFCOUNTER3_HI regVGT_PERFCOUNTER3_HI;
+typedef union TC_CNTL_STATUS regTC_CNTL_STATUS;
+typedef union TCR_CHICKEN regTCR_CHICKEN;
+typedef union TCF_CHICKEN regTCF_CHICKEN;
+typedef union TCM_CHICKEN regTCM_CHICKEN;
+typedef union TCR_PERFCOUNTER0_SELECT regTCR_PERFCOUNTER0_SELECT;
+typedef union TCR_PERFCOUNTER1_SELECT regTCR_PERFCOUNTER1_SELECT;
+typedef union TCR_PERFCOUNTER0_HI regTCR_PERFCOUNTER0_HI;
+typedef union TCR_PERFCOUNTER1_HI regTCR_PERFCOUNTER1_HI;
+typedef union TCR_PERFCOUNTER0_LOW regTCR_PERFCOUNTER0_LOW;
+typedef union TCR_PERFCOUNTER1_LOW regTCR_PERFCOUNTER1_LOW;
+typedef union TP_TC_CLKGATE_CNTL regTP_TC_CLKGATE_CNTL;
+typedef union TPC_CNTL_STATUS regTPC_CNTL_STATUS;
+typedef union TPC_DEBUG0 regTPC_DEBUG0;
+typedef union TPC_DEBUG1 regTPC_DEBUG1;
+typedef union TPC_CHICKEN regTPC_CHICKEN;
+typedef union TP0_CNTL_STATUS regTP0_CNTL_STATUS;
+typedef union TP0_DEBUG regTP0_DEBUG;
+typedef union TP0_CHICKEN regTP0_CHICKEN;
+typedef union TP0_PERFCOUNTER0_SELECT regTP0_PERFCOUNTER0_SELECT;
+typedef union TP0_PERFCOUNTER0_HI regTP0_PERFCOUNTER0_HI;
+typedef union TP0_PERFCOUNTER0_LOW regTP0_PERFCOUNTER0_LOW;
+typedef union TP0_PERFCOUNTER1_SELECT regTP0_PERFCOUNTER1_SELECT;
+typedef union TP0_PERFCOUNTER1_HI regTP0_PERFCOUNTER1_HI;
+typedef union TP0_PERFCOUNTER1_LOW regTP0_PERFCOUNTER1_LOW;
+typedef union TCM_PERFCOUNTER0_SELECT regTCM_PERFCOUNTER0_SELECT;
+typedef union TCM_PERFCOUNTER1_SELECT regTCM_PERFCOUNTER1_SELECT;
+typedef union TCM_PERFCOUNTER0_HI regTCM_PERFCOUNTER0_HI;
+typedef union TCM_PERFCOUNTER1_HI regTCM_PERFCOUNTER1_HI;
+typedef union TCM_PERFCOUNTER0_LOW regTCM_PERFCOUNTER0_LOW;
+typedef union TCM_PERFCOUNTER1_LOW regTCM_PERFCOUNTER1_LOW;
+typedef union TCF_PERFCOUNTER0_SELECT regTCF_PERFCOUNTER0_SELECT;
+typedef union TCF_PERFCOUNTER1_SELECT regTCF_PERFCOUNTER1_SELECT;
+typedef union TCF_PERFCOUNTER2_SELECT regTCF_PERFCOUNTER2_SELECT;
+typedef union TCF_PERFCOUNTER3_SELECT regTCF_PERFCOUNTER3_SELECT;
+typedef union TCF_PERFCOUNTER4_SELECT regTCF_PERFCOUNTER4_SELECT;
+typedef union TCF_PERFCOUNTER5_SELECT regTCF_PERFCOUNTER5_SELECT;
+typedef union TCF_PERFCOUNTER6_SELECT regTCF_PERFCOUNTER6_SELECT;
+typedef union TCF_PERFCOUNTER7_SELECT regTCF_PERFCOUNTER7_SELECT;
+typedef union TCF_PERFCOUNTER8_SELECT regTCF_PERFCOUNTER8_SELECT;
+typedef union TCF_PERFCOUNTER9_SELECT regTCF_PERFCOUNTER9_SELECT;
+typedef union TCF_PERFCOUNTER10_SELECT regTCF_PERFCOUNTER10_SELECT;
+typedef union TCF_PERFCOUNTER11_SELECT regTCF_PERFCOUNTER11_SELECT;
+typedef union TCF_PERFCOUNTER0_HI regTCF_PERFCOUNTER0_HI;
+typedef union TCF_PERFCOUNTER1_HI regTCF_PERFCOUNTER1_HI;
+typedef union TCF_PERFCOUNTER2_HI regTCF_PERFCOUNTER2_HI;
+typedef union TCF_PERFCOUNTER3_HI regTCF_PERFCOUNTER3_HI;
+typedef union TCF_PERFCOUNTER4_HI regTCF_PERFCOUNTER4_HI;
+typedef union TCF_PERFCOUNTER5_HI regTCF_PERFCOUNTER5_HI;
+typedef union TCF_PERFCOUNTER6_HI regTCF_PERFCOUNTER6_HI;
+typedef union TCF_PERFCOUNTER7_HI regTCF_PERFCOUNTER7_HI;
+typedef union TCF_PERFCOUNTER8_HI regTCF_PERFCOUNTER8_HI;
+typedef union TCF_PERFCOUNTER9_HI regTCF_PERFCOUNTER9_HI;
+typedef union TCF_PERFCOUNTER10_HI regTCF_PERFCOUNTER10_HI;
+typedef union TCF_PERFCOUNTER11_HI regTCF_PERFCOUNTER11_HI;
+typedef union TCF_PERFCOUNTER0_LOW regTCF_PERFCOUNTER0_LOW;
+typedef union TCF_PERFCOUNTER1_LOW regTCF_PERFCOUNTER1_LOW;
+typedef union TCF_PERFCOUNTER2_LOW regTCF_PERFCOUNTER2_LOW;
+typedef union TCF_PERFCOUNTER3_LOW regTCF_PERFCOUNTER3_LOW;
+typedef union TCF_PERFCOUNTER4_LOW regTCF_PERFCOUNTER4_LOW;
+typedef union TCF_PERFCOUNTER5_LOW regTCF_PERFCOUNTER5_LOW;
+typedef union TCF_PERFCOUNTER6_LOW regTCF_PERFCOUNTER6_LOW;
+typedef union TCF_PERFCOUNTER7_LOW regTCF_PERFCOUNTER7_LOW;
+typedef union TCF_PERFCOUNTER8_LOW regTCF_PERFCOUNTER8_LOW;
+typedef union TCF_PERFCOUNTER9_LOW regTCF_PERFCOUNTER9_LOW;
+typedef union TCF_PERFCOUNTER10_LOW regTCF_PERFCOUNTER10_LOW;
+typedef union TCF_PERFCOUNTER11_LOW regTCF_PERFCOUNTER11_LOW;
+typedef union TCF_DEBUG regTCF_DEBUG;
+typedef union TCA_FIFO_DEBUG regTCA_FIFO_DEBUG;
+typedef union TCA_PROBE_DEBUG regTCA_PROBE_DEBUG;
+typedef union TCA_TPC_DEBUG regTCA_TPC_DEBUG;
+typedef union TCB_CORE_DEBUG regTCB_CORE_DEBUG;
+typedef union TCB_TAG0_DEBUG regTCB_TAG0_DEBUG;
+typedef union TCB_TAG1_DEBUG regTCB_TAG1_DEBUG;
+typedef union TCB_TAG2_DEBUG regTCB_TAG2_DEBUG;
+typedef union TCB_TAG3_DEBUG regTCB_TAG3_DEBUG;
+typedef union TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG regTCB_FETCH_GEN_SECTOR_WALKER0_DEBUG;
+typedef union TCB_FETCH_GEN_WALKER_DEBUG regTCB_FETCH_GEN_WALKER_DEBUG;
+typedef union TCB_FETCH_GEN_PIPE0_DEBUG regTCB_FETCH_GEN_PIPE0_DEBUG;
+typedef union TCD_INPUT0_DEBUG regTCD_INPUT0_DEBUG;
+typedef union TCD_DEGAMMA_DEBUG regTCD_DEGAMMA_DEBUG;
+typedef union TCD_DXTMUX_SCTARB_DEBUG regTCD_DXTMUX_SCTARB_DEBUG;
+typedef union TCD_DXTC_ARB_DEBUG regTCD_DXTC_ARB_DEBUG;
+typedef union TCD_STALLS_DEBUG regTCD_STALLS_DEBUG;
+typedef union TCO_STALLS_DEBUG regTCO_STALLS_DEBUG;
+typedef union TCO_QUAD0_DEBUG0 regTCO_QUAD0_DEBUG0;
+typedef union TCO_QUAD0_DEBUG1 regTCO_QUAD0_DEBUG1;
+typedef union SQ_GPR_MANAGEMENT regSQ_GPR_MANAGEMENT;
+typedef union SQ_FLOW_CONTROL regSQ_FLOW_CONTROL;
+typedef union SQ_INST_STORE_MANAGMENT regSQ_INST_STORE_MANAGMENT;
+typedef union SQ_RESOURCE_MANAGMENT regSQ_RESOURCE_MANAGMENT;
+typedef union SQ_EO_RT regSQ_EO_RT;
+typedef union SQ_DEBUG_MISC regSQ_DEBUG_MISC;
+typedef union SQ_ACTIVITY_METER_CNTL regSQ_ACTIVITY_METER_CNTL;
+typedef union SQ_ACTIVITY_METER_STATUS regSQ_ACTIVITY_METER_STATUS;
+typedef union SQ_INPUT_ARB_PRIORITY regSQ_INPUT_ARB_PRIORITY;
+typedef union SQ_THREAD_ARB_PRIORITY regSQ_THREAD_ARB_PRIORITY;
+typedef union SQ_VS_WATCHDOG_TIMER regSQ_VS_WATCHDOG_TIMER;
+typedef union SQ_PS_WATCHDOG_TIMER regSQ_PS_WATCHDOG_TIMER;
+typedef union SQ_INT_CNTL regSQ_INT_CNTL;
+typedef union SQ_INT_STATUS regSQ_INT_STATUS;
+typedef union SQ_INT_ACK regSQ_INT_ACK;
+typedef union SQ_DEBUG_INPUT_FSM regSQ_DEBUG_INPUT_FSM;
+typedef union SQ_DEBUG_CONST_MGR_FSM regSQ_DEBUG_CONST_MGR_FSM;
+typedef union SQ_DEBUG_TP_FSM regSQ_DEBUG_TP_FSM;
+typedef union SQ_DEBUG_FSM_ALU_0 regSQ_DEBUG_FSM_ALU_0;
+typedef union SQ_DEBUG_FSM_ALU_1 regSQ_DEBUG_FSM_ALU_1;
+typedef union SQ_DEBUG_EXP_ALLOC regSQ_DEBUG_EXP_ALLOC;
+typedef union SQ_DEBUG_PTR_BUFF regSQ_DEBUG_PTR_BUFF;
+typedef union SQ_DEBUG_GPR_VTX regSQ_DEBUG_GPR_VTX;
+typedef union SQ_DEBUG_GPR_PIX regSQ_DEBUG_GPR_PIX;
+typedef union SQ_DEBUG_TB_STATUS_SEL regSQ_DEBUG_TB_STATUS_SEL;
+typedef union SQ_DEBUG_VTX_TB_0 regSQ_DEBUG_VTX_TB_0;
+typedef union SQ_DEBUG_VTX_TB_1 regSQ_DEBUG_VTX_TB_1;
+typedef union SQ_DEBUG_VTX_TB_STATUS_REG regSQ_DEBUG_VTX_TB_STATUS_REG;
+typedef union SQ_DEBUG_VTX_TB_STATE_MEM regSQ_DEBUG_VTX_TB_STATE_MEM;
+typedef union SQ_DEBUG_PIX_TB_0 regSQ_DEBUG_PIX_TB_0;
+typedef union SQ_DEBUG_PIX_TB_STATUS_REG_0 regSQ_DEBUG_PIX_TB_STATUS_REG_0;
+typedef union SQ_DEBUG_PIX_TB_STATUS_REG_1 regSQ_DEBUG_PIX_TB_STATUS_REG_1;
+typedef union SQ_DEBUG_PIX_TB_STATUS_REG_2 regSQ_DEBUG_PIX_TB_STATUS_REG_2;
+typedef union SQ_DEBUG_PIX_TB_STATUS_REG_3 regSQ_DEBUG_PIX_TB_STATUS_REG_3;
+typedef union SQ_DEBUG_PIX_TB_STATE_MEM regSQ_DEBUG_PIX_TB_STATE_MEM;
+typedef union SQ_PERFCOUNTER0_SELECT regSQ_PERFCOUNTER0_SELECT;
+typedef union SQ_PERFCOUNTER1_SELECT regSQ_PERFCOUNTER1_SELECT;
+typedef union SQ_PERFCOUNTER2_SELECT regSQ_PERFCOUNTER2_SELECT;
+typedef union SQ_PERFCOUNTER3_SELECT regSQ_PERFCOUNTER3_SELECT;
+typedef union SQ_PERFCOUNTER0_LOW regSQ_PERFCOUNTER0_LOW;
+typedef union SQ_PERFCOUNTER0_HI regSQ_PERFCOUNTER0_HI;
+typedef union SQ_PERFCOUNTER1_LOW regSQ_PERFCOUNTER1_LOW;
+typedef union SQ_PERFCOUNTER1_HI regSQ_PERFCOUNTER1_HI;
+typedef union SQ_PERFCOUNTER2_LOW regSQ_PERFCOUNTER2_LOW;
+typedef union SQ_PERFCOUNTER2_HI regSQ_PERFCOUNTER2_HI;
+typedef union SQ_PERFCOUNTER3_LOW regSQ_PERFCOUNTER3_LOW;
+typedef union SQ_PERFCOUNTER3_HI regSQ_PERFCOUNTER3_HI;
+typedef union SX_PERFCOUNTER0_SELECT regSX_PERFCOUNTER0_SELECT;
+typedef union SX_PERFCOUNTER0_LOW regSX_PERFCOUNTER0_LOW;
+typedef union SX_PERFCOUNTER0_HI regSX_PERFCOUNTER0_HI;
+typedef union SQ_INSTRUCTION_ALU_0 regSQ_INSTRUCTION_ALU_0;
+typedef union SQ_INSTRUCTION_ALU_1 regSQ_INSTRUCTION_ALU_1;
+typedef union SQ_INSTRUCTION_ALU_2 regSQ_INSTRUCTION_ALU_2;
+typedef union SQ_INSTRUCTION_CF_EXEC_0 regSQ_INSTRUCTION_CF_EXEC_0;
+typedef union SQ_INSTRUCTION_CF_EXEC_1 regSQ_INSTRUCTION_CF_EXEC_1;
+typedef union SQ_INSTRUCTION_CF_EXEC_2 regSQ_INSTRUCTION_CF_EXEC_2;
+typedef union SQ_INSTRUCTION_CF_LOOP_0 regSQ_INSTRUCTION_CF_LOOP_0;
+typedef union SQ_INSTRUCTION_CF_LOOP_1 regSQ_INSTRUCTION_CF_LOOP_1;
+typedef union SQ_INSTRUCTION_CF_LOOP_2 regSQ_INSTRUCTION_CF_LOOP_2;
+typedef union SQ_INSTRUCTION_CF_JMP_CALL_0 regSQ_INSTRUCTION_CF_JMP_CALL_0;
+typedef union SQ_INSTRUCTION_CF_JMP_CALL_1 regSQ_INSTRUCTION_CF_JMP_CALL_1;
+typedef union SQ_INSTRUCTION_CF_JMP_CALL_2 regSQ_INSTRUCTION_CF_JMP_CALL_2;
+typedef union SQ_INSTRUCTION_CF_ALLOC_0 regSQ_INSTRUCTION_CF_ALLOC_0;
+typedef union SQ_INSTRUCTION_CF_ALLOC_1 regSQ_INSTRUCTION_CF_ALLOC_1;
+typedef union SQ_INSTRUCTION_CF_ALLOC_2 regSQ_INSTRUCTION_CF_ALLOC_2;
+typedef union SQ_INSTRUCTION_TFETCH_0 regSQ_INSTRUCTION_TFETCH_0;
+typedef union SQ_INSTRUCTION_TFETCH_1 regSQ_INSTRUCTION_TFETCH_1;
+typedef union SQ_INSTRUCTION_TFETCH_2 regSQ_INSTRUCTION_TFETCH_2;
+typedef union SQ_INSTRUCTION_VFETCH_0 regSQ_INSTRUCTION_VFETCH_0;
+typedef union SQ_INSTRUCTION_VFETCH_1 regSQ_INSTRUCTION_VFETCH_1;
+typedef union SQ_INSTRUCTION_VFETCH_2 regSQ_INSTRUCTION_VFETCH_2;
+typedef union SQ_CONSTANT_0 regSQ_CONSTANT_0;
+typedef union SQ_CONSTANT_1 regSQ_CONSTANT_1;
+typedef union SQ_CONSTANT_2 regSQ_CONSTANT_2;
+typedef union SQ_CONSTANT_3 regSQ_CONSTANT_3;
+typedef union SQ_FETCH_0 regSQ_FETCH_0;
+typedef union SQ_FETCH_1 regSQ_FETCH_1;
+typedef union SQ_FETCH_2 regSQ_FETCH_2;
+typedef union SQ_FETCH_3 regSQ_FETCH_3;
+typedef union SQ_FETCH_4 regSQ_FETCH_4;
+typedef union SQ_FETCH_5 regSQ_FETCH_5;
+typedef union SQ_CONSTANT_VFETCH_0 regSQ_CONSTANT_VFETCH_0;
+typedef union SQ_CONSTANT_VFETCH_1 regSQ_CONSTANT_VFETCH_1;
+typedef union SQ_CONSTANT_T2 regSQ_CONSTANT_T2;
+typedef union SQ_CONSTANT_T3 regSQ_CONSTANT_T3;
+typedef union SQ_CF_BOOLEANS regSQ_CF_BOOLEANS;
+typedef union SQ_CF_LOOP regSQ_CF_LOOP;
+typedef union SQ_CONSTANT_RT_0 regSQ_CONSTANT_RT_0;
+typedef union SQ_CONSTANT_RT_1 regSQ_CONSTANT_RT_1;
+typedef union SQ_CONSTANT_RT_2 regSQ_CONSTANT_RT_2;
+typedef union SQ_CONSTANT_RT_3 regSQ_CONSTANT_RT_3;
+typedef union SQ_FETCH_RT_0 regSQ_FETCH_RT_0;
+typedef union SQ_FETCH_RT_1 regSQ_FETCH_RT_1;
+typedef union SQ_FETCH_RT_2 regSQ_FETCH_RT_2;
+typedef union SQ_FETCH_RT_3 regSQ_FETCH_RT_3;
+typedef union SQ_FETCH_RT_4 regSQ_FETCH_RT_4;
+typedef union SQ_FETCH_RT_5 regSQ_FETCH_RT_5;
+typedef union SQ_CF_RT_BOOLEANS regSQ_CF_RT_BOOLEANS;
+typedef union SQ_CF_RT_LOOP regSQ_CF_RT_LOOP;
+typedef union SQ_VS_PROGRAM regSQ_VS_PROGRAM;
+typedef union SQ_PS_PROGRAM regSQ_PS_PROGRAM;
+typedef union SQ_CF_PROGRAM_SIZE regSQ_CF_PROGRAM_SIZE;
+typedef union SQ_INTERPOLATOR_CNTL regSQ_INTERPOLATOR_CNTL;
+typedef union SQ_PROGRAM_CNTL regSQ_PROGRAM_CNTL;
+typedef union SQ_WRAPPING_0 regSQ_WRAPPING_0;
+typedef union SQ_WRAPPING_1 regSQ_WRAPPING_1;
+typedef union SQ_VS_CONST regSQ_VS_CONST;
+typedef union SQ_PS_CONST regSQ_PS_CONST;
+typedef union SQ_CONTEXT_MISC regSQ_CONTEXT_MISC;
+typedef union SQ_CF_RD_BASE regSQ_CF_RD_BASE;
+typedef union SQ_DEBUG_MISC_0 regSQ_DEBUG_MISC_0;
+typedef union SQ_DEBUG_MISC_1 regSQ_DEBUG_MISC_1;
+typedef union MH_ARBITER_CONFIG regMH_ARBITER_CONFIG;
+typedef union MH_CLNT_AXI_ID_REUSE regMH_CLNT_AXI_ID_REUSE;
+typedef union MH_INTERRUPT_MASK regMH_INTERRUPT_MASK;
+typedef union MH_INTERRUPT_STATUS regMH_INTERRUPT_STATUS;
+typedef union MH_INTERRUPT_CLEAR regMH_INTERRUPT_CLEAR;
+typedef union MH_AXI_ERROR regMH_AXI_ERROR;
+typedef union MH_PERFCOUNTER0_SELECT regMH_PERFCOUNTER0_SELECT;
+typedef union MH_PERFCOUNTER1_SELECT regMH_PERFCOUNTER1_SELECT;
+typedef union MH_PERFCOUNTER0_CONFIG regMH_PERFCOUNTER0_CONFIG;
+typedef union MH_PERFCOUNTER1_CONFIG regMH_PERFCOUNTER1_CONFIG;
+typedef union MH_PERFCOUNTER0_LOW regMH_PERFCOUNTER0_LOW;
+typedef union MH_PERFCOUNTER1_LOW regMH_PERFCOUNTER1_LOW;
+typedef union MH_PERFCOUNTER0_HI regMH_PERFCOUNTER0_HI;
+typedef union MH_PERFCOUNTER1_HI regMH_PERFCOUNTER1_HI;
+typedef union MH_DEBUG_CTRL regMH_DEBUG_CTRL;
+typedef union MH_DEBUG_DATA regMH_DEBUG_DATA;
+typedef union MH_AXI_HALT_CONTROL regMH_AXI_HALT_CONTROL;
+typedef union MH_MMU_CONFIG regMH_MMU_CONFIG;
+typedef union MH_MMU_VA_RANGE regMH_MMU_VA_RANGE;
+typedef union MH_MMU_PT_BASE regMH_MMU_PT_BASE;
+typedef union MH_MMU_PAGE_FAULT regMH_MMU_PAGE_FAULT;
+typedef union MH_MMU_TRAN_ERROR regMH_MMU_TRAN_ERROR;
+typedef union MH_MMU_INVALIDATE regMH_MMU_INVALIDATE;
+typedef union MH_MMU_MPU_BASE regMH_MMU_MPU_BASE;
+typedef union MH_MMU_MPU_END regMH_MMU_MPU_END;
+typedef union WAIT_UNTIL regWAIT_UNTIL;
+typedef union RBBM_ISYNC_CNTL regRBBM_ISYNC_CNTL;
+typedef union RBBM_STATUS regRBBM_STATUS;
+typedef union RBBM_DSPLY regRBBM_DSPLY;
+typedef union RBBM_RENDER_LATEST regRBBM_RENDER_LATEST;
+typedef union RBBM_RTL_RELEASE regRBBM_RTL_RELEASE;
+typedef union RBBM_PATCH_RELEASE regRBBM_PATCH_RELEASE;
+typedef union RBBM_AUXILIARY_CONFIG regRBBM_AUXILIARY_CONFIG;
+typedef union RBBM_PERIPHID0 regRBBM_PERIPHID0;
+typedef union RBBM_PERIPHID1 regRBBM_PERIPHID1;
+typedef union RBBM_PERIPHID2 regRBBM_PERIPHID2;
+typedef union RBBM_PERIPHID3 regRBBM_PERIPHID3;
+typedef union RBBM_CNTL regRBBM_CNTL;
+typedef union RBBM_SKEW_CNTL regRBBM_SKEW_CNTL;
+typedef union RBBM_SOFT_RESET regRBBM_SOFT_RESET;
+typedef union RBBM_PM_OVERRIDE1 regRBBM_PM_OVERRIDE1;
+typedef union RBBM_PM_OVERRIDE2 regRBBM_PM_OVERRIDE2;
+typedef union GC_SYS_IDLE regGC_SYS_IDLE;
+typedef union NQWAIT_UNTIL regNQWAIT_UNTIL;
+typedef union RBBM_DEBUG_OUT regRBBM_DEBUG_OUT;
+typedef union RBBM_DEBUG_CNTL regRBBM_DEBUG_CNTL;
+typedef union RBBM_DEBUG regRBBM_DEBUG;
+typedef union RBBM_READ_ERROR regRBBM_READ_ERROR;
+typedef union RBBM_WAIT_IDLE_CLOCKS regRBBM_WAIT_IDLE_CLOCKS;
+typedef union RBBM_INT_CNTL regRBBM_INT_CNTL;
+typedef union RBBM_INT_STATUS regRBBM_INT_STATUS;
+typedef union RBBM_INT_ACK regRBBM_INT_ACK;
+typedef union MASTER_INT_SIGNAL regMASTER_INT_SIGNAL;
+typedef union RBBM_PERFCOUNTER1_SELECT regRBBM_PERFCOUNTER1_SELECT;
+typedef union RBBM_PERFCOUNTER1_LO regRBBM_PERFCOUNTER1_LO;
+typedef union RBBM_PERFCOUNTER1_HI regRBBM_PERFCOUNTER1_HI;
+typedef union CP_RB_BASE regCP_RB_BASE;
+typedef union CP_RB_CNTL regCP_RB_CNTL;
+typedef union CP_RB_RPTR_ADDR regCP_RB_RPTR_ADDR;
+typedef union CP_RB_RPTR regCP_RB_RPTR;
+typedef union CP_RB_RPTR_WR regCP_RB_RPTR_WR;
+typedef union CP_RB_WPTR regCP_RB_WPTR;
+typedef union CP_RB_WPTR_DELAY regCP_RB_WPTR_DELAY;
+typedef union CP_RB_WPTR_BASE regCP_RB_WPTR_BASE;
+typedef union CP_IB1_BASE regCP_IB1_BASE;
+typedef union CP_IB1_BUFSZ regCP_IB1_BUFSZ;
+typedef union CP_IB2_BASE regCP_IB2_BASE;
+typedef union CP_IB2_BUFSZ regCP_IB2_BUFSZ;
+typedef union CP_ST_BASE regCP_ST_BASE;
+typedef union CP_ST_BUFSZ regCP_ST_BUFSZ;
+typedef union CP_QUEUE_THRESHOLDS regCP_QUEUE_THRESHOLDS;
+typedef union CP_MEQ_THRESHOLDS regCP_MEQ_THRESHOLDS;
+typedef union CP_CSQ_AVAIL regCP_CSQ_AVAIL;
+typedef union CP_STQ_AVAIL regCP_STQ_AVAIL;
+typedef union CP_MEQ_AVAIL regCP_MEQ_AVAIL;
+typedef union CP_CSQ_RB_STAT regCP_CSQ_RB_STAT;
+typedef union CP_CSQ_IB1_STAT regCP_CSQ_IB1_STAT;
+typedef union CP_CSQ_IB2_STAT regCP_CSQ_IB2_STAT;
+typedef union CP_NON_PREFETCH_CNTRS regCP_NON_PREFETCH_CNTRS;
+typedef union CP_STQ_ST_STAT regCP_STQ_ST_STAT;
+typedef union CP_MEQ_STAT regCP_MEQ_STAT;
+typedef union CP_MIU_TAG_STAT regCP_MIU_TAG_STAT;
+typedef union CP_CMD_INDEX regCP_CMD_INDEX;
+typedef union CP_CMD_DATA regCP_CMD_DATA;
+typedef union CP_ME_CNTL regCP_ME_CNTL;
+typedef union CP_ME_STATUS regCP_ME_STATUS;
+typedef union CP_ME_RAM_WADDR regCP_ME_RAM_WADDR;
+typedef union CP_ME_RAM_RADDR regCP_ME_RAM_RADDR;
+typedef union CP_ME_RAM_DATA regCP_ME_RAM_DATA;
+typedef union CP_ME_RDADDR regCP_ME_RDADDR;
+typedef union CP_DEBUG regCP_DEBUG;
+typedef union SCRATCH_REG0 regSCRATCH_REG0;
+typedef union GUI_SCRATCH_REG0 regGUI_SCRATCH_REG0;
+typedef union SCRATCH_REG1 regSCRATCH_REG1;
+typedef union GUI_SCRATCH_REG1 regGUI_SCRATCH_REG1;
+typedef union SCRATCH_REG2 regSCRATCH_REG2;
+typedef union GUI_SCRATCH_REG2 regGUI_SCRATCH_REG2;
+typedef union SCRATCH_REG3 regSCRATCH_REG3;
+typedef union GUI_SCRATCH_REG3 regGUI_SCRATCH_REG3;
+typedef union SCRATCH_REG4 regSCRATCH_REG4;
+typedef union GUI_SCRATCH_REG4 regGUI_SCRATCH_REG4;
+typedef union SCRATCH_REG5 regSCRATCH_REG5;
+typedef union GUI_SCRATCH_REG5 regGUI_SCRATCH_REG5;
+typedef union SCRATCH_REG6 regSCRATCH_REG6;
+typedef union GUI_SCRATCH_REG6 regGUI_SCRATCH_REG6;
+typedef union SCRATCH_REG7 regSCRATCH_REG7;
+typedef union GUI_SCRATCH_REG7 regGUI_SCRATCH_REG7;
+typedef union SCRATCH_UMSK regSCRATCH_UMSK;
+typedef union SCRATCH_ADDR regSCRATCH_ADDR;
+typedef union CP_ME_VS_EVENT_SRC regCP_ME_VS_EVENT_SRC;
+typedef union CP_ME_VS_EVENT_ADDR regCP_ME_VS_EVENT_ADDR;
+typedef union CP_ME_VS_EVENT_DATA regCP_ME_VS_EVENT_DATA;
+typedef union CP_ME_VS_EVENT_ADDR_SWM regCP_ME_VS_EVENT_ADDR_SWM;
+typedef union CP_ME_VS_EVENT_DATA_SWM regCP_ME_VS_EVENT_DATA_SWM;
+typedef union CP_ME_PS_EVENT_SRC regCP_ME_PS_EVENT_SRC;
+typedef union CP_ME_PS_EVENT_ADDR regCP_ME_PS_EVENT_ADDR;
+typedef union CP_ME_PS_EVENT_DATA regCP_ME_PS_EVENT_DATA;
+typedef union CP_ME_PS_EVENT_ADDR_SWM regCP_ME_PS_EVENT_ADDR_SWM;
+typedef union CP_ME_PS_EVENT_DATA_SWM regCP_ME_PS_EVENT_DATA_SWM;
+typedef union CP_ME_CF_EVENT_SRC regCP_ME_CF_EVENT_SRC;
+typedef union CP_ME_CF_EVENT_ADDR regCP_ME_CF_EVENT_ADDR;
+typedef union CP_ME_CF_EVENT_DATA regCP_ME_CF_EVENT_DATA;
+typedef union CP_ME_NRT_ADDR regCP_ME_NRT_ADDR;
+typedef union CP_ME_NRT_DATA regCP_ME_NRT_DATA;
+typedef union CP_ME_VS_FETCH_DONE_SRC regCP_ME_VS_FETCH_DONE_SRC;
+typedef union CP_ME_VS_FETCH_DONE_ADDR regCP_ME_VS_FETCH_DONE_ADDR;
+typedef union CP_ME_VS_FETCH_DONE_DATA regCP_ME_VS_FETCH_DONE_DATA;
+typedef union CP_INT_CNTL regCP_INT_CNTL;
+typedef union CP_INT_STATUS regCP_INT_STATUS;
+typedef union CP_INT_ACK regCP_INT_ACK;
+typedef union CP_PFP_UCODE_ADDR regCP_PFP_UCODE_ADDR;
+typedef union CP_PFP_UCODE_DATA regCP_PFP_UCODE_DATA;
+typedef union CP_PERFMON_CNTL regCP_PERFMON_CNTL;
+typedef union CP_PERFCOUNTER_SELECT regCP_PERFCOUNTER_SELECT;
+typedef union CP_PERFCOUNTER_LO regCP_PERFCOUNTER_LO;
+typedef union CP_PERFCOUNTER_HI regCP_PERFCOUNTER_HI;
+typedef union CP_BIN_MASK_LO regCP_BIN_MASK_LO;
+typedef union CP_BIN_MASK_HI regCP_BIN_MASK_HI;
+typedef union CP_BIN_SELECT_LO regCP_BIN_SELECT_LO;
+typedef union CP_BIN_SELECT_HI regCP_BIN_SELECT_HI;
+typedef union CP_NV_FLAGS_0 regCP_NV_FLAGS_0;
+typedef union CP_NV_FLAGS_1 regCP_NV_FLAGS_1;
+typedef union CP_NV_FLAGS_2 regCP_NV_FLAGS_2;
+typedef union CP_NV_FLAGS_3 regCP_NV_FLAGS_3;
+typedef union CP_STATE_DEBUG_INDEX regCP_STATE_DEBUG_INDEX;
+typedef union CP_STATE_DEBUG_DATA regCP_STATE_DEBUG_DATA;
+typedef union CP_PROG_COUNTER regCP_PROG_COUNTER;
+typedef union CP_STAT regCP_STAT;
+typedef union BIOS_0_SCRATCH regBIOS_0_SCRATCH;
+typedef union BIOS_1_SCRATCH regBIOS_1_SCRATCH;
+typedef union BIOS_2_SCRATCH regBIOS_2_SCRATCH;
+typedef union BIOS_3_SCRATCH regBIOS_3_SCRATCH;
+typedef union BIOS_4_SCRATCH regBIOS_4_SCRATCH;
+typedef union BIOS_5_SCRATCH regBIOS_5_SCRATCH;
+typedef union BIOS_6_SCRATCH regBIOS_6_SCRATCH;
+typedef union BIOS_7_SCRATCH regBIOS_7_SCRATCH;
+typedef union BIOS_8_SCRATCH regBIOS_8_SCRATCH;
+typedef union BIOS_9_SCRATCH regBIOS_9_SCRATCH;
+typedef union BIOS_10_SCRATCH regBIOS_10_SCRATCH;
+typedef union BIOS_11_SCRATCH regBIOS_11_SCRATCH;
+typedef union BIOS_12_SCRATCH regBIOS_12_SCRATCH;
+typedef union BIOS_13_SCRATCH regBIOS_13_SCRATCH;
+typedef union BIOS_14_SCRATCH regBIOS_14_SCRATCH;
+typedef union BIOS_15_SCRATCH regBIOS_15_SCRATCH;
+typedef union COHER_SIZE_PM4 regCOHER_SIZE_PM4;
+typedef union COHER_BASE_PM4 regCOHER_BASE_PM4;
+typedef union COHER_STATUS_PM4 regCOHER_STATUS_PM4;
+typedef union COHER_SIZE_HOST regCOHER_SIZE_HOST;
+typedef union COHER_BASE_HOST regCOHER_BASE_HOST;
+typedef union COHER_STATUS_HOST regCOHER_STATUS_HOST;
+typedef union COHER_DEST_BASE_0 regCOHER_DEST_BASE_0;
+typedef union COHER_DEST_BASE_1 regCOHER_DEST_BASE_1;
+typedef union COHER_DEST_BASE_2 regCOHER_DEST_BASE_2;
+typedef union COHER_DEST_BASE_3 regCOHER_DEST_BASE_3;
+typedef union COHER_DEST_BASE_4 regCOHER_DEST_BASE_4;
+typedef union COHER_DEST_BASE_5 regCOHER_DEST_BASE_5;
+typedef union COHER_DEST_BASE_6 regCOHER_DEST_BASE_6;
+typedef union COHER_DEST_BASE_7 regCOHER_DEST_BASE_7;
+typedef union RB_SURFACE_INFO regRB_SURFACE_INFO;
+typedef union RB_COLOR_INFO regRB_COLOR_INFO;
+typedef union RB_DEPTH_INFO regRB_DEPTH_INFO;
+typedef union RB_STENCILREFMASK regRB_STENCILREFMASK;
+typedef union RB_ALPHA_REF regRB_ALPHA_REF;
+typedef union RB_COLOR_MASK regRB_COLOR_MASK;
+typedef union RB_BLEND_RED regRB_BLEND_RED;
+typedef union RB_BLEND_GREEN regRB_BLEND_GREEN;
+typedef union RB_BLEND_BLUE regRB_BLEND_BLUE;
+typedef union RB_BLEND_ALPHA regRB_BLEND_ALPHA;
+typedef union RB_FOG_COLOR regRB_FOG_COLOR;
+typedef union RB_STENCILREFMASK_BF regRB_STENCILREFMASK_BF;
+typedef union RB_DEPTHCONTROL regRB_DEPTHCONTROL;
+typedef union RB_BLENDCONTROL regRB_BLENDCONTROL;
+typedef union RB_COLORCONTROL regRB_COLORCONTROL;
+typedef union RB_MODECONTROL regRB_MODECONTROL;
+typedef union RB_COLOR_DEST_MASK regRB_COLOR_DEST_MASK;
+typedef union RB_COPY_CONTROL regRB_COPY_CONTROL;
+typedef union RB_COPY_DEST_BASE regRB_COPY_DEST_BASE;
+typedef union RB_COPY_DEST_PITCH regRB_COPY_DEST_PITCH;
+typedef union RB_COPY_DEST_INFO regRB_COPY_DEST_INFO;
+typedef union RB_COPY_DEST_PIXEL_OFFSET regRB_COPY_DEST_PIXEL_OFFSET;
+typedef union RB_DEPTH_CLEAR regRB_DEPTH_CLEAR;
+typedef union RB_SAMPLE_COUNT_CTL regRB_SAMPLE_COUNT_CTL;
+typedef union RB_SAMPLE_COUNT_ADDR regRB_SAMPLE_COUNT_ADDR;
+typedef union RB_BC_CONTROL regRB_BC_CONTROL;
+typedef union RB_EDRAM_INFO regRB_EDRAM_INFO;
+typedef union RB_CRC_RD_PORT regRB_CRC_RD_PORT;
+typedef union RB_CRC_CONTROL regRB_CRC_CONTROL;
+typedef union RB_CRC_MASK regRB_CRC_MASK;
+typedef union RB_PERFCOUNTER0_SELECT regRB_PERFCOUNTER0_SELECT;
+typedef union RB_PERFCOUNTER0_LOW regRB_PERFCOUNTER0_LOW;
+typedef union RB_PERFCOUNTER0_HI regRB_PERFCOUNTER0_HI;
+typedef union RB_TOTAL_SAMPLES regRB_TOTAL_SAMPLES;
+typedef union RB_ZPASS_SAMPLES regRB_ZPASS_SAMPLES;
+typedef union RB_ZFAIL_SAMPLES regRB_ZFAIL_SAMPLES;
+typedef union RB_SFAIL_SAMPLES regRB_SFAIL_SAMPLES;
+typedef union RB_DEBUG_0 regRB_DEBUG_0;
+typedef union RB_DEBUG_1 regRB_DEBUG_1;
+typedef union RB_DEBUG_2 regRB_DEBUG_2;
+typedef union RB_DEBUG_3 regRB_DEBUG_3;
+typedef union RB_DEBUG_4 regRB_DEBUG_4;
+typedef union RB_FLAG_CONTROL regRB_FLAG_CONTROL;
+typedef union RB_BC_SPARES regRB_BC_SPARES;
+typedef union BC_DUMMY_CRAYRB_ENUMS regBC_DUMMY_CRAYRB_ENUMS;
+typedef union BC_DUMMY_CRAYRB_MOREENUMS regBC_DUMMY_CRAYRB_MOREENUMS;
+#endif
diff --git a/drivers/mxc/amd-gpu/include/reg/yamato/10/yamatoix.h b/drivers/mxc/amd-gpu/include/reg/yamato/10/yamatoix.h
new file mode 100644
index 000000000000..ba259a6c9d5f
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/reg/yamato/10/yamatoix.h
@@ -0,0 +1,169 @@
+/* Copyright (c) 2002,2007-2009, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef _yamatoix_h
+#define _yamatoix_h
+
+#ifdef __cplusplus
+extern "C" {
+#endif // __cplusplus
+
+// [SUDEBUGIND] : Indirect Registers
+
+#define ixCLIPPER_DEBUG_REG00 0x0000
+#define ixCLIPPER_DEBUG_REG01 0x0001
+#define ixCLIPPER_DEBUG_REG02 0x0002
+#define ixCLIPPER_DEBUG_REG03 0x0003
+#define ixCLIPPER_DEBUG_REG04 0x0004
+#define ixCLIPPER_DEBUG_REG05 0x0005
+#define ixCLIPPER_DEBUG_REG09 0x0009
+#define ixCLIPPER_DEBUG_REG10 0x000A
+#define ixCLIPPER_DEBUG_REG11 0x000B
+#define ixCLIPPER_DEBUG_REG12 0x000C
+#define ixCLIPPER_DEBUG_REG13 0x000D
+#define ixSXIFCCG_DEBUG_REG0 0x0011
+#define ixSXIFCCG_DEBUG_REG1 0x0012
+#define ixSXIFCCG_DEBUG_REG2 0x0013
+#define ixSXIFCCG_DEBUG_REG3 0x0014
+#define ixSETUP_DEBUG_REG0 0x0015
+#define ixSETUP_DEBUG_REG1 0x0016
+#define ixSETUP_DEBUG_REG2 0x0017
+#define ixSETUP_DEBUG_REG3 0x0018
+#define ixSETUP_DEBUG_REG4 0x0019
+#define ixSETUP_DEBUG_REG5 0x001A
+
+// [SCDEBUGIND] : Indirect Registers
+
+#define ixSC_DEBUG_0 0x0000
+#define ixSC_DEBUG_1 0x0001
+#define ixSC_DEBUG_2 0x0002
+#define ixSC_DEBUG_3 0x0003
+#define ixSC_DEBUG_4 0x0004
+#define ixSC_DEBUG_5 0x0005
+#define ixSC_DEBUG_6 0x0006
+#define ixSC_DEBUG_7 0x0007
+#define ixSC_DEBUG_8 0x0008
+#define ixSC_DEBUG_9 0x0009
+#define ixSC_DEBUG_10 0x000A
+#define ixSC_DEBUG_11 0x000B
+#define ixSC_DEBUG_12 0x000C
+
+// [VGTDEBUGIND] : Indirect Registers
+
+#define ixVGT_DEBUG_REG0 0x0000
+#define ixVGT_DEBUG_REG1 0x0001
+#define ixVGT_DEBUG_REG3 0x0003
+#define ixVGT_DEBUG_REG6 0x0006
+#define ixVGT_DEBUG_REG7 0x0007
+#define ixVGT_DEBUG_REG8 0x0008
+#define ixVGT_DEBUG_REG9 0x0009
+#define ixVGT_DEBUG_REG10 0x000A
+#define ixVGT_DEBUG_REG12 0x000C
+#define ixVGT_DEBUG_REG13 0x000D
+#define ixVGT_DEBUG_REG14 0x000E
+#define ixVGT_DEBUG_REG15 0x000F
+#define ixVGT_DEBUG_REG16 0x0010
+#define ixVGT_DEBUG_REG17 0x0011
+#define ixVGT_DEBUG_REG18 0x0012
+#define ixVGT_DEBUG_REG20 0x0014
+#define ixVGT_DEBUG_REG21 0x0015
+
+// [MHDEBUGIND] : Indirect Registers
+
+#define ixMH_DEBUG_REG00 0x0000
+#define ixMH_DEBUG_REG01 0x0001
+#define ixMH_DEBUG_REG02 0x0002
+#define ixMH_DEBUG_REG03 0x0003
+#define ixMH_DEBUG_REG04 0x0004
+#define ixMH_DEBUG_REG05 0x0005
+#define ixMH_DEBUG_REG06 0x0006
+#define ixMH_DEBUG_REG07 0x0007
+#define ixMH_DEBUG_REG08 0x0008
+#define ixMH_DEBUG_REG09 0x0009
+#define ixMH_DEBUG_REG10 0x000A
+#define ixMH_DEBUG_REG11 0x000B
+#define ixMH_DEBUG_REG12 0x000C
+#define ixMH_DEBUG_REG13 0x000D
+#define ixMH_DEBUG_REG14 0x000E
+#define ixMH_DEBUG_REG15 0x000F
+#define ixMH_DEBUG_REG16 0x0010
+#define ixMH_DEBUG_REG17 0x0011
+#define ixMH_DEBUG_REG18 0x0012
+#define ixMH_DEBUG_REG19 0x0013
+#define ixMH_DEBUG_REG20 0x0014
+#define ixMH_DEBUG_REG21 0x0015
+#define ixMH_DEBUG_REG22 0x0016
+#define ixMH_DEBUG_REG23 0x0017
+#define ixMH_DEBUG_REG24 0x0018
+#define ixMH_DEBUG_REG25 0x0019
+#define ixMH_DEBUG_REG26 0x001A
+#define ixMH_DEBUG_REG27 0x001B
+#define ixMH_DEBUG_REG28 0x001C
+#define ixMH_DEBUG_REG29 0x001D
+#define ixMH_DEBUG_REG30 0x001E
+#define ixMH_DEBUG_REG31 0x001F
+#define ixMH_DEBUG_REG32 0x0020
+#define ixMH_DEBUG_REG33 0x0021
+#define ixMH_DEBUG_REG34 0x0022
+#define ixMH_DEBUG_REG35 0x0023
+#define ixMH_DEBUG_REG36 0x0024
+#define ixMH_DEBUG_REG37 0x0025
+#define ixMH_DEBUG_REG38 0x0026
+#define ixMH_DEBUG_REG39 0x0027
+#define ixMH_DEBUG_REG40 0x0028
+#define ixMH_DEBUG_REG41 0x0029
+#define ixMH_DEBUG_REG42 0x002A
+#define ixMH_DEBUG_REG43 0x002B
+#define ixMH_DEBUG_REG44 0x002C
+#define ixMH_DEBUG_REG45 0x002D
+#define ixMH_DEBUG_REG46 0x002E
+#define ixMH_DEBUG_REG47 0x002F
+#define ixMH_DEBUG_REG48 0x0030
+#define ixMH_DEBUG_REG49 0x0031
+#define ixMH_DEBUG_REG50 0x0032
+#define ixMH_DEBUG_REG51 0x0033
+#define ixMH_DEBUG_REG52 0x0034
+#define ixMH_DEBUG_REG53 0x0035
+#define ixMH_DEBUG_REG54 0x0036
+#define ixMH_DEBUG_REG55 0x0037
+#define ixMH_DEBUG_REG56 0x0038
+#define ixMH_DEBUG_REG57 0x0039
+#define ixMH_DEBUG_REG58 0x003A
+#define ixMH_DEBUG_REG59 0x003B
+#define ixMH_DEBUG_REG60 0x003C
+#define ixMH_DEBUG_REG61 0x003D
+#define ixMH_DEBUG_REG62 0x003E
+#define ixMH_DEBUG_REG63 0x003F
+
+
+#ifdef __cplusplus
+}
+#endif // __cplusplus
+
+#endif // _yamatob_h
+
diff --git a/drivers/mxc/amd-gpu/include/reg/yamato/14/yamato_enum.h b/drivers/mxc/amd-gpu/include/reg/yamato/14/yamato_enum.h
new file mode 100644
index 000000000000..ab11205f1092
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/reg/yamato/14/yamato_enum.h
@@ -0,0 +1,1867 @@
+/* Copyright (c) 2002,2007-2009, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#if !defined (_yamato_ENUM_HEADER)
+#define _yamato_ENUM_HEADER
+
+
+
+#ifndef _DRIVER_BUILD
+#ifndef GL_ZERO
+#define GL__ZERO BLEND_ZERO
+#define GL__ONE BLEND_ONE
+#define GL__SRC_COLOR BLEND_SRC_COLOR
+#define GL__ONE_MINUS_SRC_COLOR BLEND_ONE_MINUS_SRC_COLOR
+#define GL__DST_COLOR BLEND_DST_COLOR
+#define GL__ONE_MINUS_DST_COLOR BLEND_ONE_MINUS_DST_COLOR
+#define GL__SRC_ALPHA BLEND_SRC_ALPHA
+#define GL__ONE_MINUS_SRC_ALPHA BLEND_ONE_MINUS_SRC_ALPHA
+#define GL__DST_ALPHA BLEND_DST_ALPHA
+#define GL__ONE_MINUS_DST_ALPHA BLEND_ONE_MINUS_DST_ALPHA
+#define GL__SRC_ALPHA_SATURATE BLEND_SRC_ALPHA_SATURATE
+#define GL__CONSTANT_COLOR BLEND_CONSTANT_COLOR
+#define GL__ONE_MINUS_CONSTANT_COLOR BLEND_ONE_MINUS_CONSTANT_COLOR
+#define GL__CONSTANT_ALPHA BLEND_CONSTANT_ALPHA
+#define GL__ONE_MINUS_CONSTANT_ALPHA BLEND_ONE_MINUS_CONSTANT_ALPHA
+#endif
+#endif
+
+/*******************************************************
+ * PA Enums
+ *******************************************************/
+#ifndef ENUMS_SU_PERFCNT_SELECT_H
+#define ENUMS_SU_PERFCNT_SELECT_H
+typedef enum SU_PERFCNT_SELECT {
+ PERF_PAPC_PASX_REQ = 0,
+ UNUSED1 = 1,
+ PERF_PAPC_PASX_FIRST_VECTOR = 2,
+ PERF_PAPC_PASX_SECOND_VECTOR = 3,
+ PERF_PAPC_PASX_FIRST_DEAD = 4,
+ PERF_PAPC_PASX_SECOND_DEAD = 5,
+ PERF_PAPC_PASX_VTX_KILL_DISCARD = 6,
+ PERF_PAPC_PASX_VTX_NAN_DISCARD = 7,
+ PERF_PAPC_PA_INPUT_PRIM = 8,
+ PERF_PAPC_PA_INPUT_NULL_PRIM = 9,
+ PERF_PAPC_PA_INPUT_EVENT_FLAG = 10,
+ PERF_PAPC_PA_INPUT_FIRST_PRIM_SLOT = 11,
+ PERF_PAPC_PA_INPUT_END_OF_PACKET = 12,
+ PERF_PAPC_CLPR_CULL_PRIM = 13,
+ UNUSED2 = 14,
+ PERF_PAPC_CLPR_VV_CULL_PRIM = 15,
+ UNUSED3 = 16,
+ PERF_PAPC_CLPR_VTX_KILL_CULL_PRIM = 17,
+ PERF_PAPC_CLPR_VTX_NAN_CULL_PRIM = 18,
+ PERF_PAPC_CLPR_CULL_TO_NULL_PRIM = 19,
+ UNUSED4 = 20,
+ PERF_PAPC_CLPR_VV_CLIP_PRIM = 21,
+ UNUSED5 = 22,
+ PERF_PAPC_CLPR_POINT_CLIP_CANDIDATE = 23,
+ PERF_PAPC_CLPR_CLIP_PLANE_CNT_1 = 24,
+ PERF_PAPC_CLPR_CLIP_PLANE_CNT_2 = 25,
+ PERF_PAPC_CLPR_CLIP_PLANE_CNT_3 = 26,
+ PERF_PAPC_CLPR_CLIP_PLANE_CNT_4 = 27,
+ PERF_PAPC_CLPR_CLIP_PLANE_CNT_5 = 28,
+ PERF_PAPC_CLPR_CLIP_PLANE_CNT_6 = 29,
+ PERF_PAPC_CLPR_CLIP_PLANE_NEAR = 30,
+ PERF_PAPC_CLPR_CLIP_PLANE_FAR = 31,
+ PERF_PAPC_CLPR_CLIP_PLANE_LEFT = 32,
+ PERF_PAPC_CLPR_CLIP_PLANE_RIGHT = 33,
+ PERF_PAPC_CLPR_CLIP_PLANE_TOP = 34,
+ PERF_PAPC_CLPR_CLIP_PLANE_BOTTOM = 35,
+ PERF_PAPC_CLSM_NULL_PRIM = 36,
+ PERF_PAPC_CLSM_TOTALLY_VISIBLE_PRIM = 37,
+ PERF_PAPC_CLSM_CLIP_PRIM = 38,
+ PERF_PAPC_CLSM_CULL_TO_NULL_PRIM = 39,
+ PERF_PAPC_CLSM_OUT_PRIM_CNT_1 = 40,
+ PERF_PAPC_CLSM_OUT_PRIM_CNT_2 = 41,
+ PERF_PAPC_CLSM_OUT_PRIM_CNT_3 = 42,
+ PERF_PAPC_CLSM_OUT_PRIM_CNT_4 = 43,
+ PERF_PAPC_CLSM_OUT_PRIM_CNT_5 = 44,
+ PERF_PAPC_CLSM_OUT_PRIM_CNT_6_7 = 45,
+ PERF_PAPC_CLSM_NON_TRIVIAL_CULL = 46,
+ PERF_PAPC_SU_INPUT_PRIM = 47,
+ PERF_PAPC_SU_INPUT_CLIP_PRIM = 48,
+ PERF_PAPC_SU_INPUT_NULL_PRIM = 49,
+ PERF_PAPC_SU_ZERO_AREA_CULL_PRIM = 50,
+ PERF_PAPC_SU_BACK_FACE_CULL_PRIM = 51,
+ PERF_PAPC_SU_FRONT_FACE_CULL_PRIM = 52,
+ PERF_PAPC_SU_POLYMODE_FACE_CULL = 53,
+ PERF_PAPC_SU_POLYMODE_BACK_CULL = 54,
+ PERF_PAPC_SU_POLYMODE_FRONT_CULL = 55,
+ PERF_PAPC_SU_POLYMODE_INVALID_FILL = 56,
+ PERF_PAPC_SU_OUTPUT_PRIM = 57,
+ PERF_PAPC_SU_OUTPUT_CLIP_PRIM = 58,
+ PERF_PAPC_SU_OUTPUT_NULL_PRIM = 59,
+ PERF_PAPC_SU_OUTPUT_EVENT_FLAG = 60,
+ PERF_PAPC_SU_OUTPUT_FIRST_PRIM_SLOT = 61,
+ PERF_PAPC_SU_OUTPUT_END_OF_PACKET = 62,
+ PERF_PAPC_SU_OUTPUT_POLYMODE_FACE = 63,
+ PERF_PAPC_SU_OUTPUT_POLYMODE_BACK = 64,
+ PERF_PAPC_SU_OUTPUT_POLYMODE_FRONT = 65,
+ PERF_PAPC_SU_OUT_CLIP_POLYMODE_FACE = 66,
+ PERF_PAPC_SU_OUT_CLIP_POLYMODE_BACK = 67,
+ PERF_PAPC_SU_OUT_CLIP_POLYMODE_FRONT = 68,
+ PERF_PAPC_PASX_REQ_IDLE = 69,
+ PERF_PAPC_PASX_REQ_BUSY = 70,
+ PERF_PAPC_PASX_REQ_STALLED = 71,
+ PERF_PAPC_PASX_REC_IDLE = 72,
+ PERF_PAPC_PASX_REC_BUSY = 73,
+ PERF_PAPC_PASX_REC_STARVED_SX = 74,
+ PERF_PAPC_PASX_REC_STALLED = 75,
+ PERF_PAPC_PASX_REC_STALLED_POS_MEM = 76,
+ PERF_PAPC_PASX_REC_STALLED_CCGSM_IN = 77,
+ PERF_PAPC_CCGSM_IDLE = 78,
+ PERF_PAPC_CCGSM_BUSY = 79,
+ PERF_PAPC_CCGSM_STALLED = 80,
+ PERF_PAPC_CLPRIM_IDLE = 81,
+ PERF_PAPC_CLPRIM_BUSY = 82,
+ PERF_PAPC_CLPRIM_STALLED = 83,
+ PERF_PAPC_CLPRIM_STARVED_CCGSM = 84,
+ PERF_PAPC_CLIPSM_IDLE = 85,
+ PERF_PAPC_CLIPSM_BUSY = 86,
+ PERF_PAPC_CLIPSM_WAIT_CLIP_VERT_ENGH = 87,
+ PERF_PAPC_CLIPSM_WAIT_HIGH_PRI_SEQ = 88,
+ PERF_PAPC_CLIPSM_WAIT_CLIPGA = 89,
+ PERF_PAPC_CLIPSM_WAIT_AVAIL_VTE_CLIP = 90,
+ PERF_PAPC_CLIPSM_WAIT_CLIP_OUTSM = 91,
+ PERF_PAPC_CLIPGA_IDLE = 92,
+ PERF_PAPC_CLIPGA_BUSY = 93,
+ PERF_PAPC_CLIPGA_STARVED_VTE_CLIP = 94,
+ PERF_PAPC_CLIPGA_STALLED = 95,
+ PERF_PAPC_CLIP_IDLE = 96,
+ PERF_PAPC_CLIP_BUSY = 97,
+ PERF_PAPC_SU_IDLE = 98,
+ PERF_PAPC_SU_BUSY = 99,
+ PERF_PAPC_SU_STARVED_CLIP = 100,
+ PERF_PAPC_SU_STALLED_SC = 101,
+} SU_PERFCNT_SELECT;
+#endif /*ENUMS_SU_PERFCNT_SELECT_H*/
+
+#ifndef ENUMS_SC_PERFCNT_SELECT_H
+#define ENUMS_SC_PERFCNT_SELECT_H
+typedef enum SC_PERFCNT_SELECT {
+ SC_SR_WINDOW_VALID = 0,
+ SC_CW_WINDOW_VALID = 1,
+ SC_QM_WINDOW_VALID = 2,
+ SC_FW_WINDOW_VALID = 3,
+ SC_EZ_WINDOW_VALID = 4,
+ SC_IT_WINDOW_VALID = 5,
+ SC_STARVED_BY_PA = 6,
+ SC_STALLED_BY_RB_TILE = 7,
+ SC_STALLED_BY_RB_SAMP = 8,
+ SC_STARVED_BY_RB_EZ = 9,
+ SC_STALLED_BY_SAMPLE_FF = 10,
+ SC_STALLED_BY_SQ = 11,
+ SC_STALLED_BY_SP = 12,
+ SC_TOTAL_NO_PRIMS = 13,
+ SC_NON_EMPTY_PRIMS = 14,
+ SC_NO_TILES_PASSING_QM = 15,
+ SC_NO_PIXELS_PRE_EZ = 16,
+ SC_NO_PIXELS_POST_EZ = 17,
+} SC_PERFCNT_SELECT;
+#endif /*ENUMS_SC_PERFCNT_SELECT_H*/
+
+/*******************************************************
+ * VGT Enums
+ *******************************************************/
+#ifndef ENUMS_VGT_DI_PRIM_TYPE_H
+#define ENUMS_VGT_DI_PRIM_TYPE_H
+typedef enum VGT_DI_PRIM_TYPE {
+ DI_PT_NONE = 0,
+ DI_PT_POINTLIST = 1,
+ DI_PT_LINELIST = 2,
+ DI_PT_LINESTRIP = 3,
+ DI_PT_TRILIST = 4,
+ DI_PT_TRIFAN = 5,
+ DI_PT_TRISTRIP = 6,
+ DI_PT_UNUSED_1 = 7,
+ DI_PT_RECTLIST = 8,
+ DI_PT_UNUSED_2 = 9,
+ DI_PT_UNUSED_3 = 10,
+ DI_PT_UNUSED_4 = 11,
+ DI_PT_UNUSED_5 = 12,
+ DI_PT_QUADLIST = 13,
+ DI_PT_QUADSTRIP = 14,
+ DI_PT_POLYGON = 15,
+ DI_PT_2D_COPY_RECT_LIST_V0 = 16,
+ DI_PT_2D_COPY_RECT_LIST_V1 = 17,
+ DI_PT_2D_COPY_RECT_LIST_V2 = 18,
+ DI_PT_2D_COPY_RECT_LIST_V3 = 19,
+ DI_PT_2D_FILL_RECT_LIST = 20,
+ DI_PT_2D_LINE_STRIP = 21,
+ DI_PT_2D_TRI_STRIP = 22,
+} VGT_DI_PRIM_TYPE;
+#endif /*ENUMS_VGT_DI_PRIM_TYPE_H*/
+
+#ifndef ENUMS_VGT_DI_SOURCE_SELECT_H
+#define ENUMS_VGT_DI_SOURCE_SELECT_H
+typedef enum VGT_DI_SOURCE_SELECT {
+ DI_SRC_SEL_DMA = 0,
+ DI_SRC_SEL_IMMEDIATE = 1,
+ DI_SRC_SEL_AUTO_INDEX = 2,
+ DI_SRC_SEL_RESERVED = 3
+} VGT_DI_SOURCE_SELECT;
+#endif /*ENUMS_VGT_DI_SOURCE_SELECT_H*/
+
+#ifndef ENUMS_VGT_DI_INDEX_SIZE_H
+#define ENUMS_VGT_DI_INDEX_SIZE_H
+typedef enum VGT_DI_INDEX_SIZE {
+ DI_INDEX_SIZE_16_BIT = 0,
+ DI_INDEX_SIZE_32_BIT = 1
+} VGT_DI_INDEX_SIZE;
+#endif /*ENUMS_VGT_DI_INDEX_SIZE_H*/
+
+#ifndef ENUMS_VGT_DI_SMALL_INDEX_H
+#define ENUMS_VGT_DI_SMALL_INDEX_H
+typedef enum VGT_DI_SMALL_INDEX {
+ DI_USE_INDEX_SIZE = 0,
+ DI_INDEX_SIZE_8_BIT = 1
+} VGT_DI_SMALL_INDEX;
+#endif /*ENUMS_VGT_DI_SMALL_INDEX_H*/
+
+#ifndef ENUMS_VGT_DI_PRE_FETCH_CULL_ENABLE_H
+#define ENUMS_VGT_DI_PRE_FETCH_CULL_ENABLE_H
+typedef enum VGT_DI_PRE_FETCH_CULL_ENABLE {
+ DISABLE_PRE_FETCH_CULL_ENABLE = 0,
+ PRE_FETCH_CULL_ENABLE = 1
+} VGT_DI_PRE_FETCH_CULL_ENABLE;
+#endif /*ENUMS_VGT_DI_PRE_FETCH_CULL_ENABLE_H*/
+
+#ifndef ENUMS_VGT_DI_GRP_CULL_ENABLE_H
+#define ENUMS_VGT_DI_GRP_CULL_ENABLE_H
+typedef enum VGT_DI_GRP_CULL_ENABLE {
+ DISABLE_GRP_CULL_ENABLE = 0,
+ GRP_CULL_ENABLE = 1
+} VGT_DI_GRP_CULL_ENABLE;
+#endif /*ENUMS_VGT_DI_GRP_CULL_ENABLE_H*/
+
+#ifndef ENUMS_VGT_EVENT_TYPE_H
+#define ENUMS_VGT_EVENT_TYPE_H
+typedef enum VGT_EVENT_TYPE {
+ VS_DEALLOC = 0,
+ PS_DEALLOC = 1,
+ VS_DONE_TS = 2,
+ PS_DONE_TS = 3,
+ CACHE_FLUSH_TS = 4,
+ CONTEXT_DONE = 5,
+ CACHE_FLUSH = 6,
+ VIZQUERY_START = 7,
+ VIZQUERY_END = 8,
+ SC_WAIT_WC = 9,
+ RST_PIX_CNT = 13,
+ RST_VTX_CNT = 14,
+ TILE_FLUSH = 15,
+ CACHE_FLUSH_AND_INV_TS_EVENT = 20,
+ ZPASS_DONE = 21,
+ CACHE_FLUSH_AND_INV_EVENT = 22,
+ PERFCOUNTER_START = 23,
+ PERFCOUNTER_STOP = 24,
+ VS_FETCH_DONE = 27,
+} VGT_EVENT_TYPE;
+#endif /*ENUMS_VGT_EVENT_TYPE_H*/
+
+#ifndef ENUMS_VGT_DMA_SWAP_MODE_H
+#define ENUMS_VGT_DMA_SWAP_MODE_H
+typedef enum VGT_DMA_SWAP_MODE {
+ VGT_DMA_SWAP_NONE = 0,
+ VGT_DMA_SWAP_16_BIT = 1,
+ VGT_DMA_SWAP_32_BIT = 2,
+ VGT_DMA_SWAP_WORD = 3
+} VGT_DMA_SWAP_MODE;
+#endif /*ENUMS_VGT_DMA_SWAP_MODE_H*/
+
+#ifndef ENUMS_VGT_PERFCOUNT_SELECT_H
+#define ENUMS_VGT_PERFCOUNT_SELECT_H
+typedef enum VGT_PERFCOUNT_SELECT {
+ VGT_SQ_EVENT_WINDOW_ACTIVE = 0,
+ VGT_SQ_SEND = 1,
+ VGT_SQ_STALLED = 2,
+ VGT_SQ_STARVED_BUSY = 3,
+ VGT_SQ_STARVED_IDLE = 4,
+ VGT_SQ_STATIC = 5,
+ VGT_PA_EVENT_WINDOW_ACTIVE = 6,
+ VGT_PA_CLIP_V_SEND = 7,
+ VGT_PA_CLIP_V_STALLED = 8,
+ VGT_PA_CLIP_V_STARVED_BUSY = 9,
+ VGT_PA_CLIP_V_STARVED_IDLE = 10,
+ VGT_PA_CLIP_V_STATIC = 11,
+ VGT_PA_CLIP_P_SEND = 12,
+ VGT_PA_CLIP_P_STALLED = 13,
+ VGT_PA_CLIP_P_STARVED_BUSY = 14,
+ VGT_PA_CLIP_P_STARVED_IDLE = 15,
+ VGT_PA_CLIP_P_STATIC = 16,
+ VGT_PA_CLIP_S_SEND = 17,
+ VGT_PA_CLIP_S_STALLED = 18,
+ VGT_PA_CLIP_S_STARVED_BUSY = 19,
+ VGT_PA_CLIP_S_STARVED_IDLE = 20,
+ VGT_PA_CLIP_S_STATIC = 21,
+ RBIU_FIFOS_EVENT_WINDOW_ACTIVE = 22,
+ RBIU_IMMED_DATA_FIFO_STARVED = 23,
+ RBIU_IMMED_DATA_FIFO_STALLED = 24,
+ RBIU_DMA_REQUEST_FIFO_STARVED = 25,
+ RBIU_DMA_REQUEST_FIFO_STALLED = 26,
+ RBIU_DRAW_INITIATOR_FIFO_STARVED = 27,
+ RBIU_DRAW_INITIATOR_FIFO_STALLED = 28,
+ BIN_PRIM_NEAR_CULL = 29,
+ BIN_PRIM_ZERO_CULL = 30,
+ BIN_PRIM_FAR_CULL = 31,
+ BIN_PRIM_BIN_CULL = 32,
+ SPARE33 = 33,
+ SPARE34 = 34,
+ SPARE35 = 35,
+ SPARE36 = 36,
+ SPARE37 = 37,
+ SPARE38 = 38,
+ SPARE39 = 39,
+ TE_SU_IN_VALID = 40,
+ TE_SU_IN_READ = 41,
+ TE_SU_IN_PRIM = 42,
+ TE_SU_IN_EOP = 43,
+ TE_SU_IN_NULL_PRIM = 44,
+ TE_WK_IN_VALID = 45,
+ TE_WK_IN_READ = 46,
+ TE_OUT_PRIM_VALID = 47,
+ TE_OUT_PRIM_READ = 48,
+} VGT_PERFCOUNT_SELECT;
+#endif /*ENUMS_VGT_PERFCOUNT_SELECT_H*/
+
+/*******************************************************
+ * TP Enums
+ *******************************************************/
+#ifndef ENUMS_TCR_PERFCOUNT_SELECT_H
+#define ENUMS_TCR_PERFCOUNT_SELECT_H
+typedef enum TCR_PERFCOUNT_SELECT {
+ DGMMPD_IPMUX0_STALL = 0,
+ reserved_46 = 1,
+ reserved_47 = 2,
+ reserved_48 = 3,
+ DGMMPD_IPMUX_ALL_STALL = 4,
+ OPMUX0_L2_WRITES = 5,
+ reserved_49 = 6,
+ reserved_50 = 7,
+ reserved_51 = 8,
+} TCR_PERFCOUNT_SELECT;
+#endif /*ENUMS_TCR_PERFCOUNT_SELECT_H*/
+
+#ifndef ENUMS_TP_PERFCOUNT_SELECT_H
+#define ENUMS_TP_PERFCOUNT_SELECT_H
+typedef enum TP_PERFCOUNT_SELECT {
+ POINT_QUADS = 0,
+ BILIN_QUADS = 1,
+ ANISO_QUADS = 2,
+ MIP_QUADS = 3,
+ VOL_QUADS = 4,
+ MIP_VOL_QUADS = 5,
+ MIP_ANISO_QUADS = 6,
+ VOL_ANISO_QUADS = 7,
+ ANISO_2_1_QUADS = 8,
+ ANISO_4_1_QUADS = 9,
+ ANISO_6_1_QUADS = 10,
+ ANISO_8_1_QUADS = 11,
+ ANISO_10_1_QUADS = 12,
+ ANISO_12_1_QUADS = 13,
+ ANISO_14_1_QUADS = 14,
+ ANISO_16_1_QUADS = 15,
+ MIP_VOL_ANISO_QUADS = 16,
+ ALIGN_2_QUADS = 17,
+ ALIGN_4_QUADS = 18,
+ PIX_0_QUAD = 19,
+ PIX_1_QUAD = 20,
+ PIX_2_QUAD = 21,
+ PIX_3_QUAD = 22,
+ PIX_4_QUAD = 23,
+ TP_MIPMAP_LOD0 = 24,
+ TP_MIPMAP_LOD1 = 25,
+ TP_MIPMAP_LOD2 = 26,
+ TP_MIPMAP_LOD3 = 27,
+ TP_MIPMAP_LOD4 = 28,
+ TP_MIPMAP_LOD5 = 29,
+ TP_MIPMAP_LOD6 = 30,
+ TP_MIPMAP_LOD7 = 31,
+ TP_MIPMAP_LOD8 = 32,
+ TP_MIPMAP_LOD9 = 33,
+ TP_MIPMAP_LOD10 = 34,
+ TP_MIPMAP_LOD11 = 35,
+ TP_MIPMAP_LOD12 = 36,
+ TP_MIPMAP_LOD13 = 37,
+ TP_MIPMAP_LOD14 = 38,
+} TP_PERFCOUNT_SELECT;
+#endif /*ENUMS_TP_PERFCOUNT_SELECT_H*/
+
+#ifndef ENUMS_TCM_PERFCOUNT_SELECT_H
+#define ENUMS_TCM_PERFCOUNT_SELECT_H
+typedef enum TCM_PERFCOUNT_SELECT {
+ QUAD0_RD_LAT_FIFO_EMPTY = 0,
+ reserved_01 = 1,
+ reserved_02 = 2,
+ QUAD0_RD_LAT_FIFO_4TH_FULL = 3,
+ QUAD0_RD_LAT_FIFO_HALF_FULL = 4,
+ QUAD0_RD_LAT_FIFO_FULL = 5,
+ QUAD0_RD_LAT_FIFO_LT_4TH_FULL = 6,
+ reserved_07 = 7,
+ reserved_08 = 8,
+ reserved_09 = 9,
+ reserved_10 = 10,
+ reserved_11 = 11,
+ reserved_12 = 12,
+ reserved_13 = 13,
+ reserved_14 = 14,
+ reserved_15 = 15,
+ reserved_16 = 16,
+ reserved_17 = 17,
+ reserved_18 = 18,
+ reserved_19 = 19,
+ reserved_20 = 20,
+ reserved_21 = 21,
+ reserved_22 = 22,
+ reserved_23 = 23,
+ reserved_24 = 24,
+ reserved_25 = 25,
+ reserved_26 = 26,
+ reserved_27 = 27,
+ READ_STARVED_QUAD0 = 28,
+ reserved_29 = 29,
+ reserved_30 = 30,
+ reserved_31 = 31,
+ READ_STARVED = 32,
+ READ_STALLED_QUAD0 = 33,
+ reserved_34 = 34,
+ reserved_35 = 35,
+ reserved_36 = 36,
+ READ_STALLED = 37,
+ VALID_READ_QUAD0 = 38,
+ reserved_39 = 39,
+ reserved_40 = 40,
+ reserved_41 = 41,
+ TC_TP_STARVED_QUAD0 = 42,
+ reserved_43 = 43,
+ reserved_44 = 44,
+ reserved_45 = 45,
+ TC_TP_STARVED = 46,
+} TCM_PERFCOUNT_SELECT;
+#endif /*ENUMS_TCM_PERFCOUNT_SELECT_H*/
+
+#ifndef ENUMS_TCF_PERFCOUNT_SELECT_H
+#define ENUMS_TCF_PERFCOUNT_SELECT_H
+typedef enum TCF_PERFCOUNT_SELECT {
+ VALID_CYCLES = 0,
+ SINGLE_PHASES = 1,
+ ANISO_PHASES = 2,
+ MIP_PHASES = 3,
+ VOL_PHASES = 4,
+ MIP_VOL_PHASES = 5,
+ MIP_ANISO_PHASES = 6,
+ VOL_ANISO_PHASES = 7,
+ ANISO_2_1_PHASES = 8,
+ ANISO_4_1_PHASES = 9,
+ ANISO_6_1_PHASES = 10,
+ ANISO_8_1_PHASES = 11,
+ ANISO_10_1_PHASES = 12,
+ ANISO_12_1_PHASES = 13,
+ ANISO_14_1_PHASES = 14,
+ ANISO_16_1_PHASES = 15,
+ MIP_VOL_ANISO_PHASES = 16,
+ ALIGN_2_PHASES = 17,
+ ALIGN_4_PHASES = 18,
+ TPC_BUSY = 19,
+ TPC_STALLED = 20,
+ TPC_STARVED = 21,
+ TPC_WORKING = 22,
+ TPC_WALKER_BUSY = 23,
+ TPC_WALKER_STALLED = 24,
+ TPC_WALKER_WORKING = 25,
+ TPC_ALIGNER_BUSY = 26,
+ TPC_ALIGNER_STALLED = 27,
+ TPC_ALIGNER_STALLED_BY_BLEND = 28,
+ TPC_ALIGNER_STALLED_BY_CACHE = 29,
+ TPC_ALIGNER_WORKING = 30,
+ TPC_BLEND_BUSY = 31,
+ TPC_BLEND_SYNC = 32,
+ TPC_BLEND_STARVED = 33,
+ TPC_BLEND_WORKING = 34,
+ OPCODE_0x00 = 35,
+ OPCODE_0x01 = 36,
+ OPCODE_0x04 = 37,
+ OPCODE_0x10 = 38,
+ OPCODE_0x11 = 39,
+ OPCODE_0x12 = 40,
+ OPCODE_0x13 = 41,
+ OPCODE_0x18 = 42,
+ OPCODE_0x19 = 43,
+ OPCODE_0x1A = 44,
+ OPCODE_OTHER = 45,
+ IN_FIFO_0_EMPTY = 56,
+ IN_FIFO_0_LT_HALF_FULL = 57,
+ IN_FIFO_0_HALF_FULL = 58,
+ IN_FIFO_0_FULL = 59,
+ IN_FIFO_TPC_EMPTY = 72,
+ IN_FIFO_TPC_LT_HALF_FULL = 73,
+ IN_FIFO_TPC_HALF_FULL = 74,
+ IN_FIFO_TPC_FULL = 75,
+ TPC_TC_XFC = 76,
+ TPC_TC_STATE = 77,
+ TC_STALL = 78,
+ QUAD0_TAPS = 79,
+ QUADS = 83,
+ TCA_SYNC_STALL = 84,
+ TAG_STALL = 85,
+ TCB_SYNC_STALL = 88,
+ TCA_VALID = 89,
+ PROBES_VALID = 90,
+ MISS_STALL = 91,
+ FETCH_FIFO_STALL = 92,
+ TCO_STALL = 93,
+ ANY_STALL = 94,
+ TAG_MISSES = 95,
+ TAG_HITS = 96,
+ SUB_TAG_MISSES = 97,
+ SET0_INVALIDATES = 98,
+ SET1_INVALIDATES = 99,
+ SET2_INVALIDATES = 100,
+ SET3_INVALIDATES = 101,
+ SET0_TAG_MISSES = 102,
+ SET1_TAG_MISSES = 103,
+ SET2_TAG_MISSES = 104,
+ SET3_TAG_MISSES = 105,
+ SET0_TAG_HITS = 106,
+ SET1_TAG_HITS = 107,
+ SET2_TAG_HITS = 108,
+ SET3_TAG_HITS = 109,
+ SET0_SUB_TAG_MISSES = 110,
+ SET1_SUB_TAG_MISSES = 111,
+ SET2_SUB_TAG_MISSES = 112,
+ SET3_SUB_TAG_MISSES = 113,
+ SET0_EVICT1 = 114,
+ SET0_EVICT2 = 115,
+ SET0_EVICT3 = 116,
+ SET0_EVICT4 = 117,
+ SET0_EVICT5 = 118,
+ SET0_EVICT6 = 119,
+ SET0_EVICT7 = 120,
+ SET0_EVICT8 = 121,
+ SET1_EVICT1 = 130,
+ SET1_EVICT2 = 131,
+ SET1_EVICT3 = 132,
+ SET1_EVICT4 = 133,
+ SET1_EVICT5 = 134,
+ SET1_EVICT6 = 135,
+ SET1_EVICT7 = 136,
+ SET1_EVICT8 = 137,
+ SET2_EVICT1 = 146,
+ SET2_EVICT2 = 147,
+ SET2_EVICT3 = 148,
+ SET2_EVICT4 = 149,
+ SET2_EVICT5 = 150,
+ SET2_EVICT6 = 151,
+ SET2_EVICT7 = 152,
+ SET2_EVICT8 = 153,
+ SET3_EVICT1 = 162,
+ SET3_EVICT2 = 163,
+ SET3_EVICT3 = 164,
+ SET3_EVICT4 = 165,
+ SET3_EVICT5 = 166,
+ SET3_EVICT6 = 167,
+ SET3_EVICT7 = 168,
+ SET3_EVICT8 = 169,
+ FF_EMPTY = 178,
+ FF_LT_HALF_FULL = 179,
+ FF_HALF_FULL = 180,
+ FF_FULL = 181,
+ FF_XFC = 182,
+ FF_STALLED = 183,
+ FG_MASKS = 184,
+ FG_LEFT_MASKS = 185,
+ FG_LEFT_MASK_STALLED = 186,
+ FG_LEFT_NOT_DONE_STALL = 187,
+ FG_LEFT_FG_STALL = 188,
+ FG_LEFT_SECTORS = 189,
+ FG0_REQUESTS = 195,
+ FG0_STALLED = 196,
+ MEM_REQ512 = 199,
+ MEM_REQ_SENT = 200,
+ MEM_LOCAL_READ_REQ = 202,
+ TC0_MH_STALLED = 203,
+} TCF_PERFCOUNT_SELECT;
+#endif /*ENUMS_TCF_PERFCOUNT_SELECT_H*/
+
+/*******************************************************
+ * TC Enums
+ *******************************************************/
+/*******************************************************
+ * SQ Enums
+ *******************************************************/
+#ifndef ENUMS_SQ_PERFCNT_SELECT_H
+#define ENUMS_SQ_PERFCNT_SELECT_H
+typedef enum SQ_PERFCNT_SELECT {
+ SQ_PIXEL_VECTORS_SUB = 0,
+ SQ_VERTEX_VECTORS_SUB = 1,
+ SQ_ALU0_ACTIVE_VTX_SIMD0 = 2,
+ SQ_ALU1_ACTIVE_VTX_SIMD0 = 3,
+ SQ_ALU0_ACTIVE_PIX_SIMD0 = 4,
+ SQ_ALU1_ACTIVE_PIX_SIMD0 = 5,
+ SQ_ALU0_ACTIVE_VTX_SIMD1 = 6,
+ SQ_ALU1_ACTIVE_VTX_SIMD1 = 7,
+ SQ_ALU0_ACTIVE_PIX_SIMD1 = 8,
+ SQ_ALU1_ACTIVE_PIX_SIMD1 = 9,
+ SQ_EXPORT_CYCLES = 10,
+ SQ_ALU_CST_WRITTEN = 11,
+ SQ_TEX_CST_WRITTEN = 12,
+ SQ_ALU_CST_STALL = 13,
+ SQ_ALU_TEX_STALL = 14,
+ SQ_INST_WRITTEN = 15,
+ SQ_BOOLEAN_WRITTEN = 16,
+ SQ_LOOPS_WRITTEN = 17,
+ SQ_PIXEL_SWAP_IN = 18,
+ SQ_PIXEL_SWAP_OUT = 19,
+ SQ_VERTEX_SWAP_IN = 20,
+ SQ_VERTEX_SWAP_OUT = 21,
+ SQ_ALU_VTX_INST_ISSUED = 22,
+ SQ_TEX_VTX_INST_ISSUED = 23,
+ SQ_VC_VTX_INST_ISSUED = 24,
+ SQ_CF_VTX_INST_ISSUED = 25,
+ SQ_ALU_PIX_INST_ISSUED = 26,
+ SQ_TEX_PIX_INST_ISSUED = 27,
+ SQ_VC_PIX_INST_ISSUED = 28,
+ SQ_CF_PIX_INST_ISSUED = 29,
+ SQ_ALU0_FIFO_EMPTY_SIMD0 = 30,
+ SQ_ALU1_FIFO_EMPTY_SIMD0 = 31,
+ SQ_ALU0_FIFO_EMPTY_SIMD1 = 32,
+ SQ_ALU1_FIFO_EMPTY_SIMD1 = 33,
+ SQ_ALU_NOPS = 34,
+ SQ_PRED_SKIP = 35,
+ SQ_SYNC_ALU_STALL_SIMD0_VTX = 36,
+ SQ_SYNC_ALU_STALL_SIMD1_VTX = 37,
+ SQ_SYNC_TEX_STALL_VTX = 38,
+ SQ_SYNC_VC_STALL_VTX = 39,
+ SQ_CONSTANTS_USED_SIMD0 = 40,
+ SQ_CONSTANTS_SENT_SP_SIMD0 = 41,
+ SQ_GPR_STALL_VTX = 42,
+ SQ_GPR_STALL_PIX = 43,
+ SQ_VTX_RS_STALL = 44,
+ SQ_PIX_RS_STALL = 45,
+ SQ_SX_PC_FULL = 46,
+ SQ_SX_EXP_BUFF_FULL = 47,
+ SQ_SX_POS_BUFF_FULL = 48,
+ SQ_INTERP_QUADS = 49,
+ SQ_INTERP_ACTIVE = 50,
+ SQ_IN_PIXEL_STALL = 51,
+ SQ_IN_VTX_STALL = 52,
+ SQ_VTX_CNT = 53,
+ SQ_VTX_VECTOR2 = 54,
+ SQ_VTX_VECTOR3 = 55,
+ SQ_VTX_VECTOR4 = 56,
+ SQ_PIXEL_VECTOR1 = 57,
+ SQ_PIXEL_VECTOR23 = 58,
+ SQ_PIXEL_VECTOR4 = 59,
+ SQ_CONSTANTS_USED_SIMD1 = 60,
+ SQ_CONSTANTS_SENT_SP_SIMD1 = 61,
+ SQ_SX_MEM_EXP_FULL = 62,
+ SQ_ALU0_ACTIVE_VTX_SIMD2 = 63,
+ SQ_ALU1_ACTIVE_VTX_SIMD2 = 64,
+ SQ_ALU0_ACTIVE_PIX_SIMD2 = 65,
+ SQ_ALU1_ACTIVE_PIX_SIMD2 = 66,
+ SQ_ALU0_ACTIVE_VTX_SIMD3 = 67,
+ SQ_ALU1_ACTIVE_VTX_SIMD3 = 68,
+ SQ_ALU0_ACTIVE_PIX_SIMD3 = 69,
+ SQ_ALU1_ACTIVE_PIX_SIMD3 = 70,
+ SQ_ALU0_FIFO_EMPTY_SIMD2 = 71,
+ SQ_ALU1_FIFO_EMPTY_SIMD2 = 72,
+ SQ_ALU0_FIFO_EMPTY_SIMD3 = 73,
+ SQ_ALU1_FIFO_EMPTY_SIMD3 = 74,
+ SQ_SYNC_ALU_STALL_SIMD2_VTX = 75,
+ SQ_SYNC_ALU_STALL_SIMD3_VTX = 76,
+ SQ_SYNC_ALU_STALL_SIMD0_PIX = 77,
+ SQ_SYNC_ALU_STALL_SIMD1_PIX = 78,
+ SQ_SYNC_ALU_STALL_SIMD2_PIX = 79,
+ SQ_SYNC_ALU_STALL_SIMD3_PIX = 80,
+ SQ_SYNC_TEX_STALL_PIX = 81,
+ SQ_SYNC_VC_STALL_PIX = 82,
+ SQ_CONSTANTS_USED_SIMD2 = 83,
+ SQ_CONSTANTS_SENT_SP_SIMD2 = 84,
+ SQ_CONSTANTS_USED_SIMD3 = 85,
+ SQ_CONSTANTS_SENT_SP_SIMD3 = 86,
+ SQ_ALU0_FIFO_FULL_SIMD0 = 87,
+ SQ_ALU1_FIFO_FULL_SIMD0 = 88,
+ SQ_ALU0_FIFO_FULL_SIMD1 = 89,
+ SQ_ALU1_FIFO_FULL_SIMD1 = 90,
+ SQ_ALU0_FIFO_FULL_SIMD2 = 91,
+ SQ_ALU1_FIFO_FULL_SIMD2 = 92,
+ SQ_ALU0_FIFO_FULL_SIMD3 = 93,
+ SQ_ALU1_FIFO_FULL_SIMD3 = 94,
+ VC_PERF_STATIC = 95,
+ VC_PERF_STALLED = 96,
+ VC_PERF_STARVED = 97,
+ VC_PERF_SEND = 98,
+ VC_PERF_ACTUAL_STARVED = 99,
+ PIXEL_THREAD_0_ACTIVE = 100,
+ VERTEX_THREAD_0_ACTIVE = 101,
+ PIXEL_THREAD_0_NUMBER = 102,
+ VERTEX_THREAD_0_NUMBER = 103,
+ VERTEX_EVENT_NUMBER = 104,
+ PIXEL_EVENT_NUMBER = 105,
+ PTRBUFF_EF_PUSH = 106,
+ PTRBUFF_EF_POP_EVENT = 107,
+ PTRBUFF_EF_POP_NEW_VTX = 108,
+ PTRBUFF_EF_POP_DEALLOC = 109,
+ PTRBUFF_EF_POP_PVECTOR = 110,
+ PTRBUFF_EF_POP_PVECTOR_X = 111,
+ PTRBUFF_EF_POP_PVECTOR_VNZ = 112,
+ PTRBUFF_PB_DEALLOC = 113,
+ PTRBUFF_PI_STATE_PPB_POP = 114,
+ PTRBUFF_PI_RTR = 115,
+ PTRBUFF_PI_READ_EN = 116,
+ PTRBUFF_PI_BUFF_SWAP = 117,
+ PTRBUFF_SQ_FREE_BUFF = 118,
+ PTRBUFF_SQ_DEC = 119,
+ PTRBUFF_SC_VALID_CNTL_EVENT = 120,
+ PTRBUFF_SC_VALID_IJ_XFER = 121,
+ PTRBUFF_SC_NEW_VECTOR_1_Q = 122,
+ PTRBUFF_QUAL_NEW_VECTOR = 123,
+ PTRBUFF_QUAL_EVENT = 124,
+ PTRBUFF_END_BUFFER = 125,
+ PTRBUFF_FILL_QUAD = 126,
+ VERTS_WRITTEN_SPI = 127,
+ TP_FETCH_INSTR_EXEC = 128,
+ TP_FETCH_INSTR_REQ = 129,
+ TP_DATA_RETURN = 130,
+ SPI_WRITE_CYCLES_SP = 131,
+ SPI_WRITES_SP = 132,
+ SP_ALU_INSTR_EXEC = 133,
+ SP_CONST_ADDR_TO_SQ = 134,
+ SP_PRED_KILLS_TO_SQ = 135,
+ SP_EXPORT_CYCLES_TO_SX = 136,
+ SP_EXPORTS_TO_SX = 137,
+ SQ_CYCLES_ELAPSED = 138,
+ SQ_TCFS_OPT_ALLOC_EXEC = 139,
+ SQ_TCFS_NO_OPT_ALLOC = 140,
+ SQ_ALU0_NO_OPT_ALLOC = 141,
+ SQ_ALU1_NO_OPT_ALLOC = 142,
+ SQ_TCFS_ARB_XFC_CNT = 143,
+ SQ_ALU0_ARB_XFC_CNT = 144,
+ SQ_ALU1_ARB_XFC_CNT = 145,
+ SQ_TCFS_CFS_UPDATE_CNT = 146,
+ SQ_ALU0_CFS_UPDATE_CNT = 147,
+ SQ_ALU1_CFS_UPDATE_CNT = 148,
+ SQ_VTX_PUSH_THREAD_CNT = 149,
+ SQ_VTX_POP_THREAD_CNT = 150,
+ SQ_PIX_PUSH_THREAD_CNT = 151,
+ SQ_PIX_POP_THREAD_CNT = 152,
+ SQ_PIX_TOTAL = 153,
+ SQ_PIX_KILLED = 154,
+} SQ_PERFCNT_SELECT;
+#endif /*ENUMS_SQ_PERFCNT_SELECT_H*/
+
+#ifndef ENUMS_SX_PERFCNT_SELECT_H
+#define ENUMS_SX_PERFCNT_SELECT_H
+typedef enum SX_PERFCNT_SELECT {
+ SX_EXPORT_VECTORS = 0,
+ SX_DUMMY_QUADS = 1,
+ SX_ALPHA_FAIL = 2,
+ SX_RB_QUAD_BUSY = 3,
+ SX_RB_COLOR_BUSY = 4,
+ SX_RB_QUAD_STALL = 5,
+ SX_RB_COLOR_STALL = 6,
+} SX_PERFCNT_SELECT;
+#endif /*ENUMS_SX_PERFCNT_SELECT_H*/
+
+#ifndef ENUMS_Abs_modifier_H
+#define ENUMS_Abs_modifier_H
+typedef enum Abs_modifier {
+ NO_ABS_MOD = 0,
+ ABS_MOD = 1
+} Abs_modifier;
+#endif /*ENUMS_Abs_modifier_H*/
+
+#ifndef ENUMS_Exporting_H
+#define ENUMS_Exporting_H
+typedef enum Exporting {
+ NOT_EXPORTING = 0,
+ EXPORTING = 1
+} Exporting;
+#endif /*ENUMS_Exporting_H*/
+
+#ifndef ENUMS_ScalarOpcode_H
+#define ENUMS_ScalarOpcode_H
+typedef enum ScalarOpcode {
+ ADDs = 0,
+ ADD_PREVs = 1,
+ MULs = 2,
+ MUL_PREVs = 3,
+ MUL_PREV2s = 4,
+ MAXs = 5,
+ MINs = 6,
+ SETEs = 7,
+ SETGTs = 8,
+ SETGTEs = 9,
+ SETNEs = 10,
+ FRACs = 11,
+ TRUNCs = 12,
+ FLOORs = 13,
+ EXP_IEEE = 14,
+ LOG_CLAMP = 15,
+ LOG_IEEE = 16,
+ RECIP_CLAMP = 17,
+ RECIP_FF = 18,
+ RECIP_IEEE = 19,
+ RECIPSQ_CLAMP = 20,
+ RECIPSQ_FF = 21,
+ RECIPSQ_IEEE = 22,
+ MOVAs = 23,
+ MOVA_FLOORs = 24,
+ SUBs = 25,
+ SUB_PREVs = 26,
+ PRED_SETEs = 27,
+ PRED_SETNEs = 28,
+ PRED_SETGTs = 29,
+ PRED_SETGTEs = 30,
+ PRED_SET_INVs = 31,
+ PRED_SET_POPs = 32,
+ PRED_SET_CLRs = 33,
+ PRED_SET_RESTOREs = 34,
+ KILLEs = 35,
+ KILLGTs = 36,
+ KILLGTEs = 37,
+ KILLNEs = 38,
+ KILLONEs = 39,
+ SQRT_IEEE = 40,
+ MUL_CONST_0 = 42,
+ MUL_CONST_1 = 43,
+ ADD_CONST_0 = 44,
+ ADD_CONST_1 = 45,
+ SUB_CONST_0 = 46,
+ SUB_CONST_1 = 47,
+ SIN = 48,
+ COS = 49,
+ RETAIN_PREV = 50,
+} ScalarOpcode;
+#endif /*ENUMS_ScalarOpcode_H*/
+
+#ifndef ENUMS_SwizzleType_H
+#define ENUMS_SwizzleType_H
+typedef enum SwizzleType {
+ NO_SWIZZLE = 0,
+ SHIFT_RIGHT_1 = 1,
+ SHIFT_RIGHT_2 = 2,
+ SHIFT_RIGHT_3 = 3
+} SwizzleType;
+#endif /*ENUMS_SwizzleType_H*/
+
+#ifndef ENUMS_InputModifier_H
+#define ENUMS_InputModifier_H
+typedef enum InputModifier {
+ NIL = 0,
+ NEGATE = 1
+} InputModifier;
+#endif /*ENUMS_InputModifier_H*/
+
+#ifndef ENUMS_PredicateSelect_H
+#define ENUMS_PredicateSelect_H
+typedef enum PredicateSelect {
+ NO_PREDICATION = 0,
+ PREDICATE_QUAD = 1,
+ PREDICATED_2 = 2,
+ PREDICATED_3 = 3
+} PredicateSelect;
+#endif /*ENUMS_PredicateSelect_H*/
+
+#ifndef ENUMS_OperandSelect1_H
+#define ENUMS_OperandSelect1_H
+typedef enum OperandSelect1 {
+ ABSOLUTE_REG = 0,
+ RELATIVE_REG = 1
+} OperandSelect1;
+#endif /*ENUMS_OperandSelect1_H*/
+
+#ifndef ENUMS_VectorOpcode_H
+#define ENUMS_VectorOpcode_H
+typedef enum VectorOpcode {
+ ADDv = 0,
+ MULv = 1,
+ MAXv = 2,
+ MINv = 3,
+ SETEv = 4,
+ SETGTv = 5,
+ SETGTEv = 6,
+ SETNEv = 7,
+ FRACv = 8,
+ TRUNCv = 9,
+ FLOORv = 10,
+ MULADDv = 11,
+ CNDEv = 12,
+ CNDGTEv = 13,
+ CNDGTv = 14,
+ DOT4v = 15,
+ DOT3v = 16,
+ DOT2ADDv = 17,
+ CUBEv = 18,
+ MAX4v = 19,
+ PRED_SETE_PUSHv = 20,
+ PRED_SETNE_PUSHv = 21,
+ PRED_SETGT_PUSHv = 22,
+ PRED_SETGTE_PUSHv = 23,
+ KILLEv = 24,
+ KILLGTv = 25,
+ KILLGTEv = 26,
+ KILLNEv = 27,
+ DSTv = 28,
+ MOVAv = 29,
+} VectorOpcode;
+#endif /*ENUMS_VectorOpcode_H*/
+
+#ifndef ENUMS_OperandSelect0_H
+#define ENUMS_OperandSelect0_H
+typedef enum OperandSelect0 {
+ CONSTANT = 0,
+ NON_CONSTANT = 1
+} OperandSelect0;
+#endif /*ENUMS_OperandSelect0_H*/
+
+#ifndef ENUMS_Ressource_type_H
+#define ENUMS_Ressource_type_H
+typedef enum Ressource_type {
+ ALU = 0,
+ TEXTURE = 1
+} Ressource_type;
+#endif /*ENUMS_Ressource_type_H*/
+
+#ifndef ENUMS_Instruction_serial_H
+#define ENUMS_Instruction_serial_H
+typedef enum Instruction_serial {
+ NOT_SERIAL = 0,
+ SERIAL = 1
+} Instruction_serial;
+#endif /*ENUMS_Instruction_serial_H*/
+
+#ifndef ENUMS_VC_type_H
+#define ENUMS_VC_type_H
+typedef enum VC_type {
+ ALU_TP_REQUEST = 0,
+ VC_REQUEST = 1
+} VC_type;
+#endif /*ENUMS_VC_type_H*/
+
+#ifndef ENUMS_Addressing_H
+#define ENUMS_Addressing_H
+typedef enum Addressing {
+ RELATIVE_ADDR = 0,
+ ABSOLUTE_ADDR = 1
+} Addressing;
+#endif /*ENUMS_Addressing_H*/
+
+#ifndef ENUMS_CFOpcode_H
+#define ENUMS_CFOpcode_H
+typedef enum CFOpcode {
+ NOP = 0,
+ EXECUTE = 1,
+ EXECUTE_END = 2,
+ COND_EXECUTE = 3,
+ COND_EXECUTE_END = 4,
+ COND_PRED_EXECUTE = 5,
+ COND_PRED_EXECUTE_END = 6,
+ LOOP_START = 7,
+ LOOP_END = 8,
+ COND_CALL = 9,
+ RETURN = 10,
+ COND_JMP = 11,
+ ALLOCATE = 12,
+ COND_EXECUTE_PRED_CLEAN = 13,
+ COND_EXECUTE_PRED_CLEAN_END = 14,
+ MARK_VS_FETCH_DONE = 15
+} CFOpcode;
+#endif /*ENUMS_CFOpcode_H*/
+
+#ifndef ENUMS_Allocation_type_H
+#define ENUMS_Allocation_type_H
+typedef enum Allocation_type {
+ SQ_NO_ALLOC = 0,
+ SQ_POSITION = 1,
+ SQ_PARAMETER_PIXEL = 2,
+ SQ_MEMORY = 3
+} Allocation_type;
+#endif /*ENUMS_Allocation_type_H*/
+
+#ifndef ENUMS_TexInstOpcode_H
+#define ENUMS_TexInstOpcode_H
+typedef enum TexInstOpcode {
+ TEX_INST_FETCH = 1,
+ TEX_INST_RESERVED_1 = 2,
+ TEX_INST_RESERVED_2 = 3,
+ TEX_INST_RESERVED_3 = 4,
+ TEX_INST_GET_BORDER_COLOR_FRAC = 16,
+ TEX_INST_GET_COMP_TEX_LOD = 17,
+ TEX_INST_GET_GRADIENTS = 18,
+ TEX_INST_GET_WEIGHTS = 19,
+ TEX_INST_SET_TEX_LOD = 24,
+ TEX_INST_SET_GRADIENTS_H = 25,
+ TEX_INST_SET_GRADIENTS_V = 26,
+ TEX_INST_RESERVED_4 = 27,
+} TexInstOpcode;
+#endif /*ENUMS_TexInstOpcode_H*/
+
+#ifndef ENUMS_Addressmode_H
+#define ENUMS_Addressmode_H
+typedef enum Addressmode {
+ LOGICAL = 0,
+ LOOP_RELATIVE = 1
+} Addressmode;
+#endif /*ENUMS_Addressmode_H*/
+
+#ifndef ENUMS_TexCoordDenorm_H
+#define ENUMS_TexCoordDenorm_H
+typedef enum TexCoordDenorm {
+ TEX_COORD_NORMALIZED = 0,
+ TEX_COORD_UNNORMALIZED = 1
+} TexCoordDenorm;
+#endif /*ENUMS_TexCoordDenorm_H*/
+
+#ifndef ENUMS_SrcSel_H
+#define ENUMS_SrcSel_H
+typedef enum SrcSel {
+ SRC_SEL_X = 0,
+ SRC_SEL_Y = 1,
+ SRC_SEL_Z = 2,
+ SRC_SEL_W = 3
+} SrcSel;
+#endif /*ENUMS_SrcSel_H*/
+
+#ifndef ENUMS_DstSel_H
+#define ENUMS_DstSel_H
+typedef enum DstSel {
+ DST_SEL_X = 0,
+ DST_SEL_Y = 1,
+ DST_SEL_Z = 2,
+ DST_SEL_W = 3,
+ DST_SEL_0 = 4,
+ DST_SEL_1 = 5,
+ DST_SEL_RSVD = 6,
+ DST_SEL_MASK = 7
+} DstSel;
+#endif /*ENUMS_DstSel_H*/
+
+#ifndef ENUMS_MagFilter_H
+#define ENUMS_MagFilter_H
+typedef enum MagFilter {
+ MAG_FILTER_POINT = 0,
+ MAG_FILTER_LINEAR = 1,
+ MAG_FILTER_RESERVED_0 = 2,
+ MAG_FILTER_USE_FETCH_CONST = 3
+} MagFilter;
+#endif /*ENUMS_MagFilter_H*/
+
+#ifndef ENUMS_MinFilter_H
+#define ENUMS_MinFilter_H
+typedef enum MinFilter {
+ MIN_FILTER_POINT = 0,
+ MIN_FILTER_LINEAR = 1,
+ MIN_FILTER_RESERVED_0 = 2,
+ MIN_FILTER_USE_FETCH_CONST = 3
+} MinFilter;
+#endif /*ENUMS_MinFilter_H*/
+
+#ifndef ENUMS_MipFilter_H
+#define ENUMS_MipFilter_H
+typedef enum MipFilter {
+ MIP_FILTER_POINT = 0,
+ MIP_FILTER_LINEAR = 1,
+ MIP_FILTER_BASEMAP = 2,
+ MIP_FILTER_USE_FETCH_CONST = 3
+} MipFilter;
+#endif /*ENUMS_MipFilter_H*/
+
+#ifndef ENUMS_AnisoFilter_H
+#define ENUMS_AnisoFilter_H
+typedef enum AnisoFilter {
+ ANISO_FILTER_DISABLED = 0,
+ ANISO_FILTER_MAX_1_1 = 1,
+ ANISO_FILTER_MAX_2_1 = 2,
+ ANISO_FILTER_MAX_4_1 = 3,
+ ANISO_FILTER_MAX_8_1 = 4,
+ ANISO_FILTER_MAX_16_1 = 5,
+ ANISO_FILTER_USE_FETCH_CONST = 7
+} AnisoFilter;
+#endif /*ENUMS_AnisoFilter_H*/
+
+#ifndef ENUMS_ArbitraryFilter_H
+#define ENUMS_ArbitraryFilter_H
+typedef enum ArbitraryFilter {
+ ARBITRARY_FILTER_2X4_SYM = 0,
+ ARBITRARY_FILTER_2X4_ASYM = 1,
+ ARBITRARY_FILTER_4X2_SYM = 2,
+ ARBITRARY_FILTER_4X2_ASYM = 3,
+ ARBITRARY_FILTER_4X4_SYM = 4,
+ ARBITRARY_FILTER_4X4_ASYM = 5,
+ ARBITRARY_FILTER_USE_FETCH_CONST = 7
+} ArbitraryFilter;
+#endif /*ENUMS_ArbitraryFilter_H*/
+
+#ifndef ENUMS_VolMagFilter_H
+#define ENUMS_VolMagFilter_H
+typedef enum VolMagFilter {
+ VOL_MAG_FILTER_POINT = 0,
+ VOL_MAG_FILTER_LINEAR = 1,
+ VOL_MAG_FILTER_USE_FETCH_CONST = 3
+} VolMagFilter;
+#endif /*ENUMS_VolMagFilter_H*/
+
+#ifndef ENUMS_VolMinFilter_H
+#define ENUMS_VolMinFilter_H
+typedef enum VolMinFilter {
+ VOL_MIN_FILTER_POINT = 0,
+ VOL_MIN_FILTER_LINEAR = 1,
+ VOL_MIN_FILTER_USE_FETCH_CONST = 3
+} VolMinFilter;
+#endif /*ENUMS_VolMinFilter_H*/
+
+#ifndef ENUMS_PredSelect_H
+#define ENUMS_PredSelect_H
+typedef enum PredSelect {
+ NOT_PREDICATED = 0,
+ PREDICATED = 1
+} PredSelect;
+#endif /*ENUMS_PredSelect_H*/
+
+#ifndef ENUMS_SampleLocation_H
+#define ENUMS_SampleLocation_H
+typedef enum SampleLocation {
+ SAMPLE_CENTROID = 0,
+ SAMPLE_CENTER = 1
+} SampleLocation;
+#endif /*ENUMS_SampleLocation_H*/
+
+#ifndef ENUMS_VertexMode_H
+#define ENUMS_VertexMode_H
+typedef enum VertexMode {
+ POSITION_1_VECTOR = 0,
+ POSITION_2_VECTORS_UNUSED = 1,
+ POSITION_2_VECTORS_SPRITE = 2,
+ POSITION_2_VECTORS_EDGE = 3,
+ POSITION_2_VECTORS_KILL = 4,
+ POSITION_2_VECTORS_SPRITE_KILL = 5,
+ POSITION_2_VECTORS_EDGE_KILL = 6,
+ MULTIPASS = 7
+} VertexMode;
+#endif /*ENUMS_VertexMode_H*/
+
+#ifndef ENUMS_Sample_Cntl_H
+#define ENUMS_Sample_Cntl_H
+typedef enum Sample_Cntl {
+ CENTROIDS_ONLY = 0,
+ CENTERS_ONLY = 1,
+ CENTROIDS_AND_CENTERS = 2,
+ UNDEF = 3
+} Sample_Cntl;
+#endif /*ENUMS_Sample_Cntl_H*/
+
+/*******************************************************
+ * SX Enums
+ *******************************************************/
+/*******************************************************
+ * MH Enums
+ *******************************************************/
+#ifndef ENUMS_MhPerfEncode_H
+#define ENUMS_MhPerfEncode_H
+typedef enum MhPerfEncode {
+ CP_R0_REQUESTS = 0,
+ CP_R1_REQUESTS = 1,
+ CP_R2_REQUESTS = 2,
+ CP_R3_REQUESTS = 3,
+ CP_R4_REQUESTS = 4,
+ CP_TOTAL_READ_REQUESTS = 5,
+ CP_W_REQUESTS = 6,
+ CP_TOTAL_REQUESTS = 7,
+ CP_DATA_BYTES_WRITTEN = 8,
+ CP_WRITE_CLEAN_RESPONSES = 9,
+ CP_R0_READ_BURSTS_RECEIVED = 10,
+ CP_R1_READ_BURSTS_RECEIVED = 11,
+ CP_R2_READ_BURSTS_RECEIVED = 12,
+ CP_R3_READ_BURSTS_RECEIVED = 13,
+ CP_R4_READ_BURSTS_RECEIVED = 14,
+ CP_TOTAL_READ_BURSTS_RECEIVED = 15,
+ CP_R0_DATA_BEATS_READ = 16,
+ CP_R1_DATA_BEATS_READ = 17,
+ CP_R2_DATA_BEATS_READ = 18,
+ CP_R3_DATA_BEATS_READ = 19,
+ CP_R4_DATA_BEATS_READ = 20,
+ CP_TOTAL_DATA_BEATS_READ = 21,
+ VGT_R0_REQUESTS = 22,
+ VGT_R1_REQUESTS = 23,
+ VGT_TOTAL_REQUESTS = 24,
+ VGT_R0_READ_BURSTS_RECEIVED = 25,
+ VGT_R1_READ_BURSTS_RECEIVED = 26,
+ VGT_TOTAL_READ_BURSTS_RECEIVED = 27,
+ VGT_R0_DATA_BEATS_READ = 28,
+ VGT_R1_DATA_BEATS_READ = 29,
+ VGT_TOTAL_DATA_BEATS_READ = 30,
+ TC_REQUESTS = 31,
+ TC_ROQ_REQUESTS = 32,
+ TC_INFO_SENT = 33,
+ TC_READ_BURSTS_RECEIVED = 34,
+ TC_DATA_BEATS_READ = 35,
+ TCD_BURSTS_READ = 36,
+ RB_REQUESTS = 37,
+ RB_DATA_BYTES_WRITTEN = 38,
+ RB_WRITE_CLEAN_RESPONSES = 39,
+ AXI_READ_REQUESTS_ID_0 = 40,
+ AXI_READ_REQUESTS_ID_1 = 41,
+ AXI_READ_REQUESTS_ID_2 = 42,
+ AXI_READ_REQUESTS_ID_3 = 43,
+ AXI_READ_REQUESTS_ID_4 = 44,
+ AXI_READ_REQUESTS_ID_5 = 45,
+ AXI_READ_REQUESTS_ID_6 = 46,
+ AXI_READ_REQUESTS_ID_7 = 47,
+ AXI_TOTAL_READ_REQUESTS = 48,
+ AXI_WRITE_REQUESTS_ID_0 = 49,
+ AXI_WRITE_REQUESTS_ID_1 = 50,
+ AXI_WRITE_REQUESTS_ID_2 = 51,
+ AXI_WRITE_REQUESTS_ID_3 = 52,
+ AXI_WRITE_REQUESTS_ID_4 = 53,
+ AXI_WRITE_REQUESTS_ID_5 = 54,
+ AXI_WRITE_REQUESTS_ID_6 = 55,
+ AXI_WRITE_REQUESTS_ID_7 = 56,
+ AXI_TOTAL_WRITE_REQUESTS = 57,
+ AXI_TOTAL_REQUESTS_ID_0 = 58,
+ AXI_TOTAL_REQUESTS_ID_1 = 59,
+ AXI_TOTAL_REQUESTS_ID_2 = 60,
+ AXI_TOTAL_REQUESTS_ID_3 = 61,
+ AXI_TOTAL_REQUESTS_ID_4 = 62,
+ AXI_TOTAL_REQUESTS_ID_5 = 63,
+ AXI_TOTAL_REQUESTS_ID_6 = 64,
+ AXI_TOTAL_REQUESTS_ID_7 = 65,
+ AXI_TOTAL_REQUESTS = 66,
+ AXI_READ_CHANNEL_BURSTS_ID_0 = 67,
+ AXI_READ_CHANNEL_BURSTS_ID_1 = 68,
+ AXI_READ_CHANNEL_BURSTS_ID_2 = 69,
+ AXI_READ_CHANNEL_BURSTS_ID_3 = 70,
+ AXI_READ_CHANNEL_BURSTS_ID_4 = 71,
+ AXI_READ_CHANNEL_BURSTS_ID_5 = 72,
+ AXI_READ_CHANNEL_BURSTS_ID_6 = 73,
+ AXI_READ_CHANNEL_BURSTS_ID_7 = 74,
+ AXI_READ_CHANNEL_TOTAL_BURSTS = 75,
+ AXI_READ_CHANNEL_DATA_BEATS_READ_ID_0 = 76,
+ AXI_READ_CHANNEL_DATA_BEATS_READ_ID_1 = 77,
+ AXI_READ_CHANNEL_DATA_BEATS_READ_ID_2 = 78,
+ AXI_READ_CHANNEL_DATA_BEATS_READ_ID_3 = 79,
+ AXI_READ_CHANNEL_DATA_BEATS_READ_ID_4 = 80,
+ AXI_READ_CHANNEL_DATA_BEATS_READ_ID_5 = 81,
+ AXI_READ_CHANNEL_DATA_BEATS_READ_ID_6 = 82,
+ AXI_READ_CHANNEL_DATA_BEATS_READ_ID_7 = 83,
+ AXI_READ_CHANNEL_TOTAL_DATA_BEATS_READ = 84,
+ AXI_WRITE_CHANNEL_BURSTS_ID_0 = 85,
+ AXI_WRITE_CHANNEL_BURSTS_ID_1 = 86,
+ AXI_WRITE_CHANNEL_BURSTS_ID_2 = 87,
+ AXI_WRITE_CHANNEL_BURSTS_ID_3 = 88,
+ AXI_WRITE_CHANNEL_BURSTS_ID_4 = 89,
+ AXI_WRITE_CHANNEL_BURSTS_ID_5 = 90,
+ AXI_WRITE_CHANNEL_BURSTS_ID_6 = 91,
+ AXI_WRITE_CHANNEL_BURSTS_ID_7 = 92,
+ AXI_WRITE_CHANNEL_TOTAL_BURSTS = 93,
+ AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_0 = 94,
+ AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_1 = 95,
+ AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_2 = 96,
+ AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_3 = 97,
+ AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_4 = 98,
+ AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_5 = 99,
+ AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_6 = 100,
+ AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_7 = 101,
+ AXI_WRITE_CHANNEL_TOTAL_DATA_BYTES_WRITTEN = 102,
+ AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_0 = 103,
+ AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_1 = 104,
+ AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_2 = 105,
+ AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_3 = 106,
+ AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_4 = 107,
+ AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_5 = 108,
+ AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_6 = 109,
+ AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_7 = 110,
+ AXI_WRITE_RESPONSE_CHANNEL_TOTAL_RESPONSES = 111,
+ TOTAL_MMU_MISSES = 112,
+ MMU_READ_MISSES = 113,
+ MMU_WRITE_MISSES = 114,
+ TOTAL_MMU_HITS = 115,
+ MMU_READ_HITS = 116,
+ MMU_WRITE_HITS = 117,
+ SPLIT_MODE_TC_HITS = 118,
+ SPLIT_MODE_TC_MISSES = 119,
+ SPLIT_MODE_NON_TC_HITS = 120,
+ SPLIT_MODE_NON_TC_MISSES = 121,
+ STALL_AWAITING_TLB_MISS_FETCH = 122,
+ MMU_TLB_MISS_READ_BURSTS_RECEIVED = 123,
+ MMU_TLB_MISS_DATA_BEATS_READ = 124,
+ CP_CYCLES_HELD_OFF = 125,
+ VGT_CYCLES_HELD_OFF = 126,
+ TC_CYCLES_HELD_OFF = 127,
+ TC_ROQ_CYCLES_HELD_OFF = 128,
+ TC_CYCLES_HELD_OFF_TCD_FULL = 129,
+ RB_CYCLES_HELD_OFF = 130,
+ TOTAL_CYCLES_ANY_CLNT_HELD_OFF = 131,
+ TLB_MISS_CYCLES_HELD_OFF = 132,
+ AXI_READ_REQUEST_HELD_OFF = 133,
+ AXI_WRITE_REQUEST_HELD_OFF = 134,
+ AXI_REQUEST_HELD_OFF = 135,
+ AXI_REQUEST_HELD_OFF_INFLIGHT_LIMIT = 136,
+ AXI_WRITE_DATA_HELD_OFF = 137,
+ CP_SAME_PAGE_BANK_REQUESTS = 138,
+ VGT_SAME_PAGE_BANK_REQUESTS = 139,
+ TC_SAME_PAGE_BANK_REQUESTS = 140,
+ TC_ARB_HOLD_SAME_PAGE_BANK_REQUESTS = 141,
+ RB_SAME_PAGE_BANK_REQUESTS = 142,
+ TOTAL_SAME_PAGE_BANK_REQUESTS = 143,
+ CP_SAME_PAGE_BANK_REQUESTS_KILLED_FAIRNESS_LIMIT = 144,
+ VGT_SAME_PAGE_BANK_REQUESTS_KILLED_FAIRNESS_LIMIT = 145,
+ TC_SAME_PAGE_BANK_REQUESTS_KILLED_FAIRNESS_LIMIT = 146,
+ RB_SAME_PAGE_BANK_REQUESTS_KILLED_FAIRNESS_LIMIT = 147,
+ TOTAL_SAME_PAGE_BANK_KILLED_FAIRNESS_LIMIT = 148,
+ TOTAL_MH_READ_REQUESTS = 149,
+ TOTAL_MH_WRITE_REQUESTS = 150,
+ TOTAL_MH_REQUESTS = 151,
+ MH_BUSY = 152,
+ CP_NTH_ACCESS_SAME_PAGE_BANK_SEQUENCE = 153,
+ VGT_NTH_ACCESS_SAME_PAGE_BANK_SEQUENCE = 154,
+ TC_NTH_ACCESS_SAME_PAGE_BANK_SEQUENCE = 155,
+ RB_NTH_ACCESS_SAME_PAGE_BANK_SEQUENCE = 156,
+ TC_ROQ_N_VALID_ENTRIES = 157,
+ ARQ_N_ENTRIES = 158,
+ WDB_N_ENTRIES = 159,
+ MH_READ_LATENCY_OUTST_REQ_SUM = 160,
+ MC_READ_LATENCY_OUTST_REQ_SUM = 161,
+ MC_TOTAL_READ_REQUESTS = 162,
+ ELAPSED_CYCLES_MH_GATED_CLK = 163,
+} MhPerfEncode;
+#endif /*ENUMS_MhPerfEncode_H*/
+
+#ifndef ENUMS_MmuClntBeh_H
+#define ENUMS_MmuClntBeh_H
+typedef enum MmuClntBeh {
+ BEH_NEVR = 0,
+ BEH_TRAN_RNG = 1,
+ BEH_TRAN_FLT = 2,
+} MmuClntBeh;
+#endif /*ENUMS_MmuClntBeh_H*/
+
+/*******************************************************
+ * RBBM Enums
+ *******************************************************/
+#ifndef ENUMS_RBBM_PERFCOUNT1_SEL_H
+#define ENUMS_RBBM_PERFCOUNT1_SEL_H
+typedef enum RBBM_PERFCOUNT1_SEL {
+ RBBM1_COUNT = 0,
+ RBBM1_NRT_BUSY = 1,
+ RBBM1_RB_BUSY = 2,
+ RBBM1_SQ_CNTX0_BUSY = 3,
+ RBBM1_SQ_CNTX17_BUSY = 4,
+ RBBM1_VGT_BUSY = 5,
+ RBBM1_VGT_NODMA_BUSY = 6,
+ RBBM1_PA_BUSY = 7,
+ RBBM1_SC_CNTX_BUSY = 8,
+ RBBM1_TPC_BUSY = 9,
+ RBBM1_TC_BUSY = 10,
+ RBBM1_SX_BUSY = 11,
+ RBBM1_CP_COHER_BUSY = 12,
+ RBBM1_CP_NRT_BUSY = 13,
+ RBBM1_GFX_IDLE_STALL = 14,
+ RBBM1_INTERRUPT = 15,
+} RBBM_PERFCOUNT1_SEL;
+#endif /*ENUMS_RBBM_PERFCOUNT1_SEL_H*/
+
+/*******************************************************
+ * CP Enums
+ *******************************************************/
+#ifndef ENUMS_CP_PERFCOUNT_SEL_H
+#define ENUMS_CP_PERFCOUNT_SEL_H
+typedef enum CP_PERFCOUNT_SEL {
+ ALWAYS_COUNT = 0,
+ TRANS_FIFO_FULL = 1,
+ TRANS_FIFO_AF = 2,
+ RCIU_PFPTRANS_WAIT = 3,
+ Reserved_04 = 4,
+ Reserved_05 = 5,
+ RCIU_NRTTRANS_WAIT = 6,
+ Reserved_07 = 7,
+ CSF_NRT_READ_WAIT = 8,
+ CSF_I1_FIFO_FULL = 9,
+ CSF_I2_FIFO_FULL = 10,
+ CSF_ST_FIFO_FULL = 11,
+ Reserved_12 = 12,
+ CSF_RING_ROQ_FULL = 13,
+ CSF_I1_ROQ_FULL = 14,
+ CSF_I2_ROQ_FULL = 15,
+ CSF_ST_ROQ_FULL = 16,
+ Reserved_17 = 17,
+ MIU_TAG_MEM_FULL = 18,
+ MIU_WRITECLEAN = 19,
+ Reserved_20 = 20,
+ Reserved_21 = 21,
+ MIU_NRT_WRITE_STALLED = 22,
+ MIU_NRT_READ_STALLED = 23,
+ ME_WRITE_CONFIRM_FIFO_FULL = 24,
+ ME_VS_DEALLOC_FIFO_FULL = 25,
+ ME_PS_DEALLOC_FIFO_FULL = 26,
+ ME_REGS_VS_EVENT_FIFO_FULL = 27,
+ ME_REGS_PS_EVENT_FIFO_FULL = 28,
+ ME_REGS_CF_EVENT_FIFO_FULL = 29,
+ ME_MICRO_RB_STARVED = 30,
+ ME_MICRO_I1_STARVED = 31,
+ ME_MICRO_I2_STARVED = 32,
+ ME_MICRO_ST_STARVED = 33,
+ Reserved_34 = 34,
+ Reserved_35 = 35,
+ Reserved_36 = 36,
+ Reserved_37 = 37,
+ Reserved_38 = 38,
+ Reserved_39 = 39,
+ RCIU_RBBM_DWORD_SENT = 40,
+ ME_BUSY_CLOCKS = 41,
+ ME_WAIT_CONTEXT_AVAIL = 42,
+ PFP_TYPE0_PACKET = 43,
+ PFP_TYPE3_PACKET = 44,
+ CSF_RB_WPTR_NEQ_RPTR = 45,
+ CSF_I1_SIZE_NEQ_ZERO = 46,
+ CSF_I2_SIZE_NEQ_ZERO = 47,
+ CSF_RBI1I2_FETCHING = 48,
+ Reserved_49 = 49,
+ Reserved_50 = 50,
+ Reserved_51 = 51,
+ Reserved_52 = 52,
+ Reserved_53 = 53,
+ Reserved_54 = 54,
+ Reserved_55 = 55,
+ Reserved_56 = 56,
+ Reserved_57 = 57,
+ Reserved_58 = 58,
+ Reserved_59 = 59,
+ Reserved_60 = 60,
+ Reserved_61 = 61,
+ Reserved_62 = 62,
+ Reserved_63 = 63
+} CP_PERFCOUNT_SEL;
+#endif /*ENUMS_CP_PERFCOUNT_SEL_H*/
+
+/*******************************************************
+ * SC Enums
+ *******************************************************/
+/*******************************************************
+ * BC Enums
+ *******************************************************/
+#ifndef ENUMS_ColorformatX_H
+#define ENUMS_ColorformatX_H
+typedef enum ColorformatX {
+ COLORX_4_4_4_4 = 0,
+ COLORX_1_5_5_5 = 1,
+ COLORX_5_6_5 = 2,
+ COLORX_8 = 3,
+ COLORX_8_8 = 4,
+ COLORX_8_8_8_8 = 5,
+ COLORX_S8_8_8_8 = 6,
+ COLORX_16_FLOAT = 7,
+ COLORX_16_16_FLOAT = 8,
+ COLORX_16_16_16_16_FLOAT = 9,
+ COLORX_32_FLOAT = 10,
+ COLORX_32_32_FLOAT = 11,
+ COLORX_32_32_32_32_FLOAT = 12,
+ COLORX_2_3_3 = 13,
+ COLORX_8_8_8 = 14,
+} ColorformatX;
+#endif /*ENUMS_ColorformatX_H*/
+
+#ifndef ENUMS_DepthformatX_H
+#define ENUMS_DepthformatX_H
+typedef enum DepthformatX {
+ DEPTHX_16 = 0,
+ DEPTHX_24_8 = 1
+} DepthformatX;
+#endif /*ENUMS_DepthformatX_H*/
+
+#ifndef ENUMS_CompareFrag_H
+#define ENUMS_CompareFrag_H
+typedef enum CompareFrag {
+ FRAG_NEVER = 0,
+ FRAG_LESS = 1,
+ FRAG_EQUAL = 2,
+ FRAG_LEQUAL = 3,
+ FRAG_GREATER = 4,
+ FRAG_NOTEQUAL = 5,
+ FRAG_GEQUAL = 6,
+ FRAG_ALWAYS = 7
+} CompareFrag;
+#endif /*ENUMS_CompareFrag_H*/
+
+#ifndef ENUMS_CompareRef_H
+#define ENUMS_CompareRef_H
+typedef enum CompareRef {
+ REF_NEVER = 0,
+ REF_LESS = 1,
+ REF_EQUAL = 2,
+ REF_LEQUAL = 3,
+ REF_GREATER = 4,
+ REF_NOTEQUAL = 5,
+ REF_GEQUAL = 6,
+ REF_ALWAYS = 7
+} CompareRef;
+#endif /*ENUMS_CompareRef_H*/
+
+#ifndef ENUMS_StencilOp_H
+#define ENUMS_StencilOp_H
+typedef enum StencilOp {
+ STENCIL_KEEP = 0,
+ STENCIL_ZERO = 1,
+ STENCIL_REPLACE = 2,
+ STENCIL_INCR_CLAMP = 3,
+ STENCIL_DECR_CLAMP = 4,
+ STENCIL_INVERT = 5,
+ STENCIL_INCR_WRAP = 6,
+ STENCIL_DECR_WRAP = 7
+} StencilOp;
+#endif /*ENUMS_StencilOp_H*/
+
+#ifndef ENUMS_BlendOpX_H
+#define ENUMS_BlendOpX_H
+typedef enum BlendOpX {
+ BLENDX_ZERO = 0,
+ BLENDX_ONE = 1,
+ BLENDX_SRC_COLOR = 4,
+ BLENDX_ONE_MINUS_SRC_COLOR = 5,
+ BLENDX_SRC_ALPHA = 6,
+ BLENDX_ONE_MINUS_SRC_ALPHA = 7,
+ BLENDX_DST_COLOR = 8,
+ BLENDX_ONE_MINUS_DST_COLOR = 9,
+ BLENDX_DST_ALPHA = 10,
+ BLENDX_ONE_MINUS_DST_ALPHA = 11,
+ BLENDX_CONSTANT_COLOR = 12,
+ BLENDX_ONE_MINUS_CONSTANT_COLOR = 13,
+ BLENDX_CONSTANT_ALPHA = 14,
+ BLENDX_ONE_MINUS_CONSTANT_ALPHA = 15,
+ BLENDX_SRC_ALPHA_SATURATE = 16,
+} BlendOpX;
+#endif /*ENUMS_BlendOpX_H*/
+
+#ifndef ENUMS_CombFuncX_H
+#define ENUMS_CombFuncX_H
+typedef enum CombFuncX {
+ COMB_DST_PLUS_SRC = 0,
+ COMB_SRC_MINUS_DST = 1,
+ COMB_MIN_DST_SRC = 2,
+ COMB_MAX_DST_SRC = 3,
+ COMB_DST_MINUS_SRC = 4,
+ COMB_DST_PLUS_SRC_BIAS = 5,
+} CombFuncX;
+#endif /*ENUMS_CombFuncX_H*/
+
+#ifndef ENUMS_DitherModeX_H
+#define ENUMS_DitherModeX_H
+typedef enum DitherModeX {
+ DITHER_DISABLE = 0,
+ DITHER_ALWAYS = 1,
+ DITHER_IF_ALPHA_OFF = 2,
+} DitherModeX;
+#endif /*ENUMS_DitherModeX_H*/
+
+#ifndef ENUMS_DitherTypeX_H
+#define ENUMS_DitherTypeX_H
+typedef enum DitherTypeX {
+ DITHER_PIXEL = 0,
+ DITHER_SUBPIXEL = 1,
+} DitherTypeX;
+#endif /*ENUMS_DitherTypeX_H*/
+
+#ifndef ENUMS_EdramMode_H
+#define ENUMS_EdramMode_H
+typedef enum EdramMode {
+ EDRAM_NOP = 0,
+ COLOR_DEPTH = 4,
+ DEPTH_ONLY = 5,
+ EDRAM_COPY = 6,
+} EdramMode;
+#endif /*ENUMS_EdramMode_H*/
+
+#ifndef ENUMS_SurfaceEndian_H
+#define ENUMS_SurfaceEndian_H
+typedef enum SurfaceEndian {
+ ENDIAN_NONE = 0,
+ ENDIAN_8IN16 = 1,
+ ENDIAN_8IN32 = 2,
+ ENDIAN_16IN32 = 3,
+ ENDIAN_8IN64 = 4,
+ ENDIAN_8IN128 = 5,
+} SurfaceEndian;
+#endif /*ENUMS_SurfaceEndian_H*/
+
+#ifndef ENUMS_EdramSizeX_H
+#define ENUMS_EdramSizeX_H
+typedef enum EdramSizeX {
+ EDRAMSIZE_16KB = 0,
+ EDRAMSIZE_32KB = 1,
+ EDRAMSIZE_64KB = 2,
+ EDRAMSIZE_128KB = 3,
+ EDRAMSIZE_256KB = 4,
+ EDRAMSIZE_512KB = 5,
+ EDRAMSIZE_1MB = 6,
+ EDRAMSIZE_2MB = 7,
+ EDRAMSIZE_4MB = 8,
+ EDRAMSIZE_8MB = 9,
+ EDRAMSIZE_16MB = 10,
+} EdramSizeX;
+#endif /*ENUMS_EdramSizeX_H*/
+
+#ifndef ENUMS_RB_PERFCNT_SELECT_H
+#define ENUMS_RB_PERFCNT_SELECT_H
+typedef enum RB_PERFCNT_SELECT {
+ RBPERF_CNTX_BUSY = 0,
+ RBPERF_CNTX_BUSY_MAX = 1,
+ RBPERF_SX_QUAD_STARVED = 2,
+ RBPERF_SX_QUAD_STARVED_MAX = 3,
+ RBPERF_GA_GC_CH0_SYS_REQ = 4,
+ RBPERF_GA_GC_CH0_SYS_REQ_MAX = 5,
+ RBPERF_GA_GC_CH1_SYS_REQ = 6,
+ RBPERF_GA_GC_CH1_SYS_REQ_MAX = 7,
+ RBPERF_MH_STARVED = 8,
+ RBPERF_MH_STARVED_MAX = 9,
+ RBPERF_AZ_BC_COLOR_BUSY = 10,
+ RBPERF_AZ_BC_COLOR_BUSY_MAX = 11,
+ RBPERF_AZ_BC_Z_BUSY = 12,
+ RBPERF_AZ_BC_Z_BUSY_MAX = 13,
+ RBPERF_RB_SC_TILE_RTR_N = 14,
+ RBPERF_RB_SC_TILE_RTR_N_MAX = 15,
+ RBPERF_RB_SC_SAMP_RTR_N = 16,
+ RBPERF_RB_SC_SAMP_RTR_N_MAX = 17,
+ RBPERF_RB_SX_QUAD_RTR_N = 18,
+ RBPERF_RB_SX_QUAD_RTR_N_MAX = 19,
+ RBPERF_RB_SX_COLOR_RTR_N = 20,
+ RBPERF_RB_SX_COLOR_RTR_N_MAX = 21,
+ RBPERF_RB_SC_SAMP_LZ_BUSY = 22,
+ RBPERF_RB_SC_SAMP_LZ_BUSY_MAX = 23,
+ RBPERF_ZXP_STALL = 24,
+ RBPERF_ZXP_STALL_MAX = 25,
+ RBPERF_EVENT_PENDING = 26,
+ RBPERF_EVENT_PENDING_MAX = 27,
+ RBPERF_RB_MH_VALID = 28,
+ RBPERF_RB_MH_VALID_MAX = 29,
+ RBPERF_SX_RB_QUAD_SEND = 30,
+ RBPERF_SX_RB_COLOR_SEND = 31,
+ RBPERF_SC_RB_TILE_SEND = 32,
+ RBPERF_SC_RB_SAMPLE_SEND = 33,
+ RBPERF_SX_RB_MEM_EXPORT = 34,
+ RBPERF_SX_RB_QUAD_EVENT = 35,
+ RBPERF_SC_RB_TILE_EVENT_FILTERED = 36,
+ RBPERF_SC_RB_TILE_EVENT_ALL = 37,
+ RBPERF_RB_SC_EZ_SEND = 38,
+ RBPERF_RB_SX_INDEX_SEND = 39,
+ RBPERF_GMEM_INTFO_RD = 40,
+ RBPERF_GMEM_INTF1_RD = 41,
+ RBPERF_GMEM_INTFO_WR = 42,
+ RBPERF_GMEM_INTF1_WR = 43,
+ RBPERF_RB_CP_CONTEXT_DONE = 44,
+ RBPERF_RB_CP_CACHE_FLUSH = 45,
+ RBPERF_ZPASS_DONE = 46,
+ RBPERF_ZCMD_VALID = 47,
+ RBPERF_CCMD_VALID = 48,
+ RBPERF_ACCUM_GRANT = 49,
+ RBPERF_ACCUM_C0_GRANT = 50,
+ RBPERF_ACCUM_C1_GRANT = 51,
+ RBPERF_ACCUM_FULL_BE_WR = 52,
+ RBPERF_ACCUM_REQUEST_NO_GRANT = 53,
+ RBPERF_ACCUM_TIMEOUT_PULSE = 54,
+ RBPERF_ACCUM_LIN_TIMEOUT_PULSE = 55,
+ RBPERF_ACCUM_CAM_HIT_FLUSHING = 56,
+} RB_PERFCNT_SELECT;
+#endif /*ENUMS_RB_PERFCNT_SELECT_H*/
+
+#ifndef ENUMS_DepthFormat_H
+#define ENUMS_DepthFormat_H
+typedef enum DepthFormat {
+ DEPTH_24_8 = 22,
+ DEPTH_24_8_FLOAT = 23,
+ DEPTH_16 = 24,
+} DepthFormat;
+#endif /*ENUMS_DepthFormat_H*/
+
+#ifndef ENUMS_SurfaceSwap_H
+#define ENUMS_SurfaceSwap_H
+typedef enum SurfaceSwap {
+ SWAP_LOWRED = 0,
+ SWAP_LOWBLUE = 1
+} SurfaceSwap;
+#endif /*ENUMS_SurfaceSwap_H*/
+
+#ifndef ENUMS_DepthArray_H
+#define ENUMS_DepthArray_H
+typedef enum DepthArray {
+ ARRAY_2D_ALT_DEPTH = 0,
+ ARRAY_2D_DEPTH = 1,
+} DepthArray;
+#endif /*ENUMS_DepthArray_H*/
+
+#ifndef ENUMS_ColorArray_H
+#define ENUMS_ColorArray_H
+typedef enum ColorArray {
+ ARRAY_2D_ALT_COLOR = 0,
+ ARRAY_2D_COLOR = 1,
+ ARRAY_3D_SLICE_COLOR = 3
+} ColorArray;
+#endif /*ENUMS_ColorArray_H*/
+
+#ifndef ENUMS_ColorFormat_H
+#define ENUMS_ColorFormat_H
+typedef enum ColorFormat {
+ COLOR_8 = 2,
+ COLOR_1_5_5_5 = 3,
+ COLOR_5_6_5 = 4,
+ COLOR_6_5_5 = 5,
+ COLOR_8_8_8_8 = 6,
+ COLOR_2_10_10_10 = 7,
+ COLOR_8_A = 8,
+ COLOR_8_B = 9,
+ COLOR_8_8 = 10,
+ COLOR_8_8_8 = 11,
+ COLOR_8_8_8_8_A = 14,
+ COLOR_4_4_4_4 = 15,
+ COLOR_10_11_11 = 16,
+ COLOR_11_11_10 = 17,
+ COLOR_16 = 24,
+ COLOR_16_16 = 25,
+ COLOR_16_16_16_16 = 26,
+ COLOR_16_FLOAT = 30,
+ COLOR_16_16_FLOAT = 31,
+ COLOR_16_16_16_16_FLOAT = 32,
+ COLOR_32_FLOAT = 36,
+ COLOR_32_32_FLOAT = 37,
+ COLOR_32_32_32_32_FLOAT = 38,
+ COLOR_2_3_3 = 39,
+} ColorFormat;
+#endif /*ENUMS_ColorFormat_H*/
+
+#ifndef ENUMS_SurfaceNumber_H
+#define ENUMS_SurfaceNumber_H
+typedef enum SurfaceNumber {
+ NUMBER_UREPEAT = 0,
+ NUMBER_SREPEAT = 1,
+ NUMBER_UINTEGER = 2,
+ NUMBER_SINTEGER = 3,
+ NUMBER_GAMMA = 4,
+ NUMBER_FIXED = 5,
+ NUMBER_FLOAT = 7
+} SurfaceNumber;
+#endif /*ENUMS_SurfaceNumber_H*/
+
+#ifndef ENUMS_SurfaceFormat_H
+#define ENUMS_SurfaceFormat_H
+typedef enum SurfaceFormat {
+ FMT_1_REVERSE = 0,
+ FMT_1 = 1,
+ FMT_8 = 2,
+ FMT_1_5_5_5 = 3,
+ FMT_5_6_5 = 4,
+ FMT_6_5_5 = 5,
+ FMT_8_8_8_8 = 6,
+ FMT_2_10_10_10 = 7,
+ FMT_8_A = 8,
+ FMT_8_B = 9,
+ FMT_8_8 = 10,
+ FMT_Cr_Y1_Cb_Y0 = 11,
+ FMT_Y1_Cr_Y0_Cb = 12,
+ FMT_5_5_5_1 = 13,
+ FMT_8_8_8_8_A = 14,
+ FMT_4_4_4_4 = 15,
+ FMT_8_8_8 = 16,
+ FMT_DXT1 = 18,
+ FMT_DXT2_3 = 19,
+ FMT_DXT4_5 = 20,
+ FMT_10_10_10_2 = 21,
+ FMT_24_8 = 22,
+ FMT_16 = 24,
+ FMT_16_16 = 25,
+ FMT_16_16_16_16 = 26,
+ FMT_16_EXPAND = 27,
+ FMT_16_16_EXPAND = 28,
+ FMT_16_16_16_16_EXPAND = 29,
+ FMT_16_FLOAT = 30,
+ FMT_16_16_FLOAT = 31,
+ FMT_16_16_16_16_FLOAT = 32,
+ FMT_32 = 33,
+ FMT_32_32 = 34,
+ FMT_32_32_32_32 = 35,
+ FMT_32_FLOAT = 36,
+ FMT_32_32_FLOAT = 37,
+ FMT_32_32_32_32_FLOAT = 38,
+ FMT_ATI_TC_RGB = 39,
+ FMT_ATI_TC_RGBA = 40,
+ FMT_ATI_TC_555_565_RGB = 41,
+ FMT_ATI_TC_555_565_RGBA = 42,
+ FMT_ATI_TC_RGBA_INTERP = 43,
+ FMT_ATI_TC_555_565_RGBA_INTERP = 44,
+ FMT_ETC1_RGBA_INTERP = 46,
+ FMT_ETC1_RGB = 47,
+ FMT_ETC1_RGBA = 48,
+ FMT_DXN = 49,
+ FMT_2_3_3 = 51,
+ FMT_2_10_10_10_AS_16_16_16_16 = 54,
+ FMT_10_10_10_2_AS_16_16_16_16 = 55,
+ FMT_32_32_32_FLOAT = 57,
+ FMT_DXT3A = 58,
+ FMT_DXT5A = 59,
+ FMT_CTX1 = 60,
+} SurfaceFormat;
+#endif /*ENUMS_SurfaceFormat_H*/
+
+#ifndef ENUMS_SurfaceTiling_H
+#define ENUMS_SurfaceTiling_H
+typedef enum SurfaceTiling {
+ ARRAY_LINEAR = 0,
+ ARRAY_TILED = 1
+} SurfaceTiling;
+#endif /*ENUMS_SurfaceTiling_H*/
+
+#ifndef ENUMS_SurfaceArray_H
+#define ENUMS_SurfaceArray_H
+typedef enum SurfaceArray {
+ ARRAY_1D = 0,
+ ARRAY_2D = 1,
+ ARRAY_3D = 2,
+ ARRAY_3D_SLICE = 3
+} SurfaceArray;
+#endif /*ENUMS_SurfaceArray_H*/
+
+#ifndef ENUMS_SurfaceNumberX_H
+#define ENUMS_SurfaceNumberX_H
+typedef enum SurfaceNumberX {
+ NUMBERX_UREPEAT = 0,
+ NUMBERX_SREPEAT = 1,
+ NUMBERX_UINTEGER = 2,
+ NUMBERX_SINTEGER = 3,
+ NUMBERX_FLOAT = 7
+} SurfaceNumberX;
+#endif /*ENUMS_SurfaceNumberX_H*/
+
+#ifndef ENUMS_ColorArrayX_H
+#define ENUMS_ColorArrayX_H
+typedef enum ColorArrayX {
+ ARRAYX_2D_COLOR = 0,
+ ARRAYX_3D_SLICE_COLOR = 1,
+} ColorArrayX;
+#endif /*ENUMS_ColorArrayX_H*/
+
+#endif /*_yamato_ENUM_HEADER*/
+
diff --git a/drivers/mxc/amd-gpu/include/reg/yamato/14/yamato_genenum.h b/drivers/mxc/amd-gpu/include/reg/yamato/14/yamato_genenum.h
new file mode 100644
index 000000000000..f2f4dec63daa
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/reg/yamato/14/yamato_genenum.h
@@ -0,0 +1,1674 @@
+/* Copyright (c) 2002,2007-2009, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+START_ENUMTYPE(SU_PERFCNT_SELECT)
+ GENERATE_ENUM(PERF_PAPC_PASX_REQ, 0)
+ GENERATE_ENUM(UNUSED1, 1)
+ GENERATE_ENUM(PERF_PAPC_PASX_FIRST_VECTOR, 2)
+ GENERATE_ENUM(PERF_PAPC_PASX_SECOND_VECTOR, 3)
+ GENERATE_ENUM(PERF_PAPC_PASX_FIRST_DEAD, 4)
+ GENERATE_ENUM(PERF_PAPC_PASX_SECOND_DEAD, 5)
+ GENERATE_ENUM(PERF_PAPC_PASX_VTX_KILL_DISCARD, 6)
+ GENERATE_ENUM(PERF_PAPC_PASX_VTX_NAN_DISCARD, 7)
+ GENERATE_ENUM(PERF_PAPC_PA_INPUT_PRIM, 8)
+ GENERATE_ENUM(PERF_PAPC_PA_INPUT_NULL_PRIM, 9)
+ GENERATE_ENUM(PERF_PAPC_PA_INPUT_EVENT_FLAG, 10)
+ GENERATE_ENUM(PERF_PAPC_PA_INPUT_FIRST_PRIM_SLOT, 11)
+ GENERATE_ENUM(PERF_PAPC_PA_INPUT_END_OF_PACKET, 12)
+ GENERATE_ENUM(PERF_PAPC_CLPR_CULL_PRIM, 13)
+ GENERATE_ENUM(UNUSED2, 14)
+ GENERATE_ENUM(PERF_PAPC_CLPR_VV_CULL_PRIM, 15)
+ GENERATE_ENUM(UNUSED3, 16)
+ GENERATE_ENUM(PERF_PAPC_CLPR_VTX_KILL_CULL_PRIM, 17)
+ GENERATE_ENUM(PERF_PAPC_CLPR_VTX_NAN_CULL_PRIM, 18)
+ GENERATE_ENUM(PERF_PAPC_CLPR_CULL_TO_NULL_PRIM, 19)
+ GENERATE_ENUM(UNUSED4, 20)
+ GENERATE_ENUM(PERF_PAPC_CLPR_VV_CLIP_PRIM, 21)
+ GENERATE_ENUM(UNUSED5, 22)
+ GENERATE_ENUM(PERF_PAPC_CLPR_POINT_CLIP_CANDIDATE, 23)
+ GENERATE_ENUM(PERF_PAPC_CLPR_CLIP_PLANE_CNT_1, 24)
+ GENERATE_ENUM(PERF_PAPC_CLPR_CLIP_PLANE_CNT_2, 25)
+ GENERATE_ENUM(PERF_PAPC_CLPR_CLIP_PLANE_CNT_3, 26)
+ GENERATE_ENUM(PERF_PAPC_CLPR_CLIP_PLANE_CNT_4, 27)
+ GENERATE_ENUM(PERF_PAPC_CLPR_CLIP_PLANE_CNT_5, 28)
+ GENERATE_ENUM(PERF_PAPC_CLPR_CLIP_PLANE_CNT_6, 29)
+ GENERATE_ENUM(PERF_PAPC_CLPR_CLIP_PLANE_NEAR, 30)
+ GENERATE_ENUM(PERF_PAPC_CLPR_CLIP_PLANE_FAR, 31)
+ GENERATE_ENUM(PERF_PAPC_CLPR_CLIP_PLANE_LEFT, 32)
+ GENERATE_ENUM(PERF_PAPC_CLPR_CLIP_PLANE_RIGHT, 33)
+ GENERATE_ENUM(PERF_PAPC_CLPR_CLIP_PLANE_TOP, 34)
+ GENERATE_ENUM(PERF_PAPC_CLPR_CLIP_PLANE_BOTTOM, 35)
+ GENERATE_ENUM(PERF_PAPC_CLSM_NULL_PRIM, 36)
+ GENERATE_ENUM(PERF_PAPC_CLSM_TOTALLY_VISIBLE_PRIM, 37)
+ GENERATE_ENUM(PERF_PAPC_CLSM_CLIP_PRIM, 38)
+ GENERATE_ENUM(PERF_PAPC_CLSM_CULL_TO_NULL_PRIM, 39)
+ GENERATE_ENUM(PERF_PAPC_CLSM_OUT_PRIM_CNT_1, 40)
+ GENERATE_ENUM(PERF_PAPC_CLSM_OUT_PRIM_CNT_2, 41)
+ GENERATE_ENUM(PERF_PAPC_CLSM_OUT_PRIM_CNT_3, 42)
+ GENERATE_ENUM(PERF_PAPC_CLSM_OUT_PRIM_CNT_4, 43)
+ GENERATE_ENUM(PERF_PAPC_CLSM_OUT_PRIM_CNT_5, 44)
+ GENERATE_ENUM(PERF_PAPC_CLSM_OUT_PRIM_CNT_6_7, 45)
+ GENERATE_ENUM(PERF_PAPC_CLSM_NON_TRIVIAL_CULL, 46)
+ GENERATE_ENUM(PERF_PAPC_SU_INPUT_PRIM, 47)
+ GENERATE_ENUM(PERF_PAPC_SU_INPUT_CLIP_PRIM, 48)
+ GENERATE_ENUM(PERF_PAPC_SU_INPUT_NULL_PRIM, 49)
+ GENERATE_ENUM(PERF_PAPC_SU_ZERO_AREA_CULL_PRIM, 50)
+ GENERATE_ENUM(PERF_PAPC_SU_BACK_FACE_CULL_PRIM, 51)
+ GENERATE_ENUM(PERF_PAPC_SU_FRONT_FACE_CULL_PRIM, 52)
+ GENERATE_ENUM(PERF_PAPC_SU_POLYMODE_FACE_CULL, 53)
+ GENERATE_ENUM(PERF_PAPC_SU_POLYMODE_BACK_CULL, 54)
+ GENERATE_ENUM(PERF_PAPC_SU_POLYMODE_FRONT_CULL, 55)
+ GENERATE_ENUM(PERF_PAPC_SU_POLYMODE_INVALID_FILL, 56)
+ GENERATE_ENUM(PERF_PAPC_SU_OUTPUT_PRIM, 57)
+ GENERATE_ENUM(PERF_PAPC_SU_OUTPUT_CLIP_PRIM, 58)
+ GENERATE_ENUM(PERF_PAPC_SU_OUTPUT_NULL_PRIM, 59)
+ GENERATE_ENUM(PERF_PAPC_SU_OUTPUT_EVENT_FLAG, 60)
+ GENERATE_ENUM(PERF_PAPC_SU_OUTPUT_FIRST_PRIM_SLOT, 61)
+ GENERATE_ENUM(PERF_PAPC_SU_OUTPUT_END_OF_PACKET, 62)
+ GENERATE_ENUM(PERF_PAPC_SU_OUTPUT_POLYMODE_FACE, 63)
+ GENERATE_ENUM(PERF_PAPC_SU_OUTPUT_POLYMODE_BACK, 64)
+ GENERATE_ENUM(PERF_PAPC_SU_OUTPUT_POLYMODE_FRONT, 65)
+ GENERATE_ENUM(PERF_PAPC_SU_OUT_CLIP_POLYMODE_FACE, 66)
+ GENERATE_ENUM(PERF_PAPC_SU_OUT_CLIP_POLYMODE_BACK, 67)
+ GENERATE_ENUM(PERF_PAPC_SU_OUT_CLIP_POLYMODE_FRONT, 68)
+ GENERATE_ENUM(PERF_PAPC_PASX_REQ_IDLE, 69)
+ GENERATE_ENUM(PERF_PAPC_PASX_REQ_BUSY, 70)
+ GENERATE_ENUM(PERF_PAPC_PASX_REQ_STALLED, 71)
+ GENERATE_ENUM(PERF_PAPC_PASX_REC_IDLE, 72)
+ GENERATE_ENUM(PERF_PAPC_PASX_REC_BUSY, 73)
+ GENERATE_ENUM(PERF_PAPC_PASX_REC_STARVED_SX, 74)
+ GENERATE_ENUM(PERF_PAPC_PASX_REC_STALLED, 75)
+ GENERATE_ENUM(PERF_PAPC_PASX_REC_STALLED_POS_MEM, 76)
+ GENERATE_ENUM(PERF_PAPC_PASX_REC_STALLED_CCGSM_IN, 77)
+ GENERATE_ENUM(PERF_PAPC_CCGSM_IDLE, 78)
+ GENERATE_ENUM(PERF_PAPC_CCGSM_BUSY, 79)
+ GENERATE_ENUM(PERF_PAPC_CCGSM_STALLED, 80)
+ GENERATE_ENUM(PERF_PAPC_CLPRIM_IDLE, 81)
+ GENERATE_ENUM(PERF_PAPC_CLPRIM_BUSY, 82)
+ GENERATE_ENUM(PERF_PAPC_CLPRIM_STALLED, 83)
+ GENERATE_ENUM(PERF_PAPC_CLPRIM_STARVED_CCGSM, 84)
+ GENERATE_ENUM(PERF_PAPC_CLIPSM_IDLE, 85)
+ GENERATE_ENUM(PERF_PAPC_CLIPSM_BUSY, 86)
+ GENERATE_ENUM(PERF_PAPC_CLIPSM_WAIT_CLIP_VERT_ENGH, 87)
+ GENERATE_ENUM(PERF_PAPC_CLIPSM_WAIT_HIGH_PRI_SEQ, 88)
+ GENERATE_ENUM(PERF_PAPC_CLIPSM_WAIT_CLIPGA, 89)
+ GENERATE_ENUM(PERF_PAPC_CLIPSM_WAIT_AVAIL_VTE_CLIP, 90)
+ GENERATE_ENUM(PERF_PAPC_CLIPSM_WAIT_CLIP_OUTSM, 91)
+ GENERATE_ENUM(PERF_PAPC_CLIPGA_IDLE, 92)
+ GENERATE_ENUM(PERF_PAPC_CLIPGA_BUSY, 93)
+ GENERATE_ENUM(PERF_PAPC_CLIPGA_STARVED_VTE_CLIP, 94)
+ GENERATE_ENUM(PERF_PAPC_CLIPGA_STALLED, 95)
+ GENERATE_ENUM(PERF_PAPC_CLIP_IDLE, 96)
+ GENERATE_ENUM(PERF_PAPC_CLIP_BUSY, 97)
+ GENERATE_ENUM(PERF_PAPC_SU_IDLE, 98)
+ GENERATE_ENUM(PERF_PAPC_SU_BUSY, 99)
+ GENERATE_ENUM(PERF_PAPC_SU_STARVED_CLIP, 100)
+ GENERATE_ENUM(PERF_PAPC_SU_STALLED_SC, 101)
+END_ENUMTYPE(SU_PERFCNT_SELECT)
+
+START_ENUMTYPE(SC_PERFCNT_SELECT)
+ GENERATE_ENUM(SC_SR_WINDOW_VALID, 0)
+ GENERATE_ENUM(SC_CW_WINDOW_VALID, 1)
+ GENERATE_ENUM(SC_QM_WINDOW_VALID, 2)
+ GENERATE_ENUM(SC_FW_WINDOW_VALID, 3)
+ GENERATE_ENUM(SC_EZ_WINDOW_VALID, 4)
+ GENERATE_ENUM(SC_IT_WINDOW_VALID, 5)
+ GENERATE_ENUM(SC_STARVED_BY_PA, 6)
+ GENERATE_ENUM(SC_STALLED_BY_RB_TILE, 7)
+ GENERATE_ENUM(SC_STALLED_BY_RB_SAMP, 8)
+ GENERATE_ENUM(SC_STARVED_BY_RB_EZ, 9)
+ GENERATE_ENUM(SC_STALLED_BY_SAMPLE_FF, 10)
+ GENERATE_ENUM(SC_STALLED_BY_SQ, 11)
+ GENERATE_ENUM(SC_STALLED_BY_SP, 12)
+ GENERATE_ENUM(SC_TOTAL_NO_PRIMS, 13)
+ GENERATE_ENUM(SC_NON_EMPTY_PRIMS, 14)
+ GENERATE_ENUM(SC_NO_TILES_PASSING_QM, 15)
+ GENERATE_ENUM(SC_NO_PIXELS_PRE_EZ, 16)
+ GENERATE_ENUM(SC_NO_PIXELS_POST_EZ, 17)
+END_ENUMTYPE(SC_PERFCNT_SELECT)
+
+START_ENUMTYPE(VGT_DI_PRIM_TYPE)
+ GENERATE_ENUM(DI_PT_NONE, 0)
+ GENERATE_ENUM(DI_PT_POINTLIST, 1)
+ GENERATE_ENUM(DI_PT_LINELIST, 2)
+ GENERATE_ENUM(DI_PT_LINESTRIP, 3)
+ GENERATE_ENUM(DI_PT_TRILIST, 4)
+ GENERATE_ENUM(DI_PT_TRIFAN, 5)
+ GENERATE_ENUM(DI_PT_TRISTRIP, 6)
+ GENERATE_ENUM(DI_PT_UNUSED_1, 7)
+ GENERATE_ENUM(DI_PT_RECTLIST, 8)
+ GENERATE_ENUM(DI_PT_UNUSED_2, 9)
+ GENERATE_ENUM(DI_PT_UNUSED_3, 10)
+ GENERATE_ENUM(DI_PT_UNUSED_4, 11)
+ GENERATE_ENUM(DI_PT_UNUSED_5, 12)
+ GENERATE_ENUM(DI_PT_QUADLIST, 13)
+ GENERATE_ENUM(DI_PT_QUADSTRIP, 14)
+ GENERATE_ENUM(DI_PT_POLYGON, 15)
+ GENERATE_ENUM(DI_PT_2D_COPY_RECT_LIST_V0, 16)
+ GENERATE_ENUM(DI_PT_2D_COPY_RECT_LIST_V1, 17)
+ GENERATE_ENUM(DI_PT_2D_COPY_RECT_LIST_V2, 18)
+ GENERATE_ENUM(DI_PT_2D_COPY_RECT_LIST_V3, 19)
+ GENERATE_ENUM(DI_PT_2D_FILL_RECT_LIST, 20)
+ GENERATE_ENUM(DI_PT_2D_LINE_STRIP, 21)
+ GENERATE_ENUM(DI_PT_2D_TRI_STRIP, 22)
+END_ENUMTYPE(VGT_DI_PRIM_TYPE)
+
+START_ENUMTYPE(VGT_DI_SOURCE_SELECT)
+ GENERATE_ENUM(DI_SRC_SEL_DMA, 0)
+ GENERATE_ENUM(DI_SRC_SEL_IMMEDIATE, 1)
+ GENERATE_ENUM(DI_SRC_SEL_AUTO_INDEX, 2)
+ GENERATE_ENUM(DI_SRC_SEL_RESERVED, 3)
+END_ENUMTYPE(VGT_DI_SOURCE_SELECT)
+
+START_ENUMTYPE(VGT_DI_INDEX_SIZE)
+ GENERATE_ENUM(DI_INDEX_SIZE_16_BIT, 0)
+ GENERATE_ENUM(DI_INDEX_SIZE_32_BIT, 1)
+END_ENUMTYPE(VGT_DI_INDEX_SIZE)
+
+START_ENUMTYPE(VGT_DI_SMALL_INDEX)
+ GENERATE_ENUM(DI_USE_INDEX_SIZE, 0)
+ GENERATE_ENUM(DI_INDEX_SIZE_8_BIT, 1)
+END_ENUMTYPE(VGT_DI_SMALL_INDEX)
+
+START_ENUMTYPE(VGT_DI_PRE_FETCH_CULL_ENABLE)
+ GENERATE_ENUM(DISABLE_PRE_FETCH_CULL_ENABLE, 0)
+ GENERATE_ENUM(PRE_FETCH_CULL_ENABLE, 1)
+END_ENUMTYPE(VGT_DI_PRE_FETCH_CULL_ENABLE)
+
+START_ENUMTYPE(VGT_DI_GRP_CULL_ENABLE)
+ GENERATE_ENUM(DISABLE_GRP_CULL_ENABLE, 0)
+ GENERATE_ENUM(GRP_CULL_ENABLE, 1)
+END_ENUMTYPE(VGT_DI_GRP_CULL_ENABLE)
+
+START_ENUMTYPE(VGT_EVENT_TYPE)
+ GENERATE_ENUM(VS_DEALLOC, 0)
+ GENERATE_ENUM(PS_DEALLOC, 1)
+ GENERATE_ENUM(VS_DONE_TS, 2)
+ GENERATE_ENUM(PS_DONE_TS, 3)
+ GENERATE_ENUM(CACHE_FLUSH_TS, 4)
+ GENERATE_ENUM(CONTEXT_DONE, 5)
+ GENERATE_ENUM(CACHE_FLUSH, 6)
+ GENERATE_ENUM(VIZQUERY_START, 7)
+ GENERATE_ENUM(VIZQUERY_END, 8)
+ GENERATE_ENUM(SC_WAIT_WC, 9)
+ GENERATE_ENUM(RST_PIX_CNT, 13)
+ GENERATE_ENUM(RST_VTX_CNT, 14)
+ GENERATE_ENUM(TILE_FLUSH, 15)
+ GENERATE_ENUM(CACHE_FLUSH_AND_INV_TS_EVENT, 20)
+ GENERATE_ENUM(ZPASS_DONE, 21)
+ GENERATE_ENUM(CACHE_FLUSH_AND_INV_EVENT, 22)
+ GENERATE_ENUM(PERFCOUNTER_START, 23)
+ GENERATE_ENUM(PERFCOUNTER_STOP, 24)
+ GENERATE_ENUM(VS_FETCH_DONE, 27)
+END_ENUMTYPE(VGT_EVENT_TYPE)
+
+START_ENUMTYPE(VGT_DMA_SWAP_MODE)
+ GENERATE_ENUM(VGT_DMA_SWAP_NONE, 0)
+ GENERATE_ENUM(VGT_DMA_SWAP_16_BIT, 1)
+ GENERATE_ENUM(VGT_DMA_SWAP_32_BIT, 2)
+ GENERATE_ENUM(VGT_DMA_SWAP_WORD, 3)
+END_ENUMTYPE(VGT_DMA_SWAP_MODE)
+
+START_ENUMTYPE(VGT_PERFCOUNT_SELECT)
+ GENERATE_ENUM(VGT_SQ_EVENT_WINDOW_ACTIVE, 0)
+ GENERATE_ENUM(VGT_SQ_SEND, 1)
+ GENERATE_ENUM(VGT_SQ_STALLED, 2)
+ GENERATE_ENUM(VGT_SQ_STARVED_BUSY, 3)
+ GENERATE_ENUM(VGT_SQ_STARVED_IDLE, 4)
+ GENERATE_ENUM(VGT_SQ_STATIC, 5)
+ GENERATE_ENUM(VGT_PA_EVENT_WINDOW_ACTIVE, 6)
+ GENERATE_ENUM(VGT_PA_CLIP_V_SEND, 7)
+ GENERATE_ENUM(VGT_PA_CLIP_V_STALLED, 8)
+ GENERATE_ENUM(VGT_PA_CLIP_V_STARVED_BUSY, 9)
+ GENERATE_ENUM(VGT_PA_CLIP_V_STARVED_IDLE, 10)
+ GENERATE_ENUM(VGT_PA_CLIP_V_STATIC, 11)
+ GENERATE_ENUM(VGT_PA_CLIP_P_SEND, 12)
+ GENERATE_ENUM(VGT_PA_CLIP_P_STALLED, 13)
+ GENERATE_ENUM(VGT_PA_CLIP_P_STARVED_BUSY, 14)
+ GENERATE_ENUM(VGT_PA_CLIP_P_STARVED_IDLE, 15)
+ GENERATE_ENUM(VGT_PA_CLIP_P_STATIC, 16)
+ GENERATE_ENUM(VGT_PA_CLIP_S_SEND, 17)
+ GENERATE_ENUM(VGT_PA_CLIP_S_STALLED, 18)
+ GENERATE_ENUM(VGT_PA_CLIP_S_STARVED_BUSY, 19)
+ GENERATE_ENUM(VGT_PA_CLIP_S_STARVED_IDLE, 20)
+ GENERATE_ENUM(VGT_PA_CLIP_S_STATIC, 21)
+ GENERATE_ENUM(RBIU_FIFOS_EVENT_WINDOW_ACTIVE, 22)
+ GENERATE_ENUM(RBIU_IMMED_DATA_FIFO_STARVED, 23)
+ GENERATE_ENUM(RBIU_IMMED_DATA_FIFO_STALLED, 24)
+ GENERATE_ENUM(RBIU_DMA_REQUEST_FIFO_STARVED, 25)
+ GENERATE_ENUM(RBIU_DMA_REQUEST_FIFO_STALLED, 26)
+ GENERATE_ENUM(RBIU_DRAW_INITIATOR_FIFO_STARVED, 27)
+ GENERATE_ENUM(RBIU_DRAW_INITIATOR_FIFO_STALLED, 28)
+ GENERATE_ENUM(BIN_PRIM_NEAR_CULL, 29)
+ GENERATE_ENUM(BIN_PRIM_ZERO_CULL, 30)
+ GENERATE_ENUM(BIN_PRIM_FAR_CULL, 31)
+ GENERATE_ENUM(BIN_PRIM_BIN_CULL, 32)
+ GENERATE_ENUM(SPARE33, 33)
+ GENERATE_ENUM(SPARE34, 34)
+ GENERATE_ENUM(SPARE35, 35)
+ GENERATE_ENUM(SPARE36, 36)
+ GENERATE_ENUM(SPARE37, 37)
+ GENERATE_ENUM(SPARE38, 38)
+ GENERATE_ENUM(SPARE39, 39)
+ GENERATE_ENUM(TE_SU_IN_VALID, 40)
+ GENERATE_ENUM(TE_SU_IN_READ, 41)
+ GENERATE_ENUM(TE_SU_IN_PRIM, 42)
+ GENERATE_ENUM(TE_SU_IN_EOP, 43)
+ GENERATE_ENUM(TE_SU_IN_NULL_PRIM, 44)
+ GENERATE_ENUM(TE_WK_IN_VALID, 45)
+ GENERATE_ENUM(TE_WK_IN_READ, 46)
+ GENERATE_ENUM(TE_OUT_PRIM_VALID, 47)
+ GENERATE_ENUM(TE_OUT_PRIM_READ, 48)
+END_ENUMTYPE(VGT_PERFCOUNT_SELECT)
+
+START_ENUMTYPE(TCR_PERFCOUNT_SELECT)
+ GENERATE_ENUM(DGMMPD_IPMUX0_STALL, 0)
+ GENERATE_ENUM(reserved_46, 1)
+ GENERATE_ENUM(reserved_47, 2)
+ GENERATE_ENUM(reserved_48, 3)
+ GENERATE_ENUM(DGMMPD_IPMUX_ALL_STALL, 4)
+ GENERATE_ENUM(OPMUX0_L2_WRITES, 5)
+ GENERATE_ENUM(reserved_49, 6)
+ GENERATE_ENUM(reserved_50, 7)
+ GENERATE_ENUM(reserved_51, 8)
+END_ENUMTYPE(TCR_PERFCOUNT_SELECT)
+
+START_ENUMTYPE(TP_PERFCOUNT_SELECT)
+ GENERATE_ENUM(POINT_QUADS, 0)
+ GENERATE_ENUM(BILIN_QUADS, 1)
+ GENERATE_ENUM(ANISO_QUADS, 2)
+ GENERATE_ENUM(MIP_QUADS, 3)
+ GENERATE_ENUM(VOL_QUADS, 4)
+ GENERATE_ENUM(MIP_VOL_QUADS, 5)
+ GENERATE_ENUM(MIP_ANISO_QUADS, 6)
+ GENERATE_ENUM(VOL_ANISO_QUADS, 7)
+ GENERATE_ENUM(ANISO_2_1_QUADS, 8)
+ GENERATE_ENUM(ANISO_4_1_QUADS, 9)
+ GENERATE_ENUM(ANISO_6_1_QUADS, 10)
+ GENERATE_ENUM(ANISO_8_1_QUADS, 11)
+ GENERATE_ENUM(ANISO_10_1_QUADS, 12)
+ GENERATE_ENUM(ANISO_12_1_QUADS, 13)
+ GENERATE_ENUM(ANISO_14_1_QUADS, 14)
+ GENERATE_ENUM(ANISO_16_1_QUADS, 15)
+ GENERATE_ENUM(MIP_VOL_ANISO_QUADS, 16)
+ GENERATE_ENUM(ALIGN_2_QUADS, 17)
+ GENERATE_ENUM(ALIGN_4_QUADS, 18)
+ GENERATE_ENUM(PIX_0_QUAD, 19)
+ GENERATE_ENUM(PIX_1_QUAD, 20)
+ GENERATE_ENUM(PIX_2_QUAD, 21)
+ GENERATE_ENUM(PIX_3_QUAD, 22)
+ GENERATE_ENUM(PIX_4_QUAD, 23)
+ GENERATE_ENUM(TP_MIPMAP_LOD0, 24)
+ GENERATE_ENUM(TP_MIPMAP_LOD1, 25)
+ GENERATE_ENUM(TP_MIPMAP_LOD2, 26)
+ GENERATE_ENUM(TP_MIPMAP_LOD3, 27)
+ GENERATE_ENUM(TP_MIPMAP_LOD4, 28)
+ GENERATE_ENUM(TP_MIPMAP_LOD5, 29)
+ GENERATE_ENUM(TP_MIPMAP_LOD6, 30)
+ GENERATE_ENUM(TP_MIPMAP_LOD7, 31)
+ GENERATE_ENUM(TP_MIPMAP_LOD8, 32)
+ GENERATE_ENUM(TP_MIPMAP_LOD9, 33)
+ GENERATE_ENUM(TP_MIPMAP_LOD10, 34)
+ GENERATE_ENUM(TP_MIPMAP_LOD11, 35)
+ GENERATE_ENUM(TP_MIPMAP_LOD12, 36)
+ GENERATE_ENUM(TP_MIPMAP_LOD13, 37)
+ GENERATE_ENUM(TP_MIPMAP_LOD14, 38)
+END_ENUMTYPE(TP_PERFCOUNT_SELECT)
+
+START_ENUMTYPE(TCM_PERFCOUNT_SELECT)
+ GENERATE_ENUM(QUAD0_RD_LAT_FIFO_EMPTY, 0)
+ GENERATE_ENUM(reserved_01, 1)
+ GENERATE_ENUM(reserved_02, 2)
+ GENERATE_ENUM(QUAD0_RD_LAT_FIFO_4TH_FULL, 3)
+ GENERATE_ENUM(QUAD0_RD_LAT_FIFO_HALF_FULL, 4)
+ GENERATE_ENUM(QUAD0_RD_LAT_FIFO_FULL, 5)
+ GENERATE_ENUM(QUAD0_RD_LAT_FIFO_LT_4TH_FULL, 6)
+ GENERATE_ENUM(reserved_07, 7)
+ GENERATE_ENUM(reserved_08, 8)
+ GENERATE_ENUM(reserved_09, 9)
+ GENERATE_ENUM(reserved_10, 10)
+ GENERATE_ENUM(reserved_11, 11)
+ GENERATE_ENUM(reserved_12, 12)
+ GENERATE_ENUM(reserved_13, 13)
+ GENERATE_ENUM(reserved_14, 14)
+ GENERATE_ENUM(reserved_15, 15)
+ GENERATE_ENUM(reserved_16, 16)
+ GENERATE_ENUM(reserved_17, 17)
+ GENERATE_ENUM(reserved_18, 18)
+ GENERATE_ENUM(reserved_19, 19)
+ GENERATE_ENUM(reserved_20, 20)
+ GENERATE_ENUM(reserved_21, 21)
+ GENERATE_ENUM(reserved_22, 22)
+ GENERATE_ENUM(reserved_23, 23)
+ GENERATE_ENUM(reserved_24, 24)
+ GENERATE_ENUM(reserved_25, 25)
+ GENERATE_ENUM(reserved_26, 26)
+ GENERATE_ENUM(reserved_27, 27)
+ GENERATE_ENUM(READ_STARVED_QUAD0, 28)
+ GENERATE_ENUM(reserved_29, 29)
+ GENERATE_ENUM(reserved_30, 30)
+ GENERATE_ENUM(reserved_31, 31)
+ GENERATE_ENUM(READ_STARVED, 32)
+ GENERATE_ENUM(READ_STALLED_QUAD0, 33)
+ GENERATE_ENUM(reserved_34, 34)
+ GENERATE_ENUM(reserved_35, 35)
+ GENERATE_ENUM(reserved_36, 36)
+ GENERATE_ENUM(READ_STALLED, 37)
+ GENERATE_ENUM(VALID_READ_QUAD0, 38)
+ GENERATE_ENUM(reserved_39, 39)
+ GENERATE_ENUM(reserved_40, 40)
+ GENERATE_ENUM(reserved_41, 41)
+ GENERATE_ENUM(TC_TP_STARVED_QUAD0, 42)
+ GENERATE_ENUM(reserved_43, 43)
+ GENERATE_ENUM(reserved_44, 44)
+ GENERATE_ENUM(reserved_45, 45)
+ GENERATE_ENUM(TC_TP_STARVED, 46)
+END_ENUMTYPE(TCM_PERFCOUNT_SELECT)
+
+START_ENUMTYPE(TCF_PERFCOUNT_SELECT)
+ GENERATE_ENUM(VALID_CYCLES, 0)
+ GENERATE_ENUM(SINGLE_PHASES, 1)
+ GENERATE_ENUM(ANISO_PHASES, 2)
+ GENERATE_ENUM(MIP_PHASES, 3)
+ GENERATE_ENUM(VOL_PHASES, 4)
+ GENERATE_ENUM(MIP_VOL_PHASES, 5)
+ GENERATE_ENUM(MIP_ANISO_PHASES, 6)
+ GENERATE_ENUM(VOL_ANISO_PHASES, 7)
+ GENERATE_ENUM(ANISO_2_1_PHASES, 8)
+ GENERATE_ENUM(ANISO_4_1_PHASES, 9)
+ GENERATE_ENUM(ANISO_6_1_PHASES, 10)
+ GENERATE_ENUM(ANISO_8_1_PHASES, 11)
+ GENERATE_ENUM(ANISO_10_1_PHASES, 12)
+ GENERATE_ENUM(ANISO_12_1_PHASES, 13)
+ GENERATE_ENUM(ANISO_14_1_PHASES, 14)
+ GENERATE_ENUM(ANISO_16_1_PHASES, 15)
+ GENERATE_ENUM(MIP_VOL_ANISO_PHASES, 16)
+ GENERATE_ENUM(ALIGN_2_PHASES, 17)
+ GENERATE_ENUM(ALIGN_4_PHASES, 18)
+ GENERATE_ENUM(TPC_BUSY, 19)
+ GENERATE_ENUM(TPC_STALLED, 20)
+ GENERATE_ENUM(TPC_STARVED, 21)
+ GENERATE_ENUM(TPC_WORKING, 22)
+ GENERATE_ENUM(TPC_WALKER_BUSY, 23)
+ GENERATE_ENUM(TPC_WALKER_STALLED, 24)
+ GENERATE_ENUM(TPC_WALKER_WORKING, 25)
+ GENERATE_ENUM(TPC_ALIGNER_BUSY, 26)
+ GENERATE_ENUM(TPC_ALIGNER_STALLED, 27)
+ GENERATE_ENUM(TPC_ALIGNER_STALLED_BY_BLEND, 28)
+ GENERATE_ENUM(TPC_ALIGNER_STALLED_BY_CACHE, 29)
+ GENERATE_ENUM(TPC_ALIGNER_WORKING, 30)
+ GENERATE_ENUM(TPC_BLEND_BUSY, 31)
+ GENERATE_ENUM(TPC_BLEND_SYNC, 32)
+ GENERATE_ENUM(TPC_BLEND_STARVED, 33)
+ GENERATE_ENUM(TPC_BLEND_WORKING, 34)
+ GENERATE_ENUM(OPCODE_0x00, 35)
+ GENERATE_ENUM(OPCODE_0x01, 36)
+ GENERATE_ENUM(OPCODE_0x04, 37)
+ GENERATE_ENUM(OPCODE_0x10, 38)
+ GENERATE_ENUM(OPCODE_0x11, 39)
+ GENERATE_ENUM(OPCODE_0x12, 40)
+ GENERATE_ENUM(OPCODE_0x13, 41)
+ GENERATE_ENUM(OPCODE_0x18, 42)
+ GENERATE_ENUM(OPCODE_0x19, 43)
+ GENERATE_ENUM(OPCODE_0x1A, 44)
+ GENERATE_ENUM(OPCODE_OTHER, 45)
+ GENERATE_ENUM(IN_FIFO_0_EMPTY, 56)
+ GENERATE_ENUM(IN_FIFO_0_LT_HALF_FULL, 57)
+ GENERATE_ENUM(IN_FIFO_0_HALF_FULL, 58)
+ GENERATE_ENUM(IN_FIFO_0_FULL, 59)
+ GENERATE_ENUM(IN_FIFO_TPC_EMPTY, 72)
+ GENERATE_ENUM(IN_FIFO_TPC_LT_HALF_FULL, 73)
+ GENERATE_ENUM(IN_FIFO_TPC_HALF_FULL, 74)
+ GENERATE_ENUM(IN_FIFO_TPC_FULL, 75)
+ GENERATE_ENUM(TPC_TC_XFC, 76)
+ GENERATE_ENUM(TPC_TC_STATE, 77)
+ GENERATE_ENUM(TC_STALL, 78)
+ GENERATE_ENUM(QUAD0_TAPS, 79)
+ GENERATE_ENUM(QUADS, 83)
+ GENERATE_ENUM(TCA_SYNC_STALL, 84)
+ GENERATE_ENUM(TAG_STALL, 85)
+ GENERATE_ENUM(TCB_SYNC_STALL, 88)
+ GENERATE_ENUM(TCA_VALID, 89)
+ GENERATE_ENUM(PROBES_VALID, 90)
+ GENERATE_ENUM(MISS_STALL, 91)
+ GENERATE_ENUM(FETCH_FIFO_STALL, 92)
+ GENERATE_ENUM(TCO_STALL, 93)
+ GENERATE_ENUM(ANY_STALL, 94)
+ GENERATE_ENUM(TAG_MISSES, 95)
+ GENERATE_ENUM(TAG_HITS, 96)
+ GENERATE_ENUM(SUB_TAG_MISSES, 97)
+ GENERATE_ENUM(SET0_INVALIDATES, 98)
+ GENERATE_ENUM(SET1_INVALIDATES, 99)
+ GENERATE_ENUM(SET2_INVALIDATES, 100)
+ GENERATE_ENUM(SET3_INVALIDATES, 101)
+ GENERATE_ENUM(SET0_TAG_MISSES, 102)
+ GENERATE_ENUM(SET1_TAG_MISSES, 103)
+ GENERATE_ENUM(SET2_TAG_MISSES, 104)
+ GENERATE_ENUM(SET3_TAG_MISSES, 105)
+ GENERATE_ENUM(SET0_TAG_HITS, 106)
+ GENERATE_ENUM(SET1_TAG_HITS, 107)
+ GENERATE_ENUM(SET2_TAG_HITS, 108)
+ GENERATE_ENUM(SET3_TAG_HITS, 109)
+ GENERATE_ENUM(SET0_SUB_TAG_MISSES, 110)
+ GENERATE_ENUM(SET1_SUB_TAG_MISSES, 111)
+ GENERATE_ENUM(SET2_SUB_TAG_MISSES, 112)
+ GENERATE_ENUM(SET3_SUB_TAG_MISSES, 113)
+ GENERATE_ENUM(SET0_EVICT1, 114)
+ GENERATE_ENUM(SET0_EVICT2, 115)
+ GENERATE_ENUM(SET0_EVICT3, 116)
+ GENERATE_ENUM(SET0_EVICT4, 117)
+ GENERATE_ENUM(SET0_EVICT5, 118)
+ GENERATE_ENUM(SET0_EVICT6, 119)
+ GENERATE_ENUM(SET0_EVICT7, 120)
+ GENERATE_ENUM(SET0_EVICT8, 121)
+ GENERATE_ENUM(SET1_EVICT1, 130)
+ GENERATE_ENUM(SET1_EVICT2, 131)
+ GENERATE_ENUM(SET1_EVICT3, 132)
+ GENERATE_ENUM(SET1_EVICT4, 133)
+ GENERATE_ENUM(SET1_EVICT5, 134)
+ GENERATE_ENUM(SET1_EVICT6, 135)
+ GENERATE_ENUM(SET1_EVICT7, 136)
+ GENERATE_ENUM(SET1_EVICT8, 137)
+ GENERATE_ENUM(SET2_EVICT1, 146)
+ GENERATE_ENUM(SET2_EVICT2, 147)
+ GENERATE_ENUM(SET2_EVICT3, 148)
+ GENERATE_ENUM(SET2_EVICT4, 149)
+ GENERATE_ENUM(SET2_EVICT5, 150)
+ GENERATE_ENUM(SET2_EVICT6, 151)
+ GENERATE_ENUM(SET2_EVICT7, 152)
+ GENERATE_ENUM(SET2_EVICT8, 153)
+ GENERATE_ENUM(SET3_EVICT1, 162)
+ GENERATE_ENUM(SET3_EVICT2, 163)
+ GENERATE_ENUM(SET3_EVICT3, 164)
+ GENERATE_ENUM(SET3_EVICT4, 165)
+ GENERATE_ENUM(SET3_EVICT5, 166)
+ GENERATE_ENUM(SET3_EVICT6, 167)
+ GENERATE_ENUM(SET3_EVICT7, 168)
+ GENERATE_ENUM(SET3_EVICT8, 169)
+ GENERATE_ENUM(FF_EMPTY, 178)
+ GENERATE_ENUM(FF_LT_HALF_FULL, 179)
+ GENERATE_ENUM(FF_HALF_FULL, 180)
+ GENERATE_ENUM(FF_FULL, 181)
+ GENERATE_ENUM(FF_XFC, 182)
+ GENERATE_ENUM(FF_STALLED, 183)
+ GENERATE_ENUM(FG_MASKS, 184)
+ GENERATE_ENUM(FG_LEFT_MASKS, 185)
+ GENERATE_ENUM(FG_LEFT_MASK_STALLED, 186)
+ GENERATE_ENUM(FG_LEFT_NOT_DONE_STALL, 187)
+ GENERATE_ENUM(FG_LEFT_FG_STALL, 188)
+ GENERATE_ENUM(FG_LEFT_SECTORS, 189)
+ GENERATE_ENUM(FG0_REQUESTS, 195)
+ GENERATE_ENUM(FG0_STALLED, 196)
+ GENERATE_ENUM(MEM_REQ512, 199)
+ GENERATE_ENUM(MEM_REQ_SENT, 200)
+ GENERATE_ENUM(MEM_LOCAL_READ_REQ, 202)
+ GENERATE_ENUM(TC0_MH_STALLED, 203)
+END_ENUMTYPE(TCF_PERFCOUNT_SELECT)
+
+START_ENUMTYPE(SQ_PERFCNT_SELECT)
+ GENERATE_ENUM(SQ_PIXEL_VECTORS_SUB, 0)
+ GENERATE_ENUM(SQ_VERTEX_VECTORS_SUB, 1)
+ GENERATE_ENUM(SQ_ALU0_ACTIVE_VTX_SIMD0, 2)
+ GENERATE_ENUM(SQ_ALU1_ACTIVE_VTX_SIMD0, 3)
+ GENERATE_ENUM(SQ_ALU0_ACTIVE_PIX_SIMD0, 4)
+ GENERATE_ENUM(SQ_ALU1_ACTIVE_PIX_SIMD0, 5)
+ GENERATE_ENUM(SQ_ALU0_ACTIVE_VTX_SIMD1, 6)
+ GENERATE_ENUM(SQ_ALU1_ACTIVE_VTX_SIMD1, 7)
+ GENERATE_ENUM(SQ_ALU0_ACTIVE_PIX_SIMD1, 8)
+ GENERATE_ENUM(SQ_ALU1_ACTIVE_PIX_SIMD1, 9)
+ GENERATE_ENUM(SQ_EXPORT_CYCLES, 10)
+ GENERATE_ENUM(SQ_ALU_CST_WRITTEN, 11)
+ GENERATE_ENUM(SQ_TEX_CST_WRITTEN, 12)
+ GENERATE_ENUM(SQ_ALU_CST_STALL, 13)
+ GENERATE_ENUM(SQ_ALU_TEX_STALL, 14)
+ GENERATE_ENUM(SQ_INST_WRITTEN, 15)
+ GENERATE_ENUM(SQ_BOOLEAN_WRITTEN, 16)
+ GENERATE_ENUM(SQ_LOOPS_WRITTEN, 17)
+ GENERATE_ENUM(SQ_PIXEL_SWAP_IN, 18)
+ GENERATE_ENUM(SQ_PIXEL_SWAP_OUT, 19)
+ GENERATE_ENUM(SQ_VERTEX_SWAP_IN, 20)
+ GENERATE_ENUM(SQ_VERTEX_SWAP_OUT, 21)
+ GENERATE_ENUM(SQ_ALU_VTX_INST_ISSUED, 22)
+ GENERATE_ENUM(SQ_TEX_VTX_INST_ISSUED, 23)
+ GENERATE_ENUM(SQ_VC_VTX_INST_ISSUED, 24)
+ GENERATE_ENUM(SQ_CF_VTX_INST_ISSUED, 25)
+ GENERATE_ENUM(SQ_ALU_PIX_INST_ISSUED, 26)
+ GENERATE_ENUM(SQ_TEX_PIX_INST_ISSUED, 27)
+ GENERATE_ENUM(SQ_VC_PIX_INST_ISSUED, 28)
+ GENERATE_ENUM(SQ_CF_PIX_INST_ISSUED, 29)
+ GENERATE_ENUM(SQ_ALU0_FIFO_EMPTY_SIMD0, 30)
+ GENERATE_ENUM(SQ_ALU1_FIFO_EMPTY_SIMD0, 31)
+ GENERATE_ENUM(SQ_ALU0_FIFO_EMPTY_SIMD1, 32)
+ GENERATE_ENUM(SQ_ALU1_FIFO_EMPTY_SIMD1, 33)
+ GENERATE_ENUM(SQ_ALU_NOPS, 34)
+ GENERATE_ENUM(SQ_PRED_SKIP, 35)
+ GENERATE_ENUM(SQ_SYNC_ALU_STALL_SIMD0_VTX, 36)
+ GENERATE_ENUM(SQ_SYNC_ALU_STALL_SIMD1_VTX, 37)
+ GENERATE_ENUM(SQ_SYNC_TEX_STALL_VTX, 38)
+ GENERATE_ENUM(SQ_SYNC_VC_STALL_VTX, 39)
+ GENERATE_ENUM(SQ_CONSTANTS_USED_SIMD0, 40)
+ GENERATE_ENUM(SQ_CONSTANTS_SENT_SP_SIMD0, 41)
+ GENERATE_ENUM(SQ_GPR_STALL_VTX, 42)
+ GENERATE_ENUM(SQ_GPR_STALL_PIX, 43)
+ GENERATE_ENUM(SQ_VTX_RS_STALL, 44)
+ GENERATE_ENUM(SQ_PIX_RS_STALL, 45)
+ GENERATE_ENUM(SQ_SX_PC_FULL, 46)
+ GENERATE_ENUM(SQ_SX_EXP_BUFF_FULL, 47)
+ GENERATE_ENUM(SQ_SX_POS_BUFF_FULL, 48)
+ GENERATE_ENUM(SQ_INTERP_QUADS, 49)
+ GENERATE_ENUM(SQ_INTERP_ACTIVE, 50)
+ GENERATE_ENUM(SQ_IN_PIXEL_STALL, 51)
+ GENERATE_ENUM(SQ_IN_VTX_STALL, 52)
+ GENERATE_ENUM(SQ_VTX_CNT, 53)
+ GENERATE_ENUM(SQ_VTX_VECTOR2, 54)
+ GENERATE_ENUM(SQ_VTX_VECTOR3, 55)
+ GENERATE_ENUM(SQ_VTX_VECTOR4, 56)
+ GENERATE_ENUM(SQ_PIXEL_VECTOR1, 57)
+ GENERATE_ENUM(SQ_PIXEL_VECTOR23, 58)
+ GENERATE_ENUM(SQ_PIXEL_VECTOR4, 59)
+ GENERATE_ENUM(SQ_CONSTANTS_USED_SIMD1, 60)
+ GENERATE_ENUM(SQ_CONSTANTS_SENT_SP_SIMD1, 61)
+ GENERATE_ENUM(SQ_SX_MEM_EXP_FULL, 62)
+ GENERATE_ENUM(SQ_ALU0_ACTIVE_VTX_SIMD2, 63)
+ GENERATE_ENUM(SQ_ALU1_ACTIVE_VTX_SIMD2, 64)
+ GENERATE_ENUM(SQ_ALU0_ACTIVE_PIX_SIMD2, 65)
+ GENERATE_ENUM(SQ_ALU1_ACTIVE_PIX_SIMD2, 66)
+ GENERATE_ENUM(SQ_ALU0_ACTIVE_VTX_SIMD3, 67)
+ GENERATE_ENUM(SQ_ALU1_ACTIVE_VTX_SIMD3, 68)
+ GENERATE_ENUM(SQ_ALU0_ACTIVE_PIX_SIMD3, 69)
+ GENERATE_ENUM(SQ_ALU1_ACTIVE_PIX_SIMD3, 70)
+ GENERATE_ENUM(SQ_ALU0_FIFO_EMPTY_SIMD2, 71)
+ GENERATE_ENUM(SQ_ALU1_FIFO_EMPTY_SIMD2, 72)
+ GENERATE_ENUM(SQ_ALU0_FIFO_EMPTY_SIMD3, 73)
+ GENERATE_ENUM(SQ_ALU1_FIFO_EMPTY_SIMD3, 74)
+ GENERATE_ENUM(SQ_SYNC_ALU_STALL_SIMD2_VTX, 75)
+ GENERATE_ENUM(SQ_SYNC_ALU_STALL_SIMD3_VTX, 76)
+ GENERATE_ENUM(SQ_SYNC_ALU_STALL_SIMD0_PIX, 77)
+ GENERATE_ENUM(SQ_SYNC_ALU_STALL_SIMD1_PIX, 78)
+ GENERATE_ENUM(SQ_SYNC_ALU_STALL_SIMD2_PIX, 79)
+ GENERATE_ENUM(SQ_SYNC_ALU_STALL_SIMD3_PIX, 80)
+ GENERATE_ENUM(SQ_SYNC_TEX_STALL_PIX, 81)
+ GENERATE_ENUM(SQ_SYNC_VC_STALL_PIX, 82)
+ GENERATE_ENUM(SQ_CONSTANTS_USED_SIMD2, 83)
+ GENERATE_ENUM(SQ_CONSTANTS_SENT_SP_SIMD2, 84)
+ GENERATE_ENUM(SQ_CONSTANTS_USED_SIMD3, 85)
+ GENERATE_ENUM(SQ_CONSTANTS_SENT_SP_SIMD3, 86)
+ GENERATE_ENUM(SQ_ALU0_FIFO_FULL_SIMD0, 87)
+ GENERATE_ENUM(SQ_ALU1_FIFO_FULL_SIMD0, 88)
+ GENERATE_ENUM(SQ_ALU0_FIFO_FULL_SIMD1, 89)
+ GENERATE_ENUM(SQ_ALU1_FIFO_FULL_SIMD1, 90)
+ GENERATE_ENUM(SQ_ALU0_FIFO_FULL_SIMD2, 91)
+ GENERATE_ENUM(SQ_ALU1_FIFO_FULL_SIMD2, 92)
+ GENERATE_ENUM(SQ_ALU0_FIFO_FULL_SIMD3, 93)
+ GENERATE_ENUM(SQ_ALU1_FIFO_FULL_SIMD3, 94)
+ GENERATE_ENUM(VC_PERF_STATIC, 95)
+ GENERATE_ENUM(VC_PERF_STALLED, 96)
+ GENERATE_ENUM(VC_PERF_STARVED, 97)
+ GENERATE_ENUM(VC_PERF_SEND, 98)
+ GENERATE_ENUM(VC_PERF_ACTUAL_STARVED, 99)
+ GENERATE_ENUM(PIXEL_THREAD_0_ACTIVE, 100)
+ GENERATE_ENUM(VERTEX_THREAD_0_ACTIVE, 101)
+ GENERATE_ENUM(PIXEL_THREAD_0_NUMBER, 102)
+ GENERATE_ENUM(VERTEX_THREAD_0_NUMBER, 103)
+ GENERATE_ENUM(VERTEX_EVENT_NUMBER, 104)
+ GENERATE_ENUM(PIXEL_EVENT_NUMBER, 105)
+ GENERATE_ENUM(PTRBUFF_EF_PUSH, 106)
+ GENERATE_ENUM(PTRBUFF_EF_POP_EVENT, 107)
+ GENERATE_ENUM(PTRBUFF_EF_POP_NEW_VTX, 108)
+ GENERATE_ENUM(PTRBUFF_EF_POP_DEALLOC, 109)
+ GENERATE_ENUM(PTRBUFF_EF_POP_PVECTOR, 110)
+ GENERATE_ENUM(PTRBUFF_EF_POP_PVECTOR_X, 111)
+ GENERATE_ENUM(PTRBUFF_EF_POP_PVECTOR_VNZ, 112)
+ GENERATE_ENUM(PTRBUFF_PB_DEALLOC, 113)
+ GENERATE_ENUM(PTRBUFF_PI_STATE_PPB_POP, 114)
+ GENERATE_ENUM(PTRBUFF_PI_RTR, 115)
+ GENERATE_ENUM(PTRBUFF_PI_READ_EN, 116)
+ GENERATE_ENUM(PTRBUFF_PI_BUFF_SWAP, 117)
+ GENERATE_ENUM(PTRBUFF_SQ_FREE_BUFF, 118)
+ GENERATE_ENUM(PTRBUFF_SQ_DEC, 119)
+ GENERATE_ENUM(PTRBUFF_SC_VALID_CNTL_EVENT, 120)
+ GENERATE_ENUM(PTRBUFF_SC_VALID_IJ_XFER, 121)
+ GENERATE_ENUM(PTRBUFF_SC_NEW_VECTOR_1_Q, 122)
+ GENERATE_ENUM(PTRBUFF_QUAL_NEW_VECTOR, 123)
+ GENERATE_ENUM(PTRBUFF_QUAL_EVENT, 124)
+ GENERATE_ENUM(PTRBUFF_END_BUFFER, 125)
+ GENERATE_ENUM(PTRBUFF_FILL_QUAD, 126)
+ GENERATE_ENUM(VERTS_WRITTEN_SPI, 127)
+ GENERATE_ENUM(TP_FETCH_INSTR_EXEC, 128)
+ GENERATE_ENUM(TP_FETCH_INSTR_REQ, 129)
+ GENERATE_ENUM(TP_DATA_RETURN, 130)
+ GENERATE_ENUM(SPI_WRITE_CYCLES_SP, 131)
+ GENERATE_ENUM(SPI_WRITES_SP, 132)
+ GENERATE_ENUM(SP_ALU_INSTR_EXEC, 133)
+ GENERATE_ENUM(SP_CONST_ADDR_TO_SQ, 134)
+ GENERATE_ENUM(SP_PRED_KILLS_TO_SQ, 135)
+ GENERATE_ENUM(SP_EXPORT_CYCLES_TO_SX, 136)
+ GENERATE_ENUM(SP_EXPORTS_TO_SX, 137)
+ GENERATE_ENUM(SQ_CYCLES_ELAPSED, 138)
+ GENERATE_ENUM(SQ_TCFS_OPT_ALLOC_EXEC, 139)
+ GENERATE_ENUM(SQ_TCFS_NO_OPT_ALLOC, 140)
+ GENERATE_ENUM(SQ_ALU0_NO_OPT_ALLOC, 141)
+ GENERATE_ENUM(SQ_ALU1_NO_OPT_ALLOC, 142)
+ GENERATE_ENUM(SQ_TCFS_ARB_XFC_CNT, 143)
+ GENERATE_ENUM(SQ_ALU0_ARB_XFC_CNT, 144)
+ GENERATE_ENUM(SQ_ALU1_ARB_XFC_CNT, 145)
+ GENERATE_ENUM(SQ_TCFS_CFS_UPDATE_CNT, 146)
+ GENERATE_ENUM(SQ_ALU0_CFS_UPDATE_CNT, 147)
+ GENERATE_ENUM(SQ_ALU1_CFS_UPDATE_CNT, 148)
+ GENERATE_ENUM(SQ_VTX_PUSH_THREAD_CNT, 149)
+ GENERATE_ENUM(SQ_VTX_POP_THREAD_CNT, 150)
+ GENERATE_ENUM(SQ_PIX_PUSH_THREAD_CNT, 151)
+ GENERATE_ENUM(SQ_PIX_POP_THREAD_CNT, 152)
+ GENERATE_ENUM(SQ_PIX_TOTAL, 153)
+ GENERATE_ENUM(SQ_PIX_KILLED, 154)
+END_ENUMTYPE(SQ_PERFCNT_SELECT)
+
+START_ENUMTYPE(SX_PERFCNT_SELECT)
+ GENERATE_ENUM(SX_EXPORT_VECTORS, 0)
+ GENERATE_ENUM(SX_DUMMY_QUADS, 1)
+ GENERATE_ENUM(SX_ALPHA_FAIL, 2)
+ GENERATE_ENUM(SX_RB_QUAD_BUSY, 3)
+ GENERATE_ENUM(SX_RB_COLOR_BUSY, 4)
+ GENERATE_ENUM(SX_RB_QUAD_STALL, 5)
+ GENERATE_ENUM(SX_RB_COLOR_STALL, 6)
+END_ENUMTYPE(SX_PERFCNT_SELECT)
+
+START_ENUMTYPE(Abs_modifier)
+ GENERATE_ENUM(NO_ABS_MOD, 0)
+ GENERATE_ENUM(ABS_MOD, 1)
+END_ENUMTYPE(Abs_modifier)
+
+START_ENUMTYPE(Exporting)
+ GENERATE_ENUM(NOT_EXPORTING, 0)
+ GENERATE_ENUM(EXPORTING, 1)
+END_ENUMTYPE(Exporting)
+
+START_ENUMTYPE(ScalarOpcode)
+ GENERATE_ENUM(ADDs, 0)
+ GENERATE_ENUM(ADD_PREVs, 1)
+ GENERATE_ENUM(MULs, 2)
+ GENERATE_ENUM(MUL_PREVs, 3)
+ GENERATE_ENUM(MUL_PREV2s, 4)
+ GENERATE_ENUM(MAXs, 5)
+ GENERATE_ENUM(MINs, 6)
+ GENERATE_ENUM(SETEs, 7)
+ GENERATE_ENUM(SETGTs, 8)
+ GENERATE_ENUM(SETGTEs, 9)
+ GENERATE_ENUM(SETNEs, 10)
+ GENERATE_ENUM(FRACs, 11)
+ GENERATE_ENUM(TRUNCs, 12)
+ GENERATE_ENUM(FLOORs, 13)
+ GENERATE_ENUM(EXP_IEEE, 14)
+ GENERATE_ENUM(LOG_CLAMP, 15)
+ GENERATE_ENUM(LOG_IEEE, 16)
+ GENERATE_ENUM(RECIP_CLAMP, 17)
+ GENERATE_ENUM(RECIP_FF, 18)
+ GENERATE_ENUM(RECIP_IEEE, 19)
+ GENERATE_ENUM(RECIPSQ_CLAMP, 20)
+ GENERATE_ENUM(RECIPSQ_FF, 21)
+ GENERATE_ENUM(RECIPSQ_IEEE, 22)
+ GENERATE_ENUM(MOVAs, 23)
+ GENERATE_ENUM(MOVA_FLOORs, 24)
+ GENERATE_ENUM(SUBs, 25)
+ GENERATE_ENUM(SUB_PREVs, 26)
+ GENERATE_ENUM(PRED_SETEs, 27)
+ GENERATE_ENUM(PRED_SETNEs, 28)
+ GENERATE_ENUM(PRED_SETGTs, 29)
+ GENERATE_ENUM(PRED_SETGTEs, 30)
+ GENERATE_ENUM(PRED_SET_INVs, 31)
+ GENERATE_ENUM(PRED_SET_POPs, 32)
+ GENERATE_ENUM(PRED_SET_CLRs, 33)
+ GENERATE_ENUM(PRED_SET_RESTOREs, 34)
+ GENERATE_ENUM(KILLEs, 35)
+ GENERATE_ENUM(KILLGTs, 36)
+ GENERATE_ENUM(KILLGTEs, 37)
+ GENERATE_ENUM(KILLNEs, 38)
+ GENERATE_ENUM(KILLONEs, 39)
+ GENERATE_ENUM(SQRT_IEEE, 40)
+ GENERATE_ENUM(MUL_CONST_0, 42)
+ GENERATE_ENUM(MUL_CONST_1, 43)
+ GENERATE_ENUM(ADD_CONST_0, 44)
+ GENERATE_ENUM(ADD_CONST_1, 45)
+ GENERATE_ENUM(SUB_CONST_0, 46)
+ GENERATE_ENUM(SUB_CONST_1, 47)
+ GENERATE_ENUM(SIN, 48)
+ GENERATE_ENUM(COS, 49)
+ GENERATE_ENUM(RETAIN_PREV, 50)
+END_ENUMTYPE(ScalarOpcode)
+
+START_ENUMTYPE(SwizzleType)
+ GENERATE_ENUM(NO_SWIZZLE, 0)
+ GENERATE_ENUM(SHIFT_RIGHT_1, 1)
+ GENERATE_ENUM(SHIFT_RIGHT_2, 2)
+ GENERATE_ENUM(SHIFT_RIGHT_3, 3)
+END_ENUMTYPE(SwizzleType)
+
+START_ENUMTYPE(InputModifier)
+ GENERATE_ENUM(NIL, 0)
+ GENERATE_ENUM(NEGATE, 1)
+END_ENUMTYPE(InputModifier)
+
+START_ENUMTYPE(PredicateSelect)
+ GENERATE_ENUM(NO_PREDICATION, 0)
+ GENERATE_ENUM(PREDICATE_QUAD, 1)
+ GENERATE_ENUM(PREDICATED_2, 2)
+ GENERATE_ENUM(PREDICATED_3, 3)
+END_ENUMTYPE(PredicateSelect)
+
+START_ENUMTYPE(OperandSelect1)
+ GENERATE_ENUM(ABSOLUTE_REG, 0)
+ GENERATE_ENUM(RELATIVE_REG, 1)
+END_ENUMTYPE(OperandSelect1)
+
+START_ENUMTYPE(VectorOpcode)
+ GENERATE_ENUM(ADDv, 0)
+ GENERATE_ENUM(MULv, 1)
+ GENERATE_ENUM(MAXv, 2)
+ GENERATE_ENUM(MINv, 3)
+ GENERATE_ENUM(SETEv, 4)
+ GENERATE_ENUM(SETGTv, 5)
+ GENERATE_ENUM(SETGTEv, 6)
+ GENERATE_ENUM(SETNEv, 7)
+ GENERATE_ENUM(FRACv, 8)
+ GENERATE_ENUM(TRUNCv, 9)
+ GENERATE_ENUM(FLOORv, 10)
+ GENERATE_ENUM(MULADDv, 11)
+ GENERATE_ENUM(CNDEv, 12)
+ GENERATE_ENUM(CNDGTEv, 13)
+ GENERATE_ENUM(CNDGTv, 14)
+ GENERATE_ENUM(DOT4v, 15)
+ GENERATE_ENUM(DOT3v, 16)
+ GENERATE_ENUM(DOT2ADDv, 17)
+ GENERATE_ENUM(CUBEv, 18)
+ GENERATE_ENUM(MAX4v, 19)
+ GENERATE_ENUM(PRED_SETE_PUSHv, 20)
+ GENERATE_ENUM(PRED_SETNE_PUSHv, 21)
+ GENERATE_ENUM(PRED_SETGT_PUSHv, 22)
+ GENERATE_ENUM(PRED_SETGTE_PUSHv, 23)
+ GENERATE_ENUM(KILLEv, 24)
+ GENERATE_ENUM(KILLGTv, 25)
+ GENERATE_ENUM(KILLGTEv, 26)
+ GENERATE_ENUM(KILLNEv, 27)
+ GENERATE_ENUM(DSTv, 28)
+ GENERATE_ENUM(MOVAv, 29)
+END_ENUMTYPE(VectorOpcode)
+
+START_ENUMTYPE(OperandSelect0)
+ GENERATE_ENUM(CONSTANT, 0)
+ GENERATE_ENUM(NON_CONSTANT, 1)
+END_ENUMTYPE(OperandSelect0)
+
+START_ENUMTYPE(Ressource_type)
+ GENERATE_ENUM(ALU, 0)
+ GENERATE_ENUM(TEXTURE, 1)
+END_ENUMTYPE(Ressource_type)
+
+START_ENUMTYPE(Instruction_serial)
+ GENERATE_ENUM(NOT_SERIAL, 0)
+ GENERATE_ENUM(SERIAL, 1)
+END_ENUMTYPE(Instruction_serial)
+
+START_ENUMTYPE(VC_type)
+ GENERATE_ENUM(ALU_TP_REQUEST, 0)
+ GENERATE_ENUM(VC_REQUEST, 1)
+END_ENUMTYPE(VC_type)
+
+START_ENUMTYPE(Addressing)
+ GENERATE_ENUM(RELATIVE_ADDR, 0)
+ GENERATE_ENUM(ABSOLUTE_ADDR, 1)
+END_ENUMTYPE(Addressing)
+
+START_ENUMTYPE(CFOpcode)
+ GENERATE_ENUM(NOP, 0)
+ GENERATE_ENUM(EXECUTE, 1)
+ GENERATE_ENUM(EXECUTE_END, 2)
+ GENERATE_ENUM(COND_EXECUTE, 3)
+ GENERATE_ENUM(COND_EXECUTE_END, 4)
+ GENERATE_ENUM(COND_PRED_EXECUTE, 5)
+ GENERATE_ENUM(COND_PRED_EXECUTE_END, 6)
+ GENERATE_ENUM(LOOP_START, 7)
+ GENERATE_ENUM(LOOP_END, 8)
+ GENERATE_ENUM(COND_CALL, 9)
+ GENERATE_ENUM(RETURN, 10)
+ GENERATE_ENUM(COND_JMP, 11)
+ GENERATE_ENUM(ALLOCATE, 12)
+ GENERATE_ENUM(COND_EXECUTE_PRED_CLEAN, 13)
+ GENERATE_ENUM(COND_EXECUTE_PRED_CLEAN_END, 14)
+ GENERATE_ENUM(MARK_VS_FETCH_DONE, 15)
+END_ENUMTYPE(CFOpcode)
+
+START_ENUMTYPE(Allocation_type)
+ GENERATE_ENUM(SQ_NO_ALLOC, 0)
+ GENERATE_ENUM(SQ_POSITION, 1)
+ GENERATE_ENUM(SQ_PARAMETER_PIXEL, 2)
+ GENERATE_ENUM(SQ_MEMORY, 3)
+END_ENUMTYPE(Allocation_type)
+
+START_ENUMTYPE(TexInstOpcode)
+ GENERATE_ENUM(TEX_INST_FETCH, 1)
+ GENERATE_ENUM(TEX_INST_RESERVED_1, 2)
+ GENERATE_ENUM(TEX_INST_RESERVED_2, 3)
+ GENERATE_ENUM(TEX_INST_RESERVED_3, 4)
+ GENERATE_ENUM(TEX_INST_GET_BORDER_COLOR_FRAC, 16)
+ GENERATE_ENUM(TEX_INST_GET_COMP_TEX_LOD, 17)
+ GENERATE_ENUM(TEX_INST_GET_GRADIENTS, 18)
+ GENERATE_ENUM(TEX_INST_GET_WEIGHTS, 19)
+ GENERATE_ENUM(TEX_INST_SET_TEX_LOD, 24)
+ GENERATE_ENUM(TEX_INST_SET_GRADIENTS_H, 25)
+ GENERATE_ENUM(TEX_INST_SET_GRADIENTS_V, 26)
+ GENERATE_ENUM(TEX_INST_RESERVED_4, 27)
+END_ENUMTYPE(TexInstOpcode)
+
+START_ENUMTYPE(Addressmode)
+ GENERATE_ENUM(LOGICAL, 0)
+ GENERATE_ENUM(LOOP_RELATIVE, 1)
+END_ENUMTYPE(Addressmode)
+
+START_ENUMTYPE(TexCoordDenorm)
+ GENERATE_ENUM(TEX_COORD_NORMALIZED, 0)
+ GENERATE_ENUM(TEX_COORD_UNNORMALIZED, 1)
+END_ENUMTYPE(TexCoordDenorm)
+
+START_ENUMTYPE(SrcSel)
+ GENERATE_ENUM(SRC_SEL_X, 0)
+ GENERATE_ENUM(SRC_SEL_Y, 1)
+ GENERATE_ENUM(SRC_SEL_Z, 2)
+ GENERATE_ENUM(SRC_SEL_W, 3)
+END_ENUMTYPE(SrcSel)
+
+START_ENUMTYPE(DstSel)
+ GENERATE_ENUM(DST_SEL_X, 0)
+ GENERATE_ENUM(DST_SEL_Y, 1)
+ GENERATE_ENUM(DST_SEL_Z, 2)
+ GENERATE_ENUM(DST_SEL_W, 3)
+ GENERATE_ENUM(DST_SEL_0, 4)
+ GENERATE_ENUM(DST_SEL_1, 5)
+ GENERATE_ENUM(DST_SEL_RSVD, 6)
+ GENERATE_ENUM(DST_SEL_MASK, 7)
+END_ENUMTYPE(DstSel)
+
+START_ENUMTYPE(MagFilter)
+ GENERATE_ENUM(MAG_FILTER_POINT, 0)
+ GENERATE_ENUM(MAG_FILTER_LINEAR, 1)
+ GENERATE_ENUM(MAG_FILTER_RESERVED_0, 2)
+ GENERATE_ENUM(MAG_FILTER_USE_FETCH_CONST, 3)
+END_ENUMTYPE(MagFilter)
+
+START_ENUMTYPE(MinFilter)
+ GENERATE_ENUM(MIN_FILTER_POINT, 0)
+ GENERATE_ENUM(MIN_FILTER_LINEAR, 1)
+ GENERATE_ENUM(MIN_FILTER_RESERVED_0, 2)
+ GENERATE_ENUM(MIN_FILTER_USE_FETCH_CONST, 3)
+END_ENUMTYPE(MinFilter)
+
+START_ENUMTYPE(MipFilter)
+ GENERATE_ENUM(MIP_FILTER_POINT, 0)
+ GENERATE_ENUM(MIP_FILTER_LINEAR, 1)
+ GENERATE_ENUM(MIP_FILTER_BASEMAP, 2)
+ GENERATE_ENUM(MIP_FILTER_USE_FETCH_CONST, 3)
+END_ENUMTYPE(MipFilter)
+
+START_ENUMTYPE(AnisoFilter)
+ GENERATE_ENUM(ANISO_FILTER_DISABLED, 0)
+ GENERATE_ENUM(ANISO_FILTER_MAX_1_1, 1)
+ GENERATE_ENUM(ANISO_FILTER_MAX_2_1, 2)
+ GENERATE_ENUM(ANISO_FILTER_MAX_4_1, 3)
+ GENERATE_ENUM(ANISO_FILTER_MAX_8_1, 4)
+ GENERATE_ENUM(ANISO_FILTER_MAX_16_1, 5)
+ GENERATE_ENUM(ANISO_FILTER_USE_FETCH_CONST, 7)
+END_ENUMTYPE(AnisoFilter)
+
+START_ENUMTYPE(ArbitraryFilter)
+ GENERATE_ENUM(ARBITRARY_FILTER_2X4_SYM, 0)
+ GENERATE_ENUM(ARBITRARY_FILTER_2X4_ASYM, 1)
+ GENERATE_ENUM(ARBITRARY_FILTER_4X2_SYM, 2)
+ GENERATE_ENUM(ARBITRARY_FILTER_4X2_ASYM, 3)
+ GENERATE_ENUM(ARBITRARY_FILTER_4X4_SYM, 4)
+ GENERATE_ENUM(ARBITRARY_FILTER_4X4_ASYM, 5)
+ GENERATE_ENUM(ARBITRARY_FILTER_USE_FETCH_CONST, 7)
+END_ENUMTYPE(ArbitraryFilter)
+
+START_ENUMTYPE(VolMagFilter)
+ GENERATE_ENUM(VOL_MAG_FILTER_POINT, 0)
+ GENERATE_ENUM(VOL_MAG_FILTER_LINEAR, 1)
+ GENERATE_ENUM(VOL_MAG_FILTER_USE_FETCH_CONST, 3)
+END_ENUMTYPE(VolMagFilter)
+
+START_ENUMTYPE(VolMinFilter)
+ GENERATE_ENUM(VOL_MIN_FILTER_POINT, 0)
+ GENERATE_ENUM(VOL_MIN_FILTER_LINEAR, 1)
+ GENERATE_ENUM(VOL_MIN_FILTER_USE_FETCH_CONST, 3)
+END_ENUMTYPE(VolMinFilter)
+
+START_ENUMTYPE(PredSelect)
+ GENERATE_ENUM(NOT_PREDICATED, 0)
+ GENERATE_ENUM(PREDICATED, 1)
+END_ENUMTYPE(PredSelect)
+
+START_ENUMTYPE(SampleLocation)
+ GENERATE_ENUM(SAMPLE_CENTROID, 0)
+ GENERATE_ENUM(SAMPLE_CENTER, 1)
+END_ENUMTYPE(SampleLocation)
+
+START_ENUMTYPE(VertexMode)
+ GENERATE_ENUM(POSITION_1_VECTOR, 0)
+ GENERATE_ENUM(POSITION_2_VECTORS_UNUSED, 1)
+ GENERATE_ENUM(POSITION_2_VECTORS_SPRITE, 2)
+ GENERATE_ENUM(POSITION_2_VECTORS_EDGE, 3)
+ GENERATE_ENUM(POSITION_2_VECTORS_KILL, 4)
+ GENERATE_ENUM(POSITION_2_VECTORS_SPRITE_KILL, 5)
+ GENERATE_ENUM(POSITION_2_VECTORS_EDGE_KILL, 6)
+ GENERATE_ENUM(MULTIPASS, 7)
+END_ENUMTYPE(VertexMode)
+
+START_ENUMTYPE(Sample_Cntl)
+ GENERATE_ENUM(CENTROIDS_ONLY, 0)
+ GENERATE_ENUM(CENTERS_ONLY, 1)
+ GENERATE_ENUM(CENTROIDS_AND_CENTERS, 2)
+ GENERATE_ENUM(UNDEF, 3)
+END_ENUMTYPE(Sample_Cntl)
+
+START_ENUMTYPE(MhPerfEncode)
+ GENERATE_ENUM(CP_R0_REQUESTS, 0)
+ GENERATE_ENUM(CP_R1_REQUESTS, 1)
+ GENERATE_ENUM(CP_R2_REQUESTS, 2)
+ GENERATE_ENUM(CP_R3_REQUESTS, 3)
+ GENERATE_ENUM(CP_R4_REQUESTS, 4)
+ GENERATE_ENUM(CP_TOTAL_READ_REQUESTS, 5)
+ GENERATE_ENUM(CP_W_REQUESTS, 6)
+ GENERATE_ENUM(CP_TOTAL_REQUESTS, 7)
+ GENERATE_ENUM(CP_DATA_BYTES_WRITTEN, 8)
+ GENERATE_ENUM(CP_WRITE_CLEAN_RESPONSES, 9)
+ GENERATE_ENUM(CP_R0_READ_BURSTS_RECEIVED, 10)
+ GENERATE_ENUM(CP_R1_READ_BURSTS_RECEIVED, 11)
+ GENERATE_ENUM(CP_R2_READ_BURSTS_RECEIVED, 12)
+ GENERATE_ENUM(CP_R3_READ_BURSTS_RECEIVED, 13)
+ GENERATE_ENUM(CP_R4_READ_BURSTS_RECEIVED, 14)
+ GENERATE_ENUM(CP_TOTAL_READ_BURSTS_RECEIVED, 15)
+ GENERATE_ENUM(CP_R0_DATA_BEATS_READ, 16)
+ GENERATE_ENUM(CP_R1_DATA_BEATS_READ, 17)
+ GENERATE_ENUM(CP_R2_DATA_BEATS_READ, 18)
+ GENERATE_ENUM(CP_R3_DATA_BEATS_READ, 19)
+ GENERATE_ENUM(CP_R4_DATA_BEATS_READ, 20)
+ GENERATE_ENUM(CP_TOTAL_DATA_BEATS_READ, 21)
+ GENERATE_ENUM(VGT_R0_REQUESTS, 22)
+ GENERATE_ENUM(VGT_R1_REQUESTS, 23)
+ GENERATE_ENUM(VGT_TOTAL_REQUESTS, 24)
+ GENERATE_ENUM(VGT_R0_READ_BURSTS_RECEIVED, 25)
+ GENERATE_ENUM(VGT_R1_READ_BURSTS_RECEIVED, 26)
+ GENERATE_ENUM(VGT_TOTAL_READ_BURSTS_RECEIVED, 27)
+ GENERATE_ENUM(VGT_R0_DATA_BEATS_READ, 28)
+ GENERATE_ENUM(VGT_R1_DATA_BEATS_READ, 29)
+ GENERATE_ENUM(VGT_TOTAL_DATA_BEATS_READ, 30)
+ GENERATE_ENUM(TC_REQUESTS, 31)
+ GENERATE_ENUM(TC_ROQ_REQUESTS, 32)
+ GENERATE_ENUM(TC_INFO_SENT, 33)
+ GENERATE_ENUM(TC_READ_BURSTS_RECEIVED, 34)
+ GENERATE_ENUM(TC_DATA_BEATS_READ, 35)
+ GENERATE_ENUM(TCD_BURSTS_READ, 36)
+ GENERATE_ENUM(RB_REQUESTS, 37)
+ GENERATE_ENUM(RB_DATA_BYTES_WRITTEN, 38)
+ GENERATE_ENUM(RB_WRITE_CLEAN_RESPONSES, 39)
+ GENERATE_ENUM(AXI_READ_REQUESTS_ID_0, 40)
+ GENERATE_ENUM(AXI_READ_REQUESTS_ID_1, 41)
+ GENERATE_ENUM(AXI_READ_REQUESTS_ID_2, 42)
+ GENERATE_ENUM(AXI_READ_REQUESTS_ID_3, 43)
+ GENERATE_ENUM(AXI_READ_REQUESTS_ID_4, 44)
+ GENERATE_ENUM(AXI_READ_REQUESTS_ID_5, 45)
+ GENERATE_ENUM(AXI_READ_REQUESTS_ID_6, 46)
+ GENERATE_ENUM(AXI_READ_REQUESTS_ID_7, 47)
+ GENERATE_ENUM(AXI_TOTAL_READ_REQUESTS, 48)
+ GENERATE_ENUM(AXI_WRITE_REQUESTS_ID_0, 49)
+ GENERATE_ENUM(AXI_WRITE_REQUESTS_ID_1, 50)
+ GENERATE_ENUM(AXI_WRITE_REQUESTS_ID_2, 51)
+ GENERATE_ENUM(AXI_WRITE_REQUESTS_ID_3, 52)
+ GENERATE_ENUM(AXI_WRITE_REQUESTS_ID_4, 53)
+ GENERATE_ENUM(AXI_WRITE_REQUESTS_ID_5, 54)
+ GENERATE_ENUM(AXI_WRITE_REQUESTS_ID_6, 55)
+ GENERATE_ENUM(AXI_WRITE_REQUESTS_ID_7, 56)
+ GENERATE_ENUM(AXI_TOTAL_WRITE_REQUESTS, 57)
+ GENERATE_ENUM(AXI_TOTAL_REQUESTS_ID_0, 58)
+ GENERATE_ENUM(AXI_TOTAL_REQUESTS_ID_1, 59)
+ GENERATE_ENUM(AXI_TOTAL_REQUESTS_ID_2, 60)
+ GENERATE_ENUM(AXI_TOTAL_REQUESTS_ID_3, 61)
+ GENERATE_ENUM(AXI_TOTAL_REQUESTS_ID_4, 62)
+ GENERATE_ENUM(AXI_TOTAL_REQUESTS_ID_5, 63)
+ GENERATE_ENUM(AXI_TOTAL_REQUESTS_ID_6, 64)
+ GENERATE_ENUM(AXI_TOTAL_REQUESTS_ID_7, 65)
+ GENERATE_ENUM(AXI_TOTAL_REQUESTS, 66)
+ GENERATE_ENUM(AXI_READ_CHANNEL_BURSTS_ID_0, 67)
+ GENERATE_ENUM(AXI_READ_CHANNEL_BURSTS_ID_1, 68)
+ GENERATE_ENUM(AXI_READ_CHANNEL_BURSTS_ID_2, 69)
+ GENERATE_ENUM(AXI_READ_CHANNEL_BURSTS_ID_3, 70)
+ GENERATE_ENUM(AXI_READ_CHANNEL_BURSTS_ID_4, 71)
+ GENERATE_ENUM(AXI_READ_CHANNEL_BURSTS_ID_5, 72)
+ GENERATE_ENUM(AXI_READ_CHANNEL_BURSTS_ID_6, 73)
+ GENERATE_ENUM(AXI_READ_CHANNEL_BURSTS_ID_7, 74)
+ GENERATE_ENUM(AXI_READ_CHANNEL_TOTAL_BURSTS, 75)
+ GENERATE_ENUM(AXI_READ_CHANNEL_DATA_BEATS_READ_ID_0, 76)
+ GENERATE_ENUM(AXI_READ_CHANNEL_DATA_BEATS_READ_ID_1, 77)
+ GENERATE_ENUM(AXI_READ_CHANNEL_DATA_BEATS_READ_ID_2, 78)
+ GENERATE_ENUM(AXI_READ_CHANNEL_DATA_BEATS_READ_ID_3, 79)
+ GENERATE_ENUM(AXI_READ_CHANNEL_DATA_BEATS_READ_ID_4, 80)
+ GENERATE_ENUM(AXI_READ_CHANNEL_DATA_BEATS_READ_ID_5, 81)
+ GENERATE_ENUM(AXI_READ_CHANNEL_DATA_BEATS_READ_ID_6, 82)
+ GENERATE_ENUM(AXI_READ_CHANNEL_DATA_BEATS_READ_ID_7, 83)
+ GENERATE_ENUM(AXI_READ_CHANNEL_TOTAL_DATA_BEATS_READ, 84)
+ GENERATE_ENUM(AXI_WRITE_CHANNEL_BURSTS_ID_0, 85)
+ GENERATE_ENUM(AXI_WRITE_CHANNEL_BURSTS_ID_1, 86)
+ GENERATE_ENUM(AXI_WRITE_CHANNEL_BURSTS_ID_2, 87)
+ GENERATE_ENUM(AXI_WRITE_CHANNEL_BURSTS_ID_3, 88)
+ GENERATE_ENUM(AXI_WRITE_CHANNEL_BURSTS_ID_4, 89)
+ GENERATE_ENUM(AXI_WRITE_CHANNEL_BURSTS_ID_5, 90)
+ GENERATE_ENUM(AXI_WRITE_CHANNEL_BURSTS_ID_6, 91)
+ GENERATE_ENUM(AXI_WRITE_CHANNEL_BURSTS_ID_7, 92)
+ GENERATE_ENUM(AXI_WRITE_CHANNEL_TOTAL_BURSTS, 93)
+ GENERATE_ENUM(AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_0, 94)
+ GENERATE_ENUM(AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_1, 95)
+ GENERATE_ENUM(AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_2, 96)
+ GENERATE_ENUM(AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_3, 97)
+ GENERATE_ENUM(AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_4, 98)
+ GENERATE_ENUM(AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_5, 99)
+ GENERATE_ENUM(AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_6, 100)
+ GENERATE_ENUM(AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_7, 101)
+ GENERATE_ENUM(AXI_WRITE_CHANNEL_TOTAL_DATA_BYTES_WRITTEN, 102)
+ GENERATE_ENUM(AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_0, 103)
+ GENERATE_ENUM(AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_1, 104)
+ GENERATE_ENUM(AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_2, 105)
+ GENERATE_ENUM(AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_3, 106)
+ GENERATE_ENUM(AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_4, 107)
+ GENERATE_ENUM(AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_5, 108)
+ GENERATE_ENUM(AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_6, 109)
+ GENERATE_ENUM(AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_7, 110)
+ GENERATE_ENUM(AXI_WRITE_RESPONSE_CHANNEL_TOTAL_RESPONSES, 111)
+ GENERATE_ENUM(TOTAL_MMU_MISSES, 112)
+ GENERATE_ENUM(MMU_READ_MISSES, 113)
+ GENERATE_ENUM(MMU_WRITE_MISSES, 114)
+ GENERATE_ENUM(TOTAL_MMU_HITS, 115)
+ GENERATE_ENUM(MMU_READ_HITS, 116)
+ GENERATE_ENUM(MMU_WRITE_HITS, 117)
+ GENERATE_ENUM(SPLIT_MODE_TC_HITS, 118)
+ GENERATE_ENUM(SPLIT_MODE_TC_MISSES, 119)
+ GENERATE_ENUM(SPLIT_MODE_NON_TC_HITS, 120)
+ GENERATE_ENUM(SPLIT_MODE_NON_TC_MISSES, 121)
+ GENERATE_ENUM(STALL_AWAITING_TLB_MISS_FETCH, 122)
+ GENERATE_ENUM(MMU_TLB_MISS_READ_BURSTS_RECEIVED, 123)
+ GENERATE_ENUM(MMU_TLB_MISS_DATA_BEATS_READ, 124)
+ GENERATE_ENUM(CP_CYCLES_HELD_OFF, 125)
+ GENERATE_ENUM(VGT_CYCLES_HELD_OFF, 126)
+ GENERATE_ENUM(TC_CYCLES_HELD_OFF, 127)
+ GENERATE_ENUM(TC_ROQ_CYCLES_HELD_OFF, 128)
+ GENERATE_ENUM(TC_CYCLES_HELD_OFF_TCD_FULL, 129)
+ GENERATE_ENUM(RB_CYCLES_HELD_OFF, 130)
+ GENERATE_ENUM(TOTAL_CYCLES_ANY_CLNT_HELD_OFF, 131)
+ GENERATE_ENUM(TLB_MISS_CYCLES_HELD_OFF, 132)
+ GENERATE_ENUM(AXI_READ_REQUEST_HELD_OFF, 133)
+ GENERATE_ENUM(AXI_WRITE_REQUEST_HELD_OFF, 134)
+ GENERATE_ENUM(AXI_REQUEST_HELD_OFF, 135)
+ GENERATE_ENUM(AXI_REQUEST_HELD_OFF_INFLIGHT_LIMIT, 136)
+ GENERATE_ENUM(AXI_WRITE_DATA_HELD_OFF, 137)
+ GENERATE_ENUM(CP_SAME_PAGE_BANK_REQUESTS, 138)
+ GENERATE_ENUM(VGT_SAME_PAGE_BANK_REQUESTS, 139)
+ GENERATE_ENUM(TC_SAME_PAGE_BANK_REQUESTS, 140)
+ GENERATE_ENUM(TC_ARB_HOLD_SAME_PAGE_BANK_REQUESTS, 141)
+ GENERATE_ENUM(RB_SAME_PAGE_BANK_REQUESTS, 142)
+ GENERATE_ENUM(TOTAL_SAME_PAGE_BANK_REQUESTS, 143)
+ GENERATE_ENUM(CP_SAME_PAGE_BANK_REQUESTS_KILLED_FAIRNESS_LIMIT, 144)
+ GENERATE_ENUM(VGT_SAME_PAGE_BANK_REQUESTS_KILLED_FAIRNESS_LIMIT, 145)
+ GENERATE_ENUM(TC_SAME_PAGE_BANK_REQUESTS_KILLED_FAIRNESS_LIMIT, 146)
+ GENERATE_ENUM(RB_SAME_PAGE_BANK_REQUESTS_KILLED_FAIRNESS_LIMIT, 147)
+ GENERATE_ENUM(TOTAL_SAME_PAGE_BANK_KILLED_FAIRNESS_LIMIT, 148)
+ GENERATE_ENUM(TOTAL_MH_READ_REQUESTS, 149)
+ GENERATE_ENUM(TOTAL_MH_WRITE_REQUESTS, 150)
+ GENERATE_ENUM(TOTAL_MH_REQUESTS, 151)
+ GENERATE_ENUM(MH_BUSY, 152)
+ GENERATE_ENUM(CP_NTH_ACCESS_SAME_PAGE_BANK_SEQUENCE, 153)
+ GENERATE_ENUM(VGT_NTH_ACCESS_SAME_PAGE_BANK_SEQUENCE, 154)
+ GENERATE_ENUM(TC_NTH_ACCESS_SAME_PAGE_BANK_SEQUENCE, 155)
+ GENERATE_ENUM(RB_NTH_ACCESS_SAME_PAGE_BANK_SEQUENCE, 156)
+ GENERATE_ENUM(TC_ROQ_N_VALID_ENTRIES, 157)
+ GENERATE_ENUM(ARQ_N_ENTRIES, 158)
+ GENERATE_ENUM(WDB_N_ENTRIES, 159)
+ GENERATE_ENUM(MH_READ_LATENCY_OUTST_REQ_SUM, 160)
+ GENERATE_ENUM(MC_READ_LATENCY_OUTST_REQ_SUM, 161)
+ GENERATE_ENUM(MC_TOTAL_READ_REQUESTS, 162)
+ GENERATE_ENUM(ELAPSED_CYCLES_MH_GATED_CLK, 163)
+END_ENUMTYPE(MhPerfEncode)
+
+START_ENUMTYPE(MmuClntBeh)
+ GENERATE_ENUM(BEH_NEVR, 0)
+ GENERATE_ENUM(BEH_TRAN_RNG, 1)
+ GENERATE_ENUM(BEH_TRAN_FLT, 2)
+END_ENUMTYPE(MmuClntBeh)
+
+START_ENUMTYPE(RBBM_PERFCOUNT1_SEL)
+ GENERATE_ENUM(RBBM1_COUNT, 0)
+ GENERATE_ENUM(RBBM1_NRT_BUSY, 1)
+ GENERATE_ENUM(RBBM1_RB_BUSY, 2)
+ GENERATE_ENUM(RBBM1_SQ_CNTX0_BUSY, 3)
+ GENERATE_ENUM(RBBM1_SQ_CNTX17_BUSY, 4)
+ GENERATE_ENUM(RBBM1_VGT_BUSY, 5)
+ GENERATE_ENUM(RBBM1_VGT_NODMA_BUSY, 6)
+ GENERATE_ENUM(RBBM1_PA_BUSY, 7)
+ GENERATE_ENUM(RBBM1_SC_CNTX_BUSY, 8)
+ GENERATE_ENUM(RBBM1_TPC_BUSY, 9)
+ GENERATE_ENUM(RBBM1_TC_BUSY, 10)
+ GENERATE_ENUM(RBBM1_SX_BUSY, 11)
+ GENERATE_ENUM(RBBM1_CP_COHER_BUSY, 12)
+ GENERATE_ENUM(RBBM1_CP_NRT_BUSY, 13)
+ GENERATE_ENUM(RBBM1_GFX_IDLE_STALL, 14)
+ GENERATE_ENUM(RBBM1_INTERRUPT, 15)
+END_ENUMTYPE(RBBM_PERFCOUNT1_SEL)
+
+START_ENUMTYPE(CP_PERFCOUNT_SEL)
+ GENERATE_ENUM(ALWAYS_COUNT, 0)
+ GENERATE_ENUM(TRANS_FIFO_FULL, 1)
+ GENERATE_ENUM(TRANS_FIFO_AF, 2)
+ GENERATE_ENUM(RCIU_PFPTRANS_WAIT, 3)
+ GENERATE_ENUM(Reserved_04, 4)
+ GENERATE_ENUM(Reserved_05, 5)
+ GENERATE_ENUM(RCIU_NRTTRANS_WAIT, 6)
+ GENERATE_ENUM(Reserved_07, 7)
+ GENERATE_ENUM(CSF_NRT_READ_WAIT, 8)
+ GENERATE_ENUM(CSF_I1_FIFO_FULL, 9)
+ GENERATE_ENUM(CSF_I2_FIFO_FULL, 10)
+ GENERATE_ENUM(CSF_ST_FIFO_FULL, 11)
+ GENERATE_ENUM(Reserved_12, 12)
+ GENERATE_ENUM(CSF_RING_ROQ_FULL, 13)
+ GENERATE_ENUM(CSF_I1_ROQ_FULL, 14)
+ GENERATE_ENUM(CSF_I2_ROQ_FULL, 15)
+ GENERATE_ENUM(CSF_ST_ROQ_FULL, 16)
+ GENERATE_ENUM(Reserved_17, 17)
+ GENERATE_ENUM(MIU_TAG_MEM_FULL, 18)
+ GENERATE_ENUM(MIU_WRITECLEAN, 19)
+ GENERATE_ENUM(Reserved_20, 20)
+ GENERATE_ENUM(Reserved_21, 21)
+ GENERATE_ENUM(MIU_NRT_WRITE_STALLED, 22)
+ GENERATE_ENUM(MIU_NRT_READ_STALLED, 23)
+ GENERATE_ENUM(ME_WRITE_CONFIRM_FIFO_FULL, 24)
+ GENERATE_ENUM(ME_VS_DEALLOC_FIFO_FULL, 25)
+ GENERATE_ENUM(ME_PS_DEALLOC_FIFO_FULL, 26)
+ GENERATE_ENUM(ME_REGS_VS_EVENT_FIFO_FULL, 27)
+ GENERATE_ENUM(ME_REGS_PS_EVENT_FIFO_FULL, 28)
+ GENERATE_ENUM(ME_REGS_CF_EVENT_FIFO_FULL, 29)
+ GENERATE_ENUM(ME_MICRO_RB_STARVED, 30)
+ GENERATE_ENUM(ME_MICRO_I1_STARVED, 31)
+ GENERATE_ENUM(ME_MICRO_I2_STARVED, 32)
+ GENERATE_ENUM(ME_MICRO_ST_STARVED, 33)
+ GENERATE_ENUM(Reserved_34, 34)
+ GENERATE_ENUM(Reserved_35, 35)
+ GENERATE_ENUM(Reserved_36, 36)
+ GENERATE_ENUM(Reserved_37, 37)
+ GENERATE_ENUM(Reserved_38, 38)
+ GENERATE_ENUM(Reserved_39, 39)
+ GENERATE_ENUM(RCIU_RBBM_DWORD_SENT, 40)
+ GENERATE_ENUM(ME_BUSY_CLOCKS, 41)
+ GENERATE_ENUM(ME_WAIT_CONTEXT_AVAIL, 42)
+ GENERATE_ENUM(PFP_TYPE0_PACKET, 43)
+ GENERATE_ENUM(PFP_TYPE3_PACKET, 44)
+ GENERATE_ENUM(CSF_RB_WPTR_NEQ_RPTR, 45)
+ GENERATE_ENUM(CSF_I1_SIZE_NEQ_ZERO, 46)
+ GENERATE_ENUM(CSF_I2_SIZE_NEQ_ZERO, 47)
+ GENERATE_ENUM(CSF_RBI1I2_FETCHING, 48)
+ GENERATE_ENUM(Reserved_49, 49)
+ GENERATE_ENUM(Reserved_50, 50)
+ GENERATE_ENUM(Reserved_51, 51)
+ GENERATE_ENUM(Reserved_52, 52)
+ GENERATE_ENUM(Reserved_53, 53)
+ GENERATE_ENUM(Reserved_54, 54)
+ GENERATE_ENUM(Reserved_55, 55)
+ GENERATE_ENUM(Reserved_56, 56)
+ GENERATE_ENUM(Reserved_57, 57)
+ GENERATE_ENUM(Reserved_58, 58)
+ GENERATE_ENUM(Reserved_59, 59)
+ GENERATE_ENUM(Reserved_60, 60)
+ GENERATE_ENUM(Reserved_61, 61)
+ GENERATE_ENUM(Reserved_62, 62)
+ GENERATE_ENUM(Reserved_63, 63)
+END_ENUMTYPE(CP_PERFCOUNT_SEL)
+
+START_ENUMTYPE(ColorformatX)
+ GENERATE_ENUM(COLORX_4_4_4_4, 0)
+ GENERATE_ENUM(COLORX_1_5_5_5, 1)
+ GENERATE_ENUM(COLORX_5_6_5, 2)
+ GENERATE_ENUM(COLORX_8, 3)
+ GENERATE_ENUM(COLORX_8_8, 4)
+ GENERATE_ENUM(COLORX_8_8_8_8, 5)
+ GENERATE_ENUM(COLORX_S8_8_8_8, 6)
+ GENERATE_ENUM(COLORX_16_FLOAT, 7)
+ GENERATE_ENUM(COLORX_16_16_FLOAT, 8)
+ GENERATE_ENUM(COLORX_16_16_16_16_FLOAT, 9)
+ GENERATE_ENUM(COLORX_32_FLOAT, 10)
+ GENERATE_ENUM(COLORX_32_32_FLOAT, 11)
+ GENERATE_ENUM(COLORX_32_32_32_32_FLOAT, 12)
+ GENERATE_ENUM(COLORX_2_3_3, 13)
+ GENERATE_ENUM(COLORX_8_8_8, 14)
+END_ENUMTYPE(ColorformatX)
+
+START_ENUMTYPE(DepthformatX)
+ GENERATE_ENUM(DEPTHX_16, 0)
+ GENERATE_ENUM(DEPTHX_24_8, 1)
+END_ENUMTYPE(DepthformatX)
+
+START_ENUMTYPE(CompareFrag)
+ GENERATE_ENUM(FRAG_NEVER, 0)
+ GENERATE_ENUM(FRAG_LESS, 1)
+ GENERATE_ENUM(FRAG_EQUAL, 2)
+ GENERATE_ENUM(FRAG_LEQUAL, 3)
+ GENERATE_ENUM(FRAG_GREATER, 4)
+ GENERATE_ENUM(FRAG_NOTEQUAL, 5)
+ GENERATE_ENUM(FRAG_GEQUAL, 6)
+ GENERATE_ENUM(FRAG_ALWAYS, 7)
+END_ENUMTYPE(CompareFrag)
+
+START_ENUMTYPE(CompareRef)
+ GENERATE_ENUM(REF_NEVER, 0)
+ GENERATE_ENUM(REF_LESS, 1)
+ GENERATE_ENUM(REF_EQUAL, 2)
+ GENERATE_ENUM(REF_LEQUAL, 3)
+ GENERATE_ENUM(REF_GREATER, 4)
+ GENERATE_ENUM(REF_NOTEQUAL, 5)
+ GENERATE_ENUM(REF_GEQUAL, 6)
+ GENERATE_ENUM(REF_ALWAYS, 7)
+END_ENUMTYPE(CompareRef)
+
+START_ENUMTYPE(StencilOp)
+ GENERATE_ENUM(STENCIL_KEEP, 0)
+ GENERATE_ENUM(STENCIL_ZERO, 1)
+ GENERATE_ENUM(STENCIL_REPLACE, 2)
+ GENERATE_ENUM(STENCIL_INCR_CLAMP, 3)
+ GENERATE_ENUM(STENCIL_DECR_CLAMP, 4)
+ GENERATE_ENUM(STENCIL_INVERT, 5)
+ GENERATE_ENUM(STENCIL_INCR_WRAP, 6)
+ GENERATE_ENUM(STENCIL_DECR_WRAP, 7)
+END_ENUMTYPE(StencilOp)
+
+START_ENUMTYPE(BlendOpX)
+ GENERATE_ENUM(BLENDX_ZERO, 0)
+ GENERATE_ENUM(BLENDX_ONE, 1)
+ GENERATE_ENUM(BLENDX_SRC_COLOR, 4)
+ GENERATE_ENUM(BLENDX_ONE_MINUS_SRC_COLOR, 5)
+ GENERATE_ENUM(BLENDX_SRC_ALPHA, 6)
+ GENERATE_ENUM(BLENDX_ONE_MINUS_SRC_ALPHA, 7)
+ GENERATE_ENUM(BLENDX_DST_COLOR, 8)
+ GENERATE_ENUM(BLENDX_ONE_MINUS_DST_COLOR, 9)
+ GENERATE_ENUM(BLENDX_DST_ALPHA, 10)
+ GENERATE_ENUM(BLENDX_ONE_MINUS_DST_ALPHA, 11)
+ GENERATE_ENUM(BLENDX_CONSTANT_COLOR, 12)
+ GENERATE_ENUM(BLENDX_ONE_MINUS_CONSTANT_COLOR, 13)
+ GENERATE_ENUM(BLENDX_CONSTANT_ALPHA, 14)
+ GENERATE_ENUM(BLENDX_ONE_MINUS_CONSTANT_ALPHA, 15)
+ GENERATE_ENUM(BLENDX_SRC_ALPHA_SATURATE, 16)
+END_ENUMTYPE(BlendOpX)
+
+START_ENUMTYPE(CombFuncX)
+ GENERATE_ENUM(COMB_DST_PLUS_SRC, 0)
+ GENERATE_ENUM(COMB_SRC_MINUS_DST, 1)
+ GENERATE_ENUM(COMB_MIN_DST_SRC, 2)
+ GENERATE_ENUM(COMB_MAX_DST_SRC, 3)
+ GENERATE_ENUM(COMB_DST_MINUS_SRC, 4)
+ GENERATE_ENUM(COMB_DST_PLUS_SRC_BIAS, 5)
+END_ENUMTYPE(CombFuncX)
+
+START_ENUMTYPE(DitherModeX)
+ GENERATE_ENUM(DITHER_DISABLE, 0)
+ GENERATE_ENUM(DITHER_ALWAYS, 1)
+ GENERATE_ENUM(DITHER_IF_ALPHA_OFF, 2)
+END_ENUMTYPE(DitherModeX)
+
+START_ENUMTYPE(DitherTypeX)
+ GENERATE_ENUM(DITHER_PIXEL, 0)
+ GENERATE_ENUM(DITHER_SUBPIXEL, 1)
+END_ENUMTYPE(DitherTypeX)
+
+START_ENUMTYPE(EdramMode)
+ GENERATE_ENUM(EDRAM_NOP, 0)
+ GENERATE_ENUM(COLOR_DEPTH, 4)
+ GENERATE_ENUM(DEPTH_ONLY, 5)
+ GENERATE_ENUM(EDRAM_COPY, 6)
+END_ENUMTYPE(EdramMode)
+
+START_ENUMTYPE(SurfaceEndian)
+ GENERATE_ENUM(ENDIAN_NONE, 0)
+ GENERATE_ENUM(ENDIAN_8IN16, 1)
+ GENERATE_ENUM(ENDIAN_8IN32, 2)
+ GENERATE_ENUM(ENDIAN_16IN32, 3)
+ GENERATE_ENUM(ENDIAN_8IN64, 4)
+ GENERATE_ENUM(ENDIAN_8IN128, 5)
+END_ENUMTYPE(SurfaceEndian)
+
+START_ENUMTYPE(EdramSizeX)
+ GENERATE_ENUM(EDRAMSIZE_16KB, 0)
+ GENERATE_ENUM(EDRAMSIZE_32KB, 1)
+ GENERATE_ENUM(EDRAMSIZE_64KB, 2)
+ GENERATE_ENUM(EDRAMSIZE_128KB, 3)
+ GENERATE_ENUM(EDRAMSIZE_256KB, 4)
+ GENERATE_ENUM(EDRAMSIZE_512KB, 5)
+ GENERATE_ENUM(EDRAMSIZE_1MB, 6)
+ GENERATE_ENUM(EDRAMSIZE_2MB, 7)
+ GENERATE_ENUM(EDRAMSIZE_4MB, 8)
+ GENERATE_ENUM(EDRAMSIZE_8MB, 9)
+ GENERATE_ENUM(EDRAMSIZE_16MB, 10)
+END_ENUMTYPE(EdramSizeX)
+
+START_ENUMTYPE(RB_PERFCNT_SELECT)
+ GENERATE_ENUM(RBPERF_CNTX_BUSY, 0)
+ GENERATE_ENUM(RBPERF_CNTX_BUSY_MAX, 1)
+ GENERATE_ENUM(RBPERF_SX_QUAD_STARVED, 2)
+ GENERATE_ENUM(RBPERF_SX_QUAD_STARVED_MAX, 3)
+ GENERATE_ENUM(RBPERF_GA_GC_CH0_SYS_REQ, 4)
+ GENERATE_ENUM(RBPERF_GA_GC_CH0_SYS_REQ_MAX, 5)
+ GENERATE_ENUM(RBPERF_GA_GC_CH1_SYS_REQ, 6)
+ GENERATE_ENUM(RBPERF_GA_GC_CH1_SYS_REQ_MAX, 7)
+ GENERATE_ENUM(RBPERF_MH_STARVED, 8)
+ GENERATE_ENUM(RBPERF_MH_STARVED_MAX, 9)
+ GENERATE_ENUM(RBPERF_AZ_BC_COLOR_BUSY, 10)
+ GENERATE_ENUM(RBPERF_AZ_BC_COLOR_BUSY_MAX, 11)
+ GENERATE_ENUM(RBPERF_AZ_BC_Z_BUSY, 12)
+ GENERATE_ENUM(RBPERF_AZ_BC_Z_BUSY_MAX, 13)
+ GENERATE_ENUM(RBPERF_RB_SC_TILE_RTR_N, 14)
+ GENERATE_ENUM(RBPERF_RB_SC_TILE_RTR_N_MAX, 15)
+ GENERATE_ENUM(RBPERF_RB_SC_SAMP_RTR_N, 16)
+ GENERATE_ENUM(RBPERF_RB_SC_SAMP_RTR_N_MAX, 17)
+ GENERATE_ENUM(RBPERF_RB_SX_QUAD_RTR_N, 18)
+ GENERATE_ENUM(RBPERF_RB_SX_QUAD_RTR_N_MAX, 19)
+ GENERATE_ENUM(RBPERF_RB_SX_COLOR_RTR_N, 20)
+ GENERATE_ENUM(RBPERF_RB_SX_COLOR_RTR_N_MAX, 21)
+ GENERATE_ENUM(RBPERF_RB_SC_SAMP_LZ_BUSY, 22)
+ GENERATE_ENUM(RBPERF_RB_SC_SAMP_LZ_BUSY_MAX, 23)
+ GENERATE_ENUM(RBPERF_ZXP_STALL, 24)
+ GENERATE_ENUM(RBPERF_ZXP_STALL_MAX, 25)
+ GENERATE_ENUM(RBPERF_EVENT_PENDING, 26)
+ GENERATE_ENUM(RBPERF_EVENT_PENDING_MAX, 27)
+ GENERATE_ENUM(RBPERF_RB_MH_VALID, 28)
+ GENERATE_ENUM(RBPERF_RB_MH_VALID_MAX, 29)
+ GENERATE_ENUM(RBPERF_SX_RB_QUAD_SEND, 30)
+ GENERATE_ENUM(RBPERF_SX_RB_COLOR_SEND, 31)
+ GENERATE_ENUM(RBPERF_SC_RB_TILE_SEND, 32)
+ GENERATE_ENUM(RBPERF_SC_RB_SAMPLE_SEND, 33)
+ GENERATE_ENUM(RBPERF_SX_RB_MEM_EXPORT, 34)
+ GENERATE_ENUM(RBPERF_SX_RB_QUAD_EVENT, 35)
+ GENERATE_ENUM(RBPERF_SC_RB_TILE_EVENT_FILTERED, 36)
+ GENERATE_ENUM(RBPERF_SC_RB_TILE_EVENT_ALL, 37)
+ GENERATE_ENUM(RBPERF_RB_SC_EZ_SEND, 38)
+ GENERATE_ENUM(RBPERF_RB_SX_INDEX_SEND, 39)
+ GENERATE_ENUM(RBPERF_GMEM_INTFO_RD, 40)
+ GENERATE_ENUM(RBPERF_GMEM_INTF1_RD, 41)
+ GENERATE_ENUM(RBPERF_GMEM_INTFO_WR, 42)
+ GENERATE_ENUM(RBPERF_GMEM_INTF1_WR, 43)
+ GENERATE_ENUM(RBPERF_RB_CP_CONTEXT_DONE, 44)
+ GENERATE_ENUM(RBPERF_RB_CP_CACHE_FLUSH, 45)
+ GENERATE_ENUM(RBPERF_ZPASS_DONE, 46)
+ GENERATE_ENUM(RBPERF_ZCMD_VALID, 47)
+ GENERATE_ENUM(RBPERF_CCMD_VALID, 48)
+ GENERATE_ENUM(RBPERF_ACCUM_GRANT, 49)
+ GENERATE_ENUM(RBPERF_ACCUM_C0_GRANT, 50)
+ GENERATE_ENUM(RBPERF_ACCUM_C1_GRANT, 51)
+ GENERATE_ENUM(RBPERF_ACCUM_FULL_BE_WR, 52)
+ GENERATE_ENUM(RBPERF_ACCUM_REQUEST_NO_GRANT, 53)
+ GENERATE_ENUM(RBPERF_ACCUM_TIMEOUT_PULSE, 54)
+ GENERATE_ENUM(RBPERF_ACCUM_LIN_TIMEOUT_PULSE, 55)
+ GENERATE_ENUM(RBPERF_ACCUM_CAM_HIT_FLUSHING, 56)
+END_ENUMTYPE(RB_PERFCNT_SELECT)
+
+START_ENUMTYPE(DepthFormat)
+ GENERATE_ENUM(DEPTH_24_8, 22)
+ GENERATE_ENUM(DEPTH_24_8_FLOAT, 23)
+ GENERATE_ENUM(DEPTH_16, 24)
+END_ENUMTYPE(DepthFormat)
+
+START_ENUMTYPE(SurfaceSwap)
+ GENERATE_ENUM(SWAP_LOWRED, 0)
+ GENERATE_ENUM(SWAP_LOWBLUE, 1)
+END_ENUMTYPE(SurfaceSwap)
+
+START_ENUMTYPE(DepthArray)
+ GENERATE_ENUM(ARRAY_2D_ALT_DEPTH, 0)
+ GENERATE_ENUM(ARRAY_2D_DEPTH, 1)
+END_ENUMTYPE(DepthArray)
+
+START_ENUMTYPE(ColorArray)
+ GENERATE_ENUM(ARRAY_2D_ALT_COLOR, 0)
+ GENERATE_ENUM(ARRAY_2D_COLOR, 1)
+ GENERATE_ENUM(ARRAY_3D_SLICE_COLOR, 3)
+END_ENUMTYPE(ColorArray)
+
+START_ENUMTYPE(ColorFormat)
+ GENERATE_ENUM(COLOR_8, 2)
+ GENERATE_ENUM(COLOR_1_5_5_5, 3)
+ GENERATE_ENUM(COLOR_5_6_5, 4)
+ GENERATE_ENUM(COLOR_6_5_5, 5)
+ GENERATE_ENUM(COLOR_8_8_8_8, 6)
+ GENERATE_ENUM(COLOR_2_10_10_10, 7)
+ GENERATE_ENUM(COLOR_8_A, 8)
+ GENERATE_ENUM(COLOR_8_B, 9)
+ GENERATE_ENUM(COLOR_8_8, 10)
+ GENERATE_ENUM(COLOR_8_8_8, 11)
+ GENERATE_ENUM(COLOR_8_8_8_8_A, 14)
+ GENERATE_ENUM(COLOR_4_4_4_4, 15)
+ GENERATE_ENUM(COLOR_10_11_11, 16)
+ GENERATE_ENUM(COLOR_11_11_10, 17)
+ GENERATE_ENUM(COLOR_16, 24)
+ GENERATE_ENUM(COLOR_16_16, 25)
+ GENERATE_ENUM(COLOR_16_16_16_16, 26)
+ GENERATE_ENUM(COLOR_16_FLOAT, 30)
+ GENERATE_ENUM(COLOR_16_16_FLOAT, 31)
+ GENERATE_ENUM(COLOR_16_16_16_16_FLOAT, 32)
+ GENERATE_ENUM(COLOR_32_FLOAT, 36)
+ GENERATE_ENUM(COLOR_32_32_FLOAT, 37)
+ GENERATE_ENUM(COLOR_32_32_32_32_FLOAT, 38)
+ GENERATE_ENUM(COLOR_2_3_3, 39)
+END_ENUMTYPE(ColorFormat)
+
+START_ENUMTYPE(SurfaceNumber)
+ GENERATE_ENUM(NUMBER_UREPEAT, 0)
+ GENERATE_ENUM(NUMBER_SREPEAT, 1)
+ GENERATE_ENUM(NUMBER_UINTEGER, 2)
+ GENERATE_ENUM(NUMBER_SINTEGER, 3)
+ GENERATE_ENUM(NUMBER_GAMMA, 4)
+ GENERATE_ENUM(NUMBER_FIXED, 5)
+ GENERATE_ENUM(NUMBER_FLOAT, 7)
+END_ENUMTYPE(SurfaceNumber)
+
+START_ENUMTYPE(SurfaceFormat)
+ GENERATE_ENUM(FMT_1_REVERSE, 0)
+ GENERATE_ENUM(FMT_1, 1)
+ GENERATE_ENUM(FMT_8, 2)
+ GENERATE_ENUM(FMT_1_5_5_5, 3)
+ GENERATE_ENUM(FMT_5_6_5, 4)
+ GENERATE_ENUM(FMT_6_5_5, 5)
+ GENERATE_ENUM(FMT_8_8_8_8, 6)
+ GENERATE_ENUM(FMT_2_10_10_10, 7)
+ GENERATE_ENUM(FMT_8_A, 8)
+ GENERATE_ENUM(FMT_8_B, 9)
+ GENERATE_ENUM(FMT_8_8, 10)
+ GENERATE_ENUM(FMT_Cr_Y1_Cb_Y0, 11)
+ GENERATE_ENUM(FMT_Y1_Cr_Y0_Cb, 12)
+ GENERATE_ENUM(FMT_5_5_5_1, 13)
+ GENERATE_ENUM(FMT_8_8_8_8_A, 14)
+ GENERATE_ENUM(FMT_4_4_4_4, 15)
+ GENERATE_ENUM(FMT_8_8_8, 16)
+ GENERATE_ENUM(FMT_DXT1, 18)
+ GENERATE_ENUM(FMT_DXT2_3, 19)
+ GENERATE_ENUM(FMT_DXT4_5, 20)
+ GENERATE_ENUM(FMT_10_10_10_2, 21)
+ GENERATE_ENUM(FMT_24_8, 22)
+ GENERATE_ENUM(FMT_16, 24)
+ GENERATE_ENUM(FMT_16_16, 25)
+ GENERATE_ENUM(FMT_16_16_16_16, 26)
+ GENERATE_ENUM(FMT_16_EXPAND, 27)
+ GENERATE_ENUM(FMT_16_16_EXPAND, 28)
+ GENERATE_ENUM(FMT_16_16_16_16_EXPAND, 29)
+ GENERATE_ENUM(FMT_16_FLOAT, 30)
+ GENERATE_ENUM(FMT_16_16_FLOAT, 31)
+ GENERATE_ENUM(FMT_16_16_16_16_FLOAT, 32)
+ GENERATE_ENUM(FMT_32, 33)
+ GENERATE_ENUM(FMT_32_32, 34)
+ GENERATE_ENUM(FMT_32_32_32_32, 35)
+ GENERATE_ENUM(FMT_32_FLOAT, 36)
+ GENERATE_ENUM(FMT_32_32_FLOAT, 37)
+ GENERATE_ENUM(FMT_32_32_32_32_FLOAT, 38)
+ GENERATE_ENUM(FMT_ATI_TC_RGB, 39)
+ GENERATE_ENUM(FMT_ATI_TC_RGBA, 40)
+ GENERATE_ENUM(FMT_ATI_TC_555_565_RGB, 41)
+ GENERATE_ENUM(FMT_ATI_TC_555_565_RGBA, 42)
+ GENERATE_ENUM(FMT_ATI_TC_RGBA_INTERP, 43)
+ GENERATE_ENUM(FMT_ATI_TC_555_565_RGBA_INTERP, 44)
+ GENERATE_ENUM(FMT_ETC1_RGBA_INTERP, 46)
+ GENERATE_ENUM(FMT_ETC1_RGB, 47)
+ GENERATE_ENUM(FMT_ETC1_RGBA, 48)
+ GENERATE_ENUM(FMT_DXN, 49)
+ GENERATE_ENUM(FMT_2_3_3, 51)
+ GENERATE_ENUM(FMT_2_10_10_10_AS_16_16_16_16, 54)
+ GENERATE_ENUM(FMT_10_10_10_2_AS_16_16_16_16, 55)
+ GENERATE_ENUM(FMT_32_32_32_FLOAT, 57)
+ GENERATE_ENUM(FMT_DXT3A, 58)
+ GENERATE_ENUM(FMT_DXT5A, 59)
+ GENERATE_ENUM(FMT_CTX1, 60)
+END_ENUMTYPE(SurfaceFormat)
+
+START_ENUMTYPE(SurfaceTiling)
+ GENERATE_ENUM(ARRAY_LINEAR, 0)
+ GENERATE_ENUM(ARRAY_TILED, 1)
+END_ENUMTYPE(SurfaceTiling)
+
+START_ENUMTYPE(SurfaceArray)
+ GENERATE_ENUM(ARRAY_1D, 0)
+ GENERATE_ENUM(ARRAY_2D, 1)
+ GENERATE_ENUM(ARRAY_3D, 2)
+ GENERATE_ENUM(ARRAY_3D_SLICE, 3)
+END_ENUMTYPE(SurfaceArray)
+
+START_ENUMTYPE(SurfaceNumberX)
+ GENERATE_ENUM(NUMBERX_UREPEAT, 0)
+ GENERATE_ENUM(NUMBERX_SREPEAT, 1)
+ GENERATE_ENUM(NUMBERX_UINTEGER, 2)
+ GENERATE_ENUM(NUMBERX_SINTEGER, 3)
+ GENERATE_ENUM(NUMBERX_FLOAT, 7)
+END_ENUMTYPE(SurfaceNumberX)
+
+START_ENUMTYPE(ColorArrayX)
+ GENERATE_ENUM(ARRAYX_2D_COLOR, 0)
+ GENERATE_ENUM(ARRAYX_3D_SLICE_COLOR, 1)
+END_ENUMTYPE(ColorArrayX)
+
+
+
+
+// **************************************************************************
+// These are ones that had to be added in addition to what's generated
+// by the autoreg (in CSIM)
+// **************************************************************************
+START_ENUMTYPE(DXClipSpaceDef)
+ GENERATE_ENUM(DXCLIP_OPENGL, 0)
+ GENERATE_ENUM(DXCLIP_DIRECTX, 1)
+END_ENUMTYPE(DXClipSpaceDef)
+
+START_ENUMTYPE(PixCenter)
+ GENERATE_ENUM(PIXCENTER_D3D, 0)
+ GENERATE_ENUM(PIXCENTER_OGL, 1)
+END_ENUMTYPE(PixCenter)
+
+START_ENUMTYPE(RoundMode)
+ GENERATE_ENUM(TRUNCATE, 0)
+ GENERATE_ENUM(ROUND, 1)
+ GENERATE_ENUM(ROUNDTOEVEN, 2)
+ GENERATE_ENUM(ROUNDTOODD, 3)
+END_ENUMTYPE(RoundMode)
+
+START_ENUMTYPE(QuantMode)
+ GENERATE_ENUM(ONE_SIXTEENTH, 0)
+ GENERATE_ENUM(ONE_EIGHTH, 1)
+ GENERATE_ENUM(ONE_QUARTER, 2)
+ GENERATE_ENUM(ONE_HALF, 3)
+ GENERATE_ENUM(ONE, 4)
+END_ENUMTYPE(QuantMode)
+
+START_ENUMTYPE(FrontFace)
+ GENERATE_ENUM(FRONT_CCW, 0)
+ GENERATE_ENUM(FRONT_CW, 1)
+END_ENUMTYPE(FrontFace)
+
+START_ENUMTYPE(PolyMode)
+ GENERATE_ENUM(DISABLED, 0)
+ GENERATE_ENUM(DUALMODE, 1)
+END_ENUMTYPE(PolyMode)
+
+START_ENUMTYPE(PType)
+ GENERATE_ENUM(DRAW_POINTS, 0)
+ GENERATE_ENUM(DRAW_LINES, 1)
+ GENERATE_ENUM(DRAW_TRIANGLES, 2)
+END_ENUMTYPE(PType)
+
+START_ENUMTYPE(MSAANumSamples)
+ GENERATE_ENUM(ONE, 0)
+ GENERATE_ENUM(TWO, 1)
+ GENERATE_ENUM(FOUR, 3)
+END_ENUMTYPE(MSAANumSamples)
+
+START_ENUMTYPE(PatternBitOrder)
+ GENERATE_ENUM(LITTLE, 0)
+ GENERATE_ENUM(BIG, 1)
+END_ENUMTYPE(PatternBitOrder)
+
+START_ENUMTYPE(AutoResetCntl)
+ GENERATE_ENUM(NEVER, 0)
+ GENERATE_ENUM(EACHPRIMITIVE, 1)
+ GENERATE_ENUM(EACHPACKET, 2)
+END_ENUMTYPE(AutoResetCntl)
+
+START_ENUMTYPE(ParamShade)
+ GENERATE_ENUM(FLAT, 0)
+ GENERATE_ENUM(GOURAUD, 1)
+END_ENUMTYPE(ParamShade)
+
+START_ENUMTYPE(SamplingPattern)
+ GENERATE_ENUM(CENTROID, 0)
+ GENERATE_ENUM(PIXCENTER, 1)
+END_ENUMTYPE(SamplingPattern)
+
+START_ENUMTYPE(MSAASamples)
+ GENERATE_ENUM(ONE, 0)
+ GENERATE_ENUM(TWO, 1)
+ GENERATE_ENUM(FOUR, 2)
+END_ENUMTYPE(MSAASamples)
+
+START_ENUMTYPE(CopySampleSelect)
+ GENERATE_ENUM(SAMPLE_0, 0)
+ GENERATE_ENUM(SAMPLE_1, 1)
+ GENERATE_ENUM(SAMPLE_2, 2)
+ GENERATE_ENUM(SAMPLE_3, 3)
+ GENERATE_ENUM(SAMPLE_01, 4)
+ GENERATE_ENUM(SAMPLE_23, 5)
+ GENERATE_ENUM(SAMPLE_0123, 6)
+END_ENUMTYPE(CopySampleSelect)
+
+
+#undef START_ENUMTYPE
+#undef GENERATE_ENUM
+#undef END_ENUMTYPE
diff --git a/drivers/mxc/amd-gpu/include/reg/yamato/14/yamato_genreg.h b/drivers/mxc/amd-gpu/include/reg/yamato/14/yamato_genreg.h
new file mode 100644
index 000000000000..d44be483e953
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/reg/yamato/14/yamato_genreg.h
@@ -0,0 +1,3310 @@
+/* Copyright (c) 2002,2007-2009, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+START_REGISTER(PA_CL_VPORT_XSCALE)
+ GENERATE_FIELD(VPORT_XSCALE, float)
+END_REGISTER(PA_CL_VPORT_XSCALE)
+
+START_REGISTER(PA_CL_VPORT_XOFFSET)
+ GENERATE_FIELD(VPORT_XOFFSET, float)
+END_REGISTER(PA_CL_VPORT_XOFFSET)
+
+START_REGISTER(PA_CL_VPORT_YSCALE)
+ GENERATE_FIELD(VPORT_YSCALE, float)
+END_REGISTER(PA_CL_VPORT_YSCALE)
+
+START_REGISTER(PA_CL_VPORT_YOFFSET)
+ GENERATE_FIELD(VPORT_YOFFSET, float)
+END_REGISTER(PA_CL_VPORT_YOFFSET)
+
+START_REGISTER(PA_CL_VPORT_ZSCALE)
+ GENERATE_FIELD(VPORT_ZSCALE, float)
+END_REGISTER(PA_CL_VPORT_ZSCALE)
+
+START_REGISTER(PA_CL_VPORT_ZOFFSET)
+ GENERATE_FIELD(VPORT_ZOFFSET, float)
+END_REGISTER(PA_CL_VPORT_ZOFFSET)
+
+START_REGISTER(PA_CL_VTE_CNTL)
+ GENERATE_FIELD(VPORT_X_SCALE_ENA, bool)
+ GENERATE_FIELD(VPORT_X_OFFSET_ENA, bool)
+ GENERATE_FIELD(VPORT_Y_SCALE_ENA, bool)
+ GENERATE_FIELD(VPORT_Y_OFFSET_ENA, bool)
+ GENERATE_FIELD(VPORT_Z_SCALE_ENA, bool)
+ GENERATE_FIELD(VPORT_Z_OFFSET_ENA, bool)
+ GENERATE_FIELD(VTX_XY_FMT, bool)
+ GENERATE_FIELD(VTX_Z_FMT, bool)
+ GENERATE_FIELD(VTX_W0_FMT, bool)
+ GENERATE_FIELD(PERFCOUNTER_REF, bool)
+END_REGISTER(PA_CL_VTE_CNTL)
+
+START_REGISTER(PA_CL_CLIP_CNTL)
+ GENERATE_FIELD(CLIP_DISABLE, bool)
+ GENERATE_FIELD(BOUNDARY_EDGE_FLAG_ENA, bool)
+ GENERATE_FIELD(DX_CLIP_SPACE_DEF, DXClipSpaceDef)
+ GENERATE_FIELD(DIS_CLIP_ERR_DETECT, bool)
+ GENERATE_FIELD(VTX_KILL_OR, bool)
+ GENERATE_FIELD(XY_NAN_RETAIN, bool)
+ GENERATE_FIELD(Z_NAN_RETAIN, bool)
+ GENERATE_FIELD(W_NAN_RETAIN, bool)
+END_REGISTER(PA_CL_CLIP_CNTL)
+
+START_REGISTER(PA_CL_GB_VERT_CLIP_ADJ)
+ GENERATE_FIELD(DATA_REGISTER, float)
+END_REGISTER(PA_CL_GB_VERT_CLIP_ADJ)
+
+START_REGISTER(PA_CL_GB_VERT_DISC_ADJ)
+ GENERATE_FIELD(DATA_REGISTER, float)
+END_REGISTER(PA_CL_GB_VERT_DISC_ADJ)
+
+START_REGISTER(PA_CL_GB_HORZ_CLIP_ADJ)
+ GENERATE_FIELD(DATA_REGISTER, float)
+END_REGISTER(PA_CL_GB_HORZ_CLIP_ADJ)
+
+START_REGISTER(PA_CL_GB_HORZ_DISC_ADJ)
+ GENERATE_FIELD(DATA_REGISTER, float)
+END_REGISTER(PA_CL_GB_HORZ_DISC_ADJ)
+
+START_REGISTER(PA_CL_ENHANCE)
+ GENERATE_FIELD(CLIP_VTX_REORDER_ENA, bool)
+ GENERATE_FIELD(ECO_SPARE3, int)
+ GENERATE_FIELD(ECO_SPARE2, int)
+ GENERATE_FIELD(ECO_SPARE1, int)
+ GENERATE_FIELD(ECO_SPARE0, int)
+END_REGISTER(PA_CL_ENHANCE)
+
+START_REGISTER(PA_SC_ENHANCE)
+ GENERATE_FIELD(ECO_SPARE3, int)
+ GENERATE_FIELD(ECO_SPARE2, int)
+ GENERATE_FIELD(ECO_SPARE1, int)
+ GENERATE_FIELD(ECO_SPARE0, int)
+END_REGISTER(PA_SC_ENHANCE)
+
+START_REGISTER(PA_SU_VTX_CNTL)
+ GENERATE_FIELD(PIX_CENTER, PixCenter)
+ GENERATE_FIELD(ROUND_MODE, RoundMode)
+ GENERATE_FIELD(QUANT_MODE, QuantMode)
+END_REGISTER(PA_SU_VTX_CNTL)
+
+START_REGISTER(PA_SU_POINT_SIZE)
+ GENERATE_FIELD(HEIGHT, fixed12_4)
+ GENERATE_FIELD(WIDTH, fixed12_4)
+END_REGISTER(PA_SU_POINT_SIZE)
+
+START_REGISTER(PA_SU_POINT_MINMAX)
+ GENERATE_FIELD(MIN_SIZE, fixed12_4)
+ GENERATE_FIELD(MAX_SIZE, fixed12_4)
+END_REGISTER(PA_SU_POINT_MINMAX)
+
+START_REGISTER(PA_SU_LINE_CNTL)
+ GENERATE_FIELD(WIDTH, fixed12_4)
+END_REGISTER(PA_SU_LINE_CNTL)
+
+START_REGISTER(PA_SU_SC_MODE_CNTL)
+ GENERATE_FIELD(CULL_FRONT, bool)
+ GENERATE_FIELD(CULL_BACK, bool)
+ GENERATE_FIELD(FACE, FrontFace)
+ GENERATE_FIELD(POLY_MODE, PolyMode)
+ GENERATE_FIELD(POLYMODE_FRONT_PTYPE, PType)
+ GENERATE_FIELD(POLYMODE_BACK_PTYPE, PType)
+ GENERATE_FIELD(POLY_OFFSET_FRONT_ENABLE, bool)
+ GENERATE_FIELD(POLY_OFFSET_BACK_ENABLE, bool)
+ GENERATE_FIELD(POLY_OFFSET_PARA_ENABLE, bool)
+ GENERATE_FIELD(MSAA_ENABLE, bool)
+ GENERATE_FIELD(VTX_WINDOW_OFFSET_ENABLE, bool)
+ GENERATE_FIELD(LINE_STIPPLE_ENABLE, bool)
+ GENERATE_FIELD(PROVOKING_VTX_LAST, bool)
+ GENERATE_FIELD(PERSP_CORR_DIS, bool)
+ GENERATE_FIELD(MULTI_PRIM_IB_ENA, bool)
+ GENERATE_FIELD(QUAD_ORDER_ENABLE, bool)
+ GENERATE_FIELD(WAIT_RB_IDLE_ALL_TRI, bool)
+ GENERATE_FIELD(WAIT_RB_IDLE_FIRST_TRI_NEW_STATE, bool)
+END_REGISTER(PA_SU_SC_MODE_CNTL)
+
+START_REGISTER(PA_SU_POLY_OFFSET_FRONT_SCALE)
+ GENERATE_FIELD(SCALE, float)
+END_REGISTER(PA_SU_POLY_OFFSET_FRONT_SCALE)
+
+START_REGISTER(PA_SU_POLY_OFFSET_FRONT_OFFSET)
+ GENERATE_FIELD(OFFSET, float)
+END_REGISTER(PA_SU_POLY_OFFSET_FRONT_OFFSET)
+
+START_REGISTER(PA_SU_POLY_OFFSET_BACK_SCALE)
+ GENERATE_FIELD(SCALE, float)
+END_REGISTER(PA_SU_POLY_OFFSET_BACK_SCALE)
+
+START_REGISTER(PA_SU_POLY_OFFSET_BACK_OFFSET)
+ GENERATE_FIELD(OFFSET, float)
+END_REGISTER(PA_SU_POLY_OFFSET_BACK_OFFSET)
+
+START_REGISTER(PA_SU_PERFCOUNTER0_SELECT)
+ GENERATE_FIELD(PERF_SEL, SU_PERFCNT_SELECT)
+END_REGISTER(PA_SU_PERFCOUNTER0_SELECT)
+
+START_REGISTER(PA_SU_PERFCOUNTER1_SELECT)
+ GENERATE_FIELD(PERF_SEL, int)
+END_REGISTER(PA_SU_PERFCOUNTER1_SELECT)
+
+START_REGISTER(PA_SU_PERFCOUNTER2_SELECT)
+ GENERATE_FIELD(PERF_SEL, int)
+END_REGISTER(PA_SU_PERFCOUNTER2_SELECT)
+
+START_REGISTER(PA_SU_PERFCOUNTER3_SELECT)
+ GENERATE_FIELD(PERF_SEL, int)
+END_REGISTER(PA_SU_PERFCOUNTER3_SELECT)
+
+START_REGISTER(PA_SU_PERFCOUNTER0_LOW)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(PA_SU_PERFCOUNTER0_LOW)
+
+START_REGISTER(PA_SU_PERFCOUNTER0_HI)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(PA_SU_PERFCOUNTER0_HI)
+
+START_REGISTER(PA_SU_PERFCOUNTER1_LOW)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(PA_SU_PERFCOUNTER1_LOW)
+
+START_REGISTER(PA_SU_PERFCOUNTER1_HI)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(PA_SU_PERFCOUNTER1_HI)
+
+START_REGISTER(PA_SU_PERFCOUNTER2_LOW)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(PA_SU_PERFCOUNTER2_LOW)
+
+START_REGISTER(PA_SU_PERFCOUNTER2_HI)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(PA_SU_PERFCOUNTER2_HI)
+
+START_REGISTER(PA_SU_PERFCOUNTER3_LOW)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(PA_SU_PERFCOUNTER3_LOW)
+
+START_REGISTER(PA_SU_PERFCOUNTER3_HI)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(PA_SU_PERFCOUNTER3_HI)
+
+START_REGISTER(PA_SC_WINDOW_OFFSET)
+ GENERATE_FIELD(WINDOW_X_OFFSET, signedint15)
+ GENERATE_FIELD(WINDOW_Y_OFFSET, signedint15)
+END_REGISTER(PA_SC_WINDOW_OFFSET)
+
+START_REGISTER(PA_SC_AA_CONFIG)
+ GENERATE_FIELD(MSAA_NUM_SAMPLES, MSAANumSamples)
+ GENERATE_FIELD(MAX_SAMPLE_DIST, int)
+END_REGISTER(PA_SC_AA_CONFIG)
+
+START_REGISTER(PA_SC_AA_MASK)
+ GENERATE_FIELD(AA_MASK, hex)
+END_REGISTER(PA_SC_AA_MASK)
+
+START_REGISTER(PA_SC_LINE_STIPPLE)
+ GENERATE_FIELD(LINE_PATTERN, hex)
+ GENERATE_FIELD(REPEAT_COUNT, intMinusOne)
+ GENERATE_FIELD(PATTERN_BIT_ORDER, PatternBitOrder)
+ GENERATE_FIELD(AUTO_RESET_CNTL, AutoResetCntl)
+END_REGISTER(PA_SC_LINE_STIPPLE)
+
+START_REGISTER(PA_SC_LINE_CNTL)
+ GENERATE_FIELD(BRES_CNTL, int)
+ GENERATE_FIELD(USE_BRES_CNTL, bool)
+ GENERATE_FIELD(EXPAND_LINE_WIDTH, bool)
+ GENERATE_FIELD(LAST_PIXEL, bool)
+END_REGISTER(PA_SC_LINE_CNTL)
+
+START_REGISTER(PA_SC_WINDOW_SCISSOR_TL)
+ GENERATE_FIELD(TL_X, int)
+ GENERATE_FIELD(TL_Y, int)
+ GENERATE_FIELD(WINDOW_OFFSET_DISABLE, bool)
+END_REGISTER(PA_SC_WINDOW_SCISSOR_TL)
+
+START_REGISTER(PA_SC_WINDOW_SCISSOR_BR)
+ GENERATE_FIELD(BR_X, int)
+ GENERATE_FIELD(BR_Y, int)
+END_REGISTER(PA_SC_WINDOW_SCISSOR_BR)
+
+START_REGISTER(PA_SC_SCREEN_SCISSOR_TL)
+ GENERATE_FIELD(TL_X, int)
+ GENERATE_FIELD(TL_Y, int)
+END_REGISTER(PA_SC_SCREEN_SCISSOR_TL)
+
+START_REGISTER(PA_SC_SCREEN_SCISSOR_BR)
+ GENERATE_FIELD(BR_X, int)
+ GENERATE_FIELD(BR_Y, int)
+END_REGISTER(PA_SC_SCREEN_SCISSOR_BR)
+
+START_REGISTER(PA_SC_VIZ_QUERY)
+ GENERATE_FIELD(VIZ_QUERY_ENA, bool)
+ GENERATE_FIELD(VIZ_QUERY_ID, int)
+ GENERATE_FIELD(KILL_PIX_POST_EARLY_Z, bool)
+END_REGISTER(PA_SC_VIZ_QUERY)
+
+START_REGISTER(PA_SC_VIZ_QUERY_STATUS)
+ GENERATE_FIELD(STATUS_BITS, hex)
+END_REGISTER(PA_SC_VIZ_QUERY_STATUS)
+
+START_REGISTER(PA_SC_LINE_STIPPLE_STATE)
+ GENERATE_FIELD(CURRENT_PTR, int)
+ GENERATE_FIELD(CURRENT_COUNT, int)
+END_REGISTER(PA_SC_LINE_STIPPLE_STATE)
+
+START_REGISTER(PA_SC_PERFCOUNTER0_SELECT)
+ GENERATE_FIELD(PERF_SEL, SC_PERFCNT_SELECT)
+END_REGISTER(PA_SC_PERFCOUNTER0_SELECT)
+
+START_REGISTER(PA_SC_PERFCOUNTER0_LOW)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(PA_SC_PERFCOUNTER0_LOW)
+
+START_REGISTER(PA_SC_PERFCOUNTER0_HI)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(PA_SC_PERFCOUNTER0_HI)
+
+START_REGISTER(PA_CL_CNTL_STATUS)
+ GENERATE_FIELD(CL_BUSY, int)
+END_REGISTER(PA_CL_CNTL_STATUS)
+
+START_REGISTER(PA_SU_CNTL_STATUS)
+ GENERATE_FIELD(SU_BUSY, int)
+END_REGISTER(PA_SU_CNTL_STATUS)
+
+START_REGISTER(PA_SC_CNTL_STATUS)
+ GENERATE_FIELD(SC_BUSY, int)
+END_REGISTER(PA_SC_CNTL_STATUS)
+
+START_REGISTER(PA_SU_DEBUG_CNTL)
+ GENERATE_FIELD(SU_DEBUG_INDX, int)
+END_REGISTER(PA_SU_DEBUG_CNTL)
+
+START_REGISTER(PA_SU_DEBUG_DATA)
+ GENERATE_FIELD(DATA, hex)
+END_REGISTER(PA_SU_DEBUG_DATA)
+
+START_REGISTER(PA_SC_DEBUG_CNTL)
+ GENERATE_FIELD(SC_DEBUG_INDX, int)
+END_REGISTER(PA_SC_DEBUG_CNTL)
+
+START_REGISTER(PA_SC_DEBUG_DATA)
+ GENERATE_FIELD(DATA, int)
+END_REGISTER(PA_SC_DEBUG_DATA)
+
+START_REGISTER(GFX_COPY_STATE)
+ GENERATE_FIELD(SRC_STATE_ID, int)
+END_REGISTER(GFX_COPY_STATE)
+
+START_REGISTER(VGT_DRAW_INITIATOR)
+ GENERATE_FIELD(PRIM_TYPE, VGT_DI_PRIM_TYPE)
+ GENERATE_FIELD(SOURCE_SELECT, VGT_DI_SOURCE_SELECT)
+ GENERATE_FIELD(INDEX_SIZE, VGT_DI_INDEX_SIZE)
+ GENERATE_FIELD(NOT_EOP, bool)
+ GENERATE_FIELD(SMALL_INDEX, VGT_DI_SMALL_INDEX)
+ GENERATE_FIELD(PRE_FETCH_CULL_ENABLE, VGT_DI_PRE_FETCH_CULL_ENABLE)
+ GENERATE_FIELD(GRP_CULL_ENABLE, VGT_DI_GRP_CULL_ENABLE)
+ GENERATE_FIELD(NUM_INDICES, uint)
+END_REGISTER(VGT_DRAW_INITIATOR)
+
+START_REGISTER(VGT_EVENT_INITIATOR)
+ GENERATE_FIELD(EVENT_TYPE, VGT_EVENT_TYPE)
+END_REGISTER(VGT_EVENT_INITIATOR)
+
+START_REGISTER(VGT_DMA_BASE)
+ GENERATE_FIELD(BASE_ADDR, uint)
+END_REGISTER(VGT_DMA_BASE)
+
+START_REGISTER(VGT_DMA_SIZE)
+ GENERATE_FIELD(NUM_WORDS, uint)
+ GENERATE_FIELD(SWAP_MODE, VGT_DMA_SWAP_MODE)
+END_REGISTER(VGT_DMA_SIZE)
+
+START_REGISTER(VGT_BIN_BASE)
+ GENERATE_FIELD(BIN_BASE_ADDR, uint)
+END_REGISTER(VGT_BIN_BASE)
+
+START_REGISTER(VGT_BIN_SIZE)
+ GENERATE_FIELD(NUM_WORDS, uint)
+END_REGISTER(VGT_BIN_SIZE)
+
+START_REGISTER(VGT_CURRENT_BIN_ID_MIN)
+ GENERATE_FIELD(COLUMN, int)
+ GENERATE_FIELD(ROW, int)
+ GENERATE_FIELD(GUARD_BAND, int)
+END_REGISTER(VGT_CURRENT_BIN_ID_MIN)
+
+START_REGISTER(VGT_CURRENT_BIN_ID_MAX)
+ GENERATE_FIELD(COLUMN, int)
+ GENERATE_FIELD(ROW, int)
+ GENERATE_FIELD(GUARD_BAND, int)
+END_REGISTER(VGT_CURRENT_BIN_ID_MAX)
+
+START_REGISTER(VGT_IMMED_DATA)
+ GENERATE_FIELD(DATA, hex)
+END_REGISTER(VGT_IMMED_DATA)
+
+START_REGISTER(VGT_MAX_VTX_INDX)
+ GENERATE_FIELD(MAX_INDX, int)
+END_REGISTER(VGT_MAX_VTX_INDX)
+
+START_REGISTER(VGT_MIN_VTX_INDX)
+ GENERATE_FIELD(MIN_INDX, int)
+END_REGISTER(VGT_MIN_VTX_INDX)
+
+START_REGISTER(VGT_INDX_OFFSET)
+ GENERATE_FIELD(INDX_OFFSET, int)
+END_REGISTER(VGT_INDX_OFFSET)
+
+START_REGISTER(VGT_VERTEX_REUSE_BLOCK_CNTL)
+ GENERATE_FIELD(VTX_REUSE_DEPTH, int)
+END_REGISTER(VGT_VERTEX_REUSE_BLOCK_CNTL)
+
+START_REGISTER(VGT_OUT_DEALLOC_CNTL)
+ GENERATE_FIELD(DEALLOC_DIST, int)
+END_REGISTER(VGT_OUT_DEALLOC_CNTL)
+
+START_REGISTER(VGT_MULTI_PRIM_IB_RESET_INDX)
+ GENERATE_FIELD(RESET_INDX, int)
+END_REGISTER(VGT_MULTI_PRIM_IB_RESET_INDX)
+
+START_REGISTER(VGT_ENHANCE)
+ GENERATE_FIELD(MISC, hex)
+END_REGISTER(VGT_ENHANCE)
+
+START_REGISTER(VGT_VTX_VECT_EJECT_REG)
+ GENERATE_FIELD(PRIM_COUNT, int)
+END_REGISTER(VGT_VTX_VECT_EJECT_REG)
+
+START_REGISTER(VGT_LAST_COPY_STATE)
+ GENERATE_FIELD(SRC_STATE_ID, int)
+ GENERATE_FIELD(DST_STATE_ID, int)
+END_REGISTER(VGT_LAST_COPY_STATE)
+
+START_REGISTER(VGT_DEBUG_CNTL)
+ GENERATE_FIELD(VGT_DEBUG_INDX, int)
+END_REGISTER(VGT_DEBUG_CNTL)
+
+START_REGISTER(VGT_DEBUG_DATA)
+ GENERATE_FIELD(DATA, hex)
+END_REGISTER(VGT_DEBUG_DATA)
+
+START_REGISTER(VGT_CNTL_STATUS)
+ GENERATE_FIELD(VGT_BUSY, int)
+ GENERATE_FIELD(VGT_DMA_BUSY, int)
+ GENERATE_FIELD(VGT_DMA_REQ_BUSY, int)
+ GENERATE_FIELD(VGT_GRP_BUSY, int)
+ GENERATE_FIELD(VGT_VR_BUSY, int)
+ GENERATE_FIELD(VGT_BIN_BUSY, int)
+ GENERATE_FIELD(VGT_PT_BUSY, int)
+ GENERATE_FIELD(VGT_OUT_BUSY, int)
+ GENERATE_FIELD(VGT_OUT_INDX_BUSY, int)
+END_REGISTER(VGT_CNTL_STATUS)
+
+START_REGISTER(VGT_CRC_SQ_DATA)
+ GENERATE_FIELD(CRC, hex)
+END_REGISTER(VGT_CRC_SQ_DATA)
+
+START_REGISTER(VGT_CRC_SQ_CTRL)
+ GENERATE_FIELD(CRC, hex)
+END_REGISTER(VGT_CRC_SQ_CTRL)
+
+START_REGISTER(VGT_PERFCOUNTER0_SELECT)
+ GENERATE_FIELD(PERF_SEL, VGT_PERFCOUNT_SELECT)
+END_REGISTER(VGT_PERFCOUNTER0_SELECT)
+
+START_REGISTER(VGT_PERFCOUNTER1_SELECT)
+ GENERATE_FIELD(PERF_SEL, VGT_PERFCOUNT_SELECT)
+END_REGISTER(VGT_PERFCOUNTER1_SELECT)
+
+START_REGISTER(VGT_PERFCOUNTER2_SELECT)
+ GENERATE_FIELD(PERF_SEL, VGT_PERFCOUNT_SELECT)
+END_REGISTER(VGT_PERFCOUNTER2_SELECT)
+
+START_REGISTER(VGT_PERFCOUNTER3_SELECT)
+ GENERATE_FIELD(PERF_SEL, VGT_PERFCOUNT_SELECT)
+END_REGISTER(VGT_PERFCOUNTER3_SELECT)
+
+START_REGISTER(VGT_PERFCOUNTER0_LOW)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(VGT_PERFCOUNTER0_LOW)
+
+START_REGISTER(VGT_PERFCOUNTER1_LOW)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(VGT_PERFCOUNTER1_LOW)
+
+START_REGISTER(VGT_PERFCOUNTER2_LOW)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(VGT_PERFCOUNTER2_LOW)
+
+START_REGISTER(VGT_PERFCOUNTER3_LOW)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(VGT_PERFCOUNTER3_LOW)
+
+START_REGISTER(VGT_PERFCOUNTER0_HI)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(VGT_PERFCOUNTER0_HI)
+
+START_REGISTER(VGT_PERFCOUNTER1_HI)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(VGT_PERFCOUNTER1_HI)
+
+START_REGISTER(VGT_PERFCOUNTER2_HI)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(VGT_PERFCOUNTER2_HI)
+
+START_REGISTER(VGT_PERFCOUNTER3_HI)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(VGT_PERFCOUNTER3_HI)
+
+START_REGISTER(TC_CNTL_STATUS)
+ GENERATE_FIELD(L2_INVALIDATE, int)
+ GENERATE_FIELD(TC_L2_HIT_MISS, int)
+ GENERATE_FIELD(TC_BUSY, int)
+END_REGISTER(TC_CNTL_STATUS)
+
+START_REGISTER(TCR_CHICKEN)
+ GENERATE_FIELD(SPARE, hex)
+END_REGISTER(TCR_CHICKEN)
+
+START_REGISTER(TCF_CHICKEN)
+ GENERATE_FIELD(SPARE, hex)
+END_REGISTER(TCF_CHICKEN)
+
+START_REGISTER(TCM_CHICKEN)
+ GENERATE_FIELD(TCO_READ_LATENCY_FIFO_PROG_DEPTH, int)
+ GENERATE_FIELD(ETC_COLOR_ENDIAN, int)
+ GENERATE_FIELD(SPARE, hex)
+END_REGISTER(TCM_CHICKEN)
+
+START_REGISTER(TCR_PERFCOUNTER0_SELECT)
+ GENERATE_FIELD(PERFCOUNTER_SELECT, TCR_PERFCOUNT_SELECT)
+END_REGISTER(TCR_PERFCOUNTER0_SELECT)
+
+START_REGISTER(TCR_PERFCOUNTER1_SELECT)
+ GENERATE_FIELD(PERFCOUNTER_SELECT, TCR_PERFCOUNT_SELECT)
+END_REGISTER(TCR_PERFCOUNTER1_SELECT)
+
+START_REGISTER(TCR_PERFCOUNTER0_HI)
+ GENERATE_FIELD(PERFCOUNTER_HI, int)
+END_REGISTER(TCR_PERFCOUNTER0_HI)
+
+START_REGISTER(TCR_PERFCOUNTER1_HI)
+ GENERATE_FIELD(PERFCOUNTER_HI, int)
+END_REGISTER(TCR_PERFCOUNTER1_HI)
+
+START_REGISTER(TCR_PERFCOUNTER0_LOW)
+ GENERATE_FIELD(PERFCOUNTER_LOW, int)
+END_REGISTER(TCR_PERFCOUNTER0_LOW)
+
+START_REGISTER(TCR_PERFCOUNTER1_LOW)
+ GENERATE_FIELD(PERFCOUNTER_LOW, int)
+END_REGISTER(TCR_PERFCOUNTER1_LOW)
+
+START_REGISTER(TP_TC_CLKGATE_CNTL)
+ GENERATE_FIELD(TP_BUSY_EXTEND, int)
+ GENERATE_FIELD(TC_BUSY_EXTEND, int)
+END_REGISTER(TP_TC_CLKGATE_CNTL)
+
+START_REGISTER(TPC_CNTL_STATUS)
+ GENERATE_FIELD(TPC_INPUT_BUSY, int)
+ GENERATE_FIELD(TPC_TC_FIFO_BUSY, int)
+ GENERATE_FIELD(TPC_STATE_FIFO_BUSY, int)
+ GENERATE_FIELD(TPC_FETCH_FIFO_BUSY, int)
+ GENERATE_FIELD(TPC_WALKER_PIPE_BUSY, int)
+ GENERATE_FIELD(TPC_WALK_FIFO_BUSY, int)
+ GENERATE_FIELD(TPC_WALKER_BUSY, int)
+ GENERATE_FIELD(TPC_ALIGNER_PIPE_BUSY, int)
+ GENERATE_FIELD(TPC_ALIGN_FIFO_BUSY, int)
+ GENERATE_FIELD(TPC_ALIGNER_BUSY, int)
+ GENERATE_FIELD(TPC_RR_FIFO_BUSY, int)
+ GENERATE_FIELD(TPC_BLEND_PIPE_BUSY, int)
+ GENERATE_FIELD(TPC_OUT_FIFO_BUSY, int)
+ GENERATE_FIELD(TPC_BLEND_BUSY, int)
+ GENERATE_FIELD(TF_TW_RTS, int)
+ GENERATE_FIELD(TF_TW_STATE_RTS, int)
+ GENERATE_FIELD(TF_TW_RTR, int)
+ GENERATE_FIELD(TW_TA_RTS, int)
+ GENERATE_FIELD(TW_TA_TT_RTS, int)
+ GENERATE_FIELD(TW_TA_LAST_RTS, int)
+ GENERATE_FIELD(TW_TA_RTR, int)
+ GENERATE_FIELD(TA_TB_RTS, int)
+ GENERATE_FIELD(TA_TB_TT_RTS, int)
+ GENERATE_FIELD(TA_TB_RTR, int)
+ GENERATE_FIELD(TA_TF_RTS, int)
+ GENERATE_FIELD(TA_TF_TC_FIFO_REN, int)
+ GENERATE_FIELD(TP_SQ_DEC, int)
+ GENERATE_FIELD(TPC_BUSY, int)
+END_REGISTER(TPC_CNTL_STATUS)
+
+START_REGISTER(TPC_DEBUG0)
+ GENERATE_FIELD(LOD_CNTL, int)
+ GENERATE_FIELD(IC_CTR, int)
+ GENERATE_FIELD(WALKER_CNTL, int)
+ GENERATE_FIELD(ALIGNER_CNTL, int)
+ GENERATE_FIELD(PREV_TC_STATE_VALID, int)
+ GENERATE_FIELD(WALKER_STATE, int)
+ GENERATE_FIELD(ALIGNER_STATE, int)
+ GENERATE_FIELD(REG_CLK_EN, int)
+ GENERATE_FIELD(TPC_CLK_EN, int)
+ GENERATE_FIELD(SQ_TP_WAKEUP, int)
+END_REGISTER(TPC_DEBUG0)
+
+START_REGISTER(TPC_DEBUG1)
+ GENERATE_FIELD(UNUSED, int)
+END_REGISTER(TPC_DEBUG1)
+
+START_REGISTER(TPC_CHICKEN)
+ GENERATE_FIELD(BLEND_PRECISION, int)
+ GENERATE_FIELD(SPARE, int)
+END_REGISTER(TPC_CHICKEN)
+
+START_REGISTER(TP0_CNTL_STATUS)
+ GENERATE_FIELD(TP_INPUT_BUSY, int)
+ GENERATE_FIELD(TP_LOD_BUSY, int)
+ GENERATE_FIELD(TP_LOD_FIFO_BUSY, int)
+ GENERATE_FIELD(TP_ADDR_BUSY, int)
+ GENERATE_FIELD(TP_ALIGN_FIFO_BUSY, int)
+ GENERATE_FIELD(TP_ALIGNER_BUSY, int)
+ GENERATE_FIELD(TP_TC_FIFO_BUSY, int)
+ GENERATE_FIELD(TP_RR_FIFO_BUSY, int)
+ GENERATE_FIELD(TP_FETCH_BUSY, int)
+ GENERATE_FIELD(TP_CH_BLEND_BUSY, int)
+ GENERATE_FIELD(TP_TT_BUSY, int)
+ GENERATE_FIELD(TP_HICOLOR_BUSY, int)
+ GENERATE_FIELD(TP_BLEND_BUSY, int)
+ GENERATE_FIELD(TP_OUT_FIFO_BUSY, int)
+ GENERATE_FIELD(TP_OUTPUT_BUSY, int)
+ GENERATE_FIELD(IN_LC_RTS, int)
+ GENERATE_FIELD(LC_LA_RTS, int)
+ GENERATE_FIELD(LA_FL_RTS, int)
+ GENERATE_FIELD(FL_TA_RTS, int)
+ GENERATE_FIELD(TA_FA_RTS, int)
+ GENERATE_FIELD(TA_FA_TT_RTS, int)
+ GENERATE_FIELD(FA_AL_RTS, int)
+ GENERATE_FIELD(FA_AL_TT_RTS, int)
+ GENERATE_FIELD(AL_TF_RTS, int)
+ GENERATE_FIELD(AL_TF_TT_RTS, int)
+ GENERATE_FIELD(TF_TB_RTS, int)
+ GENERATE_FIELD(TF_TB_TT_RTS, int)
+ GENERATE_FIELD(TB_TT_RTS, int)
+ GENERATE_FIELD(TB_TT_TT_RESET, int)
+ GENERATE_FIELD(TB_TO_RTS, int)
+ GENERATE_FIELD(TP_BUSY, int)
+END_REGISTER(TP0_CNTL_STATUS)
+
+START_REGISTER(TP0_DEBUG)
+ GENERATE_FIELD(Q_LOD_CNTL, int)
+ GENERATE_FIELD(Q_SQ_TP_WAKEUP, int)
+ GENERATE_FIELD(FL_TA_ADDRESSER_CNTL, int)
+ GENERATE_FIELD(REG_CLK_EN, int)
+ GENERATE_FIELD(PERF_CLK_EN, int)
+ GENERATE_FIELD(TP_CLK_EN, int)
+ GENERATE_FIELD(Q_WALKER_CNTL, int)
+ GENERATE_FIELD(Q_ALIGNER_CNTL, int)
+END_REGISTER(TP0_DEBUG)
+
+START_REGISTER(TP0_CHICKEN)
+ GENERATE_FIELD(TT_MODE, int)
+ GENERATE_FIELD(VFETCH_ADDRESS_MODE, int)
+ GENERATE_FIELD(SPARE, int)
+END_REGISTER(TP0_CHICKEN)
+
+START_REGISTER(TP0_PERFCOUNTER0_SELECT)
+ GENERATE_FIELD(PERFCOUNTER_SELECT, TP_PERFCOUNT_SELECT)
+END_REGISTER(TP0_PERFCOUNTER0_SELECT)
+
+START_REGISTER(TP0_PERFCOUNTER0_HI)
+ GENERATE_FIELD(PERFCOUNTER_HI, int)
+END_REGISTER(TP0_PERFCOUNTER0_HI)
+
+START_REGISTER(TP0_PERFCOUNTER0_LOW)
+ GENERATE_FIELD(PERFCOUNTER_LOW, int)
+END_REGISTER(TP0_PERFCOUNTER0_LOW)
+
+START_REGISTER(TP0_PERFCOUNTER1_SELECT)
+ GENERATE_FIELD(PERFCOUNTER_SELECT, int)
+END_REGISTER(TP0_PERFCOUNTER1_SELECT)
+
+START_REGISTER(TP0_PERFCOUNTER1_HI)
+ GENERATE_FIELD(PERFCOUNTER_HI, int)
+END_REGISTER(TP0_PERFCOUNTER1_HI)
+
+START_REGISTER(TP0_PERFCOUNTER1_LOW)
+ GENERATE_FIELD(PERFCOUNTER_LOW, int)
+END_REGISTER(TP0_PERFCOUNTER1_LOW)
+
+START_REGISTER(TCM_PERFCOUNTER0_SELECT)
+ GENERATE_FIELD(PERFCOUNTER_SELECT, TCM_PERFCOUNT_SELECT)
+END_REGISTER(TCM_PERFCOUNTER0_SELECT)
+
+START_REGISTER(TCM_PERFCOUNTER1_SELECT)
+ GENERATE_FIELD(PERFCOUNTER_SELECT, TCM_PERFCOUNT_SELECT)
+END_REGISTER(TCM_PERFCOUNTER1_SELECT)
+
+START_REGISTER(TCM_PERFCOUNTER0_HI)
+ GENERATE_FIELD(PERFCOUNTER_HI, int)
+END_REGISTER(TCM_PERFCOUNTER0_HI)
+
+START_REGISTER(TCM_PERFCOUNTER1_HI)
+ GENERATE_FIELD(PERFCOUNTER_HI, int)
+END_REGISTER(TCM_PERFCOUNTER1_HI)
+
+START_REGISTER(TCM_PERFCOUNTER0_LOW)
+ GENERATE_FIELD(PERFCOUNTER_LOW, int)
+END_REGISTER(TCM_PERFCOUNTER0_LOW)
+
+START_REGISTER(TCM_PERFCOUNTER1_LOW)
+ GENERATE_FIELD(PERFCOUNTER_LOW, int)
+END_REGISTER(TCM_PERFCOUNTER1_LOW)
+
+START_REGISTER(TCF_PERFCOUNTER0_SELECT)
+ GENERATE_FIELD(PERFCOUNTER_SELECT, TCF_PERFCOUNT_SELECT)
+END_REGISTER(TCF_PERFCOUNTER0_SELECT)
+
+START_REGISTER(TCF_PERFCOUNTER1_SELECT)
+ GENERATE_FIELD(PERFCOUNTER_SELECT, TCF_PERFCOUNT_SELECT)
+END_REGISTER(TCF_PERFCOUNTER1_SELECT)
+
+START_REGISTER(TCF_PERFCOUNTER2_SELECT)
+ GENERATE_FIELD(PERFCOUNTER_SELECT, TCF_PERFCOUNT_SELECT)
+END_REGISTER(TCF_PERFCOUNTER2_SELECT)
+
+START_REGISTER(TCF_PERFCOUNTER3_SELECT)
+ GENERATE_FIELD(PERFCOUNTER_SELECT, TCF_PERFCOUNT_SELECT)
+END_REGISTER(TCF_PERFCOUNTER3_SELECT)
+
+START_REGISTER(TCF_PERFCOUNTER4_SELECT)
+ GENERATE_FIELD(PERFCOUNTER_SELECT, TCF_PERFCOUNT_SELECT)
+END_REGISTER(TCF_PERFCOUNTER4_SELECT)
+
+START_REGISTER(TCF_PERFCOUNTER5_SELECT)
+ GENERATE_FIELD(PERFCOUNTER_SELECT, TCF_PERFCOUNT_SELECT)
+END_REGISTER(TCF_PERFCOUNTER5_SELECT)
+
+START_REGISTER(TCF_PERFCOUNTER6_SELECT)
+ GENERATE_FIELD(PERFCOUNTER_SELECT, TCF_PERFCOUNT_SELECT)
+END_REGISTER(TCF_PERFCOUNTER6_SELECT)
+
+START_REGISTER(TCF_PERFCOUNTER7_SELECT)
+ GENERATE_FIELD(PERFCOUNTER_SELECT, TCF_PERFCOUNT_SELECT)
+END_REGISTER(TCF_PERFCOUNTER7_SELECT)
+
+START_REGISTER(TCF_PERFCOUNTER8_SELECT)
+ GENERATE_FIELD(PERFCOUNTER_SELECT, TCF_PERFCOUNT_SELECT)
+END_REGISTER(TCF_PERFCOUNTER8_SELECT)
+
+START_REGISTER(TCF_PERFCOUNTER9_SELECT)
+ GENERATE_FIELD(PERFCOUNTER_SELECT, TCF_PERFCOUNT_SELECT)
+END_REGISTER(TCF_PERFCOUNTER9_SELECT)
+
+START_REGISTER(TCF_PERFCOUNTER10_SELECT)
+ GENERATE_FIELD(PERFCOUNTER_SELECT, TCF_PERFCOUNT_SELECT)
+END_REGISTER(TCF_PERFCOUNTER10_SELECT)
+
+START_REGISTER(TCF_PERFCOUNTER11_SELECT)
+ GENERATE_FIELD(PERFCOUNTER_SELECT, TCF_PERFCOUNT_SELECT)
+END_REGISTER(TCF_PERFCOUNTER11_SELECT)
+
+START_REGISTER(TCF_PERFCOUNTER0_HI)
+ GENERATE_FIELD(PERFCOUNTER_HI, int)
+END_REGISTER(TCF_PERFCOUNTER0_HI)
+
+START_REGISTER(TCF_PERFCOUNTER1_HI)
+ GENERATE_FIELD(PERFCOUNTER_HI, int)
+END_REGISTER(TCF_PERFCOUNTER1_HI)
+
+START_REGISTER(TCF_PERFCOUNTER2_HI)
+ GENERATE_FIELD(PERFCOUNTER_HI, int)
+END_REGISTER(TCF_PERFCOUNTER2_HI)
+
+START_REGISTER(TCF_PERFCOUNTER3_HI)
+ GENERATE_FIELD(PERFCOUNTER_HI, int)
+END_REGISTER(TCF_PERFCOUNTER3_HI)
+
+START_REGISTER(TCF_PERFCOUNTER4_HI)
+ GENERATE_FIELD(PERFCOUNTER_HI, int)
+END_REGISTER(TCF_PERFCOUNTER4_HI)
+
+START_REGISTER(TCF_PERFCOUNTER5_HI)
+ GENERATE_FIELD(PERFCOUNTER_HI, int)
+END_REGISTER(TCF_PERFCOUNTER5_HI)
+
+START_REGISTER(TCF_PERFCOUNTER6_HI)
+ GENERATE_FIELD(PERFCOUNTER_HI, int)
+END_REGISTER(TCF_PERFCOUNTER6_HI)
+
+START_REGISTER(TCF_PERFCOUNTER7_HI)
+ GENERATE_FIELD(PERFCOUNTER_HI, int)
+END_REGISTER(TCF_PERFCOUNTER7_HI)
+
+START_REGISTER(TCF_PERFCOUNTER8_HI)
+ GENERATE_FIELD(PERFCOUNTER_HI, int)
+END_REGISTER(TCF_PERFCOUNTER8_HI)
+
+START_REGISTER(TCF_PERFCOUNTER9_HI)
+ GENERATE_FIELD(PERFCOUNTER_HI, int)
+END_REGISTER(TCF_PERFCOUNTER9_HI)
+
+START_REGISTER(TCF_PERFCOUNTER10_HI)
+ GENERATE_FIELD(PERFCOUNTER_HI, int)
+END_REGISTER(TCF_PERFCOUNTER10_HI)
+
+START_REGISTER(TCF_PERFCOUNTER11_HI)
+ GENERATE_FIELD(PERFCOUNTER_HI, int)
+END_REGISTER(TCF_PERFCOUNTER11_HI)
+
+START_REGISTER(TCF_PERFCOUNTER0_LOW)
+ GENERATE_FIELD(PERFCOUNTER_LOW, int)
+END_REGISTER(TCF_PERFCOUNTER0_LOW)
+
+START_REGISTER(TCF_PERFCOUNTER1_LOW)
+ GENERATE_FIELD(PERFCOUNTER_LOW, int)
+END_REGISTER(TCF_PERFCOUNTER1_LOW)
+
+START_REGISTER(TCF_PERFCOUNTER2_LOW)
+ GENERATE_FIELD(PERFCOUNTER_LOW, int)
+END_REGISTER(TCF_PERFCOUNTER2_LOW)
+
+START_REGISTER(TCF_PERFCOUNTER3_LOW)
+ GENERATE_FIELD(PERFCOUNTER_LOW, int)
+END_REGISTER(TCF_PERFCOUNTER3_LOW)
+
+START_REGISTER(TCF_PERFCOUNTER4_LOW)
+ GENERATE_FIELD(PERFCOUNTER_LOW, int)
+END_REGISTER(TCF_PERFCOUNTER4_LOW)
+
+START_REGISTER(TCF_PERFCOUNTER5_LOW)
+ GENERATE_FIELD(PERFCOUNTER_LOW, int)
+END_REGISTER(TCF_PERFCOUNTER5_LOW)
+
+START_REGISTER(TCF_PERFCOUNTER6_LOW)
+ GENERATE_FIELD(PERFCOUNTER_LOW, int)
+END_REGISTER(TCF_PERFCOUNTER6_LOW)
+
+START_REGISTER(TCF_PERFCOUNTER7_LOW)
+ GENERATE_FIELD(PERFCOUNTER_LOW, int)
+END_REGISTER(TCF_PERFCOUNTER7_LOW)
+
+START_REGISTER(TCF_PERFCOUNTER8_LOW)
+ GENERATE_FIELD(PERFCOUNTER_LOW, int)
+END_REGISTER(TCF_PERFCOUNTER8_LOW)
+
+START_REGISTER(TCF_PERFCOUNTER9_LOW)
+ GENERATE_FIELD(PERFCOUNTER_LOW, int)
+END_REGISTER(TCF_PERFCOUNTER9_LOW)
+
+START_REGISTER(TCF_PERFCOUNTER10_LOW)
+ GENERATE_FIELD(PERFCOUNTER_LOW, int)
+END_REGISTER(TCF_PERFCOUNTER10_LOW)
+
+START_REGISTER(TCF_PERFCOUNTER11_LOW)
+ GENERATE_FIELD(PERFCOUNTER_LOW, int)
+END_REGISTER(TCF_PERFCOUNTER11_LOW)
+
+START_REGISTER(TCF_DEBUG)
+ GENERATE_FIELD(not_MH_TC_rtr, int)
+ GENERATE_FIELD(TC_MH_send, int)
+ GENERATE_FIELD(not_FG0_rtr, int)
+ GENERATE_FIELD(not_TCB_TCO_rtr, int)
+ GENERATE_FIELD(TCB_ff_stall, int)
+ GENERATE_FIELD(TCB_miss_stall, int)
+ GENERATE_FIELD(TCA_TCB_stall, int)
+ GENERATE_FIELD(PF0_stall, int)
+ GENERATE_FIELD(TP0_full, int)
+ GENERATE_FIELD(TPC_full, int)
+ GENERATE_FIELD(not_TPC_rtr, int)
+ GENERATE_FIELD(tca_state_rts, int)
+ GENERATE_FIELD(tca_rts, int)
+END_REGISTER(TCF_DEBUG)
+
+START_REGISTER(TCA_FIFO_DEBUG)
+ GENERATE_FIELD(tp0_full, int)
+ GENERATE_FIELD(tpc_full, int)
+ GENERATE_FIELD(load_tpc_fifo, int)
+ GENERATE_FIELD(load_tp_fifos, int)
+ GENERATE_FIELD(FW_full, int)
+ GENERATE_FIELD(not_FW_rtr0, int)
+ GENERATE_FIELD(FW_rts0, int)
+ GENERATE_FIELD(not_FW_tpc_rtr, int)
+ GENERATE_FIELD(FW_tpc_rts, int)
+END_REGISTER(TCA_FIFO_DEBUG)
+
+START_REGISTER(TCA_PROBE_DEBUG)
+ GENERATE_FIELD(ProbeFilter_stall, int)
+END_REGISTER(TCA_PROBE_DEBUG)
+
+START_REGISTER(TCA_TPC_DEBUG)
+ GENERATE_FIELD(captue_state_rts, int)
+ GENERATE_FIELD(capture_tca_rts, int)
+END_REGISTER(TCA_TPC_DEBUG)
+
+START_REGISTER(TCB_CORE_DEBUG)
+ GENERATE_FIELD(access512, int)
+ GENERATE_FIELD(tiled, int)
+ GENERATE_FIELD(opcode, int)
+ GENERATE_FIELD(format, int)
+ GENERATE_FIELD(sector_format, int)
+ GENERATE_FIELD(sector_format512, int)
+END_REGISTER(TCB_CORE_DEBUG)
+
+START_REGISTER(TCB_TAG0_DEBUG)
+ GENERATE_FIELD(mem_read_cycle, int)
+ GENERATE_FIELD(tag_access_cycle, int)
+ GENERATE_FIELD(miss_stall, int)
+ GENERATE_FIELD(num_feee_lines, int)
+ GENERATE_FIELD(max_misses, int)
+END_REGISTER(TCB_TAG0_DEBUG)
+
+START_REGISTER(TCB_TAG1_DEBUG)
+ GENERATE_FIELD(mem_read_cycle, int)
+ GENERATE_FIELD(tag_access_cycle, int)
+ GENERATE_FIELD(miss_stall, int)
+ GENERATE_FIELD(num_feee_lines, int)
+ GENERATE_FIELD(max_misses, int)
+END_REGISTER(TCB_TAG1_DEBUG)
+
+START_REGISTER(TCB_TAG2_DEBUG)
+ GENERATE_FIELD(mem_read_cycle, int)
+ GENERATE_FIELD(tag_access_cycle, int)
+ GENERATE_FIELD(miss_stall, int)
+ GENERATE_FIELD(num_feee_lines, int)
+ GENERATE_FIELD(max_misses, int)
+END_REGISTER(TCB_TAG2_DEBUG)
+
+START_REGISTER(TCB_TAG3_DEBUG)
+ GENERATE_FIELD(mem_read_cycle, int)
+ GENERATE_FIELD(tag_access_cycle, int)
+ GENERATE_FIELD(miss_stall, int)
+ GENERATE_FIELD(num_feee_lines, int)
+ GENERATE_FIELD(max_misses, int)
+END_REGISTER(TCB_TAG3_DEBUG)
+
+START_REGISTER(TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG)
+ GENERATE_FIELD(left_done, int)
+ GENERATE_FIELD(fg0_sends_left, int)
+ GENERATE_FIELD(one_sector_to_go_left_q, int)
+ GENERATE_FIELD(no_sectors_to_go, int)
+ GENERATE_FIELD(update_left, int)
+ GENERATE_FIELD(sector_mask_left_count_q, int)
+ GENERATE_FIELD(sector_mask_left_q, int)
+ GENERATE_FIELD(valid_left_q, int)
+END_REGISTER(TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG)
+
+START_REGISTER(TCB_FETCH_GEN_WALKER_DEBUG)
+ GENERATE_FIELD(quad_sel_left, int)
+ GENERATE_FIELD(set_sel_left, int)
+ GENERATE_FIELD(right_eq_left, int)
+ GENERATE_FIELD(ff_fg_type512, int)
+ GENERATE_FIELD(busy, int)
+ GENERATE_FIELD(setquads_to_send, int)
+END_REGISTER(TCB_FETCH_GEN_WALKER_DEBUG)
+
+START_REGISTER(TCB_FETCH_GEN_PIPE0_DEBUG)
+ GENERATE_FIELD(tc0_arb_rts, int)
+ GENERATE_FIELD(ga_out_rts, int)
+ GENERATE_FIELD(tc_arb_format, int)
+ GENERATE_FIELD(tc_arb_fmsopcode, int)
+ GENERATE_FIELD(tc_arb_request_type, int)
+ GENERATE_FIELD(busy, int)
+ GENERATE_FIELD(fgo_busy, int)
+ GENERATE_FIELD(ga_busy, int)
+ GENERATE_FIELD(mc_sel_q, int)
+ GENERATE_FIELD(valid_q, int)
+ GENERATE_FIELD(arb_RTR, int)
+END_REGISTER(TCB_FETCH_GEN_PIPE0_DEBUG)
+
+START_REGISTER(TCD_INPUT0_DEBUG)
+ GENERATE_FIELD(empty, int)
+ GENERATE_FIELD(full, int)
+ GENERATE_FIELD(valid_q1, int)
+ GENERATE_FIELD(cnt_q1, int)
+ GENERATE_FIELD(last_send_q1, int)
+ GENERATE_FIELD(ip_send, int)
+ GENERATE_FIELD(ipbuf_dxt_send, int)
+ GENERATE_FIELD(ipbuf_busy, int)
+END_REGISTER(TCD_INPUT0_DEBUG)
+
+START_REGISTER(TCD_DEGAMMA_DEBUG)
+ GENERATE_FIELD(dgmm_ftfconv_dgmmen, int)
+ GENERATE_FIELD(dgmm_ctrl_dgmm8, int)
+ GENERATE_FIELD(dgmm_ctrl_last_send, int)
+ GENERATE_FIELD(dgmm_ctrl_send, int)
+ GENERATE_FIELD(dgmm_stall, int)
+ GENERATE_FIELD(dgmm_pstate, int)
+END_REGISTER(TCD_DEGAMMA_DEBUG)
+
+START_REGISTER(TCD_DXTMUX_SCTARB_DEBUG)
+ GENERATE_FIELD(pstate, int)
+ GENERATE_FIELD(sctrmx_rtr, int)
+ GENERATE_FIELD(dxtc_rtr, int)
+ GENERATE_FIELD(sctrarb_multcyl_send, int)
+ GENERATE_FIELD(sctrmx0_sctrarb_rts, int)
+ GENERATE_FIELD(dxtc_sctrarb_send, int)
+ GENERATE_FIELD(dxtc_dgmmpd_last_send, int)
+ GENERATE_FIELD(dxtc_dgmmpd_send, int)
+ GENERATE_FIELD(dcmp_mux_send, int)
+END_REGISTER(TCD_DXTMUX_SCTARB_DEBUG)
+
+START_REGISTER(TCD_DXTC_ARB_DEBUG)
+ GENERATE_FIELD(n0_stall, int)
+ GENERATE_FIELD(pstate, int)
+ GENERATE_FIELD(arb_dcmp01_last_send, int)
+ GENERATE_FIELD(arb_dcmp01_cnt, int)
+ GENERATE_FIELD(arb_dcmp01_sector, int)
+ GENERATE_FIELD(arb_dcmp01_cacheline, int)
+ GENERATE_FIELD(arb_dcmp01_format, int)
+ GENERATE_FIELD(arb_dcmp01_send, int)
+ GENERATE_FIELD(n0_dxt2_4_types, int)
+END_REGISTER(TCD_DXTC_ARB_DEBUG)
+
+START_REGISTER(TCD_STALLS_DEBUG)
+ GENERATE_FIELD(not_multcyl_sctrarb_rtr, int)
+ GENERATE_FIELD(not_sctrmx0_sctrarb_rtr, int)
+ GENERATE_FIELD(not_dcmp0_arb_rtr, int)
+ GENERATE_FIELD(not_dgmmpd_dxtc_rtr, int)
+ GENERATE_FIELD(not_mux_dcmp_rtr, int)
+ GENERATE_FIELD(not_incoming_rtr, int)
+END_REGISTER(TCD_STALLS_DEBUG)
+
+START_REGISTER(TCO_STALLS_DEBUG)
+ GENERATE_FIELD(quad0_sg_crd_RTR, int)
+ GENERATE_FIELD(quad0_rl_sg_RTR, int)
+ GENERATE_FIELD(quad0_TCO_TCB_rtr_d, int)
+END_REGISTER(TCO_STALLS_DEBUG)
+
+START_REGISTER(TCO_QUAD0_DEBUG0)
+ GENERATE_FIELD(rl_sg_sector_format, int)
+ GENERATE_FIELD(rl_sg_end_of_sample, int)
+ GENERATE_FIELD(rl_sg_rtr, int)
+ GENERATE_FIELD(rl_sg_rts, int)
+ GENERATE_FIELD(sg_crd_end_of_sample, int)
+ GENERATE_FIELD(sg_crd_rtr, int)
+ GENERATE_FIELD(sg_crd_rts, int)
+ GENERATE_FIELD(stageN1_valid_q, int)
+ GENERATE_FIELD(read_cache_q, int)
+ GENERATE_FIELD(cache_read_RTR, int)
+ GENERATE_FIELD(all_sectors_written_set3, int)
+ GENERATE_FIELD(all_sectors_written_set2, int)
+ GENERATE_FIELD(all_sectors_written_set1, int)
+ GENERATE_FIELD(all_sectors_written_set0, int)
+ GENERATE_FIELD(busy, int)
+END_REGISTER(TCO_QUAD0_DEBUG0)
+
+START_REGISTER(TCO_QUAD0_DEBUG1)
+ GENERATE_FIELD(fifo_busy, int)
+ GENERATE_FIELD(empty, int)
+ GENERATE_FIELD(full, int)
+ GENERATE_FIELD(write_enable, int)
+ GENERATE_FIELD(fifo_write_ptr, int)
+ GENERATE_FIELD(fifo_read_ptr, int)
+ GENERATE_FIELD(cache_read_busy, int)
+ GENERATE_FIELD(latency_fifo_busy, int)
+ GENERATE_FIELD(input_quad_busy, int)
+ GENERATE_FIELD(tco_quad_pipe_busy, int)
+ GENERATE_FIELD(TCB_TCO_rtr_d, int)
+ GENERATE_FIELD(TCB_TCO_xfc_q, int)
+ GENERATE_FIELD(rl_sg_rtr, int)
+ GENERATE_FIELD(rl_sg_rts, int)
+ GENERATE_FIELD(sg_crd_rtr, int)
+ GENERATE_FIELD(sg_crd_rts, int)
+ GENERATE_FIELD(TCO_TCB_read_xfc, int)
+END_REGISTER(TCO_QUAD0_DEBUG1)
+
+START_REGISTER(SQ_GPR_MANAGEMENT)
+ GENERATE_FIELD(REG_DYNAMIC, int)
+ GENERATE_FIELD(REG_SIZE_PIX, int)
+ GENERATE_FIELD(REG_SIZE_VTX, int)
+END_REGISTER(SQ_GPR_MANAGEMENT)
+
+START_REGISTER(SQ_FLOW_CONTROL)
+ GENERATE_FIELD(INPUT_ARBITRATION_POLICY, int)
+ GENERATE_FIELD(ONE_THREAD, int)
+ GENERATE_FIELD(ONE_ALU, int)
+ GENERATE_FIELD(CF_WR_BASE, hex)
+ GENERATE_FIELD(NO_PV_PS, int)
+ GENERATE_FIELD(NO_LOOP_EXIT, int)
+ GENERATE_FIELD(NO_CEXEC_OPTIMIZE, int)
+ GENERATE_FIELD(TEXTURE_ARBITRATION_POLICY, int)
+ GENERATE_FIELD(VC_ARBITRATION_POLICY, int)
+ GENERATE_FIELD(ALU_ARBITRATION_POLICY, int)
+ GENERATE_FIELD(NO_ARB_EJECT, int)
+ GENERATE_FIELD(NO_CFS_EJECT, int)
+ GENERATE_FIELD(POS_EXP_PRIORITY, int)
+ GENERATE_FIELD(NO_EARLY_THREAD_TERMINATION, int)
+ GENERATE_FIELD(PS_PREFETCH_COLOR_ALLOC, int)
+END_REGISTER(SQ_FLOW_CONTROL)
+
+START_REGISTER(SQ_INST_STORE_MANAGMENT)
+ GENERATE_FIELD(INST_BASE_PIX, int)
+ GENERATE_FIELD(INST_BASE_VTX, int)
+END_REGISTER(SQ_INST_STORE_MANAGMENT)
+
+START_REGISTER(SQ_RESOURCE_MANAGMENT)
+ GENERATE_FIELD(VTX_THREAD_BUF_ENTRIES, int)
+ GENERATE_FIELD(PIX_THREAD_BUF_ENTRIES, int)
+ GENERATE_FIELD(EXPORT_BUF_ENTRIES, int)
+END_REGISTER(SQ_RESOURCE_MANAGMENT)
+
+START_REGISTER(SQ_EO_RT)
+ GENERATE_FIELD(EO_CONSTANTS_RT, int)
+ GENERATE_FIELD(EO_TSTATE_RT, int)
+END_REGISTER(SQ_EO_RT)
+
+START_REGISTER(SQ_DEBUG_MISC)
+ GENERATE_FIELD(DB_ALUCST_SIZE, int)
+ GENERATE_FIELD(DB_TSTATE_SIZE, int)
+ GENERATE_FIELD(DB_READ_CTX, int)
+ GENERATE_FIELD(RESERVED, int)
+ GENERATE_FIELD(DB_READ_MEMORY, int)
+ GENERATE_FIELD(DB_WEN_MEMORY_0, int)
+ GENERATE_FIELD(DB_WEN_MEMORY_1, int)
+ GENERATE_FIELD(DB_WEN_MEMORY_2, int)
+ GENERATE_FIELD(DB_WEN_MEMORY_3, int)
+END_REGISTER(SQ_DEBUG_MISC)
+
+START_REGISTER(SQ_ACTIVITY_METER_CNTL)
+ GENERATE_FIELD(TIMEBASE, int)
+ GENERATE_FIELD(THRESHOLD_LOW, int)
+ GENERATE_FIELD(THRESHOLD_HIGH, int)
+ GENERATE_FIELD(SPARE, int)
+END_REGISTER(SQ_ACTIVITY_METER_CNTL)
+
+START_REGISTER(SQ_ACTIVITY_METER_STATUS)
+ GENERATE_FIELD(PERCENT_BUSY, int)
+END_REGISTER(SQ_ACTIVITY_METER_STATUS)
+
+START_REGISTER(SQ_INPUT_ARB_PRIORITY)
+ GENERATE_FIELD(PC_AVAIL_WEIGHT, int)
+ GENERATE_FIELD(PC_AVAIL_SIGN, int)
+ GENERATE_FIELD(SX_AVAIL_WEIGHT, int)
+ GENERATE_FIELD(SX_AVAIL_SIGN, int)
+ GENERATE_FIELD(THRESHOLD, int)
+END_REGISTER(SQ_INPUT_ARB_PRIORITY)
+
+START_REGISTER(SQ_THREAD_ARB_PRIORITY)
+ GENERATE_FIELD(PC_AVAIL_WEIGHT, int)
+ GENERATE_FIELD(PC_AVAIL_SIGN, int)
+ GENERATE_FIELD(SX_AVAIL_WEIGHT, int)
+ GENERATE_FIELD(SX_AVAIL_SIGN, int)
+ GENERATE_FIELD(THRESHOLD, int)
+ GENERATE_FIELD(RESERVED, int)
+ GENERATE_FIELD(VS_PRIORITIZE_SERIAL, int)
+ GENERATE_FIELD(PS_PRIORITIZE_SERIAL, int)
+ GENERATE_FIELD(USE_SERIAL_COUNT_THRESHOLD, int)
+END_REGISTER(SQ_THREAD_ARB_PRIORITY)
+
+START_REGISTER(SQ_DEBUG_INPUT_FSM)
+ GENERATE_FIELD(VC_VSR_LD, int)
+ GENERATE_FIELD(RESERVED, int)
+ GENERATE_FIELD(VC_GPR_LD, int)
+ GENERATE_FIELD(PC_PISM, int)
+ GENERATE_FIELD(RESERVED1, int)
+ GENERATE_FIELD(PC_AS, int)
+ GENERATE_FIELD(PC_INTERP_CNT, int)
+ GENERATE_FIELD(PC_GPR_SIZE, int)
+END_REGISTER(SQ_DEBUG_INPUT_FSM)
+
+START_REGISTER(SQ_DEBUG_CONST_MGR_FSM)
+ GENERATE_FIELD(TEX_CONST_EVENT_STATE, int)
+ GENERATE_FIELD(RESERVED1, int)
+ GENERATE_FIELD(ALU_CONST_EVENT_STATE, int)
+ GENERATE_FIELD(RESERVED2, int)
+ GENERATE_FIELD(ALU_CONST_CNTX_VALID, int)
+ GENERATE_FIELD(TEX_CONST_CNTX_VALID, int)
+ GENERATE_FIELD(CNTX0_VTX_EVENT_DONE, int)
+ GENERATE_FIELD(CNTX0_PIX_EVENT_DONE, int)
+ GENERATE_FIELD(CNTX1_VTX_EVENT_DONE, int)
+ GENERATE_FIELD(CNTX1_PIX_EVENT_DONE, int)
+END_REGISTER(SQ_DEBUG_CONST_MGR_FSM)
+
+START_REGISTER(SQ_DEBUG_TP_FSM)
+ GENERATE_FIELD(EX_TP, int)
+ GENERATE_FIELD(RESERVED0, int)
+ GENERATE_FIELD(CF_TP, int)
+ GENERATE_FIELD(IF_TP, int)
+ GENERATE_FIELD(RESERVED1, int)
+ GENERATE_FIELD(TIS_TP, int)
+ GENERATE_FIELD(RESERVED2, int)
+ GENERATE_FIELD(GS_TP, int)
+ GENERATE_FIELD(RESERVED3, int)
+ GENERATE_FIELD(FCR_TP, int)
+ GENERATE_FIELD(RESERVED4, int)
+ GENERATE_FIELD(FCS_TP, int)
+ GENERATE_FIELD(RESERVED5, int)
+ GENERATE_FIELD(ARB_TR_TP, int)
+END_REGISTER(SQ_DEBUG_TP_FSM)
+
+START_REGISTER(SQ_DEBUG_FSM_ALU_0)
+ GENERATE_FIELD(EX_ALU_0, int)
+ GENERATE_FIELD(RESERVED0, int)
+ GENERATE_FIELD(CF_ALU_0, int)
+ GENERATE_FIELD(IF_ALU_0, int)
+ GENERATE_FIELD(RESERVED1, int)
+ GENERATE_FIELD(DU1_ALU_0, int)
+ GENERATE_FIELD(RESERVED2, int)
+ GENERATE_FIELD(DU0_ALU_0, int)
+ GENERATE_FIELD(RESERVED3, int)
+ GENERATE_FIELD(AIS_ALU_0, int)
+ GENERATE_FIELD(RESERVED4, int)
+ GENERATE_FIELD(ACS_ALU_0, int)
+ GENERATE_FIELD(RESERVED5, int)
+ GENERATE_FIELD(ARB_TR_ALU, int)
+END_REGISTER(SQ_DEBUG_FSM_ALU_0)
+
+START_REGISTER(SQ_DEBUG_FSM_ALU_1)
+ GENERATE_FIELD(EX_ALU_0, int)
+ GENERATE_FIELD(RESERVED0, int)
+ GENERATE_FIELD(CF_ALU_0, int)
+ GENERATE_FIELD(IF_ALU_0, int)
+ GENERATE_FIELD(RESERVED1, int)
+ GENERATE_FIELD(DU1_ALU_0, int)
+ GENERATE_FIELD(RESERVED2, int)
+ GENERATE_FIELD(DU0_ALU_0, int)
+ GENERATE_FIELD(RESERVED3, int)
+ GENERATE_FIELD(AIS_ALU_0, int)
+ GENERATE_FIELD(RESERVED4, int)
+ GENERATE_FIELD(ACS_ALU_0, int)
+ GENERATE_FIELD(RESERVED5, int)
+ GENERATE_FIELD(ARB_TR_ALU, int)
+END_REGISTER(SQ_DEBUG_FSM_ALU_1)
+
+START_REGISTER(SQ_DEBUG_EXP_ALLOC)
+ GENERATE_FIELD(POS_BUF_AVAIL, int)
+ GENERATE_FIELD(COLOR_BUF_AVAIL, int)
+ GENERATE_FIELD(EA_BUF_AVAIL, int)
+ GENERATE_FIELD(RESERVED, int)
+ GENERATE_FIELD(ALLOC_TBL_BUF_AVAIL, int)
+END_REGISTER(SQ_DEBUG_EXP_ALLOC)
+
+START_REGISTER(SQ_DEBUG_PTR_BUFF)
+ GENERATE_FIELD(END_OF_BUFFER, int)
+ GENERATE_FIELD(DEALLOC_CNT, int)
+ GENERATE_FIELD(QUAL_NEW_VECTOR, int)
+ GENERATE_FIELD(EVENT_CONTEXT_ID, int)
+ GENERATE_FIELD(SC_EVENT_ID, int)
+ GENERATE_FIELD(QUAL_EVENT, int)
+ GENERATE_FIELD(PRIM_TYPE_POLYGON, int)
+ GENERATE_FIELD(EF_EMPTY, int)
+ GENERATE_FIELD(VTX_SYNC_CNT, int)
+END_REGISTER(SQ_DEBUG_PTR_BUFF)
+
+START_REGISTER(SQ_DEBUG_GPR_VTX)
+ GENERATE_FIELD(VTX_TAIL_PTR, int)
+ GENERATE_FIELD(RESERVED, int)
+ GENERATE_FIELD(VTX_HEAD_PTR, int)
+ GENERATE_FIELD(RESERVED1, int)
+ GENERATE_FIELD(VTX_MAX, int)
+ GENERATE_FIELD(RESERVED2, int)
+ GENERATE_FIELD(VTX_FREE, int)
+END_REGISTER(SQ_DEBUG_GPR_VTX)
+
+START_REGISTER(SQ_DEBUG_GPR_PIX)
+ GENERATE_FIELD(PIX_TAIL_PTR, int)
+ GENERATE_FIELD(RESERVED, int)
+ GENERATE_FIELD(PIX_HEAD_PTR, int)
+ GENERATE_FIELD(RESERVED1, int)
+ GENERATE_FIELD(PIX_MAX, int)
+ GENERATE_FIELD(RESERVED2, int)
+ GENERATE_FIELD(PIX_FREE, int)
+END_REGISTER(SQ_DEBUG_GPR_PIX)
+
+START_REGISTER(SQ_DEBUG_TB_STATUS_SEL)
+ GENERATE_FIELD(VTX_TB_STATUS_REG_SEL, int)
+ GENERATE_FIELD(VTX_TB_STATE_MEM_DW_SEL, int)
+ GENERATE_FIELD(VTX_TB_STATE_MEM_RD_ADDR, int)
+ GENERATE_FIELD(VTX_TB_STATE_MEM_RD_EN, int)
+ GENERATE_FIELD(PIX_TB_STATE_MEM_RD_EN, int)
+ GENERATE_FIELD(DEBUG_BUS_TRIGGER_SEL, int)
+ GENERATE_FIELD(PIX_TB_STATUS_REG_SEL, int)
+ GENERATE_FIELD(PIX_TB_STATE_MEM_DW_SEL, int)
+ GENERATE_FIELD(PIX_TB_STATE_MEM_RD_ADDR, int)
+ GENERATE_FIELD(VC_THREAD_BUF_DLY, int)
+ GENERATE_FIELD(DISABLE_STRICT_CTX_SYNC, int)
+END_REGISTER(SQ_DEBUG_TB_STATUS_SEL)
+
+START_REGISTER(SQ_DEBUG_VTX_TB_0)
+ GENERATE_FIELD(VTX_HEAD_PTR_Q, int)
+ GENERATE_FIELD(TAIL_PTR_Q, int)
+ GENERATE_FIELD(FULL_CNT_Q, int)
+ GENERATE_FIELD(NXT_POS_ALLOC_CNT, int)
+ GENERATE_FIELD(NXT_PC_ALLOC_CNT, int)
+ GENERATE_FIELD(SX_EVENT_FULL, int)
+ GENERATE_FIELD(BUSY_Q, int)
+END_REGISTER(SQ_DEBUG_VTX_TB_0)
+
+START_REGISTER(SQ_DEBUG_VTX_TB_1)
+ GENERATE_FIELD(VS_DONE_PTR, int)
+END_REGISTER(SQ_DEBUG_VTX_TB_1)
+
+START_REGISTER(SQ_DEBUG_VTX_TB_STATUS_REG)
+ GENERATE_FIELD(VS_STATUS_REG, int)
+END_REGISTER(SQ_DEBUG_VTX_TB_STATUS_REG)
+
+START_REGISTER(SQ_DEBUG_VTX_TB_STATE_MEM)
+ GENERATE_FIELD(VS_STATE_MEM, int)
+END_REGISTER(SQ_DEBUG_VTX_TB_STATE_MEM)
+
+START_REGISTER(SQ_DEBUG_PIX_TB_0)
+ GENERATE_FIELD(PIX_HEAD_PTR, int)
+ GENERATE_FIELD(TAIL_PTR, int)
+ GENERATE_FIELD(FULL_CNT, int)
+ GENERATE_FIELD(NXT_PIX_ALLOC_CNT, int)
+ GENERATE_FIELD(NXT_PIX_EXP_CNT, int)
+ GENERATE_FIELD(BUSY, int)
+END_REGISTER(SQ_DEBUG_PIX_TB_0)
+
+START_REGISTER(SQ_DEBUG_PIX_TB_STATUS_REG_0)
+ GENERATE_FIELD(PIX_TB_STATUS_REG_0, int)
+END_REGISTER(SQ_DEBUG_PIX_TB_STATUS_REG_0)
+
+START_REGISTER(SQ_DEBUG_PIX_TB_STATUS_REG_1)
+ GENERATE_FIELD(PIX_TB_STATUS_REG_1, int)
+END_REGISTER(SQ_DEBUG_PIX_TB_STATUS_REG_1)
+
+START_REGISTER(SQ_DEBUG_PIX_TB_STATUS_REG_2)
+ GENERATE_FIELD(PIX_TB_STATUS_REG_2, int)
+END_REGISTER(SQ_DEBUG_PIX_TB_STATUS_REG_2)
+
+START_REGISTER(SQ_DEBUG_PIX_TB_STATUS_REG_3)
+ GENERATE_FIELD(PIX_TB_STATUS_REG_3, int)
+END_REGISTER(SQ_DEBUG_PIX_TB_STATUS_REG_3)
+
+START_REGISTER(SQ_DEBUG_PIX_TB_STATE_MEM)
+ GENERATE_FIELD(PIX_TB_STATE_MEM, int)
+END_REGISTER(SQ_DEBUG_PIX_TB_STATE_MEM)
+
+START_REGISTER(SQ_PERFCOUNTER0_SELECT)
+ GENERATE_FIELD(PERF_SEL, SQ_PERFCNT_SELECT)
+END_REGISTER(SQ_PERFCOUNTER0_SELECT)
+
+START_REGISTER(SQ_PERFCOUNTER1_SELECT)
+ GENERATE_FIELD(PERF_SEL, int)
+END_REGISTER(SQ_PERFCOUNTER1_SELECT)
+
+START_REGISTER(SQ_PERFCOUNTER2_SELECT)
+ GENERATE_FIELD(PERF_SEL, int)
+END_REGISTER(SQ_PERFCOUNTER2_SELECT)
+
+START_REGISTER(SQ_PERFCOUNTER3_SELECT)
+ GENERATE_FIELD(PERF_SEL, int)
+END_REGISTER(SQ_PERFCOUNTER3_SELECT)
+
+START_REGISTER(SQ_PERFCOUNTER0_LOW)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(SQ_PERFCOUNTER0_LOW)
+
+START_REGISTER(SQ_PERFCOUNTER0_HI)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(SQ_PERFCOUNTER0_HI)
+
+START_REGISTER(SQ_PERFCOUNTER1_LOW)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(SQ_PERFCOUNTER1_LOW)
+
+START_REGISTER(SQ_PERFCOUNTER1_HI)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(SQ_PERFCOUNTER1_HI)
+
+START_REGISTER(SQ_PERFCOUNTER2_LOW)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(SQ_PERFCOUNTER2_LOW)
+
+START_REGISTER(SQ_PERFCOUNTER2_HI)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(SQ_PERFCOUNTER2_HI)
+
+START_REGISTER(SQ_PERFCOUNTER3_LOW)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(SQ_PERFCOUNTER3_LOW)
+
+START_REGISTER(SQ_PERFCOUNTER3_HI)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(SQ_PERFCOUNTER3_HI)
+
+START_REGISTER(SX_PERFCOUNTER0_SELECT)
+ GENERATE_FIELD(PERF_SEL, SX_PERFCNT_SELECT)
+END_REGISTER(SX_PERFCOUNTER0_SELECT)
+
+START_REGISTER(SX_PERFCOUNTER0_LOW)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(SX_PERFCOUNTER0_LOW)
+
+START_REGISTER(SX_PERFCOUNTER0_HI)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(SX_PERFCOUNTER0_HI)
+
+START_REGISTER(SQ_INSTRUCTION_ALU_0)
+ GENERATE_FIELD(VECTOR_RESULT, int)
+ GENERATE_FIELD(CST_0_ABS_MOD, Abs_modifier)
+ GENERATE_FIELD(LOW_PRECISION_16B_FP, int)
+ GENERATE_FIELD(SCALAR_RESULT, int)
+ GENERATE_FIELD(SST_0_ABS_MOD, int)
+ GENERATE_FIELD(EXPORT_DATA, Exporting)
+ GENERATE_FIELD(VECTOR_WRT_MSK, int)
+ GENERATE_FIELD(SCALAR_WRT_MSK, int)
+ GENERATE_FIELD(VECTOR_CLAMP, int)
+ GENERATE_FIELD(SCALAR_CLAMP, int)
+ GENERATE_FIELD(SCALAR_OPCODE, ScalarOpcode)
+END_REGISTER(SQ_INSTRUCTION_ALU_0)
+
+START_REGISTER(SQ_INSTRUCTION_ALU_1)
+ GENERATE_FIELD(SRC_C_SWIZZLE_R, SwizzleType)
+ GENERATE_FIELD(SRC_C_SWIZZLE_G, SwizzleType)
+ GENERATE_FIELD(SRC_C_SWIZZLE_B, SwizzleType)
+ GENERATE_FIELD(SRC_C_SWIZZLE_A, SwizzleType)
+ GENERATE_FIELD(SRC_B_SWIZZLE_R, SwizzleType)
+ GENERATE_FIELD(SRC_B_SWIZZLE_G, SwizzleType)
+ GENERATE_FIELD(SRC_B_SWIZZLE_B, SwizzleType)
+ GENERATE_FIELD(SRC_B_SWIZZLE_A, SwizzleType)
+ GENERATE_FIELD(SRC_A_SWIZZLE_R, SwizzleType)
+ GENERATE_FIELD(SRC_A_SWIZZLE_G, SwizzleType)
+ GENERATE_FIELD(SRC_A_SWIZZLE_B, SwizzleType)
+ GENERATE_FIELD(SRC_A_SWIZZLE_A, SwizzleType)
+ GENERATE_FIELD(SRC_C_ARG_MOD, InputModifier)
+ GENERATE_FIELD(SRC_B_ARG_MOD, InputModifier)
+ GENERATE_FIELD(SRC_A_ARG_MOD, InputModifier)
+ GENERATE_FIELD(PRED_SELECT, PredicateSelect)
+ GENERATE_FIELD(RELATIVE_ADDR, int)
+ GENERATE_FIELD(CONST_1_REL_ABS, int)
+ GENERATE_FIELD(CONST_0_REL_ABS, int)
+END_REGISTER(SQ_INSTRUCTION_ALU_1)
+
+START_REGISTER(SQ_INSTRUCTION_ALU_2)
+ GENERATE_FIELD(SRC_C_REG_PTR, int)
+ GENERATE_FIELD(REG_SELECT_C, OperandSelect1)
+ GENERATE_FIELD(REG_ABS_MOD_C, Abs_modifier)
+ GENERATE_FIELD(SRC_B_REG_PTR, int)
+ GENERATE_FIELD(REG_SELECT_B, OperandSelect1)
+ GENERATE_FIELD(REG_ABS_MOD_B, Abs_modifier)
+ GENERATE_FIELD(SRC_A_REG_PTR, int)
+ GENERATE_FIELD(REG_SELECT_A, OperandSelect1)
+ GENERATE_FIELD(REG_ABS_MOD_A, Abs_modifier)
+ GENERATE_FIELD(VECTOR_OPCODE, VectorOpcode)
+ GENERATE_FIELD(SRC_C_SEL, OperandSelect0)
+ GENERATE_FIELD(SRC_B_SEL, OperandSelect0)
+ GENERATE_FIELD(SRC_A_SEL, OperandSelect0)
+END_REGISTER(SQ_INSTRUCTION_ALU_2)
+
+START_REGISTER(SQ_INSTRUCTION_CF_EXEC_0)
+ GENERATE_FIELD(ADDRESS, int)
+ GENERATE_FIELD(RESERVED, int)
+ GENERATE_FIELD(COUNT, int)
+ GENERATE_FIELD(YIELD, int)
+ GENERATE_FIELD(INST_TYPE_0, Ressource_type)
+ GENERATE_FIELD(INST_SERIAL_0, Instruction_serial)
+ GENERATE_FIELD(INST_TYPE_1, Ressource_type)
+ GENERATE_FIELD(INST_SERIAL_1, Instruction_serial)
+ GENERATE_FIELD(INST_TYPE_2, Ressource_type)
+ GENERATE_FIELD(INST_SERIAL_2, Instruction_serial)
+ GENERATE_FIELD(INST_TYPE_3, Ressource_type)
+ GENERATE_FIELD(INST_SERIAL_3, Instruction_serial)
+ GENERATE_FIELD(INST_TYPE_4, Ressource_type)
+ GENERATE_FIELD(INST_SERIAL_4, Instruction_serial)
+ GENERATE_FIELD(INST_TYPE_5, Ressource_type)
+ GENERATE_FIELD(INST_SERIAL_5, Instruction_serial)
+ GENERATE_FIELD(INST_VC_0, VC_type)
+ GENERATE_FIELD(INST_VC_1, VC_type)
+ GENERATE_FIELD(INST_VC_2, VC_type)
+ GENERATE_FIELD(INST_VC_3, VC_type)
+END_REGISTER(SQ_INSTRUCTION_CF_EXEC_0)
+
+START_REGISTER(SQ_INSTRUCTION_CF_EXEC_1)
+ GENERATE_FIELD(INST_VC_4, VC_type)
+ GENERATE_FIELD(INST_VC_5, VC_type)
+ GENERATE_FIELD(BOOL_ADDR, int)
+ GENERATE_FIELD(CONDITION, int)
+ GENERATE_FIELD(ADDRESS_MODE, Addressing)
+ GENERATE_FIELD(OPCODE, CFOpcode)
+ GENERATE_FIELD(ADDRESS, int)
+ GENERATE_FIELD(RESERVED, int)
+ GENERATE_FIELD(COUNT, int)
+ GENERATE_FIELD(YIELD, int)
+END_REGISTER(SQ_INSTRUCTION_CF_EXEC_1)
+
+START_REGISTER(SQ_INSTRUCTION_CF_EXEC_2)
+ GENERATE_FIELD(INST_TYPE_0, Ressource_type)
+ GENERATE_FIELD(INST_SERIAL_0, Instruction_serial)
+ GENERATE_FIELD(INST_TYPE_1, Ressource_type)
+ GENERATE_FIELD(INST_SERIAL_1, Instruction_serial)
+ GENERATE_FIELD(INST_TYPE_2, Ressource_type)
+ GENERATE_FIELD(INST_SERIAL_2, Instruction_serial)
+ GENERATE_FIELD(INST_TYPE_3, Ressource_type)
+ GENERATE_FIELD(INST_SERIAL_3, Instruction_serial)
+ GENERATE_FIELD(INST_TYPE_4, Ressource_type)
+ GENERATE_FIELD(INST_SERIAL_4, Instruction_serial)
+ GENERATE_FIELD(INST_TYPE_5, Ressource_type)
+ GENERATE_FIELD(INST_SERIAL_5, Instruction_serial)
+ GENERATE_FIELD(INST_VC_0, VC_type)
+ GENERATE_FIELD(INST_VC_1, VC_type)
+ GENERATE_FIELD(INST_VC_2, VC_type)
+ GENERATE_FIELD(INST_VC_3, VC_type)
+ GENERATE_FIELD(INST_VC_4, VC_type)
+ GENERATE_FIELD(INST_VC_5, VC_type)
+ GENERATE_FIELD(BOOL_ADDR, int)
+ GENERATE_FIELD(CONDITION, int)
+ GENERATE_FIELD(ADDRESS_MODE, Addressing)
+ GENERATE_FIELD(OPCODE, CFOpcode)
+END_REGISTER(SQ_INSTRUCTION_CF_EXEC_2)
+
+START_REGISTER(SQ_INSTRUCTION_CF_LOOP_0)
+ GENERATE_FIELD(ADDRESS, int)
+ GENERATE_FIELD(RESERVED_0, int)
+ GENERATE_FIELD(LOOP_ID, int)
+ GENERATE_FIELD(RESERVED_1, int)
+END_REGISTER(SQ_INSTRUCTION_CF_LOOP_0)
+
+START_REGISTER(SQ_INSTRUCTION_CF_LOOP_1)
+ GENERATE_FIELD(RESERVED_0, int)
+ GENERATE_FIELD(ADDRESS_MODE, Addressing)
+ GENERATE_FIELD(OPCODE, CFOpcode)
+ GENERATE_FIELD(ADDRESS, int)
+ GENERATE_FIELD(RESERVED_1, int)
+END_REGISTER(SQ_INSTRUCTION_CF_LOOP_1)
+
+START_REGISTER(SQ_INSTRUCTION_CF_LOOP_2)
+ GENERATE_FIELD(LOOP_ID, int)
+ GENERATE_FIELD(RESERVED, int)
+ GENERATE_FIELD(ADDRESS_MODE, Addressing)
+ GENERATE_FIELD(OPCODE, CFOpcode)
+END_REGISTER(SQ_INSTRUCTION_CF_LOOP_2)
+
+START_REGISTER(SQ_INSTRUCTION_CF_JMP_CALL_0)
+ GENERATE_FIELD(ADDRESS, int)
+ GENERATE_FIELD(RESERVED_0, int)
+ GENERATE_FIELD(FORCE_CALL, int)
+ GENERATE_FIELD(PREDICATED_JMP, int)
+ GENERATE_FIELD(RESERVED_1, int)
+END_REGISTER(SQ_INSTRUCTION_CF_JMP_CALL_0)
+
+START_REGISTER(SQ_INSTRUCTION_CF_JMP_CALL_1)
+ GENERATE_FIELD(RESERVED_0, int)
+ GENERATE_FIELD(DIRECTION, int)
+ GENERATE_FIELD(BOOL_ADDR, int)
+ GENERATE_FIELD(CONDITION, int)
+ GENERATE_FIELD(ADDRESS_MODE, Addressing)
+ GENERATE_FIELD(OPCODE, CFOpcode)
+ GENERATE_FIELD(ADDRESS, int)
+ GENERATE_FIELD(RESERVED_1, int)
+ GENERATE_FIELD(FORCE_CALL, int)
+ GENERATE_FIELD(RESERVED_2, int)
+END_REGISTER(SQ_INSTRUCTION_CF_JMP_CALL_1)
+
+START_REGISTER(SQ_INSTRUCTION_CF_JMP_CALL_2)
+ GENERATE_FIELD(RESERVED, int)
+ GENERATE_FIELD(DIRECTION, int)
+ GENERATE_FIELD(BOOL_ADDR, int)
+ GENERATE_FIELD(CONDITION, int)
+ GENERATE_FIELD(ADDRESS_MODE, Addressing)
+ GENERATE_FIELD(OPCODE, CFOpcode)
+END_REGISTER(SQ_INSTRUCTION_CF_JMP_CALL_2)
+
+START_REGISTER(SQ_INSTRUCTION_CF_ALLOC_0)
+ GENERATE_FIELD(SIZE, int)
+ GENERATE_FIELD(RESERVED, int)
+END_REGISTER(SQ_INSTRUCTION_CF_ALLOC_0)
+
+START_REGISTER(SQ_INSTRUCTION_CF_ALLOC_1)
+ GENERATE_FIELD(RESERVED_0, int)
+ GENERATE_FIELD(NO_SERIAL, int)
+ GENERATE_FIELD(BUFFER_SELECT, Allocation_type)
+ GENERATE_FIELD(ALLOC_MODE, int)
+ GENERATE_FIELD(OPCODE, CFOpcode)
+ GENERATE_FIELD(SIZE, int)
+ GENERATE_FIELD(RESERVED_1, int)
+END_REGISTER(SQ_INSTRUCTION_CF_ALLOC_1)
+
+START_REGISTER(SQ_INSTRUCTION_CF_ALLOC_2)
+ GENERATE_FIELD(RESERVED, int)
+ GENERATE_FIELD(NO_SERIAL, int)
+ GENERATE_FIELD(BUFFER_SELECT, Allocation_type)
+ GENERATE_FIELD(ALLOC_MODE, int)
+ GENERATE_FIELD(OPCODE, CFOpcode)
+END_REGISTER(SQ_INSTRUCTION_CF_ALLOC_2)
+
+START_REGISTER(SQ_INSTRUCTION_TFETCH_0)
+ GENERATE_FIELD(OPCODE, TexInstOpcode)
+ GENERATE_FIELD(SRC_GPR, int)
+ GENERATE_FIELD(SRC_GPR_AM, Addressmode)
+ GENERATE_FIELD(DST_GPR, int)
+ GENERATE_FIELD(DST_GPR_AM, Addressmode)
+ GENERATE_FIELD(FETCH_VALID_ONLY, int)
+ GENERATE_FIELD(CONST_INDEX, int)
+ GENERATE_FIELD(TX_COORD_DENORM, TexCoordDenorm)
+ GENERATE_FIELD(SRC_SEL_X, SrcSel)
+ GENERATE_FIELD(SRC_SEL_Y, SrcSel)
+ GENERATE_FIELD(SRC_SEL_Z, SrcSel)
+END_REGISTER(SQ_INSTRUCTION_TFETCH_0)
+
+START_REGISTER(SQ_INSTRUCTION_TFETCH_1)
+ GENERATE_FIELD(DST_SEL_X, DstSel)
+ GENERATE_FIELD(DST_SEL_Y, DstSel)
+ GENERATE_FIELD(DST_SEL_Z, DstSel)
+ GENERATE_FIELD(DST_SEL_W, DstSel)
+ GENERATE_FIELD(MAG_FILTER, MagFilter)
+ GENERATE_FIELD(MIN_FILTER, MinFilter)
+ GENERATE_FIELD(MIP_FILTER, MipFilter)
+ GENERATE_FIELD(ANISO_FILTER, AnisoFilter)
+ GENERATE_FIELD(ARBITRARY_FILTER, ArbitraryFilter)
+ GENERATE_FIELD(VOL_MAG_FILTER, VolMagFilter)
+ GENERATE_FIELD(VOL_MIN_FILTER, VolMinFilter)
+ GENERATE_FIELD(USE_COMP_LOD, int)
+ GENERATE_FIELD(USE_REG_LOD, int)
+ GENERATE_FIELD(PRED_SELECT, PredSelect)
+END_REGISTER(SQ_INSTRUCTION_TFETCH_1)
+
+START_REGISTER(SQ_INSTRUCTION_TFETCH_2)
+ GENERATE_FIELD(USE_REG_GRADIENTS, int)
+ GENERATE_FIELD(SAMPLE_LOCATION, SampleLocation)
+ GENERATE_FIELD(LOD_BIAS, int)
+ GENERATE_FIELD(UNUSED, int)
+ GENERATE_FIELD(OFFSET_X, int)
+ GENERATE_FIELD(OFFSET_Y, int)
+ GENERATE_FIELD(OFFSET_Z, int)
+ GENERATE_FIELD(PRED_CONDITION, int)
+END_REGISTER(SQ_INSTRUCTION_TFETCH_2)
+
+START_REGISTER(SQ_INSTRUCTION_VFETCH_0)
+ GENERATE_FIELD(OPCODE, int)
+ GENERATE_FIELD(SRC_GPR, int)
+ GENERATE_FIELD(SRC_GPR_AM, int)
+ GENERATE_FIELD(DST_GPR, int)
+ GENERATE_FIELD(DST_GPR_AM, int)
+ GENERATE_FIELD(MUST_BE_ONE, int)
+ GENERATE_FIELD(CONST_INDEX, int)
+ GENERATE_FIELD(CONST_INDEX_SEL, int)
+ GENERATE_FIELD(SRC_SEL, int)
+END_REGISTER(SQ_INSTRUCTION_VFETCH_0)
+
+START_REGISTER(SQ_INSTRUCTION_VFETCH_1)
+ GENERATE_FIELD(DST_SEL_X, int)
+ GENERATE_FIELD(DST_SEL_Y, int)
+ GENERATE_FIELD(DST_SEL_Z, int)
+ GENERATE_FIELD(DST_SEL_W, int)
+ GENERATE_FIELD(FORMAT_COMP_ALL, int)
+ GENERATE_FIELD(NUM_FORMAT_ALL, int)
+ GENERATE_FIELD(SIGNED_RF_MODE_ALL, int)
+ GENERATE_FIELD(DATA_FORMAT, int)
+ GENERATE_FIELD(EXP_ADJUST_ALL, int)
+ GENERATE_FIELD(PRED_SELECT, int)
+END_REGISTER(SQ_INSTRUCTION_VFETCH_1)
+
+START_REGISTER(SQ_INSTRUCTION_VFETCH_2)
+ GENERATE_FIELD(STRIDE, int)
+ GENERATE_FIELD(OFFSET, int)
+ GENERATE_FIELD(PRED_CONDITION, int)
+END_REGISTER(SQ_INSTRUCTION_VFETCH_2)
+
+START_REGISTER(SQ_CONSTANT_0)
+ GENERATE_FIELD(RED, float)
+END_REGISTER(SQ_CONSTANT_0)
+
+START_REGISTER(SQ_CONSTANT_1)
+ GENERATE_FIELD(GREEN, float)
+END_REGISTER(SQ_CONSTANT_1)
+
+START_REGISTER(SQ_CONSTANT_2)
+ GENERATE_FIELD(BLUE, float)
+END_REGISTER(SQ_CONSTANT_2)
+
+START_REGISTER(SQ_CONSTANT_3)
+ GENERATE_FIELD(ALPHA, float)
+END_REGISTER(SQ_CONSTANT_3)
+
+START_REGISTER(SQ_FETCH_0)
+ GENERATE_FIELD(VALUE, int)
+END_REGISTER(SQ_FETCH_0)
+
+START_REGISTER(SQ_FETCH_1)
+ GENERATE_FIELD(VALUE, int)
+END_REGISTER(SQ_FETCH_1)
+
+START_REGISTER(SQ_FETCH_2)
+ GENERATE_FIELD(VALUE, int)
+END_REGISTER(SQ_FETCH_2)
+
+START_REGISTER(SQ_FETCH_3)
+ GENERATE_FIELD(VALUE, int)
+END_REGISTER(SQ_FETCH_3)
+
+START_REGISTER(SQ_FETCH_4)
+ GENERATE_FIELD(VALUE, int)
+END_REGISTER(SQ_FETCH_4)
+
+START_REGISTER(SQ_FETCH_5)
+ GENERATE_FIELD(VALUE, int)
+END_REGISTER(SQ_FETCH_5)
+
+START_REGISTER(SQ_CONSTANT_VFETCH_0)
+ GENERATE_FIELD(TYPE, int)
+ GENERATE_FIELD(STATE, int)
+ GENERATE_FIELD(BASE_ADDRESS, hex)
+END_REGISTER(SQ_CONSTANT_VFETCH_0)
+
+START_REGISTER(SQ_CONSTANT_VFETCH_1)
+ GENERATE_FIELD(ENDIAN_SWAP, int)
+ GENERATE_FIELD(LIMIT_ADDRESS, hex)
+END_REGISTER(SQ_CONSTANT_VFETCH_1)
+
+START_REGISTER(SQ_CONSTANT_T2)
+ GENERATE_FIELD(VALUE, int)
+END_REGISTER(SQ_CONSTANT_T2)
+
+START_REGISTER(SQ_CONSTANT_T3)
+ GENERATE_FIELD(VALUE, int)
+END_REGISTER(SQ_CONSTANT_T3)
+
+START_REGISTER(SQ_CF_BOOLEANS)
+ GENERATE_FIELD(CF_BOOLEANS_0, int)
+ GENERATE_FIELD(CF_BOOLEANS_1, int)
+ GENERATE_FIELD(CF_BOOLEANS_2, int)
+ GENERATE_FIELD(CF_BOOLEANS_3, int)
+END_REGISTER(SQ_CF_BOOLEANS)
+
+START_REGISTER(SQ_CF_LOOP)
+ GENERATE_FIELD(CF_LOOP_COUNT, int)
+ GENERATE_FIELD(CF_LOOP_START, int)
+ GENERATE_FIELD(CF_LOOP_STEP, int)
+END_REGISTER(SQ_CF_LOOP)
+
+START_REGISTER(SQ_CONSTANT_RT_0)
+ GENERATE_FIELD(RED, float)
+END_REGISTER(SQ_CONSTANT_RT_0)
+
+START_REGISTER(SQ_CONSTANT_RT_1)
+ GENERATE_FIELD(GREEN, float)
+END_REGISTER(SQ_CONSTANT_RT_1)
+
+START_REGISTER(SQ_CONSTANT_RT_2)
+ GENERATE_FIELD(BLUE, float)
+END_REGISTER(SQ_CONSTANT_RT_2)
+
+START_REGISTER(SQ_CONSTANT_RT_3)
+ GENERATE_FIELD(ALPHA, float)
+END_REGISTER(SQ_CONSTANT_RT_3)
+
+START_REGISTER(SQ_FETCH_RT_0)
+ GENERATE_FIELD(VALUE, int)
+END_REGISTER(SQ_FETCH_RT_0)
+
+START_REGISTER(SQ_FETCH_RT_1)
+ GENERATE_FIELD(VALUE, int)
+END_REGISTER(SQ_FETCH_RT_1)
+
+START_REGISTER(SQ_FETCH_RT_2)
+ GENERATE_FIELD(VALUE, int)
+END_REGISTER(SQ_FETCH_RT_2)
+
+START_REGISTER(SQ_FETCH_RT_3)
+ GENERATE_FIELD(VALUE, int)
+END_REGISTER(SQ_FETCH_RT_3)
+
+START_REGISTER(SQ_FETCH_RT_4)
+ GENERATE_FIELD(VALUE, int)
+END_REGISTER(SQ_FETCH_RT_4)
+
+START_REGISTER(SQ_FETCH_RT_5)
+ GENERATE_FIELD(VALUE, int)
+END_REGISTER(SQ_FETCH_RT_5)
+
+START_REGISTER(SQ_CF_RT_BOOLEANS)
+ GENERATE_FIELD(CF_BOOLEANS_0, int)
+ GENERATE_FIELD(CF_BOOLEANS_1, int)
+ GENERATE_FIELD(CF_BOOLEANS_2, int)
+ GENERATE_FIELD(CF_BOOLEANS_3, int)
+END_REGISTER(SQ_CF_RT_BOOLEANS)
+
+START_REGISTER(SQ_CF_RT_LOOP)
+ GENERATE_FIELD(CF_LOOP_COUNT, int)
+ GENERATE_FIELD(CF_LOOP_START, int)
+ GENERATE_FIELD(CF_LOOP_STEP, int)
+END_REGISTER(SQ_CF_RT_LOOP)
+
+START_REGISTER(SQ_VS_PROGRAM)
+ GENERATE_FIELD(BASE, int)
+ GENERATE_FIELD(SIZE, int)
+END_REGISTER(SQ_VS_PROGRAM)
+
+START_REGISTER(SQ_PS_PROGRAM)
+ GENERATE_FIELD(BASE, int)
+ GENERATE_FIELD(SIZE, int)
+END_REGISTER(SQ_PS_PROGRAM)
+
+START_REGISTER(SQ_CF_PROGRAM_SIZE)
+ GENERATE_FIELD(VS_CF_SIZE, int)
+ GENERATE_FIELD(PS_CF_SIZE, int)
+END_REGISTER(SQ_CF_PROGRAM_SIZE)
+
+START_REGISTER(SQ_INTERPOLATOR_CNTL)
+ GENERATE_FIELD(PARAM_SHADE, ParamShade)
+ GENERATE_FIELD(SAMPLING_PATTERN, SamplingPattern)
+END_REGISTER(SQ_INTERPOLATOR_CNTL)
+
+START_REGISTER(SQ_PROGRAM_CNTL)
+ GENERATE_FIELD(VS_NUM_REG, intMinusOne)
+ GENERATE_FIELD(PS_NUM_REG, intMinusOne)
+ GENERATE_FIELD(VS_RESOURCE, int)
+ GENERATE_FIELD(PS_RESOURCE, int)
+ GENERATE_FIELD(PARAM_GEN, int)
+ GENERATE_FIELD(GEN_INDEX_PIX, int)
+ GENERATE_FIELD(VS_EXPORT_COUNT, intMinusOne)
+ GENERATE_FIELD(VS_EXPORT_MODE, VertexMode)
+ GENERATE_FIELD(PS_EXPORT_MODE, int)
+ GENERATE_FIELD(GEN_INDEX_VTX, int)
+END_REGISTER(SQ_PROGRAM_CNTL)
+
+START_REGISTER(SQ_WRAPPING_0)
+ GENERATE_FIELD(PARAM_WRAP_0, hex)
+ GENERATE_FIELD(PARAM_WRAP_1, hex)
+ GENERATE_FIELD(PARAM_WRAP_2, hex)
+ GENERATE_FIELD(PARAM_WRAP_3, hex)
+ GENERATE_FIELD(PARAM_WRAP_4, hex)
+ GENERATE_FIELD(PARAM_WRAP_5, hex)
+ GENERATE_FIELD(PARAM_WRAP_6, hex)
+ GENERATE_FIELD(PARAM_WRAP_7, hex)
+END_REGISTER(SQ_WRAPPING_0)
+
+START_REGISTER(SQ_WRAPPING_1)
+ GENERATE_FIELD(PARAM_WRAP_8, hex)
+ GENERATE_FIELD(PARAM_WRAP_9, hex)
+ GENERATE_FIELD(PARAM_WRAP_10, hex)
+ GENERATE_FIELD(PARAM_WRAP_11, hex)
+ GENERATE_FIELD(PARAM_WRAP_12, hex)
+ GENERATE_FIELD(PARAM_WRAP_13, hex)
+ GENERATE_FIELD(PARAM_WRAP_14, hex)
+ GENERATE_FIELD(PARAM_WRAP_15, hex)
+END_REGISTER(SQ_WRAPPING_1)
+
+START_REGISTER(SQ_VS_CONST)
+ GENERATE_FIELD(BASE, int)
+ GENERATE_FIELD(SIZE, int)
+END_REGISTER(SQ_VS_CONST)
+
+START_REGISTER(SQ_PS_CONST)
+ GENERATE_FIELD(BASE, int)
+ GENERATE_FIELD(SIZE, int)
+END_REGISTER(SQ_PS_CONST)
+
+START_REGISTER(SQ_CONTEXT_MISC)
+ GENERATE_FIELD(INST_PRED_OPTIMIZE, int)
+ GENERATE_FIELD(SC_OUTPUT_SCREEN_XY, int)
+ GENERATE_FIELD(SC_SAMPLE_CNTL, Sample_Cntl)
+ GENERATE_FIELD(PARAM_GEN_POS, int)
+ GENERATE_FIELD(PERFCOUNTER_REF, int)
+ GENERATE_FIELD(YEILD_OPTIMIZE, int)
+ GENERATE_FIELD(TX_CACHE_SEL, int)
+END_REGISTER(SQ_CONTEXT_MISC)
+
+START_REGISTER(SQ_CF_RD_BASE)
+ GENERATE_FIELD(RD_BASE, hex)
+END_REGISTER(SQ_CF_RD_BASE)
+
+START_REGISTER(SQ_DEBUG_MISC_0)
+ GENERATE_FIELD(DB_PROB_ON, int)
+ GENERATE_FIELD(DB_PROB_BREAK, int)
+ GENERATE_FIELD(DB_PROB_ADDR, int)
+ GENERATE_FIELD(DB_PROB_COUNT, int)
+END_REGISTER(SQ_DEBUG_MISC_0)
+
+START_REGISTER(SQ_DEBUG_MISC_1)
+ GENERATE_FIELD(DB_ON_PIX, int)
+ GENERATE_FIELD(DB_ON_VTX, int)
+ GENERATE_FIELD(DB_INST_COUNT, int)
+ GENERATE_FIELD(DB_BREAK_ADDR, int)
+END_REGISTER(SQ_DEBUG_MISC_1)
+
+START_REGISTER(MH_ARBITER_CONFIG)
+ GENERATE_FIELD(SAME_PAGE_LIMIT, int)
+ GENERATE_FIELD(SAME_PAGE_GRANULARITY, int)
+ GENERATE_FIELD(L1_ARB_ENABLE, bool)
+ GENERATE_FIELD(L1_ARB_HOLD_ENABLE, int)
+ GENERATE_FIELD(L2_ARB_CONTROL, int)
+ GENERATE_FIELD(PAGE_SIZE, int)
+ GENERATE_FIELD(TC_REORDER_ENABLE, bool)
+ GENERATE_FIELD(TC_ARB_HOLD_ENABLE, bool)
+ GENERATE_FIELD(IN_FLIGHT_LIMIT_ENABLE, bool)
+ GENERATE_FIELD(IN_FLIGHT_LIMIT, int)
+ GENERATE_FIELD(CP_CLNT_ENABLE, bool)
+ GENERATE_FIELD(VGT_CLNT_ENABLE, bool)
+ GENERATE_FIELD(TC_CLNT_ENABLE, bool)
+ GENERATE_FIELD(RB_CLNT_ENABLE, bool)
+END_REGISTER(MH_ARBITER_CONFIG)
+
+START_REGISTER(MH_CLNT_AXI_ID_REUSE)
+ GENERATE_FIELD(CPw_ID, int)
+ GENERATE_FIELD(RESERVED1, int)
+ GENERATE_FIELD(RBw_ID, int)
+ GENERATE_FIELD(RESERVED2, int)
+ GENERATE_FIELD(MMUr_ID, int)
+END_REGISTER(MH_CLNT_AXI_ID_REUSE)
+
+START_REGISTER(MH_INTERRUPT_MASK)
+ GENERATE_FIELD(AXI_READ_ERROR, bool)
+ GENERATE_FIELD(AXI_WRITE_ERROR, bool)
+ GENERATE_FIELD(MMU_PAGE_FAULT, bool)
+END_REGISTER(MH_INTERRUPT_MASK)
+
+START_REGISTER(MH_INTERRUPT_STATUS)
+ GENERATE_FIELD(AXI_READ_ERROR, int)
+ GENERATE_FIELD(AXI_WRITE_ERROR, int)
+ GENERATE_FIELD(MMU_PAGE_FAULT, int)
+END_REGISTER(MH_INTERRUPT_STATUS)
+
+START_REGISTER(MH_INTERRUPT_CLEAR)
+ GENERATE_FIELD(AXI_READ_ERROR, int)
+ GENERATE_FIELD(AXI_WRITE_ERROR, int)
+ GENERATE_FIELD(MMU_PAGE_FAULT, int)
+END_REGISTER(MH_INTERRUPT_CLEAR)
+
+START_REGISTER(MH_AXI_ERROR)
+ GENERATE_FIELD(AXI_READ_ID, int)
+ GENERATE_FIELD(AXI_READ_ERROR, int)
+ GENERATE_FIELD(AXI_WRITE_ID, int)
+ GENERATE_FIELD(AXI_WRITE_ERROR, int)
+END_REGISTER(MH_AXI_ERROR)
+
+START_REGISTER(MH_PERFCOUNTER0_SELECT)
+ GENERATE_FIELD(PERF_SEL, MhPerfEncode)
+END_REGISTER(MH_PERFCOUNTER0_SELECT)
+
+START_REGISTER(MH_PERFCOUNTER1_SELECT)
+ GENERATE_FIELD(PERF_SEL, MhPerfEncode)
+END_REGISTER(MH_PERFCOUNTER1_SELECT)
+
+START_REGISTER(MH_PERFCOUNTER0_CONFIG)
+ GENERATE_FIELD(N_VALUE, int)
+END_REGISTER(MH_PERFCOUNTER0_CONFIG)
+
+START_REGISTER(MH_PERFCOUNTER1_CONFIG)
+ GENERATE_FIELD(N_VALUE, int)
+END_REGISTER(MH_PERFCOUNTER1_CONFIG)
+
+START_REGISTER(MH_PERFCOUNTER0_LOW)
+ GENERATE_FIELD(PERF_COUNTER_LOW, int)
+END_REGISTER(MH_PERFCOUNTER0_LOW)
+
+START_REGISTER(MH_PERFCOUNTER1_LOW)
+ GENERATE_FIELD(PERF_COUNTER_LOW, int)
+END_REGISTER(MH_PERFCOUNTER1_LOW)
+
+START_REGISTER(MH_PERFCOUNTER0_HI)
+ GENERATE_FIELD(PERF_COUNTER_HI, int)
+END_REGISTER(MH_PERFCOUNTER0_HI)
+
+START_REGISTER(MH_PERFCOUNTER1_HI)
+ GENERATE_FIELD(PERF_COUNTER_HI, int)
+END_REGISTER(MH_PERFCOUNTER1_HI)
+
+START_REGISTER(MH_DEBUG_CTRL)
+ GENERATE_FIELD(INDEX, int)
+END_REGISTER(MH_DEBUG_CTRL)
+
+START_REGISTER(MH_DEBUG_DATA)
+ GENERATE_FIELD(DATA, int)
+END_REGISTER(MH_DEBUG_DATA)
+
+START_REGISTER(MH_MMU_CONFIG)
+ GENERATE_FIELD(MMU_ENABLE, bool)
+ GENERATE_FIELD(SPLIT_MODE_ENABLE, bool)
+ GENERATE_FIELD(RESERVED1, int)
+ GENERATE_FIELD(RB_W_CLNT_BEHAVIOR, MmuClntBeh)
+ GENERATE_FIELD(CP_W_CLNT_BEHAVIOR, MmuClntBeh)
+ GENERATE_FIELD(CP_R0_CLNT_BEHAVIOR, MmuClntBeh)
+ GENERATE_FIELD(CP_R1_CLNT_BEHAVIOR, MmuClntBeh)
+ GENERATE_FIELD(CP_R2_CLNT_BEHAVIOR, MmuClntBeh)
+ GENERATE_FIELD(CP_R3_CLNT_BEHAVIOR, MmuClntBeh)
+ GENERATE_FIELD(CP_R4_CLNT_BEHAVIOR, MmuClntBeh)
+ GENERATE_FIELD(VGT_R0_CLNT_BEHAVIOR, MmuClntBeh)
+ GENERATE_FIELD(VGT_R1_CLNT_BEHAVIOR, MmuClntBeh)
+ GENERATE_FIELD(TC_R_CLNT_BEHAVIOR, MmuClntBeh)
+END_REGISTER(MH_MMU_CONFIG)
+
+START_REGISTER(MH_MMU_VA_RANGE)
+ GENERATE_FIELD(NUM_64KB_REGIONS, int)
+ GENERATE_FIELD(VA_BASE, int)
+END_REGISTER(MH_MMU_VA_RANGE)
+
+START_REGISTER(MH_MMU_PT_BASE)
+ GENERATE_FIELD(PT_BASE, int)
+END_REGISTER(MH_MMU_PT_BASE)
+
+START_REGISTER(MH_MMU_PAGE_FAULT)
+ GENERATE_FIELD(PAGE_FAULT, int)
+ GENERATE_FIELD(OP_TYPE, int)
+ GENERATE_FIELD(CLNT_BEHAVIOR, MmuClntBeh)
+ GENERATE_FIELD(AXI_ID, int)
+ GENERATE_FIELD(RESERVED1, int)
+ GENERATE_FIELD(MPU_ADDRESS_OUT_OF_RANGE, int)
+ GENERATE_FIELD(ADDRESS_OUT_OF_RANGE, int)
+ GENERATE_FIELD(READ_PROTECTION_ERROR, int)
+ GENERATE_FIELD(WRITE_PROTECTION_ERROR, int)
+ GENERATE_FIELD(REQ_VA, int)
+END_REGISTER(MH_MMU_PAGE_FAULT)
+
+START_REGISTER(MH_MMU_TRAN_ERROR)
+ GENERATE_FIELD(TRAN_ERROR, int)
+END_REGISTER(MH_MMU_TRAN_ERROR)
+
+START_REGISTER(MH_MMU_INVALIDATE)
+ GENERATE_FIELD(INVALIDATE_ALL, int)
+ GENERATE_FIELD(INVALIDATE_TC, int)
+END_REGISTER(MH_MMU_INVALIDATE)
+
+START_REGISTER(MH_MMU_MPU_BASE)
+ GENERATE_FIELD(MPU_BASE, int)
+END_REGISTER(MH_MMU_MPU_BASE)
+
+START_REGISTER(MH_MMU_MPU_END)
+ GENERATE_FIELD(MPU_END, int)
+END_REGISTER(MH_MMU_MPU_END)
+
+START_REGISTER(WAIT_UNTIL)
+ GENERATE_FIELD(WAIT_RE_VSYNC, int)
+ GENERATE_FIELD(WAIT_FE_VSYNC, int)
+ GENERATE_FIELD(WAIT_VSYNC, int)
+ GENERATE_FIELD(WAIT_DSPLY_ID0, int)
+ GENERATE_FIELD(WAIT_DSPLY_ID1, int)
+ GENERATE_FIELD(WAIT_DSPLY_ID2, int)
+ GENERATE_FIELD(WAIT_CMDFIFO, int)
+ GENERATE_FIELD(WAIT_2D_IDLE, int)
+ GENERATE_FIELD(WAIT_3D_IDLE, int)
+ GENERATE_FIELD(WAIT_2D_IDLECLEAN, int)
+ GENERATE_FIELD(WAIT_3D_IDLECLEAN, int)
+ GENERATE_FIELD(CMDFIFO_ENTRIES, int)
+END_REGISTER(WAIT_UNTIL)
+
+START_REGISTER(RBBM_ISYNC_CNTL)
+ GENERATE_FIELD(ISYNC_WAIT_IDLEGUI, int)
+ GENERATE_FIELD(ISYNC_CPSCRATCH_IDLEGUI, int)
+END_REGISTER(RBBM_ISYNC_CNTL)
+
+START_REGISTER(RBBM_STATUS)
+ GENERATE_FIELD(CMDFIFO_AVAIL, int)
+ GENERATE_FIELD(TC_BUSY, int)
+ GENERATE_FIELD(HIRQ_PENDING, int)
+ GENERATE_FIELD(CPRQ_PENDING, int)
+ GENERATE_FIELD(CFRQ_PENDING, int)
+ GENERATE_FIELD(PFRQ_PENDING, int)
+ GENERATE_FIELD(VGT_BUSY_NO_DMA, int)
+ GENERATE_FIELD(RBBM_WU_BUSY, int)
+ GENERATE_FIELD(CP_NRT_BUSY, int)
+ GENERATE_FIELD(MH_BUSY, int)
+ GENERATE_FIELD(MH_COHERENCY_BUSY, int)
+ GENERATE_FIELD(SX_BUSY, int)
+ GENERATE_FIELD(TPC_BUSY, int)
+ GENERATE_FIELD(SC_CNTX_BUSY, int)
+ GENERATE_FIELD(PA_BUSY, int)
+ GENERATE_FIELD(VGT_BUSY, int)
+ GENERATE_FIELD(SQ_CNTX17_BUSY, int)
+ GENERATE_FIELD(SQ_CNTX0_BUSY, int)
+ GENERATE_FIELD(RB_CNTX_BUSY, int)
+ GENERATE_FIELD(GUI_ACTIVE, int)
+END_REGISTER(RBBM_STATUS)
+
+START_REGISTER(RBBM_DSPLY)
+ GENERATE_FIELD(DISPLAY_ID0_ACTIVE, int)
+ GENERATE_FIELD(DISPLAY_ID1_ACTIVE, int)
+ GENERATE_FIELD(DISPLAY_ID2_ACTIVE, int)
+ GENERATE_FIELD(VSYNC_ACTIVE, int)
+ GENERATE_FIELD(USE_DISPLAY_ID0, int)
+ GENERATE_FIELD(USE_DISPLAY_ID1, int)
+ GENERATE_FIELD(USE_DISPLAY_ID2, int)
+ GENERATE_FIELD(SW_CNTL, int)
+ GENERATE_FIELD(NUM_BUFS, int)
+END_REGISTER(RBBM_DSPLY)
+
+START_REGISTER(RBBM_RENDER_LATEST)
+ GENERATE_FIELD(BUFFER_ID, int)
+END_REGISTER(RBBM_RENDER_LATEST)
+
+START_REGISTER(RBBM_RTL_RELEASE)
+ GENERATE_FIELD(CHANGELIST, int)
+END_REGISTER(RBBM_RTL_RELEASE)
+
+START_REGISTER(RBBM_PATCH_RELEASE)
+ GENERATE_FIELD(PATCH_REVISION, int)
+ GENERATE_FIELD(PATCH_SELECTION, int)
+ GENERATE_FIELD(CUSTOMER_ID, int)
+END_REGISTER(RBBM_PATCH_RELEASE)
+
+START_REGISTER(RBBM_AUXILIARY_CONFIG)
+ GENERATE_FIELD(RESERVED, int)
+END_REGISTER(RBBM_AUXILIARY_CONFIG)
+
+START_REGISTER(RBBM_PERIPHID0)
+ GENERATE_FIELD(PARTNUMBER0, int)
+END_REGISTER(RBBM_PERIPHID0)
+
+START_REGISTER(RBBM_PERIPHID1)
+ GENERATE_FIELD(PARTNUMBER1, int)
+ GENERATE_FIELD(DESIGNER0, int)
+END_REGISTER(RBBM_PERIPHID1)
+
+START_REGISTER(RBBM_PERIPHID2)
+ GENERATE_FIELD(DESIGNER1, int)
+ GENERATE_FIELD(REVISION, int)
+END_REGISTER(RBBM_PERIPHID2)
+
+START_REGISTER(RBBM_PERIPHID3)
+ GENERATE_FIELD(RBBM_HOST_INTERFACE, int)
+ GENERATE_FIELD(GARB_SLAVE_INTERFACE, int)
+ GENERATE_FIELD(MH_INTERFACE, int)
+ GENERATE_FIELD(CONTINUATION, int)
+END_REGISTER(RBBM_PERIPHID3)
+
+START_REGISTER(RBBM_CNTL)
+ GENERATE_FIELD(READ_TIMEOUT, int)
+ GENERATE_FIELD(REGCLK_DEASSERT_TIME, int)
+END_REGISTER(RBBM_CNTL)
+
+START_REGISTER(RBBM_SKEW_CNTL)
+ GENERATE_FIELD(SKEW_TOP_THRESHOLD, int)
+ GENERATE_FIELD(SKEW_COUNT, int)
+END_REGISTER(RBBM_SKEW_CNTL)
+
+START_REGISTER(RBBM_SOFT_RESET)
+ GENERATE_FIELD(SOFT_RESET_CP, int)
+ GENERATE_FIELD(SOFT_RESET_PA, int)
+ GENERATE_FIELD(SOFT_RESET_MH, int)
+ GENERATE_FIELD(SOFT_RESET_BC, int)
+ GENERATE_FIELD(SOFT_RESET_SQ, int)
+ GENERATE_FIELD(SOFT_RESET_SX, int)
+ GENERATE_FIELD(SOFT_RESET_CIB, int)
+ GENERATE_FIELD(SOFT_RESET_SC, int)
+ GENERATE_FIELD(SOFT_RESET_VGT, int)
+END_REGISTER(RBBM_SOFT_RESET)
+
+START_REGISTER(RBBM_PM_OVERRIDE1)
+ GENERATE_FIELD(RBBM_AHBCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(SC_REG_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(SC_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(SP_TOP_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(SP_V0_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(SQ_REG_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(SQ_REG_FIFOS_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(SQ_CONST_MEM_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(SQ_SQ_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(SX_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(SX_REG_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(TCM_TCO_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(TCM_TCM_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(TCM_TCD_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(TCM_REG_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(TPC_TPC_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(TPC_REG_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(TCF_TCA_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(TCF_TCB_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(TCF_TCB_READ_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(TP_TP_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(TP_REG_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(CP_G_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(CP_REG_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(CP_G_REG_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(SPI_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(RB_REG_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(RB_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(MH_MH_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(MH_REG_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(MH_MMU_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(MH_TCROQ_SCLK_PM_OVERRIDE, int)
+END_REGISTER(RBBM_PM_OVERRIDE1)
+
+START_REGISTER(RBBM_PM_OVERRIDE2)
+ GENERATE_FIELD(PA_REG_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(PA_PA_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(PA_AG_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(VGT_REG_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(VGT_FIFOS_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(VGT_VGT_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(DEBUG_PERF_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(PERM_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(GC_GA_GMEM0_PM_OVERRIDE, int)
+ GENERATE_FIELD(GC_GA_GMEM1_PM_OVERRIDE, int)
+ GENERATE_FIELD(GC_GA_GMEM2_PM_OVERRIDE, int)
+ GENERATE_FIELD(GC_GA_GMEM3_PM_OVERRIDE, int)
+END_REGISTER(RBBM_PM_OVERRIDE2)
+
+START_REGISTER(GC_SYS_IDLE)
+ GENERATE_FIELD(GC_SYS_IDLE_DELAY, int)
+ GENERATE_FIELD(GC_SYS_IDLE_OVERRIDE, int)
+END_REGISTER(GC_SYS_IDLE)
+
+START_REGISTER(NQWAIT_UNTIL)
+ GENERATE_FIELD(WAIT_GUI_IDLE, int)
+END_REGISTER(NQWAIT_UNTIL)
+
+START_REGISTER(RBBM_DEBUG)
+ GENERATE_FIELD(IGNORE_RTR, int)
+ GENERATE_FIELD(IGNORE_CP_SCHED_WU, int)
+ GENERATE_FIELD(IGNORE_CP_SCHED_ISYNC, int)
+ GENERATE_FIELD(IGNORE_CP_SCHED_NQ_HI, int)
+ GENERATE_FIELD(HYSTERESIS_NRT_GUI_ACTIVE, int)
+ GENERATE_FIELD(IGNORE_RTR_FOR_HI, int)
+ GENERATE_FIELD(IGNORE_CP_RBBM_NRTRTR_FOR_HI, int)
+ GENERATE_FIELD(IGNORE_VGT_RBBM_NRTRTR_FOR_HI, int)
+ GENERATE_FIELD(IGNORE_SQ_RBBM_NRTRTR_FOR_HI, int)
+ GENERATE_FIELD(CP_RBBM_NRTRTR, int)
+ GENERATE_FIELD(VGT_RBBM_NRTRTR, int)
+ GENERATE_FIELD(SQ_RBBM_NRTRTR, int)
+ GENERATE_FIELD(CLIENTS_FOR_NRT_RTR_FOR_HI, int)
+ GENERATE_FIELD(CLIENTS_FOR_NRT_RTR, int)
+ GENERATE_FIELD(IGNORE_SX_RBBM_BUSY, int)
+END_REGISTER(RBBM_DEBUG)
+
+START_REGISTER(RBBM_READ_ERROR)
+ GENERATE_FIELD(READ_ADDRESS, int)
+ GENERATE_FIELD(READ_REQUESTER, int)
+ GENERATE_FIELD(READ_ERROR, int)
+END_REGISTER(RBBM_READ_ERROR)
+
+START_REGISTER(RBBM_WAIT_IDLE_CLOCKS)
+ GENERATE_FIELD(WAIT_IDLE_CLOCKS_NRT, int)
+END_REGISTER(RBBM_WAIT_IDLE_CLOCKS)
+
+START_REGISTER(RBBM_INT_CNTL)
+ GENERATE_FIELD(RDERR_INT_MASK, int)
+ GENERATE_FIELD(DISPLAY_UPDATE_INT_MASK, int)
+ GENERATE_FIELD(GUI_IDLE_INT_MASK, int)
+END_REGISTER(RBBM_INT_CNTL)
+
+START_REGISTER(RBBM_INT_STATUS)
+ GENERATE_FIELD(RDERR_INT_STAT, int)
+ GENERATE_FIELD(DISPLAY_UPDATE_INT_STAT, int)
+ GENERATE_FIELD(GUI_IDLE_INT_STAT, int)
+END_REGISTER(RBBM_INT_STATUS)
+
+START_REGISTER(RBBM_INT_ACK)
+ GENERATE_FIELD(RDERR_INT_ACK, int)
+ GENERATE_FIELD(DISPLAY_UPDATE_INT_ACK, int)
+ GENERATE_FIELD(GUI_IDLE_INT_ACK, int)
+END_REGISTER(RBBM_INT_ACK)
+
+START_REGISTER(MASTER_INT_SIGNAL)
+ GENERATE_FIELD(MH_INT_STAT, int)
+ GENERATE_FIELD(CP_INT_STAT, int)
+ GENERATE_FIELD(RBBM_INT_STAT, int)
+END_REGISTER(MASTER_INT_SIGNAL)
+
+START_REGISTER(RBBM_PERFCOUNTER1_SELECT)
+ GENERATE_FIELD(PERF_COUNT1_SEL, RBBM_PERFCOUNT1_SEL)
+END_REGISTER(RBBM_PERFCOUNTER1_SELECT)
+
+START_REGISTER(RBBM_PERFCOUNTER1_LO)
+ GENERATE_FIELD(PERF_COUNT1_LO, int)
+END_REGISTER(RBBM_PERFCOUNTER1_LO)
+
+START_REGISTER(RBBM_PERFCOUNTER1_HI)
+ GENERATE_FIELD(PERF_COUNT1_HI, int)
+END_REGISTER(RBBM_PERFCOUNTER1_HI)
+
+START_REGISTER(CP_RB_BASE)
+ GENERATE_FIELD(RB_BASE, int)
+END_REGISTER(CP_RB_BASE)
+
+START_REGISTER(CP_RB_CNTL)
+ GENERATE_FIELD(RB_BUFSZ, int)
+ GENERATE_FIELD(RB_BLKSZ, int)
+ GENERATE_FIELD(BUF_SWAP, int)
+ GENERATE_FIELD(RB_POLL_EN, int)
+ GENERATE_FIELD(RB_NO_UPDATE, int)
+ GENERATE_FIELD(RB_RPTR_WR_ENA, int)
+END_REGISTER(CP_RB_CNTL)
+
+START_REGISTER(CP_RB_RPTR_ADDR)
+ GENERATE_FIELD(RB_RPTR_SWAP, int)
+ GENERATE_FIELD(RB_RPTR_ADDR, int)
+END_REGISTER(CP_RB_RPTR_ADDR)
+
+START_REGISTER(CP_RB_RPTR)
+ GENERATE_FIELD(RB_RPTR, int)
+END_REGISTER(CP_RB_RPTR)
+
+START_REGISTER(CP_RB_RPTR_WR)
+ GENERATE_FIELD(RB_RPTR_WR, int)
+END_REGISTER(CP_RB_RPTR_WR)
+
+START_REGISTER(CP_RB_WPTR)
+ GENERATE_FIELD(RB_WPTR, int)
+END_REGISTER(CP_RB_WPTR)
+
+START_REGISTER(CP_RB_WPTR_DELAY)
+ GENERATE_FIELD(PRE_WRITE_TIMER, int)
+ GENERATE_FIELD(PRE_WRITE_LIMIT, int)
+END_REGISTER(CP_RB_WPTR_DELAY)
+
+START_REGISTER(CP_RB_WPTR_BASE)
+ GENERATE_FIELD(RB_WPTR_SWAP, int)
+ GENERATE_FIELD(RB_WPTR_BASE, int)
+END_REGISTER(CP_RB_WPTR_BASE)
+
+START_REGISTER(CP_IB1_BASE)
+ GENERATE_FIELD(IB1_BASE, int)
+END_REGISTER(CP_IB1_BASE)
+
+START_REGISTER(CP_IB1_BUFSZ)
+ GENERATE_FIELD(IB1_BUFSZ, int)
+END_REGISTER(CP_IB1_BUFSZ)
+
+START_REGISTER(CP_IB2_BASE)
+ GENERATE_FIELD(IB2_BASE, int)
+END_REGISTER(CP_IB2_BASE)
+
+START_REGISTER(CP_IB2_BUFSZ)
+ GENERATE_FIELD(IB2_BUFSZ, int)
+END_REGISTER(CP_IB2_BUFSZ)
+
+START_REGISTER(CP_ST_BASE)
+ GENERATE_FIELD(ST_BASE, int)
+END_REGISTER(CP_ST_BASE)
+
+START_REGISTER(CP_ST_BUFSZ)
+ GENERATE_FIELD(ST_BUFSZ, int)
+END_REGISTER(CP_ST_BUFSZ)
+
+START_REGISTER(CP_QUEUE_THRESHOLDS)
+ GENERATE_FIELD(CSQ_IB1_START, int)
+ GENERATE_FIELD(CSQ_IB2_START, int)
+ GENERATE_FIELD(CSQ_ST_START, int)
+END_REGISTER(CP_QUEUE_THRESHOLDS)
+
+START_REGISTER(CP_MEQ_THRESHOLDS)
+ GENERATE_FIELD(MEQ_END, int)
+ GENERATE_FIELD(ROQ_END, int)
+END_REGISTER(CP_MEQ_THRESHOLDS)
+
+START_REGISTER(CP_CSQ_AVAIL)
+ GENERATE_FIELD(CSQ_CNT_RING, int)
+ GENERATE_FIELD(CSQ_CNT_IB1, int)
+ GENERATE_FIELD(CSQ_CNT_IB2, int)
+END_REGISTER(CP_CSQ_AVAIL)
+
+START_REGISTER(CP_STQ_AVAIL)
+ GENERATE_FIELD(STQ_CNT_ST, int)
+END_REGISTER(CP_STQ_AVAIL)
+
+START_REGISTER(CP_MEQ_AVAIL)
+ GENERATE_FIELD(MEQ_CNT, int)
+END_REGISTER(CP_MEQ_AVAIL)
+
+START_REGISTER(CP_CSQ_RB_STAT)
+ GENERATE_FIELD(CSQ_RPTR_PRIMARY, int)
+ GENERATE_FIELD(CSQ_WPTR_PRIMARY, int)
+END_REGISTER(CP_CSQ_RB_STAT)
+
+START_REGISTER(CP_CSQ_IB1_STAT)
+ GENERATE_FIELD(CSQ_RPTR_INDIRECT1, int)
+ GENERATE_FIELD(CSQ_WPTR_INDIRECT1, int)
+END_REGISTER(CP_CSQ_IB1_STAT)
+
+START_REGISTER(CP_CSQ_IB2_STAT)
+ GENERATE_FIELD(CSQ_RPTR_INDIRECT2, int)
+ GENERATE_FIELD(CSQ_WPTR_INDIRECT2, int)
+END_REGISTER(CP_CSQ_IB2_STAT)
+
+START_REGISTER(CP_NON_PREFETCH_CNTRS)
+ GENERATE_FIELD(IB1_COUNTER, int)
+ GENERATE_FIELD(IB2_COUNTER, int)
+END_REGISTER(CP_NON_PREFETCH_CNTRS)
+
+START_REGISTER(CP_STQ_ST_STAT)
+ GENERATE_FIELD(STQ_RPTR_ST, int)
+ GENERATE_FIELD(STQ_WPTR_ST, int)
+END_REGISTER(CP_STQ_ST_STAT)
+
+START_REGISTER(CP_MEQ_STAT)
+ GENERATE_FIELD(MEQ_RPTR, int)
+ GENERATE_FIELD(MEQ_WPTR, int)
+END_REGISTER(CP_MEQ_STAT)
+
+START_REGISTER(CP_MIU_TAG_STAT)
+ GENERATE_FIELD(TAG_0_STAT, int)
+ GENERATE_FIELD(TAG_1_STAT, int)
+ GENERATE_FIELD(TAG_2_STAT, int)
+ GENERATE_FIELD(TAG_3_STAT, int)
+ GENERATE_FIELD(TAG_4_STAT, int)
+ GENERATE_FIELD(TAG_5_STAT, int)
+ GENERATE_FIELD(TAG_6_STAT, int)
+ GENERATE_FIELD(TAG_7_STAT, int)
+ GENERATE_FIELD(TAG_8_STAT, int)
+ GENERATE_FIELD(TAG_9_STAT, int)
+ GENERATE_FIELD(TAG_10_STAT, int)
+ GENERATE_FIELD(TAG_11_STAT, int)
+ GENERATE_FIELD(TAG_12_STAT, int)
+ GENERATE_FIELD(TAG_13_STAT, int)
+ GENERATE_FIELD(TAG_14_STAT, int)
+ GENERATE_FIELD(TAG_15_STAT, int)
+ GENERATE_FIELD(TAG_16_STAT, int)
+ GENERATE_FIELD(TAG_17_STAT, int)
+ GENERATE_FIELD(INVALID_RETURN_TAG, int)
+END_REGISTER(CP_MIU_TAG_STAT)
+
+START_REGISTER(CP_CMD_INDEX)
+ GENERATE_FIELD(CMD_INDEX, int)
+ GENERATE_FIELD(CMD_QUEUE_SEL, int)
+END_REGISTER(CP_CMD_INDEX)
+
+START_REGISTER(CP_CMD_DATA)
+ GENERATE_FIELD(CMD_DATA, int)
+END_REGISTER(CP_CMD_DATA)
+
+START_REGISTER(CP_ME_CNTL)
+ GENERATE_FIELD(ME_STATMUX, int)
+ GENERATE_FIELD(VTX_DEALLOC_FIFO_EMPTY, int)
+ GENERATE_FIELD(PIX_DEALLOC_FIFO_EMPTY, int)
+ GENERATE_FIELD(ME_HALT, int)
+ GENERATE_FIELD(ME_BUSY, int)
+ GENERATE_FIELD(PROG_CNT_SIZE, int)
+END_REGISTER(CP_ME_CNTL)
+
+START_REGISTER(CP_ME_STATUS)
+ GENERATE_FIELD(ME_DEBUG_DATA, int)
+END_REGISTER(CP_ME_STATUS)
+
+START_REGISTER(CP_ME_RAM_WADDR)
+ GENERATE_FIELD(ME_RAM_WADDR, int)
+END_REGISTER(CP_ME_RAM_WADDR)
+
+START_REGISTER(CP_ME_RAM_RADDR)
+ GENERATE_FIELD(ME_RAM_RADDR, int)
+END_REGISTER(CP_ME_RAM_RADDR)
+
+START_REGISTER(CP_ME_RAM_DATA)
+ GENERATE_FIELD(ME_RAM_DATA, int)
+END_REGISTER(CP_ME_RAM_DATA)
+
+START_REGISTER(CP_ME_RDADDR)
+ GENERATE_FIELD(ME_RDADDR, int)
+END_REGISTER(CP_ME_RDADDR)
+
+START_REGISTER(CP_DEBUG)
+ GENERATE_FIELD(CP_DEBUG_UNUSED_22_to_0, int)
+ GENERATE_FIELD(PREDICATE_DISABLE, int)
+ GENERATE_FIELD(PROG_END_PTR_ENABLE, int)
+ GENERATE_FIELD(MIU_128BIT_WRITE_ENABLE, int)
+ GENERATE_FIELD(PREFETCH_PASS_NOPS, int)
+ GENERATE_FIELD(DYNAMIC_CLK_DISABLE, int)
+ GENERATE_FIELD(PREFETCH_MATCH_DISABLE, int)
+ GENERATE_FIELD(SIMPLE_ME_FLOW_CONTROL, int)
+ GENERATE_FIELD(MIU_WRITE_PACK_DISABLE, int)
+END_REGISTER(CP_DEBUG)
+
+START_REGISTER(SCRATCH_REG0)
+ GENERATE_FIELD(SCRATCH_REG0, int)
+END_REGISTER(SCRATCH_REG0)
+
+START_REGISTER(SCRATCH_REG1)
+ GENERATE_FIELD(SCRATCH_REG1, int)
+END_REGISTER(SCRATCH_REG1)
+
+START_REGISTER(SCRATCH_REG2)
+ GENERATE_FIELD(SCRATCH_REG2, int)
+END_REGISTER(SCRATCH_REG2)
+
+START_REGISTER(SCRATCH_REG3)
+ GENERATE_FIELD(SCRATCH_REG3, int)
+END_REGISTER(SCRATCH_REG3)
+
+START_REGISTER(SCRATCH_REG4)
+ GENERATE_FIELD(SCRATCH_REG4, int)
+END_REGISTER(SCRATCH_REG4)
+
+START_REGISTER(SCRATCH_REG5)
+ GENERATE_FIELD(SCRATCH_REG5, int)
+END_REGISTER(SCRATCH_REG5)
+
+START_REGISTER(SCRATCH_REG6)
+ GENERATE_FIELD(SCRATCH_REG6, int)
+END_REGISTER(SCRATCH_REG6)
+
+START_REGISTER(SCRATCH_REG7)
+ GENERATE_FIELD(SCRATCH_REG7, int)
+END_REGISTER(SCRATCH_REG7)
+
+START_REGISTER(SCRATCH_UMSK)
+ GENERATE_FIELD(SCRATCH_UMSK, int)
+ GENERATE_FIELD(SCRATCH_SWAP, int)
+END_REGISTER(SCRATCH_UMSK)
+
+START_REGISTER(SCRATCH_ADDR)
+ GENERATE_FIELD(SCRATCH_ADDR, hex)
+END_REGISTER(SCRATCH_ADDR)
+
+START_REGISTER(CP_ME_VS_EVENT_SRC)
+ GENERATE_FIELD(VS_DONE_SWM, int)
+ GENERATE_FIELD(VS_DONE_CNTR, int)
+END_REGISTER(CP_ME_VS_EVENT_SRC)
+
+START_REGISTER(CP_ME_VS_EVENT_ADDR)
+ GENERATE_FIELD(VS_DONE_SWAP, int)
+ GENERATE_FIELD(VS_DONE_ADDR, int)
+END_REGISTER(CP_ME_VS_EVENT_ADDR)
+
+START_REGISTER(CP_ME_VS_EVENT_DATA)
+ GENERATE_FIELD(VS_DONE_DATA, int)
+END_REGISTER(CP_ME_VS_EVENT_DATA)
+
+START_REGISTER(CP_ME_VS_EVENT_ADDR_SWM)
+ GENERATE_FIELD(VS_DONE_SWAP_SWM, int)
+ GENERATE_FIELD(VS_DONE_ADDR_SWM, int)
+END_REGISTER(CP_ME_VS_EVENT_ADDR_SWM)
+
+START_REGISTER(CP_ME_VS_EVENT_DATA_SWM)
+ GENERATE_FIELD(VS_DONE_DATA_SWM, int)
+END_REGISTER(CP_ME_VS_EVENT_DATA_SWM)
+
+START_REGISTER(CP_ME_PS_EVENT_SRC)
+ GENERATE_FIELD(PS_DONE_SWM, int)
+ GENERATE_FIELD(PS_DONE_CNTR, int)
+END_REGISTER(CP_ME_PS_EVENT_SRC)
+
+START_REGISTER(CP_ME_PS_EVENT_ADDR)
+ GENERATE_FIELD(PS_DONE_SWAP, int)
+ GENERATE_FIELD(PS_DONE_ADDR, int)
+END_REGISTER(CP_ME_PS_EVENT_ADDR)
+
+START_REGISTER(CP_ME_PS_EVENT_DATA)
+ GENERATE_FIELD(PS_DONE_DATA, int)
+END_REGISTER(CP_ME_PS_EVENT_DATA)
+
+START_REGISTER(CP_ME_PS_EVENT_ADDR_SWM)
+ GENERATE_FIELD(PS_DONE_SWAP_SWM, int)
+ GENERATE_FIELD(PS_DONE_ADDR_SWM, int)
+END_REGISTER(CP_ME_PS_EVENT_ADDR_SWM)
+
+START_REGISTER(CP_ME_PS_EVENT_DATA_SWM)
+ GENERATE_FIELD(PS_DONE_DATA_SWM, int)
+END_REGISTER(CP_ME_PS_EVENT_DATA_SWM)
+
+START_REGISTER(CP_ME_CF_EVENT_SRC)
+ GENERATE_FIELD(CF_DONE_SRC, int)
+END_REGISTER(CP_ME_CF_EVENT_SRC)
+
+START_REGISTER(CP_ME_CF_EVENT_ADDR)
+ GENERATE_FIELD(CF_DONE_SWAP, int)
+ GENERATE_FIELD(CF_DONE_ADDR, int)
+END_REGISTER(CP_ME_CF_EVENT_ADDR)
+
+START_REGISTER(CP_ME_CF_EVENT_DATA)
+ GENERATE_FIELD(CF_DONE_DATA, int)
+END_REGISTER(CP_ME_CF_EVENT_DATA)
+
+START_REGISTER(CP_ME_NRT_ADDR)
+ GENERATE_FIELD(NRT_WRITE_SWAP, int)
+ GENERATE_FIELD(NRT_WRITE_ADDR, int)
+END_REGISTER(CP_ME_NRT_ADDR)
+
+START_REGISTER(CP_ME_NRT_DATA)
+ GENERATE_FIELD(NRT_WRITE_DATA, int)
+END_REGISTER(CP_ME_NRT_DATA)
+
+START_REGISTER(CP_ME_VS_FETCH_DONE_SRC)
+ GENERATE_FIELD(VS_FETCH_DONE_CNTR, int)
+END_REGISTER(CP_ME_VS_FETCH_DONE_SRC)
+
+START_REGISTER(CP_ME_VS_FETCH_DONE_ADDR)
+ GENERATE_FIELD(VS_FETCH_DONE_SWAP, int)
+ GENERATE_FIELD(VS_FETCH_DONE_ADDR, int)
+END_REGISTER(CP_ME_VS_FETCH_DONE_ADDR)
+
+START_REGISTER(CP_ME_VS_FETCH_DONE_DATA)
+ GENERATE_FIELD(VS_FETCH_DONE_DATA, int)
+END_REGISTER(CP_ME_VS_FETCH_DONE_DATA)
+
+START_REGISTER(CP_INT_CNTL)
+ GENERATE_FIELD(SW_INT_MASK, int)
+ GENERATE_FIELD(T0_PACKET_IN_IB_MASK, int)
+ GENERATE_FIELD(OPCODE_ERROR_MASK, int)
+ GENERATE_FIELD(PROTECTED_MODE_ERROR_MASK, int)
+ GENERATE_FIELD(RESERVED_BIT_ERROR_MASK, int)
+ GENERATE_FIELD(IB_ERROR_MASK, int)
+ GENERATE_FIELD(IB2_INT_MASK, int)
+ GENERATE_FIELD(IB1_INT_MASK, int)
+ GENERATE_FIELD(RB_INT_MASK, int)
+END_REGISTER(CP_INT_CNTL)
+
+START_REGISTER(CP_INT_STATUS)
+ GENERATE_FIELD(SW_INT_STAT, int)
+ GENERATE_FIELD(T0_PACKET_IN_IB_STAT, int)
+ GENERATE_FIELD(OPCODE_ERROR_STAT, int)
+ GENERATE_FIELD(PROTECTED_MODE_ERROR_STAT, int)
+ GENERATE_FIELD(RESERVED_BIT_ERROR_STAT, int)
+ GENERATE_FIELD(IB_ERROR_STAT, int)
+ GENERATE_FIELD(IB2_INT_STAT, int)
+ GENERATE_FIELD(IB1_INT_STAT, int)
+ GENERATE_FIELD(RB_INT_STAT, int)
+END_REGISTER(CP_INT_STATUS)
+
+START_REGISTER(CP_INT_ACK)
+ GENERATE_FIELD(SW_INT_ACK, int)
+ GENERATE_FIELD(T0_PACKET_IN_IB_ACK, int)
+ GENERATE_FIELD(OPCODE_ERROR_ACK, int)
+ GENERATE_FIELD(PROTECTED_MODE_ERROR_ACK, int)
+ GENERATE_FIELD(RESERVED_BIT_ERROR_ACK, int)
+ GENERATE_FIELD(IB_ERROR_ACK, int)
+ GENERATE_FIELD(IB2_INT_ACK, int)
+ GENERATE_FIELD(IB1_INT_ACK, int)
+ GENERATE_FIELD(RB_INT_ACK, int)
+END_REGISTER(CP_INT_ACK)
+
+START_REGISTER(CP_PFP_UCODE_ADDR)
+ GENERATE_FIELD(UCODE_ADDR, hex)
+END_REGISTER(CP_PFP_UCODE_ADDR)
+
+START_REGISTER(CP_PFP_UCODE_DATA)
+ GENERATE_FIELD(UCODE_DATA, hex)
+END_REGISTER(CP_PFP_UCODE_DATA)
+
+START_REGISTER(CP_PERFMON_CNTL)
+ GENERATE_FIELD(PERFMON_STATE, int)
+ GENERATE_FIELD(PERFMON_ENABLE_MODE, int)
+END_REGISTER(CP_PERFMON_CNTL)
+
+START_REGISTER(CP_PERFCOUNTER_SELECT)
+ GENERATE_FIELD(PERFCOUNT_SEL, CP_PERFCOUNT_SEL)
+END_REGISTER(CP_PERFCOUNTER_SELECT)
+
+START_REGISTER(CP_PERFCOUNTER_LO)
+ GENERATE_FIELD(PERFCOUNT_LO, int)
+END_REGISTER(CP_PERFCOUNTER_LO)
+
+START_REGISTER(CP_PERFCOUNTER_HI)
+ GENERATE_FIELD(PERFCOUNT_HI, int)
+END_REGISTER(CP_PERFCOUNTER_HI)
+
+START_REGISTER(CP_BIN_MASK_LO)
+ GENERATE_FIELD(BIN_MASK_LO, int)
+END_REGISTER(CP_BIN_MASK_LO)
+
+START_REGISTER(CP_BIN_MASK_HI)
+ GENERATE_FIELD(BIN_MASK_HI, int)
+END_REGISTER(CP_BIN_MASK_HI)
+
+START_REGISTER(CP_BIN_SELECT_LO)
+ GENERATE_FIELD(BIN_SELECT_LO, int)
+END_REGISTER(CP_BIN_SELECT_LO)
+
+START_REGISTER(CP_BIN_SELECT_HI)
+ GENERATE_FIELD(BIN_SELECT_HI, int)
+END_REGISTER(CP_BIN_SELECT_HI)
+
+START_REGISTER(CP_NV_FLAGS_0)
+ GENERATE_FIELD(DISCARD_0, int)
+ GENERATE_FIELD(END_RCVD_0, int)
+ GENERATE_FIELD(DISCARD_1, int)
+ GENERATE_FIELD(END_RCVD_1, int)
+ GENERATE_FIELD(DISCARD_2, int)
+ GENERATE_FIELD(END_RCVD_2, int)
+ GENERATE_FIELD(DISCARD_3, int)
+ GENERATE_FIELD(END_RCVD_3, int)
+ GENERATE_FIELD(DISCARD_4, int)
+ GENERATE_FIELD(END_RCVD_4, int)
+ GENERATE_FIELD(DISCARD_5, int)
+ GENERATE_FIELD(END_RCVD_5, int)
+ GENERATE_FIELD(DISCARD_6, int)
+ GENERATE_FIELD(END_RCVD_6, int)
+ GENERATE_FIELD(DISCARD_7, int)
+ GENERATE_FIELD(END_RCVD_7, int)
+ GENERATE_FIELD(DISCARD_8, int)
+ GENERATE_FIELD(END_RCVD_8, int)
+ GENERATE_FIELD(DISCARD_9, int)
+ GENERATE_FIELD(END_RCVD_9, int)
+ GENERATE_FIELD(DISCARD_10, int)
+ GENERATE_FIELD(END_RCVD_10, int)
+ GENERATE_FIELD(DISCARD_11, int)
+ GENERATE_FIELD(END_RCVD_11, int)
+ GENERATE_FIELD(DISCARD_12, int)
+ GENERATE_FIELD(END_RCVD_12, int)
+ GENERATE_FIELD(DISCARD_13, int)
+ GENERATE_FIELD(END_RCVD_13, int)
+ GENERATE_FIELD(DISCARD_14, int)
+ GENERATE_FIELD(END_RCVD_14, int)
+ GENERATE_FIELD(DISCARD_15, int)
+ GENERATE_FIELD(END_RCVD_15, int)
+END_REGISTER(CP_NV_FLAGS_0)
+
+START_REGISTER(CP_NV_FLAGS_1)
+ GENERATE_FIELD(DISCARD_16, int)
+ GENERATE_FIELD(END_RCVD_16, int)
+ GENERATE_FIELD(DISCARD_17, int)
+ GENERATE_FIELD(END_RCVD_17, int)
+ GENERATE_FIELD(DISCARD_18, int)
+ GENERATE_FIELD(END_RCVD_18, int)
+ GENERATE_FIELD(DISCARD_19, int)
+ GENERATE_FIELD(END_RCVD_19, int)
+ GENERATE_FIELD(DISCARD_20, int)
+ GENERATE_FIELD(END_RCVD_20, int)
+ GENERATE_FIELD(DISCARD_21, int)
+ GENERATE_FIELD(END_RCVD_21, int)
+ GENERATE_FIELD(DISCARD_22, int)
+ GENERATE_FIELD(END_RCVD_22, int)
+ GENERATE_FIELD(DISCARD_23, int)
+ GENERATE_FIELD(END_RCVD_23, int)
+ GENERATE_FIELD(DISCARD_24, int)
+ GENERATE_FIELD(END_RCVD_24, int)
+ GENERATE_FIELD(DISCARD_25, int)
+ GENERATE_FIELD(END_RCVD_25, int)
+ GENERATE_FIELD(DISCARD_26, int)
+ GENERATE_FIELD(END_RCVD_26, int)
+ GENERATE_FIELD(DISCARD_27, int)
+ GENERATE_FIELD(END_RCVD_27, int)
+ GENERATE_FIELD(DISCARD_28, int)
+ GENERATE_FIELD(END_RCVD_28, int)
+ GENERATE_FIELD(DISCARD_29, int)
+ GENERATE_FIELD(END_RCVD_29, int)
+ GENERATE_FIELD(DISCARD_30, int)
+ GENERATE_FIELD(END_RCVD_30, int)
+ GENERATE_FIELD(DISCARD_31, int)
+ GENERATE_FIELD(END_RCVD_31, int)
+END_REGISTER(CP_NV_FLAGS_1)
+
+START_REGISTER(CP_NV_FLAGS_2)
+ GENERATE_FIELD(DISCARD_32, int)
+ GENERATE_FIELD(END_RCVD_32, int)
+ GENERATE_FIELD(DISCARD_33, int)
+ GENERATE_FIELD(END_RCVD_33, int)
+ GENERATE_FIELD(DISCARD_34, int)
+ GENERATE_FIELD(END_RCVD_34, int)
+ GENERATE_FIELD(DISCARD_35, int)
+ GENERATE_FIELD(END_RCVD_35, int)
+ GENERATE_FIELD(DISCARD_36, int)
+ GENERATE_FIELD(END_RCVD_36, int)
+ GENERATE_FIELD(DISCARD_37, int)
+ GENERATE_FIELD(END_RCVD_37, int)
+ GENERATE_FIELD(DISCARD_38, int)
+ GENERATE_FIELD(END_RCVD_38, int)
+ GENERATE_FIELD(DISCARD_39, int)
+ GENERATE_FIELD(END_RCVD_39, int)
+ GENERATE_FIELD(DISCARD_40, int)
+ GENERATE_FIELD(END_RCVD_40, int)
+ GENERATE_FIELD(DISCARD_41, int)
+ GENERATE_FIELD(END_RCVD_41, int)
+ GENERATE_FIELD(DISCARD_42, int)
+ GENERATE_FIELD(END_RCVD_42, int)
+ GENERATE_FIELD(DISCARD_43, int)
+ GENERATE_FIELD(END_RCVD_43, int)
+ GENERATE_FIELD(DISCARD_44, int)
+ GENERATE_FIELD(END_RCVD_44, int)
+ GENERATE_FIELD(DISCARD_45, int)
+ GENERATE_FIELD(END_RCVD_45, int)
+ GENERATE_FIELD(DISCARD_46, int)
+ GENERATE_FIELD(END_RCVD_46, int)
+ GENERATE_FIELD(DISCARD_47, int)
+ GENERATE_FIELD(END_RCVD_47, int)
+END_REGISTER(CP_NV_FLAGS_2)
+
+START_REGISTER(CP_NV_FLAGS_3)
+ GENERATE_FIELD(DISCARD_48, int)
+ GENERATE_FIELD(END_RCVD_48, int)
+ GENERATE_FIELD(DISCARD_49, int)
+ GENERATE_FIELD(END_RCVD_49, int)
+ GENERATE_FIELD(DISCARD_50, int)
+ GENERATE_FIELD(END_RCVD_50, int)
+ GENERATE_FIELD(DISCARD_51, int)
+ GENERATE_FIELD(END_RCVD_51, int)
+ GENERATE_FIELD(DISCARD_52, int)
+ GENERATE_FIELD(END_RCVD_52, int)
+ GENERATE_FIELD(DISCARD_53, int)
+ GENERATE_FIELD(END_RCVD_53, int)
+ GENERATE_FIELD(DISCARD_54, int)
+ GENERATE_FIELD(END_RCVD_54, int)
+ GENERATE_FIELD(DISCARD_55, int)
+ GENERATE_FIELD(END_RCVD_55, int)
+ GENERATE_FIELD(DISCARD_56, int)
+ GENERATE_FIELD(END_RCVD_56, int)
+ GENERATE_FIELD(DISCARD_57, int)
+ GENERATE_FIELD(END_RCVD_57, int)
+ GENERATE_FIELD(DISCARD_58, int)
+ GENERATE_FIELD(END_RCVD_58, int)
+ GENERATE_FIELD(DISCARD_59, int)
+ GENERATE_FIELD(END_RCVD_59, int)
+ GENERATE_FIELD(DISCARD_60, int)
+ GENERATE_FIELD(END_RCVD_60, int)
+ GENERATE_FIELD(DISCARD_61, int)
+ GENERATE_FIELD(END_RCVD_61, int)
+ GENERATE_FIELD(DISCARD_62, int)
+ GENERATE_FIELD(END_RCVD_62, int)
+ GENERATE_FIELD(DISCARD_63, int)
+ GENERATE_FIELD(END_RCVD_63, int)
+END_REGISTER(CP_NV_FLAGS_3)
+
+START_REGISTER(CP_STATE_DEBUG_INDEX)
+ GENERATE_FIELD(STATE_DEBUG_INDEX, int)
+END_REGISTER(CP_STATE_DEBUG_INDEX)
+
+START_REGISTER(CP_STATE_DEBUG_DATA)
+ GENERATE_FIELD(STATE_DEBUG_DATA, int)
+END_REGISTER(CP_STATE_DEBUG_DATA)
+
+START_REGISTER(CP_PROG_COUNTER)
+ GENERATE_FIELD(COUNTER, int)
+END_REGISTER(CP_PROG_COUNTER)
+
+START_REGISTER(CP_STAT)
+ GENERATE_FIELD(MIU_WR_BUSY, int)
+ GENERATE_FIELD(MIU_RD_REQ_BUSY, int)
+ GENERATE_FIELD(MIU_RD_RETURN_BUSY, int)
+ GENERATE_FIELD(RBIU_BUSY, int)
+ GENERATE_FIELD(RCIU_BUSY, int)
+ GENERATE_FIELD(CSF_RING_BUSY, int)
+ GENERATE_FIELD(CSF_INDIRECTS_BUSY, int)
+ GENERATE_FIELD(CSF_INDIRECT2_BUSY, int)
+ GENERATE_FIELD(CSF_ST_BUSY, int)
+ GENERATE_FIELD(CSF_BUSY, int)
+ GENERATE_FIELD(RING_QUEUE_BUSY, int)
+ GENERATE_FIELD(INDIRECTS_QUEUE_BUSY, int)
+ GENERATE_FIELD(INDIRECT2_QUEUE_BUSY, int)
+ GENERATE_FIELD(ST_QUEUE_BUSY, int)
+ GENERATE_FIELD(PFP_BUSY, int)
+ GENERATE_FIELD(MEQ_RING_BUSY, int)
+ GENERATE_FIELD(MEQ_INDIRECTS_BUSY, int)
+ GENERATE_FIELD(MEQ_INDIRECT2_BUSY, int)
+ GENERATE_FIELD(MIU_WC_STALL, int)
+ GENERATE_FIELD(CP_NRT_BUSY, int)
+ GENERATE_FIELD(_3D_BUSY, int)
+ GENERATE_FIELD(ME_BUSY, int)
+ GENERATE_FIELD(ME_WC_BUSY, int)
+ GENERATE_FIELD(MIU_WC_TRACK_FIFO_EMPTY, int)
+ GENERATE_FIELD(CP_BUSY, int)
+END_REGISTER(CP_STAT)
+
+START_REGISTER(BIOS_0_SCRATCH)
+ GENERATE_FIELD(BIOS_SCRATCH, hex)
+END_REGISTER(BIOS_0_SCRATCH)
+
+START_REGISTER(BIOS_1_SCRATCH)
+ GENERATE_FIELD(BIOS_SCRATCH, hex)
+END_REGISTER(BIOS_1_SCRATCH)
+
+START_REGISTER(BIOS_2_SCRATCH)
+ GENERATE_FIELD(BIOS_SCRATCH, hex)
+END_REGISTER(BIOS_2_SCRATCH)
+
+START_REGISTER(BIOS_3_SCRATCH)
+ GENERATE_FIELD(BIOS_SCRATCH, hex)
+END_REGISTER(BIOS_3_SCRATCH)
+
+START_REGISTER(BIOS_4_SCRATCH)
+ GENERATE_FIELD(BIOS_SCRATCH, hex)
+END_REGISTER(BIOS_4_SCRATCH)
+
+START_REGISTER(BIOS_5_SCRATCH)
+ GENERATE_FIELD(BIOS_SCRATCH, hex)
+END_REGISTER(BIOS_5_SCRATCH)
+
+START_REGISTER(BIOS_6_SCRATCH)
+ GENERATE_FIELD(BIOS_SCRATCH, hex)
+END_REGISTER(BIOS_6_SCRATCH)
+
+START_REGISTER(BIOS_7_SCRATCH)
+ GENERATE_FIELD(BIOS_SCRATCH, hex)
+END_REGISTER(BIOS_7_SCRATCH)
+
+START_REGISTER(BIOS_8_SCRATCH)
+ GENERATE_FIELD(BIOS_SCRATCH, hex)
+END_REGISTER(BIOS_8_SCRATCH)
+
+START_REGISTER(BIOS_9_SCRATCH)
+ GENERATE_FIELD(BIOS_SCRATCH, hex)
+END_REGISTER(BIOS_9_SCRATCH)
+
+START_REGISTER(BIOS_10_SCRATCH)
+ GENERATE_FIELD(BIOS_SCRATCH, hex)
+END_REGISTER(BIOS_10_SCRATCH)
+
+START_REGISTER(BIOS_11_SCRATCH)
+ GENERATE_FIELD(BIOS_SCRATCH, hex)
+END_REGISTER(BIOS_11_SCRATCH)
+
+START_REGISTER(BIOS_12_SCRATCH)
+ GENERATE_FIELD(BIOS_SCRATCH, hex)
+END_REGISTER(BIOS_12_SCRATCH)
+
+START_REGISTER(BIOS_13_SCRATCH)
+ GENERATE_FIELD(BIOS_SCRATCH, hex)
+END_REGISTER(BIOS_13_SCRATCH)
+
+START_REGISTER(BIOS_14_SCRATCH)
+ GENERATE_FIELD(BIOS_SCRATCH, hex)
+END_REGISTER(BIOS_14_SCRATCH)
+
+START_REGISTER(BIOS_15_SCRATCH)
+ GENERATE_FIELD(BIOS_SCRATCH, hex)
+END_REGISTER(BIOS_15_SCRATCH)
+
+START_REGISTER(COHER_SIZE_PM4)
+ GENERATE_FIELD(SIZE, int)
+END_REGISTER(COHER_SIZE_PM4)
+
+START_REGISTER(COHER_BASE_PM4)
+ GENERATE_FIELD(BASE, int)
+END_REGISTER(COHER_BASE_PM4)
+
+START_REGISTER(COHER_STATUS_PM4)
+ GENERATE_FIELD(MATCHING_CONTEXTS, int)
+ GENERATE_FIELD(RB_COPY_DEST_BASE_ENA, int)
+ GENERATE_FIELD(DEST_BASE_0_ENA, int)
+ GENERATE_FIELD(DEST_BASE_1_ENA, int)
+ GENERATE_FIELD(DEST_BASE_2_ENA, int)
+ GENERATE_FIELD(DEST_BASE_3_ENA, int)
+ GENERATE_FIELD(DEST_BASE_4_ENA, int)
+ GENERATE_FIELD(DEST_BASE_5_ENA, int)
+ GENERATE_FIELD(DEST_BASE_6_ENA, int)
+ GENERATE_FIELD(DEST_BASE_7_ENA, int)
+ GENERATE_FIELD(TC_ACTION_ENA, int)
+ GENERATE_FIELD(STATUS, int)
+END_REGISTER(COHER_STATUS_PM4)
+
+START_REGISTER(COHER_SIZE_HOST)
+ GENERATE_FIELD(SIZE, int)
+END_REGISTER(COHER_SIZE_HOST)
+
+START_REGISTER(COHER_BASE_HOST)
+ GENERATE_FIELD(BASE, hex)
+END_REGISTER(COHER_BASE_HOST)
+
+START_REGISTER(COHER_STATUS_HOST)
+ GENERATE_FIELD(MATCHING_CONTEXTS, int)
+ GENERATE_FIELD(RB_COPY_DEST_BASE_ENA, int)
+ GENERATE_FIELD(DEST_BASE_0_ENA, int)
+ GENERATE_FIELD(DEST_BASE_1_ENA, int)
+ GENERATE_FIELD(DEST_BASE_2_ENA, int)
+ GENERATE_FIELD(DEST_BASE_3_ENA, int)
+ GENERATE_FIELD(DEST_BASE_4_ENA, int)
+ GENERATE_FIELD(DEST_BASE_5_ENA, int)
+ GENERATE_FIELD(DEST_BASE_6_ENA, int)
+ GENERATE_FIELD(DEST_BASE_7_ENA, int)
+ GENERATE_FIELD(TC_ACTION_ENA, int)
+ GENERATE_FIELD(STATUS, int)
+END_REGISTER(COHER_STATUS_HOST)
+
+START_REGISTER(COHER_DEST_BASE_0)
+ GENERATE_FIELD(DEST_BASE_0, hex)
+END_REGISTER(COHER_DEST_BASE_0)
+
+START_REGISTER(COHER_DEST_BASE_1)
+ GENERATE_FIELD(DEST_BASE_1, hex)
+END_REGISTER(COHER_DEST_BASE_1)
+
+START_REGISTER(COHER_DEST_BASE_2)
+ GENERATE_FIELD(DEST_BASE_2, hex)
+END_REGISTER(COHER_DEST_BASE_2)
+
+START_REGISTER(COHER_DEST_BASE_3)
+ GENERATE_FIELD(DEST_BASE_3, hex)
+END_REGISTER(COHER_DEST_BASE_3)
+
+START_REGISTER(COHER_DEST_BASE_4)
+ GENERATE_FIELD(DEST_BASE_4, hex)
+END_REGISTER(COHER_DEST_BASE_4)
+
+START_REGISTER(COHER_DEST_BASE_5)
+ GENERATE_FIELD(DEST_BASE_5, hex)
+END_REGISTER(COHER_DEST_BASE_5)
+
+START_REGISTER(COHER_DEST_BASE_6)
+ GENERATE_FIELD(DEST_BASE_6, hex)
+END_REGISTER(COHER_DEST_BASE_6)
+
+START_REGISTER(COHER_DEST_BASE_7)
+ GENERATE_FIELD(DEST_BASE_7, hex)
+END_REGISTER(COHER_DEST_BASE_7)
+
+START_REGISTER(RB_SURFACE_INFO)
+ GENERATE_FIELD(SURFACE_PITCH, uint)
+ GENERATE_FIELD(MSAA_SAMPLES, MSAASamples)
+END_REGISTER(RB_SURFACE_INFO)
+
+START_REGISTER(RB_COLOR_INFO)
+ GENERATE_FIELD(COLOR_FORMAT, ColorformatX)
+ GENERATE_FIELD(COLOR_ROUND_MODE, uint)
+ GENERATE_FIELD(COLOR_LINEAR, bool)
+ GENERATE_FIELD(COLOR_ENDIAN, uint)
+ GENERATE_FIELD(COLOR_SWAP, uint)
+ GENERATE_FIELD(COLOR_BASE, uint)
+END_REGISTER(RB_COLOR_INFO)
+
+START_REGISTER(RB_DEPTH_INFO)
+ GENERATE_FIELD(DEPTH_FORMAT, DepthformatX)
+ GENERATE_FIELD(DEPTH_BASE, uint)
+END_REGISTER(RB_DEPTH_INFO)
+
+START_REGISTER(RB_STENCILREFMASK)
+ GENERATE_FIELD(STENCILREF, hex)
+ GENERATE_FIELD(STENCILMASK, hex)
+ GENERATE_FIELD(STENCILWRITEMASK, hex)
+END_REGISTER(RB_STENCILREFMASK)
+
+START_REGISTER(RB_ALPHA_REF)
+ GENERATE_FIELD(ALPHA_REF, float)
+END_REGISTER(RB_ALPHA_REF)
+
+START_REGISTER(RB_COLOR_MASK)
+ GENERATE_FIELD(WRITE_RED, bool)
+ GENERATE_FIELD(WRITE_GREEN, bool)
+ GENERATE_FIELD(WRITE_BLUE, bool)
+ GENERATE_FIELD(WRITE_ALPHA, bool)
+END_REGISTER(RB_COLOR_MASK)
+
+START_REGISTER(RB_BLEND_RED)
+ GENERATE_FIELD(BLEND_RED, uint)
+END_REGISTER(RB_BLEND_RED)
+
+START_REGISTER(RB_BLEND_GREEN)
+ GENERATE_FIELD(BLEND_GREEN, uint)
+END_REGISTER(RB_BLEND_GREEN)
+
+START_REGISTER(RB_BLEND_BLUE)
+ GENERATE_FIELD(BLEND_BLUE, uint)
+END_REGISTER(RB_BLEND_BLUE)
+
+START_REGISTER(RB_BLEND_ALPHA)
+ GENERATE_FIELD(BLEND_ALPHA, uint)
+END_REGISTER(RB_BLEND_ALPHA)
+
+START_REGISTER(RB_FOG_COLOR)
+ GENERATE_FIELD(FOG_RED, uint)
+ GENERATE_FIELD(FOG_GREEN, uint)
+ GENERATE_FIELD(FOG_BLUE, uint)
+END_REGISTER(RB_FOG_COLOR)
+
+START_REGISTER(RB_STENCILREFMASK_BF)
+ GENERATE_FIELD(STENCILREF_BF, hex)
+ GENERATE_FIELD(STENCILMASK_BF, hex)
+ GENERATE_FIELD(STENCILWRITEMASK_BF, hex)
+END_REGISTER(RB_STENCILREFMASK_BF)
+
+START_REGISTER(RB_DEPTHCONTROL)
+ GENERATE_FIELD(STENCIL_ENABLE, bool)
+ GENERATE_FIELD(Z_ENABLE, bool)
+ GENERATE_FIELD(Z_WRITE_ENABLE, bool)
+ GENERATE_FIELD(EARLY_Z_ENABLE, bool)
+ GENERATE_FIELD(ZFUNC, CompareFrag)
+ GENERATE_FIELD(BACKFACE_ENABLE, bool)
+ GENERATE_FIELD(STENCILFUNC, CompareRef)
+ GENERATE_FIELD(STENCILFAIL, StencilOp)
+ GENERATE_FIELD(STENCILZPASS, StencilOp)
+ GENERATE_FIELD(STENCILZFAIL, StencilOp)
+ GENERATE_FIELD(STENCILFUNC_BF, CompareRef)
+ GENERATE_FIELD(STENCILFAIL_BF, StencilOp)
+ GENERATE_FIELD(STENCILZPASS_BF, StencilOp)
+ GENERATE_FIELD(STENCILZFAIL_BF, StencilOp)
+END_REGISTER(RB_DEPTHCONTROL)
+
+START_REGISTER(RB_BLENDCONTROL)
+ GENERATE_FIELD(COLOR_SRCBLEND, BlendOpX)
+ GENERATE_FIELD(COLOR_COMB_FCN, CombFuncX)
+ GENERATE_FIELD(COLOR_DESTBLEND, BlendOpX)
+ GENERATE_FIELD(ALPHA_SRCBLEND, BlendOpX)
+ GENERATE_FIELD(ALPHA_COMB_FCN, CombFuncX)
+ GENERATE_FIELD(ALPHA_DESTBLEND, BlendOpX)
+ GENERATE_FIELD(BLEND_FORCE_ENABLE, bool)
+ GENERATE_FIELD(BLEND_FORCE, bool)
+END_REGISTER(RB_BLENDCONTROL)
+
+START_REGISTER(RB_COLORCONTROL)
+ GENERATE_FIELD(ALPHA_FUNC, CompareRef)
+ GENERATE_FIELD(ALPHA_TEST_ENABLE, bool)
+ GENERATE_FIELD(ALPHA_TO_MASK_ENABLE, bool)
+ GENERATE_FIELD(BLEND_DISABLE, bool)
+ GENERATE_FIELD(FOG_ENABLE, bool)
+ GENERATE_FIELD(VS_EXPORTS_FOG, bool)
+ GENERATE_FIELD(ROP_CODE, uint)
+ GENERATE_FIELD(DITHER_MODE, DitherModeX)
+ GENERATE_FIELD(DITHER_TYPE, DitherTypeX)
+ GENERATE_FIELD(PIXEL_FOG, bool)
+ GENERATE_FIELD(ALPHA_TO_MASK_OFFSET0, hex)
+ GENERATE_FIELD(ALPHA_TO_MASK_OFFSET1, hex)
+ GENERATE_FIELD(ALPHA_TO_MASK_OFFSET2, hex)
+ GENERATE_FIELD(ALPHA_TO_MASK_OFFSET3, hex)
+END_REGISTER(RB_COLORCONTROL)
+
+START_REGISTER(RB_MODECONTROL)
+ GENERATE_FIELD(EDRAM_MODE, EdramMode)
+END_REGISTER(RB_MODECONTROL)
+
+START_REGISTER(RB_COLOR_DEST_MASK)
+ GENERATE_FIELD(COLOR_DEST_MASK, uint)
+END_REGISTER(RB_COLOR_DEST_MASK)
+
+START_REGISTER(RB_COPY_CONTROL)
+ GENERATE_FIELD(COPY_SAMPLE_SELECT, CopySampleSelect)
+ GENERATE_FIELD(DEPTH_CLEAR_ENABLE, bool)
+ GENERATE_FIELD(CLEAR_MASK, uint)
+END_REGISTER(RB_COPY_CONTROL)
+
+START_REGISTER(RB_COPY_DEST_BASE)
+ GENERATE_FIELD(COPY_DEST_BASE, uint)
+END_REGISTER(RB_COPY_DEST_BASE)
+
+START_REGISTER(RB_COPY_DEST_PITCH)
+ GENERATE_FIELD(COPY_DEST_PITCH, uint)
+END_REGISTER(RB_COPY_DEST_PITCH)
+
+START_REGISTER(RB_COPY_DEST_INFO)
+ GENERATE_FIELD(COPY_DEST_ENDIAN, SurfaceEndian)
+ GENERATE_FIELD(COPY_DEST_LINEAR, uint)
+ GENERATE_FIELD(COPY_DEST_FORMAT, ColorformatX)
+ GENERATE_FIELD(COPY_DEST_SWAP, uint)
+ GENERATE_FIELD(COPY_DEST_DITHER_MODE, DitherModeX)
+ GENERATE_FIELD(COPY_DEST_DITHER_TYPE, DitherTypeX)
+ GENERATE_FIELD(COPY_MASK_WRITE_RED, hex)
+ GENERATE_FIELD(COPY_MASK_WRITE_GREEN, hex)
+ GENERATE_FIELD(COPY_MASK_WRITE_BLUE, hex)
+ GENERATE_FIELD(COPY_MASK_WRITE_ALPHA, hex)
+END_REGISTER(RB_COPY_DEST_INFO)
+
+START_REGISTER(RB_COPY_DEST_PIXEL_OFFSET)
+ GENERATE_FIELD(OFFSET_X, uint)
+ GENERATE_FIELD(OFFSET_Y, uint)
+END_REGISTER(RB_COPY_DEST_PIXEL_OFFSET)
+
+START_REGISTER(RB_DEPTH_CLEAR)
+ GENERATE_FIELD(DEPTH_CLEAR, uint)
+END_REGISTER(RB_DEPTH_CLEAR)
+
+START_REGISTER(RB_SAMPLE_COUNT_CTL)
+ GENERATE_FIELD(RESET_SAMPLE_COUNT, bool)
+ GENERATE_FIELD(COPY_SAMPLE_COUNT, bool)
+END_REGISTER(RB_SAMPLE_COUNT_CTL)
+
+START_REGISTER(RB_SAMPLE_COUNT_ADDR)
+ GENERATE_FIELD(SAMPLE_COUNT_ADDR, uint)
+END_REGISTER(RB_SAMPLE_COUNT_ADDR)
+
+START_REGISTER(RB_BC_CONTROL)
+ GENERATE_FIELD(ACCUM_LINEAR_MODE_ENABLE, bool)
+ GENERATE_FIELD(ACCUM_TIMEOUT_SELECT, uint)
+ GENERATE_FIELD(DISABLE_EDRAM_CAM, bool)
+ GENERATE_FIELD(DISABLE_EZ_FAST_CONTEXT_SWITCH, bool)
+ GENERATE_FIELD(DISABLE_EZ_NULL_ZCMD_DROP, bool)
+ GENERATE_FIELD(DISABLE_LZ_NULL_ZCMD_DROP, bool)
+ GENERATE_FIELD(ENABLE_AZ_THROTTLE, bool)
+ GENERATE_FIELD(AZ_THROTTLE_COUNT, uint)
+ GENERATE_FIELD(ENABLE_CRC_UPDATE, bool)
+ GENERATE_FIELD(CRC_MODE, bool)
+ GENERATE_FIELD(DISABLE_SAMPLE_COUNTERS, bool)
+ GENERATE_FIELD(DISABLE_ACCUM, bool)
+ GENERATE_FIELD(ACCUM_ALLOC_MASK, uint)
+ GENERATE_FIELD(LINEAR_PERFORMANCE_ENABLE, bool)
+ GENERATE_FIELD(ACCUM_DATA_FIFO_LIMIT, bool)
+ GENERATE_FIELD(MEM_EXPORT_TIMEOUT_SELECT, int)
+ GENERATE_FIELD(MEM_EXPORT_LINEAR_MODE_ENABLE, bool)
+ GENERATE_FIELD(RESERVED9, bool)
+ GENERATE_FIELD(RESERVED10, bool)
+END_REGISTER(RB_BC_CONTROL)
+
+START_REGISTER(RB_EDRAM_INFO)
+ GENERATE_FIELD(EDRAM_SIZE, EdramSizeX)
+ GENERATE_FIELD(EDRAM_MAPPING_MODE, uint)
+ GENERATE_FIELD(EDRAM_RANGE, hex)
+END_REGISTER(RB_EDRAM_INFO)
+
+START_REGISTER(RB_CRC_RD_PORT)
+ GENERATE_FIELD(CRC_DATA, hex)
+END_REGISTER(RB_CRC_RD_PORT)
+
+START_REGISTER(RB_CRC_CONTROL)
+ GENERATE_FIELD(CRC_RD_ADVANCE, bool)
+END_REGISTER(RB_CRC_CONTROL)
+
+START_REGISTER(RB_CRC_MASK)
+ GENERATE_FIELD(CRC_MASK, hex)
+END_REGISTER(RB_CRC_MASK)
+
+START_REGISTER(RB_PERFCOUNTER0_SELECT)
+ GENERATE_FIELD(PERF_SEL, RB_PERFCNT_SELECT)
+END_REGISTER(RB_PERFCOUNTER0_SELECT)
+
+START_REGISTER(RB_PERFCOUNTER0_LOW)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(RB_PERFCOUNTER0_LOW)
+
+START_REGISTER(RB_PERFCOUNTER0_HI)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(RB_PERFCOUNTER0_HI)
+
+START_REGISTER(RB_TOTAL_SAMPLES)
+ GENERATE_FIELD(TOTAL_SAMPLES, int)
+END_REGISTER(RB_TOTAL_SAMPLES)
+
+START_REGISTER(RB_ZPASS_SAMPLES)
+ GENERATE_FIELD(ZPASS_SAMPLES, int)
+END_REGISTER(RB_ZPASS_SAMPLES)
+
+START_REGISTER(RB_ZFAIL_SAMPLES)
+ GENERATE_FIELD(ZFAIL_SAMPLES, int)
+END_REGISTER(RB_ZFAIL_SAMPLES)
+
+START_REGISTER(RB_SFAIL_SAMPLES)
+ GENERATE_FIELD(SFAIL_SAMPLES, int)
+END_REGISTER(RB_SFAIL_SAMPLES)
+
+START_REGISTER(RB_DEBUG_0)
+ GENERATE_FIELD(RDREQ_CTL_Z1_PRE_FULL, bool)
+ GENERATE_FIELD(RDREQ_CTL_Z0_PRE_FULL, bool)
+ GENERATE_FIELD(RDREQ_CTL_C1_PRE_FULL, bool)
+ GENERATE_FIELD(RDREQ_CTL_C0_PRE_FULL, bool)
+ GENERATE_FIELD(RDREQ_E1_ORDERING_FULL, bool)
+ GENERATE_FIELD(RDREQ_E0_ORDERING_FULL, bool)
+ GENERATE_FIELD(RDREQ_Z1_FULL, bool)
+ GENERATE_FIELD(RDREQ_Z0_FULL, bool)
+ GENERATE_FIELD(RDREQ_C1_FULL, bool)
+ GENERATE_FIELD(RDREQ_C0_FULL, bool)
+ GENERATE_FIELD(WRREQ_E1_MACRO_HI_FULL, bool)
+ GENERATE_FIELD(WRREQ_E1_MACRO_LO_FULL, bool)
+ GENERATE_FIELD(WRREQ_E0_MACRO_HI_FULL, bool)
+ GENERATE_FIELD(WRREQ_E0_MACRO_LO_FULL, bool)
+ GENERATE_FIELD(WRREQ_C_WE_HI_FULL, bool)
+ GENERATE_FIELD(WRREQ_C_WE_LO_FULL, bool)
+ GENERATE_FIELD(WRREQ_Z1_FULL, bool)
+ GENERATE_FIELD(WRREQ_Z0_FULL, bool)
+ GENERATE_FIELD(WRREQ_C1_FULL, bool)
+ GENERATE_FIELD(WRREQ_C0_FULL, bool)
+ GENERATE_FIELD(CMDFIFO_Z1_HOLD_FULL, bool)
+ GENERATE_FIELD(CMDFIFO_Z0_HOLD_FULL, bool)
+ GENERATE_FIELD(CMDFIFO_C1_HOLD_FULL, bool)
+ GENERATE_FIELD(CMDFIFO_C0_HOLD_FULL, bool)
+ GENERATE_FIELD(CMDFIFO_Z_ORDERING_FULL, bool)
+ GENERATE_FIELD(CMDFIFO_C_ORDERING_FULL, bool)
+ GENERATE_FIELD(C_SX_LAT_FULL, bool)
+ GENERATE_FIELD(C_SX_CMD_FULL, bool)
+ GENERATE_FIELD(C_EZ_TILE_FULL, bool)
+ GENERATE_FIELD(C_REQ_FULL, bool)
+ GENERATE_FIELD(C_MASK_FULL, bool)
+ GENERATE_FIELD(EZ_INFSAMP_FULL, bool)
+END_REGISTER(RB_DEBUG_0)
+
+START_REGISTER(RB_DEBUG_1)
+ GENERATE_FIELD(RDREQ_Z1_CMD_EMPTY, bool)
+ GENERATE_FIELD(RDREQ_Z0_CMD_EMPTY, bool)
+ GENERATE_FIELD(RDREQ_C1_CMD_EMPTY, bool)
+ GENERATE_FIELD(RDREQ_C0_CMD_EMPTY, bool)
+ GENERATE_FIELD(RDREQ_E1_ORDERING_EMPTY, bool)
+ GENERATE_FIELD(RDREQ_E0_ORDERING_EMPTY, bool)
+ GENERATE_FIELD(RDREQ_Z1_EMPTY, bool)
+ GENERATE_FIELD(RDREQ_Z0_EMPTY, bool)
+ GENERATE_FIELD(RDREQ_C1_EMPTY, bool)
+ GENERATE_FIELD(RDREQ_C0_EMPTY, bool)
+ GENERATE_FIELD(WRREQ_E1_MACRO_HI_EMPTY, bool)
+ GENERATE_FIELD(WRREQ_E1_MACRO_LO_EMPTY, bool)
+ GENERATE_FIELD(WRREQ_E0_MACRO_HI_EMPTY, bool)
+ GENERATE_FIELD(WRREQ_E0_MACRO_LO_EMPTY, bool)
+ GENERATE_FIELD(WRREQ_C_WE_HI_EMPTY, bool)
+ GENERATE_FIELD(WRREQ_C_WE_LO_EMPTY, bool)
+ GENERATE_FIELD(WRREQ_Z1_EMPTY, bool)
+ GENERATE_FIELD(WRREQ_Z0_EMPTY, bool)
+ GENERATE_FIELD(WRREQ_C1_PRE_EMPTY, bool)
+ GENERATE_FIELD(WRREQ_C0_PRE_EMPTY, bool)
+ GENERATE_FIELD(CMDFIFO_Z1_HOLD_EMPTY, bool)
+ GENERATE_FIELD(CMDFIFO_Z0_HOLD_EMPTY, bool)
+ GENERATE_FIELD(CMDFIFO_C1_HOLD_EMPTY, bool)
+ GENERATE_FIELD(CMDFIFO_C0_HOLD_EMPTY, bool)
+ GENERATE_FIELD(CMDFIFO_Z_ORDERING_EMPTY, bool)
+ GENERATE_FIELD(CMDFIFO_C_ORDERING_EMPTY, bool)
+ GENERATE_FIELD(C_SX_LAT_EMPTY, bool)
+ GENERATE_FIELD(C_SX_CMD_EMPTY, bool)
+ GENERATE_FIELD(C_EZ_TILE_EMPTY, bool)
+ GENERATE_FIELD(C_REQ_EMPTY, bool)
+ GENERATE_FIELD(C_MASK_EMPTY, bool)
+ GENERATE_FIELD(EZ_INFSAMP_EMPTY, bool)
+END_REGISTER(RB_DEBUG_1)
+
+START_REGISTER(RB_DEBUG_2)
+ GENERATE_FIELD(TILE_FIFO_COUNT, bool)
+ GENERATE_FIELD(SX_LAT_FIFO_COUNT, bool)
+ GENERATE_FIELD(MEM_EXPORT_FLAG, bool)
+ GENERATE_FIELD(SYSMEM_BLEND_FLAG, bool)
+ GENERATE_FIELD(CURRENT_TILE_EVENT, bool)
+ GENERATE_FIELD(EZ_INFTILE_FULL, bool)
+ GENERATE_FIELD(EZ_MASK_LOWER_FULL, bool)
+ GENERATE_FIELD(EZ_MASK_UPPER_FULL, bool)
+ GENERATE_FIELD(Z0_MASK_FULL, bool)
+ GENERATE_FIELD(Z1_MASK_FULL, bool)
+ GENERATE_FIELD(Z0_REQ_FULL, bool)
+ GENERATE_FIELD(Z1_REQ_FULL, bool)
+ GENERATE_FIELD(Z_SAMP_FULL, bool)
+ GENERATE_FIELD(Z_TILE_FULL, bool)
+ GENERATE_FIELD(EZ_INFTILE_EMPTY, bool)
+ GENERATE_FIELD(EZ_MASK_LOWER_EMPTY, bool)
+ GENERATE_FIELD(EZ_MASK_UPPER_EMPTY, bool)
+ GENERATE_FIELD(Z0_MASK_EMPTY, bool)
+ GENERATE_FIELD(Z1_MASK_EMPTY, bool)
+ GENERATE_FIELD(Z0_REQ_EMPTY, bool)
+ GENERATE_FIELD(Z1_REQ_EMPTY, bool)
+ GENERATE_FIELD(Z_SAMP_EMPTY, bool)
+ GENERATE_FIELD(Z_TILE_EMPTY, bool)
+END_REGISTER(RB_DEBUG_2)
+
+START_REGISTER(RB_DEBUG_3)
+ GENERATE_FIELD(ACCUM_VALID, bool)
+ GENERATE_FIELD(ACCUM_FLUSHING, bool)
+ GENERATE_FIELD(ACCUM_WRITE_CLEAN_COUNT, bool)
+ GENERATE_FIELD(ACCUM_INPUT_REG_VALID, bool)
+ GENERATE_FIELD(ACCUM_DATA_FIFO_CNT, bool)
+ GENERATE_FIELD(SHD_FULL, bool)
+ GENERATE_FIELD(SHD_EMPTY, bool)
+ GENERATE_FIELD(EZ_RETURN_LOWER_EMPTY, bool)
+ GENERATE_FIELD(EZ_RETURN_UPPER_EMPTY, bool)
+ GENERATE_FIELD(EZ_RETURN_LOWER_FULL, bool)
+ GENERATE_FIELD(EZ_RETURN_UPPER_FULL, bool)
+ GENERATE_FIELD(ZEXP_LOWER_EMPTY, bool)
+ GENERATE_FIELD(ZEXP_UPPER_EMPTY, bool)
+ GENERATE_FIELD(ZEXP_LOWER_FULL, bool)
+ GENERATE_FIELD(ZEXP_UPPER_FULL, bool)
+END_REGISTER(RB_DEBUG_3)
+
+START_REGISTER(RB_DEBUG_4)
+ GENERATE_FIELD(GMEM_RD_ACCESS_FLAG, bool)
+ GENERATE_FIELD(GMEM_WR_ACCESS_FLAG, bool)
+ GENERATE_FIELD(SYSMEM_RD_ACCESS_FLAG, bool)
+ GENERATE_FIELD(SYSMEM_WR_ACCESS_FLAG, bool)
+ GENERATE_FIELD(ACCUM_DATA_FIFO_EMPTY, bool)
+ GENERATE_FIELD(ACCUM_ORDER_FIFO_EMPTY, bool)
+ GENERATE_FIELD(ACCUM_DATA_FIFO_FULL, bool)
+ GENERATE_FIELD(ACCUM_ORDER_FIFO_FULL, bool)
+ GENERATE_FIELD(SYSMEM_WRITE_COUNT_OVERFLOW, bool)
+ GENERATE_FIELD(CONTEXT_COUNT_DEBUG, bool)
+END_REGISTER(RB_DEBUG_4)
+
+START_REGISTER(RB_FLAG_CONTROL)
+ GENERATE_FIELD(DEBUG_FLAG_CLEAR, bool)
+END_REGISTER(RB_FLAG_CONTROL)
+
+START_REGISTER(BC_DUMMY_CRAYRB_ENUMS)
+ GENERATE_FIELD(DUMMY_CRAYRB_DEPTH_FORMAT, DepthFormat)
+ GENERATE_FIELD(DUMMY_CRAYRB_SURFACE_SWAP, SurfaceSwap)
+ GENERATE_FIELD(DUMMY_CRAYRB_DEPTH_ARRAY, DepthArray)
+ GENERATE_FIELD(DUMMY_CRAYRB_ARRAY, ColorArray)
+ GENERATE_FIELD(DUMMY_CRAYRB_COLOR_FORMAT, ColorFormat)
+ GENERATE_FIELD(DUMMY_CRAYRB_SURFACE_NUMBER, SurfaceNumber)
+ GENERATE_FIELD(DUMMY_CRAYRB_SURFACE_FORMAT, SurfaceFormat)
+ GENERATE_FIELD(DUMMY_CRAYRB_SURFACE_TILING, SurfaceTiling)
+ GENERATE_FIELD(DUMMY_CRAYRB_SURFACE_ARRAY, SurfaceArray)
+ GENERATE_FIELD(DUMMY_RB_COPY_DEST_INFO_NUMBER, SurfaceNumberX)
+END_REGISTER(BC_DUMMY_CRAYRB_ENUMS)
+
+START_REGISTER(BC_DUMMY_CRAYRB_MOREENUMS)
+ GENERATE_FIELD(DUMMY_CRAYRB_COLORARRAYX, ColorArrayX)
+END_REGISTER(BC_DUMMY_CRAYRB_MOREENUMS)
diff --git a/drivers/mxc/amd-gpu/include/reg/yamato/14/yamato_ipt.h b/drivers/mxc/amd-gpu/include/reg/yamato/14/yamato_ipt.h
new file mode 100644
index 000000000000..0e32e421d0a3
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/reg/yamato/14/yamato_ipt.h
@@ -0,0 +1,95 @@
+/* Copyright (c) 2002,2007-2009, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef _R400IPT_H_
+#define _R400IPT_H_
+
+// Hand-generated list from Yamato_PM4_Spec.doc
+
+#define PM4_PACKET0_NOP 0x00000000 // Empty type-0 packet header
+#define PM4_PACKET1_NOP 0x40000000 // Empty type-1 packet header
+#define PM4_PACKET2_NOP 0x80000000 // Empty type-2 packet header (reserved)
+
+#define PM4_COUNT_SHIFT 16
+#define PM4_COUNT_MASK
+#define PM4_PACKET_COUNT(__x) ((((__x)-1) << PM4_COUNT_SHIFT) & 0x3fff0000)
+// Type 3 packet headers
+
+#define PM4_PACKET3_NOP 0xC0001000 // Do nothing.
+#define PM4_PACKET3_IB_PREFETCH_END 0xC0001700 // Internal Packet Used Only by CP
+#define PM4_PACKET3_SUBBLK_PREFETCH 0xC0001F00 // Internal Packet Used Only by CP
+
+#define PM4_PACKET3_INSTR_PREFETCH 0xC0002000 // Internal Packet Used Only by CP
+#define PM4_PACKET3_REG_RMW 0xC0002100 // Register Read-Modify-Write New for R400
+#define PM4_PACKET3_DRAW_INDX 0xC0002200 // Initiate fetch of index buffer New for R400
+#define PM4_PACKET3_VIZ_QUERY 0xC0002300 // Begin/End initiator for Viz Query extent processing New for R400
+#define PM4_PACKET3_SET_STATE 0xC0002500 // Fetch State Sub-Blocks and Initiate Shader Code DMAs New for R400
+#define PM4_PACKET3_WAIT_FOR_IDLE 0xC0002600 // Wait for the engine to be idle.
+#define PM4_PACKET3_IM_LOAD 0xC0002700 // Load Sequencer Instruction Memory for a Specific Shader New for R400
+#define PM4_PACKET3_IM_LOAD_IMMEDIATE 0xC0002B00 // Load Sequencer Instruction Memory for a Specific Shader New for R400
+#define PM4_PACKET3_SET_CONSTANT 0xC0002D00 // Load Constant Into Chip & Shadow to Memory New for R400
+#define PM4_PACKET3_LOAD_CONSTANT_CONTEXT 0xC0002E00 // Load All Constants from a Location in Memory New for R400
+#define PM4_PACKET3_LOAD_ALU_CONSTANT 0xC0002F00 // Load ALu constants from a location in memory - similar to SET_CONSTANT but tuned for performance when loading only ALU constants
+
+#define PM4_PACKET3_DRAW_INDX_BIN 0xC0003400 // Initiate fetch of index buffer and BIN info used for visibility test
+#define PM4_PACKET3_3D_DRAW_INDX_2_BIN 0xC0003500 // Draw using supplied indices and initiate fetch of BIN info for visibility test
+#define PM4_PACKET3_3D_DRAW_INDX_2 0xC0003600 // Draw primitives using vertex buf and Indices in this packet. Pkt does NOT contain vtx fmt
+#define PM4_PACKET3_INDIRECT_BUFFER_PFD 0xC0003700
+#define PM4_PACKET3_INVALIDATE_STATE 0xC0003B00 // Selective Invalidation of State Pointers New for R400
+#define PM4_PACKET3_WAIT_REG_MEM 0xC0003C00 // Wait Until a Register or Memory Location is a Specific Value. New for R400
+#define PM4_PACKET3_MEM_WRITE 0xC0003D00 // Write DWORD to Memory For Synchronization New for R400
+#define PM4_PACKET3_REG_TO_MEM 0xC0003E00 // Reads Register in Chip and Writes to Memory New for R400
+#define PM4_PACKET3_INDIRECT_BUFFER 0xC0003F00 // Indirect Buffer Dispatch - Pre-fetch parser uses this packet type in determining to pre-fetch the indirect buffer. Supported
+
+#define PM4_PACKET3_CP_INTERRUPT 0xC0004000 // Generate Interrupt from the Command Stream New for R400
+#define PM4_PACKET3_COND_EXEC 0xC0004400 // Conditional execution of a sequence of packets
+#define PM4_PACKET3_COND_WRITE 0xC0004500 // Conditional Write to Memory New for R400
+#define PM4_PACKET3_EVENT_WRITE 0xC0004600 // Generate An Event that Creates a Write to Memory when Completed New for R400
+#define PM4_PACKET3_INSTR_MATCH 0xC0004700 // Internal Packet Used Only by CP
+#define PM4_PACKET3_ME_INIT 0xC0004800 // Initialize CP's Micro Engine New for R400
+#define PM4_PACKET3_CONST_PREFETCH 0xC0004900 // Internal packet used only by CP
+#define PM4_PACKET3_MEM_WRITE_CNTR 0xC0004F00
+
+#define PM4_PACKET3_SET_BIN_MASK 0xC0005000 // Sets the 64-bit BIN_MASK register in the PFP
+#define PM4_PACKET3_SET_BIN_SELECT 0xC0005100 // Sets the 64-bit BIN_SELECT register in the PFP
+#define PM4_PACKET3_WAIT_REG_EQ 0xC0005200 // Wait until a register location is equal to a specific value
+#define PM4_PACKET3_WAIT_REG_GTE 0xC0005300 // Wait until a register location is greater than or equal to a specific value
+#define PM4_PACKET3_INCR_UPDT_STATE 0xC0005500 // Internal Packet Used Only by CP
+#define PM4_PACKET3_INCR_UPDT_CONST 0xC0005600 // Internal Packet Used Only by CP
+#define PM4_PACKET3_INCR_UPDT_INSTR 0xC0005700 // Internal Packet Used Only by CP
+#define PM4_PACKET3_EVENT_WRITE_SHD 0xC0005800 // Generate a VS|PS_Done Event.
+#define PM4_PACKET3_EVENT_WRITE_CFL 0xC0005900 // Generate a Cach Flush Done Event
+#define PM4_PACKET3_EVENT_WRITE_ZPD 0xC0005B00 // Generate a Cach Flush Done Event
+#define PM4_PACKET3_WAIT_UNTIL_READ 0xC0005C00 // Wait Until a Read completes.
+#define PM4_PACKET3_WAIT_IB_PFD_COMPLETE 0xC0005D00 // Wait Until all Base/Size writes from an IB_PFD packet have completed.
+#define PM4_PACKET3_CONTEXT_UPDATE 0xC0005E00 // Updates the current context if needed.
+
+ /****** New Opcodes For R400 (all decode values are TBD) ******/
+
+
+#endif // _R400IPT_H_
diff --git a/drivers/mxc/amd-gpu/include/reg/yamato/14/yamato_mask.h b/drivers/mxc/amd-gpu/include/reg/yamato/14/yamato_mask.h
new file mode 100644
index 000000000000..ad3d829bc94e
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/reg/yamato/14/yamato_mask.h
@@ -0,0 +1,5739 @@
+/* Copyright (c) 2002,2007-2009, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#if !defined (_yamato_MASK_HEADER)
+#define _yamato_MASK_HEADER
+
+// PA_CL_VPORT_XSCALE
+#define PA_CL_VPORT_XSCALE__VPORT_XSCALE_MASK 0xffffffffL
+
+// PA_CL_VPORT_XOFFSET
+#define PA_CL_VPORT_XOFFSET__VPORT_XOFFSET_MASK 0xffffffffL
+
+// PA_CL_VPORT_YSCALE
+#define PA_CL_VPORT_YSCALE__VPORT_YSCALE_MASK 0xffffffffL
+
+// PA_CL_VPORT_YOFFSET
+#define PA_CL_VPORT_YOFFSET__VPORT_YOFFSET_MASK 0xffffffffL
+
+// PA_CL_VPORT_ZSCALE
+#define PA_CL_VPORT_ZSCALE__VPORT_ZSCALE_MASK 0xffffffffL
+
+// PA_CL_VPORT_ZOFFSET
+#define PA_CL_VPORT_ZOFFSET__VPORT_ZOFFSET_MASK 0xffffffffL
+
+// PA_CL_VTE_CNTL
+#define PA_CL_VTE_CNTL__VPORT_X_SCALE_ENA_MASK 0x00000001L
+#define PA_CL_VTE_CNTL__VPORT_X_SCALE_ENA 0x00000001L
+#define PA_CL_VTE_CNTL__VPORT_X_OFFSET_ENA_MASK 0x00000002L
+#define PA_CL_VTE_CNTL__VPORT_X_OFFSET_ENA 0x00000002L
+#define PA_CL_VTE_CNTL__VPORT_Y_SCALE_ENA_MASK 0x00000004L
+#define PA_CL_VTE_CNTL__VPORT_Y_SCALE_ENA 0x00000004L
+#define PA_CL_VTE_CNTL__VPORT_Y_OFFSET_ENA_MASK 0x00000008L
+#define PA_CL_VTE_CNTL__VPORT_Y_OFFSET_ENA 0x00000008L
+#define PA_CL_VTE_CNTL__VPORT_Z_SCALE_ENA_MASK 0x00000010L
+#define PA_CL_VTE_CNTL__VPORT_Z_SCALE_ENA 0x00000010L
+#define PA_CL_VTE_CNTL__VPORT_Z_OFFSET_ENA_MASK 0x00000020L
+#define PA_CL_VTE_CNTL__VPORT_Z_OFFSET_ENA 0x00000020L
+#define PA_CL_VTE_CNTL__VTX_XY_FMT_MASK 0x00000100L
+#define PA_CL_VTE_CNTL__VTX_XY_FMT 0x00000100L
+#define PA_CL_VTE_CNTL__VTX_Z_FMT_MASK 0x00000200L
+#define PA_CL_VTE_CNTL__VTX_Z_FMT 0x00000200L
+#define PA_CL_VTE_CNTL__VTX_W0_FMT_MASK 0x00000400L
+#define PA_CL_VTE_CNTL__VTX_W0_FMT 0x00000400L
+#define PA_CL_VTE_CNTL__PERFCOUNTER_REF_MASK 0x00000800L
+#define PA_CL_VTE_CNTL__PERFCOUNTER_REF 0x00000800L
+
+// PA_CL_CLIP_CNTL
+#define PA_CL_CLIP_CNTL__CLIP_DISABLE_MASK 0x00010000L
+#define PA_CL_CLIP_CNTL__CLIP_DISABLE 0x00010000L
+#define PA_CL_CLIP_CNTL__BOUNDARY_EDGE_FLAG_ENA_MASK 0x00040000L
+#define PA_CL_CLIP_CNTL__BOUNDARY_EDGE_FLAG_ENA 0x00040000L
+#define PA_CL_CLIP_CNTL__DX_CLIP_SPACE_DEF_MASK 0x00080000L
+#define PA_CL_CLIP_CNTL__DX_CLIP_SPACE_DEF 0x00080000L
+#define PA_CL_CLIP_CNTL__DIS_CLIP_ERR_DETECT_MASK 0x00100000L
+#define PA_CL_CLIP_CNTL__DIS_CLIP_ERR_DETECT 0x00100000L
+#define PA_CL_CLIP_CNTL__VTX_KILL_OR_MASK 0x00200000L
+#define PA_CL_CLIP_CNTL__VTX_KILL_OR 0x00200000L
+#define PA_CL_CLIP_CNTL__XY_NAN_RETAIN_MASK 0x00400000L
+#define PA_CL_CLIP_CNTL__XY_NAN_RETAIN 0x00400000L
+#define PA_CL_CLIP_CNTL__Z_NAN_RETAIN_MASK 0x00800000L
+#define PA_CL_CLIP_CNTL__Z_NAN_RETAIN 0x00800000L
+#define PA_CL_CLIP_CNTL__W_NAN_RETAIN_MASK 0x01000000L
+#define PA_CL_CLIP_CNTL__W_NAN_RETAIN 0x01000000L
+
+// PA_CL_GB_VERT_CLIP_ADJ
+#define PA_CL_GB_VERT_CLIP_ADJ__DATA_REGISTER_MASK 0xffffffffL
+
+// PA_CL_GB_VERT_DISC_ADJ
+#define PA_CL_GB_VERT_DISC_ADJ__DATA_REGISTER_MASK 0xffffffffL
+
+// PA_CL_GB_HORZ_CLIP_ADJ
+#define PA_CL_GB_HORZ_CLIP_ADJ__DATA_REGISTER_MASK 0xffffffffL
+
+// PA_CL_GB_HORZ_DISC_ADJ
+#define PA_CL_GB_HORZ_DISC_ADJ__DATA_REGISTER_MASK 0xffffffffL
+
+// PA_CL_ENHANCE
+#define PA_CL_ENHANCE__CLIP_VTX_REORDER_ENA_MASK 0x00000001L
+#define PA_CL_ENHANCE__CLIP_VTX_REORDER_ENA 0x00000001L
+#define PA_CL_ENHANCE__ECO_SPARE3_MASK 0x10000000L
+#define PA_CL_ENHANCE__ECO_SPARE3 0x10000000L
+#define PA_CL_ENHANCE__ECO_SPARE2_MASK 0x20000000L
+#define PA_CL_ENHANCE__ECO_SPARE2 0x20000000L
+#define PA_CL_ENHANCE__ECO_SPARE1_MASK 0x40000000L
+#define PA_CL_ENHANCE__ECO_SPARE1 0x40000000L
+#define PA_CL_ENHANCE__ECO_SPARE0_MASK 0x80000000L
+#define PA_CL_ENHANCE__ECO_SPARE0 0x80000000L
+
+// PA_SC_ENHANCE
+#define PA_SC_ENHANCE__ECO_SPARE3_MASK 0x10000000L
+#define PA_SC_ENHANCE__ECO_SPARE3 0x10000000L
+#define PA_SC_ENHANCE__ECO_SPARE2_MASK 0x20000000L
+#define PA_SC_ENHANCE__ECO_SPARE2 0x20000000L
+#define PA_SC_ENHANCE__ECO_SPARE1_MASK 0x40000000L
+#define PA_SC_ENHANCE__ECO_SPARE1 0x40000000L
+#define PA_SC_ENHANCE__ECO_SPARE0_MASK 0x80000000L
+#define PA_SC_ENHANCE__ECO_SPARE0 0x80000000L
+
+// PA_SU_VTX_CNTL
+#define PA_SU_VTX_CNTL__PIX_CENTER_MASK 0x00000001L
+#define PA_SU_VTX_CNTL__PIX_CENTER 0x00000001L
+#define PA_SU_VTX_CNTL__ROUND_MODE_MASK 0x00000006L
+#define PA_SU_VTX_CNTL__QUANT_MODE_MASK 0x00000038L
+
+// PA_SU_POINT_SIZE
+#define PA_SU_POINT_SIZE__HEIGHT_MASK 0x0000ffffL
+#define PA_SU_POINT_SIZE__WIDTH_MASK 0xffff0000L
+
+// PA_SU_POINT_MINMAX
+#define PA_SU_POINT_MINMAX__MIN_SIZE_MASK 0x0000ffffL
+#define PA_SU_POINT_MINMAX__MAX_SIZE_MASK 0xffff0000L
+
+// PA_SU_LINE_CNTL
+#define PA_SU_LINE_CNTL__WIDTH_MASK 0x0000ffffL
+
+// PA_SU_SC_MODE_CNTL
+#define PA_SU_SC_MODE_CNTL__CULL_FRONT_MASK 0x00000001L
+#define PA_SU_SC_MODE_CNTL__CULL_FRONT 0x00000001L
+#define PA_SU_SC_MODE_CNTL__CULL_BACK_MASK 0x00000002L
+#define PA_SU_SC_MODE_CNTL__CULL_BACK 0x00000002L
+#define PA_SU_SC_MODE_CNTL__FACE_MASK 0x00000004L
+#define PA_SU_SC_MODE_CNTL__FACE 0x00000004L
+#define PA_SU_SC_MODE_CNTL__POLY_MODE_MASK 0x00000018L
+#define PA_SU_SC_MODE_CNTL__POLYMODE_FRONT_PTYPE_MASK 0x000000e0L
+#define PA_SU_SC_MODE_CNTL__POLYMODE_BACK_PTYPE_MASK 0x00000700L
+#define PA_SU_SC_MODE_CNTL__POLY_OFFSET_FRONT_ENABLE_MASK 0x00000800L
+#define PA_SU_SC_MODE_CNTL__POLY_OFFSET_FRONT_ENABLE 0x00000800L
+#define PA_SU_SC_MODE_CNTL__POLY_OFFSET_BACK_ENABLE_MASK 0x00001000L
+#define PA_SU_SC_MODE_CNTL__POLY_OFFSET_BACK_ENABLE 0x00001000L
+#define PA_SU_SC_MODE_CNTL__POLY_OFFSET_PARA_ENABLE_MASK 0x00002000L
+#define PA_SU_SC_MODE_CNTL__POLY_OFFSET_PARA_ENABLE 0x00002000L
+#define PA_SU_SC_MODE_CNTL__MSAA_ENABLE_MASK 0x00008000L
+#define PA_SU_SC_MODE_CNTL__MSAA_ENABLE 0x00008000L
+#define PA_SU_SC_MODE_CNTL__VTX_WINDOW_OFFSET_ENABLE_MASK 0x00010000L
+#define PA_SU_SC_MODE_CNTL__VTX_WINDOW_OFFSET_ENABLE 0x00010000L
+#define PA_SU_SC_MODE_CNTL__LINE_STIPPLE_ENABLE_MASK 0x00040000L
+#define PA_SU_SC_MODE_CNTL__LINE_STIPPLE_ENABLE 0x00040000L
+#define PA_SU_SC_MODE_CNTL__PROVOKING_VTX_LAST_MASK 0x00080000L
+#define PA_SU_SC_MODE_CNTL__PROVOKING_VTX_LAST 0x00080000L
+#define PA_SU_SC_MODE_CNTL__PERSP_CORR_DIS_MASK 0x00100000L
+#define PA_SU_SC_MODE_CNTL__PERSP_CORR_DIS 0x00100000L
+#define PA_SU_SC_MODE_CNTL__MULTI_PRIM_IB_ENA_MASK 0x00200000L
+#define PA_SU_SC_MODE_CNTL__MULTI_PRIM_IB_ENA 0x00200000L
+#define PA_SU_SC_MODE_CNTL__QUAD_ORDER_ENABLE_MASK 0x00800000L
+#define PA_SU_SC_MODE_CNTL__QUAD_ORDER_ENABLE 0x00800000L
+#define PA_SU_SC_MODE_CNTL__WAIT_RB_IDLE_ALL_TRI_MASK 0x02000000L
+#define PA_SU_SC_MODE_CNTL__WAIT_RB_IDLE_ALL_TRI 0x02000000L
+#define PA_SU_SC_MODE_CNTL__WAIT_RB_IDLE_FIRST_TRI_NEW_STATE_MASK 0x04000000L
+#define PA_SU_SC_MODE_CNTL__WAIT_RB_IDLE_FIRST_TRI_NEW_STATE 0x04000000L
+
+// PA_SU_POLY_OFFSET_FRONT_SCALE
+#define PA_SU_POLY_OFFSET_FRONT_SCALE__SCALE_MASK 0xffffffffL
+
+// PA_SU_POLY_OFFSET_FRONT_OFFSET
+#define PA_SU_POLY_OFFSET_FRONT_OFFSET__OFFSET_MASK 0xffffffffL
+
+// PA_SU_POLY_OFFSET_BACK_SCALE
+#define PA_SU_POLY_OFFSET_BACK_SCALE__SCALE_MASK 0xffffffffL
+
+// PA_SU_POLY_OFFSET_BACK_OFFSET
+#define PA_SU_POLY_OFFSET_BACK_OFFSET__OFFSET_MASK 0xffffffffL
+
+// PA_SU_PERFCOUNTER0_SELECT
+#define PA_SU_PERFCOUNTER0_SELECT__PERF_SEL_MASK 0x000000ffL
+
+// PA_SU_PERFCOUNTER1_SELECT
+#define PA_SU_PERFCOUNTER1_SELECT__PERF_SEL_MASK 0x000000ffL
+
+// PA_SU_PERFCOUNTER2_SELECT
+#define PA_SU_PERFCOUNTER2_SELECT__PERF_SEL_MASK 0x000000ffL
+
+// PA_SU_PERFCOUNTER3_SELECT
+#define PA_SU_PERFCOUNTER3_SELECT__PERF_SEL_MASK 0x000000ffL
+
+// PA_SU_PERFCOUNTER0_LOW
+#define PA_SU_PERFCOUNTER0_LOW__PERF_COUNT_MASK 0xffffffffL
+
+// PA_SU_PERFCOUNTER0_HI
+#define PA_SU_PERFCOUNTER0_HI__PERF_COUNT_MASK 0x0000ffffL
+
+// PA_SU_PERFCOUNTER1_LOW
+#define PA_SU_PERFCOUNTER1_LOW__PERF_COUNT_MASK 0xffffffffL
+
+// PA_SU_PERFCOUNTER1_HI
+#define PA_SU_PERFCOUNTER1_HI__PERF_COUNT_MASK 0x0000ffffL
+
+// PA_SU_PERFCOUNTER2_LOW
+#define PA_SU_PERFCOUNTER2_LOW__PERF_COUNT_MASK 0xffffffffL
+
+// PA_SU_PERFCOUNTER2_HI
+#define PA_SU_PERFCOUNTER2_HI__PERF_COUNT_MASK 0x0000ffffL
+
+// PA_SU_PERFCOUNTER3_LOW
+#define PA_SU_PERFCOUNTER3_LOW__PERF_COUNT_MASK 0xffffffffL
+
+// PA_SU_PERFCOUNTER3_HI
+#define PA_SU_PERFCOUNTER3_HI__PERF_COUNT_MASK 0x0000ffffL
+
+// PA_SC_WINDOW_OFFSET
+#define PA_SC_WINDOW_OFFSET__WINDOW_X_OFFSET_MASK 0x00007fffL
+#define PA_SC_WINDOW_OFFSET__WINDOW_Y_OFFSET_MASK 0x7fff0000L
+
+// PA_SC_AA_CONFIG
+#define PA_SC_AA_CONFIG__MSAA_NUM_SAMPLES_MASK 0x00000007L
+#define PA_SC_AA_CONFIG__MAX_SAMPLE_DIST_MASK 0x0001e000L
+
+// PA_SC_AA_MASK
+#define PA_SC_AA_MASK__AA_MASK_MASK 0x0000ffffL
+
+// PA_SC_LINE_STIPPLE
+#define PA_SC_LINE_STIPPLE__LINE_PATTERN_MASK 0x0000ffffL
+#define PA_SC_LINE_STIPPLE__REPEAT_COUNT_MASK 0x00ff0000L
+#define PA_SC_LINE_STIPPLE__PATTERN_BIT_ORDER_MASK 0x10000000L
+#define PA_SC_LINE_STIPPLE__PATTERN_BIT_ORDER 0x10000000L
+#define PA_SC_LINE_STIPPLE__AUTO_RESET_CNTL_MASK 0x60000000L
+
+// PA_SC_LINE_CNTL
+#define PA_SC_LINE_CNTL__BRES_CNTL_MASK 0x000000ffL
+#define PA_SC_LINE_CNTL__USE_BRES_CNTL_MASK 0x00000100L
+#define PA_SC_LINE_CNTL__USE_BRES_CNTL 0x00000100L
+#define PA_SC_LINE_CNTL__EXPAND_LINE_WIDTH_MASK 0x00000200L
+#define PA_SC_LINE_CNTL__EXPAND_LINE_WIDTH 0x00000200L
+#define PA_SC_LINE_CNTL__LAST_PIXEL_MASK 0x00000400L
+#define PA_SC_LINE_CNTL__LAST_PIXEL 0x00000400L
+
+// PA_SC_WINDOW_SCISSOR_TL
+#define PA_SC_WINDOW_SCISSOR_TL__TL_X_MASK 0x00003fffL
+#define PA_SC_WINDOW_SCISSOR_TL__TL_Y_MASK 0x3fff0000L
+#define PA_SC_WINDOW_SCISSOR_TL__WINDOW_OFFSET_DISABLE_MASK 0x80000000L
+#define PA_SC_WINDOW_SCISSOR_TL__WINDOW_OFFSET_DISABLE 0x80000000L
+
+// PA_SC_WINDOW_SCISSOR_BR
+#define PA_SC_WINDOW_SCISSOR_BR__BR_X_MASK 0x00003fffL
+#define PA_SC_WINDOW_SCISSOR_BR__BR_Y_MASK 0x3fff0000L
+
+// PA_SC_SCREEN_SCISSOR_TL
+#define PA_SC_SCREEN_SCISSOR_TL__TL_X_MASK 0x00007fffL
+#define PA_SC_SCREEN_SCISSOR_TL__TL_Y_MASK 0x7fff0000L
+
+// PA_SC_SCREEN_SCISSOR_BR
+#define PA_SC_SCREEN_SCISSOR_BR__BR_X_MASK 0x00007fffL
+#define PA_SC_SCREEN_SCISSOR_BR__BR_Y_MASK 0x7fff0000L
+
+// PA_SC_VIZ_QUERY
+#define PA_SC_VIZ_QUERY__VIZ_QUERY_ENA_MASK 0x00000001L
+#define PA_SC_VIZ_QUERY__VIZ_QUERY_ENA 0x00000001L
+#define PA_SC_VIZ_QUERY__VIZ_QUERY_ID_MASK 0x0000003eL
+#define PA_SC_VIZ_QUERY__KILL_PIX_POST_EARLY_Z_MASK 0x00000080L
+#define PA_SC_VIZ_QUERY__KILL_PIX_POST_EARLY_Z 0x00000080L
+
+// PA_SC_VIZ_QUERY_STATUS
+#define PA_SC_VIZ_QUERY_STATUS__STATUS_BITS_MASK 0xffffffffL
+
+// PA_SC_LINE_STIPPLE_STATE
+#define PA_SC_LINE_STIPPLE_STATE__CURRENT_PTR_MASK 0x0000000fL
+#define PA_SC_LINE_STIPPLE_STATE__CURRENT_COUNT_MASK 0x0000ff00L
+
+// PA_SC_PERFCOUNTER0_SELECT
+#define PA_SC_PERFCOUNTER0_SELECT__PERF_SEL_MASK 0x000000ffL
+
+// PA_SC_PERFCOUNTER0_LOW
+#define PA_SC_PERFCOUNTER0_LOW__PERF_COUNT_MASK 0xffffffffL
+
+// PA_SC_PERFCOUNTER0_HI
+#define PA_SC_PERFCOUNTER0_HI__PERF_COUNT_MASK 0x0000ffffL
+
+// PA_CL_CNTL_STATUS
+#define PA_CL_CNTL_STATUS__CL_BUSY_MASK 0x80000000L
+#define PA_CL_CNTL_STATUS__CL_BUSY 0x80000000L
+
+// PA_SU_CNTL_STATUS
+#define PA_SU_CNTL_STATUS__SU_BUSY_MASK 0x80000000L
+#define PA_SU_CNTL_STATUS__SU_BUSY 0x80000000L
+
+// PA_SC_CNTL_STATUS
+#define PA_SC_CNTL_STATUS__SC_BUSY_MASK 0x80000000L
+#define PA_SC_CNTL_STATUS__SC_BUSY 0x80000000L
+
+// PA_SU_DEBUG_CNTL
+#define PA_SU_DEBUG_CNTL__SU_DEBUG_INDX_MASK 0x0000001fL
+
+// PA_SU_DEBUG_DATA
+#define PA_SU_DEBUG_DATA__DATA_MASK 0xffffffffL
+
+// CLIPPER_DEBUG_REG00
+#define CLIPPER_DEBUG_REG00__clip_ga_bc_fifo_write_MASK 0x00000001L
+#define CLIPPER_DEBUG_REG00__clip_ga_bc_fifo_write 0x00000001L
+#define CLIPPER_DEBUG_REG00__clip_ga_bc_fifo_full_MASK 0x00000002L
+#define CLIPPER_DEBUG_REG00__clip_ga_bc_fifo_full 0x00000002L
+#define CLIPPER_DEBUG_REG00__clip_to_ga_fifo_write_MASK 0x00000004L
+#define CLIPPER_DEBUG_REG00__clip_to_ga_fifo_write 0x00000004L
+#define CLIPPER_DEBUG_REG00__clip_to_ga_fifo_full_MASK 0x00000008L
+#define CLIPPER_DEBUG_REG00__clip_to_ga_fifo_full 0x00000008L
+#define CLIPPER_DEBUG_REG00__primic_to_clprim_fifo_empty_MASK 0x00000010L
+#define CLIPPER_DEBUG_REG00__primic_to_clprim_fifo_empty 0x00000010L
+#define CLIPPER_DEBUG_REG00__primic_to_clprim_fifo_full_MASK 0x00000020L
+#define CLIPPER_DEBUG_REG00__primic_to_clprim_fifo_full 0x00000020L
+#define CLIPPER_DEBUG_REG00__clip_to_outsm_fifo_empty_MASK 0x00000040L
+#define CLIPPER_DEBUG_REG00__clip_to_outsm_fifo_empty 0x00000040L
+#define CLIPPER_DEBUG_REG00__clip_to_outsm_fifo_full_MASK 0x00000080L
+#define CLIPPER_DEBUG_REG00__clip_to_outsm_fifo_full 0x00000080L
+#define CLIPPER_DEBUG_REG00__vgt_to_clipp_fifo_empty_MASK 0x00000100L
+#define CLIPPER_DEBUG_REG00__vgt_to_clipp_fifo_empty 0x00000100L
+#define CLIPPER_DEBUG_REG00__vgt_to_clipp_fifo_full_MASK 0x00000200L
+#define CLIPPER_DEBUG_REG00__vgt_to_clipp_fifo_full 0x00000200L
+#define CLIPPER_DEBUG_REG00__vgt_to_clips_fifo_empty_MASK 0x00000400L
+#define CLIPPER_DEBUG_REG00__vgt_to_clips_fifo_empty 0x00000400L
+#define CLIPPER_DEBUG_REG00__vgt_to_clips_fifo_full_MASK 0x00000800L
+#define CLIPPER_DEBUG_REG00__vgt_to_clips_fifo_full 0x00000800L
+#define CLIPPER_DEBUG_REG00__clipcode_fifo_fifo_empty_MASK 0x00001000L
+#define CLIPPER_DEBUG_REG00__clipcode_fifo_fifo_empty 0x00001000L
+#define CLIPPER_DEBUG_REG00__clipcode_fifo_full_MASK 0x00002000L
+#define CLIPPER_DEBUG_REG00__clipcode_fifo_full 0x00002000L
+#define CLIPPER_DEBUG_REG00__vte_out_clip_fifo_fifo_empty_MASK 0x00004000L
+#define CLIPPER_DEBUG_REG00__vte_out_clip_fifo_fifo_empty 0x00004000L
+#define CLIPPER_DEBUG_REG00__vte_out_clip_fifo_fifo_full_MASK 0x00008000L
+#define CLIPPER_DEBUG_REG00__vte_out_clip_fifo_fifo_full 0x00008000L
+#define CLIPPER_DEBUG_REG00__vte_out_orig_fifo_fifo_empty_MASK 0x00010000L
+#define CLIPPER_DEBUG_REG00__vte_out_orig_fifo_fifo_empty 0x00010000L
+#define CLIPPER_DEBUG_REG00__vte_out_orig_fifo_fifo_full_MASK 0x00020000L
+#define CLIPPER_DEBUG_REG00__vte_out_orig_fifo_fifo_full 0x00020000L
+#define CLIPPER_DEBUG_REG00__ccgen_to_clipcc_fifo_empty_MASK 0x00040000L
+#define CLIPPER_DEBUG_REG00__ccgen_to_clipcc_fifo_empty 0x00040000L
+#define CLIPPER_DEBUG_REG00__ccgen_to_clipcc_fifo_full_MASK 0x00080000L
+#define CLIPPER_DEBUG_REG00__ccgen_to_clipcc_fifo_full 0x00080000L
+#define CLIPPER_DEBUG_REG00__ALWAYS_ZERO_MASK 0xfff00000L
+
+// CLIPPER_DEBUG_REG01
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_end_of_packet_MASK 0x00000001L
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_end_of_packet 0x00000001L
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_first_prim_of_slot_MASK 0x00000002L
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_first_prim_of_slot 0x00000002L
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_deallocate_slot_MASK 0x0000001cL
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_clipped_prim_MASK 0x00000020L
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_clipped_prim 0x00000020L
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_null_primitive_MASK 0x00000040L
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_null_primitive 0x00000040L
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_vertex_store_indx_2_MASK 0x00000780L
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_vertex_store_indx_1_MASK 0x00007800L
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_vertex_store_indx_0_MASK 0x00078000L
+#define CLIPPER_DEBUG_REG01__clip_vert_vte_valid_MASK 0x00380000L
+#define CLIPPER_DEBUG_REG01__vte_out_clip_rd_vertex_store_indx_MASK 0x00c00000L
+#define CLIPPER_DEBUG_REG01__ALWAYS_ZERO_MASK 0xff000000L
+
+// CLIPPER_DEBUG_REG02
+#define CLIPPER_DEBUG_REG02__ALWAYS_ZERO1_MASK 0x001fffffL
+#define CLIPPER_DEBUG_REG02__clipsm0_clip_to_clipga_clip_to_outsm_cnt_MASK 0x00e00000L
+#define CLIPPER_DEBUG_REG02__ALWAYS_ZERO0_MASK 0x7f000000L
+#define CLIPPER_DEBUG_REG02__clipsm0_clprim_to_clip_prim_valid_MASK 0x80000000L
+#define CLIPPER_DEBUG_REG02__clipsm0_clprim_to_clip_prim_valid 0x80000000L
+
+// CLIPPER_DEBUG_REG03
+#define CLIPPER_DEBUG_REG03__ALWAYS_ZERO3_MASK 0x00000007L
+#define CLIPPER_DEBUG_REG03__clipsm0_clprim_to_clip_clip_primitive_MASK 0x00000008L
+#define CLIPPER_DEBUG_REG03__clipsm0_clprim_to_clip_clip_primitive 0x00000008L
+#define CLIPPER_DEBUG_REG03__ALWAYS_ZERO2_MASK 0x00000070L
+#define CLIPPER_DEBUG_REG03__clipsm0_clprim_to_clip_null_primitive_MASK 0x00000080L
+#define CLIPPER_DEBUG_REG03__clipsm0_clprim_to_clip_null_primitive 0x00000080L
+#define CLIPPER_DEBUG_REG03__ALWAYS_ZERO1_MASK 0x000fff00L
+#define CLIPPER_DEBUG_REG03__clipsm0_clprim_to_clip_clip_code_or_MASK 0x03f00000L
+#define CLIPPER_DEBUG_REG03__ALWAYS_ZERO0_MASK 0xfc000000L
+
+// CLIPPER_DEBUG_REG04
+#define CLIPPER_DEBUG_REG04__ALWAYS_ZERO2_MASK 0x00000007L
+#define CLIPPER_DEBUG_REG04__clipsm0_clprim_to_clip_first_prim_of_slot_MASK 0x00000008L
+#define CLIPPER_DEBUG_REG04__clipsm0_clprim_to_clip_first_prim_of_slot 0x00000008L
+#define CLIPPER_DEBUG_REG04__ALWAYS_ZERO1_MASK 0x00000070L
+#define CLIPPER_DEBUG_REG04__clipsm0_clprim_to_clip_event_MASK 0x00000080L
+#define CLIPPER_DEBUG_REG04__clipsm0_clprim_to_clip_event 0x00000080L
+#define CLIPPER_DEBUG_REG04__ALWAYS_ZERO0_MASK 0xffffff00L
+
+// CLIPPER_DEBUG_REG05
+#define CLIPPER_DEBUG_REG05__clipsm0_clprim_to_clip_state_var_indx_MASK 0x00000001L
+#define CLIPPER_DEBUG_REG05__clipsm0_clprim_to_clip_state_var_indx 0x00000001L
+#define CLIPPER_DEBUG_REG05__ALWAYS_ZERO3_MASK 0x00000006L
+#define CLIPPER_DEBUG_REG05__clipsm0_clprim_to_clip_deallocate_slot_MASK 0x00000038L
+#define CLIPPER_DEBUG_REG05__clipsm0_clprim_to_clip_event_id_MASK 0x00000fc0L
+#define CLIPPER_DEBUG_REG05__clipsm0_clprim_to_clip_vertex_store_indx_2_MASK 0x0000f000L
+#define CLIPPER_DEBUG_REG05__ALWAYS_ZERO2_MASK 0x00030000L
+#define CLIPPER_DEBUG_REG05__clipsm0_clprim_to_clip_vertex_store_indx_1_MASK 0x003c0000L
+#define CLIPPER_DEBUG_REG05__ALWAYS_ZERO1_MASK 0x00c00000L
+#define CLIPPER_DEBUG_REG05__clipsm0_clprim_to_clip_vertex_store_indx_0_MASK 0x0f000000L
+#define CLIPPER_DEBUG_REG05__ALWAYS_ZERO0_MASK 0xf0000000L
+
+// CLIPPER_DEBUG_REG09
+#define CLIPPER_DEBUG_REG09__clprim_in_back_event_MASK 0x00000001L
+#define CLIPPER_DEBUG_REG09__clprim_in_back_event 0x00000001L
+#define CLIPPER_DEBUG_REG09__outputclprimtoclip_null_primitive_MASK 0x00000002L
+#define CLIPPER_DEBUG_REG09__outputclprimtoclip_null_primitive 0x00000002L
+#define CLIPPER_DEBUG_REG09__clprim_in_back_vertex_store_indx_2_MASK 0x0000003cL
+#define CLIPPER_DEBUG_REG09__ALWAYS_ZERO2_MASK 0x000000c0L
+#define CLIPPER_DEBUG_REG09__clprim_in_back_vertex_store_indx_1_MASK 0x00000f00L
+#define CLIPPER_DEBUG_REG09__ALWAYS_ZERO1_MASK 0x00003000L
+#define CLIPPER_DEBUG_REG09__clprim_in_back_vertex_store_indx_0_MASK 0x0003c000L
+#define CLIPPER_DEBUG_REG09__ALWAYS_ZERO0_MASK 0x000c0000L
+#define CLIPPER_DEBUG_REG09__prim_back_valid_MASK 0x00100000L
+#define CLIPPER_DEBUG_REG09__prim_back_valid 0x00100000L
+#define CLIPPER_DEBUG_REG09__clip_priority_seq_indx_out_cnt_MASK 0x01e00000L
+#define CLIPPER_DEBUG_REG09__outsm_clr_rd_orig_vertices_MASK 0x06000000L
+#define CLIPPER_DEBUG_REG09__outsm_clr_rd_clipsm_wait_MASK 0x08000000L
+#define CLIPPER_DEBUG_REG09__outsm_clr_rd_clipsm_wait 0x08000000L
+#define CLIPPER_DEBUG_REG09__outsm_clr_fifo_empty_MASK 0x10000000L
+#define CLIPPER_DEBUG_REG09__outsm_clr_fifo_empty 0x10000000L
+#define CLIPPER_DEBUG_REG09__outsm_clr_fifo_full_MASK 0x20000000L
+#define CLIPPER_DEBUG_REG09__outsm_clr_fifo_full 0x20000000L
+#define CLIPPER_DEBUG_REG09__clip_priority_seq_indx_load_MASK 0xc0000000L
+
+// CLIPPER_DEBUG_REG10
+#define CLIPPER_DEBUG_REG10__primic_to_clprim_fifo_vertex_store_indx_2_MASK 0x0000000fL
+#define CLIPPER_DEBUG_REG10__ALWAYS_ZERO3_MASK 0x00000030L
+#define CLIPPER_DEBUG_REG10__primic_to_clprim_fifo_vertex_store_indx_1_MASK 0x000003c0L
+#define CLIPPER_DEBUG_REG10__ALWAYS_ZERO2_MASK 0x00000c00L
+#define CLIPPER_DEBUG_REG10__primic_to_clprim_fifo_vertex_store_indx_0_MASK 0x0000f000L
+#define CLIPPER_DEBUG_REG10__ALWAYS_ZERO1_MASK 0x00030000L
+#define CLIPPER_DEBUG_REG10__clprim_in_back_state_var_indx_MASK 0x00040000L
+#define CLIPPER_DEBUG_REG10__clprim_in_back_state_var_indx 0x00040000L
+#define CLIPPER_DEBUG_REG10__ALWAYS_ZERO0_MASK 0x00180000L
+#define CLIPPER_DEBUG_REG10__clprim_in_back_end_of_packet_MASK 0x00200000L
+#define CLIPPER_DEBUG_REG10__clprim_in_back_end_of_packet 0x00200000L
+#define CLIPPER_DEBUG_REG10__clprim_in_back_first_prim_of_slot_MASK 0x00400000L
+#define CLIPPER_DEBUG_REG10__clprim_in_back_first_prim_of_slot 0x00400000L
+#define CLIPPER_DEBUG_REG10__clprim_in_back_deallocate_slot_MASK 0x03800000L
+#define CLIPPER_DEBUG_REG10__clprim_in_back_event_id_MASK 0xfc000000L
+
+// CLIPPER_DEBUG_REG11
+#define CLIPPER_DEBUG_REG11__vertval_bits_vertex_vertex_store_msb_MASK 0x0000000fL
+#define CLIPPER_DEBUG_REG11__ALWAYS_ZERO_MASK 0xfffffff0L
+
+// CLIPPER_DEBUG_REG12
+#define CLIPPER_DEBUG_REG12__clip_priority_available_vte_out_clip_MASK 0x00000003L
+#define CLIPPER_DEBUG_REG12__ALWAYS_ZERO2_MASK 0x0000001cL
+#define CLIPPER_DEBUG_REG12__clip_vertex_fifo_empty_MASK 0x00000020L
+#define CLIPPER_DEBUG_REG12__clip_vertex_fifo_empty 0x00000020L
+#define CLIPPER_DEBUG_REG12__clip_priority_available_clip_verts_MASK 0x000007c0L
+#define CLIPPER_DEBUG_REG12__ALWAYS_ZERO1_MASK 0x00007800L
+#define CLIPPER_DEBUG_REG12__vertval_bits_vertex_cc_next_valid_MASK 0x00078000L
+#define CLIPPER_DEBUG_REG12__clipcc_vertex_store_indx_MASK 0x00180000L
+#define CLIPPER_DEBUG_REG12__primic_to_clprim_valid_MASK 0x00200000L
+#define CLIPPER_DEBUG_REG12__primic_to_clprim_valid 0x00200000L
+#define CLIPPER_DEBUG_REG12__ALWAYS_ZERO0_MASK 0xffc00000L
+
+// CLIPPER_DEBUG_REG13
+#define CLIPPER_DEBUG_REG13__sm0_clip_vert_cnt_MASK 0x0000000fL
+#define CLIPPER_DEBUG_REG13__sm0_prim_end_state_MASK 0x000007f0L
+#define CLIPPER_DEBUG_REG13__ALWAYS_ZERO1_MASK 0x00003800L
+#define CLIPPER_DEBUG_REG13__sm0_vertex_clip_cnt_MASK 0x0003c000L
+#define CLIPPER_DEBUG_REG13__sm0_inv_to_clip_data_valid_1_MASK 0x00040000L
+#define CLIPPER_DEBUG_REG13__sm0_inv_to_clip_data_valid_1 0x00040000L
+#define CLIPPER_DEBUG_REG13__sm0_inv_to_clip_data_valid_0_MASK 0x00080000L
+#define CLIPPER_DEBUG_REG13__sm0_inv_to_clip_data_valid_0 0x00080000L
+#define CLIPPER_DEBUG_REG13__sm0_current_state_MASK 0x07f00000L
+#define CLIPPER_DEBUG_REG13__ALWAYS_ZERO0_MASK 0xf8000000L
+
+// SXIFCCG_DEBUG_REG0
+#define SXIFCCG_DEBUG_REG0__nan_kill_flag_MASK 0x0000000fL
+#define SXIFCCG_DEBUG_REG0__position_address_MASK 0x00000070L
+#define SXIFCCG_DEBUG_REG0__ALWAYS_ZERO2_MASK 0x00000380L
+#define SXIFCCG_DEBUG_REG0__point_address_MASK 0x00001c00L
+#define SXIFCCG_DEBUG_REG0__ALWAYS_ZERO1_MASK 0x0000e000L
+#define SXIFCCG_DEBUG_REG0__sx_pending_rd_state_var_indx_MASK 0x00010000L
+#define SXIFCCG_DEBUG_REG0__sx_pending_rd_state_var_indx 0x00010000L
+#define SXIFCCG_DEBUG_REG0__ALWAYS_ZERO0_MASK 0x00060000L
+#define SXIFCCG_DEBUG_REG0__sx_pending_rd_req_mask_MASK 0x00780000L
+#define SXIFCCG_DEBUG_REG0__sx_pending_rd_pci_MASK 0x3f800000L
+#define SXIFCCG_DEBUG_REG0__sx_pending_rd_aux_inc_MASK 0x40000000L
+#define SXIFCCG_DEBUG_REG0__sx_pending_rd_aux_inc 0x40000000L
+#define SXIFCCG_DEBUG_REG0__sx_pending_rd_aux_sel_MASK 0x80000000L
+#define SXIFCCG_DEBUG_REG0__sx_pending_rd_aux_sel 0x80000000L
+
+// SXIFCCG_DEBUG_REG1
+#define SXIFCCG_DEBUG_REG1__ALWAYS_ZERO3_MASK 0x00000003L
+#define SXIFCCG_DEBUG_REG1__sx_to_pa_empty_MASK 0x0000000cL
+#define SXIFCCG_DEBUG_REG1__available_positions_MASK 0x00000070L
+#define SXIFCCG_DEBUG_REG1__ALWAYS_ZERO2_MASK 0x00000780L
+#define SXIFCCG_DEBUG_REG1__sx_pending_advance_MASK 0x00000800L
+#define SXIFCCG_DEBUG_REG1__sx_pending_advance 0x00000800L
+#define SXIFCCG_DEBUG_REG1__sx_receive_indx_MASK 0x00007000L
+#define SXIFCCG_DEBUG_REG1__statevar_bits_sxpa_aux_vector_MASK 0x00008000L
+#define SXIFCCG_DEBUG_REG1__statevar_bits_sxpa_aux_vector 0x00008000L
+#define SXIFCCG_DEBUG_REG1__ALWAYS_ZERO1_MASK 0x000f0000L
+#define SXIFCCG_DEBUG_REG1__aux_sel_MASK 0x00100000L
+#define SXIFCCG_DEBUG_REG1__aux_sel 0x00100000L
+#define SXIFCCG_DEBUG_REG1__ALWAYS_ZERO0_MASK 0x00600000L
+#define SXIFCCG_DEBUG_REG1__pasx_req_cnt_MASK 0x01800000L
+#define SXIFCCG_DEBUG_REG1__param_cache_base_MASK 0xfe000000L
+
+// SXIFCCG_DEBUG_REG2
+#define SXIFCCG_DEBUG_REG2__sx_sent_MASK 0x00000001L
+#define SXIFCCG_DEBUG_REG2__sx_sent 0x00000001L
+#define SXIFCCG_DEBUG_REG2__ALWAYS_ZERO3_MASK 0x00000002L
+#define SXIFCCG_DEBUG_REG2__ALWAYS_ZERO3 0x00000002L
+#define SXIFCCG_DEBUG_REG2__sx_aux_MASK 0x00000004L
+#define SXIFCCG_DEBUG_REG2__sx_aux 0x00000004L
+#define SXIFCCG_DEBUG_REG2__sx_request_indx_MASK 0x000001f8L
+#define SXIFCCG_DEBUG_REG2__req_active_verts_MASK 0x0000fe00L
+#define SXIFCCG_DEBUG_REG2__ALWAYS_ZERO2_MASK 0x00010000L
+#define SXIFCCG_DEBUG_REG2__ALWAYS_ZERO2 0x00010000L
+#define SXIFCCG_DEBUG_REG2__vgt_to_ccgen_state_var_indx_MASK 0x00020000L
+#define SXIFCCG_DEBUG_REG2__vgt_to_ccgen_state_var_indx 0x00020000L
+#define SXIFCCG_DEBUG_REG2__ALWAYS_ZERO1_MASK 0x000c0000L
+#define SXIFCCG_DEBUG_REG2__vgt_to_ccgen_active_verts_MASK 0x00300000L
+#define SXIFCCG_DEBUG_REG2__ALWAYS_ZERO0_MASK 0x03c00000L
+#define SXIFCCG_DEBUG_REG2__req_active_verts_loaded_MASK 0x04000000L
+#define SXIFCCG_DEBUG_REG2__req_active_verts_loaded 0x04000000L
+#define SXIFCCG_DEBUG_REG2__sx_pending_fifo_empty_MASK 0x08000000L
+#define SXIFCCG_DEBUG_REG2__sx_pending_fifo_empty 0x08000000L
+#define SXIFCCG_DEBUG_REG2__sx_pending_fifo_full_MASK 0x10000000L
+#define SXIFCCG_DEBUG_REG2__sx_pending_fifo_full 0x10000000L
+#define SXIFCCG_DEBUG_REG2__sx_pending_fifo_contents_MASK 0xe0000000L
+
+// SXIFCCG_DEBUG_REG3
+#define SXIFCCG_DEBUG_REG3__vertex_fifo_entriesavailable_MASK 0x0000000fL
+#define SXIFCCG_DEBUG_REG3__ALWAYS_ZERO3_MASK 0x00000010L
+#define SXIFCCG_DEBUG_REG3__ALWAYS_ZERO3 0x00000010L
+#define SXIFCCG_DEBUG_REG3__available_positions_MASK 0x000000e0L
+#define SXIFCCG_DEBUG_REG3__ALWAYS_ZERO2_MASK 0x00000f00L
+#define SXIFCCG_DEBUG_REG3__current_state_MASK 0x00003000L
+#define SXIFCCG_DEBUG_REG3__vertex_fifo_empty_MASK 0x00004000L
+#define SXIFCCG_DEBUG_REG3__vertex_fifo_empty 0x00004000L
+#define SXIFCCG_DEBUG_REG3__vertex_fifo_full_MASK 0x00008000L
+#define SXIFCCG_DEBUG_REG3__vertex_fifo_full 0x00008000L
+#define SXIFCCG_DEBUG_REG3__ALWAYS_ZERO1_MASK 0x00030000L
+#define SXIFCCG_DEBUG_REG3__sx0_receive_fifo_empty_MASK 0x00040000L
+#define SXIFCCG_DEBUG_REG3__sx0_receive_fifo_empty 0x00040000L
+#define SXIFCCG_DEBUG_REG3__sx0_receive_fifo_full_MASK 0x00080000L
+#define SXIFCCG_DEBUG_REG3__sx0_receive_fifo_full 0x00080000L
+#define SXIFCCG_DEBUG_REG3__vgt_to_ccgen_fifo_empty_MASK 0x00100000L
+#define SXIFCCG_DEBUG_REG3__vgt_to_ccgen_fifo_empty 0x00100000L
+#define SXIFCCG_DEBUG_REG3__vgt_to_ccgen_fifo_full_MASK 0x00200000L
+#define SXIFCCG_DEBUG_REG3__vgt_to_ccgen_fifo_full 0x00200000L
+#define SXIFCCG_DEBUG_REG3__ALWAYS_ZERO0_MASK 0xffc00000L
+
+// SETUP_DEBUG_REG0
+#define SETUP_DEBUG_REG0__su_cntl_state_MASK 0x0000001fL
+#define SETUP_DEBUG_REG0__pmode_state_MASK 0x000007e0L
+#define SETUP_DEBUG_REG0__ge_stallb_MASK 0x00000800L
+#define SETUP_DEBUG_REG0__ge_stallb 0x00000800L
+#define SETUP_DEBUG_REG0__geom_enable_MASK 0x00001000L
+#define SETUP_DEBUG_REG0__geom_enable 0x00001000L
+#define SETUP_DEBUG_REG0__su_clip_baryc_rtr_MASK 0x00002000L
+#define SETUP_DEBUG_REG0__su_clip_baryc_rtr 0x00002000L
+#define SETUP_DEBUG_REG0__su_clip_rtr_MASK 0x00004000L
+#define SETUP_DEBUG_REG0__su_clip_rtr 0x00004000L
+#define SETUP_DEBUG_REG0__pfifo_busy_MASK 0x00008000L
+#define SETUP_DEBUG_REG0__pfifo_busy 0x00008000L
+#define SETUP_DEBUG_REG0__su_cntl_busy_MASK 0x00010000L
+#define SETUP_DEBUG_REG0__su_cntl_busy 0x00010000L
+#define SETUP_DEBUG_REG0__geom_busy_MASK 0x00020000L
+#define SETUP_DEBUG_REG0__geom_busy 0x00020000L
+
+// SETUP_DEBUG_REG1
+#define SETUP_DEBUG_REG1__y_sort0_gated_17_4_MASK 0x00003fffL
+#define SETUP_DEBUG_REG1__x_sort0_gated_17_4_MASK 0x0fffc000L
+
+// SETUP_DEBUG_REG2
+#define SETUP_DEBUG_REG2__y_sort1_gated_17_4_MASK 0x00003fffL
+#define SETUP_DEBUG_REG2__x_sort1_gated_17_4_MASK 0x0fffc000L
+
+// SETUP_DEBUG_REG3
+#define SETUP_DEBUG_REG3__y_sort2_gated_17_4_MASK 0x00003fffL
+#define SETUP_DEBUG_REG3__x_sort2_gated_17_4_MASK 0x0fffc000L
+
+// SETUP_DEBUG_REG4
+#define SETUP_DEBUG_REG4__attr_indx_sort0_gated_MASK 0x000007ffL
+#define SETUP_DEBUG_REG4__null_prim_gated_MASK 0x00000800L
+#define SETUP_DEBUG_REG4__null_prim_gated 0x00000800L
+#define SETUP_DEBUG_REG4__backfacing_gated_MASK 0x00001000L
+#define SETUP_DEBUG_REG4__backfacing_gated 0x00001000L
+#define SETUP_DEBUG_REG4__st_indx_gated_MASK 0x0000e000L
+#define SETUP_DEBUG_REG4__clipped_gated_MASK 0x00010000L
+#define SETUP_DEBUG_REG4__clipped_gated 0x00010000L
+#define SETUP_DEBUG_REG4__dealloc_slot_gated_MASK 0x000e0000L
+#define SETUP_DEBUG_REG4__xmajor_gated_MASK 0x00100000L
+#define SETUP_DEBUG_REG4__xmajor_gated 0x00100000L
+#define SETUP_DEBUG_REG4__diamond_rule_gated_MASK 0x00600000L
+#define SETUP_DEBUG_REG4__type_gated_MASK 0x03800000L
+#define SETUP_DEBUG_REG4__fpov_gated_MASK 0x04000000L
+#define SETUP_DEBUG_REG4__fpov_gated 0x04000000L
+#define SETUP_DEBUG_REG4__pmode_prim_gated_MASK 0x08000000L
+#define SETUP_DEBUG_REG4__pmode_prim_gated 0x08000000L
+#define SETUP_DEBUG_REG4__event_gated_MASK 0x10000000L
+#define SETUP_DEBUG_REG4__event_gated 0x10000000L
+#define SETUP_DEBUG_REG4__eop_gated_MASK 0x20000000L
+#define SETUP_DEBUG_REG4__eop_gated 0x20000000L
+
+// SETUP_DEBUG_REG5
+#define SETUP_DEBUG_REG5__attr_indx_sort2_gated_MASK 0x000007ffL
+#define SETUP_DEBUG_REG5__attr_indx_sort1_gated_MASK 0x003ff800L
+#define SETUP_DEBUG_REG5__provoking_vtx_gated_MASK 0x00c00000L
+#define SETUP_DEBUG_REG5__event_id_gated_MASK 0x1f000000L
+
+// PA_SC_DEBUG_CNTL
+#define PA_SC_DEBUG_CNTL__SC_DEBUG_INDX_MASK 0x0000001fL
+
+// PA_SC_DEBUG_DATA
+#define PA_SC_DEBUG_DATA__DATA_MASK 0xffffffffL
+
+// SC_DEBUG_0
+#define SC_DEBUG_0__pa_freeze_b1_MASK 0x00000001L
+#define SC_DEBUG_0__pa_freeze_b1 0x00000001L
+#define SC_DEBUG_0__pa_sc_valid_MASK 0x00000002L
+#define SC_DEBUG_0__pa_sc_valid 0x00000002L
+#define SC_DEBUG_0__pa_sc_phase_MASK 0x0000001cL
+#define SC_DEBUG_0__cntx_cnt_MASK 0x00000fe0L
+#define SC_DEBUG_0__decr_cntx_cnt_MASK 0x00001000L
+#define SC_DEBUG_0__decr_cntx_cnt 0x00001000L
+#define SC_DEBUG_0__incr_cntx_cnt_MASK 0x00002000L
+#define SC_DEBUG_0__incr_cntx_cnt 0x00002000L
+#define SC_DEBUG_0__trigger_MASK 0x80000000L
+#define SC_DEBUG_0__trigger 0x80000000L
+
+// SC_DEBUG_1
+#define SC_DEBUG_1__em_state_MASK 0x00000007L
+#define SC_DEBUG_1__em1_data_ready_MASK 0x00000008L
+#define SC_DEBUG_1__em1_data_ready 0x00000008L
+#define SC_DEBUG_1__em2_data_ready_MASK 0x00000010L
+#define SC_DEBUG_1__em2_data_ready 0x00000010L
+#define SC_DEBUG_1__move_em1_to_em2_MASK 0x00000020L
+#define SC_DEBUG_1__move_em1_to_em2 0x00000020L
+#define SC_DEBUG_1__ef_data_ready_MASK 0x00000040L
+#define SC_DEBUG_1__ef_data_ready 0x00000040L
+#define SC_DEBUG_1__ef_state_MASK 0x00000180L
+#define SC_DEBUG_1__pipe_valid_MASK 0x00000200L
+#define SC_DEBUG_1__pipe_valid 0x00000200L
+#define SC_DEBUG_1__trigger_MASK 0x80000000L
+#define SC_DEBUG_1__trigger 0x80000000L
+
+// SC_DEBUG_2
+#define SC_DEBUG_2__rc_rtr_dly_MASK 0x00000001L
+#define SC_DEBUG_2__rc_rtr_dly 0x00000001L
+#define SC_DEBUG_2__qmask_ff_alm_full_d1_MASK 0x00000002L
+#define SC_DEBUG_2__qmask_ff_alm_full_d1 0x00000002L
+#define SC_DEBUG_2__pipe_freeze_b_MASK 0x00000008L
+#define SC_DEBUG_2__pipe_freeze_b 0x00000008L
+#define SC_DEBUG_2__prim_rts_MASK 0x00000010L
+#define SC_DEBUG_2__prim_rts 0x00000010L
+#define SC_DEBUG_2__next_prim_rts_dly_MASK 0x00000020L
+#define SC_DEBUG_2__next_prim_rts_dly 0x00000020L
+#define SC_DEBUG_2__next_prim_rtr_dly_MASK 0x00000040L
+#define SC_DEBUG_2__next_prim_rtr_dly 0x00000040L
+#define SC_DEBUG_2__pre_stage1_rts_d1_MASK 0x00000080L
+#define SC_DEBUG_2__pre_stage1_rts_d1 0x00000080L
+#define SC_DEBUG_2__stage0_rts_MASK 0x00000100L
+#define SC_DEBUG_2__stage0_rts 0x00000100L
+#define SC_DEBUG_2__phase_rts_dly_MASK 0x00000200L
+#define SC_DEBUG_2__phase_rts_dly 0x00000200L
+#define SC_DEBUG_2__end_of_prim_s1_dly_MASK 0x00008000L
+#define SC_DEBUG_2__end_of_prim_s1_dly 0x00008000L
+#define SC_DEBUG_2__pass_empty_prim_s1_MASK 0x00010000L
+#define SC_DEBUG_2__pass_empty_prim_s1 0x00010000L
+#define SC_DEBUG_2__event_id_s1_MASK 0x003e0000L
+#define SC_DEBUG_2__event_s1_MASK 0x00400000L
+#define SC_DEBUG_2__event_s1 0x00400000L
+#define SC_DEBUG_2__trigger_MASK 0x80000000L
+#define SC_DEBUG_2__trigger 0x80000000L
+
+// SC_DEBUG_3
+#define SC_DEBUG_3__x_curr_s1_MASK 0x000007ffL
+#define SC_DEBUG_3__y_curr_s1_MASK 0x003ff800L
+#define SC_DEBUG_3__trigger_MASK 0x80000000L
+#define SC_DEBUG_3__trigger 0x80000000L
+
+// SC_DEBUG_4
+#define SC_DEBUG_4__y_end_s1_MASK 0x00003fffL
+#define SC_DEBUG_4__y_start_s1_MASK 0x0fffc000L
+#define SC_DEBUG_4__y_dir_s1_MASK 0x10000000L
+#define SC_DEBUG_4__y_dir_s1 0x10000000L
+#define SC_DEBUG_4__trigger_MASK 0x80000000L
+#define SC_DEBUG_4__trigger 0x80000000L
+
+// SC_DEBUG_5
+#define SC_DEBUG_5__x_end_s1_MASK 0x00003fffL
+#define SC_DEBUG_5__x_start_s1_MASK 0x0fffc000L
+#define SC_DEBUG_5__x_dir_s1_MASK 0x10000000L
+#define SC_DEBUG_5__x_dir_s1 0x10000000L
+#define SC_DEBUG_5__trigger_MASK 0x80000000L
+#define SC_DEBUG_5__trigger 0x80000000L
+
+// SC_DEBUG_6
+#define SC_DEBUG_6__z_ff_empty_MASK 0x00000001L
+#define SC_DEBUG_6__z_ff_empty 0x00000001L
+#define SC_DEBUG_6__qmcntl_ff_empty_MASK 0x00000002L
+#define SC_DEBUG_6__qmcntl_ff_empty 0x00000002L
+#define SC_DEBUG_6__xy_ff_empty_MASK 0x00000004L
+#define SC_DEBUG_6__xy_ff_empty 0x00000004L
+#define SC_DEBUG_6__event_flag_MASK 0x00000008L
+#define SC_DEBUG_6__event_flag 0x00000008L
+#define SC_DEBUG_6__z_mask_needed_MASK 0x00000010L
+#define SC_DEBUG_6__z_mask_needed 0x00000010L
+#define SC_DEBUG_6__state_MASK 0x000000e0L
+#define SC_DEBUG_6__state_delayed_MASK 0x00000700L
+#define SC_DEBUG_6__data_valid_MASK 0x00000800L
+#define SC_DEBUG_6__data_valid 0x00000800L
+#define SC_DEBUG_6__data_valid_d_MASK 0x00001000L
+#define SC_DEBUG_6__data_valid_d 0x00001000L
+#define SC_DEBUG_6__tilex_delayed_MASK 0x003fe000L
+#define SC_DEBUG_6__tiley_delayed_MASK 0x7fc00000L
+#define SC_DEBUG_6__trigger_MASK 0x80000000L
+#define SC_DEBUG_6__trigger 0x80000000L
+
+// SC_DEBUG_7
+#define SC_DEBUG_7__event_flag_MASK 0x00000001L
+#define SC_DEBUG_7__event_flag 0x00000001L
+#define SC_DEBUG_7__deallocate_MASK 0x0000000eL
+#define SC_DEBUG_7__fpos_MASK 0x00000010L
+#define SC_DEBUG_7__fpos 0x00000010L
+#define SC_DEBUG_7__sr_prim_we_MASK 0x00000020L
+#define SC_DEBUG_7__sr_prim_we 0x00000020L
+#define SC_DEBUG_7__last_tile_MASK 0x00000040L
+#define SC_DEBUG_7__last_tile 0x00000040L
+#define SC_DEBUG_7__tile_ff_we_MASK 0x00000080L
+#define SC_DEBUG_7__tile_ff_we 0x00000080L
+#define SC_DEBUG_7__qs_data_valid_MASK 0x00000100L
+#define SC_DEBUG_7__qs_data_valid 0x00000100L
+#define SC_DEBUG_7__qs_q0_y_MASK 0x00000600L
+#define SC_DEBUG_7__qs_q0_x_MASK 0x00001800L
+#define SC_DEBUG_7__qs_q0_valid_MASK 0x00002000L
+#define SC_DEBUG_7__qs_q0_valid 0x00002000L
+#define SC_DEBUG_7__prim_ff_we_MASK 0x00004000L
+#define SC_DEBUG_7__prim_ff_we 0x00004000L
+#define SC_DEBUG_7__tile_ff_re_MASK 0x00008000L
+#define SC_DEBUG_7__tile_ff_re 0x00008000L
+#define SC_DEBUG_7__fw_prim_data_valid_MASK 0x00010000L
+#define SC_DEBUG_7__fw_prim_data_valid 0x00010000L
+#define SC_DEBUG_7__last_quad_of_tile_MASK 0x00020000L
+#define SC_DEBUG_7__last_quad_of_tile 0x00020000L
+#define SC_DEBUG_7__first_quad_of_tile_MASK 0x00040000L
+#define SC_DEBUG_7__first_quad_of_tile 0x00040000L
+#define SC_DEBUG_7__first_quad_of_prim_MASK 0x00080000L
+#define SC_DEBUG_7__first_quad_of_prim 0x00080000L
+#define SC_DEBUG_7__new_prim_MASK 0x00100000L
+#define SC_DEBUG_7__new_prim 0x00100000L
+#define SC_DEBUG_7__load_new_tile_data_MASK 0x00200000L
+#define SC_DEBUG_7__load_new_tile_data 0x00200000L
+#define SC_DEBUG_7__state_MASK 0x00c00000L
+#define SC_DEBUG_7__fifos_ready_MASK 0x01000000L
+#define SC_DEBUG_7__fifos_ready 0x01000000L
+#define SC_DEBUG_7__trigger_MASK 0x80000000L
+#define SC_DEBUG_7__trigger 0x80000000L
+
+// SC_DEBUG_8
+#define SC_DEBUG_8__sample_last_MASK 0x00000001L
+#define SC_DEBUG_8__sample_last 0x00000001L
+#define SC_DEBUG_8__sample_mask_MASK 0x0000001eL
+#define SC_DEBUG_8__sample_y_MASK 0x00000060L
+#define SC_DEBUG_8__sample_x_MASK 0x00000180L
+#define SC_DEBUG_8__sample_send_MASK 0x00000200L
+#define SC_DEBUG_8__sample_send 0x00000200L
+#define SC_DEBUG_8__next_cycle_MASK 0x00000c00L
+#define SC_DEBUG_8__ez_sample_ff_full_MASK 0x00001000L
+#define SC_DEBUG_8__ez_sample_ff_full 0x00001000L
+#define SC_DEBUG_8__rb_sc_samp_rtr_MASK 0x00002000L
+#define SC_DEBUG_8__rb_sc_samp_rtr 0x00002000L
+#define SC_DEBUG_8__num_samples_MASK 0x0000c000L
+#define SC_DEBUG_8__last_quad_of_tile_MASK 0x00010000L
+#define SC_DEBUG_8__last_quad_of_tile 0x00010000L
+#define SC_DEBUG_8__last_quad_of_prim_MASK 0x00020000L
+#define SC_DEBUG_8__last_quad_of_prim 0x00020000L
+#define SC_DEBUG_8__first_quad_of_prim_MASK 0x00040000L
+#define SC_DEBUG_8__first_quad_of_prim 0x00040000L
+#define SC_DEBUG_8__sample_we_MASK 0x00080000L
+#define SC_DEBUG_8__sample_we 0x00080000L
+#define SC_DEBUG_8__fpos_MASK 0x00100000L
+#define SC_DEBUG_8__fpos 0x00100000L
+#define SC_DEBUG_8__event_id_MASK 0x03e00000L
+#define SC_DEBUG_8__event_flag_MASK 0x04000000L
+#define SC_DEBUG_8__event_flag 0x04000000L
+#define SC_DEBUG_8__fw_prim_data_valid_MASK 0x08000000L
+#define SC_DEBUG_8__fw_prim_data_valid 0x08000000L
+#define SC_DEBUG_8__trigger_MASK 0x80000000L
+#define SC_DEBUG_8__trigger 0x80000000L
+
+// SC_DEBUG_9
+#define SC_DEBUG_9__rb_sc_send_MASK 0x00000001L
+#define SC_DEBUG_9__rb_sc_send 0x00000001L
+#define SC_DEBUG_9__rb_sc_ez_mask_MASK 0x0000001eL
+#define SC_DEBUG_9__fifo_data_ready_MASK 0x00000020L
+#define SC_DEBUG_9__fifo_data_ready 0x00000020L
+#define SC_DEBUG_9__early_z_enable_MASK 0x00000040L
+#define SC_DEBUG_9__early_z_enable 0x00000040L
+#define SC_DEBUG_9__mask_state_MASK 0x00000180L
+#define SC_DEBUG_9__next_ez_mask_MASK 0x01fffe00L
+#define SC_DEBUG_9__mask_ready_MASK 0x02000000L
+#define SC_DEBUG_9__mask_ready 0x02000000L
+#define SC_DEBUG_9__drop_sample_MASK 0x04000000L
+#define SC_DEBUG_9__drop_sample 0x04000000L
+#define SC_DEBUG_9__fetch_new_sample_data_MASK 0x08000000L
+#define SC_DEBUG_9__fetch_new_sample_data 0x08000000L
+#define SC_DEBUG_9__fetch_new_ez_sample_mask_MASK 0x10000000L
+#define SC_DEBUG_9__fetch_new_ez_sample_mask 0x10000000L
+#define SC_DEBUG_9__pkr_fetch_new_sample_data_MASK 0x20000000L
+#define SC_DEBUG_9__pkr_fetch_new_sample_data 0x20000000L
+#define SC_DEBUG_9__pkr_fetch_new_prim_data_MASK 0x40000000L
+#define SC_DEBUG_9__pkr_fetch_new_prim_data 0x40000000L
+#define SC_DEBUG_9__trigger_MASK 0x80000000L
+#define SC_DEBUG_9__trigger 0x80000000L
+
+// SC_DEBUG_10
+#define SC_DEBUG_10__combined_sample_mask_MASK 0x0000ffffL
+#define SC_DEBUG_10__trigger_MASK 0x80000000L
+#define SC_DEBUG_10__trigger 0x80000000L
+
+// SC_DEBUG_11
+#define SC_DEBUG_11__ez_sample_data_ready_MASK 0x00000001L
+#define SC_DEBUG_11__ez_sample_data_ready 0x00000001L
+#define SC_DEBUG_11__pkr_fetch_new_sample_data_MASK 0x00000002L
+#define SC_DEBUG_11__pkr_fetch_new_sample_data 0x00000002L
+#define SC_DEBUG_11__ez_prim_data_ready_MASK 0x00000004L
+#define SC_DEBUG_11__ez_prim_data_ready 0x00000004L
+#define SC_DEBUG_11__pkr_fetch_new_prim_data_MASK 0x00000008L
+#define SC_DEBUG_11__pkr_fetch_new_prim_data 0x00000008L
+#define SC_DEBUG_11__iterator_input_fz_MASK 0x00000010L
+#define SC_DEBUG_11__iterator_input_fz 0x00000010L
+#define SC_DEBUG_11__packer_send_quads_MASK 0x00000020L
+#define SC_DEBUG_11__packer_send_quads 0x00000020L
+#define SC_DEBUG_11__packer_send_cmd_MASK 0x00000040L
+#define SC_DEBUG_11__packer_send_cmd 0x00000040L
+#define SC_DEBUG_11__packer_send_event_MASK 0x00000080L
+#define SC_DEBUG_11__packer_send_event 0x00000080L
+#define SC_DEBUG_11__next_state_MASK 0x00000700L
+#define SC_DEBUG_11__state_MASK 0x00003800L
+#define SC_DEBUG_11__stall_MASK 0x00004000L
+#define SC_DEBUG_11__stall 0x00004000L
+#define SC_DEBUG_11__trigger_MASK 0x80000000L
+#define SC_DEBUG_11__trigger 0x80000000L
+
+// SC_DEBUG_12
+#define SC_DEBUG_12__SQ_iterator_free_buff_MASK 0x00000001L
+#define SC_DEBUG_12__SQ_iterator_free_buff 0x00000001L
+#define SC_DEBUG_12__event_id_MASK 0x0000003eL
+#define SC_DEBUG_12__event_flag_MASK 0x00000040L
+#define SC_DEBUG_12__event_flag 0x00000040L
+#define SC_DEBUG_12__itercmdfifo_busy_nc_dly_MASK 0x00000080L
+#define SC_DEBUG_12__itercmdfifo_busy_nc_dly 0x00000080L
+#define SC_DEBUG_12__itercmdfifo_full_MASK 0x00000100L
+#define SC_DEBUG_12__itercmdfifo_full 0x00000100L
+#define SC_DEBUG_12__itercmdfifo_empty_MASK 0x00000200L
+#define SC_DEBUG_12__itercmdfifo_empty 0x00000200L
+#define SC_DEBUG_12__iter_ds_one_clk_command_MASK 0x00000400L
+#define SC_DEBUG_12__iter_ds_one_clk_command 0x00000400L
+#define SC_DEBUG_12__iter_ds_end_of_prim0_MASK 0x00000800L
+#define SC_DEBUG_12__iter_ds_end_of_prim0 0x00000800L
+#define SC_DEBUG_12__iter_ds_end_of_vector_MASK 0x00001000L
+#define SC_DEBUG_12__iter_ds_end_of_vector 0x00001000L
+#define SC_DEBUG_12__iter_qdhit0_MASK 0x00002000L
+#define SC_DEBUG_12__iter_qdhit0 0x00002000L
+#define SC_DEBUG_12__bc_use_centers_reg_MASK 0x00004000L
+#define SC_DEBUG_12__bc_use_centers_reg 0x00004000L
+#define SC_DEBUG_12__bc_output_xy_reg_MASK 0x00008000L
+#define SC_DEBUG_12__bc_output_xy_reg 0x00008000L
+#define SC_DEBUG_12__iter_phase_out_MASK 0x00030000L
+#define SC_DEBUG_12__iter_phase_reg_MASK 0x000c0000L
+#define SC_DEBUG_12__iterator_SP_valid_MASK 0x00100000L
+#define SC_DEBUG_12__iterator_SP_valid 0x00100000L
+#define SC_DEBUG_12__eopv_reg_MASK 0x00200000L
+#define SC_DEBUG_12__eopv_reg 0x00200000L
+#define SC_DEBUG_12__one_clk_cmd_reg_MASK 0x00400000L
+#define SC_DEBUG_12__one_clk_cmd_reg 0x00400000L
+#define SC_DEBUG_12__iter_dx_end_of_prim_MASK 0x00800000L
+#define SC_DEBUG_12__iter_dx_end_of_prim 0x00800000L
+#define SC_DEBUG_12__trigger_MASK 0x80000000L
+#define SC_DEBUG_12__trigger 0x80000000L
+
+// GFX_COPY_STATE
+#define GFX_COPY_STATE__SRC_STATE_ID_MASK 0x00000001L
+#define GFX_COPY_STATE__SRC_STATE_ID 0x00000001L
+
+// VGT_DRAW_INITIATOR
+#define VGT_DRAW_INITIATOR__PRIM_TYPE_MASK 0x0000003fL
+#define VGT_DRAW_INITIATOR__SOURCE_SELECT_MASK 0x000000c0L
+#define VGT_DRAW_INITIATOR__INDEX_SIZE_MASK 0x00000800L
+#define VGT_DRAW_INITIATOR__INDEX_SIZE 0x00000800L
+#define VGT_DRAW_INITIATOR__NOT_EOP_MASK 0x00001000L
+#define VGT_DRAW_INITIATOR__NOT_EOP 0x00001000L
+#define VGT_DRAW_INITIATOR__SMALL_INDEX_MASK 0x00002000L
+#define VGT_DRAW_INITIATOR__SMALL_INDEX 0x00002000L
+#define VGT_DRAW_INITIATOR__PRE_FETCH_CULL_ENABLE_MASK 0x00004000L
+#define VGT_DRAW_INITIATOR__PRE_FETCH_CULL_ENABLE 0x00004000L
+#define VGT_DRAW_INITIATOR__GRP_CULL_ENABLE_MASK 0x00008000L
+#define VGT_DRAW_INITIATOR__GRP_CULL_ENABLE 0x00008000L
+#define VGT_DRAW_INITIATOR__NUM_INDICES_MASK 0xffff0000L
+
+// VGT_EVENT_INITIATOR
+#define VGT_EVENT_INITIATOR__EVENT_TYPE_MASK 0x0000003fL
+
+// VGT_DMA_BASE
+#define VGT_DMA_BASE__BASE_ADDR_MASK 0xffffffffL
+
+// VGT_DMA_SIZE
+#define VGT_DMA_SIZE__NUM_WORDS_MASK 0x00ffffffL
+#define VGT_DMA_SIZE__SWAP_MODE_MASK 0xc0000000L
+
+// VGT_BIN_BASE
+#define VGT_BIN_BASE__BIN_BASE_ADDR_MASK 0xffffffffL
+
+// VGT_BIN_SIZE
+#define VGT_BIN_SIZE__NUM_WORDS_MASK 0x00ffffffL
+
+// VGT_CURRENT_BIN_ID_MIN
+#define VGT_CURRENT_BIN_ID_MIN__COLUMN_MASK 0x00000007L
+#define VGT_CURRENT_BIN_ID_MIN__ROW_MASK 0x00000038L
+#define VGT_CURRENT_BIN_ID_MIN__GUARD_BAND_MASK 0x000001c0L
+
+// VGT_CURRENT_BIN_ID_MAX
+#define VGT_CURRENT_BIN_ID_MAX__COLUMN_MASK 0x00000007L
+#define VGT_CURRENT_BIN_ID_MAX__ROW_MASK 0x00000038L
+#define VGT_CURRENT_BIN_ID_MAX__GUARD_BAND_MASK 0x000001c0L
+
+// VGT_IMMED_DATA
+#define VGT_IMMED_DATA__DATA_MASK 0xffffffffL
+
+// VGT_MAX_VTX_INDX
+#define VGT_MAX_VTX_INDX__MAX_INDX_MASK 0x00ffffffL
+
+// VGT_MIN_VTX_INDX
+#define VGT_MIN_VTX_INDX__MIN_INDX_MASK 0x00ffffffL
+
+// VGT_INDX_OFFSET
+#define VGT_INDX_OFFSET__INDX_OFFSET_MASK 0x00ffffffL
+
+// VGT_VERTEX_REUSE_BLOCK_CNTL
+#define VGT_VERTEX_REUSE_BLOCK_CNTL__VTX_REUSE_DEPTH_MASK 0x00000007L
+
+// VGT_OUT_DEALLOC_CNTL
+#define VGT_OUT_DEALLOC_CNTL__DEALLOC_DIST_MASK 0x00000003L
+
+// VGT_MULTI_PRIM_IB_RESET_INDX
+#define VGT_MULTI_PRIM_IB_RESET_INDX__RESET_INDX_MASK 0x00ffffffL
+
+// VGT_ENHANCE
+#define VGT_ENHANCE__MISC_MASK 0x0000ffffL
+
+// VGT_VTX_VECT_EJECT_REG
+#define VGT_VTX_VECT_EJECT_REG__PRIM_COUNT_MASK 0x0000001fL
+
+// VGT_LAST_COPY_STATE
+#define VGT_LAST_COPY_STATE__SRC_STATE_ID_MASK 0x00000001L
+#define VGT_LAST_COPY_STATE__SRC_STATE_ID 0x00000001L
+#define VGT_LAST_COPY_STATE__DST_STATE_ID_MASK 0x00010000L
+#define VGT_LAST_COPY_STATE__DST_STATE_ID 0x00010000L
+
+// VGT_DEBUG_CNTL
+#define VGT_DEBUG_CNTL__VGT_DEBUG_INDX_MASK 0x0000001fL
+
+// VGT_DEBUG_DATA
+#define VGT_DEBUG_DATA__DATA_MASK 0xffffffffL
+
+// VGT_CNTL_STATUS
+#define VGT_CNTL_STATUS__VGT_BUSY_MASK 0x00000001L
+#define VGT_CNTL_STATUS__VGT_BUSY 0x00000001L
+#define VGT_CNTL_STATUS__VGT_DMA_BUSY_MASK 0x00000002L
+#define VGT_CNTL_STATUS__VGT_DMA_BUSY 0x00000002L
+#define VGT_CNTL_STATUS__VGT_DMA_REQ_BUSY_MASK 0x00000004L
+#define VGT_CNTL_STATUS__VGT_DMA_REQ_BUSY 0x00000004L
+#define VGT_CNTL_STATUS__VGT_GRP_BUSY_MASK 0x00000008L
+#define VGT_CNTL_STATUS__VGT_GRP_BUSY 0x00000008L
+#define VGT_CNTL_STATUS__VGT_VR_BUSY_MASK 0x00000010L
+#define VGT_CNTL_STATUS__VGT_VR_BUSY 0x00000010L
+#define VGT_CNTL_STATUS__VGT_BIN_BUSY_MASK 0x00000020L
+#define VGT_CNTL_STATUS__VGT_BIN_BUSY 0x00000020L
+#define VGT_CNTL_STATUS__VGT_PT_BUSY_MASK 0x00000040L
+#define VGT_CNTL_STATUS__VGT_PT_BUSY 0x00000040L
+#define VGT_CNTL_STATUS__VGT_OUT_BUSY_MASK 0x00000080L
+#define VGT_CNTL_STATUS__VGT_OUT_BUSY 0x00000080L
+#define VGT_CNTL_STATUS__VGT_OUT_INDX_BUSY_MASK 0x00000100L
+#define VGT_CNTL_STATUS__VGT_OUT_INDX_BUSY 0x00000100L
+
+// VGT_DEBUG_REG0
+#define VGT_DEBUG_REG0__te_grp_busy_MASK 0x00000001L
+#define VGT_DEBUG_REG0__te_grp_busy 0x00000001L
+#define VGT_DEBUG_REG0__pt_grp_busy_MASK 0x00000002L
+#define VGT_DEBUG_REG0__pt_grp_busy 0x00000002L
+#define VGT_DEBUG_REG0__vr_grp_busy_MASK 0x00000004L
+#define VGT_DEBUG_REG0__vr_grp_busy 0x00000004L
+#define VGT_DEBUG_REG0__dma_request_busy_MASK 0x00000008L
+#define VGT_DEBUG_REG0__dma_request_busy 0x00000008L
+#define VGT_DEBUG_REG0__out_busy_MASK 0x00000010L
+#define VGT_DEBUG_REG0__out_busy 0x00000010L
+#define VGT_DEBUG_REG0__grp_backend_busy_MASK 0x00000020L
+#define VGT_DEBUG_REG0__grp_backend_busy 0x00000020L
+#define VGT_DEBUG_REG0__grp_busy_MASK 0x00000040L
+#define VGT_DEBUG_REG0__grp_busy 0x00000040L
+#define VGT_DEBUG_REG0__dma_busy_MASK 0x00000080L
+#define VGT_DEBUG_REG0__dma_busy 0x00000080L
+#define VGT_DEBUG_REG0__rbiu_dma_request_busy_MASK 0x00000100L
+#define VGT_DEBUG_REG0__rbiu_dma_request_busy 0x00000100L
+#define VGT_DEBUG_REG0__rbiu_busy_MASK 0x00000200L
+#define VGT_DEBUG_REG0__rbiu_busy 0x00000200L
+#define VGT_DEBUG_REG0__vgt_no_dma_busy_extended_MASK 0x00000400L
+#define VGT_DEBUG_REG0__vgt_no_dma_busy_extended 0x00000400L
+#define VGT_DEBUG_REG0__vgt_no_dma_busy_MASK 0x00000800L
+#define VGT_DEBUG_REG0__vgt_no_dma_busy 0x00000800L
+#define VGT_DEBUG_REG0__vgt_busy_extended_MASK 0x00001000L
+#define VGT_DEBUG_REG0__vgt_busy_extended 0x00001000L
+#define VGT_DEBUG_REG0__vgt_busy_MASK 0x00002000L
+#define VGT_DEBUG_REG0__vgt_busy 0x00002000L
+#define VGT_DEBUG_REG0__rbbm_skid_fifo_busy_out_MASK 0x00004000L
+#define VGT_DEBUG_REG0__rbbm_skid_fifo_busy_out 0x00004000L
+#define VGT_DEBUG_REG0__VGT_RBBM_no_dma_busy_MASK 0x00008000L
+#define VGT_DEBUG_REG0__VGT_RBBM_no_dma_busy 0x00008000L
+#define VGT_DEBUG_REG0__VGT_RBBM_busy_MASK 0x00010000L
+#define VGT_DEBUG_REG0__VGT_RBBM_busy 0x00010000L
+
+// VGT_DEBUG_REG1
+#define VGT_DEBUG_REG1__out_te_data_read_MASK 0x00000001L
+#define VGT_DEBUG_REG1__out_te_data_read 0x00000001L
+#define VGT_DEBUG_REG1__te_out_data_valid_MASK 0x00000002L
+#define VGT_DEBUG_REG1__te_out_data_valid 0x00000002L
+#define VGT_DEBUG_REG1__out_pt_prim_read_MASK 0x00000004L
+#define VGT_DEBUG_REG1__out_pt_prim_read 0x00000004L
+#define VGT_DEBUG_REG1__pt_out_prim_valid_MASK 0x00000008L
+#define VGT_DEBUG_REG1__pt_out_prim_valid 0x00000008L
+#define VGT_DEBUG_REG1__out_pt_data_read_MASK 0x00000010L
+#define VGT_DEBUG_REG1__out_pt_data_read 0x00000010L
+#define VGT_DEBUG_REG1__pt_out_indx_valid_MASK 0x00000020L
+#define VGT_DEBUG_REG1__pt_out_indx_valid 0x00000020L
+#define VGT_DEBUG_REG1__out_vr_prim_read_MASK 0x00000040L
+#define VGT_DEBUG_REG1__out_vr_prim_read 0x00000040L
+#define VGT_DEBUG_REG1__vr_out_prim_valid_MASK 0x00000080L
+#define VGT_DEBUG_REG1__vr_out_prim_valid 0x00000080L
+#define VGT_DEBUG_REG1__out_vr_indx_read_MASK 0x00000100L
+#define VGT_DEBUG_REG1__out_vr_indx_read 0x00000100L
+#define VGT_DEBUG_REG1__vr_out_indx_valid_MASK 0x00000200L
+#define VGT_DEBUG_REG1__vr_out_indx_valid 0x00000200L
+#define VGT_DEBUG_REG1__te_grp_read_MASK 0x00000400L
+#define VGT_DEBUG_REG1__te_grp_read 0x00000400L
+#define VGT_DEBUG_REG1__grp_te_valid_MASK 0x00000800L
+#define VGT_DEBUG_REG1__grp_te_valid 0x00000800L
+#define VGT_DEBUG_REG1__pt_grp_read_MASK 0x00001000L
+#define VGT_DEBUG_REG1__pt_grp_read 0x00001000L
+#define VGT_DEBUG_REG1__grp_pt_valid_MASK 0x00002000L
+#define VGT_DEBUG_REG1__grp_pt_valid 0x00002000L
+#define VGT_DEBUG_REG1__vr_grp_read_MASK 0x00004000L
+#define VGT_DEBUG_REG1__vr_grp_read 0x00004000L
+#define VGT_DEBUG_REG1__grp_vr_valid_MASK 0x00008000L
+#define VGT_DEBUG_REG1__grp_vr_valid 0x00008000L
+#define VGT_DEBUG_REG1__grp_dma_read_MASK 0x00010000L
+#define VGT_DEBUG_REG1__grp_dma_read 0x00010000L
+#define VGT_DEBUG_REG1__dma_grp_valid_MASK 0x00020000L
+#define VGT_DEBUG_REG1__dma_grp_valid 0x00020000L
+#define VGT_DEBUG_REG1__grp_rbiu_di_read_MASK 0x00040000L
+#define VGT_DEBUG_REG1__grp_rbiu_di_read 0x00040000L
+#define VGT_DEBUG_REG1__rbiu_grp_di_valid_MASK 0x00080000L
+#define VGT_DEBUG_REG1__rbiu_grp_di_valid 0x00080000L
+#define VGT_DEBUG_REG1__MH_VGT_rtr_MASK 0x00100000L
+#define VGT_DEBUG_REG1__MH_VGT_rtr 0x00100000L
+#define VGT_DEBUG_REG1__VGT_MH_send_MASK 0x00200000L
+#define VGT_DEBUG_REG1__VGT_MH_send 0x00200000L
+#define VGT_DEBUG_REG1__PA_VGT_clip_s_rtr_MASK 0x00400000L
+#define VGT_DEBUG_REG1__PA_VGT_clip_s_rtr 0x00400000L
+#define VGT_DEBUG_REG1__VGT_PA_clip_s_send_MASK 0x00800000L
+#define VGT_DEBUG_REG1__VGT_PA_clip_s_send 0x00800000L
+#define VGT_DEBUG_REG1__PA_VGT_clip_p_rtr_MASK 0x01000000L
+#define VGT_DEBUG_REG1__PA_VGT_clip_p_rtr 0x01000000L
+#define VGT_DEBUG_REG1__VGT_PA_clip_p_send_MASK 0x02000000L
+#define VGT_DEBUG_REG1__VGT_PA_clip_p_send 0x02000000L
+#define VGT_DEBUG_REG1__PA_VGT_clip_v_rtr_MASK 0x04000000L
+#define VGT_DEBUG_REG1__PA_VGT_clip_v_rtr 0x04000000L
+#define VGT_DEBUG_REG1__VGT_PA_clip_v_send_MASK 0x08000000L
+#define VGT_DEBUG_REG1__VGT_PA_clip_v_send 0x08000000L
+#define VGT_DEBUG_REG1__SQ_VGT_rtr_MASK 0x10000000L
+#define VGT_DEBUG_REG1__SQ_VGT_rtr 0x10000000L
+#define VGT_DEBUG_REG1__VGT_SQ_send_MASK 0x20000000L
+#define VGT_DEBUG_REG1__VGT_SQ_send 0x20000000L
+#define VGT_DEBUG_REG1__mh_vgt_tag_7_q_MASK 0x40000000L
+#define VGT_DEBUG_REG1__mh_vgt_tag_7_q 0x40000000L
+
+// VGT_DEBUG_REG3
+#define VGT_DEBUG_REG3__vgt_clk_en_MASK 0x00000001L
+#define VGT_DEBUG_REG3__vgt_clk_en 0x00000001L
+#define VGT_DEBUG_REG3__reg_fifos_clk_en_MASK 0x00000002L
+#define VGT_DEBUG_REG3__reg_fifos_clk_en 0x00000002L
+
+// VGT_DEBUG_REG6
+#define VGT_DEBUG_REG6__shifter_byte_count_q_MASK 0x0000001fL
+#define VGT_DEBUG_REG6__right_word_indx_q_MASK 0x000003e0L
+#define VGT_DEBUG_REG6__input_data_valid_MASK 0x00000400L
+#define VGT_DEBUG_REG6__input_data_valid 0x00000400L
+#define VGT_DEBUG_REG6__input_data_xfer_MASK 0x00000800L
+#define VGT_DEBUG_REG6__input_data_xfer 0x00000800L
+#define VGT_DEBUG_REG6__next_shift_is_vect_1_q_MASK 0x00001000L
+#define VGT_DEBUG_REG6__next_shift_is_vect_1_q 0x00001000L
+#define VGT_DEBUG_REG6__next_shift_is_vect_1_d_MASK 0x00002000L
+#define VGT_DEBUG_REG6__next_shift_is_vect_1_d 0x00002000L
+#define VGT_DEBUG_REG6__next_shift_is_vect_1_pre_d_MASK 0x00004000L
+#define VGT_DEBUG_REG6__next_shift_is_vect_1_pre_d 0x00004000L
+#define VGT_DEBUG_REG6__space_avail_from_shift_MASK 0x00008000L
+#define VGT_DEBUG_REG6__space_avail_from_shift 0x00008000L
+#define VGT_DEBUG_REG6__shifter_first_load_MASK 0x00010000L
+#define VGT_DEBUG_REG6__shifter_first_load 0x00010000L
+#define VGT_DEBUG_REG6__di_state_sel_q_MASK 0x00020000L
+#define VGT_DEBUG_REG6__di_state_sel_q 0x00020000L
+#define VGT_DEBUG_REG6__shifter_waiting_for_first_load_q_MASK 0x00040000L
+#define VGT_DEBUG_REG6__shifter_waiting_for_first_load_q 0x00040000L
+#define VGT_DEBUG_REG6__di_first_group_flag_q_MASK 0x00080000L
+#define VGT_DEBUG_REG6__di_first_group_flag_q 0x00080000L
+#define VGT_DEBUG_REG6__di_event_flag_q_MASK 0x00100000L
+#define VGT_DEBUG_REG6__di_event_flag_q 0x00100000L
+#define VGT_DEBUG_REG6__read_draw_initiator_MASK 0x00200000L
+#define VGT_DEBUG_REG6__read_draw_initiator 0x00200000L
+#define VGT_DEBUG_REG6__loading_di_requires_shifter_MASK 0x00400000L
+#define VGT_DEBUG_REG6__loading_di_requires_shifter 0x00400000L
+#define VGT_DEBUG_REG6__last_shift_of_packet_MASK 0x00800000L
+#define VGT_DEBUG_REG6__last_shift_of_packet 0x00800000L
+#define VGT_DEBUG_REG6__last_decr_of_packet_MASK 0x01000000L
+#define VGT_DEBUG_REG6__last_decr_of_packet 0x01000000L
+#define VGT_DEBUG_REG6__extract_vector_MASK 0x02000000L
+#define VGT_DEBUG_REG6__extract_vector 0x02000000L
+#define VGT_DEBUG_REG6__shift_vect_rtr_MASK 0x04000000L
+#define VGT_DEBUG_REG6__shift_vect_rtr 0x04000000L
+#define VGT_DEBUG_REG6__destination_rtr_MASK 0x08000000L
+#define VGT_DEBUG_REG6__destination_rtr 0x08000000L
+#define VGT_DEBUG_REG6__grp_trigger_MASK 0x10000000L
+#define VGT_DEBUG_REG6__grp_trigger 0x10000000L
+
+// VGT_DEBUG_REG7
+#define VGT_DEBUG_REG7__di_index_counter_q_MASK 0x0000ffffL
+#define VGT_DEBUG_REG7__shift_amount_no_extract_MASK 0x000f0000L
+#define VGT_DEBUG_REG7__shift_amount_extract_MASK 0x00f00000L
+#define VGT_DEBUG_REG7__di_prim_type_q_MASK 0x3f000000L
+#define VGT_DEBUG_REG7__current_source_sel_MASK 0xc0000000L
+
+// VGT_DEBUG_REG8
+#define VGT_DEBUG_REG8__current_source_sel_MASK 0x00000003L
+#define VGT_DEBUG_REG8__left_word_indx_q_MASK 0x0000007cL
+#define VGT_DEBUG_REG8__input_data_cnt_MASK 0x00000f80L
+#define VGT_DEBUG_REG8__input_data_lsw_MASK 0x0001f000L
+#define VGT_DEBUG_REG8__input_data_msw_MASK 0x003e0000L
+#define VGT_DEBUG_REG8__next_small_stride_shift_limit_q_MASK 0x07c00000L
+#define VGT_DEBUG_REG8__current_small_stride_shift_limit_q_MASK 0xf8000000L
+
+// VGT_DEBUG_REG9
+#define VGT_DEBUG_REG9__next_stride_q_MASK 0x0000001fL
+#define VGT_DEBUG_REG9__next_stride_d_MASK 0x000003e0L
+#define VGT_DEBUG_REG9__current_shift_q_MASK 0x00007c00L
+#define VGT_DEBUG_REG9__current_shift_d_MASK 0x000f8000L
+#define VGT_DEBUG_REG9__current_stride_q_MASK 0x01f00000L
+#define VGT_DEBUG_REG9__current_stride_d_MASK 0x3e000000L
+#define VGT_DEBUG_REG9__grp_trigger_MASK 0x40000000L
+#define VGT_DEBUG_REG9__grp_trigger 0x40000000L
+
+// VGT_DEBUG_REG10
+#define VGT_DEBUG_REG10__temp_derived_di_prim_type_t0_MASK 0x00000001L
+#define VGT_DEBUG_REG10__temp_derived_di_prim_type_t0 0x00000001L
+#define VGT_DEBUG_REG10__temp_derived_di_small_index_t0_MASK 0x00000002L
+#define VGT_DEBUG_REG10__temp_derived_di_small_index_t0 0x00000002L
+#define VGT_DEBUG_REG10__temp_derived_di_cull_enable_t0_MASK 0x00000004L
+#define VGT_DEBUG_REG10__temp_derived_di_cull_enable_t0 0x00000004L
+#define VGT_DEBUG_REG10__temp_derived_di_pre_fetch_cull_enable_t0_MASK 0x00000008L
+#define VGT_DEBUG_REG10__temp_derived_di_pre_fetch_cull_enable_t0 0x00000008L
+#define VGT_DEBUG_REG10__di_state_sel_q_MASK 0x00000010L
+#define VGT_DEBUG_REG10__di_state_sel_q 0x00000010L
+#define VGT_DEBUG_REG10__last_decr_of_packet_MASK 0x00000020L
+#define VGT_DEBUG_REG10__last_decr_of_packet 0x00000020L
+#define VGT_DEBUG_REG10__bin_valid_MASK 0x00000040L
+#define VGT_DEBUG_REG10__bin_valid 0x00000040L
+#define VGT_DEBUG_REG10__read_block_MASK 0x00000080L
+#define VGT_DEBUG_REG10__read_block 0x00000080L
+#define VGT_DEBUG_REG10__grp_bgrp_last_bit_read_MASK 0x00000100L
+#define VGT_DEBUG_REG10__grp_bgrp_last_bit_read 0x00000100L
+#define VGT_DEBUG_REG10__last_bit_enable_q_MASK 0x00000200L
+#define VGT_DEBUG_REG10__last_bit_enable_q 0x00000200L
+#define VGT_DEBUG_REG10__last_bit_end_di_q_MASK 0x00000400L
+#define VGT_DEBUG_REG10__last_bit_end_di_q 0x00000400L
+#define VGT_DEBUG_REG10__selected_data_MASK 0x0007f800L
+#define VGT_DEBUG_REG10__mask_input_data_MASK 0x07f80000L
+#define VGT_DEBUG_REG10__gap_q_MASK 0x08000000L
+#define VGT_DEBUG_REG10__gap_q 0x08000000L
+#define VGT_DEBUG_REG10__temp_mini_reset_z_MASK 0x10000000L
+#define VGT_DEBUG_REG10__temp_mini_reset_z 0x10000000L
+#define VGT_DEBUG_REG10__temp_mini_reset_y_MASK 0x20000000L
+#define VGT_DEBUG_REG10__temp_mini_reset_y 0x20000000L
+#define VGT_DEBUG_REG10__temp_mini_reset_x_MASK 0x40000000L
+#define VGT_DEBUG_REG10__temp_mini_reset_x 0x40000000L
+#define VGT_DEBUG_REG10__grp_trigger_MASK 0x80000000L
+#define VGT_DEBUG_REG10__grp_trigger 0x80000000L
+
+// VGT_DEBUG_REG12
+#define VGT_DEBUG_REG12__shifter_byte_count_q_MASK 0x0000001fL
+#define VGT_DEBUG_REG12__right_word_indx_q_MASK 0x000003e0L
+#define VGT_DEBUG_REG12__input_data_valid_MASK 0x00000400L
+#define VGT_DEBUG_REG12__input_data_valid 0x00000400L
+#define VGT_DEBUG_REG12__input_data_xfer_MASK 0x00000800L
+#define VGT_DEBUG_REG12__input_data_xfer 0x00000800L
+#define VGT_DEBUG_REG12__next_shift_is_vect_1_q_MASK 0x00001000L
+#define VGT_DEBUG_REG12__next_shift_is_vect_1_q 0x00001000L
+#define VGT_DEBUG_REG12__next_shift_is_vect_1_d_MASK 0x00002000L
+#define VGT_DEBUG_REG12__next_shift_is_vect_1_d 0x00002000L
+#define VGT_DEBUG_REG12__next_shift_is_vect_1_pre_d_MASK 0x00004000L
+#define VGT_DEBUG_REG12__next_shift_is_vect_1_pre_d 0x00004000L
+#define VGT_DEBUG_REG12__space_avail_from_shift_MASK 0x00008000L
+#define VGT_DEBUG_REG12__space_avail_from_shift 0x00008000L
+#define VGT_DEBUG_REG12__shifter_first_load_MASK 0x00010000L
+#define VGT_DEBUG_REG12__shifter_first_load 0x00010000L
+#define VGT_DEBUG_REG12__di_state_sel_q_MASK 0x00020000L
+#define VGT_DEBUG_REG12__di_state_sel_q 0x00020000L
+#define VGT_DEBUG_REG12__shifter_waiting_for_first_load_q_MASK 0x00040000L
+#define VGT_DEBUG_REG12__shifter_waiting_for_first_load_q 0x00040000L
+#define VGT_DEBUG_REG12__di_first_group_flag_q_MASK 0x00080000L
+#define VGT_DEBUG_REG12__di_first_group_flag_q 0x00080000L
+#define VGT_DEBUG_REG12__di_event_flag_q_MASK 0x00100000L
+#define VGT_DEBUG_REG12__di_event_flag_q 0x00100000L
+#define VGT_DEBUG_REG12__read_draw_initiator_MASK 0x00200000L
+#define VGT_DEBUG_REG12__read_draw_initiator 0x00200000L
+#define VGT_DEBUG_REG12__loading_di_requires_shifter_MASK 0x00400000L
+#define VGT_DEBUG_REG12__loading_di_requires_shifter 0x00400000L
+#define VGT_DEBUG_REG12__last_shift_of_packet_MASK 0x00800000L
+#define VGT_DEBUG_REG12__last_shift_of_packet 0x00800000L
+#define VGT_DEBUG_REG12__last_decr_of_packet_MASK 0x01000000L
+#define VGT_DEBUG_REG12__last_decr_of_packet 0x01000000L
+#define VGT_DEBUG_REG12__extract_vector_MASK 0x02000000L
+#define VGT_DEBUG_REG12__extract_vector 0x02000000L
+#define VGT_DEBUG_REG12__shift_vect_rtr_MASK 0x04000000L
+#define VGT_DEBUG_REG12__shift_vect_rtr 0x04000000L
+#define VGT_DEBUG_REG12__destination_rtr_MASK 0x08000000L
+#define VGT_DEBUG_REG12__destination_rtr 0x08000000L
+#define VGT_DEBUG_REG12__bgrp_trigger_MASK 0x10000000L
+#define VGT_DEBUG_REG12__bgrp_trigger 0x10000000L
+
+// VGT_DEBUG_REG13
+#define VGT_DEBUG_REG13__di_index_counter_q_MASK 0x0000ffffL
+#define VGT_DEBUG_REG13__shift_amount_no_extract_MASK 0x000f0000L
+#define VGT_DEBUG_REG13__shift_amount_extract_MASK 0x00f00000L
+#define VGT_DEBUG_REG13__di_prim_type_q_MASK 0x3f000000L
+#define VGT_DEBUG_REG13__current_source_sel_MASK 0xc0000000L
+
+// VGT_DEBUG_REG14
+#define VGT_DEBUG_REG14__current_source_sel_MASK 0x00000003L
+#define VGT_DEBUG_REG14__left_word_indx_q_MASK 0x0000007cL
+#define VGT_DEBUG_REG14__input_data_cnt_MASK 0x00000f80L
+#define VGT_DEBUG_REG14__input_data_lsw_MASK 0x0001f000L
+#define VGT_DEBUG_REG14__input_data_msw_MASK 0x003e0000L
+#define VGT_DEBUG_REG14__next_small_stride_shift_limit_q_MASK 0x07c00000L
+#define VGT_DEBUG_REG14__current_small_stride_shift_limit_q_MASK 0xf8000000L
+
+// VGT_DEBUG_REG15
+#define VGT_DEBUG_REG15__next_stride_q_MASK 0x0000001fL
+#define VGT_DEBUG_REG15__next_stride_d_MASK 0x000003e0L
+#define VGT_DEBUG_REG15__current_shift_q_MASK 0x00007c00L
+#define VGT_DEBUG_REG15__current_shift_d_MASK 0x000f8000L
+#define VGT_DEBUG_REG15__current_stride_q_MASK 0x01f00000L
+#define VGT_DEBUG_REG15__current_stride_d_MASK 0x3e000000L
+#define VGT_DEBUG_REG15__bgrp_trigger_MASK 0x40000000L
+#define VGT_DEBUG_REG15__bgrp_trigger 0x40000000L
+
+// VGT_DEBUG_REG16
+#define VGT_DEBUG_REG16__bgrp_cull_fetch_fifo_full_MASK 0x00000001L
+#define VGT_DEBUG_REG16__bgrp_cull_fetch_fifo_full 0x00000001L
+#define VGT_DEBUG_REG16__bgrp_cull_fetch_fifo_empty_MASK 0x00000002L
+#define VGT_DEBUG_REG16__bgrp_cull_fetch_fifo_empty 0x00000002L
+#define VGT_DEBUG_REG16__dma_bgrp_cull_fetch_read_MASK 0x00000004L
+#define VGT_DEBUG_REG16__dma_bgrp_cull_fetch_read 0x00000004L
+#define VGT_DEBUG_REG16__bgrp_cull_fetch_fifo_we_MASK 0x00000008L
+#define VGT_DEBUG_REG16__bgrp_cull_fetch_fifo_we 0x00000008L
+#define VGT_DEBUG_REG16__bgrp_byte_mask_fifo_full_MASK 0x00000010L
+#define VGT_DEBUG_REG16__bgrp_byte_mask_fifo_full 0x00000010L
+#define VGT_DEBUG_REG16__bgrp_byte_mask_fifo_empty_MASK 0x00000020L
+#define VGT_DEBUG_REG16__bgrp_byte_mask_fifo_empty 0x00000020L
+#define VGT_DEBUG_REG16__bgrp_byte_mask_fifo_re_q_MASK 0x00000040L
+#define VGT_DEBUG_REG16__bgrp_byte_mask_fifo_re_q 0x00000040L
+#define VGT_DEBUG_REG16__bgrp_byte_mask_fifo_we_MASK 0x00000080L
+#define VGT_DEBUG_REG16__bgrp_byte_mask_fifo_we 0x00000080L
+#define VGT_DEBUG_REG16__bgrp_dma_mask_kill_MASK 0x00000100L
+#define VGT_DEBUG_REG16__bgrp_dma_mask_kill 0x00000100L
+#define VGT_DEBUG_REG16__bgrp_grp_bin_valid_MASK 0x00000200L
+#define VGT_DEBUG_REG16__bgrp_grp_bin_valid 0x00000200L
+#define VGT_DEBUG_REG16__rst_last_bit_MASK 0x00000400L
+#define VGT_DEBUG_REG16__rst_last_bit 0x00000400L
+#define VGT_DEBUG_REG16__current_state_q_MASK 0x00000800L
+#define VGT_DEBUG_REG16__current_state_q 0x00000800L
+#define VGT_DEBUG_REG16__old_state_q_MASK 0x00001000L
+#define VGT_DEBUG_REG16__old_state_q 0x00001000L
+#define VGT_DEBUG_REG16__old_state_en_MASK 0x00002000L
+#define VGT_DEBUG_REG16__old_state_en 0x00002000L
+#define VGT_DEBUG_REG16__prev_last_bit_q_MASK 0x00004000L
+#define VGT_DEBUG_REG16__prev_last_bit_q 0x00004000L
+#define VGT_DEBUG_REG16__dbl_last_bit_q_MASK 0x00008000L
+#define VGT_DEBUG_REG16__dbl_last_bit_q 0x00008000L
+#define VGT_DEBUG_REG16__last_bit_block_q_MASK 0x00010000L
+#define VGT_DEBUG_REG16__last_bit_block_q 0x00010000L
+#define VGT_DEBUG_REG16__ast_bit_block2_q_MASK 0x00020000L
+#define VGT_DEBUG_REG16__ast_bit_block2_q 0x00020000L
+#define VGT_DEBUG_REG16__load_empty_reg_MASK 0x00040000L
+#define VGT_DEBUG_REG16__load_empty_reg 0x00040000L
+#define VGT_DEBUG_REG16__bgrp_grp_byte_mask_rdata_MASK 0x07f80000L
+#define VGT_DEBUG_REG16__dma_bgrp_dma_data_fifo_rptr_MASK 0x18000000L
+#define VGT_DEBUG_REG16__top_di_pre_fetch_cull_enable_MASK 0x20000000L
+#define VGT_DEBUG_REG16__top_di_pre_fetch_cull_enable 0x20000000L
+#define VGT_DEBUG_REG16__top_di_grp_cull_enable_q_MASK 0x40000000L
+#define VGT_DEBUG_REG16__top_di_grp_cull_enable_q 0x40000000L
+#define VGT_DEBUG_REG16__bgrp_trigger_MASK 0x80000000L
+#define VGT_DEBUG_REG16__bgrp_trigger 0x80000000L
+
+// VGT_DEBUG_REG17
+#define VGT_DEBUG_REG17__save_read_q_MASK 0x00000001L
+#define VGT_DEBUG_REG17__save_read_q 0x00000001L
+#define VGT_DEBUG_REG17__extend_read_q_MASK 0x00000002L
+#define VGT_DEBUG_REG17__extend_read_q 0x00000002L
+#define VGT_DEBUG_REG17__grp_indx_size_MASK 0x0000000cL
+#define VGT_DEBUG_REG17__cull_prim_true_MASK 0x00000010L
+#define VGT_DEBUG_REG17__cull_prim_true 0x00000010L
+#define VGT_DEBUG_REG17__reset_bit2_q_MASK 0x00000020L
+#define VGT_DEBUG_REG17__reset_bit2_q 0x00000020L
+#define VGT_DEBUG_REG17__reset_bit1_q_MASK 0x00000040L
+#define VGT_DEBUG_REG17__reset_bit1_q 0x00000040L
+#define VGT_DEBUG_REG17__first_reg_first_q_MASK 0x00000080L
+#define VGT_DEBUG_REG17__first_reg_first_q 0x00000080L
+#define VGT_DEBUG_REG17__check_second_reg_MASK 0x00000100L
+#define VGT_DEBUG_REG17__check_second_reg 0x00000100L
+#define VGT_DEBUG_REG17__check_first_reg_MASK 0x00000200L
+#define VGT_DEBUG_REG17__check_first_reg 0x00000200L
+#define VGT_DEBUG_REG17__bgrp_cull_fetch_fifo_wdata_MASK 0x00000400L
+#define VGT_DEBUG_REG17__bgrp_cull_fetch_fifo_wdata 0x00000400L
+#define VGT_DEBUG_REG17__save_cull_fetch_data2_q_MASK 0x00000800L
+#define VGT_DEBUG_REG17__save_cull_fetch_data2_q 0x00000800L
+#define VGT_DEBUG_REG17__save_cull_fetch_data1_q_MASK 0x00001000L
+#define VGT_DEBUG_REG17__save_cull_fetch_data1_q 0x00001000L
+#define VGT_DEBUG_REG17__save_byte_mask_data2_q_MASK 0x00002000L
+#define VGT_DEBUG_REG17__save_byte_mask_data2_q 0x00002000L
+#define VGT_DEBUG_REG17__save_byte_mask_data1_q_MASK 0x00004000L
+#define VGT_DEBUG_REG17__save_byte_mask_data1_q 0x00004000L
+#define VGT_DEBUG_REG17__to_second_reg_q_MASK 0x00008000L
+#define VGT_DEBUG_REG17__to_second_reg_q 0x00008000L
+#define VGT_DEBUG_REG17__roll_over_msk_q_MASK 0x00010000L
+#define VGT_DEBUG_REG17__roll_over_msk_q 0x00010000L
+#define VGT_DEBUG_REG17__max_msk_ptr_q_MASK 0x00fe0000L
+#define VGT_DEBUG_REG17__min_msk_ptr_q_MASK 0x7f000000L
+#define VGT_DEBUG_REG17__bgrp_trigger_MASK 0x80000000L
+#define VGT_DEBUG_REG17__bgrp_trigger 0x80000000L
+
+// VGT_DEBUG_REG18
+#define VGT_DEBUG_REG18__dma_data_fifo_mem_raddr_MASK 0x0000003fL
+#define VGT_DEBUG_REG18__dma_data_fifo_mem_waddr_MASK 0x00000fc0L
+#define VGT_DEBUG_REG18__dma_bgrp_byte_mask_fifo_re_MASK 0x00001000L
+#define VGT_DEBUG_REG18__dma_bgrp_byte_mask_fifo_re 0x00001000L
+#define VGT_DEBUG_REG18__dma_bgrp_dma_data_fifo_rptr_MASK 0x00006000L
+#define VGT_DEBUG_REG18__dma_mem_full_MASK 0x00008000L
+#define VGT_DEBUG_REG18__dma_mem_full 0x00008000L
+#define VGT_DEBUG_REG18__dma_ram_re_MASK 0x00010000L
+#define VGT_DEBUG_REG18__dma_ram_re 0x00010000L
+#define VGT_DEBUG_REG18__dma_ram_we_MASK 0x00020000L
+#define VGT_DEBUG_REG18__dma_ram_we 0x00020000L
+#define VGT_DEBUG_REG18__dma_mem_empty_MASK 0x00040000L
+#define VGT_DEBUG_REG18__dma_mem_empty 0x00040000L
+#define VGT_DEBUG_REG18__dma_data_fifo_mem_re_MASK 0x00080000L
+#define VGT_DEBUG_REG18__dma_data_fifo_mem_re 0x00080000L
+#define VGT_DEBUG_REG18__dma_data_fifo_mem_we_MASK 0x00100000L
+#define VGT_DEBUG_REG18__dma_data_fifo_mem_we 0x00100000L
+#define VGT_DEBUG_REG18__bin_mem_full_MASK 0x00200000L
+#define VGT_DEBUG_REG18__bin_mem_full 0x00200000L
+#define VGT_DEBUG_REG18__bin_ram_we_MASK 0x00400000L
+#define VGT_DEBUG_REG18__bin_ram_we 0x00400000L
+#define VGT_DEBUG_REG18__bin_ram_re_MASK 0x00800000L
+#define VGT_DEBUG_REG18__bin_ram_re 0x00800000L
+#define VGT_DEBUG_REG18__bin_mem_empty_MASK 0x01000000L
+#define VGT_DEBUG_REG18__bin_mem_empty 0x01000000L
+#define VGT_DEBUG_REG18__start_bin_req_MASK 0x02000000L
+#define VGT_DEBUG_REG18__start_bin_req 0x02000000L
+#define VGT_DEBUG_REG18__fetch_cull_not_used_MASK 0x04000000L
+#define VGT_DEBUG_REG18__fetch_cull_not_used 0x04000000L
+#define VGT_DEBUG_REG18__dma_req_xfer_MASK 0x08000000L
+#define VGT_DEBUG_REG18__dma_req_xfer 0x08000000L
+#define VGT_DEBUG_REG18__have_valid_bin_req_MASK 0x10000000L
+#define VGT_DEBUG_REG18__have_valid_bin_req 0x10000000L
+#define VGT_DEBUG_REG18__have_valid_dma_req_MASK 0x20000000L
+#define VGT_DEBUG_REG18__have_valid_dma_req 0x20000000L
+#define VGT_DEBUG_REG18__bgrp_dma_di_grp_cull_enable_MASK 0x40000000L
+#define VGT_DEBUG_REG18__bgrp_dma_di_grp_cull_enable 0x40000000L
+#define VGT_DEBUG_REG18__bgrp_dma_di_pre_fetch_cull_enable_MASK 0x80000000L
+#define VGT_DEBUG_REG18__bgrp_dma_di_pre_fetch_cull_enable 0x80000000L
+
+// VGT_DEBUG_REG20
+#define VGT_DEBUG_REG20__prim_side_indx_valid_MASK 0x00000001L
+#define VGT_DEBUG_REG20__prim_side_indx_valid 0x00000001L
+#define VGT_DEBUG_REG20__indx_side_fifo_empty_MASK 0x00000002L
+#define VGT_DEBUG_REG20__indx_side_fifo_empty 0x00000002L
+#define VGT_DEBUG_REG20__indx_side_fifo_re_MASK 0x00000004L
+#define VGT_DEBUG_REG20__indx_side_fifo_re 0x00000004L
+#define VGT_DEBUG_REG20__indx_side_fifo_we_MASK 0x00000008L
+#define VGT_DEBUG_REG20__indx_side_fifo_we 0x00000008L
+#define VGT_DEBUG_REG20__indx_side_fifo_full_MASK 0x00000010L
+#define VGT_DEBUG_REG20__indx_side_fifo_full 0x00000010L
+#define VGT_DEBUG_REG20__prim_buffer_empty_MASK 0x00000020L
+#define VGT_DEBUG_REG20__prim_buffer_empty 0x00000020L
+#define VGT_DEBUG_REG20__prim_buffer_re_MASK 0x00000040L
+#define VGT_DEBUG_REG20__prim_buffer_re 0x00000040L
+#define VGT_DEBUG_REG20__prim_buffer_we_MASK 0x00000080L
+#define VGT_DEBUG_REG20__prim_buffer_we 0x00000080L
+#define VGT_DEBUG_REG20__prim_buffer_full_MASK 0x00000100L
+#define VGT_DEBUG_REG20__prim_buffer_full 0x00000100L
+#define VGT_DEBUG_REG20__indx_buffer_empty_MASK 0x00000200L
+#define VGT_DEBUG_REG20__indx_buffer_empty 0x00000200L
+#define VGT_DEBUG_REG20__indx_buffer_re_MASK 0x00000400L
+#define VGT_DEBUG_REG20__indx_buffer_re 0x00000400L
+#define VGT_DEBUG_REG20__indx_buffer_we_MASK 0x00000800L
+#define VGT_DEBUG_REG20__indx_buffer_we 0x00000800L
+#define VGT_DEBUG_REG20__indx_buffer_full_MASK 0x00001000L
+#define VGT_DEBUG_REG20__indx_buffer_full 0x00001000L
+#define VGT_DEBUG_REG20__hold_prim_MASK 0x00002000L
+#define VGT_DEBUG_REG20__hold_prim 0x00002000L
+#define VGT_DEBUG_REG20__sent_cnt_MASK 0x0003c000L
+#define VGT_DEBUG_REG20__start_of_vtx_vector_MASK 0x00040000L
+#define VGT_DEBUG_REG20__start_of_vtx_vector 0x00040000L
+#define VGT_DEBUG_REG20__clip_s_pre_hold_prim_MASK 0x00080000L
+#define VGT_DEBUG_REG20__clip_s_pre_hold_prim 0x00080000L
+#define VGT_DEBUG_REG20__clip_p_pre_hold_prim_MASK 0x00100000L
+#define VGT_DEBUG_REG20__clip_p_pre_hold_prim 0x00100000L
+#define VGT_DEBUG_REG20__buffered_prim_type_event_MASK 0x03e00000L
+#define VGT_DEBUG_REG20__out_trigger_MASK 0x04000000L
+#define VGT_DEBUG_REG20__out_trigger 0x04000000L
+
+// VGT_DEBUG_REG21
+#define VGT_DEBUG_REG21__null_terminate_vtx_vector_MASK 0x00000001L
+#define VGT_DEBUG_REG21__null_terminate_vtx_vector 0x00000001L
+#define VGT_DEBUG_REG21__prim_end_of_vtx_vect_flags_MASK 0x0000000eL
+#define VGT_DEBUG_REG21__alloc_counter_q_MASK 0x00000070L
+#define VGT_DEBUG_REG21__curr_slot_in_vtx_vect_q_MASK 0x00000380L
+#define VGT_DEBUG_REG21__int_vtx_counter_q_MASK 0x00003c00L
+#define VGT_DEBUG_REG21__curr_dealloc_distance_q_MASK 0x0003c000L
+#define VGT_DEBUG_REG21__new_packet_q_MASK 0x00040000L
+#define VGT_DEBUG_REG21__new_packet_q 0x00040000L
+#define VGT_DEBUG_REG21__new_allocate_q_MASK 0x00080000L
+#define VGT_DEBUG_REG21__new_allocate_q 0x00080000L
+#define VGT_DEBUG_REG21__num_new_unique_rel_indx_MASK 0x00300000L
+#define VGT_DEBUG_REG21__inserted_null_prim_q_MASK 0x00400000L
+#define VGT_DEBUG_REG21__inserted_null_prim_q 0x00400000L
+#define VGT_DEBUG_REG21__insert_null_prim_MASK 0x00800000L
+#define VGT_DEBUG_REG21__insert_null_prim 0x00800000L
+#define VGT_DEBUG_REG21__buffered_prim_eop_mux_MASK 0x01000000L
+#define VGT_DEBUG_REG21__buffered_prim_eop_mux 0x01000000L
+#define VGT_DEBUG_REG21__prim_buffer_empty_mux_MASK 0x02000000L
+#define VGT_DEBUG_REG21__prim_buffer_empty_mux 0x02000000L
+#define VGT_DEBUG_REG21__buffered_thread_size_MASK 0x04000000L
+#define VGT_DEBUG_REG21__buffered_thread_size 0x04000000L
+#define VGT_DEBUG_REG21__out_trigger_MASK 0x80000000L
+#define VGT_DEBUG_REG21__out_trigger 0x80000000L
+
+// VGT_CRC_SQ_DATA
+#define VGT_CRC_SQ_DATA__CRC_MASK 0xffffffffL
+
+// VGT_CRC_SQ_CTRL
+#define VGT_CRC_SQ_CTRL__CRC_MASK 0xffffffffL
+
+// VGT_PERFCOUNTER0_SELECT
+#define VGT_PERFCOUNTER0_SELECT__PERF_SEL_MASK 0x000000ffL
+
+// VGT_PERFCOUNTER1_SELECT
+#define VGT_PERFCOUNTER1_SELECT__PERF_SEL_MASK 0x000000ffL
+
+// VGT_PERFCOUNTER2_SELECT
+#define VGT_PERFCOUNTER2_SELECT__PERF_SEL_MASK 0x000000ffL
+
+// VGT_PERFCOUNTER3_SELECT
+#define VGT_PERFCOUNTER3_SELECT__PERF_SEL_MASK 0x000000ffL
+
+// VGT_PERFCOUNTER0_LOW
+#define VGT_PERFCOUNTER0_LOW__PERF_COUNT_MASK 0xffffffffL
+
+// VGT_PERFCOUNTER1_LOW
+#define VGT_PERFCOUNTER1_LOW__PERF_COUNT_MASK 0xffffffffL
+
+// VGT_PERFCOUNTER2_LOW
+#define VGT_PERFCOUNTER2_LOW__PERF_COUNT_MASK 0xffffffffL
+
+// VGT_PERFCOUNTER3_LOW
+#define VGT_PERFCOUNTER3_LOW__PERF_COUNT_MASK 0xffffffffL
+
+// VGT_PERFCOUNTER0_HI
+#define VGT_PERFCOUNTER0_HI__PERF_COUNT_MASK 0x0000ffffL
+
+// VGT_PERFCOUNTER1_HI
+#define VGT_PERFCOUNTER1_HI__PERF_COUNT_MASK 0x0000ffffL
+
+// VGT_PERFCOUNTER2_HI
+#define VGT_PERFCOUNTER2_HI__PERF_COUNT_MASK 0x0000ffffL
+
+// VGT_PERFCOUNTER3_HI
+#define VGT_PERFCOUNTER3_HI__PERF_COUNT_MASK 0x0000ffffL
+
+// TC_CNTL_STATUS
+#define TC_CNTL_STATUS__L2_INVALIDATE_MASK 0x00000001L
+#define TC_CNTL_STATUS__L2_INVALIDATE 0x00000001L
+#define TC_CNTL_STATUS__TC_L2_HIT_MISS_MASK 0x000c0000L
+#define TC_CNTL_STATUS__TC_BUSY_MASK 0x80000000L
+#define TC_CNTL_STATUS__TC_BUSY 0x80000000L
+
+// TCR_CHICKEN
+#define TCR_CHICKEN__SPARE_MASK 0xffffffffL
+
+// TCF_CHICKEN
+#define TCF_CHICKEN__SPARE_MASK 0xffffffffL
+
+// TCM_CHICKEN
+#define TCM_CHICKEN__TCO_READ_LATENCY_FIFO_PROG_DEPTH_MASK 0x000000ffL
+#define TCM_CHICKEN__ETC_COLOR_ENDIAN_MASK 0x00000100L
+#define TCM_CHICKEN__ETC_COLOR_ENDIAN 0x00000100L
+#define TCM_CHICKEN__SPARE_MASK 0xfffffe00L
+
+// TCR_PERFCOUNTER0_SELECT
+#define TCR_PERFCOUNTER0_SELECT__PERFCOUNTER_SELECT_MASK 0x000000ffL
+
+// TCR_PERFCOUNTER1_SELECT
+#define TCR_PERFCOUNTER1_SELECT__PERFCOUNTER_SELECT_MASK 0x000000ffL
+
+// TCR_PERFCOUNTER0_HI
+#define TCR_PERFCOUNTER0_HI__PERFCOUNTER_HI_MASK 0x0000ffffL
+
+// TCR_PERFCOUNTER1_HI
+#define TCR_PERFCOUNTER1_HI__PERFCOUNTER_HI_MASK 0x0000ffffL
+
+// TCR_PERFCOUNTER0_LOW
+#define TCR_PERFCOUNTER0_LOW__PERFCOUNTER_LOW_MASK 0xffffffffL
+
+// TCR_PERFCOUNTER1_LOW
+#define TCR_PERFCOUNTER1_LOW__PERFCOUNTER_LOW_MASK 0xffffffffL
+
+// TP_TC_CLKGATE_CNTL
+#define TP_TC_CLKGATE_CNTL__TP_BUSY_EXTEND_MASK 0x00000007L
+#define TP_TC_CLKGATE_CNTL__TC_BUSY_EXTEND_MASK 0x00000038L
+
+// TPC_CNTL_STATUS
+#define TPC_CNTL_STATUS__TPC_INPUT_BUSY_MASK 0x00000001L
+#define TPC_CNTL_STATUS__TPC_INPUT_BUSY 0x00000001L
+#define TPC_CNTL_STATUS__TPC_TC_FIFO_BUSY_MASK 0x00000002L
+#define TPC_CNTL_STATUS__TPC_TC_FIFO_BUSY 0x00000002L
+#define TPC_CNTL_STATUS__TPC_STATE_FIFO_BUSY_MASK 0x00000004L
+#define TPC_CNTL_STATUS__TPC_STATE_FIFO_BUSY 0x00000004L
+#define TPC_CNTL_STATUS__TPC_FETCH_FIFO_BUSY_MASK 0x00000008L
+#define TPC_CNTL_STATUS__TPC_FETCH_FIFO_BUSY 0x00000008L
+#define TPC_CNTL_STATUS__TPC_WALKER_PIPE_BUSY_MASK 0x00000010L
+#define TPC_CNTL_STATUS__TPC_WALKER_PIPE_BUSY 0x00000010L
+#define TPC_CNTL_STATUS__TPC_WALK_FIFO_BUSY_MASK 0x00000020L
+#define TPC_CNTL_STATUS__TPC_WALK_FIFO_BUSY 0x00000020L
+#define TPC_CNTL_STATUS__TPC_WALKER_BUSY_MASK 0x00000040L
+#define TPC_CNTL_STATUS__TPC_WALKER_BUSY 0x00000040L
+#define TPC_CNTL_STATUS__TPC_ALIGNER_PIPE_BUSY_MASK 0x00000100L
+#define TPC_CNTL_STATUS__TPC_ALIGNER_PIPE_BUSY 0x00000100L
+#define TPC_CNTL_STATUS__TPC_ALIGN_FIFO_BUSY_MASK 0x00000200L
+#define TPC_CNTL_STATUS__TPC_ALIGN_FIFO_BUSY 0x00000200L
+#define TPC_CNTL_STATUS__TPC_ALIGNER_BUSY_MASK 0x00000400L
+#define TPC_CNTL_STATUS__TPC_ALIGNER_BUSY 0x00000400L
+#define TPC_CNTL_STATUS__TPC_RR_FIFO_BUSY_MASK 0x00001000L
+#define TPC_CNTL_STATUS__TPC_RR_FIFO_BUSY 0x00001000L
+#define TPC_CNTL_STATUS__TPC_BLEND_PIPE_BUSY_MASK 0x00002000L
+#define TPC_CNTL_STATUS__TPC_BLEND_PIPE_BUSY 0x00002000L
+#define TPC_CNTL_STATUS__TPC_OUT_FIFO_BUSY_MASK 0x00004000L
+#define TPC_CNTL_STATUS__TPC_OUT_FIFO_BUSY 0x00004000L
+#define TPC_CNTL_STATUS__TPC_BLEND_BUSY_MASK 0x00008000L
+#define TPC_CNTL_STATUS__TPC_BLEND_BUSY 0x00008000L
+#define TPC_CNTL_STATUS__TF_TW_RTS_MASK 0x00010000L
+#define TPC_CNTL_STATUS__TF_TW_RTS 0x00010000L
+#define TPC_CNTL_STATUS__TF_TW_STATE_RTS_MASK 0x00020000L
+#define TPC_CNTL_STATUS__TF_TW_STATE_RTS 0x00020000L
+#define TPC_CNTL_STATUS__TF_TW_RTR_MASK 0x00080000L
+#define TPC_CNTL_STATUS__TF_TW_RTR 0x00080000L
+#define TPC_CNTL_STATUS__TW_TA_RTS_MASK 0x00100000L
+#define TPC_CNTL_STATUS__TW_TA_RTS 0x00100000L
+#define TPC_CNTL_STATUS__TW_TA_TT_RTS_MASK 0x00200000L
+#define TPC_CNTL_STATUS__TW_TA_TT_RTS 0x00200000L
+#define TPC_CNTL_STATUS__TW_TA_LAST_RTS_MASK 0x00400000L
+#define TPC_CNTL_STATUS__TW_TA_LAST_RTS 0x00400000L
+#define TPC_CNTL_STATUS__TW_TA_RTR_MASK 0x00800000L
+#define TPC_CNTL_STATUS__TW_TA_RTR 0x00800000L
+#define TPC_CNTL_STATUS__TA_TB_RTS_MASK 0x01000000L
+#define TPC_CNTL_STATUS__TA_TB_RTS 0x01000000L
+#define TPC_CNTL_STATUS__TA_TB_TT_RTS_MASK 0x02000000L
+#define TPC_CNTL_STATUS__TA_TB_TT_RTS 0x02000000L
+#define TPC_CNTL_STATUS__TA_TB_RTR_MASK 0x08000000L
+#define TPC_CNTL_STATUS__TA_TB_RTR 0x08000000L
+#define TPC_CNTL_STATUS__TA_TF_RTS_MASK 0x10000000L
+#define TPC_CNTL_STATUS__TA_TF_RTS 0x10000000L
+#define TPC_CNTL_STATUS__TA_TF_TC_FIFO_REN_MASK 0x20000000L
+#define TPC_CNTL_STATUS__TA_TF_TC_FIFO_REN 0x20000000L
+#define TPC_CNTL_STATUS__TP_SQ_DEC_MASK 0x40000000L
+#define TPC_CNTL_STATUS__TP_SQ_DEC 0x40000000L
+#define TPC_CNTL_STATUS__TPC_BUSY_MASK 0x80000000L
+#define TPC_CNTL_STATUS__TPC_BUSY 0x80000000L
+
+// TPC_DEBUG0
+#define TPC_DEBUG0__LOD_CNTL_MASK 0x00000003L
+#define TPC_DEBUG0__IC_CTR_MASK 0x0000000cL
+#define TPC_DEBUG0__WALKER_CNTL_MASK 0x000000f0L
+#define TPC_DEBUG0__ALIGNER_CNTL_MASK 0x00000700L
+#define TPC_DEBUG0__PREV_TC_STATE_VALID_MASK 0x00001000L
+#define TPC_DEBUG0__PREV_TC_STATE_VALID 0x00001000L
+#define TPC_DEBUG0__WALKER_STATE_MASK 0x03ff0000L
+#define TPC_DEBUG0__ALIGNER_STATE_MASK 0x0c000000L
+#define TPC_DEBUG0__REG_CLK_EN_MASK 0x20000000L
+#define TPC_DEBUG0__REG_CLK_EN 0x20000000L
+#define TPC_DEBUG0__TPC_CLK_EN_MASK 0x40000000L
+#define TPC_DEBUG0__TPC_CLK_EN 0x40000000L
+#define TPC_DEBUG0__SQ_TP_WAKEUP_MASK 0x80000000L
+#define TPC_DEBUG0__SQ_TP_WAKEUP 0x80000000L
+
+// TPC_DEBUG1
+#define TPC_DEBUG1__UNUSED_MASK 0x00000001L
+#define TPC_DEBUG1__UNUSED 0x00000001L
+
+// TPC_CHICKEN
+#define TPC_CHICKEN__BLEND_PRECISION_MASK 0x00000001L
+#define TPC_CHICKEN__BLEND_PRECISION 0x00000001L
+#define TPC_CHICKEN__SPARE_MASK 0xfffffffeL
+
+// TP0_CNTL_STATUS
+#define TP0_CNTL_STATUS__TP_INPUT_BUSY_MASK 0x00000001L
+#define TP0_CNTL_STATUS__TP_INPUT_BUSY 0x00000001L
+#define TP0_CNTL_STATUS__TP_LOD_BUSY_MASK 0x00000002L
+#define TP0_CNTL_STATUS__TP_LOD_BUSY 0x00000002L
+#define TP0_CNTL_STATUS__TP_LOD_FIFO_BUSY_MASK 0x00000004L
+#define TP0_CNTL_STATUS__TP_LOD_FIFO_BUSY 0x00000004L
+#define TP0_CNTL_STATUS__TP_ADDR_BUSY_MASK 0x00000008L
+#define TP0_CNTL_STATUS__TP_ADDR_BUSY 0x00000008L
+#define TP0_CNTL_STATUS__TP_ALIGN_FIFO_BUSY_MASK 0x00000010L
+#define TP0_CNTL_STATUS__TP_ALIGN_FIFO_BUSY 0x00000010L
+#define TP0_CNTL_STATUS__TP_ALIGNER_BUSY_MASK 0x00000020L
+#define TP0_CNTL_STATUS__TP_ALIGNER_BUSY 0x00000020L
+#define TP0_CNTL_STATUS__TP_TC_FIFO_BUSY_MASK 0x00000040L
+#define TP0_CNTL_STATUS__TP_TC_FIFO_BUSY 0x00000040L
+#define TP0_CNTL_STATUS__TP_RR_FIFO_BUSY_MASK 0x00000080L
+#define TP0_CNTL_STATUS__TP_RR_FIFO_BUSY 0x00000080L
+#define TP0_CNTL_STATUS__TP_FETCH_BUSY_MASK 0x00000100L
+#define TP0_CNTL_STATUS__TP_FETCH_BUSY 0x00000100L
+#define TP0_CNTL_STATUS__TP_CH_BLEND_BUSY_MASK 0x00000200L
+#define TP0_CNTL_STATUS__TP_CH_BLEND_BUSY 0x00000200L
+#define TP0_CNTL_STATUS__TP_TT_BUSY_MASK 0x00000400L
+#define TP0_CNTL_STATUS__TP_TT_BUSY 0x00000400L
+#define TP0_CNTL_STATUS__TP_HICOLOR_BUSY_MASK 0x00000800L
+#define TP0_CNTL_STATUS__TP_HICOLOR_BUSY 0x00000800L
+#define TP0_CNTL_STATUS__TP_BLEND_BUSY_MASK 0x00001000L
+#define TP0_CNTL_STATUS__TP_BLEND_BUSY 0x00001000L
+#define TP0_CNTL_STATUS__TP_OUT_FIFO_BUSY_MASK 0x00002000L
+#define TP0_CNTL_STATUS__TP_OUT_FIFO_BUSY 0x00002000L
+#define TP0_CNTL_STATUS__TP_OUTPUT_BUSY_MASK 0x00004000L
+#define TP0_CNTL_STATUS__TP_OUTPUT_BUSY 0x00004000L
+#define TP0_CNTL_STATUS__IN_LC_RTS_MASK 0x00010000L
+#define TP0_CNTL_STATUS__IN_LC_RTS 0x00010000L
+#define TP0_CNTL_STATUS__LC_LA_RTS_MASK 0x00020000L
+#define TP0_CNTL_STATUS__LC_LA_RTS 0x00020000L
+#define TP0_CNTL_STATUS__LA_FL_RTS_MASK 0x00040000L
+#define TP0_CNTL_STATUS__LA_FL_RTS 0x00040000L
+#define TP0_CNTL_STATUS__FL_TA_RTS_MASK 0x00080000L
+#define TP0_CNTL_STATUS__FL_TA_RTS 0x00080000L
+#define TP0_CNTL_STATUS__TA_FA_RTS_MASK 0x00100000L
+#define TP0_CNTL_STATUS__TA_FA_RTS 0x00100000L
+#define TP0_CNTL_STATUS__TA_FA_TT_RTS_MASK 0x00200000L
+#define TP0_CNTL_STATUS__TA_FA_TT_RTS 0x00200000L
+#define TP0_CNTL_STATUS__FA_AL_RTS_MASK 0x00400000L
+#define TP0_CNTL_STATUS__FA_AL_RTS 0x00400000L
+#define TP0_CNTL_STATUS__FA_AL_TT_RTS_MASK 0x00800000L
+#define TP0_CNTL_STATUS__FA_AL_TT_RTS 0x00800000L
+#define TP0_CNTL_STATUS__AL_TF_RTS_MASK 0x01000000L
+#define TP0_CNTL_STATUS__AL_TF_RTS 0x01000000L
+#define TP0_CNTL_STATUS__AL_TF_TT_RTS_MASK 0x02000000L
+#define TP0_CNTL_STATUS__AL_TF_TT_RTS 0x02000000L
+#define TP0_CNTL_STATUS__TF_TB_RTS_MASK 0x04000000L
+#define TP0_CNTL_STATUS__TF_TB_RTS 0x04000000L
+#define TP0_CNTL_STATUS__TF_TB_TT_RTS_MASK 0x08000000L
+#define TP0_CNTL_STATUS__TF_TB_TT_RTS 0x08000000L
+#define TP0_CNTL_STATUS__TB_TT_RTS_MASK 0x10000000L
+#define TP0_CNTL_STATUS__TB_TT_RTS 0x10000000L
+#define TP0_CNTL_STATUS__TB_TT_TT_RESET_MASK 0x20000000L
+#define TP0_CNTL_STATUS__TB_TT_TT_RESET 0x20000000L
+#define TP0_CNTL_STATUS__TB_TO_RTS_MASK 0x40000000L
+#define TP0_CNTL_STATUS__TB_TO_RTS 0x40000000L
+#define TP0_CNTL_STATUS__TP_BUSY_MASK 0x80000000L
+#define TP0_CNTL_STATUS__TP_BUSY 0x80000000L
+
+// TP0_DEBUG
+#define TP0_DEBUG__Q_LOD_CNTL_MASK 0x00000003L
+#define TP0_DEBUG__Q_SQ_TP_WAKEUP_MASK 0x00000008L
+#define TP0_DEBUG__Q_SQ_TP_WAKEUP 0x00000008L
+#define TP0_DEBUG__FL_TA_ADDRESSER_CNTL_MASK 0x001ffff0L
+#define TP0_DEBUG__REG_CLK_EN_MASK 0x00200000L
+#define TP0_DEBUG__REG_CLK_EN 0x00200000L
+#define TP0_DEBUG__PERF_CLK_EN_MASK 0x00400000L
+#define TP0_DEBUG__PERF_CLK_EN 0x00400000L
+#define TP0_DEBUG__TP_CLK_EN_MASK 0x00800000L
+#define TP0_DEBUG__TP_CLK_EN 0x00800000L
+#define TP0_DEBUG__Q_WALKER_CNTL_MASK 0x0f000000L
+#define TP0_DEBUG__Q_ALIGNER_CNTL_MASK 0x70000000L
+
+// TP0_CHICKEN
+#define TP0_CHICKEN__TT_MODE_MASK 0x00000001L
+#define TP0_CHICKEN__TT_MODE 0x00000001L
+#define TP0_CHICKEN__VFETCH_ADDRESS_MODE_MASK 0x00000002L
+#define TP0_CHICKEN__VFETCH_ADDRESS_MODE 0x00000002L
+#define TP0_CHICKEN__SPARE_MASK 0xfffffffcL
+
+// TP0_PERFCOUNTER0_SELECT
+#define TP0_PERFCOUNTER0_SELECT__PERFCOUNTER_SELECT_MASK 0x000000ffL
+
+// TP0_PERFCOUNTER0_HI
+#define TP0_PERFCOUNTER0_HI__PERFCOUNTER_HI_MASK 0x0000ffffL
+
+// TP0_PERFCOUNTER0_LOW
+#define TP0_PERFCOUNTER0_LOW__PERFCOUNTER_LOW_MASK 0xffffffffL
+
+// TP0_PERFCOUNTER1_SELECT
+#define TP0_PERFCOUNTER1_SELECT__PERFCOUNTER_SELECT_MASK 0x000000ffL
+
+// TP0_PERFCOUNTER1_HI
+#define TP0_PERFCOUNTER1_HI__PERFCOUNTER_HI_MASK 0x0000ffffL
+
+// TP0_PERFCOUNTER1_LOW
+#define TP0_PERFCOUNTER1_LOW__PERFCOUNTER_LOW_MASK 0xffffffffL
+
+// TCM_PERFCOUNTER0_SELECT
+#define TCM_PERFCOUNTER0_SELECT__PERFCOUNTER_SELECT_MASK 0x000000ffL
+
+// TCM_PERFCOUNTER1_SELECT
+#define TCM_PERFCOUNTER1_SELECT__PERFCOUNTER_SELECT_MASK 0x000000ffL
+
+// TCM_PERFCOUNTER0_HI
+#define TCM_PERFCOUNTER0_HI__PERFCOUNTER_HI_MASK 0x0000ffffL
+
+// TCM_PERFCOUNTER1_HI
+#define TCM_PERFCOUNTER1_HI__PERFCOUNTER_HI_MASK 0x0000ffffL
+
+// TCM_PERFCOUNTER0_LOW
+#define TCM_PERFCOUNTER0_LOW__PERFCOUNTER_LOW_MASK 0xffffffffL
+
+// TCM_PERFCOUNTER1_LOW
+#define TCM_PERFCOUNTER1_LOW__PERFCOUNTER_LOW_MASK 0xffffffffL
+
+// TCF_PERFCOUNTER0_SELECT
+#define TCF_PERFCOUNTER0_SELECT__PERFCOUNTER_SELECT_MASK 0x000000ffL
+
+// TCF_PERFCOUNTER1_SELECT
+#define TCF_PERFCOUNTER1_SELECT__PERFCOUNTER_SELECT_MASK 0x000000ffL
+
+// TCF_PERFCOUNTER2_SELECT
+#define TCF_PERFCOUNTER2_SELECT__PERFCOUNTER_SELECT_MASK 0x000000ffL
+
+// TCF_PERFCOUNTER3_SELECT
+#define TCF_PERFCOUNTER3_SELECT__PERFCOUNTER_SELECT_MASK 0x000000ffL
+
+// TCF_PERFCOUNTER4_SELECT
+#define TCF_PERFCOUNTER4_SELECT__PERFCOUNTER_SELECT_MASK 0x000000ffL
+
+// TCF_PERFCOUNTER5_SELECT
+#define TCF_PERFCOUNTER5_SELECT__PERFCOUNTER_SELECT_MASK 0x000000ffL
+
+// TCF_PERFCOUNTER6_SELECT
+#define TCF_PERFCOUNTER6_SELECT__PERFCOUNTER_SELECT_MASK 0x000000ffL
+
+// TCF_PERFCOUNTER7_SELECT
+#define TCF_PERFCOUNTER7_SELECT__PERFCOUNTER_SELECT_MASK 0x000000ffL
+
+// TCF_PERFCOUNTER8_SELECT
+#define TCF_PERFCOUNTER8_SELECT__PERFCOUNTER_SELECT_MASK 0x000000ffL
+
+// TCF_PERFCOUNTER9_SELECT
+#define TCF_PERFCOUNTER9_SELECT__PERFCOUNTER_SELECT_MASK 0x000000ffL
+
+// TCF_PERFCOUNTER10_SELECT
+#define TCF_PERFCOUNTER10_SELECT__PERFCOUNTER_SELECT_MASK 0x000000ffL
+
+// TCF_PERFCOUNTER11_SELECT
+#define TCF_PERFCOUNTER11_SELECT__PERFCOUNTER_SELECT_MASK 0x000000ffL
+
+// TCF_PERFCOUNTER0_HI
+#define TCF_PERFCOUNTER0_HI__PERFCOUNTER_HI_MASK 0x0000ffffL
+
+// TCF_PERFCOUNTER1_HI
+#define TCF_PERFCOUNTER1_HI__PERFCOUNTER_HI_MASK 0x0000ffffL
+
+// TCF_PERFCOUNTER2_HI
+#define TCF_PERFCOUNTER2_HI__PERFCOUNTER_HI_MASK 0x0000ffffL
+
+// TCF_PERFCOUNTER3_HI
+#define TCF_PERFCOUNTER3_HI__PERFCOUNTER_HI_MASK 0x0000ffffL
+
+// TCF_PERFCOUNTER4_HI
+#define TCF_PERFCOUNTER4_HI__PERFCOUNTER_HI_MASK 0x0000ffffL
+
+// TCF_PERFCOUNTER5_HI
+#define TCF_PERFCOUNTER5_HI__PERFCOUNTER_HI_MASK 0x0000ffffL
+
+// TCF_PERFCOUNTER6_HI
+#define TCF_PERFCOUNTER6_HI__PERFCOUNTER_HI_MASK 0x0000ffffL
+
+// TCF_PERFCOUNTER7_HI
+#define TCF_PERFCOUNTER7_HI__PERFCOUNTER_HI_MASK 0x0000ffffL
+
+// TCF_PERFCOUNTER8_HI
+#define TCF_PERFCOUNTER8_HI__PERFCOUNTER_HI_MASK 0x0000ffffL
+
+// TCF_PERFCOUNTER9_HI
+#define TCF_PERFCOUNTER9_HI__PERFCOUNTER_HI_MASK 0x0000ffffL
+
+// TCF_PERFCOUNTER10_HI
+#define TCF_PERFCOUNTER10_HI__PERFCOUNTER_HI_MASK 0x0000ffffL
+
+// TCF_PERFCOUNTER11_HI
+#define TCF_PERFCOUNTER11_HI__PERFCOUNTER_HI_MASK 0x0000ffffL
+
+// TCF_PERFCOUNTER0_LOW
+#define TCF_PERFCOUNTER0_LOW__PERFCOUNTER_LOW_MASK 0xffffffffL
+
+// TCF_PERFCOUNTER1_LOW
+#define TCF_PERFCOUNTER1_LOW__PERFCOUNTER_LOW_MASK 0xffffffffL
+
+// TCF_PERFCOUNTER2_LOW
+#define TCF_PERFCOUNTER2_LOW__PERFCOUNTER_LOW_MASK 0xffffffffL
+
+// TCF_PERFCOUNTER3_LOW
+#define TCF_PERFCOUNTER3_LOW__PERFCOUNTER_LOW_MASK 0xffffffffL
+
+// TCF_PERFCOUNTER4_LOW
+#define TCF_PERFCOUNTER4_LOW__PERFCOUNTER_LOW_MASK 0xffffffffL
+
+// TCF_PERFCOUNTER5_LOW
+#define TCF_PERFCOUNTER5_LOW__PERFCOUNTER_LOW_MASK 0xffffffffL
+
+// TCF_PERFCOUNTER6_LOW
+#define TCF_PERFCOUNTER6_LOW__PERFCOUNTER_LOW_MASK 0xffffffffL
+
+// TCF_PERFCOUNTER7_LOW
+#define TCF_PERFCOUNTER7_LOW__PERFCOUNTER_LOW_MASK 0xffffffffL
+
+// TCF_PERFCOUNTER8_LOW
+#define TCF_PERFCOUNTER8_LOW__PERFCOUNTER_LOW_MASK 0xffffffffL
+
+// TCF_PERFCOUNTER9_LOW
+#define TCF_PERFCOUNTER9_LOW__PERFCOUNTER_LOW_MASK 0xffffffffL
+
+// TCF_PERFCOUNTER10_LOW
+#define TCF_PERFCOUNTER10_LOW__PERFCOUNTER_LOW_MASK 0xffffffffL
+
+// TCF_PERFCOUNTER11_LOW
+#define TCF_PERFCOUNTER11_LOW__PERFCOUNTER_LOW_MASK 0xffffffffL
+
+// TCF_DEBUG
+#define TCF_DEBUG__not_MH_TC_rtr_MASK 0x00000040L
+#define TCF_DEBUG__not_MH_TC_rtr 0x00000040L
+#define TCF_DEBUG__TC_MH_send_MASK 0x00000080L
+#define TCF_DEBUG__TC_MH_send 0x00000080L
+#define TCF_DEBUG__not_FG0_rtr_MASK 0x00000100L
+#define TCF_DEBUG__not_FG0_rtr 0x00000100L
+#define TCF_DEBUG__not_TCB_TCO_rtr_MASK 0x00001000L
+#define TCF_DEBUG__not_TCB_TCO_rtr 0x00001000L
+#define TCF_DEBUG__TCB_ff_stall_MASK 0x00002000L
+#define TCF_DEBUG__TCB_ff_stall 0x00002000L
+#define TCF_DEBUG__TCB_miss_stall_MASK 0x00004000L
+#define TCF_DEBUG__TCB_miss_stall 0x00004000L
+#define TCF_DEBUG__TCA_TCB_stall_MASK 0x00008000L
+#define TCF_DEBUG__TCA_TCB_stall 0x00008000L
+#define TCF_DEBUG__PF0_stall_MASK 0x00010000L
+#define TCF_DEBUG__PF0_stall 0x00010000L
+#define TCF_DEBUG__TP0_full_MASK 0x00100000L
+#define TCF_DEBUG__TP0_full 0x00100000L
+#define TCF_DEBUG__TPC_full_MASK 0x01000000L
+#define TCF_DEBUG__TPC_full 0x01000000L
+#define TCF_DEBUG__not_TPC_rtr_MASK 0x02000000L
+#define TCF_DEBUG__not_TPC_rtr 0x02000000L
+#define TCF_DEBUG__tca_state_rts_MASK 0x04000000L
+#define TCF_DEBUG__tca_state_rts 0x04000000L
+#define TCF_DEBUG__tca_rts_MASK 0x08000000L
+#define TCF_DEBUG__tca_rts 0x08000000L
+
+// TCA_FIFO_DEBUG
+#define TCA_FIFO_DEBUG__tp0_full_MASK 0x00000001L
+#define TCA_FIFO_DEBUG__tp0_full 0x00000001L
+#define TCA_FIFO_DEBUG__tpc_full_MASK 0x00000010L
+#define TCA_FIFO_DEBUG__tpc_full 0x00000010L
+#define TCA_FIFO_DEBUG__load_tpc_fifo_MASK 0x00000020L
+#define TCA_FIFO_DEBUG__load_tpc_fifo 0x00000020L
+#define TCA_FIFO_DEBUG__load_tp_fifos_MASK 0x00000040L
+#define TCA_FIFO_DEBUG__load_tp_fifos 0x00000040L
+#define TCA_FIFO_DEBUG__FW_full_MASK 0x00000080L
+#define TCA_FIFO_DEBUG__FW_full 0x00000080L
+#define TCA_FIFO_DEBUG__not_FW_rtr0_MASK 0x00000100L
+#define TCA_FIFO_DEBUG__not_FW_rtr0 0x00000100L
+#define TCA_FIFO_DEBUG__FW_rts0_MASK 0x00001000L
+#define TCA_FIFO_DEBUG__FW_rts0 0x00001000L
+#define TCA_FIFO_DEBUG__not_FW_tpc_rtr_MASK 0x00010000L
+#define TCA_FIFO_DEBUG__not_FW_tpc_rtr 0x00010000L
+#define TCA_FIFO_DEBUG__FW_tpc_rts_MASK 0x00020000L
+#define TCA_FIFO_DEBUG__FW_tpc_rts 0x00020000L
+
+// TCA_PROBE_DEBUG
+#define TCA_PROBE_DEBUG__ProbeFilter_stall_MASK 0x00000001L
+#define TCA_PROBE_DEBUG__ProbeFilter_stall 0x00000001L
+
+// TCA_TPC_DEBUG
+#define TCA_TPC_DEBUG__captue_state_rts_MASK 0x00001000L
+#define TCA_TPC_DEBUG__captue_state_rts 0x00001000L
+#define TCA_TPC_DEBUG__capture_tca_rts_MASK 0x00002000L
+#define TCA_TPC_DEBUG__capture_tca_rts 0x00002000L
+
+// TCB_CORE_DEBUG
+#define TCB_CORE_DEBUG__access512_MASK 0x00000001L
+#define TCB_CORE_DEBUG__access512 0x00000001L
+#define TCB_CORE_DEBUG__tiled_MASK 0x00000002L
+#define TCB_CORE_DEBUG__tiled 0x00000002L
+#define TCB_CORE_DEBUG__opcode_MASK 0x00000070L
+#define TCB_CORE_DEBUG__format_MASK 0x00003f00L
+#define TCB_CORE_DEBUG__sector_format_MASK 0x001f0000L
+#define TCB_CORE_DEBUG__sector_format512_MASK 0x07000000L
+
+// TCB_TAG0_DEBUG
+#define TCB_TAG0_DEBUG__mem_read_cycle_MASK 0x000003ffL
+#define TCB_TAG0_DEBUG__tag_access_cycle_MASK 0x001ff000L
+#define TCB_TAG0_DEBUG__miss_stall_MASK 0x00800000L
+#define TCB_TAG0_DEBUG__miss_stall 0x00800000L
+#define TCB_TAG0_DEBUG__num_feee_lines_MASK 0x1f000000L
+#define TCB_TAG0_DEBUG__max_misses_MASK 0xe0000000L
+
+// TCB_TAG1_DEBUG
+#define TCB_TAG1_DEBUG__mem_read_cycle_MASK 0x000003ffL
+#define TCB_TAG1_DEBUG__tag_access_cycle_MASK 0x001ff000L
+#define TCB_TAG1_DEBUG__miss_stall_MASK 0x00800000L
+#define TCB_TAG1_DEBUG__miss_stall 0x00800000L
+#define TCB_TAG1_DEBUG__num_feee_lines_MASK 0x1f000000L
+#define TCB_TAG1_DEBUG__max_misses_MASK 0xe0000000L
+
+// TCB_TAG2_DEBUG
+#define TCB_TAG2_DEBUG__mem_read_cycle_MASK 0x000003ffL
+#define TCB_TAG2_DEBUG__tag_access_cycle_MASK 0x001ff000L
+#define TCB_TAG2_DEBUG__miss_stall_MASK 0x00800000L
+#define TCB_TAG2_DEBUG__miss_stall 0x00800000L
+#define TCB_TAG2_DEBUG__num_feee_lines_MASK 0x1f000000L
+#define TCB_TAG2_DEBUG__max_misses_MASK 0xe0000000L
+
+// TCB_TAG3_DEBUG
+#define TCB_TAG3_DEBUG__mem_read_cycle_MASK 0x000003ffL
+#define TCB_TAG3_DEBUG__tag_access_cycle_MASK 0x001ff000L
+#define TCB_TAG3_DEBUG__miss_stall_MASK 0x00800000L
+#define TCB_TAG3_DEBUG__miss_stall 0x00800000L
+#define TCB_TAG3_DEBUG__num_feee_lines_MASK 0x1f000000L
+#define TCB_TAG3_DEBUG__max_misses_MASK 0xe0000000L
+
+// TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__left_done_MASK 0x00000001L
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__left_done 0x00000001L
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__fg0_sends_left_MASK 0x00000004L
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__fg0_sends_left 0x00000004L
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__one_sector_to_go_left_q_MASK 0x00000010L
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__one_sector_to_go_left_q 0x00000010L
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__no_sectors_to_go_MASK 0x00000020L
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__no_sectors_to_go 0x00000020L
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__update_left_MASK 0x00000040L
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__update_left 0x00000040L
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__sector_mask_left_count_q_MASK 0x00000f80L
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__sector_mask_left_q_MASK 0x0ffff000L
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__valid_left_q_MASK 0x10000000L
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__valid_left_q 0x10000000L
+
+// TCB_FETCH_GEN_WALKER_DEBUG
+#define TCB_FETCH_GEN_WALKER_DEBUG__quad_sel_left_MASK 0x00000030L
+#define TCB_FETCH_GEN_WALKER_DEBUG__set_sel_left_MASK 0x000000c0L
+#define TCB_FETCH_GEN_WALKER_DEBUG__right_eq_left_MASK 0x00000800L
+#define TCB_FETCH_GEN_WALKER_DEBUG__right_eq_left 0x00000800L
+#define TCB_FETCH_GEN_WALKER_DEBUG__ff_fg_type512_MASK 0x00007000L
+#define TCB_FETCH_GEN_WALKER_DEBUG__busy_MASK 0x00008000L
+#define TCB_FETCH_GEN_WALKER_DEBUG__busy 0x00008000L
+#define TCB_FETCH_GEN_WALKER_DEBUG__setquads_to_send_MASK 0x000f0000L
+
+// TCB_FETCH_GEN_PIPE0_DEBUG
+#define TCB_FETCH_GEN_PIPE0_DEBUG__tc0_arb_rts_MASK 0x00000001L
+#define TCB_FETCH_GEN_PIPE0_DEBUG__tc0_arb_rts 0x00000001L
+#define TCB_FETCH_GEN_PIPE0_DEBUG__ga_out_rts_MASK 0x00000004L
+#define TCB_FETCH_GEN_PIPE0_DEBUG__ga_out_rts 0x00000004L
+#define TCB_FETCH_GEN_PIPE0_DEBUG__tc_arb_format_MASK 0x0000fff0L
+#define TCB_FETCH_GEN_PIPE0_DEBUG__tc_arb_fmsopcode_MASK 0x001f0000L
+#define TCB_FETCH_GEN_PIPE0_DEBUG__tc_arb_request_type_MASK 0x00600000L
+#define TCB_FETCH_GEN_PIPE0_DEBUG__busy_MASK 0x00800000L
+#define TCB_FETCH_GEN_PIPE0_DEBUG__busy 0x00800000L
+#define TCB_FETCH_GEN_PIPE0_DEBUG__fgo_busy_MASK 0x01000000L
+#define TCB_FETCH_GEN_PIPE0_DEBUG__fgo_busy 0x01000000L
+#define TCB_FETCH_GEN_PIPE0_DEBUG__ga_busy_MASK 0x02000000L
+#define TCB_FETCH_GEN_PIPE0_DEBUG__ga_busy 0x02000000L
+#define TCB_FETCH_GEN_PIPE0_DEBUG__mc_sel_q_MASK 0x0c000000L
+#define TCB_FETCH_GEN_PIPE0_DEBUG__valid_q_MASK 0x10000000L
+#define TCB_FETCH_GEN_PIPE0_DEBUG__valid_q 0x10000000L
+#define TCB_FETCH_GEN_PIPE0_DEBUG__arb_RTR_MASK 0x40000000L
+#define TCB_FETCH_GEN_PIPE0_DEBUG__arb_RTR 0x40000000L
+
+// TCD_INPUT0_DEBUG
+#define TCD_INPUT0_DEBUG__empty_MASK 0x00010000L
+#define TCD_INPUT0_DEBUG__empty 0x00010000L
+#define TCD_INPUT0_DEBUG__full_MASK 0x00020000L
+#define TCD_INPUT0_DEBUG__full 0x00020000L
+#define TCD_INPUT0_DEBUG__valid_q1_MASK 0x00100000L
+#define TCD_INPUT0_DEBUG__valid_q1 0x00100000L
+#define TCD_INPUT0_DEBUG__cnt_q1_MASK 0x00600000L
+#define TCD_INPUT0_DEBUG__last_send_q1_MASK 0x00800000L
+#define TCD_INPUT0_DEBUG__last_send_q1 0x00800000L
+#define TCD_INPUT0_DEBUG__ip_send_MASK 0x01000000L
+#define TCD_INPUT0_DEBUG__ip_send 0x01000000L
+#define TCD_INPUT0_DEBUG__ipbuf_dxt_send_MASK 0x02000000L
+#define TCD_INPUT0_DEBUG__ipbuf_dxt_send 0x02000000L
+#define TCD_INPUT0_DEBUG__ipbuf_busy_MASK 0x04000000L
+#define TCD_INPUT0_DEBUG__ipbuf_busy 0x04000000L
+
+// TCD_DEGAMMA_DEBUG
+#define TCD_DEGAMMA_DEBUG__dgmm_ftfconv_dgmmen_MASK 0x00000003L
+#define TCD_DEGAMMA_DEBUG__dgmm_ctrl_dgmm8_MASK 0x00000004L
+#define TCD_DEGAMMA_DEBUG__dgmm_ctrl_dgmm8 0x00000004L
+#define TCD_DEGAMMA_DEBUG__dgmm_ctrl_last_send_MASK 0x00000008L
+#define TCD_DEGAMMA_DEBUG__dgmm_ctrl_last_send 0x00000008L
+#define TCD_DEGAMMA_DEBUG__dgmm_ctrl_send_MASK 0x00000010L
+#define TCD_DEGAMMA_DEBUG__dgmm_ctrl_send 0x00000010L
+#define TCD_DEGAMMA_DEBUG__dgmm_stall_MASK 0x00000020L
+#define TCD_DEGAMMA_DEBUG__dgmm_stall 0x00000020L
+#define TCD_DEGAMMA_DEBUG__dgmm_pstate_MASK 0x00000040L
+#define TCD_DEGAMMA_DEBUG__dgmm_pstate 0x00000040L
+
+// TCD_DXTMUX_SCTARB_DEBUG
+#define TCD_DXTMUX_SCTARB_DEBUG__pstate_MASK 0x00000200L
+#define TCD_DXTMUX_SCTARB_DEBUG__pstate 0x00000200L
+#define TCD_DXTMUX_SCTARB_DEBUG__sctrmx_rtr_MASK 0x00000400L
+#define TCD_DXTMUX_SCTARB_DEBUG__sctrmx_rtr 0x00000400L
+#define TCD_DXTMUX_SCTARB_DEBUG__dxtc_rtr_MASK 0x00000800L
+#define TCD_DXTMUX_SCTARB_DEBUG__dxtc_rtr 0x00000800L
+#define TCD_DXTMUX_SCTARB_DEBUG__sctrarb_multcyl_send_MASK 0x00008000L
+#define TCD_DXTMUX_SCTARB_DEBUG__sctrarb_multcyl_send 0x00008000L
+#define TCD_DXTMUX_SCTARB_DEBUG__sctrmx0_sctrarb_rts_MASK 0x00010000L
+#define TCD_DXTMUX_SCTARB_DEBUG__sctrmx0_sctrarb_rts 0x00010000L
+#define TCD_DXTMUX_SCTARB_DEBUG__dxtc_sctrarb_send_MASK 0x00100000L
+#define TCD_DXTMUX_SCTARB_DEBUG__dxtc_sctrarb_send 0x00100000L
+#define TCD_DXTMUX_SCTARB_DEBUG__dxtc_dgmmpd_last_send_MASK 0x08000000L
+#define TCD_DXTMUX_SCTARB_DEBUG__dxtc_dgmmpd_last_send 0x08000000L
+#define TCD_DXTMUX_SCTARB_DEBUG__dxtc_dgmmpd_send_MASK 0x10000000L
+#define TCD_DXTMUX_SCTARB_DEBUG__dxtc_dgmmpd_send 0x10000000L
+#define TCD_DXTMUX_SCTARB_DEBUG__dcmp_mux_send_MASK 0x20000000L
+#define TCD_DXTMUX_SCTARB_DEBUG__dcmp_mux_send 0x20000000L
+
+// TCD_DXTC_ARB_DEBUG
+#define TCD_DXTC_ARB_DEBUG__n0_stall_MASK 0x00000010L
+#define TCD_DXTC_ARB_DEBUG__n0_stall 0x00000010L
+#define TCD_DXTC_ARB_DEBUG__pstate_MASK 0x00000020L
+#define TCD_DXTC_ARB_DEBUG__pstate 0x00000020L
+#define TCD_DXTC_ARB_DEBUG__arb_dcmp01_last_send_MASK 0x00000040L
+#define TCD_DXTC_ARB_DEBUG__arb_dcmp01_last_send 0x00000040L
+#define TCD_DXTC_ARB_DEBUG__arb_dcmp01_cnt_MASK 0x00000180L
+#define TCD_DXTC_ARB_DEBUG__arb_dcmp01_sector_MASK 0x00000e00L
+#define TCD_DXTC_ARB_DEBUG__arb_dcmp01_cacheline_MASK 0x0003f000L
+#define TCD_DXTC_ARB_DEBUG__arb_dcmp01_format_MASK 0x3ffc0000L
+#define TCD_DXTC_ARB_DEBUG__arb_dcmp01_send_MASK 0x40000000L
+#define TCD_DXTC_ARB_DEBUG__arb_dcmp01_send 0x40000000L
+#define TCD_DXTC_ARB_DEBUG__n0_dxt2_4_types_MASK 0x80000000L
+#define TCD_DXTC_ARB_DEBUG__n0_dxt2_4_types 0x80000000L
+
+// TCD_STALLS_DEBUG
+#define TCD_STALLS_DEBUG__not_multcyl_sctrarb_rtr_MASK 0x00000400L
+#define TCD_STALLS_DEBUG__not_multcyl_sctrarb_rtr 0x00000400L
+#define TCD_STALLS_DEBUG__not_sctrmx0_sctrarb_rtr_MASK 0x00000800L
+#define TCD_STALLS_DEBUG__not_sctrmx0_sctrarb_rtr 0x00000800L
+#define TCD_STALLS_DEBUG__not_dcmp0_arb_rtr_MASK 0x00020000L
+#define TCD_STALLS_DEBUG__not_dcmp0_arb_rtr 0x00020000L
+#define TCD_STALLS_DEBUG__not_dgmmpd_dxtc_rtr_MASK 0x00040000L
+#define TCD_STALLS_DEBUG__not_dgmmpd_dxtc_rtr 0x00040000L
+#define TCD_STALLS_DEBUG__not_mux_dcmp_rtr_MASK 0x00080000L
+#define TCD_STALLS_DEBUG__not_mux_dcmp_rtr 0x00080000L
+#define TCD_STALLS_DEBUG__not_incoming_rtr_MASK 0x80000000L
+#define TCD_STALLS_DEBUG__not_incoming_rtr 0x80000000L
+
+// TCO_STALLS_DEBUG
+#define TCO_STALLS_DEBUG__quad0_sg_crd_RTR_MASK 0x00000020L
+#define TCO_STALLS_DEBUG__quad0_sg_crd_RTR 0x00000020L
+#define TCO_STALLS_DEBUG__quad0_rl_sg_RTR_MASK 0x00000040L
+#define TCO_STALLS_DEBUG__quad0_rl_sg_RTR 0x00000040L
+#define TCO_STALLS_DEBUG__quad0_TCO_TCB_rtr_d_MASK 0x00000080L
+#define TCO_STALLS_DEBUG__quad0_TCO_TCB_rtr_d 0x00000080L
+
+// TCO_QUAD0_DEBUG0
+#define TCO_QUAD0_DEBUG0__rl_sg_sector_format_MASK 0x000000ffL
+#define TCO_QUAD0_DEBUG0__rl_sg_end_of_sample_MASK 0x00000100L
+#define TCO_QUAD0_DEBUG0__rl_sg_end_of_sample 0x00000100L
+#define TCO_QUAD0_DEBUG0__rl_sg_rtr_MASK 0x00000200L
+#define TCO_QUAD0_DEBUG0__rl_sg_rtr 0x00000200L
+#define TCO_QUAD0_DEBUG0__rl_sg_rts_MASK 0x00000400L
+#define TCO_QUAD0_DEBUG0__rl_sg_rts 0x00000400L
+#define TCO_QUAD0_DEBUG0__sg_crd_end_of_sample_MASK 0x00000800L
+#define TCO_QUAD0_DEBUG0__sg_crd_end_of_sample 0x00000800L
+#define TCO_QUAD0_DEBUG0__sg_crd_rtr_MASK 0x00001000L
+#define TCO_QUAD0_DEBUG0__sg_crd_rtr 0x00001000L
+#define TCO_QUAD0_DEBUG0__sg_crd_rts_MASK 0x00002000L
+#define TCO_QUAD0_DEBUG0__sg_crd_rts 0x00002000L
+#define TCO_QUAD0_DEBUG0__stageN1_valid_q_MASK 0x00010000L
+#define TCO_QUAD0_DEBUG0__stageN1_valid_q 0x00010000L
+#define TCO_QUAD0_DEBUG0__read_cache_q_MASK 0x01000000L
+#define TCO_QUAD0_DEBUG0__read_cache_q 0x01000000L
+#define TCO_QUAD0_DEBUG0__cache_read_RTR_MASK 0x02000000L
+#define TCO_QUAD0_DEBUG0__cache_read_RTR 0x02000000L
+#define TCO_QUAD0_DEBUG0__all_sectors_written_set3_MASK 0x04000000L
+#define TCO_QUAD0_DEBUG0__all_sectors_written_set3 0x04000000L
+#define TCO_QUAD0_DEBUG0__all_sectors_written_set2_MASK 0x08000000L
+#define TCO_QUAD0_DEBUG0__all_sectors_written_set2 0x08000000L
+#define TCO_QUAD0_DEBUG0__all_sectors_written_set1_MASK 0x10000000L
+#define TCO_QUAD0_DEBUG0__all_sectors_written_set1 0x10000000L
+#define TCO_QUAD0_DEBUG0__all_sectors_written_set0_MASK 0x20000000L
+#define TCO_QUAD0_DEBUG0__all_sectors_written_set0 0x20000000L
+#define TCO_QUAD0_DEBUG0__busy_MASK 0x40000000L
+#define TCO_QUAD0_DEBUG0__busy 0x40000000L
+
+// TCO_QUAD0_DEBUG1
+#define TCO_QUAD0_DEBUG1__fifo_busy_MASK 0x00000001L
+#define TCO_QUAD0_DEBUG1__fifo_busy 0x00000001L
+#define TCO_QUAD0_DEBUG1__empty_MASK 0x00000002L
+#define TCO_QUAD0_DEBUG1__empty 0x00000002L
+#define TCO_QUAD0_DEBUG1__full_MASK 0x00000004L
+#define TCO_QUAD0_DEBUG1__full 0x00000004L
+#define TCO_QUAD0_DEBUG1__write_enable_MASK 0x00000008L
+#define TCO_QUAD0_DEBUG1__write_enable 0x00000008L
+#define TCO_QUAD0_DEBUG1__fifo_write_ptr_MASK 0x000007f0L
+#define TCO_QUAD0_DEBUG1__fifo_read_ptr_MASK 0x0003f800L
+#define TCO_QUAD0_DEBUG1__cache_read_busy_MASK 0x00100000L
+#define TCO_QUAD0_DEBUG1__cache_read_busy 0x00100000L
+#define TCO_QUAD0_DEBUG1__latency_fifo_busy_MASK 0x00200000L
+#define TCO_QUAD0_DEBUG1__latency_fifo_busy 0x00200000L
+#define TCO_QUAD0_DEBUG1__input_quad_busy_MASK 0x00400000L
+#define TCO_QUAD0_DEBUG1__input_quad_busy 0x00400000L
+#define TCO_QUAD0_DEBUG1__tco_quad_pipe_busy_MASK 0x00800000L
+#define TCO_QUAD0_DEBUG1__tco_quad_pipe_busy 0x00800000L
+#define TCO_QUAD0_DEBUG1__TCB_TCO_rtr_d_MASK 0x01000000L
+#define TCO_QUAD0_DEBUG1__TCB_TCO_rtr_d 0x01000000L
+#define TCO_QUAD0_DEBUG1__TCB_TCO_xfc_q_MASK 0x02000000L
+#define TCO_QUAD0_DEBUG1__TCB_TCO_xfc_q 0x02000000L
+#define TCO_QUAD0_DEBUG1__rl_sg_rtr_MASK 0x04000000L
+#define TCO_QUAD0_DEBUG1__rl_sg_rtr 0x04000000L
+#define TCO_QUAD0_DEBUG1__rl_sg_rts_MASK 0x08000000L
+#define TCO_QUAD0_DEBUG1__rl_sg_rts 0x08000000L
+#define TCO_QUAD0_DEBUG1__sg_crd_rtr_MASK 0x10000000L
+#define TCO_QUAD0_DEBUG1__sg_crd_rtr 0x10000000L
+#define TCO_QUAD0_DEBUG1__sg_crd_rts_MASK 0x20000000L
+#define TCO_QUAD0_DEBUG1__sg_crd_rts 0x20000000L
+#define TCO_QUAD0_DEBUG1__TCO_TCB_read_xfc_MASK 0x40000000L
+#define TCO_QUAD0_DEBUG1__TCO_TCB_read_xfc 0x40000000L
+
+// SQ_GPR_MANAGEMENT
+#define SQ_GPR_MANAGEMENT__REG_DYNAMIC_MASK 0x00000001L
+#define SQ_GPR_MANAGEMENT__REG_DYNAMIC 0x00000001L
+#define SQ_GPR_MANAGEMENT__REG_SIZE_PIX_MASK 0x000007f0L
+#define SQ_GPR_MANAGEMENT__REG_SIZE_VTX_MASK 0x0007f000L
+
+// SQ_FLOW_CONTROL
+#define SQ_FLOW_CONTROL__INPUT_ARBITRATION_POLICY_MASK 0x00000003L
+#define SQ_FLOW_CONTROL__ONE_THREAD_MASK 0x00000010L
+#define SQ_FLOW_CONTROL__ONE_THREAD 0x00000010L
+#define SQ_FLOW_CONTROL__ONE_ALU_MASK 0x00000100L
+#define SQ_FLOW_CONTROL__ONE_ALU 0x00000100L
+#define SQ_FLOW_CONTROL__CF_WR_BASE_MASK 0x0000f000L
+#define SQ_FLOW_CONTROL__NO_PV_PS_MASK 0x00010000L
+#define SQ_FLOW_CONTROL__NO_PV_PS 0x00010000L
+#define SQ_FLOW_CONTROL__NO_LOOP_EXIT_MASK 0x00020000L
+#define SQ_FLOW_CONTROL__NO_LOOP_EXIT 0x00020000L
+#define SQ_FLOW_CONTROL__NO_CEXEC_OPTIMIZE_MASK 0x00040000L
+#define SQ_FLOW_CONTROL__NO_CEXEC_OPTIMIZE 0x00040000L
+#define SQ_FLOW_CONTROL__TEXTURE_ARBITRATION_POLICY_MASK 0x00180000L
+#define SQ_FLOW_CONTROL__VC_ARBITRATION_POLICY_MASK 0x00200000L
+#define SQ_FLOW_CONTROL__VC_ARBITRATION_POLICY 0x00200000L
+#define SQ_FLOW_CONTROL__ALU_ARBITRATION_POLICY_MASK 0x00400000L
+#define SQ_FLOW_CONTROL__ALU_ARBITRATION_POLICY 0x00400000L
+#define SQ_FLOW_CONTROL__NO_ARB_EJECT_MASK 0x00800000L
+#define SQ_FLOW_CONTROL__NO_ARB_EJECT 0x00800000L
+#define SQ_FLOW_CONTROL__NO_CFS_EJECT_MASK 0x01000000L
+#define SQ_FLOW_CONTROL__NO_CFS_EJECT 0x01000000L
+#define SQ_FLOW_CONTROL__POS_EXP_PRIORITY_MASK 0x02000000L
+#define SQ_FLOW_CONTROL__POS_EXP_PRIORITY 0x02000000L
+#define SQ_FLOW_CONTROL__NO_EARLY_THREAD_TERMINATION_MASK 0x04000000L
+#define SQ_FLOW_CONTROL__NO_EARLY_THREAD_TERMINATION 0x04000000L
+#define SQ_FLOW_CONTROL__PS_PREFETCH_COLOR_ALLOC_MASK 0x08000000L
+#define SQ_FLOW_CONTROL__PS_PREFETCH_COLOR_ALLOC 0x08000000L
+
+// SQ_INST_STORE_MANAGMENT
+#define SQ_INST_STORE_MANAGMENT__INST_BASE_PIX_MASK 0x00000fffL
+#define SQ_INST_STORE_MANAGMENT__INST_BASE_VTX_MASK 0x0fff0000L
+
+// SQ_RESOURCE_MANAGMENT
+#define SQ_RESOURCE_MANAGMENT__VTX_THREAD_BUF_ENTRIES_MASK 0x000000ffL
+#define SQ_RESOURCE_MANAGMENT__PIX_THREAD_BUF_ENTRIES_MASK 0x0000ff00L
+#define SQ_RESOURCE_MANAGMENT__EXPORT_BUF_ENTRIES_MASK 0x01ff0000L
+
+// SQ_EO_RT
+#define SQ_EO_RT__EO_CONSTANTS_RT_MASK 0x000000ffL
+#define SQ_EO_RT__EO_TSTATE_RT_MASK 0x00ff0000L
+
+// SQ_DEBUG_MISC
+#define SQ_DEBUG_MISC__DB_ALUCST_SIZE_MASK 0x000007ffL
+#define SQ_DEBUG_MISC__DB_TSTATE_SIZE_MASK 0x000ff000L
+#define SQ_DEBUG_MISC__DB_READ_CTX_MASK 0x00100000L
+#define SQ_DEBUG_MISC__DB_READ_CTX 0x00100000L
+#define SQ_DEBUG_MISC__RESERVED_MASK 0x00600000L
+#define SQ_DEBUG_MISC__DB_READ_MEMORY_MASK 0x01800000L
+#define SQ_DEBUG_MISC__DB_WEN_MEMORY_0_MASK 0x02000000L
+#define SQ_DEBUG_MISC__DB_WEN_MEMORY_0 0x02000000L
+#define SQ_DEBUG_MISC__DB_WEN_MEMORY_1_MASK 0x04000000L
+#define SQ_DEBUG_MISC__DB_WEN_MEMORY_1 0x04000000L
+#define SQ_DEBUG_MISC__DB_WEN_MEMORY_2_MASK 0x08000000L
+#define SQ_DEBUG_MISC__DB_WEN_MEMORY_2 0x08000000L
+#define SQ_DEBUG_MISC__DB_WEN_MEMORY_3_MASK 0x10000000L
+#define SQ_DEBUG_MISC__DB_WEN_MEMORY_3 0x10000000L
+
+// SQ_ACTIVITY_METER_CNTL
+#define SQ_ACTIVITY_METER_CNTL__TIMEBASE_MASK 0x000000ffL
+#define SQ_ACTIVITY_METER_CNTL__THRESHOLD_LOW_MASK 0x0000ff00L
+#define SQ_ACTIVITY_METER_CNTL__THRESHOLD_HIGH_MASK 0x00ff0000L
+#define SQ_ACTIVITY_METER_CNTL__SPARE_MASK 0xff000000L
+
+// SQ_ACTIVITY_METER_STATUS
+#define SQ_ACTIVITY_METER_STATUS__PERCENT_BUSY_MASK 0x000000ffL
+
+// SQ_INPUT_ARB_PRIORITY
+#define SQ_INPUT_ARB_PRIORITY__PC_AVAIL_WEIGHT_MASK 0x00000007L
+#define SQ_INPUT_ARB_PRIORITY__PC_AVAIL_SIGN_MASK 0x00000008L
+#define SQ_INPUT_ARB_PRIORITY__PC_AVAIL_SIGN 0x00000008L
+#define SQ_INPUT_ARB_PRIORITY__SX_AVAIL_WEIGHT_MASK 0x00000070L
+#define SQ_INPUT_ARB_PRIORITY__SX_AVAIL_SIGN_MASK 0x00000080L
+#define SQ_INPUT_ARB_PRIORITY__SX_AVAIL_SIGN 0x00000080L
+#define SQ_INPUT_ARB_PRIORITY__THRESHOLD_MASK 0x0003ff00L
+
+// SQ_THREAD_ARB_PRIORITY
+#define SQ_THREAD_ARB_PRIORITY__PC_AVAIL_WEIGHT_MASK 0x00000007L
+#define SQ_THREAD_ARB_PRIORITY__PC_AVAIL_SIGN_MASK 0x00000008L
+#define SQ_THREAD_ARB_PRIORITY__PC_AVAIL_SIGN 0x00000008L
+#define SQ_THREAD_ARB_PRIORITY__SX_AVAIL_WEIGHT_MASK 0x00000070L
+#define SQ_THREAD_ARB_PRIORITY__SX_AVAIL_SIGN_MASK 0x00000080L
+#define SQ_THREAD_ARB_PRIORITY__SX_AVAIL_SIGN 0x00000080L
+#define SQ_THREAD_ARB_PRIORITY__THRESHOLD_MASK 0x0003ff00L
+#define SQ_THREAD_ARB_PRIORITY__RESERVED_MASK 0x000c0000L
+#define SQ_THREAD_ARB_PRIORITY__VS_PRIORITIZE_SERIAL_MASK 0x00100000L
+#define SQ_THREAD_ARB_PRIORITY__VS_PRIORITIZE_SERIAL 0x00100000L
+#define SQ_THREAD_ARB_PRIORITY__PS_PRIORITIZE_SERIAL_MASK 0x00200000L
+#define SQ_THREAD_ARB_PRIORITY__PS_PRIORITIZE_SERIAL 0x00200000L
+#define SQ_THREAD_ARB_PRIORITY__USE_SERIAL_COUNT_THRESHOLD_MASK 0x00400000L
+#define SQ_THREAD_ARB_PRIORITY__USE_SERIAL_COUNT_THRESHOLD 0x00400000L
+
+// SQ_DEBUG_INPUT_FSM
+#define SQ_DEBUG_INPUT_FSM__VC_VSR_LD_MASK 0x00000007L
+#define SQ_DEBUG_INPUT_FSM__RESERVED_MASK 0x00000008L
+#define SQ_DEBUG_INPUT_FSM__RESERVED 0x00000008L
+#define SQ_DEBUG_INPUT_FSM__VC_GPR_LD_MASK 0x000000f0L
+#define SQ_DEBUG_INPUT_FSM__PC_PISM_MASK 0x00000700L
+#define SQ_DEBUG_INPUT_FSM__RESERVED1_MASK 0x00000800L
+#define SQ_DEBUG_INPUT_FSM__RESERVED1 0x00000800L
+#define SQ_DEBUG_INPUT_FSM__PC_AS_MASK 0x00007000L
+#define SQ_DEBUG_INPUT_FSM__PC_INTERP_CNT_MASK 0x000f8000L
+#define SQ_DEBUG_INPUT_FSM__PC_GPR_SIZE_MASK 0x0ff00000L
+
+// SQ_DEBUG_CONST_MGR_FSM
+#define SQ_DEBUG_CONST_MGR_FSM__TEX_CONST_EVENT_STATE_MASK 0x0000001fL
+#define SQ_DEBUG_CONST_MGR_FSM__RESERVED1_MASK 0x000000e0L
+#define SQ_DEBUG_CONST_MGR_FSM__ALU_CONST_EVENT_STATE_MASK 0x00001f00L
+#define SQ_DEBUG_CONST_MGR_FSM__RESERVED2_MASK 0x0000e000L
+#define SQ_DEBUG_CONST_MGR_FSM__ALU_CONST_CNTX_VALID_MASK 0x00030000L
+#define SQ_DEBUG_CONST_MGR_FSM__TEX_CONST_CNTX_VALID_MASK 0x000c0000L
+#define SQ_DEBUG_CONST_MGR_FSM__CNTX0_VTX_EVENT_DONE_MASK 0x00100000L
+#define SQ_DEBUG_CONST_MGR_FSM__CNTX0_VTX_EVENT_DONE 0x00100000L
+#define SQ_DEBUG_CONST_MGR_FSM__CNTX0_PIX_EVENT_DONE_MASK 0x00200000L
+#define SQ_DEBUG_CONST_MGR_FSM__CNTX0_PIX_EVENT_DONE 0x00200000L
+#define SQ_DEBUG_CONST_MGR_FSM__CNTX1_VTX_EVENT_DONE_MASK 0x00400000L
+#define SQ_DEBUG_CONST_MGR_FSM__CNTX1_VTX_EVENT_DONE 0x00400000L
+#define SQ_DEBUG_CONST_MGR_FSM__CNTX1_PIX_EVENT_DONE_MASK 0x00800000L
+#define SQ_DEBUG_CONST_MGR_FSM__CNTX1_PIX_EVENT_DONE 0x00800000L
+
+// SQ_DEBUG_TP_FSM
+#define SQ_DEBUG_TP_FSM__EX_TP_MASK 0x00000007L
+#define SQ_DEBUG_TP_FSM__RESERVED0_MASK 0x00000008L
+#define SQ_DEBUG_TP_FSM__RESERVED0 0x00000008L
+#define SQ_DEBUG_TP_FSM__CF_TP_MASK 0x000000f0L
+#define SQ_DEBUG_TP_FSM__IF_TP_MASK 0x00000700L
+#define SQ_DEBUG_TP_FSM__RESERVED1_MASK 0x00000800L
+#define SQ_DEBUG_TP_FSM__RESERVED1 0x00000800L
+#define SQ_DEBUG_TP_FSM__TIS_TP_MASK 0x00003000L
+#define SQ_DEBUG_TP_FSM__RESERVED2_MASK 0x0000c000L
+#define SQ_DEBUG_TP_FSM__GS_TP_MASK 0x00030000L
+#define SQ_DEBUG_TP_FSM__RESERVED3_MASK 0x000c0000L
+#define SQ_DEBUG_TP_FSM__FCR_TP_MASK 0x00300000L
+#define SQ_DEBUG_TP_FSM__RESERVED4_MASK 0x00c00000L
+#define SQ_DEBUG_TP_FSM__FCS_TP_MASK 0x03000000L
+#define SQ_DEBUG_TP_FSM__RESERVED5_MASK 0x0c000000L
+#define SQ_DEBUG_TP_FSM__ARB_TR_TP_MASK 0x70000000L
+
+// SQ_DEBUG_FSM_ALU_0
+#define SQ_DEBUG_FSM_ALU_0__EX_ALU_0_MASK 0x00000007L
+#define SQ_DEBUG_FSM_ALU_0__RESERVED0_MASK 0x00000008L
+#define SQ_DEBUG_FSM_ALU_0__RESERVED0 0x00000008L
+#define SQ_DEBUG_FSM_ALU_0__CF_ALU_0_MASK 0x000000f0L
+#define SQ_DEBUG_FSM_ALU_0__IF_ALU_0_MASK 0x00000700L
+#define SQ_DEBUG_FSM_ALU_0__RESERVED1_MASK 0x00000800L
+#define SQ_DEBUG_FSM_ALU_0__RESERVED1 0x00000800L
+#define SQ_DEBUG_FSM_ALU_0__DU1_ALU_0_MASK 0x00007000L
+#define SQ_DEBUG_FSM_ALU_0__RESERVED2_MASK 0x00008000L
+#define SQ_DEBUG_FSM_ALU_0__RESERVED2 0x00008000L
+#define SQ_DEBUG_FSM_ALU_0__DU0_ALU_0_MASK 0x00070000L
+#define SQ_DEBUG_FSM_ALU_0__RESERVED3_MASK 0x00080000L
+#define SQ_DEBUG_FSM_ALU_0__RESERVED3 0x00080000L
+#define SQ_DEBUG_FSM_ALU_0__AIS_ALU_0_MASK 0x00700000L
+#define SQ_DEBUG_FSM_ALU_0__RESERVED4_MASK 0x00800000L
+#define SQ_DEBUG_FSM_ALU_0__RESERVED4 0x00800000L
+#define SQ_DEBUG_FSM_ALU_0__ACS_ALU_0_MASK 0x07000000L
+#define SQ_DEBUG_FSM_ALU_0__RESERVED5_MASK 0x08000000L
+#define SQ_DEBUG_FSM_ALU_0__RESERVED5 0x08000000L
+#define SQ_DEBUG_FSM_ALU_0__ARB_TR_ALU_MASK 0x70000000L
+
+// SQ_DEBUG_FSM_ALU_1
+#define SQ_DEBUG_FSM_ALU_1__EX_ALU_0_MASK 0x00000007L
+#define SQ_DEBUG_FSM_ALU_1__RESERVED0_MASK 0x00000008L
+#define SQ_DEBUG_FSM_ALU_1__RESERVED0 0x00000008L
+#define SQ_DEBUG_FSM_ALU_1__CF_ALU_0_MASK 0x000000f0L
+#define SQ_DEBUG_FSM_ALU_1__IF_ALU_0_MASK 0x00000700L
+#define SQ_DEBUG_FSM_ALU_1__RESERVED1_MASK 0x00000800L
+#define SQ_DEBUG_FSM_ALU_1__RESERVED1 0x00000800L
+#define SQ_DEBUG_FSM_ALU_1__DU1_ALU_0_MASK 0x00007000L
+#define SQ_DEBUG_FSM_ALU_1__RESERVED2_MASK 0x00008000L
+#define SQ_DEBUG_FSM_ALU_1__RESERVED2 0x00008000L
+#define SQ_DEBUG_FSM_ALU_1__DU0_ALU_0_MASK 0x00070000L
+#define SQ_DEBUG_FSM_ALU_1__RESERVED3_MASK 0x00080000L
+#define SQ_DEBUG_FSM_ALU_1__RESERVED3 0x00080000L
+#define SQ_DEBUG_FSM_ALU_1__AIS_ALU_0_MASK 0x00700000L
+#define SQ_DEBUG_FSM_ALU_1__RESERVED4_MASK 0x00800000L
+#define SQ_DEBUG_FSM_ALU_1__RESERVED4 0x00800000L
+#define SQ_DEBUG_FSM_ALU_1__ACS_ALU_0_MASK 0x07000000L
+#define SQ_DEBUG_FSM_ALU_1__RESERVED5_MASK 0x08000000L
+#define SQ_DEBUG_FSM_ALU_1__RESERVED5 0x08000000L
+#define SQ_DEBUG_FSM_ALU_1__ARB_TR_ALU_MASK 0x70000000L
+
+// SQ_DEBUG_EXP_ALLOC
+#define SQ_DEBUG_EXP_ALLOC__POS_BUF_AVAIL_MASK 0x0000000fL
+#define SQ_DEBUG_EXP_ALLOC__COLOR_BUF_AVAIL_MASK 0x00000ff0L
+#define SQ_DEBUG_EXP_ALLOC__EA_BUF_AVAIL_MASK 0x00007000L
+#define SQ_DEBUG_EXP_ALLOC__RESERVED_MASK 0x00008000L
+#define SQ_DEBUG_EXP_ALLOC__RESERVED 0x00008000L
+#define SQ_DEBUG_EXP_ALLOC__ALLOC_TBL_BUF_AVAIL_MASK 0x003f0000L
+
+// SQ_DEBUG_PTR_BUFF
+#define SQ_DEBUG_PTR_BUFF__END_OF_BUFFER_MASK 0x00000001L
+#define SQ_DEBUG_PTR_BUFF__END_OF_BUFFER 0x00000001L
+#define SQ_DEBUG_PTR_BUFF__DEALLOC_CNT_MASK 0x0000001eL
+#define SQ_DEBUG_PTR_BUFF__QUAL_NEW_VECTOR_MASK 0x00000020L
+#define SQ_DEBUG_PTR_BUFF__QUAL_NEW_VECTOR 0x00000020L
+#define SQ_DEBUG_PTR_BUFF__EVENT_CONTEXT_ID_MASK 0x000001c0L
+#define SQ_DEBUG_PTR_BUFF__SC_EVENT_ID_MASK 0x00003e00L
+#define SQ_DEBUG_PTR_BUFF__QUAL_EVENT_MASK 0x00004000L
+#define SQ_DEBUG_PTR_BUFF__QUAL_EVENT 0x00004000L
+#define SQ_DEBUG_PTR_BUFF__PRIM_TYPE_POLYGON_MASK 0x00008000L
+#define SQ_DEBUG_PTR_BUFF__PRIM_TYPE_POLYGON 0x00008000L
+#define SQ_DEBUG_PTR_BUFF__EF_EMPTY_MASK 0x00010000L
+#define SQ_DEBUG_PTR_BUFF__EF_EMPTY 0x00010000L
+#define SQ_DEBUG_PTR_BUFF__VTX_SYNC_CNT_MASK 0x0ffe0000L
+
+// SQ_DEBUG_GPR_VTX
+#define SQ_DEBUG_GPR_VTX__VTX_TAIL_PTR_MASK 0x0000007fL
+#define SQ_DEBUG_GPR_VTX__RESERVED_MASK 0x00000080L
+#define SQ_DEBUG_GPR_VTX__RESERVED 0x00000080L
+#define SQ_DEBUG_GPR_VTX__VTX_HEAD_PTR_MASK 0x00007f00L
+#define SQ_DEBUG_GPR_VTX__RESERVED1_MASK 0x00008000L
+#define SQ_DEBUG_GPR_VTX__RESERVED1 0x00008000L
+#define SQ_DEBUG_GPR_VTX__VTX_MAX_MASK 0x007f0000L
+#define SQ_DEBUG_GPR_VTX__RESERVED2_MASK 0x00800000L
+#define SQ_DEBUG_GPR_VTX__RESERVED2 0x00800000L
+#define SQ_DEBUG_GPR_VTX__VTX_FREE_MASK 0x7f000000L
+
+// SQ_DEBUG_GPR_PIX
+#define SQ_DEBUG_GPR_PIX__PIX_TAIL_PTR_MASK 0x0000007fL
+#define SQ_DEBUG_GPR_PIX__RESERVED_MASK 0x00000080L
+#define SQ_DEBUG_GPR_PIX__RESERVED 0x00000080L
+#define SQ_DEBUG_GPR_PIX__PIX_HEAD_PTR_MASK 0x00007f00L
+#define SQ_DEBUG_GPR_PIX__RESERVED1_MASK 0x00008000L
+#define SQ_DEBUG_GPR_PIX__RESERVED1 0x00008000L
+#define SQ_DEBUG_GPR_PIX__PIX_MAX_MASK 0x007f0000L
+#define SQ_DEBUG_GPR_PIX__RESERVED2_MASK 0x00800000L
+#define SQ_DEBUG_GPR_PIX__RESERVED2 0x00800000L
+#define SQ_DEBUG_GPR_PIX__PIX_FREE_MASK 0x7f000000L
+
+// SQ_DEBUG_TB_STATUS_SEL
+#define SQ_DEBUG_TB_STATUS_SEL__VTX_TB_STATUS_REG_SEL_MASK 0x0000000fL
+#define SQ_DEBUG_TB_STATUS_SEL__VTX_TB_STATE_MEM_DW_SEL_MASK 0x00000070L
+#define SQ_DEBUG_TB_STATUS_SEL__VTX_TB_STATE_MEM_RD_ADDR_MASK 0x00000780L
+#define SQ_DEBUG_TB_STATUS_SEL__VTX_TB_STATE_MEM_RD_EN_MASK 0x00000800L
+#define SQ_DEBUG_TB_STATUS_SEL__VTX_TB_STATE_MEM_RD_EN 0x00000800L
+#define SQ_DEBUG_TB_STATUS_SEL__PIX_TB_STATE_MEM_RD_EN_MASK 0x00001000L
+#define SQ_DEBUG_TB_STATUS_SEL__PIX_TB_STATE_MEM_RD_EN 0x00001000L
+#define SQ_DEBUG_TB_STATUS_SEL__DEBUG_BUS_TRIGGER_SEL_MASK 0x0000c000L
+#define SQ_DEBUG_TB_STATUS_SEL__PIX_TB_STATUS_REG_SEL_MASK 0x000f0000L
+#define SQ_DEBUG_TB_STATUS_SEL__PIX_TB_STATE_MEM_DW_SEL_MASK 0x00700000L
+#define SQ_DEBUG_TB_STATUS_SEL__PIX_TB_STATE_MEM_RD_ADDR_MASK 0x1f800000L
+#define SQ_DEBUG_TB_STATUS_SEL__VC_THREAD_BUF_DLY_MASK 0x60000000L
+#define SQ_DEBUG_TB_STATUS_SEL__DISABLE_STRICT_CTX_SYNC_MASK 0x80000000L
+#define SQ_DEBUG_TB_STATUS_SEL__DISABLE_STRICT_CTX_SYNC 0x80000000L
+
+// SQ_DEBUG_VTX_TB_0
+#define SQ_DEBUG_VTX_TB_0__VTX_HEAD_PTR_Q_MASK 0x0000000fL
+#define SQ_DEBUG_VTX_TB_0__TAIL_PTR_Q_MASK 0x000000f0L
+#define SQ_DEBUG_VTX_TB_0__FULL_CNT_Q_MASK 0x00000f00L
+#define SQ_DEBUG_VTX_TB_0__NXT_POS_ALLOC_CNT_MASK 0x0000f000L
+#define SQ_DEBUG_VTX_TB_0__NXT_PC_ALLOC_CNT_MASK 0x000f0000L
+#define SQ_DEBUG_VTX_TB_0__SX_EVENT_FULL_MASK 0x00100000L
+#define SQ_DEBUG_VTX_TB_0__SX_EVENT_FULL 0x00100000L
+#define SQ_DEBUG_VTX_TB_0__BUSY_Q_MASK 0x00200000L
+#define SQ_DEBUG_VTX_TB_0__BUSY_Q 0x00200000L
+
+// SQ_DEBUG_VTX_TB_1
+#define SQ_DEBUG_VTX_TB_1__VS_DONE_PTR_MASK 0x0000ffffL
+
+// SQ_DEBUG_VTX_TB_STATUS_REG
+#define SQ_DEBUG_VTX_TB_STATUS_REG__VS_STATUS_REG_MASK 0xffffffffL
+
+// SQ_DEBUG_VTX_TB_STATE_MEM
+#define SQ_DEBUG_VTX_TB_STATE_MEM__VS_STATE_MEM_MASK 0xffffffffL
+
+// SQ_DEBUG_PIX_TB_0
+#define SQ_DEBUG_PIX_TB_0__PIX_HEAD_PTR_MASK 0x0000003fL
+#define SQ_DEBUG_PIX_TB_0__TAIL_PTR_MASK 0x00000fc0L
+#define SQ_DEBUG_PIX_TB_0__FULL_CNT_MASK 0x0007f000L
+#define SQ_DEBUG_PIX_TB_0__NXT_PIX_ALLOC_CNT_MASK 0x01f80000L
+#define SQ_DEBUG_PIX_TB_0__NXT_PIX_EXP_CNT_MASK 0x7e000000L
+#define SQ_DEBUG_PIX_TB_0__BUSY_MASK 0x80000000L
+#define SQ_DEBUG_PIX_TB_0__BUSY 0x80000000L
+
+// SQ_DEBUG_PIX_TB_STATUS_REG_0
+#define SQ_DEBUG_PIX_TB_STATUS_REG_0__PIX_TB_STATUS_REG_0_MASK 0xffffffffL
+
+// SQ_DEBUG_PIX_TB_STATUS_REG_1
+#define SQ_DEBUG_PIX_TB_STATUS_REG_1__PIX_TB_STATUS_REG_1_MASK 0xffffffffL
+
+// SQ_DEBUG_PIX_TB_STATUS_REG_2
+#define SQ_DEBUG_PIX_TB_STATUS_REG_2__PIX_TB_STATUS_REG_2_MASK 0xffffffffL
+
+// SQ_DEBUG_PIX_TB_STATUS_REG_3
+#define SQ_DEBUG_PIX_TB_STATUS_REG_3__PIX_TB_STATUS_REG_3_MASK 0xffffffffL
+
+// SQ_DEBUG_PIX_TB_STATE_MEM
+#define SQ_DEBUG_PIX_TB_STATE_MEM__PIX_TB_STATE_MEM_MASK 0xffffffffL
+
+// SQ_PERFCOUNTER0_SELECT
+#define SQ_PERFCOUNTER0_SELECT__PERF_SEL_MASK 0x000000ffL
+
+// SQ_PERFCOUNTER1_SELECT
+#define SQ_PERFCOUNTER1_SELECT__PERF_SEL_MASK 0x000000ffL
+
+// SQ_PERFCOUNTER2_SELECT
+#define SQ_PERFCOUNTER2_SELECT__PERF_SEL_MASK 0x000000ffL
+
+// SQ_PERFCOUNTER3_SELECT
+#define SQ_PERFCOUNTER3_SELECT__PERF_SEL_MASK 0x000000ffL
+
+// SQ_PERFCOUNTER0_LOW
+#define SQ_PERFCOUNTER0_LOW__PERF_COUNT_MASK 0xffffffffL
+
+// SQ_PERFCOUNTER0_HI
+#define SQ_PERFCOUNTER0_HI__PERF_COUNT_MASK 0x0000ffffL
+
+// SQ_PERFCOUNTER1_LOW
+#define SQ_PERFCOUNTER1_LOW__PERF_COUNT_MASK 0xffffffffL
+
+// SQ_PERFCOUNTER1_HI
+#define SQ_PERFCOUNTER1_HI__PERF_COUNT_MASK 0x0000ffffL
+
+// SQ_PERFCOUNTER2_LOW
+#define SQ_PERFCOUNTER2_LOW__PERF_COUNT_MASK 0xffffffffL
+
+// SQ_PERFCOUNTER2_HI
+#define SQ_PERFCOUNTER2_HI__PERF_COUNT_MASK 0x0000ffffL
+
+// SQ_PERFCOUNTER3_LOW
+#define SQ_PERFCOUNTER3_LOW__PERF_COUNT_MASK 0xffffffffL
+
+// SQ_PERFCOUNTER3_HI
+#define SQ_PERFCOUNTER3_HI__PERF_COUNT_MASK 0x0000ffffL
+
+// SX_PERFCOUNTER0_SELECT
+#define SX_PERFCOUNTER0_SELECT__PERF_SEL_MASK 0x000000ffL
+
+// SX_PERFCOUNTER0_LOW
+#define SX_PERFCOUNTER0_LOW__PERF_COUNT_MASK 0xffffffffL
+
+// SX_PERFCOUNTER0_HI
+#define SX_PERFCOUNTER0_HI__PERF_COUNT_MASK 0x0000ffffL
+
+// SQ_INSTRUCTION_ALU_0
+#define SQ_INSTRUCTION_ALU_0__VECTOR_RESULT_MASK 0x0000003fL
+#define SQ_INSTRUCTION_ALU_0__CST_0_ABS_MOD_MASK 0x00000040L
+#define SQ_INSTRUCTION_ALU_0__CST_0_ABS_MOD 0x00000040L
+#define SQ_INSTRUCTION_ALU_0__LOW_PRECISION_16B_FP_MASK 0x00000080L
+#define SQ_INSTRUCTION_ALU_0__LOW_PRECISION_16B_FP 0x00000080L
+#define SQ_INSTRUCTION_ALU_0__SCALAR_RESULT_MASK 0x00003f00L
+#define SQ_INSTRUCTION_ALU_0__SST_0_ABS_MOD_MASK 0x00004000L
+#define SQ_INSTRUCTION_ALU_0__SST_0_ABS_MOD 0x00004000L
+#define SQ_INSTRUCTION_ALU_0__EXPORT_DATA_MASK 0x00008000L
+#define SQ_INSTRUCTION_ALU_0__EXPORT_DATA 0x00008000L
+#define SQ_INSTRUCTION_ALU_0__VECTOR_WRT_MSK_MASK 0x000f0000L
+#define SQ_INSTRUCTION_ALU_0__SCALAR_WRT_MSK_MASK 0x00f00000L
+#define SQ_INSTRUCTION_ALU_0__VECTOR_CLAMP_MASK 0x01000000L
+#define SQ_INSTRUCTION_ALU_0__VECTOR_CLAMP 0x01000000L
+#define SQ_INSTRUCTION_ALU_0__SCALAR_CLAMP_MASK 0x02000000L
+#define SQ_INSTRUCTION_ALU_0__SCALAR_CLAMP 0x02000000L
+#define SQ_INSTRUCTION_ALU_0__SCALAR_OPCODE_MASK 0xfc000000L
+
+// SQ_INSTRUCTION_ALU_1
+#define SQ_INSTRUCTION_ALU_1__SRC_C_SWIZZLE_R_MASK 0x00000003L
+#define SQ_INSTRUCTION_ALU_1__SRC_C_SWIZZLE_G_MASK 0x0000000cL
+#define SQ_INSTRUCTION_ALU_1__SRC_C_SWIZZLE_B_MASK 0x00000030L
+#define SQ_INSTRUCTION_ALU_1__SRC_C_SWIZZLE_A_MASK 0x000000c0L
+#define SQ_INSTRUCTION_ALU_1__SRC_B_SWIZZLE_R_MASK 0x00000300L
+#define SQ_INSTRUCTION_ALU_1__SRC_B_SWIZZLE_G_MASK 0x00000c00L
+#define SQ_INSTRUCTION_ALU_1__SRC_B_SWIZZLE_B_MASK 0x00003000L
+#define SQ_INSTRUCTION_ALU_1__SRC_B_SWIZZLE_A_MASK 0x0000c000L
+#define SQ_INSTRUCTION_ALU_1__SRC_A_SWIZZLE_R_MASK 0x00030000L
+#define SQ_INSTRUCTION_ALU_1__SRC_A_SWIZZLE_G_MASK 0x000c0000L
+#define SQ_INSTRUCTION_ALU_1__SRC_A_SWIZZLE_B_MASK 0x00300000L
+#define SQ_INSTRUCTION_ALU_1__SRC_A_SWIZZLE_A_MASK 0x00c00000L
+#define SQ_INSTRUCTION_ALU_1__SRC_C_ARG_MOD_MASK 0x01000000L
+#define SQ_INSTRUCTION_ALU_1__SRC_C_ARG_MOD 0x01000000L
+#define SQ_INSTRUCTION_ALU_1__SRC_B_ARG_MOD_MASK 0x02000000L
+#define SQ_INSTRUCTION_ALU_1__SRC_B_ARG_MOD 0x02000000L
+#define SQ_INSTRUCTION_ALU_1__SRC_A_ARG_MOD_MASK 0x04000000L
+#define SQ_INSTRUCTION_ALU_1__SRC_A_ARG_MOD 0x04000000L
+#define SQ_INSTRUCTION_ALU_1__PRED_SELECT_MASK 0x18000000L
+#define SQ_INSTRUCTION_ALU_1__RELATIVE_ADDR_MASK 0x20000000L
+#define SQ_INSTRUCTION_ALU_1__RELATIVE_ADDR 0x20000000L
+#define SQ_INSTRUCTION_ALU_1__CONST_1_REL_ABS_MASK 0x40000000L
+#define SQ_INSTRUCTION_ALU_1__CONST_1_REL_ABS 0x40000000L
+#define SQ_INSTRUCTION_ALU_1__CONST_0_REL_ABS_MASK 0x80000000L
+#define SQ_INSTRUCTION_ALU_1__CONST_0_REL_ABS 0x80000000L
+
+// SQ_INSTRUCTION_ALU_2
+#define SQ_INSTRUCTION_ALU_2__SRC_C_REG_PTR_MASK 0x0000003fL
+#define SQ_INSTRUCTION_ALU_2__REG_SELECT_C_MASK 0x00000040L
+#define SQ_INSTRUCTION_ALU_2__REG_SELECT_C 0x00000040L
+#define SQ_INSTRUCTION_ALU_2__REG_ABS_MOD_C_MASK 0x00000080L
+#define SQ_INSTRUCTION_ALU_2__REG_ABS_MOD_C 0x00000080L
+#define SQ_INSTRUCTION_ALU_2__SRC_B_REG_PTR_MASK 0x00003f00L
+#define SQ_INSTRUCTION_ALU_2__REG_SELECT_B_MASK 0x00004000L
+#define SQ_INSTRUCTION_ALU_2__REG_SELECT_B 0x00004000L
+#define SQ_INSTRUCTION_ALU_2__REG_ABS_MOD_B_MASK 0x00008000L
+#define SQ_INSTRUCTION_ALU_2__REG_ABS_MOD_B 0x00008000L
+#define SQ_INSTRUCTION_ALU_2__SRC_A_REG_PTR_MASK 0x003f0000L
+#define SQ_INSTRUCTION_ALU_2__REG_SELECT_A_MASK 0x00400000L
+#define SQ_INSTRUCTION_ALU_2__REG_SELECT_A 0x00400000L
+#define SQ_INSTRUCTION_ALU_2__REG_ABS_MOD_A_MASK 0x00800000L
+#define SQ_INSTRUCTION_ALU_2__REG_ABS_MOD_A 0x00800000L
+#define SQ_INSTRUCTION_ALU_2__VECTOR_OPCODE_MASK 0x1f000000L
+#define SQ_INSTRUCTION_ALU_2__SRC_C_SEL_MASK 0x20000000L
+#define SQ_INSTRUCTION_ALU_2__SRC_C_SEL 0x20000000L
+#define SQ_INSTRUCTION_ALU_2__SRC_B_SEL_MASK 0x40000000L
+#define SQ_INSTRUCTION_ALU_2__SRC_B_SEL 0x40000000L
+#define SQ_INSTRUCTION_ALU_2__SRC_A_SEL_MASK 0x80000000L
+#define SQ_INSTRUCTION_ALU_2__SRC_A_SEL 0x80000000L
+
+// SQ_INSTRUCTION_CF_EXEC_0
+#define SQ_INSTRUCTION_CF_EXEC_0__ADDRESS_MASK 0x000001ffL
+#define SQ_INSTRUCTION_CF_EXEC_0__RESERVED_MASK 0x00000e00L
+#define SQ_INSTRUCTION_CF_EXEC_0__COUNT_MASK 0x00007000L
+#define SQ_INSTRUCTION_CF_EXEC_0__YIELD_MASK 0x00008000L
+#define SQ_INSTRUCTION_CF_EXEC_0__YIELD 0x00008000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_TYPE_0_MASK 0x00010000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_TYPE_0 0x00010000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_SERIAL_0_MASK 0x00020000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_SERIAL_0 0x00020000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_TYPE_1_MASK 0x00040000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_TYPE_1 0x00040000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_SERIAL_1_MASK 0x00080000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_SERIAL_1 0x00080000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_TYPE_2_MASK 0x00100000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_TYPE_2 0x00100000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_SERIAL_2_MASK 0x00200000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_SERIAL_2 0x00200000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_TYPE_3_MASK 0x00400000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_TYPE_3 0x00400000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_SERIAL_3_MASK 0x00800000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_SERIAL_3 0x00800000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_TYPE_4_MASK 0x01000000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_TYPE_4 0x01000000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_SERIAL_4_MASK 0x02000000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_SERIAL_4 0x02000000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_TYPE_5_MASK 0x04000000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_TYPE_5 0x04000000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_SERIAL_5_MASK 0x08000000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_SERIAL_5 0x08000000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_VC_0_MASK 0x10000000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_VC_0 0x10000000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_VC_1_MASK 0x20000000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_VC_1 0x20000000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_VC_2_MASK 0x40000000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_VC_2 0x40000000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_VC_3_MASK 0x80000000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_VC_3 0x80000000L
+
+// SQ_INSTRUCTION_CF_EXEC_1
+#define SQ_INSTRUCTION_CF_EXEC_1__INST_VC_4_MASK 0x00000001L
+#define SQ_INSTRUCTION_CF_EXEC_1__INST_VC_4 0x00000001L
+#define SQ_INSTRUCTION_CF_EXEC_1__INST_VC_5_MASK 0x00000002L
+#define SQ_INSTRUCTION_CF_EXEC_1__INST_VC_5 0x00000002L
+#define SQ_INSTRUCTION_CF_EXEC_1__BOOL_ADDR_MASK 0x000003fcL
+#define SQ_INSTRUCTION_CF_EXEC_1__CONDITION_MASK 0x00000400L
+#define SQ_INSTRUCTION_CF_EXEC_1__CONDITION 0x00000400L
+#define SQ_INSTRUCTION_CF_EXEC_1__ADDRESS_MODE_MASK 0x00000800L
+#define SQ_INSTRUCTION_CF_EXEC_1__ADDRESS_MODE 0x00000800L
+#define SQ_INSTRUCTION_CF_EXEC_1__OPCODE_MASK 0x0000f000L
+#define SQ_INSTRUCTION_CF_EXEC_1__ADDRESS_MASK 0x01ff0000L
+#define SQ_INSTRUCTION_CF_EXEC_1__RESERVED_MASK 0x0e000000L
+#define SQ_INSTRUCTION_CF_EXEC_1__COUNT_MASK 0x70000000L
+#define SQ_INSTRUCTION_CF_EXEC_1__YIELD_MASK 0x80000000L
+#define SQ_INSTRUCTION_CF_EXEC_1__YIELD 0x80000000L
+
+// SQ_INSTRUCTION_CF_EXEC_2
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_TYPE_0_MASK 0x00000001L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_TYPE_0 0x00000001L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_SERIAL_0_MASK 0x00000002L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_SERIAL_0 0x00000002L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_TYPE_1_MASK 0x00000004L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_TYPE_1 0x00000004L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_SERIAL_1_MASK 0x00000008L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_SERIAL_1 0x00000008L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_TYPE_2_MASK 0x00000010L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_TYPE_2 0x00000010L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_SERIAL_2_MASK 0x00000020L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_SERIAL_2 0x00000020L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_TYPE_3_MASK 0x00000040L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_TYPE_3 0x00000040L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_SERIAL_3_MASK 0x00000080L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_SERIAL_3 0x00000080L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_TYPE_4_MASK 0x00000100L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_TYPE_4 0x00000100L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_SERIAL_4_MASK 0x00000200L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_SERIAL_4 0x00000200L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_TYPE_5_MASK 0x00000400L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_TYPE_5 0x00000400L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_SERIAL_5_MASK 0x00000800L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_SERIAL_5 0x00000800L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_VC_0_MASK 0x00001000L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_VC_0 0x00001000L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_VC_1_MASK 0x00002000L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_VC_1 0x00002000L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_VC_2_MASK 0x00004000L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_VC_2 0x00004000L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_VC_3_MASK 0x00008000L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_VC_3 0x00008000L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_VC_4_MASK 0x00010000L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_VC_4 0x00010000L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_VC_5_MASK 0x00020000L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_VC_5 0x00020000L
+#define SQ_INSTRUCTION_CF_EXEC_2__BOOL_ADDR_MASK 0x03fc0000L
+#define SQ_INSTRUCTION_CF_EXEC_2__CONDITION_MASK 0x04000000L
+#define SQ_INSTRUCTION_CF_EXEC_2__CONDITION 0x04000000L
+#define SQ_INSTRUCTION_CF_EXEC_2__ADDRESS_MODE_MASK 0x08000000L
+#define SQ_INSTRUCTION_CF_EXEC_2__ADDRESS_MODE 0x08000000L
+#define SQ_INSTRUCTION_CF_EXEC_2__OPCODE_MASK 0xf0000000L
+
+// SQ_INSTRUCTION_CF_LOOP_0
+#define SQ_INSTRUCTION_CF_LOOP_0__ADDRESS_MASK 0x000003ffL
+#define SQ_INSTRUCTION_CF_LOOP_0__RESERVED_0_MASK 0x0000fc00L
+#define SQ_INSTRUCTION_CF_LOOP_0__LOOP_ID_MASK 0x001f0000L
+#define SQ_INSTRUCTION_CF_LOOP_0__RESERVED_1_MASK 0xffe00000L
+
+// SQ_INSTRUCTION_CF_LOOP_1
+#define SQ_INSTRUCTION_CF_LOOP_1__RESERVED_0_MASK 0x000007ffL
+#define SQ_INSTRUCTION_CF_LOOP_1__ADDRESS_MODE_MASK 0x00000800L
+#define SQ_INSTRUCTION_CF_LOOP_1__ADDRESS_MODE 0x00000800L
+#define SQ_INSTRUCTION_CF_LOOP_1__OPCODE_MASK 0x0000f000L
+#define SQ_INSTRUCTION_CF_LOOP_1__ADDRESS_MASK 0x03ff0000L
+#define SQ_INSTRUCTION_CF_LOOP_1__RESERVED_1_MASK 0xfc000000L
+
+// SQ_INSTRUCTION_CF_LOOP_2
+#define SQ_INSTRUCTION_CF_LOOP_2__LOOP_ID_MASK 0x0000001fL
+#define SQ_INSTRUCTION_CF_LOOP_2__RESERVED_MASK 0x07ffffe0L
+#define SQ_INSTRUCTION_CF_LOOP_2__ADDRESS_MODE_MASK 0x08000000L
+#define SQ_INSTRUCTION_CF_LOOP_2__ADDRESS_MODE 0x08000000L
+#define SQ_INSTRUCTION_CF_LOOP_2__OPCODE_MASK 0xf0000000L
+
+// SQ_INSTRUCTION_CF_JMP_CALL_0
+#define SQ_INSTRUCTION_CF_JMP_CALL_0__ADDRESS_MASK 0x000003ffL
+#define SQ_INSTRUCTION_CF_JMP_CALL_0__RESERVED_0_MASK 0x00001c00L
+#define SQ_INSTRUCTION_CF_JMP_CALL_0__FORCE_CALL_MASK 0x00002000L
+#define SQ_INSTRUCTION_CF_JMP_CALL_0__FORCE_CALL 0x00002000L
+#define SQ_INSTRUCTION_CF_JMP_CALL_0__PREDICATED_JMP_MASK 0x00004000L
+#define SQ_INSTRUCTION_CF_JMP_CALL_0__PREDICATED_JMP 0x00004000L
+#define SQ_INSTRUCTION_CF_JMP_CALL_0__RESERVED_1_MASK 0xffff8000L
+
+// SQ_INSTRUCTION_CF_JMP_CALL_1
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__RESERVED_0_MASK 0x00000001L
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__RESERVED_0 0x00000001L
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__DIRECTION_MASK 0x00000002L
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__DIRECTION 0x00000002L
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__BOOL_ADDR_MASK 0x000003fcL
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__CONDITION_MASK 0x00000400L
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__CONDITION 0x00000400L
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__ADDRESS_MODE_MASK 0x00000800L
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__ADDRESS_MODE 0x00000800L
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__OPCODE_MASK 0x0000f000L
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__ADDRESS_MASK 0x03ff0000L
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__RESERVED_1_MASK 0x1c000000L
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__FORCE_CALL_MASK 0x20000000L
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__FORCE_CALL 0x20000000L
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__RESERVED_2_MASK 0xc0000000L
+
+// SQ_INSTRUCTION_CF_JMP_CALL_2
+#define SQ_INSTRUCTION_CF_JMP_CALL_2__RESERVED_MASK 0x0001ffffL
+#define SQ_INSTRUCTION_CF_JMP_CALL_2__DIRECTION_MASK 0x00020000L
+#define SQ_INSTRUCTION_CF_JMP_CALL_2__DIRECTION 0x00020000L
+#define SQ_INSTRUCTION_CF_JMP_CALL_2__BOOL_ADDR_MASK 0x03fc0000L
+#define SQ_INSTRUCTION_CF_JMP_CALL_2__CONDITION_MASK 0x04000000L
+#define SQ_INSTRUCTION_CF_JMP_CALL_2__CONDITION 0x04000000L
+#define SQ_INSTRUCTION_CF_JMP_CALL_2__ADDRESS_MODE_MASK 0x08000000L
+#define SQ_INSTRUCTION_CF_JMP_CALL_2__ADDRESS_MODE 0x08000000L
+#define SQ_INSTRUCTION_CF_JMP_CALL_2__OPCODE_MASK 0xf0000000L
+
+// SQ_INSTRUCTION_CF_ALLOC_0
+#define SQ_INSTRUCTION_CF_ALLOC_0__SIZE_MASK 0x0000000fL
+#define SQ_INSTRUCTION_CF_ALLOC_0__RESERVED_MASK 0xfffffff0L
+
+// SQ_INSTRUCTION_CF_ALLOC_1
+#define SQ_INSTRUCTION_CF_ALLOC_1__RESERVED_0_MASK 0x000000ffL
+#define SQ_INSTRUCTION_CF_ALLOC_1__NO_SERIAL_MASK 0x00000100L
+#define SQ_INSTRUCTION_CF_ALLOC_1__NO_SERIAL 0x00000100L
+#define SQ_INSTRUCTION_CF_ALLOC_1__BUFFER_SELECT_MASK 0x00000600L
+#define SQ_INSTRUCTION_CF_ALLOC_1__ALLOC_MODE_MASK 0x00000800L
+#define SQ_INSTRUCTION_CF_ALLOC_1__ALLOC_MODE 0x00000800L
+#define SQ_INSTRUCTION_CF_ALLOC_1__OPCODE_MASK 0x0000f000L
+#define SQ_INSTRUCTION_CF_ALLOC_1__SIZE_MASK 0x000f0000L
+#define SQ_INSTRUCTION_CF_ALLOC_1__RESERVED_1_MASK 0xfff00000L
+
+// SQ_INSTRUCTION_CF_ALLOC_2
+#define SQ_INSTRUCTION_CF_ALLOC_2__RESERVED_MASK 0x00ffffffL
+#define SQ_INSTRUCTION_CF_ALLOC_2__NO_SERIAL_MASK 0x01000000L
+#define SQ_INSTRUCTION_CF_ALLOC_2__NO_SERIAL 0x01000000L
+#define SQ_INSTRUCTION_CF_ALLOC_2__BUFFER_SELECT_MASK 0x06000000L
+#define SQ_INSTRUCTION_CF_ALLOC_2__ALLOC_MODE_MASK 0x08000000L
+#define SQ_INSTRUCTION_CF_ALLOC_2__ALLOC_MODE 0x08000000L
+#define SQ_INSTRUCTION_CF_ALLOC_2__OPCODE_MASK 0xf0000000L
+
+// SQ_INSTRUCTION_TFETCH_0
+#define SQ_INSTRUCTION_TFETCH_0__OPCODE_MASK 0x0000001fL
+#define SQ_INSTRUCTION_TFETCH_0__SRC_GPR_MASK 0x000007e0L
+#define SQ_INSTRUCTION_TFETCH_0__SRC_GPR_AM_MASK 0x00000800L
+#define SQ_INSTRUCTION_TFETCH_0__SRC_GPR_AM 0x00000800L
+#define SQ_INSTRUCTION_TFETCH_0__DST_GPR_MASK 0x0003f000L
+#define SQ_INSTRUCTION_TFETCH_0__DST_GPR_AM_MASK 0x00040000L
+#define SQ_INSTRUCTION_TFETCH_0__DST_GPR_AM 0x00040000L
+#define SQ_INSTRUCTION_TFETCH_0__FETCH_VALID_ONLY_MASK 0x00080000L
+#define SQ_INSTRUCTION_TFETCH_0__FETCH_VALID_ONLY 0x00080000L
+#define SQ_INSTRUCTION_TFETCH_0__CONST_INDEX_MASK 0x01f00000L
+#define SQ_INSTRUCTION_TFETCH_0__TX_COORD_DENORM_MASK 0x02000000L
+#define SQ_INSTRUCTION_TFETCH_0__TX_COORD_DENORM 0x02000000L
+#define SQ_INSTRUCTION_TFETCH_0__SRC_SEL_X_MASK 0x0c000000L
+#define SQ_INSTRUCTION_TFETCH_0__SRC_SEL_Y_MASK 0x30000000L
+#define SQ_INSTRUCTION_TFETCH_0__SRC_SEL_Z_MASK 0xc0000000L
+
+// SQ_INSTRUCTION_TFETCH_1
+#define SQ_INSTRUCTION_TFETCH_1__DST_SEL_X_MASK 0x00000007L
+#define SQ_INSTRUCTION_TFETCH_1__DST_SEL_Y_MASK 0x00000038L
+#define SQ_INSTRUCTION_TFETCH_1__DST_SEL_Z_MASK 0x000001c0L
+#define SQ_INSTRUCTION_TFETCH_1__DST_SEL_W_MASK 0x00000e00L
+#define SQ_INSTRUCTION_TFETCH_1__MAG_FILTER_MASK 0x00003000L
+#define SQ_INSTRUCTION_TFETCH_1__MIN_FILTER_MASK 0x0000c000L
+#define SQ_INSTRUCTION_TFETCH_1__MIP_FILTER_MASK 0x00030000L
+#define SQ_INSTRUCTION_TFETCH_1__ANISO_FILTER_MASK 0x001c0000L
+#define SQ_INSTRUCTION_TFETCH_1__ARBITRARY_FILTER_MASK 0x00e00000L
+#define SQ_INSTRUCTION_TFETCH_1__VOL_MAG_FILTER_MASK 0x03000000L
+#define SQ_INSTRUCTION_TFETCH_1__VOL_MIN_FILTER_MASK 0x0c000000L
+#define SQ_INSTRUCTION_TFETCH_1__USE_COMP_LOD_MASK 0x10000000L
+#define SQ_INSTRUCTION_TFETCH_1__USE_COMP_LOD 0x10000000L
+#define SQ_INSTRUCTION_TFETCH_1__USE_REG_LOD_MASK 0x60000000L
+#define SQ_INSTRUCTION_TFETCH_1__PRED_SELECT_MASK 0x80000000L
+#define SQ_INSTRUCTION_TFETCH_1__PRED_SELECT 0x80000000L
+
+// SQ_INSTRUCTION_TFETCH_2
+#define SQ_INSTRUCTION_TFETCH_2__USE_REG_GRADIENTS_MASK 0x00000001L
+#define SQ_INSTRUCTION_TFETCH_2__USE_REG_GRADIENTS 0x00000001L
+#define SQ_INSTRUCTION_TFETCH_2__SAMPLE_LOCATION_MASK 0x00000002L
+#define SQ_INSTRUCTION_TFETCH_2__SAMPLE_LOCATION 0x00000002L
+#define SQ_INSTRUCTION_TFETCH_2__LOD_BIAS_MASK 0x000001fcL
+#define SQ_INSTRUCTION_TFETCH_2__UNUSED_MASK 0x0000fe00L
+#define SQ_INSTRUCTION_TFETCH_2__OFFSET_X_MASK 0x001f0000L
+#define SQ_INSTRUCTION_TFETCH_2__OFFSET_Y_MASK 0x03e00000L
+#define SQ_INSTRUCTION_TFETCH_2__OFFSET_Z_MASK 0x7c000000L
+#define SQ_INSTRUCTION_TFETCH_2__PRED_CONDITION_MASK 0x80000000L
+#define SQ_INSTRUCTION_TFETCH_2__PRED_CONDITION 0x80000000L
+
+// SQ_INSTRUCTION_VFETCH_0
+#define SQ_INSTRUCTION_VFETCH_0__OPCODE_MASK 0x0000001fL
+#define SQ_INSTRUCTION_VFETCH_0__SRC_GPR_MASK 0x000007e0L
+#define SQ_INSTRUCTION_VFETCH_0__SRC_GPR_AM_MASK 0x00000800L
+#define SQ_INSTRUCTION_VFETCH_0__SRC_GPR_AM 0x00000800L
+#define SQ_INSTRUCTION_VFETCH_0__DST_GPR_MASK 0x0003f000L
+#define SQ_INSTRUCTION_VFETCH_0__DST_GPR_AM_MASK 0x00040000L
+#define SQ_INSTRUCTION_VFETCH_0__DST_GPR_AM 0x00040000L
+#define SQ_INSTRUCTION_VFETCH_0__MUST_BE_ONE_MASK 0x00080000L
+#define SQ_INSTRUCTION_VFETCH_0__MUST_BE_ONE 0x00080000L
+#define SQ_INSTRUCTION_VFETCH_0__CONST_INDEX_MASK 0x01f00000L
+#define SQ_INSTRUCTION_VFETCH_0__CONST_INDEX_SEL_MASK 0x06000000L
+#define SQ_INSTRUCTION_VFETCH_0__SRC_SEL_MASK 0xc0000000L
+
+// SQ_INSTRUCTION_VFETCH_1
+#define SQ_INSTRUCTION_VFETCH_1__DST_SEL_X_MASK 0x00000007L
+#define SQ_INSTRUCTION_VFETCH_1__DST_SEL_Y_MASK 0x00000038L
+#define SQ_INSTRUCTION_VFETCH_1__DST_SEL_Z_MASK 0x000001c0L
+#define SQ_INSTRUCTION_VFETCH_1__DST_SEL_W_MASK 0x00000e00L
+#define SQ_INSTRUCTION_VFETCH_1__FORMAT_COMP_ALL_MASK 0x00001000L
+#define SQ_INSTRUCTION_VFETCH_1__FORMAT_COMP_ALL 0x00001000L
+#define SQ_INSTRUCTION_VFETCH_1__NUM_FORMAT_ALL_MASK 0x00002000L
+#define SQ_INSTRUCTION_VFETCH_1__NUM_FORMAT_ALL 0x00002000L
+#define SQ_INSTRUCTION_VFETCH_1__SIGNED_RF_MODE_ALL_MASK 0x00004000L
+#define SQ_INSTRUCTION_VFETCH_1__SIGNED_RF_MODE_ALL 0x00004000L
+#define SQ_INSTRUCTION_VFETCH_1__DATA_FORMAT_MASK 0x003f0000L
+#define SQ_INSTRUCTION_VFETCH_1__EXP_ADJUST_ALL_MASK 0x3f800000L
+#define SQ_INSTRUCTION_VFETCH_1__PRED_SELECT_MASK 0x80000000L
+#define SQ_INSTRUCTION_VFETCH_1__PRED_SELECT 0x80000000L
+
+// SQ_INSTRUCTION_VFETCH_2
+#define SQ_INSTRUCTION_VFETCH_2__STRIDE_MASK 0x000000ffL
+#define SQ_INSTRUCTION_VFETCH_2__OFFSET_MASK 0x00ff0000L
+#define SQ_INSTRUCTION_VFETCH_2__PRED_CONDITION_MASK 0x80000000L
+#define SQ_INSTRUCTION_VFETCH_2__PRED_CONDITION 0x80000000L
+
+// SQ_CONSTANT_0
+#define SQ_CONSTANT_0__RED_MASK 0xffffffffL
+
+// SQ_CONSTANT_1
+#define SQ_CONSTANT_1__GREEN_MASK 0xffffffffL
+
+// SQ_CONSTANT_2
+#define SQ_CONSTANT_2__BLUE_MASK 0xffffffffL
+
+// SQ_CONSTANT_3
+#define SQ_CONSTANT_3__ALPHA_MASK 0xffffffffL
+
+// SQ_FETCH_0
+#define SQ_FETCH_0__VALUE_MASK 0xffffffffL
+
+// SQ_FETCH_1
+#define SQ_FETCH_1__VALUE_MASK 0xffffffffL
+
+// SQ_FETCH_2
+#define SQ_FETCH_2__VALUE_MASK 0xffffffffL
+
+// SQ_FETCH_3
+#define SQ_FETCH_3__VALUE_MASK 0xffffffffL
+
+// SQ_FETCH_4
+#define SQ_FETCH_4__VALUE_MASK 0xffffffffL
+
+// SQ_FETCH_5
+#define SQ_FETCH_5__VALUE_MASK 0xffffffffL
+
+// SQ_CONSTANT_VFETCH_0
+#define SQ_CONSTANT_VFETCH_0__TYPE_MASK 0x00000001L
+#define SQ_CONSTANT_VFETCH_0__TYPE 0x00000001L
+#define SQ_CONSTANT_VFETCH_0__STATE_MASK 0x00000002L
+#define SQ_CONSTANT_VFETCH_0__STATE 0x00000002L
+#define SQ_CONSTANT_VFETCH_0__BASE_ADDRESS_MASK 0xfffffffcL
+
+// SQ_CONSTANT_VFETCH_1
+#define SQ_CONSTANT_VFETCH_1__ENDIAN_SWAP_MASK 0x00000003L
+#define SQ_CONSTANT_VFETCH_1__LIMIT_ADDRESS_MASK 0xfffffffcL
+
+// SQ_CONSTANT_T2
+#define SQ_CONSTANT_T2__VALUE_MASK 0xffffffffL
+
+// SQ_CONSTANT_T3
+#define SQ_CONSTANT_T3__VALUE_MASK 0xffffffffL
+
+// SQ_CF_BOOLEANS
+#define SQ_CF_BOOLEANS__CF_BOOLEANS_0_MASK 0x000000ffL
+#define SQ_CF_BOOLEANS__CF_BOOLEANS_1_MASK 0x0000ff00L
+#define SQ_CF_BOOLEANS__CF_BOOLEANS_2_MASK 0x00ff0000L
+#define SQ_CF_BOOLEANS__CF_BOOLEANS_3_MASK 0xff000000L
+
+// SQ_CF_LOOP
+#define SQ_CF_LOOP__CF_LOOP_COUNT_MASK 0x000000ffL
+#define SQ_CF_LOOP__CF_LOOP_START_MASK 0x0000ff00L
+#define SQ_CF_LOOP__CF_LOOP_STEP_MASK 0x00ff0000L
+
+// SQ_CONSTANT_RT_0
+#define SQ_CONSTANT_RT_0__RED_MASK 0xffffffffL
+
+// SQ_CONSTANT_RT_1
+#define SQ_CONSTANT_RT_1__GREEN_MASK 0xffffffffL
+
+// SQ_CONSTANT_RT_2
+#define SQ_CONSTANT_RT_2__BLUE_MASK 0xffffffffL
+
+// SQ_CONSTANT_RT_3
+#define SQ_CONSTANT_RT_3__ALPHA_MASK 0xffffffffL
+
+// SQ_FETCH_RT_0
+#define SQ_FETCH_RT_0__VALUE_MASK 0xffffffffL
+
+// SQ_FETCH_RT_1
+#define SQ_FETCH_RT_1__VALUE_MASK 0xffffffffL
+
+// SQ_FETCH_RT_2
+#define SQ_FETCH_RT_2__VALUE_MASK 0xffffffffL
+
+// SQ_FETCH_RT_3
+#define SQ_FETCH_RT_3__VALUE_MASK 0xffffffffL
+
+// SQ_FETCH_RT_4
+#define SQ_FETCH_RT_4__VALUE_MASK 0xffffffffL
+
+// SQ_FETCH_RT_5
+#define SQ_FETCH_RT_5__VALUE_MASK 0xffffffffL
+
+// SQ_CF_RT_BOOLEANS
+#define SQ_CF_RT_BOOLEANS__CF_BOOLEANS_0_MASK 0x000000ffL
+#define SQ_CF_RT_BOOLEANS__CF_BOOLEANS_1_MASK 0x0000ff00L
+#define SQ_CF_RT_BOOLEANS__CF_BOOLEANS_2_MASK 0x00ff0000L
+#define SQ_CF_RT_BOOLEANS__CF_BOOLEANS_3_MASK 0xff000000L
+
+// SQ_CF_RT_LOOP
+#define SQ_CF_RT_LOOP__CF_LOOP_COUNT_MASK 0x000000ffL
+#define SQ_CF_RT_LOOP__CF_LOOP_START_MASK 0x0000ff00L
+#define SQ_CF_RT_LOOP__CF_LOOP_STEP_MASK 0x00ff0000L
+
+// SQ_VS_PROGRAM
+#define SQ_VS_PROGRAM__BASE_MASK 0x00000fffL
+#define SQ_VS_PROGRAM__SIZE_MASK 0x00fff000L
+
+// SQ_PS_PROGRAM
+#define SQ_PS_PROGRAM__BASE_MASK 0x00000fffL
+#define SQ_PS_PROGRAM__SIZE_MASK 0x00fff000L
+
+// SQ_CF_PROGRAM_SIZE
+#define SQ_CF_PROGRAM_SIZE__VS_CF_SIZE_MASK 0x000007ffL
+#define SQ_CF_PROGRAM_SIZE__PS_CF_SIZE_MASK 0x007ff000L
+
+// SQ_INTERPOLATOR_CNTL
+#define SQ_INTERPOLATOR_CNTL__PARAM_SHADE_MASK 0x0000ffffL
+#define SQ_INTERPOLATOR_CNTL__SAMPLING_PATTERN_MASK 0xffff0000L
+
+// SQ_PROGRAM_CNTL
+#define SQ_PROGRAM_CNTL__VS_NUM_REG_MASK 0x0000003fL
+#define SQ_PROGRAM_CNTL__PS_NUM_REG_MASK 0x00003f00L
+#define SQ_PROGRAM_CNTL__VS_RESOURCE_MASK 0x00010000L
+#define SQ_PROGRAM_CNTL__VS_RESOURCE 0x00010000L
+#define SQ_PROGRAM_CNTL__PS_RESOURCE_MASK 0x00020000L
+#define SQ_PROGRAM_CNTL__PS_RESOURCE 0x00020000L
+#define SQ_PROGRAM_CNTL__PARAM_GEN_MASK 0x00040000L
+#define SQ_PROGRAM_CNTL__PARAM_GEN 0x00040000L
+#define SQ_PROGRAM_CNTL__GEN_INDEX_PIX_MASK 0x00080000L
+#define SQ_PROGRAM_CNTL__GEN_INDEX_PIX 0x00080000L
+#define SQ_PROGRAM_CNTL__VS_EXPORT_COUNT_MASK 0x00f00000L
+#define SQ_PROGRAM_CNTL__VS_EXPORT_MODE_MASK 0x07000000L
+#define SQ_PROGRAM_CNTL__PS_EXPORT_MODE_MASK 0x78000000L
+#define SQ_PROGRAM_CNTL__GEN_INDEX_VTX_MASK 0x80000000L
+#define SQ_PROGRAM_CNTL__GEN_INDEX_VTX 0x80000000L
+
+// SQ_WRAPPING_0
+#define SQ_WRAPPING_0__PARAM_WRAP_0_MASK 0x0000000fL
+#define SQ_WRAPPING_0__PARAM_WRAP_1_MASK 0x000000f0L
+#define SQ_WRAPPING_0__PARAM_WRAP_2_MASK 0x00000f00L
+#define SQ_WRAPPING_0__PARAM_WRAP_3_MASK 0x0000f000L
+#define SQ_WRAPPING_0__PARAM_WRAP_4_MASK 0x000f0000L
+#define SQ_WRAPPING_0__PARAM_WRAP_5_MASK 0x00f00000L
+#define SQ_WRAPPING_0__PARAM_WRAP_6_MASK 0x0f000000L
+#define SQ_WRAPPING_0__PARAM_WRAP_7_MASK 0xf0000000L
+
+// SQ_WRAPPING_1
+#define SQ_WRAPPING_1__PARAM_WRAP_8_MASK 0x0000000fL
+#define SQ_WRAPPING_1__PARAM_WRAP_9_MASK 0x000000f0L
+#define SQ_WRAPPING_1__PARAM_WRAP_10_MASK 0x00000f00L
+#define SQ_WRAPPING_1__PARAM_WRAP_11_MASK 0x0000f000L
+#define SQ_WRAPPING_1__PARAM_WRAP_12_MASK 0x000f0000L
+#define SQ_WRAPPING_1__PARAM_WRAP_13_MASK 0x00f00000L
+#define SQ_WRAPPING_1__PARAM_WRAP_14_MASK 0x0f000000L
+#define SQ_WRAPPING_1__PARAM_WRAP_15_MASK 0xf0000000L
+
+// SQ_VS_CONST
+#define SQ_VS_CONST__BASE_MASK 0x000001ffL
+#define SQ_VS_CONST__SIZE_MASK 0x001ff000L
+
+// SQ_PS_CONST
+#define SQ_PS_CONST__BASE_MASK 0x000001ffL
+#define SQ_PS_CONST__SIZE_MASK 0x001ff000L
+
+// SQ_CONTEXT_MISC
+#define SQ_CONTEXT_MISC__INST_PRED_OPTIMIZE_MASK 0x00000001L
+#define SQ_CONTEXT_MISC__INST_PRED_OPTIMIZE 0x00000001L
+#define SQ_CONTEXT_MISC__SC_OUTPUT_SCREEN_XY_MASK 0x00000002L
+#define SQ_CONTEXT_MISC__SC_OUTPUT_SCREEN_XY 0x00000002L
+#define SQ_CONTEXT_MISC__SC_SAMPLE_CNTL_MASK 0x0000000cL
+#define SQ_CONTEXT_MISC__PARAM_GEN_POS_MASK 0x0000ff00L
+#define SQ_CONTEXT_MISC__PERFCOUNTER_REF_MASK 0x00010000L
+#define SQ_CONTEXT_MISC__PERFCOUNTER_REF 0x00010000L
+#define SQ_CONTEXT_MISC__YEILD_OPTIMIZE_MASK 0x00020000L
+#define SQ_CONTEXT_MISC__YEILD_OPTIMIZE 0x00020000L
+#define SQ_CONTEXT_MISC__TX_CACHE_SEL_MASK 0x00040000L
+#define SQ_CONTEXT_MISC__TX_CACHE_SEL 0x00040000L
+
+// SQ_CF_RD_BASE
+#define SQ_CF_RD_BASE__RD_BASE_MASK 0x00000007L
+
+// SQ_DEBUG_MISC_0
+#define SQ_DEBUG_MISC_0__DB_PROB_ON_MASK 0x00000001L
+#define SQ_DEBUG_MISC_0__DB_PROB_ON 0x00000001L
+#define SQ_DEBUG_MISC_0__DB_PROB_BREAK_MASK 0x00000010L
+#define SQ_DEBUG_MISC_0__DB_PROB_BREAK 0x00000010L
+#define SQ_DEBUG_MISC_0__DB_PROB_ADDR_MASK 0x0007ff00L
+#define SQ_DEBUG_MISC_0__DB_PROB_COUNT_MASK 0xff000000L
+
+// SQ_DEBUG_MISC_1
+#define SQ_DEBUG_MISC_1__DB_ON_PIX_MASK 0x00000001L
+#define SQ_DEBUG_MISC_1__DB_ON_PIX 0x00000001L
+#define SQ_DEBUG_MISC_1__DB_ON_VTX_MASK 0x00000002L
+#define SQ_DEBUG_MISC_1__DB_ON_VTX 0x00000002L
+#define SQ_DEBUG_MISC_1__DB_INST_COUNT_MASK 0x0000ff00L
+#define SQ_DEBUG_MISC_1__DB_BREAK_ADDR_MASK 0x07ff0000L
+
+// MH_ARBITER_CONFIG
+#define MH_ARBITER_CONFIG__SAME_PAGE_LIMIT_MASK 0x0000003fL
+#define MH_ARBITER_CONFIG__SAME_PAGE_GRANULARITY_MASK 0x00000040L
+#define MH_ARBITER_CONFIG__SAME_PAGE_GRANULARITY 0x00000040L
+#define MH_ARBITER_CONFIG__L1_ARB_ENABLE_MASK 0x00000080L
+#define MH_ARBITER_CONFIG__L1_ARB_ENABLE 0x00000080L
+#define MH_ARBITER_CONFIG__L1_ARB_HOLD_ENABLE_MASK 0x00000100L
+#define MH_ARBITER_CONFIG__L1_ARB_HOLD_ENABLE 0x00000100L
+#define MH_ARBITER_CONFIG__L2_ARB_CONTROL_MASK 0x00000200L
+#define MH_ARBITER_CONFIG__L2_ARB_CONTROL 0x00000200L
+#define MH_ARBITER_CONFIG__PAGE_SIZE_MASK 0x00001c00L
+#define MH_ARBITER_CONFIG__TC_REORDER_ENABLE_MASK 0x00002000L
+#define MH_ARBITER_CONFIG__TC_REORDER_ENABLE 0x00002000L
+#define MH_ARBITER_CONFIG__TC_ARB_HOLD_ENABLE_MASK 0x00004000L
+#define MH_ARBITER_CONFIG__TC_ARB_HOLD_ENABLE 0x00004000L
+#define MH_ARBITER_CONFIG__IN_FLIGHT_LIMIT_ENABLE_MASK 0x00008000L
+#define MH_ARBITER_CONFIG__IN_FLIGHT_LIMIT_ENABLE 0x00008000L
+#define MH_ARBITER_CONFIG__IN_FLIGHT_LIMIT_MASK 0x003f0000L
+#define MH_ARBITER_CONFIG__CP_CLNT_ENABLE_MASK 0x00400000L
+#define MH_ARBITER_CONFIG__CP_CLNT_ENABLE 0x00400000L
+#define MH_ARBITER_CONFIG__VGT_CLNT_ENABLE_MASK 0x00800000L
+#define MH_ARBITER_CONFIG__VGT_CLNT_ENABLE 0x00800000L
+#define MH_ARBITER_CONFIG__TC_CLNT_ENABLE_MASK 0x01000000L
+#define MH_ARBITER_CONFIG__TC_CLNT_ENABLE 0x01000000L
+#define MH_ARBITER_CONFIG__RB_CLNT_ENABLE_MASK 0x02000000L
+#define MH_ARBITER_CONFIG__RB_CLNT_ENABLE 0x02000000L
+
+// MH_CLNT_AXI_ID_REUSE
+#define MH_CLNT_AXI_ID_REUSE__CPw_ID_MASK 0x00000007L
+#define MH_CLNT_AXI_ID_REUSE__RESERVED1_MASK 0x00000008L
+#define MH_CLNT_AXI_ID_REUSE__RESERVED1 0x00000008L
+#define MH_CLNT_AXI_ID_REUSE__RBw_ID_MASK 0x00000070L
+#define MH_CLNT_AXI_ID_REUSE__RESERVED2_MASK 0x00000080L
+#define MH_CLNT_AXI_ID_REUSE__RESERVED2 0x00000080L
+#define MH_CLNT_AXI_ID_REUSE__MMUr_ID_MASK 0x00000700L
+
+// MH_INTERRUPT_MASK
+#define MH_INTERRUPT_MASK__AXI_READ_ERROR_MASK 0x00000001L
+#define MH_INTERRUPT_MASK__AXI_READ_ERROR 0x00000001L
+#define MH_INTERRUPT_MASK__AXI_WRITE_ERROR_MASK 0x00000002L
+#define MH_INTERRUPT_MASK__AXI_WRITE_ERROR 0x00000002L
+#define MH_INTERRUPT_MASK__MMU_PAGE_FAULT_MASK 0x00000004L
+#define MH_INTERRUPT_MASK__MMU_PAGE_FAULT 0x00000004L
+
+// MH_INTERRUPT_STATUS
+#define MH_INTERRUPT_STATUS__AXI_READ_ERROR_MASK 0x00000001L
+#define MH_INTERRUPT_STATUS__AXI_READ_ERROR 0x00000001L
+#define MH_INTERRUPT_STATUS__AXI_WRITE_ERROR_MASK 0x00000002L
+#define MH_INTERRUPT_STATUS__AXI_WRITE_ERROR 0x00000002L
+#define MH_INTERRUPT_STATUS__MMU_PAGE_FAULT_MASK 0x00000004L
+#define MH_INTERRUPT_STATUS__MMU_PAGE_FAULT 0x00000004L
+
+// MH_INTERRUPT_CLEAR
+#define MH_INTERRUPT_CLEAR__AXI_READ_ERROR_MASK 0x00000001L
+#define MH_INTERRUPT_CLEAR__AXI_READ_ERROR 0x00000001L
+#define MH_INTERRUPT_CLEAR__AXI_WRITE_ERROR_MASK 0x00000002L
+#define MH_INTERRUPT_CLEAR__AXI_WRITE_ERROR 0x00000002L
+#define MH_INTERRUPT_CLEAR__MMU_PAGE_FAULT_MASK 0x00000004L
+#define MH_INTERRUPT_CLEAR__MMU_PAGE_FAULT 0x00000004L
+
+// MH_AXI_ERROR
+#define MH_AXI_ERROR__AXI_READ_ID_MASK 0x00000007L
+#define MH_AXI_ERROR__AXI_READ_ERROR_MASK 0x00000008L
+#define MH_AXI_ERROR__AXI_READ_ERROR 0x00000008L
+#define MH_AXI_ERROR__AXI_WRITE_ID_MASK 0x00000070L
+#define MH_AXI_ERROR__AXI_WRITE_ERROR_MASK 0x00000080L
+#define MH_AXI_ERROR__AXI_WRITE_ERROR 0x00000080L
+
+// MH_PERFCOUNTER0_SELECT
+#define MH_PERFCOUNTER0_SELECT__PERF_SEL_MASK 0x000000ffL
+
+// MH_PERFCOUNTER1_SELECT
+#define MH_PERFCOUNTER1_SELECT__PERF_SEL_MASK 0x000000ffL
+
+// MH_PERFCOUNTER0_CONFIG
+#define MH_PERFCOUNTER0_CONFIG__N_VALUE_MASK 0x000000ffL
+
+// MH_PERFCOUNTER1_CONFIG
+#define MH_PERFCOUNTER1_CONFIG__N_VALUE_MASK 0x000000ffL
+
+// MH_PERFCOUNTER0_LOW
+#define MH_PERFCOUNTER0_LOW__PERF_COUNTER_LOW_MASK 0xffffffffL
+
+// MH_PERFCOUNTER1_LOW
+#define MH_PERFCOUNTER1_LOW__PERF_COUNTER_LOW_MASK 0xffffffffL
+
+// MH_PERFCOUNTER0_HI
+#define MH_PERFCOUNTER0_HI__PERF_COUNTER_HI_MASK 0x0000ffffL
+
+// MH_PERFCOUNTER1_HI
+#define MH_PERFCOUNTER1_HI__PERF_COUNTER_HI_MASK 0x0000ffffL
+
+// MH_DEBUG_CTRL
+#define MH_DEBUG_CTRL__INDEX_MASK 0x0000003fL
+
+// MH_DEBUG_DATA
+#define MH_DEBUG_DATA__DATA_MASK 0xffffffffL
+
+// MH_DEBUG_REG00
+#define MH_DEBUG_REG00__MH_BUSY_MASK 0x00000001L
+#define MH_DEBUG_REG00__MH_BUSY 0x00000001L
+#define MH_DEBUG_REG00__TRANS_OUTSTANDING_MASK 0x00000002L
+#define MH_DEBUG_REG00__TRANS_OUTSTANDING 0x00000002L
+#define MH_DEBUG_REG00__CP_REQUEST_MASK 0x00000004L
+#define MH_DEBUG_REG00__CP_REQUEST 0x00000004L
+#define MH_DEBUG_REG00__VGT_REQUEST_MASK 0x00000008L
+#define MH_DEBUG_REG00__VGT_REQUEST 0x00000008L
+#define MH_DEBUG_REG00__TC_REQUEST_MASK 0x00000010L
+#define MH_DEBUG_REG00__TC_REQUEST 0x00000010L
+#define MH_DEBUG_REG00__TC_CAM_EMPTY_MASK 0x00000020L
+#define MH_DEBUG_REG00__TC_CAM_EMPTY 0x00000020L
+#define MH_DEBUG_REG00__TC_CAM_FULL_MASK 0x00000040L
+#define MH_DEBUG_REG00__TC_CAM_FULL 0x00000040L
+#define MH_DEBUG_REG00__TCD_EMPTY_MASK 0x00000080L
+#define MH_DEBUG_REG00__TCD_EMPTY 0x00000080L
+#define MH_DEBUG_REG00__TCD_FULL_MASK 0x00000100L
+#define MH_DEBUG_REG00__TCD_FULL 0x00000100L
+#define MH_DEBUG_REG00__RB_REQUEST_MASK 0x00000200L
+#define MH_DEBUG_REG00__RB_REQUEST 0x00000200L
+#define MH_DEBUG_REG00__MH_CLK_EN_STATE_MASK 0x00000400L
+#define MH_DEBUG_REG00__MH_CLK_EN_STATE 0x00000400L
+#define MH_DEBUG_REG00__ARQ_EMPTY_MASK 0x00000800L
+#define MH_DEBUG_REG00__ARQ_EMPTY 0x00000800L
+#define MH_DEBUG_REG00__ARQ_FULL_MASK 0x00001000L
+#define MH_DEBUG_REG00__ARQ_FULL 0x00001000L
+#define MH_DEBUG_REG00__WDB_EMPTY_MASK 0x00002000L
+#define MH_DEBUG_REG00__WDB_EMPTY 0x00002000L
+#define MH_DEBUG_REG00__WDB_FULL_MASK 0x00004000L
+#define MH_DEBUG_REG00__WDB_FULL 0x00004000L
+#define MH_DEBUG_REG00__AXI_AVALID_MASK 0x00008000L
+#define MH_DEBUG_REG00__AXI_AVALID 0x00008000L
+#define MH_DEBUG_REG00__AXI_AREADY_MASK 0x00010000L
+#define MH_DEBUG_REG00__AXI_AREADY 0x00010000L
+#define MH_DEBUG_REG00__AXI_ARVALID_MASK 0x00020000L
+#define MH_DEBUG_REG00__AXI_ARVALID 0x00020000L
+#define MH_DEBUG_REG00__AXI_ARREADY_MASK 0x00040000L
+#define MH_DEBUG_REG00__AXI_ARREADY 0x00040000L
+#define MH_DEBUG_REG00__AXI_WVALID_MASK 0x00080000L
+#define MH_DEBUG_REG00__AXI_WVALID 0x00080000L
+#define MH_DEBUG_REG00__AXI_WREADY_MASK 0x00100000L
+#define MH_DEBUG_REG00__AXI_WREADY 0x00100000L
+#define MH_DEBUG_REG00__AXI_RVALID_MASK 0x00200000L
+#define MH_DEBUG_REG00__AXI_RVALID 0x00200000L
+#define MH_DEBUG_REG00__AXI_RREADY_MASK 0x00400000L
+#define MH_DEBUG_REG00__AXI_RREADY 0x00400000L
+#define MH_DEBUG_REG00__AXI_BVALID_MASK 0x00800000L
+#define MH_DEBUG_REG00__AXI_BVALID 0x00800000L
+#define MH_DEBUG_REG00__AXI_BREADY_MASK 0x01000000L
+#define MH_DEBUG_REG00__AXI_BREADY 0x01000000L
+#define MH_DEBUG_REG00__AXI_HALT_REQ_MASK 0x02000000L
+#define MH_DEBUG_REG00__AXI_HALT_REQ 0x02000000L
+#define MH_DEBUG_REG00__AXI_HALT_ACK_MASK 0x04000000L
+#define MH_DEBUG_REG00__AXI_HALT_ACK 0x04000000L
+
+// MH_DEBUG_REG01
+#define MH_DEBUG_REG01__CP_SEND_q_MASK 0x00000001L
+#define MH_DEBUG_REG01__CP_SEND_q 0x00000001L
+#define MH_DEBUG_REG01__CP_RTR_q_MASK 0x00000002L
+#define MH_DEBUG_REG01__CP_RTR_q 0x00000002L
+#define MH_DEBUG_REG01__CP_WRITE_q_MASK 0x00000004L
+#define MH_DEBUG_REG01__CP_WRITE_q 0x00000004L
+#define MH_DEBUG_REG01__CP_TAG_q_MASK 0x00000038L
+#define MH_DEBUG_REG01__CP_BE_q_MASK 0x00003fc0L
+#define MH_DEBUG_REG01__VGT_SEND_q_MASK 0x00004000L
+#define MH_DEBUG_REG01__VGT_SEND_q 0x00004000L
+#define MH_DEBUG_REG01__VGT_RTR_q_MASK 0x00008000L
+#define MH_DEBUG_REG01__VGT_RTR_q 0x00008000L
+#define MH_DEBUG_REG01__VGT_TAG_q_MASK 0x00010000L
+#define MH_DEBUG_REG01__VGT_TAG_q 0x00010000L
+#define MH_DEBUG_REG01__TC_SEND_q_MASK 0x00020000L
+#define MH_DEBUG_REG01__TC_SEND_q 0x00020000L
+#define MH_DEBUG_REG01__TC_RTR_q_MASK 0x00040000L
+#define MH_DEBUG_REG01__TC_RTR_q 0x00040000L
+#define MH_DEBUG_REG01__TC_ROQ_SEND_q_MASK 0x00080000L
+#define MH_DEBUG_REG01__TC_ROQ_SEND_q 0x00080000L
+#define MH_DEBUG_REG01__TC_ROQ_RTR_q_MASK 0x00100000L
+#define MH_DEBUG_REG01__TC_ROQ_RTR_q 0x00100000L
+#define MH_DEBUG_REG01__TC_MH_written_MASK 0x00200000L
+#define MH_DEBUG_REG01__TC_MH_written 0x00200000L
+#define MH_DEBUG_REG01__RB_SEND_q_MASK 0x00400000L
+#define MH_DEBUG_REG01__RB_SEND_q 0x00400000L
+#define MH_DEBUG_REG01__RB_RTR_q_MASK 0x00800000L
+#define MH_DEBUG_REG01__RB_RTR_q 0x00800000L
+#define MH_DEBUG_REG01__RB_BE_q_MASK 0xff000000L
+
+// MH_DEBUG_REG02
+#define MH_DEBUG_REG02__MH_CP_grb_send_MASK 0x00000001L
+#define MH_DEBUG_REG02__MH_CP_grb_send 0x00000001L
+#define MH_DEBUG_REG02__MH_VGT_grb_send_MASK 0x00000002L
+#define MH_DEBUG_REG02__MH_VGT_grb_send 0x00000002L
+#define MH_DEBUG_REG02__MH_TC_mcsend_MASK 0x00000004L
+#define MH_DEBUG_REG02__MH_TC_mcsend 0x00000004L
+#define MH_DEBUG_REG02__MH_CLNT_rlast_MASK 0x00000008L
+#define MH_DEBUG_REG02__MH_CLNT_rlast 0x00000008L
+#define MH_DEBUG_REG02__MH_CLNT_tag_MASK 0x00000070L
+#define MH_DEBUG_REG02__RDC_RID_MASK 0x00000380L
+#define MH_DEBUG_REG02__RDC_RRESP_MASK 0x00000c00L
+#define MH_DEBUG_REG02__MH_CP_writeclean_MASK 0x00001000L
+#define MH_DEBUG_REG02__MH_CP_writeclean 0x00001000L
+#define MH_DEBUG_REG02__MH_RB_writeclean_MASK 0x00002000L
+#define MH_DEBUG_REG02__MH_RB_writeclean 0x00002000L
+#define MH_DEBUG_REG02__BRC_BID_MASK 0x0001c000L
+#define MH_DEBUG_REG02__BRC_BRESP_MASK 0x00060000L
+
+// MH_DEBUG_REG03
+#define MH_DEBUG_REG03__MH_CLNT_data_31_0_MASK 0xffffffffL
+
+// MH_DEBUG_REG04
+#define MH_DEBUG_REG04__MH_CLNT_data_63_32_MASK 0xffffffffL
+
+// MH_DEBUG_REG05
+#define MH_DEBUG_REG05__CP_MH_send_MASK 0x00000001L
+#define MH_DEBUG_REG05__CP_MH_send 0x00000001L
+#define MH_DEBUG_REG05__CP_MH_write_MASK 0x00000002L
+#define MH_DEBUG_REG05__CP_MH_write 0x00000002L
+#define MH_DEBUG_REG05__CP_MH_tag_MASK 0x0000001cL
+#define MH_DEBUG_REG05__CP_MH_ad_31_5_MASK 0xffffffe0L
+
+// MH_DEBUG_REG06
+#define MH_DEBUG_REG06__CP_MH_data_31_0_MASK 0xffffffffL
+
+// MH_DEBUG_REG07
+#define MH_DEBUG_REG07__CP_MH_data_63_32_MASK 0xffffffffL
+
+// MH_DEBUG_REG08
+#define MH_DEBUG_REG08__ALWAYS_ZERO_MASK 0x00000007L
+#define MH_DEBUG_REG08__VGT_MH_send_MASK 0x00000008L
+#define MH_DEBUG_REG08__VGT_MH_send 0x00000008L
+#define MH_DEBUG_REG08__VGT_MH_tagbe_MASK 0x00000010L
+#define MH_DEBUG_REG08__VGT_MH_tagbe 0x00000010L
+#define MH_DEBUG_REG08__VGT_MH_ad_31_5_MASK 0xffffffe0L
+
+// MH_DEBUG_REG09
+#define MH_DEBUG_REG09__ALWAYS_ZERO_MASK 0x00000003L
+#define MH_DEBUG_REG09__TC_MH_send_MASK 0x00000004L
+#define MH_DEBUG_REG09__TC_MH_send 0x00000004L
+#define MH_DEBUG_REG09__TC_MH_mask_MASK 0x00000018L
+#define MH_DEBUG_REG09__TC_MH_addr_31_5_MASK 0xffffffe0L
+
+// MH_DEBUG_REG10
+#define MH_DEBUG_REG10__TC_MH_info_MASK 0x01ffffffL
+#define MH_DEBUG_REG10__TC_MH_send_MASK 0x02000000L
+#define MH_DEBUG_REG10__TC_MH_send 0x02000000L
+
+// MH_DEBUG_REG11
+#define MH_DEBUG_REG11__MH_TC_mcinfo_MASK 0x01ffffffL
+#define MH_DEBUG_REG11__MH_TC_mcinfo_send_MASK 0x02000000L
+#define MH_DEBUG_REG11__MH_TC_mcinfo_send 0x02000000L
+#define MH_DEBUG_REG11__TC_MH_written_MASK 0x04000000L
+#define MH_DEBUG_REG11__TC_MH_written 0x04000000L
+
+// MH_DEBUG_REG12
+#define MH_DEBUG_REG12__ALWAYS_ZERO_MASK 0x00000003L
+#define MH_DEBUG_REG12__TC_ROQ_SEND_MASK 0x00000004L
+#define MH_DEBUG_REG12__TC_ROQ_SEND 0x00000004L
+#define MH_DEBUG_REG12__TC_ROQ_MASK_MASK 0x00000018L
+#define MH_DEBUG_REG12__TC_ROQ_ADDR_31_5_MASK 0xffffffe0L
+
+// MH_DEBUG_REG13
+#define MH_DEBUG_REG13__TC_ROQ_INFO_MASK 0x01ffffffL
+#define MH_DEBUG_REG13__TC_ROQ_SEND_MASK 0x02000000L
+#define MH_DEBUG_REG13__TC_ROQ_SEND 0x02000000L
+
+// MH_DEBUG_REG14
+#define MH_DEBUG_REG14__ALWAYS_ZERO_MASK 0x0000000fL
+#define MH_DEBUG_REG14__RB_MH_send_MASK 0x00000010L
+#define MH_DEBUG_REG14__RB_MH_send 0x00000010L
+#define MH_DEBUG_REG14__RB_MH_addr_31_5_MASK 0xffffffe0L
+
+// MH_DEBUG_REG15
+#define MH_DEBUG_REG15__RB_MH_data_31_0_MASK 0xffffffffL
+
+// MH_DEBUG_REG16
+#define MH_DEBUG_REG16__RB_MH_data_63_32_MASK 0xffffffffL
+
+// MH_DEBUG_REG17
+#define MH_DEBUG_REG17__AVALID_q_MASK 0x00000001L
+#define MH_DEBUG_REG17__AVALID_q 0x00000001L
+#define MH_DEBUG_REG17__AREADY_q_MASK 0x00000002L
+#define MH_DEBUG_REG17__AREADY_q 0x00000002L
+#define MH_DEBUG_REG17__AID_q_MASK 0x0000001cL
+#define MH_DEBUG_REG17__ALEN_q_2_0_MASK 0x000000e0L
+#define MH_DEBUG_REG17__ARVALID_q_MASK 0x00000100L
+#define MH_DEBUG_REG17__ARVALID_q 0x00000100L
+#define MH_DEBUG_REG17__ARREADY_q_MASK 0x00000200L
+#define MH_DEBUG_REG17__ARREADY_q 0x00000200L
+#define MH_DEBUG_REG17__ARID_q_MASK 0x00001c00L
+#define MH_DEBUG_REG17__ARLEN_q_1_0_MASK 0x00006000L
+#define MH_DEBUG_REG17__RVALID_q_MASK 0x00008000L
+#define MH_DEBUG_REG17__RVALID_q 0x00008000L
+#define MH_DEBUG_REG17__RREADY_q_MASK 0x00010000L
+#define MH_DEBUG_REG17__RREADY_q 0x00010000L
+#define MH_DEBUG_REG17__RLAST_q_MASK 0x00020000L
+#define MH_DEBUG_REG17__RLAST_q 0x00020000L
+#define MH_DEBUG_REG17__RID_q_MASK 0x001c0000L
+#define MH_DEBUG_REG17__WVALID_q_MASK 0x00200000L
+#define MH_DEBUG_REG17__WVALID_q 0x00200000L
+#define MH_DEBUG_REG17__WREADY_q_MASK 0x00400000L
+#define MH_DEBUG_REG17__WREADY_q 0x00400000L
+#define MH_DEBUG_REG17__WLAST_q_MASK 0x00800000L
+#define MH_DEBUG_REG17__WLAST_q 0x00800000L
+#define MH_DEBUG_REG17__WID_q_MASK 0x07000000L
+#define MH_DEBUG_REG17__BVALID_q_MASK 0x08000000L
+#define MH_DEBUG_REG17__BVALID_q 0x08000000L
+#define MH_DEBUG_REG17__BREADY_q_MASK 0x10000000L
+#define MH_DEBUG_REG17__BREADY_q 0x10000000L
+#define MH_DEBUG_REG17__BID_q_MASK 0xe0000000L
+
+// MH_DEBUG_REG18
+#define MH_DEBUG_REG18__AVALID_q_MASK 0x00000001L
+#define MH_DEBUG_REG18__AVALID_q 0x00000001L
+#define MH_DEBUG_REG18__AREADY_q_MASK 0x00000002L
+#define MH_DEBUG_REG18__AREADY_q 0x00000002L
+#define MH_DEBUG_REG18__AID_q_MASK 0x0000001cL
+#define MH_DEBUG_REG18__ALEN_q_1_0_MASK 0x00000060L
+#define MH_DEBUG_REG18__ARVALID_q_MASK 0x00000080L
+#define MH_DEBUG_REG18__ARVALID_q 0x00000080L
+#define MH_DEBUG_REG18__ARREADY_q_MASK 0x00000100L
+#define MH_DEBUG_REG18__ARREADY_q 0x00000100L
+#define MH_DEBUG_REG18__ARID_q_MASK 0x00000e00L
+#define MH_DEBUG_REG18__ARLEN_q_1_1_MASK 0x00001000L
+#define MH_DEBUG_REG18__ARLEN_q_1_1 0x00001000L
+#define MH_DEBUG_REG18__WVALID_q_MASK 0x00002000L
+#define MH_DEBUG_REG18__WVALID_q 0x00002000L
+#define MH_DEBUG_REG18__WREADY_q_MASK 0x00004000L
+#define MH_DEBUG_REG18__WREADY_q 0x00004000L
+#define MH_DEBUG_REG18__WLAST_q_MASK 0x00008000L
+#define MH_DEBUG_REG18__WLAST_q 0x00008000L
+#define MH_DEBUG_REG18__WID_q_MASK 0x00070000L
+#define MH_DEBUG_REG18__WSTRB_q_MASK 0x07f80000L
+#define MH_DEBUG_REG18__BVALID_q_MASK 0x08000000L
+#define MH_DEBUG_REG18__BVALID_q 0x08000000L
+#define MH_DEBUG_REG18__BREADY_q_MASK 0x10000000L
+#define MH_DEBUG_REG18__BREADY_q 0x10000000L
+#define MH_DEBUG_REG18__BID_q_MASK 0xe0000000L
+
+// MH_DEBUG_REG19
+#define MH_DEBUG_REG19__ARC_CTRL_RE_q_MASK 0x00000001L
+#define MH_DEBUG_REG19__ARC_CTRL_RE_q 0x00000001L
+#define MH_DEBUG_REG19__CTRL_ARC_ID_MASK 0x0000000eL
+#define MH_DEBUG_REG19__CTRL_ARC_PAD_MASK 0xfffffff0L
+
+// MH_DEBUG_REG20
+#define MH_DEBUG_REG20__ALWAYS_ZERO_MASK 0x00000003L
+#define MH_DEBUG_REG20__REG_A_MASK 0x0000fffcL
+#define MH_DEBUG_REG20__REG_RE_MASK 0x00010000L
+#define MH_DEBUG_REG20__REG_RE 0x00010000L
+#define MH_DEBUG_REG20__REG_WE_MASK 0x00020000L
+#define MH_DEBUG_REG20__REG_WE 0x00020000L
+#define MH_DEBUG_REG20__BLOCK_RS_MASK 0x00040000L
+#define MH_DEBUG_REG20__BLOCK_RS 0x00040000L
+
+// MH_DEBUG_REG21
+#define MH_DEBUG_REG21__REG_WD_MASK 0xffffffffL
+
+// MH_DEBUG_REG22
+#define MH_DEBUG_REG22__CIB_MH_axi_halt_req_MASK 0x00000001L
+#define MH_DEBUG_REG22__CIB_MH_axi_halt_req 0x00000001L
+#define MH_DEBUG_REG22__MH_CIB_axi_halt_ack_MASK 0x00000002L
+#define MH_DEBUG_REG22__MH_CIB_axi_halt_ack 0x00000002L
+#define MH_DEBUG_REG22__MH_RBBM_busy_MASK 0x00000004L
+#define MH_DEBUG_REG22__MH_RBBM_busy 0x00000004L
+#define MH_DEBUG_REG22__MH_CIB_mh_clk_en_int_MASK 0x00000008L
+#define MH_DEBUG_REG22__MH_CIB_mh_clk_en_int 0x00000008L
+#define MH_DEBUG_REG22__MH_CIB_mmu_clk_en_int_MASK 0x00000010L
+#define MH_DEBUG_REG22__MH_CIB_mmu_clk_en_int 0x00000010L
+#define MH_DEBUG_REG22__MH_CIB_tcroq_clk_en_int_MASK 0x00000020L
+#define MH_DEBUG_REG22__MH_CIB_tcroq_clk_en_int 0x00000020L
+#define MH_DEBUG_REG22__GAT_CLK_ENA_MASK 0x00000040L
+#define MH_DEBUG_REG22__GAT_CLK_ENA 0x00000040L
+#define MH_DEBUG_REG22__AXI_RDY_ENA_MASK 0x00000080L
+#define MH_DEBUG_REG22__AXI_RDY_ENA 0x00000080L
+#define MH_DEBUG_REG22__RBBM_MH_clk_en_override_MASK 0x00000100L
+#define MH_DEBUG_REG22__RBBM_MH_clk_en_override 0x00000100L
+#define MH_DEBUG_REG22__CNT_q_MASK 0x00007e00L
+#define MH_DEBUG_REG22__TCD_EMPTY_q_MASK 0x00008000L
+#define MH_DEBUG_REG22__TCD_EMPTY_q 0x00008000L
+#define MH_DEBUG_REG22__TC_ROQ_EMPTY_MASK 0x00010000L
+#define MH_DEBUG_REG22__TC_ROQ_EMPTY 0x00010000L
+#define MH_DEBUG_REG22__MH_BUSY_d_MASK 0x00020000L
+#define MH_DEBUG_REG22__MH_BUSY_d 0x00020000L
+#define MH_DEBUG_REG22__ANY_CLNT_BUSY_MASK 0x00040000L
+#define MH_DEBUG_REG22__ANY_CLNT_BUSY 0x00040000L
+#define MH_DEBUG_REG22__MH_MMU_INVALIDATE_INVALIDATE_ALL_MASK 0x00080000L
+#define MH_DEBUG_REG22__MH_MMU_INVALIDATE_INVALIDATE_ALL 0x00080000L
+#define MH_DEBUG_REG22__CP_SEND_q_MASK 0x00100000L
+#define MH_DEBUG_REG22__CP_SEND_q 0x00100000L
+#define MH_DEBUG_REG22__CP_RTR_q_MASK 0x00200000L
+#define MH_DEBUG_REG22__CP_RTR_q 0x00200000L
+#define MH_DEBUG_REG22__VGT_SEND_q_MASK 0x00400000L
+#define MH_DEBUG_REG22__VGT_SEND_q 0x00400000L
+#define MH_DEBUG_REG22__VGT_RTR_q_MASK 0x00800000L
+#define MH_DEBUG_REG22__VGT_RTR_q 0x00800000L
+#define MH_DEBUG_REG22__TC_ROQ_SEND_q_MASK 0x01000000L
+#define MH_DEBUG_REG22__TC_ROQ_SEND_q 0x01000000L
+#define MH_DEBUG_REG22__TC_ROQ_RTR_q_MASK 0x02000000L
+#define MH_DEBUG_REG22__TC_ROQ_RTR_q 0x02000000L
+#define MH_DEBUG_REG22__RB_SEND_q_MASK 0x04000000L
+#define MH_DEBUG_REG22__RB_SEND_q 0x04000000L
+#define MH_DEBUG_REG22__RB_RTR_q_MASK 0x08000000L
+#define MH_DEBUG_REG22__RB_RTR_q 0x08000000L
+#define MH_DEBUG_REG22__RDC_VALID_MASK 0x10000000L
+#define MH_DEBUG_REG22__RDC_VALID 0x10000000L
+#define MH_DEBUG_REG22__RDC_RLAST_MASK 0x20000000L
+#define MH_DEBUG_REG22__RDC_RLAST 0x20000000L
+#define MH_DEBUG_REG22__TLBMISS_VALID_MASK 0x40000000L
+#define MH_DEBUG_REG22__TLBMISS_VALID 0x40000000L
+#define MH_DEBUG_REG22__BRC_VALID_MASK 0x80000000L
+#define MH_DEBUG_REG22__BRC_VALID 0x80000000L
+
+// MH_DEBUG_REG23
+#define MH_DEBUG_REG23__EFF2_FP_WINNER_MASK 0x00000007L
+#define MH_DEBUG_REG23__EFF2_LRU_WINNER_out_MASK 0x00000038L
+#define MH_DEBUG_REG23__EFF1_WINNER_MASK 0x000001c0L
+#define MH_DEBUG_REG23__ARB_WINNER_MASK 0x00000e00L
+#define MH_DEBUG_REG23__ARB_WINNER_q_MASK 0x00007000L
+#define MH_DEBUG_REG23__EFF1_WIN_MASK 0x00008000L
+#define MH_DEBUG_REG23__EFF1_WIN 0x00008000L
+#define MH_DEBUG_REG23__KILL_EFF1_MASK 0x00010000L
+#define MH_DEBUG_REG23__KILL_EFF1 0x00010000L
+#define MH_DEBUG_REG23__ARB_HOLD_MASK 0x00020000L
+#define MH_DEBUG_REG23__ARB_HOLD 0x00020000L
+#define MH_DEBUG_REG23__ARB_RTR_q_MASK 0x00040000L
+#define MH_DEBUG_REG23__ARB_RTR_q 0x00040000L
+#define MH_DEBUG_REG23__CP_SEND_QUAL_MASK 0x00080000L
+#define MH_DEBUG_REG23__CP_SEND_QUAL 0x00080000L
+#define MH_DEBUG_REG23__VGT_SEND_QUAL_MASK 0x00100000L
+#define MH_DEBUG_REG23__VGT_SEND_QUAL 0x00100000L
+#define MH_DEBUG_REG23__TC_SEND_QUAL_MASK 0x00200000L
+#define MH_DEBUG_REG23__TC_SEND_QUAL 0x00200000L
+#define MH_DEBUG_REG23__TC_SEND_EFF1_QUAL_MASK 0x00400000L
+#define MH_DEBUG_REG23__TC_SEND_EFF1_QUAL 0x00400000L
+#define MH_DEBUG_REG23__RB_SEND_QUAL_MASK 0x00800000L
+#define MH_DEBUG_REG23__RB_SEND_QUAL 0x00800000L
+#define MH_DEBUG_REG23__ARB_QUAL_MASK 0x01000000L
+#define MH_DEBUG_REG23__ARB_QUAL 0x01000000L
+#define MH_DEBUG_REG23__CP_EFF1_REQ_MASK 0x02000000L
+#define MH_DEBUG_REG23__CP_EFF1_REQ 0x02000000L
+#define MH_DEBUG_REG23__VGT_EFF1_REQ_MASK 0x04000000L
+#define MH_DEBUG_REG23__VGT_EFF1_REQ 0x04000000L
+#define MH_DEBUG_REG23__TC_EFF1_REQ_MASK 0x08000000L
+#define MH_DEBUG_REG23__TC_EFF1_REQ 0x08000000L
+#define MH_DEBUG_REG23__RB_EFF1_REQ_MASK 0x10000000L
+#define MH_DEBUG_REG23__RB_EFF1_REQ 0x10000000L
+#define MH_DEBUG_REG23__ANY_SAME_ROW_BANK_MASK 0x20000000L
+#define MH_DEBUG_REG23__ANY_SAME_ROW_BANK 0x20000000L
+#define MH_DEBUG_REG23__TCD_NEARFULL_q_MASK 0x40000000L
+#define MH_DEBUG_REG23__TCD_NEARFULL_q 0x40000000L
+#define MH_DEBUG_REG23__TCHOLD_IP_q_MASK 0x80000000L
+#define MH_DEBUG_REG23__TCHOLD_IP_q 0x80000000L
+
+// MH_DEBUG_REG24
+#define MH_DEBUG_REG24__EFF1_WINNER_MASK 0x00000007L
+#define MH_DEBUG_REG24__ARB_WINNER_MASK 0x00000038L
+#define MH_DEBUG_REG24__CP_SEND_QUAL_MASK 0x00000040L
+#define MH_DEBUG_REG24__CP_SEND_QUAL 0x00000040L
+#define MH_DEBUG_REG24__VGT_SEND_QUAL_MASK 0x00000080L
+#define MH_DEBUG_REG24__VGT_SEND_QUAL 0x00000080L
+#define MH_DEBUG_REG24__TC_SEND_QUAL_MASK 0x00000100L
+#define MH_DEBUG_REG24__TC_SEND_QUAL 0x00000100L
+#define MH_DEBUG_REG24__TC_SEND_EFF1_QUAL_MASK 0x00000200L
+#define MH_DEBUG_REG24__TC_SEND_EFF1_QUAL 0x00000200L
+#define MH_DEBUG_REG24__RB_SEND_QUAL_MASK 0x00000400L
+#define MH_DEBUG_REG24__RB_SEND_QUAL 0x00000400L
+#define MH_DEBUG_REG24__ARB_QUAL_MASK 0x00000800L
+#define MH_DEBUG_REG24__ARB_QUAL 0x00000800L
+#define MH_DEBUG_REG24__CP_EFF1_REQ_MASK 0x00001000L
+#define MH_DEBUG_REG24__CP_EFF1_REQ 0x00001000L
+#define MH_DEBUG_REG24__VGT_EFF1_REQ_MASK 0x00002000L
+#define MH_DEBUG_REG24__VGT_EFF1_REQ 0x00002000L
+#define MH_DEBUG_REG24__TC_EFF1_REQ_MASK 0x00004000L
+#define MH_DEBUG_REG24__TC_EFF1_REQ 0x00004000L
+#define MH_DEBUG_REG24__RB_EFF1_REQ_MASK 0x00008000L
+#define MH_DEBUG_REG24__RB_EFF1_REQ 0x00008000L
+#define MH_DEBUG_REG24__EFF1_WIN_MASK 0x00010000L
+#define MH_DEBUG_REG24__EFF1_WIN 0x00010000L
+#define MH_DEBUG_REG24__KILL_EFF1_MASK 0x00020000L
+#define MH_DEBUG_REG24__KILL_EFF1 0x00020000L
+#define MH_DEBUG_REG24__TCD_NEARFULL_q_MASK 0x00040000L
+#define MH_DEBUG_REG24__TCD_NEARFULL_q 0x00040000L
+#define MH_DEBUG_REG24__TC_ARB_HOLD_MASK 0x00080000L
+#define MH_DEBUG_REG24__TC_ARB_HOLD 0x00080000L
+#define MH_DEBUG_REG24__ARB_HOLD_MASK 0x00100000L
+#define MH_DEBUG_REG24__ARB_HOLD 0x00100000L
+#define MH_DEBUG_REG24__ARB_RTR_q_MASK 0x00200000L
+#define MH_DEBUG_REG24__ARB_RTR_q 0x00200000L
+#define MH_DEBUG_REG24__SAME_PAGE_LIMIT_COUNT_q_MASK 0xffc00000L
+
+// MH_DEBUG_REG25
+#define MH_DEBUG_REG25__EFF2_LRU_WINNER_out_MASK 0x00000007L
+#define MH_DEBUG_REG25__ARB_WINNER_MASK 0x00000038L
+#define MH_DEBUG_REG25__LEAST_RECENT_INDEX_d_MASK 0x000001c0L
+#define MH_DEBUG_REG25__LEAST_RECENT_d_MASK 0x00000e00L
+#define MH_DEBUG_REG25__UPDATE_RECENT_STACK_d_MASK 0x00001000L
+#define MH_DEBUG_REG25__UPDATE_RECENT_STACK_d 0x00001000L
+#define MH_DEBUG_REG25__ARB_HOLD_MASK 0x00002000L
+#define MH_DEBUG_REG25__ARB_HOLD 0x00002000L
+#define MH_DEBUG_REG25__ARB_RTR_q_MASK 0x00004000L
+#define MH_DEBUG_REG25__ARB_RTR_q 0x00004000L
+#define MH_DEBUG_REG25__EFF1_WIN_MASK 0x00008000L
+#define MH_DEBUG_REG25__EFF1_WIN 0x00008000L
+#define MH_DEBUG_REG25__CLNT_REQ_MASK 0x000f0000L
+#define MH_DEBUG_REG25__RECENT_d_0_MASK 0x00700000L
+#define MH_DEBUG_REG25__RECENT_d_1_MASK 0x03800000L
+#define MH_DEBUG_REG25__RECENT_d_2_MASK 0x1c000000L
+#define MH_DEBUG_REG25__RECENT_d_3_MASK 0xe0000000L
+
+// MH_DEBUG_REG26
+#define MH_DEBUG_REG26__TC_ARB_HOLD_MASK 0x00000001L
+#define MH_DEBUG_REG26__TC_ARB_HOLD 0x00000001L
+#define MH_DEBUG_REG26__TC_NOROQ_SAME_ROW_BANK_MASK 0x00000002L
+#define MH_DEBUG_REG26__TC_NOROQ_SAME_ROW_BANK 0x00000002L
+#define MH_DEBUG_REG26__TC_ROQ_SAME_ROW_BANK_MASK 0x00000004L
+#define MH_DEBUG_REG26__TC_ROQ_SAME_ROW_BANK 0x00000004L
+#define MH_DEBUG_REG26__TCD_NEARFULL_q_MASK 0x00000008L
+#define MH_DEBUG_REG26__TCD_NEARFULL_q 0x00000008L
+#define MH_DEBUG_REG26__TCHOLD_IP_q_MASK 0x00000010L
+#define MH_DEBUG_REG26__TCHOLD_IP_q 0x00000010L
+#define MH_DEBUG_REG26__TCHOLD_CNT_q_MASK 0x000000e0L
+#define MH_DEBUG_REG26__MH_ARBITER_CONFIG_TC_REORDER_ENABLE_MASK 0x00000100L
+#define MH_DEBUG_REG26__MH_ARBITER_CONFIG_TC_REORDER_ENABLE 0x00000100L
+#define MH_DEBUG_REG26__TC_ROQ_RTR_DBG_q_MASK 0x00000200L
+#define MH_DEBUG_REG26__TC_ROQ_RTR_DBG_q 0x00000200L
+#define MH_DEBUG_REG26__TC_ROQ_SEND_q_MASK 0x00000400L
+#define MH_DEBUG_REG26__TC_ROQ_SEND_q 0x00000400L
+#define MH_DEBUG_REG26__TC_MH_written_MASK 0x00000800L
+#define MH_DEBUG_REG26__TC_MH_written 0x00000800L
+#define MH_DEBUG_REG26__TCD_FULLNESS_CNT_q_MASK 0x0007f000L
+#define MH_DEBUG_REG26__WBURST_ACTIVE_MASK 0x00080000L
+#define MH_DEBUG_REG26__WBURST_ACTIVE 0x00080000L
+#define MH_DEBUG_REG26__WLAST_q_MASK 0x00100000L
+#define MH_DEBUG_REG26__WLAST_q 0x00100000L
+#define MH_DEBUG_REG26__WBURST_IP_q_MASK 0x00200000L
+#define MH_DEBUG_REG26__WBURST_IP_q 0x00200000L
+#define MH_DEBUG_REG26__WBURST_CNT_q_MASK 0x01c00000L
+#define MH_DEBUG_REG26__CP_SEND_QUAL_MASK 0x02000000L
+#define MH_DEBUG_REG26__CP_SEND_QUAL 0x02000000L
+#define MH_DEBUG_REG26__CP_MH_write_MASK 0x04000000L
+#define MH_DEBUG_REG26__CP_MH_write 0x04000000L
+#define MH_DEBUG_REG26__RB_SEND_QUAL_MASK 0x08000000L
+#define MH_DEBUG_REG26__RB_SEND_QUAL 0x08000000L
+#define MH_DEBUG_REG26__ARB_WINNER_MASK 0x70000000L
+
+// MH_DEBUG_REG27
+#define MH_DEBUG_REG27__RF_ARBITER_CONFIG_q_MASK 0x03ffffffL
+#define MH_DEBUG_REG27__MH_CLNT_AXI_ID_REUSE_MMUr_ID_MASK 0x1c000000L
+
+// MH_DEBUG_REG28
+#define MH_DEBUG_REG28__SAME_ROW_BANK_q_MASK 0x000000ffL
+#define MH_DEBUG_REG28__ROQ_MARK_q_MASK 0x0000ff00L
+#define MH_DEBUG_REG28__ROQ_VALID_q_MASK 0x00ff0000L
+#define MH_DEBUG_REG28__TC_MH_send_MASK 0x01000000L
+#define MH_DEBUG_REG28__TC_MH_send 0x01000000L
+#define MH_DEBUG_REG28__TC_ROQ_RTR_q_MASK 0x02000000L
+#define MH_DEBUG_REG28__TC_ROQ_RTR_q 0x02000000L
+#define MH_DEBUG_REG28__KILL_EFF1_MASK 0x04000000L
+#define MH_DEBUG_REG28__KILL_EFF1 0x04000000L
+#define MH_DEBUG_REG28__TC_ROQ_SAME_ROW_BANK_SEL_MASK 0x08000000L
+#define MH_DEBUG_REG28__TC_ROQ_SAME_ROW_BANK_SEL 0x08000000L
+#define MH_DEBUG_REG28__ANY_SAME_ROW_BANK_MASK 0x10000000L
+#define MH_DEBUG_REG28__ANY_SAME_ROW_BANK 0x10000000L
+#define MH_DEBUG_REG28__TC_EFF1_QUAL_MASK 0x20000000L
+#define MH_DEBUG_REG28__TC_EFF1_QUAL 0x20000000L
+#define MH_DEBUG_REG28__TC_ROQ_EMPTY_MASK 0x40000000L
+#define MH_DEBUG_REG28__TC_ROQ_EMPTY 0x40000000L
+#define MH_DEBUG_REG28__TC_ROQ_FULL_MASK 0x80000000L
+#define MH_DEBUG_REG28__TC_ROQ_FULL 0x80000000L
+
+// MH_DEBUG_REG29
+#define MH_DEBUG_REG29__SAME_ROW_BANK_q_MASK 0x000000ffL
+#define MH_DEBUG_REG29__ROQ_MARK_d_MASK 0x0000ff00L
+#define MH_DEBUG_REG29__ROQ_VALID_d_MASK 0x00ff0000L
+#define MH_DEBUG_REG29__TC_MH_send_MASK 0x01000000L
+#define MH_DEBUG_REG29__TC_MH_send 0x01000000L
+#define MH_DEBUG_REG29__TC_ROQ_RTR_q_MASK 0x02000000L
+#define MH_DEBUG_REG29__TC_ROQ_RTR_q 0x02000000L
+#define MH_DEBUG_REG29__KILL_EFF1_MASK 0x04000000L
+#define MH_DEBUG_REG29__KILL_EFF1 0x04000000L
+#define MH_DEBUG_REG29__TC_ROQ_SAME_ROW_BANK_SEL_MASK 0x08000000L
+#define MH_DEBUG_REG29__TC_ROQ_SAME_ROW_BANK_SEL 0x08000000L
+#define MH_DEBUG_REG29__ANY_SAME_ROW_BANK_MASK 0x10000000L
+#define MH_DEBUG_REG29__ANY_SAME_ROW_BANK 0x10000000L
+#define MH_DEBUG_REG29__TC_EFF1_QUAL_MASK 0x20000000L
+#define MH_DEBUG_REG29__TC_EFF1_QUAL 0x20000000L
+#define MH_DEBUG_REG29__TC_ROQ_EMPTY_MASK 0x40000000L
+#define MH_DEBUG_REG29__TC_ROQ_EMPTY 0x40000000L
+#define MH_DEBUG_REG29__TC_ROQ_FULL_MASK 0x80000000L
+#define MH_DEBUG_REG29__TC_ROQ_FULL 0x80000000L
+
+// MH_DEBUG_REG30
+#define MH_DEBUG_REG30__SAME_ROW_BANK_WIN_MASK 0x000000ffL
+#define MH_DEBUG_REG30__SAME_ROW_BANK_REQ_MASK 0x0000ff00L
+#define MH_DEBUG_REG30__NON_SAME_ROW_BANK_WIN_MASK 0x00ff0000L
+#define MH_DEBUG_REG30__NON_SAME_ROW_BANK_REQ_MASK 0xff000000L
+
+// MH_DEBUG_REG31
+#define MH_DEBUG_REG31__TC_MH_send_MASK 0x00000001L
+#define MH_DEBUG_REG31__TC_MH_send 0x00000001L
+#define MH_DEBUG_REG31__TC_ROQ_RTR_q_MASK 0x00000002L
+#define MH_DEBUG_REG31__TC_ROQ_RTR_q 0x00000002L
+#define MH_DEBUG_REG31__ROQ_MARK_q_0_MASK 0x00000004L
+#define MH_DEBUG_REG31__ROQ_MARK_q_0 0x00000004L
+#define MH_DEBUG_REG31__ROQ_VALID_q_0_MASK 0x00000008L
+#define MH_DEBUG_REG31__ROQ_VALID_q_0 0x00000008L
+#define MH_DEBUG_REG31__SAME_ROW_BANK_q_0_MASK 0x00000010L
+#define MH_DEBUG_REG31__SAME_ROW_BANK_q_0 0x00000010L
+#define MH_DEBUG_REG31__ROQ_ADDR_0_MASK 0xffffffe0L
+
+// MH_DEBUG_REG32
+#define MH_DEBUG_REG32__TC_MH_send_MASK 0x00000001L
+#define MH_DEBUG_REG32__TC_MH_send 0x00000001L
+#define MH_DEBUG_REG32__TC_ROQ_RTR_q_MASK 0x00000002L
+#define MH_DEBUG_REG32__TC_ROQ_RTR_q 0x00000002L
+#define MH_DEBUG_REG32__ROQ_MARK_q_1_MASK 0x00000004L
+#define MH_DEBUG_REG32__ROQ_MARK_q_1 0x00000004L
+#define MH_DEBUG_REG32__ROQ_VALID_q_1_MASK 0x00000008L
+#define MH_DEBUG_REG32__ROQ_VALID_q_1 0x00000008L
+#define MH_DEBUG_REG32__SAME_ROW_BANK_q_1_MASK 0x00000010L
+#define MH_DEBUG_REG32__SAME_ROW_BANK_q_1 0x00000010L
+#define MH_DEBUG_REG32__ROQ_ADDR_1_MASK 0xffffffe0L
+
+// MH_DEBUG_REG33
+#define MH_DEBUG_REG33__TC_MH_send_MASK 0x00000001L
+#define MH_DEBUG_REG33__TC_MH_send 0x00000001L
+#define MH_DEBUG_REG33__TC_ROQ_RTR_q_MASK 0x00000002L
+#define MH_DEBUG_REG33__TC_ROQ_RTR_q 0x00000002L
+#define MH_DEBUG_REG33__ROQ_MARK_q_2_MASK 0x00000004L
+#define MH_DEBUG_REG33__ROQ_MARK_q_2 0x00000004L
+#define MH_DEBUG_REG33__ROQ_VALID_q_2_MASK 0x00000008L
+#define MH_DEBUG_REG33__ROQ_VALID_q_2 0x00000008L
+#define MH_DEBUG_REG33__SAME_ROW_BANK_q_2_MASK 0x00000010L
+#define MH_DEBUG_REG33__SAME_ROW_BANK_q_2 0x00000010L
+#define MH_DEBUG_REG33__ROQ_ADDR_2_MASK 0xffffffe0L
+
+// MH_DEBUG_REG34
+#define MH_DEBUG_REG34__TC_MH_send_MASK 0x00000001L
+#define MH_DEBUG_REG34__TC_MH_send 0x00000001L
+#define MH_DEBUG_REG34__TC_ROQ_RTR_q_MASK 0x00000002L
+#define MH_DEBUG_REG34__TC_ROQ_RTR_q 0x00000002L
+#define MH_DEBUG_REG34__ROQ_MARK_q_3_MASK 0x00000004L
+#define MH_DEBUG_REG34__ROQ_MARK_q_3 0x00000004L
+#define MH_DEBUG_REG34__ROQ_VALID_q_3_MASK 0x00000008L
+#define MH_DEBUG_REG34__ROQ_VALID_q_3 0x00000008L
+#define MH_DEBUG_REG34__SAME_ROW_BANK_q_3_MASK 0x00000010L
+#define MH_DEBUG_REG34__SAME_ROW_BANK_q_3 0x00000010L
+#define MH_DEBUG_REG34__ROQ_ADDR_3_MASK 0xffffffe0L
+
+// MH_DEBUG_REG35
+#define MH_DEBUG_REG35__TC_MH_send_MASK 0x00000001L
+#define MH_DEBUG_REG35__TC_MH_send 0x00000001L
+#define MH_DEBUG_REG35__TC_ROQ_RTR_q_MASK 0x00000002L
+#define MH_DEBUG_REG35__TC_ROQ_RTR_q 0x00000002L
+#define MH_DEBUG_REG35__ROQ_MARK_q_4_MASK 0x00000004L
+#define MH_DEBUG_REG35__ROQ_MARK_q_4 0x00000004L
+#define MH_DEBUG_REG35__ROQ_VALID_q_4_MASK 0x00000008L
+#define MH_DEBUG_REG35__ROQ_VALID_q_4 0x00000008L
+#define MH_DEBUG_REG35__SAME_ROW_BANK_q_4_MASK 0x00000010L
+#define MH_DEBUG_REG35__SAME_ROW_BANK_q_4 0x00000010L
+#define MH_DEBUG_REG35__ROQ_ADDR_4_MASK 0xffffffe0L
+
+// MH_DEBUG_REG36
+#define MH_DEBUG_REG36__TC_MH_send_MASK 0x00000001L
+#define MH_DEBUG_REG36__TC_MH_send 0x00000001L
+#define MH_DEBUG_REG36__TC_ROQ_RTR_q_MASK 0x00000002L
+#define MH_DEBUG_REG36__TC_ROQ_RTR_q 0x00000002L
+#define MH_DEBUG_REG36__ROQ_MARK_q_5_MASK 0x00000004L
+#define MH_DEBUG_REG36__ROQ_MARK_q_5 0x00000004L
+#define MH_DEBUG_REG36__ROQ_VALID_q_5_MASK 0x00000008L
+#define MH_DEBUG_REG36__ROQ_VALID_q_5 0x00000008L
+#define MH_DEBUG_REG36__SAME_ROW_BANK_q_5_MASK 0x00000010L
+#define MH_DEBUG_REG36__SAME_ROW_BANK_q_5 0x00000010L
+#define MH_DEBUG_REG36__ROQ_ADDR_5_MASK 0xffffffe0L
+
+// MH_DEBUG_REG37
+#define MH_DEBUG_REG37__TC_MH_send_MASK 0x00000001L
+#define MH_DEBUG_REG37__TC_MH_send 0x00000001L
+#define MH_DEBUG_REG37__TC_ROQ_RTR_q_MASK 0x00000002L
+#define MH_DEBUG_REG37__TC_ROQ_RTR_q 0x00000002L
+#define MH_DEBUG_REG37__ROQ_MARK_q_6_MASK 0x00000004L
+#define MH_DEBUG_REG37__ROQ_MARK_q_6 0x00000004L
+#define MH_DEBUG_REG37__ROQ_VALID_q_6_MASK 0x00000008L
+#define MH_DEBUG_REG37__ROQ_VALID_q_6 0x00000008L
+#define MH_DEBUG_REG37__SAME_ROW_BANK_q_6_MASK 0x00000010L
+#define MH_DEBUG_REG37__SAME_ROW_BANK_q_6 0x00000010L
+#define MH_DEBUG_REG37__ROQ_ADDR_6_MASK 0xffffffe0L
+
+// MH_DEBUG_REG38
+#define MH_DEBUG_REG38__TC_MH_send_MASK 0x00000001L
+#define MH_DEBUG_REG38__TC_MH_send 0x00000001L
+#define MH_DEBUG_REG38__TC_ROQ_RTR_q_MASK 0x00000002L
+#define MH_DEBUG_REG38__TC_ROQ_RTR_q 0x00000002L
+#define MH_DEBUG_REG38__ROQ_MARK_q_7_MASK 0x00000004L
+#define MH_DEBUG_REG38__ROQ_MARK_q_7 0x00000004L
+#define MH_DEBUG_REG38__ROQ_VALID_q_7_MASK 0x00000008L
+#define MH_DEBUG_REG38__ROQ_VALID_q_7 0x00000008L
+#define MH_DEBUG_REG38__SAME_ROW_BANK_q_7_MASK 0x00000010L
+#define MH_DEBUG_REG38__SAME_ROW_BANK_q_7 0x00000010L
+#define MH_DEBUG_REG38__ROQ_ADDR_7_MASK 0xffffffe0L
+
+// MH_DEBUG_REG39
+#define MH_DEBUG_REG39__ARB_WE_MASK 0x00000001L
+#define MH_DEBUG_REG39__ARB_WE 0x00000001L
+#define MH_DEBUG_REG39__MMU_RTR_MASK 0x00000002L
+#define MH_DEBUG_REG39__MMU_RTR 0x00000002L
+#define MH_DEBUG_REG39__ARB_ID_q_MASK 0x0000001cL
+#define MH_DEBUG_REG39__ARB_WRITE_q_MASK 0x00000020L
+#define MH_DEBUG_REG39__ARB_WRITE_q 0x00000020L
+#define MH_DEBUG_REG39__ARB_BLEN_q_MASK 0x00000040L
+#define MH_DEBUG_REG39__ARB_BLEN_q 0x00000040L
+#define MH_DEBUG_REG39__ARQ_CTRL_EMPTY_MASK 0x00000080L
+#define MH_DEBUG_REG39__ARQ_CTRL_EMPTY 0x00000080L
+#define MH_DEBUG_REG39__ARQ_FIFO_CNT_q_MASK 0x00000700L
+#define MH_DEBUG_REG39__MMU_WE_MASK 0x00000800L
+#define MH_DEBUG_REG39__MMU_WE 0x00000800L
+#define MH_DEBUG_REG39__ARQ_RTR_MASK 0x00001000L
+#define MH_DEBUG_REG39__ARQ_RTR 0x00001000L
+#define MH_DEBUG_REG39__MMU_ID_MASK 0x0000e000L
+#define MH_DEBUG_REG39__MMU_WRITE_MASK 0x00010000L
+#define MH_DEBUG_REG39__MMU_WRITE 0x00010000L
+#define MH_DEBUG_REG39__MMU_BLEN_MASK 0x00020000L
+#define MH_DEBUG_REG39__MMU_BLEN 0x00020000L
+
+// MH_DEBUG_REG40
+#define MH_DEBUG_REG40__ARB_WE_MASK 0x00000001L
+#define MH_DEBUG_REG40__ARB_WE 0x00000001L
+#define MH_DEBUG_REG40__ARB_ID_q_MASK 0x0000000eL
+#define MH_DEBUG_REG40__ARB_VAD_q_MASK 0xfffffff0L
+
+// MH_DEBUG_REG41
+#define MH_DEBUG_REG41__MMU_WE_MASK 0x00000001L
+#define MH_DEBUG_REG41__MMU_WE 0x00000001L
+#define MH_DEBUG_REG41__MMU_ID_MASK 0x0000000eL
+#define MH_DEBUG_REG41__MMU_PAD_MASK 0xfffffff0L
+
+// MH_DEBUG_REG42
+#define MH_DEBUG_REG42__WDB_WE_MASK 0x00000001L
+#define MH_DEBUG_REG42__WDB_WE 0x00000001L
+#define MH_DEBUG_REG42__WDB_RTR_SKID_MASK 0x00000002L
+#define MH_DEBUG_REG42__WDB_RTR_SKID 0x00000002L
+#define MH_DEBUG_REG42__ARB_WSTRB_q_MASK 0x000003fcL
+#define MH_DEBUG_REG42__ARB_WLAST_MASK 0x00000400L
+#define MH_DEBUG_REG42__ARB_WLAST 0x00000400L
+#define MH_DEBUG_REG42__WDB_CTRL_EMPTY_MASK 0x00000800L
+#define MH_DEBUG_REG42__WDB_CTRL_EMPTY 0x00000800L
+#define MH_DEBUG_REG42__WDB_FIFO_CNT_q_MASK 0x0001f000L
+#define MH_DEBUG_REG42__WDC_WDB_RE_q_MASK 0x00020000L
+#define MH_DEBUG_REG42__WDC_WDB_RE_q 0x00020000L
+#define MH_DEBUG_REG42__WDB_WDC_WID_MASK 0x001c0000L
+#define MH_DEBUG_REG42__WDB_WDC_WLAST_MASK 0x00200000L
+#define MH_DEBUG_REG42__WDB_WDC_WLAST 0x00200000L
+#define MH_DEBUG_REG42__WDB_WDC_WSTRB_MASK 0x3fc00000L
+
+// MH_DEBUG_REG43
+#define MH_DEBUG_REG43__ARB_WDATA_q_31_0_MASK 0xffffffffL
+
+// MH_DEBUG_REG44
+#define MH_DEBUG_REG44__ARB_WDATA_q_63_32_MASK 0xffffffffL
+
+// MH_DEBUG_REG45
+#define MH_DEBUG_REG45__WDB_WDC_WDATA_31_0_MASK 0xffffffffL
+
+// MH_DEBUG_REG46
+#define MH_DEBUG_REG46__WDB_WDC_WDATA_63_32_MASK 0xffffffffL
+
+// MH_DEBUG_REG47
+#define MH_DEBUG_REG47__CTRL_ARC_EMPTY_MASK 0x00000001L
+#define MH_DEBUG_REG47__CTRL_ARC_EMPTY 0x00000001L
+#define MH_DEBUG_REG47__CTRL_RARC_EMPTY_MASK 0x00000002L
+#define MH_DEBUG_REG47__CTRL_RARC_EMPTY 0x00000002L
+#define MH_DEBUG_REG47__ARQ_CTRL_EMPTY_MASK 0x00000004L
+#define MH_DEBUG_REG47__ARQ_CTRL_EMPTY 0x00000004L
+#define MH_DEBUG_REG47__ARQ_CTRL_WRITE_MASK 0x00000008L
+#define MH_DEBUG_REG47__ARQ_CTRL_WRITE 0x00000008L
+#define MH_DEBUG_REG47__TLBMISS_CTRL_RTS_MASK 0x00000010L
+#define MH_DEBUG_REG47__TLBMISS_CTRL_RTS 0x00000010L
+#define MH_DEBUG_REG47__CTRL_TLBMISS_RE_q_MASK 0x00000020L
+#define MH_DEBUG_REG47__CTRL_TLBMISS_RE_q 0x00000020L
+#define MH_DEBUG_REG47__INFLT_LIMIT_q_MASK 0x00000040L
+#define MH_DEBUG_REG47__INFLT_LIMIT_q 0x00000040L
+#define MH_DEBUG_REG47__INFLT_LIMIT_CNT_q_MASK 0x00001f80L
+#define MH_DEBUG_REG47__ARC_CTRL_RE_q_MASK 0x00002000L
+#define MH_DEBUG_REG47__ARC_CTRL_RE_q 0x00002000L
+#define MH_DEBUG_REG47__RARC_CTRL_RE_q_MASK 0x00004000L
+#define MH_DEBUG_REG47__RARC_CTRL_RE_q 0x00004000L
+#define MH_DEBUG_REG47__RVALID_q_MASK 0x00008000L
+#define MH_DEBUG_REG47__RVALID_q 0x00008000L
+#define MH_DEBUG_REG47__RREADY_q_MASK 0x00010000L
+#define MH_DEBUG_REG47__RREADY_q 0x00010000L
+#define MH_DEBUG_REG47__RLAST_q_MASK 0x00020000L
+#define MH_DEBUG_REG47__RLAST_q 0x00020000L
+#define MH_DEBUG_REG47__BVALID_q_MASK 0x00040000L
+#define MH_DEBUG_REG47__BVALID_q 0x00040000L
+#define MH_DEBUG_REG47__BREADY_q_MASK 0x00080000L
+#define MH_DEBUG_REG47__BREADY_q 0x00080000L
+
+// MH_DEBUG_REG48
+#define MH_DEBUG_REG48__MH_CP_grb_send_MASK 0x00000001L
+#define MH_DEBUG_REG48__MH_CP_grb_send 0x00000001L
+#define MH_DEBUG_REG48__MH_VGT_grb_send_MASK 0x00000002L
+#define MH_DEBUG_REG48__MH_VGT_grb_send 0x00000002L
+#define MH_DEBUG_REG48__MH_TC_mcsend_MASK 0x00000004L
+#define MH_DEBUG_REG48__MH_TC_mcsend 0x00000004L
+#define MH_DEBUG_REG48__MH_TLBMISS_SEND_MASK 0x00000008L
+#define MH_DEBUG_REG48__MH_TLBMISS_SEND 0x00000008L
+#define MH_DEBUG_REG48__TLBMISS_VALID_MASK 0x00000010L
+#define MH_DEBUG_REG48__TLBMISS_VALID 0x00000010L
+#define MH_DEBUG_REG48__RDC_VALID_MASK 0x00000020L
+#define MH_DEBUG_REG48__RDC_VALID 0x00000020L
+#define MH_DEBUG_REG48__RDC_RID_MASK 0x000001c0L
+#define MH_DEBUG_REG48__RDC_RLAST_MASK 0x00000200L
+#define MH_DEBUG_REG48__RDC_RLAST 0x00000200L
+#define MH_DEBUG_REG48__RDC_RRESP_MASK 0x00000c00L
+#define MH_DEBUG_REG48__TLBMISS_CTRL_RTS_MASK 0x00001000L
+#define MH_DEBUG_REG48__TLBMISS_CTRL_RTS 0x00001000L
+#define MH_DEBUG_REG48__CTRL_TLBMISS_RE_q_MASK 0x00002000L
+#define MH_DEBUG_REG48__CTRL_TLBMISS_RE_q 0x00002000L
+#define MH_DEBUG_REG48__MMU_ID_REQUEST_q_MASK 0x00004000L
+#define MH_DEBUG_REG48__MMU_ID_REQUEST_q 0x00004000L
+#define MH_DEBUG_REG48__OUTSTANDING_MMUID_CNT_q_MASK 0x001f8000L
+#define MH_DEBUG_REG48__MMU_ID_RESPONSE_MASK 0x00200000L
+#define MH_DEBUG_REG48__MMU_ID_RESPONSE 0x00200000L
+#define MH_DEBUG_REG48__TLBMISS_RETURN_CNT_q_MASK 0x0fc00000L
+#define MH_DEBUG_REG48__CNT_HOLD_q1_MASK 0x10000000L
+#define MH_DEBUG_REG48__CNT_HOLD_q1 0x10000000L
+#define MH_DEBUG_REG48__MH_CLNT_AXI_ID_REUSE_MMUr_ID_MASK 0xe0000000L
+
+// MH_DEBUG_REG49
+#define MH_DEBUG_REG49__RF_MMU_PAGE_FAULT_MASK 0xffffffffL
+
+// MH_DEBUG_REG50
+#define MH_DEBUG_REG50__RF_MMU_CONFIG_q_MASK 0x00ffffffL
+#define MH_DEBUG_REG50__ARB_ID_q_MASK 0x07000000L
+#define MH_DEBUG_REG50__ARB_WRITE_q_MASK 0x08000000L
+#define MH_DEBUG_REG50__ARB_WRITE_q 0x08000000L
+#define MH_DEBUG_REG50__client_behavior_q_MASK 0x30000000L
+#define MH_DEBUG_REG50__ARB_WE_MASK 0x40000000L
+#define MH_DEBUG_REG50__ARB_WE 0x40000000L
+#define MH_DEBUG_REG50__MMU_RTR_MASK 0x80000000L
+#define MH_DEBUG_REG50__MMU_RTR 0x80000000L
+
+// MH_DEBUG_REG51
+#define MH_DEBUG_REG51__stage1_valid_MASK 0x00000001L
+#define MH_DEBUG_REG51__stage1_valid 0x00000001L
+#define MH_DEBUG_REG51__IGNORE_TAG_MISS_q_MASK 0x00000002L
+#define MH_DEBUG_REG51__IGNORE_TAG_MISS_q 0x00000002L
+#define MH_DEBUG_REG51__pa_in_mpu_range_MASK 0x00000004L
+#define MH_DEBUG_REG51__pa_in_mpu_range 0x00000004L
+#define MH_DEBUG_REG51__tag_match_q_MASK 0x00000008L
+#define MH_DEBUG_REG51__tag_match_q 0x00000008L
+#define MH_DEBUG_REG51__tag_miss_q_MASK 0x00000010L
+#define MH_DEBUG_REG51__tag_miss_q 0x00000010L
+#define MH_DEBUG_REG51__va_in_range_q_MASK 0x00000020L
+#define MH_DEBUG_REG51__va_in_range_q 0x00000020L
+#define MH_DEBUG_REG51__MMU_MISS_MASK 0x00000040L
+#define MH_DEBUG_REG51__MMU_MISS 0x00000040L
+#define MH_DEBUG_REG51__MMU_READ_MISS_MASK 0x00000080L
+#define MH_DEBUG_REG51__MMU_READ_MISS 0x00000080L
+#define MH_DEBUG_REG51__MMU_WRITE_MISS_MASK 0x00000100L
+#define MH_DEBUG_REG51__MMU_WRITE_MISS 0x00000100L
+#define MH_DEBUG_REG51__MMU_HIT_MASK 0x00000200L
+#define MH_DEBUG_REG51__MMU_HIT 0x00000200L
+#define MH_DEBUG_REG51__MMU_READ_HIT_MASK 0x00000400L
+#define MH_DEBUG_REG51__MMU_READ_HIT 0x00000400L
+#define MH_DEBUG_REG51__MMU_WRITE_HIT_MASK 0x00000800L
+#define MH_DEBUG_REG51__MMU_WRITE_HIT 0x00000800L
+#define MH_DEBUG_REG51__MMU_SPLIT_MODE_TC_MISS_MASK 0x00001000L
+#define MH_DEBUG_REG51__MMU_SPLIT_MODE_TC_MISS 0x00001000L
+#define MH_DEBUG_REG51__MMU_SPLIT_MODE_TC_HIT_MASK 0x00002000L
+#define MH_DEBUG_REG51__MMU_SPLIT_MODE_TC_HIT 0x00002000L
+#define MH_DEBUG_REG51__MMU_SPLIT_MODE_nonTC_MISS_MASK 0x00004000L
+#define MH_DEBUG_REG51__MMU_SPLIT_MODE_nonTC_MISS 0x00004000L
+#define MH_DEBUG_REG51__MMU_SPLIT_MODE_nonTC_HIT_MASK 0x00008000L
+#define MH_DEBUG_REG51__MMU_SPLIT_MODE_nonTC_HIT 0x00008000L
+#define MH_DEBUG_REG51__REQ_VA_OFFSET_q_MASK 0xffff0000L
+
+// MH_DEBUG_REG52
+#define MH_DEBUG_REG52__ARQ_RTR_MASK 0x00000001L
+#define MH_DEBUG_REG52__ARQ_RTR 0x00000001L
+#define MH_DEBUG_REG52__MMU_WE_MASK 0x00000002L
+#define MH_DEBUG_REG52__MMU_WE 0x00000002L
+#define MH_DEBUG_REG52__CTRL_TLBMISS_RE_q_MASK 0x00000004L
+#define MH_DEBUG_REG52__CTRL_TLBMISS_RE_q 0x00000004L
+#define MH_DEBUG_REG52__TLBMISS_CTRL_RTS_MASK 0x00000008L
+#define MH_DEBUG_REG52__TLBMISS_CTRL_RTS 0x00000008L
+#define MH_DEBUG_REG52__MH_TLBMISS_SEND_MASK 0x00000010L
+#define MH_DEBUG_REG52__MH_TLBMISS_SEND 0x00000010L
+#define MH_DEBUG_REG52__MMU_STALL_AWAITING_TLB_MISS_FETCH_MASK 0x00000020L
+#define MH_DEBUG_REG52__MMU_STALL_AWAITING_TLB_MISS_FETCH 0x00000020L
+#define MH_DEBUG_REG52__pa_in_mpu_range_MASK 0x00000040L
+#define MH_DEBUG_REG52__pa_in_mpu_range 0x00000040L
+#define MH_DEBUG_REG52__stage1_valid_MASK 0x00000080L
+#define MH_DEBUG_REG52__stage1_valid 0x00000080L
+#define MH_DEBUG_REG52__stage2_valid_MASK 0x00000100L
+#define MH_DEBUG_REG52__stage2_valid 0x00000100L
+#define MH_DEBUG_REG52__client_behavior_q_MASK 0x00000600L
+#define MH_DEBUG_REG52__IGNORE_TAG_MISS_q_MASK 0x00000800L
+#define MH_DEBUG_REG52__IGNORE_TAG_MISS_q 0x00000800L
+#define MH_DEBUG_REG52__tag_match_q_MASK 0x00001000L
+#define MH_DEBUG_REG52__tag_match_q 0x00001000L
+#define MH_DEBUG_REG52__tag_miss_q_MASK 0x00002000L
+#define MH_DEBUG_REG52__tag_miss_q 0x00002000L
+#define MH_DEBUG_REG52__va_in_range_q_MASK 0x00004000L
+#define MH_DEBUG_REG52__va_in_range_q 0x00004000L
+#define MH_DEBUG_REG52__PTE_FETCH_COMPLETE_q_MASK 0x00008000L
+#define MH_DEBUG_REG52__PTE_FETCH_COMPLETE_q 0x00008000L
+#define MH_DEBUG_REG52__TAG_valid_q_MASK 0xffff0000L
+
+// MH_DEBUG_REG53
+#define MH_DEBUG_REG53__TAG0_VA_MASK 0x00001fffL
+#define MH_DEBUG_REG53__TAG_valid_q_0_MASK 0x00002000L
+#define MH_DEBUG_REG53__TAG_valid_q_0 0x00002000L
+#define MH_DEBUG_REG53__ALWAYS_ZERO_MASK 0x0000c000L
+#define MH_DEBUG_REG53__TAG1_VA_MASK 0x1fff0000L
+#define MH_DEBUG_REG53__TAG_valid_q_1_MASK 0x20000000L
+#define MH_DEBUG_REG53__TAG_valid_q_1 0x20000000L
+
+// MH_DEBUG_REG54
+#define MH_DEBUG_REG54__TAG2_VA_MASK 0x00001fffL
+#define MH_DEBUG_REG54__TAG_valid_q_2_MASK 0x00002000L
+#define MH_DEBUG_REG54__TAG_valid_q_2 0x00002000L
+#define MH_DEBUG_REG54__ALWAYS_ZERO_MASK 0x0000c000L
+#define MH_DEBUG_REG54__TAG3_VA_MASK 0x1fff0000L
+#define MH_DEBUG_REG54__TAG_valid_q_3_MASK 0x20000000L
+#define MH_DEBUG_REG54__TAG_valid_q_3 0x20000000L
+
+// MH_DEBUG_REG55
+#define MH_DEBUG_REG55__TAG4_VA_MASK 0x00001fffL
+#define MH_DEBUG_REG55__TAG_valid_q_4_MASK 0x00002000L
+#define MH_DEBUG_REG55__TAG_valid_q_4 0x00002000L
+#define MH_DEBUG_REG55__ALWAYS_ZERO_MASK 0x0000c000L
+#define MH_DEBUG_REG55__TAG5_VA_MASK 0x1fff0000L
+#define MH_DEBUG_REG55__TAG_valid_q_5_MASK 0x20000000L
+#define MH_DEBUG_REG55__TAG_valid_q_5 0x20000000L
+
+// MH_DEBUG_REG56
+#define MH_DEBUG_REG56__TAG6_VA_MASK 0x00001fffL
+#define MH_DEBUG_REG56__TAG_valid_q_6_MASK 0x00002000L
+#define MH_DEBUG_REG56__TAG_valid_q_6 0x00002000L
+#define MH_DEBUG_REG56__ALWAYS_ZERO_MASK 0x0000c000L
+#define MH_DEBUG_REG56__TAG7_VA_MASK 0x1fff0000L
+#define MH_DEBUG_REG56__TAG_valid_q_7_MASK 0x20000000L
+#define MH_DEBUG_REG56__TAG_valid_q_7 0x20000000L
+
+// MH_DEBUG_REG57
+#define MH_DEBUG_REG57__TAG8_VA_MASK 0x00001fffL
+#define MH_DEBUG_REG57__TAG_valid_q_8_MASK 0x00002000L
+#define MH_DEBUG_REG57__TAG_valid_q_8 0x00002000L
+#define MH_DEBUG_REG57__ALWAYS_ZERO_MASK 0x0000c000L
+#define MH_DEBUG_REG57__TAG9_VA_MASK 0x1fff0000L
+#define MH_DEBUG_REG57__TAG_valid_q_9_MASK 0x20000000L
+#define MH_DEBUG_REG57__TAG_valid_q_9 0x20000000L
+
+// MH_DEBUG_REG58
+#define MH_DEBUG_REG58__TAG10_VA_MASK 0x00001fffL
+#define MH_DEBUG_REG58__TAG_valid_q_10_MASK 0x00002000L
+#define MH_DEBUG_REG58__TAG_valid_q_10 0x00002000L
+#define MH_DEBUG_REG58__ALWAYS_ZERO_MASK 0x0000c000L
+#define MH_DEBUG_REG58__TAG11_VA_MASK 0x1fff0000L
+#define MH_DEBUG_REG58__TAG_valid_q_11_MASK 0x20000000L
+#define MH_DEBUG_REG58__TAG_valid_q_11 0x20000000L
+
+// MH_DEBUG_REG59
+#define MH_DEBUG_REG59__TAG12_VA_MASK 0x00001fffL
+#define MH_DEBUG_REG59__TAG_valid_q_12_MASK 0x00002000L
+#define MH_DEBUG_REG59__TAG_valid_q_12 0x00002000L
+#define MH_DEBUG_REG59__ALWAYS_ZERO_MASK 0x0000c000L
+#define MH_DEBUG_REG59__TAG13_VA_MASK 0x1fff0000L
+#define MH_DEBUG_REG59__TAG_valid_q_13_MASK 0x20000000L
+#define MH_DEBUG_REG59__TAG_valid_q_13 0x20000000L
+
+// MH_DEBUG_REG60
+#define MH_DEBUG_REG60__TAG14_VA_MASK 0x00001fffL
+#define MH_DEBUG_REG60__TAG_valid_q_14_MASK 0x00002000L
+#define MH_DEBUG_REG60__TAG_valid_q_14 0x00002000L
+#define MH_DEBUG_REG60__ALWAYS_ZERO_MASK 0x0000c000L
+#define MH_DEBUG_REG60__TAG15_VA_MASK 0x1fff0000L
+#define MH_DEBUG_REG60__TAG_valid_q_15_MASK 0x20000000L
+#define MH_DEBUG_REG60__TAG_valid_q_15 0x20000000L
+
+// MH_DEBUG_REG61
+#define MH_DEBUG_REG61__MH_DBG_DEFAULT_MASK 0xffffffffL
+
+// MH_DEBUG_REG62
+#define MH_DEBUG_REG62__MH_DBG_DEFAULT_MASK 0xffffffffL
+
+// MH_DEBUG_REG63
+#define MH_DEBUG_REG63__MH_DBG_DEFAULT_MASK 0xffffffffL
+
+// MH_MMU_CONFIG
+#define MH_MMU_CONFIG__MMU_ENABLE_MASK 0x00000001L
+#define MH_MMU_CONFIG__MMU_ENABLE 0x00000001L
+#define MH_MMU_CONFIG__SPLIT_MODE_ENABLE_MASK 0x00000002L
+#define MH_MMU_CONFIG__SPLIT_MODE_ENABLE 0x00000002L
+#define MH_MMU_CONFIG__RESERVED1_MASK 0x0000000cL
+#define MH_MMU_CONFIG__RB_W_CLNT_BEHAVIOR_MASK 0x00000030L
+#define MH_MMU_CONFIG__CP_W_CLNT_BEHAVIOR_MASK 0x000000c0L
+#define MH_MMU_CONFIG__CP_R0_CLNT_BEHAVIOR_MASK 0x00000300L
+#define MH_MMU_CONFIG__CP_R1_CLNT_BEHAVIOR_MASK 0x00000c00L
+#define MH_MMU_CONFIG__CP_R2_CLNT_BEHAVIOR_MASK 0x00003000L
+#define MH_MMU_CONFIG__CP_R3_CLNT_BEHAVIOR_MASK 0x0000c000L
+#define MH_MMU_CONFIG__CP_R4_CLNT_BEHAVIOR_MASK 0x00030000L
+#define MH_MMU_CONFIG__VGT_R0_CLNT_BEHAVIOR_MASK 0x000c0000L
+#define MH_MMU_CONFIG__VGT_R1_CLNT_BEHAVIOR_MASK 0x00300000L
+#define MH_MMU_CONFIG__TC_R_CLNT_BEHAVIOR_MASK 0x00c00000L
+
+// MH_MMU_VA_RANGE
+#define MH_MMU_VA_RANGE__NUM_64KB_REGIONS_MASK 0x00000fffL
+#define MH_MMU_VA_RANGE__VA_BASE_MASK 0xfffff000L
+
+// MH_MMU_PT_BASE
+#define MH_MMU_PT_BASE__PT_BASE_MASK 0xfffff000L
+
+// MH_MMU_PAGE_FAULT
+#define MH_MMU_PAGE_FAULT__PAGE_FAULT_MASK 0x00000001L
+#define MH_MMU_PAGE_FAULT__PAGE_FAULT 0x00000001L
+#define MH_MMU_PAGE_FAULT__OP_TYPE_MASK 0x00000002L
+#define MH_MMU_PAGE_FAULT__OP_TYPE 0x00000002L
+#define MH_MMU_PAGE_FAULT__CLNT_BEHAVIOR_MASK 0x0000000cL
+#define MH_MMU_PAGE_FAULT__AXI_ID_MASK 0x00000070L
+#define MH_MMU_PAGE_FAULT__RESERVED1_MASK 0x00000080L
+#define MH_MMU_PAGE_FAULT__RESERVED1 0x00000080L
+#define MH_MMU_PAGE_FAULT__MPU_ADDRESS_OUT_OF_RANGE_MASK 0x00000100L
+#define MH_MMU_PAGE_FAULT__MPU_ADDRESS_OUT_OF_RANGE 0x00000100L
+#define MH_MMU_PAGE_FAULT__ADDRESS_OUT_OF_RANGE_MASK 0x00000200L
+#define MH_MMU_PAGE_FAULT__ADDRESS_OUT_OF_RANGE 0x00000200L
+#define MH_MMU_PAGE_FAULT__READ_PROTECTION_ERROR_MASK 0x00000400L
+#define MH_MMU_PAGE_FAULT__READ_PROTECTION_ERROR 0x00000400L
+#define MH_MMU_PAGE_FAULT__WRITE_PROTECTION_ERROR_MASK 0x00000800L
+#define MH_MMU_PAGE_FAULT__WRITE_PROTECTION_ERROR 0x00000800L
+#define MH_MMU_PAGE_FAULT__REQ_VA_MASK 0xfffff000L
+
+// MH_MMU_TRAN_ERROR
+#define MH_MMU_TRAN_ERROR__TRAN_ERROR_MASK 0xffffffe0L
+
+// MH_MMU_INVALIDATE
+#define MH_MMU_INVALIDATE__INVALIDATE_ALL_MASK 0x00000001L
+#define MH_MMU_INVALIDATE__INVALIDATE_ALL 0x00000001L
+#define MH_MMU_INVALIDATE__INVALIDATE_TC_MASK 0x00000002L
+#define MH_MMU_INVALIDATE__INVALIDATE_TC 0x00000002L
+
+// MH_MMU_MPU_BASE
+#define MH_MMU_MPU_BASE__MPU_BASE_MASK 0xfffff000L
+
+// MH_MMU_MPU_END
+#define MH_MMU_MPU_END__MPU_END_MASK 0xfffff000L
+
+// WAIT_UNTIL
+#define WAIT_UNTIL__WAIT_RE_VSYNC_MASK 0x00000002L
+#define WAIT_UNTIL__WAIT_RE_VSYNC 0x00000002L
+#define WAIT_UNTIL__WAIT_FE_VSYNC_MASK 0x00000004L
+#define WAIT_UNTIL__WAIT_FE_VSYNC 0x00000004L
+#define WAIT_UNTIL__WAIT_VSYNC_MASK 0x00000008L
+#define WAIT_UNTIL__WAIT_VSYNC 0x00000008L
+#define WAIT_UNTIL__WAIT_DSPLY_ID0_MASK 0x00000010L
+#define WAIT_UNTIL__WAIT_DSPLY_ID0 0x00000010L
+#define WAIT_UNTIL__WAIT_DSPLY_ID1_MASK 0x00000020L
+#define WAIT_UNTIL__WAIT_DSPLY_ID1 0x00000020L
+#define WAIT_UNTIL__WAIT_DSPLY_ID2_MASK 0x00000040L
+#define WAIT_UNTIL__WAIT_DSPLY_ID2 0x00000040L
+#define WAIT_UNTIL__WAIT_CMDFIFO_MASK 0x00000400L
+#define WAIT_UNTIL__WAIT_CMDFIFO 0x00000400L
+#define WAIT_UNTIL__WAIT_2D_IDLE_MASK 0x00004000L
+#define WAIT_UNTIL__WAIT_2D_IDLE 0x00004000L
+#define WAIT_UNTIL__WAIT_3D_IDLE_MASK 0x00008000L
+#define WAIT_UNTIL__WAIT_3D_IDLE 0x00008000L
+#define WAIT_UNTIL__WAIT_2D_IDLECLEAN_MASK 0x00010000L
+#define WAIT_UNTIL__WAIT_2D_IDLECLEAN 0x00010000L
+#define WAIT_UNTIL__WAIT_3D_IDLECLEAN_MASK 0x00020000L
+#define WAIT_UNTIL__WAIT_3D_IDLECLEAN 0x00020000L
+#define WAIT_UNTIL__CMDFIFO_ENTRIES_MASK 0x00f00000L
+
+// RBBM_ISYNC_CNTL
+#define RBBM_ISYNC_CNTL__ISYNC_WAIT_IDLEGUI_MASK 0x00000010L
+#define RBBM_ISYNC_CNTL__ISYNC_WAIT_IDLEGUI 0x00000010L
+#define RBBM_ISYNC_CNTL__ISYNC_CPSCRATCH_IDLEGUI_MASK 0x00000020L
+#define RBBM_ISYNC_CNTL__ISYNC_CPSCRATCH_IDLEGUI 0x00000020L
+
+// RBBM_STATUS
+#define RBBM_STATUS__CMDFIFO_AVAIL_MASK 0x0000001fL
+#define RBBM_STATUS__TC_BUSY_MASK 0x00000020L
+#define RBBM_STATUS__TC_BUSY 0x00000020L
+#define RBBM_STATUS__HIRQ_PENDING_MASK 0x00000100L
+#define RBBM_STATUS__HIRQ_PENDING 0x00000100L
+#define RBBM_STATUS__CPRQ_PENDING_MASK 0x00000200L
+#define RBBM_STATUS__CPRQ_PENDING 0x00000200L
+#define RBBM_STATUS__CFRQ_PENDING_MASK 0x00000400L
+#define RBBM_STATUS__CFRQ_PENDING 0x00000400L
+#define RBBM_STATUS__PFRQ_PENDING_MASK 0x00000800L
+#define RBBM_STATUS__PFRQ_PENDING 0x00000800L
+#define RBBM_STATUS__VGT_BUSY_NO_DMA_MASK 0x00001000L
+#define RBBM_STATUS__VGT_BUSY_NO_DMA 0x00001000L
+#define RBBM_STATUS__RBBM_WU_BUSY_MASK 0x00004000L
+#define RBBM_STATUS__RBBM_WU_BUSY 0x00004000L
+#define RBBM_STATUS__CP_NRT_BUSY_MASK 0x00010000L
+#define RBBM_STATUS__CP_NRT_BUSY 0x00010000L
+#define RBBM_STATUS__MH_BUSY_MASK 0x00040000L
+#define RBBM_STATUS__MH_BUSY 0x00040000L
+#define RBBM_STATUS__MH_COHERENCY_BUSY_MASK 0x00080000L
+#define RBBM_STATUS__MH_COHERENCY_BUSY 0x00080000L
+#define RBBM_STATUS__SX_BUSY_MASK 0x00200000L
+#define RBBM_STATUS__SX_BUSY 0x00200000L
+#define RBBM_STATUS__TPC_BUSY_MASK 0x00400000L
+#define RBBM_STATUS__TPC_BUSY 0x00400000L
+#define RBBM_STATUS__SC_CNTX_BUSY_MASK 0x01000000L
+#define RBBM_STATUS__SC_CNTX_BUSY 0x01000000L
+#define RBBM_STATUS__PA_BUSY_MASK 0x02000000L
+#define RBBM_STATUS__PA_BUSY 0x02000000L
+#define RBBM_STATUS__VGT_BUSY_MASK 0x04000000L
+#define RBBM_STATUS__VGT_BUSY 0x04000000L
+#define RBBM_STATUS__SQ_CNTX17_BUSY_MASK 0x08000000L
+#define RBBM_STATUS__SQ_CNTX17_BUSY 0x08000000L
+#define RBBM_STATUS__SQ_CNTX0_BUSY_MASK 0x10000000L
+#define RBBM_STATUS__SQ_CNTX0_BUSY 0x10000000L
+#define RBBM_STATUS__RB_CNTX_BUSY_MASK 0x40000000L
+#define RBBM_STATUS__RB_CNTX_BUSY 0x40000000L
+#define RBBM_STATUS__GUI_ACTIVE_MASK 0x80000000L
+#define RBBM_STATUS__GUI_ACTIVE 0x80000000L
+
+// RBBM_DSPLY
+#define RBBM_DSPLY__DISPLAY_ID0_ACTIVE_MASK 0x00000001L
+#define RBBM_DSPLY__DISPLAY_ID0_ACTIVE 0x00000001L
+#define RBBM_DSPLY__DISPLAY_ID1_ACTIVE_MASK 0x00000002L
+#define RBBM_DSPLY__DISPLAY_ID1_ACTIVE 0x00000002L
+#define RBBM_DSPLY__DISPLAY_ID2_ACTIVE_MASK 0x00000004L
+#define RBBM_DSPLY__DISPLAY_ID2_ACTIVE 0x00000004L
+#define RBBM_DSPLY__VSYNC_ACTIVE_MASK 0x00000008L
+#define RBBM_DSPLY__VSYNC_ACTIVE 0x00000008L
+#define RBBM_DSPLY__USE_DISPLAY_ID0_MASK 0x00000010L
+#define RBBM_DSPLY__USE_DISPLAY_ID0 0x00000010L
+#define RBBM_DSPLY__USE_DISPLAY_ID1_MASK 0x00000020L
+#define RBBM_DSPLY__USE_DISPLAY_ID1 0x00000020L
+#define RBBM_DSPLY__USE_DISPLAY_ID2_MASK 0x00000040L
+#define RBBM_DSPLY__USE_DISPLAY_ID2 0x00000040L
+#define RBBM_DSPLY__SW_CNTL_MASK 0x00000080L
+#define RBBM_DSPLY__SW_CNTL 0x00000080L
+#define RBBM_DSPLY__NUM_BUFS_MASK 0x00000300L
+
+// RBBM_RENDER_LATEST
+#define RBBM_RENDER_LATEST__BUFFER_ID_MASK 0x00000003L
+
+// RBBM_RTL_RELEASE
+#define RBBM_RTL_RELEASE__CHANGELIST_MASK 0xffffffffL
+
+// RBBM_PATCH_RELEASE
+#define RBBM_PATCH_RELEASE__PATCH_REVISION_MASK 0x0000ffffL
+#define RBBM_PATCH_RELEASE__PATCH_SELECTION_MASK 0x00ff0000L
+#define RBBM_PATCH_RELEASE__CUSTOMER_ID_MASK 0xff000000L
+
+// RBBM_AUXILIARY_CONFIG
+#define RBBM_AUXILIARY_CONFIG__RESERVED_MASK 0xffffffffL
+
+// RBBM_PERIPHID0
+#define RBBM_PERIPHID0__PARTNUMBER0_MASK 0x000000ffL
+
+// RBBM_PERIPHID1
+#define RBBM_PERIPHID1__PARTNUMBER1_MASK 0x0000000fL
+#define RBBM_PERIPHID1__DESIGNER0_MASK 0x000000f0L
+
+// RBBM_PERIPHID2
+#define RBBM_PERIPHID2__DESIGNER1_MASK 0x0000000fL
+#define RBBM_PERIPHID2__REVISION_MASK 0x000000f0L
+
+// RBBM_PERIPHID3
+#define RBBM_PERIPHID3__RBBM_HOST_INTERFACE_MASK 0x00000003L
+#define RBBM_PERIPHID3__GARB_SLAVE_INTERFACE_MASK 0x0000000cL
+#define RBBM_PERIPHID3__MH_INTERFACE_MASK 0x00000030L
+#define RBBM_PERIPHID3__CONTINUATION_MASK 0x00000080L
+#define RBBM_PERIPHID3__CONTINUATION 0x00000080L
+
+// RBBM_CNTL
+#define RBBM_CNTL__READ_TIMEOUT_MASK 0x000000ffL
+#define RBBM_CNTL__REGCLK_DEASSERT_TIME_MASK 0x0001ff00L
+
+// RBBM_SKEW_CNTL
+#define RBBM_SKEW_CNTL__SKEW_TOP_THRESHOLD_MASK 0x0000001fL
+#define RBBM_SKEW_CNTL__SKEW_COUNT_MASK 0x000003e0L
+
+// RBBM_SOFT_RESET
+#define RBBM_SOFT_RESET__SOFT_RESET_CP_MASK 0x00000001L
+#define RBBM_SOFT_RESET__SOFT_RESET_CP 0x00000001L
+#define RBBM_SOFT_RESET__SOFT_RESET_PA_MASK 0x00000004L
+#define RBBM_SOFT_RESET__SOFT_RESET_PA 0x00000004L
+#define RBBM_SOFT_RESET__SOFT_RESET_MH_MASK 0x00000008L
+#define RBBM_SOFT_RESET__SOFT_RESET_MH 0x00000008L
+#define RBBM_SOFT_RESET__SOFT_RESET_BC_MASK 0x00000010L
+#define RBBM_SOFT_RESET__SOFT_RESET_BC 0x00000010L
+#define RBBM_SOFT_RESET__SOFT_RESET_SQ_MASK 0x00000020L
+#define RBBM_SOFT_RESET__SOFT_RESET_SQ 0x00000020L
+#define RBBM_SOFT_RESET__SOFT_RESET_SX_MASK 0x00000040L
+#define RBBM_SOFT_RESET__SOFT_RESET_SX 0x00000040L
+#define RBBM_SOFT_RESET__SOFT_RESET_CIB_MASK 0x00001000L
+#define RBBM_SOFT_RESET__SOFT_RESET_CIB 0x00001000L
+#define RBBM_SOFT_RESET__SOFT_RESET_SC_MASK 0x00008000L
+#define RBBM_SOFT_RESET__SOFT_RESET_SC 0x00008000L
+#define RBBM_SOFT_RESET__SOFT_RESET_VGT_MASK 0x00010000L
+#define RBBM_SOFT_RESET__SOFT_RESET_VGT 0x00010000L
+
+// RBBM_PM_OVERRIDE1
+#define RBBM_PM_OVERRIDE1__RBBM_AHBCLK_PM_OVERRIDE_MASK 0x00000001L
+#define RBBM_PM_OVERRIDE1__RBBM_AHBCLK_PM_OVERRIDE 0x00000001L
+#define RBBM_PM_OVERRIDE1__SC_REG_SCLK_PM_OVERRIDE_MASK 0x00000002L
+#define RBBM_PM_OVERRIDE1__SC_REG_SCLK_PM_OVERRIDE 0x00000002L
+#define RBBM_PM_OVERRIDE1__SC_SCLK_PM_OVERRIDE_MASK 0x00000004L
+#define RBBM_PM_OVERRIDE1__SC_SCLK_PM_OVERRIDE 0x00000004L
+#define RBBM_PM_OVERRIDE1__SP_TOP_SCLK_PM_OVERRIDE_MASK 0x00000008L
+#define RBBM_PM_OVERRIDE1__SP_TOP_SCLK_PM_OVERRIDE 0x00000008L
+#define RBBM_PM_OVERRIDE1__SP_V0_SCLK_PM_OVERRIDE_MASK 0x00000010L
+#define RBBM_PM_OVERRIDE1__SP_V0_SCLK_PM_OVERRIDE 0x00000010L
+#define RBBM_PM_OVERRIDE1__SQ_REG_SCLK_PM_OVERRIDE_MASK 0x00000020L
+#define RBBM_PM_OVERRIDE1__SQ_REG_SCLK_PM_OVERRIDE 0x00000020L
+#define RBBM_PM_OVERRIDE1__SQ_REG_FIFOS_SCLK_PM_OVERRIDE_MASK 0x00000040L
+#define RBBM_PM_OVERRIDE1__SQ_REG_FIFOS_SCLK_PM_OVERRIDE 0x00000040L
+#define RBBM_PM_OVERRIDE1__SQ_CONST_MEM_SCLK_PM_OVERRIDE_MASK 0x00000080L
+#define RBBM_PM_OVERRIDE1__SQ_CONST_MEM_SCLK_PM_OVERRIDE 0x00000080L
+#define RBBM_PM_OVERRIDE1__SQ_SQ_SCLK_PM_OVERRIDE_MASK 0x00000100L
+#define RBBM_PM_OVERRIDE1__SQ_SQ_SCLK_PM_OVERRIDE 0x00000100L
+#define RBBM_PM_OVERRIDE1__SX_SCLK_PM_OVERRIDE_MASK 0x00000200L
+#define RBBM_PM_OVERRIDE1__SX_SCLK_PM_OVERRIDE 0x00000200L
+#define RBBM_PM_OVERRIDE1__SX_REG_SCLK_PM_OVERRIDE_MASK 0x00000400L
+#define RBBM_PM_OVERRIDE1__SX_REG_SCLK_PM_OVERRIDE 0x00000400L
+#define RBBM_PM_OVERRIDE1__TCM_TCO_SCLK_PM_OVERRIDE_MASK 0x00000800L
+#define RBBM_PM_OVERRIDE1__TCM_TCO_SCLK_PM_OVERRIDE 0x00000800L
+#define RBBM_PM_OVERRIDE1__TCM_TCM_SCLK_PM_OVERRIDE_MASK 0x00001000L
+#define RBBM_PM_OVERRIDE1__TCM_TCM_SCLK_PM_OVERRIDE 0x00001000L
+#define RBBM_PM_OVERRIDE1__TCM_TCD_SCLK_PM_OVERRIDE_MASK 0x00002000L
+#define RBBM_PM_OVERRIDE1__TCM_TCD_SCLK_PM_OVERRIDE 0x00002000L
+#define RBBM_PM_OVERRIDE1__TCM_REG_SCLK_PM_OVERRIDE_MASK 0x00004000L
+#define RBBM_PM_OVERRIDE1__TCM_REG_SCLK_PM_OVERRIDE 0x00004000L
+#define RBBM_PM_OVERRIDE1__TPC_TPC_SCLK_PM_OVERRIDE_MASK 0x00008000L
+#define RBBM_PM_OVERRIDE1__TPC_TPC_SCLK_PM_OVERRIDE 0x00008000L
+#define RBBM_PM_OVERRIDE1__TPC_REG_SCLK_PM_OVERRIDE_MASK 0x00010000L
+#define RBBM_PM_OVERRIDE1__TPC_REG_SCLK_PM_OVERRIDE 0x00010000L
+#define RBBM_PM_OVERRIDE1__TCF_TCA_SCLK_PM_OVERRIDE_MASK 0x00020000L
+#define RBBM_PM_OVERRIDE1__TCF_TCA_SCLK_PM_OVERRIDE 0x00020000L
+#define RBBM_PM_OVERRIDE1__TCF_TCB_SCLK_PM_OVERRIDE_MASK 0x00040000L
+#define RBBM_PM_OVERRIDE1__TCF_TCB_SCLK_PM_OVERRIDE 0x00040000L
+#define RBBM_PM_OVERRIDE1__TCF_TCB_READ_SCLK_PM_OVERRIDE_MASK 0x00080000L
+#define RBBM_PM_OVERRIDE1__TCF_TCB_READ_SCLK_PM_OVERRIDE 0x00080000L
+#define RBBM_PM_OVERRIDE1__TP_TP_SCLK_PM_OVERRIDE_MASK 0x00100000L
+#define RBBM_PM_OVERRIDE1__TP_TP_SCLK_PM_OVERRIDE 0x00100000L
+#define RBBM_PM_OVERRIDE1__TP_REG_SCLK_PM_OVERRIDE_MASK 0x00200000L
+#define RBBM_PM_OVERRIDE1__TP_REG_SCLK_PM_OVERRIDE 0x00200000L
+#define RBBM_PM_OVERRIDE1__CP_G_SCLK_PM_OVERRIDE_MASK 0x00400000L
+#define RBBM_PM_OVERRIDE1__CP_G_SCLK_PM_OVERRIDE 0x00400000L
+#define RBBM_PM_OVERRIDE1__CP_REG_SCLK_PM_OVERRIDE_MASK 0x00800000L
+#define RBBM_PM_OVERRIDE1__CP_REG_SCLK_PM_OVERRIDE 0x00800000L
+#define RBBM_PM_OVERRIDE1__CP_G_REG_SCLK_PM_OVERRIDE_MASK 0x01000000L
+#define RBBM_PM_OVERRIDE1__CP_G_REG_SCLK_PM_OVERRIDE 0x01000000L
+#define RBBM_PM_OVERRIDE1__SPI_SCLK_PM_OVERRIDE_MASK 0x02000000L
+#define RBBM_PM_OVERRIDE1__SPI_SCLK_PM_OVERRIDE 0x02000000L
+#define RBBM_PM_OVERRIDE1__RB_REG_SCLK_PM_OVERRIDE_MASK 0x04000000L
+#define RBBM_PM_OVERRIDE1__RB_REG_SCLK_PM_OVERRIDE 0x04000000L
+#define RBBM_PM_OVERRIDE1__RB_SCLK_PM_OVERRIDE_MASK 0x08000000L
+#define RBBM_PM_OVERRIDE1__RB_SCLK_PM_OVERRIDE 0x08000000L
+#define RBBM_PM_OVERRIDE1__MH_MH_SCLK_PM_OVERRIDE_MASK 0x10000000L
+#define RBBM_PM_OVERRIDE1__MH_MH_SCLK_PM_OVERRIDE 0x10000000L
+#define RBBM_PM_OVERRIDE1__MH_REG_SCLK_PM_OVERRIDE_MASK 0x20000000L
+#define RBBM_PM_OVERRIDE1__MH_REG_SCLK_PM_OVERRIDE 0x20000000L
+#define RBBM_PM_OVERRIDE1__MH_MMU_SCLK_PM_OVERRIDE_MASK 0x40000000L
+#define RBBM_PM_OVERRIDE1__MH_MMU_SCLK_PM_OVERRIDE 0x40000000L
+#define RBBM_PM_OVERRIDE1__MH_TCROQ_SCLK_PM_OVERRIDE_MASK 0x80000000L
+#define RBBM_PM_OVERRIDE1__MH_TCROQ_SCLK_PM_OVERRIDE 0x80000000L
+
+// RBBM_PM_OVERRIDE2
+#define RBBM_PM_OVERRIDE2__PA_REG_SCLK_PM_OVERRIDE_MASK 0x00000001L
+#define RBBM_PM_OVERRIDE2__PA_REG_SCLK_PM_OVERRIDE 0x00000001L
+#define RBBM_PM_OVERRIDE2__PA_PA_SCLK_PM_OVERRIDE_MASK 0x00000002L
+#define RBBM_PM_OVERRIDE2__PA_PA_SCLK_PM_OVERRIDE 0x00000002L
+#define RBBM_PM_OVERRIDE2__PA_AG_SCLK_PM_OVERRIDE_MASK 0x00000004L
+#define RBBM_PM_OVERRIDE2__PA_AG_SCLK_PM_OVERRIDE 0x00000004L
+#define RBBM_PM_OVERRIDE2__VGT_REG_SCLK_PM_OVERRIDE_MASK 0x00000008L
+#define RBBM_PM_OVERRIDE2__VGT_REG_SCLK_PM_OVERRIDE 0x00000008L
+#define RBBM_PM_OVERRIDE2__VGT_FIFOS_SCLK_PM_OVERRIDE_MASK 0x00000010L
+#define RBBM_PM_OVERRIDE2__VGT_FIFOS_SCLK_PM_OVERRIDE 0x00000010L
+#define RBBM_PM_OVERRIDE2__VGT_VGT_SCLK_PM_OVERRIDE_MASK 0x00000020L
+#define RBBM_PM_OVERRIDE2__VGT_VGT_SCLK_PM_OVERRIDE 0x00000020L
+#define RBBM_PM_OVERRIDE2__DEBUG_PERF_SCLK_PM_OVERRIDE_MASK 0x00000040L
+#define RBBM_PM_OVERRIDE2__DEBUG_PERF_SCLK_PM_OVERRIDE 0x00000040L
+#define RBBM_PM_OVERRIDE2__PERM_SCLK_PM_OVERRIDE_MASK 0x00000080L
+#define RBBM_PM_OVERRIDE2__PERM_SCLK_PM_OVERRIDE 0x00000080L
+#define RBBM_PM_OVERRIDE2__GC_GA_GMEM0_PM_OVERRIDE_MASK 0x00000100L
+#define RBBM_PM_OVERRIDE2__GC_GA_GMEM0_PM_OVERRIDE 0x00000100L
+#define RBBM_PM_OVERRIDE2__GC_GA_GMEM1_PM_OVERRIDE_MASK 0x00000200L
+#define RBBM_PM_OVERRIDE2__GC_GA_GMEM1_PM_OVERRIDE 0x00000200L
+#define RBBM_PM_OVERRIDE2__GC_GA_GMEM2_PM_OVERRIDE_MASK 0x00000400L
+#define RBBM_PM_OVERRIDE2__GC_GA_GMEM2_PM_OVERRIDE 0x00000400L
+#define RBBM_PM_OVERRIDE2__GC_GA_GMEM3_PM_OVERRIDE_MASK 0x00000800L
+#define RBBM_PM_OVERRIDE2__GC_GA_GMEM3_PM_OVERRIDE 0x00000800L
+
+// GC_SYS_IDLE
+#define GC_SYS_IDLE__GC_SYS_IDLE_DELAY_MASK 0x0000ffffL
+#define GC_SYS_IDLE__GC_SYS_IDLE_OVERRIDE_MASK 0x80000000L
+#define GC_SYS_IDLE__GC_SYS_IDLE_OVERRIDE 0x80000000L
+
+// NQWAIT_UNTIL
+#define NQWAIT_UNTIL__WAIT_GUI_IDLE_MASK 0x00000001L
+#define NQWAIT_UNTIL__WAIT_GUI_IDLE 0x00000001L
+
+// RBBM_DEBUG
+#define RBBM_DEBUG__IGNORE_RTR_MASK 0x00000002L
+#define RBBM_DEBUG__IGNORE_RTR 0x00000002L
+#define RBBM_DEBUG__IGNORE_CP_SCHED_WU_MASK 0x00000004L
+#define RBBM_DEBUG__IGNORE_CP_SCHED_WU 0x00000004L
+#define RBBM_DEBUG__IGNORE_CP_SCHED_ISYNC_MASK 0x00000008L
+#define RBBM_DEBUG__IGNORE_CP_SCHED_ISYNC 0x00000008L
+#define RBBM_DEBUG__IGNORE_CP_SCHED_NQ_HI_MASK 0x00000010L
+#define RBBM_DEBUG__IGNORE_CP_SCHED_NQ_HI 0x00000010L
+#define RBBM_DEBUG__HYSTERESIS_NRT_GUI_ACTIVE_MASK 0x00000f00L
+#define RBBM_DEBUG__IGNORE_RTR_FOR_HI_MASK 0x00010000L
+#define RBBM_DEBUG__IGNORE_RTR_FOR_HI 0x00010000L
+#define RBBM_DEBUG__IGNORE_CP_RBBM_NRTRTR_FOR_HI_MASK 0x00020000L
+#define RBBM_DEBUG__IGNORE_CP_RBBM_NRTRTR_FOR_HI 0x00020000L
+#define RBBM_DEBUG__IGNORE_VGT_RBBM_NRTRTR_FOR_HI_MASK 0x00040000L
+#define RBBM_DEBUG__IGNORE_VGT_RBBM_NRTRTR_FOR_HI 0x00040000L
+#define RBBM_DEBUG__IGNORE_SQ_RBBM_NRTRTR_FOR_HI_MASK 0x00080000L
+#define RBBM_DEBUG__IGNORE_SQ_RBBM_NRTRTR_FOR_HI 0x00080000L
+#define RBBM_DEBUG__CP_RBBM_NRTRTR_MASK 0x00100000L
+#define RBBM_DEBUG__CP_RBBM_NRTRTR 0x00100000L
+#define RBBM_DEBUG__VGT_RBBM_NRTRTR_MASK 0x00200000L
+#define RBBM_DEBUG__VGT_RBBM_NRTRTR 0x00200000L
+#define RBBM_DEBUG__SQ_RBBM_NRTRTR_MASK 0x00400000L
+#define RBBM_DEBUG__SQ_RBBM_NRTRTR 0x00400000L
+#define RBBM_DEBUG__CLIENTS_FOR_NRT_RTR_FOR_HI_MASK 0x00800000L
+#define RBBM_DEBUG__CLIENTS_FOR_NRT_RTR_FOR_HI 0x00800000L
+#define RBBM_DEBUG__CLIENTS_FOR_NRT_RTR_MASK 0x01000000L
+#define RBBM_DEBUG__CLIENTS_FOR_NRT_RTR 0x01000000L
+#define RBBM_DEBUG__IGNORE_SX_RBBM_BUSY_MASK 0x80000000L
+#define RBBM_DEBUG__IGNORE_SX_RBBM_BUSY 0x80000000L
+
+// RBBM_READ_ERROR
+#define RBBM_READ_ERROR__READ_ADDRESS_MASK 0x0001fffcL
+#define RBBM_READ_ERROR__READ_REQUESTER_MASK 0x40000000L
+#define RBBM_READ_ERROR__READ_REQUESTER 0x40000000L
+#define RBBM_READ_ERROR__READ_ERROR_MASK 0x80000000L
+#define RBBM_READ_ERROR__READ_ERROR 0x80000000L
+
+// RBBM_WAIT_IDLE_CLOCKS
+#define RBBM_WAIT_IDLE_CLOCKS__WAIT_IDLE_CLOCKS_NRT_MASK 0x000000ffL
+
+// RBBM_INT_CNTL
+#define RBBM_INT_CNTL__RDERR_INT_MASK_MASK 0x00000001L
+#define RBBM_INT_CNTL__RDERR_INT_MASK 0x00000001L
+#define RBBM_INT_CNTL__DISPLAY_UPDATE_INT_MASK_MASK 0x00000002L
+#define RBBM_INT_CNTL__DISPLAY_UPDATE_INT_MASK 0x00000002L
+#define RBBM_INT_CNTL__GUI_IDLE_INT_MASK_MASK 0x00080000L
+#define RBBM_INT_CNTL__GUI_IDLE_INT_MASK 0x00080000L
+
+// RBBM_INT_STATUS
+#define RBBM_INT_STATUS__RDERR_INT_STAT_MASK 0x00000001L
+#define RBBM_INT_STATUS__RDERR_INT_STAT 0x00000001L
+#define RBBM_INT_STATUS__DISPLAY_UPDATE_INT_STAT_MASK 0x00000002L
+#define RBBM_INT_STATUS__DISPLAY_UPDATE_INT_STAT 0x00000002L
+#define RBBM_INT_STATUS__GUI_IDLE_INT_STAT_MASK 0x00080000L
+#define RBBM_INT_STATUS__GUI_IDLE_INT_STAT 0x00080000L
+
+// RBBM_INT_ACK
+#define RBBM_INT_ACK__RDERR_INT_ACK_MASK 0x00000001L
+#define RBBM_INT_ACK__RDERR_INT_ACK 0x00000001L
+#define RBBM_INT_ACK__DISPLAY_UPDATE_INT_ACK_MASK 0x00000002L
+#define RBBM_INT_ACK__DISPLAY_UPDATE_INT_ACK 0x00000002L
+#define RBBM_INT_ACK__GUI_IDLE_INT_ACK_MASK 0x00080000L
+#define RBBM_INT_ACK__GUI_IDLE_INT_ACK 0x00080000L
+
+// MASTER_INT_SIGNAL
+#define MASTER_INT_SIGNAL__MH_INT_STAT_MASK 0x00000020L
+#define MASTER_INT_SIGNAL__MH_INT_STAT 0x00000020L
+#define MASTER_INT_SIGNAL__CP_INT_STAT_MASK 0x40000000L
+#define MASTER_INT_SIGNAL__CP_INT_STAT 0x40000000L
+#define MASTER_INT_SIGNAL__RBBM_INT_STAT_MASK 0x80000000L
+#define MASTER_INT_SIGNAL__RBBM_INT_STAT 0x80000000L
+
+// RBBM_PERFCOUNTER1_SELECT
+#define RBBM_PERFCOUNTER1_SELECT__PERF_COUNT1_SEL_MASK 0x0000003fL
+
+// RBBM_PERFCOUNTER1_LO
+#define RBBM_PERFCOUNTER1_LO__PERF_COUNT1_LO_MASK 0xffffffffL
+
+// RBBM_PERFCOUNTER1_HI
+#define RBBM_PERFCOUNTER1_HI__PERF_COUNT1_HI_MASK 0x0000ffffL
+
+// CP_RB_BASE
+#define CP_RB_BASE__RB_BASE_MASK 0xffffffe0L
+
+// CP_RB_CNTL
+#define CP_RB_CNTL__RB_BUFSZ_MASK 0x0000003fL
+#define CP_RB_CNTL__RB_BLKSZ_MASK 0x00003f00L
+#define CP_RB_CNTL__BUF_SWAP_MASK 0x00030000L
+#define CP_RB_CNTL__RB_POLL_EN_MASK 0x00100000L
+#define CP_RB_CNTL__RB_POLL_EN 0x00100000L
+#define CP_RB_CNTL__RB_NO_UPDATE_MASK 0x08000000L
+#define CP_RB_CNTL__RB_NO_UPDATE 0x08000000L
+#define CP_RB_CNTL__RB_RPTR_WR_ENA_MASK 0x80000000L
+#define CP_RB_CNTL__RB_RPTR_WR_ENA 0x80000000L
+
+// CP_RB_RPTR_ADDR
+#define CP_RB_RPTR_ADDR__RB_RPTR_SWAP_MASK 0x00000003L
+#define CP_RB_RPTR_ADDR__RB_RPTR_ADDR_MASK 0xfffffffcL
+
+// CP_RB_RPTR
+#define CP_RB_RPTR__RB_RPTR_MASK 0x000fffffL
+
+// CP_RB_RPTR_WR
+#define CP_RB_RPTR_WR__RB_RPTR_WR_MASK 0x000fffffL
+
+// CP_RB_WPTR
+#define CP_RB_WPTR__RB_WPTR_MASK 0x000fffffL
+
+// CP_RB_WPTR_DELAY
+#define CP_RB_WPTR_DELAY__PRE_WRITE_TIMER_MASK 0x0fffffffL
+#define CP_RB_WPTR_DELAY__PRE_WRITE_LIMIT_MASK 0xf0000000L
+
+// CP_RB_WPTR_BASE
+#define CP_RB_WPTR_BASE__RB_WPTR_SWAP_MASK 0x00000003L
+#define CP_RB_WPTR_BASE__RB_WPTR_BASE_MASK 0xfffffffcL
+
+// CP_IB1_BASE
+#define CP_IB1_BASE__IB1_BASE_MASK 0xfffffffcL
+
+// CP_IB1_BUFSZ
+#define CP_IB1_BUFSZ__IB1_BUFSZ_MASK 0x000fffffL
+
+// CP_IB2_BASE
+#define CP_IB2_BASE__IB2_BASE_MASK 0xfffffffcL
+
+// CP_IB2_BUFSZ
+#define CP_IB2_BUFSZ__IB2_BUFSZ_MASK 0x000fffffL
+
+// CP_ST_BASE
+#define CP_ST_BASE__ST_BASE_MASK 0xfffffffcL
+
+// CP_ST_BUFSZ
+#define CP_ST_BUFSZ__ST_BUFSZ_MASK 0x000fffffL
+
+// CP_QUEUE_THRESHOLDS
+#define CP_QUEUE_THRESHOLDS__CSQ_IB1_START_MASK 0x0000000fL
+#define CP_QUEUE_THRESHOLDS__CSQ_IB2_START_MASK 0x00000f00L
+#define CP_QUEUE_THRESHOLDS__CSQ_ST_START_MASK 0x000f0000L
+
+// CP_MEQ_THRESHOLDS
+#define CP_MEQ_THRESHOLDS__MEQ_END_MASK 0x001f0000L
+#define CP_MEQ_THRESHOLDS__ROQ_END_MASK 0x1f000000L
+
+// CP_CSQ_AVAIL
+#define CP_CSQ_AVAIL__CSQ_CNT_RING_MASK 0x0000007fL
+#define CP_CSQ_AVAIL__CSQ_CNT_IB1_MASK 0x00007f00L
+#define CP_CSQ_AVAIL__CSQ_CNT_IB2_MASK 0x007f0000L
+
+// CP_STQ_AVAIL
+#define CP_STQ_AVAIL__STQ_CNT_ST_MASK 0x0000007fL
+
+// CP_MEQ_AVAIL
+#define CP_MEQ_AVAIL__MEQ_CNT_MASK 0x0000001fL
+
+// CP_CSQ_RB_STAT
+#define CP_CSQ_RB_STAT__CSQ_RPTR_PRIMARY_MASK 0x0000007fL
+#define CP_CSQ_RB_STAT__CSQ_WPTR_PRIMARY_MASK 0x007f0000L
+
+// CP_CSQ_IB1_STAT
+#define CP_CSQ_IB1_STAT__CSQ_RPTR_INDIRECT1_MASK 0x0000007fL
+#define CP_CSQ_IB1_STAT__CSQ_WPTR_INDIRECT1_MASK 0x007f0000L
+
+// CP_CSQ_IB2_STAT
+#define CP_CSQ_IB2_STAT__CSQ_RPTR_INDIRECT2_MASK 0x0000007fL
+#define CP_CSQ_IB2_STAT__CSQ_WPTR_INDIRECT2_MASK 0x007f0000L
+
+// CP_NON_PREFETCH_CNTRS
+#define CP_NON_PREFETCH_CNTRS__IB1_COUNTER_MASK 0x00000007L
+#define CP_NON_PREFETCH_CNTRS__IB2_COUNTER_MASK 0x00000700L
+
+// CP_STQ_ST_STAT
+#define CP_STQ_ST_STAT__STQ_RPTR_ST_MASK 0x0000007fL
+#define CP_STQ_ST_STAT__STQ_WPTR_ST_MASK 0x007f0000L
+
+// CP_MEQ_STAT
+#define CP_MEQ_STAT__MEQ_RPTR_MASK 0x000003ffL
+#define CP_MEQ_STAT__MEQ_WPTR_MASK 0x03ff0000L
+
+// CP_MIU_TAG_STAT
+#define CP_MIU_TAG_STAT__TAG_0_STAT_MASK 0x00000001L
+#define CP_MIU_TAG_STAT__TAG_0_STAT 0x00000001L
+#define CP_MIU_TAG_STAT__TAG_1_STAT_MASK 0x00000002L
+#define CP_MIU_TAG_STAT__TAG_1_STAT 0x00000002L
+#define CP_MIU_TAG_STAT__TAG_2_STAT_MASK 0x00000004L
+#define CP_MIU_TAG_STAT__TAG_2_STAT 0x00000004L
+#define CP_MIU_TAG_STAT__TAG_3_STAT_MASK 0x00000008L
+#define CP_MIU_TAG_STAT__TAG_3_STAT 0x00000008L
+#define CP_MIU_TAG_STAT__TAG_4_STAT_MASK 0x00000010L
+#define CP_MIU_TAG_STAT__TAG_4_STAT 0x00000010L
+#define CP_MIU_TAG_STAT__TAG_5_STAT_MASK 0x00000020L
+#define CP_MIU_TAG_STAT__TAG_5_STAT 0x00000020L
+#define CP_MIU_TAG_STAT__TAG_6_STAT_MASK 0x00000040L
+#define CP_MIU_TAG_STAT__TAG_6_STAT 0x00000040L
+#define CP_MIU_TAG_STAT__TAG_7_STAT_MASK 0x00000080L
+#define CP_MIU_TAG_STAT__TAG_7_STAT 0x00000080L
+#define CP_MIU_TAG_STAT__TAG_8_STAT_MASK 0x00000100L
+#define CP_MIU_TAG_STAT__TAG_8_STAT 0x00000100L
+#define CP_MIU_TAG_STAT__TAG_9_STAT_MASK 0x00000200L
+#define CP_MIU_TAG_STAT__TAG_9_STAT 0x00000200L
+#define CP_MIU_TAG_STAT__TAG_10_STAT_MASK 0x00000400L
+#define CP_MIU_TAG_STAT__TAG_10_STAT 0x00000400L
+#define CP_MIU_TAG_STAT__TAG_11_STAT_MASK 0x00000800L
+#define CP_MIU_TAG_STAT__TAG_11_STAT 0x00000800L
+#define CP_MIU_TAG_STAT__TAG_12_STAT_MASK 0x00001000L
+#define CP_MIU_TAG_STAT__TAG_12_STAT 0x00001000L
+#define CP_MIU_TAG_STAT__TAG_13_STAT_MASK 0x00002000L
+#define CP_MIU_TAG_STAT__TAG_13_STAT 0x00002000L
+#define CP_MIU_TAG_STAT__TAG_14_STAT_MASK 0x00004000L
+#define CP_MIU_TAG_STAT__TAG_14_STAT 0x00004000L
+#define CP_MIU_TAG_STAT__TAG_15_STAT_MASK 0x00008000L
+#define CP_MIU_TAG_STAT__TAG_15_STAT 0x00008000L
+#define CP_MIU_TAG_STAT__TAG_16_STAT_MASK 0x00010000L
+#define CP_MIU_TAG_STAT__TAG_16_STAT 0x00010000L
+#define CP_MIU_TAG_STAT__TAG_17_STAT_MASK 0x00020000L
+#define CP_MIU_TAG_STAT__TAG_17_STAT 0x00020000L
+#define CP_MIU_TAG_STAT__INVALID_RETURN_TAG_MASK 0x80000000L
+#define CP_MIU_TAG_STAT__INVALID_RETURN_TAG 0x80000000L
+
+// CP_CMD_INDEX
+#define CP_CMD_INDEX__CMD_INDEX_MASK 0x0000007fL
+#define CP_CMD_INDEX__CMD_QUEUE_SEL_MASK 0x00030000L
+
+// CP_CMD_DATA
+#define CP_CMD_DATA__CMD_DATA_MASK 0xffffffffL
+
+// CP_ME_CNTL
+#define CP_ME_CNTL__ME_STATMUX_MASK 0x0000ffffL
+#define CP_ME_CNTL__VTX_DEALLOC_FIFO_EMPTY_MASK 0x02000000L
+#define CP_ME_CNTL__VTX_DEALLOC_FIFO_EMPTY 0x02000000L
+#define CP_ME_CNTL__PIX_DEALLOC_FIFO_EMPTY_MASK 0x04000000L
+#define CP_ME_CNTL__PIX_DEALLOC_FIFO_EMPTY 0x04000000L
+#define CP_ME_CNTL__ME_HALT_MASK 0x10000000L
+#define CP_ME_CNTL__ME_HALT 0x10000000L
+#define CP_ME_CNTL__ME_BUSY_MASK 0x20000000L
+#define CP_ME_CNTL__ME_BUSY 0x20000000L
+#define CP_ME_CNTL__PROG_CNT_SIZE_MASK 0x80000000L
+#define CP_ME_CNTL__PROG_CNT_SIZE 0x80000000L
+
+// CP_ME_STATUS
+#define CP_ME_STATUS__ME_DEBUG_DATA_MASK 0xffffffffL
+
+// CP_ME_RAM_WADDR
+#define CP_ME_RAM_WADDR__ME_RAM_WADDR_MASK 0x000003ffL
+
+// CP_ME_RAM_RADDR
+#define CP_ME_RAM_RADDR__ME_RAM_RADDR_MASK 0x000003ffL
+
+// CP_ME_RAM_DATA
+#define CP_ME_RAM_DATA__ME_RAM_DATA_MASK 0xffffffffL
+
+// CP_ME_RDADDR
+#define CP_ME_RDADDR__ME_RDADDR_MASK 0xffffffffL
+
+// CP_DEBUG
+#define CP_DEBUG__CP_DEBUG_UNUSED_22_to_0_MASK 0x007fffffL
+#define CP_DEBUG__PREDICATE_DISABLE_MASK 0x00800000L
+#define CP_DEBUG__PREDICATE_DISABLE 0x00800000L
+#define CP_DEBUG__PROG_END_PTR_ENABLE_MASK 0x01000000L
+#define CP_DEBUG__PROG_END_PTR_ENABLE 0x01000000L
+#define CP_DEBUG__MIU_128BIT_WRITE_ENABLE_MASK 0x02000000L
+#define CP_DEBUG__MIU_128BIT_WRITE_ENABLE 0x02000000L
+#define CP_DEBUG__PREFETCH_PASS_NOPS_MASK 0x04000000L
+#define CP_DEBUG__PREFETCH_PASS_NOPS 0x04000000L
+#define CP_DEBUG__DYNAMIC_CLK_DISABLE_MASK 0x08000000L
+#define CP_DEBUG__DYNAMIC_CLK_DISABLE 0x08000000L
+#define CP_DEBUG__PREFETCH_MATCH_DISABLE_MASK 0x10000000L
+#define CP_DEBUG__PREFETCH_MATCH_DISABLE 0x10000000L
+#define CP_DEBUG__SIMPLE_ME_FLOW_CONTROL_MASK 0x40000000L
+#define CP_DEBUG__SIMPLE_ME_FLOW_CONTROL 0x40000000L
+#define CP_DEBUG__MIU_WRITE_PACK_DISABLE_MASK 0x80000000L
+#define CP_DEBUG__MIU_WRITE_PACK_DISABLE 0x80000000L
+
+// SCRATCH_REG0
+#define SCRATCH_REG0__SCRATCH_REG0_MASK 0xffffffffL
+#define GUI_SCRATCH_REG0__SCRATCH_REG0_MASK 0xffffffffL
+
+// SCRATCH_REG1
+#define SCRATCH_REG1__SCRATCH_REG1_MASK 0xffffffffL
+#define GUI_SCRATCH_REG1__SCRATCH_REG1_MASK 0xffffffffL
+
+// SCRATCH_REG2
+#define SCRATCH_REG2__SCRATCH_REG2_MASK 0xffffffffL
+#define GUI_SCRATCH_REG2__SCRATCH_REG2_MASK 0xffffffffL
+
+// SCRATCH_REG3
+#define SCRATCH_REG3__SCRATCH_REG3_MASK 0xffffffffL
+#define GUI_SCRATCH_REG3__SCRATCH_REG3_MASK 0xffffffffL
+
+// SCRATCH_REG4
+#define SCRATCH_REG4__SCRATCH_REG4_MASK 0xffffffffL
+#define GUI_SCRATCH_REG4__SCRATCH_REG4_MASK 0xffffffffL
+
+// SCRATCH_REG5
+#define SCRATCH_REG5__SCRATCH_REG5_MASK 0xffffffffL
+#define GUI_SCRATCH_REG5__SCRATCH_REG5_MASK 0xffffffffL
+
+// SCRATCH_REG6
+#define SCRATCH_REG6__SCRATCH_REG6_MASK 0xffffffffL
+#define GUI_SCRATCH_REG6__SCRATCH_REG6_MASK 0xffffffffL
+
+// SCRATCH_REG7
+#define SCRATCH_REG7__SCRATCH_REG7_MASK 0xffffffffL
+#define GUI_SCRATCH_REG7__SCRATCH_REG7_MASK 0xffffffffL
+
+// SCRATCH_UMSK
+#define SCRATCH_UMSK__SCRATCH_UMSK_MASK 0x000000ffL
+#define SCRATCH_UMSK__SCRATCH_SWAP_MASK 0x00030000L
+
+// SCRATCH_ADDR
+#define SCRATCH_ADDR__SCRATCH_ADDR_MASK 0xffffffe0L
+
+// CP_ME_VS_EVENT_SRC
+#define CP_ME_VS_EVENT_SRC__VS_DONE_SWM_MASK 0x00000001L
+#define CP_ME_VS_EVENT_SRC__VS_DONE_SWM 0x00000001L
+#define CP_ME_VS_EVENT_SRC__VS_DONE_CNTR_MASK 0x00000002L
+#define CP_ME_VS_EVENT_SRC__VS_DONE_CNTR 0x00000002L
+
+// CP_ME_VS_EVENT_ADDR
+#define CP_ME_VS_EVENT_ADDR__VS_DONE_SWAP_MASK 0x00000003L
+#define CP_ME_VS_EVENT_ADDR__VS_DONE_ADDR_MASK 0xfffffffcL
+
+// CP_ME_VS_EVENT_DATA
+#define CP_ME_VS_EVENT_DATA__VS_DONE_DATA_MASK 0xffffffffL
+
+// CP_ME_VS_EVENT_ADDR_SWM
+#define CP_ME_VS_EVENT_ADDR_SWM__VS_DONE_SWAP_SWM_MASK 0x00000003L
+#define CP_ME_VS_EVENT_ADDR_SWM__VS_DONE_ADDR_SWM_MASK 0xfffffffcL
+
+// CP_ME_VS_EVENT_DATA_SWM
+#define CP_ME_VS_EVENT_DATA_SWM__VS_DONE_DATA_SWM_MASK 0xffffffffL
+
+// CP_ME_PS_EVENT_SRC
+#define CP_ME_PS_EVENT_SRC__PS_DONE_SWM_MASK 0x00000001L
+#define CP_ME_PS_EVENT_SRC__PS_DONE_SWM 0x00000001L
+#define CP_ME_PS_EVENT_SRC__PS_DONE_CNTR_MASK 0x00000002L
+#define CP_ME_PS_EVENT_SRC__PS_DONE_CNTR 0x00000002L
+
+// CP_ME_PS_EVENT_ADDR
+#define CP_ME_PS_EVENT_ADDR__PS_DONE_SWAP_MASK 0x00000003L
+#define CP_ME_PS_EVENT_ADDR__PS_DONE_ADDR_MASK 0xfffffffcL
+
+// CP_ME_PS_EVENT_DATA
+#define CP_ME_PS_EVENT_DATA__PS_DONE_DATA_MASK 0xffffffffL
+
+// CP_ME_PS_EVENT_ADDR_SWM
+#define CP_ME_PS_EVENT_ADDR_SWM__PS_DONE_SWAP_SWM_MASK 0x00000003L
+#define CP_ME_PS_EVENT_ADDR_SWM__PS_DONE_ADDR_SWM_MASK 0xfffffffcL
+
+// CP_ME_PS_EVENT_DATA_SWM
+#define CP_ME_PS_EVENT_DATA_SWM__PS_DONE_DATA_SWM_MASK 0xffffffffL
+
+// CP_ME_CF_EVENT_SRC
+#define CP_ME_CF_EVENT_SRC__CF_DONE_SRC_MASK 0x00000001L
+#define CP_ME_CF_EVENT_SRC__CF_DONE_SRC 0x00000001L
+
+// CP_ME_CF_EVENT_ADDR
+#define CP_ME_CF_EVENT_ADDR__CF_DONE_SWAP_MASK 0x00000003L
+#define CP_ME_CF_EVENT_ADDR__CF_DONE_ADDR_MASK 0xfffffffcL
+
+// CP_ME_CF_EVENT_DATA
+#define CP_ME_CF_EVENT_DATA__CF_DONE_DATA_MASK 0xffffffffL
+
+// CP_ME_NRT_ADDR
+#define CP_ME_NRT_ADDR__NRT_WRITE_SWAP_MASK 0x00000003L
+#define CP_ME_NRT_ADDR__NRT_WRITE_ADDR_MASK 0xfffffffcL
+
+// CP_ME_NRT_DATA
+#define CP_ME_NRT_DATA__NRT_WRITE_DATA_MASK 0xffffffffL
+
+// CP_ME_VS_FETCH_DONE_SRC
+#define CP_ME_VS_FETCH_DONE_SRC__VS_FETCH_DONE_CNTR_MASK 0x00000001L
+#define CP_ME_VS_FETCH_DONE_SRC__VS_FETCH_DONE_CNTR 0x00000001L
+
+// CP_ME_VS_FETCH_DONE_ADDR
+#define CP_ME_VS_FETCH_DONE_ADDR__VS_FETCH_DONE_SWAP_MASK 0x00000003L
+#define CP_ME_VS_FETCH_DONE_ADDR__VS_FETCH_DONE_ADDR_MASK 0xfffffffcL
+
+// CP_ME_VS_FETCH_DONE_DATA
+#define CP_ME_VS_FETCH_DONE_DATA__VS_FETCH_DONE_DATA_MASK 0xffffffffL
+
+// CP_INT_CNTL
+#define CP_INT_CNTL__SW_INT_MASK_MASK 0x00080000L
+#define CP_INT_CNTL__SW_INT_MASK 0x00080000L
+#define CP_INT_CNTL__T0_PACKET_IN_IB_MASK_MASK 0x00800000L
+#define CP_INT_CNTL__T0_PACKET_IN_IB_MASK 0x00800000L
+#define CP_INT_CNTL__OPCODE_ERROR_MASK_MASK 0x01000000L
+#define CP_INT_CNTL__OPCODE_ERROR_MASK 0x01000000L
+#define CP_INT_CNTL__PROTECTED_MODE_ERROR_MASK_MASK 0x02000000L
+#define CP_INT_CNTL__PROTECTED_MODE_ERROR_MASK 0x02000000L
+#define CP_INT_CNTL__RESERVED_BIT_ERROR_MASK_MASK 0x04000000L
+#define CP_INT_CNTL__RESERVED_BIT_ERROR_MASK 0x04000000L
+#define CP_INT_CNTL__IB_ERROR_MASK_MASK 0x08000000L
+#define CP_INT_CNTL__IB_ERROR_MASK 0x08000000L
+#define CP_INT_CNTL__IB2_INT_MASK_MASK 0x20000000L
+#define CP_INT_CNTL__IB2_INT_MASK 0x20000000L
+#define CP_INT_CNTL__IB1_INT_MASK_MASK 0x40000000L
+#define CP_INT_CNTL__IB1_INT_MASK 0x40000000L
+#define CP_INT_CNTL__RB_INT_MASK_MASK 0x80000000L
+#define CP_INT_CNTL__RB_INT_MASK 0x80000000L
+
+// CP_INT_STATUS
+#define CP_INT_STATUS__SW_INT_STAT_MASK 0x00080000L
+#define CP_INT_STATUS__SW_INT_STAT 0x00080000L
+#define CP_INT_STATUS__T0_PACKET_IN_IB_STAT_MASK 0x00800000L
+#define CP_INT_STATUS__T0_PACKET_IN_IB_STAT 0x00800000L
+#define CP_INT_STATUS__OPCODE_ERROR_STAT_MASK 0x01000000L
+#define CP_INT_STATUS__OPCODE_ERROR_STAT 0x01000000L
+#define CP_INT_STATUS__PROTECTED_MODE_ERROR_STAT_MASK 0x02000000L
+#define CP_INT_STATUS__PROTECTED_MODE_ERROR_STAT 0x02000000L
+#define CP_INT_STATUS__RESERVED_BIT_ERROR_STAT_MASK 0x04000000L
+#define CP_INT_STATUS__RESERVED_BIT_ERROR_STAT 0x04000000L
+#define CP_INT_STATUS__IB_ERROR_STAT_MASK 0x08000000L
+#define CP_INT_STATUS__IB_ERROR_STAT 0x08000000L
+#define CP_INT_STATUS__IB2_INT_STAT_MASK 0x20000000L
+#define CP_INT_STATUS__IB2_INT_STAT 0x20000000L
+#define CP_INT_STATUS__IB1_INT_STAT_MASK 0x40000000L
+#define CP_INT_STATUS__IB1_INT_STAT 0x40000000L
+#define CP_INT_STATUS__RB_INT_STAT_MASK 0x80000000L
+#define CP_INT_STATUS__RB_INT_STAT 0x80000000L
+
+// CP_INT_ACK
+#define CP_INT_ACK__SW_INT_ACK_MASK 0x00080000L
+#define CP_INT_ACK__SW_INT_ACK 0x00080000L
+#define CP_INT_ACK__T0_PACKET_IN_IB_ACK_MASK 0x00800000L
+#define CP_INT_ACK__T0_PACKET_IN_IB_ACK 0x00800000L
+#define CP_INT_ACK__OPCODE_ERROR_ACK_MASK 0x01000000L
+#define CP_INT_ACK__OPCODE_ERROR_ACK 0x01000000L
+#define CP_INT_ACK__PROTECTED_MODE_ERROR_ACK_MASK 0x02000000L
+#define CP_INT_ACK__PROTECTED_MODE_ERROR_ACK 0x02000000L
+#define CP_INT_ACK__RESERVED_BIT_ERROR_ACK_MASK 0x04000000L
+#define CP_INT_ACK__RESERVED_BIT_ERROR_ACK 0x04000000L
+#define CP_INT_ACK__IB_ERROR_ACK_MASK 0x08000000L
+#define CP_INT_ACK__IB_ERROR_ACK 0x08000000L
+#define CP_INT_ACK__IB2_INT_ACK_MASK 0x20000000L
+#define CP_INT_ACK__IB2_INT_ACK 0x20000000L
+#define CP_INT_ACK__IB1_INT_ACK_MASK 0x40000000L
+#define CP_INT_ACK__IB1_INT_ACK 0x40000000L
+#define CP_INT_ACK__RB_INT_ACK_MASK 0x80000000L
+#define CP_INT_ACK__RB_INT_ACK 0x80000000L
+
+// CP_PFP_UCODE_ADDR
+#define CP_PFP_UCODE_ADDR__UCODE_ADDR_MASK 0x000001ffL
+
+// CP_PFP_UCODE_DATA
+#define CP_PFP_UCODE_DATA__UCODE_DATA_MASK 0x00ffffffL
+
+// CP_PERFMON_CNTL
+#define CP_PERFMON_CNTL__PERFMON_STATE_MASK 0x0000000fL
+#define CP_PERFMON_CNTL__PERFMON_ENABLE_MODE_MASK 0x00000300L
+
+// CP_PERFCOUNTER_SELECT
+#define CP_PERFCOUNTER_SELECT__PERFCOUNT_SEL_MASK 0x0000003fL
+
+// CP_PERFCOUNTER_LO
+#define CP_PERFCOUNTER_LO__PERFCOUNT_LO_MASK 0xffffffffL
+
+// CP_PERFCOUNTER_HI
+#define CP_PERFCOUNTER_HI__PERFCOUNT_HI_MASK 0x0000ffffL
+
+// CP_BIN_MASK_LO
+#define CP_BIN_MASK_LO__BIN_MASK_LO_MASK 0xffffffffL
+
+// CP_BIN_MASK_HI
+#define CP_BIN_MASK_HI__BIN_MASK_HI_MASK 0xffffffffL
+
+// CP_BIN_SELECT_LO
+#define CP_BIN_SELECT_LO__BIN_SELECT_LO_MASK 0xffffffffL
+
+// CP_BIN_SELECT_HI
+#define CP_BIN_SELECT_HI__BIN_SELECT_HI_MASK 0xffffffffL
+
+// CP_NV_FLAGS_0
+#define CP_NV_FLAGS_0__DISCARD_0_MASK 0x00000001L
+#define CP_NV_FLAGS_0__DISCARD_0 0x00000001L
+#define CP_NV_FLAGS_0__END_RCVD_0_MASK 0x00000002L
+#define CP_NV_FLAGS_0__END_RCVD_0 0x00000002L
+#define CP_NV_FLAGS_0__DISCARD_1_MASK 0x00000004L
+#define CP_NV_FLAGS_0__DISCARD_1 0x00000004L
+#define CP_NV_FLAGS_0__END_RCVD_1_MASK 0x00000008L
+#define CP_NV_FLAGS_0__END_RCVD_1 0x00000008L
+#define CP_NV_FLAGS_0__DISCARD_2_MASK 0x00000010L
+#define CP_NV_FLAGS_0__DISCARD_2 0x00000010L
+#define CP_NV_FLAGS_0__END_RCVD_2_MASK 0x00000020L
+#define CP_NV_FLAGS_0__END_RCVD_2 0x00000020L
+#define CP_NV_FLAGS_0__DISCARD_3_MASK 0x00000040L
+#define CP_NV_FLAGS_0__DISCARD_3 0x00000040L
+#define CP_NV_FLAGS_0__END_RCVD_3_MASK 0x00000080L
+#define CP_NV_FLAGS_0__END_RCVD_3 0x00000080L
+#define CP_NV_FLAGS_0__DISCARD_4_MASK 0x00000100L
+#define CP_NV_FLAGS_0__DISCARD_4 0x00000100L
+#define CP_NV_FLAGS_0__END_RCVD_4_MASK 0x00000200L
+#define CP_NV_FLAGS_0__END_RCVD_4 0x00000200L
+#define CP_NV_FLAGS_0__DISCARD_5_MASK 0x00000400L
+#define CP_NV_FLAGS_0__DISCARD_5 0x00000400L
+#define CP_NV_FLAGS_0__END_RCVD_5_MASK 0x00000800L
+#define CP_NV_FLAGS_0__END_RCVD_5 0x00000800L
+#define CP_NV_FLAGS_0__DISCARD_6_MASK 0x00001000L
+#define CP_NV_FLAGS_0__DISCARD_6 0x00001000L
+#define CP_NV_FLAGS_0__END_RCVD_6_MASK 0x00002000L
+#define CP_NV_FLAGS_0__END_RCVD_6 0x00002000L
+#define CP_NV_FLAGS_0__DISCARD_7_MASK 0x00004000L
+#define CP_NV_FLAGS_0__DISCARD_7 0x00004000L
+#define CP_NV_FLAGS_0__END_RCVD_7_MASK 0x00008000L
+#define CP_NV_FLAGS_0__END_RCVD_7 0x00008000L
+#define CP_NV_FLAGS_0__DISCARD_8_MASK 0x00010000L
+#define CP_NV_FLAGS_0__DISCARD_8 0x00010000L
+#define CP_NV_FLAGS_0__END_RCVD_8_MASK 0x00020000L
+#define CP_NV_FLAGS_0__END_RCVD_8 0x00020000L
+#define CP_NV_FLAGS_0__DISCARD_9_MASK 0x00040000L
+#define CP_NV_FLAGS_0__DISCARD_9 0x00040000L
+#define CP_NV_FLAGS_0__END_RCVD_9_MASK 0x00080000L
+#define CP_NV_FLAGS_0__END_RCVD_9 0x00080000L
+#define CP_NV_FLAGS_0__DISCARD_10_MASK 0x00100000L
+#define CP_NV_FLAGS_0__DISCARD_10 0x00100000L
+#define CP_NV_FLAGS_0__END_RCVD_10_MASK 0x00200000L
+#define CP_NV_FLAGS_0__END_RCVD_10 0x00200000L
+#define CP_NV_FLAGS_0__DISCARD_11_MASK 0x00400000L
+#define CP_NV_FLAGS_0__DISCARD_11 0x00400000L
+#define CP_NV_FLAGS_0__END_RCVD_11_MASK 0x00800000L
+#define CP_NV_FLAGS_0__END_RCVD_11 0x00800000L
+#define CP_NV_FLAGS_0__DISCARD_12_MASK 0x01000000L
+#define CP_NV_FLAGS_0__DISCARD_12 0x01000000L
+#define CP_NV_FLAGS_0__END_RCVD_12_MASK 0x02000000L
+#define CP_NV_FLAGS_0__END_RCVD_12 0x02000000L
+#define CP_NV_FLAGS_0__DISCARD_13_MASK 0x04000000L
+#define CP_NV_FLAGS_0__DISCARD_13 0x04000000L
+#define CP_NV_FLAGS_0__END_RCVD_13_MASK 0x08000000L
+#define CP_NV_FLAGS_0__END_RCVD_13 0x08000000L
+#define CP_NV_FLAGS_0__DISCARD_14_MASK 0x10000000L
+#define CP_NV_FLAGS_0__DISCARD_14 0x10000000L
+#define CP_NV_FLAGS_0__END_RCVD_14_MASK 0x20000000L
+#define CP_NV_FLAGS_0__END_RCVD_14 0x20000000L
+#define CP_NV_FLAGS_0__DISCARD_15_MASK 0x40000000L
+#define CP_NV_FLAGS_0__DISCARD_15 0x40000000L
+#define CP_NV_FLAGS_0__END_RCVD_15_MASK 0x80000000L
+#define CP_NV_FLAGS_0__END_RCVD_15 0x80000000L
+
+// CP_NV_FLAGS_1
+#define CP_NV_FLAGS_1__DISCARD_16_MASK 0x00000001L
+#define CP_NV_FLAGS_1__DISCARD_16 0x00000001L
+#define CP_NV_FLAGS_1__END_RCVD_16_MASK 0x00000002L
+#define CP_NV_FLAGS_1__END_RCVD_16 0x00000002L
+#define CP_NV_FLAGS_1__DISCARD_17_MASK 0x00000004L
+#define CP_NV_FLAGS_1__DISCARD_17 0x00000004L
+#define CP_NV_FLAGS_1__END_RCVD_17_MASK 0x00000008L
+#define CP_NV_FLAGS_1__END_RCVD_17 0x00000008L
+#define CP_NV_FLAGS_1__DISCARD_18_MASK 0x00000010L
+#define CP_NV_FLAGS_1__DISCARD_18 0x00000010L
+#define CP_NV_FLAGS_1__END_RCVD_18_MASK 0x00000020L
+#define CP_NV_FLAGS_1__END_RCVD_18 0x00000020L
+#define CP_NV_FLAGS_1__DISCARD_19_MASK 0x00000040L
+#define CP_NV_FLAGS_1__DISCARD_19 0x00000040L
+#define CP_NV_FLAGS_1__END_RCVD_19_MASK 0x00000080L
+#define CP_NV_FLAGS_1__END_RCVD_19 0x00000080L
+#define CP_NV_FLAGS_1__DISCARD_20_MASK 0x00000100L
+#define CP_NV_FLAGS_1__DISCARD_20 0x00000100L
+#define CP_NV_FLAGS_1__END_RCVD_20_MASK 0x00000200L
+#define CP_NV_FLAGS_1__END_RCVD_20 0x00000200L
+#define CP_NV_FLAGS_1__DISCARD_21_MASK 0x00000400L
+#define CP_NV_FLAGS_1__DISCARD_21 0x00000400L
+#define CP_NV_FLAGS_1__END_RCVD_21_MASK 0x00000800L
+#define CP_NV_FLAGS_1__END_RCVD_21 0x00000800L
+#define CP_NV_FLAGS_1__DISCARD_22_MASK 0x00001000L
+#define CP_NV_FLAGS_1__DISCARD_22 0x00001000L
+#define CP_NV_FLAGS_1__END_RCVD_22_MASK 0x00002000L
+#define CP_NV_FLAGS_1__END_RCVD_22 0x00002000L
+#define CP_NV_FLAGS_1__DISCARD_23_MASK 0x00004000L
+#define CP_NV_FLAGS_1__DISCARD_23 0x00004000L
+#define CP_NV_FLAGS_1__END_RCVD_23_MASK 0x00008000L
+#define CP_NV_FLAGS_1__END_RCVD_23 0x00008000L
+#define CP_NV_FLAGS_1__DISCARD_24_MASK 0x00010000L
+#define CP_NV_FLAGS_1__DISCARD_24 0x00010000L
+#define CP_NV_FLAGS_1__END_RCVD_24_MASK 0x00020000L
+#define CP_NV_FLAGS_1__END_RCVD_24 0x00020000L
+#define CP_NV_FLAGS_1__DISCARD_25_MASK 0x00040000L
+#define CP_NV_FLAGS_1__DISCARD_25 0x00040000L
+#define CP_NV_FLAGS_1__END_RCVD_25_MASK 0x00080000L
+#define CP_NV_FLAGS_1__END_RCVD_25 0x00080000L
+#define CP_NV_FLAGS_1__DISCARD_26_MASK 0x00100000L
+#define CP_NV_FLAGS_1__DISCARD_26 0x00100000L
+#define CP_NV_FLAGS_1__END_RCVD_26_MASK 0x00200000L
+#define CP_NV_FLAGS_1__END_RCVD_26 0x00200000L
+#define CP_NV_FLAGS_1__DISCARD_27_MASK 0x00400000L
+#define CP_NV_FLAGS_1__DISCARD_27 0x00400000L
+#define CP_NV_FLAGS_1__END_RCVD_27_MASK 0x00800000L
+#define CP_NV_FLAGS_1__END_RCVD_27 0x00800000L
+#define CP_NV_FLAGS_1__DISCARD_28_MASK 0x01000000L
+#define CP_NV_FLAGS_1__DISCARD_28 0x01000000L
+#define CP_NV_FLAGS_1__END_RCVD_28_MASK 0x02000000L
+#define CP_NV_FLAGS_1__END_RCVD_28 0x02000000L
+#define CP_NV_FLAGS_1__DISCARD_29_MASK 0x04000000L
+#define CP_NV_FLAGS_1__DISCARD_29 0x04000000L
+#define CP_NV_FLAGS_1__END_RCVD_29_MASK 0x08000000L
+#define CP_NV_FLAGS_1__END_RCVD_29 0x08000000L
+#define CP_NV_FLAGS_1__DISCARD_30_MASK 0x10000000L
+#define CP_NV_FLAGS_1__DISCARD_30 0x10000000L
+#define CP_NV_FLAGS_1__END_RCVD_30_MASK 0x20000000L
+#define CP_NV_FLAGS_1__END_RCVD_30 0x20000000L
+#define CP_NV_FLAGS_1__DISCARD_31_MASK 0x40000000L
+#define CP_NV_FLAGS_1__DISCARD_31 0x40000000L
+#define CP_NV_FLAGS_1__END_RCVD_31_MASK 0x80000000L
+#define CP_NV_FLAGS_1__END_RCVD_31 0x80000000L
+
+// CP_NV_FLAGS_2
+#define CP_NV_FLAGS_2__DISCARD_32_MASK 0x00000001L
+#define CP_NV_FLAGS_2__DISCARD_32 0x00000001L
+#define CP_NV_FLAGS_2__END_RCVD_32_MASK 0x00000002L
+#define CP_NV_FLAGS_2__END_RCVD_32 0x00000002L
+#define CP_NV_FLAGS_2__DISCARD_33_MASK 0x00000004L
+#define CP_NV_FLAGS_2__DISCARD_33 0x00000004L
+#define CP_NV_FLAGS_2__END_RCVD_33_MASK 0x00000008L
+#define CP_NV_FLAGS_2__END_RCVD_33 0x00000008L
+#define CP_NV_FLAGS_2__DISCARD_34_MASK 0x00000010L
+#define CP_NV_FLAGS_2__DISCARD_34 0x00000010L
+#define CP_NV_FLAGS_2__END_RCVD_34_MASK 0x00000020L
+#define CP_NV_FLAGS_2__END_RCVD_34 0x00000020L
+#define CP_NV_FLAGS_2__DISCARD_35_MASK 0x00000040L
+#define CP_NV_FLAGS_2__DISCARD_35 0x00000040L
+#define CP_NV_FLAGS_2__END_RCVD_35_MASK 0x00000080L
+#define CP_NV_FLAGS_2__END_RCVD_35 0x00000080L
+#define CP_NV_FLAGS_2__DISCARD_36_MASK 0x00000100L
+#define CP_NV_FLAGS_2__DISCARD_36 0x00000100L
+#define CP_NV_FLAGS_2__END_RCVD_36_MASK 0x00000200L
+#define CP_NV_FLAGS_2__END_RCVD_36 0x00000200L
+#define CP_NV_FLAGS_2__DISCARD_37_MASK 0x00000400L
+#define CP_NV_FLAGS_2__DISCARD_37 0x00000400L
+#define CP_NV_FLAGS_2__END_RCVD_37_MASK 0x00000800L
+#define CP_NV_FLAGS_2__END_RCVD_37 0x00000800L
+#define CP_NV_FLAGS_2__DISCARD_38_MASK 0x00001000L
+#define CP_NV_FLAGS_2__DISCARD_38 0x00001000L
+#define CP_NV_FLAGS_2__END_RCVD_38_MASK 0x00002000L
+#define CP_NV_FLAGS_2__END_RCVD_38 0x00002000L
+#define CP_NV_FLAGS_2__DISCARD_39_MASK 0x00004000L
+#define CP_NV_FLAGS_2__DISCARD_39 0x00004000L
+#define CP_NV_FLAGS_2__END_RCVD_39_MASK 0x00008000L
+#define CP_NV_FLAGS_2__END_RCVD_39 0x00008000L
+#define CP_NV_FLAGS_2__DISCARD_40_MASK 0x00010000L
+#define CP_NV_FLAGS_2__DISCARD_40 0x00010000L
+#define CP_NV_FLAGS_2__END_RCVD_40_MASK 0x00020000L
+#define CP_NV_FLAGS_2__END_RCVD_40 0x00020000L
+#define CP_NV_FLAGS_2__DISCARD_41_MASK 0x00040000L
+#define CP_NV_FLAGS_2__DISCARD_41 0x00040000L
+#define CP_NV_FLAGS_2__END_RCVD_41_MASK 0x00080000L
+#define CP_NV_FLAGS_2__END_RCVD_41 0x00080000L
+#define CP_NV_FLAGS_2__DISCARD_42_MASK 0x00100000L
+#define CP_NV_FLAGS_2__DISCARD_42 0x00100000L
+#define CP_NV_FLAGS_2__END_RCVD_42_MASK 0x00200000L
+#define CP_NV_FLAGS_2__END_RCVD_42 0x00200000L
+#define CP_NV_FLAGS_2__DISCARD_43_MASK 0x00400000L
+#define CP_NV_FLAGS_2__DISCARD_43 0x00400000L
+#define CP_NV_FLAGS_2__END_RCVD_43_MASK 0x00800000L
+#define CP_NV_FLAGS_2__END_RCVD_43 0x00800000L
+#define CP_NV_FLAGS_2__DISCARD_44_MASK 0x01000000L
+#define CP_NV_FLAGS_2__DISCARD_44 0x01000000L
+#define CP_NV_FLAGS_2__END_RCVD_44_MASK 0x02000000L
+#define CP_NV_FLAGS_2__END_RCVD_44 0x02000000L
+#define CP_NV_FLAGS_2__DISCARD_45_MASK 0x04000000L
+#define CP_NV_FLAGS_2__DISCARD_45 0x04000000L
+#define CP_NV_FLAGS_2__END_RCVD_45_MASK 0x08000000L
+#define CP_NV_FLAGS_2__END_RCVD_45 0x08000000L
+#define CP_NV_FLAGS_2__DISCARD_46_MASK 0x10000000L
+#define CP_NV_FLAGS_2__DISCARD_46 0x10000000L
+#define CP_NV_FLAGS_2__END_RCVD_46_MASK 0x20000000L
+#define CP_NV_FLAGS_2__END_RCVD_46 0x20000000L
+#define CP_NV_FLAGS_2__DISCARD_47_MASK 0x40000000L
+#define CP_NV_FLAGS_2__DISCARD_47 0x40000000L
+#define CP_NV_FLAGS_2__END_RCVD_47_MASK 0x80000000L
+#define CP_NV_FLAGS_2__END_RCVD_47 0x80000000L
+
+// CP_NV_FLAGS_3
+#define CP_NV_FLAGS_3__DISCARD_48_MASK 0x00000001L
+#define CP_NV_FLAGS_3__DISCARD_48 0x00000001L
+#define CP_NV_FLAGS_3__END_RCVD_48_MASK 0x00000002L
+#define CP_NV_FLAGS_3__END_RCVD_48 0x00000002L
+#define CP_NV_FLAGS_3__DISCARD_49_MASK 0x00000004L
+#define CP_NV_FLAGS_3__DISCARD_49 0x00000004L
+#define CP_NV_FLAGS_3__END_RCVD_49_MASK 0x00000008L
+#define CP_NV_FLAGS_3__END_RCVD_49 0x00000008L
+#define CP_NV_FLAGS_3__DISCARD_50_MASK 0x00000010L
+#define CP_NV_FLAGS_3__DISCARD_50 0x00000010L
+#define CP_NV_FLAGS_3__END_RCVD_50_MASK 0x00000020L
+#define CP_NV_FLAGS_3__END_RCVD_50 0x00000020L
+#define CP_NV_FLAGS_3__DISCARD_51_MASK 0x00000040L
+#define CP_NV_FLAGS_3__DISCARD_51 0x00000040L
+#define CP_NV_FLAGS_3__END_RCVD_51_MASK 0x00000080L
+#define CP_NV_FLAGS_3__END_RCVD_51 0x00000080L
+#define CP_NV_FLAGS_3__DISCARD_52_MASK 0x00000100L
+#define CP_NV_FLAGS_3__DISCARD_52 0x00000100L
+#define CP_NV_FLAGS_3__END_RCVD_52_MASK 0x00000200L
+#define CP_NV_FLAGS_3__END_RCVD_52 0x00000200L
+#define CP_NV_FLAGS_3__DISCARD_53_MASK 0x00000400L
+#define CP_NV_FLAGS_3__DISCARD_53 0x00000400L
+#define CP_NV_FLAGS_3__END_RCVD_53_MASK 0x00000800L
+#define CP_NV_FLAGS_3__END_RCVD_53 0x00000800L
+#define CP_NV_FLAGS_3__DISCARD_54_MASK 0x00001000L
+#define CP_NV_FLAGS_3__DISCARD_54 0x00001000L
+#define CP_NV_FLAGS_3__END_RCVD_54_MASK 0x00002000L
+#define CP_NV_FLAGS_3__END_RCVD_54 0x00002000L
+#define CP_NV_FLAGS_3__DISCARD_55_MASK 0x00004000L
+#define CP_NV_FLAGS_3__DISCARD_55 0x00004000L
+#define CP_NV_FLAGS_3__END_RCVD_55_MASK 0x00008000L
+#define CP_NV_FLAGS_3__END_RCVD_55 0x00008000L
+#define CP_NV_FLAGS_3__DISCARD_56_MASK 0x00010000L
+#define CP_NV_FLAGS_3__DISCARD_56 0x00010000L
+#define CP_NV_FLAGS_3__END_RCVD_56_MASK 0x00020000L
+#define CP_NV_FLAGS_3__END_RCVD_56 0x00020000L
+#define CP_NV_FLAGS_3__DISCARD_57_MASK 0x00040000L
+#define CP_NV_FLAGS_3__DISCARD_57 0x00040000L
+#define CP_NV_FLAGS_3__END_RCVD_57_MASK 0x00080000L
+#define CP_NV_FLAGS_3__END_RCVD_57 0x00080000L
+#define CP_NV_FLAGS_3__DISCARD_58_MASK 0x00100000L
+#define CP_NV_FLAGS_3__DISCARD_58 0x00100000L
+#define CP_NV_FLAGS_3__END_RCVD_58_MASK 0x00200000L
+#define CP_NV_FLAGS_3__END_RCVD_58 0x00200000L
+#define CP_NV_FLAGS_3__DISCARD_59_MASK 0x00400000L
+#define CP_NV_FLAGS_3__DISCARD_59 0x00400000L
+#define CP_NV_FLAGS_3__END_RCVD_59_MASK 0x00800000L
+#define CP_NV_FLAGS_3__END_RCVD_59 0x00800000L
+#define CP_NV_FLAGS_3__DISCARD_60_MASK 0x01000000L
+#define CP_NV_FLAGS_3__DISCARD_60 0x01000000L
+#define CP_NV_FLAGS_3__END_RCVD_60_MASK 0x02000000L
+#define CP_NV_FLAGS_3__END_RCVD_60 0x02000000L
+#define CP_NV_FLAGS_3__DISCARD_61_MASK 0x04000000L
+#define CP_NV_FLAGS_3__DISCARD_61 0x04000000L
+#define CP_NV_FLAGS_3__END_RCVD_61_MASK 0x08000000L
+#define CP_NV_FLAGS_3__END_RCVD_61 0x08000000L
+#define CP_NV_FLAGS_3__DISCARD_62_MASK 0x10000000L
+#define CP_NV_FLAGS_3__DISCARD_62 0x10000000L
+#define CP_NV_FLAGS_3__END_RCVD_62_MASK 0x20000000L
+#define CP_NV_FLAGS_3__END_RCVD_62 0x20000000L
+#define CP_NV_FLAGS_3__DISCARD_63_MASK 0x40000000L
+#define CP_NV_FLAGS_3__DISCARD_63 0x40000000L
+#define CP_NV_FLAGS_3__END_RCVD_63_MASK 0x80000000L
+#define CP_NV_FLAGS_3__END_RCVD_63 0x80000000L
+
+// CP_STATE_DEBUG_INDEX
+#define CP_STATE_DEBUG_INDEX__STATE_DEBUG_INDEX_MASK 0x0000001fL
+
+// CP_STATE_DEBUG_DATA
+#define CP_STATE_DEBUG_DATA__STATE_DEBUG_DATA_MASK 0xffffffffL
+
+// CP_PROG_COUNTER
+#define CP_PROG_COUNTER__COUNTER_MASK 0xffffffffL
+
+// CP_STAT
+#define CP_STAT__MIU_WR_BUSY_MASK 0x00000001L
+#define CP_STAT__MIU_WR_BUSY 0x00000001L
+#define CP_STAT__MIU_RD_REQ_BUSY_MASK 0x00000002L
+#define CP_STAT__MIU_RD_REQ_BUSY 0x00000002L
+#define CP_STAT__MIU_RD_RETURN_BUSY_MASK 0x00000004L
+#define CP_STAT__MIU_RD_RETURN_BUSY 0x00000004L
+#define CP_STAT__RBIU_BUSY_MASK 0x00000008L
+#define CP_STAT__RBIU_BUSY 0x00000008L
+#define CP_STAT__RCIU_BUSY_MASK 0x00000010L
+#define CP_STAT__RCIU_BUSY 0x00000010L
+#define CP_STAT__CSF_RING_BUSY_MASK 0x00000020L
+#define CP_STAT__CSF_RING_BUSY 0x00000020L
+#define CP_STAT__CSF_INDIRECTS_BUSY_MASK 0x00000040L
+#define CP_STAT__CSF_INDIRECTS_BUSY 0x00000040L
+#define CP_STAT__CSF_INDIRECT2_BUSY_MASK 0x00000080L
+#define CP_STAT__CSF_INDIRECT2_BUSY 0x00000080L
+#define CP_STAT__CSF_ST_BUSY_MASK 0x00000200L
+#define CP_STAT__CSF_ST_BUSY 0x00000200L
+#define CP_STAT__CSF_BUSY_MASK 0x00000400L
+#define CP_STAT__CSF_BUSY 0x00000400L
+#define CP_STAT__RING_QUEUE_BUSY_MASK 0x00000800L
+#define CP_STAT__RING_QUEUE_BUSY 0x00000800L
+#define CP_STAT__INDIRECTS_QUEUE_BUSY_MASK 0x00001000L
+#define CP_STAT__INDIRECTS_QUEUE_BUSY 0x00001000L
+#define CP_STAT__INDIRECT2_QUEUE_BUSY_MASK 0x00002000L
+#define CP_STAT__INDIRECT2_QUEUE_BUSY 0x00002000L
+#define CP_STAT__ST_QUEUE_BUSY_MASK 0x00010000L
+#define CP_STAT__ST_QUEUE_BUSY 0x00010000L
+#define CP_STAT__PFP_BUSY_MASK 0x00020000L
+#define CP_STAT__PFP_BUSY 0x00020000L
+#define CP_STAT__MEQ_RING_BUSY_MASK 0x00040000L
+#define CP_STAT__MEQ_RING_BUSY 0x00040000L
+#define CP_STAT__MEQ_INDIRECTS_BUSY_MASK 0x00080000L
+#define CP_STAT__MEQ_INDIRECTS_BUSY 0x00080000L
+#define CP_STAT__MEQ_INDIRECT2_BUSY_MASK 0x00100000L
+#define CP_STAT__MEQ_INDIRECT2_BUSY 0x00100000L
+#define CP_STAT__MIU_WC_STALL_MASK 0x00200000L
+#define CP_STAT__MIU_WC_STALL 0x00200000L
+#define CP_STAT__CP_NRT_BUSY_MASK 0x00400000L
+#define CP_STAT__CP_NRT_BUSY 0x00400000L
+#define CP_STAT___3D_BUSY_MASK 0x00800000L
+#define CP_STAT___3D_BUSY 0x00800000L
+#define CP_STAT__ME_BUSY_MASK 0x04000000L
+#define CP_STAT__ME_BUSY 0x04000000L
+#define CP_STAT__ME_WC_BUSY_MASK 0x20000000L
+#define CP_STAT__ME_WC_BUSY 0x20000000L
+#define CP_STAT__MIU_WC_TRACK_FIFO_EMPTY_MASK 0x40000000L
+#define CP_STAT__MIU_WC_TRACK_FIFO_EMPTY 0x40000000L
+#define CP_STAT__CP_BUSY_MASK 0x80000000L
+#define CP_STAT__CP_BUSY 0x80000000L
+
+// BIOS_0_SCRATCH
+#define BIOS_0_SCRATCH__BIOS_SCRATCH_MASK 0xffffffffL
+
+// BIOS_1_SCRATCH
+#define BIOS_1_SCRATCH__BIOS_SCRATCH_MASK 0xffffffffL
+
+// BIOS_2_SCRATCH
+#define BIOS_2_SCRATCH__BIOS_SCRATCH_MASK 0xffffffffL
+
+// BIOS_3_SCRATCH
+#define BIOS_3_SCRATCH__BIOS_SCRATCH_MASK 0xffffffffL
+
+// BIOS_4_SCRATCH
+#define BIOS_4_SCRATCH__BIOS_SCRATCH_MASK 0xffffffffL
+
+// BIOS_5_SCRATCH
+#define BIOS_5_SCRATCH__BIOS_SCRATCH_MASK 0xffffffffL
+
+// BIOS_6_SCRATCH
+#define BIOS_6_SCRATCH__BIOS_SCRATCH_MASK 0xffffffffL
+
+// BIOS_7_SCRATCH
+#define BIOS_7_SCRATCH__BIOS_SCRATCH_MASK 0xffffffffL
+
+// BIOS_8_SCRATCH
+#define BIOS_8_SCRATCH__BIOS_SCRATCH_MASK 0xffffffffL
+
+// BIOS_9_SCRATCH
+#define BIOS_9_SCRATCH__BIOS_SCRATCH_MASK 0xffffffffL
+
+// BIOS_10_SCRATCH
+#define BIOS_10_SCRATCH__BIOS_SCRATCH_MASK 0xffffffffL
+
+// BIOS_11_SCRATCH
+#define BIOS_11_SCRATCH__BIOS_SCRATCH_MASK 0xffffffffL
+
+// BIOS_12_SCRATCH
+#define BIOS_12_SCRATCH__BIOS_SCRATCH_MASK 0xffffffffL
+
+// BIOS_13_SCRATCH
+#define BIOS_13_SCRATCH__BIOS_SCRATCH_MASK 0xffffffffL
+
+// BIOS_14_SCRATCH
+#define BIOS_14_SCRATCH__BIOS_SCRATCH_MASK 0xffffffffL
+
+// BIOS_15_SCRATCH
+#define BIOS_15_SCRATCH__BIOS_SCRATCH_MASK 0xffffffffL
+
+// COHER_SIZE_PM4
+#define COHER_SIZE_PM4__SIZE_MASK 0xffffffffL
+
+// COHER_BASE_PM4
+#define COHER_BASE_PM4__BASE_MASK 0xffffffffL
+
+// COHER_STATUS_PM4
+#define COHER_STATUS_PM4__MATCHING_CONTEXTS_MASK 0x000000ffL
+#define COHER_STATUS_PM4__RB_COPY_DEST_BASE_ENA_MASK 0x00000100L
+#define COHER_STATUS_PM4__RB_COPY_DEST_BASE_ENA 0x00000100L
+#define COHER_STATUS_PM4__DEST_BASE_0_ENA_MASK 0x00000200L
+#define COHER_STATUS_PM4__DEST_BASE_0_ENA 0x00000200L
+#define COHER_STATUS_PM4__DEST_BASE_1_ENA_MASK 0x00000400L
+#define COHER_STATUS_PM4__DEST_BASE_1_ENA 0x00000400L
+#define COHER_STATUS_PM4__DEST_BASE_2_ENA_MASK 0x00000800L
+#define COHER_STATUS_PM4__DEST_BASE_2_ENA 0x00000800L
+#define COHER_STATUS_PM4__DEST_BASE_3_ENA_MASK 0x00001000L
+#define COHER_STATUS_PM4__DEST_BASE_3_ENA 0x00001000L
+#define COHER_STATUS_PM4__DEST_BASE_4_ENA_MASK 0x00002000L
+#define COHER_STATUS_PM4__DEST_BASE_4_ENA 0x00002000L
+#define COHER_STATUS_PM4__DEST_BASE_5_ENA_MASK 0x00004000L
+#define COHER_STATUS_PM4__DEST_BASE_5_ENA 0x00004000L
+#define COHER_STATUS_PM4__DEST_BASE_6_ENA_MASK 0x00008000L
+#define COHER_STATUS_PM4__DEST_BASE_6_ENA 0x00008000L
+#define COHER_STATUS_PM4__DEST_BASE_7_ENA_MASK 0x00010000L
+#define COHER_STATUS_PM4__DEST_BASE_7_ENA 0x00010000L
+#define COHER_STATUS_PM4__TC_ACTION_ENA_MASK 0x02000000L
+#define COHER_STATUS_PM4__TC_ACTION_ENA 0x02000000L
+#define COHER_STATUS_PM4__STATUS_MASK 0x80000000L
+#define COHER_STATUS_PM4__STATUS 0x80000000L
+
+// COHER_SIZE_HOST
+#define COHER_SIZE_HOST__SIZE_MASK 0xffffffffL
+
+// COHER_BASE_HOST
+#define COHER_BASE_HOST__BASE_MASK 0xffffffffL
+
+// COHER_STATUS_HOST
+#define COHER_STATUS_HOST__MATCHING_CONTEXTS_MASK 0x000000ffL
+#define COHER_STATUS_HOST__RB_COPY_DEST_BASE_ENA_MASK 0x00000100L
+#define COHER_STATUS_HOST__RB_COPY_DEST_BASE_ENA 0x00000100L
+#define COHER_STATUS_HOST__DEST_BASE_0_ENA_MASK 0x00000200L
+#define COHER_STATUS_HOST__DEST_BASE_0_ENA 0x00000200L
+#define COHER_STATUS_HOST__DEST_BASE_1_ENA_MASK 0x00000400L
+#define COHER_STATUS_HOST__DEST_BASE_1_ENA 0x00000400L
+#define COHER_STATUS_HOST__DEST_BASE_2_ENA_MASK 0x00000800L
+#define COHER_STATUS_HOST__DEST_BASE_2_ENA 0x00000800L
+#define COHER_STATUS_HOST__DEST_BASE_3_ENA_MASK 0x00001000L
+#define COHER_STATUS_HOST__DEST_BASE_3_ENA 0x00001000L
+#define COHER_STATUS_HOST__DEST_BASE_4_ENA_MASK 0x00002000L
+#define COHER_STATUS_HOST__DEST_BASE_4_ENA 0x00002000L
+#define COHER_STATUS_HOST__DEST_BASE_5_ENA_MASK 0x00004000L
+#define COHER_STATUS_HOST__DEST_BASE_5_ENA 0x00004000L
+#define COHER_STATUS_HOST__DEST_BASE_6_ENA_MASK 0x00008000L
+#define COHER_STATUS_HOST__DEST_BASE_6_ENA 0x00008000L
+#define COHER_STATUS_HOST__DEST_BASE_7_ENA_MASK 0x00010000L
+#define COHER_STATUS_HOST__DEST_BASE_7_ENA 0x00010000L
+#define COHER_STATUS_HOST__TC_ACTION_ENA_MASK 0x02000000L
+#define COHER_STATUS_HOST__TC_ACTION_ENA 0x02000000L
+#define COHER_STATUS_HOST__STATUS_MASK 0x80000000L
+#define COHER_STATUS_HOST__STATUS 0x80000000L
+
+// COHER_DEST_BASE_0
+#define COHER_DEST_BASE_0__DEST_BASE_0_MASK 0xfffff000L
+
+// COHER_DEST_BASE_1
+#define COHER_DEST_BASE_1__DEST_BASE_1_MASK 0xfffff000L
+
+// COHER_DEST_BASE_2
+#define COHER_DEST_BASE_2__DEST_BASE_2_MASK 0xfffff000L
+
+// COHER_DEST_BASE_3
+#define COHER_DEST_BASE_3__DEST_BASE_3_MASK 0xfffff000L
+
+// COHER_DEST_BASE_4
+#define COHER_DEST_BASE_4__DEST_BASE_4_MASK 0xfffff000L
+
+// COHER_DEST_BASE_5
+#define COHER_DEST_BASE_5__DEST_BASE_5_MASK 0xfffff000L
+
+// COHER_DEST_BASE_6
+#define COHER_DEST_BASE_6__DEST_BASE_6_MASK 0xfffff000L
+
+// COHER_DEST_BASE_7
+#define COHER_DEST_BASE_7__DEST_BASE_7_MASK 0xfffff000L
+
+// RB_SURFACE_INFO
+#define RB_SURFACE_INFO__SURFACE_PITCH_MASK 0x00003fffL
+#define RB_SURFACE_INFO__MSAA_SAMPLES_MASK 0x0000c000L
+
+// RB_COLOR_INFO
+#define RB_COLOR_INFO__COLOR_FORMAT_MASK 0x0000000fL
+#define RB_COLOR_INFO__COLOR_ROUND_MODE_MASK 0x00000030L
+#define RB_COLOR_INFO__COLOR_LINEAR_MASK 0x00000040L
+#define RB_COLOR_INFO__COLOR_LINEAR 0x00000040L
+#define RB_COLOR_INFO__COLOR_ENDIAN_MASK 0x00000180L
+#define RB_COLOR_INFO__COLOR_SWAP_MASK 0x00000600L
+#define RB_COLOR_INFO__COLOR_BASE_MASK 0xfffff000L
+
+// RB_DEPTH_INFO
+#define RB_DEPTH_INFO__DEPTH_FORMAT_MASK 0x00000001L
+#define RB_DEPTH_INFO__DEPTH_FORMAT 0x00000001L
+#define RB_DEPTH_INFO__DEPTH_BASE_MASK 0xfffff000L
+
+// RB_STENCILREFMASK
+#define RB_STENCILREFMASK__STENCILREF_MASK 0x000000ffL
+#define RB_STENCILREFMASK__STENCILMASK_MASK 0x0000ff00L
+#define RB_STENCILREFMASK__STENCILWRITEMASK_MASK 0x00ff0000L
+
+// RB_ALPHA_REF
+#define RB_ALPHA_REF__ALPHA_REF_MASK 0xffffffffL
+
+// RB_COLOR_MASK
+#define RB_COLOR_MASK__WRITE_RED_MASK 0x00000001L
+#define RB_COLOR_MASK__WRITE_RED 0x00000001L
+#define RB_COLOR_MASK__WRITE_GREEN_MASK 0x00000002L
+#define RB_COLOR_MASK__WRITE_GREEN 0x00000002L
+#define RB_COLOR_MASK__WRITE_BLUE_MASK 0x00000004L
+#define RB_COLOR_MASK__WRITE_BLUE 0x00000004L
+#define RB_COLOR_MASK__WRITE_ALPHA_MASK 0x00000008L
+#define RB_COLOR_MASK__WRITE_ALPHA 0x00000008L
+
+// RB_BLEND_RED
+#define RB_BLEND_RED__BLEND_RED_MASK 0x000000ffL
+
+// RB_BLEND_GREEN
+#define RB_BLEND_GREEN__BLEND_GREEN_MASK 0x000000ffL
+
+// RB_BLEND_BLUE
+#define RB_BLEND_BLUE__BLEND_BLUE_MASK 0x000000ffL
+
+// RB_BLEND_ALPHA
+#define RB_BLEND_ALPHA__BLEND_ALPHA_MASK 0x000000ffL
+
+// RB_FOG_COLOR
+#define RB_FOG_COLOR__FOG_RED_MASK 0x000000ffL
+#define RB_FOG_COLOR__FOG_GREEN_MASK 0x0000ff00L
+#define RB_FOG_COLOR__FOG_BLUE_MASK 0x00ff0000L
+
+// RB_STENCILREFMASK_BF
+#define RB_STENCILREFMASK_BF__STENCILREF_BF_MASK 0x000000ffL
+#define RB_STENCILREFMASK_BF__STENCILMASK_BF_MASK 0x0000ff00L
+#define RB_STENCILREFMASK_BF__STENCILWRITEMASK_BF_MASK 0x00ff0000L
+
+// RB_DEPTHCONTROL
+#define RB_DEPTHCONTROL__STENCIL_ENABLE_MASK 0x00000001L
+#define RB_DEPTHCONTROL__STENCIL_ENABLE 0x00000001L
+#define RB_DEPTHCONTROL__Z_ENABLE_MASK 0x00000002L
+#define RB_DEPTHCONTROL__Z_ENABLE 0x00000002L
+#define RB_DEPTHCONTROL__Z_WRITE_ENABLE_MASK 0x00000004L
+#define RB_DEPTHCONTROL__Z_WRITE_ENABLE 0x00000004L
+#define RB_DEPTHCONTROL__EARLY_Z_ENABLE_MASK 0x00000008L
+#define RB_DEPTHCONTROL__EARLY_Z_ENABLE 0x00000008L
+#define RB_DEPTHCONTROL__ZFUNC_MASK 0x00000070L
+#define RB_DEPTHCONTROL__BACKFACE_ENABLE_MASK 0x00000080L
+#define RB_DEPTHCONTROL__BACKFACE_ENABLE 0x00000080L
+#define RB_DEPTHCONTROL__STENCILFUNC_MASK 0x00000700L
+#define RB_DEPTHCONTROL__STENCILFAIL_MASK 0x00003800L
+#define RB_DEPTHCONTROL__STENCILZPASS_MASK 0x0001c000L
+#define RB_DEPTHCONTROL__STENCILZFAIL_MASK 0x000e0000L
+#define RB_DEPTHCONTROL__STENCILFUNC_BF_MASK 0x00700000L
+#define RB_DEPTHCONTROL__STENCILFAIL_BF_MASK 0x03800000L
+#define RB_DEPTHCONTROL__STENCILZPASS_BF_MASK 0x1c000000L
+#define RB_DEPTHCONTROL__STENCILZFAIL_BF_MASK 0xe0000000L
+
+// RB_BLENDCONTROL
+#define RB_BLENDCONTROL__COLOR_SRCBLEND_MASK 0x0000001fL
+#define RB_BLENDCONTROL__COLOR_COMB_FCN_MASK 0x000000e0L
+#define RB_BLENDCONTROL__COLOR_DESTBLEND_MASK 0x00001f00L
+#define RB_BLENDCONTROL__ALPHA_SRCBLEND_MASK 0x001f0000L
+#define RB_BLENDCONTROL__ALPHA_COMB_FCN_MASK 0x00e00000L
+#define RB_BLENDCONTROL__ALPHA_DESTBLEND_MASK 0x1f000000L
+#define RB_BLENDCONTROL__BLEND_FORCE_ENABLE_MASK 0x20000000L
+#define RB_BLENDCONTROL__BLEND_FORCE_ENABLE 0x20000000L
+#define RB_BLENDCONTROL__BLEND_FORCE_MASK 0x40000000L
+#define RB_BLENDCONTROL__BLEND_FORCE 0x40000000L
+
+// RB_COLORCONTROL
+#define RB_COLORCONTROL__ALPHA_FUNC_MASK 0x00000007L
+#define RB_COLORCONTROL__ALPHA_TEST_ENABLE_MASK 0x00000008L
+#define RB_COLORCONTROL__ALPHA_TEST_ENABLE 0x00000008L
+#define RB_COLORCONTROL__ALPHA_TO_MASK_ENABLE_MASK 0x00000010L
+#define RB_COLORCONTROL__ALPHA_TO_MASK_ENABLE 0x00000010L
+#define RB_COLORCONTROL__BLEND_DISABLE_MASK 0x00000020L
+#define RB_COLORCONTROL__BLEND_DISABLE 0x00000020L
+#define RB_COLORCONTROL__FOG_ENABLE_MASK 0x00000040L
+#define RB_COLORCONTROL__FOG_ENABLE 0x00000040L
+#define RB_COLORCONTROL__VS_EXPORTS_FOG_MASK 0x00000080L
+#define RB_COLORCONTROL__VS_EXPORTS_FOG 0x00000080L
+#define RB_COLORCONTROL__ROP_CODE_MASK 0x00000f00L
+#define RB_COLORCONTROL__DITHER_MODE_MASK 0x00003000L
+#define RB_COLORCONTROL__DITHER_TYPE_MASK 0x0000c000L
+#define RB_COLORCONTROL__PIXEL_FOG_MASK 0x00010000L
+#define RB_COLORCONTROL__PIXEL_FOG 0x00010000L
+#define RB_COLORCONTROL__ALPHA_TO_MASK_OFFSET0_MASK 0x03000000L
+#define RB_COLORCONTROL__ALPHA_TO_MASK_OFFSET1_MASK 0x0c000000L
+#define RB_COLORCONTROL__ALPHA_TO_MASK_OFFSET2_MASK 0x30000000L
+#define RB_COLORCONTROL__ALPHA_TO_MASK_OFFSET3_MASK 0xc0000000L
+
+// RB_MODECONTROL
+#define RB_MODECONTROL__EDRAM_MODE_MASK 0x00000007L
+
+// RB_COLOR_DEST_MASK
+#define RB_COLOR_DEST_MASK__COLOR_DEST_MASK_MASK 0xffffffffL
+
+// RB_COPY_CONTROL
+#define RB_COPY_CONTROL__COPY_SAMPLE_SELECT_MASK 0x00000007L
+#define RB_COPY_CONTROL__DEPTH_CLEAR_ENABLE_MASK 0x00000008L
+#define RB_COPY_CONTROL__DEPTH_CLEAR_ENABLE 0x00000008L
+#define RB_COPY_CONTROL__CLEAR_MASK_MASK 0x000000f0L
+
+// RB_COPY_DEST_BASE
+#define RB_COPY_DEST_BASE__COPY_DEST_BASE_MASK 0xfffff000L
+
+// RB_COPY_DEST_PITCH
+#define RB_COPY_DEST_PITCH__COPY_DEST_PITCH_MASK 0x000001ffL
+
+// RB_COPY_DEST_INFO
+#define RB_COPY_DEST_INFO__COPY_DEST_ENDIAN_MASK 0x00000007L
+#define RB_COPY_DEST_INFO__COPY_DEST_LINEAR_MASK 0x00000008L
+#define RB_COPY_DEST_INFO__COPY_DEST_LINEAR 0x00000008L
+#define RB_COPY_DEST_INFO__COPY_DEST_FORMAT_MASK 0x000000f0L
+#define RB_COPY_DEST_INFO__COPY_DEST_SWAP_MASK 0x00000300L
+#define RB_COPY_DEST_INFO__COPY_DEST_DITHER_MODE_MASK 0x00000c00L
+#define RB_COPY_DEST_INFO__COPY_DEST_DITHER_TYPE_MASK 0x00003000L
+#define RB_COPY_DEST_INFO__COPY_MASK_WRITE_RED_MASK 0x00004000L
+#define RB_COPY_DEST_INFO__COPY_MASK_WRITE_RED 0x00004000L
+#define RB_COPY_DEST_INFO__COPY_MASK_WRITE_GREEN_MASK 0x00008000L
+#define RB_COPY_DEST_INFO__COPY_MASK_WRITE_GREEN 0x00008000L
+#define RB_COPY_DEST_INFO__COPY_MASK_WRITE_BLUE_MASK 0x00010000L
+#define RB_COPY_DEST_INFO__COPY_MASK_WRITE_BLUE 0x00010000L
+#define RB_COPY_DEST_INFO__COPY_MASK_WRITE_ALPHA_MASK 0x00020000L
+#define RB_COPY_DEST_INFO__COPY_MASK_WRITE_ALPHA 0x00020000L
+
+// RB_COPY_DEST_PIXEL_OFFSET
+#define RB_COPY_DEST_PIXEL_OFFSET__OFFSET_X_MASK 0x00001fffL
+#define RB_COPY_DEST_PIXEL_OFFSET__OFFSET_Y_MASK 0x03ffe000L
+
+// RB_DEPTH_CLEAR
+#define RB_DEPTH_CLEAR__DEPTH_CLEAR_MASK 0xffffffffL
+
+// RB_SAMPLE_COUNT_CTL
+#define RB_SAMPLE_COUNT_CTL__RESET_SAMPLE_COUNT_MASK 0x00000001L
+#define RB_SAMPLE_COUNT_CTL__RESET_SAMPLE_COUNT 0x00000001L
+#define RB_SAMPLE_COUNT_CTL__COPY_SAMPLE_COUNT_MASK 0x00000002L
+#define RB_SAMPLE_COUNT_CTL__COPY_SAMPLE_COUNT 0x00000002L
+
+// RB_SAMPLE_COUNT_ADDR
+#define RB_SAMPLE_COUNT_ADDR__SAMPLE_COUNT_ADDR_MASK 0xffffffffL
+
+// RB_BC_CONTROL
+#define RB_BC_CONTROL__ACCUM_LINEAR_MODE_ENABLE_MASK 0x00000001L
+#define RB_BC_CONTROL__ACCUM_LINEAR_MODE_ENABLE 0x00000001L
+#define RB_BC_CONTROL__ACCUM_TIMEOUT_SELECT_MASK 0x00000006L
+#define RB_BC_CONTROL__DISABLE_EDRAM_CAM_MASK 0x00000008L
+#define RB_BC_CONTROL__DISABLE_EDRAM_CAM 0x00000008L
+#define RB_BC_CONTROL__DISABLE_EZ_FAST_CONTEXT_SWITCH_MASK 0x00000010L
+#define RB_BC_CONTROL__DISABLE_EZ_FAST_CONTEXT_SWITCH 0x00000010L
+#define RB_BC_CONTROL__DISABLE_EZ_NULL_ZCMD_DROP_MASK 0x00000020L
+#define RB_BC_CONTROL__DISABLE_EZ_NULL_ZCMD_DROP 0x00000020L
+#define RB_BC_CONTROL__DISABLE_LZ_NULL_ZCMD_DROP_MASK 0x00000040L
+#define RB_BC_CONTROL__DISABLE_LZ_NULL_ZCMD_DROP 0x00000040L
+#define RB_BC_CONTROL__ENABLE_AZ_THROTTLE_MASK 0x00000080L
+#define RB_BC_CONTROL__ENABLE_AZ_THROTTLE 0x00000080L
+#define RB_BC_CONTROL__AZ_THROTTLE_COUNT_MASK 0x00001f00L
+#define RB_BC_CONTROL__ENABLE_CRC_UPDATE_MASK 0x00004000L
+#define RB_BC_CONTROL__ENABLE_CRC_UPDATE 0x00004000L
+#define RB_BC_CONTROL__CRC_MODE_MASK 0x00008000L
+#define RB_BC_CONTROL__CRC_MODE 0x00008000L
+#define RB_BC_CONTROL__DISABLE_SAMPLE_COUNTERS_MASK 0x00010000L
+#define RB_BC_CONTROL__DISABLE_SAMPLE_COUNTERS 0x00010000L
+#define RB_BC_CONTROL__DISABLE_ACCUM_MASK 0x00020000L
+#define RB_BC_CONTROL__DISABLE_ACCUM 0x00020000L
+#define RB_BC_CONTROL__ACCUM_ALLOC_MASK_MASK 0x003c0000L
+#define RB_BC_CONTROL__LINEAR_PERFORMANCE_ENABLE_MASK 0x00400000L
+#define RB_BC_CONTROL__LINEAR_PERFORMANCE_ENABLE 0x00400000L
+#define RB_BC_CONTROL__ACCUM_DATA_FIFO_LIMIT_MASK 0x07800000L
+#define RB_BC_CONTROL__MEM_EXPORT_TIMEOUT_SELECT_MASK 0x18000000L
+#define RB_BC_CONTROL__MEM_EXPORT_LINEAR_MODE_ENABLE_MASK 0x20000000L
+#define RB_BC_CONTROL__MEM_EXPORT_LINEAR_MODE_ENABLE 0x20000000L
+#define RB_BC_CONTROL__RESERVED9_MASK 0x40000000L
+#define RB_BC_CONTROL__RESERVED9 0x40000000L
+#define RB_BC_CONTROL__RESERVED10_MASK 0x80000000L
+#define RB_BC_CONTROL__RESERVED10 0x80000000L
+
+// RB_EDRAM_INFO
+#define RB_EDRAM_INFO__EDRAM_SIZE_MASK 0x0000000fL
+#define RB_EDRAM_INFO__EDRAM_MAPPING_MODE_MASK 0x00000030L
+#define RB_EDRAM_INFO__EDRAM_RANGE_MASK 0xffffc000L
+
+// RB_CRC_RD_PORT
+#define RB_CRC_RD_PORT__CRC_DATA_MASK 0xffffffffL
+
+// RB_CRC_CONTROL
+#define RB_CRC_CONTROL__CRC_RD_ADVANCE_MASK 0x00000001L
+#define RB_CRC_CONTROL__CRC_RD_ADVANCE 0x00000001L
+
+// RB_CRC_MASK
+#define RB_CRC_MASK__CRC_MASK_MASK 0xffffffffL
+
+// RB_PERFCOUNTER0_SELECT
+#define RB_PERFCOUNTER0_SELECT__PERF_SEL_MASK 0x000000ffL
+
+// RB_PERFCOUNTER0_LOW
+#define RB_PERFCOUNTER0_LOW__PERF_COUNT_MASK 0xffffffffL
+
+// RB_PERFCOUNTER0_HI
+#define RB_PERFCOUNTER0_HI__PERF_COUNT_MASK 0x0000ffffL
+
+// RB_TOTAL_SAMPLES
+#define RB_TOTAL_SAMPLES__TOTAL_SAMPLES_MASK 0xffffffffL
+
+// RB_ZPASS_SAMPLES
+#define RB_ZPASS_SAMPLES__ZPASS_SAMPLES_MASK 0xffffffffL
+
+// RB_ZFAIL_SAMPLES
+#define RB_ZFAIL_SAMPLES__ZFAIL_SAMPLES_MASK 0xffffffffL
+
+// RB_SFAIL_SAMPLES
+#define RB_SFAIL_SAMPLES__SFAIL_SAMPLES_MASK 0xffffffffL
+
+// RB_DEBUG_0
+#define RB_DEBUG_0__RDREQ_CTL_Z1_PRE_FULL_MASK 0x00000001L
+#define RB_DEBUG_0__RDREQ_CTL_Z1_PRE_FULL 0x00000001L
+#define RB_DEBUG_0__RDREQ_CTL_Z0_PRE_FULL_MASK 0x00000002L
+#define RB_DEBUG_0__RDREQ_CTL_Z0_PRE_FULL 0x00000002L
+#define RB_DEBUG_0__RDREQ_CTL_C1_PRE_FULL_MASK 0x00000004L
+#define RB_DEBUG_0__RDREQ_CTL_C1_PRE_FULL 0x00000004L
+#define RB_DEBUG_0__RDREQ_CTL_C0_PRE_FULL_MASK 0x00000008L
+#define RB_DEBUG_0__RDREQ_CTL_C0_PRE_FULL 0x00000008L
+#define RB_DEBUG_0__RDREQ_E1_ORDERING_FULL_MASK 0x00000010L
+#define RB_DEBUG_0__RDREQ_E1_ORDERING_FULL 0x00000010L
+#define RB_DEBUG_0__RDREQ_E0_ORDERING_FULL_MASK 0x00000020L
+#define RB_DEBUG_0__RDREQ_E0_ORDERING_FULL 0x00000020L
+#define RB_DEBUG_0__RDREQ_Z1_FULL_MASK 0x00000040L
+#define RB_DEBUG_0__RDREQ_Z1_FULL 0x00000040L
+#define RB_DEBUG_0__RDREQ_Z0_FULL_MASK 0x00000080L
+#define RB_DEBUG_0__RDREQ_Z0_FULL 0x00000080L
+#define RB_DEBUG_0__RDREQ_C1_FULL_MASK 0x00000100L
+#define RB_DEBUG_0__RDREQ_C1_FULL 0x00000100L
+#define RB_DEBUG_0__RDREQ_C0_FULL_MASK 0x00000200L
+#define RB_DEBUG_0__RDREQ_C0_FULL 0x00000200L
+#define RB_DEBUG_0__WRREQ_E1_MACRO_HI_FULL_MASK 0x00000400L
+#define RB_DEBUG_0__WRREQ_E1_MACRO_HI_FULL 0x00000400L
+#define RB_DEBUG_0__WRREQ_E1_MACRO_LO_FULL_MASK 0x00000800L
+#define RB_DEBUG_0__WRREQ_E1_MACRO_LO_FULL 0x00000800L
+#define RB_DEBUG_0__WRREQ_E0_MACRO_HI_FULL_MASK 0x00001000L
+#define RB_DEBUG_0__WRREQ_E0_MACRO_HI_FULL 0x00001000L
+#define RB_DEBUG_0__WRREQ_E0_MACRO_LO_FULL_MASK 0x00002000L
+#define RB_DEBUG_0__WRREQ_E0_MACRO_LO_FULL 0x00002000L
+#define RB_DEBUG_0__WRREQ_C_WE_HI_FULL_MASK 0x00004000L
+#define RB_DEBUG_0__WRREQ_C_WE_HI_FULL 0x00004000L
+#define RB_DEBUG_0__WRREQ_C_WE_LO_FULL_MASK 0x00008000L
+#define RB_DEBUG_0__WRREQ_C_WE_LO_FULL 0x00008000L
+#define RB_DEBUG_0__WRREQ_Z1_FULL_MASK 0x00010000L
+#define RB_DEBUG_0__WRREQ_Z1_FULL 0x00010000L
+#define RB_DEBUG_0__WRREQ_Z0_FULL_MASK 0x00020000L
+#define RB_DEBUG_0__WRREQ_Z0_FULL 0x00020000L
+#define RB_DEBUG_0__WRREQ_C1_FULL_MASK 0x00040000L
+#define RB_DEBUG_0__WRREQ_C1_FULL 0x00040000L
+#define RB_DEBUG_0__WRREQ_C0_FULL_MASK 0x00080000L
+#define RB_DEBUG_0__WRREQ_C0_FULL 0x00080000L
+#define RB_DEBUG_0__CMDFIFO_Z1_HOLD_FULL_MASK 0x00100000L
+#define RB_DEBUG_0__CMDFIFO_Z1_HOLD_FULL 0x00100000L
+#define RB_DEBUG_0__CMDFIFO_Z0_HOLD_FULL_MASK 0x00200000L
+#define RB_DEBUG_0__CMDFIFO_Z0_HOLD_FULL 0x00200000L
+#define RB_DEBUG_0__CMDFIFO_C1_HOLD_FULL_MASK 0x00400000L
+#define RB_DEBUG_0__CMDFIFO_C1_HOLD_FULL 0x00400000L
+#define RB_DEBUG_0__CMDFIFO_C0_HOLD_FULL_MASK 0x00800000L
+#define RB_DEBUG_0__CMDFIFO_C0_HOLD_FULL 0x00800000L
+#define RB_DEBUG_0__CMDFIFO_Z_ORDERING_FULL_MASK 0x01000000L
+#define RB_DEBUG_0__CMDFIFO_Z_ORDERING_FULL 0x01000000L
+#define RB_DEBUG_0__CMDFIFO_C_ORDERING_FULL_MASK 0x02000000L
+#define RB_DEBUG_0__CMDFIFO_C_ORDERING_FULL 0x02000000L
+#define RB_DEBUG_0__C_SX_LAT_FULL_MASK 0x04000000L
+#define RB_DEBUG_0__C_SX_LAT_FULL 0x04000000L
+#define RB_DEBUG_0__C_SX_CMD_FULL_MASK 0x08000000L
+#define RB_DEBUG_0__C_SX_CMD_FULL 0x08000000L
+#define RB_DEBUG_0__C_EZ_TILE_FULL_MASK 0x10000000L
+#define RB_DEBUG_0__C_EZ_TILE_FULL 0x10000000L
+#define RB_DEBUG_0__C_REQ_FULL_MASK 0x20000000L
+#define RB_DEBUG_0__C_REQ_FULL 0x20000000L
+#define RB_DEBUG_0__C_MASK_FULL_MASK 0x40000000L
+#define RB_DEBUG_0__C_MASK_FULL 0x40000000L
+#define RB_DEBUG_0__EZ_INFSAMP_FULL_MASK 0x80000000L
+#define RB_DEBUG_0__EZ_INFSAMP_FULL 0x80000000L
+
+// RB_DEBUG_1
+#define RB_DEBUG_1__RDREQ_Z1_CMD_EMPTY_MASK 0x00000001L
+#define RB_DEBUG_1__RDREQ_Z1_CMD_EMPTY 0x00000001L
+#define RB_DEBUG_1__RDREQ_Z0_CMD_EMPTY_MASK 0x00000002L
+#define RB_DEBUG_1__RDREQ_Z0_CMD_EMPTY 0x00000002L
+#define RB_DEBUG_1__RDREQ_C1_CMD_EMPTY_MASK 0x00000004L
+#define RB_DEBUG_1__RDREQ_C1_CMD_EMPTY 0x00000004L
+#define RB_DEBUG_1__RDREQ_C0_CMD_EMPTY_MASK 0x00000008L
+#define RB_DEBUG_1__RDREQ_C0_CMD_EMPTY 0x00000008L
+#define RB_DEBUG_1__RDREQ_E1_ORDERING_EMPTY_MASK 0x00000010L
+#define RB_DEBUG_1__RDREQ_E1_ORDERING_EMPTY 0x00000010L
+#define RB_DEBUG_1__RDREQ_E0_ORDERING_EMPTY_MASK 0x00000020L
+#define RB_DEBUG_1__RDREQ_E0_ORDERING_EMPTY 0x00000020L
+#define RB_DEBUG_1__RDREQ_Z1_EMPTY_MASK 0x00000040L
+#define RB_DEBUG_1__RDREQ_Z1_EMPTY 0x00000040L
+#define RB_DEBUG_1__RDREQ_Z0_EMPTY_MASK 0x00000080L
+#define RB_DEBUG_1__RDREQ_Z0_EMPTY 0x00000080L
+#define RB_DEBUG_1__RDREQ_C1_EMPTY_MASK 0x00000100L
+#define RB_DEBUG_1__RDREQ_C1_EMPTY 0x00000100L
+#define RB_DEBUG_1__RDREQ_C0_EMPTY_MASK 0x00000200L
+#define RB_DEBUG_1__RDREQ_C0_EMPTY 0x00000200L
+#define RB_DEBUG_1__WRREQ_E1_MACRO_HI_EMPTY_MASK 0x00000400L
+#define RB_DEBUG_1__WRREQ_E1_MACRO_HI_EMPTY 0x00000400L
+#define RB_DEBUG_1__WRREQ_E1_MACRO_LO_EMPTY_MASK 0x00000800L
+#define RB_DEBUG_1__WRREQ_E1_MACRO_LO_EMPTY 0x00000800L
+#define RB_DEBUG_1__WRREQ_E0_MACRO_HI_EMPTY_MASK 0x00001000L
+#define RB_DEBUG_1__WRREQ_E0_MACRO_HI_EMPTY 0x00001000L
+#define RB_DEBUG_1__WRREQ_E0_MACRO_LO_EMPTY_MASK 0x00002000L
+#define RB_DEBUG_1__WRREQ_E0_MACRO_LO_EMPTY 0x00002000L
+#define RB_DEBUG_1__WRREQ_C_WE_HI_EMPTY_MASK 0x00004000L
+#define RB_DEBUG_1__WRREQ_C_WE_HI_EMPTY 0x00004000L
+#define RB_DEBUG_1__WRREQ_C_WE_LO_EMPTY_MASK 0x00008000L
+#define RB_DEBUG_1__WRREQ_C_WE_LO_EMPTY 0x00008000L
+#define RB_DEBUG_1__WRREQ_Z1_EMPTY_MASK 0x00010000L
+#define RB_DEBUG_1__WRREQ_Z1_EMPTY 0x00010000L
+#define RB_DEBUG_1__WRREQ_Z0_EMPTY_MASK 0x00020000L
+#define RB_DEBUG_1__WRREQ_Z0_EMPTY 0x00020000L
+#define RB_DEBUG_1__WRREQ_C1_PRE_EMPTY_MASK 0x00040000L
+#define RB_DEBUG_1__WRREQ_C1_PRE_EMPTY 0x00040000L
+#define RB_DEBUG_1__WRREQ_C0_PRE_EMPTY_MASK 0x00080000L
+#define RB_DEBUG_1__WRREQ_C0_PRE_EMPTY 0x00080000L
+#define RB_DEBUG_1__CMDFIFO_Z1_HOLD_EMPTY_MASK 0x00100000L
+#define RB_DEBUG_1__CMDFIFO_Z1_HOLD_EMPTY 0x00100000L
+#define RB_DEBUG_1__CMDFIFO_Z0_HOLD_EMPTY_MASK 0x00200000L
+#define RB_DEBUG_1__CMDFIFO_Z0_HOLD_EMPTY 0x00200000L
+#define RB_DEBUG_1__CMDFIFO_C1_HOLD_EMPTY_MASK 0x00400000L
+#define RB_DEBUG_1__CMDFIFO_C1_HOLD_EMPTY 0x00400000L
+#define RB_DEBUG_1__CMDFIFO_C0_HOLD_EMPTY_MASK 0x00800000L
+#define RB_DEBUG_1__CMDFIFO_C0_HOLD_EMPTY 0x00800000L
+#define RB_DEBUG_1__CMDFIFO_Z_ORDERING_EMPTY_MASK 0x01000000L
+#define RB_DEBUG_1__CMDFIFO_Z_ORDERING_EMPTY 0x01000000L
+#define RB_DEBUG_1__CMDFIFO_C_ORDERING_EMPTY_MASK 0x02000000L
+#define RB_DEBUG_1__CMDFIFO_C_ORDERING_EMPTY 0x02000000L
+#define RB_DEBUG_1__C_SX_LAT_EMPTY_MASK 0x04000000L
+#define RB_DEBUG_1__C_SX_LAT_EMPTY 0x04000000L
+#define RB_DEBUG_1__C_SX_CMD_EMPTY_MASK 0x08000000L
+#define RB_DEBUG_1__C_SX_CMD_EMPTY 0x08000000L
+#define RB_DEBUG_1__C_EZ_TILE_EMPTY_MASK 0x10000000L
+#define RB_DEBUG_1__C_EZ_TILE_EMPTY 0x10000000L
+#define RB_DEBUG_1__C_REQ_EMPTY_MASK 0x20000000L
+#define RB_DEBUG_1__C_REQ_EMPTY 0x20000000L
+#define RB_DEBUG_1__C_MASK_EMPTY_MASK 0x40000000L
+#define RB_DEBUG_1__C_MASK_EMPTY 0x40000000L
+#define RB_DEBUG_1__EZ_INFSAMP_EMPTY_MASK 0x80000000L
+#define RB_DEBUG_1__EZ_INFSAMP_EMPTY 0x80000000L
+
+// RB_DEBUG_2
+#define RB_DEBUG_2__TILE_FIFO_COUNT_MASK 0x0000000fL
+#define RB_DEBUG_2__SX_LAT_FIFO_COUNT_MASK 0x000007f0L
+#define RB_DEBUG_2__MEM_EXPORT_FLAG_MASK 0x00000800L
+#define RB_DEBUG_2__MEM_EXPORT_FLAG 0x00000800L
+#define RB_DEBUG_2__SYSMEM_BLEND_FLAG_MASK 0x00001000L
+#define RB_DEBUG_2__SYSMEM_BLEND_FLAG 0x00001000L
+#define RB_DEBUG_2__CURRENT_TILE_EVENT_MASK 0x00002000L
+#define RB_DEBUG_2__CURRENT_TILE_EVENT 0x00002000L
+#define RB_DEBUG_2__EZ_INFTILE_FULL_MASK 0x00004000L
+#define RB_DEBUG_2__EZ_INFTILE_FULL 0x00004000L
+#define RB_DEBUG_2__EZ_MASK_LOWER_FULL_MASK 0x00008000L
+#define RB_DEBUG_2__EZ_MASK_LOWER_FULL 0x00008000L
+#define RB_DEBUG_2__EZ_MASK_UPPER_FULL_MASK 0x00010000L
+#define RB_DEBUG_2__EZ_MASK_UPPER_FULL 0x00010000L
+#define RB_DEBUG_2__Z0_MASK_FULL_MASK 0x00020000L
+#define RB_DEBUG_2__Z0_MASK_FULL 0x00020000L
+#define RB_DEBUG_2__Z1_MASK_FULL_MASK 0x00040000L
+#define RB_DEBUG_2__Z1_MASK_FULL 0x00040000L
+#define RB_DEBUG_2__Z0_REQ_FULL_MASK 0x00080000L
+#define RB_DEBUG_2__Z0_REQ_FULL 0x00080000L
+#define RB_DEBUG_2__Z1_REQ_FULL_MASK 0x00100000L
+#define RB_DEBUG_2__Z1_REQ_FULL 0x00100000L
+#define RB_DEBUG_2__Z_SAMP_FULL_MASK 0x00200000L
+#define RB_DEBUG_2__Z_SAMP_FULL 0x00200000L
+#define RB_DEBUG_2__Z_TILE_FULL_MASK 0x00400000L
+#define RB_DEBUG_2__Z_TILE_FULL 0x00400000L
+#define RB_DEBUG_2__EZ_INFTILE_EMPTY_MASK 0x00800000L
+#define RB_DEBUG_2__EZ_INFTILE_EMPTY 0x00800000L
+#define RB_DEBUG_2__EZ_MASK_LOWER_EMPTY_MASK 0x01000000L
+#define RB_DEBUG_2__EZ_MASK_LOWER_EMPTY 0x01000000L
+#define RB_DEBUG_2__EZ_MASK_UPPER_EMPTY_MASK 0x02000000L
+#define RB_DEBUG_2__EZ_MASK_UPPER_EMPTY 0x02000000L
+#define RB_DEBUG_2__Z0_MASK_EMPTY_MASK 0x04000000L
+#define RB_DEBUG_2__Z0_MASK_EMPTY 0x04000000L
+#define RB_DEBUG_2__Z1_MASK_EMPTY_MASK 0x08000000L
+#define RB_DEBUG_2__Z1_MASK_EMPTY 0x08000000L
+#define RB_DEBUG_2__Z0_REQ_EMPTY_MASK 0x10000000L
+#define RB_DEBUG_2__Z0_REQ_EMPTY 0x10000000L
+#define RB_DEBUG_2__Z1_REQ_EMPTY_MASK 0x20000000L
+#define RB_DEBUG_2__Z1_REQ_EMPTY 0x20000000L
+#define RB_DEBUG_2__Z_SAMP_EMPTY_MASK 0x40000000L
+#define RB_DEBUG_2__Z_SAMP_EMPTY 0x40000000L
+#define RB_DEBUG_2__Z_TILE_EMPTY_MASK 0x80000000L
+#define RB_DEBUG_2__Z_TILE_EMPTY 0x80000000L
+
+// RB_DEBUG_3
+#define RB_DEBUG_3__ACCUM_VALID_MASK 0x0000000fL
+#define RB_DEBUG_3__ACCUM_FLUSHING_MASK 0x000000f0L
+#define RB_DEBUG_3__ACCUM_WRITE_CLEAN_COUNT_MASK 0x00003f00L
+#define RB_DEBUG_3__ACCUM_INPUT_REG_VALID_MASK 0x00004000L
+#define RB_DEBUG_3__ACCUM_INPUT_REG_VALID 0x00004000L
+#define RB_DEBUG_3__ACCUM_DATA_FIFO_CNT_MASK 0x00078000L
+#define RB_DEBUG_3__SHD_FULL_MASK 0x00080000L
+#define RB_DEBUG_3__SHD_FULL 0x00080000L
+#define RB_DEBUG_3__SHD_EMPTY_MASK 0x00100000L
+#define RB_DEBUG_3__SHD_EMPTY 0x00100000L
+#define RB_DEBUG_3__EZ_RETURN_LOWER_EMPTY_MASK 0x00200000L
+#define RB_DEBUG_3__EZ_RETURN_LOWER_EMPTY 0x00200000L
+#define RB_DEBUG_3__EZ_RETURN_UPPER_EMPTY_MASK 0x00400000L
+#define RB_DEBUG_3__EZ_RETURN_UPPER_EMPTY 0x00400000L
+#define RB_DEBUG_3__EZ_RETURN_LOWER_FULL_MASK 0x00800000L
+#define RB_DEBUG_3__EZ_RETURN_LOWER_FULL 0x00800000L
+#define RB_DEBUG_3__EZ_RETURN_UPPER_FULL_MASK 0x01000000L
+#define RB_DEBUG_3__EZ_RETURN_UPPER_FULL 0x01000000L
+#define RB_DEBUG_3__ZEXP_LOWER_EMPTY_MASK 0x02000000L
+#define RB_DEBUG_3__ZEXP_LOWER_EMPTY 0x02000000L
+#define RB_DEBUG_3__ZEXP_UPPER_EMPTY_MASK 0x04000000L
+#define RB_DEBUG_3__ZEXP_UPPER_EMPTY 0x04000000L
+#define RB_DEBUG_3__ZEXP_LOWER_FULL_MASK 0x08000000L
+#define RB_DEBUG_3__ZEXP_LOWER_FULL 0x08000000L
+#define RB_DEBUG_3__ZEXP_UPPER_FULL_MASK 0x10000000L
+#define RB_DEBUG_3__ZEXP_UPPER_FULL 0x10000000L
+
+// RB_DEBUG_4
+#define RB_DEBUG_4__GMEM_RD_ACCESS_FLAG_MASK 0x00000001L
+#define RB_DEBUG_4__GMEM_RD_ACCESS_FLAG 0x00000001L
+#define RB_DEBUG_4__GMEM_WR_ACCESS_FLAG_MASK 0x00000002L
+#define RB_DEBUG_4__GMEM_WR_ACCESS_FLAG 0x00000002L
+#define RB_DEBUG_4__SYSMEM_RD_ACCESS_FLAG_MASK 0x00000004L
+#define RB_DEBUG_4__SYSMEM_RD_ACCESS_FLAG 0x00000004L
+#define RB_DEBUG_4__SYSMEM_WR_ACCESS_FLAG_MASK 0x00000008L
+#define RB_DEBUG_4__SYSMEM_WR_ACCESS_FLAG 0x00000008L
+#define RB_DEBUG_4__ACCUM_DATA_FIFO_EMPTY_MASK 0x00000010L
+#define RB_DEBUG_4__ACCUM_DATA_FIFO_EMPTY 0x00000010L
+#define RB_DEBUG_4__ACCUM_ORDER_FIFO_EMPTY_MASK 0x00000020L
+#define RB_DEBUG_4__ACCUM_ORDER_FIFO_EMPTY 0x00000020L
+#define RB_DEBUG_4__ACCUM_DATA_FIFO_FULL_MASK 0x00000040L
+#define RB_DEBUG_4__ACCUM_DATA_FIFO_FULL 0x00000040L
+#define RB_DEBUG_4__ACCUM_ORDER_FIFO_FULL_MASK 0x00000080L
+#define RB_DEBUG_4__ACCUM_ORDER_FIFO_FULL 0x00000080L
+#define RB_DEBUG_4__SYSMEM_WRITE_COUNT_OVERFLOW_MASK 0x00000100L
+#define RB_DEBUG_4__SYSMEM_WRITE_COUNT_OVERFLOW 0x00000100L
+#define RB_DEBUG_4__CONTEXT_COUNT_DEBUG_MASK 0x00001e00L
+
+// RB_FLAG_CONTROL
+#define RB_FLAG_CONTROL__DEBUG_FLAG_CLEAR_MASK 0x00000001L
+#define RB_FLAG_CONTROL__DEBUG_FLAG_CLEAR 0x00000001L
+
+// BC_DUMMY_CRAYRB_ENUMS
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_DEPTH_FORMAT_MASK 0x0000003fL
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_SURFACE_SWAP_MASK 0x00000040L
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_SURFACE_SWAP 0x00000040L
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_DEPTH_ARRAY_MASK 0x00000180L
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_ARRAY_MASK 0x00000600L
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_COLOR_FORMAT_MASK 0x0001f800L
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_SURFACE_NUMBER_MASK 0x000e0000L
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_SURFACE_FORMAT_MASK 0x03f00000L
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_SURFACE_TILING_MASK 0x04000000L
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_SURFACE_TILING 0x04000000L
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_SURFACE_ARRAY_MASK 0x18000000L
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_RB_COPY_DEST_INFO_NUMBER_MASK 0xe0000000L
+
+// BC_DUMMY_CRAYRB_MOREENUMS
+#define BC_DUMMY_CRAYRB_MOREENUMS__DUMMY_CRAYRB_COLORARRAYX_MASK 0x00000003L
+
+#endif
diff --git a/drivers/mxc/amd-gpu/include/reg/yamato/14/yamato_offset.h b/drivers/mxc/amd-gpu/include/reg/yamato/14/yamato_offset.h
new file mode 100644
index 000000000000..6a229a8e79e2
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/reg/yamato/14/yamato_offset.h
@@ -0,0 +1,581 @@
+/* Copyright (c) 2002,2007-2009, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef _yamato_OFFSET_HEADER
+#define _yamato_OFFSET_HEADER
+
+
+// Registers from PA block
+
+#define mmPA_CL_VPORT_XSCALE 0x210F
+#define mmPA_CL_VPORT_XOFFSET 0x2110
+#define mmPA_CL_VPORT_YSCALE 0x2111
+#define mmPA_CL_VPORT_YOFFSET 0x2112
+#define mmPA_CL_VPORT_ZSCALE 0x2113
+#define mmPA_CL_VPORT_ZOFFSET 0x2114
+#define mmPA_CL_VTE_CNTL 0x2206
+#define mmPA_CL_CLIP_CNTL 0x2204
+#define mmPA_CL_GB_VERT_CLIP_ADJ 0x2303
+#define mmPA_CL_GB_VERT_DISC_ADJ 0x2304
+#define mmPA_CL_GB_HORZ_CLIP_ADJ 0x2305
+#define mmPA_CL_GB_HORZ_DISC_ADJ 0x2306
+#define mmPA_CL_ENHANCE 0x0C85
+#define mmPA_SC_ENHANCE 0x0CA5
+#define mmPA_SU_VTX_CNTL 0x2302
+#define mmPA_SU_POINT_SIZE 0x2280
+#define mmPA_SU_POINT_MINMAX 0x2281
+#define mmPA_SU_LINE_CNTL 0x2282
+#define mmPA_SU_SC_MODE_CNTL 0x2205
+#define mmPA_SU_POLY_OFFSET_FRONT_SCALE 0x2380
+#define mmPA_SU_POLY_OFFSET_FRONT_OFFSET 0x2381
+#define mmPA_SU_POLY_OFFSET_BACK_SCALE 0x2382
+#define mmPA_SU_POLY_OFFSET_BACK_OFFSET 0x2383
+#define mmPA_SU_PERFCOUNTER0_SELECT 0x0C88
+#define mmPA_SU_PERFCOUNTER1_SELECT 0x0C89
+#define mmPA_SU_PERFCOUNTER2_SELECT 0x0C8A
+#define mmPA_SU_PERFCOUNTER3_SELECT 0x0C8B
+#define mmPA_SU_PERFCOUNTER0_LOW 0x0C8C
+#define mmPA_SU_PERFCOUNTER0_HI 0x0C8D
+#define mmPA_SU_PERFCOUNTER1_LOW 0x0C8E
+#define mmPA_SU_PERFCOUNTER1_HI 0x0C8F
+#define mmPA_SU_PERFCOUNTER2_LOW 0x0C90
+#define mmPA_SU_PERFCOUNTER2_HI 0x0C91
+#define mmPA_SU_PERFCOUNTER3_LOW 0x0C92
+#define mmPA_SU_PERFCOUNTER3_HI 0x0C93
+#define mmPA_SC_WINDOW_OFFSET 0x2080
+#define mmPA_SC_AA_CONFIG 0x2301
+#define mmPA_SC_AA_MASK 0x2312
+#define mmPA_SC_LINE_STIPPLE 0x2283
+#define mmPA_SC_LINE_CNTL 0x2300
+#define mmPA_SC_WINDOW_SCISSOR_TL 0x2081
+#define mmPA_SC_WINDOW_SCISSOR_BR 0x2082
+#define mmPA_SC_SCREEN_SCISSOR_TL 0x200E
+#define mmPA_SC_SCREEN_SCISSOR_BR 0x200F
+#define mmPA_SC_VIZ_QUERY 0x2293
+#define mmPA_SC_VIZ_QUERY_STATUS 0x0C44
+#define mmPA_SC_LINE_STIPPLE_STATE 0x0C40
+#define mmPA_SC_PERFCOUNTER0_SELECT 0x0C98
+#define mmPA_SC_PERFCOUNTER0_LOW 0x0C99
+#define mmPA_SC_PERFCOUNTER0_HI 0x0C9A
+#define mmPA_CL_CNTL_STATUS 0x0C84
+#define mmPA_SU_CNTL_STATUS 0x0C94
+#define mmPA_SC_CNTL_STATUS 0x0CA4
+#define mmPA_SU_DEBUG_CNTL 0x0C80
+#define mmPA_SU_DEBUG_DATA 0x0C81
+#define mmPA_SC_DEBUG_CNTL 0x0C82
+#define mmPA_SC_DEBUG_DATA 0x0C83
+
+
+// Registers from VGT block
+
+#define mmGFX_COPY_STATE 0x21F4
+#define mmVGT_DRAW_INITIATOR 0x21FC
+#define mmVGT_EVENT_INITIATOR 0x21F9
+#define mmVGT_DMA_BASE 0x21FA
+#define mmVGT_DMA_SIZE 0x21FB
+#define mmVGT_BIN_BASE 0x21FE
+#define mmVGT_BIN_SIZE 0x21FF
+#define mmVGT_CURRENT_BIN_ID_MIN 0x2207
+#define mmVGT_CURRENT_BIN_ID_MAX 0x2203
+#define mmVGT_IMMED_DATA 0x21FD
+#define mmVGT_MAX_VTX_INDX 0x2100
+#define mmVGT_MIN_VTX_INDX 0x2101
+#define mmVGT_INDX_OFFSET 0x2102
+#define mmVGT_VERTEX_REUSE_BLOCK_CNTL 0x2316
+#define mmVGT_OUT_DEALLOC_CNTL 0x2317
+#define mmVGT_MULTI_PRIM_IB_RESET_INDX 0x2103
+#define mmVGT_ENHANCE 0x2294
+#define mmVGT_VTX_VECT_EJECT_REG 0x0C2C
+#define mmVGT_LAST_COPY_STATE 0x0C30
+#define mmVGT_DEBUG_CNTL 0x0C38
+#define mmVGT_DEBUG_DATA 0x0C39
+#define mmVGT_CNTL_STATUS 0x0C3C
+#define mmVGT_CRC_SQ_DATA 0x0C3A
+#define mmVGT_CRC_SQ_CTRL 0x0C3B
+#define mmVGT_PERFCOUNTER0_SELECT 0x0C48
+#define mmVGT_PERFCOUNTER1_SELECT 0x0C49
+#define mmVGT_PERFCOUNTER2_SELECT 0x0C4A
+#define mmVGT_PERFCOUNTER3_SELECT 0x0C4B
+#define mmVGT_PERFCOUNTER0_LOW 0x0C4C
+#define mmVGT_PERFCOUNTER1_LOW 0x0C4E
+#define mmVGT_PERFCOUNTER2_LOW 0x0C50
+#define mmVGT_PERFCOUNTER3_LOW 0x0C52
+#define mmVGT_PERFCOUNTER0_HI 0x0C4D
+#define mmVGT_PERFCOUNTER1_HI 0x0C4F
+#define mmVGT_PERFCOUNTER2_HI 0x0C51
+#define mmVGT_PERFCOUNTER3_HI 0x0C53
+
+
+// Registers from TP block
+
+#define mmTC_CNTL_STATUS 0x0E00
+#define mmTCR_CHICKEN 0x0E02
+#define mmTCF_CHICKEN 0x0E03
+#define mmTCM_CHICKEN 0x0E04
+#define mmTCR_PERFCOUNTER0_SELECT 0x0E05
+#define mmTCR_PERFCOUNTER1_SELECT 0x0E08
+#define mmTCR_PERFCOUNTER0_HI 0x0E06
+#define mmTCR_PERFCOUNTER1_HI 0x0E09
+#define mmTCR_PERFCOUNTER0_LOW 0x0E07
+#define mmTCR_PERFCOUNTER1_LOW 0x0E0A
+#define mmTP_TC_CLKGATE_CNTL 0x0E17
+#define mmTPC_CNTL_STATUS 0x0E18
+#define mmTPC_DEBUG0 0x0E19
+#define mmTPC_DEBUG1 0x0E1A
+#define mmTPC_CHICKEN 0x0E1B
+#define mmTP0_CNTL_STATUS 0x0E1C
+#define mmTP0_DEBUG 0x0E1D
+#define mmTP0_CHICKEN 0x0E1E
+#define mmTP0_PERFCOUNTER0_SELECT 0x0E1F
+#define mmTP0_PERFCOUNTER0_HI 0x0E20
+#define mmTP0_PERFCOUNTER0_LOW 0x0E21
+#define mmTP0_PERFCOUNTER1_SELECT 0x0E22
+#define mmTP0_PERFCOUNTER1_HI 0x0E23
+#define mmTP0_PERFCOUNTER1_LOW 0x0E24
+#define mmTCM_PERFCOUNTER0_SELECT 0x0E54
+#define mmTCM_PERFCOUNTER1_SELECT 0x0E57
+#define mmTCM_PERFCOUNTER0_HI 0x0E55
+#define mmTCM_PERFCOUNTER1_HI 0x0E58
+#define mmTCM_PERFCOUNTER0_LOW 0x0E56
+#define mmTCM_PERFCOUNTER1_LOW 0x0E59
+#define mmTCF_PERFCOUNTER0_SELECT 0x0E5A
+#define mmTCF_PERFCOUNTER1_SELECT 0x0E5D
+#define mmTCF_PERFCOUNTER2_SELECT 0x0E60
+#define mmTCF_PERFCOUNTER3_SELECT 0x0E63
+#define mmTCF_PERFCOUNTER4_SELECT 0x0E66
+#define mmTCF_PERFCOUNTER5_SELECT 0x0E69
+#define mmTCF_PERFCOUNTER6_SELECT 0x0E6C
+#define mmTCF_PERFCOUNTER7_SELECT 0x0E6F
+#define mmTCF_PERFCOUNTER8_SELECT 0x0E72
+#define mmTCF_PERFCOUNTER9_SELECT 0x0E75
+#define mmTCF_PERFCOUNTER10_SELECT 0x0E78
+#define mmTCF_PERFCOUNTER11_SELECT 0x0E7B
+#define mmTCF_PERFCOUNTER0_HI 0x0E5B
+#define mmTCF_PERFCOUNTER1_HI 0x0E5E
+#define mmTCF_PERFCOUNTER2_HI 0x0E61
+#define mmTCF_PERFCOUNTER3_HI 0x0E64
+#define mmTCF_PERFCOUNTER4_HI 0x0E67
+#define mmTCF_PERFCOUNTER5_HI 0x0E6A
+#define mmTCF_PERFCOUNTER6_HI 0x0E6D
+#define mmTCF_PERFCOUNTER7_HI 0x0E70
+#define mmTCF_PERFCOUNTER8_HI 0x0E73
+#define mmTCF_PERFCOUNTER9_HI 0x0E76
+#define mmTCF_PERFCOUNTER10_HI 0x0E79
+#define mmTCF_PERFCOUNTER11_HI 0x0E7C
+#define mmTCF_PERFCOUNTER0_LOW 0x0E5C
+#define mmTCF_PERFCOUNTER1_LOW 0x0E5F
+#define mmTCF_PERFCOUNTER2_LOW 0x0E62
+#define mmTCF_PERFCOUNTER3_LOW 0x0E65
+#define mmTCF_PERFCOUNTER4_LOW 0x0E68
+#define mmTCF_PERFCOUNTER5_LOW 0x0E6B
+#define mmTCF_PERFCOUNTER6_LOW 0x0E6E
+#define mmTCF_PERFCOUNTER7_LOW 0x0E71
+#define mmTCF_PERFCOUNTER8_LOW 0x0E74
+#define mmTCF_PERFCOUNTER9_LOW 0x0E77
+#define mmTCF_PERFCOUNTER10_LOW 0x0E7A
+#define mmTCF_PERFCOUNTER11_LOW 0x0E7D
+#define mmTCF_DEBUG 0x0EC0
+#define mmTCA_FIFO_DEBUG 0x0EC1
+#define mmTCA_PROBE_DEBUG 0x0EC2
+#define mmTCA_TPC_DEBUG 0x0EC3
+#define mmTCB_CORE_DEBUG 0x0EC4
+#define mmTCB_TAG0_DEBUG 0x0EC5
+#define mmTCB_TAG1_DEBUG 0x0EC6
+#define mmTCB_TAG2_DEBUG 0x0EC7
+#define mmTCB_TAG3_DEBUG 0x0EC8
+#define mmTCB_FETCH_GEN_SECTOR_WALKER0_DEBUG 0x0EC9
+#define mmTCB_FETCH_GEN_WALKER_DEBUG 0x0ECB
+#define mmTCB_FETCH_GEN_PIPE0_DEBUG 0x0ECC
+#define mmTCD_INPUT0_DEBUG 0x0ED0
+#define mmTCD_DEGAMMA_DEBUG 0x0ED4
+#define mmTCD_DXTMUX_SCTARB_DEBUG 0x0ED5
+#define mmTCD_DXTC_ARB_DEBUG 0x0ED6
+#define mmTCD_STALLS_DEBUG 0x0ED7
+#define mmTCO_STALLS_DEBUG 0x0EE0
+#define mmTCO_QUAD0_DEBUG0 0x0EE1
+#define mmTCO_QUAD0_DEBUG1 0x0EE2
+
+
+// Registers from TC block
+
+
+
+// Registers from SQ block
+
+#define mmSQ_GPR_MANAGEMENT 0x0D00
+#define mmSQ_FLOW_CONTROL 0x0D01
+#define mmSQ_INST_STORE_MANAGMENT 0x0D02
+#define mmSQ_RESOURCE_MANAGMENT 0x0D03
+#define mmSQ_EO_RT 0x0D04
+#define mmSQ_DEBUG_MISC 0x0D05
+#define mmSQ_ACTIVITY_METER_CNTL 0x0D06
+#define mmSQ_ACTIVITY_METER_STATUS 0x0D07
+#define mmSQ_INPUT_ARB_PRIORITY 0x0D08
+#define mmSQ_THREAD_ARB_PRIORITY 0x0D09
+#define mmSQ_DEBUG_INPUT_FSM 0x0DAE
+#define mmSQ_DEBUG_CONST_MGR_FSM 0x0DAF
+#define mmSQ_DEBUG_TP_FSM 0x0DB0
+#define mmSQ_DEBUG_FSM_ALU_0 0x0DB1
+#define mmSQ_DEBUG_FSM_ALU_1 0x0DB2
+#define mmSQ_DEBUG_EXP_ALLOC 0x0DB3
+#define mmSQ_DEBUG_PTR_BUFF 0x0DB4
+#define mmSQ_DEBUG_GPR_VTX 0x0DB5
+#define mmSQ_DEBUG_GPR_PIX 0x0DB6
+#define mmSQ_DEBUG_TB_STATUS_SEL 0x0DB7
+#define mmSQ_DEBUG_VTX_TB_0 0x0DB8
+#define mmSQ_DEBUG_VTX_TB_1 0x0DB9
+#define mmSQ_DEBUG_VTX_TB_STATUS_REG 0x0DBA
+#define mmSQ_DEBUG_VTX_TB_STATE_MEM 0x0DBB
+#define mmSQ_DEBUG_PIX_TB_0 0x0DBC
+#define mmSQ_DEBUG_PIX_TB_STATUS_REG_0 0x0DBD
+#define mmSQ_DEBUG_PIX_TB_STATUS_REG_1 0x0DBE
+#define mmSQ_DEBUG_PIX_TB_STATUS_REG_2 0x0DBF
+#define mmSQ_DEBUG_PIX_TB_STATUS_REG_3 0x0DC0
+#define mmSQ_DEBUG_PIX_TB_STATE_MEM 0x0DC1
+#define mmSQ_PERFCOUNTER0_SELECT 0x0DC8
+#define mmSQ_PERFCOUNTER1_SELECT 0x0DC9
+#define mmSQ_PERFCOUNTER2_SELECT 0x0DCA
+#define mmSQ_PERFCOUNTER3_SELECT 0x0DCB
+#define mmSQ_PERFCOUNTER0_LOW 0x0DCC
+#define mmSQ_PERFCOUNTER0_HI 0x0DCD
+#define mmSQ_PERFCOUNTER1_LOW 0x0DCE
+#define mmSQ_PERFCOUNTER1_HI 0x0DCF
+#define mmSQ_PERFCOUNTER2_LOW 0x0DD0
+#define mmSQ_PERFCOUNTER2_HI 0x0DD1
+#define mmSQ_PERFCOUNTER3_LOW 0x0DD2
+#define mmSQ_PERFCOUNTER3_HI 0x0DD3
+#define mmSX_PERFCOUNTER0_SELECT 0x0DD4
+#define mmSX_PERFCOUNTER0_LOW 0x0DD8
+#define mmSX_PERFCOUNTER0_HI 0x0DD9
+#define mmSQ_INSTRUCTION_ALU_0 0x5000
+#define mmSQ_INSTRUCTION_ALU_1 0x5001
+#define mmSQ_INSTRUCTION_ALU_2 0x5002
+#define mmSQ_INSTRUCTION_CF_EXEC_0 0x5080
+#define mmSQ_INSTRUCTION_CF_EXEC_1 0x5081
+#define mmSQ_INSTRUCTION_CF_EXEC_2 0x5082
+#define mmSQ_INSTRUCTION_CF_LOOP_0 0x5083
+#define mmSQ_INSTRUCTION_CF_LOOP_1 0x5084
+#define mmSQ_INSTRUCTION_CF_LOOP_2 0x5085
+#define mmSQ_INSTRUCTION_CF_JMP_CALL_0 0x5086
+#define mmSQ_INSTRUCTION_CF_JMP_CALL_1 0x5087
+#define mmSQ_INSTRUCTION_CF_JMP_CALL_2 0x5088
+#define mmSQ_INSTRUCTION_CF_ALLOC_0 0x5089
+#define mmSQ_INSTRUCTION_CF_ALLOC_1 0x508A
+#define mmSQ_INSTRUCTION_CF_ALLOC_2 0x508B
+#define mmSQ_INSTRUCTION_TFETCH_0 0x5043
+#define mmSQ_INSTRUCTION_TFETCH_1 0x5044
+#define mmSQ_INSTRUCTION_TFETCH_2 0x5045
+#define mmSQ_INSTRUCTION_VFETCH_0 0x5040
+#define mmSQ_INSTRUCTION_VFETCH_1 0x5041
+#define mmSQ_INSTRUCTION_VFETCH_2 0x5042
+#define mmSQ_CONSTANT_0 0x4000
+#define mmSQ_CONSTANT_1 0x4001
+#define mmSQ_CONSTANT_2 0x4002
+#define mmSQ_CONSTANT_3 0x4003
+#define mmSQ_FETCH_0 0x4800
+#define mmSQ_FETCH_1 0x4801
+#define mmSQ_FETCH_2 0x4802
+#define mmSQ_FETCH_3 0x4803
+#define mmSQ_FETCH_4 0x4804
+#define mmSQ_FETCH_5 0x4805
+#define mmSQ_CONSTANT_VFETCH_0 0x4806
+#define mmSQ_CONSTANT_VFETCH_1 0x4808
+#define mmSQ_CONSTANT_T2 0x480C
+#define mmSQ_CONSTANT_T3 0x4812
+#define mmSQ_CF_BOOLEANS 0x4900
+#define mmSQ_CF_LOOP 0x4908
+#define mmSQ_CONSTANT_RT_0 0x4940
+#define mmSQ_CONSTANT_RT_1 0x4941
+#define mmSQ_CONSTANT_RT_2 0x4942
+#define mmSQ_CONSTANT_RT_3 0x4943
+#define mmSQ_FETCH_RT_0 0x4D40
+#define mmSQ_FETCH_RT_1 0x4D41
+#define mmSQ_FETCH_RT_2 0x4D42
+#define mmSQ_FETCH_RT_3 0x4D43
+#define mmSQ_FETCH_RT_4 0x4D44
+#define mmSQ_FETCH_RT_5 0x4D45
+#define mmSQ_CF_RT_BOOLEANS 0x4E00
+#define mmSQ_CF_RT_LOOP 0x4E14
+#define mmSQ_VS_PROGRAM 0x21F7
+#define mmSQ_PS_PROGRAM 0x21F6
+#define mmSQ_CF_PROGRAM_SIZE 0x2315
+#define mmSQ_INTERPOLATOR_CNTL 0x2182
+#define mmSQ_PROGRAM_CNTL 0x2180
+#define mmSQ_WRAPPING_0 0x2183
+#define mmSQ_WRAPPING_1 0x2184
+#define mmSQ_VS_CONST 0x2307
+#define mmSQ_PS_CONST 0x2308
+#define mmSQ_CONTEXT_MISC 0x2181
+#define mmSQ_CF_RD_BASE 0x21F5
+#define mmSQ_DEBUG_MISC_0 0x2309
+#define mmSQ_DEBUG_MISC_1 0x230A
+
+
+// Registers from SX block
+
+
+
+// Registers from MH block
+
+#define mmMH_ARBITER_CONFIG 0x0A40
+#define mmMH_CLNT_AXI_ID_REUSE 0x0A41
+#define mmMH_INTERRUPT_MASK 0x0A42
+#define mmMH_INTERRUPT_STATUS 0x0A43
+#define mmMH_INTERRUPT_CLEAR 0x0A44
+#define mmMH_AXI_ERROR 0x0A45
+#define mmMH_PERFCOUNTER0_SELECT 0x0A46
+#define mmMH_PERFCOUNTER1_SELECT 0x0A4A
+#define mmMH_PERFCOUNTER0_CONFIG 0x0A47
+#define mmMH_PERFCOUNTER1_CONFIG 0x0A4B
+#define mmMH_PERFCOUNTER0_LOW 0x0A48
+#define mmMH_PERFCOUNTER1_LOW 0x0A4C
+#define mmMH_PERFCOUNTER0_HI 0x0A49
+#define mmMH_PERFCOUNTER1_HI 0x0A4D
+#define mmMH_DEBUG_CTRL 0x0A4E
+#define mmMH_DEBUG_DATA 0x0A4F
+#define mmMH_MMU_CONFIG 0x0040
+#define mmMH_MMU_VA_RANGE 0x0041
+#define mmMH_MMU_PT_BASE 0x0042
+#define mmMH_MMU_PAGE_FAULT 0x0043
+#define mmMH_MMU_TRAN_ERROR 0x0044
+#define mmMH_MMU_INVALIDATE 0x0045
+#define mmMH_MMU_MPU_BASE 0x0046
+#define mmMH_MMU_MPU_END 0x0047
+
+
+// Registers from RBBM block
+
+#define mmWAIT_UNTIL 0x05C8
+#define mmRBBM_ISYNC_CNTL 0x05C9
+#define mmRBBM_STATUS 0x05D0
+#define mmRBBM_DSPLY 0x0391
+#define mmRBBM_RENDER_LATEST 0x0392
+#define mmRBBM_RTL_RELEASE 0x0000
+#define mmRBBM_PATCH_RELEASE 0x0001
+#define mmRBBM_AUXILIARY_CONFIG 0x0002
+#define mmRBBM_PERIPHID0 0x03F8
+#define mmRBBM_PERIPHID1 0x03F9
+#define mmRBBM_PERIPHID2 0x03FA
+#define mmRBBM_PERIPHID3 0x03FB
+#define mmRBBM_CNTL 0x003B
+#define mmRBBM_SKEW_CNTL 0x003D
+#define mmRBBM_SOFT_RESET 0x003C
+#define mmRBBM_PM_OVERRIDE1 0x039C
+#define mmRBBM_PM_OVERRIDE2 0x039D
+#define mmGC_SYS_IDLE 0x039E
+#define mmNQWAIT_UNTIL 0x0394
+#define mmRBBM_DEBUG 0x039B
+#define mmRBBM_READ_ERROR 0x03B3
+#define mmRBBM_WAIT_IDLE_CLOCKS 0x03B2
+#define mmRBBM_INT_CNTL 0x03B4
+#define mmRBBM_INT_STATUS 0x03B5
+#define mmRBBM_INT_ACK 0x03B6
+#define mmMASTER_INT_SIGNAL 0x03B7
+#define mmRBBM_PERFCOUNTER1_SELECT 0x0395
+#define mmRBBM_PERFCOUNTER1_LO 0x0397
+#define mmRBBM_PERFCOUNTER1_HI 0x0398
+
+
+// Registers from CP block
+
+#define mmCP_RB_BASE 0x01C0
+#define mmCP_RB_CNTL 0x01C1
+#define mmCP_RB_RPTR_ADDR 0x01C3
+#define mmCP_RB_RPTR 0x01C4
+#define mmCP_RB_RPTR_WR 0x01C7
+#define mmCP_RB_WPTR 0x01C5
+#define mmCP_RB_WPTR_DELAY 0x01C6
+#define mmCP_RB_WPTR_BASE 0x01C8
+#define mmCP_IB1_BASE 0x01CC
+#define mmCP_IB1_BUFSZ 0x01CD
+#define mmCP_IB2_BASE 0x01CE
+#define mmCP_IB2_BUFSZ 0x01CF
+#define mmCP_ST_BASE 0x044D
+#define mmCP_ST_BUFSZ 0x044E
+#define mmCP_QUEUE_THRESHOLDS 0x01D5
+#define mmCP_MEQ_THRESHOLDS 0x01D6
+#define mmCP_CSQ_AVAIL 0x01D7
+#define mmCP_STQ_AVAIL 0x01D8
+#define mmCP_MEQ_AVAIL 0x01D9
+#define mmCP_CSQ_RB_STAT 0x01FD
+#define mmCP_CSQ_IB1_STAT 0x01FE
+#define mmCP_CSQ_IB2_STAT 0x01FF
+#define mmCP_NON_PREFETCH_CNTRS 0x0440
+#define mmCP_STQ_ST_STAT 0x0443
+#define mmCP_MEQ_STAT 0x044F
+#define mmCP_MIU_TAG_STAT 0x0452
+#define mmCP_CMD_INDEX 0x01DA
+#define mmCP_CMD_DATA 0x01DB
+#define mmCP_ME_CNTL 0x01F6
+#define mmCP_ME_STATUS 0x01F7
+#define mmCP_ME_RAM_WADDR 0x01F8
+#define mmCP_ME_RAM_RADDR 0x01F9
+#define mmCP_ME_RAM_DATA 0x01FA
+#define mmCP_ME_RDADDR 0x01EA
+#define mmCP_DEBUG 0x01FC
+#define mmSCRATCH_REG0 0x0578
+#define mmGUI_SCRATCH_REG0 0x0578
+#define mmSCRATCH_REG1 0x0579
+#define mmGUI_SCRATCH_REG1 0x0579
+#define mmSCRATCH_REG2 0x057A
+#define mmGUI_SCRATCH_REG2 0x057A
+#define mmSCRATCH_REG3 0x057B
+#define mmGUI_SCRATCH_REG3 0x057B
+#define mmSCRATCH_REG4 0x057C
+#define mmGUI_SCRATCH_REG4 0x057C
+#define mmSCRATCH_REG5 0x057D
+#define mmGUI_SCRATCH_REG5 0x057D
+#define mmSCRATCH_REG6 0x057E
+#define mmGUI_SCRATCH_REG6 0x057E
+#define mmSCRATCH_REG7 0x057F
+#define mmGUI_SCRATCH_REG7 0x057F
+#define mmSCRATCH_UMSK 0x01DC
+#define mmSCRATCH_ADDR 0x01DD
+#define mmCP_ME_VS_EVENT_SRC 0x0600
+#define mmCP_ME_VS_EVENT_ADDR 0x0601
+#define mmCP_ME_VS_EVENT_DATA 0x0602
+#define mmCP_ME_VS_EVENT_ADDR_SWM 0x0603
+#define mmCP_ME_VS_EVENT_DATA_SWM 0x0604
+#define mmCP_ME_PS_EVENT_SRC 0x0605
+#define mmCP_ME_PS_EVENT_ADDR 0x0606
+#define mmCP_ME_PS_EVENT_DATA 0x0607
+#define mmCP_ME_PS_EVENT_ADDR_SWM 0x0608
+#define mmCP_ME_PS_EVENT_DATA_SWM 0x0609
+#define mmCP_ME_CF_EVENT_SRC 0x060A
+#define mmCP_ME_CF_EVENT_ADDR 0x060B
+#define mmCP_ME_CF_EVENT_DATA 0x060C
+#define mmCP_ME_NRT_ADDR 0x060D
+#define mmCP_ME_NRT_DATA 0x060E
+#define mmCP_ME_VS_FETCH_DONE_SRC 0x0612
+#define mmCP_ME_VS_FETCH_DONE_ADDR 0x0613
+#define mmCP_ME_VS_FETCH_DONE_DATA 0x0614
+#define mmCP_INT_CNTL 0x01F2
+#define mmCP_INT_STATUS 0x01F3
+#define mmCP_INT_ACK 0x01F4
+#define mmCP_PFP_UCODE_ADDR 0x045F
+#define mmCP_PFP_UCODE_DATA 0x0460
+#define mmCP_PERFMON_CNTL 0x01F5
+#define mmCP_PERFCOUNTER_SELECT 0x01E6
+#define mmCP_PERFCOUNTER_LO 0x01E7
+#define mmCP_PERFCOUNTER_HI 0x01E8
+#define mmCP_BIN_MASK_LO 0x0454
+#define mmCP_BIN_MASK_HI 0x0455
+#define mmCP_BIN_SELECT_LO 0x0456
+#define mmCP_BIN_SELECT_HI 0x0457
+#define mmCP_NV_FLAGS_0 0x01EE
+#define mmCP_NV_FLAGS_1 0x01EF
+#define mmCP_NV_FLAGS_2 0x01F0
+#define mmCP_NV_FLAGS_3 0x01F1
+#define mmCP_STATE_DEBUG_INDEX 0x01EC
+#define mmCP_STATE_DEBUG_DATA 0x01ED
+#define mmCP_PROG_COUNTER 0x044B
+#define mmCP_STAT 0x047F
+#define mmBIOS_0_SCRATCH 0x0004
+#define mmBIOS_1_SCRATCH 0x0005
+#define mmBIOS_2_SCRATCH 0x0006
+#define mmBIOS_3_SCRATCH 0x0007
+#define mmBIOS_4_SCRATCH 0x0008
+#define mmBIOS_5_SCRATCH 0x0009
+#define mmBIOS_6_SCRATCH 0x000A
+#define mmBIOS_7_SCRATCH 0x000B
+#define mmBIOS_8_SCRATCH 0x0580
+#define mmBIOS_9_SCRATCH 0x0581
+#define mmBIOS_10_SCRATCH 0x0582
+#define mmBIOS_11_SCRATCH 0x0583
+#define mmBIOS_12_SCRATCH 0x0584
+#define mmBIOS_13_SCRATCH 0x0585
+#define mmBIOS_14_SCRATCH 0x0586
+#define mmBIOS_15_SCRATCH 0x0587
+#define mmCOHER_SIZE_PM4 0x0A29
+#define mmCOHER_BASE_PM4 0x0A2A
+#define mmCOHER_STATUS_PM4 0x0A2B
+#define mmCOHER_SIZE_HOST 0x0A2F
+#define mmCOHER_BASE_HOST 0x0A30
+#define mmCOHER_STATUS_HOST 0x0A31
+#define mmCOHER_DEST_BASE_0 0x2006
+#define mmCOHER_DEST_BASE_1 0x2007
+#define mmCOHER_DEST_BASE_2 0x2008
+#define mmCOHER_DEST_BASE_3 0x2009
+#define mmCOHER_DEST_BASE_4 0x200A
+#define mmCOHER_DEST_BASE_5 0x200B
+#define mmCOHER_DEST_BASE_6 0x200C
+#define mmCOHER_DEST_BASE_7 0x200D
+
+
+// Registers from SC block
+
+
+
+// Registers from BC block
+
+#define mmRB_SURFACE_INFO 0x2000
+#define mmRB_COLOR_INFO 0x2001
+#define mmRB_DEPTH_INFO 0x2002
+#define mmRB_STENCILREFMASK 0x210D
+#define mmRB_ALPHA_REF 0x210E
+#define mmRB_COLOR_MASK 0x2104
+#define mmRB_BLEND_RED 0x2105
+#define mmRB_BLEND_GREEN 0x2106
+#define mmRB_BLEND_BLUE 0x2107
+#define mmRB_BLEND_ALPHA 0x2108
+#define mmRB_FOG_COLOR 0x2109
+#define mmRB_STENCILREFMASK_BF 0x210C
+#define mmRB_DEPTHCONTROL 0x2200
+#define mmRB_BLENDCONTROL 0x2201
+#define mmRB_COLORCONTROL 0x2202
+#define mmRB_MODECONTROL 0x2208
+#define mmRB_COLOR_DEST_MASK 0x2326
+#define mmRB_COPY_CONTROL 0x2318
+#define mmRB_COPY_DEST_BASE 0x2319
+#define mmRB_COPY_DEST_PITCH 0x231A
+#define mmRB_COPY_DEST_INFO 0x231B
+#define mmRB_COPY_DEST_PIXEL_OFFSET 0x231C
+#define mmRB_DEPTH_CLEAR 0x231D
+#define mmRB_SAMPLE_COUNT_CTL 0x2324
+#define mmRB_SAMPLE_COUNT_ADDR 0x2325
+#define mmRB_BC_CONTROL 0x0F01
+#define mmRB_EDRAM_INFO 0x0F02
+#define mmRB_CRC_RD_PORT 0x0F0C
+#define mmRB_CRC_CONTROL 0x0F0D
+#define mmRB_CRC_MASK 0x0F0E
+#define mmRB_PERFCOUNTER0_SELECT 0x0F04
+#define mmRB_PERFCOUNTER0_LOW 0x0F08
+#define mmRB_PERFCOUNTER0_HI 0x0F09
+#define mmRB_TOTAL_SAMPLES 0x0F0F
+#define mmRB_ZPASS_SAMPLES 0x0F10
+#define mmRB_ZFAIL_SAMPLES 0x0F11
+#define mmRB_SFAIL_SAMPLES 0x0F12
+#define mmRB_DEBUG_0 0x0F26
+#define mmRB_DEBUG_1 0x0F27
+#define mmRB_DEBUG_2 0x0F28
+#define mmRB_DEBUG_3 0x0F29
+#define mmRB_DEBUG_4 0x0F2A
+#define mmRB_FLAG_CONTROL 0x0F2B
+#define mmBC_DUMMY_CRAYRB_ENUMS 0x0F15
+#define mmBC_DUMMY_CRAYRB_MOREENUMS 0x0F16
+#endif
diff --git a/drivers/mxc/amd-gpu/include/reg/yamato/14/yamato_random.h b/drivers/mxc/amd-gpu/include/reg/yamato/14/yamato_random.h
new file mode 100644
index 000000000000..7e293b371bcd
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/reg/yamato/14/yamato_random.h
@@ -0,0 +1,221 @@
+/* Copyright (c) 2002,2007-2009, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#if !defined (_yamato_RANDOM_HEADER)
+#define _yamato_RANDOM_HEADER
+
+/*************************************************************
+ * THIS FILE IS AUTOMATICALLY CREATED. DO NOT EDIT THIS FILE.
+ *************************************************************/
+/*******************************************************
+ * PA Enums
+ *******************************************************/
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<SU_PERFCNT_SELECT>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<SC_PERFCNT_SELECT>;
+
+/*******************************************************
+ * VGT Enums
+ *******************************************************/
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<VGT_DI_PRIM_TYPE>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<VGT_DI_SOURCE_SELECT>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<VGT_DI_INDEX_SIZE>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<VGT_DI_SMALL_INDEX>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<VGT_DI_PRE_FETCH_CULL_ENABLE>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<VGT_DI_GRP_CULL_ENABLE>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<VGT_EVENT_TYPE>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<VGT_DMA_SWAP_MODE>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<VGT_PERFCOUNT_SELECT>;
+
+/*******************************************************
+ * TP Enums
+ *******************************************************/
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<TCR_PERFCOUNT_SELECT>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<TP_PERFCOUNT_SELECT>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<TCM_PERFCOUNT_SELECT>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<TCF_PERFCOUNT_SELECT>;
+
+/*******************************************************
+ * TC Enums
+ *******************************************************/
+/*******************************************************
+ * SQ Enums
+ *******************************************************/
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<SQ_PERFCNT_SELECT>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<SX_PERFCNT_SELECT>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<Abs_modifier>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<Exporting>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<ScalarOpcode>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<SwizzleType>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<InputModifier>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<PredicateSelect>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<OperandSelect1>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<VectorOpcode>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<OperandSelect0>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<Ressource_type>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<Instruction_serial>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<VC_type>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<Addressing>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<CFOpcode>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<Allocation_type>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<TexInstOpcode>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<Addressmode>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<TexCoordDenorm>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<SrcSel>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<DstSel>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<MagFilter>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<MinFilter>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<MipFilter>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<AnisoFilter>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<ArbitraryFilter>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<VolMagFilter>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<VolMinFilter>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<PredSelect>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<SampleLocation>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<VertexMode>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<Sample_Cntl>;
+
+/*******************************************************
+ * SX Enums
+ *******************************************************/
+/*******************************************************
+ * MH Enums
+ *******************************************************/
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<MhPerfEncode>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<MmuClntBeh>;
+
+/*******************************************************
+ * RBBM Enums
+ *******************************************************/
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<RBBM_PERFCOUNT1_SEL>;
+
+/*******************************************************
+ * CP Enums
+ *******************************************************/
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<CP_PERFCOUNT_SEL>;
+
+/*******************************************************
+ * SC Enums
+ *******************************************************/
+/*******************************************************
+ * BC Enums
+ *******************************************************/
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<ColorformatX>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<DepthformatX>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<CompareFrag>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<CompareRef>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<StencilOp>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<BlendOpX>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<CombFuncX>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<DitherModeX>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<DitherTypeX>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<EdramMode>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<SurfaceEndian>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<EdramSizeX>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<RB_PERFCNT_SELECT>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<DepthFormat>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<SurfaceSwap>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<DepthArray>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<ColorArray>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<ColorFormat>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<SurfaceNumber>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<SurfaceFormat>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<SurfaceTiling>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<SurfaceArray>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<SurfaceNumberX>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<ColorArrayX>;
+
+#endif /*_yamato_RANDOM_HEADER*/
+
diff --git a/drivers/mxc/amd-gpu/include/reg/yamato/14/yamato_registers.h b/drivers/mxc/amd-gpu/include/reg/yamato/14/yamato_registers.h
new file mode 100644
index 000000000000..b021d446a229
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/reg/yamato/14/yamato_registers.h
@@ -0,0 +1,13962 @@
+/* Copyright (c) 2002,2007-2009, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#if !defined (_yamato_REG_HEADER)
+#define _yamato_REG_HEADER
+
+ union PA_CL_VPORT_XSCALE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VPORT_XSCALE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VPORT_XSCALE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_CL_VPORT_XOFFSET {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VPORT_XOFFSET : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VPORT_XOFFSET : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_CL_VPORT_YSCALE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VPORT_YSCALE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VPORT_YSCALE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_CL_VPORT_YOFFSET {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VPORT_YOFFSET : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VPORT_YOFFSET : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_CL_VPORT_ZSCALE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VPORT_ZSCALE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VPORT_ZSCALE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_CL_VPORT_ZOFFSET {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VPORT_ZOFFSET : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VPORT_ZOFFSET : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_CL_VTE_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VPORT_X_SCALE_ENA : 1;
+ unsigned int VPORT_X_OFFSET_ENA : 1;
+ unsigned int VPORT_Y_SCALE_ENA : 1;
+ unsigned int VPORT_Y_OFFSET_ENA : 1;
+ unsigned int VPORT_Z_SCALE_ENA : 1;
+ unsigned int VPORT_Z_OFFSET_ENA : 1;
+ unsigned int : 2;
+ unsigned int VTX_XY_FMT : 1;
+ unsigned int VTX_Z_FMT : 1;
+ unsigned int VTX_W0_FMT : 1;
+ unsigned int PERFCOUNTER_REF : 1;
+ unsigned int : 20;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 20;
+ unsigned int PERFCOUNTER_REF : 1;
+ unsigned int VTX_W0_FMT : 1;
+ unsigned int VTX_Z_FMT : 1;
+ unsigned int VTX_XY_FMT : 1;
+ unsigned int : 2;
+ unsigned int VPORT_Z_OFFSET_ENA : 1;
+ unsigned int VPORT_Z_SCALE_ENA : 1;
+ unsigned int VPORT_Y_OFFSET_ENA : 1;
+ unsigned int VPORT_Y_SCALE_ENA : 1;
+ unsigned int VPORT_X_OFFSET_ENA : 1;
+ unsigned int VPORT_X_SCALE_ENA : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_CL_CLIP_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 16;
+ unsigned int CLIP_DISABLE : 1;
+ unsigned int : 1;
+ unsigned int BOUNDARY_EDGE_FLAG_ENA : 1;
+ unsigned int DX_CLIP_SPACE_DEF : 1;
+ unsigned int DIS_CLIP_ERR_DETECT : 1;
+ unsigned int VTX_KILL_OR : 1;
+ unsigned int XY_NAN_RETAIN : 1;
+ unsigned int Z_NAN_RETAIN : 1;
+ unsigned int W_NAN_RETAIN : 1;
+ unsigned int : 7;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 7;
+ unsigned int W_NAN_RETAIN : 1;
+ unsigned int Z_NAN_RETAIN : 1;
+ unsigned int XY_NAN_RETAIN : 1;
+ unsigned int VTX_KILL_OR : 1;
+ unsigned int DIS_CLIP_ERR_DETECT : 1;
+ unsigned int DX_CLIP_SPACE_DEF : 1;
+ unsigned int BOUNDARY_EDGE_FLAG_ENA : 1;
+ unsigned int : 1;
+ unsigned int CLIP_DISABLE : 1;
+ unsigned int : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_CL_GB_VERT_CLIP_ADJ {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DATA_REGISTER : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int DATA_REGISTER : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_CL_GB_VERT_DISC_ADJ {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DATA_REGISTER : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int DATA_REGISTER : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_CL_GB_HORZ_CLIP_ADJ {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DATA_REGISTER : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int DATA_REGISTER : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_CL_GB_HORZ_DISC_ADJ {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DATA_REGISTER : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int DATA_REGISTER : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_CL_ENHANCE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CLIP_VTX_REORDER_ENA : 1;
+ unsigned int : 27;
+ unsigned int ECO_SPARE3 : 1;
+ unsigned int ECO_SPARE2 : 1;
+ unsigned int ECO_SPARE1 : 1;
+ unsigned int ECO_SPARE0 : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int ECO_SPARE0 : 1;
+ unsigned int ECO_SPARE1 : 1;
+ unsigned int ECO_SPARE2 : 1;
+ unsigned int ECO_SPARE3 : 1;
+ unsigned int : 27;
+ unsigned int CLIP_VTX_REORDER_ENA : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_ENHANCE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 28;
+ unsigned int ECO_SPARE3 : 1;
+ unsigned int ECO_SPARE2 : 1;
+ unsigned int ECO_SPARE1 : 1;
+ unsigned int ECO_SPARE0 : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int ECO_SPARE0 : 1;
+ unsigned int ECO_SPARE1 : 1;
+ unsigned int ECO_SPARE2 : 1;
+ unsigned int ECO_SPARE3 : 1;
+ unsigned int : 28;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_VTX_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PIX_CENTER : 1;
+ unsigned int ROUND_MODE : 2;
+ unsigned int QUANT_MODE : 3;
+ unsigned int : 26;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 26;
+ unsigned int QUANT_MODE : 3;
+ unsigned int ROUND_MODE : 2;
+ unsigned int PIX_CENTER : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_POINT_SIZE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int HEIGHT : 16;
+ unsigned int WIDTH : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int WIDTH : 16;
+ unsigned int HEIGHT : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_POINT_MINMAX {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MIN_SIZE : 16;
+ unsigned int MAX_SIZE : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int MAX_SIZE : 16;
+ unsigned int MIN_SIZE : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_LINE_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int WIDTH : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int WIDTH : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_SC_MODE_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CULL_FRONT : 1;
+ unsigned int CULL_BACK : 1;
+ unsigned int FACE : 1;
+ unsigned int POLY_MODE : 2;
+ unsigned int POLYMODE_FRONT_PTYPE : 3;
+ unsigned int POLYMODE_BACK_PTYPE : 3;
+ unsigned int POLY_OFFSET_FRONT_ENABLE : 1;
+ unsigned int POLY_OFFSET_BACK_ENABLE : 1;
+ unsigned int POLY_OFFSET_PARA_ENABLE : 1;
+ unsigned int : 1;
+ unsigned int MSAA_ENABLE : 1;
+ unsigned int VTX_WINDOW_OFFSET_ENABLE : 1;
+ unsigned int : 1;
+ unsigned int LINE_STIPPLE_ENABLE : 1;
+ unsigned int PROVOKING_VTX_LAST : 1;
+ unsigned int PERSP_CORR_DIS : 1;
+ unsigned int MULTI_PRIM_IB_ENA : 1;
+ unsigned int : 1;
+ unsigned int QUAD_ORDER_ENABLE : 1;
+ unsigned int : 1;
+ unsigned int WAIT_RB_IDLE_ALL_TRI : 1;
+ unsigned int WAIT_RB_IDLE_FIRST_TRI_NEW_STATE : 1;
+ unsigned int : 5;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 5;
+ unsigned int WAIT_RB_IDLE_FIRST_TRI_NEW_STATE : 1;
+ unsigned int WAIT_RB_IDLE_ALL_TRI : 1;
+ unsigned int : 1;
+ unsigned int QUAD_ORDER_ENABLE : 1;
+ unsigned int : 1;
+ unsigned int MULTI_PRIM_IB_ENA : 1;
+ unsigned int PERSP_CORR_DIS : 1;
+ unsigned int PROVOKING_VTX_LAST : 1;
+ unsigned int LINE_STIPPLE_ENABLE : 1;
+ unsigned int : 1;
+ unsigned int VTX_WINDOW_OFFSET_ENABLE : 1;
+ unsigned int MSAA_ENABLE : 1;
+ unsigned int : 1;
+ unsigned int POLY_OFFSET_PARA_ENABLE : 1;
+ unsigned int POLY_OFFSET_BACK_ENABLE : 1;
+ unsigned int POLY_OFFSET_FRONT_ENABLE : 1;
+ unsigned int POLYMODE_BACK_PTYPE : 3;
+ unsigned int POLYMODE_FRONT_PTYPE : 3;
+ unsigned int POLY_MODE : 2;
+ unsigned int FACE : 1;
+ unsigned int CULL_BACK : 1;
+ unsigned int CULL_FRONT : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_POLY_OFFSET_FRONT_SCALE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SCALE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int SCALE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_POLY_OFFSET_FRONT_OFFSET {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int OFFSET : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int OFFSET : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_POLY_OFFSET_BACK_SCALE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SCALE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int SCALE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_POLY_OFFSET_BACK_OFFSET {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int OFFSET : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int OFFSET : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_PERFCOUNTER0_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_SEL : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERF_SEL : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_PERFCOUNTER1_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_SEL : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERF_SEL : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_PERFCOUNTER2_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_SEL : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERF_SEL : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_PERFCOUNTER3_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_SEL : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERF_SEL : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_PERFCOUNTER0_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERF_COUNT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_PERFCOUNTER0_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERF_COUNT : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_PERFCOUNTER1_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERF_COUNT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_PERFCOUNTER1_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERF_COUNT : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_PERFCOUNTER2_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERF_COUNT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_PERFCOUNTER2_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERF_COUNT : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_PERFCOUNTER3_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERF_COUNT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_PERFCOUNTER3_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERF_COUNT : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_WINDOW_OFFSET {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int WINDOW_X_OFFSET : 15;
+ unsigned int : 1;
+ unsigned int WINDOW_Y_OFFSET : 15;
+ unsigned int : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 1;
+ unsigned int WINDOW_Y_OFFSET : 15;
+ unsigned int : 1;
+ unsigned int WINDOW_X_OFFSET : 15;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_AA_CONFIG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MSAA_NUM_SAMPLES : 3;
+ unsigned int : 10;
+ unsigned int MAX_SAMPLE_DIST : 4;
+ unsigned int : 15;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 15;
+ unsigned int MAX_SAMPLE_DIST : 4;
+ unsigned int : 10;
+ unsigned int MSAA_NUM_SAMPLES : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_AA_MASK {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int AA_MASK : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int AA_MASK : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_LINE_STIPPLE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int LINE_PATTERN : 16;
+ unsigned int REPEAT_COUNT : 8;
+ unsigned int : 4;
+ unsigned int PATTERN_BIT_ORDER : 1;
+ unsigned int AUTO_RESET_CNTL : 2;
+ unsigned int : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 1;
+ unsigned int AUTO_RESET_CNTL : 2;
+ unsigned int PATTERN_BIT_ORDER : 1;
+ unsigned int : 4;
+ unsigned int REPEAT_COUNT : 8;
+ unsigned int LINE_PATTERN : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_LINE_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BRES_CNTL : 8;
+ unsigned int USE_BRES_CNTL : 1;
+ unsigned int EXPAND_LINE_WIDTH : 1;
+ unsigned int LAST_PIXEL : 1;
+ unsigned int : 21;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 21;
+ unsigned int LAST_PIXEL : 1;
+ unsigned int EXPAND_LINE_WIDTH : 1;
+ unsigned int USE_BRES_CNTL : 1;
+ unsigned int BRES_CNTL : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_WINDOW_SCISSOR_TL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TL_X : 14;
+ unsigned int : 2;
+ unsigned int TL_Y : 14;
+ unsigned int : 1;
+ unsigned int WINDOW_OFFSET_DISABLE : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int WINDOW_OFFSET_DISABLE : 1;
+ unsigned int : 1;
+ unsigned int TL_Y : 14;
+ unsigned int : 2;
+ unsigned int TL_X : 14;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_WINDOW_SCISSOR_BR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BR_X : 14;
+ unsigned int : 2;
+ unsigned int BR_Y : 14;
+ unsigned int : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 2;
+ unsigned int BR_Y : 14;
+ unsigned int : 2;
+ unsigned int BR_X : 14;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_SCREEN_SCISSOR_TL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TL_X : 15;
+ unsigned int : 1;
+ unsigned int TL_Y : 15;
+ unsigned int : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 1;
+ unsigned int TL_Y : 15;
+ unsigned int : 1;
+ unsigned int TL_X : 15;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_SCREEN_SCISSOR_BR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BR_X : 15;
+ unsigned int : 1;
+ unsigned int BR_Y : 15;
+ unsigned int : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 1;
+ unsigned int BR_Y : 15;
+ unsigned int : 1;
+ unsigned int BR_X : 15;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_VIZ_QUERY {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VIZ_QUERY_ENA : 1;
+ unsigned int VIZ_QUERY_ID : 5;
+ unsigned int : 1;
+ unsigned int KILL_PIX_POST_EARLY_Z : 1;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int KILL_PIX_POST_EARLY_Z : 1;
+ unsigned int : 1;
+ unsigned int VIZ_QUERY_ID : 5;
+ unsigned int VIZ_QUERY_ENA : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_VIZ_QUERY_STATUS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int STATUS_BITS : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int STATUS_BITS : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_LINE_STIPPLE_STATE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CURRENT_PTR : 4;
+ unsigned int : 4;
+ unsigned int CURRENT_COUNT : 8;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int CURRENT_COUNT : 8;
+ unsigned int : 4;
+ unsigned int CURRENT_PTR : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_PERFCOUNTER0_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_SEL : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERF_SEL : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_PERFCOUNTER0_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERF_COUNT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_PERFCOUNTER0_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERF_COUNT : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_CL_CNTL_STATUS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 31;
+ unsigned int CL_BUSY : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int CL_BUSY : 1;
+ unsigned int : 31;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_CNTL_STATUS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 31;
+ unsigned int SU_BUSY : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int SU_BUSY : 1;
+ unsigned int : 31;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_CNTL_STATUS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 31;
+ unsigned int SC_BUSY : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int SC_BUSY : 1;
+ unsigned int : 31;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_DEBUG_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SU_DEBUG_INDX : 5;
+ unsigned int : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 27;
+ unsigned int SU_DEBUG_INDX : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_DEBUG_DATA {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DATA : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int DATA : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CLIPPER_DEBUG_REG00 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int clip_ga_bc_fifo_write : 1;
+ unsigned int clip_ga_bc_fifo_full : 1;
+ unsigned int clip_to_ga_fifo_write : 1;
+ unsigned int clip_to_ga_fifo_full : 1;
+ unsigned int primic_to_clprim_fifo_empty : 1;
+ unsigned int primic_to_clprim_fifo_full : 1;
+ unsigned int clip_to_outsm_fifo_empty : 1;
+ unsigned int clip_to_outsm_fifo_full : 1;
+ unsigned int vgt_to_clipp_fifo_empty : 1;
+ unsigned int vgt_to_clipp_fifo_full : 1;
+ unsigned int vgt_to_clips_fifo_empty : 1;
+ unsigned int vgt_to_clips_fifo_full : 1;
+ unsigned int clipcode_fifo_fifo_empty : 1;
+ unsigned int clipcode_fifo_full : 1;
+ unsigned int vte_out_clip_fifo_fifo_empty : 1;
+ unsigned int vte_out_clip_fifo_fifo_full : 1;
+ unsigned int vte_out_orig_fifo_fifo_empty : 1;
+ unsigned int vte_out_orig_fifo_fifo_full : 1;
+ unsigned int ccgen_to_clipcc_fifo_empty : 1;
+ unsigned int ccgen_to_clipcc_fifo_full : 1;
+ unsigned int ALWAYS_ZERO : 12;
+#else /* !defined(qLittleEndian) */
+ unsigned int ALWAYS_ZERO : 12;
+ unsigned int ccgen_to_clipcc_fifo_full : 1;
+ unsigned int ccgen_to_clipcc_fifo_empty : 1;
+ unsigned int vte_out_orig_fifo_fifo_full : 1;
+ unsigned int vte_out_orig_fifo_fifo_empty : 1;
+ unsigned int vte_out_clip_fifo_fifo_full : 1;
+ unsigned int vte_out_clip_fifo_fifo_empty : 1;
+ unsigned int clipcode_fifo_full : 1;
+ unsigned int clipcode_fifo_fifo_empty : 1;
+ unsigned int vgt_to_clips_fifo_full : 1;
+ unsigned int vgt_to_clips_fifo_empty : 1;
+ unsigned int vgt_to_clipp_fifo_full : 1;
+ unsigned int vgt_to_clipp_fifo_empty : 1;
+ unsigned int clip_to_outsm_fifo_full : 1;
+ unsigned int clip_to_outsm_fifo_empty : 1;
+ unsigned int primic_to_clprim_fifo_full : 1;
+ unsigned int primic_to_clprim_fifo_empty : 1;
+ unsigned int clip_to_ga_fifo_full : 1;
+ unsigned int clip_to_ga_fifo_write : 1;
+ unsigned int clip_ga_bc_fifo_full : 1;
+ unsigned int clip_ga_bc_fifo_write : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CLIPPER_DEBUG_REG01 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int clip_to_outsm_end_of_packet : 1;
+ unsigned int clip_to_outsm_first_prim_of_slot : 1;
+ unsigned int clip_to_outsm_deallocate_slot : 3;
+ unsigned int clip_to_outsm_clipped_prim : 1;
+ unsigned int clip_to_outsm_null_primitive : 1;
+ unsigned int clip_to_outsm_vertex_store_indx_2 : 4;
+ unsigned int clip_to_outsm_vertex_store_indx_1 : 4;
+ unsigned int clip_to_outsm_vertex_store_indx_0 : 4;
+ unsigned int clip_vert_vte_valid : 3;
+ unsigned int vte_out_clip_rd_vertex_store_indx : 2;
+ unsigned int ALWAYS_ZERO : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int ALWAYS_ZERO : 8;
+ unsigned int vte_out_clip_rd_vertex_store_indx : 2;
+ unsigned int clip_vert_vte_valid : 3;
+ unsigned int clip_to_outsm_vertex_store_indx_0 : 4;
+ unsigned int clip_to_outsm_vertex_store_indx_1 : 4;
+ unsigned int clip_to_outsm_vertex_store_indx_2 : 4;
+ unsigned int clip_to_outsm_null_primitive : 1;
+ unsigned int clip_to_outsm_clipped_prim : 1;
+ unsigned int clip_to_outsm_deallocate_slot : 3;
+ unsigned int clip_to_outsm_first_prim_of_slot : 1;
+ unsigned int clip_to_outsm_end_of_packet : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CLIPPER_DEBUG_REG02 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ALWAYS_ZERO1 : 21;
+ unsigned int clipsm0_clip_to_clipga_clip_to_outsm_cnt : 3;
+ unsigned int ALWAYS_ZERO0 : 7;
+ unsigned int clipsm0_clprim_to_clip_prim_valid : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int clipsm0_clprim_to_clip_prim_valid : 1;
+ unsigned int ALWAYS_ZERO0 : 7;
+ unsigned int clipsm0_clip_to_clipga_clip_to_outsm_cnt : 3;
+ unsigned int ALWAYS_ZERO1 : 21;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CLIPPER_DEBUG_REG03 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ALWAYS_ZERO3 : 3;
+ unsigned int clipsm0_clprim_to_clip_clip_primitive : 1;
+ unsigned int ALWAYS_ZERO2 : 3;
+ unsigned int clipsm0_clprim_to_clip_null_primitive : 1;
+ unsigned int ALWAYS_ZERO1 : 12;
+ unsigned int clipsm0_clprim_to_clip_clip_code_or : 6;
+ unsigned int ALWAYS_ZERO0 : 6;
+#else /* !defined(qLittleEndian) */
+ unsigned int ALWAYS_ZERO0 : 6;
+ unsigned int clipsm0_clprim_to_clip_clip_code_or : 6;
+ unsigned int ALWAYS_ZERO1 : 12;
+ unsigned int clipsm0_clprim_to_clip_null_primitive : 1;
+ unsigned int ALWAYS_ZERO2 : 3;
+ unsigned int clipsm0_clprim_to_clip_clip_primitive : 1;
+ unsigned int ALWAYS_ZERO3 : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CLIPPER_DEBUG_REG04 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ALWAYS_ZERO2 : 3;
+ unsigned int clipsm0_clprim_to_clip_first_prim_of_slot : 1;
+ unsigned int ALWAYS_ZERO1 : 3;
+ unsigned int clipsm0_clprim_to_clip_event : 1;
+ unsigned int ALWAYS_ZERO0 : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int ALWAYS_ZERO0 : 24;
+ unsigned int clipsm0_clprim_to_clip_event : 1;
+ unsigned int ALWAYS_ZERO1 : 3;
+ unsigned int clipsm0_clprim_to_clip_first_prim_of_slot : 1;
+ unsigned int ALWAYS_ZERO2 : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CLIPPER_DEBUG_REG05 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int clipsm0_clprim_to_clip_state_var_indx : 1;
+ unsigned int ALWAYS_ZERO3 : 2;
+ unsigned int clipsm0_clprim_to_clip_deallocate_slot : 3;
+ unsigned int clipsm0_clprim_to_clip_event_id : 6;
+ unsigned int clipsm0_clprim_to_clip_vertex_store_indx_2 : 4;
+ unsigned int ALWAYS_ZERO2 : 2;
+ unsigned int clipsm0_clprim_to_clip_vertex_store_indx_1 : 4;
+ unsigned int ALWAYS_ZERO1 : 2;
+ unsigned int clipsm0_clprim_to_clip_vertex_store_indx_0 : 4;
+ unsigned int ALWAYS_ZERO0 : 4;
+#else /* !defined(qLittleEndian) */
+ unsigned int ALWAYS_ZERO0 : 4;
+ unsigned int clipsm0_clprim_to_clip_vertex_store_indx_0 : 4;
+ unsigned int ALWAYS_ZERO1 : 2;
+ unsigned int clipsm0_clprim_to_clip_vertex_store_indx_1 : 4;
+ unsigned int ALWAYS_ZERO2 : 2;
+ unsigned int clipsm0_clprim_to_clip_vertex_store_indx_2 : 4;
+ unsigned int clipsm0_clprim_to_clip_event_id : 6;
+ unsigned int clipsm0_clprim_to_clip_deallocate_slot : 3;
+ unsigned int ALWAYS_ZERO3 : 2;
+ unsigned int clipsm0_clprim_to_clip_state_var_indx : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CLIPPER_DEBUG_REG09 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int clprim_in_back_event : 1;
+ unsigned int outputclprimtoclip_null_primitive : 1;
+ unsigned int clprim_in_back_vertex_store_indx_2 : 4;
+ unsigned int ALWAYS_ZERO2 : 2;
+ unsigned int clprim_in_back_vertex_store_indx_1 : 4;
+ unsigned int ALWAYS_ZERO1 : 2;
+ unsigned int clprim_in_back_vertex_store_indx_0 : 4;
+ unsigned int ALWAYS_ZERO0 : 2;
+ unsigned int prim_back_valid : 1;
+ unsigned int clip_priority_seq_indx_out_cnt : 4;
+ unsigned int outsm_clr_rd_orig_vertices : 2;
+ unsigned int outsm_clr_rd_clipsm_wait : 1;
+ unsigned int outsm_clr_fifo_empty : 1;
+ unsigned int outsm_clr_fifo_full : 1;
+ unsigned int clip_priority_seq_indx_load : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int clip_priority_seq_indx_load : 2;
+ unsigned int outsm_clr_fifo_full : 1;
+ unsigned int outsm_clr_fifo_empty : 1;
+ unsigned int outsm_clr_rd_clipsm_wait : 1;
+ unsigned int outsm_clr_rd_orig_vertices : 2;
+ unsigned int clip_priority_seq_indx_out_cnt : 4;
+ unsigned int prim_back_valid : 1;
+ unsigned int ALWAYS_ZERO0 : 2;
+ unsigned int clprim_in_back_vertex_store_indx_0 : 4;
+ unsigned int ALWAYS_ZERO1 : 2;
+ unsigned int clprim_in_back_vertex_store_indx_1 : 4;
+ unsigned int ALWAYS_ZERO2 : 2;
+ unsigned int clprim_in_back_vertex_store_indx_2 : 4;
+ unsigned int outputclprimtoclip_null_primitive : 1;
+ unsigned int clprim_in_back_event : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CLIPPER_DEBUG_REG10 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int primic_to_clprim_fifo_vertex_store_indx_2 : 4;
+ unsigned int ALWAYS_ZERO3 : 2;
+ unsigned int primic_to_clprim_fifo_vertex_store_indx_1 : 4;
+ unsigned int ALWAYS_ZERO2 : 2;
+ unsigned int primic_to_clprim_fifo_vertex_store_indx_0 : 4;
+ unsigned int ALWAYS_ZERO1 : 2;
+ unsigned int clprim_in_back_state_var_indx : 1;
+ unsigned int ALWAYS_ZERO0 : 2;
+ unsigned int clprim_in_back_end_of_packet : 1;
+ unsigned int clprim_in_back_first_prim_of_slot : 1;
+ unsigned int clprim_in_back_deallocate_slot : 3;
+ unsigned int clprim_in_back_event_id : 6;
+#else /* !defined(qLittleEndian) */
+ unsigned int clprim_in_back_event_id : 6;
+ unsigned int clprim_in_back_deallocate_slot : 3;
+ unsigned int clprim_in_back_first_prim_of_slot : 1;
+ unsigned int clprim_in_back_end_of_packet : 1;
+ unsigned int ALWAYS_ZERO0 : 2;
+ unsigned int clprim_in_back_state_var_indx : 1;
+ unsigned int ALWAYS_ZERO1 : 2;
+ unsigned int primic_to_clprim_fifo_vertex_store_indx_0 : 4;
+ unsigned int ALWAYS_ZERO2 : 2;
+ unsigned int primic_to_clprim_fifo_vertex_store_indx_1 : 4;
+ unsigned int ALWAYS_ZERO3 : 2;
+ unsigned int primic_to_clprim_fifo_vertex_store_indx_2 : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CLIPPER_DEBUG_REG11 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int vertval_bits_vertex_vertex_store_msb : 4;
+ unsigned int ALWAYS_ZERO : 28;
+#else /* !defined(qLittleEndian) */
+ unsigned int ALWAYS_ZERO : 28;
+ unsigned int vertval_bits_vertex_vertex_store_msb : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CLIPPER_DEBUG_REG12 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int clip_priority_available_vte_out_clip : 2;
+ unsigned int ALWAYS_ZERO2 : 3;
+ unsigned int clip_vertex_fifo_empty : 1;
+ unsigned int clip_priority_available_clip_verts : 5;
+ unsigned int ALWAYS_ZERO1 : 4;
+ unsigned int vertval_bits_vertex_cc_next_valid : 4;
+ unsigned int clipcc_vertex_store_indx : 2;
+ unsigned int primic_to_clprim_valid : 1;
+ unsigned int ALWAYS_ZERO0 : 10;
+#else /* !defined(qLittleEndian) */
+ unsigned int ALWAYS_ZERO0 : 10;
+ unsigned int primic_to_clprim_valid : 1;
+ unsigned int clipcc_vertex_store_indx : 2;
+ unsigned int vertval_bits_vertex_cc_next_valid : 4;
+ unsigned int ALWAYS_ZERO1 : 4;
+ unsigned int clip_priority_available_clip_verts : 5;
+ unsigned int clip_vertex_fifo_empty : 1;
+ unsigned int ALWAYS_ZERO2 : 3;
+ unsigned int clip_priority_available_vte_out_clip : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CLIPPER_DEBUG_REG13 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int sm0_clip_vert_cnt : 4;
+ unsigned int sm0_prim_end_state : 7;
+ unsigned int ALWAYS_ZERO1 : 3;
+ unsigned int sm0_vertex_clip_cnt : 4;
+ unsigned int sm0_inv_to_clip_data_valid_1 : 1;
+ unsigned int sm0_inv_to_clip_data_valid_0 : 1;
+ unsigned int sm0_current_state : 7;
+ unsigned int ALWAYS_ZERO0 : 5;
+#else /* !defined(qLittleEndian) */
+ unsigned int ALWAYS_ZERO0 : 5;
+ unsigned int sm0_current_state : 7;
+ unsigned int sm0_inv_to_clip_data_valid_0 : 1;
+ unsigned int sm0_inv_to_clip_data_valid_1 : 1;
+ unsigned int sm0_vertex_clip_cnt : 4;
+ unsigned int ALWAYS_ZERO1 : 3;
+ unsigned int sm0_prim_end_state : 7;
+ unsigned int sm0_clip_vert_cnt : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SXIFCCG_DEBUG_REG0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int nan_kill_flag : 4;
+ unsigned int position_address : 3;
+ unsigned int ALWAYS_ZERO2 : 3;
+ unsigned int point_address : 3;
+ unsigned int ALWAYS_ZERO1 : 3;
+ unsigned int sx_pending_rd_state_var_indx : 1;
+ unsigned int ALWAYS_ZERO0 : 2;
+ unsigned int sx_pending_rd_req_mask : 4;
+ unsigned int sx_pending_rd_pci : 7;
+ unsigned int sx_pending_rd_aux_inc : 1;
+ unsigned int sx_pending_rd_aux_sel : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int sx_pending_rd_aux_sel : 1;
+ unsigned int sx_pending_rd_aux_inc : 1;
+ unsigned int sx_pending_rd_pci : 7;
+ unsigned int sx_pending_rd_req_mask : 4;
+ unsigned int ALWAYS_ZERO0 : 2;
+ unsigned int sx_pending_rd_state_var_indx : 1;
+ unsigned int ALWAYS_ZERO1 : 3;
+ unsigned int point_address : 3;
+ unsigned int ALWAYS_ZERO2 : 3;
+ unsigned int position_address : 3;
+ unsigned int nan_kill_flag : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SXIFCCG_DEBUG_REG1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ALWAYS_ZERO3 : 2;
+ unsigned int sx_to_pa_empty : 2;
+ unsigned int available_positions : 3;
+ unsigned int ALWAYS_ZERO2 : 4;
+ unsigned int sx_pending_advance : 1;
+ unsigned int sx_receive_indx : 3;
+ unsigned int statevar_bits_sxpa_aux_vector : 1;
+ unsigned int ALWAYS_ZERO1 : 4;
+ unsigned int aux_sel : 1;
+ unsigned int ALWAYS_ZERO0 : 2;
+ unsigned int pasx_req_cnt : 2;
+ unsigned int param_cache_base : 7;
+#else /* !defined(qLittleEndian) */
+ unsigned int param_cache_base : 7;
+ unsigned int pasx_req_cnt : 2;
+ unsigned int ALWAYS_ZERO0 : 2;
+ unsigned int aux_sel : 1;
+ unsigned int ALWAYS_ZERO1 : 4;
+ unsigned int statevar_bits_sxpa_aux_vector : 1;
+ unsigned int sx_receive_indx : 3;
+ unsigned int sx_pending_advance : 1;
+ unsigned int ALWAYS_ZERO2 : 4;
+ unsigned int available_positions : 3;
+ unsigned int sx_to_pa_empty : 2;
+ unsigned int ALWAYS_ZERO3 : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SXIFCCG_DEBUG_REG2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int sx_sent : 1;
+ unsigned int ALWAYS_ZERO3 : 1;
+ unsigned int sx_aux : 1;
+ unsigned int sx_request_indx : 6;
+ unsigned int req_active_verts : 7;
+ unsigned int ALWAYS_ZERO2 : 1;
+ unsigned int vgt_to_ccgen_state_var_indx : 1;
+ unsigned int ALWAYS_ZERO1 : 2;
+ unsigned int vgt_to_ccgen_active_verts : 2;
+ unsigned int ALWAYS_ZERO0 : 4;
+ unsigned int req_active_verts_loaded : 1;
+ unsigned int sx_pending_fifo_empty : 1;
+ unsigned int sx_pending_fifo_full : 1;
+ unsigned int sx_pending_fifo_contents : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int sx_pending_fifo_contents : 3;
+ unsigned int sx_pending_fifo_full : 1;
+ unsigned int sx_pending_fifo_empty : 1;
+ unsigned int req_active_verts_loaded : 1;
+ unsigned int ALWAYS_ZERO0 : 4;
+ unsigned int vgt_to_ccgen_active_verts : 2;
+ unsigned int ALWAYS_ZERO1 : 2;
+ unsigned int vgt_to_ccgen_state_var_indx : 1;
+ unsigned int ALWAYS_ZERO2 : 1;
+ unsigned int req_active_verts : 7;
+ unsigned int sx_request_indx : 6;
+ unsigned int sx_aux : 1;
+ unsigned int ALWAYS_ZERO3 : 1;
+ unsigned int sx_sent : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SXIFCCG_DEBUG_REG3 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int vertex_fifo_entriesavailable : 4;
+ unsigned int ALWAYS_ZERO3 : 1;
+ unsigned int available_positions : 3;
+ unsigned int ALWAYS_ZERO2 : 4;
+ unsigned int current_state : 2;
+ unsigned int vertex_fifo_empty : 1;
+ unsigned int vertex_fifo_full : 1;
+ unsigned int ALWAYS_ZERO1 : 2;
+ unsigned int sx0_receive_fifo_empty : 1;
+ unsigned int sx0_receive_fifo_full : 1;
+ unsigned int vgt_to_ccgen_fifo_empty : 1;
+ unsigned int vgt_to_ccgen_fifo_full : 1;
+ unsigned int ALWAYS_ZERO0 : 10;
+#else /* !defined(qLittleEndian) */
+ unsigned int ALWAYS_ZERO0 : 10;
+ unsigned int vgt_to_ccgen_fifo_full : 1;
+ unsigned int vgt_to_ccgen_fifo_empty : 1;
+ unsigned int sx0_receive_fifo_full : 1;
+ unsigned int sx0_receive_fifo_empty : 1;
+ unsigned int ALWAYS_ZERO1 : 2;
+ unsigned int vertex_fifo_full : 1;
+ unsigned int vertex_fifo_empty : 1;
+ unsigned int current_state : 2;
+ unsigned int ALWAYS_ZERO2 : 4;
+ unsigned int available_positions : 3;
+ unsigned int ALWAYS_ZERO3 : 1;
+ unsigned int vertex_fifo_entriesavailable : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SETUP_DEBUG_REG0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int su_cntl_state : 5;
+ unsigned int pmode_state : 6;
+ unsigned int ge_stallb : 1;
+ unsigned int geom_enable : 1;
+ unsigned int su_clip_baryc_rtr : 1;
+ unsigned int su_clip_rtr : 1;
+ unsigned int pfifo_busy : 1;
+ unsigned int su_cntl_busy : 1;
+ unsigned int geom_busy : 1;
+ unsigned int : 14;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 14;
+ unsigned int geom_busy : 1;
+ unsigned int su_cntl_busy : 1;
+ unsigned int pfifo_busy : 1;
+ unsigned int su_clip_rtr : 1;
+ unsigned int su_clip_baryc_rtr : 1;
+ unsigned int geom_enable : 1;
+ unsigned int ge_stallb : 1;
+ unsigned int pmode_state : 6;
+ unsigned int su_cntl_state : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SETUP_DEBUG_REG1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int y_sort0_gated_17_4 : 14;
+ unsigned int x_sort0_gated_17_4 : 14;
+ unsigned int : 4;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 4;
+ unsigned int x_sort0_gated_17_4 : 14;
+ unsigned int y_sort0_gated_17_4 : 14;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SETUP_DEBUG_REG2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int y_sort1_gated_17_4 : 14;
+ unsigned int x_sort1_gated_17_4 : 14;
+ unsigned int : 4;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 4;
+ unsigned int x_sort1_gated_17_4 : 14;
+ unsigned int y_sort1_gated_17_4 : 14;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SETUP_DEBUG_REG3 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int y_sort2_gated_17_4 : 14;
+ unsigned int x_sort2_gated_17_4 : 14;
+ unsigned int : 4;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 4;
+ unsigned int x_sort2_gated_17_4 : 14;
+ unsigned int y_sort2_gated_17_4 : 14;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SETUP_DEBUG_REG4 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int attr_indx_sort0_gated : 11;
+ unsigned int null_prim_gated : 1;
+ unsigned int backfacing_gated : 1;
+ unsigned int st_indx_gated : 3;
+ unsigned int clipped_gated : 1;
+ unsigned int dealloc_slot_gated : 3;
+ unsigned int xmajor_gated : 1;
+ unsigned int diamond_rule_gated : 2;
+ unsigned int type_gated : 3;
+ unsigned int fpov_gated : 1;
+ unsigned int pmode_prim_gated : 1;
+ unsigned int event_gated : 1;
+ unsigned int eop_gated : 1;
+ unsigned int : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 2;
+ unsigned int eop_gated : 1;
+ unsigned int event_gated : 1;
+ unsigned int pmode_prim_gated : 1;
+ unsigned int fpov_gated : 1;
+ unsigned int type_gated : 3;
+ unsigned int diamond_rule_gated : 2;
+ unsigned int xmajor_gated : 1;
+ unsigned int dealloc_slot_gated : 3;
+ unsigned int clipped_gated : 1;
+ unsigned int st_indx_gated : 3;
+ unsigned int backfacing_gated : 1;
+ unsigned int null_prim_gated : 1;
+ unsigned int attr_indx_sort0_gated : 11;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SETUP_DEBUG_REG5 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int attr_indx_sort2_gated : 11;
+ unsigned int attr_indx_sort1_gated : 11;
+ unsigned int provoking_vtx_gated : 2;
+ unsigned int event_id_gated : 5;
+ unsigned int : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 3;
+ unsigned int event_id_gated : 5;
+ unsigned int provoking_vtx_gated : 2;
+ unsigned int attr_indx_sort1_gated : 11;
+ unsigned int attr_indx_sort2_gated : 11;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_DEBUG_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SC_DEBUG_INDX : 5;
+ unsigned int : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 27;
+ unsigned int SC_DEBUG_INDX : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_DEBUG_DATA {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DATA : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int DATA : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SC_DEBUG_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int pa_freeze_b1 : 1;
+ unsigned int pa_sc_valid : 1;
+ unsigned int pa_sc_phase : 3;
+ unsigned int cntx_cnt : 7;
+ unsigned int decr_cntx_cnt : 1;
+ unsigned int incr_cntx_cnt : 1;
+ unsigned int : 17;
+ unsigned int trigger : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int trigger : 1;
+ unsigned int : 17;
+ unsigned int incr_cntx_cnt : 1;
+ unsigned int decr_cntx_cnt : 1;
+ unsigned int cntx_cnt : 7;
+ unsigned int pa_sc_phase : 3;
+ unsigned int pa_sc_valid : 1;
+ unsigned int pa_freeze_b1 : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SC_DEBUG_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int em_state : 3;
+ unsigned int em1_data_ready : 1;
+ unsigned int em2_data_ready : 1;
+ unsigned int move_em1_to_em2 : 1;
+ unsigned int ef_data_ready : 1;
+ unsigned int ef_state : 2;
+ unsigned int pipe_valid : 1;
+ unsigned int : 21;
+ unsigned int trigger : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int trigger : 1;
+ unsigned int : 21;
+ unsigned int pipe_valid : 1;
+ unsigned int ef_state : 2;
+ unsigned int ef_data_ready : 1;
+ unsigned int move_em1_to_em2 : 1;
+ unsigned int em2_data_ready : 1;
+ unsigned int em1_data_ready : 1;
+ unsigned int em_state : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SC_DEBUG_2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int rc_rtr_dly : 1;
+ unsigned int qmask_ff_alm_full_d1 : 1;
+ unsigned int : 1;
+ unsigned int pipe_freeze_b : 1;
+ unsigned int prim_rts : 1;
+ unsigned int next_prim_rts_dly : 1;
+ unsigned int next_prim_rtr_dly : 1;
+ unsigned int pre_stage1_rts_d1 : 1;
+ unsigned int stage0_rts : 1;
+ unsigned int phase_rts_dly : 1;
+ unsigned int : 5;
+ unsigned int end_of_prim_s1_dly : 1;
+ unsigned int pass_empty_prim_s1 : 1;
+ unsigned int event_id_s1 : 5;
+ unsigned int event_s1 : 1;
+ unsigned int : 8;
+ unsigned int trigger : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int trigger : 1;
+ unsigned int : 8;
+ unsigned int event_s1 : 1;
+ unsigned int event_id_s1 : 5;
+ unsigned int pass_empty_prim_s1 : 1;
+ unsigned int end_of_prim_s1_dly : 1;
+ unsigned int : 5;
+ unsigned int phase_rts_dly : 1;
+ unsigned int stage0_rts : 1;
+ unsigned int pre_stage1_rts_d1 : 1;
+ unsigned int next_prim_rtr_dly : 1;
+ unsigned int next_prim_rts_dly : 1;
+ unsigned int prim_rts : 1;
+ unsigned int pipe_freeze_b : 1;
+ unsigned int : 1;
+ unsigned int qmask_ff_alm_full_d1 : 1;
+ unsigned int rc_rtr_dly : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SC_DEBUG_3 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int x_curr_s1 : 11;
+ unsigned int y_curr_s1 : 11;
+ unsigned int : 9;
+ unsigned int trigger : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int trigger : 1;
+ unsigned int : 9;
+ unsigned int y_curr_s1 : 11;
+ unsigned int x_curr_s1 : 11;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SC_DEBUG_4 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int y_end_s1 : 14;
+ unsigned int y_start_s1 : 14;
+ unsigned int y_dir_s1 : 1;
+ unsigned int : 2;
+ unsigned int trigger : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int trigger : 1;
+ unsigned int : 2;
+ unsigned int y_dir_s1 : 1;
+ unsigned int y_start_s1 : 14;
+ unsigned int y_end_s1 : 14;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SC_DEBUG_5 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int x_end_s1 : 14;
+ unsigned int x_start_s1 : 14;
+ unsigned int x_dir_s1 : 1;
+ unsigned int : 2;
+ unsigned int trigger : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int trigger : 1;
+ unsigned int : 2;
+ unsigned int x_dir_s1 : 1;
+ unsigned int x_start_s1 : 14;
+ unsigned int x_end_s1 : 14;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SC_DEBUG_6 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int z_ff_empty : 1;
+ unsigned int qmcntl_ff_empty : 1;
+ unsigned int xy_ff_empty : 1;
+ unsigned int event_flag : 1;
+ unsigned int z_mask_needed : 1;
+ unsigned int state : 3;
+ unsigned int state_delayed : 3;
+ unsigned int data_valid : 1;
+ unsigned int data_valid_d : 1;
+ unsigned int tilex_delayed : 9;
+ unsigned int tiley_delayed : 9;
+ unsigned int trigger : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int trigger : 1;
+ unsigned int tiley_delayed : 9;
+ unsigned int tilex_delayed : 9;
+ unsigned int data_valid_d : 1;
+ unsigned int data_valid : 1;
+ unsigned int state_delayed : 3;
+ unsigned int state : 3;
+ unsigned int z_mask_needed : 1;
+ unsigned int event_flag : 1;
+ unsigned int xy_ff_empty : 1;
+ unsigned int qmcntl_ff_empty : 1;
+ unsigned int z_ff_empty : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SC_DEBUG_7 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int event_flag : 1;
+ unsigned int deallocate : 3;
+ unsigned int fpos : 1;
+ unsigned int sr_prim_we : 1;
+ unsigned int last_tile : 1;
+ unsigned int tile_ff_we : 1;
+ unsigned int qs_data_valid : 1;
+ unsigned int qs_q0_y : 2;
+ unsigned int qs_q0_x : 2;
+ unsigned int qs_q0_valid : 1;
+ unsigned int prim_ff_we : 1;
+ unsigned int tile_ff_re : 1;
+ unsigned int fw_prim_data_valid : 1;
+ unsigned int last_quad_of_tile : 1;
+ unsigned int first_quad_of_tile : 1;
+ unsigned int first_quad_of_prim : 1;
+ unsigned int new_prim : 1;
+ unsigned int load_new_tile_data : 1;
+ unsigned int state : 2;
+ unsigned int fifos_ready : 1;
+ unsigned int : 6;
+ unsigned int trigger : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int trigger : 1;
+ unsigned int : 6;
+ unsigned int fifos_ready : 1;
+ unsigned int state : 2;
+ unsigned int load_new_tile_data : 1;
+ unsigned int new_prim : 1;
+ unsigned int first_quad_of_prim : 1;
+ unsigned int first_quad_of_tile : 1;
+ unsigned int last_quad_of_tile : 1;
+ unsigned int fw_prim_data_valid : 1;
+ unsigned int tile_ff_re : 1;
+ unsigned int prim_ff_we : 1;
+ unsigned int qs_q0_valid : 1;
+ unsigned int qs_q0_x : 2;
+ unsigned int qs_q0_y : 2;
+ unsigned int qs_data_valid : 1;
+ unsigned int tile_ff_we : 1;
+ unsigned int last_tile : 1;
+ unsigned int sr_prim_we : 1;
+ unsigned int fpos : 1;
+ unsigned int deallocate : 3;
+ unsigned int event_flag : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SC_DEBUG_8 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int sample_last : 1;
+ unsigned int sample_mask : 4;
+ unsigned int sample_y : 2;
+ unsigned int sample_x : 2;
+ unsigned int sample_send : 1;
+ unsigned int next_cycle : 2;
+ unsigned int ez_sample_ff_full : 1;
+ unsigned int rb_sc_samp_rtr : 1;
+ unsigned int num_samples : 2;
+ unsigned int last_quad_of_tile : 1;
+ unsigned int last_quad_of_prim : 1;
+ unsigned int first_quad_of_prim : 1;
+ unsigned int sample_we : 1;
+ unsigned int fpos : 1;
+ unsigned int event_id : 5;
+ unsigned int event_flag : 1;
+ unsigned int fw_prim_data_valid : 1;
+ unsigned int : 3;
+ unsigned int trigger : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int trigger : 1;
+ unsigned int : 3;
+ unsigned int fw_prim_data_valid : 1;
+ unsigned int event_flag : 1;
+ unsigned int event_id : 5;
+ unsigned int fpos : 1;
+ unsigned int sample_we : 1;
+ unsigned int first_quad_of_prim : 1;
+ unsigned int last_quad_of_prim : 1;
+ unsigned int last_quad_of_tile : 1;
+ unsigned int num_samples : 2;
+ unsigned int rb_sc_samp_rtr : 1;
+ unsigned int ez_sample_ff_full : 1;
+ unsigned int next_cycle : 2;
+ unsigned int sample_send : 1;
+ unsigned int sample_x : 2;
+ unsigned int sample_y : 2;
+ unsigned int sample_mask : 4;
+ unsigned int sample_last : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SC_DEBUG_9 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int rb_sc_send : 1;
+ unsigned int rb_sc_ez_mask : 4;
+ unsigned int fifo_data_ready : 1;
+ unsigned int early_z_enable : 1;
+ unsigned int mask_state : 2;
+ unsigned int next_ez_mask : 16;
+ unsigned int mask_ready : 1;
+ unsigned int drop_sample : 1;
+ unsigned int fetch_new_sample_data : 1;
+ unsigned int fetch_new_ez_sample_mask : 1;
+ unsigned int pkr_fetch_new_sample_data : 1;
+ unsigned int pkr_fetch_new_prim_data : 1;
+ unsigned int trigger : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int trigger : 1;
+ unsigned int pkr_fetch_new_prim_data : 1;
+ unsigned int pkr_fetch_new_sample_data : 1;
+ unsigned int fetch_new_ez_sample_mask : 1;
+ unsigned int fetch_new_sample_data : 1;
+ unsigned int drop_sample : 1;
+ unsigned int mask_ready : 1;
+ unsigned int next_ez_mask : 16;
+ unsigned int mask_state : 2;
+ unsigned int early_z_enable : 1;
+ unsigned int fifo_data_ready : 1;
+ unsigned int rb_sc_ez_mask : 4;
+ unsigned int rb_sc_send : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SC_DEBUG_10 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int combined_sample_mask : 16;
+ unsigned int : 15;
+ unsigned int trigger : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int trigger : 1;
+ unsigned int : 15;
+ unsigned int combined_sample_mask : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SC_DEBUG_11 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ez_sample_data_ready : 1;
+ unsigned int pkr_fetch_new_sample_data : 1;
+ unsigned int ez_prim_data_ready : 1;
+ unsigned int pkr_fetch_new_prim_data : 1;
+ unsigned int iterator_input_fz : 1;
+ unsigned int packer_send_quads : 1;
+ unsigned int packer_send_cmd : 1;
+ unsigned int packer_send_event : 1;
+ unsigned int next_state : 3;
+ unsigned int state : 3;
+ unsigned int stall : 1;
+ unsigned int : 16;
+ unsigned int trigger : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int trigger : 1;
+ unsigned int : 16;
+ unsigned int stall : 1;
+ unsigned int state : 3;
+ unsigned int next_state : 3;
+ unsigned int packer_send_event : 1;
+ unsigned int packer_send_cmd : 1;
+ unsigned int packer_send_quads : 1;
+ unsigned int iterator_input_fz : 1;
+ unsigned int pkr_fetch_new_prim_data : 1;
+ unsigned int ez_prim_data_ready : 1;
+ unsigned int pkr_fetch_new_sample_data : 1;
+ unsigned int ez_sample_data_ready : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SC_DEBUG_12 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SQ_iterator_free_buff : 1;
+ unsigned int event_id : 5;
+ unsigned int event_flag : 1;
+ unsigned int itercmdfifo_busy_nc_dly : 1;
+ unsigned int itercmdfifo_full : 1;
+ unsigned int itercmdfifo_empty : 1;
+ unsigned int iter_ds_one_clk_command : 1;
+ unsigned int iter_ds_end_of_prim0 : 1;
+ unsigned int iter_ds_end_of_vector : 1;
+ unsigned int iter_qdhit0 : 1;
+ unsigned int bc_use_centers_reg : 1;
+ unsigned int bc_output_xy_reg : 1;
+ unsigned int iter_phase_out : 2;
+ unsigned int iter_phase_reg : 2;
+ unsigned int iterator_SP_valid : 1;
+ unsigned int eopv_reg : 1;
+ unsigned int one_clk_cmd_reg : 1;
+ unsigned int iter_dx_end_of_prim : 1;
+ unsigned int : 7;
+ unsigned int trigger : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int trigger : 1;
+ unsigned int : 7;
+ unsigned int iter_dx_end_of_prim : 1;
+ unsigned int one_clk_cmd_reg : 1;
+ unsigned int eopv_reg : 1;
+ unsigned int iterator_SP_valid : 1;
+ unsigned int iter_phase_reg : 2;
+ unsigned int iter_phase_out : 2;
+ unsigned int bc_output_xy_reg : 1;
+ unsigned int bc_use_centers_reg : 1;
+ unsigned int iter_qdhit0 : 1;
+ unsigned int iter_ds_end_of_vector : 1;
+ unsigned int iter_ds_end_of_prim0 : 1;
+ unsigned int iter_ds_one_clk_command : 1;
+ unsigned int itercmdfifo_empty : 1;
+ unsigned int itercmdfifo_full : 1;
+ unsigned int itercmdfifo_busy_nc_dly : 1;
+ unsigned int event_flag : 1;
+ unsigned int event_id : 5;
+ unsigned int SQ_iterator_free_buff : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union GFX_COPY_STATE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SRC_STATE_ID : 1;
+ unsigned int : 31;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 31;
+ unsigned int SRC_STATE_ID : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DRAW_INITIATOR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PRIM_TYPE : 6;
+ unsigned int SOURCE_SELECT : 2;
+ unsigned int : 3;
+ unsigned int INDEX_SIZE : 1;
+ unsigned int NOT_EOP : 1;
+ unsigned int SMALL_INDEX : 1;
+ unsigned int PRE_FETCH_CULL_ENABLE : 1;
+ unsigned int GRP_CULL_ENABLE : 1;
+ unsigned int NUM_INDICES : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int NUM_INDICES : 16;
+ unsigned int GRP_CULL_ENABLE : 1;
+ unsigned int PRE_FETCH_CULL_ENABLE : 1;
+ unsigned int SMALL_INDEX : 1;
+ unsigned int NOT_EOP : 1;
+ unsigned int INDEX_SIZE : 1;
+ unsigned int : 3;
+ unsigned int SOURCE_SELECT : 2;
+ unsigned int PRIM_TYPE : 6;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_EVENT_INITIATOR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int EVENT_TYPE : 6;
+ unsigned int : 26;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 26;
+ unsigned int EVENT_TYPE : 6;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DMA_BASE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BASE_ADDR : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BASE_ADDR : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DMA_SIZE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int NUM_WORDS : 24;
+ unsigned int : 6;
+ unsigned int SWAP_MODE : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int SWAP_MODE : 2;
+ unsigned int : 6;
+ unsigned int NUM_WORDS : 24;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_BIN_BASE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIN_BASE_ADDR : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIN_BASE_ADDR : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_BIN_SIZE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int NUM_WORDS : 24;
+ unsigned int : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 8;
+ unsigned int NUM_WORDS : 24;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_CURRENT_BIN_ID_MIN {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int COLUMN : 3;
+ unsigned int ROW : 3;
+ unsigned int GUARD_BAND : 3;
+ unsigned int : 23;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 23;
+ unsigned int GUARD_BAND : 3;
+ unsigned int ROW : 3;
+ unsigned int COLUMN : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_CURRENT_BIN_ID_MAX {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int COLUMN : 3;
+ unsigned int ROW : 3;
+ unsigned int GUARD_BAND : 3;
+ unsigned int : 23;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 23;
+ unsigned int GUARD_BAND : 3;
+ unsigned int ROW : 3;
+ unsigned int COLUMN : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_IMMED_DATA {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DATA : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int DATA : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_MAX_VTX_INDX {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MAX_INDX : 24;
+ unsigned int : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 8;
+ unsigned int MAX_INDX : 24;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_MIN_VTX_INDX {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MIN_INDX : 24;
+ unsigned int : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 8;
+ unsigned int MIN_INDX : 24;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_INDX_OFFSET {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int INDX_OFFSET : 24;
+ unsigned int : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 8;
+ unsigned int INDX_OFFSET : 24;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_VERTEX_REUSE_BLOCK_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VTX_REUSE_DEPTH : 3;
+ unsigned int : 29;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 29;
+ unsigned int VTX_REUSE_DEPTH : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_OUT_DEALLOC_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DEALLOC_DIST : 2;
+ unsigned int : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 30;
+ unsigned int DEALLOC_DIST : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_MULTI_PRIM_IB_RESET_INDX {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RESET_INDX : 24;
+ unsigned int : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 8;
+ unsigned int RESET_INDX : 24;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_ENHANCE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MISC : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int MISC : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_VTX_VECT_EJECT_REG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PRIM_COUNT : 5;
+ unsigned int : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 27;
+ unsigned int PRIM_COUNT : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_LAST_COPY_STATE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SRC_STATE_ID : 1;
+ unsigned int : 15;
+ unsigned int DST_STATE_ID : 1;
+ unsigned int : 15;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 15;
+ unsigned int DST_STATE_ID : 1;
+ unsigned int : 15;
+ unsigned int SRC_STATE_ID : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VGT_DEBUG_INDX : 5;
+ unsigned int : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 27;
+ unsigned int VGT_DEBUG_INDX : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_DATA {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DATA : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int DATA : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_CNTL_STATUS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VGT_BUSY : 1;
+ unsigned int VGT_DMA_BUSY : 1;
+ unsigned int VGT_DMA_REQ_BUSY : 1;
+ unsigned int VGT_GRP_BUSY : 1;
+ unsigned int VGT_VR_BUSY : 1;
+ unsigned int VGT_BIN_BUSY : 1;
+ unsigned int VGT_PT_BUSY : 1;
+ unsigned int VGT_OUT_BUSY : 1;
+ unsigned int VGT_OUT_INDX_BUSY : 1;
+ unsigned int : 23;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 23;
+ unsigned int VGT_OUT_INDX_BUSY : 1;
+ unsigned int VGT_OUT_BUSY : 1;
+ unsigned int VGT_PT_BUSY : 1;
+ unsigned int VGT_BIN_BUSY : 1;
+ unsigned int VGT_VR_BUSY : 1;
+ unsigned int VGT_GRP_BUSY : 1;
+ unsigned int VGT_DMA_REQ_BUSY : 1;
+ unsigned int VGT_DMA_BUSY : 1;
+ unsigned int VGT_BUSY : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_REG0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int te_grp_busy : 1;
+ unsigned int pt_grp_busy : 1;
+ unsigned int vr_grp_busy : 1;
+ unsigned int dma_request_busy : 1;
+ unsigned int out_busy : 1;
+ unsigned int grp_backend_busy : 1;
+ unsigned int grp_busy : 1;
+ unsigned int dma_busy : 1;
+ unsigned int rbiu_dma_request_busy : 1;
+ unsigned int rbiu_busy : 1;
+ unsigned int vgt_no_dma_busy_extended : 1;
+ unsigned int vgt_no_dma_busy : 1;
+ unsigned int vgt_busy_extended : 1;
+ unsigned int vgt_busy : 1;
+ unsigned int rbbm_skid_fifo_busy_out : 1;
+ unsigned int VGT_RBBM_no_dma_busy : 1;
+ unsigned int VGT_RBBM_busy : 1;
+ unsigned int : 15;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 15;
+ unsigned int VGT_RBBM_busy : 1;
+ unsigned int VGT_RBBM_no_dma_busy : 1;
+ unsigned int rbbm_skid_fifo_busy_out : 1;
+ unsigned int vgt_busy : 1;
+ unsigned int vgt_busy_extended : 1;
+ unsigned int vgt_no_dma_busy : 1;
+ unsigned int vgt_no_dma_busy_extended : 1;
+ unsigned int rbiu_busy : 1;
+ unsigned int rbiu_dma_request_busy : 1;
+ unsigned int dma_busy : 1;
+ unsigned int grp_busy : 1;
+ unsigned int grp_backend_busy : 1;
+ unsigned int out_busy : 1;
+ unsigned int dma_request_busy : 1;
+ unsigned int vr_grp_busy : 1;
+ unsigned int pt_grp_busy : 1;
+ unsigned int te_grp_busy : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_REG1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int out_te_data_read : 1;
+ unsigned int te_out_data_valid : 1;
+ unsigned int out_pt_prim_read : 1;
+ unsigned int pt_out_prim_valid : 1;
+ unsigned int out_pt_data_read : 1;
+ unsigned int pt_out_indx_valid : 1;
+ unsigned int out_vr_prim_read : 1;
+ unsigned int vr_out_prim_valid : 1;
+ unsigned int out_vr_indx_read : 1;
+ unsigned int vr_out_indx_valid : 1;
+ unsigned int te_grp_read : 1;
+ unsigned int grp_te_valid : 1;
+ unsigned int pt_grp_read : 1;
+ unsigned int grp_pt_valid : 1;
+ unsigned int vr_grp_read : 1;
+ unsigned int grp_vr_valid : 1;
+ unsigned int grp_dma_read : 1;
+ unsigned int dma_grp_valid : 1;
+ unsigned int grp_rbiu_di_read : 1;
+ unsigned int rbiu_grp_di_valid : 1;
+ unsigned int MH_VGT_rtr : 1;
+ unsigned int VGT_MH_send : 1;
+ unsigned int PA_VGT_clip_s_rtr : 1;
+ unsigned int VGT_PA_clip_s_send : 1;
+ unsigned int PA_VGT_clip_p_rtr : 1;
+ unsigned int VGT_PA_clip_p_send : 1;
+ unsigned int PA_VGT_clip_v_rtr : 1;
+ unsigned int VGT_PA_clip_v_send : 1;
+ unsigned int SQ_VGT_rtr : 1;
+ unsigned int VGT_SQ_send : 1;
+ unsigned int mh_vgt_tag_7_q : 1;
+ unsigned int : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 1;
+ unsigned int mh_vgt_tag_7_q : 1;
+ unsigned int VGT_SQ_send : 1;
+ unsigned int SQ_VGT_rtr : 1;
+ unsigned int VGT_PA_clip_v_send : 1;
+ unsigned int PA_VGT_clip_v_rtr : 1;
+ unsigned int VGT_PA_clip_p_send : 1;
+ unsigned int PA_VGT_clip_p_rtr : 1;
+ unsigned int VGT_PA_clip_s_send : 1;
+ unsigned int PA_VGT_clip_s_rtr : 1;
+ unsigned int VGT_MH_send : 1;
+ unsigned int MH_VGT_rtr : 1;
+ unsigned int rbiu_grp_di_valid : 1;
+ unsigned int grp_rbiu_di_read : 1;
+ unsigned int dma_grp_valid : 1;
+ unsigned int grp_dma_read : 1;
+ unsigned int grp_vr_valid : 1;
+ unsigned int vr_grp_read : 1;
+ unsigned int grp_pt_valid : 1;
+ unsigned int pt_grp_read : 1;
+ unsigned int grp_te_valid : 1;
+ unsigned int te_grp_read : 1;
+ unsigned int vr_out_indx_valid : 1;
+ unsigned int out_vr_indx_read : 1;
+ unsigned int vr_out_prim_valid : 1;
+ unsigned int out_vr_prim_read : 1;
+ unsigned int pt_out_indx_valid : 1;
+ unsigned int out_pt_data_read : 1;
+ unsigned int pt_out_prim_valid : 1;
+ unsigned int out_pt_prim_read : 1;
+ unsigned int te_out_data_valid : 1;
+ unsigned int out_te_data_read : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_REG3 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int vgt_clk_en : 1;
+ unsigned int reg_fifos_clk_en : 1;
+ unsigned int : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 30;
+ unsigned int reg_fifos_clk_en : 1;
+ unsigned int vgt_clk_en : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_REG6 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int shifter_byte_count_q : 5;
+ unsigned int right_word_indx_q : 5;
+ unsigned int input_data_valid : 1;
+ unsigned int input_data_xfer : 1;
+ unsigned int next_shift_is_vect_1_q : 1;
+ unsigned int next_shift_is_vect_1_d : 1;
+ unsigned int next_shift_is_vect_1_pre_d : 1;
+ unsigned int space_avail_from_shift : 1;
+ unsigned int shifter_first_load : 1;
+ unsigned int di_state_sel_q : 1;
+ unsigned int shifter_waiting_for_first_load_q : 1;
+ unsigned int di_first_group_flag_q : 1;
+ unsigned int di_event_flag_q : 1;
+ unsigned int read_draw_initiator : 1;
+ unsigned int loading_di_requires_shifter : 1;
+ unsigned int last_shift_of_packet : 1;
+ unsigned int last_decr_of_packet : 1;
+ unsigned int extract_vector : 1;
+ unsigned int shift_vect_rtr : 1;
+ unsigned int destination_rtr : 1;
+ unsigned int grp_trigger : 1;
+ unsigned int : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 3;
+ unsigned int grp_trigger : 1;
+ unsigned int destination_rtr : 1;
+ unsigned int shift_vect_rtr : 1;
+ unsigned int extract_vector : 1;
+ unsigned int last_decr_of_packet : 1;
+ unsigned int last_shift_of_packet : 1;
+ unsigned int loading_di_requires_shifter : 1;
+ unsigned int read_draw_initiator : 1;
+ unsigned int di_event_flag_q : 1;
+ unsigned int di_first_group_flag_q : 1;
+ unsigned int shifter_waiting_for_first_load_q : 1;
+ unsigned int di_state_sel_q : 1;
+ unsigned int shifter_first_load : 1;
+ unsigned int space_avail_from_shift : 1;
+ unsigned int next_shift_is_vect_1_pre_d : 1;
+ unsigned int next_shift_is_vect_1_d : 1;
+ unsigned int next_shift_is_vect_1_q : 1;
+ unsigned int input_data_xfer : 1;
+ unsigned int input_data_valid : 1;
+ unsigned int right_word_indx_q : 5;
+ unsigned int shifter_byte_count_q : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_REG7 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int di_index_counter_q : 16;
+ unsigned int shift_amount_no_extract : 4;
+ unsigned int shift_amount_extract : 4;
+ unsigned int di_prim_type_q : 6;
+ unsigned int current_source_sel : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int current_source_sel : 2;
+ unsigned int di_prim_type_q : 6;
+ unsigned int shift_amount_extract : 4;
+ unsigned int shift_amount_no_extract : 4;
+ unsigned int di_index_counter_q : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_REG8 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int current_source_sel : 2;
+ unsigned int left_word_indx_q : 5;
+ unsigned int input_data_cnt : 5;
+ unsigned int input_data_lsw : 5;
+ unsigned int input_data_msw : 5;
+ unsigned int next_small_stride_shift_limit_q : 5;
+ unsigned int current_small_stride_shift_limit_q : 5;
+#else /* !defined(qLittleEndian) */
+ unsigned int current_small_stride_shift_limit_q : 5;
+ unsigned int next_small_stride_shift_limit_q : 5;
+ unsigned int input_data_msw : 5;
+ unsigned int input_data_lsw : 5;
+ unsigned int input_data_cnt : 5;
+ unsigned int left_word_indx_q : 5;
+ unsigned int current_source_sel : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_REG9 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int next_stride_q : 5;
+ unsigned int next_stride_d : 5;
+ unsigned int current_shift_q : 5;
+ unsigned int current_shift_d : 5;
+ unsigned int current_stride_q : 5;
+ unsigned int current_stride_d : 5;
+ unsigned int grp_trigger : 1;
+ unsigned int : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 1;
+ unsigned int grp_trigger : 1;
+ unsigned int current_stride_d : 5;
+ unsigned int current_stride_q : 5;
+ unsigned int current_shift_d : 5;
+ unsigned int current_shift_q : 5;
+ unsigned int next_stride_d : 5;
+ unsigned int next_stride_q : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_REG10 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int temp_derived_di_prim_type_t0 : 1;
+ unsigned int temp_derived_di_small_index_t0 : 1;
+ unsigned int temp_derived_di_cull_enable_t0 : 1;
+ unsigned int temp_derived_di_pre_fetch_cull_enable_t0 : 1;
+ unsigned int di_state_sel_q : 1;
+ unsigned int last_decr_of_packet : 1;
+ unsigned int bin_valid : 1;
+ unsigned int read_block : 1;
+ unsigned int grp_bgrp_last_bit_read : 1;
+ unsigned int last_bit_enable_q : 1;
+ unsigned int last_bit_end_di_q : 1;
+ unsigned int selected_data : 8;
+ unsigned int mask_input_data : 8;
+ unsigned int gap_q : 1;
+ unsigned int temp_mini_reset_z : 1;
+ unsigned int temp_mini_reset_y : 1;
+ unsigned int temp_mini_reset_x : 1;
+ unsigned int grp_trigger : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int grp_trigger : 1;
+ unsigned int temp_mini_reset_x : 1;
+ unsigned int temp_mini_reset_y : 1;
+ unsigned int temp_mini_reset_z : 1;
+ unsigned int gap_q : 1;
+ unsigned int mask_input_data : 8;
+ unsigned int selected_data : 8;
+ unsigned int last_bit_end_di_q : 1;
+ unsigned int last_bit_enable_q : 1;
+ unsigned int grp_bgrp_last_bit_read : 1;
+ unsigned int read_block : 1;
+ unsigned int bin_valid : 1;
+ unsigned int last_decr_of_packet : 1;
+ unsigned int di_state_sel_q : 1;
+ unsigned int temp_derived_di_pre_fetch_cull_enable_t0 : 1;
+ unsigned int temp_derived_di_cull_enable_t0 : 1;
+ unsigned int temp_derived_di_small_index_t0 : 1;
+ unsigned int temp_derived_di_prim_type_t0 : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_REG12 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int shifter_byte_count_q : 5;
+ unsigned int right_word_indx_q : 5;
+ unsigned int input_data_valid : 1;
+ unsigned int input_data_xfer : 1;
+ unsigned int next_shift_is_vect_1_q : 1;
+ unsigned int next_shift_is_vect_1_d : 1;
+ unsigned int next_shift_is_vect_1_pre_d : 1;
+ unsigned int space_avail_from_shift : 1;
+ unsigned int shifter_first_load : 1;
+ unsigned int di_state_sel_q : 1;
+ unsigned int shifter_waiting_for_first_load_q : 1;
+ unsigned int di_first_group_flag_q : 1;
+ unsigned int di_event_flag_q : 1;
+ unsigned int read_draw_initiator : 1;
+ unsigned int loading_di_requires_shifter : 1;
+ unsigned int last_shift_of_packet : 1;
+ unsigned int last_decr_of_packet : 1;
+ unsigned int extract_vector : 1;
+ unsigned int shift_vect_rtr : 1;
+ unsigned int destination_rtr : 1;
+ unsigned int bgrp_trigger : 1;
+ unsigned int : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 3;
+ unsigned int bgrp_trigger : 1;
+ unsigned int destination_rtr : 1;
+ unsigned int shift_vect_rtr : 1;
+ unsigned int extract_vector : 1;
+ unsigned int last_decr_of_packet : 1;
+ unsigned int last_shift_of_packet : 1;
+ unsigned int loading_di_requires_shifter : 1;
+ unsigned int read_draw_initiator : 1;
+ unsigned int di_event_flag_q : 1;
+ unsigned int di_first_group_flag_q : 1;
+ unsigned int shifter_waiting_for_first_load_q : 1;
+ unsigned int di_state_sel_q : 1;
+ unsigned int shifter_first_load : 1;
+ unsigned int space_avail_from_shift : 1;
+ unsigned int next_shift_is_vect_1_pre_d : 1;
+ unsigned int next_shift_is_vect_1_d : 1;
+ unsigned int next_shift_is_vect_1_q : 1;
+ unsigned int input_data_xfer : 1;
+ unsigned int input_data_valid : 1;
+ unsigned int right_word_indx_q : 5;
+ unsigned int shifter_byte_count_q : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_REG13 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int di_index_counter_q : 16;
+ unsigned int shift_amount_no_extract : 4;
+ unsigned int shift_amount_extract : 4;
+ unsigned int di_prim_type_q : 6;
+ unsigned int current_source_sel : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int current_source_sel : 2;
+ unsigned int di_prim_type_q : 6;
+ unsigned int shift_amount_extract : 4;
+ unsigned int shift_amount_no_extract : 4;
+ unsigned int di_index_counter_q : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_REG14 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int current_source_sel : 2;
+ unsigned int left_word_indx_q : 5;
+ unsigned int input_data_cnt : 5;
+ unsigned int input_data_lsw : 5;
+ unsigned int input_data_msw : 5;
+ unsigned int next_small_stride_shift_limit_q : 5;
+ unsigned int current_small_stride_shift_limit_q : 5;
+#else /* !defined(qLittleEndian) */
+ unsigned int current_small_stride_shift_limit_q : 5;
+ unsigned int next_small_stride_shift_limit_q : 5;
+ unsigned int input_data_msw : 5;
+ unsigned int input_data_lsw : 5;
+ unsigned int input_data_cnt : 5;
+ unsigned int left_word_indx_q : 5;
+ unsigned int current_source_sel : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_REG15 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int next_stride_q : 5;
+ unsigned int next_stride_d : 5;
+ unsigned int current_shift_q : 5;
+ unsigned int current_shift_d : 5;
+ unsigned int current_stride_q : 5;
+ unsigned int current_stride_d : 5;
+ unsigned int bgrp_trigger : 1;
+ unsigned int : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 1;
+ unsigned int bgrp_trigger : 1;
+ unsigned int current_stride_d : 5;
+ unsigned int current_stride_q : 5;
+ unsigned int current_shift_d : 5;
+ unsigned int current_shift_q : 5;
+ unsigned int next_stride_d : 5;
+ unsigned int next_stride_q : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_REG16 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int bgrp_cull_fetch_fifo_full : 1;
+ unsigned int bgrp_cull_fetch_fifo_empty : 1;
+ unsigned int dma_bgrp_cull_fetch_read : 1;
+ unsigned int bgrp_cull_fetch_fifo_we : 1;
+ unsigned int bgrp_byte_mask_fifo_full : 1;
+ unsigned int bgrp_byte_mask_fifo_empty : 1;
+ unsigned int bgrp_byte_mask_fifo_re_q : 1;
+ unsigned int bgrp_byte_mask_fifo_we : 1;
+ unsigned int bgrp_dma_mask_kill : 1;
+ unsigned int bgrp_grp_bin_valid : 1;
+ unsigned int rst_last_bit : 1;
+ unsigned int current_state_q : 1;
+ unsigned int old_state_q : 1;
+ unsigned int old_state_en : 1;
+ unsigned int prev_last_bit_q : 1;
+ unsigned int dbl_last_bit_q : 1;
+ unsigned int last_bit_block_q : 1;
+ unsigned int ast_bit_block2_q : 1;
+ unsigned int load_empty_reg : 1;
+ unsigned int bgrp_grp_byte_mask_rdata : 8;
+ unsigned int dma_bgrp_dma_data_fifo_rptr : 2;
+ unsigned int top_di_pre_fetch_cull_enable : 1;
+ unsigned int top_di_grp_cull_enable_q : 1;
+ unsigned int bgrp_trigger : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int bgrp_trigger : 1;
+ unsigned int top_di_grp_cull_enable_q : 1;
+ unsigned int top_di_pre_fetch_cull_enable : 1;
+ unsigned int dma_bgrp_dma_data_fifo_rptr : 2;
+ unsigned int bgrp_grp_byte_mask_rdata : 8;
+ unsigned int load_empty_reg : 1;
+ unsigned int ast_bit_block2_q : 1;
+ unsigned int last_bit_block_q : 1;
+ unsigned int dbl_last_bit_q : 1;
+ unsigned int prev_last_bit_q : 1;
+ unsigned int old_state_en : 1;
+ unsigned int old_state_q : 1;
+ unsigned int current_state_q : 1;
+ unsigned int rst_last_bit : 1;
+ unsigned int bgrp_grp_bin_valid : 1;
+ unsigned int bgrp_dma_mask_kill : 1;
+ unsigned int bgrp_byte_mask_fifo_we : 1;
+ unsigned int bgrp_byte_mask_fifo_re_q : 1;
+ unsigned int bgrp_byte_mask_fifo_empty : 1;
+ unsigned int bgrp_byte_mask_fifo_full : 1;
+ unsigned int bgrp_cull_fetch_fifo_we : 1;
+ unsigned int dma_bgrp_cull_fetch_read : 1;
+ unsigned int bgrp_cull_fetch_fifo_empty : 1;
+ unsigned int bgrp_cull_fetch_fifo_full : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_REG17 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int save_read_q : 1;
+ unsigned int extend_read_q : 1;
+ unsigned int grp_indx_size : 2;
+ unsigned int cull_prim_true : 1;
+ unsigned int reset_bit2_q : 1;
+ unsigned int reset_bit1_q : 1;
+ unsigned int first_reg_first_q : 1;
+ unsigned int check_second_reg : 1;
+ unsigned int check_first_reg : 1;
+ unsigned int bgrp_cull_fetch_fifo_wdata : 1;
+ unsigned int save_cull_fetch_data2_q : 1;
+ unsigned int save_cull_fetch_data1_q : 1;
+ unsigned int save_byte_mask_data2_q : 1;
+ unsigned int save_byte_mask_data1_q : 1;
+ unsigned int to_second_reg_q : 1;
+ unsigned int roll_over_msk_q : 1;
+ unsigned int max_msk_ptr_q : 7;
+ unsigned int min_msk_ptr_q : 7;
+ unsigned int bgrp_trigger : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int bgrp_trigger : 1;
+ unsigned int min_msk_ptr_q : 7;
+ unsigned int max_msk_ptr_q : 7;
+ unsigned int roll_over_msk_q : 1;
+ unsigned int to_second_reg_q : 1;
+ unsigned int save_byte_mask_data1_q : 1;
+ unsigned int save_byte_mask_data2_q : 1;
+ unsigned int save_cull_fetch_data1_q : 1;
+ unsigned int save_cull_fetch_data2_q : 1;
+ unsigned int bgrp_cull_fetch_fifo_wdata : 1;
+ unsigned int check_first_reg : 1;
+ unsigned int check_second_reg : 1;
+ unsigned int first_reg_first_q : 1;
+ unsigned int reset_bit1_q : 1;
+ unsigned int reset_bit2_q : 1;
+ unsigned int cull_prim_true : 1;
+ unsigned int grp_indx_size : 2;
+ unsigned int extend_read_q : 1;
+ unsigned int save_read_q : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_REG18 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int dma_data_fifo_mem_raddr : 6;
+ unsigned int dma_data_fifo_mem_waddr : 6;
+ unsigned int dma_bgrp_byte_mask_fifo_re : 1;
+ unsigned int dma_bgrp_dma_data_fifo_rptr : 2;
+ unsigned int dma_mem_full : 1;
+ unsigned int dma_ram_re : 1;
+ unsigned int dma_ram_we : 1;
+ unsigned int dma_mem_empty : 1;
+ unsigned int dma_data_fifo_mem_re : 1;
+ unsigned int dma_data_fifo_mem_we : 1;
+ unsigned int bin_mem_full : 1;
+ unsigned int bin_ram_we : 1;
+ unsigned int bin_ram_re : 1;
+ unsigned int bin_mem_empty : 1;
+ unsigned int start_bin_req : 1;
+ unsigned int fetch_cull_not_used : 1;
+ unsigned int dma_req_xfer : 1;
+ unsigned int have_valid_bin_req : 1;
+ unsigned int have_valid_dma_req : 1;
+ unsigned int bgrp_dma_di_grp_cull_enable : 1;
+ unsigned int bgrp_dma_di_pre_fetch_cull_enable : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int bgrp_dma_di_pre_fetch_cull_enable : 1;
+ unsigned int bgrp_dma_di_grp_cull_enable : 1;
+ unsigned int have_valid_dma_req : 1;
+ unsigned int have_valid_bin_req : 1;
+ unsigned int dma_req_xfer : 1;
+ unsigned int fetch_cull_not_used : 1;
+ unsigned int start_bin_req : 1;
+ unsigned int bin_mem_empty : 1;
+ unsigned int bin_ram_re : 1;
+ unsigned int bin_ram_we : 1;
+ unsigned int bin_mem_full : 1;
+ unsigned int dma_data_fifo_mem_we : 1;
+ unsigned int dma_data_fifo_mem_re : 1;
+ unsigned int dma_mem_empty : 1;
+ unsigned int dma_ram_we : 1;
+ unsigned int dma_ram_re : 1;
+ unsigned int dma_mem_full : 1;
+ unsigned int dma_bgrp_dma_data_fifo_rptr : 2;
+ unsigned int dma_bgrp_byte_mask_fifo_re : 1;
+ unsigned int dma_data_fifo_mem_waddr : 6;
+ unsigned int dma_data_fifo_mem_raddr : 6;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_REG20 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int prim_side_indx_valid : 1;
+ unsigned int indx_side_fifo_empty : 1;
+ unsigned int indx_side_fifo_re : 1;
+ unsigned int indx_side_fifo_we : 1;
+ unsigned int indx_side_fifo_full : 1;
+ unsigned int prim_buffer_empty : 1;
+ unsigned int prim_buffer_re : 1;
+ unsigned int prim_buffer_we : 1;
+ unsigned int prim_buffer_full : 1;
+ unsigned int indx_buffer_empty : 1;
+ unsigned int indx_buffer_re : 1;
+ unsigned int indx_buffer_we : 1;
+ unsigned int indx_buffer_full : 1;
+ unsigned int hold_prim : 1;
+ unsigned int sent_cnt : 4;
+ unsigned int start_of_vtx_vector : 1;
+ unsigned int clip_s_pre_hold_prim : 1;
+ unsigned int clip_p_pre_hold_prim : 1;
+ unsigned int buffered_prim_type_event : 5;
+ unsigned int out_trigger : 1;
+ unsigned int : 5;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 5;
+ unsigned int out_trigger : 1;
+ unsigned int buffered_prim_type_event : 5;
+ unsigned int clip_p_pre_hold_prim : 1;
+ unsigned int clip_s_pre_hold_prim : 1;
+ unsigned int start_of_vtx_vector : 1;
+ unsigned int sent_cnt : 4;
+ unsigned int hold_prim : 1;
+ unsigned int indx_buffer_full : 1;
+ unsigned int indx_buffer_we : 1;
+ unsigned int indx_buffer_re : 1;
+ unsigned int indx_buffer_empty : 1;
+ unsigned int prim_buffer_full : 1;
+ unsigned int prim_buffer_we : 1;
+ unsigned int prim_buffer_re : 1;
+ unsigned int prim_buffer_empty : 1;
+ unsigned int indx_side_fifo_full : 1;
+ unsigned int indx_side_fifo_we : 1;
+ unsigned int indx_side_fifo_re : 1;
+ unsigned int indx_side_fifo_empty : 1;
+ unsigned int prim_side_indx_valid : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_REG21 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int null_terminate_vtx_vector : 1;
+ unsigned int prim_end_of_vtx_vect_flags : 3;
+ unsigned int alloc_counter_q : 3;
+ unsigned int curr_slot_in_vtx_vect_q : 3;
+ unsigned int int_vtx_counter_q : 4;
+ unsigned int curr_dealloc_distance_q : 4;
+ unsigned int new_packet_q : 1;
+ unsigned int new_allocate_q : 1;
+ unsigned int num_new_unique_rel_indx : 2;
+ unsigned int inserted_null_prim_q : 1;
+ unsigned int insert_null_prim : 1;
+ unsigned int buffered_prim_eop_mux : 1;
+ unsigned int prim_buffer_empty_mux : 1;
+ unsigned int buffered_thread_size : 1;
+ unsigned int : 4;
+ unsigned int out_trigger : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int out_trigger : 1;
+ unsigned int : 4;
+ unsigned int buffered_thread_size : 1;
+ unsigned int prim_buffer_empty_mux : 1;
+ unsigned int buffered_prim_eop_mux : 1;
+ unsigned int insert_null_prim : 1;
+ unsigned int inserted_null_prim_q : 1;
+ unsigned int num_new_unique_rel_indx : 2;
+ unsigned int new_allocate_q : 1;
+ unsigned int new_packet_q : 1;
+ unsigned int curr_dealloc_distance_q : 4;
+ unsigned int int_vtx_counter_q : 4;
+ unsigned int curr_slot_in_vtx_vect_q : 3;
+ unsigned int alloc_counter_q : 3;
+ unsigned int prim_end_of_vtx_vect_flags : 3;
+ unsigned int null_terminate_vtx_vector : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_CRC_SQ_DATA {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CRC : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int CRC : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_CRC_SQ_CTRL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CRC : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int CRC : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_PERFCOUNTER0_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_SEL : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERF_SEL : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_PERFCOUNTER1_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_SEL : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERF_SEL : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_PERFCOUNTER2_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_SEL : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERF_SEL : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_PERFCOUNTER3_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_SEL : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERF_SEL : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_PERFCOUNTER0_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERF_COUNT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_PERFCOUNTER1_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERF_COUNT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_PERFCOUNTER2_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERF_COUNT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_PERFCOUNTER3_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERF_COUNT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_PERFCOUNTER0_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERF_COUNT : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_PERFCOUNTER1_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERF_COUNT : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_PERFCOUNTER2_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERF_COUNT : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_PERFCOUNTER3_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERF_COUNT : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TC_CNTL_STATUS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int L2_INVALIDATE : 1;
+ unsigned int : 17;
+ unsigned int TC_L2_HIT_MISS : 2;
+ unsigned int : 11;
+ unsigned int TC_BUSY : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int TC_BUSY : 1;
+ unsigned int : 11;
+ unsigned int TC_L2_HIT_MISS : 2;
+ unsigned int : 17;
+ unsigned int L2_INVALIDATE : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCR_CHICKEN {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SPARE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int SPARE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_CHICKEN {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SPARE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int SPARE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCM_CHICKEN {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TCO_READ_LATENCY_FIFO_PROG_DEPTH : 8;
+ unsigned int ETC_COLOR_ENDIAN : 1;
+ unsigned int SPARE : 23;
+#else /* !defined(qLittleEndian) */
+ unsigned int SPARE : 23;
+ unsigned int ETC_COLOR_ENDIAN : 1;
+ unsigned int TCO_READ_LATENCY_FIFO_PROG_DEPTH : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCR_PERFCOUNTER0_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_SELECT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERFCOUNTER_SELECT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCR_PERFCOUNTER1_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_SELECT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERFCOUNTER_SELECT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCR_PERFCOUNTER0_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCR_PERFCOUNTER1_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCR_PERFCOUNTER0_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCR_PERFCOUNTER1_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TP_TC_CLKGATE_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TP_BUSY_EXTEND : 3;
+ unsigned int TC_BUSY_EXTEND : 3;
+ unsigned int : 26;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 26;
+ unsigned int TC_BUSY_EXTEND : 3;
+ unsigned int TP_BUSY_EXTEND : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TPC_CNTL_STATUS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TPC_INPUT_BUSY : 1;
+ unsigned int TPC_TC_FIFO_BUSY : 1;
+ unsigned int TPC_STATE_FIFO_BUSY : 1;
+ unsigned int TPC_FETCH_FIFO_BUSY : 1;
+ unsigned int TPC_WALKER_PIPE_BUSY : 1;
+ unsigned int TPC_WALK_FIFO_BUSY : 1;
+ unsigned int TPC_WALKER_BUSY : 1;
+ unsigned int : 1;
+ unsigned int TPC_ALIGNER_PIPE_BUSY : 1;
+ unsigned int TPC_ALIGN_FIFO_BUSY : 1;
+ unsigned int TPC_ALIGNER_BUSY : 1;
+ unsigned int : 1;
+ unsigned int TPC_RR_FIFO_BUSY : 1;
+ unsigned int TPC_BLEND_PIPE_BUSY : 1;
+ unsigned int TPC_OUT_FIFO_BUSY : 1;
+ unsigned int TPC_BLEND_BUSY : 1;
+ unsigned int TF_TW_RTS : 1;
+ unsigned int TF_TW_STATE_RTS : 1;
+ unsigned int : 1;
+ unsigned int TF_TW_RTR : 1;
+ unsigned int TW_TA_RTS : 1;
+ unsigned int TW_TA_TT_RTS : 1;
+ unsigned int TW_TA_LAST_RTS : 1;
+ unsigned int TW_TA_RTR : 1;
+ unsigned int TA_TB_RTS : 1;
+ unsigned int TA_TB_TT_RTS : 1;
+ unsigned int : 1;
+ unsigned int TA_TB_RTR : 1;
+ unsigned int TA_TF_RTS : 1;
+ unsigned int TA_TF_TC_FIFO_REN : 1;
+ unsigned int TP_SQ_DEC : 1;
+ unsigned int TPC_BUSY : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int TPC_BUSY : 1;
+ unsigned int TP_SQ_DEC : 1;
+ unsigned int TA_TF_TC_FIFO_REN : 1;
+ unsigned int TA_TF_RTS : 1;
+ unsigned int TA_TB_RTR : 1;
+ unsigned int : 1;
+ unsigned int TA_TB_TT_RTS : 1;
+ unsigned int TA_TB_RTS : 1;
+ unsigned int TW_TA_RTR : 1;
+ unsigned int TW_TA_LAST_RTS : 1;
+ unsigned int TW_TA_TT_RTS : 1;
+ unsigned int TW_TA_RTS : 1;
+ unsigned int TF_TW_RTR : 1;
+ unsigned int : 1;
+ unsigned int TF_TW_STATE_RTS : 1;
+ unsigned int TF_TW_RTS : 1;
+ unsigned int TPC_BLEND_BUSY : 1;
+ unsigned int TPC_OUT_FIFO_BUSY : 1;
+ unsigned int TPC_BLEND_PIPE_BUSY : 1;
+ unsigned int TPC_RR_FIFO_BUSY : 1;
+ unsigned int : 1;
+ unsigned int TPC_ALIGNER_BUSY : 1;
+ unsigned int TPC_ALIGN_FIFO_BUSY : 1;
+ unsigned int TPC_ALIGNER_PIPE_BUSY : 1;
+ unsigned int : 1;
+ unsigned int TPC_WALKER_BUSY : 1;
+ unsigned int TPC_WALK_FIFO_BUSY : 1;
+ unsigned int TPC_WALKER_PIPE_BUSY : 1;
+ unsigned int TPC_FETCH_FIFO_BUSY : 1;
+ unsigned int TPC_STATE_FIFO_BUSY : 1;
+ unsigned int TPC_TC_FIFO_BUSY : 1;
+ unsigned int TPC_INPUT_BUSY : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TPC_DEBUG0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int LOD_CNTL : 2;
+ unsigned int IC_CTR : 2;
+ unsigned int WALKER_CNTL : 4;
+ unsigned int ALIGNER_CNTL : 3;
+ unsigned int : 1;
+ unsigned int PREV_TC_STATE_VALID : 1;
+ unsigned int : 3;
+ unsigned int WALKER_STATE : 10;
+ unsigned int ALIGNER_STATE : 2;
+ unsigned int : 1;
+ unsigned int REG_CLK_EN : 1;
+ unsigned int TPC_CLK_EN : 1;
+ unsigned int SQ_TP_WAKEUP : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int SQ_TP_WAKEUP : 1;
+ unsigned int TPC_CLK_EN : 1;
+ unsigned int REG_CLK_EN : 1;
+ unsigned int : 1;
+ unsigned int ALIGNER_STATE : 2;
+ unsigned int WALKER_STATE : 10;
+ unsigned int : 3;
+ unsigned int PREV_TC_STATE_VALID : 1;
+ unsigned int : 1;
+ unsigned int ALIGNER_CNTL : 3;
+ unsigned int WALKER_CNTL : 4;
+ unsigned int IC_CTR : 2;
+ unsigned int LOD_CNTL : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TPC_DEBUG1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int UNUSED : 1;
+ unsigned int : 31;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 31;
+ unsigned int UNUSED : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TPC_CHICKEN {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BLEND_PRECISION : 1;
+ unsigned int SPARE : 31;
+#else /* !defined(qLittleEndian) */
+ unsigned int SPARE : 31;
+ unsigned int BLEND_PRECISION : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TP0_CNTL_STATUS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TP_INPUT_BUSY : 1;
+ unsigned int TP_LOD_BUSY : 1;
+ unsigned int TP_LOD_FIFO_BUSY : 1;
+ unsigned int TP_ADDR_BUSY : 1;
+ unsigned int TP_ALIGN_FIFO_BUSY : 1;
+ unsigned int TP_ALIGNER_BUSY : 1;
+ unsigned int TP_TC_FIFO_BUSY : 1;
+ unsigned int TP_RR_FIFO_BUSY : 1;
+ unsigned int TP_FETCH_BUSY : 1;
+ unsigned int TP_CH_BLEND_BUSY : 1;
+ unsigned int TP_TT_BUSY : 1;
+ unsigned int TP_HICOLOR_BUSY : 1;
+ unsigned int TP_BLEND_BUSY : 1;
+ unsigned int TP_OUT_FIFO_BUSY : 1;
+ unsigned int TP_OUTPUT_BUSY : 1;
+ unsigned int : 1;
+ unsigned int IN_LC_RTS : 1;
+ unsigned int LC_LA_RTS : 1;
+ unsigned int LA_FL_RTS : 1;
+ unsigned int FL_TA_RTS : 1;
+ unsigned int TA_FA_RTS : 1;
+ unsigned int TA_FA_TT_RTS : 1;
+ unsigned int FA_AL_RTS : 1;
+ unsigned int FA_AL_TT_RTS : 1;
+ unsigned int AL_TF_RTS : 1;
+ unsigned int AL_TF_TT_RTS : 1;
+ unsigned int TF_TB_RTS : 1;
+ unsigned int TF_TB_TT_RTS : 1;
+ unsigned int TB_TT_RTS : 1;
+ unsigned int TB_TT_TT_RESET : 1;
+ unsigned int TB_TO_RTS : 1;
+ unsigned int TP_BUSY : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int TP_BUSY : 1;
+ unsigned int TB_TO_RTS : 1;
+ unsigned int TB_TT_TT_RESET : 1;
+ unsigned int TB_TT_RTS : 1;
+ unsigned int TF_TB_TT_RTS : 1;
+ unsigned int TF_TB_RTS : 1;
+ unsigned int AL_TF_TT_RTS : 1;
+ unsigned int AL_TF_RTS : 1;
+ unsigned int FA_AL_TT_RTS : 1;
+ unsigned int FA_AL_RTS : 1;
+ unsigned int TA_FA_TT_RTS : 1;
+ unsigned int TA_FA_RTS : 1;
+ unsigned int FL_TA_RTS : 1;
+ unsigned int LA_FL_RTS : 1;
+ unsigned int LC_LA_RTS : 1;
+ unsigned int IN_LC_RTS : 1;
+ unsigned int : 1;
+ unsigned int TP_OUTPUT_BUSY : 1;
+ unsigned int TP_OUT_FIFO_BUSY : 1;
+ unsigned int TP_BLEND_BUSY : 1;
+ unsigned int TP_HICOLOR_BUSY : 1;
+ unsigned int TP_TT_BUSY : 1;
+ unsigned int TP_CH_BLEND_BUSY : 1;
+ unsigned int TP_FETCH_BUSY : 1;
+ unsigned int TP_RR_FIFO_BUSY : 1;
+ unsigned int TP_TC_FIFO_BUSY : 1;
+ unsigned int TP_ALIGNER_BUSY : 1;
+ unsigned int TP_ALIGN_FIFO_BUSY : 1;
+ unsigned int TP_ADDR_BUSY : 1;
+ unsigned int TP_LOD_FIFO_BUSY : 1;
+ unsigned int TP_LOD_BUSY : 1;
+ unsigned int TP_INPUT_BUSY : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TP0_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int Q_LOD_CNTL : 2;
+ unsigned int : 1;
+ unsigned int Q_SQ_TP_WAKEUP : 1;
+ unsigned int FL_TA_ADDRESSER_CNTL : 17;
+ unsigned int REG_CLK_EN : 1;
+ unsigned int PERF_CLK_EN : 1;
+ unsigned int TP_CLK_EN : 1;
+ unsigned int Q_WALKER_CNTL : 4;
+ unsigned int Q_ALIGNER_CNTL : 3;
+ unsigned int : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 1;
+ unsigned int Q_ALIGNER_CNTL : 3;
+ unsigned int Q_WALKER_CNTL : 4;
+ unsigned int TP_CLK_EN : 1;
+ unsigned int PERF_CLK_EN : 1;
+ unsigned int REG_CLK_EN : 1;
+ unsigned int FL_TA_ADDRESSER_CNTL : 17;
+ unsigned int Q_SQ_TP_WAKEUP : 1;
+ unsigned int : 1;
+ unsigned int Q_LOD_CNTL : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TP0_CHICKEN {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TT_MODE : 1;
+ unsigned int VFETCH_ADDRESS_MODE : 1;
+ unsigned int SPARE : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int SPARE : 30;
+ unsigned int VFETCH_ADDRESS_MODE : 1;
+ unsigned int TT_MODE : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TP0_PERFCOUNTER0_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_SELECT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERFCOUNTER_SELECT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TP0_PERFCOUNTER0_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TP0_PERFCOUNTER0_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TP0_PERFCOUNTER1_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_SELECT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERFCOUNTER_SELECT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TP0_PERFCOUNTER1_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TP0_PERFCOUNTER1_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCM_PERFCOUNTER0_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_SELECT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERFCOUNTER_SELECT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCM_PERFCOUNTER1_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_SELECT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERFCOUNTER_SELECT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCM_PERFCOUNTER0_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCM_PERFCOUNTER1_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCM_PERFCOUNTER0_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCM_PERFCOUNTER1_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER0_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_SELECT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERFCOUNTER_SELECT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER1_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_SELECT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERFCOUNTER_SELECT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER2_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_SELECT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERFCOUNTER_SELECT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER3_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_SELECT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERFCOUNTER_SELECT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER4_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_SELECT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERFCOUNTER_SELECT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER5_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_SELECT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERFCOUNTER_SELECT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER6_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_SELECT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERFCOUNTER_SELECT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER7_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_SELECT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERFCOUNTER_SELECT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER8_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_SELECT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERFCOUNTER_SELECT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER9_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_SELECT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERFCOUNTER_SELECT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER10_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_SELECT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERFCOUNTER_SELECT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER11_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_SELECT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERFCOUNTER_SELECT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER0_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER1_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER2_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER3_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER4_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER5_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER6_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER7_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER8_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER9_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER10_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER11_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER0_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER1_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER2_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER3_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER4_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER5_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER6_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER7_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER8_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER9_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER10_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER11_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 6;
+ unsigned int not_MH_TC_rtr : 1;
+ unsigned int TC_MH_send : 1;
+ unsigned int not_FG0_rtr : 1;
+ unsigned int : 3;
+ unsigned int not_TCB_TCO_rtr : 1;
+ unsigned int TCB_ff_stall : 1;
+ unsigned int TCB_miss_stall : 1;
+ unsigned int TCA_TCB_stall : 1;
+ unsigned int PF0_stall : 1;
+ unsigned int : 3;
+ unsigned int TP0_full : 1;
+ unsigned int : 3;
+ unsigned int TPC_full : 1;
+ unsigned int not_TPC_rtr : 1;
+ unsigned int tca_state_rts : 1;
+ unsigned int tca_rts : 1;
+ unsigned int : 4;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 4;
+ unsigned int tca_rts : 1;
+ unsigned int tca_state_rts : 1;
+ unsigned int not_TPC_rtr : 1;
+ unsigned int TPC_full : 1;
+ unsigned int : 3;
+ unsigned int TP0_full : 1;
+ unsigned int : 3;
+ unsigned int PF0_stall : 1;
+ unsigned int TCA_TCB_stall : 1;
+ unsigned int TCB_miss_stall : 1;
+ unsigned int TCB_ff_stall : 1;
+ unsigned int not_TCB_TCO_rtr : 1;
+ unsigned int : 3;
+ unsigned int not_FG0_rtr : 1;
+ unsigned int TC_MH_send : 1;
+ unsigned int not_MH_TC_rtr : 1;
+ unsigned int : 6;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCA_FIFO_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int tp0_full : 1;
+ unsigned int : 3;
+ unsigned int tpc_full : 1;
+ unsigned int load_tpc_fifo : 1;
+ unsigned int load_tp_fifos : 1;
+ unsigned int FW_full : 1;
+ unsigned int not_FW_rtr0 : 1;
+ unsigned int : 3;
+ unsigned int FW_rts0 : 1;
+ unsigned int : 3;
+ unsigned int not_FW_tpc_rtr : 1;
+ unsigned int FW_tpc_rts : 1;
+ unsigned int : 14;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 14;
+ unsigned int FW_tpc_rts : 1;
+ unsigned int not_FW_tpc_rtr : 1;
+ unsigned int : 3;
+ unsigned int FW_rts0 : 1;
+ unsigned int : 3;
+ unsigned int not_FW_rtr0 : 1;
+ unsigned int FW_full : 1;
+ unsigned int load_tp_fifos : 1;
+ unsigned int load_tpc_fifo : 1;
+ unsigned int tpc_full : 1;
+ unsigned int : 3;
+ unsigned int tp0_full : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCA_PROBE_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ProbeFilter_stall : 1;
+ unsigned int : 31;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 31;
+ unsigned int ProbeFilter_stall : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCA_TPC_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 12;
+ unsigned int captue_state_rts : 1;
+ unsigned int capture_tca_rts : 1;
+ unsigned int : 18;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 18;
+ unsigned int capture_tca_rts : 1;
+ unsigned int captue_state_rts : 1;
+ unsigned int : 12;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCB_CORE_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int access512 : 1;
+ unsigned int tiled : 1;
+ unsigned int : 2;
+ unsigned int opcode : 3;
+ unsigned int : 1;
+ unsigned int format : 6;
+ unsigned int : 2;
+ unsigned int sector_format : 5;
+ unsigned int : 3;
+ unsigned int sector_format512 : 3;
+ unsigned int : 5;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 5;
+ unsigned int sector_format512 : 3;
+ unsigned int : 3;
+ unsigned int sector_format : 5;
+ unsigned int : 2;
+ unsigned int format : 6;
+ unsigned int : 1;
+ unsigned int opcode : 3;
+ unsigned int : 2;
+ unsigned int tiled : 1;
+ unsigned int access512 : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCB_TAG0_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int mem_read_cycle : 10;
+ unsigned int : 2;
+ unsigned int tag_access_cycle : 9;
+ unsigned int : 2;
+ unsigned int miss_stall : 1;
+ unsigned int num_feee_lines : 5;
+ unsigned int max_misses : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int max_misses : 3;
+ unsigned int num_feee_lines : 5;
+ unsigned int miss_stall : 1;
+ unsigned int : 2;
+ unsigned int tag_access_cycle : 9;
+ unsigned int : 2;
+ unsigned int mem_read_cycle : 10;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCB_TAG1_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int mem_read_cycle : 10;
+ unsigned int : 2;
+ unsigned int tag_access_cycle : 9;
+ unsigned int : 2;
+ unsigned int miss_stall : 1;
+ unsigned int num_feee_lines : 5;
+ unsigned int max_misses : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int max_misses : 3;
+ unsigned int num_feee_lines : 5;
+ unsigned int miss_stall : 1;
+ unsigned int : 2;
+ unsigned int tag_access_cycle : 9;
+ unsigned int : 2;
+ unsigned int mem_read_cycle : 10;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCB_TAG2_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int mem_read_cycle : 10;
+ unsigned int : 2;
+ unsigned int tag_access_cycle : 9;
+ unsigned int : 2;
+ unsigned int miss_stall : 1;
+ unsigned int num_feee_lines : 5;
+ unsigned int max_misses : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int max_misses : 3;
+ unsigned int num_feee_lines : 5;
+ unsigned int miss_stall : 1;
+ unsigned int : 2;
+ unsigned int tag_access_cycle : 9;
+ unsigned int : 2;
+ unsigned int mem_read_cycle : 10;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCB_TAG3_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int mem_read_cycle : 10;
+ unsigned int : 2;
+ unsigned int tag_access_cycle : 9;
+ unsigned int : 2;
+ unsigned int miss_stall : 1;
+ unsigned int num_feee_lines : 5;
+ unsigned int max_misses : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int max_misses : 3;
+ unsigned int num_feee_lines : 5;
+ unsigned int miss_stall : 1;
+ unsigned int : 2;
+ unsigned int tag_access_cycle : 9;
+ unsigned int : 2;
+ unsigned int mem_read_cycle : 10;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int left_done : 1;
+ unsigned int : 1;
+ unsigned int fg0_sends_left : 1;
+ unsigned int : 1;
+ unsigned int one_sector_to_go_left_q : 1;
+ unsigned int no_sectors_to_go : 1;
+ unsigned int update_left : 1;
+ unsigned int sector_mask_left_count_q : 5;
+ unsigned int sector_mask_left_q : 16;
+ unsigned int valid_left_q : 1;
+ unsigned int : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 3;
+ unsigned int valid_left_q : 1;
+ unsigned int sector_mask_left_q : 16;
+ unsigned int sector_mask_left_count_q : 5;
+ unsigned int update_left : 1;
+ unsigned int no_sectors_to_go : 1;
+ unsigned int one_sector_to_go_left_q : 1;
+ unsigned int : 1;
+ unsigned int fg0_sends_left : 1;
+ unsigned int : 1;
+ unsigned int left_done : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCB_FETCH_GEN_WALKER_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 4;
+ unsigned int quad_sel_left : 2;
+ unsigned int set_sel_left : 2;
+ unsigned int : 3;
+ unsigned int right_eq_left : 1;
+ unsigned int ff_fg_type512 : 3;
+ unsigned int busy : 1;
+ unsigned int setquads_to_send : 4;
+ unsigned int : 12;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 12;
+ unsigned int setquads_to_send : 4;
+ unsigned int busy : 1;
+ unsigned int ff_fg_type512 : 3;
+ unsigned int right_eq_left : 1;
+ unsigned int : 3;
+ unsigned int set_sel_left : 2;
+ unsigned int quad_sel_left : 2;
+ unsigned int : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCB_FETCH_GEN_PIPE0_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int tc0_arb_rts : 1;
+ unsigned int : 1;
+ unsigned int ga_out_rts : 1;
+ unsigned int : 1;
+ unsigned int tc_arb_format : 12;
+ unsigned int tc_arb_fmsopcode : 5;
+ unsigned int tc_arb_request_type : 2;
+ unsigned int busy : 1;
+ unsigned int fgo_busy : 1;
+ unsigned int ga_busy : 1;
+ unsigned int mc_sel_q : 2;
+ unsigned int valid_q : 1;
+ unsigned int : 1;
+ unsigned int arb_RTR : 1;
+ unsigned int : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 1;
+ unsigned int arb_RTR : 1;
+ unsigned int : 1;
+ unsigned int valid_q : 1;
+ unsigned int mc_sel_q : 2;
+ unsigned int ga_busy : 1;
+ unsigned int fgo_busy : 1;
+ unsigned int busy : 1;
+ unsigned int tc_arb_request_type : 2;
+ unsigned int tc_arb_fmsopcode : 5;
+ unsigned int tc_arb_format : 12;
+ unsigned int : 1;
+ unsigned int ga_out_rts : 1;
+ unsigned int : 1;
+ unsigned int tc0_arb_rts : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCD_INPUT0_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 16;
+ unsigned int empty : 1;
+ unsigned int full : 1;
+ unsigned int : 2;
+ unsigned int valid_q1 : 1;
+ unsigned int cnt_q1 : 2;
+ unsigned int last_send_q1 : 1;
+ unsigned int ip_send : 1;
+ unsigned int ipbuf_dxt_send : 1;
+ unsigned int ipbuf_busy : 1;
+ unsigned int : 5;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 5;
+ unsigned int ipbuf_busy : 1;
+ unsigned int ipbuf_dxt_send : 1;
+ unsigned int ip_send : 1;
+ unsigned int last_send_q1 : 1;
+ unsigned int cnt_q1 : 2;
+ unsigned int valid_q1 : 1;
+ unsigned int : 2;
+ unsigned int full : 1;
+ unsigned int empty : 1;
+ unsigned int : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCD_DEGAMMA_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int dgmm_ftfconv_dgmmen : 2;
+ unsigned int dgmm_ctrl_dgmm8 : 1;
+ unsigned int dgmm_ctrl_last_send : 1;
+ unsigned int dgmm_ctrl_send : 1;
+ unsigned int dgmm_stall : 1;
+ unsigned int dgmm_pstate : 1;
+ unsigned int : 25;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 25;
+ unsigned int dgmm_pstate : 1;
+ unsigned int dgmm_stall : 1;
+ unsigned int dgmm_ctrl_send : 1;
+ unsigned int dgmm_ctrl_last_send : 1;
+ unsigned int dgmm_ctrl_dgmm8 : 1;
+ unsigned int dgmm_ftfconv_dgmmen : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCD_DXTMUX_SCTARB_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 9;
+ unsigned int pstate : 1;
+ unsigned int sctrmx_rtr : 1;
+ unsigned int dxtc_rtr : 1;
+ unsigned int : 3;
+ unsigned int sctrarb_multcyl_send : 1;
+ unsigned int sctrmx0_sctrarb_rts : 1;
+ unsigned int : 3;
+ unsigned int dxtc_sctrarb_send : 1;
+ unsigned int : 6;
+ unsigned int dxtc_dgmmpd_last_send : 1;
+ unsigned int dxtc_dgmmpd_send : 1;
+ unsigned int dcmp_mux_send : 1;
+ unsigned int : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 2;
+ unsigned int dcmp_mux_send : 1;
+ unsigned int dxtc_dgmmpd_send : 1;
+ unsigned int dxtc_dgmmpd_last_send : 1;
+ unsigned int : 6;
+ unsigned int dxtc_sctrarb_send : 1;
+ unsigned int : 3;
+ unsigned int sctrmx0_sctrarb_rts : 1;
+ unsigned int sctrarb_multcyl_send : 1;
+ unsigned int : 3;
+ unsigned int dxtc_rtr : 1;
+ unsigned int sctrmx_rtr : 1;
+ unsigned int pstate : 1;
+ unsigned int : 9;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCD_DXTC_ARB_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 4;
+ unsigned int n0_stall : 1;
+ unsigned int pstate : 1;
+ unsigned int arb_dcmp01_last_send : 1;
+ unsigned int arb_dcmp01_cnt : 2;
+ unsigned int arb_dcmp01_sector : 3;
+ unsigned int arb_dcmp01_cacheline : 6;
+ unsigned int arb_dcmp01_format : 12;
+ unsigned int arb_dcmp01_send : 1;
+ unsigned int n0_dxt2_4_types : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int n0_dxt2_4_types : 1;
+ unsigned int arb_dcmp01_send : 1;
+ unsigned int arb_dcmp01_format : 12;
+ unsigned int arb_dcmp01_cacheline : 6;
+ unsigned int arb_dcmp01_sector : 3;
+ unsigned int arb_dcmp01_cnt : 2;
+ unsigned int arb_dcmp01_last_send : 1;
+ unsigned int pstate : 1;
+ unsigned int n0_stall : 1;
+ unsigned int : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCD_STALLS_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 10;
+ unsigned int not_multcyl_sctrarb_rtr : 1;
+ unsigned int not_sctrmx0_sctrarb_rtr : 1;
+ unsigned int : 5;
+ unsigned int not_dcmp0_arb_rtr : 1;
+ unsigned int not_dgmmpd_dxtc_rtr : 1;
+ unsigned int not_mux_dcmp_rtr : 1;
+ unsigned int : 11;
+ unsigned int not_incoming_rtr : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int not_incoming_rtr : 1;
+ unsigned int : 11;
+ unsigned int not_mux_dcmp_rtr : 1;
+ unsigned int not_dgmmpd_dxtc_rtr : 1;
+ unsigned int not_dcmp0_arb_rtr : 1;
+ unsigned int : 5;
+ unsigned int not_sctrmx0_sctrarb_rtr : 1;
+ unsigned int not_multcyl_sctrarb_rtr : 1;
+ unsigned int : 10;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCO_STALLS_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 5;
+ unsigned int quad0_sg_crd_RTR : 1;
+ unsigned int quad0_rl_sg_RTR : 1;
+ unsigned int quad0_TCO_TCB_rtr_d : 1;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int quad0_TCO_TCB_rtr_d : 1;
+ unsigned int quad0_rl_sg_RTR : 1;
+ unsigned int quad0_sg_crd_RTR : 1;
+ unsigned int : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCO_QUAD0_DEBUG0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int rl_sg_sector_format : 8;
+ unsigned int rl_sg_end_of_sample : 1;
+ unsigned int rl_sg_rtr : 1;
+ unsigned int rl_sg_rts : 1;
+ unsigned int sg_crd_end_of_sample : 1;
+ unsigned int sg_crd_rtr : 1;
+ unsigned int sg_crd_rts : 1;
+ unsigned int : 2;
+ unsigned int stageN1_valid_q : 1;
+ unsigned int : 7;
+ unsigned int read_cache_q : 1;
+ unsigned int cache_read_RTR : 1;
+ unsigned int all_sectors_written_set3 : 1;
+ unsigned int all_sectors_written_set2 : 1;
+ unsigned int all_sectors_written_set1 : 1;
+ unsigned int all_sectors_written_set0 : 1;
+ unsigned int busy : 1;
+ unsigned int : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 1;
+ unsigned int busy : 1;
+ unsigned int all_sectors_written_set0 : 1;
+ unsigned int all_sectors_written_set1 : 1;
+ unsigned int all_sectors_written_set2 : 1;
+ unsigned int all_sectors_written_set3 : 1;
+ unsigned int cache_read_RTR : 1;
+ unsigned int read_cache_q : 1;
+ unsigned int : 7;
+ unsigned int stageN1_valid_q : 1;
+ unsigned int : 2;
+ unsigned int sg_crd_rts : 1;
+ unsigned int sg_crd_rtr : 1;
+ unsigned int sg_crd_end_of_sample : 1;
+ unsigned int rl_sg_rts : 1;
+ unsigned int rl_sg_rtr : 1;
+ unsigned int rl_sg_end_of_sample : 1;
+ unsigned int rl_sg_sector_format : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCO_QUAD0_DEBUG1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int fifo_busy : 1;
+ unsigned int empty : 1;
+ unsigned int full : 1;
+ unsigned int write_enable : 1;
+ unsigned int fifo_write_ptr : 7;
+ unsigned int fifo_read_ptr : 7;
+ unsigned int : 2;
+ unsigned int cache_read_busy : 1;
+ unsigned int latency_fifo_busy : 1;
+ unsigned int input_quad_busy : 1;
+ unsigned int tco_quad_pipe_busy : 1;
+ unsigned int TCB_TCO_rtr_d : 1;
+ unsigned int TCB_TCO_xfc_q : 1;
+ unsigned int rl_sg_rtr : 1;
+ unsigned int rl_sg_rts : 1;
+ unsigned int sg_crd_rtr : 1;
+ unsigned int sg_crd_rts : 1;
+ unsigned int TCO_TCB_read_xfc : 1;
+ unsigned int : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 1;
+ unsigned int TCO_TCB_read_xfc : 1;
+ unsigned int sg_crd_rts : 1;
+ unsigned int sg_crd_rtr : 1;
+ unsigned int rl_sg_rts : 1;
+ unsigned int rl_sg_rtr : 1;
+ unsigned int TCB_TCO_xfc_q : 1;
+ unsigned int TCB_TCO_rtr_d : 1;
+ unsigned int tco_quad_pipe_busy : 1;
+ unsigned int input_quad_busy : 1;
+ unsigned int latency_fifo_busy : 1;
+ unsigned int cache_read_busy : 1;
+ unsigned int : 2;
+ unsigned int fifo_read_ptr : 7;
+ unsigned int fifo_write_ptr : 7;
+ unsigned int write_enable : 1;
+ unsigned int full : 1;
+ unsigned int empty : 1;
+ unsigned int fifo_busy : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_GPR_MANAGEMENT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int REG_DYNAMIC : 1;
+ unsigned int : 3;
+ unsigned int REG_SIZE_PIX : 7;
+ unsigned int : 1;
+ unsigned int REG_SIZE_VTX : 7;
+ unsigned int : 13;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 13;
+ unsigned int REG_SIZE_VTX : 7;
+ unsigned int : 1;
+ unsigned int REG_SIZE_PIX : 7;
+ unsigned int : 3;
+ unsigned int REG_DYNAMIC : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_FLOW_CONTROL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int INPUT_ARBITRATION_POLICY : 2;
+ unsigned int : 2;
+ unsigned int ONE_THREAD : 1;
+ unsigned int : 3;
+ unsigned int ONE_ALU : 1;
+ unsigned int : 3;
+ unsigned int CF_WR_BASE : 4;
+ unsigned int NO_PV_PS : 1;
+ unsigned int NO_LOOP_EXIT : 1;
+ unsigned int NO_CEXEC_OPTIMIZE : 1;
+ unsigned int TEXTURE_ARBITRATION_POLICY : 2;
+ unsigned int VC_ARBITRATION_POLICY : 1;
+ unsigned int ALU_ARBITRATION_POLICY : 1;
+ unsigned int NO_ARB_EJECT : 1;
+ unsigned int NO_CFS_EJECT : 1;
+ unsigned int POS_EXP_PRIORITY : 1;
+ unsigned int NO_EARLY_THREAD_TERMINATION : 1;
+ unsigned int PS_PREFETCH_COLOR_ALLOC : 1;
+ unsigned int : 4;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 4;
+ unsigned int PS_PREFETCH_COLOR_ALLOC : 1;
+ unsigned int NO_EARLY_THREAD_TERMINATION : 1;
+ unsigned int POS_EXP_PRIORITY : 1;
+ unsigned int NO_CFS_EJECT : 1;
+ unsigned int NO_ARB_EJECT : 1;
+ unsigned int ALU_ARBITRATION_POLICY : 1;
+ unsigned int VC_ARBITRATION_POLICY : 1;
+ unsigned int TEXTURE_ARBITRATION_POLICY : 2;
+ unsigned int NO_CEXEC_OPTIMIZE : 1;
+ unsigned int NO_LOOP_EXIT : 1;
+ unsigned int NO_PV_PS : 1;
+ unsigned int CF_WR_BASE : 4;
+ unsigned int : 3;
+ unsigned int ONE_ALU : 1;
+ unsigned int : 3;
+ unsigned int ONE_THREAD : 1;
+ unsigned int : 2;
+ unsigned int INPUT_ARBITRATION_POLICY : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INST_STORE_MANAGMENT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int INST_BASE_PIX : 12;
+ unsigned int : 4;
+ unsigned int INST_BASE_VTX : 12;
+ unsigned int : 4;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 4;
+ unsigned int INST_BASE_VTX : 12;
+ unsigned int : 4;
+ unsigned int INST_BASE_PIX : 12;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_RESOURCE_MANAGMENT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VTX_THREAD_BUF_ENTRIES : 8;
+ unsigned int PIX_THREAD_BUF_ENTRIES : 8;
+ unsigned int EXPORT_BUF_ENTRIES : 9;
+ unsigned int : 7;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 7;
+ unsigned int EXPORT_BUF_ENTRIES : 9;
+ unsigned int PIX_THREAD_BUF_ENTRIES : 8;
+ unsigned int VTX_THREAD_BUF_ENTRIES : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_EO_RT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int EO_CONSTANTS_RT : 8;
+ unsigned int : 8;
+ unsigned int EO_TSTATE_RT : 8;
+ unsigned int : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 8;
+ unsigned int EO_TSTATE_RT : 8;
+ unsigned int : 8;
+ unsigned int EO_CONSTANTS_RT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_MISC {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DB_ALUCST_SIZE : 11;
+ unsigned int : 1;
+ unsigned int DB_TSTATE_SIZE : 8;
+ unsigned int DB_READ_CTX : 1;
+ unsigned int RESERVED : 2;
+ unsigned int DB_READ_MEMORY : 2;
+ unsigned int DB_WEN_MEMORY_0 : 1;
+ unsigned int DB_WEN_MEMORY_1 : 1;
+ unsigned int DB_WEN_MEMORY_2 : 1;
+ unsigned int DB_WEN_MEMORY_3 : 1;
+ unsigned int : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 3;
+ unsigned int DB_WEN_MEMORY_3 : 1;
+ unsigned int DB_WEN_MEMORY_2 : 1;
+ unsigned int DB_WEN_MEMORY_1 : 1;
+ unsigned int DB_WEN_MEMORY_0 : 1;
+ unsigned int DB_READ_MEMORY : 2;
+ unsigned int RESERVED : 2;
+ unsigned int DB_READ_CTX : 1;
+ unsigned int DB_TSTATE_SIZE : 8;
+ unsigned int : 1;
+ unsigned int DB_ALUCST_SIZE : 11;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_ACTIVITY_METER_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TIMEBASE : 8;
+ unsigned int THRESHOLD_LOW : 8;
+ unsigned int THRESHOLD_HIGH : 8;
+ unsigned int SPARE : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int SPARE : 8;
+ unsigned int THRESHOLD_HIGH : 8;
+ unsigned int THRESHOLD_LOW : 8;
+ unsigned int TIMEBASE : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_ACTIVITY_METER_STATUS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERCENT_BUSY : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERCENT_BUSY : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INPUT_ARB_PRIORITY {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PC_AVAIL_WEIGHT : 3;
+ unsigned int PC_AVAIL_SIGN : 1;
+ unsigned int SX_AVAIL_WEIGHT : 3;
+ unsigned int SX_AVAIL_SIGN : 1;
+ unsigned int THRESHOLD : 10;
+ unsigned int : 14;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 14;
+ unsigned int THRESHOLD : 10;
+ unsigned int SX_AVAIL_SIGN : 1;
+ unsigned int SX_AVAIL_WEIGHT : 3;
+ unsigned int PC_AVAIL_SIGN : 1;
+ unsigned int PC_AVAIL_WEIGHT : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_THREAD_ARB_PRIORITY {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PC_AVAIL_WEIGHT : 3;
+ unsigned int PC_AVAIL_SIGN : 1;
+ unsigned int SX_AVAIL_WEIGHT : 3;
+ unsigned int SX_AVAIL_SIGN : 1;
+ unsigned int THRESHOLD : 10;
+ unsigned int RESERVED : 2;
+ unsigned int VS_PRIORITIZE_SERIAL : 1;
+ unsigned int PS_PRIORITIZE_SERIAL : 1;
+ unsigned int USE_SERIAL_COUNT_THRESHOLD : 1;
+ unsigned int : 9;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 9;
+ unsigned int USE_SERIAL_COUNT_THRESHOLD : 1;
+ unsigned int PS_PRIORITIZE_SERIAL : 1;
+ unsigned int VS_PRIORITIZE_SERIAL : 1;
+ unsigned int RESERVED : 2;
+ unsigned int THRESHOLD : 10;
+ unsigned int SX_AVAIL_SIGN : 1;
+ unsigned int SX_AVAIL_WEIGHT : 3;
+ unsigned int PC_AVAIL_SIGN : 1;
+ unsigned int PC_AVAIL_WEIGHT : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_INPUT_FSM {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VC_VSR_LD : 3;
+ unsigned int RESERVED : 1;
+ unsigned int VC_GPR_LD : 4;
+ unsigned int PC_PISM : 3;
+ unsigned int RESERVED1 : 1;
+ unsigned int PC_AS : 3;
+ unsigned int PC_INTERP_CNT : 5;
+ unsigned int PC_GPR_SIZE : 8;
+ unsigned int : 4;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 4;
+ unsigned int PC_GPR_SIZE : 8;
+ unsigned int PC_INTERP_CNT : 5;
+ unsigned int PC_AS : 3;
+ unsigned int RESERVED1 : 1;
+ unsigned int PC_PISM : 3;
+ unsigned int VC_GPR_LD : 4;
+ unsigned int RESERVED : 1;
+ unsigned int VC_VSR_LD : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_CONST_MGR_FSM {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TEX_CONST_EVENT_STATE : 5;
+ unsigned int RESERVED1 : 3;
+ unsigned int ALU_CONST_EVENT_STATE : 5;
+ unsigned int RESERVED2 : 3;
+ unsigned int ALU_CONST_CNTX_VALID : 2;
+ unsigned int TEX_CONST_CNTX_VALID : 2;
+ unsigned int CNTX0_VTX_EVENT_DONE : 1;
+ unsigned int CNTX0_PIX_EVENT_DONE : 1;
+ unsigned int CNTX1_VTX_EVENT_DONE : 1;
+ unsigned int CNTX1_PIX_EVENT_DONE : 1;
+ unsigned int : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 8;
+ unsigned int CNTX1_PIX_EVENT_DONE : 1;
+ unsigned int CNTX1_VTX_EVENT_DONE : 1;
+ unsigned int CNTX0_PIX_EVENT_DONE : 1;
+ unsigned int CNTX0_VTX_EVENT_DONE : 1;
+ unsigned int TEX_CONST_CNTX_VALID : 2;
+ unsigned int ALU_CONST_CNTX_VALID : 2;
+ unsigned int RESERVED2 : 3;
+ unsigned int ALU_CONST_EVENT_STATE : 5;
+ unsigned int RESERVED1 : 3;
+ unsigned int TEX_CONST_EVENT_STATE : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_TP_FSM {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int EX_TP : 3;
+ unsigned int RESERVED0 : 1;
+ unsigned int CF_TP : 4;
+ unsigned int IF_TP : 3;
+ unsigned int RESERVED1 : 1;
+ unsigned int TIS_TP : 2;
+ unsigned int RESERVED2 : 2;
+ unsigned int GS_TP : 2;
+ unsigned int RESERVED3 : 2;
+ unsigned int FCR_TP : 2;
+ unsigned int RESERVED4 : 2;
+ unsigned int FCS_TP : 2;
+ unsigned int RESERVED5 : 2;
+ unsigned int ARB_TR_TP : 3;
+ unsigned int : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 1;
+ unsigned int ARB_TR_TP : 3;
+ unsigned int RESERVED5 : 2;
+ unsigned int FCS_TP : 2;
+ unsigned int RESERVED4 : 2;
+ unsigned int FCR_TP : 2;
+ unsigned int RESERVED3 : 2;
+ unsigned int GS_TP : 2;
+ unsigned int RESERVED2 : 2;
+ unsigned int TIS_TP : 2;
+ unsigned int RESERVED1 : 1;
+ unsigned int IF_TP : 3;
+ unsigned int CF_TP : 4;
+ unsigned int RESERVED0 : 1;
+ unsigned int EX_TP : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_FSM_ALU_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int EX_ALU_0 : 3;
+ unsigned int RESERVED0 : 1;
+ unsigned int CF_ALU_0 : 4;
+ unsigned int IF_ALU_0 : 3;
+ unsigned int RESERVED1 : 1;
+ unsigned int DU1_ALU_0 : 3;
+ unsigned int RESERVED2 : 1;
+ unsigned int DU0_ALU_0 : 3;
+ unsigned int RESERVED3 : 1;
+ unsigned int AIS_ALU_0 : 3;
+ unsigned int RESERVED4 : 1;
+ unsigned int ACS_ALU_0 : 3;
+ unsigned int RESERVED5 : 1;
+ unsigned int ARB_TR_ALU : 3;
+ unsigned int : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 1;
+ unsigned int ARB_TR_ALU : 3;
+ unsigned int RESERVED5 : 1;
+ unsigned int ACS_ALU_0 : 3;
+ unsigned int RESERVED4 : 1;
+ unsigned int AIS_ALU_0 : 3;
+ unsigned int RESERVED3 : 1;
+ unsigned int DU0_ALU_0 : 3;
+ unsigned int RESERVED2 : 1;
+ unsigned int DU1_ALU_0 : 3;
+ unsigned int RESERVED1 : 1;
+ unsigned int IF_ALU_0 : 3;
+ unsigned int CF_ALU_0 : 4;
+ unsigned int RESERVED0 : 1;
+ unsigned int EX_ALU_0 : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_FSM_ALU_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int EX_ALU_0 : 3;
+ unsigned int RESERVED0 : 1;
+ unsigned int CF_ALU_0 : 4;
+ unsigned int IF_ALU_0 : 3;
+ unsigned int RESERVED1 : 1;
+ unsigned int DU1_ALU_0 : 3;
+ unsigned int RESERVED2 : 1;
+ unsigned int DU0_ALU_0 : 3;
+ unsigned int RESERVED3 : 1;
+ unsigned int AIS_ALU_0 : 3;
+ unsigned int RESERVED4 : 1;
+ unsigned int ACS_ALU_0 : 3;
+ unsigned int RESERVED5 : 1;
+ unsigned int ARB_TR_ALU : 3;
+ unsigned int : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 1;
+ unsigned int ARB_TR_ALU : 3;
+ unsigned int RESERVED5 : 1;
+ unsigned int ACS_ALU_0 : 3;
+ unsigned int RESERVED4 : 1;
+ unsigned int AIS_ALU_0 : 3;
+ unsigned int RESERVED3 : 1;
+ unsigned int DU0_ALU_0 : 3;
+ unsigned int RESERVED2 : 1;
+ unsigned int DU1_ALU_0 : 3;
+ unsigned int RESERVED1 : 1;
+ unsigned int IF_ALU_0 : 3;
+ unsigned int CF_ALU_0 : 4;
+ unsigned int RESERVED0 : 1;
+ unsigned int EX_ALU_0 : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_EXP_ALLOC {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int POS_BUF_AVAIL : 4;
+ unsigned int COLOR_BUF_AVAIL : 8;
+ unsigned int EA_BUF_AVAIL : 3;
+ unsigned int RESERVED : 1;
+ unsigned int ALLOC_TBL_BUF_AVAIL : 6;
+ unsigned int : 10;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 10;
+ unsigned int ALLOC_TBL_BUF_AVAIL : 6;
+ unsigned int RESERVED : 1;
+ unsigned int EA_BUF_AVAIL : 3;
+ unsigned int COLOR_BUF_AVAIL : 8;
+ unsigned int POS_BUF_AVAIL : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_PTR_BUFF {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int END_OF_BUFFER : 1;
+ unsigned int DEALLOC_CNT : 4;
+ unsigned int QUAL_NEW_VECTOR : 1;
+ unsigned int EVENT_CONTEXT_ID : 3;
+ unsigned int SC_EVENT_ID : 5;
+ unsigned int QUAL_EVENT : 1;
+ unsigned int PRIM_TYPE_POLYGON : 1;
+ unsigned int EF_EMPTY : 1;
+ unsigned int VTX_SYNC_CNT : 11;
+ unsigned int : 4;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 4;
+ unsigned int VTX_SYNC_CNT : 11;
+ unsigned int EF_EMPTY : 1;
+ unsigned int PRIM_TYPE_POLYGON : 1;
+ unsigned int QUAL_EVENT : 1;
+ unsigned int SC_EVENT_ID : 5;
+ unsigned int EVENT_CONTEXT_ID : 3;
+ unsigned int QUAL_NEW_VECTOR : 1;
+ unsigned int DEALLOC_CNT : 4;
+ unsigned int END_OF_BUFFER : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_GPR_VTX {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VTX_TAIL_PTR : 7;
+ unsigned int RESERVED : 1;
+ unsigned int VTX_HEAD_PTR : 7;
+ unsigned int RESERVED1 : 1;
+ unsigned int VTX_MAX : 7;
+ unsigned int RESERVED2 : 1;
+ unsigned int VTX_FREE : 7;
+ unsigned int : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 1;
+ unsigned int VTX_FREE : 7;
+ unsigned int RESERVED2 : 1;
+ unsigned int VTX_MAX : 7;
+ unsigned int RESERVED1 : 1;
+ unsigned int VTX_HEAD_PTR : 7;
+ unsigned int RESERVED : 1;
+ unsigned int VTX_TAIL_PTR : 7;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_GPR_PIX {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PIX_TAIL_PTR : 7;
+ unsigned int RESERVED : 1;
+ unsigned int PIX_HEAD_PTR : 7;
+ unsigned int RESERVED1 : 1;
+ unsigned int PIX_MAX : 7;
+ unsigned int RESERVED2 : 1;
+ unsigned int PIX_FREE : 7;
+ unsigned int : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 1;
+ unsigned int PIX_FREE : 7;
+ unsigned int RESERVED2 : 1;
+ unsigned int PIX_MAX : 7;
+ unsigned int RESERVED1 : 1;
+ unsigned int PIX_HEAD_PTR : 7;
+ unsigned int RESERVED : 1;
+ unsigned int PIX_TAIL_PTR : 7;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_TB_STATUS_SEL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VTX_TB_STATUS_REG_SEL : 4;
+ unsigned int VTX_TB_STATE_MEM_DW_SEL : 3;
+ unsigned int VTX_TB_STATE_MEM_RD_ADDR : 4;
+ unsigned int VTX_TB_STATE_MEM_RD_EN : 1;
+ unsigned int PIX_TB_STATE_MEM_RD_EN : 1;
+ unsigned int : 1;
+ unsigned int DEBUG_BUS_TRIGGER_SEL : 2;
+ unsigned int PIX_TB_STATUS_REG_SEL : 4;
+ unsigned int PIX_TB_STATE_MEM_DW_SEL : 3;
+ unsigned int PIX_TB_STATE_MEM_RD_ADDR : 6;
+ unsigned int VC_THREAD_BUF_DLY : 2;
+ unsigned int DISABLE_STRICT_CTX_SYNC : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int DISABLE_STRICT_CTX_SYNC : 1;
+ unsigned int VC_THREAD_BUF_DLY : 2;
+ unsigned int PIX_TB_STATE_MEM_RD_ADDR : 6;
+ unsigned int PIX_TB_STATE_MEM_DW_SEL : 3;
+ unsigned int PIX_TB_STATUS_REG_SEL : 4;
+ unsigned int DEBUG_BUS_TRIGGER_SEL : 2;
+ unsigned int : 1;
+ unsigned int PIX_TB_STATE_MEM_RD_EN : 1;
+ unsigned int VTX_TB_STATE_MEM_RD_EN : 1;
+ unsigned int VTX_TB_STATE_MEM_RD_ADDR : 4;
+ unsigned int VTX_TB_STATE_MEM_DW_SEL : 3;
+ unsigned int VTX_TB_STATUS_REG_SEL : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_VTX_TB_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VTX_HEAD_PTR_Q : 4;
+ unsigned int TAIL_PTR_Q : 4;
+ unsigned int FULL_CNT_Q : 4;
+ unsigned int NXT_POS_ALLOC_CNT : 4;
+ unsigned int NXT_PC_ALLOC_CNT : 4;
+ unsigned int SX_EVENT_FULL : 1;
+ unsigned int BUSY_Q : 1;
+ unsigned int : 10;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 10;
+ unsigned int BUSY_Q : 1;
+ unsigned int SX_EVENT_FULL : 1;
+ unsigned int NXT_PC_ALLOC_CNT : 4;
+ unsigned int NXT_POS_ALLOC_CNT : 4;
+ unsigned int FULL_CNT_Q : 4;
+ unsigned int TAIL_PTR_Q : 4;
+ unsigned int VTX_HEAD_PTR_Q : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_VTX_TB_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VS_DONE_PTR : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int VS_DONE_PTR : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_VTX_TB_STATUS_REG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VS_STATUS_REG : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VS_STATUS_REG : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_VTX_TB_STATE_MEM {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VS_STATE_MEM : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VS_STATE_MEM : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_PIX_TB_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PIX_HEAD_PTR : 6;
+ unsigned int TAIL_PTR : 6;
+ unsigned int FULL_CNT : 7;
+ unsigned int NXT_PIX_ALLOC_CNT : 6;
+ unsigned int NXT_PIX_EXP_CNT : 6;
+ unsigned int BUSY : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int BUSY : 1;
+ unsigned int NXT_PIX_EXP_CNT : 6;
+ unsigned int NXT_PIX_ALLOC_CNT : 6;
+ unsigned int FULL_CNT : 7;
+ unsigned int TAIL_PTR : 6;
+ unsigned int PIX_HEAD_PTR : 6;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_PIX_TB_STATUS_REG_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PIX_TB_STATUS_REG_0 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PIX_TB_STATUS_REG_0 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_PIX_TB_STATUS_REG_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PIX_TB_STATUS_REG_1 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PIX_TB_STATUS_REG_1 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_PIX_TB_STATUS_REG_2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PIX_TB_STATUS_REG_2 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PIX_TB_STATUS_REG_2 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_PIX_TB_STATUS_REG_3 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PIX_TB_STATUS_REG_3 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PIX_TB_STATUS_REG_3 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_PIX_TB_STATE_MEM {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PIX_TB_STATE_MEM : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PIX_TB_STATE_MEM : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_PERFCOUNTER0_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_SEL : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERF_SEL : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_PERFCOUNTER1_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_SEL : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERF_SEL : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_PERFCOUNTER2_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_SEL : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERF_SEL : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_PERFCOUNTER3_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_SEL : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERF_SEL : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_PERFCOUNTER0_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERF_COUNT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_PERFCOUNTER0_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERF_COUNT : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_PERFCOUNTER1_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERF_COUNT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_PERFCOUNTER1_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERF_COUNT : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_PERFCOUNTER2_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERF_COUNT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_PERFCOUNTER2_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERF_COUNT : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_PERFCOUNTER3_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERF_COUNT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_PERFCOUNTER3_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERF_COUNT : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SX_PERFCOUNTER0_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_SEL : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERF_SEL : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SX_PERFCOUNTER0_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERF_COUNT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SX_PERFCOUNTER0_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERF_COUNT : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_ALU_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VECTOR_RESULT : 6;
+ unsigned int CST_0_ABS_MOD : 1;
+ unsigned int LOW_PRECISION_16B_FP : 1;
+ unsigned int SCALAR_RESULT : 6;
+ unsigned int SST_0_ABS_MOD : 1;
+ unsigned int EXPORT_DATA : 1;
+ unsigned int VECTOR_WRT_MSK : 4;
+ unsigned int SCALAR_WRT_MSK : 4;
+ unsigned int VECTOR_CLAMP : 1;
+ unsigned int SCALAR_CLAMP : 1;
+ unsigned int SCALAR_OPCODE : 6;
+#else /* !defined(qLittleEndian) */
+ unsigned int SCALAR_OPCODE : 6;
+ unsigned int SCALAR_CLAMP : 1;
+ unsigned int VECTOR_CLAMP : 1;
+ unsigned int SCALAR_WRT_MSK : 4;
+ unsigned int VECTOR_WRT_MSK : 4;
+ unsigned int EXPORT_DATA : 1;
+ unsigned int SST_0_ABS_MOD : 1;
+ unsigned int SCALAR_RESULT : 6;
+ unsigned int LOW_PRECISION_16B_FP : 1;
+ unsigned int CST_0_ABS_MOD : 1;
+ unsigned int VECTOR_RESULT : 6;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_ALU_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SRC_C_SWIZZLE_R : 2;
+ unsigned int SRC_C_SWIZZLE_G : 2;
+ unsigned int SRC_C_SWIZZLE_B : 2;
+ unsigned int SRC_C_SWIZZLE_A : 2;
+ unsigned int SRC_B_SWIZZLE_R : 2;
+ unsigned int SRC_B_SWIZZLE_G : 2;
+ unsigned int SRC_B_SWIZZLE_B : 2;
+ unsigned int SRC_B_SWIZZLE_A : 2;
+ unsigned int SRC_A_SWIZZLE_R : 2;
+ unsigned int SRC_A_SWIZZLE_G : 2;
+ unsigned int SRC_A_SWIZZLE_B : 2;
+ unsigned int SRC_A_SWIZZLE_A : 2;
+ unsigned int SRC_C_ARG_MOD : 1;
+ unsigned int SRC_B_ARG_MOD : 1;
+ unsigned int SRC_A_ARG_MOD : 1;
+ unsigned int PRED_SELECT : 2;
+ unsigned int RELATIVE_ADDR : 1;
+ unsigned int CONST_1_REL_ABS : 1;
+ unsigned int CONST_0_REL_ABS : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int CONST_0_REL_ABS : 1;
+ unsigned int CONST_1_REL_ABS : 1;
+ unsigned int RELATIVE_ADDR : 1;
+ unsigned int PRED_SELECT : 2;
+ unsigned int SRC_A_ARG_MOD : 1;
+ unsigned int SRC_B_ARG_MOD : 1;
+ unsigned int SRC_C_ARG_MOD : 1;
+ unsigned int SRC_A_SWIZZLE_A : 2;
+ unsigned int SRC_A_SWIZZLE_B : 2;
+ unsigned int SRC_A_SWIZZLE_G : 2;
+ unsigned int SRC_A_SWIZZLE_R : 2;
+ unsigned int SRC_B_SWIZZLE_A : 2;
+ unsigned int SRC_B_SWIZZLE_B : 2;
+ unsigned int SRC_B_SWIZZLE_G : 2;
+ unsigned int SRC_B_SWIZZLE_R : 2;
+ unsigned int SRC_C_SWIZZLE_A : 2;
+ unsigned int SRC_C_SWIZZLE_B : 2;
+ unsigned int SRC_C_SWIZZLE_G : 2;
+ unsigned int SRC_C_SWIZZLE_R : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_ALU_2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SRC_C_REG_PTR : 6;
+ unsigned int REG_SELECT_C : 1;
+ unsigned int REG_ABS_MOD_C : 1;
+ unsigned int SRC_B_REG_PTR : 6;
+ unsigned int REG_SELECT_B : 1;
+ unsigned int REG_ABS_MOD_B : 1;
+ unsigned int SRC_A_REG_PTR : 6;
+ unsigned int REG_SELECT_A : 1;
+ unsigned int REG_ABS_MOD_A : 1;
+ unsigned int VECTOR_OPCODE : 5;
+ unsigned int SRC_C_SEL : 1;
+ unsigned int SRC_B_SEL : 1;
+ unsigned int SRC_A_SEL : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int SRC_A_SEL : 1;
+ unsigned int SRC_B_SEL : 1;
+ unsigned int SRC_C_SEL : 1;
+ unsigned int VECTOR_OPCODE : 5;
+ unsigned int REG_ABS_MOD_A : 1;
+ unsigned int REG_SELECT_A : 1;
+ unsigned int SRC_A_REG_PTR : 6;
+ unsigned int REG_ABS_MOD_B : 1;
+ unsigned int REG_SELECT_B : 1;
+ unsigned int SRC_B_REG_PTR : 6;
+ unsigned int REG_ABS_MOD_C : 1;
+ unsigned int REG_SELECT_C : 1;
+ unsigned int SRC_C_REG_PTR : 6;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_CF_EXEC_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ADDRESS : 9;
+ unsigned int RESERVED : 3;
+ unsigned int COUNT : 3;
+ unsigned int YIELD : 1;
+ unsigned int INST_TYPE_0 : 1;
+ unsigned int INST_SERIAL_0 : 1;
+ unsigned int INST_TYPE_1 : 1;
+ unsigned int INST_SERIAL_1 : 1;
+ unsigned int INST_TYPE_2 : 1;
+ unsigned int INST_SERIAL_2 : 1;
+ unsigned int INST_TYPE_3 : 1;
+ unsigned int INST_SERIAL_3 : 1;
+ unsigned int INST_TYPE_4 : 1;
+ unsigned int INST_SERIAL_4 : 1;
+ unsigned int INST_TYPE_5 : 1;
+ unsigned int INST_SERIAL_5 : 1;
+ unsigned int INST_VC_0 : 1;
+ unsigned int INST_VC_1 : 1;
+ unsigned int INST_VC_2 : 1;
+ unsigned int INST_VC_3 : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int INST_VC_3 : 1;
+ unsigned int INST_VC_2 : 1;
+ unsigned int INST_VC_1 : 1;
+ unsigned int INST_VC_0 : 1;
+ unsigned int INST_SERIAL_5 : 1;
+ unsigned int INST_TYPE_5 : 1;
+ unsigned int INST_SERIAL_4 : 1;
+ unsigned int INST_TYPE_4 : 1;
+ unsigned int INST_SERIAL_3 : 1;
+ unsigned int INST_TYPE_3 : 1;
+ unsigned int INST_SERIAL_2 : 1;
+ unsigned int INST_TYPE_2 : 1;
+ unsigned int INST_SERIAL_1 : 1;
+ unsigned int INST_TYPE_1 : 1;
+ unsigned int INST_SERIAL_0 : 1;
+ unsigned int INST_TYPE_0 : 1;
+ unsigned int YIELD : 1;
+ unsigned int COUNT : 3;
+ unsigned int RESERVED : 3;
+ unsigned int ADDRESS : 9;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_CF_EXEC_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int INST_VC_4 : 1;
+ unsigned int INST_VC_5 : 1;
+ unsigned int BOOL_ADDR : 8;
+ unsigned int CONDITION : 1;
+ unsigned int ADDRESS_MODE : 1;
+ unsigned int OPCODE : 4;
+ unsigned int ADDRESS : 9;
+ unsigned int RESERVED : 3;
+ unsigned int COUNT : 3;
+ unsigned int YIELD : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int YIELD : 1;
+ unsigned int COUNT : 3;
+ unsigned int RESERVED : 3;
+ unsigned int ADDRESS : 9;
+ unsigned int OPCODE : 4;
+ unsigned int ADDRESS_MODE : 1;
+ unsigned int CONDITION : 1;
+ unsigned int BOOL_ADDR : 8;
+ unsigned int INST_VC_5 : 1;
+ unsigned int INST_VC_4 : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_CF_EXEC_2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int INST_TYPE_0 : 1;
+ unsigned int INST_SERIAL_0 : 1;
+ unsigned int INST_TYPE_1 : 1;
+ unsigned int INST_SERIAL_1 : 1;
+ unsigned int INST_TYPE_2 : 1;
+ unsigned int INST_SERIAL_2 : 1;
+ unsigned int INST_TYPE_3 : 1;
+ unsigned int INST_SERIAL_3 : 1;
+ unsigned int INST_TYPE_4 : 1;
+ unsigned int INST_SERIAL_4 : 1;
+ unsigned int INST_TYPE_5 : 1;
+ unsigned int INST_SERIAL_5 : 1;
+ unsigned int INST_VC_0 : 1;
+ unsigned int INST_VC_1 : 1;
+ unsigned int INST_VC_2 : 1;
+ unsigned int INST_VC_3 : 1;
+ unsigned int INST_VC_4 : 1;
+ unsigned int INST_VC_5 : 1;
+ unsigned int BOOL_ADDR : 8;
+ unsigned int CONDITION : 1;
+ unsigned int ADDRESS_MODE : 1;
+ unsigned int OPCODE : 4;
+#else /* !defined(qLittleEndian) */
+ unsigned int OPCODE : 4;
+ unsigned int ADDRESS_MODE : 1;
+ unsigned int CONDITION : 1;
+ unsigned int BOOL_ADDR : 8;
+ unsigned int INST_VC_5 : 1;
+ unsigned int INST_VC_4 : 1;
+ unsigned int INST_VC_3 : 1;
+ unsigned int INST_VC_2 : 1;
+ unsigned int INST_VC_1 : 1;
+ unsigned int INST_VC_0 : 1;
+ unsigned int INST_SERIAL_5 : 1;
+ unsigned int INST_TYPE_5 : 1;
+ unsigned int INST_SERIAL_4 : 1;
+ unsigned int INST_TYPE_4 : 1;
+ unsigned int INST_SERIAL_3 : 1;
+ unsigned int INST_TYPE_3 : 1;
+ unsigned int INST_SERIAL_2 : 1;
+ unsigned int INST_TYPE_2 : 1;
+ unsigned int INST_SERIAL_1 : 1;
+ unsigned int INST_TYPE_1 : 1;
+ unsigned int INST_SERIAL_0 : 1;
+ unsigned int INST_TYPE_0 : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_CF_LOOP_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ADDRESS : 10;
+ unsigned int RESERVED_0 : 6;
+ unsigned int LOOP_ID : 5;
+ unsigned int RESERVED_1 : 11;
+#else /* !defined(qLittleEndian) */
+ unsigned int RESERVED_1 : 11;
+ unsigned int LOOP_ID : 5;
+ unsigned int RESERVED_0 : 6;
+ unsigned int ADDRESS : 10;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_CF_LOOP_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RESERVED_0 : 11;
+ unsigned int ADDRESS_MODE : 1;
+ unsigned int OPCODE : 4;
+ unsigned int ADDRESS : 10;
+ unsigned int RESERVED_1 : 6;
+#else /* !defined(qLittleEndian) */
+ unsigned int RESERVED_1 : 6;
+ unsigned int ADDRESS : 10;
+ unsigned int OPCODE : 4;
+ unsigned int ADDRESS_MODE : 1;
+ unsigned int RESERVED_0 : 11;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_CF_LOOP_2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int LOOP_ID : 5;
+ unsigned int RESERVED : 22;
+ unsigned int ADDRESS_MODE : 1;
+ unsigned int OPCODE : 4;
+#else /* !defined(qLittleEndian) */
+ unsigned int OPCODE : 4;
+ unsigned int ADDRESS_MODE : 1;
+ unsigned int RESERVED : 22;
+ unsigned int LOOP_ID : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_CF_JMP_CALL_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ADDRESS : 10;
+ unsigned int RESERVED_0 : 3;
+ unsigned int FORCE_CALL : 1;
+ unsigned int PREDICATED_JMP : 1;
+ unsigned int RESERVED_1 : 17;
+#else /* !defined(qLittleEndian) */
+ unsigned int RESERVED_1 : 17;
+ unsigned int PREDICATED_JMP : 1;
+ unsigned int FORCE_CALL : 1;
+ unsigned int RESERVED_0 : 3;
+ unsigned int ADDRESS : 10;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_CF_JMP_CALL_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RESERVED_0 : 1;
+ unsigned int DIRECTION : 1;
+ unsigned int BOOL_ADDR : 8;
+ unsigned int CONDITION : 1;
+ unsigned int ADDRESS_MODE : 1;
+ unsigned int OPCODE : 4;
+ unsigned int ADDRESS : 10;
+ unsigned int RESERVED_1 : 3;
+ unsigned int FORCE_CALL : 1;
+ unsigned int RESERVED_2 : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int RESERVED_2 : 2;
+ unsigned int FORCE_CALL : 1;
+ unsigned int RESERVED_1 : 3;
+ unsigned int ADDRESS : 10;
+ unsigned int OPCODE : 4;
+ unsigned int ADDRESS_MODE : 1;
+ unsigned int CONDITION : 1;
+ unsigned int BOOL_ADDR : 8;
+ unsigned int DIRECTION : 1;
+ unsigned int RESERVED_0 : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_CF_JMP_CALL_2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RESERVED : 17;
+ unsigned int DIRECTION : 1;
+ unsigned int BOOL_ADDR : 8;
+ unsigned int CONDITION : 1;
+ unsigned int ADDRESS_MODE : 1;
+ unsigned int OPCODE : 4;
+#else /* !defined(qLittleEndian) */
+ unsigned int OPCODE : 4;
+ unsigned int ADDRESS_MODE : 1;
+ unsigned int CONDITION : 1;
+ unsigned int BOOL_ADDR : 8;
+ unsigned int DIRECTION : 1;
+ unsigned int RESERVED : 17;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_CF_ALLOC_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SIZE : 4;
+ unsigned int RESERVED : 28;
+#else /* !defined(qLittleEndian) */
+ unsigned int RESERVED : 28;
+ unsigned int SIZE : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_CF_ALLOC_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RESERVED_0 : 8;
+ unsigned int NO_SERIAL : 1;
+ unsigned int BUFFER_SELECT : 2;
+ unsigned int ALLOC_MODE : 1;
+ unsigned int OPCODE : 4;
+ unsigned int SIZE : 4;
+ unsigned int RESERVED_1 : 12;
+#else /* !defined(qLittleEndian) */
+ unsigned int RESERVED_1 : 12;
+ unsigned int SIZE : 4;
+ unsigned int OPCODE : 4;
+ unsigned int ALLOC_MODE : 1;
+ unsigned int BUFFER_SELECT : 2;
+ unsigned int NO_SERIAL : 1;
+ unsigned int RESERVED_0 : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_CF_ALLOC_2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RESERVED : 24;
+ unsigned int NO_SERIAL : 1;
+ unsigned int BUFFER_SELECT : 2;
+ unsigned int ALLOC_MODE : 1;
+ unsigned int OPCODE : 4;
+#else /* !defined(qLittleEndian) */
+ unsigned int OPCODE : 4;
+ unsigned int ALLOC_MODE : 1;
+ unsigned int BUFFER_SELECT : 2;
+ unsigned int NO_SERIAL : 1;
+ unsigned int RESERVED : 24;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_TFETCH_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int OPCODE : 5;
+ unsigned int SRC_GPR : 6;
+ unsigned int SRC_GPR_AM : 1;
+ unsigned int DST_GPR : 6;
+ unsigned int DST_GPR_AM : 1;
+ unsigned int FETCH_VALID_ONLY : 1;
+ unsigned int CONST_INDEX : 5;
+ unsigned int TX_COORD_DENORM : 1;
+ unsigned int SRC_SEL_X : 2;
+ unsigned int SRC_SEL_Y : 2;
+ unsigned int SRC_SEL_Z : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int SRC_SEL_Z : 2;
+ unsigned int SRC_SEL_Y : 2;
+ unsigned int SRC_SEL_X : 2;
+ unsigned int TX_COORD_DENORM : 1;
+ unsigned int CONST_INDEX : 5;
+ unsigned int FETCH_VALID_ONLY : 1;
+ unsigned int DST_GPR_AM : 1;
+ unsigned int DST_GPR : 6;
+ unsigned int SRC_GPR_AM : 1;
+ unsigned int SRC_GPR : 6;
+ unsigned int OPCODE : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_TFETCH_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DST_SEL_X : 3;
+ unsigned int DST_SEL_Y : 3;
+ unsigned int DST_SEL_Z : 3;
+ unsigned int DST_SEL_W : 3;
+ unsigned int MAG_FILTER : 2;
+ unsigned int MIN_FILTER : 2;
+ unsigned int MIP_FILTER : 2;
+ unsigned int ANISO_FILTER : 3;
+ unsigned int ARBITRARY_FILTER : 3;
+ unsigned int VOL_MAG_FILTER : 2;
+ unsigned int VOL_MIN_FILTER : 2;
+ unsigned int USE_COMP_LOD : 1;
+ unsigned int USE_REG_LOD : 2;
+ unsigned int PRED_SELECT : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int PRED_SELECT : 1;
+ unsigned int USE_REG_LOD : 2;
+ unsigned int USE_COMP_LOD : 1;
+ unsigned int VOL_MIN_FILTER : 2;
+ unsigned int VOL_MAG_FILTER : 2;
+ unsigned int ARBITRARY_FILTER : 3;
+ unsigned int ANISO_FILTER : 3;
+ unsigned int MIP_FILTER : 2;
+ unsigned int MIN_FILTER : 2;
+ unsigned int MAG_FILTER : 2;
+ unsigned int DST_SEL_W : 3;
+ unsigned int DST_SEL_Z : 3;
+ unsigned int DST_SEL_Y : 3;
+ unsigned int DST_SEL_X : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_TFETCH_2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int USE_REG_GRADIENTS : 1;
+ unsigned int SAMPLE_LOCATION : 1;
+ unsigned int LOD_BIAS : 7;
+ unsigned int UNUSED : 7;
+ unsigned int OFFSET_X : 5;
+ unsigned int OFFSET_Y : 5;
+ unsigned int OFFSET_Z : 5;
+ unsigned int PRED_CONDITION : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int PRED_CONDITION : 1;
+ unsigned int OFFSET_Z : 5;
+ unsigned int OFFSET_Y : 5;
+ unsigned int OFFSET_X : 5;
+ unsigned int UNUSED : 7;
+ unsigned int LOD_BIAS : 7;
+ unsigned int SAMPLE_LOCATION : 1;
+ unsigned int USE_REG_GRADIENTS : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_VFETCH_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int OPCODE : 5;
+ unsigned int SRC_GPR : 6;
+ unsigned int SRC_GPR_AM : 1;
+ unsigned int DST_GPR : 6;
+ unsigned int DST_GPR_AM : 1;
+ unsigned int MUST_BE_ONE : 1;
+ unsigned int CONST_INDEX : 5;
+ unsigned int CONST_INDEX_SEL : 2;
+ unsigned int : 3;
+ unsigned int SRC_SEL : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int SRC_SEL : 2;
+ unsigned int : 3;
+ unsigned int CONST_INDEX_SEL : 2;
+ unsigned int CONST_INDEX : 5;
+ unsigned int MUST_BE_ONE : 1;
+ unsigned int DST_GPR_AM : 1;
+ unsigned int DST_GPR : 6;
+ unsigned int SRC_GPR_AM : 1;
+ unsigned int SRC_GPR : 6;
+ unsigned int OPCODE : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_VFETCH_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DST_SEL_X : 3;
+ unsigned int DST_SEL_Y : 3;
+ unsigned int DST_SEL_Z : 3;
+ unsigned int DST_SEL_W : 3;
+ unsigned int FORMAT_COMP_ALL : 1;
+ unsigned int NUM_FORMAT_ALL : 1;
+ unsigned int SIGNED_RF_MODE_ALL : 1;
+ unsigned int : 1;
+ unsigned int DATA_FORMAT : 6;
+ unsigned int : 1;
+ unsigned int EXP_ADJUST_ALL : 7;
+ unsigned int : 1;
+ unsigned int PRED_SELECT : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int PRED_SELECT : 1;
+ unsigned int : 1;
+ unsigned int EXP_ADJUST_ALL : 7;
+ unsigned int : 1;
+ unsigned int DATA_FORMAT : 6;
+ unsigned int : 1;
+ unsigned int SIGNED_RF_MODE_ALL : 1;
+ unsigned int NUM_FORMAT_ALL : 1;
+ unsigned int FORMAT_COMP_ALL : 1;
+ unsigned int DST_SEL_W : 3;
+ unsigned int DST_SEL_Z : 3;
+ unsigned int DST_SEL_Y : 3;
+ unsigned int DST_SEL_X : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_VFETCH_2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int STRIDE : 8;
+ unsigned int : 8;
+ unsigned int OFFSET : 8;
+ unsigned int : 7;
+ unsigned int PRED_CONDITION : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int PRED_CONDITION : 1;
+ unsigned int : 7;
+ unsigned int OFFSET : 8;
+ unsigned int : 8;
+ unsigned int STRIDE : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CONSTANT_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RED : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int RED : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CONSTANT_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int GREEN : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int GREEN : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CONSTANT_2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BLUE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BLUE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CONSTANT_3 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ALPHA : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int ALPHA : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_FETCH_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VALUE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VALUE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_FETCH_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VALUE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VALUE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_FETCH_2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VALUE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VALUE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_FETCH_3 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VALUE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VALUE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_FETCH_4 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VALUE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VALUE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_FETCH_5 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VALUE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VALUE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CONSTANT_VFETCH_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TYPE : 1;
+ unsigned int STATE : 1;
+ unsigned int BASE_ADDRESS : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int BASE_ADDRESS : 30;
+ unsigned int STATE : 1;
+ unsigned int TYPE : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CONSTANT_VFETCH_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ENDIAN_SWAP : 2;
+ unsigned int LIMIT_ADDRESS : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int LIMIT_ADDRESS : 30;
+ unsigned int ENDIAN_SWAP : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CONSTANT_T2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VALUE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VALUE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CONSTANT_T3 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VALUE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VALUE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CF_BOOLEANS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CF_BOOLEANS_0 : 8;
+ unsigned int CF_BOOLEANS_1 : 8;
+ unsigned int CF_BOOLEANS_2 : 8;
+ unsigned int CF_BOOLEANS_3 : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int CF_BOOLEANS_3 : 8;
+ unsigned int CF_BOOLEANS_2 : 8;
+ unsigned int CF_BOOLEANS_1 : 8;
+ unsigned int CF_BOOLEANS_0 : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CF_LOOP {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CF_LOOP_COUNT : 8;
+ unsigned int CF_LOOP_START : 8;
+ unsigned int CF_LOOP_STEP : 8;
+ unsigned int : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 8;
+ unsigned int CF_LOOP_STEP : 8;
+ unsigned int CF_LOOP_START : 8;
+ unsigned int CF_LOOP_COUNT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CONSTANT_RT_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RED : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int RED : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CONSTANT_RT_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int GREEN : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int GREEN : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CONSTANT_RT_2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BLUE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BLUE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CONSTANT_RT_3 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ALPHA : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int ALPHA : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_FETCH_RT_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VALUE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VALUE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_FETCH_RT_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VALUE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VALUE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_FETCH_RT_2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VALUE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VALUE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_FETCH_RT_3 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VALUE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VALUE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_FETCH_RT_4 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VALUE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VALUE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_FETCH_RT_5 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VALUE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VALUE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CF_RT_BOOLEANS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CF_BOOLEANS_0 : 8;
+ unsigned int CF_BOOLEANS_1 : 8;
+ unsigned int CF_BOOLEANS_2 : 8;
+ unsigned int CF_BOOLEANS_3 : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int CF_BOOLEANS_3 : 8;
+ unsigned int CF_BOOLEANS_2 : 8;
+ unsigned int CF_BOOLEANS_1 : 8;
+ unsigned int CF_BOOLEANS_0 : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CF_RT_LOOP {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CF_LOOP_COUNT : 8;
+ unsigned int CF_LOOP_START : 8;
+ unsigned int CF_LOOP_STEP : 8;
+ unsigned int : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 8;
+ unsigned int CF_LOOP_STEP : 8;
+ unsigned int CF_LOOP_START : 8;
+ unsigned int CF_LOOP_COUNT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_VS_PROGRAM {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BASE : 12;
+ unsigned int SIZE : 12;
+ unsigned int : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 8;
+ unsigned int SIZE : 12;
+ unsigned int BASE : 12;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_PS_PROGRAM {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BASE : 12;
+ unsigned int SIZE : 12;
+ unsigned int : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 8;
+ unsigned int SIZE : 12;
+ unsigned int BASE : 12;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CF_PROGRAM_SIZE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VS_CF_SIZE : 11;
+ unsigned int : 1;
+ unsigned int PS_CF_SIZE : 11;
+ unsigned int : 9;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 9;
+ unsigned int PS_CF_SIZE : 11;
+ unsigned int : 1;
+ unsigned int VS_CF_SIZE : 11;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INTERPOLATOR_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PARAM_SHADE : 16;
+ unsigned int SAMPLING_PATTERN : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int SAMPLING_PATTERN : 16;
+ unsigned int PARAM_SHADE : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_PROGRAM_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VS_NUM_REG : 6;
+ unsigned int : 2;
+ unsigned int PS_NUM_REG : 6;
+ unsigned int : 2;
+ unsigned int VS_RESOURCE : 1;
+ unsigned int PS_RESOURCE : 1;
+ unsigned int PARAM_GEN : 1;
+ unsigned int GEN_INDEX_PIX : 1;
+ unsigned int VS_EXPORT_COUNT : 4;
+ unsigned int VS_EXPORT_MODE : 3;
+ unsigned int PS_EXPORT_MODE : 4;
+ unsigned int GEN_INDEX_VTX : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int GEN_INDEX_VTX : 1;
+ unsigned int PS_EXPORT_MODE : 4;
+ unsigned int VS_EXPORT_MODE : 3;
+ unsigned int VS_EXPORT_COUNT : 4;
+ unsigned int GEN_INDEX_PIX : 1;
+ unsigned int PARAM_GEN : 1;
+ unsigned int PS_RESOURCE : 1;
+ unsigned int VS_RESOURCE : 1;
+ unsigned int : 2;
+ unsigned int PS_NUM_REG : 6;
+ unsigned int : 2;
+ unsigned int VS_NUM_REG : 6;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_WRAPPING_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PARAM_WRAP_0 : 4;
+ unsigned int PARAM_WRAP_1 : 4;
+ unsigned int PARAM_WRAP_2 : 4;
+ unsigned int PARAM_WRAP_3 : 4;
+ unsigned int PARAM_WRAP_4 : 4;
+ unsigned int PARAM_WRAP_5 : 4;
+ unsigned int PARAM_WRAP_6 : 4;
+ unsigned int PARAM_WRAP_7 : 4;
+#else /* !defined(qLittleEndian) */
+ unsigned int PARAM_WRAP_7 : 4;
+ unsigned int PARAM_WRAP_6 : 4;
+ unsigned int PARAM_WRAP_5 : 4;
+ unsigned int PARAM_WRAP_4 : 4;
+ unsigned int PARAM_WRAP_3 : 4;
+ unsigned int PARAM_WRAP_2 : 4;
+ unsigned int PARAM_WRAP_1 : 4;
+ unsigned int PARAM_WRAP_0 : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_WRAPPING_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PARAM_WRAP_8 : 4;
+ unsigned int PARAM_WRAP_9 : 4;
+ unsigned int PARAM_WRAP_10 : 4;
+ unsigned int PARAM_WRAP_11 : 4;
+ unsigned int PARAM_WRAP_12 : 4;
+ unsigned int PARAM_WRAP_13 : 4;
+ unsigned int PARAM_WRAP_14 : 4;
+ unsigned int PARAM_WRAP_15 : 4;
+#else /* !defined(qLittleEndian) */
+ unsigned int PARAM_WRAP_15 : 4;
+ unsigned int PARAM_WRAP_14 : 4;
+ unsigned int PARAM_WRAP_13 : 4;
+ unsigned int PARAM_WRAP_12 : 4;
+ unsigned int PARAM_WRAP_11 : 4;
+ unsigned int PARAM_WRAP_10 : 4;
+ unsigned int PARAM_WRAP_9 : 4;
+ unsigned int PARAM_WRAP_8 : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_VS_CONST {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BASE : 9;
+ unsigned int : 3;
+ unsigned int SIZE : 9;
+ unsigned int : 11;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 11;
+ unsigned int SIZE : 9;
+ unsigned int : 3;
+ unsigned int BASE : 9;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_PS_CONST {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BASE : 9;
+ unsigned int : 3;
+ unsigned int SIZE : 9;
+ unsigned int : 11;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 11;
+ unsigned int SIZE : 9;
+ unsigned int : 3;
+ unsigned int BASE : 9;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CONTEXT_MISC {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int INST_PRED_OPTIMIZE : 1;
+ unsigned int SC_OUTPUT_SCREEN_XY : 1;
+ unsigned int SC_SAMPLE_CNTL : 2;
+ unsigned int : 4;
+ unsigned int PARAM_GEN_POS : 8;
+ unsigned int PERFCOUNTER_REF : 1;
+ unsigned int YEILD_OPTIMIZE : 1;
+ unsigned int TX_CACHE_SEL : 1;
+ unsigned int : 13;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 13;
+ unsigned int TX_CACHE_SEL : 1;
+ unsigned int YEILD_OPTIMIZE : 1;
+ unsigned int PERFCOUNTER_REF : 1;
+ unsigned int PARAM_GEN_POS : 8;
+ unsigned int : 4;
+ unsigned int SC_SAMPLE_CNTL : 2;
+ unsigned int SC_OUTPUT_SCREEN_XY : 1;
+ unsigned int INST_PRED_OPTIMIZE : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CF_RD_BASE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RD_BASE : 3;
+ unsigned int : 29;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 29;
+ unsigned int RD_BASE : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_MISC_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DB_PROB_ON : 1;
+ unsigned int : 3;
+ unsigned int DB_PROB_BREAK : 1;
+ unsigned int : 3;
+ unsigned int DB_PROB_ADDR : 11;
+ unsigned int : 5;
+ unsigned int DB_PROB_COUNT : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int DB_PROB_COUNT : 8;
+ unsigned int : 5;
+ unsigned int DB_PROB_ADDR : 11;
+ unsigned int : 3;
+ unsigned int DB_PROB_BREAK : 1;
+ unsigned int : 3;
+ unsigned int DB_PROB_ON : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_MISC_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DB_ON_PIX : 1;
+ unsigned int DB_ON_VTX : 1;
+ unsigned int : 6;
+ unsigned int DB_INST_COUNT : 8;
+ unsigned int DB_BREAK_ADDR : 11;
+ unsigned int : 5;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 5;
+ unsigned int DB_BREAK_ADDR : 11;
+ unsigned int DB_INST_COUNT : 8;
+ unsigned int : 6;
+ unsigned int DB_ON_VTX : 1;
+ unsigned int DB_ON_PIX : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_ARBITER_CONFIG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SAME_PAGE_LIMIT : 6;
+ unsigned int SAME_PAGE_GRANULARITY : 1;
+ unsigned int L1_ARB_ENABLE : 1;
+ unsigned int L1_ARB_HOLD_ENABLE : 1;
+ unsigned int L2_ARB_CONTROL : 1;
+ unsigned int PAGE_SIZE : 3;
+ unsigned int TC_REORDER_ENABLE : 1;
+ unsigned int TC_ARB_HOLD_ENABLE : 1;
+ unsigned int IN_FLIGHT_LIMIT_ENABLE : 1;
+ unsigned int IN_FLIGHT_LIMIT : 6;
+ unsigned int CP_CLNT_ENABLE : 1;
+ unsigned int VGT_CLNT_ENABLE : 1;
+ unsigned int TC_CLNT_ENABLE : 1;
+ unsigned int RB_CLNT_ENABLE : 1;
+ unsigned int : 6;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 6;
+ unsigned int RB_CLNT_ENABLE : 1;
+ unsigned int TC_CLNT_ENABLE : 1;
+ unsigned int VGT_CLNT_ENABLE : 1;
+ unsigned int CP_CLNT_ENABLE : 1;
+ unsigned int IN_FLIGHT_LIMIT : 6;
+ unsigned int IN_FLIGHT_LIMIT_ENABLE : 1;
+ unsigned int TC_ARB_HOLD_ENABLE : 1;
+ unsigned int TC_REORDER_ENABLE : 1;
+ unsigned int PAGE_SIZE : 3;
+ unsigned int L2_ARB_CONTROL : 1;
+ unsigned int L1_ARB_HOLD_ENABLE : 1;
+ unsigned int L1_ARB_ENABLE : 1;
+ unsigned int SAME_PAGE_GRANULARITY : 1;
+ unsigned int SAME_PAGE_LIMIT : 6;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_CLNT_AXI_ID_REUSE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CPw_ID : 3;
+ unsigned int RESERVED1 : 1;
+ unsigned int RBw_ID : 3;
+ unsigned int RESERVED2 : 1;
+ unsigned int MMUr_ID : 3;
+ unsigned int : 21;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 21;
+ unsigned int MMUr_ID : 3;
+ unsigned int RESERVED2 : 1;
+ unsigned int RBw_ID : 3;
+ unsigned int RESERVED1 : 1;
+ unsigned int CPw_ID : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_INTERRUPT_MASK {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int AXI_READ_ERROR : 1;
+ unsigned int AXI_WRITE_ERROR : 1;
+ unsigned int MMU_PAGE_FAULT : 1;
+ unsigned int : 29;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 29;
+ unsigned int MMU_PAGE_FAULT : 1;
+ unsigned int AXI_WRITE_ERROR : 1;
+ unsigned int AXI_READ_ERROR : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_INTERRUPT_STATUS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int AXI_READ_ERROR : 1;
+ unsigned int AXI_WRITE_ERROR : 1;
+ unsigned int MMU_PAGE_FAULT : 1;
+ unsigned int : 29;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 29;
+ unsigned int MMU_PAGE_FAULT : 1;
+ unsigned int AXI_WRITE_ERROR : 1;
+ unsigned int AXI_READ_ERROR : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_INTERRUPT_CLEAR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int AXI_READ_ERROR : 1;
+ unsigned int AXI_WRITE_ERROR : 1;
+ unsigned int MMU_PAGE_FAULT : 1;
+ unsigned int : 29;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 29;
+ unsigned int MMU_PAGE_FAULT : 1;
+ unsigned int AXI_WRITE_ERROR : 1;
+ unsigned int AXI_READ_ERROR : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_AXI_ERROR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int AXI_READ_ID : 3;
+ unsigned int AXI_READ_ERROR : 1;
+ unsigned int AXI_WRITE_ID : 3;
+ unsigned int AXI_WRITE_ERROR : 1;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int AXI_WRITE_ERROR : 1;
+ unsigned int AXI_WRITE_ID : 3;
+ unsigned int AXI_READ_ERROR : 1;
+ unsigned int AXI_READ_ID : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_PERFCOUNTER0_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_SEL : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERF_SEL : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_PERFCOUNTER1_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_SEL : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERF_SEL : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_PERFCOUNTER0_CONFIG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int N_VALUE : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int N_VALUE : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_PERFCOUNTER1_CONFIG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int N_VALUE : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int N_VALUE : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_PERFCOUNTER0_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERF_COUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_PERFCOUNTER1_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERF_COUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_PERFCOUNTER0_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERF_COUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_PERFCOUNTER1_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERF_COUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_CTRL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int INDEX : 6;
+ unsigned int : 26;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 26;
+ unsigned int INDEX : 6;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_DATA {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DATA : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int DATA : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG00 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MH_BUSY : 1;
+ unsigned int TRANS_OUTSTANDING : 1;
+ unsigned int CP_REQUEST : 1;
+ unsigned int VGT_REQUEST : 1;
+ unsigned int TC_REQUEST : 1;
+ unsigned int TC_CAM_EMPTY : 1;
+ unsigned int TC_CAM_FULL : 1;
+ unsigned int TCD_EMPTY : 1;
+ unsigned int TCD_FULL : 1;
+ unsigned int RB_REQUEST : 1;
+ unsigned int MH_CLK_EN_STATE : 1;
+ unsigned int ARQ_EMPTY : 1;
+ unsigned int ARQ_FULL : 1;
+ unsigned int WDB_EMPTY : 1;
+ unsigned int WDB_FULL : 1;
+ unsigned int AXI_AVALID : 1;
+ unsigned int AXI_AREADY : 1;
+ unsigned int AXI_ARVALID : 1;
+ unsigned int AXI_ARREADY : 1;
+ unsigned int AXI_WVALID : 1;
+ unsigned int AXI_WREADY : 1;
+ unsigned int AXI_RVALID : 1;
+ unsigned int AXI_RREADY : 1;
+ unsigned int AXI_BVALID : 1;
+ unsigned int AXI_BREADY : 1;
+ unsigned int AXI_HALT_REQ : 1;
+ unsigned int AXI_HALT_ACK : 1;
+ unsigned int : 5;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 5;
+ unsigned int AXI_HALT_ACK : 1;
+ unsigned int AXI_HALT_REQ : 1;
+ unsigned int AXI_BREADY : 1;
+ unsigned int AXI_BVALID : 1;
+ unsigned int AXI_RREADY : 1;
+ unsigned int AXI_RVALID : 1;
+ unsigned int AXI_WREADY : 1;
+ unsigned int AXI_WVALID : 1;
+ unsigned int AXI_ARREADY : 1;
+ unsigned int AXI_ARVALID : 1;
+ unsigned int AXI_AREADY : 1;
+ unsigned int AXI_AVALID : 1;
+ unsigned int WDB_FULL : 1;
+ unsigned int WDB_EMPTY : 1;
+ unsigned int ARQ_FULL : 1;
+ unsigned int ARQ_EMPTY : 1;
+ unsigned int MH_CLK_EN_STATE : 1;
+ unsigned int RB_REQUEST : 1;
+ unsigned int TCD_FULL : 1;
+ unsigned int TCD_EMPTY : 1;
+ unsigned int TC_CAM_FULL : 1;
+ unsigned int TC_CAM_EMPTY : 1;
+ unsigned int TC_REQUEST : 1;
+ unsigned int VGT_REQUEST : 1;
+ unsigned int CP_REQUEST : 1;
+ unsigned int TRANS_OUTSTANDING : 1;
+ unsigned int MH_BUSY : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG01 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CP_SEND_q : 1;
+ unsigned int CP_RTR_q : 1;
+ unsigned int CP_WRITE_q : 1;
+ unsigned int CP_TAG_q : 3;
+ unsigned int CP_BE_q : 8;
+ unsigned int VGT_SEND_q : 1;
+ unsigned int VGT_RTR_q : 1;
+ unsigned int VGT_TAG_q : 1;
+ unsigned int TC_SEND_q : 1;
+ unsigned int TC_RTR_q : 1;
+ unsigned int TC_ROQ_SEND_q : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int TC_MH_written : 1;
+ unsigned int RB_SEND_q : 1;
+ unsigned int RB_RTR_q : 1;
+ unsigned int RB_BE_q : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int RB_BE_q : 8;
+ unsigned int RB_RTR_q : 1;
+ unsigned int RB_SEND_q : 1;
+ unsigned int TC_MH_written : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int TC_ROQ_SEND_q : 1;
+ unsigned int TC_RTR_q : 1;
+ unsigned int TC_SEND_q : 1;
+ unsigned int VGT_TAG_q : 1;
+ unsigned int VGT_RTR_q : 1;
+ unsigned int VGT_SEND_q : 1;
+ unsigned int CP_BE_q : 8;
+ unsigned int CP_TAG_q : 3;
+ unsigned int CP_WRITE_q : 1;
+ unsigned int CP_RTR_q : 1;
+ unsigned int CP_SEND_q : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG02 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MH_CP_grb_send : 1;
+ unsigned int MH_VGT_grb_send : 1;
+ unsigned int MH_TC_mcsend : 1;
+ unsigned int MH_CLNT_rlast : 1;
+ unsigned int MH_CLNT_tag : 3;
+ unsigned int RDC_RID : 3;
+ unsigned int RDC_RRESP : 2;
+ unsigned int MH_CP_writeclean : 1;
+ unsigned int MH_RB_writeclean : 1;
+ unsigned int BRC_BID : 3;
+ unsigned int BRC_BRESP : 2;
+ unsigned int : 13;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 13;
+ unsigned int BRC_BRESP : 2;
+ unsigned int BRC_BID : 3;
+ unsigned int MH_RB_writeclean : 1;
+ unsigned int MH_CP_writeclean : 1;
+ unsigned int RDC_RRESP : 2;
+ unsigned int RDC_RID : 3;
+ unsigned int MH_CLNT_tag : 3;
+ unsigned int MH_CLNT_rlast : 1;
+ unsigned int MH_TC_mcsend : 1;
+ unsigned int MH_VGT_grb_send : 1;
+ unsigned int MH_CP_grb_send : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG03 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MH_CLNT_data_31_0 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int MH_CLNT_data_31_0 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG04 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MH_CLNT_data_63_32 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int MH_CLNT_data_63_32 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG05 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CP_MH_send : 1;
+ unsigned int CP_MH_write : 1;
+ unsigned int CP_MH_tag : 3;
+ unsigned int CP_MH_ad_31_5 : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int CP_MH_ad_31_5 : 27;
+ unsigned int CP_MH_tag : 3;
+ unsigned int CP_MH_write : 1;
+ unsigned int CP_MH_send : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG06 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CP_MH_data_31_0 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int CP_MH_data_31_0 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG07 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CP_MH_data_63_32 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int CP_MH_data_63_32 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG08 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ALWAYS_ZERO : 3;
+ unsigned int VGT_MH_send : 1;
+ unsigned int VGT_MH_tagbe : 1;
+ unsigned int VGT_MH_ad_31_5 : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int VGT_MH_ad_31_5 : 27;
+ unsigned int VGT_MH_tagbe : 1;
+ unsigned int VGT_MH_send : 1;
+ unsigned int ALWAYS_ZERO : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG09 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int TC_MH_send : 1;
+ unsigned int TC_MH_mask : 2;
+ unsigned int TC_MH_addr_31_5 : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int TC_MH_addr_31_5 : 27;
+ unsigned int TC_MH_mask : 2;
+ unsigned int TC_MH_send : 1;
+ unsigned int ALWAYS_ZERO : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG10 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TC_MH_info : 25;
+ unsigned int TC_MH_send : 1;
+ unsigned int : 6;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 6;
+ unsigned int TC_MH_send : 1;
+ unsigned int TC_MH_info : 25;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG11 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MH_TC_mcinfo : 25;
+ unsigned int MH_TC_mcinfo_send : 1;
+ unsigned int TC_MH_written : 1;
+ unsigned int : 5;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 5;
+ unsigned int TC_MH_written : 1;
+ unsigned int MH_TC_mcinfo_send : 1;
+ unsigned int MH_TC_mcinfo : 25;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG12 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int TC_ROQ_SEND : 1;
+ unsigned int TC_ROQ_MASK : 2;
+ unsigned int TC_ROQ_ADDR_31_5 : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int TC_ROQ_ADDR_31_5 : 27;
+ unsigned int TC_ROQ_MASK : 2;
+ unsigned int TC_ROQ_SEND : 1;
+ unsigned int ALWAYS_ZERO : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG13 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TC_ROQ_INFO : 25;
+ unsigned int TC_ROQ_SEND : 1;
+ unsigned int : 6;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 6;
+ unsigned int TC_ROQ_SEND : 1;
+ unsigned int TC_ROQ_INFO : 25;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG14 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ALWAYS_ZERO : 4;
+ unsigned int RB_MH_send : 1;
+ unsigned int RB_MH_addr_31_5 : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int RB_MH_addr_31_5 : 27;
+ unsigned int RB_MH_send : 1;
+ unsigned int ALWAYS_ZERO : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG15 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RB_MH_data_31_0 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int RB_MH_data_31_0 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG16 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RB_MH_data_63_32 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int RB_MH_data_63_32 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG17 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int AVALID_q : 1;
+ unsigned int AREADY_q : 1;
+ unsigned int AID_q : 3;
+ unsigned int ALEN_q_2_0 : 3;
+ unsigned int ARVALID_q : 1;
+ unsigned int ARREADY_q : 1;
+ unsigned int ARID_q : 3;
+ unsigned int ARLEN_q_1_0 : 2;
+ unsigned int RVALID_q : 1;
+ unsigned int RREADY_q : 1;
+ unsigned int RLAST_q : 1;
+ unsigned int RID_q : 3;
+ unsigned int WVALID_q : 1;
+ unsigned int WREADY_q : 1;
+ unsigned int WLAST_q : 1;
+ unsigned int WID_q : 3;
+ unsigned int BVALID_q : 1;
+ unsigned int BREADY_q : 1;
+ unsigned int BID_q : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int BID_q : 3;
+ unsigned int BREADY_q : 1;
+ unsigned int BVALID_q : 1;
+ unsigned int WID_q : 3;
+ unsigned int WLAST_q : 1;
+ unsigned int WREADY_q : 1;
+ unsigned int WVALID_q : 1;
+ unsigned int RID_q : 3;
+ unsigned int RLAST_q : 1;
+ unsigned int RREADY_q : 1;
+ unsigned int RVALID_q : 1;
+ unsigned int ARLEN_q_1_0 : 2;
+ unsigned int ARID_q : 3;
+ unsigned int ARREADY_q : 1;
+ unsigned int ARVALID_q : 1;
+ unsigned int ALEN_q_2_0 : 3;
+ unsigned int AID_q : 3;
+ unsigned int AREADY_q : 1;
+ unsigned int AVALID_q : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG18 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int AVALID_q : 1;
+ unsigned int AREADY_q : 1;
+ unsigned int AID_q : 3;
+ unsigned int ALEN_q_1_0 : 2;
+ unsigned int ARVALID_q : 1;
+ unsigned int ARREADY_q : 1;
+ unsigned int ARID_q : 3;
+ unsigned int ARLEN_q_1_1 : 1;
+ unsigned int WVALID_q : 1;
+ unsigned int WREADY_q : 1;
+ unsigned int WLAST_q : 1;
+ unsigned int WID_q : 3;
+ unsigned int WSTRB_q : 8;
+ unsigned int BVALID_q : 1;
+ unsigned int BREADY_q : 1;
+ unsigned int BID_q : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int BID_q : 3;
+ unsigned int BREADY_q : 1;
+ unsigned int BVALID_q : 1;
+ unsigned int WSTRB_q : 8;
+ unsigned int WID_q : 3;
+ unsigned int WLAST_q : 1;
+ unsigned int WREADY_q : 1;
+ unsigned int WVALID_q : 1;
+ unsigned int ARLEN_q_1_1 : 1;
+ unsigned int ARID_q : 3;
+ unsigned int ARREADY_q : 1;
+ unsigned int ARVALID_q : 1;
+ unsigned int ALEN_q_1_0 : 2;
+ unsigned int AID_q : 3;
+ unsigned int AREADY_q : 1;
+ unsigned int AVALID_q : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG19 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ARC_CTRL_RE_q : 1;
+ unsigned int CTRL_ARC_ID : 3;
+ unsigned int CTRL_ARC_PAD : 28;
+#else /* !defined(qLittleEndian) */
+ unsigned int CTRL_ARC_PAD : 28;
+ unsigned int CTRL_ARC_ID : 3;
+ unsigned int ARC_CTRL_RE_q : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG20 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int REG_A : 14;
+ unsigned int REG_RE : 1;
+ unsigned int REG_WE : 1;
+ unsigned int BLOCK_RS : 1;
+ unsigned int : 13;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 13;
+ unsigned int BLOCK_RS : 1;
+ unsigned int REG_WE : 1;
+ unsigned int REG_RE : 1;
+ unsigned int REG_A : 14;
+ unsigned int ALWAYS_ZERO : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG21 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int REG_WD : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int REG_WD : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG22 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CIB_MH_axi_halt_req : 1;
+ unsigned int MH_CIB_axi_halt_ack : 1;
+ unsigned int MH_RBBM_busy : 1;
+ unsigned int MH_CIB_mh_clk_en_int : 1;
+ unsigned int MH_CIB_mmu_clk_en_int : 1;
+ unsigned int MH_CIB_tcroq_clk_en_int : 1;
+ unsigned int GAT_CLK_ENA : 1;
+ unsigned int AXI_RDY_ENA : 1;
+ unsigned int RBBM_MH_clk_en_override : 1;
+ unsigned int CNT_q : 6;
+ unsigned int TCD_EMPTY_q : 1;
+ unsigned int TC_ROQ_EMPTY : 1;
+ unsigned int MH_BUSY_d : 1;
+ unsigned int ANY_CLNT_BUSY : 1;
+ unsigned int MH_MMU_INVALIDATE_INVALIDATE_ALL : 1;
+ unsigned int CP_SEND_q : 1;
+ unsigned int CP_RTR_q : 1;
+ unsigned int VGT_SEND_q : 1;
+ unsigned int VGT_RTR_q : 1;
+ unsigned int TC_ROQ_SEND_q : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int RB_SEND_q : 1;
+ unsigned int RB_RTR_q : 1;
+ unsigned int RDC_VALID : 1;
+ unsigned int RDC_RLAST : 1;
+ unsigned int TLBMISS_VALID : 1;
+ unsigned int BRC_VALID : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int BRC_VALID : 1;
+ unsigned int TLBMISS_VALID : 1;
+ unsigned int RDC_RLAST : 1;
+ unsigned int RDC_VALID : 1;
+ unsigned int RB_RTR_q : 1;
+ unsigned int RB_SEND_q : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int TC_ROQ_SEND_q : 1;
+ unsigned int VGT_RTR_q : 1;
+ unsigned int VGT_SEND_q : 1;
+ unsigned int CP_RTR_q : 1;
+ unsigned int CP_SEND_q : 1;
+ unsigned int MH_MMU_INVALIDATE_INVALIDATE_ALL : 1;
+ unsigned int ANY_CLNT_BUSY : 1;
+ unsigned int MH_BUSY_d : 1;
+ unsigned int TC_ROQ_EMPTY : 1;
+ unsigned int TCD_EMPTY_q : 1;
+ unsigned int CNT_q : 6;
+ unsigned int RBBM_MH_clk_en_override : 1;
+ unsigned int AXI_RDY_ENA : 1;
+ unsigned int GAT_CLK_ENA : 1;
+ unsigned int MH_CIB_tcroq_clk_en_int : 1;
+ unsigned int MH_CIB_mmu_clk_en_int : 1;
+ unsigned int MH_CIB_mh_clk_en_int : 1;
+ unsigned int MH_RBBM_busy : 1;
+ unsigned int MH_CIB_axi_halt_ack : 1;
+ unsigned int CIB_MH_axi_halt_req : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG23 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int EFF2_FP_WINNER : 3;
+ unsigned int EFF2_LRU_WINNER_out : 3;
+ unsigned int EFF1_WINNER : 3;
+ unsigned int ARB_WINNER : 3;
+ unsigned int ARB_WINNER_q : 3;
+ unsigned int EFF1_WIN : 1;
+ unsigned int KILL_EFF1 : 1;
+ unsigned int ARB_HOLD : 1;
+ unsigned int ARB_RTR_q : 1;
+ unsigned int CP_SEND_QUAL : 1;
+ unsigned int VGT_SEND_QUAL : 1;
+ unsigned int TC_SEND_QUAL : 1;
+ unsigned int TC_SEND_EFF1_QUAL : 1;
+ unsigned int RB_SEND_QUAL : 1;
+ unsigned int ARB_QUAL : 1;
+ unsigned int CP_EFF1_REQ : 1;
+ unsigned int VGT_EFF1_REQ : 1;
+ unsigned int TC_EFF1_REQ : 1;
+ unsigned int RB_EFF1_REQ : 1;
+ unsigned int ANY_SAME_ROW_BANK : 1;
+ unsigned int TCD_NEARFULL_q : 1;
+ unsigned int TCHOLD_IP_q : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int TCHOLD_IP_q : 1;
+ unsigned int TCD_NEARFULL_q : 1;
+ unsigned int ANY_SAME_ROW_BANK : 1;
+ unsigned int RB_EFF1_REQ : 1;
+ unsigned int TC_EFF1_REQ : 1;
+ unsigned int VGT_EFF1_REQ : 1;
+ unsigned int CP_EFF1_REQ : 1;
+ unsigned int ARB_QUAL : 1;
+ unsigned int RB_SEND_QUAL : 1;
+ unsigned int TC_SEND_EFF1_QUAL : 1;
+ unsigned int TC_SEND_QUAL : 1;
+ unsigned int VGT_SEND_QUAL : 1;
+ unsigned int CP_SEND_QUAL : 1;
+ unsigned int ARB_RTR_q : 1;
+ unsigned int ARB_HOLD : 1;
+ unsigned int KILL_EFF1 : 1;
+ unsigned int EFF1_WIN : 1;
+ unsigned int ARB_WINNER_q : 3;
+ unsigned int ARB_WINNER : 3;
+ unsigned int EFF1_WINNER : 3;
+ unsigned int EFF2_LRU_WINNER_out : 3;
+ unsigned int EFF2_FP_WINNER : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG24 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int EFF1_WINNER : 3;
+ unsigned int ARB_WINNER : 3;
+ unsigned int CP_SEND_QUAL : 1;
+ unsigned int VGT_SEND_QUAL : 1;
+ unsigned int TC_SEND_QUAL : 1;
+ unsigned int TC_SEND_EFF1_QUAL : 1;
+ unsigned int RB_SEND_QUAL : 1;
+ unsigned int ARB_QUAL : 1;
+ unsigned int CP_EFF1_REQ : 1;
+ unsigned int VGT_EFF1_REQ : 1;
+ unsigned int TC_EFF1_REQ : 1;
+ unsigned int RB_EFF1_REQ : 1;
+ unsigned int EFF1_WIN : 1;
+ unsigned int KILL_EFF1 : 1;
+ unsigned int TCD_NEARFULL_q : 1;
+ unsigned int TC_ARB_HOLD : 1;
+ unsigned int ARB_HOLD : 1;
+ unsigned int ARB_RTR_q : 1;
+ unsigned int SAME_PAGE_LIMIT_COUNT_q : 10;
+#else /* !defined(qLittleEndian) */
+ unsigned int SAME_PAGE_LIMIT_COUNT_q : 10;
+ unsigned int ARB_RTR_q : 1;
+ unsigned int ARB_HOLD : 1;
+ unsigned int TC_ARB_HOLD : 1;
+ unsigned int TCD_NEARFULL_q : 1;
+ unsigned int KILL_EFF1 : 1;
+ unsigned int EFF1_WIN : 1;
+ unsigned int RB_EFF1_REQ : 1;
+ unsigned int TC_EFF1_REQ : 1;
+ unsigned int VGT_EFF1_REQ : 1;
+ unsigned int CP_EFF1_REQ : 1;
+ unsigned int ARB_QUAL : 1;
+ unsigned int RB_SEND_QUAL : 1;
+ unsigned int TC_SEND_EFF1_QUAL : 1;
+ unsigned int TC_SEND_QUAL : 1;
+ unsigned int VGT_SEND_QUAL : 1;
+ unsigned int CP_SEND_QUAL : 1;
+ unsigned int ARB_WINNER : 3;
+ unsigned int EFF1_WINNER : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG25 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int EFF2_LRU_WINNER_out : 3;
+ unsigned int ARB_WINNER : 3;
+ unsigned int LEAST_RECENT_INDEX_d : 3;
+ unsigned int LEAST_RECENT_d : 3;
+ unsigned int UPDATE_RECENT_STACK_d : 1;
+ unsigned int ARB_HOLD : 1;
+ unsigned int ARB_RTR_q : 1;
+ unsigned int EFF1_WIN : 1;
+ unsigned int CLNT_REQ : 4;
+ unsigned int RECENT_d_0 : 3;
+ unsigned int RECENT_d_1 : 3;
+ unsigned int RECENT_d_2 : 3;
+ unsigned int RECENT_d_3 : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int RECENT_d_3 : 3;
+ unsigned int RECENT_d_2 : 3;
+ unsigned int RECENT_d_1 : 3;
+ unsigned int RECENT_d_0 : 3;
+ unsigned int CLNT_REQ : 4;
+ unsigned int EFF1_WIN : 1;
+ unsigned int ARB_RTR_q : 1;
+ unsigned int ARB_HOLD : 1;
+ unsigned int UPDATE_RECENT_STACK_d : 1;
+ unsigned int LEAST_RECENT_d : 3;
+ unsigned int LEAST_RECENT_INDEX_d : 3;
+ unsigned int ARB_WINNER : 3;
+ unsigned int EFF2_LRU_WINNER_out : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG26 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TC_ARB_HOLD : 1;
+ unsigned int TC_NOROQ_SAME_ROW_BANK : 1;
+ unsigned int TC_ROQ_SAME_ROW_BANK : 1;
+ unsigned int TCD_NEARFULL_q : 1;
+ unsigned int TCHOLD_IP_q : 1;
+ unsigned int TCHOLD_CNT_q : 3;
+ unsigned int MH_ARBITER_CONFIG_TC_REORDER_ENABLE : 1;
+ unsigned int TC_ROQ_RTR_DBG_q : 1;
+ unsigned int TC_ROQ_SEND_q : 1;
+ unsigned int TC_MH_written : 1;
+ unsigned int TCD_FULLNESS_CNT_q : 7;
+ unsigned int WBURST_ACTIVE : 1;
+ unsigned int WLAST_q : 1;
+ unsigned int WBURST_IP_q : 1;
+ unsigned int WBURST_CNT_q : 3;
+ unsigned int CP_SEND_QUAL : 1;
+ unsigned int CP_MH_write : 1;
+ unsigned int RB_SEND_QUAL : 1;
+ unsigned int ARB_WINNER : 3;
+ unsigned int : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 1;
+ unsigned int ARB_WINNER : 3;
+ unsigned int RB_SEND_QUAL : 1;
+ unsigned int CP_MH_write : 1;
+ unsigned int CP_SEND_QUAL : 1;
+ unsigned int WBURST_CNT_q : 3;
+ unsigned int WBURST_IP_q : 1;
+ unsigned int WLAST_q : 1;
+ unsigned int WBURST_ACTIVE : 1;
+ unsigned int TCD_FULLNESS_CNT_q : 7;
+ unsigned int TC_MH_written : 1;
+ unsigned int TC_ROQ_SEND_q : 1;
+ unsigned int TC_ROQ_RTR_DBG_q : 1;
+ unsigned int MH_ARBITER_CONFIG_TC_REORDER_ENABLE : 1;
+ unsigned int TCHOLD_CNT_q : 3;
+ unsigned int TCHOLD_IP_q : 1;
+ unsigned int TCD_NEARFULL_q : 1;
+ unsigned int TC_ROQ_SAME_ROW_BANK : 1;
+ unsigned int TC_NOROQ_SAME_ROW_BANK : 1;
+ unsigned int TC_ARB_HOLD : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG27 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RF_ARBITER_CONFIG_q : 26;
+ unsigned int MH_CLNT_AXI_ID_REUSE_MMUr_ID : 3;
+ unsigned int : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 3;
+ unsigned int MH_CLNT_AXI_ID_REUSE_MMUr_ID : 3;
+ unsigned int RF_ARBITER_CONFIG_q : 26;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG28 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SAME_ROW_BANK_q : 8;
+ unsigned int ROQ_MARK_q : 8;
+ unsigned int ROQ_VALID_q : 8;
+ unsigned int TC_MH_send : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int KILL_EFF1 : 1;
+ unsigned int TC_ROQ_SAME_ROW_BANK_SEL : 1;
+ unsigned int ANY_SAME_ROW_BANK : 1;
+ unsigned int TC_EFF1_QUAL : 1;
+ unsigned int TC_ROQ_EMPTY : 1;
+ unsigned int TC_ROQ_FULL : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int TC_ROQ_FULL : 1;
+ unsigned int TC_ROQ_EMPTY : 1;
+ unsigned int TC_EFF1_QUAL : 1;
+ unsigned int ANY_SAME_ROW_BANK : 1;
+ unsigned int TC_ROQ_SAME_ROW_BANK_SEL : 1;
+ unsigned int KILL_EFF1 : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int TC_MH_send : 1;
+ unsigned int ROQ_VALID_q : 8;
+ unsigned int ROQ_MARK_q : 8;
+ unsigned int SAME_ROW_BANK_q : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG29 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SAME_ROW_BANK_q : 8;
+ unsigned int ROQ_MARK_d : 8;
+ unsigned int ROQ_VALID_d : 8;
+ unsigned int TC_MH_send : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int KILL_EFF1 : 1;
+ unsigned int TC_ROQ_SAME_ROW_BANK_SEL : 1;
+ unsigned int ANY_SAME_ROW_BANK : 1;
+ unsigned int TC_EFF1_QUAL : 1;
+ unsigned int TC_ROQ_EMPTY : 1;
+ unsigned int TC_ROQ_FULL : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int TC_ROQ_FULL : 1;
+ unsigned int TC_ROQ_EMPTY : 1;
+ unsigned int TC_EFF1_QUAL : 1;
+ unsigned int ANY_SAME_ROW_BANK : 1;
+ unsigned int TC_ROQ_SAME_ROW_BANK_SEL : 1;
+ unsigned int KILL_EFF1 : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int TC_MH_send : 1;
+ unsigned int ROQ_VALID_d : 8;
+ unsigned int ROQ_MARK_d : 8;
+ unsigned int SAME_ROW_BANK_q : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG30 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SAME_ROW_BANK_WIN : 8;
+ unsigned int SAME_ROW_BANK_REQ : 8;
+ unsigned int NON_SAME_ROW_BANK_WIN : 8;
+ unsigned int NON_SAME_ROW_BANK_REQ : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int NON_SAME_ROW_BANK_REQ : 8;
+ unsigned int NON_SAME_ROW_BANK_WIN : 8;
+ unsigned int SAME_ROW_BANK_REQ : 8;
+ unsigned int SAME_ROW_BANK_WIN : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG31 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TC_MH_send : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int ROQ_MARK_q_0 : 1;
+ unsigned int ROQ_VALID_q_0 : 1;
+ unsigned int SAME_ROW_BANK_q_0 : 1;
+ unsigned int ROQ_ADDR_0 : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int ROQ_ADDR_0 : 27;
+ unsigned int SAME_ROW_BANK_q_0 : 1;
+ unsigned int ROQ_VALID_q_0 : 1;
+ unsigned int ROQ_MARK_q_0 : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int TC_MH_send : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG32 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TC_MH_send : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int ROQ_MARK_q_1 : 1;
+ unsigned int ROQ_VALID_q_1 : 1;
+ unsigned int SAME_ROW_BANK_q_1 : 1;
+ unsigned int ROQ_ADDR_1 : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int ROQ_ADDR_1 : 27;
+ unsigned int SAME_ROW_BANK_q_1 : 1;
+ unsigned int ROQ_VALID_q_1 : 1;
+ unsigned int ROQ_MARK_q_1 : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int TC_MH_send : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG33 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TC_MH_send : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int ROQ_MARK_q_2 : 1;
+ unsigned int ROQ_VALID_q_2 : 1;
+ unsigned int SAME_ROW_BANK_q_2 : 1;
+ unsigned int ROQ_ADDR_2 : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int ROQ_ADDR_2 : 27;
+ unsigned int SAME_ROW_BANK_q_2 : 1;
+ unsigned int ROQ_VALID_q_2 : 1;
+ unsigned int ROQ_MARK_q_2 : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int TC_MH_send : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG34 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TC_MH_send : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int ROQ_MARK_q_3 : 1;
+ unsigned int ROQ_VALID_q_3 : 1;
+ unsigned int SAME_ROW_BANK_q_3 : 1;
+ unsigned int ROQ_ADDR_3 : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int ROQ_ADDR_3 : 27;
+ unsigned int SAME_ROW_BANK_q_3 : 1;
+ unsigned int ROQ_VALID_q_3 : 1;
+ unsigned int ROQ_MARK_q_3 : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int TC_MH_send : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG35 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TC_MH_send : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int ROQ_MARK_q_4 : 1;
+ unsigned int ROQ_VALID_q_4 : 1;
+ unsigned int SAME_ROW_BANK_q_4 : 1;
+ unsigned int ROQ_ADDR_4 : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int ROQ_ADDR_4 : 27;
+ unsigned int SAME_ROW_BANK_q_4 : 1;
+ unsigned int ROQ_VALID_q_4 : 1;
+ unsigned int ROQ_MARK_q_4 : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int TC_MH_send : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG36 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TC_MH_send : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int ROQ_MARK_q_5 : 1;
+ unsigned int ROQ_VALID_q_5 : 1;
+ unsigned int SAME_ROW_BANK_q_5 : 1;
+ unsigned int ROQ_ADDR_5 : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int ROQ_ADDR_5 : 27;
+ unsigned int SAME_ROW_BANK_q_5 : 1;
+ unsigned int ROQ_VALID_q_5 : 1;
+ unsigned int ROQ_MARK_q_5 : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int TC_MH_send : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG37 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TC_MH_send : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int ROQ_MARK_q_6 : 1;
+ unsigned int ROQ_VALID_q_6 : 1;
+ unsigned int SAME_ROW_BANK_q_6 : 1;
+ unsigned int ROQ_ADDR_6 : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int ROQ_ADDR_6 : 27;
+ unsigned int SAME_ROW_BANK_q_6 : 1;
+ unsigned int ROQ_VALID_q_6 : 1;
+ unsigned int ROQ_MARK_q_6 : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int TC_MH_send : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG38 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TC_MH_send : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int ROQ_MARK_q_7 : 1;
+ unsigned int ROQ_VALID_q_7 : 1;
+ unsigned int SAME_ROW_BANK_q_7 : 1;
+ unsigned int ROQ_ADDR_7 : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int ROQ_ADDR_7 : 27;
+ unsigned int SAME_ROW_BANK_q_7 : 1;
+ unsigned int ROQ_VALID_q_7 : 1;
+ unsigned int ROQ_MARK_q_7 : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int TC_MH_send : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG39 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ARB_WE : 1;
+ unsigned int MMU_RTR : 1;
+ unsigned int ARB_ID_q : 3;
+ unsigned int ARB_WRITE_q : 1;
+ unsigned int ARB_BLEN_q : 1;
+ unsigned int ARQ_CTRL_EMPTY : 1;
+ unsigned int ARQ_FIFO_CNT_q : 3;
+ unsigned int MMU_WE : 1;
+ unsigned int ARQ_RTR : 1;
+ unsigned int MMU_ID : 3;
+ unsigned int MMU_WRITE : 1;
+ unsigned int MMU_BLEN : 1;
+ unsigned int : 14;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 14;
+ unsigned int MMU_BLEN : 1;
+ unsigned int MMU_WRITE : 1;
+ unsigned int MMU_ID : 3;
+ unsigned int ARQ_RTR : 1;
+ unsigned int MMU_WE : 1;
+ unsigned int ARQ_FIFO_CNT_q : 3;
+ unsigned int ARQ_CTRL_EMPTY : 1;
+ unsigned int ARB_BLEN_q : 1;
+ unsigned int ARB_WRITE_q : 1;
+ unsigned int ARB_ID_q : 3;
+ unsigned int MMU_RTR : 1;
+ unsigned int ARB_WE : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG40 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ARB_WE : 1;
+ unsigned int ARB_ID_q : 3;
+ unsigned int ARB_VAD_q : 28;
+#else /* !defined(qLittleEndian) */
+ unsigned int ARB_VAD_q : 28;
+ unsigned int ARB_ID_q : 3;
+ unsigned int ARB_WE : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG41 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MMU_WE : 1;
+ unsigned int MMU_ID : 3;
+ unsigned int MMU_PAD : 28;
+#else /* !defined(qLittleEndian) */
+ unsigned int MMU_PAD : 28;
+ unsigned int MMU_ID : 3;
+ unsigned int MMU_WE : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG42 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int WDB_WE : 1;
+ unsigned int WDB_RTR_SKID : 1;
+ unsigned int ARB_WSTRB_q : 8;
+ unsigned int ARB_WLAST : 1;
+ unsigned int WDB_CTRL_EMPTY : 1;
+ unsigned int WDB_FIFO_CNT_q : 5;
+ unsigned int WDC_WDB_RE_q : 1;
+ unsigned int WDB_WDC_WID : 3;
+ unsigned int WDB_WDC_WLAST : 1;
+ unsigned int WDB_WDC_WSTRB : 8;
+ unsigned int : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 2;
+ unsigned int WDB_WDC_WSTRB : 8;
+ unsigned int WDB_WDC_WLAST : 1;
+ unsigned int WDB_WDC_WID : 3;
+ unsigned int WDC_WDB_RE_q : 1;
+ unsigned int WDB_FIFO_CNT_q : 5;
+ unsigned int WDB_CTRL_EMPTY : 1;
+ unsigned int ARB_WLAST : 1;
+ unsigned int ARB_WSTRB_q : 8;
+ unsigned int WDB_RTR_SKID : 1;
+ unsigned int WDB_WE : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG43 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ARB_WDATA_q_31_0 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int ARB_WDATA_q_31_0 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG44 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ARB_WDATA_q_63_32 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int ARB_WDATA_q_63_32 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG45 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int WDB_WDC_WDATA_31_0 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int WDB_WDC_WDATA_31_0 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG46 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int WDB_WDC_WDATA_63_32 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int WDB_WDC_WDATA_63_32 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG47 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CTRL_ARC_EMPTY : 1;
+ unsigned int CTRL_RARC_EMPTY : 1;
+ unsigned int ARQ_CTRL_EMPTY : 1;
+ unsigned int ARQ_CTRL_WRITE : 1;
+ unsigned int TLBMISS_CTRL_RTS : 1;
+ unsigned int CTRL_TLBMISS_RE_q : 1;
+ unsigned int INFLT_LIMIT_q : 1;
+ unsigned int INFLT_LIMIT_CNT_q : 6;
+ unsigned int ARC_CTRL_RE_q : 1;
+ unsigned int RARC_CTRL_RE_q : 1;
+ unsigned int RVALID_q : 1;
+ unsigned int RREADY_q : 1;
+ unsigned int RLAST_q : 1;
+ unsigned int BVALID_q : 1;
+ unsigned int BREADY_q : 1;
+ unsigned int : 12;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 12;
+ unsigned int BREADY_q : 1;
+ unsigned int BVALID_q : 1;
+ unsigned int RLAST_q : 1;
+ unsigned int RREADY_q : 1;
+ unsigned int RVALID_q : 1;
+ unsigned int RARC_CTRL_RE_q : 1;
+ unsigned int ARC_CTRL_RE_q : 1;
+ unsigned int INFLT_LIMIT_CNT_q : 6;
+ unsigned int INFLT_LIMIT_q : 1;
+ unsigned int CTRL_TLBMISS_RE_q : 1;
+ unsigned int TLBMISS_CTRL_RTS : 1;
+ unsigned int ARQ_CTRL_WRITE : 1;
+ unsigned int ARQ_CTRL_EMPTY : 1;
+ unsigned int CTRL_RARC_EMPTY : 1;
+ unsigned int CTRL_ARC_EMPTY : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG48 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MH_CP_grb_send : 1;
+ unsigned int MH_VGT_grb_send : 1;
+ unsigned int MH_TC_mcsend : 1;
+ unsigned int MH_TLBMISS_SEND : 1;
+ unsigned int TLBMISS_VALID : 1;
+ unsigned int RDC_VALID : 1;
+ unsigned int RDC_RID : 3;
+ unsigned int RDC_RLAST : 1;
+ unsigned int RDC_RRESP : 2;
+ unsigned int TLBMISS_CTRL_RTS : 1;
+ unsigned int CTRL_TLBMISS_RE_q : 1;
+ unsigned int MMU_ID_REQUEST_q : 1;
+ unsigned int OUTSTANDING_MMUID_CNT_q : 6;
+ unsigned int MMU_ID_RESPONSE : 1;
+ unsigned int TLBMISS_RETURN_CNT_q : 6;
+ unsigned int CNT_HOLD_q1 : 1;
+ unsigned int MH_CLNT_AXI_ID_REUSE_MMUr_ID : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int MH_CLNT_AXI_ID_REUSE_MMUr_ID : 3;
+ unsigned int CNT_HOLD_q1 : 1;
+ unsigned int TLBMISS_RETURN_CNT_q : 6;
+ unsigned int MMU_ID_RESPONSE : 1;
+ unsigned int OUTSTANDING_MMUID_CNT_q : 6;
+ unsigned int MMU_ID_REQUEST_q : 1;
+ unsigned int CTRL_TLBMISS_RE_q : 1;
+ unsigned int TLBMISS_CTRL_RTS : 1;
+ unsigned int RDC_RRESP : 2;
+ unsigned int RDC_RLAST : 1;
+ unsigned int RDC_RID : 3;
+ unsigned int RDC_VALID : 1;
+ unsigned int TLBMISS_VALID : 1;
+ unsigned int MH_TLBMISS_SEND : 1;
+ unsigned int MH_TC_mcsend : 1;
+ unsigned int MH_VGT_grb_send : 1;
+ unsigned int MH_CP_grb_send : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG49 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RF_MMU_PAGE_FAULT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int RF_MMU_PAGE_FAULT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG50 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RF_MMU_CONFIG_q : 24;
+ unsigned int ARB_ID_q : 3;
+ unsigned int ARB_WRITE_q : 1;
+ unsigned int client_behavior_q : 2;
+ unsigned int ARB_WE : 1;
+ unsigned int MMU_RTR : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int MMU_RTR : 1;
+ unsigned int ARB_WE : 1;
+ unsigned int client_behavior_q : 2;
+ unsigned int ARB_WRITE_q : 1;
+ unsigned int ARB_ID_q : 3;
+ unsigned int RF_MMU_CONFIG_q : 24;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG51 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int stage1_valid : 1;
+ unsigned int IGNORE_TAG_MISS_q : 1;
+ unsigned int pa_in_mpu_range : 1;
+ unsigned int tag_match_q : 1;
+ unsigned int tag_miss_q : 1;
+ unsigned int va_in_range_q : 1;
+ unsigned int MMU_MISS : 1;
+ unsigned int MMU_READ_MISS : 1;
+ unsigned int MMU_WRITE_MISS : 1;
+ unsigned int MMU_HIT : 1;
+ unsigned int MMU_READ_HIT : 1;
+ unsigned int MMU_WRITE_HIT : 1;
+ unsigned int MMU_SPLIT_MODE_TC_MISS : 1;
+ unsigned int MMU_SPLIT_MODE_TC_HIT : 1;
+ unsigned int MMU_SPLIT_MODE_nonTC_MISS : 1;
+ unsigned int MMU_SPLIT_MODE_nonTC_HIT : 1;
+ unsigned int REQ_VA_OFFSET_q : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int REQ_VA_OFFSET_q : 16;
+ unsigned int MMU_SPLIT_MODE_nonTC_HIT : 1;
+ unsigned int MMU_SPLIT_MODE_nonTC_MISS : 1;
+ unsigned int MMU_SPLIT_MODE_TC_HIT : 1;
+ unsigned int MMU_SPLIT_MODE_TC_MISS : 1;
+ unsigned int MMU_WRITE_HIT : 1;
+ unsigned int MMU_READ_HIT : 1;
+ unsigned int MMU_HIT : 1;
+ unsigned int MMU_WRITE_MISS : 1;
+ unsigned int MMU_READ_MISS : 1;
+ unsigned int MMU_MISS : 1;
+ unsigned int va_in_range_q : 1;
+ unsigned int tag_miss_q : 1;
+ unsigned int tag_match_q : 1;
+ unsigned int pa_in_mpu_range : 1;
+ unsigned int IGNORE_TAG_MISS_q : 1;
+ unsigned int stage1_valid : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG52 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ARQ_RTR : 1;
+ unsigned int MMU_WE : 1;
+ unsigned int CTRL_TLBMISS_RE_q : 1;
+ unsigned int TLBMISS_CTRL_RTS : 1;
+ unsigned int MH_TLBMISS_SEND : 1;
+ unsigned int MMU_STALL_AWAITING_TLB_MISS_FETCH : 1;
+ unsigned int pa_in_mpu_range : 1;
+ unsigned int stage1_valid : 1;
+ unsigned int stage2_valid : 1;
+ unsigned int client_behavior_q : 2;
+ unsigned int IGNORE_TAG_MISS_q : 1;
+ unsigned int tag_match_q : 1;
+ unsigned int tag_miss_q : 1;
+ unsigned int va_in_range_q : 1;
+ unsigned int PTE_FETCH_COMPLETE_q : 1;
+ unsigned int TAG_valid_q : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int TAG_valid_q : 16;
+ unsigned int PTE_FETCH_COMPLETE_q : 1;
+ unsigned int va_in_range_q : 1;
+ unsigned int tag_miss_q : 1;
+ unsigned int tag_match_q : 1;
+ unsigned int IGNORE_TAG_MISS_q : 1;
+ unsigned int client_behavior_q : 2;
+ unsigned int stage2_valid : 1;
+ unsigned int stage1_valid : 1;
+ unsigned int pa_in_mpu_range : 1;
+ unsigned int MMU_STALL_AWAITING_TLB_MISS_FETCH : 1;
+ unsigned int MH_TLBMISS_SEND : 1;
+ unsigned int TLBMISS_CTRL_RTS : 1;
+ unsigned int CTRL_TLBMISS_RE_q : 1;
+ unsigned int MMU_WE : 1;
+ unsigned int ARQ_RTR : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG53 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TAG0_VA : 13;
+ unsigned int TAG_valid_q_0 : 1;
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int TAG1_VA : 13;
+ unsigned int TAG_valid_q_1 : 1;
+ unsigned int : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 2;
+ unsigned int TAG_valid_q_1 : 1;
+ unsigned int TAG1_VA : 13;
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int TAG_valid_q_0 : 1;
+ unsigned int TAG0_VA : 13;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG54 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TAG2_VA : 13;
+ unsigned int TAG_valid_q_2 : 1;
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int TAG3_VA : 13;
+ unsigned int TAG_valid_q_3 : 1;
+ unsigned int : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 2;
+ unsigned int TAG_valid_q_3 : 1;
+ unsigned int TAG3_VA : 13;
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int TAG_valid_q_2 : 1;
+ unsigned int TAG2_VA : 13;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG55 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TAG4_VA : 13;
+ unsigned int TAG_valid_q_4 : 1;
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int TAG5_VA : 13;
+ unsigned int TAG_valid_q_5 : 1;
+ unsigned int : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 2;
+ unsigned int TAG_valid_q_5 : 1;
+ unsigned int TAG5_VA : 13;
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int TAG_valid_q_4 : 1;
+ unsigned int TAG4_VA : 13;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG56 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TAG6_VA : 13;
+ unsigned int TAG_valid_q_6 : 1;
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int TAG7_VA : 13;
+ unsigned int TAG_valid_q_7 : 1;
+ unsigned int : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 2;
+ unsigned int TAG_valid_q_7 : 1;
+ unsigned int TAG7_VA : 13;
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int TAG_valid_q_6 : 1;
+ unsigned int TAG6_VA : 13;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG57 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TAG8_VA : 13;
+ unsigned int TAG_valid_q_8 : 1;
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int TAG9_VA : 13;
+ unsigned int TAG_valid_q_9 : 1;
+ unsigned int : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 2;
+ unsigned int TAG_valid_q_9 : 1;
+ unsigned int TAG9_VA : 13;
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int TAG_valid_q_8 : 1;
+ unsigned int TAG8_VA : 13;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG58 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TAG10_VA : 13;
+ unsigned int TAG_valid_q_10 : 1;
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int TAG11_VA : 13;
+ unsigned int TAG_valid_q_11 : 1;
+ unsigned int : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 2;
+ unsigned int TAG_valid_q_11 : 1;
+ unsigned int TAG11_VA : 13;
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int TAG_valid_q_10 : 1;
+ unsigned int TAG10_VA : 13;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG59 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TAG12_VA : 13;
+ unsigned int TAG_valid_q_12 : 1;
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int TAG13_VA : 13;
+ unsigned int TAG_valid_q_13 : 1;
+ unsigned int : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 2;
+ unsigned int TAG_valid_q_13 : 1;
+ unsigned int TAG13_VA : 13;
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int TAG_valid_q_12 : 1;
+ unsigned int TAG12_VA : 13;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG60 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TAG14_VA : 13;
+ unsigned int TAG_valid_q_14 : 1;
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int TAG15_VA : 13;
+ unsigned int TAG_valid_q_15 : 1;
+ unsigned int : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 2;
+ unsigned int TAG_valid_q_15 : 1;
+ unsigned int TAG15_VA : 13;
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int TAG_valid_q_14 : 1;
+ unsigned int TAG14_VA : 13;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG61 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MH_DBG_DEFAULT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int MH_DBG_DEFAULT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG62 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MH_DBG_DEFAULT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int MH_DBG_DEFAULT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG63 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MH_DBG_DEFAULT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int MH_DBG_DEFAULT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_MMU_CONFIG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MMU_ENABLE : 1;
+ unsigned int SPLIT_MODE_ENABLE : 1;
+ unsigned int RESERVED1 : 2;
+ unsigned int RB_W_CLNT_BEHAVIOR : 2;
+ unsigned int CP_W_CLNT_BEHAVIOR : 2;
+ unsigned int CP_R0_CLNT_BEHAVIOR : 2;
+ unsigned int CP_R1_CLNT_BEHAVIOR : 2;
+ unsigned int CP_R2_CLNT_BEHAVIOR : 2;
+ unsigned int CP_R3_CLNT_BEHAVIOR : 2;
+ unsigned int CP_R4_CLNT_BEHAVIOR : 2;
+ unsigned int VGT_R0_CLNT_BEHAVIOR : 2;
+ unsigned int VGT_R1_CLNT_BEHAVIOR : 2;
+ unsigned int TC_R_CLNT_BEHAVIOR : 2;
+ unsigned int : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 8;
+ unsigned int TC_R_CLNT_BEHAVIOR : 2;
+ unsigned int VGT_R1_CLNT_BEHAVIOR : 2;
+ unsigned int VGT_R0_CLNT_BEHAVIOR : 2;
+ unsigned int CP_R4_CLNT_BEHAVIOR : 2;
+ unsigned int CP_R3_CLNT_BEHAVIOR : 2;
+ unsigned int CP_R2_CLNT_BEHAVIOR : 2;
+ unsigned int CP_R1_CLNT_BEHAVIOR : 2;
+ unsigned int CP_R0_CLNT_BEHAVIOR : 2;
+ unsigned int CP_W_CLNT_BEHAVIOR : 2;
+ unsigned int RB_W_CLNT_BEHAVIOR : 2;
+ unsigned int RESERVED1 : 2;
+ unsigned int SPLIT_MODE_ENABLE : 1;
+ unsigned int MMU_ENABLE : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_MMU_VA_RANGE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int NUM_64KB_REGIONS : 12;
+ unsigned int VA_BASE : 20;
+#else /* !defined(qLittleEndian) */
+ unsigned int VA_BASE : 20;
+ unsigned int NUM_64KB_REGIONS : 12;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_MMU_PT_BASE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 12;
+ unsigned int PT_BASE : 20;
+#else /* !defined(qLittleEndian) */
+ unsigned int PT_BASE : 20;
+ unsigned int : 12;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_MMU_PAGE_FAULT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PAGE_FAULT : 1;
+ unsigned int OP_TYPE : 1;
+ unsigned int CLNT_BEHAVIOR : 2;
+ unsigned int AXI_ID : 3;
+ unsigned int RESERVED1 : 1;
+ unsigned int MPU_ADDRESS_OUT_OF_RANGE : 1;
+ unsigned int ADDRESS_OUT_OF_RANGE : 1;
+ unsigned int READ_PROTECTION_ERROR : 1;
+ unsigned int WRITE_PROTECTION_ERROR : 1;
+ unsigned int REQ_VA : 20;
+#else /* !defined(qLittleEndian) */
+ unsigned int REQ_VA : 20;
+ unsigned int WRITE_PROTECTION_ERROR : 1;
+ unsigned int READ_PROTECTION_ERROR : 1;
+ unsigned int ADDRESS_OUT_OF_RANGE : 1;
+ unsigned int MPU_ADDRESS_OUT_OF_RANGE : 1;
+ unsigned int RESERVED1 : 1;
+ unsigned int AXI_ID : 3;
+ unsigned int CLNT_BEHAVIOR : 2;
+ unsigned int OP_TYPE : 1;
+ unsigned int PAGE_FAULT : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_MMU_TRAN_ERROR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 5;
+ unsigned int TRAN_ERROR : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int TRAN_ERROR : 27;
+ unsigned int : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_MMU_INVALIDATE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int INVALIDATE_ALL : 1;
+ unsigned int INVALIDATE_TC : 1;
+ unsigned int : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 30;
+ unsigned int INVALIDATE_TC : 1;
+ unsigned int INVALIDATE_ALL : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_MMU_MPU_BASE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 12;
+ unsigned int MPU_BASE : 20;
+#else /* !defined(qLittleEndian) */
+ unsigned int MPU_BASE : 20;
+ unsigned int : 12;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_MMU_MPU_END {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 12;
+ unsigned int MPU_END : 20;
+#else /* !defined(qLittleEndian) */
+ unsigned int MPU_END : 20;
+ unsigned int : 12;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union WAIT_UNTIL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 1;
+ unsigned int WAIT_RE_VSYNC : 1;
+ unsigned int WAIT_FE_VSYNC : 1;
+ unsigned int WAIT_VSYNC : 1;
+ unsigned int WAIT_DSPLY_ID0 : 1;
+ unsigned int WAIT_DSPLY_ID1 : 1;
+ unsigned int WAIT_DSPLY_ID2 : 1;
+ unsigned int : 3;
+ unsigned int WAIT_CMDFIFO : 1;
+ unsigned int : 3;
+ unsigned int WAIT_2D_IDLE : 1;
+ unsigned int WAIT_3D_IDLE : 1;
+ unsigned int WAIT_2D_IDLECLEAN : 1;
+ unsigned int WAIT_3D_IDLECLEAN : 1;
+ unsigned int : 2;
+ unsigned int CMDFIFO_ENTRIES : 4;
+ unsigned int : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 8;
+ unsigned int CMDFIFO_ENTRIES : 4;
+ unsigned int : 2;
+ unsigned int WAIT_3D_IDLECLEAN : 1;
+ unsigned int WAIT_2D_IDLECLEAN : 1;
+ unsigned int WAIT_3D_IDLE : 1;
+ unsigned int WAIT_2D_IDLE : 1;
+ unsigned int : 3;
+ unsigned int WAIT_CMDFIFO : 1;
+ unsigned int : 3;
+ unsigned int WAIT_DSPLY_ID2 : 1;
+ unsigned int WAIT_DSPLY_ID1 : 1;
+ unsigned int WAIT_DSPLY_ID0 : 1;
+ unsigned int WAIT_VSYNC : 1;
+ unsigned int WAIT_FE_VSYNC : 1;
+ unsigned int WAIT_RE_VSYNC : 1;
+ unsigned int : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_ISYNC_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 4;
+ unsigned int ISYNC_WAIT_IDLEGUI : 1;
+ unsigned int ISYNC_CPSCRATCH_IDLEGUI : 1;
+ unsigned int : 26;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 26;
+ unsigned int ISYNC_CPSCRATCH_IDLEGUI : 1;
+ unsigned int ISYNC_WAIT_IDLEGUI : 1;
+ unsigned int : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_STATUS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CMDFIFO_AVAIL : 5;
+ unsigned int TC_BUSY : 1;
+ unsigned int : 2;
+ unsigned int HIRQ_PENDING : 1;
+ unsigned int CPRQ_PENDING : 1;
+ unsigned int CFRQ_PENDING : 1;
+ unsigned int PFRQ_PENDING : 1;
+ unsigned int VGT_BUSY_NO_DMA : 1;
+ unsigned int : 1;
+ unsigned int RBBM_WU_BUSY : 1;
+ unsigned int : 1;
+ unsigned int CP_NRT_BUSY : 1;
+ unsigned int : 1;
+ unsigned int MH_BUSY : 1;
+ unsigned int MH_COHERENCY_BUSY : 1;
+ unsigned int : 1;
+ unsigned int SX_BUSY : 1;
+ unsigned int TPC_BUSY : 1;
+ unsigned int : 1;
+ unsigned int SC_CNTX_BUSY : 1;
+ unsigned int PA_BUSY : 1;
+ unsigned int VGT_BUSY : 1;
+ unsigned int SQ_CNTX17_BUSY : 1;
+ unsigned int SQ_CNTX0_BUSY : 1;
+ unsigned int : 1;
+ unsigned int RB_CNTX_BUSY : 1;
+ unsigned int GUI_ACTIVE : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int GUI_ACTIVE : 1;
+ unsigned int RB_CNTX_BUSY : 1;
+ unsigned int : 1;
+ unsigned int SQ_CNTX0_BUSY : 1;
+ unsigned int SQ_CNTX17_BUSY : 1;
+ unsigned int VGT_BUSY : 1;
+ unsigned int PA_BUSY : 1;
+ unsigned int SC_CNTX_BUSY : 1;
+ unsigned int : 1;
+ unsigned int TPC_BUSY : 1;
+ unsigned int SX_BUSY : 1;
+ unsigned int : 1;
+ unsigned int MH_COHERENCY_BUSY : 1;
+ unsigned int MH_BUSY : 1;
+ unsigned int : 1;
+ unsigned int CP_NRT_BUSY : 1;
+ unsigned int : 1;
+ unsigned int RBBM_WU_BUSY : 1;
+ unsigned int : 1;
+ unsigned int VGT_BUSY_NO_DMA : 1;
+ unsigned int PFRQ_PENDING : 1;
+ unsigned int CFRQ_PENDING : 1;
+ unsigned int CPRQ_PENDING : 1;
+ unsigned int HIRQ_PENDING : 1;
+ unsigned int : 2;
+ unsigned int TC_BUSY : 1;
+ unsigned int CMDFIFO_AVAIL : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_DSPLY {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DISPLAY_ID0_ACTIVE : 1;
+ unsigned int DISPLAY_ID1_ACTIVE : 1;
+ unsigned int DISPLAY_ID2_ACTIVE : 1;
+ unsigned int VSYNC_ACTIVE : 1;
+ unsigned int USE_DISPLAY_ID0 : 1;
+ unsigned int USE_DISPLAY_ID1 : 1;
+ unsigned int USE_DISPLAY_ID2 : 1;
+ unsigned int SW_CNTL : 1;
+ unsigned int NUM_BUFS : 2;
+ unsigned int : 22;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 22;
+ unsigned int NUM_BUFS : 2;
+ unsigned int SW_CNTL : 1;
+ unsigned int USE_DISPLAY_ID2 : 1;
+ unsigned int USE_DISPLAY_ID1 : 1;
+ unsigned int USE_DISPLAY_ID0 : 1;
+ unsigned int VSYNC_ACTIVE : 1;
+ unsigned int DISPLAY_ID2_ACTIVE : 1;
+ unsigned int DISPLAY_ID1_ACTIVE : 1;
+ unsigned int DISPLAY_ID0_ACTIVE : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_RENDER_LATEST {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BUFFER_ID : 2;
+ unsigned int : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 30;
+ unsigned int BUFFER_ID : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_RTL_RELEASE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CHANGELIST : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int CHANGELIST : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_PATCH_RELEASE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PATCH_REVISION : 16;
+ unsigned int PATCH_SELECTION : 8;
+ unsigned int CUSTOMER_ID : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int CUSTOMER_ID : 8;
+ unsigned int PATCH_SELECTION : 8;
+ unsigned int PATCH_REVISION : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_AUXILIARY_CONFIG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RESERVED : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int RESERVED : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_PERIPHID0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PARTNUMBER0 : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PARTNUMBER0 : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_PERIPHID1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PARTNUMBER1 : 4;
+ unsigned int DESIGNER0 : 4;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int DESIGNER0 : 4;
+ unsigned int PARTNUMBER1 : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_PERIPHID2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DESIGNER1 : 4;
+ unsigned int REVISION : 4;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int REVISION : 4;
+ unsigned int DESIGNER1 : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_PERIPHID3 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RBBM_HOST_INTERFACE : 2;
+ unsigned int GARB_SLAVE_INTERFACE : 2;
+ unsigned int MH_INTERFACE : 2;
+ unsigned int : 1;
+ unsigned int CONTINUATION : 1;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int CONTINUATION : 1;
+ unsigned int : 1;
+ unsigned int MH_INTERFACE : 2;
+ unsigned int GARB_SLAVE_INTERFACE : 2;
+ unsigned int RBBM_HOST_INTERFACE : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int READ_TIMEOUT : 8;
+ unsigned int REGCLK_DEASSERT_TIME : 9;
+ unsigned int : 15;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 15;
+ unsigned int REGCLK_DEASSERT_TIME : 9;
+ unsigned int READ_TIMEOUT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_SKEW_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SKEW_TOP_THRESHOLD : 5;
+ unsigned int SKEW_COUNT : 5;
+ unsigned int : 22;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 22;
+ unsigned int SKEW_COUNT : 5;
+ unsigned int SKEW_TOP_THRESHOLD : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_SOFT_RESET {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SOFT_RESET_CP : 1;
+ unsigned int : 1;
+ unsigned int SOFT_RESET_PA : 1;
+ unsigned int SOFT_RESET_MH : 1;
+ unsigned int SOFT_RESET_BC : 1;
+ unsigned int SOFT_RESET_SQ : 1;
+ unsigned int SOFT_RESET_SX : 1;
+ unsigned int : 5;
+ unsigned int SOFT_RESET_CIB : 1;
+ unsigned int : 2;
+ unsigned int SOFT_RESET_SC : 1;
+ unsigned int SOFT_RESET_VGT : 1;
+ unsigned int : 15;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 15;
+ unsigned int SOFT_RESET_VGT : 1;
+ unsigned int SOFT_RESET_SC : 1;
+ unsigned int : 2;
+ unsigned int SOFT_RESET_CIB : 1;
+ unsigned int : 5;
+ unsigned int SOFT_RESET_SX : 1;
+ unsigned int SOFT_RESET_SQ : 1;
+ unsigned int SOFT_RESET_BC : 1;
+ unsigned int SOFT_RESET_MH : 1;
+ unsigned int SOFT_RESET_PA : 1;
+ unsigned int : 1;
+ unsigned int SOFT_RESET_CP : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_PM_OVERRIDE1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RBBM_AHBCLK_PM_OVERRIDE : 1;
+ unsigned int SC_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int SC_SCLK_PM_OVERRIDE : 1;
+ unsigned int SP_TOP_SCLK_PM_OVERRIDE : 1;
+ unsigned int SP_V0_SCLK_PM_OVERRIDE : 1;
+ unsigned int SQ_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int SQ_REG_FIFOS_SCLK_PM_OVERRIDE : 1;
+ unsigned int SQ_CONST_MEM_SCLK_PM_OVERRIDE : 1;
+ unsigned int SQ_SQ_SCLK_PM_OVERRIDE : 1;
+ unsigned int SX_SCLK_PM_OVERRIDE : 1;
+ unsigned int SX_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int TCM_TCO_SCLK_PM_OVERRIDE : 1;
+ unsigned int TCM_TCM_SCLK_PM_OVERRIDE : 1;
+ unsigned int TCM_TCD_SCLK_PM_OVERRIDE : 1;
+ unsigned int TCM_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int TPC_TPC_SCLK_PM_OVERRIDE : 1;
+ unsigned int TPC_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int TCF_TCA_SCLK_PM_OVERRIDE : 1;
+ unsigned int TCF_TCB_SCLK_PM_OVERRIDE : 1;
+ unsigned int TCF_TCB_READ_SCLK_PM_OVERRIDE : 1;
+ unsigned int TP_TP_SCLK_PM_OVERRIDE : 1;
+ unsigned int TP_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int CP_G_SCLK_PM_OVERRIDE : 1;
+ unsigned int CP_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int CP_G_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int SPI_SCLK_PM_OVERRIDE : 1;
+ unsigned int RB_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int RB_SCLK_PM_OVERRIDE : 1;
+ unsigned int MH_MH_SCLK_PM_OVERRIDE : 1;
+ unsigned int MH_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int MH_MMU_SCLK_PM_OVERRIDE : 1;
+ unsigned int MH_TCROQ_SCLK_PM_OVERRIDE : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int MH_TCROQ_SCLK_PM_OVERRIDE : 1;
+ unsigned int MH_MMU_SCLK_PM_OVERRIDE : 1;
+ unsigned int MH_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int MH_MH_SCLK_PM_OVERRIDE : 1;
+ unsigned int RB_SCLK_PM_OVERRIDE : 1;
+ unsigned int RB_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int SPI_SCLK_PM_OVERRIDE : 1;
+ unsigned int CP_G_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int CP_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int CP_G_SCLK_PM_OVERRIDE : 1;
+ unsigned int TP_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int TP_TP_SCLK_PM_OVERRIDE : 1;
+ unsigned int TCF_TCB_READ_SCLK_PM_OVERRIDE : 1;
+ unsigned int TCF_TCB_SCLK_PM_OVERRIDE : 1;
+ unsigned int TCF_TCA_SCLK_PM_OVERRIDE : 1;
+ unsigned int TPC_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int TPC_TPC_SCLK_PM_OVERRIDE : 1;
+ unsigned int TCM_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int TCM_TCD_SCLK_PM_OVERRIDE : 1;
+ unsigned int TCM_TCM_SCLK_PM_OVERRIDE : 1;
+ unsigned int TCM_TCO_SCLK_PM_OVERRIDE : 1;
+ unsigned int SX_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int SX_SCLK_PM_OVERRIDE : 1;
+ unsigned int SQ_SQ_SCLK_PM_OVERRIDE : 1;
+ unsigned int SQ_CONST_MEM_SCLK_PM_OVERRIDE : 1;
+ unsigned int SQ_REG_FIFOS_SCLK_PM_OVERRIDE : 1;
+ unsigned int SQ_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int SP_V0_SCLK_PM_OVERRIDE : 1;
+ unsigned int SP_TOP_SCLK_PM_OVERRIDE : 1;
+ unsigned int SC_SCLK_PM_OVERRIDE : 1;
+ unsigned int SC_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int RBBM_AHBCLK_PM_OVERRIDE : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_PM_OVERRIDE2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PA_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int PA_PA_SCLK_PM_OVERRIDE : 1;
+ unsigned int PA_AG_SCLK_PM_OVERRIDE : 1;
+ unsigned int VGT_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int VGT_FIFOS_SCLK_PM_OVERRIDE : 1;
+ unsigned int VGT_VGT_SCLK_PM_OVERRIDE : 1;
+ unsigned int DEBUG_PERF_SCLK_PM_OVERRIDE : 1;
+ unsigned int PERM_SCLK_PM_OVERRIDE : 1;
+ unsigned int GC_GA_GMEM0_PM_OVERRIDE : 1;
+ unsigned int GC_GA_GMEM1_PM_OVERRIDE : 1;
+ unsigned int GC_GA_GMEM2_PM_OVERRIDE : 1;
+ unsigned int GC_GA_GMEM3_PM_OVERRIDE : 1;
+ unsigned int : 20;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 20;
+ unsigned int GC_GA_GMEM3_PM_OVERRIDE : 1;
+ unsigned int GC_GA_GMEM2_PM_OVERRIDE : 1;
+ unsigned int GC_GA_GMEM1_PM_OVERRIDE : 1;
+ unsigned int GC_GA_GMEM0_PM_OVERRIDE : 1;
+ unsigned int PERM_SCLK_PM_OVERRIDE : 1;
+ unsigned int DEBUG_PERF_SCLK_PM_OVERRIDE : 1;
+ unsigned int VGT_VGT_SCLK_PM_OVERRIDE : 1;
+ unsigned int VGT_FIFOS_SCLK_PM_OVERRIDE : 1;
+ unsigned int VGT_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int PA_AG_SCLK_PM_OVERRIDE : 1;
+ unsigned int PA_PA_SCLK_PM_OVERRIDE : 1;
+ unsigned int PA_REG_SCLK_PM_OVERRIDE : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union GC_SYS_IDLE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int GC_SYS_IDLE_DELAY : 16;
+ unsigned int : 15;
+ unsigned int GC_SYS_IDLE_OVERRIDE : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int GC_SYS_IDLE_OVERRIDE : 1;
+ unsigned int : 15;
+ unsigned int GC_SYS_IDLE_DELAY : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union NQWAIT_UNTIL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int WAIT_GUI_IDLE : 1;
+ unsigned int : 31;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 31;
+ unsigned int WAIT_GUI_IDLE : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 1;
+ unsigned int IGNORE_RTR : 1;
+ unsigned int IGNORE_CP_SCHED_WU : 1;
+ unsigned int IGNORE_CP_SCHED_ISYNC : 1;
+ unsigned int IGNORE_CP_SCHED_NQ_HI : 1;
+ unsigned int : 3;
+ unsigned int HYSTERESIS_NRT_GUI_ACTIVE : 4;
+ unsigned int : 4;
+ unsigned int IGNORE_RTR_FOR_HI : 1;
+ unsigned int IGNORE_CP_RBBM_NRTRTR_FOR_HI : 1;
+ unsigned int IGNORE_VGT_RBBM_NRTRTR_FOR_HI : 1;
+ unsigned int IGNORE_SQ_RBBM_NRTRTR_FOR_HI : 1;
+ unsigned int CP_RBBM_NRTRTR : 1;
+ unsigned int VGT_RBBM_NRTRTR : 1;
+ unsigned int SQ_RBBM_NRTRTR : 1;
+ unsigned int CLIENTS_FOR_NRT_RTR_FOR_HI : 1;
+ unsigned int CLIENTS_FOR_NRT_RTR : 1;
+ unsigned int : 6;
+ unsigned int IGNORE_SX_RBBM_BUSY : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int IGNORE_SX_RBBM_BUSY : 1;
+ unsigned int : 6;
+ unsigned int CLIENTS_FOR_NRT_RTR : 1;
+ unsigned int CLIENTS_FOR_NRT_RTR_FOR_HI : 1;
+ unsigned int SQ_RBBM_NRTRTR : 1;
+ unsigned int VGT_RBBM_NRTRTR : 1;
+ unsigned int CP_RBBM_NRTRTR : 1;
+ unsigned int IGNORE_SQ_RBBM_NRTRTR_FOR_HI : 1;
+ unsigned int IGNORE_VGT_RBBM_NRTRTR_FOR_HI : 1;
+ unsigned int IGNORE_CP_RBBM_NRTRTR_FOR_HI : 1;
+ unsigned int IGNORE_RTR_FOR_HI : 1;
+ unsigned int : 4;
+ unsigned int HYSTERESIS_NRT_GUI_ACTIVE : 4;
+ unsigned int : 3;
+ unsigned int IGNORE_CP_SCHED_NQ_HI : 1;
+ unsigned int IGNORE_CP_SCHED_ISYNC : 1;
+ unsigned int IGNORE_CP_SCHED_WU : 1;
+ unsigned int IGNORE_RTR : 1;
+ unsigned int : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_READ_ERROR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 2;
+ unsigned int READ_ADDRESS : 15;
+ unsigned int : 13;
+ unsigned int READ_REQUESTER : 1;
+ unsigned int READ_ERROR : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int READ_ERROR : 1;
+ unsigned int READ_REQUESTER : 1;
+ unsigned int : 13;
+ unsigned int READ_ADDRESS : 15;
+ unsigned int : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_WAIT_IDLE_CLOCKS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int WAIT_IDLE_CLOCKS_NRT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int WAIT_IDLE_CLOCKS_NRT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_INT_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RDERR_INT_MASK : 1;
+ unsigned int DISPLAY_UPDATE_INT_MASK : 1;
+ unsigned int : 17;
+ unsigned int GUI_IDLE_INT_MASK : 1;
+ unsigned int : 12;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 12;
+ unsigned int GUI_IDLE_INT_MASK : 1;
+ unsigned int : 17;
+ unsigned int DISPLAY_UPDATE_INT_MASK : 1;
+ unsigned int RDERR_INT_MASK : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_INT_STATUS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RDERR_INT_STAT : 1;
+ unsigned int DISPLAY_UPDATE_INT_STAT : 1;
+ unsigned int : 17;
+ unsigned int GUI_IDLE_INT_STAT : 1;
+ unsigned int : 12;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 12;
+ unsigned int GUI_IDLE_INT_STAT : 1;
+ unsigned int : 17;
+ unsigned int DISPLAY_UPDATE_INT_STAT : 1;
+ unsigned int RDERR_INT_STAT : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_INT_ACK {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RDERR_INT_ACK : 1;
+ unsigned int DISPLAY_UPDATE_INT_ACK : 1;
+ unsigned int : 17;
+ unsigned int GUI_IDLE_INT_ACK : 1;
+ unsigned int : 12;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 12;
+ unsigned int GUI_IDLE_INT_ACK : 1;
+ unsigned int : 17;
+ unsigned int DISPLAY_UPDATE_INT_ACK : 1;
+ unsigned int RDERR_INT_ACK : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MASTER_INT_SIGNAL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 5;
+ unsigned int MH_INT_STAT : 1;
+ unsigned int : 24;
+ unsigned int CP_INT_STAT : 1;
+ unsigned int RBBM_INT_STAT : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int RBBM_INT_STAT : 1;
+ unsigned int CP_INT_STAT : 1;
+ unsigned int : 24;
+ unsigned int MH_INT_STAT : 1;
+ unsigned int : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_PERFCOUNTER1_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT1_SEL : 6;
+ unsigned int : 26;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 26;
+ unsigned int PERF_COUNT1_SEL : 6;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_PERFCOUNTER1_LO {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT1_LO : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERF_COUNT1_LO : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_PERFCOUNTER1_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT1_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERF_COUNT1_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_RB_BASE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 5;
+ unsigned int RB_BASE : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int RB_BASE : 27;
+ unsigned int : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_RB_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RB_BUFSZ : 6;
+ unsigned int : 2;
+ unsigned int RB_BLKSZ : 6;
+ unsigned int : 2;
+ unsigned int BUF_SWAP : 2;
+ unsigned int : 2;
+ unsigned int RB_POLL_EN : 1;
+ unsigned int : 6;
+ unsigned int RB_NO_UPDATE : 1;
+ unsigned int : 3;
+ unsigned int RB_RPTR_WR_ENA : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int RB_RPTR_WR_ENA : 1;
+ unsigned int : 3;
+ unsigned int RB_NO_UPDATE : 1;
+ unsigned int : 6;
+ unsigned int RB_POLL_EN : 1;
+ unsigned int : 2;
+ unsigned int BUF_SWAP : 2;
+ unsigned int : 2;
+ unsigned int RB_BLKSZ : 6;
+ unsigned int : 2;
+ unsigned int RB_BUFSZ : 6;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_RB_RPTR_ADDR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RB_RPTR_SWAP : 2;
+ unsigned int RB_RPTR_ADDR : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int RB_RPTR_ADDR : 30;
+ unsigned int RB_RPTR_SWAP : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_RB_RPTR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RB_RPTR : 20;
+ unsigned int : 12;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 12;
+ unsigned int RB_RPTR : 20;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_RB_RPTR_WR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RB_RPTR_WR : 20;
+ unsigned int : 12;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 12;
+ unsigned int RB_RPTR_WR : 20;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_RB_WPTR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RB_WPTR : 20;
+ unsigned int : 12;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 12;
+ unsigned int RB_WPTR : 20;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_RB_WPTR_DELAY {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PRE_WRITE_TIMER : 28;
+ unsigned int PRE_WRITE_LIMIT : 4;
+#else /* !defined(qLittleEndian) */
+ unsigned int PRE_WRITE_LIMIT : 4;
+ unsigned int PRE_WRITE_TIMER : 28;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_RB_WPTR_BASE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RB_WPTR_SWAP : 2;
+ unsigned int RB_WPTR_BASE : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int RB_WPTR_BASE : 30;
+ unsigned int RB_WPTR_SWAP : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_IB1_BASE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 2;
+ unsigned int IB1_BASE : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int IB1_BASE : 30;
+ unsigned int : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_IB1_BUFSZ {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int IB1_BUFSZ : 20;
+ unsigned int : 12;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 12;
+ unsigned int IB1_BUFSZ : 20;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_IB2_BASE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 2;
+ unsigned int IB2_BASE : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int IB2_BASE : 30;
+ unsigned int : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_IB2_BUFSZ {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int IB2_BUFSZ : 20;
+ unsigned int : 12;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 12;
+ unsigned int IB2_BUFSZ : 20;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ST_BASE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 2;
+ unsigned int ST_BASE : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int ST_BASE : 30;
+ unsigned int : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ST_BUFSZ {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ST_BUFSZ : 20;
+ unsigned int : 12;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 12;
+ unsigned int ST_BUFSZ : 20;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_QUEUE_THRESHOLDS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CSQ_IB1_START : 4;
+ unsigned int : 4;
+ unsigned int CSQ_IB2_START : 4;
+ unsigned int : 4;
+ unsigned int CSQ_ST_START : 4;
+ unsigned int : 12;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 12;
+ unsigned int CSQ_ST_START : 4;
+ unsigned int : 4;
+ unsigned int CSQ_IB2_START : 4;
+ unsigned int : 4;
+ unsigned int CSQ_IB1_START : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_MEQ_THRESHOLDS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 16;
+ unsigned int MEQ_END : 5;
+ unsigned int : 3;
+ unsigned int ROQ_END : 5;
+ unsigned int : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 3;
+ unsigned int ROQ_END : 5;
+ unsigned int : 3;
+ unsigned int MEQ_END : 5;
+ unsigned int : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_CSQ_AVAIL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CSQ_CNT_RING : 7;
+ unsigned int : 1;
+ unsigned int CSQ_CNT_IB1 : 7;
+ unsigned int : 1;
+ unsigned int CSQ_CNT_IB2 : 7;
+ unsigned int : 9;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 9;
+ unsigned int CSQ_CNT_IB2 : 7;
+ unsigned int : 1;
+ unsigned int CSQ_CNT_IB1 : 7;
+ unsigned int : 1;
+ unsigned int CSQ_CNT_RING : 7;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_STQ_AVAIL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int STQ_CNT_ST : 7;
+ unsigned int : 25;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 25;
+ unsigned int STQ_CNT_ST : 7;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_MEQ_AVAIL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MEQ_CNT : 5;
+ unsigned int : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 27;
+ unsigned int MEQ_CNT : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_CSQ_RB_STAT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CSQ_RPTR_PRIMARY : 7;
+ unsigned int : 9;
+ unsigned int CSQ_WPTR_PRIMARY : 7;
+ unsigned int : 9;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 9;
+ unsigned int CSQ_WPTR_PRIMARY : 7;
+ unsigned int : 9;
+ unsigned int CSQ_RPTR_PRIMARY : 7;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_CSQ_IB1_STAT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CSQ_RPTR_INDIRECT1 : 7;
+ unsigned int : 9;
+ unsigned int CSQ_WPTR_INDIRECT1 : 7;
+ unsigned int : 9;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 9;
+ unsigned int CSQ_WPTR_INDIRECT1 : 7;
+ unsigned int : 9;
+ unsigned int CSQ_RPTR_INDIRECT1 : 7;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_CSQ_IB2_STAT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CSQ_RPTR_INDIRECT2 : 7;
+ unsigned int : 9;
+ unsigned int CSQ_WPTR_INDIRECT2 : 7;
+ unsigned int : 9;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 9;
+ unsigned int CSQ_WPTR_INDIRECT2 : 7;
+ unsigned int : 9;
+ unsigned int CSQ_RPTR_INDIRECT2 : 7;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_NON_PREFETCH_CNTRS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int IB1_COUNTER : 3;
+ unsigned int : 5;
+ unsigned int IB2_COUNTER : 3;
+ unsigned int : 21;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 21;
+ unsigned int IB2_COUNTER : 3;
+ unsigned int : 5;
+ unsigned int IB1_COUNTER : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_STQ_ST_STAT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int STQ_RPTR_ST : 7;
+ unsigned int : 9;
+ unsigned int STQ_WPTR_ST : 7;
+ unsigned int : 9;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 9;
+ unsigned int STQ_WPTR_ST : 7;
+ unsigned int : 9;
+ unsigned int STQ_RPTR_ST : 7;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_MEQ_STAT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MEQ_RPTR : 10;
+ unsigned int : 6;
+ unsigned int MEQ_WPTR : 10;
+ unsigned int : 6;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 6;
+ unsigned int MEQ_WPTR : 10;
+ unsigned int : 6;
+ unsigned int MEQ_RPTR : 10;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_MIU_TAG_STAT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TAG_0_STAT : 1;
+ unsigned int TAG_1_STAT : 1;
+ unsigned int TAG_2_STAT : 1;
+ unsigned int TAG_3_STAT : 1;
+ unsigned int TAG_4_STAT : 1;
+ unsigned int TAG_5_STAT : 1;
+ unsigned int TAG_6_STAT : 1;
+ unsigned int TAG_7_STAT : 1;
+ unsigned int TAG_8_STAT : 1;
+ unsigned int TAG_9_STAT : 1;
+ unsigned int TAG_10_STAT : 1;
+ unsigned int TAG_11_STAT : 1;
+ unsigned int TAG_12_STAT : 1;
+ unsigned int TAG_13_STAT : 1;
+ unsigned int TAG_14_STAT : 1;
+ unsigned int TAG_15_STAT : 1;
+ unsigned int TAG_16_STAT : 1;
+ unsigned int TAG_17_STAT : 1;
+ unsigned int : 13;
+ unsigned int INVALID_RETURN_TAG : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int INVALID_RETURN_TAG : 1;
+ unsigned int : 13;
+ unsigned int TAG_17_STAT : 1;
+ unsigned int TAG_16_STAT : 1;
+ unsigned int TAG_15_STAT : 1;
+ unsigned int TAG_14_STAT : 1;
+ unsigned int TAG_13_STAT : 1;
+ unsigned int TAG_12_STAT : 1;
+ unsigned int TAG_11_STAT : 1;
+ unsigned int TAG_10_STAT : 1;
+ unsigned int TAG_9_STAT : 1;
+ unsigned int TAG_8_STAT : 1;
+ unsigned int TAG_7_STAT : 1;
+ unsigned int TAG_6_STAT : 1;
+ unsigned int TAG_5_STAT : 1;
+ unsigned int TAG_4_STAT : 1;
+ unsigned int TAG_3_STAT : 1;
+ unsigned int TAG_2_STAT : 1;
+ unsigned int TAG_1_STAT : 1;
+ unsigned int TAG_0_STAT : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_CMD_INDEX {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CMD_INDEX : 7;
+ unsigned int : 9;
+ unsigned int CMD_QUEUE_SEL : 2;
+ unsigned int : 14;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 14;
+ unsigned int CMD_QUEUE_SEL : 2;
+ unsigned int : 9;
+ unsigned int CMD_INDEX : 7;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_CMD_DATA {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CMD_DATA : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int CMD_DATA : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ME_STATMUX : 16;
+ unsigned int : 9;
+ unsigned int VTX_DEALLOC_FIFO_EMPTY : 1;
+ unsigned int PIX_DEALLOC_FIFO_EMPTY : 1;
+ unsigned int : 1;
+ unsigned int ME_HALT : 1;
+ unsigned int ME_BUSY : 1;
+ unsigned int : 1;
+ unsigned int PROG_CNT_SIZE : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int PROG_CNT_SIZE : 1;
+ unsigned int : 1;
+ unsigned int ME_BUSY : 1;
+ unsigned int ME_HALT : 1;
+ unsigned int : 1;
+ unsigned int PIX_DEALLOC_FIFO_EMPTY : 1;
+ unsigned int VTX_DEALLOC_FIFO_EMPTY : 1;
+ unsigned int : 9;
+ unsigned int ME_STATMUX : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_STATUS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ME_DEBUG_DATA : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int ME_DEBUG_DATA : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_RAM_WADDR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ME_RAM_WADDR : 10;
+ unsigned int : 22;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 22;
+ unsigned int ME_RAM_WADDR : 10;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_RAM_RADDR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ME_RAM_RADDR : 10;
+ unsigned int : 22;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 22;
+ unsigned int ME_RAM_RADDR : 10;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_RAM_DATA {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ME_RAM_DATA : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int ME_RAM_DATA : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_RDADDR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ME_RDADDR : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int ME_RDADDR : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CP_DEBUG_UNUSED_22_to_0 : 23;
+ unsigned int PREDICATE_DISABLE : 1;
+ unsigned int PROG_END_PTR_ENABLE : 1;
+ unsigned int MIU_128BIT_WRITE_ENABLE : 1;
+ unsigned int PREFETCH_PASS_NOPS : 1;
+ unsigned int DYNAMIC_CLK_DISABLE : 1;
+ unsigned int PREFETCH_MATCH_DISABLE : 1;
+ unsigned int : 1;
+ unsigned int SIMPLE_ME_FLOW_CONTROL : 1;
+ unsigned int MIU_WRITE_PACK_DISABLE : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int MIU_WRITE_PACK_DISABLE : 1;
+ unsigned int SIMPLE_ME_FLOW_CONTROL : 1;
+ unsigned int : 1;
+ unsigned int PREFETCH_MATCH_DISABLE : 1;
+ unsigned int DYNAMIC_CLK_DISABLE : 1;
+ unsigned int PREFETCH_PASS_NOPS : 1;
+ unsigned int MIU_128BIT_WRITE_ENABLE : 1;
+ unsigned int PROG_END_PTR_ENABLE : 1;
+ unsigned int PREDICATE_DISABLE : 1;
+ unsigned int CP_DEBUG_UNUSED_22_to_0 : 23;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SCRATCH_REG0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SCRATCH_REG0 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int SCRATCH_REG0 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SCRATCH_REG1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SCRATCH_REG1 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int SCRATCH_REG1 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SCRATCH_REG2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SCRATCH_REG2 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int SCRATCH_REG2 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SCRATCH_REG3 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SCRATCH_REG3 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int SCRATCH_REG3 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SCRATCH_REG4 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SCRATCH_REG4 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int SCRATCH_REG4 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SCRATCH_REG5 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SCRATCH_REG5 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int SCRATCH_REG5 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SCRATCH_REG6 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SCRATCH_REG6 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int SCRATCH_REG6 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SCRATCH_REG7 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SCRATCH_REG7 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int SCRATCH_REG7 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SCRATCH_UMSK {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SCRATCH_UMSK : 8;
+ unsigned int : 8;
+ unsigned int SCRATCH_SWAP : 2;
+ unsigned int : 14;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 14;
+ unsigned int SCRATCH_SWAP : 2;
+ unsigned int : 8;
+ unsigned int SCRATCH_UMSK : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SCRATCH_ADDR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 5;
+ unsigned int SCRATCH_ADDR : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int SCRATCH_ADDR : 27;
+ unsigned int : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_VS_EVENT_SRC {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VS_DONE_SWM : 1;
+ unsigned int VS_DONE_CNTR : 1;
+ unsigned int : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 30;
+ unsigned int VS_DONE_CNTR : 1;
+ unsigned int VS_DONE_SWM : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_VS_EVENT_ADDR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VS_DONE_SWAP : 2;
+ unsigned int VS_DONE_ADDR : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int VS_DONE_ADDR : 30;
+ unsigned int VS_DONE_SWAP : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_VS_EVENT_DATA {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VS_DONE_DATA : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VS_DONE_DATA : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_VS_EVENT_ADDR_SWM {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VS_DONE_SWAP_SWM : 2;
+ unsigned int VS_DONE_ADDR_SWM : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int VS_DONE_ADDR_SWM : 30;
+ unsigned int VS_DONE_SWAP_SWM : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_VS_EVENT_DATA_SWM {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VS_DONE_DATA_SWM : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VS_DONE_DATA_SWM : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_PS_EVENT_SRC {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PS_DONE_SWM : 1;
+ unsigned int PS_DONE_CNTR : 1;
+ unsigned int : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 30;
+ unsigned int PS_DONE_CNTR : 1;
+ unsigned int PS_DONE_SWM : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_PS_EVENT_ADDR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PS_DONE_SWAP : 2;
+ unsigned int PS_DONE_ADDR : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int PS_DONE_ADDR : 30;
+ unsigned int PS_DONE_SWAP : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_PS_EVENT_DATA {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PS_DONE_DATA : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PS_DONE_DATA : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_PS_EVENT_ADDR_SWM {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PS_DONE_SWAP_SWM : 2;
+ unsigned int PS_DONE_ADDR_SWM : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int PS_DONE_ADDR_SWM : 30;
+ unsigned int PS_DONE_SWAP_SWM : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_PS_EVENT_DATA_SWM {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PS_DONE_DATA_SWM : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PS_DONE_DATA_SWM : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_CF_EVENT_SRC {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CF_DONE_SRC : 1;
+ unsigned int : 31;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 31;
+ unsigned int CF_DONE_SRC : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_CF_EVENT_ADDR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CF_DONE_SWAP : 2;
+ unsigned int CF_DONE_ADDR : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int CF_DONE_ADDR : 30;
+ unsigned int CF_DONE_SWAP : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_CF_EVENT_DATA {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CF_DONE_DATA : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int CF_DONE_DATA : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_NRT_ADDR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int NRT_WRITE_SWAP : 2;
+ unsigned int NRT_WRITE_ADDR : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int NRT_WRITE_ADDR : 30;
+ unsigned int NRT_WRITE_SWAP : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_NRT_DATA {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int NRT_WRITE_DATA : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int NRT_WRITE_DATA : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_VS_FETCH_DONE_SRC {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VS_FETCH_DONE_CNTR : 1;
+ unsigned int : 31;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 31;
+ unsigned int VS_FETCH_DONE_CNTR : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_VS_FETCH_DONE_ADDR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VS_FETCH_DONE_SWAP : 2;
+ unsigned int VS_FETCH_DONE_ADDR : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int VS_FETCH_DONE_ADDR : 30;
+ unsigned int VS_FETCH_DONE_SWAP : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_VS_FETCH_DONE_DATA {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VS_FETCH_DONE_DATA : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VS_FETCH_DONE_DATA : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_INT_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 19;
+ unsigned int SW_INT_MASK : 1;
+ unsigned int : 3;
+ unsigned int T0_PACKET_IN_IB_MASK : 1;
+ unsigned int OPCODE_ERROR_MASK : 1;
+ unsigned int PROTECTED_MODE_ERROR_MASK : 1;
+ unsigned int RESERVED_BIT_ERROR_MASK : 1;
+ unsigned int IB_ERROR_MASK : 1;
+ unsigned int : 1;
+ unsigned int IB2_INT_MASK : 1;
+ unsigned int IB1_INT_MASK : 1;
+ unsigned int RB_INT_MASK : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int RB_INT_MASK : 1;
+ unsigned int IB1_INT_MASK : 1;
+ unsigned int IB2_INT_MASK : 1;
+ unsigned int : 1;
+ unsigned int IB_ERROR_MASK : 1;
+ unsigned int RESERVED_BIT_ERROR_MASK : 1;
+ unsigned int PROTECTED_MODE_ERROR_MASK : 1;
+ unsigned int OPCODE_ERROR_MASK : 1;
+ unsigned int T0_PACKET_IN_IB_MASK : 1;
+ unsigned int : 3;
+ unsigned int SW_INT_MASK : 1;
+ unsigned int : 19;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_INT_STATUS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 19;
+ unsigned int SW_INT_STAT : 1;
+ unsigned int : 3;
+ unsigned int T0_PACKET_IN_IB_STAT : 1;
+ unsigned int OPCODE_ERROR_STAT : 1;
+ unsigned int PROTECTED_MODE_ERROR_STAT : 1;
+ unsigned int RESERVED_BIT_ERROR_STAT : 1;
+ unsigned int IB_ERROR_STAT : 1;
+ unsigned int : 1;
+ unsigned int IB2_INT_STAT : 1;
+ unsigned int IB1_INT_STAT : 1;
+ unsigned int RB_INT_STAT : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int RB_INT_STAT : 1;
+ unsigned int IB1_INT_STAT : 1;
+ unsigned int IB2_INT_STAT : 1;
+ unsigned int : 1;
+ unsigned int IB_ERROR_STAT : 1;
+ unsigned int RESERVED_BIT_ERROR_STAT : 1;
+ unsigned int PROTECTED_MODE_ERROR_STAT : 1;
+ unsigned int OPCODE_ERROR_STAT : 1;
+ unsigned int T0_PACKET_IN_IB_STAT : 1;
+ unsigned int : 3;
+ unsigned int SW_INT_STAT : 1;
+ unsigned int : 19;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_INT_ACK {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 19;
+ unsigned int SW_INT_ACK : 1;
+ unsigned int : 3;
+ unsigned int T0_PACKET_IN_IB_ACK : 1;
+ unsigned int OPCODE_ERROR_ACK : 1;
+ unsigned int PROTECTED_MODE_ERROR_ACK : 1;
+ unsigned int RESERVED_BIT_ERROR_ACK : 1;
+ unsigned int IB_ERROR_ACK : 1;
+ unsigned int : 1;
+ unsigned int IB2_INT_ACK : 1;
+ unsigned int IB1_INT_ACK : 1;
+ unsigned int RB_INT_ACK : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int RB_INT_ACK : 1;
+ unsigned int IB1_INT_ACK : 1;
+ unsigned int IB2_INT_ACK : 1;
+ unsigned int : 1;
+ unsigned int IB_ERROR_ACK : 1;
+ unsigned int RESERVED_BIT_ERROR_ACK : 1;
+ unsigned int PROTECTED_MODE_ERROR_ACK : 1;
+ unsigned int OPCODE_ERROR_ACK : 1;
+ unsigned int T0_PACKET_IN_IB_ACK : 1;
+ unsigned int : 3;
+ unsigned int SW_INT_ACK : 1;
+ unsigned int : 19;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_PFP_UCODE_ADDR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int UCODE_ADDR : 9;
+ unsigned int : 23;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 23;
+ unsigned int UCODE_ADDR : 9;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_PFP_UCODE_DATA {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int UCODE_DATA : 24;
+ unsigned int : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 8;
+ unsigned int UCODE_DATA : 24;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_PERFMON_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFMON_STATE : 4;
+ unsigned int : 4;
+ unsigned int PERFMON_ENABLE_MODE : 2;
+ unsigned int : 22;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 22;
+ unsigned int PERFMON_ENABLE_MODE : 2;
+ unsigned int : 4;
+ unsigned int PERFMON_STATE : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_PERFCOUNTER_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNT_SEL : 6;
+ unsigned int : 26;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 26;
+ unsigned int PERFCOUNT_SEL : 6;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_PERFCOUNTER_LO {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNT_LO : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNT_LO : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_PERFCOUNTER_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNT_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNT_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_BIN_MASK_LO {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIN_MASK_LO : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIN_MASK_LO : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_BIN_MASK_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIN_MASK_HI : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIN_MASK_HI : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_BIN_SELECT_LO {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIN_SELECT_LO : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIN_SELECT_LO : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_BIN_SELECT_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIN_SELECT_HI : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIN_SELECT_HI : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_NV_FLAGS_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DISCARD_0 : 1;
+ unsigned int END_RCVD_0 : 1;
+ unsigned int DISCARD_1 : 1;
+ unsigned int END_RCVD_1 : 1;
+ unsigned int DISCARD_2 : 1;
+ unsigned int END_RCVD_2 : 1;
+ unsigned int DISCARD_3 : 1;
+ unsigned int END_RCVD_3 : 1;
+ unsigned int DISCARD_4 : 1;
+ unsigned int END_RCVD_4 : 1;
+ unsigned int DISCARD_5 : 1;
+ unsigned int END_RCVD_5 : 1;
+ unsigned int DISCARD_6 : 1;
+ unsigned int END_RCVD_6 : 1;
+ unsigned int DISCARD_7 : 1;
+ unsigned int END_RCVD_7 : 1;
+ unsigned int DISCARD_8 : 1;
+ unsigned int END_RCVD_8 : 1;
+ unsigned int DISCARD_9 : 1;
+ unsigned int END_RCVD_9 : 1;
+ unsigned int DISCARD_10 : 1;
+ unsigned int END_RCVD_10 : 1;
+ unsigned int DISCARD_11 : 1;
+ unsigned int END_RCVD_11 : 1;
+ unsigned int DISCARD_12 : 1;
+ unsigned int END_RCVD_12 : 1;
+ unsigned int DISCARD_13 : 1;
+ unsigned int END_RCVD_13 : 1;
+ unsigned int DISCARD_14 : 1;
+ unsigned int END_RCVD_14 : 1;
+ unsigned int DISCARD_15 : 1;
+ unsigned int END_RCVD_15 : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int END_RCVD_15 : 1;
+ unsigned int DISCARD_15 : 1;
+ unsigned int END_RCVD_14 : 1;
+ unsigned int DISCARD_14 : 1;
+ unsigned int END_RCVD_13 : 1;
+ unsigned int DISCARD_13 : 1;
+ unsigned int END_RCVD_12 : 1;
+ unsigned int DISCARD_12 : 1;
+ unsigned int END_RCVD_11 : 1;
+ unsigned int DISCARD_11 : 1;
+ unsigned int END_RCVD_10 : 1;
+ unsigned int DISCARD_10 : 1;
+ unsigned int END_RCVD_9 : 1;
+ unsigned int DISCARD_9 : 1;
+ unsigned int END_RCVD_8 : 1;
+ unsigned int DISCARD_8 : 1;
+ unsigned int END_RCVD_7 : 1;
+ unsigned int DISCARD_7 : 1;
+ unsigned int END_RCVD_6 : 1;
+ unsigned int DISCARD_6 : 1;
+ unsigned int END_RCVD_5 : 1;
+ unsigned int DISCARD_5 : 1;
+ unsigned int END_RCVD_4 : 1;
+ unsigned int DISCARD_4 : 1;
+ unsigned int END_RCVD_3 : 1;
+ unsigned int DISCARD_3 : 1;
+ unsigned int END_RCVD_2 : 1;
+ unsigned int DISCARD_2 : 1;
+ unsigned int END_RCVD_1 : 1;
+ unsigned int DISCARD_1 : 1;
+ unsigned int END_RCVD_0 : 1;
+ unsigned int DISCARD_0 : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_NV_FLAGS_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DISCARD_16 : 1;
+ unsigned int END_RCVD_16 : 1;
+ unsigned int DISCARD_17 : 1;
+ unsigned int END_RCVD_17 : 1;
+ unsigned int DISCARD_18 : 1;
+ unsigned int END_RCVD_18 : 1;
+ unsigned int DISCARD_19 : 1;
+ unsigned int END_RCVD_19 : 1;
+ unsigned int DISCARD_20 : 1;
+ unsigned int END_RCVD_20 : 1;
+ unsigned int DISCARD_21 : 1;
+ unsigned int END_RCVD_21 : 1;
+ unsigned int DISCARD_22 : 1;
+ unsigned int END_RCVD_22 : 1;
+ unsigned int DISCARD_23 : 1;
+ unsigned int END_RCVD_23 : 1;
+ unsigned int DISCARD_24 : 1;
+ unsigned int END_RCVD_24 : 1;
+ unsigned int DISCARD_25 : 1;
+ unsigned int END_RCVD_25 : 1;
+ unsigned int DISCARD_26 : 1;
+ unsigned int END_RCVD_26 : 1;
+ unsigned int DISCARD_27 : 1;
+ unsigned int END_RCVD_27 : 1;
+ unsigned int DISCARD_28 : 1;
+ unsigned int END_RCVD_28 : 1;
+ unsigned int DISCARD_29 : 1;
+ unsigned int END_RCVD_29 : 1;
+ unsigned int DISCARD_30 : 1;
+ unsigned int END_RCVD_30 : 1;
+ unsigned int DISCARD_31 : 1;
+ unsigned int END_RCVD_31 : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int END_RCVD_31 : 1;
+ unsigned int DISCARD_31 : 1;
+ unsigned int END_RCVD_30 : 1;
+ unsigned int DISCARD_30 : 1;
+ unsigned int END_RCVD_29 : 1;
+ unsigned int DISCARD_29 : 1;
+ unsigned int END_RCVD_28 : 1;
+ unsigned int DISCARD_28 : 1;
+ unsigned int END_RCVD_27 : 1;
+ unsigned int DISCARD_27 : 1;
+ unsigned int END_RCVD_26 : 1;
+ unsigned int DISCARD_26 : 1;
+ unsigned int END_RCVD_25 : 1;
+ unsigned int DISCARD_25 : 1;
+ unsigned int END_RCVD_24 : 1;
+ unsigned int DISCARD_24 : 1;
+ unsigned int END_RCVD_23 : 1;
+ unsigned int DISCARD_23 : 1;
+ unsigned int END_RCVD_22 : 1;
+ unsigned int DISCARD_22 : 1;
+ unsigned int END_RCVD_21 : 1;
+ unsigned int DISCARD_21 : 1;
+ unsigned int END_RCVD_20 : 1;
+ unsigned int DISCARD_20 : 1;
+ unsigned int END_RCVD_19 : 1;
+ unsigned int DISCARD_19 : 1;
+ unsigned int END_RCVD_18 : 1;
+ unsigned int DISCARD_18 : 1;
+ unsigned int END_RCVD_17 : 1;
+ unsigned int DISCARD_17 : 1;
+ unsigned int END_RCVD_16 : 1;
+ unsigned int DISCARD_16 : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_NV_FLAGS_2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DISCARD_32 : 1;
+ unsigned int END_RCVD_32 : 1;
+ unsigned int DISCARD_33 : 1;
+ unsigned int END_RCVD_33 : 1;
+ unsigned int DISCARD_34 : 1;
+ unsigned int END_RCVD_34 : 1;
+ unsigned int DISCARD_35 : 1;
+ unsigned int END_RCVD_35 : 1;
+ unsigned int DISCARD_36 : 1;
+ unsigned int END_RCVD_36 : 1;
+ unsigned int DISCARD_37 : 1;
+ unsigned int END_RCVD_37 : 1;
+ unsigned int DISCARD_38 : 1;
+ unsigned int END_RCVD_38 : 1;
+ unsigned int DISCARD_39 : 1;
+ unsigned int END_RCVD_39 : 1;
+ unsigned int DISCARD_40 : 1;
+ unsigned int END_RCVD_40 : 1;
+ unsigned int DISCARD_41 : 1;
+ unsigned int END_RCVD_41 : 1;
+ unsigned int DISCARD_42 : 1;
+ unsigned int END_RCVD_42 : 1;
+ unsigned int DISCARD_43 : 1;
+ unsigned int END_RCVD_43 : 1;
+ unsigned int DISCARD_44 : 1;
+ unsigned int END_RCVD_44 : 1;
+ unsigned int DISCARD_45 : 1;
+ unsigned int END_RCVD_45 : 1;
+ unsigned int DISCARD_46 : 1;
+ unsigned int END_RCVD_46 : 1;
+ unsigned int DISCARD_47 : 1;
+ unsigned int END_RCVD_47 : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int END_RCVD_47 : 1;
+ unsigned int DISCARD_47 : 1;
+ unsigned int END_RCVD_46 : 1;
+ unsigned int DISCARD_46 : 1;
+ unsigned int END_RCVD_45 : 1;
+ unsigned int DISCARD_45 : 1;
+ unsigned int END_RCVD_44 : 1;
+ unsigned int DISCARD_44 : 1;
+ unsigned int END_RCVD_43 : 1;
+ unsigned int DISCARD_43 : 1;
+ unsigned int END_RCVD_42 : 1;
+ unsigned int DISCARD_42 : 1;
+ unsigned int END_RCVD_41 : 1;
+ unsigned int DISCARD_41 : 1;
+ unsigned int END_RCVD_40 : 1;
+ unsigned int DISCARD_40 : 1;
+ unsigned int END_RCVD_39 : 1;
+ unsigned int DISCARD_39 : 1;
+ unsigned int END_RCVD_38 : 1;
+ unsigned int DISCARD_38 : 1;
+ unsigned int END_RCVD_37 : 1;
+ unsigned int DISCARD_37 : 1;
+ unsigned int END_RCVD_36 : 1;
+ unsigned int DISCARD_36 : 1;
+ unsigned int END_RCVD_35 : 1;
+ unsigned int DISCARD_35 : 1;
+ unsigned int END_RCVD_34 : 1;
+ unsigned int DISCARD_34 : 1;
+ unsigned int END_RCVD_33 : 1;
+ unsigned int DISCARD_33 : 1;
+ unsigned int END_RCVD_32 : 1;
+ unsigned int DISCARD_32 : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_NV_FLAGS_3 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DISCARD_48 : 1;
+ unsigned int END_RCVD_48 : 1;
+ unsigned int DISCARD_49 : 1;
+ unsigned int END_RCVD_49 : 1;
+ unsigned int DISCARD_50 : 1;
+ unsigned int END_RCVD_50 : 1;
+ unsigned int DISCARD_51 : 1;
+ unsigned int END_RCVD_51 : 1;
+ unsigned int DISCARD_52 : 1;
+ unsigned int END_RCVD_52 : 1;
+ unsigned int DISCARD_53 : 1;
+ unsigned int END_RCVD_53 : 1;
+ unsigned int DISCARD_54 : 1;
+ unsigned int END_RCVD_54 : 1;
+ unsigned int DISCARD_55 : 1;
+ unsigned int END_RCVD_55 : 1;
+ unsigned int DISCARD_56 : 1;
+ unsigned int END_RCVD_56 : 1;
+ unsigned int DISCARD_57 : 1;
+ unsigned int END_RCVD_57 : 1;
+ unsigned int DISCARD_58 : 1;
+ unsigned int END_RCVD_58 : 1;
+ unsigned int DISCARD_59 : 1;
+ unsigned int END_RCVD_59 : 1;
+ unsigned int DISCARD_60 : 1;
+ unsigned int END_RCVD_60 : 1;
+ unsigned int DISCARD_61 : 1;
+ unsigned int END_RCVD_61 : 1;
+ unsigned int DISCARD_62 : 1;
+ unsigned int END_RCVD_62 : 1;
+ unsigned int DISCARD_63 : 1;
+ unsigned int END_RCVD_63 : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int END_RCVD_63 : 1;
+ unsigned int DISCARD_63 : 1;
+ unsigned int END_RCVD_62 : 1;
+ unsigned int DISCARD_62 : 1;
+ unsigned int END_RCVD_61 : 1;
+ unsigned int DISCARD_61 : 1;
+ unsigned int END_RCVD_60 : 1;
+ unsigned int DISCARD_60 : 1;
+ unsigned int END_RCVD_59 : 1;
+ unsigned int DISCARD_59 : 1;
+ unsigned int END_RCVD_58 : 1;
+ unsigned int DISCARD_58 : 1;
+ unsigned int END_RCVD_57 : 1;
+ unsigned int DISCARD_57 : 1;
+ unsigned int END_RCVD_56 : 1;
+ unsigned int DISCARD_56 : 1;
+ unsigned int END_RCVD_55 : 1;
+ unsigned int DISCARD_55 : 1;
+ unsigned int END_RCVD_54 : 1;
+ unsigned int DISCARD_54 : 1;
+ unsigned int END_RCVD_53 : 1;
+ unsigned int DISCARD_53 : 1;
+ unsigned int END_RCVD_52 : 1;
+ unsigned int DISCARD_52 : 1;
+ unsigned int END_RCVD_51 : 1;
+ unsigned int DISCARD_51 : 1;
+ unsigned int END_RCVD_50 : 1;
+ unsigned int DISCARD_50 : 1;
+ unsigned int END_RCVD_49 : 1;
+ unsigned int DISCARD_49 : 1;
+ unsigned int END_RCVD_48 : 1;
+ unsigned int DISCARD_48 : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_STATE_DEBUG_INDEX {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int STATE_DEBUG_INDEX : 5;
+ unsigned int : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 27;
+ unsigned int STATE_DEBUG_INDEX : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_STATE_DEBUG_DATA {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int STATE_DEBUG_DATA : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int STATE_DEBUG_DATA : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_PROG_COUNTER {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int COUNTER : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int COUNTER : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_STAT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MIU_WR_BUSY : 1;
+ unsigned int MIU_RD_REQ_BUSY : 1;
+ unsigned int MIU_RD_RETURN_BUSY : 1;
+ unsigned int RBIU_BUSY : 1;
+ unsigned int RCIU_BUSY : 1;
+ unsigned int CSF_RING_BUSY : 1;
+ unsigned int CSF_INDIRECTS_BUSY : 1;
+ unsigned int CSF_INDIRECT2_BUSY : 1;
+ unsigned int : 1;
+ unsigned int CSF_ST_BUSY : 1;
+ unsigned int CSF_BUSY : 1;
+ unsigned int RING_QUEUE_BUSY : 1;
+ unsigned int INDIRECTS_QUEUE_BUSY : 1;
+ unsigned int INDIRECT2_QUEUE_BUSY : 1;
+ unsigned int : 2;
+ unsigned int ST_QUEUE_BUSY : 1;
+ unsigned int PFP_BUSY : 1;
+ unsigned int MEQ_RING_BUSY : 1;
+ unsigned int MEQ_INDIRECTS_BUSY : 1;
+ unsigned int MEQ_INDIRECT2_BUSY : 1;
+ unsigned int MIU_WC_STALL : 1;
+ unsigned int CP_NRT_BUSY : 1;
+ unsigned int _3D_BUSY : 1;
+ unsigned int : 2;
+ unsigned int ME_BUSY : 1;
+ unsigned int : 2;
+ unsigned int ME_WC_BUSY : 1;
+ unsigned int MIU_WC_TRACK_FIFO_EMPTY : 1;
+ unsigned int CP_BUSY : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int CP_BUSY : 1;
+ unsigned int MIU_WC_TRACK_FIFO_EMPTY : 1;
+ unsigned int ME_WC_BUSY : 1;
+ unsigned int : 2;
+ unsigned int ME_BUSY : 1;
+ unsigned int : 2;
+ unsigned int _3D_BUSY : 1;
+ unsigned int CP_NRT_BUSY : 1;
+ unsigned int MIU_WC_STALL : 1;
+ unsigned int MEQ_INDIRECT2_BUSY : 1;
+ unsigned int MEQ_INDIRECTS_BUSY : 1;
+ unsigned int MEQ_RING_BUSY : 1;
+ unsigned int PFP_BUSY : 1;
+ unsigned int ST_QUEUE_BUSY : 1;
+ unsigned int : 2;
+ unsigned int INDIRECT2_QUEUE_BUSY : 1;
+ unsigned int INDIRECTS_QUEUE_BUSY : 1;
+ unsigned int RING_QUEUE_BUSY : 1;
+ unsigned int CSF_BUSY : 1;
+ unsigned int CSF_ST_BUSY : 1;
+ unsigned int : 1;
+ unsigned int CSF_INDIRECT2_BUSY : 1;
+ unsigned int CSF_INDIRECTS_BUSY : 1;
+ unsigned int CSF_RING_BUSY : 1;
+ unsigned int RCIU_BUSY : 1;
+ unsigned int RBIU_BUSY : 1;
+ unsigned int MIU_RD_RETURN_BUSY : 1;
+ unsigned int MIU_RD_REQ_BUSY : 1;
+ unsigned int MIU_WR_BUSY : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union BIOS_0_SCRATCH {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIOS_SCRATCH : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIOS_SCRATCH : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union BIOS_1_SCRATCH {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIOS_SCRATCH : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIOS_SCRATCH : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union BIOS_2_SCRATCH {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIOS_SCRATCH : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIOS_SCRATCH : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union BIOS_3_SCRATCH {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIOS_SCRATCH : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIOS_SCRATCH : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union BIOS_4_SCRATCH {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIOS_SCRATCH : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIOS_SCRATCH : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union BIOS_5_SCRATCH {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIOS_SCRATCH : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIOS_SCRATCH : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union BIOS_6_SCRATCH {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIOS_SCRATCH : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIOS_SCRATCH : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union BIOS_7_SCRATCH {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIOS_SCRATCH : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIOS_SCRATCH : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union BIOS_8_SCRATCH {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIOS_SCRATCH : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIOS_SCRATCH : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union BIOS_9_SCRATCH {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIOS_SCRATCH : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIOS_SCRATCH : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union BIOS_10_SCRATCH {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIOS_SCRATCH : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIOS_SCRATCH : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union BIOS_11_SCRATCH {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIOS_SCRATCH : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIOS_SCRATCH : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union BIOS_12_SCRATCH {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIOS_SCRATCH : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIOS_SCRATCH : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union BIOS_13_SCRATCH {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIOS_SCRATCH : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIOS_SCRATCH : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union BIOS_14_SCRATCH {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIOS_SCRATCH : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIOS_SCRATCH : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union BIOS_15_SCRATCH {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIOS_SCRATCH : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIOS_SCRATCH : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union COHER_SIZE_PM4 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SIZE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int SIZE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union COHER_BASE_PM4 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BASE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BASE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union COHER_STATUS_PM4 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MATCHING_CONTEXTS : 8;
+ unsigned int RB_COPY_DEST_BASE_ENA : 1;
+ unsigned int DEST_BASE_0_ENA : 1;
+ unsigned int DEST_BASE_1_ENA : 1;
+ unsigned int DEST_BASE_2_ENA : 1;
+ unsigned int DEST_BASE_3_ENA : 1;
+ unsigned int DEST_BASE_4_ENA : 1;
+ unsigned int DEST_BASE_5_ENA : 1;
+ unsigned int DEST_BASE_6_ENA : 1;
+ unsigned int DEST_BASE_7_ENA : 1;
+ unsigned int : 8;
+ unsigned int TC_ACTION_ENA : 1;
+ unsigned int : 5;
+ unsigned int STATUS : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int STATUS : 1;
+ unsigned int : 5;
+ unsigned int TC_ACTION_ENA : 1;
+ unsigned int : 8;
+ unsigned int DEST_BASE_7_ENA : 1;
+ unsigned int DEST_BASE_6_ENA : 1;
+ unsigned int DEST_BASE_5_ENA : 1;
+ unsigned int DEST_BASE_4_ENA : 1;
+ unsigned int DEST_BASE_3_ENA : 1;
+ unsigned int DEST_BASE_2_ENA : 1;
+ unsigned int DEST_BASE_1_ENA : 1;
+ unsigned int DEST_BASE_0_ENA : 1;
+ unsigned int RB_COPY_DEST_BASE_ENA : 1;
+ unsigned int MATCHING_CONTEXTS : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union COHER_SIZE_HOST {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SIZE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int SIZE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union COHER_BASE_HOST {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BASE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BASE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union COHER_STATUS_HOST {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MATCHING_CONTEXTS : 8;
+ unsigned int RB_COPY_DEST_BASE_ENA : 1;
+ unsigned int DEST_BASE_0_ENA : 1;
+ unsigned int DEST_BASE_1_ENA : 1;
+ unsigned int DEST_BASE_2_ENA : 1;
+ unsigned int DEST_BASE_3_ENA : 1;
+ unsigned int DEST_BASE_4_ENA : 1;
+ unsigned int DEST_BASE_5_ENA : 1;
+ unsigned int DEST_BASE_6_ENA : 1;
+ unsigned int DEST_BASE_7_ENA : 1;
+ unsigned int : 8;
+ unsigned int TC_ACTION_ENA : 1;
+ unsigned int : 5;
+ unsigned int STATUS : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int STATUS : 1;
+ unsigned int : 5;
+ unsigned int TC_ACTION_ENA : 1;
+ unsigned int : 8;
+ unsigned int DEST_BASE_7_ENA : 1;
+ unsigned int DEST_BASE_6_ENA : 1;
+ unsigned int DEST_BASE_5_ENA : 1;
+ unsigned int DEST_BASE_4_ENA : 1;
+ unsigned int DEST_BASE_3_ENA : 1;
+ unsigned int DEST_BASE_2_ENA : 1;
+ unsigned int DEST_BASE_1_ENA : 1;
+ unsigned int DEST_BASE_0_ENA : 1;
+ unsigned int RB_COPY_DEST_BASE_ENA : 1;
+ unsigned int MATCHING_CONTEXTS : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union COHER_DEST_BASE_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 12;
+ unsigned int DEST_BASE_0 : 20;
+#else /* !defined(qLittleEndian) */
+ unsigned int DEST_BASE_0 : 20;
+ unsigned int : 12;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union COHER_DEST_BASE_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 12;
+ unsigned int DEST_BASE_1 : 20;
+#else /* !defined(qLittleEndian) */
+ unsigned int DEST_BASE_1 : 20;
+ unsigned int : 12;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union COHER_DEST_BASE_2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 12;
+ unsigned int DEST_BASE_2 : 20;
+#else /* !defined(qLittleEndian) */
+ unsigned int DEST_BASE_2 : 20;
+ unsigned int : 12;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union COHER_DEST_BASE_3 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 12;
+ unsigned int DEST_BASE_3 : 20;
+#else /* !defined(qLittleEndian) */
+ unsigned int DEST_BASE_3 : 20;
+ unsigned int : 12;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union COHER_DEST_BASE_4 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 12;
+ unsigned int DEST_BASE_4 : 20;
+#else /* !defined(qLittleEndian) */
+ unsigned int DEST_BASE_4 : 20;
+ unsigned int : 12;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union COHER_DEST_BASE_5 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 12;
+ unsigned int DEST_BASE_5 : 20;
+#else /* !defined(qLittleEndian) */
+ unsigned int DEST_BASE_5 : 20;
+ unsigned int : 12;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union COHER_DEST_BASE_6 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 12;
+ unsigned int DEST_BASE_6 : 20;
+#else /* !defined(qLittleEndian) */
+ unsigned int DEST_BASE_6 : 20;
+ unsigned int : 12;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union COHER_DEST_BASE_7 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 12;
+ unsigned int DEST_BASE_7 : 20;
+#else /* !defined(qLittleEndian) */
+ unsigned int DEST_BASE_7 : 20;
+ unsigned int : 12;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_SURFACE_INFO {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SURFACE_PITCH : 14;
+ unsigned int MSAA_SAMPLES : 2;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int MSAA_SAMPLES : 2;
+ unsigned int SURFACE_PITCH : 14;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_COLOR_INFO {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int COLOR_FORMAT : 4;
+ unsigned int COLOR_ROUND_MODE : 2;
+ unsigned int COLOR_LINEAR : 1;
+ unsigned int COLOR_ENDIAN : 2;
+ unsigned int COLOR_SWAP : 2;
+ unsigned int : 1;
+ unsigned int COLOR_BASE : 20;
+#else /* !defined(qLittleEndian) */
+ unsigned int COLOR_BASE : 20;
+ unsigned int : 1;
+ unsigned int COLOR_SWAP : 2;
+ unsigned int COLOR_ENDIAN : 2;
+ unsigned int COLOR_LINEAR : 1;
+ unsigned int COLOR_ROUND_MODE : 2;
+ unsigned int COLOR_FORMAT : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_DEPTH_INFO {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DEPTH_FORMAT : 1;
+ unsigned int : 11;
+ unsigned int DEPTH_BASE : 20;
+#else /* !defined(qLittleEndian) */
+ unsigned int DEPTH_BASE : 20;
+ unsigned int : 11;
+ unsigned int DEPTH_FORMAT : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_STENCILREFMASK {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int STENCILREF : 8;
+ unsigned int STENCILMASK : 8;
+ unsigned int STENCILWRITEMASK : 8;
+ unsigned int : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 8;
+ unsigned int STENCILWRITEMASK : 8;
+ unsigned int STENCILMASK : 8;
+ unsigned int STENCILREF : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_ALPHA_REF {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ALPHA_REF : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int ALPHA_REF : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_COLOR_MASK {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int WRITE_RED : 1;
+ unsigned int WRITE_GREEN : 1;
+ unsigned int WRITE_BLUE : 1;
+ unsigned int WRITE_ALPHA : 1;
+ unsigned int : 28;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 28;
+ unsigned int WRITE_ALPHA : 1;
+ unsigned int WRITE_BLUE : 1;
+ unsigned int WRITE_GREEN : 1;
+ unsigned int WRITE_RED : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_BLEND_RED {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BLEND_RED : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int BLEND_RED : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_BLEND_GREEN {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BLEND_GREEN : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int BLEND_GREEN : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_BLEND_BLUE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BLEND_BLUE : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int BLEND_BLUE : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_BLEND_ALPHA {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BLEND_ALPHA : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int BLEND_ALPHA : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_FOG_COLOR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int FOG_RED : 8;
+ unsigned int FOG_GREEN : 8;
+ unsigned int FOG_BLUE : 8;
+ unsigned int : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 8;
+ unsigned int FOG_BLUE : 8;
+ unsigned int FOG_GREEN : 8;
+ unsigned int FOG_RED : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_STENCILREFMASK_BF {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int STENCILREF_BF : 8;
+ unsigned int STENCILMASK_BF : 8;
+ unsigned int STENCILWRITEMASK_BF : 8;
+ unsigned int : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 8;
+ unsigned int STENCILWRITEMASK_BF : 8;
+ unsigned int STENCILMASK_BF : 8;
+ unsigned int STENCILREF_BF : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_DEPTHCONTROL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int STENCIL_ENABLE : 1;
+ unsigned int Z_ENABLE : 1;
+ unsigned int Z_WRITE_ENABLE : 1;
+ unsigned int EARLY_Z_ENABLE : 1;
+ unsigned int ZFUNC : 3;
+ unsigned int BACKFACE_ENABLE : 1;
+ unsigned int STENCILFUNC : 3;
+ unsigned int STENCILFAIL : 3;
+ unsigned int STENCILZPASS : 3;
+ unsigned int STENCILZFAIL : 3;
+ unsigned int STENCILFUNC_BF : 3;
+ unsigned int STENCILFAIL_BF : 3;
+ unsigned int STENCILZPASS_BF : 3;
+ unsigned int STENCILZFAIL_BF : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int STENCILZFAIL_BF : 3;
+ unsigned int STENCILZPASS_BF : 3;
+ unsigned int STENCILFAIL_BF : 3;
+ unsigned int STENCILFUNC_BF : 3;
+ unsigned int STENCILZFAIL : 3;
+ unsigned int STENCILZPASS : 3;
+ unsigned int STENCILFAIL : 3;
+ unsigned int STENCILFUNC : 3;
+ unsigned int BACKFACE_ENABLE : 1;
+ unsigned int ZFUNC : 3;
+ unsigned int EARLY_Z_ENABLE : 1;
+ unsigned int Z_WRITE_ENABLE : 1;
+ unsigned int Z_ENABLE : 1;
+ unsigned int STENCIL_ENABLE : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_BLENDCONTROL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int COLOR_SRCBLEND : 5;
+ unsigned int COLOR_COMB_FCN : 3;
+ unsigned int COLOR_DESTBLEND : 5;
+ unsigned int : 3;
+ unsigned int ALPHA_SRCBLEND : 5;
+ unsigned int ALPHA_COMB_FCN : 3;
+ unsigned int ALPHA_DESTBLEND : 5;
+ unsigned int BLEND_FORCE_ENABLE : 1;
+ unsigned int BLEND_FORCE : 1;
+ unsigned int : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 1;
+ unsigned int BLEND_FORCE : 1;
+ unsigned int BLEND_FORCE_ENABLE : 1;
+ unsigned int ALPHA_DESTBLEND : 5;
+ unsigned int ALPHA_COMB_FCN : 3;
+ unsigned int ALPHA_SRCBLEND : 5;
+ unsigned int : 3;
+ unsigned int COLOR_DESTBLEND : 5;
+ unsigned int COLOR_COMB_FCN : 3;
+ unsigned int COLOR_SRCBLEND : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_COLORCONTROL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ALPHA_FUNC : 3;
+ unsigned int ALPHA_TEST_ENABLE : 1;
+ unsigned int ALPHA_TO_MASK_ENABLE : 1;
+ unsigned int BLEND_DISABLE : 1;
+ unsigned int FOG_ENABLE : 1;
+ unsigned int VS_EXPORTS_FOG : 1;
+ unsigned int ROP_CODE : 4;
+ unsigned int DITHER_MODE : 2;
+ unsigned int DITHER_TYPE : 2;
+ unsigned int PIXEL_FOG : 1;
+ unsigned int : 7;
+ unsigned int ALPHA_TO_MASK_OFFSET0 : 2;
+ unsigned int ALPHA_TO_MASK_OFFSET1 : 2;
+ unsigned int ALPHA_TO_MASK_OFFSET2 : 2;
+ unsigned int ALPHA_TO_MASK_OFFSET3 : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int ALPHA_TO_MASK_OFFSET3 : 2;
+ unsigned int ALPHA_TO_MASK_OFFSET2 : 2;
+ unsigned int ALPHA_TO_MASK_OFFSET1 : 2;
+ unsigned int ALPHA_TO_MASK_OFFSET0 : 2;
+ unsigned int : 7;
+ unsigned int PIXEL_FOG : 1;
+ unsigned int DITHER_TYPE : 2;
+ unsigned int DITHER_MODE : 2;
+ unsigned int ROP_CODE : 4;
+ unsigned int VS_EXPORTS_FOG : 1;
+ unsigned int FOG_ENABLE : 1;
+ unsigned int BLEND_DISABLE : 1;
+ unsigned int ALPHA_TO_MASK_ENABLE : 1;
+ unsigned int ALPHA_TEST_ENABLE : 1;
+ unsigned int ALPHA_FUNC : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_MODECONTROL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int EDRAM_MODE : 3;
+ unsigned int : 29;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 29;
+ unsigned int EDRAM_MODE : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_COLOR_DEST_MASK {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int COLOR_DEST_MASK : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int COLOR_DEST_MASK : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_COPY_CONTROL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int COPY_SAMPLE_SELECT : 3;
+ unsigned int DEPTH_CLEAR_ENABLE : 1;
+ unsigned int CLEAR_MASK : 4;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int CLEAR_MASK : 4;
+ unsigned int DEPTH_CLEAR_ENABLE : 1;
+ unsigned int COPY_SAMPLE_SELECT : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_COPY_DEST_BASE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 12;
+ unsigned int COPY_DEST_BASE : 20;
+#else /* !defined(qLittleEndian) */
+ unsigned int COPY_DEST_BASE : 20;
+ unsigned int : 12;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_COPY_DEST_PITCH {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int COPY_DEST_PITCH : 9;
+ unsigned int : 23;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 23;
+ unsigned int COPY_DEST_PITCH : 9;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_COPY_DEST_INFO {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int COPY_DEST_ENDIAN : 3;
+ unsigned int COPY_DEST_LINEAR : 1;
+ unsigned int COPY_DEST_FORMAT : 4;
+ unsigned int COPY_DEST_SWAP : 2;
+ unsigned int COPY_DEST_DITHER_MODE : 2;
+ unsigned int COPY_DEST_DITHER_TYPE : 2;
+ unsigned int COPY_MASK_WRITE_RED : 1;
+ unsigned int COPY_MASK_WRITE_GREEN : 1;
+ unsigned int COPY_MASK_WRITE_BLUE : 1;
+ unsigned int COPY_MASK_WRITE_ALPHA : 1;
+ unsigned int : 14;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 14;
+ unsigned int COPY_MASK_WRITE_ALPHA : 1;
+ unsigned int COPY_MASK_WRITE_BLUE : 1;
+ unsigned int COPY_MASK_WRITE_GREEN : 1;
+ unsigned int COPY_MASK_WRITE_RED : 1;
+ unsigned int COPY_DEST_DITHER_TYPE : 2;
+ unsigned int COPY_DEST_DITHER_MODE : 2;
+ unsigned int COPY_DEST_SWAP : 2;
+ unsigned int COPY_DEST_FORMAT : 4;
+ unsigned int COPY_DEST_LINEAR : 1;
+ unsigned int COPY_DEST_ENDIAN : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_COPY_DEST_PIXEL_OFFSET {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int OFFSET_X : 13;
+ unsigned int OFFSET_Y : 13;
+ unsigned int : 6;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 6;
+ unsigned int OFFSET_Y : 13;
+ unsigned int OFFSET_X : 13;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_DEPTH_CLEAR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DEPTH_CLEAR : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int DEPTH_CLEAR : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_SAMPLE_COUNT_CTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RESET_SAMPLE_COUNT : 1;
+ unsigned int COPY_SAMPLE_COUNT : 1;
+ unsigned int : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 30;
+ unsigned int COPY_SAMPLE_COUNT : 1;
+ unsigned int RESET_SAMPLE_COUNT : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_SAMPLE_COUNT_ADDR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SAMPLE_COUNT_ADDR : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int SAMPLE_COUNT_ADDR : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_BC_CONTROL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ACCUM_LINEAR_MODE_ENABLE : 1;
+ unsigned int ACCUM_TIMEOUT_SELECT : 2;
+ unsigned int DISABLE_EDRAM_CAM : 1;
+ unsigned int DISABLE_EZ_FAST_CONTEXT_SWITCH : 1;
+ unsigned int DISABLE_EZ_NULL_ZCMD_DROP : 1;
+ unsigned int DISABLE_LZ_NULL_ZCMD_DROP : 1;
+ unsigned int ENABLE_AZ_THROTTLE : 1;
+ unsigned int AZ_THROTTLE_COUNT : 5;
+ unsigned int : 1;
+ unsigned int ENABLE_CRC_UPDATE : 1;
+ unsigned int CRC_MODE : 1;
+ unsigned int DISABLE_SAMPLE_COUNTERS : 1;
+ unsigned int DISABLE_ACCUM : 1;
+ unsigned int ACCUM_ALLOC_MASK : 4;
+ unsigned int LINEAR_PERFORMANCE_ENABLE : 1;
+ unsigned int ACCUM_DATA_FIFO_LIMIT : 4;
+ unsigned int MEM_EXPORT_TIMEOUT_SELECT : 2;
+ unsigned int MEM_EXPORT_LINEAR_MODE_ENABLE : 1;
+ unsigned int RESERVED9 : 1;
+ unsigned int RESERVED10 : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int RESERVED10 : 1;
+ unsigned int RESERVED9 : 1;
+ unsigned int MEM_EXPORT_LINEAR_MODE_ENABLE : 1;
+ unsigned int MEM_EXPORT_TIMEOUT_SELECT : 2;
+ unsigned int ACCUM_DATA_FIFO_LIMIT : 4;
+ unsigned int LINEAR_PERFORMANCE_ENABLE : 1;
+ unsigned int ACCUM_ALLOC_MASK : 4;
+ unsigned int DISABLE_ACCUM : 1;
+ unsigned int DISABLE_SAMPLE_COUNTERS : 1;
+ unsigned int CRC_MODE : 1;
+ unsigned int ENABLE_CRC_UPDATE : 1;
+ unsigned int : 1;
+ unsigned int AZ_THROTTLE_COUNT : 5;
+ unsigned int ENABLE_AZ_THROTTLE : 1;
+ unsigned int DISABLE_LZ_NULL_ZCMD_DROP : 1;
+ unsigned int DISABLE_EZ_NULL_ZCMD_DROP : 1;
+ unsigned int DISABLE_EZ_FAST_CONTEXT_SWITCH : 1;
+ unsigned int DISABLE_EDRAM_CAM : 1;
+ unsigned int ACCUM_TIMEOUT_SELECT : 2;
+ unsigned int ACCUM_LINEAR_MODE_ENABLE : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_EDRAM_INFO {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int EDRAM_SIZE : 4;
+ unsigned int EDRAM_MAPPING_MODE : 2;
+ unsigned int : 8;
+ unsigned int EDRAM_RANGE : 18;
+#else /* !defined(qLittleEndian) */
+ unsigned int EDRAM_RANGE : 18;
+ unsigned int : 8;
+ unsigned int EDRAM_MAPPING_MODE : 2;
+ unsigned int EDRAM_SIZE : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_CRC_RD_PORT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CRC_DATA : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int CRC_DATA : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_CRC_CONTROL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CRC_RD_ADVANCE : 1;
+ unsigned int : 31;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 31;
+ unsigned int CRC_RD_ADVANCE : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_CRC_MASK {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CRC_MASK : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int CRC_MASK : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_PERFCOUNTER0_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_SEL : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERF_SEL : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_PERFCOUNTER0_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERF_COUNT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_PERFCOUNTER0_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERF_COUNT : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_TOTAL_SAMPLES {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TOTAL_SAMPLES : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int TOTAL_SAMPLES : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_ZPASS_SAMPLES {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ZPASS_SAMPLES : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int ZPASS_SAMPLES : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_ZFAIL_SAMPLES {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ZFAIL_SAMPLES : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int ZFAIL_SAMPLES : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_SFAIL_SAMPLES {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SFAIL_SAMPLES : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int SFAIL_SAMPLES : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_DEBUG_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RDREQ_CTL_Z1_PRE_FULL : 1;
+ unsigned int RDREQ_CTL_Z0_PRE_FULL : 1;
+ unsigned int RDREQ_CTL_C1_PRE_FULL : 1;
+ unsigned int RDREQ_CTL_C0_PRE_FULL : 1;
+ unsigned int RDREQ_E1_ORDERING_FULL : 1;
+ unsigned int RDREQ_E0_ORDERING_FULL : 1;
+ unsigned int RDREQ_Z1_FULL : 1;
+ unsigned int RDREQ_Z0_FULL : 1;
+ unsigned int RDREQ_C1_FULL : 1;
+ unsigned int RDREQ_C0_FULL : 1;
+ unsigned int WRREQ_E1_MACRO_HI_FULL : 1;
+ unsigned int WRREQ_E1_MACRO_LO_FULL : 1;
+ unsigned int WRREQ_E0_MACRO_HI_FULL : 1;
+ unsigned int WRREQ_E0_MACRO_LO_FULL : 1;
+ unsigned int WRREQ_C_WE_HI_FULL : 1;
+ unsigned int WRREQ_C_WE_LO_FULL : 1;
+ unsigned int WRREQ_Z1_FULL : 1;
+ unsigned int WRREQ_Z0_FULL : 1;
+ unsigned int WRREQ_C1_FULL : 1;
+ unsigned int WRREQ_C0_FULL : 1;
+ unsigned int CMDFIFO_Z1_HOLD_FULL : 1;
+ unsigned int CMDFIFO_Z0_HOLD_FULL : 1;
+ unsigned int CMDFIFO_C1_HOLD_FULL : 1;
+ unsigned int CMDFIFO_C0_HOLD_FULL : 1;
+ unsigned int CMDFIFO_Z_ORDERING_FULL : 1;
+ unsigned int CMDFIFO_C_ORDERING_FULL : 1;
+ unsigned int C_SX_LAT_FULL : 1;
+ unsigned int C_SX_CMD_FULL : 1;
+ unsigned int C_EZ_TILE_FULL : 1;
+ unsigned int C_REQ_FULL : 1;
+ unsigned int C_MASK_FULL : 1;
+ unsigned int EZ_INFSAMP_FULL : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int EZ_INFSAMP_FULL : 1;
+ unsigned int C_MASK_FULL : 1;
+ unsigned int C_REQ_FULL : 1;
+ unsigned int C_EZ_TILE_FULL : 1;
+ unsigned int C_SX_CMD_FULL : 1;
+ unsigned int C_SX_LAT_FULL : 1;
+ unsigned int CMDFIFO_C_ORDERING_FULL : 1;
+ unsigned int CMDFIFO_Z_ORDERING_FULL : 1;
+ unsigned int CMDFIFO_C0_HOLD_FULL : 1;
+ unsigned int CMDFIFO_C1_HOLD_FULL : 1;
+ unsigned int CMDFIFO_Z0_HOLD_FULL : 1;
+ unsigned int CMDFIFO_Z1_HOLD_FULL : 1;
+ unsigned int WRREQ_C0_FULL : 1;
+ unsigned int WRREQ_C1_FULL : 1;
+ unsigned int WRREQ_Z0_FULL : 1;
+ unsigned int WRREQ_Z1_FULL : 1;
+ unsigned int WRREQ_C_WE_LO_FULL : 1;
+ unsigned int WRREQ_C_WE_HI_FULL : 1;
+ unsigned int WRREQ_E0_MACRO_LO_FULL : 1;
+ unsigned int WRREQ_E0_MACRO_HI_FULL : 1;
+ unsigned int WRREQ_E1_MACRO_LO_FULL : 1;
+ unsigned int WRREQ_E1_MACRO_HI_FULL : 1;
+ unsigned int RDREQ_C0_FULL : 1;
+ unsigned int RDREQ_C1_FULL : 1;
+ unsigned int RDREQ_Z0_FULL : 1;
+ unsigned int RDREQ_Z1_FULL : 1;
+ unsigned int RDREQ_E0_ORDERING_FULL : 1;
+ unsigned int RDREQ_E1_ORDERING_FULL : 1;
+ unsigned int RDREQ_CTL_C0_PRE_FULL : 1;
+ unsigned int RDREQ_CTL_C1_PRE_FULL : 1;
+ unsigned int RDREQ_CTL_Z0_PRE_FULL : 1;
+ unsigned int RDREQ_CTL_Z1_PRE_FULL : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_DEBUG_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RDREQ_Z1_CMD_EMPTY : 1;
+ unsigned int RDREQ_Z0_CMD_EMPTY : 1;
+ unsigned int RDREQ_C1_CMD_EMPTY : 1;
+ unsigned int RDREQ_C0_CMD_EMPTY : 1;
+ unsigned int RDREQ_E1_ORDERING_EMPTY : 1;
+ unsigned int RDREQ_E0_ORDERING_EMPTY : 1;
+ unsigned int RDREQ_Z1_EMPTY : 1;
+ unsigned int RDREQ_Z0_EMPTY : 1;
+ unsigned int RDREQ_C1_EMPTY : 1;
+ unsigned int RDREQ_C0_EMPTY : 1;
+ unsigned int WRREQ_E1_MACRO_HI_EMPTY : 1;
+ unsigned int WRREQ_E1_MACRO_LO_EMPTY : 1;
+ unsigned int WRREQ_E0_MACRO_HI_EMPTY : 1;
+ unsigned int WRREQ_E0_MACRO_LO_EMPTY : 1;
+ unsigned int WRREQ_C_WE_HI_EMPTY : 1;
+ unsigned int WRREQ_C_WE_LO_EMPTY : 1;
+ unsigned int WRREQ_Z1_EMPTY : 1;
+ unsigned int WRREQ_Z0_EMPTY : 1;
+ unsigned int WRREQ_C1_PRE_EMPTY : 1;
+ unsigned int WRREQ_C0_PRE_EMPTY : 1;
+ unsigned int CMDFIFO_Z1_HOLD_EMPTY : 1;
+ unsigned int CMDFIFO_Z0_HOLD_EMPTY : 1;
+ unsigned int CMDFIFO_C1_HOLD_EMPTY : 1;
+ unsigned int CMDFIFO_C0_HOLD_EMPTY : 1;
+ unsigned int CMDFIFO_Z_ORDERING_EMPTY : 1;
+ unsigned int CMDFIFO_C_ORDERING_EMPTY : 1;
+ unsigned int C_SX_LAT_EMPTY : 1;
+ unsigned int C_SX_CMD_EMPTY : 1;
+ unsigned int C_EZ_TILE_EMPTY : 1;
+ unsigned int C_REQ_EMPTY : 1;
+ unsigned int C_MASK_EMPTY : 1;
+ unsigned int EZ_INFSAMP_EMPTY : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int EZ_INFSAMP_EMPTY : 1;
+ unsigned int C_MASK_EMPTY : 1;
+ unsigned int C_REQ_EMPTY : 1;
+ unsigned int C_EZ_TILE_EMPTY : 1;
+ unsigned int C_SX_CMD_EMPTY : 1;
+ unsigned int C_SX_LAT_EMPTY : 1;
+ unsigned int CMDFIFO_C_ORDERING_EMPTY : 1;
+ unsigned int CMDFIFO_Z_ORDERING_EMPTY : 1;
+ unsigned int CMDFIFO_C0_HOLD_EMPTY : 1;
+ unsigned int CMDFIFO_C1_HOLD_EMPTY : 1;
+ unsigned int CMDFIFO_Z0_HOLD_EMPTY : 1;
+ unsigned int CMDFIFO_Z1_HOLD_EMPTY : 1;
+ unsigned int WRREQ_C0_PRE_EMPTY : 1;
+ unsigned int WRREQ_C1_PRE_EMPTY : 1;
+ unsigned int WRREQ_Z0_EMPTY : 1;
+ unsigned int WRREQ_Z1_EMPTY : 1;
+ unsigned int WRREQ_C_WE_LO_EMPTY : 1;
+ unsigned int WRREQ_C_WE_HI_EMPTY : 1;
+ unsigned int WRREQ_E0_MACRO_LO_EMPTY : 1;
+ unsigned int WRREQ_E0_MACRO_HI_EMPTY : 1;
+ unsigned int WRREQ_E1_MACRO_LO_EMPTY : 1;
+ unsigned int WRREQ_E1_MACRO_HI_EMPTY : 1;
+ unsigned int RDREQ_C0_EMPTY : 1;
+ unsigned int RDREQ_C1_EMPTY : 1;
+ unsigned int RDREQ_Z0_EMPTY : 1;
+ unsigned int RDREQ_Z1_EMPTY : 1;
+ unsigned int RDREQ_E0_ORDERING_EMPTY : 1;
+ unsigned int RDREQ_E1_ORDERING_EMPTY : 1;
+ unsigned int RDREQ_C0_CMD_EMPTY : 1;
+ unsigned int RDREQ_C1_CMD_EMPTY : 1;
+ unsigned int RDREQ_Z0_CMD_EMPTY : 1;
+ unsigned int RDREQ_Z1_CMD_EMPTY : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_DEBUG_2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TILE_FIFO_COUNT : 4;
+ unsigned int SX_LAT_FIFO_COUNT : 7;
+ unsigned int MEM_EXPORT_FLAG : 1;
+ unsigned int SYSMEM_BLEND_FLAG : 1;
+ unsigned int CURRENT_TILE_EVENT : 1;
+ unsigned int EZ_INFTILE_FULL : 1;
+ unsigned int EZ_MASK_LOWER_FULL : 1;
+ unsigned int EZ_MASK_UPPER_FULL : 1;
+ unsigned int Z0_MASK_FULL : 1;
+ unsigned int Z1_MASK_FULL : 1;
+ unsigned int Z0_REQ_FULL : 1;
+ unsigned int Z1_REQ_FULL : 1;
+ unsigned int Z_SAMP_FULL : 1;
+ unsigned int Z_TILE_FULL : 1;
+ unsigned int EZ_INFTILE_EMPTY : 1;
+ unsigned int EZ_MASK_LOWER_EMPTY : 1;
+ unsigned int EZ_MASK_UPPER_EMPTY : 1;
+ unsigned int Z0_MASK_EMPTY : 1;
+ unsigned int Z1_MASK_EMPTY : 1;
+ unsigned int Z0_REQ_EMPTY : 1;
+ unsigned int Z1_REQ_EMPTY : 1;
+ unsigned int Z_SAMP_EMPTY : 1;
+ unsigned int Z_TILE_EMPTY : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int Z_TILE_EMPTY : 1;
+ unsigned int Z_SAMP_EMPTY : 1;
+ unsigned int Z1_REQ_EMPTY : 1;
+ unsigned int Z0_REQ_EMPTY : 1;
+ unsigned int Z1_MASK_EMPTY : 1;
+ unsigned int Z0_MASK_EMPTY : 1;
+ unsigned int EZ_MASK_UPPER_EMPTY : 1;
+ unsigned int EZ_MASK_LOWER_EMPTY : 1;
+ unsigned int EZ_INFTILE_EMPTY : 1;
+ unsigned int Z_TILE_FULL : 1;
+ unsigned int Z_SAMP_FULL : 1;
+ unsigned int Z1_REQ_FULL : 1;
+ unsigned int Z0_REQ_FULL : 1;
+ unsigned int Z1_MASK_FULL : 1;
+ unsigned int Z0_MASK_FULL : 1;
+ unsigned int EZ_MASK_UPPER_FULL : 1;
+ unsigned int EZ_MASK_LOWER_FULL : 1;
+ unsigned int EZ_INFTILE_FULL : 1;
+ unsigned int CURRENT_TILE_EVENT : 1;
+ unsigned int SYSMEM_BLEND_FLAG : 1;
+ unsigned int MEM_EXPORT_FLAG : 1;
+ unsigned int SX_LAT_FIFO_COUNT : 7;
+ unsigned int TILE_FIFO_COUNT : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_DEBUG_3 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ACCUM_VALID : 4;
+ unsigned int ACCUM_FLUSHING : 4;
+ unsigned int ACCUM_WRITE_CLEAN_COUNT : 6;
+ unsigned int ACCUM_INPUT_REG_VALID : 1;
+ unsigned int ACCUM_DATA_FIFO_CNT : 4;
+ unsigned int SHD_FULL : 1;
+ unsigned int SHD_EMPTY : 1;
+ unsigned int EZ_RETURN_LOWER_EMPTY : 1;
+ unsigned int EZ_RETURN_UPPER_EMPTY : 1;
+ unsigned int EZ_RETURN_LOWER_FULL : 1;
+ unsigned int EZ_RETURN_UPPER_FULL : 1;
+ unsigned int ZEXP_LOWER_EMPTY : 1;
+ unsigned int ZEXP_UPPER_EMPTY : 1;
+ unsigned int ZEXP_LOWER_FULL : 1;
+ unsigned int ZEXP_UPPER_FULL : 1;
+ unsigned int : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 3;
+ unsigned int ZEXP_UPPER_FULL : 1;
+ unsigned int ZEXP_LOWER_FULL : 1;
+ unsigned int ZEXP_UPPER_EMPTY : 1;
+ unsigned int ZEXP_LOWER_EMPTY : 1;
+ unsigned int EZ_RETURN_UPPER_FULL : 1;
+ unsigned int EZ_RETURN_LOWER_FULL : 1;
+ unsigned int EZ_RETURN_UPPER_EMPTY : 1;
+ unsigned int EZ_RETURN_LOWER_EMPTY : 1;
+ unsigned int SHD_EMPTY : 1;
+ unsigned int SHD_FULL : 1;
+ unsigned int ACCUM_DATA_FIFO_CNT : 4;
+ unsigned int ACCUM_INPUT_REG_VALID : 1;
+ unsigned int ACCUM_WRITE_CLEAN_COUNT : 6;
+ unsigned int ACCUM_FLUSHING : 4;
+ unsigned int ACCUM_VALID : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_DEBUG_4 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int GMEM_RD_ACCESS_FLAG : 1;
+ unsigned int GMEM_WR_ACCESS_FLAG : 1;
+ unsigned int SYSMEM_RD_ACCESS_FLAG : 1;
+ unsigned int SYSMEM_WR_ACCESS_FLAG : 1;
+ unsigned int ACCUM_DATA_FIFO_EMPTY : 1;
+ unsigned int ACCUM_ORDER_FIFO_EMPTY : 1;
+ unsigned int ACCUM_DATA_FIFO_FULL : 1;
+ unsigned int ACCUM_ORDER_FIFO_FULL : 1;
+ unsigned int SYSMEM_WRITE_COUNT_OVERFLOW : 1;
+ unsigned int CONTEXT_COUNT_DEBUG : 4;
+ unsigned int : 19;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 19;
+ unsigned int CONTEXT_COUNT_DEBUG : 4;
+ unsigned int SYSMEM_WRITE_COUNT_OVERFLOW : 1;
+ unsigned int ACCUM_ORDER_FIFO_FULL : 1;
+ unsigned int ACCUM_DATA_FIFO_FULL : 1;
+ unsigned int ACCUM_ORDER_FIFO_EMPTY : 1;
+ unsigned int ACCUM_DATA_FIFO_EMPTY : 1;
+ unsigned int SYSMEM_WR_ACCESS_FLAG : 1;
+ unsigned int SYSMEM_RD_ACCESS_FLAG : 1;
+ unsigned int GMEM_WR_ACCESS_FLAG : 1;
+ unsigned int GMEM_RD_ACCESS_FLAG : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_FLAG_CONTROL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DEBUG_FLAG_CLEAR : 1;
+ unsigned int : 31;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 31;
+ unsigned int DEBUG_FLAG_CLEAR : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union BC_DUMMY_CRAYRB_ENUMS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DUMMY_CRAYRB_DEPTH_FORMAT : 6;
+ unsigned int DUMMY_CRAYRB_SURFACE_SWAP : 1;
+ unsigned int DUMMY_CRAYRB_DEPTH_ARRAY : 2;
+ unsigned int DUMMY_CRAYRB_ARRAY : 2;
+ unsigned int DUMMY_CRAYRB_COLOR_FORMAT : 6;
+ unsigned int DUMMY_CRAYRB_SURFACE_NUMBER : 3;
+ unsigned int DUMMY_CRAYRB_SURFACE_FORMAT : 6;
+ unsigned int DUMMY_CRAYRB_SURFACE_TILING : 1;
+ unsigned int DUMMY_CRAYRB_SURFACE_ARRAY : 2;
+ unsigned int DUMMY_RB_COPY_DEST_INFO_NUMBER : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int DUMMY_RB_COPY_DEST_INFO_NUMBER : 3;
+ unsigned int DUMMY_CRAYRB_SURFACE_ARRAY : 2;
+ unsigned int DUMMY_CRAYRB_SURFACE_TILING : 1;
+ unsigned int DUMMY_CRAYRB_SURFACE_FORMAT : 6;
+ unsigned int DUMMY_CRAYRB_SURFACE_NUMBER : 3;
+ unsigned int DUMMY_CRAYRB_COLOR_FORMAT : 6;
+ unsigned int DUMMY_CRAYRB_ARRAY : 2;
+ unsigned int DUMMY_CRAYRB_DEPTH_ARRAY : 2;
+ unsigned int DUMMY_CRAYRB_SURFACE_SWAP : 1;
+ unsigned int DUMMY_CRAYRB_DEPTH_FORMAT : 6;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union BC_DUMMY_CRAYRB_MOREENUMS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DUMMY_CRAYRB_COLORARRAYX : 2;
+ unsigned int : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 30;
+ unsigned int DUMMY_CRAYRB_COLORARRAYX : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+#endif
diff --git a/drivers/mxc/amd-gpu/include/reg/yamato/14/yamato_shift.h b/drivers/mxc/amd-gpu/include/reg/yamato/14/yamato_shift.h
new file mode 100644
index 000000000000..2049d0f7bd14
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/reg/yamato/14/yamato_shift.h
@@ -0,0 +1,4078 @@
+/* Copyright (c) 2002,2007-2009, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#if !defined (_yamato_SHIFT_HEADER)
+#define _yamato_SHIFT_HEADER
+
+// PA_CL_VPORT_XSCALE
+#define PA_CL_VPORT_XSCALE__VPORT_XSCALE__SHIFT 0x00000000
+
+// PA_CL_VPORT_XOFFSET
+#define PA_CL_VPORT_XOFFSET__VPORT_XOFFSET__SHIFT 0x00000000
+
+// PA_CL_VPORT_YSCALE
+#define PA_CL_VPORT_YSCALE__VPORT_YSCALE__SHIFT 0x00000000
+
+// PA_CL_VPORT_YOFFSET
+#define PA_CL_VPORT_YOFFSET__VPORT_YOFFSET__SHIFT 0x00000000
+
+// PA_CL_VPORT_ZSCALE
+#define PA_CL_VPORT_ZSCALE__VPORT_ZSCALE__SHIFT 0x00000000
+
+// PA_CL_VPORT_ZOFFSET
+#define PA_CL_VPORT_ZOFFSET__VPORT_ZOFFSET__SHIFT 0x00000000
+
+// PA_CL_VTE_CNTL
+#define PA_CL_VTE_CNTL__VPORT_X_SCALE_ENA__SHIFT 0x00000000
+#define PA_CL_VTE_CNTL__VPORT_X_OFFSET_ENA__SHIFT 0x00000001
+#define PA_CL_VTE_CNTL__VPORT_Y_SCALE_ENA__SHIFT 0x00000002
+#define PA_CL_VTE_CNTL__VPORT_Y_OFFSET_ENA__SHIFT 0x00000003
+#define PA_CL_VTE_CNTL__VPORT_Z_SCALE_ENA__SHIFT 0x00000004
+#define PA_CL_VTE_CNTL__VPORT_Z_OFFSET_ENA__SHIFT 0x00000005
+#define PA_CL_VTE_CNTL__VTX_XY_FMT__SHIFT 0x00000008
+#define PA_CL_VTE_CNTL__VTX_Z_FMT__SHIFT 0x00000009
+#define PA_CL_VTE_CNTL__VTX_W0_FMT__SHIFT 0x0000000a
+#define PA_CL_VTE_CNTL__PERFCOUNTER_REF__SHIFT 0x0000000b
+
+// PA_CL_CLIP_CNTL
+#define PA_CL_CLIP_CNTL__CLIP_DISABLE__SHIFT 0x00000010
+#define PA_CL_CLIP_CNTL__BOUNDARY_EDGE_FLAG_ENA__SHIFT 0x00000012
+#define PA_CL_CLIP_CNTL__DX_CLIP_SPACE_DEF__SHIFT 0x00000013
+#define PA_CL_CLIP_CNTL__DIS_CLIP_ERR_DETECT__SHIFT 0x00000014
+#define PA_CL_CLIP_CNTL__VTX_KILL_OR__SHIFT 0x00000015
+#define PA_CL_CLIP_CNTL__XY_NAN_RETAIN__SHIFT 0x00000016
+#define PA_CL_CLIP_CNTL__Z_NAN_RETAIN__SHIFT 0x00000017
+#define PA_CL_CLIP_CNTL__W_NAN_RETAIN__SHIFT 0x00000018
+
+// PA_CL_GB_VERT_CLIP_ADJ
+#define PA_CL_GB_VERT_CLIP_ADJ__DATA_REGISTER__SHIFT 0x00000000
+
+// PA_CL_GB_VERT_DISC_ADJ
+#define PA_CL_GB_VERT_DISC_ADJ__DATA_REGISTER__SHIFT 0x00000000
+
+// PA_CL_GB_HORZ_CLIP_ADJ
+#define PA_CL_GB_HORZ_CLIP_ADJ__DATA_REGISTER__SHIFT 0x00000000
+
+// PA_CL_GB_HORZ_DISC_ADJ
+#define PA_CL_GB_HORZ_DISC_ADJ__DATA_REGISTER__SHIFT 0x00000000
+
+// PA_CL_ENHANCE
+#define PA_CL_ENHANCE__CLIP_VTX_REORDER_ENA__SHIFT 0x00000000
+#define PA_CL_ENHANCE__ECO_SPARE3__SHIFT 0x0000001c
+#define PA_CL_ENHANCE__ECO_SPARE2__SHIFT 0x0000001d
+#define PA_CL_ENHANCE__ECO_SPARE1__SHIFT 0x0000001e
+#define PA_CL_ENHANCE__ECO_SPARE0__SHIFT 0x0000001f
+
+// PA_SC_ENHANCE
+#define PA_SC_ENHANCE__ECO_SPARE3__SHIFT 0x0000001c
+#define PA_SC_ENHANCE__ECO_SPARE2__SHIFT 0x0000001d
+#define PA_SC_ENHANCE__ECO_SPARE1__SHIFT 0x0000001e
+#define PA_SC_ENHANCE__ECO_SPARE0__SHIFT 0x0000001f
+
+// PA_SU_VTX_CNTL
+#define PA_SU_VTX_CNTL__PIX_CENTER__SHIFT 0x00000000
+#define PA_SU_VTX_CNTL__ROUND_MODE__SHIFT 0x00000001
+#define PA_SU_VTX_CNTL__QUANT_MODE__SHIFT 0x00000003
+
+// PA_SU_POINT_SIZE
+#define PA_SU_POINT_SIZE__HEIGHT__SHIFT 0x00000000
+#define PA_SU_POINT_SIZE__WIDTH__SHIFT 0x00000010
+
+// PA_SU_POINT_MINMAX
+#define PA_SU_POINT_MINMAX__MIN_SIZE__SHIFT 0x00000000
+#define PA_SU_POINT_MINMAX__MAX_SIZE__SHIFT 0x00000010
+
+// PA_SU_LINE_CNTL
+#define PA_SU_LINE_CNTL__WIDTH__SHIFT 0x00000000
+
+// PA_SU_SC_MODE_CNTL
+#define PA_SU_SC_MODE_CNTL__CULL_FRONT__SHIFT 0x00000000
+#define PA_SU_SC_MODE_CNTL__CULL_BACK__SHIFT 0x00000001
+#define PA_SU_SC_MODE_CNTL__FACE__SHIFT 0x00000002
+#define PA_SU_SC_MODE_CNTL__POLY_MODE__SHIFT 0x00000003
+#define PA_SU_SC_MODE_CNTL__POLYMODE_FRONT_PTYPE__SHIFT 0x00000005
+#define PA_SU_SC_MODE_CNTL__POLYMODE_BACK_PTYPE__SHIFT 0x00000008
+#define PA_SU_SC_MODE_CNTL__POLY_OFFSET_FRONT_ENABLE__SHIFT 0x0000000b
+#define PA_SU_SC_MODE_CNTL__POLY_OFFSET_BACK_ENABLE__SHIFT 0x0000000c
+#define PA_SU_SC_MODE_CNTL__POLY_OFFSET_PARA_ENABLE__SHIFT 0x0000000d
+#define PA_SU_SC_MODE_CNTL__MSAA_ENABLE__SHIFT 0x0000000f
+#define PA_SU_SC_MODE_CNTL__VTX_WINDOW_OFFSET_ENABLE__SHIFT 0x00000010
+#define PA_SU_SC_MODE_CNTL__LINE_STIPPLE_ENABLE__SHIFT 0x00000012
+#define PA_SU_SC_MODE_CNTL__PROVOKING_VTX_LAST__SHIFT 0x00000013
+#define PA_SU_SC_MODE_CNTL__PERSP_CORR_DIS__SHIFT 0x00000014
+#define PA_SU_SC_MODE_CNTL__MULTI_PRIM_IB_ENA__SHIFT 0x00000015
+#define PA_SU_SC_MODE_CNTL__QUAD_ORDER_ENABLE__SHIFT 0x00000017
+#define PA_SU_SC_MODE_CNTL__WAIT_RB_IDLE_ALL_TRI__SHIFT 0x00000019
+#define PA_SU_SC_MODE_CNTL__WAIT_RB_IDLE_FIRST_TRI_NEW_STATE__SHIFT 0x0000001a
+
+// PA_SU_POLY_OFFSET_FRONT_SCALE
+#define PA_SU_POLY_OFFSET_FRONT_SCALE__SCALE__SHIFT 0x00000000
+
+// PA_SU_POLY_OFFSET_FRONT_OFFSET
+#define PA_SU_POLY_OFFSET_FRONT_OFFSET__OFFSET__SHIFT 0x00000000
+
+// PA_SU_POLY_OFFSET_BACK_SCALE
+#define PA_SU_POLY_OFFSET_BACK_SCALE__SCALE__SHIFT 0x00000000
+
+// PA_SU_POLY_OFFSET_BACK_OFFSET
+#define PA_SU_POLY_OFFSET_BACK_OFFSET__OFFSET__SHIFT 0x00000000
+
+// PA_SU_PERFCOUNTER0_SELECT
+#define PA_SU_PERFCOUNTER0_SELECT__PERF_SEL__SHIFT 0x00000000
+
+// PA_SU_PERFCOUNTER1_SELECT
+#define PA_SU_PERFCOUNTER1_SELECT__PERF_SEL__SHIFT 0x00000000
+
+// PA_SU_PERFCOUNTER2_SELECT
+#define PA_SU_PERFCOUNTER2_SELECT__PERF_SEL__SHIFT 0x00000000
+
+// PA_SU_PERFCOUNTER3_SELECT
+#define PA_SU_PERFCOUNTER3_SELECT__PERF_SEL__SHIFT 0x00000000
+
+// PA_SU_PERFCOUNTER0_LOW
+#define PA_SU_PERFCOUNTER0_LOW__PERF_COUNT__SHIFT 0x00000000
+
+// PA_SU_PERFCOUNTER0_HI
+#define PA_SU_PERFCOUNTER0_HI__PERF_COUNT__SHIFT 0x00000000
+
+// PA_SU_PERFCOUNTER1_LOW
+#define PA_SU_PERFCOUNTER1_LOW__PERF_COUNT__SHIFT 0x00000000
+
+// PA_SU_PERFCOUNTER1_HI
+#define PA_SU_PERFCOUNTER1_HI__PERF_COUNT__SHIFT 0x00000000
+
+// PA_SU_PERFCOUNTER2_LOW
+#define PA_SU_PERFCOUNTER2_LOW__PERF_COUNT__SHIFT 0x00000000
+
+// PA_SU_PERFCOUNTER2_HI
+#define PA_SU_PERFCOUNTER2_HI__PERF_COUNT__SHIFT 0x00000000
+
+// PA_SU_PERFCOUNTER3_LOW
+#define PA_SU_PERFCOUNTER3_LOW__PERF_COUNT__SHIFT 0x00000000
+
+// PA_SU_PERFCOUNTER3_HI
+#define PA_SU_PERFCOUNTER3_HI__PERF_COUNT__SHIFT 0x00000000
+
+// PA_SC_WINDOW_OFFSET
+#define PA_SC_WINDOW_OFFSET__WINDOW_X_OFFSET__SHIFT 0x00000000
+#define PA_SC_WINDOW_OFFSET__WINDOW_Y_OFFSET__SHIFT 0x00000010
+
+// PA_SC_AA_CONFIG
+#define PA_SC_AA_CONFIG__MSAA_NUM_SAMPLES__SHIFT 0x00000000
+#define PA_SC_AA_CONFIG__MAX_SAMPLE_DIST__SHIFT 0x0000000d
+
+// PA_SC_AA_MASK
+#define PA_SC_AA_MASK__AA_MASK__SHIFT 0x00000000
+
+// PA_SC_LINE_STIPPLE
+#define PA_SC_LINE_STIPPLE__LINE_PATTERN__SHIFT 0x00000000
+#define PA_SC_LINE_STIPPLE__REPEAT_COUNT__SHIFT 0x00000010
+#define PA_SC_LINE_STIPPLE__PATTERN_BIT_ORDER__SHIFT 0x0000001c
+#define PA_SC_LINE_STIPPLE__AUTO_RESET_CNTL__SHIFT 0x0000001d
+
+// PA_SC_LINE_CNTL
+#define PA_SC_LINE_CNTL__BRES_CNTL__SHIFT 0x00000000
+#define PA_SC_LINE_CNTL__USE_BRES_CNTL__SHIFT 0x00000008
+#define PA_SC_LINE_CNTL__EXPAND_LINE_WIDTH__SHIFT 0x00000009
+#define PA_SC_LINE_CNTL__LAST_PIXEL__SHIFT 0x0000000a
+
+// PA_SC_WINDOW_SCISSOR_TL
+#define PA_SC_WINDOW_SCISSOR_TL__TL_X__SHIFT 0x00000000
+#define PA_SC_WINDOW_SCISSOR_TL__TL_Y__SHIFT 0x00000010
+#define PA_SC_WINDOW_SCISSOR_TL__WINDOW_OFFSET_DISABLE__SHIFT 0x0000001f
+
+// PA_SC_WINDOW_SCISSOR_BR
+#define PA_SC_WINDOW_SCISSOR_BR__BR_X__SHIFT 0x00000000
+#define PA_SC_WINDOW_SCISSOR_BR__BR_Y__SHIFT 0x00000010
+
+// PA_SC_SCREEN_SCISSOR_TL
+#define PA_SC_SCREEN_SCISSOR_TL__TL_X__SHIFT 0x00000000
+#define PA_SC_SCREEN_SCISSOR_TL__TL_Y__SHIFT 0x00000010
+
+// PA_SC_SCREEN_SCISSOR_BR
+#define PA_SC_SCREEN_SCISSOR_BR__BR_X__SHIFT 0x00000000
+#define PA_SC_SCREEN_SCISSOR_BR__BR_Y__SHIFT 0x00000010
+
+// PA_SC_VIZ_QUERY
+#define PA_SC_VIZ_QUERY__VIZ_QUERY_ENA__SHIFT 0x00000000
+#define PA_SC_VIZ_QUERY__VIZ_QUERY_ID__SHIFT 0x00000001
+#define PA_SC_VIZ_QUERY__KILL_PIX_POST_EARLY_Z__SHIFT 0x00000007
+
+// PA_SC_VIZ_QUERY_STATUS
+#define PA_SC_VIZ_QUERY_STATUS__STATUS_BITS__SHIFT 0x00000000
+
+// PA_SC_LINE_STIPPLE_STATE
+#define PA_SC_LINE_STIPPLE_STATE__CURRENT_PTR__SHIFT 0x00000000
+#define PA_SC_LINE_STIPPLE_STATE__CURRENT_COUNT__SHIFT 0x00000008
+
+// PA_SC_PERFCOUNTER0_SELECT
+#define PA_SC_PERFCOUNTER0_SELECT__PERF_SEL__SHIFT 0x00000000
+
+// PA_SC_PERFCOUNTER0_LOW
+#define PA_SC_PERFCOUNTER0_LOW__PERF_COUNT__SHIFT 0x00000000
+
+// PA_SC_PERFCOUNTER0_HI
+#define PA_SC_PERFCOUNTER0_HI__PERF_COUNT__SHIFT 0x00000000
+
+// PA_CL_CNTL_STATUS
+#define PA_CL_CNTL_STATUS__CL_BUSY__SHIFT 0x0000001f
+
+// PA_SU_CNTL_STATUS
+#define PA_SU_CNTL_STATUS__SU_BUSY__SHIFT 0x0000001f
+
+// PA_SC_CNTL_STATUS
+#define PA_SC_CNTL_STATUS__SC_BUSY__SHIFT 0x0000001f
+
+// PA_SU_DEBUG_CNTL
+#define PA_SU_DEBUG_CNTL__SU_DEBUG_INDX__SHIFT 0x00000000
+
+// PA_SU_DEBUG_DATA
+#define PA_SU_DEBUG_DATA__DATA__SHIFT 0x00000000
+
+// CLIPPER_DEBUG_REG00
+#define CLIPPER_DEBUG_REG00__clip_ga_bc_fifo_write__SHIFT 0x00000000
+#define CLIPPER_DEBUG_REG00__clip_ga_bc_fifo_full__SHIFT 0x00000001
+#define CLIPPER_DEBUG_REG00__clip_to_ga_fifo_write__SHIFT 0x00000002
+#define CLIPPER_DEBUG_REG00__clip_to_ga_fifo_full__SHIFT 0x00000003
+#define CLIPPER_DEBUG_REG00__primic_to_clprim_fifo_empty__SHIFT 0x00000004
+#define CLIPPER_DEBUG_REG00__primic_to_clprim_fifo_full__SHIFT 0x00000005
+#define CLIPPER_DEBUG_REG00__clip_to_outsm_fifo_empty__SHIFT 0x00000006
+#define CLIPPER_DEBUG_REG00__clip_to_outsm_fifo_full__SHIFT 0x00000007
+#define CLIPPER_DEBUG_REG00__vgt_to_clipp_fifo_empty__SHIFT 0x00000008
+#define CLIPPER_DEBUG_REG00__vgt_to_clipp_fifo_full__SHIFT 0x00000009
+#define CLIPPER_DEBUG_REG00__vgt_to_clips_fifo_empty__SHIFT 0x0000000a
+#define CLIPPER_DEBUG_REG00__vgt_to_clips_fifo_full__SHIFT 0x0000000b
+#define CLIPPER_DEBUG_REG00__clipcode_fifo_fifo_empty__SHIFT 0x0000000c
+#define CLIPPER_DEBUG_REG00__clipcode_fifo_full__SHIFT 0x0000000d
+#define CLIPPER_DEBUG_REG00__vte_out_clip_fifo_fifo_empty__SHIFT 0x0000000e
+#define CLIPPER_DEBUG_REG00__vte_out_clip_fifo_fifo_full__SHIFT 0x0000000f
+#define CLIPPER_DEBUG_REG00__vte_out_orig_fifo_fifo_empty__SHIFT 0x00000010
+#define CLIPPER_DEBUG_REG00__vte_out_orig_fifo_fifo_full__SHIFT 0x00000011
+#define CLIPPER_DEBUG_REG00__ccgen_to_clipcc_fifo_empty__SHIFT 0x00000012
+#define CLIPPER_DEBUG_REG00__ccgen_to_clipcc_fifo_full__SHIFT 0x00000013
+#define CLIPPER_DEBUG_REG00__ALWAYS_ZERO__SHIFT 0x00000014
+
+// CLIPPER_DEBUG_REG01
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_end_of_packet__SHIFT 0x00000000
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_first_prim_of_slot__SHIFT 0x00000001
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_deallocate_slot__SHIFT 0x00000002
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_clipped_prim__SHIFT 0x00000005
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_null_primitive__SHIFT 0x00000006
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_vertex_store_indx_2__SHIFT 0x00000007
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_vertex_store_indx_1__SHIFT 0x0000000b
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_vertex_store_indx_0__SHIFT 0x0000000f
+#define CLIPPER_DEBUG_REG01__clip_vert_vte_valid__SHIFT 0x00000013
+#define CLIPPER_DEBUG_REG01__vte_out_clip_rd_vertex_store_indx__SHIFT 0x00000016
+#define CLIPPER_DEBUG_REG01__ALWAYS_ZERO__SHIFT 0x00000018
+
+// CLIPPER_DEBUG_REG02
+#define CLIPPER_DEBUG_REG02__ALWAYS_ZERO1__SHIFT 0x00000000
+#define CLIPPER_DEBUG_REG02__clipsm0_clip_to_clipga_clip_to_outsm_cnt__SHIFT 0x00000015
+#define CLIPPER_DEBUG_REG02__ALWAYS_ZERO0__SHIFT 0x00000018
+#define CLIPPER_DEBUG_REG02__clipsm0_clprim_to_clip_prim_valid__SHIFT 0x0000001f
+
+// CLIPPER_DEBUG_REG03
+#define CLIPPER_DEBUG_REG03__ALWAYS_ZERO3__SHIFT 0x00000000
+#define CLIPPER_DEBUG_REG03__clipsm0_clprim_to_clip_clip_primitive__SHIFT 0x00000003
+#define CLIPPER_DEBUG_REG03__ALWAYS_ZERO2__SHIFT 0x00000004
+#define CLIPPER_DEBUG_REG03__clipsm0_clprim_to_clip_null_primitive__SHIFT 0x00000007
+#define CLIPPER_DEBUG_REG03__ALWAYS_ZERO1__SHIFT 0x00000008
+#define CLIPPER_DEBUG_REG03__clipsm0_clprim_to_clip_clip_code_or__SHIFT 0x00000014
+#define CLIPPER_DEBUG_REG03__ALWAYS_ZERO0__SHIFT 0x0000001a
+
+// CLIPPER_DEBUG_REG04
+#define CLIPPER_DEBUG_REG04__ALWAYS_ZERO2__SHIFT 0x00000000
+#define CLIPPER_DEBUG_REG04__clipsm0_clprim_to_clip_first_prim_of_slot__SHIFT 0x00000003
+#define CLIPPER_DEBUG_REG04__ALWAYS_ZERO1__SHIFT 0x00000004
+#define CLIPPER_DEBUG_REG04__clipsm0_clprim_to_clip_event__SHIFT 0x00000007
+#define CLIPPER_DEBUG_REG04__ALWAYS_ZERO0__SHIFT 0x00000008
+
+// CLIPPER_DEBUG_REG05
+#define CLIPPER_DEBUG_REG05__clipsm0_clprim_to_clip_state_var_indx__SHIFT 0x00000000
+#define CLIPPER_DEBUG_REG05__ALWAYS_ZERO3__SHIFT 0x00000001
+#define CLIPPER_DEBUG_REG05__clipsm0_clprim_to_clip_deallocate_slot__SHIFT 0x00000003
+#define CLIPPER_DEBUG_REG05__clipsm0_clprim_to_clip_event_id__SHIFT 0x00000006
+#define CLIPPER_DEBUG_REG05__clipsm0_clprim_to_clip_vertex_store_indx_2__SHIFT 0x0000000c
+#define CLIPPER_DEBUG_REG05__ALWAYS_ZERO2__SHIFT 0x00000010
+#define CLIPPER_DEBUG_REG05__clipsm0_clprim_to_clip_vertex_store_indx_1__SHIFT 0x00000012
+#define CLIPPER_DEBUG_REG05__ALWAYS_ZERO1__SHIFT 0x00000016
+#define CLIPPER_DEBUG_REG05__clipsm0_clprim_to_clip_vertex_store_indx_0__SHIFT 0x00000018
+#define CLIPPER_DEBUG_REG05__ALWAYS_ZERO0__SHIFT 0x0000001c
+
+// CLIPPER_DEBUG_REG09
+#define CLIPPER_DEBUG_REG09__clprim_in_back_event__SHIFT 0x00000000
+#define CLIPPER_DEBUG_REG09__outputclprimtoclip_null_primitive__SHIFT 0x00000001
+#define CLIPPER_DEBUG_REG09__clprim_in_back_vertex_store_indx_2__SHIFT 0x00000002
+#define CLIPPER_DEBUG_REG09__ALWAYS_ZERO2__SHIFT 0x00000006
+#define CLIPPER_DEBUG_REG09__clprim_in_back_vertex_store_indx_1__SHIFT 0x00000008
+#define CLIPPER_DEBUG_REG09__ALWAYS_ZERO1__SHIFT 0x0000000c
+#define CLIPPER_DEBUG_REG09__clprim_in_back_vertex_store_indx_0__SHIFT 0x0000000e
+#define CLIPPER_DEBUG_REG09__ALWAYS_ZERO0__SHIFT 0x00000012
+#define CLIPPER_DEBUG_REG09__prim_back_valid__SHIFT 0x00000014
+#define CLIPPER_DEBUG_REG09__clip_priority_seq_indx_out_cnt__SHIFT 0x00000015
+#define CLIPPER_DEBUG_REG09__outsm_clr_rd_orig_vertices__SHIFT 0x00000019
+#define CLIPPER_DEBUG_REG09__outsm_clr_rd_clipsm_wait__SHIFT 0x0000001b
+#define CLIPPER_DEBUG_REG09__outsm_clr_fifo_empty__SHIFT 0x0000001c
+#define CLIPPER_DEBUG_REG09__outsm_clr_fifo_full__SHIFT 0x0000001d
+#define CLIPPER_DEBUG_REG09__clip_priority_seq_indx_load__SHIFT 0x0000001e
+
+// CLIPPER_DEBUG_REG10
+#define CLIPPER_DEBUG_REG10__primic_to_clprim_fifo_vertex_store_indx_2__SHIFT 0x00000000
+#define CLIPPER_DEBUG_REG10__ALWAYS_ZERO3__SHIFT 0x00000004
+#define CLIPPER_DEBUG_REG10__primic_to_clprim_fifo_vertex_store_indx_1__SHIFT 0x00000006
+#define CLIPPER_DEBUG_REG10__ALWAYS_ZERO2__SHIFT 0x0000000a
+#define CLIPPER_DEBUG_REG10__primic_to_clprim_fifo_vertex_store_indx_0__SHIFT 0x0000000c
+#define CLIPPER_DEBUG_REG10__ALWAYS_ZERO1__SHIFT 0x00000010
+#define CLIPPER_DEBUG_REG10__clprim_in_back_state_var_indx__SHIFT 0x00000012
+#define CLIPPER_DEBUG_REG10__ALWAYS_ZERO0__SHIFT 0x00000013
+#define CLIPPER_DEBUG_REG10__clprim_in_back_end_of_packet__SHIFT 0x00000015
+#define CLIPPER_DEBUG_REG10__clprim_in_back_first_prim_of_slot__SHIFT 0x00000016
+#define CLIPPER_DEBUG_REG10__clprim_in_back_deallocate_slot__SHIFT 0x00000017
+#define CLIPPER_DEBUG_REG10__clprim_in_back_event_id__SHIFT 0x0000001a
+
+// CLIPPER_DEBUG_REG11
+#define CLIPPER_DEBUG_REG11__vertval_bits_vertex_vertex_store_msb__SHIFT 0x00000000
+#define CLIPPER_DEBUG_REG11__ALWAYS_ZERO__SHIFT 0x00000004
+
+// CLIPPER_DEBUG_REG12
+#define CLIPPER_DEBUG_REG12__clip_priority_available_vte_out_clip__SHIFT 0x00000000
+#define CLIPPER_DEBUG_REG12__ALWAYS_ZERO2__SHIFT 0x00000002
+#define CLIPPER_DEBUG_REG12__clip_vertex_fifo_empty__SHIFT 0x00000005
+#define CLIPPER_DEBUG_REG12__clip_priority_available_clip_verts__SHIFT 0x00000006
+#define CLIPPER_DEBUG_REG12__ALWAYS_ZERO1__SHIFT 0x0000000b
+#define CLIPPER_DEBUG_REG12__vertval_bits_vertex_cc_next_valid__SHIFT 0x0000000f
+#define CLIPPER_DEBUG_REG12__clipcc_vertex_store_indx__SHIFT 0x00000013
+#define CLIPPER_DEBUG_REG12__primic_to_clprim_valid__SHIFT 0x00000015
+#define CLIPPER_DEBUG_REG12__ALWAYS_ZERO0__SHIFT 0x00000016
+
+// CLIPPER_DEBUG_REG13
+#define CLIPPER_DEBUG_REG13__sm0_clip_vert_cnt__SHIFT 0x00000000
+#define CLIPPER_DEBUG_REG13__sm0_prim_end_state__SHIFT 0x00000004
+#define CLIPPER_DEBUG_REG13__ALWAYS_ZERO1__SHIFT 0x0000000b
+#define CLIPPER_DEBUG_REG13__sm0_vertex_clip_cnt__SHIFT 0x0000000e
+#define CLIPPER_DEBUG_REG13__sm0_inv_to_clip_data_valid_1__SHIFT 0x00000012
+#define CLIPPER_DEBUG_REG13__sm0_inv_to_clip_data_valid_0__SHIFT 0x00000013
+#define CLIPPER_DEBUG_REG13__sm0_current_state__SHIFT 0x00000014
+#define CLIPPER_DEBUG_REG13__ALWAYS_ZERO0__SHIFT 0x0000001b
+
+// SXIFCCG_DEBUG_REG0
+#define SXIFCCG_DEBUG_REG0__nan_kill_flag__SHIFT 0x00000000
+#define SXIFCCG_DEBUG_REG0__position_address__SHIFT 0x00000004
+#define SXIFCCG_DEBUG_REG0__ALWAYS_ZERO2__SHIFT 0x00000007
+#define SXIFCCG_DEBUG_REG0__point_address__SHIFT 0x0000000a
+#define SXIFCCG_DEBUG_REG0__ALWAYS_ZERO1__SHIFT 0x0000000d
+#define SXIFCCG_DEBUG_REG0__sx_pending_rd_state_var_indx__SHIFT 0x00000010
+#define SXIFCCG_DEBUG_REG0__ALWAYS_ZERO0__SHIFT 0x00000011
+#define SXIFCCG_DEBUG_REG0__sx_pending_rd_req_mask__SHIFT 0x00000013
+#define SXIFCCG_DEBUG_REG0__sx_pending_rd_pci__SHIFT 0x00000017
+#define SXIFCCG_DEBUG_REG0__sx_pending_rd_aux_inc__SHIFT 0x0000001e
+#define SXIFCCG_DEBUG_REG0__sx_pending_rd_aux_sel__SHIFT 0x0000001f
+
+// SXIFCCG_DEBUG_REG1
+#define SXIFCCG_DEBUG_REG1__ALWAYS_ZERO3__SHIFT 0x00000000
+#define SXIFCCG_DEBUG_REG1__sx_to_pa_empty__SHIFT 0x00000002
+#define SXIFCCG_DEBUG_REG1__available_positions__SHIFT 0x00000004
+#define SXIFCCG_DEBUG_REG1__ALWAYS_ZERO2__SHIFT 0x00000007
+#define SXIFCCG_DEBUG_REG1__sx_pending_advance__SHIFT 0x0000000b
+#define SXIFCCG_DEBUG_REG1__sx_receive_indx__SHIFT 0x0000000c
+#define SXIFCCG_DEBUG_REG1__statevar_bits_sxpa_aux_vector__SHIFT 0x0000000f
+#define SXIFCCG_DEBUG_REG1__ALWAYS_ZERO1__SHIFT 0x00000010
+#define SXIFCCG_DEBUG_REG1__aux_sel__SHIFT 0x00000014
+#define SXIFCCG_DEBUG_REG1__ALWAYS_ZERO0__SHIFT 0x00000015
+#define SXIFCCG_DEBUG_REG1__pasx_req_cnt__SHIFT 0x00000017
+#define SXIFCCG_DEBUG_REG1__param_cache_base__SHIFT 0x00000019
+
+// SXIFCCG_DEBUG_REG2
+#define SXIFCCG_DEBUG_REG2__sx_sent__SHIFT 0x00000000
+#define SXIFCCG_DEBUG_REG2__ALWAYS_ZERO3__SHIFT 0x00000001
+#define SXIFCCG_DEBUG_REG2__sx_aux__SHIFT 0x00000002
+#define SXIFCCG_DEBUG_REG2__sx_request_indx__SHIFT 0x00000003
+#define SXIFCCG_DEBUG_REG2__req_active_verts__SHIFT 0x00000009
+#define SXIFCCG_DEBUG_REG2__ALWAYS_ZERO2__SHIFT 0x00000010
+#define SXIFCCG_DEBUG_REG2__vgt_to_ccgen_state_var_indx__SHIFT 0x00000011
+#define SXIFCCG_DEBUG_REG2__ALWAYS_ZERO1__SHIFT 0x00000012
+#define SXIFCCG_DEBUG_REG2__vgt_to_ccgen_active_verts__SHIFT 0x00000014
+#define SXIFCCG_DEBUG_REG2__ALWAYS_ZERO0__SHIFT 0x00000016
+#define SXIFCCG_DEBUG_REG2__req_active_verts_loaded__SHIFT 0x0000001a
+#define SXIFCCG_DEBUG_REG2__sx_pending_fifo_empty__SHIFT 0x0000001b
+#define SXIFCCG_DEBUG_REG2__sx_pending_fifo_full__SHIFT 0x0000001c
+#define SXIFCCG_DEBUG_REG2__sx_pending_fifo_contents__SHIFT 0x0000001d
+
+// SXIFCCG_DEBUG_REG3
+#define SXIFCCG_DEBUG_REG3__vertex_fifo_entriesavailable__SHIFT 0x00000000
+#define SXIFCCG_DEBUG_REG3__ALWAYS_ZERO3__SHIFT 0x00000004
+#define SXIFCCG_DEBUG_REG3__available_positions__SHIFT 0x00000005
+#define SXIFCCG_DEBUG_REG3__ALWAYS_ZERO2__SHIFT 0x00000008
+#define SXIFCCG_DEBUG_REG3__current_state__SHIFT 0x0000000c
+#define SXIFCCG_DEBUG_REG3__vertex_fifo_empty__SHIFT 0x0000000e
+#define SXIFCCG_DEBUG_REG3__vertex_fifo_full__SHIFT 0x0000000f
+#define SXIFCCG_DEBUG_REG3__ALWAYS_ZERO1__SHIFT 0x00000010
+#define SXIFCCG_DEBUG_REG3__sx0_receive_fifo_empty__SHIFT 0x00000012
+#define SXIFCCG_DEBUG_REG3__sx0_receive_fifo_full__SHIFT 0x00000013
+#define SXIFCCG_DEBUG_REG3__vgt_to_ccgen_fifo_empty__SHIFT 0x00000014
+#define SXIFCCG_DEBUG_REG3__vgt_to_ccgen_fifo_full__SHIFT 0x00000015
+#define SXIFCCG_DEBUG_REG3__ALWAYS_ZERO0__SHIFT 0x00000016
+
+// SETUP_DEBUG_REG0
+#define SETUP_DEBUG_REG0__su_cntl_state__SHIFT 0x00000000
+#define SETUP_DEBUG_REG0__pmode_state__SHIFT 0x00000005
+#define SETUP_DEBUG_REG0__ge_stallb__SHIFT 0x0000000b
+#define SETUP_DEBUG_REG0__geom_enable__SHIFT 0x0000000c
+#define SETUP_DEBUG_REG0__su_clip_baryc_rtr__SHIFT 0x0000000d
+#define SETUP_DEBUG_REG0__su_clip_rtr__SHIFT 0x0000000e
+#define SETUP_DEBUG_REG0__pfifo_busy__SHIFT 0x0000000f
+#define SETUP_DEBUG_REG0__su_cntl_busy__SHIFT 0x00000010
+#define SETUP_DEBUG_REG0__geom_busy__SHIFT 0x00000011
+
+// SETUP_DEBUG_REG1
+#define SETUP_DEBUG_REG1__y_sort0_gated_17_4__SHIFT 0x00000000
+#define SETUP_DEBUG_REG1__x_sort0_gated_17_4__SHIFT 0x0000000e
+
+// SETUP_DEBUG_REG2
+#define SETUP_DEBUG_REG2__y_sort1_gated_17_4__SHIFT 0x00000000
+#define SETUP_DEBUG_REG2__x_sort1_gated_17_4__SHIFT 0x0000000e
+
+// SETUP_DEBUG_REG3
+#define SETUP_DEBUG_REG3__y_sort2_gated_17_4__SHIFT 0x00000000
+#define SETUP_DEBUG_REG3__x_sort2_gated_17_4__SHIFT 0x0000000e
+
+// SETUP_DEBUG_REG4
+#define SETUP_DEBUG_REG4__attr_indx_sort0_gated__SHIFT 0x00000000
+#define SETUP_DEBUG_REG4__null_prim_gated__SHIFT 0x0000000b
+#define SETUP_DEBUG_REG4__backfacing_gated__SHIFT 0x0000000c
+#define SETUP_DEBUG_REG4__st_indx_gated__SHIFT 0x0000000d
+#define SETUP_DEBUG_REG4__clipped_gated__SHIFT 0x00000010
+#define SETUP_DEBUG_REG4__dealloc_slot_gated__SHIFT 0x00000011
+#define SETUP_DEBUG_REG4__xmajor_gated__SHIFT 0x00000014
+#define SETUP_DEBUG_REG4__diamond_rule_gated__SHIFT 0x00000015
+#define SETUP_DEBUG_REG4__type_gated__SHIFT 0x00000017
+#define SETUP_DEBUG_REG4__fpov_gated__SHIFT 0x0000001a
+#define SETUP_DEBUG_REG4__pmode_prim_gated__SHIFT 0x0000001b
+#define SETUP_DEBUG_REG4__event_gated__SHIFT 0x0000001c
+#define SETUP_DEBUG_REG4__eop_gated__SHIFT 0x0000001d
+
+// SETUP_DEBUG_REG5
+#define SETUP_DEBUG_REG5__attr_indx_sort2_gated__SHIFT 0x00000000
+#define SETUP_DEBUG_REG5__attr_indx_sort1_gated__SHIFT 0x0000000b
+#define SETUP_DEBUG_REG5__provoking_vtx_gated__SHIFT 0x00000016
+#define SETUP_DEBUG_REG5__event_id_gated__SHIFT 0x00000018
+
+// PA_SC_DEBUG_CNTL
+#define PA_SC_DEBUG_CNTL__SC_DEBUG_INDX__SHIFT 0x00000000
+
+// PA_SC_DEBUG_DATA
+#define PA_SC_DEBUG_DATA__DATA__SHIFT 0x00000000
+
+// SC_DEBUG_0
+#define SC_DEBUG_0__pa_freeze_b1__SHIFT 0x00000000
+#define SC_DEBUG_0__pa_sc_valid__SHIFT 0x00000001
+#define SC_DEBUG_0__pa_sc_phase__SHIFT 0x00000002
+#define SC_DEBUG_0__cntx_cnt__SHIFT 0x00000005
+#define SC_DEBUG_0__decr_cntx_cnt__SHIFT 0x0000000c
+#define SC_DEBUG_0__incr_cntx_cnt__SHIFT 0x0000000d
+#define SC_DEBUG_0__trigger__SHIFT 0x0000001f
+
+// SC_DEBUG_1
+#define SC_DEBUG_1__em_state__SHIFT 0x00000000
+#define SC_DEBUG_1__em1_data_ready__SHIFT 0x00000003
+#define SC_DEBUG_1__em2_data_ready__SHIFT 0x00000004
+#define SC_DEBUG_1__move_em1_to_em2__SHIFT 0x00000005
+#define SC_DEBUG_1__ef_data_ready__SHIFT 0x00000006
+#define SC_DEBUG_1__ef_state__SHIFT 0x00000007
+#define SC_DEBUG_1__pipe_valid__SHIFT 0x00000009
+#define SC_DEBUG_1__trigger__SHIFT 0x0000001f
+
+// SC_DEBUG_2
+#define SC_DEBUG_2__rc_rtr_dly__SHIFT 0x00000000
+#define SC_DEBUG_2__qmask_ff_alm_full_d1__SHIFT 0x00000001
+#define SC_DEBUG_2__pipe_freeze_b__SHIFT 0x00000003
+#define SC_DEBUG_2__prim_rts__SHIFT 0x00000004
+#define SC_DEBUG_2__next_prim_rts_dly__SHIFT 0x00000005
+#define SC_DEBUG_2__next_prim_rtr_dly__SHIFT 0x00000006
+#define SC_DEBUG_2__pre_stage1_rts_d1__SHIFT 0x00000007
+#define SC_DEBUG_2__stage0_rts__SHIFT 0x00000008
+#define SC_DEBUG_2__phase_rts_dly__SHIFT 0x00000009
+#define SC_DEBUG_2__end_of_prim_s1_dly__SHIFT 0x0000000f
+#define SC_DEBUG_2__pass_empty_prim_s1__SHIFT 0x00000010
+#define SC_DEBUG_2__event_id_s1__SHIFT 0x00000011
+#define SC_DEBUG_2__event_s1__SHIFT 0x00000016
+#define SC_DEBUG_2__trigger__SHIFT 0x0000001f
+
+// SC_DEBUG_3
+#define SC_DEBUG_3__x_curr_s1__SHIFT 0x00000000
+#define SC_DEBUG_3__y_curr_s1__SHIFT 0x0000000b
+#define SC_DEBUG_3__trigger__SHIFT 0x0000001f
+
+// SC_DEBUG_4
+#define SC_DEBUG_4__y_end_s1__SHIFT 0x00000000
+#define SC_DEBUG_4__y_start_s1__SHIFT 0x0000000e
+#define SC_DEBUG_4__y_dir_s1__SHIFT 0x0000001c
+#define SC_DEBUG_4__trigger__SHIFT 0x0000001f
+
+// SC_DEBUG_5
+#define SC_DEBUG_5__x_end_s1__SHIFT 0x00000000
+#define SC_DEBUG_5__x_start_s1__SHIFT 0x0000000e
+#define SC_DEBUG_5__x_dir_s1__SHIFT 0x0000001c
+#define SC_DEBUG_5__trigger__SHIFT 0x0000001f
+
+// SC_DEBUG_6
+#define SC_DEBUG_6__z_ff_empty__SHIFT 0x00000000
+#define SC_DEBUG_6__qmcntl_ff_empty__SHIFT 0x00000001
+#define SC_DEBUG_6__xy_ff_empty__SHIFT 0x00000002
+#define SC_DEBUG_6__event_flag__SHIFT 0x00000003
+#define SC_DEBUG_6__z_mask_needed__SHIFT 0x00000004
+#define SC_DEBUG_6__state__SHIFT 0x00000005
+#define SC_DEBUG_6__state_delayed__SHIFT 0x00000008
+#define SC_DEBUG_6__data_valid__SHIFT 0x0000000b
+#define SC_DEBUG_6__data_valid_d__SHIFT 0x0000000c
+#define SC_DEBUG_6__tilex_delayed__SHIFT 0x0000000d
+#define SC_DEBUG_6__tiley_delayed__SHIFT 0x00000016
+#define SC_DEBUG_6__trigger__SHIFT 0x0000001f
+
+// SC_DEBUG_7
+#define SC_DEBUG_7__event_flag__SHIFT 0x00000000
+#define SC_DEBUG_7__deallocate__SHIFT 0x00000001
+#define SC_DEBUG_7__fpos__SHIFT 0x00000004
+#define SC_DEBUG_7__sr_prim_we__SHIFT 0x00000005
+#define SC_DEBUG_7__last_tile__SHIFT 0x00000006
+#define SC_DEBUG_7__tile_ff_we__SHIFT 0x00000007
+#define SC_DEBUG_7__qs_data_valid__SHIFT 0x00000008
+#define SC_DEBUG_7__qs_q0_y__SHIFT 0x00000009
+#define SC_DEBUG_7__qs_q0_x__SHIFT 0x0000000b
+#define SC_DEBUG_7__qs_q0_valid__SHIFT 0x0000000d
+#define SC_DEBUG_7__prim_ff_we__SHIFT 0x0000000e
+#define SC_DEBUG_7__tile_ff_re__SHIFT 0x0000000f
+#define SC_DEBUG_7__fw_prim_data_valid__SHIFT 0x00000010
+#define SC_DEBUG_7__last_quad_of_tile__SHIFT 0x00000011
+#define SC_DEBUG_7__first_quad_of_tile__SHIFT 0x00000012
+#define SC_DEBUG_7__first_quad_of_prim__SHIFT 0x00000013
+#define SC_DEBUG_7__new_prim__SHIFT 0x00000014
+#define SC_DEBUG_7__load_new_tile_data__SHIFT 0x00000015
+#define SC_DEBUG_7__state__SHIFT 0x00000016
+#define SC_DEBUG_7__fifos_ready__SHIFT 0x00000018
+#define SC_DEBUG_7__trigger__SHIFT 0x0000001f
+
+// SC_DEBUG_8
+#define SC_DEBUG_8__sample_last__SHIFT 0x00000000
+#define SC_DEBUG_8__sample_mask__SHIFT 0x00000001
+#define SC_DEBUG_8__sample_y__SHIFT 0x00000005
+#define SC_DEBUG_8__sample_x__SHIFT 0x00000007
+#define SC_DEBUG_8__sample_send__SHIFT 0x00000009
+#define SC_DEBUG_8__next_cycle__SHIFT 0x0000000a
+#define SC_DEBUG_8__ez_sample_ff_full__SHIFT 0x0000000c
+#define SC_DEBUG_8__rb_sc_samp_rtr__SHIFT 0x0000000d
+#define SC_DEBUG_8__num_samples__SHIFT 0x0000000e
+#define SC_DEBUG_8__last_quad_of_tile__SHIFT 0x00000010
+#define SC_DEBUG_8__last_quad_of_prim__SHIFT 0x00000011
+#define SC_DEBUG_8__first_quad_of_prim__SHIFT 0x00000012
+#define SC_DEBUG_8__sample_we__SHIFT 0x00000013
+#define SC_DEBUG_8__fpos__SHIFT 0x00000014
+#define SC_DEBUG_8__event_id__SHIFT 0x00000015
+#define SC_DEBUG_8__event_flag__SHIFT 0x0000001a
+#define SC_DEBUG_8__fw_prim_data_valid__SHIFT 0x0000001b
+#define SC_DEBUG_8__trigger__SHIFT 0x0000001f
+
+// SC_DEBUG_9
+#define SC_DEBUG_9__rb_sc_send__SHIFT 0x00000000
+#define SC_DEBUG_9__rb_sc_ez_mask__SHIFT 0x00000001
+#define SC_DEBUG_9__fifo_data_ready__SHIFT 0x00000005
+#define SC_DEBUG_9__early_z_enable__SHIFT 0x00000006
+#define SC_DEBUG_9__mask_state__SHIFT 0x00000007
+#define SC_DEBUG_9__next_ez_mask__SHIFT 0x00000009
+#define SC_DEBUG_9__mask_ready__SHIFT 0x00000019
+#define SC_DEBUG_9__drop_sample__SHIFT 0x0000001a
+#define SC_DEBUG_9__fetch_new_sample_data__SHIFT 0x0000001b
+#define SC_DEBUG_9__fetch_new_ez_sample_mask__SHIFT 0x0000001c
+#define SC_DEBUG_9__pkr_fetch_new_sample_data__SHIFT 0x0000001d
+#define SC_DEBUG_9__pkr_fetch_new_prim_data__SHIFT 0x0000001e
+#define SC_DEBUG_9__trigger__SHIFT 0x0000001f
+
+// SC_DEBUG_10
+#define SC_DEBUG_10__combined_sample_mask__SHIFT 0x00000000
+#define SC_DEBUG_10__trigger__SHIFT 0x0000001f
+
+// SC_DEBUG_11
+#define SC_DEBUG_11__ez_sample_data_ready__SHIFT 0x00000000
+#define SC_DEBUG_11__pkr_fetch_new_sample_data__SHIFT 0x00000001
+#define SC_DEBUG_11__ez_prim_data_ready__SHIFT 0x00000002
+#define SC_DEBUG_11__pkr_fetch_new_prim_data__SHIFT 0x00000003
+#define SC_DEBUG_11__iterator_input_fz__SHIFT 0x00000004
+#define SC_DEBUG_11__packer_send_quads__SHIFT 0x00000005
+#define SC_DEBUG_11__packer_send_cmd__SHIFT 0x00000006
+#define SC_DEBUG_11__packer_send_event__SHIFT 0x00000007
+#define SC_DEBUG_11__next_state__SHIFT 0x00000008
+#define SC_DEBUG_11__state__SHIFT 0x0000000b
+#define SC_DEBUG_11__stall__SHIFT 0x0000000e
+#define SC_DEBUG_11__trigger__SHIFT 0x0000001f
+
+// SC_DEBUG_12
+#define SC_DEBUG_12__SQ_iterator_free_buff__SHIFT 0x00000000
+#define SC_DEBUG_12__event_id__SHIFT 0x00000001
+#define SC_DEBUG_12__event_flag__SHIFT 0x00000006
+#define SC_DEBUG_12__itercmdfifo_busy_nc_dly__SHIFT 0x00000007
+#define SC_DEBUG_12__itercmdfifo_full__SHIFT 0x00000008
+#define SC_DEBUG_12__itercmdfifo_empty__SHIFT 0x00000009
+#define SC_DEBUG_12__iter_ds_one_clk_command__SHIFT 0x0000000a
+#define SC_DEBUG_12__iter_ds_end_of_prim0__SHIFT 0x0000000b
+#define SC_DEBUG_12__iter_ds_end_of_vector__SHIFT 0x0000000c
+#define SC_DEBUG_12__iter_qdhit0__SHIFT 0x0000000d
+#define SC_DEBUG_12__bc_use_centers_reg__SHIFT 0x0000000e
+#define SC_DEBUG_12__bc_output_xy_reg__SHIFT 0x0000000f
+#define SC_DEBUG_12__iter_phase_out__SHIFT 0x00000010
+#define SC_DEBUG_12__iter_phase_reg__SHIFT 0x00000012
+#define SC_DEBUG_12__iterator_SP_valid__SHIFT 0x00000014
+#define SC_DEBUG_12__eopv_reg__SHIFT 0x00000015
+#define SC_DEBUG_12__one_clk_cmd_reg__SHIFT 0x00000016
+#define SC_DEBUG_12__iter_dx_end_of_prim__SHIFT 0x00000017
+#define SC_DEBUG_12__trigger__SHIFT 0x0000001f
+
+// GFX_COPY_STATE
+#define GFX_COPY_STATE__SRC_STATE_ID__SHIFT 0x00000000
+
+// VGT_DRAW_INITIATOR
+#define VGT_DRAW_INITIATOR__PRIM_TYPE__SHIFT 0x00000000
+#define VGT_DRAW_INITIATOR__SOURCE_SELECT__SHIFT 0x00000006
+#define VGT_DRAW_INITIATOR__INDEX_SIZE__SHIFT 0x0000000b
+#define VGT_DRAW_INITIATOR__NOT_EOP__SHIFT 0x0000000c
+#define VGT_DRAW_INITIATOR__SMALL_INDEX__SHIFT 0x0000000d
+#define VGT_DRAW_INITIATOR__PRE_FETCH_CULL_ENABLE__SHIFT 0x0000000e
+#define VGT_DRAW_INITIATOR__GRP_CULL_ENABLE__SHIFT 0x0000000f
+#define VGT_DRAW_INITIATOR__NUM_INDICES__SHIFT 0x00000010
+
+// VGT_EVENT_INITIATOR
+#define VGT_EVENT_INITIATOR__EVENT_TYPE__SHIFT 0x00000000
+
+// VGT_DMA_BASE
+#define VGT_DMA_BASE__BASE_ADDR__SHIFT 0x00000000
+
+// VGT_DMA_SIZE
+#define VGT_DMA_SIZE__NUM_WORDS__SHIFT 0x00000000
+#define VGT_DMA_SIZE__SWAP_MODE__SHIFT 0x0000001e
+
+// VGT_BIN_BASE
+#define VGT_BIN_BASE__BIN_BASE_ADDR__SHIFT 0x00000000
+
+// VGT_BIN_SIZE
+#define VGT_BIN_SIZE__NUM_WORDS__SHIFT 0x00000000
+
+// VGT_CURRENT_BIN_ID_MIN
+#define VGT_CURRENT_BIN_ID_MIN__COLUMN__SHIFT 0x00000000
+#define VGT_CURRENT_BIN_ID_MIN__ROW__SHIFT 0x00000003
+#define VGT_CURRENT_BIN_ID_MIN__GUARD_BAND__SHIFT 0x00000006
+
+// VGT_CURRENT_BIN_ID_MAX
+#define VGT_CURRENT_BIN_ID_MAX__COLUMN__SHIFT 0x00000000
+#define VGT_CURRENT_BIN_ID_MAX__ROW__SHIFT 0x00000003
+#define VGT_CURRENT_BIN_ID_MAX__GUARD_BAND__SHIFT 0x00000006
+
+// VGT_IMMED_DATA
+#define VGT_IMMED_DATA__DATA__SHIFT 0x00000000
+
+// VGT_MAX_VTX_INDX
+#define VGT_MAX_VTX_INDX__MAX_INDX__SHIFT 0x00000000
+
+// VGT_MIN_VTX_INDX
+#define VGT_MIN_VTX_INDX__MIN_INDX__SHIFT 0x00000000
+
+// VGT_INDX_OFFSET
+#define VGT_INDX_OFFSET__INDX_OFFSET__SHIFT 0x00000000
+
+// VGT_VERTEX_REUSE_BLOCK_CNTL
+#define VGT_VERTEX_REUSE_BLOCK_CNTL__VTX_REUSE_DEPTH__SHIFT 0x00000000
+
+// VGT_OUT_DEALLOC_CNTL
+#define VGT_OUT_DEALLOC_CNTL__DEALLOC_DIST__SHIFT 0x00000000
+
+// VGT_MULTI_PRIM_IB_RESET_INDX
+#define VGT_MULTI_PRIM_IB_RESET_INDX__RESET_INDX__SHIFT 0x00000000
+
+// VGT_ENHANCE
+#define VGT_ENHANCE__MISC__SHIFT 0x00000000
+
+// VGT_VTX_VECT_EJECT_REG
+#define VGT_VTX_VECT_EJECT_REG__PRIM_COUNT__SHIFT 0x00000000
+
+// VGT_LAST_COPY_STATE
+#define VGT_LAST_COPY_STATE__SRC_STATE_ID__SHIFT 0x00000000
+#define VGT_LAST_COPY_STATE__DST_STATE_ID__SHIFT 0x00000010
+
+// VGT_DEBUG_CNTL
+#define VGT_DEBUG_CNTL__VGT_DEBUG_INDX__SHIFT 0x00000000
+
+// VGT_DEBUG_DATA
+#define VGT_DEBUG_DATA__DATA__SHIFT 0x00000000
+
+// VGT_CNTL_STATUS
+#define VGT_CNTL_STATUS__VGT_BUSY__SHIFT 0x00000000
+#define VGT_CNTL_STATUS__VGT_DMA_BUSY__SHIFT 0x00000001
+#define VGT_CNTL_STATUS__VGT_DMA_REQ_BUSY__SHIFT 0x00000002
+#define VGT_CNTL_STATUS__VGT_GRP_BUSY__SHIFT 0x00000003
+#define VGT_CNTL_STATUS__VGT_VR_BUSY__SHIFT 0x00000004
+#define VGT_CNTL_STATUS__VGT_BIN_BUSY__SHIFT 0x00000005
+#define VGT_CNTL_STATUS__VGT_PT_BUSY__SHIFT 0x00000006
+#define VGT_CNTL_STATUS__VGT_OUT_BUSY__SHIFT 0x00000007
+#define VGT_CNTL_STATUS__VGT_OUT_INDX_BUSY__SHIFT 0x00000008
+
+// VGT_DEBUG_REG0
+#define VGT_DEBUG_REG0__te_grp_busy__SHIFT 0x00000000
+#define VGT_DEBUG_REG0__pt_grp_busy__SHIFT 0x00000001
+#define VGT_DEBUG_REG0__vr_grp_busy__SHIFT 0x00000002
+#define VGT_DEBUG_REG0__dma_request_busy__SHIFT 0x00000003
+#define VGT_DEBUG_REG0__out_busy__SHIFT 0x00000004
+#define VGT_DEBUG_REG0__grp_backend_busy__SHIFT 0x00000005
+#define VGT_DEBUG_REG0__grp_busy__SHIFT 0x00000006
+#define VGT_DEBUG_REG0__dma_busy__SHIFT 0x00000007
+#define VGT_DEBUG_REG0__rbiu_dma_request_busy__SHIFT 0x00000008
+#define VGT_DEBUG_REG0__rbiu_busy__SHIFT 0x00000009
+#define VGT_DEBUG_REG0__vgt_no_dma_busy_extended__SHIFT 0x0000000a
+#define VGT_DEBUG_REG0__vgt_no_dma_busy__SHIFT 0x0000000b
+#define VGT_DEBUG_REG0__vgt_busy_extended__SHIFT 0x0000000c
+#define VGT_DEBUG_REG0__vgt_busy__SHIFT 0x0000000d
+#define VGT_DEBUG_REG0__rbbm_skid_fifo_busy_out__SHIFT 0x0000000e
+#define VGT_DEBUG_REG0__VGT_RBBM_no_dma_busy__SHIFT 0x0000000f
+#define VGT_DEBUG_REG0__VGT_RBBM_busy__SHIFT 0x00000010
+
+// VGT_DEBUG_REG1
+#define VGT_DEBUG_REG1__out_te_data_read__SHIFT 0x00000000
+#define VGT_DEBUG_REG1__te_out_data_valid__SHIFT 0x00000001
+#define VGT_DEBUG_REG1__out_pt_prim_read__SHIFT 0x00000002
+#define VGT_DEBUG_REG1__pt_out_prim_valid__SHIFT 0x00000003
+#define VGT_DEBUG_REG1__out_pt_data_read__SHIFT 0x00000004
+#define VGT_DEBUG_REG1__pt_out_indx_valid__SHIFT 0x00000005
+#define VGT_DEBUG_REG1__out_vr_prim_read__SHIFT 0x00000006
+#define VGT_DEBUG_REG1__vr_out_prim_valid__SHIFT 0x00000007
+#define VGT_DEBUG_REG1__out_vr_indx_read__SHIFT 0x00000008
+#define VGT_DEBUG_REG1__vr_out_indx_valid__SHIFT 0x00000009
+#define VGT_DEBUG_REG1__te_grp_read__SHIFT 0x0000000a
+#define VGT_DEBUG_REG1__grp_te_valid__SHIFT 0x0000000b
+#define VGT_DEBUG_REG1__pt_grp_read__SHIFT 0x0000000c
+#define VGT_DEBUG_REG1__grp_pt_valid__SHIFT 0x0000000d
+#define VGT_DEBUG_REG1__vr_grp_read__SHIFT 0x0000000e
+#define VGT_DEBUG_REG1__grp_vr_valid__SHIFT 0x0000000f
+#define VGT_DEBUG_REG1__grp_dma_read__SHIFT 0x00000010
+#define VGT_DEBUG_REG1__dma_grp_valid__SHIFT 0x00000011
+#define VGT_DEBUG_REG1__grp_rbiu_di_read__SHIFT 0x00000012
+#define VGT_DEBUG_REG1__rbiu_grp_di_valid__SHIFT 0x00000013
+#define VGT_DEBUG_REG1__MH_VGT_rtr__SHIFT 0x00000014
+#define VGT_DEBUG_REG1__VGT_MH_send__SHIFT 0x00000015
+#define VGT_DEBUG_REG1__PA_VGT_clip_s_rtr__SHIFT 0x00000016
+#define VGT_DEBUG_REG1__VGT_PA_clip_s_send__SHIFT 0x00000017
+#define VGT_DEBUG_REG1__PA_VGT_clip_p_rtr__SHIFT 0x00000018
+#define VGT_DEBUG_REG1__VGT_PA_clip_p_send__SHIFT 0x00000019
+#define VGT_DEBUG_REG1__PA_VGT_clip_v_rtr__SHIFT 0x0000001a
+#define VGT_DEBUG_REG1__VGT_PA_clip_v_send__SHIFT 0x0000001b
+#define VGT_DEBUG_REG1__SQ_VGT_rtr__SHIFT 0x0000001c
+#define VGT_DEBUG_REG1__VGT_SQ_send__SHIFT 0x0000001d
+#define VGT_DEBUG_REG1__mh_vgt_tag_7_q__SHIFT 0x0000001e
+
+// VGT_DEBUG_REG3
+#define VGT_DEBUG_REG3__vgt_clk_en__SHIFT 0x00000000
+#define VGT_DEBUG_REG3__reg_fifos_clk_en__SHIFT 0x00000001
+
+// VGT_DEBUG_REG6
+#define VGT_DEBUG_REG6__shifter_byte_count_q__SHIFT 0x00000000
+#define VGT_DEBUG_REG6__right_word_indx_q__SHIFT 0x00000005
+#define VGT_DEBUG_REG6__input_data_valid__SHIFT 0x0000000a
+#define VGT_DEBUG_REG6__input_data_xfer__SHIFT 0x0000000b
+#define VGT_DEBUG_REG6__next_shift_is_vect_1_q__SHIFT 0x0000000c
+#define VGT_DEBUG_REG6__next_shift_is_vect_1_d__SHIFT 0x0000000d
+#define VGT_DEBUG_REG6__next_shift_is_vect_1_pre_d__SHIFT 0x0000000e
+#define VGT_DEBUG_REG6__space_avail_from_shift__SHIFT 0x0000000f
+#define VGT_DEBUG_REG6__shifter_first_load__SHIFT 0x00000010
+#define VGT_DEBUG_REG6__di_state_sel_q__SHIFT 0x00000011
+#define VGT_DEBUG_REG6__shifter_waiting_for_first_load_q__SHIFT 0x00000012
+#define VGT_DEBUG_REG6__di_first_group_flag_q__SHIFT 0x00000013
+#define VGT_DEBUG_REG6__di_event_flag_q__SHIFT 0x00000014
+#define VGT_DEBUG_REG6__read_draw_initiator__SHIFT 0x00000015
+#define VGT_DEBUG_REG6__loading_di_requires_shifter__SHIFT 0x00000016
+#define VGT_DEBUG_REG6__last_shift_of_packet__SHIFT 0x00000017
+#define VGT_DEBUG_REG6__last_decr_of_packet__SHIFT 0x00000018
+#define VGT_DEBUG_REG6__extract_vector__SHIFT 0x00000019
+#define VGT_DEBUG_REG6__shift_vect_rtr__SHIFT 0x0000001a
+#define VGT_DEBUG_REG6__destination_rtr__SHIFT 0x0000001b
+#define VGT_DEBUG_REG6__grp_trigger__SHIFT 0x0000001c
+
+// VGT_DEBUG_REG7
+#define VGT_DEBUG_REG7__di_index_counter_q__SHIFT 0x00000000
+#define VGT_DEBUG_REG7__shift_amount_no_extract__SHIFT 0x00000010
+#define VGT_DEBUG_REG7__shift_amount_extract__SHIFT 0x00000014
+#define VGT_DEBUG_REG7__di_prim_type_q__SHIFT 0x00000018
+#define VGT_DEBUG_REG7__current_source_sel__SHIFT 0x0000001e
+
+// VGT_DEBUG_REG8
+#define VGT_DEBUG_REG8__current_source_sel__SHIFT 0x00000000
+#define VGT_DEBUG_REG8__left_word_indx_q__SHIFT 0x00000002
+#define VGT_DEBUG_REG8__input_data_cnt__SHIFT 0x00000007
+#define VGT_DEBUG_REG8__input_data_lsw__SHIFT 0x0000000c
+#define VGT_DEBUG_REG8__input_data_msw__SHIFT 0x00000011
+#define VGT_DEBUG_REG8__next_small_stride_shift_limit_q__SHIFT 0x00000016
+#define VGT_DEBUG_REG8__current_small_stride_shift_limit_q__SHIFT 0x0000001b
+
+// VGT_DEBUG_REG9
+#define VGT_DEBUG_REG9__next_stride_q__SHIFT 0x00000000
+#define VGT_DEBUG_REG9__next_stride_d__SHIFT 0x00000005
+#define VGT_DEBUG_REG9__current_shift_q__SHIFT 0x0000000a
+#define VGT_DEBUG_REG9__current_shift_d__SHIFT 0x0000000f
+#define VGT_DEBUG_REG9__current_stride_q__SHIFT 0x00000014
+#define VGT_DEBUG_REG9__current_stride_d__SHIFT 0x00000019
+#define VGT_DEBUG_REG9__grp_trigger__SHIFT 0x0000001e
+
+// VGT_DEBUG_REG10
+#define VGT_DEBUG_REG10__temp_derived_di_prim_type_t0__SHIFT 0x00000000
+#define VGT_DEBUG_REG10__temp_derived_di_small_index_t0__SHIFT 0x00000001
+#define VGT_DEBUG_REG10__temp_derived_di_cull_enable_t0__SHIFT 0x00000002
+#define VGT_DEBUG_REG10__temp_derived_di_pre_fetch_cull_enable_t0__SHIFT 0x00000003
+#define VGT_DEBUG_REG10__di_state_sel_q__SHIFT 0x00000004
+#define VGT_DEBUG_REG10__last_decr_of_packet__SHIFT 0x00000005
+#define VGT_DEBUG_REG10__bin_valid__SHIFT 0x00000006
+#define VGT_DEBUG_REG10__read_block__SHIFT 0x00000007
+#define VGT_DEBUG_REG10__grp_bgrp_last_bit_read__SHIFT 0x00000008
+#define VGT_DEBUG_REG10__last_bit_enable_q__SHIFT 0x00000009
+#define VGT_DEBUG_REG10__last_bit_end_di_q__SHIFT 0x0000000a
+#define VGT_DEBUG_REG10__selected_data__SHIFT 0x0000000b
+#define VGT_DEBUG_REG10__mask_input_data__SHIFT 0x00000013
+#define VGT_DEBUG_REG10__gap_q__SHIFT 0x0000001b
+#define VGT_DEBUG_REG10__temp_mini_reset_z__SHIFT 0x0000001c
+#define VGT_DEBUG_REG10__temp_mini_reset_y__SHIFT 0x0000001d
+#define VGT_DEBUG_REG10__temp_mini_reset_x__SHIFT 0x0000001e
+#define VGT_DEBUG_REG10__grp_trigger__SHIFT 0x0000001f
+
+// VGT_DEBUG_REG12
+#define VGT_DEBUG_REG12__shifter_byte_count_q__SHIFT 0x00000000
+#define VGT_DEBUG_REG12__right_word_indx_q__SHIFT 0x00000005
+#define VGT_DEBUG_REG12__input_data_valid__SHIFT 0x0000000a
+#define VGT_DEBUG_REG12__input_data_xfer__SHIFT 0x0000000b
+#define VGT_DEBUG_REG12__next_shift_is_vect_1_q__SHIFT 0x0000000c
+#define VGT_DEBUG_REG12__next_shift_is_vect_1_d__SHIFT 0x0000000d
+#define VGT_DEBUG_REG12__next_shift_is_vect_1_pre_d__SHIFT 0x0000000e
+#define VGT_DEBUG_REG12__space_avail_from_shift__SHIFT 0x0000000f
+#define VGT_DEBUG_REG12__shifter_first_load__SHIFT 0x00000010
+#define VGT_DEBUG_REG12__di_state_sel_q__SHIFT 0x00000011
+#define VGT_DEBUG_REG12__shifter_waiting_for_first_load_q__SHIFT 0x00000012
+#define VGT_DEBUG_REG12__di_first_group_flag_q__SHIFT 0x00000013
+#define VGT_DEBUG_REG12__di_event_flag_q__SHIFT 0x00000014
+#define VGT_DEBUG_REG12__read_draw_initiator__SHIFT 0x00000015
+#define VGT_DEBUG_REG12__loading_di_requires_shifter__SHIFT 0x00000016
+#define VGT_DEBUG_REG12__last_shift_of_packet__SHIFT 0x00000017
+#define VGT_DEBUG_REG12__last_decr_of_packet__SHIFT 0x00000018
+#define VGT_DEBUG_REG12__extract_vector__SHIFT 0x00000019
+#define VGT_DEBUG_REG12__shift_vect_rtr__SHIFT 0x0000001a
+#define VGT_DEBUG_REG12__destination_rtr__SHIFT 0x0000001b
+#define VGT_DEBUG_REG12__bgrp_trigger__SHIFT 0x0000001c
+
+// VGT_DEBUG_REG13
+#define VGT_DEBUG_REG13__di_index_counter_q__SHIFT 0x00000000
+#define VGT_DEBUG_REG13__shift_amount_no_extract__SHIFT 0x00000010
+#define VGT_DEBUG_REG13__shift_amount_extract__SHIFT 0x00000014
+#define VGT_DEBUG_REG13__di_prim_type_q__SHIFT 0x00000018
+#define VGT_DEBUG_REG13__current_source_sel__SHIFT 0x0000001e
+
+// VGT_DEBUG_REG14
+#define VGT_DEBUG_REG14__current_source_sel__SHIFT 0x00000000
+#define VGT_DEBUG_REG14__left_word_indx_q__SHIFT 0x00000002
+#define VGT_DEBUG_REG14__input_data_cnt__SHIFT 0x00000007
+#define VGT_DEBUG_REG14__input_data_lsw__SHIFT 0x0000000c
+#define VGT_DEBUG_REG14__input_data_msw__SHIFT 0x00000011
+#define VGT_DEBUG_REG14__next_small_stride_shift_limit_q__SHIFT 0x00000016
+#define VGT_DEBUG_REG14__current_small_stride_shift_limit_q__SHIFT 0x0000001b
+
+// VGT_DEBUG_REG15
+#define VGT_DEBUG_REG15__next_stride_q__SHIFT 0x00000000
+#define VGT_DEBUG_REG15__next_stride_d__SHIFT 0x00000005
+#define VGT_DEBUG_REG15__current_shift_q__SHIFT 0x0000000a
+#define VGT_DEBUG_REG15__current_shift_d__SHIFT 0x0000000f
+#define VGT_DEBUG_REG15__current_stride_q__SHIFT 0x00000014
+#define VGT_DEBUG_REG15__current_stride_d__SHIFT 0x00000019
+#define VGT_DEBUG_REG15__bgrp_trigger__SHIFT 0x0000001e
+
+// VGT_DEBUG_REG16
+#define VGT_DEBUG_REG16__bgrp_cull_fetch_fifo_full__SHIFT 0x00000000
+#define VGT_DEBUG_REG16__bgrp_cull_fetch_fifo_empty__SHIFT 0x00000001
+#define VGT_DEBUG_REG16__dma_bgrp_cull_fetch_read__SHIFT 0x00000002
+#define VGT_DEBUG_REG16__bgrp_cull_fetch_fifo_we__SHIFT 0x00000003
+#define VGT_DEBUG_REG16__bgrp_byte_mask_fifo_full__SHIFT 0x00000004
+#define VGT_DEBUG_REG16__bgrp_byte_mask_fifo_empty__SHIFT 0x00000005
+#define VGT_DEBUG_REG16__bgrp_byte_mask_fifo_re_q__SHIFT 0x00000006
+#define VGT_DEBUG_REG16__bgrp_byte_mask_fifo_we__SHIFT 0x00000007
+#define VGT_DEBUG_REG16__bgrp_dma_mask_kill__SHIFT 0x00000008
+#define VGT_DEBUG_REG16__bgrp_grp_bin_valid__SHIFT 0x00000009
+#define VGT_DEBUG_REG16__rst_last_bit__SHIFT 0x0000000a
+#define VGT_DEBUG_REG16__current_state_q__SHIFT 0x0000000b
+#define VGT_DEBUG_REG16__old_state_q__SHIFT 0x0000000c
+#define VGT_DEBUG_REG16__old_state_en__SHIFT 0x0000000d
+#define VGT_DEBUG_REG16__prev_last_bit_q__SHIFT 0x0000000e
+#define VGT_DEBUG_REG16__dbl_last_bit_q__SHIFT 0x0000000f
+#define VGT_DEBUG_REG16__last_bit_block_q__SHIFT 0x00000010
+#define VGT_DEBUG_REG16__ast_bit_block2_q__SHIFT 0x00000011
+#define VGT_DEBUG_REG16__load_empty_reg__SHIFT 0x00000012
+#define VGT_DEBUG_REG16__bgrp_grp_byte_mask_rdata__SHIFT 0x00000013
+#define VGT_DEBUG_REG16__dma_bgrp_dma_data_fifo_rptr__SHIFT 0x0000001b
+#define VGT_DEBUG_REG16__top_di_pre_fetch_cull_enable__SHIFT 0x0000001d
+#define VGT_DEBUG_REG16__top_di_grp_cull_enable_q__SHIFT 0x0000001e
+#define VGT_DEBUG_REG16__bgrp_trigger__SHIFT 0x0000001f
+
+// VGT_DEBUG_REG17
+#define VGT_DEBUG_REG17__save_read_q__SHIFT 0x00000000
+#define VGT_DEBUG_REG17__extend_read_q__SHIFT 0x00000001
+#define VGT_DEBUG_REG17__grp_indx_size__SHIFT 0x00000002
+#define VGT_DEBUG_REG17__cull_prim_true__SHIFT 0x00000004
+#define VGT_DEBUG_REG17__reset_bit2_q__SHIFT 0x00000005
+#define VGT_DEBUG_REG17__reset_bit1_q__SHIFT 0x00000006
+#define VGT_DEBUG_REG17__first_reg_first_q__SHIFT 0x00000007
+#define VGT_DEBUG_REG17__check_second_reg__SHIFT 0x00000008
+#define VGT_DEBUG_REG17__check_first_reg__SHIFT 0x00000009
+#define VGT_DEBUG_REG17__bgrp_cull_fetch_fifo_wdata__SHIFT 0x0000000a
+#define VGT_DEBUG_REG17__save_cull_fetch_data2_q__SHIFT 0x0000000b
+#define VGT_DEBUG_REG17__save_cull_fetch_data1_q__SHIFT 0x0000000c
+#define VGT_DEBUG_REG17__save_byte_mask_data2_q__SHIFT 0x0000000d
+#define VGT_DEBUG_REG17__save_byte_mask_data1_q__SHIFT 0x0000000e
+#define VGT_DEBUG_REG17__to_second_reg_q__SHIFT 0x0000000f
+#define VGT_DEBUG_REG17__roll_over_msk_q__SHIFT 0x00000010
+#define VGT_DEBUG_REG17__max_msk_ptr_q__SHIFT 0x00000011
+#define VGT_DEBUG_REG17__min_msk_ptr_q__SHIFT 0x00000018
+#define VGT_DEBUG_REG17__bgrp_trigger__SHIFT 0x0000001f
+
+// VGT_DEBUG_REG18
+#define VGT_DEBUG_REG18__dma_data_fifo_mem_raddr__SHIFT 0x00000000
+#define VGT_DEBUG_REG18__dma_data_fifo_mem_waddr__SHIFT 0x00000006
+#define VGT_DEBUG_REG18__dma_bgrp_byte_mask_fifo_re__SHIFT 0x0000000c
+#define VGT_DEBUG_REG18__dma_bgrp_dma_data_fifo_rptr__SHIFT 0x0000000d
+#define VGT_DEBUG_REG18__dma_mem_full__SHIFT 0x0000000f
+#define VGT_DEBUG_REG18__dma_ram_re__SHIFT 0x00000010
+#define VGT_DEBUG_REG18__dma_ram_we__SHIFT 0x00000011
+#define VGT_DEBUG_REG18__dma_mem_empty__SHIFT 0x00000012
+#define VGT_DEBUG_REG18__dma_data_fifo_mem_re__SHIFT 0x00000013
+#define VGT_DEBUG_REG18__dma_data_fifo_mem_we__SHIFT 0x00000014
+#define VGT_DEBUG_REG18__bin_mem_full__SHIFT 0x00000015
+#define VGT_DEBUG_REG18__bin_ram_we__SHIFT 0x00000016
+#define VGT_DEBUG_REG18__bin_ram_re__SHIFT 0x00000017
+#define VGT_DEBUG_REG18__bin_mem_empty__SHIFT 0x00000018
+#define VGT_DEBUG_REG18__start_bin_req__SHIFT 0x00000019
+#define VGT_DEBUG_REG18__fetch_cull_not_used__SHIFT 0x0000001a
+#define VGT_DEBUG_REG18__dma_req_xfer__SHIFT 0x0000001b
+#define VGT_DEBUG_REG18__have_valid_bin_req__SHIFT 0x0000001c
+#define VGT_DEBUG_REG18__have_valid_dma_req__SHIFT 0x0000001d
+#define VGT_DEBUG_REG18__bgrp_dma_di_grp_cull_enable__SHIFT 0x0000001e
+#define VGT_DEBUG_REG18__bgrp_dma_di_pre_fetch_cull_enable__SHIFT 0x0000001f
+
+// VGT_DEBUG_REG20
+#define VGT_DEBUG_REG20__prim_side_indx_valid__SHIFT 0x00000000
+#define VGT_DEBUG_REG20__indx_side_fifo_empty__SHIFT 0x00000001
+#define VGT_DEBUG_REG20__indx_side_fifo_re__SHIFT 0x00000002
+#define VGT_DEBUG_REG20__indx_side_fifo_we__SHIFT 0x00000003
+#define VGT_DEBUG_REG20__indx_side_fifo_full__SHIFT 0x00000004
+#define VGT_DEBUG_REG20__prim_buffer_empty__SHIFT 0x00000005
+#define VGT_DEBUG_REG20__prim_buffer_re__SHIFT 0x00000006
+#define VGT_DEBUG_REG20__prim_buffer_we__SHIFT 0x00000007
+#define VGT_DEBUG_REG20__prim_buffer_full__SHIFT 0x00000008
+#define VGT_DEBUG_REG20__indx_buffer_empty__SHIFT 0x00000009
+#define VGT_DEBUG_REG20__indx_buffer_re__SHIFT 0x0000000a
+#define VGT_DEBUG_REG20__indx_buffer_we__SHIFT 0x0000000b
+#define VGT_DEBUG_REG20__indx_buffer_full__SHIFT 0x0000000c
+#define VGT_DEBUG_REG20__hold_prim__SHIFT 0x0000000d
+#define VGT_DEBUG_REG20__sent_cnt__SHIFT 0x0000000e
+#define VGT_DEBUG_REG20__start_of_vtx_vector__SHIFT 0x00000012
+#define VGT_DEBUG_REG20__clip_s_pre_hold_prim__SHIFT 0x00000013
+#define VGT_DEBUG_REG20__clip_p_pre_hold_prim__SHIFT 0x00000014
+#define VGT_DEBUG_REG20__buffered_prim_type_event__SHIFT 0x00000015
+#define VGT_DEBUG_REG20__out_trigger__SHIFT 0x0000001a
+
+// VGT_DEBUG_REG21
+#define VGT_DEBUG_REG21__null_terminate_vtx_vector__SHIFT 0x00000000
+#define VGT_DEBUG_REG21__prim_end_of_vtx_vect_flags__SHIFT 0x00000001
+#define VGT_DEBUG_REG21__alloc_counter_q__SHIFT 0x00000004
+#define VGT_DEBUG_REG21__curr_slot_in_vtx_vect_q__SHIFT 0x00000007
+#define VGT_DEBUG_REG21__int_vtx_counter_q__SHIFT 0x0000000a
+#define VGT_DEBUG_REG21__curr_dealloc_distance_q__SHIFT 0x0000000e
+#define VGT_DEBUG_REG21__new_packet_q__SHIFT 0x00000012
+#define VGT_DEBUG_REG21__new_allocate_q__SHIFT 0x00000013
+#define VGT_DEBUG_REG21__num_new_unique_rel_indx__SHIFT 0x00000014
+#define VGT_DEBUG_REG21__inserted_null_prim_q__SHIFT 0x00000016
+#define VGT_DEBUG_REG21__insert_null_prim__SHIFT 0x00000017
+#define VGT_DEBUG_REG21__buffered_prim_eop_mux__SHIFT 0x00000018
+#define VGT_DEBUG_REG21__prim_buffer_empty_mux__SHIFT 0x00000019
+#define VGT_DEBUG_REG21__buffered_thread_size__SHIFT 0x0000001a
+#define VGT_DEBUG_REG21__out_trigger__SHIFT 0x0000001f
+
+// VGT_CRC_SQ_DATA
+#define VGT_CRC_SQ_DATA__CRC__SHIFT 0x00000000
+
+// VGT_CRC_SQ_CTRL
+#define VGT_CRC_SQ_CTRL__CRC__SHIFT 0x00000000
+
+// VGT_PERFCOUNTER0_SELECT
+#define VGT_PERFCOUNTER0_SELECT__PERF_SEL__SHIFT 0x00000000
+
+// VGT_PERFCOUNTER1_SELECT
+#define VGT_PERFCOUNTER1_SELECT__PERF_SEL__SHIFT 0x00000000
+
+// VGT_PERFCOUNTER2_SELECT
+#define VGT_PERFCOUNTER2_SELECT__PERF_SEL__SHIFT 0x00000000
+
+// VGT_PERFCOUNTER3_SELECT
+#define VGT_PERFCOUNTER3_SELECT__PERF_SEL__SHIFT 0x00000000
+
+// VGT_PERFCOUNTER0_LOW
+#define VGT_PERFCOUNTER0_LOW__PERF_COUNT__SHIFT 0x00000000
+
+// VGT_PERFCOUNTER1_LOW
+#define VGT_PERFCOUNTER1_LOW__PERF_COUNT__SHIFT 0x00000000
+
+// VGT_PERFCOUNTER2_LOW
+#define VGT_PERFCOUNTER2_LOW__PERF_COUNT__SHIFT 0x00000000
+
+// VGT_PERFCOUNTER3_LOW
+#define VGT_PERFCOUNTER3_LOW__PERF_COUNT__SHIFT 0x00000000
+
+// VGT_PERFCOUNTER0_HI
+#define VGT_PERFCOUNTER0_HI__PERF_COUNT__SHIFT 0x00000000
+
+// VGT_PERFCOUNTER1_HI
+#define VGT_PERFCOUNTER1_HI__PERF_COUNT__SHIFT 0x00000000
+
+// VGT_PERFCOUNTER2_HI
+#define VGT_PERFCOUNTER2_HI__PERF_COUNT__SHIFT 0x00000000
+
+// VGT_PERFCOUNTER3_HI
+#define VGT_PERFCOUNTER3_HI__PERF_COUNT__SHIFT 0x00000000
+
+// TC_CNTL_STATUS
+#define TC_CNTL_STATUS__L2_INVALIDATE__SHIFT 0x00000000
+#define TC_CNTL_STATUS__TC_L2_HIT_MISS__SHIFT 0x00000012
+#define TC_CNTL_STATUS__TC_BUSY__SHIFT 0x0000001f
+
+// TCR_CHICKEN
+#define TCR_CHICKEN__SPARE__SHIFT 0x00000000
+
+// TCF_CHICKEN
+#define TCF_CHICKEN__SPARE__SHIFT 0x00000000
+
+// TCM_CHICKEN
+#define TCM_CHICKEN__TCO_READ_LATENCY_FIFO_PROG_DEPTH__SHIFT 0x00000000
+#define TCM_CHICKEN__ETC_COLOR_ENDIAN__SHIFT 0x00000008
+#define TCM_CHICKEN__SPARE__SHIFT 0x00000009
+
+// TCR_PERFCOUNTER0_SELECT
+#define TCR_PERFCOUNTER0_SELECT__PERFCOUNTER_SELECT__SHIFT 0x00000000
+
+// TCR_PERFCOUNTER1_SELECT
+#define TCR_PERFCOUNTER1_SELECT__PERFCOUNTER_SELECT__SHIFT 0x00000000
+
+// TCR_PERFCOUNTER0_HI
+#define TCR_PERFCOUNTER0_HI__PERFCOUNTER_HI__SHIFT 0x00000000
+
+// TCR_PERFCOUNTER1_HI
+#define TCR_PERFCOUNTER1_HI__PERFCOUNTER_HI__SHIFT 0x00000000
+
+// TCR_PERFCOUNTER0_LOW
+#define TCR_PERFCOUNTER0_LOW__PERFCOUNTER_LOW__SHIFT 0x00000000
+
+// TCR_PERFCOUNTER1_LOW
+#define TCR_PERFCOUNTER1_LOW__PERFCOUNTER_LOW__SHIFT 0x00000000
+
+// TP_TC_CLKGATE_CNTL
+#define TP_TC_CLKGATE_CNTL__TP_BUSY_EXTEND__SHIFT 0x00000000
+#define TP_TC_CLKGATE_CNTL__TC_BUSY_EXTEND__SHIFT 0x00000003
+
+// TPC_CNTL_STATUS
+#define TPC_CNTL_STATUS__TPC_INPUT_BUSY__SHIFT 0x00000000
+#define TPC_CNTL_STATUS__TPC_TC_FIFO_BUSY__SHIFT 0x00000001
+#define TPC_CNTL_STATUS__TPC_STATE_FIFO_BUSY__SHIFT 0x00000002
+#define TPC_CNTL_STATUS__TPC_FETCH_FIFO_BUSY__SHIFT 0x00000003
+#define TPC_CNTL_STATUS__TPC_WALKER_PIPE_BUSY__SHIFT 0x00000004
+#define TPC_CNTL_STATUS__TPC_WALK_FIFO_BUSY__SHIFT 0x00000005
+#define TPC_CNTL_STATUS__TPC_WALKER_BUSY__SHIFT 0x00000006
+#define TPC_CNTL_STATUS__TPC_ALIGNER_PIPE_BUSY__SHIFT 0x00000008
+#define TPC_CNTL_STATUS__TPC_ALIGN_FIFO_BUSY__SHIFT 0x00000009
+#define TPC_CNTL_STATUS__TPC_ALIGNER_BUSY__SHIFT 0x0000000a
+#define TPC_CNTL_STATUS__TPC_RR_FIFO_BUSY__SHIFT 0x0000000c
+#define TPC_CNTL_STATUS__TPC_BLEND_PIPE_BUSY__SHIFT 0x0000000d
+#define TPC_CNTL_STATUS__TPC_OUT_FIFO_BUSY__SHIFT 0x0000000e
+#define TPC_CNTL_STATUS__TPC_BLEND_BUSY__SHIFT 0x0000000f
+#define TPC_CNTL_STATUS__TF_TW_RTS__SHIFT 0x00000010
+#define TPC_CNTL_STATUS__TF_TW_STATE_RTS__SHIFT 0x00000011
+#define TPC_CNTL_STATUS__TF_TW_RTR__SHIFT 0x00000013
+#define TPC_CNTL_STATUS__TW_TA_RTS__SHIFT 0x00000014
+#define TPC_CNTL_STATUS__TW_TA_TT_RTS__SHIFT 0x00000015
+#define TPC_CNTL_STATUS__TW_TA_LAST_RTS__SHIFT 0x00000016
+#define TPC_CNTL_STATUS__TW_TA_RTR__SHIFT 0x00000017
+#define TPC_CNTL_STATUS__TA_TB_RTS__SHIFT 0x00000018
+#define TPC_CNTL_STATUS__TA_TB_TT_RTS__SHIFT 0x00000019
+#define TPC_CNTL_STATUS__TA_TB_RTR__SHIFT 0x0000001b
+#define TPC_CNTL_STATUS__TA_TF_RTS__SHIFT 0x0000001c
+#define TPC_CNTL_STATUS__TA_TF_TC_FIFO_REN__SHIFT 0x0000001d
+#define TPC_CNTL_STATUS__TP_SQ_DEC__SHIFT 0x0000001e
+#define TPC_CNTL_STATUS__TPC_BUSY__SHIFT 0x0000001f
+
+// TPC_DEBUG0
+#define TPC_DEBUG0__LOD_CNTL__SHIFT 0x00000000
+#define TPC_DEBUG0__IC_CTR__SHIFT 0x00000002
+#define TPC_DEBUG0__WALKER_CNTL__SHIFT 0x00000004
+#define TPC_DEBUG0__ALIGNER_CNTL__SHIFT 0x00000008
+#define TPC_DEBUG0__PREV_TC_STATE_VALID__SHIFT 0x0000000c
+#define TPC_DEBUG0__WALKER_STATE__SHIFT 0x00000010
+#define TPC_DEBUG0__ALIGNER_STATE__SHIFT 0x0000001a
+#define TPC_DEBUG0__REG_CLK_EN__SHIFT 0x0000001d
+#define TPC_DEBUG0__TPC_CLK_EN__SHIFT 0x0000001e
+#define TPC_DEBUG0__SQ_TP_WAKEUP__SHIFT 0x0000001f
+
+// TPC_DEBUG1
+#define TPC_DEBUG1__UNUSED__SHIFT 0x00000000
+
+// TPC_CHICKEN
+#define TPC_CHICKEN__BLEND_PRECISION__SHIFT 0x00000000
+#define TPC_CHICKEN__SPARE__SHIFT 0x00000001
+
+// TP0_CNTL_STATUS
+#define TP0_CNTL_STATUS__TP_INPUT_BUSY__SHIFT 0x00000000
+#define TP0_CNTL_STATUS__TP_LOD_BUSY__SHIFT 0x00000001
+#define TP0_CNTL_STATUS__TP_LOD_FIFO_BUSY__SHIFT 0x00000002
+#define TP0_CNTL_STATUS__TP_ADDR_BUSY__SHIFT 0x00000003
+#define TP0_CNTL_STATUS__TP_ALIGN_FIFO_BUSY__SHIFT 0x00000004
+#define TP0_CNTL_STATUS__TP_ALIGNER_BUSY__SHIFT 0x00000005
+#define TP0_CNTL_STATUS__TP_TC_FIFO_BUSY__SHIFT 0x00000006
+#define TP0_CNTL_STATUS__TP_RR_FIFO_BUSY__SHIFT 0x00000007
+#define TP0_CNTL_STATUS__TP_FETCH_BUSY__SHIFT 0x00000008
+#define TP0_CNTL_STATUS__TP_CH_BLEND_BUSY__SHIFT 0x00000009
+#define TP0_CNTL_STATUS__TP_TT_BUSY__SHIFT 0x0000000a
+#define TP0_CNTL_STATUS__TP_HICOLOR_BUSY__SHIFT 0x0000000b
+#define TP0_CNTL_STATUS__TP_BLEND_BUSY__SHIFT 0x0000000c
+#define TP0_CNTL_STATUS__TP_OUT_FIFO_BUSY__SHIFT 0x0000000d
+#define TP0_CNTL_STATUS__TP_OUTPUT_BUSY__SHIFT 0x0000000e
+#define TP0_CNTL_STATUS__IN_LC_RTS__SHIFT 0x00000010
+#define TP0_CNTL_STATUS__LC_LA_RTS__SHIFT 0x00000011
+#define TP0_CNTL_STATUS__LA_FL_RTS__SHIFT 0x00000012
+#define TP0_CNTL_STATUS__FL_TA_RTS__SHIFT 0x00000013
+#define TP0_CNTL_STATUS__TA_FA_RTS__SHIFT 0x00000014
+#define TP0_CNTL_STATUS__TA_FA_TT_RTS__SHIFT 0x00000015
+#define TP0_CNTL_STATUS__FA_AL_RTS__SHIFT 0x00000016
+#define TP0_CNTL_STATUS__FA_AL_TT_RTS__SHIFT 0x00000017
+#define TP0_CNTL_STATUS__AL_TF_RTS__SHIFT 0x00000018
+#define TP0_CNTL_STATUS__AL_TF_TT_RTS__SHIFT 0x00000019
+#define TP0_CNTL_STATUS__TF_TB_RTS__SHIFT 0x0000001a
+#define TP0_CNTL_STATUS__TF_TB_TT_RTS__SHIFT 0x0000001b
+#define TP0_CNTL_STATUS__TB_TT_RTS__SHIFT 0x0000001c
+#define TP0_CNTL_STATUS__TB_TT_TT_RESET__SHIFT 0x0000001d
+#define TP0_CNTL_STATUS__TB_TO_RTS__SHIFT 0x0000001e
+#define TP0_CNTL_STATUS__TP_BUSY__SHIFT 0x0000001f
+
+// TP0_DEBUG
+#define TP0_DEBUG__Q_LOD_CNTL__SHIFT 0x00000000
+#define TP0_DEBUG__Q_SQ_TP_WAKEUP__SHIFT 0x00000003
+#define TP0_DEBUG__FL_TA_ADDRESSER_CNTL__SHIFT 0x00000004
+#define TP0_DEBUG__REG_CLK_EN__SHIFT 0x00000015
+#define TP0_DEBUG__PERF_CLK_EN__SHIFT 0x00000016
+#define TP0_DEBUG__TP_CLK_EN__SHIFT 0x00000017
+#define TP0_DEBUG__Q_WALKER_CNTL__SHIFT 0x00000018
+#define TP0_DEBUG__Q_ALIGNER_CNTL__SHIFT 0x0000001c
+
+// TP0_CHICKEN
+#define TP0_CHICKEN__TT_MODE__SHIFT 0x00000000
+#define TP0_CHICKEN__VFETCH_ADDRESS_MODE__SHIFT 0x00000001
+#define TP0_CHICKEN__SPARE__SHIFT 0x00000002
+
+// TP0_PERFCOUNTER0_SELECT
+#define TP0_PERFCOUNTER0_SELECT__PERFCOUNTER_SELECT__SHIFT 0x00000000
+
+// TP0_PERFCOUNTER0_HI
+#define TP0_PERFCOUNTER0_HI__PERFCOUNTER_HI__SHIFT 0x00000000
+
+// TP0_PERFCOUNTER0_LOW
+#define TP0_PERFCOUNTER0_LOW__PERFCOUNTER_LOW__SHIFT 0x00000000
+
+// TP0_PERFCOUNTER1_SELECT
+#define TP0_PERFCOUNTER1_SELECT__PERFCOUNTER_SELECT__SHIFT 0x00000000
+
+// TP0_PERFCOUNTER1_HI
+#define TP0_PERFCOUNTER1_HI__PERFCOUNTER_HI__SHIFT 0x00000000
+
+// TP0_PERFCOUNTER1_LOW
+#define TP0_PERFCOUNTER1_LOW__PERFCOUNTER_LOW__SHIFT 0x00000000
+
+// TCM_PERFCOUNTER0_SELECT
+#define TCM_PERFCOUNTER0_SELECT__PERFCOUNTER_SELECT__SHIFT 0x00000000
+
+// TCM_PERFCOUNTER1_SELECT
+#define TCM_PERFCOUNTER1_SELECT__PERFCOUNTER_SELECT__SHIFT 0x00000000
+
+// TCM_PERFCOUNTER0_HI
+#define TCM_PERFCOUNTER0_HI__PERFCOUNTER_HI__SHIFT 0x00000000
+
+// TCM_PERFCOUNTER1_HI
+#define TCM_PERFCOUNTER1_HI__PERFCOUNTER_HI__SHIFT 0x00000000
+
+// TCM_PERFCOUNTER0_LOW
+#define TCM_PERFCOUNTER0_LOW__PERFCOUNTER_LOW__SHIFT 0x00000000
+
+// TCM_PERFCOUNTER1_LOW
+#define TCM_PERFCOUNTER1_LOW__PERFCOUNTER_LOW__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER0_SELECT
+#define TCF_PERFCOUNTER0_SELECT__PERFCOUNTER_SELECT__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER1_SELECT
+#define TCF_PERFCOUNTER1_SELECT__PERFCOUNTER_SELECT__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER2_SELECT
+#define TCF_PERFCOUNTER2_SELECT__PERFCOUNTER_SELECT__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER3_SELECT
+#define TCF_PERFCOUNTER3_SELECT__PERFCOUNTER_SELECT__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER4_SELECT
+#define TCF_PERFCOUNTER4_SELECT__PERFCOUNTER_SELECT__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER5_SELECT
+#define TCF_PERFCOUNTER5_SELECT__PERFCOUNTER_SELECT__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER6_SELECT
+#define TCF_PERFCOUNTER6_SELECT__PERFCOUNTER_SELECT__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER7_SELECT
+#define TCF_PERFCOUNTER7_SELECT__PERFCOUNTER_SELECT__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER8_SELECT
+#define TCF_PERFCOUNTER8_SELECT__PERFCOUNTER_SELECT__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER9_SELECT
+#define TCF_PERFCOUNTER9_SELECT__PERFCOUNTER_SELECT__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER10_SELECT
+#define TCF_PERFCOUNTER10_SELECT__PERFCOUNTER_SELECT__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER11_SELECT
+#define TCF_PERFCOUNTER11_SELECT__PERFCOUNTER_SELECT__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER0_HI
+#define TCF_PERFCOUNTER0_HI__PERFCOUNTER_HI__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER1_HI
+#define TCF_PERFCOUNTER1_HI__PERFCOUNTER_HI__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER2_HI
+#define TCF_PERFCOUNTER2_HI__PERFCOUNTER_HI__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER3_HI
+#define TCF_PERFCOUNTER3_HI__PERFCOUNTER_HI__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER4_HI
+#define TCF_PERFCOUNTER4_HI__PERFCOUNTER_HI__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER5_HI
+#define TCF_PERFCOUNTER5_HI__PERFCOUNTER_HI__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER6_HI
+#define TCF_PERFCOUNTER6_HI__PERFCOUNTER_HI__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER7_HI
+#define TCF_PERFCOUNTER7_HI__PERFCOUNTER_HI__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER8_HI
+#define TCF_PERFCOUNTER8_HI__PERFCOUNTER_HI__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER9_HI
+#define TCF_PERFCOUNTER9_HI__PERFCOUNTER_HI__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER10_HI
+#define TCF_PERFCOUNTER10_HI__PERFCOUNTER_HI__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER11_HI
+#define TCF_PERFCOUNTER11_HI__PERFCOUNTER_HI__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER0_LOW
+#define TCF_PERFCOUNTER0_LOW__PERFCOUNTER_LOW__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER1_LOW
+#define TCF_PERFCOUNTER1_LOW__PERFCOUNTER_LOW__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER2_LOW
+#define TCF_PERFCOUNTER2_LOW__PERFCOUNTER_LOW__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER3_LOW
+#define TCF_PERFCOUNTER3_LOW__PERFCOUNTER_LOW__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER4_LOW
+#define TCF_PERFCOUNTER4_LOW__PERFCOUNTER_LOW__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER5_LOW
+#define TCF_PERFCOUNTER5_LOW__PERFCOUNTER_LOW__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER6_LOW
+#define TCF_PERFCOUNTER6_LOW__PERFCOUNTER_LOW__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER7_LOW
+#define TCF_PERFCOUNTER7_LOW__PERFCOUNTER_LOW__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER8_LOW
+#define TCF_PERFCOUNTER8_LOW__PERFCOUNTER_LOW__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER9_LOW
+#define TCF_PERFCOUNTER9_LOW__PERFCOUNTER_LOW__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER10_LOW
+#define TCF_PERFCOUNTER10_LOW__PERFCOUNTER_LOW__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER11_LOW
+#define TCF_PERFCOUNTER11_LOW__PERFCOUNTER_LOW__SHIFT 0x00000000
+
+// TCF_DEBUG
+#define TCF_DEBUG__not_MH_TC_rtr__SHIFT 0x00000006
+#define TCF_DEBUG__TC_MH_send__SHIFT 0x00000007
+#define TCF_DEBUG__not_FG0_rtr__SHIFT 0x00000008
+#define TCF_DEBUG__not_TCB_TCO_rtr__SHIFT 0x0000000c
+#define TCF_DEBUG__TCB_ff_stall__SHIFT 0x0000000d
+#define TCF_DEBUG__TCB_miss_stall__SHIFT 0x0000000e
+#define TCF_DEBUG__TCA_TCB_stall__SHIFT 0x0000000f
+#define TCF_DEBUG__PF0_stall__SHIFT 0x00000010
+#define TCF_DEBUG__TP0_full__SHIFT 0x00000014
+#define TCF_DEBUG__TPC_full__SHIFT 0x00000018
+#define TCF_DEBUG__not_TPC_rtr__SHIFT 0x00000019
+#define TCF_DEBUG__tca_state_rts__SHIFT 0x0000001a
+#define TCF_DEBUG__tca_rts__SHIFT 0x0000001b
+
+// TCA_FIFO_DEBUG
+#define TCA_FIFO_DEBUG__tp0_full__SHIFT 0x00000000
+#define TCA_FIFO_DEBUG__tpc_full__SHIFT 0x00000004
+#define TCA_FIFO_DEBUG__load_tpc_fifo__SHIFT 0x00000005
+#define TCA_FIFO_DEBUG__load_tp_fifos__SHIFT 0x00000006
+#define TCA_FIFO_DEBUG__FW_full__SHIFT 0x00000007
+#define TCA_FIFO_DEBUG__not_FW_rtr0__SHIFT 0x00000008
+#define TCA_FIFO_DEBUG__FW_rts0__SHIFT 0x0000000c
+#define TCA_FIFO_DEBUG__not_FW_tpc_rtr__SHIFT 0x00000010
+#define TCA_FIFO_DEBUG__FW_tpc_rts__SHIFT 0x00000011
+
+// TCA_PROBE_DEBUG
+#define TCA_PROBE_DEBUG__ProbeFilter_stall__SHIFT 0x00000000
+
+// TCA_TPC_DEBUG
+#define TCA_TPC_DEBUG__captue_state_rts__SHIFT 0x0000000c
+#define TCA_TPC_DEBUG__capture_tca_rts__SHIFT 0x0000000d
+
+// TCB_CORE_DEBUG
+#define TCB_CORE_DEBUG__access512__SHIFT 0x00000000
+#define TCB_CORE_DEBUG__tiled__SHIFT 0x00000001
+#define TCB_CORE_DEBUG__opcode__SHIFT 0x00000004
+#define TCB_CORE_DEBUG__format__SHIFT 0x00000008
+#define TCB_CORE_DEBUG__sector_format__SHIFT 0x00000010
+#define TCB_CORE_DEBUG__sector_format512__SHIFT 0x00000018
+
+// TCB_TAG0_DEBUG
+#define TCB_TAG0_DEBUG__mem_read_cycle__SHIFT 0x00000000
+#define TCB_TAG0_DEBUG__tag_access_cycle__SHIFT 0x0000000c
+#define TCB_TAG0_DEBUG__miss_stall__SHIFT 0x00000017
+#define TCB_TAG0_DEBUG__num_feee_lines__SHIFT 0x00000018
+#define TCB_TAG0_DEBUG__max_misses__SHIFT 0x0000001d
+
+// TCB_TAG1_DEBUG
+#define TCB_TAG1_DEBUG__mem_read_cycle__SHIFT 0x00000000
+#define TCB_TAG1_DEBUG__tag_access_cycle__SHIFT 0x0000000c
+#define TCB_TAG1_DEBUG__miss_stall__SHIFT 0x00000017
+#define TCB_TAG1_DEBUG__num_feee_lines__SHIFT 0x00000018
+#define TCB_TAG1_DEBUG__max_misses__SHIFT 0x0000001d
+
+// TCB_TAG2_DEBUG
+#define TCB_TAG2_DEBUG__mem_read_cycle__SHIFT 0x00000000
+#define TCB_TAG2_DEBUG__tag_access_cycle__SHIFT 0x0000000c
+#define TCB_TAG2_DEBUG__miss_stall__SHIFT 0x00000017
+#define TCB_TAG2_DEBUG__num_feee_lines__SHIFT 0x00000018
+#define TCB_TAG2_DEBUG__max_misses__SHIFT 0x0000001d
+
+// TCB_TAG3_DEBUG
+#define TCB_TAG3_DEBUG__mem_read_cycle__SHIFT 0x00000000
+#define TCB_TAG3_DEBUG__tag_access_cycle__SHIFT 0x0000000c
+#define TCB_TAG3_DEBUG__miss_stall__SHIFT 0x00000017
+#define TCB_TAG3_DEBUG__num_feee_lines__SHIFT 0x00000018
+#define TCB_TAG3_DEBUG__max_misses__SHIFT 0x0000001d
+
+// TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__left_done__SHIFT 0x00000000
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__fg0_sends_left__SHIFT 0x00000002
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__one_sector_to_go_left_q__SHIFT 0x00000004
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__no_sectors_to_go__SHIFT 0x00000005
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__update_left__SHIFT 0x00000006
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__sector_mask_left_count_q__SHIFT 0x00000007
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__sector_mask_left_q__SHIFT 0x0000000c
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__valid_left_q__SHIFT 0x0000001c
+
+// TCB_FETCH_GEN_WALKER_DEBUG
+#define TCB_FETCH_GEN_WALKER_DEBUG__quad_sel_left__SHIFT 0x00000004
+#define TCB_FETCH_GEN_WALKER_DEBUG__set_sel_left__SHIFT 0x00000006
+#define TCB_FETCH_GEN_WALKER_DEBUG__right_eq_left__SHIFT 0x0000000b
+#define TCB_FETCH_GEN_WALKER_DEBUG__ff_fg_type512__SHIFT 0x0000000c
+#define TCB_FETCH_GEN_WALKER_DEBUG__busy__SHIFT 0x0000000f
+#define TCB_FETCH_GEN_WALKER_DEBUG__setquads_to_send__SHIFT 0x00000010
+
+// TCB_FETCH_GEN_PIPE0_DEBUG
+#define TCB_FETCH_GEN_PIPE0_DEBUG__tc0_arb_rts__SHIFT 0x00000000
+#define TCB_FETCH_GEN_PIPE0_DEBUG__ga_out_rts__SHIFT 0x00000002
+#define TCB_FETCH_GEN_PIPE0_DEBUG__tc_arb_format__SHIFT 0x00000004
+#define TCB_FETCH_GEN_PIPE0_DEBUG__tc_arb_fmsopcode__SHIFT 0x00000010
+#define TCB_FETCH_GEN_PIPE0_DEBUG__tc_arb_request_type__SHIFT 0x00000015
+#define TCB_FETCH_GEN_PIPE0_DEBUG__busy__SHIFT 0x00000017
+#define TCB_FETCH_GEN_PIPE0_DEBUG__fgo_busy__SHIFT 0x00000018
+#define TCB_FETCH_GEN_PIPE0_DEBUG__ga_busy__SHIFT 0x00000019
+#define TCB_FETCH_GEN_PIPE0_DEBUG__mc_sel_q__SHIFT 0x0000001a
+#define TCB_FETCH_GEN_PIPE0_DEBUG__valid_q__SHIFT 0x0000001c
+#define TCB_FETCH_GEN_PIPE0_DEBUG__arb_RTR__SHIFT 0x0000001e
+
+// TCD_INPUT0_DEBUG
+#define TCD_INPUT0_DEBUG__empty__SHIFT 0x00000010
+#define TCD_INPUT0_DEBUG__full__SHIFT 0x00000011
+#define TCD_INPUT0_DEBUG__valid_q1__SHIFT 0x00000014
+#define TCD_INPUT0_DEBUG__cnt_q1__SHIFT 0x00000015
+#define TCD_INPUT0_DEBUG__last_send_q1__SHIFT 0x00000017
+#define TCD_INPUT0_DEBUG__ip_send__SHIFT 0x00000018
+#define TCD_INPUT0_DEBUG__ipbuf_dxt_send__SHIFT 0x00000019
+#define TCD_INPUT0_DEBUG__ipbuf_busy__SHIFT 0x0000001a
+
+// TCD_DEGAMMA_DEBUG
+#define TCD_DEGAMMA_DEBUG__dgmm_ftfconv_dgmmen__SHIFT 0x00000000
+#define TCD_DEGAMMA_DEBUG__dgmm_ctrl_dgmm8__SHIFT 0x00000002
+#define TCD_DEGAMMA_DEBUG__dgmm_ctrl_last_send__SHIFT 0x00000003
+#define TCD_DEGAMMA_DEBUG__dgmm_ctrl_send__SHIFT 0x00000004
+#define TCD_DEGAMMA_DEBUG__dgmm_stall__SHIFT 0x00000005
+#define TCD_DEGAMMA_DEBUG__dgmm_pstate__SHIFT 0x00000006
+
+// TCD_DXTMUX_SCTARB_DEBUG
+#define TCD_DXTMUX_SCTARB_DEBUG__pstate__SHIFT 0x00000009
+#define TCD_DXTMUX_SCTARB_DEBUG__sctrmx_rtr__SHIFT 0x0000000a
+#define TCD_DXTMUX_SCTARB_DEBUG__dxtc_rtr__SHIFT 0x0000000b
+#define TCD_DXTMUX_SCTARB_DEBUG__sctrarb_multcyl_send__SHIFT 0x0000000f
+#define TCD_DXTMUX_SCTARB_DEBUG__sctrmx0_sctrarb_rts__SHIFT 0x00000010
+#define TCD_DXTMUX_SCTARB_DEBUG__dxtc_sctrarb_send__SHIFT 0x00000014
+#define TCD_DXTMUX_SCTARB_DEBUG__dxtc_dgmmpd_last_send__SHIFT 0x0000001b
+#define TCD_DXTMUX_SCTARB_DEBUG__dxtc_dgmmpd_send__SHIFT 0x0000001c
+#define TCD_DXTMUX_SCTARB_DEBUG__dcmp_mux_send__SHIFT 0x0000001d
+
+// TCD_DXTC_ARB_DEBUG
+#define TCD_DXTC_ARB_DEBUG__n0_stall__SHIFT 0x00000004
+#define TCD_DXTC_ARB_DEBUG__pstate__SHIFT 0x00000005
+#define TCD_DXTC_ARB_DEBUG__arb_dcmp01_last_send__SHIFT 0x00000006
+#define TCD_DXTC_ARB_DEBUG__arb_dcmp01_cnt__SHIFT 0x00000007
+#define TCD_DXTC_ARB_DEBUG__arb_dcmp01_sector__SHIFT 0x00000009
+#define TCD_DXTC_ARB_DEBUG__arb_dcmp01_cacheline__SHIFT 0x0000000c
+#define TCD_DXTC_ARB_DEBUG__arb_dcmp01_format__SHIFT 0x00000012
+#define TCD_DXTC_ARB_DEBUG__arb_dcmp01_send__SHIFT 0x0000001e
+#define TCD_DXTC_ARB_DEBUG__n0_dxt2_4_types__SHIFT 0x0000001f
+
+// TCD_STALLS_DEBUG
+#define TCD_STALLS_DEBUG__not_multcyl_sctrarb_rtr__SHIFT 0x0000000a
+#define TCD_STALLS_DEBUG__not_sctrmx0_sctrarb_rtr__SHIFT 0x0000000b
+#define TCD_STALLS_DEBUG__not_dcmp0_arb_rtr__SHIFT 0x00000011
+#define TCD_STALLS_DEBUG__not_dgmmpd_dxtc_rtr__SHIFT 0x00000012
+#define TCD_STALLS_DEBUG__not_mux_dcmp_rtr__SHIFT 0x00000013
+#define TCD_STALLS_DEBUG__not_incoming_rtr__SHIFT 0x0000001f
+
+// TCO_STALLS_DEBUG
+#define TCO_STALLS_DEBUG__quad0_sg_crd_RTR__SHIFT 0x00000005
+#define TCO_STALLS_DEBUG__quad0_rl_sg_RTR__SHIFT 0x00000006
+#define TCO_STALLS_DEBUG__quad0_TCO_TCB_rtr_d__SHIFT 0x00000007
+
+// TCO_QUAD0_DEBUG0
+#define TCO_QUAD0_DEBUG0__rl_sg_sector_format__SHIFT 0x00000000
+#define TCO_QUAD0_DEBUG0__rl_sg_end_of_sample__SHIFT 0x00000008
+#define TCO_QUAD0_DEBUG0__rl_sg_rtr__SHIFT 0x00000009
+#define TCO_QUAD0_DEBUG0__rl_sg_rts__SHIFT 0x0000000a
+#define TCO_QUAD0_DEBUG0__sg_crd_end_of_sample__SHIFT 0x0000000b
+#define TCO_QUAD0_DEBUG0__sg_crd_rtr__SHIFT 0x0000000c
+#define TCO_QUAD0_DEBUG0__sg_crd_rts__SHIFT 0x0000000d
+#define TCO_QUAD0_DEBUG0__stageN1_valid_q__SHIFT 0x00000010
+#define TCO_QUAD0_DEBUG0__read_cache_q__SHIFT 0x00000018
+#define TCO_QUAD0_DEBUG0__cache_read_RTR__SHIFT 0x00000019
+#define TCO_QUAD0_DEBUG0__all_sectors_written_set3__SHIFT 0x0000001a
+#define TCO_QUAD0_DEBUG0__all_sectors_written_set2__SHIFT 0x0000001b
+#define TCO_QUAD0_DEBUG0__all_sectors_written_set1__SHIFT 0x0000001c
+#define TCO_QUAD0_DEBUG0__all_sectors_written_set0__SHIFT 0x0000001d
+#define TCO_QUAD0_DEBUG0__busy__SHIFT 0x0000001e
+
+// TCO_QUAD0_DEBUG1
+#define TCO_QUAD0_DEBUG1__fifo_busy__SHIFT 0x00000000
+#define TCO_QUAD0_DEBUG1__empty__SHIFT 0x00000001
+#define TCO_QUAD0_DEBUG1__full__SHIFT 0x00000002
+#define TCO_QUAD0_DEBUG1__write_enable__SHIFT 0x00000003
+#define TCO_QUAD0_DEBUG1__fifo_write_ptr__SHIFT 0x00000004
+#define TCO_QUAD0_DEBUG1__fifo_read_ptr__SHIFT 0x0000000b
+#define TCO_QUAD0_DEBUG1__cache_read_busy__SHIFT 0x00000014
+#define TCO_QUAD0_DEBUG1__latency_fifo_busy__SHIFT 0x00000015
+#define TCO_QUAD0_DEBUG1__input_quad_busy__SHIFT 0x00000016
+#define TCO_QUAD0_DEBUG1__tco_quad_pipe_busy__SHIFT 0x00000017
+#define TCO_QUAD0_DEBUG1__TCB_TCO_rtr_d__SHIFT 0x00000018
+#define TCO_QUAD0_DEBUG1__TCB_TCO_xfc_q__SHIFT 0x00000019
+#define TCO_QUAD0_DEBUG1__rl_sg_rtr__SHIFT 0x0000001a
+#define TCO_QUAD0_DEBUG1__rl_sg_rts__SHIFT 0x0000001b
+#define TCO_QUAD0_DEBUG1__sg_crd_rtr__SHIFT 0x0000001c
+#define TCO_QUAD0_DEBUG1__sg_crd_rts__SHIFT 0x0000001d
+#define TCO_QUAD0_DEBUG1__TCO_TCB_read_xfc__SHIFT 0x0000001e
+
+// SQ_GPR_MANAGEMENT
+#define SQ_GPR_MANAGEMENT__REG_DYNAMIC__SHIFT 0x00000000
+#define SQ_GPR_MANAGEMENT__REG_SIZE_PIX__SHIFT 0x00000004
+#define SQ_GPR_MANAGEMENT__REG_SIZE_VTX__SHIFT 0x0000000c
+
+// SQ_FLOW_CONTROL
+#define SQ_FLOW_CONTROL__INPUT_ARBITRATION_POLICY__SHIFT 0x00000000
+#define SQ_FLOW_CONTROL__ONE_THREAD__SHIFT 0x00000004
+#define SQ_FLOW_CONTROL__ONE_ALU__SHIFT 0x00000008
+#define SQ_FLOW_CONTROL__CF_WR_BASE__SHIFT 0x0000000c
+#define SQ_FLOW_CONTROL__NO_PV_PS__SHIFT 0x00000010
+#define SQ_FLOW_CONTROL__NO_LOOP_EXIT__SHIFT 0x00000011
+#define SQ_FLOW_CONTROL__NO_CEXEC_OPTIMIZE__SHIFT 0x00000012
+#define SQ_FLOW_CONTROL__TEXTURE_ARBITRATION_POLICY__SHIFT 0x00000013
+#define SQ_FLOW_CONTROL__VC_ARBITRATION_POLICY__SHIFT 0x00000015
+#define SQ_FLOW_CONTROL__ALU_ARBITRATION_POLICY__SHIFT 0x00000016
+#define SQ_FLOW_CONTROL__NO_ARB_EJECT__SHIFT 0x00000017
+#define SQ_FLOW_CONTROL__NO_CFS_EJECT__SHIFT 0x00000018
+#define SQ_FLOW_CONTROL__POS_EXP_PRIORITY__SHIFT 0x00000019
+#define SQ_FLOW_CONTROL__NO_EARLY_THREAD_TERMINATION__SHIFT 0x0000001a
+#define SQ_FLOW_CONTROL__PS_PREFETCH_COLOR_ALLOC__SHIFT 0x0000001b
+
+// SQ_INST_STORE_MANAGMENT
+#define SQ_INST_STORE_MANAGMENT__INST_BASE_PIX__SHIFT 0x00000000
+#define SQ_INST_STORE_MANAGMENT__INST_BASE_VTX__SHIFT 0x00000010
+
+// SQ_RESOURCE_MANAGMENT
+#define SQ_RESOURCE_MANAGMENT__VTX_THREAD_BUF_ENTRIES__SHIFT 0x00000000
+#define SQ_RESOURCE_MANAGMENT__PIX_THREAD_BUF_ENTRIES__SHIFT 0x00000008
+#define SQ_RESOURCE_MANAGMENT__EXPORT_BUF_ENTRIES__SHIFT 0x00000010
+
+// SQ_EO_RT
+#define SQ_EO_RT__EO_CONSTANTS_RT__SHIFT 0x00000000
+#define SQ_EO_RT__EO_TSTATE_RT__SHIFT 0x00000010
+
+// SQ_DEBUG_MISC
+#define SQ_DEBUG_MISC__DB_ALUCST_SIZE__SHIFT 0x00000000
+#define SQ_DEBUG_MISC__DB_TSTATE_SIZE__SHIFT 0x0000000c
+#define SQ_DEBUG_MISC__DB_READ_CTX__SHIFT 0x00000014
+#define SQ_DEBUG_MISC__RESERVED__SHIFT 0x00000015
+#define SQ_DEBUG_MISC__DB_READ_MEMORY__SHIFT 0x00000017
+#define SQ_DEBUG_MISC__DB_WEN_MEMORY_0__SHIFT 0x00000019
+#define SQ_DEBUG_MISC__DB_WEN_MEMORY_1__SHIFT 0x0000001a
+#define SQ_DEBUG_MISC__DB_WEN_MEMORY_2__SHIFT 0x0000001b
+#define SQ_DEBUG_MISC__DB_WEN_MEMORY_3__SHIFT 0x0000001c
+
+// SQ_ACTIVITY_METER_CNTL
+#define SQ_ACTIVITY_METER_CNTL__TIMEBASE__SHIFT 0x00000000
+#define SQ_ACTIVITY_METER_CNTL__THRESHOLD_LOW__SHIFT 0x00000008
+#define SQ_ACTIVITY_METER_CNTL__THRESHOLD_HIGH__SHIFT 0x00000010
+#define SQ_ACTIVITY_METER_CNTL__SPARE__SHIFT 0x00000018
+
+// SQ_ACTIVITY_METER_STATUS
+#define SQ_ACTIVITY_METER_STATUS__PERCENT_BUSY__SHIFT 0x00000000
+
+// SQ_INPUT_ARB_PRIORITY
+#define SQ_INPUT_ARB_PRIORITY__PC_AVAIL_WEIGHT__SHIFT 0x00000000
+#define SQ_INPUT_ARB_PRIORITY__PC_AVAIL_SIGN__SHIFT 0x00000003
+#define SQ_INPUT_ARB_PRIORITY__SX_AVAIL_WEIGHT__SHIFT 0x00000004
+#define SQ_INPUT_ARB_PRIORITY__SX_AVAIL_SIGN__SHIFT 0x00000007
+#define SQ_INPUT_ARB_PRIORITY__THRESHOLD__SHIFT 0x00000008
+
+// SQ_THREAD_ARB_PRIORITY
+#define SQ_THREAD_ARB_PRIORITY__PC_AVAIL_WEIGHT__SHIFT 0x00000000
+#define SQ_THREAD_ARB_PRIORITY__PC_AVAIL_SIGN__SHIFT 0x00000003
+#define SQ_THREAD_ARB_PRIORITY__SX_AVAIL_WEIGHT__SHIFT 0x00000004
+#define SQ_THREAD_ARB_PRIORITY__SX_AVAIL_SIGN__SHIFT 0x00000007
+#define SQ_THREAD_ARB_PRIORITY__THRESHOLD__SHIFT 0x00000008
+#define SQ_THREAD_ARB_PRIORITY__RESERVED__SHIFT 0x00000012
+#define SQ_THREAD_ARB_PRIORITY__VS_PRIORITIZE_SERIAL__SHIFT 0x00000014
+#define SQ_THREAD_ARB_PRIORITY__PS_PRIORITIZE_SERIAL__SHIFT 0x00000015
+#define SQ_THREAD_ARB_PRIORITY__USE_SERIAL_COUNT_THRESHOLD__SHIFT 0x00000016
+
+// SQ_DEBUG_INPUT_FSM
+#define SQ_DEBUG_INPUT_FSM__VC_VSR_LD__SHIFT 0x00000000
+#define SQ_DEBUG_INPUT_FSM__RESERVED__SHIFT 0x00000003
+#define SQ_DEBUG_INPUT_FSM__VC_GPR_LD__SHIFT 0x00000004
+#define SQ_DEBUG_INPUT_FSM__PC_PISM__SHIFT 0x00000008
+#define SQ_DEBUG_INPUT_FSM__RESERVED1__SHIFT 0x0000000b
+#define SQ_DEBUG_INPUT_FSM__PC_AS__SHIFT 0x0000000c
+#define SQ_DEBUG_INPUT_FSM__PC_INTERP_CNT__SHIFT 0x0000000f
+#define SQ_DEBUG_INPUT_FSM__PC_GPR_SIZE__SHIFT 0x00000014
+
+// SQ_DEBUG_CONST_MGR_FSM
+#define SQ_DEBUG_CONST_MGR_FSM__TEX_CONST_EVENT_STATE__SHIFT 0x00000000
+#define SQ_DEBUG_CONST_MGR_FSM__RESERVED1__SHIFT 0x00000005
+#define SQ_DEBUG_CONST_MGR_FSM__ALU_CONST_EVENT_STATE__SHIFT 0x00000008
+#define SQ_DEBUG_CONST_MGR_FSM__RESERVED2__SHIFT 0x0000000d
+#define SQ_DEBUG_CONST_MGR_FSM__ALU_CONST_CNTX_VALID__SHIFT 0x00000010
+#define SQ_DEBUG_CONST_MGR_FSM__TEX_CONST_CNTX_VALID__SHIFT 0x00000012
+#define SQ_DEBUG_CONST_MGR_FSM__CNTX0_VTX_EVENT_DONE__SHIFT 0x00000014
+#define SQ_DEBUG_CONST_MGR_FSM__CNTX0_PIX_EVENT_DONE__SHIFT 0x00000015
+#define SQ_DEBUG_CONST_MGR_FSM__CNTX1_VTX_EVENT_DONE__SHIFT 0x00000016
+#define SQ_DEBUG_CONST_MGR_FSM__CNTX1_PIX_EVENT_DONE__SHIFT 0x00000017
+
+// SQ_DEBUG_TP_FSM
+#define SQ_DEBUG_TP_FSM__EX_TP__SHIFT 0x00000000
+#define SQ_DEBUG_TP_FSM__RESERVED0__SHIFT 0x00000003
+#define SQ_DEBUG_TP_FSM__CF_TP__SHIFT 0x00000004
+#define SQ_DEBUG_TP_FSM__IF_TP__SHIFT 0x00000008
+#define SQ_DEBUG_TP_FSM__RESERVED1__SHIFT 0x0000000b
+#define SQ_DEBUG_TP_FSM__TIS_TP__SHIFT 0x0000000c
+#define SQ_DEBUG_TP_FSM__RESERVED2__SHIFT 0x0000000e
+#define SQ_DEBUG_TP_FSM__GS_TP__SHIFT 0x00000010
+#define SQ_DEBUG_TP_FSM__RESERVED3__SHIFT 0x00000012
+#define SQ_DEBUG_TP_FSM__FCR_TP__SHIFT 0x00000014
+#define SQ_DEBUG_TP_FSM__RESERVED4__SHIFT 0x00000016
+#define SQ_DEBUG_TP_FSM__FCS_TP__SHIFT 0x00000018
+#define SQ_DEBUG_TP_FSM__RESERVED5__SHIFT 0x0000001a
+#define SQ_DEBUG_TP_FSM__ARB_TR_TP__SHIFT 0x0000001c
+
+// SQ_DEBUG_FSM_ALU_0
+#define SQ_DEBUG_FSM_ALU_0__EX_ALU_0__SHIFT 0x00000000
+#define SQ_DEBUG_FSM_ALU_0__RESERVED0__SHIFT 0x00000003
+#define SQ_DEBUG_FSM_ALU_0__CF_ALU_0__SHIFT 0x00000004
+#define SQ_DEBUG_FSM_ALU_0__IF_ALU_0__SHIFT 0x00000008
+#define SQ_DEBUG_FSM_ALU_0__RESERVED1__SHIFT 0x0000000b
+#define SQ_DEBUG_FSM_ALU_0__DU1_ALU_0__SHIFT 0x0000000c
+#define SQ_DEBUG_FSM_ALU_0__RESERVED2__SHIFT 0x0000000f
+#define SQ_DEBUG_FSM_ALU_0__DU0_ALU_0__SHIFT 0x00000010
+#define SQ_DEBUG_FSM_ALU_0__RESERVED3__SHIFT 0x00000013
+#define SQ_DEBUG_FSM_ALU_0__AIS_ALU_0__SHIFT 0x00000014
+#define SQ_DEBUG_FSM_ALU_0__RESERVED4__SHIFT 0x00000017
+#define SQ_DEBUG_FSM_ALU_0__ACS_ALU_0__SHIFT 0x00000018
+#define SQ_DEBUG_FSM_ALU_0__RESERVED5__SHIFT 0x0000001b
+#define SQ_DEBUG_FSM_ALU_0__ARB_TR_ALU__SHIFT 0x0000001c
+
+// SQ_DEBUG_FSM_ALU_1
+#define SQ_DEBUG_FSM_ALU_1__EX_ALU_0__SHIFT 0x00000000
+#define SQ_DEBUG_FSM_ALU_1__RESERVED0__SHIFT 0x00000003
+#define SQ_DEBUG_FSM_ALU_1__CF_ALU_0__SHIFT 0x00000004
+#define SQ_DEBUG_FSM_ALU_1__IF_ALU_0__SHIFT 0x00000008
+#define SQ_DEBUG_FSM_ALU_1__RESERVED1__SHIFT 0x0000000b
+#define SQ_DEBUG_FSM_ALU_1__DU1_ALU_0__SHIFT 0x0000000c
+#define SQ_DEBUG_FSM_ALU_1__RESERVED2__SHIFT 0x0000000f
+#define SQ_DEBUG_FSM_ALU_1__DU0_ALU_0__SHIFT 0x00000010
+#define SQ_DEBUG_FSM_ALU_1__RESERVED3__SHIFT 0x00000013
+#define SQ_DEBUG_FSM_ALU_1__AIS_ALU_0__SHIFT 0x00000014
+#define SQ_DEBUG_FSM_ALU_1__RESERVED4__SHIFT 0x00000017
+#define SQ_DEBUG_FSM_ALU_1__ACS_ALU_0__SHIFT 0x00000018
+#define SQ_DEBUG_FSM_ALU_1__RESERVED5__SHIFT 0x0000001b
+#define SQ_DEBUG_FSM_ALU_1__ARB_TR_ALU__SHIFT 0x0000001c
+
+// SQ_DEBUG_EXP_ALLOC
+#define SQ_DEBUG_EXP_ALLOC__POS_BUF_AVAIL__SHIFT 0x00000000
+#define SQ_DEBUG_EXP_ALLOC__COLOR_BUF_AVAIL__SHIFT 0x00000004
+#define SQ_DEBUG_EXP_ALLOC__EA_BUF_AVAIL__SHIFT 0x0000000c
+#define SQ_DEBUG_EXP_ALLOC__RESERVED__SHIFT 0x0000000f
+#define SQ_DEBUG_EXP_ALLOC__ALLOC_TBL_BUF_AVAIL__SHIFT 0x00000010
+
+// SQ_DEBUG_PTR_BUFF
+#define SQ_DEBUG_PTR_BUFF__END_OF_BUFFER__SHIFT 0x00000000
+#define SQ_DEBUG_PTR_BUFF__DEALLOC_CNT__SHIFT 0x00000001
+#define SQ_DEBUG_PTR_BUFF__QUAL_NEW_VECTOR__SHIFT 0x00000005
+#define SQ_DEBUG_PTR_BUFF__EVENT_CONTEXT_ID__SHIFT 0x00000006
+#define SQ_DEBUG_PTR_BUFF__SC_EVENT_ID__SHIFT 0x00000009
+#define SQ_DEBUG_PTR_BUFF__QUAL_EVENT__SHIFT 0x0000000e
+#define SQ_DEBUG_PTR_BUFF__PRIM_TYPE_POLYGON__SHIFT 0x0000000f
+#define SQ_DEBUG_PTR_BUFF__EF_EMPTY__SHIFT 0x00000010
+#define SQ_DEBUG_PTR_BUFF__VTX_SYNC_CNT__SHIFT 0x00000011
+
+// SQ_DEBUG_GPR_VTX
+#define SQ_DEBUG_GPR_VTX__VTX_TAIL_PTR__SHIFT 0x00000000
+#define SQ_DEBUG_GPR_VTX__RESERVED__SHIFT 0x00000007
+#define SQ_DEBUG_GPR_VTX__VTX_HEAD_PTR__SHIFT 0x00000008
+#define SQ_DEBUG_GPR_VTX__RESERVED1__SHIFT 0x0000000f
+#define SQ_DEBUG_GPR_VTX__VTX_MAX__SHIFT 0x00000010
+#define SQ_DEBUG_GPR_VTX__RESERVED2__SHIFT 0x00000017
+#define SQ_DEBUG_GPR_VTX__VTX_FREE__SHIFT 0x00000018
+
+// SQ_DEBUG_GPR_PIX
+#define SQ_DEBUG_GPR_PIX__PIX_TAIL_PTR__SHIFT 0x00000000
+#define SQ_DEBUG_GPR_PIX__RESERVED__SHIFT 0x00000007
+#define SQ_DEBUG_GPR_PIX__PIX_HEAD_PTR__SHIFT 0x00000008
+#define SQ_DEBUG_GPR_PIX__RESERVED1__SHIFT 0x0000000f
+#define SQ_DEBUG_GPR_PIX__PIX_MAX__SHIFT 0x00000010
+#define SQ_DEBUG_GPR_PIX__RESERVED2__SHIFT 0x00000017
+#define SQ_DEBUG_GPR_PIX__PIX_FREE__SHIFT 0x00000018
+
+// SQ_DEBUG_TB_STATUS_SEL
+#define SQ_DEBUG_TB_STATUS_SEL__VTX_TB_STATUS_REG_SEL__SHIFT 0x00000000
+#define SQ_DEBUG_TB_STATUS_SEL__VTX_TB_STATE_MEM_DW_SEL__SHIFT 0x00000004
+#define SQ_DEBUG_TB_STATUS_SEL__VTX_TB_STATE_MEM_RD_ADDR__SHIFT 0x00000007
+#define SQ_DEBUG_TB_STATUS_SEL__VTX_TB_STATE_MEM_RD_EN__SHIFT 0x0000000b
+#define SQ_DEBUG_TB_STATUS_SEL__PIX_TB_STATE_MEM_RD_EN__SHIFT 0x0000000c
+#define SQ_DEBUG_TB_STATUS_SEL__DEBUG_BUS_TRIGGER_SEL__SHIFT 0x0000000e
+#define SQ_DEBUG_TB_STATUS_SEL__PIX_TB_STATUS_REG_SEL__SHIFT 0x00000010
+#define SQ_DEBUG_TB_STATUS_SEL__PIX_TB_STATE_MEM_DW_SEL__SHIFT 0x00000014
+#define SQ_DEBUG_TB_STATUS_SEL__PIX_TB_STATE_MEM_RD_ADDR__SHIFT 0x00000017
+#define SQ_DEBUG_TB_STATUS_SEL__VC_THREAD_BUF_DLY__SHIFT 0x0000001d
+#define SQ_DEBUG_TB_STATUS_SEL__DISABLE_STRICT_CTX_SYNC__SHIFT 0x0000001f
+
+// SQ_DEBUG_VTX_TB_0
+#define SQ_DEBUG_VTX_TB_0__VTX_HEAD_PTR_Q__SHIFT 0x00000000
+#define SQ_DEBUG_VTX_TB_0__TAIL_PTR_Q__SHIFT 0x00000004
+#define SQ_DEBUG_VTX_TB_0__FULL_CNT_Q__SHIFT 0x00000008
+#define SQ_DEBUG_VTX_TB_0__NXT_POS_ALLOC_CNT__SHIFT 0x0000000c
+#define SQ_DEBUG_VTX_TB_0__NXT_PC_ALLOC_CNT__SHIFT 0x00000010
+#define SQ_DEBUG_VTX_TB_0__SX_EVENT_FULL__SHIFT 0x00000014
+#define SQ_DEBUG_VTX_TB_0__BUSY_Q__SHIFT 0x00000015
+
+// SQ_DEBUG_VTX_TB_1
+#define SQ_DEBUG_VTX_TB_1__VS_DONE_PTR__SHIFT 0x00000000
+
+// SQ_DEBUG_VTX_TB_STATUS_REG
+#define SQ_DEBUG_VTX_TB_STATUS_REG__VS_STATUS_REG__SHIFT 0x00000000
+
+// SQ_DEBUG_VTX_TB_STATE_MEM
+#define SQ_DEBUG_VTX_TB_STATE_MEM__VS_STATE_MEM__SHIFT 0x00000000
+
+// SQ_DEBUG_PIX_TB_0
+#define SQ_DEBUG_PIX_TB_0__PIX_HEAD_PTR__SHIFT 0x00000000
+#define SQ_DEBUG_PIX_TB_0__TAIL_PTR__SHIFT 0x00000006
+#define SQ_DEBUG_PIX_TB_0__FULL_CNT__SHIFT 0x0000000c
+#define SQ_DEBUG_PIX_TB_0__NXT_PIX_ALLOC_CNT__SHIFT 0x00000013
+#define SQ_DEBUG_PIX_TB_0__NXT_PIX_EXP_CNT__SHIFT 0x00000019
+#define SQ_DEBUG_PIX_TB_0__BUSY__SHIFT 0x0000001f
+
+// SQ_DEBUG_PIX_TB_STATUS_REG_0
+#define SQ_DEBUG_PIX_TB_STATUS_REG_0__PIX_TB_STATUS_REG_0__SHIFT 0x00000000
+
+// SQ_DEBUG_PIX_TB_STATUS_REG_1
+#define SQ_DEBUG_PIX_TB_STATUS_REG_1__PIX_TB_STATUS_REG_1__SHIFT 0x00000000
+
+// SQ_DEBUG_PIX_TB_STATUS_REG_2
+#define SQ_DEBUG_PIX_TB_STATUS_REG_2__PIX_TB_STATUS_REG_2__SHIFT 0x00000000
+
+// SQ_DEBUG_PIX_TB_STATUS_REG_3
+#define SQ_DEBUG_PIX_TB_STATUS_REG_3__PIX_TB_STATUS_REG_3__SHIFT 0x00000000
+
+// SQ_DEBUG_PIX_TB_STATE_MEM
+#define SQ_DEBUG_PIX_TB_STATE_MEM__PIX_TB_STATE_MEM__SHIFT 0x00000000
+
+// SQ_PERFCOUNTER0_SELECT
+#define SQ_PERFCOUNTER0_SELECT__PERF_SEL__SHIFT 0x00000000
+
+// SQ_PERFCOUNTER1_SELECT
+#define SQ_PERFCOUNTER1_SELECT__PERF_SEL__SHIFT 0x00000000
+
+// SQ_PERFCOUNTER2_SELECT
+#define SQ_PERFCOUNTER2_SELECT__PERF_SEL__SHIFT 0x00000000
+
+// SQ_PERFCOUNTER3_SELECT
+#define SQ_PERFCOUNTER3_SELECT__PERF_SEL__SHIFT 0x00000000
+
+// SQ_PERFCOUNTER0_LOW
+#define SQ_PERFCOUNTER0_LOW__PERF_COUNT__SHIFT 0x00000000
+
+// SQ_PERFCOUNTER0_HI
+#define SQ_PERFCOUNTER0_HI__PERF_COUNT__SHIFT 0x00000000
+
+// SQ_PERFCOUNTER1_LOW
+#define SQ_PERFCOUNTER1_LOW__PERF_COUNT__SHIFT 0x00000000
+
+// SQ_PERFCOUNTER1_HI
+#define SQ_PERFCOUNTER1_HI__PERF_COUNT__SHIFT 0x00000000
+
+// SQ_PERFCOUNTER2_LOW
+#define SQ_PERFCOUNTER2_LOW__PERF_COUNT__SHIFT 0x00000000
+
+// SQ_PERFCOUNTER2_HI
+#define SQ_PERFCOUNTER2_HI__PERF_COUNT__SHIFT 0x00000000
+
+// SQ_PERFCOUNTER3_LOW
+#define SQ_PERFCOUNTER3_LOW__PERF_COUNT__SHIFT 0x00000000
+
+// SQ_PERFCOUNTER3_HI
+#define SQ_PERFCOUNTER3_HI__PERF_COUNT__SHIFT 0x00000000
+
+// SX_PERFCOUNTER0_SELECT
+#define SX_PERFCOUNTER0_SELECT__PERF_SEL__SHIFT 0x00000000
+
+// SX_PERFCOUNTER0_LOW
+#define SX_PERFCOUNTER0_LOW__PERF_COUNT__SHIFT 0x00000000
+
+// SX_PERFCOUNTER0_HI
+#define SX_PERFCOUNTER0_HI__PERF_COUNT__SHIFT 0x00000000
+
+// SQ_INSTRUCTION_ALU_0
+#define SQ_INSTRUCTION_ALU_0__VECTOR_RESULT__SHIFT 0x00000000
+#define SQ_INSTRUCTION_ALU_0__CST_0_ABS_MOD__SHIFT 0x00000006
+#define SQ_INSTRUCTION_ALU_0__LOW_PRECISION_16B_FP__SHIFT 0x00000007
+#define SQ_INSTRUCTION_ALU_0__SCALAR_RESULT__SHIFT 0x00000008
+#define SQ_INSTRUCTION_ALU_0__SST_0_ABS_MOD__SHIFT 0x0000000e
+#define SQ_INSTRUCTION_ALU_0__EXPORT_DATA__SHIFT 0x0000000f
+#define SQ_INSTRUCTION_ALU_0__VECTOR_WRT_MSK__SHIFT 0x00000010
+#define SQ_INSTRUCTION_ALU_0__SCALAR_WRT_MSK__SHIFT 0x00000014
+#define SQ_INSTRUCTION_ALU_0__VECTOR_CLAMP__SHIFT 0x00000018
+#define SQ_INSTRUCTION_ALU_0__SCALAR_CLAMP__SHIFT 0x00000019
+#define SQ_INSTRUCTION_ALU_0__SCALAR_OPCODE__SHIFT 0x0000001a
+
+// SQ_INSTRUCTION_ALU_1
+#define SQ_INSTRUCTION_ALU_1__SRC_C_SWIZZLE_R__SHIFT 0x00000000
+#define SQ_INSTRUCTION_ALU_1__SRC_C_SWIZZLE_G__SHIFT 0x00000002
+#define SQ_INSTRUCTION_ALU_1__SRC_C_SWIZZLE_B__SHIFT 0x00000004
+#define SQ_INSTRUCTION_ALU_1__SRC_C_SWIZZLE_A__SHIFT 0x00000006
+#define SQ_INSTRUCTION_ALU_1__SRC_B_SWIZZLE_R__SHIFT 0x00000008
+#define SQ_INSTRUCTION_ALU_1__SRC_B_SWIZZLE_G__SHIFT 0x0000000a
+#define SQ_INSTRUCTION_ALU_1__SRC_B_SWIZZLE_B__SHIFT 0x0000000c
+#define SQ_INSTRUCTION_ALU_1__SRC_B_SWIZZLE_A__SHIFT 0x0000000e
+#define SQ_INSTRUCTION_ALU_1__SRC_A_SWIZZLE_R__SHIFT 0x00000010
+#define SQ_INSTRUCTION_ALU_1__SRC_A_SWIZZLE_G__SHIFT 0x00000012
+#define SQ_INSTRUCTION_ALU_1__SRC_A_SWIZZLE_B__SHIFT 0x00000014
+#define SQ_INSTRUCTION_ALU_1__SRC_A_SWIZZLE_A__SHIFT 0x00000016
+#define SQ_INSTRUCTION_ALU_1__SRC_C_ARG_MOD__SHIFT 0x00000018
+#define SQ_INSTRUCTION_ALU_1__SRC_B_ARG_MOD__SHIFT 0x00000019
+#define SQ_INSTRUCTION_ALU_1__SRC_A_ARG_MOD__SHIFT 0x0000001a
+#define SQ_INSTRUCTION_ALU_1__PRED_SELECT__SHIFT 0x0000001b
+#define SQ_INSTRUCTION_ALU_1__RELATIVE_ADDR__SHIFT 0x0000001d
+#define SQ_INSTRUCTION_ALU_1__CONST_1_REL_ABS__SHIFT 0x0000001e
+#define SQ_INSTRUCTION_ALU_1__CONST_0_REL_ABS__SHIFT 0x0000001f
+
+// SQ_INSTRUCTION_ALU_2
+#define SQ_INSTRUCTION_ALU_2__SRC_C_REG_PTR__SHIFT 0x00000000
+#define SQ_INSTRUCTION_ALU_2__REG_SELECT_C__SHIFT 0x00000006
+#define SQ_INSTRUCTION_ALU_2__REG_ABS_MOD_C__SHIFT 0x00000007
+#define SQ_INSTRUCTION_ALU_2__SRC_B_REG_PTR__SHIFT 0x00000008
+#define SQ_INSTRUCTION_ALU_2__REG_SELECT_B__SHIFT 0x0000000e
+#define SQ_INSTRUCTION_ALU_2__REG_ABS_MOD_B__SHIFT 0x0000000f
+#define SQ_INSTRUCTION_ALU_2__SRC_A_REG_PTR__SHIFT 0x00000010
+#define SQ_INSTRUCTION_ALU_2__REG_SELECT_A__SHIFT 0x00000016
+#define SQ_INSTRUCTION_ALU_2__REG_ABS_MOD_A__SHIFT 0x00000017
+#define SQ_INSTRUCTION_ALU_2__VECTOR_OPCODE__SHIFT 0x00000018
+#define SQ_INSTRUCTION_ALU_2__SRC_C_SEL__SHIFT 0x0000001d
+#define SQ_INSTRUCTION_ALU_2__SRC_B_SEL__SHIFT 0x0000001e
+#define SQ_INSTRUCTION_ALU_2__SRC_A_SEL__SHIFT 0x0000001f
+
+// SQ_INSTRUCTION_CF_EXEC_0
+#define SQ_INSTRUCTION_CF_EXEC_0__ADDRESS__SHIFT 0x00000000
+#define SQ_INSTRUCTION_CF_EXEC_0__RESERVED__SHIFT 0x00000009
+#define SQ_INSTRUCTION_CF_EXEC_0__COUNT__SHIFT 0x0000000c
+#define SQ_INSTRUCTION_CF_EXEC_0__YIELD__SHIFT 0x0000000f
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_TYPE_0__SHIFT 0x00000010
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_SERIAL_0__SHIFT 0x00000011
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_TYPE_1__SHIFT 0x00000012
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_SERIAL_1__SHIFT 0x00000013
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_TYPE_2__SHIFT 0x00000014
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_SERIAL_2__SHIFT 0x00000015
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_TYPE_3__SHIFT 0x00000016
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_SERIAL_3__SHIFT 0x00000017
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_TYPE_4__SHIFT 0x00000018
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_SERIAL_4__SHIFT 0x00000019
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_TYPE_5__SHIFT 0x0000001a
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_SERIAL_5__SHIFT 0x0000001b
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_VC_0__SHIFT 0x0000001c
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_VC_1__SHIFT 0x0000001d
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_VC_2__SHIFT 0x0000001e
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_VC_3__SHIFT 0x0000001f
+
+// SQ_INSTRUCTION_CF_EXEC_1
+#define SQ_INSTRUCTION_CF_EXEC_1__INST_VC_4__SHIFT 0x00000000
+#define SQ_INSTRUCTION_CF_EXEC_1__INST_VC_5__SHIFT 0x00000001
+#define SQ_INSTRUCTION_CF_EXEC_1__BOOL_ADDR__SHIFT 0x00000002
+#define SQ_INSTRUCTION_CF_EXEC_1__CONDITION__SHIFT 0x0000000a
+#define SQ_INSTRUCTION_CF_EXEC_1__ADDRESS_MODE__SHIFT 0x0000000b
+#define SQ_INSTRUCTION_CF_EXEC_1__OPCODE__SHIFT 0x0000000c
+#define SQ_INSTRUCTION_CF_EXEC_1__ADDRESS__SHIFT 0x00000010
+#define SQ_INSTRUCTION_CF_EXEC_1__RESERVED__SHIFT 0x00000019
+#define SQ_INSTRUCTION_CF_EXEC_1__COUNT__SHIFT 0x0000001c
+#define SQ_INSTRUCTION_CF_EXEC_1__YIELD__SHIFT 0x0000001f
+
+// SQ_INSTRUCTION_CF_EXEC_2
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_TYPE_0__SHIFT 0x00000000
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_SERIAL_0__SHIFT 0x00000001
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_TYPE_1__SHIFT 0x00000002
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_SERIAL_1__SHIFT 0x00000003
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_TYPE_2__SHIFT 0x00000004
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_SERIAL_2__SHIFT 0x00000005
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_TYPE_3__SHIFT 0x00000006
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_SERIAL_3__SHIFT 0x00000007
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_TYPE_4__SHIFT 0x00000008
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_SERIAL_4__SHIFT 0x00000009
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_TYPE_5__SHIFT 0x0000000a
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_SERIAL_5__SHIFT 0x0000000b
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_VC_0__SHIFT 0x0000000c
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_VC_1__SHIFT 0x0000000d
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_VC_2__SHIFT 0x0000000e
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_VC_3__SHIFT 0x0000000f
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_VC_4__SHIFT 0x00000010
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_VC_5__SHIFT 0x00000011
+#define SQ_INSTRUCTION_CF_EXEC_2__BOOL_ADDR__SHIFT 0x00000012
+#define SQ_INSTRUCTION_CF_EXEC_2__CONDITION__SHIFT 0x0000001a
+#define SQ_INSTRUCTION_CF_EXEC_2__ADDRESS_MODE__SHIFT 0x0000001b
+#define SQ_INSTRUCTION_CF_EXEC_2__OPCODE__SHIFT 0x0000001c
+
+// SQ_INSTRUCTION_CF_LOOP_0
+#define SQ_INSTRUCTION_CF_LOOP_0__ADDRESS__SHIFT 0x00000000
+#define SQ_INSTRUCTION_CF_LOOP_0__RESERVED_0__SHIFT 0x0000000a
+#define SQ_INSTRUCTION_CF_LOOP_0__LOOP_ID__SHIFT 0x00000010
+#define SQ_INSTRUCTION_CF_LOOP_0__RESERVED_1__SHIFT 0x00000015
+
+// SQ_INSTRUCTION_CF_LOOP_1
+#define SQ_INSTRUCTION_CF_LOOP_1__RESERVED_0__SHIFT 0x00000000
+#define SQ_INSTRUCTION_CF_LOOP_1__ADDRESS_MODE__SHIFT 0x0000000b
+#define SQ_INSTRUCTION_CF_LOOP_1__OPCODE__SHIFT 0x0000000c
+#define SQ_INSTRUCTION_CF_LOOP_1__ADDRESS__SHIFT 0x00000010
+#define SQ_INSTRUCTION_CF_LOOP_1__RESERVED_1__SHIFT 0x0000001a
+
+// SQ_INSTRUCTION_CF_LOOP_2
+#define SQ_INSTRUCTION_CF_LOOP_2__LOOP_ID__SHIFT 0x00000000
+#define SQ_INSTRUCTION_CF_LOOP_2__RESERVED__SHIFT 0x00000005
+#define SQ_INSTRUCTION_CF_LOOP_2__ADDRESS_MODE__SHIFT 0x0000001b
+#define SQ_INSTRUCTION_CF_LOOP_2__OPCODE__SHIFT 0x0000001c
+
+// SQ_INSTRUCTION_CF_JMP_CALL_0
+#define SQ_INSTRUCTION_CF_JMP_CALL_0__ADDRESS__SHIFT 0x00000000
+#define SQ_INSTRUCTION_CF_JMP_CALL_0__RESERVED_0__SHIFT 0x0000000a
+#define SQ_INSTRUCTION_CF_JMP_CALL_0__FORCE_CALL__SHIFT 0x0000000d
+#define SQ_INSTRUCTION_CF_JMP_CALL_0__PREDICATED_JMP__SHIFT 0x0000000e
+#define SQ_INSTRUCTION_CF_JMP_CALL_0__RESERVED_1__SHIFT 0x0000000f
+
+// SQ_INSTRUCTION_CF_JMP_CALL_1
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__RESERVED_0__SHIFT 0x00000000
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__DIRECTION__SHIFT 0x00000001
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__BOOL_ADDR__SHIFT 0x00000002
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__CONDITION__SHIFT 0x0000000a
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__ADDRESS_MODE__SHIFT 0x0000000b
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__OPCODE__SHIFT 0x0000000c
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__ADDRESS__SHIFT 0x00000010
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__RESERVED_1__SHIFT 0x0000001a
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__FORCE_CALL__SHIFT 0x0000001d
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__RESERVED_2__SHIFT 0x0000001e
+
+// SQ_INSTRUCTION_CF_JMP_CALL_2
+#define SQ_INSTRUCTION_CF_JMP_CALL_2__RESERVED__SHIFT 0x00000000
+#define SQ_INSTRUCTION_CF_JMP_CALL_2__DIRECTION__SHIFT 0x00000011
+#define SQ_INSTRUCTION_CF_JMP_CALL_2__BOOL_ADDR__SHIFT 0x00000012
+#define SQ_INSTRUCTION_CF_JMP_CALL_2__CONDITION__SHIFT 0x0000001a
+#define SQ_INSTRUCTION_CF_JMP_CALL_2__ADDRESS_MODE__SHIFT 0x0000001b
+#define SQ_INSTRUCTION_CF_JMP_CALL_2__OPCODE__SHIFT 0x0000001c
+
+// SQ_INSTRUCTION_CF_ALLOC_0
+#define SQ_INSTRUCTION_CF_ALLOC_0__SIZE__SHIFT 0x00000000
+#define SQ_INSTRUCTION_CF_ALLOC_0__RESERVED__SHIFT 0x00000004
+
+// SQ_INSTRUCTION_CF_ALLOC_1
+#define SQ_INSTRUCTION_CF_ALLOC_1__RESERVED_0__SHIFT 0x00000000
+#define SQ_INSTRUCTION_CF_ALLOC_1__NO_SERIAL__SHIFT 0x00000008
+#define SQ_INSTRUCTION_CF_ALLOC_1__BUFFER_SELECT__SHIFT 0x00000009
+#define SQ_INSTRUCTION_CF_ALLOC_1__ALLOC_MODE__SHIFT 0x0000000b
+#define SQ_INSTRUCTION_CF_ALLOC_1__OPCODE__SHIFT 0x0000000c
+#define SQ_INSTRUCTION_CF_ALLOC_1__SIZE__SHIFT 0x00000010
+#define SQ_INSTRUCTION_CF_ALLOC_1__RESERVED_1__SHIFT 0x00000014
+
+// SQ_INSTRUCTION_CF_ALLOC_2
+#define SQ_INSTRUCTION_CF_ALLOC_2__RESERVED__SHIFT 0x00000000
+#define SQ_INSTRUCTION_CF_ALLOC_2__NO_SERIAL__SHIFT 0x00000018
+#define SQ_INSTRUCTION_CF_ALLOC_2__BUFFER_SELECT__SHIFT 0x00000019
+#define SQ_INSTRUCTION_CF_ALLOC_2__ALLOC_MODE__SHIFT 0x0000001b
+#define SQ_INSTRUCTION_CF_ALLOC_2__OPCODE__SHIFT 0x0000001c
+
+// SQ_INSTRUCTION_TFETCH_0
+#define SQ_INSTRUCTION_TFETCH_0__OPCODE__SHIFT 0x00000000
+#define SQ_INSTRUCTION_TFETCH_0__SRC_GPR__SHIFT 0x00000005
+#define SQ_INSTRUCTION_TFETCH_0__SRC_GPR_AM__SHIFT 0x0000000b
+#define SQ_INSTRUCTION_TFETCH_0__DST_GPR__SHIFT 0x0000000c
+#define SQ_INSTRUCTION_TFETCH_0__DST_GPR_AM__SHIFT 0x00000012
+#define SQ_INSTRUCTION_TFETCH_0__FETCH_VALID_ONLY__SHIFT 0x00000013
+#define SQ_INSTRUCTION_TFETCH_0__CONST_INDEX__SHIFT 0x00000014
+#define SQ_INSTRUCTION_TFETCH_0__TX_COORD_DENORM__SHIFT 0x00000019
+#define SQ_INSTRUCTION_TFETCH_0__SRC_SEL_X__SHIFT 0x0000001a
+#define SQ_INSTRUCTION_TFETCH_0__SRC_SEL_Y__SHIFT 0x0000001c
+#define SQ_INSTRUCTION_TFETCH_0__SRC_SEL_Z__SHIFT 0x0000001e
+
+// SQ_INSTRUCTION_TFETCH_1
+#define SQ_INSTRUCTION_TFETCH_1__DST_SEL_X__SHIFT 0x00000000
+#define SQ_INSTRUCTION_TFETCH_1__DST_SEL_Y__SHIFT 0x00000003
+#define SQ_INSTRUCTION_TFETCH_1__DST_SEL_Z__SHIFT 0x00000006
+#define SQ_INSTRUCTION_TFETCH_1__DST_SEL_W__SHIFT 0x00000009
+#define SQ_INSTRUCTION_TFETCH_1__MAG_FILTER__SHIFT 0x0000000c
+#define SQ_INSTRUCTION_TFETCH_1__MIN_FILTER__SHIFT 0x0000000e
+#define SQ_INSTRUCTION_TFETCH_1__MIP_FILTER__SHIFT 0x00000010
+#define SQ_INSTRUCTION_TFETCH_1__ANISO_FILTER__SHIFT 0x00000012
+#define SQ_INSTRUCTION_TFETCH_1__ARBITRARY_FILTER__SHIFT 0x00000015
+#define SQ_INSTRUCTION_TFETCH_1__VOL_MAG_FILTER__SHIFT 0x00000018
+#define SQ_INSTRUCTION_TFETCH_1__VOL_MIN_FILTER__SHIFT 0x0000001a
+#define SQ_INSTRUCTION_TFETCH_1__USE_COMP_LOD__SHIFT 0x0000001c
+#define SQ_INSTRUCTION_TFETCH_1__USE_REG_LOD__SHIFT 0x0000001d
+#define SQ_INSTRUCTION_TFETCH_1__PRED_SELECT__SHIFT 0x0000001f
+
+// SQ_INSTRUCTION_TFETCH_2
+#define SQ_INSTRUCTION_TFETCH_2__USE_REG_GRADIENTS__SHIFT 0x00000000
+#define SQ_INSTRUCTION_TFETCH_2__SAMPLE_LOCATION__SHIFT 0x00000001
+#define SQ_INSTRUCTION_TFETCH_2__LOD_BIAS__SHIFT 0x00000002
+#define SQ_INSTRUCTION_TFETCH_2__UNUSED__SHIFT 0x00000009
+#define SQ_INSTRUCTION_TFETCH_2__OFFSET_X__SHIFT 0x00000010
+#define SQ_INSTRUCTION_TFETCH_2__OFFSET_Y__SHIFT 0x00000015
+#define SQ_INSTRUCTION_TFETCH_2__OFFSET_Z__SHIFT 0x0000001a
+#define SQ_INSTRUCTION_TFETCH_2__PRED_CONDITION__SHIFT 0x0000001f
+
+// SQ_INSTRUCTION_VFETCH_0
+#define SQ_INSTRUCTION_VFETCH_0__OPCODE__SHIFT 0x00000000
+#define SQ_INSTRUCTION_VFETCH_0__SRC_GPR__SHIFT 0x00000005
+#define SQ_INSTRUCTION_VFETCH_0__SRC_GPR_AM__SHIFT 0x0000000b
+#define SQ_INSTRUCTION_VFETCH_0__DST_GPR__SHIFT 0x0000000c
+#define SQ_INSTRUCTION_VFETCH_0__DST_GPR_AM__SHIFT 0x00000012
+#define SQ_INSTRUCTION_VFETCH_0__MUST_BE_ONE__SHIFT 0x00000013
+#define SQ_INSTRUCTION_VFETCH_0__CONST_INDEX__SHIFT 0x00000014
+#define SQ_INSTRUCTION_VFETCH_0__CONST_INDEX_SEL__SHIFT 0x00000019
+#define SQ_INSTRUCTION_VFETCH_0__SRC_SEL__SHIFT 0x0000001e
+
+// SQ_INSTRUCTION_VFETCH_1
+#define SQ_INSTRUCTION_VFETCH_1__DST_SEL_X__SHIFT 0x00000000
+#define SQ_INSTRUCTION_VFETCH_1__DST_SEL_Y__SHIFT 0x00000003
+#define SQ_INSTRUCTION_VFETCH_1__DST_SEL_Z__SHIFT 0x00000006
+#define SQ_INSTRUCTION_VFETCH_1__DST_SEL_W__SHIFT 0x00000009
+#define SQ_INSTRUCTION_VFETCH_1__FORMAT_COMP_ALL__SHIFT 0x0000000c
+#define SQ_INSTRUCTION_VFETCH_1__NUM_FORMAT_ALL__SHIFT 0x0000000d
+#define SQ_INSTRUCTION_VFETCH_1__SIGNED_RF_MODE_ALL__SHIFT 0x0000000e
+#define SQ_INSTRUCTION_VFETCH_1__DATA_FORMAT__SHIFT 0x00000010
+#define SQ_INSTRUCTION_VFETCH_1__EXP_ADJUST_ALL__SHIFT 0x00000017
+#define SQ_INSTRUCTION_VFETCH_1__PRED_SELECT__SHIFT 0x0000001f
+
+// SQ_INSTRUCTION_VFETCH_2
+#define SQ_INSTRUCTION_VFETCH_2__STRIDE__SHIFT 0x00000000
+#define SQ_INSTRUCTION_VFETCH_2__OFFSET__SHIFT 0x00000010
+#define SQ_INSTRUCTION_VFETCH_2__PRED_CONDITION__SHIFT 0x0000001f
+
+// SQ_CONSTANT_0
+#define SQ_CONSTANT_0__RED__SHIFT 0x00000000
+
+// SQ_CONSTANT_1
+#define SQ_CONSTANT_1__GREEN__SHIFT 0x00000000
+
+// SQ_CONSTANT_2
+#define SQ_CONSTANT_2__BLUE__SHIFT 0x00000000
+
+// SQ_CONSTANT_3
+#define SQ_CONSTANT_3__ALPHA__SHIFT 0x00000000
+
+// SQ_FETCH_0
+#define SQ_FETCH_0__VALUE__SHIFT 0x00000000
+
+// SQ_FETCH_1
+#define SQ_FETCH_1__VALUE__SHIFT 0x00000000
+
+// SQ_FETCH_2
+#define SQ_FETCH_2__VALUE__SHIFT 0x00000000
+
+// SQ_FETCH_3
+#define SQ_FETCH_3__VALUE__SHIFT 0x00000000
+
+// SQ_FETCH_4
+#define SQ_FETCH_4__VALUE__SHIFT 0x00000000
+
+// SQ_FETCH_5
+#define SQ_FETCH_5__VALUE__SHIFT 0x00000000
+
+// SQ_CONSTANT_VFETCH_0
+#define SQ_CONSTANT_VFETCH_0__TYPE__SHIFT 0x00000000
+#define SQ_CONSTANT_VFETCH_0__STATE__SHIFT 0x00000001
+#define SQ_CONSTANT_VFETCH_0__BASE_ADDRESS__SHIFT 0x00000002
+
+// SQ_CONSTANT_VFETCH_1
+#define SQ_CONSTANT_VFETCH_1__ENDIAN_SWAP__SHIFT 0x00000000
+#define SQ_CONSTANT_VFETCH_1__LIMIT_ADDRESS__SHIFT 0x00000002
+
+// SQ_CONSTANT_T2
+#define SQ_CONSTANT_T2__VALUE__SHIFT 0x00000000
+
+// SQ_CONSTANT_T3
+#define SQ_CONSTANT_T3__VALUE__SHIFT 0x00000000
+
+// SQ_CF_BOOLEANS
+#define SQ_CF_BOOLEANS__CF_BOOLEANS_0__SHIFT 0x00000000
+#define SQ_CF_BOOLEANS__CF_BOOLEANS_1__SHIFT 0x00000008
+#define SQ_CF_BOOLEANS__CF_BOOLEANS_2__SHIFT 0x00000010
+#define SQ_CF_BOOLEANS__CF_BOOLEANS_3__SHIFT 0x00000018
+
+// SQ_CF_LOOP
+#define SQ_CF_LOOP__CF_LOOP_COUNT__SHIFT 0x00000000
+#define SQ_CF_LOOP__CF_LOOP_START__SHIFT 0x00000008
+#define SQ_CF_LOOP__CF_LOOP_STEP__SHIFT 0x00000010
+
+// SQ_CONSTANT_RT_0
+#define SQ_CONSTANT_RT_0__RED__SHIFT 0x00000000
+
+// SQ_CONSTANT_RT_1
+#define SQ_CONSTANT_RT_1__GREEN__SHIFT 0x00000000
+
+// SQ_CONSTANT_RT_2
+#define SQ_CONSTANT_RT_2__BLUE__SHIFT 0x00000000
+
+// SQ_CONSTANT_RT_3
+#define SQ_CONSTANT_RT_3__ALPHA__SHIFT 0x00000000
+
+// SQ_FETCH_RT_0
+#define SQ_FETCH_RT_0__VALUE__SHIFT 0x00000000
+
+// SQ_FETCH_RT_1
+#define SQ_FETCH_RT_1__VALUE__SHIFT 0x00000000
+
+// SQ_FETCH_RT_2
+#define SQ_FETCH_RT_2__VALUE__SHIFT 0x00000000
+
+// SQ_FETCH_RT_3
+#define SQ_FETCH_RT_3__VALUE__SHIFT 0x00000000
+
+// SQ_FETCH_RT_4
+#define SQ_FETCH_RT_4__VALUE__SHIFT 0x00000000
+
+// SQ_FETCH_RT_5
+#define SQ_FETCH_RT_5__VALUE__SHIFT 0x00000000
+
+// SQ_CF_RT_BOOLEANS
+#define SQ_CF_RT_BOOLEANS__CF_BOOLEANS_0__SHIFT 0x00000000
+#define SQ_CF_RT_BOOLEANS__CF_BOOLEANS_1__SHIFT 0x00000008
+#define SQ_CF_RT_BOOLEANS__CF_BOOLEANS_2__SHIFT 0x00000010
+#define SQ_CF_RT_BOOLEANS__CF_BOOLEANS_3__SHIFT 0x00000018
+
+// SQ_CF_RT_LOOP
+#define SQ_CF_RT_LOOP__CF_LOOP_COUNT__SHIFT 0x00000000
+#define SQ_CF_RT_LOOP__CF_LOOP_START__SHIFT 0x00000008
+#define SQ_CF_RT_LOOP__CF_LOOP_STEP__SHIFT 0x00000010
+
+// SQ_VS_PROGRAM
+#define SQ_VS_PROGRAM__BASE__SHIFT 0x00000000
+#define SQ_VS_PROGRAM__SIZE__SHIFT 0x0000000c
+
+// SQ_PS_PROGRAM
+#define SQ_PS_PROGRAM__BASE__SHIFT 0x00000000
+#define SQ_PS_PROGRAM__SIZE__SHIFT 0x0000000c
+
+// SQ_CF_PROGRAM_SIZE
+#define SQ_CF_PROGRAM_SIZE__VS_CF_SIZE__SHIFT 0x00000000
+#define SQ_CF_PROGRAM_SIZE__PS_CF_SIZE__SHIFT 0x0000000c
+
+// SQ_INTERPOLATOR_CNTL
+#define SQ_INTERPOLATOR_CNTL__PARAM_SHADE__SHIFT 0x00000000
+#define SQ_INTERPOLATOR_CNTL__SAMPLING_PATTERN__SHIFT 0x00000010
+
+// SQ_PROGRAM_CNTL
+#define SQ_PROGRAM_CNTL__VS_NUM_REG__SHIFT 0x00000000
+#define SQ_PROGRAM_CNTL__PS_NUM_REG__SHIFT 0x00000008
+#define SQ_PROGRAM_CNTL__VS_RESOURCE__SHIFT 0x00000010
+#define SQ_PROGRAM_CNTL__PS_RESOURCE__SHIFT 0x00000011
+#define SQ_PROGRAM_CNTL__PARAM_GEN__SHIFT 0x00000012
+#define SQ_PROGRAM_CNTL__GEN_INDEX_PIX__SHIFT 0x00000013
+#define SQ_PROGRAM_CNTL__VS_EXPORT_COUNT__SHIFT 0x00000014
+#define SQ_PROGRAM_CNTL__VS_EXPORT_MODE__SHIFT 0x00000018
+#define SQ_PROGRAM_CNTL__PS_EXPORT_MODE__SHIFT 0x0000001b
+#define SQ_PROGRAM_CNTL__GEN_INDEX_VTX__SHIFT 0x0000001f
+
+// SQ_WRAPPING_0
+#define SQ_WRAPPING_0__PARAM_WRAP_0__SHIFT 0x00000000
+#define SQ_WRAPPING_0__PARAM_WRAP_1__SHIFT 0x00000004
+#define SQ_WRAPPING_0__PARAM_WRAP_2__SHIFT 0x00000008
+#define SQ_WRAPPING_0__PARAM_WRAP_3__SHIFT 0x0000000c
+#define SQ_WRAPPING_0__PARAM_WRAP_4__SHIFT 0x00000010
+#define SQ_WRAPPING_0__PARAM_WRAP_5__SHIFT 0x00000014
+#define SQ_WRAPPING_0__PARAM_WRAP_6__SHIFT 0x00000018
+#define SQ_WRAPPING_0__PARAM_WRAP_7__SHIFT 0x0000001c
+
+// SQ_WRAPPING_1
+#define SQ_WRAPPING_1__PARAM_WRAP_8__SHIFT 0x00000000
+#define SQ_WRAPPING_1__PARAM_WRAP_9__SHIFT 0x00000004
+#define SQ_WRAPPING_1__PARAM_WRAP_10__SHIFT 0x00000008
+#define SQ_WRAPPING_1__PARAM_WRAP_11__SHIFT 0x0000000c
+#define SQ_WRAPPING_1__PARAM_WRAP_12__SHIFT 0x00000010
+#define SQ_WRAPPING_1__PARAM_WRAP_13__SHIFT 0x00000014
+#define SQ_WRAPPING_1__PARAM_WRAP_14__SHIFT 0x00000018
+#define SQ_WRAPPING_1__PARAM_WRAP_15__SHIFT 0x0000001c
+
+// SQ_VS_CONST
+#define SQ_VS_CONST__BASE__SHIFT 0x00000000
+#define SQ_VS_CONST__SIZE__SHIFT 0x0000000c
+
+// SQ_PS_CONST
+#define SQ_PS_CONST__BASE__SHIFT 0x00000000
+#define SQ_PS_CONST__SIZE__SHIFT 0x0000000c
+
+// SQ_CONTEXT_MISC
+#define SQ_CONTEXT_MISC__INST_PRED_OPTIMIZE__SHIFT 0x00000000
+#define SQ_CONTEXT_MISC__SC_OUTPUT_SCREEN_XY__SHIFT 0x00000001
+#define SQ_CONTEXT_MISC__SC_SAMPLE_CNTL__SHIFT 0x00000002
+#define SQ_CONTEXT_MISC__PARAM_GEN_POS__SHIFT 0x00000008
+#define SQ_CONTEXT_MISC__PERFCOUNTER_REF__SHIFT 0x00000010
+#define SQ_CONTEXT_MISC__YEILD_OPTIMIZE__SHIFT 0x00000011
+#define SQ_CONTEXT_MISC__TX_CACHE_SEL__SHIFT 0x00000012
+
+// SQ_CF_RD_BASE
+#define SQ_CF_RD_BASE__RD_BASE__SHIFT 0x00000000
+
+// SQ_DEBUG_MISC_0
+#define SQ_DEBUG_MISC_0__DB_PROB_ON__SHIFT 0x00000000
+#define SQ_DEBUG_MISC_0__DB_PROB_BREAK__SHIFT 0x00000004
+#define SQ_DEBUG_MISC_0__DB_PROB_ADDR__SHIFT 0x00000008
+#define SQ_DEBUG_MISC_0__DB_PROB_COUNT__SHIFT 0x00000018
+
+// SQ_DEBUG_MISC_1
+#define SQ_DEBUG_MISC_1__DB_ON_PIX__SHIFT 0x00000000
+#define SQ_DEBUG_MISC_1__DB_ON_VTX__SHIFT 0x00000001
+#define SQ_DEBUG_MISC_1__DB_INST_COUNT__SHIFT 0x00000008
+#define SQ_DEBUG_MISC_1__DB_BREAK_ADDR__SHIFT 0x00000010
+
+// MH_ARBITER_CONFIG
+#define MH_ARBITER_CONFIG__SAME_PAGE_LIMIT__SHIFT 0x00000000
+#define MH_ARBITER_CONFIG__SAME_PAGE_GRANULARITY__SHIFT 0x00000006
+#define MH_ARBITER_CONFIG__L1_ARB_ENABLE__SHIFT 0x00000007
+#define MH_ARBITER_CONFIG__L1_ARB_HOLD_ENABLE__SHIFT 0x00000008
+#define MH_ARBITER_CONFIG__L2_ARB_CONTROL__SHIFT 0x00000009
+#define MH_ARBITER_CONFIG__PAGE_SIZE__SHIFT 0x0000000a
+#define MH_ARBITER_CONFIG__TC_REORDER_ENABLE__SHIFT 0x0000000d
+#define MH_ARBITER_CONFIG__TC_ARB_HOLD_ENABLE__SHIFT 0x0000000e
+#define MH_ARBITER_CONFIG__IN_FLIGHT_LIMIT_ENABLE__SHIFT 0x0000000f
+#define MH_ARBITER_CONFIG__IN_FLIGHT_LIMIT__SHIFT 0x00000010
+#define MH_ARBITER_CONFIG__CP_CLNT_ENABLE__SHIFT 0x00000016
+#define MH_ARBITER_CONFIG__VGT_CLNT_ENABLE__SHIFT 0x00000017
+#define MH_ARBITER_CONFIG__TC_CLNT_ENABLE__SHIFT 0x00000018
+#define MH_ARBITER_CONFIG__RB_CLNT_ENABLE__SHIFT 0x00000019
+
+// MH_CLNT_AXI_ID_REUSE
+#define MH_CLNT_AXI_ID_REUSE__CPw_ID__SHIFT 0x00000000
+#define MH_CLNT_AXI_ID_REUSE__RESERVED1__SHIFT 0x00000003
+#define MH_CLNT_AXI_ID_REUSE__RBw_ID__SHIFT 0x00000004
+#define MH_CLNT_AXI_ID_REUSE__RESERVED2__SHIFT 0x00000007
+#define MH_CLNT_AXI_ID_REUSE__MMUr_ID__SHIFT 0x00000008
+
+// MH_INTERRUPT_MASK
+#define MH_INTERRUPT_MASK__AXI_READ_ERROR__SHIFT 0x00000000
+#define MH_INTERRUPT_MASK__AXI_WRITE_ERROR__SHIFT 0x00000001
+#define MH_INTERRUPT_MASK__MMU_PAGE_FAULT__SHIFT 0x00000002
+
+// MH_INTERRUPT_STATUS
+#define MH_INTERRUPT_STATUS__AXI_READ_ERROR__SHIFT 0x00000000
+#define MH_INTERRUPT_STATUS__AXI_WRITE_ERROR__SHIFT 0x00000001
+#define MH_INTERRUPT_STATUS__MMU_PAGE_FAULT__SHIFT 0x00000002
+
+// MH_INTERRUPT_CLEAR
+#define MH_INTERRUPT_CLEAR__AXI_READ_ERROR__SHIFT 0x00000000
+#define MH_INTERRUPT_CLEAR__AXI_WRITE_ERROR__SHIFT 0x00000001
+#define MH_INTERRUPT_CLEAR__MMU_PAGE_FAULT__SHIFT 0x00000002
+
+// MH_AXI_ERROR
+#define MH_AXI_ERROR__AXI_READ_ID__SHIFT 0x00000000
+#define MH_AXI_ERROR__AXI_READ_ERROR__SHIFT 0x00000003
+#define MH_AXI_ERROR__AXI_WRITE_ID__SHIFT 0x00000004
+#define MH_AXI_ERROR__AXI_WRITE_ERROR__SHIFT 0x00000007
+
+// MH_PERFCOUNTER0_SELECT
+#define MH_PERFCOUNTER0_SELECT__PERF_SEL__SHIFT 0x00000000
+
+// MH_PERFCOUNTER1_SELECT
+#define MH_PERFCOUNTER1_SELECT__PERF_SEL__SHIFT 0x00000000
+
+// MH_PERFCOUNTER0_CONFIG
+#define MH_PERFCOUNTER0_CONFIG__N_VALUE__SHIFT 0x00000000
+
+// MH_PERFCOUNTER1_CONFIG
+#define MH_PERFCOUNTER1_CONFIG__N_VALUE__SHIFT 0x00000000
+
+// MH_PERFCOUNTER0_LOW
+#define MH_PERFCOUNTER0_LOW__PERF_COUNTER_LOW__SHIFT 0x00000000
+
+// MH_PERFCOUNTER1_LOW
+#define MH_PERFCOUNTER1_LOW__PERF_COUNTER_LOW__SHIFT 0x00000000
+
+// MH_PERFCOUNTER0_HI
+#define MH_PERFCOUNTER0_HI__PERF_COUNTER_HI__SHIFT 0x00000000
+
+// MH_PERFCOUNTER1_HI
+#define MH_PERFCOUNTER1_HI__PERF_COUNTER_HI__SHIFT 0x00000000
+
+// MH_DEBUG_CTRL
+#define MH_DEBUG_CTRL__INDEX__SHIFT 0x00000000
+
+// MH_DEBUG_DATA
+#define MH_DEBUG_DATA__DATA__SHIFT 0x00000000
+
+// MH_DEBUG_REG00
+#define MH_DEBUG_REG00__MH_BUSY__SHIFT 0x00000000
+#define MH_DEBUG_REG00__TRANS_OUTSTANDING__SHIFT 0x00000001
+#define MH_DEBUG_REG00__CP_REQUEST__SHIFT 0x00000002
+#define MH_DEBUG_REG00__VGT_REQUEST__SHIFT 0x00000003
+#define MH_DEBUG_REG00__TC_REQUEST__SHIFT 0x00000004
+#define MH_DEBUG_REG00__TC_CAM_EMPTY__SHIFT 0x00000005
+#define MH_DEBUG_REG00__TC_CAM_FULL__SHIFT 0x00000006
+#define MH_DEBUG_REG00__TCD_EMPTY__SHIFT 0x00000007
+#define MH_DEBUG_REG00__TCD_FULL__SHIFT 0x00000008
+#define MH_DEBUG_REG00__RB_REQUEST__SHIFT 0x00000009
+#define MH_DEBUG_REG00__MH_CLK_EN_STATE__SHIFT 0x0000000a
+#define MH_DEBUG_REG00__ARQ_EMPTY__SHIFT 0x0000000b
+#define MH_DEBUG_REG00__ARQ_FULL__SHIFT 0x0000000c
+#define MH_DEBUG_REG00__WDB_EMPTY__SHIFT 0x0000000d
+#define MH_DEBUG_REG00__WDB_FULL__SHIFT 0x0000000e
+#define MH_DEBUG_REG00__AXI_AVALID__SHIFT 0x0000000f
+#define MH_DEBUG_REG00__AXI_AREADY__SHIFT 0x00000010
+#define MH_DEBUG_REG00__AXI_ARVALID__SHIFT 0x00000011
+#define MH_DEBUG_REG00__AXI_ARREADY__SHIFT 0x00000012
+#define MH_DEBUG_REG00__AXI_WVALID__SHIFT 0x00000013
+#define MH_DEBUG_REG00__AXI_WREADY__SHIFT 0x00000014
+#define MH_DEBUG_REG00__AXI_RVALID__SHIFT 0x00000015
+#define MH_DEBUG_REG00__AXI_RREADY__SHIFT 0x00000016
+#define MH_DEBUG_REG00__AXI_BVALID__SHIFT 0x00000017
+#define MH_DEBUG_REG00__AXI_BREADY__SHIFT 0x00000018
+#define MH_DEBUG_REG00__AXI_HALT_REQ__SHIFT 0x00000019
+#define MH_DEBUG_REG00__AXI_HALT_ACK__SHIFT 0x0000001a
+
+// MH_DEBUG_REG01
+#define MH_DEBUG_REG01__CP_SEND_q__SHIFT 0x00000000
+#define MH_DEBUG_REG01__CP_RTR_q__SHIFT 0x00000001
+#define MH_DEBUG_REG01__CP_WRITE_q__SHIFT 0x00000002
+#define MH_DEBUG_REG01__CP_TAG_q__SHIFT 0x00000003
+#define MH_DEBUG_REG01__CP_BE_q__SHIFT 0x00000006
+#define MH_DEBUG_REG01__VGT_SEND_q__SHIFT 0x0000000e
+#define MH_DEBUG_REG01__VGT_RTR_q__SHIFT 0x0000000f
+#define MH_DEBUG_REG01__VGT_TAG_q__SHIFT 0x00000010
+#define MH_DEBUG_REG01__TC_SEND_q__SHIFT 0x00000011
+#define MH_DEBUG_REG01__TC_RTR_q__SHIFT 0x00000012
+#define MH_DEBUG_REG01__TC_ROQ_SEND_q__SHIFT 0x00000013
+#define MH_DEBUG_REG01__TC_ROQ_RTR_q__SHIFT 0x00000014
+#define MH_DEBUG_REG01__TC_MH_written__SHIFT 0x00000015
+#define MH_DEBUG_REG01__RB_SEND_q__SHIFT 0x00000016
+#define MH_DEBUG_REG01__RB_RTR_q__SHIFT 0x00000017
+#define MH_DEBUG_REG01__RB_BE_q__SHIFT 0x00000018
+
+// MH_DEBUG_REG02
+#define MH_DEBUG_REG02__MH_CP_grb_send__SHIFT 0x00000000
+#define MH_DEBUG_REG02__MH_VGT_grb_send__SHIFT 0x00000001
+#define MH_DEBUG_REG02__MH_TC_mcsend__SHIFT 0x00000002
+#define MH_DEBUG_REG02__MH_CLNT_rlast__SHIFT 0x00000003
+#define MH_DEBUG_REG02__MH_CLNT_tag__SHIFT 0x00000004
+#define MH_DEBUG_REG02__RDC_RID__SHIFT 0x00000007
+#define MH_DEBUG_REG02__RDC_RRESP__SHIFT 0x0000000a
+#define MH_DEBUG_REG02__MH_CP_writeclean__SHIFT 0x0000000c
+#define MH_DEBUG_REG02__MH_RB_writeclean__SHIFT 0x0000000d
+#define MH_DEBUG_REG02__BRC_BID__SHIFT 0x0000000e
+#define MH_DEBUG_REG02__BRC_BRESP__SHIFT 0x00000011
+
+// MH_DEBUG_REG03
+#define MH_DEBUG_REG03__MH_CLNT_data_31_0__SHIFT 0x00000000
+
+// MH_DEBUG_REG04
+#define MH_DEBUG_REG04__MH_CLNT_data_63_32__SHIFT 0x00000000
+
+// MH_DEBUG_REG05
+#define MH_DEBUG_REG05__CP_MH_send__SHIFT 0x00000000
+#define MH_DEBUG_REG05__CP_MH_write__SHIFT 0x00000001
+#define MH_DEBUG_REG05__CP_MH_tag__SHIFT 0x00000002
+#define MH_DEBUG_REG05__CP_MH_ad_31_5__SHIFT 0x00000005
+
+// MH_DEBUG_REG06
+#define MH_DEBUG_REG06__CP_MH_data_31_0__SHIFT 0x00000000
+
+// MH_DEBUG_REG07
+#define MH_DEBUG_REG07__CP_MH_data_63_32__SHIFT 0x00000000
+
+// MH_DEBUG_REG08
+#define MH_DEBUG_REG08__ALWAYS_ZERO__SHIFT 0x00000000
+#define MH_DEBUG_REG08__VGT_MH_send__SHIFT 0x00000003
+#define MH_DEBUG_REG08__VGT_MH_tagbe__SHIFT 0x00000004
+#define MH_DEBUG_REG08__VGT_MH_ad_31_5__SHIFT 0x00000005
+
+// MH_DEBUG_REG09
+#define MH_DEBUG_REG09__ALWAYS_ZERO__SHIFT 0x00000000
+#define MH_DEBUG_REG09__TC_MH_send__SHIFT 0x00000002
+#define MH_DEBUG_REG09__TC_MH_mask__SHIFT 0x00000003
+#define MH_DEBUG_REG09__TC_MH_addr_31_5__SHIFT 0x00000005
+
+// MH_DEBUG_REG10
+#define MH_DEBUG_REG10__TC_MH_info__SHIFT 0x00000000
+#define MH_DEBUG_REG10__TC_MH_send__SHIFT 0x00000019
+
+// MH_DEBUG_REG11
+#define MH_DEBUG_REG11__MH_TC_mcinfo__SHIFT 0x00000000
+#define MH_DEBUG_REG11__MH_TC_mcinfo_send__SHIFT 0x00000019
+#define MH_DEBUG_REG11__TC_MH_written__SHIFT 0x0000001a
+
+// MH_DEBUG_REG12
+#define MH_DEBUG_REG12__ALWAYS_ZERO__SHIFT 0x00000000
+#define MH_DEBUG_REG12__TC_ROQ_SEND__SHIFT 0x00000002
+#define MH_DEBUG_REG12__TC_ROQ_MASK__SHIFT 0x00000003
+#define MH_DEBUG_REG12__TC_ROQ_ADDR_31_5__SHIFT 0x00000005
+
+// MH_DEBUG_REG13
+#define MH_DEBUG_REG13__TC_ROQ_INFO__SHIFT 0x00000000
+#define MH_DEBUG_REG13__TC_ROQ_SEND__SHIFT 0x00000019
+
+// MH_DEBUG_REG14
+#define MH_DEBUG_REG14__ALWAYS_ZERO__SHIFT 0x00000000
+#define MH_DEBUG_REG14__RB_MH_send__SHIFT 0x00000004
+#define MH_DEBUG_REG14__RB_MH_addr_31_5__SHIFT 0x00000005
+
+// MH_DEBUG_REG15
+#define MH_DEBUG_REG15__RB_MH_data_31_0__SHIFT 0x00000000
+
+// MH_DEBUG_REG16
+#define MH_DEBUG_REG16__RB_MH_data_63_32__SHIFT 0x00000000
+
+// MH_DEBUG_REG17
+#define MH_DEBUG_REG17__AVALID_q__SHIFT 0x00000000
+#define MH_DEBUG_REG17__AREADY_q__SHIFT 0x00000001
+#define MH_DEBUG_REG17__AID_q__SHIFT 0x00000002
+#define MH_DEBUG_REG17__ALEN_q_2_0__SHIFT 0x00000005
+#define MH_DEBUG_REG17__ARVALID_q__SHIFT 0x00000008
+#define MH_DEBUG_REG17__ARREADY_q__SHIFT 0x00000009
+#define MH_DEBUG_REG17__ARID_q__SHIFT 0x0000000a
+#define MH_DEBUG_REG17__ARLEN_q_1_0__SHIFT 0x0000000d
+#define MH_DEBUG_REG17__RVALID_q__SHIFT 0x0000000f
+#define MH_DEBUG_REG17__RREADY_q__SHIFT 0x00000010
+#define MH_DEBUG_REG17__RLAST_q__SHIFT 0x00000011
+#define MH_DEBUG_REG17__RID_q__SHIFT 0x00000012
+#define MH_DEBUG_REG17__WVALID_q__SHIFT 0x00000015
+#define MH_DEBUG_REG17__WREADY_q__SHIFT 0x00000016
+#define MH_DEBUG_REG17__WLAST_q__SHIFT 0x00000017
+#define MH_DEBUG_REG17__WID_q__SHIFT 0x00000018
+#define MH_DEBUG_REG17__BVALID_q__SHIFT 0x0000001b
+#define MH_DEBUG_REG17__BREADY_q__SHIFT 0x0000001c
+#define MH_DEBUG_REG17__BID_q__SHIFT 0x0000001d
+
+// MH_DEBUG_REG18
+#define MH_DEBUG_REG18__AVALID_q__SHIFT 0x00000000
+#define MH_DEBUG_REG18__AREADY_q__SHIFT 0x00000001
+#define MH_DEBUG_REG18__AID_q__SHIFT 0x00000002
+#define MH_DEBUG_REG18__ALEN_q_1_0__SHIFT 0x00000005
+#define MH_DEBUG_REG18__ARVALID_q__SHIFT 0x00000007
+#define MH_DEBUG_REG18__ARREADY_q__SHIFT 0x00000008
+#define MH_DEBUG_REG18__ARID_q__SHIFT 0x00000009
+#define MH_DEBUG_REG18__ARLEN_q_1_1__SHIFT 0x0000000c
+#define MH_DEBUG_REG18__WVALID_q__SHIFT 0x0000000d
+#define MH_DEBUG_REG18__WREADY_q__SHIFT 0x0000000e
+#define MH_DEBUG_REG18__WLAST_q__SHIFT 0x0000000f
+#define MH_DEBUG_REG18__WID_q__SHIFT 0x00000010
+#define MH_DEBUG_REG18__WSTRB_q__SHIFT 0x00000013
+#define MH_DEBUG_REG18__BVALID_q__SHIFT 0x0000001b
+#define MH_DEBUG_REG18__BREADY_q__SHIFT 0x0000001c
+#define MH_DEBUG_REG18__BID_q__SHIFT 0x0000001d
+
+// MH_DEBUG_REG19
+#define MH_DEBUG_REG19__ARC_CTRL_RE_q__SHIFT 0x00000000
+#define MH_DEBUG_REG19__CTRL_ARC_ID__SHIFT 0x00000001
+#define MH_DEBUG_REG19__CTRL_ARC_PAD__SHIFT 0x00000004
+
+// MH_DEBUG_REG20
+#define MH_DEBUG_REG20__ALWAYS_ZERO__SHIFT 0x00000000
+#define MH_DEBUG_REG20__REG_A__SHIFT 0x00000002
+#define MH_DEBUG_REG20__REG_RE__SHIFT 0x00000010
+#define MH_DEBUG_REG20__REG_WE__SHIFT 0x00000011
+#define MH_DEBUG_REG20__BLOCK_RS__SHIFT 0x00000012
+
+// MH_DEBUG_REG21
+#define MH_DEBUG_REG21__REG_WD__SHIFT 0x00000000
+
+// MH_DEBUG_REG22
+#define MH_DEBUG_REG22__CIB_MH_axi_halt_req__SHIFT 0x00000000
+#define MH_DEBUG_REG22__MH_CIB_axi_halt_ack__SHIFT 0x00000001
+#define MH_DEBUG_REG22__MH_RBBM_busy__SHIFT 0x00000002
+#define MH_DEBUG_REG22__MH_CIB_mh_clk_en_int__SHIFT 0x00000003
+#define MH_DEBUG_REG22__MH_CIB_mmu_clk_en_int__SHIFT 0x00000004
+#define MH_DEBUG_REG22__MH_CIB_tcroq_clk_en_int__SHIFT 0x00000005
+#define MH_DEBUG_REG22__GAT_CLK_ENA__SHIFT 0x00000006
+#define MH_DEBUG_REG22__AXI_RDY_ENA__SHIFT 0x00000007
+#define MH_DEBUG_REG22__RBBM_MH_clk_en_override__SHIFT 0x00000008
+#define MH_DEBUG_REG22__CNT_q__SHIFT 0x00000009
+#define MH_DEBUG_REG22__TCD_EMPTY_q__SHIFT 0x0000000f
+#define MH_DEBUG_REG22__TC_ROQ_EMPTY__SHIFT 0x00000010
+#define MH_DEBUG_REG22__MH_BUSY_d__SHIFT 0x00000011
+#define MH_DEBUG_REG22__ANY_CLNT_BUSY__SHIFT 0x00000012
+#define MH_DEBUG_REG22__MH_MMU_INVALIDATE_INVALIDATE_ALL__SHIFT 0x00000013
+#define MH_DEBUG_REG22__CP_SEND_q__SHIFT 0x00000014
+#define MH_DEBUG_REG22__CP_RTR_q__SHIFT 0x00000015
+#define MH_DEBUG_REG22__VGT_SEND_q__SHIFT 0x00000016
+#define MH_DEBUG_REG22__VGT_RTR_q__SHIFT 0x00000017
+#define MH_DEBUG_REG22__TC_ROQ_SEND_q__SHIFT 0x00000018
+#define MH_DEBUG_REG22__TC_ROQ_RTR_q__SHIFT 0x00000019
+#define MH_DEBUG_REG22__RB_SEND_q__SHIFT 0x0000001a
+#define MH_DEBUG_REG22__RB_RTR_q__SHIFT 0x0000001b
+#define MH_DEBUG_REG22__RDC_VALID__SHIFT 0x0000001c
+#define MH_DEBUG_REG22__RDC_RLAST__SHIFT 0x0000001d
+#define MH_DEBUG_REG22__TLBMISS_VALID__SHIFT 0x0000001e
+#define MH_DEBUG_REG22__BRC_VALID__SHIFT 0x0000001f
+
+// MH_DEBUG_REG23
+#define MH_DEBUG_REG23__EFF2_FP_WINNER__SHIFT 0x00000000
+#define MH_DEBUG_REG23__EFF2_LRU_WINNER_out__SHIFT 0x00000003
+#define MH_DEBUG_REG23__EFF1_WINNER__SHIFT 0x00000006
+#define MH_DEBUG_REG23__ARB_WINNER__SHIFT 0x00000009
+#define MH_DEBUG_REG23__ARB_WINNER_q__SHIFT 0x0000000c
+#define MH_DEBUG_REG23__EFF1_WIN__SHIFT 0x0000000f
+#define MH_DEBUG_REG23__KILL_EFF1__SHIFT 0x00000010
+#define MH_DEBUG_REG23__ARB_HOLD__SHIFT 0x00000011
+#define MH_DEBUG_REG23__ARB_RTR_q__SHIFT 0x00000012
+#define MH_DEBUG_REG23__CP_SEND_QUAL__SHIFT 0x00000013
+#define MH_DEBUG_REG23__VGT_SEND_QUAL__SHIFT 0x00000014
+#define MH_DEBUG_REG23__TC_SEND_QUAL__SHIFT 0x00000015
+#define MH_DEBUG_REG23__TC_SEND_EFF1_QUAL__SHIFT 0x00000016
+#define MH_DEBUG_REG23__RB_SEND_QUAL__SHIFT 0x00000017
+#define MH_DEBUG_REG23__ARB_QUAL__SHIFT 0x00000018
+#define MH_DEBUG_REG23__CP_EFF1_REQ__SHIFT 0x00000019
+#define MH_DEBUG_REG23__VGT_EFF1_REQ__SHIFT 0x0000001a
+#define MH_DEBUG_REG23__TC_EFF1_REQ__SHIFT 0x0000001b
+#define MH_DEBUG_REG23__RB_EFF1_REQ__SHIFT 0x0000001c
+#define MH_DEBUG_REG23__ANY_SAME_ROW_BANK__SHIFT 0x0000001d
+#define MH_DEBUG_REG23__TCD_NEARFULL_q__SHIFT 0x0000001e
+#define MH_DEBUG_REG23__TCHOLD_IP_q__SHIFT 0x0000001f
+
+// MH_DEBUG_REG24
+#define MH_DEBUG_REG24__EFF1_WINNER__SHIFT 0x00000000
+#define MH_DEBUG_REG24__ARB_WINNER__SHIFT 0x00000003
+#define MH_DEBUG_REG24__CP_SEND_QUAL__SHIFT 0x00000006
+#define MH_DEBUG_REG24__VGT_SEND_QUAL__SHIFT 0x00000007
+#define MH_DEBUG_REG24__TC_SEND_QUAL__SHIFT 0x00000008
+#define MH_DEBUG_REG24__TC_SEND_EFF1_QUAL__SHIFT 0x00000009
+#define MH_DEBUG_REG24__RB_SEND_QUAL__SHIFT 0x0000000a
+#define MH_DEBUG_REG24__ARB_QUAL__SHIFT 0x0000000b
+#define MH_DEBUG_REG24__CP_EFF1_REQ__SHIFT 0x0000000c
+#define MH_DEBUG_REG24__VGT_EFF1_REQ__SHIFT 0x0000000d
+#define MH_DEBUG_REG24__TC_EFF1_REQ__SHIFT 0x0000000e
+#define MH_DEBUG_REG24__RB_EFF1_REQ__SHIFT 0x0000000f
+#define MH_DEBUG_REG24__EFF1_WIN__SHIFT 0x00000010
+#define MH_DEBUG_REG24__KILL_EFF1__SHIFT 0x00000011
+#define MH_DEBUG_REG24__TCD_NEARFULL_q__SHIFT 0x00000012
+#define MH_DEBUG_REG24__TC_ARB_HOLD__SHIFT 0x00000013
+#define MH_DEBUG_REG24__ARB_HOLD__SHIFT 0x00000014
+#define MH_DEBUG_REG24__ARB_RTR_q__SHIFT 0x00000015
+#define MH_DEBUG_REG24__SAME_PAGE_LIMIT_COUNT_q__SHIFT 0x00000016
+
+// MH_DEBUG_REG25
+#define MH_DEBUG_REG25__EFF2_LRU_WINNER_out__SHIFT 0x00000000
+#define MH_DEBUG_REG25__ARB_WINNER__SHIFT 0x00000003
+#define MH_DEBUG_REG25__LEAST_RECENT_INDEX_d__SHIFT 0x00000006
+#define MH_DEBUG_REG25__LEAST_RECENT_d__SHIFT 0x00000009
+#define MH_DEBUG_REG25__UPDATE_RECENT_STACK_d__SHIFT 0x0000000c
+#define MH_DEBUG_REG25__ARB_HOLD__SHIFT 0x0000000d
+#define MH_DEBUG_REG25__ARB_RTR_q__SHIFT 0x0000000e
+#define MH_DEBUG_REG25__EFF1_WIN__SHIFT 0x0000000f
+#define MH_DEBUG_REG25__CLNT_REQ__SHIFT 0x00000010
+#define MH_DEBUG_REG25__RECENT_d_0__SHIFT 0x00000014
+#define MH_DEBUG_REG25__RECENT_d_1__SHIFT 0x00000017
+#define MH_DEBUG_REG25__RECENT_d_2__SHIFT 0x0000001a
+#define MH_DEBUG_REG25__RECENT_d_3__SHIFT 0x0000001d
+
+// MH_DEBUG_REG26
+#define MH_DEBUG_REG26__TC_ARB_HOLD__SHIFT 0x00000000
+#define MH_DEBUG_REG26__TC_NOROQ_SAME_ROW_BANK__SHIFT 0x00000001
+#define MH_DEBUG_REG26__TC_ROQ_SAME_ROW_BANK__SHIFT 0x00000002
+#define MH_DEBUG_REG26__TCD_NEARFULL_q__SHIFT 0x00000003
+#define MH_DEBUG_REG26__TCHOLD_IP_q__SHIFT 0x00000004
+#define MH_DEBUG_REG26__TCHOLD_CNT_q__SHIFT 0x00000005
+#define MH_DEBUG_REG26__MH_ARBITER_CONFIG_TC_REORDER_ENABLE__SHIFT 0x00000008
+#define MH_DEBUG_REG26__TC_ROQ_RTR_DBG_q__SHIFT 0x00000009
+#define MH_DEBUG_REG26__TC_ROQ_SEND_q__SHIFT 0x0000000a
+#define MH_DEBUG_REG26__TC_MH_written__SHIFT 0x0000000b
+#define MH_DEBUG_REG26__TCD_FULLNESS_CNT_q__SHIFT 0x0000000c
+#define MH_DEBUG_REG26__WBURST_ACTIVE__SHIFT 0x00000013
+#define MH_DEBUG_REG26__WLAST_q__SHIFT 0x00000014
+#define MH_DEBUG_REG26__WBURST_IP_q__SHIFT 0x00000015
+#define MH_DEBUG_REG26__WBURST_CNT_q__SHIFT 0x00000016
+#define MH_DEBUG_REG26__CP_SEND_QUAL__SHIFT 0x00000019
+#define MH_DEBUG_REG26__CP_MH_write__SHIFT 0x0000001a
+#define MH_DEBUG_REG26__RB_SEND_QUAL__SHIFT 0x0000001b
+#define MH_DEBUG_REG26__ARB_WINNER__SHIFT 0x0000001c
+
+// MH_DEBUG_REG27
+#define MH_DEBUG_REG27__RF_ARBITER_CONFIG_q__SHIFT 0x00000000
+#define MH_DEBUG_REG27__MH_CLNT_AXI_ID_REUSE_MMUr_ID__SHIFT 0x0000001a
+
+// MH_DEBUG_REG28
+#define MH_DEBUG_REG28__SAME_ROW_BANK_q__SHIFT 0x00000000
+#define MH_DEBUG_REG28__ROQ_MARK_q__SHIFT 0x00000008
+#define MH_DEBUG_REG28__ROQ_VALID_q__SHIFT 0x00000010
+#define MH_DEBUG_REG28__TC_MH_send__SHIFT 0x00000018
+#define MH_DEBUG_REG28__TC_ROQ_RTR_q__SHIFT 0x00000019
+#define MH_DEBUG_REG28__KILL_EFF1__SHIFT 0x0000001a
+#define MH_DEBUG_REG28__TC_ROQ_SAME_ROW_BANK_SEL__SHIFT 0x0000001b
+#define MH_DEBUG_REG28__ANY_SAME_ROW_BANK__SHIFT 0x0000001c
+#define MH_DEBUG_REG28__TC_EFF1_QUAL__SHIFT 0x0000001d
+#define MH_DEBUG_REG28__TC_ROQ_EMPTY__SHIFT 0x0000001e
+#define MH_DEBUG_REG28__TC_ROQ_FULL__SHIFT 0x0000001f
+
+// MH_DEBUG_REG29
+#define MH_DEBUG_REG29__SAME_ROW_BANK_q__SHIFT 0x00000000
+#define MH_DEBUG_REG29__ROQ_MARK_d__SHIFT 0x00000008
+#define MH_DEBUG_REG29__ROQ_VALID_d__SHIFT 0x00000010
+#define MH_DEBUG_REG29__TC_MH_send__SHIFT 0x00000018
+#define MH_DEBUG_REG29__TC_ROQ_RTR_q__SHIFT 0x00000019
+#define MH_DEBUG_REG29__KILL_EFF1__SHIFT 0x0000001a
+#define MH_DEBUG_REG29__TC_ROQ_SAME_ROW_BANK_SEL__SHIFT 0x0000001b
+#define MH_DEBUG_REG29__ANY_SAME_ROW_BANK__SHIFT 0x0000001c
+#define MH_DEBUG_REG29__TC_EFF1_QUAL__SHIFT 0x0000001d
+#define MH_DEBUG_REG29__TC_ROQ_EMPTY__SHIFT 0x0000001e
+#define MH_DEBUG_REG29__TC_ROQ_FULL__SHIFT 0x0000001f
+
+// MH_DEBUG_REG30
+#define MH_DEBUG_REG30__SAME_ROW_BANK_WIN__SHIFT 0x00000000
+#define MH_DEBUG_REG30__SAME_ROW_BANK_REQ__SHIFT 0x00000008
+#define MH_DEBUG_REG30__NON_SAME_ROW_BANK_WIN__SHIFT 0x00000010
+#define MH_DEBUG_REG30__NON_SAME_ROW_BANK_REQ__SHIFT 0x00000018
+
+// MH_DEBUG_REG31
+#define MH_DEBUG_REG31__TC_MH_send__SHIFT 0x00000000
+#define MH_DEBUG_REG31__TC_ROQ_RTR_q__SHIFT 0x00000001
+#define MH_DEBUG_REG31__ROQ_MARK_q_0__SHIFT 0x00000002
+#define MH_DEBUG_REG31__ROQ_VALID_q_0__SHIFT 0x00000003
+#define MH_DEBUG_REG31__SAME_ROW_BANK_q_0__SHIFT 0x00000004
+#define MH_DEBUG_REG31__ROQ_ADDR_0__SHIFT 0x00000005
+
+// MH_DEBUG_REG32
+#define MH_DEBUG_REG32__TC_MH_send__SHIFT 0x00000000
+#define MH_DEBUG_REG32__TC_ROQ_RTR_q__SHIFT 0x00000001
+#define MH_DEBUG_REG32__ROQ_MARK_q_1__SHIFT 0x00000002
+#define MH_DEBUG_REG32__ROQ_VALID_q_1__SHIFT 0x00000003
+#define MH_DEBUG_REG32__SAME_ROW_BANK_q_1__SHIFT 0x00000004
+#define MH_DEBUG_REG32__ROQ_ADDR_1__SHIFT 0x00000005
+
+// MH_DEBUG_REG33
+#define MH_DEBUG_REG33__TC_MH_send__SHIFT 0x00000000
+#define MH_DEBUG_REG33__TC_ROQ_RTR_q__SHIFT 0x00000001
+#define MH_DEBUG_REG33__ROQ_MARK_q_2__SHIFT 0x00000002
+#define MH_DEBUG_REG33__ROQ_VALID_q_2__SHIFT 0x00000003
+#define MH_DEBUG_REG33__SAME_ROW_BANK_q_2__SHIFT 0x00000004
+#define MH_DEBUG_REG33__ROQ_ADDR_2__SHIFT 0x00000005
+
+// MH_DEBUG_REG34
+#define MH_DEBUG_REG34__TC_MH_send__SHIFT 0x00000000
+#define MH_DEBUG_REG34__TC_ROQ_RTR_q__SHIFT 0x00000001
+#define MH_DEBUG_REG34__ROQ_MARK_q_3__SHIFT 0x00000002
+#define MH_DEBUG_REG34__ROQ_VALID_q_3__SHIFT 0x00000003
+#define MH_DEBUG_REG34__SAME_ROW_BANK_q_3__SHIFT 0x00000004
+#define MH_DEBUG_REG34__ROQ_ADDR_3__SHIFT 0x00000005
+
+// MH_DEBUG_REG35
+#define MH_DEBUG_REG35__TC_MH_send__SHIFT 0x00000000
+#define MH_DEBUG_REG35__TC_ROQ_RTR_q__SHIFT 0x00000001
+#define MH_DEBUG_REG35__ROQ_MARK_q_4__SHIFT 0x00000002
+#define MH_DEBUG_REG35__ROQ_VALID_q_4__SHIFT 0x00000003
+#define MH_DEBUG_REG35__SAME_ROW_BANK_q_4__SHIFT 0x00000004
+#define MH_DEBUG_REG35__ROQ_ADDR_4__SHIFT 0x00000005
+
+// MH_DEBUG_REG36
+#define MH_DEBUG_REG36__TC_MH_send__SHIFT 0x00000000
+#define MH_DEBUG_REG36__TC_ROQ_RTR_q__SHIFT 0x00000001
+#define MH_DEBUG_REG36__ROQ_MARK_q_5__SHIFT 0x00000002
+#define MH_DEBUG_REG36__ROQ_VALID_q_5__SHIFT 0x00000003
+#define MH_DEBUG_REG36__SAME_ROW_BANK_q_5__SHIFT 0x00000004
+#define MH_DEBUG_REG36__ROQ_ADDR_5__SHIFT 0x00000005
+
+// MH_DEBUG_REG37
+#define MH_DEBUG_REG37__TC_MH_send__SHIFT 0x00000000
+#define MH_DEBUG_REG37__TC_ROQ_RTR_q__SHIFT 0x00000001
+#define MH_DEBUG_REG37__ROQ_MARK_q_6__SHIFT 0x00000002
+#define MH_DEBUG_REG37__ROQ_VALID_q_6__SHIFT 0x00000003
+#define MH_DEBUG_REG37__SAME_ROW_BANK_q_6__SHIFT 0x00000004
+#define MH_DEBUG_REG37__ROQ_ADDR_6__SHIFT 0x00000005
+
+// MH_DEBUG_REG38
+#define MH_DEBUG_REG38__TC_MH_send__SHIFT 0x00000000
+#define MH_DEBUG_REG38__TC_ROQ_RTR_q__SHIFT 0x00000001
+#define MH_DEBUG_REG38__ROQ_MARK_q_7__SHIFT 0x00000002
+#define MH_DEBUG_REG38__ROQ_VALID_q_7__SHIFT 0x00000003
+#define MH_DEBUG_REG38__SAME_ROW_BANK_q_7__SHIFT 0x00000004
+#define MH_DEBUG_REG38__ROQ_ADDR_7__SHIFT 0x00000005
+
+// MH_DEBUG_REG39
+#define MH_DEBUG_REG39__ARB_WE__SHIFT 0x00000000
+#define MH_DEBUG_REG39__MMU_RTR__SHIFT 0x00000001
+#define MH_DEBUG_REG39__ARB_ID_q__SHIFT 0x00000002
+#define MH_DEBUG_REG39__ARB_WRITE_q__SHIFT 0x00000005
+#define MH_DEBUG_REG39__ARB_BLEN_q__SHIFT 0x00000006
+#define MH_DEBUG_REG39__ARQ_CTRL_EMPTY__SHIFT 0x00000007
+#define MH_DEBUG_REG39__ARQ_FIFO_CNT_q__SHIFT 0x00000008
+#define MH_DEBUG_REG39__MMU_WE__SHIFT 0x0000000b
+#define MH_DEBUG_REG39__ARQ_RTR__SHIFT 0x0000000c
+#define MH_DEBUG_REG39__MMU_ID__SHIFT 0x0000000d
+#define MH_DEBUG_REG39__MMU_WRITE__SHIFT 0x00000010
+#define MH_DEBUG_REG39__MMU_BLEN__SHIFT 0x00000011
+
+// MH_DEBUG_REG40
+#define MH_DEBUG_REG40__ARB_WE__SHIFT 0x00000000
+#define MH_DEBUG_REG40__ARB_ID_q__SHIFT 0x00000001
+#define MH_DEBUG_REG40__ARB_VAD_q__SHIFT 0x00000004
+
+// MH_DEBUG_REG41
+#define MH_DEBUG_REG41__MMU_WE__SHIFT 0x00000000
+#define MH_DEBUG_REG41__MMU_ID__SHIFT 0x00000001
+#define MH_DEBUG_REG41__MMU_PAD__SHIFT 0x00000004
+
+// MH_DEBUG_REG42
+#define MH_DEBUG_REG42__WDB_WE__SHIFT 0x00000000
+#define MH_DEBUG_REG42__WDB_RTR_SKID__SHIFT 0x00000001
+#define MH_DEBUG_REG42__ARB_WSTRB_q__SHIFT 0x00000002
+#define MH_DEBUG_REG42__ARB_WLAST__SHIFT 0x0000000a
+#define MH_DEBUG_REG42__WDB_CTRL_EMPTY__SHIFT 0x0000000b
+#define MH_DEBUG_REG42__WDB_FIFO_CNT_q__SHIFT 0x0000000c
+#define MH_DEBUG_REG42__WDC_WDB_RE_q__SHIFT 0x00000011
+#define MH_DEBUG_REG42__WDB_WDC_WID__SHIFT 0x00000012
+#define MH_DEBUG_REG42__WDB_WDC_WLAST__SHIFT 0x00000015
+#define MH_DEBUG_REG42__WDB_WDC_WSTRB__SHIFT 0x00000016
+
+// MH_DEBUG_REG43
+#define MH_DEBUG_REG43__ARB_WDATA_q_31_0__SHIFT 0x00000000
+
+// MH_DEBUG_REG44
+#define MH_DEBUG_REG44__ARB_WDATA_q_63_32__SHIFT 0x00000000
+
+// MH_DEBUG_REG45
+#define MH_DEBUG_REG45__WDB_WDC_WDATA_31_0__SHIFT 0x00000000
+
+// MH_DEBUG_REG46
+#define MH_DEBUG_REG46__WDB_WDC_WDATA_63_32__SHIFT 0x00000000
+
+// MH_DEBUG_REG47
+#define MH_DEBUG_REG47__CTRL_ARC_EMPTY__SHIFT 0x00000000
+#define MH_DEBUG_REG47__CTRL_RARC_EMPTY__SHIFT 0x00000001
+#define MH_DEBUG_REG47__ARQ_CTRL_EMPTY__SHIFT 0x00000002
+#define MH_DEBUG_REG47__ARQ_CTRL_WRITE__SHIFT 0x00000003
+#define MH_DEBUG_REG47__TLBMISS_CTRL_RTS__SHIFT 0x00000004
+#define MH_DEBUG_REG47__CTRL_TLBMISS_RE_q__SHIFT 0x00000005
+#define MH_DEBUG_REG47__INFLT_LIMIT_q__SHIFT 0x00000006
+#define MH_DEBUG_REG47__INFLT_LIMIT_CNT_q__SHIFT 0x00000007
+#define MH_DEBUG_REG47__ARC_CTRL_RE_q__SHIFT 0x0000000d
+#define MH_DEBUG_REG47__RARC_CTRL_RE_q__SHIFT 0x0000000e
+#define MH_DEBUG_REG47__RVALID_q__SHIFT 0x0000000f
+#define MH_DEBUG_REG47__RREADY_q__SHIFT 0x00000010
+#define MH_DEBUG_REG47__RLAST_q__SHIFT 0x00000011
+#define MH_DEBUG_REG47__BVALID_q__SHIFT 0x00000012
+#define MH_DEBUG_REG47__BREADY_q__SHIFT 0x00000013
+
+// MH_DEBUG_REG48
+#define MH_DEBUG_REG48__MH_CP_grb_send__SHIFT 0x00000000
+#define MH_DEBUG_REG48__MH_VGT_grb_send__SHIFT 0x00000001
+#define MH_DEBUG_REG48__MH_TC_mcsend__SHIFT 0x00000002
+#define MH_DEBUG_REG48__MH_TLBMISS_SEND__SHIFT 0x00000003
+#define MH_DEBUG_REG48__TLBMISS_VALID__SHIFT 0x00000004
+#define MH_DEBUG_REG48__RDC_VALID__SHIFT 0x00000005
+#define MH_DEBUG_REG48__RDC_RID__SHIFT 0x00000006
+#define MH_DEBUG_REG48__RDC_RLAST__SHIFT 0x00000009
+#define MH_DEBUG_REG48__RDC_RRESP__SHIFT 0x0000000a
+#define MH_DEBUG_REG48__TLBMISS_CTRL_RTS__SHIFT 0x0000000c
+#define MH_DEBUG_REG48__CTRL_TLBMISS_RE_q__SHIFT 0x0000000d
+#define MH_DEBUG_REG48__MMU_ID_REQUEST_q__SHIFT 0x0000000e
+#define MH_DEBUG_REG48__OUTSTANDING_MMUID_CNT_q__SHIFT 0x0000000f
+#define MH_DEBUG_REG48__MMU_ID_RESPONSE__SHIFT 0x00000015
+#define MH_DEBUG_REG48__TLBMISS_RETURN_CNT_q__SHIFT 0x00000016
+#define MH_DEBUG_REG48__CNT_HOLD_q1__SHIFT 0x0000001c
+#define MH_DEBUG_REG48__MH_CLNT_AXI_ID_REUSE_MMUr_ID__SHIFT 0x0000001d
+
+// MH_DEBUG_REG49
+#define MH_DEBUG_REG49__RF_MMU_PAGE_FAULT__SHIFT 0x00000000
+
+// MH_DEBUG_REG50
+#define MH_DEBUG_REG50__RF_MMU_CONFIG_q__SHIFT 0x00000000
+#define MH_DEBUG_REG50__ARB_ID_q__SHIFT 0x00000018
+#define MH_DEBUG_REG50__ARB_WRITE_q__SHIFT 0x0000001b
+#define MH_DEBUG_REG50__client_behavior_q__SHIFT 0x0000001c
+#define MH_DEBUG_REG50__ARB_WE__SHIFT 0x0000001e
+#define MH_DEBUG_REG50__MMU_RTR__SHIFT 0x0000001f
+
+// MH_DEBUG_REG51
+#define MH_DEBUG_REG51__stage1_valid__SHIFT 0x00000000
+#define MH_DEBUG_REG51__IGNORE_TAG_MISS_q__SHIFT 0x00000001
+#define MH_DEBUG_REG51__pa_in_mpu_range__SHIFT 0x00000002
+#define MH_DEBUG_REG51__tag_match_q__SHIFT 0x00000003
+#define MH_DEBUG_REG51__tag_miss_q__SHIFT 0x00000004
+#define MH_DEBUG_REG51__va_in_range_q__SHIFT 0x00000005
+#define MH_DEBUG_REG51__MMU_MISS__SHIFT 0x00000006
+#define MH_DEBUG_REG51__MMU_READ_MISS__SHIFT 0x00000007
+#define MH_DEBUG_REG51__MMU_WRITE_MISS__SHIFT 0x00000008
+#define MH_DEBUG_REG51__MMU_HIT__SHIFT 0x00000009
+#define MH_DEBUG_REG51__MMU_READ_HIT__SHIFT 0x0000000a
+#define MH_DEBUG_REG51__MMU_WRITE_HIT__SHIFT 0x0000000b
+#define MH_DEBUG_REG51__MMU_SPLIT_MODE_TC_MISS__SHIFT 0x0000000c
+#define MH_DEBUG_REG51__MMU_SPLIT_MODE_TC_HIT__SHIFT 0x0000000d
+#define MH_DEBUG_REG51__MMU_SPLIT_MODE_nonTC_MISS__SHIFT 0x0000000e
+#define MH_DEBUG_REG51__MMU_SPLIT_MODE_nonTC_HIT__SHIFT 0x0000000f
+#define MH_DEBUG_REG51__REQ_VA_OFFSET_q__SHIFT 0x00000010
+
+// MH_DEBUG_REG52
+#define MH_DEBUG_REG52__ARQ_RTR__SHIFT 0x00000000
+#define MH_DEBUG_REG52__MMU_WE__SHIFT 0x00000001
+#define MH_DEBUG_REG52__CTRL_TLBMISS_RE_q__SHIFT 0x00000002
+#define MH_DEBUG_REG52__TLBMISS_CTRL_RTS__SHIFT 0x00000003
+#define MH_DEBUG_REG52__MH_TLBMISS_SEND__SHIFT 0x00000004
+#define MH_DEBUG_REG52__MMU_STALL_AWAITING_TLB_MISS_FETCH__SHIFT 0x00000005
+#define MH_DEBUG_REG52__pa_in_mpu_range__SHIFT 0x00000006
+#define MH_DEBUG_REG52__stage1_valid__SHIFT 0x00000007
+#define MH_DEBUG_REG52__stage2_valid__SHIFT 0x00000008
+#define MH_DEBUG_REG52__client_behavior_q__SHIFT 0x00000009
+#define MH_DEBUG_REG52__IGNORE_TAG_MISS_q__SHIFT 0x0000000b
+#define MH_DEBUG_REG52__tag_match_q__SHIFT 0x0000000c
+#define MH_DEBUG_REG52__tag_miss_q__SHIFT 0x0000000d
+#define MH_DEBUG_REG52__va_in_range_q__SHIFT 0x0000000e
+#define MH_DEBUG_REG52__PTE_FETCH_COMPLETE_q__SHIFT 0x0000000f
+#define MH_DEBUG_REG52__TAG_valid_q__SHIFT 0x00000010
+
+// MH_DEBUG_REG53
+#define MH_DEBUG_REG53__TAG0_VA__SHIFT 0x00000000
+#define MH_DEBUG_REG53__TAG_valid_q_0__SHIFT 0x0000000d
+#define MH_DEBUG_REG53__ALWAYS_ZERO__SHIFT 0x0000000e
+#define MH_DEBUG_REG53__TAG1_VA__SHIFT 0x00000010
+#define MH_DEBUG_REG53__TAG_valid_q_1__SHIFT 0x0000001d
+
+// MH_DEBUG_REG54
+#define MH_DEBUG_REG54__TAG2_VA__SHIFT 0x00000000
+#define MH_DEBUG_REG54__TAG_valid_q_2__SHIFT 0x0000000d
+#define MH_DEBUG_REG54__ALWAYS_ZERO__SHIFT 0x0000000e
+#define MH_DEBUG_REG54__TAG3_VA__SHIFT 0x00000010
+#define MH_DEBUG_REG54__TAG_valid_q_3__SHIFT 0x0000001d
+
+// MH_DEBUG_REG55
+#define MH_DEBUG_REG55__TAG4_VA__SHIFT 0x00000000
+#define MH_DEBUG_REG55__TAG_valid_q_4__SHIFT 0x0000000d
+#define MH_DEBUG_REG55__ALWAYS_ZERO__SHIFT 0x0000000e
+#define MH_DEBUG_REG55__TAG5_VA__SHIFT 0x00000010
+#define MH_DEBUG_REG55__TAG_valid_q_5__SHIFT 0x0000001d
+
+// MH_DEBUG_REG56
+#define MH_DEBUG_REG56__TAG6_VA__SHIFT 0x00000000
+#define MH_DEBUG_REG56__TAG_valid_q_6__SHIFT 0x0000000d
+#define MH_DEBUG_REG56__ALWAYS_ZERO__SHIFT 0x0000000e
+#define MH_DEBUG_REG56__TAG7_VA__SHIFT 0x00000010
+#define MH_DEBUG_REG56__TAG_valid_q_7__SHIFT 0x0000001d
+
+// MH_DEBUG_REG57
+#define MH_DEBUG_REG57__TAG8_VA__SHIFT 0x00000000
+#define MH_DEBUG_REG57__TAG_valid_q_8__SHIFT 0x0000000d
+#define MH_DEBUG_REG57__ALWAYS_ZERO__SHIFT 0x0000000e
+#define MH_DEBUG_REG57__TAG9_VA__SHIFT 0x00000010
+#define MH_DEBUG_REG57__TAG_valid_q_9__SHIFT 0x0000001d
+
+// MH_DEBUG_REG58
+#define MH_DEBUG_REG58__TAG10_VA__SHIFT 0x00000000
+#define MH_DEBUG_REG58__TAG_valid_q_10__SHIFT 0x0000000d
+#define MH_DEBUG_REG58__ALWAYS_ZERO__SHIFT 0x0000000e
+#define MH_DEBUG_REG58__TAG11_VA__SHIFT 0x00000010
+#define MH_DEBUG_REG58__TAG_valid_q_11__SHIFT 0x0000001d
+
+// MH_DEBUG_REG59
+#define MH_DEBUG_REG59__TAG12_VA__SHIFT 0x00000000
+#define MH_DEBUG_REG59__TAG_valid_q_12__SHIFT 0x0000000d
+#define MH_DEBUG_REG59__ALWAYS_ZERO__SHIFT 0x0000000e
+#define MH_DEBUG_REG59__TAG13_VA__SHIFT 0x00000010
+#define MH_DEBUG_REG59__TAG_valid_q_13__SHIFT 0x0000001d
+
+// MH_DEBUG_REG60
+#define MH_DEBUG_REG60__TAG14_VA__SHIFT 0x00000000
+#define MH_DEBUG_REG60__TAG_valid_q_14__SHIFT 0x0000000d
+#define MH_DEBUG_REG60__ALWAYS_ZERO__SHIFT 0x0000000e
+#define MH_DEBUG_REG60__TAG15_VA__SHIFT 0x00000010
+#define MH_DEBUG_REG60__TAG_valid_q_15__SHIFT 0x0000001d
+
+// MH_DEBUG_REG61
+#define MH_DEBUG_REG61__MH_DBG_DEFAULT__SHIFT 0x00000000
+
+// MH_DEBUG_REG62
+#define MH_DEBUG_REG62__MH_DBG_DEFAULT__SHIFT 0x00000000
+
+// MH_DEBUG_REG63
+#define MH_DEBUG_REG63__MH_DBG_DEFAULT__SHIFT 0x00000000
+
+// MH_MMU_CONFIG
+#define MH_MMU_CONFIG__MMU_ENABLE__SHIFT 0x00000000
+#define MH_MMU_CONFIG__SPLIT_MODE_ENABLE__SHIFT 0x00000001
+#define MH_MMU_CONFIG__RESERVED1__SHIFT 0x00000002
+#define MH_MMU_CONFIG__RB_W_CLNT_BEHAVIOR__SHIFT 0x00000004
+#define MH_MMU_CONFIG__CP_W_CLNT_BEHAVIOR__SHIFT 0x00000006
+#define MH_MMU_CONFIG__CP_R0_CLNT_BEHAVIOR__SHIFT 0x00000008
+#define MH_MMU_CONFIG__CP_R1_CLNT_BEHAVIOR__SHIFT 0x0000000a
+#define MH_MMU_CONFIG__CP_R2_CLNT_BEHAVIOR__SHIFT 0x0000000c
+#define MH_MMU_CONFIG__CP_R3_CLNT_BEHAVIOR__SHIFT 0x0000000e
+#define MH_MMU_CONFIG__CP_R4_CLNT_BEHAVIOR__SHIFT 0x00000010
+#define MH_MMU_CONFIG__VGT_R0_CLNT_BEHAVIOR__SHIFT 0x00000012
+#define MH_MMU_CONFIG__VGT_R1_CLNT_BEHAVIOR__SHIFT 0x00000014
+#define MH_MMU_CONFIG__TC_R_CLNT_BEHAVIOR__SHIFT 0x00000016
+
+// MH_MMU_VA_RANGE
+#define MH_MMU_VA_RANGE__NUM_64KB_REGIONS__SHIFT 0x00000000
+#define MH_MMU_VA_RANGE__VA_BASE__SHIFT 0x0000000c
+
+// MH_MMU_PT_BASE
+#define MH_MMU_PT_BASE__PT_BASE__SHIFT 0x0000000c
+
+// MH_MMU_PAGE_FAULT
+#define MH_MMU_PAGE_FAULT__PAGE_FAULT__SHIFT 0x00000000
+#define MH_MMU_PAGE_FAULT__OP_TYPE__SHIFT 0x00000001
+#define MH_MMU_PAGE_FAULT__CLNT_BEHAVIOR__SHIFT 0x00000002
+#define MH_MMU_PAGE_FAULT__AXI_ID__SHIFT 0x00000004
+#define MH_MMU_PAGE_FAULT__RESERVED1__SHIFT 0x00000007
+#define MH_MMU_PAGE_FAULT__MPU_ADDRESS_OUT_OF_RANGE__SHIFT 0x00000008
+#define MH_MMU_PAGE_FAULT__ADDRESS_OUT_OF_RANGE__SHIFT 0x00000009
+#define MH_MMU_PAGE_FAULT__READ_PROTECTION_ERROR__SHIFT 0x0000000a
+#define MH_MMU_PAGE_FAULT__WRITE_PROTECTION_ERROR__SHIFT 0x0000000b
+#define MH_MMU_PAGE_FAULT__REQ_VA__SHIFT 0x0000000c
+
+// MH_MMU_TRAN_ERROR
+#define MH_MMU_TRAN_ERROR__TRAN_ERROR__SHIFT 0x00000005
+
+// MH_MMU_INVALIDATE
+#define MH_MMU_INVALIDATE__INVALIDATE_ALL__SHIFT 0x00000000
+#define MH_MMU_INVALIDATE__INVALIDATE_TC__SHIFT 0x00000001
+
+// MH_MMU_MPU_BASE
+#define MH_MMU_MPU_BASE__MPU_BASE__SHIFT 0x0000000c
+
+// MH_MMU_MPU_END
+#define MH_MMU_MPU_END__MPU_END__SHIFT 0x0000000c
+
+// WAIT_UNTIL
+#define WAIT_UNTIL__WAIT_RE_VSYNC__SHIFT 0x00000001
+#define WAIT_UNTIL__WAIT_FE_VSYNC__SHIFT 0x00000002
+#define WAIT_UNTIL__WAIT_VSYNC__SHIFT 0x00000003
+#define WAIT_UNTIL__WAIT_DSPLY_ID0__SHIFT 0x00000004
+#define WAIT_UNTIL__WAIT_DSPLY_ID1__SHIFT 0x00000005
+#define WAIT_UNTIL__WAIT_DSPLY_ID2__SHIFT 0x00000006
+#define WAIT_UNTIL__WAIT_CMDFIFO__SHIFT 0x0000000a
+#define WAIT_UNTIL__WAIT_2D_IDLE__SHIFT 0x0000000e
+#define WAIT_UNTIL__WAIT_3D_IDLE__SHIFT 0x0000000f
+#define WAIT_UNTIL__WAIT_2D_IDLECLEAN__SHIFT 0x00000010
+#define WAIT_UNTIL__WAIT_3D_IDLECLEAN__SHIFT 0x00000011
+#define WAIT_UNTIL__CMDFIFO_ENTRIES__SHIFT 0x00000014
+
+// RBBM_ISYNC_CNTL
+#define RBBM_ISYNC_CNTL__ISYNC_WAIT_IDLEGUI__SHIFT 0x00000004
+#define RBBM_ISYNC_CNTL__ISYNC_CPSCRATCH_IDLEGUI__SHIFT 0x00000005
+
+// RBBM_STATUS
+#define RBBM_STATUS__CMDFIFO_AVAIL__SHIFT 0x00000000
+#define RBBM_STATUS__TC_BUSY__SHIFT 0x00000005
+#define RBBM_STATUS__HIRQ_PENDING__SHIFT 0x00000008
+#define RBBM_STATUS__CPRQ_PENDING__SHIFT 0x00000009
+#define RBBM_STATUS__CFRQ_PENDING__SHIFT 0x0000000a
+#define RBBM_STATUS__PFRQ_PENDING__SHIFT 0x0000000b
+#define RBBM_STATUS__VGT_BUSY_NO_DMA__SHIFT 0x0000000c
+#define RBBM_STATUS__RBBM_WU_BUSY__SHIFT 0x0000000e
+#define RBBM_STATUS__CP_NRT_BUSY__SHIFT 0x00000010
+#define RBBM_STATUS__MH_BUSY__SHIFT 0x00000012
+#define RBBM_STATUS__MH_COHERENCY_BUSY__SHIFT 0x00000013
+#define RBBM_STATUS__SX_BUSY__SHIFT 0x00000015
+#define RBBM_STATUS__TPC_BUSY__SHIFT 0x00000016
+#define RBBM_STATUS__SC_CNTX_BUSY__SHIFT 0x00000018
+#define RBBM_STATUS__PA_BUSY__SHIFT 0x00000019
+#define RBBM_STATUS__VGT_BUSY__SHIFT 0x0000001a
+#define RBBM_STATUS__SQ_CNTX17_BUSY__SHIFT 0x0000001b
+#define RBBM_STATUS__SQ_CNTX0_BUSY__SHIFT 0x0000001c
+#define RBBM_STATUS__RB_CNTX_BUSY__SHIFT 0x0000001e
+#define RBBM_STATUS__GUI_ACTIVE__SHIFT 0x0000001f
+
+// RBBM_DSPLY
+#define RBBM_DSPLY__DISPLAY_ID0_ACTIVE__SHIFT 0x00000000
+#define RBBM_DSPLY__DISPLAY_ID1_ACTIVE__SHIFT 0x00000001
+#define RBBM_DSPLY__DISPLAY_ID2_ACTIVE__SHIFT 0x00000002
+#define RBBM_DSPLY__VSYNC_ACTIVE__SHIFT 0x00000003
+#define RBBM_DSPLY__USE_DISPLAY_ID0__SHIFT 0x00000004
+#define RBBM_DSPLY__USE_DISPLAY_ID1__SHIFT 0x00000005
+#define RBBM_DSPLY__USE_DISPLAY_ID2__SHIFT 0x00000006
+#define RBBM_DSPLY__SW_CNTL__SHIFT 0x00000007
+#define RBBM_DSPLY__NUM_BUFS__SHIFT 0x00000008
+
+// RBBM_RENDER_LATEST
+#define RBBM_RENDER_LATEST__BUFFER_ID__SHIFT 0x00000000
+
+// RBBM_RTL_RELEASE
+#define RBBM_RTL_RELEASE__CHANGELIST__SHIFT 0x00000000
+
+// RBBM_PATCH_RELEASE
+#define RBBM_PATCH_RELEASE__PATCH_REVISION__SHIFT 0x00000000
+#define RBBM_PATCH_RELEASE__PATCH_SELECTION__SHIFT 0x00000010
+#define RBBM_PATCH_RELEASE__CUSTOMER_ID__SHIFT 0x00000018
+
+// RBBM_AUXILIARY_CONFIG
+#define RBBM_AUXILIARY_CONFIG__RESERVED__SHIFT 0x00000000
+
+// RBBM_PERIPHID0
+#define RBBM_PERIPHID0__PARTNUMBER0__SHIFT 0x00000000
+
+// RBBM_PERIPHID1
+#define RBBM_PERIPHID1__PARTNUMBER1__SHIFT 0x00000000
+#define RBBM_PERIPHID1__DESIGNER0__SHIFT 0x00000004
+
+// RBBM_PERIPHID2
+#define RBBM_PERIPHID2__DESIGNER1__SHIFT 0x00000000
+#define RBBM_PERIPHID2__REVISION__SHIFT 0x00000004
+
+// RBBM_PERIPHID3
+#define RBBM_PERIPHID3__RBBM_HOST_INTERFACE__SHIFT 0x00000000
+#define RBBM_PERIPHID3__GARB_SLAVE_INTERFACE__SHIFT 0x00000002
+#define RBBM_PERIPHID3__MH_INTERFACE__SHIFT 0x00000004
+#define RBBM_PERIPHID3__CONTINUATION__SHIFT 0x00000007
+
+// RBBM_CNTL
+#define RBBM_CNTL__READ_TIMEOUT__SHIFT 0x00000000
+#define RBBM_CNTL__REGCLK_DEASSERT_TIME__SHIFT 0x00000008
+
+// RBBM_SKEW_CNTL
+#define RBBM_SKEW_CNTL__SKEW_TOP_THRESHOLD__SHIFT 0x00000000
+#define RBBM_SKEW_CNTL__SKEW_COUNT__SHIFT 0x00000005
+
+// RBBM_SOFT_RESET
+#define RBBM_SOFT_RESET__SOFT_RESET_CP__SHIFT 0x00000000
+#define RBBM_SOFT_RESET__SOFT_RESET_PA__SHIFT 0x00000002
+#define RBBM_SOFT_RESET__SOFT_RESET_MH__SHIFT 0x00000003
+#define RBBM_SOFT_RESET__SOFT_RESET_BC__SHIFT 0x00000004
+#define RBBM_SOFT_RESET__SOFT_RESET_SQ__SHIFT 0x00000005
+#define RBBM_SOFT_RESET__SOFT_RESET_SX__SHIFT 0x00000006
+#define RBBM_SOFT_RESET__SOFT_RESET_CIB__SHIFT 0x0000000c
+#define RBBM_SOFT_RESET__SOFT_RESET_SC__SHIFT 0x0000000f
+#define RBBM_SOFT_RESET__SOFT_RESET_VGT__SHIFT 0x00000010
+
+// RBBM_PM_OVERRIDE1
+#define RBBM_PM_OVERRIDE1__RBBM_AHBCLK_PM_OVERRIDE__SHIFT 0x00000000
+#define RBBM_PM_OVERRIDE1__SC_REG_SCLK_PM_OVERRIDE__SHIFT 0x00000001
+#define RBBM_PM_OVERRIDE1__SC_SCLK_PM_OVERRIDE__SHIFT 0x00000002
+#define RBBM_PM_OVERRIDE1__SP_TOP_SCLK_PM_OVERRIDE__SHIFT 0x00000003
+#define RBBM_PM_OVERRIDE1__SP_V0_SCLK_PM_OVERRIDE__SHIFT 0x00000004
+#define RBBM_PM_OVERRIDE1__SQ_REG_SCLK_PM_OVERRIDE__SHIFT 0x00000005
+#define RBBM_PM_OVERRIDE1__SQ_REG_FIFOS_SCLK_PM_OVERRIDE__SHIFT 0x00000006
+#define RBBM_PM_OVERRIDE1__SQ_CONST_MEM_SCLK_PM_OVERRIDE__SHIFT 0x00000007
+#define RBBM_PM_OVERRIDE1__SQ_SQ_SCLK_PM_OVERRIDE__SHIFT 0x00000008
+#define RBBM_PM_OVERRIDE1__SX_SCLK_PM_OVERRIDE__SHIFT 0x00000009
+#define RBBM_PM_OVERRIDE1__SX_REG_SCLK_PM_OVERRIDE__SHIFT 0x0000000a
+#define RBBM_PM_OVERRIDE1__TCM_TCO_SCLK_PM_OVERRIDE__SHIFT 0x0000000b
+#define RBBM_PM_OVERRIDE1__TCM_TCM_SCLK_PM_OVERRIDE__SHIFT 0x0000000c
+#define RBBM_PM_OVERRIDE1__TCM_TCD_SCLK_PM_OVERRIDE__SHIFT 0x0000000d
+#define RBBM_PM_OVERRIDE1__TCM_REG_SCLK_PM_OVERRIDE__SHIFT 0x0000000e
+#define RBBM_PM_OVERRIDE1__TPC_TPC_SCLK_PM_OVERRIDE__SHIFT 0x0000000f
+#define RBBM_PM_OVERRIDE1__TPC_REG_SCLK_PM_OVERRIDE__SHIFT 0x00000010
+#define RBBM_PM_OVERRIDE1__TCF_TCA_SCLK_PM_OVERRIDE__SHIFT 0x00000011
+#define RBBM_PM_OVERRIDE1__TCF_TCB_SCLK_PM_OVERRIDE__SHIFT 0x00000012
+#define RBBM_PM_OVERRIDE1__TCF_TCB_READ_SCLK_PM_OVERRIDE__SHIFT 0x00000013
+#define RBBM_PM_OVERRIDE1__TP_TP_SCLK_PM_OVERRIDE__SHIFT 0x00000014
+#define RBBM_PM_OVERRIDE1__TP_REG_SCLK_PM_OVERRIDE__SHIFT 0x00000015
+#define RBBM_PM_OVERRIDE1__CP_G_SCLK_PM_OVERRIDE__SHIFT 0x00000016
+#define RBBM_PM_OVERRIDE1__CP_REG_SCLK_PM_OVERRIDE__SHIFT 0x00000017
+#define RBBM_PM_OVERRIDE1__CP_G_REG_SCLK_PM_OVERRIDE__SHIFT 0x00000018
+#define RBBM_PM_OVERRIDE1__SPI_SCLK_PM_OVERRIDE__SHIFT 0x00000019
+#define RBBM_PM_OVERRIDE1__RB_REG_SCLK_PM_OVERRIDE__SHIFT 0x0000001a
+#define RBBM_PM_OVERRIDE1__RB_SCLK_PM_OVERRIDE__SHIFT 0x0000001b
+#define RBBM_PM_OVERRIDE1__MH_MH_SCLK_PM_OVERRIDE__SHIFT 0x0000001c
+#define RBBM_PM_OVERRIDE1__MH_REG_SCLK_PM_OVERRIDE__SHIFT 0x0000001d
+#define RBBM_PM_OVERRIDE1__MH_MMU_SCLK_PM_OVERRIDE__SHIFT 0x0000001e
+#define RBBM_PM_OVERRIDE1__MH_TCROQ_SCLK_PM_OVERRIDE__SHIFT 0x0000001f
+
+// RBBM_PM_OVERRIDE2
+#define RBBM_PM_OVERRIDE2__PA_REG_SCLK_PM_OVERRIDE__SHIFT 0x00000000
+#define RBBM_PM_OVERRIDE2__PA_PA_SCLK_PM_OVERRIDE__SHIFT 0x00000001
+#define RBBM_PM_OVERRIDE2__PA_AG_SCLK_PM_OVERRIDE__SHIFT 0x00000002
+#define RBBM_PM_OVERRIDE2__VGT_REG_SCLK_PM_OVERRIDE__SHIFT 0x00000003
+#define RBBM_PM_OVERRIDE2__VGT_FIFOS_SCLK_PM_OVERRIDE__SHIFT 0x00000004
+#define RBBM_PM_OVERRIDE2__VGT_VGT_SCLK_PM_OVERRIDE__SHIFT 0x00000005
+#define RBBM_PM_OVERRIDE2__DEBUG_PERF_SCLK_PM_OVERRIDE__SHIFT 0x00000006
+#define RBBM_PM_OVERRIDE2__PERM_SCLK_PM_OVERRIDE__SHIFT 0x00000007
+#define RBBM_PM_OVERRIDE2__GC_GA_GMEM0_PM_OVERRIDE__SHIFT 0x00000008
+#define RBBM_PM_OVERRIDE2__GC_GA_GMEM1_PM_OVERRIDE__SHIFT 0x00000009
+#define RBBM_PM_OVERRIDE2__GC_GA_GMEM2_PM_OVERRIDE__SHIFT 0x0000000a
+#define RBBM_PM_OVERRIDE2__GC_GA_GMEM3_PM_OVERRIDE__SHIFT 0x0000000b
+
+// GC_SYS_IDLE
+#define GC_SYS_IDLE__GC_SYS_IDLE_DELAY__SHIFT 0x00000000
+#define GC_SYS_IDLE__GC_SYS_IDLE_OVERRIDE__SHIFT 0x0000001f
+
+// NQWAIT_UNTIL
+#define NQWAIT_UNTIL__WAIT_GUI_IDLE__SHIFT 0x00000000
+
+// RBBM_DEBUG
+#define RBBM_DEBUG__IGNORE_RTR__SHIFT 0x00000001
+#define RBBM_DEBUG__IGNORE_CP_SCHED_WU__SHIFT 0x00000002
+#define RBBM_DEBUG__IGNORE_CP_SCHED_ISYNC__SHIFT 0x00000003
+#define RBBM_DEBUG__IGNORE_CP_SCHED_NQ_HI__SHIFT 0x00000004
+#define RBBM_DEBUG__HYSTERESIS_NRT_GUI_ACTIVE__SHIFT 0x00000008
+#define RBBM_DEBUG__IGNORE_RTR_FOR_HI__SHIFT 0x00000010
+#define RBBM_DEBUG__IGNORE_CP_RBBM_NRTRTR_FOR_HI__SHIFT 0x00000011
+#define RBBM_DEBUG__IGNORE_VGT_RBBM_NRTRTR_FOR_HI__SHIFT 0x00000012
+#define RBBM_DEBUG__IGNORE_SQ_RBBM_NRTRTR_FOR_HI__SHIFT 0x00000013
+#define RBBM_DEBUG__CP_RBBM_NRTRTR__SHIFT 0x00000014
+#define RBBM_DEBUG__VGT_RBBM_NRTRTR__SHIFT 0x00000015
+#define RBBM_DEBUG__SQ_RBBM_NRTRTR__SHIFT 0x00000016
+#define RBBM_DEBUG__CLIENTS_FOR_NRT_RTR_FOR_HI__SHIFT 0x00000017
+#define RBBM_DEBUG__CLIENTS_FOR_NRT_RTR__SHIFT 0x00000018
+#define RBBM_DEBUG__IGNORE_SX_RBBM_BUSY__SHIFT 0x0000001f
+
+// RBBM_READ_ERROR
+#define RBBM_READ_ERROR__READ_ADDRESS__SHIFT 0x00000002
+#define RBBM_READ_ERROR__READ_REQUESTER__SHIFT 0x0000001e
+#define RBBM_READ_ERROR__READ_ERROR__SHIFT 0x0000001f
+
+// RBBM_WAIT_IDLE_CLOCKS
+#define RBBM_WAIT_IDLE_CLOCKS__WAIT_IDLE_CLOCKS_NRT__SHIFT 0x00000000
+
+// RBBM_INT_CNTL
+#define RBBM_INT_CNTL__RDERR_INT_MASK__SHIFT 0x00000000
+#define RBBM_INT_CNTL__DISPLAY_UPDATE_INT_MASK__SHIFT 0x00000001
+#define RBBM_INT_CNTL__GUI_IDLE_INT_MASK__SHIFT 0x00000013
+
+// RBBM_INT_STATUS
+#define RBBM_INT_STATUS__RDERR_INT_STAT__SHIFT 0x00000000
+#define RBBM_INT_STATUS__DISPLAY_UPDATE_INT_STAT__SHIFT 0x00000001
+#define RBBM_INT_STATUS__GUI_IDLE_INT_STAT__SHIFT 0x00000013
+
+// RBBM_INT_ACK
+#define RBBM_INT_ACK__RDERR_INT_ACK__SHIFT 0x00000000
+#define RBBM_INT_ACK__DISPLAY_UPDATE_INT_ACK__SHIFT 0x00000001
+#define RBBM_INT_ACK__GUI_IDLE_INT_ACK__SHIFT 0x00000013
+
+// MASTER_INT_SIGNAL
+#define MASTER_INT_SIGNAL__MH_INT_STAT__SHIFT 0x00000005
+#define MASTER_INT_SIGNAL__CP_INT_STAT__SHIFT 0x0000001e
+#define MASTER_INT_SIGNAL__RBBM_INT_STAT__SHIFT 0x0000001f
+
+// RBBM_PERFCOUNTER1_SELECT
+#define RBBM_PERFCOUNTER1_SELECT__PERF_COUNT1_SEL__SHIFT 0x00000000
+
+// RBBM_PERFCOUNTER1_LO
+#define RBBM_PERFCOUNTER1_LO__PERF_COUNT1_LO__SHIFT 0x00000000
+
+// RBBM_PERFCOUNTER1_HI
+#define RBBM_PERFCOUNTER1_HI__PERF_COUNT1_HI__SHIFT 0x00000000
+
+// CP_RB_BASE
+#define CP_RB_BASE__RB_BASE__SHIFT 0x00000005
+
+// CP_RB_CNTL
+#define CP_RB_CNTL__RB_BUFSZ__SHIFT 0x00000000
+#define CP_RB_CNTL__RB_BLKSZ__SHIFT 0x00000008
+#define CP_RB_CNTL__BUF_SWAP__SHIFT 0x00000010
+#define CP_RB_CNTL__RB_POLL_EN__SHIFT 0x00000014
+#define CP_RB_CNTL__RB_NO_UPDATE__SHIFT 0x0000001b
+#define CP_RB_CNTL__RB_RPTR_WR_ENA__SHIFT 0x0000001f
+
+// CP_RB_RPTR_ADDR
+#define CP_RB_RPTR_ADDR__RB_RPTR_SWAP__SHIFT 0x00000000
+#define CP_RB_RPTR_ADDR__RB_RPTR_ADDR__SHIFT 0x00000002
+
+// CP_RB_RPTR
+#define CP_RB_RPTR__RB_RPTR__SHIFT 0x00000000
+
+// CP_RB_RPTR_WR
+#define CP_RB_RPTR_WR__RB_RPTR_WR__SHIFT 0x00000000
+
+// CP_RB_WPTR
+#define CP_RB_WPTR__RB_WPTR__SHIFT 0x00000000
+
+// CP_RB_WPTR_DELAY
+#define CP_RB_WPTR_DELAY__PRE_WRITE_TIMER__SHIFT 0x00000000
+#define CP_RB_WPTR_DELAY__PRE_WRITE_LIMIT__SHIFT 0x0000001c
+
+// CP_RB_WPTR_BASE
+#define CP_RB_WPTR_BASE__RB_WPTR_SWAP__SHIFT 0x00000000
+#define CP_RB_WPTR_BASE__RB_WPTR_BASE__SHIFT 0x00000002
+
+// CP_IB1_BASE
+#define CP_IB1_BASE__IB1_BASE__SHIFT 0x00000002
+
+// CP_IB1_BUFSZ
+#define CP_IB1_BUFSZ__IB1_BUFSZ__SHIFT 0x00000000
+
+// CP_IB2_BASE
+#define CP_IB2_BASE__IB2_BASE__SHIFT 0x00000002
+
+// CP_IB2_BUFSZ
+#define CP_IB2_BUFSZ__IB2_BUFSZ__SHIFT 0x00000000
+
+// CP_ST_BASE
+#define CP_ST_BASE__ST_BASE__SHIFT 0x00000002
+
+// CP_ST_BUFSZ
+#define CP_ST_BUFSZ__ST_BUFSZ__SHIFT 0x00000000
+
+// CP_QUEUE_THRESHOLDS
+#define CP_QUEUE_THRESHOLDS__CSQ_IB1_START__SHIFT 0x00000000
+#define CP_QUEUE_THRESHOLDS__CSQ_IB2_START__SHIFT 0x00000008
+#define CP_QUEUE_THRESHOLDS__CSQ_ST_START__SHIFT 0x00000010
+
+// CP_MEQ_THRESHOLDS
+#define CP_MEQ_THRESHOLDS__MEQ_END__SHIFT 0x00000010
+#define CP_MEQ_THRESHOLDS__ROQ_END__SHIFT 0x00000018
+
+// CP_CSQ_AVAIL
+#define CP_CSQ_AVAIL__CSQ_CNT_RING__SHIFT 0x00000000
+#define CP_CSQ_AVAIL__CSQ_CNT_IB1__SHIFT 0x00000008
+#define CP_CSQ_AVAIL__CSQ_CNT_IB2__SHIFT 0x00000010
+
+// CP_STQ_AVAIL
+#define CP_STQ_AVAIL__STQ_CNT_ST__SHIFT 0x00000000
+
+// CP_MEQ_AVAIL
+#define CP_MEQ_AVAIL__MEQ_CNT__SHIFT 0x00000000
+
+// CP_CSQ_RB_STAT
+#define CP_CSQ_RB_STAT__CSQ_RPTR_PRIMARY__SHIFT 0x00000000
+#define CP_CSQ_RB_STAT__CSQ_WPTR_PRIMARY__SHIFT 0x00000010
+
+// CP_CSQ_IB1_STAT
+#define CP_CSQ_IB1_STAT__CSQ_RPTR_INDIRECT1__SHIFT 0x00000000
+#define CP_CSQ_IB1_STAT__CSQ_WPTR_INDIRECT1__SHIFT 0x00000010
+
+// CP_CSQ_IB2_STAT
+#define CP_CSQ_IB2_STAT__CSQ_RPTR_INDIRECT2__SHIFT 0x00000000
+#define CP_CSQ_IB2_STAT__CSQ_WPTR_INDIRECT2__SHIFT 0x00000010
+
+// CP_NON_PREFETCH_CNTRS
+#define CP_NON_PREFETCH_CNTRS__IB1_COUNTER__SHIFT 0x00000000
+#define CP_NON_PREFETCH_CNTRS__IB2_COUNTER__SHIFT 0x00000008
+
+// CP_STQ_ST_STAT
+#define CP_STQ_ST_STAT__STQ_RPTR_ST__SHIFT 0x00000000
+#define CP_STQ_ST_STAT__STQ_WPTR_ST__SHIFT 0x00000010
+
+// CP_MEQ_STAT
+#define CP_MEQ_STAT__MEQ_RPTR__SHIFT 0x00000000
+#define CP_MEQ_STAT__MEQ_WPTR__SHIFT 0x00000010
+
+// CP_MIU_TAG_STAT
+#define CP_MIU_TAG_STAT__TAG_0_STAT__SHIFT 0x00000000
+#define CP_MIU_TAG_STAT__TAG_1_STAT__SHIFT 0x00000001
+#define CP_MIU_TAG_STAT__TAG_2_STAT__SHIFT 0x00000002
+#define CP_MIU_TAG_STAT__TAG_3_STAT__SHIFT 0x00000003
+#define CP_MIU_TAG_STAT__TAG_4_STAT__SHIFT 0x00000004
+#define CP_MIU_TAG_STAT__TAG_5_STAT__SHIFT 0x00000005
+#define CP_MIU_TAG_STAT__TAG_6_STAT__SHIFT 0x00000006
+#define CP_MIU_TAG_STAT__TAG_7_STAT__SHIFT 0x00000007
+#define CP_MIU_TAG_STAT__TAG_8_STAT__SHIFT 0x00000008
+#define CP_MIU_TAG_STAT__TAG_9_STAT__SHIFT 0x00000009
+#define CP_MIU_TAG_STAT__TAG_10_STAT__SHIFT 0x0000000a
+#define CP_MIU_TAG_STAT__TAG_11_STAT__SHIFT 0x0000000b
+#define CP_MIU_TAG_STAT__TAG_12_STAT__SHIFT 0x0000000c
+#define CP_MIU_TAG_STAT__TAG_13_STAT__SHIFT 0x0000000d
+#define CP_MIU_TAG_STAT__TAG_14_STAT__SHIFT 0x0000000e
+#define CP_MIU_TAG_STAT__TAG_15_STAT__SHIFT 0x0000000f
+#define CP_MIU_TAG_STAT__TAG_16_STAT__SHIFT 0x00000010
+#define CP_MIU_TAG_STAT__TAG_17_STAT__SHIFT 0x00000011
+#define CP_MIU_TAG_STAT__INVALID_RETURN_TAG__SHIFT 0x0000001f
+
+// CP_CMD_INDEX
+#define CP_CMD_INDEX__CMD_INDEX__SHIFT 0x00000000
+#define CP_CMD_INDEX__CMD_QUEUE_SEL__SHIFT 0x00000010
+
+// CP_CMD_DATA
+#define CP_CMD_DATA__CMD_DATA__SHIFT 0x00000000
+
+// CP_ME_CNTL
+#define CP_ME_CNTL__ME_STATMUX__SHIFT 0x00000000
+#define CP_ME_CNTL__VTX_DEALLOC_FIFO_EMPTY__SHIFT 0x00000019
+#define CP_ME_CNTL__PIX_DEALLOC_FIFO_EMPTY__SHIFT 0x0000001a
+#define CP_ME_CNTL__ME_HALT__SHIFT 0x0000001c
+#define CP_ME_CNTL__ME_BUSY__SHIFT 0x0000001d
+#define CP_ME_CNTL__PROG_CNT_SIZE__SHIFT 0x0000001f
+
+// CP_ME_STATUS
+#define CP_ME_STATUS__ME_DEBUG_DATA__SHIFT 0x00000000
+
+// CP_ME_RAM_WADDR
+#define CP_ME_RAM_WADDR__ME_RAM_WADDR__SHIFT 0x00000000
+
+// CP_ME_RAM_RADDR
+#define CP_ME_RAM_RADDR__ME_RAM_RADDR__SHIFT 0x00000000
+
+// CP_ME_RAM_DATA
+#define CP_ME_RAM_DATA__ME_RAM_DATA__SHIFT 0x00000000
+
+// CP_ME_RDADDR
+#define CP_ME_RDADDR__ME_RDADDR__SHIFT 0x00000000
+
+// CP_DEBUG
+#define CP_DEBUG__CP_DEBUG_UNUSED_22_to_0__SHIFT 0x00000000
+#define CP_DEBUG__PREDICATE_DISABLE__SHIFT 0x00000017
+#define CP_DEBUG__PROG_END_PTR_ENABLE__SHIFT 0x00000018
+#define CP_DEBUG__MIU_128BIT_WRITE_ENABLE__SHIFT 0x00000019
+#define CP_DEBUG__PREFETCH_PASS_NOPS__SHIFT 0x0000001a
+#define CP_DEBUG__DYNAMIC_CLK_DISABLE__SHIFT 0x0000001b
+#define CP_DEBUG__PREFETCH_MATCH_DISABLE__SHIFT 0x0000001c
+#define CP_DEBUG__SIMPLE_ME_FLOW_CONTROL__SHIFT 0x0000001e
+#define CP_DEBUG__MIU_WRITE_PACK_DISABLE__SHIFT 0x0000001f
+
+// SCRATCH_REG0
+#define SCRATCH_REG0__SCRATCH_REG0__SHIFT 0x00000000
+#define GUI_SCRATCH_REG0__SCRATCH_REG0__SHIFT 0x00000000
+
+// SCRATCH_REG1
+#define SCRATCH_REG1__SCRATCH_REG1__SHIFT 0x00000000
+#define GUI_SCRATCH_REG1__SCRATCH_REG1__SHIFT 0x00000000
+
+// SCRATCH_REG2
+#define SCRATCH_REG2__SCRATCH_REG2__SHIFT 0x00000000
+#define GUI_SCRATCH_REG2__SCRATCH_REG2__SHIFT 0x00000000
+
+// SCRATCH_REG3
+#define SCRATCH_REG3__SCRATCH_REG3__SHIFT 0x00000000
+#define GUI_SCRATCH_REG3__SCRATCH_REG3__SHIFT 0x00000000
+
+// SCRATCH_REG4
+#define SCRATCH_REG4__SCRATCH_REG4__SHIFT 0x00000000
+#define GUI_SCRATCH_REG4__SCRATCH_REG4__SHIFT 0x00000000
+
+// SCRATCH_REG5
+#define SCRATCH_REG5__SCRATCH_REG5__SHIFT 0x00000000
+#define GUI_SCRATCH_REG5__SCRATCH_REG5__SHIFT 0x00000000
+
+// SCRATCH_REG6
+#define SCRATCH_REG6__SCRATCH_REG6__SHIFT 0x00000000
+#define GUI_SCRATCH_REG6__SCRATCH_REG6__SHIFT 0x00000000
+
+// SCRATCH_REG7
+#define SCRATCH_REG7__SCRATCH_REG7__SHIFT 0x00000000
+#define GUI_SCRATCH_REG7__SCRATCH_REG7__SHIFT 0x00000000
+
+// SCRATCH_UMSK
+#define SCRATCH_UMSK__SCRATCH_UMSK__SHIFT 0x00000000
+#define SCRATCH_UMSK__SCRATCH_SWAP__SHIFT 0x00000010
+
+// SCRATCH_ADDR
+#define SCRATCH_ADDR__SCRATCH_ADDR__SHIFT 0x00000005
+
+// CP_ME_VS_EVENT_SRC
+#define CP_ME_VS_EVENT_SRC__VS_DONE_SWM__SHIFT 0x00000000
+#define CP_ME_VS_EVENT_SRC__VS_DONE_CNTR__SHIFT 0x00000001
+
+// CP_ME_VS_EVENT_ADDR
+#define CP_ME_VS_EVENT_ADDR__VS_DONE_SWAP__SHIFT 0x00000000
+#define CP_ME_VS_EVENT_ADDR__VS_DONE_ADDR__SHIFT 0x00000002
+
+// CP_ME_VS_EVENT_DATA
+#define CP_ME_VS_EVENT_DATA__VS_DONE_DATA__SHIFT 0x00000000
+
+// CP_ME_VS_EVENT_ADDR_SWM
+#define CP_ME_VS_EVENT_ADDR_SWM__VS_DONE_SWAP_SWM__SHIFT 0x00000000
+#define CP_ME_VS_EVENT_ADDR_SWM__VS_DONE_ADDR_SWM__SHIFT 0x00000002
+
+// CP_ME_VS_EVENT_DATA_SWM
+#define CP_ME_VS_EVENT_DATA_SWM__VS_DONE_DATA_SWM__SHIFT 0x00000000
+
+// CP_ME_PS_EVENT_SRC
+#define CP_ME_PS_EVENT_SRC__PS_DONE_SWM__SHIFT 0x00000000
+#define CP_ME_PS_EVENT_SRC__PS_DONE_CNTR__SHIFT 0x00000001
+
+// CP_ME_PS_EVENT_ADDR
+#define CP_ME_PS_EVENT_ADDR__PS_DONE_SWAP__SHIFT 0x00000000
+#define CP_ME_PS_EVENT_ADDR__PS_DONE_ADDR__SHIFT 0x00000002
+
+// CP_ME_PS_EVENT_DATA
+#define CP_ME_PS_EVENT_DATA__PS_DONE_DATA__SHIFT 0x00000000
+
+// CP_ME_PS_EVENT_ADDR_SWM
+#define CP_ME_PS_EVENT_ADDR_SWM__PS_DONE_SWAP_SWM__SHIFT 0x00000000
+#define CP_ME_PS_EVENT_ADDR_SWM__PS_DONE_ADDR_SWM__SHIFT 0x00000002
+
+// CP_ME_PS_EVENT_DATA_SWM
+#define CP_ME_PS_EVENT_DATA_SWM__PS_DONE_DATA_SWM__SHIFT 0x00000000
+
+// CP_ME_CF_EVENT_SRC
+#define CP_ME_CF_EVENT_SRC__CF_DONE_SRC__SHIFT 0x00000000
+
+// CP_ME_CF_EVENT_ADDR
+#define CP_ME_CF_EVENT_ADDR__CF_DONE_SWAP__SHIFT 0x00000000
+#define CP_ME_CF_EVENT_ADDR__CF_DONE_ADDR__SHIFT 0x00000002
+
+// CP_ME_CF_EVENT_DATA
+#define CP_ME_CF_EVENT_DATA__CF_DONE_DATA__SHIFT 0x00000000
+
+// CP_ME_NRT_ADDR
+#define CP_ME_NRT_ADDR__NRT_WRITE_SWAP__SHIFT 0x00000000
+#define CP_ME_NRT_ADDR__NRT_WRITE_ADDR__SHIFT 0x00000002
+
+// CP_ME_NRT_DATA
+#define CP_ME_NRT_DATA__NRT_WRITE_DATA__SHIFT 0x00000000
+
+// CP_ME_VS_FETCH_DONE_SRC
+#define CP_ME_VS_FETCH_DONE_SRC__VS_FETCH_DONE_CNTR__SHIFT 0x00000000
+
+// CP_ME_VS_FETCH_DONE_ADDR
+#define CP_ME_VS_FETCH_DONE_ADDR__VS_FETCH_DONE_SWAP__SHIFT 0x00000000
+#define CP_ME_VS_FETCH_DONE_ADDR__VS_FETCH_DONE_ADDR__SHIFT 0x00000002
+
+// CP_ME_VS_FETCH_DONE_DATA
+#define CP_ME_VS_FETCH_DONE_DATA__VS_FETCH_DONE_DATA__SHIFT 0x00000000
+
+// CP_INT_CNTL
+#define CP_INT_CNTL__SW_INT_MASK__SHIFT 0x00000013
+#define CP_INT_CNTL__T0_PACKET_IN_IB_MASK__SHIFT 0x00000017
+#define CP_INT_CNTL__OPCODE_ERROR_MASK__SHIFT 0x00000018
+#define CP_INT_CNTL__PROTECTED_MODE_ERROR_MASK__SHIFT 0x00000019
+#define CP_INT_CNTL__RESERVED_BIT_ERROR_MASK__SHIFT 0x0000001a
+#define CP_INT_CNTL__IB_ERROR_MASK__SHIFT 0x0000001b
+#define CP_INT_CNTL__IB2_INT_MASK__SHIFT 0x0000001d
+#define CP_INT_CNTL__IB1_INT_MASK__SHIFT 0x0000001e
+#define CP_INT_CNTL__RB_INT_MASK__SHIFT 0x0000001f
+
+// CP_INT_STATUS
+#define CP_INT_STATUS__SW_INT_STAT__SHIFT 0x00000013
+#define CP_INT_STATUS__T0_PACKET_IN_IB_STAT__SHIFT 0x00000017
+#define CP_INT_STATUS__OPCODE_ERROR_STAT__SHIFT 0x00000018
+#define CP_INT_STATUS__PROTECTED_MODE_ERROR_STAT__SHIFT 0x00000019
+#define CP_INT_STATUS__RESERVED_BIT_ERROR_STAT__SHIFT 0x0000001a
+#define CP_INT_STATUS__IB_ERROR_STAT__SHIFT 0x0000001b
+#define CP_INT_STATUS__IB2_INT_STAT__SHIFT 0x0000001d
+#define CP_INT_STATUS__IB1_INT_STAT__SHIFT 0x0000001e
+#define CP_INT_STATUS__RB_INT_STAT__SHIFT 0x0000001f
+
+// CP_INT_ACK
+#define CP_INT_ACK__SW_INT_ACK__SHIFT 0x00000013
+#define CP_INT_ACK__T0_PACKET_IN_IB_ACK__SHIFT 0x00000017
+#define CP_INT_ACK__OPCODE_ERROR_ACK__SHIFT 0x00000018
+#define CP_INT_ACK__PROTECTED_MODE_ERROR_ACK__SHIFT 0x00000019
+#define CP_INT_ACK__RESERVED_BIT_ERROR_ACK__SHIFT 0x0000001a
+#define CP_INT_ACK__IB_ERROR_ACK__SHIFT 0x0000001b
+#define CP_INT_ACK__IB2_INT_ACK__SHIFT 0x0000001d
+#define CP_INT_ACK__IB1_INT_ACK__SHIFT 0x0000001e
+#define CP_INT_ACK__RB_INT_ACK__SHIFT 0x0000001f
+
+// CP_PFP_UCODE_ADDR
+#define CP_PFP_UCODE_ADDR__UCODE_ADDR__SHIFT 0x00000000
+
+// CP_PFP_UCODE_DATA
+#define CP_PFP_UCODE_DATA__UCODE_DATA__SHIFT 0x00000000
+
+// CP_PERFMON_CNTL
+#define CP_PERFMON_CNTL__PERFMON_STATE__SHIFT 0x00000000
+#define CP_PERFMON_CNTL__PERFMON_ENABLE_MODE__SHIFT 0x00000008
+
+// CP_PERFCOUNTER_SELECT
+#define CP_PERFCOUNTER_SELECT__PERFCOUNT_SEL__SHIFT 0x00000000
+
+// CP_PERFCOUNTER_LO
+#define CP_PERFCOUNTER_LO__PERFCOUNT_LO__SHIFT 0x00000000
+
+// CP_PERFCOUNTER_HI
+#define CP_PERFCOUNTER_HI__PERFCOUNT_HI__SHIFT 0x00000000
+
+// CP_BIN_MASK_LO
+#define CP_BIN_MASK_LO__BIN_MASK_LO__SHIFT 0x00000000
+
+// CP_BIN_MASK_HI
+#define CP_BIN_MASK_HI__BIN_MASK_HI__SHIFT 0x00000000
+
+// CP_BIN_SELECT_LO
+#define CP_BIN_SELECT_LO__BIN_SELECT_LO__SHIFT 0x00000000
+
+// CP_BIN_SELECT_HI
+#define CP_BIN_SELECT_HI__BIN_SELECT_HI__SHIFT 0x00000000
+
+// CP_NV_FLAGS_0
+#define CP_NV_FLAGS_0__DISCARD_0__SHIFT 0x00000000
+#define CP_NV_FLAGS_0__END_RCVD_0__SHIFT 0x00000001
+#define CP_NV_FLAGS_0__DISCARD_1__SHIFT 0x00000002
+#define CP_NV_FLAGS_0__END_RCVD_1__SHIFT 0x00000003
+#define CP_NV_FLAGS_0__DISCARD_2__SHIFT 0x00000004
+#define CP_NV_FLAGS_0__END_RCVD_2__SHIFT 0x00000005
+#define CP_NV_FLAGS_0__DISCARD_3__SHIFT 0x00000006
+#define CP_NV_FLAGS_0__END_RCVD_3__SHIFT 0x00000007
+#define CP_NV_FLAGS_0__DISCARD_4__SHIFT 0x00000008
+#define CP_NV_FLAGS_0__END_RCVD_4__SHIFT 0x00000009
+#define CP_NV_FLAGS_0__DISCARD_5__SHIFT 0x0000000a
+#define CP_NV_FLAGS_0__END_RCVD_5__SHIFT 0x0000000b
+#define CP_NV_FLAGS_0__DISCARD_6__SHIFT 0x0000000c
+#define CP_NV_FLAGS_0__END_RCVD_6__SHIFT 0x0000000d
+#define CP_NV_FLAGS_0__DISCARD_7__SHIFT 0x0000000e
+#define CP_NV_FLAGS_0__END_RCVD_7__SHIFT 0x0000000f
+#define CP_NV_FLAGS_0__DISCARD_8__SHIFT 0x00000010
+#define CP_NV_FLAGS_0__END_RCVD_8__SHIFT 0x00000011
+#define CP_NV_FLAGS_0__DISCARD_9__SHIFT 0x00000012
+#define CP_NV_FLAGS_0__END_RCVD_9__SHIFT 0x00000013
+#define CP_NV_FLAGS_0__DISCARD_10__SHIFT 0x00000014
+#define CP_NV_FLAGS_0__END_RCVD_10__SHIFT 0x00000015
+#define CP_NV_FLAGS_0__DISCARD_11__SHIFT 0x00000016
+#define CP_NV_FLAGS_0__END_RCVD_11__SHIFT 0x00000017
+#define CP_NV_FLAGS_0__DISCARD_12__SHIFT 0x00000018
+#define CP_NV_FLAGS_0__END_RCVD_12__SHIFT 0x00000019
+#define CP_NV_FLAGS_0__DISCARD_13__SHIFT 0x0000001a
+#define CP_NV_FLAGS_0__END_RCVD_13__SHIFT 0x0000001b
+#define CP_NV_FLAGS_0__DISCARD_14__SHIFT 0x0000001c
+#define CP_NV_FLAGS_0__END_RCVD_14__SHIFT 0x0000001d
+#define CP_NV_FLAGS_0__DISCARD_15__SHIFT 0x0000001e
+#define CP_NV_FLAGS_0__END_RCVD_15__SHIFT 0x0000001f
+
+// CP_NV_FLAGS_1
+#define CP_NV_FLAGS_1__DISCARD_16__SHIFT 0x00000000
+#define CP_NV_FLAGS_1__END_RCVD_16__SHIFT 0x00000001
+#define CP_NV_FLAGS_1__DISCARD_17__SHIFT 0x00000002
+#define CP_NV_FLAGS_1__END_RCVD_17__SHIFT 0x00000003
+#define CP_NV_FLAGS_1__DISCARD_18__SHIFT 0x00000004
+#define CP_NV_FLAGS_1__END_RCVD_18__SHIFT 0x00000005
+#define CP_NV_FLAGS_1__DISCARD_19__SHIFT 0x00000006
+#define CP_NV_FLAGS_1__END_RCVD_19__SHIFT 0x00000007
+#define CP_NV_FLAGS_1__DISCARD_20__SHIFT 0x00000008
+#define CP_NV_FLAGS_1__END_RCVD_20__SHIFT 0x00000009
+#define CP_NV_FLAGS_1__DISCARD_21__SHIFT 0x0000000a
+#define CP_NV_FLAGS_1__END_RCVD_21__SHIFT 0x0000000b
+#define CP_NV_FLAGS_1__DISCARD_22__SHIFT 0x0000000c
+#define CP_NV_FLAGS_1__END_RCVD_22__SHIFT 0x0000000d
+#define CP_NV_FLAGS_1__DISCARD_23__SHIFT 0x0000000e
+#define CP_NV_FLAGS_1__END_RCVD_23__SHIFT 0x0000000f
+#define CP_NV_FLAGS_1__DISCARD_24__SHIFT 0x00000010
+#define CP_NV_FLAGS_1__END_RCVD_24__SHIFT 0x00000011
+#define CP_NV_FLAGS_1__DISCARD_25__SHIFT 0x00000012
+#define CP_NV_FLAGS_1__END_RCVD_25__SHIFT 0x00000013
+#define CP_NV_FLAGS_1__DISCARD_26__SHIFT 0x00000014
+#define CP_NV_FLAGS_1__END_RCVD_26__SHIFT 0x00000015
+#define CP_NV_FLAGS_1__DISCARD_27__SHIFT 0x00000016
+#define CP_NV_FLAGS_1__END_RCVD_27__SHIFT 0x00000017
+#define CP_NV_FLAGS_1__DISCARD_28__SHIFT 0x00000018
+#define CP_NV_FLAGS_1__END_RCVD_28__SHIFT 0x00000019
+#define CP_NV_FLAGS_1__DISCARD_29__SHIFT 0x0000001a
+#define CP_NV_FLAGS_1__END_RCVD_29__SHIFT 0x0000001b
+#define CP_NV_FLAGS_1__DISCARD_30__SHIFT 0x0000001c
+#define CP_NV_FLAGS_1__END_RCVD_30__SHIFT 0x0000001d
+#define CP_NV_FLAGS_1__DISCARD_31__SHIFT 0x0000001e
+#define CP_NV_FLAGS_1__END_RCVD_31__SHIFT 0x0000001f
+
+// CP_NV_FLAGS_2
+#define CP_NV_FLAGS_2__DISCARD_32__SHIFT 0x00000000
+#define CP_NV_FLAGS_2__END_RCVD_32__SHIFT 0x00000001
+#define CP_NV_FLAGS_2__DISCARD_33__SHIFT 0x00000002
+#define CP_NV_FLAGS_2__END_RCVD_33__SHIFT 0x00000003
+#define CP_NV_FLAGS_2__DISCARD_34__SHIFT 0x00000004
+#define CP_NV_FLAGS_2__END_RCVD_34__SHIFT 0x00000005
+#define CP_NV_FLAGS_2__DISCARD_35__SHIFT 0x00000006
+#define CP_NV_FLAGS_2__END_RCVD_35__SHIFT 0x00000007
+#define CP_NV_FLAGS_2__DISCARD_36__SHIFT 0x00000008
+#define CP_NV_FLAGS_2__END_RCVD_36__SHIFT 0x00000009
+#define CP_NV_FLAGS_2__DISCARD_37__SHIFT 0x0000000a
+#define CP_NV_FLAGS_2__END_RCVD_37__SHIFT 0x0000000b
+#define CP_NV_FLAGS_2__DISCARD_38__SHIFT 0x0000000c
+#define CP_NV_FLAGS_2__END_RCVD_38__SHIFT 0x0000000d
+#define CP_NV_FLAGS_2__DISCARD_39__SHIFT 0x0000000e
+#define CP_NV_FLAGS_2__END_RCVD_39__SHIFT 0x0000000f
+#define CP_NV_FLAGS_2__DISCARD_40__SHIFT 0x00000010
+#define CP_NV_FLAGS_2__END_RCVD_40__SHIFT 0x00000011
+#define CP_NV_FLAGS_2__DISCARD_41__SHIFT 0x00000012
+#define CP_NV_FLAGS_2__END_RCVD_41__SHIFT 0x00000013
+#define CP_NV_FLAGS_2__DISCARD_42__SHIFT 0x00000014
+#define CP_NV_FLAGS_2__END_RCVD_42__SHIFT 0x00000015
+#define CP_NV_FLAGS_2__DISCARD_43__SHIFT 0x00000016
+#define CP_NV_FLAGS_2__END_RCVD_43__SHIFT 0x00000017
+#define CP_NV_FLAGS_2__DISCARD_44__SHIFT 0x00000018
+#define CP_NV_FLAGS_2__END_RCVD_44__SHIFT 0x00000019
+#define CP_NV_FLAGS_2__DISCARD_45__SHIFT 0x0000001a
+#define CP_NV_FLAGS_2__END_RCVD_45__SHIFT 0x0000001b
+#define CP_NV_FLAGS_2__DISCARD_46__SHIFT 0x0000001c
+#define CP_NV_FLAGS_2__END_RCVD_46__SHIFT 0x0000001d
+#define CP_NV_FLAGS_2__DISCARD_47__SHIFT 0x0000001e
+#define CP_NV_FLAGS_2__END_RCVD_47__SHIFT 0x0000001f
+
+// CP_NV_FLAGS_3
+#define CP_NV_FLAGS_3__DISCARD_48__SHIFT 0x00000000
+#define CP_NV_FLAGS_3__END_RCVD_48__SHIFT 0x00000001
+#define CP_NV_FLAGS_3__DISCARD_49__SHIFT 0x00000002
+#define CP_NV_FLAGS_3__END_RCVD_49__SHIFT 0x00000003
+#define CP_NV_FLAGS_3__DISCARD_50__SHIFT 0x00000004
+#define CP_NV_FLAGS_3__END_RCVD_50__SHIFT 0x00000005
+#define CP_NV_FLAGS_3__DISCARD_51__SHIFT 0x00000006
+#define CP_NV_FLAGS_3__END_RCVD_51__SHIFT 0x00000007
+#define CP_NV_FLAGS_3__DISCARD_52__SHIFT 0x00000008
+#define CP_NV_FLAGS_3__END_RCVD_52__SHIFT 0x00000009
+#define CP_NV_FLAGS_3__DISCARD_53__SHIFT 0x0000000a
+#define CP_NV_FLAGS_3__END_RCVD_53__SHIFT 0x0000000b
+#define CP_NV_FLAGS_3__DISCARD_54__SHIFT 0x0000000c
+#define CP_NV_FLAGS_3__END_RCVD_54__SHIFT 0x0000000d
+#define CP_NV_FLAGS_3__DISCARD_55__SHIFT 0x0000000e
+#define CP_NV_FLAGS_3__END_RCVD_55__SHIFT 0x0000000f
+#define CP_NV_FLAGS_3__DISCARD_56__SHIFT 0x00000010
+#define CP_NV_FLAGS_3__END_RCVD_56__SHIFT 0x00000011
+#define CP_NV_FLAGS_3__DISCARD_57__SHIFT 0x00000012
+#define CP_NV_FLAGS_3__END_RCVD_57__SHIFT 0x00000013
+#define CP_NV_FLAGS_3__DISCARD_58__SHIFT 0x00000014
+#define CP_NV_FLAGS_3__END_RCVD_58__SHIFT 0x00000015
+#define CP_NV_FLAGS_3__DISCARD_59__SHIFT 0x00000016
+#define CP_NV_FLAGS_3__END_RCVD_59__SHIFT 0x00000017
+#define CP_NV_FLAGS_3__DISCARD_60__SHIFT 0x00000018
+#define CP_NV_FLAGS_3__END_RCVD_60__SHIFT 0x00000019
+#define CP_NV_FLAGS_3__DISCARD_61__SHIFT 0x0000001a
+#define CP_NV_FLAGS_3__END_RCVD_61__SHIFT 0x0000001b
+#define CP_NV_FLAGS_3__DISCARD_62__SHIFT 0x0000001c
+#define CP_NV_FLAGS_3__END_RCVD_62__SHIFT 0x0000001d
+#define CP_NV_FLAGS_3__DISCARD_63__SHIFT 0x0000001e
+#define CP_NV_FLAGS_3__END_RCVD_63__SHIFT 0x0000001f
+
+// CP_STATE_DEBUG_INDEX
+#define CP_STATE_DEBUG_INDEX__STATE_DEBUG_INDEX__SHIFT 0x00000000
+
+// CP_STATE_DEBUG_DATA
+#define CP_STATE_DEBUG_DATA__STATE_DEBUG_DATA__SHIFT 0x00000000
+
+// CP_PROG_COUNTER
+#define CP_PROG_COUNTER__COUNTER__SHIFT 0x00000000
+
+// CP_STAT
+#define CP_STAT__MIU_WR_BUSY__SHIFT 0x00000000
+#define CP_STAT__MIU_RD_REQ_BUSY__SHIFT 0x00000001
+#define CP_STAT__MIU_RD_RETURN_BUSY__SHIFT 0x00000002
+#define CP_STAT__RBIU_BUSY__SHIFT 0x00000003
+#define CP_STAT__RCIU_BUSY__SHIFT 0x00000004
+#define CP_STAT__CSF_RING_BUSY__SHIFT 0x00000005
+#define CP_STAT__CSF_INDIRECTS_BUSY__SHIFT 0x00000006
+#define CP_STAT__CSF_INDIRECT2_BUSY__SHIFT 0x00000007
+#define CP_STAT__CSF_ST_BUSY__SHIFT 0x00000009
+#define CP_STAT__CSF_BUSY__SHIFT 0x0000000a
+#define CP_STAT__RING_QUEUE_BUSY__SHIFT 0x0000000b
+#define CP_STAT__INDIRECTS_QUEUE_BUSY__SHIFT 0x0000000c
+#define CP_STAT__INDIRECT2_QUEUE_BUSY__SHIFT 0x0000000d
+#define CP_STAT__ST_QUEUE_BUSY__SHIFT 0x00000010
+#define CP_STAT__PFP_BUSY__SHIFT 0x00000011
+#define CP_STAT__MEQ_RING_BUSY__SHIFT 0x00000012
+#define CP_STAT__MEQ_INDIRECTS_BUSY__SHIFT 0x00000013
+#define CP_STAT__MEQ_INDIRECT2_BUSY__SHIFT 0x00000014
+#define CP_STAT__MIU_WC_STALL__SHIFT 0x00000015
+#define CP_STAT__CP_NRT_BUSY__SHIFT 0x00000016
+#define CP_STAT___3D_BUSY__SHIFT 0x00000017
+#define CP_STAT__ME_BUSY__SHIFT 0x0000001a
+#define CP_STAT__ME_WC_BUSY__SHIFT 0x0000001d
+#define CP_STAT__MIU_WC_TRACK_FIFO_EMPTY__SHIFT 0x0000001e
+#define CP_STAT__CP_BUSY__SHIFT 0x0000001f
+
+// BIOS_0_SCRATCH
+#define BIOS_0_SCRATCH__BIOS_SCRATCH__SHIFT 0x00000000
+
+// BIOS_1_SCRATCH
+#define BIOS_1_SCRATCH__BIOS_SCRATCH__SHIFT 0x00000000
+
+// BIOS_2_SCRATCH
+#define BIOS_2_SCRATCH__BIOS_SCRATCH__SHIFT 0x00000000
+
+// BIOS_3_SCRATCH
+#define BIOS_3_SCRATCH__BIOS_SCRATCH__SHIFT 0x00000000
+
+// BIOS_4_SCRATCH
+#define BIOS_4_SCRATCH__BIOS_SCRATCH__SHIFT 0x00000000
+
+// BIOS_5_SCRATCH
+#define BIOS_5_SCRATCH__BIOS_SCRATCH__SHIFT 0x00000000
+
+// BIOS_6_SCRATCH
+#define BIOS_6_SCRATCH__BIOS_SCRATCH__SHIFT 0x00000000
+
+// BIOS_7_SCRATCH
+#define BIOS_7_SCRATCH__BIOS_SCRATCH__SHIFT 0x00000000
+
+// BIOS_8_SCRATCH
+#define BIOS_8_SCRATCH__BIOS_SCRATCH__SHIFT 0x00000000
+
+// BIOS_9_SCRATCH
+#define BIOS_9_SCRATCH__BIOS_SCRATCH__SHIFT 0x00000000
+
+// BIOS_10_SCRATCH
+#define BIOS_10_SCRATCH__BIOS_SCRATCH__SHIFT 0x00000000
+
+// BIOS_11_SCRATCH
+#define BIOS_11_SCRATCH__BIOS_SCRATCH__SHIFT 0x00000000
+
+// BIOS_12_SCRATCH
+#define BIOS_12_SCRATCH__BIOS_SCRATCH__SHIFT 0x00000000
+
+// BIOS_13_SCRATCH
+#define BIOS_13_SCRATCH__BIOS_SCRATCH__SHIFT 0x00000000
+
+// BIOS_14_SCRATCH
+#define BIOS_14_SCRATCH__BIOS_SCRATCH__SHIFT 0x00000000
+
+// BIOS_15_SCRATCH
+#define BIOS_15_SCRATCH__BIOS_SCRATCH__SHIFT 0x00000000
+
+// COHER_SIZE_PM4
+#define COHER_SIZE_PM4__SIZE__SHIFT 0x00000000
+
+// COHER_BASE_PM4
+#define COHER_BASE_PM4__BASE__SHIFT 0x00000000
+
+// COHER_STATUS_PM4
+#define COHER_STATUS_PM4__MATCHING_CONTEXTS__SHIFT 0x00000000
+#define COHER_STATUS_PM4__RB_COPY_DEST_BASE_ENA__SHIFT 0x00000008
+#define COHER_STATUS_PM4__DEST_BASE_0_ENA__SHIFT 0x00000009
+#define COHER_STATUS_PM4__DEST_BASE_1_ENA__SHIFT 0x0000000a
+#define COHER_STATUS_PM4__DEST_BASE_2_ENA__SHIFT 0x0000000b
+#define COHER_STATUS_PM4__DEST_BASE_3_ENA__SHIFT 0x0000000c
+#define COHER_STATUS_PM4__DEST_BASE_4_ENA__SHIFT 0x0000000d
+#define COHER_STATUS_PM4__DEST_BASE_5_ENA__SHIFT 0x0000000e
+#define COHER_STATUS_PM4__DEST_BASE_6_ENA__SHIFT 0x0000000f
+#define COHER_STATUS_PM4__DEST_BASE_7_ENA__SHIFT 0x00000010
+#define COHER_STATUS_PM4__TC_ACTION_ENA__SHIFT 0x00000019
+#define COHER_STATUS_PM4__STATUS__SHIFT 0x0000001f
+
+// COHER_SIZE_HOST
+#define COHER_SIZE_HOST__SIZE__SHIFT 0x00000000
+
+// COHER_BASE_HOST
+#define COHER_BASE_HOST__BASE__SHIFT 0x00000000
+
+// COHER_STATUS_HOST
+#define COHER_STATUS_HOST__MATCHING_CONTEXTS__SHIFT 0x00000000
+#define COHER_STATUS_HOST__RB_COPY_DEST_BASE_ENA__SHIFT 0x00000008
+#define COHER_STATUS_HOST__DEST_BASE_0_ENA__SHIFT 0x00000009
+#define COHER_STATUS_HOST__DEST_BASE_1_ENA__SHIFT 0x0000000a
+#define COHER_STATUS_HOST__DEST_BASE_2_ENA__SHIFT 0x0000000b
+#define COHER_STATUS_HOST__DEST_BASE_3_ENA__SHIFT 0x0000000c
+#define COHER_STATUS_HOST__DEST_BASE_4_ENA__SHIFT 0x0000000d
+#define COHER_STATUS_HOST__DEST_BASE_5_ENA__SHIFT 0x0000000e
+#define COHER_STATUS_HOST__DEST_BASE_6_ENA__SHIFT 0x0000000f
+#define COHER_STATUS_HOST__DEST_BASE_7_ENA__SHIFT 0x00000010
+#define COHER_STATUS_HOST__TC_ACTION_ENA__SHIFT 0x00000019
+#define COHER_STATUS_HOST__STATUS__SHIFT 0x0000001f
+
+// COHER_DEST_BASE_0
+#define COHER_DEST_BASE_0__DEST_BASE_0__SHIFT 0x0000000c
+
+// COHER_DEST_BASE_1
+#define COHER_DEST_BASE_1__DEST_BASE_1__SHIFT 0x0000000c
+
+// COHER_DEST_BASE_2
+#define COHER_DEST_BASE_2__DEST_BASE_2__SHIFT 0x0000000c
+
+// COHER_DEST_BASE_3
+#define COHER_DEST_BASE_3__DEST_BASE_3__SHIFT 0x0000000c
+
+// COHER_DEST_BASE_4
+#define COHER_DEST_BASE_4__DEST_BASE_4__SHIFT 0x0000000c
+
+// COHER_DEST_BASE_5
+#define COHER_DEST_BASE_5__DEST_BASE_5__SHIFT 0x0000000c
+
+// COHER_DEST_BASE_6
+#define COHER_DEST_BASE_6__DEST_BASE_6__SHIFT 0x0000000c
+
+// COHER_DEST_BASE_7
+#define COHER_DEST_BASE_7__DEST_BASE_7__SHIFT 0x0000000c
+
+// RB_SURFACE_INFO
+#define RB_SURFACE_INFO__SURFACE_PITCH__SHIFT 0x00000000
+#define RB_SURFACE_INFO__MSAA_SAMPLES__SHIFT 0x0000000e
+
+// RB_COLOR_INFO
+#define RB_COLOR_INFO__COLOR_FORMAT__SHIFT 0x00000000
+#define RB_COLOR_INFO__COLOR_ROUND_MODE__SHIFT 0x00000004
+#define RB_COLOR_INFO__COLOR_LINEAR__SHIFT 0x00000006
+#define RB_COLOR_INFO__COLOR_ENDIAN__SHIFT 0x00000007
+#define RB_COLOR_INFO__COLOR_SWAP__SHIFT 0x00000009
+#define RB_COLOR_INFO__COLOR_BASE__SHIFT 0x0000000c
+
+// RB_DEPTH_INFO
+#define RB_DEPTH_INFO__DEPTH_FORMAT__SHIFT 0x00000000
+#define RB_DEPTH_INFO__DEPTH_BASE__SHIFT 0x0000000c
+
+// RB_STENCILREFMASK
+#define RB_STENCILREFMASK__STENCILREF__SHIFT 0x00000000
+#define RB_STENCILREFMASK__STENCILMASK__SHIFT 0x00000008
+#define RB_STENCILREFMASK__STENCILWRITEMASK__SHIFT 0x00000010
+
+// RB_ALPHA_REF
+#define RB_ALPHA_REF__ALPHA_REF__SHIFT 0x00000000
+
+// RB_COLOR_MASK
+#define RB_COLOR_MASK__WRITE_RED__SHIFT 0x00000000
+#define RB_COLOR_MASK__WRITE_GREEN__SHIFT 0x00000001
+#define RB_COLOR_MASK__WRITE_BLUE__SHIFT 0x00000002
+#define RB_COLOR_MASK__WRITE_ALPHA__SHIFT 0x00000003
+
+// RB_BLEND_RED
+#define RB_BLEND_RED__BLEND_RED__SHIFT 0x00000000
+
+// RB_BLEND_GREEN
+#define RB_BLEND_GREEN__BLEND_GREEN__SHIFT 0x00000000
+
+// RB_BLEND_BLUE
+#define RB_BLEND_BLUE__BLEND_BLUE__SHIFT 0x00000000
+
+// RB_BLEND_ALPHA
+#define RB_BLEND_ALPHA__BLEND_ALPHA__SHIFT 0x00000000
+
+// RB_FOG_COLOR
+#define RB_FOG_COLOR__FOG_RED__SHIFT 0x00000000
+#define RB_FOG_COLOR__FOG_GREEN__SHIFT 0x00000008
+#define RB_FOG_COLOR__FOG_BLUE__SHIFT 0x00000010
+
+// RB_STENCILREFMASK_BF
+#define RB_STENCILREFMASK_BF__STENCILREF_BF__SHIFT 0x00000000
+#define RB_STENCILREFMASK_BF__STENCILMASK_BF__SHIFT 0x00000008
+#define RB_STENCILREFMASK_BF__STENCILWRITEMASK_BF__SHIFT 0x00000010
+
+// RB_DEPTHCONTROL
+#define RB_DEPTHCONTROL__STENCIL_ENABLE__SHIFT 0x00000000
+#define RB_DEPTHCONTROL__Z_ENABLE__SHIFT 0x00000001
+#define RB_DEPTHCONTROL__Z_WRITE_ENABLE__SHIFT 0x00000002
+#define RB_DEPTHCONTROL__EARLY_Z_ENABLE__SHIFT 0x00000003
+#define RB_DEPTHCONTROL__ZFUNC__SHIFT 0x00000004
+#define RB_DEPTHCONTROL__BACKFACE_ENABLE__SHIFT 0x00000007
+#define RB_DEPTHCONTROL__STENCILFUNC__SHIFT 0x00000008
+#define RB_DEPTHCONTROL__STENCILFAIL__SHIFT 0x0000000b
+#define RB_DEPTHCONTROL__STENCILZPASS__SHIFT 0x0000000e
+#define RB_DEPTHCONTROL__STENCILZFAIL__SHIFT 0x00000011
+#define RB_DEPTHCONTROL__STENCILFUNC_BF__SHIFT 0x00000014
+#define RB_DEPTHCONTROL__STENCILFAIL_BF__SHIFT 0x00000017
+#define RB_DEPTHCONTROL__STENCILZPASS_BF__SHIFT 0x0000001a
+#define RB_DEPTHCONTROL__STENCILZFAIL_BF__SHIFT 0x0000001d
+
+// RB_BLENDCONTROL
+#define RB_BLENDCONTROL__COLOR_SRCBLEND__SHIFT 0x00000000
+#define RB_BLENDCONTROL__COLOR_COMB_FCN__SHIFT 0x00000005
+#define RB_BLENDCONTROL__COLOR_DESTBLEND__SHIFT 0x00000008
+#define RB_BLENDCONTROL__ALPHA_SRCBLEND__SHIFT 0x00000010
+#define RB_BLENDCONTROL__ALPHA_COMB_FCN__SHIFT 0x00000015
+#define RB_BLENDCONTROL__ALPHA_DESTBLEND__SHIFT 0x00000018
+#define RB_BLENDCONTROL__BLEND_FORCE_ENABLE__SHIFT 0x0000001d
+#define RB_BLENDCONTROL__BLEND_FORCE__SHIFT 0x0000001e
+
+// RB_COLORCONTROL
+#define RB_COLORCONTROL__ALPHA_FUNC__SHIFT 0x00000000
+#define RB_COLORCONTROL__ALPHA_TEST_ENABLE__SHIFT 0x00000003
+#define RB_COLORCONTROL__ALPHA_TO_MASK_ENABLE__SHIFT 0x00000004
+#define RB_COLORCONTROL__BLEND_DISABLE__SHIFT 0x00000005
+#define RB_COLORCONTROL__FOG_ENABLE__SHIFT 0x00000006
+#define RB_COLORCONTROL__VS_EXPORTS_FOG__SHIFT 0x00000007
+#define RB_COLORCONTROL__ROP_CODE__SHIFT 0x00000008
+#define RB_COLORCONTROL__DITHER_MODE__SHIFT 0x0000000c
+#define RB_COLORCONTROL__DITHER_TYPE__SHIFT 0x0000000e
+#define RB_COLORCONTROL__PIXEL_FOG__SHIFT 0x00000010
+#define RB_COLORCONTROL__ALPHA_TO_MASK_OFFSET0__SHIFT 0x00000018
+#define RB_COLORCONTROL__ALPHA_TO_MASK_OFFSET1__SHIFT 0x0000001a
+#define RB_COLORCONTROL__ALPHA_TO_MASK_OFFSET2__SHIFT 0x0000001c
+#define RB_COLORCONTROL__ALPHA_TO_MASK_OFFSET3__SHIFT 0x0000001e
+
+// RB_MODECONTROL
+#define RB_MODECONTROL__EDRAM_MODE__SHIFT 0x00000000
+
+// RB_COLOR_DEST_MASK
+#define RB_COLOR_DEST_MASK__COLOR_DEST_MASK__SHIFT 0x00000000
+
+// RB_COPY_CONTROL
+#define RB_COPY_CONTROL__COPY_SAMPLE_SELECT__SHIFT 0x00000000
+#define RB_COPY_CONTROL__DEPTH_CLEAR_ENABLE__SHIFT 0x00000003
+#define RB_COPY_CONTROL__CLEAR_MASK__SHIFT 0x00000004
+
+// RB_COPY_DEST_BASE
+#define RB_COPY_DEST_BASE__COPY_DEST_BASE__SHIFT 0x0000000c
+
+// RB_COPY_DEST_PITCH
+#define RB_COPY_DEST_PITCH__COPY_DEST_PITCH__SHIFT 0x00000000
+
+// RB_COPY_DEST_INFO
+#define RB_COPY_DEST_INFO__COPY_DEST_ENDIAN__SHIFT 0x00000000
+#define RB_COPY_DEST_INFO__COPY_DEST_LINEAR__SHIFT 0x00000003
+#define RB_COPY_DEST_INFO__COPY_DEST_FORMAT__SHIFT 0x00000004
+#define RB_COPY_DEST_INFO__COPY_DEST_SWAP__SHIFT 0x00000008
+#define RB_COPY_DEST_INFO__COPY_DEST_DITHER_MODE__SHIFT 0x0000000a
+#define RB_COPY_DEST_INFO__COPY_DEST_DITHER_TYPE__SHIFT 0x0000000c
+#define RB_COPY_DEST_INFO__COPY_MASK_WRITE_RED__SHIFT 0x0000000e
+#define RB_COPY_DEST_INFO__COPY_MASK_WRITE_GREEN__SHIFT 0x0000000f
+#define RB_COPY_DEST_INFO__COPY_MASK_WRITE_BLUE__SHIFT 0x00000010
+#define RB_COPY_DEST_INFO__COPY_MASK_WRITE_ALPHA__SHIFT 0x00000011
+
+// RB_COPY_DEST_PIXEL_OFFSET
+#define RB_COPY_DEST_PIXEL_OFFSET__OFFSET_X__SHIFT 0x00000000
+#define RB_COPY_DEST_PIXEL_OFFSET__OFFSET_Y__SHIFT 0x0000000d
+
+// RB_DEPTH_CLEAR
+#define RB_DEPTH_CLEAR__DEPTH_CLEAR__SHIFT 0x00000000
+
+// RB_SAMPLE_COUNT_CTL
+#define RB_SAMPLE_COUNT_CTL__RESET_SAMPLE_COUNT__SHIFT 0x00000000
+#define RB_SAMPLE_COUNT_CTL__COPY_SAMPLE_COUNT__SHIFT 0x00000001
+
+// RB_SAMPLE_COUNT_ADDR
+#define RB_SAMPLE_COUNT_ADDR__SAMPLE_COUNT_ADDR__SHIFT 0x00000000
+
+// RB_BC_CONTROL
+#define RB_BC_CONTROL__ACCUM_LINEAR_MODE_ENABLE__SHIFT 0x00000000
+#define RB_BC_CONTROL__ACCUM_TIMEOUT_SELECT__SHIFT 0x00000001
+#define RB_BC_CONTROL__DISABLE_EDRAM_CAM__SHIFT 0x00000003
+#define RB_BC_CONTROL__DISABLE_EZ_FAST_CONTEXT_SWITCH__SHIFT 0x00000004
+#define RB_BC_CONTROL__DISABLE_EZ_NULL_ZCMD_DROP__SHIFT 0x00000005
+#define RB_BC_CONTROL__DISABLE_LZ_NULL_ZCMD_DROP__SHIFT 0x00000006
+#define RB_BC_CONTROL__ENABLE_AZ_THROTTLE__SHIFT 0x00000007
+#define RB_BC_CONTROL__AZ_THROTTLE_COUNT__SHIFT 0x00000008
+#define RB_BC_CONTROL__ENABLE_CRC_UPDATE__SHIFT 0x0000000e
+#define RB_BC_CONTROL__CRC_MODE__SHIFT 0x0000000f
+#define RB_BC_CONTROL__DISABLE_SAMPLE_COUNTERS__SHIFT 0x00000010
+#define RB_BC_CONTROL__DISABLE_ACCUM__SHIFT 0x00000011
+#define RB_BC_CONTROL__ACCUM_ALLOC_MASK__SHIFT 0x00000012
+#define RB_BC_CONTROL__LINEAR_PERFORMANCE_ENABLE__SHIFT 0x00000016
+#define RB_BC_CONTROL__ACCUM_DATA_FIFO_LIMIT__SHIFT 0x00000017
+#define RB_BC_CONTROL__MEM_EXPORT_TIMEOUT_SELECT__SHIFT 0x0000001b
+#define RB_BC_CONTROL__MEM_EXPORT_LINEAR_MODE_ENABLE__SHIFT 0x0000001d
+#define RB_BC_CONTROL__RESERVED9__SHIFT 0x0000001e
+#define RB_BC_CONTROL__RESERVED10__SHIFT 0x0000001f
+
+// RB_EDRAM_INFO
+#define RB_EDRAM_INFO__EDRAM_SIZE__SHIFT 0x00000000
+#define RB_EDRAM_INFO__EDRAM_MAPPING_MODE__SHIFT 0x00000004
+#define RB_EDRAM_INFO__EDRAM_RANGE__SHIFT 0x0000000e
+
+// RB_CRC_RD_PORT
+#define RB_CRC_RD_PORT__CRC_DATA__SHIFT 0x00000000
+
+// RB_CRC_CONTROL
+#define RB_CRC_CONTROL__CRC_RD_ADVANCE__SHIFT 0x00000000
+
+// RB_CRC_MASK
+#define RB_CRC_MASK__CRC_MASK__SHIFT 0x00000000
+
+// RB_PERFCOUNTER0_SELECT
+#define RB_PERFCOUNTER0_SELECT__PERF_SEL__SHIFT 0x00000000
+
+// RB_PERFCOUNTER0_LOW
+#define RB_PERFCOUNTER0_LOW__PERF_COUNT__SHIFT 0x00000000
+
+// RB_PERFCOUNTER0_HI
+#define RB_PERFCOUNTER0_HI__PERF_COUNT__SHIFT 0x00000000
+
+// RB_TOTAL_SAMPLES
+#define RB_TOTAL_SAMPLES__TOTAL_SAMPLES__SHIFT 0x00000000
+
+// RB_ZPASS_SAMPLES
+#define RB_ZPASS_SAMPLES__ZPASS_SAMPLES__SHIFT 0x00000000
+
+// RB_ZFAIL_SAMPLES
+#define RB_ZFAIL_SAMPLES__ZFAIL_SAMPLES__SHIFT 0x00000000
+
+// RB_SFAIL_SAMPLES
+#define RB_SFAIL_SAMPLES__SFAIL_SAMPLES__SHIFT 0x00000000
+
+// RB_DEBUG_0
+#define RB_DEBUG_0__RDREQ_CTL_Z1_PRE_FULL__SHIFT 0x00000000
+#define RB_DEBUG_0__RDREQ_CTL_Z0_PRE_FULL__SHIFT 0x00000001
+#define RB_DEBUG_0__RDREQ_CTL_C1_PRE_FULL__SHIFT 0x00000002
+#define RB_DEBUG_0__RDREQ_CTL_C0_PRE_FULL__SHIFT 0x00000003
+#define RB_DEBUG_0__RDREQ_E1_ORDERING_FULL__SHIFT 0x00000004
+#define RB_DEBUG_0__RDREQ_E0_ORDERING_FULL__SHIFT 0x00000005
+#define RB_DEBUG_0__RDREQ_Z1_FULL__SHIFT 0x00000006
+#define RB_DEBUG_0__RDREQ_Z0_FULL__SHIFT 0x00000007
+#define RB_DEBUG_0__RDREQ_C1_FULL__SHIFT 0x00000008
+#define RB_DEBUG_0__RDREQ_C0_FULL__SHIFT 0x00000009
+#define RB_DEBUG_0__WRREQ_E1_MACRO_HI_FULL__SHIFT 0x0000000a
+#define RB_DEBUG_0__WRREQ_E1_MACRO_LO_FULL__SHIFT 0x0000000b
+#define RB_DEBUG_0__WRREQ_E0_MACRO_HI_FULL__SHIFT 0x0000000c
+#define RB_DEBUG_0__WRREQ_E0_MACRO_LO_FULL__SHIFT 0x0000000d
+#define RB_DEBUG_0__WRREQ_C_WE_HI_FULL__SHIFT 0x0000000e
+#define RB_DEBUG_0__WRREQ_C_WE_LO_FULL__SHIFT 0x0000000f
+#define RB_DEBUG_0__WRREQ_Z1_FULL__SHIFT 0x00000010
+#define RB_DEBUG_0__WRREQ_Z0_FULL__SHIFT 0x00000011
+#define RB_DEBUG_0__WRREQ_C1_FULL__SHIFT 0x00000012
+#define RB_DEBUG_0__WRREQ_C0_FULL__SHIFT 0x00000013
+#define RB_DEBUG_0__CMDFIFO_Z1_HOLD_FULL__SHIFT 0x00000014
+#define RB_DEBUG_0__CMDFIFO_Z0_HOLD_FULL__SHIFT 0x00000015
+#define RB_DEBUG_0__CMDFIFO_C1_HOLD_FULL__SHIFT 0x00000016
+#define RB_DEBUG_0__CMDFIFO_C0_HOLD_FULL__SHIFT 0x00000017
+#define RB_DEBUG_0__CMDFIFO_Z_ORDERING_FULL__SHIFT 0x00000018
+#define RB_DEBUG_0__CMDFIFO_C_ORDERING_FULL__SHIFT 0x00000019
+#define RB_DEBUG_0__C_SX_LAT_FULL__SHIFT 0x0000001a
+#define RB_DEBUG_0__C_SX_CMD_FULL__SHIFT 0x0000001b
+#define RB_DEBUG_0__C_EZ_TILE_FULL__SHIFT 0x0000001c
+#define RB_DEBUG_0__C_REQ_FULL__SHIFT 0x0000001d
+#define RB_DEBUG_0__C_MASK_FULL__SHIFT 0x0000001e
+#define RB_DEBUG_0__EZ_INFSAMP_FULL__SHIFT 0x0000001f
+
+// RB_DEBUG_1
+#define RB_DEBUG_1__RDREQ_Z1_CMD_EMPTY__SHIFT 0x00000000
+#define RB_DEBUG_1__RDREQ_Z0_CMD_EMPTY__SHIFT 0x00000001
+#define RB_DEBUG_1__RDREQ_C1_CMD_EMPTY__SHIFT 0x00000002
+#define RB_DEBUG_1__RDREQ_C0_CMD_EMPTY__SHIFT 0x00000003
+#define RB_DEBUG_1__RDREQ_E1_ORDERING_EMPTY__SHIFT 0x00000004
+#define RB_DEBUG_1__RDREQ_E0_ORDERING_EMPTY__SHIFT 0x00000005
+#define RB_DEBUG_1__RDREQ_Z1_EMPTY__SHIFT 0x00000006
+#define RB_DEBUG_1__RDREQ_Z0_EMPTY__SHIFT 0x00000007
+#define RB_DEBUG_1__RDREQ_C1_EMPTY__SHIFT 0x00000008
+#define RB_DEBUG_1__RDREQ_C0_EMPTY__SHIFT 0x00000009
+#define RB_DEBUG_1__WRREQ_E1_MACRO_HI_EMPTY__SHIFT 0x0000000a
+#define RB_DEBUG_1__WRREQ_E1_MACRO_LO_EMPTY__SHIFT 0x0000000b
+#define RB_DEBUG_1__WRREQ_E0_MACRO_HI_EMPTY__SHIFT 0x0000000c
+#define RB_DEBUG_1__WRREQ_E0_MACRO_LO_EMPTY__SHIFT 0x0000000d
+#define RB_DEBUG_1__WRREQ_C_WE_HI_EMPTY__SHIFT 0x0000000e
+#define RB_DEBUG_1__WRREQ_C_WE_LO_EMPTY__SHIFT 0x0000000f
+#define RB_DEBUG_1__WRREQ_Z1_EMPTY__SHIFT 0x00000010
+#define RB_DEBUG_1__WRREQ_Z0_EMPTY__SHIFT 0x00000011
+#define RB_DEBUG_1__WRREQ_C1_PRE_EMPTY__SHIFT 0x00000012
+#define RB_DEBUG_1__WRREQ_C0_PRE_EMPTY__SHIFT 0x00000013
+#define RB_DEBUG_1__CMDFIFO_Z1_HOLD_EMPTY__SHIFT 0x00000014
+#define RB_DEBUG_1__CMDFIFO_Z0_HOLD_EMPTY__SHIFT 0x00000015
+#define RB_DEBUG_1__CMDFIFO_C1_HOLD_EMPTY__SHIFT 0x00000016
+#define RB_DEBUG_1__CMDFIFO_C0_HOLD_EMPTY__SHIFT 0x00000017
+#define RB_DEBUG_1__CMDFIFO_Z_ORDERING_EMPTY__SHIFT 0x00000018
+#define RB_DEBUG_1__CMDFIFO_C_ORDERING_EMPTY__SHIFT 0x00000019
+#define RB_DEBUG_1__C_SX_LAT_EMPTY__SHIFT 0x0000001a
+#define RB_DEBUG_1__C_SX_CMD_EMPTY__SHIFT 0x0000001b
+#define RB_DEBUG_1__C_EZ_TILE_EMPTY__SHIFT 0x0000001c
+#define RB_DEBUG_1__C_REQ_EMPTY__SHIFT 0x0000001d
+#define RB_DEBUG_1__C_MASK_EMPTY__SHIFT 0x0000001e
+#define RB_DEBUG_1__EZ_INFSAMP_EMPTY__SHIFT 0x0000001f
+
+// RB_DEBUG_2
+#define RB_DEBUG_2__TILE_FIFO_COUNT__SHIFT 0x00000000
+#define RB_DEBUG_2__SX_LAT_FIFO_COUNT__SHIFT 0x00000004
+#define RB_DEBUG_2__MEM_EXPORT_FLAG__SHIFT 0x0000000b
+#define RB_DEBUG_2__SYSMEM_BLEND_FLAG__SHIFT 0x0000000c
+#define RB_DEBUG_2__CURRENT_TILE_EVENT__SHIFT 0x0000000d
+#define RB_DEBUG_2__EZ_INFTILE_FULL__SHIFT 0x0000000e
+#define RB_DEBUG_2__EZ_MASK_LOWER_FULL__SHIFT 0x0000000f
+#define RB_DEBUG_2__EZ_MASK_UPPER_FULL__SHIFT 0x00000010
+#define RB_DEBUG_2__Z0_MASK_FULL__SHIFT 0x00000011
+#define RB_DEBUG_2__Z1_MASK_FULL__SHIFT 0x00000012
+#define RB_DEBUG_2__Z0_REQ_FULL__SHIFT 0x00000013
+#define RB_DEBUG_2__Z1_REQ_FULL__SHIFT 0x00000014
+#define RB_DEBUG_2__Z_SAMP_FULL__SHIFT 0x00000015
+#define RB_DEBUG_2__Z_TILE_FULL__SHIFT 0x00000016
+#define RB_DEBUG_2__EZ_INFTILE_EMPTY__SHIFT 0x00000017
+#define RB_DEBUG_2__EZ_MASK_LOWER_EMPTY__SHIFT 0x00000018
+#define RB_DEBUG_2__EZ_MASK_UPPER_EMPTY__SHIFT 0x00000019
+#define RB_DEBUG_2__Z0_MASK_EMPTY__SHIFT 0x0000001a
+#define RB_DEBUG_2__Z1_MASK_EMPTY__SHIFT 0x0000001b
+#define RB_DEBUG_2__Z0_REQ_EMPTY__SHIFT 0x0000001c
+#define RB_DEBUG_2__Z1_REQ_EMPTY__SHIFT 0x0000001d
+#define RB_DEBUG_2__Z_SAMP_EMPTY__SHIFT 0x0000001e
+#define RB_DEBUG_2__Z_TILE_EMPTY__SHIFT 0x0000001f
+
+// RB_DEBUG_3
+#define RB_DEBUG_3__ACCUM_VALID__SHIFT 0x00000000
+#define RB_DEBUG_3__ACCUM_FLUSHING__SHIFT 0x00000004
+#define RB_DEBUG_3__ACCUM_WRITE_CLEAN_COUNT__SHIFT 0x00000008
+#define RB_DEBUG_3__ACCUM_INPUT_REG_VALID__SHIFT 0x0000000e
+#define RB_DEBUG_3__ACCUM_DATA_FIFO_CNT__SHIFT 0x0000000f
+#define RB_DEBUG_3__SHD_FULL__SHIFT 0x00000013
+#define RB_DEBUG_3__SHD_EMPTY__SHIFT 0x00000014
+#define RB_DEBUG_3__EZ_RETURN_LOWER_EMPTY__SHIFT 0x00000015
+#define RB_DEBUG_3__EZ_RETURN_UPPER_EMPTY__SHIFT 0x00000016
+#define RB_DEBUG_3__EZ_RETURN_LOWER_FULL__SHIFT 0x00000017
+#define RB_DEBUG_3__EZ_RETURN_UPPER_FULL__SHIFT 0x00000018
+#define RB_DEBUG_3__ZEXP_LOWER_EMPTY__SHIFT 0x00000019
+#define RB_DEBUG_3__ZEXP_UPPER_EMPTY__SHIFT 0x0000001a
+#define RB_DEBUG_3__ZEXP_LOWER_FULL__SHIFT 0x0000001b
+#define RB_DEBUG_3__ZEXP_UPPER_FULL__SHIFT 0x0000001c
+
+// RB_DEBUG_4
+#define RB_DEBUG_4__GMEM_RD_ACCESS_FLAG__SHIFT 0x00000000
+#define RB_DEBUG_4__GMEM_WR_ACCESS_FLAG__SHIFT 0x00000001
+#define RB_DEBUG_4__SYSMEM_RD_ACCESS_FLAG__SHIFT 0x00000002
+#define RB_DEBUG_4__SYSMEM_WR_ACCESS_FLAG__SHIFT 0x00000003
+#define RB_DEBUG_4__ACCUM_DATA_FIFO_EMPTY__SHIFT 0x00000004
+#define RB_DEBUG_4__ACCUM_ORDER_FIFO_EMPTY__SHIFT 0x00000005
+#define RB_DEBUG_4__ACCUM_DATA_FIFO_FULL__SHIFT 0x00000006
+#define RB_DEBUG_4__ACCUM_ORDER_FIFO_FULL__SHIFT 0x00000007
+#define RB_DEBUG_4__SYSMEM_WRITE_COUNT_OVERFLOW__SHIFT 0x00000008
+#define RB_DEBUG_4__CONTEXT_COUNT_DEBUG__SHIFT 0x00000009
+
+// RB_FLAG_CONTROL
+#define RB_FLAG_CONTROL__DEBUG_FLAG_CLEAR__SHIFT 0x00000000
+
+// BC_DUMMY_CRAYRB_ENUMS
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_DEPTH_FORMAT__SHIFT 0x00000000
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_SURFACE_SWAP__SHIFT 0x00000006
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_DEPTH_ARRAY__SHIFT 0x00000007
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_ARRAY__SHIFT 0x00000009
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_COLOR_FORMAT__SHIFT 0x0000000b
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_SURFACE_NUMBER__SHIFT 0x00000011
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_SURFACE_FORMAT__SHIFT 0x00000014
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_SURFACE_TILING__SHIFT 0x0000001a
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_SURFACE_ARRAY__SHIFT 0x0000001b
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_RB_COPY_DEST_INFO_NUMBER__SHIFT 0x0000001d
+
+// BC_DUMMY_CRAYRB_MOREENUMS
+#define BC_DUMMY_CRAYRB_MOREENUMS__DUMMY_CRAYRB_COLORARRAYX__SHIFT 0x00000000
+
+#endif
diff --git a/drivers/mxc/amd-gpu/include/reg/yamato/14/yamato_struct.h b/drivers/mxc/amd-gpu/include/reg/yamato/14/yamato_struct.h
new file mode 100644
index 000000000000..e8402cda4463
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/reg/yamato/14/yamato_struct.h
@@ -0,0 +1,51151 @@
+/* Copyright (c) 2002,2007-2009, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#if !defined (_CP_FIDDLE_H)
+#define _CP_FIDDLE_H
+
+
+/*******************************************************
+ * Enums
+ *******************************************************/
+
+
+/*******************************************************
+ * Values
+ *******************************************************/
+
+
+/*******************************************************
+ * Structures
+ *******************************************************/
+
+/*
+ * CP_RB_BASE struct
+ */
+
+#define CP_RB_BASE_RB_BASE_SIZE 27
+
+#define CP_RB_BASE_RB_BASE_SHIFT 5
+
+#define CP_RB_BASE_RB_BASE_MASK 0xffffffe0
+
+#define CP_RB_BASE_MASK \
+ (CP_RB_BASE_RB_BASE_MASK)
+
+#define CP_RB_BASE(rb_base) \
+ ((rb_base << CP_RB_BASE_RB_BASE_SHIFT))
+
+#define CP_RB_BASE_GET_RB_BASE(cp_rb_base) \
+ ((cp_rb_base & CP_RB_BASE_RB_BASE_MASK) >> CP_RB_BASE_RB_BASE_SHIFT)
+
+#define CP_RB_BASE_SET_RB_BASE(cp_rb_base_reg, rb_base) \
+ cp_rb_base_reg = (cp_rb_base_reg & ~CP_RB_BASE_RB_BASE_MASK) | (rb_base << CP_RB_BASE_RB_BASE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_rb_base_t {
+ unsigned int : 5;
+ unsigned int rb_base : CP_RB_BASE_RB_BASE_SIZE;
+ } cp_rb_base_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_rb_base_t {
+ unsigned int rb_base : CP_RB_BASE_RB_BASE_SIZE;
+ unsigned int : 5;
+ } cp_rb_base_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_rb_base_t f;
+} cp_rb_base_u;
+
+
+/*
+ * CP_RB_CNTL struct
+ */
+
+#define CP_RB_CNTL_RB_BUFSZ_SIZE 6
+#define CP_RB_CNTL_RB_BLKSZ_SIZE 6
+#define CP_RB_CNTL_BUF_SWAP_SIZE 2
+#define CP_RB_CNTL_RB_POLL_EN_SIZE 1
+#define CP_RB_CNTL_RB_NO_UPDATE_SIZE 1
+#define CP_RB_CNTL_RB_RPTR_WR_ENA_SIZE 1
+
+#define CP_RB_CNTL_RB_BUFSZ_SHIFT 0
+#define CP_RB_CNTL_RB_BLKSZ_SHIFT 8
+#define CP_RB_CNTL_BUF_SWAP_SHIFT 16
+#define CP_RB_CNTL_RB_POLL_EN_SHIFT 20
+#define CP_RB_CNTL_RB_NO_UPDATE_SHIFT 27
+#define CP_RB_CNTL_RB_RPTR_WR_ENA_SHIFT 31
+
+#define CP_RB_CNTL_RB_BUFSZ_MASK 0x0000003f
+#define CP_RB_CNTL_RB_BLKSZ_MASK 0x00003f00
+#define CP_RB_CNTL_BUF_SWAP_MASK 0x00030000
+#define CP_RB_CNTL_RB_POLL_EN_MASK 0x00100000
+#define CP_RB_CNTL_RB_NO_UPDATE_MASK 0x08000000
+#define CP_RB_CNTL_RB_RPTR_WR_ENA_MASK 0x80000000
+
+#define CP_RB_CNTL_MASK \
+ (CP_RB_CNTL_RB_BUFSZ_MASK | \
+ CP_RB_CNTL_RB_BLKSZ_MASK | \
+ CP_RB_CNTL_BUF_SWAP_MASK | \
+ CP_RB_CNTL_RB_POLL_EN_MASK | \
+ CP_RB_CNTL_RB_NO_UPDATE_MASK | \
+ CP_RB_CNTL_RB_RPTR_WR_ENA_MASK)
+
+#define CP_RB_CNTL(rb_bufsz, rb_blksz, buf_swap, rb_poll_en, rb_no_update, rb_rptr_wr_ena) \
+ ((rb_bufsz << CP_RB_CNTL_RB_BUFSZ_SHIFT) | \
+ (rb_blksz << CP_RB_CNTL_RB_BLKSZ_SHIFT) | \
+ (buf_swap << CP_RB_CNTL_BUF_SWAP_SHIFT) | \
+ (rb_poll_en << CP_RB_CNTL_RB_POLL_EN_SHIFT) | \
+ (rb_no_update << CP_RB_CNTL_RB_NO_UPDATE_SHIFT) | \
+ (rb_rptr_wr_ena << CP_RB_CNTL_RB_RPTR_WR_ENA_SHIFT))
+
+#define CP_RB_CNTL_GET_RB_BUFSZ(cp_rb_cntl) \
+ ((cp_rb_cntl & CP_RB_CNTL_RB_BUFSZ_MASK) >> CP_RB_CNTL_RB_BUFSZ_SHIFT)
+#define CP_RB_CNTL_GET_RB_BLKSZ(cp_rb_cntl) \
+ ((cp_rb_cntl & CP_RB_CNTL_RB_BLKSZ_MASK) >> CP_RB_CNTL_RB_BLKSZ_SHIFT)
+#define CP_RB_CNTL_GET_BUF_SWAP(cp_rb_cntl) \
+ ((cp_rb_cntl & CP_RB_CNTL_BUF_SWAP_MASK) >> CP_RB_CNTL_BUF_SWAP_SHIFT)
+#define CP_RB_CNTL_GET_RB_POLL_EN(cp_rb_cntl) \
+ ((cp_rb_cntl & CP_RB_CNTL_RB_POLL_EN_MASK) >> CP_RB_CNTL_RB_POLL_EN_SHIFT)
+#define CP_RB_CNTL_GET_RB_NO_UPDATE(cp_rb_cntl) \
+ ((cp_rb_cntl & CP_RB_CNTL_RB_NO_UPDATE_MASK) >> CP_RB_CNTL_RB_NO_UPDATE_SHIFT)
+#define CP_RB_CNTL_GET_RB_RPTR_WR_ENA(cp_rb_cntl) \
+ ((cp_rb_cntl & CP_RB_CNTL_RB_RPTR_WR_ENA_MASK) >> CP_RB_CNTL_RB_RPTR_WR_ENA_SHIFT)
+
+#define CP_RB_CNTL_SET_RB_BUFSZ(cp_rb_cntl_reg, rb_bufsz) \
+ cp_rb_cntl_reg = (cp_rb_cntl_reg & ~CP_RB_CNTL_RB_BUFSZ_MASK) | (rb_bufsz << CP_RB_CNTL_RB_BUFSZ_SHIFT)
+#define CP_RB_CNTL_SET_RB_BLKSZ(cp_rb_cntl_reg, rb_blksz) \
+ cp_rb_cntl_reg = (cp_rb_cntl_reg & ~CP_RB_CNTL_RB_BLKSZ_MASK) | (rb_blksz << CP_RB_CNTL_RB_BLKSZ_SHIFT)
+#define CP_RB_CNTL_SET_BUF_SWAP(cp_rb_cntl_reg, buf_swap) \
+ cp_rb_cntl_reg = (cp_rb_cntl_reg & ~CP_RB_CNTL_BUF_SWAP_MASK) | (buf_swap << CP_RB_CNTL_BUF_SWAP_SHIFT)
+#define CP_RB_CNTL_SET_RB_POLL_EN(cp_rb_cntl_reg, rb_poll_en) \
+ cp_rb_cntl_reg = (cp_rb_cntl_reg & ~CP_RB_CNTL_RB_POLL_EN_MASK) | (rb_poll_en << CP_RB_CNTL_RB_POLL_EN_SHIFT)
+#define CP_RB_CNTL_SET_RB_NO_UPDATE(cp_rb_cntl_reg, rb_no_update) \
+ cp_rb_cntl_reg = (cp_rb_cntl_reg & ~CP_RB_CNTL_RB_NO_UPDATE_MASK) | (rb_no_update << CP_RB_CNTL_RB_NO_UPDATE_SHIFT)
+#define CP_RB_CNTL_SET_RB_RPTR_WR_ENA(cp_rb_cntl_reg, rb_rptr_wr_ena) \
+ cp_rb_cntl_reg = (cp_rb_cntl_reg & ~CP_RB_CNTL_RB_RPTR_WR_ENA_MASK) | (rb_rptr_wr_ena << CP_RB_CNTL_RB_RPTR_WR_ENA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_rb_cntl_t {
+ unsigned int rb_bufsz : CP_RB_CNTL_RB_BUFSZ_SIZE;
+ unsigned int : 2;
+ unsigned int rb_blksz : CP_RB_CNTL_RB_BLKSZ_SIZE;
+ unsigned int : 2;
+ unsigned int buf_swap : CP_RB_CNTL_BUF_SWAP_SIZE;
+ unsigned int : 2;
+ unsigned int rb_poll_en : CP_RB_CNTL_RB_POLL_EN_SIZE;
+ unsigned int : 6;
+ unsigned int rb_no_update : CP_RB_CNTL_RB_NO_UPDATE_SIZE;
+ unsigned int : 3;
+ unsigned int rb_rptr_wr_ena : CP_RB_CNTL_RB_RPTR_WR_ENA_SIZE;
+ } cp_rb_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_rb_cntl_t {
+ unsigned int rb_rptr_wr_ena : CP_RB_CNTL_RB_RPTR_WR_ENA_SIZE;
+ unsigned int : 3;
+ unsigned int rb_no_update : CP_RB_CNTL_RB_NO_UPDATE_SIZE;
+ unsigned int : 6;
+ unsigned int rb_poll_en : CP_RB_CNTL_RB_POLL_EN_SIZE;
+ unsigned int : 2;
+ unsigned int buf_swap : CP_RB_CNTL_BUF_SWAP_SIZE;
+ unsigned int : 2;
+ unsigned int rb_blksz : CP_RB_CNTL_RB_BLKSZ_SIZE;
+ unsigned int : 2;
+ unsigned int rb_bufsz : CP_RB_CNTL_RB_BUFSZ_SIZE;
+ } cp_rb_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_rb_cntl_t f;
+} cp_rb_cntl_u;
+
+
+/*
+ * CP_RB_RPTR_ADDR struct
+ */
+
+#define CP_RB_RPTR_ADDR_RB_RPTR_SWAP_SIZE 2
+#define CP_RB_RPTR_ADDR_RB_RPTR_ADDR_SIZE 30
+
+#define CP_RB_RPTR_ADDR_RB_RPTR_SWAP_SHIFT 0
+#define CP_RB_RPTR_ADDR_RB_RPTR_ADDR_SHIFT 2
+
+#define CP_RB_RPTR_ADDR_RB_RPTR_SWAP_MASK 0x00000003
+#define CP_RB_RPTR_ADDR_RB_RPTR_ADDR_MASK 0xfffffffc
+
+#define CP_RB_RPTR_ADDR_MASK \
+ (CP_RB_RPTR_ADDR_RB_RPTR_SWAP_MASK | \
+ CP_RB_RPTR_ADDR_RB_RPTR_ADDR_MASK)
+
+#define CP_RB_RPTR_ADDR(rb_rptr_swap, rb_rptr_addr) \
+ ((rb_rptr_swap << CP_RB_RPTR_ADDR_RB_RPTR_SWAP_SHIFT) | \
+ (rb_rptr_addr << CP_RB_RPTR_ADDR_RB_RPTR_ADDR_SHIFT))
+
+#define CP_RB_RPTR_ADDR_GET_RB_RPTR_SWAP(cp_rb_rptr_addr) \
+ ((cp_rb_rptr_addr & CP_RB_RPTR_ADDR_RB_RPTR_SWAP_MASK) >> CP_RB_RPTR_ADDR_RB_RPTR_SWAP_SHIFT)
+#define CP_RB_RPTR_ADDR_GET_RB_RPTR_ADDR(cp_rb_rptr_addr) \
+ ((cp_rb_rptr_addr & CP_RB_RPTR_ADDR_RB_RPTR_ADDR_MASK) >> CP_RB_RPTR_ADDR_RB_RPTR_ADDR_SHIFT)
+
+#define CP_RB_RPTR_ADDR_SET_RB_RPTR_SWAP(cp_rb_rptr_addr_reg, rb_rptr_swap) \
+ cp_rb_rptr_addr_reg = (cp_rb_rptr_addr_reg & ~CP_RB_RPTR_ADDR_RB_RPTR_SWAP_MASK) | (rb_rptr_swap << CP_RB_RPTR_ADDR_RB_RPTR_SWAP_SHIFT)
+#define CP_RB_RPTR_ADDR_SET_RB_RPTR_ADDR(cp_rb_rptr_addr_reg, rb_rptr_addr) \
+ cp_rb_rptr_addr_reg = (cp_rb_rptr_addr_reg & ~CP_RB_RPTR_ADDR_RB_RPTR_ADDR_MASK) | (rb_rptr_addr << CP_RB_RPTR_ADDR_RB_RPTR_ADDR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_rb_rptr_addr_t {
+ unsigned int rb_rptr_swap : CP_RB_RPTR_ADDR_RB_RPTR_SWAP_SIZE;
+ unsigned int rb_rptr_addr : CP_RB_RPTR_ADDR_RB_RPTR_ADDR_SIZE;
+ } cp_rb_rptr_addr_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_rb_rptr_addr_t {
+ unsigned int rb_rptr_addr : CP_RB_RPTR_ADDR_RB_RPTR_ADDR_SIZE;
+ unsigned int rb_rptr_swap : CP_RB_RPTR_ADDR_RB_RPTR_SWAP_SIZE;
+ } cp_rb_rptr_addr_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_rb_rptr_addr_t f;
+} cp_rb_rptr_addr_u;
+
+
+/*
+ * CP_RB_RPTR struct
+ */
+
+#define CP_RB_RPTR_RB_RPTR_SIZE 20
+
+#define CP_RB_RPTR_RB_RPTR_SHIFT 0
+
+#define CP_RB_RPTR_RB_RPTR_MASK 0x000fffff
+
+#define CP_RB_RPTR_MASK \
+ (CP_RB_RPTR_RB_RPTR_MASK)
+
+#define CP_RB_RPTR(rb_rptr) \
+ ((rb_rptr << CP_RB_RPTR_RB_RPTR_SHIFT))
+
+#define CP_RB_RPTR_GET_RB_RPTR(cp_rb_rptr) \
+ ((cp_rb_rptr & CP_RB_RPTR_RB_RPTR_MASK) >> CP_RB_RPTR_RB_RPTR_SHIFT)
+
+#define CP_RB_RPTR_SET_RB_RPTR(cp_rb_rptr_reg, rb_rptr) \
+ cp_rb_rptr_reg = (cp_rb_rptr_reg & ~CP_RB_RPTR_RB_RPTR_MASK) | (rb_rptr << CP_RB_RPTR_RB_RPTR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_rb_rptr_t {
+ unsigned int rb_rptr : CP_RB_RPTR_RB_RPTR_SIZE;
+ unsigned int : 12;
+ } cp_rb_rptr_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_rb_rptr_t {
+ unsigned int : 12;
+ unsigned int rb_rptr : CP_RB_RPTR_RB_RPTR_SIZE;
+ } cp_rb_rptr_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_rb_rptr_t f;
+} cp_rb_rptr_u;
+
+
+/*
+ * CP_RB_RPTR_WR struct
+ */
+
+#define CP_RB_RPTR_WR_RB_RPTR_WR_SIZE 20
+
+#define CP_RB_RPTR_WR_RB_RPTR_WR_SHIFT 0
+
+#define CP_RB_RPTR_WR_RB_RPTR_WR_MASK 0x000fffff
+
+#define CP_RB_RPTR_WR_MASK \
+ (CP_RB_RPTR_WR_RB_RPTR_WR_MASK)
+
+#define CP_RB_RPTR_WR(rb_rptr_wr) \
+ ((rb_rptr_wr << CP_RB_RPTR_WR_RB_RPTR_WR_SHIFT))
+
+#define CP_RB_RPTR_WR_GET_RB_RPTR_WR(cp_rb_rptr_wr) \
+ ((cp_rb_rptr_wr & CP_RB_RPTR_WR_RB_RPTR_WR_MASK) >> CP_RB_RPTR_WR_RB_RPTR_WR_SHIFT)
+
+#define CP_RB_RPTR_WR_SET_RB_RPTR_WR(cp_rb_rptr_wr_reg, rb_rptr_wr) \
+ cp_rb_rptr_wr_reg = (cp_rb_rptr_wr_reg & ~CP_RB_RPTR_WR_RB_RPTR_WR_MASK) | (rb_rptr_wr << CP_RB_RPTR_WR_RB_RPTR_WR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_rb_rptr_wr_t {
+ unsigned int rb_rptr_wr : CP_RB_RPTR_WR_RB_RPTR_WR_SIZE;
+ unsigned int : 12;
+ } cp_rb_rptr_wr_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_rb_rptr_wr_t {
+ unsigned int : 12;
+ unsigned int rb_rptr_wr : CP_RB_RPTR_WR_RB_RPTR_WR_SIZE;
+ } cp_rb_rptr_wr_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_rb_rptr_wr_t f;
+} cp_rb_rptr_wr_u;
+
+
+/*
+ * CP_RB_WPTR struct
+ */
+
+#define CP_RB_WPTR_RB_WPTR_SIZE 20
+
+#define CP_RB_WPTR_RB_WPTR_SHIFT 0
+
+#define CP_RB_WPTR_RB_WPTR_MASK 0x000fffff
+
+#define CP_RB_WPTR_MASK \
+ (CP_RB_WPTR_RB_WPTR_MASK)
+
+#define CP_RB_WPTR(rb_wptr) \
+ ((rb_wptr << CP_RB_WPTR_RB_WPTR_SHIFT))
+
+#define CP_RB_WPTR_GET_RB_WPTR(cp_rb_wptr) \
+ ((cp_rb_wptr & CP_RB_WPTR_RB_WPTR_MASK) >> CP_RB_WPTR_RB_WPTR_SHIFT)
+
+#define CP_RB_WPTR_SET_RB_WPTR(cp_rb_wptr_reg, rb_wptr) \
+ cp_rb_wptr_reg = (cp_rb_wptr_reg & ~CP_RB_WPTR_RB_WPTR_MASK) | (rb_wptr << CP_RB_WPTR_RB_WPTR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_rb_wptr_t {
+ unsigned int rb_wptr : CP_RB_WPTR_RB_WPTR_SIZE;
+ unsigned int : 12;
+ } cp_rb_wptr_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_rb_wptr_t {
+ unsigned int : 12;
+ unsigned int rb_wptr : CP_RB_WPTR_RB_WPTR_SIZE;
+ } cp_rb_wptr_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_rb_wptr_t f;
+} cp_rb_wptr_u;
+
+
+/*
+ * CP_RB_WPTR_DELAY struct
+ */
+
+#define CP_RB_WPTR_DELAY_PRE_WRITE_TIMER_SIZE 28
+#define CP_RB_WPTR_DELAY_PRE_WRITE_LIMIT_SIZE 4
+
+#define CP_RB_WPTR_DELAY_PRE_WRITE_TIMER_SHIFT 0
+#define CP_RB_WPTR_DELAY_PRE_WRITE_LIMIT_SHIFT 28
+
+#define CP_RB_WPTR_DELAY_PRE_WRITE_TIMER_MASK 0x0fffffff
+#define CP_RB_WPTR_DELAY_PRE_WRITE_LIMIT_MASK 0xf0000000
+
+#define CP_RB_WPTR_DELAY_MASK \
+ (CP_RB_WPTR_DELAY_PRE_WRITE_TIMER_MASK | \
+ CP_RB_WPTR_DELAY_PRE_WRITE_LIMIT_MASK)
+
+#define CP_RB_WPTR_DELAY(pre_write_timer, pre_write_limit) \
+ ((pre_write_timer << CP_RB_WPTR_DELAY_PRE_WRITE_TIMER_SHIFT) | \
+ (pre_write_limit << CP_RB_WPTR_DELAY_PRE_WRITE_LIMIT_SHIFT))
+
+#define CP_RB_WPTR_DELAY_GET_PRE_WRITE_TIMER(cp_rb_wptr_delay) \
+ ((cp_rb_wptr_delay & CP_RB_WPTR_DELAY_PRE_WRITE_TIMER_MASK) >> CP_RB_WPTR_DELAY_PRE_WRITE_TIMER_SHIFT)
+#define CP_RB_WPTR_DELAY_GET_PRE_WRITE_LIMIT(cp_rb_wptr_delay) \
+ ((cp_rb_wptr_delay & CP_RB_WPTR_DELAY_PRE_WRITE_LIMIT_MASK) >> CP_RB_WPTR_DELAY_PRE_WRITE_LIMIT_SHIFT)
+
+#define CP_RB_WPTR_DELAY_SET_PRE_WRITE_TIMER(cp_rb_wptr_delay_reg, pre_write_timer) \
+ cp_rb_wptr_delay_reg = (cp_rb_wptr_delay_reg & ~CP_RB_WPTR_DELAY_PRE_WRITE_TIMER_MASK) | (pre_write_timer << CP_RB_WPTR_DELAY_PRE_WRITE_TIMER_SHIFT)
+#define CP_RB_WPTR_DELAY_SET_PRE_WRITE_LIMIT(cp_rb_wptr_delay_reg, pre_write_limit) \
+ cp_rb_wptr_delay_reg = (cp_rb_wptr_delay_reg & ~CP_RB_WPTR_DELAY_PRE_WRITE_LIMIT_MASK) | (pre_write_limit << CP_RB_WPTR_DELAY_PRE_WRITE_LIMIT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_rb_wptr_delay_t {
+ unsigned int pre_write_timer : CP_RB_WPTR_DELAY_PRE_WRITE_TIMER_SIZE;
+ unsigned int pre_write_limit : CP_RB_WPTR_DELAY_PRE_WRITE_LIMIT_SIZE;
+ } cp_rb_wptr_delay_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_rb_wptr_delay_t {
+ unsigned int pre_write_limit : CP_RB_WPTR_DELAY_PRE_WRITE_LIMIT_SIZE;
+ unsigned int pre_write_timer : CP_RB_WPTR_DELAY_PRE_WRITE_TIMER_SIZE;
+ } cp_rb_wptr_delay_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_rb_wptr_delay_t f;
+} cp_rb_wptr_delay_u;
+
+
+/*
+ * CP_RB_WPTR_BASE struct
+ */
+
+#define CP_RB_WPTR_BASE_RB_WPTR_SWAP_SIZE 2
+#define CP_RB_WPTR_BASE_RB_WPTR_BASE_SIZE 30
+
+#define CP_RB_WPTR_BASE_RB_WPTR_SWAP_SHIFT 0
+#define CP_RB_WPTR_BASE_RB_WPTR_BASE_SHIFT 2
+
+#define CP_RB_WPTR_BASE_RB_WPTR_SWAP_MASK 0x00000003
+#define CP_RB_WPTR_BASE_RB_WPTR_BASE_MASK 0xfffffffc
+
+#define CP_RB_WPTR_BASE_MASK \
+ (CP_RB_WPTR_BASE_RB_WPTR_SWAP_MASK | \
+ CP_RB_WPTR_BASE_RB_WPTR_BASE_MASK)
+
+#define CP_RB_WPTR_BASE(rb_wptr_swap, rb_wptr_base) \
+ ((rb_wptr_swap << CP_RB_WPTR_BASE_RB_WPTR_SWAP_SHIFT) | \
+ (rb_wptr_base << CP_RB_WPTR_BASE_RB_WPTR_BASE_SHIFT))
+
+#define CP_RB_WPTR_BASE_GET_RB_WPTR_SWAP(cp_rb_wptr_base) \
+ ((cp_rb_wptr_base & CP_RB_WPTR_BASE_RB_WPTR_SWAP_MASK) >> CP_RB_WPTR_BASE_RB_WPTR_SWAP_SHIFT)
+#define CP_RB_WPTR_BASE_GET_RB_WPTR_BASE(cp_rb_wptr_base) \
+ ((cp_rb_wptr_base & CP_RB_WPTR_BASE_RB_WPTR_BASE_MASK) >> CP_RB_WPTR_BASE_RB_WPTR_BASE_SHIFT)
+
+#define CP_RB_WPTR_BASE_SET_RB_WPTR_SWAP(cp_rb_wptr_base_reg, rb_wptr_swap) \
+ cp_rb_wptr_base_reg = (cp_rb_wptr_base_reg & ~CP_RB_WPTR_BASE_RB_WPTR_SWAP_MASK) | (rb_wptr_swap << CP_RB_WPTR_BASE_RB_WPTR_SWAP_SHIFT)
+#define CP_RB_WPTR_BASE_SET_RB_WPTR_BASE(cp_rb_wptr_base_reg, rb_wptr_base) \
+ cp_rb_wptr_base_reg = (cp_rb_wptr_base_reg & ~CP_RB_WPTR_BASE_RB_WPTR_BASE_MASK) | (rb_wptr_base << CP_RB_WPTR_BASE_RB_WPTR_BASE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_rb_wptr_base_t {
+ unsigned int rb_wptr_swap : CP_RB_WPTR_BASE_RB_WPTR_SWAP_SIZE;
+ unsigned int rb_wptr_base : CP_RB_WPTR_BASE_RB_WPTR_BASE_SIZE;
+ } cp_rb_wptr_base_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_rb_wptr_base_t {
+ unsigned int rb_wptr_base : CP_RB_WPTR_BASE_RB_WPTR_BASE_SIZE;
+ unsigned int rb_wptr_swap : CP_RB_WPTR_BASE_RB_WPTR_SWAP_SIZE;
+ } cp_rb_wptr_base_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_rb_wptr_base_t f;
+} cp_rb_wptr_base_u;
+
+
+/*
+ * CP_IB1_BASE struct
+ */
+
+#define CP_IB1_BASE_IB1_BASE_SIZE 30
+
+#define CP_IB1_BASE_IB1_BASE_SHIFT 2
+
+#define CP_IB1_BASE_IB1_BASE_MASK 0xfffffffc
+
+#define CP_IB1_BASE_MASK \
+ (CP_IB1_BASE_IB1_BASE_MASK)
+
+#define CP_IB1_BASE(ib1_base) \
+ ((ib1_base << CP_IB1_BASE_IB1_BASE_SHIFT))
+
+#define CP_IB1_BASE_GET_IB1_BASE(cp_ib1_base) \
+ ((cp_ib1_base & CP_IB1_BASE_IB1_BASE_MASK) >> CP_IB1_BASE_IB1_BASE_SHIFT)
+
+#define CP_IB1_BASE_SET_IB1_BASE(cp_ib1_base_reg, ib1_base) \
+ cp_ib1_base_reg = (cp_ib1_base_reg & ~CP_IB1_BASE_IB1_BASE_MASK) | (ib1_base << CP_IB1_BASE_IB1_BASE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_ib1_base_t {
+ unsigned int : 2;
+ unsigned int ib1_base : CP_IB1_BASE_IB1_BASE_SIZE;
+ } cp_ib1_base_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_ib1_base_t {
+ unsigned int ib1_base : CP_IB1_BASE_IB1_BASE_SIZE;
+ unsigned int : 2;
+ } cp_ib1_base_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_ib1_base_t f;
+} cp_ib1_base_u;
+
+
+/*
+ * CP_IB1_BUFSZ struct
+ */
+
+#define CP_IB1_BUFSZ_IB1_BUFSZ_SIZE 20
+
+#define CP_IB1_BUFSZ_IB1_BUFSZ_SHIFT 0
+
+#define CP_IB1_BUFSZ_IB1_BUFSZ_MASK 0x000fffff
+
+#define CP_IB1_BUFSZ_MASK \
+ (CP_IB1_BUFSZ_IB1_BUFSZ_MASK)
+
+#define CP_IB1_BUFSZ(ib1_bufsz) \
+ ((ib1_bufsz << CP_IB1_BUFSZ_IB1_BUFSZ_SHIFT))
+
+#define CP_IB1_BUFSZ_GET_IB1_BUFSZ(cp_ib1_bufsz) \
+ ((cp_ib1_bufsz & CP_IB1_BUFSZ_IB1_BUFSZ_MASK) >> CP_IB1_BUFSZ_IB1_BUFSZ_SHIFT)
+
+#define CP_IB1_BUFSZ_SET_IB1_BUFSZ(cp_ib1_bufsz_reg, ib1_bufsz) \
+ cp_ib1_bufsz_reg = (cp_ib1_bufsz_reg & ~CP_IB1_BUFSZ_IB1_BUFSZ_MASK) | (ib1_bufsz << CP_IB1_BUFSZ_IB1_BUFSZ_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_ib1_bufsz_t {
+ unsigned int ib1_bufsz : CP_IB1_BUFSZ_IB1_BUFSZ_SIZE;
+ unsigned int : 12;
+ } cp_ib1_bufsz_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_ib1_bufsz_t {
+ unsigned int : 12;
+ unsigned int ib1_bufsz : CP_IB1_BUFSZ_IB1_BUFSZ_SIZE;
+ } cp_ib1_bufsz_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_ib1_bufsz_t f;
+} cp_ib1_bufsz_u;
+
+
+/*
+ * CP_IB2_BASE struct
+ */
+
+#define CP_IB2_BASE_IB2_BASE_SIZE 30
+
+#define CP_IB2_BASE_IB2_BASE_SHIFT 2
+
+#define CP_IB2_BASE_IB2_BASE_MASK 0xfffffffc
+
+#define CP_IB2_BASE_MASK \
+ (CP_IB2_BASE_IB2_BASE_MASK)
+
+#define CP_IB2_BASE(ib2_base) \
+ ((ib2_base << CP_IB2_BASE_IB2_BASE_SHIFT))
+
+#define CP_IB2_BASE_GET_IB2_BASE(cp_ib2_base) \
+ ((cp_ib2_base & CP_IB2_BASE_IB2_BASE_MASK) >> CP_IB2_BASE_IB2_BASE_SHIFT)
+
+#define CP_IB2_BASE_SET_IB2_BASE(cp_ib2_base_reg, ib2_base) \
+ cp_ib2_base_reg = (cp_ib2_base_reg & ~CP_IB2_BASE_IB2_BASE_MASK) | (ib2_base << CP_IB2_BASE_IB2_BASE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_ib2_base_t {
+ unsigned int : 2;
+ unsigned int ib2_base : CP_IB2_BASE_IB2_BASE_SIZE;
+ } cp_ib2_base_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_ib2_base_t {
+ unsigned int ib2_base : CP_IB2_BASE_IB2_BASE_SIZE;
+ unsigned int : 2;
+ } cp_ib2_base_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_ib2_base_t f;
+} cp_ib2_base_u;
+
+
+/*
+ * CP_IB2_BUFSZ struct
+ */
+
+#define CP_IB2_BUFSZ_IB2_BUFSZ_SIZE 20
+
+#define CP_IB2_BUFSZ_IB2_BUFSZ_SHIFT 0
+
+#define CP_IB2_BUFSZ_IB2_BUFSZ_MASK 0x000fffff
+
+#define CP_IB2_BUFSZ_MASK \
+ (CP_IB2_BUFSZ_IB2_BUFSZ_MASK)
+
+#define CP_IB2_BUFSZ(ib2_bufsz) \
+ ((ib2_bufsz << CP_IB2_BUFSZ_IB2_BUFSZ_SHIFT))
+
+#define CP_IB2_BUFSZ_GET_IB2_BUFSZ(cp_ib2_bufsz) \
+ ((cp_ib2_bufsz & CP_IB2_BUFSZ_IB2_BUFSZ_MASK) >> CP_IB2_BUFSZ_IB2_BUFSZ_SHIFT)
+
+#define CP_IB2_BUFSZ_SET_IB2_BUFSZ(cp_ib2_bufsz_reg, ib2_bufsz) \
+ cp_ib2_bufsz_reg = (cp_ib2_bufsz_reg & ~CP_IB2_BUFSZ_IB2_BUFSZ_MASK) | (ib2_bufsz << CP_IB2_BUFSZ_IB2_BUFSZ_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_ib2_bufsz_t {
+ unsigned int ib2_bufsz : CP_IB2_BUFSZ_IB2_BUFSZ_SIZE;
+ unsigned int : 12;
+ } cp_ib2_bufsz_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_ib2_bufsz_t {
+ unsigned int : 12;
+ unsigned int ib2_bufsz : CP_IB2_BUFSZ_IB2_BUFSZ_SIZE;
+ } cp_ib2_bufsz_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_ib2_bufsz_t f;
+} cp_ib2_bufsz_u;
+
+
+/*
+ * CP_ST_BASE struct
+ */
+
+#define CP_ST_BASE_ST_BASE_SIZE 30
+
+#define CP_ST_BASE_ST_BASE_SHIFT 2
+
+#define CP_ST_BASE_ST_BASE_MASK 0xfffffffc
+
+#define CP_ST_BASE_MASK \
+ (CP_ST_BASE_ST_BASE_MASK)
+
+#define CP_ST_BASE(st_base) \
+ ((st_base << CP_ST_BASE_ST_BASE_SHIFT))
+
+#define CP_ST_BASE_GET_ST_BASE(cp_st_base) \
+ ((cp_st_base & CP_ST_BASE_ST_BASE_MASK) >> CP_ST_BASE_ST_BASE_SHIFT)
+
+#define CP_ST_BASE_SET_ST_BASE(cp_st_base_reg, st_base) \
+ cp_st_base_reg = (cp_st_base_reg & ~CP_ST_BASE_ST_BASE_MASK) | (st_base << CP_ST_BASE_ST_BASE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_st_base_t {
+ unsigned int : 2;
+ unsigned int st_base : CP_ST_BASE_ST_BASE_SIZE;
+ } cp_st_base_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_st_base_t {
+ unsigned int st_base : CP_ST_BASE_ST_BASE_SIZE;
+ unsigned int : 2;
+ } cp_st_base_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_st_base_t f;
+} cp_st_base_u;
+
+
+/*
+ * CP_ST_BUFSZ struct
+ */
+
+#define CP_ST_BUFSZ_ST_BUFSZ_SIZE 20
+
+#define CP_ST_BUFSZ_ST_BUFSZ_SHIFT 0
+
+#define CP_ST_BUFSZ_ST_BUFSZ_MASK 0x000fffff
+
+#define CP_ST_BUFSZ_MASK \
+ (CP_ST_BUFSZ_ST_BUFSZ_MASK)
+
+#define CP_ST_BUFSZ(st_bufsz) \
+ ((st_bufsz << CP_ST_BUFSZ_ST_BUFSZ_SHIFT))
+
+#define CP_ST_BUFSZ_GET_ST_BUFSZ(cp_st_bufsz) \
+ ((cp_st_bufsz & CP_ST_BUFSZ_ST_BUFSZ_MASK) >> CP_ST_BUFSZ_ST_BUFSZ_SHIFT)
+
+#define CP_ST_BUFSZ_SET_ST_BUFSZ(cp_st_bufsz_reg, st_bufsz) \
+ cp_st_bufsz_reg = (cp_st_bufsz_reg & ~CP_ST_BUFSZ_ST_BUFSZ_MASK) | (st_bufsz << CP_ST_BUFSZ_ST_BUFSZ_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_st_bufsz_t {
+ unsigned int st_bufsz : CP_ST_BUFSZ_ST_BUFSZ_SIZE;
+ unsigned int : 12;
+ } cp_st_bufsz_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_st_bufsz_t {
+ unsigned int : 12;
+ unsigned int st_bufsz : CP_ST_BUFSZ_ST_BUFSZ_SIZE;
+ } cp_st_bufsz_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_st_bufsz_t f;
+} cp_st_bufsz_u;
+
+
+/*
+ * CP_QUEUE_THRESHOLDS struct
+ */
+
+#define CP_QUEUE_THRESHOLDS_CSQ_IB1_START_SIZE 4
+#define CP_QUEUE_THRESHOLDS_CSQ_IB2_START_SIZE 4
+#define CP_QUEUE_THRESHOLDS_CSQ_ST_START_SIZE 4
+
+#define CP_QUEUE_THRESHOLDS_CSQ_IB1_START_SHIFT 0
+#define CP_QUEUE_THRESHOLDS_CSQ_IB2_START_SHIFT 8
+#define CP_QUEUE_THRESHOLDS_CSQ_ST_START_SHIFT 16
+
+#define CP_QUEUE_THRESHOLDS_CSQ_IB1_START_MASK 0x0000000f
+#define CP_QUEUE_THRESHOLDS_CSQ_IB2_START_MASK 0x00000f00
+#define CP_QUEUE_THRESHOLDS_CSQ_ST_START_MASK 0x000f0000
+
+#define CP_QUEUE_THRESHOLDS_MASK \
+ (CP_QUEUE_THRESHOLDS_CSQ_IB1_START_MASK | \
+ CP_QUEUE_THRESHOLDS_CSQ_IB2_START_MASK | \
+ CP_QUEUE_THRESHOLDS_CSQ_ST_START_MASK)
+
+#define CP_QUEUE_THRESHOLDS(csq_ib1_start, csq_ib2_start, csq_st_start) \
+ ((csq_ib1_start << CP_QUEUE_THRESHOLDS_CSQ_IB1_START_SHIFT) | \
+ (csq_ib2_start << CP_QUEUE_THRESHOLDS_CSQ_IB2_START_SHIFT) | \
+ (csq_st_start << CP_QUEUE_THRESHOLDS_CSQ_ST_START_SHIFT))
+
+#define CP_QUEUE_THRESHOLDS_GET_CSQ_IB1_START(cp_queue_thresholds) \
+ ((cp_queue_thresholds & CP_QUEUE_THRESHOLDS_CSQ_IB1_START_MASK) >> CP_QUEUE_THRESHOLDS_CSQ_IB1_START_SHIFT)
+#define CP_QUEUE_THRESHOLDS_GET_CSQ_IB2_START(cp_queue_thresholds) \
+ ((cp_queue_thresholds & CP_QUEUE_THRESHOLDS_CSQ_IB2_START_MASK) >> CP_QUEUE_THRESHOLDS_CSQ_IB2_START_SHIFT)
+#define CP_QUEUE_THRESHOLDS_GET_CSQ_ST_START(cp_queue_thresholds) \
+ ((cp_queue_thresholds & CP_QUEUE_THRESHOLDS_CSQ_ST_START_MASK) >> CP_QUEUE_THRESHOLDS_CSQ_ST_START_SHIFT)
+
+#define CP_QUEUE_THRESHOLDS_SET_CSQ_IB1_START(cp_queue_thresholds_reg, csq_ib1_start) \
+ cp_queue_thresholds_reg = (cp_queue_thresholds_reg & ~CP_QUEUE_THRESHOLDS_CSQ_IB1_START_MASK) | (csq_ib1_start << CP_QUEUE_THRESHOLDS_CSQ_IB1_START_SHIFT)
+#define CP_QUEUE_THRESHOLDS_SET_CSQ_IB2_START(cp_queue_thresholds_reg, csq_ib2_start) \
+ cp_queue_thresholds_reg = (cp_queue_thresholds_reg & ~CP_QUEUE_THRESHOLDS_CSQ_IB2_START_MASK) | (csq_ib2_start << CP_QUEUE_THRESHOLDS_CSQ_IB2_START_SHIFT)
+#define CP_QUEUE_THRESHOLDS_SET_CSQ_ST_START(cp_queue_thresholds_reg, csq_st_start) \
+ cp_queue_thresholds_reg = (cp_queue_thresholds_reg & ~CP_QUEUE_THRESHOLDS_CSQ_ST_START_MASK) | (csq_st_start << CP_QUEUE_THRESHOLDS_CSQ_ST_START_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_queue_thresholds_t {
+ unsigned int csq_ib1_start : CP_QUEUE_THRESHOLDS_CSQ_IB1_START_SIZE;
+ unsigned int : 4;
+ unsigned int csq_ib2_start : CP_QUEUE_THRESHOLDS_CSQ_IB2_START_SIZE;
+ unsigned int : 4;
+ unsigned int csq_st_start : CP_QUEUE_THRESHOLDS_CSQ_ST_START_SIZE;
+ unsigned int : 12;
+ } cp_queue_thresholds_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_queue_thresholds_t {
+ unsigned int : 12;
+ unsigned int csq_st_start : CP_QUEUE_THRESHOLDS_CSQ_ST_START_SIZE;
+ unsigned int : 4;
+ unsigned int csq_ib2_start : CP_QUEUE_THRESHOLDS_CSQ_IB2_START_SIZE;
+ unsigned int : 4;
+ unsigned int csq_ib1_start : CP_QUEUE_THRESHOLDS_CSQ_IB1_START_SIZE;
+ } cp_queue_thresholds_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_queue_thresholds_t f;
+} cp_queue_thresholds_u;
+
+
+/*
+ * CP_MEQ_THRESHOLDS struct
+ */
+
+#define CP_MEQ_THRESHOLDS_MEQ_END_SIZE 5
+#define CP_MEQ_THRESHOLDS_ROQ_END_SIZE 5
+
+#define CP_MEQ_THRESHOLDS_MEQ_END_SHIFT 16
+#define CP_MEQ_THRESHOLDS_ROQ_END_SHIFT 24
+
+#define CP_MEQ_THRESHOLDS_MEQ_END_MASK 0x001f0000
+#define CP_MEQ_THRESHOLDS_ROQ_END_MASK 0x1f000000
+
+#define CP_MEQ_THRESHOLDS_MASK \
+ (CP_MEQ_THRESHOLDS_MEQ_END_MASK | \
+ CP_MEQ_THRESHOLDS_ROQ_END_MASK)
+
+#define CP_MEQ_THRESHOLDS(meq_end, roq_end) \
+ ((meq_end << CP_MEQ_THRESHOLDS_MEQ_END_SHIFT) | \
+ (roq_end << CP_MEQ_THRESHOLDS_ROQ_END_SHIFT))
+
+#define CP_MEQ_THRESHOLDS_GET_MEQ_END(cp_meq_thresholds) \
+ ((cp_meq_thresholds & CP_MEQ_THRESHOLDS_MEQ_END_MASK) >> CP_MEQ_THRESHOLDS_MEQ_END_SHIFT)
+#define CP_MEQ_THRESHOLDS_GET_ROQ_END(cp_meq_thresholds) \
+ ((cp_meq_thresholds & CP_MEQ_THRESHOLDS_ROQ_END_MASK) >> CP_MEQ_THRESHOLDS_ROQ_END_SHIFT)
+
+#define CP_MEQ_THRESHOLDS_SET_MEQ_END(cp_meq_thresholds_reg, meq_end) \
+ cp_meq_thresholds_reg = (cp_meq_thresholds_reg & ~CP_MEQ_THRESHOLDS_MEQ_END_MASK) | (meq_end << CP_MEQ_THRESHOLDS_MEQ_END_SHIFT)
+#define CP_MEQ_THRESHOLDS_SET_ROQ_END(cp_meq_thresholds_reg, roq_end) \
+ cp_meq_thresholds_reg = (cp_meq_thresholds_reg & ~CP_MEQ_THRESHOLDS_ROQ_END_MASK) | (roq_end << CP_MEQ_THRESHOLDS_ROQ_END_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_meq_thresholds_t {
+ unsigned int : 16;
+ unsigned int meq_end : CP_MEQ_THRESHOLDS_MEQ_END_SIZE;
+ unsigned int : 3;
+ unsigned int roq_end : CP_MEQ_THRESHOLDS_ROQ_END_SIZE;
+ unsigned int : 3;
+ } cp_meq_thresholds_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_meq_thresholds_t {
+ unsigned int : 3;
+ unsigned int roq_end : CP_MEQ_THRESHOLDS_ROQ_END_SIZE;
+ unsigned int : 3;
+ unsigned int meq_end : CP_MEQ_THRESHOLDS_MEQ_END_SIZE;
+ unsigned int : 16;
+ } cp_meq_thresholds_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_meq_thresholds_t f;
+} cp_meq_thresholds_u;
+
+
+/*
+ * CP_CSQ_AVAIL struct
+ */
+
+#define CP_CSQ_AVAIL_CSQ_CNT_RING_SIZE 7
+#define CP_CSQ_AVAIL_CSQ_CNT_IB1_SIZE 7
+#define CP_CSQ_AVAIL_CSQ_CNT_IB2_SIZE 7
+
+#define CP_CSQ_AVAIL_CSQ_CNT_RING_SHIFT 0
+#define CP_CSQ_AVAIL_CSQ_CNT_IB1_SHIFT 8
+#define CP_CSQ_AVAIL_CSQ_CNT_IB2_SHIFT 16
+
+#define CP_CSQ_AVAIL_CSQ_CNT_RING_MASK 0x0000007f
+#define CP_CSQ_AVAIL_CSQ_CNT_IB1_MASK 0x00007f00
+#define CP_CSQ_AVAIL_CSQ_CNT_IB2_MASK 0x007f0000
+
+#define CP_CSQ_AVAIL_MASK \
+ (CP_CSQ_AVAIL_CSQ_CNT_RING_MASK | \
+ CP_CSQ_AVAIL_CSQ_CNT_IB1_MASK | \
+ CP_CSQ_AVAIL_CSQ_CNT_IB2_MASK)
+
+#define CP_CSQ_AVAIL(csq_cnt_ring, csq_cnt_ib1, csq_cnt_ib2) \
+ ((csq_cnt_ring << CP_CSQ_AVAIL_CSQ_CNT_RING_SHIFT) | \
+ (csq_cnt_ib1 << CP_CSQ_AVAIL_CSQ_CNT_IB1_SHIFT) | \
+ (csq_cnt_ib2 << CP_CSQ_AVAIL_CSQ_CNT_IB2_SHIFT))
+
+#define CP_CSQ_AVAIL_GET_CSQ_CNT_RING(cp_csq_avail) \
+ ((cp_csq_avail & CP_CSQ_AVAIL_CSQ_CNT_RING_MASK) >> CP_CSQ_AVAIL_CSQ_CNT_RING_SHIFT)
+#define CP_CSQ_AVAIL_GET_CSQ_CNT_IB1(cp_csq_avail) \
+ ((cp_csq_avail & CP_CSQ_AVAIL_CSQ_CNT_IB1_MASK) >> CP_CSQ_AVAIL_CSQ_CNT_IB1_SHIFT)
+#define CP_CSQ_AVAIL_GET_CSQ_CNT_IB2(cp_csq_avail) \
+ ((cp_csq_avail & CP_CSQ_AVAIL_CSQ_CNT_IB2_MASK) >> CP_CSQ_AVAIL_CSQ_CNT_IB2_SHIFT)
+
+#define CP_CSQ_AVAIL_SET_CSQ_CNT_RING(cp_csq_avail_reg, csq_cnt_ring) \
+ cp_csq_avail_reg = (cp_csq_avail_reg & ~CP_CSQ_AVAIL_CSQ_CNT_RING_MASK) | (csq_cnt_ring << CP_CSQ_AVAIL_CSQ_CNT_RING_SHIFT)
+#define CP_CSQ_AVAIL_SET_CSQ_CNT_IB1(cp_csq_avail_reg, csq_cnt_ib1) \
+ cp_csq_avail_reg = (cp_csq_avail_reg & ~CP_CSQ_AVAIL_CSQ_CNT_IB1_MASK) | (csq_cnt_ib1 << CP_CSQ_AVAIL_CSQ_CNT_IB1_SHIFT)
+#define CP_CSQ_AVAIL_SET_CSQ_CNT_IB2(cp_csq_avail_reg, csq_cnt_ib2) \
+ cp_csq_avail_reg = (cp_csq_avail_reg & ~CP_CSQ_AVAIL_CSQ_CNT_IB2_MASK) | (csq_cnt_ib2 << CP_CSQ_AVAIL_CSQ_CNT_IB2_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_csq_avail_t {
+ unsigned int csq_cnt_ring : CP_CSQ_AVAIL_CSQ_CNT_RING_SIZE;
+ unsigned int : 1;
+ unsigned int csq_cnt_ib1 : CP_CSQ_AVAIL_CSQ_CNT_IB1_SIZE;
+ unsigned int : 1;
+ unsigned int csq_cnt_ib2 : CP_CSQ_AVAIL_CSQ_CNT_IB2_SIZE;
+ unsigned int : 9;
+ } cp_csq_avail_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_csq_avail_t {
+ unsigned int : 9;
+ unsigned int csq_cnt_ib2 : CP_CSQ_AVAIL_CSQ_CNT_IB2_SIZE;
+ unsigned int : 1;
+ unsigned int csq_cnt_ib1 : CP_CSQ_AVAIL_CSQ_CNT_IB1_SIZE;
+ unsigned int : 1;
+ unsigned int csq_cnt_ring : CP_CSQ_AVAIL_CSQ_CNT_RING_SIZE;
+ } cp_csq_avail_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_csq_avail_t f;
+} cp_csq_avail_u;
+
+
+/*
+ * CP_STQ_AVAIL struct
+ */
+
+#define CP_STQ_AVAIL_STQ_CNT_ST_SIZE 7
+
+#define CP_STQ_AVAIL_STQ_CNT_ST_SHIFT 0
+
+#define CP_STQ_AVAIL_STQ_CNT_ST_MASK 0x0000007f
+
+#define CP_STQ_AVAIL_MASK \
+ (CP_STQ_AVAIL_STQ_CNT_ST_MASK)
+
+#define CP_STQ_AVAIL(stq_cnt_st) \
+ ((stq_cnt_st << CP_STQ_AVAIL_STQ_CNT_ST_SHIFT))
+
+#define CP_STQ_AVAIL_GET_STQ_CNT_ST(cp_stq_avail) \
+ ((cp_stq_avail & CP_STQ_AVAIL_STQ_CNT_ST_MASK) >> CP_STQ_AVAIL_STQ_CNT_ST_SHIFT)
+
+#define CP_STQ_AVAIL_SET_STQ_CNT_ST(cp_stq_avail_reg, stq_cnt_st) \
+ cp_stq_avail_reg = (cp_stq_avail_reg & ~CP_STQ_AVAIL_STQ_CNT_ST_MASK) | (stq_cnt_st << CP_STQ_AVAIL_STQ_CNT_ST_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_stq_avail_t {
+ unsigned int stq_cnt_st : CP_STQ_AVAIL_STQ_CNT_ST_SIZE;
+ unsigned int : 25;
+ } cp_stq_avail_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_stq_avail_t {
+ unsigned int : 25;
+ unsigned int stq_cnt_st : CP_STQ_AVAIL_STQ_CNT_ST_SIZE;
+ } cp_stq_avail_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_stq_avail_t f;
+} cp_stq_avail_u;
+
+
+/*
+ * CP_MEQ_AVAIL struct
+ */
+
+#define CP_MEQ_AVAIL_MEQ_CNT_SIZE 5
+
+#define CP_MEQ_AVAIL_MEQ_CNT_SHIFT 0
+
+#define CP_MEQ_AVAIL_MEQ_CNT_MASK 0x0000001f
+
+#define CP_MEQ_AVAIL_MASK \
+ (CP_MEQ_AVAIL_MEQ_CNT_MASK)
+
+#define CP_MEQ_AVAIL(meq_cnt) \
+ ((meq_cnt << CP_MEQ_AVAIL_MEQ_CNT_SHIFT))
+
+#define CP_MEQ_AVAIL_GET_MEQ_CNT(cp_meq_avail) \
+ ((cp_meq_avail & CP_MEQ_AVAIL_MEQ_CNT_MASK) >> CP_MEQ_AVAIL_MEQ_CNT_SHIFT)
+
+#define CP_MEQ_AVAIL_SET_MEQ_CNT(cp_meq_avail_reg, meq_cnt) \
+ cp_meq_avail_reg = (cp_meq_avail_reg & ~CP_MEQ_AVAIL_MEQ_CNT_MASK) | (meq_cnt << CP_MEQ_AVAIL_MEQ_CNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_meq_avail_t {
+ unsigned int meq_cnt : CP_MEQ_AVAIL_MEQ_CNT_SIZE;
+ unsigned int : 27;
+ } cp_meq_avail_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_meq_avail_t {
+ unsigned int : 27;
+ unsigned int meq_cnt : CP_MEQ_AVAIL_MEQ_CNT_SIZE;
+ } cp_meq_avail_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_meq_avail_t f;
+} cp_meq_avail_u;
+
+
+/*
+ * CP_CSQ_RB_STAT struct
+ */
+
+#define CP_CSQ_RB_STAT_CSQ_RPTR_PRIMARY_SIZE 7
+#define CP_CSQ_RB_STAT_CSQ_WPTR_PRIMARY_SIZE 7
+
+#define CP_CSQ_RB_STAT_CSQ_RPTR_PRIMARY_SHIFT 0
+#define CP_CSQ_RB_STAT_CSQ_WPTR_PRIMARY_SHIFT 16
+
+#define CP_CSQ_RB_STAT_CSQ_RPTR_PRIMARY_MASK 0x0000007f
+#define CP_CSQ_RB_STAT_CSQ_WPTR_PRIMARY_MASK 0x007f0000
+
+#define CP_CSQ_RB_STAT_MASK \
+ (CP_CSQ_RB_STAT_CSQ_RPTR_PRIMARY_MASK | \
+ CP_CSQ_RB_STAT_CSQ_WPTR_PRIMARY_MASK)
+
+#define CP_CSQ_RB_STAT(csq_rptr_primary, csq_wptr_primary) \
+ ((csq_rptr_primary << CP_CSQ_RB_STAT_CSQ_RPTR_PRIMARY_SHIFT) | \
+ (csq_wptr_primary << CP_CSQ_RB_STAT_CSQ_WPTR_PRIMARY_SHIFT))
+
+#define CP_CSQ_RB_STAT_GET_CSQ_RPTR_PRIMARY(cp_csq_rb_stat) \
+ ((cp_csq_rb_stat & CP_CSQ_RB_STAT_CSQ_RPTR_PRIMARY_MASK) >> CP_CSQ_RB_STAT_CSQ_RPTR_PRIMARY_SHIFT)
+#define CP_CSQ_RB_STAT_GET_CSQ_WPTR_PRIMARY(cp_csq_rb_stat) \
+ ((cp_csq_rb_stat & CP_CSQ_RB_STAT_CSQ_WPTR_PRIMARY_MASK) >> CP_CSQ_RB_STAT_CSQ_WPTR_PRIMARY_SHIFT)
+
+#define CP_CSQ_RB_STAT_SET_CSQ_RPTR_PRIMARY(cp_csq_rb_stat_reg, csq_rptr_primary) \
+ cp_csq_rb_stat_reg = (cp_csq_rb_stat_reg & ~CP_CSQ_RB_STAT_CSQ_RPTR_PRIMARY_MASK) | (csq_rptr_primary << CP_CSQ_RB_STAT_CSQ_RPTR_PRIMARY_SHIFT)
+#define CP_CSQ_RB_STAT_SET_CSQ_WPTR_PRIMARY(cp_csq_rb_stat_reg, csq_wptr_primary) \
+ cp_csq_rb_stat_reg = (cp_csq_rb_stat_reg & ~CP_CSQ_RB_STAT_CSQ_WPTR_PRIMARY_MASK) | (csq_wptr_primary << CP_CSQ_RB_STAT_CSQ_WPTR_PRIMARY_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_csq_rb_stat_t {
+ unsigned int csq_rptr_primary : CP_CSQ_RB_STAT_CSQ_RPTR_PRIMARY_SIZE;
+ unsigned int : 9;
+ unsigned int csq_wptr_primary : CP_CSQ_RB_STAT_CSQ_WPTR_PRIMARY_SIZE;
+ unsigned int : 9;
+ } cp_csq_rb_stat_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_csq_rb_stat_t {
+ unsigned int : 9;
+ unsigned int csq_wptr_primary : CP_CSQ_RB_STAT_CSQ_WPTR_PRIMARY_SIZE;
+ unsigned int : 9;
+ unsigned int csq_rptr_primary : CP_CSQ_RB_STAT_CSQ_RPTR_PRIMARY_SIZE;
+ } cp_csq_rb_stat_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_csq_rb_stat_t f;
+} cp_csq_rb_stat_u;
+
+
+/*
+ * CP_CSQ_IB1_STAT struct
+ */
+
+#define CP_CSQ_IB1_STAT_CSQ_RPTR_INDIRECT1_SIZE 7
+#define CP_CSQ_IB1_STAT_CSQ_WPTR_INDIRECT1_SIZE 7
+
+#define CP_CSQ_IB1_STAT_CSQ_RPTR_INDIRECT1_SHIFT 0
+#define CP_CSQ_IB1_STAT_CSQ_WPTR_INDIRECT1_SHIFT 16
+
+#define CP_CSQ_IB1_STAT_CSQ_RPTR_INDIRECT1_MASK 0x0000007f
+#define CP_CSQ_IB1_STAT_CSQ_WPTR_INDIRECT1_MASK 0x007f0000
+
+#define CP_CSQ_IB1_STAT_MASK \
+ (CP_CSQ_IB1_STAT_CSQ_RPTR_INDIRECT1_MASK | \
+ CP_CSQ_IB1_STAT_CSQ_WPTR_INDIRECT1_MASK)
+
+#define CP_CSQ_IB1_STAT(csq_rptr_indirect1, csq_wptr_indirect1) \
+ ((csq_rptr_indirect1 << CP_CSQ_IB1_STAT_CSQ_RPTR_INDIRECT1_SHIFT) | \
+ (csq_wptr_indirect1 << CP_CSQ_IB1_STAT_CSQ_WPTR_INDIRECT1_SHIFT))
+
+#define CP_CSQ_IB1_STAT_GET_CSQ_RPTR_INDIRECT1(cp_csq_ib1_stat) \
+ ((cp_csq_ib1_stat & CP_CSQ_IB1_STAT_CSQ_RPTR_INDIRECT1_MASK) >> CP_CSQ_IB1_STAT_CSQ_RPTR_INDIRECT1_SHIFT)
+#define CP_CSQ_IB1_STAT_GET_CSQ_WPTR_INDIRECT1(cp_csq_ib1_stat) \
+ ((cp_csq_ib1_stat & CP_CSQ_IB1_STAT_CSQ_WPTR_INDIRECT1_MASK) >> CP_CSQ_IB1_STAT_CSQ_WPTR_INDIRECT1_SHIFT)
+
+#define CP_CSQ_IB1_STAT_SET_CSQ_RPTR_INDIRECT1(cp_csq_ib1_stat_reg, csq_rptr_indirect1) \
+ cp_csq_ib1_stat_reg = (cp_csq_ib1_stat_reg & ~CP_CSQ_IB1_STAT_CSQ_RPTR_INDIRECT1_MASK) | (csq_rptr_indirect1 << CP_CSQ_IB1_STAT_CSQ_RPTR_INDIRECT1_SHIFT)
+#define CP_CSQ_IB1_STAT_SET_CSQ_WPTR_INDIRECT1(cp_csq_ib1_stat_reg, csq_wptr_indirect1) \
+ cp_csq_ib1_stat_reg = (cp_csq_ib1_stat_reg & ~CP_CSQ_IB1_STAT_CSQ_WPTR_INDIRECT1_MASK) | (csq_wptr_indirect1 << CP_CSQ_IB1_STAT_CSQ_WPTR_INDIRECT1_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_csq_ib1_stat_t {
+ unsigned int csq_rptr_indirect1 : CP_CSQ_IB1_STAT_CSQ_RPTR_INDIRECT1_SIZE;
+ unsigned int : 9;
+ unsigned int csq_wptr_indirect1 : CP_CSQ_IB1_STAT_CSQ_WPTR_INDIRECT1_SIZE;
+ unsigned int : 9;
+ } cp_csq_ib1_stat_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_csq_ib1_stat_t {
+ unsigned int : 9;
+ unsigned int csq_wptr_indirect1 : CP_CSQ_IB1_STAT_CSQ_WPTR_INDIRECT1_SIZE;
+ unsigned int : 9;
+ unsigned int csq_rptr_indirect1 : CP_CSQ_IB1_STAT_CSQ_RPTR_INDIRECT1_SIZE;
+ } cp_csq_ib1_stat_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_csq_ib1_stat_t f;
+} cp_csq_ib1_stat_u;
+
+
+/*
+ * CP_CSQ_IB2_STAT struct
+ */
+
+#define CP_CSQ_IB2_STAT_CSQ_RPTR_INDIRECT2_SIZE 7
+#define CP_CSQ_IB2_STAT_CSQ_WPTR_INDIRECT2_SIZE 7
+
+#define CP_CSQ_IB2_STAT_CSQ_RPTR_INDIRECT2_SHIFT 0
+#define CP_CSQ_IB2_STAT_CSQ_WPTR_INDIRECT2_SHIFT 16
+
+#define CP_CSQ_IB2_STAT_CSQ_RPTR_INDIRECT2_MASK 0x0000007f
+#define CP_CSQ_IB2_STAT_CSQ_WPTR_INDIRECT2_MASK 0x007f0000
+
+#define CP_CSQ_IB2_STAT_MASK \
+ (CP_CSQ_IB2_STAT_CSQ_RPTR_INDIRECT2_MASK | \
+ CP_CSQ_IB2_STAT_CSQ_WPTR_INDIRECT2_MASK)
+
+#define CP_CSQ_IB2_STAT(csq_rptr_indirect2, csq_wptr_indirect2) \
+ ((csq_rptr_indirect2 << CP_CSQ_IB2_STAT_CSQ_RPTR_INDIRECT2_SHIFT) | \
+ (csq_wptr_indirect2 << CP_CSQ_IB2_STAT_CSQ_WPTR_INDIRECT2_SHIFT))
+
+#define CP_CSQ_IB2_STAT_GET_CSQ_RPTR_INDIRECT2(cp_csq_ib2_stat) \
+ ((cp_csq_ib2_stat & CP_CSQ_IB2_STAT_CSQ_RPTR_INDIRECT2_MASK) >> CP_CSQ_IB2_STAT_CSQ_RPTR_INDIRECT2_SHIFT)
+#define CP_CSQ_IB2_STAT_GET_CSQ_WPTR_INDIRECT2(cp_csq_ib2_stat) \
+ ((cp_csq_ib2_stat & CP_CSQ_IB2_STAT_CSQ_WPTR_INDIRECT2_MASK) >> CP_CSQ_IB2_STAT_CSQ_WPTR_INDIRECT2_SHIFT)
+
+#define CP_CSQ_IB2_STAT_SET_CSQ_RPTR_INDIRECT2(cp_csq_ib2_stat_reg, csq_rptr_indirect2) \
+ cp_csq_ib2_stat_reg = (cp_csq_ib2_stat_reg & ~CP_CSQ_IB2_STAT_CSQ_RPTR_INDIRECT2_MASK) | (csq_rptr_indirect2 << CP_CSQ_IB2_STAT_CSQ_RPTR_INDIRECT2_SHIFT)
+#define CP_CSQ_IB2_STAT_SET_CSQ_WPTR_INDIRECT2(cp_csq_ib2_stat_reg, csq_wptr_indirect2) \
+ cp_csq_ib2_stat_reg = (cp_csq_ib2_stat_reg & ~CP_CSQ_IB2_STAT_CSQ_WPTR_INDIRECT2_MASK) | (csq_wptr_indirect2 << CP_CSQ_IB2_STAT_CSQ_WPTR_INDIRECT2_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_csq_ib2_stat_t {
+ unsigned int csq_rptr_indirect2 : CP_CSQ_IB2_STAT_CSQ_RPTR_INDIRECT2_SIZE;
+ unsigned int : 9;
+ unsigned int csq_wptr_indirect2 : CP_CSQ_IB2_STAT_CSQ_WPTR_INDIRECT2_SIZE;
+ unsigned int : 9;
+ } cp_csq_ib2_stat_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_csq_ib2_stat_t {
+ unsigned int : 9;
+ unsigned int csq_wptr_indirect2 : CP_CSQ_IB2_STAT_CSQ_WPTR_INDIRECT2_SIZE;
+ unsigned int : 9;
+ unsigned int csq_rptr_indirect2 : CP_CSQ_IB2_STAT_CSQ_RPTR_INDIRECT2_SIZE;
+ } cp_csq_ib2_stat_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_csq_ib2_stat_t f;
+} cp_csq_ib2_stat_u;
+
+
+/*
+ * CP_NON_PREFETCH_CNTRS struct
+ */
+
+#define CP_NON_PREFETCH_CNTRS_IB1_COUNTER_SIZE 3
+#define CP_NON_PREFETCH_CNTRS_IB2_COUNTER_SIZE 3
+
+#define CP_NON_PREFETCH_CNTRS_IB1_COUNTER_SHIFT 0
+#define CP_NON_PREFETCH_CNTRS_IB2_COUNTER_SHIFT 8
+
+#define CP_NON_PREFETCH_CNTRS_IB1_COUNTER_MASK 0x00000007
+#define CP_NON_PREFETCH_CNTRS_IB2_COUNTER_MASK 0x00000700
+
+#define CP_NON_PREFETCH_CNTRS_MASK \
+ (CP_NON_PREFETCH_CNTRS_IB1_COUNTER_MASK | \
+ CP_NON_PREFETCH_CNTRS_IB2_COUNTER_MASK)
+
+#define CP_NON_PREFETCH_CNTRS(ib1_counter, ib2_counter) \
+ ((ib1_counter << CP_NON_PREFETCH_CNTRS_IB1_COUNTER_SHIFT) | \
+ (ib2_counter << CP_NON_PREFETCH_CNTRS_IB2_COUNTER_SHIFT))
+
+#define CP_NON_PREFETCH_CNTRS_GET_IB1_COUNTER(cp_non_prefetch_cntrs) \
+ ((cp_non_prefetch_cntrs & CP_NON_PREFETCH_CNTRS_IB1_COUNTER_MASK) >> CP_NON_PREFETCH_CNTRS_IB1_COUNTER_SHIFT)
+#define CP_NON_PREFETCH_CNTRS_GET_IB2_COUNTER(cp_non_prefetch_cntrs) \
+ ((cp_non_prefetch_cntrs & CP_NON_PREFETCH_CNTRS_IB2_COUNTER_MASK) >> CP_NON_PREFETCH_CNTRS_IB2_COUNTER_SHIFT)
+
+#define CP_NON_PREFETCH_CNTRS_SET_IB1_COUNTER(cp_non_prefetch_cntrs_reg, ib1_counter) \
+ cp_non_prefetch_cntrs_reg = (cp_non_prefetch_cntrs_reg & ~CP_NON_PREFETCH_CNTRS_IB1_COUNTER_MASK) | (ib1_counter << CP_NON_PREFETCH_CNTRS_IB1_COUNTER_SHIFT)
+#define CP_NON_PREFETCH_CNTRS_SET_IB2_COUNTER(cp_non_prefetch_cntrs_reg, ib2_counter) \
+ cp_non_prefetch_cntrs_reg = (cp_non_prefetch_cntrs_reg & ~CP_NON_PREFETCH_CNTRS_IB2_COUNTER_MASK) | (ib2_counter << CP_NON_PREFETCH_CNTRS_IB2_COUNTER_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_non_prefetch_cntrs_t {
+ unsigned int ib1_counter : CP_NON_PREFETCH_CNTRS_IB1_COUNTER_SIZE;
+ unsigned int : 5;
+ unsigned int ib2_counter : CP_NON_PREFETCH_CNTRS_IB2_COUNTER_SIZE;
+ unsigned int : 21;
+ } cp_non_prefetch_cntrs_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_non_prefetch_cntrs_t {
+ unsigned int : 21;
+ unsigned int ib2_counter : CP_NON_PREFETCH_CNTRS_IB2_COUNTER_SIZE;
+ unsigned int : 5;
+ unsigned int ib1_counter : CP_NON_PREFETCH_CNTRS_IB1_COUNTER_SIZE;
+ } cp_non_prefetch_cntrs_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_non_prefetch_cntrs_t f;
+} cp_non_prefetch_cntrs_u;
+
+
+/*
+ * CP_STQ_ST_STAT struct
+ */
+
+#define CP_STQ_ST_STAT_STQ_RPTR_ST_SIZE 7
+#define CP_STQ_ST_STAT_STQ_WPTR_ST_SIZE 7
+
+#define CP_STQ_ST_STAT_STQ_RPTR_ST_SHIFT 0
+#define CP_STQ_ST_STAT_STQ_WPTR_ST_SHIFT 16
+
+#define CP_STQ_ST_STAT_STQ_RPTR_ST_MASK 0x0000007f
+#define CP_STQ_ST_STAT_STQ_WPTR_ST_MASK 0x007f0000
+
+#define CP_STQ_ST_STAT_MASK \
+ (CP_STQ_ST_STAT_STQ_RPTR_ST_MASK | \
+ CP_STQ_ST_STAT_STQ_WPTR_ST_MASK)
+
+#define CP_STQ_ST_STAT(stq_rptr_st, stq_wptr_st) \
+ ((stq_rptr_st << CP_STQ_ST_STAT_STQ_RPTR_ST_SHIFT) | \
+ (stq_wptr_st << CP_STQ_ST_STAT_STQ_WPTR_ST_SHIFT))
+
+#define CP_STQ_ST_STAT_GET_STQ_RPTR_ST(cp_stq_st_stat) \
+ ((cp_stq_st_stat & CP_STQ_ST_STAT_STQ_RPTR_ST_MASK) >> CP_STQ_ST_STAT_STQ_RPTR_ST_SHIFT)
+#define CP_STQ_ST_STAT_GET_STQ_WPTR_ST(cp_stq_st_stat) \
+ ((cp_stq_st_stat & CP_STQ_ST_STAT_STQ_WPTR_ST_MASK) >> CP_STQ_ST_STAT_STQ_WPTR_ST_SHIFT)
+
+#define CP_STQ_ST_STAT_SET_STQ_RPTR_ST(cp_stq_st_stat_reg, stq_rptr_st) \
+ cp_stq_st_stat_reg = (cp_stq_st_stat_reg & ~CP_STQ_ST_STAT_STQ_RPTR_ST_MASK) | (stq_rptr_st << CP_STQ_ST_STAT_STQ_RPTR_ST_SHIFT)
+#define CP_STQ_ST_STAT_SET_STQ_WPTR_ST(cp_stq_st_stat_reg, stq_wptr_st) \
+ cp_stq_st_stat_reg = (cp_stq_st_stat_reg & ~CP_STQ_ST_STAT_STQ_WPTR_ST_MASK) | (stq_wptr_st << CP_STQ_ST_STAT_STQ_WPTR_ST_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_stq_st_stat_t {
+ unsigned int stq_rptr_st : CP_STQ_ST_STAT_STQ_RPTR_ST_SIZE;
+ unsigned int : 9;
+ unsigned int stq_wptr_st : CP_STQ_ST_STAT_STQ_WPTR_ST_SIZE;
+ unsigned int : 9;
+ } cp_stq_st_stat_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_stq_st_stat_t {
+ unsigned int : 9;
+ unsigned int stq_wptr_st : CP_STQ_ST_STAT_STQ_WPTR_ST_SIZE;
+ unsigned int : 9;
+ unsigned int stq_rptr_st : CP_STQ_ST_STAT_STQ_RPTR_ST_SIZE;
+ } cp_stq_st_stat_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_stq_st_stat_t f;
+} cp_stq_st_stat_u;
+
+
+/*
+ * CP_MEQ_STAT struct
+ */
+
+#define CP_MEQ_STAT_MEQ_RPTR_SIZE 10
+#define CP_MEQ_STAT_MEQ_WPTR_SIZE 10
+
+#define CP_MEQ_STAT_MEQ_RPTR_SHIFT 0
+#define CP_MEQ_STAT_MEQ_WPTR_SHIFT 16
+
+#define CP_MEQ_STAT_MEQ_RPTR_MASK 0x000003ff
+#define CP_MEQ_STAT_MEQ_WPTR_MASK 0x03ff0000
+
+#define CP_MEQ_STAT_MASK \
+ (CP_MEQ_STAT_MEQ_RPTR_MASK | \
+ CP_MEQ_STAT_MEQ_WPTR_MASK)
+
+#define CP_MEQ_STAT(meq_rptr, meq_wptr) \
+ ((meq_rptr << CP_MEQ_STAT_MEQ_RPTR_SHIFT) | \
+ (meq_wptr << CP_MEQ_STAT_MEQ_WPTR_SHIFT))
+
+#define CP_MEQ_STAT_GET_MEQ_RPTR(cp_meq_stat) \
+ ((cp_meq_stat & CP_MEQ_STAT_MEQ_RPTR_MASK) >> CP_MEQ_STAT_MEQ_RPTR_SHIFT)
+#define CP_MEQ_STAT_GET_MEQ_WPTR(cp_meq_stat) \
+ ((cp_meq_stat & CP_MEQ_STAT_MEQ_WPTR_MASK) >> CP_MEQ_STAT_MEQ_WPTR_SHIFT)
+
+#define CP_MEQ_STAT_SET_MEQ_RPTR(cp_meq_stat_reg, meq_rptr) \
+ cp_meq_stat_reg = (cp_meq_stat_reg & ~CP_MEQ_STAT_MEQ_RPTR_MASK) | (meq_rptr << CP_MEQ_STAT_MEQ_RPTR_SHIFT)
+#define CP_MEQ_STAT_SET_MEQ_WPTR(cp_meq_stat_reg, meq_wptr) \
+ cp_meq_stat_reg = (cp_meq_stat_reg & ~CP_MEQ_STAT_MEQ_WPTR_MASK) | (meq_wptr << CP_MEQ_STAT_MEQ_WPTR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_meq_stat_t {
+ unsigned int meq_rptr : CP_MEQ_STAT_MEQ_RPTR_SIZE;
+ unsigned int : 6;
+ unsigned int meq_wptr : CP_MEQ_STAT_MEQ_WPTR_SIZE;
+ unsigned int : 6;
+ } cp_meq_stat_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_meq_stat_t {
+ unsigned int : 6;
+ unsigned int meq_wptr : CP_MEQ_STAT_MEQ_WPTR_SIZE;
+ unsigned int : 6;
+ unsigned int meq_rptr : CP_MEQ_STAT_MEQ_RPTR_SIZE;
+ } cp_meq_stat_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_meq_stat_t f;
+} cp_meq_stat_u;
+
+
+/*
+ * CP_MIU_TAG_STAT struct
+ */
+
+#define CP_MIU_TAG_STAT_TAG_0_STAT_SIZE 1
+#define CP_MIU_TAG_STAT_TAG_1_STAT_SIZE 1
+#define CP_MIU_TAG_STAT_TAG_2_STAT_SIZE 1
+#define CP_MIU_TAG_STAT_TAG_3_STAT_SIZE 1
+#define CP_MIU_TAG_STAT_TAG_4_STAT_SIZE 1
+#define CP_MIU_TAG_STAT_TAG_5_STAT_SIZE 1
+#define CP_MIU_TAG_STAT_TAG_6_STAT_SIZE 1
+#define CP_MIU_TAG_STAT_TAG_7_STAT_SIZE 1
+#define CP_MIU_TAG_STAT_TAG_8_STAT_SIZE 1
+#define CP_MIU_TAG_STAT_TAG_9_STAT_SIZE 1
+#define CP_MIU_TAG_STAT_TAG_10_STAT_SIZE 1
+#define CP_MIU_TAG_STAT_TAG_11_STAT_SIZE 1
+#define CP_MIU_TAG_STAT_TAG_12_STAT_SIZE 1
+#define CP_MIU_TAG_STAT_TAG_13_STAT_SIZE 1
+#define CP_MIU_TAG_STAT_TAG_14_STAT_SIZE 1
+#define CP_MIU_TAG_STAT_TAG_15_STAT_SIZE 1
+#define CP_MIU_TAG_STAT_TAG_16_STAT_SIZE 1
+#define CP_MIU_TAG_STAT_TAG_17_STAT_SIZE 1
+#define CP_MIU_TAG_STAT_INVALID_RETURN_TAG_SIZE 1
+
+#define CP_MIU_TAG_STAT_TAG_0_STAT_SHIFT 0
+#define CP_MIU_TAG_STAT_TAG_1_STAT_SHIFT 1
+#define CP_MIU_TAG_STAT_TAG_2_STAT_SHIFT 2
+#define CP_MIU_TAG_STAT_TAG_3_STAT_SHIFT 3
+#define CP_MIU_TAG_STAT_TAG_4_STAT_SHIFT 4
+#define CP_MIU_TAG_STAT_TAG_5_STAT_SHIFT 5
+#define CP_MIU_TAG_STAT_TAG_6_STAT_SHIFT 6
+#define CP_MIU_TAG_STAT_TAG_7_STAT_SHIFT 7
+#define CP_MIU_TAG_STAT_TAG_8_STAT_SHIFT 8
+#define CP_MIU_TAG_STAT_TAG_9_STAT_SHIFT 9
+#define CP_MIU_TAG_STAT_TAG_10_STAT_SHIFT 10
+#define CP_MIU_TAG_STAT_TAG_11_STAT_SHIFT 11
+#define CP_MIU_TAG_STAT_TAG_12_STAT_SHIFT 12
+#define CP_MIU_TAG_STAT_TAG_13_STAT_SHIFT 13
+#define CP_MIU_TAG_STAT_TAG_14_STAT_SHIFT 14
+#define CP_MIU_TAG_STAT_TAG_15_STAT_SHIFT 15
+#define CP_MIU_TAG_STAT_TAG_16_STAT_SHIFT 16
+#define CP_MIU_TAG_STAT_TAG_17_STAT_SHIFT 17
+#define CP_MIU_TAG_STAT_INVALID_RETURN_TAG_SHIFT 31
+
+#define CP_MIU_TAG_STAT_TAG_0_STAT_MASK 0x00000001
+#define CP_MIU_TAG_STAT_TAG_1_STAT_MASK 0x00000002
+#define CP_MIU_TAG_STAT_TAG_2_STAT_MASK 0x00000004
+#define CP_MIU_TAG_STAT_TAG_3_STAT_MASK 0x00000008
+#define CP_MIU_TAG_STAT_TAG_4_STAT_MASK 0x00000010
+#define CP_MIU_TAG_STAT_TAG_5_STAT_MASK 0x00000020
+#define CP_MIU_TAG_STAT_TAG_6_STAT_MASK 0x00000040
+#define CP_MIU_TAG_STAT_TAG_7_STAT_MASK 0x00000080
+#define CP_MIU_TAG_STAT_TAG_8_STAT_MASK 0x00000100
+#define CP_MIU_TAG_STAT_TAG_9_STAT_MASK 0x00000200
+#define CP_MIU_TAG_STAT_TAG_10_STAT_MASK 0x00000400
+#define CP_MIU_TAG_STAT_TAG_11_STAT_MASK 0x00000800
+#define CP_MIU_TAG_STAT_TAG_12_STAT_MASK 0x00001000
+#define CP_MIU_TAG_STAT_TAG_13_STAT_MASK 0x00002000
+#define CP_MIU_TAG_STAT_TAG_14_STAT_MASK 0x00004000
+#define CP_MIU_TAG_STAT_TAG_15_STAT_MASK 0x00008000
+#define CP_MIU_TAG_STAT_TAG_16_STAT_MASK 0x00010000
+#define CP_MIU_TAG_STAT_TAG_17_STAT_MASK 0x00020000
+#define CP_MIU_TAG_STAT_INVALID_RETURN_TAG_MASK 0x80000000
+
+#define CP_MIU_TAG_STAT_MASK \
+ (CP_MIU_TAG_STAT_TAG_0_STAT_MASK | \
+ CP_MIU_TAG_STAT_TAG_1_STAT_MASK | \
+ CP_MIU_TAG_STAT_TAG_2_STAT_MASK | \
+ CP_MIU_TAG_STAT_TAG_3_STAT_MASK | \
+ CP_MIU_TAG_STAT_TAG_4_STAT_MASK | \
+ CP_MIU_TAG_STAT_TAG_5_STAT_MASK | \
+ CP_MIU_TAG_STAT_TAG_6_STAT_MASK | \
+ CP_MIU_TAG_STAT_TAG_7_STAT_MASK | \
+ CP_MIU_TAG_STAT_TAG_8_STAT_MASK | \
+ CP_MIU_TAG_STAT_TAG_9_STAT_MASK | \
+ CP_MIU_TAG_STAT_TAG_10_STAT_MASK | \
+ CP_MIU_TAG_STAT_TAG_11_STAT_MASK | \
+ CP_MIU_TAG_STAT_TAG_12_STAT_MASK | \
+ CP_MIU_TAG_STAT_TAG_13_STAT_MASK | \
+ CP_MIU_TAG_STAT_TAG_14_STAT_MASK | \
+ CP_MIU_TAG_STAT_TAG_15_STAT_MASK | \
+ CP_MIU_TAG_STAT_TAG_16_STAT_MASK | \
+ CP_MIU_TAG_STAT_TAG_17_STAT_MASK | \
+ CP_MIU_TAG_STAT_INVALID_RETURN_TAG_MASK)
+
+#define CP_MIU_TAG_STAT(tag_0_stat, tag_1_stat, tag_2_stat, tag_3_stat, tag_4_stat, tag_5_stat, tag_6_stat, tag_7_stat, tag_8_stat, tag_9_stat, tag_10_stat, tag_11_stat, tag_12_stat, tag_13_stat, tag_14_stat, tag_15_stat, tag_16_stat, tag_17_stat, invalid_return_tag) \
+ ((tag_0_stat << CP_MIU_TAG_STAT_TAG_0_STAT_SHIFT) | \
+ (tag_1_stat << CP_MIU_TAG_STAT_TAG_1_STAT_SHIFT) | \
+ (tag_2_stat << CP_MIU_TAG_STAT_TAG_2_STAT_SHIFT) | \
+ (tag_3_stat << CP_MIU_TAG_STAT_TAG_3_STAT_SHIFT) | \
+ (tag_4_stat << CP_MIU_TAG_STAT_TAG_4_STAT_SHIFT) | \
+ (tag_5_stat << CP_MIU_TAG_STAT_TAG_5_STAT_SHIFT) | \
+ (tag_6_stat << CP_MIU_TAG_STAT_TAG_6_STAT_SHIFT) | \
+ (tag_7_stat << CP_MIU_TAG_STAT_TAG_7_STAT_SHIFT) | \
+ (tag_8_stat << CP_MIU_TAG_STAT_TAG_8_STAT_SHIFT) | \
+ (tag_9_stat << CP_MIU_TAG_STAT_TAG_9_STAT_SHIFT) | \
+ (tag_10_stat << CP_MIU_TAG_STAT_TAG_10_STAT_SHIFT) | \
+ (tag_11_stat << CP_MIU_TAG_STAT_TAG_11_STAT_SHIFT) | \
+ (tag_12_stat << CP_MIU_TAG_STAT_TAG_12_STAT_SHIFT) | \
+ (tag_13_stat << CP_MIU_TAG_STAT_TAG_13_STAT_SHIFT) | \
+ (tag_14_stat << CP_MIU_TAG_STAT_TAG_14_STAT_SHIFT) | \
+ (tag_15_stat << CP_MIU_TAG_STAT_TAG_15_STAT_SHIFT) | \
+ (tag_16_stat << CP_MIU_TAG_STAT_TAG_16_STAT_SHIFT) | \
+ (tag_17_stat << CP_MIU_TAG_STAT_TAG_17_STAT_SHIFT) | \
+ (invalid_return_tag << CP_MIU_TAG_STAT_INVALID_RETURN_TAG_SHIFT))
+
+#define CP_MIU_TAG_STAT_GET_TAG_0_STAT(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_TAG_0_STAT_MASK) >> CP_MIU_TAG_STAT_TAG_0_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_GET_TAG_1_STAT(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_TAG_1_STAT_MASK) >> CP_MIU_TAG_STAT_TAG_1_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_GET_TAG_2_STAT(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_TAG_2_STAT_MASK) >> CP_MIU_TAG_STAT_TAG_2_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_GET_TAG_3_STAT(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_TAG_3_STAT_MASK) >> CP_MIU_TAG_STAT_TAG_3_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_GET_TAG_4_STAT(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_TAG_4_STAT_MASK) >> CP_MIU_TAG_STAT_TAG_4_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_GET_TAG_5_STAT(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_TAG_5_STAT_MASK) >> CP_MIU_TAG_STAT_TAG_5_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_GET_TAG_6_STAT(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_TAG_6_STAT_MASK) >> CP_MIU_TAG_STAT_TAG_6_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_GET_TAG_7_STAT(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_TAG_7_STAT_MASK) >> CP_MIU_TAG_STAT_TAG_7_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_GET_TAG_8_STAT(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_TAG_8_STAT_MASK) >> CP_MIU_TAG_STAT_TAG_8_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_GET_TAG_9_STAT(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_TAG_9_STAT_MASK) >> CP_MIU_TAG_STAT_TAG_9_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_GET_TAG_10_STAT(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_TAG_10_STAT_MASK) >> CP_MIU_TAG_STAT_TAG_10_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_GET_TAG_11_STAT(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_TAG_11_STAT_MASK) >> CP_MIU_TAG_STAT_TAG_11_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_GET_TAG_12_STAT(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_TAG_12_STAT_MASK) >> CP_MIU_TAG_STAT_TAG_12_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_GET_TAG_13_STAT(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_TAG_13_STAT_MASK) >> CP_MIU_TAG_STAT_TAG_13_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_GET_TAG_14_STAT(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_TAG_14_STAT_MASK) >> CP_MIU_TAG_STAT_TAG_14_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_GET_TAG_15_STAT(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_TAG_15_STAT_MASK) >> CP_MIU_TAG_STAT_TAG_15_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_GET_TAG_16_STAT(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_TAG_16_STAT_MASK) >> CP_MIU_TAG_STAT_TAG_16_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_GET_TAG_17_STAT(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_TAG_17_STAT_MASK) >> CP_MIU_TAG_STAT_TAG_17_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_GET_INVALID_RETURN_TAG(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_INVALID_RETURN_TAG_MASK) >> CP_MIU_TAG_STAT_INVALID_RETURN_TAG_SHIFT)
+
+#define CP_MIU_TAG_STAT_SET_TAG_0_STAT(cp_miu_tag_stat_reg, tag_0_stat) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_TAG_0_STAT_MASK) | (tag_0_stat << CP_MIU_TAG_STAT_TAG_0_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_SET_TAG_1_STAT(cp_miu_tag_stat_reg, tag_1_stat) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_TAG_1_STAT_MASK) | (tag_1_stat << CP_MIU_TAG_STAT_TAG_1_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_SET_TAG_2_STAT(cp_miu_tag_stat_reg, tag_2_stat) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_TAG_2_STAT_MASK) | (tag_2_stat << CP_MIU_TAG_STAT_TAG_2_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_SET_TAG_3_STAT(cp_miu_tag_stat_reg, tag_3_stat) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_TAG_3_STAT_MASK) | (tag_3_stat << CP_MIU_TAG_STAT_TAG_3_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_SET_TAG_4_STAT(cp_miu_tag_stat_reg, tag_4_stat) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_TAG_4_STAT_MASK) | (tag_4_stat << CP_MIU_TAG_STAT_TAG_4_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_SET_TAG_5_STAT(cp_miu_tag_stat_reg, tag_5_stat) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_TAG_5_STAT_MASK) | (tag_5_stat << CP_MIU_TAG_STAT_TAG_5_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_SET_TAG_6_STAT(cp_miu_tag_stat_reg, tag_6_stat) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_TAG_6_STAT_MASK) | (tag_6_stat << CP_MIU_TAG_STAT_TAG_6_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_SET_TAG_7_STAT(cp_miu_tag_stat_reg, tag_7_stat) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_TAG_7_STAT_MASK) | (tag_7_stat << CP_MIU_TAG_STAT_TAG_7_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_SET_TAG_8_STAT(cp_miu_tag_stat_reg, tag_8_stat) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_TAG_8_STAT_MASK) | (tag_8_stat << CP_MIU_TAG_STAT_TAG_8_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_SET_TAG_9_STAT(cp_miu_tag_stat_reg, tag_9_stat) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_TAG_9_STAT_MASK) | (tag_9_stat << CP_MIU_TAG_STAT_TAG_9_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_SET_TAG_10_STAT(cp_miu_tag_stat_reg, tag_10_stat) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_TAG_10_STAT_MASK) | (tag_10_stat << CP_MIU_TAG_STAT_TAG_10_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_SET_TAG_11_STAT(cp_miu_tag_stat_reg, tag_11_stat) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_TAG_11_STAT_MASK) | (tag_11_stat << CP_MIU_TAG_STAT_TAG_11_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_SET_TAG_12_STAT(cp_miu_tag_stat_reg, tag_12_stat) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_TAG_12_STAT_MASK) | (tag_12_stat << CP_MIU_TAG_STAT_TAG_12_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_SET_TAG_13_STAT(cp_miu_tag_stat_reg, tag_13_stat) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_TAG_13_STAT_MASK) | (tag_13_stat << CP_MIU_TAG_STAT_TAG_13_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_SET_TAG_14_STAT(cp_miu_tag_stat_reg, tag_14_stat) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_TAG_14_STAT_MASK) | (tag_14_stat << CP_MIU_TAG_STAT_TAG_14_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_SET_TAG_15_STAT(cp_miu_tag_stat_reg, tag_15_stat) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_TAG_15_STAT_MASK) | (tag_15_stat << CP_MIU_TAG_STAT_TAG_15_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_SET_TAG_16_STAT(cp_miu_tag_stat_reg, tag_16_stat) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_TAG_16_STAT_MASK) | (tag_16_stat << CP_MIU_TAG_STAT_TAG_16_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_SET_TAG_17_STAT(cp_miu_tag_stat_reg, tag_17_stat) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_TAG_17_STAT_MASK) | (tag_17_stat << CP_MIU_TAG_STAT_TAG_17_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_SET_INVALID_RETURN_TAG(cp_miu_tag_stat_reg, invalid_return_tag) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_INVALID_RETURN_TAG_MASK) | (invalid_return_tag << CP_MIU_TAG_STAT_INVALID_RETURN_TAG_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_miu_tag_stat_t {
+ unsigned int tag_0_stat : CP_MIU_TAG_STAT_TAG_0_STAT_SIZE;
+ unsigned int tag_1_stat : CP_MIU_TAG_STAT_TAG_1_STAT_SIZE;
+ unsigned int tag_2_stat : CP_MIU_TAG_STAT_TAG_2_STAT_SIZE;
+ unsigned int tag_3_stat : CP_MIU_TAG_STAT_TAG_3_STAT_SIZE;
+ unsigned int tag_4_stat : CP_MIU_TAG_STAT_TAG_4_STAT_SIZE;
+ unsigned int tag_5_stat : CP_MIU_TAG_STAT_TAG_5_STAT_SIZE;
+ unsigned int tag_6_stat : CP_MIU_TAG_STAT_TAG_6_STAT_SIZE;
+ unsigned int tag_7_stat : CP_MIU_TAG_STAT_TAG_7_STAT_SIZE;
+ unsigned int tag_8_stat : CP_MIU_TAG_STAT_TAG_8_STAT_SIZE;
+ unsigned int tag_9_stat : CP_MIU_TAG_STAT_TAG_9_STAT_SIZE;
+ unsigned int tag_10_stat : CP_MIU_TAG_STAT_TAG_10_STAT_SIZE;
+ unsigned int tag_11_stat : CP_MIU_TAG_STAT_TAG_11_STAT_SIZE;
+ unsigned int tag_12_stat : CP_MIU_TAG_STAT_TAG_12_STAT_SIZE;
+ unsigned int tag_13_stat : CP_MIU_TAG_STAT_TAG_13_STAT_SIZE;
+ unsigned int tag_14_stat : CP_MIU_TAG_STAT_TAG_14_STAT_SIZE;
+ unsigned int tag_15_stat : CP_MIU_TAG_STAT_TAG_15_STAT_SIZE;
+ unsigned int tag_16_stat : CP_MIU_TAG_STAT_TAG_16_STAT_SIZE;
+ unsigned int tag_17_stat : CP_MIU_TAG_STAT_TAG_17_STAT_SIZE;
+ unsigned int : 13;
+ unsigned int invalid_return_tag : CP_MIU_TAG_STAT_INVALID_RETURN_TAG_SIZE;
+ } cp_miu_tag_stat_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_miu_tag_stat_t {
+ unsigned int invalid_return_tag : CP_MIU_TAG_STAT_INVALID_RETURN_TAG_SIZE;
+ unsigned int : 13;
+ unsigned int tag_17_stat : CP_MIU_TAG_STAT_TAG_17_STAT_SIZE;
+ unsigned int tag_16_stat : CP_MIU_TAG_STAT_TAG_16_STAT_SIZE;
+ unsigned int tag_15_stat : CP_MIU_TAG_STAT_TAG_15_STAT_SIZE;
+ unsigned int tag_14_stat : CP_MIU_TAG_STAT_TAG_14_STAT_SIZE;
+ unsigned int tag_13_stat : CP_MIU_TAG_STAT_TAG_13_STAT_SIZE;
+ unsigned int tag_12_stat : CP_MIU_TAG_STAT_TAG_12_STAT_SIZE;
+ unsigned int tag_11_stat : CP_MIU_TAG_STAT_TAG_11_STAT_SIZE;
+ unsigned int tag_10_stat : CP_MIU_TAG_STAT_TAG_10_STAT_SIZE;
+ unsigned int tag_9_stat : CP_MIU_TAG_STAT_TAG_9_STAT_SIZE;
+ unsigned int tag_8_stat : CP_MIU_TAG_STAT_TAG_8_STAT_SIZE;
+ unsigned int tag_7_stat : CP_MIU_TAG_STAT_TAG_7_STAT_SIZE;
+ unsigned int tag_6_stat : CP_MIU_TAG_STAT_TAG_6_STAT_SIZE;
+ unsigned int tag_5_stat : CP_MIU_TAG_STAT_TAG_5_STAT_SIZE;
+ unsigned int tag_4_stat : CP_MIU_TAG_STAT_TAG_4_STAT_SIZE;
+ unsigned int tag_3_stat : CP_MIU_TAG_STAT_TAG_3_STAT_SIZE;
+ unsigned int tag_2_stat : CP_MIU_TAG_STAT_TAG_2_STAT_SIZE;
+ unsigned int tag_1_stat : CP_MIU_TAG_STAT_TAG_1_STAT_SIZE;
+ unsigned int tag_0_stat : CP_MIU_TAG_STAT_TAG_0_STAT_SIZE;
+ } cp_miu_tag_stat_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_miu_tag_stat_t f;
+} cp_miu_tag_stat_u;
+
+
+/*
+ * CP_CMD_INDEX struct
+ */
+
+#define CP_CMD_INDEX_CMD_INDEX_SIZE 7
+#define CP_CMD_INDEX_CMD_QUEUE_SEL_SIZE 2
+
+#define CP_CMD_INDEX_CMD_INDEX_SHIFT 0
+#define CP_CMD_INDEX_CMD_QUEUE_SEL_SHIFT 16
+
+#define CP_CMD_INDEX_CMD_INDEX_MASK 0x0000007f
+#define CP_CMD_INDEX_CMD_QUEUE_SEL_MASK 0x00030000
+
+#define CP_CMD_INDEX_MASK \
+ (CP_CMD_INDEX_CMD_INDEX_MASK | \
+ CP_CMD_INDEX_CMD_QUEUE_SEL_MASK)
+
+#define CP_CMD_INDEX(cmd_index, cmd_queue_sel) \
+ ((cmd_index << CP_CMD_INDEX_CMD_INDEX_SHIFT) | \
+ (cmd_queue_sel << CP_CMD_INDEX_CMD_QUEUE_SEL_SHIFT))
+
+#define CP_CMD_INDEX_GET_CMD_INDEX(cp_cmd_index) \
+ ((cp_cmd_index & CP_CMD_INDEX_CMD_INDEX_MASK) >> CP_CMD_INDEX_CMD_INDEX_SHIFT)
+#define CP_CMD_INDEX_GET_CMD_QUEUE_SEL(cp_cmd_index) \
+ ((cp_cmd_index & CP_CMD_INDEX_CMD_QUEUE_SEL_MASK) >> CP_CMD_INDEX_CMD_QUEUE_SEL_SHIFT)
+
+#define CP_CMD_INDEX_SET_CMD_INDEX(cp_cmd_index_reg, cmd_index) \
+ cp_cmd_index_reg = (cp_cmd_index_reg & ~CP_CMD_INDEX_CMD_INDEX_MASK) | (cmd_index << CP_CMD_INDEX_CMD_INDEX_SHIFT)
+#define CP_CMD_INDEX_SET_CMD_QUEUE_SEL(cp_cmd_index_reg, cmd_queue_sel) \
+ cp_cmd_index_reg = (cp_cmd_index_reg & ~CP_CMD_INDEX_CMD_QUEUE_SEL_MASK) | (cmd_queue_sel << CP_CMD_INDEX_CMD_QUEUE_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_cmd_index_t {
+ unsigned int cmd_index : CP_CMD_INDEX_CMD_INDEX_SIZE;
+ unsigned int : 9;
+ unsigned int cmd_queue_sel : CP_CMD_INDEX_CMD_QUEUE_SEL_SIZE;
+ unsigned int : 14;
+ } cp_cmd_index_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_cmd_index_t {
+ unsigned int : 14;
+ unsigned int cmd_queue_sel : CP_CMD_INDEX_CMD_QUEUE_SEL_SIZE;
+ unsigned int : 9;
+ unsigned int cmd_index : CP_CMD_INDEX_CMD_INDEX_SIZE;
+ } cp_cmd_index_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_cmd_index_t f;
+} cp_cmd_index_u;
+
+
+/*
+ * CP_CMD_DATA struct
+ */
+
+#define CP_CMD_DATA_CMD_DATA_SIZE 32
+
+#define CP_CMD_DATA_CMD_DATA_SHIFT 0
+
+#define CP_CMD_DATA_CMD_DATA_MASK 0xffffffff
+
+#define CP_CMD_DATA_MASK \
+ (CP_CMD_DATA_CMD_DATA_MASK)
+
+#define CP_CMD_DATA(cmd_data) \
+ ((cmd_data << CP_CMD_DATA_CMD_DATA_SHIFT))
+
+#define CP_CMD_DATA_GET_CMD_DATA(cp_cmd_data) \
+ ((cp_cmd_data & CP_CMD_DATA_CMD_DATA_MASK) >> CP_CMD_DATA_CMD_DATA_SHIFT)
+
+#define CP_CMD_DATA_SET_CMD_DATA(cp_cmd_data_reg, cmd_data) \
+ cp_cmd_data_reg = (cp_cmd_data_reg & ~CP_CMD_DATA_CMD_DATA_MASK) | (cmd_data << CP_CMD_DATA_CMD_DATA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_cmd_data_t {
+ unsigned int cmd_data : CP_CMD_DATA_CMD_DATA_SIZE;
+ } cp_cmd_data_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_cmd_data_t {
+ unsigned int cmd_data : CP_CMD_DATA_CMD_DATA_SIZE;
+ } cp_cmd_data_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_cmd_data_t f;
+} cp_cmd_data_u;
+
+
+/*
+ * CP_ME_CNTL struct
+ */
+
+#define CP_ME_CNTL_ME_STATMUX_SIZE 16
+#define CP_ME_CNTL_VTX_DEALLOC_FIFO_EMPTY_SIZE 1
+#define CP_ME_CNTL_PIX_DEALLOC_FIFO_EMPTY_SIZE 1
+#define CP_ME_CNTL_ME_HALT_SIZE 1
+#define CP_ME_CNTL_ME_BUSY_SIZE 1
+#define CP_ME_CNTL_PROG_CNT_SIZE_SIZE 1
+
+#define CP_ME_CNTL_ME_STATMUX_SHIFT 0
+#define CP_ME_CNTL_VTX_DEALLOC_FIFO_EMPTY_SHIFT 25
+#define CP_ME_CNTL_PIX_DEALLOC_FIFO_EMPTY_SHIFT 26
+#define CP_ME_CNTL_ME_HALT_SHIFT 28
+#define CP_ME_CNTL_ME_BUSY_SHIFT 29
+#define CP_ME_CNTL_PROG_CNT_SIZE_SHIFT 31
+
+#define CP_ME_CNTL_ME_STATMUX_MASK 0x0000ffff
+#define CP_ME_CNTL_VTX_DEALLOC_FIFO_EMPTY_MASK 0x02000000
+#define CP_ME_CNTL_PIX_DEALLOC_FIFO_EMPTY_MASK 0x04000000
+#define CP_ME_CNTL_ME_HALT_MASK 0x10000000
+#define CP_ME_CNTL_ME_BUSY_MASK 0x20000000
+#define CP_ME_CNTL_PROG_CNT_SIZE_MASK 0x80000000
+
+#define CP_ME_CNTL_MASK \
+ (CP_ME_CNTL_ME_STATMUX_MASK | \
+ CP_ME_CNTL_VTX_DEALLOC_FIFO_EMPTY_MASK | \
+ CP_ME_CNTL_PIX_DEALLOC_FIFO_EMPTY_MASK | \
+ CP_ME_CNTL_ME_HALT_MASK | \
+ CP_ME_CNTL_ME_BUSY_MASK | \
+ CP_ME_CNTL_PROG_CNT_SIZE_MASK)
+
+#define CP_ME_CNTL(me_statmux, vtx_dealloc_fifo_empty, pix_dealloc_fifo_empty, me_halt, me_busy, prog_cnt_size) \
+ ((me_statmux << CP_ME_CNTL_ME_STATMUX_SHIFT) | \
+ (vtx_dealloc_fifo_empty << CP_ME_CNTL_VTX_DEALLOC_FIFO_EMPTY_SHIFT) | \
+ (pix_dealloc_fifo_empty << CP_ME_CNTL_PIX_DEALLOC_FIFO_EMPTY_SHIFT) | \
+ (me_halt << CP_ME_CNTL_ME_HALT_SHIFT) | \
+ (me_busy << CP_ME_CNTL_ME_BUSY_SHIFT) | \
+ (prog_cnt_size << CP_ME_CNTL_PROG_CNT_SIZE_SHIFT))
+
+#define CP_ME_CNTL_GET_ME_STATMUX(cp_me_cntl) \
+ ((cp_me_cntl & CP_ME_CNTL_ME_STATMUX_MASK) >> CP_ME_CNTL_ME_STATMUX_SHIFT)
+#define CP_ME_CNTL_GET_VTX_DEALLOC_FIFO_EMPTY(cp_me_cntl) \
+ ((cp_me_cntl & CP_ME_CNTL_VTX_DEALLOC_FIFO_EMPTY_MASK) >> CP_ME_CNTL_VTX_DEALLOC_FIFO_EMPTY_SHIFT)
+#define CP_ME_CNTL_GET_PIX_DEALLOC_FIFO_EMPTY(cp_me_cntl) \
+ ((cp_me_cntl & CP_ME_CNTL_PIX_DEALLOC_FIFO_EMPTY_MASK) >> CP_ME_CNTL_PIX_DEALLOC_FIFO_EMPTY_SHIFT)
+#define CP_ME_CNTL_GET_ME_HALT(cp_me_cntl) \
+ ((cp_me_cntl & CP_ME_CNTL_ME_HALT_MASK) >> CP_ME_CNTL_ME_HALT_SHIFT)
+#define CP_ME_CNTL_GET_ME_BUSY(cp_me_cntl) \
+ ((cp_me_cntl & CP_ME_CNTL_ME_BUSY_MASK) >> CP_ME_CNTL_ME_BUSY_SHIFT)
+#define CP_ME_CNTL_GET_PROG_CNT_SIZE(cp_me_cntl) \
+ ((cp_me_cntl & CP_ME_CNTL_PROG_CNT_SIZE_MASK) >> CP_ME_CNTL_PROG_CNT_SIZE_SHIFT)
+
+#define CP_ME_CNTL_SET_ME_STATMUX(cp_me_cntl_reg, me_statmux) \
+ cp_me_cntl_reg = (cp_me_cntl_reg & ~CP_ME_CNTL_ME_STATMUX_MASK) | (me_statmux << CP_ME_CNTL_ME_STATMUX_SHIFT)
+#define CP_ME_CNTL_SET_VTX_DEALLOC_FIFO_EMPTY(cp_me_cntl_reg, vtx_dealloc_fifo_empty) \
+ cp_me_cntl_reg = (cp_me_cntl_reg & ~CP_ME_CNTL_VTX_DEALLOC_FIFO_EMPTY_MASK) | (vtx_dealloc_fifo_empty << CP_ME_CNTL_VTX_DEALLOC_FIFO_EMPTY_SHIFT)
+#define CP_ME_CNTL_SET_PIX_DEALLOC_FIFO_EMPTY(cp_me_cntl_reg, pix_dealloc_fifo_empty) \
+ cp_me_cntl_reg = (cp_me_cntl_reg & ~CP_ME_CNTL_PIX_DEALLOC_FIFO_EMPTY_MASK) | (pix_dealloc_fifo_empty << CP_ME_CNTL_PIX_DEALLOC_FIFO_EMPTY_SHIFT)
+#define CP_ME_CNTL_SET_ME_HALT(cp_me_cntl_reg, me_halt) \
+ cp_me_cntl_reg = (cp_me_cntl_reg & ~CP_ME_CNTL_ME_HALT_MASK) | (me_halt << CP_ME_CNTL_ME_HALT_SHIFT)
+#define CP_ME_CNTL_SET_ME_BUSY(cp_me_cntl_reg, me_busy) \
+ cp_me_cntl_reg = (cp_me_cntl_reg & ~CP_ME_CNTL_ME_BUSY_MASK) | (me_busy << CP_ME_CNTL_ME_BUSY_SHIFT)
+#define CP_ME_CNTL_SET_PROG_CNT_SIZE(cp_me_cntl_reg, prog_cnt_size) \
+ cp_me_cntl_reg = (cp_me_cntl_reg & ~CP_ME_CNTL_PROG_CNT_SIZE_MASK) | (prog_cnt_size << CP_ME_CNTL_PROG_CNT_SIZE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_cntl_t {
+ unsigned int me_statmux : CP_ME_CNTL_ME_STATMUX_SIZE;
+ unsigned int : 9;
+ unsigned int vtx_dealloc_fifo_empty : CP_ME_CNTL_VTX_DEALLOC_FIFO_EMPTY_SIZE;
+ unsigned int pix_dealloc_fifo_empty : CP_ME_CNTL_PIX_DEALLOC_FIFO_EMPTY_SIZE;
+ unsigned int : 1;
+ unsigned int me_halt : CP_ME_CNTL_ME_HALT_SIZE;
+ unsigned int me_busy : CP_ME_CNTL_ME_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int prog_cnt_size : CP_ME_CNTL_PROG_CNT_SIZE_SIZE;
+ } cp_me_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_cntl_t {
+ unsigned int prog_cnt_size : CP_ME_CNTL_PROG_CNT_SIZE_SIZE;
+ unsigned int : 1;
+ unsigned int me_busy : CP_ME_CNTL_ME_BUSY_SIZE;
+ unsigned int me_halt : CP_ME_CNTL_ME_HALT_SIZE;
+ unsigned int : 1;
+ unsigned int pix_dealloc_fifo_empty : CP_ME_CNTL_PIX_DEALLOC_FIFO_EMPTY_SIZE;
+ unsigned int vtx_dealloc_fifo_empty : CP_ME_CNTL_VTX_DEALLOC_FIFO_EMPTY_SIZE;
+ unsigned int : 9;
+ unsigned int me_statmux : CP_ME_CNTL_ME_STATMUX_SIZE;
+ } cp_me_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_cntl_t f;
+} cp_me_cntl_u;
+
+
+/*
+ * CP_ME_STATUS struct
+ */
+
+#define CP_ME_STATUS_ME_DEBUG_DATA_SIZE 32
+
+#define CP_ME_STATUS_ME_DEBUG_DATA_SHIFT 0
+
+#define CP_ME_STATUS_ME_DEBUG_DATA_MASK 0xffffffff
+
+#define CP_ME_STATUS_MASK \
+ (CP_ME_STATUS_ME_DEBUG_DATA_MASK)
+
+#define CP_ME_STATUS(me_debug_data) \
+ ((me_debug_data << CP_ME_STATUS_ME_DEBUG_DATA_SHIFT))
+
+#define CP_ME_STATUS_GET_ME_DEBUG_DATA(cp_me_status) \
+ ((cp_me_status & CP_ME_STATUS_ME_DEBUG_DATA_MASK) >> CP_ME_STATUS_ME_DEBUG_DATA_SHIFT)
+
+#define CP_ME_STATUS_SET_ME_DEBUG_DATA(cp_me_status_reg, me_debug_data) \
+ cp_me_status_reg = (cp_me_status_reg & ~CP_ME_STATUS_ME_DEBUG_DATA_MASK) | (me_debug_data << CP_ME_STATUS_ME_DEBUG_DATA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_status_t {
+ unsigned int me_debug_data : CP_ME_STATUS_ME_DEBUG_DATA_SIZE;
+ } cp_me_status_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_status_t {
+ unsigned int me_debug_data : CP_ME_STATUS_ME_DEBUG_DATA_SIZE;
+ } cp_me_status_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_status_t f;
+} cp_me_status_u;
+
+
+/*
+ * CP_ME_RAM_WADDR struct
+ */
+
+#define CP_ME_RAM_WADDR_ME_RAM_WADDR_SIZE 10
+
+#define CP_ME_RAM_WADDR_ME_RAM_WADDR_SHIFT 0
+
+#define CP_ME_RAM_WADDR_ME_RAM_WADDR_MASK 0x000003ff
+
+#define CP_ME_RAM_WADDR_MASK \
+ (CP_ME_RAM_WADDR_ME_RAM_WADDR_MASK)
+
+#define CP_ME_RAM_WADDR(me_ram_waddr) \
+ ((me_ram_waddr << CP_ME_RAM_WADDR_ME_RAM_WADDR_SHIFT))
+
+#define CP_ME_RAM_WADDR_GET_ME_RAM_WADDR(cp_me_ram_waddr) \
+ ((cp_me_ram_waddr & CP_ME_RAM_WADDR_ME_RAM_WADDR_MASK) >> CP_ME_RAM_WADDR_ME_RAM_WADDR_SHIFT)
+
+#define CP_ME_RAM_WADDR_SET_ME_RAM_WADDR(cp_me_ram_waddr_reg, me_ram_waddr) \
+ cp_me_ram_waddr_reg = (cp_me_ram_waddr_reg & ~CP_ME_RAM_WADDR_ME_RAM_WADDR_MASK) | (me_ram_waddr << CP_ME_RAM_WADDR_ME_RAM_WADDR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_ram_waddr_t {
+ unsigned int me_ram_waddr : CP_ME_RAM_WADDR_ME_RAM_WADDR_SIZE;
+ unsigned int : 22;
+ } cp_me_ram_waddr_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_ram_waddr_t {
+ unsigned int : 22;
+ unsigned int me_ram_waddr : CP_ME_RAM_WADDR_ME_RAM_WADDR_SIZE;
+ } cp_me_ram_waddr_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_ram_waddr_t f;
+} cp_me_ram_waddr_u;
+
+
+/*
+ * CP_ME_RAM_RADDR struct
+ */
+
+#define CP_ME_RAM_RADDR_ME_RAM_RADDR_SIZE 10
+
+#define CP_ME_RAM_RADDR_ME_RAM_RADDR_SHIFT 0
+
+#define CP_ME_RAM_RADDR_ME_RAM_RADDR_MASK 0x000003ff
+
+#define CP_ME_RAM_RADDR_MASK \
+ (CP_ME_RAM_RADDR_ME_RAM_RADDR_MASK)
+
+#define CP_ME_RAM_RADDR(me_ram_raddr) \
+ ((me_ram_raddr << CP_ME_RAM_RADDR_ME_RAM_RADDR_SHIFT))
+
+#define CP_ME_RAM_RADDR_GET_ME_RAM_RADDR(cp_me_ram_raddr) \
+ ((cp_me_ram_raddr & CP_ME_RAM_RADDR_ME_RAM_RADDR_MASK) >> CP_ME_RAM_RADDR_ME_RAM_RADDR_SHIFT)
+
+#define CP_ME_RAM_RADDR_SET_ME_RAM_RADDR(cp_me_ram_raddr_reg, me_ram_raddr) \
+ cp_me_ram_raddr_reg = (cp_me_ram_raddr_reg & ~CP_ME_RAM_RADDR_ME_RAM_RADDR_MASK) | (me_ram_raddr << CP_ME_RAM_RADDR_ME_RAM_RADDR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_ram_raddr_t {
+ unsigned int me_ram_raddr : CP_ME_RAM_RADDR_ME_RAM_RADDR_SIZE;
+ unsigned int : 22;
+ } cp_me_ram_raddr_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_ram_raddr_t {
+ unsigned int : 22;
+ unsigned int me_ram_raddr : CP_ME_RAM_RADDR_ME_RAM_RADDR_SIZE;
+ } cp_me_ram_raddr_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_ram_raddr_t f;
+} cp_me_ram_raddr_u;
+
+
+/*
+ * CP_ME_RAM_DATA struct
+ */
+
+#define CP_ME_RAM_DATA_ME_RAM_DATA_SIZE 32
+
+#define CP_ME_RAM_DATA_ME_RAM_DATA_SHIFT 0
+
+#define CP_ME_RAM_DATA_ME_RAM_DATA_MASK 0xffffffff
+
+#define CP_ME_RAM_DATA_MASK \
+ (CP_ME_RAM_DATA_ME_RAM_DATA_MASK)
+
+#define CP_ME_RAM_DATA(me_ram_data) \
+ ((me_ram_data << CP_ME_RAM_DATA_ME_RAM_DATA_SHIFT))
+
+#define CP_ME_RAM_DATA_GET_ME_RAM_DATA(cp_me_ram_data) \
+ ((cp_me_ram_data & CP_ME_RAM_DATA_ME_RAM_DATA_MASK) >> CP_ME_RAM_DATA_ME_RAM_DATA_SHIFT)
+
+#define CP_ME_RAM_DATA_SET_ME_RAM_DATA(cp_me_ram_data_reg, me_ram_data) \
+ cp_me_ram_data_reg = (cp_me_ram_data_reg & ~CP_ME_RAM_DATA_ME_RAM_DATA_MASK) | (me_ram_data << CP_ME_RAM_DATA_ME_RAM_DATA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_ram_data_t {
+ unsigned int me_ram_data : CP_ME_RAM_DATA_ME_RAM_DATA_SIZE;
+ } cp_me_ram_data_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_ram_data_t {
+ unsigned int me_ram_data : CP_ME_RAM_DATA_ME_RAM_DATA_SIZE;
+ } cp_me_ram_data_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_ram_data_t f;
+} cp_me_ram_data_u;
+
+
+/*
+ * CP_ME_RDADDR struct
+ */
+
+#define CP_ME_RDADDR_ME_RDADDR_SIZE 32
+
+#define CP_ME_RDADDR_ME_RDADDR_SHIFT 0
+
+#define CP_ME_RDADDR_ME_RDADDR_MASK 0xffffffff
+
+#define CP_ME_RDADDR_MASK \
+ (CP_ME_RDADDR_ME_RDADDR_MASK)
+
+#define CP_ME_RDADDR(me_rdaddr) \
+ ((me_rdaddr << CP_ME_RDADDR_ME_RDADDR_SHIFT))
+
+#define CP_ME_RDADDR_GET_ME_RDADDR(cp_me_rdaddr) \
+ ((cp_me_rdaddr & CP_ME_RDADDR_ME_RDADDR_MASK) >> CP_ME_RDADDR_ME_RDADDR_SHIFT)
+
+#define CP_ME_RDADDR_SET_ME_RDADDR(cp_me_rdaddr_reg, me_rdaddr) \
+ cp_me_rdaddr_reg = (cp_me_rdaddr_reg & ~CP_ME_RDADDR_ME_RDADDR_MASK) | (me_rdaddr << CP_ME_RDADDR_ME_RDADDR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_rdaddr_t {
+ unsigned int me_rdaddr : CP_ME_RDADDR_ME_RDADDR_SIZE;
+ } cp_me_rdaddr_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_rdaddr_t {
+ unsigned int me_rdaddr : CP_ME_RDADDR_ME_RDADDR_SIZE;
+ } cp_me_rdaddr_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_rdaddr_t f;
+} cp_me_rdaddr_u;
+
+
+/*
+ * CP_DEBUG struct
+ */
+
+#define CP_DEBUG_CP_DEBUG_UNUSED_22_to_0_SIZE 23
+#define CP_DEBUG_PREDICATE_DISABLE_SIZE 1
+#define CP_DEBUG_PROG_END_PTR_ENABLE_SIZE 1
+#define CP_DEBUG_MIU_128BIT_WRITE_ENABLE_SIZE 1
+#define CP_DEBUG_PREFETCH_PASS_NOPS_SIZE 1
+#define CP_DEBUG_DYNAMIC_CLK_DISABLE_SIZE 1
+#define CP_DEBUG_PREFETCH_MATCH_DISABLE_SIZE 1
+#define CP_DEBUG_SIMPLE_ME_FLOW_CONTROL_SIZE 1
+#define CP_DEBUG_MIU_WRITE_PACK_DISABLE_SIZE 1
+
+#define CP_DEBUG_CP_DEBUG_UNUSED_22_to_0_SHIFT 0
+#define CP_DEBUG_PREDICATE_DISABLE_SHIFT 23
+#define CP_DEBUG_PROG_END_PTR_ENABLE_SHIFT 24
+#define CP_DEBUG_MIU_128BIT_WRITE_ENABLE_SHIFT 25
+#define CP_DEBUG_PREFETCH_PASS_NOPS_SHIFT 26
+#define CP_DEBUG_DYNAMIC_CLK_DISABLE_SHIFT 27
+#define CP_DEBUG_PREFETCH_MATCH_DISABLE_SHIFT 28
+#define CP_DEBUG_SIMPLE_ME_FLOW_CONTROL_SHIFT 30
+#define CP_DEBUG_MIU_WRITE_PACK_DISABLE_SHIFT 31
+
+#define CP_DEBUG_CP_DEBUG_UNUSED_22_to_0_MASK 0x007fffff
+#define CP_DEBUG_PREDICATE_DISABLE_MASK 0x00800000
+#define CP_DEBUG_PROG_END_PTR_ENABLE_MASK 0x01000000
+#define CP_DEBUG_MIU_128BIT_WRITE_ENABLE_MASK 0x02000000
+#define CP_DEBUG_PREFETCH_PASS_NOPS_MASK 0x04000000
+#define CP_DEBUG_DYNAMIC_CLK_DISABLE_MASK 0x08000000
+#define CP_DEBUG_PREFETCH_MATCH_DISABLE_MASK 0x10000000
+#define CP_DEBUG_SIMPLE_ME_FLOW_CONTROL_MASK 0x40000000
+#define CP_DEBUG_MIU_WRITE_PACK_DISABLE_MASK 0x80000000
+
+#define CP_DEBUG_MASK \
+ (CP_DEBUG_CP_DEBUG_UNUSED_22_to_0_MASK | \
+ CP_DEBUG_PREDICATE_DISABLE_MASK | \
+ CP_DEBUG_PROG_END_PTR_ENABLE_MASK | \
+ CP_DEBUG_MIU_128BIT_WRITE_ENABLE_MASK | \
+ CP_DEBUG_PREFETCH_PASS_NOPS_MASK | \
+ CP_DEBUG_DYNAMIC_CLK_DISABLE_MASK | \
+ CP_DEBUG_PREFETCH_MATCH_DISABLE_MASK | \
+ CP_DEBUG_SIMPLE_ME_FLOW_CONTROL_MASK | \
+ CP_DEBUG_MIU_WRITE_PACK_DISABLE_MASK)
+
+#define CP_DEBUG(cp_debug_unused_22_to_0, predicate_disable, prog_end_ptr_enable, miu_128bit_write_enable, prefetch_pass_nops, dynamic_clk_disable, prefetch_match_disable, simple_me_flow_control, miu_write_pack_disable) \
+ ((cp_debug_unused_22_to_0 << CP_DEBUG_CP_DEBUG_UNUSED_22_to_0_SHIFT) | \
+ (predicate_disable << CP_DEBUG_PREDICATE_DISABLE_SHIFT) | \
+ (prog_end_ptr_enable << CP_DEBUG_PROG_END_PTR_ENABLE_SHIFT) | \
+ (miu_128bit_write_enable << CP_DEBUG_MIU_128BIT_WRITE_ENABLE_SHIFT) | \
+ (prefetch_pass_nops << CP_DEBUG_PREFETCH_PASS_NOPS_SHIFT) | \
+ (dynamic_clk_disable << CP_DEBUG_DYNAMIC_CLK_DISABLE_SHIFT) | \
+ (prefetch_match_disable << CP_DEBUG_PREFETCH_MATCH_DISABLE_SHIFT) | \
+ (simple_me_flow_control << CP_DEBUG_SIMPLE_ME_FLOW_CONTROL_SHIFT) | \
+ (miu_write_pack_disable << CP_DEBUG_MIU_WRITE_PACK_DISABLE_SHIFT))
+
+#define CP_DEBUG_GET_CP_DEBUG_UNUSED_22_to_0(cp_debug) \
+ ((cp_debug & CP_DEBUG_CP_DEBUG_UNUSED_22_to_0_MASK) >> CP_DEBUG_CP_DEBUG_UNUSED_22_to_0_SHIFT)
+#define CP_DEBUG_GET_PREDICATE_DISABLE(cp_debug) \
+ ((cp_debug & CP_DEBUG_PREDICATE_DISABLE_MASK) >> CP_DEBUG_PREDICATE_DISABLE_SHIFT)
+#define CP_DEBUG_GET_PROG_END_PTR_ENABLE(cp_debug) \
+ ((cp_debug & CP_DEBUG_PROG_END_PTR_ENABLE_MASK) >> CP_DEBUG_PROG_END_PTR_ENABLE_SHIFT)
+#define CP_DEBUG_GET_MIU_128BIT_WRITE_ENABLE(cp_debug) \
+ ((cp_debug & CP_DEBUG_MIU_128BIT_WRITE_ENABLE_MASK) >> CP_DEBUG_MIU_128BIT_WRITE_ENABLE_SHIFT)
+#define CP_DEBUG_GET_PREFETCH_PASS_NOPS(cp_debug) \
+ ((cp_debug & CP_DEBUG_PREFETCH_PASS_NOPS_MASK) >> CP_DEBUG_PREFETCH_PASS_NOPS_SHIFT)
+#define CP_DEBUG_GET_DYNAMIC_CLK_DISABLE(cp_debug) \
+ ((cp_debug & CP_DEBUG_DYNAMIC_CLK_DISABLE_MASK) >> CP_DEBUG_DYNAMIC_CLK_DISABLE_SHIFT)
+#define CP_DEBUG_GET_PREFETCH_MATCH_DISABLE(cp_debug) \
+ ((cp_debug & CP_DEBUG_PREFETCH_MATCH_DISABLE_MASK) >> CP_DEBUG_PREFETCH_MATCH_DISABLE_SHIFT)
+#define CP_DEBUG_GET_SIMPLE_ME_FLOW_CONTROL(cp_debug) \
+ ((cp_debug & CP_DEBUG_SIMPLE_ME_FLOW_CONTROL_MASK) >> CP_DEBUG_SIMPLE_ME_FLOW_CONTROL_SHIFT)
+#define CP_DEBUG_GET_MIU_WRITE_PACK_DISABLE(cp_debug) \
+ ((cp_debug & CP_DEBUG_MIU_WRITE_PACK_DISABLE_MASK) >> CP_DEBUG_MIU_WRITE_PACK_DISABLE_SHIFT)
+
+#define CP_DEBUG_SET_CP_DEBUG_UNUSED_22_to_0(cp_debug_reg, cp_debug_unused_22_to_0) \
+ cp_debug_reg = (cp_debug_reg & ~CP_DEBUG_CP_DEBUG_UNUSED_22_to_0_MASK) | (cp_debug_unused_22_to_0 << CP_DEBUG_CP_DEBUG_UNUSED_22_to_0_SHIFT)
+#define CP_DEBUG_SET_PREDICATE_DISABLE(cp_debug_reg, predicate_disable) \
+ cp_debug_reg = (cp_debug_reg & ~CP_DEBUG_PREDICATE_DISABLE_MASK) | (predicate_disable << CP_DEBUG_PREDICATE_DISABLE_SHIFT)
+#define CP_DEBUG_SET_PROG_END_PTR_ENABLE(cp_debug_reg, prog_end_ptr_enable) \
+ cp_debug_reg = (cp_debug_reg & ~CP_DEBUG_PROG_END_PTR_ENABLE_MASK) | (prog_end_ptr_enable << CP_DEBUG_PROG_END_PTR_ENABLE_SHIFT)
+#define CP_DEBUG_SET_MIU_128BIT_WRITE_ENABLE(cp_debug_reg, miu_128bit_write_enable) \
+ cp_debug_reg = (cp_debug_reg & ~CP_DEBUG_MIU_128BIT_WRITE_ENABLE_MASK) | (miu_128bit_write_enable << CP_DEBUG_MIU_128BIT_WRITE_ENABLE_SHIFT)
+#define CP_DEBUG_SET_PREFETCH_PASS_NOPS(cp_debug_reg, prefetch_pass_nops) \
+ cp_debug_reg = (cp_debug_reg & ~CP_DEBUG_PREFETCH_PASS_NOPS_MASK) | (prefetch_pass_nops << CP_DEBUG_PREFETCH_PASS_NOPS_SHIFT)
+#define CP_DEBUG_SET_DYNAMIC_CLK_DISABLE(cp_debug_reg, dynamic_clk_disable) \
+ cp_debug_reg = (cp_debug_reg & ~CP_DEBUG_DYNAMIC_CLK_DISABLE_MASK) | (dynamic_clk_disable << CP_DEBUG_DYNAMIC_CLK_DISABLE_SHIFT)
+#define CP_DEBUG_SET_PREFETCH_MATCH_DISABLE(cp_debug_reg, prefetch_match_disable) \
+ cp_debug_reg = (cp_debug_reg & ~CP_DEBUG_PREFETCH_MATCH_DISABLE_MASK) | (prefetch_match_disable << CP_DEBUG_PREFETCH_MATCH_DISABLE_SHIFT)
+#define CP_DEBUG_SET_SIMPLE_ME_FLOW_CONTROL(cp_debug_reg, simple_me_flow_control) \
+ cp_debug_reg = (cp_debug_reg & ~CP_DEBUG_SIMPLE_ME_FLOW_CONTROL_MASK) | (simple_me_flow_control << CP_DEBUG_SIMPLE_ME_FLOW_CONTROL_SHIFT)
+#define CP_DEBUG_SET_MIU_WRITE_PACK_DISABLE(cp_debug_reg, miu_write_pack_disable) \
+ cp_debug_reg = (cp_debug_reg & ~CP_DEBUG_MIU_WRITE_PACK_DISABLE_MASK) | (miu_write_pack_disable << CP_DEBUG_MIU_WRITE_PACK_DISABLE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_debug_t {
+ unsigned int cp_debug_unused_22_to_0 : CP_DEBUG_CP_DEBUG_UNUSED_22_to_0_SIZE;
+ unsigned int predicate_disable : CP_DEBUG_PREDICATE_DISABLE_SIZE;
+ unsigned int prog_end_ptr_enable : CP_DEBUG_PROG_END_PTR_ENABLE_SIZE;
+ unsigned int miu_128bit_write_enable : CP_DEBUG_MIU_128BIT_WRITE_ENABLE_SIZE;
+ unsigned int prefetch_pass_nops : CP_DEBUG_PREFETCH_PASS_NOPS_SIZE;
+ unsigned int dynamic_clk_disable : CP_DEBUG_DYNAMIC_CLK_DISABLE_SIZE;
+ unsigned int prefetch_match_disable : CP_DEBUG_PREFETCH_MATCH_DISABLE_SIZE;
+ unsigned int : 1;
+ unsigned int simple_me_flow_control : CP_DEBUG_SIMPLE_ME_FLOW_CONTROL_SIZE;
+ unsigned int miu_write_pack_disable : CP_DEBUG_MIU_WRITE_PACK_DISABLE_SIZE;
+ } cp_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_debug_t {
+ unsigned int miu_write_pack_disable : CP_DEBUG_MIU_WRITE_PACK_DISABLE_SIZE;
+ unsigned int simple_me_flow_control : CP_DEBUG_SIMPLE_ME_FLOW_CONTROL_SIZE;
+ unsigned int : 1;
+ unsigned int prefetch_match_disable : CP_DEBUG_PREFETCH_MATCH_DISABLE_SIZE;
+ unsigned int dynamic_clk_disable : CP_DEBUG_DYNAMIC_CLK_DISABLE_SIZE;
+ unsigned int prefetch_pass_nops : CP_DEBUG_PREFETCH_PASS_NOPS_SIZE;
+ unsigned int miu_128bit_write_enable : CP_DEBUG_MIU_128BIT_WRITE_ENABLE_SIZE;
+ unsigned int prog_end_ptr_enable : CP_DEBUG_PROG_END_PTR_ENABLE_SIZE;
+ unsigned int predicate_disable : CP_DEBUG_PREDICATE_DISABLE_SIZE;
+ unsigned int cp_debug_unused_22_to_0 : CP_DEBUG_CP_DEBUG_UNUSED_22_to_0_SIZE;
+ } cp_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_debug_t f;
+} cp_debug_u;
+
+
+/*
+ * SCRATCH_REG0 struct
+ */
+
+#define SCRATCH_REG0_SCRATCH_REG0_SIZE 32
+
+#define SCRATCH_REG0_SCRATCH_REG0_SHIFT 0
+
+#define SCRATCH_REG0_SCRATCH_REG0_MASK 0xffffffff
+
+#define SCRATCH_REG0_MASK \
+ (SCRATCH_REG0_SCRATCH_REG0_MASK)
+
+#define SCRATCH_REG0(scratch_reg0) \
+ ((scratch_reg0 << SCRATCH_REG0_SCRATCH_REG0_SHIFT))
+
+#define SCRATCH_REG0_GET_SCRATCH_REG0(scratch_reg0) \
+ ((scratch_reg0 & SCRATCH_REG0_SCRATCH_REG0_MASK) >> SCRATCH_REG0_SCRATCH_REG0_SHIFT)
+
+#define SCRATCH_REG0_SET_SCRATCH_REG0(scratch_reg0_reg, scratch_reg0) \
+ scratch_reg0_reg = (scratch_reg0_reg & ~SCRATCH_REG0_SCRATCH_REG0_MASK) | (scratch_reg0 << SCRATCH_REG0_SCRATCH_REG0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _scratch_reg0_t {
+ unsigned int scratch_reg0 : SCRATCH_REG0_SCRATCH_REG0_SIZE;
+ } scratch_reg0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _scratch_reg0_t {
+ unsigned int scratch_reg0 : SCRATCH_REG0_SCRATCH_REG0_SIZE;
+ } scratch_reg0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ scratch_reg0_t f;
+} scratch_reg0_u;
+
+
+/*
+ * SCRATCH_REG1 struct
+ */
+
+#define SCRATCH_REG1_SCRATCH_REG1_SIZE 32
+
+#define SCRATCH_REG1_SCRATCH_REG1_SHIFT 0
+
+#define SCRATCH_REG1_SCRATCH_REG1_MASK 0xffffffff
+
+#define SCRATCH_REG1_MASK \
+ (SCRATCH_REG1_SCRATCH_REG1_MASK)
+
+#define SCRATCH_REG1(scratch_reg1) \
+ ((scratch_reg1 << SCRATCH_REG1_SCRATCH_REG1_SHIFT))
+
+#define SCRATCH_REG1_GET_SCRATCH_REG1(scratch_reg1) \
+ ((scratch_reg1 & SCRATCH_REG1_SCRATCH_REG1_MASK) >> SCRATCH_REG1_SCRATCH_REG1_SHIFT)
+
+#define SCRATCH_REG1_SET_SCRATCH_REG1(scratch_reg1_reg, scratch_reg1) \
+ scratch_reg1_reg = (scratch_reg1_reg & ~SCRATCH_REG1_SCRATCH_REG1_MASK) | (scratch_reg1 << SCRATCH_REG1_SCRATCH_REG1_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _scratch_reg1_t {
+ unsigned int scratch_reg1 : SCRATCH_REG1_SCRATCH_REG1_SIZE;
+ } scratch_reg1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _scratch_reg1_t {
+ unsigned int scratch_reg1 : SCRATCH_REG1_SCRATCH_REG1_SIZE;
+ } scratch_reg1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ scratch_reg1_t f;
+} scratch_reg1_u;
+
+
+/*
+ * SCRATCH_REG2 struct
+ */
+
+#define SCRATCH_REG2_SCRATCH_REG2_SIZE 32
+
+#define SCRATCH_REG2_SCRATCH_REG2_SHIFT 0
+
+#define SCRATCH_REG2_SCRATCH_REG2_MASK 0xffffffff
+
+#define SCRATCH_REG2_MASK \
+ (SCRATCH_REG2_SCRATCH_REG2_MASK)
+
+#define SCRATCH_REG2(scratch_reg2) \
+ ((scratch_reg2 << SCRATCH_REG2_SCRATCH_REG2_SHIFT))
+
+#define SCRATCH_REG2_GET_SCRATCH_REG2(scratch_reg2) \
+ ((scratch_reg2 & SCRATCH_REG2_SCRATCH_REG2_MASK) >> SCRATCH_REG2_SCRATCH_REG2_SHIFT)
+
+#define SCRATCH_REG2_SET_SCRATCH_REG2(scratch_reg2_reg, scratch_reg2) \
+ scratch_reg2_reg = (scratch_reg2_reg & ~SCRATCH_REG2_SCRATCH_REG2_MASK) | (scratch_reg2 << SCRATCH_REG2_SCRATCH_REG2_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _scratch_reg2_t {
+ unsigned int scratch_reg2 : SCRATCH_REG2_SCRATCH_REG2_SIZE;
+ } scratch_reg2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _scratch_reg2_t {
+ unsigned int scratch_reg2 : SCRATCH_REG2_SCRATCH_REG2_SIZE;
+ } scratch_reg2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ scratch_reg2_t f;
+} scratch_reg2_u;
+
+
+/*
+ * SCRATCH_REG3 struct
+ */
+
+#define SCRATCH_REG3_SCRATCH_REG3_SIZE 32
+
+#define SCRATCH_REG3_SCRATCH_REG3_SHIFT 0
+
+#define SCRATCH_REG3_SCRATCH_REG3_MASK 0xffffffff
+
+#define SCRATCH_REG3_MASK \
+ (SCRATCH_REG3_SCRATCH_REG3_MASK)
+
+#define SCRATCH_REG3(scratch_reg3) \
+ ((scratch_reg3 << SCRATCH_REG3_SCRATCH_REG3_SHIFT))
+
+#define SCRATCH_REG3_GET_SCRATCH_REG3(scratch_reg3) \
+ ((scratch_reg3 & SCRATCH_REG3_SCRATCH_REG3_MASK) >> SCRATCH_REG3_SCRATCH_REG3_SHIFT)
+
+#define SCRATCH_REG3_SET_SCRATCH_REG3(scratch_reg3_reg, scratch_reg3) \
+ scratch_reg3_reg = (scratch_reg3_reg & ~SCRATCH_REG3_SCRATCH_REG3_MASK) | (scratch_reg3 << SCRATCH_REG3_SCRATCH_REG3_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _scratch_reg3_t {
+ unsigned int scratch_reg3 : SCRATCH_REG3_SCRATCH_REG3_SIZE;
+ } scratch_reg3_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _scratch_reg3_t {
+ unsigned int scratch_reg3 : SCRATCH_REG3_SCRATCH_REG3_SIZE;
+ } scratch_reg3_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ scratch_reg3_t f;
+} scratch_reg3_u;
+
+
+/*
+ * SCRATCH_REG4 struct
+ */
+
+#define SCRATCH_REG4_SCRATCH_REG4_SIZE 32
+
+#define SCRATCH_REG4_SCRATCH_REG4_SHIFT 0
+
+#define SCRATCH_REG4_SCRATCH_REG4_MASK 0xffffffff
+
+#define SCRATCH_REG4_MASK \
+ (SCRATCH_REG4_SCRATCH_REG4_MASK)
+
+#define SCRATCH_REG4(scratch_reg4) \
+ ((scratch_reg4 << SCRATCH_REG4_SCRATCH_REG4_SHIFT))
+
+#define SCRATCH_REG4_GET_SCRATCH_REG4(scratch_reg4) \
+ ((scratch_reg4 & SCRATCH_REG4_SCRATCH_REG4_MASK) >> SCRATCH_REG4_SCRATCH_REG4_SHIFT)
+
+#define SCRATCH_REG4_SET_SCRATCH_REG4(scratch_reg4_reg, scratch_reg4) \
+ scratch_reg4_reg = (scratch_reg4_reg & ~SCRATCH_REG4_SCRATCH_REG4_MASK) | (scratch_reg4 << SCRATCH_REG4_SCRATCH_REG4_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _scratch_reg4_t {
+ unsigned int scratch_reg4 : SCRATCH_REG4_SCRATCH_REG4_SIZE;
+ } scratch_reg4_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _scratch_reg4_t {
+ unsigned int scratch_reg4 : SCRATCH_REG4_SCRATCH_REG4_SIZE;
+ } scratch_reg4_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ scratch_reg4_t f;
+} scratch_reg4_u;
+
+
+/*
+ * SCRATCH_REG5 struct
+ */
+
+#define SCRATCH_REG5_SCRATCH_REG5_SIZE 32
+
+#define SCRATCH_REG5_SCRATCH_REG5_SHIFT 0
+
+#define SCRATCH_REG5_SCRATCH_REG5_MASK 0xffffffff
+
+#define SCRATCH_REG5_MASK \
+ (SCRATCH_REG5_SCRATCH_REG5_MASK)
+
+#define SCRATCH_REG5(scratch_reg5) \
+ ((scratch_reg5 << SCRATCH_REG5_SCRATCH_REG5_SHIFT))
+
+#define SCRATCH_REG5_GET_SCRATCH_REG5(scratch_reg5) \
+ ((scratch_reg5 & SCRATCH_REG5_SCRATCH_REG5_MASK) >> SCRATCH_REG5_SCRATCH_REG5_SHIFT)
+
+#define SCRATCH_REG5_SET_SCRATCH_REG5(scratch_reg5_reg, scratch_reg5) \
+ scratch_reg5_reg = (scratch_reg5_reg & ~SCRATCH_REG5_SCRATCH_REG5_MASK) | (scratch_reg5 << SCRATCH_REG5_SCRATCH_REG5_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _scratch_reg5_t {
+ unsigned int scratch_reg5 : SCRATCH_REG5_SCRATCH_REG5_SIZE;
+ } scratch_reg5_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _scratch_reg5_t {
+ unsigned int scratch_reg5 : SCRATCH_REG5_SCRATCH_REG5_SIZE;
+ } scratch_reg5_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ scratch_reg5_t f;
+} scratch_reg5_u;
+
+
+/*
+ * SCRATCH_REG6 struct
+ */
+
+#define SCRATCH_REG6_SCRATCH_REG6_SIZE 32
+
+#define SCRATCH_REG6_SCRATCH_REG6_SHIFT 0
+
+#define SCRATCH_REG6_SCRATCH_REG6_MASK 0xffffffff
+
+#define SCRATCH_REG6_MASK \
+ (SCRATCH_REG6_SCRATCH_REG6_MASK)
+
+#define SCRATCH_REG6(scratch_reg6) \
+ ((scratch_reg6 << SCRATCH_REG6_SCRATCH_REG6_SHIFT))
+
+#define SCRATCH_REG6_GET_SCRATCH_REG6(scratch_reg6) \
+ ((scratch_reg6 & SCRATCH_REG6_SCRATCH_REG6_MASK) >> SCRATCH_REG6_SCRATCH_REG6_SHIFT)
+
+#define SCRATCH_REG6_SET_SCRATCH_REG6(scratch_reg6_reg, scratch_reg6) \
+ scratch_reg6_reg = (scratch_reg6_reg & ~SCRATCH_REG6_SCRATCH_REG6_MASK) | (scratch_reg6 << SCRATCH_REG6_SCRATCH_REG6_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _scratch_reg6_t {
+ unsigned int scratch_reg6 : SCRATCH_REG6_SCRATCH_REG6_SIZE;
+ } scratch_reg6_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _scratch_reg6_t {
+ unsigned int scratch_reg6 : SCRATCH_REG6_SCRATCH_REG6_SIZE;
+ } scratch_reg6_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ scratch_reg6_t f;
+} scratch_reg6_u;
+
+
+/*
+ * SCRATCH_REG7 struct
+ */
+
+#define SCRATCH_REG7_SCRATCH_REG7_SIZE 32
+
+#define SCRATCH_REG7_SCRATCH_REG7_SHIFT 0
+
+#define SCRATCH_REG7_SCRATCH_REG7_MASK 0xffffffff
+
+#define SCRATCH_REG7_MASK \
+ (SCRATCH_REG7_SCRATCH_REG7_MASK)
+
+#define SCRATCH_REG7(scratch_reg7) \
+ ((scratch_reg7 << SCRATCH_REG7_SCRATCH_REG7_SHIFT))
+
+#define SCRATCH_REG7_GET_SCRATCH_REG7(scratch_reg7) \
+ ((scratch_reg7 & SCRATCH_REG7_SCRATCH_REG7_MASK) >> SCRATCH_REG7_SCRATCH_REG7_SHIFT)
+
+#define SCRATCH_REG7_SET_SCRATCH_REG7(scratch_reg7_reg, scratch_reg7) \
+ scratch_reg7_reg = (scratch_reg7_reg & ~SCRATCH_REG7_SCRATCH_REG7_MASK) | (scratch_reg7 << SCRATCH_REG7_SCRATCH_REG7_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _scratch_reg7_t {
+ unsigned int scratch_reg7 : SCRATCH_REG7_SCRATCH_REG7_SIZE;
+ } scratch_reg7_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _scratch_reg7_t {
+ unsigned int scratch_reg7 : SCRATCH_REG7_SCRATCH_REG7_SIZE;
+ } scratch_reg7_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ scratch_reg7_t f;
+} scratch_reg7_u;
+
+
+/*
+ * SCRATCH_UMSK struct
+ */
+
+#define SCRATCH_UMSK_SCRATCH_UMSK_SIZE 8
+#define SCRATCH_UMSK_SCRATCH_SWAP_SIZE 2
+
+#define SCRATCH_UMSK_SCRATCH_UMSK_SHIFT 0
+#define SCRATCH_UMSK_SCRATCH_SWAP_SHIFT 16
+
+#define SCRATCH_UMSK_SCRATCH_UMSK_MASK 0x000000ff
+#define SCRATCH_UMSK_SCRATCH_SWAP_MASK 0x00030000
+
+#define SCRATCH_UMSK_MASK \
+ (SCRATCH_UMSK_SCRATCH_UMSK_MASK | \
+ SCRATCH_UMSK_SCRATCH_SWAP_MASK)
+
+#define SCRATCH_UMSK(scratch_umsk, scratch_swap) \
+ ((scratch_umsk << SCRATCH_UMSK_SCRATCH_UMSK_SHIFT) | \
+ (scratch_swap << SCRATCH_UMSK_SCRATCH_SWAP_SHIFT))
+
+#define SCRATCH_UMSK_GET_SCRATCH_UMSK(scratch_umsk) \
+ ((scratch_umsk & SCRATCH_UMSK_SCRATCH_UMSK_MASK) >> SCRATCH_UMSK_SCRATCH_UMSK_SHIFT)
+#define SCRATCH_UMSK_GET_SCRATCH_SWAP(scratch_umsk) \
+ ((scratch_umsk & SCRATCH_UMSK_SCRATCH_SWAP_MASK) >> SCRATCH_UMSK_SCRATCH_SWAP_SHIFT)
+
+#define SCRATCH_UMSK_SET_SCRATCH_UMSK(scratch_umsk_reg, scratch_umsk) \
+ scratch_umsk_reg = (scratch_umsk_reg & ~SCRATCH_UMSK_SCRATCH_UMSK_MASK) | (scratch_umsk << SCRATCH_UMSK_SCRATCH_UMSK_SHIFT)
+#define SCRATCH_UMSK_SET_SCRATCH_SWAP(scratch_umsk_reg, scratch_swap) \
+ scratch_umsk_reg = (scratch_umsk_reg & ~SCRATCH_UMSK_SCRATCH_SWAP_MASK) | (scratch_swap << SCRATCH_UMSK_SCRATCH_SWAP_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _scratch_umsk_t {
+ unsigned int scratch_umsk : SCRATCH_UMSK_SCRATCH_UMSK_SIZE;
+ unsigned int : 8;
+ unsigned int scratch_swap : SCRATCH_UMSK_SCRATCH_SWAP_SIZE;
+ unsigned int : 14;
+ } scratch_umsk_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _scratch_umsk_t {
+ unsigned int : 14;
+ unsigned int scratch_swap : SCRATCH_UMSK_SCRATCH_SWAP_SIZE;
+ unsigned int : 8;
+ unsigned int scratch_umsk : SCRATCH_UMSK_SCRATCH_UMSK_SIZE;
+ } scratch_umsk_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ scratch_umsk_t f;
+} scratch_umsk_u;
+
+
+/*
+ * SCRATCH_ADDR struct
+ */
+
+#define SCRATCH_ADDR_SCRATCH_ADDR_SIZE 27
+
+#define SCRATCH_ADDR_SCRATCH_ADDR_SHIFT 5
+
+#define SCRATCH_ADDR_SCRATCH_ADDR_MASK 0xffffffe0
+
+#define SCRATCH_ADDR_MASK \
+ (SCRATCH_ADDR_SCRATCH_ADDR_MASK)
+
+#define SCRATCH_ADDR(scratch_addr) \
+ ((scratch_addr << SCRATCH_ADDR_SCRATCH_ADDR_SHIFT))
+
+#define SCRATCH_ADDR_GET_SCRATCH_ADDR(scratch_addr) \
+ ((scratch_addr & SCRATCH_ADDR_SCRATCH_ADDR_MASK) >> SCRATCH_ADDR_SCRATCH_ADDR_SHIFT)
+
+#define SCRATCH_ADDR_SET_SCRATCH_ADDR(scratch_addr_reg, scratch_addr) \
+ scratch_addr_reg = (scratch_addr_reg & ~SCRATCH_ADDR_SCRATCH_ADDR_MASK) | (scratch_addr << SCRATCH_ADDR_SCRATCH_ADDR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _scratch_addr_t {
+ unsigned int : 5;
+ unsigned int scratch_addr : SCRATCH_ADDR_SCRATCH_ADDR_SIZE;
+ } scratch_addr_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _scratch_addr_t {
+ unsigned int scratch_addr : SCRATCH_ADDR_SCRATCH_ADDR_SIZE;
+ unsigned int : 5;
+ } scratch_addr_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ scratch_addr_t f;
+} scratch_addr_u;
+
+
+/*
+ * CP_ME_VS_EVENT_SRC struct
+ */
+
+#define CP_ME_VS_EVENT_SRC_VS_DONE_SWM_SIZE 1
+#define CP_ME_VS_EVENT_SRC_VS_DONE_CNTR_SIZE 1
+
+#define CP_ME_VS_EVENT_SRC_VS_DONE_SWM_SHIFT 0
+#define CP_ME_VS_EVENT_SRC_VS_DONE_CNTR_SHIFT 1
+
+#define CP_ME_VS_EVENT_SRC_VS_DONE_SWM_MASK 0x00000001
+#define CP_ME_VS_EVENT_SRC_VS_DONE_CNTR_MASK 0x00000002
+
+#define CP_ME_VS_EVENT_SRC_MASK \
+ (CP_ME_VS_EVENT_SRC_VS_DONE_SWM_MASK | \
+ CP_ME_VS_EVENT_SRC_VS_DONE_CNTR_MASK)
+
+#define CP_ME_VS_EVENT_SRC(vs_done_swm, vs_done_cntr) \
+ ((vs_done_swm << CP_ME_VS_EVENT_SRC_VS_DONE_SWM_SHIFT) | \
+ (vs_done_cntr << CP_ME_VS_EVENT_SRC_VS_DONE_CNTR_SHIFT))
+
+#define CP_ME_VS_EVENT_SRC_GET_VS_DONE_SWM(cp_me_vs_event_src) \
+ ((cp_me_vs_event_src & CP_ME_VS_EVENT_SRC_VS_DONE_SWM_MASK) >> CP_ME_VS_EVENT_SRC_VS_DONE_SWM_SHIFT)
+#define CP_ME_VS_EVENT_SRC_GET_VS_DONE_CNTR(cp_me_vs_event_src) \
+ ((cp_me_vs_event_src & CP_ME_VS_EVENT_SRC_VS_DONE_CNTR_MASK) >> CP_ME_VS_EVENT_SRC_VS_DONE_CNTR_SHIFT)
+
+#define CP_ME_VS_EVENT_SRC_SET_VS_DONE_SWM(cp_me_vs_event_src_reg, vs_done_swm) \
+ cp_me_vs_event_src_reg = (cp_me_vs_event_src_reg & ~CP_ME_VS_EVENT_SRC_VS_DONE_SWM_MASK) | (vs_done_swm << CP_ME_VS_EVENT_SRC_VS_DONE_SWM_SHIFT)
+#define CP_ME_VS_EVENT_SRC_SET_VS_DONE_CNTR(cp_me_vs_event_src_reg, vs_done_cntr) \
+ cp_me_vs_event_src_reg = (cp_me_vs_event_src_reg & ~CP_ME_VS_EVENT_SRC_VS_DONE_CNTR_MASK) | (vs_done_cntr << CP_ME_VS_EVENT_SRC_VS_DONE_CNTR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_vs_event_src_t {
+ unsigned int vs_done_swm : CP_ME_VS_EVENT_SRC_VS_DONE_SWM_SIZE;
+ unsigned int vs_done_cntr : CP_ME_VS_EVENT_SRC_VS_DONE_CNTR_SIZE;
+ unsigned int : 30;
+ } cp_me_vs_event_src_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_vs_event_src_t {
+ unsigned int : 30;
+ unsigned int vs_done_cntr : CP_ME_VS_EVENT_SRC_VS_DONE_CNTR_SIZE;
+ unsigned int vs_done_swm : CP_ME_VS_EVENT_SRC_VS_DONE_SWM_SIZE;
+ } cp_me_vs_event_src_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_vs_event_src_t f;
+} cp_me_vs_event_src_u;
+
+
+/*
+ * CP_ME_VS_EVENT_ADDR struct
+ */
+
+#define CP_ME_VS_EVENT_ADDR_VS_DONE_SWAP_SIZE 2
+#define CP_ME_VS_EVENT_ADDR_VS_DONE_ADDR_SIZE 30
+
+#define CP_ME_VS_EVENT_ADDR_VS_DONE_SWAP_SHIFT 0
+#define CP_ME_VS_EVENT_ADDR_VS_DONE_ADDR_SHIFT 2
+
+#define CP_ME_VS_EVENT_ADDR_VS_DONE_SWAP_MASK 0x00000003
+#define CP_ME_VS_EVENT_ADDR_VS_DONE_ADDR_MASK 0xfffffffc
+
+#define CP_ME_VS_EVENT_ADDR_MASK \
+ (CP_ME_VS_EVENT_ADDR_VS_DONE_SWAP_MASK | \
+ CP_ME_VS_EVENT_ADDR_VS_DONE_ADDR_MASK)
+
+#define CP_ME_VS_EVENT_ADDR(vs_done_swap, vs_done_addr) \
+ ((vs_done_swap << CP_ME_VS_EVENT_ADDR_VS_DONE_SWAP_SHIFT) | \
+ (vs_done_addr << CP_ME_VS_EVENT_ADDR_VS_DONE_ADDR_SHIFT))
+
+#define CP_ME_VS_EVENT_ADDR_GET_VS_DONE_SWAP(cp_me_vs_event_addr) \
+ ((cp_me_vs_event_addr & CP_ME_VS_EVENT_ADDR_VS_DONE_SWAP_MASK) >> CP_ME_VS_EVENT_ADDR_VS_DONE_SWAP_SHIFT)
+#define CP_ME_VS_EVENT_ADDR_GET_VS_DONE_ADDR(cp_me_vs_event_addr) \
+ ((cp_me_vs_event_addr & CP_ME_VS_EVENT_ADDR_VS_DONE_ADDR_MASK) >> CP_ME_VS_EVENT_ADDR_VS_DONE_ADDR_SHIFT)
+
+#define CP_ME_VS_EVENT_ADDR_SET_VS_DONE_SWAP(cp_me_vs_event_addr_reg, vs_done_swap) \
+ cp_me_vs_event_addr_reg = (cp_me_vs_event_addr_reg & ~CP_ME_VS_EVENT_ADDR_VS_DONE_SWAP_MASK) | (vs_done_swap << CP_ME_VS_EVENT_ADDR_VS_DONE_SWAP_SHIFT)
+#define CP_ME_VS_EVENT_ADDR_SET_VS_DONE_ADDR(cp_me_vs_event_addr_reg, vs_done_addr) \
+ cp_me_vs_event_addr_reg = (cp_me_vs_event_addr_reg & ~CP_ME_VS_EVENT_ADDR_VS_DONE_ADDR_MASK) | (vs_done_addr << CP_ME_VS_EVENT_ADDR_VS_DONE_ADDR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_vs_event_addr_t {
+ unsigned int vs_done_swap : CP_ME_VS_EVENT_ADDR_VS_DONE_SWAP_SIZE;
+ unsigned int vs_done_addr : CP_ME_VS_EVENT_ADDR_VS_DONE_ADDR_SIZE;
+ } cp_me_vs_event_addr_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_vs_event_addr_t {
+ unsigned int vs_done_addr : CP_ME_VS_EVENT_ADDR_VS_DONE_ADDR_SIZE;
+ unsigned int vs_done_swap : CP_ME_VS_EVENT_ADDR_VS_DONE_SWAP_SIZE;
+ } cp_me_vs_event_addr_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_vs_event_addr_t f;
+} cp_me_vs_event_addr_u;
+
+
+/*
+ * CP_ME_VS_EVENT_DATA struct
+ */
+
+#define CP_ME_VS_EVENT_DATA_VS_DONE_DATA_SIZE 32
+
+#define CP_ME_VS_EVENT_DATA_VS_DONE_DATA_SHIFT 0
+
+#define CP_ME_VS_EVENT_DATA_VS_DONE_DATA_MASK 0xffffffff
+
+#define CP_ME_VS_EVENT_DATA_MASK \
+ (CP_ME_VS_EVENT_DATA_VS_DONE_DATA_MASK)
+
+#define CP_ME_VS_EVENT_DATA(vs_done_data) \
+ ((vs_done_data << CP_ME_VS_EVENT_DATA_VS_DONE_DATA_SHIFT))
+
+#define CP_ME_VS_EVENT_DATA_GET_VS_DONE_DATA(cp_me_vs_event_data) \
+ ((cp_me_vs_event_data & CP_ME_VS_EVENT_DATA_VS_DONE_DATA_MASK) >> CP_ME_VS_EVENT_DATA_VS_DONE_DATA_SHIFT)
+
+#define CP_ME_VS_EVENT_DATA_SET_VS_DONE_DATA(cp_me_vs_event_data_reg, vs_done_data) \
+ cp_me_vs_event_data_reg = (cp_me_vs_event_data_reg & ~CP_ME_VS_EVENT_DATA_VS_DONE_DATA_MASK) | (vs_done_data << CP_ME_VS_EVENT_DATA_VS_DONE_DATA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_vs_event_data_t {
+ unsigned int vs_done_data : CP_ME_VS_EVENT_DATA_VS_DONE_DATA_SIZE;
+ } cp_me_vs_event_data_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_vs_event_data_t {
+ unsigned int vs_done_data : CP_ME_VS_EVENT_DATA_VS_DONE_DATA_SIZE;
+ } cp_me_vs_event_data_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_vs_event_data_t f;
+} cp_me_vs_event_data_u;
+
+
+/*
+ * CP_ME_VS_EVENT_ADDR_SWM struct
+ */
+
+#define CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_SWAP_SWM_SIZE 2
+#define CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_ADDR_SWM_SIZE 30
+
+#define CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_SWAP_SWM_SHIFT 0
+#define CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_ADDR_SWM_SHIFT 2
+
+#define CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_SWAP_SWM_MASK 0x00000003
+#define CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_ADDR_SWM_MASK 0xfffffffc
+
+#define CP_ME_VS_EVENT_ADDR_SWM_MASK \
+ (CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_SWAP_SWM_MASK | \
+ CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_ADDR_SWM_MASK)
+
+#define CP_ME_VS_EVENT_ADDR_SWM(vs_done_swap_swm, vs_done_addr_swm) \
+ ((vs_done_swap_swm << CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_SWAP_SWM_SHIFT) | \
+ (vs_done_addr_swm << CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_ADDR_SWM_SHIFT))
+
+#define CP_ME_VS_EVENT_ADDR_SWM_GET_VS_DONE_SWAP_SWM(cp_me_vs_event_addr_swm) \
+ ((cp_me_vs_event_addr_swm & CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_SWAP_SWM_MASK) >> CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_SWAP_SWM_SHIFT)
+#define CP_ME_VS_EVENT_ADDR_SWM_GET_VS_DONE_ADDR_SWM(cp_me_vs_event_addr_swm) \
+ ((cp_me_vs_event_addr_swm & CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_ADDR_SWM_MASK) >> CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_ADDR_SWM_SHIFT)
+
+#define CP_ME_VS_EVENT_ADDR_SWM_SET_VS_DONE_SWAP_SWM(cp_me_vs_event_addr_swm_reg, vs_done_swap_swm) \
+ cp_me_vs_event_addr_swm_reg = (cp_me_vs_event_addr_swm_reg & ~CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_SWAP_SWM_MASK) | (vs_done_swap_swm << CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_SWAP_SWM_SHIFT)
+#define CP_ME_VS_EVENT_ADDR_SWM_SET_VS_DONE_ADDR_SWM(cp_me_vs_event_addr_swm_reg, vs_done_addr_swm) \
+ cp_me_vs_event_addr_swm_reg = (cp_me_vs_event_addr_swm_reg & ~CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_ADDR_SWM_MASK) | (vs_done_addr_swm << CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_ADDR_SWM_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_vs_event_addr_swm_t {
+ unsigned int vs_done_swap_swm : CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_SWAP_SWM_SIZE;
+ unsigned int vs_done_addr_swm : CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_ADDR_SWM_SIZE;
+ } cp_me_vs_event_addr_swm_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_vs_event_addr_swm_t {
+ unsigned int vs_done_addr_swm : CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_ADDR_SWM_SIZE;
+ unsigned int vs_done_swap_swm : CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_SWAP_SWM_SIZE;
+ } cp_me_vs_event_addr_swm_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_vs_event_addr_swm_t f;
+} cp_me_vs_event_addr_swm_u;
+
+
+/*
+ * CP_ME_VS_EVENT_DATA_SWM struct
+ */
+
+#define CP_ME_VS_EVENT_DATA_SWM_VS_DONE_DATA_SWM_SIZE 32
+
+#define CP_ME_VS_EVENT_DATA_SWM_VS_DONE_DATA_SWM_SHIFT 0
+
+#define CP_ME_VS_EVENT_DATA_SWM_VS_DONE_DATA_SWM_MASK 0xffffffff
+
+#define CP_ME_VS_EVENT_DATA_SWM_MASK \
+ (CP_ME_VS_EVENT_DATA_SWM_VS_DONE_DATA_SWM_MASK)
+
+#define CP_ME_VS_EVENT_DATA_SWM(vs_done_data_swm) \
+ ((vs_done_data_swm << CP_ME_VS_EVENT_DATA_SWM_VS_DONE_DATA_SWM_SHIFT))
+
+#define CP_ME_VS_EVENT_DATA_SWM_GET_VS_DONE_DATA_SWM(cp_me_vs_event_data_swm) \
+ ((cp_me_vs_event_data_swm & CP_ME_VS_EVENT_DATA_SWM_VS_DONE_DATA_SWM_MASK) >> CP_ME_VS_EVENT_DATA_SWM_VS_DONE_DATA_SWM_SHIFT)
+
+#define CP_ME_VS_EVENT_DATA_SWM_SET_VS_DONE_DATA_SWM(cp_me_vs_event_data_swm_reg, vs_done_data_swm) \
+ cp_me_vs_event_data_swm_reg = (cp_me_vs_event_data_swm_reg & ~CP_ME_VS_EVENT_DATA_SWM_VS_DONE_DATA_SWM_MASK) | (vs_done_data_swm << CP_ME_VS_EVENT_DATA_SWM_VS_DONE_DATA_SWM_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_vs_event_data_swm_t {
+ unsigned int vs_done_data_swm : CP_ME_VS_EVENT_DATA_SWM_VS_DONE_DATA_SWM_SIZE;
+ } cp_me_vs_event_data_swm_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_vs_event_data_swm_t {
+ unsigned int vs_done_data_swm : CP_ME_VS_EVENT_DATA_SWM_VS_DONE_DATA_SWM_SIZE;
+ } cp_me_vs_event_data_swm_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_vs_event_data_swm_t f;
+} cp_me_vs_event_data_swm_u;
+
+
+/*
+ * CP_ME_PS_EVENT_SRC struct
+ */
+
+#define CP_ME_PS_EVENT_SRC_PS_DONE_SWM_SIZE 1
+#define CP_ME_PS_EVENT_SRC_PS_DONE_CNTR_SIZE 1
+
+#define CP_ME_PS_EVENT_SRC_PS_DONE_SWM_SHIFT 0
+#define CP_ME_PS_EVENT_SRC_PS_DONE_CNTR_SHIFT 1
+
+#define CP_ME_PS_EVENT_SRC_PS_DONE_SWM_MASK 0x00000001
+#define CP_ME_PS_EVENT_SRC_PS_DONE_CNTR_MASK 0x00000002
+
+#define CP_ME_PS_EVENT_SRC_MASK \
+ (CP_ME_PS_EVENT_SRC_PS_DONE_SWM_MASK | \
+ CP_ME_PS_EVENT_SRC_PS_DONE_CNTR_MASK)
+
+#define CP_ME_PS_EVENT_SRC(ps_done_swm, ps_done_cntr) \
+ ((ps_done_swm << CP_ME_PS_EVENT_SRC_PS_DONE_SWM_SHIFT) | \
+ (ps_done_cntr << CP_ME_PS_EVENT_SRC_PS_DONE_CNTR_SHIFT))
+
+#define CP_ME_PS_EVENT_SRC_GET_PS_DONE_SWM(cp_me_ps_event_src) \
+ ((cp_me_ps_event_src & CP_ME_PS_EVENT_SRC_PS_DONE_SWM_MASK) >> CP_ME_PS_EVENT_SRC_PS_DONE_SWM_SHIFT)
+#define CP_ME_PS_EVENT_SRC_GET_PS_DONE_CNTR(cp_me_ps_event_src) \
+ ((cp_me_ps_event_src & CP_ME_PS_EVENT_SRC_PS_DONE_CNTR_MASK) >> CP_ME_PS_EVENT_SRC_PS_DONE_CNTR_SHIFT)
+
+#define CP_ME_PS_EVENT_SRC_SET_PS_DONE_SWM(cp_me_ps_event_src_reg, ps_done_swm) \
+ cp_me_ps_event_src_reg = (cp_me_ps_event_src_reg & ~CP_ME_PS_EVENT_SRC_PS_DONE_SWM_MASK) | (ps_done_swm << CP_ME_PS_EVENT_SRC_PS_DONE_SWM_SHIFT)
+#define CP_ME_PS_EVENT_SRC_SET_PS_DONE_CNTR(cp_me_ps_event_src_reg, ps_done_cntr) \
+ cp_me_ps_event_src_reg = (cp_me_ps_event_src_reg & ~CP_ME_PS_EVENT_SRC_PS_DONE_CNTR_MASK) | (ps_done_cntr << CP_ME_PS_EVENT_SRC_PS_DONE_CNTR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_ps_event_src_t {
+ unsigned int ps_done_swm : CP_ME_PS_EVENT_SRC_PS_DONE_SWM_SIZE;
+ unsigned int ps_done_cntr : CP_ME_PS_EVENT_SRC_PS_DONE_CNTR_SIZE;
+ unsigned int : 30;
+ } cp_me_ps_event_src_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_ps_event_src_t {
+ unsigned int : 30;
+ unsigned int ps_done_cntr : CP_ME_PS_EVENT_SRC_PS_DONE_CNTR_SIZE;
+ unsigned int ps_done_swm : CP_ME_PS_EVENT_SRC_PS_DONE_SWM_SIZE;
+ } cp_me_ps_event_src_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_ps_event_src_t f;
+} cp_me_ps_event_src_u;
+
+
+/*
+ * CP_ME_PS_EVENT_ADDR struct
+ */
+
+#define CP_ME_PS_EVENT_ADDR_PS_DONE_SWAP_SIZE 2
+#define CP_ME_PS_EVENT_ADDR_PS_DONE_ADDR_SIZE 30
+
+#define CP_ME_PS_EVENT_ADDR_PS_DONE_SWAP_SHIFT 0
+#define CP_ME_PS_EVENT_ADDR_PS_DONE_ADDR_SHIFT 2
+
+#define CP_ME_PS_EVENT_ADDR_PS_DONE_SWAP_MASK 0x00000003
+#define CP_ME_PS_EVENT_ADDR_PS_DONE_ADDR_MASK 0xfffffffc
+
+#define CP_ME_PS_EVENT_ADDR_MASK \
+ (CP_ME_PS_EVENT_ADDR_PS_DONE_SWAP_MASK | \
+ CP_ME_PS_EVENT_ADDR_PS_DONE_ADDR_MASK)
+
+#define CP_ME_PS_EVENT_ADDR(ps_done_swap, ps_done_addr) \
+ ((ps_done_swap << CP_ME_PS_EVENT_ADDR_PS_DONE_SWAP_SHIFT) | \
+ (ps_done_addr << CP_ME_PS_EVENT_ADDR_PS_DONE_ADDR_SHIFT))
+
+#define CP_ME_PS_EVENT_ADDR_GET_PS_DONE_SWAP(cp_me_ps_event_addr) \
+ ((cp_me_ps_event_addr & CP_ME_PS_EVENT_ADDR_PS_DONE_SWAP_MASK) >> CP_ME_PS_EVENT_ADDR_PS_DONE_SWAP_SHIFT)
+#define CP_ME_PS_EVENT_ADDR_GET_PS_DONE_ADDR(cp_me_ps_event_addr) \
+ ((cp_me_ps_event_addr & CP_ME_PS_EVENT_ADDR_PS_DONE_ADDR_MASK) >> CP_ME_PS_EVENT_ADDR_PS_DONE_ADDR_SHIFT)
+
+#define CP_ME_PS_EVENT_ADDR_SET_PS_DONE_SWAP(cp_me_ps_event_addr_reg, ps_done_swap) \
+ cp_me_ps_event_addr_reg = (cp_me_ps_event_addr_reg & ~CP_ME_PS_EVENT_ADDR_PS_DONE_SWAP_MASK) | (ps_done_swap << CP_ME_PS_EVENT_ADDR_PS_DONE_SWAP_SHIFT)
+#define CP_ME_PS_EVENT_ADDR_SET_PS_DONE_ADDR(cp_me_ps_event_addr_reg, ps_done_addr) \
+ cp_me_ps_event_addr_reg = (cp_me_ps_event_addr_reg & ~CP_ME_PS_EVENT_ADDR_PS_DONE_ADDR_MASK) | (ps_done_addr << CP_ME_PS_EVENT_ADDR_PS_DONE_ADDR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_ps_event_addr_t {
+ unsigned int ps_done_swap : CP_ME_PS_EVENT_ADDR_PS_DONE_SWAP_SIZE;
+ unsigned int ps_done_addr : CP_ME_PS_EVENT_ADDR_PS_DONE_ADDR_SIZE;
+ } cp_me_ps_event_addr_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_ps_event_addr_t {
+ unsigned int ps_done_addr : CP_ME_PS_EVENT_ADDR_PS_DONE_ADDR_SIZE;
+ unsigned int ps_done_swap : CP_ME_PS_EVENT_ADDR_PS_DONE_SWAP_SIZE;
+ } cp_me_ps_event_addr_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_ps_event_addr_t f;
+} cp_me_ps_event_addr_u;
+
+
+/*
+ * CP_ME_PS_EVENT_DATA struct
+ */
+
+#define CP_ME_PS_EVENT_DATA_PS_DONE_DATA_SIZE 32
+
+#define CP_ME_PS_EVENT_DATA_PS_DONE_DATA_SHIFT 0
+
+#define CP_ME_PS_EVENT_DATA_PS_DONE_DATA_MASK 0xffffffff
+
+#define CP_ME_PS_EVENT_DATA_MASK \
+ (CP_ME_PS_EVENT_DATA_PS_DONE_DATA_MASK)
+
+#define CP_ME_PS_EVENT_DATA(ps_done_data) \
+ ((ps_done_data << CP_ME_PS_EVENT_DATA_PS_DONE_DATA_SHIFT))
+
+#define CP_ME_PS_EVENT_DATA_GET_PS_DONE_DATA(cp_me_ps_event_data) \
+ ((cp_me_ps_event_data & CP_ME_PS_EVENT_DATA_PS_DONE_DATA_MASK) >> CP_ME_PS_EVENT_DATA_PS_DONE_DATA_SHIFT)
+
+#define CP_ME_PS_EVENT_DATA_SET_PS_DONE_DATA(cp_me_ps_event_data_reg, ps_done_data) \
+ cp_me_ps_event_data_reg = (cp_me_ps_event_data_reg & ~CP_ME_PS_EVENT_DATA_PS_DONE_DATA_MASK) | (ps_done_data << CP_ME_PS_EVENT_DATA_PS_DONE_DATA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_ps_event_data_t {
+ unsigned int ps_done_data : CP_ME_PS_EVENT_DATA_PS_DONE_DATA_SIZE;
+ } cp_me_ps_event_data_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_ps_event_data_t {
+ unsigned int ps_done_data : CP_ME_PS_EVENT_DATA_PS_DONE_DATA_SIZE;
+ } cp_me_ps_event_data_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_ps_event_data_t f;
+} cp_me_ps_event_data_u;
+
+
+/*
+ * CP_ME_PS_EVENT_ADDR_SWM struct
+ */
+
+#define CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_SWAP_SWM_SIZE 2
+#define CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_ADDR_SWM_SIZE 30
+
+#define CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_SWAP_SWM_SHIFT 0
+#define CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_ADDR_SWM_SHIFT 2
+
+#define CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_SWAP_SWM_MASK 0x00000003
+#define CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_ADDR_SWM_MASK 0xfffffffc
+
+#define CP_ME_PS_EVENT_ADDR_SWM_MASK \
+ (CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_SWAP_SWM_MASK | \
+ CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_ADDR_SWM_MASK)
+
+#define CP_ME_PS_EVENT_ADDR_SWM(ps_done_swap_swm, ps_done_addr_swm) \
+ ((ps_done_swap_swm << CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_SWAP_SWM_SHIFT) | \
+ (ps_done_addr_swm << CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_ADDR_SWM_SHIFT))
+
+#define CP_ME_PS_EVENT_ADDR_SWM_GET_PS_DONE_SWAP_SWM(cp_me_ps_event_addr_swm) \
+ ((cp_me_ps_event_addr_swm & CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_SWAP_SWM_MASK) >> CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_SWAP_SWM_SHIFT)
+#define CP_ME_PS_EVENT_ADDR_SWM_GET_PS_DONE_ADDR_SWM(cp_me_ps_event_addr_swm) \
+ ((cp_me_ps_event_addr_swm & CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_ADDR_SWM_MASK) >> CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_ADDR_SWM_SHIFT)
+
+#define CP_ME_PS_EVENT_ADDR_SWM_SET_PS_DONE_SWAP_SWM(cp_me_ps_event_addr_swm_reg, ps_done_swap_swm) \
+ cp_me_ps_event_addr_swm_reg = (cp_me_ps_event_addr_swm_reg & ~CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_SWAP_SWM_MASK) | (ps_done_swap_swm << CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_SWAP_SWM_SHIFT)
+#define CP_ME_PS_EVENT_ADDR_SWM_SET_PS_DONE_ADDR_SWM(cp_me_ps_event_addr_swm_reg, ps_done_addr_swm) \
+ cp_me_ps_event_addr_swm_reg = (cp_me_ps_event_addr_swm_reg & ~CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_ADDR_SWM_MASK) | (ps_done_addr_swm << CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_ADDR_SWM_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_ps_event_addr_swm_t {
+ unsigned int ps_done_swap_swm : CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_SWAP_SWM_SIZE;
+ unsigned int ps_done_addr_swm : CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_ADDR_SWM_SIZE;
+ } cp_me_ps_event_addr_swm_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_ps_event_addr_swm_t {
+ unsigned int ps_done_addr_swm : CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_ADDR_SWM_SIZE;
+ unsigned int ps_done_swap_swm : CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_SWAP_SWM_SIZE;
+ } cp_me_ps_event_addr_swm_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_ps_event_addr_swm_t f;
+} cp_me_ps_event_addr_swm_u;
+
+
+/*
+ * CP_ME_PS_EVENT_DATA_SWM struct
+ */
+
+#define CP_ME_PS_EVENT_DATA_SWM_PS_DONE_DATA_SWM_SIZE 32
+
+#define CP_ME_PS_EVENT_DATA_SWM_PS_DONE_DATA_SWM_SHIFT 0
+
+#define CP_ME_PS_EVENT_DATA_SWM_PS_DONE_DATA_SWM_MASK 0xffffffff
+
+#define CP_ME_PS_EVENT_DATA_SWM_MASK \
+ (CP_ME_PS_EVENT_DATA_SWM_PS_DONE_DATA_SWM_MASK)
+
+#define CP_ME_PS_EVENT_DATA_SWM(ps_done_data_swm) \
+ ((ps_done_data_swm << CP_ME_PS_EVENT_DATA_SWM_PS_DONE_DATA_SWM_SHIFT))
+
+#define CP_ME_PS_EVENT_DATA_SWM_GET_PS_DONE_DATA_SWM(cp_me_ps_event_data_swm) \
+ ((cp_me_ps_event_data_swm & CP_ME_PS_EVENT_DATA_SWM_PS_DONE_DATA_SWM_MASK) >> CP_ME_PS_EVENT_DATA_SWM_PS_DONE_DATA_SWM_SHIFT)
+
+#define CP_ME_PS_EVENT_DATA_SWM_SET_PS_DONE_DATA_SWM(cp_me_ps_event_data_swm_reg, ps_done_data_swm) \
+ cp_me_ps_event_data_swm_reg = (cp_me_ps_event_data_swm_reg & ~CP_ME_PS_EVENT_DATA_SWM_PS_DONE_DATA_SWM_MASK) | (ps_done_data_swm << CP_ME_PS_EVENT_DATA_SWM_PS_DONE_DATA_SWM_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_ps_event_data_swm_t {
+ unsigned int ps_done_data_swm : CP_ME_PS_EVENT_DATA_SWM_PS_DONE_DATA_SWM_SIZE;
+ } cp_me_ps_event_data_swm_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_ps_event_data_swm_t {
+ unsigned int ps_done_data_swm : CP_ME_PS_EVENT_DATA_SWM_PS_DONE_DATA_SWM_SIZE;
+ } cp_me_ps_event_data_swm_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_ps_event_data_swm_t f;
+} cp_me_ps_event_data_swm_u;
+
+
+/*
+ * CP_ME_CF_EVENT_SRC struct
+ */
+
+#define CP_ME_CF_EVENT_SRC_CF_DONE_SRC_SIZE 1
+
+#define CP_ME_CF_EVENT_SRC_CF_DONE_SRC_SHIFT 0
+
+#define CP_ME_CF_EVENT_SRC_CF_DONE_SRC_MASK 0x00000001
+
+#define CP_ME_CF_EVENT_SRC_MASK \
+ (CP_ME_CF_EVENT_SRC_CF_DONE_SRC_MASK)
+
+#define CP_ME_CF_EVENT_SRC(cf_done_src) \
+ ((cf_done_src << CP_ME_CF_EVENT_SRC_CF_DONE_SRC_SHIFT))
+
+#define CP_ME_CF_EVENT_SRC_GET_CF_DONE_SRC(cp_me_cf_event_src) \
+ ((cp_me_cf_event_src & CP_ME_CF_EVENT_SRC_CF_DONE_SRC_MASK) >> CP_ME_CF_EVENT_SRC_CF_DONE_SRC_SHIFT)
+
+#define CP_ME_CF_EVENT_SRC_SET_CF_DONE_SRC(cp_me_cf_event_src_reg, cf_done_src) \
+ cp_me_cf_event_src_reg = (cp_me_cf_event_src_reg & ~CP_ME_CF_EVENT_SRC_CF_DONE_SRC_MASK) | (cf_done_src << CP_ME_CF_EVENT_SRC_CF_DONE_SRC_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_cf_event_src_t {
+ unsigned int cf_done_src : CP_ME_CF_EVENT_SRC_CF_DONE_SRC_SIZE;
+ unsigned int : 31;
+ } cp_me_cf_event_src_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_cf_event_src_t {
+ unsigned int : 31;
+ unsigned int cf_done_src : CP_ME_CF_EVENT_SRC_CF_DONE_SRC_SIZE;
+ } cp_me_cf_event_src_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_cf_event_src_t f;
+} cp_me_cf_event_src_u;
+
+
+/*
+ * CP_ME_CF_EVENT_ADDR struct
+ */
+
+#define CP_ME_CF_EVENT_ADDR_CF_DONE_SWAP_SIZE 2
+#define CP_ME_CF_EVENT_ADDR_CF_DONE_ADDR_SIZE 30
+
+#define CP_ME_CF_EVENT_ADDR_CF_DONE_SWAP_SHIFT 0
+#define CP_ME_CF_EVENT_ADDR_CF_DONE_ADDR_SHIFT 2
+
+#define CP_ME_CF_EVENT_ADDR_CF_DONE_SWAP_MASK 0x00000003
+#define CP_ME_CF_EVENT_ADDR_CF_DONE_ADDR_MASK 0xfffffffc
+
+#define CP_ME_CF_EVENT_ADDR_MASK \
+ (CP_ME_CF_EVENT_ADDR_CF_DONE_SWAP_MASK | \
+ CP_ME_CF_EVENT_ADDR_CF_DONE_ADDR_MASK)
+
+#define CP_ME_CF_EVENT_ADDR(cf_done_swap, cf_done_addr) \
+ ((cf_done_swap << CP_ME_CF_EVENT_ADDR_CF_DONE_SWAP_SHIFT) | \
+ (cf_done_addr << CP_ME_CF_EVENT_ADDR_CF_DONE_ADDR_SHIFT))
+
+#define CP_ME_CF_EVENT_ADDR_GET_CF_DONE_SWAP(cp_me_cf_event_addr) \
+ ((cp_me_cf_event_addr & CP_ME_CF_EVENT_ADDR_CF_DONE_SWAP_MASK) >> CP_ME_CF_EVENT_ADDR_CF_DONE_SWAP_SHIFT)
+#define CP_ME_CF_EVENT_ADDR_GET_CF_DONE_ADDR(cp_me_cf_event_addr) \
+ ((cp_me_cf_event_addr & CP_ME_CF_EVENT_ADDR_CF_DONE_ADDR_MASK) >> CP_ME_CF_EVENT_ADDR_CF_DONE_ADDR_SHIFT)
+
+#define CP_ME_CF_EVENT_ADDR_SET_CF_DONE_SWAP(cp_me_cf_event_addr_reg, cf_done_swap) \
+ cp_me_cf_event_addr_reg = (cp_me_cf_event_addr_reg & ~CP_ME_CF_EVENT_ADDR_CF_DONE_SWAP_MASK) | (cf_done_swap << CP_ME_CF_EVENT_ADDR_CF_DONE_SWAP_SHIFT)
+#define CP_ME_CF_EVENT_ADDR_SET_CF_DONE_ADDR(cp_me_cf_event_addr_reg, cf_done_addr) \
+ cp_me_cf_event_addr_reg = (cp_me_cf_event_addr_reg & ~CP_ME_CF_EVENT_ADDR_CF_DONE_ADDR_MASK) | (cf_done_addr << CP_ME_CF_EVENT_ADDR_CF_DONE_ADDR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_cf_event_addr_t {
+ unsigned int cf_done_swap : CP_ME_CF_EVENT_ADDR_CF_DONE_SWAP_SIZE;
+ unsigned int cf_done_addr : CP_ME_CF_EVENT_ADDR_CF_DONE_ADDR_SIZE;
+ } cp_me_cf_event_addr_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_cf_event_addr_t {
+ unsigned int cf_done_addr : CP_ME_CF_EVENT_ADDR_CF_DONE_ADDR_SIZE;
+ unsigned int cf_done_swap : CP_ME_CF_EVENT_ADDR_CF_DONE_SWAP_SIZE;
+ } cp_me_cf_event_addr_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_cf_event_addr_t f;
+} cp_me_cf_event_addr_u;
+
+
+/*
+ * CP_ME_CF_EVENT_DATA struct
+ */
+
+#define CP_ME_CF_EVENT_DATA_CF_DONE_DATA_SIZE 32
+
+#define CP_ME_CF_EVENT_DATA_CF_DONE_DATA_SHIFT 0
+
+#define CP_ME_CF_EVENT_DATA_CF_DONE_DATA_MASK 0xffffffff
+
+#define CP_ME_CF_EVENT_DATA_MASK \
+ (CP_ME_CF_EVENT_DATA_CF_DONE_DATA_MASK)
+
+#define CP_ME_CF_EVENT_DATA(cf_done_data) \
+ ((cf_done_data << CP_ME_CF_EVENT_DATA_CF_DONE_DATA_SHIFT))
+
+#define CP_ME_CF_EVENT_DATA_GET_CF_DONE_DATA(cp_me_cf_event_data) \
+ ((cp_me_cf_event_data & CP_ME_CF_EVENT_DATA_CF_DONE_DATA_MASK) >> CP_ME_CF_EVENT_DATA_CF_DONE_DATA_SHIFT)
+
+#define CP_ME_CF_EVENT_DATA_SET_CF_DONE_DATA(cp_me_cf_event_data_reg, cf_done_data) \
+ cp_me_cf_event_data_reg = (cp_me_cf_event_data_reg & ~CP_ME_CF_EVENT_DATA_CF_DONE_DATA_MASK) | (cf_done_data << CP_ME_CF_EVENT_DATA_CF_DONE_DATA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_cf_event_data_t {
+ unsigned int cf_done_data : CP_ME_CF_EVENT_DATA_CF_DONE_DATA_SIZE;
+ } cp_me_cf_event_data_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_cf_event_data_t {
+ unsigned int cf_done_data : CP_ME_CF_EVENT_DATA_CF_DONE_DATA_SIZE;
+ } cp_me_cf_event_data_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_cf_event_data_t f;
+} cp_me_cf_event_data_u;
+
+
+/*
+ * CP_ME_NRT_ADDR struct
+ */
+
+#define CP_ME_NRT_ADDR_NRT_WRITE_SWAP_SIZE 2
+#define CP_ME_NRT_ADDR_NRT_WRITE_ADDR_SIZE 30
+
+#define CP_ME_NRT_ADDR_NRT_WRITE_SWAP_SHIFT 0
+#define CP_ME_NRT_ADDR_NRT_WRITE_ADDR_SHIFT 2
+
+#define CP_ME_NRT_ADDR_NRT_WRITE_SWAP_MASK 0x00000003
+#define CP_ME_NRT_ADDR_NRT_WRITE_ADDR_MASK 0xfffffffc
+
+#define CP_ME_NRT_ADDR_MASK \
+ (CP_ME_NRT_ADDR_NRT_WRITE_SWAP_MASK | \
+ CP_ME_NRT_ADDR_NRT_WRITE_ADDR_MASK)
+
+#define CP_ME_NRT_ADDR(nrt_write_swap, nrt_write_addr) \
+ ((nrt_write_swap << CP_ME_NRT_ADDR_NRT_WRITE_SWAP_SHIFT) | \
+ (nrt_write_addr << CP_ME_NRT_ADDR_NRT_WRITE_ADDR_SHIFT))
+
+#define CP_ME_NRT_ADDR_GET_NRT_WRITE_SWAP(cp_me_nrt_addr) \
+ ((cp_me_nrt_addr & CP_ME_NRT_ADDR_NRT_WRITE_SWAP_MASK) >> CP_ME_NRT_ADDR_NRT_WRITE_SWAP_SHIFT)
+#define CP_ME_NRT_ADDR_GET_NRT_WRITE_ADDR(cp_me_nrt_addr) \
+ ((cp_me_nrt_addr & CP_ME_NRT_ADDR_NRT_WRITE_ADDR_MASK) >> CP_ME_NRT_ADDR_NRT_WRITE_ADDR_SHIFT)
+
+#define CP_ME_NRT_ADDR_SET_NRT_WRITE_SWAP(cp_me_nrt_addr_reg, nrt_write_swap) \
+ cp_me_nrt_addr_reg = (cp_me_nrt_addr_reg & ~CP_ME_NRT_ADDR_NRT_WRITE_SWAP_MASK) | (nrt_write_swap << CP_ME_NRT_ADDR_NRT_WRITE_SWAP_SHIFT)
+#define CP_ME_NRT_ADDR_SET_NRT_WRITE_ADDR(cp_me_nrt_addr_reg, nrt_write_addr) \
+ cp_me_nrt_addr_reg = (cp_me_nrt_addr_reg & ~CP_ME_NRT_ADDR_NRT_WRITE_ADDR_MASK) | (nrt_write_addr << CP_ME_NRT_ADDR_NRT_WRITE_ADDR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_nrt_addr_t {
+ unsigned int nrt_write_swap : CP_ME_NRT_ADDR_NRT_WRITE_SWAP_SIZE;
+ unsigned int nrt_write_addr : CP_ME_NRT_ADDR_NRT_WRITE_ADDR_SIZE;
+ } cp_me_nrt_addr_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_nrt_addr_t {
+ unsigned int nrt_write_addr : CP_ME_NRT_ADDR_NRT_WRITE_ADDR_SIZE;
+ unsigned int nrt_write_swap : CP_ME_NRT_ADDR_NRT_WRITE_SWAP_SIZE;
+ } cp_me_nrt_addr_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_nrt_addr_t f;
+} cp_me_nrt_addr_u;
+
+
+/*
+ * CP_ME_NRT_DATA struct
+ */
+
+#define CP_ME_NRT_DATA_NRT_WRITE_DATA_SIZE 32
+
+#define CP_ME_NRT_DATA_NRT_WRITE_DATA_SHIFT 0
+
+#define CP_ME_NRT_DATA_NRT_WRITE_DATA_MASK 0xffffffff
+
+#define CP_ME_NRT_DATA_MASK \
+ (CP_ME_NRT_DATA_NRT_WRITE_DATA_MASK)
+
+#define CP_ME_NRT_DATA(nrt_write_data) \
+ ((nrt_write_data << CP_ME_NRT_DATA_NRT_WRITE_DATA_SHIFT))
+
+#define CP_ME_NRT_DATA_GET_NRT_WRITE_DATA(cp_me_nrt_data) \
+ ((cp_me_nrt_data & CP_ME_NRT_DATA_NRT_WRITE_DATA_MASK) >> CP_ME_NRT_DATA_NRT_WRITE_DATA_SHIFT)
+
+#define CP_ME_NRT_DATA_SET_NRT_WRITE_DATA(cp_me_nrt_data_reg, nrt_write_data) \
+ cp_me_nrt_data_reg = (cp_me_nrt_data_reg & ~CP_ME_NRT_DATA_NRT_WRITE_DATA_MASK) | (nrt_write_data << CP_ME_NRT_DATA_NRT_WRITE_DATA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_nrt_data_t {
+ unsigned int nrt_write_data : CP_ME_NRT_DATA_NRT_WRITE_DATA_SIZE;
+ } cp_me_nrt_data_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_nrt_data_t {
+ unsigned int nrt_write_data : CP_ME_NRT_DATA_NRT_WRITE_DATA_SIZE;
+ } cp_me_nrt_data_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_nrt_data_t f;
+} cp_me_nrt_data_u;
+
+
+/*
+ * CP_ME_VS_FETCH_DONE_SRC struct
+ */
+
+#define CP_ME_VS_FETCH_DONE_SRC_VS_FETCH_DONE_CNTR_SIZE 1
+
+#define CP_ME_VS_FETCH_DONE_SRC_VS_FETCH_DONE_CNTR_SHIFT 0
+
+#define CP_ME_VS_FETCH_DONE_SRC_VS_FETCH_DONE_CNTR_MASK 0x00000001
+
+#define CP_ME_VS_FETCH_DONE_SRC_MASK \
+ (CP_ME_VS_FETCH_DONE_SRC_VS_FETCH_DONE_CNTR_MASK)
+
+#define CP_ME_VS_FETCH_DONE_SRC(vs_fetch_done_cntr) \
+ ((vs_fetch_done_cntr << CP_ME_VS_FETCH_DONE_SRC_VS_FETCH_DONE_CNTR_SHIFT))
+
+#define CP_ME_VS_FETCH_DONE_SRC_GET_VS_FETCH_DONE_CNTR(cp_me_vs_fetch_done_src) \
+ ((cp_me_vs_fetch_done_src & CP_ME_VS_FETCH_DONE_SRC_VS_FETCH_DONE_CNTR_MASK) >> CP_ME_VS_FETCH_DONE_SRC_VS_FETCH_DONE_CNTR_SHIFT)
+
+#define CP_ME_VS_FETCH_DONE_SRC_SET_VS_FETCH_DONE_CNTR(cp_me_vs_fetch_done_src_reg, vs_fetch_done_cntr) \
+ cp_me_vs_fetch_done_src_reg = (cp_me_vs_fetch_done_src_reg & ~CP_ME_VS_FETCH_DONE_SRC_VS_FETCH_DONE_CNTR_MASK) | (vs_fetch_done_cntr << CP_ME_VS_FETCH_DONE_SRC_VS_FETCH_DONE_CNTR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_vs_fetch_done_src_t {
+ unsigned int vs_fetch_done_cntr : CP_ME_VS_FETCH_DONE_SRC_VS_FETCH_DONE_CNTR_SIZE;
+ unsigned int : 31;
+ } cp_me_vs_fetch_done_src_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_vs_fetch_done_src_t {
+ unsigned int : 31;
+ unsigned int vs_fetch_done_cntr : CP_ME_VS_FETCH_DONE_SRC_VS_FETCH_DONE_CNTR_SIZE;
+ } cp_me_vs_fetch_done_src_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_vs_fetch_done_src_t f;
+} cp_me_vs_fetch_done_src_u;
+
+
+/*
+ * CP_ME_VS_FETCH_DONE_ADDR struct
+ */
+
+#define CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_SWAP_SIZE 2
+#define CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_ADDR_SIZE 30
+
+#define CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_SWAP_SHIFT 0
+#define CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_ADDR_SHIFT 2
+
+#define CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_SWAP_MASK 0x00000003
+#define CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_ADDR_MASK 0xfffffffc
+
+#define CP_ME_VS_FETCH_DONE_ADDR_MASK \
+ (CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_SWAP_MASK | \
+ CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_ADDR_MASK)
+
+#define CP_ME_VS_FETCH_DONE_ADDR(vs_fetch_done_swap, vs_fetch_done_addr) \
+ ((vs_fetch_done_swap << CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_SWAP_SHIFT) | \
+ (vs_fetch_done_addr << CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_ADDR_SHIFT))
+
+#define CP_ME_VS_FETCH_DONE_ADDR_GET_VS_FETCH_DONE_SWAP(cp_me_vs_fetch_done_addr) \
+ ((cp_me_vs_fetch_done_addr & CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_SWAP_MASK) >> CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_SWAP_SHIFT)
+#define CP_ME_VS_FETCH_DONE_ADDR_GET_VS_FETCH_DONE_ADDR(cp_me_vs_fetch_done_addr) \
+ ((cp_me_vs_fetch_done_addr & CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_ADDR_MASK) >> CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_ADDR_SHIFT)
+
+#define CP_ME_VS_FETCH_DONE_ADDR_SET_VS_FETCH_DONE_SWAP(cp_me_vs_fetch_done_addr_reg, vs_fetch_done_swap) \
+ cp_me_vs_fetch_done_addr_reg = (cp_me_vs_fetch_done_addr_reg & ~CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_SWAP_MASK) | (vs_fetch_done_swap << CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_SWAP_SHIFT)
+#define CP_ME_VS_FETCH_DONE_ADDR_SET_VS_FETCH_DONE_ADDR(cp_me_vs_fetch_done_addr_reg, vs_fetch_done_addr) \
+ cp_me_vs_fetch_done_addr_reg = (cp_me_vs_fetch_done_addr_reg & ~CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_ADDR_MASK) | (vs_fetch_done_addr << CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_ADDR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_vs_fetch_done_addr_t {
+ unsigned int vs_fetch_done_swap : CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_SWAP_SIZE;
+ unsigned int vs_fetch_done_addr : CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_ADDR_SIZE;
+ } cp_me_vs_fetch_done_addr_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_vs_fetch_done_addr_t {
+ unsigned int vs_fetch_done_addr : CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_ADDR_SIZE;
+ unsigned int vs_fetch_done_swap : CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_SWAP_SIZE;
+ } cp_me_vs_fetch_done_addr_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_vs_fetch_done_addr_t f;
+} cp_me_vs_fetch_done_addr_u;
+
+
+/*
+ * CP_ME_VS_FETCH_DONE_DATA struct
+ */
+
+#define CP_ME_VS_FETCH_DONE_DATA_VS_FETCH_DONE_DATA_SIZE 32
+
+#define CP_ME_VS_FETCH_DONE_DATA_VS_FETCH_DONE_DATA_SHIFT 0
+
+#define CP_ME_VS_FETCH_DONE_DATA_VS_FETCH_DONE_DATA_MASK 0xffffffff
+
+#define CP_ME_VS_FETCH_DONE_DATA_MASK \
+ (CP_ME_VS_FETCH_DONE_DATA_VS_FETCH_DONE_DATA_MASK)
+
+#define CP_ME_VS_FETCH_DONE_DATA(vs_fetch_done_data) \
+ ((vs_fetch_done_data << CP_ME_VS_FETCH_DONE_DATA_VS_FETCH_DONE_DATA_SHIFT))
+
+#define CP_ME_VS_FETCH_DONE_DATA_GET_VS_FETCH_DONE_DATA(cp_me_vs_fetch_done_data) \
+ ((cp_me_vs_fetch_done_data & CP_ME_VS_FETCH_DONE_DATA_VS_FETCH_DONE_DATA_MASK) >> CP_ME_VS_FETCH_DONE_DATA_VS_FETCH_DONE_DATA_SHIFT)
+
+#define CP_ME_VS_FETCH_DONE_DATA_SET_VS_FETCH_DONE_DATA(cp_me_vs_fetch_done_data_reg, vs_fetch_done_data) \
+ cp_me_vs_fetch_done_data_reg = (cp_me_vs_fetch_done_data_reg & ~CP_ME_VS_FETCH_DONE_DATA_VS_FETCH_DONE_DATA_MASK) | (vs_fetch_done_data << CP_ME_VS_FETCH_DONE_DATA_VS_FETCH_DONE_DATA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_vs_fetch_done_data_t {
+ unsigned int vs_fetch_done_data : CP_ME_VS_FETCH_DONE_DATA_VS_FETCH_DONE_DATA_SIZE;
+ } cp_me_vs_fetch_done_data_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_vs_fetch_done_data_t {
+ unsigned int vs_fetch_done_data : CP_ME_VS_FETCH_DONE_DATA_VS_FETCH_DONE_DATA_SIZE;
+ } cp_me_vs_fetch_done_data_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_vs_fetch_done_data_t f;
+} cp_me_vs_fetch_done_data_u;
+
+
+/*
+ * CP_INT_CNTL struct
+ */
+
+#define CP_INT_CNTL_SW_INT_MASK_SIZE 1
+#define CP_INT_CNTL_T0_PACKET_IN_IB_MASK_SIZE 1
+#define CP_INT_CNTL_OPCODE_ERROR_MASK_SIZE 1
+#define CP_INT_CNTL_PROTECTED_MODE_ERROR_MASK_SIZE 1
+#define CP_INT_CNTL_RESERVED_BIT_ERROR_MASK_SIZE 1
+#define CP_INT_CNTL_IB_ERROR_MASK_SIZE 1
+#define CP_INT_CNTL_IB2_INT_MASK_SIZE 1
+#define CP_INT_CNTL_IB1_INT_MASK_SIZE 1
+#define CP_INT_CNTL_RB_INT_MASK_SIZE 1
+
+#define CP_INT_CNTL_SW_INT_MASK_SHIFT 19
+#define CP_INT_CNTL_T0_PACKET_IN_IB_MASK_SHIFT 23
+#define CP_INT_CNTL_OPCODE_ERROR_MASK_SHIFT 24
+#define CP_INT_CNTL_PROTECTED_MODE_ERROR_MASK_SHIFT 25
+#define CP_INT_CNTL_RESERVED_BIT_ERROR_MASK_SHIFT 26
+#define CP_INT_CNTL_IB_ERROR_MASK_SHIFT 27
+#define CP_INT_CNTL_IB2_INT_MASK_SHIFT 29
+#define CP_INT_CNTL_IB1_INT_MASK_SHIFT 30
+#define CP_INT_CNTL_RB_INT_MASK_SHIFT 31
+
+#define CP_INT_CNTL_SW_INT_MASK_MASK 0x00080000
+#define CP_INT_CNTL_T0_PACKET_IN_IB_MASK_MASK 0x00800000
+#define CP_INT_CNTL_OPCODE_ERROR_MASK_MASK 0x01000000
+#define CP_INT_CNTL_PROTECTED_MODE_ERROR_MASK_MASK 0x02000000
+#define CP_INT_CNTL_RESERVED_BIT_ERROR_MASK_MASK 0x04000000
+#define CP_INT_CNTL_IB_ERROR_MASK_MASK 0x08000000
+#define CP_INT_CNTL_IB2_INT_MASK_MASK 0x20000000
+#define CP_INT_CNTL_IB1_INT_MASK_MASK 0x40000000
+#define CP_INT_CNTL_RB_INT_MASK_MASK 0x80000000
+
+#define CP_INT_CNTL_MASK \
+ (CP_INT_CNTL_SW_INT_MASK_MASK | \
+ CP_INT_CNTL_T0_PACKET_IN_IB_MASK_MASK | \
+ CP_INT_CNTL_OPCODE_ERROR_MASK_MASK | \
+ CP_INT_CNTL_PROTECTED_MODE_ERROR_MASK_MASK | \
+ CP_INT_CNTL_RESERVED_BIT_ERROR_MASK_MASK | \
+ CP_INT_CNTL_IB_ERROR_MASK_MASK | \
+ CP_INT_CNTL_IB2_INT_MASK_MASK | \
+ CP_INT_CNTL_IB1_INT_MASK_MASK | \
+ CP_INT_CNTL_RB_INT_MASK_MASK)
+
+#define CP_INT_CNTL(sw_int_mask, t0_packet_in_ib_mask, opcode_error_mask, protected_mode_error_mask, reserved_bit_error_mask, ib_error_mask, ib2_int_mask, ib1_int_mask, rb_int_mask) \
+ ((sw_int_mask << CP_INT_CNTL_SW_INT_MASK_SHIFT) | \
+ (t0_packet_in_ib_mask << CP_INT_CNTL_T0_PACKET_IN_IB_MASK_SHIFT) | \
+ (opcode_error_mask << CP_INT_CNTL_OPCODE_ERROR_MASK_SHIFT) | \
+ (protected_mode_error_mask << CP_INT_CNTL_PROTECTED_MODE_ERROR_MASK_SHIFT) | \
+ (reserved_bit_error_mask << CP_INT_CNTL_RESERVED_BIT_ERROR_MASK_SHIFT) | \
+ (ib_error_mask << CP_INT_CNTL_IB_ERROR_MASK_SHIFT) | \
+ (ib2_int_mask << CP_INT_CNTL_IB2_INT_MASK_SHIFT) | \
+ (ib1_int_mask << CP_INT_CNTL_IB1_INT_MASK_SHIFT) | \
+ (rb_int_mask << CP_INT_CNTL_RB_INT_MASK_SHIFT))
+
+#define CP_INT_CNTL_GET_SW_INT_MASK(cp_int_cntl) \
+ ((cp_int_cntl & CP_INT_CNTL_SW_INT_MASK_MASK) >> CP_INT_CNTL_SW_INT_MASK_SHIFT)
+#define CP_INT_CNTL_GET_T0_PACKET_IN_IB_MASK(cp_int_cntl) \
+ ((cp_int_cntl & CP_INT_CNTL_T0_PACKET_IN_IB_MASK_MASK) >> CP_INT_CNTL_T0_PACKET_IN_IB_MASK_SHIFT)
+#define CP_INT_CNTL_GET_OPCODE_ERROR_MASK(cp_int_cntl) \
+ ((cp_int_cntl & CP_INT_CNTL_OPCODE_ERROR_MASK_MASK) >> CP_INT_CNTL_OPCODE_ERROR_MASK_SHIFT)
+#define CP_INT_CNTL_GET_PROTECTED_MODE_ERROR_MASK(cp_int_cntl) \
+ ((cp_int_cntl & CP_INT_CNTL_PROTECTED_MODE_ERROR_MASK_MASK) >> CP_INT_CNTL_PROTECTED_MODE_ERROR_MASK_SHIFT)
+#define CP_INT_CNTL_GET_RESERVED_BIT_ERROR_MASK(cp_int_cntl) \
+ ((cp_int_cntl & CP_INT_CNTL_RESERVED_BIT_ERROR_MASK_MASK) >> CP_INT_CNTL_RESERVED_BIT_ERROR_MASK_SHIFT)
+#define CP_INT_CNTL_GET_IB_ERROR_MASK(cp_int_cntl) \
+ ((cp_int_cntl & CP_INT_CNTL_IB_ERROR_MASK_MASK) >> CP_INT_CNTL_IB_ERROR_MASK_SHIFT)
+#define CP_INT_CNTL_GET_IB2_INT_MASK(cp_int_cntl) \
+ ((cp_int_cntl & CP_INT_CNTL_IB2_INT_MASK_MASK) >> CP_INT_CNTL_IB2_INT_MASK_SHIFT)
+#define CP_INT_CNTL_GET_IB1_INT_MASK(cp_int_cntl) \
+ ((cp_int_cntl & CP_INT_CNTL_IB1_INT_MASK_MASK) >> CP_INT_CNTL_IB1_INT_MASK_SHIFT)
+#define CP_INT_CNTL_GET_RB_INT_MASK(cp_int_cntl) \
+ ((cp_int_cntl & CP_INT_CNTL_RB_INT_MASK_MASK) >> CP_INT_CNTL_RB_INT_MASK_SHIFT)
+
+#define CP_INT_CNTL_SET_SW_INT_MASK(cp_int_cntl_reg, sw_int_mask) \
+ cp_int_cntl_reg = (cp_int_cntl_reg & ~CP_INT_CNTL_SW_INT_MASK_MASK) | (sw_int_mask << CP_INT_CNTL_SW_INT_MASK_SHIFT)
+#define CP_INT_CNTL_SET_T0_PACKET_IN_IB_MASK(cp_int_cntl_reg, t0_packet_in_ib_mask) \
+ cp_int_cntl_reg = (cp_int_cntl_reg & ~CP_INT_CNTL_T0_PACKET_IN_IB_MASK_MASK) | (t0_packet_in_ib_mask << CP_INT_CNTL_T0_PACKET_IN_IB_MASK_SHIFT)
+#define CP_INT_CNTL_SET_OPCODE_ERROR_MASK(cp_int_cntl_reg, opcode_error_mask) \
+ cp_int_cntl_reg = (cp_int_cntl_reg & ~CP_INT_CNTL_OPCODE_ERROR_MASK_MASK) | (opcode_error_mask << CP_INT_CNTL_OPCODE_ERROR_MASK_SHIFT)
+#define CP_INT_CNTL_SET_PROTECTED_MODE_ERROR_MASK(cp_int_cntl_reg, protected_mode_error_mask) \
+ cp_int_cntl_reg = (cp_int_cntl_reg & ~CP_INT_CNTL_PROTECTED_MODE_ERROR_MASK_MASK) | (protected_mode_error_mask << CP_INT_CNTL_PROTECTED_MODE_ERROR_MASK_SHIFT)
+#define CP_INT_CNTL_SET_RESERVED_BIT_ERROR_MASK(cp_int_cntl_reg, reserved_bit_error_mask) \
+ cp_int_cntl_reg = (cp_int_cntl_reg & ~CP_INT_CNTL_RESERVED_BIT_ERROR_MASK_MASK) | (reserved_bit_error_mask << CP_INT_CNTL_RESERVED_BIT_ERROR_MASK_SHIFT)
+#define CP_INT_CNTL_SET_IB_ERROR_MASK(cp_int_cntl_reg, ib_error_mask) \
+ cp_int_cntl_reg = (cp_int_cntl_reg & ~CP_INT_CNTL_IB_ERROR_MASK_MASK) | (ib_error_mask << CP_INT_CNTL_IB_ERROR_MASK_SHIFT)
+#define CP_INT_CNTL_SET_IB2_INT_MASK(cp_int_cntl_reg, ib2_int_mask) \
+ cp_int_cntl_reg = (cp_int_cntl_reg & ~CP_INT_CNTL_IB2_INT_MASK_MASK) | (ib2_int_mask << CP_INT_CNTL_IB2_INT_MASK_SHIFT)
+#define CP_INT_CNTL_SET_IB1_INT_MASK(cp_int_cntl_reg, ib1_int_mask) \
+ cp_int_cntl_reg = (cp_int_cntl_reg & ~CP_INT_CNTL_IB1_INT_MASK_MASK) | (ib1_int_mask << CP_INT_CNTL_IB1_INT_MASK_SHIFT)
+#define CP_INT_CNTL_SET_RB_INT_MASK(cp_int_cntl_reg, rb_int_mask) \
+ cp_int_cntl_reg = (cp_int_cntl_reg & ~CP_INT_CNTL_RB_INT_MASK_MASK) | (rb_int_mask << CP_INT_CNTL_RB_INT_MASK_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_int_cntl_t {
+ unsigned int : 19;
+ unsigned int sw_int_mask : CP_INT_CNTL_SW_INT_MASK_SIZE;
+ unsigned int : 3;
+ unsigned int t0_packet_in_ib_mask : CP_INT_CNTL_T0_PACKET_IN_IB_MASK_SIZE;
+ unsigned int opcode_error_mask : CP_INT_CNTL_OPCODE_ERROR_MASK_SIZE;
+ unsigned int protected_mode_error_mask : CP_INT_CNTL_PROTECTED_MODE_ERROR_MASK_SIZE;
+ unsigned int reserved_bit_error_mask : CP_INT_CNTL_RESERVED_BIT_ERROR_MASK_SIZE;
+ unsigned int ib_error_mask : CP_INT_CNTL_IB_ERROR_MASK_SIZE;
+ unsigned int : 1;
+ unsigned int ib2_int_mask : CP_INT_CNTL_IB2_INT_MASK_SIZE;
+ unsigned int ib1_int_mask : CP_INT_CNTL_IB1_INT_MASK_SIZE;
+ unsigned int rb_int_mask : CP_INT_CNTL_RB_INT_MASK_SIZE;
+ } cp_int_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_int_cntl_t {
+ unsigned int rb_int_mask : CP_INT_CNTL_RB_INT_MASK_SIZE;
+ unsigned int ib1_int_mask : CP_INT_CNTL_IB1_INT_MASK_SIZE;
+ unsigned int ib2_int_mask : CP_INT_CNTL_IB2_INT_MASK_SIZE;
+ unsigned int : 1;
+ unsigned int ib_error_mask : CP_INT_CNTL_IB_ERROR_MASK_SIZE;
+ unsigned int reserved_bit_error_mask : CP_INT_CNTL_RESERVED_BIT_ERROR_MASK_SIZE;
+ unsigned int protected_mode_error_mask : CP_INT_CNTL_PROTECTED_MODE_ERROR_MASK_SIZE;
+ unsigned int opcode_error_mask : CP_INT_CNTL_OPCODE_ERROR_MASK_SIZE;
+ unsigned int t0_packet_in_ib_mask : CP_INT_CNTL_T0_PACKET_IN_IB_MASK_SIZE;
+ unsigned int : 3;
+ unsigned int sw_int_mask : CP_INT_CNTL_SW_INT_MASK_SIZE;
+ unsigned int : 19;
+ } cp_int_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_int_cntl_t f;
+} cp_int_cntl_u;
+
+
+/*
+ * CP_INT_STATUS struct
+ */
+
+#define CP_INT_STATUS_SW_INT_STAT_SIZE 1
+#define CP_INT_STATUS_T0_PACKET_IN_IB_STAT_SIZE 1
+#define CP_INT_STATUS_OPCODE_ERROR_STAT_SIZE 1
+#define CP_INT_STATUS_PROTECTED_MODE_ERROR_STAT_SIZE 1
+#define CP_INT_STATUS_RESERVED_BIT_ERROR_STAT_SIZE 1
+#define CP_INT_STATUS_IB_ERROR_STAT_SIZE 1
+#define CP_INT_STATUS_IB2_INT_STAT_SIZE 1
+#define CP_INT_STATUS_IB1_INT_STAT_SIZE 1
+#define CP_INT_STATUS_RB_INT_STAT_SIZE 1
+
+#define CP_INT_STATUS_SW_INT_STAT_SHIFT 19
+#define CP_INT_STATUS_T0_PACKET_IN_IB_STAT_SHIFT 23
+#define CP_INT_STATUS_OPCODE_ERROR_STAT_SHIFT 24
+#define CP_INT_STATUS_PROTECTED_MODE_ERROR_STAT_SHIFT 25
+#define CP_INT_STATUS_RESERVED_BIT_ERROR_STAT_SHIFT 26
+#define CP_INT_STATUS_IB_ERROR_STAT_SHIFT 27
+#define CP_INT_STATUS_IB2_INT_STAT_SHIFT 29
+#define CP_INT_STATUS_IB1_INT_STAT_SHIFT 30
+#define CP_INT_STATUS_RB_INT_STAT_SHIFT 31
+
+#define CP_INT_STATUS_SW_INT_STAT_MASK 0x00080000
+#define CP_INT_STATUS_T0_PACKET_IN_IB_STAT_MASK 0x00800000
+#define CP_INT_STATUS_OPCODE_ERROR_STAT_MASK 0x01000000
+#define CP_INT_STATUS_PROTECTED_MODE_ERROR_STAT_MASK 0x02000000
+#define CP_INT_STATUS_RESERVED_BIT_ERROR_STAT_MASK 0x04000000
+#define CP_INT_STATUS_IB_ERROR_STAT_MASK 0x08000000
+#define CP_INT_STATUS_IB2_INT_STAT_MASK 0x20000000
+#define CP_INT_STATUS_IB1_INT_STAT_MASK 0x40000000
+#define CP_INT_STATUS_RB_INT_STAT_MASK 0x80000000
+
+#define CP_INT_STATUS_MASK \
+ (CP_INT_STATUS_SW_INT_STAT_MASK | \
+ CP_INT_STATUS_T0_PACKET_IN_IB_STAT_MASK | \
+ CP_INT_STATUS_OPCODE_ERROR_STAT_MASK | \
+ CP_INT_STATUS_PROTECTED_MODE_ERROR_STAT_MASK | \
+ CP_INT_STATUS_RESERVED_BIT_ERROR_STAT_MASK | \
+ CP_INT_STATUS_IB_ERROR_STAT_MASK | \
+ CP_INT_STATUS_IB2_INT_STAT_MASK | \
+ CP_INT_STATUS_IB1_INT_STAT_MASK | \
+ CP_INT_STATUS_RB_INT_STAT_MASK)
+
+#define CP_INT_STATUS(sw_int_stat, t0_packet_in_ib_stat, opcode_error_stat, protected_mode_error_stat, reserved_bit_error_stat, ib_error_stat, ib2_int_stat, ib1_int_stat, rb_int_stat) \
+ ((sw_int_stat << CP_INT_STATUS_SW_INT_STAT_SHIFT) | \
+ (t0_packet_in_ib_stat << CP_INT_STATUS_T0_PACKET_IN_IB_STAT_SHIFT) | \
+ (opcode_error_stat << CP_INT_STATUS_OPCODE_ERROR_STAT_SHIFT) | \
+ (protected_mode_error_stat << CP_INT_STATUS_PROTECTED_MODE_ERROR_STAT_SHIFT) | \
+ (reserved_bit_error_stat << CP_INT_STATUS_RESERVED_BIT_ERROR_STAT_SHIFT) | \
+ (ib_error_stat << CP_INT_STATUS_IB_ERROR_STAT_SHIFT) | \
+ (ib2_int_stat << CP_INT_STATUS_IB2_INT_STAT_SHIFT) | \
+ (ib1_int_stat << CP_INT_STATUS_IB1_INT_STAT_SHIFT) | \
+ (rb_int_stat << CP_INT_STATUS_RB_INT_STAT_SHIFT))
+
+#define CP_INT_STATUS_GET_SW_INT_STAT(cp_int_status) \
+ ((cp_int_status & CP_INT_STATUS_SW_INT_STAT_MASK) >> CP_INT_STATUS_SW_INT_STAT_SHIFT)
+#define CP_INT_STATUS_GET_T0_PACKET_IN_IB_STAT(cp_int_status) \
+ ((cp_int_status & CP_INT_STATUS_T0_PACKET_IN_IB_STAT_MASK) >> CP_INT_STATUS_T0_PACKET_IN_IB_STAT_SHIFT)
+#define CP_INT_STATUS_GET_OPCODE_ERROR_STAT(cp_int_status) \
+ ((cp_int_status & CP_INT_STATUS_OPCODE_ERROR_STAT_MASK) >> CP_INT_STATUS_OPCODE_ERROR_STAT_SHIFT)
+#define CP_INT_STATUS_GET_PROTECTED_MODE_ERROR_STAT(cp_int_status) \
+ ((cp_int_status & CP_INT_STATUS_PROTECTED_MODE_ERROR_STAT_MASK) >> CP_INT_STATUS_PROTECTED_MODE_ERROR_STAT_SHIFT)
+#define CP_INT_STATUS_GET_RESERVED_BIT_ERROR_STAT(cp_int_status) \
+ ((cp_int_status & CP_INT_STATUS_RESERVED_BIT_ERROR_STAT_MASK) >> CP_INT_STATUS_RESERVED_BIT_ERROR_STAT_SHIFT)
+#define CP_INT_STATUS_GET_IB_ERROR_STAT(cp_int_status) \
+ ((cp_int_status & CP_INT_STATUS_IB_ERROR_STAT_MASK) >> CP_INT_STATUS_IB_ERROR_STAT_SHIFT)
+#define CP_INT_STATUS_GET_IB2_INT_STAT(cp_int_status) \
+ ((cp_int_status & CP_INT_STATUS_IB2_INT_STAT_MASK) >> CP_INT_STATUS_IB2_INT_STAT_SHIFT)
+#define CP_INT_STATUS_GET_IB1_INT_STAT(cp_int_status) \
+ ((cp_int_status & CP_INT_STATUS_IB1_INT_STAT_MASK) >> CP_INT_STATUS_IB1_INT_STAT_SHIFT)
+#define CP_INT_STATUS_GET_RB_INT_STAT(cp_int_status) \
+ ((cp_int_status & CP_INT_STATUS_RB_INT_STAT_MASK) >> CP_INT_STATUS_RB_INT_STAT_SHIFT)
+
+#define CP_INT_STATUS_SET_SW_INT_STAT(cp_int_status_reg, sw_int_stat) \
+ cp_int_status_reg = (cp_int_status_reg & ~CP_INT_STATUS_SW_INT_STAT_MASK) | (sw_int_stat << CP_INT_STATUS_SW_INT_STAT_SHIFT)
+#define CP_INT_STATUS_SET_T0_PACKET_IN_IB_STAT(cp_int_status_reg, t0_packet_in_ib_stat) \
+ cp_int_status_reg = (cp_int_status_reg & ~CP_INT_STATUS_T0_PACKET_IN_IB_STAT_MASK) | (t0_packet_in_ib_stat << CP_INT_STATUS_T0_PACKET_IN_IB_STAT_SHIFT)
+#define CP_INT_STATUS_SET_OPCODE_ERROR_STAT(cp_int_status_reg, opcode_error_stat) \
+ cp_int_status_reg = (cp_int_status_reg & ~CP_INT_STATUS_OPCODE_ERROR_STAT_MASK) | (opcode_error_stat << CP_INT_STATUS_OPCODE_ERROR_STAT_SHIFT)
+#define CP_INT_STATUS_SET_PROTECTED_MODE_ERROR_STAT(cp_int_status_reg, protected_mode_error_stat) \
+ cp_int_status_reg = (cp_int_status_reg & ~CP_INT_STATUS_PROTECTED_MODE_ERROR_STAT_MASK) | (protected_mode_error_stat << CP_INT_STATUS_PROTECTED_MODE_ERROR_STAT_SHIFT)
+#define CP_INT_STATUS_SET_RESERVED_BIT_ERROR_STAT(cp_int_status_reg, reserved_bit_error_stat) \
+ cp_int_status_reg = (cp_int_status_reg & ~CP_INT_STATUS_RESERVED_BIT_ERROR_STAT_MASK) | (reserved_bit_error_stat << CP_INT_STATUS_RESERVED_BIT_ERROR_STAT_SHIFT)
+#define CP_INT_STATUS_SET_IB_ERROR_STAT(cp_int_status_reg, ib_error_stat) \
+ cp_int_status_reg = (cp_int_status_reg & ~CP_INT_STATUS_IB_ERROR_STAT_MASK) | (ib_error_stat << CP_INT_STATUS_IB_ERROR_STAT_SHIFT)
+#define CP_INT_STATUS_SET_IB2_INT_STAT(cp_int_status_reg, ib2_int_stat) \
+ cp_int_status_reg = (cp_int_status_reg & ~CP_INT_STATUS_IB2_INT_STAT_MASK) | (ib2_int_stat << CP_INT_STATUS_IB2_INT_STAT_SHIFT)
+#define CP_INT_STATUS_SET_IB1_INT_STAT(cp_int_status_reg, ib1_int_stat) \
+ cp_int_status_reg = (cp_int_status_reg & ~CP_INT_STATUS_IB1_INT_STAT_MASK) | (ib1_int_stat << CP_INT_STATUS_IB1_INT_STAT_SHIFT)
+#define CP_INT_STATUS_SET_RB_INT_STAT(cp_int_status_reg, rb_int_stat) \
+ cp_int_status_reg = (cp_int_status_reg & ~CP_INT_STATUS_RB_INT_STAT_MASK) | (rb_int_stat << CP_INT_STATUS_RB_INT_STAT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_int_status_t {
+ unsigned int : 19;
+ unsigned int sw_int_stat : CP_INT_STATUS_SW_INT_STAT_SIZE;
+ unsigned int : 3;
+ unsigned int t0_packet_in_ib_stat : CP_INT_STATUS_T0_PACKET_IN_IB_STAT_SIZE;
+ unsigned int opcode_error_stat : CP_INT_STATUS_OPCODE_ERROR_STAT_SIZE;
+ unsigned int protected_mode_error_stat : CP_INT_STATUS_PROTECTED_MODE_ERROR_STAT_SIZE;
+ unsigned int reserved_bit_error_stat : CP_INT_STATUS_RESERVED_BIT_ERROR_STAT_SIZE;
+ unsigned int ib_error_stat : CP_INT_STATUS_IB_ERROR_STAT_SIZE;
+ unsigned int : 1;
+ unsigned int ib2_int_stat : CP_INT_STATUS_IB2_INT_STAT_SIZE;
+ unsigned int ib1_int_stat : CP_INT_STATUS_IB1_INT_STAT_SIZE;
+ unsigned int rb_int_stat : CP_INT_STATUS_RB_INT_STAT_SIZE;
+ } cp_int_status_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_int_status_t {
+ unsigned int rb_int_stat : CP_INT_STATUS_RB_INT_STAT_SIZE;
+ unsigned int ib1_int_stat : CP_INT_STATUS_IB1_INT_STAT_SIZE;
+ unsigned int ib2_int_stat : CP_INT_STATUS_IB2_INT_STAT_SIZE;
+ unsigned int : 1;
+ unsigned int ib_error_stat : CP_INT_STATUS_IB_ERROR_STAT_SIZE;
+ unsigned int reserved_bit_error_stat : CP_INT_STATUS_RESERVED_BIT_ERROR_STAT_SIZE;
+ unsigned int protected_mode_error_stat : CP_INT_STATUS_PROTECTED_MODE_ERROR_STAT_SIZE;
+ unsigned int opcode_error_stat : CP_INT_STATUS_OPCODE_ERROR_STAT_SIZE;
+ unsigned int t0_packet_in_ib_stat : CP_INT_STATUS_T0_PACKET_IN_IB_STAT_SIZE;
+ unsigned int : 3;
+ unsigned int sw_int_stat : CP_INT_STATUS_SW_INT_STAT_SIZE;
+ unsigned int : 19;
+ } cp_int_status_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_int_status_t f;
+} cp_int_status_u;
+
+
+/*
+ * CP_INT_ACK struct
+ */
+
+#define CP_INT_ACK_SW_INT_ACK_SIZE 1
+#define CP_INT_ACK_T0_PACKET_IN_IB_ACK_SIZE 1
+#define CP_INT_ACK_OPCODE_ERROR_ACK_SIZE 1
+#define CP_INT_ACK_PROTECTED_MODE_ERROR_ACK_SIZE 1
+#define CP_INT_ACK_RESERVED_BIT_ERROR_ACK_SIZE 1
+#define CP_INT_ACK_IB_ERROR_ACK_SIZE 1
+#define CP_INT_ACK_IB2_INT_ACK_SIZE 1
+#define CP_INT_ACK_IB1_INT_ACK_SIZE 1
+#define CP_INT_ACK_RB_INT_ACK_SIZE 1
+
+#define CP_INT_ACK_SW_INT_ACK_SHIFT 19
+#define CP_INT_ACK_T0_PACKET_IN_IB_ACK_SHIFT 23
+#define CP_INT_ACK_OPCODE_ERROR_ACK_SHIFT 24
+#define CP_INT_ACK_PROTECTED_MODE_ERROR_ACK_SHIFT 25
+#define CP_INT_ACK_RESERVED_BIT_ERROR_ACK_SHIFT 26
+#define CP_INT_ACK_IB_ERROR_ACK_SHIFT 27
+#define CP_INT_ACK_IB2_INT_ACK_SHIFT 29
+#define CP_INT_ACK_IB1_INT_ACK_SHIFT 30
+#define CP_INT_ACK_RB_INT_ACK_SHIFT 31
+
+#define CP_INT_ACK_SW_INT_ACK_MASK 0x00080000
+#define CP_INT_ACK_T0_PACKET_IN_IB_ACK_MASK 0x00800000
+#define CP_INT_ACK_OPCODE_ERROR_ACK_MASK 0x01000000
+#define CP_INT_ACK_PROTECTED_MODE_ERROR_ACK_MASK 0x02000000
+#define CP_INT_ACK_RESERVED_BIT_ERROR_ACK_MASK 0x04000000
+#define CP_INT_ACK_IB_ERROR_ACK_MASK 0x08000000
+#define CP_INT_ACK_IB2_INT_ACK_MASK 0x20000000
+#define CP_INT_ACK_IB1_INT_ACK_MASK 0x40000000
+#define CP_INT_ACK_RB_INT_ACK_MASK 0x80000000
+
+#define CP_INT_ACK_MASK \
+ (CP_INT_ACK_SW_INT_ACK_MASK | \
+ CP_INT_ACK_T0_PACKET_IN_IB_ACK_MASK | \
+ CP_INT_ACK_OPCODE_ERROR_ACK_MASK | \
+ CP_INT_ACK_PROTECTED_MODE_ERROR_ACK_MASK | \
+ CP_INT_ACK_RESERVED_BIT_ERROR_ACK_MASK | \
+ CP_INT_ACK_IB_ERROR_ACK_MASK | \
+ CP_INT_ACK_IB2_INT_ACK_MASK | \
+ CP_INT_ACK_IB1_INT_ACK_MASK | \
+ CP_INT_ACK_RB_INT_ACK_MASK)
+
+#define CP_INT_ACK(sw_int_ack, t0_packet_in_ib_ack, opcode_error_ack, protected_mode_error_ack, reserved_bit_error_ack, ib_error_ack, ib2_int_ack, ib1_int_ack, rb_int_ack) \
+ ((sw_int_ack << CP_INT_ACK_SW_INT_ACK_SHIFT) | \
+ (t0_packet_in_ib_ack << CP_INT_ACK_T0_PACKET_IN_IB_ACK_SHIFT) | \
+ (opcode_error_ack << CP_INT_ACK_OPCODE_ERROR_ACK_SHIFT) | \
+ (protected_mode_error_ack << CP_INT_ACK_PROTECTED_MODE_ERROR_ACK_SHIFT) | \
+ (reserved_bit_error_ack << CP_INT_ACK_RESERVED_BIT_ERROR_ACK_SHIFT) | \
+ (ib_error_ack << CP_INT_ACK_IB_ERROR_ACK_SHIFT) | \
+ (ib2_int_ack << CP_INT_ACK_IB2_INT_ACK_SHIFT) | \
+ (ib1_int_ack << CP_INT_ACK_IB1_INT_ACK_SHIFT) | \
+ (rb_int_ack << CP_INT_ACK_RB_INT_ACK_SHIFT))
+
+#define CP_INT_ACK_GET_SW_INT_ACK(cp_int_ack) \
+ ((cp_int_ack & CP_INT_ACK_SW_INT_ACK_MASK) >> CP_INT_ACK_SW_INT_ACK_SHIFT)
+#define CP_INT_ACK_GET_T0_PACKET_IN_IB_ACK(cp_int_ack) \
+ ((cp_int_ack & CP_INT_ACK_T0_PACKET_IN_IB_ACK_MASK) >> CP_INT_ACK_T0_PACKET_IN_IB_ACK_SHIFT)
+#define CP_INT_ACK_GET_OPCODE_ERROR_ACK(cp_int_ack) \
+ ((cp_int_ack & CP_INT_ACK_OPCODE_ERROR_ACK_MASK) >> CP_INT_ACK_OPCODE_ERROR_ACK_SHIFT)
+#define CP_INT_ACK_GET_PROTECTED_MODE_ERROR_ACK(cp_int_ack) \
+ ((cp_int_ack & CP_INT_ACK_PROTECTED_MODE_ERROR_ACK_MASK) >> CP_INT_ACK_PROTECTED_MODE_ERROR_ACK_SHIFT)
+#define CP_INT_ACK_GET_RESERVED_BIT_ERROR_ACK(cp_int_ack) \
+ ((cp_int_ack & CP_INT_ACK_RESERVED_BIT_ERROR_ACK_MASK) >> CP_INT_ACK_RESERVED_BIT_ERROR_ACK_SHIFT)
+#define CP_INT_ACK_GET_IB_ERROR_ACK(cp_int_ack) \
+ ((cp_int_ack & CP_INT_ACK_IB_ERROR_ACK_MASK) >> CP_INT_ACK_IB_ERROR_ACK_SHIFT)
+#define CP_INT_ACK_GET_IB2_INT_ACK(cp_int_ack) \
+ ((cp_int_ack & CP_INT_ACK_IB2_INT_ACK_MASK) >> CP_INT_ACK_IB2_INT_ACK_SHIFT)
+#define CP_INT_ACK_GET_IB1_INT_ACK(cp_int_ack) \
+ ((cp_int_ack & CP_INT_ACK_IB1_INT_ACK_MASK) >> CP_INT_ACK_IB1_INT_ACK_SHIFT)
+#define CP_INT_ACK_GET_RB_INT_ACK(cp_int_ack) \
+ ((cp_int_ack & CP_INT_ACK_RB_INT_ACK_MASK) >> CP_INT_ACK_RB_INT_ACK_SHIFT)
+
+#define CP_INT_ACK_SET_SW_INT_ACK(cp_int_ack_reg, sw_int_ack) \
+ cp_int_ack_reg = (cp_int_ack_reg & ~CP_INT_ACK_SW_INT_ACK_MASK) | (sw_int_ack << CP_INT_ACK_SW_INT_ACK_SHIFT)
+#define CP_INT_ACK_SET_T0_PACKET_IN_IB_ACK(cp_int_ack_reg, t0_packet_in_ib_ack) \
+ cp_int_ack_reg = (cp_int_ack_reg & ~CP_INT_ACK_T0_PACKET_IN_IB_ACK_MASK) | (t0_packet_in_ib_ack << CP_INT_ACK_T0_PACKET_IN_IB_ACK_SHIFT)
+#define CP_INT_ACK_SET_OPCODE_ERROR_ACK(cp_int_ack_reg, opcode_error_ack) \
+ cp_int_ack_reg = (cp_int_ack_reg & ~CP_INT_ACK_OPCODE_ERROR_ACK_MASK) | (opcode_error_ack << CP_INT_ACK_OPCODE_ERROR_ACK_SHIFT)
+#define CP_INT_ACK_SET_PROTECTED_MODE_ERROR_ACK(cp_int_ack_reg, protected_mode_error_ack) \
+ cp_int_ack_reg = (cp_int_ack_reg & ~CP_INT_ACK_PROTECTED_MODE_ERROR_ACK_MASK) | (protected_mode_error_ack << CP_INT_ACK_PROTECTED_MODE_ERROR_ACK_SHIFT)
+#define CP_INT_ACK_SET_RESERVED_BIT_ERROR_ACK(cp_int_ack_reg, reserved_bit_error_ack) \
+ cp_int_ack_reg = (cp_int_ack_reg & ~CP_INT_ACK_RESERVED_BIT_ERROR_ACK_MASK) | (reserved_bit_error_ack << CP_INT_ACK_RESERVED_BIT_ERROR_ACK_SHIFT)
+#define CP_INT_ACK_SET_IB_ERROR_ACK(cp_int_ack_reg, ib_error_ack) \
+ cp_int_ack_reg = (cp_int_ack_reg & ~CP_INT_ACK_IB_ERROR_ACK_MASK) | (ib_error_ack << CP_INT_ACK_IB_ERROR_ACK_SHIFT)
+#define CP_INT_ACK_SET_IB2_INT_ACK(cp_int_ack_reg, ib2_int_ack) \
+ cp_int_ack_reg = (cp_int_ack_reg & ~CP_INT_ACK_IB2_INT_ACK_MASK) | (ib2_int_ack << CP_INT_ACK_IB2_INT_ACK_SHIFT)
+#define CP_INT_ACK_SET_IB1_INT_ACK(cp_int_ack_reg, ib1_int_ack) \
+ cp_int_ack_reg = (cp_int_ack_reg & ~CP_INT_ACK_IB1_INT_ACK_MASK) | (ib1_int_ack << CP_INT_ACK_IB1_INT_ACK_SHIFT)
+#define CP_INT_ACK_SET_RB_INT_ACK(cp_int_ack_reg, rb_int_ack) \
+ cp_int_ack_reg = (cp_int_ack_reg & ~CP_INT_ACK_RB_INT_ACK_MASK) | (rb_int_ack << CP_INT_ACK_RB_INT_ACK_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_int_ack_t {
+ unsigned int : 19;
+ unsigned int sw_int_ack : CP_INT_ACK_SW_INT_ACK_SIZE;
+ unsigned int : 3;
+ unsigned int t0_packet_in_ib_ack : CP_INT_ACK_T0_PACKET_IN_IB_ACK_SIZE;
+ unsigned int opcode_error_ack : CP_INT_ACK_OPCODE_ERROR_ACK_SIZE;
+ unsigned int protected_mode_error_ack : CP_INT_ACK_PROTECTED_MODE_ERROR_ACK_SIZE;
+ unsigned int reserved_bit_error_ack : CP_INT_ACK_RESERVED_BIT_ERROR_ACK_SIZE;
+ unsigned int ib_error_ack : CP_INT_ACK_IB_ERROR_ACK_SIZE;
+ unsigned int : 1;
+ unsigned int ib2_int_ack : CP_INT_ACK_IB2_INT_ACK_SIZE;
+ unsigned int ib1_int_ack : CP_INT_ACK_IB1_INT_ACK_SIZE;
+ unsigned int rb_int_ack : CP_INT_ACK_RB_INT_ACK_SIZE;
+ } cp_int_ack_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_int_ack_t {
+ unsigned int rb_int_ack : CP_INT_ACK_RB_INT_ACK_SIZE;
+ unsigned int ib1_int_ack : CP_INT_ACK_IB1_INT_ACK_SIZE;
+ unsigned int ib2_int_ack : CP_INT_ACK_IB2_INT_ACK_SIZE;
+ unsigned int : 1;
+ unsigned int ib_error_ack : CP_INT_ACK_IB_ERROR_ACK_SIZE;
+ unsigned int reserved_bit_error_ack : CP_INT_ACK_RESERVED_BIT_ERROR_ACK_SIZE;
+ unsigned int protected_mode_error_ack : CP_INT_ACK_PROTECTED_MODE_ERROR_ACK_SIZE;
+ unsigned int opcode_error_ack : CP_INT_ACK_OPCODE_ERROR_ACK_SIZE;
+ unsigned int t0_packet_in_ib_ack : CP_INT_ACK_T0_PACKET_IN_IB_ACK_SIZE;
+ unsigned int : 3;
+ unsigned int sw_int_ack : CP_INT_ACK_SW_INT_ACK_SIZE;
+ unsigned int : 19;
+ } cp_int_ack_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_int_ack_t f;
+} cp_int_ack_u;
+
+
+/*
+ * CP_PFP_UCODE_ADDR struct
+ */
+
+#define CP_PFP_UCODE_ADDR_UCODE_ADDR_SIZE 9
+
+#define CP_PFP_UCODE_ADDR_UCODE_ADDR_SHIFT 0
+
+#define CP_PFP_UCODE_ADDR_UCODE_ADDR_MASK 0x000001ff
+
+#define CP_PFP_UCODE_ADDR_MASK \
+ (CP_PFP_UCODE_ADDR_UCODE_ADDR_MASK)
+
+#define CP_PFP_UCODE_ADDR(ucode_addr) \
+ ((ucode_addr << CP_PFP_UCODE_ADDR_UCODE_ADDR_SHIFT))
+
+#define CP_PFP_UCODE_ADDR_GET_UCODE_ADDR(cp_pfp_ucode_addr) \
+ ((cp_pfp_ucode_addr & CP_PFP_UCODE_ADDR_UCODE_ADDR_MASK) >> CP_PFP_UCODE_ADDR_UCODE_ADDR_SHIFT)
+
+#define CP_PFP_UCODE_ADDR_SET_UCODE_ADDR(cp_pfp_ucode_addr_reg, ucode_addr) \
+ cp_pfp_ucode_addr_reg = (cp_pfp_ucode_addr_reg & ~CP_PFP_UCODE_ADDR_UCODE_ADDR_MASK) | (ucode_addr << CP_PFP_UCODE_ADDR_UCODE_ADDR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_pfp_ucode_addr_t {
+ unsigned int ucode_addr : CP_PFP_UCODE_ADDR_UCODE_ADDR_SIZE;
+ unsigned int : 23;
+ } cp_pfp_ucode_addr_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_pfp_ucode_addr_t {
+ unsigned int : 23;
+ unsigned int ucode_addr : CP_PFP_UCODE_ADDR_UCODE_ADDR_SIZE;
+ } cp_pfp_ucode_addr_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_pfp_ucode_addr_t f;
+} cp_pfp_ucode_addr_u;
+
+
+/*
+ * CP_PFP_UCODE_DATA struct
+ */
+
+#define CP_PFP_UCODE_DATA_UCODE_DATA_SIZE 24
+
+#define CP_PFP_UCODE_DATA_UCODE_DATA_SHIFT 0
+
+#define CP_PFP_UCODE_DATA_UCODE_DATA_MASK 0x00ffffff
+
+#define CP_PFP_UCODE_DATA_MASK \
+ (CP_PFP_UCODE_DATA_UCODE_DATA_MASK)
+
+#define CP_PFP_UCODE_DATA(ucode_data) \
+ ((ucode_data << CP_PFP_UCODE_DATA_UCODE_DATA_SHIFT))
+
+#define CP_PFP_UCODE_DATA_GET_UCODE_DATA(cp_pfp_ucode_data) \
+ ((cp_pfp_ucode_data & CP_PFP_UCODE_DATA_UCODE_DATA_MASK) >> CP_PFP_UCODE_DATA_UCODE_DATA_SHIFT)
+
+#define CP_PFP_UCODE_DATA_SET_UCODE_DATA(cp_pfp_ucode_data_reg, ucode_data) \
+ cp_pfp_ucode_data_reg = (cp_pfp_ucode_data_reg & ~CP_PFP_UCODE_DATA_UCODE_DATA_MASK) | (ucode_data << CP_PFP_UCODE_DATA_UCODE_DATA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_pfp_ucode_data_t {
+ unsigned int ucode_data : CP_PFP_UCODE_DATA_UCODE_DATA_SIZE;
+ unsigned int : 8;
+ } cp_pfp_ucode_data_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_pfp_ucode_data_t {
+ unsigned int : 8;
+ unsigned int ucode_data : CP_PFP_UCODE_DATA_UCODE_DATA_SIZE;
+ } cp_pfp_ucode_data_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_pfp_ucode_data_t f;
+} cp_pfp_ucode_data_u;
+
+
+/*
+ * CP_PERFMON_CNTL struct
+ */
+
+#define CP_PERFMON_CNTL_PERFMON_STATE_SIZE 4
+#define CP_PERFMON_CNTL_PERFMON_ENABLE_MODE_SIZE 2
+
+#define CP_PERFMON_CNTL_PERFMON_STATE_SHIFT 0
+#define CP_PERFMON_CNTL_PERFMON_ENABLE_MODE_SHIFT 8
+
+#define CP_PERFMON_CNTL_PERFMON_STATE_MASK 0x0000000f
+#define CP_PERFMON_CNTL_PERFMON_ENABLE_MODE_MASK 0x00000300
+
+#define CP_PERFMON_CNTL_MASK \
+ (CP_PERFMON_CNTL_PERFMON_STATE_MASK | \
+ CP_PERFMON_CNTL_PERFMON_ENABLE_MODE_MASK)
+
+#define CP_PERFMON_CNTL(perfmon_state, perfmon_enable_mode) \
+ ((perfmon_state << CP_PERFMON_CNTL_PERFMON_STATE_SHIFT) | \
+ (perfmon_enable_mode << CP_PERFMON_CNTL_PERFMON_ENABLE_MODE_SHIFT))
+
+#define CP_PERFMON_CNTL_GET_PERFMON_STATE(cp_perfmon_cntl) \
+ ((cp_perfmon_cntl & CP_PERFMON_CNTL_PERFMON_STATE_MASK) >> CP_PERFMON_CNTL_PERFMON_STATE_SHIFT)
+#define CP_PERFMON_CNTL_GET_PERFMON_ENABLE_MODE(cp_perfmon_cntl) \
+ ((cp_perfmon_cntl & CP_PERFMON_CNTL_PERFMON_ENABLE_MODE_MASK) >> CP_PERFMON_CNTL_PERFMON_ENABLE_MODE_SHIFT)
+
+#define CP_PERFMON_CNTL_SET_PERFMON_STATE(cp_perfmon_cntl_reg, perfmon_state) \
+ cp_perfmon_cntl_reg = (cp_perfmon_cntl_reg & ~CP_PERFMON_CNTL_PERFMON_STATE_MASK) | (perfmon_state << CP_PERFMON_CNTL_PERFMON_STATE_SHIFT)
+#define CP_PERFMON_CNTL_SET_PERFMON_ENABLE_MODE(cp_perfmon_cntl_reg, perfmon_enable_mode) \
+ cp_perfmon_cntl_reg = (cp_perfmon_cntl_reg & ~CP_PERFMON_CNTL_PERFMON_ENABLE_MODE_MASK) | (perfmon_enable_mode << CP_PERFMON_CNTL_PERFMON_ENABLE_MODE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_perfmon_cntl_t {
+ unsigned int perfmon_state : CP_PERFMON_CNTL_PERFMON_STATE_SIZE;
+ unsigned int : 4;
+ unsigned int perfmon_enable_mode : CP_PERFMON_CNTL_PERFMON_ENABLE_MODE_SIZE;
+ unsigned int : 22;
+ } cp_perfmon_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_perfmon_cntl_t {
+ unsigned int : 22;
+ unsigned int perfmon_enable_mode : CP_PERFMON_CNTL_PERFMON_ENABLE_MODE_SIZE;
+ unsigned int : 4;
+ unsigned int perfmon_state : CP_PERFMON_CNTL_PERFMON_STATE_SIZE;
+ } cp_perfmon_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_perfmon_cntl_t f;
+} cp_perfmon_cntl_u;
+
+
+/*
+ * CP_PERFCOUNTER_SELECT struct
+ */
+
+#define CP_PERFCOUNTER_SELECT_PERFCOUNT_SEL_SIZE 6
+
+#define CP_PERFCOUNTER_SELECT_PERFCOUNT_SEL_SHIFT 0
+
+#define CP_PERFCOUNTER_SELECT_PERFCOUNT_SEL_MASK 0x0000003f
+
+#define CP_PERFCOUNTER_SELECT_MASK \
+ (CP_PERFCOUNTER_SELECT_PERFCOUNT_SEL_MASK)
+
+#define CP_PERFCOUNTER_SELECT(perfcount_sel) \
+ ((perfcount_sel << CP_PERFCOUNTER_SELECT_PERFCOUNT_SEL_SHIFT))
+
+#define CP_PERFCOUNTER_SELECT_GET_PERFCOUNT_SEL(cp_perfcounter_select) \
+ ((cp_perfcounter_select & CP_PERFCOUNTER_SELECT_PERFCOUNT_SEL_MASK) >> CP_PERFCOUNTER_SELECT_PERFCOUNT_SEL_SHIFT)
+
+#define CP_PERFCOUNTER_SELECT_SET_PERFCOUNT_SEL(cp_perfcounter_select_reg, perfcount_sel) \
+ cp_perfcounter_select_reg = (cp_perfcounter_select_reg & ~CP_PERFCOUNTER_SELECT_PERFCOUNT_SEL_MASK) | (perfcount_sel << CP_PERFCOUNTER_SELECT_PERFCOUNT_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_perfcounter_select_t {
+ unsigned int perfcount_sel : CP_PERFCOUNTER_SELECT_PERFCOUNT_SEL_SIZE;
+ unsigned int : 26;
+ } cp_perfcounter_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_perfcounter_select_t {
+ unsigned int : 26;
+ unsigned int perfcount_sel : CP_PERFCOUNTER_SELECT_PERFCOUNT_SEL_SIZE;
+ } cp_perfcounter_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_perfcounter_select_t f;
+} cp_perfcounter_select_u;
+
+
+/*
+ * CP_PERFCOUNTER_LO struct
+ */
+
+#define CP_PERFCOUNTER_LO_PERFCOUNT_LO_SIZE 32
+
+#define CP_PERFCOUNTER_LO_PERFCOUNT_LO_SHIFT 0
+
+#define CP_PERFCOUNTER_LO_PERFCOUNT_LO_MASK 0xffffffff
+
+#define CP_PERFCOUNTER_LO_MASK \
+ (CP_PERFCOUNTER_LO_PERFCOUNT_LO_MASK)
+
+#define CP_PERFCOUNTER_LO(perfcount_lo) \
+ ((perfcount_lo << CP_PERFCOUNTER_LO_PERFCOUNT_LO_SHIFT))
+
+#define CP_PERFCOUNTER_LO_GET_PERFCOUNT_LO(cp_perfcounter_lo) \
+ ((cp_perfcounter_lo & CP_PERFCOUNTER_LO_PERFCOUNT_LO_MASK) >> CP_PERFCOUNTER_LO_PERFCOUNT_LO_SHIFT)
+
+#define CP_PERFCOUNTER_LO_SET_PERFCOUNT_LO(cp_perfcounter_lo_reg, perfcount_lo) \
+ cp_perfcounter_lo_reg = (cp_perfcounter_lo_reg & ~CP_PERFCOUNTER_LO_PERFCOUNT_LO_MASK) | (perfcount_lo << CP_PERFCOUNTER_LO_PERFCOUNT_LO_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_perfcounter_lo_t {
+ unsigned int perfcount_lo : CP_PERFCOUNTER_LO_PERFCOUNT_LO_SIZE;
+ } cp_perfcounter_lo_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_perfcounter_lo_t {
+ unsigned int perfcount_lo : CP_PERFCOUNTER_LO_PERFCOUNT_LO_SIZE;
+ } cp_perfcounter_lo_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_perfcounter_lo_t f;
+} cp_perfcounter_lo_u;
+
+
+/*
+ * CP_PERFCOUNTER_HI struct
+ */
+
+#define CP_PERFCOUNTER_HI_PERFCOUNT_HI_SIZE 16
+
+#define CP_PERFCOUNTER_HI_PERFCOUNT_HI_SHIFT 0
+
+#define CP_PERFCOUNTER_HI_PERFCOUNT_HI_MASK 0x0000ffff
+
+#define CP_PERFCOUNTER_HI_MASK \
+ (CP_PERFCOUNTER_HI_PERFCOUNT_HI_MASK)
+
+#define CP_PERFCOUNTER_HI(perfcount_hi) \
+ ((perfcount_hi << CP_PERFCOUNTER_HI_PERFCOUNT_HI_SHIFT))
+
+#define CP_PERFCOUNTER_HI_GET_PERFCOUNT_HI(cp_perfcounter_hi) \
+ ((cp_perfcounter_hi & CP_PERFCOUNTER_HI_PERFCOUNT_HI_MASK) >> CP_PERFCOUNTER_HI_PERFCOUNT_HI_SHIFT)
+
+#define CP_PERFCOUNTER_HI_SET_PERFCOUNT_HI(cp_perfcounter_hi_reg, perfcount_hi) \
+ cp_perfcounter_hi_reg = (cp_perfcounter_hi_reg & ~CP_PERFCOUNTER_HI_PERFCOUNT_HI_MASK) | (perfcount_hi << CP_PERFCOUNTER_HI_PERFCOUNT_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_perfcounter_hi_t {
+ unsigned int perfcount_hi : CP_PERFCOUNTER_HI_PERFCOUNT_HI_SIZE;
+ unsigned int : 16;
+ } cp_perfcounter_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_perfcounter_hi_t {
+ unsigned int : 16;
+ unsigned int perfcount_hi : CP_PERFCOUNTER_HI_PERFCOUNT_HI_SIZE;
+ } cp_perfcounter_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_perfcounter_hi_t f;
+} cp_perfcounter_hi_u;
+
+
+/*
+ * CP_BIN_MASK_LO struct
+ */
+
+#define CP_BIN_MASK_LO_BIN_MASK_LO_SIZE 32
+
+#define CP_BIN_MASK_LO_BIN_MASK_LO_SHIFT 0
+
+#define CP_BIN_MASK_LO_BIN_MASK_LO_MASK 0xffffffff
+
+#define CP_BIN_MASK_LO_MASK \
+ (CP_BIN_MASK_LO_BIN_MASK_LO_MASK)
+
+#define CP_BIN_MASK_LO(bin_mask_lo) \
+ ((bin_mask_lo << CP_BIN_MASK_LO_BIN_MASK_LO_SHIFT))
+
+#define CP_BIN_MASK_LO_GET_BIN_MASK_LO(cp_bin_mask_lo) \
+ ((cp_bin_mask_lo & CP_BIN_MASK_LO_BIN_MASK_LO_MASK) >> CP_BIN_MASK_LO_BIN_MASK_LO_SHIFT)
+
+#define CP_BIN_MASK_LO_SET_BIN_MASK_LO(cp_bin_mask_lo_reg, bin_mask_lo) \
+ cp_bin_mask_lo_reg = (cp_bin_mask_lo_reg & ~CP_BIN_MASK_LO_BIN_MASK_LO_MASK) | (bin_mask_lo << CP_BIN_MASK_LO_BIN_MASK_LO_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_bin_mask_lo_t {
+ unsigned int bin_mask_lo : CP_BIN_MASK_LO_BIN_MASK_LO_SIZE;
+ } cp_bin_mask_lo_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_bin_mask_lo_t {
+ unsigned int bin_mask_lo : CP_BIN_MASK_LO_BIN_MASK_LO_SIZE;
+ } cp_bin_mask_lo_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_bin_mask_lo_t f;
+} cp_bin_mask_lo_u;
+
+
+/*
+ * CP_BIN_MASK_HI struct
+ */
+
+#define CP_BIN_MASK_HI_BIN_MASK_HI_SIZE 32
+
+#define CP_BIN_MASK_HI_BIN_MASK_HI_SHIFT 0
+
+#define CP_BIN_MASK_HI_BIN_MASK_HI_MASK 0xffffffff
+
+#define CP_BIN_MASK_HI_MASK \
+ (CP_BIN_MASK_HI_BIN_MASK_HI_MASK)
+
+#define CP_BIN_MASK_HI(bin_mask_hi) \
+ ((bin_mask_hi << CP_BIN_MASK_HI_BIN_MASK_HI_SHIFT))
+
+#define CP_BIN_MASK_HI_GET_BIN_MASK_HI(cp_bin_mask_hi) \
+ ((cp_bin_mask_hi & CP_BIN_MASK_HI_BIN_MASK_HI_MASK) >> CP_BIN_MASK_HI_BIN_MASK_HI_SHIFT)
+
+#define CP_BIN_MASK_HI_SET_BIN_MASK_HI(cp_bin_mask_hi_reg, bin_mask_hi) \
+ cp_bin_mask_hi_reg = (cp_bin_mask_hi_reg & ~CP_BIN_MASK_HI_BIN_MASK_HI_MASK) | (bin_mask_hi << CP_BIN_MASK_HI_BIN_MASK_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_bin_mask_hi_t {
+ unsigned int bin_mask_hi : CP_BIN_MASK_HI_BIN_MASK_HI_SIZE;
+ } cp_bin_mask_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_bin_mask_hi_t {
+ unsigned int bin_mask_hi : CP_BIN_MASK_HI_BIN_MASK_HI_SIZE;
+ } cp_bin_mask_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_bin_mask_hi_t f;
+} cp_bin_mask_hi_u;
+
+
+/*
+ * CP_BIN_SELECT_LO struct
+ */
+
+#define CP_BIN_SELECT_LO_BIN_SELECT_LO_SIZE 32
+
+#define CP_BIN_SELECT_LO_BIN_SELECT_LO_SHIFT 0
+
+#define CP_BIN_SELECT_LO_BIN_SELECT_LO_MASK 0xffffffff
+
+#define CP_BIN_SELECT_LO_MASK \
+ (CP_BIN_SELECT_LO_BIN_SELECT_LO_MASK)
+
+#define CP_BIN_SELECT_LO(bin_select_lo) \
+ ((bin_select_lo << CP_BIN_SELECT_LO_BIN_SELECT_LO_SHIFT))
+
+#define CP_BIN_SELECT_LO_GET_BIN_SELECT_LO(cp_bin_select_lo) \
+ ((cp_bin_select_lo & CP_BIN_SELECT_LO_BIN_SELECT_LO_MASK) >> CP_BIN_SELECT_LO_BIN_SELECT_LO_SHIFT)
+
+#define CP_BIN_SELECT_LO_SET_BIN_SELECT_LO(cp_bin_select_lo_reg, bin_select_lo) \
+ cp_bin_select_lo_reg = (cp_bin_select_lo_reg & ~CP_BIN_SELECT_LO_BIN_SELECT_LO_MASK) | (bin_select_lo << CP_BIN_SELECT_LO_BIN_SELECT_LO_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_bin_select_lo_t {
+ unsigned int bin_select_lo : CP_BIN_SELECT_LO_BIN_SELECT_LO_SIZE;
+ } cp_bin_select_lo_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_bin_select_lo_t {
+ unsigned int bin_select_lo : CP_BIN_SELECT_LO_BIN_SELECT_LO_SIZE;
+ } cp_bin_select_lo_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_bin_select_lo_t f;
+} cp_bin_select_lo_u;
+
+
+/*
+ * CP_BIN_SELECT_HI struct
+ */
+
+#define CP_BIN_SELECT_HI_BIN_SELECT_HI_SIZE 32
+
+#define CP_BIN_SELECT_HI_BIN_SELECT_HI_SHIFT 0
+
+#define CP_BIN_SELECT_HI_BIN_SELECT_HI_MASK 0xffffffff
+
+#define CP_BIN_SELECT_HI_MASK \
+ (CP_BIN_SELECT_HI_BIN_SELECT_HI_MASK)
+
+#define CP_BIN_SELECT_HI(bin_select_hi) \
+ ((bin_select_hi << CP_BIN_SELECT_HI_BIN_SELECT_HI_SHIFT))
+
+#define CP_BIN_SELECT_HI_GET_BIN_SELECT_HI(cp_bin_select_hi) \
+ ((cp_bin_select_hi & CP_BIN_SELECT_HI_BIN_SELECT_HI_MASK) >> CP_BIN_SELECT_HI_BIN_SELECT_HI_SHIFT)
+
+#define CP_BIN_SELECT_HI_SET_BIN_SELECT_HI(cp_bin_select_hi_reg, bin_select_hi) \
+ cp_bin_select_hi_reg = (cp_bin_select_hi_reg & ~CP_BIN_SELECT_HI_BIN_SELECT_HI_MASK) | (bin_select_hi << CP_BIN_SELECT_HI_BIN_SELECT_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_bin_select_hi_t {
+ unsigned int bin_select_hi : CP_BIN_SELECT_HI_BIN_SELECT_HI_SIZE;
+ } cp_bin_select_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_bin_select_hi_t {
+ unsigned int bin_select_hi : CP_BIN_SELECT_HI_BIN_SELECT_HI_SIZE;
+ } cp_bin_select_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_bin_select_hi_t f;
+} cp_bin_select_hi_u;
+
+
+/*
+ * CP_NV_FLAGS_0 struct
+ */
+
+#define CP_NV_FLAGS_0_DISCARD_0_SIZE 1
+#define CP_NV_FLAGS_0_END_RCVD_0_SIZE 1
+#define CP_NV_FLAGS_0_DISCARD_1_SIZE 1
+#define CP_NV_FLAGS_0_END_RCVD_1_SIZE 1
+#define CP_NV_FLAGS_0_DISCARD_2_SIZE 1
+#define CP_NV_FLAGS_0_END_RCVD_2_SIZE 1
+#define CP_NV_FLAGS_0_DISCARD_3_SIZE 1
+#define CP_NV_FLAGS_0_END_RCVD_3_SIZE 1
+#define CP_NV_FLAGS_0_DISCARD_4_SIZE 1
+#define CP_NV_FLAGS_0_END_RCVD_4_SIZE 1
+#define CP_NV_FLAGS_0_DISCARD_5_SIZE 1
+#define CP_NV_FLAGS_0_END_RCVD_5_SIZE 1
+#define CP_NV_FLAGS_0_DISCARD_6_SIZE 1
+#define CP_NV_FLAGS_0_END_RCVD_6_SIZE 1
+#define CP_NV_FLAGS_0_DISCARD_7_SIZE 1
+#define CP_NV_FLAGS_0_END_RCVD_7_SIZE 1
+#define CP_NV_FLAGS_0_DISCARD_8_SIZE 1
+#define CP_NV_FLAGS_0_END_RCVD_8_SIZE 1
+#define CP_NV_FLAGS_0_DISCARD_9_SIZE 1
+#define CP_NV_FLAGS_0_END_RCVD_9_SIZE 1
+#define CP_NV_FLAGS_0_DISCARD_10_SIZE 1
+#define CP_NV_FLAGS_0_END_RCVD_10_SIZE 1
+#define CP_NV_FLAGS_0_DISCARD_11_SIZE 1
+#define CP_NV_FLAGS_0_END_RCVD_11_SIZE 1
+#define CP_NV_FLAGS_0_DISCARD_12_SIZE 1
+#define CP_NV_FLAGS_0_END_RCVD_12_SIZE 1
+#define CP_NV_FLAGS_0_DISCARD_13_SIZE 1
+#define CP_NV_FLAGS_0_END_RCVD_13_SIZE 1
+#define CP_NV_FLAGS_0_DISCARD_14_SIZE 1
+#define CP_NV_FLAGS_0_END_RCVD_14_SIZE 1
+#define CP_NV_FLAGS_0_DISCARD_15_SIZE 1
+#define CP_NV_FLAGS_0_END_RCVD_15_SIZE 1
+
+#define CP_NV_FLAGS_0_DISCARD_0_SHIFT 0
+#define CP_NV_FLAGS_0_END_RCVD_0_SHIFT 1
+#define CP_NV_FLAGS_0_DISCARD_1_SHIFT 2
+#define CP_NV_FLAGS_0_END_RCVD_1_SHIFT 3
+#define CP_NV_FLAGS_0_DISCARD_2_SHIFT 4
+#define CP_NV_FLAGS_0_END_RCVD_2_SHIFT 5
+#define CP_NV_FLAGS_0_DISCARD_3_SHIFT 6
+#define CP_NV_FLAGS_0_END_RCVD_3_SHIFT 7
+#define CP_NV_FLAGS_0_DISCARD_4_SHIFT 8
+#define CP_NV_FLAGS_0_END_RCVD_4_SHIFT 9
+#define CP_NV_FLAGS_0_DISCARD_5_SHIFT 10
+#define CP_NV_FLAGS_0_END_RCVD_5_SHIFT 11
+#define CP_NV_FLAGS_0_DISCARD_6_SHIFT 12
+#define CP_NV_FLAGS_0_END_RCVD_6_SHIFT 13
+#define CP_NV_FLAGS_0_DISCARD_7_SHIFT 14
+#define CP_NV_FLAGS_0_END_RCVD_7_SHIFT 15
+#define CP_NV_FLAGS_0_DISCARD_8_SHIFT 16
+#define CP_NV_FLAGS_0_END_RCVD_8_SHIFT 17
+#define CP_NV_FLAGS_0_DISCARD_9_SHIFT 18
+#define CP_NV_FLAGS_0_END_RCVD_9_SHIFT 19
+#define CP_NV_FLAGS_0_DISCARD_10_SHIFT 20
+#define CP_NV_FLAGS_0_END_RCVD_10_SHIFT 21
+#define CP_NV_FLAGS_0_DISCARD_11_SHIFT 22
+#define CP_NV_FLAGS_0_END_RCVD_11_SHIFT 23
+#define CP_NV_FLAGS_0_DISCARD_12_SHIFT 24
+#define CP_NV_FLAGS_0_END_RCVD_12_SHIFT 25
+#define CP_NV_FLAGS_0_DISCARD_13_SHIFT 26
+#define CP_NV_FLAGS_0_END_RCVD_13_SHIFT 27
+#define CP_NV_FLAGS_0_DISCARD_14_SHIFT 28
+#define CP_NV_FLAGS_0_END_RCVD_14_SHIFT 29
+#define CP_NV_FLAGS_0_DISCARD_15_SHIFT 30
+#define CP_NV_FLAGS_0_END_RCVD_15_SHIFT 31
+
+#define CP_NV_FLAGS_0_DISCARD_0_MASK 0x00000001
+#define CP_NV_FLAGS_0_END_RCVD_0_MASK 0x00000002
+#define CP_NV_FLAGS_0_DISCARD_1_MASK 0x00000004
+#define CP_NV_FLAGS_0_END_RCVD_1_MASK 0x00000008
+#define CP_NV_FLAGS_0_DISCARD_2_MASK 0x00000010
+#define CP_NV_FLAGS_0_END_RCVD_2_MASK 0x00000020
+#define CP_NV_FLAGS_0_DISCARD_3_MASK 0x00000040
+#define CP_NV_FLAGS_0_END_RCVD_3_MASK 0x00000080
+#define CP_NV_FLAGS_0_DISCARD_4_MASK 0x00000100
+#define CP_NV_FLAGS_0_END_RCVD_4_MASK 0x00000200
+#define CP_NV_FLAGS_0_DISCARD_5_MASK 0x00000400
+#define CP_NV_FLAGS_0_END_RCVD_5_MASK 0x00000800
+#define CP_NV_FLAGS_0_DISCARD_6_MASK 0x00001000
+#define CP_NV_FLAGS_0_END_RCVD_6_MASK 0x00002000
+#define CP_NV_FLAGS_0_DISCARD_7_MASK 0x00004000
+#define CP_NV_FLAGS_0_END_RCVD_7_MASK 0x00008000
+#define CP_NV_FLAGS_0_DISCARD_8_MASK 0x00010000
+#define CP_NV_FLAGS_0_END_RCVD_8_MASK 0x00020000
+#define CP_NV_FLAGS_0_DISCARD_9_MASK 0x00040000
+#define CP_NV_FLAGS_0_END_RCVD_9_MASK 0x00080000
+#define CP_NV_FLAGS_0_DISCARD_10_MASK 0x00100000
+#define CP_NV_FLAGS_0_END_RCVD_10_MASK 0x00200000
+#define CP_NV_FLAGS_0_DISCARD_11_MASK 0x00400000
+#define CP_NV_FLAGS_0_END_RCVD_11_MASK 0x00800000
+#define CP_NV_FLAGS_0_DISCARD_12_MASK 0x01000000
+#define CP_NV_FLAGS_0_END_RCVD_12_MASK 0x02000000
+#define CP_NV_FLAGS_0_DISCARD_13_MASK 0x04000000
+#define CP_NV_FLAGS_0_END_RCVD_13_MASK 0x08000000
+#define CP_NV_FLAGS_0_DISCARD_14_MASK 0x10000000
+#define CP_NV_FLAGS_0_END_RCVD_14_MASK 0x20000000
+#define CP_NV_FLAGS_0_DISCARD_15_MASK 0x40000000
+#define CP_NV_FLAGS_0_END_RCVD_15_MASK 0x80000000
+
+#define CP_NV_FLAGS_0_MASK \
+ (CP_NV_FLAGS_0_DISCARD_0_MASK | \
+ CP_NV_FLAGS_0_END_RCVD_0_MASK | \
+ CP_NV_FLAGS_0_DISCARD_1_MASK | \
+ CP_NV_FLAGS_0_END_RCVD_1_MASK | \
+ CP_NV_FLAGS_0_DISCARD_2_MASK | \
+ CP_NV_FLAGS_0_END_RCVD_2_MASK | \
+ CP_NV_FLAGS_0_DISCARD_3_MASK | \
+ CP_NV_FLAGS_0_END_RCVD_3_MASK | \
+ CP_NV_FLAGS_0_DISCARD_4_MASK | \
+ CP_NV_FLAGS_0_END_RCVD_4_MASK | \
+ CP_NV_FLAGS_0_DISCARD_5_MASK | \
+ CP_NV_FLAGS_0_END_RCVD_5_MASK | \
+ CP_NV_FLAGS_0_DISCARD_6_MASK | \
+ CP_NV_FLAGS_0_END_RCVD_6_MASK | \
+ CP_NV_FLAGS_0_DISCARD_7_MASK | \
+ CP_NV_FLAGS_0_END_RCVD_7_MASK | \
+ CP_NV_FLAGS_0_DISCARD_8_MASK | \
+ CP_NV_FLAGS_0_END_RCVD_8_MASK | \
+ CP_NV_FLAGS_0_DISCARD_9_MASK | \
+ CP_NV_FLAGS_0_END_RCVD_9_MASK | \
+ CP_NV_FLAGS_0_DISCARD_10_MASK | \
+ CP_NV_FLAGS_0_END_RCVD_10_MASK | \
+ CP_NV_FLAGS_0_DISCARD_11_MASK | \
+ CP_NV_FLAGS_0_END_RCVD_11_MASK | \
+ CP_NV_FLAGS_0_DISCARD_12_MASK | \
+ CP_NV_FLAGS_0_END_RCVD_12_MASK | \
+ CP_NV_FLAGS_0_DISCARD_13_MASK | \
+ CP_NV_FLAGS_0_END_RCVD_13_MASK | \
+ CP_NV_FLAGS_0_DISCARD_14_MASK | \
+ CP_NV_FLAGS_0_END_RCVD_14_MASK | \
+ CP_NV_FLAGS_0_DISCARD_15_MASK | \
+ CP_NV_FLAGS_0_END_RCVD_15_MASK)
+
+#define CP_NV_FLAGS_0(discard_0, end_rcvd_0, discard_1, end_rcvd_1, discard_2, end_rcvd_2, discard_3, end_rcvd_3, discard_4, end_rcvd_4, discard_5, end_rcvd_5, discard_6, end_rcvd_6, discard_7, end_rcvd_7, discard_8, end_rcvd_8, discard_9, end_rcvd_9, discard_10, end_rcvd_10, discard_11, end_rcvd_11, discard_12, end_rcvd_12, discard_13, end_rcvd_13, discard_14, end_rcvd_14, discard_15, end_rcvd_15) \
+ ((discard_0 << CP_NV_FLAGS_0_DISCARD_0_SHIFT) | \
+ (end_rcvd_0 << CP_NV_FLAGS_0_END_RCVD_0_SHIFT) | \
+ (discard_1 << CP_NV_FLAGS_0_DISCARD_1_SHIFT) | \
+ (end_rcvd_1 << CP_NV_FLAGS_0_END_RCVD_1_SHIFT) | \
+ (discard_2 << CP_NV_FLAGS_0_DISCARD_2_SHIFT) | \
+ (end_rcvd_2 << CP_NV_FLAGS_0_END_RCVD_2_SHIFT) | \
+ (discard_3 << CP_NV_FLAGS_0_DISCARD_3_SHIFT) | \
+ (end_rcvd_3 << CP_NV_FLAGS_0_END_RCVD_3_SHIFT) | \
+ (discard_4 << CP_NV_FLAGS_0_DISCARD_4_SHIFT) | \
+ (end_rcvd_4 << CP_NV_FLAGS_0_END_RCVD_4_SHIFT) | \
+ (discard_5 << CP_NV_FLAGS_0_DISCARD_5_SHIFT) | \
+ (end_rcvd_5 << CP_NV_FLAGS_0_END_RCVD_5_SHIFT) | \
+ (discard_6 << CP_NV_FLAGS_0_DISCARD_6_SHIFT) | \
+ (end_rcvd_6 << CP_NV_FLAGS_0_END_RCVD_6_SHIFT) | \
+ (discard_7 << CP_NV_FLAGS_0_DISCARD_7_SHIFT) | \
+ (end_rcvd_7 << CP_NV_FLAGS_0_END_RCVD_7_SHIFT) | \
+ (discard_8 << CP_NV_FLAGS_0_DISCARD_8_SHIFT) | \
+ (end_rcvd_8 << CP_NV_FLAGS_0_END_RCVD_8_SHIFT) | \
+ (discard_9 << CP_NV_FLAGS_0_DISCARD_9_SHIFT) | \
+ (end_rcvd_9 << CP_NV_FLAGS_0_END_RCVD_9_SHIFT) | \
+ (discard_10 << CP_NV_FLAGS_0_DISCARD_10_SHIFT) | \
+ (end_rcvd_10 << CP_NV_FLAGS_0_END_RCVD_10_SHIFT) | \
+ (discard_11 << CP_NV_FLAGS_0_DISCARD_11_SHIFT) | \
+ (end_rcvd_11 << CP_NV_FLAGS_0_END_RCVD_11_SHIFT) | \
+ (discard_12 << CP_NV_FLAGS_0_DISCARD_12_SHIFT) | \
+ (end_rcvd_12 << CP_NV_FLAGS_0_END_RCVD_12_SHIFT) | \
+ (discard_13 << CP_NV_FLAGS_0_DISCARD_13_SHIFT) | \
+ (end_rcvd_13 << CP_NV_FLAGS_0_END_RCVD_13_SHIFT) | \
+ (discard_14 << CP_NV_FLAGS_0_DISCARD_14_SHIFT) | \
+ (end_rcvd_14 << CP_NV_FLAGS_0_END_RCVD_14_SHIFT) | \
+ (discard_15 << CP_NV_FLAGS_0_DISCARD_15_SHIFT) | \
+ (end_rcvd_15 << CP_NV_FLAGS_0_END_RCVD_15_SHIFT))
+
+#define CP_NV_FLAGS_0_GET_DISCARD_0(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_DISCARD_0_MASK) >> CP_NV_FLAGS_0_DISCARD_0_SHIFT)
+#define CP_NV_FLAGS_0_GET_END_RCVD_0(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_END_RCVD_0_MASK) >> CP_NV_FLAGS_0_END_RCVD_0_SHIFT)
+#define CP_NV_FLAGS_0_GET_DISCARD_1(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_DISCARD_1_MASK) >> CP_NV_FLAGS_0_DISCARD_1_SHIFT)
+#define CP_NV_FLAGS_0_GET_END_RCVD_1(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_END_RCVD_1_MASK) >> CP_NV_FLAGS_0_END_RCVD_1_SHIFT)
+#define CP_NV_FLAGS_0_GET_DISCARD_2(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_DISCARD_2_MASK) >> CP_NV_FLAGS_0_DISCARD_2_SHIFT)
+#define CP_NV_FLAGS_0_GET_END_RCVD_2(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_END_RCVD_2_MASK) >> CP_NV_FLAGS_0_END_RCVD_2_SHIFT)
+#define CP_NV_FLAGS_0_GET_DISCARD_3(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_DISCARD_3_MASK) >> CP_NV_FLAGS_0_DISCARD_3_SHIFT)
+#define CP_NV_FLAGS_0_GET_END_RCVD_3(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_END_RCVD_3_MASK) >> CP_NV_FLAGS_0_END_RCVD_3_SHIFT)
+#define CP_NV_FLAGS_0_GET_DISCARD_4(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_DISCARD_4_MASK) >> CP_NV_FLAGS_0_DISCARD_4_SHIFT)
+#define CP_NV_FLAGS_0_GET_END_RCVD_4(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_END_RCVD_4_MASK) >> CP_NV_FLAGS_0_END_RCVD_4_SHIFT)
+#define CP_NV_FLAGS_0_GET_DISCARD_5(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_DISCARD_5_MASK) >> CP_NV_FLAGS_0_DISCARD_5_SHIFT)
+#define CP_NV_FLAGS_0_GET_END_RCVD_5(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_END_RCVD_5_MASK) >> CP_NV_FLAGS_0_END_RCVD_5_SHIFT)
+#define CP_NV_FLAGS_0_GET_DISCARD_6(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_DISCARD_6_MASK) >> CP_NV_FLAGS_0_DISCARD_6_SHIFT)
+#define CP_NV_FLAGS_0_GET_END_RCVD_6(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_END_RCVD_6_MASK) >> CP_NV_FLAGS_0_END_RCVD_6_SHIFT)
+#define CP_NV_FLAGS_0_GET_DISCARD_7(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_DISCARD_7_MASK) >> CP_NV_FLAGS_0_DISCARD_7_SHIFT)
+#define CP_NV_FLAGS_0_GET_END_RCVD_7(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_END_RCVD_7_MASK) >> CP_NV_FLAGS_0_END_RCVD_7_SHIFT)
+#define CP_NV_FLAGS_0_GET_DISCARD_8(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_DISCARD_8_MASK) >> CP_NV_FLAGS_0_DISCARD_8_SHIFT)
+#define CP_NV_FLAGS_0_GET_END_RCVD_8(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_END_RCVD_8_MASK) >> CP_NV_FLAGS_0_END_RCVD_8_SHIFT)
+#define CP_NV_FLAGS_0_GET_DISCARD_9(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_DISCARD_9_MASK) >> CP_NV_FLAGS_0_DISCARD_9_SHIFT)
+#define CP_NV_FLAGS_0_GET_END_RCVD_9(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_END_RCVD_9_MASK) >> CP_NV_FLAGS_0_END_RCVD_9_SHIFT)
+#define CP_NV_FLAGS_0_GET_DISCARD_10(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_DISCARD_10_MASK) >> CP_NV_FLAGS_0_DISCARD_10_SHIFT)
+#define CP_NV_FLAGS_0_GET_END_RCVD_10(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_END_RCVD_10_MASK) >> CP_NV_FLAGS_0_END_RCVD_10_SHIFT)
+#define CP_NV_FLAGS_0_GET_DISCARD_11(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_DISCARD_11_MASK) >> CP_NV_FLAGS_0_DISCARD_11_SHIFT)
+#define CP_NV_FLAGS_0_GET_END_RCVD_11(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_END_RCVD_11_MASK) >> CP_NV_FLAGS_0_END_RCVD_11_SHIFT)
+#define CP_NV_FLAGS_0_GET_DISCARD_12(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_DISCARD_12_MASK) >> CP_NV_FLAGS_0_DISCARD_12_SHIFT)
+#define CP_NV_FLAGS_0_GET_END_RCVD_12(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_END_RCVD_12_MASK) >> CP_NV_FLAGS_0_END_RCVD_12_SHIFT)
+#define CP_NV_FLAGS_0_GET_DISCARD_13(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_DISCARD_13_MASK) >> CP_NV_FLAGS_0_DISCARD_13_SHIFT)
+#define CP_NV_FLAGS_0_GET_END_RCVD_13(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_END_RCVD_13_MASK) >> CP_NV_FLAGS_0_END_RCVD_13_SHIFT)
+#define CP_NV_FLAGS_0_GET_DISCARD_14(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_DISCARD_14_MASK) >> CP_NV_FLAGS_0_DISCARD_14_SHIFT)
+#define CP_NV_FLAGS_0_GET_END_RCVD_14(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_END_RCVD_14_MASK) >> CP_NV_FLAGS_0_END_RCVD_14_SHIFT)
+#define CP_NV_FLAGS_0_GET_DISCARD_15(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_DISCARD_15_MASK) >> CP_NV_FLAGS_0_DISCARD_15_SHIFT)
+#define CP_NV_FLAGS_0_GET_END_RCVD_15(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_END_RCVD_15_MASK) >> CP_NV_FLAGS_0_END_RCVD_15_SHIFT)
+
+#define CP_NV_FLAGS_0_SET_DISCARD_0(cp_nv_flags_0_reg, discard_0) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_DISCARD_0_MASK) | (discard_0 << CP_NV_FLAGS_0_DISCARD_0_SHIFT)
+#define CP_NV_FLAGS_0_SET_END_RCVD_0(cp_nv_flags_0_reg, end_rcvd_0) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_END_RCVD_0_MASK) | (end_rcvd_0 << CP_NV_FLAGS_0_END_RCVD_0_SHIFT)
+#define CP_NV_FLAGS_0_SET_DISCARD_1(cp_nv_flags_0_reg, discard_1) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_DISCARD_1_MASK) | (discard_1 << CP_NV_FLAGS_0_DISCARD_1_SHIFT)
+#define CP_NV_FLAGS_0_SET_END_RCVD_1(cp_nv_flags_0_reg, end_rcvd_1) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_END_RCVD_1_MASK) | (end_rcvd_1 << CP_NV_FLAGS_0_END_RCVD_1_SHIFT)
+#define CP_NV_FLAGS_0_SET_DISCARD_2(cp_nv_flags_0_reg, discard_2) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_DISCARD_2_MASK) | (discard_2 << CP_NV_FLAGS_0_DISCARD_2_SHIFT)
+#define CP_NV_FLAGS_0_SET_END_RCVD_2(cp_nv_flags_0_reg, end_rcvd_2) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_END_RCVD_2_MASK) | (end_rcvd_2 << CP_NV_FLAGS_0_END_RCVD_2_SHIFT)
+#define CP_NV_FLAGS_0_SET_DISCARD_3(cp_nv_flags_0_reg, discard_3) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_DISCARD_3_MASK) | (discard_3 << CP_NV_FLAGS_0_DISCARD_3_SHIFT)
+#define CP_NV_FLAGS_0_SET_END_RCVD_3(cp_nv_flags_0_reg, end_rcvd_3) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_END_RCVD_3_MASK) | (end_rcvd_3 << CP_NV_FLAGS_0_END_RCVD_3_SHIFT)
+#define CP_NV_FLAGS_0_SET_DISCARD_4(cp_nv_flags_0_reg, discard_4) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_DISCARD_4_MASK) | (discard_4 << CP_NV_FLAGS_0_DISCARD_4_SHIFT)
+#define CP_NV_FLAGS_0_SET_END_RCVD_4(cp_nv_flags_0_reg, end_rcvd_4) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_END_RCVD_4_MASK) | (end_rcvd_4 << CP_NV_FLAGS_0_END_RCVD_4_SHIFT)
+#define CP_NV_FLAGS_0_SET_DISCARD_5(cp_nv_flags_0_reg, discard_5) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_DISCARD_5_MASK) | (discard_5 << CP_NV_FLAGS_0_DISCARD_5_SHIFT)
+#define CP_NV_FLAGS_0_SET_END_RCVD_5(cp_nv_flags_0_reg, end_rcvd_5) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_END_RCVD_5_MASK) | (end_rcvd_5 << CP_NV_FLAGS_0_END_RCVD_5_SHIFT)
+#define CP_NV_FLAGS_0_SET_DISCARD_6(cp_nv_flags_0_reg, discard_6) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_DISCARD_6_MASK) | (discard_6 << CP_NV_FLAGS_0_DISCARD_6_SHIFT)
+#define CP_NV_FLAGS_0_SET_END_RCVD_6(cp_nv_flags_0_reg, end_rcvd_6) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_END_RCVD_6_MASK) | (end_rcvd_6 << CP_NV_FLAGS_0_END_RCVD_6_SHIFT)
+#define CP_NV_FLAGS_0_SET_DISCARD_7(cp_nv_flags_0_reg, discard_7) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_DISCARD_7_MASK) | (discard_7 << CP_NV_FLAGS_0_DISCARD_7_SHIFT)
+#define CP_NV_FLAGS_0_SET_END_RCVD_7(cp_nv_flags_0_reg, end_rcvd_7) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_END_RCVD_7_MASK) | (end_rcvd_7 << CP_NV_FLAGS_0_END_RCVD_7_SHIFT)
+#define CP_NV_FLAGS_0_SET_DISCARD_8(cp_nv_flags_0_reg, discard_8) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_DISCARD_8_MASK) | (discard_8 << CP_NV_FLAGS_0_DISCARD_8_SHIFT)
+#define CP_NV_FLAGS_0_SET_END_RCVD_8(cp_nv_flags_0_reg, end_rcvd_8) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_END_RCVD_8_MASK) | (end_rcvd_8 << CP_NV_FLAGS_0_END_RCVD_8_SHIFT)
+#define CP_NV_FLAGS_0_SET_DISCARD_9(cp_nv_flags_0_reg, discard_9) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_DISCARD_9_MASK) | (discard_9 << CP_NV_FLAGS_0_DISCARD_9_SHIFT)
+#define CP_NV_FLAGS_0_SET_END_RCVD_9(cp_nv_flags_0_reg, end_rcvd_9) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_END_RCVD_9_MASK) | (end_rcvd_9 << CP_NV_FLAGS_0_END_RCVD_9_SHIFT)
+#define CP_NV_FLAGS_0_SET_DISCARD_10(cp_nv_flags_0_reg, discard_10) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_DISCARD_10_MASK) | (discard_10 << CP_NV_FLAGS_0_DISCARD_10_SHIFT)
+#define CP_NV_FLAGS_0_SET_END_RCVD_10(cp_nv_flags_0_reg, end_rcvd_10) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_END_RCVD_10_MASK) | (end_rcvd_10 << CP_NV_FLAGS_0_END_RCVD_10_SHIFT)
+#define CP_NV_FLAGS_0_SET_DISCARD_11(cp_nv_flags_0_reg, discard_11) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_DISCARD_11_MASK) | (discard_11 << CP_NV_FLAGS_0_DISCARD_11_SHIFT)
+#define CP_NV_FLAGS_0_SET_END_RCVD_11(cp_nv_flags_0_reg, end_rcvd_11) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_END_RCVD_11_MASK) | (end_rcvd_11 << CP_NV_FLAGS_0_END_RCVD_11_SHIFT)
+#define CP_NV_FLAGS_0_SET_DISCARD_12(cp_nv_flags_0_reg, discard_12) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_DISCARD_12_MASK) | (discard_12 << CP_NV_FLAGS_0_DISCARD_12_SHIFT)
+#define CP_NV_FLAGS_0_SET_END_RCVD_12(cp_nv_flags_0_reg, end_rcvd_12) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_END_RCVD_12_MASK) | (end_rcvd_12 << CP_NV_FLAGS_0_END_RCVD_12_SHIFT)
+#define CP_NV_FLAGS_0_SET_DISCARD_13(cp_nv_flags_0_reg, discard_13) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_DISCARD_13_MASK) | (discard_13 << CP_NV_FLAGS_0_DISCARD_13_SHIFT)
+#define CP_NV_FLAGS_0_SET_END_RCVD_13(cp_nv_flags_0_reg, end_rcvd_13) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_END_RCVD_13_MASK) | (end_rcvd_13 << CP_NV_FLAGS_0_END_RCVD_13_SHIFT)
+#define CP_NV_FLAGS_0_SET_DISCARD_14(cp_nv_flags_0_reg, discard_14) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_DISCARD_14_MASK) | (discard_14 << CP_NV_FLAGS_0_DISCARD_14_SHIFT)
+#define CP_NV_FLAGS_0_SET_END_RCVD_14(cp_nv_flags_0_reg, end_rcvd_14) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_END_RCVD_14_MASK) | (end_rcvd_14 << CP_NV_FLAGS_0_END_RCVD_14_SHIFT)
+#define CP_NV_FLAGS_0_SET_DISCARD_15(cp_nv_flags_0_reg, discard_15) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_DISCARD_15_MASK) | (discard_15 << CP_NV_FLAGS_0_DISCARD_15_SHIFT)
+#define CP_NV_FLAGS_0_SET_END_RCVD_15(cp_nv_flags_0_reg, end_rcvd_15) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_END_RCVD_15_MASK) | (end_rcvd_15 << CP_NV_FLAGS_0_END_RCVD_15_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_nv_flags_0_t {
+ unsigned int discard_0 : CP_NV_FLAGS_0_DISCARD_0_SIZE;
+ unsigned int end_rcvd_0 : CP_NV_FLAGS_0_END_RCVD_0_SIZE;
+ unsigned int discard_1 : CP_NV_FLAGS_0_DISCARD_1_SIZE;
+ unsigned int end_rcvd_1 : CP_NV_FLAGS_0_END_RCVD_1_SIZE;
+ unsigned int discard_2 : CP_NV_FLAGS_0_DISCARD_2_SIZE;
+ unsigned int end_rcvd_2 : CP_NV_FLAGS_0_END_RCVD_2_SIZE;
+ unsigned int discard_3 : CP_NV_FLAGS_0_DISCARD_3_SIZE;
+ unsigned int end_rcvd_3 : CP_NV_FLAGS_0_END_RCVD_3_SIZE;
+ unsigned int discard_4 : CP_NV_FLAGS_0_DISCARD_4_SIZE;
+ unsigned int end_rcvd_4 : CP_NV_FLAGS_0_END_RCVD_4_SIZE;
+ unsigned int discard_5 : CP_NV_FLAGS_0_DISCARD_5_SIZE;
+ unsigned int end_rcvd_5 : CP_NV_FLAGS_0_END_RCVD_5_SIZE;
+ unsigned int discard_6 : CP_NV_FLAGS_0_DISCARD_6_SIZE;
+ unsigned int end_rcvd_6 : CP_NV_FLAGS_0_END_RCVD_6_SIZE;
+ unsigned int discard_7 : CP_NV_FLAGS_0_DISCARD_7_SIZE;
+ unsigned int end_rcvd_7 : CP_NV_FLAGS_0_END_RCVD_7_SIZE;
+ unsigned int discard_8 : CP_NV_FLAGS_0_DISCARD_8_SIZE;
+ unsigned int end_rcvd_8 : CP_NV_FLAGS_0_END_RCVD_8_SIZE;
+ unsigned int discard_9 : CP_NV_FLAGS_0_DISCARD_9_SIZE;
+ unsigned int end_rcvd_9 : CP_NV_FLAGS_0_END_RCVD_9_SIZE;
+ unsigned int discard_10 : CP_NV_FLAGS_0_DISCARD_10_SIZE;
+ unsigned int end_rcvd_10 : CP_NV_FLAGS_0_END_RCVD_10_SIZE;
+ unsigned int discard_11 : CP_NV_FLAGS_0_DISCARD_11_SIZE;
+ unsigned int end_rcvd_11 : CP_NV_FLAGS_0_END_RCVD_11_SIZE;
+ unsigned int discard_12 : CP_NV_FLAGS_0_DISCARD_12_SIZE;
+ unsigned int end_rcvd_12 : CP_NV_FLAGS_0_END_RCVD_12_SIZE;
+ unsigned int discard_13 : CP_NV_FLAGS_0_DISCARD_13_SIZE;
+ unsigned int end_rcvd_13 : CP_NV_FLAGS_0_END_RCVD_13_SIZE;
+ unsigned int discard_14 : CP_NV_FLAGS_0_DISCARD_14_SIZE;
+ unsigned int end_rcvd_14 : CP_NV_FLAGS_0_END_RCVD_14_SIZE;
+ unsigned int discard_15 : CP_NV_FLAGS_0_DISCARD_15_SIZE;
+ unsigned int end_rcvd_15 : CP_NV_FLAGS_0_END_RCVD_15_SIZE;
+ } cp_nv_flags_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_nv_flags_0_t {
+ unsigned int end_rcvd_15 : CP_NV_FLAGS_0_END_RCVD_15_SIZE;
+ unsigned int discard_15 : CP_NV_FLAGS_0_DISCARD_15_SIZE;
+ unsigned int end_rcvd_14 : CP_NV_FLAGS_0_END_RCVD_14_SIZE;
+ unsigned int discard_14 : CP_NV_FLAGS_0_DISCARD_14_SIZE;
+ unsigned int end_rcvd_13 : CP_NV_FLAGS_0_END_RCVD_13_SIZE;
+ unsigned int discard_13 : CP_NV_FLAGS_0_DISCARD_13_SIZE;
+ unsigned int end_rcvd_12 : CP_NV_FLAGS_0_END_RCVD_12_SIZE;
+ unsigned int discard_12 : CP_NV_FLAGS_0_DISCARD_12_SIZE;
+ unsigned int end_rcvd_11 : CP_NV_FLAGS_0_END_RCVD_11_SIZE;
+ unsigned int discard_11 : CP_NV_FLAGS_0_DISCARD_11_SIZE;
+ unsigned int end_rcvd_10 : CP_NV_FLAGS_0_END_RCVD_10_SIZE;
+ unsigned int discard_10 : CP_NV_FLAGS_0_DISCARD_10_SIZE;
+ unsigned int end_rcvd_9 : CP_NV_FLAGS_0_END_RCVD_9_SIZE;
+ unsigned int discard_9 : CP_NV_FLAGS_0_DISCARD_9_SIZE;
+ unsigned int end_rcvd_8 : CP_NV_FLAGS_0_END_RCVD_8_SIZE;
+ unsigned int discard_8 : CP_NV_FLAGS_0_DISCARD_8_SIZE;
+ unsigned int end_rcvd_7 : CP_NV_FLAGS_0_END_RCVD_7_SIZE;
+ unsigned int discard_7 : CP_NV_FLAGS_0_DISCARD_7_SIZE;
+ unsigned int end_rcvd_6 : CP_NV_FLAGS_0_END_RCVD_6_SIZE;
+ unsigned int discard_6 : CP_NV_FLAGS_0_DISCARD_6_SIZE;
+ unsigned int end_rcvd_5 : CP_NV_FLAGS_0_END_RCVD_5_SIZE;
+ unsigned int discard_5 : CP_NV_FLAGS_0_DISCARD_5_SIZE;
+ unsigned int end_rcvd_4 : CP_NV_FLAGS_0_END_RCVD_4_SIZE;
+ unsigned int discard_4 : CP_NV_FLAGS_0_DISCARD_4_SIZE;
+ unsigned int end_rcvd_3 : CP_NV_FLAGS_0_END_RCVD_3_SIZE;
+ unsigned int discard_3 : CP_NV_FLAGS_0_DISCARD_3_SIZE;
+ unsigned int end_rcvd_2 : CP_NV_FLAGS_0_END_RCVD_2_SIZE;
+ unsigned int discard_2 : CP_NV_FLAGS_0_DISCARD_2_SIZE;
+ unsigned int end_rcvd_1 : CP_NV_FLAGS_0_END_RCVD_1_SIZE;
+ unsigned int discard_1 : CP_NV_FLAGS_0_DISCARD_1_SIZE;
+ unsigned int end_rcvd_0 : CP_NV_FLAGS_0_END_RCVD_0_SIZE;
+ unsigned int discard_0 : CP_NV_FLAGS_0_DISCARD_0_SIZE;
+ } cp_nv_flags_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_nv_flags_0_t f;
+} cp_nv_flags_0_u;
+
+
+/*
+ * CP_NV_FLAGS_1 struct
+ */
+
+#define CP_NV_FLAGS_1_DISCARD_16_SIZE 1
+#define CP_NV_FLAGS_1_END_RCVD_16_SIZE 1
+#define CP_NV_FLAGS_1_DISCARD_17_SIZE 1
+#define CP_NV_FLAGS_1_END_RCVD_17_SIZE 1
+#define CP_NV_FLAGS_1_DISCARD_18_SIZE 1
+#define CP_NV_FLAGS_1_END_RCVD_18_SIZE 1
+#define CP_NV_FLAGS_1_DISCARD_19_SIZE 1
+#define CP_NV_FLAGS_1_END_RCVD_19_SIZE 1
+#define CP_NV_FLAGS_1_DISCARD_20_SIZE 1
+#define CP_NV_FLAGS_1_END_RCVD_20_SIZE 1
+#define CP_NV_FLAGS_1_DISCARD_21_SIZE 1
+#define CP_NV_FLAGS_1_END_RCVD_21_SIZE 1
+#define CP_NV_FLAGS_1_DISCARD_22_SIZE 1
+#define CP_NV_FLAGS_1_END_RCVD_22_SIZE 1
+#define CP_NV_FLAGS_1_DISCARD_23_SIZE 1
+#define CP_NV_FLAGS_1_END_RCVD_23_SIZE 1
+#define CP_NV_FLAGS_1_DISCARD_24_SIZE 1
+#define CP_NV_FLAGS_1_END_RCVD_24_SIZE 1
+#define CP_NV_FLAGS_1_DISCARD_25_SIZE 1
+#define CP_NV_FLAGS_1_END_RCVD_25_SIZE 1
+#define CP_NV_FLAGS_1_DISCARD_26_SIZE 1
+#define CP_NV_FLAGS_1_END_RCVD_26_SIZE 1
+#define CP_NV_FLAGS_1_DISCARD_27_SIZE 1
+#define CP_NV_FLAGS_1_END_RCVD_27_SIZE 1
+#define CP_NV_FLAGS_1_DISCARD_28_SIZE 1
+#define CP_NV_FLAGS_1_END_RCVD_28_SIZE 1
+#define CP_NV_FLAGS_1_DISCARD_29_SIZE 1
+#define CP_NV_FLAGS_1_END_RCVD_29_SIZE 1
+#define CP_NV_FLAGS_1_DISCARD_30_SIZE 1
+#define CP_NV_FLAGS_1_END_RCVD_30_SIZE 1
+#define CP_NV_FLAGS_1_DISCARD_31_SIZE 1
+#define CP_NV_FLAGS_1_END_RCVD_31_SIZE 1
+
+#define CP_NV_FLAGS_1_DISCARD_16_SHIFT 0
+#define CP_NV_FLAGS_1_END_RCVD_16_SHIFT 1
+#define CP_NV_FLAGS_1_DISCARD_17_SHIFT 2
+#define CP_NV_FLAGS_1_END_RCVD_17_SHIFT 3
+#define CP_NV_FLAGS_1_DISCARD_18_SHIFT 4
+#define CP_NV_FLAGS_1_END_RCVD_18_SHIFT 5
+#define CP_NV_FLAGS_1_DISCARD_19_SHIFT 6
+#define CP_NV_FLAGS_1_END_RCVD_19_SHIFT 7
+#define CP_NV_FLAGS_1_DISCARD_20_SHIFT 8
+#define CP_NV_FLAGS_1_END_RCVD_20_SHIFT 9
+#define CP_NV_FLAGS_1_DISCARD_21_SHIFT 10
+#define CP_NV_FLAGS_1_END_RCVD_21_SHIFT 11
+#define CP_NV_FLAGS_1_DISCARD_22_SHIFT 12
+#define CP_NV_FLAGS_1_END_RCVD_22_SHIFT 13
+#define CP_NV_FLAGS_1_DISCARD_23_SHIFT 14
+#define CP_NV_FLAGS_1_END_RCVD_23_SHIFT 15
+#define CP_NV_FLAGS_1_DISCARD_24_SHIFT 16
+#define CP_NV_FLAGS_1_END_RCVD_24_SHIFT 17
+#define CP_NV_FLAGS_1_DISCARD_25_SHIFT 18
+#define CP_NV_FLAGS_1_END_RCVD_25_SHIFT 19
+#define CP_NV_FLAGS_1_DISCARD_26_SHIFT 20
+#define CP_NV_FLAGS_1_END_RCVD_26_SHIFT 21
+#define CP_NV_FLAGS_1_DISCARD_27_SHIFT 22
+#define CP_NV_FLAGS_1_END_RCVD_27_SHIFT 23
+#define CP_NV_FLAGS_1_DISCARD_28_SHIFT 24
+#define CP_NV_FLAGS_1_END_RCVD_28_SHIFT 25
+#define CP_NV_FLAGS_1_DISCARD_29_SHIFT 26
+#define CP_NV_FLAGS_1_END_RCVD_29_SHIFT 27
+#define CP_NV_FLAGS_1_DISCARD_30_SHIFT 28
+#define CP_NV_FLAGS_1_END_RCVD_30_SHIFT 29
+#define CP_NV_FLAGS_1_DISCARD_31_SHIFT 30
+#define CP_NV_FLAGS_1_END_RCVD_31_SHIFT 31
+
+#define CP_NV_FLAGS_1_DISCARD_16_MASK 0x00000001
+#define CP_NV_FLAGS_1_END_RCVD_16_MASK 0x00000002
+#define CP_NV_FLAGS_1_DISCARD_17_MASK 0x00000004
+#define CP_NV_FLAGS_1_END_RCVD_17_MASK 0x00000008
+#define CP_NV_FLAGS_1_DISCARD_18_MASK 0x00000010
+#define CP_NV_FLAGS_1_END_RCVD_18_MASK 0x00000020
+#define CP_NV_FLAGS_1_DISCARD_19_MASK 0x00000040
+#define CP_NV_FLAGS_1_END_RCVD_19_MASK 0x00000080
+#define CP_NV_FLAGS_1_DISCARD_20_MASK 0x00000100
+#define CP_NV_FLAGS_1_END_RCVD_20_MASK 0x00000200
+#define CP_NV_FLAGS_1_DISCARD_21_MASK 0x00000400
+#define CP_NV_FLAGS_1_END_RCVD_21_MASK 0x00000800
+#define CP_NV_FLAGS_1_DISCARD_22_MASK 0x00001000
+#define CP_NV_FLAGS_1_END_RCVD_22_MASK 0x00002000
+#define CP_NV_FLAGS_1_DISCARD_23_MASK 0x00004000
+#define CP_NV_FLAGS_1_END_RCVD_23_MASK 0x00008000
+#define CP_NV_FLAGS_1_DISCARD_24_MASK 0x00010000
+#define CP_NV_FLAGS_1_END_RCVD_24_MASK 0x00020000
+#define CP_NV_FLAGS_1_DISCARD_25_MASK 0x00040000
+#define CP_NV_FLAGS_1_END_RCVD_25_MASK 0x00080000
+#define CP_NV_FLAGS_1_DISCARD_26_MASK 0x00100000
+#define CP_NV_FLAGS_1_END_RCVD_26_MASK 0x00200000
+#define CP_NV_FLAGS_1_DISCARD_27_MASK 0x00400000
+#define CP_NV_FLAGS_1_END_RCVD_27_MASK 0x00800000
+#define CP_NV_FLAGS_1_DISCARD_28_MASK 0x01000000
+#define CP_NV_FLAGS_1_END_RCVD_28_MASK 0x02000000
+#define CP_NV_FLAGS_1_DISCARD_29_MASK 0x04000000
+#define CP_NV_FLAGS_1_END_RCVD_29_MASK 0x08000000
+#define CP_NV_FLAGS_1_DISCARD_30_MASK 0x10000000
+#define CP_NV_FLAGS_1_END_RCVD_30_MASK 0x20000000
+#define CP_NV_FLAGS_1_DISCARD_31_MASK 0x40000000
+#define CP_NV_FLAGS_1_END_RCVD_31_MASK 0x80000000
+
+#define CP_NV_FLAGS_1_MASK \
+ (CP_NV_FLAGS_1_DISCARD_16_MASK | \
+ CP_NV_FLAGS_1_END_RCVD_16_MASK | \
+ CP_NV_FLAGS_1_DISCARD_17_MASK | \
+ CP_NV_FLAGS_1_END_RCVD_17_MASK | \
+ CP_NV_FLAGS_1_DISCARD_18_MASK | \
+ CP_NV_FLAGS_1_END_RCVD_18_MASK | \
+ CP_NV_FLAGS_1_DISCARD_19_MASK | \
+ CP_NV_FLAGS_1_END_RCVD_19_MASK | \
+ CP_NV_FLAGS_1_DISCARD_20_MASK | \
+ CP_NV_FLAGS_1_END_RCVD_20_MASK | \
+ CP_NV_FLAGS_1_DISCARD_21_MASK | \
+ CP_NV_FLAGS_1_END_RCVD_21_MASK | \
+ CP_NV_FLAGS_1_DISCARD_22_MASK | \
+ CP_NV_FLAGS_1_END_RCVD_22_MASK | \
+ CP_NV_FLAGS_1_DISCARD_23_MASK | \
+ CP_NV_FLAGS_1_END_RCVD_23_MASK | \
+ CP_NV_FLAGS_1_DISCARD_24_MASK | \
+ CP_NV_FLAGS_1_END_RCVD_24_MASK | \
+ CP_NV_FLAGS_1_DISCARD_25_MASK | \
+ CP_NV_FLAGS_1_END_RCVD_25_MASK | \
+ CP_NV_FLAGS_1_DISCARD_26_MASK | \
+ CP_NV_FLAGS_1_END_RCVD_26_MASK | \
+ CP_NV_FLAGS_1_DISCARD_27_MASK | \
+ CP_NV_FLAGS_1_END_RCVD_27_MASK | \
+ CP_NV_FLAGS_1_DISCARD_28_MASK | \
+ CP_NV_FLAGS_1_END_RCVD_28_MASK | \
+ CP_NV_FLAGS_1_DISCARD_29_MASK | \
+ CP_NV_FLAGS_1_END_RCVD_29_MASK | \
+ CP_NV_FLAGS_1_DISCARD_30_MASK | \
+ CP_NV_FLAGS_1_END_RCVD_30_MASK | \
+ CP_NV_FLAGS_1_DISCARD_31_MASK | \
+ CP_NV_FLAGS_1_END_RCVD_31_MASK)
+
+#define CP_NV_FLAGS_1(discard_16, end_rcvd_16, discard_17, end_rcvd_17, discard_18, end_rcvd_18, discard_19, end_rcvd_19, discard_20, end_rcvd_20, discard_21, end_rcvd_21, discard_22, end_rcvd_22, discard_23, end_rcvd_23, discard_24, end_rcvd_24, discard_25, end_rcvd_25, discard_26, end_rcvd_26, discard_27, end_rcvd_27, discard_28, end_rcvd_28, discard_29, end_rcvd_29, discard_30, end_rcvd_30, discard_31, end_rcvd_31) \
+ ((discard_16 << CP_NV_FLAGS_1_DISCARD_16_SHIFT) | \
+ (end_rcvd_16 << CP_NV_FLAGS_1_END_RCVD_16_SHIFT) | \
+ (discard_17 << CP_NV_FLAGS_1_DISCARD_17_SHIFT) | \
+ (end_rcvd_17 << CP_NV_FLAGS_1_END_RCVD_17_SHIFT) | \
+ (discard_18 << CP_NV_FLAGS_1_DISCARD_18_SHIFT) | \
+ (end_rcvd_18 << CP_NV_FLAGS_1_END_RCVD_18_SHIFT) | \
+ (discard_19 << CP_NV_FLAGS_1_DISCARD_19_SHIFT) | \
+ (end_rcvd_19 << CP_NV_FLAGS_1_END_RCVD_19_SHIFT) | \
+ (discard_20 << CP_NV_FLAGS_1_DISCARD_20_SHIFT) | \
+ (end_rcvd_20 << CP_NV_FLAGS_1_END_RCVD_20_SHIFT) | \
+ (discard_21 << CP_NV_FLAGS_1_DISCARD_21_SHIFT) | \
+ (end_rcvd_21 << CP_NV_FLAGS_1_END_RCVD_21_SHIFT) | \
+ (discard_22 << CP_NV_FLAGS_1_DISCARD_22_SHIFT) | \
+ (end_rcvd_22 << CP_NV_FLAGS_1_END_RCVD_22_SHIFT) | \
+ (discard_23 << CP_NV_FLAGS_1_DISCARD_23_SHIFT) | \
+ (end_rcvd_23 << CP_NV_FLAGS_1_END_RCVD_23_SHIFT) | \
+ (discard_24 << CP_NV_FLAGS_1_DISCARD_24_SHIFT) | \
+ (end_rcvd_24 << CP_NV_FLAGS_1_END_RCVD_24_SHIFT) | \
+ (discard_25 << CP_NV_FLAGS_1_DISCARD_25_SHIFT) | \
+ (end_rcvd_25 << CP_NV_FLAGS_1_END_RCVD_25_SHIFT) | \
+ (discard_26 << CP_NV_FLAGS_1_DISCARD_26_SHIFT) | \
+ (end_rcvd_26 << CP_NV_FLAGS_1_END_RCVD_26_SHIFT) | \
+ (discard_27 << CP_NV_FLAGS_1_DISCARD_27_SHIFT) | \
+ (end_rcvd_27 << CP_NV_FLAGS_1_END_RCVD_27_SHIFT) | \
+ (discard_28 << CP_NV_FLAGS_1_DISCARD_28_SHIFT) | \
+ (end_rcvd_28 << CP_NV_FLAGS_1_END_RCVD_28_SHIFT) | \
+ (discard_29 << CP_NV_FLAGS_1_DISCARD_29_SHIFT) | \
+ (end_rcvd_29 << CP_NV_FLAGS_1_END_RCVD_29_SHIFT) | \
+ (discard_30 << CP_NV_FLAGS_1_DISCARD_30_SHIFT) | \
+ (end_rcvd_30 << CP_NV_FLAGS_1_END_RCVD_30_SHIFT) | \
+ (discard_31 << CP_NV_FLAGS_1_DISCARD_31_SHIFT) | \
+ (end_rcvd_31 << CP_NV_FLAGS_1_END_RCVD_31_SHIFT))
+
+#define CP_NV_FLAGS_1_GET_DISCARD_16(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_DISCARD_16_MASK) >> CP_NV_FLAGS_1_DISCARD_16_SHIFT)
+#define CP_NV_FLAGS_1_GET_END_RCVD_16(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_END_RCVD_16_MASK) >> CP_NV_FLAGS_1_END_RCVD_16_SHIFT)
+#define CP_NV_FLAGS_1_GET_DISCARD_17(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_DISCARD_17_MASK) >> CP_NV_FLAGS_1_DISCARD_17_SHIFT)
+#define CP_NV_FLAGS_1_GET_END_RCVD_17(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_END_RCVD_17_MASK) >> CP_NV_FLAGS_1_END_RCVD_17_SHIFT)
+#define CP_NV_FLAGS_1_GET_DISCARD_18(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_DISCARD_18_MASK) >> CP_NV_FLAGS_1_DISCARD_18_SHIFT)
+#define CP_NV_FLAGS_1_GET_END_RCVD_18(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_END_RCVD_18_MASK) >> CP_NV_FLAGS_1_END_RCVD_18_SHIFT)
+#define CP_NV_FLAGS_1_GET_DISCARD_19(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_DISCARD_19_MASK) >> CP_NV_FLAGS_1_DISCARD_19_SHIFT)
+#define CP_NV_FLAGS_1_GET_END_RCVD_19(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_END_RCVD_19_MASK) >> CP_NV_FLAGS_1_END_RCVD_19_SHIFT)
+#define CP_NV_FLAGS_1_GET_DISCARD_20(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_DISCARD_20_MASK) >> CP_NV_FLAGS_1_DISCARD_20_SHIFT)
+#define CP_NV_FLAGS_1_GET_END_RCVD_20(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_END_RCVD_20_MASK) >> CP_NV_FLAGS_1_END_RCVD_20_SHIFT)
+#define CP_NV_FLAGS_1_GET_DISCARD_21(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_DISCARD_21_MASK) >> CP_NV_FLAGS_1_DISCARD_21_SHIFT)
+#define CP_NV_FLAGS_1_GET_END_RCVD_21(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_END_RCVD_21_MASK) >> CP_NV_FLAGS_1_END_RCVD_21_SHIFT)
+#define CP_NV_FLAGS_1_GET_DISCARD_22(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_DISCARD_22_MASK) >> CP_NV_FLAGS_1_DISCARD_22_SHIFT)
+#define CP_NV_FLAGS_1_GET_END_RCVD_22(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_END_RCVD_22_MASK) >> CP_NV_FLAGS_1_END_RCVD_22_SHIFT)
+#define CP_NV_FLAGS_1_GET_DISCARD_23(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_DISCARD_23_MASK) >> CP_NV_FLAGS_1_DISCARD_23_SHIFT)
+#define CP_NV_FLAGS_1_GET_END_RCVD_23(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_END_RCVD_23_MASK) >> CP_NV_FLAGS_1_END_RCVD_23_SHIFT)
+#define CP_NV_FLAGS_1_GET_DISCARD_24(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_DISCARD_24_MASK) >> CP_NV_FLAGS_1_DISCARD_24_SHIFT)
+#define CP_NV_FLAGS_1_GET_END_RCVD_24(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_END_RCVD_24_MASK) >> CP_NV_FLAGS_1_END_RCVD_24_SHIFT)
+#define CP_NV_FLAGS_1_GET_DISCARD_25(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_DISCARD_25_MASK) >> CP_NV_FLAGS_1_DISCARD_25_SHIFT)
+#define CP_NV_FLAGS_1_GET_END_RCVD_25(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_END_RCVD_25_MASK) >> CP_NV_FLAGS_1_END_RCVD_25_SHIFT)
+#define CP_NV_FLAGS_1_GET_DISCARD_26(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_DISCARD_26_MASK) >> CP_NV_FLAGS_1_DISCARD_26_SHIFT)
+#define CP_NV_FLAGS_1_GET_END_RCVD_26(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_END_RCVD_26_MASK) >> CP_NV_FLAGS_1_END_RCVD_26_SHIFT)
+#define CP_NV_FLAGS_1_GET_DISCARD_27(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_DISCARD_27_MASK) >> CP_NV_FLAGS_1_DISCARD_27_SHIFT)
+#define CP_NV_FLAGS_1_GET_END_RCVD_27(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_END_RCVD_27_MASK) >> CP_NV_FLAGS_1_END_RCVD_27_SHIFT)
+#define CP_NV_FLAGS_1_GET_DISCARD_28(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_DISCARD_28_MASK) >> CP_NV_FLAGS_1_DISCARD_28_SHIFT)
+#define CP_NV_FLAGS_1_GET_END_RCVD_28(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_END_RCVD_28_MASK) >> CP_NV_FLAGS_1_END_RCVD_28_SHIFT)
+#define CP_NV_FLAGS_1_GET_DISCARD_29(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_DISCARD_29_MASK) >> CP_NV_FLAGS_1_DISCARD_29_SHIFT)
+#define CP_NV_FLAGS_1_GET_END_RCVD_29(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_END_RCVD_29_MASK) >> CP_NV_FLAGS_1_END_RCVD_29_SHIFT)
+#define CP_NV_FLAGS_1_GET_DISCARD_30(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_DISCARD_30_MASK) >> CP_NV_FLAGS_1_DISCARD_30_SHIFT)
+#define CP_NV_FLAGS_1_GET_END_RCVD_30(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_END_RCVD_30_MASK) >> CP_NV_FLAGS_1_END_RCVD_30_SHIFT)
+#define CP_NV_FLAGS_1_GET_DISCARD_31(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_DISCARD_31_MASK) >> CP_NV_FLAGS_1_DISCARD_31_SHIFT)
+#define CP_NV_FLAGS_1_GET_END_RCVD_31(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_END_RCVD_31_MASK) >> CP_NV_FLAGS_1_END_RCVD_31_SHIFT)
+
+#define CP_NV_FLAGS_1_SET_DISCARD_16(cp_nv_flags_1_reg, discard_16) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_DISCARD_16_MASK) | (discard_16 << CP_NV_FLAGS_1_DISCARD_16_SHIFT)
+#define CP_NV_FLAGS_1_SET_END_RCVD_16(cp_nv_flags_1_reg, end_rcvd_16) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_END_RCVD_16_MASK) | (end_rcvd_16 << CP_NV_FLAGS_1_END_RCVD_16_SHIFT)
+#define CP_NV_FLAGS_1_SET_DISCARD_17(cp_nv_flags_1_reg, discard_17) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_DISCARD_17_MASK) | (discard_17 << CP_NV_FLAGS_1_DISCARD_17_SHIFT)
+#define CP_NV_FLAGS_1_SET_END_RCVD_17(cp_nv_flags_1_reg, end_rcvd_17) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_END_RCVD_17_MASK) | (end_rcvd_17 << CP_NV_FLAGS_1_END_RCVD_17_SHIFT)
+#define CP_NV_FLAGS_1_SET_DISCARD_18(cp_nv_flags_1_reg, discard_18) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_DISCARD_18_MASK) | (discard_18 << CP_NV_FLAGS_1_DISCARD_18_SHIFT)
+#define CP_NV_FLAGS_1_SET_END_RCVD_18(cp_nv_flags_1_reg, end_rcvd_18) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_END_RCVD_18_MASK) | (end_rcvd_18 << CP_NV_FLAGS_1_END_RCVD_18_SHIFT)
+#define CP_NV_FLAGS_1_SET_DISCARD_19(cp_nv_flags_1_reg, discard_19) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_DISCARD_19_MASK) | (discard_19 << CP_NV_FLAGS_1_DISCARD_19_SHIFT)
+#define CP_NV_FLAGS_1_SET_END_RCVD_19(cp_nv_flags_1_reg, end_rcvd_19) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_END_RCVD_19_MASK) | (end_rcvd_19 << CP_NV_FLAGS_1_END_RCVD_19_SHIFT)
+#define CP_NV_FLAGS_1_SET_DISCARD_20(cp_nv_flags_1_reg, discard_20) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_DISCARD_20_MASK) | (discard_20 << CP_NV_FLAGS_1_DISCARD_20_SHIFT)
+#define CP_NV_FLAGS_1_SET_END_RCVD_20(cp_nv_flags_1_reg, end_rcvd_20) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_END_RCVD_20_MASK) | (end_rcvd_20 << CP_NV_FLAGS_1_END_RCVD_20_SHIFT)
+#define CP_NV_FLAGS_1_SET_DISCARD_21(cp_nv_flags_1_reg, discard_21) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_DISCARD_21_MASK) | (discard_21 << CP_NV_FLAGS_1_DISCARD_21_SHIFT)
+#define CP_NV_FLAGS_1_SET_END_RCVD_21(cp_nv_flags_1_reg, end_rcvd_21) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_END_RCVD_21_MASK) | (end_rcvd_21 << CP_NV_FLAGS_1_END_RCVD_21_SHIFT)
+#define CP_NV_FLAGS_1_SET_DISCARD_22(cp_nv_flags_1_reg, discard_22) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_DISCARD_22_MASK) | (discard_22 << CP_NV_FLAGS_1_DISCARD_22_SHIFT)
+#define CP_NV_FLAGS_1_SET_END_RCVD_22(cp_nv_flags_1_reg, end_rcvd_22) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_END_RCVD_22_MASK) | (end_rcvd_22 << CP_NV_FLAGS_1_END_RCVD_22_SHIFT)
+#define CP_NV_FLAGS_1_SET_DISCARD_23(cp_nv_flags_1_reg, discard_23) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_DISCARD_23_MASK) | (discard_23 << CP_NV_FLAGS_1_DISCARD_23_SHIFT)
+#define CP_NV_FLAGS_1_SET_END_RCVD_23(cp_nv_flags_1_reg, end_rcvd_23) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_END_RCVD_23_MASK) | (end_rcvd_23 << CP_NV_FLAGS_1_END_RCVD_23_SHIFT)
+#define CP_NV_FLAGS_1_SET_DISCARD_24(cp_nv_flags_1_reg, discard_24) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_DISCARD_24_MASK) | (discard_24 << CP_NV_FLAGS_1_DISCARD_24_SHIFT)
+#define CP_NV_FLAGS_1_SET_END_RCVD_24(cp_nv_flags_1_reg, end_rcvd_24) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_END_RCVD_24_MASK) | (end_rcvd_24 << CP_NV_FLAGS_1_END_RCVD_24_SHIFT)
+#define CP_NV_FLAGS_1_SET_DISCARD_25(cp_nv_flags_1_reg, discard_25) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_DISCARD_25_MASK) | (discard_25 << CP_NV_FLAGS_1_DISCARD_25_SHIFT)
+#define CP_NV_FLAGS_1_SET_END_RCVD_25(cp_nv_flags_1_reg, end_rcvd_25) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_END_RCVD_25_MASK) | (end_rcvd_25 << CP_NV_FLAGS_1_END_RCVD_25_SHIFT)
+#define CP_NV_FLAGS_1_SET_DISCARD_26(cp_nv_flags_1_reg, discard_26) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_DISCARD_26_MASK) | (discard_26 << CP_NV_FLAGS_1_DISCARD_26_SHIFT)
+#define CP_NV_FLAGS_1_SET_END_RCVD_26(cp_nv_flags_1_reg, end_rcvd_26) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_END_RCVD_26_MASK) | (end_rcvd_26 << CP_NV_FLAGS_1_END_RCVD_26_SHIFT)
+#define CP_NV_FLAGS_1_SET_DISCARD_27(cp_nv_flags_1_reg, discard_27) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_DISCARD_27_MASK) | (discard_27 << CP_NV_FLAGS_1_DISCARD_27_SHIFT)
+#define CP_NV_FLAGS_1_SET_END_RCVD_27(cp_nv_flags_1_reg, end_rcvd_27) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_END_RCVD_27_MASK) | (end_rcvd_27 << CP_NV_FLAGS_1_END_RCVD_27_SHIFT)
+#define CP_NV_FLAGS_1_SET_DISCARD_28(cp_nv_flags_1_reg, discard_28) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_DISCARD_28_MASK) | (discard_28 << CP_NV_FLAGS_1_DISCARD_28_SHIFT)
+#define CP_NV_FLAGS_1_SET_END_RCVD_28(cp_nv_flags_1_reg, end_rcvd_28) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_END_RCVD_28_MASK) | (end_rcvd_28 << CP_NV_FLAGS_1_END_RCVD_28_SHIFT)
+#define CP_NV_FLAGS_1_SET_DISCARD_29(cp_nv_flags_1_reg, discard_29) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_DISCARD_29_MASK) | (discard_29 << CP_NV_FLAGS_1_DISCARD_29_SHIFT)
+#define CP_NV_FLAGS_1_SET_END_RCVD_29(cp_nv_flags_1_reg, end_rcvd_29) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_END_RCVD_29_MASK) | (end_rcvd_29 << CP_NV_FLAGS_1_END_RCVD_29_SHIFT)
+#define CP_NV_FLAGS_1_SET_DISCARD_30(cp_nv_flags_1_reg, discard_30) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_DISCARD_30_MASK) | (discard_30 << CP_NV_FLAGS_1_DISCARD_30_SHIFT)
+#define CP_NV_FLAGS_1_SET_END_RCVD_30(cp_nv_flags_1_reg, end_rcvd_30) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_END_RCVD_30_MASK) | (end_rcvd_30 << CP_NV_FLAGS_1_END_RCVD_30_SHIFT)
+#define CP_NV_FLAGS_1_SET_DISCARD_31(cp_nv_flags_1_reg, discard_31) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_DISCARD_31_MASK) | (discard_31 << CP_NV_FLAGS_1_DISCARD_31_SHIFT)
+#define CP_NV_FLAGS_1_SET_END_RCVD_31(cp_nv_flags_1_reg, end_rcvd_31) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_END_RCVD_31_MASK) | (end_rcvd_31 << CP_NV_FLAGS_1_END_RCVD_31_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_nv_flags_1_t {
+ unsigned int discard_16 : CP_NV_FLAGS_1_DISCARD_16_SIZE;
+ unsigned int end_rcvd_16 : CP_NV_FLAGS_1_END_RCVD_16_SIZE;
+ unsigned int discard_17 : CP_NV_FLAGS_1_DISCARD_17_SIZE;
+ unsigned int end_rcvd_17 : CP_NV_FLAGS_1_END_RCVD_17_SIZE;
+ unsigned int discard_18 : CP_NV_FLAGS_1_DISCARD_18_SIZE;
+ unsigned int end_rcvd_18 : CP_NV_FLAGS_1_END_RCVD_18_SIZE;
+ unsigned int discard_19 : CP_NV_FLAGS_1_DISCARD_19_SIZE;
+ unsigned int end_rcvd_19 : CP_NV_FLAGS_1_END_RCVD_19_SIZE;
+ unsigned int discard_20 : CP_NV_FLAGS_1_DISCARD_20_SIZE;
+ unsigned int end_rcvd_20 : CP_NV_FLAGS_1_END_RCVD_20_SIZE;
+ unsigned int discard_21 : CP_NV_FLAGS_1_DISCARD_21_SIZE;
+ unsigned int end_rcvd_21 : CP_NV_FLAGS_1_END_RCVD_21_SIZE;
+ unsigned int discard_22 : CP_NV_FLAGS_1_DISCARD_22_SIZE;
+ unsigned int end_rcvd_22 : CP_NV_FLAGS_1_END_RCVD_22_SIZE;
+ unsigned int discard_23 : CP_NV_FLAGS_1_DISCARD_23_SIZE;
+ unsigned int end_rcvd_23 : CP_NV_FLAGS_1_END_RCVD_23_SIZE;
+ unsigned int discard_24 : CP_NV_FLAGS_1_DISCARD_24_SIZE;
+ unsigned int end_rcvd_24 : CP_NV_FLAGS_1_END_RCVD_24_SIZE;
+ unsigned int discard_25 : CP_NV_FLAGS_1_DISCARD_25_SIZE;
+ unsigned int end_rcvd_25 : CP_NV_FLAGS_1_END_RCVD_25_SIZE;
+ unsigned int discard_26 : CP_NV_FLAGS_1_DISCARD_26_SIZE;
+ unsigned int end_rcvd_26 : CP_NV_FLAGS_1_END_RCVD_26_SIZE;
+ unsigned int discard_27 : CP_NV_FLAGS_1_DISCARD_27_SIZE;
+ unsigned int end_rcvd_27 : CP_NV_FLAGS_1_END_RCVD_27_SIZE;
+ unsigned int discard_28 : CP_NV_FLAGS_1_DISCARD_28_SIZE;
+ unsigned int end_rcvd_28 : CP_NV_FLAGS_1_END_RCVD_28_SIZE;
+ unsigned int discard_29 : CP_NV_FLAGS_1_DISCARD_29_SIZE;
+ unsigned int end_rcvd_29 : CP_NV_FLAGS_1_END_RCVD_29_SIZE;
+ unsigned int discard_30 : CP_NV_FLAGS_1_DISCARD_30_SIZE;
+ unsigned int end_rcvd_30 : CP_NV_FLAGS_1_END_RCVD_30_SIZE;
+ unsigned int discard_31 : CP_NV_FLAGS_1_DISCARD_31_SIZE;
+ unsigned int end_rcvd_31 : CP_NV_FLAGS_1_END_RCVD_31_SIZE;
+ } cp_nv_flags_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_nv_flags_1_t {
+ unsigned int end_rcvd_31 : CP_NV_FLAGS_1_END_RCVD_31_SIZE;
+ unsigned int discard_31 : CP_NV_FLAGS_1_DISCARD_31_SIZE;
+ unsigned int end_rcvd_30 : CP_NV_FLAGS_1_END_RCVD_30_SIZE;
+ unsigned int discard_30 : CP_NV_FLAGS_1_DISCARD_30_SIZE;
+ unsigned int end_rcvd_29 : CP_NV_FLAGS_1_END_RCVD_29_SIZE;
+ unsigned int discard_29 : CP_NV_FLAGS_1_DISCARD_29_SIZE;
+ unsigned int end_rcvd_28 : CP_NV_FLAGS_1_END_RCVD_28_SIZE;
+ unsigned int discard_28 : CP_NV_FLAGS_1_DISCARD_28_SIZE;
+ unsigned int end_rcvd_27 : CP_NV_FLAGS_1_END_RCVD_27_SIZE;
+ unsigned int discard_27 : CP_NV_FLAGS_1_DISCARD_27_SIZE;
+ unsigned int end_rcvd_26 : CP_NV_FLAGS_1_END_RCVD_26_SIZE;
+ unsigned int discard_26 : CP_NV_FLAGS_1_DISCARD_26_SIZE;
+ unsigned int end_rcvd_25 : CP_NV_FLAGS_1_END_RCVD_25_SIZE;
+ unsigned int discard_25 : CP_NV_FLAGS_1_DISCARD_25_SIZE;
+ unsigned int end_rcvd_24 : CP_NV_FLAGS_1_END_RCVD_24_SIZE;
+ unsigned int discard_24 : CP_NV_FLAGS_1_DISCARD_24_SIZE;
+ unsigned int end_rcvd_23 : CP_NV_FLAGS_1_END_RCVD_23_SIZE;
+ unsigned int discard_23 : CP_NV_FLAGS_1_DISCARD_23_SIZE;
+ unsigned int end_rcvd_22 : CP_NV_FLAGS_1_END_RCVD_22_SIZE;
+ unsigned int discard_22 : CP_NV_FLAGS_1_DISCARD_22_SIZE;
+ unsigned int end_rcvd_21 : CP_NV_FLAGS_1_END_RCVD_21_SIZE;
+ unsigned int discard_21 : CP_NV_FLAGS_1_DISCARD_21_SIZE;
+ unsigned int end_rcvd_20 : CP_NV_FLAGS_1_END_RCVD_20_SIZE;
+ unsigned int discard_20 : CP_NV_FLAGS_1_DISCARD_20_SIZE;
+ unsigned int end_rcvd_19 : CP_NV_FLAGS_1_END_RCVD_19_SIZE;
+ unsigned int discard_19 : CP_NV_FLAGS_1_DISCARD_19_SIZE;
+ unsigned int end_rcvd_18 : CP_NV_FLAGS_1_END_RCVD_18_SIZE;
+ unsigned int discard_18 : CP_NV_FLAGS_1_DISCARD_18_SIZE;
+ unsigned int end_rcvd_17 : CP_NV_FLAGS_1_END_RCVD_17_SIZE;
+ unsigned int discard_17 : CP_NV_FLAGS_1_DISCARD_17_SIZE;
+ unsigned int end_rcvd_16 : CP_NV_FLAGS_1_END_RCVD_16_SIZE;
+ unsigned int discard_16 : CP_NV_FLAGS_1_DISCARD_16_SIZE;
+ } cp_nv_flags_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_nv_flags_1_t f;
+} cp_nv_flags_1_u;
+
+
+/*
+ * CP_NV_FLAGS_2 struct
+ */
+
+#define CP_NV_FLAGS_2_DISCARD_32_SIZE 1
+#define CP_NV_FLAGS_2_END_RCVD_32_SIZE 1
+#define CP_NV_FLAGS_2_DISCARD_33_SIZE 1
+#define CP_NV_FLAGS_2_END_RCVD_33_SIZE 1
+#define CP_NV_FLAGS_2_DISCARD_34_SIZE 1
+#define CP_NV_FLAGS_2_END_RCVD_34_SIZE 1
+#define CP_NV_FLAGS_2_DISCARD_35_SIZE 1
+#define CP_NV_FLAGS_2_END_RCVD_35_SIZE 1
+#define CP_NV_FLAGS_2_DISCARD_36_SIZE 1
+#define CP_NV_FLAGS_2_END_RCVD_36_SIZE 1
+#define CP_NV_FLAGS_2_DISCARD_37_SIZE 1
+#define CP_NV_FLAGS_2_END_RCVD_37_SIZE 1
+#define CP_NV_FLAGS_2_DISCARD_38_SIZE 1
+#define CP_NV_FLAGS_2_END_RCVD_38_SIZE 1
+#define CP_NV_FLAGS_2_DISCARD_39_SIZE 1
+#define CP_NV_FLAGS_2_END_RCVD_39_SIZE 1
+#define CP_NV_FLAGS_2_DISCARD_40_SIZE 1
+#define CP_NV_FLAGS_2_END_RCVD_40_SIZE 1
+#define CP_NV_FLAGS_2_DISCARD_41_SIZE 1
+#define CP_NV_FLAGS_2_END_RCVD_41_SIZE 1
+#define CP_NV_FLAGS_2_DISCARD_42_SIZE 1
+#define CP_NV_FLAGS_2_END_RCVD_42_SIZE 1
+#define CP_NV_FLAGS_2_DISCARD_43_SIZE 1
+#define CP_NV_FLAGS_2_END_RCVD_43_SIZE 1
+#define CP_NV_FLAGS_2_DISCARD_44_SIZE 1
+#define CP_NV_FLAGS_2_END_RCVD_44_SIZE 1
+#define CP_NV_FLAGS_2_DISCARD_45_SIZE 1
+#define CP_NV_FLAGS_2_END_RCVD_45_SIZE 1
+#define CP_NV_FLAGS_2_DISCARD_46_SIZE 1
+#define CP_NV_FLAGS_2_END_RCVD_46_SIZE 1
+#define CP_NV_FLAGS_2_DISCARD_47_SIZE 1
+#define CP_NV_FLAGS_2_END_RCVD_47_SIZE 1
+
+#define CP_NV_FLAGS_2_DISCARD_32_SHIFT 0
+#define CP_NV_FLAGS_2_END_RCVD_32_SHIFT 1
+#define CP_NV_FLAGS_2_DISCARD_33_SHIFT 2
+#define CP_NV_FLAGS_2_END_RCVD_33_SHIFT 3
+#define CP_NV_FLAGS_2_DISCARD_34_SHIFT 4
+#define CP_NV_FLAGS_2_END_RCVD_34_SHIFT 5
+#define CP_NV_FLAGS_2_DISCARD_35_SHIFT 6
+#define CP_NV_FLAGS_2_END_RCVD_35_SHIFT 7
+#define CP_NV_FLAGS_2_DISCARD_36_SHIFT 8
+#define CP_NV_FLAGS_2_END_RCVD_36_SHIFT 9
+#define CP_NV_FLAGS_2_DISCARD_37_SHIFT 10
+#define CP_NV_FLAGS_2_END_RCVD_37_SHIFT 11
+#define CP_NV_FLAGS_2_DISCARD_38_SHIFT 12
+#define CP_NV_FLAGS_2_END_RCVD_38_SHIFT 13
+#define CP_NV_FLAGS_2_DISCARD_39_SHIFT 14
+#define CP_NV_FLAGS_2_END_RCVD_39_SHIFT 15
+#define CP_NV_FLAGS_2_DISCARD_40_SHIFT 16
+#define CP_NV_FLAGS_2_END_RCVD_40_SHIFT 17
+#define CP_NV_FLAGS_2_DISCARD_41_SHIFT 18
+#define CP_NV_FLAGS_2_END_RCVD_41_SHIFT 19
+#define CP_NV_FLAGS_2_DISCARD_42_SHIFT 20
+#define CP_NV_FLAGS_2_END_RCVD_42_SHIFT 21
+#define CP_NV_FLAGS_2_DISCARD_43_SHIFT 22
+#define CP_NV_FLAGS_2_END_RCVD_43_SHIFT 23
+#define CP_NV_FLAGS_2_DISCARD_44_SHIFT 24
+#define CP_NV_FLAGS_2_END_RCVD_44_SHIFT 25
+#define CP_NV_FLAGS_2_DISCARD_45_SHIFT 26
+#define CP_NV_FLAGS_2_END_RCVD_45_SHIFT 27
+#define CP_NV_FLAGS_2_DISCARD_46_SHIFT 28
+#define CP_NV_FLAGS_2_END_RCVD_46_SHIFT 29
+#define CP_NV_FLAGS_2_DISCARD_47_SHIFT 30
+#define CP_NV_FLAGS_2_END_RCVD_47_SHIFT 31
+
+#define CP_NV_FLAGS_2_DISCARD_32_MASK 0x00000001
+#define CP_NV_FLAGS_2_END_RCVD_32_MASK 0x00000002
+#define CP_NV_FLAGS_2_DISCARD_33_MASK 0x00000004
+#define CP_NV_FLAGS_2_END_RCVD_33_MASK 0x00000008
+#define CP_NV_FLAGS_2_DISCARD_34_MASK 0x00000010
+#define CP_NV_FLAGS_2_END_RCVD_34_MASK 0x00000020
+#define CP_NV_FLAGS_2_DISCARD_35_MASK 0x00000040
+#define CP_NV_FLAGS_2_END_RCVD_35_MASK 0x00000080
+#define CP_NV_FLAGS_2_DISCARD_36_MASK 0x00000100
+#define CP_NV_FLAGS_2_END_RCVD_36_MASK 0x00000200
+#define CP_NV_FLAGS_2_DISCARD_37_MASK 0x00000400
+#define CP_NV_FLAGS_2_END_RCVD_37_MASK 0x00000800
+#define CP_NV_FLAGS_2_DISCARD_38_MASK 0x00001000
+#define CP_NV_FLAGS_2_END_RCVD_38_MASK 0x00002000
+#define CP_NV_FLAGS_2_DISCARD_39_MASK 0x00004000
+#define CP_NV_FLAGS_2_END_RCVD_39_MASK 0x00008000
+#define CP_NV_FLAGS_2_DISCARD_40_MASK 0x00010000
+#define CP_NV_FLAGS_2_END_RCVD_40_MASK 0x00020000
+#define CP_NV_FLAGS_2_DISCARD_41_MASK 0x00040000
+#define CP_NV_FLAGS_2_END_RCVD_41_MASK 0x00080000
+#define CP_NV_FLAGS_2_DISCARD_42_MASK 0x00100000
+#define CP_NV_FLAGS_2_END_RCVD_42_MASK 0x00200000
+#define CP_NV_FLAGS_2_DISCARD_43_MASK 0x00400000
+#define CP_NV_FLAGS_2_END_RCVD_43_MASK 0x00800000
+#define CP_NV_FLAGS_2_DISCARD_44_MASK 0x01000000
+#define CP_NV_FLAGS_2_END_RCVD_44_MASK 0x02000000
+#define CP_NV_FLAGS_2_DISCARD_45_MASK 0x04000000
+#define CP_NV_FLAGS_2_END_RCVD_45_MASK 0x08000000
+#define CP_NV_FLAGS_2_DISCARD_46_MASK 0x10000000
+#define CP_NV_FLAGS_2_END_RCVD_46_MASK 0x20000000
+#define CP_NV_FLAGS_2_DISCARD_47_MASK 0x40000000
+#define CP_NV_FLAGS_2_END_RCVD_47_MASK 0x80000000
+
+#define CP_NV_FLAGS_2_MASK \
+ (CP_NV_FLAGS_2_DISCARD_32_MASK | \
+ CP_NV_FLAGS_2_END_RCVD_32_MASK | \
+ CP_NV_FLAGS_2_DISCARD_33_MASK | \
+ CP_NV_FLAGS_2_END_RCVD_33_MASK | \
+ CP_NV_FLAGS_2_DISCARD_34_MASK | \
+ CP_NV_FLAGS_2_END_RCVD_34_MASK | \
+ CP_NV_FLAGS_2_DISCARD_35_MASK | \
+ CP_NV_FLAGS_2_END_RCVD_35_MASK | \
+ CP_NV_FLAGS_2_DISCARD_36_MASK | \
+ CP_NV_FLAGS_2_END_RCVD_36_MASK | \
+ CP_NV_FLAGS_2_DISCARD_37_MASK | \
+ CP_NV_FLAGS_2_END_RCVD_37_MASK | \
+ CP_NV_FLAGS_2_DISCARD_38_MASK | \
+ CP_NV_FLAGS_2_END_RCVD_38_MASK | \
+ CP_NV_FLAGS_2_DISCARD_39_MASK | \
+ CP_NV_FLAGS_2_END_RCVD_39_MASK | \
+ CP_NV_FLAGS_2_DISCARD_40_MASK | \
+ CP_NV_FLAGS_2_END_RCVD_40_MASK | \
+ CP_NV_FLAGS_2_DISCARD_41_MASK | \
+ CP_NV_FLAGS_2_END_RCVD_41_MASK | \
+ CP_NV_FLAGS_2_DISCARD_42_MASK | \
+ CP_NV_FLAGS_2_END_RCVD_42_MASK | \
+ CP_NV_FLAGS_2_DISCARD_43_MASK | \
+ CP_NV_FLAGS_2_END_RCVD_43_MASK | \
+ CP_NV_FLAGS_2_DISCARD_44_MASK | \
+ CP_NV_FLAGS_2_END_RCVD_44_MASK | \
+ CP_NV_FLAGS_2_DISCARD_45_MASK | \
+ CP_NV_FLAGS_2_END_RCVD_45_MASK | \
+ CP_NV_FLAGS_2_DISCARD_46_MASK | \
+ CP_NV_FLAGS_2_END_RCVD_46_MASK | \
+ CP_NV_FLAGS_2_DISCARD_47_MASK | \
+ CP_NV_FLAGS_2_END_RCVD_47_MASK)
+
+#define CP_NV_FLAGS_2(discard_32, end_rcvd_32, discard_33, end_rcvd_33, discard_34, end_rcvd_34, discard_35, end_rcvd_35, discard_36, end_rcvd_36, discard_37, end_rcvd_37, discard_38, end_rcvd_38, discard_39, end_rcvd_39, discard_40, end_rcvd_40, discard_41, end_rcvd_41, discard_42, end_rcvd_42, discard_43, end_rcvd_43, discard_44, end_rcvd_44, discard_45, end_rcvd_45, discard_46, end_rcvd_46, discard_47, end_rcvd_47) \
+ ((discard_32 << CP_NV_FLAGS_2_DISCARD_32_SHIFT) | \
+ (end_rcvd_32 << CP_NV_FLAGS_2_END_RCVD_32_SHIFT) | \
+ (discard_33 << CP_NV_FLAGS_2_DISCARD_33_SHIFT) | \
+ (end_rcvd_33 << CP_NV_FLAGS_2_END_RCVD_33_SHIFT) | \
+ (discard_34 << CP_NV_FLAGS_2_DISCARD_34_SHIFT) | \
+ (end_rcvd_34 << CP_NV_FLAGS_2_END_RCVD_34_SHIFT) | \
+ (discard_35 << CP_NV_FLAGS_2_DISCARD_35_SHIFT) | \
+ (end_rcvd_35 << CP_NV_FLAGS_2_END_RCVD_35_SHIFT) | \
+ (discard_36 << CP_NV_FLAGS_2_DISCARD_36_SHIFT) | \
+ (end_rcvd_36 << CP_NV_FLAGS_2_END_RCVD_36_SHIFT) | \
+ (discard_37 << CP_NV_FLAGS_2_DISCARD_37_SHIFT) | \
+ (end_rcvd_37 << CP_NV_FLAGS_2_END_RCVD_37_SHIFT) | \
+ (discard_38 << CP_NV_FLAGS_2_DISCARD_38_SHIFT) | \
+ (end_rcvd_38 << CP_NV_FLAGS_2_END_RCVD_38_SHIFT) | \
+ (discard_39 << CP_NV_FLAGS_2_DISCARD_39_SHIFT) | \
+ (end_rcvd_39 << CP_NV_FLAGS_2_END_RCVD_39_SHIFT) | \
+ (discard_40 << CP_NV_FLAGS_2_DISCARD_40_SHIFT) | \
+ (end_rcvd_40 << CP_NV_FLAGS_2_END_RCVD_40_SHIFT) | \
+ (discard_41 << CP_NV_FLAGS_2_DISCARD_41_SHIFT) | \
+ (end_rcvd_41 << CP_NV_FLAGS_2_END_RCVD_41_SHIFT) | \
+ (discard_42 << CP_NV_FLAGS_2_DISCARD_42_SHIFT) | \
+ (end_rcvd_42 << CP_NV_FLAGS_2_END_RCVD_42_SHIFT) | \
+ (discard_43 << CP_NV_FLAGS_2_DISCARD_43_SHIFT) | \
+ (end_rcvd_43 << CP_NV_FLAGS_2_END_RCVD_43_SHIFT) | \
+ (discard_44 << CP_NV_FLAGS_2_DISCARD_44_SHIFT) | \
+ (end_rcvd_44 << CP_NV_FLAGS_2_END_RCVD_44_SHIFT) | \
+ (discard_45 << CP_NV_FLAGS_2_DISCARD_45_SHIFT) | \
+ (end_rcvd_45 << CP_NV_FLAGS_2_END_RCVD_45_SHIFT) | \
+ (discard_46 << CP_NV_FLAGS_2_DISCARD_46_SHIFT) | \
+ (end_rcvd_46 << CP_NV_FLAGS_2_END_RCVD_46_SHIFT) | \
+ (discard_47 << CP_NV_FLAGS_2_DISCARD_47_SHIFT) | \
+ (end_rcvd_47 << CP_NV_FLAGS_2_END_RCVD_47_SHIFT))
+
+#define CP_NV_FLAGS_2_GET_DISCARD_32(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_DISCARD_32_MASK) >> CP_NV_FLAGS_2_DISCARD_32_SHIFT)
+#define CP_NV_FLAGS_2_GET_END_RCVD_32(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_END_RCVD_32_MASK) >> CP_NV_FLAGS_2_END_RCVD_32_SHIFT)
+#define CP_NV_FLAGS_2_GET_DISCARD_33(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_DISCARD_33_MASK) >> CP_NV_FLAGS_2_DISCARD_33_SHIFT)
+#define CP_NV_FLAGS_2_GET_END_RCVD_33(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_END_RCVD_33_MASK) >> CP_NV_FLAGS_2_END_RCVD_33_SHIFT)
+#define CP_NV_FLAGS_2_GET_DISCARD_34(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_DISCARD_34_MASK) >> CP_NV_FLAGS_2_DISCARD_34_SHIFT)
+#define CP_NV_FLAGS_2_GET_END_RCVD_34(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_END_RCVD_34_MASK) >> CP_NV_FLAGS_2_END_RCVD_34_SHIFT)
+#define CP_NV_FLAGS_2_GET_DISCARD_35(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_DISCARD_35_MASK) >> CP_NV_FLAGS_2_DISCARD_35_SHIFT)
+#define CP_NV_FLAGS_2_GET_END_RCVD_35(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_END_RCVD_35_MASK) >> CP_NV_FLAGS_2_END_RCVD_35_SHIFT)
+#define CP_NV_FLAGS_2_GET_DISCARD_36(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_DISCARD_36_MASK) >> CP_NV_FLAGS_2_DISCARD_36_SHIFT)
+#define CP_NV_FLAGS_2_GET_END_RCVD_36(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_END_RCVD_36_MASK) >> CP_NV_FLAGS_2_END_RCVD_36_SHIFT)
+#define CP_NV_FLAGS_2_GET_DISCARD_37(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_DISCARD_37_MASK) >> CP_NV_FLAGS_2_DISCARD_37_SHIFT)
+#define CP_NV_FLAGS_2_GET_END_RCVD_37(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_END_RCVD_37_MASK) >> CP_NV_FLAGS_2_END_RCVD_37_SHIFT)
+#define CP_NV_FLAGS_2_GET_DISCARD_38(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_DISCARD_38_MASK) >> CP_NV_FLAGS_2_DISCARD_38_SHIFT)
+#define CP_NV_FLAGS_2_GET_END_RCVD_38(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_END_RCVD_38_MASK) >> CP_NV_FLAGS_2_END_RCVD_38_SHIFT)
+#define CP_NV_FLAGS_2_GET_DISCARD_39(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_DISCARD_39_MASK) >> CP_NV_FLAGS_2_DISCARD_39_SHIFT)
+#define CP_NV_FLAGS_2_GET_END_RCVD_39(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_END_RCVD_39_MASK) >> CP_NV_FLAGS_2_END_RCVD_39_SHIFT)
+#define CP_NV_FLAGS_2_GET_DISCARD_40(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_DISCARD_40_MASK) >> CP_NV_FLAGS_2_DISCARD_40_SHIFT)
+#define CP_NV_FLAGS_2_GET_END_RCVD_40(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_END_RCVD_40_MASK) >> CP_NV_FLAGS_2_END_RCVD_40_SHIFT)
+#define CP_NV_FLAGS_2_GET_DISCARD_41(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_DISCARD_41_MASK) >> CP_NV_FLAGS_2_DISCARD_41_SHIFT)
+#define CP_NV_FLAGS_2_GET_END_RCVD_41(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_END_RCVD_41_MASK) >> CP_NV_FLAGS_2_END_RCVD_41_SHIFT)
+#define CP_NV_FLAGS_2_GET_DISCARD_42(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_DISCARD_42_MASK) >> CP_NV_FLAGS_2_DISCARD_42_SHIFT)
+#define CP_NV_FLAGS_2_GET_END_RCVD_42(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_END_RCVD_42_MASK) >> CP_NV_FLAGS_2_END_RCVD_42_SHIFT)
+#define CP_NV_FLAGS_2_GET_DISCARD_43(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_DISCARD_43_MASK) >> CP_NV_FLAGS_2_DISCARD_43_SHIFT)
+#define CP_NV_FLAGS_2_GET_END_RCVD_43(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_END_RCVD_43_MASK) >> CP_NV_FLAGS_2_END_RCVD_43_SHIFT)
+#define CP_NV_FLAGS_2_GET_DISCARD_44(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_DISCARD_44_MASK) >> CP_NV_FLAGS_2_DISCARD_44_SHIFT)
+#define CP_NV_FLAGS_2_GET_END_RCVD_44(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_END_RCVD_44_MASK) >> CP_NV_FLAGS_2_END_RCVD_44_SHIFT)
+#define CP_NV_FLAGS_2_GET_DISCARD_45(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_DISCARD_45_MASK) >> CP_NV_FLAGS_2_DISCARD_45_SHIFT)
+#define CP_NV_FLAGS_2_GET_END_RCVD_45(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_END_RCVD_45_MASK) >> CP_NV_FLAGS_2_END_RCVD_45_SHIFT)
+#define CP_NV_FLAGS_2_GET_DISCARD_46(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_DISCARD_46_MASK) >> CP_NV_FLAGS_2_DISCARD_46_SHIFT)
+#define CP_NV_FLAGS_2_GET_END_RCVD_46(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_END_RCVD_46_MASK) >> CP_NV_FLAGS_2_END_RCVD_46_SHIFT)
+#define CP_NV_FLAGS_2_GET_DISCARD_47(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_DISCARD_47_MASK) >> CP_NV_FLAGS_2_DISCARD_47_SHIFT)
+#define CP_NV_FLAGS_2_GET_END_RCVD_47(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_END_RCVD_47_MASK) >> CP_NV_FLAGS_2_END_RCVD_47_SHIFT)
+
+#define CP_NV_FLAGS_2_SET_DISCARD_32(cp_nv_flags_2_reg, discard_32) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_DISCARD_32_MASK) | (discard_32 << CP_NV_FLAGS_2_DISCARD_32_SHIFT)
+#define CP_NV_FLAGS_2_SET_END_RCVD_32(cp_nv_flags_2_reg, end_rcvd_32) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_END_RCVD_32_MASK) | (end_rcvd_32 << CP_NV_FLAGS_2_END_RCVD_32_SHIFT)
+#define CP_NV_FLAGS_2_SET_DISCARD_33(cp_nv_flags_2_reg, discard_33) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_DISCARD_33_MASK) | (discard_33 << CP_NV_FLAGS_2_DISCARD_33_SHIFT)
+#define CP_NV_FLAGS_2_SET_END_RCVD_33(cp_nv_flags_2_reg, end_rcvd_33) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_END_RCVD_33_MASK) | (end_rcvd_33 << CP_NV_FLAGS_2_END_RCVD_33_SHIFT)
+#define CP_NV_FLAGS_2_SET_DISCARD_34(cp_nv_flags_2_reg, discard_34) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_DISCARD_34_MASK) | (discard_34 << CP_NV_FLAGS_2_DISCARD_34_SHIFT)
+#define CP_NV_FLAGS_2_SET_END_RCVD_34(cp_nv_flags_2_reg, end_rcvd_34) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_END_RCVD_34_MASK) | (end_rcvd_34 << CP_NV_FLAGS_2_END_RCVD_34_SHIFT)
+#define CP_NV_FLAGS_2_SET_DISCARD_35(cp_nv_flags_2_reg, discard_35) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_DISCARD_35_MASK) | (discard_35 << CP_NV_FLAGS_2_DISCARD_35_SHIFT)
+#define CP_NV_FLAGS_2_SET_END_RCVD_35(cp_nv_flags_2_reg, end_rcvd_35) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_END_RCVD_35_MASK) | (end_rcvd_35 << CP_NV_FLAGS_2_END_RCVD_35_SHIFT)
+#define CP_NV_FLAGS_2_SET_DISCARD_36(cp_nv_flags_2_reg, discard_36) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_DISCARD_36_MASK) | (discard_36 << CP_NV_FLAGS_2_DISCARD_36_SHIFT)
+#define CP_NV_FLAGS_2_SET_END_RCVD_36(cp_nv_flags_2_reg, end_rcvd_36) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_END_RCVD_36_MASK) | (end_rcvd_36 << CP_NV_FLAGS_2_END_RCVD_36_SHIFT)
+#define CP_NV_FLAGS_2_SET_DISCARD_37(cp_nv_flags_2_reg, discard_37) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_DISCARD_37_MASK) | (discard_37 << CP_NV_FLAGS_2_DISCARD_37_SHIFT)
+#define CP_NV_FLAGS_2_SET_END_RCVD_37(cp_nv_flags_2_reg, end_rcvd_37) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_END_RCVD_37_MASK) | (end_rcvd_37 << CP_NV_FLAGS_2_END_RCVD_37_SHIFT)
+#define CP_NV_FLAGS_2_SET_DISCARD_38(cp_nv_flags_2_reg, discard_38) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_DISCARD_38_MASK) | (discard_38 << CP_NV_FLAGS_2_DISCARD_38_SHIFT)
+#define CP_NV_FLAGS_2_SET_END_RCVD_38(cp_nv_flags_2_reg, end_rcvd_38) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_END_RCVD_38_MASK) | (end_rcvd_38 << CP_NV_FLAGS_2_END_RCVD_38_SHIFT)
+#define CP_NV_FLAGS_2_SET_DISCARD_39(cp_nv_flags_2_reg, discard_39) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_DISCARD_39_MASK) | (discard_39 << CP_NV_FLAGS_2_DISCARD_39_SHIFT)
+#define CP_NV_FLAGS_2_SET_END_RCVD_39(cp_nv_flags_2_reg, end_rcvd_39) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_END_RCVD_39_MASK) | (end_rcvd_39 << CP_NV_FLAGS_2_END_RCVD_39_SHIFT)
+#define CP_NV_FLAGS_2_SET_DISCARD_40(cp_nv_flags_2_reg, discard_40) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_DISCARD_40_MASK) | (discard_40 << CP_NV_FLAGS_2_DISCARD_40_SHIFT)
+#define CP_NV_FLAGS_2_SET_END_RCVD_40(cp_nv_flags_2_reg, end_rcvd_40) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_END_RCVD_40_MASK) | (end_rcvd_40 << CP_NV_FLAGS_2_END_RCVD_40_SHIFT)
+#define CP_NV_FLAGS_2_SET_DISCARD_41(cp_nv_flags_2_reg, discard_41) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_DISCARD_41_MASK) | (discard_41 << CP_NV_FLAGS_2_DISCARD_41_SHIFT)
+#define CP_NV_FLAGS_2_SET_END_RCVD_41(cp_nv_flags_2_reg, end_rcvd_41) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_END_RCVD_41_MASK) | (end_rcvd_41 << CP_NV_FLAGS_2_END_RCVD_41_SHIFT)
+#define CP_NV_FLAGS_2_SET_DISCARD_42(cp_nv_flags_2_reg, discard_42) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_DISCARD_42_MASK) | (discard_42 << CP_NV_FLAGS_2_DISCARD_42_SHIFT)
+#define CP_NV_FLAGS_2_SET_END_RCVD_42(cp_nv_flags_2_reg, end_rcvd_42) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_END_RCVD_42_MASK) | (end_rcvd_42 << CP_NV_FLAGS_2_END_RCVD_42_SHIFT)
+#define CP_NV_FLAGS_2_SET_DISCARD_43(cp_nv_flags_2_reg, discard_43) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_DISCARD_43_MASK) | (discard_43 << CP_NV_FLAGS_2_DISCARD_43_SHIFT)
+#define CP_NV_FLAGS_2_SET_END_RCVD_43(cp_nv_flags_2_reg, end_rcvd_43) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_END_RCVD_43_MASK) | (end_rcvd_43 << CP_NV_FLAGS_2_END_RCVD_43_SHIFT)
+#define CP_NV_FLAGS_2_SET_DISCARD_44(cp_nv_flags_2_reg, discard_44) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_DISCARD_44_MASK) | (discard_44 << CP_NV_FLAGS_2_DISCARD_44_SHIFT)
+#define CP_NV_FLAGS_2_SET_END_RCVD_44(cp_nv_flags_2_reg, end_rcvd_44) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_END_RCVD_44_MASK) | (end_rcvd_44 << CP_NV_FLAGS_2_END_RCVD_44_SHIFT)
+#define CP_NV_FLAGS_2_SET_DISCARD_45(cp_nv_flags_2_reg, discard_45) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_DISCARD_45_MASK) | (discard_45 << CP_NV_FLAGS_2_DISCARD_45_SHIFT)
+#define CP_NV_FLAGS_2_SET_END_RCVD_45(cp_nv_flags_2_reg, end_rcvd_45) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_END_RCVD_45_MASK) | (end_rcvd_45 << CP_NV_FLAGS_2_END_RCVD_45_SHIFT)
+#define CP_NV_FLAGS_2_SET_DISCARD_46(cp_nv_flags_2_reg, discard_46) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_DISCARD_46_MASK) | (discard_46 << CP_NV_FLAGS_2_DISCARD_46_SHIFT)
+#define CP_NV_FLAGS_2_SET_END_RCVD_46(cp_nv_flags_2_reg, end_rcvd_46) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_END_RCVD_46_MASK) | (end_rcvd_46 << CP_NV_FLAGS_2_END_RCVD_46_SHIFT)
+#define CP_NV_FLAGS_2_SET_DISCARD_47(cp_nv_flags_2_reg, discard_47) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_DISCARD_47_MASK) | (discard_47 << CP_NV_FLAGS_2_DISCARD_47_SHIFT)
+#define CP_NV_FLAGS_2_SET_END_RCVD_47(cp_nv_flags_2_reg, end_rcvd_47) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_END_RCVD_47_MASK) | (end_rcvd_47 << CP_NV_FLAGS_2_END_RCVD_47_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_nv_flags_2_t {
+ unsigned int discard_32 : CP_NV_FLAGS_2_DISCARD_32_SIZE;
+ unsigned int end_rcvd_32 : CP_NV_FLAGS_2_END_RCVD_32_SIZE;
+ unsigned int discard_33 : CP_NV_FLAGS_2_DISCARD_33_SIZE;
+ unsigned int end_rcvd_33 : CP_NV_FLAGS_2_END_RCVD_33_SIZE;
+ unsigned int discard_34 : CP_NV_FLAGS_2_DISCARD_34_SIZE;
+ unsigned int end_rcvd_34 : CP_NV_FLAGS_2_END_RCVD_34_SIZE;
+ unsigned int discard_35 : CP_NV_FLAGS_2_DISCARD_35_SIZE;
+ unsigned int end_rcvd_35 : CP_NV_FLAGS_2_END_RCVD_35_SIZE;
+ unsigned int discard_36 : CP_NV_FLAGS_2_DISCARD_36_SIZE;
+ unsigned int end_rcvd_36 : CP_NV_FLAGS_2_END_RCVD_36_SIZE;
+ unsigned int discard_37 : CP_NV_FLAGS_2_DISCARD_37_SIZE;
+ unsigned int end_rcvd_37 : CP_NV_FLAGS_2_END_RCVD_37_SIZE;
+ unsigned int discard_38 : CP_NV_FLAGS_2_DISCARD_38_SIZE;
+ unsigned int end_rcvd_38 : CP_NV_FLAGS_2_END_RCVD_38_SIZE;
+ unsigned int discard_39 : CP_NV_FLAGS_2_DISCARD_39_SIZE;
+ unsigned int end_rcvd_39 : CP_NV_FLAGS_2_END_RCVD_39_SIZE;
+ unsigned int discard_40 : CP_NV_FLAGS_2_DISCARD_40_SIZE;
+ unsigned int end_rcvd_40 : CP_NV_FLAGS_2_END_RCVD_40_SIZE;
+ unsigned int discard_41 : CP_NV_FLAGS_2_DISCARD_41_SIZE;
+ unsigned int end_rcvd_41 : CP_NV_FLAGS_2_END_RCVD_41_SIZE;
+ unsigned int discard_42 : CP_NV_FLAGS_2_DISCARD_42_SIZE;
+ unsigned int end_rcvd_42 : CP_NV_FLAGS_2_END_RCVD_42_SIZE;
+ unsigned int discard_43 : CP_NV_FLAGS_2_DISCARD_43_SIZE;
+ unsigned int end_rcvd_43 : CP_NV_FLAGS_2_END_RCVD_43_SIZE;
+ unsigned int discard_44 : CP_NV_FLAGS_2_DISCARD_44_SIZE;
+ unsigned int end_rcvd_44 : CP_NV_FLAGS_2_END_RCVD_44_SIZE;
+ unsigned int discard_45 : CP_NV_FLAGS_2_DISCARD_45_SIZE;
+ unsigned int end_rcvd_45 : CP_NV_FLAGS_2_END_RCVD_45_SIZE;
+ unsigned int discard_46 : CP_NV_FLAGS_2_DISCARD_46_SIZE;
+ unsigned int end_rcvd_46 : CP_NV_FLAGS_2_END_RCVD_46_SIZE;
+ unsigned int discard_47 : CP_NV_FLAGS_2_DISCARD_47_SIZE;
+ unsigned int end_rcvd_47 : CP_NV_FLAGS_2_END_RCVD_47_SIZE;
+ } cp_nv_flags_2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_nv_flags_2_t {
+ unsigned int end_rcvd_47 : CP_NV_FLAGS_2_END_RCVD_47_SIZE;
+ unsigned int discard_47 : CP_NV_FLAGS_2_DISCARD_47_SIZE;
+ unsigned int end_rcvd_46 : CP_NV_FLAGS_2_END_RCVD_46_SIZE;
+ unsigned int discard_46 : CP_NV_FLAGS_2_DISCARD_46_SIZE;
+ unsigned int end_rcvd_45 : CP_NV_FLAGS_2_END_RCVD_45_SIZE;
+ unsigned int discard_45 : CP_NV_FLAGS_2_DISCARD_45_SIZE;
+ unsigned int end_rcvd_44 : CP_NV_FLAGS_2_END_RCVD_44_SIZE;
+ unsigned int discard_44 : CP_NV_FLAGS_2_DISCARD_44_SIZE;
+ unsigned int end_rcvd_43 : CP_NV_FLAGS_2_END_RCVD_43_SIZE;
+ unsigned int discard_43 : CP_NV_FLAGS_2_DISCARD_43_SIZE;
+ unsigned int end_rcvd_42 : CP_NV_FLAGS_2_END_RCVD_42_SIZE;
+ unsigned int discard_42 : CP_NV_FLAGS_2_DISCARD_42_SIZE;
+ unsigned int end_rcvd_41 : CP_NV_FLAGS_2_END_RCVD_41_SIZE;
+ unsigned int discard_41 : CP_NV_FLAGS_2_DISCARD_41_SIZE;
+ unsigned int end_rcvd_40 : CP_NV_FLAGS_2_END_RCVD_40_SIZE;
+ unsigned int discard_40 : CP_NV_FLAGS_2_DISCARD_40_SIZE;
+ unsigned int end_rcvd_39 : CP_NV_FLAGS_2_END_RCVD_39_SIZE;
+ unsigned int discard_39 : CP_NV_FLAGS_2_DISCARD_39_SIZE;
+ unsigned int end_rcvd_38 : CP_NV_FLAGS_2_END_RCVD_38_SIZE;
+ unsigned int discard_38 : CP_NV_FLAGS_2_DISCARD_38_SIZE;
+ unsigned int end_rcvd_37 : CP_NV_FLAGS_2_END_RCVD_37_SIZE;
+ unsigned int discard_37 : CP_NV_FLAGS_2_DISCARD_37_SIZE;
+ unsigned int end_rcvd_36 : CP_NV_FLAGS_2_END_RCVD_36_SIZE;
+ unsigned int discard_36 : CP_NV_FLAGS_2_DISCARD_36_SIZE;
+ unsigned int end_rcvd_35 : CP_NV_FLAGS_2_END_RCVD_35_SIZE;
+ unsigned int discard_35 : CP_NV_FLAGS_2_DISCARD_35_SIZE;
+ unsigned int end_rcvd_34 : CP_NV_FLAGS_2_END_RCVD_34_SIZE;
+ unsigned int discard_34 : CP_NV_FLAGS_2_DISCARD_34_SIZE;
+ unsigned int end_rcvd_33 : CP_NV_FLAGS_2_END_RCVD_33_SIZE;
+ unsigned int discard_33 : CP_NV_FLAGS_2_DISCARD_33_SIZE;
+ unsigned int end_rcvd_32 : CP_NV_FLAGS_2_END_RCVD_32_SIZE;
+ unsigned int discard_32 : CP_NV_FLAGS_2_DISCARD_32_SIZE;
+ } cp_nv_flags_2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_nv_flags_2_t f;
+} cp_nv_flags_2_u;
+
+
+/*
+ * CP_NV_FLAGS_3 struct
+ */
+
+#define CP_NV_FLAGS_3_DISCARD_48_SIZE 1
+#define CP_NV_FLAGS_3_END_RCVD_48_SIZE 1
+#define CP_NV_FLAGS_3_DISCARD_49_SIZE 1
+#define CP_NV_FLAGS_3_END_RCVD_49_SIZE 1
+#define CP_NV_FLAGS_3_DISCARD_50_SIZE 1
+#define CP_NV_FLAGS_3_END_RCVD_50_SIZE 1
+#define CP_NV_FLAGS_3_DISCARD_51_SIZE 1
+#define CP_NV_FLAGS_3_END_RCVD_51_SIZE 1
+#define CP_NV_FLAGS_3_DISCARD_52_SIZE 1
+#define CP_NV_FLAGS_3_END_RCVD_52_SIZE 1
+#define CP_NV_FLAGS_3_DISCARD_53_SIZE 1
+#define CP_NV_FLAGS_3_END_RCVD_53_SIZE 1
+#define CP_NV_FLAGS_3_DISCARD_54_SIZE 1
+#define CP_NV_FLAGS_3_END_RCVD_54_SIZE 1
+#define CP_NV_FLAGS_3_DISCARD_55_SIZE 1
+#define CP_NV_FLAGS_3_END_RCVD_55_SIZE 1
+#define CP_NV_FLAGS_3_DISCARD_56_SIZE 1
+#define CP_NV_FLAGS_3_END_RCVD_56_SIZE 1
+#define CP_NV_FLAGS_3_DISCARD_57_SIZE 1
+#define CP_NV_FLAGS_3_END_RCVD_57_SIZE 1
+#define CP_NV_FLAGS_3_DISCARD_58_SIZE 1
+#define CP_NV_FLAGS_3_END_RCVD_58_SIZE 1
+#define CP_NV_FLAGS_3_DISCARD_59_SIZE 1
+#define CP_NV_FLAGS_3_END_RCVD_59_SIZE 1
+#define CP_NV_FLAGS_3_DISCARD_60_SIZE 1
+#define CP_NV_FLAGS_3_END_RCVD_60_SIZE 1
+#define CP_NV_FLAGS_3_DISCARD_61_SIZE 1
+#define CP_NV_FLAGS_3_END_RCVD_61_SIZE 1
+#define CP_NV_FLAGS_3_DISCARD_62_SIZE 1
+#define CP_NV_FLAGS_3_END_RCVD_62_SIZE 1
+#define CP_NV_FLAGS_3_DISCARD_63_SIZE 1
+#define CP_NV_FLAGS_3_END_RCVD_63_SIZE 1
+
+#define CP_NV_FLAGS_3_DISCARD_48_SHIFT 0
+#define CP_NV_FLAGS_3_END_RCVD_48_SHIFT 1
+#define CP_NV_FLAGS_3_DISCARD_49_SHIFT 2
+#define CP_NV_FLAGS_3_END_RCVD_49_SHIFT 3
+#define CP_NV_FLAGS_3_DISCARD_50_SHIFT 4
+#define CP_NV_FLAGS_3_END_RCVD_50_SHIFT 5
+#define CP_NV_FLAGS_3_DISCARD_51_SHIFT 6
+#define CP_NV_FLAGS_3_END_RCVD_51_SHIFT 7
+#define CP_NV_FLAGS_3_DISCARD_52_SHIFT 8
+#define CP_NV_FLAGS_3_END_RCVD_52_SHIFT 9
+#define CP_NV_FLAGS_3_DISCARD_53_SHIFT 10
+#define CP_NV_FLAGS_3_END_RCVD_53_SHIFT 11
+#define CP_NV_FLAGS_3_DISCARD_54_SHIFT 12
+#define CP_NV_FLAGS_3_END_RCVD_54_SHIFT 13
+#define CP_NV_FLAGS_3_DISCARD_55_SHIFT 14
+#define CP_NV_FLAGS_3_END_RCVD_55_SHIFT 15
+#define CP_NV_FLAGS_3_DISCARD_56_SHIFT 16
+#define CP_NV_FLAGS_3_END_RCVD_56_SHIFT 17
+#define CP_NV_FLAGS_3_DISCARD_57_SHIFT 18
+#define CP_NV_FLAGS_3_END_RCVD_57_SHIFT 19
+#define CP_NV_FLAGS_3_DISCARD_58_SHIFT 20
+#define CP_NV_FLAGS_3_END_RCVD_58_SHIFT 21
+#define CP_NV_FLAGS_3_DISCARD_59_SHIFT 22
+#define CP_NV_FLAGS_3_END_RCVD_59_SHIFT 23
+#define CP_NV_FLAGS_3_DISCARD_60_SHIFT 24
+#define CP_NV_FLAGS_3_END_RCVD_60_SHIFT 25
+#define CP_NV_FLAGS_3_DISCARD_61_SHIFT 26
+#define CP_NV_FLAGS_3_END_RCVD_61_SHIFT 27
+#define CP_NV_FLAGS_3_DISCARD_62_SHIFT 28
+#define CP_NV_FLAGS_3_END_RCVD_62_SHIFT 29
+#define CP_NV_FLAGS_3_DISCARD_63_SHIFT 30
+#define CP_NV_FLAGS_3_END_RCVD_63_SHIFT 31
+
+#define CP_NV_FLAGS_3_DISCARD_48_MASK 0x00000001
+#define CP_NV_FLAGS_3_END_RCVD_48_MASK 0x00000002
+#define CP_NV_FLAGS_3_DISCARD_49_MASK 0x00000004
+#define CP_NV_FLAGS_3_END_RCVD_49_MASK 0x00000008
+#define CP_NV_FLAGS_3_DISCARD_50_MASK 0x00000010
+#define CP_NV_FLAGS_3_END_RCVD_50_MASK 0x00000020
+#define CP_NV_FLAGS_3_DISCARD_51_MASK 0x00000040
+#define CP_NV_FLAGS_3_END_RCVD_51_MASK 0x00000080
+#define CP_NV_FLAGS_3_DISCARD_52_MASK 0x00000100
+#define CP_NV_FLAGS_3_END_RCVD_52_MASK 0x00000200
+#define CP_NV_FLAGS_3_DISCARD_53_MASK 0x00000400
+#define CP_NV_FLAGS_3_END_RCVD_53_MASK 0x00000800
+#define CP_NV_FLAGS_3_DISCARD_54_MASK 0x00001000
+#define CP_NV_FLAGS_3_END_RCVD_54_MASK 0x00002000
+#define CP_NV_FLAGS_3_DISCARD_55_MASK 0x00004000
+#define CP_NV_FLAGS_3_END_RCVD_55_MASK 0x00008000
+#define CP_NV_FLAGS_3_DISCARD_56_MASK 0x00010000
+#define CP_NV_FLAGS_3_END_RCVD_56_MASK 0x00020000
+#define CP_NV_FLAGS_3_DISCARD_57_MASK 0x00040000
+#define CP_NV_FLAGS_3_END_RCVD_57_MASK 0x00080000
+#define CP_NV_FLAGS_3_DISCARD_58_MASK 0x00100000
+#define CP_NV_FLAGS_3_END_RCVD_58_MASK 0x00200000
+#define CP_NV_FLAGS_3_DISCARD_59_MASK 0x00400000
+#define CP_NV_FLAGS_3_END_RCVD_59_MASK 0x00800000
+#define CP_NV_FLAGS_3_DISCARD_60_MASK 0x01000000
+#define CP_NV_FLAGS_3_END_RCVD_60_MASK 0x02000000
+#define CP_NV_FLAGS_3_DISCARD_61_MASK 0x04000000
+#define CP_NV_FLAGS_3_END_RCVD_61_MASK 0x08000000
+#define CP_NV_FLAGS_3_DISCARD_62_MASK 0x10000000
+#define CP_NV_FLAGS_3_END_RCVD_62_MASK 0x20000000
+#define CP_NV_FLAGS_3_DISCARD_63_MASK 0x40000000
+#define CP_NV_FLAGS_3_END_RCVD_63_MASK 0x80000000
+
+#define CP_NV_FLAGS_3_MASK \
+ (CP_NV_FLAGS_3_DISCARD_48_MASK | \
+ CP_NV_FLAGS_3_END_RCVD_48_MASK | \
+ CP_NV_FLAGS_3_DISCARD_49_MASK | \
+ CP_NV_FLAGS_3_END_RCVD_49_MASK | \
+ CP_NV_FLAGS_3_DISCARD_50_MASK | \
+ CP_NV_FLAGS_3_END_RCVD_50_MASK | \
+ CP_NV_FLAGS_3_DISCARD_51_MASK | \
+ CP_NV_FLAGS_3_END_RCVD_51_MASK | \
+ CP_NV_FLAGS_3_DISCARD_52_MASK | \
+ CP_NV_FLAGS_3_END_RCVD_52_MASK | \
+ CP_NV_FLAGS_3_DISCARD_53_MASK | \
+ CP_NV_FLAGS_3_END_RCVD_53_MASK | \
+ CP_NV_FLAGS_3_DISCARD_54_MASK | \
+ CP_NV_FLAGS_3_END_RCVD_54_MASK | \
+ CP_NV_FLAGS_3_DISCARD_55_MASK | \
+ CP_NV_FLAGS_3_END_RCVD_55_MASK | \
+ CP_NV_FLAGS_3_DISCARD_56_MASK | \
+ CP_NV_FLAGS_3_END_RCVD_56_MASK | \
+ CP_NV_FLAGS_3_DISCARD_57_MASK | \
+ CP_NV_FLAGS_3_END_RCVD_57_MASK | \
+ CP_NV_FLAGS_3_DISCARD_58_MASK | \
+ CP_NV_FLAGS_3_END_RCVD_58_MASK | \
+ CP_NV_FLAGS_3_DISCARD_59_MASK | \
+ CP_NV_FLAGS_3_END_RCVD_59_MASK | \
+ CP_NV_FLAGS_3_DISCARD_60_MASK | \
+ CP_NV_FLAGS_3_END_RCVD_60_MASK | \
+ CP_NV_FLAGS_3_DISCARD_61_MASK | \
+ CP_NV_FLAGS_3_END_RCVD_61_MASK | \
+ CP_NV_FLAGS_3_DISCARD_62_MASK | \
+ CP_NV_FLAGS_3_END_RCVD_62_MASK | \
+ CP_NV_FLAGS_3_DISCARD_63_MASK | \
+ CP_NV_FLAGS_3_END_RCVD_63_MASK)
+
+#define CP_NV_FLAGS_3(discard_48, end_rcvd_48, discard_49, end_rcvd_49, discard_50, end_rcvd_50, discard_51, end_rcvd_51, discard_52, end_rcvd_52, discard_53, end_rcvd_53, discard_54, end_rcvd_54, discard_55, end_rcvd_55, discard_56, end_rcvd_56, discard_57, end_rcvd_57, discard_58, end_rcvd_58, discard_59, end_rcvd_59, discard_60, end_rcvd_60, discard_61, end_rcvd_61, discard_62, end_rcvd_62, discard_63, end_rcvd_63) \
+ ((discard_48 << CP_NV_FLAGS_3_DISCARD_48_SHIFT) | \
+ (end_rcvd_48 << CP_NV_FLAGS_3_END_RCVD_48_SHIFT) | \
+ (discard_49 << CP_NV_FLAGS_3_DISCARD_49_SHIFT) | \
+ (end_rcvd_49 << CP_NV_FLAGS_3_END_RCVD_49_SHIFT) | \
+ (discard_50 << CP_NV_FLAGS_3_DISCARD_50_SHIFT) | \
+ (end_rcvd_50 << CP_NV_FLAGS_3_END_RCVD_50_SHIFT) | \
+ (discard_51 << CP_NV_FLAGS_3_DISCARD_51_SHIFT) | \
+ (end_rcvd_51 << CP_NV_FLAGS_3_END_RCVD_51_SHIFT) | \
+ (discard_52 << CP_NV_FLAGS_3_DISCARD_52_SHIFT) | \
+ (end_rcvd_52 << CP_NV_FLAGS_3_END_RCVD_52_SHIFT) | \
+ (discard_53 << CP_NV_FLAGS_3_DISCARD_53_SHIFT) | \
+ (end_rcvd_53 << CP_NV_FLAGS_3_END_RCVD_53_SHIFT) | \
+ (discard_54 << CP_NV_FLAGS_3_DISCARD_54_SHIFT) | \
+ (end_rcvd_54 << CP_NV_FLAGS_3_END_RCVD_54_SHIFT) | \
+ (discard_55 << CP_NV_FLAGS_3_DISCARD_55_SHIFT) | \
+ (end_rcvd_55 << CP_NV_FLAGS_3_END_RCVD_55_SHIFT) | \
+ (discard_56 << CP_NV_FLAGS_3_DISCARD_56_SHIFT) | \
+ (end_rcvd_56 << CP_NV_FLAGS_3_END_RCVD_56_SHIFT) | \
+ (discard_57 << CP_NV_FLAGS_3_DISCARD_57_SHIFT) | \
+ (end_rcvd_57 << CP_NV_FLAGS_3_END_RCVD_57_SHIFT) | \
+ (discard_58 << CP_NV_FLAGS_3_DISCARD_58_SHIFT) | \
+ (end_rcvd_58 << CP_NV_FLAGS_3_END_RCVD_58_SHIFT) | \
+ (discard_59 << CP_NV_FLAGS_3_DISCARD_59_SHIFT) | \
+ (end_rcvd_59 << CP_NV_FLAGS_3_END_RCVD_59_SHIFT) | \
+ (discard_60 << CP_NV_FLAGS_3_DISCARD_60_SHIFT) | \
+ (end_rcvd_60 << CP_NV_FLAGS_3_END_RCVD_60_SHIFT) | \
+ (discard_61 << CP_NV_FLAGS_3_DISCARD_61_SHIFT) | \
+ (end_rcvd_61 << CP_NV_FLAGS_3_END_RCVD_61_SHIFT) | \
+ (discard_62 << CP_NV_FLAGS_3_DISCARD_62_SHIFT) | \
+ (end_rcvd_62 << CP_NV_FLAGS_3_END_RCVD_62_SHIFT) | \
+ (discard_63 << CP_NV_FLAGS_3_DISCARD_63_SHIFT) | \
+ (end_rcvd_63 << CP_NV_FLAGS_3_END_RCVD_63_SHIFT))
+
+#define CP_NV_FLAGS_3_GET_DISCARD_48(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_DISCARD_48_MASK) >> CP_NV_FLAGS_3_DISCARD_48_SHIFT)
+#define CP_NV_FLAGS_3_GET_END_RCVD_48(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_END_RCVD_48_MASK) >> CP_NV_FLAGS_3_END_RCVD_48_SHIFT)
+#define CP_NV_FLAGS_3_GET_DISCARD_49(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_DISCARD_49_MASK) >> CP_NV_FLAGS_3_DISCARD_49_SHIFT)
+#define CP_NV_FLAGS_3_GET_END_RCVD_49(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_END_RCVD_49_MASK) >> CP_NV_FLAGS_3_END_RCVD_49_SHIFT)
+#define CP_NV_FLAGS_3_GET_DISCARD_50(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_DISCARD_50_MASK) >> CP_NV_FLAGS_3_DISCARD_50_SHIFT)
+#define CP_NV_FLAGS_3_GET_END_RCVD_50(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_END_RCVD_50_MASK) >> CP_NV_FLAGS_3_END_RCVD_50_SHIFT)
+#define CP_NV_FLAGS_3_GET_DISCARD_51(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_DISCARD_51_MASK) >> CP_NV_FLAGS_3_DISCARD_51_SHIFT)
+#define CP_NV_FLAGS_3_GET_END_RCVD_51(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_END_RCVD_51_MASK) >> CP_NV_FLAGS_3_END_RCVD_51_SHIFT)
+#define CP_NV_FLAGS_3_GET_DISCARD_52(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_DISCARD_52_MASK) >> CP_NV_FLAGS_3_DISCARD_52_SHIFT)
+#define CP_NV_FLAGS_3_GET_END_RCVD_52(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_END_RCVD_52_MASK) >> CP_NV_FLAGS_3_END_RCVD_52_SHIFT)
+#define CP_NV_FLAGS_3_GET_DISCARD_53(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_DISCARD_53_MASK) >> CP_NV_FLAGS_3_DISCARD_53_SHIFT)
+#define CP_NV_FLAGS_3_GET_END_RCVD_53(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_END_RCVD_53_MASK) >> CP_NV_FLAGS_3_END_RCVD_53_SHIFT)
+#define CP_NV_FLAGS_3_GET_DISCARD_54(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_DISCARD_54_MASK) >> CP_NV_FLAGS_3_DISCARD_54_SHIFT)
+#define CP_NV_FLAGS_3_GET_END_RCVD_54(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_END_RCVD_54_MASK) >> CP_NV_FLAGS_3_END_RCVD_54_SHIFT)
+#define CP_NV_FLAGS_3_GET_DISCARD_55(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_DISCARD_55_MASK) >> CP_NV_FLAGS_3_DISCARD_55_SHIFT)
+#define CP_NV_FLAGS_3_GET_END_RCVD_55(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_END_RCVD_55_MASK) >> CP_NV_FLAGS_3_END_RCVD_55_SHIFT)
+#define CP_NV_FLAGS_3_GET_DISCARD_56(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_DISCARD_56_MASK) >> CP_NV_FLAGS_3_DISCARD_56_SHIFT)
+#define CP_NV_FLAGS_3_GET_END_RCVD_56(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_END_RCVD_56_MASK) >> CP_NV_FLAGS_3_END_RCVD_56_SHIFT)
+#define CP_NV_FLAGS_3_GET_DISCARD_57(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_DISCARD_57_MASK) >> CP_NV_FLAGS_3_DISCARD_57_SHIFT)
+#define CP_NV_FLAGS_3_GET_END_RCVD_57(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_END_RCVD_57_MASK) >> CP_NV_FLAGS_3_END_RCVD_57_SHIFT)
+#define CP_NV_FLAGS_3_GET_DISCARD_58(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_DISCARD_58_MASK) >> CP_NV_FLAGS_3_DISCARD_58_SHIFT)
+#define CP_NV_FLAGS_3_GET_END_RCVD_58(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_END_RCVD_58_MASK) >> CP_NV_FLAGS_3_END_RCVD_58_SHIFT)
+#define CP_NV_FLAGS_3_GET_DISCARD_59(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_DISCARD_59_MASK) >> CP_NV_FLAGS_3_DISCARD_59_SHIFT)
+#define CP_NV_FLAGS_3_GET_END_RCVD_59(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_END_RCVD_59_MASK) >> CP_NV_FLAGS_3_END_RCVD_59_SHIFT)
+#define CP_NV_FLAGS_3_GET_DISCARD_60(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_DISCARD_60_MASK) >> CP_NV_FLAGS_3_DISCARD_60_SHIFT)
+#define CP_NV_FLAGS_3_GET_END_RCVD_60(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_END_RCVD_60_MASK) >> CP_NV_FLAGS_3_END_RCVD_60_SHIFT)
+#define CP_NV_FLAGS_3_GET_DISCARD_61(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_DISCARD_61_MASK) >> CP_NV_FLAGS_3_DISCARD_61_SHIFT)
+#define CP_NV_FLAGS_3_GET_END_RCVD_61(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_END_RCVD_61_MASK) >> CP_NV_FLAGS_3_END_RCVD_61_SHIFT)
+#define CP_NV_FLAGS_3_GET_DISCARD_62(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_DISCARD_62_MASK) >> CP_NV_FLAGS_3_DISCARD_62_SHIFT)
+#define CP_NV_FLAGS_3_GET_END_RCVD_62(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_END_RCVD_62_MASK) >> CP_NV_FLAGS_3_END_RCVD_62_SHIFT)
+#define CP_NV_FLAGS_3_GET_DISCARD_63(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_DISCARD_63_MASK) >> CP_NV_FLAGS_3_DISCARD_63_SHIFT)
+#define CP_NV_FLAGS_3_GET_END_RCVD_63(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_END_RCVD_63_MASK) >> CP_NV_FLAGS_3_END_RCVD_63_SHIFT)
+
+#define CP_NV_FLAGS_3_SET_DISCARD_48(cp_nv_flags_3_reg, discard_48) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_DISCARD_48_MASK) | (discard_48 << CP_NV_FLAGS_3_DISCARD_48_SHIFT)
+#define CP_NV_FLAGS_3_SET_END_RCVD_48(cp_nv_flags_3_reg, end_rcvd_48) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_END_RCVD_48_MASK) | (end_rcvd_48 << CP_NV_FLAGS_3_END_RCVD_48_SHIFT)
+#define CP_NV_FLAGS_3_SET_DISCARD_49(cp_nv_flags_3_reg, discard_49) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_DISCARD_49_MASK) | (discard_49 << CP_NV_FLAGS_3_DISCARD_49_SHIFT)
+#define CP_NV_FLAGS_3_SET_END_RCVD_49(cp_nv_flags_3_reg, end_rcvd_49) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_END_RCVD_49_MASK) | (end_rcvd_49 << CP_NV_FLAGS_3_END_RCVD_49_SHIFT)
+#define CP_NV_FLAGS_3_SET_DISCARD_50(cp_nv_flags_3_reg, discard_50) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_DISCARD_50_MASK) | (discard_50 << CP_NV_FLAGS_3_DISCARD_50_SHIFT)
+#define CP_NV_FLAGS_3_SET_END_RCVD_50(cp_nv_flags_3_reg, end_rcvd_50) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_END_RCVD_50_MASK) | (end_rcvd_50 << CP_NV_FLAGS_3_END_RCVD_50_SHIFT)
+#define CP_NV_FLAGS_3_SET_DISCARD_51(cp_nv_flags_3_reg, discard_51) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_DISCARD_51_MASK) | (discard_51 << CP_NV_FLAGS_3_DISCARD_51_SHIFT)
+#define CP_NV_FLAGS_3_SET_END_RCVD_51(cp_nv_flags_3_reg, end_rcvd_51) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_END_RCVD_51_MASK) | (end_rcvd_51 << CP_NV_FLAGS_3_END_RCVD_51_SHIFT)
+#define CP_NV_FLAGS_3_SET_DISCARD_52(cp_nv_flags_3_reg, discard_52) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_DISCARD_52_MASK) | (discard_52 << CP_NV_FLAGS_3_DISCARD_52_SHIFT)
+#define CP_NV_FLAGS_3_SET_END_RCVD_52(cp_nv_flags_3_reg, end_rcvd_52) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_END_RCVD_52_MASK) | (end_rcvd_52 << CP_NV_FLAGS_3_END_RCVD_52_SHIFT)
+#define CP_NV_FLAGS_3_SET_DISCARD_53(cp_nv_flags_3_reg, discard_53) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_DISCARD_53_MASK) | (discard_53 << CP_NV_FLAGS_3_DISCARD_53_SHIFT)
+#define CP_NV_FLAGS_3_SET_END_RCVD_53(cp_nv_flags_3_reg, end_rcvd_53) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_END_RCVD_53_MASK) | (end_rcvd_53 << CP_NV_FLAGS_3_END_RCVD_53_SHIFT)
+#define CP_NV_FLAGS_3_SET_DISCARD_54(cp_nv_flags_3_reg, discard_54) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_DISCARD_54_MASK) | (discard_54 << CP_NV_FLAGS_3_DISCARD_54_SHIFT)
+#define CP_NV_FLAGS_3_SET_END_RCVD_54(cp_nv_flags_3_reg, end_rcvd_54) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_END_RCVD_54_MASK) | (end_rcvd_54 << CP_NV_FLAGS_3_END_RCVD_54_SHIFT)
+#define CP_NV_FLAGS_3_SET_DISCARD_55(cp_nv_flags_3_reg, discard_55) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_DISCARD_55_MASK) | (discard_55 << CP_NV_FLAGS_3_DISCARD_55_SHIFT)
+#define CP_NV_FLAGS_3_SET_END_RCVD_55(cp_nv_flags_3_reg, end_rcvd_55) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_END_RCVD_55_MASK) | (end_rcvd_55 << CP_NV_FLAGS_3_END_RCVD_55_SHIFT)
+#define CP_NV_FLAGS_3_SET_DISCARD_56(cp_nv_flags_3_reg, discard_56) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_DISCARD_56_MASK) | (discard_56 << CP_NV_FLAGS_3_DISCARD_56_SHIFT)
+#define CP_NV_FLAGS_3_SET_END_RCVD_56(cp_nv_flags_3_reg, end_rcvd_56) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_END_RCVD_56_MASK) | (end_rcvd_56 << CP_NV_FLAGS_3_END_RCVD_56_SHIFT)
+#define CP_NV_FLAGS_3_SET_DISCARD_57(cp_nv_flags_3_reg, discard_57) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_DISCARD_57_MASK) | (discard_57 << CP_NV_FLAGS_3_DISCARD_57_SHIFT)
+#define CP_NV_FLAGS_3_SET_END_RCVD_57(cp_nv_flags_3_reg, end_rcvd_57) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_END_RCVD_57_MASK) | (end_rcvd_57 << CP_NV_FLAGS_3_END_RCVD_57_SHIFT)
+#define CP_NV_FLAGS_3_SET_DISCARD_58(cp_nv_flags_3_reg, discard_58) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_DISCARD_58_MASK) | (discard_58 << CP_NV_FLAGS_3_DISCARD_58_SHIFT)
+#define CP_NV_FLAGS_3_SET_END_RCVD_58(cp_nv_flags_3_reg, end_rcvd_58) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_END_RCVD_58_MASK) | (end_rcvd_58 << CP_NV_FLAGS_3_END_RCVD_58_SHIFT)
+#define CP_NV_FLAGS_3_SET_DISCARD_59(cp_nv_flags_3_reg, discard_59) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_DISCARD_59_MASK) | (discard_59 << CP_NV_FLAGS_3_DISCARD_59_SHIFT)
+#define CP_NV_FLAGS_3_SET_END_RCVD_59(cp_nv_flags_3_reg, end_rcvd_59) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_END_RCVD_59_MASK) | (end_rcvd_59 << CP_NV_FLAGS_3_END_RCVD_59_SHIFT)
+#define CP_NV_FLAGS_3_SET_DISCARD_60(cp_nv_flags_3_reg, discard_60) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_DISCARD_60_MASK) | (discard_60 << CP_NV_FLAGS_3_DISCARD_60_SHIFT)
+#define CP_NV_FLAGS_3_SET_END_RCVD_60(cp_nv_flags_3_reg, end_rcvd_60) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_END_RCVD_60_MASK) | (end_rcvd_60 << CP_NV_FLAGS_3_END_RCVD_60_SHIFT)
+#define CP_NV_FLAGS_3_SET_DISCARD_61(cp_nv_flags_3_reg, discard_61) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_DISCARD_61_MASK) | (discard_61 << CP_NV_FLAGS_3_DISCARD_61_SHIFT)
+#define CP_NV_FLAGS_3_SET_END_RCVD_61(cp_nv_flags_3_reg, end_rcvd_61) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_END_RCVD_61_MASK) | (end_rcvd_61 << CP_NV_FLAGS_3_END_RCVD_61_SHIFT)
+#define CP_NV_FLAGS_3_SET_DISCARD_62(cp_nv_flags_3_reg, discard_62) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_DISCARD_62_MASK) | (discard_62 << CP_NV_FLAGS_3_DISCARD_62_SHIFT)
+#define CP_NV_FLAGS_3_SET_END_RCVD_62(cp_nv_flags_3_reg, end_rcvd_62) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_END_RCVD_62_MASK) | (end_rcvd_62 << CP_NV_FLAGS_3_END_RCVD_62_SHIFT)
+#define CP_NV_FLAGS_3_SET_DISCARD_63(cp_nv_flags_3_reg, discard_63) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_DISCARD_63_MASK) | (discard_63 << CP_NV_FLAGS_3_DISCARD_63_SHIFT)
+#define CP_NV_FLAGS_3_SET_END_RCVD_63(cp_nv_flags_3_reg, end_rcvd_63) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_END_RCVD_63_MASK) | (end_rcvd_63 << CP_NV_FLAGS_3_END_RCVD_63_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_nv_flags_3_t {
+ unsigned int discard_48 : CP_NV_FLAGS_3_DISCARD_48_SIZE;
+ unsigned int end_rcvd_48 : CP_NV_FLAGS_3_END_RCVD_48_SIZE;
+ unsigned int discard_49 : CP_NV_FLAGS_3_DISCARD_49_SIZE;
+ unsigned int end_rcvd_49 : CP_NV_FLAGS_3_END_RCVD_49_SIZE;
+ unsigned int discard_50 : CP_NV_FLAGS_3_DISCARD_50_SIZE;
+ unsigned int end_rcvd_50 : CP_NV_FLAGS_3_END_RCVD_50_SIZE;
+ unsigned int discard_51 : CP_NV_FLAGS_3_DISCARD_51_SIZE;
+ unsigned int end_rcvd_51 : CP_NV_FLAGS_3_END_RCVD_51_SIZE;
+ unsigned int discard_52 : CP_NV_FLAGS_3_DISCARD_52_SIZE;
+ unsigned int end_rcvd_52 : CP_NV_FLAGS_3_END_RCVD_52_SIZE;
+ unsigned int discard_53 : CP_NV_FLAGS_3_DISCARD_53_SIZE;
+ unsigned int end_rcvd_53 : CP_NV_FLAGS_3_END_RCVD_53_SIZE;
+ unsigned int discard_54 : CP_NV_FLAGS_3_DISCARD_54_SIZE;
+ unsigned int end_rcvd_54 : CP_NV_FLAGS_3_END_RCVD_54_SIZE;
+ unsigned int discard_55 : CP_NV_FLAGS_3_DISCARD_55_SIZE;
+ unsigned int end_rcvd_55 : CP_NV_FLAGS_3_END_RCVD_55_SIZE;
+ unsigned int discard_56 : CP_NV_FLAGS_3_DISCARD_56_SIZE;
+ unsigned int end_rcvd_56 : CP_NV_FLAGS_3_END_RCVD_56_SIZE;
+ unsigned int discard_57 : CP_NV_FLAGS_3_DISCARD_57_SIZE;
+ unsigned int end_rcvd_57 : CP_NV_FLAGS_3_END_RCVD_57_SIZE;
+ unsigned int discard_58 : CP_NV_FLAGS_3_DISCARD_58_SIZE;
+ unsigned int end_rcvd_58 : CP_NV_FLAGS_3_END_RCVD_58_SIZE;
+ unsigned int discard_59 : CP_NV_FLAGS_3_DISCARD_59_SIZE;
+ unsigned int end_rcvd_59 : CP_NV_FLAGS_3_END_RCVD_59_SIZE;
+ unsigned int discard_60 : CP_NV_FLAGS_3_DISCARD_60_SIZE;
+ unsigned int end_rcvd_60 : CP_NV_FLAGS_3_END_RCVD_60_SIZE;
+ unsigned int discard_61 : CP_NV_FLAGS_3_DISCARD_61_SIZE;
+ unsigned int end_rcvd_61 : CP_NV_FLAGS_3_END_RCVD_61_SIZE;
+ unsigned int discard_62 : CP_NV_FLAGS_3_DISCARD_62_SIZE;
+ unsigned int end_rcvd_62 : CP_NV_FLAGS_3_END_RCVD_62_SIZE;
+ unsigned int discard_63 : CP_NV_FLAGS_3_DISCARD_63_SIZE;
+ unsigned int end_rcvd_63 : CP_NV_FLAGS_3_END_RCVD_63_SIZE;
+ } cp_nv_flags_3_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_nv_flags_3_t {
+ unsigned int end_rcvd_63 : CP_NV_FLAGS_3_END_RCVD_63_SIZE;
+ unsigned int discard_63 : CP_NV_FLAGS_3_DISCARD_63_SIZE;
+ unsigned int end_rcvd_62 : CP_NV_FLAGS_3_END_RCVD_62_SIZE;
+ unsigned int discard_62 : CP_NV_FLAGS_3_DISCARD_62_SIZE;
+ unsigned int end_rcvd_61 : CP_NV_FLAGS_3_END_RCVD_61_SIZE;
+ unsigned int discard_61 : CP_NV_FLAGS_3_DISCARD_61_SIZE;
+ unsigned int end_rcvd_60 : CP_NV_FLAGS_3_END_RCVD_60_SIZE;
+ unsigned int discard_60 : CP_NV_FLAGS_3_DISCARD_60_SIZE;
+ unsigned int end_rcvd_59 : CP_NV_FLAGS_3_END_RCVD_59_SIZE;
+ unsigned int discard_59 : CP_NV_FLAGS_3_DISCARD_59_SIZE;
+ unsigned int end_rcvd_58 : CP_NV_FLAGS_3_END_RCVD_58_SIZE;
+ unsigned int discard_58 : CP_NV_FLAGS_3_DISCARD_58_SIZE;
+ unsigned int end_rcvd_57 : CP_NV_FLAGS_3_END_RCVD_57_SIZE;
+ unsigned int discard_57 : CP_NV_FLAGS_3_DISCARD_57_SIZE;
+ unsigned int end_rcvd_56 : CP_NV_FLAGS_3_END_RCVD_56_SIZE;
+ unsigned int discard_56 : CP_NV_FLAGS_3_DISCARD_56_SIZE;
+ unsigned int end_rcvd_55 : CP_NV_FLAGS_3_END_RCVD_55_SIZE;
+ unsigned int discard_55 : CP_NV_FLAGS_3_DISCARD_55_SIZE;
+ unsigned int end_rcvd_54 : CP_NV_FLAGS_3_END_RCVD_54_SIZE;
+ unsigned int discard_54 : CP_NV_FLAGS_3_DISCARD_54_SIZE;
+ unsigned int end_rcvd_53 : CP_NV_FLAGS_3_END_RCVD_53_SIZE;
+ unsigned int discard_53 : CP_NV_FLAGS_3_DISCARD_53_SIZE;
+ unsigned int end_rcvd_52 : CP_NV_FLAGS_3_END_RCVD_52_SIZE;
+ unsigned int discard_52 : CP_NV_FLAGS_3_DISCARD_52_SIZE;
+ unsigned int end_rcvd_51 : CP_NV_FLAGS_3_END_RCVD_51_SIZE;
+ unsigned int discard_51 : CP_NV_FLAGS_3_DISCARD_51_SIZE;
+ unsigned int end_rcvd_50 : CP_NV_FLAGS_3_END_RCVD_50_SIZE;
+ unsigned int discard_50 : CP_NV_FLAGS_3_DISCARD_50_SIZE;
+ unsigned int end_rcvd_49 : CP_NV_FLAGS_3_END_RCVD_49_SIZE;
+ unsigned int discard_49 : CP_NV_FLAGS_3_DISCARD_49_SIZE;
+ unsigned int end_rcvd_48 : CP_NV_FLAGS_3_END_RCVD_48_SIZE;
+ unsigned int discard_48 : CP_NV_FLAGS_3_DISCARD_48_SIZE;
+ } cp_nv_flags_3_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_nv_flags_3_t f;
+} cp_nv_flags_3_u;
+
+
+/*
+ * CP_STATE_DEBUG_INDEX struct
+ */
+
+#define CP_STATE_DEBUG_INDEX_STATE_DEBUG_INDEX_SIZE 5
+
+#define CP_STATE_DEBUG_INDEX_STATE_DEBUG_INDEX_SHIFT 0
+
+#define CP_STATE_DEBUG_INDEX_STATE_DEBUG_INDEX_MASK 0x0000001f
+
+#define CP_STATE_DEBUG_INDEX_MASK \
+ (CP_STATE_DEBUG_INDEX_STATE_DEBUG_INDEX_MASK)
+
+#define CP_STATE_DEBUG_INDEX(state_debug_index) \
+ ((state_debug_index << CP_STATE_DEBUG_INDEX_STATE_DEBUG_INDEX_SHIFT))
+
+#define CP_STATE_DEBUG_INDEX_GET_STATE_DEBUG_INDEX(cp_state_debug_index) \
+ ((cp_state_debug_index & CP_STATE_DEBUG_INDEX_STATE_DEBUG_INDEX_MASK) >> CP_STATE_DEBUG_INDEX_STATE_DEBUG_INDEX_SHIFT)
+
+#define CP_STATE_DEBUG_INDEX_SET_STATE_DEBUG_INDEX(cp_state_debug_index_reg, state_debug_index) \
+ cp_state_debug_index_reg = (cp_state_debug_index_reg & ~CP_STATE_DEBUG_INDEX_STATE_DEBUG_INDEX_MASK) | (state_debug_index << CP_STATE_DEBUG_INDEX_STATE_DEBUG_INDEX_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_state_debug_index_t {
+ unsigned int state_debug_index : CP_STATE_DEBUG_INDEX_STATE_DEBUG_INDEX_SIZE;
+ unsigned int : 27;
+ } cp_state_debug_index_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_state_debug_index_t {
+ unsigned int : 27;
+ unsigned int state_debug_index : CP_STATE_DEBUG_INDEX_STATE_DEBUG_INDEX_SIZE;
+ } cp_state_debug_index_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_state_debug_index_t f;
+} cp_state_debug_index_u;
+
+
+/*
+ * CP_STATE_DEBUG_DATA struct
+ */
+
+#define CP_STATE_DEBUG_DATA_STATE_DEBUG_DATA_SIZE 32
+
+#define CP_STATE_DEBUG_DATA_STATE_DEBUG_DATA_SHIFT 0
+
+#define CP_STATE_DEBUG_DATA_STATE_DEBUG_DATA_MASK 0xffffffff
+
+#define CP_STATE_DEBUG_DATA_MASK \
+ (CP_STATE_DEBUG_DATA_STATE_DEBUG_DATA_MASK)
+
+#define CP_STATE_DEBUG_DATA(state_debug_data) \
+ ((state_debug_data << CP_STATE_DEBUG_DATA_STATE_DEBUG_DATA_SHIFT))
+
+#define CP_STATE_DEBUG_DATA_GET_STATE_DEBUG_DATA(cp_state_debug_data) \
+ ((cp_state_debug_data & CP_STATE_DEBUG_DATA_STATE_DEBUG_DATA_MASK) >> CP_STATE_DEBUG_DATA_STATE_DEBUG_DATA_SHIFT)
+
+#define CP_STATE_DEBUG_DATA_SET_STATE_DEBUG_DATA(cp_state_debug_data_reg, state_debug_data) \
+ cp_state_debug_data_reg = (cp_state_debug_data_reg & ~CP_STATE_DEBUG_DATA_STATE_DEBUG_DATA_MASK) | (state_debug_data << CP_STATE_DEBUG_DATA_STATE_DEBUG_DATA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_state_debug_data_t {
+ unsigned int state_debug_data : CP_STATE_DEBUG_DATA_STATE_DEBUG_DATA_SIZE;
+ } cp_state_debug_data_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_state_debug_data_t {
+ unsigned int state_debug_data : CP_STATE_DEBUG_DATA_STATE_DEBUG_DATA_SIZE;
+ } cp_state_debug_data_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_state_debug_data_t f;
+} cp_state_debug_data_u;
+
+
+/*
+ * CP_PROG_COUNTER struct
+ */
+
+#define CP_PROG_COUNTER_COUNTER_SIZE 32
+
+#define CP_PROG_COUNTER_COUNTER_SHIFT 0
+
+#define CP_PROG_COUNTER_COUNTER_MASK 0xffffffff
+
+#define CP_PROG_COUNTER_MASK \
+ (CP_PROG_COUNTER_COUNTER_MASK)
+
+#define CP_PROG_COUNTER(counter) \
+ ((counter << CP_PROG_COUNTER_COUNTER_SHIFT))
+
+#define CP_PROG_COUNTER_GET_COUNTER(cp_prog_counter) \
+ ((cp_prog_counter & CP_PROG_COUNTER_COUNTER_MASK) >> CP_PROG_COUNTER_COUNTER_SHIFT)
+
+#define CP_PROG_COUNTER_SET_COUNTER(cp_prog_counter_reg, counter) \
+ cp_prog_counter_reg = (cp_prog_counter_reg & ~CP_PROG_COUNTER_COUNTER_MASK) | (counter << CP_PROG_COUNTER_COUNTER_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_prog_counter_t {
+ unsigned int counter : CP_PROG_COUNTER_COUNTER_SIZE;
+ } cp_prog_counter_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_prog_counter_t {
+ unsigned int counter : CP_PROG_COUNTER_COUNTER_SIZE;
+ } cp_prog_counter_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_prog_counter_t f;
+} cp_prog_counter_u;
+
+
+/*
+ * CP_STAT struct
+ */
+
+#define CP_STAT_MIU_WR_BUSY_SIZE 1
+#define CP_STAT_MIU_RD_REQ_BUSY_SIZE 1
+#define CP_STAT_MIU_RD_RETURN_BUSY_SIZE 1
+#define CP_STAT_RBIU_BUSY_SIZE 1
+#define CP_STAT_RCIU_BUSY_SIZE 1
+#define CP_STAT_CSF_RING_BUSY_SIZE 1
+#define CP_STAT_CSF_INDIRECTS_BUSY_SIZE 1
+#define CP_STAT_CSF_INDIRECT2_BUSY_SIZE 1
+#define CP_STAT_CSF_ST_BUSY_SIZE 1
+#define CP_STAT_CSF_BUSY_SIZE 1
+#define CP_STAT_RING_QUEUE_BUSY_SIZE 1
+#define CP_STAT_INDIRECTS_QUEUE_BUSY_SIZE 1
+#define CP_STAT_INDIRECT2_QUEUE_BUSY_SIZE 1
+#define CP_STAT_ST_QUEUE_BUSY_SIZE 1
+#define CP_STAT_PFP_BUSY_SIZE 1
+#define CP_STAT_MEQ_RING_BUSY_SIZE 1
+#define CP_STAT_MEQ_INDIRECTS_BUSY_SIZE 1
+#define CP_STAT_MEQ_INDIRECT2_BUSY_SIZE 1
+#define CP_STAT_MIU_WC_STALL_SIZE 1
+#define CP_STAT_CP_NRT_BUSY_SIZE 1
+#define CP_STAT__3D_BUSY_SIZE 1
+#define CP_STAT_ME_BUSY_SIZE 1
+#define CP_STAT_ME_WC_BUSY_SIZE 1
+#define CP_STAT_MIU_WC_TRACK_FIFO_EMPTY_SIZE 1
+#define CP_STAT_CP_BUSY_SIZE 1
+
+#define CP_STAT_MIU_WR_BUSY_SHIFT 0
+#define CP_STAT_MIU_RD_REQ_BUSY_SHIFT 1
+#define CP_STAT_MIU_RD_RETURN_BUSY_SHIFT 2
+#define CP_STAT_RBIU_BUSY_SHIFT 3
+#define CP_STAT_RCIU_BUSY_SHIFT 4
+#define CP_STAT_CSF_RING_BUSY_SHIFT 5
+#define CP_STAT_CSF_INDIRECTS_BUSY_SHIFT 6
+#define CP_STAT_CSF_INDIRECT2_BUSY_SHIFT 7
+#define CP_STAT_CSF_ST_BUSY_SHIFT 9
+#define CP_STAT_CSF_BUSY_SHIFT 10
+#define CP_STAT_RING_QUEUE_BUSY_SHIFT 11
+#define CP_STAT_INDIRECTS_QUEUE_BUSY_SHIFT 12
+#define CP_STAT_INDIRECT2_QUEUE_BUSY_SHIFT 13
+#define CP_STAT_ST_QUEUE_BUSY_SHIFT 16
+#define CP_STAT_PFP_BUSY_SHIFT 17
+#define CP_STAT_MEQ_RING_BUSY_SHIFT 18
+#define CP_STAT_MEQ_INDIRECTS_BUSY_SHIFT 19
+#define CP_STAT_MEQ_INDIRECT2_BUSY_SHIFT 20
+#define CP_STAT_MIU_WC_STALL_SHIFT 21
+#define CP_STAT_CP_NRT_BUSY_SHIFT 22
+#define CP_STAT__3D_BUSY_SHIFT 23
+#define CP_STAT_ME_BUSY_SHIFT 26
+#define CP_STAT_ME_WC_BUSY_SHIFT 29
+#define CP_STAT_MIU_WC_TRACK_FIFO_EMPTY_SHIFT 30
+#define CP_STAT_CP_BUSY_SHIFT 31
+
+#define CP_STAT_MIU_WR_BUSY_MASK 0x00000001
+#define CP_STAT_MIU_RD_REQ_BUSY_MASK 0x00000002
+#define CP_STAT_MIU_RD_RETURN_BUSY_MASK 0x00000004
+#define CP_STAT_RBIU_BUSY_MASK 0x00000008
+#define CP_STAT_RCIU_BUSY_MASK 0x00000010
+#define CP_STAT_CSF_RING_BUSY_MASK 0x00000020
+#define CP_STAT_CSF_INDIRECTS_BUSY_MASK 0x00000040
+#define CP_STAT_CSF_INDIRECT2_BUSY_MASK 0x00000080
+#define CP_STAT_CSF_ST_BUSY_MASK 0x00000200
+#define CP_STAT_CSF_BUSY_MASK 0x00000400
+#define CP_STAT_RING_QUEUE_BUSY_MASK 0x00000800
+#define CP_STAT_INDIRECTS_QUEUE_BUSY_MASK 0x00001000
+#define CP_STAT_INDIRECT2_QUEUE_BUSY_MASK 0x00002000
+#define CP_STAT_ST_QUEUE_BUSY_MASK 0x00010000
+#define CP_STAT_PFP_BUSY_MASK 0x00020000
+#define CP_STAT_MEQ_RING_BUSY_MASK 0x00040000
+#define CP_STAT_MEQ_INDIRECTS_BUSY_MASK 0x00080000
+#define CP_STAT_MEQ_INDIRECT2_BUSY_MASK 0x00100000
+#define CP_STAT_MIU_WC_STALL_MASK 0x00200000
+#define CP_STAT_CP_NRT_BUSY_MASK 0x00400000
+#define CP_STAT__3D_BUSY_MASK 0x00800000
+#define CP_STAT_ME_BUSY_MASK 0x04000000
+#define CP_STAT_ME_WC_BUSY_MASK 0x20000000
+#define CP_STAT_MIU_WC_TRACK_FIFO_EMPTY_MASK 0x40000000
+#define CP_STAT_CP_BUSY_MASK 0x80000000
+
+#define CP_STAT_MASK \
+ (CP_STAT_MIU_WR_BUSY_MASK | \
+ CP_STAT_MIU_RD_REQ_BUSY_MASK | \
+ CP_STAT_MIU_RD_RETURN_BUSY_MASK | \
+ CP_STAT_RBIU_BUSY_MASK | \
+ CP_STAT_RCIU_BUSY_MASK | \
+ CP_STAT_CSF_RING_BUSY_MASK | \
+ CP_STAT_CSF_INDIRECTS_BUSY_MASK | \
+ CP_STAT_CSF_INDIRECT2_BUSY_MASK | \
+ CP_STAT_CSF_ST_BUSY_MASK | \
+ CP_STAT_CSF_BUSY_MASK | \
+ CP_STAT_RING_QUEUE_BUSY_MASK | \
+ CP_STAT_INDIRECTS_QUEUE_BUSY_MASK | \
+ CP_STAT_INDIRECT2_QUEUE_BUSY_MASK | \
+ CP_STAT_ST_QUEUE_BUSY_MASK | \
+ CP_STAT_PFP_BUSY_MASK | \
+ CP_STAT_MEQ_RING_BUSY_MASK | \
+ CP_STAT_MEQ_INDIRECTS_BUSY_MASK | \
+ CP_STAT_MEQ_INDIRECT2_BUSY_MASK | \
+ CP_STAT_MIU_WC_STALL_MASK | \
+ CP_STAT_CP_NRT_BUSY_MASK | \
+ CP_STAT__3D_BUSY_MASK | \
+ CP_STAT_ME_BUSY_MASK | \
+ CP_STAT_ME_WC_BUSY_MASK | \
+ CP_STAT_MIU_WC_TRACK_FIFO_EMPTY_MASK | \
+ CP_STAT_CP_BUSY_MASK)
+
+#define CP_STAT(miu_wr_busy, miu_rd_req_busy, miu_rd_return_busy, rbiu_busy, rciu_busy, csf_ring_busy, csf_indirects_busy, csf_indirect2_busy, csf_st_busy, csf_busy, ring_queue_busy, indirects_queue_busy, indirect2_queue_busy, st_queue_busy, pfp_busy, meq_ring_busy, meq_indirects_busy, meq_indirect2_busy, miu_wc_stall, cp_nrt_busy, _3d_busy, me_busy, me_wc_busy, miu_wc_track_fifo_empty, cp_busy) \
+ ((miu_wr_busy << CP_STAT_MIU_WR_BUSY_SHIFT) | \
+ (miu_rd_req_busy << CP_STAT_MIU_RD_REQ_BUSY_SHIFT) | \
+ (miu_rd_return_busy << CP_STAT_MIU_RD_RETURN_BUSY_SHIFT) | \
+ (rbiu_busy << CP_STAT_RBIU_BUSY_SHIFT) | \
+ (rciu_busy << CP_STAT_RCIU_BUSY_SHIFT) | \
+ (csf_ring_busy << CP_STAT_CSF_RING_BUSY_SHIFT) | \
+ (csf_indirects_busy << CP_STAT_CSF_INDIRECTS_BUSY_SHIFT) | \
+ (csf_indirect2_busy << CP_STAT_CSF_INDIRECT2_BUSY_SHIFT) | \
+ (csf_st_busy << CP_STAT_CSF_ST_BUSY_SHIFT) | \
+ (csf_busy << CP_STAT_CSF_BUSY_SHIFT) | \
+ (ring_queue_busy << CP_STAT_RING_QUEUE_BUSY_SHIFT) | \
+ (indirects_queue_busy << CP_STAT_INDIRECTS_QUEUE_BUSY_SHIFT) | \
+ (indirect2_queue_busy << CP_STAT_INDIRECT2_QUEUE_BUSY_SHIFT) | \
+ (st_queue_busy << CP_STAT_ST_QUEUE_BUSY_SHIFT) | \
+ (pfp_busy << CP_STAT_PFP_BUSY_SHIFT) | \
+ (meq_ring_busy << CP_STAT_MEQ_RING_BUSY_SHIFT) | \
+ (meq_indirects_busy << CP_STAT_MEQ_INDIRECTS_BUSY_SHIFT) | \
+ (meq_indirect2_busy << CP_STAT_MEQ_INDIRECT2_BUSY_SHIFT) | \
+ (miu_wc_stall << CP_STAT_MIU_WC_STALL_SHIFT) | \
+ (cp_nrt_busy << CP_STAT_CP_NRT_BUSY_SHIFT) | \
+ (_3d_busy << CP_STAT__3D_BUSY_SHIFT) | \
+ (me_busy << CP_STAT_ME_BUSY_SHIFT) | \
+ (me_wc_busy << CP_STAT_ME_WC_BUSY_SHIFT) | \
+ (miu_wc_track_fifo_empty << CP_STAT_MIU_WC_TRACK_FIFO_EMPTY_SHIFT) | \
+ (cp_busy << CP_STAT_CP_BUSY_SHIFT))
+
+#define CP_STAT_GET_MIU_WR_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_MIU_WR_BUSY_MASK) >> CP_STAT_MIU_WR_BUSY_SHIFT)
+#define CP_STAT_GET_MIU_RD_REQ_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_MIU_RD_REQ_BUSY_MASK) >> CP_STAT_MIU_RD_REQ_BUSY_SHIFT)
+#define CP_STAT_GET_MIU_RD_RETURN_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_MIU_RD_RETURN_BUSY_MASK) >> CP_STAT_MIU_RD_RETURN_BUSY_SHIFT)
+#define CP_STAT_GET_RBIU_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_RBIU_BUSY_MASK) >> CP_STAT_RBIU_BUSY_SHIFT)
+#define CP_STAT_GET_RCIU_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_RCIU_BUSY_MASK) >> CP_STAT_RCIU_BUSY_SHIFT)
+#define CP_STAT_GET_CSF_RING_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_CSF_RING_BUSY_MASK) >> CP_STAT_CSF_RING_BUSY_SHIFT)
+#define CP_STAT_GET_CSF_INDIRECTS_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_CSF_INDIRECTS_BUSY_MASK) >> CP_STAT_CSF_INDIRECTS_BUSY_SHIFT)
+#define CP_STAT_GET_CSF_INDIRECT2_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_CSF_INDIRECT2_BUSY_MASK) >> CP_STAT_CSF_INDIRECT2_BUSY_SHIFT)
+#define CP_STAT_GET_CSF_ST_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_CSF_ST_BUSY_MASK) >> CP_STAT_CSF_ST_BUSY_SHIFT)
+#define CP_STAT_GET_CSF_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_CSF_BUSY_MASK) >> CP_STAT_CSF_BUSY_SHIFT)
+#define CP_STAT_GET_RING_QUEUE_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_RING_QUEUE_BUSY_MASK) >> CP_STAT_RING_QUEUE_BUSY_SHIFT)
+#define CP_STAT_GET_INDIRECTS_QUEUE_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_INDIRECTS_QUEUE_BUSY_MASK) >> CP_STAT_INDIRECTS_QUEUE_BUSY_SHIFT)
+#define CP_STAT_GET_INDIRECT2_QUEUE_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_INDIRECT2_QUEUE_BUSY_MASK) >> CP_STAT_INDIRECT2_QUEUE_BUSY_SHIFT)
+#define CP_STAT_GET_ST_QUEUE_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_ST_QUEUE_BUSY_MASK) >> CP_STAT_ST_QUEUE_BUSY_SHIFT)
+#define CP_STAT_GET_PFP_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_PFP_BUSY_MASK) >> CP_STAT_PFP_BUSY_SHIFT)
+#define CP_STAT_GET_MEQ_RING_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_MEQ_RING_BUSY_MASK) >> CP_STAT_MEQ_RING_BUSY_SHIFT)
+#define CP_STAT_GET_MEQ_INDIRECTS_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_MEQ_INDIRECTS_BUSY_MASK) >> CP_STAT_MEQ_INDIRECTS_BUSY_SHIFT)
+#define CP_STAT_GET_MEQ_INDIRECT2_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_MEQ_INDIRECT2_BUSY_MASK) >> CP_STAT_MEQ_INDIRECT2_BUSY_SHIFT)
+#define CP_STAT_GET_MIU_WC_STALL(cp_stat) \
+ ((cp_stat & CP_STAT_MIU_WC_STALL_MASK) >> CP_STAT_MIU_WC_STALL_SHIFT)
+#define CP_STAT_GET_CP_NRT_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_CP_NRT_BUSY_MASK) >> CP_STAT_CP_NRT_BUSY_SHIFT)
+#define CP_STAT_GET__3D_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT__3D_BUSY_MASK) >> CP_STAT__3D_BUSY_SHIFT)
+#define CP_STAT_GET_ME_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_ME_BUSY_MASK) >> CP_STAT_ME_BUSY_SHIFT)
+#define CP_STAT_GET_ME_WC_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_ME_WC_BUSY_MASK) >> CP_STAT_ME_WC_BUSY_SHIFT)
+#define CP_STAT_GET_MIU_WC_TRACK_FIFO_EMPTY(cp_stat) \
+ ((cp_stat & CP_STAT_MIU_WC_TRACK_FIFO_EMPTY_MASK) >> CP_STAT_MIU_WC_TRACK_FIFO_EMPTY_SHIFT)
+#define CP_STAT_GET_CP_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_CP_BUSY_MASK) >> CP_STAT_CP_BUSY_SHIFT)
+
+#define CP_STAT_SET_MIU_WR_BUSY(cp_stat_reg, miu_wr_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_MIU_WR_BUSY_MASK) | (miu_wr_busy << CP_STAT_MIU_WR_BUSY_SHIFT)
+#define CP_STAT_SET_MIU_RD_REQ_BUSY(cp_stat_reg, miu_rd_req_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_MIU_RD_REQ_BUSY_MASK) | (miu_rd_req_busy << CP_STAT_MIU_RD_REQ_BUSY_SHIFT)
+#define CP_STAT_SET_MIU_RD_RETURN_BUSY(cp_stat_reg, miu_rd_return_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_MIU_RD_RETURN_BUSY_MASK) | (miu_rd_return_busy << CP_STAT_MIU_RD_RETURN_BUSY_SHIFT)
+#define CP_STAT_SET_RBIU_BUSY(cp_stat_reg, rbiu_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_RBIU_BUSY_MASK) | (rbiu_busy << CP_STAT_RBIU_BUSY_SHIFT)
+#define CP_STAT_SET_RCIU_BUSY(cp_stat_reg, rciu_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_RCIU_BUSY_MASK) | (rciu_busy << CP_STAT_RCIU_BUSY_SHIFT)
+#define CP_STAT_SET_CSF_RING_BUSY(cp_stat_reg, csf_ring_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_CSF_RING_BUSY_MASK) | (csf_ring_busy << CP_STAT_CSF_RING_BUSY_SHIFT)
+#define CP_STAT_SET_CSF_INDIRECTS_BUSY(cp_stat_reg, csf_indirects_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_CSF_INDIRECTS_BUSY_MASK) | (csf_indirects_busy << CP_STAT_CSF_INDIRECTS_BUSY_SHIFT)
+#define CP_STAT_SET_CSF_INDIRECT2_BUSY(cp_stat_reg, csf_indirect2_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_CSF_INDIRECT2_BUSY_MASK) | (csf_indirect2_busy << CP_STAT_CSF_INDIRECT2_BUSY_SHIFT)
+#define CP_STAT_SET_CSF_ST_BUSY(cp_stat_reg, csf_st_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_CSF_ST_BUSY_MASK) | (csf_st_busy << CP_STAT_CSF_ST_BUSY_SHIFT)
+#define CP_STAT_SET_CSF_BUSY(cp_stat_reg, csf_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_CSF_BUSY_MASK) | (csf_busy << CP_STAT_CSF_BUSY_SHIFT)
+#define CP_STAT_SET_RING_QUEUE_BUSY(cp_stat_reg, ring_queue_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_RING_QUEUE_BUSY_MASK) | (ring_queue_busy << CP_STAT_RING_QUEUE_BUSY_SHIFT)
+#define CP_STAT_SET_INDIRECTS_QUEUE_BUSY(cp_stat_reg, indirects_queue_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_INDIRECTS_QUEUE_BUSY_MASK) | (indirects_queue_busy << CP_STAT_INDIRECTS_QUEUE_BUSY_SHIFT)
+#define CP_STAT_SET_INDIRECT2_QUEUE_BUSY(cp_stat_reg, indirect2_queue_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_INDIRECT2_QUEUE_BUSY_MASK) | (indirect2_queue_busy << CP_STAT_INDIRECT2_QUEUE_BUSY_SHIFT)
+#define CP_STAT_SET_ST_QUEUE_BUSY(cp_stat_reg, st_queue_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_ST_QUEUE_BUSY_MASK) | (st_queue_busy << CP_STAT_ST_QUEUE_BUSY_SHIFT)
+#define CP_STAT_SET_PFP_BUSY(cp_stat_reg, pfp_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_PFP_BUSY_MASK) | (pfp_busy << CP_STAT_PFP_BUSY_SHIFT)
+#define CP_STAT_SET_MEQ_RING_BUSY(cp_stat_reg, meq_ring_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_MEQ_RING_BUSY_MASK) | (meq_ring_busy << CP_STAT_MEQ_RING_BUSY_SHIFT)
+#define CP_STAT_SET_MEQ_INDIRECTS_BUSY(cp_stat_reg, meq_indirects_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_MEQ_INDIRECTS_BUSY_MASK) | (meq_indirects_busy << CP_STAT_MEQ_INDIRECTS_BUSY_SHIFT)
+#define CP_STAT_SET_MEQ_INDIRECT2_BUSY(cp_stat_reg, meq_indirect2_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_MEQ_INDIRECT2_BUSY_MASK) | (meq_indirect2_busy << CP_STAT_MEQ_INDIRECT2_BUSY_SHIFT)
+#define CP_STAT_SET_MIU_WC_STALL(cp_stat_reg, miu_wc_stall) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_MIU_WC_STALL_MASK) | (miu_wc_stall << CP_STAT_MIU_WC_STALL_SHIFT)
+#define CP_STAT_SET_CP_NRT_BUSY(cp_stat_reg, cp_nrt_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_CP_NRT_BUSY_MASK) | (cp_nrt_busy << CP_STAT_CP_NRT_BUSY_SHIFT)
+#define CP_STAT_SET__3D_BUSY(cp_stat_reg, _3d_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT__3D_BUSY_MASK) | (_3d_busy << CP_STAT__3D_BUSY_SHIFT)
+#define CP_STAT_SET_ME_BUSY(cp_stat_reg, me_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_ME_BUSY_MASK) | (me_busy << CP_STAT_ME_BUSY_SHIFT)
+#define CP_STAT_SET_ME_WC_BUSY(cp_stat_reg, me_wc_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_ME_WC_BUSY_MASK) | (me_wc_busy << CP_STAT_ME_WC_BUSY_SHIFT)
+#define CP_STAT_SET_MIU_WC_TRACK_FIFO_EMPTY(cp_stat_reg, miu_wc_track_fifo_empty) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_MIU_WC_TRACK_FIFO_EMPTY_MASK) | (miu_wc_track_fifo_empty << CP_STAT_MIU_WC_TRACK_FIFO_EMPTY_SHIFT)
+#define CP_STAT_SET_CP_BUSY(cp_stat_reg, cp_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_CP_BUSY_MASK) | (cp_busy << CP_STAT_CP_BUSY_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_stat_t {
+ unsigned int miu_wr_busy : CP_STAT_MIU_WR_BUSY_SIZE;
+ unsigned int miu_rd_req_busy : CP_STAT_MIU_RD_REQ_BUSY_SIZE;
+ unsigned int miu_rd_return_busy : CP_STAT_MIU_RD_RETURN_BUSY_SIZE;
+ unsigned int rbiu_busy : CP_STAT_RBIU_BUSY_SIZE;
+ unsigned int rciu_busy : CP_STAT_RCIU_BUSY_SIZE;
+ unsigned int csf_ring_busy : CP_STAT_CSF_RING_BUSY_SIZE;
+ unsigned int csf_indirects_busy : CP_STAT_CSF_INDIRECTS_BUSY_SIZE;
+ unsigned int csf_indirect2_busy : CP_STAT_CSF_INDIRECT2_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int csf_st_busy : CP_STAT_CSF_ST_BUSY_SIZE;
+ unsigned int csf_busy : CP_STAT_CSF_BUSY_SIZE;
+ unsigned int ring_queue_busy : CP_STAT_RING_QUEUE_BUSY_SIZE;
+ unsigned int indirects_queue_busy : CP_STAT_INDIRECTS_QUEUE_BUSY_SIZE;
+ unsigned int indirect2_queue_busy : CP_STAT_INDIRECT2_QUEUE_BUSY_SIZE;
+ unsigned int : 2;
+ unsigned int st_queue_busy : CP_STAT_ST_QUEUE_BUSY_SIZE;
+ unsigned int pfp_busy : CP_STAT_PFP_BUSY_SIZE;
+ unsigned int meq_ring_busy : CP_STAT_MEQ_RING_BUSY_SIZE;
+ unsigned int meq_indirects_busy : CP_STAT_MEQ_INDIRECTS_BUSY_SIZE;
+ unsigned int meq_indirect2_busy : CP_STAT_MEQ_INDIRECT2_BUSY_SIZE;
+ unsigned int miu_wc_stall : CP_STAT_MIU_WC_STALL_SIZE;
+ unsigned int cp_nrt_busy : CP_STAT_CP_NRT_BUSY_SIZE;
+ unsigned int _3d_busy : CP_STAT__3D_BUSY_SIZE;
+ unsigned int : 2;
+ unsigned int me_busy : CP_STAT_ME_BUSY_SIZE;
+ unsigned int : 2;
+ unsigned int me_wc_busy : CP_STAT_ME_WC_BUSY_SIZE;
+ unsigned int miu_wc_track_fifo_empty : CP_STAT_MIU_WC_TRACK_FIFO_EMPTY_SIZE;
+ unsigned int cp_busy : CP_STAT_CP_BUSY_SIZE;
+ } cp_stat_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_stat_t {
+ unsigned int cp_busy : CP_STAT_CP_BUSY_SIZE;
+ unsigned int miu_wc_track_fifo_empty : CP_STAT_MIU_WC_TRACK_FIFO_EMPTY_SIZE;
+ unsigned int me_wc_busy : CP_STAT_ME_WC_BUSY_SIZE;
+ unsigned int : 2;
+ unsigned int me_busy : CP_STAT_ME_BUSY_SIZE;
+ unsigned int : 2;
+ unsigned int _3d_busy : CP_STAT__3D_BUSY_SIZE;
+ unsigned int cp_nrt_busy : CP_STAT_CP_NRT_BUSY_SIZE;
+ unsigned int miu_wc_stall : CP_STAT_MIU_WC_STALL_SIZE;
+ unsigned int meq_indirect2_busy : CP_STAT_MEQ_INDIRECT2_BUSY_SIZE;
+ unsigned int meq_indirects_busy : CP_STAT_MEQ_INDIRECTS_BUSY_SIZE;
+ unsigned int meq_ring_busy : CP_STAT_MEQ_RING_BUSY_SIZE;
+ unsigned int pfp_busy : CP_STAT_PFP_BUSY_SIZE;
+ unsigned int st_queue_busy : CP_STAT_ST_QUEUE_BUSY_SIZE;
+ unsigned int : 2;
+ unsigned int indirect2_queue_busy : CP_STAT_INDIRECT2_QUEUE_BUSY_SIZE;
+ unsigned int indirects_queue_busy : CP_STAT_INDIRECTS_QUEUE_BUSY_SIZE;
+ unsigned int ring_queue_busy : CP_STAT_RING_QUEUE_BUSY_SIZE;
+ unsigned int csf_busy : CP_STAT_CSF_BUSY_SIZE;
+ unsigned int csf_st_busy : CP_STAT_CSF_ST_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int csf_indirect2_busy : CP_STAT_CSF_INDIRECT2_BUSY_SIZE;
+ unsigned int csf_indirects_busy : CP_STAT_CSF_INDIRECTS_BUSY_SIZE;
+ unsigned int csf_ring_busy : CP_STAT_CSF_RING_BUSY_SIZE;
+ unsigned int rciu_busy : CP_STAT_RCIU_BUSY_SIZE;
+ unsigned int rbiu_busy : CP_STAT_RBIU_BUSY_SIZE;
+ unsigned int miu_rd_return_busy : CP_STAT_MIU_RD_RETURN_BUSY_SIZE;
+ unsigned int miu_rd_req_busy : CP_STAT_MIU_RD_REQ_BUSY_SIZE;
+ unsigned int miu_wr_busy : CP_STAT_MIU_WR_BUSY_SIZE;
+ } cp_stat_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_stat_t f;
+} cp_stat_u;
+
+
+/*
+ * BIOS_0_SCRATCH struct
+ */
+
+#define BIOS_0_SCRATCH_BIOS_SCRATCH_SIZE 32
+
+#define BIOS_0_SCRATCH_BIOS_SCRATCH_SHIFT 0
+
+#define BIOS_0_SCRATCH_BIOS_SCRATCH_MASK 0xffffffff
+
+#define BIOS_0_SCRATCH_MASK \
+ (BIOS_0_SCRATCH_BIOS_SCRATCH_MASK)
+
+#define BIOS_0_SCRATCH(bios_scratch) \
+ ((bios_scratch << BIOS_0_SCRATCH_BIOS_SCRATCH_SHIFT))
+
+#define BIOS_0_SCRATCH_GET_BIOS_SCRATCH(bios_0_scratch) \
+ ((bios_0_scratch & BIOS_0_SCRATCH_BIOS_SCRATCH_MASK) >> BIOS_0_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#define BIOS_0_SCRATCH_SET_BIOS_SCRATCH(bios_0_scratch_reg, bios_scratch) \
+ bios_0_scratch_reg = (bios_0_scratch_reg & ~BIOS_0_SCRATCH_BIOS_SCRATCH_MASK) | (bios_scratch << BIOS_0_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _bios_0_scratch_t {
+ unsigned int bios_scratch : BIOS_0_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_0_scratch_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _bios_0_scratch_t {
+ unsigned int bios_scratch : BIOS_0_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_0_scratch_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ bios_0_scratch_t f;
+} bios_0_scratch_u;
+
+
+/*
+ * BIOS_1_SCRATCH struct
+ */
+
+#define BIOS_1_SCRATCH_BIOS_SCRATCH_SIZE 32
+
+#define BIOS_1_SCRATCH_BIOS_SCRATCH_SHIFT 0
+
+#define BIOS_1_SCRATCH_BIOS_SCRATCH_MASK 0xffffffff
+
+#define BIOS_1_SCRATCH_MASK \
+ (BIOS_1_SCRATCH_BIOS_SCRATCH_MASK)
+
+#define BIOS_1_SCRATCH(bios_scratch) \
+ ((bios_scratch << BIOS_1_SCRATCH_BIOS_SCRATCH_SHIFT))
+
+#define BIOS_1_SCRATCH_GET_BIOS_SCRATCH(bios_1_scratch) \
+ ((bios_1_scratch & BIOS_1_SCRATCH_BIOS_SCRATCH_MASK) >> BIOS_1_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#define BIOS_1_SCRATCH_SET_BIOS_SCRATCH(bios_1_scratch_reg, bios_scratch) \
+ bios_1_scratch_reg = (bios_1_scratch_reg & ~BIOS_1_SCRATCH_BIOS_SCRATCH_MASK) | (bios_scratch << BIOS_1_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _bios_1_scratch_t {
+ unsigned int bios_scratch : BIOS_1_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_1_scratch_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _bios_1_scratch_t {
+ unsigned int bios_scratch : BIOS_1_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_1_scratch_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ bios_1_scratch_t f;
+} bios_1_scratch_u;
+
+
+/*
+ * BIOS_2_SCRATCH struct
+ */
+
+#define BIOS_2_SCRATCH_BIOS_SCRATCH_SIZE 32
+
+#define BIOS_2_SCRATCH_BIOS_SCRATCH_SHIFT 0
+
+#define BIOS_2_SCRATCH_BIOS_SCRATCH_MASK 0xffffffff
+
+#define BIOS_2_SCRATCH_MASK \
+ (BIOS_2_SCRATCH_BIOS_SCRATCH_MASK)
+
+#define BIOS_2_SCRATCH(bios_scratch) \
+ ((bios_scratch << BIOS_2_SCRATCH_BIOS_SCRATCH_SHIFT))
+
+#define BIOS_2_SCRATCH_GET_BIOS_SCRATCH(bios_2_scratch) \
+ ((bios_2_scratch & BIOS_2_SCRATCH_BIOS_SCRATCH_MASK) >> BIOS_2_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#define BIOS_2_SCRATCH_SET_BIOS_SCRATCH(bios_2_scratch_reg, bios_scratch) \
+ bios_2_scratch_reg = (bios_2_scratch_reg & ~BIOS_2_SCRATCH_BIOS_SCRATCH_MASK) | (bios_scratch << BIOS_2_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _bios_2_scratch_t {
+ unsigned int bios_scratch : BIOS_2_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_2_scratch_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _bios_2_scratch_t {
+ unsigned int bios_scratch : BIOS_2_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_2_scratch_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ bios_2_scratch_t f;
+} bios_2_scratch_u;
+
+
+/*
+ * BIOS_3_SCRATCH struct
+ */
+
+#define BIOS_3_SCRATCH_BIOS_SCRATCH_SIZE 32
+
+#define BIOS_3_SCRATCH_BIOS_SCRATCH_SHIFT 0
+
+#define BIOS_3_SCRATCH_BIOS_SCRATCH_MASK 0xffffffff
+
+#define BIOS_3_SCRATCH_MASK \
+ (BIOS_3_SCRATCH_BIOS_SCRATCH_MASK)
+
+#define BIOS_3_SCRATCH(bios_scratch) \
+ ((bios_scratch << BIOS_3_SCRATCH_BIOS_SCRATCH_SHIFT))
+
+#define BIOS_3_SCRATCH_GET_BIOS_SCRATCH(bios_3_scratch) \
+ ((bios_3_scratch & BIOS_3_SCRATCH_BIOS_SCRATCH_MASK) >> BIOS_3_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#define BIOS_3_SCRATCH_SET_BIOS_SCRATCH(bios_3_scratch_reg, bios_scratch) \
+ bios_3_scratch_reg = (bios_3_scratch_reg & ~BIOS_3_SCRATCH_BIOS_SCRATCH_MASK) | (bios_scratch << BIOS_3_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _bios_3_scratch_t {
+ unsigned int bios_scratch : BIOS_3_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_3_scratch_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _bios_3_scratch_t {
+ unsigned int bios_scratch : BIOS_3_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_3_scratch_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ bios_3_scratch_t f;
+} bios_3_scratch_u;
+
+
+/*
+ * BIOS_4_SCRATCH struct
+ */
+
+#define BIOS_4_SCRATCH_BIOS_SCRATCH_SIZE 32
+
+#define BIOS_4_SCRATCH_BIOS_SCRATCH_SHIFT 0
+
+#define BIOS_4_SCRATCH_BIOS_SCRATCH_MASK 0xffffffff
+
+#define BIOS_4_SCRATCH_MASK \
+ (BIOS_4_SCRATCH_BIOS_SCRATCH_MASK)
+
+#define BIOS_4_SCRATCH(bios_scratch) \
+ ((bios_scratch << BIOS_4_SCRATCH_BIOS_SCRATCH_SHIFT))
+
+#define BIOS_4_SCRATCH_GET_BIOS_SCRATCH(bios_4_scratch) \
+ ((bios_4_scratch & BIOS_4_SCRATCH_BIOS_SCRATCH_MASK) >> BIOS_4_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#define BIOS_4_SCRATCH_SET_BIOS_SCRATCH(bios_4_scratch_reg, bios_scratch) \
+ bios_4_scratch_reg = (bios_4_scratch_reg & ~BIOS_4_SCRATCH_BIOS_SCRATCH_MASK) | (bios_scratch << BIOS_4_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _bios_4_scratch_t {
+ unsigned int bios_scratch : BIOS_4_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_4_scratch_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _bios_4_scratch_t {
+ unsigned int bios_scratch : BIOS_4_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_4_scratch_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ bios_4_scratch_t f;
+} bios_4_scratch_u;
+
+
+/*
+ * BIOS_5_SCRATCH struct
+ */
+
+#define BIOS_5_SCRATCH_BIOS_SCRATCH_SIZE 32
+
+#define BIOS_5_SCRATCH_BIOS_SCRATCH_SHIFT 0
+
+#define BIOS_5_SCRATCH_BIOS_SCRATCH_MASK 0xffffffff
+
+#define BIOS_5_SCRATCH_MASK \
+ (BIOS_5_SCRATCH_BIOS_SCRATCH_MASK)
+
+#define BIOS_5_SCRATCH(bios_scratch) \
+ ((bios_scratch << BIOS_5_SCRATCH_BIOS_SCRATCH_SHIFT))
+
+#define BIOS_5_SCRATCH_GET_BIOS_SCRATCH(bios_5_scratch) \
+ ((bios_5_scratch & BIOS_5_SCRATCH_BIOS_SCRATCH_MASK) >> BIOS_5_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#define BIOS_5_SCRATCH_SET_BIOS_SCRATCH(bios_5_scratch_reg, bios_scratch) \
+ bios_5_scratch_reg = (bios_5_scratch_reg & ~BIOS_5_SCRATCH_BIOS_SCRATCH_MASK) | (bios_scratch << BIOS_5_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _bios_5_scratch_t {
+ unsigned int bios_scratch : BIOS_5_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_5_scratch_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _bios_5_scratch_t {
+ unsigned int bios_scratch : BIOS_5_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_5_scratch_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ bios_5_scratch_t f;
+} bios_5_scratch_u;
+
+
+/*
+ * BIOS_6_SCRATCH struct
+ */
+
+#define BIOS_6_SCRATCH_BIOS_SCRATCH_SIZE 32
+
+#define BIOS_6_SCRATCH_BIOS_SCRATCH_SHIFT 0
+
+#define BIOS_6_SCRATCH_BIOS_SCRATCH_MASK 0xffffffff
+
+#define BIOS_6_SCRATCH_MASK \
+ (BIOS_6_SCRATCH_BIOS_SCRATCH_MASK)
+
+#define BIOS_6_SCRATCH(bios_scratch) \
+ ((bios_scratch << BIOS_6_SCRATCH_BIOS_SCRATCH_SHIFT))
+
+#define BIOS_6_SCRATCH_GET_BIOS_SCRATCH(bios_6_scratch) \
+ ((bios_6_scratch & BIOS_6_SCRATCH_BIOS_SCRATCH_MASK) >> BIOS_6_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#define BIOS_6_SCRATCH_SET_BIOS_SCRATCH(bios_6_scratch_reg, bios_scratch) \
+ bios_6_scratch_reg = (bios_6_scratch_reg & ~BIOS_6_SCRATCH_BIOS_SCRATCH_MASK) | (bios_scratch << BIOS_6_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _bios_6_scratch_t {
+ unsigned int bios_scratch : BIOS_6_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_6_scratch_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _bios_6_scratch_t {
+ unsigned int bios_scratch : BIOS_6_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_6_scratch_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ bios_6_scratch_t f;
+} bios_6_scratch_u;
+
+
+/*
+ * BIOS_7_SCRATCH struct
+ */
+
+#define BIOS_7_SCRATCH_BIOS_SCRATCH_SIZE 32
+
+#define BIOS_7_SCRATCH_BIOS_SCRATCH_SHIFT 0
+
+#define BIOS_7_SCRATCH_BIOS_SCRATCH_MASK 0xffffffff
+
+#define BIOS_7_SCRATCH_MASK \
+ (BIOS_7_SCRATCH_BIOS_SCRATCH_MASK)
+
+#define BIOS_7_SCRATCH(bios_scratch) \
+ ((bios_scratch << BIOS_7_SCRATCH_BIOS_SCRATCH_SHIFT))
+
+#define BIOS_7_SCRATCH_GET_BIOS_SCRATCH(bios_7_scratch) \
+ ((bios_7_scratch & BIOS_7_SCRATCH_BIOS_SCRATCH_MASK) >> BIOS_7_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#define BIOS_7_SCRATCH_SET_BIOS_SCRATCH(bios_7_scratch_reg, bios_scratch) \
+ bios_7_scratch_reg = (bios_7_scratch_reg & ~BIOS_7_SCRATCH_BIOS_SCRATCH_MASK) | (bios_scratch << BIOS_7_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _bios_7_scratch_t {
+ unsigned int bios_scratch : BIOS_7_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_7_scratch_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _bios_7_scratch_t {
+ unsigned int bios_scratch : BIOS_7_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_7_scratch_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ bios_7_scratch_t f;
+} bios_7_scratch_u;
+
+
+/*
+ * BIOS_8_SCRATCH struct
+ */
+
+#define BIOS_8_SCRATCH_BIOS_SCRATCH_SIZE 32
+
+#define BIOS_8_SCRATCH_BIOS_SCRATCH_SHIFT 0
+
+#define BIOS_8_SCRATCH_BIOS_SCRATCH_MASK 0xffffffff
+
+#define BIOS_8_SCRATCH_MASK \
+ (BIOS_8_SCRATCH_BIOS_SCRATCH_MASK)
+
+#define BIOS_8_SCRATCH(bios_scratch) \
+ ((bios_scratch << BIOS_8_SCRATCH_BIOS_SCRATCH_SHIFT))
+
+#define BIOS_8_SCRATCH_GET_BIOS_SCRATCH(bios_8_scratch) \
+ ((bios_8_scratch & BIOS_8_SCRATCH_BIOS_SCRATCH_MASK) >> BIOS_8_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#define BIOS_8_SCRATCH_SET_BIOS_SCRATCH(bios_8_scratch_reg, bios_scratch) \
+ bios_8_scratch_reg = (bios_8_scratch_reg & ~BIOS_8_SCRATCH_BIOS_SCRATCH_MASK) | (bios_scratch << BIOS_8_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _bios_8_scratch_t {
+ unsigned int bios_scratch : BIOS_8_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_8_scratch_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _bios_8_scratch_t {
+ unsigned int bios_scratch : BIOS_8_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_8_scratch_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ bios_8_scratch_t f;
+} bios_8_scratch_u;
+
+
+/*
+ * BIOS_9_SCRATCH struct
+ */
+
+#define BIOS_9_SCRATCH_BIOS_SCRATCH_SIZE 32
+
+#define BIOS_9_SCRATCH_BIOS_SCRATCH_SHIFT 0
+
+#define BIOS_9_SCRATCH_BIOS_SCRATCH_MASK 0xffffffff
+
+#define BIOS_9_SCRATCH_MASK \
+ (BIOS_9_SCRATCH_BIOS_SCRATCH_MASK)
+
+#define BIOS_9_SCRATCH(bios_scratch) \
+ ((bios_scratch << BIOS_9_SCRATCH_BIOS_SCRATCH_SHIFT))
+
+#define BIOS_9_SCRATCH_GET_BIOS_SCRATCH(bios_9_scratch) \
+ ((bios_9_scratch & BIOS_9_SCRATCH_BIOS_SCRATCH_MASK) >> BIOS_9_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#define BIOS_9_SCRATCH_SET_BIOS_SCRATCH(bios_9_scratch_reg, bios_scratch) \
+ bios_9_scratch_reg = (bios_9_scratch_reg & ~BIOS_9_SCRATCH_BIOS_SCRATCH_MASK) | (bios_scratch << BIOS_9_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _bios_9_scratch_t {
+ unsigned int bios_scratch : BIOS_9_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_9_scratch_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _bios_9_scratch_t {
+ unsigned int bios_scratch : BIOS_9_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_9_scratch_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ bios_9_scratch_t f;
+} bios_9_scratch_u;
+
+
+/*
+ * BIOS_10_SCRATCH struct
+ */
+
+#define BIOS_10_SCRATCH_BIOS_SCRATCH_SIZE 32
+
+#define BIOS_10_SCRATCH_BIOS_SCRATCH_SHIFT 0
+
+#define BIOS_10_SCRATCH_BIOS_SCRATCH_MASK 0xffffffff
+
+#define BIOS_10_SCRATCH_MASK \
+ (BIOS_10_SCRATCH_BIOS_SCRATCH_MASK)
+
+#define BIOS_10_SCRATCH(bios_scratch) \
+ ((bios_scratch << BIOS_10_SCRATCH_BIOS_SCRATCH_SHIFT))
+
+#define BIOS_10_SCRATCH_GET_BIOS_SCRATCH(bios_10_scratch) \
+ ((bios_10_scratch & BIOS_10_SCRATCH_BIOS_SCRATCH_MASK) >> BIOS_10_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#define BIOS_10_SCRATCH_SET_BIOS_SCRATCH(bios_10_scratch_reg, bios_scratch) \
+ bios_10_scratch_reg = (bios_10_scratch_reg & ~BIOS_10_SCRATCH_BIOS_SCRATCH_MASK) | (bios_scratch << BIOS_10_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _bios_10_scratch_t {
+ unsigned int bios_scratch : BIOS_10_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_10_scratch_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _bios_10_scratch_t {
+ unsigned int bios_scratch : BIOS_10_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_10_scratch_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ bios_10_scratch_t f;
+} bios_10_scratch_u;
+
+
+/*
+ * BIOS_11_SCRATCH struct
+ */
+
+#define BIOS_11_SCRATCH_BIOS_SCRATCH_SIZE 32
+
+#define BIOS_11_SCRATCH_BIOS_SCRATCH_SHIFT 0
+
+#define BIOS_11_SCRATCH_BIOS_SCRATCH_MASK 0xffffffff
+
+#define BIOS_11_SCRATCH_MASK \
+ (BIOS_11_SCRATCH_BIOS_SCRATCH_MASK)
+
+#define BIOS_11_SCRATCH(bios_scratch) \
+ ((bios_scratch << BIOS_11_SCRATCH_BIOS_SCRATCH_SHIFT))
+
+#define BIOS_11_SCRATCH_GET_BIOS_SCRATCH(bios_11_scratch) \
+ ((bios_11_scratch & BIOS_11_SCRATCH_BIOS_SCRATCH_MASK) >> BIOS_11_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#define BIOS_11_SCRATCH_SET_BIOS_SCRATCH(bios_11_scratch_reg, bios_scratch) \
+ bios_11_scratch_reg = (bios_11_scratch_reg & ~BIOS_11_SCRATCH_BIOS_SCRATCH_MASK) | (bios_scratch << BIOS_11_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _bios_11_scratch_t {
+ unsigned int bios_scratch : BIOS_11_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_11_scratch_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _bios_11_scratch_t {
+ unsigned int bios_scratch : BIOS_11_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_11_scratch_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ bios_11_scratch_t f;
+} bios_11_scratch_u;
+
+
+/*
+ * BIOS_12_SCRATCH struct
+ */
+
+#define BIOS_12_SCRATCH_BIOS_SCRATCH_SIZE 32
+
+#define BIOS_12_SCRATCH_BIOS_SCRATCH_SHIFT 0
+
+#define BIOS_12_SCRATCH_BIOS_SCRATCH_MASK 0xffffffff
+
+#define BIOS_12_SCRATCH_MASK \
+ (BIOS_12_SCRATCH_BIOS_SCRATCH_MASK)
+
+#define BIOS_12_SCRATCH(bios_scratch) \
+ ((bios_scratch << BIOS_12_SCRATCH_BIOS_SCRATCH_SHIFT))
+
+#define BIOS_12_SCRATCH_GET_BIOS_SCRATCH(bios_12_scratch) \
+ ((bios_12_scratch & BIOS_12_SCRATCH_BIOS_SCRATCH_MASK) >> BIOS_12_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#define BIOS_12_SCRATCH_SET_BIOS_SCRATCH(bios_12_scratch_reg, bios_scratch) \
+ bios_12_scratch_reg = (bios_12_scratch_reg & ~BIOS_12_SCRATCH_BIOS_SCRATCH_MASK) | (bios_scratch << BIOS_12_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _bios_12_scratch_t {
+ unsigned int bios_scratch : BIOS_12_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_12_scratch_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _bios_12_scratch_t {
+ unsigned int bios_scratch : BIOS_12_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_12_scratch_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ bios_12_scratch_t f;
+} bios_12_scratch_u;
+
+
+/*
+ * BIOS_13_SCRATCH struct
+ */
+
+#define BIOS_13_SCRATCH_BIOS_SCRATCH_SIZE 32
+
+#define BIOS_13_SCRATCH_BIOS_SCRATCH_SHIFT 0
+
+#define BIOS_13_SCRATCH_BIOS_SCRATCH_MASK 0xffffffff
+
+#define BIOS_13_SCRATCH_MASK \
+ (BIOS_13_SCRATCH_BIOS_SCRATCH_MASK)
+
+#define BIOS_13_SCRATCH(bios_scratch) \
+ ((bios_scratch << BIOS_13_SCRATCH_BIOS_SCRATCH_SHIFT))
+
+#define BIOS_13_SCRATCH_GET_BIOS_SCRATCH(bios_13_scratch) \
+ ((bios_13_scratch & BIOS_13_SCRATCH_BIOS_SCRATCH_MASK) >> BIOS_13_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#define BIOS_13_SCRATCH_SET_BIOS_SCRATCH(bios_13_scratch_reg, bios_scratch) \
+ bios_13_scratch_reg = (bios_13_scratch_reg & ~BIOS_13_SCRATCH_BIOS_SCRATCH_MASK) | (bios_scratch << BIOS_13_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _bios_13_scratch_t {
+ unsigned int bios_scratch : BIOS_13_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_13_scratch_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _bios_13_scratch_t {
+ unsigned int bios_scratch : BIOS_13_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_13_scratch_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ bios_13_scratch_t f;
+} bios_13_scratch_u;
+
+
+/*
+ * BIOS_14_SCRATCH struct
+ */
+
+#define BIOS_14_SCRATCH_BIOS_SCRATCH_SIZE 32
+
+#define BIOS_14_SCRATCH_BIOS_SCRATCH_SHIFT 0
+
+#define BIOS_14_SCRATCH_BIOS_SCRATCH_MASK 0xffffffff
+
+#define BIOS_14_SCRATCH_MASK \
+ (BIOS_14_SCRATCH_BIOS_SCRATCH_MASK)
+
+#define BIOS_14_SCRATCH(bios_scratch) \
+ ((bios_scratch << BIOS_14_SCRATCH_BIOS_SCRATCH_SHIFT))
+
+#define BIOS_14_SCRATCH_GET_BIOS_SCRATCH(bios_14_scratch) \
+ ((bios_14_scratch & BIOS_14_SCRATCH_BIOS_SCRATCH_MASK) >> BIOS_14_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#define BIOS_14_SCRATCH_SET_BIOS_SCRATCH(bios_14_scratch_reg, bios_scratch) \
+ bios_14_scratch_reg = (bios_14_scratch_reg & ~BIOS_14_SCRATCH_BIOS_SCRATCH_MASK) | (bios_scratch << BIOS_14_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _bios_14_scratch_t {
+ unsigned int bios_scratch : BIOS_14_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_14_scratch_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _bios_14_scratch_t {
+ unsigned int bios_scratch : BIOS_14_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_14_scratch_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ bios_14_scratch_t f;
+} bios_14_scratch_u;
+
+
+/*
+ * BIOS_15_SCRATCH struct
+ */
+
+#define BIOS_15_SCRATCH_BIOS_SCRATCH_SIZE 32
+
+#define BIOS_15_SCRATCH_BIOS_SCRATCH_SHIFT 0
+
+#define BIOS_15_SCRATCH_BIOS_SCRATCH_MASK 0xffffffff
+
+#define BIOS_15_SCRATCH_MASK \
+ (BIOS_15_SCRATCH_BIOS_SCRATCH_MASK)
+
+#define BIOS_15_SCRATCH(bios_scratch) \
+ ((bios_scratch << BIOS_15_SCRATCH_BIOS_SCRATCH_SHIFT))
+
+#define BIOS_15_SCRATCH_GET_BIOS_SCRATCH(bios_15_scratch) \
+ ((bios_15_scratch & BIOS_15_SCRATCH_BIOS_SCRATCH_MASK) >> BIOS_15_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#define BIOS_15_SCRATCH_SET_BIOS_SCRATCH(bios_15_scratch_reg, bios_scratch) \
+ bios_15_scratch_reg = (bios_15_scratch_reg & ~BIOS_15_SCRATCH_BIOS_SCRATCH_MASK) | (bios_scratch << BIOS_15_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _bios_15_scratch_t {
+ unsigned int bios_scratch : BIOS_15_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_15_scratch_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _bios_15_scratch_t {
+ unsigned int bios_scratch : BIOS_15_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_15_scratch_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ bios_15_scratch_t f;
+} bios_15_scratch_u;
+
+
+/*
+ * COHER_SIZE_PM4 struct
+ */
+
+#define COHER_SIZE_PM4_SIZE_SIZE 32
+
+#define COHER_SIZE_PM4_SIZE_SHIFT 0
+
+#define COHER_SIZE_PM4_SIZE_MASK 0xffffffff
+
+#define COHER_SIZE_PM4_MASK \
+ (COHER_SIZE_PM4_SIZE_MASK)
+
+#define COHER_SIZE_PM4(size) \
+ ((size << COHER_SIZE_PM4_SIZE_SHIFT))
+
+#define COHER_SIZE_PM4_GET_SIZE(coher_size_pm4) \
+ ((coher_size_pm4 & COHER_SIZE_PM4_SIZE_MASK) >> COHER_SIZE_PM4_SIZE_SHIFT)
+
+#define COHER_SIZE_PM4_SET_SIZE(coher_size_pm4_reg, size) \
+ coher_size_pm4_reg = (coher_size_pm4_reg & ~COHER_SIZE_PM4_SIZE_MASK) | (size << COHER_SIZE_PM4_SIZE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _coher_size_pm4_t {
+ unsigned int size : COHER_SIZE_PM4_SIZE_SIZE;
+ } coher_size_pm4_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _coher_size_pm4_t {
+ unsigned int size : COHER_SIZE_PM4_SIZE_SIZE;
+ } coher_size_pm4_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ coher_size_pm4_t f;
+} coher_size_pm4_u;
+
+
+/*
+ * COHER_BASE_PM4 struct
+ */
+
+#define COHER_BASE_PM4_BASE_SIZE 32
+
+#define COHER_BASE_PM4_BASE_SHIFT 0
+
+#define COHER_BASE_PM4_BASE_MASK 0xffffffff
+
+#define COHER_BASE_PM4_MASK \
+ (COHER_BASE_PM4_BASE_MASK)
+
+#define COHER_BASE_PM4(base) \
+ ((base << COHER_BASE_PM4_BASE_SHIFT))
+
+#define COHER_BASE_PM4_GET_BASE(coher_base_pm4) \
+ ((coher_base_pm4 & COHER_BASE_PM4_BASE_MASK) >> COHER_BASE_PM4_BASE_SHIFT)
+
+#define COHER_BASE_PM4_SET_BASE(coher_base_pm4_reg, base) \
+ coher_base_pm4_reg = (coher_base_pm4_reg & ~COHER_BASE_PM4_BASE_MASK) | (base << COHER_BASE_PM4_BASE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _coher_base_pm4_t {
+ unsigned int base : COHER_BASE_PM4_BASE_SIZE;
+ } coher_base_pm4_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _coher_base_pm4_t {
+ unsigned int base : COHER_BASE_PM4_BASE_SIZE;
+ } coher_base_pm4_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ coher_base_pm4_t f;
+} coher_base_pm4_u;
+
+
+/*
+ * COHER_STATUS_PM4 struct
+ */
+
+#define COHER_STATUS_PM4_MATCHING_CONTEXTS_SIZE 8
+#define COHER_STATUS_PM4_RB_COPY_DEST_BASE_ENA_SIZE 1
+#define COHER_STATUS_PM4_DEST_BASE_0_ENA_SIZE 1
+#define COHER_STATUS_PM4_DEST_BASE_1_ENA_SIZE 1
+#define COHER_STATUS_PM4_DEST_BASE_2_ENA_SIZE 1
+#define COHER_STATUS_PM4_DEST_BASE_3_ENA_SIZE 1
+#define COHER_STATUS_PM4_DEST_BASE_4_ENA_SIZE 1
+#define COHER_STATUS_PM4_DEST_BASE_5_ENA_SIZE 1
+#define COHER_STATUS_PM4_DEST_BASE_6_ENA_SIZE 1
+#define COHER_STATUS_PM4_DEST_BASE_7_ENA_SIZE 1
+#define COHER_STATUS_PM4_TC_ACTION_ENA_SIZE 1
+#define COHER_STATUS_PM4_STATUS_SIZE 1
+
+#define COHER_STATUS_PM4_MATCHING_CONTEXTS_SHIFT 0
+#define COHER_STATUS_PM4_RB_COPY_DEST_BASE_ENA_SHIFT 8
+#define COHER_STATUS_PM4_DEST_BASE_0_ENA_SHIFT 9
+#define COHER_STATUS_PM4_DEST_BASE_1_ENA_SHIFT 10
+#define COHER_STATUS_PM4_DEST_BASE_2_ENA_SHIFT 11
+#define COHER_STATUS_PM4_DEST_BASE_3_ENA_SHIFT 12
+#define COHER_STATUS_PM4_DEST_BASE_4_ENA_SHIFT 13
+#define COHER_STATUS_PM4_DEST_BASE_5_ENA_SHIFT 14
+#define COHER_STATUS_PM4_DEST_BASE_6_ENA_SHIFT 15
+#define COHER_STATUS_PM4_DEST_BASE_7_ENA_SHIFT 16
+#define COHER_STATUS_PM4_TC_ACTION_ENA_SHIFT 25
+#define COHER_STATUS_PM4_STATUS_SHIFT 31
+
+#define COHER_STATUS_PM4_MATCHING_CONTEXTS_MASK 0x000000ff
+#define COHER_STATUS_PM4_RB_COPY_DEST_BASE_ENA_MASK 0x00000100
+#define COHER_STATUS_PM4_DEST_BASE_0_ENA_MASK 0x00000200
+#define COHER_STATUS_PM4_DEST_BASE_1_ENA_MASK 0x00000400
+#define COHER_STATUS_PM4_DEST_BASE_2_ENA_MASK 0x00000800
+#define COHER_STATUS_PM4_DEST_BASE_3_ENA_MASK 0x00001000
+#define COHER_STATUS_PM4_DEST_BASE_4_ENA_MASK 0x00002000
+#define COHER_STATUS_PM4_DEST_BASE_5_ENA_MASK 0x00004000
+#define COHER_STATUS_PM4_DEST_BASE_6_ENA_MASK 0x00008000
+#define COHER_STATUS_PM4_DEST_BASE_7_ENA_MASK 0x00010000
+#define COHER_STATUS_PM4_TC_ACTION_ENA_MASK 0x02000000
+#define COHER_STATUS_PM4_STATUS_MASK 0x80000000
+
+#define COHER_STATUS_PM4_MASK \
+ (COHER_STATUS_PM4_MATCHING_CONTEXTS_MASK | \
+ COHER_STATUS_PM4_RB_COPY_DEST_BASE_ENA_MASK | \
+ COHER_STATUS_PM4_DEST_BASE_0_ENA_MASK | \
+ COHER_STATUS_PM4_DEST_BASE_1_ENA_MASK | \
+ COHER_STATUS_PM4_DEST_BASE_2_ENA_MASK | \
+ COHER_STATUS_PM4_DEST_BASE_3_ENA_MASK | \
+ COHER_STATUS_PM4_DEST_BASE_4_ENA_MASK | \
+ COHER_STATUS_PM4_DEST_BASE_5_ENA_MASK | \
+ COHER_STATUS_PM4_DEST_BASE_6_ENA_MASK | \
+ COHER_STATUS_PM4_DEST_BASE_7_ENA_MASK | \
+ COHER_STATUS_PM4_TC_ACTION_ENA_MASK | \
+ COHER_STATUS_PM4_STATUS_MASK)
+
+#define COHER_STATUS_PM4(matching_contexts, rb_copy_dest_base_ena, dest_base_0_ena, dest_base_1_ena, dest_base_2_ena, dest_base_3_ena, dest_base_4_ena, dest_base_5_ena, dest_base_6_ena, dest_base_7_ena, tc_action_ena, status) \
+ ((matching_contexts << COHER_STATUS_PM4_MATCHING_CONTEXTS_SHIFT) | \
+ (rb_copy_dest_base_ena << COHER_STATUS_PM4_RB_COPY_DEST_BASE_ENA_SHIFT) | \
+ (dest_base_0_ena << COHER_STATUS_PM4_DEST_BASE_0_ENA_SHIFT) | \
+ (dest_base_1_ena << COHER_STATUS_PM4_DEST_BASE_1_ENA_SHIFT) | \
+ (dest_base_2_ena << COHER_STATUS_PM4_DEST_BASE_2_ENA_SHIFT) | \
+ (dest_base_3_ena << COHER_STATUS_PM4_DEST_BASE_3_ENA_SHIFT) | \
+ (dest_base_4_ena << COHER_STATUS_PM4_DEST_BASE_4_ENA_SHIFT) | \
+ (dest_base_5_ena << COHER_STATUS_PM4_DEST_BASE_5_ENA_SHIFT) | \
+ (dest_base_6_ena << COHER_STATUS_PM4_DEST_BASE_6_ENA_SHIFT) | \
+ (dest_base_7_ena << COHER_STATUS_PM4_DEST_BASE_7_ENA_SHIFT) | \
+ (tc_action_ena << COHER_STATUS_PM4_TC_ACTION_ENA_SHIFT) | \
+ (status << COHER_STATUS_PM4_STATUS_SHIFT))
+
+#define COHER_STATUS_PM4_GET_MATCHING_CONTEXTS(coher_status_pm4) \
+ ((coher_status_pm4 & COHER_STATUS_PM4_MATCHING_CONTEXTS_MASK) >> COHER_STATUS_PM4_MATCHING_CONTEXTS_SHIFT)
+#define COHER_STATUS_PM4_GET_RB_COPY_DEST_BASE_ENA(coher_status_pm4) \
+ ((coher_status_pm4 & COHER_STATUS_PM4_RB_COPY_DEST_BASE_ENA_MASK) >> COHER_STATUS_PM4_RB_COPY_DEST_BASE_ENA_SHIFT)
+#define COHER_STATUS_PM4_GET_DEST_BASE_0_ENA(coher_status_pm4) \
+ ((coher_status_pm4 & COHER_STATUS_PM4_DEST_BASE_0_ENA_MASK) >> COHER_STATUS_PM4_DEST_BASE_0_ENA_SHIFT)
+#define COHER_STATUS_PM4_GET_DEST_BASE_1_ENA(coher_status_pm4) \
+ ((coher_status_pm4 & COHER_STATUS_PM4_DEST_BASE_1_ENA_MASK) >> COHER_STATUS_PM4_DEST_BASE_1_ENA_SHIFT)
+#define COHER_STATUS_PM4_GET_DEST_BASE_2_ENA(coher_status_pm4) \
+ ((coher_status_pm4 & COHER_STATUS_PM4_DEST_BASE_2_ENA_MASK) >> COHER_STATUS_PM4_DEST_BASE_2_ENA_SHIFT)
+#define COHER_STATUS_PM4_GET_DEST_BASE_3_ENA(coher_status_pm4) \
+ ((coher_status_pm4 & COHER_STATUS_PM4_DEST_BASE_3_ENA_MASK) >> COHER_STATUS_PM4_DEST_BASE_3_ENA_SHIFT)
+#define COHER_STATUS_PM4_GET_DEST_BASE_4_ENA(coher_status_pm4) \
+ ((coher_status_pm4 & COHER_STATUS_PM4_DEST_BASE_4_ENA_MASK) >> COHER_STATUS_PM4_DEST_BASE_4_ENA_SHIFT)
+#define COHER_STATUS_PM4_GET_DEST_BASE_5_ENA(coher_status_pm4) \
+ ((coher_status_pm4 & COHER_STATUS_PM4_DEST_BASE_5_ENA_MASK) >> COHER_STATUS_PM4_DEST_BASE_5_ENA_SHIFT)
+#define COHER_STATUS_PM4_GET_DEST_BASE_6_ENA(coher_status_pm4) \
+ ((coher_status_pm4 & COHER_STATUS_PM4_DEST_BASE_6_ENA_MASK) >> COHER_STATUS_PM4_DEST_BASE_6_ENA_SHIFT)
+#define COHER_STATUS_PM4_GET_DEST_BASE_7_ENA(coher_status_pm4) \
+ ((coher_status_pm4 & COHER_STATUS_PM4_DEST_BASE_7_ENA_MASK) >> COHER_STATUS_PM4_DEST_BASE_7_ENA_SHIFT)
+#define COHER_STATUS_PM4_GET_TC_ACTION_ENA(coher_status_pm4) \
+ ((coher_status_pm4 & COHER_STATUS_PM4_TC_ACTION_ENA_MASK) >> COHER_STATUS_PM4_TC_ACTION_ENA_SHIFT)
+#define COHER_STATUS_PM4_GET_STATUS(coher_status_pm4) \
+ ((coher_status_pm4 & COHER_STATUS_PM4_STATUS_MASK) >> COHER_STATUS_PM4_STATUS_SHIFT)
+
+#define COHER_STATUS_PM4_SET_MATCHING_CONTEXTS(coher_status_pm4_reg, matching_contexts) \
+ coher_status_pm4_reg = (coher_status_pm4_reg & ~COHER_STATUS_PM4_MATCHING_CONTEXTS_MASK) | (matching_contexts << COHER_STATUS_PM4_MATCHING_CONTEXTS_SHIFT)
+#define COHER_STATUS_PM4_SET_RB_COPY_DEST_BASE_ENA(coher_status_pm4_reg, rb_copy_dest_base_ena) \
+ coher_status_pm4_reg = (coher_status_pm4_reg & ~COHER_STATUS_PM4_RB_COPY_DEST_BASE_ENA_MASK) | (rb_copy_dest_base_ena << COHER_STATUS_PM4_RB_COPY_DEST_BASE_ENA_SHIFT)
+#define COHER_STATUS_PM4_SET_DEST_BASE_0_ENA(coher_status_pm4_reg, dest_base_0_ena) \
+ coher_status_pm4_reg = (coher_status_pm4_reg & ~COHER_STATUS_PM4_DEST_BASE_0_ENA_MASK) | (dest_base_0_ena << COHER_STATUS_PM4_DEST_BASE_0_ENA_SHIFT)
+#define COHER_STATUS_PM4_SET_DEST_BASE_1_ENA(coher_status_pm4_reg, dest_base_1_ena) \
+ coher_status_pm4_reg = (coher_status_pm4_reg & ~COHER_STATUS_PM4_DEST_BASE_1_ENA_MASK) | (dest_base_1_ena << COHER_STATUS_PM4_DEST_BASE_1_ENA_SHIFT)
+#define COHER_STATUS_PM4_SET_DEST_BASE_2_ENA(coher_status_pm4_reg, dest_base_2_ena) \
+ coher_status_pm4_reg = (coher_status_pm4_reg & ~COHER_STATUS_PM4_DEST_BASE_2_ENA_MASK) | (dest_base_2_ena << COHER_STATUS_PM4_DEST_BASE_2_ENA_SHIFT)
+#define COHER_STATUS_PM4_SET_DEST_BASE_3_ENA(coher_status_pm4_reg, dest_base_3_ena) \
+ coher_status_pm4_reg = (coher_status_pm4_reg & ~COHER_STATUS_PM4_DEST_BASE_3_ENA_MASK) | (dest_base_3_ena << COHER_STATUS_PM4_DEST_BASE_3_ENA_SHIFT)
+#define COHER_STATUS_PM4_SET_DEST_BASE_4_ENA(coher_status_pm4_reg, dest_base_4_ena) \
+ coher_status_pm4_reg = (coher_status_pm4_reg & ~COHER_STATUS_PM4_DEST_BASE_4_ENA_MASK) | (dest_base_4_ena << COHER_STATUS_PM4_DEST_BASE_4_ENA_SHIFT)
+#define COHER_STATUS_PM4_SET_DEST_BASE_5_ENA(coher_status_pm4_reg, dest_base_5_ena) \
+ coher_status_pm4_reg = (coher_status_pm4_reg & ~COHER_STATUS_PM4_DEST_BASE_5_ENA_MASK) | (dest_base_5_ena << COHER_STATUS_PM4_DEST_BASE_5_ENA_SHIFT)
+#define COHER_STATUS_PM4_SET_DEST_BASE_6_ENA(coher_status_pm4_reg, dest_base_6_ena) \
+ coher_status_pm4_reg = (coher_status_pm4_reg & ~COHER_STATUS_PM4_DEST_BASE_6_ENA_MASK) | (dest_base_6_ena << COHER_STATUS_PM4_DEST_BASE_6_ENA_SHIFT)
+#define COHER_STATUS_PM4_SET_DEST_BASE_7_ENA(coher_status_pm4_reg, dest_base_7_ena) \
+ coher_status_pm4_reg = (coher_status_pm4_reg & ~COHER_STATUS_PM4_DEST_BASE_7_ENA_MASK) | (dest_base_7_ena << COHER_STATUS_PM4_DEST_BASE_7_ENA_SHIFT)
+#define COHER_STATUS_PM4_SET_TC_ACTION_ENA(coher_status_pm4_reg, tc_action_ena) \
+ coher_status_pm4_reg = (coher_status_pm4_reg & ~COHER_STATUS_PM4_TC_ACTION_ENA_MASK) | (tc_action_ena << COHER_STATUS_PM4_TC_ACTION_ENA_SHIFT)
+#define COHER_STATUS_PM4_SET_STATUS(coher_status_pm4_reg, status) \
+ coher_status_pm4_reg = (coher_status_pm4_reg & ~COHER_STATUS_PM4_STATUS_MASK) | (status << COHER_STATUS_PM4_STATUS_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _coher_status_pm4_t {
+ unsigned int matching_contexts : COHER_STATUS_PM4_MATCHING_CONTEXTS_SIZE;
+ unsigned int rb_copy_dest_base_ena : COHER_STATUS_PM4_RB_COPY_DEST_BASE_ENA_SIZE;
+ unsigned int dest_base_0_ena : COHER_STATUS_PM4_DEST_BASE_0_ENA_SIZE;
+ unsigned int dest_base_1_ena : COHER_STATUS_PM4_DEST_BASE_1_ENA_SIZE;
+ unsigned int dest_base_2_ena : COHER_STATUS_PM4_DEST_BASE_2_ENA_SIZE;
+ unsigned int dest_base_3_ena : COHER_STATUS_PM4_DEST_BASE_3_ENA_SIZE;
+ unsigned int dest_base_4_ena : COHER_STATUS_PM4_DEST_BASE_4_ENA_SIZE;
+ unsigned int dest_base_5_ena : COHER_STATUS_PM4_DEST_BASE_5_ENA_SIZE;
+ unsigned int dest_base_6_ena : COHER_STATUS_PM4_DEST_BASE_6_ENA_SIZE;
+ unsigned int dest_base_7_ena : COHER_STATUS_PM4_DEST_BASE_7_ENA_SIZE;
+ unsigned int : 8;
+ unsigned int tc_action_ena : COHER_STATUS_PM4_TC_ACTION_ENA_SIZE;
+ unsigned int : 5;
+ unsigned int status : COHER_STATUS_PM4_STATUS_SIZE;
+ } coher_status_pm4_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _coher_status_pm4_t {
+ unsigned int status : COHER_STATUS_PM4_STATUS_SIZE;
+ unsigned int : 5;
+ unsigned int tc_action_ena : COHER_STATUS_PM4_TC_ACTION_ENA_SIZE;
+ unsigned int : 8;
+ unsigned int dest_base_7_ena : COHER_STATUS_PM4_DEST_BASE_7_ENA_SIZE;
+ unsigned int dest_base_6_ena : COHER_STATUS_PM4_DEST_BASE_6_ENA_SIZE;
+ unsigned int dest_base_5_ena : COHER_STATUS_PM4_DEST_BASE_5_ENA_SIZE;
+ unsigned int dest_base_4_ena : COHER_STATUS_PM4_DEST_BASE_4_ENA_SIZE;
+ unsigned int dest_base_3_ena : COHER_STATUS_PM4_DEST_BASE_3_ENA_SIZE;
+ unsigned int dest_base_2_ena : COHER_STATUS_PM4_DEST_BASE_2_ENA_SIZE;
+ unsigned int dest_base_1_ena : COHER_STATUS_PM4_DEST_BASE_1_ENA_SIZE;
+ unsigned int dest_base_0_ena : COHER_STATUS_PM4_DEST_BASE_0_ENA_SIZE;
+ unsigned int rb_copy_dest_base_ena : COHER_STATUS_PM4_RB_COPY_DEST_BASE_ENA_SIZE;
+ unsigned int matching_contexts : COHER_STATUS_PM4_MATCHING_CONTEXTS_SIZE;
+ } coher_status_pm4_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ coher_status_pm4_t f;
+} coher_status_pm4_u;
+
+
+/*
+ * COHER_SIZE_HOST struct
+ */
+
+#define COHER_SIZE_HOST_SIZE_SIZE 32
+
+#define COHER_SIZE_HOST_SIZE_SHIFT 0
+
+#define COHER_SIZE_HOST_SIZE_MASK 0xffffffff
+
+#define COHER_SIZE_HOST_MASK \
+ (COHER_SIZE_HOST_SIZE_MASK)
+
+#define COHER_SIZE_HOST(size) \
+ ((size << COHER_SIZE_HOST_SIZE_SHIFT))
+
+#define COHER_SIZE_HOST_GET_SIZE(coher_size_host) \
+ ((coher_size_host & COHER_SIZE_HOST_SIZE_MASK) >> COHER_SIZE_HOST_SIZE_SHIFT)
+
+#define COHER_SIZE_HOST_SET_SIZE(coher_size_host_reg, size) \
+ coher_size_host_reg = (coher_size_host_reg & ~COHER_SIZE_HOST_SIZE_MASK) | (size << COHER_SIZE_HOST_SIZE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _coher_size_host_t {
+ unsigned int size : COHER_SIZE_HOST_SIZE_SIZE;
+ } coher_size_host_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _coher_size_host_t {
+ unsigned int size : COHER_SIZE_HOST_SIZE_SIZE;
+ } coher_size_host_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ coher_size_host_t f;
+} coher_size_host_u;
+
+
+/*
+ * COHER_BASE_HOST struct
+ */
+
+#define COHER_BASE_HOST_BASE_SIZE 32
+
+#define COHER_BASE_HOST_BASE_SHIFT 0
+
+#define COHER_BASE_HOST_BASE_MASK 0xffffffff
+
+#define COHER_BASE_HOST_MASK \
+ (COHER_BASE_HOST_BASE_MASK)
+
+#define COHER_BASE_HOST(base) \
+ ((base << COHER_BASE_HOST_BASE_SHIFT))
+
+#define COHER_BASE_HOST_GET_BASE(coher_base_host) \
+ ((coher_base_host & COHER_BASE_HOST_BASE_MASK) >> COHER_BASE_HOST_BASE_SHIFT)
+
+#define COHER_BASE_HOST_SET_BASE(coher_base_host_reg, base) \
+ coher_base_host_reg = (coher_base_host_reg & ~COHER_BASE_HOST_BASE_MASK) | (base << COHER_BASE_HOST_BASE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _coher_base_host_t {
+ unsigned int base : COHER_BASE_HOST_BASE_SIZE;
+ } coher_base_host_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _coher_base_host_t {
+ unsigned int base : COHER_BASE_HOST_BASE_SIZE;
+ } coher_base_host_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ coher_base_host_t f;
+} coher_base_host_u;
+
+
+/*
+ * COHER_STATUS_HOST struct
+ */
+
+#define COHER_STATUS_HOST_MATCHING_CONTEXTS_SIZE 8
+#define COHER_STATUS_HOST_RB_COPY_DEST_BASE_ENA_SIZE 1
+#define COHER_STATUS_HOST_DEST_BASE_0_ENA_SIZE 1
+#define COHER_STATUS_HOST_DEST_BASE_1_ENA_SIZE 1
+#define COHER_STATUS_HOST_DEST_BASE_2_ENA_SIZE 1
+#define COHER_STATUS_HOST_DEST_BASE_3_ENA_SIZE 1
+#define COHER_STATUS_HOST_DEST_BASE_4_ENA_SIZE 1
+#define COHER_STATUS_HOST_DEST_BASE_5_ENA_SIZE 1
+#define COHER_STATUS_HOST_DEST_BASE_6_ENA_SIZE 1
+#define COHER_STATUS_HOST_DEST_BASE_7_ENA_SIZE 1
+#define COHER_STATUS_HOST_TC_ACTION_ENA_SIZE 1
+#define COHER_STATUS_HOST_STATUS_SIZE 1
+
+#define COHER_STATUS_HOST_MATCHING_CONTEXTS_SHIFT 0
+#define COHER_STATUS_HOST_RB_COPY_DEST_BASE_ENA_SHIFT 8
+#define COHER_STATUS_HOST_DEST_BASE_0_ENA_SHIFT 9
+#define COHER_STATUS_HOST_DEST_BASE_1_ENA_SHIFT 10
+#define COHER_STATUS_HOST_DEST_BASE_2_ENA_SHIFT 11
+#define COHER_STATUS_HOST_DEST_BASE_3_ENA_SHIFT 12
+#define COHER_STATUS_HOST_DEST_BASE_4_ENA_SHIFT 13
+#define COHER_STATUS_HOST_DEST_BASE_5_ENA_SHIFT 14
+#define COHER_STATUS_HOST_DEST_BASE_6_ENA_SHIFT 15
+#define COHER_STATUS_HOST_DEST_BASE_7_ENA_SHIFT 16
+#define COHER_STATUS_HOST_TC_ACTION_ENA_SHIFT 25
+#define COHER_STATUS_HOST_STATUS_SHIFT 31
+
+#define COHER_STATUS_HOST_MATCHING_CONTEXTS_MASK 0x000000ff
+#define COHER_STATUS_HOST_RB_COPY_DEST_BASE_ENA_MASK 0x00000100
+#define COHER_STATUS_HOST_DEST_BASE_0_ENA_MASK 0x00000200
+#define COHER_STATUS_HOST_DEST_BASE_1_ENA_MASK 0x00000400
+#define COHER_STATUS_HOST_DEST_BASE_2_ENA_MASK 0x00000800
+#define COHER_STATUS_HOST_DEST_BASE_3_ENA_MASK 0x00001000
+#define COHER_STATUS_HOST_DEST_BASE_4_ENA_MASK 0x00002000
+#define COHER_STATUS_HOST_DEST_BASE_5_ENA_MASK 0x00004000
+#define COHER_STATUS_HOST_DEST_BASE_6_ENA_MASK 0x00008000
+#define COHER_STATUS_HOST_DEST_BASE_7_ENA_MASK 0x00010000
+#define COHER_STATUS_HOST_TC_ACTION_ENA_MASK 0x02000000
+#define COHER_STATUS_HOST_STATUS_MASK 0x80000000
+
+#define COHER_STATUS_HOST_MASK \
+ (COHER_STATUS_HOST_MATCHING_CONTEXTS_MASK | \
+ COHER_STATUS_HOST_RB_COPY_DEST_BASE_ENA_MASK | \
+ COHER_STATUS_HOST_DEST_BASE_0_ENA_MASK | \
+ COHER_STATUS_HOST_DEST_BASE_1_ENA_MASK | \
+ COHER_STATUS_HOST_DEST_BASE_2_ENA_MASK | \
+ COHER_STATUS_HOST_DEST_BASE_3_ENA_MASK | \
+ COHER_STATUS_HOST_DEST_BASE_4_ENA_MASK | \
+ COHER_STATUS_HOST_DEST_BASE_5_ENA_MASK | \
+ COHER_STATUS_HOST_DEST_BASE_6_ENA_MASK | \
+ COHER_STATUS_HOST_DEST_BASE_7_ENA_MASK | \
+ COHER_STATUS_HOST_TC_ACTION_ENA_MASK | \
+ COHER_STATUS_HOST_STATUS_MASK)
+
+#define COHER_STATUS_HOST(matching_contexts, rb_copy_dest_base_ena, dest_base_0_ena, dest_base_1_ena, dest_base_2_ena, dest_base_3_ena, dest_base_4_ena, dest_base_5_ena, dest_base_6_ena, dest_base_7_ena, tc_action_ena, status) \
+ ((matching_contexts << COHER_STATUS_HOST_MATCHING_CONTEXTS_SHIFT) | \
+ (rb_copy_dest_base_ena << COHER_STATUS_HOST_RB_COPY_DEST_BASE_ENA_SHIFT) | \
+ (dest_base_0_ena << COHER_STATUS_HOST_DEST_BASE_0_ENA_SHIFT) | \
+ (dest_base_1_ena << COHER_STATUS_HOST_DEST_BASE_1_ENA_SHIFT) | \
+ (dest_base_2_ena << COHER_STATUS_HOST_DEST_BASE_2_ENA_SHIFT) | \
+ (dest_base_3_ena << COHER_STATUS_HOST_DEST_BASE_3_ENA_SHIFT) | \
+ (dest_base_4_ena << COHER_STATUS_HOST_DEST_BASE_4_ENA_SHIFT) | \
+ (dest_base_5_ena << COHER_STATUS_HOST_DEST_BASE_5_ENA_SHIFT) | \
+ (dest_base_6_ena << COHER_STATUS_HOST_DEST_BASE_6_ENA_SHIFT) | \
+ (dest_base_7_ena << COHER_STATUS_HOST_DEST_BASE_7_ENA_SHIFT) | \
+ (tc_action_ena << COHER_STATUS_HOST_TC_ACTION_ENA_SHIFT) | \
+ (status << COHER_STATUS_HOST_STATUS_SHIFT))
+
+#define COHER_STATUS_HOST_GET_MATCHING_CONTEXTS(coher_status_host) \
+ ((coher_status_host & COHER_STATUS_HOST_MATCHING_CONTEXTS_MASK) >> COHER_STATUS_HOST_MATCHING_CONTEXTS_SHIFT)
+#define COHER_STATUS_HOST_GET_RB_COPY_DEST_BASE_ENA(coher_status_host) \
+ ((coher_status_host & COHER_STATUS_HOST_RB_COPY_DEST_BASE_ENA_MASK) >> COHER_STATUS_HOST_RB_COPY_DEST_BASE_ENA_SHIFT)
+#define COHER_STATUS_HOST_GET_DEST_BASE_0_ENA(coher_status_host) \
+ ((coher_status_host & COHER_STATUS_HOST_DEST_BASE_0_ENA_MASK) >> COHER_STATUS_HOST_DEST_BASE_0_ENA_SHIFT)
+#define COHER_STATUS_HOST_GET_DEST_BASE_1_ENA(coher_status_host) \
+ ((coher_status_host & COHER_STATUS_HOST_DEST_BASE_1_ENA_MASK) >> COHER_STATUS_HOST_DEST_BASE_1_ENA_SHIFT)
+#define COHER_STATUS_HOST_GET_DEST_BASE_2_ENA(coher_status_host) \
+ ((coher_status_host & COHER_STATUS_HOST_DEST_BASE_2_ENA_MASK) >> COHER_STATUS_HOST_DEST_BASE_2_ENA_SHIFT)
+#define COHER_STATUS_HOST_GET_DEST_BASE_3_ENA(coher_status_host) \
+ ((coher_status_host & COHER_STATUS_HOST_DEST_BASE_3_ENA_MASK) >> COHER_STATUS_HOST_DEST_BASE_3_ENA_SHIFT)
+#define COHER_STATUS_HOST_GET_DEST_BASE_4_ENA(coher_status_host) \
+ ((coher_status_host & COHER_STATUS_HOST_DEST_BASE_4_ENA_MASK) >> COHER_STATUS_HOST_DEST_BASE_4_ENA_SHIFT)
+#define COHER_STATUS_HOST_GET_DEST_BASE_5_ENA(coher_status_host) \
+ ((coher_status_host & COHER_STATUS_HOST_DEST_BASE_5_ENA_MASK) >> COHER_STATUS_HOST_DEST_BASE_5_ENA_SHIFT)
+#define COHER_STATUS_HOST_GET_DEST_BASE_6_ENA(coher_status_host) \
+ ((coher_status_host & COHER_STATUS_HOST_DEST_BASE_6_ENA_MASK) >> COHER_STATUS_HOST_DEST_BASE_6_ENA_SHIFT)
+#define COHER_STATUS_HOST_GET_DEST_BASE_7_ENA(coher_status_host) \
+ ((coher_status_host & COHER_STATUS_HOST_DEST_BASE_7_ENA_MASK) >> COHER_STATUS_HOST_DEST_BASE_7_ENA_SHIFT)
+#define COHER_STATUS_HOST_GET_TC_ACTION_ENA(coher_status_host) \
+ ((coher_status_host & COHER_STATUS_HOST_TC_ACTION_ENA_MASK) >> COHER_STATUS_HOST_TC_ACTION_ENA_SHIFT)
+#define COHER_STATUS_HOST_GET_STATUS(coher_status_host) \
+ ((coher_status_host & COHER_STATUS_HOST_STATUS_MASK) >> COHER_STATUS_HOST_STATUS_SHIFT)
+
+#define COHER_STATUS_HOST_SET_MATCHING_CONTEXTS(coher_status_host_reg, matching_contexts) \
+ coher_status_host_reg = (coher_status_host_reg & ~COHER_STATUS_HOST_MATCHING_CONTEXTS_MASK) | (matching_contexts << COHER_STATUS_HOST_MATCHING_CONTEXTS_SHIFT)
+#define COHER_STATUS_HOST_SET_RB_COPY_DEST_BASE_ENA(coher_status_host_reg, rb_copy_dest_base_ena) \
+ coher_status_host_reg = (coher_status_host_reg & ~COHER_STATUS_HOST_RB_COPY_DEST_BASE_ENA_MASK) | (rb_copy_dest_base_ena << COHER_STATUS_HOST_RB_COPY_DEST_BASE_ENA_SHIFT)
+#define COHER_STATUS_HOST_SET_DEST_BASE_0_ENA(coher_status_host_reg, dest_base_0_ena) \
+ coher_status_host_reg = (coher_status_host_reg & ~COHER_STATUS_HOST_DEST_BASE_0_ENA_MASK) | (dest_base_0_ena << COHER_STATUS_HOST_DEST_BASE_0_ENA_SHIFT)
+#define COHER_STATUS_HOST_SET_DEST_BASE_1_ENA(coher_status_host_reg, dest_base_1_ena) \
+ coher_status_host_reg = (coher_status_host_reg & ~COHER_STATUS_HOST_DEST_BASE_1_ENA_MASK) | (dest_base_1_ena << COHER_STATUS_HOST_DEST_BASE_1_ENA_SHIFT)
+#define COHER_STATUS_HOST_SET_DEST_BASE_2_ENA(coher_status_host_reg, dest_base_2_ena) \
+ coher_status_host_reg = (coher_status_host_reg & ~COHER_STATUS_HOST_DEST_BASE_2_ENA_MASK) | (dest_base_2_ena << COHER_STATUS_HOST_DEST_BASE_2_ENA_SHIFT)
+#define COHER_STATUS_HOST_SET_DEST_BASE_3_ENA(coher_status_host_reg, dest_base_3_ena) \
+ coher_status_host_reg = (coher_status_host_reg & ~COHER_STATUS_HOST_DEST_BASE_3_ENA_MASK) | (dest_base_3_ena << COHER_STATUS_HOST_DEST_BASE_3_ENA_SHIFT)
+#define COHER_STATUS_HOST_SET_DEST_BASE_4_ENA(coher_status_host_reg, dest_base_4_ena) \
+ coher_status_host_reg = (coher_status_host_reg & ~COHER_STATUS_HOST_DEST_BASE_4_ENA_MASK) | (dest_base_4_ena << COHER_STATUS_HOST_DEST_BASE_4_ENA_SHIFT)
+#define COHER_STATUS_HOST_SET_DEST_BASE_5_ENA(coher_status_host_reg, dest_base_5_ena) \
+ coher_status_host_reg = (coher_status_host_reg & ~COHER_STATUS_HOST_DEST_BASE_5_ENA_MASK) | (dest_base_5_ena << COHER_STATUS_HOST_DEST_BASE_5_ENA_SHIFT)
+#define COHER_STATUS_HOST_SET_DEST_BASE_6_ENA(coher_status_host_reg, dest_base_6_ena) \
+ coher_status_host_reg = (coher_status_host_reg & ~COHER_STATUS_HOST_DEST_BASE_6_ENA_MASK) | (dest_base_6_ena << COHER_STATUS_HOST_DEST_BASE_6_ENA_SHIFT)
+#define COHER_STATUS_HOST_SET_DEST_BASE_7_ENA(coher_status_host_reg, dest_base_7_ena) \
+ coher_status_host_reg = (coher_status_host_reg & ~COHER_STATUS_HOST_DEST_BASE_7_ENA_MASK) | (dest_base_7_ena << COHER_STATUS_HOST_DEST_BASE_7_ENA_SHIFT)
+#define COHER_STATUS_HOST_SET_TC_ACTION_ENA(coher_status_host_reg, tc_action_ena) \
+ coher_status_host_reg = (coher_status_host_reg & ~COHER_STATUS_HOST_TC_ACTION_ENA_MASK) | (tc_action_ena << COHER_STATUS_HOST_TC_ACTION_ENA_SHIFT)
+#define COHER_STATUS_HOST_SET_STATUS(coher_status_host_reg, status) \
+ coher_status_host_reg = (coher_status_host_reg & ~COHER_STATUS_HOST_STATUS_MASK) | (status << COHER_STATUS_HOST_STATUS_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _coher_status_host_t {
+ unsigned int matching_contexts : COHER_STATUS_HOST_MATCHING_CONTEXTS_SIZE;
+ unsigned int rb_copy_dest_base_ena : COHER_STATUS_HOST_RB_COPY_DEST_BASE_ENA_SIZE;
+ unsigned int dest_base_0_ena : COHER_STATUS_HOST_DEST_BASE_0_ENA_SIZE;
+ unsigned int dest_base_1_ena : COHER_STATUS_HOST_DEST_BASE_1_ENA_SIZE;
+ unsigned int dest_base_2_ena : COHER_STATUS_HOST_DEST_BASE_2_ENA_SIZE;
+ unsigned int dest_base_3_ena : COHER_STATUS_HOST_DEST_BASE_3_ENA_SIZE;
+ unsigned int dest_base_4_ena : COHER_STATUS_HOST_DEST_BASE_4_ENA_SIZE;
+ unsigned int dest_base_5_ena : COHER_STATUS_HOST_DEST_BASE_5_ENA_SIZE;
+ unsigned int dest_base_6_ena : COHER_STATUS_HOST_DEST_BASE_6_ENA_SIZE;
+ unsigned int dest_base_7_ena : COHER_STATUS_HOST_DEST_BASE_7_ENA_SIZE;
+ unsigned int : 8;
+ unsigned int tc_action_ena : COHER_STATUS_HOST_TC_ACTION_ENA_SIZE;
+ unsigned int : 5;
+ unsigned int status : COHER_STATUS_HOST_STATUS_SIZE;
+ } coher_status_host_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _coher_status_host_t {
+ unsigned int status : COHER_STATUS_HOST_STATUS_SIZE;
+ unsigned int : 5;
+ unsigned int tc_action_ena : COHER_STATUS_HOST_TC_ACTION_ENA_SIZE;
+ unsigned int : 8;
+ unsigned int dest_base_7_ena : COHER_STATUS_HOST_DEST_BASE_7_ENA_SIZE;
+ unsigned int dest_base_6_ena : COHER_STATUS_HOST_DEST_BASE_6_ENA_SIZE;
+ unsigned int dest_base_5_ena : COHER_STATUS_HOST_DEST_BASE_5_ENA_SIZE;
+ unsigned int dest_base_4_ena : COHER_STATUS_HOST_DEST_BASE_4_ENA_SIZE;
+ unsigned int dest_base_3_ena : COHER_STATUS_HOST_DEST_BASE_3_ENA_SIZE;
+ unsigned int dest_base_2_ena : COHER_STATUS_HOST_DEST_BASE_2_ENA_SIZE;
+ unsigned int dest_base_1_ena : COHER_STATUS_HOST_DEST_BASE_1_ENA_SIZE;
+ unsigned int dest_base_0_ena : COHER_STATUS_HOST_DEST_BASE_0_ENA_SIZE;
+ unsigned int rb_copy_dest_base_ena : COHER_STATUS_HOST_RB_COPY_DEST_BASE_ENA_SIZE;
+ unsigned int matching_contexts : COHER_STATUS_HOST_MATCHING_CONTEXTS_SIZE;
+ } coher_status_host_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ coher_status_host_t f;
+} coher_status_host_u;
+
+
+/*
+ * COHER_DEST_BASE_0 struct
+ */
+
+#define COHER_DEST_BASE_0_DEST_BASE_0_SIZE 20
+
+#define COHER_DEST_BASE_0_DEST_BASE_0_SHIFT 12
+
+#define COHER_DEST_BASE_0_DEST_BASE_0_MASK 0xfffff000
+
+#define COHER_DEST_BASE_0_MASK \
+ (COHER_DEST_BASE_0_DEST_BASE_0_MASK)
+
+#define COHER_DEST_BASE_0(dest_base_0) \
+ ((dest_base_0 << COHER_DEST_BASE_0_DEST_BASE_0_SHIFT))
+
+#define COHER_DEST_BASE_0_GET_DEST_BASE_0(coher_dest_base_0) \
+ ((coher_dest_base_0 & COHER_DEST_BASE_0_DEST_BASE_0_MASK) >> COHER_DEST_BASE_0_DEST_BASE_0_SHIFT)
+
+#define COHER_DEST_BASE_0_SET_DEST_BASE_0(coher_dest_base_0_reg, dest_base_0) \
+ coher_dest_base_0_reg = (coher_dest_base_0_reg & ~COHER_DEST_BASE_0_DEST_BASE_0_MASK) | (dest_base_0 << COHER_DEST_BASE_0_DEST_BASE_0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _coher_dest_base_0_t {
+ unsigned int : 12;
+ unsigned int dest_base_0 : COHER_DEST_BASE_0_DEST_BASE_0_SIZE;
+ } coher_dest_base_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _coher_dest_base_0_t {
+ unsigned int dest_base_0 : COHER_DEST_BASE_0_DEST_BASE_0_SIZE;
+ unsigned int : 12;
+ } coher_dest_base_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ coher_dest_base_0_t f;
+} coher_dest_base_0_u;
+
+
+/*
+ * COHER_DEST_BASE_1 struct
+ */
+
+#define COHER_DEST_BASE_1_DEST_BASE_1_SIZE 20
+
+#define COHER_DEST_BASE_1_DEST_BASE_1_SHIFT 12
+
+#define COHER_DEST_BASE_1_DEST_BASE_1_MASK 0xfffff000
+
+#define COHER_DEST_BASE_1_MASK \
+ (COHER_DEST_BASE_1_DEST_BASE_1_MASK)
+
+#define COHER_DEST_BASE_1(dest_base_1) \
+ ((dest_base_1 << COHER_DEST_BASE_1_DEST_BASE_1_SHIFT))
+
+#define COHER_DEST_BASE_1_GET_DEST_BASE_1(coher_dest_base_1) \
+ ((coher_dest_base_1 & COHER_DEST_BASE_1_DEST_BASE_1_MASK) >> COHER_DEST_BASE_1_DEST_BASE_1_SHIFT)
+
+#define COHER_DEST_BASE_1_SET_DEST_BASE_1(coher_dest_base_1_reg, dest_base_1) \
+ coher_dest_base_1_reg = (coher_dest_base_1_reg & ~COHER_DEST_BASE_1_DEST_BASE_1_MASK) | (dest_base_1 << COHER_DEST_BASE_1_DEST_BASE_1_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _coher_dest_base_1_t {
+ unsigned int : 12;
+ unsigned int dest_base_1 : COHER_DEST_BASE_1_DEST_BASE_1_SIZE;
+ } coher_dest_base_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _coher_dest_base_1_t {
+ unsigned int dest_base_1 : COHER_DEST_BASE_1_DEST_BASE_1_SIZE;
+ unsigned int : 12;
+ } coher_dest_base_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ coher_dest_base_1_t f;
+} coher_dest_base_1_u;
+
+
+/*
+ * COHER_DEST_BASE_2 struct
+ */
+
+#define COHER_DEST_BASE_2_DEST_BASE_2_SIZE 20
+
+#define COHER_DEST_BASE_2_DEST_BASE_2_SHIFT 12
+
+#define COHER_DEST_BASE_2_DEST_BASE_2_MASK 0xfffff000
+
+#define COHER_DEST_BASE_2_MASK \
+ (COHER_DEST_BASE_2_DEST_BASE_2_MASK)
+
+#define COHER_DEST_BASE_2(dest_base_2) \
+ ((dest_base_2 << COHER_DEST_BASE_2_DEST_BASE_2_SHIFT))
+
+#define COHER_DEST_BASE_2_GET_DEST_BASE_2(coher_dest_base_2) \
+ ((coher_dest_base_2 & COHER_DEST_BASE_2_DEST_BASE_2_MASK) >> COHER_DEST_BASE_2_DEST_BASE_2_SHIFT)
+
+#define COHER_DEST_BASE_2_SET_DEST_BASE_2(coher_dest_base_2_reg, dest_base_2) \
+ coher_dest_base_2_reg = (coher_dest_base_2_reg & ~COHER_DEST_BASE_2_DEST_BASE_2_MASK) | (dest_base_2 << COHER_DEST_BASE_2_DEST_BASE_2_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _coher_dest_base_2_t {
+ unsigned int : 12;
+ unsigned int dest_base_2 : COHER_DEST_BASE_2_DEST_BASE_2_SIZE;
+ } coher_dest_base_2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _coher_dest_base_2_t {
+ unsigned int dest_base_2 : COHER_DEST_BASE_2_DEST_BASE_2_SIZE;
+ unsigned int : 12;
+ } coher_dest_base_2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ coher_dest_base_2_t f;
+} coher_dest_base_2_u;
+
+
+/*
+ * COHER_DEST_BASE_3 struct
+ */
+
+#define COHER_DEST_BASE_3_DEST_BASE_3_SIZE 20
+
+#define COHER_DEST_BASE_3_DEST_BASE_3_SHIFT 12
+
+#define COHER_DEST_BASE_3_DEST_BASE_3_MASK 0xfffff000
+
+#define COHER_DEST_BASE_3_MASK \
+ (COHER_DEST_BASE_3_DEST_BASE_3_MASK)
+
+#define COHER_DEST_BASE_3(dest_base_3) \
+ ((dest_base_3 << COHER_DEST_BASE_3_DEST_BASE_3_SHIFT))
+
+#define COHER_DEST_BASE_3_GET_DEST_BASE_3(coher_dest_base_3) \
+ ((coher_dest_base_3 & COHER_DEST_BASE_3_DEST_BASE_3_MASK) >> COHER_DEST_BASE_3_DEST_BASE_3_SHIFT)
+
+#define COHER_DEST_BASE_3_SET_DEST_BASE_3(coher_dest_base_3_reg, dest_base_3) \
+ coher_dest_base_3_reg = (coher_dest_base_3_reg & ~COHER_DEST_BASE_3_DEST_BASE_3_MASK) | (dest_base_3 << COHER_DEST_BASE_3_DEST_BASE_3_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _coher_dest_base_3_t {
+ unsigned int : 12;
+ unsigned int dest_base_3 : COHER_DEST_BASE_3_DEST_BASE_3_SIZE;
+ } coher_dest_base_3_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _coher_dest_base_3_t {
+ unsigned int dest_base_3 : COHER_DEST_BASE_3_DEST_BASE_3_SIZE;
+ unsigned int : 12;
+ } coher_dest_base_3_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ coher_dest_base_3_t f;
+} coher_dest_base_3_u;
+
+
+/*
+ * COHER_DEST_BASE_4 struct
+ */
+
+#define COHER_DEST_BASE_4_DEST_BASE_4_SIZE 20
+
+#define COHER_DEST_BASE_4_DEST_BASE_4_SHIFT 12
+
+#define COHER_DEST_BASE_4_DEST_BASE_4_MASK 0xfffff000
+
+#define COHER_DEST_BASE_4_MASK \
+ (COHER_DEST_BASE_4_DEST_BASE_4_MASK)
+
+#define COHER_DEST_BASE_4(dest_base_4) \
+ ((dest_base_4 << COHER_DEST_BASE_4_DEST_BASE_4_SHIFT))
+
+#define COHER_DEST_BASE_4_GET_DEST_BASE_4(coher_dest_base_4) \
+ ((coher_dest_base_4 & COHER_DEST_BASE_4_DEST_BASE_4_MASK) >> COHER_DEST_BASE_4_DEST_BASE_4_SHIFT)
+
+#define COHER_DEST_BASE_4_SET_DEST_BASE_4(coher_dest_base_4_reg, dest_base_4) \
+ coher_dest_base_4_reg = (coher_dest_base_4_reg & ~COHER_DEST_BASE_4_DEST_BASE_4_MASK) | (dest_base_4 << COHER_DEST_BASE_4_DEST_BASE_4_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _coher_dest_base_4_t {
+ unsigned int : 12;
+ unsigned int dest_base_4 : COHER_DEST_BASE_4_DEST_BASE_4_SIZE;
+ } coher_dest_base_4_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _coher_dest_base_4_t {
+ unsigned int dest_base_4 : COHER_DEST_BASE_4_DEST_BASE_4_SIZE;
+ unsigned int : 12;
+ } coher_dest_base_4_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ coher_dest_base_4_t f;
+} coher_dest_base_4_u;
+
+
+/*
+ * COHER_DEST_BASE_5 struct
+ */
+
+#define COHER_DEST_BASE_5_DEST_BASE_5_SIZE 20
+
+#define COHER_DEST_BASE_5_DEST_BASE_5_SHIFT 12
+
+#define COHER_DEST_BASE_5_DEST_BASE_5_MASK 0xfffff000
+
+#define COHER_DEST_BASE_5_MASK \
+ (COHER_DEST_BASE_5_DEST_BASE_5_MASK)
+
+#define COHER_DEST_BASE_5(dest_base_5) \
+ ((dest_base_5 << COHER_DEST_BASE_5_DEST_BASE_5_SHIFT))
+
+#define COHER_DEST_BASE_5_GET_DEST_BASE_5(coher_dest_base_5) \
+ ((coher_dest_base_5 & COHER_DEST_BASE_5_DEST_BASE_5_MASK) >> COHER_DEST_BASE_5_DEST_BASE_5_SHIFT)
+
+#define COHER_DEST_BASE_5_SET_DEST_BASE_5(coher_dest_base_5_reg, dest_base_5) \
+ coher_dest_base_5_reg = (coher_dest_base_5_reg & ~COHER_DEST_BASE_5_DEST_BASE_5_MASK) | (dest_base_5 << COHER_DEST_BASE_5_DEST_BASE_5_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _coher_dest_base_5_t {
+ unsigned int : 12;
+ unsigned int dest_base_5 : COHER_DEST_BASE_5_DEST_BASE_5_SIZE;
+ } coher_dest_base_5_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _coher_dest_base_5_t {
+ unsigned int dest_base_5 : COHER_DEST_BASE_5_DEST_BASE_5_SIZE;
+ unsigned int : 12;
+ } coher_dest_base_5_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ coher_dest_base_5_t f;
+} coher_dest_base_5_u;
+
+
+/*
+ * COHER_DEST_BASE_6 struct
+ */
+
+#define COHER_DEST_BASE_6_DEST_BASE_6_SIZE 20
+
+#define COHER_DEST_BASE_6_DEST_BASE_6_SHIFT 12
+
+#define COHER_DEST_BASE_6_DEST_BASE_6_MASK 0xfffff000
+
+#define COHER_DEST_BASE_6_MASK \
+ (COHER_DEST_BASE_6_DEST_BASE_6_MASK)
+
+#define COHER_DEST_BASE_6(dest_base_6) \
+ ((dest_base_6 << COHER_DEST_BASE_6_DEST_BASE_6_SHIFT))
+
+#define COHER_DEST_BASE_6_GET_DEST_BASE_6(coher_dest_base_6) \
+ ((coher_dest_base_6 & COHER_DEST_BASE_6_DEST_BASE_6_MASK) >> COHER_DEST_BASE_6_DEST_BASE_6_SHIFT)
+
+#define COHER_DEST_BASE_6_SET_DEST_BASE_6(coher_dest_base_6_reg, dest_base_6) \
+ coher_dest_base_6_reg = (coher_dest_base_6_reg & ~COHER_DEST_BASE_6_DEST_BASE_6_MASK) | (dest_base_6 << COHER_DEST_BASE_6_DEST_BASE_6_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _coher_dest_base_6_t {
+ unsigned int : 12;
+ unsigned int dest_base_6 : COHER_DEST_BASE_6_DEST_BASE_6_SIZE;
+ } coher_dest_base_6_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _coher_dest_base_6_t {
+ unsigned int dest_base_6 : COHER_DEST_BASE_6_DEST_BASE_6_SIZE;
+ unsigned int : 12;
+ } coher_dest_base_6_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ coher_dest_base_6_t f;
+} coher_dest_base_6_u;
+
+
+/*
+ * COHER_DEST_BASE_7 struct
+ */
+
+#define COHER_DEST_BASE_7_DEST_BASE_7_SIZE 20
+
+#define COHER_DEST_BASE_7_DEST_BASE_7_SHIFT 12
+
+#define COHER_DEST_BASE_7_DEST_BASE_7_MASK 0xfffff000
+
+#define COHER_DEST_BASE_7_MASK \
+ (COHER_DEST_BASE_7_DEST_BASE_7_MASK)
+
+#define COHER_DEST_BASE_7(dest_base_7) \
+ ((dest_base_7 << COHER_DEST_BASE_7_DEST_BASE_7_SHIFT))
+
+#define COHER_DEST_BASE_7_GET_DEST_BASE_7(coher_dest_base_7) \
+ ((coher_dest_base_7 & COHER_DEST_BASE_7_DEST_BASE_7_MASK) >> COHER_DEST_BASE_7_DEST_BASE_7_SHIFT)
+
+#define COHER_DEST_BASE_7_SET_DEST_BASE_7(coher_dest_base_7_reg, dest_base_7) \
+ coher_dest_base_7_reg = (coher_dest_base_7_reg & ~COHER_DEST_BASE_7_DEST_BASE_7_MASK) | (dest_base_7 << COHER_DEST_BASE_7_DEST_BASE_7_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _coher_dest_base_7_t {
+ unsigned int : 12;
+ unsigned int dest_base_7 : COHER_DEST_BASE_7_DEST_BASE_7_SIZE;
+ } coher_dest_base_7_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _coher_dest_base_7_t {
+ unsigned int dest_base_7 : COHER_DEST_BASE_7_DEST_BASE_7_SIZE;
+ unsigned int : 12;
+ } coher_dest_base_7_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ coher_dest_base_7_t f;
+} coher_dest_base_7_u;
+
+
+#endif
+
+
+#if !defined (_RBBM_FIDDLE_H)
+#define _RBBM_FIDDLE_H
+
+/*******************************************************
+ * Enums
+ *******************************************************/
+
+
+/*******************************************************
+ * Values
+ *******************************************************/
+
+
+/*******************************************************
+ * Structures
+ *******************************************************/
+
+/*
+ * WAIT_UNTIL struct
+ */
+
+#define WAIT_UNTIL_WAIT_RE_VSYNC_SIZE 1
+#define WAIT_UNTIL_WAIT_FE_VSYNC_SIZE 1
+#define WAIT_UNTIL_WAIT_VSYNC_SIZE 1
+#define WAIT_UNTIL_WAIT_DSPLY_ID0_SIZE 1
+#define WAIT_UNTIL_WAIT_DSPLY_ID1_SIZE 1
+#define WAIT_UNTIL_WAIT_DSPLY_ID2_SIZE 1
+#define WAIT_UNTIL_WAIT_CMDFIFO_SIZE 1
+#define WAIT_UNTIL_WAIT_2D_IDLE_SIZE 1
+#define WAIT_UNTIL_WAIT_3D_IDLE_SIZE 1
+#define WAIT_UNTIL_WAIT_2D_IDLECLEAN_SIZE 1
+#define WAIT_UNTIL_WAIT_3D_IDLECLEAN_SIZE 1
+#define WAIT_UNTIL_CMDFIFO_ENTRIES_SIZE 4
+
+#define WAIT_UNTIL_WAIT_RE_VSYNC_SHIFT 1
+#define WAIT_UNTIL_WAIT_FE_VSYNC_SHIFT 2
+#define WAIT_UNTIL_WAIT_VSYNC_SHIFT 3
+#define WAIT_UNTIL_WAIT_DSPLY_ID0_SHIFT 4
+#define WAIT_UNTIL_WAIT_DSPLY_ID1_SHIFT 5
+#define WAIT_UNTIL_WAIT_DSPLY_ID2_SHIFT 6
+#define WAIT_UNTIL_WAIT_CMDFIFO_SHIFT 10
+#define WAIT_UNTIL_WAIT_2D_IDLE_SHIFT 14
+#define WAIT_UNTIL_WAIT_3D_IDLE_SHIFT 15
+#define WAIT_UNTIL_WAIT_2D_IDLECLEAN_SHIFT 16
+#define WAIT_UNTIL_WAIT_3D_IDLECLEAN_SHIFT 17
+#define WAIT_UNTIL_CMDFIFO_ENTRIES_SHIFT 20
+
+#define WAIT_UNTIL_WAIT_RE_VSYNC_MASK 0x00000002
+#define WAIT_UNTIL_WAIT_FE_VSYNC_MASK 0x00000004
+#define WAIT_UNTIL_WAIT_VSYNC_MASK 0x00000008
+#define WAIT_UNTIL_WAIT_DSPLY_ID0_MASK 0x00000010
+#define WAIT_UNTIL_WAIT_DSPLY_ID1_MASK 0x00000020
+#define WAIT_UNTIL_WAIT_DSPLY_ID2_MASK 0x00000040
+#define WAIT_UNTIL_WAIT_CMDFIFO_MASK 0x00000400
+#define WAIT_UNTIL_WAIT_2D_IDLE_MASK 0x00004000
+#define WAIT_UNTIL_WAIT_3D_IDLE_MASK 0x00008000
+#define WAIT_UNTIL_WAIT_2D_IDLECLEAN_MASK 0x00010000
+#define WAIT_UNTIL_WAIT_3D_IDLECLEAN_MASK 0x00020000
+#define WAIT_UNTIL_CMDFIFO_ENTRIES_MASK 0x00f00000
+
+#define WAIT_UNTIL_MASK \
+ (WAIT_UNTIL_WAIT_RE_VSYNC_MASK | \
+ WAIT_UNTIL_WAIT_FE_VSYNC_MASK | \
+ WAIT_UNTIL_WAIT_VSYNC_MASK | \
+ WAIT_UNTIL_WAIT_DSPLY_ID0_MASK | \
+ WAIT_UNTIL_WAIT_DSPLY_ID1_MASK | \
+ WAIT_UNTIL_WAIT_DSPLY_ID2_MASK | \
+ WAIT_UNTIL_WAIT_CMDFIFO_MASK | \
+ WAIT_UNTIL_WAIT_2D_IDLE_MASK | \
+ WAIT_UNTIL_WAIT_3D_IDLE_MASK | \
+ WAIT_UNTIL_WAIT_2D_IDLECLEAN_MASK | \
+ WAIT_UNTIL_WAIT_3D_IDLECLEAN_MASK | \
+ WAIT_UNTIL_CMDFIFO_ENTRIES_MASK)
+
+#define WAIT_UNTIL(wait_re_vsync, wait_fe_vsync, wait_vsync, wait_dsply_id0, wait_dsply_id1, wait_dsply_id2, wait_cmdfifo, wait_2d_idle, wait_3d_idle, wait_2d_idleclean, wait_3d_idleclean, cmdfifo_entries) \
+ ((wait_re_vsync << WAIT_UNTIL_WAIT_RE_VSYNC_SHIFT) | \
+ (wait_fe_vsync << WAIT_UNTIL_WAIT_FE_VSYNC_SHIFT) | \
+ (wait_vsync << WAIT_UNTIL_WAIT_VSYNC_SHIFT) | \
+ (wait_dsply_id0 << WAIT_UNTIL_WAIT_DSPLY_ID0_SHIFT) | \
+ (wait_dsply_id1 << WAIT_UNTIL_WAIT_DSPLY_ID1_SHIFT) | \
+ (wait_dsply_id2 << WAIT_UNTIL_WAIT_DSPLY_ID2_SHIFT) | \
+ (wait_cmdfifo << WAIT_UNTIL_WAIT_CMDFIFO_SHIFT) | \
+ (wait_2d_idle << WAIT_UNTIL_WAIT_2D_IDLE_SHIFT) | \
+ (wait_3d_idle << WAIT_UNTIL_WAIT_3D_IDLE_SHIFT) | \
+ (wait_2d_idleclean << WAIT_UNTIL_WAIT_2D_IDLECLEAN_SHIFT) | \
+ (wait_3d_idleclean << WAIT_UNTIL_WAIT_3D_IDLECLEAN_SHIFT) | \
+ (cmdfifo_entries << WAIT_UNTIL_CMDFIFO_ENTRIES_SHIFT))
+
+#define WAIT_UNTIL_GET_WAIT_RE_VSYNC(wait_until) \
+ ((wait_until & WAIT_UNTIL_WAIT_RE_VSYNC_MASK) >> WAIT_UNTIL_WAIT_RE_VSYNC_SHIFT)
+#define WAIT_UNTIL_GET_WAIT_FE_VSYNC(wait_until) \
+ ((wait_until & WAIT_UNTIL_WAIT_FE_VSYNC_MASK) >> WAIT_UNTIL_WAIT_FE_VSYNC_SHIFT)
+#define WAIT_UNTIL_GET_WAIT_VSYNC(wait_until) \
+ ((wait_until & WAIT_UNTIL_WAIT_VSYNC_MASK) >> WAIT_UNTIL_WAIT_VSYNC_SHIFT)
+#define WAIT_UNTIL_GET_WAIT_DSPLY_ID0(wait_until) \
+ ((wait_until & WAIT_UNTIL_WAIT_DSPLY_ID0_MASK) >> WAIT_UNTIL_WAIT_DSPLY_ID0_SHIFT)
+#define WAIT_UNTIL_GET_WAIT_DSPLY_ID1(wait_until) \
+ ((wait_until & WAIT_UNTIL_WAIT_DSPLY_ID1_MASK) >> WAIT_UNTIL_WAIT_DSPLY_ID1_SHIFT)
+#define WAIT_UNTIL_GET_WAIT_DSPLY_ID2(wait_until) \
+ ((wait_until & WAIT_UNTIL_WAIT_DSPLY_ID2_MASK) >> WAIT_UNTIL_WAIT_DSPLY_ID2_SHIFT)
+#define WAIT_UNTIL_GET_WAIT_CMDFIFO(wait_until) \
+ ((wait_until & WAIT_UNTIL_WAIT_CMDFIFO_MASK) >> WAIT_UNTIL_WAIT_CMDFIFO_SHIFT)
+#define WAIT_UNTIL_GET_WAIT_2D_IDLE(wait_until) \
+ ((wait_until & WAIT_UNTIL_WAIT_2D_IDLE_MASK) >> WAIT_UNTIL_WAIT_2D_IDLE_SHIFT)
+#define WAIT_UNTIL_GET_WAIT_3D_IDLE(wait_until) \
+ ((wait_until & WAIT_UNTIL_WAIT_3D_IDLE_MASK) >> WAIT_UNTIL_WAIT_3D_IDLE_SHIFT)
+#define WAIT_UNTIL_GET_WAIT_2D_IDLECLEAN(wait_until) \
+ ((wait_until & WAIT_UNTIL_WAIT_2D_IDLECLEAN_MASK) >> WAIT_UNTIL_WAIT_2D_IDLECLEAN_SHIFT)
+#define WAIT_UNTIL_GET_WAIT_3D_IDLECLEAN(wait_until) \
+ ((wait_until & WAIT_UNTIL_WAIT_3D_IDLECLEAN_MASK) >> WAIT_UNTIL_WAIT_3D_IDLECLEAN_SHIFT)
+#define WAIT_UNTIL_GET_CMDFIFO_ENTRIES(wait_until) \
+ ((wait_until & WAIT_UNTIL_CMDFIFO_ENTRIES_MASK) >> WAIT_UNTIL_CMDFIFO_ENTRIES_SHIFT)
+
+#define WAIT_UNTIL_SET_WAIT_RE_VSYNC(wait_until_reg, wait_re_vsync) \
+ wait_until_reg = (wait_until_reg & ~WAIT_UNTIL_WAIT_RE_VSYNC_MASK) | (wait_re_vsync << WAIT_UNTIL_WAIT_RE_VSYNC_SHIFT)
+#define WAIT_UNTIL_SET_WAIT_FE_VSYNC(wait_until_reg, wait_fe_vsync) \
+ wait_until_reg = (wait_until_reg & ~WAIT_UNTIL_WAIT_FE_VSYNC_MASK) | (wait_fe_vsync << WAIT_UNTIL_WAIT_FE_VSYNC_SHIFT)
+#define WAIT_UNTIL_SET_WAIT_VSYNC(wait_until_reg, wait_vsync) \
+ wait_until_reg = (wait_until_reg & ~WAIT_UNTIL_WAIT_VSYNC_MASK) | (wait_vsync << WAIT_UNTIL_WAIT_VSYNC_SHIFT)
+#define WAIT_UNTIL_SET_WAIT_DSPLY_ID0(wait_until_reg, wait_dsply_id0) \
+ wait_until_reg = (wait_until_reg & ~WAIT_UNTIL_WAIT_DSPLY_ID0_MASK) | (wait_dsply_id0 << WAIT_UNTIL_WAIT_DSPLY_ID0_SHIFT)
+#define WAIT_UNTIL_SET_WAIT_DSPLY_ID1(wait_until_reg, wait_dsply_id1) \
+ wait_until_reg = (wait_until_reg & ~WAIT_UNTIL_WAIT_DSPLY_ID1_MASK) | (wait_dsply_id1 << WAIT_UNTIL_WAIT_DSPLY_ID1_SHIFT)
+#define WAIT_UNTIL_SET_WAIT_DSPLY_ID2(wait_until_reg, wait_dsply_id2) \
+ wait_until_reg = (wait_until_reg & ~WAIT_UNTIL_WAIT_DSPLY_ID2_MASK) | (wait_dsply_id2 << WAIT_UNTIL_WAIT_DSPLY_ID2_SHIFT)
+#define WAIT_UNTIL_SET_WAIT_CMDFIFO(wait_until_reg, wait_cmdfifo) \
+ wait_until_reg = (wait_until_reg & ~WAIT_UNTIL_WAIT_CMDFIFO_MASK) | (wait_cmdfifo << WAIT_UNTIL_WAIT_CMDFIFO_SHIFT)
+#define WAIT_UNTIL_SET_WAIT_2D_IDLE(wait_until_reg, wait_2d_idle) \
+ wait_until_reg = (wait_until_reg & ~WAIT_UNTIL_WAIT_2D_IDLE_MASK) | (wait_2d_idle << WAIT_UNTIL_WAIT_2D_IDLE_SHIFT)
+#define WAIT_UNTIL_SET_WAIT_3D_IDLE(wait_until_reg, wait_3d_idle) \
+ wait_until_reg = (wait_until_reg & ~WAIT_UNTIL_WAIT_3D_IDLE_MASK) | (wait_3d_idle << WAIT_UNTIL_WAIT_3D_IDLE_SHIFT)
+#define WAIT_UNTIL_SET_WAIT_2D_IDLECLEAN(wait_until_reg, wait_2d_idleclean) \
+ wait_until_reg = (wait_until_reg & ~WAIT_UNTIL_WAIT_2D_IDLECLEAN_MASK) | (wait_2d_idleclean << WAIT_UNTIL_WAIT_2D_IDLECLEAN_SHIFT)
+#define WAIT_UNTIL_SET_WAIT_3D_IDLECLEAN(wait_until_reg, wait_3d_idleclean) \
+ wait_until_reg = (wait_until_reg & ~WAIT_UNTIL_WAIT_3D_IDLECLEAN_MASK) | (wait_3d_idleclean << WAIT_UNTIL_WAIT_3D_IDLECLEAN_SHIFT)
+#define WAIT_UNTIL_SET_CMDFIFO_ENTRIES(wait_until_reg, cmdfifo_entries) \
+ wait_until_reg = (wait_until_reg & ~WAIT_UNTIL_CMDFIFO_ENTRIES_MASK) | (cmdfifo_entries << WAIT_UNTIL_CMDFIFO_ENTRIES_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _wait_until_t {
+ unsigned int : 1;
+ unsigned int wait_re_vsync : WAIT_UNTIL_WAIT_RE_VSYNC_SIZE;
+ unsigned int wait_fe_vsync : WAIT_UNTIL_WAIT_FE_VSYNC_SIZE;
+ unsigned int wait_vsync : WAIT_UNTIL_WAIT_VSYNC_SIZE;
+ unsigned int wait_dsply_id0 : WAIT_UNTIL_WAIT_DSPLY_ID0_SIZE;
+ unsigned int wait_dsply_id1 : WAIT_UNTIL_WAIT_DSPLY_ID1_SIZE;
+ unsigned int wait_dsply_id2 : WAIT_UNTIL_WAIT_DSPLY_ID2_SIZE;
+ unsigned int : 3;
+ unsigned int wait_cmdfifo : WAIT_UNTIL_WAIT_CMDFIFO_SIZE;
+ unsigned int : 3;
+ unsigned int wait_2d_idle : WAIT_UNTIL_WAIT_2D_IDLE_SIZE;
+ unsigned int wait_3d_idle : WAIT_UNTIL_WAIT_3D_IDLE_SIZE;
+ unsigned int wait_2d_idleclean : WAIT_UNTIL_WAIT_2D_IDLECLEAN_SIZE;
+ unsigned int wait_3d_idleclean : WAIT_UNTIL_WAIT_3D_IDLECLEAN_SIZE;
+ unsigned int : 2;
+ unsigned int cmdfifo_entries : WAIT_UNTIL_CMDFIFO_ENTRIES_SIZE;
+ unsigned int : 8;
+ } wait_until_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _wait_until_t {
+ unsigned int : 8;
+ unsigned int cmdfifo_entries : WAIT_UNTIL_CMDFIFO_ENTRIES_SIZE;
+ unsigned int : 2;
+ unsigned int wait_3d_idleclean : WAIT_UNTIL_WAIT_3D_IDLECLEAN_SIZE;
+ unsigned int wait_2d_idleclean : WAIT_UNTIL_WAIT_2D_IDLECLEAN_SIZE;
+ unsigned int wait_3d_idle : WAIT_UNTIL_WAIT_3D_IDLE_SIZE;
+ unsigned int wait_2d_idle : WAIT_UNTIL_WAIT_2D_IDLE_SIZE;
+ unsigned int : 3;
+ unsigned int wait_cmdfifo : WAIT_UNTIL_WAIT_CMDFIFO_SIZE;
+ unsigned int : 3;
+ unsigned int wait_dsply_id2 : WAIT_UNTIL_WAIT_DSPLY_ID2_SIZE;
+ unsigned int wait_dsply_id1 : WAIT_UNTIL_WAIT_DSPLY_ID1_SIZE;
+ unsigned int wait_dsply_id0 : WAIT_UNTIL_WAIT_DSPLY_ID0_SIZE;
+ unsigned int wait_vsync : WAIT_UNTIL_WAIT_VSYNC_SIZE;
+ unsigned int wait_fe_vsync : WAIT_UNTIL_WAIT_FE_VSYNC_SIZE;
+ unsigned int wait_re_vsync : WAIT_UNTIL_WAIT_RE_VSYNC_SIZE;
+ unsigned int : 1;
+ } wait_until_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ wait_until_t f;
+} wait_until_u;
+
+
+/*
+ * RBBM_ISYNC_CNTL struct
+ */
+
+#define RBBM_ISYNC_CNTL_ISYNC_WAIT_IDLEGUI_SIZE 1
+#define RBBM_ISYNC_CNTL_ISYNC_CPSCRATCH_IDLEGUI_SIZE 1
+
+#define RBBM_ISYNC_CNTL_ISYNC_WAIT_IDLEGUI_SHIFT 4
+#define RBBM_ISYNC_CNTL_ISYNC_CPSCRATCH_IDLEGUI_SHIFT 5
+
+#define RBBM_ISYNC_CNTL_ISYNC_WAIT_IDLEGUI_MASK 0x00000010
+#define RBBM_ISYNC_CNTL_ISYNC_CPSCRATCH_IDLEGUI_MASK 0x00000020
+
+#define RBBM_ISYNC_CNTL_MASK \
+ (RBBM_ISYNC_CNTL_ISYNC_WAIT_IDLEGUI_MASK | \
+ RBBM_ISYNC_CNTL_ISYNC_CPSCRATCH_IDLEGUI_MASK)
+
+#define RBBM_ISYNC_CNTL(isync_wait_idlegui, isync_cpscratch_idlegui) \
+ ((isync_wait_idlegui << RBBM_ISYNC_CNTL_ISYNC_WAIT_IDLEGUI_SHIFT) | \
+ (isync_cpscratch_idlegui << RBBM_ISYNC_CNTL_ISYNC_CPSCRATCH_IDLEGUI_SHIFT))
+
+#define RBBM_ISYNC_CNTL_GET_ISYNC_WAIT_IDLEGUI(rbbm_isync_cntl) \
+ ((rbbm_isync_cntl & RBBM_ISYNC_CNTL_ISYNC_WAIT_IDLEGUI_MASK) >> RBBM_ISYNC_CNTL_ISYNC_WAIT_IDLEGUI_SHIFT)
+#define RBBM_ISYNC_CNTL_GET_ISYNC_CPSCRATCH_IDLEGUI(rbbm_isync_cntl) \
+ ((rbbm_isync_cntl & RBBM_ISYNC_CNTL_ISYNC_CPSCRATCH_IDLEGUI_MASK) >> RBBM_ISYNC_CNTL_ISYNC_CPSCRATCH_IDLEGUI_SHIFT)
+
+#define RBBM_ISYNC_CNTL_SET_ISYNC_WAIT_IDLEGUI(rbbm_isync_cntl_reg, isync_wait_idlegui) \
+ rbbm_isync_cntl_reg = (rbbm_isync_cntl_reg & ~RBBM_ISYNC_CNTL_ISYNC_WAIT_IDLEGUI_MASK) | (isync_wait_idlegui << RBBM_ISYNC_CNTL_ISYNC_WAIT_IDLEGUI_SHIFT)
+#define RBBM_ISYNC_CNTL_SET_ISYNC_CPSCRATCH_IDLEGUI(rbbm_isync_cntl_reg, isync_cpscratch_idlegui) \
+ rbbm_isync_cntl_reg = (rbbm_isync_cntl_reg & ~RBBM_ISYNC_CNTL_ISYNC_CPSCRATCH_IDLEGUI_MASK) | (isync_cpscratch_idlegui << RBBM_ISYNC_CNTL_ISYNC_CPSCRATCH_IDLEGUI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_isync_cntl_t {
+ unsigned int : 4;
+ unsigned int isync_wait_idlegui : RBBM_ISYNC_CNTL_ISYNC_WAIT_IDLEGUI_SIZE;
+ unsigned int isync_cpscratch_idlegui : RBBM_ISYNC_CNTL_ISYNC_CPSCRATCH_IDLEGUI_SIZE;
+ unsigned int : 26;
+ } rbbm_isync_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_isync_cntl_t {
+ unsigned int : 26;
+ unsigned int isync_cpscratch_idlegui : RBBM_ISYNC_CNTL_ISYNC_CPSCRATCH_IDLEGUI_SIZE;
+ unsigned int isync_wait_idlegui : RBBM_ISYNC_CNTL_ISYNC_WAIT_IDLEGUI_SIZE;
+ unsigned int : 4;
+ } rbbm_isync_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_isync_cntl_t f;
+} rbbm_isync_cntl_u;
+
+
+/*
+ * RBBM_STATUS struct
+ */
+
+#define RBBM_STATUS_CMDFIFO_AVAIL_SIZE 5
+#define RBBM_STATUS_TC_BUSY_SIZE 1
+#define RBBM_STATUS_HIRQ_PENDING_SIZE 1
+#define RBBM_STATUS_CPRQ_PENDING_SIZE 1
+#define RBBM_STATUS_CFRQ_PENDING_SIZE 1
+#define RBBM_STATUS_PFRQ_PENDING_SIZE 1
+#define RBBM_STATUS_VGT_BUSY_NO_DMA_SIZE 1
+#define RBBM_STATUS_RBBM_WU_BUSY_SIZE 1
+#define RBBM_STATUS_CP_NRT_BUSY_SIZE 1
+#define RBBM_STATUS_MH_BUSY_SIZE 1
+#define RBBM_STATUS_MH_COHERENCY_BUSY_SIZE 1
+#define RBBM_STATUS_SX_BUSY_SIZE 1
+#define RBBM_STATUS_TPC_BUSY_SIZE 1
+#define RBBM_STATUS_SC_CNTX_BUSY_SIZE 1
+#define RBBM_STATUS_PA_BUSY_SIZE 1
+#define RBBM_STATUS_VGT_BUSY_SIZE 1
+#define RBBM_STATUS_SQ_CNTX17_BUSY_SIZE 1
+#define RBBM_STATUS_SQ_CNTX0_BUSY_SIZE 1
+#define RBBM_STATUS_RB_CNTX_BUSY_SIZE 1
+#define RBBM_STATUS_GUI_ACTIVE_SIZE 1
+
+#define RBBM_STATUS_CMDFIFO_AVAIL_SHIFT 0
+#define RBBM_STATUS_TC_BUSY_SHIFT 5
+#define RBBM_STATUS_HIRQ_PENDING_SHIFT 8
+#define RBBM_STATUS_CPRQ_PENDING_SHIFT 9
+#define RBBM_STATUS_CFRQ_PENDING_SHIFT 10
+#define RBBM_STATUS_PFRQ_PENDING_SHIFT 11
+#define RBBM_STATUS_VGT_BUSY_NO_DMA_SHIFT 12
+#define RBBM_STATUS_RBBM_WU_BUSY_SHIFT 14
+#define RBBM_STATUS_CP_NRT_BUSY_SHIFT 16
+#define RBBM_STATUS_MH_BUSY_SHIFT 18
+#define RBBM_STATUS_MH_COHERENCY_BUSY_SHIFT 19
+#define RBBM_STATUS_SX_BUSY_SHIFT 21
+#define RBBM_STATUS_TPC_BUSY_SHIFT 22
+#define RBBM_STATUS_SC_CNTX_BUSY_SHIFT 24
+#define RBBM_STATUS_PA_BUSY_SHIFT 25
+#define RBBM_STATUS_VGT_BUSY_SHIFT 26
+#define RBBM_STATUS_SQ_CNTX17_BUSY_SHIFT 27
+#define RBBM_STATUS_SQ_CNTX0_BUSY_SHIFT 28
+#define RBBM_STATUS_RB_CNTX_BUSY_SHIFT 30
+#define RBBM_STATUS_GUI_ACTIVE_SHIFT 31
+
+#define RBBM_STATUS_CMDFIFO_AVAIL_MASK 0x0000001f
+#define RBBM_STATUS_TC_BUSY_MASK 0x00000020
+#define RBBM_STATUS_HIRQ_PENDING_MASK 0x00000100
+#define RBBM_STATUS_CPRQ_PENDING_MASK 0x00000200
+#define RBBM_STATUS_CFRQ_PENDING_MASK 0x00000400
+#define RBBM_STATUS_PFRQ_PENDING_MASK 0x00000800
+#define RBBM_STATUS_VGT_BUSY_NO_DMA_MASK 0x00001000
+#define RBBM_STATUS_RBBM_WU_BUSY_MASK 0x00004000
+#define RBBM_STATUS_CP_NRT_BUSY_MASK 0x00010000
+#define RBBM_STATUS_MH_BUSY_MASK 0x00040000
+#define RBBM_STATUS_MH_COHERENCY_BUSY_MASK 0x00080000
+#define RBBM_STATUS_SX_BUSY_MASK 0x00200000
+#define RBBM_STATUS_TPC_BUSY_MASK 0x00400000
+#define RBBM_STATUS_SC_CNTX_BUSY_MASK 0x01000000
+#define RBBM_STATUS_PA_BUSY_MASK 0x02000000
+#define RBBM_STATUS_VGT_BUSY_MASK 0x04000000
+#define RBBM_STATUS_SQ_CNTX17_BUSY_MASK 0x08000000
+#define RBBM_STATUS_SQ_CNTX0_BUSY_MASK 0x10000000
+#define RBBM_STATUS_RB_CNTX_BUSY_MASK 0x40000000
+#define RBBM_STATUS_GUI_ACTIVE_MASK 0x80000000
+
+#define RBBM_STATUS_MASK \
+ (RBBM_STATUS_CMDFIFO_AVAIL_MASK | \
+ RBBM_STATUS_TC_BUSY_MASK | \
+ RBBM_STATUS_HIRQ_PENDING_MASK | \
+ RBBM_STATUS_CPRQ_PENDING_MASK | \
+ RBBM_STATUS_CFRQ_PENDING_MASK | \
+ RBBM_STATUS_PFRQ_PENDING_MASK | \
+ RBBM_STATUS_VGT_BUSY_NO_DMA_MASK | \
+ RBBM_STATUS_RBBM_WU_BUSY_MASK | \
+ RBBM_STATUS_CP_NRT_BUSY_MASK | \
+ RBBM_STATUS_MH_BUSY_MASK | \
+ RBBM_STATUS_MH_COHERENCY_BUSY_MASK | \
+ RBBM_STATUS_SX_BUSY_MASK | \
+ RBBM_STATUS_TPC_BUSY_MASK | \
+ RBBM_STATUS_SC_CNTX_BUSY_MASK | \
+ RBBM_STATUS_PA_BUSY_MASK | \
+ RBBM_STATUS_VGT_BUSY_MASK | \
+ RBBM_STATUS_SQ_CNTX17_BUSY_MASK | \
+ RBBM_STATUS_SQ_CNTX0_BUSY_MASK | \
+ RBBM_STATUS_RB_CNTX_BUSY_MASK | \
+ RBBM_STATUS_GUI_ACTIVE_MASK)
+
+#define RBBM_STATUS(cmdfifo_avail, tc_busy, hirq_pending, cprq_pending, cfrq_pending, pfrq_pending, vgt_busy_no_dma, rbbm_wu_busy, cp_nrt_busy, mh_busy, mh_coherency_busy, sx_busy, tpc_busy, sc_cntx_busy, pa_busy, vgt_busy, sq_cntx17_busy, sq_cntx0_busy, rb_cntx_busy, gui_active) \
+ ((cmdfifo_avail << RBBM_STATUS_CMDFIFO_AVAIL_SHIFT) | \
+ (tc_busy << RBBM_STATUS_TC_BUSY_SHIFT) | \
+ (hirq_pending << RBBM_STATUS_HIRQ_PENDING_SHIFT) | \
+ (cprq_pending << RBBM_STATUS_CPRQ_PENDING_SHIFT) | \
+ (cfrq_pending << RBBM_STATUS_CFRQ_PENDING_SHIFT) | \
+ (pfrq_pending << RBBM_STATUS_PFRQ_PENDING_SHIFT) | \
+ (vgt_busy_no_dma << RBBM_STATUS_VGT_BUSY_NO_DMA_SHIFT) | \
+ (rbbm_wu_busy << RBBM_STATUS_RBBM_WU_BUSY_SHIFT) | \
+ (cp_nrt_busy << RBBM_STATUS_CP_NRT_BUSY_SHIFT) | \
+ (mh_busy << RBBM_STATUS_MH_BUSY_SHIFT) | \
+ (mh_coherency_busy << RBBM_STATUS_MH_COHERENCY_BUSY_SHIFT) | \
+ (sx_busy << RBBM_STATUS_SX_BUSY_SHIFT) | \
+ (tpc_busy << RBBM_STATUS_TPC_BUSY_SHIFT) | \
+ (sc_cntx_busy << RBBM_STATUS_SC_CNTX_BUSY_SHIFT) | \
+ (pa_busy << RBBM_STATUS_PA_BUSY_SHIFT) | \
+ (vgt_busy << RBBM_STATUS_VGT_BUSY_SHIFT) | \
+ (sq_cntx17_busy << RBBM_STATUS_SQ_CNTX17_BUSY_SHIFT) | \
+ (sq_cntx0_busy << RBBM_STATUS_SQ_CNTX0_BUSY_SHIFT) | \
+ (rb_cntx_busy << RBBM_STATUS_RB_CNTX_BUSY_SHIFT) | \
+ (gui_active << RBBM_STATUS_GUI_ACTIVE_SHIFT))
+
+#define RBBM_STATUS_GET_CMDFIFO_AVAIL(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_CMDFIFO_AVAIL_MASK) >> RBBM_STATUS_CMDFIFO_AVAIL_SHIFT)
+#define RBBM_STATUS_GET_TC_BUSY(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_TC_BUSY_MASK) >> RBBM_STATUS_TC_BUSY_SHIFT)
+#define RBBM_STATUS_GET_HIRQ_PENDING(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_HIRQ_PENDING_MASK) >> RBBM_STATUS_HIRQ_PENDING_SHIFT)
+#define RBBM_STATUS_GET_CPRQ_PENDING(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_CPRQ_PENDING_MASK) >> RBBM_STATUS_CPRQ_PENDING_SHIFT)
+#define RBBM_STATUS_GET_CFRQ_PENDING(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_CFRQ_PENDING_MASK) >> RBBM_STATUS_CFRQ_PENDING_SHIFT)
+#define RBBM_STATUS_GET_PFRQ_PENDING(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_PFRQ_PENDING_MASK) >> RBBM_STATUS_PFRQ_PENDING_SHIFT)
+#define RBBM_STATUS_GET_VGT_BUSY_NO_DMA(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_VGT_BUSY_NO_DMA_MASK) >> RBBM_STATUS_VGT_BUSY_NO_DMA_SHIFT)
+#define RBBM_STATUS_GET_RBBM_WU_BUSY(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_RBBM_WU_BUSY_MASK) >> RBBM_STATUS_RBBM_WU_BUSY_SHIFT)
+#define RBBM_STATUS_GET_CP_NRT_BUSY(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_CP_NRT_BUSY_MASK) >> RBBM_STATUS_CP_NRT_BUSY_SHIFT)
+#define RBBM_STATUS_GET_MH_BUSY(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_MH_BUSY_MASK) >> RBBM_STATUS_MH_BUSY_SHIFT)
+#define RBBM_STATUS_GET_MH_COHERENCY_BUSY(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_MH_COHERENCY_BUSY_MASK) >> RBBM_STATUS_MH_COHERENCY_BUSY_SHIFT)
+#define RBBM_STATUS_GET_SX_BUSY(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_SX_BUSY_MASK) >> RBBM_STATUS_SX_BUSY_SHIFT)
+#define RBBM_STATUS_GET_TPC_BUSY(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_TPC_BUSY_MASK) >> RBBM_STATUS_TPC_BUSY_SHIFT)
+#define RBBM_STATUS_GET_SC_CNTX_BUSY(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_SC_CNTX_BUSY_MASK) >> RBBM_STATUS_SC_CNTX_BUSY_SHIFT)
+#define RBBM_STATUS_GET_PA_BUSY(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_PA_BUSY_MASK) >> RBBM_STATUS_PA_BUSY_SHIFT)
+#define RBBM_STATUS_GET_VGT_BUSY(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_VGT_BUSY_MASK) >> RBBM_STATUS_VGT_BUSY_SHIFT)
+#define RBBM_STATUS_GET_SQ_CNTX17_BUSY(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_SQ_CNTX17_BUSY_MASK) >> RBBM_STATUS_SQ_CNTX17_BUSY_SHIFT)
+#define RBBM_STATUS_GET_SQ_CNTX0_BUSY(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_SQ_CNTX0_BUSY_MASK) >> RBBM_STATUS_SQ_CNTX0_BUSY_SHIFT)
+#define RBBM_STATUS_GET_RB_CNTX_BUSY(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_RB_CNTX_BUSY_MASK) >> RBBM_STATUS_RB_CNTX_BUSY_SHIFT)
+#define RBBM_STATUS_GET_GUI_ACTIVE(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_GUI_ACTIVE_MASK) >> RBBM_STATUS_GUI_ACTIVE_SHIFT)
+
+#define RBBM_STATUS_SET_CMDFIFO_AVAIL(rbbm_status_reg, cmdfifo_avail) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_CMDFIFO_AVAIL_MASK) | (cmdfifo_avail << RBBM_STATUS_CMDFIFO_AVAIL_SHIFT)
+#define RBBM_STATUS_SET_TC_BUSY(rbbm_status_reg, tc_busy) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_TC_BUSY_MASK) | (tc_busy << RBBM_STATUS_TC_BUSY_SHIFT)
+#define RBBM_STATUS_SET_HIRQ_PENDING(rbbm_status_reg, hirq_pending) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_HIRQ_PENDING_MASK) | (hirq_pending << RBBM_STATUS_HIRQ_PENDING_SHIFT)
+#define RBBM_STATUS_SET_CPRQ_PENDING(rbbm_status_reg, cprq_pending) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_CPRQ_PENDING_MASK) | (cprq_pending << RBBM_STATUS_CPRQ_PENDING_SHIFT)
+#define RBBM_STATUS_SET_CFRQ_PENDING(rbbm_status_reg, cfrq_pending) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_CFRQ_PENDING_MASK) | (cfrq_pending << RBBM_STATUS_CFRQ_PENDING_SHIFT)
+#define RBBM_STATUS_SET_PFRQ_PENDING(rbbm_status_reg, pfrq_pending) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_PFRQ_PENDING_MASK) | (pfrq_pending << RBBM_STATUS_PFRQ_PENDING_SHIFT)
+#define RBBM_STATUS_SET_VGT_BUSY_NO_DMA(rbbm_status_reg, vgt_busy_no_dma) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_VGT_BUSY_NO_DMA_MASK) | (vgt_busy_no_dma << RBBM_STATUS_VGT_BUSY_NO_DMA_SHIFT)
+#define RBBM_STATUS_SET_RBBM_WU_BUSY(rbbm_status_reg, rbbm_wu_busy) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_RBBM_WU_BUSY_MASK) | (rbbm_wu_busy << RBBM_STATUS_RBBM_WU_BUSY_SHIFT)
+#define RBBM_STATUS_SET_CP_NRT_BUSY(rbbm_status_reg, cp_nrt_busy) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_CP_NRT_BUSY_MASK) | (cp_nrt_busy << RBBM_STATUS_CP_NRT_BUSY_SHIFT)
+#define RBBM_STATUS_SET_MH_BUSY(rbbm_status_reg, mh_busy) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_MH_BUSY_MASK) | (mh_busy << RBBM_STATUS_MH_BUSY_SHIFT)
+#define RBBM_STATUS_SET_MH_COHERENCY_BUSY(rbbm_status_reg, mh_coherency_busy) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_MH_COHERENCY_BUSY_MASK) | (mh_coherency_busy << RBBM_STATUS_MH_COHERENCY_BUSY_SHIFT)
+#define RBBM_STATUS_SET_SX_BUSY(rbbm_status_reg, sx_busy) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_SX_BUSY_MASK) | (sx_busy << RBBM_STATUS_SX_BUSY_SHIFT)
+#define RBBM_STATUS_SET_TPC_BUSY(rbbm_status_reg, tpc_busy) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_TPC_BUSY_MASK) | (tpc_busy << RBBM_STATUS_TPC_BUSY_SHIFT)
+#define RBBM_STATUS_SET_SC_CNTX_BUSY(rbbm_status_reg, sc_cntx_busy) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_SC_CNTX_BUSY_MASK) | (sc_cntx_busy << RBBM_STATUS_SC_CNTX_BUSY_SHIFT)
+#define RBBM_STATUS_SET_PA_BUSY(rbbm_status_reg, pa_busy) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_PA_BUSY_MASK) | (pa_busy << RBBM_STATUS_PA_BUSY_SHIFT)
+#define RBBM_STATUS_SET_VGT_BUSY(rbbm_status_reg, vgt_busy) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_VGT_BUSY_MASK) | (vgt_busy << RBBM_STATUS_VGT_BUSY_SHIFT)
+#define RBBM_STATUS_SET_SQ_CNTX17_BUSY(rbbm_status_reg, sq_cntx17_busy) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_SQ_CNTX17_BUSY_MASK) | (sq_cntx17_busy << RBBM_STATUS_SQ_CNTX17_BUSY_SHIFT)
+#define RBBM_STATUS_SET_SQ_CNTX0_BUSY(rbbm_status_reg, sq_cntx0_busy) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_SQ_CNTX0_BUSY_MASK) | (sq_cntx0_busy << RBBM_STATUS_SQ_CNTX0_BUSY_SHIFT)
+#define RBBM_STATUS_SET_RB_CNTX_BUSY(rbbm_status_reg, rb_cntx_busy) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_RB_CNTX_BUSY_MASK) | (rb_cntx_busy << RBBM_STATUS_RB_CNTX_BUSY_SHIFT)
+#define RBBM_STATUS_SET_GUI_ACTIVE(rbbm_status_reg, gui_active) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_GUI_ACTIVE_MASK) | (gui_active << RBBM_STATUS_GUI_ACTIVE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_status_t {
+ unsigned int cmdfifo_avail : RBBM_STATUS_CMDFIFO_AVAIL_SIZE;
+ unsigned int tc_busy : RBBM_STATUS_TC_BUSY_SIZE;
+ unsigned int : 2;
+ unsigned int hirq_pending : RBBM_STATUS_HIRQ_PENDING_SIZE;
+ unsigned int cprq_pending : RBBM_STATUS_CPRQ_PENDING_SIZE;
+ unsigned int cfrq_pending : RBBM_STATUS_CFRQ_PENDING_SIZE;
+ unsigned int pfrq_pending : RBBM_STATUS_PFRQ_PENDING_SIZE;
+ unsigned int vgt_busy_no_dma : RBBM_STATUS_VGT_BUSY_NO_DMA_SIZE;
+ unsigned int : 1;
+ unsigned int rbbm_wu_busy : RBBM_STATUS_RBBM_WU_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int cp_nrt_busy : RBBM_STATUS_CP_NRT_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int mh_busy : RBBM_STATUS_MH_BUSY_SIZE;
+ unsigned int mh_coherency_busy : RBBM_STATUS_MH_COHERENCY_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int sx_busy : RBBM_STATUS_SX_BUSY_SIZE;
+ unsigned int tpc_busy : RBBM_STATUS_TPC_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int sc_cntx_busy : RBBM_STATUS_SC_CNTX_BUSY_SIZE;
+ unsigned int pa_busy : RBBM_STATUS_PA_BUSY_SIZE;
+ unsigned int vgt_busy : RBBM_STATUS_VGT_BUSY_SIZE;
+ unsigned int sq_cntx17_busy : RBBM_STATUS_SQ_CNTX17_BUSY_SIZE;
+ unsigned int sq_cntx0_busy : RBBM_STATUS_SQ_CNTX0_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int rb_cntx_busy : RBBM_STATUS_RB_CNTX_BUSY_SIZE;
+ unsigned int gui_active : RBBM_STATUS_GUI_ACTIVE_SIZE;
+ } rbbm_status_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_status_t {
+ unsigned int gui_active : RBBM_STATUS_GUI_ACTIVE_SIZE;
+ unsigned int rb_cntx_busy : RBBM_STATUS_RB_CNTX_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int sq_cntx0_busy : RBBM_STATUS_SQ_CNTX0_BUSY_SIZE;
+ unsigned int sq_cntx17_busy : RBBM_STATUS_SQ_CNTX17_BUSY_SIZE;
+ unsigned int vgt_busy : RBBM_STATUS_VGT_BUSY_SIZE;
+ unsigned int pa_busy : RBBM_STATUS_PA_BUSY_SIZE;
+ unsigned int sc_cntx_busy : RBBM_STATUS_SC_CNTX_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int tpc_busy : RBBM_STATUS_TPC_BUSY_SIZE;
+ unsigned int sx_busy : RBBM_STATUS_SX_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int mh_coherency_busy : RBBM_STATUS_MH_COHERENCY_BUSY_SIZE;
+ unsigned int mh_busy : RBBM_STATUS_MH_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int cp_nrt_busy : RBBM_STATUS_CP_NRT_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int rbbm_wu_busy : RBBM_STATUS_RBBM_WU_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int vgt_busy_no_dma : RBBM_STATUS_VGT_BUSY_NO_DMA_SIZE;
+ unsigned int pfrq_pending : RBBM_STATUS_PFRQ_PENDING_SIZE;
+ unsigned int cfrq_pending : RBBM_STATUS_CFRQ_PENDING_SIZE;
+ unsigned int cprq_pending : RBBM_STATUS_CPRQ_PENDING_SIZE;
+ unsigned int hirq_pending : RBBM_STATUS_HIRQ_PENDING_SIZE;
+ unsigned int : 2;
+ unsigned int tc_busy : RBBM_STATUS_TC_BUSY_SIZE;
+ unsigned int cmdfifo_avail : RBBM_STATUS_CMDFIFO_AVAIL_SIZE;
+ } rbbm_status_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_status_t f;
+} rbbm_status_u;
+
+
+/*
+ * RBBM_DSPLY struct
+ */
+
+#define RBBM_DSPLY_DISPLAY_ID0_ACTIVE_SIZE 1
+#define RBBM_DSPLY_DISPLAY_ID1_ACTIVE_SIZE 1
+#define RBBM_DSPLY_DISPLAY_ID2_ACTIVE_SIZE 1
+#define RBBM_DSPLY_VSYNC_ACTIVE_SIZE 1
+#define RBBM_DSPLY_USE_DISPLAY_ID0_SIZE 1
+#define RBBM_DSPLY_USE_DISPLAY_ID1_SIZE 1
+#define RBBM_DSPLY_USE_DISPLAY_ID2_SIZE 1
+#define RBBM_DSPLY_SW_CNTL_SIZE 1
+#define RBBM_DSPLY_NUM_BUFS_SIZE 2
+
+#define RBBM_DSPLY_DISPLAY_ID0_ACTIVE_SHIFT 0
+#define RBBM_DSPLY_DISPLAY_ID1_ACTIVE_SHIFT 1
+#define RBBM_DSPLY_DISPLAY_ID2_ACTIVE_SHIFT 2
+#define RBBM_DSPLY_VSYNC_ACTIVE_SHIFT 3
+#define RBBM_DSPLY_USE_DISPLAY_ID0_SHIFT 4
+#define RBBM_DSPLY_USE_DISPLAY_ID1_SHIFT 5
+#define RBBM_DSPLY_USE_DISPLAY_ID2_SHIFT 6
+#define RBBM_DSPLY_SW_CNTL_SHIFT 7
+#define RBBM_DSPLY_NUM_BUFS_SHIFT 8
+
+#define RBBM_DSPLY_DISPLAY_ID0_ACTIVE_MASK 0x00000001
+#define RBBM_DSPLY_DISPLAY_ID1_ACTIVE_MASK 0x00000002
+#define RBBM_DSPLY_DISPLAY_ID2_ACTIVE_MASK 0x00000004
+#define RBBM_DSPLY_VSYNC_ACTIVE_MASK 0x00000008
+#define RBBM_DSPLY_USE_DISPLAY_ID0_MASK 0x00000010
+#define RBBM_DSPLY_USE_DISPLAY_ID1_MASK 0x00000020
+#define RBBM_DSPLY_USE_DISPLAY_ID2_MASK 0x00000040
+#define RBBM_DSPLY_SW_CNTL_MASK 0x00000080
+#define RBBM_DSPLY_NUM_BUFS_MASK 0x00000300
+
+#define RBBM_DSPLY_MASK \
+ (RBBM_DSPLY_DISPLAY_ID0_ACTIVE_MASK | \
+ RBBM_DSPLY_DISPLAY_ID1_ACTIVE_MASK | \
+ RBBM_DSPLY_DISPLAY_ID2_ACTIVE_MASK | \
+ RBBM_DSPLY_VSYNC_ACTIVE_MASK | \
+ RBBM_DSPLY_USE_DISPLAY_ID0_MASK | \
+ RBBM_DSPLY_USE_DISPLAY_ID1_MASK | \
+ RBBM_DSPLY_USE_DISPLAY_ID2_MASK | \
+ RBBM_DSPLY_SW_CNTL_MASK | \
+ RBBM_DSPLY_NUM_BUFS_MASK)
+
+#define RBBM_DSPLY(display_id0_active, display_id1_active, display_id2_active, vsync_active, use_display_id0, use_display_id1, use_display_id2, sw_cntl, num_bufs) \
+ ((display_id0_active << RBBM_DSPLY_DISPLAY_ID0_ACTIVE_SHIFT) | \
+ (display_id1_active << RBBM_DSPLY_DISPLAY_ID1_ACTIVE_SHIFT) | \
+ (display_id2_active << RBBM_DSPLY_DISPLAY_ID2_ACTIVE_SHIFT) | \
+ (vsync_active << RBBM_DSPLY_VSYNC_ACTIVE_SHIFT) | \
+ (use_display_id0 << RBBM_DSPLY_USE_DISPLAY_ID0_SHIFT) | \
+ (use_display_id1 << RBBM_DSPLY_USE_DISPLAY_ID1_SHIFT) | \
+ (use_display_id2 << RBBM_DSPLY_USE_DISPLAY_ID2_SHIFT) | \
+ (sw_cntl << RBBM_DSPLY_SW_CNTL_SHIFT) | \
+ (num_bufs << RBBM_DSPLY_NUM_BUFS_SHIFT))
+
+#define RBBM_DSPLY_GET_DISPLAY_ID0_ACTIVE(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_DISPLAY_ID0_ACTIVE_MASK) >> RBBM_DSPLY_DISPLAY_ID0_ACTIVE_SHIFT)
+#define RBBM_DSPLY_GET_DISPLAY_ID1_ACTIVE(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_DISPLAY_ID1_ACTIVE_MASK) >> RBBM_DSPLY_DISPLAY_ID1_ACTIVE_SHIFT)
+#define RBBM_DSPLY_GET_DISPLAY_ID2_ACTIVE(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_DISPLAY_ID2_ACTIVE_MASK) >> RBBM_DSPLY_DISPLAY_ID2_ACTIVE_SHIFT)
+#define RBBM_DSPLY_GET_VSYNC_ACTIVE(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_VSYNC_ACTIVE_MASK) >> RBBM_DSPLY_VSYNC_ACTIVE_SHIFT)
+#define RBBM_DSPLY_GET_USE_DISPLAY_ID0(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_USE_DISPLAY_ID0_MASK) >> RBBM_DSPLY_USE_DISPLAY_ID0_SHIFT)
+#define RBBM_DSPLY_GET_USE_DISPLAY_ID1(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_USE_DISPLAY_ID1_MASK) >> RBBM_DSPLY_USE_DISPLAY_ID1_SHIFT)
+#define RBBM_DSPLY_GET_USE_DISPLAY_ID2(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_USE_DISPLAY_ID2_MASK) >> RBBM_DSPLY_USE_DISPLAY_ID2_SHIFT)
+#define RBBM_DSPLY_GET_SW_CNTL(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_SW_CNTL_MASK) >> RBBM_DSPLY_SW_CNTL_SHIFT)
+#define RBBM_DSPLY_GET_NUM_BUFS(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_NUM_BUFS_MASK) >> RBBM_DSPLY_NUM_BUFS_SHIFT)
+
+#define RBBM_DSPLY_SET_DISPLAY_ID0_ACTIVE(rbbm_dsply_reg, display_id0_active) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_DISPLAY_ID0_ACTIVE_MASK) | (display_id0_active << RBBM_DSPLY_DISPLAY_ID0_ACTIVE_SHIFT)
+#define RBBM_DSPLY_SET_DISPLAY_ID1_ACTIVE(rbbm_dsply_reg, display_id1_active) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_DISPLAY_ID1_ACTIVE_MASK) | (display_id1_active << RBBM_DSPLY_DISPLAY_ID1_ACTIVE_SHIFT)
+#define RBBM_DSPLY_SET_DISPLAY_ID2_ACTIVE(rbbm_dsply_reg, display_id2_active) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_DISPLAY_ID2_ACTIVE_MASK) | (display_id2_active << RBBM_DSPLY_DISPLAY_ID2_ACTIVE_SHIFT)
+#define RBBM_DSPLY_SET_VSYNC_ACTIVE(rbbm_dsply_reg, vsync_active) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_VSYNC_ACTIVE_MASK) | (vsync_active << RBBM_DSPLY_VSYNC_ACTIVE_SHIFT)
+#define RBBM_DSPLY_SET_USE_DISPLAY_ID0(rbbm_dsply_reg, use_display_id0) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_USE_DISPLAY_ID0_MASK) | (use_display_id0 << RBBM_DSPLY_USE_DISPLAY_ID0_SHIFT)
+#define RBBM_DSPLY_SET_USE_DISPLAY_ID1(rbbm_dsply_reg, use_display_id1) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_USE_DISPLAY_ID1_MASK) | (use_display_id1 << RBBM_DSPLY_USE_DISPLAY_ID1_SHIFT)
+#define RBBM_DSPLY_SET_USE_DISPLAY_ID2(rbbm_dsply_reg, use_display_id2) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_USE_DISPLAY_ID2_MASK) | (use_display_id2 << RBBM_DSPLY_USE_DISPLAY_ID2_SHIFT)
+#define RBBM_DSPLY_SET_SW_CNTL(rbbm_dsply_reg, sw_cntl) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_SW_CNTL_MASK) | (sw_cntl << RBBM_DSPLY_SW_CNTL_SHIFT)
+#define RBBM_DSPLY_SET_NUM_BUFS(rbbm_dsply_reg, num_bufs) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_NUM_BUFS_MASK) | (num_bufs << RBBM_DSPLY_NUM_BUFS_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_dsply_t {
+ unsigned int display_id0_active : RBBM_DSPLY_DISPLAY_ID0_ACTIVE_SIZE;
+ unsigned int display_id1_active : RBBM_DSPLY_DISPLAY_ID1_ACTIVE_SIZE;
+ unsigned int display_id2_active : RBBM_DSPLY_DISPLAY_ID2_ACTIVE_SIZE;
+ unsigned int vsync_active : RBBM_DSPLY_VSYNC_ACTIVE_SIZE;
+ unsigned int use_display_id0 : RBBM_DSPLY_USE_DISPLAY_ID0_SIZE;
+ unsigned int use_display_id1 : RBBM_DSPLY_USE_DISPLAY_ID1_SIZE;
+ unsigned int use_display_id2 : RBBM_DSPLY_USE_DISPLAY_ID2_SIZE;
+ unsigned int sw_cntl : RBBM_DSPLY_SW_CNTL_SIZE;
+ unsigned int num_bufs : RBBM_DSPLY_NUM_BUFS_SIZE;
+ unsigned int : 22;
+ } rbbm_dsply_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_dsply_t {
+ unsigned int : 22;
+ unsigned int num_bufs : RBBM_DSPLY_NUM_BUFS_SIZE;
+ unsigned int sw_cntl : RBBM_DSPLY_SW_CNTL_SIZE;
+ unsigned int use_display_id2 : RBBM_DSPLY_USE_DISPLAY_ID2_SIZE;
+ unsigned int use_display_id1 : RBBM_DSPLY_USE_DISPLAY_ID1_SIZE;
+ unsigned int use_display_id0 : RBBM_DSPLY_USE_DISPLAY_ID0_SIZE;
+ unsigned int vsync_active : RBBM_DSPLY_VSYNC_ACTIVE_SIZE;
+ unsigned int display_id2_active : RBBM_DSPLY_DISPLAY_ID2_ACTIVE_SIZE;
+ unsigned int display_id1_active : RBBM_DSPLY_DISPLAY_ID1_ACTIVE_SIZE;
+ unsigned int display_id0_active : RBBM_DSPLY_DISPLAY_ID0_ACTIVE_SIZE;
+ } rbbm_dsply_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_dsply_t f;
+} rbbm_dsply_u;
+
+
+/*
+ * RBBM_RENDER_LATEST struct
+ */
+
+#define RBBM_RENDER_LATEST_BUFFER_ID_SIZE 2
+
+#define RBBM_RENDER_LATEST_BUFFER_ID_SHIFT 0
+
+#define RBBM_RENDER_LATEST_BUFFER_ID_MASK 0x00000003
+
+#define RBBM_RENDER_LATEST_MASK \
+ (RBBM_RENDER_LATEST_BUFFER_ID_MASK)
+
+#define RBBM_RENDER_LATEST(buffer_id) \
+ ((buffer_id << RBBM_RENDER_LATEST_BUFFER_ID_SHIFT))
+
+#define RBBM_RENDER_LATEST_GET_BUFFER_ID(rbbm_render_latest) \
+ ((rbbm_render_latest & RBBM_RENDER_LATEST_BUFFER_ID_MASK) >> RBBM_RENDER_LATEST_BUFFER_ID_SHIFT)
+
+#define RBBM_RENDER_LATEST_SET_BUFFER_ID(rbbm_render_latest_reg, buffer_id) \
+ rbbm_render_latest_reg = (rbbm_render_latest_reg & ~RBBM_RENDER_LATEST_BUFFER_ID_MASK) | (buffer_id << RBBM_RENDER_LATEST_BUFFER_ID_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_render_latest_t {
+ unsigned int buffer_id : RBBM_RENDER_LATEST_BUFFER_ID_SIZE;
+ unsigned int : 30;
+ } rbbm_render_latest_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_render_latest_t {
+ unsigned int : 30;
+ unsigned int buffer_id : RBBM_RENDER_LATEST_BUFFER_ID_SIZE;
+ } rbbm_render_latest_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_render_latest_t f;
+} rbbm_render_latest_u;
+
+
+/*
+ * RBBM_RTL_RELEASE struct
+ */
+
+#define RBBM_RTL_RELEASE_CHANGELIST_SIZE 32
+
+#define RBBM_RTL_RELEASE_CHANGELIST_SHIFT 0
+
+#define RBBM_RTL_RELEASE_CHANGELIST_MASK 0xffffffff
+
+#define RBBM_RTL_RELEASE_MASK \
+ (RBBM_RTL_RELEASE_CHANGELIST_MASK)
+
+#define RBBM_RTL_RELEASE(changelist) \
+ ((changelist << RBBM_RTL_RELEASE_CHANGELIST_SHIFT))
+
+#define RBBM_RTL_RELEASE_GET_CHANGELIST(rbbm_rtl_release) \
+ ((rbbm_rtl_release & RBBM_RTL_RELEASE_CHANGELIST_MASK) >> RBBM_RTL_RELEASE_CHANGELIST_SHIFT)
+
+#define RBBM_RTL_RELEASE_SET_CHANGELIST(rbbm_rtl_release_reg, changelist) \
+ rbbm_rtl_release_reg = (rbbm_rtl_release_reg & ~RBBM_RTL_RELEASE_CHANGELIST_MASK) | (changelist << RBBM_RTL_RELEASE_CHANGELIST_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_rtl_release_t {
+ unsigned int changelist : RBBM_RTL_RELEASE_CHANGELIST_SIZE;
+ } rbbm_rtl_release_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_rtl_release_t {
+ unsigned int changelist : RBBM_RTL_RELEASE_CHANGELIST_SIZE;
+ } rbbm_rtl_release_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_rtl_release_t f;
+} rbbm_rtl_release_u;
+
+
+/*
+ * RBBM_PATCH_RELEASE struct
+ */
+
+#define RBBM_PATCH_RELEASE_PATCH_REVISION_SIZE 16
+#define RBBM_PATCH_RELEASE_PATCH_SELECTION_SIZE 8
+#define RBBM_PATCH_RELEASE_CUSTOMER_ID_SIZE 8
+
+#define RBBM_PATCH_RELEASE_PATCH_REVISION_SHIFT 0
+#define RBBM_PATCH_RELEASE_PATCH_SELECTION_SHIFT 16
+#define RBBM_PATCH_RELEASE_CUSTOMER_ID_SHIFT 24
+
+#define RBBM_PATCH_RELEASE_PATCH_REVISION_MASK 0x0000ffff
+#define RBBM_PATCH_RELEASE_PATCH_SELECTION_MASK 0x00ff0000
+#define RBBM_PATCH_RELEASE_CUSTOMER_ID_MASK 0xff000000
+
+#define RBBM_PATCH_RELEASE_MASK \
+ (RBBM_PATCH_RELEASE_PATCH_REVISION_MASK | \
+ RBBM_PATCH_RELEASE_PATCH_SELECTION_MASK | \
+ RBBM_PATCH_RELEASE_CUSTOMER_ID_MASK)
+
+#define RBBM_PATCH_RELEASE(patch_revision, patch_selection, customer_id) \
+ ((patch_revision << RBBM_PATCH_RELEASE_PATCH_REVISION_SHIFT) | \
+ (patch_selection << RBBM_PATCH_RELEASE_PATCH_SELECTION_SHIFT) | \
+ (customer_id << RBBM_PATCH_RELEASE_CUSTOMER_ID_SHIFT))
+
+#define RBBM_PATCH_RELEASE_GET_PATCH_REVISION(rbbm_patch_release) \
+ ((rbbm_patch_release & RBBM_PATCH_RELEASE_PATCH_REVISION_MASK) >> RBBM_PATCH_RELEASE_PATCH_REVISION_SHIFT)
+#define RBBM_PATCH_RELEASE_GET_PATCH_SELECTION(rbbm_patch_release) \
+ ((rbbm_patch_release & RBBM_PATCH_RELEASE_PATCH_SELECTION_MASK) >> RBBM_PATCH_RELEASE_PATCH_SELECTION_SHIFT)
+#define RBBM_PATCH_RELEASE_GET_CUSTOMER_ID(rbbm_patch_release) \
+ ((rbbm_patch_release & RBBM_PATCH_RELEASE_CUSTOMER_ID_MASK) >> RBBM_PATCH_RELEASE_CUSTOMER_ID_SHIFT)
+
+#define RBBM_PATCH_RELEASE_SET_PATCH_REVISION(rbbm_patch_release_reg, patch_revision) \
+ rbbm_patch_release_reg = (rbbm_patch_release_reg & ~RBBM_PATCH_RELEASE_PATCH_REVISION_MASK) | (patch_revision << RBBM_PATCH_RELEASE_PATCH_REVISION_SHIFT)
+#define RBBM_PATCH_RELEASE_SET_PATCH_SELECTION(rbbm_patch_release_reg, patch_selection) \
+ rbbm_patch_release_reg = (rbbm_patch_release_reg & ~RBBM_PATCH_RELEASE_PATCH_SELECTION_MASK) | (patch_selection << RBBM_PATCH_RELEASE_PATCH_SELECTION_SHIFT)
+#define RBBM_PATCH_RELEASE_SET_CUSTOMER_ID(rbbm_patch_release_reg, customer_id) \
+ rbbm_patch_release_reg = (rbbm_patch_release_reg & ~RBBM_PATCH_RELEASE_CUSTOMER_ID_MASK) | (customer_id << RBBM_PATCH_RELEASE_CUSTOMER_ID_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_patch_release_t {
+ unsigned int patch_revision : RBBM_PATCH_RELEASE_PATCH_REVISION_SIZE;
+ unsigned int patch_selection : RBBM_PATCH_RELEASE_PATCH_SELECTION_SIZE;
+ unsigned int customer_id : RBBM_PATCH_RELEASE_CUSTOMER_ID_SIZE;
+ } rbbm_patch_release_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_patch_release_t {
+ unsigned int customer_id : RBBM_PATCH_RELEASE_CUSTOMER_ID_SIZE;
+ unsigned int patch_selection : RBBM_PATCH_RELEASE_PATCH_SELECTION_SIZE;
+ unsigned int patch_revision : RBBM_PATCH_RELEASE_PATCH_REVISION_SIZE;
+ } rbbm_patch_release_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_patch_release_t f;
+} rbbm_patch_release_u;
+
+
+/*
+ * RBBM_AUXILIARY_CONFIG struct
+ */
+
+#define RBBM_AUXILIARY_CONFIG_RESERVED_SIZE 32
+
+#define RBBM_AUXILIARY_CONFIG_RESERVED_SHIFT 0
+
+#define RBBM_AUXILIARY_CONFIG_RESERVED_MASK 0xffffffff
+
+#define RBBM_AUXILIARY_CONFIG_MASK \
+ (RBBM_AUXILIARY_CONFIG_RESERVED_MASK)
+
+#define RBBM_AUXILIARY_CONFIG(reserved) \
+ ((reserved << RBBM_AUXILIARY_CONFIG_RESERVED_SHIFT))
+
+#define RBBM_AUXILIARY_CONFIG_GET_RESERVED(rbbm_auxiliary_config) \
+ ((rbbm_auxiliary_config & RBBM_AUXILIARY_CONFIG_RESERVED_MASK) >> RBBM_AUXILIARY_CONFIG_RESERVED_SHIFT)
+
+#define RBBM_AUXILIARY_CONFIG_SET_RESERVED(rbbm_auxiliary_config_reg, reserved) \
+ rbbm_auxiliary_config_reg = (rbbm_auxiliary_config_reg & ~RBBM_AUXILIARY_CONFIG_RESERVED_MASK) | (reserved << RBBM_AUXILIARY_CONFIG_RESERVED_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_auxiliary_config_t {
+ unsigned int reserved : RBBM_AUXILIARY_CONFIG_RESERVED_SIZE;
+ } rbbm_auxiliary_config_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_auxiliary_config_t {
+ unsigned int reserved : RBBM_AUXILIARY_CONFIG_RESERVED_SIZE;
+ } rbbm_auxiliary_config_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_auxiliary_config_t f;
+} rbbm_auxiliary_config_u;
+
+
+/*
+ * RBBM_PERIPHID0 struct
+ */
+
+#define RBBM_PERIPHID0_PARTNUMBER0_SIZE 8
+
+#define RBBM_PERIPHID0_PARTNUMBER0_SHIFT 0
+
+#define RBBM_PERIPHID0_PARTNUMBER0_MASK 0x000000ff
+
+#define RBBM_PERIPHID0_MASK \
+ (RBBM_PERIPHID0_PARTNUMBER0_MASK)
+
+#define RBBM_PERIPHID0(partnumber0) \
+ ((partnumber0 << RBBM_PERIPHID0_PARTNUMBER0_SHIFT))
+
+#define RBBM_PERIPHID0_GET_PARTNUMBER0(rbbm_periphid0) \
+ ((rbbm_periphid0 & RBBM_PERIPHID0_PARTNUMBER0_MASK) >> RBBM_PERIPHID0_PARTNUMBER0_SHIFT)
+
+#define RBBM_PERIPHID0_SET_PARTNUMBER0(rbbm_periphid0_reg, partnumber0) \
+ rbbm_periphid0_reg = (rbbm_periphid0_reg & ~RBBM_PERIPHID0_PARTNUMBER0_MASK) | (partnumber0 << RBBM_PERIPHID0_PARTNUMBER0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_periphid0_t {
+ unsigned int partnumber0 : RBBM_PERIPHID0_PARTNUMBER0_SIZE;
+ unsigned int : 24;
+ } rbbm_periphid0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_periphid0_t {
+ unsigned int : 24;
+ unsigned int partnumber0 : RBBM_PERIPHID0_PARTNUMBER0_SIZE;
+ } rbbm_periphid0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_periphid0_t f;
+} rbbm_periphid0_u;
+
+
+/*
+ * RBBM_PERIPHID1 struct
+ */
+
+#define RBBM_PERIPHID1_PARTNUMBER1_SIZE 4
+#define RBBM_PERIPHID1_DESIGNER0_SIZE 4
+
+#define RBBM_PERIPHID1_PARTNUMBER1_SHIFT 0
+#define RBBM_PERIPHID1_DESIGNER0_SHIFT 4
+
+#define RBBM_PERIPHID1_PARTNUMBER1_MASK 0x0000000f
+#define RBBM_PERIPHID1_DESIGNER0_MASK 0x000000f0
+
+#define RBBM_PERIPHID1_MASK \
+ (RBBM_PERIPHID1_PARTNUMBER1_MASK | \
+ RBBM_PERIPHID1_DESIGNER0_MASK)
+
+#define RBBM_PERIPHID1(partnumber1, designer0) \
+ ((partnumber1 << RBBM_PERIPHID1_PARTNUMBER1_SHIFT) | \
+ (designer0 << RBBM_PERIPHID1_DESIGNER0_SHIFT))
+
+#define RBBM_PERIPHID1_GET_PARTNUMBER1(rbbm_periphid1) \
+ ((rbbm_periphid1 & RBBM_PERIPHID1_PARTNUMBER1_MASK) >> RBBM_PERIPHID1_PARTNUMBER1_SHIFT)
+#define RBBM_PERIPHID1_GET_DESIGNER0(rbbm_periphid1) \
+ ((rbbm_periphid1 & RBBM_PERIPHID1_DESIGNER0_MASK) >> RBBM_PERIPHID1_DESIGNER0_SHIFT)
+
+#define RBBM_PERIPHID1_SET_PARTNUMBER1(rbbm_periphid1_reg, partnumber1) \
+ rbbm_periphid1_reg = (rbbm_periphid1_reg & ~RBBM_PERIPHID1_PARTNUMBER1_MASK) | (partnumber1 << RBBM_PERIPHID1_PARTNUMBER1_SHIFT)
+#define RBBM_PERIPHID1_SET_DESIGNER0(rbbm_periphid1_reg, designer0) \
+ rbbm_periphid1_reg = (rbbm_periphid1_reg & ~RBBM_PERIPHID1_DESIGNER0_MASK) | (designer0 << RBBM_PERIPHID1_DESIGNER0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_periphid1_t {
+ unsigned int partnumber1 : RBBM_PERIPHID1_PARTNUMBER1_SIZE;
+ unsigned int designer0 : RBBM_PERIPHID1_DESIGNER0_SIZE;
+ unsigned int : 24;
+ } rbbm_periphid1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_periphid1_t {
+ unsigned int : 24;
+ unsigned int designer0 : RBBM_PERIPHID1_DESIGNER0_SIZE;
+ unsigned int partnumber1 : RBBM_PERIPHID1_PARTNUMBER1_SIZE;
+ } rbbm_periphid1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_periphid1_t f;
+} rbbm_periphid1_u;
+
+
+/*
+ * RBBM_PERIPHID2 struct
+ */
+
+#define RBBM_PERIPHID2_DESIGNER1_SIZE 4
+#define RBBM_PERIPHID2_REVISION_SIZE 4
+
+#define RBBM_PERIPHID2_DESIGNER1_SHIFT 0
+#define RBBM_PERIPHID2_REVISION_SHIFT 4
+
+#define RBBM_PERIPHID2_DESIGNER1_MASK 0x0000000f
+#define RBBM_PERIPHID2_REVISION_MASK 0x000000f0
+
+#define RBBM_PERIPHID2_MASK \
+ (RBBM_PERIPHID2_DESIGNER1_MASK | \
+ RBBM_PERIPHID2_REVISION_MASK)
+
+#define RBBM_PERIPHID2(designer1, revision) \
+ ((designer1 << RBBM_PERIPHID2_DESIGNER1_SHIFT) | \
+ (revision << RBBM_PERIPHID2_REVISION_SHIFT))
+
+#define RBBM_PERIPHID2_GET_DESIGNER1(rbbm_periphid2) \
+ ((rbbm_periphid2 & RBBM_PERIPHID2_DESIGNER1_MASK) >> RBBM_PERIPHID2_DESIGNER1_SHIFT)
+#define RBBM_PERIPHID2_GET_REVISION(rbbm_periphid2) \
+ ((rbbm_periphid2 & RBBM_PERIPHID2_REVISION_MASK) >> RBBM_PERIPHID2_REVISION_SHIFT)
+
+#define RBBM_PERIPHID2_SET_DESIGNER1(rbbm_periphid2_reg, designer1) \
+ rbbm_periphid2_reg = (rbbm_periphid2_reg & ~RBBM_PERIPHID2_DESIGNER1_MASK) | (designer1 << RBBM_PERIPHID2_DESIGNER1_SHIFT)
+#define RBBM_PERIPHID2_SET_REVISION(rbbm_periphid2_reg, revision) \
+ rbbm_periphid2_reg = (rbbm_periphid2_reg & ~RBBM_PERIPHID2_REVISION_MASK) | (revision << RBBM_PERIPHID2_REVISION_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_periphid2_t {
+ unsigned int designer1 : RBBM_PERIPHID2_DESIGNER1_SIZE;
+ unsigned int revision : RBBM_PERIPHID2_REVISION_SIZE;
+ unsigned int : 24;
+ } rbbm_periphid2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_periphid2_t {
+ unsigned int : 24;
+ unsigned int revision : RBBM_PERIPHID2_REVISION_SIZE;
+ unsigned int designer1 : RBBM_PERIPHID2_DESIGNER1_SIZE;
+ } rbbm_periphid2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_periphid2_t f;
+} rbbm_periphid2_u;
+
+
+/*
+ * RBBM_PERIPHID3 struct
+ */
+
+#define RBBM_PERIPHID3_RBBM_HOST_INTERFACE_SIZE 2
+#define RBBM_PERIPHID3_GARB_SLAVE_INTERFACE_SIZE 2
+#define RBBM_PERIPHID3_MH_INTERFACE_SIZE 2
+#define RBBM_PERIPHID3_CONTINUATION_SIZE 1
+
+#define RBBM_PERIPHID3_RBBM_HOST_INTERFACE_SHIFT 0
+#define RBBM_PERIPHID3_GARB_SLAVE_INTERFACE_SHIFT 2
+#define RBBM_PERIPHID3_MH_INTERFACE_SHIFT 4
+#define RBBM_PERIPHID3_CONTINUATION_SHIFT 7
+
+#define RBBM_PERIPHID3_RBBM_HOST_INTERFACE_MASK 0x00000003
+#define RBBM_PERIPHID3_GARB_SLAVE_INTERFACE_MASK 0x0000000c
+#define RBBM_PERIPHID3_MH_INTERFACE_MASK 0x00000030
+#define RBBM_PERIPHID3_CONTINUATION_MASK 0x00000080
+
+#define RBBM_PERIPHID3_MASK \
+ (RBBM_PERIPHID3_RBBM_HOST_INTERFACE_MASK | \
+ RBBM_PERIPHID3_GARB_SLAVE_INTERFACE_MASK | \
+ RBBM_PERIPHID3_MH_INTERFACE_MASK | \
+ RBBM_PERIPHID3_CONTINUATION_MASK)
+
+#define RBBM_PERIPHID3(rbbm_host_interface, garb_slave_interface, mh_interface, continuation) \
+ ((rbbm_host_interface << RBBM_PERIPHID3_RBBM_HOST_INTERFACE_SHIFT) | \
+ (garb_slave_interface << RBBM_PERIPHID3_GARB_SLAVE_INTERFACE_SHIFT) | \
+ (mh_interface << RBBM_PERIPHID3_MH_INTERFACE_SHIFT) | \
+ (continuation << RBBM_PERIPHID3_CONTINUATION_SHIFT))
+
+#define RBBM_PERIPHID3_GET_RBBM_HOST_INTERFACE(rbbm_periphid3) \
+ ((rbbm_periphid3 & RBBM_PERIPHID3_RBBM_HOST_INTERFACE_MASK) >> RBBM_PERIPHID3_RBBM_HOST_INTERFACE_SHIFT)
+#define RBBM_PERIPHID3_GET_GARB_SLAVE_INTERFACE(rbbm_periphid3) \
+ ((rbbm_periphid3 & RBBM_PERIPHID3_GARB_SLAVE_INTERFACE_MASK) >> RBBM_PERIPHID3_GARB_SLAVE_INTERFACE_SHIFT)
+#define RBBM_PERIPHID3_GET_MH_INTERFACE(rbbm_periphid3) \
+ ((rbbm_periphid3 & RBBM_PERIPHID3_MH_INTERFACE_MASK) >> RBBM_PERIPHID3_MH_INTERFACE_SHIFT)
+#define RBBM_PERIPHID3_GET_CONTINUATION(rbbm_periphid3) \
+ ((rbbm_periphid3 & RBBM_PERIPHID3_CONTINUATION_MASK) >> RBBM_PERIPHID3_CONTINUATION_SHIFT)
+
+#define RBBM_PERIPHID3_SET_RBBM_HOST_INTERFACE(rbbm_periphid3_reg, rbbm_host_interface) \
+ rbbm_periphid3_reg = (rbbm_periphid3_reg & ~RBBM_PERIPHID3_RBBM_HOST_INTERFACE_MASK) | (rbbm_host_interface << RBBM_PERIPHID3_RBBM_HOST_INTERFACE_SHIFT)
+#define RBBM_PERIPHID3_SET_GARB_SLAVE_INTERFACE(rbbm_periphid3_reg, garb_slave_interface) \
+ rbbm_periphid3_reg = (rbbm_periphid3_reg & ~RBBM_PERIPHID3_GARB_SLAVE_INTERFACE_MASK) | (garb_slave_interface << RBBM_PERIPHID3_GARB_SLAVE_INTERFACE_SHIFT)
+#define RBBM_PERIPHID3_SET_MH_INTERFACE(rbbm_periphid3_reg, mh_interface) \
+ rbbm_periphid3_reg = (rbbm_periphid3_reg & ~RBBM_PERIPHID3_MH_INTERFACE_MASK) | (mh_interface << RBBM_PERIPHID3_MH_INTERFACE_SHIFT)
+#define RBBM_PERIPHID3_SET_CONTINUATION(rbbm_periphid3_reg, continuation) \
+ rbbm_periphid3_reg = (rbbm_periphid3_reg & ~RBBM_PERIPHID3_CONTINUATION_MASK) | (continuation << RBBM_PERIPHID3_CONTINUATION_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_periphid3_t {
+ unsigned int rbbm_host_interface : RBBM_PERIPHID3_RBBM_HOST_INTERFACE_SIZE;
+ unsigned int garb_slave_interface : RBBM_PERIPHID3_GARB_SLAVE_INTERFACE_SIZE;
+ unsigned int mh_interface : RBBM_PERIPHID3_MH_INTERFACE_SIZE;
+ unsigned int : 1;
+ unsigned int continuation : RBBM_PERIPHID3_CONTINUATION_SIZE;
+ unsigned int : 24;
+ } rbbm_periphid3_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_periphid3_t {
+ unsigned int : 24;
+ unsigned int continuation : RBBM_PERIPHID3_CONTINUATION_SIZE;
+ unsigned int : 1;
+ unsigned int mh_interface : RBBM_PERIPHID3_MH_INTERFACE_SIZE;
+ unsigned int garb_slave_interface : RBBM_PERIPHID3_GARB_SLAVE_INTERFACE_SIZE;
+ unsigned int rbbm_host_interface : RBBM_PERIPHID3_RBBM_HOST_INTERFACE_SIZE;
+ } rbbm_periphid3_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_periphid3_t f;
+} rbbm_periphid3_u;
+
+
+/*
+ * RBBM_CNTL struct
+ */
+
+#define RBBM_CNTL_READ_TIMEOUT_SIZE 8
+#define RBBM_CNTL_REGCLK_DEASSERT_TIME_SIZE 9
+
+#define RBBM_CNTL_READ_TIMEOUT_SHIFT 0
+#define RBBM_CNTL_REGCLK_DEASSERT_TIME_SHIFT 8
+
+#define RBBM_CNTL_READ_TIMEOUT_MASK 0x000000ff
+#define RBBM_CNTL_REGCLK_DEASSERT_TIME_MASK 0x0001ff00
+
+#define RBBM_CNTL_MASK \
+ (RBBM_CNTL_READ_TIMEOUT_MASK | \
+ RBBM_CNTL_REGCLK_DEASSERT_TIME_MASK)
+
+#define RBBM_CNTL(read_timeout, regclk_deassert_time) \
+ ((read_timeout << RBBM_CNTL_READ_TIMEOUT_SHIFT) | \
+ (regclk_deassert_time << RBBM_CNTL_REGCLK_DEASSERT_TIME_SHIFT))
+
+#define RBBM_CNTL_GET_READ_TIMEOUT(rbbm_cntl) \
+ ((rbbm_cntl & RBBM_CNTL_READ_TIMEOUT_MASK) >> RBBM_CNTL_READ_TIMEOUT_SHIFT)
+#define RBBM_CNTL_GET_REGCLK_DEASSERT_TIME(rbbm_cntl) \
+ ((rbbm_cntl & RBBM_CNTL_REGCLK_DEASSERT_TIME_MASK) >> RBBM_CNTL_REGCLK_DEASSERT_TIME_SHIFT)
+
+#define RBBM_CNTL_SET_READ_TIMEOUT(rbbm_cntl_reg, read_timeout) \
+ rbbm_cntl_reg = (rbbm_cntl_reg & ~RBBM_CNTL_READ_TIMEOUT_MASK) | (read_timeout << RBBM_CNTL_READ_TIMEOUT_SHIFT)
+#define RBBM_CNTL_SET_REGCLK_DEASSERT_TIME(rbbm_cntl_reg, regclk_deassert_time) \
+ rbbm_cntl_reg = (rbbm_cntl_reg & ~RBBM_CNTL_REGCLK_DEASSERT_TIME_MASK) | (regclk_deassert_time << RBBM_CNTL_REGCLK_DEASSERT_TIME_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_cntl_t {
+ unsigned int read_timeout : RBBM_CNTL_READ_TIMEOUT_SIZE;
+ unsigned int regclk_deassert_time : RBBM_CNTL_REGCLK_DEASSERT_TIME_SIZE;
+ unsigned int : 15;
+ } rbbm_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_cntl_t {
+ unsigned int : 15;
+ unsigned int regclk_deassert_time : RBBM_CNTL_REGCLK_DEASSERT_TIME_SIZE;
+ unsigned int read_timeout : RBBM_CNTL_READ_TIMEOUT_SIZE;
+ } rbbm_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_cntl_t f;
+} rbbm_cntl_u;
+
+
+/*
+ * RBBM_SKEW_CNTL struct
+ */
+
+#define RBBM_SKEW_CNTL_SKEW_TOP_THRESHOLD_SIZE 5
+#define RBBM_SKEW_CNTL_SKEW_COUNT_SIZE 5
+
+#define RBBM_SKEW_CNTL_SKEW_TOP_THRESHOLD_SHIFT 0
+#define RBBM_SKEW_CNTL_SKEW_COUNT_SHIFT 5
+
+#define RBBM_SKEW_CNTL_SKEW_TOP_THRESHOLD_MASK 0x0000001f
+#define RBBM_SKEW_CNTL_SKEW_COUNT_MASK 0x000003e0
+
+#define RBBM_SKEW_CNTL_MASK \
+ (RBBM_SKEW_CNTL_SKEW_TOP_THRESHOLD_MASK | \
+ RBBM_SKEW_CNTL_SKEW_COUNT_MASK)
+
+#define RBBM_SKEW_CNTL(skew_top_threshold, skew_count) \
+ ((skew_top_threshold << RBBM_SKEW_CNTL_SKEW_TOP_THRESHOLD_SHIFT) | \
+ (skew_count << RBBM_SKEW_CNTL_SKEW_COUNT_SHIFT))
+
+#define RBBM_SKEW_CNTL_GET_SKEW_TOP_THRESHOLD(rbbm_skew_cntl) \
+ ((rbbm_skew_cntl & RBBM_SKEW_CNTL_SKEW_TOP_THRESHOLD_MASK) >> RBBM_SKEW_CNTL_SKEW_TOP_THRESHOLD_SHIFT)
+#define RBBM_SKEW_CNTL_GET_SKEW_COUNT(rbbm_skew_cntl) \
+ ((rbbm_skew_cntl & RBBM_SKEW_CNTL_SKEW_COUNT_MASK) >> RBBM_SKEW_CNTL_SKEW_COUNT_SHIFT)
+
+#define RBBM_SKEW_CNTL_SET_SKEW_TOP_THRESHOLD(rbbm_skew_cntl_reg, skew_top_threshold) \
+ rbbm_skew_cntl_reg = (rbbm_skew_cntl_reg & ~RBBM_SKEW_CNTL_SKEW_TOP_THRESHOLD_MASK) | (skew_top_threshold << RBBM_SKEW_CNTL_SKEW_TOP_THRESHOLD_SHIFT)
+#define RBBM_SKEW_CNTL_SET_SKEW_COUNT(rbbm_skew_cntl_reg, skew_count) \
+ rbbm_skew_cntl_reg = (rbbm_skew_cntl_reg & ~RBBM_SKEW_CNTL_SKEW_COUNT_MASK) | (skew_count << RBBM_SKEW_CNTL_SKEW_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_skew_cntl_t {
+ unsigned int skew_top_threshold : RBBM_SKEW_CNTL_SKEW_TOP_THRESHOLD_SIZE;
+ unsigned int skew_count : RBBM_SKEW_CNTL_SKEW_COUNT_SIZE;
+ unsigned int : 22;
+ } rbbm_skew_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_skew_cntl_t {
+ unsigned int : 22;
+ unsigned int skew_count : RBBM_SKEW_CNTL_SKEW_COUNT_SIZE;
+ unsigned int skew_top_threshold : RBBM_SKEW_CNTL_SKEW_TOP_THRESHOLD_SIZE;
+ } rbbm_skew_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_skew_cntl_t f;
+} rbbm_skew_cntl_u;
+
+
+/*
+ * RBBM_SOFT_RESET struct
+ */
+
+#define RBBM_SOFT_RESET_SOFT_RESET_CP_SIZE 1
+#define RBBM_SOFT_RESET_SOFT_RESET_PA_SIZE 1
+#define RBBM_SOFT_RESET_SOFT_RESET_MH_SIZE 1
+#define RBBM_SOFT_RESET_SOFT_RESET_BC_SIZE 1
+#define RBBM_SOFT_RESET_SOFT_RESET_SQ_SIZE 1
+#define RBBM_SOFT_RESET_SOFT_RESET_SX_SIZE 1
+#define RBBM_SOFT_RESET_SOFT_RESET_CIB_SIZE 1
+#define RBBM_SOFT_RESET_SOFT_RESET_SC_SIZE 1
+#define RBBM_SOFT_RESET_SOFT_RESET_VGT_SIZE 1
+
+#define RBBM_SOFT_RESET_SOFT_RESET_CP_SHIFT 0
+#define RBBM_SOFT_RESET_SOFT_RESET_PA_SHIFT 2
+#define RBBM_SOFT_RESET_SOFT_RESET_MH_SHIFT 3
+#define RBBM_SOFT_RESET_SOFT_RESET_BC_SHIFT 4
+#define RBBM_SOFT_RESET_SOFT_RESET_SQ_SHIFT 5
+#define RBBM_SOFT_RESET_SOFT_RESET_SX_SHIFT 6
+#define RBBM_SOFT_RESET_SOFT_RESET_CIB_SHIFT 12
+#define RBBM_SOFT_RESET_SOFT_RESET_SC_SHIFT 15
+#define RBBM_SOFT_RESET_SOFT_RESET_VGT_SHIFT 16
+
+#define RBBM_SOFT_RESET_SOFT_RESET_CP_MASK 0x00000001
+#define RBBM_SOFT_RESET_SOFT_RESET_PA_MASK 0x00000004
+#define RBBM_SOFT_RESET_SOFT_RESET_MH_MASK 0x00000008
+#define RBBM_SOFT_RESET_SOFT_RESET_BC_MASK 0x00000010
+#define RBBM_SOFT_RESET_SOFT_RESET_SQ_MASK 0x00000020
+#define RBBM_SOFT_RESET_SOFT_RESET_SX_MASK 0x00000040
+#define RBBM_SOFT_RESET_SOFT_RESET_CIB_MASK 0x00001000
+#define RBBM_SOFT_RESET_SOFT_RESET_SC_MASK 0x00008000
+#define RBBM_SOFT_RESET_SOFT_RESET_VGT_MASK 0x00010000
+
+#define RBBM_SOFT_RESET_MASK \
+ (RBBM_SOFT_RESET_SOFT_RESET_CP_MASK | \
+ RBBM_SOFT_RESET_SOFT_RESET_PA_MASK | \
+ RBBM_SOFT_RESET_SOFT_RESET_MH_MASK | \
+ RBBM_SOFT_RESET_SOFT_RESET_BC_MASK | \
+ RBBM_SOFT_RESET_SOFT_RESET_SQ_MASK | \
+ RBBM_SOFT_RESET_SOFT_RESET_SX_MASK | \
+ RBBM_SOFT_RESET_SOFT_RESET_CIB_MASK | \
+ RBBM_SOFT_RESET_SOFT_RESET_SC_MASK | \
+ RBBM_SOFT_RESET_SOFT_RESET_VGT_MASK)
+
+#define RBBM_SOFT_RESET(soft_reset_cp, soft_reset_pa, soft_reset_mh, soft_reset_bc, soft_reset_sq, soft_reset_sx, soft_reset_cib, soft_reset_sc, soft_reset_vgt) \
+ ((soft_reset_cp << RBBM_SOFT_RESET_SOFT_RESET_CP_SHIFT) | \
+ (soft_reset_pa << RBBM_SOFT_RESET_SOFT_RESET_PA_SHIFT) | \
+ (soft_reset_mh << RBBM_SOFT_RESET_SOFT_RESET_MH_SHIFT) | \
+ (soft_reset_bc << RBBM_SOFT_RESET_SOFT_RESET_BC_SHIFT) | \
+ (soft_reset_sq << RBBM_SOFT_RESET_SOFT_RESET_SQ_SHIFT) | \
+ (soft_reset_sx << RBBM_SOFT_RESET_SOFT_RESET_SX_SHIFT) | \
+ (soft_reset_cib << RBBM_SOFT_RESET_SOFT_RESET_CIB_SHIFT) | \
+ (soft_reset_sc << RBBM_SOFT_RESET_SOFT_RESET_SC_SHIFT) | \
+ (soft_reset_vgt << RBBM_SOFT_RESET_SOFT_RESET_VGT_SHIFT))
+
+#define RBBM_SOFT_RESET_GET_SOFT_RESET_CP(rbbm_soft_reset) \
+ ((rbbm_soft_reset & RBBM_SOFT_RESET_SOFT_RESET_CP_MASK) >> RBBM_SOFT_RESET_SOFT_RESET_CP_SHIFT)
+#define RBBM_SOFT_RESET_GET_SOFT_RESET_PA(rbbm_soft_reset) \
+ ((rbbm_soft_reset & RBBM_SOFT_RESET_SOFT_RESET_PA_MASK) >> RBBM_SOFT_RESET_SOFT_RESET_PA_SHIFT)
+#define RBBM_SOFT_RESET_GET_SOFT_RESET_MH(rbbm_soft_reset) \
+ ((rbbm_soft_reset & RBBM_SOFT_RESET_SOFT_RESET_MH_MASK) >> RBBM_SOFT_RESET_SOFT_RESET_MH_SHIFT)
+#define RBBM_SOFT_RESET_GET_SOFT_RESET_BC(rbbm_soft_reset) \
+ ((rbbm_soft_reset & RBBM_SOFT_RESET_SOFT_RESET_BC_MASK) >> RBBM_SOFT_RESET_SOFT_RESET_BC_SHIFT)
+#define RBBM_SOFT_RESET_GET_SOFT_RESET_SQ(rbbm_soft_reset) \
+ ((rbbm_soft_reset & RBBM_SOFT_RESET_SOFT_RESET_SQ_MASK) >> RBBM_SOFT_RESET_SOFT_RESET_SQ_SHIFT)
+#define RBBM_SOFT_RESET_GET_SOFT_RESET_SX(rbbm_soft_reset) \
+ ((rbbm_soft_reset & RBBM_SOFT_RESET_SOFT_RESET_SX_MASK) >> RBBM_SOFT_RESET_SOFT_RESET_SX_SHIFT)
+#define RBBM_SOFT_RESET_GET_SOFT_RESET_CIB(rbbm_soft_reset) \
+ ((rbbm_soft_reset & RBBM_SOFT_RESET_SOFT_RESET_CIB_MASK) >> RBBM_SOFT_RESET_SOFT_RESET_CIB_SHIFT)
+#define RBBM_SOFT_RESET_GET_SOFT_RESET_SC(rbbm_soft_reset) \
+ ((rbbm_soft_reset & RBBM_SOFT_RESET_SOFT_RESET_SC_MASK) >> RBBM_SOFT_RESET_SOFT_RESET_SC_SHIFT)
+#define RBBM_SOFT_RESET_GET_SOFT_RESET_VGT(rbbm_soft_reset) \
+ ((rbbm_soft_reset & RBBM_SOFT_RESET_SOFT_RESET_VGT_MASK) >> RBBM_SOFT_RESET_SOFT_RESET_VGT_SHIFT)
+
+#define RBBM_SOFT_RESET_SET_SOFT_RESET_CP(rbbm_soft_reset_reg, soft_reset_cp) \
+ rbbm_soft_reset_reg = (rbbm_soft_reset_reg & ~RBBM_SOFT_RESET_SOFT_RESET_CP_MASK) | (soft_reset_cp << RBBM_SOFT_RESET_SOFT_RESET_CP_SHIFT)
+#define RBBM_SOFT_RESET_SET_SOFT_RESET_PA(rbbm_soft_reset_reg, soft_reset_pa) \
+ rbbm_soft_reset_reg = (rbbm_soft_reset_reg & ~RBBM_SOFT_RESET_SOFT_RESET_PA_MASK) | (soft_reset_pa << RBBM_SOFT_RESET_SOFT_RESET_PA_SHIFT)
+#define RBBM_SOFT_RESET_SET_SOFT_RESET_MH(rbbm_soft_reset_reg, soft_reset_mh) \
+ rbbm_soft_reset_reg = (rbbm_soft_reset_reg & ~RBBM_SOFT_RESET_SOFT_RESET_MH_MASK) | (soft_reset_mh << RBBM_SOFT_RESET_SOFT_RESET_MH_SHIFT)
+#define RBBM_SOFT_RESET_SET_SOFT_RESET_BC(rbbm_soft_reset_reg, soft_reset_bc) \
+ rbbm_soft_reset_reg = (rbbm_soft_reset_reg & ~RBBM_SOFT_RESET_SOFT_RESET_BC_MASK) | (soft_reset_bc << RBBM_SOFT_RESET_SOFT_RESET_BC_SHIFT)
+#define RBBM_SOFT_RESET_SET_SOFT_RESET_SQ(rbbm_soft_reset_reg, soft_reset_sq) \
+ rbbm_soft_reset_reg = (rbbm_soft_reset_reg & ~RBBM_SOFT_RESET_SOFT_RESET_SQ_MASK) | (soft_reset_sq << RBBM_SOFT_RESET_SOFT_RESET_SQ_SHIFT)
+#define RBBM_SOFT_RESET_SET_SOFT_RESET_SX(rbbm_soft_reset_reg, soft_reset_sx) \
+ rbbm_soft_reset_reg = (rbbm_soft_reset_reg & ~RBBM_SOFT_RESET_SOFT_RESET_SX_MASK) | (soft_reset_sx << RBBM_SOFT_RESET_SOFT_RESET_SX_SHIFT)
+#define RBBM_SOFT_RESET_SET_SOFT_RESET_CIB(rbbm_soft_reset_reg, soft_reset_cib) \
+ rbbm_soft_reset_reg = (rbbm_soft_reset_reg & ~RBBM_SOFT_RESET_SOFT_RESET_CIB_MASK) | (soft_reset_cib << RBBM_SOFT_RESET_SOFT_RESET_CIB_SHIFT)
+#define RBBM_SOFT_RESET_SET_SOFT_RESET_SC(rbbm_soft_reset_reg, soft_reset_sc) \
+ rbbm_soft_reset_reg = (rbbm_soft_reset_reg & ~RBBM_SOFT_RESET_SOFT_RESET_SC_MASK) | (soft_reset_sc << RBBM_SOFT_RESET_SOFT_RESET_SC_SHIFT)
+#define RBBM_SOFT_RESET_SET_SOFT_RESET_VGT(rbbm_soft_reset_reg, soft_reset_vgt) \
+ rbbm_soft_reset_reg = (rbbm_soft_reset_reg & ~RBBM_SOFT_RESET_SOFT_RESET_VGT_MASK) | (soft_reset_vgt << RBBM_SOFT_RESET_SOFT_RESET_VGT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_soft_reset_t {
+ unsigned int soft_reset_cp : RBBM_SOFT_RESET_SOFT_RESET_CP_SIZE;
+ unsigned int : 1;
+ unsigned int soft_reset_pa : RBBM_SOFT_RESET_SOFT_RESET_PA_SIZE;
+ unsigned int soft_reset_mh : RBBM_SOFT_RESET_SOFT_RESET_MH_SIZE;
+ unsigned int soft_reset_bc : RBBM_SOFT_RESET_SOFT_RESET_BC_SIZE;
+ unsigned int soft_reset_sq : RBBM_SOFT_RESET_SOFT_RESET_SQ_SIZE;
+ unsigned int soft_reset_sx : RBBM_SOFT_RESET_SOFT_RESET_SX_SIZE;
+ unsigned int : 5;
+ unsigned int soft_reset_cib : RBBM_SOFT_RESET_SOFT_RESET_CIB_SIZE;
+ unsigned int : 2;
+ unsigned int soft_reset_sc : RBBM_SOFT_RESET_SOFT_RESET_SC_SIZE;
+ unsigned int soft_reset_vgt : RBBM_SOFT_RESET_SOFT_RESET_VGT_SIZE;
+ unsigned int : 15;
+ } rbbm_soft_reset_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_soft_reset_t {
+ unsigned int : 15;
+ unsigned int soft_reset_vgt : RBBM_SOFT_RESET_SOFT_RESET_VGT_SIZE;
+ unsigned int soft_reset_sc : RBBM_SOFT_RESET_SOFT_RESET_SC_SIZE;
+ unsigned int : 2;
+ unsigned int soft_reset_cib : RBBM_SOFT_RESET_SOFT_RESET_CIB_SIZE;
+ unsigned int : 5;
+ unsigned int soft_reset_sx : RBBM_SOFT_RESET_SOFT_RESET_SX_SIZE;
+ unsigned int soft_reset_sq : RBBM_SOFT_RESET_SOFT_RESET_SQ_SIZE;
+ unsigned int soft_reset_bc : RBBM_SOFT_RESET_SOFT_RESET_BC_SIZE;
+ unsigned int soft_reset_mh : RBBM_SOFT_RESET_SOFT_RESET_MH_SIZE;
+ unsigned int soft_reset_pa : RBBM_SOFT_RESET_SOFT_RESET_PA_SIZE;
+ unsigned int : 1;
+ unsigned int soft_reset_cp : RBBM_SOFT_RESET_SOFT_RESET_CP_SIZE;
+ } rbbm_soft_reset_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_soft_reset_t f;
+} rbbm_soft_reset_u;
+
+
+/*
+ * RBBM_PM_OVERRIDE1 struct
+ */
+
+#define RBBM_PM_OVERRIDE1_RBBM_AHBCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_SC_REG_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_SC_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_SP_TOP_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_SP_V0_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_SQ_REG_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_SQ_REG_FIFOS_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_SQ_CONST_MEM_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_SQ_SQ_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_SX_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_SX_REG_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_TCM_TCO_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_TCM_TCM_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_TCM_TCD_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_TCM_REG_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_TPC_TPC_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_TPC_REG_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_TCF_TCA_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_TCF_TCB_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_TCF_TCB_READ_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_TP_TP_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_TP_REG_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_CP_G_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_CP_REG_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_CP_G_REG_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_SPI_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_RB_REG_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_RB_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_MH_MH_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_MH_REG_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_MH_MMU_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_MH_TCROQ_SCLK_PM_OVERRIDE_SIZE 1
+
+#define RBBM_PM_OVERRIDE1_RBBM_AHBCLK_PM_OVERRIDE_SHIFT 0
+#define RBBM_PM_OVERRIDE1_SC_REG_SCLK_PM_OVERRIDE_SHIFT 1
+#define RBBM_PM_OVERRIDE1_SC_SCLK_PM_OVERRIDE_SHIFT 2
+#define RBBM_PM_OVERRIDE1_SP_TOP_SCLK_PM_OVERRIDE_SHIFT 3
+#define RBBM_PM_OVERRIDE1_SP_V0_SCLK_PM_OVERRIDE_SHIFT 4
+#define RBBM_PM_OVERRIDE1_SQ_REG_SCLK_PM_OVERRIDE_SHIFT 5
+#define RBBM_PM_OVERRIDE1_SQ_REG_FIFOS_SCLK_PM_OVERRIDE_SHIFT 6
+#define RBBM_PM_OVERRIDE1_SQ_CONST_MEM_SCLK_PM_OVERRIDE_SHIFT 7
+#define RBBM_PM_OVERRIDE1_SQ_SQ_SCLK_PM_OVERRIDE_SHIFT 8
+#define RBBM_PM_OVERRIDE1_SX_SCLK_PM_OVERRIDE_SHIFT 9
+#define RBBM_PM_OVERRIDE1_SX_REG_SCLK_PM_OVERRIDE_SHIFT 10
+#define RBBM_PM_OVERRIDE1_TCM_TCO_SCLK_PM_OVERRIDE_SHIFT 11
+#define RBBM_PM_OVERRIDE1_TCM_TCM_SCLK_PM_OVERRIDE_SHIFT 12
+#define RBBM_PM_OVERRIDE1_TCM_TCD_SCLK_PM_OVERRIDE_SHIFT 13
+#define RBBM_PM_OVERRIDE1_TCM_REG_SCLK_PM_OVERRIDE_SHIFT 14
+#define RBBM_PM_OVERRIDE1_TPC_TPC_SCLK_PM_OVERRIDE_SHIFT 15
+#define RBBM_PM_OVERRIDE1_TPC_REG_SCLK_PM_OVERRIDE_SHIFT 16
+#define RBBM_PM_OVERRIDE1_TCF_TCA_SCLK_PM_OVERRIDE_SHIFT 17
+#define RBBM_PM_OVERRIDE1_TCF_TCB_SCLK_PM_OVERRIDE_SHIFT 18
+#define RBBM_PM_OVERRIDE1_TCF_TCB_READ_SCLK_PM_OVERRIDE_SHIFT 19
+#define RBBM_PM_OVERRIDE1_TP_TP_SCLK_PM_OVERRIDE_SHIFT 20
+#define RBBM_PM_OVERRIDE1_TP_REG_SCLK_PM_OVERRIDE_SHIFT 21
+#define RBBM_PM_OVERRIDE1_CP_G_SCLK_PM_OVERRIDE_SHIFT 22
+#define RBBM_PM_OVERRIDE1_CP_REG_SCLK_PM_OVERRIDE_SHIFT 23
+#define RBBM_PM_OVERRIDE1_CP_G_REG_SCLK_PM_OVERRIDE_SHIFT 24
+#define RBBM_PM_OVERRIDE1_SPI_SCLK_PM_OVERRIDE_SHIFT 25
+#define RBBM_PM_OVERRIDE1_RB_REG_SCLK_PM_OVERRIDE_SHIFT 26
+#define RBBM_PM_OVERRIDE1_RB_SCLK_PM_OVERRIDE_SHIFT 27
+#define RBBM_PM_OVERRIDE1_MH_MH_SCLK_PM_OVERRIDE_SHIFT 28
+#define RBBM_PM_OVERRIDE1_MH_REG_SCLK_PM_OVERRIDE_SHIFT 29
+#define RBBM_PM_OVERRIDE1_MH_MMU_SCLK_PM_OVERRIDE_SHIFT 30
+#define RBBM_PM_OVERRIDE1_MH_TCROQ_SCLK_PM_OVERRIDE_SHIFT 31
+
+#define RBBM_PM_OVERRIDE1_RBBM_AHBCLK_PM_OVERRIDE_MASK 0x00000001
+#define RBBM_PM_OVERRIDE1_SC_REG_SCLK_PM_OVERRIDE_MASK 0x00000002
+#define RBBM_PM_OVERRIDE1_SC_SCLK_PM_OVERRIDE_MASK 0x00000004
+#define RBBM_PM_OVERRIDE1_SP_TOP_SCLK_PM_OVERRIDE_MASK 0x00000008
+#define RBBM_PM_OVERRIDE1_SP_V0_SCLK_PM_OVERRIDE_MASK 0x00000010
+#define RBBM_PM_OVERRIDE1_SQ_REG_SCLK_PM_OVERRIDE_MASK 0x00000020
+#define RBBM_PM_OVERRIDE1_SQ_REG_FIFOS_SCLK_PM_OVERRIDE_MASK 0x00000040
+#define RBBM_PM_OVERRIDE1_SQ_CONST_MEM_SCLK_PM_OVERRIDE_MASK 0x00000080
+#define RBBM_PM_OVERRIDE1_SQ_SQ_SCLK_PM_OVERRIDE_MASK 0x00000100
+#define RBBM_PM_OVERRIDE1_SX_SCLK_PM_OVERRIDE_MASK 0x00000200
+#define RBBM_PM_OVERRIDE1_SX_REG_SCLK_PM_OVERRIDE_MASK 0x00000400
+#define RBBM_PM_OVERRIDE1_TCM_TCO_SCLK_PM_OVERRIDE_MASK 0x00000800
+#define RBBM_PM_OVERRIDE1_TCM_TCM_SCLK_PM_OVERRIDE_MASK 0x00001000
+#define RBBM_PM_OVERRIDE1_TCM_TCD_SCLK_PM_OVERRIDE_MASK 0x00002000
+#define RBBM_PM_OVERRIDE1_TCM_REG_SCLK_PM_OVERRIDE_MASK 0x00004000
+#define RBBM_PM_OVERRIDE1_TPC_TPC_SCLK_PM_OVERRIDE_MASK 0x00008000
+#define RBBM_PM_OVERRIDE1_TPC_REG_SCLK_PM_OVERRIDE_MASK 0x00010000
+#define RBBM_PM_OVERRIDE1_TCF_TCA_SCLK_PM_OVERRIDE_MASK 0x00020000
+#define RBBM_PM_OVERRIDE1_TCF_TCB_SCLK_PM_OVERRIDE_MASK 0x00040000
+#define RBBM_PM_OVERRIDE1_TCF_TCB_READ_SCLK_PM_OVERRIDE_MASK 0x00080000
+#define RBBM_PM_OVERRIDE1_TP_TP_SCLK_PM_OVERRIDE_MASK 0x00100000
+#define RBBM_PM_OVERRIDE1_TP_REG_SCLK_PM_OVERRIDE_MASK 0x00200000
+#define RBBM_PM_OVERRIDE1_CP_G_SCLK_PM_OVERRIDE_MASK 0x00400000
+#define RBBM_PM_OVERRIDE1_CP_REG_SCLK_PM_OVERRIDE_MASK 0x00800000
+#define RBBM_PM_OVERRIDE1_CP_G_REG_SCLK_PM_OVERRIDE_MASK 0x01000000
+#define RBBM_PM_OVERRIDE1_SPI_SCLK_PM_OVERRIDE_MASK 0x02000000
+#define RBBM_PM_OVERRIDE1_RB_REG_SCLK_PM_OVERRIDE_MASK 0x04000000
+#define RBBM_PM_OVERRIDE1_RB_SCLK_PM_OVERRIDE_MASK 0x08000000
+#define RBBM_PM_OVERRIDE1_MH_MH_SCLK_PM_OVERRIDE_MASK 0x10000000
+#define RBBM_PM_OVERRIDE1_MH_REG_SCLK_PM_OVERRIDE_MASK 0x20000000
+#define RBBM_PM_OVERRIDE1_MH_MMU_SCLK_PM_OVERRIDE_MASK 0x40000000
+#define RBBM_PM_OVERRIDE1_MH_TCROQ_SCLK_PM_OVERRIDE_MASK 0x80000000
+
+#define RBBM_PM_OVERRIDE1_MASK \
+ (RBBM_PM_OVERRIDE1_RBBM_AHBCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_SC_REG_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_SC_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_SP_TOP_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_SP_V0_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_SQ_REG_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_SQ_REG_FIFOS_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_SQ_CONST_MEM_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_SQ_SQ_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_SX_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_SX_REG_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_TCM_TCO_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_TCM_TCM_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_TCM_TCD_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_TCM_REG_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_TPC_TPC_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_TPC_REG_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_TCF_TCA_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_TCF_TCB_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_TCF_TCB_READ_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_TP_TP_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_TP_REG_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_CP_G_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_CP_REG_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_CP_G_REG_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_SPI_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_RB_REG_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_RB_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_MH_MH_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_MH_REG_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_MH_MMU_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_MH_TCROQ_SCLK_PM_OVERRIDE_MASK)
+
+#define RBBM_PM_OVERRIDE1(rbbm_ahbclk_pm_override, sc_reg_sclk_pm_override, sc_sclk_pm_override, sp_top_sclk_pm_override, sp_v0_sclk_pm_override, sq_reg_sclk_pm_override, sq_reg_fifos_sclk_pm_override, sq_const_mem_sclk_pm_override, sq_sq_sclk_pm_override, sx_sclk_pm_override, sx_reg_sclk_pm_override, tcm_tco_sclk_pm_override, tcm_tcm_sclk_pm_override, tcm_tcd_sclk_pm_override, tcm_reg_sclk_pm_override, tpc_tpc_sclk_pm_override, tpc_reg_sclk_pm_override, tcf_tca_sclk_pm_override, tcf_tcb_sclk_pm_override, tcf_tcb_read_sclk_pm_override, tp_tp_sclk_pm_override, tp_reg_sclk_pm_override, cp_g_sclk_pm_override, cp_reg_sclk_pm_override, cp_g_reg_sclk_pm_override, spi_sclk_pm_override, rb_reg_sclk_pm_override, rb_sclk_pm_override, mh_mh_sclk_pm_override, mh_reg_sclk_pm_override, mh_mmu_sclk_pm_override, mh_tcroq_sclk_pm_override) \
+ ((rbbm_ahbclk_pm_override << RBBM_PM_OVERRIDE1_RBBM_AHBCLK_PM_OVERRIDE_SHIFT) | \
+ (sc_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_SC_REG_SCLK_PM_OVERRIDE_SHIFT) | \
+ (sc_sclk_pm_override << RBBM_PM_OVERRIDE1_SC_SCLK_PM_OVERRIDE_SHIFT) | \
+ (sp_top_sclk_pm_override << RBBM_PM_OVERRIDE1_SP_TOP_SCLK_PM_OVERRIDE_SHIFT) | \
+ (sp_v0_sclk_pm_override << RBBM_PM_OVERRIDE1_SP_V0_SCLK_PM_OVERRIDE_SHIFT) | \
+ (sq_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_SQ_REG_SCLK_PM_OVERRIDE_SHIFT) | \
+ (sq_reg_fifos_sclk_pm_override << RBBM_PM_OVERRIDE1_SQ_REG_FIFOS_SCLK_PM_OVERRIDE_SHIFT) | \
+ (sq_const_mem_sclk_pm_override << RBBM_PM_OVERRIDE1_SQ_CONST_MEM_SCLK_PM_OVERRIDE_SHIFT) | \
+ (sq_sq_sclk_pm_override << RBBM_PM_OVERRIDE1_SQ_SQ_SCLK_PM_OVERRIDE_SHIFT) | \
+ (sx_sclk_pm_override << RBBM_PM_OVERRIDE1_SX_SCLK_PM_OVERRIDE_SHIFT) | \
+ (sx_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_SX_REG_SCLK_PM_OVERRIDE_SHIFT) | \
+ (tcm_tco_sclk_pm_override << RBBM_PM_OVERRIDE1_TCM_TCO_SCLK_PM_OVERRIDE_SHIFT) | \
+ (tcm_tcm_sclk_pm_override << RBBM_PM_OVERRIDE1_TCM_TCM_SCLK_PM_OVERRIDE_SHIFT) | \
+ (tcm_tcd_sclk_pm_override << RBBM_PM_OVERRIDE1_TCM_TCD_SCLK_PM_OVERRIDE_SHIFT) | \
+ (tcm_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_TCM_REG_SCLK_PM_OVERRIDE_SHIFT) | \
+ (tpc_tpc_sclk_pm_override << RBBM_PM_OVERRIDE1_TPC_TPC_SCLK_PM_OVERRIDE_SHIFT) | \
+ (tpc_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_TPC_REG_SCLK_PM_OVERRIDE_SHIFT) | \
+ (tcf_tca_sclk_pm_override << RBBM_PM_OVERRIDE1_TCF_TCA_SCLK_PM_OVERRIDE_SHIFT) | \
+ (tcf_tcb_sclk_pm_override << RBBM_PM_OVERRIDE1_TCF_TCB_SCLK_PM_OVERRIDE_SHIFT) | \
+ (tcf_tcb_read_sclk_pm_override << RBBM_PM_OVERRIDE1_TCF_TCB_READ_SCLK_PM_OVERRIDE_SHIFT) | \
+ (tp_tp_sclk_pm_override << RBBM_PM_OVERRIDE1_TP_TP_SCLK_PM_OVERRIDE_SHIFT) | \
+ (tp_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_TP_REG_SCLK_PM_OVERRIDE_SHIFT) | \
+ (cp_g_sclk_pm_override << RBBM_PM_OVERRIDE1_CP_G_SCLK_PM_OVERRIDE_SHIFT) | \
+ (cp_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_CP_REG_SCLK_PM_OVERRIDE_SHIFT) | \
+ (cp_g_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_CP_G_REG_SCLK_PM_OVERRIDE_SHIFT) | \
+ (spi_sclk_pm_override << RBBM_PM_OVERRIDE1_SPI_SCLK_PM_OVERRIDE_SHIFT) | \
+ (rb_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_RB_REG_SCLK_PM_OVERRIDE_SHIFT) | \
+ (rb_sclk_pm_override << RBBM_PM_OVERRIDE1_RB_SCLK_PM_OVERRIDE_SHIFT) | \
+ (mh_mh_sclk_pm_override << RBBM_PM_OVERRIDE1_MH_MH_SCLK_PM_OVERRIDE_SHIFT) | \
+ (mh_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_MH_REG_SCLK_PM_OVERRIDE_SHIFT) | \
+ (mh_mmu_sclk_pm_override << RBBM_PM_OVERRIDE1_MH_MMU_SCLK_PM_OVERRIDE_SHIFT) | \
+ (mh_tcroq_sclk_pm_override << RBBM_PM_OVERRIDE1_MH_TCROQ_SCLK_PM_OVERRIDE_SHIFT))
+
+#define RBBM_PM_OVERRIDE1_GET_RBBM_AHBCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_RBBM_AHBCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_RBBM_AHBCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_SC_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_SC_REG_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_SC_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_SC_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_SC_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_SC_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_SP_TOP_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_SP_TOP_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_SP_TOP_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_SP_V0_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_SP_V0_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_SP_V0_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_SQ_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_SQ_REG_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_SQ_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_SQ_REG_FIFOS_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_SQ_REG_FIFOS_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_SQ_REG_FIFOS_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_SQ_CONST_MEM_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_SQ_CONST_MEM_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_SQ_CONST_MEM_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_SQ_SQ_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_SQ_SQ_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_SQ_SQ_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_SX_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_SX_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_SX_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_SX_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_SX_REG_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_SX_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_TCM_TCO_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_TCM_TCO_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_TCM_TCO_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_TCM_TCM_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_TCM_TCM_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_TCM_TCM_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_TCM_TCD_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_TCM_TCD_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_TCM_TCD_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_TCM_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_TCM_REG_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_TCM_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_TPC_TPC_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_TPC_TPC_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_TPC_TPC_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_TPC_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_TPC_REG_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_TPC_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_TCF_TCA_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_TCF_TCA_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_TCF_TCA_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_TCF_TCB_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_TCF_TCB_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_TCF_TCB_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_TCF_TCB_READ_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_TCF_TCB_READ_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_TCF_TCB_READ_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_TP_TP_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_TP_TP_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_TP_TP_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_TP_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_TP_REG_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_TP_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_CP_G_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_CP_G_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_CP_G_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_CP_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_CP_REG_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_CP_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_CP_G_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_CP_G_REG_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_CP_G_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_SPI_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_SPI_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_SPI_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_RB_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_RB_REG_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_RB_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_RB_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_RB_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_RB_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_MH_MH_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_MH_MH_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_MH_MH_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_MH_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_MH_REG_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_MH_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_MH_MMU_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_MH_MMU_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_MH_MMU_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_MH_TCROQ_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_MH_TCROQ_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_MH_TCROQ_SCLK_PM_OVERRIDE_SHIFT)
+
+#define RBBM_PM_OVERRIDE1_SET_RBBM_AHBCLK_PM_OVERRIDE(rbbm_pm_override1_reg, rbbm_ahbclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_RBBM_AHBCLK_PM_OVERRIDE_MASK) | (rbbm_ahbclk_pm_override << RBBM_PM_OVERRIDE1_RBBM_AHBCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_SC_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, sc_reg_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_SC_REG_SCLK_PM_OVERRIDE_MASK) | (sc_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_SC_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_SC_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, sc_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_SC_SCLK_PM_OVERRIDE_MASK) | (sc_sclk_pm_override << RBBM_PM_OVERRIDE1_SC_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_SP_TOP_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, sp_top_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_SP_TOP_SCLK_PM_OVERRIDE_MASK) | (sp_top_sclk_pm_override << RBBM_PM_OVERRIDE1_SP_TOP_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_SP_V0_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, sp_v0_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_SP_V0_SCLK_PM_OVERRIDE_MASK) | (sp_v0_sclk_pm_override << RBBM_PM_OVERRIDE1_SP_V0_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_SQ_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, sq_reg_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_SQ_REG_SCLK_PM_OVERRIDE_MASK) | (sq_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_SQ_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_SQ_REG_FIFOS_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, sq_reg_fifos_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_SQ_REG_FIFOS_SCLK_PM_OVERRIDE_MASK) | (sq_reg_fifos_sclk_pm_override << RBBM_PM_OVERRIDE1_SQ_REG_FIFOS_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_SQ_CONST_MEM_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, sq_const_mem_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_SQ_CONST_MEM_SCLK_PM_OVERRIDE_MASK) | (sq_const_mem_sclk_pm_override << RBBM_PM_OVERRIDE1_SQ_CONST_MEM_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_SQ_SQ_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, sq_sq_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_SQ_SQ_SCLK_PM_OVERRIDE_MASK) | (sq_sq_sclk_pm_override << RBBM_PM_OVERRIDE1_SQ_SQ_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_SX_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, sx_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_SX_SCLK_PM_OVERRIDE_MASK) | (sx_sclk_pm_override << RBBM_PM_OVERRIDE1_SX_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_SX_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, sx_reg_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_SX_REG_SCLK_PM_OVERRIDE_MASK) | (sx_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_SX_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_TCM_TCO_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, tcm_tco_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_TCM_TCO_SCLK_PM_OVERRIDE_MASK) | (tcm_tco_sclk_pm_override << RBBM_PM_OVERRIDE1_TCM_TCO_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_TCM_TCM_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, tcm_tcm_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_TCM_TCM_SCLK_PM_OVERRIDE_MASK) | (tcm_tcm_sclk_pm_override << RBBM_PM_OVERRIDE1_TCM_TCM_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_TCM_TCD_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, tcm_tcd_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_TCM_TCD_SCLK_PM_OVERRIDE_MASK) | (tcm_tcd_sclk_pm_override << RBBM_PM_OVERRIDE1_TCM_TCD_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_TCM_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, tcm_reg_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_TCM_REG_SCLK_PM_OVERRIDE_MASK) | (tcm_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_TCM_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_TPC_TPC_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, tpc_tpc_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_TPC_TPC_SCLK_PM_OVERRIDE_MASK) | (tpc_tpc_sclk_pm_override << RBBM_PM_OVERRIDE1_TPC_TPC_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_TPC_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, tpc_reg_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_TPC_REG_SCLK_PM_OVERRIDE_MASK) | (tpc_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_TPC_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_TCF_TCA_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, tcf_tca_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_TCF_TCA_SCLK_PM_OVERRIDE_MASK) | (tcf_tca_sclk_pm_override << RBBM_PM_OVERRIDE1_TCF_TCA_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_TCF_TCB_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, tcf_tcb_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_TCF_TCB_SCLK_PM_OVERRIDE_MASK) | (tcf_tcb_sclk_pm_override << RBBM_PM_OVERRIDE1_TCF_TCB_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_TCF_TCB_READ_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, tcf_tcb_read_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_TCF_TCB_READ_SCLK_PM_OVERRIDE_MASK) | (tcf_tcb_read_sclk_pm_override << RBBM_PM_OVERRIDE1_TCF_TCB_READ_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_TP_TP_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, tp_tp_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_TP_TP_SCLK_PM_OVERRIDE_MASK) | (tp_tp_sclk_pm_override << RBBM_PM_OVERRIDE1_TP_TP_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_TP_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, tp_reg_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_TP_REG_SCLK_PM_OVERRIDE_MASK) | (tp_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_TP_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_CP_G_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, cp_g_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_CP_G_SCLK_PM_OVERRIDE_MASK) | (cp_g_sclk_pm_override << RBBM_PM_OVERRIDE1_CP_G_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_CP_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, cp_reg_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_CP_REG_SCLK_PM_OVERRIDE_MASK) | (cp_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_CP_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_CP_G_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, cp_g_reg_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_CP_G_REG_SCLK_PM_OVERRIDE_MASK) | (cp_g_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_CP_G_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_SPI_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, spi_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_SPI_SCLK_PM_OVERRIDE_MASK) | (spi_sclk_pm_override << RBBM_PM_OVERRIDE1_SPI_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_RB_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, rb_reg_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_RB_REG_SCLK_PM_OVERRIDE_MASK) | (rb_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_RB_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_RB_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, rb_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_RB_SCLK_PM_OVERRIDE_MASK) | (rb_sclk_pm_override << RBBM_PM_OVERRIDE1_RB_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_MH_MH_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, mh_mh_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_MH_MH_SCLK_PM_OVERRIDE_MASK) | (mh_mh_sclk_pm_override << RBBM_PM_OVERRIDE1_MH_MH_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_MH_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, mh_reg_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_MH_REG_SCLK_PM_OVERRIDE_MASK) | (mh_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_MH_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_MH_MMU_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, mh_mmu_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_MH_MMU_SCLK_PM_OVERRIDE_MASK) | (mh_mmu_sclk_pm_override << RBBM_PM_OVERRIDE1_MH_MMU_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_MH_TCROQ_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, mh_tcroq_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_MH_TCROQ_SCLK_PM_OVERRIDE_MASK) | (mh_tcroq_sclk_pm_override << RBBM_PM_OVERRIDE1_MH_TCROQ_SCLK_PM_OVERRIDE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_pm_override1_t {
+ unsigned int rbbm_ahbclk_pm_override : RBBM_PM_OVERRIDE1_RBBM_AHBCLK_PM_OVERRIDE_SIZE;
+ unsigned int sc_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_SC_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sc_sclk_pm_override : RBBM_PM_OVERRIDE1_SC_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sp_top_sclk_pm_override : RBBM_PM_OVERRIDE1_SP_TOP_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sp_v0_sclk_pm_override : RBBM_PM_OVERRIDE1_SP_V0_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sq_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_SQ_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sq_reg_fifos_sclk_pm_override : RBBM_PM_OVERRIDE1_SQ_REG_FIFOS_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sq_const_mem_sclk_pm_override : RBBM_PM_OVERRIDE1_SQ_CONST_MEM_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sq_sq_sclk_pm_override : RBBM_PM_OVERRIDE1_SQ_SQ_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sx_sclk_pm_override : RBBM_PM_OVERRIDE1_SX_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sx_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_SX_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tcm_tco_sclk_pm_override : RBBM_PM_OVERRIDE1_TCM_TCO_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tcm_tcm_sclk_pm_override : RBBM_PM_OVERRIDE1_TCM_TCM_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tcm_tcd_sclk_pm_override : RBBM_PM_OVERRIDE1_TCM_TCD_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tcm_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_TCM_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tpc_tpc_sclk_pm_override : RBBM_PM_OVERRIDE1_TPC_TPC_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tpc_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_TPC_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tcf_tca_sclk_pm_override : RBBM_PM_OVERRIDE1_TCF_TCA_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tcf_tcb_sclk_pm_override : RBBM_PM_OVERRIDE1_TCF_TCB_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tcf_tcb_read_sclk_pm_override : RBBM_PM_OVERRIDE1_TCF_TCB_READ_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tp_tp_sclk_pm_override : RBBM_PM_OVERRIDE1_TP_TP_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tp_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_TP_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int cp_g_sclk_pm_override : RBBM_PM_OVERRIDE1_CP_G_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int cp_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_CP_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int cp_g_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_CP_G_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int spi_sclk_pm_override : RBBM_PM_OVERRIDE1_SPI_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int rb_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_RB_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int rb_sclk_pm_override : RBBM_PM_OVERRIDE1_RB_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int mh_mh_sclk_pm_override : RBBM_PM_OVERRIDE1_MH_MH_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int mh_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_MH_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int mh_mmu_sclk_pm_override : RBBM_PM_OVERRIDE1_MH_MMU_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int mh_tcroq_sclk_pm_override : RBBM_PM_OVERRIDE1_MH_TCROQ_SCLK_PM_OVERRIDE_SIZE;
+ } rbbm_pm_override1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_pm_override1_t {
+ unsigned int mh_tcroq_sclk_pm_override : RBBM_PM_OVERRIDE1_MH_TCROQ_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int mh_mmu_sclk_pm_override : RBBM_PM_OVERRIDE1_MH_MMU_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int mh_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_MH_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int mh_mh_sclk_pm_override : RBBM_PM_OVERRIDE1_MH_MH_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int rb_sclk_pm_override : RBBM_PM_OVERRIDE1_RB_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int rb_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_RB_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int spi_sclk_pm_override : RBBM_PM_OVERRIDE1_SPI_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int cp_g_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_CP_G_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int cp_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_CP_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int cp_g_sclk_pm_override : RBBM_PM_OVERRIDE1_CP_G_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tp_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_TP_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tp_tp_sclk_pm_override : RBBM_PM_OVERRIDE1_TP_TP_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tcf_tcb_read_sclk_pm_override : RBBM_PM_OVERRIDE1_TCF_TCB_READ_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tcf_tcb_sclk_pm_override : RBBM_PM_OVERRIDE1_TCF_TCB_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tcf_tca_sclk_pm_override : RBBM_PM_OVERRIDE1_TCF_TCA_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tpc_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_TPC_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tpc_tpc_sclk_pm_override : RBBM_PM_OVERRIDE1_TPC_TPC_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tcm_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_TCM_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tcm_tcd_sclk_pm_override : RBBM_PM_OVERRIDE1_TCM_TCD_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tcm_tcm_sclk_pm_override : RBBM_PM_OVERRIDE1_TCM_TCM_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tcm_tco_sclk_pm_override : RBBM_PM_OVERRIDE1_TCM_TCO_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sx_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_SX_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sx_sclk_pm_override : RBBM_PM_OVERRIDE1_SX_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sq_sq_sclk_pm_override : RBBM_PM_OVERRIDE1_SQ_SQ_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sq_const_mem_sclk_pm_override : RBBM_PM_OVERRIDE1_SQ_CONST_MEM_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sq_reg_fifos_sclk_pm_override : RBBM_PM_OVERRIDE1_SQ_REG_FIFOS_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sq_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_SQ_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sp_v0_sclk_pm_override : RBBM_PM_OVERRIDE1_SP_V0_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sp_top_sclk_pm_override : RBBM_PM_OVERRIDE1_SP_TOP_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sc_sclk_pm_override : RBBM_PM_OVERRIDE1_SC_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sc_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_SC_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int rbbm_ahbclk_pm_override : RBBM_PM_OVERRIDE1_RBBM_AHBCLK_PM_OVERRIDE_SIZE;
+ } rbbm_pm_override1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_pm_override1_t f;
+} rbbm_pm_override1_u;
+
+
+/*
+ * RBBM_PM_OVERRIDE2 struct
+ */
+
+#define RBBM_PM_OVERRIDE2_PA_REG_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE2_PA_PA_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE2_PA_AG_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE2_VGT_REG_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE2_VGT_FIFOS_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE2_VGT_VGT_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE2_DEBUG_PERF_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE2_PERM_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE2_GC_GA_GMEM0_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE2_GC_GA_GMEM1_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE2_GC_GA_GMEM2_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE2_GC_GA_GMEM3_PM_OVERRIDE_SIZE 1
+
+#define RBBM_PM_OVERRIDE2_PA_REG_SCLK_PM_OVERRIDE_SHIFT 0
+#define RBBM_PM_OVERRIDE2_PA_PA_SCLK_PM_OVERRIDE_SHIFT 1
+#define RBBM_PM_OVERRIDE2_PA_AG_SCLK_PM_OVERRIDE_SHIFT 2
+#define RBBM_PM_OVERRIDE2_VGT_REG_SCLK_PM_OVERRIDE_SHIFT 3
+#define RBBM_PM_OVERRIDE2_VGT_FIFOS_SCLK_PM_OVERRIDE_SHIFT 4
+#define RBBM_PM_OVERRIDE2_VGT_VGT_SCLK_PM_OVERRIDE_SHIFT 5
+#define RBBM_PM_OVERRIDE2_DEBUG_PERF_SCLK_PM_OVERRIDE_SHIFT 6
+#define RBBM_PM_OVERRIDE2_PERM_SCLK_PM_OVERRIDE_SHIFT 7
+#define RBBM_PM_OVERRIDE2_GC_GA_GMEM0_PM_OVERRIDE_SHIFT 8
+#define RBBM_PM_OVERRIDE2_GC_GA_GMEM1_PM_OVERRIDE_SHIFT 9
+#define RBBM_PM_OVERRIDE2_GC_GA_GMEM2_PM_OVERRIDE_SHIFT 10
+#define RBBM_PM_OVERRIDE2_GC_GA_GMEM3_PM_OVERRIDE_SHIFT 11
+
+#define RBBM_PM_OVERRIDE2_PA_REG_SCLK_PM_OVERRIDE_MASK 0x00000001
+#define RBBM_PM_OVERRIDE2_PA_PA_SCLK_PM_OVERRIDE_MASK 0x00000002
+#define RBBM_PM_OVERRIDE2_PA_AG_SCLK_PM_OVERRIDE_MASK 0x00000004
+#define RBBM_PM_OVERRIDE2_VGT_REG_SCLK_PM_OVERRIDE_MASK 0x00000008
+#define RBBM_PM_OVERRIDE2_VGT_FIFOS_SCLK_PM_OVERRIDE_MASK 0x00000010
+#define RBBM_PM_OVERRIDE2_VGT_VGT_SCLK_PM_OVERRIDE_MASK 0x00000020
+#define RBBM_PM_OVERRIDE2_DEBUG_PERF_SCLK_PM_OVERRIDE_MASK 0x00000040
+#define RBBM_PM_OVERRIDE2_PERM_SCLK_PM_OVERRIDE_MASK 0x00000080
+#define RBBM_PM_OVERRIDE2_GC_GA_GMEM0_PM_OVERRIDE_MASK 0x00000100
+#define RBBM_PM_OVERRIDE2_GC_GA_GMEM1_PM_OVERRIDE_MASK 0x00000200
+#define RBBM_PM_OVERRIDE2_GC_GA_GMEM2_PM_OVERRIDE_MASK 0x00000400
+#define RBBM_PM_OVERRIDE2_GC_GA_GMEM3_PM_OVERRIDE_MASK 0x00000800
+
+#define RBBM_PM_OVERRIDE2_MASK \
+ (RBBM_PM_OVERRIDE2_PA_REG_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE2_PA_PA_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE2_PA_AG_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE2_VGT_REG_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE2_VGT_FIFOS_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE2_VGT_VGT_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE2_DEBUG_PERF_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE2_PERM_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE2_GC_GA_GMEM0_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE2_GC_GA_GMEM1_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE2_GC_GA_GMEM2_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE2_GC_GA_GMEM3_PM_OVERRIDE_MASK)
+
+#define RBBM_PM_OVERRIDE2(pa_reg_sclk_pm_override, pa_pa_sclk_pm_override, pa_ag_sclk_pm_override, vgt_reg_sclk_pm_override, vgt_fifos_sclk_pm_override, vgt_vgt_sclk_pm_override, debug_perf_sclk_pm_override, perm_sclk_pm_override, gc_ga_gmem0_pm_override, gc_ga_gmem1_pm_override, gc_ga_gmem2_pm_override, gc_ga_gmem3_pm_override) \
+ ((pa_reg_sclk_pm_override << RBBM_PM_OVERRIDE2_PA_REG_SCLK_PM_OVERRIDE_SHIFT) | \
+ (pa_pa_sclk_pm_override << RBBM_PM_OVERRIDE2_PA_PA_SCLK_PM_OVERRIDE_SHIFT) | \
+ (pa_ag_sclk_pm_override << RBBM_PM_OVERRIDE2_PA_AG_SCLK_PM_OVERRIDE_SHIFT) | \
+ (vgt_reg_sclk_pm_override << RBBM_PM_OVERRIDE2_VGT_REG_SCLK_PM_OVERRIDE_SHIFT) | \
+ (vgt_fifos_sclk_pm_override << RBBM_PM_OVERRIDE2_VGT_FIFOS_SCLK_PM_OVERRIDE_SHIFT) | \
+ (vgt_vgt_sclk_pm_override << RBBM_PM_OVERRIDE2_VGT_VGT_SCLK_PM_OVERRIDE_SHIFT) | \
+ (debug_perf_sclk_pm_override << RBBM_PM_OVERRIDE2_DEBUG_PERF_SCLK_PM_OVERRIDE_SHIFT) | \
+ (perm_sclk_pm_override << RBBM_PM_OVERRIDE2_PERM_SCLK_PM_OVERRIDE_SHIFT) | \
+ (gc_ga_gmem0_pm_override << RBBM_PM_OVERRIDE2_GC_GA_GMEM0_PM_OVERRIDE_SHIFT) | \
+ (gc_ga_gmem1_pm_override << RBBM_PM_OVERRIDE2_GC_GA_GMEM1_PM_OVERRIDE_SHIFT) | \
+ (gc_ga_gmem2_pm_override << RBBM_PM_OVERRIDE2_GC_GA_GMEM2_PM_OVERRIDE_SHIFT) | \
+ (gc_ga_gmem3_pm_override << RBBM_PM_OVERRIDE2_GC_GA_GMEM3_PM_OVERRIDE_SHIFT))
+
+#define RBBM_PM_OVERRIDE2_GET_PA_REG_SCLK_PM_OVERRIDE(rbbm_pm_override2) \
+ ((rbbm_pm_override2 & RBBM_PM_OVERRIDE2_PA_REG_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE2_PA_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_GET_PA_PA_SCLK_PM_OVERRIDE(rbbm_pm_override2) \
+ ((rbbm_pm_override2 & RBBM_PM_OVERRIDE2_PA_PA_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE2_PA_PA_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_GET_PA_AG_SCLK_PM_OVERRIDE(rbbm_pm_override2) \
+ ((rbbm_pm_override2 & RBBM_PM_OVERRIDE2_PA_AG_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE2_PA_AG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_GET_VGT_REG_SCLK_PM_OVERRIDE(rbbm_pm_override2) \
+ ((rbbm_pm_override2 & RBBM_PM_OVERRIDE2_VGT_REG_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE2_VGT_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_GET_VGT_FIFOS_SCLK_PM_OVERRIDE(rbbm_pm_override2) \
+ ((rbbm_pm_override2 & RBBM_PM_OVERRIDE2_VGT_FIFOS_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE2_VGT_FIFOS_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_GET_VGT_VGT_SCLK_PM_OVERRIDE(rbbm_pm_override2) \
+ ((rbbm_pm_override2 & RBBM_PM_OVERRIDE2_VGT_VGT_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE2_VGT_VGT_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_GET_DEBUG_PERF_SCLK_PM_OVERRIDE(rbbm_pm_override2) \
+ ((rbbm_pm_override2 & RBBM_PM_OVERRIDE2_DEBUG_PERF_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE2_DEBUG_PERF_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_GET_PERM_SCLK_PM_OVERRIDE(rbbm_pm_override2) \
+ ((rbbm_pm_override2 & RBBM_PM_OVERRIDE2_PERM_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE2_PERM_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_GET_GC_GA_GMEM0_PM_OVERRIDE(rbbm_pm_override2) \
+ ((rbbm_pm_override2 & RBBM_PM_OVERRIDE2_GC_GA_GMEM0_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE2_GC_GA_GMEM0_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_GET_GC_GA_GMEM1_PM_OVERRIDE(rbbm_pm_override2) \
+ ((rbbm_pm_override2 & RBBM_PM_OVERRIDE2_GC_GA_GMEM1_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE2_GC_GA_GMEM1_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_GET_GC_GA_GMEM2_PM_OVERRIDE(rbbm_pm_override2) \
+ ((rbbm_pm_override2 & RBBM_PM_OVERRIDE2_GC_GA_GMEM2_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE2_GC_GA_GMEM2_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_GET_GC_GA_GMEM3_PM_OVERRIDE(rbbm_pm_override2) \
+ ((rbbm_pm_override2 & RBBM_PM_OVERRIDE2_GC_GA_GMEM3_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE2_GC_GA_GMEM3_PM_OVERRIDE_SHIFT)
+
+#define RBBM_PM_OVERRIDE2_SET_PA_REG_SCLK_PM_OVERRIDE(rbbm_pm_override2_reg, pa_reg_sclk_pm_override) \
+ rbbm_pm_override2_reg = (rbbm_pm_override2_reg & ~RBBM_PM_OVERRIDE2_PA_REG_SCLK_PM_OVERRIDE_MASK) | (pa_reg_sclk_pm_override << RBBM_PM_OVERRIDE2_PA_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_SET_PA_PA_SCLK_PM_OVERRIDE(rbbm_pm_override2_reg, pa_pa_sclk_pm_override) \
+ rbbm_pm_override2_reg = (rbbm_pm_override2_reg & ~RBBM_PM_OVERRIDE2_PA_PA_SCLK_PM_OVERRIDE_MASK) | (pa_pa_sclk_pm_override << RBBM_PM_OVERRIDE2_PA_PA_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_SET_PA_AG_SCLK_PM_OVERRIDE(rbbm_pm_override2_reg, pa_ag_sclk_pm_override) \
+ rbbm_pm_override2_reg = (rbbm_pm_override2_reg & ~RBBM_PM_OVERRIDE2_PA_AG_SCLK_PM_OVERRIDE_MASK) | (pa_ag_sclk_pm_override << RBBM_PM_OVERRIDE2_PA_AG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_SET_VGT_REG_SCLK_PM_OVERRIDE(rbbm_pm_override2_reg, vgt_reg_sclk_pm_override) \
+ rbbm_pm_override2_reg = (rbbm_pm_override2_reg & ~RBBM_PM_OVERRIDE2_VGT_REG_SCLK_PM_OVERRIDE_MASK) | (vgt_reg_sclk_pm_override << RBBM_PM_OVERRIDE2_VGT_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_SET_VGT_FIFOS_SCLK_PM_OVERRIDE(rbbm_pm_override2_reg, vgt_fifos_sclk_pm_override) \
+ rbbm_pm_override2_reg = (rbbm_pm_override2_reg & ~RBBM_PM_OVERRIDE2_VGT_FIFOS_SCLK_PM_OVERRIDE_MASK) | (vgt_fifos_sclk_pm_override << RBBM_PM_OVERRIDE2_VGT_FIFOS_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_SET_VGT_VGT_SCLK_PM_OVERRIDE(rbbm_pm_override2_reg, vgt_vgt_sclk_pm_override) \
+ rbbm_pm_override2_reg = (rbbm_pm_override2_reg & ~RBBM_PM_OVERRIDE2_VGT_VGT_SCLK_PM_OVERRIDE_MASK) | (vgt_vgt_sclk_pm_override << RBBM_PM_OVERRIDE2_VGT_VGT_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_SET_DEBUG_PERF_SCLK_PM_OVERRIDE(rbbm_pm_override2_reg, debug_perf_sclk_pm_override) \
+ rbbm_pm_override2_reg = (rbbm_pm_override2_reg & ~RBBM_PM_OVERRIDE2_DEBUG_PERF_SCLK_PM_OVERRIDE_MASK) | (debug_perf_sclk_pm_override << RBBM_PM_OVERRIDE2_DEBUG_PERF_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_SET_PERM_SCLK_PM_OVERRIDE(rbbm_pm_override2_reg, perm_sclk_pm_override) \
+ rbbm_pm_override2_reg = (rbbm_pm_override2_reg & ~RBBM_PM_OVERRIDE2_PERM_SCLK_PM_OVERRIDE_MASK) | (perm_sclk_pm_override << RBBM_PM_OVERRIDE2_PERM_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_SET_GC_GA_GMEM0_PM_OVERRIDE(rbbm_pm_override2_reg, gc_ga_gmem0_pm_override) \
+ rbbm_pm_override2_reg = (rbbm_pm_override2_reg & ~RBBM_PM_OVERRIDE2_GC_GA_GMEM0_PM_OVERRIDE_MASK) | (gc_ga_gmem0_pm_override << RBBM_PM_OVERRIDE2_GC_GA_GMEM0_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_SET_GC_GA_GMEM1_PM_OVERRIDE(rbbm_pm_override2_reg, gc_ga_gmem1_pm_override) \
+ rbbm_pm_override2_reg = (rbbm_pm_override2_reg & ~RBBM_PM_OVERRIDE2_GC_GA_GMEM1_PM_OVERRIDE_MASK) | (gc_ga_gmem1_pm_override << RBBM_PM_OVERRIDE2_GC_GA_GMEM1_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_SET_GC_GA_GMEM2_PM_OVERRIDE(rbbm_pm_override2_reg, gc_ga_gmem2_pm_override) \
+ rbbm_pm_override2_reg = (rbbm_pm_override2_reg & ~RBBM_PM_OVERRIDE2_GC_GA_GMEM2_PM_OVERRIDE_MASK) | (gc_ga_gmem2_pm_override << RBBM_PM_OVERRIDE2_GC_GA_GMEM2_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_SET_GC_GA_GMEM3_PM_OVERRIDE(rbbm_pm_override2_reg, gc_ga_gmem3_pm_override) \
+ rbbm_pm_override2_reg = (rbbm_pm_override2_reg & ~RBBM_PM_OVERRIDE2_GC_GA_GMEM3_PM_OVERRIDE_MASK) | (gc_ga_gmem3_pm_override << RBBM_PM_OVERRIDE2_GC_GA_GMEM3_PM_OVERRIDE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_pm_override2_t {
+ unsigned int pa_reg_sclk_pm_override : RBBM_PM_OVERRIDE2_PA_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int pa_pa_sclk_pm_override : RBBM_PM_OVERRIDE2_PA_PA_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int pa_ag_sclk_pm_override : RBBM_PM_OVERRIDE2_PA_AG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int vgt_reg_sclk_pm_override : RBBM_PM_OVERRIDE2_VGT_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int vgt_fifos_sclk_pm_override : RBBM_PM_OVERRIDE2_VGT_FIFOS_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int vgt_vgt_sclk_pm_override : RBBM_PM_OVERRIDE2_VGT_VGT_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int debug_perf_sclk_pm_override : RBBM_PM_OVERRIDE2_DEBUG_PERF_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int perm_sclk_pm_override : RBBM_PM_OVERRIDE2_PERM_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int gc_ga_gmem0_pm_override : RBBM_PM_OVERRIDE2_GC_GA_GMEM0_PM_OVERRIDE_SIZE;
+ unsigned int gc_ga_gmem1_pm_override : RBBM_PM_OVERRIDE2_GC_GA_GMEM1_PM_OVERRIDE_SIZE;
+ unsigned int gc_ga_gmem2_pm_override : RBBM_PM_OVERRIDE2_GC_GA_GMEM2_PM_OVERRIDE_SIZE;
+ unsigned int gc_ga_gmem3_pm_override : RBBM_PM_OVERRIDE2_GC_GA_GMEM3_PM_OVERRIDE_SIZE;
+ unsigned int : 20;
+ } rbbm_pm_override2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_pm_override2_t {
+ unsigned int : 20;
+ unsigned int gc_ga_gmem3_pm_override : RBBM_PM_OVERRIDE2_GC_GA_GMEM3_PM_OVERRIDE_SIZE;
+ unsigned int gc_ga_gmem2_pm_override : RBBM_PM_OVERRIDE2_GC_GA_GMEM2_PM_OVERRIDE_SIZE;
+ unsigned int gc_ga_gmem1_pm_override : RBBM_PM_OVERRIDE2_GC_GA_GMEM1_PM_OVERRIDE_SIZE;
+ unsigned int gc_ga_gmem0_pm_override : RBBM_PM_OVERRIDE2_GC_GA_GMEM0_PM_OVERRIDE_SIZE;
+ unsigned int perm_sclk_pm_override : RBBM_PM_OVERRIDE2_PERM_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int debug_perf_sclk_pm_override : RBBM_PM_OVERRIDE2_DEBUG_PERF_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int vgt_vgt_sclk_pm_override : RBBM_PM_OVERRIDE2_VGT_VGT_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int vgt_fifos_sclk_pm_override : RBBM_PM_OVERRIDE2_VGT_FIFOS_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int vgt_reg_sclk_pm_override : RBBM_PM_OVERRIDE2_VGT_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int pa_ag_sclk_pm_override : RBBM_PM_OVERRIDE2_PA_AG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int pa_pa_sclk_pm_override : RBBM_PM_OVERRIDE2_PA_PA_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int pa_reg_sclk_pm_override : RBBM_PM_OVERRIDE2_PA_REG_SCLK_PM_OVERRIDE_SIZE;
+ } rbbm_pm_override2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_pm_override2_t f;
+} rbbm_pm_override2_u;
+
+
+/*
+ * GC_SYS_IDLE struct
+ */
+
+#define GC_SYS_IDLE_GC_SYS_IDLE_DELAY_SIZE 16
+#define GC_SYS_IDLE_GC_SYS_IDLE_OVERRIDE_SIZE 1
+
+#define GC_SYS_IDLE_GC_SYS_IDLE_DELAY_SHIFT 0
+#define GC_SYS_IDLE_GC_SYS_IDLE_OVERRIDE_SHIFT 31
+
+#define GC_SYS_IDLE_GC_SYS_IDLE_DELAY_MASK 0x0000ffff
+#define GC_SYS_IDLE_GC_SYS_IDLE_OVERRIDE_MASK 0x80000000
+
+#define GC_SYS_IDLE_MASK \
+ (GC_SYS_IDLE_GC_SYS_IDLE_DELAY_MASK | \
+ GC_SYS_IDLE_GC_SYS_IDLE_OVERRIDE_MASK)
+
+#define GC_SYS_IDLE(gc_sys_idle_delay, gc_sys_idle_override) \
+ ((gc_sys_idle_delay << GC_SYS_IDLE_GC_SYS_IDLE_DELAY_SHIFT) | \
+ (gc_sys_idle_override << GC_SYS_IDLE_GC_SYS_IDLE_OVERRIDE_SHIFT))
+
+#define GC_SYS_IDLE_GET_GC_SYS_IDLE_DELAY(gc_sys_idle) \
+ ((gc_sys_idle & GC_SYS_IDLE_GC_SYS_IDLE_DELAY_MASK) >> GC_SYS_IDLE_GC_SYS_IDLE_DELAY_SHIFT)
+#define GC_SYS_IDLE_GET_GC_SYS_IDLE_OVERRIDE(gc_sys_idle) \
+ ((gc_sys_idle & GC_SYS_IDLE_GC_SYS_IDLE_OVERRIDE_MASK) >> GC_SYS_IDLE_GC_SYS_IDLE_OVERRIDE_SHIFT)
+
+#define GC_SYS_IDLE_SET_GC_SYS_IDLE_DELAY(gc_sys_idle_reg, gc_sys_idle_delay) \
+ gc_sys_idle_reg = (gc_sys_idle_reg & ~GC_SYS_IDLE_GC_SYS_IDLE_DELAY_MASK) | (gc_sys_idle_delay << GC_SYS_IDLE_GC_SYS_IDLE_DELAY_SHIFT)
+#define GC_SYS_IDLE_SET_GC_SYS_IDLE_OVERRIDE(gc_sys_idle_reg, gc_sys_idle_override) \
+ gc_sys_idle_reg = (gc_sys_idle_reg & ~GC_SYS_IDLE_GC_SYS_IDLE_OVERRIDE_MASK) | (gc_sys_idle_override << GC_SYS_IDLE_GC_SYS_IDLE_OVERRIDE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _gc_sys_idle_t {
+ unsigned int gc_sys_idle_delay : GC_SYS_IDLE_GC_SYS_IDLE_DELAY_SIZE;
+ unsigned int : 15;
+ unsigned int gc_sys_idle_override : GC_SYS_IDLE_GC_SYS_IDLE_OVERRIDE_SIZE;
+ } gc_sys_idle_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _gc_sys_idle_t {
+ unsigned int gc_sys_idle_override : GC_SYS_IDLE_GC_SYS_IDLE_OVERRIDE_SIZE;
+ unsigned int : 15;
+ unsigned int gc_sys_idle_delay : GC_SYS_IDLE_GC_SYS_IDLE_DELAY_SIZE;
+ } gc_sys_idle_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ gc_sys_idle_t f;
+} gc_sys_idle_u;
+
+
+/*
+ * NQWAIT_UNTIL struct
+ */
+
+#define NQWAIT_UNTIL_WAIT_GUI_IDLE_SIZE 1
+
+#define NQWAIT_UNTIL_WAIT_GUI_IDLE_SHIFT 0
+
+#define NQWAIT_UNTIL_WAIT_GUI_IDLE_MASK 0x00000001
+
+#define NQWAIT_UNTIL_MASK \
+ (NQWAIT_UNTIL_WAIT_GUI_IDLE_MASK)
+
+#define NQWAIT_UNTIL(wait_gui_idle) \
+ ((wait_gui_idle << NQWAIT_UNTIL_WAIT_GUI_IDLE_SHIFT))
+
+#define NQWAIT_UNTIL_GET_WAIT_GUI_IDLE(nqwait_until) \
+ ((nqwait_until & NQWAIT_UNTIL_WAIT_GUI_IDLE_MASK) >> NQWAIT_UNTIL_WAIT_GUI_IDLE_SHIFT)
+
+#define NQWAIT_UNTIL_SET_WAIT_GUI_IDLE(nqwait_until_reg, wait_gui_idle) \
+ nqwait_until_reg = (nqwait_until_reg & ~NQWAIT_UNTIL_WAIT_GUI_IDLE_MASK) | (wait_gui_idle << NQWAIT_UNTIL_WAIT_GUI_IDLE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _nqwait_until_t {
+ unsigned int wait_gui_idle : NQWAIT_UNTIL_WAIT_GUI_IDLE_SIZE;
+ unsigned int : 31;
+ } nqwait_until_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _nqwait_until_t {
+ unsigned int : 31;
+ unsigned int wait_gui_idle : NQWAIT_UNTIL_WAIT_GUI_IDLE_SIZE;
+ } nqwait_until_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ nqwait_until_t f;
+} nqwait_until_u;
+
+
+/*
+ * RBBM_DEBUG struct
+ */
+
+#define RBBM_DEBUG_IGNORE_RTR_SIZE 1
+#define RBBM_DEBUG_IGNORE_CP_SCHED_WU_SIZE 1
+#define RBBM_DEBUG_IGNORE_CP_SCHED_ISYNC_SIZE 1
+#define RBBM_DEBUG_IGNORE_CP_SCHED_NQ_HI_SIZE 1
+#define RBBM_DEBUG_HYSTERESIS_NRT_GUI_ACTIVE_SIZE 4
+#define RBBM_DEBUG_IGNORE_RTR_FOR_HI_SIZE 1
+#define RBBM_DEBUG_IGNORE_CP_RBBM_NRTRTR_FOR_HI_SIZE 1
+#define RBBM_DEBUG_IGNORE_VGT_RBBM_NRTRTR_FOR_HI_SIZE 1
+#define RBBM_DEBUG_IGNORE_SQ_RBBM_NRTRTR_FOR_HI_SIZE 1
+#define RBBM_DEBUG_CP_RBBM_NRTRTR_SIZE 1
+#define RBBM_DEBUG_VGT_RBBM_NRTRTR_SIZE 1
+#define RBBM_DEBUG_SQ_RBBM_NRTRTR_SIZE 1
+#define RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_FOR_HI_SIZE 1
+#define RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_SIZE 1
+#define RBBM_DEBUG_IGNORE_SX_RBBM_BUSY_SIZE 1
+
+#define RBBM_DEBUG_IGNORE_RTR_SHIFT 1
+#define RBBM_DEBUG_IGNORE_CP_SCHED_WU_SHIFT 2
+#define RBBM_DEBUG_IGNORE_CP_SCHED_ISYNC_SHIFT 3
+#define RBBM_DEBUG_IGNORE_CP_SCHED_NQ_HI_SHIFT 4
+#define RBBM_DEBUG_HYSTERESIS_NRT_GUI_ACTIVE_SHIFT 8
+#define RBBM_DEBUG_IGNORE_RTR_FOR_HI_SHIFT 16
+#define RBBM_DEBUG_IGNORE_CP_RBBM_NRTRTR_FOR_HI_SHIFT 17
+#define RBBM_DEBUG_IGNORE_VGT_RBBM_NRTRTR_FOR_HI_SHIFT 18
+#define RBBM_DEBUG_IGNORE_SQ_RBBM_NRTRTR_FOR_HI_SHIFT 19
+#define RBBM_DEBUG_CP_RBBM_NRTRTR_SHIFT 20
+#define RBBM_DEBUG_VGT_RBBM_NRTRTR_SHIFT 21
+#define RBBM_DEBUG_SQ_RBBM_NRTRTR_SHIFT 22
+#define RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_FOR_HI_SHIFT 23
+#define RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_SHIFT 24
+#define RBBM_DEBUG_IGNORE_SX_RBBM_BUSY_SHIFT 31
+
+#define RBBM_DEBUG_IGNORE_RTR_MASK 0x00000002
+#define RBBM_DEBUG_IGNORE_CP_SCHED_WU_MASK 0x00000004
+#define RBBM_DEBUG_IGNORE_CP_SCHED_ISYNC_MASK 0x00000008
+#define RBBM_DEBUG_IGNORE_CP_SCHED_NQ_HI_MASK 0x00000010
+#define RBBM_DEBUG_HYSTERESIS_NRT_GUI_ACTIVE_MASK 0x00000f00
+#define RBBM_DEBUG_IGNORE_RTR_FOR_HI_MASK 0x00010000
+#define RBBM_DEBUG_IGNORE_CP_RBBM_NRTRTR_FOR_HI_MASK 0x00020000
+#define RBBM_DEBUG_IGNORE_VGT_RBBM_NRTRTR_FOR_HI_MASK 0x00040000
+#define RBBM_DEBUG_IGNORE_SQ_RBBM_NRTRTR_FOR_HI_MASK 0x00080000
+#define RBBM_DEBUG_CP_RBBM_NRTRTR_MASK 0x00100000
+#define RBBM_DEBUG_VGT_RBBM_NRTRTR_MASK 0x00200000
+#define RBBM_DEBUG_SQ_RBBM_NRTRTR_MASK 0x00400000
+#define RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_FOR_HI_MASK 0x00800000
+#define RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_MASK 0x01000000
+#define RBBM_DEBUG_IGNORE_SX_RBBM_BUSY_MASK 0x80000000
+
+#define RBBM_DEBUG_MASK \
+ (RBBM_DEBUG_IGNORE_RTR_MASK | \
+ RBBM_DEBUG_IGNORE_CP_SCHED_WU_MASK | \
+ RBBM_DEBUG_IGNORE_CP_SCHED_ISYNC_MASK | \
+ RBBM_DEBUG_IGNORE_CP_SCHED_NQ_HI_MASK | \
+ RBBM_DEBUG_HYSTERESIS_NRT_GUI_ACTIVE_MASK | \
+ RBBM_DEBUG_IGNORE_RTR_FOR_HI_MASK | \
+ RBBM_DEBUG_IGNORE_CP_RBBM_NRTRTR_FOR_HI_MASK | \
+ RBBM_DEBUG_IGNORE_VGT_RBBM_NRTRTR_FOR_HI_MASK | \
+ RBBM_DEBUG_IGNORE_SQ_RBBM_NRTRTR_FOR_HI_MASK | \
+ RBBM_DEBUG_CP_RBBM_NRTRTR_MASK | \
+ RBBM_DEBUG_VGT_RBBM_NRTRTR_MASK | \
+ RBBM_DEBUG_SQ_RBBM_NRTRTR_MASK | \
+ RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_FOR_HI_MASK | \
+ RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_MASK | \
+ RBBM_DEBUG_IGNORE_SX_RBBM_BUSY_MASK)
+
+#define RBBM_DEBUG(ignore_rtr, ignore_cp_sched_wu, ignore_cp_sched_isync, ignore_cp_sched_nq_hi, hysteresis_nrt_gui_active, ignore_rtr_for_hi, ignore_cp_rbbm_nrtrtr_for_hi, ignore_vgt_rbbm_nrtrtr_for_hi, ignore_sq_rbbm_nrtrtr_for_hi, cp_rbbm_nrtrtr, vgt_rbbm_nrtrtr, sq_rbbm_nrtrtr, clients_for_nrt_rtr_for_hi, clients_for_nrt_rtr, ignore_sx_rbbm_busy) \
+ ((ignore_rtr << RBBM_DEBUG_IGNORE_RTR_SHIFT) | \
+ (ignore_cp_sched_wu << RBBM_DEBUG_IGNORE_CP_SCHED_WU_SHIFT) | \
+ (ignore_cp_sched_isync << RBBM_DEBUG_IGNORE_CP_SCHED_ISYNC_SHIFT) | \
+ (ignore_cp_sched_nq_hi << RBBM_DEBUG_IGNORE_CP_SCHED_NQ_HI_SHIFT) | \
+ (hysteresis_nrt_gui_active << RBBM_DEBUG_HYSTERESIS_NRT_GUI_ACTIVE_SHIFT) | \
+ (ignore_rtr_for_hi << RBBM_DEBUG_IGNORE_RTR_FOR_HI_SHIFT) | \
+ (ignore_cp_rbbm_nrtrtr_for_hi << RBBM_DEBUG_IGNORE_CP_RBBM_NRTRTR_FOR_HI_SHIFT) | \
+ (ignore_vgt_rbbm_nrtrtr_for_hi << RBBM_DEBUG_IGNORE_VGT_RBBM_NRTRTR_FOR_HI_SHIFT) | \
+ (ignore_sq_rbbm_nrtrtr_for_hi << RBBM_DEBUG_IGNORE_SQ_RBBM_NRTRTR_FOR_HI_SHIFT) | \
+ (cp_rbbm_nrtrtr << RBBM_DEBUG_CP_RBBM_NRTRTR_SHIFT) | \
+ (vgt_rbbm_nrtrtr << RBBM_DEBUG_VGT_RBBM_NRTRTR_SHIFT) | \
+ (sq_rbbm_nrtrtr << RBBM_DEBUG_SQ_RBBM_NRTRTR_SHIFT) | \
+ (clients_for_nrt_rtr_for_hi << RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_FOR_HI_SHIFT) | \
+ (clients_for_nrt_rtr << RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_SHIFT) | \
+ (ignore_sx_rbbm_busy << RBBM_DEBUG_IGNORE_SX_RBBM_BUSY_SHIFT))
+
+#define RBBM_DEBUG_GET_IGNORE_RTR(rbbm_debug) \
+ ((rbbm_debug & RBBM_DEBUG_IGNORE_RTR_MASK) >> RBBM_DEBUG_IGNORE_RTR_SHIFT)
+#define RBBM_DEBUG_GET_IGNORE_CP_SCHED_WU(rbbm_debug) \
+ ((rbbm_debug & RBBM_DEBUG_IGNORE_CP_SCHED_WU_MASK) >> RBBM_DEBUG_IGNORE_CP_SCHED_WU_SHIFT)
+#define RBBM_DEBUG_GET_IGNORE_CP_SCHED_ISYNC(rbbm_debug) \
+ ((rbbm_debug & RBBM_DEBUG_IGNORE_CP_SCHED_ISYNC_MASK) >> RBBM_DEBUG_IGNORE_CP_SCHED_ISYNC_SHIFT)
+#define RBBM_DEBUG_GET_IGNORE_CP_SCHED_NQ_HI(rbbm_debug) \
+ ((rbbm_debug & RBBM_DEBUG_IGNORE_CP_SCHED_NQ_HI_MASK) >> RBBM_DEBUG_IGNORE_CP_SCHED_NQ_HI_SHIFT)
+#define RBBM_DEBUG_GET_HYSTERESIS_NRT_GUI_ACTIVE(rbbm_debug) \
+ ((rbbm_debug & RBBM_DEBUG_HYSTERESIS_NRT_GUI_ACTIVE_MASK) >> RBBM_DEBUG_HYSTERESIS_NRT_GUI_ACTIVE_SHIFT)
+#define RBBM_DEBUG_GET_IGNORE_RTR_FOR_HI(rbbm_debug) \
+ ((rbbm_debug & RBBM_DEBUG_IGNORE_RTR_FOR_HI_MASK) >> RBBM_DEBUG_IGNORE_RTR_FOR_HI_SHIFT)
+#define RBBM_DEBUG_GET_IGNORE_CP_RBBM_NRTRTR_FOR_HI(rbbm_debug) \
+ ((rbbm_debug & RBBM_DEBUG_IGNORE_CP_RBBM_NRTRTR_FOR_HI_MASK) >> RBBM_DEBUG_IGNORE_CP_RBBM_NRTRTR_FOR_HI_SHIFT)
+#define RBBM_DEBUG_GET_IGNORE_VGT_RBBM_NRTRTR_FOR_HI(rbbm_debug) \
+ ((rbbm_debug & RBBM_DEBUG_IGNORE_VGT_RBBM_NRTRTR_FOR_HI_MASK) >> RBBM_DEBUG_IGNORE_VGT_RBBM_NRTRTR_FOR_HI_SHIFT)
+#define RBBM_DEBUG_GET_IGNORE_SQ_RBBM_NRTRTR_FOR_HI(rbbm_debug) \
+ ((rbbm_debug & RBBM_DEBUG_IGNORE_SQ_RBBM_NRTRTR_FOR_HI_MASK) >> RBBM_DEBUG_IGNORE_SQ_RBBM_NRTRTR_FOR_HI_SHIFT)
+#define RBBM_DEBUG_GET_CP_RBBM_NRTRTR(rbbm_debug) \
+ ((rbbm_debug & RBBM_DEBUG_CP_RBBM_NRTRTR_MASK) >> RBBM_DEBUG_CP_RBBM_NRTRTR_SHIFT)
+#define RBBM_DEBUG_GET_VGT_RBBM_NRTRTR(rbbm_debug) \
+ ((rbbm_debug & RBBM_DEBUG_VGT_RBBM_NRTRTR_MASK) >> RBBM_DEBUG_VGT_RBBM_NRTRTR_SHIFT)
+#define RBBM_DEBUG_GET_SQ_RBBM_NRTRTR(rbbm_debug) \
+ ((rbbm_debug & RBBM_DEBUG_SQ_RBBM_NRTRTR_MASK) >> RBBM_DEBUG_SQ_RBBM_NRTRTR_SHIFT)
+#define RBBM_DEBUG_GET_CLIENTS_FOR_NRT_RTR_FOR_HI(rbbm_debug) \
+ ((rbbm_debug & RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_FOR_HI_MASK) >> RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_FOR_HI_SHIFT)
+#define RBBM_DEBUG_GET_CLIENTS_FOR_NRT_RTR(rbbm_debug) \
+ ((rbbm_debug & RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_MASK) >> RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_SHIFT)
+#define RBBM_DEBUG_GET_IGNORE_SX_RBBM_BUSY(rbbm_debug) \
+ ((rbbm_debug & RBBM_DEBUG_IGNORE_SX_RBBM_BUSY_MASK) >> RBBM_DEBUG_IGNORE_SX_RBBM_BUSY_SHIFT)
+
+#define RBBM_DEBUG_SET_IGNORE_RTR(rbbm_debug_reg, ignore_rtr) \
+ rbbm_debug_reg = (rbbm_debug_reg & ~RBBM_DEBUG_IGNORE_RTR_MASK) | (ignore_rtr << RBBM_DEBUG_IGNORE_RTR_SHIFT)
+#define RBBM_DEBUG_SET_IGNORE_CP_SCHED_WU(rbbm_debug_reg, ignore_cp_sched_wu) \
+ rbbm_debug_reg = (rbbm_debug_reg & ~RBBM_DEBUG_IGNORE_CP_SCHED_WU_MASK) | (ignore_cp_sched_wu << RBBM_DEBUG_IGNORE_CP_SCHED_WU_SHIFT)
+#define RBBM_DEBUG_SET_IGNORE_CP_SCHED_ISYNC(rbbm_debug_reg, ignore_cp_sched_isync) \
+ rbbm_debug_reg = (rbbm_debug_reg & ~RBBM_DEBUG_IGNORE_CP_SCHED_ISYNC_MASK) | (ignore_cp_sched_isync << RBBM_DEBUG_IGNORE_CP_SCHED_ISYNC_SHIFT)
+#define RBBM_DEBUG_SET_IGNORE_CP_SCHED_NQ_HI(rbbm_debug_reg, ignore_cp_sched_nq_hi) \
+ rbbm_debug_reg = (rbbm_debug_reg & ~RBBM_DEBUG_IGNORE_CP_SCHED_NQ_HI_MASK) | (ignore_cp_sched_nq_hi << RBBM_DEBUG_IGNORE_CP_SCHED_NQ_HI_SHIFT)
+#define RBBM_DEBUG_SET_HYSTERESIS_NRT_GUI_ACTIVE(rbbm_debug_reg, hysteresis_nrt_gui_active) \
+ rbbm_debug_reg = (rbbm_debug_reg & ~RBBM_DEBUG_HYSTERESIS_NRT_GUI_ACTIVE_MASK) | (hysteresis_nrt_gui_active << RBBM_DEBUG_HYSTERESIS_NRT_GUI_ACTIVE_SHIFT)
+#define RBBM_DEBUG_SET_IGNORE_RTR_FOR_HI(rbbm_debug_reg, ignore_rtr_for_hi) \
+ rbbm_debug_reg = (rbbm_debug_reg & ~RBBM_DEBUG_IGNORE_RTR_FOR_HI_MASK) | (ignore_rtr_for_hi << RBBM_DEBUG_IGNORE_RTR_FOR_HI_SHIFT)
+#define RBBM_DEBUG_SET_IGNORE_CP_RBBM_NRTRTR_FOR_HI(rbbm_debug_reg, ignore_cp_rbbm_nrtrtr_for_hi) \
+ rbbm_debug_reg = (rbbm_debug_reg & ~RBBM_DEBUG_IGNORE_CP_RBBM_NRTRTR_FOR_HI_MASK) | (ignore_cp_rbbm_nrtrtr_for_hi << RBBM_DEBUG_IGNORE_CP_RBBM_NRTRTR_FOR_HI_SHIFT)
+#define RBBM_DEBUG_SET_IGNORE_VGT_RBBM_NRTRTR_FOR_HI(rbbm_debug_reg, ignore_vgt_rbbm_nrtrtr_for_hi) \
+ rbbm_debug_reg = (rbbm_debug_reg & ~RBBM_DEBUG_IGNORE_VGT_RBBM_NRTRTR_FOR_HI_MASK) | (ignore_vgt_rbbm_nrtrtr_for_hi << RBBM_DEBUG_IGNORE_VGT_RBBM_NRTRTR_FOR_HI_SHIFT)
+#define RBBM_DEBUG_SET_IGNORE_SQ_RBBM_NRTRTR_FOR_HI(rbbm_debug_reg, ignore_sq_rbbm_nrtrtr_for_hi) \
+ rbbm_debug_reg = (rbbm_debug_reg & ~RBBM_DEBUG_IGNORE_SQ_RBBM_NRTRTR_FOR_HI_MASK) | (ignore_sq_rbbm_nrtrtr_for_hi << RBBM_DEBUG_IGNORE_SQ_RBBM_NRTRTR_FOR_HI_SHIFT)
+#define RBBM_DEBUG_SET_CP_RBBM_NRTRTR(rbbm_debug_reg, cp_rbbm_nrtrtr) \
+ rbbm_debug_reg = (rbbm_debug_reg & ~RBBM_DEBUG_CP_RBBM_NRTRTR_MASK) | (cp_rbbm_nrtrtr << RBBM_DEBUG_CP_RBBM_NRTRTR_SHIFT)
+#define RBBM_DEBUG_SET_VGT_RBBM_NRTRTR(rbbm_debug_reg, vgt_rbbm_nrtrtr) \
+ rbbm_debug_reg = (rbbm_debug_reg & ~RBBM_DEBUG_VGT_RBBM_NRTRTR_MASK) | (vgt_rbbm_nrtrtr << RBBM_DEBUG_VGT_RBBM_NRTRTR_SHIFT)
+#define RBBM_DEBUG_SET_SQ_RBBM_NRTRTR(rbbm_debug_reg, sq_rbbm_nrtrtr) \
+ rbbm_debug_reg = (rbbm_debug_reg & ~RBBM_DEBUG_SQ_RBBM_NRTRTR_MASK) | (sq_rbbm_nrtrtr << RBBM_DEBUG_SQ_RBBM_NRTRTR_SHIFT)
+#define RBBM_DEBUG_SET_CLIENTS_FOR_NRT_RTR_FOR_HI(rbbm_debug_reg, clients_for_nrt_rtr_for_hi) \
+ rbbm_debug_reg = (rbbm_debug_reg & ~RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_FOR_HI_MASK) | (clients_for_nrt_rtr_for_hi << RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_FOR_HI_SHIFT)
+#define RBBM_DEBUG_SET_CLIENTS_FOR_NRT_RTR(rbbm_debug_reg, clients_for_nrt_rtr) \
+ rbbm_debug_reg = (rbbm_debug_reg & ~RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_MASK) | (clients_for_nrt_rtr << RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_SHIFT)
+#define RBBM_DEBUG_SET_IGNORE_SX_RBBM_BUSY(rbbm_debug_reg, ignore_sx_rbbm_busy) \
+ rbbm_debug_reg = (rbbm_debug_reg & ~RBBM_DEBUG_IGNORE_SX_RBBM_BUSY_MASK) | (ignore_sx_rbbm_busy << RBBM_DEBUG_IGNORE_SX_RBBM_BUSY_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_debug_t {
+ unsigned int : 1;
+ unsigned int ignore_rtr : RBBM_DEBUG_IGNORE_RTR_SIZE;
+ unsigned int ignore_cp_sched_wu : RBBM_DEBUG_IGNORE_CP_SCHED_WU_SIZE;
+ unsigned int ignore_cp_sched_isync : RBBM_DEBUG_IGNORE_CP_SCHED_ISYNC_SIZE;
+ unsigned int ignore_cp_sched_nq_hi : RBBM_DEBUG_IGNORE_CP_SCHED_NQ_HI_SIZE;
+ unsigned int : 3;
+ unsigned int hysteresis_nrt_gui_active : RBBM_DEBUG_HYSTERESIS_NRT_GUI_ACTIVE_SIZE;
+ unsigned int : 4;
+ unsigned int ignore_rtr_for_hi : RBBM_DEBUG_IGNORE_RTR_FOR_HI_SIZE;
+ unsigned int ignore_cp_rbbm_nrtrtr_for_hi : RBBM_DEBUG_IGNORE_CP_RBBM_NRTRTR_FOR_HI_SIZE;
+ unsigned int ignore_vgt_rbbm_nrtrtr_for_hi : RBBM_DEBUG_IGNORE_VGT_RBBM_NRTRTR_FOR_HI_SIZE;
+ unsigned int ignore_sq_rbbm_nrtrtr_for_hi : RBBM_DEBUG_IGNORE_SQ_RBBM_NRTRTR_FOR_HI_SIZE;
+ unsigned int cp_rbbm_nrtrtr : RBBM_DEBUG_CP_RBBM_NRTRTR_SIZE;
+ unsigned int vgt_rbbm_nrtrtr : RBBM_DEBUG_VGT_RBBM_NRTRTR_SIZE;
+ unsigned int sq_rbbm_nrtrtr : RBBM_DEBUG_SQ_RBBM_NRTRTR_SIZE;
+ unsigned int clients_for_nrt_rtr_for_hi : RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_FOR_HI_SIZE;
+ unsigned int clients_for_nrt_rtr : RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_SIZE;
+ unsigned int : 6;
+ unsigned int ignore_sx_rbbm_busy : RBBM_DEBUG_IGNORE_SX_RBBM_BUSY_SIZE;
+ } rbbm_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_debug_t {
+ unsigned int ignore_sx_rbbm_busy : RBBM_DEBUG_IGNORE_SX_RBBM_BUSY_SIZE;
+ unsigned int : 6;
+ unsigned int clients_for_nrt_rtr : RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_SIZE;
+ unsigned int clients_for_nrt_rtr_for_hi : RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_FOR_HI_SIZE;
+ unsigned int sq_rbbm_nrtrtr : RBBM_DEBUG_SQ_RBBM_NRTRTR_SIZE;
+ unsigned int vgt_rbbm_nrtrtr : RBBM_DEBUG_VGT_RBBM_NRTRTR_SIZE;
+ unsigned int cp_rbbm_nrtrtr : RBBM_DEBUG_CP_RBBM_NRTRTR_SIZE;
+ unsigned int ignore_sq_rbbm_nrtrtr_for_hi : RBBM_DEBUG_IGNORE_SQ_RBBM_NRTRTR_FOR_HI_SIZE;
+ unsigned int ignore_vgt_rbbm_nrtrtr_for_hi : RBBM_DEBUG_IGNORE_VGT_RBBM_NRTRTR_FOR_HI_SIZE;
+ unsigned int ignore_cp_rbbm_nrtrtr_for_hi : RBBM_DEBUG_IGNORE_CP_RBBM_NRTRTR_FOR_HI_SIZE;
+ unsigned int ignore_rtr_for_hi : RBBM_DEBUG_IGNORE_RTR_FOR_HI_SIZE;
+ unsigned int : 4;
+ unsigned int hysteresis_nrt_gui_active : RBBM_DEBUG_HYSTERESIS_NRT_GUI_ACTIVE_SIZE;
+ unsigned int : 3;
+ unsigned int ignore_cp_sched_nq_hi : RBBM_DEBUG_IGNORE_CP_SCHED_NQ_HI_SIZE;
+ unsigned int ignore_cp_sched_isync : RBBM_DEBUG_IGNORE_CP_SCHED_ISYNC_SIZE;
+ unsigned int ignore_cp_sched_wu : RBBM_DEBUG_IGNORE_CP_SCHED_WU_SIZE;
+ unsigned int ignore_rtr : RBBM_DEBUG_IGNORE_RTR_SIZE;
+ unsigned int : 1;
+ } rbbm_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_debug_t f;
+} rbbm_debug_u;
+
+
+/*
+ * RBBM_READ_ERROR struct
+ */
+
+#define RBBM_READ_ERROR_READ_ADDRESS_SIZE 15
+#define RBBM_READ_ERROR_READ_REQUESTER_SIZE 1
+#define RBBM_READ_ERROR_READ_ERROR_SIZE 1
+
+#define RBBM_READ_ERROR_READ_ADDRESS_SHIFT 2
+#define RBBM_READ_ERROR_READ_REQUESTER_SHIFT 30
+#define RBBM_READ_ERROR_READ_ERROR_SHIFT 31
+
+#define RBBM_READ_ERROR_READ_ADDRESS_MASK 0x0001fffc
+#define RBBM_READ_ERROR_READ_REQUESTER_MASK 0x40000000
+#define RBBM_READ_ERROR_READ_ERROR_MASK 0x80000000
+
+#define RBBM_READ_ERROR_MASK \
+ (RBBM_READ_ERROR_READ_ADDRESS_MASK | \
+ RBBM_READ_ERROR_READ_REQUESTER_MASK | \
+ RBBM_READ_ERROR_READ_ERROR_MASK)
+
+#define RBBM_READ_ERROR(read_address, read_requester, read_error) \
+ ((read_address << RBBM_READ_ERROR_READ_ADDRESS_SHIFT) | \
+ (read_requester << RBBM_READ_ERROR_READ_REQUESTER_SHIFT) | \
+ (read_error << RBBM_READ_ERROR_READ_ERROR_SHIFT))
+
+#define RBBM_READ_ERROR_GET_READ_ADDRESS(rbbm_read_error) \
+ ((rbbm_read_error & RBBM_READ_ERROR_READ_ADDRESS_MASK) >> RBBM_READ_ERROR_READ_ADDRESS_SHIFT)
+#define RBBM_READ_ERROR_GET_READ_REQUESTER(rbbm_read_error) \
+ ((rbbm_read_error & RBBM_READ_ERROR_READ_REQUESTER_MASK) >> RBBM_READ_ERROR_READ_REQUESTER_SHIFT)
+#define RBBM_READ_ERROR_GET_READ_ERROR(rbbm_read_error) \
+ ((rbbm_read_error & RBBM_READ_ERROR_READ_ERROR_MASK) >> RBBM_READ_ERROR_READ_ERROR_SHIFT)
+
+#define RBBM_READ_ERROR_SET_READ_ADDRESS(rbbm_read_error_reg, read_address) \
+ rbbm_read_error_reg = (rbbm_read_error_reg & ~RBBM_READ_ERROR_READ_ADDRESS_MASK) | (read_address << RBBM_READ_ERROR_READ_ADDRESS_SHIFT)
+#define RBBM_READ_ERROR_SET_READ_REQUESTER(rbbm_read_error_reg, read_requester) \
+ rbbm_read_error_reg = (rbbm_read_error_reg & ~RBBM_READ_ERROR_READ_REQUESTER_MASK) | (read_requester << RBBM_READ_ERROR_READ_REQUESTER_SHIFT)
+#define RBBM_READ_ERROR_SET_READ_ERROR(rbbm_read_error_reg, read_error) \
+ rbbm_read_error_reg = (rbbm_read_error_reg & ~RBBM_READ_ERROR_READ_ERROR_MASK) | (read_error << RBBM_READ_ERROR_READ_ERROR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_read_error_t {
+ unsigned int : 2;
+ unsigned int read_address : RBBM_READ_ERROR_READ_ADDRESS_SIZE;
+ unsigned int : 13;
+ unsigned int read_requester : RBBM_READ_ERROR_READ_REQUESTER_SIZE;
+ unsigned int read_error : RBBM_READ_ERROR_READ_ERROR_SIZE;
+ } rbbm_read_error_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_read_error_t {
+ unsigned int read_error : RBBM_READ_ERROR_READ_ERROR_SIZE;
+ unsigned int read_requester : RBBM_READ_ERROR_READ_REQUESTER_SIZE;
+ unsigned int : 13;
+ unsigned int read_address : RBBM_READ_ERROR_READ_ADDRESS_SIZE;
+ unsigned int : 2;
+ } rbbm_read_error_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_read_error_t f;
+} rbbm_read_error_u;
+
+
+/*
+ * RBBM_WAIT_IDLE_CLOCKS struct
+ */
+
+#define RBBM_WAIT_IDLE_CLOCKS_WAIT_IDLE_CLOCKS_NRT_SIZE 8
+
+#define RBBM_WAIT_IDLE_CLOCKS_WAIT_IDLE_CLOCKS_NRT_SHIFT 0
+
+#define RBBM_WAIT_IDLE_CLOCKS_WAIT_IDLE_CLOCKS_NRT_MASK 0x000000ff
+
+#define RBBM_WAIT_IDLE_CLOCKS_MASK \
+ (RBBM_WAIT_IDLE_CLOCKS_WAIT_IDLE_CLOCKS_NRT_MASK)
+
+#define RBBM_WAIT_IDLE_CLOCKS(wait_idle_clocks_nrt) \
+ ((wait_idle_clocks_nrt << RBBM_WAIT_IDLE_CLOCKS_WAIT_IDLE_CLOCKS_NRT_SHIFT))
+
+#define RBBM_WAIT_IDLE_CLOCKS_GET_WAIT_IDLE_CLOCKS_NRT(rbbm_wait_idle_clocks) \
+ ((rbbm_wait_idle_clocks & RBBM_WAIT_IDLE_CLOCKS_WAIT_IDLE_CLOCKS_NRT_MASK) >> RBBM_WAIT_IDLE_CLOCKS_WAIT_IDLE_CLOCKS_NRT_SHIFT)
+
+#define RBBM_WAIT_IDLE_CLOCKS_SET_WAIT_IDLE_CLOCKS_NRT(rbbm_wait_idle_clocks_reg, wait_idle_clocks_nrt) \
+ rbbm_wait_idle_clocks_reg = (rbbm_wait_idle_clocks_reg & ~RBBM_WAIT_IDLE_CLOCKS_WAIT_IDLE_CLOCKS_NRT_MASK) | (wait_idle_clocks_nrt << RBBM_WAIT_IDLE_CLOCKS_WAIT_IDLE_CLOCKS_NRT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_wait_idle_clocks_t {
+ unsigned int wait_idle_clocks_nrt : RBBM_WAIT_IDLE_CLOCKS_WAIT_IDLE_CLOCKS_NRT_SIZE;
+ unsigned int : 24;
+ } rbbm_wait_idle_clocks_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_wait_idle_clocks_t {
+ unsigned int : 24;
+ unsigned int wait_idle_clocks_nrt : RBBM_WAIT_IDLE_CLOCKS_WAIT_IDLE_CLOCKS_NRT_SIZE;
+ } rbbm_wait_idle_clocks_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_wait_idle_clocks_t f;
+} rbbm_wait_idle_clocks_u;
+
+
+/*
+ * RBBM_INT_CNTL struct
+ */
+
+#define RBBM_INT_CNTL_RDERR_INT_MASK_SIZE 1
+#define RBBM_INT_CNTL_DISPLAY_UPDATE_INT_MASK_SIZE 1
+#define RBBM_INT_CNTL_GUI_IDLE_INT_MASK_SIZE 1
+
+#define RBBM_INT_CNTL_RDERR_INT_MASK_SHIFT 0
+#define RBBM_INT_CNTL_DISPLAY_UPDATE_INT_MASK_SHIFT 1
+#define RBBM_INT_CNTL_GUI_IDLE_INT_MASK_SHIFT 19
+
+#define RBBM_INT_CNTL_RDERR_INT_MASK_MASK 0x00000001
+#define RBBM_INT_CNTL_DISPLAY_UPDATE_INT_MASK_MASK 0x00000002
+#define RBBM_INT_CNTL_GUI_IDLE_INT_MASK_MASK 0x00080000
+
+#define RBBM_INT_CNTL_MASK \
+ (RBBM_INT_CNTL_RDERR_INT_MASK_MASK | \
+ RBBM_INT_CNTL_DISPLAY_UPDATE_INT_MASK_MASK | \
+ RBBM_INT_CNTL_GUI_IDLE_INT_MASK_MASK)
+
+#define RBBM_INT_CNTL(rderr_int_mask, display_update_int_mask, gui_idle_int_mask) \
+ ((rderr_int_mask << RBBM_INT_CNTL_RDERR_INT_MASK_SHIFT) | \
+ (display_update_int_mask << RBBM_INT_CNTL_DISPLAY_UPDATE_INT_MASK_SHIFT) | \
+ (gui_idle_int_mask << RBBM_INT_CNTL_GUI_IDLE_INT_MASK_SHIFT))
+
+#define RBBM_INT_CNTL_GET_RDERR_INT_MASK(rbbm_int_cntl) \
+ ((rbbm_int_cntl & RBBM_INT_CNTL_RDERR_INT_MASK_MASK) >> RBBM_INT_CNTL_RDERR_INT_MASK_SHIFT)
+#define RBBM_INT_CNTL_GET_DISPLAY_UPDATE_INT_MASK(rbbm_int_cntl) \
+ ((rbbm_int_cntl & RBBM_INT_CNTL_DISPLAY_UPDATE_INT_MASK_MASK) >> RBBM_INT_CNTL_DISPLAY_UPDATE_INT_MASK_SHIFT)
+#define RBBM_INT_CNTL_GET_GUI_IDLE_INT_MASK(rbbm_int_cntl) \
+ ((rbbm_int_cntl & RBBM_INT_CNTL_GUI_IDLE_INT_MASK_MASK) >> RBBM_INT_CNTL_GUI_IDLE_INT_MASK_SHIFT)
+
+#define RBBM_INT_CNTL_SET_RDERR_INT_MASK(rbbm_int_cntl_reg, rderr_int_mask) \
+ rbbm_int_cntl_reg = (rbbm_int_cntl_reg & ~RBBM_INT_CNTL_RDERR_INT_MASK_MASK) | (rderr_int_mask << RBBM_INT_CNTL_RDERR_INT_MASK_SHIFT)
+#define RBBM_INT_CNTL_SET_DISPLAY_UPDATE_INT_MASK(rbbm_int_cntl_reg, display_update_int_mask) \
+ rbbm_int_cntl_reg = (rbbm_int_cntl_reg & ~RBBM_INT_CNTL_DISPLAY_UPDATE_INT_MASK_MASK) | (display_update_int_mask << RBBM_INT_CNTL_DISPLAY_UPDATE_INT_MASK_SHIFT)
+#define RBBM_INT_CNTL_SET_GUI_IDLE_INT_MASK(rbbm_int_cntl_reg, gui_idle_int_mask) \
+ rbbm_int_cntl_reg = (rbbm_int_cntl_reg & ~RBBM_INT_CNTL_GUI_IDLE_INT_MASK_MASK) | (gui_idle_int_mask << RBBM_INT_CNTL_GUI_IDLE_INT_MASK_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_int_cntl_t {
+ unsigned int rderr_int_mask : RBBM_INT_CNTL_RDERR_INT_MASK_SIZE;
+ unsigned int display_update_int_mask : RBBM_INT_CNTL_DISPLAY_UPDATE_INT_MASK_SIZE;
+ unsigned int : 17;
+ unsigned int gui_idle_int_mask : RBBM_INT_CNTL_GUI_IDLE_INT_MASK_SIZE;
+ unsigned int : 12;
+ } rbbm_int_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_int_cntl_t {
+ unsigned int : 12;
+ unsigned int gui_idle_int_mask : RBBM_INT_CNTL_GUI_IDLE_INT_MASK_SIZE;
+ unsigned int : 17;
+ unsigned int display_update_int_mask : RBBM_INT_CNTL_DISPLAY_UPDATE_INT_MASK_SIZE;
+ unsigned int rderr_int_mask : RBBM_INT_CNTL_RDERR_INT_MASK_SIZE;
+ } rbbm_int_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_int_cntl_t f;
+} rbbm_int_cntl_u;
+
+
+/*
+ * RBBM_INT_STATUS struct
+ */
+
+#define RBBM_INT_STATUS_RDERR_INT_STAT_SIZE 1
+#define RBBM_INT_STATUS_DISPLAY_UPDATE_INT_STAT_SIZE 1
+#define RBBM_INT_STATUS_GUI_IDLE_INT_STAT_SIZE 1
+
+#define RBBM_INT_STATUS_RDERR_INT_STAT_SHIFT 0
+#define RBBM_INT_STATUS_DISPLAY_UPDATE_INT_STAT_SHIFT 1
+#define RBBM_INT_STATUS_GUI_IDLE_INT_STAT_SHIFT 19
+
+#define RBBM_INT_STATUS_RDERR_INT_STAT_MASK 0x00000001
+#define RBBM_INT_STATUS_DISPLAY_UPDATE_INT_STAT_MASK 0x00000002
+#define RBBM_INT_STATUS_GUI_IDLE_INT_STAT_MASK 0x00080000
+
+#define RBBM_INT_STATUS_MASK \
+ (RBBM_INT_STATUS_RDERR_INT_STAT_MASK | \
+ RBBM_INT_STATUS_DISPLAY_UPDATE_INT_STAT_MASK | \
+ RBBM_INT_STATUS_GUI_IDLE_INT_STAT_MASK)
+
+#define RBBM_INT_STATUS(rderr_int_stat, display_update_int_stat, gui_idle_int_stat) \
+ ((rderr_int_stat << RBBM_INT_STATUS_RDERR_INT_STAT_SHIFT) | \
+ (display_update_int_stat << RBBM_INT_STATUS_DISPLAY_UPDATE_INT_STAT_SHIFT) | \
+ (gui_idle_int_stat << RBBM_INT_STATUS_GUI_IDLE_INT_STAT_SHIFT))
+
+#define RBBM_INT_STATUS_GET_RDERR_INT_STAT(rbbm_int_status) \
+ ((rbbm_int_status & RBBM_INT_STATUS_RDERR_INT_STAT_MASK) >> RBBM_INT_STATUS_RDERR_INT_STAT_SHIFT)
+#define RBBM_INT_STATUS_GET_DISPLAY_UPDATE_INT_STAT(rbbm_int_status) \
+ ((rbbm_int_status & RBBM_INT_STATUS_DISPLAY_UPDATE_INT_STAT_MASK) >> RBBM_INT_STATUS_DISPLAY_UPDATE_INT_STAT_SHIFT)
+#define RBBM_INT_STATUS_GET_GUI_IDLE_INT_STAT(rbbm_int_status) \
+ ((rbbm_int_status & RBBM_INT_STATUS_GUI_IDLE_INT_STAT_MASK) >> RBBM_INT_STATUS_GUI_IDLE_INT_STAT_SHIFT)
+
+#define RBBM_INT_STATUS_SET_RDERR_INT_STAT(rbbm_int_status_reg, rderr_int_stat) \
+ rbbm_int_status_reg = (rbbm_int_status_reg & ~RBBM_INT_STATUS_RDERR_INT_STAT_MASK) | (rderr_int_stat << RBBM_INT_STATUS_RDERR_INT_STAT_SHIFT)
+#define RBBM_INT_STATUS_SET_DISPLAY_UPDATE_INT_STAT(rbbm_int_status_reg, display_update_int_stat) \
+ rbbm_int_status_reg = (rbbm_int_status_reg & ~RBBM_INT_STATUS_DISPLAY_UPDATE_INT_STAT_MASK) | (display_update_int_stat << RBBM_INT_STATUS_DISPLAY_UPDATE_INT_STAT_SHIFT)
+#define RBBM_INT_STATUS_SET_GUI_IDLE_INT_STAT(rbbm_int_status_reg, gui_idle_int_stat) \
+ rbbm_int_status_reg = (rbbm_int_status_reg & ~RBBM_INT_STATUS_GUI_IDLE_INT_STAT_MASK) | (gui_idle_int_stat << RBBM_INT_STATUS_GUI_IDLE_INT_STAT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_int_status_t {
+ unsigned int rderr_int_stat : RBBM_INT_STATUS_RDERR_INT_STAT_SIZE;
+ unsigned int display_update_int_stat : RBBM_INT_STATUS_DISPLAY_UPDATE_INT_STAT_SIZE;
+ unsigned int : 17;
+ unsigned int gui_idle_int_stat : RBBM_INT_STATUS_GUI_IDLE_INT_STAT_SIZE;
+ unsigned int : 12;
+ } rbbm_int_status_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_int_status_t {
+ unsigned int : 12;
+ unsigned int gui_idle_int_stat : RBBM_INT_STATUS_GUI_IDLE_INT_STAT_SIZE;
+ unsigned int : 17;
+ unsigned int display_update_int_stat : RBBM_INT_STATUS_DISPLAY_UPDATE_INT_STAT_SIZE;
+ unsigned int rderr_int_stat : RBBM_INT_STATUS_RDERR_INT_STAT_SIZE;
+ } rbbm_int_status_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_int_status_t f;
+} rbbm_int_status_u;
+
+
+/*
+ * RBBM_INT_ACK struct
+ */
+
+#define RBBM_INT_ACK_RDERR_INT_ACK_SIZE 1
+#define RBBM_INT_ACK_DISPLAY_UPDATE_INT_ACK_SIZE 1
+#define RBBM_INT_ACK_GUI_IDLE_INT_ACK_SIZE 1
+
+#define RBBM_INT_ACK_RDERR_INT_ACK_SHIFT 0
+#define RBBM_INT_ACK_DISPLAY_UPDATE_INT_ACK_SHIFT 1
+#define RBBM_INT_ACK_GUI_IDLE_INT_ACK_SHIFT 19
+
+#define RBBM_INT_ACK_RDERR_INT_ACK_MASK 0x00000001
+#define RBBM_INT_ACK_DISPLAY_UPDATE_INT_ACK_MASK 0x00000002
+#define RBBM_INT_ACK_GUI_IDLE_INT_ACK_MASK 0x00080000
+
+#define RBBM_INT_ACK_MASK \
+ (RBBM_INT_ACK_RDERR_INT_ACK_MASK | \
+ RBBM_INT_ACK_DISPLAY_UPDATE_INT_ACK_MASK | \
+ RBBM_INT_ACK_GUI_IDLE_INT_ACK_MASK)
+
+#define RBBM_INT_ACK(rderr_int_ack, display_update_int_ack, gui_idle_int_ack) \
+ ((rderr_int_ack << RBBM_INT_ACK_RDERR_INT_ACK_SHIFT) | \
+ (display_update_int_ack << RBBM_INT_ACK_DISPLAY_UPDATE_INT_ACK_SHIFT) | \
+ (gui_idle_int_ack << RBBM_INT_ACK_GUI_IDLE_INT_ACK_SHIFT))
+
+#define RBBM_INT_ACK_GET_RDERR_INT_ACK(rbbm_int_ack) \
+ ((rbbm_int_ack & RBBM_INT_ACK_RDERR_INT_ACK_MASK) >> RBBM_INT_ACK_RDERR_INT_ACK_SHIFT)
+#define RBBM_INT_ACK_GET_DISPLAY_UPDATE_INT_ACK(rbbm_int_ack) \
+ ((rbbm_int_ack & RBBM_INT_ACK_DISPLAY_UPDATE_INT_ACK_MASK) >> RBBM_INT_ACK_DISPLAY_UPDATE_INT_ACK_SHIFT)
+#define RBBM_INT_ACK_GET_GUI_IDLE_INT_ACK(rbbm_int_ack) \
+ ((rbbm_int_ack & RBBM_INT_ACK_GUI_IDLE_INT_ACK_MASK) >> RBBM_INT_ACK_GUI_IDLE_INT_ACK_SHIFT)
+
+#define RBBM_INT_ACK_SET_RDERR_INT_ACK(rbbm_int_ack_reg, rderr_int_ack) \
+ rbbm_int_ack_reg = (rbbm_int_ack_reg & ~RBBM_INT_ACK_RDERR_INT_ACK_MASK) | (rderr_int_ack << RBBM_INT_ACK_RDERR_INT_ACK_SHIFT)
+#define RBBM_INT_ACK_SET_DISPLAY_UPDATE_INT_ACK(rbbm_int_ack_reg, display_update_int_ack) \
+ rbbm_int_ack_reg = (rbbm_int_ack_reg & ~RBBM_INT_ACK_DISPLAY_UPDATE_INT_ACK_MASK) | (display_update_int_ack << RBBM_INT_ACK_DISPLAY_UPDATE_INT_ACK_SHIFT)
+#define RBBM_INT_ACK_SET_GUI_IDLE_INT_ACK(rbbm_int_ack_reg, gui_idle_int_ack) \
+ rbbm_int_ack_reg = (rbbm_int_ack_reg & ~RBBM_INT_ACK_GUI_IDLE_INT_ACK_MASK) | (gui_idle_int_ack << RBBM_INT_ACK_GUI_IDLE_INT_ACK_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_int_ack_t {
+ unsigned int rderr_int_ack : RBBM_INT_ACK_RDERR_INT_ACK_SIZE;
+ unsigned int display_update_int_ack : RBBM_INT_ACK_DISPLAY_UPDATE_INT_ACK_SIZE;
+ unsigned int : 17;
+ unsigned int gui_idle_int_ack : RBBM_INT_ACK_GUI_IDLE_INT_ACK_SIZE;
+ unsigned int : 12;
+ } rbbm_int_ack_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_int_ack_t {
+ unsigned int : 12;
+ unsigned int gui_idle_int_ack : RBBM_INT_ACK_GUI_IDLE_INT_ACK_SIZE;
+ unsigned int : 17;
+ unsigned int display_update_int_ack : RBBM_INT_ACK_DISPLAY_UPDATE_INT_ACK_SIZE;
+ unsigned int rderr_int_ack : RBBM_INT_ACK_RDERR_INT_ACK_SIZE;
+ } rbbm_int_ack_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_int_ack_t f;
+} rbbm_int_ack_u;
+
+
+/*
+ * MASTER_INT_SIGNAL struct
+ */
+
+#define MASTER_INT_SIGNAL_MH_INT_STAT_SIZE 1
+#define MASTER_INT_SIGNAL_CP_INT_STAT_SIZE 1
+#define MASTER_INT_SIGNAL_RBBM_INT_STAT_SIZE 1
+
+#define MASTER_INT_SIGNAL_MH_INT_STAT_SHIFT 5
+#define MASTER_INT_SIGNAL_CP_INT_STAT_SHIFT 30
+#define MASTER_INT_SIGNAL_RBBM_INT_STAT_SHIFT 31
+
+#define MASTER_INT_SIGNAL_MH_INT_STAT_MASK 0x00000020
+#define MASTER_INT_SIGNAL_CP_INT_STAT_MASK 0x40000000
+#define MASTER_INT_SIGNAL_RBBM_INT_STAT_MASK 0x80000000
+
+#define MASTER_INT_SIGNAL_MASK \
+ (MASTER_INT_SIGNAL_MH_INT_STAT_MASK | \
+ MASTER_INT_SIGNAL_CP_INT_STAT_MASK | \
+ MASTER_INT_SIGNAL_RBBM_INT_STAT_MASK)
+
+#define MASTER_INT_SIGNAL(mh_int_stat, cp_int_stat, rbbm_int_stat) \
+ ((mh_int_stat << MASTER_INT_SIGNAL_MH_INT_STAT_SHIFT) | \
+ (cp_int_stat << MASTER_INT_SIGNAL_CP_INT_STAT_SHIFT) | \
+ (rbbm_int_stat << MASTER_INT_SIGNAL_RBBM_INT_STAT_SHIFT))
+
+#define MASTER_INT_SIGNAL_GET_MH_INT_STAT(master_int_signal) \
+ ((master_int_signal & MASTER_INT_SIGNAL_MH_INT_STAT_MASK) >> MASTER_INT_SIGNAL_MH_INT_STAT_SHIFT)
+#define MASTER_INT_SIGNAL_GET_CP_INT_STAT(master_int_signal) \
+ ((master_int_signal & MASTER_INT_SIGNAL_CP_INT_STAT_MASK) >> MASTER_INT_SIGNAL_CP_INT_STAT_SHIFT)
+#define MASTER_INT_SIGNAL_GET_RBBM_INT_STAT(master_int_signal) \
+ ((master_int_signal & MASTER_INT_SIGNAL_RBBM_INT_STAT_MASK) >> MASTER_INT_SIGNAL_RBBM_INT_STAT_SHIFT)
+
+#define MASTER_INT_SIGNAL_SET_MH_INT_STAT(master_int_signal_reg, mh_int_stat) \
+ master_int_signal_reg = (master_int_signal_reg & ~MASTER_INT_SIGNAL_MH_INT_STAT_MASK) | (mh_int_stat << MASTER_INT_SIGNAL_MH_INT_STAT_SHIFT)
+#define MASTER_INT_SIGNAL_SET_CP_INT_STAT(master_int_signal_reg, cp_int_stat) \
+ master_int_signal_reg = (master_int_signal_reg & ~MASTER_INT_SIGNAL_CP_INT_STAT_MASK) | (cp_int_stat << MASTER_INT_SIGNAL_CP_INT_STAT_SHIFT)
+#define MASTER_INT_SIGNAL_SET_RBBM_INT_STAT(master_int_signal_reg, rbbm_int_stat) \
+ master_int_signal_reg = (master_int_signal_reg & ~MASTER_INT_SIGNAL_RBBM_INT_STAT_MASK) | (rbbm_int_stat << MASTER_INT_SIGNAL_RBBM_INT_STAT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _master_int_signal_t {
+ unsigned int : 5;
+ unsigned int mh_int_stat : MASTER_INT_SIGNAL_MH_INT_STAT_SIZE;
+ unsigned int : 24;
+ unsigned int cp_int_stat : MASTER_INT_SIGNAL_CP_INT_STAT_SIZE;
+ unsigned int rbbm_int_stat : MASTER_INT_SIGNAL_RBBM_INT_STAT_SIZE;
+ } master_int_signal_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _master_int_signal_t {
+ unsigned int rbbm_int_stat : MASTER_INT_SIGNAL_RBBM_INT_STAT_SIZE;
+ unsigned int cp_int_stat : MASTER_INT_SIGNAL_CP_INT_STAT_SIZE;
+ unsigned int : 24;
+ unsigned int mh_int_stat : MASTER_INT_SIGNAL_MH_INT_STAT_SIZE;
+ unsigned int : 5;
+ } master_int_signal_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ master_int_signal_t f;
+} master_int_signal_u;
+
+
+/*
+ * RBBM_PERFCOUNTER1_SELECT struct
+ */
+
+#define RBBM_PERFCOUNTER1_SELECT_PERF_COUNT1_SEL_SIZE 6
+
+#define RBBM_PERFCOUNTER1_SELECT_PERF_COUNT1_SEL_SHIFT 0
+
+#define RBBM_PERFCOUNTER1_SELECT_PERF_COUNT1_SEL_MASK 0x0000003f
+
+#define RBBM_PERFCOUNTER1_SELECT_MASK \
+ (RBBM_PERFCOUNTER1_SELECT_PERF_COUNT1_SEL_MASK)
+
+#define RBBM_PERFCOUNTER1_SELECT(perf_count1_sel) \
+ ((perf_count1_sel << RBBM_PERFCOUNTER1_SELECT_PERF_COUNT1_SEL_SHIFT))
+
+#define RBBM_PERFCOUNTER1_SELECT_GET_PERF_COUNT1_SEL(rbbm_perfcounter1_select) \
+ ((rbbm_perfcounter1_select & RBBM_PERFCOUNTER1_SELECT_PERF_COUNT1_SEL_MASK) >> RBBM_PERFCOUNTER1_SELECT_PERF_COUNT1_SEL_SHIFT)
+
+#define RBBM_PERFCOUNTER1_SELECT_SET_PERF_COUNT1_SEL(rbbm_perfcounter1_select_reg, perf_count1_sel) \
+ rbbm_perfcounter1_select_reg = (rbbm_perfcounter1_select_reg & ~RBBM_PERFCOUNTER1_SELECT_PERF_COUNT1_SEL_MASK) | (perf_count1_sel << RBBM_PERFCOUNTER1_SELECT_PERF_COUNT1_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_perfcounter1_select_t {
+ unsigned int perf_count1_sel : RBBM_PERFCOUNTER1_SELECT_PERF_COUNT1_SEL_SIZE;
+ unsigned int : 26;
+ } rbbm_perfcounter1_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_perfcounter1_select_t {
+ unsigned int : 26;
+ unsigned int perf_count1_sel : RBBM_PERFCOUNTER1_SELECT_PERF_COUNT1_SEL_SIZE;
+ } rbbm_perfcounter1_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_perfcounter1_select_t f;
+} rbbm_perfcounter1_select_u;
+
+
+/*
+ * RBBM_PERFCOUNTER1_LO struct
+ */
+
+#define RBBM_PERFCOUNTER1_LO_PERF_COUNT1_LO_SIZE 32
+
+#define RBBM_PERFCOUNTER1_LO_PERF_COUNT1_LO_SHIFT 0
+
+#define RBBM_PERFCOUNTER1_LO_PERF_COUNT1_LO_MASK 0xffffffff
+
+#define RBBM_PERFCOUNTER1_LO_MASK \
+ (RBBM_PERFCOUNTER1_LO_PERF_COUNT1_LO_MASK)
+
+#define RBBM_PERFCOUNTER1_LO(perf_count1_lo) \
+ ((perf_count1_lo << RBBM_PERFCOUNTER1_LO_PERF_COUNT1_LO_SHIFT))
+
+#define RBBM_PERFCOUNTER1_LO_GET_PERF_COUNT1_LO(rbbm_perfcounter1_lo) \
+ ((rbbm_perfcounter1_lo & RBBM_PERFCOUNTER1_LO_PERF_COUNT1_LO_MASK) >> RBBM_PERFCOUNTER1_LO_PERF_COUNT1_LO_SHIFT)
+
+#define RBBM_PERFCOUNTER1_LO_SET_PERF_COUNT1_LO(rbbm_perfcounter1_lo_reg, perf_count1_lo) \
+ rbbm_perfcounter1_lo_reg = (rbbm_perfcounter1_lo_reg & ~RBBM_PERFCOUNTER1_LO_PERF_COUNT1_LO_MASK) | (perf_count1_lo << RBBM_PERFCOUNTER1_LO_PERF_COUNT1_LO_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_perfcounter1_lo_t {
+ unsigned int perf_count1_lo : RBBM_PERFCOUNTER1_LO_PERF_COUNT1_LO_SIZE;
+ } rbbm_perfcounter1_lo_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_perfcounter1_lo_t {
+ unsigned int perf_count1_lo : RBBM_PERFCOUNTER1_LO_PERF_COUNT1_LO_SIZE;
+ } rbbm_perfcounter1_lo_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_perfcounter1_lo_t f;
+} rbbm_perfcounter1_lo_u;
+
+
+/*
+ * RBBM_PERFCOUNTER1_HI struct
+ */
+
+#define RBBM_PERFCOUNTER1_HI_PERF_COUNT1_HI_SIZE 16
+
+#define RBBM_PERFCOUNTER1_HI_PERF_COUNT1_HI_SHIFT 0
+
+#define RBBM_PERFCOUNTER1_HI_PERF_COUNT1_HI_MASK 0x0000ffff
+
+#define RBBM_PERFCOUNTER1_HI_MASK \
+ (RBBM_PERFCOUNTER1_HI_PERF_COUNT1_HI_MASK)
+
+#define RBBM_PERFCOUNTER1_HI(perf_count1_hi) \
+ ((perf_count1_hi << RBBM_PERFCOUNTER1_HI_PERF_COUNT1_HI_SHIFT))
+
+#define RBBM_PERFCOUNTER1_HI_GET_PERF_COUNT1_HI(rbbm_perfcounter1_hi) \
+ ((rbbm_perfcounter1_hi & RBBM_PERFCOUNTER1_HI_PERF_COUNT1_HI_MASK) >> RBBM_PERFCOUNTER1_HI_PERF_COUNT1_HI_SHIFT)
+
+#define RBBM_PERFCOUNTER1_HI_SET_PERF_COUNT1_HI(rbbm_perfcounter1_hi_reg, perf_count1_hi) \
+ rbbm_perfcounter1_hi_reg = (rbbm_perfcounter1_hi_reg & ~RBBM_PERFCOUNTER1_HI_PERF_COUNT1_HI_MASK) | (perf_count1_hi << RBBM_PERFCOUNTER1_HI_PERF_COUNT1_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_perfcounter1_hi_t {
+ unsigned int perf_count1_hi : RBBM_PERFCOUNTER1_HI_PERF_COUNT1_HI_SIZE;
+ unsigned int : 16;
+ } rbbm_perfcounter1_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_perfcounter1_hi_t {
+ unsigned int : 16;
+ unsigned int perf_count1_hi : RBBM_PERFCOUNTER1_HI_PERF_COUNT1_HI_SIZE;
+ } rbbm_perfcounter1_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_perfcounter1_hi_t f;
+} rbbm_perfcounter1_hi_u;
+
+
+#endif
+
+
+#if !defined (_MH_FIDDLE_H)
+#define _MH_FIDDLE_H
+
+/*******************************************************
+ * Enums
+ *******************************************************/
+
+
+/*******************************************************
+ * Values
+ *******************************************************/
+
+
+/*******************************************************
+ * Structures
+ *******************************************************/
+
+/*
+ * MH_ARBITER_CONFIG struct
+ */
+
+#define MH_ARBITER_CONFIG_SAME_PAGE_LIMIT_SIZE 6
+#define MH_ARBITER_CONFIG_SAME_PAGE_GRANULARITY_SIZE 1
+#define MH_ARBITER_CONFIG_L1_ARB_ENABLE_SIZE 1
+#define MH_ARBITER_CONFIG_L1_ARB_HOLD_ENABLE_SIZE 1
+#define MH_ARBITER_CONFIG_L2_ARB_CONTROL_SIZE 1
+#define MH_ARBITER_CONFIG_PAGE_SIZE_SIZE 3
+#define MH_ARBITER_CONFIG_TC_REORDER_ENABLE_SIZE 1
+#define MH_ARBITER_CONFIG_TC_ARB_HOLD_ENABLE_SIZE 1
+#define MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_ENABLE_SIZE 1
+#define MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_SIZE 6
+#define MH_ARBITER_CONFIG_CP_CLNT_ENABLE_SIZE 1
+#define MH_ARBITER_CONFIG_VGT_CLNT_ENABLE_SIZE 1
+#define MH_ARBITER_CONFIG_TC_CLNT_ENABLE_SIZE 1
+#define MH_ARBITER_CONFIG_RB_CLNT_ENABLE_SIZE 1
+
+#define MH_ARBITER_CONFIG_SAME_PAGE_LIMIT_SHIFT 0
+#define MH_ARBITER_CONFIG_SAME_PAGE_GRANULARITY_SHIFT 6
+#define MH_ARBITER_CONFIG_L1_ARB_ENABLE_SHIFT 7
+#define MH_ARBITER_CONFIG_L1_ARB_HOLD_ENABLE_SHIFT 8
+#define MH_ARBITER_CONFIG_L2_ARB_CONTROL_SHIFT 9
+#define MH_ARBITER_CONFIG_PAGE_SIZE_SHIFT 10
+#define MH_ARBITER_CONFIG_TC_REORDER_ENABLE_SHIFT 13
+#define MH_ARBITER_CONFIG_TC_ARB_HOLD_ENABLE_SHIFT 14
+#define MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_ENABLE_SHIFT 15
+#define MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_SHIFT 16
+#define MH_ARBITER_CONFIG_CP_CLNT_ENABLE_SHIFT 22
+#define MH_ARBITER_CONFIG_VGT_CLNT_ENABLE_SHIFT 23
+#define MH_ARBITER_CONFIG_TC_CLNT_ENABLE_SHIFT 24
+#define MH_ARBITER_CONFIG_RB_CLNT_ENABLE_SHIFT 25
+
+#define MH_ARBITER_CONFIG_SAME_PAGE_LIMIT_MASK 0x0000003f
+#define MH_ARBITER_CONFIG_SAME_PAGE_GRANULARITY_MASK 0x00000040
+#define MH_ARBITER_CONFIG_L1_ARB_ENABLE_MASK 0x00000080
+#define MH_ARBITER_CONFIG_L1_ARB_HOLD_ENABLE_MASK 0x00000100
+#define MH_ARBITER_CONFIG_L2_ARB_CONTROL_MASK 0x00000200
+#define MH_ARBITER_CONFIG_PAGE_SIZE_MASK 0x00001c00
+#define MH_ARBITER_CONFIG_TC_REORDER_ENABLE_MASK 0x00002000
+#define MH_ARBITER_CONFIG_TC_ARB_HOLD_ENABLE_MASK 0x00004000
+#define MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_ENABLE_MASK 0x00008000
+#define MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_MASK 0x003f0000
+#define MH_ARBITER_CONFIG_CP_CLNT_ENABLE_MASK 0x00400000
+#define MH_ARBITER_CONFIG_VGT_CLNT_ENABLE_MASK 0x00800000
+#define MH_ARBITER_CONFIG_TC_CLNT_ENABLE_MASK 0x01000000
+#define MH_ARBITER_CONFIG_RB_CLNT_ENABLE_MASK 0x02000000
+
+#define MH_ARBITER_CONFIG_MASK \
+ (MH_ARBITER_CONFIG_SAME_PAGE_LIMIT_MASK | \
+ MH_ARBITER_CONFIG_SAME_PAGE_GRANULARITY_MASK | \
+ MH_ARBITER_CONFIG_L1_ARB_ENABLE_MASK | \
+ MH_ARBITER_CONFIG_L1_ARB_HOLD_ENABLE_MASK | \
+ MH_ARBITER_CONFIG_L2_ARB_CONTROL_MASK | \
+ MH_ARBITER_CONFIG_PAGE_SIZE_MASK | \
+ MH_ARBITER_CONFIG_TC_REORDER_ENABLE_MASK | \
+ MH_ARBITER_CONFIG_TC_ARB_HOLD_ENABLE_MASK | \
+ MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_ENABLE_MASK | \
+ MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_MASK | \
+ MH_ARBITER_CONFIG_CP_CLNT_ENABLE_MASK | \
+ MH_ARBITER_CONFIG_VGT_CLNT_ENABLE_MASK | \
+ MH_ARBITER_CONFIG_TC_CLNT_ENABLE_MASK | \
+ MH_ARBITER_CONFIG_RB_CLNT_ENABLE_MASK)
+
+#define MH_ARBITER_CONFIG(same_page_limit, same_page_granularity, l1_arb_enable, l1_arb_hold_enable, l2_arb_control, page_size, tc_reorder_enable, tc_arb_hold_enable, in_flight_limit_enable, in_flight_limit, cp_clnt_enable, vgt_clnt_enable, tc_clnt_enable, rb_clnt_enable) \
+ ((same_page_limit << MH_ARBITER_CONFIG_SAME_PAGE_LIMIT_SHIFT) | \
+ (same_page_granularity << MH_ARBITER_CONFIG_SAME_PAGE_GRANULARITY_SHIFT) | \
+ (l1_arb_enable << MH_ARBITER_CONFIG_L1_ARB_ENABLE_SHIFT) | \
+ (l1_arb_hold_enable << MH_ARBITER_CONFIG_L1_ARB_HOLD_ENABLE_SHIFT) | \
+ (l2_arb_control << MH_ARBITER_CONFIG_L2_ARB_CONTROL_SHIFT) | \
+ (page_size << MH_ARBITER_CONFIG_PAGE_SIZE_SHIFT) | \
+ (tc_reorder_enable << MH_ARBITER_CONFIG_TC_REORDER_ENABLE_SHIFT) | \
+ (tc_arb_hold_enable << MH_ARBITER_CONFIG_TC_ARB_HOLD_ENABLE_SHIFT) | \
+ (in_flight_limit_enable << MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_ENABLE_SHIFT) | \
+ (in_flight_limit << MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_SHIFT) | \
+ (cp_clnt_enable << MH_ARBITER_CONFIG_CP_CLNT_ENABLE_SHIFT) | \
+ (vgt_clnt_enable << MH_ARBITER_CONFIG_VGT_CLNT_ENABLE_SHIFT) | \
+ (tc_clnt_enable << MH_ARBITER_CONFIG_TC_CLNT_ENABLE_SHIFT) | \
+ (rb_clnt_enable << MH_ARBITER_CONFIG_RB_CLNT_ENABLE_SHIFT))
+
+#define MH_ARBITER_CONFIG_GET_SAME_PAGE_LIMIT(mh_arbiter_config) \
+ ((mh_arbiter_config & MH_ARBITER_CONFIG_SAME_PAGE_LIMIT_MASK) >> MH_ARBITER_CONFIG_SAME_PAGE_LIMIT_SHIFT)
+#define MH_ARBITER_CONFIG_GET_SAME_PAGE_GRANULARITY(mh_arbiter_config) \
+ ((mh_arbiter_config & MH_ARBITER_CONFIG_SAME_PAGE_GRANULARITY_MASK) >> MH_ARBITER_CONFIG_SAME_PAGE_GRANULARITY_SHIFT)
+#define MH_ARBITER_CONFIG_GET_L1_ARB_ENABLE(mh_arbiter_config) \
+ ((mh_arbiter_config & MH_ARBITER_CONFIG_L1_ARB_ENABLE_MASK) >> MH_ARBITER_CONFIG_L1_ARB_ENABLE_SHIFT)
+#define MH_ARBITER_CONFIG_GET_L1_ARB_HOLD_ENABLE(mh_arbiter_config) \
+ ((mh_arbiter_config & MH_ARBITER_CONFIG_L1_ARB_HOLD_ENABLE_MASK) >> MH_ARBITER_CONFIG_L1_ARB_HOLD_ENABLE_SHIFT)
+#define MH_ARBITER_CONFIG_GET_L2_ARB_CONTROL(mh_arbiter_config) \
+ ((mh_arbiter_config & MH_ARBITER_CONFIG_L2_ARB_CONTROL_MASK) >> MH_ARBITER_CONFIG_L2_ARB_CONTROL_SHIFT)
+#define MH_ARBITER_CONFIG_GET_PAGE_SIZE(mh_arbiter_config) \
+ ((mh_arbiter_config & MH_ARBITER_CONFIG_PAGE_SIZE_MASK) >> MH_ARBITER_CONFIG_PAGE_SIZE_SHIFT)
+#define MH_ARBITER_CONFIG_GET_TC_REORDER_ENABLE(mh_arbiter_config) \
+ ((mh_arbiter_config & MH_ARBITER_CONFIG_TC_REORDER_ENABLE_MASK) >> MH_ARBITER_CONFIG_TC_REORDER_ENABLE_SHIFT)
+#define MH_ARBITER_CONFIG_GET_TC_ARB_HOLD_ENABLE(mh_arbiter_config) \
+ ((mh_arbiter_config & MH_ARBITER_CONFIG_TC_ARB_HOLD_ENABLE_MASK) >> MH_ARBITER_CONFIG_TC_ARB_HOLD_ENABLE_SHIFT)
+#define MH_ARBITER_CONFIG_GET_IN_FLIGHT_LIMIT_ENABLE(mh_arbiter_config) \
+ ((mh_arbiter_config & MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_ENABLE_MASK) >> MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_ENABLE_SHIFT)
+#define MH_ARBITER_CONFIG_GET_IN_FLIGHT_LIMIT(mh_arbiter_config) \
+ ((mh_arbiter_config & MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_MASK) >> MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_SHIFT)
+#define MH_ARBITER_CONFIG_GET_CP_CLNT_ENABLE(mh_arbiter_config) \
+ ((mh_arbiter_config & MH_ARBITER_CONFIG_CP_CLNT_ENABLE_MASK) >> MH_ARBITER_CONFIG_CP_CLNT_ENABLE_SHIFT)
+#define MH_ARBITER_CONFIG_GET_VGT_CLNT_ENABLE(mh_arbiter_config) \
+ ((mh_arbiter_config & MH_ARBITER_CONFIG_VGT_CLNT_ENABLE_MASK) >> MH_ARBITER_CONFIG_VGT_CLNT_ENABLE_SHIFT)
+#define MH_ARBITER_CONFIG_GET_TC_CLNT_ENABLE(mh_arbiter_config) \
+ ((mh_arbiter_config & MH_ARBITER_CONFIG_TC_CLNT_ENABLE_MASK) >> MH_ARBITER_CONFIG_TC_CLNT_ENABLE_SHIFT)
+#define MH_ARBITER_CONFIG_GET_RB_CLNT_ENABLE(mh_arbiter_config) \
+ ((mh_arbiter_config & MH_ARBITER_CONFIG_RB_CLNT_ENABLE_MASK) >> MH_ARBITER_CONFIG_RB_CLNT_ENABLE_SHIFT)
+
+#define MH_ARBITER_CONFIG_SET_SAME_PAGE_LIMIT(mh_arbiter_config_reg, same_page_limit) \
+ mh_arbiter_config_reg = (mh_arbiter_config_reg & ~MH_ARBITER_CONFIG_SAME_PAGE_LIMIT_MASK) | (same_page_limit << MH_ARBITER_CONFIG_SAME_PAGE_LIMIT_SHIFT)
+#define MH_ARBITER_CONFIG_SET_SAME_PAGE_GRANULARITY(mh_arbiter_config_reg, same_page_granularity) \
+ mh_arbiter_config_reg = (mh_arbiter_config_reg & ~MH_ARBITER_CONFIG_SAME_PAGE_GRANULARITY_MASK) | (same_page_granularity << MH_ARBITER_CONFIG_SAME_PAGE_GRANULARITY_SHIFT)
+#define MH_ARBITER_CONFIG_SET_L1_ARB_ENABLE(mh_arbiter_config_reg, l1_arb_enable) \
+ mh_arbiter_config_reg = (mh_arbiter_config_reg & ~MH_ARBITER_CONFIG_L1_ARB_ENABLE_MASK) | (l1_arb_enable << MH_ARBITER_CONFIG_L1_ARB_ENABLE_SHIFT)
+#define MH_ARBITER_CONFIG_SET_L1_ARB_HOLD_ENABLE(mh_arbiter_config_reg, l1_arb_hold_enable) \
+ mh_arbiter_config_reg = (mh_arbiter_config_reg & ~MH_ARBITER_CONFIG_L1_ARB_HOLD_ENABLE_MASK) | (l1_arb_hold_enable << MH_ARBITER_CONFIG_L1_ARB_HOLD_ENABLE_SHIFT)
+#define MH_ARBITER_CONFIG_SET_L2_ARB_CONTROL(mh_arbiter_config_reg, l2_arb_control) \
+ mh_arbiter_config_reg = (mh_arbiter_config_reg & ~MH_ARBITER_CONFIG_L2_ARB_CONTROL_MASK) | (l2_arb_control << MH_ARBITER_CONFIG_L2_ARB_CONTROL_SHIFT)
+#define MH_ARBITER_CONFIG_SET_PAGE_SIZE(mh_arbiter_config_reg, page_size) \
+ mh_arbiter_config_reg = (mh_arbiter_config_reg & ~MH_ARBITER_CONFIG_PAGE_SIZE_MASK) | (page_size << MH_ARBITER_CONFIG_PAGE_SIZE_SHIFT)
+#define MH_ARBITER_CONFIG_SET_TC_REORDER_ENABLE(mh_arbiter_config_reg, tc_reorder_enable) \
+ mh_arbiter_config_reg = (mh_arbiter_config_reg & ~MH_ARBITER_CONFIG_TC_REORDER_ENABLE_MASK) | (tc_reorder_enable << MH_ARBITER_CONFIG_TC_REORDER_ENABLE_SHIFT)
+#define MH_ARBITER_CONFIG_SET_TC_ARB_HOLD_ENABLE(mh_arbiter_config_reg, tc_arb_hold_enable) \
+ mh_arbiter_config_reg = (mh_arbiter_config_reg & ~MH_ARBITER_CONFIG_TC_ARB_HOLD_ENABLE_MASK) | (tc_arb_hold_enable << MH_ARBITER_CONFIG_TC_ARB_HOLD_ENABLE_SHIFT)
+#define MH_ARBITER_CONFIG_SET_IN_FLIGHT_LIMIT_ENABLE(mh_arbiter_config_reg, in_flight_limit_enable) \
+ mh_arbiter_config_reg = (mh_arbiter_config_reg & ~MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_ENABLE_MASK) | (in_flight_limit_enable << MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_ENABLE_SHIFT)
+#define MH_ARBITER_CONFIG_SET_IN_FLIGHT_LIMIT(mh_arbiter_config_reg, in_flight_limit) \
+ mh_arbiter_config_reg = (mh_arbiter_config_reg & ~MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_MASK) | (in_flight_limit << MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_SHIFT)
+#define MH_ARBITER_CONFIG_SET_CP_CLNT_ENABLE(mh_arbiter_config_reg, cp_clnt_enable) \
+ mh_arbiter_config_reg = (mh_arbiter_config_reg & ~MH_ARBITER_CONFIG_CP_CLNT_ENABLE_MASK) | (cp_clnt_enable << MH_ARBITER_CONFIG_CP_CLNT_ENABLE_SHIFT)
+#define MH_ARBITER_CONFIG_SET_VGT_CLNT_ENABLE(mh_arbiter_config_reg, vgt_clnt_enable) \
+ mh_arbiter_config_reg = (mh_arbiter_config_reg & ~MH_ARBITER_CONFIG_VGT_CLNT_ENABLE_MASK) | (vgt_clnt_enable << MH_ARBITER_CONFIG_VGT_CLNT_ENABLE_SHIFT)
+#define MH_ARBITER_CONFIG_SET_TC_CLNT_ENABLE(mh_arbiter_config_reg, tc_clnt_enable) \
+ mh_arbiter_config_reg = (mh_arbiter_config_reg & ~MH_ARBITER_CONFIG_TC_CLNT_ENABLE_MASK) | (tc_clnt_enable << MH_ARBITER_CONFIG_TC_CLNT_ENABLE_SHIFT)
+#define MH_ARBITER_CONFIG_SET_RB_CLNT_ENABLE(mh_arbiter_config_reg, rb_clnt_enable) \
+ mh_arbiter_config_reg = (mh_arbiter_config_reg & ~MH_ARBITER_CONFIG_RB_CLNT_ENABLE_MASK) | (rb_clnt_enable << MH_ARBITER_CONFIG_RB_CLNT_ENABLE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_arbiter_config_t {
+ unsigned int same_page_limit : MH_ARBITER_CONFIG_SAME_PAGE_LIMIT_SIZE;
+ unsigned int same_page_granularity : MH_ARBITER_CONFIG_SAME_PAGE_GRANULARITY_SIZE;
+ unsigned int l1_arb_enable : MH_ARBITER_CONFIG_L1_ARB_ENABLE_SIZE;
+ unsigned int l1_arb_hold_enable : MH_ARBITER_CONFIG_L1_ARB_HOLD_ENABLE_SIZE;
+ unsigned int l2_arb_control : MH_ARBITER_CONFIG_L2_ARB_CONTROL_SIZE;
+ unsigned int page_size : MH_ARBITER_CONFIG_PAGE_SIZE_SIZE;
+ unsigned int tc_reorder_enable : MH_ARBITER_CONFIG_TC_REORDER_ENABLE_SIZE;
+ unsigned int tc_arb_hold_enable : MH_ARBITER_CONFIG_TC_ARB_HOLD_ENABLE_SIZE;
+ unsigned int in_flight_limit_enable : MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_ENABLE_SIZE;
+ unsigned int in_flight_limit : MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_SIZE;
+ unsigned int cp_clnt_enable : MH_ARBITER_CONFIG_CP_CLNT_ENABLE_SIZE;
+ unsigned int vgt_clnt_enable : MH_ARBITER_CONFIG_VGT_CLNT_ENABLE_SIZE;
+ unsigned int tc_clnt_enable : MH_ARBITER_CONFIG_TC_CLNT_ENABLE_SIZE;
+ unsigned int rb_clnt_enable : MH_ARBITER_CONFIG_RB_CLNT_ENABLE_SIZE;
+ unsigned int : 6;
+ } mh_arbiter_config_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_arbiter_config_t {
+ unsigned int : 6;
+ unsigned int rb_clnt_enable : MH_ARBITER_CONFIG_RB_CLNT_ENABLE_SIZE;
+ unsigned int tc_clnt_enable : MH_ARBITER_CONFIG_TC_CLNT_ENABLE_SIZE;
+ unsigned int vgt_clnt_enable : MH_ARBITER_CONFIG_VGT_CLNT_ENABLE_SIZE;
+ unsigned int cp_clnt_enable : MH_ARBITER_CONFIG_CP_CLNT_ENABLE_SIZE;
+ unsigned int in_flight_limit : MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_SIZE;
+ unsigned int in_flight_limit_enable : MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_ENABLE_SIZE;
+ unsigned int tc_arb_hold_enable : MH_ARBITER_CONFIG_TC_ARB_HOLD_ENABLE_SIZE;
+ unsigned int tc_reorder_enable : MH_ARBITER_CONFIG_TC_REORDER_ENABLE_SIZE;
+ unsigned int page_size : MH_ARBITER_CONFIG_PAGE_SIZE_SIZE;
+ unsigned int l2_arb_control : MH_ARBITER_CONFIG_L2_ARB_CONTROL_SIZE;
+ unsigned int l1_arb_hold_enable : MH_ARBITER_CONFIG_L1_ARB_HOLD_ENABLE_SIZE;
+ unsigned int l1_arb_enable : MH_ARBITER_CONFIG_L1_ARB_ENABLE_SIZE;
+ unsigned int same_page_granularity : MH_ARBITER_CONFIG_SAME_PAGE_GRANULARITY_SIZE;
+ unsigned int same_page_limit : MH_ARBITER_CONFIG_SAME_PAGE_LIMIT_SIZE;
+ } mh_arbiter_config_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_arbiter_config_t f;
+} mh_arbiter_config_u;
+
+
+/*
+ * MH_CLNT_AXI_ID_REUSE struct
+ */
+
+#define MH_CLNT_AXI_ID_REUSE_CPw_ID_SIZE 3
+#define MH_CLNT_AXI_ID_REUSE_RESERVED1_SIZE 1
+#define MH_CLNT_AXI_ID_REUSE_RBw_ID_SIZE 3
+#define MH_CLNT_AXI_ID_REUSE_RESERVED2_SIZE 1
+#define MH_CLNT_AXI_ID_REUSE_MMUr_ID_SIZE 3
+
+#define MH_CLNT_AXI_ID_REUSE_CPw_ID_SHIFT 0
+#define MH_CLNT_AXI_ID_REUSE_RESERVED1_SHIFT 3
+#define MH_CLNT_AXI_ID_REUSE_RBw_ID_SHIFT 4
+#define MH_CLNT_AXI_ID_REUSE_RESERVED2_SHIFT 7
+#define MH_CLNT_AXI_ID_REUSE_MMUr_ID_SHIFT 8
+
+#define MH_CLNT_AXI_ID_REUSE_CPw_ID_MASK 0x00000007
+#define MH_CLNT_AXI_ID_REUSE_RESERVED1_MASK 0x00000008
+#define MH_CLNT_AXI_ID_REUSE_RBw_ID_MASK 0x00000070
+#define MH_CLNT_AXI_ID_REUSE_RESERVED2_MASK 0x00000080
+#define MH_CLNT_AXI_ID_REUSE_MMUr_ID_MASK 0x00000700
+
+#define MH_CLNT_AXI_ID_REUSE_MASK \
+ (MH_CLNT_AXI_ID_REUSE_CPw_ID_MASK | \
+ MH_CLNT_AXI_ID_REUSE_RESERVED1_MASK | \
+ MH_CLNT_AXI_ID_REUSE_RBw_ID_MASK | \
+ MH_CLNT_AXI_ID_REUSE_RESERVED2_MASK | \
+ MH_CLNT_AXI_ID_REUSE_MMUr_ID_MASK)
+
+#define MH_CLNT_AXI_ID_REUSE(cpw_id, reserved1, rbw_id, reserved2, mmur_id) \
+ ((cpw_id << MH_CLNT_AXI_ID_REUSE_CPw_ID_SHIFT) | \
+ (reserved1 << MH_CLNT_AXI_ID_REUSE_RESERVED1_SHIFT) | \
+ (rbw_id << MH_CLNT_AXI_ID_REUSE_RBw_ID_SHIFT) | \
+ (reserved2 << MH_CLNT_AXI_ID_REUSE_RESERVED2_SHIFT) | \
+ (mmur_id << MH_CLNT_AXI_ID_REUSE_MMUr_ID_SHIFT))
+
+#define MH_CLNT_AXI_ID_REUSE_GET_CPw_ID(mh_clnt_axi_id_reuse) \
+ ((mh_clnt_axi_id_reuse & MH_CLNT_AXI_ID_REUSE_CPw_ID_MASK) >> MH_CLNT_AXI_ID_REUSE_CPw_ID_SHIFT)
+#define MH_CLNT_AXI_ID_REUSE_GET_RESERVED1(mh_clnt_axi_id_reuse) \
+ ((mh_clnt_axi_id_reuse & MH_CLNT_AXI_ID_REUSE_RESERVED1_MASK) >> MH_CLNT_AXI_ID_REUSE_RESERVED1_SHIFT)
+#define MH_CLNT_AXI_ID_REUSE_GET_RBw_ID(mh_clnt_axi_id_reuse) \
+ ((mh_clnt_axi_id_reuse & MH_CLNT_AXI_ID_REUSE_RBw_ID_MASK) >> MH_CLNT_AXI_ID_REUSE_RBw_ID_SHIFT)
+#define MH_CLNT_AXI_ID_REUSE_GET_RESERVED2(mh_clnt_axi_id_reuse) \
+ ((mh_clnt_axi_id_reuse & MH_CLNT_AXI_ID_REUSE_RESERVED2_MASK) >> MH_CLNT_AXI_ID_REUSE_RESERVED2_SHIFT)
+#define MH_CLNT_AXI_ID_REUSE_GET_MMUr_ID(mh_clnt_axi_id_reuse) \
+ ((mh_clnt_axi_id_reuse & MH_CLNT_AXI_ID_REUSE_MMUr_ID_MASK) >> MH_CLNT_AXI_ID_REUSE_MMUr_ID_SHIFT)
+
+#define MH_CLNT_AXI_ID_REUSE_SET_CPw_ID(mh_clnt_axi_id_reuse_reg, cpw_id) \
+ mh_clnt_axi_id_reuse_reg = (mh_clnt_axi_id_reuse_reg & ~MH_CLNT_AXI_ID_REUSE_CPw_ID_MASK) | (cpw_id << MH_CLNT_AXI_ID_REUSE_CPw_ID_SHIFT)
+#define MH_CLNT_AXI_ID_REUSE_SET_RESERVED1(mh_clnt_axi_id_reuse_reg, reserved1) \
+ mh_clnt_axi_id_reuse_reg = (mh_clnt_axi_id_reuse_reg & ~MH_CLNT_AXI_ID_REUSE_RESERVED1_MASK) | (reserved1 << MH_CLNT_AXI_ID_REUSE_RESERVED1_SHIFT)
+#define MH_CLNT_AXI_ID_REUSE_SET_RBw_ID(mh_clnt_axi_id_reuse_reg, rbw_id) \
+ mh_clnt_axi_id_reuse_reg = (mh_clnt_axi_id_reuse_reg & ~MH_CLNT_AXI_ID_REUSE_RBw_ID_MASK) | (rbw_id << MH_CLNT_AXI_ID_REUSE_RBw_ID_SHIFT)
+#define MH_CLNT_AXI_ID_REUSE_SET_RESERVED2(mh_clnt_axi_id_reuse_reg, reserved2) \
+ mh_clnt_axi_id_reuse_reg = (mh_clnt_axi_id_reuse_reg & ~MH_CLNT_AXI_ID_REUSE_RESERVED2_MASK) | (reserved2 << MH_CLNT_AXI_ID_REUSE_RESERVED2_SHIFT)
+#define MH_CLNT_AXI_ID_REUSE_SET_MMUr_ID(mh_clnt_axi_id_reuse_reg, mmur_id) \
+ mh_clnt_axi_id_reuse_reg = (mh_clnt_axi_id_reuse_reg & ~MH_CLNT_AXI_ID_REUSE_MMUr_ID_MASK) | (mmur_id << MH_CLNT_AXI_ID_REUSE_MMUr_ID_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_clnt_axi_id_reuse_t {
+ unsigned int cpw_id : MH_CLNT_AXI_ID_REUSE_CPw_ID_SIZE;
+ unsigned int reserved1 : MH_CLNT_AXI_ID_REUSE_RESERVED1_SIZE;
+ unsigned int rbw_id : MH_CLNT_AXI_ID_REUSE_RBw_ID_SIZE;
+ unsigned int reserved2 : MH_CLNT_AXI_ID_REUSE_RESERVED2_SIZE;
+ unsigned int mmur_id : MH_CLNT_AXI_ID_REUSE_MMUr_ID_SIZE;
+ unsigned int : 21;
+ } mh_clnt_axi_id_reuse_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_clnt_axi_id_reuse_t {
+ unsigned int : 21;
+ unsigned int mmur_id : MH_CLNT_AXI_ID_REUSE_MMUr_ID_SIZE;
+ unsigned int reserved2 : MH_CLNT_AXI_ID_REUSE_RESERVED2_SIZE;
+ unsigned int rbw_id : MH_CLNT_AXI_ID_REUSE_RBw_ID_SIZE;
+ unsigned int reserved1 : MH_CLNT_AXI_ID_REUSE_RESERVED1_SIZE;
+ unsigned int cpw_id : MH_CLNT_AXI_ID_REUSE_CPw_ID_SIZE;
+ } mh_clnt_axi_id_reuse_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_clnt_axi_id_reuse_t f;
+} mh_clnt_axi_id_reuse_u;
+
+
+/*
+ * MH_INTERRUPT_MASK struct
+ */
+
+#define MH_INTERRUPT_MASK_AXI_READ_ERROR_SIZE 1
+#define MH_INTERRUPT_MASK_AXI_WRITE_ERROR_SIZE 1
+#define MH_INTERRUPT_MASK_MMU_PAGE_FAULT_SIZE 1
+
+#define MH_INTERRUPT_MASK_AXI_READ_ERROR_SHIFT 0
+#define MH_INTERRUPT_MASK_AXI_WRITE_ERROR_SHIFT 1
+#define MH_INTERRUPT_MASK_MMU_PAGE_FAULT_SHIFT 2
+
+#define MH_INTERRUPT_MASK_AXI_READ_ERROR_MASK 0x00000001
+#define MH_INTERRUPT_MASK_AXI_WRITE_ERROR_MASK 0x00000002
+#define MH_INTERRUPT_MASK_MMU_PAGE_FAULT_MASK 0x00000004
+
+#define MH_INTERRUPT_MASK_MASK \
+ (MH_INTERRUPT_MASK_AXI_READ_ERROR_MASK | \
+ MH_INTERRUPT_MASK_AXI_WRITE_ERROR_MASK | \
+ MH_INTERRUPT_MASK_MMU_PAGE_FAULT_MASK)
+
+#define MH_INTERRUPT_MASK(axi_read_error, axi_write_error, mmu_page_fault) \
+ ((axi_read_error << MH_INTERRUPT_MASK_AXI_READ_ERROR_SHIFT) | \
+ (axi_write_error << MH_INTERRUPT_MASK_AXI_WRITE_ERROR_SHIFT) | \
+ (mmu_page_fault << MH_INTERRUPT_MASK_MMU_PAGE_FAULT_SHIFT))
+
+#define MH_INTERRUPT_MASK_GET_AXI_READ_ERROR(mh_interrupt_mask) \
+ ((mh_interrupt_mask & MH_INTERRUPT_MASK_AXI_READ_ERROR_MASK) >> MH_INTERRUPT_MASK_AXI_READ_ERROR_SHIFT)
+#define MH_INTERRUPT_MASK_GET_AXI_WRITE_ERROR(mh_interrupt_mask) \
+ ((mh_interrupt_mask & MH_INTERRUPT_MASK_AXI_WRITE_ERROR_MASK) >> MH_INTERRUPT_MASK_AXI_WRITE_ERROR_SHIFT)
+#define MH_INTERRUPT_MASK_GET_MMU_PAGE_FAULT(mh_interrupt_mask) \
+ ((mh_interrupt_mask & MH_INTERRUPT_MASK_MMU_PAGE_FAULT_MASK) >> MH_INTERRUPT_MASK_MMU_PAGE_FAULT_SHIFT)
+
+#define MH_INTERRUPT_MASK_SET_AXI_READ_ERROR(mh_interrupt_mask_reg, axi_read_error) \
+ mh_interrupt_mask_reg = (mh_interrupt_mask_reg & ~MH_INTERRUPT_MASK_AXI_READ_ERROR_MASK) | (axi_read_error << MH_INTERRUPT_MASK_AXI_READ_ERROR_SHIFT)
+#define MH_INTERRUPT_MASK_SET_AXI_WRITE_ERROR(mh_interrupt_mask_reg, axi_write_error) \
+ mh_interrupt_mask_reg = (mh_interrupt_mask_reg & ~MH_INTERRUPT_MASK_AXI_WRITE_ERROR_MASK) | (axi_write_error << MH_INTERRUPT_MASK_AXI_WRITE_ERROR_SHIFT)
+#define MH_INTERRUPT_MASK_SET_MMU_PAGE_FAULT(mh_interrupt_mask_reg, mmu_page_fault) \
+ mh_interrupt_mask_reg = (mh_interrupt_mask_reg & ~MH_INTERRUPT_MASK_MMU_PAGE_FAULT_MASK) | (mmu_page_fault << MH_INTERRUPT_MASK_MMU_PAGE_FAULT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_interrupt_mask_t {
+ unsigned int axi_read_error : MH_INTERRUPT_MASK_AXI_READ_ERROR_SIZE;
+ unsigned int axi_write_error : MH_INTERRUPT_MASK_AXI_WRITE_ERROR_SIZE;
+ unsigned int mmu_page_fault : MH_INTERRUPT_MASK_MMU_PAGE_FAULT_SIZE;
+ unsigned int : 29;
+ } mh_interrupt_mask_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_interrupt_mask_t {
+ unsigned int : 29;
+ unsigned int mmu_page_fault : MH_INTERRUPT_MASK_MMU_PAGE_FAULT_SIZE;
+ unsigned int axi_write_error : MH_INTERRUPT_MASK_AXI_WRITE_ERROR_SIZE;
+ unsigned int axi_read_error : MH_INTERRUPT_MASK_AXI_READ_ERROR_SIZE;
+ } mh_interrupt_mask_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_interrupt_mask_t f;
+} mh_interrupt_mask_u;
+
+
+/*
+ * MH_INTERRUPT_STATUS struct
+ */
+
+#define MH_INTERRUPT_STATUS_AXI_READ_ERROR_SIZE 1
+#define MH_INTERRUPT_STATUS_AXI_WRITE_ERROR_SIZE 1
+#define MH_INTERRUPT_STATUS_MMU_PAGE_FAULT_SIZE 1
+
+#define MH_INTERRUPT_STATUS_AXI_READ_ERROR_SHIFT 0
+#define MH_INTERRUPT_STATUS_AXI_WRITE_ERROR_SHIFT 1
+#define MH_INTERRUPT_STATUS_MMU_PAGE_FAULT_SHIFT 2
+
+#define MH_INTERRUPT_STATUS_AXI_READ_ERROR_MASK 0x00000001
+#define MH_INTERRUPT_STATUS_AXI_WRITE_ERROR_MASK 0x00000002
+#define MH_INTERRUPT_STATUS_MMU_PAGE_FAULT_MASK 0x00000004
+
+#define MH_INTERRUPT_STATUS_MASK \
+ (MH_INTERRUPT_STATUS_AXI_READ_ERROR_MASK | \
+ MH_INTERRUPT_STATUS_AXI_WRITE_ERROR_MASK | \
+ MH_INTERRUPT_STATUS_MMU_PAGE_FAULT_MASK)
+
+#define MH_INTERRUPT_STATUS(axi_read_error, axi_write_error, mmu_page_fault) \
+ ((axi_read_error << MH_INTERRUPT_STATUS_AXI_READ_ERROR_SHIFT) | \
+ (axi_write_error << MH_INTERRUPT_STATUS_AXI_WRITE_ERROR_SHIFT) | \
+ (mmu_page_fault << MH_INTERRUPT_STATUS_MMU_PAGE_FAULT_SHIFT))
+
+#define MH_INTERRUPT_STATUS_GET_AXI_READ_ERROR(mh_interrupt_status) \
+ ((mh_interrupt_status & MH_INTERRUPT_STATUS_AXI_READ_ERROR_MASK) >> MH_INTERRUPT_STATUS_AXI_READ_ERROR_SHIFT)
+#define MH_INTERRUPT_STATUS_GET_AXI_WRITE_ERROR(mh_interrupt_status) \
+ ((mh_interrupt_status & MH_INTERRUPT_STATUS_AXI_WRITE_ERROR_MASK) >> MH_INTERRUPT_STATUS_AXI_WRITE_ERROR_SHIFT)
+#define MH_INTERRUPT_STATUS_GET_MMU_PAGE_FAULT(mh_interrupt_status) \
+ ((mh_interrupt_status & MH_INTERRUPT_STATUS_MMU_PAGE_FAULT_MASK) >> MH_INTERRUPT_STATUS_MMU_PAGE_FAULT_SHIFT)
+
+#define MH_INTERRUPT_STATUS_SET_AXI_READ_ERROR(mh_interrupt_status_reg, axi_read_error) \
+ mh_interrupt_status_reg = (mh_interrupt_status_reg & ~MH_INTERRUPT_STATUS_AXI_READ_ERROR_MASK) | (axi_read_error << MH_INTERRUPT_STATUS_AXI_READ_ERROR_SHIFT)
+#define MH_INTERRUPT_STATUS_SET_AXI_WRITE_ERROR(mh_interrupt_status_reg, axi_write_error) \
+ mh_interrupt_status_reg = (mh_interrupt_status_reg & ~MH_INTERRUPT_STATUS_AXI_WRITE_ERROR_MASK) | (axi_write_error << MH_INTERRUPT_STATUS_AXI_WRITE_ERROR_SHIFT)
+#define MH_INTERRUPT_STATUS_SET_MMU_PAGE_FAULT(mh_interrupt_status_reg, mmu_page_fault) \
+ mh_interrupt_status_reg = (mh_interrupt_status_reg & ~MH_INTERRUPT_STATUS_MMU_PAGE_FAULT_MASK) | (mmu_page_fault << MH_INTERRUPT_STATUS_MMU_PAGE_FAULT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_interrupt_status_t {
+ unsigned int axi_read_error : MH_INTERRUPT_STATUS_AXI_READ_ERROR_SIZE;
+ unsigned int axi_write_error : MH_INTERRUPT_STATUS_AXI_WRITE_ERROR_SIZE;
+ unsigned int mmu_page_fault : MH_INTERRUPT_STATUS_MMU_PAGE_FAULT_SIZE;
+ unsigned int : 29;
+ } mh_interrupt_status_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_interrupt_status_t {
+ unsigned int : 29;
+ unsigned int mmu_page_fault : MH_INTERRUPT_STATUS_MMU_PAGE_FAULT_SIZE;
+ unsigned int axi_write_error : MH_INTERRUPT_STATUS_AXI_WRITE_ERROR_SIZE;
+ unsigned int axi_read_error : MH_INTERRUPT_STATUS_AXI_READ_ERROR_SIZE;
+ } mh_interrupt_status_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_interrupt_status_t f;
+} mh_interrupt_status_u;
+
+
+/*
+ * MH_INTERRUPT_CLEAR struct
+ */
+
+#define MH_INTERRUPT_CLEAR_AXI_READ_ERROR_SIZE 1
+#define MH_INTERRUPT_CLEAR_AXI_WRITE_ERROR_SIZE 1
+#define MH_INTERRUPT_CLEAR_MMU_PAGE_FAULT_SIZE 1
+
+#define MH_INTERRUPT_CLEAR_AXI_READ_ERROR_SHIFT 0
+#define MH_INTERRUPT_CLEAR_AXI_WRITE_ERROR_SHIFT 1
+#define MH_INTERRUPT_CLEAR_MMU_PAGE_FAULT_SHIFT 2
+
+#define MH_INTERRUPT_CLEAR_AXI_READ_ERROR_MASK 0x00000001
+#define MH_INTERRUPT_CLEAR_AXI_WRITE_ERROR_MASK 0x00000002
+#define MH_INTERRUPT_CLEAR_MMU_PAGE_FAULT_MASK 0x00000004
+
+#define MH_INTERRUPT_CLEAR_MASK \
+ (MH_INTERRUPT_CLEAR_AXI_READ_ERROR_MASK | \
+ MH_INTERRUPT_CLEAR_AXI_WRITE_ERROR_MASK | \
+ MH_INTERRUPT_CLEAR_MMU_PAGE_FAULT_MASK)
+
+#define MH_INTERRUPT_CLEAR(axi_read_error, axi_write_error, mmu_page_fault) \
+ ((axi_read_error << MH_INTERRUPT_CLEAR_AXI_READ_ERROR_SHIFT) | \
+ (axi_write_error << MH_INTERRUPT_CLEAR_AXI_WRITE_ERROR_SHIFT) | \
+ (mmu_page_fault << MH_INTERRUPT_CLEAR_MMU_PAGE_FAULT_SHIFT))
+
+#define MH_INTERRUPT_CLEAR_GET_AXI_READ_ERROR(mh_interrupt_clear) \
+ ((mh_interrupt_clear & MH_INTERRUPT_CLEAR_AXI_READ_ERROR_MASK) >> MH_INTERRUPT_CLEAR_AXI_READ_ERROR_SHIFT)
+#define MH_INTERRUPT_CLEAR_GET_AXI_WRITE_ERROR(mh_interrupt_clear) \
+ ((mh_interrupt_clear & MH_INTERRUPT_CLEAR_AXI_WRITE_ERROR_MASK) >> MH_INTERRUPT_CLEAR_AXI_WRITE_ERROR_SHIFT)
+#define MH_INTERRUPT_CLEAR_GET_MMU_PAGE_FAULT(mh_interrupt_clear) \
+ ((mh_interrupt_clear & MH_INTERRUPT_CLEAR_MMU_PAGE_FAULT_MASK) >> MH_INTERRUPT_CLEAR_MMU_PAGE_FAULT_SHIFT)
+
+#define MH_INTERRUPT_CLEAR_SET_AXI_READ_ERROR(mh_interrupt_clear_reg, axi_read_error) \
+ mh_interrupt_clear_reg = (mh_interrupt_clear_reg & ~MH_INTERRUPT_CLEAR_AXI_READ_ERROR_MASK) | (axi_read_error << MH_INTERRUPT_CLEAR_AXI_READ_ERROR_SHIFT)
+#define MH_INTERRUPT_CLEAR_SET_AXI_WRITE_ERROR(mh_interrupt_clear_reg, axi_write_error) \
+ mh_interrupt_clear_reg = (mh_interrupt_clear_reg & ~MH_INTERRUPT_CLEAR_AXI_WRITE_ERROR_MASK) | (axi_write_error << MH_INTERRUPT_CLEAR_AXI_WRITE_ERROR_SHIFT)
+#define MH_INTERRUPT_CLEAR_SET_MMU_PAGE_FAULT(mh_interrupt_clear_reg, mmu_page_fault) \
+ mh_interrupt_clear_reg = (mh_interrupt_clear_reg & ~MH_INTERRUPT_CLEAR_MMU_PAGE_FAULT_MASK) | (mmu_page_fault << MH_INTERRUPT_CLEAR_MMU_PAGE_FAULT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_interrupt_clear_t {
+ unsigned int axi_read_error : MH_INTERRUPT_CLEAR_AXI_READ_ERROR_SIZE;
+ unsigned int axi_write_error : MH_INTERRUPT_CLEAR_AXI_WRITE_ERROR_SIZE;
+ unsigned int mmu_page_fault : MH_INTERRUPT_CLEAR_MMU_PAGE_FAULT_SIZE;
+ unsigned int : 29;
+ } mh_interrupt_clear_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_interrupt_clear_t {
+ unsigned int : 29;
+ unsigned int mmu_page_fault : MH_INTERRUPT_CLEAR_MMU_PAGE_FAULT_SIZE;
+ unsigned int axi_write_error : MH_INTERRUPT_CLEAR_AXI_WRITE_ERROR_SIZE;
+ unsigned int axi_read_error : MH_INTERRUPT_CLEAR_AXI_READ_ERROR_SIZE;
+ } mh_interrupt_clear_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_interrupt_clear_t f;
+} mh_interrupt_clear_u;
+
+
+/*
+ * MH_AXI_ERROR struct
+ */
+
+#define MH_AXI_ERROR_AXI_READ_ID_SIZE 3
+#define MH_AXI_ERROR_AXI_READ_ERROR_SIZE 1
+#define MH_AXI_ERROR_AXI_WRITE_ID_SIZE 3
+#define MH_AXI_ERROR_AXI_WRITE_ERROR_SIZE 1
+
+#define MH_AXI_ERROR_AXI_READ_ID_SHIFT 0
+#define MH_AXI_ERROR_AXI_READ_ERROR_SHIFT 3
+#define MH_AXI_ERROR_AXI_WRITE_ID_SHIFT 4
+#define MH_AXI_ERROR_AXI_WRITE_ERROR_SHIFT 7
+
+#define MH_AXI_ERROR_AXI_READ_ID_MASK 0x00000007
+#define MH_AXI_ERROR_AXI_READ_ERROR_MASK 0x00000008
+#define MH_AXI_ERROR_AXI_WRITE_ID_MASK 0x00000070
+#define MH_AXI_ERROR_AXI_WRITE_ERROR_MASK 0x00000080
+
+#define MH_AXI_ERROR_MASK \
+ (MH_AXI_ERROR_AXI_READ_ID_MASK | \
+ MH_AXI_ERROR_AXI_READ_ERROR_MASK | \
+ MH_AXI_ERROR_AXI_WRITE_ID_MASK | \
+ MH_AXI_ERROR_AXI_WRITE_ERROR_MASK)
+
+#define MH_AXI_ERROR(axi_read_id, axi_read_error, axi_write_id, axi_write_error) \
+ ((axi_read_id << MH_AXI_ERROR_AXI_READ_ID_SHIFT) | \
+ (axi_read_error << MH_AXI_ERROR_AXI_READ_ERROR_SHIFT) | \
+ (axi_write_id << MH_AXI_ERROR_AXI_WRITE_ID_SHIFT) | \
+ (axi_write_error << MH_AXI_ERROR_AXI_WRITE_ERROR_SHIFT))
+
+#define MH_AXI_ERROR_GET_AXI_READ_ID(mh_axi_error) \
+ ((mh_axi_error & MH_AXI_ERROR_AXI_READ_ID_MASK) >> MH_AXI_ERROR_AXI_READ_ID_SHIFT)
+#define MH_AXI_ERROR_GET_AXI_READ_ERROR(mh_axi_error) \
+ ((mh_axi_error & MH_AXI_ERROR_AXI_READ_ERROR_MASK) >> MH_AXI_ERROR_AXI_READ_ERROR_SHIFT)
+#define MH_AXI_ERROR_GET_AXI_WRITE_ID(mh_axi_error) \
+ ((mh_axi_error & MH_AXI_ERROR_AXI_WRITE_ID_MASK) >> MH_AXI_ERROR_AXI_WRITE_ID_SHIFT)
+#define MH_AXI_ERROR_GET_AXI_WRITE_ERROR(mh_axi_error) \
+ ((mh_axi_error & MH_AXI_ERROR_AXI_WRITE_ERROR_MASK) >> MH_AXI_ERROR_AXI_WRITE_ERROR_SHIFT)
+
+#define MH_AXI_ERROR_SET_AXI_READ_ID(mh_axi_error_reg, axi_read_id) \
+ mh_axi_error_reg = (mh_axi_error_reg & ~MH_AXI_ERROR_AXI_READ_ID_MASK) | (axi_read_id << MH_AXI_ERROR_AXI_READ_ID_SHIFT)
+#define MH_AXI_ERROR_SET_AXI_READ_ERROR(mh_axi_error_reg, axi_read_error) \
+ mh_axi_error_reg = (mh_axi_error_reg & ~MH_AXI_ERROR_AXI_READ_ERROR_MASK) | (axi_read_error << MH_AXI_ERROR_AXI_READ_ERROR_SHIFT)
+#define MH_AXI_ERROR_SET_AXI_WRITE_ID(mh_axi_error_reg, axi_write_id) \
+ mh_axi_error_reg = (mh_axi_error_reg & ~MH_AXI_ERROR_AXI_WRITE_ID_MASK) | (axi_write_id << MH_AXI_ERROR_AXI_WRITE_ID_SHIFT)
+#define MH_AXI_ERROR_SET_AXI_WRITE_ERROR(mh_axi_error_reg, axi_write_error) \
+ mh_axi_error_reg = (mh_axi_error_reg & ~MH_AXI_ERROR_AXI_WRITE_ERROR_MASK) | (axi_write_error << MH_AXI_ERROR_AXI_WRITE_ERROR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_axi_error_t {
+ unsigned int axi_read_id : MH_AXI_ERROR_AXI_READ_ID_SIZE;
+ unsigned int axi_read_error : MH_AXI_ERROR_AXI_READ_ERROR_SIZE;
+ unsigned int axi_write_id : MH_AXI_ERROR_AXI_WRITE_ID_SIZE;
+ unsigned int axi_write_error : MH_AXI_ERROR_AXI_WRITE_ERROR_SIZE;
+ unsigned int : 24;
+ } mh_axi_error_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_axi_error_t {
+ unsigned int : 24;
+ unsigned int axi_write_error : MH_AXI_ERROR_AXI_WRITE_ERROR_SIZE;
+ unsigned int axi_write_id : MH_AXI_ERROR_AXI_WRITE_ID_SIZE;
+ unsigned int axi_read_error : MH_AXI_ERROR_AXI_READ_ERROR_SIZE;
+ unsigned int axi_read_id : MH_AXI_ERROR_AXI_READ_ID_SIZE;
+ } mh_axi_error_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_axi_error_t f;
+} mh_axi_error_u;
+
+
+/*
+ * MH_PERFCOUNTER0_SELECT struct
+ */
+
+#define MH_PERFCOUNTER0_SELECT_PERF_SEL_SIZE 8
+
+#define MH_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT 0
+
+#define MH_PERFCOUNTER0_SELECT_PERF_SEL_MASK 0x000000ff
+
+#define MH_PERFCOUNTER0_SELECT_MASK \
+ (MH_PERFCOUNTER0_SELECT_PERF_SEL_MASK)
+
+#define MH_PERFCOUNTER0_SELECT(perf_sel) \
+ ((perf_sel << MH_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT))
+
+#define MH_PERFCOUNTER0_SELECT_GET_PERF_SEL(mh_perfcounter0_select) \
+ ((mh_perfcounter0_select & MH_PERFCOUNTER0_SELECT_PERF_SEL_MASK) >> MH_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT)
+
+#define MH_PERFCOUNTER0_SELECT_SET_PERF_SEL(mh_perfcounter0_select_reg, perf_sel) \
+ mh_perfcounter0_select_reg = (mh_perfcounter0_select_reg & ~MH_PERFCOUNTER0_SELECT_PERF_SEL_MASK) | (perf_sel << MH_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_perfcounter0_select_t {
+ unsigned int perf_sel : MH_PERFCOUNTER0_SELECT_PERF_SEL_SIZE;
+ unsigned int : 24;
+ } mh_perfcounter0_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_perfcounter0_select_t {
+ unsigned int : 24;
+ unsigned int perf_sel : MH_PERFCOUNTER0_SELECT_PERF_SEL_SIZE;
+ } mh_perfcounter0_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_perfcounter0_select_t f;
+} mh_perfcounter0_select_u;
+
+
+/*
+ * MH_PERFCOUNTER1_SELECT struct
+ */
+
+#define MH_PERFCOUNTER1_SELECT_PERF_SEL_SIZE 8
+
+#define MH_PERFCOUNTER1_SELECT_PERF_SEL_SHIFT 0
+
+#define MH_PERFCOUNTER1_SELECT_PERF_SEL_MASK 0x000000ff
+
+#define MH_PERFCOUNTER1_SELECT_MASK \
+ (MH_PERFCOUNTER1_SELECT_PERF_SEL_MASK)
+
+#define MH_PERFCOUNTER1_SELECT(perf_sel) \
+ ((perf_sel << MH_PERFCOUNTER1_SELECT_PERF_SEL_SHIFT))
+
+#define MH_PERFCOUNTER1_SELECT_GET_PERF_SEL(mh_perfcounter1_select) \
+ ((mh_perfcounter1_select & MH_PERFCOUNTER1_SELECT_PERF_SEL_MASK) >> MH_PERFCOUNTER1_SELECT_PERF_SEL_SHIFT)
+
+#define MH_PERFCOUNTER1_SELECT_SET_PERF_SEL(mh_perfcounter1_select_reg, perf_sel) \
+ mh_perfcounter1_select_reg = (mh_perfcounter1_select_reg & ~MH_PERFCOUNTER1_SELECT_PERF_SEL_MASK) | (perf_sel << MH_PERFCOUNTER1_SELECT_PERF_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_perfcounter1_select_t {
+ unsigned int perf_sel : MH_PERFCOUNTER1_SELECT_PERF_SEL_SIZE;
+ unsigned int : 24;
+ } mh_perfcounter1_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_perfcounter1_select_t {
+ unsigned int : 24;
+ unsigned int perf_sel : MH_PERFCOUNTER1_SELECT_PERF_SEL_SIZE;
+ } mh_perfcounter1_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_perfcounter1_select_t f;
+} mh_perfcounter1_select_u;
+
+
+/*
+ * MH_PERFCOUNTER0_CONFIG struct
+ */
+
+#define MH_PERFCOUNTER0_CONFIG_N_VALUE_SIZE 8
+
+#define MH_PERFCOUNTER0_CONFIG_N_VALUE_SHIFT 0
+
+#define MH_PERFCOUNTER0_CONFIG_N_VALUE_MASK 0x000000ff
+
+#define MH_PERFCOUNTER0_CONFIG_MASK \
+ (MH_PERFCOUNTER0_CONFIG_N_VALUE_MASK)
+
+#define MH_PERFCOUNTER0_CONFIG(n_value) \
+ ((n_value << MH_PERFCOUNTER0_CONFIG_N_VALUE_SHIFT))
+
+#define MH_PERFCOUNTER0_CONFIG_GET_N_VALUE(mh_perfcounter0_config) \
+ ((mh_perfcounter0_config & MH_PERFCOUNTER0_CONFIG_N_VALUE_MASK) >> MH_PERFCOUNTER0_CONFIG_N_VALUE_SHIFT)
+
+#define MH_PERFCOUNTER0_CONFIG_SET_N_VALUE(mh_perfcounter0_config_reg, n_value) \
+ mh_perfcounter0_config_reg = (mh_perfcounter0_config_reg & ~MH_PERFCOUNTER0_CONFIG_N_VALUE_MASK) | (n_value << MH_PERFCOUNTER0_CONFIG_N_VALUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_perfcounter0_config_t {
+ unsigned int n_value : MH_PERFCOUNTER0_CONFIG_N_VALUE_SIZE;
+ unsigned int : 24;
+ } mh_perfcounter0_config_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_perfcounter0_config_t {
+ unsigned int : 24;
+ unsigned int n_value : MH_PERFCOUNTER0_CONFIG_N_VALUE_SIZE;
+ } mh_perfcounter0_config_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_perfcounter0_config_t f;
+} mh_perfcounter0_config_u;
+
+
+/*
+ * MH_PERFCOUNTER1_CONFIG struct
+ */
+
+#define MH_PERFCOUNTER1_CONFIG_N_VALUE_SIZE 8
+
+#define MH_PERFCOUNTER1_CONFIG_N_VALUE_SHIFT 0
+
+#define MH_PERFCOUNTER1_CONFIG_N_VALUE_MASK 0x000000ff
+
+#define MH_PERFCOUNTER1_CONFIG_MASK \
+ (MH_PERFCOUNTER1_CONFIG_N_VALUE_MASK)
+
+#define MH_PERFCOUNTER1_CONFIG(n_value) \
+ ((n_value << MH_PERFCOUNTER1_CONFIG_N_VALUE_SHIFT))
+
+#define MH_PERFCOUNTER1_CONFIG_GET_N_VALUE(mh_perfcounter1_config) \
+ ((mh_perfcounter1_config & MH_PERFCOUNTER1_CONFIG_N_VALUE_MASK) >> MH_PERFCOUNTER1_CONFIG_N_VALUE_SHIFT)
+
+#define MH_PERFCOUNTER1_CONFIG_SET_N_VALUE(mh_perfcounter1_config_reg, n_value) \
+ mh_perfcounter1_config_reg = (mh_perfcounter1_config_reg & ~MH_PERFCOUNTER1_CONFIG_N_VALUE_MASK) | (n_value << MH_PERFCOUNTER1_CONFIG_N_VALUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_perfcounter1_config_t {
+ unsigned int n_value : MH_PERFCOUNTER1_CONFIG_N_VALUE_SIZE;
+ unsigned int : 24;
+ } mh_perfcounter1_config_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_perfcounter1_config_t {
+ unsigned int : 24;
+ unsigned int n_value : MH_PERFCOUNTER1_CONFIG_N_VALUE_SIZE;
+ } mh_perfcounter1_config_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_perfcounter1_config_t f;
+} mh_perfcounter1_config_u;
+
+
+/*
+ * MH_PERFCOUNTER0_LOW struct
+ */
+
+#define MH_PERFCOUNTER0_LOW_PERF_COUNTER_LOW_SIZE 32
+
+#define MH_PERFCOUNTER0_LOW_PERF_COUNTER_LOW_SHIFT 0
+
+#define MH_PERFCOUNTER0_LOW_PERF_COUNTER_LOW_MASK 0xffffffff
+
+#define MH_PERFCOUNTER0_LOW_MASK \
+ (MH_PERFCOUNTER0_LOW_PERF_COUNTER_LOW_MASK)
+
+#define MH_PERFCOUNTER0_LOW(perf_counter_low) \
+ ((perf_counter_low << MH_PERFCOUNTER0_LOW_PERF_COUNTER_LOW_SHIFT))
+
+#define MH_PERFCOUNTER0_LOW_GET_PERF_COUNTER_LOW(mh_perfcounter0_low) \
+ ((mh_perfcounter0_low & MH_PERFCOUNTER0_LOW_PERF_COUNTER_LOW_MASK) >> MH_PERFCOUNTER0_LOW_PERF_COUNTER_LOW_SHIFT)
+
+#define MH_PERFCOUNTER0_LOW_SET_PERF_COUNTER_LOW(mh_perfcounter0_low_reg, perf_counter_low) \
+ mh_perfcounter0_low_reg = (mh_perfcounter0_low_reg & ~MH_PERFCOUNTER0_LOW_PERF_COUNTER_LOW_MASK) | (perf_counter_low << MH_PERFCOUNTER0_LOW_PERF_COUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_perfcounter0_low_t {
+ unsigned int perf_counter_low : MH_PERFCOUNTER0_LOW_PERF_COUNTER_LOW_SIZE;
+ } mh_perfcounter0_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_perfcounter0_low_t {
+ unsigned int perf_counter_low : MH_PERFCOUNTER0_LOW_PERF_COUNTER_LOW_SIZE;
+ } mh_perfcounter0_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_perfcounter0_low_t f;
+} mh_perfcounter0_low_u;
+
+
+/*
+ * MH_PERFCOUNTER1_LOW struct
+ */
+
+#define MH_PERFCOUNTER1_LOW_PERF_COUNTER_LOW_SIZE 32
+
+#define MH_PERFCOUNTER1_LOW_PERF_COUNTER_LOW_SHIFT 0
+
+#define MH_PERFCOUNTER1_LOW_PERF_COUNTER_LOW_MASK 0xffffffff
+
+#define MH_PERFCOUNTER1_LOW_MASK \
+ (MH_PERFCOUNTER1_LOW_PERF_COUNTER_LOW_MASK)
+
+#define MH_PERFCOUNTER1_LOW(perf_counter_low) \
+ ((perf_counter_low << MH_PERFCOUNTER1_LOW_PERF_COUNTER_LOW_SHIFT))
+
+#define MH_PERFCOUNTER1_LOW_GET_PERF_COUNTER_LOW(mh_perfcounter1_low) \
+ ((mh_perfcounter1_low & MH_PERFCOUNTER1_LOW_PERF_COUNTER_LOW_MASK) >> MH_PERFCOUNTER1_LOW_PERF_COUNTER_LOW_SHIFT)
+
+#define MH_PERFCOUNTER1_LOW_SET_PERF_COUNTER_LOW(mh_perfcounter1_low_reg, perf_counter_low) \
+ mh_perfcounter1_low_reg = (mh_perfcounter1_low_reg & ~MH_PERFCOUNTER1_LOW_PERF_COUNTER_LOW_MASK) | (perf_counter_low << MH_PERFCOUNTER1_LOW_PERF_COUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_perfcounter1_low_t {
+ unsigned int perf_counter_low : MH_PERFCOUNTER1_LOW_PERF_COUNTER_LOW_SIZE;
+ } mh_perfcounter1_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_perfcounter1_low_t {
+ unsigned int perf_counter_low : MH_PERFCOUNTER1_LOW_PERF_COUNTER_LOW_SIZE;
+ } mh_perfcounter1_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_perfcounter1_low_t f;
+} mh_perfcounter1_low_u;
+
+
+/*
+ * MH_PERFCOUNTER0_HI struct
+ */
+
+#define MH_PERFCOUNTER0_HI_PERF_COUNTER_HI_SIZE 16
+
+#define MH_PERFCOUNTER0_HI_PERF_COUNTER_HI_SHIFT 0
+
+#define MH_PERFCOUNTER0_HI_PERF_COUNTER_HI_MASK 0x0000ffff
+
+#define MH_PERFCOUNTER0_HI_MASK \
+ (MH_PERFCOUNTER0_HI_PERF_COUNTER_HI_MASK)
+
+#define MH_PERFCOUNTER0_HI(perf_counter_hi) \
+ ((perf_counter_hi << MH_PERFCOUNTER0_HI_PERF_COUNTER_HI_SHIFT))
+
+#define MH_PERFCOUNTER0_HI_GET_PERF_COUNTER_HI(mh_perfcounter0_hi) \
+ ((mh_perfcounter0_hi & MH_PERFCOUNTER0_HI_PERF_COUNTER_HI_MASK) >> MH_PERFCOUNTER0_HI_PERF_COUNTER_HI_SHIFT)
+
+#define MH_PERFCOUNTER0_HI_SET_PERF_COUNTER_HI(mh_perfcounter0_hi_reg, perf_counter_hi) \
+ mh_perfcounter0_hi_reg = (mh_perfcounter0_hi_reg & ~MH_PERFCOUNTER0_HI_PERF_COUNTER_HI_MASK) | (perf_counter_hi << MH_PERFCOUNTER0_HI_PERF_COUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_perfcounter0_hi_t {
+ unsigned int perf_counter_hi : MH_PERFCOUNTER0_HI_PERF_COUNTER_HI_SIZE;
+ unsigned int : 16;
+ } mh_perfcounter0_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_perfcounter0_hi_t {
+ unsigned int : 16;
+ unsigned int perf_counter_hi : MH_PERFCOUNTER0_HI_PERF_COUNTER_HI_SIZE;
+ } mh_perfcounter0_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_perfcounter0_hi_t f;
+} mh_perfcounter0_hi_u;
+
+
+/*
+ * MH_PERFCOUNTER1_HI struct
+ */
+
+#define MH_PERFCOUNTER1_HI_PERF_COUNTER_HI_SIZE 16
+
+#define MH_PERFCOUNTER1_HI_PERF_COUNTER_HI_SHIFT 0
+
+#define MH_PERFCOUNTER1_HI_PERF_COUNTER_HI_MASK 0x0000ffff
+
+#define MH_PERFCOUNTER1_HI_MASK \
+ (MH_PERFCOUNTER1_HI_PERF_COUNTER_HI_MASK)
+
+#define MH_PERFCOUNTER1_HI(perf_counter_hi) \
+ ((perf_counter_hi << MH_PERFCOUNTER1_HI_PERF_COUNTER_HI_SHIFT))
+
+#define MH_PERFCOUNTER1_HI_GET_PERF_COUNTER_HI(mh_perfcounter1_hi) \
+ ((mh_perfcounter1_hi & MH_PERFCOUNTER1_HI_PERF_COUNTER_HI_MASK) >> MH_PERFCOUNTER1_HI_PERF_COUNTER_HI_SHIFT)
+
+#define MH_PERFCOUNTER1_HI_SET_PERF_COUNTER_HI(mh_perfcounter1_hi_reg, perf_counter_hi) \
+ mh_perfcounter1_hi_reg = (mh_perfcounter1_hi_reg & ~MH_PERFCOUNTER1_HI_PERF_COUNTER_HI_MASK) | (perf_counter_hi << MH_PERFCOUNTER1_HI_PERF_COUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_perfcounter1_hi_t {
+ unsigned int perf_counter_hi : MH_PERFCOUNTER1_HI_PERF_COUNTER_HI_SIZE;
+ unsigned int : 16;
+ } mh_perfcounter1_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_perfcounter1_hi_t {
+ unsigned int : 16;
+ unsigned int perf_counter_hi : MH_PERFCOUNTER1_HI_PERF_COUNTER_HI_SIZE;
+ } mh_perfcounter1_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_perfcounter1_hi_t f;
+} mh_perfcounter1_hi_u;
+
+
+/*
+ * MH_DEBUG_CTRL struct
+ */
+
+#define MH_DEBUG_CTRL_INDEX_SIZE 6
+
+#define MH_DEBUG_CTRL_INDEX_SHIFT 0
+
+#define MH_DEBUG_CTRL_INDEX_MASK 0x0000003f
+
+#define MH_DEBUG_CTRL_MASK \
+ (MH_DEBUG_CTRL_INDEX_MASK)
+
+#define MH_DEBUG_CTRL(index) \
+ ((index << MH_DEBUG_CTRL_INDEX_SHIFT))
+
+#define MH_DEBUG_CTRL_GET_INDEX(mh_debug_ctrl) \
+ ((mh_debug_ctrl & MH_DEBUG_CTRL_INDEX_MASK) >> MH_DEBUG_CTRL_INDEX_SHIFT)
+
+#define MH_DEBUG_CTRL_SET_INDEX(mh_debug_ctrl_reg, index) \
+ mh_debug_ctrl_reg = (mh_debug_ctrl_reg & ~MH_DEBUG_CTRL_INDEX_MASK) | (index << MH_DEBUG_CTRL_INDEX_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_ctrl_t {
+ unsigned int index : MH_DEBUG_CTRL_INDEX_SIZE;
+ unsigned int : 26;
+ } mh_debug_ctrl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_ctrl_t {
+ unsigned int : 26;
+ unsigned int index : MH_DEBUG_CTRL_INDEX_SIZE;
+ } mh_debug_ctrl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_ctrl_t f;
+} mh_debug_ctrl_u;
+
+
+/*
+ * MH_DEBUG_DATA struct
+ */
+
+#define MH_DEBUG_DATA_DATA_SIZE 32
+
+#define MH_DEBUG_DATA_DATA_SHIFT 0
+
+#define MH_DEBUG_DATA_DATA_MASK 0xffffffff
+
+#define MH_DEBUG_DATA_MASK \
+ (MH_DEBUG_DATA_DATA_MASK)
+
+#define MH_DEBUG_DATA(data) \
+ ((data << MH_DEBUG_DATA_DATA_SHIFT))
+
+#define MH_DEBUG_DATA_GET_DATA(mh_debug_data) \
+ ((mh_debug_data & MH_DEBUG_DATA_DATA_MASK) >> MH_DEBUG_DATA_DATA_SHIFT)
+
+#define MH_DEBUG_DATA_SET_DATA(mh_debug_data_reg, data) \
+ mh_debug_data_reg = (mh_debug_data_reg & ~MH_DEBUG_DATA_DATA_MASK) | (data << MH_DEBUG_DATA_DATA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_data_t {
+ unsigned int data : MH_DEBUG_DATA_DATA_SIZE;
+ } mh_debug_data_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_data_t {
+ unsigned int data : MH_DEBUG_DATA_DATA_SIZE;
+ } mh_debug_data_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_data_t f;
+} mh_debug_data_u;
+
+
+/*
+ * MH_DEBUG_REG00 struct
+ */
+
+#define MH_DEBUG_REG00_MH_BUSY_SIZE 1
+#define MH_DEBUG_REG00_TRANS_OUTSTANDING_SIZE 1
+#define MH_DEBUG_REG00_CP_REQUEST_SIZE 1
+#define MH_DEBUG_REG00_VGT_REQUEST_SIZE 1
+#define MH_DEBUG_REG00_TC_REQUEST_SIZE 1
+#define MH_DEBUG_REG00_TC_CAM_EMPTY_SIZE 1
+#define MH_DEBUG_REG00_TC_CAM_FULL_SIZE 1
+#define MH_DEBUG_REG00_TCD_EMPTY_SIZE 1
+#define MH_DEBUG_REG00_TCD_FULL_SIZE 1
+#define MH_DEBUG_REG00_RB_REQUEST_SIZE 1
+#define MH_DEBUG_REG00_MH_CLK_EN_STATE_SIZE 1
+#define MH_DEBUG_REG00_ARQ_EMPTY_SIZE 1
+#define MH_DEBUG_REG00_ARQ_FULL_SIZE 1
+#define MH_DEBUG_REG00_WDB_EMPTY_SIZE 1
+#define MH_DEBUG_REG00_WDB_FULL_SIZE 1
+#define MH_DEBUG_REG00_AXI_AVALID_SIZE 1
+#define MH_DEBUG_REG00_AXI_AREADY_SIZE 1
+#define MH_DEBUG_REG00_AXI_ARVALID_SIZE 1
+#define MH_DEBUG_REG00_AXI_ARREADY_SIZE 1
+#define MH_DEBUG_REG00_AXI_WVALID_SIZE 1
+#define MH_DEBUG_REG00_AXI_WREADY_SIZE 1
+#define MH_DEBUG_REG00_AXI_RVALID_SIZE 1
+#define MH_DEBUG_REG00_AXI_RREADY_SIZE 1
+#define MH_DEBUG_REG00_AXI_BVALID_SIZE 1
+#define MH_DEBUG_REG00_AXI_BREADY_SIZE 1
+#define MH_DEBUG_REG00_AXI_HALT_REQ_SIZE 1
+#define MH_DEBUG_REG00_AXI_HALT_ACK_SIZE 1
+
+#define MH_DEBUG_REG00_MH_BUSY_SHIFT 0
+#define MH_DEBUG_REG00_TRANS_OUTSTANDING_SHIFT 1
+#define MH_DEBUG_REG00_CP_REQUEST_SHIFT 2
+#define MH_DEBUG_REG00_VGT_REQUEST_SHIFT 3
+#define MH_DEBUG_REG00_TC_REQUEST_SHIFT 4
+#define MH_DEBUG_REG00_TC_CAM_EMPTY_SHIFT 5
+#define MH_DEBUG_REG00_TC_CAM_FULL_SHIFT 6
+#define MH_DEBUG_REG00_TCD_EMPTY_SHIFT 7
+#define MH_DEBUG_REG00_TCD_FULL_SHIFT 8
+#define MH_DEBUG_REG00_RB_REQUEST_SHIFT 9
+#define MH_DEBUG_REG00_MH_CLK_EN_STATE_SHIFT 10
+#define MH_DEBUG_REG00_ARQ_EMPTY_SHIFT 11
+#define MH_DEBUG_REG00_ARQ_FULL_SHIFT 12
+#define MH_DEBUG_REG00_WDB_EMPTY_SHIFT 13
+#define MH_DEBUG_REG00_WDB_FULL_SHIFT 14
+#define MH_DEBUG_REG00_AXI_AVALID_SHIFT 15
+#define MH_DEBUG_REG00_AXI_AREADY_SHIFT 16
+#define MH_DEBUG_REG00_AXI_ARVALID_SHIFT 17
+#define MH_DEBUG_REG00_AXI_ARREADY_SHIFT 18
+#define MH_DEBUG_REG00_AXI_WVALID_SHIFT 19
+#define MH_DEBUG_REG00_AXI_WREADY_SHIFT 20
+#define MH_DEBUG_REG00_AXI_RVALID_SHIFT 21
+#define MH_DEBUG_REG00_AXI_RREADY_SHIFT 22
+#define MH_DEBUG_REG00_AXI_BVALID_SHIFT 23
+#define MH_DEBUG_REG00_AXI_BREADY_SHIFT 24
+#define MH_DEBUG_REG00_AXI_HALT_REQ_SHIFT 25
+#define MH_DEBUG_REG00_AXI_HALT_ACK_SHIFT 26
+
+#define MH_DEBUG_REG00_MH_BUSY_MASK 0x00000001
+#define MH_DEBUG_REG00_TRANS_OUTSTANDING_MASK 0x00000002
+#define MH_DEBUG_REG00_CP_REQUEST_MASK 0x00000004
+#define MH_DEBUG_REG00_VGT_REQUEST_MASK 0x00000008
+#define MH_DEBUG_REG00_TC_REQUEST_MASK 0x00000010
+#define MH_DEBUG_REG00_TC_CAM_EMPTY_MASK 0x00000020
+#define MH_DEBUG_REG00_TC_CAM_FULL_MASK 0x00000040
+#define MH_DEBUG_REG00_TCD_EMPTY_MASK 0x00000080
+#define MH_DEBUG_REG00_TCD_FULL_MASK 0x00000100
+#define MH_DEBUG_REG00_RB_REQUEST_MASK 0x00000200
+#define MH_DEBUG_REG00_MH_CLK_EN_STATE_MASK 0x00000400
+#define MH_DEBUG_REG00_ARQ_EMPTY_MASK 0x00000800
+#define MH_DEBUG_REG00_ARQ_FULL_MASK 0x00001000
+#define MH_DEBUG_REG00_WDB_EMPTY_MASK 0x00002000
+#define MH_DEBUG_REG00_WDB_FULL_MASK 0x00004000
+#define MH_DEBUG_REG00_AXI_AVALID_MASK 0x00008000
+#define MH_DEBUG_REG00_AXI_AREADY_MASK 0x00010000
+#define MH_DEBUG_REG00_AXI_ARVALID_MASK 0x00020000
+#define MH_DEBUG_REG00_AXI_ARREADY_MASK 0x00040000
+#define MH_DEBUG_REG00_AXI_WVALID_MASK 0x00080000
+#define MH_DEBUG_REG00_AXI_WREADY_MASK 0x00100000
+#define MH_DEBUG_REG00_AXI_RVALID_MASK 0x00200000
+#define MH_DEBUG_REG00_AXI_RREADY_MASK 0x00400000
+#define MH_DEBUG_REG00_AXI_BVALID_MASK 0x00800000
+#define MH_DEBUG_REG00_AXI_BREADY_MASK 0x01000000
+#define MH_DEBUG_REG00_AXI_HALT_REQ_MASK 0x02000000
+#define MH_DEBUG_REG00_AXI_HALT_ACK_MASK 0x04000000
+
+#define MH_DEBUG_REG00_MASK \
+ (MH_DEBUG_REG00_MH_BUSY_MASK | \
+ MH_DEBUG_REG00_TRANS_OUTSTANDING_MASK | \
+ MH_DEBUG_REG00_CP_REQUEST_MASK | \
+ MH_DEBUG_REG00_VGT_REQUEST_MASK | \
+ MH_DEBUG_REG00_TC_REQUEST_MASK | \
+ MH_DEBUG_REG00_TC_CAM_EMPTY_MASK | \
+ MH_DEBUG_REG00_TC_CAM_FULL_MASK | \
+ MH_DEBUG_REG00_TCD_EMPTY_MASK | \
+ MH_DEBUG_REG00_TCD_FULL_MASK | \
+ MH_DEBUG_REG00_RB_REQUEST_MASK | \
+ MH_DEBUG_REG00_MH_CLK_EN_STATE_MASK | \
+ MH_DEBUG_REG00_ARQ_EMPTY_MASK | \
+ MH_DEBUG_REG00_ARQ_FULL_MASK | \
+ MH_DEBUG_REG00_WDB_EMPTY_MASK | \
+ MH_DEBUG_REG00_WDB_FULL_MASK | \
+ MH_DEBUG_REG00_AXI_AVALID_MASK | \
+ MH_DEBUG_REG00_AXI_AREADY_MASK | \
+ MH_DEBUG_REG00_AXI_ARVALID_MASK | \
+ MH_DEBUG_REG00_AXI_ARREADY_MASK | \
+ MH_DEBUG_REG00_AXI_WVALID_MASK | \
+ MH_DEBUG_REG00_AXI_WREADY_MASK | \
+ MH_DEBUG_REG00_AXI_RVALID_MASK | \
+ MH_DEBUG_REG00_AXI_RREADY_MASK | \
+ MH_DEBUG_REG00_AXI_BVALID_MASK | \
+ MH_DEBUG_REG00_AXI_BREADY_MASK | \
+ MH_DEBUG_REG00_AXI_HALT_REQ_MASK | \
+ MH_DEBUG_REG00_AXI_HALT_ACK_MASK)
+
+#define MH_DEBUG_REG00(mh_busy, trans_outstanding, cp_request, vgt_request, tc_request, tc_cam_empty, tc_cam_full, tcd_empty, tcd_full, rb_request, mh_clk_en_state, arq_empty, arq_full, wdb_empty, wdb_full, axi_avalid, axi_aready, axi_arvalid, axi_arready, axi_wvalid, axi_wready, axi_rvalid, axi_rready, axi_bvalid, axi_bready, axi_halt_req, axi_halt_ack) \
+ ((mh_busy << MH_DEBUG_REG00_MH_BUSY_SHIFT) | \
+ (trans_outstanding << MH_DEBUG_REG00_TRANS_OUTSTANDING_SHIFT) | \
+ (cp_request << MH_DEBUG_REG00_CP_REQUEST_SHIFT) | \
+ (vgt_request << MH_DEBUG_REG00_VGT_REQUEST_SHIFT) | \
+ (tc_request << MH_DEBUG_REG00_TC_REQUEST_SHIFT) | \
+ (tc_cam_empty << MH_DEBUG_REG00_TC_CAM_EMPTY_SHIFT) | \
+ (tc_cam_full << MH_DEBUG_REG00_TC_CAM_FULL_SHIFT) | \
+ (tcd_empty << MH_DEBUG_REG00_TCD_EMPTY_SHIFT) | \
+ (tcd_full << MH_DEBUG_REG00_TCD_FULL_SHIFT) | \
+ (rb_request << MH_DEBUG_REG00_RB_REQUEST_SHIFT) | \
+ (mh_clk_en_state << MH_DEBUG_REG00_MH_CLK_EN_STATE_SHIFT) | \
+ (arq_empty << MH_DEBUG_REG00_ARQ_EMPTY_SHIFT) | \
+ (arq_full << MH_DEBUG_REG00_ARQ_FULL_SHIFT) | \
+ (wdb_empty << MH_DEBUG_REG00_WDB_EMPTY_SHIFT) | \
+ (wdb_full << MH_DEBUG_REG00_WDB_FULL_SHIFT) | \
+ (axi_avalid << MH_DEBUG_REG00_AXI_AVALID_SHIFT) | \
+ (axi_aready << MH_DEBUG_REG00_AXI_AREADY_SHIFT) | \
+ (axi_arvalid << MH_DEBUG_REG00_AXI_ARVALID_SHIFT) | \
+ (axi_arready << MH_DEBUG_REG00_AXI_ARREADY_SHIFT) | \
+ (axi_wvalid << MH_DEBUG_REG00_AXI_WVALID_SHIFT) | \
+ (axi_wready << MH_DEBUG_REG00_AXI_WREADY_SHIFT) | \
+ (axi_rvalid << MH_DEBUG_REG00_AXI_RVALID_SHIFT) | \
+ (axi_rready << MH_DEBUG_REG00_AXI_RREADY_SHIFT) | \
+ (axi_bvalid << MH_DEBUG_REG00_AXI_BVALID_SHIFT) | \
+ (axi_bready << MH_DEBUG_REG00_AXI_BREADY_SHIFT) | \
+ (axi_halt_req << MH_DEBUG_REG00_AXI_HALT_REQ_SHIFT) | \
+ (axi_halt_ack << MH_DEBUG_REG00_AXI_HALT_ACK_SHIFT))
+
+#define MH_DEBUG_REG00_GET_MH_BUSY(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_MH_BUSY_MASK) >> MH_DEBUG_REG00_MH_BUSY_SHIFT)
+#define MH_DEBUG_REG00_GET_TRANS_OUTSTANDING(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_TRANS_OUTSTANDING_MASK) >> MH_DEBUG_REG00_TRANS_OUTSTANDING_SHIFT)
+#define MH_DEBUG_REG00_GET_CP_REQUEST(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_CP_REQUEST_MASK) >> MH_DEBUG_REG00_CP_REQUEST_SHIFT)
+#define MH_DEBUG_REG00_GET_VGT_REQUEST(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_VGT_REQUEST_MASK) >> MH_DEBUG_REG00_VGT_REQUEST_SHIFT)
+#define MH_DEBUG_REG00_GET_TC_REQUEST(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_TC_REQUEST_MASK) >> MH_DEBUG_REG00_TC_REQUEST_SHIFT)
+#define MH_DEBUG_REG00_GET_TC_CAM_EMPTY(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_TC_CAM_EMPTY_MASK) >> MH_DEBUG_REG00_TC_CAM_EMPTY_SHIFT)
+#define MH_DEBUG_REG00_GET_TC_CAM_FULL(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_TC_CAM_FULL_MASK) >> MH_DEBUG_REG00_TC_CAM_FULL_SHIFT)
+#define MH_DEBUG_REG00_GET_TCD_EMPTY(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_TCD_EMPTY_MASK) >> MH_DEBUG_REG00_TCD_EMPTY_SHIFT)
+#define MH_DEBUG_REG00_GET_TCD_FULL(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_TCD_FULL_MASK) >> MH_DEBUG_REG00_TCD_FULL_SHIFT)
+#define MH_DEBUG_REG00_GET_RB_REQUEST(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_RB_REQUEST_MASK) >> MH_DEBUG_REG00_RB_REQUEST_SHIFT)
+#define MH_DEBUG_REG00_GET_MH_CLK_EN_STATE(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_MH_CLK_EN_STATE_MASK) >> MH_DEBUG_REG00_MH_CLK_EN_STATE_SHIFT)
+#define MH_DEBUG_REG00_GET_ARQ_EMPTY(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_ARQ_EMPTY_MASK) >> MH_DEBUG_REG00_ARQ_EMPTY_SHIFT)
+#define MH_DEBUG_REG00_GET_ARQ_FULL(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_ARQ_FULL_MASK) >> MH_DEBUG_REG00_ARQ_FULL_SHIFT)
+#define MH_DEBUG_REG00_GET_WDB_EMPTY(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_WDB_EMPTY_MASK) >> MH_DEBUG_REG00_WDB_EMPTY_SHIFT)
+#define MH_DEBUG_REG00_GET_WDB_FULL(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_WDB_FULL_MASK) >> MH_DEBUG_REG00_WDB_FULL_SHIFT)
+#define MH_DEBUG_REG00_GET_AXI_AVALID(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_AXI_AVALID_MASK) >> MH_DEBUG_REG00_AXI_AVALID_SHIFT)
+#define MH_DEBUG_REG00_GET_AXI_AREADY(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_AXI_AREADY_MASK) >> MH_DEBUG_REG00_AXI_AREADY_SHIFT)
+#define MH_DEBUG_REG00_GET_AXI_ARVALID(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_AXI_ARVALID_MASK) >> MH_DEBUG_REG00_AXI_ARVALID_SHIFT)
+#define MH_DEBUG_REG00_GET_AXI_ARREADY(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_AXI_ARREADY_MASK) >> MH_DEBUG_REG00_AXI_ARREADY_SHIFT)
+#define MH_DEBUG_REG00_GET_AXI_WVALID(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_AXI_WVALID_MASK) >> MH_DEBUG_REG00_AXI_WVALID_SHIFT)
+#define MH_DEBUG_REG00_GET_AXI_WREADY(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_AXI_WREADY_MASK) >> MH_DEBUG_REG00_AXI_WREADY_SHIFT)
+#define MH_DEBUG_REG00_GET_AXI_RVALID(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_AXI_RVALID_MASK) >> MH_DEBUG_REG00_AXI_RVALID_SHIFT)
+#define MH_DEBUG_REG00_GET_AXI_RREADY(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_AXI_RREADY_MASK) >> MH_DEBUG_REG00_AXI_RREADY_SHIFT)
+#define MH_DEBUG_REG00_GET_AXI_BVALID(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_AXI_BVALID_MASK) >> MH_DEBUG_REG00_AXI_BVALID_SHIFT)
+#define MH_DEBUG_REG00_GET_AXI_BREADY(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_AXI_BREADY_MASK) >> MH_DEBUG_REG00_AXI_BREADY_SHIFT)
+#define MH_DEBUG_REG00_GET_AXI_HALT_REQ(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_AXI_HALT_REQ_MASK) >> MH_DEBUG_REG00_AXI_HALT_REQ_SHIFT)
+#define MH_DEBUG_REG00_GET_AXI_HALT_ACK(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_AXI_HALT_ACK_MASK) >> MH_DEBUG_REG00_AXI_HALT_ACK_SHIFT)
+
+#define MH_DEBUG_REG00_SET_MH_BUSY(mh_debug_reg00_reg, mh_busy) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_MH_BUSY_MASK) | (mh_busy << MH_DEBUG_REG00_MH_BUSY_SHIFT)
+#define MH_DEBUG_REG00_SET_TRANS_OUTSTANDING(mh_debug_reg00_reg, trans_outstanding) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_TRANS_OUTSTANDING_MASK) | (trans_outstanding << MH_DEBUG_REG00_TRANS_OUTSTANDING_SHIFT)
+#define MH_DEBUG_REG00_SET_CP_REQUEST(mh_debug_reg00_reg, cp_request) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_CP_REQUEST_MASK) | (cp_request << MH_DEBUG_REG00_CP_REQUEST_SHIFT)
+#define MH_DEBUG_REG00_SET_VGT_REQUEST(mh_debug_reg00_reg, vgt_request) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_VGT_REQUEST_MASK) | (vgt_request << MH_DEBUG_REG00_VGT_REQUEST_SHIFT)
+#define MH_DEBUG_REG00_SET_TC_REQUEST(mh_debug_reg00_reg, tc_request) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_TC_REQUEST_MASK) | (tc_request << MH_DEBUG_REG00_TC_REQUEST_SHIFT)
+#define MH_DEBUG_REG00_SET_TC_CAM_EMPTY(mh_debug_reg00_reg, tc_cam_empty) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_TC_CAM_EMPTY_MASK) | (tc_cam_empty << MH_DEBUG_REG00_TC_CAM_EMPTY_SHIFT)
+#define MH_DEBUG_REG00_SET_TC_CAM_FULL(mh_debug_reg00_reg, tc_cam_full) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_TC_CAM_FULL_MASK) | (tc_cam_full << MH_DEBUG_REG00_TC_CAM_FULL_SHIFT)
+#define MH_DEBUG_REG00_SET_TCD_EMPTY(mh_debug_reg00_reg, tcd_empty) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_TCD_EMPTY_MASK) | (tcd_empty << MH_DEBUG_REG00_TCD_EMPTY_SHIFT)
+#define MH_DEBUG_REG00_SET_TCD_FULL(mh_debug_reg00_reg, tcd_full) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_TCD_FULL_MASK) | (tcd_full << MH_DEBUG_REG00_TCD_FULL_SHIFT)
+#define MH_DEBUG_REG00_SET_RB_REQUEST(mh_debug_reg00_reg, rb_request) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_RB_REQUEST_MASK) | (rb_request << MH_DEBUG_REG00_RB_REQUEST_SHIFT)
+#define MH_DEBUG_REG00_SET_MH_CLK_EN_STATE(mh_debug_reg00_reg, mh_clk_en_state) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_MH_CLK_EN_STATE_MASK) | (mh_clk_en_state << MH_DEBUG_REG00_MH_CLK_EN_STATE_SHIFT)
+#define MH_DEBUG_REG00_SET_ARQ_EMPTY(mh_debug_reg00_reg, arq_empty) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_ARQ_EMPTY_MASK) | (arq_empty << MH_DEBUG_REG00_ARQ_EMPTY_SHIFT)
+#define MH_DEBUG_REG00_SET_ARQ_FULL(mh_debug_reg00_reg, arq_full) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_ARQ_FULL_MASK) | (arq_full << MH_DEBUG_REG00_ARQ_FULL_SHIFT)
+#define MH_DEBUG_REG00_SET_WDB_EMPTY(mh_debug_reg00_reg, wdb_empty) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_WDB_EMPTY_MASK) | (wdb_empty << MH_DEBUG_REG00_WDB_EMPTY_SHIFT)
+#define MH_DEBUG_REG00_SET_WDB_FULL(mh_debug_reg00_reg, wdb_full) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_WDB_FULL_MASK) | (wdb_full << MH_DEBUG_REG00_WDB_FULL_SHIFT)
+#define MH_DEBUG_REG00_SET_AXI_AVALID(mh_debug_reg00_reg, axi_avalid) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_AXI_AVALID_MASK) | (axi_avalid << MH_DEBUG_REG00_AXI_AVALID_SHIFT)
+#define MH_DEBUG_REG00_SET_AXI_AREADY(mh_debug_reg00_reg, axi_aready) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_AXI_AREADY_MASK) | (axi_aready << MH_DEBUG_REG00_AXI_AREADY_SHIFT)
+#define MH_DEBUG_REG00_SET_AXI_ARVALID(mh_debug_reg00_reg, axi_arvalid) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_AXI_ARVALID_MASK) | (axi_arvalid << MH_DEBUG_REG00_AXI_ARVALID_SHIFT)
+#define MH_DEBUG_REG00_SET_AXI_ARREADY(mh_debug_reg00_reg, axi_arready) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_AXI_ARREADY_MASK) | (axi_arready << MH_DEBUG_REG00_AXI_ARREADY_SHIFT)
+#define MH_DEBUG_REG00_SET_AXI_WVALID(mh_debug_reg00_reg, axi_wvalid) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_AXI_WVALID_MASK) | (axi_wvalid << MH_DEBUG_REG00_AXI_WVALID_SHIFT)
+#define MH_DEBUG_REG00_SET_AXI_WREADY(mh_debug_reg00_reg, axi_wready) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_AXI_WREADY_MASK) | (axi_wready << MH_DEBUG_REG00_AXI_WREADY_SHIFT)
+#define MH_DEBUG_REG00_SET_AXI_RVALID(mh_debug_reg00_reg, axi_rvalid) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_AXI_RVALID_MASK) | (axi_rvalid << MH_DEBUG_REG00_AXI_RVALID_SHIFT)
+#define MH_DEBUG_REG00_SET_AXI_RREADY(mh_debug_reg00_reg, axi_rready) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_AXI_RREADY_MASK) | (axi_rready << MH_DEBUG_REG00_AXI_RREADY_SHIFT)
+#define MH_DEBUG_REG00_SET_AXI_BVALID(mh_debug_reg00_reg, axi_bvalid) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_AXI_BVALID_MASK) | (axi_bvalid << MH_DEBUG_REG00_AXI_BVALID_SHIFT)
+#define MH_DEBUG_REG00_SET_AXI_BREADY(mh_debug_reg00_reg, axi_bready) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_AXI_BREADY_MASK) | (axi_bready << MH_DEBUG_REG00_AXI_BREADY_SHIFT)
+#define MH_DEBUG_REG00_SET_AXI_HALT_REQ(mh_debug_reg00_reg, axi_halt_req) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_AXI_HALT_REQ_MASK) | (axi_halt_req << MH_DEBUG_REG00_AXI_HALT_REQ_SHIFT)
+#define MH_DEBUG_REG00_SET_AXI_HALT_ACK(mh_debug_reg00_reg, axi_halt_ack) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_AXI_HALT_ACK_MASK) | (axi_halt_ack << MH_DEBUG_REG00_AXI_HALT_ACK_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg00_t {
+ unsigned int mh_busy : MH_DEBUG_REG00_MH_BUSY_SIZE;
+ unsigned int trans_outstanding : MH_DEBUG_REG00_TRANS_OUTSTANDING_SIZE;
+ unsigned int cp_request : MH_DEBUG_REG00_CP_REQUEST_SIZE;
+ unsigned int vgt_request : MH_DEBUG_REG00_VGT_REQUEST_SIZE;
+ unsigned int tc_request : MH_DEBUG_REG00_TC_REQUEST_SIZE;
+ unsigned int tc_cam_empty : MH_DEBUG_REG00_TC_CAM_EMPTY_SIZE;
+ unsigned int tc_cam_full : MH_DEBUG_REG00_TC_CAM_FULL_SIZE;
+ unsigned int tcd_empty : MH_DEBUG_REG00_TCD_EMPTY_SIZE;
+ unsigned int tcd_full : MH_DEBUG_REG00_TCD_FULL_SIZE;
+ unsigned int rb_request : MH_DEBUG_REG00_RB_REQUEST_SIZE;
+ unsigned int mh_clk_en_state : MH_DEBUG_REG00_MH_CLK_EN_STATE_SIZE;
+ unsigned int arq_empty : MH_DEBUG_REG00_ARQ_EMPTY_SIZE;
+ unsigned int arq_full : MH_DEBUG_REG00_ARQ_FULL_SIZE;
+ unsigned int wdb_empty : MH_DEBUG_REG00_WDB_EMPTY_SIZE;
+ unsigned int wdb_full : MH_DEBUG_REG00_WDB_FULL_SIZE;
+ unsigned int axi_avalid : MH_DEBUG_REG00_AXI_AVALID_SIZE;
+ unsigned int axi_aready : MH_DEBUG_REG00_AXI_AREADY_SIZE;
+ unsigned int axi_arvalid : MH_DEBUG_REG00_AXI_ARVALID_SIZE;
+ unsigned int axi_arready : MH_DEBUG_REG00_AXI_ARREADY_SIZE;
+ unsigned int axi_wvalid : MH_DEBUG_REG00_AXI_WVALID_SIZE;
+ unsigned int axi_wready : MH_DEBUG_REG00_AXI_WREADY_SIZE;
+ unsigned int axi_rvalid : MH_DEBUG_REG00_AXI_RVALID_SIZE;
+ unsigned int axi_rready : MH_DEBUG_REG00_AXI_RREADY_SIZE;
+ unsigned int axi_bvalid : MH_DEBUG_REG00_AXI_BVALID_SIZE;
+ unsigned int axi_bready : MH_DEBUG_REG00_AXI_BREADY_SIZE;
+ unsigned int axi_halt_req : MH_DEBUG_REG00_AXI_HALT_REQ_SIZE;
+ unsigned int axi_halt_ack : MH_DEBUG_REG00_AXI_HALT_ACK_SIZE;
+ unsigned int : 5;
+ } mh_debug_reg00_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg00_t {
+ unsigned int : 5;
+ unsigned int axi_halt_ack : MH_DEBUG_REG00_AXI_HALT_ACK_SIZE;
+ unsigned int axi_halt_req : MH_DEBUG_REG00_AXI_HALT_REQ_SIZE;
+ unsigned int axi_bready : MH_DEBUG_REG00_AXI_BREADY_SIZE;
+ unsigned int axi_bvalid : MH_DEBUG_REG00_AXI_BVALID_SIZE;
+ unsigned int axi_rready : MH_DEBUG_REG00_AXI_RREADY_SIZE;
+ unsigned int axi_rvalid : MH_DEBUG_REG00_AXI_RVALID_SIZE;
+ unsigned int axi_wready : MH_DEBUG_REG00_AXI_WREADY_SIZE;
+ unsigned int axi_wvalid : MH_DEBUG_REG00_AXI_WVALID_SIZE;
+ unsigned int axi_arready : MH_DEBUG_REG00_AXI_ARREADY_SIZE;
+ unsigned int axi_arvalid : MH_DEBUG_REG00_AXI_ARVALID_SIZE;
+ unsigned int axi_aready : MH_DEBUG_REG00_AXI_AREADY_SIZE;
+ unsigned int axi_avalid : MH_DEBUG_REG00_AXI_AVALID_SIZE;
+ unsigned int wdb_full : MH_DEBUG_REG00_WDB_FULL_SIZE;
+ unsigned int wdb_empty : MH_DEBUG_REG00_WDB_EMPTY_SIZE;
+ unsigned int arq_full : MH_DEBUG_REG00_ARQ_FULL_SIZE;
+ unsigned int arq_empty : MH_DEBUG_REG00_ARQ_EMPTY_SIZE;
+ unsigned int mh_clk_en_state : MH_DEBUG_REG00_MH_CLK_EN_STATE_SIZE;
+ unsigned int rb_request : MH_DEBUG_REG00_RB_REQUEST_SIZE;
+ unsigned int tcd_full : MH_DEBUG_REG00_TCD_FULL_SIZE;
+ unsigned int tcd_empty : MH_DEBUG_REG00_TCD_EMPTY_SIZE;
+ unsigned int tc_cam_full : MH_DEBUG_REG00_TC_CAM_FULL_SIZE;
+ unsigned int tc_cam_empty : MH_DEBUG_REG00_TC_CAM_EMPTY_SIZE;
+ unsigned int tc_request : MH_DEBUG_REG00_TC_REQUEST_SIZE;
+ unsigned int vgt_request : MH_DEBUG_REG00_VGT_REQUEST_SIZE;
+ unsigned int cp_request : MH_DEBUG_REG00_CP_REQUEST_SIZE;
+ unsigned int trans_outstanding : MH_DEBUG_REG00_TRANS_OUTSTANDING_SIZE;
+ unsigned int mh_busy : MH_DEBUG_REG00_MH_BUSY_SIZE;
+ } mh_debug_reg00_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg00_t f;
+} mh_debug_reg00_u;
+
+
+/*
+ * MH_DEBUG_REG01 struct
+ */
+
+#define MH_DEBUG_REG01_CP_SEND_q_SIZE 1
+#define MH_DEBUG_REG01_CP_RTR_q_SIZE 1
+#define MH_DEBUG_REG01_CP_WRITE_q_SIZE 1
+#define MH_DEBUG_REG01_CP_TAG_q_SIZE 3
+#define MH_DEBUG_REG01_CP_BE_q_SIZE 8
+#define MH_DEBUG_REG01_VGT_SEND_q_SIZE 1
+#define MH_DEBUG_REG01_VGT_RTR_q_SIZE 1
+#define MH_DEBUG_REG01_VGT_TAG_q_SIZE 1
+#define MH_DEBUG_REG01_TC_SEND_q_SIZE 1
+#define MH_DEBUG_REG01_TC_RTR_q_SIZE 1
+#define MH_DEBUG_REG01_TC_ROQ_SEND_q_SIZE 1
+#define MH_DEBUG_REG01_TC_ROQ_RTR_q_SIZE 1
+#define MH_DEBUG_REG01_TC_MH_written_SIZE 1
+#define MH_DEBUG_REG01_RB_SEND_q_SIZE 1
+#define MH_DEBUG_REG01_RB_RTR_q_SIZE 1
+#define MH_DEBUG_REG01_RB_BE_q_SIZE 8
+
+#define MH_DEBUG_REG01_CP_SEND_q_SHIFT 0
+#define MH_DEBUG_REG01_CP_RTR_q_SHIFT 1
+#define MH_DEBUG_REG01_CP_WRITE_q_SHIFT 2
+#define MH_DEBUG_REG01_CP_TAG_q_SHIFT 3
+#define MH_DEBUG_REG01_CP_BE_q_SHIFT 6
+#define MH_DEBUG_REG01_VGT_SEND_q_SHIFT 14
+#define MH_DEBUG_REG01_VGT_RTR_q_SHIFT 15
+#define MH_DEBUG_REG01_VGT_TAG_q_SHIFT 16
+#define MH_DEBUG_REG01_TC_SEND_q_SHIFT 17
+#define MH_DEBUG_REG01_TC_RTR_q_SHIFT 18
+#define MH_DEBUG_REG01_TC_ROQ_SEND_q_SHIFT 19
+#define MH_DEBUG_REG01_TC_ROQ_RTR_q_SHIFT 20
+#define MH_DEBUG_REG01_TC_MH_written_SHIFT 21
+#define MH_DEBUG_REG01_RB_SEND_q_SHIFT 22
+#define MH_DEBUG_REG01_RB_RTR_q_SHIFT 23
+#define MH_DEBUG_REG01_RB_BE_q_SHIFT 24
+
+#define MH_DEBUG_REG01_CP_SEND_q_MASK 0x00000001
+#define MH_DEBUG_REG01_CP_RTR_q_MASK 0x00000002
+#define MH_DEBUG_REG01_CP_WRITE_q_MASK 0x00000004
+#define MH_DEBUG_REG01_CP_TAG_q_MASK 0x00000038
+#define MH_DEBUG_REG01_CP_BE_q_MASK 0x00003fc0
+#define MH_DEBUG_REG01_VGT_SEND_q_MASK 0x00004000
+#define MH_DEBUG_REG01_VGT_RTR_q_MASK 0x00008000
+#define MH_DEBUG_REG01_VGT_TAG_q_MASK 0x00010000
+#define MH_DEBUG_REG01_TC_SEND_q_MASK 0x00020000
+#define MH_DEBUG_REG01_TC_RTR_q_MASK 0x00040000
+#define MH_DEBUG_REG01_TC_ROQ_SEND_q_MASK 0x00080000
+#define MH_DEBUG_REG01_TC_ROQ_RTR_q_MASK 0x00100000
+#define MH_DEBUG_REG01_TC_MH_written_MASK 0x00200000
+#define MH_DEBUG_REG01_RB_SEND_q_MASK 0x00400000
+#define MH_DEBUG_REG01_RB_RTR_q_MASK 0x00800000
+#define MH_DEBUG_REG01_RB_BE_q_MASK 0xff000000
+
+#define MH_DEBUG_REG01_MASK \
+ (MH_DEBUG_REG01_CP_SEND_q_MASK | \
+ MH_DEBUG_REG01_CP_RTR_q_MASK | \
+ MH_DEBUG_REG01_CP_WRITE_q_MASK | \
+ MH_DEBUG_REG01_CP_TAG_q_MASK | \
+ MH_DEBUG_REG01_CP_BE_q_MASK | \
+ MH_DEBUG_REG01_VGT_SEND_q_MASK | \
+ MH_DEBUG_REG01_VGT_RTR_q_MASK | \
+ MH_DEBUG_REG01_VGT_TAG_q_MASK | \
+ MH_DEBUG_REG01_TC_SEND_q_MASK | \
+ MH_DEBUG_REG01_TC_RTR_q_MASK | \
+ MH_DEBUG_REG01_TC_ROQ_SEND_q_MASK | \
+ MH_DEBUG_REG01_TC_ROQ_RTR_q_MASK | \
+ MH_DEBUG_REG01_TC_MH_written_MASK | \
+ MH_DEBUG_REG01_RB_SEND_q_MASK | \
+ MH_DEBUG_REG01_RB_RTR_q_MASK | \
+ MH_DEBUG_REG01_RB_BE_q_MASK)
+
+#define MH_DEBUG_REG01(cp_send_q, cp_rtr_q, cp_write_q, cp_tag_q, cp_be_q, vgt_send_q, vgt_rtr_q, vgt_tag_q, tc_send_q, tc_rtr_q, tc_roq_send_q, tc_roq_rtr_q, tc_mh_written, rb_send_q, rb_rtr_q, rb_be_q) \
+ ((cp_send_q << MH_DEBUG_REG01_CP_SEND_q_SHIFT) | \
+ (cp_rtr_q << MH_DEBUG_REG01_CP_RTR_q_SHIFT) | \
+ (cp_write_q << MH_DEBUG_REG01_CP_WRITE_q_SHIFT) | \
+ (cp_tag_q << MH_DEBUG_REG01_CP_TAG_q_SHIFT) | \
+ (cp_be_q << MH_DEBUG_REG01_CP_BE_q_SHIFT) | \
+ (vgt_send_q << MH_DEBUG_REG01_VGT_SEND_q_SHIFT) | \
+ (vgt_rtr_q << MH_DEBUG_REG01_VGT_RTR_q_SHIFT) | \
+ (vgt_tag_q << MH_DEBUG_REG01_VGT_TAG_q_SHIFT) | \
+ (tc_send_q << MH_DEBUG_REG01_TC_SEND_q_SHIFT) | \
+ (tc_rtr_q << MH_DEBUG_REG01_TC_RTR_q_SHIFT) | \
+ (tc_roq_send_q << MH_DEBUG_REG01_TC_ROQ_SEND_q_SHIFT) | \
+ (tc_roq_rtr_q << MH_DEBUG_REG01_TC_ROQ_RTR_q_SHIFT) | \
+ (tc_mh_written << MH_DEBUG_REG01_TC_MH_written_SHIFT) | \
+ (rb_send_q << MH_DEBUG_REG01_RB_SEND_q_SHIFT) | \
+ (rb_rtr_q << MH_DEBUG_REG01_RB_RTR_q_SHIFT) | \
+ (rb_be_q << MH_DEBUG_REG01_RB_BE_q_SHIFT))
+
+#define MH_DEBUG_REG01_GET_CP_SEND_q(mh_debug_reg01) \
+ ((mh_debug_reg01 & MH_DEBUG_REG01_CP_SEND_q_MASK) >> MH_DEBUG_REG01_CP_SEND_q_SHIFT)
+#define MH_DEBUG_REG01_GET_CP_RTR_q(mh_debug_reg01) \
+ ((mh_debug_reg01 & MH_DEBUG_REG01_CP_RTR_q_MASK) >> MH_DEBUG_REG01_CP_RTR_q_SHIFT)
+#define MH_DEBUG_REG01_GET_CP_WRITE_q(mh_debug_reg01) \
+ ((mh_debug_reg01 & MH_DEBUG_REG01_CP_WRITE_q_MASK) >> MH_DEBUG_REG01_CP_WRITE_q_SHIFT)
+#define MH_DEBUG_REG01_GET_CP_TAG_q(mh_debug_reg01) \
+ ((mh_debug_reg01 & MH_DEBUG_REG01_CP_TAG_q_MASK) >> MH_DEBUG_REG01_CP_TAG_q_SHIFT)
+#define MH_DEBUG_REG01_GET_CP_BE_q(mh_debug_reg01) \
+ ((mh_debug_reg01 & MH_DEBUG_REG01_CP_BE_q_MASK) >> MH_DEBUG_REG01_CP_BE_q_SHIFT)
+#define MH_DEBUG_REG01_GET_VGT_SEND_q(mh_debug_reg01) \
+ ((mh_debug_reg01 & MH_DEBUG_REG01_VGT_SEND_q_MASK) >> MH_DEBUG_REG01_VGT_SEND_q_SHIFT)
+#define MH_DEBUG_REG01_GET_VGT_RTR_q(mh_debug_reg01) \
+ ((mh_debug_reg01 & MH_DEBUG_REG01_VGT_RTR_q_MASK) >> MH_DEBUG_REG01_VGT_RTR_q_SHIFT)
+#define MH_DEBUG_REG01_GET_VGT_TAG_q(mh_debug_reg01) \
+ ((mh_debug_reg01 & MH_DEBUG_REG01_VGT_TAG_q_MASK) >> MH_DEBUG_REG01_VGT_TAG_q_SHIFT)
+#define MH_DEBUG_REG01_GET_TC_SEND_q(mh_debug_reg01) \
+ ((mh_debug_reg01 & MH_DEBUG_REG01_TC_SEND_q_MASK) >> MH_DEBUG_REG01_TC_SEND_q_SHIFT)
+#define MH_DEBUG_REG01_GET_TC_RTR_q(mh_debug_reg01) \
+ ((mh_debug_reg01 & MH_DEBUG_REG01_TC_RTR_q_MASK) >> MH_DEBUG_REG01_TC_RTR_q_SHIFT)
+#define MH_DEBUG_REG01_GET_TC_ROQ_SEND_q(mh_debug_reg01) \
+ ((mh_debug_reg01 & MH_DEBUG_REG01_TC_ROQ_SEND_q_MASK) >> MH_DEBUG_REG01_TC_ROQ_SEND_q_SHIFT)
+#define MH_DEBUG_REG01_GET_TC_ROQ_RTR_q(mh_debug_reg01) \
+ ((mh_debug_reg01 & MH_DEBUG_REG01_TC_ROQ_RTR_q_MASK) >> MH_DEBUG_REG01_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG01_GET_TC_MH_written(mh_debug_reg01) \
+ ((mh_debug_reg01 & MH_DEBUG_REG01_TC_MH_written_MASK) >> MH_DEBUG_REG01_TC_MH_written_SHIFT)
+#define MH_DEBUG_REG01_GET_RB_SEND_q(mh_debug_reg01) \
+ ((mh_debug_reg01 & MH_DEBUG_REG01_RB_SEND_q_MASK) >> MH_DEBUG_REG01_RB_SEND_q_SHIFT)
+#define MH_DEBUG_REG01_GET_RB_RTR_q(mh_debug_reg01) \
+ ((mh_debug_reg01 & MH_DEBUG_REG01_RB_RTR_q_MASK) >> MH_DEBUG_REG01_RB_RTR_q_SHIFT)
+#define MH_DEBUG_REG01_GET_RB_BE_q(mh_debug_reg01) \
+ ((mh_debug_reg01 & MH_DEBUG_REG01_RB_BE_q_MASK) >> MH_DEBUG_REG01_RB_BE_q_SHIFT)
+
+#define MH_DEBUG_REG01_SET_CP_SEND_q(mh_debug_reg01_reg, cp_send_q) \
+ mh_debug_reg01_reg = (mh_debug_reg01_reg & ~MH_DEBUG_REG01_CP_SEND_q_MASK) | (cp_send_q << MH_DEBUG_REG01_CP_SEND_q_SHIFT)
+#define MH_DEBUG_REG01_SET_CP_RTR_q(mh_debug_reg01_reg, cp_rtr_q) \
+ mh_debug_reg01_reg = (mh_debug_reg01_reg & ~MH_DEBUG_REG01_CP_RTR_q_MASK) | (cp_rtr_q << MH_DEBUG_REG01_CP_RTR_q_SHIFT)
+#define MH_DEBUG_REG01_SET_CP_WRITE_q(mh_debug_reg01_reg, cp_write_q) \
+ mh_debug_reg01_reg = (mh_debug_reg01_reg & ~MH_DEBUG_REG01_CP_WRITE_q_MASK) | (cp_write_q << MH_DEBUG_REG01_CP_WRITE_q_SHIFT)
+#define MH_DEBUG_REG01_SET_CP_TAG_q(mh_debug_reg01_reg, cp_tag_q) \
+ mh_debug_reg01_reg = (mh_debug_reg01_reg & ~MH_DEBUG_REG01_CP_TAG_q_MASK) | (cp_tag_q << MH_DEBUG_REG01_CP_TAG_q_SHIFT)
+#define MH_DEBUG_REG01_SET_CP_BE_q(mh_debug_reg01_reg, cp_be_q) \
+ mh_debug_reg01_reg = (mh_debug_reg01_reg & ~MH_DEBUG_REG01_CP_BE_q_MASK) | (cp_be_q << MH_DEBUG_REG01_CP_BE_q_SHIFT)
+#define MH_DEBUG_REG01_SET_VGT_SEND_q(mh_debug_reg01_reg, vgt_send_q) \
+ mh_debug_reg01_reg = (mh_debug_reg01_reg & ~MH_DEBUG_REG01_VGT_SEND_q_MASK) | (vgt_send_q << MH_DEBUG_REG01_VGT_SEND_q_SHIFT)
+#define MH_DEBUG_REG01_SET_VGT_RTR_q(mh_debug_reg01_reg, vgt_rtr_q) \
+ mh_debug_reg01_reg = (mh_debug_reg01_reg & ~MH_DEBUG_REG01_VGT_RTR_q_MASK) | (vgt_rtr_q << MH_DEBUG_REG01_VGT_RTR_q_SHIFT)
+#define MH_DEBUG_REG01_SET_VGT_TAG_q(mh_debug_reg01_reg, vgt_tag_q) \
+ mh_debug_reg01_reg = (mh_debug_reg01_reg & ~MH_DEBUG_REG01_VGT_TAG_q_MASK) | (vgt_tag_q << MH_DEBUG_REG01_VGT_TAG_q_SHIFT)
+#define MH_DEBUG_REG01_SET_TC_SEND_q(mh_debug_reg01_reg, tc_send_q) \
+ mh_debug_reg01_reg = (mh_debug_reg01_reg & ~MH_DEBUG_REG01_TC_SEND_q_MASK) | (tc_send_q << MH_DEBUG_REG01_TC_SEND_q_SHIFT)
+#define MH_DEBUG_REG01_SET_TC_RTR_q(mh_debug_reg01_reg, tc_rtr_q) \
+ mh_debug_reg01_reg = (mh_debug_reg01_reg & ~MH_DEBUG_REG01_TC_RTR_q_MASK) | (tc_rtr_q << MH_DEBUG_REG01_TC_RTR_q_SHIFT)
+#define MH_DEBUG_REG01_SET_TC_ROQ_SEND_q(mh_debug_reg01_reg, tc_roq_send_q) \
+ mh_debug_reg01_reg = (mh_debug_reg01_reg & ~MH_DEBUG_REG01_TC_ROQ_SEND_q_MASK) | (tc_roq_send_q << MH_DEBUG_REG01_TC_ROQ_SEND_q_SHIFT)
+#define MH_DEBUG_REG01_SET_TC_ROQ_RTR_q(mh_debug_reg01_reg, tc_roq_rtr_q) \
+ mh_debug_reg01_reg = (mh_debug_reg01_reg & ~MH_DEBUG_REG01_TC_ROQ_RTR_q_MASK) | (tc_roq_rtr_q << MH_DEBUG_REG01_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG01_SET_TC_MH_written(mh_debug_reg01_reg, tc_mh_written) \
+ mh_debug_reg01_reg = (mh_debug_reg01_reg & ~MH_DEBUG_REG01_TC_MH_written_MASK) | (tc_mh_written << MH_DEBUG_REG01_TC_MH_written_SHIFT)
+#define MH_DEBUG_REG01_SET_RB_SEND_q(mh_debug_reg01_reg, rb_send_q) \
+ mh_debug_reg01_reg = (mh_debug_reg01_reg & ~MH_DEBUG_REG01_RB_SEND_q_MASK) | (rb_send_q << MH_DEBUG_REG01_RB_SEND_q_SHIFT)
+#define MH_DEBUG_REG01_SET_RB_RTR_q(mh_debug_reg01_reg, rb_rtr_q) \
+ mh_debug_reg01_reg = (mh_debug_reg01_reg & ~MH_DEBUG_REG01_RB_RTR_q_MASK) | (rb_rtr_q << MH_DEBUG_REG01_RB_RTR_q_SHIFT)
+#define MH_DEBUG_REG01_SET_RB_BE_q(mh_debug_reg01_reg, rb_be_q) \
+ mh_debug_reg01_reg = (mh_debug_reg01_reg & ~MH_DEBUG_REG01_RB_BE_q_MASK) | (rb_be_q << MH_DEBUG_REG01_RB_BE_q_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg01_t {
+ unsigned int cp_send_q : MH_DEBUG_REG01_CP_SEND_q_SIZE;
+ unsigned int cp_rtr_q : MH_DEBUG_REG01_CP_RTR_q_SIZE;
+ unsigned int cp_write_q : MH_DEBUG_REG01_CP_WRITE_q_SIZE;
+ unsigned int cp_tag_q : MH_DEBUG_REG01_CP_TAG_q_SIZE;
+ unsigned int cp_be_q : MH_DEBUG_REG01_CP_BE_q_SIZE;
+ unsigned int vgt_send_q : MH_DEBUG_REG01_VGT_SEND_q_SIZE;
+ unsigned int vgt_rtr_q : MH_DEBUG_REG01_VGT_RTR_q_SIZE;
+ unsigned int vgt_tag_q : MH_DEBUG_REG01_VGT_TAG_q_SIZE;
+ unsigned int tc_send_q : MH_DEBUG_REG01_TC_SEND_q_SIZE;
+ unsigned int tc_rtr_q : MH_DEBUG_REG01_TC_RTR_q_SIZE;
+ unsigned int tc_roq_send_q : MH_DEBUG_REG01_TC_ROQ_SEND_q_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG01_TC_ROQ_RTR_q_SIZE;
+ unsigned int tc_mh_written : MH_DEBUG_REG01_TC_MH_written_SIZE;
+ unsigned int rb_send_q : MH_DEBUG_REG01_RB_SEND_q_SIZE;
+ unsigned int rb_rtr_q : MH_DEBUG_REG01_RB_RTR_q_SIZE;
+ unsigned int rb_be_q : MH_DEBUG_REG01_RB_BE_q_SIZE;
+ } mh_debug_reg01_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg01_t {
+ unsigned int rb_be_q : MH_DEBUG_REG01_RB_BE_q_SIZE;
+ unsigned int rb_rtr_q : MH_DEBUG_REG01_RB_RTR_q_SIZE;
+ unsigned int rb_send_q : MH_DEBUG_REG01_RB_SEND_q_SIZE;
+ unsigned int tc_mh_written : MH_DEBUG_REG01_TC_MH_written_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG01_TC_ROQ_RTR_q_SIZE;
+ unsigned int tc_roq_send_q : MH_DEBUG_REG01_TC_ROQ_SEND_q_SIZE;
+ unsigned int tc_rtr_q : MH_DEBUG_REG01_TC_RTR_q_SIZE;
+ unsigned int tc_send_q : MH_DEBUG_REG01_TC_SEND_q_SIZE;
+ unsigned int vgt_tag_q : MH_DEBUG_REG01_VGT_TAG_q_SIZE;
+ unsigned int vgt_rtr_q : MH_DEBUG_REG01_VGT_RTR_q_SIZE;
+ unsigned int vgt_send_q : MH_DEBUG_REG01_VGT_SEND_q_SIZE;
+ unsigned int cp_be_q : MH_DEBUG_REG01_CP_BE_q_SIZE;
+ unsigned int cp_tag_q : MH_DEBUG_REG01_CP_TAG_q_SIZE;
+ unsigned int cp_write_q : MH_DEBUG_REG01_CP_WRITE_q_SIZE;
+ unsigned int cp_rtr_q : MH_DEBUG_REG01_CP_RTR_q_SIZE;
+ unsigned int cp_send_q : MH_DEBUG_REG01_CP_SEND_q_SIZE;
+ } mh_debug_reg01_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg01_t f;
+} mh_debug_reg01_u;
+
+
+/*
+ * MH_DEBUG_REG02 struct
+ */
+
+#define MH_DEBUG_REG02_MH_CP_grb_send_SIZE 1
+#define MH_DEBUG_REG02_MH_VGT_grb_send_SIZE 1
+#define MH_DEBUG_REG02_MH_TC_mcsend_SIZE 1
+#define MH_DEBUG_REG02_MH_CLNT_rlast_SIZE 1
+#define MH_DEBUG_REG02_MH_CLNT_tag_SIZE 3
+#define MH_DEBUG_REG02_RDC_RID_SIZE 3
+#define MH_DEBUG_REG02_RDC_RRESP_SIZE 2
+#define MH_DEBUG_REG02_MH_CP_writeclean_SIZE 1
+#define MH_DEBUG_REG02_MH_RB_writeclean_SIZE 1
+#define MH_DEBUG_REG02_BRC_BID_SIZE 3
+#define MH_DEBUG_REG02_BRC_BRESP_SIZE 2
+
+#define MH_DEBUG_REG02_MH_CP_grb_send_SHIFT 0
+#define MH_DEBUG_REG02_MH_VGT_grb_send_SHIFT 1
+#define MH_DEBUG_REG02_MH_TC_mcsend_SHIFT 2
+#define MH_DEBUG_REG02_MH_CLNT_rlast_SHIFT 3
+#define MH_DEBUG_REG02_MH_CLNT_tag_SHIFT 4
+#define MH_DEBUG_REG02_RDC_RID_SHIFT 7
+#define MH_DEBUG_REG02_RDC_RRESP_SHIFT 10
+#define MH_DEBUG_REG02_MH_CP_writeclean_SHIFT 12
+#define MH_DEBUG_REG02_MH_RB_writeclean_SHIFT 13
+#define MH_DEBUG_REG02_BRC_BID_SHIFT 14
+#define MH_DEBUG_REG02_BRC_BRESP_SHIFT 17
+
+#define MH_DEBUG_REG02_MH_CP_grb_send_MASK 0x00000001
+#define MH_DEBUG_REG02_MH_VGT_grb_send_MASK 0x00000002
+#define MH_DEBUG_REG02_MH_TC_mcsend_MASK 0x00000004
+#define MH_DEBUG_REG02_MH_CLNT_rlast_MASK 0x00000008
+#define MH_DEBUG_REG02_MH_CLNT_tag_MASK 0x00000070
+#define MH_DEBUG_REG02_RDC_RID_MASK 0x00000380
+#define MH_DEBUG_REG02_RDC_RRESP_MASK 0x00000c00
+#define MH_DEBUG_REG02_MH_CP_writeclean_MASK 0x00001000
+#define MH_DEBUG_REG02_MH_RB_writeclean_MASK 0x00002000
+#define MH_DEBUG_REG02_BRC_BID_MASK 0x0001c000
+#define MH_DEBUG_REG02_BRC_BRESP_MASK 0x00060000
+
+#define MH_DEBUG_REG02_MASK \
+ (MH_DEBUG_REG02_MH_CP_grb_send_MASK | \
+ MH_DEBUG_REG02_MH_VGT_grb_send_MASK | \
+ MH_DEBUG_REG02_MH_TC_mcsend_MASK | \
+ MH_DEBUG_REG02_MH_CLNT_rlast_MASK | \
+ MH_DEBUG_REG02_MH_CLNT_tag_MASK | \
+ MH_DEBUG_REG02_RDC_RID_MASK | \
+ MH_DEBUG_REG02_RDC_RRESP_MASK | \
+ MH_DEBUG_REG02_MH_CP_writeclean_MASK | \
+ MH_DEBUG_REG02_MH_RB_writeclean_MASK | \
+ MH_DEBUG_REG02_BRC_BID_MASK | \
+ MH_DEBUG_REG02_BRC_BRESP_MASK)
+
+#define MH_DEBUG_REG02(mh_cp_grb_send, mh_vgt_grb_send, mh_tc_mcsend, mh_clnt_rlast, mh_clnt_tag, rdc_rid, rdc_rresp, mh_cp_writeclean, mh_rb_writeclean, brc_bid, brc_bresp) \
+ ((mh_cp_grb_send << MH_DEBUG_REG02_MH_CP_grb_send_SHIFT) | \
+ (mh_vgt_grb_send << MH_DEBUG_REG02_MH_VGT_grb_send_SHIFT) | \
+ (mh_tc_mcsend << MH_DEBUG_REG02_MH_TC_mcsend_SHIFT) | \
+ (mh_clnt_rlast << MH_DEBUG_REG02_MH_CLNT_rlast_SHIFT) | \
+ (mh_clnt_tag << MH_DEBUG_REG02_MH_CLNT_tag_SHIFT) | \
+ (rdc_rid << MH_DEBUG_REG02_RDC_RID_SHIFT) | \
+ (rdc_rresp << MH_DEBUG_REG02_RDC_RRESP_SHIFT) | \
+ (mh_cp_writeclean << MH_DEBUG_REG02_MH_CP_writeclean_SHIFT) | \
+ (mh_rb_writeclean << MH_DEBUG_REG02_MH_RB_writeclean_SHIFT) | \
+ (brc_bid << MH_DEBUG_REG02_BRC_BID_SHIFT) | \
+ (brc_bresp << MH_DEBUG_REG02_BRC_BRESP_SHIFT))
+
+#define MH_DEBUG_REG02_GET_MH_CP_grb_send(mh_debug_reg02) \
+ ((mh_debug_reg02 & MH_DEBUG_REG02_MH_CP_grb_send_MASK) >> MH_DEBUG_REG02_MH_CP_grb_send_SHIFT)
+#define MH_DEBUG_REG02_GET_MH_VGT_grb_send(mh_debug_reg02) \
+ ((mh_debug_reg02 & MH_DEBUG_REG02_MH_VGT_grb_send_MASK) >> MH_DEBUG_REG02_MH_VGT_grb_send_SHIFT)
+#define MH_DEBUG_REG02_GET_MH_TC_mcsend(mh_debug_reg02) \
+ ((mh_debug_reg02 & MH_DEBUG_REG02_MH_TC_mcsend_MASK) >> MH_DEBUG_REG02_MH_TC_mcsend_SHIFT)
+#define MH_DEBUG_REG02_GET_MH_CLNT_rlast(mh_debug_reg02) \
+ ((mh_debug_reg02 & MH_DEBUG_REG02_MH_CLNT_rlast_MASK) >> MH_DEBUG_REG02_MH_CLNT_rlast_SHIFT)
+#define MH_DEBUG_REG02_GET_MH_CLNT_tag(mh_debug_reg02) \
+ ((mh_debug_reg02 & MH_DEBUG_REG02_MH_CLNT_tag_MASK) >> MH_DEBUG_REG02_MH_CLNT_tag_SHIFT)
+#define MH_DEBUG_REG02_GET_RDC_RID(mh_debug_reg02) \
+ ((mh_debug_reg02 & MH_DEBUG_REG02_RDC_RID_MASK) >> MH_DEBUG_REG02_RDC_RID_SHIFT)
+#define MH_DEBUG_REG02_GET_RDC_RRESP(mh_debug_reg02) \
+ ((mh_debug_reg02 & MH_DEBUG_REG02_RDC_RRESP_MASK) >> MH_DEBUG_REG02_RDC_RRESP_SHIFT)
+#define MH_DEBUG_REG02_GET_MH_CP_writeclean(mh_debug_reg02) \
+ ((mh_debug_reg02 & MH_DEBUG_REG02_MH_CP_writeclean_MASK) >> MH_DEBUG_REG02_MH_CP_writeclean_SHIFT)
+#define MH_DEBUG_REG02_GET_MH_RB_writeclean(mh_debug_reg02) \
+ ((mh_debug_reg02 & MH_DEBUG_REG02_MH_RB_writeclean_MASK) >> MH_DEBUG_REG02_MH_RB_writeclean_SHIFT)
+#define MH_DEBUG_REG02_GET_BRC_BID(mh_debug_reg02) \
+ ((mh_debug_reg02 & MH_DEBUG_REG02_BRC_BID_MASK) >> MH_DEBUG_REG02_BRC_BID_SHIFT)
+#define MH_DEBUG_REG02_GET_BRC_BRESP(mh_debug_reg02) \
+ ((mh_debug_reg02 & MH_DEBUG_REG02_BRC_BRESP_MASK) >> MH_DEBUG_REG02_BRC_BRESP_SHIFT)
+
+#define MH_DEBUG_REG02_SET_MH_CP_grb_send(mh_debug_reg02_reg, mh_cp_grb_send) \
+ mh_debug_reg02_reg = (mh_debug_reg02_reg & ~MH_DEBUG_REG02_MH_CP_grb_send_MASK) | (mh_cp_grb_send << MH_DEBUG_REG02_MH_CP_grb_send_SHIFT)
+#define MH_DEBUG_REG02_SET_MH_VGT_grb_send(mh_debug_reg02_reg, mh_vgt_grb_send) \
+ mh_debug_reg02_reg = (mh_debug_reg02_reg & ~MH_DEBUG_REG02_MH_VGT_grb_send_MASK) | (mh_vgt_grb_send << MH_DEBUG_REG02_MH_VGT_grb_send_SHIFT)
+#define MH_DEBUG_REG02_SET_MH_TC_mcsend(mh_debug_reg02_reg, mh_tc_mcsend) \
+ mh_debug_reg02_reg = (mh_debug_reg02_reg & ~MH_DEBUG_REG02_MH_TC_mcsend_MASK) | (mh_tc_mcsend << MH_DEBUG_REG02_MH_TC_mcsend_SHIFT)
+#define MH_DEBUG_REG02_SET_MH_CLNT_rlast(mh_debug_reg02_reg, mh_clnt_rlast) \
+ mh_debug_reg02_reg = (mh_debug_reg02_reg & ~MH_DEBUG_REG02_MH_CLNT_rlast_MASK) | (mh_clnt_rlast << MH_DEBUG_REG02_MH_CLNT_rlast_SHIFT)
+#define MH_DEBUG_REG02_SET_MH_CLNT_tag(mh_debug_reg02_reg, mh_clnt_tag) \
+ mh_debug_reg02_reg = (mh_debug_reg02_reg & ~MH_DEBUG_REG02_MH_CLNT_tag_MASK) | (mh_clnt_tag << MH_DEBUG_REG02_MH_CLNT_tag_SHIFT)
+#define MH_DEBUG_REG02_SET_RDC_RID(mh_debug_reg02_reg, rdc_rid) \
+ mh_debug_reg02_reg = (mh_debug_reg02_reg & ~MH_DEBUG_REG02_RDC_RID_MASK) | (rdc_rid << MH_DEBUG_REG02_RDC_RID_SHIFT)
+#define MH_DEBUG_REG02_SET_RDC_RRESP(mh_debug_reg02_reg, rdc_rresp) \
+ mh_debug_reg02_reg = (mh_debug_reg02_reg & ~MH_DEBUG_REG02_RDC_RRESP_MASK) | (rdc_rresp << MH_DEBUG_REG02_RDC_RRESP_SHIFT)
+#define MH_DEBUG_REG02_SET_MH_CP_writeclean(mh_debug_reg02_reg, mh_cp_writeclean) \
+ mh_debug_reg02_reg = (mh_debug_reg02_reg & ~MH_DEBUG_REG02_MH_CP_writeclean_MASK) | (mh_cp_writeclean << MH_DEBUG_REG02_MH_CP_writeclean_SHIFT)
+#define MH_DEBUG_REG02_SET_MH_RB_writeclean(mh_debug_reg02_reg, mh_rb_writeclean) \
+ mh_debug_reg02_reg = (mh_debug_reg02_reg & ~MH_DEBUG_REG02_MH_RB_writeclean_MASK) | (mh_rb_writeclean << MH_DEBUG_REG02_MH_RB_writeclean_SHIFT)
+#define MH_DEBUG_REG02_SET_BRC_BID(mh_debug_reg02_reg, brc_bid) \
+ mh_debug_reg02_reg = (mh_debug_reg02_reg & ~MH_DEBUG_REG02_BRC_BID_MASK) | (brc_bid << MH_DEBUG_REG02_BRC_BID_SHIFT)
+#define MH_DEBUG_REG02_SET_BRC_BRESP(mh_debug_reg02_reg, brc_bresp) \
+ mh_debug_reg02_reg = (mh_debug_reg02_reg & ~MH_DEBUG_REG02_BRC_BRESP_MASK) | (brc_bresp << MH_DEBUG_REG02_BRC_BRESP_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg02_t {
+ unsigned int mh_cp_grb_send : MH_DEBUG_REG02_MH_CP_grb_send_SIZE;
+ unsigned int mh_vgt_grb_send : MH_DEBUG_REG02_MH_VGT_grb_send_SIZE;
+ unsigned int mh_tc_mcsend : MH_DEBUG_REG02_MH_TC_mcsend_SIZE;
+ unsigned int mh_clnt_rlast : MH_DEBUG_REG02_MH_CLNT_rlast_SIZE;
+ unsigned int mh_clnt_tag : MH_DEBUG_REG02_MH_CLNT_tag_SIZE;
+ unsigned int rdc_rid : MH_DEBUG_REG02_RDC_RID_SIZE;
+ unsigned int rdc_rresp : MH_DEBUG_REG02_RDC_RRESP_SIZE;
+ unsigned int mh_cp_writeclean : MH_DEBUG_REG02_MH_CP_writeclean_SIZE;
+ unsigned int mh_rb_writeclean : MH_DEBUG_REG02_MH_RB_writeclean_SIZE;
+ unsigned int brc_bid : MH_DEBUG_REG02_BRC_BID_SIZE;
+ unsigned int brc_bresp : MH_DEBUG_REG02_BRC_BRESP_SIZE;
+ unsigned int : 13;
+ } mh_debug_reg02_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg02_t {
+ unsigned int : 13;
+ unsigned int brc_bresp : MH_DEBUG_REG02_BRC_BRESP_SIZE;
+ unsigned int brc_bid : MH_DEBUG_REG02_BRC_BID_SIZE;
+ unsigned int mh_rb_writeclean : MH_DEBUG_REG02_MH_RB_writeclean_SIZE;
+ unsigned int mh_cp_writeclean : MH_DEBUG_REG02_MH_CP_writeclean_SIZE;
+ unsigned int rdc_rresp : MH_DEBUG_REG02_RDC_RRESP_SIZE;
+ unsigned int rdc_rid : MH_DEBUG_REG02_RDC_RID_SIZE;
+ unsigned int mh_clnt_tag : MH_DEBUG_REG02_MH_CLNT_tag_SIZE;
+ unsigned int mh_clnt_rlast : MH_DEBUG_REG02_MH_CLNT_rlast_SIZE;
+ unsigned int mh_tc_mcsend : MH_DEBUG_REG02_MH_TC_mcsend_SIZE;
+ unsigned int mh_vgt_grb_send : MH_DEBUG_REG02_MH_VGT_grb_send_SIZE;
+ unsigned int mh_cp_grb_send : MH_DEBUG_REG02_MH_CP_grb_send_SIZE;
+ } mh_debug_reg02_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg02_t f;
+} mh_debug_reg02_u;
+
+
+/*
+ * MH_DEBUG_REG03 struct
+ */
+
+#define MH_DEBUG_REG03_MH_CLNT_data_31_0_SIZE 32
+
+#define MH_DEBUG_REG03_MH_CLNT_data_31_0_SHIFT 0
+
+#define MH_DEBUG_REG03_MH_CLNT_data_31_0_MASK 0xffffffff
+
+#define MH_DEBUG_REG03_MASK \
+ (MH_DEBUG_REG03_MH_CLNT_data_31_0_MASK)
+
+#define MH_DEBUG_REG03(mh_clnt_data_31_0) \
+ ((mh_clnt_data_31_0 << MH_DEBUG_REG03_MH_CLNT_data_31_0_SHIFT))
+
+#define MH_DEBUG_REG03_GET_MH_CLNT_data_31_0(mh_debug_reg03) \
+ ((mh_debug_reg03 & MH_DEBUG_REG03_MH_CLNT_data_31_0_MASK) >> MH_DEBUG_REG03_MH_CLNT_data_31_0_SHIFT)
+
+#define MH_DEBUG_REG03_SET_MH_CLNT_data_31_0(mh_debug_reg03_reg, mh_clnt_data_31_0) \
+ mh_debug_reg03_reg = (mh_debug_reg03_reg & ~MH_DEBUG_REG03_MH_CLNT_data_31_0_MASK) | (mh_clnt_data_31_0 << MH_DEBUG_REG03_MH_CLNT_data_31_0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg03_t {
+ unsigned int mh_clnt_data_31_0 : MH_DEBUG_REG03_MH_CLNT_data_31_0_SIZE;
+ } mh_debug_reg03_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg03_t {
+ unsigned int mh_clnt_data_31_0 : MH_DEBUG_REG03_MH_CLNT_data_31_0_SIZE;
+ } mh_debug_reg03_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg03_t f;
+} mh_debug_reg03_u;
+
+
+/*
+ * MH_DEBUG_REG04 struct
+ */
+
+#define MH_DEBUG_REG04_MH_CLNT_data_63_32_SIZE 32
+
+#define MH_DEBUG_REG04_MH_CLNT_data_63_32_SHIFT 0
+
+#define MH_DEBUG_REG04_MH_CLNT_data_63_32_MASK 0xffffffff
+
+#define MH_DEBUG_REG04_MASK \
+ (MH_DEBUG_REG04_MH_CLNT_data_63_32_MASK)
+
+#define MH_DEBUG_REG04(mh_clnt_data_63_32) \
+ ((mh_clnt_data_63_32 << MH_DEBUG_REG04_MH_CLNT_data_63_32_SHIFT))
+
+#define MH_DEBUG_REG04_GET_MH_CLNT_data_63_32(mh_debug_reg04) \
+ ((mh_debug_reg04 & MH_DEBUG_REG04_MH_CLNT_data_63_32_MASK) >> MH_DEBUG_REG04_MH_CLNT_data_63_32_SHIFT)
+
+#define MH_DEBUG_REG04_SET_MH_CLNT_data_63_32(mh_debug_reg04_reg, mh_clnt_data_63_32) \
+ mh_debug_reg04_reg = (mh_debug_reg04_reg & ~MH_DEBUG_REG04_MH_CLNT_data_63_32_MASK) | (mh_clnt_data_63_32 << MH_DEBUG_REG04_MH_CLNT_data_63_32_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg04_t {
+ unsigned int mh_clnt_data_63_32 : MH_DEBUG_REG04_MH_CLNT_data_63_32_SIZE;
+ } mh_debug_reg04_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg04_t {
+ unsigned int mh_clnt_data_63_32 : MH_DEBUG_REG04_MH_CLNT_data_63_32_SIZE;
+ } mh_debug_reg04_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg04_t f;
+} mh_debug_reg04_u;
+
+
+/*
+ * MH_DEBUG_REG05 struct
+ */
+
+#define MH_DEBUG_REG05_CP_MH_send_SIZE 1
+#define MH_DEBUG_REG05_CP_MH_write_SIZE 1
+#define MH_DEBUG_REG05_CP_MH_tag_SIZE 3
+#define MH_DEBUG_REG05_CP_MH_ad_31_5_SIZE 27
+
+#define MH_DEBUG_REG05_CP_MH_send_SHIFT 0
+#define MH_DEBUG_REG05_CP_MH_write_SHIFT 1
+#define MH_DEBUG_REG05_CP_MH_tag_SHIFT 2
+#define MH_DEBUG_REG05_CP_MH_ad_31_5_SHIFT 5
+
+#define MH_DEBUG_REG05_CP_MH_send_MASK 0x00000001
+#define MH_DEBUG_REG05_CP_MH_write_MASK 0x00000002
+#define MH_DEBUG_REG05_CP_MH_tag_MASK 0x0000001c
+#define MH_DEBUG_REG05_CP_MH_ad_31_5_MASK 0xffffffe0
+
+#define MH_DEBUG_REG05_MASK \
+ (MH_DEBUG_REG05_CP_MH_send_MASK | \
+ MH_DEBUG_REG05_CP_MH_write_MASK | \
+ MH_DEBUG_REG05_CP_MH_tag_MASK | \
+ MH_DEBUG_REG05_CP_MH_ad_31_5_MASK)
+
+#define MH_DEBUG_REG05(cp_mh_send, cp_mh_write, cp_mh_tag, cp_mh_ad_31_5) \
+ ((cp_mh_send << MH_DEBUG_REG05_CP_MH_send_SHIFT) | \
+ (cp_mh_write << MH_DEBUG_REG05_CP_MH_write_SHIFT) | \
+ (cp_mh_tag << MH_DEBUG_REG05_CP_MH_tag_SHIFT) | \
+ (cp_mh_ad_31_5 << MH_DEBUG_REG05_CP_MH_ad_31_5_SHIFT))
+
+#define MH_DEBUG_REG05_GET_CP_MH_send(mh_debug_reg05) \
+ ((mh_debug_reg05 & MH_DEBUG_REG05_CP_MH_send_MASK) >> MH_DEBUG_REG05_CP_MH_send_SHIFT)
+#define MH_DEBUG_REG05_GET_CP_MH_write(mh_debug_reg05) \
+ ((mh_debug_reg05 & MH_DEBUG_REG05_CP_MH_write_MASK) >> MH_DEBUG_REG05_CP_MH_write_SHIFT)
+#define MH_DEBUG_REG05_GET_CP_MH_tag(mh_debug_reg05) \
+ ((mh_debug_reg05 & MH_DEBUG_REG05_CP_MH_tag_MASK) >> MH_DEBUG_REG05_CP_MH_tag_SHIFT)
+#define MH_DEBUG_REG05_GET_CP_MH_ad_31_5(mh_debug_reg05) \
+ ((mh_debug_reg05 & MH_DEBUG_REG05_CP_MH_ad_31_5_MASK) >> MH_DEBUG_REG05_CP_MH_ad_31_5_SHIFT)
+
+#define MH_DEBUG_REG05_SET_CP_MH_send(mh_debug_reg05_reg, cp_mh_send) \
+ mh_debug_reg05_reg = (mh_debug_reg05_reg & ~MH_DEBUG_REG05_CP_MH_send_MASK) | (cp_mh_send << MH_DEBUG_REG05_CP_MH_send_SHIFT)
+#define MH_DEBUG_REG05_SET_CP_MH_write(mh_debug_reg05_reg, cp_mh_write) \
+ mh_debug_reg05_reg = (mh_debug_reg05_reg & ~MH_DEBUG_REG05_CP_MH_write_MASK) | (cp_mh_write << MH_DEBUG_REG05_CP_MH_write_SHIFT)
+#define MH_DEBUG_REG05_SET_CP_MH_tag(mh_debug_reg05_reg, cp_mh_tag) \
+ mh_debug_reg05_reg = (mh_debug_reg05_reg & ~MH_DEBUG_REG05_CP_MH_tag_MASK) | (cp_mh_tag << MH_DEBUG_REG05_CP_MH_tag_SHIFT)
+#define MH_DEBUG_REG05_SET_CP_MH_ad_31_5(mh_debug_reg05_reg, cp_mh_ad_31_5) \
+ mh_debug_reg05_reg = (mh_debug_reg05_reg & ~MH_DEBUG_REG05_CP_MH_ad_31_5_MASK) | (cp_mh_ad_31_5 << MH_DEBUG_REG05_CP_MH_ad_31_5_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg05_t {
+ unsigned int cp_mh_send : MH_DEBUG_REG05_CP_MH_send_SIZE;
+ unsigned int cp_mh_write : MH_DEBUG_REG05_CP_MH_write_SIZE;
+ unsigned int cp_mh_tag : MH_DEBUG_REG05_CP_MH_tag_SIZE;
+ unsigned int cp_mh_ad_31_5 : MH_DEBUG_REG05_CP_MH_ad_31_5_SIZE;
+ } mh_debug_reg05_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg05_t {
+ unsigned int cp_mh_ad_31_5 : MH_DEBUG_REG05_CP_MH_ad_31_5_SIZE;
+ unsigned int cp_mh_tag : MH_DEBUG_REG05_CP_MH_tag_SIZE;
+ unsigned int cp_mh_write : MH_DEBUG_REG05_CP_MH_write_SIZE;
+ unsigned int cp_mh_send : MH_DEBUG_REG05_CP_MH_send_SIZE;
+ } mh_debug_reg05_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg05_t f;
+} mh_debug_reg05_u;
+
+
+/*
+ * MH_DEBUG_REG06 struct
+ */
+
+#define MH_DEBUG_REG06_CP_MH_data_31_0_SIZE 32
+
+#define MH_DEBUG_REG06_CP_MH_data_31_0_SHIFT 0
+
+#define MH_DEBUG_REG06_CP_MH_data_31_0_MASK 0xffffffff
+
+#define MH_DEBUG_REG06_MASK \
+ (MH_DEBUG_REG06_CP_MH_data_31_0_MASK)
+
+#define MH_DEBUG_REG06(cp_mh_data_31_0) \
+ ((cp_mh_data_31_0 << MH_DEBUG_REG06_CP_MH_data_31_0_SHIFT))
+
+#define MH_DEBUG_REG06_GET_CP_MH_data_31_0(mh_debug_reg06) \
+ ((mh_debug_reg06 & MH_DEBUG_REG06_CP_MH_data_31_0_MASK) >> MH_DEBUG_REG06_CP_MH_data_31_0_SHIFT)
+
+#define MH_DEBUG_REG06_SET_CP_MH_data_31_0(mh_debug_reg06_reg, cp_mh_data_31_0) \
+ mh_debug_reg06_reg = (mh_debug_reg06_reg & ~MH_DEBUG_REG06_CP_MH_data_31_0_MASK) | (cp_mh_data_31_0 << MH_DEBUG_REG06_CP_MH_data_31_0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg06_t {
+ unsigned int cp_mh_data_31_0 : MH_DEBUG_REG06_CP_MH_data_31_0_SIZE;
+ } mh_debug_reg06_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg06_t {
+ unsigned int cp_mh_data_31_0 : MH_DEBUG_REG06_CP_MH_data_31_0_SIZE;
+ } mh_debug_reg06_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg06_t f;
+} mh_debug_reg06_u;
+
+
+/*
+ * MH_DEBUG_REG07 struct
+ */
+
+#define MH_DEBUG_REG07_CP_MH_data_63_32_SIZE 32
+
+#define MH_DEBUG_REG07_CP_MH_data_63_32_SHIFT 0
+
+#define MH_DEBUG_REG07_CP_MH_data_63_32_MASK 0xffffffff
+
+#define MH_DEBUG_REG07_MASK \
+ (MH_DEBUG_REG07_CP_MH_data_63_32_MASK)
+
+#define MH_DEBUG_REG07(cp_mh_data_63_32) \
+ ((cp_mh_data_63_32 << MH_DEBUG_REG07_CP_MH_data_63_32_SHIFT))
+
+#define MH_DEBUG_REG07_GET_CP_MH_data_63_32(mh_debug_reg07) \
+ ((mh_debug_reg07 & MH_DEBUG_REG07_CP_MH_data_63_32_MASK) >> MH_DEBUG_REG07_CP_MH_data_63_32_SHIFT)
+
+#define MH_DEBUG_REG07_SET_CP_MH_data_63_32(mh_debug_reg07_reg, cp_mh_data_63_32) \
+ mh_debug_reg07_reg = (mh_debug_reg07_reg & ~MH_DEBUG_REG07_CP_MH_data_63_32_MASK) | (cp_mh_data_63_32 << MH_DEBUG_REG07_CP_MH_data_63_32_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg07_t {
+ unsigned int cp_mh_data_63_32 : MH_DEBUG_REG07_CP_MH_data_63_32_SIZE;
+ } mh_debug_reg07_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg07_t {
+ unsigned int cp_mh_data_63_32 : MH_DEBUG_REG07_CP_MH_data_63_32_SIZE;
+ } mh_debug_reg07_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg07_t f;
+} mh_debug_reg07_u;
+
+
+/*
+ * MH_DEBUG_REG08 struct
+ */
+
+#define MH_DEBUG_REG08_ALWAYS_ZERO_SIZE 3
+#define MH_DEBUG_REG08_VGT_MH_send_SIZE 1
+#define MH_DEBUG_REG08_VGT_MH_tagbe_SIZE 1
+#define MH_DEBUG_REG08_VGT_MH_ad_31_5_SIZE 27
+
+#define MH_DEBUG_REG08_ALWAYS_ZERO_SHIFT 0
+#define MH_DEBUG_REG08_VGT_MH_send_SHIFT 3
+#define MH_DEBUG_REG08_VGT_MH_tagbe_SHIFT 4
+#define MH_DEBUG_REG08_VGT_MH_ad_31_5_SHIFT 5
+
+#define MH_DEBUG_REG08_ALWAYS_ZERO_MASK 0x00000007
+#define MH_DEBUG_REG08_VGT_MH_send_MASK 0x00000008
+#define MH_DEBUG_REG08_VGT_MH_tagbe_MASK 0x00000010
+#define MH_DEBUG_REG08_VGT_MH_ad_31_5_MASK 0xffffffe0
+
+#define MH_DEBUG_REG08_MASK \
+ (MH_DEBUG_REG08_ALWAYS_ZERO_MASK | \
+ MH_DEBUG_REG08_VGT_MH_send_MASK | \
+ MH_DEBUG_REG08_VGT_MH_tagbe_MASK | \
+ MH_DEBUG_REG08_VGT_MH_ad_31_5_MASK)
+
+#define MH_DEBUG_REG08(always_zero, vgt_mh_send, vgt_mh_tagbe, vgt_mh_ad_31_5) \
+ ((always_zero << MH_DEBUG_REG08_ALWAYS_ZERO_SHIFT) | \
+ (vgt_mh_send << MH_DEBUG_REG08_VGT_MH_send_SHIFT) | \
+ (vgt_mh_tagbe << MH_DEBUG_REG08_VGT_MH_tagbe_SHIFT) | \
+ (vgt_mh_ad_31_5 << MH_DEBUG_REG08_VGT_MH_ad_31_5_SHIFT))
+
+#define MH_DEBUG_REG08_GET_ALWAYS_ZERO(mh_debug_reg08) \
+ ((mh_debug_reg08 & MH_DEBUG_REG08_ALWAYS_ZERO_MASK) >> MH_DEBUG_REG08_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG08_GET_VGT_MH_send(mh_debug_reg08) \
+ ((mh_debug_reg08 & MH_DEBUG_REG08_VGT_MH_send_MASK) >> MH_DEBUG_REG08_VGT_MH_send_SHIFT)
+#define MH_DEBUG_REG08_GET_VGT_MH_tagbe(mh_debug_reg08) \
+ ((mh_debug_reg08 & MH_DEBUG_REG08_VGT_MH_tagbe_MASK) >> MH_DEBUG_REG08_VGT_MH_tagbe_SHIFT)
+#define MH_DEBUG_REG08_GET_VGT_MH_ad_31_5(mh_debug_reg08) \
+ ((mh_debug_reg08 & MH_DEBUG_REG08_VGT_MH_ad_31_5_MASK) >> MH_DEBUG_REG08_VGT_MH_ad_31_5_SHIFT)
+
+#define MH_DEBUG_REG08_SET_ALWAYS_ZERO(mh_debug_reg08_reg, always_zero) \
+ mh_debug_reg08_reg = (mh_debug_reg08_reg & ~MH_DEBUG_REG08_ALWAYS_ZERO_MASK) | (always_zero << MH_DEBUG_REG08_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG08_SET_VGT_MH_send(mh_debug_reg08_reg, vgt_mh_send) \
+ mh_debug_reg08_reg = (mh_debug_reg08_reg & ~MH_DEBUG_REG08_VGT_MH_send_MASK) | (vgt_mh_send << MH_DEBUG_REG08_VGT_MH_send_SHIFT)
+#define MH_DEBUG_REG08_SET_VGT_MH_tagbe(mh_debug_reg08_reg, vgt_mh_tagbe) \
+ mh_debug_reg08_reg = (mh_debug_reg08_reg & ~MH_DEBUG_REG08_VGT_MH_tagbe_MASK) | (vgt_mh_tagbe << MH_DEBUG_REG08_VGT_MH_tagbe_SHIFT)
+#define MH_DEBUG_REG08_SET_VGT_MH_ad_31_5(mh_debug_reg08_reg, vgt_mh_ad_31_5) \
+ mh_debug_reg08_reg = (mh_debug_reg08_reg & ~MH_DEBUG_REG08_VGT_MH_ad_31_5_MASK) | (vgt_mh_ad_31_5 << MH_DEBUG_REG08_VGT_MH_ad_31_5_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg08_t {
+ unsigned int always_zero : MH_DEBUG_REG08_ALWAYS_ZERO_SIZE;
+ unsigned int vgt_mh_send : MH_DEBUG_REG08_VGT_MH_send_SIZE;
+ unsigned int vgt_mh_tagbe : MH_DEBUG_REG08_VGT_MH_tagbe_SIZE;
+ unsigned int vgt_mh_ad_31_5 : MH_DEBUG_REG08_VGT_MH_ad_31_5_SIZE;
+ } mh_debug_reg08_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg08_t {
+ unsigned int vgt_mh_ad_31_5 : MH_DEBUG_REG08_VGT_MH_ad_31_5_SIZE;
+ unsigned int vgt_mh_tagbe : MH_DEBUG_REG08_VGT_MH_tagbe_SIZE;
+ unsigned int vgt_mh_send : MH_DEBUG_REG08_VGT_MH_send_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG08_ALWAYS_ZERO_SIZE;
+ } mh_debug_reg08_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg08_t f;
+} mh_debug_reg08_u;
+
+
+/*
+ * MH_DEBUG_REG09 struct
+ */
+
+#define MH_DEBUG_REG09_ALWAYS_ZERO_SIZE 2
+#define MH_DEBUG_REG09_TC_MH_send_SIZE 1
+#define MH_DEBUG_REG09_TC_MH_mask_SIZE 2
+#define MH_DEBUG_REG09_TC_MH_addr_31_5_SIZE 27
+
+#define MH_DEBUG_REG09_ALWAYS_ZERO_SHIFT 0
+#define MH_DEBUG_REG09_TC_MH_send_SHIFT 2
+#define MH_DEBUG_REG09_TC_MH_mask_SHIFT 3
+#define MH_DEBUG_REG09_TC_MH_addr_31_5_SHIFT 5
+
+#define MH_DEBUG_REG09_ALWAYS_ZERO_MASK 0x00000003
+#define MH_DEBUG_REG09_TC_MH_send_MASK 0x00000004
+#define MH_DEBUG_REG09_TC_MH_mask_MASK 0x00000018
+#define MH_DEBUG_REG09_TC_MH_addr_31_5_MASK 0xffffffe0
+
+#define MH_DEBUG_REG09_MASK \
+ (MH_DEBUG_REG09_ALWAYS_ZERO_MASK | \
+ MH_DEBUG_REG09_TC_MH_send_MASK | \
+ MH_DEBUG_REG09_TC_MH_mask_MASK | \
+ MH_DEBUG_REG09_TC_MH_addr_31_5_MASK)
+
+#define MH_DEBUG_REG09(always_zero, tc_mh_send, tc_mh_mask, tc_mh_addr_31_5) \
+ ((always_zero << MH_DEBUG_REG09_ALWAYS_ZERO_SHIFT) | \
+ (tc_mh_send << MH_DEBUG_REG09_TC_MH_send_SHIFT) | \
+ (tc_mh_mask << MH_DEBUG_REG09_TC_MH_mask_SHIFT) | \
+ (tc_mh_addr_31_5 << MH_DEBUG_REG09_TC_MH_addr_31_5_SHIFT))
+
+#define MH_DEBUG_REG09_GET_ALWAYS_ZERO(mh_debug_reg09) \
+ ((mh_debug_reg09 & MH_DEBUG_REG09_ALWAYS_ZERO_MASK) >> MH_DEBUG_REG09_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG09_GET_TC_MH_send(mh_debug_reg09) \
+ ((mh_debug_reg09 & MH_DEBUG_REG09_TC_MH_send_MASK) >> MH_DEBUG_REG09_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG09_GET_TC_MH_mask(mh_debug_reg09) \
+ ((mh_debug_reg09 & MH_DEBUG_REG09_TC_MH_mask_MASK) >> MH_DEBUG_REG09_TC_MH_mask_SHIFT)
+#define MH_DEBUG_REG09_GET_TC_MH_addr_31_5(mh_debug_reg09) \
+ ((mh_debug_reg09 & MH_DEBUG_REG09_TC_MH_addr_31_5_MASK) >> MH_DEBUG_REG09_TC_MH_addr_31_5_SHIFT)
+
+#define MH_DEBUG_REG09_SET_ALWAYS_ZERO(mh_debug_reg09_reg, always_zero) \
+ mh_debug_reg09_reg = (mh_debug_reg09_reg & ~MH_DEBUG_REG09_ALWAYS_ZERO_MASK) | (always_zero << MH_DEBUG_REG09_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG09_SET_TC_MH_send(mh_debug_reg09_reg, tc_mh_send) \
+ mh_debug_reg09_reg = (mh_debug_reg09_reg & ~MH_DEBUG_REG09_TC_MH_send_MASK) | (tc_mh_send << MH_DEBUG_REG09_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG09_SET_TC_MH_mask(mh_debug_reg09_reg, tc_mh_mask) \
+ mh_debug_reg09_reg = (mh_debug_reg09_reg & ~MH_DEBUG_REG09_TC_MH_mask_MASK) | (tc_mh_mask << MH_DEBUG_REG09_TC_MH_mask_SHIFT)
+#define MH_DEBUG_REG09_SET_TC_MH_addr_31_5(mh_debug_reg09_reg, tc_mh_addr_31_5) \
+ mh_debug_reg09_reg = (mh_debug_reg09_reg & ~MH_DEBUG_REG09_TC_MH_addr_31_5_MASK) | (tc_mh_addr_31_5 << MH_DEBUG_REG09_TC_MH_addr_31_5_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg09_t {
+ unsigned int always_zero : MH_DEBUG_REG09_ALWAYS_ZERO_SIZE;
+ unsigned int tc_mh_send : MH_DEBUG_REG09_TC_MH_send_SIZE;
+ unsigned int tc_mh_mask : MH_DEBUG_REG09_TC_MH_mask_SIZE;
+ unsigned int tc_mh_addr_31_5 : MH_DEBUG_REG09_TC_MH_addr_31_5_SIZE;
+ } mh_debug_reg09_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg09_t {
+ unsigned int tc_mh_addr_31_5 : MH_DEBUG_REG09_TC_MH_addr_31_5_SIZE;
+ unsigned int tc_mh_mask : MH_DEBUG_REG09_TC_MH_mask_SIZE;
+ unsigned int tc_mh_send : MH_DEBUG_REG09_TC_MH_send_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG09_ALWAYS_ZERO_SIZE;
+ } mh_debug_reg09_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg09_t f;
+} mh_debug_reg09_u;
+
+
+/*
+ * MH_DEBUG_REG10 struct
+ */
+
+#define MH_DEBUG_REG10_TC_MH_info_SIZE 25
+#define MH_DEBUG_REG10_TC_MH_send_SIZE 1
+
+#define MH_DEBUG_REG10_TC_MH_info_SHIFT 0
+#define MH_DEBUG_REG10_TC_MH_send_SHIFT 25
+
+#define MH_DEBUG_REG10_TC_MH_info_MASK 0x01ffffff
+#define MH_DEBUG_REG10_TC_MH_send_MASK 0x02000000
+
+#define MH_DEBUG_REG10_MASK \
+ (MH_DEBUG_REG10_TC_MH_info_MASK | \
+ MH_DEBUG_REG10_TC_MH_send_MASK)
+
+#define MH_DEBUG_REG10(tc_mh_info, tc_mh_send) \
+ ((tc_mh_info << MH_DEBUG_REG10_TC_MH_info_SHIFT) | \
+ (tc_mh_send << MH_DEBUG_REG10_TC_MH_send_SHIFT))
+
+#define MH_DEBUG_REG10_GET_TC_MH_info(mh_debug_reg10) \
+ ((mh_debug_reg10 & MH_DEBUG_REG10_TC_MH_info_MASK) >> MH_DEBUG_REG10_TC_MH_info_SHIFT)
+#define MH_DEBUG_REG10_GET_TC_MH_send(mh_debug_reg10) \
+ ((mh_debug_reg10 & MH_DEBUG_REG10_TC_MH_send_MASK) >> MH_DEBUG_REG10_TC_MH_send_SHIFT)
+
+#define MH_DEBUG_REG10_SET_TC_MH_info(mh_debug_reg10_reg, tc_mh_info) \
+ mh_debug_reg10_reg = (mh_debug_reg10_reg & ~MH_DEBUG_REG10_TC_MH_info_MASK) | (tc_mh_info << MH_DEBUG_REG10_TC_MH_info_SHIFT)
+#define MH_DEBUG_REG10_SET_TC_MH_send(mh_debug_reg10_reg, tc_mh_send) \
+ mh_debug_reg10_reg = (mh_debug_reg10_reg & ~MH_DEBUG_REG10_TC_MH_send_MASK) | (tc_mh_send << MH_DEBUG_REG10_TC_MH_send_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg10_t {
+ unsigned int tc_mh_info : MH_DEBUG_REG10_TC_MH_info_SIZE;
+ unsigned int tc_mh_send : MH_DEBUG_REG10_TC_MH_send_SIZE;
+ unsigned int : 6;
+ } mh_debug_reg10_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg10_t {
+ unsigned int : 6;
+ unsigned int tc_mh_send : MH_DEBUG_REG10_TC_MH_send_SIZE;
+ unsigned int tc_mh_info : MH_DEBUG_REG10_TC_MH_info_SIZE;
+ } mh_debug_reg10_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg10_t f;
+} mh_debug_reg10_u;
+
+
+/*
+ * MH_DEBUG_REG11 struct
+ */
+
+#define MH_DEBUG_REG11_MH_TC_mcinfo_SIZE 25
+#define MH_DEBUG_REG11_MH_TC_mcinfo_send_SIZE 1
+#define MH_DEBUG_REG11_TC_MH_written_SIZE 1
+
+#define MH_DEBUG_REG11_MH_TC_mcinfo_SHIFT 0
+#define MH_DEBUG_REG11_MH_TC_mcinfo_send_SHIFT 25
+#define MH_DEBUG_REG11_TC_MH_written_SHIFT 26
+
+#define MH_DEBUG_REG11_MH_TC_mcinfo_MASK 0x01ffffff
+#define MH_DEBUG_REG11_MH_TC_mcinfo_send_MASK 0x02000000
+#define MH_DEBUG_REG11_TC_MH_written_MASK 0x04000000
+
+#define MH_DEBUG_REG11_MASK \
+ (MH_DEBUG_REG11_MH_TC_mcinfo_MASK | \
+ MH_DEBUG_REG11_MH_TC_mcinfo_send_MASK | \
+ MH_DEBUG_REG11_TC_MH_written_MASK)
+
+#define MH_DEBUG_REG11(mh_tc_mcinfo, mh_tc_mcinfo_send, tc_mh_written) \
+ ((mh_tc_mcinfo << MH_DEBUG_REG11_MH_TC_mcinfo_SHIFT) | \
+ (mh_tc_mcinfo_send << MH_DEBUG_REG11_MH_TC_mcinfo_send_SHIFT) | \
+ (tc_mh_written << MH_DEBUG_REG11_TC_MH_written_SHIFT))
+
+#define MH_DEBUG_REG11_GET_MH_TC_mcinfo(mh_debug_reg11) \
+ ((mh_debug_reg11 & MH_DEBUG_REG11_MH_TC_mcinfo_MASK) >> MH_DEBUG_REG11_MH_TC_mcinfo_SHIFT)
+#define MH_DEBUG_REG11_GET_MH_TC_mcinfo_send(mh_debug_reg11) \
+ ((mh_debug_reg11 & MH_DEBUG_REG11_MH_TC_mcinfo_send_MASK) >> MH_DEBUG_REG11_MH_TC_mcinfo_send_SHIFT)
+#define MH_DEBUG_REG11_GET_TC_MH_written(mh_debug_reg11) \
+ ((mh_debug_reg11 & MH_DEBUG_REG11_TC_MH_written_MASK) >> MH_DEBUG_REG11_TC_MH_written_SHIFT)
+
+#define MH_DEBUG_REG11_SET_MH_TC_mcinfo(mh_debug_reg11_reg, mh_tc_mcinfo) \
+ mh_debug_reg11_reg = (mh_debug_reg11_reg & ~MH_DEBUG_REG11_MH_TC_mcinfo_MASK) | (mh_tc_mcinfo << MH_DEBUG_REG11_MH_TC_mcinfo_SHIFT)
+#define MH_DEBUG_REG11_SET_MH_TC_mcinfo_send(mh_debug_reg11_reg, mh_tc_mcinfo_send) \
+ mh_debug_reg11_reg = (mh_debug_reg11_reg & ~MH_DEBUG_REG11_MH_TC_mcinfo_send_MASK) | (mh_tc_mcinfo_send << MH_DEBUG_REG11_MH_TC_mcinfo_send_SHIFT)
+#define MH_DEBUG_REG11_SET_TC_MH_written(mh_debug_reg11_reg, tc_mh_written) \
+ mh_debug_reg11_reg = (mh_debug_reg11_reg & ~MH_DEBUG_REG11_TC_MH_written_MASK) | (tc_mh_written << MH_DEBUG_REG11_TC_MH_written_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg11_t {
+ unsigned int mh_tc_mcinfo : MH_DEBUG_REG11_MH_TC_mcinfo_SIZE;
+ unsigned int mh_tc_mcinfo_send : MH_DEBUG_REG11_MH_TC_mcinfo_send_SIZE;
+ unsigned int tc_mh_written : MH_DEBUG_REG11_TC_MH_written_SIZE;
+ unsigned int : 5;
+ } mh_debug_reg11_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg11_t {
+ unsigned int : 5;
+ unsigned int tc_mh_written : MH_DEBUG_REG11_TC_MH_written_SIZE;
+ unsigned int mh_tc_mcinfo_send : MH_DEBUG_REG11_MH_TC_mcinfo_send_SIZE;
+ unsigned int mh_tc_mcinfo : MH_DEBUG_REG11_MH_TC_mcinfo_SIZE;
+ } mh_debug_reg11_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg11_t f;
+} mh_debug_reg11_u;
+
+
+/*
+ * MH_DEBUG_REG12 struct
+ */
+
+#define MH_DEBUG_REG12_ALWAYS_ZERO_SIZE 2
+#define MH_DEBUG_REG12_TC_ROQ_SEND_SIZE 1
+#define MH_DEBUG_REG12_TC_ROQ_MASK_SIZE 2
+#define MH_DEBUG_REG12_TC_ROQ_ADDR_31_5_SIZE 27
+
+#define MH_DEBUG_REG12_ALWAYS_ZERO_SHIFT 0
+#define MH_DEBUG_REG12_TC_ROQ_SEND_SHIFT 2
+#define MH_DEBUG_REG12_TC_ROQ_MASK_SHIFT 3
+#define MH_DEBUG_REG12_TC_ROQ_ADDR_31_5_SHIFT 5
+
+#define MH_DEBUG_REG12_ALWAYS_ZERO_MASK 0x00000003
+#define MH_DEBUG_REG12_TC_ROQ_SEND_MASK 0x00000004
+#define MH_DEBUG_REG12_TC_ROQ_MASK_MASK 0x00000018
+#define MH_DEBUG_REG12_TC_ROQ_ADDR_31_5_MASK 0xffffffe0
+
+#define MH_DEBUG_REG12_MASK \
+ (MH_DEBUG_REG12_ALWAYS_ZERO_MASK | \
+ MH_DEBUG_REG12_TC_ROQ_SEND_MASK | \
+ MH_DEBUG_REG12_TC_ROQ_MASK_MASK | \
+ MH_DEBUG_REG12_TC_ROQ_ADDR_31_5_MASK)
+
+#define MH_DEBUG_REG12(always_zero, tc_roq_send, tc_roq_mask, tc_roq_addr_31_5) \
+ ((always_zero << MH_DEBUG_REG12_ALWAYS_ZERO_SHIFT) | \
+ (tc_roq_send << MH_DEBUG_REG12_TC_ROQ_SEND_SHIFT) | \
+ (tc_roq_mask << MH_DEBUG_REG12_TC_ROQ_MASK_SHIFT) | \
+ (tc_roq_addr_31_5 << MH_DEBUG_REG12_TC_ROQ_ADDR_31_5_SHIFT))
+
+#define MH_DEBUG_REG12_GET_ALWAYS_ZERO(mh_debug_reg12) \
+ ((mh_debug_reg12 & MH_DEBUG_REG12_ALWAYS_ZERO_MASK) >> MH_DEBUG_REG12_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG12_GET_TC_ROQ_SEND(mh_debug_reg12) \
+ ((mh_debug_reg12 & MH_DEBUG_REG12_TC_ROQ_SEND_MASK) >> MH_DEBUG_REG12_TC_ROQ_SEND_SHIFT)
+#define MH_DEBUG_REG12_GET_TC_ROQ_MASK(mh_debug_reg12) \
+ ((mh_debug_reg12 & MH_DEBUG_REG12_TC_ROQ_MASK_MASK) >> MH_DEBUG_REG12_TC_ROQ_MASK_SHIFT)
+#define MH_DEBUG_REG12_GET_TC_ROQ_ADDR_31_5(mh_debug_reg12) \
+ ((mh_debug_reg12 & MH_DEBUG_REG12_TC_ROQ_ADDR_31_5_MASK) >> MH_DEBUG_REG12_TC_ROQ_ADDR_31_5_SHIFT)
+
+#define MH_DEBUG_REG12_SET_ALWAYS_ZERO(mh_debug_reg12_reg, always_zero) \
+ mh_debug_reg12_reg = (mh_debug_reg12_reg & ~MH_DEBUG_REG12_ALWAYS_ZERO_MASK) | (always_zero << MH_DEBUG_REG12_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG12_SET_TC_ROQ_SEND(mh_debug_reg12_reg, tc_roq_send) \
+ mh_debug_reg12_reg = (mh_debug_reg12_reg & ~MH_DEBUG_REG12_TC_ROQ_SEND_MASK) | (tc_roq_send << MH_DEBUG_REG12_TC_ROQ_SEND_SHIFT)
+#define MH_DEBUG_REG12_SET_TC_ROQ_MASK(mh_debug_reg12_reg, tc_roq_mask) \
+ mh_debug_reg12_reg = (mh_debug_reg12_reg & ~MH_DEBUG_REG12_TC_ROQ_MASK_MASK) | (tc_roq_mask << MH_DEBUG_REG12_TC_ROQ_MASK_SHIFT)
+#define MH_DEBUG_REG12_SET_TC_ROQ_ADDR_31_5(mh_debug_reg12_reg, tc_roq_addr_31_5) \
+ mh_debug_reg12_reg = (mh_debug_reg12_reg & ~MH_DEBUG_REG12_TC_ROQ_ADDR_31_5_MASK) | (tc_roq_addr_31_5 << MH_DEBUG_REG12_TC_ROQ_ADDR_31_5_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg12_t {
+ unsigned int always_zero : MH_DEBUG_REG12_ALWAYS_ZERO_SIZE;
+ unsigned int tc_roq_send : MH_DEBUG_REG12_TC_ROQ_SEND_SIZE;
+ unsigned int tc_roq_mask : MH_DEBUG_REG12_TC_ROQ_MASK_SIZE;
+ unsigned int tc_roq_addr_31_5 : MH_DEBUG_REG12_TC_ROQ_ADDR_31_5_SIZE;
+ } mh_debug_reg12_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg12_t {
+ unsigned int tc_roq_addr_31_5 : MH_DEBUG_REG12_TC_ROQ_ADDR_31_5_SIZE;
+ unsigned int tc_roq_mask : MH_DEBUG_REG12_TC_ROQ_MASK_SIZE;
+ unsigned int tc_roq_send : MH_DEBUG_REG12_TC_ROQ_SEND_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG12_ALWAYS_ZERO_SIZE;
+ } mh_debug_reg12_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg12_t f;
+} mh_debug_reg12_u;
+
+
+/*
+ * MH_DEBUG_REG13 struct
+ */
+
+#define MH_DEBUG_REG13_TC_ROQ_INFO_SIZE 25
+#define MH_DEBUG_REG13_TC_ROQ_SEND_SIZE 1
+
+#define MH_DEBUG_REG13_TC_ROQ_INFO_SHIFT 0
+#define MH_DEBUG_REG13_TC_ROQ_SEND_SHIFT 25
+
+#define MH_DEBUG_REG13_TC_ROQ_INFO_MASK 0x01ffffff
+#define MH_DEBUG_REG13_TC_ROQ_SEND_MASK 0x02000000
+
+#define MH_DEBUG_REG13_MASK \
+ (MH_DEBUG_REG13_TC_ROQ_INFO_MASK | \
+ MH_DEBUG_REG13_TC_ROQ_SEND_MASK)
+
+#define MH_DEBUG_REG13(tc_roq_info, tc_roq_send) \
+ ((tc_roq_info << MH_DEBUG_REG13_TC_ROQ_INFO_SHIFT) | \
+ (tc_roq_send << MH_DEBUG_REG13_TC_ROQ_SEND_SHIFT))
+
+#define MH_DEBUG_REG13_GET_TC_ROQ_INFO(mh_debug_reg13) \
+ ((mh_debug_reg13 & MH_DEBUG_REG13_TC_ROQ_INFO_MASK) >> MH_DEBUG_REG13_TC_ROQ_INFO_SHIFT)
+#define MH_DEBUG_REG13_GET_TC_ROQ_SEND(mh_debug_reg13) \
+ ((mh_debug_reg13 & MH_DEBUG_REG13_TC_ROQ_SEND_MASK) >> MH_DEBUG_REG13_TC_ROQ_SEND_SHIFT)
+
+#define MH_DEBUG_REG13_SET_TC_ROQ_INFO(mh_debug_reg13_reg, tc_roq_info) \
+ mh_debug_reg13_reg = (mh_debug_reg13_reg & ~MH_DEBUG_REG13_TC_ROQ_INFO_MASK) | (tc_roq_info << MH_DEBUG_REG13_TC_ROQ_INFO_SHIFT)
+#define MH_DEBUG_REG13_SET_TC_ROQ_SEND(mh_debug_reg13_reg, tc_roq_send) \
+ mh_debug_reg13_reg = (mh_debug_reg13_reg & ~MH_DEBUG_REG13_TC_ROQ_SEND_MASK) | (tc_roq_send << MH_DEBUG_REG13_TC_ROQ_SEND_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg13_t {
+ unsigned int tc_roq_info : MH_DEBUG_REG13_TC_ROQ_INFO_SIZE;
+ unsigned int tc_roq_send : MH_DEBUG_REG13_TC_ROQ_SEND_SIZE;
+ unsigned int : 6;
+ } mh_debug_reg13_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg13_t {
+ unsigned int : 6;
+ unsigned int tc_roq_send : MH_DEBUG_REG13_TC_ROQ_SEND_SIZE;
+ unsigned int tc_roq_info : MH_DEBUG_REG13_TC_ROQ_INFO_SIZE;
+ } mh_debug_reg13_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg13_t f;
+} mh_debug_reg13_u;
+
+
+/*
+ * MH_DEBUG_REG14 struct
+ */
+
+#define MH_DEBUG_REG14_ALWAYS_ZERO_SIZE 4
+#define MH_DEBUG_REG14_RB_MH_send_SIZE 1
+#define MH_DEBUG_REG14_RB_MH_addr_31_5_SIZE 27
+
+#define MH_DEBUG_REG14_ALWAYS_ZERO_SHIFT 0
+#define MH_DEBUG_REG14_RB_MH_send_SHIFT 4
+#define MH_DEBUG_REG14_RB_MH_addr_31_5_SHIFT 5
+
+#define MH_DEBUG_REG14_ALWAYS_ZERO_MASK 0x0000000f
+#define MH_DEBUG_REG14_RB_MH_send_MASK 0x00000010
+#define MH_DEBUG_REG14_RB_MH_addr_31_5_MASK 0xffffffe0
+
+#define MH_DEBUG_REG14_MASK \
+ (MH_DEBUG_REG14_ALWAYS_ZERO_MASK | \
+ MH_DEBUG_REG14_RB_MH_send_MASK | \
+ MH_DEBUG_REG14_RB_MH_addr_31_5_MASK)
+
+#define MH_DEBUG_REG14(always_zero, rb_mh_send, rb_mh_addr_31_5) \
+ ((always_zero << MH_DEBUG_REG14_ALWAYS_ZERO_SHIFT) | \
+ (rb_mh_send << MH_DEBUG_REG14_RB_MH_send_SHIFT) | \
+ (rb_mh_addr_31_5 << MH_DEBUG_REG14_RB_MH_addr_31_5_SHIFT))
+
+#define MH_DEBUG_REG14_GET_ALWAYS_ZERO(mh_debug_reg14) \
+ ((mh_debug_reg14 & MH_DEBUG_REG14_ALWAYS_ZERO_MASK) >> MH_DEBUG_REG14_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG14_GET_RB_MH_send(mh_debug_reg14) \
+ ((mh_debug_reg14 & MH_DEBUG_REG14_RB_MH_send_MASK) >> MH_DEBUG_REG14_RB_MH_send_SHIFT)
+#define MH_DEBUG_REG14_GET_RB_MH_addr_31_5(mh_debug_reg14) \
+ ((mh_debug_reg14 & MH_DEBUG_REG14_RB_MH_addr_31_5_MASK) >> MH_DEBUG_REG14_RB_MH_addr_31_5_SHIFT)
+
+#define MH_DEBUG_REG14_SET_ALWAYS_ZERO(mh_debug_reg14_reg, always_zero) \
+ mh_debug_reg14_reg = (mh_debug_reg14_reg & ~MH_DEBUG_REG14_ALWAYS_ZERO_MASK) | (always_zero << MH_DEBUG_REG14_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG14_SET_RB_MH_send(mh_debug_reg14_reg, rb_mh_send) \
+ mh_debug_reg14_reg = (mh_debug_reg14_reg & ~MH_DEBUG_REG14_RB_MH_send_MASK) | (rb_mh_send << MH_DEBUG_REG14_RB_MH_send_SHIFT)
+#define MH_DEBUG_REG14_SET_RB_MH_addr_31_5(mh_debug_reg14_reg, rb_mh_addr_31_5) \
+ mh_debug_reg14_reg = (mh_debug_reg14_reg & ~MH_DEBUG_REG14_RB_MH_addr_31_5_MASK) | (rb_mh_addr_31_5 << MH_DEBUG_REG14_RB_MH_addr_31_5_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg14_t {
+ unsigned int always_zero : MH_DEBUG_REG14_ALWAYS_ZERO_SIZE;
+ unsigned int rb_mh_send : MH_DEBUG_REG14_RB_MH_send_SIZE;
+ unsigned int rb_mh_addr_31_5 : MH_DEBUG_REG14_RB_MH_addr_31_5_SIZE;
+ } mh_debug_reg14_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg14_t {
+ unsigned int rb_mh_addr_31_5 : MH_DEBUG_REG14_RB_MH_addr_31_5_SIZE;
+ unsigned int rb_mh_send : MH_DEBUG_REG14_RB_MH_send_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG14_ALWAYS_ZERO_SIZE;
+ } mh_debug_reg14_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg14_t f;
+} mh_debug_reg14_u;
+
+
+/*
+ * MH_DEBUG_REG15 struct
+ */
+
+#define MH_DEBUG_REG15_RB_MH_data_31_0_SIZE 32
+
+#define MH_DEBUG_REG15_RB_MH_data_31_0_SHIFT 0
+
+#define MH_DEBUG_REG15_RB_MH_data_31_0_MASK 0xffffffff
+
+#define MH_DEBUG_REG15_MASK \
+ (MH_DEBUG_REG15_RB_MH_data_31_0_MASK)
+
+#define MH_DEBUG_REG15(rb_mh_data_31_0) \
+ ((rb_mh_data_31_0 << MH_DEBUG_REG15_RB_MH_data_31_0_SHIFT))
+
+#define MH_DEBUG_REG15_GET_RB_MH_data_31_0(mh_debug_reg15) \
+ ((mh_debug_reg15 & MH_DEBUG_REG15_RB_MH_data_31_0_MASK) >> MH_DEBUG_REG15_RB_MH_data_31_0_SHIFT)
+
+#define MH_DEBUG_REG15_SET_RB_MH_data_31_0(mh_debug_reg15_reg, rb_mh_data_31_0) \
+ mh_debug_reg15_reg = (mh_debug_reg15_reg & ~MH_DEBUG_REG15_RB_MH_data_31_0_MASK) | (rb_mh_data_31_0 << MH_DEBUG_REG15_RB_MH_data_31_0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg15_t {
+ unsigned int rb_mh_data_31_0 : MH_DEBUG_REG15_RB_MH_data_31_0_SIZE;
+ } mh_debug_reg15_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg15_t {
+ unsigned int rb_mh_data_31_0 : MH_DEBUG_REG15_RB_MH_data_31_0_SIZE;
+ } mh_debug_reg15_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg15_t f;
+} mh_debug_reg15_u;
+
+
+/*
+ * MH_DEBUG_REG16 struct
+ */
+
+#define MH_DEBUG_REG16_RB_MH_data_63_32_SIZE 32
+
+#define MH_DEBUG_REG16_RB_MH_data_63_32_SHIFT 0
+
+#define MH_DEBUG_REG16_RB_MH_data_63_32_MASK 0xffffffff
+
+#define MH_DEBUG_REG16_MASK \
+ (MH_DEBUG_REG16_RB_MH_data_63_32_MASK)
+
+#define MH_DEBUG_REG16(rb_mh_data_63_32) \
+ ((rb_mh_data_63_32 << MH_DEBUG_REG16_RB_MH_data_63_32_SHIFT))
+
+#define MH_DEBUG_REG16_GET_RB_MH_data_63_32(mh_debug_reg16) \
+ ((mh_debug_reg16 & MH_DEBUG_REG16_RB_MH_data_63_32_MASK) >> MH_DEBUG_REG16_RB_MH_data_63_32_SHIFT)
+
+#define MH_DEBUG_REG16_SET_RB_MH_data_63_32(mh_debug_reg16_reg, rb_mh_data_63_32) \
+ mh_debug_reg16_reg = (mh_debug_reg16_reg & ~MH_DEBUG_REG16_RB_MH_data_63_32_MASK) | (rb_mh_data_63_32 << MH_DEBUG_REG16_RB_MH_data_63_32_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg16_t {
+ unsigned int rb_mh_data_63_32 : MH_DEBUG_REG16_RB_MH_data_63_32_SIZE;
+ } mh_debug_reg16_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg16_t {
+ unsigned int rb_mh_data_63_32 : MH_DEBUG_REG16_RB_MH_data_63_32_SIZE;
+ } mh_debug_reg16_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg16_t f;
+} mh_debug_reg16_u;
+
+
+/*
+ * MH_DEBUG_REG17 struct
+ */
+
+#define MH_DEBUG_REG17_AVALID_q_SIZE 1
+#define MH_DEBUG_REG17_AREADY_q_SIZE 1
+#define MH_DEBUG_REG17_AID_q_SIZE 3
+#define MH_DEBUG_REG17_ALEN_q_2_0_SIZE 3
+#define MH_DEBUG_REG17_ARVALID_q_SIZE 1
+#define MH_DEBUG_REG17_ARREADY_q_SIZE 1
+#define MH_DEBUG_REG17_ARID_q_SIZE 3
+#define MH_DEBUG_REG17_ARLEN_q_1_0_SIZE 2
+#define MH_DEBUG_REG17_RVALID_q_SIZE 1
+#define MH_DEBUG_REG17_RREADY_q_SIZE 1
+#define MH_DEBUG_REG17_RLAST_q_SIZE 1
+#define MH_DEBUG_REG17_RID_q_SIZE 3
+#define MH_DEBUG_REG17_WVALID_q_SIZE 1
+#define MH_DEBUG_REG17_WREADY_q_SIZE 1
+#define MH_DEBUG_REG17_WLAST_q_SIZE 1
+#define MH_DEBUG_REG17_WID_q_SIZE 3
+#define MH_DEBUG_REG17_BVALID_q_SIZE 1
+#define MH_DEBUG_REG17_BREADY_q_SIZE 1
+#define MH_DEBUG_REG17_BID_q_SIZE 3
+
+#define MH_DEBUG_REG17_AVALID_q_SHIFT 0
+#define MH_DEBUG_REG17_AREADY_q_SHIFT 1
+#define MH_DEBUG_REG17_AID_q_SHIFT 2
+#define MH_DEBUG_REG17_ALEN_q_2_0_SHIFT 5
+#define MH_DEBUG_REG17_ARVALID_q_SHIFT 8
+#define MH_DEBUG_REG17_ARREADY_q_SHIFT 9
+#define MH_DEBUG_REG17_ARID_q_SHIFT 10
+#define MH_DEBUG_REG17_ARLEN_q_1_0_SHIFT 13
+#define MH_DEBUG_REG17_RVALID_q_SHIFT 15
+#define MH_DEBUG_REG17_RREADY_q_SHIFT 16
+#define MH_DEBUG_REG17_RLAST_q_SHIFT 17
+#define MH_DEBUG_REG17_RID_q_SHIFT 18
+#define MH_DEBUG_REG17_WVALID_q_SHIFT 21
+#define MH_DEBUG_REG17_WREADY_q_SHIFT 22
+#define MH_DEBUG_REG17_WLAST_q_SHIFT 23
+#define MH_DEBUG_REG17_WID_q_SHIFT 24
+#define MH_DEBUG_REG17_BVALID_q_SHIFT 27
+#define MH_DEBUG_REG17_BREADY_q_SHIFT 28
+#define MH_DEBUG_REG17_BID_q_SHIFT 29
+
+#define MH_DEBUG_REG17_AVALID_q_MASK 0x00000001
+#define MH_DEBUG_REG17_AREADY_q_MASK 0x00000002
+#define MH_DEBUG_REG17_AID_q_MASK 0x0000001c
+#define MH_DEBUG_REG17_ALEN_q_2_0_MASK 0x000000e0
+#define MH_DEBUG_REG17_ARVALID_q_MASK 0x00000100
+#define MH_DEBUG_REG17_ARREADY_q_MASK 0x00000200
+#define MH_DEBUG_REG17_ARID_q_MASK 0x00001c00
+#define MH_DEBUG_REG17_ARLEN_q_1_0_MASK 0x00006000
+#define MH_DEBUG_REG17_RVALID_q_MASK 0x00008000
+#define MH_DEBUG_REG17_RREADY_q_MASK 0x00010000
+#define MH_DEBUG_REG17_RLAST_q_MASK 0x00020000
+#define MH_DEBUG_REG17_RID_q_MASK 0x001c0000
+#define MH_DEBUG_REG17_WVALID_q_MASK 0x00200000
+#define MH_DEBUG_REG17_WREADY_q_MASK 0x00400000
+#define MH_DEBUG_REG17_WLAST_q_MASK 0x00800000
+#define MH_DEBUG_REG17_WID_q_MASK 0x07000000
+#define MH_DEBUG_REG17_BVALID_q_MASK 0x08000000
+#define MH_DEBUG_REG17_BREADY_q_MASK 0x10000000
+#define MH_DEBUG_REG17_BID_q_MASK 0xe0000000
+
+#define MH_DEBUG_REG17_MASK \
+ (MH_DEBUG_REG17_AVALID_q_MASK | \
+ MH_DEBUG_REG17_AREADY_q_MASK | \
+ MH_DEBUG_REG17_AID_q_MASK | \
+ MH_DEBUG_REG17_ALEN_q_2_0_MASK | \
+ MH_DEBUG_REG17_ARVALID_q_MASK | \
+ MH_DEBUG_REG17_ARREADY_q_MASK | \
+ MH_DEBUG_REG17_ARID_q_MASK | \
+ MH_DEBUG_REG17_ARLEN_q_1_0_MASK | \
+ MH_DEBUG_REG17_RVALID_q_MASK | \
+ MH_DEBUG_REG17_RREADY_q_MASK | \
+ MH_DEBUG_REG17_RLAST_q_MASK | \
+ MH_DEBUG_REG17_RID_q_MASK | \
+ MH_DEBUG_REG17_WVALID_q_MASK | \
+ MH_DEBUG_REG17_WREADY_q_MASK | \
+ MH_DEBUG_REG17_WLAST_q_MASK | \
+ MH_DEBUG_REG17_WID_q_MASK | \
+ MH_DEBUG_REG17_BVALID_q_MASK | \
+ MH_DEBUG_REG17_BREADY_q_MASK | \
+ MH_DEBUG_REG17_BID_q_MASK)
+
+#define MH_DEBUG_REG17(avalid_q, aready_q, aid_q, alen_q_2_0, arvalid_q, arready_q, arid_q, arlen_q_1_0, rvalid_q, rready_q, rlast_q, rid_q, wvalid_q, wready_q, wlast_q, wid_q, bvalid_q, bready_q, bid_q) \
+ ((avalid_q << MH_DEBUG_REG17_AVALID_q_SHIFT) | \
+ (aready_q << MH_DEBUG_REG17_AREADY_q_SHIFT) | \
+ (aid_q << MH_DEBUG_REG17_AID_q_SHIFT) | \
+ (alen_q_2_0 << MH_DEBUG_REG17_ALEN_q_2_0_SHIFT) | \
+ (arvalid_q << MH_DEBUG_REG17_ARVALID_q_SHIFT) | \
+ (arready_q << MH_DEBUG_REG17_ARREADY_q_SHIFT) | \
+ (arid_q << MH_DEBUG_REG17_ARID_q_SHIFT) | \
+ (arlen_q_1_0 << MH_DEBUG_REG17_ARLEN_q_1_0_SHIFT) | \
+ (rvalid_q << MH_DEBUG_REG17_RVALID_q_SHIFT) | \
+ (rready_q << MH_DEBUG_REG17_RREADY_q_SHIFT) | \
+ (rlast_q << MH_DEBUG_REG17_RLAST_q_SHIFT) | \
+ (rid_q << MH_DEBUG_REG17_RID_q_SHIFT) | \
+ (wvalid_q << MH_DEBUG_REG17_WVALID_q_SHIFT) | \
+ (wready_q << MH_DEBUG_REG17_WREADY_q_SHIFT) | \
+ (wlast_q << MH_DEBUG_REG17_WLAST_q_SHIFT) | \
+ (wid_q << MH_DEBUG_REG17_WID_q_SHIFT) | \
+ (bvalid_q << MH_DEBUG_REG17_BVALID_q_SHIFT) | \
+ (bready_q << MH_DEBUG_REG17_BREADY_q_SHIFT) | \
+ (bid_q << MH_DEBUG_REG17_BID_q_SHIFT))
+
+#define MH_DEBUG_REG17_GET_AVALID_q(mh_debug_reg17) \
+ ((mh_debug_reg17 & MH_DEBUG_REG17_AVALID_q_MASK) >> MH_DEBUG_REG17_AVALID_q_SHIFT)
+#define MH_DEBUG_REG17_GET_AREADY_q(mh_debug_reg17) \
+ ((mh_debug_reg17 & MH_DEBUG_REG17_AREADY_q_MASK) >> MH_DEBUG_REG17_AREADY_q_SHIFT)
+#define MH_DEBUG_REG17_GET_AID_q(mh_debug_reg17) \
+ ((mh_debug_reg17 & MH_DEBUG_REG17_AID_q_MASK) >> MH_DEBUG_REG17_AID_q_SHIFT)
+#define MH_DEBUG_REG17_GET_ALEN_q_2_0(mh_debug_reg17) \
+ ((mh_debug_reg17 & MH_DEBUG_REG17_ALEN_q_2_0_MASK) >> MH_DEBUG_REG17_ALEN_q_2_0_SHIFT)
+#define MH_DEBUG_REG17_GET_ARVALID_q(mh_debug_reg17) \
+ ((mh_debug_reg17 & MH_DEBUG_REG17_ARVALID_q_MASK) >> MH_DEBUG_REG17_ARVALID_q_SHIFT)
+#define MH_DEBUG_REG17_GET_ARREADY_q(mh_debug_reg17) \
+ ((mh_debug_reg17 & MH_DEBUG_REG17_ARREADY_q_MASK) >> MH_DEBUG_REG17_ARREADY_q_SHIFT)
+#define MH_DEBUG_REG17_GET_ARID_q(mh_debug_reg17) \
+ ((mh_debug_reg17 & MH_DEBUG_REG17_ARID_q_MASK) >> MH_DEBUG_REG17_ARID_q_SHIFT)
+#define MH_DEBUG_REG17_GET_ARLEN_q_1_0(mh_debug_reg17) \
+ ((mh_debug_reg17 & MH_DEBUG_REG17_ARLEN_q_1_0_MASK) >> MH_DEBUG_REG17_ARLEN_q_1_0_SHIFT)
+#define MH_DEBUG_REG17_GET_RVALID_q(mh_debug_reg17) \
+ ((mh_debug_reg17 & MH_DEBUG_REG17_RVALID_q_MASK) >> MH_DEBUG_REG17_RVALID_q_SHIFT)
+#define MH_DEBUG_REG17_GET_RREADY_q(mh_debug_reg17) \
+ ((mh_debug_reg17 & MH_DEBUG_REG17_RREADY_q_MASK) >> MH_DEBUG_REG17_RREADY_q_SHIFT)
+#define MH_DEBUG_REG17_GET_RLAST_q(mh_debug_reg17) \
+ ((mh_debug_reg17 & MH_DEBUG_REG17_RLAST_q_MASK) >> MH_DEBUG_REG17_RLAST_q_SHIFT)
+#define MH_DEBUG_REG17_GET_RID_q(mh_debug_reg17) \
+ ((mh_debug_reg17 & MH_DEBUG_REG17_RID_q_MASK) >> MH_DEBUG_REG17_RID_q_SHIFT)
+#define MH_DEBUG_REG17_GET_WVALID_q(mh_debug_reg17) \
+ ((mh_debug_reg17 & MH_DEBUG_REG17_WVALID_q_MASK) >> MH_DEBUG_REG17_WVALID_q_SHIFT)
+#define MH_DEBUG_REG17_GET_WREADY_q(mh_debug_reg17) \
+ ((mh_debug_reg17 & MH_DEBUG_REG17_WREADY_q_MASK) >> MH_DEBUG_REG17_WREADY_q_SHIFT)
+#define MH_DEBUG_REG17_GET_WLAST_q(mh_debug_reg17) \
+ ((mh_debug_reg17 & MH_DEBUG_REG17_WLAST_q_MASK) >> MH_DEBUG_REG17_WLAST_q_SHIFT)
+#define MH_DEBUG_REG17_GET_WID_q(mh_debug_reg17) \
+ ((mh_debug_reg17 & MH_DEBUG_REG17_WID_q_MASK) >> MH_DEBUG_REG17_WID_q_SHIFT)
+#define MH_DEBUG_REG17_GET_BVALID_q(mh_debug_reg17) \
+ ((mh_debug_reg17 & MH_DEBUG_REG17_BVALID_q_MASK) >> MH_DEBUG_REG17_BVALID_q_SHIFT)
+#define MH_DEBUG_REG17_GET_BREADY_q(mh_debug_reg17) \
+ ((mh_debug_reg17 & MH_DEBUG_REG17_BREADY_q_MASK) >> MH_DEBUG_REG17_BREADY_q_SHIFT)
+#define MH_DEBUG_REG17_GET_BID_q(mh_debug_reg17) \
+ ((mh_debug_reg17 & MH_DEBUG_REG17_BID_q_MASK) >> MH_DEBUG_REG17_BID_q_SHIFT)
+
+#define MH_DEBUG_REG17_SET_AVALID_q(mh_debug_reg17_reg, avalid_q) \
+ mh_debug_reg17_reg = (mh_debug_reg17_reg & ~MH_DEBUG_REG17_AVALID_q_MASK) | (avalid_q << MH_DEBUG_REG17_AVALID_q_SHIFT)
+#define MH_DEBUG_REG17_SET_AREADY_q(mh_debug_reg17_reg, aready_q) \
+ mh_debug_reg17_reg = (mh_debug_reg17_reg & ~MH_DEBUG_REG17_AREADY_q_MASK) | (aready_q << MH_DEBUG_REG17_AREADY_q_SHIFT)
+#define MH_DEBUG_REG17_SET_AID_q(mh_debug_reg17_reg, aid_q) \
+ mh_debug_reg17_reg = (mh_debug_reg17_reg & ~MH_DEBUG_REG17_AID_q_MASK) | (aid_q << MH_DEBUG_REG17_AID_q_SHIFT)
+#define MH_DEBUG_REG17_SET_ALEN_q_2_0(mh_debug_reg17_reg, alen_q_2_0) \
+ mh_debug_reg17_reg = (mh_debug_reg17_reg & ~MH_DEBUG_REG17_ALEN_q_2_0_MASK) | (alen_q_2_0 << MH_DEBUG_REG17_ALEN_q_2_0_SHIFT)
+#define MH_DEBUG_REG17_SET_ARVALID_q(mh_debug_reg17_reg, arvalid_q) \
+ mh_debug_reg17_reg = (mh_debug_reg17_reg & ~MH_DEBUG_REG17_ARVALID_q_MASK) | (arvalid_q << MH_DEBUG_REG17_ARVALID_q_SHIFT)
+#define MH_DEBUG_REG17_SET_ARREADY_q(mh_debug_reg17_reg, arready_q) \
+ mh_debug_reg17_reg = (mh_debug_reg17_reg & ~MH_DEBUG_REG17_ARREADY_q_MASK) | (arready_q << MH_DEBUG_REG17_ARREADY_q_SHIFT)
+#define MH_DEBUG_REG17_SET_ARID_q(mh_debug_reg17_reg, arid_q) \
+ mh_debug_reg17_reg = (mh_debug_reg17_reg & ~MH_DEBUG_REG17_ARID_q_MASK) | (arid_q << MH_DEBUG_REG17_ARID_q_SHIFT)
+#define MH_DEBUG_REG17_SET_ARLEN_q_1_0(mh_debug_reg17_reg, arlen_q_1_0) \
+ mh_debug_reg17_reg = (mh_debug_reg17_reg & ~MH_DEBUG_REG17_ARLEN_q_1_0_MASK) | (arlen_q_1_0 << MH_DEBUG_REG17_ARLEN_q_1_0_SHIFT)
+#define MH_DEBUG_REG17_SET_RVALID_q(mh_debug_reg17_reg, rvalid_q) \
+ mh_debug_reg17_reg = (mh_debug_reg17_reg & ~MH_DEBUG_REG17_RVALID_q_MASK) | (rvalid_q << MH_DEBUG_REG17_RVALID_q_SHIFT)
+#define MH_DEBUG_REG17_SET_RREADY_q(mh_debug_reg17_reg, rready_q) \
+ mh_debug_reg17_reg = (mh_debug_reg17_reg & ~MH_DEBUG_REG17_RREADY_q_MASK) | (rready_q << MH_DEBUG_REG17_RREADY_q_SHIFT)
+#define MH_DEBUG_REG17_SET_RLAST_q(mh_debug_reg17_reg, rlast_q) \
+ mh_debug_reg17_reg = (mh_debug_reg17_reg & ~MH_DEBUG_REG17_RLAST_q_MASK) | (rlast_q << MH_DEBUG_REG17_RLAST_q_SHIFT)
+#define MH_DEBUG_REG17_SET_RID_q(mh_debug_reg17_reg, rid_q) \
+ mh_debug_reg17_reg = (mh_debug_reg17_reg & ~MH_DEBUG_REG17_RID_q_MASK) | (rid_q << MH_DEBUG_REG17_RID_q_SHIFT)
+#define MH_DEBUG_REG17_SET_WVALID_q(mh_debug_reg17_reg, wvalid_q) \
+ mh_debug_reg17_reg = (mh_debug_reg17_reg & ~MH_DEBUG_REG17_WVALID_q_MASK) | (wvalid_q << MH_DEBUG_REG17_WVALID_q_SHIFT)
+#define MH_DEBUG_REG17_SET_WREADY_q(mh_debug_reg17_reg, wready_q) \
+ mh_debug_reg17_reg = (mh_debug_reg17_reg & ~MH_DEBUG_REG17_WREADY_q_MASK) | (wready_q << MH_DEBUG_REG17_WREADY_q_SHIFT)
+#define MH_DEBUG_REG17_SET_WLAST_q(mh_debug_reg17_reg, wlast_q) \
+ mh_debug_reg17_reg = (mh_debug_reg17_reg & ~MH_DEBUG_REG17_WLAST_q_MASK) | (wlast_q << MH_DEBUG_REG17_WLAST_q_SHIFT)
+#define MH_DEBUG_REG17_SET_WID_q(mh_debug_reg17_reg, wid_q) \
+ mh_debug_reg17_reg = (mh_debug_reg17_reg & ~MH_DEBUG_REG17_WID_q_MASK) | (wid_q << MH_DEBUG_REG17_WID_q_SHIFT)
+#define MH_DEBUG_REG17_SET_BVALID_q(mh_debug_reg17_reg, bvalid_q) \
+ mh_debug_reg17_reg = (mh_debug_reg17_reg & ~MH_DEBUG_REG17_BVALID_q_MASK) | (bvalid_q << MH_DEBUG_REG17_BVALID_q_SHIFT)
+#define MH_DEBUG_REG17_SET_BREADY_q(mh_debug_reg17_reg, bready_q) \
+ mh_debug_reg17_reg = (mh_debug_reg17_reg & ~MH_DEBUG_REG17_BREADY_q_MASK) | (bready_q << MH_DEBUG_REG17_BREADY_q_SHIFT)
+#define MH_DEBUG_REG17_SET_BID_q(mh_debug_reg17_reg, bid_q) \
+ mh_debug_reg17_reg = (mh_debug_reg17_reg & ~MH_DEBUG_REG17_BID_q_MASK) | (bid_q << MH_DEBUG_REG17_BID_q_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg17_t {
+ unsigned int avalid_q : MH_DEBUG_REG17_AVALID_q_SIZE;
+ unsigned int aready_q : MH_DEBUG_REG17_AREADY_q_SIZE;
+ unsigned int aid_q : MH_DEBUG_REG17_AID_q_SIZE;
+ unsigned int alen_q_2_0 : MH_DEBUG_REG17_ALEN_q_2_0_SIZE;
+ unsigned int arvalid_q : MH_DEBUG_REG17_ARVALID_q_SIZE;
+ unsigned int arready_q : MH_DEBUG_REG17_ARREADY_q_SIZE;
+ unsigned int arid_q : MH_DEBUG_REG17_ARID_q_SIZE;
+ unsigned int arlen_q_1_0 : MH_DEBUG_REG17_ARLEN_q_1_0_SIZE;
+ unsigned int rvalid_q : MH_DEBUG_REG17_RVALID_q_SIZE;
+ unsigned int rready_q : MH_DEBUG_REG17_RREADY_q_SIZE;
+ unsigned int rlast_q : MH_DEBUG_REG17_RLAST_q_SIZE;
+ unsigned int rid_q : MH_DEBUG_REG17_RID_q_SIZE;
+ unsigned int wvalid_q : MH_DEBUG_REG17_WVALID_q_SIZE;
+ unsigned int wready_q : MH_DEBUG_REG17_WREADY_q_SIZE;
+ unsigned int wlast_q : MH_DEBUG_REG17_WLAST_q_SIZE;
+ unsigned int wid_q : MH_DEBUG_REG17_WID_q_SIZE;
+ unsigned int bvalid_q : MH_DEBUG_REG17_BVALID_q_SIZE;
+ unsigned int bready_q : MH_DEBUG_REG17_BREADY_q_SIZE;
+ unsigned int bid_q : MH_DEBUG_REG17_BID_q_SIZE;
+ } mh_debug_reg17_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg17_t {
+ unsigned int bid_q : MH_DEBUG_REG17_BID_q_SIZE;
+ unsigned int bready_q : MH_DEBUG_REG17_BREADY_q_SIZE;
+ unsigned int bvalid_q : MH_DEBUG_REG17_BVALID_q_SIZE;
+ unsigned int wid_q : MH_DEBUG_REG17_WID_q_SIZE;
+ unsigned int wlast_q : MH_DEBUG_REG17_WLAST_q_SIZE;
+ unsigned int wready_q : MH_DEBUG_REG17_WREADY_q_SIZE;
+ unsigned int wvalid_q : MH_DEBUG_REG17_WVALID_q_SIZE;
+ unsigned int rid_q : MH_DEBUG_REG17_RID_q_SIZE;
+ unsigned int rlast_q : MH_DEBUG_REG17_RLAST_q_SIZE;
+ unsigned int rready_q : MH_DEBUG_REG17_RREADY_q_SIZE;
+ unsigned int rvalid_q : MH_DEBUG_REG17_RVALID_q_SIZE;
+ unsigned int arlen_q_1_0 : MH_DEBUG_REG17_ARLEN_q_1_0_SIZE;
+ unsigned int arid_q : MH_DEBUG_REG17_ARID_q_SIZE;
+ unsigned int arready_q : MH_DEBUG_REG17_ARREADY_q_SIZE;
+ unsigned int arvalid_q : MH_DEBUG_REG17_ARVALID_q_SIZE;
+ unsigned int alen_q_2_0 : MH_DEBUG_REG17_ALEN_q_2_0_SIZE;
+ unsigned int aid_q : MH_DEBUG_REG17_AID_q_SIZE;
+ unsigned int aready_q : MH_DEBUG_REG17_AREADY_q_SIZE;
+ unsigned int avalid_q : MH_DEBUG_REG17_AVALID_q_SIZE;
+ } mh_debug_reg17_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg17_t f;
+} mh_debug_reg17_u;
+
+
+/*
+ * MH_DEBUG_REG18 struct
+ */
+
+#define MH_DEBUG_REG18_AVALID_q_SIZE 1
+#define MH_DEBUG_REG18_AREADY_q_SIZE 1
+#define MH_DEBUG_REG18_AID_q_SIZE 3
+#define MH_DEBUG_REG18_ALEN_q_1_0_SIZE 2
+#define MH_DEBUG_REG18_ARVALID_q_SIZE 1
+#define MH_DEBUG_REG18_ARREADY_q_SIZE 1
+#define MH_DEBUG_REG18_ARID_q_SIZE 3
+#define MH_DEBUG_REG18_ARLEN_q_1_1_SIZE 1
+#define MH_DEBUG_REG18_WVALID_q_SIZE 1
+#define MH_DEBUG_REG18_WREADY_q_SIZE 1
+#define MH_DEBUG_REG18_WLAST_q_SIZE 1
+#define MH_DEBUG_REG18_WID_q_SIZE 3
+#define MH_DEBUG_REG18_WSTRB_q_SIZE 8
+#define MH_DEBUG_REG18_BVALID_q_SIZE 1
+#define MH_DEBUG_REG18_BREADY_q_SIZE 1
+#define MH_DEBUG_REG18_BID_q_SIZE 3
+
+#define MH_DEBUG_REG18_AVALID_q_SHIFT 0
+#define MH_DEBUG_REG18_AREADY_q_SHIFT 1
+#define MH_DEBUG_REG18_AID_q_SHIFT 2
+#define MH_DEBUG_REG18_ALEN_q_1_0_SHIFT 5
+#define MH_DEBUG_REG18_ARVALID_q_SHIFT 7
+#define MH_DEBUG_REG18_ARREADY_q_SHIFT 8
+#define MH_DEBUG_REG18_ARID_q_SHIFT 9
+#define MH_DEBUG_REG18_ARLEN_q_1_1_SHIFT 12
+#define MH_DEBUG_REG18_WVALID_q_SHIFT 13
+#define MH_DEBUG_REG18_WREADY_q_SHIFT 14
+#define MH_DEBUG_REG18_WLAST_q_SHIFT 15
+#define MH_DEBUG_REG18_WID_q_SHIFT 16
+#define MH_DEBUG_REG18_WSTRB_q_SHIFT 19
+#define MH_DEBUG_REG18_BVALID_q_SHIFT 27
+#define MH_DEBUG_REG18_BREADY_q_SHIFT 28
+#define MH_DEBUG_REG18_BID_q_SHIFT 29
+
+#define MH_DEBUG_REG18_AVALID_q_MASK 0x00000001
+#define MH_DEBUG_REG18_AREADY_q_MASK 0x00000002
+#define MH_DEBUG_REG18_AID_q_MASK 0x0000001c
+#define MH_DEBUG_REG18_ALEN_q_1_0_MASK 0x00000060
+#define MH_DEBUG_REG18_ARVALID_q_MASK 0x00000080
+#define MH_DEBUG_REG18_ARREADY_q_MASK 0x00000100
+#define MH_DEBUG_REG18_ARID_q_MASK 0x00000e00
+#define MH_DEBUG_REG18_ARLEN_q_1_1_MASK 0x00001000
+#define MH_DEBUG_REG18_WVALID_q_MASK 0x00002000
+#define MH_DEBUG_REG18_WREADY_q_MASK 0x00004000
+#define MH_DEBUG_REG18_WLAST_q_MASK 0x00008000
+#define MH_DEBUG_REG18_WID_q_MASK 0x00070000
+#define MH_DEBUG_REG18_WSTRB_q_MASK 0x07f80000
+#define MH_DEBUG_REG18_BVALID_q_MASK 0x08000000
+#define MH_DEBUG_REG18_BREADY_q_MASK 0x10000000
+#define MH_DEBUG_REG18_BID_q_MASK 0xe0000000
+
+#define MH_DEBUG_REG18_MASK \
+ (MH_DEBUG_REG18_AVALID_q_MASK | \
+ MH_DEBUG_REG18_AREADY_q_MASK | \
+ MH_DEBUG_REG18_AID_q_MASK | \
+ MH_DEBUG_REG18_ALEN_q_1_0_MASK | \
+ MH_DEBUG_REG18_ARVALID_q_MASK | \
+ MH_DEBUG_REG18_ARREADY_q_MASK | \
+ MH_DEBUG_REG18_ARID_q_MASK | \
+ MH_DEBUG_REG18_ARLEN_q_1_1_MASK | \
+ MH_DEBUG_REG18_WVALID_q_MASK | \
+ MH_DEBUG_REG18_WREADY_q_MASK | \
+ MH_DEBUG_REG18_WLAST_q_MASK | \
+ MH_DEBUG_REG18_WID_q_MASK | \
+ MH_DEBUG_REG18_WSTRB_q_MASK | \
+ MH_DEBUG_REG18_BVALID_q_MASK | \
+ MH_DEBUG_REG18_BREADY_q_MASK | \
+ MH_DEBUG_REG18_BID_q_MASK)
+
+#define MH_DEBUG_REG18(avalid_q, aready_q, aid_q, alen_q_1_0, arvalid_q, arready_q, arid_q, arlen_q_1_1, wvalid_q, wready_q, wlast_q, wid_q, wstrb_q, bvalid_q, bready_q, bid_q) \
+ ((avalid_q << MH_DEBUG_REG18_AVALID_q_SHIFT) | \
+ (aready_q << MH_DEBUG_REG18_AREADY_q_SHIFT) | \
+ (aid_q << MH_DEBUG_REG18_AID_q_SHIFT) | \
+ (alen_q_1_0 << MH_DEBUG_REG18_ALEN_q_1_0_SHIFT) | \
+ (arvalid_q << MH_DEBUG_REG18_ARVALID_q_SHIFT) | \
+ (arready_q << MH_DEBUG_REG18_ARREADY_q_SHIFT) | \
+ (arid_q << MH_DEBUG_REG18_ARID_q_SHIFT) | \
+ (arlen_q_1_1 << MH_DEBUG_REG18_ARLEN_q_1_1_SHIFT) | \
+ (wvalid_q << MH_DEBUG_REG18_WVALID_q_SHIFT) | \
+ (wready_q << MH_DEBUG_REG18_WREADY_q_SHIFT) | \
+ (wlast_q << MH_DEBUG_REG18_WLAST_q_SHIFT) | \
+ (wid_q << MH_DEBUG_REG18_WID_q_SHIFT) | \
+ (wstrb_q << MH_DEBUG_REG18_WSTRB_q_SHIFT) | \
+ (bvalid_q << MH_DEBUG_REG18_BVALID_q_SHIFT) | \
+ (bready_q << MH_DEBUG_REG18_BREADY_q_SHIFT) | \
+ (bid_q << MH_DEBUG_REG18_BID_q_SHIFT))
+
+#define MH_DEBUG_REG18_GET_AVALID_q(mh_debug_reg18) \
+ ((mh_debug_reg18 & MH_DEBUG_REG18_AVALID_q_MASK) >> MH_DEBUG_REG18_AVALID_q_SHIFT)
+#define MH_DEBUG_REG18_GET_AREADY_q(mh_debug_reg18) \
+ ((mh_debug_reg18 & MH_DEBUG_REG18_AREADY_q_MASK) >> MH_DEBUG_REG18_AREADY_q_SHIFT)
+#define MH_DEBUG_REG18_GET_AID_q(mh_debug_reg18) \
+ ((mh_debug_reg18 & MH_DEBUG_REG18_AID_q_MASK) >> MH_DEBUG_REG18_AID_q_SHIFT)
+#define MH_DEBUG_REG18_GET_ALEN_q_1_0(mh_debug_reg18) \
+ ((mh_debug_reg18 & MH_DEBUG_REG18_ALEN_q_1_0_MASK) >> MH_DEBUG_REG18_ALEN_q_1_0_SHIFT)
+#define MH_DEBUG_REG18_GET_ARVALID_q(mh_debug_reg18) \
+ ((mh_debug_reg18 & MH_DEBUG_REG18_ARVALID_q_MASK) >> MH_DEBUG_REG18_ARVALID_q_SHIFT)
+#define MH_DEBUG_REG18_GET_ARREADY_q(mh_debug_reg18) \
+ ((mh_debug_reg18 & MH_DEBUG_REG18_ARREADY_q_MASK) >> MH_DEBUG_REG18_ARREADY_q_SHIFT)
+#define MH_DEBUG_REG18_GET_ARID_q(mh_debug_reg18) \
+ ((mh_debug_reg18 & MH_DEBUG_REG18_ARID_q_MASK) >> MH_DEBUG_REG18_ARID_q_SHIFT)
+#define MH_DEBUG_REG18_GET_ARLEN_q_1_1(mh_debug_reg18) \
+ ((mh_debug_reg18 & MH_DEBUG_REG18_ARLEN_q_1_1_MASK) >> MH_DEBUG_REG18_ARLEN_q_1_1_SHIFT)
+#define MH_DEBUG_REG18_GET_WVALID_q(mh_debug_reg18) \
+ ((mh_debug_reg18 & MH_DEBUG_REG18_WVALID_q_MASK) >> MH_DEBUG_REG18_WVALID_q_SHIFT)
+#define MH_DEBUG_REG18_GET_WREADY_q(mh_debug_reg18) \
+ ((mh_debug_reg18 & MH_DEBUG_REG18_WREADY_q_MASK) >> MH_DEBUG_REG18_WREADY_q_SHIFT)
+#define MH_DEBUG_REG18_GET_WLAST_q(mh_debug_reg18) \
+ ((mh_debug_reg18 & MH_DEBUG_REG18_WLAST_q_MASK) >> MH_DEBUG_REG18_WLAST_q_SHIFT)
+#define MH_DEBUG_REG18_GET_WID_q(mh_debug_reg18) \
+ ((mh_debug_reg18 & MH_DEBUG_REG18_WID_q_MASK) >> MH_DEBUG_REG18_WID_q_SHIFT)
+#define MH_DEBUG_REG18_GET_WSTRB_q(mh_debug_reg18) \
+ ((mh_debug_reg18 & MH_DEBUG_REG18_WSTRB_q_MASK) >> MH_DEBUG_REG18_WSTRB_q_SHIFT)
+#define MH_DEBUG_REG18_GET_BVALID_q(mh_debug_reg18) \
+ ((mh_debug_reg18 & MH_DEBUG_REG18_BVALID_q_MASK) >> MH_DEBUG_REG18_BVALID_q_SHIFT)
+#define MH_DEBUG_REG18_GET_BREADY_q(mh_debug_reg18) \
+ ((mh_debug_reg18 & MH_DEBUG_REG18_BREADY_q_MASK) >> MH_DEBUG_REG18_BREADY_q_SHIFT)
+#define MH_DEBUG_REG18_GET_BID_q(mh_debug_reg18) \
+ ((mh_debug_reg18 & MH_DEBUG_REG18_BID_q_MASK) >> MH_DEBUG_REG18_BID_q_SHIFT)
+
+#define MH_DEBUG_REG18_SET_AVALID_q(mh_debug_reg18_reg, avalid_q) \
+ mh_debug_reg18_reg = (mh_debug_reg18_reg & ~MH_DEBUG_REG18_AVALID_q_MASK) | (avalid_q << MH_DEBUG_REG18_AVALID_q_SHIFT)
+#define MH_DEBUG_REG18_SET_AREADY_q(mh_debug_reg18_reg, aready_q) \
+ mh_debug_reg18_reg = (mh_debug_reg18_reg & ~MH_DEBUG_REG18_AREADY_q_MASK) | (aready_q << MH_DEBUG_REG18_AREADY_q_SHIFT)
+#define MH_DEBUG_REG18_SET_AID_q(mh_debug_reg18_reg, aid_q) \
+ mh_debug_reg18_reg = (mh_debug_reg18_reg & ~MH_DEBUG_REG18_AID_q_MASK) | (aid_q << MH_DEBUG_REG18_AID_q_SHIFT)
+#define MH_DEBUG_REG18_SET_ALEN_q_1_0(mh_debug_reg18_reg, alen_q_1_0) \
+ mh_debug_reg18_reg = (mh_debug_reg18_reg & ~MH_DEBUG_REG18_ALEN_q_1_0_MASK) | (alen_q_1_0 << MH_DEBUG_REG18_ALEN_q_1_0_SHIFT)
+#define MH_DEBUG_REG18_SET_ARVALID_q(mh_debug_reg18_reg, arvalid_q) \
+ mh_debug_reg18_reg = (mh_debug_reg18_reg & ~MH_DEBUG_REG18_ARVALID_q_MASK) | (arvalid_q << MH_DEBUG_REG18_ARVALID_q_SHIFT)
+#define MH_DEBUG_REG18_SET_ARREADY_q(mh_debug_reg18_reg, arready_q) \
+ mh_debug_reg18_reg = (mh_debug_reg18_reg & ~MH_DEBUG_REG18_ARREADY_q_MASK) | (arready_q << MH_DEBUG_REG18_ARREADY_q_SHIFT)
+#define MH_DEBUG_REG18_SET_ARID_q(mh_debug_reg18_reg, arid_q) \
+ mh_debug_reg18_reg = (mh_debug_reg18_reg & ~MH_DEBUG_REG18_ARID_q_MASK) | (arid_q << MH_DEBUG_REG18_ARID_q_SHIFT)
+#define MH_DEBUG_REG18_SET_ARLEN_q_1_1(mh_debug_reg18_reg, arlen_q_1_1) \
+ mh_debug_reg18_reg = (mh_debug_reg18_reg & ~MH_DEBUG_REG18_ARLEN_q_1_1_MASK) | (arlen_q_1_1 << MH_DEBUG_REG18_ARLEN_q_1_1_SHIFT)
+#define MH_DEBUG_REG18_SET_WVALID_q(mh_debug_reg18_reg, wvalid_q) \
+ mh_debug_reg18_reg = (mh_debug_reg18_reg & ~MH_DEBUG_REG18_WVALID_q_MASK) | (wvalid_q << MH_DEBUG_REG18_WVALID_q_SHIFT)
+#define MH_DEBUG_REG18_SET_WREADY_q(mh_debug_reg18_reg, wready_q) \
+ mh_debug_reg18_reg = (mh_debug_reg18_reg & ~MH_DEBUG_REG18_WREADY_q_MASK) | (wready_q << MH_DEBUG_REG18_WREADY_q_SHIFT)
+#define MH_DEBUG_REG18_SET_WLAST_q(mh_debug_reg18_reg, wlast_q) \
+ mh_debug_reg18_reg = (mh_debug_reg18_reg & ~MH_DEBUG_REG18_WLAST_q_MASK) | (wlast_q << MH_DEBUG_REG18_WLAST_q_SHIFT)
+#define MH_DEBUG_REG18_SET_WID_q(mh_debug_reg18_reg, wid_q) \
+ mh_debug_reg18_reg = (mh_debug_reg18_reg & ~MH_DEBUG_REG18_WID_q_MASK) | (wid_q << MH_DEBUG_REG18_WID_q_SHIFT)
+#define MH_DEBUG_REG18_SET_WSTRB_q(mh_debug_reg18_reg, wstrb_q) \
+ mh_debug_reg18_reg = (mh_debug_reg18_reg & ~MH_DEBUG_REG18_WSTRB_q_MASK) | (wstrb_q << MH_DEBUG_REG18_WSTRB_q_SHIFT)
+#define MH_DEBUG_REG18_SET_BVALID_q(mh_debug_reg18_reg, bvalid_q) \
+ mh_debug_reg18_reg = (mh_debug_reg18_reg & ~MH_DEBUG_REG18_BVALID_q_MASK) | (bvalid_q << MH_DEBUG_REG18_BVALID_q_SHIFT)
+#define MH_DEBUG_REG18_SET_BREADY_q(mh_debug_reg18_reg, bready_q) \
+ mh_debug_reg18_reg = (mh_debug_reg18_reg & ~MH_DEBUG_REG18_BREADY_q_MASK) | (bready_q << MH_DEBUG_REG18_BREADY_q_SHIFT)
+#define MH_DEBUG_REG18_SET_BID_q(mh_debug_reg18_reg, bid_q) \
+ mh_debug_reg18_reg = (mh_debug_reg18_reg & ~MH_DEBUG_REG18_BID_q_MASK) | (bid_q << MH_DEBUG_REG18_BID_q_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg18_t {
+ unsigned int avalid_q : MH_DEBUG_REG18_AVALID_q_SIZE;
+ unsigned int aready_q : MH_DEBUG_REG18_AREADY_q_SIZE;
+ unsigned int aid_q : MH_DEBUG_REG18_AID_q_SIZE;
+ unsigned int alen_q_1_0 : MH_DEBUG_REG18_ALEN_q_1_0_SIZE;
+ unsigned int arvalid_q : MH_DEBUG_REG18_ARVALID_q_SIZE;
+ unsigned int arready_q : MH_DEBUG_REG18_ARREADY_q_SIZE;
+ unsigned int arid_q : MH_DEBUG_REG18_ARID_q_SIZE;
+ unsigned int arlen_q_1_1 : MH_DEBUG_REG18_ARLEN_q_1_1_SIZE;
+ unsigned int wvalid_q : MH_DEBUG_REG18_WVALID_q_SIZE;
+ unsigned int wready_q : MH_DEBUG_REG18_WREADY_q_SIZE;
+ unsigned int wlast_q : MH_DEBUG_REG18_WLAST_q_SIZE;
+ unsigned int wid_q : MH_DEBUG_REG18_WID_q_SIZE;
+ unsigned int wstrb_q : MH_DEBUG_REG18_WSTRB_q_SIZE;
+ unsigned int bvalid_q : MH_DEBUG_REG18_BVALID_q_SIZE;
+ unsigned int bready_q : MH_DEBUG_REG18_BREADY_q_SIZE;
+ unsigned int bid_q : MH_DEBUG_REG18_BID_q_SIZE;
+ } mh_debug_reg18_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg18_t {
+ unsigned int bid_q : MH_DEBUG_REG18_BID_q_SIZE;
+ unsigned int bready_q : MH_DEBUG_REG18_BREADY_q_SIZE;
+ unsigned int bvalid_q : MH_DEBUG_REG18_BVALID_q_SIZE;
+ unsigned int wstrb_q : MH_DEBUG_REG18_WSTRB_q_SIZE;
+ unsigned int wid_q : MH_DEBUG_REG18_WID_q_SIZE;
+ unsigned int wlast_q : MH_DEBUG_REG18_WLAST_q_SIZE;
+ unsigned int wready_q : MH_DEBUG_REG18_WREADY_q_SIZE;
+ unsigned int wvalid_q : MH_DEBUG_REG18_WVALID_q_SIZE;
+ unsigned int arlen_q_1_1 : MH_DEBUG_REG18_ARLEN_q_1_1_SIZE;
+ unsigned int arid_q : MH_DEBUG_REG18_ARID_q_SIZE;
+ unsigned int arready_q : MH_DEBUG_REG18_ARREADY_q_SIZE;
+ unsigned int arvalid_q : MH_DEBUG_REG18_ARVALID_q_SIZE;
+ unsigned int alen_q_1_0 : MH_DEBUG_REG18_ALEN_q_1_0_SIZE;
+ unsigned int aid_q : MH_DEBUG_REG18_AID_q_SIZE;
+ unsigned int aready_q : MH_DEBUG_REG18_AREADY_q_SIZE;
+ unsigned int avalid_q : MH_DEBUG_REG18_AVALID_q_SIZE;
+ } mh_debug_reg18_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg18_t f;
+} mh_debug_reg18_u;
+
+
+/*
+ * MH_DEBUG_REG19 struct
+ */
+
+#define MH_DEBUG_REG19_ARC_CTRL_RE_q_SIZE 1
+#define MH_DEBUG_REG19_CTRL_ARC_ID_SIZE 3
+#define MH_DEBUG_REG19_CTRL_ARC_PAD_SIZE 28
+
+#define MH_DEBUG_REG19_ARC_CTRL_RE_q_SHIFT 0
+#define MH_DEBUG_REG19_CTRL_ARC_ID_SHIFT 1
+#define MH_DEBUG_REG19_CTRL_ARC_PAD_SHIFT 4
+
+#define MH_DEBUG_REG19_ARC_CTRL_RE_q_MASK 0x00000001
+#define MH_DEBUG_REG19_CTRL_ARC_ID_MASK 0x0000000e
+#define MH_DEBUG_REG19_CTRL_ARC_PAD_MASK 0xfffffff0
+
+#define MH_DEBUG_REG19_MASK \
+ (MH_DEBUG_REG19_ARC_CTRL_RE_q_MASK | \
+ MH_DEBUG_REG19_CTRL_ARC_ID_MASK | \
+ MH_DEBUG_REG19_CTRL_ARC_PAD_MASK)
+
+#define MH_DEBUG_REG19(arc_ctrl_re_q, ctrl_arc_id, ctrl_arc_pad) \
+ ((arc_ctrl_re_q << MH_DEBUG_REG19_ARC_CTRL_RE_q_SHIFT) | \
+ (ctrl_arc_id << MH_DEBUG_REG19_CTRL_ARC_ID_SHIFT) | \
+ (ctrl_arc_pad << MH_DEBUG_REG19_CTRL_ARC_PAD_SHIFT))
+
+#define MH_DEBUG_REG19_GET_ARC_CTRL_RE_q(mh_debug_reg19) \
+ ((mh_debug_reg19 & MH_DEBUG_REG19_ARC_CTRL_RE_q_MASK) >> MH_DEBUG_REG19_ARC_CTRL_RE_q_SHIFT)
+#define MH_DEBUG_REG19_GET_CTRL_ARC_ID(mh_debug_reg19) \
+ ((mh_debug_reg19 & MH_DEBUG_REG19_CTRL_ARC_ID_MASK) >> MH_DEBUG_REG19_CTRL_ARC_ID_SHIFT)
+#define MH_DEBUG_REG19_GET_CTRL_ARC_PAD(mh_debug_reg19) \
+ ((mh_debug_reg19 & MH_DEBUG_REG19_CTRL_ARC_PAD_MASK) >> MH_DEBUG_REG19_CTRL_ARC_PAD_SHIFT)
+
+#define MH_DEBUG_REG19_SET_ARC_CTRL_RE_q(mh_debug_reg19_reg, arc_ctrl_re_q) \
+ mh_debug_reg19_reg = (mh_debug_reg19_reg & ~MH_DEBUG_REG19_ARC_CTRL_RE_q_MASK) | (arc_ctrl_re_q << MH_DEBUG_REG19_ARC_CTRL_RE_q_SHIFT)
+#define MH_DEBUG_REG19_SET_CTRL_ARC_ID(mh_debug_reg19_reg, ctrl_arc_id) \
+ mh_debug_reg19_reg = (mh_debug_reg19_reg & ~MH_DEBUG_REG19_CTRL_ARC_ID_MASK) | (ctrl_arc_id << MH_DEBUG_REG19_CTRL_ARC_ID_SHIFT)
+#define MH_DEBUG_REG19_SET_CTRL_ARC_PAD(mh_debug_reg19_reg, ctrl_arc_pad) \
+ mh_debug_reg19_reg = (mh_debug_reg19_reg & ~MH_DEBUG_REG19_CTRL_ARC_PAD_MASK) | (ctrl_arc_pad << MH_DEBUG_REG19_CTRL_ARC_PAD_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg19_t {
+ unsigned int arc_ctrl_re_q : MH_DEBUG_REG19_ARC_CTRL_RE_q_SIZE;
+ unsigned int ctrl_arc_id : MH_DEBUG_REG19_CTRL_ARC_ID_SIZE;
+ unsigned int ctrl_arc_pad : MH_DEBUG_REG19_CTRL_ARC_PAD_SIZE;
+ } mh_debug_reg19_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg19_t {
+ unsigned int ctrl_arc_pad : MH_DEBUG_REG19_CTRL_ARC_PAD_SIZE;
+ unsigned int ctrl_arc_id : MH_DEBUG_REG19_CTRL_ARC_ID_SIZE;
+ unsigned int arc_ctrl_re_q : MH_DEBUG_REG19_ARC_CTRL_RE_q_SIZE;
+ } mh_debug_reg19_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg19_t f;
+} mh_debug_reg19_u;
+
+
+/*
+ * MH_DEBUG_REG20 struct
+ */
+
+#define MH_DEBUG_REG20_ALWAYS_ZERO_SIZE 2
+#define MH_DEBUG_REG20_REG_A_SIZE 14
+#define MH_DEBUG_REG20_REG_RE_SIZE 1
+#define MH_DEBUG_REG20_REG_WE_SIZE 1
+#define MH_DEBUG_REG20_BLOCK_RS_SIZE 1
+
+#define MH_DEBUG_REG20_ALWAYS_ZERO_SHIFT 0
+#define MH_DEBUG_REG20_REG_A_SHIFT 2
+#define MH_DEBUG_REG20_REG_RE_SHIFT 16
+#define MH_DEBUG_REG20_REG_WE_SHIFT 17
+#define MH_DEBUG_REG20_BLOCK_RS_SHIFT 18
+
+#define MH_DEBUG_REG20_ALWAYS_ZERO_MASK 0x00000003
+#define MH_DEBUG_REG20_REG_A_MASK 0x0000fffc
+#define MH_DEBUG_REG20_REG_RE_MASK 0x00010000
+#define MH_DEBUG_REG20_REG_WE_MASK 0x00020000
+#define MH_DEBUG_REG20_BLOCK_RS_MASK 0x00040000
+
+#define MH_DEBUG_REG20_MASK \
+ (MH_DEBUG_REG20_ALWAYS_ZERO_MASK | \
+ MH_DEBUG_REG20_REG_A_MASK | \
+ MH_DEBUG_REG20_REG_RE_MASK | \
+ MH_DEBUG_REG20_REG_WE_MASK | \
+ MH_DEBUG_REG20_BLOCK_RS_MASK)
+
+#define MH_DEBUG_REG20(always_zero, reg_a, reg_re, reg_we, block_rs) \
+ ((always_zero << MH_DEBUG_REG20_ALWAYS_ZERO_SHIFT) | \
+ (reg_a << MH_DEBUG_REG20_REG_A_SHIFT) | \
+ (reg_re << MH_DEBUG_REG20_REG_RE_SHIFT) | \
+ (reg_we << MH_DEBUG_REG20_REG_WE_SHIFT) | \
+ (block_rs << MH_DEBUG_REG20_BLOCK_RS_SHIFT))
+
+#define MH_DEBUG_REG20_GET_ALWAYS_ZERO(mh_debug_reg20) \
+ ((mh_debug_reg20 & MH_DEBUG_REG20_ALWAYS_ZERO_MASK) >> MH_DEBUG_REG20_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG20_GET_REG_A(mh_debug_reg20) \
+ ((mh_debug_reg20 & MH_DEBUG_REG20_REG_A_MASK) >> MH_DEBUG_REG20_REG_A_SHIFT)
+#define MH_DEBUG_REG20_GET_REG_RE(mh_debug_reg20) \
+ ((mh_debug_reg20 & MH_DEBUG_REG20_REG_RE_MASK) >> MH_DEBUG_REG20_REG_RE_SHIFT)
+#define MH_DEBUG_REG20_GET_REG_WE(mh_debug_reg20) \
+ ((mh_debug_reg20 & MH_DEBUG_REG20_REG_WE_MASK) >> MH_DEBUG_REG20_REG_WE_SHIFT)
+#define MH_DEBUG_REG20_GET_BLOCK_RS(mh_debug_reg20) \
+ ((mh_debug_reg20 & MH_DEBUG_REG20_BLOCK_RS_MASK) >> MH_DEBUG_REG20_BLOCK_RS_SHIFT)
+
+#define MH_DEBUG_REG20_SET_ALWAYS_ZERO(mh_debug_reg20_reg, always_zero) \
+ mh_debug_reg20_reg = (mh_debug_reg20_reg & ~MH_DEBUG_REG20_ALWAYS_ZERO_MASK) | (always_zero << MH_DEBUG_REG20_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG20_SET_REG_A(mh_debug_reg20_reg, reg_a) \
+ mh_debug_reg20_reg = (mh_debug_reg20_reg & ~MH_DEBUG_REG20_REG_A_MASK) | (reg_a << MH_DEBUG_REG20_REG_A_SHIFT)
+#define MH_DEBUG_REG20_SET_REG_RE(mh_debug_reg20_reg, reg_re) \
+ mh_debug_reg20_reg = (mh_debug_reg20_reg & ~MH_DEBUG_REG20_REG_RE_MASK) | (reg_re << MH_DEBUG_REG20_REG_RE_SHIFT)
+#define MH_DEBUG_REG20_SET_REG_WE(mh_debug_reg20_reg, reg_we) \
+ mh_debug_reg20_reg = (mh_debug_reg20_reg & ~MH_DEBUG_REG20_REG_WE_MASK) | (reg_we << MH_DEBUG_REG20_REG_WE_SHIFT)
+#define MH_DEBUG_REG20_SET_BLOCK_RS(mh_debug_reg20_reg, block_rs) \
+ mh_debug_reg20_reg = (mh_debug_reg20_reg & ~MH_DEBUG_REG20_BLOCK_RS_MASK) | (block_rs << MH_DEBUG_REG20_BLOCK_RS_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg20_t {
+ unsigned int always_zero : MH_DEBUG_REG20_ALWAYS_ZERO_SIZE;
+ unsigned int reg_a : MH_DEBUG_REG20_REG_A_SIZE;
+ unsigned int reg_re : MH_DEBUG_REG20_REG_RE_SIZE;
+ unsigned int reg_we : MH_DEBUG_REG20_REG_WE_SIZE;
+ unsigned int block_rs : MH_DEBUG_REG20_BLOCK_RS_SIZE;
+ unsigned int : 13;
+ } mh_debug_reg20_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg20_t {
+ unsigned int : 13;
+ unsigned int block_rs : MH_DEBUG_REG20_BLOCK_RS_SIZE;
+ unsigned int reg_we : MH_DEBUG_REG20_REG_WE_SIZE;
+ unsigned int reg_re : MH_DEBUG_REG20_REG_RE_SIZE;
+ unsigned int reg_a : MH_DEBUG_REG20_REG_A_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG20_ALWAYS_ZERO_SIZE;
+ } mh_debug_reg20_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg20_t f;
+} mh_debug_reg20_u;
+
+
+/*
+ * MH_DEBUG_REG21 struct
+ */
+
+#define MH_DEBUG_REG21_REG_WD_SIZE 32
+
+#define MH_DEBUG_REG21_REG_WD_SHIFT 0
+
+#define MH_DEBUG_REG21_REG_WD_MASK 0xffffffff
+
+#define MH_DEBUG_REG21_MASK \
+ (MH_DEBUG_REG21_REG_WD_MASK)
+
+#define MH_DEBUG_REG21(reg_wd) \
+ ((reg_wd << MH_DEBUG_REG21_REG_WD_SHIFT))
+
+#define MH_DEBUG_REG21_GET_REG_WD(mh_debug_reg21) \
+ ((mh_debug_reg21 & MH_DEBUG_REG21_REG_WD_MASK) >> MH_DEBUG_REG21_REG_WD_SHIFT)
+
+#define MH_DEBUG_REG21_SET_REG_WD(mh_debug_reg21_reg, reg_wd) \
+ mh_debug_reg21_reg = (mh_debug_reg21_reg & ~MH_DEBUG_REG21_REG_WD_MASK) | (reg_wd << MH_DEBUG_REG21_REG_WD_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg21_t {
+ unsigned int reg_wd : MH_DEBUG_REG21_REG_WD_SIZE;
+ } mh_debug_reg21_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg21_t {
+ unsigned int reg_wd : MH_DEBUG_REG21_REG_WD_SIZE;
+ } mh_debug_reg21_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg21_t f;
+} mh_debug_reg21_u;
+
+
+/*
+ * MH_DEBUG_REG22 struct
+ */
+
+#define MH_DEBUG_REG22_CIB_MH_axi_halt_req_SIZE 1
+#define MH_DEBUG_REG22_MH_CIB_axi_halt_ack_SIZE 1
+#define MH_DEBUG_REG22_MH_RBBM_busy_SIZE 1
+#define MH_DEBUG_REG22_MH_CIB_mh_clk_en_int_SIZE 1
+#define MH_DEBUG_REG22_MH_CIB_mmu_clk_en_int_SIZE 1
+#define MH_DEBUG_REG22_MH_CIB_tcroq_clk_en_int_SIZE 1
+#define MH_DEBUG_REG22_GAT_CLK_ENA_SIZE 1
+#define MH_DEBUG_REG22_AXI_RDY_ENA_SIZE 1
+#define MH_DEBUG_REG22_RBBM_MH_clk_en_override_SIZE 1
+#define MH_DEBUG_REG22_CNT_q_SIZE 6
+#define MH_DEBUG_REG22_TCD_EMPTY_q_SIZE 1
+#define MH_DEBUG_REG22_TC_ROQ_EMPTY_SIZE 1
+#define MH_DEBUG_REG22_MH_BUSY_d_SIZE 1
+#define MH_DEBUG_REG22_ANY_CLNT_BUSY_SIZE 1
+#define MH_DEBUG_REG22_MH_MMU_INVALIDATE_INVALIDATE_ALL_SIZE 1
+#define MH_DEBUG_REG22_CP_SEND_q_SIZE 1
+#define MH_DEBUG_REG22_CP_RTR_q_SIZE 1
+#define MH_DEBUG_REG22_VGT_SEND_q_SIZE 1
+#define MH_DEBUG_REG22_VGT_RTR_q_SIZE 1
+#define MH_DEBUG_REG22_TC_ROQ_SEND_q_SIZE 1
+#define MH_DEBUG_REG22_TC_ROQ_RTR_q_SIZE 1
+#define MH_DEBUG_REG22_RB_SEND_q_SIZE 1
+#define MH_DEBUG_REG22_RB_RTR_q_SIZE 1
+#define MH_DEBUG_REG22_RDC_VALID_SIZE 1
+#define MH_DEBUG_REG22_RDC_RLAST_SIZE 1
+#define MH_DEBUG_REG22_TLBMISS_VALID_SIZE 1
+#define MH_DEBUG_REG22_BRC_VALID_SIZE 1
+
+#define MH_DEBUG_REG22_CIB_MH_axi_halt_req_SHIFT 0
+#define MH_DEBUG_REG22_MH_CIB_axi_halt_ack_SHIFT 1
+#define MH_DEBUG_REG22_MH_RBBM_busy_SHIFT 2
+#define MH_DEBUG_REG22_MH_CIB_mh_clk_en_int_SHIFT 3
+#define MH_DEBUG_REG22_MH_CIB_mmu_clk_en_int_SHIFT 4
+#define MH_DEBUG_REG22_MH_CIB_tcroq_clk_en_int_SHIFT 5
+#define MH_DEBUG_REG22_GAT_CLK_ENA_SHIFT 6
+#define MH_DEBUG_REG22_AXI_RDY_ENA_SHIFT 7
+#define MH_DEBUG_REG22_RBBM_MH_clk_en_override_SHIFT 8
+#define MH_DEBUG_REG22_CNT_q_SHIFT 9
+#define MH_DEBUG_REG22_TCD_EMPTY_q_SHIFT 15
+#define MH_DEBUG_REG22_TC_ROQ_EMPTY_SHIFT 16
+#define MH_DEBUG_REG22_MH_BUSY_d_SHIFT 17
+#define MH_DEBUG_REG22_ANY_CLNT_BUSY_SHIFT 18
+#define MH_DEBUG_REG22_MH_MMU_INVALIDATE_INVALIDATE_ALL_SHIFT 19
+#define MH_DEBUG_REG22_CP_SEND_q_SHIFT 20
+#define MH_DEBUG_REG22_CP_RTR_q_SHIFT 21
+#define MH_DEBUG_REG22_VGT_SEND_q_SHIFT 22
+#define MH_DEBUG_REG22_VGT_RTR_q_SHIFT 23
+#define MH_DEBUG_REG22_TC_ROQ_SEND_q_SHIFT 24
+#define MH_DEBUG_REG22_TC_ROQ_RTR_q_SHIFT 25
+#define MH_DEBUG_REG22_RB_SEND_q_SHIFT 26
+#define MH_DEBUG_REG22_RB_RTR_q_SHIFT 27
+#define MH_DEBUG_REG22_RDC_VALID_SHIFT 28
+#define MH_DEBUG_REG22_RDC_RLAST_SHIFT 29
+#define MH_DEBUG_REG22_TLBMISS_VALID_SHIFT 30
+#define MH_DEBUG_REG22_BRC_VALID_SHIFT 31
+
+#define MH_DEBUG_REG22_CIB_MH_axi_halt_req_MASK 0x00000001
+#define MH_DEBUG_REG22_MH_CIB_axi_halt_ack_MASK 0x00000002
+#define MH_DEBUG_REG22_MH_RBBM_busy_MASK 0x00000004
+#define MH_DEBUG_REG22_MH_CIB_mh_clk_en_int_MASK 0x00000008
+#define MH_DEBUG_REG22_MH_CIB_mmu_clk_en_int_MASK 0x00000010
+#define MH_DEBUG_REG22_MH_CIB_tcroq_clk_en_int_MASK 0x00000020
+#define MH_DEBUG_REG22_GAT_CLK_ENA_MASK 0x00000040
+#define MH_DEBUG_REG22_AXI_RDY_ENA_MASK 0x00000080
+#define MH_DEBUG_REG22_RBBM_MH_clk_en_override_MASK 0x00000100
+#define MH_DEBUG_REG22_CNT_q_MASK 0x00007e00
+#define MH_DEBUG_REG22_TCD_EMPTY_q_MASK 0x00008000
+#define MH_DEBUG_REG22_TC_ROQ_EMPTY_MASK 0x00010000
+#define MH_DEBUG_REG22_MH_BUSY_d_MASK 0x00020000
+#define MH_DEBUG_REG22_ANY_CLNT_BUSY_MASK 0x00040000
+#define MH_DEBUG_REG22_MH_MMU_INVALIDATE_INVALIDATE_ALL_MASK 0x00080000
+#define MH_DEBUG_REG22_CP_SEND_q_MASK 0x00100000
+#define MH_DEBUG_REG22_CP_RTR_q_MASK 0x00200000
+#define MH_DEBUG_REG22_VGT_SEND_q_MASK 0x00400000
+#define MH_DEBUG_REG22_VGT_RTR_q_MASK 0x00800000
+#define MH_DEBUG_REG22_TC_ROQ_SEND_q_MASK 0x01000000
+#define MH_DEBUG_REG22_TC_ROQ_RTR_q_MASK 0x02000000
+#define MH_DEBUG_REG22_RB_SEND_q_MASK 0x04000000
+#define MH_DEBUG_REG22_RB_RTR_q_MASK 0x08000000
+#define MH_DEBUG_REG22_RDC_VALID_MASK 0x10000000
+#define MH_DEBUG_REG22_RDC_RLAST_MASK 0x20000000
+#define MH_DEBUG_REG22_TLBMISS_VALID_MASK 0x40000000
+#define MH_DEBUG_REG22_BRC_VALID_MASK 0x80000000
+
+#define MH_DEBUG_REG22_MASK \
+ (MH_DEBUG_REG22_CIB_MH_axi_halt_req_MASK | \
+ MH_DEBUG_REG22_MH_CIB_axi_halt_ack_MASK | \
+ MH_DEBUG_REG22_MH_RBBM_busy_MASK | \
+ MH_DEBUG_REG22_MH_CIB_mh_clk_en_int_MASK | \
+ MH_DEBUG_REG22_MH_CIB_mmu_clk_en_int_MASK | \
+ MH_DEBUG_REG22_MH_CIB_tcroq_clk_en_int_MASK | \
+ MH_DEBUG_REG22_GAT_CLK_ENA_MASK | \
+ MH_DEBUG_REG22_AXI_RDY_ENA_MASK | \
+ MH_DEBUG_REG22_RBBM_MH_clk_en_override_MASK | \
+ MH_DEBUG_REG22_CNT_q_MASK | \
+ MH_DEBUG_REG22_TCD_EMPTY_q_MASK | \
+ MH_DEBUG_REG22_TC_ROQ_EMPTY_MASK | \
+ MH_DEBUG_REG22_MH_BUSY_d_MASK | \
+ MH_DEBUG_REG22_ANY_CLNT_BUSY_MASK | \
+ MH_DEBUG_REG22_MH_MMU_INVALIDATE_INVALIDATE_ALL_MASK | \
+ MH_DEBUG_REG22_CP_SEND_q_MASK | \
+ MH_DEBUG_REG22_CP_RTR_q_MASK | \
+ MH_DEBUG_REG22_VGT_SEND_q_MASK | \
+ MH_DEBUG_REG22_VGT_RTR_q_MASK | \
+ MH_DEBUG_REG22_TC_ROQ_SEND_q_MASK | \
+ MH_DEBUG_REG22_TC_ROQ_RTR_q_MASK | \
+ MH_DEBUG_REG22_RB_SEND_q_MASK | \
+ MH_DEBUG_REG22_RB_RTR_q_MASK | \
+ MH_DEBUG_REG22_RDC_VALID_MASK | \
+ MH_DEBUG_REG22_RDC_RLAST_MASK | \
+ MH_DEBUG_REG22_TLBMISS_VALID_MASK | \
+ MH_DEBUG_REG22_BRC_VALID_MASK)
+
+#define MH_DEBUG_REG22(cib_mh_axi_halt_req, mh_cib_axi_halt_ack, mh_rbbm_busy, mh_cib_mh_clk_en_int, mh_cib_mmu_clk_en_int, mh_cib_tcroq_clk_en_int, gat_clk_ena, axi_rdy_ena, rbbm_mh_clk_en_override, cnt_q, tcd_empty_q, tc_roq_empty, mh_busy_d, any_clnt_busy, mh_mmu_invalidate_invalidate_all, cp_send_q, cp_rtr_q, vgt_send_q, vgt_rtr_q, tc_roq_send_q, tc_roq_rtr_q, rb_send_q, rb_rtr_q, rdc_valid, rdc_rlast, tlbmiss_valid, brc_valid) \
+ ((cib_mh_axi_halt_req << MH_DEBUG_REG22_CIB_MH_axi_halt_req_SHIFT) | \
+ (mh_cib_axi_halt_ack << MH_DEBUG_REG22_MH_CIB_axi_halt_ack_SHIFT) | \
+ (mh_rbbm_busy << MH_DEBUG_REG22_MH_RBBM_busy_SHIFT) | \
+ (mh_cib_mh_clk_en_int << MH_DEBUG_REG22_MH_CIB_mh_clk_en_int_SHIFT) | \
+ (mh_cib_mmu_clk_en_int << MH_DEBUG_REG22_MH_CIB_mmu_clk_en_int_SHIFT) | \
+ (mh_cib_tcroq_clk_en_int << MH_DEBUG_REG22_MH_CIB_tcroq_clk_en_int_SHIFT) | \
+ (gat_clk_ena << MH_DEBUG_REG22_GAT_CLK_ENA_SHIFT) | \
+ (axi_rdy_ena << MH_DEBUG_REG22_AXI_RDY_ENA_SHIFT) | \
+ (rbbm_mh_clk_en_override << MH_DEBUG_REG22_RBBM_MH_clk_en_override_SHIFT) | \
+ (cnt_q << MH_DEBUG_REG22_CNT_q_SHIFT) | \
+ (tcd_empty_q << MH_DEBUG_REG22_TCD_EMPTY_q_SHIFT) | \
+ (tc_roq_empty << MH_DEBUG_REG22_TC_ROQ_EMPTY_SHIFT) | \
+ (mh_busy_d << MH_DEBUG_REG22_MH_BUSY_d_SHIFT) | \
+ (any_clnt_busy << MH_DEBUG_REG22_ANY_CLNT_BUSY_SHIFT) | \
+ (mh_mmu_invalidate_invalidate_all << MH_DEBUG_REG22_MH_MMU_INVALIDATE_INVALIDATE_ALL_SHIFT) | \
+ (cp_send_q << MH_DEBUG_REG22_CP_SEND_q_SHIFT) | \
+ (cp_rtr_q << MH_DEBUG_REG22_CP_RTR_q_SHIFT) | \
+ (vgt_send_q << MH_DEBUG_REG22_VGT_SEND_q_SHIFT) | \
+ (vgt_rtr_q << MH_DEBUG_REG22_VGT_RTR_q_SHIFT) | \
+ (tc_roq_send_q << MH_DEBUG_REG22_TC_ROQ_SEND_q_SHIFT) | \
+ (tc_roq_rtr_q << MH_DEBUG_REG22_TC_ROQ_RTR_q_SHIFT) | \
+ (rb_send_q << MH_DEBUG_REG22_RB_SEND_q_SHIFT) | \
+ (rb_rtr_q << MH_DEBUG_REG22_RB_RTR_q_SHIFT) | \
+ (rdc_valid << MH_DEBUG_REG22_RDC_VALID_SHIFT) | \
+ (rdc_rlast << MH_DEBUG_REG22_RDC_RLAST_SHIFT) | \
+ (tlbmiss_valid << MH_DEBUG_REG22_TLBMISS_VALID_SHIFT) | \
+ (brc_valid << MH_DEBUG_REG22_BRC_VALID_SHIFT))
+
+#define MH_DEBUG_REG22_GET_CIB_MH_axi_halt_req(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_CIB_MH_axi_halt_req_MASK) >> MH_DEBUG_REG22_CIB_MH_axi_halt_req_SHIFT)
+#define MH_DEBUG_REG22_GET_MH_CIB_axi_halt_ack(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_MH_CIB_axi_halt_ack_MASK) >> MH_DEBUG_REG22_MH_CIB_axi_halt_ack_SHIFT)
+#define MH_DEBUG_REG22_GET_MH_RBBM_busy(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_MH_RBBM_busy_MASK) >> MH_DEBUG_REG22_MH_RBBM_busy_SHIFT)
+#define MH_DEBUG_REG22_GET_MH_CIB_mh_clk_en_int(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_MH_CIB_mh_clk_en_int_MASK) >> MH_DEBUG_REG22_MH_CIB_mh_clk_en_int_SHIFT)
+#define MH_DEBUG_REG22_GET_MH_CIB_mmu_clk_en_int(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_MH_CIB_mmu_clk_en_int_MASK) >> MH_DEBUG_REG22_MH_CIB_mmu_clk_en_int_SHIFT)
+#define MH_DEBUG_REG22_GET_MH_CIB_tcroq_clk_en_int(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_MH_CIB_tcroq_clk_en_int_MASK) >> MH_DEBUG_REG22_MH_CIB_tcroq_clk_en_int_SHIFT)
+#define MH_DEBUG_REG22_GET_GAT_CLK_ENA(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_GAT_CLK_ENA_MASK) >> MH_DEBUG_REG22_GAT_CLK_ENA_SHIFT)
+#define MH_DEBUG_REG22_GET_AXI_RDY_ENA(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_AXI_RDY_ENA_MASK) >> MH_DEBUG_REG22_AXI_RDY_ENA_SHIFT)
+#define MH_DEBUG_REG22_GET_RBBM_MH_clk_en_override(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_RBBM_MH_clk_en_override_MASK) >> MH_DEBUG_REG22_RBBM_MH_clk_en_override_SHIFT)
+#define MH_DEBUG_REG22_GET_CNT_q(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_CNT_q_MASK) >> MH_DEBUG_REG22_CNT_q_SHIFT)
+#define MH_DEBUG_REG22_GET_TCD_EMPTY_q(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_TCD_EMPTY_q_MASK) >> MH_DEBUG_REG22_TCD_EMPTY_q_SHIFT)
+#define MH_DEBUG_REG22_GET_TC_ROQ_EMPTY(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_TC_ROQ_EMPTY_MASK) >> MH_DEBUG_REG22_TC_ROQ_EMPTY_SHIFT)
+#define MH_DEBUG_REG22_GET_MH_BUSY_d(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_MH_BUSY_d_MASK) >> MH_DEBUG_REG22_MH_BUSY_d_SHIFT)
+#define MH_DEBUG_REG22_GET_ANY_CLNT_BUSY(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_ANY_CLNT_BUSY_MASK) >> MH_DEBUG_REG22_ANY_CLNT_BUSY_SHIFT)
+#define MH_DEBUG_REG22_GET_MH_MMU_INVALIDATE_INVALIDATE_ALL(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_MH_MMU_INVALIDATE_INVALIDATE_ALL_MASK) >> MH_DEBUG_REG22_MH_MMU_INVALIDATE_INVALIDATE_ALL_SHIFT)
+#define MH_DEBUG_REG22_GET_CP_SEND_q(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_CP_SEND_q_MASK) >> MH_DEBUG_REG22_CP_SEND_q_SHIFT)
+#define MH_DEBUG_REG22_GET_CP_RTR_q(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_CP_RTR_q_MASK) >> MH_DEBUG_REG22_CP_RTR_q_SHIFT)
+#define MH_DEBUG_REG22_GET_VGT_SEND_q(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_VGT_SEND_q_MASK) >> MH_DEBUG_REG22_VGT_SEND_q_SHIFT)
+#define MH_DEBUG_REG22_GET_VGT_RTR_q(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_VGT_RTR_q_MASK) >> MH_DEBUG_REG22_VGT_RTR_q_SHIFT)
+#define MH_DEBUG_REG22_GET_TC_ROQ_SEND_q(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_TC_ROQ_SEND_q_MASK) >> MH_DEBUG_REG22_TC_ROQ_SEND_q_SHIFT)
+#define MH_DEBUG_REG22_GET_TC_ROQ_RTR_q(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_TC_ROQ_RTR_q_MASK) >> MH_DEBUG_REG22_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG22_GET_RB_SEND_q(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_RB_SEND_q_MASK) >> MH_DEBUG_REG22_RB_SEND_q_SHIFT)
+#define MH_DEBUG_REG22_GET_RB_RTR_q(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_RB_RTR_q_MASK) >> MH_DEBUG_REG22_RB_RTR_q_SHIFT)
+#define MH_DEBUG_REG22_GET_RDC_VALID(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_RDC_VALID_MASK) >> MH_DEBUG_REG22_RDC_VALID_SHIFT)
+#define MH_DEBUG_REG22_GET_RDC_RLAST(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_RDC_RLAST_MASK) >> MH_DEBUG_REG22_RDC_RLAST_SHIFT)
+#define MH_DEBUG_REG22_GET_TLBMISS_VALID(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_TLBMISS_VALID_MASK) >> MH_DEBUG_REG22_TLBMISS_VALID_SHIFT)
+#define MH_DEBUG_REG22_GET_BRC_VALID(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_BRC_VALID_MASK) >> MH_DEBUG_REG22_BRC_VALID_SHIFT)
+
+#define MH_DEBUG_REG22_SET_CIB_MH_axi_halt_req(mh_debug_reg22_reg, cib_mh_axi_halt_req) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_CIB_MH_axi_halt_req_MASK) | (cib_mh_axi_halt_req << MH_DEBUG_REG22_CIB_MH_axi_halt_req_SHIFT)
+#define MH_DEBUG_REG22_SET_MH_CIB_axi_halt_ack(mh_debug_reg22_reg, mh_cib_axi_halt_ack) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_MH_CIB_axi_halt_ack_MASK) | (mh_cib_axi_halt_ack << MH_DEBUG_REG22_MH_CIB_axi_halt_ack_SHIFT)
+#define MH_DEBUG_REG22_SET_MH_RBBM_busy(mh_debug_reg22_reg, mh_rbbm_busy) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_MH_RBBM_busy_MASK) | (mh_rbbm_busy << MH_DEBUG_REG22_MH_RBBM_busy_SHIFT)
+#define MH_DEBUG_REG22_SET_MH_CIB_mh_clk_en_int(mh_debug_reg22_reg, mh_cib_mh_clk_en_int) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_MH_CIB_mh_clk_en_int_MASK) | (mh_cib_mh_clk_en_int << MH_DEBUG_REG22_MH_CIB_mh_clk_en_int_SHIFT)
+#define MH_DEBUG_REG22_SET_MH_CIB_mmu_clk_en_int(mh_debug_reg22_reg, mh_cib_mmu_clk_en_int) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_MH_CIB_mmu_clk_en_int_MASK) | (mh_cib_mmu_clk_en_int << MH_DEBUG_REG22_MH_CIB_mmu_clk_en_int_SHIFT)
+#define MH_DEBUG_REG22_SET_MH_CIB_tcroq_clk_en_int(mh_debug_reg22_reg, mh_cib_tcroq_clk_en_int) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_MH_CIB_tcroq_clk_en_int_MASK) | (mh_cib_tcroq_clk_en_int << MH_DEBUG_REG22_MH_CIB_tcroq_clk_en_int_SHIFT)
+#define MH_DEBUG_REG22_SET_GAT_CLK_ENA(mh_debug_reg22_reg, gat_clk_ena) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_GAT_CLK_ENA_MASK) | (gat_clk_ena << MH_DEBUG_REG22_GAT_CLK_ENA_SHIFT)
+#define MH_DEBUG_REG22_SET_AXI_RDY_ENA(mh_debug_reg22_reg, axi_rdy_ena) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_AXI_RDY_ENA_MASK) | (axi_rdy_ena << MH_DEBUG_REG22_AXI_RDY_ENA_SHIFT)
+#define MH_DEBUG_REG22_SET_RBBM_MH_clk_en_override(mh_debug_reg22_reg, rbbm_mh_clk_en_override) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_RBBM_MH_clk_en_override_MASK) | (rbbm_mh_clk_en_override << MH_DEBUG_REG22_RBBM_MH_clk_en_override_SHIFT)
+#define MH_DEBUG_REG22_SET_CNT_q(mh_debug_reg22_reg, cnt_q) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_CNT_q_MASK) | (cnt_q << MH_DEBUG_REG22_CNT_q_SHIFT)
+#define MH_DEBUG_REG22_SET_TCD_EMPTY_q(mh_debug_reg22_reg, tcd_empty_q) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_TCD_EMPTY_q_MASK) | (tcd_empty_q << MH_DEBUG_REG22_TCD_EMPTY_q_SHIFT)
+#define MH_DEBUG_REG22_SET_TC_ROQ_EMPTY(mh_debug_reg22_reg, tc_roq_empty) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_TC_ROQ_EMPTY_MASK) | (tc_roq_empty << MH_DEBUG_REG22_TC_ROQ_EMPTY_SHIFT)
+#define MH_DEBUG_REG22_SET_MH_BUSY_d(mh_debug_reg22_reg, mh_busy_d) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_MH_BUSY_d_MASK) | (mh_busy_d << MH_DEBUG_REG22_MH_BUSY_d_SHIFT)
+#define MH_DEBUG_REG22_SET_ANY_CLNT_BUSY(mh_debug_reg22_reg, any_clnt_busy) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_ANY_CLNT_BUSY_MASK) | (any_clnt_busy << MH_DEBUG_REG22_ANY_CLNT_BUSY_SHIFT)
+#define MH_DEBUG_REG22_SET_MH_MMU_INVALIDATE_INVALIDATE_ALL(mh_debug_reg22_reg, mh_mmu_invalidate_invalidate_all) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_MH_MMU_INVALIDATE_INVALIDATE_ALL_MASK) | (mh_mmu_invalidate_invalidate_all << MH_DEBUG_REG22_MH_MMU_INVALIDATE_INVALIDATE_ALL_SHIFT)
+#define MH_DEBUG_REG22_SET_CP_SEND_q(mh_debug_reg22_reg, cp_send_q) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_CP_SEND_q_MASK) | (cp_send_q << MH_DEBUG_REG22_CP_SEND_q_SHIFT)
+#define MH_DEBUG_REG22_SET_CP_RTR_q(mh_debug_reg22_reg, cp_rtr_q) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_CP_RTR_q_MASK) | (cp_rtr_q << MH_DEBUG_REG22_CP_RTR_q_SHIFT)
+#define MH_DEBUG_REG22_SET_VGT_SEND_q(mh_debug_reg22_reg, vgt_send_q) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_VGT_SEND_q_MASK) | (vgt_send_q << MH_DEBUG_REG22_VGT_SEND_q_SHIFT)
+#define MH_DEBUG_REG22_SET_VGT_RTR_q(mh_debug_reg22_reg, vgt_rtr_q) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_VGT_RTR_q_MASK) | (vgt_rtr_q << MH_DEBUG_REG22_VGT_RTR_q_SHIFT)
+#define MH_DEBUG_REG22_SET_TC_ROQ_SEND_q(mh_debug_reg22_reg, tc_roq_send_q) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_TC_ROQ_SEND_q_MASK) | (tc_roq_send_q << MH_DEBUG_REG22_TC_ROQ_SEND_q_SHIFT)
+#define MH_DEBUG_REG22_SET_TC_ROQ_RTR_q(mh_debug_reg22_reg, tc_roq_rtr_q) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_TC_ROQ_RTR_q_MASK) | (tc_roq_rtr_q << MH_DEBUG_REG22_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG22_SET_RB_SEND_q(mh_debug_reg22_reg, rb_send_q) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_RB_SEND_q_MASK) | (rb_send_q << MH_DEBUG_REG22_RB_SEND_q_SHIFT)
+#define MH_DEBUG_REG22_SET_RB_RTR_q(mh_debug_reg22_reg, rb_rtr_q) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_RB_RTR_q_MASK) | (rb_rtr_q << MH_DEBUG_REG22_RB_RTR_q_SHIFT)
+#define MH_DEBUG_REG22_SET_RDC_VALID(mh_debug_reg22_reg, rdc_valid) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_RDC_VALID_MASK) | (rdc_valid << MH_DEBUG_REG22_RDC_VALID_SHIFT)
+#define MH_DEBUG_REG22_SET_RDC_RLAST(mh_debug_reg22_reg, rdc_rlast) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_RDC_RLAST_MASK) | (rdc_rlast << MH_DEBUG_REG22_RDC_RLAST_SHIFT)
+#define MH_DEBUG_REG22_SET_TLBMISS_VALID(mh_debug_reg22_reg, tlbmiss_valid) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_TLBMISS_VALID_MASK) | (tlbmiss_valid << MH_DEBUG_REG22_TLBMISS_VALID_SHIFT)
+#define MH_DEBUG_REG22_SET_BRC_VALID(mh_debug_reg22_reg, brc_valid) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_BRC_VALID_MASK) | (brc_valid << MH_DEBUG_REG22_BRC_VALID_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg22_t {
+ unsigned int cib_mh_axi_halt_req : MH_DEBUG_REG22_CIB_MH_axi_halt_req_SIZE;
+ unsigned int mh_cib_axi_halt_ack : MH_DEBUG_REG22_MH_CIB_axi_halt_ack_SIZE;
+ unsigned int mh_rbbm_busy : MH_DEBUG_REG22_MH_RBBM_busy_SIZE;
+ unsigned int mh_cib_mh_clk_en_int : MH_DEBUG_REG22_MH_CIB_mh_clk_en_int_SIZE;
+ unsigned int mh_cib_mmu_clk_en_int : MH_DEBUG_REG22_MH_CIB_mmu_clk_en_int_SIZE;
+ unsigned int mh_cib_tcroq_clk_en_int : MH_DEBUG_REG22_MH_CIB_tcroq_clk_en_int_SIZE;
+ unsigned int gat_clk_ena : MH_DEBUG_REG22_GAT_CLK_ENA_SIZE;
+ unsigned int axi_rdy_ena : MH_DEBUG_REG22_AXI_RDY_ENA_SIZE;
+ unsigned int rbbm_mh_clk_en_override : MH_DEBUG_REG22_RBBM_MH_clk_en_override_SIZE;
+ unsigned int cnt_q : MH_DEBUG_REG22_CNT_q_SIZE;
+ unsigned int tcd_empty_q : MH_DEBUG_REG22_TCD_EMPTY_q_SIZE;
+ unsigned int tc_roq_empty : MH_DEBUG_REG22_TC_ROQ_EMPTY_SIZE;
+ unsigned int mh_busy_d : MH_DEBUG_REG22_MH_BUSY_d_SIZE;
+ unsigned int any_clnt_busy : MH_DEBUG_REG22_ANY_CLNT_BUSY_SIZE;
+ unsigned int mh_mmu_invalidate_invalidate_all : MH_DEBUG_REG22_MH_MMU_INVALIDATE_INVALIDATE_ALL_SIZE;
+ unsigned int cp_send_q : MH_DEBUG_REG22_CP_SEND_q_SIZE;
+ unsigned int cp_rtr_q : MH_DEBUG_REG22_CP_RTR_q_SIZE;
+ unsigned int vgt_send_q : MH_DEBUG_REG22_VGT_SEND_q_SIZE;
+ unsigned int vgt_rtr_q : MH_DEBUG_REG22_VGT_RTR_q_SIZE;
+ unsigned int tc_roq_send_q : MH_DEBUG_REG22_TC_ROQ_SEND_q_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG22_TC_ROQ_RTR_q_SIZE;
+ unsigned int rb_send_q : MH_DEBUG_REG22_RB_SEND_q_SIZE;
+ unsigned int rb_rtr_q : MH_DEBUG_REG22_RB_RTR_q_SIZE;
+ unsigned int rdc_valid : MH_DEBUG_REG22_RDC_VALID_SIZE;
+ unsigned int rdc_rlast : MH_DEBUG_REG22_RDC_RLAST_SIZE;
+ unsigned int tlbmiss_valid : MH_DEBUG_REG22_TLBMISS_VALID_SIZE;
+ unsigned int brc_valid : MH_DEBUG_REG22_BRC_VALID_SIZE;
+ } mh_debug_reg22_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg22_t {
+ unsigned int brc_valid : MH_DEBUG_REG22_BRC_VALID_SIZE;
+ unsigned int tlbmiss_valid : MH_DEBUG_REG22_TLBMISS_VALID_SIZE;
+ unsigned int rdc_rlast : MH_DEBUG_REG22_RDC_RLAST_SIZE;
+ unsigned int rdc_valid : MH_DEBUG_REG22_RDC_VALID_SIZE;
+ unsigned int rb_rtr_q : MH_DEBUG_REG22_RB_RTR_q_SIZE;
+ unsigned int rb_send_q : MH_DEBUG_REG22_RB_SEND_q_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG22_TC_ROQ_RTR_q_SIZE;
+ unsigned int tc_roq_send_q : MH_DEBUG_REG22_TC_ROQ_SEND_q_SIZE;
+ unsigned int vgt_rtr_q : MH_DEBUG_REG22_VGT_RTR_q_SIZE;
+ unsigned int vgt_send_q : MH_DEBUG_REG22_VGT_SEND_q_SIZE;
+ unsigned int cp_rtr_q : MH_DEBUG_REG22_CP_RTR_q_SIZE;
+ unsigned int cp_send_q : MH_DEBUG_REG22_CP_SEND_q_SIZE;
+ unsigned int mh_mmu_invalidate_invalidate_all : MH_DEBUG_REG22_MH_MMU_INVALIDATE_INVALIDATE_ALL_SIZE;
+ unsigned int any_clnt_busy : MH_DEBUG_REG22_ANY_CLNT_BUSY_SIZE;
+ unsigned int mh_busy_d : MH_DEBUG_REG22_MH_BUSY_d_SIZE;
+ unsigned int tc_roq_empty : MH_DEBUG_REG22_TC_ROQ_EMPTY_SIZE;
+ unsigned int tcd_empty_q : MH_DEBUG_REG22_TCD_EMPTY_q_SIZE;
+ unsigned int cnt_q : MH_DEBUG_REG22_CNT_q_SIZE;
+ unsigned int rbbm_mh_clk_en_override : MH_DEBUG_REG22_RBBM_MH_clk_en_override_SIZE;
+ unsigned int axi_rdy_ena : MH_DEBUG_REG22_AXI_RDY_ENA_SIZE;
+ unsigned int gat_clk_ena : MH_DEBUG_REG22_GAT_CLK_ENA_SIZE;
+ unsigned int mh_cib_tcroq_clk_en_int : MH_DEBUG_REG22_MH_CIB_tcroq_clk_en_int_SIZE;
+ unsigned int mh_cib_mmu_clk_en_int : MH_DEBUG_REG22_MH_CIB_mmu_clk_en_int_SIZE;
+ unsigned int mh_cib_mh_clk_en_int : MH_DEBUG_REG22_MH_CIB_mh_clk_en_int_SIZE;
+ unsigned int mh_rbbm_busy : MH_DEBUG_REG22_MH_RBBM_busy_SIZE;
+ unsigned int mh_cib_axi_halt_ack : MH_DEBUG_REG22_MH_CIB_axi_halt_ack_SIZE;
+ unsigned int cib_mh_axi_halt_req : MH_DEBUG_REG22_CIB_MH_axi_halt_req_SIZE;
+ } mh_debug_reg22_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg22_t f;
+} mh_debug_reg22_u;
+
+
+/*
+ * MH_DEBUG_REG23 struct
+ */
+
+#define MH_DEBUG_REG23_EFF2_FP_WINNER_SIZE 3
+#define MH_DEBUG_REG23_EFF2_LRU_WINNER_out_SIZE 3
+#define MH_DEBUG_REG23_EFF1_WINNER_SIZE 3
+#define MH_DEBUG_REG23_ARB_WINNER_SIZE 3
+#define MH_DEBUG_REG23_ARB_WINNER_q_SIZE 3
+#define MH_DEBUG_REG23_EFF1_WIN_SIZE 1
+#define MH_DEBUG_REG23_KILL_EFF1_SIZE 1
+#define MH_DEBUG_REG23_ARB_HOLD_SIZE 1
+#define MH_DEBUG_REG23_ARB_RTR_q_SIZE 1
+#define MH_DEBUG_REG23_CP_SEND_QUAL_SIZE 1
+#define MH_DEBUG_REG23_VGT_SEND_QUAL_SIZE 1
+#define MH_DEBUG_REG23_TC_SEND_QUAL_SIZE 1
+#define MH_DEBUG_REG23_TC_SEND_EFF1_QUAL_SIZE 1
+#define MH_DEBUG_REG23_RB_SEND_QUAL_SIZE 1
+#define MH_DEBUG_REG23_ARB_QUAL_SIZE 1
+#define MH_DEBUG_REG23_CP_EFF1_REQ_SIZE 1
+#define MH_DEBUG_REG23_VGT_EFF1_REQ_SIZE 1
+#define MH_DEBUG_REG23_TC_EFF1_REQ_SIZE 1
+#define MH_DEBUG_REG23_RB_EFF1_REQ_SIZE 1
+#define MH_DEBUG_REG23_ANY_SAME_ROW_BANK_SIZE 1
+#define MH_DEBUG_REG23_TCD_NEARFULL_q_SIZE 1
+#define MH_DEBUG_REG23_TCHOLD_IP_q_SIZE 1
+
+#define MH_DEBUG_REG23_EFF2_FP_WINNER_SHIFT 0
+#define MH_DEBUG_REG23_EFF2_LRU_WINNER_out_SHIFT 3
+#define MH_DEBUG_REG23_EFF1_WINNER_SHIFT 6
+#define MH_DEBUG_REG23_ARB_WINNER_SHIFT 9
+#define MH_DEBUG_REG23_ARB_WINNER_q_SHIFT 12
+#define MH_DEBUG_REG23_EFF1_WIN_SHIFT 15
+#define MH_DEBUG_REG23_KILL_EFF1_SHIFT 16
+#define MH_DEBUG_REG23_ARB_HOLD_SHIFT 17
+#define MH_DEBUG_REG23_ARB_RTR_q_SHIFT 18
+#define MH_DEBUG_REG23_CP_SEND_QUAL_SHIFT 19
+#define MH_DEBUG_REG23_VGT_SEND_QUAL_SHIFT 20
+#define MH_DEBUG_REG23_TC_SEND_QUAL_SHIFT 21
+#define MH_DEBUG_REG23_TC_SEND_EFF1_QUAL_SHIFT 22
+#define MH_DEBUG_REG23_RB_SEND_QUAL_SHIFT 23
+#define MH_DEBUG_REG23_ARB_QUAL_SHIFT 24
+#define MH_DEBUG_REG23_CP_EFF1_REQ_SHIFT 25
+#define MH_DEBUG_REG23_VGT_EFF1_REQ_SHIFT 26
+#define MH_DEBUG_REG23_TC_EFF1_REQ_SHIFT 27
+#define MH_DEBUG_REG23_RB_EFF1_REQ_SHIFT 28
+#define MH_DEBUG_REG23_ANY_SAME_ROW_BANK_SHIFT 29
+#define MH_DEBUG_REG23_TCD_NEARFULL_q_SHIFT 30
+#define MH_DEBUG_REG23_TCHOLD_IP_q_SHIFT 31
+
+#define MH_DEBUG_REG23_EFF2_FP_WINNER_MASK 0x00000007
+#define MH_DEBUG_REG23_EFF2_LRU_WINNER_out_MASK 0x00000038
+#define MH_DEBUG_REG23_EFF1_WINNER_MASK 0x000001c0
+#define MH_DEBUG_REG23_ARB_WINNER_MASK 0x00000e00
+#define MH_DEBUG_REG23_ARB_WINNER_q_MASK 0x00007000
+#define MH_DEBUG_REG23_EFF1_WIN_MASK 0x00008000
+#define MH_DEBUG_REG23_KILL_EFF1_MASK 0x00010000
+#define MH_DEBUG_REG23_ARB_HOLD_MASK 0x00020000
+#define MH_DEBUG_REG23_ARB_RTR_q_MASK 0x00040000
+#define MH_DEBUG_REG23_CP_SEND_QUAL_MASK 0x00080000
+#define MH_DEBUG_REG23_VGT_SEND_QUAL_MASK 0x00100000
+#define MH_DEBUG_REG23_TC_SEND_QUAL_MASK 0x00200000
+#define MH_DEBUG_REG23_TC_SEND_EFF1_QUAL_MASK 0x00400000
+#define MH_DEBUG_REG23_RB_SEND_QUAL_MASK 0x00800000
+#define MH_DEBUG_REG23_ARB_QUAL_MASK 0x01000000
+#define MH_DEBUG_REG23_CP_EFF1_REQ_MASK 0x02000000
+#define MH_DEBUG_REG23_VGT_EFF1_REQ_MASK 0x04000000
+#define MH_DEBUG_REG23_TC_EFF1_REQ_MASK 0x08000000
+#define MH_DEBUG_REG23_RB_EFF1_REQ_MASK 0x10000000
+#define MH_DEBUG_REG23_ANY_SAME_ROW_BANK_MASK 0x20000000
+#define MH_DEBUG_REG23_TCD_NEARFULL_q_MASK 0x40000000
+#define MH_DEBUG_REG23_TCHOLD_IP_q_MASK 0x80000000
+
+#define MH_DEBUG_REG23_MASK \
+ (MH_DEBUG_REG23_EFF2_FP_WINNER_MASK | \
+ MH_DEBUG_REG23_EFF2_LRU_WINNER_out_MASK | \
+ MH_DEBUG_REG23_EFF1_WINNER_MASK | \
+ MH_DEBUG_REG23_ARB_WINNER_MASK | \
+ MH_DEBUG_REG23_ARB_WINNER_q_MASK | \
+ MH_DEBUG_REG23_EFF1_WIN_MASK | \
+ MH_DEBUG_REG23_KILL_EFF1_MASK | \
+ MH_DEBUG_REG23_ARB_HOLD_MASK | \
+ MH_DEBUG_REG23_ARB_RTR_q_MASK | \
+ MH_DEBUG_REG23_CP_SEND_QUAL_MASK | \
+ MH_DEBUG_REG23_VGT_SEND_QUAL_MASK | \
+ MH_DEBUG_REG23_TC_SEND_QUAL_MASK | \
+ MH_DEBUG_REG23_TC_SEND_EFF1_QUAL_MASK | \
+ MH_DEBUG_REG23_RB_SEND_QUAL_MASK | \
+ MH_DEBUG_REG23_ARB_QUAL_MASK | \
+ MH_DEBUG_REG23_CP_EFF1_REQ_MASK | \
+ MH_DEBUG_REG23_VGT_EFF1_REQ_MASK | \
+ MH_DEBUG_REG23_TC_EFF1_REQ_MASK | \
+ MH_DEBUG_REG23_RB_EFF1_REQ_MASK | \
+ MH_DEBUG_REG23_ANY_SAME_ROW_BANK_MASK | \
+ MH_DEBUG_REG23_TCD_NEARFULL_q_MASK | \
+ MH_DEBUG_REG23_TCHOLD_IP_q_MASK)
+
+#define MH_DEBUG_REG23(eff2_fp_winner, eff2_lru_winner_out, eff1_winner, arb_winner, arb_winner_q, eff1_win, kill_eff1, arb_hold, arb_rtr_q, cp_send_qual, vgt_send_qual, tc_send_qual, tc_send_eff1_qual, rb_send_qual, arb_qual, cp_eff1_req, vgt_eff1_req, tc_eff1_req, rb_eff1_req, any_same_row_bank, tcd_nearfull_q, tchold_ip_q) \
+ ((eff2_fp_winner << MH_DEBUG_REG23_EFF2_FP_WINNER_SHIFT) | \
+ (eff2_lru_winner_out << MH_DEBUG_REG23_EFF2_LRU_WINNER_out_SHIFT) | \
+ (eff1_winner << MH_DEBUG_REG23_EFF1_WINNER_SHIFT) | \
+ (arb_winner << MH_DEBUG_REG23_ARB_WINNER_SHIFT) | \
+ (arb_winner_q << MH_DEBUG_REG23_ARB_WINNER_q_SHIFT) | \
+ (eff1_win << MH_DEBUG_REG23_EFF1_WIN_SHIFT) | \
+ (kill_eff1 << MH_DEBUG_REG23_KILL_EFF1_SHIFT) | \
+ (arb_hold << MH_DEBUG_REG23_ARB_HOLD_SHIFT) | \
+ (arb_rtr_q << MH_DEBUG_REG23_ARB_RTR_q_SHIFT) | \
+ (cp_send_qual << MH_DEBUG_REG23_CP_SEND_QUAL_SHIFT) | \
+ (vgt_send_qual << MH_DEBUG_REG23_VGT_SEND_QUAL_SHIFT) | \
+ (tc_send_qual << MH_DEBUG_REG23_TC_SEND_QUAL_SHIFT) | \
+ (tc_send_eff1_qual << MH_DEBUG_REG23_TC_SEND_EFF1_QUAL_SHIFT) | \
+ (rb_send_qual << MH_DEBUG_REG23_RB_SEND_QUAL_SHIFT) | \
+ (arb_qual << MH_DEBUG_REG23_ARB_QUAL_SHIFT) | \
+ (cp_eff1_req << MH_DEBUG_REG23_CP_EFF1_REQ_SHIFT) | \
+ (vgt_eff1_req << MH_DEBUG_REG23_VGT_EFF1_REQ_SHIFT) | \
+ (tc_eff1_req << MH_DEBUG_REG23_TC_EFF1_REQ_SHIFT) | \
+ (rb_eff1_req << MH_DEBUG_REG23_RB_EFF1_REQ_SHIFT) | \
+ (any_same_row_bank << MH_DEBUG_REG23_ANY_SAME_ROW_BANK_SHIFT) | \
+ (tcd_nearfull_q << MH_DEBUG_REG23_TCD_NEARFULL_q_SHIFT) | \
+ (tchold_ip_q << MH_DEBUG_REG23_TCHOLD_IP_q_SHIFT))
+
+#define MH_DEBUG_REG23_GET_EFF2_FP_WINNER(mh_debug_reg23) \
+ ((mh_debug_reg23 & MH_DEBUG_REG23_EFF2_FP_WINNER_MASK) >> MH_DEBUG_REG23_EFF2_FP_WINNER_SHIFT)
+#define MH_DEBUG_REG23_GET_EFF2_LRU_WINNER_out(mh_debug_reg23) \
+ ((mh_debug_reg23 & MH_DEBUG_REG23_EFF2_LRU_WINNER_out_MASK) >> MH_DEBUG_REG23_EFF2_LRU_WINNER_out_SHIFT)
+#define MH_DEBUG_REG23_GET_EFF1_WINNER(mh_debug_reg23) \
+ ((mh_debug_reg23 & MH_DEBUG_REG23_EFF1_WINNER_MASK) >> MH_DEBUG_REG23_EFF1_WINNER_SHIFT)
+#define MH_DEBUG_REG23_GET_ARB_WINNER(mh_debug_reg23) \
+ ((mh_debug_reg23 & MH_DEBUG_REG23_ARB_WINNER_MASK) >> MH_DEBUG_REG23_ARB_WINNER_SHIFT)
+#define MH_DEBUG_REG23_GET_ARB_WINNER_q(mh_debug_reg23) \
+ ((mh_debug_reg23 & MH_DEBUG_REG23_ARB_WINNER_q_MASK) >> MH_DEBUG_REG23_ARB_WINNER_q_SHIFT)
+#define MH_DEBUG_REG23_GET_EFF1_WIN(mh_debug_reg23) \
+ ((mh_debug_reg23 & MH_DEBUG_REG23_EFF1_WIN_MASK) >> MH_DEBUG_REG23_EFF1_WIN_SHIFT)
+#define MH_DEBUG_REG23_GET_KILL_EFF1(mh_debug_reg23) \
+ ((mh_debug_reg23 & MH_DEBUG_REG23_KILL_EFF1_MASK) >> MH_DEBUG_REG23_KILL_EFF1_SHIFT)
+#define MH_DEBUG_REG23_GET_ARB_HOLD(mh_debug_reg23) \
+ ((mh_debug_reg23 & MH_DEBUG_REG23_ARB_HOLD_MASK) >> MH_DEBUG_REG23_ARB_HOLD_SHIFT)
+#define MH_DEBUG_REG23_GET_ARB_RTR_q(mh_debug_reg23) \
+ ((mh_debug_reg23 & MH_DEBUG_REG23_ARB_RTR_q_MASK) >> MH_DEBUG_REG23_ARB_RTR_q_SHIFT)
+#define MH_DEBUG_REG23_GET_CP_SEND_QUAL(mh_debug_reg23) \
+ ((mh_debug_reg23 & MH_DEBUG_REG23_CP_SEND_QUAL_MASK) >> MH_DEBUG_REG23_CP_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG23_GET_VGT_SEND_QUAL(mh_debug_reg23) \
+ ((mh_debug_reg23 & MH_DEBUG_REG23_VGT_SEND_QUAL_MASK) >> MH_DEBUG_REG23_VGT_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG23_GET_TC_SEND_QUAL(mh_debug_reg23) \
+ ((mh_debug_reg23 & MH_DEBUG_REG23_TC_SEND_QUAL_MASK) >> MH_DEBUG_REG23_TC_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG23_GET_TC_SEND_EFF1_QUAL(mh_debug_reg23) \
+ ((mh_debug_reg23 & MH_DEBUG_REG23_TC_SEND_EFF1_QUAL_MASK) >> MH_DEBUG_REG23_TC_SEND_EFF1_QUAL_SHIFT)
+#define MH_DEBUG_REG23_GET_RB_SEND_QUAL(mh_debug_reg23) \
+ ((mh_debug_reg23 & MH_DEBUG_REG23_RB_SEND_QUAL_MASK) >> MH_DEBUG_REG23_RB_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG23_GET_ARB_QUAL(mh_debug_reg23) \
+ ((mh_debug_reg23 & MH_DEBUG_REG23_ARB_QUAL_MASK) >> MH_DEBUG_REG23_ARB_QUAL_SHIFT)
+#define MH_DEBUG_REG23_GET_CP_EFF1_REQ(mh_debug_reg23) \
+ ((mh_debug_reg23 & MH_DEBUG_REG23_CP_EFF1_REQ_MASK) >> MH_DEBUG_REG23_CP_EFF1_REQ_SHIFT)
+#define MH_DEBUG_REG23_GET_VGT_EFF1_REQ(mh_debug_reg23) \
+ ((mh_debug_reg23 & MH_DEBUG_REG23_VGT_EFF1_REQ_MASK) >> MH_DEBUG_REG23_VGT_EFF1_REQ_SHIFT)
+#define MH_DEBUG_REG23_GET_TC_EFF1_REQ(mh_debug_reg23) \
+ ((mh_debug_reg23 & MH_DEBUG_REG23_TC_EFF1_REQ_MASK) >> MH_DEBUG_REG23_TC_EFF1_REQ_SHIFT)
+#define MH_DEBUG_REG23_GET_RB_EFF1_REQ(mh_debug_reg23) \
+ ((mh_debug_reg23 & MH_DEBUG_REG23_RB_EFF1_REQ_MASK) >> MH_DEBUG_REG23_RB_EFF1_REQ_SHIFT)
+#define MH_DEBUG_REG23_GET_ANY_SAME_ROW_BANK(mh_debug_reg23) \
+ ((mh_debug_reg23 & MH_DEBUG_REG23_ANY_SAME_ROW_BANK_MASK) >> MH_DEBUG_REG23_ANY_SAME_ROW_BANK_SHIFT)
+#define MH_DEBUG_REG23_GET_TCD_NEARFULL_q(mh_debug_reg23) \
+ ((mh_debug_reg23 & MH_DEBUG_REG23_TCD_NEARFULL_q_MASK) >> MH_DEBUG_REG23_TCD_NEARFULL_q_SHIFT)
+#define MH_DEBUG_REG23_GET_TCHOLD_IP_q(mh_debug_reg23) \
+ ((mh_debug_reg23 & MH_DEBUG_REG23_TCHOLD_IP_q_MASK) >> MH_DEBUG_REG23_TCHOLD_IP_q_SHIFT)
+
+#define MH_DEBUG_REG23_SET_EFF2_FP_WINNER(mh_debug_reg23_reg, eff2_fp_winner) \
+ mh_debug_reg23_reg = (mh_debug_reg23_reg & ~MH_DEBUG_REG23_EFF2_FP_WINNER_MASK) | (eff2_fp_winner << MH_DEBUG_REG23_EFF2_FP_WINNER_SHIFT)
+#define MH_DEBUG_REG23_SET_EFF2_LRU_WINNER_out(mh_debug_reg23_reg, eff2_lru_winner_out) \
+ mh_debug_reg23_reg = (mh_debug_reg23_reg & ~MH_DEBUG_REG23_EFF2_LRU_WINNER_out_MASK) | (eff2_lru_winner_out << MH_DEBUG_REG23_EFF2_LRU_WINNER_out_SHIFT)
+#define MH_DEBUG_REG23_SET_EFF1_WINNER(mh_debug_reg23_reg, eff1_winner) \
+ mh_debug_reg23_reg = (mh_debug_reg23_reg & ~MH_DEBUG_REG23_EFF1_WINNER_MASK) | (eff1_winner << MH_DEBUG_REG23_EFF1_WINNER_SHIFT)
+#define MH_DEBUG_REG23_SET_ARB_WINNER(mh_debug_reg23_reg, arb_winner) \
+ mh_debug_reg23_reg = (mh_debug_reg23_reg & ~MH_DEBUG_REG23_ARB_WINNER_MASK) | (arb_winner << MH_DEBUG_REG23_ARB_WINNER_SHIFT)
+#define MH_DEBUG_REG23_SET_ARB_WINNER_q(mh_debug_reg23_reg, arb_winner_q) \
+ mh_debug_reg23_reg = (mh_debug_reg23_reg & ~MH_DEBUG_REG23_ARB_WINNER_q_MASK) | (arb_winner_q << MH_DEBUG_REG23_ARB_WINNER_q_SHIFT)
+#define MH_DEBUG_REG23_SET_EFF1_WIN(mh_debug_reg23_reg, eff1_win) \
+ mh_debug_reg23_reg = (mh_debug_reg23_reg & ~MH_DEBUG_REG23_EFF1_WIN_MASK) | (eff1_win << MH_DEBUG_REG23_EFF1_WIN_SHIFT)
+#define MH_DEBUG_REG23_SET_KILL_EFF1(mh_debug_reg23_reg, kill_eff1) \
+ mh_debug_reg23_reg = (mh_debug_reg23_reg & ~MH_DEBUG_REG23_KILL_EFF1_MASK) | (kill_eff1 << MH_DEBUG_REG23_KILL_EFF1_SHIFT)
+#define MH_DEBUG_REG23_SET_ARB_HOLD(mh_debug_reg23_reg, arb_hold) \
+ mh_debug_reg23_reg = (mh_debug_reg23_reg & ~MH_DEBUG_REG23_ARB_HOLD_MASK) | (arb_hold << MH_DEBUG_REG23_ARB_HOLD_SHIFT)
+#define MH_DEBUG_REG23_SET_ARB_RTR_q(mh_debug_reg23_reg, arb_rtr_q) \
+ mh_debug_reg23_reg = (mh_debug_reg23_reg & ~MH_DEBUG_REG23_ARB_RTR_q_MASK) | (arb_rtr_q << MH_DEBUG_REG23_ARB_RTR_q_SHIFT)
+#define MH_DEBUG_REG23_SET_CP_SEND_QUAL(mh_debug_reg23_reg, cp_send_qual) \
+ mh_debug_reg23_reg = (mh_debug_reg23_reg & ~MH_DEBUG_REG23_CP_SEND_QUAL_MASK) | (cp_send_qual << MH_DEBUG_REG23_CP_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG23_SET_VGT_SEND_QUAL(mh_debug_reg23_reg, vgt_send_qual) \
+ mh_debug_reg23_reg = (mh_debug_reg23_reg & ~MH_DEBUG_REG23_VGT_SEND_QUAL_MASK) | (vgt_send_qual << MH_DEBUG_REG23_VGT_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG23_SET_TC_SEND_QUAL(mh_debug_reg23_reg, tc_send_qual) \
+ mh_debug_reg23_reg = (mh_debug_reg23_reg & ~MH_DEBUG_REG23_TC_SEND_QUAL_MASK) | (tc_send_qual << MH_DEBUG_REG23_TC_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG23_SET_TC_SEND_EFF1_QUAL(mh_debug_reg23_reg, tc_send_eff1_qual) \
+ mh_debug_reg23_reg = (mh_debug_reg23_reg & ~MH_DEBUG_REG23_TC_SEND_EFF1_QUAL_MASK) | (tc_send_eff1_qual << MH_DEBUG_REG23_TC_SEND_EFF1_QUAL_SHIFT)
+#define MH_DEBUG_REG23_SET_RB_SEND_QUAL(mh_debug_reg23_reg, rb_send_qual) \
+ mh_debug_reg23_reg = (mh_debug_reg23_reg & ~MH_DEBUG_REG23_RB_SEND_QUAL_MASK) | (rb_send_qual << MH_DEBUG_REG23_RB_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG23_SET_ARB_QUAL(mh_debug_reg23_reg, arb_qual) \
+ mh_debug_reg23_reg = (mh_debug_reg23_reg & ~MH_DEBUG_REG23_ARB_QUAL_MASK) | (arb_qual << MH_DEBUG_REG23_ARB_QUAL_SHIFT)
+#define MH_DEBUG_REG23_SET_CP_EFF1_REQ(mh_debug_reg23_reg, cp_eff1_req) \
+ mh_debug_reg23_reg = (mh_debug_reg23_reg & ~MH_DEBUG_REG23_CP_EFF1_REQ_MASK) | (cp_eff1_req << MH_DEBUG_REG23_CP_EFF1_REQ_SHIFT)
+#define MH_DEBUG_REG23_SET_VGT_EFF1_REQ(mh_debug_reg23_reg, vgt_eff1_req) \
+ mh_debug_reg23_reg = (mh_debug_reg23_reg & ~MH_DEBUG_REG23_VGT_EFF1_REQ_MASK) | (vgt_eff1_req << MH_DEBUG_REG23_VGT_EFF1_REQ_SHIFT)
+#define MH_DEBUG_REG23_SET_TC_EFF1_REQ(mh_debug_reg23_reg, tc_eff1_req) \
+ mh_debug_reg23_reg = (mh_debug_reg23_reg & ~MH_DEBUG_REG23_TC_EFF1_REQ_MASK) | (tc_eff1_req << MH_DEBUG_REG23_TC_EFF1_REQ_SHIFT)
+#define MH_DEBUG_REG23_SET_RB_EFF1_REQ(mh_debug_reg23_reg, rb_eff1_req) \
+ mh_debug_reg23_reg = (mh_debug_reg23_reg & ~MH_DEBUG_REG23_RB_EFF1_REQ_MASK) | (rb_eff1_req << MH_DEBUG_REG23_RB_EFF1_REQ_SHIFT)
+#define MH_DEBUG_REG23_SET_ANY_SAME_ROW_BANK(mh_debug_reg23_reg, any_same_row_bank) \
+ mh_debug_reg23_reg = (mh_debug_reg23_reg & ~MH_DEBUG_REG23_ANY_SAME_ROW_BANK_MASK) | (any_same_row_bank << MH_DEBUG_REG23_ANY_SAME_ROW_BANK_SHIFT)
+#define MH_DEBUG_REG23_SET_TCD_NEARFULL_q(mh_debug_reg23_reg, tcd_nearfull_q) \
+ mh_debug_reg23_reg = (mh_debug_reg23_reg & ~MH_DEBUG_REG23_TCD_NEARFULL_q_MASK) | (tcd_nearfull_q << MH_DEBUG_REG23_TCD_NEARFULL_q_SHIFT)
+#define MH_DEBUG_REG23_SET_TCHOLD_IP_q(mh_debug_reg23_reg, tchold_ip_q) \
+ mh_debug_reg23_reg = (mh_debug_reg23_reg & ~MH_DEBUG_REG23_TCHOLD_IP_q_MASK) | (tchold_ip_q << MH_DEBUG_REG23_TCHOLD_IP_q_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg23_t {
+ unsigned int eff2_fp_winner : MH_DEBUG_REG23_EFF2_FP_WINNER_SIZE;
+ unsigned int eff2_lru_winner_out : MH_DEBUG_REG23_EFF2_LRU_WINNER_out_SIZE;
+ unsigned int eff1_winner : MH_DEBUG_REG23_EFF1_WINNER_SIZE;
+ unsigned int arb_winner : MH_DEBUG_REG23_ARB_WINNER_SIZE;
+ unsigned int arb_winner_q : MH_DEBUG_REG23_ARB_WINNER_q_SIZE;
+ unsigned int eff1_win : MH_DEBUG_REG23_EFF1_WIN_SIZE;
+ unsigned int kill_eff1 : MH_DEBUG_REG23_KILL_EFF1_SIZE;
+ unsigned int arb_hold : MH_DEBUG_REG23_ARB_HOLD_SIZE;
+ unsigned int arb_rtr_q : MH_DEBUG_REG23_ARB_RTR_q_SIZE;
+ unsigned int cp_send_qual : MH_DEBUG_REG23_CP_SEND_QUAL_SIZE;
+ unsigned int vgt_send_qual : MH_DEBUG_REG23_VGT_SEND_QUAL_SIZE;
+ unsigned int tc_send_qual : MH_DEBUG_REG23_TC_SEND_QUAL_SIZE;
+ unsigned int tc_send_eff1_qual : MH_DEBUG_REG23_TC_SEND_EFF1_QUAL_SIZE;
+ unsigned int rb_send_qual : MH_DEBUG_REG23_RB_SEND_QUAL_SIZE;
+ unsigned int arb_qual : MH_DEBUG_REG23_ARB_QUAL_SIZE;
+ unsigned int cp_eff1_req : MH_DEBUG_REG23_CP_EFF1_REQ_SIZE;
+ unsigned int vgt_eff1_req : MH_DEBUG_REG23_VGT_EFF1_REQ_SIZE;
+ unsigned int tc_eff1_req : MH_DEBUG_REG23_TC_EFF1_REQ_SIZE;
+ unsigned int rb_eff1_req : MH_DEBUG_REG23_RB_EFF1_REQ_SIZE;
+ unsigned int any_same_row_bank : MH_DEBUG_REG23_ANY_SAME_ROW_BANK_SIZE;
+ unsigned int tcd_nearfull_q : MH_DEBUG_REG23_TCD_NEARFULL_q_SIZE;
+ unsigned int tchold_ip_q : MH_DEBUG_REG23_TCHOLD_IP_q_SIZE;
+ } mh_debug_reg23_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg23_t {
+ unsigned int tchold_ip_q : MH_DEBUG_REG23_TCHOLD_IP_q_SIZE;
+ unsigned int tcd_nearfull_q : MH_DEBUG_REG23_TCD_NEARFULL_q_SIZE;
+ unsigned int any_same_row_bank : MH_DEBUG_REG23_ANY_SAME_ROW_BANK_SIZE;
+ unsigned int rb_eff1_req : MH_DEBUG_REG23_RB_EFF1_REQ_SIZE;
+ unsigned int tc_eff1_req : MH_DEBUG_REG23_TC_EFF1_REQ_SIZE;
+ unsigned int vgt_eff1_req : MH_DEBUG_REG23_VGT_EFF1_REQ_SIZE;
+ unsigned int cp_eff1_req : MH_DEBUG_REG23_CP_EFF1_REQ_SIZE;
+ unsigned int arb_qual : MH_DEBUG_REG23_ARB_QUAL_SIZE;
+ unsigned int rb_send_qual : MH_DEBUG_REG23_RB_SEND_QUAL_SIZE;
+ unsigned int tc_send_eff1_qual : MH_DEBUG_REG23_TC_SEND_EFF1_QUAL_SIZE;
+ unsigned int tc_send_qual : MH_DEBUG_REG23_TC_SEND_QUAL_SIZE;
+ unsigned int vgt_send_qual : MH_DEBUG_REG23_VGT_SEND_QUAL_SIZE;
+ unsigned int cp_send_qual : MH_DEBUG_REG23_CP_SEND_QUAL_SIZE;
+ unsigned int arb_rtr_q : MH_DEBUG_REG23_ARB_RTR_q_SIZE;
+ unsigned int arb_hold : MH_DEBUG_REG23_ARB_HOLD_SIZE;
+ unsigned int kill_eff1 : MH_DEBUG_REG23_KILL_EFF1_SIZE;
+ unsigned int eff1_win : MH_DEBUG_REG23_EFF1_WIN_SIZE;
+ unsigned int arb_winner_q : MH_DEBUG_REG23_ARB_WINNER_q_SIZE;
+ unsigned int arb_winner : MH_DEBUG_REG23_ARB_WINNER_SIZE;
+ unsigned int eff1_winner : MH_DEBUG_REG23_EFF1_WINNER_SIZE;
+ unsigned int eff2_lru_winner_out : MH_DEBUG_REG23_EFF2_LRU_WINNER_out_SIZE;
+ unsigned int eff2_fp_winner : MH_DEBUG_REG23_EFF2_FP_WINNER_SIZE;
+ } mh_debug_reg23_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg23_t f;
+} mh_debug_reg23_u;
+
+
+/*
+ * MH_DEBUG_REG24 struct
+ */
+
+#define MH_DEBUG_REG24_EFF1_WINNER_SIZE 3
+#define MH_DEBUG_REG24_ARB_WINNER_SIZE 3
+#define MH_DEBUG_REG24_CP_SEND_QUAL_SIZE 1
+#define MH_DEBUG_REG24_VGT_SEND_QUAL_SIZE 1
+#define MH_DEBUG_REG24_TC_SEND_QUAL_SIZE 1
+#define MH_DEBUG_REG24_TC_SEND_EFF1_QUAL_SIZE 1
+#define MH_DEBUG_REG24_RB_SEND_QUAL_SIZE 1
+#define MH_DEBUG_REG24_ARB_QUAL_SIZE 1
+#define MH_DEBUG_REG24_CP_EFF1_REQ_SIZE 1
+#define MH_DEBUG_REG24_VGT_EFF1_REQ_SIZE 1
+#define MH_DEBUG_REG24_TC_EFF1_REQ_SIZE 1
+#define MH_DEBUG_REG24_RB_EFF1_REQ_SIZE 1
+#define MH_DEBUG_REG24_EFF1_WIN_SIZE 1
+#define MH_DEBUG_REG24_KILL_EFF1_SIZE 1
+#define MH_DEBUG_REG24_TCD_NEARFULL_q_SIZE 1
+#define MH_DEBUG_REG24_TC_ARB_HOLD_SIZE 1
+#define MH_DEBUG_REG24_ARB_HOLD_SIZE 1
+#define MH_DEBUG_REG24_ARB_RTR_q_SIZE 1
+#define MH_DEBUG_REG24_SAME_PAGE_LIMIT_COUNT_q_SIZE 10
+
+#define MH_DEBUG_REG24_EFF1_WINNER_SHIFT 0
+#define MH_DEBUG_REG24_ARB_WINNER_SHIFT 3
+#define MH_DEBUG_REG24_CP_SEND_QUAL_SHIFT 6
+#define MH_DEBUG_REG24_VGT_SEND_QUAL_SHIFT 7
+#define MH_DEBUG_REG24_TC_SEND_QUAL_SHIFT 8
+#define MH_DEBUG_REG24_TC_SEND_EFF1_QUAL_SHIFT 9
+#define MH_DEBUG_REG24_RB_SEND_QUAL_SHIFT 10
+#define MH_DEBUG_REG24_ARB_QUAL_SHIFT 11
+#define MH_DEBUG_REG24_CP_EFF1_REQ_SHIFT 12
+#define MH_DEBUG_REG24_VGT_EFF1_REQ_SHIFT 13
+#define MH_DEBUG_REG24_TC_EFF1_REQ_SHIFT 14
+#define MH_DEBUG_REG24_RB_EFF1_REQ_SHIFT 15
+#define MH_DEBUG_REG24_EFF1_WIN_SHIFT 16
+#define MH_DEBUG_REG24_KILL_EFF1_SHIFT 17
+#define MH_DEBUG_REG24_TCD_NEARFULL_q_SHIFT 18
+#define MH_DEBUG_REG24_TC_ARB_HOLD_SHIFT 19
+#define MH_DEBUG_REG24_ARB_HOLD_SHIFT 20
+#define MH_DEBUG_REG24_ARB_RTR_q_SHIFT 21
+#define MH_DEBUG_REG24_SAME_PAGE_LIMIT_COUNT_q_SHIFT 22
+
+#define MH_DEBUG_REG24_EFF1_WINNER_MASK 0x00000007
+#define MH_DEBUG_REG24_ARB_WINNER_MASK 0x00000038
+#define MH_DEBUG_REG24_CP_SEND_QUAL_MASK 0x00000040
+#define MH_DEBUG_REG24_VGT_SEND_QUAL_MASK 0x00000080
+#define MH_DEBUG_REG24_TC_SEND_QUAL_MASK 0x00000100
+#define MH_DEBUG_REG24_TC_SEND_EFF1_QUAL_MASK 0x00000200
+#define MH_DEBUG_REG24_RB_SEND_QUAL_MASK 0x00000400
+#define MH_DEBUG_REG24_ARB_QUAL_MASK 0x00000800
+#define MH_DEBUG_REG24_CP_EFF1_REQ_MASK 0x00001000
+#define MH_DEBUG_REG24_VGT_EFF1_REQ_MASK 0x00002000
+#define MH_DEBUG_REG24_TC_EFF1_REQ_MASK 0x00004000
+#define MH_DEBUG_REG24_RB_EFF1_REQ_MASK 0x00008000
+#define MH_DEBUG_REG24_EFF1_WIN_MASK 0x00010000
+#define MH_DEBUG_REG24_KILL_EFF1_MASK 0x00020000
+#define MH_DEBUG_REG24_TCD_NEARFULL_q_MASK 0x00040000
+#define MH_DEBUG_REG24_TC_ARB_HOLD_MASK 0x00080000
+#define MH_DEBUG_REG24_ARB_HOLD_MASK 0x00100000
+#define MH_DEBUG_REG24_ARB_RTR_q_MASK 0x00200000
+#define MH_DEBUG_REG24_SAME_PAGE_LIMIT_COUNT_q_MASK 0xffc00000
+
+#define MH_DEBUG_REG24_MASK \
+ (MH_DEBUG_REG24_EFF1_WINNER_MASK | \
+ MH_DEBUG_REG24_ARB_WINNER_MASK | \
+ MH_DEBUG_REG24_CP_SEND_QUAL_MASK | \
+ MH_DEBUG_REG24_VGT_SEND_QUAL_MASK | \
+ MH_DEBUG_REG24_TC_SEND_QUAL_MASK | \
+ MH_DEBUG_REG24_TC_SEND_EFF1_QUAL_MASK | \
+ MH_DEBUG_REG24_RB_SEND_QUAL_MASK | \
+ MH_DEBUG_REG24_ARB_QUAL_MASK | \
+ MH_DEBUG_REG24_CP_EFF1_REQ_MASK | \
+ MH_DEBUG_REG24_VGT_EFF1_REQ_MASK | \
+ MH_DEBUG_REG24_TC_EFF1_REQ_MASK | \
+ MH_DEBUG_REG24_RB_EFF1_REQ_MASK | \
+ MH_DEBUG_REG24_EFF1_WIN_MASK | \
+ MH_DEBUG_REG24_KILL_EFF1_MASK | \
+ MH_DEBUG_REG24_TCD_NEARFULL_q_MASK | \
+ MH_DEBUG_REG24_TC_ARB_HOLD_MASK | \
+ MH_DEBUG_REG24_ARB_HOLD_MASK | \
+ MH_DEBUG_REG24_ARB_RTR_q_MASK | \
+ MH_DEBUG_REG24_SAME_PAGE_LIMIT_COUNT_q_MASK)
+
+#define MH_DEBUG_REG24(eff1_winner, arb_winner, cp_send_qual, vgt_send_qual, tc_send_qual, tc_send_eff1_qual, rb_send_qual, arb_qual, cp_eff1_req, vgt_eff1_req, tc_eff1_req, rb_eff1_req, eff1_win, kill_eff1, tcd_nearfull_q, tc_arb_hold, arb_hold, arb_rtr_q, same_page_limit_count_q) \
+ ((eff1_winner << MH_DEBUG_REG24_EFF1_WINNER_SHIFT) | \
+ (arb_winner << MH_DEBUG_REG24_ARB_WINNER_SHIFT) | \
+ (cp_send_qual << MH_DEBUG_REG24_CP_SEND_QUAL_SHIFT) | \
+ (vgt_send_qual << MH_DEBUG_REG24_VGT_SEND_QUAL_SHIFT) | \
+ (tc_send_qual << MH_DEBUG_REG24_TC_SEND_QUAL_SHIFT) | \
+ (tc_send_eff1_qual << MH_DEBUG_REG24_TC_SEND_EFF1_QUAL_SHIFT) | \
+ (rb_send_qual << MH_DEBUG_REG24_RB_SEND_QUAL_SHIFT) | \
+ (arb_qual << MH_DEBUG_REG24_ARB_QUAL_SHIFT) | \
+ (cp_eff1_req << MH_DEBUG_REG24_CP_EFF1_REQ_SHIFT) | \
+ (vgt_eff1_req << MH_DEBUG_REG24_VGT_EFF1_REQ_SHIFT) | \
+ (tc_eff1_req << MH_DEBUG_REG24_TC_EFF1_REQ_SHIFT) | \
+ (rb_eff1_req << MH_DEBUG_REG24_RB_EFF1_REQ_SHIFT) | \
+ (eff1_win << MH_DEBUG_REG24_EFF1_WIN_SHIFT) | \
+ (kill_eff1 << MH_DEBUG_REG24_KILL_EFF1_SHIFT) | \
+ (tcd_nearfull_q << MH_DEBUG_REG24_TCD_NEARFULL_q_SHIFT) | \
+ (tc_arb_hold << MH_DEBUG_REG24_TC_ARB_HOLD_SHIFT) | \
+ (arb_hold << MH_DEBUG_REG24_ARB_HOLD_SHIFT) | \
+ (arb_rtr_q << MH_DEBUG_REG24_ARB_RTR_q_SHIFT) | \
+ (same_page_limit_count_q << MH_DEBUG_REG24_SAME_PAGE_LIMIT_COUNT_q_SHIFT))
+
+#define MH_DEBUG_REG24_GET_EFF1_WINNER(mh_debug_reg24) \
+ ((mh_debug_reg24 & MH_DEBUG_REG24_EFF1_WINNER_MASK) >> MH_DEBUG_REG24_EFF1_WINNER_SHIFT)
+#define MH_DEBUG_REG24_GET_ARB_WINNER(mh_debug_reg24) \
+ ((mh_debug_reg24 & MH_DEBUG_REG24_ARB_WINNER_MASK) >> MH_DEBUG_REG24_ARB_WINNER_SHIFT)
+#define MH_DEBUG_REG24_GET_CP_SEND_QUAL(mh_debug_reg24) \
+ ((mh_debug_reg24 & MH_DEBUG_REG24_CP_SEND_QUAL_MASK) >> MH_DEBUG_REG24_CP_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG24_GET_VGT_SEND_QUAL(mh_debug_reg24) \
+ ((mh_debug_reg24 & MH_DEBUG_REG24_VGT_SEND_QUAL_MASK) >> MH_DEBUG_REG24_VGT_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG24_GET_TC_SEND_QUAL(mh_debug_reg24) \
+ ((mh_debug_reg24 & MH_DEBUG_REG24_TC_SEND_QUAL_MASK) >> MH_DEBUG_REG24_TC_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG24_GET_TC_SEND_EFF1_QUAL(mh_debug_reg24) \
+ ((mh_debug_reg24 & MH_DEBUG_REG24_TC_SEND_EFF1_QUAL_MASK) >> MH_DEBUG_REG24_TC_SEND_EFF1_QUAL_SHIFT)
+#define MH_DEBUG_REG24_GET_RB_SEND_QUAL(mh_debug_reg24) \
+ ((mh_debug_reg24 & MH_DEBUG_REG24_RB_SEND_QUAL_MASK) >> MH_DEBUG_REG24_RB_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG24_GET_ARB_QUAL(mh_debug_reg24) \
+ ((mh_debug_reg24 & MH_DEBUG_REG24_ARB_QUAL_MASK) >> MH_DEBUG_REG24_ARB_QUAL_SHIFT)
+#define MH_DEBUG_REG24_GET_CP_EFF1_REQ(mh_debug_reg24) \
+ ((mh_debug_reg24 & MH_DEBUG_REG24_CP_EFF1_REQ_MASK) >> MH_DEBUG_REG24_CP_EFF1_REQ_SHIFT)
+#define MH_DEBUG_REG24_GET_VGT_EFF1_REQ(mh_debug_reg24) \
+ ((mh_debug_reg24 & MH_DEBUG_REG24_VGT_EFF1_REQ_MASK) >> MH_DEBUG_REG24_VGT_EFF1_REQ_SHIFT)
+#define MH_DEBUG_REG24_GET_TC_EFF1_REQ(mh_debug_reg24) \
+ ((mh_debug_reg24 & MH_DEBUG_REG24_TC_EFF1_REQ_MASK) >> MH_DEBUG_REG24_TC_EFF1_REQ_SHIFT)
+#define MH_DEBUG_REG24_GET_RB_EFF1_REQ(mh_debug_reg24) \
+ ((mh_debug_reg24 & MH_DEBUG_REG24_RB_EFF1_REQ_MASK) >> MH_DEBUG_REG24_RB_EFF1_REQ_SHIFT)
+#define MH_DEBUG_REG24_GET_EFF1_WIN(mh_debug_reg24) \
+ ((mh_debug_reg24 & MH_DEBUG_REG24_EFF1_WIN_MASK) >> MH_DEBUG_REG24_EFF1_WIN_SHIFT)
+#define MH_DEBUG_REG24_GET_KILL_EFF1(mh_debug_reg24) \
+ ((mh_debug_reg24 & MH_DEBUG_REG24_KILL_EFF1_MASK) >> MH_DEBUG_REG24_KILL_EFF1_SHIFT)
+#define MH_DEBUG_REG24_GET_TCD_NEARFULL_q(mh_debug_reg24) \
+ ((mh_debug_reg24 & MH_DEBUG_REG24_TCD_NEARFULL_q_MASK) >> MH_DEBUG_REG24_TCD_NEARFULL_q_SHIFT)
+#define MH_DEBUG_REG24_GET_TC_ARB_HOLD(mh_debug_reg24) \
+ ((mh_debug_reg24 & MH_DEBUG_REG24_TC_ARB_HOLD_MASK) >> MH_DEBUG_REG24_TC_ARB_HOLD_SHIFT)
+#define MH_DEBUG_REG24_GET_ARB_HOLD(mh_debug_reg24) \
+ ((mh_debug_reg24 & MH_DEBUG_REG24_ARB_HOLD_MASK) >> MH_DEBUG_REG24_ARB_HOLD_SHIFT)
+#define MH_DEBUG_REG24_GET_ARB_RTR_q(mh_debug_reg24) \
+ ((mh_debug_reg24 & MH_DEBUG_REG24_ARB_RTR_q_MASK) >> MH_DEBUG_REG24_ARB_RTR_q_SHIFT)
+#define MH_DEBUG_REG24_GET_SAME_PAGE_LIMIT_COUNT_q(mh_debug_reg24) \
+ ((mh_debug_reg24 & MH_DEBUG_REG24_SAME_PAGE_LIMIT_COUNT_q_MASK) >> MH_DEBUG_REG24_SAME_PAGE_LIMIT_COUNT_q_SHIFT)
+
+#define MH_DEBUG_REG24_SET_EFF1_WINNER(mh_debug_reg24_reg, eff1_winner) \
+ mh_debug_reg24_reg = (mh_debug_reg24_reg & ~MH_DEBUG_REG24_EFF1_WINNER_MASK) | (eff1_winner << MH_DEBUG_REG24_EFF1_WINNER_SHIFT)
+#define MH_DEBUG_REG24_SET_ARB_WINNER(mh_debug_reg24_reg, arb_winner) \
+ mh_debug_reg24_reg = (mh_debug_reg24_reg & ~MH_DEBUG_REG24_ARB_WINNER_MASK) | (arb_winner << MH_DEBUG_REG24_ARB_WINNER_SHIFT)
+#define MH_DEBUG_REG24_SET_CP_SEND_QUAL(mh_debug_reg24_reg, cp_send_qual) \
+ mh_debug_reg24_reg = (mh_debug_reg24_reg & ~MH_DEBUG_REG24_CP_SEND_QUAL_MASK) | (cp_send_qual << MH_DEBUG_REG24_CP_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG24_SET_VGT_SEND_QUAL(mh_debug_reg24_reg, vgt_send_qual) \
+ mh_debug_reg24_reg = (mh_debug_reg24_reg & ~MH_DEBUG_REG24_VGT_SEND_QUAL_MASK) | (vgt_send_qual << MH_DEBUG_REG24_VGT_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG24_SET_TC_SEND_QUAL(mh_debug_reg24_reg, tc_send_qual) \
+ mh_debug_reg24_reg = (mh_debug_reg24_reg & ~MH_DEBUG_REG24_TC_SEND_QUAL_MASK) | (tc_send_qual << MH_DEBUG_REG24_TC_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG24_SET_TC_SEND_EFF1_QUAL(mh_debug_reg24_reg, tc_send_eff1_qual) \
+ mh_debug_reg24_reg = (mh_debug_reg24_reg & ~MH_DEBUG_REG24_TC_SEND_EFF1_QUAL_MASK) | (tc_send_eff1_qual << MH_DEBUG_REG24_TC_SEND_EFF1_QUAL_SHIFT)
+#define MH_DEBUG_REG24_SET_RB_SEND_QUAL(mh_debug_reg24_reg, rb_send_qual) \
+ mh_debug_reg24_reg = (mh_debug_reg24_reg & ~MH_DEBUG_REG24_RB_SEND_QUAL_MASK) | (rb_send_qual << MH_DEBUG_REG24_RB_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG24_SET_ARB_QUAL(mh_debug_reg24_reg, arb_qual) \
+ mh_debug_reg24_reg = (mh_debug_reg24_reg & ~MH_DEBUG_REG24_ARB_QUAL_MASK) | (arb_qual << MH_DEBUG_REG24_ARB_QUAL_SHIFT)
+#define MH_DEBUG_REG24_SET_CP_EFF1_REQ(mh_debug_reg24_reg, cp_eff1_req) \
+ mh_debug_reg24_reg = (mh_debug_reg24_reg & ~MH_DEBUG_REG24_CP_EFF1_REQ_MASK) | (cp_eff1_req << MH_DEBUG_REG24_CP_EFF1_REQ_SHIFT)
+#define MH_DEBUG_REG24_SET_VGT_EFF1_REQ(mh_debug_reg24_reg, vgt_eff1_req) \
+ mh_debug_reg24_reg = (mh_debug_reg24_reg & ~MH_DEBUG_REG24_VGT_EFF1_REQ_MASK) | (vgt_eff1_req << MH_DEBUG_REG24_VGT_EFF1_REQ_SHIFT)
+#define MH_DEBUG_REG24_SET_TC_EFF1_REQ(mh_debug_reg24_reg, tc_eff1_req) \
+ mh_debug_reg24_reg = (mh_debug_reg24_reg & ~MH_DEBUG_REG24_TC_EFF1_REQ_MASK) | (tc_eff1_req << MH_DEBUG_REG24_TC_EFF1_REQ_SHIFT)
+#define MH_DEBUG_REG24_SET_RB_EFF1_REQ(mh_debug_reg24_reg, rb_eff1_req) \
+ mh_debug_reg24_reg = (mh_debug_reg24_reg & ~MH_DEBUG_REG24_RB_EFF1_REQ_MASK) | (rb_eff1_req << MH_DEBUG_REG24_RB_EFF1_REQ_SHIFT)
+#define MH_DEBUG_REG24_SET_EFF1_WIN(mh_debug_reg24_reg, eff1_win) \
+ mh_debug_reg24_reg = (mh_debug_reg24_reg & ~MH_DEBUG_REG24_EFF1_WIN_MASK) | (eff1_win << MH_DEBUG_REG24_EFF1_WIN_SHIFT)
+#define MH_DEBUG_REG24_SET_KILL_EFF1(mh_debug_reg24_reg, kill_eff1) \
+ mh_debug_reg24_reg = (mh_debug_reg24_reg & ~MH_DEBUG_REG24_KILL_EFF1_MASK) | (kill_eff1 << MH_DEBUG_REG24_KILL_EFF1_SHIFT)
+#define MH_DEBUG_REG24_SET_TCD_NEARFULL_q(mh_debug_reg24_reg, tcd_nearfull_q) \
+ mh_debug_reg24_reg = (mh_debug_reg24_reg & ~MH_DEBUG_REG24_TCD_NEARFULL_q_MASK) | (tcd_nearfull_q << MH_DEBUG_REG24_TCD_NEARFULL_q_SHIFT)
+#define MH_DEBUG_REG24_SET_TC_ARB_HOLD(mh_debug_reg24_reg, tc_arb_hold) \
+ mh_debug_reg24_reg = (mh_debug_reg24_reg & ~MH_DEBUG_REG24_TC_ARB_HOLD_MASK) | (tc_arb_hold << MH_DEBUG_REG24_TC_ARB_HOLD_SHIFT)
+#define MH_DEBUG_REG24_SET_ARB_HOLD(mh_debug_reg24_reg, arb_hold) \
+ mh_debug_reg24_reg = (mh_debug_reg24_reg & ~MH_DEBUG_REG24_ARB_HOLD_MASK) | (arb_hold << MH_DEBUG_REG24_ARB_HOLD_SHIFT)
+#define MH_DEBUG_REG24_SET_ARB_RTR_q(mh_debug_reg24_reg, arb_rtr_q) \
+ mh_debug_reg24_reg = (mh_debug_reg24_reg & ~MH_DEBUG_REG24_ARB_RTR_q_MASK) | (arb_rtr_q << MH_DEBUG_REG24_ARB_RTR_q_SHIFT)
+#define MH_DEBUG_REG24_SET_SAME_PAGE_LIMIT_COUNT_q(mh_debug_reg24_reg, same_page_limit_count_q) \
+ mh_debug_reg24_reg = (mh_debug_reg24_reg & ~MH_DEBUG_REG24_SAME_PAGE_LIMIT_COUNT_q_MASK) | (same_page_limit_count_q << MH_DEBUG_REG24_SAME_PAGE_LIMIT_COUNT_q_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg24_t {
+ unsigned int eff1_winner : MH_DEBUG_REG24_EFF1_WINNER_SIZE;
+ unsigned int arb_winner : MH_DEBUG_REG24_ARB_WINNER_SIZE;
+ unsigned int cp_send_qual : MH_DEBUG_REG24_CP_SEND_QUAL_SIZE;
+ unsigned int vgt_send_qual : MH_DEBUG_REG24_VGT_SEND_QUAL_SIZE;
+ unsigned int tc_send_qual : MH_DEBUG_REG24_TC_SEND_QUAL_SIZE;
+ unsigned int tc_send_eff1_qual : MH_DEBUG_REG24_TC_SEND_EFF1_QUAL_SIZE;
+ unsigned int rb_send_qual : MH_DEBUG_REG24_RB_SEND_QUAL_SIZE;
+ unsigned int arb_qual : MH_DEBUG_REG24_ARB_QUAL_SIZE;
+ unsigned int cp_eff1_req : MH_DEBUG_REG24_CP_EFF1_REQ_SIZE;
+ unsigned int vgt_eff1_req : MH_DEBUG_REG24_VGT_EFF1_REQ_SIZE;
+ unsigned int tc_eff1_req : MH_DEBUG_REG24_TC_EFF1_REQ_SIZE;
+ unsigned int rb_eff1_req : MH_DEBUG_REG24_RB_EFF1_REQ_SIZE;
+ unsigned int eff1_win : MH_DEBUG_REG24_EFF1_WIN_SIZE;
+ unsigned int kill_eff1 : MH_DEBUG_REG24_KILL_EFF1_SIZE;
+ unsigned int tcd_nearfull_q : MH_DEBUG_REG24_TCD_NEARFULL_q_SIZE;
+ unsigned int tc_arb_hold : MH_DEBUG_REG24_TC_ARB_HOLD_SIZE;
+ unsigned int arb_hold : MH_DEBUG_REG24_ARB_HOLD_SIZE;
+ unsigned int arb_rtr_q : MH_DEBUG_REG24_ARB_RTR_q_SIZE;
+ unsigned int same_page_limit_count_q : MH_DEBUG_REG24_SAME_PAGE_LIMIT_COUNT_q_SIZE;
+ } mh_debug_reg24_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg24_t {
+ unsigned int same_page_limit_count_q : MH_DEBUG_REG24_SAME_PAGE_LIMIT_COUNT_q_SIZE;
+ unsigned int arb_rtr_q : MH_DEBUG_REG24_ARB_RTR_q_SIZE;
+ unsigned int arb_hold : MH_DEBUG_REG24_ARB_HOLD_SIZE;
+ unsigned int tc_arb_hold : MH_DEBUG_REG24_TC_ARB_HOLD_SIZE;
+ unsigned int tcd_nearfull_q : MH_DEBUG_REG24_TCD_NEARFULL_q_SIZE;
+ unsigned int kill_eff1 : MH_DEBUG_REG24_KILL_EFF1_SIZE;
+ unsigned int eff1_win : MH_DEBUG_REG24_EFF1_WIN_SIZE;
+ unsigned int rb_eff1_req : MH_DEBUG_REG24_RB_EFF1_REQ_SIZE;
+ unsigned int tc_eff1_req : MH_DEBUG_REG24_TC_EFF1_REQ_SIZE;
+ unsigned int vgt_eff1_req : MH_DEBUG_REG24_VGT_EFF1_REQ_SIZE;
+ unsigned int cp_eff1_req : MH_DEBUG_REG24_CP_EFF1_REQ_SIZE;
+ unsigned int arb_qual : MH_DEBUG_REG24_ARB_QUAL_SIZE;
+ unsigned int rb_send_qual : MH_DEBUG_REG24_RB_SEND_QUAL_SIZE;
+ unsigned int tc_send_eff1_qual : MH_DEBUG_REG24_TC_SEND_EFF1_QUAL_SIZE;
+ unsigned int tc_send_qual : MH_DEBUG_REG24_TC_SEND_QUAL_SIZE;
+ unsigned int vgt_send_qual : MH_DEBUG_REG24_VGT_SEND_QUAL_SIZE;
+ unsigned int cp_send_qual : MH_DEBUG_REG24_CP_SEND_QUAL_SIZE;
+ unsigned int arb_winner : MH_DEBUG_REG24_ARB_WINNER_SIZE;
+ unsigned int eff1_winner : MH_DEBUG_REG24_EFF1_WINNER_SIZE;
+ } mh_debug_reg24_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg24_t f;
+} mh_debug_reg24_u;
+
+
+/*
+ * MH_DEBUG_REG25 struct
+ */
+
+#define MH_DEBUG_REG25_EFF2_LRU_WINNER_out_SIZE 3
+#define MH_DEBUG_REG25_ARB_WINNER_SIZE 3
+#define MH_DEBUG_REG25_LEAST_RECENT_INDEX_d_SIZE 3
+#define MH_DEBUG_REG25_LEAST_RECENT_d_SIZE 3
+#define MH_DEBUG_REG25_UPDATE_RECENT_STACK_d_SIZE 1
+#define MH_DEBUG_REG25_ARB_HOLD_SIZE 1
+#define MH_DEBUG_REG25_ARB_RTR_q_SIZE 1
+#define MH_DEBUG_REG25_EFF1_WIN_SIZE 1
+#define MH_DEBUG_REG25_CLNT_REQ_SIZE 4
+#define MH_DEBUG_REG25_RECENT_d_0_SIZE 3
+#define MH_DEBUG_REG25_RECENT_d_1_SIZE 3
+#define MH_DEBUG_REG25_RECENT_d_2_SIZE 3
+#define MH_DEBUG_REG25_RECENT_d_3_SIZE 3
+
+#define MH_DEBUG_REG25_EFF2_LRU_WINNER_out_SHIFT 0
+#define MH_DEBUG_REG25_ARB_WINNER_SHIFT 3
+#define MH_DEBUG_REG25_LEAST_RECENT_INDEX_d_SHIFT 6
+#define MH_DEBUG_REG25_LEAST_RECENT_d_SHIFT 9
+#define MH_DEBUG_REG25_UPDATE_RECENT_STACK_d_SHIFT 12
+#define MH_DEBUG_REG25_ARB_HOLD_SHIFT 13
+#define MH_DEBUG_REG25_ARB_RTR_q_SHIFT 14
+#define MH_DEBUG_REG25_EFF1_WIN_SHIFT 15
+#define MH_DEBUG_REG25_CLNT_REQ_SHIFT 16
+#define MH_DEBUG_REG25_RECENT_d_0_SHIFT 20
+#define MH_DEBUG_REG25_RECENT_d_1_SHIFT 23
+#define MH_DEBUG_REG25_RECENT_d_2_SHIFT 26
+#define MH_DEBUG_REG25_RECENT_d_3_SHIFT 29
+
+#define MH_DEBUG_REG25_EFF2_LRU_WINNER_out_MASK 0x00000007
+#define MH_DEBUG_REG25_ARB_WINNER_MASK 0x00000038
+#define MH_DEBUG_REG25_LEAST_RECENT_INDEX_d_MASK 0x000001c0
+#define MH_DEBUG_REG25_LEAST_RECENT_d_MASK 0x00000e00
+#define MH_DEBUG_REG25_UPDATE_RECENT_STACK_d_MASK 0x00001000
+#define MH_DEBUG_REG25_ARB_HOLD_MASK 0x00002000
+#define MH_DEBUG_REG25_ARB_RTR_q_MASK 0x00004000
+#define MH_DEBUG_REG25_EFF1_WIN_MASK 0x00008000
+#define MH_DEBUG_REG25_CLNT_REQ_MASK 0x000f0000
+#define MH_DEBUG_REG25_RECENT_d_0_MASK 0x00700000
+#define MH_DEBUG_REG25_RECENT_d_1_MASK 0x03800000
+#define MH_DEBUG_REG25_RECENT_d_2_MASK 0x1c000000
+#define MH_DEBUG_REG25_RECENT_d_3_MASK 0xe0000000
+
+#define MH_DEBUG_REG25_MASK \
+ (MH_DEBUG_REG25_EFF2_LRU_WINNER_out_MASK | \
+ MH_DEBUG_REG25_ARB_WINNER_MASK | \
+ MH_DEBUG_REG25_LEAST_RECENT_INDEX_d_MASK | \
+ MH_DEBUG_REG25_LEAST_RECENT_d_MASK | \
+ MH_DEBUG_REG25_UPDATE_RECENT_STACK_d_MASK | \
+ MH_DEBUG_REG25_ARB_HOLD_MASK | \
+ MH_DEBUG_REG25_ARB_RTR_q_MASK | \
+ MH_DEBUG_REG25_EFF1_WIN_MASK | \
+ MH_DEBUG_REG25_CLNT_REQ_MASK | \
+ MH_DEBUG_REG25_RECENT_d_0_MASK | \
+ MH_DEBUG_REG25_RECENT_d_1_MASK | \
+ MH_DEBUG_REG25_RECENT_d_2_MASK | \
+ MH_DEBUG_REG25_RECENT_d_3_MASK)
+
+#define MH_DEBUG_REG25(eff2_lru_winner_out, arb_winner, least_recent_index_d, least_recent_d, update_recent_stack_d, arb_hold, arb_rtr_q, eff1_win, clnt_req, recent_d_0, recent_d_1, recent_d_2, recent_d_3) \
+ ((eff2_lru_winner_out << MH_DEBUG_REG25_EFF2_LRU_WINNER_out_SHIFT) | \
+ (arb_winner << MH_DEBUG_REG25_ARB_WINNER_SHIFT) | \
+ (least_recent_index_d << MH_DEBUG_REG25_LEAST_RECENT_INDEX_d_SHIFT) | \
+ (least_recent_d << MH_DEBUG_REG25_LEAST_RECENT_d_SHIFT) | \
+ (update_recent_stack_d << MH_DEBUG_REG25_UPDATE_RECENT_STACK_d_SHIFT) | \
+ (arb_hold << MH_DEBUG_REG25_ARB_HOLD_SHIFT) | \
+ (arb_rtr_q << MH_DEBUG_REG25_ARB_RTR_q_SHIFT) | \
+ (eff1_win << MH_DEBUG_REG25_EFF1_WIN_SHIFT) | \
+ (clnt_req << MH_DEBUG_REG25_CLNT_REQ_SHIFT) | \
+ (recent_d_0 << MH_DEBUG_REG25_RECENT_d_0_SHIFT) | \
+ (recent_d_1 << MH_DEBUG_REG25_RECENT_d_1_SHIFT) | \
+ (recent_d_2 << MH_DEBUG_REG25_RECENT_d_2_SHIFT) | \
+ (recent_d_3 << MH_DEBUG_REG25_RECENT_d_3_SHIFT))
+
+#define MH_DEBUG_REG25_GET_EFF2_LRU_WINNER_out(mh_debug_reg25) \
+ ((mh_debug_reg25 & MH_DEBUG_REG25_EFF2_LRU_WINNER_out_MASK) >> MH_DEBUG_REG25_EFF2_LRU_WINNER_out_SHIFT)
+#define MH_DEBUG_REG25_GET_ARB_WINNER(mh_debug_reg25) \
+ ((mh_debug_reg25 & MH_DEBUG_REG25_ARB_WINNER_MASK) >> MH_DEBUG_REG25_ARB_WINNER_SHIFT)
+#define MH_DEBUG_REG25_GET_LEAST_RECENT_INDEX_d(mh_debug_reg25) \
+ ((mh_debug_reg25 & MH_DEBUG_REG25_LEAST_RECENT_INDEX_d_MASK) >> MH_DEBUG_REG25_LEAST_RECENT_INDEX_d_SHIFT)
+#define MH_DEBUG_REG25_GET_LEAST_RECENT_d(mh_debug_reg25) \
+ ((mh_debug_reg25 & MH_DEBUG_REG25_LEAST_RECENT_d_MASK) >> MH_DEBUG_REG25_LEAST_RECENT_d_SHIFT)
+#define MH_DEBUG_REG25_GET_UPDATE_RECENT_STACK_d(mh_debug_reg25) \
+ ((mh_debug_reg25 & MH_DEBUG_REG25_UPDATE_RECENT_STACK_d_MASK) >> MH_DEBUG_REG25_UPDATE_RECENT_STACK_d_SHIFT)
+#define MH_DEBUG_REG25_GET_ARB_HOLD(mh_debug_reg25) \
+ ((mh_debug_reg25 & MH_DEBUG_REG25_ARB_HOLD_MASK) >> MH_DEBUG_REG25_ARB_HOLD_SHIFT)
+#define MH_DEBUG_REG25_GET_ARB_RTR_q(mh_debug_reg25) \
+ ((mh_debug_reg25 & MH_DEBUG_REG25_ARB_RTR_q_MASK) >> MH_DEBUG_REG25_ARB_RTR_q_SHIFT)
+#define MH_DEBUG_REG25_GET_EFF1_WIN(mh_debug_reg25) \
+ ((mh_debug_reg25 & MH_DEBUG_REG25_EFF1_WIN_MASK) >> MH_DEBUG_REG25_EFF1_WIN_SHIFT)
+#define MH_DEBUG_REG25_GET_CLNT_REQ(mh_debug_reg25) \
+ ((mh_debug_reg25 & MH_DEBUG_REG25_CLNT_REQ_MASK) >> MH_DEBUG_REG25_CLNT_REQ_SHIFT)
+#define MH_DEBUG_REG25_GET_RECENT_d_0(mh_debug_reg25) \
+ ((mh_debug_reg25 & MH_DEBUG_REG25_RECENT_d_0_MASK) >> MH_DEBUG_REG25_RECENT_d_0_SHIFT)
+#define MH_DEBUG_REG25_GET_RECENT_d_1(mh_debug_reg25) \
+ ((mh_debug_reg25 & MH_DEBUG_REG25_RECENT_d_1_MASK) >> MH_DEBUG_REG25_RECENT_d_1_SHIFT)
+#define MH_DEBUG_REG25_GET_RECENT_d_2(mh_debug_reg25) \
+ ((mh_debug_reg25 & MH_DEBUG_REG25_RECENT_d_2_MASK) >> MH_DEBUG_REG25_RECENT_d_2_SHIFT)
+#define MH_DEBUG_REG25_GET_RECENT_d_3(mh_debug_reg25) \
+ ((mh_debug_reg25 & MH_DEBUG_REG25_RECENT_d_3_MASK) >> MH_DEBUG_REG25_RECENT_d_3_SHIFT)
+
+#define MH_DEBUG_REG25_SET_EFF2_LRU_WINNER_out(mh_debug_reg25_reg, eff2_lru_winner_out) \
+ mh_debug_reg25_reg = (mh_debug_reg25_reg & ~MH_DEBUG_REG25_EFF2_LRU_WINNER_out_MASK) | (eff2_lru_winner_out << MH_DEBUG_REG25_EFF2_LRU_WINNER_out_SHIFT)
+#define MH_DEBUG_REG25_SET_ARB_WINNER(mh_debug_reg25_reg, arb_winner) \
+ mh_debug_reg25_reg = (mh_debug_reg25_reg & ~MH_DEBUG_REG25_ARB_WINNER_MASK) | (arb_winner << MH_DEBUG_REG25_ARB_WINNER_SHIFT)
+#define MH_DEBUG_REG25_SET_LEAST_RECENT_INDEX_d(mh_debug_reg25_reg, least_recent_index_d) \
+ mh_debug_reg25_reg = (mh_debug_reg25_reg & ~MH_DEBUG_REG25_LEAST_RECENT_INDEX_d_MASK) | (least_recent_index_d << MH_DEBUG_REG25_LEAST_RECENT_INDEX_d_SHIFT)
+#define MH_DEBUG_REG25_SET_LEAST_RECENT_d(mh_debug_reg25_reg, least_recent_d) \
+ mh_debug_reg25_reg = (mh_debug_reg25_reg & ~MH_DEBUG_REG25_LEAST_RECENT_d_MASK) | (least_recent_d << MH_DEBUG_REG25_LEAST_RECENT_d_SHIFT)
+#define MH_DEBUG_REG25_SET_UPDATE_RECENT_STACK_d(mh_debug_reg25_reg, update_recent_stack_d) \
+ mh_debug_reg25_reg = (mh_debug_reg25_reg & ~MH_DEBUG_REG25_UPDATE_RECENT_STACK_d_MASK) | (update_recent_stack_d << MH_DEBUG_REG25_UPDATE_RECENT_STACK_d_SHIFT)
+#define MH_DEBUG_REG25_SET_ARB_HOLD(mh_debug_reg25_reg, arb_hold) \
+ mh_debug_reg25_reg = (mh_debug_reg25_reg & ~MH_DEBUG_REG25_ARB_HOLD_MASK) | (arb_hold << MH_DEBUG_REG25_ARB_HOLD_SHIFT)
+#define MH_DEBUG_REG25_SET_ARB_RTR_q(mh_debug_reg25_reg, arb_rtr_q) \
+ mh_debug_reg25_reg = (mh_debug_reg25_reg & ~MH_DEBUG_REG25_ARB_RTR_q_MASK) | (arb_rtr_q << MH_DEBUG_REG25_ARB_RTR_q_SHIFT)
+#define MH_DEBUG_REG25_SET_EFF1_WIN(mh_debug_reg25_reg, eff1_win) \
+ mh_debug_reg25_reg = (mh_debug_reg25_reg & ~MH_DEBUG_REG25_EFF1_WIN_MASK) | (eff1_win << MH_DEBUG_REG25_EFF1_WIN_SHIFT)
+#define MH_DEBUG_REG25_SET_CLNT_REQ(mh_debug_reg25_reg, clnt_req) \
+ mh_debug_reg25_reg = (mh_debug_reg25_reg & ~MH_DEBUG_REG25_CLNT_REQ_MASK) | (clnt_req << MH_DEBUG_REG25_CLNT_REQ_SHIFT)
+#define MH_DEBUG_REG25_SET_RECENT_d_0(mh_debug_reg25_reg, recent_d_0) \
+ mh_debug_reg25_reg = (mh_debug_reg25_reg & ~MH_DEBUG_REG25_RECENT_d_0_MASK) | (recent_d_0 << MH_DEBUG_REG25_RECENT_d_0_SHIFT)
+#define MH_DEBUG_REG25_SET_RECENT_d_1(mh_debug_reg25_reg, recent_d_1) \
+ mh_debug_reg25_reg = (mh_debug_reg25_reg & ~MH_DEBUG_REG25_RECENT_d_1_MASK) | (recent_d_1 << MH_DEBUG_REG25_RECENT_d_1_SHIFT)
+#define MH_DEBUG_REG25_SET_RECENT_d_2(mh_debug_reg25_reg, recent_d_2) \
+ mh_debug_reg25_reg = (mh_debug_reg25_reg & ~MH_DEBUG_REG25_RECENT_d_2_MASK) | (recent_d_2 << MH_DEBUG_REG25_RECENT_d_2_SHIFT)
+#define MH_DEBUG_REG25_SET_RECENT_d_3(mh_debug_reg25_reg, recent_d_3) \
+ mh_debug_reg25_reg = (mh_debug_reg25_reg & ~MH_DEBUG_REG25_RECENT_d_3_MASK) | (recent_d_3 << MH_DEBUG_REG25_RECENT_d_3_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg25_t {
+ unsigned int eff2_lru_winner_out : MH_DEBUG_REG25_EFF2_LRU_WINNER_out_SIZE;
+ unsigned int arb_winner : MH_DEBUG_REG25_ARB_WINNER_SIZE;
+ unsigned int least_recent_index_d : MH_DEBUG_REG25_LEAST_RECENT_INDEX_d_SIZE;
+ unsigned int least_recent_d : MH_DEBUG_REG25_LEAST_RECENT_d_SIZE;
+ unsigned int update_recent_stack_d : MH_DEBUG_REG25_UPDATE_RECENT_STACK_d_SIZE;
+ unsigned int arb_hold : MH_DEBUG_REG25_ARB_HOLD_SIZE;
+ unsigned int arb_rtr_q : MH_DEBUG_REG25_ARB_RTR_q_SIZE;
+ unsigned int eff1_win : MH_DEBUG_REG25_EFF1_WIN_SIZE;
+ unsigned int clnt_req : MH_DEBUG_REG25_CLNT_REQ_SIZE;
+ unsigned int recent_d_0 : MH_DEBUG_REG25_RECENT_d_0_SIZE;
+ unsigned int recent_d_1 : MH_DEBUG_REG25_RECENT_d_1_SIZE;
+ unsigned int recent_d_2 : MH_DEBUG_REG25_RECENT_d_2_SIZE;
+ unsigned int recent_d_3 : MH_DEBUG_REG25_RECENT_d_3_SIZE;
+ } mh_debug_reg25_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg25_t {
+ unsigned int recent_d_3 : MH_DEBUG_REG25_RECENT_d_3_SIZE;
+ unsigned int recent_d_2 : MH_DEBUG_REG25_RECENT_d_2_SIZE;
+ unsigned int recent_d_1 : MH_DEBUG_REG25_RECENT_d_1_SIZE;
+ unsigned int recent_d_0 : MH_DEBUG_REG25_RECENT_d_0_SIZE;
+ unsigned int clnt_req : MH_DEBUG_REG25_CLNT_REQ_SIZE;
+ unsigned int eff1_win : MH_DEBUG_REG25_EFF1_WIN_SIZE;
+ unsigned int arb_rtr_q : MH_DEBUG_REG25_ARB_RTR_q_SIZE;
+ unsigned int arb_hold : MH_DEBUG_REG25_ARB_HOLD_SIZE;
+ unsigned int update_recent_stack_d : MH_DEBUG_REG25_UPDATE_RECENT_STACK_d_SIZE;
+ unsigned int least_recent_d : MH_DEBUG_REG25_LEAST_RECENT_d_SIZE;
+ unsigned int least_recent_index_d : MH_DEBUG_REG25_LEAST_RECENT_INDEX_d_SIZE;
+ unsigned int arb_winner : MH_DEBUG_REG25_ARB_WINNER_SIZE;
+ unsigned int eff2_lru_winner_out : MH_DEBUG_REG25_EFF2_LRU_WINNER_out_SIZE;
+ } mh_debug_reg25_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg25_t f;
+} mh_debug_reg25_u;
+
+
+/*
+ * MH_DEBUG_REG26 struct
+ */
+
+#define MH_DEBUG_REG26_TC_ARB_HOLD_SIZE 1
+#define MH_DEBUG_REG26_TC_NOROQ_SAME_ROW_BANK_SIZE 1
+#define MH_DEBUG_REG26_TC_ROQ_SAME_ROW_BANK_SIZE 1
+#define MH_DEBUG_REG26_TCD_NEARFULL_q_SIZE 1
+#define MH_DEBUG_REG26_TCHOLD_IP_q_SIZE 1
+#define MH_DEBUG_REG26_TCHOLD_CNT_q_SIZE 3
+#define MH_DEBUG_REG26_MH_ARBITER_CONFIG_TC_REORDER_ENABLE_SIZE 1
+#define MH_DEBUG_REG26_TC_ROQ_RTR_DBG_q_SIZE 1
+#define MH_DEBUG_REG26_TC_ROQ_SEND_q_SIZE 1
+#define MH_DEBUG_REG26_TC_MH_written_SIZE 1
+#define MH_DEBUG_REG26_TCD_FULLNESS_CNT_q_SIZE 7
+#define MH_DEBUG_REG26_WBURST_ACTIVE_SIZE 1
+#define MH_DEBUG_REG26_WLAST_q_SIZE 1
+#define MH_DEBUG_REG26_WBURST_IP_q_SIZE 1
+#define MH_DEBUG_REG26_WBURST_CNT_q_SIZE 3
+#define MH_DEBUG_REG26_CP_SEND_QUAL_SIZE 1
+#define MH_DEBUG_REG26_CP_MH_write_SIZE 1
+#define MH_DEBUG_REG26_RB_SEND_QUAL_SIZE 1
+#define MH_DEBUG_REG26_ARB_WINNER_SIZE 3
+
+#define MH_DEBUG_REG26_TC_ARB_HOLD_SHIFT 0
+#define MH_DEBUG_REG26_TC_NOROQ_SAME_ROW_BANK_SHIFT 1
+#define MH_DEBUG_REG26_TC_ROQ_SAME_ROW_BANK_SHIFT 2
+#define MH_DEBUG_REG26_TCD_NEARFULL_q_SHIFT 3
+#define MH_DEBUG_REG26_TCHOLD_IP_q_SHIFT 4
+#define MH_DEBUG_REG26_TCHOLD_CNT_q_SHIFT 5
+#define MH_DEBUG_REG26_MH_ARBITER_CONFIG_TC_REORDER_ENABLE_SHIFT 8
+#define MH_DEBUG_REG26_TC_ROQ_RTR_DBG_q_SHIFT 9
+#define MH_DEBUG_REG26_TC_ROQ_SEND_q_SHIFT 10
+#define MH_DEBUG_REG26_TC_MH_written_SHIFT 11
+#define MH_DEBUG_REG26_TCD_FULLNESS_CNT_q_SHIFT 12
+#define MH_DEBUG_REG26_WBURST_ACTIVE_SHIFT 19
+#define MH_DEBUG_REG26_WLAST_q_SHIFT 20
+#define MH_DEBUG_REG26_WBURST_IP_q_SHIFT 21
+#define MH_DEBUG_REG26_WBURST_CNT_q_SHIFT 22
+#define MH_DEBUG_REG26_CP_SEND_QUAL_SHIFT 25
+#define MH_DEBUG_REG26_CP_MH_write_SHIFT 26
+#define MH_DEBUG_REG26_RB_SEND_QUAL_SHIFT 27
+#define MH_DEBUG_REG26_ARB_WINNER_SHIFT 28
+
+#define MH_DEBUG_REG26_TC_ARB_HOLD_MASK 0x00000001
+#define MH_DEBUG_REG26_TC_NOROQ_SAME_ROW_BANK_MASK 0x00000002
+#define MH_DEBUG_REG26_TC_ROQ_SAME_ROW_BANK_MASK 0x00000004
+#define MH_DEBUG_REG26_TCD_NEARFULL_q_MASK 0x00000008
+#define MH_DEBUG_REG26_TCHOLD_IP_q_MASK 0x00000010
+#define MH_DEBUG_REG26_TCHOLD_CNT_q_MASK 0x000000e0
+#define MH_DEBUG_REG26_MH_ARBITER_CONFIG_TC_REORDER_ENABLE_MASK 0x00000100
+#define MH_DEBUG_REG26_TC_ROQ_RTR_DBG_q_MASK 0x00000200
+#define MH_DEBUG_REG26_TC_ROQ_SEND_q_MASK 0x00000400
+#define MH_DEBUG_REG26_TC_MH_written_MASK 0x00000800
+#define MH_DEBUG_REG26_TCD_FULLNESS_CNT_q_MASK 0x0007f000
+#define MH_DEBUG_REG26_WBURST_ACTIVE_MASK 0x00080000
+#define MH_DEBUG_REG26_WLAST_q_MASK 0x00100000
+#define MH_DEBUG_REG26_WBURST_IP_q_MASK 0x00200000
+#define MH_DEBUG_REG26_WBURST_CNT_q_MASK 0x01c00000
+#define MH_DEBUG_REG26_CP_SEND_QUAL_MASK 0x02000000
+#define MH_DEBUG_REG26_CP_MH_write_MASK 0x04000000
+#define MH_DEBUG_REG26_RB_SEND_QUAL_MASK 0x08000000
+#define MH_DEBUG_REG26_ARB_WINNER_MASK 0x70000000
+
+#define MH_DEBUG_REG26_MASK \
+ (MH_DEBUG_REG26_TC_ARB_HOLD_MASK | \
+ MH_DEBUG_REG26_TC_NOROQ_SAME_ROW_BANK_MASK | \
+ MH_DEBUG_REG26_TC_ROQ_SAME_ROW_BANK_MASK | \
+ MH_DEBUG_REG26_TCD_NEARFULL_q_MASK | \
+ MH_DEBUG_REG26_TCHOLD_IP_q_MASK | \
+ MH_DEBUG_REG26_TCHOLD_CNT_q_MASK | \
+ MH_DEBUG_REG26_MH_ARBITER_CONFIG_TC_REORDER_ENABLE_MASK | \
+ MH_DEBUG_REG26_TC_ROQ_RTR_DBG_q_MASK | \
+ MH_DEBUG_REG26_TC_ROQ_SEND_q_MASK | \
+ MH_DEBUG_REG26_TC_MH_written_MASK | \
+ MH_DEBUG_REG26_TCD_FULLNESS_CNT_q_MASK | \
+ MH_DEBUG_REG26_WBURST_ACTIVE_MASK | \
+ MH_DEBUG_REG26_WLAST_q_MASK | \
+ MH_DEBUG_REG26_WBURST_IP_q_MASK | \
+ MH_DEBUG_REG26_WBURST_CNT_q_MASK | \
+ MH_DEBUG_REG26_CP_SEND_QUAL_MASK | \
+ MH_DEBUG_REG26_CP_MH_write_MASK | \
+ MH_DEBUG_REG26_RB_SEND_QUAL_MASK | \
+ MH_DEBUG_REG26_ARB_WINNER_MASK)
+
+#define MH_DEBUG_REG26(tc_arb_hold, tc_noroq_same_row_bank, tc_roq_same_row_bank, tcd_nearfull_q, tchold_ip_q, tchold_cnt_q, mh_arbiter_config_tc_reorder_enable, tc_roq_rtr_dbg_q, tc_roq_send_q, tc_mh_written, tcd_fullness_cnt_q, wburst_active, wlast_q, wburst_ip_q, wburst_cnt_q, cp_send_qual, cp_mh_write, rb_send_qual, arb_winner) \
+ ((tc_arb_hold << MH_DEBUG_REG26_TC_ARB_HOLD_SHIFT) | \
+ (tc_noroq_same_row_bank << MH_DEBUG_REG26_TC_NOROQ_SAME_ROW_BANK_SHIFT) | \
+ (tc_roq_same_row_bank << MH_DEBUG_REG26_TC_ROQ_SAME_ROW_BANK_SHIFT) | \
+ (tcd_nearfull_q << MH_DEBUG_REG26_TCD_NEARFULL_q_SHIFT) | \
+ (tchold_ip_q << MH_DEBUG_REG26_TCHOLD_IP_q_SHIFT) | \
+ (tchold_cnt_q << MH_DEBUG_REG26_TCHOLD_CNT_q_SHIFT) | \
+ (mh_arbiter_config_tc_reorder_enable << MH_DEBUG_REG26_MH_ARBITER_CONFIG_TC_REORDER_ENABLE_SHIFT) | \
+ (tc_roq_rtr_dbg_q << MH_DEBUG_REG26_TC_ROQ_RTR_DBG_q_SHIFT) | \
+ (tc_roq_send_q << MH_DEBUG_REG26_TC_ROQ_SEND_q_SHIFT) | \
+ (tc_mh_written << MH_DEBUG_REG26_TC_MH_written_SHIFT) | \
+ (tcd_fullness_cnt_q << MH_DEBUG_REG26_TCD_FULLNESS_CNT_q_SHIFT) | \
+ (wburst_active << MH_DEBUG_REG26_WBURST_ACTIVE_SHIFT) | \
+ (wlast_q << MH_DEBUG_REG26_WLAST_q_SHIFT) | \
+ (wburst_ip_q << MH_DEBUG_REG26_WBURST_IP_q_SHIFT) | \
+ (wburst_cnt_q << MH_DEBUG_REG26_WBURST_CNT_q_SHIFT) | \
+ (cp_send_qual << MH_DEBUG_REG26_CP_SEND_QUAL_SHIFT) | \
+ (cp_mh_write << MH_DEBUG_REG26_CP_MH_write_SHIFT) | \
+ (rb_send_qual << MH_DEBUG_REG26_RB_SEND_QUAL_SHIFT) | \
+ (arb_winner << MH_DEBUG_REG26_ARB_WINNER_SHIFT))
+
+#define MH_DEBUG_REG26_GET_TC_ARB_HOLD(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_TC_ARB_HOLD_MASK) >> MH_DEBUG_REG26_TC_ARB_HOLD_SHIFT)
+#define MH_DEBUG_REG26_GET_TC_NOROQ_SAME_ROW_BANK(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_TC_NOROQ_SAME_ROW_BANK_MASK) >> MH_DEBUG_REG26_TC_NOROQ_SAME_ROW_BANK_SHIFT)
+#define MH_DEBUG_REG26_GET_TC_ROQ_SAME_ROW_BANK(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_TC_ROQ_SAME_ROW_BANK_MASK) >> MH_DEBUG_REG26_TC_ROQ_SAME_ROW_BANK_SHIFT)
+#define MH_DEBUG_REG26_GET_TCD_NEARFULL_q(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_TCD_NEARFULL_q_MASK) >> MH_DEBUG_REG26_TCD_NEARFULL_q_SHIFT)
+#define MH_DEBUG_REG26_GET_TCHOLD_IP_q(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_TCHOLD_IP_q_MASK) >> MH_DEBUG_REG26_TCHOLD_IP_q_SHIFT)
+#define MH_DEBUG_REG26_GET_TCHOLD_CNT_q(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_TCHOLD_CNT_q_MASK) >> MH_DEBUG_REG26_TCHOLD_CNT_q_SHIFT)
+#define MH_DEBUG_REG26_GET_MH_ARBITER_CONFIG_TC_REORDER_ENABLE(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_MH_ARBITER_CONFIG_TC_REORDER_ENABLE_MASK) >> MH_DEBUG_REG26_MH_ARBITER_CONFIG_TC_REORDER_ENABLE_SHIFT)
+#define MH_DEBUG_REG26_GET_TC_ROQ_RTR_DBG_q(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_TC_ROQ_RTR_DBG_q_MASK) >> MH_DEBUG_REG26_TC_ROQ_RTR_DBG_q_SHIFT)
+#define MH_DEBUG_REG26_GET_TC_ROQ_SEND_q(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_TC_ROQ_SEND_q_MASK) >> MH_DEBUG_REG26_TC_ROQ_SEND_q_SHIFT)
+#define MH_DEBUG_REG26_GET_TC_MH_written(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_TC_MH_written_MASK) >> MH_DEBUG_REG26_TC_MH_written_SHIFT)
+#define MH_DEBUG_REG26_GET_TCD_FULLNESS_CNT_q(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_TCD_FULLNESS_CNT_q_MASK) >> MH_DEBUG_REG26_TCD_FULLNESS_CNT_q_SHIFT)
+#define MH_DEBUG_REG26_GET_WBURST_ACTIVE(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_WBURST_ACTIVE_MASK) >> MH_DEBUG_REG26_WBURST_ACTIVE_SHIFT)
+#define MH_DEBUG_REG26_GET_WLAST_q(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_WLAST_q_MASK) >> MH_DEBUG_REG26_WLAST_q_SHIFT)
+#define MH_DEBUG_REG26_GET_WBURST_IP_q(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_WBURST_IP_q_MASK) >> MH_DEBUG_REG26_WBURST_IP_q_SHIFT)
+#define MH_DEBUG_REG26_GET_WBURST_CNT_q(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_WBURST_CNT_q_MASK) >> MH_DEBUG_REG26_WBURST_CNT_q_SHIFT)
+#define MH_DEBUG_REG26_GET_CP_SEND_QUAL(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_CP_SEND_QUAL_MASK) >> MH_DEBUG_REG26_CP_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG26_GET_CP_MH_write(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_CP_MH_write_MASK) >> MH_DEBUG_REG26_CP_MH_write_SHIFT)
+#define MH_DEBUG_REG26_GET_RB_SEND_QUAL(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_RB_SEND_QUAL_MASK) >> MH_DEBUG_REG26_RB_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG26_GET_ARB_WINNER(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_ARB_WINNER_MASK) >> MH_DEBUG_REG26_ARB_WINNER_SHIFT)
+
+#define MH_DEBUG_REG26_SET_TC_ARB_HOLD(mh_debug_reg26_reg, tc_arb_hold) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_TC_ARB_HOLD_MASK) | (tc_arb_hold << MH_DEBUG_REG26_TC_ARB_HOLD_SHIFT)
+#define MH_DEBUG_REG26_SET_TC_NOROQ_SAME_ROW_BANK(mh_debug_reg26_reg, tc_noroq_same_row_bank) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_TC_NOROQ_SAME_ROW_BANK_MASK) | (tc_noroq_same_row_bank << MH_DEBUG_REG26_TC_NOROQ_SAME_ROW_BANK_SHIFT)
+#define MH_DEBUG_REG26_SET_TC_ROQ_SAME_ROW_BANK(mh_debug_reg26_reg, tc_roq_same_row_bank) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_TC_ROQ_SAME_ROW_BANK_MASK) | (tc_roq_same_row_bank << MH_DEBUG_REG26_TC_ROQ_SAME_ROW_BANK_SHIFT)
+#define MH_DEBUG_REG26_SET_TCD_NEARFULL_q(mh_debug_reg26_reg, tcd_nearfull_q) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_TCD_NEARFULL_q_MASK) | (tcd_nearfull_q << MH_DEBUG_REG26_TCD_NEARFULL_q_SHIFT)
+#define MH_DEBUG_REG26_SET_TCHOLD_IP_q(mh_debug_reg26_reg, tchold_ip_q) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_TCHOLD_IP_q_MASK) | (tchold_ip_q << MH_DEBUG_REG26_TCHOLD_IP_q_SHIFT)
+#define MH_DEBUG_REG26_SET_TCHOLD_CNT_q(mh_debug_reg26_reg, tchold_cnt_q) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_TCHOLD_CNT_q_MASK) | (tchold_cnt_q << MH_DEBUG_REG26_TCHOLD_CNT_q_SHIFT)
+#define MH_DEBUG_REG26_SET_MH_ARBITER_CONFIG_TC_REORDER_ENABLE(mh_debug_reg26_reg, mh_arbiter_config_tc_reorder_enable) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_MH_ARBITER_CONFIG_TC_REORDER_ENABLE_MASK) | (mh_arbiter_config_tc_reorder_enable << MH_DEBUG_REG26_MH_ARBITER_CONFIG_TC_REORDER_ENABLE_SHIFT)
+#define MH_DEBUG_REG26_SET_TC_ROQ_RTR_DBG_q(mh_debug_reg26_reg, tc_roq_rtr_dbg_q) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_TC_ROQ_RTR_DBG_q_MASK) | (tc_roq_rtr_dbg_q << MH_DEBUG_REG26_TC_ROQ_RTR_DBG_q_SHIFT)
+#define MH_DEBUG_REG26_SET_TC_ROQ_SEND_q(mh_debug_reg26_reg, tc_roq_send_q) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_TC_ROQ_SEND_q_MASK) | (tc_roq_send_q << MH_DEBUG_REG26_TC_ROQ_SEND_q_SHIFT)
+#define MH_DEBUG_REG26_SET_TC_MH_written(mh_debug_reg26_reg, tc_mh_written) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_TC_MH_written_MASK) | (tc_mh_written << MH_DEBUG_REG26_TC_MH_written_SHIFT)
+#define MH_DEBUG_REG26_SET_TCD_FULLNESS_CNT_q(mh_debug_reg26_reg, tcd_fullness_cnt_q) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_TCD_FULLNESS_CNT_q_MASK) | (tcd_fullness_cnt_q << MH_DEBUG_REG26_TCD_FULLNESS_CNT_q_SHIFT)
+#define MH_DEBUG_REG26_SET_WBURST_ACTIVE(mh_debug_reg26_reg, wburst_active) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_WBURST_ACTIVE_MASK) | (wburst_active << MH_DEBUG_REG26_WBURST_ACTIVE_SHIFT)
+#define MH_DEBUG_REG26_SET_WLAST_q(mh_debug_reg26_reg, wlast_q) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_WLAST_q_MASK) | (wlast_q << MH_DEBUG_REG26_WLAST_q_SHIFT)
+#define MH_DEBUG_REG26_SET_WBURST_IP_q(mh_debug_reg26_reg, wburst_ip_q) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_WBURST_IP_q_MASK) | (wburst_ip_q << MH_DEBUG_REG26_WBURST_IP_q_SHIFT)
+#define MH_DEBUG_REG26_SET_WBURST_CNT_q(mh_debug_reg26_reg, wburst_cnt_q) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_WBURST_CNT_q_MASK) | (wburst_cnt_q << MH_DEBUG_REG26_WBURST_CNT_q_SHIFT)
+#define MH_DEBUG_REG26_SET_CP_SEND_QUAL(mh_debug_reg26_reg, cp_send_qual) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_CP_SEND_QUAL_MASK) | (cp_send_qual << MH_DEBUG_REG26_CP_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG26_SET_CP_MH_write(mh_debug_reg26_reg, cp_mh_write) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_CP_MH_write_MASK) | (cp_mh_write << MH_DEBUG_REG26_CP_MH_write_SHIFT)
+#define MH_DEBUG_REG26_SET_RB_SEND_QUAL(mh_debug_reg26_reg, rb_send_qual) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_RB_SEND_QUAL_MASK) | (rb_send_qual << MH_DEBUG_REG26_RB_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG26_SET_ARB_WINNER(mh_debug_reg26_reg, arb_winner) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_ARB_WINNER_MASK) | (arb_winner << MH_DEBUG_REG26_ARB_WINNER_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg26_t {
+ unsigned int tc_arb_hold : MH_DEBUG_REG26_TC_ARB_HOLD_SIZE;
+ unsigned int tc_noroq_same_row_bank : MH_DEBUG_REG26_TC_NOROQ_SAME_ROW_BANK_SIZE;
+ unsigned int tc_roq_same_row_bank : MH_DEBUG_REG26_TC_ROQ_SAME_ROW_BANK_SIZE;
+ unsigned int tcd_nearfull_q : MH_DEBUG_REG26_TCD_NEARFULL_q_SIZE;
+ unsigned int tchold_ip_q : MH_DEBUG_REG26_TCHOLD_IP_q_SIZE;
+ unsigned int tchold_cnt_q : MH_DEBUG_REG26_TCHOLD_CNT_q_SIZE;
+ unsigned int mh_arbiter_config_tc_reorder_enable : MH_DEBUG_REG26_MH_ARBITER_CONFIG_TC_REORDER_ENABLE_SIZE;
+ unsigned int tc_roq_rtr_dbg_q : MH_DEBUG_REG26_TC_ROQ_RTR_DBG_q_SIZE;
+ unsigned int tc_roq_send_q : MH_DEBUG_REG26_TC_ROQ_SEND_q_SIZE;
+ unsigned int tc_mh_written : MH_DEBUG_REG26_TC_MH_written_SIZE;
+ unsigned int tcd_fullness_cnt_q : MH_DEBUG_REG26_TCD_FULLNESS_CNT_q_SIZE;
+ unsigned int wburst_active : MH_DEBUG_REG26_WBURST_ACTIVE_SIZE;
+ unsigned int wlast_q : MH_DEBUG_REG26_WLAST_q_SIZE;
+ unsigned int wburst_ip_q : MH_DEBUG_REG26_WBURST_IP_q_SIZE;
+ unsigned int wburst_cnt_q : MH_DEBUG_REG26_WBURST_CNT_q_SIZE;
+ unsigned int cp_send_qual : MH_DEBUG_REG26_CP_SEND_QUAL_SIZE;
+ unsigned int cp_mh_write : MH_DEBUG_REG26_CP_MH_write_SIZE;
+ unsigned int rb_send_qual : MH_DEBUG_REG26_RB_SEND_QUAL_SIZE;
+ unsigned int arb_winner : MH_DEBUG_REG26_ARB_WINNER_SIZE;
+ unsigned int : 1;
+ } mh_debug_reg26_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg26_t {
+ unsigned int : 1;
+ unsigned int arb_winner : MH_DEBUG_REG26_ARB_WINNER_SIZE;
+ unsigned int rb_send_qual : MH_DEBUG_REG26_RB_SEND_QUAL_SIZE;
+ unsigned int cp_mh_write : MH_DEBUG_REG26_CP_MH_write_SIZE;
+ unsigned int cp_send_qual : MH_DEBUG_REG26_CP_SEND_QUAL_SIZE;
+ unsigned int wburst_cnt_q : MH_DEBUG_REG26_WBURST_CNT_q_SIZE;
+ unsigned int wburst_ip_q : MH_DEBUG_REG26_WBURST_IP_q_SIZE;
+ unsigned int wlast_q : MH_DEBUG_REG26_WLAST_q_SIZE;
+ unsigned int wburst_active : MH_DEBUG_REG26_WBURST_ACTIVE_SIZE;
+ unsigned int tcd_fullness_cnt_q : MH_DEBUG_REG26_TCD_FULLNESS_CNT_q_SIZE;
+ unsigned int tc_mh_written : MH_DEBUG_REG26_TC_MH_written_SIZE;
+ unsigned int tc_roq_send_q : MH_DEBUG_REG26_TC_ROQ_SEND_q_SIZE;
+ unsigned int tc_roq_rtr_dbg_q : MH_DEBUG_REG26_TC_ROQ_RTR_DBG_q_SIZE;
+ unsigned int mh_arbiter_config_tc_reorder_enable : MH_DEBUG_REG26_MH_ARBITER_CONFIG_TC_REORDER_ENABLE_SIZE;
+ unsigned int tchold_cnt_q : MH_DEBUG_REG26_TCHOLD_CNT_q_SIZE;
+ unsigned int tchold_ip_q : MH_DEBUG_REG26_TCHOLD_IP_q_SIZE;
+ unsigned int tcd_nearfull_q : MH_DEBUG_REG26_TCD_NEARFULL_q_SIZE;
+ unsigned int tc_roq_same_row_bank : MH_DEBUG_REG26_TC_ROQ_SAME_ROW_BANK_SIZE;
+ unsigned int tc_noroq_same_row_bank : MH_DEBUG_REG26_TC_NOROQ_SAME_ROW_BANK_SIZE;
+ unsigned int tc_arb_hold : MH_DEBUG_REG26_TC_ARB_HOLD_SIZE;
+ } mh_debug_reg26_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg26_t f;
+} mh_debug_reg26_u;
+
+
+/*
+ * MH_DEBUG_REG27 struct
+ */
+
+#define MH_DEBUG_REG27_RF_ARBITER_CONFIG_q_SIZE 26
+#define MH_DEBUG_REG27_MH_CLNT_AXI_ID_REUSE_MMUr_ID_SIZE 3
+
+#define MH_DEBUG_REG27_RF_ARBITER_CONFIG_q_SHIFT 0
+#define MH_DEBUG_REG27_MH_CLNT_AXI_ID_REUSE_MMUr_ID_SHIFT 26
+
+#define MH_DEBUG_REG27_RF_ARBITER_CONFIG_q_MASK 0x03ffffff
+#define MH_DEBUG_REG27_MH_CLNT_AXI_ID_REUSE_MMUr_ID_MASK 0x1c000000
+
+#define MH_DEBUG_REG27_MASK \
+ (MH_DEBUG_REG27_RF_ARBITER_CONFIG_q_MASK | \
+ MH_DEBUG_REG27_MH_CLNT_AXI_ID_REUSE_MMUr_ID_MASK)
+
+#define MH_DEBUG_REG27(rf_arbiter_config_q, mh_clnt_axi_id_reuse_mmur_id) \
+ ((rf_arbiter_config_q << MH_DEBUG_REG27_RF_ARBITER_CONFIG_q_SHIFT) | \
+ (mh_clnt_axi_id_reuse_mmur_id << MH_DEBUG_REG27_MH_CLNT_AXI_ID_REUSE_MMUr_ID_SHIFT))
+
+#define MH_DEBUG_REG27_GET_RF_ARBITER_CONFIG_q(mh_debug_reg27) \
+ ((mh_debug_reg27 & MH_DEBUG_REG27_RF_ARBITER_CONFIG_q_MASK) >> MH_DEBUG_REG27_RF_ARBITER_CONFIG_q_SHIFT)
+#define MH_DEBUG_REG27_GET_MH_CLNT_AXI_ID_REUSE_MMUr_ID(mh_debug_reg27) \
+ ((mh_debug_reg27 & MH_DEBUG_REG27_MH_CLNT_AXI_ID_REUSE_MMUr_ID_MASK) >> MH_DEBUG_REG27_MH_CLNT_AXI_ID_REUSE_MMUr_ID_SHIFT)
+
+#define MH_DEBUG_REG27_SET_RF_ARBITER_CONFIG_q(mh_debug_reg27_reg, rf_arbiter_config_q) \
+ mh_debug_reg27_reg = (mh_debug_reg27_reg & ~MH_DEBUG_REG27_RF_ARBITER_CONFIG_q_MASK) | (rf_arbiter_config_q << MH_DEBUG_REG27_RF_ARBITER_CONFIG_q_SHIFT)
+#define MH_DEBUG_REG27_SET_MH_CLNT_AXI_ID_REUSE_MMUr_ID(mh_debug_reg27_reg, mh_clnt_axi_id_reuse_mmur_id) \
+ mh_debug_reg27_reg = (mh_debug_reg27_reg & ~MH_DEBUG_REG27_MH_CLNT_AXI_ID_REUSE_MMUr_ID_MASK) | (mh_clnt_axi_id_reuse_mmur_id << MH_DEBUG_REG27_MH_CLNT_AXI_ID_REUSE_MMUr_ID_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg27_t {
+ unsigned int rf_arbiter_config_q : MH_DEBUG_REG27_RF_ARBITER_CONFIG_q_SIZE;
+ unsigned int mh_clnt_axi_id_reuse_mmur_id : MH_DEBUG_REG27_MH_CLNT_AXI_ID_REUSE_MMUr_ID_SIZE;
+ unsigned int : 3;
+ } mh_debug_reg27_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg27_t {
+ unsigned int : 3;
+ unsigned int mh_clnt_axi_id_reuse_mmur_id : MH_DEBUG_REG27_MH_CLNT_AXI_ID_REUSE_MMUr_ID_SIZE;
+ unsigned int rf_arbiter_config_q : MH_DEBUG_REG27_RF_ARBITER_CONFIG_q_SIZE;
+ } mh_debug_reg27_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg27_t f;
+} mh_debug_reg27_u;
+
+
+/*
+ * MH_DEBUG_REG28 struct
+ */
+
+#define MH_DEBUG_REG28_SAME_ROW_BANK_q_SIZE 8
+#define MH_DEBUG_REG28_ROQ_MARK_q_SIZE 8
+#define MH_DEBUG_REG28_ROQ_VALID_q_SIZE 8
+#define MH_DEBUG_REG28_TC_MH_send_SIZE 1
+#define MH_DEBUG_REG28_TC_ROQ_RTR_q_SIZE 1
+#define MH_DEBUG_REG28_KILL_EFF1_SIZE 1
+#define MH_DEBUG_REG28_TC_ROQ_SAME_ROW_BANK_SEL_SIZE 1
+#define MH_DEBUG_REG28_ANY_SAME_ROW_BANK_SIZE 1
+#define MH_DEBUG_REG28_TC_EFF1_QUAL_SIZE 1
+#define MH_DEBUG_REG28_TC_ROQ_EMPTY_SIZE 1
+#define MH_DEBUG_REG28_TC_ROQ_FULL_SIZE 1
+
+#define MH_DEBUG_REG28_SAME_ROW_BANK_q_SHIFT 0
+#define MH_DEBUG_REG28_ROQ_MARK_q_SHIFT 8
+#define MH_DEBUG_REG28_ROQ_VALID_q_SHIFT 16
+#define MH_DEBUG_REG28_TC_MH_send_SHIFT 24
+#define MH_DEBUG_REG28_TC_ROQ_RTR_q_SHIFT 25
+#define MH_DEBUG_REG28_KILL_EFF1_SHIFT 26
+#define MH_DEBUG_REG28_TC_ROQ_SAME_ROW_BANK_SEL_SHIFT 27
+#define MH_DEBUG_REG28_ANY_SAME_ROW_BANK_SHIFT 28
+#define MH_DEBUG_REG28_TC_EFF1_QUAL_SHIFT 29
+#define MH_DEBUG_REG28_TC_ROQ_EMPTY_SHIFT 30
+#define MH_DEBUG_REG28_TC_ROQ_FULL_SHIFT 31
+
+#define MH_DEBUG_REG28_SAME_ROW_BANK_q_MASK 0x000000ff
+#define MH_DEBUG_REG28_ROQ_MARK_q_MASK 0x0000ff00
+#define MH_DEBUG_REG28_ROQ_VALID_q_MASK 0x00ff0000
+#define MH_DEBUG_REG28_TC_MH_send_MASK 0x01000000
+#define MH_DEBUG_REG28_TC_ROQ_RTR_q_MASK 0x02000000
+#define MH_DEBUG_REG28_KILL_EFF1_MASK 0x04000000
+#define MH_DEBUG_REG28_TC_ROQ_SAME_ROW_BANK_SEL_MASK 0x08000000
+#define MH_DEBUG_REG28_ANY_SAME_ROW_BANK_MASK 0x10000000
+#define MH_DEBUG_REG28_TC_EFF1_QUAL_MASK 0x20000000
+#define MH_DEBUG_REG28_TC_ROQ_EMPTY_MASK 0x40000000
+#define MH_DEBUG_REG28_TC_ROQ_FULL_MASK 0x80000000
+
+#define MH_DEBUG_REG28_MASK \
+ (MH_DEBUG_REG28_SAME_ROW_BANK_q_MASK | \
+ MH_DEBUG_REG28_ROQ_MARK_q_MASK | \
+ MH_DEBUG_REG28_ROQ_VALID_q_MASK | \
+ MH_DEBUG_REG28_TC_MH_send_MASK | \
+ MH_DEBUG_REG28_TC_ROQ_RTR_q_MASK | \
+ MH_DEBUG_REG28_KILL_EFF1_MASK | \
+ MH_DEBUG_REG28_TC_ROQ_SAME_ROW_BANK_SEL_MASK | \
+ MH_DEBUG_REG28_ANY_SAME_ROW_BANK_MASK | \
+ MH_DEBUG_REG28_TC_EFF1_QUAL_MASK | \
+ MH_DEBUG_REG28_TC_ROQ_EMPTY_MASK | \
+ MH_DEBUG_REG28_TC_ROQ_FULL_MASK)
+
+#define MH_DEBUG_REG28(same_row_bank_q, roq_mark_q, roq_valid_q, tc_mh_send, tc_roq_rtr_q, kill_eff1, tc_roq_same_row_bank_sel, any_same_row_bank, tc_eff1_qual, tc_roq_empty, tc_roq_full) \
+ ((same_row_bank_q << MH_DEBUG_REG28_SAME_ROW_BANK_q_SHIFT) | \
+ (roq_mark_q << MH_DEBUG_REG28_ROQ_MARK_q_SHIFT) | \
+ (roq_valid_q << MH_DEBUG_REG28_ROQ_VALID_q_SHIFT) | \
+ (tc_mh_send << MH_DEBUG_REG28_TC_MH_send_SHIFT) | \
+ (tc_roq_rtr_q << MH_DEBUG_REG28_TC_ROQ_RTR_q_SHIFT) | \
+ (kill_eff1 << MH_DEBUG_REG28_KILL_EFF1_SHIFT) | \
+ (tc_roq_same_row_bank_sel << MH_DEBUG_REG28_TC_ROQ_SAME_ROW_BANK_SEL_SHIFT) | \
+ (any_same_row_bank << MH_DEBUG_REG28_ANY_SAME_ROW_BANK_SHIFT) | \
+ (tc_eff1_qual << MH_DEBUG_REG28_TC_EFF1_QUAL_SHIFT) | \
+ (tc_roq_empty << MH_DEBUG_REG28_TC_ROQ_EMPTY_SHIFT) | \
+ (tc_roq_full << MH_DEBUG_REG28_TC_ROQ_FULL_SHIFT))
+
+#define MH_DEBUG_REG28_GET_SAME_ROW_BANK_q(mh_debug_reg28) \
+ ((mh_debug_reg28 & MH_DEBUG_REG28_SAME_ROW_BANK_q_MASK) >> MH_DEBUG_REG28_SAME_ROW_BANK_q_SHIFT)
+#define MH_DEBUG_REG28_GET_ROQ_MARK_q(mh_debug_reg28) \
+ ((mh_debug_reg28 & MH_DEBUG_REG28_ROQ_MARK_q_MASK) >> MH_DEBUG_REG28_ROQ_MARK_q_SHIFT)
+#define MH_DEBUG_REG28_GET_ROQ_VALID_q(mh_debug_reg28) \
+ ((mh_debug_reg28 & MH_DEBUG_REG28_ROQ_VALID_q_MASK) >> MH_DEBUG_REG28_ROQ_VALID_q_SHIFT)
+#define MH_DEBUG_REG28_GET_TC_MH_send(mh_debug_reg28) \
+ ((mh_debug_reg28 & MH_DEBUG_REG28_TC_MH_send_MASK) >> MH_DEBUG_REG28_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG28_GET_TC_ROQ_RTR_q(mh_debug_reg28) \
+ ((mh_debug_reg28 & MH_DEBUG_REG28_TC_ROQ_RTR_q_MASK) >> MH_DEBUG_REG28_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG28_GET_KILL_EFF1(mh_debug_reg28) \
+ ((mh_debug_reg28 & MH_DEBUG_REG28_KILL_EFF1_MASK) >> MH_DEBUG_REG28_KILL_EFF1_SHIFT)
+#define MH_DEBUG_REG28_GET_TC_ROQ_SAME_ROW_BANK_SEL(mh_debug_reg28) \
+ ((mh_debug_reg28 & MH_DEBUG_REG28_TC_ROQ_SAME_ROW_BANK_SEL_MASK) >> MH_DEBUG_REG28_TC_ROQ_SAME_ROW_BANK_SEL_SHIFT)
+#define MH_DEBUG_REG28_GET_ANY_SAME_ROW_BANK(mh_debug_reg28) \
+ ((mh_debug_reg28 & MH_DEBUG_REG28_ANY_SAME_ROW_BANK_MASK) >> MH_DEBUG_REG28_ANY_SAME_ROW_BANK_SHIFT)
+#define MH_DEBUG_REG28_GET_TC_EFF1_QUAL(mh_debug_reg28) \
+ ((mh_debug_reg28 & MH_DEBUG_REG28_TC_EFF1_QUAL_MASK) >> MH_DEBUG_REG28_TC_EFF1_QUAL_SHIFT)
+#define MH_DEBUG_REG28_GET_TC_ROQ_EMPTY(mh_debug_reg28) \
+ ((mh_debug_reg28 & MH_DEBUG_REG28_TC_ROQ_EMPTY_MASK) >> MH_DEBUG_REG28_TC_ROQ_EMPTY_SHIFT)
+#define MH_DEBUG_REG28_GET_TC_ROQ_FULL(mh_debug_reg28) \
+ ((mh_debug_reg28 & MH_DEBUG_REG28_TC_ROQ_FULL_MASK) >> MH_DEBUG_REG28_TC_ROQ_FULL_SHIFT)
+
+#define MH_DEBUG_REG28_SET_SAME_ROW_BANK_q(mh_debug_reg28_reg, same_row_bank_q) \
+ mh_debug_reg28_reg = (mh_debug_reg28_reg & ~MH_DEBUG_REG28_SAME_ROW_BANK_q_MASK) | (same_row_bank_q << MH_DEBUG_REG28_SAME_ROW_BANK_q_SHIFT)
+#define MH_DEBUG_REG28_SET_ROQ_MARK_q(mh_debug_reg28_reg, roq_mark_q) \
+ mh_debug_reg28_reg = (mh_debug_reg28_reg & ~MH_DEBUG_REG28_ROQ_MARK_q_MASK) | (roq_mark_q << MH_DEBUG_REG28_ROQ_MARK_q_SHIFT)
+#define MH_DEBUG_REG28_SET_ROQ_VALID_q(mh_debug_reg28_reg, roq_valid_q) \
+ mh_debug_reg28_reg = (mh_debug_reg28_reg & ~MH_DEBUG_REG28_ROQ_VALID_q_MASK) | (roq_valid_q << MH_DEBUG_REG28_ROQ_VALID_q_SHIFT)
+#define MH_DEBUG_REG28_SET_TC_MH_send(mh_debug_reg28_reg, tc_mh_send) \
+ mh_debug_reg28_reg = (mh_debug_reg28_reg & ~MH_DEBUG_REG28_TC_MH_send_MASK) | (tc_mh_send << MH_DEBUG_REG28_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG28_SET_TC_ROQ_RTR_q(mh_debug_reg28_reg, tc_roq_rtr_q) \
+ mh_debug_reg28_reg = (mh_debug_reg28_reg & ~MH_DEBUG_REG28_TC_ROQ_RTR_q_MASK) | (tc_roq_rtr_q << MH_DEBUG_REG28_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG28_SET_KILL_EFF1(mh_debug_reg28_reg, kill_eff1) \
+ mh_debug_reg28_reg = (mh_debug_reg28_reg & ~MH_DEBUG_REG28_KILL_EFF1_MASK) | (kill_eff1 << MH_DEBUG_REG28_KILL_EFF1_SHIFT)
+#define MH_DEBUG_REG28_SET_TC_ROQ_SAME_ROW_BANK_SEL(mh_debug_reg28_reg, tc_roq_same_row_bank_sel) \
+ mh_debug_reg28_reg = (mh_debug_reg28_reg & ~MH_DEBUG_REG28_TC_ROQ_SAME_ROW_BANK_SEL_MASK) | (tc_roq_same_row_bank_sel << MH_DEBUG_REG28_TC_ROQ_SAME_ROW_BANK_SEL_SHIFT)
+#define MH_DEBUG_REG28_SET_ANY_SAME_ROW_BANK(mh_debug_reg28_reg, any_same_row_bank) \
+ mh_debug_reg28_reg = (mh_debug_reg28_reg & ~MH_DEBUG_REG28_ANY_SAME_ROW_BANK_MASK) | (any_same_row_bank << MH_DEBUG_REG28_ANY_SAME_ROW_BANK_SHIFT)
+#define MH_DEBUG_REG28_SET_TC_EFF1_QUAL(mh_debug_reg28_reg, tc_eff1_qual) \
+ mh_debug_reg28_reg = (mh_debug_reg28_reg & ~MH_DEBUG_REG28_TC_EFF1_QUAL_MASK) | (tc_eff1_qual << MH_DEBUG_REG28_TC_EFF1_QUAL_SHIFT)
+#define MH_DEBUG_REG28_SET_TC_ROQ_EMPTY(mh_debug_reg28_reg, tc_roq_empty) \
+ mh_debug_reg28_reg = (mh_debug_reg28_reg & ~MH_DEBUG_REG28_TC_ROQ_EMPTY_MASK) | (tc_roq_empty << MH_DEBUG_REG28_TC_ROQ_EMPTY_SHIFT)
+#define MH_DEBUG_REG28_SET_TC_ROQ_FULL(mh_debug_reg28_reg, tc_roq_full) \
+ mh_debug_reg28_reg = (mh_debug_reg28_reg & ~MH_DEBUG_REG28_TC_ROQ_FULL_MASK) | (tc_roq_full << MH_DEBUG_REG28_TC_ROQ_FULL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg28_t {
+ unsigned int same_row_bank_q : MH_DEBUG_REG28_SAME_ROW_BANK_q_SIZE;
+ unsigned int roq_mark_q : MH_DEBUG_REG28_ROQ_MARK_q_SIZE;
+ unsigned int roq_valid_q : MH_DEBUG_REG28_ROQ_VALID_q_SIZE;
+ unsigned int tc_mh_send : MH_DEBUG_REG28_TC_MH_send_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG28_TC_ROQ_RTR_q_SIZE;
+ unsigned int kill_eff1 : MH_DEBUG_REG28_KILL_EFF1_SIZE;
+ unsigned int tc_roq_same_row_bank_sel : MH_DEBUG_REG28_TC_ROQ_SAME_ROW_BANK_SEL_SIZE;
+ unsigned int any_same_row_bank : MH_DEBUG_REG28_ANY_SAME_ROW_BANK_SIZE;
+ unsigned int tc_eff1_qual : MH_DEBUG_REG28_TC_EFF1_QUAL_SIZE;
+ unsigned int tc_roq_empty : MH_DEBUG_REG28_TC_ROQ_EMPTY_SIZE;
+ unsigned int tc_roq_full : MH_DEBUG_REG28_TC_ROQ_FULL_SIZE;
+ } mh_debug_reg28_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg28_t {
+ unsigned int tc_roq_full : MH_DEBUG_REG28_TC_ROQ_FULL_SIZE;
+ unsigned int tc_roq_empty : MH_DEBUG_REG28_TC_ROQ_EMPTY_SIZE;
+ unsigned int tc_eff1_qual : MH_DEBUG_REG28_TC_EFF1_QUAL_SIZE;
+ unsigned int any_same_row_bank : MH_DEBUG_REG28_ANY_SAME_ROW_BANK_SIZE;
+ unsigned int tc_roq_same_row_bank_sel : MH_DEBUG_REG28_TC_ROQ_SAME_ROW_BANK_SEL_SIZE;
+ unsigned int kill_eff1 : MH_DEBUG_REG28_KILL_EFF1_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG28_TC_ROQ_RTR_q_SIZE;
+ unsigned int tc_mh_send : MH_DEBUG_REG28_TC_MH_send_SIZE;
+ unsigned int roq_valid_q : MH_DEBUG_REG28_ROQ_VALID_q_SIZE;
+ unsigned int roq_mark_q : MH_DEBUG_REG28_ROQ_MARK_q_SIZE;
+ unsigned int same_row_bank_q : MH_DEBUG_REG28_SAME_ROW_BANK_q_SIZE;
+ } mh_debug_reg28_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg28_t f;
+} mh_debug_reg28_u;
+
+
+/*
+ * MH_DEBUG_REG29 struct
+ */
+
+#define MH_DEBUG_REG29_SAME_ROW_BANK_q_SIZE 8
+#define MH_DEBUG_REG29_ROQ_MARK_d_SIZE 8
+#define MH_DEBUG_REG29_ROQ_VALID_d_SIZE 8
+#define MH_DEBUG_REG29_TC_MH_send_SIZE 1
+#define MH_DEBUG_REG29_TC_ROQ_RTR_q_SIZE 1
+#define MH_DEBUG_REG29_KILL_EFF1_SIZE 1
+#define MH_DEBUG_REG29_TC_ROQ_SAME_ROW_BANK_SEL_SIZE 1
+#define MH_DEBUG_REG29_ANY_SAME_ROW_BANK_SIZE 1
+#define MH_DEBUG_REG29_TC_EFF1_QUAL_SIZE 1
+#define MH_DEBUG_REG29_TC_ROQ_EMPTY_SIZE 1
+#define MH_DEBUG_REG29_TC_ROQ_FULL_SIZE 1
+
+#define MH_DEBUG_REG29_SAME_ROW_BANK_q_SHIFT 0
+#define MH_DEBUG_REG29_ROQ_MARK_d_SHIFT 8
+#define MH_DEBUG_REG29_ROQ_VALID_d_SHIFT 16
+#define MH_DEBUG_REG29_TC_MH_send_SHIFT 24
+#define MH_DEBUG_REG29_TC_ROQ_RTR_q_SHIFT 25
+#define MH_DEBUG_REG29_KILL_EFF1_SHIFT 26
+#define MH_DEBUG_REG29_TC_ROQ_SAME_ROW_BANK_SEL_SHIFT 27
+#define MH_DEBUG_REG29_ANY_SAME_ROW_BANK_SHIFT 28
+#define MH_DEBUG_REG29_TC_EFF1_QUAL_SHIFT 29
+#define MH_DEBUG_REG29_TC_ROQ_EMPTY_SHIFT 30
+#define MH_DEBUG_REG29_TC_ROQ_FULL_SHIFT 31
+
+#define MH_DEBUG_REG29_SAME_ROW_BANK_q_MASK 0x000000ff
+#define MH_DEBUG_REG29_ROQ_MARK_d_MASK 0x0000ff00
+#define MH_DEBUG_REG29_ROQ_VALID_d_MASK 0x00ff0000
+#define MH_DEBUG_REG29_TC_MH_send_MASK 0x01000000
+#define MH_DEBUG_REG29_TC_ROQ_RTR_q_MASK 0x02000000
+#define MH_DEBUG_REG29_KILL_EFF1_MASK 0x04000000
+#define MH_DEBUG_REG29_TC_ROQ_SAME_ROW_BANK_SEL_MASK 0x08000000
+#define MH_DEBUG_REG29_ANY_SAME_ROW_BANK_MASK 0x10000000
+#define MH_DEBUG_REG29_TC_EFF1_QUAL_MASK 0x20000000
+#define MH_DEBUG_REG29_TC_ROQ_EMPTY_MASK 0x40000000
+#define MH_DEBUG_REG29_TC_ROQ_FULL_MASK 0x80000000
+
+#define MH_DEBUG_REG29_MASK \
+ (MH_DEBUG_REG29_SAME_ROW_BANK_q_MASK | \
+ MH_DEBUG_REG29_ROQ_MARK_d_MASK | \
+ MH_DEBUG_REG29_ROQ_VALID_d_MASK | \
+ MH_DEBUG_REG29_TC_MH_send_MASK | \
+ MH_DEBUG_REG29_TC_ROQ_RTR_q_MASK | \
+ MH_DEBUG_REG29_KILL_EFF1_MASK | \
+ MH_DEBUG_REG29_TC_ROQ_SAME_ROW_BANK_SEL_MASK | \
+ MH_DEBUG_REG29_ANY_SAME_ROW_BANK_MASK | \
+ MH_DEBUG_REG29_TC_EFF1_QUAL_MASK | \
+ MH_DEBUG_REG29_TC_ROQ_EMPTY_MASK | \
+ MH_DEBUG_REG29_TC_ROQ_FULL_MASK)
+
+#define MH_DEBUG_REG29(same_row_bank_q, roq_mark_d, roq_valid_d, tc_mh_send, tc_roq_rtr_q, kill_eff1, tc_roq_same_row_bank_sel, any_same_row_bank, tc_eff1_qual, tc_roq_empty, tc_roq_full) \
+ ((same_row_bank_q << MH_DEBUG_REG29_SAME_ROW_BANK_q_SHIFT) | \
+ (roq_mark_d << MH_DEBUG_REG29_ROQ_MARK_d_SHIFT) | \
+ (roq_valid_d << MH_DEBUG_REG29_ROQ_VALID_d_SHIFT) | \
+ (tc_mh_send << MH_DEBUG_REG29_TC_MH_send_SHIFT) | \
+ (tc_roq_rtr_q << MH_DEBUG_REG29_TC_ROQ_RTR_q_SHIFT) | \
+ (kill_eff1 << MH_DEBUG_REG29_KILL_EFF1_SHIFT) | \
+ (tc_roq_same_row_bank_sel << MH_DEBUG_REG29_TC_ROQ_SAME_ROW_BANK_SEL_SHIFT) | \
+ (any_same_row_bank << MH_DEBUG_REG29_ANY_SAME_ROW_BANK_SHIFT) | \
+ (tc_eff1_qual << MH_DEBUG_REG29_TC_EFF1_QUAL_SHIFT) | \
+ (tc_roq_empty << MH_DEBUG_REG29_TC_ROQ_EMPTY_SHIFT) | \
+ (tc_roq_full << MH_DEBUG_REG29_TC_ROQ_FULL_SHIFT))
+
+#define MH_DEBUG_REG29_GET_SAME_ROW_BANK_q(mh_debug_reg29) \
+ ((mh_debug_reg29 & MH_DEBUG_REG29_SAME_ROW_BANK_q_MASK) >> MH_DEBUG_REG29_SAME_ROW_BANK_q_SHIFT)
+#define MH_DEBUG_REG29_GET_ROQ_MARK_d(mh_debug_reg29) \
+ ((mh_debug_reg29 & MH_DEBUG_REG29_ROQ_MARK_d_MASK) >> MH_DEBUG_REG29_ROQ_MARK_d_SHIFT)
+#define MH_DEBUG_REG29_GET_ROQ_VALID_d(mh_debug_reg29) \
+ ((mh_debug_reg29 & MH_DEBUG_REG29_ROQ_VALID_d_MASK) >> MH_DEBUG_REG29_ROQ_VALID_d_SHIFT)
+#define MH_DEBUG_REG29_GET_TC_MH_send(mh_debug_reg29) \
+ ((mh_debug_reg29 & MH_DEBUG_REG29_TC_MH_send_MASK) >> MH_DEBUG_REG29_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG29_GET_TC_ROQ_RTR_q(mh_debug_reg29) \
+ ((mh_debug_reg29 & MH_DEBUG_REG29_TC_ROQ_RTR_q_MASK) >> MH_DEBUG_REG29_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG29_GET_KILL_EFF1(mh_debug_reg29) \
+ ((mh_debug_reg29 & MH_DEBUG_REG29_KILL_EFF1_MASK) >> MH_DEBUG_REG29_KILL_EFF1_SHIFT)
+#define MH_DEBUG_REG29_GET_TC_ROQ_SAME_ROW_BANK_SEL(mh_debug_reg29) \
+ ((mh_debug_reg29 & MH_DEBUG_REG29_TC_ROQ_SAME_ROW_BANK_SEL_MASK) >> MH_DEBUG_REG29_TC_ROQ_SAME_ROW_BANK_SEL_SHIFT)
+#define MH_DEBUG_REG29_GET_ANY_SAME_ROW_BANK(mh_debug_reg29) \
+ ((mh_debug_reg29 & MH_DEBUG_REG29_ANY_SAME_ROW_BANK_MASK) >> MH_DEBUG_REG29_ANY_SAME_ROW_BANK_SHIFT)
+#define MH_DEBUG_REG29_GET_TC_EFF1_QUAL(mh_debug_reg29) \
+ ((mh_debug_reg29 & MH_DEBUG_REG29_TC_EFF1_QUAL_MASK) >> MH_DEBUG_REG29_TC_EFF1_QUAL_SHIFT)
+#define MH_DEBUG_REG29_GET_TC_ROQ_EMPTY(mh_debug_reg29) \
+ ((mh_debug_reg29 & MH_DEBUG_REG29_TC_ROQ_EMPTY_MASK) >> MH_DEBUG_REG29_TC_ROQ_EMPTY_SHIFT)
+#define MH_DEBUG_REG29_GET_TC_ROQ_FULL(mh_debug_reg29) \
+ ((mh_debug_reg29 & MH_DEBUG_REG29_TC_ROQ_FULL_MASK) >> MH_DEBUG_REG29_TC_ROQ_FULL_SHIFT)
+
+#define MH_DEBUG_REG29_SET_SAME_ROW_BANK_q(mh_debug_reg29_reg, same_row_bank_q) \
+ mh_debug_reg29_reg = (mh_debug_reg29_reg & ~MH_DEBUG_REG29_SAME_ROW_BANK_q_MASK) | (same_row_bank_q << MH_DEBUG_REG29_SAME_ROW_BANK_q_SHIFT)
+#define MH_DEBUG_REG29_SET_ROQ_MARK_d(mh_debug_reg29_reg, roq_mark_d) \
+ mh_debug_reg29_reg = (mh_debug_reg29_reg & ~MH_DEBUG_REG29_ROQ_MARK_d_MASK) | (roq_mark_d << MH_DEBUG_REG29_ROQ_MARK_d_SHIFT)
+#define MH_DEBUG_REG29_SET_ROQ_VALID_d(mh_debug_reg29_reg, roq_valid_d) \
+ mh_debug_reg29_reg = (mh_debug_reg29_reg & ~MH_DEBUG_REG29_ROQ_VALID_d_MASK) | (roq_valid_d << MH_DEBUG_REG29_ROQ_VALID_d_SHIFT)
+#define MH_DEBUG_REG29_SET_TC_MH_send(mh_debug_reg29_reg, tc_mh_send) \
+ mh_debug_reg29_reg = (mh_debug_reg29_reg & ~MH_DEBUG_REG29_TC_MH_send_MASK) | (tc_mh_send << MH_DEBUG_REG29_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG29_SET_TC_ROQ_RTR_q(mh_debug_reg29_reg, tc_roq_rtr_q) \
+ mh_debug_reg29_reg = (mh_debug_reg29_reg & ~MH_DEBUG_REG29_TC_ROQ_RTR_q_MASK) | (tc_roq_rtr_q << MH_DEBUG_REG29_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG29_SET_KILL_EFF1(mh_debug_reg29_reg, kill_eff1) \
+ mh_debug_reg29_reg = (mh_debug_reg29_reg & ~MH_DEBUG_REG29_KILL_EFF1_MASK) | (kill_eff1 << MH_DEBUG_REG29_KILL_EFF1_SHIFT)
+#define MH_DEBUG_REG29_SET_TC_ROQ_SAME_ROW_BANK_SEL(mh_debug_reg29_reg, tc_roq_same_row_bank_sel) \
+ mh_debug_reg29_reg = (mh_debug_reg29_reg & ~MH_DEBUG_REG29_TC_ROQ_SAME_ROW_BANK_SEL_MASK) | (tc_roq_same_row_bank_sel << MH_DEBUG_REG29_TC_ROQ_SAME_ROW_BANK_SEL_SHIFT)
+#define MH_DEBUG_REG29_SET_ANY_SAME_ROW_BANK(mh_debug_reg29_reg, any_same_row_bank) \
+ mh_debug_reg29_reg = (mh_debug_reg29_reg & ~MH_DEBUG_REG29_ANY_SAME_ROW_BANK_MASK) | (any_same_row_bank << MH_DEBUG_REG29_ANY_SAME_ROW_BANK_SHIFT)
+#define MH_DEBUG_REG29_SET_TC_EFF1_QUAL(mh_debug_reg29_reg, tc_eff1_qual) \
+ mh_debug_reg29_reg = (mh_debug_reg29_reg & ~MH_DEBUG_REG29_TC_EFF1_QUAL_MASK) | (tc_eff1_qual << MH_DEBUG_REG29_TC_EFF1_QUAL_SHIFT)
+#define MH_DEBUG_REG29_SET_TC_ROQ_EMPTY(mh_debug_reg29_reg, tc_roq_empty) \
+ mh_debug_reg29_reg = (mh_debug_reg29_reg & ~MH_DEBUG_REG29_TC_ROQ_EMPTY_MASK) | (tc_roq_empty << MH_DEBUG_REG29_TC_ROQ_EMPTY_SHIFT)
+#define MH_DEBUG_REG29_SET_TC_ROQ_FULL(mh_debug_reg29_reg, tc_roq_full) \
+ mh_debug_reg29_reg = (mh_debug_reg29_reg & ~MH_DEBUG_REG29_TC_ROQ_FULL_MASK) | (tc_roq_full << MH_DEBUG_REG29_TC_ROQ_FULL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg29_t {
+ unsigned int same_row_bank_q : MH_DEBUG_REG29_SAME_ROW_BANK_q_SIZE;
+ unsigned int roq_mark_d : MH_DEBUG_REG29_ROQ_MARK_d_SIZE;
+ unsigned int roq_valid_d : MH_DEBUG_REG29_ROQ_VALID_d_SIZE;
+ unsigned int tc_mh_send : MH_DEBUG_REG29_TC_MH_send_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG29_TC_ROQ_RTR_q_SIZE;
+ unsigned int kill_eff1 : MH_DEBUG_REG29_KILL_EFF1_SIZE;
+ unsigned int tc_roq_same_row_bank_sel : MH_DEBUG_REG29_TC_ROQ_SAME_ROW_BANK_SEL_SIZE;
+ unsigned int any_same_row_bank : MH_DEBUG_REG29_ANY_SAME_ROW_BANK_SIZE;
+ unsigned int tc_eff1_qual : MH_DEBUG_REG29_TC_EFF1_QUAL_SIZE;
+ unsigned int tc_roq_empty : MH_DEBUG_REG29_TC_ROQ_EMPTY_SIZE;
+ unsigned int tc_roq_full : MH_DEBUG_REG29_TC_ROQ_FULL_SIZE;
+ } mh_debug_reg29_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg29_t {
+ unsigned int tc_roq_full : MH_DEBUG_REG29_TC_ROQ_FULL_SIZE;
+ unsigned int tc_roq_empty : MH_DEBUG_REG29_TC_ROQ_EMPTY_SIZE;
+ unsigned int tc_eff1_qual : MH_DEBUG_REG29_TC_EFF1_QUAL_SIZE;
+ unsigned int any_same_row_bank : MH_DEBUG_REG29_ANY_SAME_ROW_BANK_SIZE;
+ unsigned int tc_roq_same_row_bank_sel : MH_DEBUG_REG29_TC_ROQ_SAME_ROW_BANK_SEL_SIZE;
+ unsigned int kill_eff1 : MH_DEBUG_REG29_KILL_EFF1_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG29_TC_ROQ_RTR_q_SIZE;
+ unsigned int tc_mh_send : MH_DEBUG_REG29_TC_MH_send_SIZE;
+ unsigned int roq_valid_d : MH_DEBUG_REG29_ROQ_VALID_d_SIZE;
+ unsigned int roq_mark_d : MH_DEBUG_REG29_ROQ_MARK_d_SIZE;
+ unsigned int same_row_bank_q : MH_DEBUG_REG29_SAME_ROW_BANK_q_SIZE;
+ } mh_debug_reg29_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg29_t f;
+} mh_debug_reg29_u;
+
+
+/*
+ * MH_DEBUG_REG30 struct
+ */
+
+#define MH_DEBUG_REG30_SAME_ROW_BANK_WIN_SIZE 8
+#define MH_DEBUG_REG30_SAME_ROW_BANK_REQ_SIZE 8
+#define MH_DEBUG_REG30_NON_SAME_ROW_BANK_WIN_SIZE 8
+#define MH_DEBUG_REG30_NON_SAME_ROW_BANK_REQ_SIZE 8
+
+#define MH_DEBUG_REG30_SAME_ROW_BANK_WIN_SHIFT 0
+#define MH_DEBUG_REG30_SAME_ROW_BANK_REQ_SHIFT 8
+#define MH_DEBUG_REG30_NON_SAME_ROW_BANK_WIN_SHIFT 16
+#define MH_DEBUG_REG30_NON_SAME_ROW_BANK_REQ_SHIFT 24
+
+#define MH_DEBUG_REG30_SAME_ROW_BANK_WIN_MASK 0x000000ff
+#define MH_DEBUG_REG30_SAME_ROW_BANK_REQ_MASK 0x0000ff00
+#define MH_DEBUG_REG30_NON_SAME_ROW_BANK_WIN_MASK 0x00ff0000
+#define MH_DEBUG_REG30_NON_SAME_ROW_BANK_REQ_MASK 0xff000000
+
+#define MH_DEBUG_REG30_MASK \
+ (MH_DEBUG_REG30_SAME_ROW_BANK_WIN_MASK | \
+ MH_DEBUG_REG30_SAME_ROW_BANK_REQ_MASK | \
+ MH_DEBUG_REG30_NON_SAME_ROW_BANK_WIN_MASK | \
+ MH_DEBUG_REG30_NON_SAME_ROW_BANK_REQ_MASK)
+
+#define MH_DEBUG_REG30(same_row_bank_win, same_row_bank_req, non_same_row_bank_win, non_same_row_bank_req) \
+ ((same_row_bank_win << MH_DEBUG_REG30_SAME_ROW_BANK_WIN_SHIFT) | \
+ (same_row_bank_req << MH_DEBUG_REG30_SAME_ROW_BANK_REQ_SHIFT) | \
+ (non_same_row_bank_win << MH_DEBUG_REG30_NON_SAME_ROW_BANK_WIN_SHIFT) | \
+ (non_same_row_bank_req << MH_DEBUG_REG30_NON_SAME_ROW_BANK_REQ_SHIFT))
+
+#define MH_DEBUG_REG30_GET_SAME_ROW_BANK_WIN(mh_debug_reg30) \
+ ((mh_debug_reg30 & MH_DEBUG_REG30_SAME_ROW_BANK_WIN_MASK) >> MH_DEBUG_REG30_SAME_ROW_BANK_WIN_SHIFT)
+#define MH_DEBUG_REG30_GET_SAME_ROW_BANK_REQ(mh_debug_reg30) \
+ ((mh_debug_reg30 & MH_DEBUG_REG30_SAME_ROW_BANK_REQ_MASK) >> MH_DEBUG_REG30_SAME_ROW_BANK_REQ_SHIFT)
+#define MH_DEBUG_REG30_GET_NON_SAME_ROW_BANK_WIN(mh_debug_reg30) \
+ ((mh_debug_reg30 & MH_DEBUG_REG30_NON_SAME_ROW_BANK_WIN_MASK) >> MH_DEBUG_REG30_NON_SAME_ROW_BANK_WIN_SHIFT)
+#define MH_DEBUG_REG30_GET_NON_SAME_ROW_BANK_REQ(mh_debug_reg30) \
+ ((mh_debug_reg30 & MH_DEBUG_REG30_NON_SAME_ROW_BANK_REQ_MASK) >> MH_DEBUG_REG30_NON_SAME_ROW_BANK_REQ_SHIFT)
+
+#define MH_DEBUG_REG30_SET_SAME_ROW_BANK_WIN(mh_debug_reg30_reg, same_row_bank_win) \
+ mh_debug_reg30_reg = (mh_debug_reg30_reg & ~MH_DEBUG_REG30_SAME_ROW_BANK_WIN_MASK) | (same_row_bank_win << MH_DEBUG_REG30_SAME_ROW_BANK_WIN_SHIFT)
+#define MH_DEBUG_REG30_SET_SAME_ROW_BANK_REQ(mh_debug_reg30_reg, same_row_bank_req) \
+ mh_debug_reg30_reg = (mh_debug_reg30_reg & ~MH_DEBUG_REG30_SAME_ROW_BANK_REQ_MASK) | (same_row_bank_req << MH_DEBUG_REG30_SAME_ROW_BANK_REQ_SHIFT)
+#define MH_DEBUG_REG30_SET_NON_SAME_ROW_BANK_WIN(mh_debug_reg30_reg, non_same_row_bank_win) \
+ mh_debug_reg30_reg = (mh_debug_reg30_reg & ~MH_DEBUG_REG30_NON_SAME_ROW_BANK_WIN_MASK) | (non_same_row_bank_win << MH_DEBUG_REG30_NON_SAME_ROW_BANK_WIN_SHIFT)
+#define MH_DEBUG_REG30_SET_NON_SAME_ROW_BANK_REQ(mh_debug_reg30_reg, non_same_row_bank_req) \
+ mh_debug_reg30_reg = (mh_debug_reg30_reg & ~MH_DEBUG_REG30_NON_SAME_ROW_BANK_REQ_MASK) | (non_same_row_bank_req << MH_DEBUG_REG30_NON_SAME_ROW_BANK_REQ_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg30_t {
+ unsigned int same_row_bank_win : MH_DEBUG_REG30_SAME_ROW_BANK_WIN_SIZE;
+ unsigned int same_row_bank_req : MH_DEBUG_REG30_SAME_ROW_BANK_REQ_SIZE;
+ unsigned int non_same_row_bank_win : MH_DEBUG_REG30_NON_SAME_ROW_BANK_WIN_SIZE;
+ unsigned int non_same_row_bank_req : MH_DEBUG_REG30_NON_SAME_ROW_BANK_REQ_SIZE;
+ } mh_debug_reg30_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg30_t {
+ unsigned int non_same_row_bank_req : MH_DEBUG_REG30_NON_SAME_ROW_BANK_REQ_SIZE;
+ unsigned int non_same_row_bank_win : MH_DEBUG_REG30_NON_SAME_ROW_BANK_WIN_SIZE;
+ unsigned int same_row_bank_req : MH_DEBUG_REG30_SAME_ROW_BANK_REQ_SIZE;
+ unsigned int same_row_bank_win : MH_DEBUG_REG30_SAME_ROW_BANK_WIN_SIZE;
+ } mh_debug_reg30_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg30_t f;
+} mh_debug_reg30_u;
+
+
+/*
+ * MH_DEBUG_REG31 struct
+ */
+
+#define MH_DEBUG_REG31_TC_MH_send_SIZE 1
+#define MH_DEBUG_REG31_TC_ROQ_RTR_q_SIZE 1
+#define MH_DEBUG_REG31_ROQ_MARK_q_0_SIZE 1
+#define MH_DEBUG_REG31_ROQ_VALID_q_0_SIZE 1
+#define MH_DEBUG_REG31_SAME_ROW_BANK_q_0_SIZE 1
+#define MH_DEBUG_REG31_ROQ_ADDR_0_SIZE 27
+
+#define MH_DEBUG_REG31_TC_MH_send_SHIFT 0
+#define MH_DEBUG_REG31_TC_ROQ_RTR_q_SHIFT 1
+#define MH_DEBUG_REG31_ROQ_MARK_q_0_SHIFT 2
+#define MH_DEBUG_REG31_ROQ_VALID_q_0_SHIFT 3
+#define MH_DEBUG_REG31_SAME_ROW_BANK_q_0_SHIFT 4
+#define MH_DEBUG_REG31_ROQ_ADDR_0_SHIFT 5
+
+#define MH_DEBUG_REG31_TC_MH_send_MASK 0x00000001
+#define MH_DEBUG_REG31_TC_ROQ_RTR_q_MASK 0x00000002
+#define MH_DEBUG_REG31_ROQ_MARK_q_0_MASK 0x00000004
+#define MH_DEBUG_REG31_ROQ_VALID_q_0_MASK 0x00000008
+#define MH_DEBUG_REG31_SAME_ROW_BANK_q_0_MASK 0x00000010
+#define MH_DEBUG_REG31_ROQ_ADDR_0_MASK 0xffffffe0
+
+#define MH_DEBUG_REG31_MASK \
+ (MH_DEBUG_REG31_TC_MH_send_MASK | \
+ MH_DEBUG_REG31_TC_ROQ_RTR_q_MASK | \
+ MH_DEBUG_REG31_ROQ_MARK_q_0_MASK | \
+ MH_DEBUG_REG31_ROQ_VALID_q_0_MASK | \
+ MH_DEBUG_REG31_SAME_ROW_BANK_q_0_MASK | \
+ MH_DEBUG_REG31_ROQ_ADDR_0_MASK)
+
+#define MH_DEBUG_REG31(tc_mh_send, tc_roq_rtr_q, roq_mark_q_0, roq_valid_q_0, same_row_bank_q_0, roq_addr_0) \
+ ((tc_mh_send << MH_DEBUG_REG31_TC_MH_send_SHIFT) | \
+ (tc_roq_rtr_q << MH_DEBUG_REG31_TC_ROQ_RTR_q_SHIFT) | \
+ (roq_mark_q_0 << MH_DEBUG_REG31_ROQ_MARK_q_0_SHIFT) | \
+ (roq_valid_q_0 << MH_DEBUG_REG31_ROQ_VALID_q_0_SHIFT) | \
+ (same_row_bank_q_0 << MH_DEBUG_REG31_SAME_ROW_BANK_q_0_SHIFT) | \
+ (roq_addr_0 << MH_DEBUG_REG31_ROQ_ADDR_0_SHIFT))
+
+#define MH_DEBUG_REG31_GET_TC_MH_send(mh_debug_reg31) \
+ ((mh_debug_reg31 & MH_DEBUG_REG31_TC_MH_send_MASK) >> MH_DEBUG_REG31_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG31_GET_TC_ROQ_RTR_q(mh_debug_reg31) \
+ ((mh_debug_reg31 & MH_DEBUG_REG31_TC_ROQ_RTR_q_MASK) >> MH_DEBUG_REG31_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG31_GET_ROQ_MARK_q_0(mh_debug_reg31) \
+ ((mh_debug_reg31 & MH_DEBUG_REG31_ROQ_MARK_q_0_MASK) >> MH_DEBUG_REG31_ROQ_MARK_q_0_SHIFT)
+#define MH_DEBUG_REG31_GET_ROQ_VALID_q_0(mh_debug_reg31) \
+ ((mh_debug_reg31 & MH_DEBUG_REG31_ROQ_VALID_q_0_MASK) >> MH_DEBUG_REG31_ROQ_VALID_q_0_SHIFT)
+#define MH_DEBUG_REG31_GET_SAME_ROW_BANK_q_0(mh_debug_reg31) \
+ ((mh_debug_reg31 & MH_DEBUG_REG31_SAME_ROW_BANK_q_0_MASK) >> MH_DEBUG_REG31_SAME_ROW_BANK_q_0_SHIFT)
+#define MH_DEBUG_REG31_GET_ROQ_ADDR_0(mh_debug_reg31) \
+ ((mh_debug_reg31 & MH_DEBUG_REG31_ROQ_ADDR_0_MASK) >> MH_DEBUG_REG31_ROQ_ADDR_0_SHIFT)
+
+#define MH_DEBUG_REG31_SET_TC_MH_send(mh_debug_reg31_reg, tc_mh_send) \
+ mh_debug_reg31_reg = (mh_debug_reg31_reg & ~MH_DEBUG_REG31_TC_MH_send_MASK) | (tc_mh_send << MH_DEBUG_REG31_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG31_SET_TC_ROQ_RTR_q(mh_debug_reg31_reg, tc_roq_rtr_q) \
+ mh_debug_reg31_reg = (mh_debug_reg31_reg & ~MH_DEBUG_REG31_TC_ROQ_RTR_q_MASK) | (tc_roq_rtr_q << MH_DEBUG_REG31_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG31_SET_ROQ_MARK_q_0(mh_debug_reg31_reg, roq_mark_q_0) \
+ mh_debug_reg31_reg = (mh_debug_reg31_reg & ~MH_DEBUG_REG31_ROQ_MARK_q_0_MASK) | (roq_mark_q_0 << MH_DEBUG_REG31_ROQ_MARK_q_0_SHIFT)
+#define MH_DEBUG_REG31_SET_ROQ_VALID_q_0(mh_debug_reg31_reg, roq_valid_q_0) \
+ mh_debug_reg31_reg = (mh_debug_reg31_reg & ~MH_DEBUG_REG31_ROQ_VALID_q_0_MASK) | (roq_valid_q_0 << MH_DEBUG_REG31_ROQ_VALID_q_0_SHIFT)
+#define MH_DEBUG_REG31_SET_SAME_ROW_BANK_q_0(mh_debug_reg31_reg, same_row_bank_q_0) \
+ mh_debug_reg31_reg = (mh_debug_reg31_reg & ~MH_DEBUG_REG31_SAME_ROW_BANK_q_0_MASK) | (same_row_bank_q_0 << MH_DEBUG_REG31_SAME_ROW_BANK_q_0_SHIFT)
+#define MH_DEBUG_REG31_SET_ROQ_ADDR_0(mh_debug_reg31_reg, roq_addr_0) \
+ mh_debug_reg31_reg = (mh_debug_reg31_reg & ~MH_DEBUG_REG31_ROQ_ADDR_0_MASK) | (roq_addr_0 << MH_DEBUG_REG31_ROQ_ADDR_0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg31_t {
+ unsigned int tc_mh_send : MH_DEBUG_REG31_TC_MH_send_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG31_TC_ROQ_RTR_q_SIZE;
+ unsigned int roq_mark_q_0 : MH_DEBUG_REG31_ROQ_MARK_q_0_SIZE;
+ unsigned int roq_valid_q_0 : MH_DEBUG_REG31_ROQ_VALID_q_0_SIZE;
+ unsigned int same_row_bank_q_0 : MH_DEBUG_REG31_SAME_ROW_BANK_q_0_SIZE;
+ unsigned int roq_addr_0 : MH_DEBUG_REG31_ROQ_ADDR_0_SIZE;
+ } mh_debug_reg31_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg31_t {
+ unsigned int roq_addr_0 : MH_DEBUG_REG31_ROQ_ADDR_0_SIZE;
+ unsigned int same_row_bank_q_0 : MH_DEBUG_REG31_SAME_ROW_BANK_q_0_SIZE;
+ unsigned int roq_valid_q_0 : MH_DEBUG_REG31_ROQ_VALID_q_0_SIZE;
+ unsigned int roq_mark_q_0 : MH_DEBUG_REG31_ROQ_MARK_q_0_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG31_TC_ROQ_RTR_q_SIZE;
+ unsigned int tc_mh_send : MH_DEBUG_REG31_TC_MH_send_SIZE;
+ } mh_debug_reg31_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg31_t f;
+} mh_debug_reg31_u;
+
+
+/*
+ * MH_DEBUG_REG32 struct
+ */
+
+#define MH_DEBUG_REG32_TC_MH_send_SIZE 1
+#define MH_DEBUG_REG32_TC_ROQ_RTR_q_SIZE 1
+#define MH_DEBUG_REG32_ROQ_MARK_q_1_SIZE 1
+#define MH_DEBUG_REG32_ROQ_VALID_q_1_SIZE 1
+#define MH_DEBUG_REG32_SAME_ROW_BANK_q_1_SIZE 1
+#define MH_DEBUG_REG32_ROQ_ADDR_1_SIZE 27
+
+#define MH_DEBUG_REG32_TC_MH_send_SHIFT 0
+#define MH_DEBUG_REG32_TC_ROQ_RTR_q_SHIFT 1
+#define MH_DEBUG_REG32_ROQ_MARK_q_1_SHIFT 2
+#define MH_DEBUG_REG32_ROQ_VALID_q_1_SHIFT 3
+#define MH_DEBUG_REG32_SAME_ROW_BANK_q_1_SHIFT 4
+#define MH_DEBUG_REG32_ROQ_ADDR_1_SHIFT 5
+
+#define MH_DEBUG_REG32_TC_MH_send_MASK 0x00000001
+#define MH_DEBUG_REG32_TC_ROQ_RTR_q_MASK 0x00000002
+#define MH_DEBUG_REG32_ROQ_MARK_q_1_MASK 0x00000004
+#define MH_DEBUG_REG32_ROQ_VALID_q_1_MASK 0x00000008
+#define MH_DEBUG_REG32_SAME_ROW_BANK_q_1_MASK 0x00000010
+#define MH_DEBUG_REG32_ROQ_ADDR_1_MASK 0xffffffe0
+
+#define MH_DEBUG_REG32_MASK \
+ (MH_DEBUG_REG32_TC_MH_send_MASK | \
+ MH_DEBUG_REG32_TC_ROQ_RTR_q_MASK | \
+ MH_DEBUG_REG32_ROQ_MARK_q_1_MASK | \
+ MH_DEBUG_REG32_ROQ_VALID_q_1_MASK | \
+ MH_DEBUG_REG32_SAME_ROW_BANK_q_1_MASK | \
+ MH_DEBUG_REG32_ROQ_ADDR_1_MASK)
+
+#define MH_DEBUG_REG32(tc_mh_send, tc_roq_rtr_q, roq_mark_q_1, roq_valid_q_1, same_row_bank_q_1, roq_addr_1) \
+ ((tc_mh_send << MH_DEBUG_REG32_TC_MH_send_SHIFT) | \
+ (tc_roq_rtr_q << MH_DEBUG_REG32_TC_ROQ_RTR_q_SHIFT) | \
+ (roq_mark_q_1 << MH_DEBUG_REG32_ROQ_MARK_q_1_SHIFT) | \
+ (roq_valid_q_1 << MH_DEBUG_REG32_ROQ_VALID_q_1_SHIFT) | \
+ (same_row_bank_q_1 << MH_DEBUG_REG32_SAME_ROW_BANK_q_1_SHIFT) | \
+ (roq_addr_1 << MH_DEBUG_REG32_ROQ_ADDR_1_SHIFT))
+
+#define MH_DEBUG_REG32_GET_TC_MH_send(mh_debug_reg32) \
+ ((mh_debug_reg32 & MH_DEBUG_REG32_TC_MH_send_MASK) >> MH_DEBUG_REG32_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG32_GET_TC_ROQ_RTR_q(mh_debug_reg32) \
+ ((mh_debug_reg32 & MH_DEBUG_REG32_TC_ROQ_RTR_q_MASK) >> MH_DEBUG_REG32_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG32_GET_ROQ_MARK_q_1(mh_debug_reg32) \
+ ((mh_debug_reg32 & MH_DEBUG_REG32_ROQ_MARK_q_1_MASK) >> MH_DEBUG_REG32_ROQ_MARK_q_1_SHIFT)
+#define MH_DEBUG_REG32_GET_ROQ_VALID_q_1(mh_debug_reg32) \
+ ((mh_debug_reg32 & MH_DEBUG_REG32_ROQ_VALID_q_1_MASK) >> MH_DEBUG_REG32_ROQ_VALID_q_1_SHIFT)
+#define MH_DEBUG_REG32_GET_SAME_ROW_BANK_q_1(mh_debug_reg32) \
+ ((mh_debug_reg32 & MH_DEBUG_REG32_SAME_ROW_BANK_q_1_MASK) >> MH_DEBUG_REG32_SAME_ROW_BANK_q_1_SHIFT)
+#define MH_DEBUG_REG32_GET_ROQ_ADDR_1(mh_debug_reg32) \
+ ((mh_debug_reg32 & MH_DEBUG_REG32_ROQ_ADDR_1_MASK) >> MH_DEBUG_REG32_ROQ_ADDR_1_SHIFT)
+
+#define MH_DEBUG_REG32_SET_TC_MH_send(mh_debug_reg32_reg, tc_mh_send) \
+ mh_debug_reg32_reg = (mh_debug_reg32_reg & ~MH_DEBUG_REG32_TC_MH_send_MASK) | (tc_mh_send << MH_DEBUG_REG32_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG32_SET_TC_ROQ_RTR_q(mh_debug_reg32_reg, tc_roq_rtr_q) \
+ mh_debug_reg32_reg = (mh_debug_reg32_reg & ~MH_DEBUG_REG32_TC_ROQ_RTR_q_MASK) | (tc_roq_rtr_q << MH_DEBUG_REG32_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG32_SET_ROQ_MARK_q_1(mh_debug_reg32_reg, roq_mark_q_1) \
+ mh_debug_reg32_reg = (mh_debug_reg32_reg & ~MH_DEBUG_REG32_ROQ_MARK_q_1_MASK) | (roq_mark_q_1 << MH_DEBUG_REG32_ROQ_MARK_q_1_SHIFT)
+#define MH_DEBUG_REG32_SET_ROQ_VALID_q_1(mh_debug_reg32_reg, roq_valid_q_1) \
+ mh_debug_reg32_reg = (mh_debug_reg32_reg & ~MH_DEBUG_REG32_ROQ_VALID_q_1_MASK) | (roq_valid_q_1 << MH_DEBUG_REG32_ROQ_VALID_q_1_SHIFT)
+#define MH_DEBUG_REG32_SET_SAME_ROW_BANK_q_1(mh_debug_reg32_reg, same_row_bank_q_1) \
+ mh_debug_reg32_reg = (mh_debug_reg32_reg & ~MH_DEBUG_REG32_SAME_ROW_BANK_q_1_MASK) | (same_row_bank_q_1 << MH_DEBUG_REG32_SAME_ROW_BANK_q_1_SHIFT)
+#define MH_DEBUG_REG32_SET_ROQ_ADDR_1(mh_debug_reg32_reg, roq_addr_1) \
+ mh_debug_reg32_reg = (mh_debug_reg32_reg & ~MH_DEBUG_REG32_ROQ_ADDR_1_MASK) | (roq_addr_1 << MH_DEBUG_REG32_ROQ_ADDR_1_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg32_t {
+ unsigned int tc_mh_send : MH_DEBUG_REG32_TC_MH_send_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG32_TC_ROQ_RTR_q_SIZE;
+ unsigned int roq_mark_q_1 : MH_DEBUG_REG32_ROQ_MARK_q_1_SIZE;
+ unsigned int roq_valid_q_1 : MH_DEBUG_REG32_ROQ_VALID_q_1_SIZE;
+ unsigned int same_row_bank_q_1 : MH_DEBUG_REG32_SAME_ROW_BANK_q_1_SIZE;
+ unsigned int roq_addr_1 : MH_DEBUG_REG32_ROQ_ADDR_1_SIZE;
+ } mh_debug_reg32_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg32_t {
+ unsigned int roq_addr_1 : MH_DEBUG_REG32_ROQ_ADDR_1_SIZE;
+ unsigned int same_row_bank_q_1 : MH_DEBUG_REG32_SAME_ROW_BANK_q_1_SIZE;
+ unsigned int roq_valid_q_1 : MH_DEBUG_REG32_ROQ_VALID_q_1_SIZE;
+ unsigned int roq_mark_q_1 : MH_DEBUG_REG32_ROQ_MARK_q_1_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG32_TC_ROQ_RTR_q_SIZE;
+ unsigned int tc_mh_send : MH_DEBUG_REG32_TC_MH_send_SIZE;
+ } mh_debug_reg32_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg32_t f;
+} mh_debug_reg32_u;
+
+
+/*
+ * MH_DEBUG_REG33 struct
+ */
+
+#define MH_DEBUG_REG33_TC_MH_send_SIZE 1
+#define MH_DEBUG_REG33_TC_ROQ_RTR_q_SIZE 1
+#define MH_DEBUG_REG33_ROQ_MARK_q_2_SIZE 1
+#define MH_DEBUG_REG33_ROQ_VALID_q_2_SIZE 1
+#define MH_DEBUG_REG33_SAME_ROW_BANK_q_2_SIZE 1
+#define MH_DEBUG_REG33_ROQ_ADDR_2_SIZE 27
+
+#define MH_DEBUG_REG33_TC_MH_send_SHIFT 0
+#define MH_DEBUG_REG33_TC_ROQ_RTR_q_SHIFT 1
+#define MH_DEBUG_REG33_ROQ_MARK_q_2_SHIFT 2
+#define MH_DEBUG_REG33_ROQ_VALID_q_2_SHIFT 3
+#define MH_DEBUG_REG33_SAME_ROW_BANK_q_2_SHIFT 4
+#define MH_DEBUG_REG33_ROQ_ADDR_2_SHIFT 5
+
+#define MH_DEBUG_REG33_TC_MH_send_MASK 0x00000001
+#define MH_DEBUG_REG33_TC_ROQ_RTR_q_MASK 0x00000002
+#define MH_DEBUG_REG33_ROQ_MARK_q_2_MASK 0x00000004
+#define MH_DEBUG_REG33_ROQ_VALID_q_2_MASK 0x00000008
+#define MH_DEBUG_REG33_SAME_ROW_BANK_q_2_MASK 0x00000010
+#define MH_DEBUG_REG33_ROQ_ADDR_2_MASK 0xffffffe0
+
+#define MH_DEBUG_REG33_MASK \
+ (MH_DEBUG_REG33_TC_MH_send_MASK | \
+ MH_DEBUG_REG33_TC_ROQ_RTR_q_MASK | \
+ MH_DEBUG_REG33_ROQ_MARK_q_2_MASK | \
+ MH_DEBUG_REG33_ROQ_VALID_q_2_MASK | \
+ MH_DEBUG_REG33_SAME_ROW_BANK_q_2_MASK | \
+ MH_DEBUG_REG33_ROQ_ADDR_2_MASK)
+
+#define MH_DEBUG_REG33(tc_mh_send, tc_roq_rtr_q, roq_mark_q_2, roq_valid_q_2, same_row_bank_q_2, roq_addr_2) \
+ ((tc_mh_send << MH_DEBUG_REG33_TC_MH_send_SHIFT) | \
+ (tc_roq_rtr_q << MH_DEBUG_REG33_TC_ROQ_RTR_q_SHIFT) | \
+ (roq_mark_q_2 << MH_DEBUG_REG33_ROQ_MARK_q_2_SHIFT) | \
+ (roq_valid_q_2 << MH_DEBUG_REG33_ROQ_VALID_q_2_SHIFT) | \
+ (same_row_bank_q_2 << MH_DEBUG_REG33_SAME_ROW_BANK_q_2_SHIFT) | \
+ (roq_addr_2 << MH_DEBUG_REG33_ROQ_ADDR_2_SHIFT))
+
+#define MH_DEBUG_REG33_GET_TC_MH_send(mh_debug_reg33) \
+ ((mh_debug_reg33 & MH_DEBUG_REG33_TC_MH_send_MASK) >> MH_DEBUG_REG33_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG33_GET_TC_ROQ_RTR_q(mh_debug_reg33) \
+ ((mh_debug_reg33 & MH_DEBUG_REG33_TC_ROQ_RTR_q_MASK) >> MH_DEBUG_REG33_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG33_GET_ROQ_MARK_q_2(mh_debug_reg33) \
+ ((mh_debug_reg33 & MH_DEBUG_REG33_ROQ_MARK_q_2_MASK) >> MH_DEBUG_REG33_ROQ_MARK_q_2_SHIFT)
+#define MH_DEBUG_REG33_GET_ROQ_VALID_q_2(mh_debug_reg33) \
+ ((mh_debug_reg33 & MH_DEBUG_REG33_ROQ_VALID_q_2_MASK) >> MH_DEBUG_REG33_ROQ_VALID_q_2_SHIFT)
+#define MH_DEBUG_REG33_GET_SAME_ROW_BANK_q_2(mh_debug_reg33) \
+ ((mh_debug_reg33 & MH_DEBUG_REG33_SAME_ROW_BANK_q_2_MASK) >> MH_DEBUG_REG33_SAME_ROW_BANK_q_2_SHIFT)
+#define MH_DEBUG_REG33_GET_ROQ_ADDR_2(mh_debug_reg33) \
+ ((mh_debug_reg33 & MH_DEBUG_REG33_ROQ_ADDR_2_MASK) >> MH_DEBUG_REG33_ROQ_ADDR_2_SHIFT)
+
+#define MH_DEBUG_REG33_SET_TC_MH_send(mh_debug_reg33_reg, tc_mh_send) \
+ mh_debug_reg33_reg = (mh_debug_reg33_reg & ~MH_DEBUG_REG33_TC_MH_send_MASK) | (tc_mh_send << MH_DEBUG_REG33_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG33_SET_TC_ROQ_RTR_q(mh_debug_reg33_reg, tc_roq_rtr_q) \
+ mh_debug_reg33_reg = (mh_debug_reg33_reg & ~MH_DEBUG_REG33_TC_ROQ_RTR_q_MASK) | (tc_roq_rtr_q << MH_DEBUG_REG33_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG33_SET_ROQ_MARK_q_2(mh_debug_reg33_reg, roq_mark_q_2) \
+ mh_debug_reg33_reg = (mh_debug_reg33_reg & ~MH_DEBUG_REG33_ROQ_MARK_q_2_MASK) | (roq_mark_q_2 << MH_DEBUG_REG33_ROQ_MARK_q_2_SHIFT)
+#define MH_DEBUG_REG33_SET_ROQ_VALID_q_2(mh_debug_reg33_reg, roq_valid_q_2) \
+ mh_debug_reg33_reg = (mh_debug_reg33_reg & ~MH_DEBUG_REG33_ROQ_VALID_q_2_MASK) | (roq_valid_q_2 << MH_DEBUG_REG33_ROQ_VALID_q_2_SHIFT)
+#define MH_DEBUG_REG33_SET_SAME_ROW_BANK_q_2(mh_debug_reg33_reg, same_row_bank_q_2) \
+ mh_debug_reg33_reg = (mh_debug_reg33_reg & ~MH_DEBUG_REG33_SAME_ROW_BANK_q_2_MASK) | (same_row_bank_q_2 << MH_DEBUG_REG33_SAME_ROW_BANK_q_2_SHIFT)
+#define MH_DEBUG_REG33_SET_ROQ_ADDR_2(mh_debug_reg33_reg, roq_addr_2) \
+ mh_debug_reg33_reg = (mh_debug_reg33_reg & ~MH_DEBUG_REG33_ROQ_ADDR_2_MASK) | (roq_addr_2 << MH_DEBUG_REG33_ROQ_ADDR_2_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg33_t {
+ unsigned int tc_mh_send : MH_DEBUG_REG33_TC_MH_send_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG33_TC_ROQ_RTR_q_SIZE;
+ unsigned int roq_mark_q_2 : MH_DEBUG_REG33_ROQ_MARK_q_2_SIZE;
+ unsigned int roq_valid_q_2 : MH_DEBUG_REG33_ROQ_VALID_q_2_SIZE;
+ unsigned int same_row_bank_q_2 : MH_DEBUG_REG33_SAME_ROW_BANK_q_2_SIZE;
+ unsigned int roq_addr_2 : MH_DEBUG_REG33_ROQ_ADDR_2_SIZE;
+ } mh_debug_reg33_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg33_t {
+ unsigned int roq_addr_2 : MH_DEBUG_REG33_ROQ_ADDR_2_SIZE;
+ unsigned int same_row_bank_q_2 : MH_DEBUG_REG33_SAME_ROW_BANK_q_2_SIZE;
+ unsigned int roq_valid_q_2 : MH_DEBUG_REG33_ROQ_VALID_q_2_SIZE;
+ unsigned int roq_mark_q_2 : MH_DEBUG_REG33_ROQ_MARK_q_2_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG33_TC_ROQ_RTR_q_SIZE;
+ unsigned int tc_mh_send : MH_DEBUG_REG33_TC_MH_send_SIZE;
+ } mh_debug_reg33_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg33_t f;
+} mh_debug_reg33_u;
+
+
+/*
+ * MH_DEBUG_REG34 struct
+ */
+
+#define MH_DEBUG_REG34_TC_MH_send_SIZE 1
+#define MH_DEBUG_REG34_TC_ROQ_RTR_q_SIZE 1
+#define MH_DEBUG_REG34_ROQ_MARK_q_3_SIZE 1
+#define MH_DEBUG_REG34_ROQ_VALID_q_3_SIZE 1
+#define MH_DEBUG_REG34_SAME_ROW_BANK_q_3_SIZE 1
+#define MH_DEBUG_REG34_ROQ_ADDR_3_SIZE 27
+
+#define MH_DEBUG_REG34_TC_MH_send_SHIFT 0
+#define MH_DEBUG_REG34_TC_ROQ_RTR_q_SHIFT 1
+#define MH_DEBUG_REG34_ROQ_MARK_q_3_SHIFT 2
+#define MH_DEBUG_REG34_ROQ_VALID_q_3_SHIFT 3
+#define MH_DEBUG_REG34_SAME_ROW_BANK_q_3_SHIFT 4
+#define MH_DEBUG_REG34_ROQ_ADDR_3_SHIFT 5
+
+#define MH_DEBUG_REG34_TC_MH_send_MASK 0x00000001
+#define MH_DEBUG_REG34_TC_ROQ_RTR_q_MASK 0x00000002
+#define MH_DEBUG_REG34_ROQ_MARK_q_3_MASK 0x00000004
+#define MH_DEBUG_REG34_ROQ_VALID_q_3_MASK 0x00000008
+#define MH_DEBUG_REG34_SAME_ROW_BANK_q_3_MASK 0x00000010
+#define MH_DEBUG_REG34_ROQ_ADDR_3_MASK 0xffffffe0
+
+#define MH_DEBUG_REG34_MASK \
+ (MH_DEBUG_REG34_TC_MH_send_MASK | \
+ MH_DEBUG_REG34_TC_ROQ_RTR_q_MASK | \
+ MH_DEBUG_REG34_ROQ_MARK_q_3_MASK | \
+ MH_DEBUG_REG34_ROQ_VALID_q_3_MASK | \
+ MH_DEBUG_REG34_SAME_ROW_BANK_q_3_MASK | \
+ MH_DEBUG_REG34_ROQ_ADDR_3_MASK)
+
+#define MH_DEBUG_REG34(tc_mh_send, tc_roq_rtr_q, roq_mark_q_3, roq_valid_q_3, same_row_bank_q_3, roq_addr_3) \
+ ((tc_mh_send << MH_DEBUG_REG34_TC_MH_send_SHIFT) | \
+ (tc_roq_rtr_q << MH_DEBUG_REG34_TC_ROQ_RTR_q_SHIFT) | \
+ (roq_mark_q_3 << MH_DEBUG_REG34_ROQ_MARK_q_3_SHIFT) | \
+ (roq_valid_q_3 << MH_DEBUG_REG34_ROQ_VALID_q_3_SHIFT) | \
+ (same_row_bank_q_3 << MH_DEBUG_REG34_SAME_ROW_BANK_q_3_SHIFT) | \
+ (roq_addr_3 << MH_DEBUG_REG34_ROQ_ADDR_3_SHIFT))
+
+#define MH_DEBUG_REG34_GET_TC_MH_send(mh_debug_reg34) \
+ ((mh_debug_reg34 & MH_DEBUG_REG34_TC_MH_send_MASK) >> MH_DEBUG_REG34_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG34_GET_TC_ROQ_RTR_q(mh_debug_reg34) \
+ ((mh_debug_reg34 & MH_DEBUG_REG34_TC_ROQ_RTR_q_MASK) >> MH_DEBUG_REG34_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG34_GET_ROQ_MARK_q_3(mh_debug_reg34) \
+ ((mh_debug_reg34 & MH_DEBUG_REG34_ROQ_MARK_q_3_MASK) >> MH_DEBUG_REG34_ROQ_MARK_q_3_SHIFT)
+#define MH_DEBUG_REG34_GET_ROQ_VALID_q_3(mh_debug_reg34) \
+ ((mh_debug_reg34 & MH_DEBUG_REG34_ROQ_VALID_q_3_MASK) >> MH_DEBUG_REG34_ROQ_VALID_q_3_SHIFT)
+#define MH_DEBUG_REG34_GET_SAME_ROW_BANK_q_3(mh_debug_reg34) \
+ ((mh_debug_reg34 & MH_DEBUG_REG34_SAME_ROW_BANK_q_3_MASK) >> MH_DEBUG_REG34_SAME_ROW_BANK_q_3_SHIFT)
+#define MH_DEBUG_REG34_GET_ROQ_ADDR_3(mh_debug_reg34) \
+ ((mh_debug_reg34 & MH_DEBUG_REG34_ROQ_ADDR_3_MASK) >> MH_DEBUG_REG34_ROQ_ADDR_3_SHIFT)
+
+#define MH_DEBUG_REG34_SET_TC_MH_send(mh_debug_reg34_reg, tc_mh_send) \
+ mh_debug_reg34_reg = (mh_debug_reg34_reg & ~MH_DEBUG_REG34_TC_MH_send_MASK) | (tc_mh_send << MH_DEBUG_REG34_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG34_SET_TC_ROQ_RTR_q(mh_debug_reg34_reg, tc_roq_rtr_q) \
+ mh_debug_reg34_reg = (mh_debug_reg34_reg & ~MH_DEBUG_REG34_TC_ROQ_RTR_q_MASK) | (tc_roq_rtr_q << MH_DEBUG_REG34_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG34_SET_ROQ_MARK_q_3(mh_debug_reg34_reg, roq_mark_q_3) \
+ mh_debug_reg34_reg = (mh_debug_reg34_reg & ~MH_DEBUG_REG34_ROQ_MARK_q_3_MASK) | (roq_mark_q_3 << MH_DEBUG_REG34_ROQ_MARK_q_3_SHIFT)
+#define MH_DEBUG_REG34_SET_ROQ_VALID_q_3(mh_debug_reg34_reg, roq_valid_q_3) \
+ mh_debug_reg34_reg = (mh_debug_reg34_reg & ~MH_DEBUG_REG34_ROQ_VALID_q_3_MASK) | (roq_valid_q_3 << MH_DEBUG_REG34_ROQ_VALID_q_3_SHIFT)
+#define MH_DEBUG_REG34_SET_SAME_ROW_BANK_q_3(mh_debug_reg34_reg, same_row_bank_q_3) \
+ mh_debug_reg34_reg = (mh_debug_reg34_reg & ~MH_DEBUG_REG34_SAME_ROW_BANK_q_3_MASK) | (same_row_bank_q_3 << MH_DEBUG_REG34_SAME_ROW_BANK_q_3_SHIFT)
+#define MH_DEBUG_REG34_SET_ROQ_ADDR_3(mh_debug_reg34_reg, roq_addr_3) \
+ mh_debug_reg34_reg = (mh_debug_reg34_reg & ~MH_DEBUG_REG34_ROQ_ADDR_3_MASK) | (roq_addr_3 << MH_DEBUG_REG34_ROQ_ADDR_3_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg34_t {
+ unsigned int tc_mh_send : MH_DEBUG_REG34_TC_MH_send_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG34_TC_ROQ_RTR_q_SIZE;
+ unsigned int roq_mark_q_3 : MH_DEBUG_REG34_ROQ_MARK_q_3_SIZE;
+ unsigned int roq_valid_q_3 : MH_DEBUG_REG34_ROQ_VALID_q_3_SIZE;
+ unsigned int same_row_bank_q_3 : MH_DEBUG_REG34_SAME_ROW_BANK_q_3_SIZE;
+ unsigned int roq_addr_3 : MH_DEBUG_REG34_ROQ_ADDR_3_SIZE;
+ } mh_debug_reg34_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg34_t {
+ unsigned int roq_addr_3 : MH_DEBUG_REG34_ROQ_ADDR_3_SIZE;
+ unsigned int same_row_bank_q_3 : MH_DEBUG_REG34_SAME_ROW_BANK_q_3_SIZE;
+ unsigned int roq_valid_q_3 : MH_DEBUG_REG34_ROQ_VALID_q_3_SIZE;
+ unsigned int roq_mark_q_3 : MH_DEBUG_REG34_ROQ_MARK_q_3_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG34_TC_ROQ_RTR_q_SIZE;
+ unsigned int tc_mh_send : MH_DEBUG_REG34_TC_MH_send_SIZE;
+ } mh_debug_reg34_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg34_t f;
+} mh_debug_reg34_u;
+
+
+/*
+ * MH_DEBUG_REG35 struct
+ */
+
+#define MH_DEBUG_REG35_TC_MH_send_SIZE 1
+#define MH_DEBUG_REG35_TC_ROQ_RTR_q_SIZE 1
+#define MH_DEBUG_REG35_ROQ_MARK_q_4_SIZE 1
+#define MH_DEBUG_REG35_ROQ_VALID_q_4_SIZE 1
+#define MH_DEBUG_REG35_SAME_ROW_BANK_q_4_SIZE 1
+#define MH_DEBUG_REG35_ROQ_ADDR_4_SIZE 27
+
+#define MH_DEBUG_REG35_TC_MH_send_SHIFT 0
+#define MH_DEBUG_REG35_TC_ROQ_RTR_q_SHIFT 1
+#define MH_DEBUG_REG35_ROQ_MARK_q_4_SHIFT 2
+#define MH_DEBUG_REG35_ROQ_VALID_q_4_SHIFT 3
+#define MH_DEBUG_REG35_SAME_ROW_BANK_q_4_SHIFT 4
+#define MH_DEBUG_REG35_ROQ_ADDR_4_SHIFT 5
+
+#define MH_DEBUG_REG35_TC_MH_send_MASK 0x00000001
+#define MH_DEBUG_REG35_TC_ROQ_RTR_q_MASK 0x00000002
+#define MH_DEBUG_REG35_ROQ_MARK_q_4_MASK 0x00000004
+#define MH_DEBUG_REG35_ROQ_VALID_q_4_MASK 0x00000008
+#define MH_DEBUG_REG35_SAME_ROW_BANK_q_4_MASK 0x00000010
+#define MH_DEBUG_REG35_ROQ_ADDR_4_MASK 0xffffffe0
+
+#define MH_DEBUG_REG35_MASK \
+ (MH_DEBUG_REG35_TC_MH_send_MASK | \
+ MH_DEBUG_REG35_TC_ROQ_RTR_q_MASK | \
+ MH_DEBUG_REG35_ROQ_MARK_q_4_MASK | \
+ MH_DEBUG_REG35_ROQ_VALID_q_4_MASK | \
+ MH_DEBUG_REG35_SAME_ROW_BANK_q_4_MASK | \
+ MH_DEBUG_REG35_ROQ_ADDR_4_MASK)
+
+#define MH_DEBUG_REG35(tc_mh_send, tc_roq_rtr_q, roq_mark_q_4, roq_valid_q_4, same_row_bank_q_4, roq_addr_4) \
+ ((tc_mh_send << MH_DEBUG_REG35_TC_MH_send_SHIFT) | \
+ (tc_roq_rtr_q << MH_DEBUG_REG35_TC_ROQ_RTR_q_SHIFT) | \
+ (roq_mark_q_4 << MH_DEBUG_REG35_ROQ_MARK_q_4_SHIFT) | \
+ (roq_valid_q_4 << MH_DEBUG_REG35_ROQ_VALID_q_4_SHIFT) | \
+ (same_row_bank_q_4 << MH_DEBUG_REG35_SAME_ROW_BANK_q_4_SHIFT) | \
+ (roq_addr_4 << MH_DEBUG_REG35_ROQ_ADDR_4_SHIFT))
+
+#define MH_DEBUG_REG35_GET_TC_MH_send(mh_debug_reg35) \
+ ((mh_debug_reg35 & MH_DEBUG_REG35_TC_MH_send_MASK) >> MH_DEBUG_REG35_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG35_GET_TC_ROQ_RTR_q(mh_debug_reg35) \
+ ((mh_debug_reg35 & MH_DEBUG_REG35_TC_ROQ_RTR_q_MASK) >> MH_DEBUG_REG35_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG35_GET_ROQ_MARK_q_4(mh_debug_reg35) \
+ ((mh_debug_reg35 & MH_DEBUG_REG35_ROQ_MARK_q_4_MASK) >> MH_DEBUG_REG35_ROQ_MARK_q_4_SHIFT)
+#define MH_DEBUG_REG35_GET_ROQ_VALID_q_4(mh_debug_reg35) \
+ ((mh_debug_reg35 & MH_DEBUG_REG35_ROQ_VALID_q_4_MASK) >> MH_DEBUG_REG35_ROQ_VALID_q_4_SHIFT)
+#define MH_DEBUG_REG35_GET_SAME_ROW_BANK_q_4(mh_debug_reg35) \
+ ((mh_debug_reg35 & MH_DEBUG_REG35_SAME_ROW_BANK_q_4_MASK) >> MH_DEBUG_REG35_SAME_ROW_BANK_q_4_SHIFT)
+#define MH_DEBUG_REG35_GET_ROQ_ADDR_4(mh_debug_reg35) \
+ ((mh_debug_reg35 & MH_DEBUG_REG35_ROQ_ADDR_4_MASK) >> MH_DEBUG_REG35_ROQ_ADDR_4_SHIFT)
+
+#define MH_DEBUG_REG35_SET_TC_MH_send(mh_debug_reg35_reg, tc_mh_send) \
+ mh_debug_reg35_reg = (mh_debug_reg35_reg & ~MH_DEBUG_REG35_TC_MH_send_MASK) | (tc_mh_send << MH_DEBUG_REG35_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG35_SET_TC_ROQ_RTR_q(mh_debug_reg35_reg, tc_roq_rtr_q) \
+ mh_debug_reg35_reg = (mh_debug_reg35_reg & ~MH_DEBUG_REG35_TC_ROQ_RTR_q_MASK) | (tc_roq_rtr_q << MH_DEBUG_REG35_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG35_SET_ROQ_MARK_q_4(mh_debug_reg35_reg, roq_mark_q_4) \
+ mh_debug_reg35_reg = (mh_debug_reg35_reg & ~MH_DEBUG_REG35_ROQ_MARK_q_4_MASK) | (roq_mark_q_4 << MH_DEBUG_REG35_ROQ_MARK_q_4_SHIFT)
+#define MH_DEBUG_REG35_SET_ROQ_VALID_q_4(mh_debug_reg35_reg, roq_valid_q_4) \
+ mh_debug_reg35_reg = (mh_debug_reg35_reg & ~MH_DEBUG_REG35_ROQ_VALID_q_4_MASK) | (roq_valid_q_4 << MH_DEBUG_REG35_ROQ_VALID_q_4_SHIFT)
+#define MH_DEBUG_REG35_SET_SAME_ROW_BANK_q_4(mh_debug_reg35_reg, same_row_bank_q_4) \
+ mh_debug_reg35_reg = (mh_debug_reg35_reg & ~MH_DEBUG_REG35_SAME_ROW_BANK_q_4_MASK) | (same_row_bank_q_4 << MH_DEBUG_REG35_SAME_ROW_BANK_q_4_SHIFT)
+#define MH_DEBUG_REG35_SET_ROQ_ADDR_4(mh_debug_reg35_reg, roq_addr_4) \
+ mh_debug_reg35_reg = (mh_debug_reg35_reg & ~MH_DEBUG_REG35_ROQ_ADDR_4_MASK) | (roq_addr_4 << MH_DEBUG_REG35_ROQ_ADDR_4_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg35_t {
+ unsigned int tc_mh_send : MH_DEBUG_REG35_TC_MH_send_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG35_TC_ROQ_RTR_q_SIZE;
+ unsigned int roq_mark_q_4 : MH_DEBUG_REG35_ROQ_MARK_q_4_SIZE;
+ unsigned int roq_valid_q_4 : MH_DEBUG_REG35_ROQ_VALID_q_4_SIZE;
+ unsigned int same_row_bank_q_4 : MH_DEBUG_REG35_SAME_ROW_BANK_q_4_SIZE;
+ unsigned int roq_addr_4 : MH_DEBUG_REG35_ROQ_ADDR_4_SIZE;
+ } mh_debug_reg35_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg35_t {
+ unsigned int roq_addr_4 : MH_DEBUG_REG35_ROQ_ADDR_4_SIZE;
+ unsigned int same_row_bank_q_4 : MH_DEBUG_REG35_SAME_ROW_BANK_q_4_SIZE;
+ unsigned int roq_valid_q_4 : MH_DEBUG_REG35_ROQ_VALID_q_4_SIZE;
+ unsigned int roq_mark_q_4 : MH_DEBUG_REG35_ROQ_MARK_q_4_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG35_TC_ROQ_RTR_q_SIZE;
+ unsigned int tc_mh_send : MH_DEBUG_REG35_TC_MH_send_SIZE;
+ } mh_debug_reg35_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg35_t f;
+} mh_debug_reg35_u;
+
+
+/*
+ * MH_DEBUG_REG36 struct
+ */
+
+#define MH_DEBUG_REG36_TC_MH_send_SIZE 1
+#define MH_DEBUG_REG36_TC_ROQ_RTR_q_SIZE 1
+#define MH_DEBUG_REG36_ROQ_MARK_q_5_SIZE 1
+#define MH_DEBUG_REG36_ROQ_VALID_q_5_SIZE 1
+#define MH_DEBUG_REG36_SAME_ROW_BANK_q_5_SIZE 1
+#define MH_DEBUG_REG36_ROQ_ADDR_5_SIZE 27
+
+#define MH_DEBUG_REG36_TC_MH_send_SHIFT 0
+#define MH_DEBUG_REG36_TC_ROQ_RTR_q_SHIFT 1
+#define MH_DEBUG_REG36_ROQ_MARK_q_5_SHIFT 2
+#define MH_DEBUG_REG36_ROQ_VALID_q_5_SHIFT 3
+#define MH_DEBUG_REG36_SAME_ROW_BANK_q_5_SHIFT 4
+#define MH_DEBUG_REG36_ROQ_ADDR_5_SHIFT 5
+
+#define MH_DEBUG_REG36_TC_MH_send_MASK 0x00000001
+#define MH_DEBUG_REG36_TC_ROQ_RTR_q_MASK 0x00000002
+#define MH_DEBUG_REG36_ROQ_MARK_q_5_MASK 0x00000004
+#define MH_DEBUG_REG36_ROQ_VALID_q_5_MASK 0x00000008
+#define MH_DEBUG_REG36_SAME_ROW_BANK_q_5_MASK 0x00000010
+#define MH_DEBUG_REG36_ROQ_ADDR_5_MASK 0xffffffe0
+
+#define MH_DEBUG_REG36_MASK \
+ (MH_DEBUG_REG36_TC_MH_send_MASK | \
+ MH_DEBUG_REG36_TC_ROQ_RTR_q_MASK | \
+ MH_DEBUG_REG36_ROQ_MARK_q_5_MASK | \
+ MH_DEBUG_REG36_ROQ_VALID_q_5_MASK | \
+ MH_DEBUG_REG36_SAME_ROW_BANK_q_5_MASK | \
+ MH_DEBUG_REG36_ROQ_ADDR_5_MASK)
+
+#define MH_DEBUG_REG36(tc_mh_send, tc_roq_rtr_q, roq_mark_q_5, roq_valid_q_5, same_row_bank_q_5, roq_addr_5) \
+ ((tc_mh_send << MH_DEBUG_REG36_TC_MH_send_SHIFT) | \
+ (tc_roq_rtr_q << MH_DEBUG_REG36_TC_ROQ_RTR_q_SHIFT) | \
+ (roq_mark_q_5 << MH_DEBUG_REG36_ROQ_MARK_q_5_SHIFT) | \
+ (roq_valid_q_5 << MH_DEBUG_REG36_ROQ_VALID_q_5_SHIFT) | \
+ (same_row_bank_q_5 << MH_DEBUG_REG36_SAME_ROW_BANK_q_5_SHIFT) | \
+ (roq_addr_5 << MH_DEBUG_REG36_ROQ_ADDR_5_SHIFT))
+
+#define MH_DEBUG_REG36_GET_TC_MH_send(mh_debug_reg36) \
+ ((mh_debug_reg36 & MH_DEBUG_REG36_TC_MH_send_MASK) >> MH_DEBUG_REG36_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG36_GET_TC_ROQ_RTR_q(mh_debug_reg36) \
+ ((mh_debug_reg36 & MH_DEBUG_REG36_TC_ROQ_RTR_q_MASK) >> MH_DEBUG_REG36_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG36_GET_ROQ_MARK_q_5(mh_debug_reg36) \
+ ((mh_debug_reg36 & MH_DEBUG_REG36_ROQ_MARK_q_5_MASK) >> MH_DEBUG_REG36_ROQ_MARK_q_5_SHIFT)
+#define MH_DEBUG_REG36_GET_ROQ_VALID_q_5(mh_debug_reg36) \
+ ((mh_debug_reg36 & MH_DEBUG_REG36_ROQ_VALID_q_5_MASK) >> MH_DEBUG_REG36_ROQ_VALID_q_5_SHIFT)
+#define MH_DEBUG_REG36_GET_SAME_ROW_BANK_q_5(mh_debug_reg36) \
+ ((mh_debug_reg36 & MH_DEBUG_REG36_SAME_ROW_BANK_q_5_MASK) >> MH_DEBUG_REG36_SAME_ROW_BANK_q_5_SHIFT)
+#define MH_DEBUG_REG36_GET_ROQ_ADDR_5(mh_debug_reg36) \
+ ((mh_debug_reg36 & MH_DEBUG_REG36_ROQ_ADDR_5_MASK) >> MH_DEBUG_REG36_ROQ_ADDR_5_SHIFT)
+
+#define MH_DEBUG_REG36_SET_TC_MH_send(mh_debug_reg36_reg, tc_mh_send) \
+ mh_debug_reg36_reg = (mh_debug_reg36_reg & ~MH_DEBUG_REG36_TC_MH_send_MASK) | (tc_mh_send << MH_DEBUG_REG36_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG36_SET_TC_ROQ_RTR_q(mh_debug_reg36_reg, tc_roq_rtr_q) \
+ mh_debug_reg36_reg = (mh_debug_reg36_reg & ~MH_DEBUG_REG36_TC_ROQ_RTR_q_MASK) | (tc_roq_rtr_q << MH_DEBUG_REG36_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG36_SET_ROQ_MARK_q_5(mh_debug_reg36_reg, roq_mark_q_5) \
+ mh_debug_reg36_reg = (mh_debug_reg36_reg & ~MH_DEBUG_REG36_ROQ_MARK_q_5_MASK) | (roq_mark_q_5 << MH_DEBUG_REG36_ROQ_MARK_q_5_SHIFT)
+#define MH_DEBUG_REG36_SET_ROQ_VALID_q_5(mh_debug_reg36_reg, roq_valid_q_5) \
+ mh_debug_reg36_reg = (mh_debug_reg36_reg & ~MH_DEBUG_REG36_ROQ_VALID_q_5_MASK) | (roq_valid_q_5 << MH_DEBUG_REG36_ROQ_VALID_q_5_SHIFT)
+#define MH_DEBUG_REG36_SET_SAME_ROW_BANK_q_5(mh_debug_reg36_reg, same_row_bank_q_5) \
+ mh_debug_reg36_reg = (mh_debug_reg36_reg & ~MH_DEBUG_REG36_SAME_ROW_BANK_q_5_MASK) | (same_row_bank_q_5 << MH_DEBUG_REG36_SAME_ROW_BANK_q_5_SHIFT)
+#define MH_DEBUG_REG36_SET_ROQ_ADDR_5(mh_debug_reg36_reg, roq_addr_5) \
+ mh_debug_reg36_reg = (mh_debug_reg36_reg & ~MH_DEBUG_REG36_ROQ_ADDR_5_MASK) | (roq_addr_5 << MH_DEBUG_REG36_ROQ_ADDR_5_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg36_t {
+ unsigned int tc_mh_send : MH_DEBUG_REG36_TC_MH_send_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG36_TC_ROQ_RTR_q_SIZE;
+ unsigned int roq_mark_q_5 : MH_DEBUG_REG36_ROQ_MARK_q_5_SIZE;
+ unsigned int roq_valid_q_5 : MH_DEBUG_REG36_ROQ_VALID_q_5_SIZE;
+ unsigned int same_row_bank_q_5 : MH_DEBUG_REG36_SAME_ROW_BANK_q_5_SIZE;
+ unsigned int roq_addr_5 : MH_DEBUG_REG36_ROQ_ADDR_5_SIZE;
+ } mh_debug_reg36_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg36_t {
+ unsigned int roq_addr_5 : MH_DEBUG_REG36_ROQ_ADDR_5_SIZE;
+ unsigned int same_row_bank_q_5 : MH_DEBUG_REG36_SAME_ROW_BANK_q_5_SIZE;
+ unsigned int roq_valid_q_5 : MH_DEBUG_REG36_ROQ_VALID_q_5_SIZE;
+ unsigned int roq_mark_q_5 : MH_DEBUG_REG36_ROQ_MARK_q_5_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG36_TC_ROQ_RTR_q_SIZE;
+ unsigned int tc_mh_send : MH_DEBUG_REG36_TC_MH_send_SIZE;
+ } mh_debug_reg36_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg36_t f;
+} mh_debug_reg36_u;
+
+
+/*
+ * MH_DEBUG_REG37 struct
+ */
+
+#define MH_DEBUG_REG37_TC_MH_send_SIZE 1
+#define MH_DEBUG_REG37_TC_ROQ_RTR_q_SIZE 1
+#define MH_DEBUG_REG37_ROQ_MARK_q_6_SIZE 1
+#define MH_DEBUG_REG37_ROQ_VALID_q_6_SIZE 1
+#define MH_DEBUG_REG37_SAME_ROW_BANK_q_6_SIZE 1
+#define MH_DEBUG_REG37_ROQ_ADDR_6_SIZE 27
+
+#define MH_DEBUG_REG37_TC_MH_send_SHIFT 0
+#define MH_DEBUG_REG37_TC_ROQ_RTR_q_SHIFT 1
+#define MH_DEBUG_REG37_ROQ_MARK_q_6_SHIFT 2
+#define MH_DEBUG_REG37_ROQ_VALID_q_6_SHIFT 3
+#define MH_DEBUG_REG37_SAME_ROW_BANK_q_6_SHIFT 4
+#define MH_DEBUG_REG37_ROQ_ADDR_6_SHIFT 5
+
+#define MH_DEBUG_REG37_TC_MH_send_MASK 0x00000001
+#define MH_DEBUG_REG37_TC_ROQ_RTR_q_MASK 0x00000002
+#define MH_DEBUG_REG37_ROQ_MARK_q_6_MASK 0x00000004
+#define MH_DEBUG_REG37_ROQ_VALID_q_6_MASK 0x00000008
+#define MH_DEBUG_REG37_SAME_ROW_BANK_q_6_MASK 0x00000010
+#define MH_DEBUG_REG37_ROQ_ADDR_6_MASK 0xffffffe0
+
+#define MH_DEBUG_REG37_MASK \
+ (MH_DEBUG_REG37_TC_MH_send_MASK | \
+ MH_DEBUG_REG37_TC_ROQ_RTR_q_MASK | \
+ MH_DEBUG_REG37_ROQ_MARK_q_6_MASK | \
+ MH_DEBUG_REG37_ROQ_VALID_q_6_MASK | \
+ MH_DEBUG_REG37_SAME_ROW_BANK_q_6_MASK | \
+ MH_DEBUG_REG37_ROQ_ADDR_6_MASK)
+
+#define MH_DEBUG_REG37(tc_mh_send, tc_roq_rtr_q, roq_mark_q_6, roq_valid_q_6, same_row_bank_q_6, roq_addr_6) \
+ ((tc_mh_send << MH_DEBUG_REG37_TC_MH_send_SHIFT) | \
+ (tc_roq_rtr_q << MH_DEBUG_REG37_TC_ROQ_RTR_q_SHIFT) | \
+ (roq_mark_q_6 << MH_DEBUG_REG37_ROQ_MARK_q_6_SHIFT) | \
+ (roq_valid_q_6 << MH_DEBUG_REG37_ROQ_VALID_q_6_SHIFT) | \
+ (same_row_bank_q_6 << MH_DEBUG_REG37_SAME_ROW_BANK_q_6_SHIFT) | \
+ (roq_addr_6 << MH_DEBUG_REG37_ROQ_ADDR_6_SHIFT))
+
+#define MH_DEBUG_REG37_GET_TC_MH_send(mh_debug_reg37) \
+ ((mh_debug_reg37 & MH_DEBUG_REG37_TC_MH_send_MASK) >> MH_DEBUG_REG37_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG37_GET_TC_ROQ_RTR_q(mh_debug_reg37) \
+ ((mh_debug_reg37 & MH_DEBUG_REG37_TC_ROQ_RTR_q_MASK) >> MH_DEBUG_REG37_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG37_GET_ROQ_MARK_q_6(mh_debug_reg37) \
+ ((mh_debug_reg37 & MH_DEBUG_REG37_ROQ_MARK_q_6_MASK) >> MH_DEBUG_REG37_ROQ_MARK_q_6_SHIFT)
+#define MH_DEBUG_REG37_GET_ROQ_VALID_q_6(mh_debug_reg37) \
+ ((mh_debug_reg37 & MH_DEBUG_REG37_ROQ_VALID_q_6_MASK) >> MH_DEBUG_REG37_ROQ_VALID_q_6_SHIFT)
+#define MH_DEBUG_REG37_GET_SAME_ROW_BANK_q_6(mh_debug_reg37) \
+ ((mh_debug_reg37 & MH_DEBUG_REG37_SAME_ROW_BANK_q_6_MASK) >> MH_DEBUG_REG37_SAME_ROW_BANK_q_6_SHIFT)
+#define MH_DEBUG_REG37_GET_ROQ_ADDR_6(mh_debug_reg37) \
+ ((mh_debug_reg37 & MH_DEBUG_REG37_ROQ_ADDR_6_MASK) >> MH_DEBUG_REG37_ROQ_ADDR_6_SHIFT)
+
+#define MH_DEBUG_REG37_SET_TC_MH_send(mh_debug_reg37_reg, tc_mh_send) \
+ mh_debug_reg37_reg = (mh_debug_reg37_reg & ~MH_DEBUG_REG37_TC_MH_send_MASK) | (tc_mh_send << MH_DEBUG_REG37_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG37_SET_TC_ROQ_RTR_q(mh_debug_reg37_reg, tc_roq_rtr_q) \
+ mh_debug_reg37_reg = (mh_debug_reg37_reg & ~MH_DEBUG_REG37_TC_ROQ_RTR_q_MASK) | (tc_roq_rtr_q << MH_DEBUG_REG37_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG37_SET_ROQ_MARK_q_6(mh_debug_reg37_reg, roq_mark_q_6) \
+ mh_debug_reg37_reg = (mh_debug_reg37_reg & ~MH_DEBUG_REG37_ROQ_MARK_q_6_MASK) | (roq_mark_q_6 << MH_DEBUG_REG37_ROQ_MARK_q_6_SHIFT)
+#define MH_DEBUG_REG37_SET_ROQ_VALID_q_6(mh_debug_reg37_reg, roq_valid_q_6) \
+ mh_debug_reg37_reg = (mh_debug_reg37_reg & ~MH_DEBUG_REG37_ROQ_VALID_q_6_MASK) | (roq_valid_q_6 << MH_DEBUG_REG37_ROQ_VALID_q_6_SHIFT)
+#define MH_DEBUG_REG37_SET_SAME_ROW_BANK_q_6(mh_debug_reg37_reg, same_row_bank_q_6) \
+ mh_debug_reg37_reg = (mh_debug_reg37_reg & ~MH_DEBUG_REG37_SAME_ROW_BANK_q_6_MASK) | (same_row_bank_q_6 << MH_DEBUG_REG37_SAME_ROW_BANK_q_6_SHIFT)
+#define MH_DEBUG_REG37_SET_ROQ_ADDR_6(mh_debug_reg37_reg, roq_addr_6) \
+ mh_debug_reg37_reg = (mh_debug_reg37_reg & ~MH_DEBUG_REG37_ROQ_ADDR_6_MASK) | (roq_addr_6 << MH_DEBUG_REG37_ROQ_ADDR_6_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg37_t {
+ unsigned int tc_mh_send : MH_DEBUG_REG37_TC_MH_send_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG37_TC_ROQ_RTR_q_SIZE;
+ unsigned int roq_mark_q_6 : MH_DEBUG_REG37_ROQ_MARK_q_6_SIZE;
+ unsigned int roq_valid_q_6 : MH_DEBUG_REG37_ROQ_VALID_q_6_SIZE;
+ unsigned int same_row_bank_q_6 : MH_DEBUG_REG37_SAME_ROW_BANK_q_6_SIZE;
+ unsigned int roq_addr_6 : MH_DEBUG_REG37_ROQ_ADDR_6_SIZE;
+ } mh_debug_reg37_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg37_t {
+ unsigned int roq_addr_6 : MH_DEBUG_REG37_ROQ_ADDR_6_SIZE;
+ unsigned int same_row_bank_q_6 : MH_DEBUG_REG37_SAME_ROW_BANK_q_6_SIZE;
+ unsigned int roq_valid_q_6 : MH_DEBUG_REG37_ROQ_VALID_q_6_SIZE;
+ unsigned int roq_mark_q_6 : MH_DEBUG_REG37_ROQ_MARK_q_6_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG37_TC_ROQ_RTR_q_SIZE;
+ unsigned int tc_mh_send : MH_DEBUG_REG37_TC_MH_send_SIZE;
+ } mh_debug_reg37_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg37_t f;
+} mh_debug_reg37_u;
+
+
+/*
+ * MH_DEBUG_REG38 struct
+ */
+
+#define MH_DEBUG_REG38_TC_MH_send_SIZE 1
+#define MH_DEBUG_REG38_TC_ROQ_RTR_q_SIZE 1
+#define MH_DEBUG_REG38_ROQ_MARK_q_7_SIZE 1
+#define MH_DEBUG_REG38_ROQ_VALID_q_7_SIZE 1
+#define MH_DEBUG_REG38_SAME_ROW_BANK_q_7_SIZE 1
+#define MH_DEBUG_REG38_ROQ_ADDR_7_SIZE 27
+
+#define MH_DEBUG_REG38_TC_MH_send_SHIFT 0
+#define MH_DEBUG_REG38_TC_ROQ_RTR_q_SHIFT 1
+#define MH_DEBUG_REG38_ROQ_MARK_q_7_SHIFT 2
+#define MH_DEBUG_REG38_ROQ_VALID_q_7_SHIFT 3
+#define MH_DEBUG_REG38_SAME_ROW_BANK_q_7_SHIFT 4
+#define MH_DEBUG_REG38_ROQ_ADDR_7_SHIFT 5
+
+#define MH_DEBUG_REG38_TC_MH_send_MASK 0x00000001
+#define MH_DEBUG_REG38_TC_ROQ_RTR_q_MASK 0x00000002
+#define MH_DEBUG_REG38_ROQ_MARK_q_7_MASK 0x00000004
+#define MH_DEBUG_REG38_ROQ_VALID_q_7_MASK 0x00000008
+#define MH_DEBUG_REG38_SAME_ROW_BANK_q_7_MASK 0x00000010
+#define MH_DEBUG_REG38_ROQ_ADDR_7_MASK 0xffffffe0
+
+#define MH_DEBUG_REG38_MASK \
+ (MH_DEBUG_REG38_TC_MH_send_MASK | \
+ MH_DEBUG_REG38_TC_ROQ_RTR_q_MASK | \
+ MH_DEBUG_REG38_ROQ_MARK_q_7_MASK | \
+ MH_DEBUG_REG38_ROQ_VALID_q_7_MASK | \
+ MH_DEBUG_REG38_SAME_ROW_BANK_q_7_MASK | \
+ MH_DEBUG_REG38_ROQ_ADDR_7_MASK)
+
+#define MH_DEBUG_REG38(tc_mh_send, tc_roq_rtr_q, roq_mark_q_7, roq_valid_q_7, same_row_bank_q_7, roq_addr_7) \
+ ((tc_mh_send << MH_DEBUG_REG38_TC_MH_send_SHIFT) | \
+ (tc_roq_rtr_q << MH_DEBUG_REG38_TC_ROQ_RTR_q_SHIFT) | \
+ (roq_mark_q_7 << MH_DEBUG_REG38_ROQ_MARK_q_7_SHIFT) | \
+ (roq_valid_q_7 << MH_DEBUG_REG38_ROQ_VALID_q_7_SHIFT) | \
+ (same_row_bank_q_7 << MH_DEBUG_REG38_SAME_ROW_BANK_q_7_SHIFT) | \
+ (roq_addr_7 << MH_DEBUG_REG38_ROQ_ADDR_7_SHIFT))
+
+#define MH_DEBUG_REG38_GET_TC_MH_send(mh_debug_reg38) \
+ ((mh_debug_reg38 & MH_DEBUG_REG38_TC_MH_send_MASK) >> MH_DEBUG_REG38_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG38_GET_TC_ROQ_RTR_q(mh_debug_reg38) \
+ ((mh_debug_reg38 & MH_DEBUG_REG38_TC_ROQ_RTR_q_MASK) >> MH_DEBUG_REG38_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG38_GET_ROQ_MARK_q_7(mh_debug_reg38) \
+ ((mh_debug_reg38 & MH_DEBUG_REG38_ROQ_MARK_q_7_MASK) >> MH_DEBUG_REG38_ROQ_MARK_q_7_SHIFT)
+#define MH_DEBUG_REG38_GET_ROQ_VALID_q_7(mh_debug_reg38) \
+ ((mh_debug_reg38 & MH_DEBUG_REG38_ROQ_VALID_q_7_MASK) >> MH_DEBUG_REG38_ROQ_VALID_q_7_SHIFT)
+#define MH_DEBUG_REG38_GET_SAME_ROW_BANK_q_7(mh_debug_reg38) \
+ ((mh_debug_reg38 & MH_DEBUG_REG38_SAME_ROW_BANK_q_7_MASK) >> MH_DEBUG_REG38_SAME_ROW_BANK_q_7_SHIFT)
+#define MH_DEBUG_REG38_GET_ROQ_ADDR_7(mh_debug_reg38) \
+ ((mh_debug_reg38 & MH_DEBUG_REG38_ROQ_ADDR_7_MASK) >> MH_DEBUG_REG38_ROQ_ADDR_7_SHIFT)
+
+#define MH_DEBUG_REG38_SET_TC_MH_send(mh_debug_reg38_reg, tc_mh_send) \
+ mh_debug_reg38_reg = (mh_debug_reg38_reg & ~MH_DEBUG_REG38_TC_MH_send_MASK) | (tc_mh_send << MH_DEBUG_REG38_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG38_SET_TC_ROQ_RTR_q(mh_debug_reg38_reg, tc_roq_rtr_q) \
+ mh_debug_reg38_reg = (mh_debug_reg38_reg & ~MH_DEBUG_REG38_TC_ROQ_RTR_q_MASK) | (tc_roq_rtr_q << MH_DEBUG_REG38_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG38_SET_ROQ_MARK_q_7(mh_debug_reg38_reg, roq_mark_q_7) \
+ mh_debug_reg38_reg = (mh_debug_reg38_reg & ~MH_DEBUG_REG38_ROQ_MARK_q_7_MASK) | (roq_mark_q_7 << MH_DEBUG_REG38_ROQ_MARK_q_7_SHIFT)
+#define MH_DEBUG_REG38_SET_ROQ_VALID_q_7(mh_debug_reg38_reg, roq_valid_q_7) \
+ mh_debug_reg38_reg = (mh_debug_reg38_reg & ~MH_DEBUG_REG38_ROQ_VALID_q_7_MASK) | (roq_valid_q_7 << MH_DEBUG_REG38_ROQ_VALID_q_7_SHIFT)
+#define MH_DEBUG_REG38_SET_SAME_ROW_BANK_q_7(mh_debug_reg38_reg, same_row_bank_q_7) \
+ mh_debug_reg38_reg = (mh_debug_reg38_reg & ~MH_DEBUG_REG38_SAME_ROW_BANK_q_7_MASK) | (same_row_bank_q_7 << MH_DEBUG_REG38_SAME_ROW_BANK_q_7_SHIFT)
+#define MH_DEBUG_REG38_SET_ROQ_ADDR_7(mh_debug_reg38_reg, roq_addr_7) \
+ mh_debug_reg38_reg = (mh_debug_reg38_reg & ~MH_DEBUG_REG38_ROQ_ADDR_7_MASK) | (roq_addr_7 << MH_DEBUG_REG38_ROQ_ADDR_7_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg38_t {
+ unsigned int tc_mh_send : MH_DEBUG_REG38_TC_MH_send_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG38_TC_ROQ_RTR_q_SIZE;
+ unsigned int roq_mark_q_7 : MH_DEBUG_REG38_ROQ_MARK_q_7_SIZE;
+ unsigned int roq_valid_q_7 : MH_DEBUG_REG38_ROQ_VALID_q_7_SIZE;
+ unsigned int same_row_bank_q_7 : MH_DEBUG_REG38_SAME_ROW_BANK_q_7_SIZE;
+ unsigned int roq_addr_7 : MH_DEBUG_REG38_ROQ_ADDR_7_SIZE;
+ } mh_debug_reg38_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg38_t {
+ unsigned int roq_addr_7 : MH_DEBUG_REG38_ROQ_ADDR_7_SIZE;
+ unsigned int same_row_bank_q_7 : MH_DEBUG_REG38_SAME_ROW_BANK_q_7_SIZE;
+ unsigned int roq_valid_q_7 : MH_DEBUG_REG38_ROQ_VALID_q_7_SIZE;
+ unsigned int roq_mark_q_7 : MH_DEBUG_REG38_ROQ_MARK_q_7_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG38_TC_ROQ_RTR_q_SIZE;
+ unsigned int tc_mh_send : MH_DEBUG_REG38_TC_MH_send_SIZE;
+ } mh_debug_reg38_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg38_t f;
+} mh_debug_reg38_u;
+
+
+/*
+ * MH_DEBUG_REG39 struct
+ */
+
+#define MH_DEBUG_REG39_ARB_WE_SIZE 1
+#define MH_DEBUG_REG39_MMU_RTR_SIZE 1
+#define MH_DEBUG_REG39_ARB_ID_q_SIZE 3
+#define MH_DEBUG_REG39_ARB_WRITE_q_SIZE 1
+#define MH_DEBUG_REG39_ARB_BLEN_q_SIZE 1
+#define MH_DEBUG_REG39_ARQ_CTRL_EMPTY_SIZE 1
+#define MH_DEBUG_REG39_ARQ_FIFO_CNT_q_SIZE 3
+#define MH_DEBUG_REG39_MMU_WE_SIZE 1
+#define MH_DEBUG_REG39_ARQ_RTR_SIZE 1
+#define MH_DEBUG_REG39_MMU_ID_SIZE 3
+#define MH_DEBUG_REG39_MMU_WRITE_SIZE 1
+#define MH_DEBUG_REG39_MMU_BLEN_SIZE 1
+
+#define MH_DEBUG_REG39_ARB_WE_SHIFT 0
+#define MH_DEBUG_REG39_MMU_RTR_SHIFT 1
+#define MH_DEBUG_REG39_ARB_ID_q_SHIFT 2
+#define MH_DEBUG_REG39_ARB_WRITE_q_SHIFT 5
+#define MH_DEBUG_REG39_ARB_BLEN_q_SHIFT 6
+#define MH_DEBUG_REG39_ARQ_CTRL_EMPTY_SHIFT 7
+#define MH_DEBUG_REG39_ARQ_FIFO_CNT_q_SHIFT 8
+#define MH_DEBUG_REG39_MMU_WE_SHIFT 11
+#define MH_DEBUG_REG39_ARQ_RTR_SHIFT 12
+#define MH_DEBUG_REG39_MMU_ID_SHIFT 13
+#define MH_DEBUG_REG39_MMU_WRITE_SHIFT 16
+#define MH_DEBUG_REG39_MMU_BLEN_SHIFT 17
+
+#define MH_DEBUG_REG39_ARB_WE_MASK 0x00000001
+#define MH_DEBUG_REG39_MMU_RTR_MASK 0x00000002
+#define MH_DEBUG_REG39_ARB_ID_q_MASK 0x0000001c
+#define MH_DEBUG_REG39_ARB_WRITE_q_MASK 0x00000020
+#define MH_DEBUG_REG39_ARB_BLEN_q_MASK 0x00000040
+#define MH_DEBUG_REG39_ARQ_CTRL_EMPTY_MASK 0x00000080
+#define MH_DEBUG_REG39_ARQ_FIFO_CNT_q_MASK 0x00000700
+#define MH_DEBUG_REG39_MMU_WE_MASK 0x00000800
+#define MH_DEBUG_REG39_ARQ_RTR_MASK 0x00001000
+#define MH_DEBUG_REG39_MMU_ID_MASK 0x0000e000
+#define MH_DEBUG_REG39_MMU_WRITE_MASK 0x00010000
+#define MH_DEBUG_REG39_MMU_BLEN_MASK 0x00020000
+
+#define MH_DEBUG_REG39_MASK \
+ (MH_DEBUG_REG39_ARB_WE_MASK | \
+ MH_DEBUG_REG39_MMU_RTR_MASK | \
+ MH_DEBUG_REG39_ARB_ID_q_MASK | \
+ MH_DEBUG_REG39_ARB_WRITE_q_MASK | \
+ MH_DEBUG_REG39_ARB_BLEN_q_MASK | \
+ MH_DEBUG_REG39_ARQ_CTRL_EMPTY_MASK | \
+ MH_DEBUG_REG39_ARQ_FIFO_CNT_q_MASK | \
+ MH_DEBUG_REG39_MMU_WE_MASK | \
+ MH_DEBUG_REG39_ARQ_RTR_MASK | \
+ MH_DEBUG_REG39_MMU_ID_MASK | \
+ MH_DEBUG_REG39_MMU_WRITE_MASK | \
+ MH_DEBUG_REG39_MMU_BLEN_MASK)
+
+#define MH_DEBUG_REG39(arb_we, mmu_rtr, arb_id_q, arb_write_q, arb_blen_q, arq_ctrl_empty, arq_fifo_cnt_q, mmu_we, arq_rtr, mmu_id, mmu_write, mmu_blen) \
+ ((arb_we << MH_DEBUG_REG39_ARB_WE_SHIFT) | \
+ (mmu_rtr << MH_DEBUG_REG39_MMU_RTR_SHIFT) | \
+ (arb_id_q << MH_DEBUG_REG39_ARB_ID_q_SHIFT) | \
+ (arb_write_q << MH_DEBUG_REG39_ARB_WRITE_q_SHIFT) | \
+ (arb_blen_q << MH_DEBUG_REG39_ARB_BLEN_q_SHIFT) | \
+ (arq_ctrl_empty << MH_DEBUG_REG39_ARQ_CTRL_EMPTY_SHIFT) | \
+ (arq_fifo_cnt_q << MH_DEBUG_REG39_ARQ_FIFO_CNT_q_SHIFT) | \
+ (mmu_we << MH_DEBUG_REG39_MMU_WE_SHIFT) | \
+ (arq_rtr << MH_DEBUG_REG39_ARQ_RTR_SHIFT) | \
+ (mmu_id << MH_DEBUG_REG39_MMU_ID_SHIFT) | \
+ (mmu_write << MH_DEBUG_REG39_MMU_WRITE_SHIFT) | \
+ (mmu_blen << MH_DEBUG_REG39_MMU_BLEN_SHIFT))
+
+#define MH_DEBUG_REG39_GET_ARB_WE(mh_debug_reg39) \
+ ((mh_debug_reg39 & MH_DEBUG_REG39_ARB_WE_MASK) >> MH_DEBUG_REG39_ARB_WE_SHIFT)
+#define MH_DEBUG_REG39_GET_MMU_RTR(mh_debug_reg39) \
+ ((mh_debug_reg39 & MH_DEBUG_REG39_MMU_RTR_MASK) >> MH_DEBUG_REG39_MMU_RTR_SHIFT)
+#define MH_DEBUG_REG39_GET_ARB_ID_q(mh_debug_reg39) \
+ ((mh_debug_reg39 & MH_DEBUG_REG39_ARB_ID_q_MASK) >> MH_DEBUG_REG39_ARB_ID_q_SHIFT)
+#define MH_DEBUG_REG39_GET_ARB_WRITE_q(mh_debug_reg39) \
+ ((mh_debug_reg39 & MH_DEBUG_REG39_ARB_WRITE_q_MASK) >> MH_DEBUG_REG39_ARB_WRITE_q_SHIFT)
+#define MH_DEBUG_REG39_GET_ARB_BLEN_q(mh_debug_reg39) \
+ ((mh_debug_reg39 & MH_DEBUG_REG39_ARB_BLEN_q_MASK) >> MH_DEBUG_REG39_ARB_BLEN_q_SHIFT)
+#define MH_DEBUG_REG39_GET_ARQ_CTRL_EMPTY(mh_debug_reg39) \
+ ((mh_debug_reg39 & MH_DEBUG_REG39_ARQ_CTRL_EMPTY_MASK) >> MH_DEBUG_REG39_ARQ_CTRL_EMPTY_SHIFT)
+#define MH_DEBUG_REG39_GET_ARQ_FIFO_CNT_q(mh_debug_reg39) \
+ ((mh_debug_reg39 & MH_DEBUG_REG39_ARQ_FIFO_CNT_q_MASK) >> MH_DEBUG_REG39_ARQ_FIFO_CNT_q_SHIFT)
+#define MH_DEBUG_REG39_GET_MMU_WE(mh_debug_reg39) \
+ ((mh_debug_reg39 & MH_DEBUG_REG39_MMU_WE_MASK) >> MH_DEBUG_REG39_MMU_WE_SHIFT)
+#define MH_DEBUG_REG39_GET_ARQ_RTR(mh_debug_reg39) \
+ ((mh_debug_reg39 & MH_DEBUG_REG39_ARQ_RTR_MASK) >> MH_DEBUG_REG39_ARQ_RTR_SHIFT)
+#define MH_DEBUG_REG39_GET_MMU_ID(mh_debug_reg39) \
+ ((mh_debug_reg39 & MH_DEBUG_REG39_MMU_ID_MASK) >> MH_DEBUG_REG39_MMU_ID_SHIFT)
+#define MH_DEBUG_REG39_GET_MMU_WRITE(mh_debug_reg39) \
+ ((mh_debug_reg39 & MH_DEBUG_REG39_MMU_WRITE_MASK) >> MH_DEBUG_REG39_MMU_WRITE_SHIFT)
+#define MH_DEBUG_REG39_GET_MMU_BLEN(mh_debug_reg39) \
+ ((mh_debug_reg39 & MH_DEBUG_REG39_MMU_BLEN_MASK) >> MH_DEBUG_REG39_MMU_BLEN_SHIFT)
+
+#define MH_DEBUG_REG39_SET_ARB_WE(mh_debug_reg39_reg, arb_we) \
+ mh_debug_reg39_reg = (mh_debug_reg39_reg & ~MH_DEBUG_REG39_ARB_WE_MASK) | (arb_we << MH_DEBUG_REG39_ARB_WE_SHIFT)
+#define MH_DEBUG_REG39_SET_MMU_RTR(mh_debug_reg39_reg, mmu_rtr) \
+ mh_debug_reg39_reg = (mh_debug_reg39_reg & ~MH_DEBUG_REG39_MMU_RTR_MASK) | (mmu_rtr << MH_DEBUG_REG39_MMU_RTR_SHIFT)
+#define MH_DEBUG_REG39_SET_ARB_ID_q(mh_debug_reg39_reg, arb_id_q) \
+ mh_debug_reg39_reg = (mh_debug_reg39_reg & ~MH_DEBUG_REG39_ARB_ID_q_MASK) | (arb_id_q << MH_DEBUG_REG39_ARB_ID_q_SHIFT)
+#define MH_DEBUG_REG39_SET_ARB_WRITE_q(mh_debug_reg39_reg, arb_write_q) \
+ mh_debug_reg39_reg = (mh_debug_reg39_reg & ~MH_DEBUG_REG39_ARB_WRITE_q_MASK) | (arb_write_q << MH_DEBUG_REG39_ARB_WRITE_q_SHIFT)
+#define MH_DEBUG_REG39_SET_ARB_BLEN_q(mh_debug_reg39_reg, arb_blen_q) \
+ mh_debug_reg39_reg = (mh_debug_reg39_reg & ~MH_DEBUG_REG39_ARB_BLEN_q_MASK) | (arb_blen_q << MH_DEBUG_REG39_ARB_BLEN_q_SHIFT)
+#define MH_DEBUG_REG39_SET_ARQ_CTRL_EMPTY(mh_debug_reg39_reg, arq_ctrl_empty) \
+ mh_debug_reg39_reg = (mh_debug_reg39_reg & ~MH_DEBUG_REG39_ARQ_CTRL_EMPTY_MASK) | (arq_ctrl_empty << MH_DEBUG_REG39_ARQ_CTRL_EMPTY_SHIFT)
+#define MH_DEBUG_REG39_SET_ARQ_FIFO_CNT_q(mh_debug_reg39_reg, arq_fifo_cnt_q) \
+ mh_debug_reg39_reg = (mh_debug_reg39_reg & ~MH_DEBUG_REG39_ARQ_FIFO_CNT_q_MASK) | (arq_fifo_cnt_q << MH_DEBUG_REG39_ARQ_FIFO_CNT_q_SHIFT)
+#define MH_DEBUG_REG39_SET_MMU_WE(mh_debug_reg39_reg, mmu_we) \
+ mh_debug_reg39_reg = (mh_debug_reg39_reg & ~MH_DEBUG_REG39_MMU_WE_MASK) | (mmu_we << MH_DEBUG_REG39_MMU_WE_SHIFT)
+#define MH_DEBUG_REG39_SET_ARQ_RTR(mh_debug_reg39_reg, arq_rtr) \
+ mh_debug_reg39_reg = (mh_debug_reg39_reg & ~MH_DEBUG_REG39_ARQ_RTR_MASK) | (arq_rtr << MH_DEBUG_REG39_ARQ_RTR_SHIFT)
+#define MH_DEBUG_REG39_SET_MMU_ID(mh_debug_reg39_reg, mmu_id) \
+ mh_debug_reg39_reg = (mh_debug_reg39_reg & ~MH_DEBUG_REG39_MMU_ID_MASK) | (mmu_id << MH_DEBUG_REG39_MMU_ID_SHIFT)
+#define MH_DEBUG_REG39_SET_MMU_WRITE(mh_debug_reg39_reg, mmu_write) \
+ mh_debug_reg39_reg = (mh_debug_reg39_reg & ~MH_DEBUG_REG39_MMU_WRITE_MASK) | (mmu_write << MH_DEBUG_REG39_MMU_WRITE_SHIFT)
+#define MH_DEBUG_REG39_SET_MMU_BLEN(mh_debug_reg39_reg, mmu_blen) \
+ mh_debug_reg39_reg = (mh_debug_reg39_reg & ~MH_DEBUG_REG39_MMU_BLEN_MASK) | (mmu_blen << MH_DEBUG_REG39_MMU_BLEN_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg39_t {
+ unsigned int arb_we : MH_DEBUG_REG39_ARB_WE_SIZE;
+ unsigned int mmu_rtr : MH_DEBUG_REG39_MMU_RTR_SIZE;
+ unsigned int arb_id_q : MH_DEBUG_REG39_ARB_ID_q_SIZE;
+ unsigned int arb_write_q : MH_DEBUG_REG39_ARB_WRITE_q_SIZE;
+ unsigned int arb_blen_q : MH_DEBUG_REG39_ARB_BLEN_q_SIZE;
+ unsigned int arq_ctrl_empty : MH_DEBUG_REG39_ARQ_CTRL_EMPTY_SIZE;
+ unsigned int arq_fifo_cnt_q : MH_DEBUG_REG39_ARQ_FIFO_CNT_q_SIZE;
+ unsigned int mmu_we : MH_DEBUG_REG39_MMU_WE_SIZE;
+ unsigned int arq_rtr : MH_DEBUG_REG39_ARQ_RTR_SIZE;
+ unsigned int mmu_id : MH_DEBUG_REG39_MMU_ID_SIZE;
+ unsigned int mmu_write : MH_DEBUG_REG39_MMU_WRITE_SIZE;
+ unsigned int mmu_blen : MH_DEBUG_REG39_MMU_BLEN_SIZE;
+ unsigned int : 14;
+ } mh_debug_reg39_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg39_t {
+ unsigned int : 14;
+ unsigned int mmu_blen : MH_DEBUG_REG39_MMU_BLEN_SIZE;
+ unsigned int mmu_write : MH_DEBUG_REG39_MMU_WRITE_SIZE;
+ unsigned int mmu_id : MH_DEBUG_REG39_MMU_ID_SIZE;
+ unsigned int arq_rtr : MH_DEBUG_REG39_ARQ_RTR_SIZE;
+ unsigned int mmu_we : MH_DEBUG_REG39_MMU_WE_SIZE;
+ unsigned int arq_fifo_cnt_q : MH_DEBUG_REG39_ARQ_FIFO_CNT_q_SIZE;
+ unsigned int arq_ctrl_empty : MH_DEBUG_REG39_ARQ_CTRL_EMPTY_SIZE;
+ unsigned int arb_blen_q : MH_DEBUG_REG39_ARB_BLEN_q_SIZE;
+ unsigned int arb_write_q : MH_DEBUG_REG39_ARB_WRITE_q_SIZE;
+ unsigned int arb_id_q : MH_DEBUG_REG39_ARB_ID_q_SIZE;
+ unsigned int mmu_rtr : MH_DEBUG_REG39_MMU_RTR_SIZE;
+ unsigned int arb_we : MH_DEBUG_REG39_ARB_WE_SIZE;
+ } mh_debug_reg39_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg39_t f;
+} mh_debug_reg39_u;
+
+
+/*
+ * MH_DEBUG_REG40 struct
+ */
+
+#define MH_DEBUG_REG40_ARB_WE_SIZE 1
+#define MH_DEBUG_REG40_ARB_ID_q_SIZE 3
+#define MH_DEBUG_REG40_ARB_VAD_q_SIZE 28
+
+#define MH_DEBUG_REG40_ARB_WE_SHIFT 0
+#define MH_DEBUG_REG40_ARB_ID_q_SHIFT 1
+#define MH_DEBUG_REG40_ARB_VAD_q_SHIFT 4
+
+#define MH_DEBUG_REG40_ARB_WE_MASK 0x00000001
+#define MH_DEBUG_REG40_ARB_ID_q_MASK 0x0000000e
+#define MH_DEBUG_REG40_ARB_VAD_q_MASK 0xfffffff0
+
+#define MH_DEBUG_REG40_MASK \
+ (MH_DEBUG_REG40_ARB_WE_MASK | \
+ MH_DEBUG_REG40_ARB_ID_q_MASK | \
+ MH_DEBUG_REG40_ARB_VAD_q_MASK)
+
+#define MH_DEBUG_REG40(arb_we, arb_id_q, arb_vad_q) \
+ ((arb_we << MH_DEBUG_REG40_ARB_WE_SHIFT) | \
+ (arb_id_q << MH_DEBUG_REG40_ARB_ID_q_SHIFT) | \
+ (arb_vad_q << MH_DEBUG_REG40_ARB_VAD_q_SHIFT))
+
+#define MH_DEBUG_REG40_GET_ARB_WE(mh_debug_reg40) \
+ ((mh_debug_reg40 & MH_DEBUG_REG40_ARB_WE_MASK) >> MH_DEBUG_REG40_ARB_WE_SHIFT)
+#define MH_DEBUG_REG40_GET_ARB_ID_q(mh_debug_reg40) \
+ ((mh_debug_reg40 & MH_DEBUG_REG40_ARB_ID_q_MASK) >> MH_DEBUG_REG40_ARB_ID_q_SHIFT)
+#define MH_DEBUG_REG40_GET_ARB_VAD_q(mh_debug_reg40) \
+ ((mh_debug_reg40 & MH_DEBUG_REG40_ARB_VAD_q_MASK) >> MH_DEBUG_REG40_ARB_VAD_q_SHIFT)
+
+#define MH_DEBUG_REG40_SET_ARB_WE(mh_debug_reg40_reg, arb_we) \
+ mh_debug_reg40_reg = (mh_debug_reg40_reg & ~MH_DEBUG_REG40_ARB_WE_MASK) | (arb_we << MH_DEBUG_REG40_ARB_WE_SHIFT)
+#define MH_DEBUG_REG40_SET_ARB_ID_q(mh_debug_reg40_reg, arb_id_q) \
+ mh_debug_reg40_reg = (mh_debug_reg40_reg & ~MH_DEBUG_REG40_ARB_ID_q_MASK) | (arb_id_q << MH_DEBUG_REG40_ARB_ID_q_SHIFT)
+#define MH_DEBUG_REG40_SET_ARB_VAD_q(mh_debug_reg40_reg, arb_vad_q) \
+ mh_debug_reg40_reg = (mh_debug_reg40_reg & ~MH_DEBUG_REG40_ARB_VAD_q_MASK) | (arb_vad_q << MH_DEBUG_REG40_ARB_VAD_q_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg40_t {
+ unsigned int arb_we : MH_DEBUG_REG40_ARB_WE_SIZE;
+ unsigned int arb_id_q : MH_DEBUG_REG40_ARB_ID_q_SIZE;
+ unsigned int arb_vad_q : MH_DEBUG_REG40_ARB_VAD_q_SIZE;
+ } mh_debug_reg40_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg40_t {
+ unsigned int arb_vad_q : MH_DEBUG_REG40_ARB_VAD_q_SIZE;
+ unsigned int arb_id_q : MH_DEBUG_REG40_ARB_ID_q_SIZE;
+ unsigned int arb_we : MH_DEBUG_REG40_ARB_WE_SIZE;
+ } mh_debug_reg40_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg40_t f;
+} mh_debug_reg40_u;
+
+
+/*
+ * MH_DEBUG_REG41 struct
+ */
+
+#define MH_DEBUG_REG41_MMU_WE_SIZE 1
+#define MH_DEBUG_REG41_MMU_ID_SIZE 3
+#define MH_DEBUG_REG41_MMU_PAD_SIZE 28
+
+#define MH_DEBUG_REG41_MMU_WE_SHIFT 0
+#define MH_DEBUG_REG41_MMU_ID_SHIFT 1
+#define MH_DEBUG_REG41_MMU_PAD_SHIFT 4
+
+#define MH_DEBUG_REG41_MMU_WE_MASK 0x00000001
+#define MH_DEBUG_REG41_MMU_ID_MASK 0x0000000e
+#define MH_DEBUG_REG41_MMU_PAD_MASK 0xfffffff0
+
+#define MH_DEBUG_REG41_MASK \
+ (MH_DEBUG_REG41_MMU_WE_MASK | \
+ MH_DEBUG_REG41_MMU_ID_MASK | \
+ MH_DEBUG_REG41_MMU_PAD_MASK)
+
+#define MH_DEBUG_REG41(mmu_we, mmu_id, mmu_pad) \
+ ((mmu_we << MH_DEBUG_REG41_MMU_WE_SHIFT) | \
+ (mmu_id << MH_DEBUG_REG41_MMU_ID_SHIFT) | \
+ (mmu_pad << MH_DEBUG_REG41_MMU_PAD_SHIFT))
+
+#define MH_DEBUG_REG41_GET_MMU_WE(mh_debug_reg41) \
+ ((mh_debug_reg41 & MH_DEBUG_REG41_MMU_WE_MASK) >> MH_DEBUG_REG41_MMU_WE_SHIFT)
+#define MH_DEBUG_REG41_GET_MMU_ID(mh_debug_reg41) \
+ ((mh_debug_reg41 & MH_DEBUG_REG41_MMU_ID_MASK) >> MH_DEBUG_REG41_MMU_ID_SHIFT)
+#define MH_DEBUG_REG41_GET_MMU_PAD(mh_debug_reg41) \
+ ((mh_debug_reg41 & MH_DEBUG_REG41_MMU_PAD_MASK) >> MH_DEBUG_REG41_MMU_PAD_SHIFT)
+
+#define MH_DEBUG_REG41_SET_MMU_WE(mh_debug_reg41_reg, mmu_we) \
+ mh_debug_reg41_reg = (mh_debug_reg41_reg & ~MH_DEBUG_REG41_MMU_WE_MASK) | (mmu_we << MH_DEBUG_REG41_MMU_WE_SHIFT)
+#define MH_DEBUG_REG41_SET_MMU_ID(mh_debug_reg41_reg, mmu_id) \
+ mh_debug_reg41_reg = (mh_debug_reg41_reg & ~MH_DEBUG_REG41_MMU_ID_MASK) | (mmu_id << MH_DEBUG_REG41_MMU_ID_SHIFT)
+#define MH_DEBUG_REG41_SET_MMU_PAD(mh_debug_reg41_reg, mmu_pad) \
+ mh_debug_reg41_reg = (mh_debug_reg41_reg & ~MH_DEBUG_REG41_MMU_PAD_MASK) | (mmu_pad << MH_DEBUG_REG41_MMU_PAD_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg41_t {
+ unsigned int mmu_we : MH_DEBUG_REG41_MMU_WE_SIZE;
+ unsigned int mmu_id : MH_DEBUG_REG41_MMU_ID_SIZE;
+ unsigned int mmu_pad : MH_DEBUG_REG41_MMU_PAD_SIZE;
+ } mh_debug_reg41_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg41_t {
+ unsigned int mmu_pad : MH_DEBUG_REG41_MMU_PAD_SIZE;
+ unsigned int mmu_id : MH_DEBUG_REG41_MMU_ID_SIZE;
+ unsigned int mmu_we : MH_DEBUG_REG41_MMU_WE_SIZE;
+ } mh_debug_reg41_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg41_t f;
+} mh_debug_reg41_u;
+
+
+/*
+ * MH_DEBUG_REG42 struct
+ */
+
+#define MH_DEBUG_REG42_WDB_WE_SIZE 1
+#define MH_DEBUG_REG42_WDB_RTR_SKID_SIZE 1
+#define MH_DEBUG_REG42_ARB_WSTRB_q_SIZE 8
+#define MH_DEBUG_REG42_ARB_WLAST_SIZE 1
+#define MH_DEBUG_REG42_WDB_CTRL_EMPTY_SIZE 1
+#define MH_DEBUG_REG42_WDB_FIFO_CNT_q_SIZE 5
+#define MH_DEBUG_REG42_WDC_WDB_RE_q_SIZE 1
+#define MH_DEBUG_REG42_WDB_WDC_WID_SIZE 3
+#define MH_DEBUG_REG42_WDB_WDC_WLAST_SIZE 1
+#define MH_DEBUG_REG42_WDB_WDC_WSTRB_SIZE 8
+
+#define MH_DEBUG_REG42_WDB_WE_SHIFT 0
+#define MH_DEBUG_REG42_WDB_RTR_SKID_SHIFT 1
+#define MH_DEBUG_REG42_ARB_WSTRB_q_SHIFT 2
+#define MH_DEBUG_REG42_ARB_WLAST_SHIFT 10
+#define MH_DEBUG_REG42_WDB_CTRL_EMPTY_SHIFT 11
+#define MH_DEBUG_REG42_WDB_FIFO_CNT_q_SHIFT 12
+#define MH_DEBUG_REG42_WDC_WDB_RE_q_SHIFT 17
+#define MH_DEBUG_REG42_WDB_WDC_WID_SHIFT 18
+#define MH_DEBUG_REG42_WDB_WDC_WLAST_SHIFT 21
+#define MH_DEBUG_REG42_WDB_WDC_WSTRB_SHIFT 22
+
+#define MH_DEBUG_REG42_WDB_WE_MASK 0x00000001
+#define MH_DEBUG_REG42_WDB_RTR_SKID_MASK 0x00000002
+#define MH_DEBUG_REG42_ARB_WSTRB_q_MASK 0x000003fc
+#define MH_DEBUG_REG42_ARB_WLAST_MASK 0x00000400
+#define MH_DEBUG_REG42_WDB_CTRL_EMPTY_MASK 0x00000800
+#define MH_DEBUG_REG42_WDB_FIFO_CNT_q_MASK 0x0001f000
+#define MH_DEBUG_REG42_WDC_WDB_RE_q_MASK 0x00020000
+#define MH_DEBUG_REG42_WDB_WDC_WID_MASK 0x001c0000
+#define MH_DEBUG_REG42_WDB_WDC_WLAST_MASK 0x00200000
+#define MH_DEBUG_REG42_WDB_WDC_WSTRB_MASK 0x3fc00000
+
+#define MH_DEBUG_REG42_MASK \
+ (MH_DEBUG_REG42_WDB_WE_MASK | \
+ MH_DEBUG_REG42_WDB_RTR_SKID_MASK | \
+ MH_DEBUG_REG42_ARB_WSTRB_q_MASK | \
+ MH_DEBUG_REG42_ARB_WLAST_MASK | \
+ MH_DEBUG_REG42_WDB_CTRL_EMPTY_MASK | \
+ MH_DEBUG_REG42_WDB_FIFO_CNT_q_MASK | \
+ MH_DEBUG_REG42_WDC_WDB_RE_q_MASK | \
+ MH_DEBUG_REG42_WDB_WDC_WID_MASK | \
+ MH_DEBUG_REG42_WDB_WDC_WLAST_MASK | \
+ MH_DEBUG_REG42_WDB_WDC_WSTRB_MASK)
+
+#define MH_DEBUG_REG42(wdb_we, wdb_rtr_skid, arb_wstrb_q, arb_wlast, wdb_ctrl_empty, wdb_fifo_cnt_q, wdc_wdb_re_q, wdb_wdc_wid, wdb_wdc_wlast, wdb_wdc_wstrb) \
+ ((wdb_we << MH_DEBUG_REG42_WDB_WE_SHIFT) | \
+ (wdb_rtr_skid << MH_DEBUG_REG42_WDB_RTR_SKID_SHIFT) | \
+ (arb_wstrb_q << MH_DEBUG_REG42_ARB_WSTRB_q_SHIFT) | \
+ (arb_wlast << MH_DEBUG_REG42_ARB_WLAST_SHIFT) | \
+ (wdb_ctrl_empty << MH_DEBUG_REG42_WDB_CTRL_EMPTY_SHIFT) | \
+ (wdb_fifo_cnt_q << MH_DEBUG_REG42_WDB_FIFO_CNT_q_SHIFT) | \
+ (wdc_wdb_re_q << MH_DEBUG_REG42_WDC_WDB_RE_q_SHIFT) | \
+ (wdb_wdc_wid << MH_DEBUG_REG42_WDB_WDC_WID_SHIFT) | \
+ (wdb_wdc_wlast << MH_DEBUG_REG42_WDB_WDC_WLAST_SHIFT) | \
+ (wdb_wdc_wstrb << MH_DEBUG_REG42_WDB_WDC_WSTRB_SHIFT))
+
+#define MH_DEBUG_REG42_GET_WDB_WE(mh_debug_reg42) \
+ ((mh_debug_reg42 & MH_DEBUG_REG42_WDB_WE_MASK) >> MH_DEBUG_REG42_WDB_WE_SHIFT)
+#define MH_DEBUG_REG42_GET_WDB_RTR_SKID(mh_debug_reg42) \
+ ((mh_debug_reg42 & MH_DEBUG_REG42_WDB_RTR_SKID_MASK) >> MH_DEBUG_REG42_WDB_RTR_SKID_SHIFT)
+#define MH_DEBUG_REG42_GET_ARB_WSTRB_q(mh_debug_reg42) \
+ ((mh_debug_reg42 & MH_DEBUG_REG42_ARB_WSTRB_q_MASK) >> MH_DEBUG_REG42_ARB_WSTRB_q_SHIFT)
+#define MH_DEBUG_REG42_GET_ARB_WLAST(mh_debug_reg42) \
+ ((mh_debug_reg42 & MH_DEBUG_REG42_ARB_WLAST_MASK) >> MH_DEBUG_REG42_ARB_WLAST_SHIFT)
+#define MH_DEBUG_REG42_GET_WDB_CTRL_EMPTY(mh_debug_reg42) \
+ ((mh_debug_reg42 & MH_DEBUG_REG42_WDB_CTRL_EMPTY_MASK) >> MH_DEBUG_REG42_WDB_CTRL_EMPTY_SHIFT)
+#define MH_DEBUG_REG42_GET_WDB_FIFO_CNT_q(mh_debug_reg42) \
+ ((mh_debug_reg42 & MH_DEBUG_REG42_WDB_FIFO_CNT_q_MASK) >> MH_DEBUG_REG42_WDB_FIFO_CNT_q_SHIFT)
+#define MH_DEBUG_REG42_GET_WDC_WDB_RE_q(mh_debug_reg42) \
+ ((mh_debug_reg42 & MH_DEBUG_REG42_WDC_WDB_RE_q_MASK) >> MH_DEBUG_REG42_WDC_WDB_RE_q_SHIFT)
+#define MH_DEBUG_REG42_GET_WDB_WDC_WID(mh_debug_reg42) \
+ ((mh_debug_reg42 & MH_DEBUG_REG42_WDB_WDC_WID_MASK) >> MH_DEBUG_REG42_WDB_WDC_WID_SHIFT)
+#define MH_DEBUG_REG42_GET_WDB_WDC_WLAST(mh_debug_reg42) \
+ ((mh_debug_reg42 & MH_DEBUG_REG42_WDB_WDC_WLAST_MASK) >> MH_DEBUG_REG42_WDB_WDC_WLAST_SHIFT)
+#define MH_DEBUG_REG42_GET_WDB_WDC_WSTRB(mh_debug_reg42) \
+ ((mh_debug_reg42 & MH_DEBUG_REG42_WDB_WDC_WSTRB_MASK) >> MH_DEBUG_REG42_WDB_WDC_WSTRB_SHIFT)
+
+#define MH_DEBUG_REG42_SET_WDB_WE(mh_debug_reg42_reg, wdb_we) \
+ mh_debug_reg42_reg = (mh_debug_reg42_reg & ~MH_DEBUG_REG42_WDB_WE_MASK) | (wdb_we << MH_DEBUG_REG42_WDB_WE_SHIFT)
+#define MH_DEBUG_REG42_SET_WDB_RTR_SKID(mh_debug_reg42_reg, wdb_rtr_skid) \
+ mh_debug_reg42_reg = (mh_debug_reg42_reg & ~MH_DEBUG_REG42_WDB_RTR_SKID_MASK) | (wdb_rtr_skid << MH_DEBUG_REG42_WDB_RTR_SKID_SHIFT)
+#define MH_DEBUG_REG42_SET_ARB_WSTRB_q(mh_debug_reg42_reg, arb_wstrb_q) \
+ mh_debug_reg42_reg = (mh_debug_reg42_reg & ~MH_DEBUG_REG42_ARB_WSTRB_q_MASK) | (arb_wstrb_q << MH_DEBUG_REG42_ARB_WSTRB_q_SHIFT)
+#define MH_DEBUG_REG42_SET_ARB_WLAST(mh_debug_reg42_reg, arb_wlast) \
+ mh_debug_reg42_reg = (mh_debug_reg42_reg & ~MH_DEBUG_REG42_ARB_WLAST_MASK) | (arb_wlast << MH_DEBUG_REG42_ARB_WLAST_SHIFT)
+#define MH_DEBUG_REG42_SET_WDB_CTRL_EMPTY(mh_debug_reg42_reg, wdb_ctrl_empty) \
+ mh_debug_reg42_reg = (mh_debug_reg42_reg & ~MH_DEBUG_REG42_WDB_CTRL_EMPTY_MASK) | (wdb_ctrl_empty << MH_DEBUG_REG42_WDB_CTRL_EMPTY_SHIFT)
+#define MH_DEBUG_REG42_SET_WDB_FIFO_CNT_q(mh_debug_reg42_reg, wdb_fifo_cnt_q) \
+ mh_debug_reg42_reg = (mh_debug_reg42_reg & ~MH_DEBUG_REG42_WDB_FIFO_CNT_q_MASK) | (wdb_fifo_cnt_q << MH_DEBUG_REG42_WDB_FIFO_CNT_q_SHIFT)
+#define MH_DEBUG_REG42_SET_WDC_WDB_RE_q(mh_debug_reg42_reg, wdc_wdb_re_q) \
+ mh_debug_reg42_reg = (mh_debug_reg42_reg & ~MH_DEBUG_REG42_WDC_WDB_RE_q_MASK) | (wdc_wdb_re_q << MH_DEBUG_REG42_WDC_WDB_RE_q_SHIFT)
+#define MH_DEBUG_REG42_SET_WDB_WDC_WID(mh_debug_reg42_reg, wdb_wdc_wid) \
+ mh_debug_reg42_reg = (mh_debug_reg42_reg & ~MH_DEBUG_REG42_WDB_WDC_WID_MASK) | (wdb_wdc_wid << MH_DEBUG_REG42_WDB_WDC_WID_SHIFT)
+#define MH_DEBUG_REG42_SET_WDB_WDC_WLAST(mh_debug_reg42_reg, wdb_wdc_wlast) \
+ mh_debug_reg42_reg = (mh_debug_reg42_reg & ~MH_DEBUG_REG42_WDB_WDC_WLAST_MASK) | (wdb_wdc_wlast << MH_DEBUG_REG42_WDB_WDC_WLAST_SHIFT)
+#define MH_DEBUG_REG42_SET_WDB_WDC_WSTRB(mh_debug_reg42_reg, wdb_wdc_wstrb) \
+ mh_debug_reg42_reg = (mh_debug_reg42_reg & ~MH_DEBUG_REG42_WDB_WDC_WSTRB_MASK) | (wdb_wdc_wstrb << MH_DEBUG_REG42_WDB_WDC_WSTRB_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg42_t {
+ unsigned int wdb_we : MH_DEBUG_REG42_WDB_WE_SIZE;
+ unsigned int wdb_rtr_skid : MH_DEBUG_REG42_WDB_RTR_SKID_SIZE;
+ unsigned int arb_wstrb_q : MH_DEBUG_REG42_ARB_WSTRB_q_SIZE;
+ unsigned int arb_wlast : MH_DEBUG_REG42_ARB_WLAST_SIZE;
+ unsigned int wdb_ctrl_empty : MH_DEBUG_REG42_WDB_CTRL_EMPTY_SIZE;
+ unsigned int wdb_fifo_cnt_q : MH_DEBUG_REG42_WDB_FIFO_CNT_q_SIZE;
+ unsigned int wdc_wdb_re_q : MH_DEBUG_REG42_WDC_WDB_RE_q_SIZE;
+ unsigned int wdb_wdc_wid : MH_DEBUG_REG42_WDB_WDC_WID_SIZE;
+ unsigned int wdb_wdc_wlast : MH_DEBUG_REG42_WDB_WDC_WLAST_SIZE;
+ unsigned int wdb_wdc_wstrb : MH_DEBUG_REG42_WDB_WDC_WSTRB_SIZE;
+ unsigned int : 2;
+ } mh_debug_reg42_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg42_t {
+ unsigned int : 2;
+ unsigned int wdb_wdc_wstrb : MH_DEBUG_REG42_WDB_WDC_WSTRB_SIZE;
+ unsigned int wdb_wdc_wlast : MH_DEBUG_REG42_WDB_WDC_WLAST_SIZE;
+ unsigned int wdb_wdc_wid : MH_DEBUG_REG42_WDB_WDC_WID_SIZE;
+ unsigned int wdc_wdb_re_q : MH_DEBUG_REG42_WDC_WDB_RE_q_SIZE;
+ unsigned int wdb_fifo_cnt_q : MH_DEBUG_REG42_WDB_FIFO_CNT_q_SIZE;
+ unsigned int wdb_ctrl_empty : MH_DEBUG_REG42_WDB_CTRL_EMPTY_SIZE;
+ unsigned int arb_wlast : MH_DEBUG_REG42_ARB_WLAST_SIZE;
+ unsigned int arb_wstrb_q : MH_DEBUG_REG42_ARB_WSTRB_q_SIZE;
+ unsigned int wdb_rtr_skid : MH_DEBUG_REG42_WDB_RTR_SKID_SIZE;
+ unsigned int wdb_we : MH_DEBUG_REG42_WDB_WE_SIZE;
+ } mh_debug_reg42_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg42_t f;
+} mh_debug_reg42_u;
+
+
+/*
+ * MH_DEBUG_REG43 struct
+ */
+
+#define MH_DEBUG_REG43_ARB_WDATA_q_31_0_SIZE 32
+
+#define MH_DEBUG_REG43_ARB_WDATA_q_31_0_SHIFT 0
+
+#define MH_DEBUG_REG43_ARB_WDATA_q_31_0_MASK 0xffffffff
+
+#define MH_DEBUG_REG43_MASK \
+ (MH_DEBUG_REG43_ARB_WDATA_q_31_0_MASK)
+
+#define MH_DEBUG_REG43(arb_wdata_q_31_0) \
+ ((arb_wdata_q_31_0 << MH_DEBUG_REG43_ARB_WDATA_q_31_0_SHIFT))
+
+#define MH_DEBUG_REG43_GET_ARB_WDATA_q_31_0(mh_debug_reg43) \
+ ((mh_debug_reg43 & MH_DEBUG_REG43_ARB_WDATA_q_31_0_MASK) >> MH_DEBUG_REG43_ARB_WDATA_q_31_0_SHIFT)
+
+#define MH_DEBUG_REG43_SET_ARB_WDATA_q_31_0(mh_debug_reg43_reg, arb_wdata_q_31_0) \
+ mh_debug_reg43_reg = (mh_debug_reg43_reg & ~MH_DEBUG_REG43_ARB_WDATA_q_31_0_MASK) | (arb_wdata_q_31_0 << MH_DEBUG_REG43_ARB_WDATA_q_31_0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg43_t {
+ unsigned int arb_wdata_q_31_0 : MH_DEBUG_REG43_ARB_WDATA_q_31_0_SIZE;
+ } mh_debug_reg43_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg43_t {
+ unsigned int arb_wdata_q_31_0 : MH_DEBUG_REG43_ARB_WDATA_q_31_0_SIZE;
+ } mh_debug_reg43_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg43_t f;
+} mh_debug_reg43_u;
+
+
+/*
+ * MH_DEBUG_REG44 struct
+ */
+
+#define MH_DEBUG_REG44_ARB_WDATA_q_63_32_SIZE 32
+
+#define MH_DEBUG_REG44_ARB_WDATA_q_63_32_SHIFT 0
+
+#define MH_DEBUG_REG44_ARB_WDATA_q_63_32_MASK 0xffffffff
+
+#define MH_DEBUG_REG44_MASK \
+ (MH_DEBUG_REG44_ARB_WDATA_q_63_32_MASK)
+
+#define MH_DEBUG_REG44(arb_wdata_q_63_32) \
+ ((arb_wdata_q_63_32 << MH_DEBUG_REG44_ARB_WDATA_q_63_32_SHIFT))
+
+#define MH_DEBUG_REG44_GET_ARB_WDATA_q_63_32(mh_debug_reg44) \
+ ((mh_debug_reg44 & MH_DEBUG_REG44_ARB_WDATA_q_63_32_MASK) >> MH_DEBUG_REG44_ARB_WDATA_q_63_32_SHIFT)
+
+#define MH_DEBUG_REG44_SET_ARB_WDATA_q_63_32(mh_debug_reg44_reg, arb_wdata_q_63_32) \
+ mh_debug_reg44_reg = (mh_debug_reg44_reg & ~MH_DEBUG_REG44_ARB_WDATA_q_63_32_MASK) | (arb_wdata_q_63_32 << MH_DEBUG_REG44_ARB_WDATA_q_63_32_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg44_t {
+ unsigned int arb_wdata_q_63_32 : MH_DEBUG_REG44_ARB_WDATA_q_63_32_SIZE;
+ } mh_debug_reg44_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg44_t {
+ unsigned int arb_wdata_q_63_32 : MH_DEBUG_REG44_ARB_WDATA_q_63_32_SIZE;
+ } mh_debug_reg44_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg44_t f;
+} mh_debug_reg44_u;
+
+
+/*
+ * MH_DEBUG_REG45 struct
+ */
+
+#define MH_DEBUG_REG45_WDB_WDC_WDATA_31_0_SIZE 32
+
+#define MH_DEBUG_REG45_WDB_WDC_WDATA_31_0_SHIFT 0
+
+#define MH_DEBUG_REG45_WDB_WDC_WDATA_31_0_MASK 0xffffffff
+
+#define MH_DEBUG_REG45_MASK \
+ (MH_DEBUG_REG45_WDB_WDC_WDATA_31_0_MASK)
+
+#define MH_DEBUG_REG45(wdb_wdc_wdata_31_0) \
+ ((wdb_wdc_wdata_31_0 << MH_DEBUG_REG45_WDB_WDC_WDATA_31_0_SHIFT))
+
+#define MH_DEBUG_REG45_GET_WDB_WDC_WDATA_31_0(mh_debug_reg45) \
+ ((mh_debug_reg45 & MH_DEBUG_REG45_WDB_WDC_WDATA_31_0_MASK) >> MH_DEBUG_REG45_WDB_WDC_WDATA_31_0_SHIFT)
+
+#define MH_DEBUG_REG45_SET_WDB_WDC_WDATA_31_0(mh_debug_reg45_reg, wdb_wdc_wdata_31_0) \
+ mh_debug_reg45_reg = (mh_debug_reg45_reg & ~MH_DEBUG_REG45_WDB_WDC_WDATA_31_0_MASK) | (wdb_wdc_wdata_31_0 << MH_DEBUG_REG45_WDB_WDC_WDATA_31_0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg45_t {
+ unsigned int wdb_wdc_wdata_31_0 : MH_DEBUG_REG45_WDB_WDC_WDATA_31_0_SIZE;
+ } mh_debug_reg45_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg45_t {
+ unsigned int wdb_wdc_wdata_31_0 : MH_DEBUG_REG45_WDB_WDC_WDATA_31_0_SIZE;
+ } mh_debug_reg45_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg45_t f;
+} mh_debug_reg45_u;
+
+
+/*
+ * MH_DEBUG_REG46 struct
+ */
+
+#define MH_DEBUG_REG46_WDB_WDC_WDATA_63_32_SIZE 32
+
+#define MH_DEBUG_REG46_WDB_WDC_WDATA_63_32_SHIFT 0
+
+#define MH_DEBUG_REG46_WDB_WDC_WDATA_63_32_MASK 0xffffffff
+
+#define MH_DEBUG_REG46_MASK \
+ (MH_DEBUG_REG46_WDB_WDC_WDATA_63_32_MASK)
+
+#define MH_DEBUG_REG46(wdb_wdc_wdata_63_32) \
+ ((wdb_wdc_wdata_63_32 << MH_DEBUG_REG46_WDB_WDC_WDATA_63_32_SHIFT))
+
+#define MH_DEBUG_REG46_GET_WDB_WDC_WDATA_63_32(mh_debug_reg46) \
+ ((mh_debug_reg46 & MH_DEBUG_REG46_WDB_WDC_WDATA_63_32_MASK) >> MH_DEBUG_REG46_WDB_WDC_WDATA_63_32_SHIFT)
+
+#define MH_DEBUG_REG46_SET_WDB_WDC_WDATA_63_32(mh_debug_reg46_reg, wdb_wdc_wdata_63_32) \
+ mh_debug_reg46_reg = (mh_debug_reg46_reg & ~MH_DEBUG_REG46_WDB_WDC_WDATA_63_32_MASK) | (wdb_wdc_wdata_63_32 << MH_DEBUG_REG46_WDB_WDC_WDATA_63_32_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg46_t {
+ unsigned int wdb_wdc_wdata_63_32 : MH_DEBUG_REG46_WDB_WDC_WDATA_63_32_SIZE;
+ } mh_debug_reg46_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg46_t {
+ unsigned int wdb_wdc_wdata_63_32 : MH_DEBUG_REG46_WDB_WDC_WDATA_63_32_SIZE;
+ } mh_debug_reg46_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg46_t f;
+} mh_debug_reg46_u;
+
+
+/*
+ * MH_DEBUG_REG47 struct
+ */
+
+#define MH_DEBUG_REG47_CTRL_ARC_EMPTY_SIZE 1
+#define MH_DEBUG_REG47_CTRL_RARC_EMPTY_SIZE 1
+#define MH_DEBUG_REG47_ARQ_CTRL_EMPTY_SIZE 1
+#define MH_DEBUG_REG47_ARQ_CTRL_WRITE_SIZE 1
+#define MH_DEBUG_REG47_TLBMISS_CTRL_RTS_SIZE 1
+#define MH_DEBUG_REG47_CTRL_TLBMISS_RE_q_SIZE 1
+#define MH_DEBUG_REG47_INFLT_LIMIT_q_SIZE 1
+#define MH_DEBUG_REG47_INFLT_LIMIT_CNT_q_SIZE 6
+#define MH_DEBUG_REG47_ARC_CTRL_RE_q_SIZE 1
+#define MH_DEBUG_REG47_RARC_CTRL_RE_q_SIZE 1
+#define MH_DEBUG_REG47_RVALID_q_SIZE 1
+#define MH_DEBUG_REG47_RREADY_q_SIZE 1
+#define MH_DEBUG_REG47_RLAST_q_SIZE 1
+#define MH_DEBUG_REG47_BVALID_q_SIZE 1
+#define MH_DEBUG_REG47_BREADY_q_SIZE 1
+
+#define MH_DEBUG_REG47_CTRL_ARC_EMPTY_SHIFT 0
+#define MH_DEBUG_REG47_CTRL_RARC_EMPTY_SHIFT 1
+#define MH_DEBUG_REG47_ARQ_CTRL_EMPTY_SHIFT 2
+#define MH_DEBUG_REG47_ARQ_CTRL_WRITE_SHIFT 3
+#define MH_DEBUG_REG47_TLBMISS_CTRL_RTS_SHIFT 4
+#define MH_DEBUG_REG47_CTRL_TLBMISS_RE_q_SHIFT 5
+#define MH_DEBUG_REG47_INFLT_LIMIT_q_SHIFT 6
+#define MH_DEBUG_REG47_INFLT_LIMIT_CNT_q_SHIFT 7
+#define MH_DEBUG_REG47_ARC_CTRL_RE_q_SHIFT 13
+#define MH_DEBUG_REG47_RARC_CTRL_RE_q_SHIFT 14
+#define MH_DEBUG_REG47_RVALID_q_SHIFT 15
+#define MH_DEBUG_REG47_RREADY_q_SHIFT 16
+#define MH_DEBUG_REG47_RLAST_q_SHIFT 17
+#define MH_DEBUG_REG47_BVALID_q_SHIFT 18
+#define MH_DEBUG_REG47_BREADY_q_SHIFT 19
+
+#define MH_DEBUG_REG47_CTRL_ARC_EMPTY_MASK 0x00000001
+#define MH_DEBUG_REG47_CTRL_RARC_EMPTY_MASK 0x00000002
+#define MH_DEBUG_REG47_ARQ_CTRL_EMPTY_MASK 0x00000004
+#define MH_DEBUG_REG47_ARQ_CTRL_WRITE_MASK 0x00000008
+#define MH_DEBUG_REG47_TLBMISS_CTRL_RTS_MASK 0x00000010
+#define MH_DEBUG_REG47_CTRL_TLBMISS_RE_q_MASK 0x00000020
+#define MH_DEBUG_REG47_INFLT_LIMIT_q_MASK 0x00000040
+#define MH_DEBUG_REG47_INFLT_LIMIT_CNT_q_MASK 0x00001f80
+#define MH_DEBUG_REG47_ARC_CTRL_RE_q_MASK 0x00002000
+#define MH_DEBUG_REG47_RARC_CTRL_RE_q_MASK 0x00004000
+#define MH_DEBUG_REG47_RVALID_q_MASK 0x00008000
+#define MH_DEBUG_REG47_RREADY_q_MASK 0x00010000
+#define MH_DEBUG_REG47_RLAST_q_MASK 0x00020000
+#define MH_DEBUG_REG47_BVALID_q_MASK 0x00040000
+#define MH_DEBUG_REG47_BREADY_q_MASK 0x00080000
+
+#define MH_DEBUG_REG47_MASK \
+ (MH_DEBUG_REG47_CTRL_ARC_EMPTY_MASK | \
+ MH_DEBUG_REG47_CTRL_RARC_EMPTY_MASK | \
+ MH_DEBUG_REG47_ARQ_CTRL_EMPTY_MASK | \
+ MH_DEBUG_REG47_ARQ_CTRL_WRITE_MASK | \
+ MH_DEBUG_REG47_TLBMISS_CTRL_RTS_MASK | \
+ MH_DEBUG_REG47_CTRL_TLBMISS_RE_q_MASK | \
+ MH_DEBUG_REG47_INFLT_LIMIT_q_MASK | \
+ MH_DEBUG_REG47_INFLT_LIMIT_CNT_q_MASK | \
+ MH_DEBUG_REG47_ARC_CTRL_RE_q_MASK | \
+ MH_DEBUG_REG47_RARC_CTRL_RE_q_MASK | \
+ MH_DEBUG_REG47_RVALID_q_MASK | \
+ MH_DEBUG_REG47_RREADY_q_MASK | \
+ MH_DEBUG_REG47_RLAST_q_MASK | \
+ MH_DEBUG_REG47_BVALID_q_MASK | \
+ MH_DEBUG_REG47_BREADY_q_MASK)
+
+#define MH_DEBUG_REG47(ctrl_arc_empty, ctrl_rarc_empty, arq_ctrl_empty, arq_ctrl_write, tlbmiss_ctrl_rts, ctrl_tlbmiss_re_q, inflt_limit_q, inflt_limit_cnt_q, arc_ctrl_re_q, rarc_ctrl_re_q, rvalid_q, rready_q, rlast_q, bvalid_q, bready_q) \
+ ((ctrl_arc_empty << MH_DEBUG_REG47_CTRL_ARC_EMPTY_SHIFT) | \
+ (ctrl_rarc_empty << MH_DEBUG_REG47_CTRL_RARC_EMPTY_SHIFT) | \
+ (arq_ctrl_empty << MH_DEBUG_REG47_ARQ_CTRL_EMPTY_SHIFT) | \
+ (arq_ctrl_write << MH_DEBUG_REG47_ARQ_CTRL_WRITE_SHIFT) | \
+ (tlbmiss_ctrl_rts << MH_DEBUG_REG47_TLBMISS_CTRL_RTS_SHIFT) | \
+ (ctrl_tlbmiss_re_q << MH_DEBUG_REG47_CTRL_TLBMISS_RE_q_SHIFT) | \
+ (inflt_limit_q << MH_DEBUG_REG47_INFLT_LIMIT_q_SHIFT) | \
+ (inflt_limit_cnt_q << MH_DEBUG_REG47_INFLT_LIMIT_CNT_q_SHIFT) | \
+ (arc_ctrl_re_q << MH_DEBUG_REG47_ARC_CTRL_RE_q_SHIFT) | \
+ (rarc_ctrl_re_q << MH_DEBUG_REG47_RARC_CTRL_RE_q_SHIFT) | \
+ (rvalid_q << MH_DEBUG_REG47_RVALID_q_SHIFT) | \
+ (rready_q << MH_DEBUG_REG47_RREADY_q_SHIFT) | \
+ (rlast_q << MH_DEBUG_REG47_RLAST_q_SHIFT) | \
+ (bvalid_q << MH_DEBUG_REG47_BVALID_q_SHIFT) | \
+ (bready_q << MH_DEBUG_REG47_BREADY_q_SHIFT))
+
+#define MH_DEBUG_REG47_GET_CTRL_ARC_EMPTY(mh_debug_reg47) \
+ ((mh_debug_reg47 & MH_DEBUG_REG47_CTRL_ARC_EMPTY_MASK) >> MH_DEBUG_REG47_CTRL_ARC_EMPTY_SHIFT)
+#define MH_DEBUG_REG47_GET_CTRL_RARC_EMPTY(mh_debug_reg47) \
+ ((mh_debug_reg47 & MH_DEBUG_REG47_CTRL_RARC_EMPTY_MASK) >> MH_DEBUG_REG47_CTRL_RARC_EMPTY_SHIFT)
+#define MH_DEBUG_REG47_GET_ARQ_CTRL_EMPTY(mh_debug_reg47) \
+ ((mh_debug_reg47 & MH_DEBUG_REG47_ARQ_CTRL_EMPTY_MASK) >> MH_DEBUG_REG47_ARQ_CTRL_EMPTY_SHIFT)
+#define MH_DEBUG_REG47_GET_ARQ_CTRL_WRITE(mh_debug_reg47) \
+ ((mh_debug_reg47 & MH_DEBUG_REG47_ARQ_CTRL_WRITE_MASK) >> MH_DEBUG_REG47_ARQ_CTRL_WRITE_SHIFT)
+#define MH_DEBUG_REG47_GET_TLBMISS_CTRL_RTS(mh_debug_reg47) \
+ ((mh_debug_reg47 & MH_DEBUG_REG47_TLBMISS_CTRL_RTS_MASK) >> MH_DEBUG_REG47_TLBMISS_CTRL_RTS_SHIFT)
+#define MH_DEBUG_REG47_GET_CTRL_TLBMISS_RE_q(mh_debug_reg47) \
+ ((mh_debug_reg47 & MH_DEBUG_REG47_CTRL_TLBMISS_RE_q_MASK) >> MH_DEBUG_REG47_CTRL_TLBMISS_RE_q_SHIFT)
+#define MH_DEBUG_REG47_GET_INFLT_LIMIT_q(mh_debug_reg47) \
+ ((mh_debug_reg47 & MH_DEBUG_REG47_INFLT_LIMIT_q_MASK) >> MH_DEBUG_REG47_INFLT_LIMIT_q_SHIFT)
+#define MH_DEBUG_REG47_GET_INFLT_LIMIT_CNT_q(mh_debug_reg47) \
+ ((mh_debug_reg47 & MH_DEBUG_REG47_INFLT_LIMIT_CNT_q_MASK) >> MH_DEBUG_REG47_INFLT_LIMIT_CNT_q_SHIFT)
+#define MH_DEBUG_REG47_GET_ARC_CTRL_RE_q(mh_debug_reg47) \
+ ((mh_debug_reg47 & MH_DEBUG_REG47_ARC_CTRL_RE_q_MASK) >> MH_DEBUG_REG47_ARC_CTRL_RE_q_SHIFT)
+#define MH_DEBUG_REG47_GET_RARC_CTRL_RE_q(mh_debug_reg47) \
+ ((mh_debug_reg47 & MH_DEBUG_REG47_RARC_CTRL_RE_q_MASK) >> MH_DEBUG_REG47_RARC_CTRL_RE_q_SHIFT)
+#define MH_DEBUG_REG47_GET_RVALID_q(mh_debug_reg47) \
+ ((mh_debug_reg47 & MH_DEBUG_REG47_RVALID_q_MASK) >> MH_DEBUG_REG47_RVALID_q_SHIFT)
+#define MH_DEBUG_REG47_GET_RREADY_q(mh_debug_reg47) \
+ ((mh_debug_reg47 & MH_DEBUG_REG47_RREADY_q_MASK) >> MH_DEBUG_REG47_RREADY_q_SHIFT)
+#define MH_DEBUG_REG47_GET_RLAST_q(mh_debug_reg47) \
+ ((mh_debug_reg47 & MH_DEBUG_REG47_RLAST_q_MASK) >> MH_DEBUG_REG47_RLAST_q_SHIFT)
+#define MH_DEBUG_REG47_GET_BVALID_q(mh_debug_reg47) \
+ ((mh_debug_reg47 & MH_DEBUG_REG47_BVALID_q_MASK) >> MH_DEBUG_REG47_BVALID_q_SHIFT)
+#define MH_DEBUG_REG47_GET_BREADY_q(mh_debug_reg47) \
+ ((mh_debug_reg47 & MH_DEBUG_REG47_BREADY_q_MASK) >> MH_DEBUG_REG47_BREADY_q_SHIFT)
+
+#define MH_DEBUG_REG47_SET_CTRL_ARC_EMPTY(mh_debug_reg47_reg, ctrl_arc_empty) \
+ mh_debug_reg47_reg = (mh_debug_reg47_reg & ~MH_DEBUG_REG47_CTRL_ARC_EMPTY_MASK) | (ctrl_arc_empty << MH_DEBUG_REG47_CTRL_ARC_EMPTY_SHIFT)
+#define MH_DEBUG_REG47_SET_CTRL_RARC_EMPTY(mh_debug_reg47_reg, ctrl_rarc_empty) \
+ mh_debug_reg47_reg = (mh_debug_reg47_reg & ~MH_DEBUG_REG47_CTRL_RARC_EMPTY_MASK) | (ctrl_rarc_empty << MH_DEBUG_REG47_CTRL_RARC_EMPTY_SHIFT)
+#define MH_DEBUG_REG47_SET_ARQ_CTRL_EMPTY(mh_debug_reg47_reg, arq_ctrl_empty) \
+ mh_debug_reg47_reg = (mh_debug_reg47_reg & ~MH_DEBUG_REG47_ARQ_CTRL_EMPTY_MASK) | (arq_ctrl_empty << MH_DEBUG_REG47_ARQ_CTRL_EMPTY_SHIFT)
+#define MH_DEBUG_REG47_SET_ARQ_CTRL_WRITE(mh_debug_reg47_reg, arq_ctrl_write) \
+ mh_debug_reg47_reg = (mh_debug_reg47_reg & ~MH_DEBUG_REG47_ARQ_CTRL_WRITE_MASK) | (arq_ctrl_write << MH_DEBUG_REG47_ARQ_CTRL_WRITE_SHIFT)
+#define MH_DEBUG_REG47_SET_TLBMISS_CTRL_RTS(mh_debug_reg47_reg, tlbmiss_ctrl_rts) \
+ mh_debug_reg47_reg = (mh_debug_reg47_reg & ~MH_DEBUG_REG47_TLBMISS_CTRL_RTS_MASK) | (tlbmiss_ctrl_rts << MH_DEBUG_REG47_TLBMISS_CTRL_RTS_SHIFT)
+#define MH_DEBUG_REG47_SET_CTRL_TLBMISS_RE_q(mh_debug_reg47_reg, ctrl_tlbmiss_re_q) \
+ mh_debug_reg47_reg = (mh_debug_reg47_reg & ~MH_DEBUG_REG47_CTRL_TLBMISS_RE_q_MASK) | (ctrl_tlbmiss_re_q << MH_DEBUG_REG47_CTRL_TLBMISS_RE_q_SHIFT)
+#define MH_DEBUG_REG47_SET_INFLT_LIMIT_q(mh_debug_reg47_reg, inflt_limit_q) \
+ mh_debug_reg47_reg = (mh_debug_reg47_reg & ~MH_DEBUG_REG47_INFLT_LIMIT_q_MASK) | (inflt_limit_q << MH_DEBUG_REG47_INFLT_LIMIT_q_SHIFT)
+#define MH_DEBUG_REG47_SET_INFLT_LIMIT_CNT_q(mh_debug_reg47_reg, inflt_limit_cnt_q) \
+ mh_debug_reg47_reg = (mh_debug_reg47_reg & ~MH_DEBUG_REG47_INFLT_LIMIT_CNT_q_MASK) | (inflt_limit_cnt_q << MH_DEBUG_REG47_INFLT_LIMIT_CNT_q_SHIFT)
+#define MH_DEBUG_REG47_SET_ARC_CTRL_RE_q(mh_debug_reg47_reg, arc_ctrl_re_q) \
+ mh_debug_reg47_reg = (mh_debug_reg47_reg & ~MH_DEBUG_REG47_ARC_CTRL_RE_q_MASK) | (arc_ctrl_re_q << MH_DEBUG_REG47_ARC_CTRL_RE_q_SHIFT)
+#define MH_DEBUG_REG47_SET_RARC_CTRL_RE_q(mh_debug_reg47_reg, rarc_ctrl_re_q) \
+ mh_debug_reg47_reg = (mh_debug_reg47_reg & ~MH_DEBUG_REG47_RARC_CTRL_RE_q_MASK) | (rarc_ctrl_re_q << MH_DEBUG_REG47_RARC_CTRL_RE_q_SHIFT)
+#define MH_DEBUG_REG47_SET_RVALID_q(mh_debug_reg47_reg, rvalid_q) \
+ mh_debug_reg47_reg = (mh_debug_reg47_reg & ~MH_DEBUG_REG47_RVALID_q_MASK) | (rvalid_q << MH_DEBUG_REG47_RVALID_q_SHIFT)
+#define MH_DEBUG_REG47_SET_RREADY_q(mh_debug_reg47_reg, rready_q) \
+ mh_debug_reg47_reg = (mh_debug_reg47_reg & ~MH_DEBUG_REG47_RREADY_q_MASK) | (rready_q << MH_DEBUG_REG47_RREADY_q_SHIFT)
+#define MH_DEBUG_REG47_SET_RLAST_q(mh_debug_reg47_reg, rlast_q) \
+ mh_debug_reg47_reg = (mh_debug_reg47_reg & ~MH_DEBUG_REG47_RLAST_q_MASK) | (rlast_q << MH_DEBUG_REG47_RLAST_q_SHIFT)
+#define MH_DEBUG_REG47_SET_BVALID_q(mh_debug_reg47_reg, bvalid_q) \
+ mh_debug_reg47_reg = (mh_debug_reg47_reg & ~MH_DEBUG_REG47_BVALID_q_MASK) | (bvalid_q << MH_DEBUG_REG47_BVALID_q_SHIFT)
+#define MH_DEBUG_REG47_SET_BREADY_q(mh_debug_reg47_reg, bready_q) \
+ mh_debug_reg47_reg = (mh_debug_reg47_reg & ~MH_DEBUG_REG47_BREADY_q_MASK) | (bready_q << MH_DEBUG_REG47_BREADY_q_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg47_t {
+ unsigned int ctrl_arc_empty : MH_DEBUG_REG47_CTRL_ARC_EMPTY_SIZE;
+ unsigned int ctrl_rarc_empty : MH_DEBUG_REG47_CTRL_RARC_EMPTY_SIZE;
+ unsigned int arq_ctrl_empty : MH_DEBUG_REG47_ARQ_CTRL_EMPTY_SIZE;
+ unsigned int arq_ctrl_write : MH_DEBUG_REG47_ARQ_CTRL_WRITE_SIZE;
+ unsigned int tlbmiss_ctrl_rts : MH_DEBUG_REG47_TLBMISS_CTRL_RTS_SIZE;
+ unsigned int ctrl_tlbmiss_re_q : MH_DEBUG_REG47_CTRL_TLBMISS_RE_q_SIZE;
+ unsigned int inflt_limit_q : MH_DEBUG_REG47_INFLT_LIMIT_q_SIZE;
+ unsigned int inflt_limit_cnt_q : MH_DEBUG_REG47_INFLT_LIMIT_CNT_q_SIZE;
+ unsigned int arc_ctrl_re_q : MH_DEBUG_REG47_ARC_CTRL_RE_q_SIZE;
+ unsigned int rarc_ctrl_re_q : MH_DEBUG_REG47_RARC_CTRL_RE_q_SIZE;
+ unsigned int rvalid_q : MH_DEBUG_REG47_RVALID_q_SIZE;
+ unsigned int rready_q : MH_DEBUG_REG47_RREADY_q_SIZE;
+ unsigned int rlast_q : MH_DEBUG_REG47_RLAST_q_SIZE;
+ unsigned int bvalid_q : MH_DEBUG_REG47_BVALID_q_SIZE;
+ unsigned int bready_q : MH_DEBUG_REG47_BREADY_q_SIZE;
+ unsigned int : 12;
+ } mh_debug_reg47_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg47_t {
+ unsigned int : 12;
+ unsigned int bready_q : MH_DEBUG_REG47_BREADY_q_SIZE;
+ unsigned int bvalid_q : MH_DEBUG_REG47_BVALID_q_SIZE;
+ unsigned int rlast_q : MH_DEBUG_REG47_RLAST_q_SIZE;
+ unsigned int rready_q : MH_DEBUG_REG47_RREADY_q_SIZE;
+ unsigned int rvalid_q : MH_DEBUG_REG47_RVALID_q_SIZE;
+ unsigned int rarc_ctrl_re_q : MH_DEBUG_REG47_RARC_CTRL_RE_q_SIZE;
+ unsigned int arc_ctrl_re_q : MH_DEBUG_REG47_ARC_CTRL_RE_q_SIZE;
+ unsigned int inflt_limit_cnt_q : MH_DEBUG_REG47_INFLT_LIMIT_CNT_q_SIZE;
+ unsigned int inflt_limit_q : MH_DEBUG_REG47_INFLT_LIMIT_q_SIZE;
+ unsigned int ctrl_tlbmiss_re_q : MH_DEBUG_REG47_CTRL_TLBMISS_RE_q_SIZE;
+ unsigned int tlbmiss_ctrl_rts : MH_DEBUG_REG47_TLBMISS_CTRL_RTS_SIZE;
+ unsigned int arq_ctrl_write : MH_DEBUG_REG47_ARQ_CTRL_WRITE_SIZE;
+ unsigned int arq_ctrl_empty : MH_DEBUG_REG47_ARQ_CTRL_EMPTY_SIZE;
+ unsigned int ctrl_rarc_empty : MH_DEBUG_REG47_CTRL_RARC_EMPTY_SIZE;
+ unsigned int ctrl_arc_empty : MH_DEBUG_REG47_CTRL_ARC_EMPTY_SIZE;
+ } mh_debug_reg47_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg47_t f;
+} mh_debug_reg47_u;
+
+
+/*
+ * MH_DEBUG_REG48 struct
+ */
+
+#define MH_DEBUG_REG48_MH_CP_grb_send_SIZE 1
+#define MH_DEBUG_REG48_MH_VGT_grb_send_SIZE 1
+#define MH_DEBUG_REG48_MH_TC_mcsend_SIZE 1
+#define MH_DEBUG_REG48_MH_TLBMISS_SEND_SIZE 1
+#define MH_DEBUG_REG48_TLBMISS_VALID_SIZE 1
+#define MH_DEBUG_REG48_RDC_VALID_SIZE 1
+#define MH_DEBUG_REG48_RDC_RID_SIZE 3
+#define MH_DEBUG_REG48_RDC_RLAST_SIZE 1
+#define MH_DEBUG_REG48_RDC_RRESP_SIZE 2
+#define MH_DEBUG_REG48_TLBMISS_CTRL_RTS_SIZE 1
+#define MH_DEBUG_REG48_CTRL_TLBMISS_RE_q_SIZE 1
+#define MH_DEBUG_REG48_MMU_ID_REQUEST_q_SIZE 1
+#define MH_DEBUG_REG48_OUTSTANDING_MMUID_CNT_q_SIZE 6
+#define MH_DEBUG_REG48_MMU_ID_RESPONSE_SIZE 1
+#define MH_DEBUG_REG48_TLBMISS_RETURN_CNT_q_SIZE 6
+#define MH_DEBUG_REG48_CNT_HOLD_q1_SIZE 1
+#define MH_DEBUG_REG48_MH_CLNT_AXI_ID_REUSE_MMUr_ID_SIZE 3
+
+#define MH_DEBUG_REG48_MH_CP_grb_send_SHIFT 0
+#define MH_DEBUG_REG48_MH_VGT_grb_send_SHIFT 1
+#define MH_DEBUG_REG48_MH_TC_mcsend_SHIFT 2
+#define MH_DEBUG_REG48_MH_TLBMISS_SEND_SHIFT 3
+#define MH_DEBUG_REG48_TLBMISS_VALID_SHIFT 4
+#define MH_DEBUG_REG48_RDC_VALID_SHIFT 5
+#define MH_DEBUG_REG48_RDC_RID_SHIFT 6
+#define MH_DEBUG_REG48_RDC_RLAST_SHIFT 9
+#define MH_DEBUG_REG48_RDC_RRESP_SHIFT 10
+#define MH_DEBUG_REG48_TLBMISS_CTRL_RTS_SHIFT 12
+#define MH_DEBUG_REG48_CTRL_TLBMISS_RE_q_SHIFT 13
+#define MH_DEBUG_REG48_MMU_ID_REQUEST_q_SHIFT 14
+#define MH_DEBUG_REG48_OUTSTANDING_MMUID_CNT_q_SHIFT 15
+#define MH_DEBUG_REG48_MMU_ID_RESPONSE_SHIFT 21
+#define MH_DEBUG_REG48_TLBMISS_RETURN_CNT_q_SHIFT 22
+#define MH_DEBUG_REG48_CNT_HOLD_q1_SHIFT 28
+#define MH_DEBUG_REG48_MH_CLNT_AXI_ID_REUSE_MMUr_ID_SHIFT 29
+
+#define MH_DEBUG_REG48_MH_CP_grb_send_MASK 0x00000001
+#define MH_DEBUG_REG48_MH_VGT_grb_send_MASK 0x00000002
+#define MH_DEBUG_REG48_MH_TC_mcsend_MASK 0x00000004
+#define MH_DEBUG_REG48_MH_TLBMISS_SEND_MASK 0x00000008
+#define MH_DEBUG_REG48_TLBMISS_VALID_MASK 0x00000010
+#define MH_DEBUG_REG48_RDC_VALID_MASK 0x00000020
+#define MH_DEBUG_REG48_RDC_RID_MASK 0x000001c0
+#define MH_DEBUG_REG48_RDC_RLAST_MASK 0x00000200
+#define MH_DEBUG_REG48_RDC_RRESP_MASK 0x00000c00
+#define MH_DEBUG_REG48_TLBMISS_CTRL_RTS_MASK 0x00001000
+#define MH_DEBUG_REG48_CTRL_TLBMISS_RE_q_MASK 0x00002000
+#define MH_DEBUG_REG48_MMU_ID_REQUEST_q_MASK 0x00004000
+#define MH_DEBUG_REG48_OUTSTANDING_MMUID_CNT_q_MASK 0x001f8000
+#define MH_DEBUG_REG48_MMU_ID_RESPONSE_MASK 0x00200000
+#define MH_DEBUG_REG48_TLBMISS_RETURN_CNT_q_MASK 0x0fc00000
+#define MH_DEBUG_REG48_CNT_HOLD_q1_MASK 0x10000000
+#define MH_DEBUG_REG48_MH_CLNT_AXI_ID_REUSE_MMUr_ID_MASK 0xe0000000
+
+#define MH_DEBUG_REG48_MASK \
+ (MH_DEBUG_REG48_MH_CP_grb_send_MASK | \
+ MH_DEBUG_REG48_MH_VGT_grb_send_MASK | \
+ MH_DEBUG_REG48_MH_TC_mcsend_MASK | \
+ MH_DEBUG_REG48_MH_TLBMISS_SEND_MASK | \
+ MH_DEBUG_REG48_TLBMISS_VALID_MASK | \
+ MH_DEBUG_REG48_RDC_VALID_MASK | \
+ MH_DEBUG_REG48_RDC_RID_MASK | \
+ MH_DEBUG_REG48_RDC_RLAST_MASK | \
+ MH_DEBUG_REG48_RDC_RRESP_MASK | \
+ MH_DEBUG_REG48_TLBMISS_CTRL_RTS_MASK | \
+ MH_DEBUG_REG48_CTRL_TLBMISS_RE_q_MASK | \
+ MH_DEBUG_REG48_MMU_ID_REQUEST_q_MASK | \
+ MH_DEBUG_REG48_OUTSTANDING_MMUID_CNT_q_MASK | \
+ MH_DEBUG_REG48_MMU_ID_RESPONSE_MASK | \
+ MH_DEBUG_REG48_TLBMISS_RETURN_CNT_q_MASK | \
+ MH_DEBUG_REG48_CNT_HOLD_q1_MASK | \
+ MH_DEBUG_REG48_MH_CLNT_AXI_ID_REUSE_MMUr_ID_MASK)
+
+#define MH_DEBUG_REG48(mh_cp_grb_send, mh_vgt_grb_send, mh_tc_mcsend, mh_tlbmiss_send, tlbmiss_valid, rdc_valid, rdc_rid, rdc_rlast, rdc_rresp, tlbmiss_ctrl_rts, ctrl_tlbmiss_re_q, mmu_id_request_q, outstanding_mmuid_cnt_q, mmu_id_response, tlbmiss_return_cnt_q, cnt_hold_q1, mh_clnt_axi_id_reuse_mmur_id) \
+ ((mh_cp_grb_send << MH_DEBUG_REG48_MH_CP_grb_send_SHIFT) | \
+ (mh_vgt_grb_send << MH_DEBUG_REG48_MH_VGT_grb_send_SHIFT) | \
+ (mh_tc_mcsend << MH_DEBUG_REG48_MH_TC_mcsend_SHIFT) | \
+ (mh_tlbmiss_send << MH_DEBUG_REG48_MH_TLBMISS_SEND_SHIFT) | \
+ (tlbmiss_valid << MH_DEBUG_REG48_TLBMISS_VALID_SHIFT) | \
+ (rdc_valid << MH_DEBUG_REG48_RDC_VALID_SHIFT) | \
+ (rdc_rid << MH_DEBUG_REG48_RDC_RID_SHIFT) | \
+ (rdc_rlast << MH_DEBUG_REG48_RDC_RLAST_SHIFT) | \
+ (rdc_rresp << MH_DEBUG_REG48_RDC_RRESP_SHIFT) | \
+ (tlbmiss_ctrl_rts << MH_DEBUG_REG48_TLBMISS_CTRL_RTS_SHIFT) | \
+ (ctrl_tlbmiss_re_q << MH_DEBUG_REG48_CTRL_TLBMISS_RE_q_SHIFT) | \
+ (mmu_id_request_q << MH_DEBUG_REG48_MMU_ID_REQUEST_q_SHIFT) | \
+ (outstanding_mmuid_cnt_q << MH_DEBUG_REG48_OUTSTANDING_MMUID_CNT_q_SHIFT) | \
+ (mmu_id_response << MH_DEBUG_REG48_MMU_ID_RESPONSE_SHIFT) | \
+ (tlbmiss_return_cnt_q << MH_DEBUG_REG48_TLBMISS_RETURN_CNT_q_SHIFT) | \
+ (cnt_hold_q1 << MH_DEBUG_REG48_CNT_HOLD_q1_SHIFT) | \
+ (mh_clnt_axi_id_reuse_mmur_id << MH_DEBUG_REG48_MH_CLNT_AXI_ID_REUSE_MMUr_ID_SHIFT))
+
+#define MH_DEBUG_REG48_GET_MH_CP_grb_send(mh_debug_reg48) \
+ ((mh_debug_reg48 & MH_DEBUG_REG48_MH_CP_grb_send_MASK) >> MH_DEBUG_REG48_MH_CP_grb_send_SHIFT)
+#define MH_DEBUG_REG48_GET_MH_VGT_grb_send(mh_debug_reg48) \
+ ((mh_debug_reg48 & MH_DEBUG_REG48_MH_VGT_grb_send_MASK) >> MH_DEBUG_REG48_MH_VGT_grb_send_SHIFT)
+#define MH_DEBUG_REG48_GET_MH_TC_mcsend(mh_debug_reg48) \
+ ((mh_debug_reg48 & MH_DEBUG_REG48_MH_TC_mcsend_MASK) >> MH_DEBUG_REG48_MH_TC_mcsend_SHIFT)
+#define MH_DEBUG_REG48_GET_MH_TLBMISS_SEND(mh_debug_reg48) \
+ ((mh_debug_reg48 & MH_DEBUG_REG48_MH_TLBMISS_SEND_MASK) >> MH_DEBUG_REG48_MH_TLBMISS_SEND_SHIFT)
+#define MH_DEBUG_REG48_GET_TLBMISS_VALID(mh_debug_reg48) \
+ ((mh_debug_reg48 & MH_DEBUG_REG48_TLBMISS_VALID_MASK) >> MH_DEBUG_REG48_TLBMISS_VALID_SHIFT)
+#define MH_DEBUG_REG48_GET_RDC_VALID(mh_debug_reg48) \
+ ((mh_debug_reg48 & MH_DEBUG_REG48_RDC_VALID_MASK) >> MH_DEBUG_REG48_RDC_VALID_SHIFT)
+#define MH_DEBUG_REG48_GET_RDC_RID(mh_debug_reg48) \
+ ((mh_debug_reg48 & MH_DEBUG_REG48_RDC_RID_MASK) >> MH_DEBUG_REG48_RDC_RID_SHIFT)
+#define MH_DEBUG_REG48_GET_RDC_RLAST(mh_debug_reg48) \
+ ((mh_debug_reg48 & MH_DEBUG_REG48_RDC_RLAST_MASK) >> MH_DEBUG_REG48_RDC_RLAST_SHIFT)
+#define MH_DEBUG_REG48_GET_RDC_RRESP(mh_debug_reg48) \
+ ((mh_debug_reg48 & MH_DEBUG_REG48_RDC_RRESP_MASK) >> MH_DEBUG_REG48_RDC_RRESP_SHIFT)
+#define MH_DEBUG_REG48_GET_TLBMISS_CTRL_RTS(mh_debug_reg48) \
+ ((mh_debug_reg48 & MH_DEBUG_REG48_TLBMISS_CTRL_RTS_MASK) >> MH_DEBUG_REG48_TLBMISS_CTRL_RTS_SHIFT)
+#define MH_DEBUG_REG48_GET_CTRL_TLBMISS_RE_q(mh_debug_reg48) \
+ ((mh_debug_reg48 & MH_DEBUG_REG48_CTRL_TLBMISS_RE_q_MASK) >> MH_DEBUG_REG48_CTRL_TLBMISS_RE_q_SHIFT)
+#define MH_DEBUG_REG48_GET_MMU_ID_REQUEST_q(mh_debug_reg48) \
+ ((mh_debug_reg48 & MH_DEBUG_REG48_MMU_ID_REQUEST_q_MASK) >> MH_DEBUG_REG48_MMU_ID_REQUEST_q_SHIFT)
+#define MH_DEBUG_REG48_GET_OUTSTANDING_MMUID_CNT_q(mh_debug_reg48) \
+ ((mh_debug_reg48 & MH_DEBUG_REG48_OUTSTANDING_MMUID_CNT_q_MASK) >> MH_DEBUG_REG48_OUTSTANDING_MMUID_CNT_q_SHIFT)
+#define MH_DEBUG_REG48_GET_MMU_ID_RESPONSE(mh_debug_reg48) \
+ ((mh_debug_reg48 & MH_DEBUG_REG48_MMU_ID_RESPONSE_MASK) >> MH_DEBUG_REG48_MMU_ID_RESPONSE_SHIFT)
+#define MH_DEBUG_REG48_GET_TLBMISS_RETURN_CNT_q(mh_debug_reg48) \
+ ((mh_debug_reg48 & MH_DEBUG_REG48_TLBMISS_RETURN_CNT_q_MASK) >> MH_DEBUG_REG48_TLBMISS_RETURN_CNT_q_SHIFT)
+#define MH_DEBUG_REG48_GET_CNT_HOLD_q1(mh_debug_reg48) \
+ ((mh_debug_reg48 & MH_DEBUG_REG48_CNT_HOLD_q1_MASK) >> MH_DEBUG_REG48_CNT_HOLD_q1_SHIFT)
+#define MH_DEBUG_REG48_GET_MH_CLNT_AXI_ID_REUSE_MMUr_ID(mh_debug_reg48) \
+ ((mh_debug_reg48 & MH_DEBUG_REG48_MH_CLNT_AXI_ID_REUSE_MMUr_ID_MASK) >> MH_DEBUG_REG48_MH_CLNT_AXI_ID_REUSE_MMUr_ID_SHIFT)
+
+#define MH_DEBUG_REG48_SET_MH_CP_grb_send(mh_debug_reg48_reg, mh_cp_grb_send) \
+ mh_debug_reg48_reg = (mh_debug_reg48_reg & ~MH_DEBUG_REG48_MH_CP_grb_send_MASK) | (mh_cp_grb_send << MH_DEBUG_REG48_MH_CP_grb_send_SHIFT)
+#define MH_DEBUG_REG48_SET_MH_VGT_grb_send(mh_debug_reg48_reg, mh_vgt_grb_send) \
+ mh_debug_reg48_reg = (mh_debug_reg48_reg & ~MH_DEBUG_REG48_MH_VGT_grb_send_MASK) | (mh_vgt_grb_send << MH_DEBUG_REG48_MH_VGT_grb_send_SHIFT)
+#define MH_DEBUG_REG48_SET_MH_TC_mcsend(mh_debug_reg48_reg, mh_tc_mcsend) \
+ mh_debug_reg48_reg = (mh_debug_reg48_reg & ~MH_DEBUG_REG48_MH_TC_mcsend_MASK) | (mh_tc_mcsend << MH_DEBUG_REG48_MH_TC_mcsend_SHIFT)
+#define MH_DEBUG_REG48_SET_MH_TLBMISS_SEND(mh_debug_reg48_reg, mh_tlbmiss_send) \
+ mh_debug_reg48_reg = (mh_debug_reg48_reg & ~MH_DEBUG_REG48_MH_TLBMISS_SEND_MASK) | (mh_tlbmiss_send << MH_DEBUG_REG48_MH_TLBMISS_SEND_SHIFT)
+#define MH_DEBUG_REG48_SET_TLBMISS_VALID(mh_debug_reg48_reg, tlbmiss_valid) \
+ mh_debug_reg48_reg = (mh_debug_reg48_reg & ~MH_DEBUG_REG48_TLBMISS_VALID_MASK) | (tlbmiss_valid << MH_DEBUG_REG48_TLBMISS_VALID_SHIFT)
+#define MH_DEBUG_REG48_SET_RDC_VALID(mh_debug_reg48_reg, rdc_valid) \
+ mh_debug_reg48_reg = (mh_debug_reg48_reg & ~MH_DEBUG_REG48_RDC_VALID_MASK) | (rdc_valid << MH_DEBUG_REG48_RDC_VALID_SHIFT)
+#define MH_DEBUG_REG48_SET_RDC_RID(mh_debug_reg48_reg, rdc_rid) \
+ mh_debug_reg48_reg = (mh_debug_reg48_reg & ~MH_DEBUG_REG48_RDC_RID_MASK) | (rdc_rid << MH_DEBUG_REG48_RDC_RID_SHIFT)
+#define MH_DEBUG_REG48_SET_RDC_RLAST(mh_debug_reg48_reg, rdc_rlast) \
+ mh_debug_reg48_reg = (mh_debug_reg48_reg & ~MH_DEBUG_REG48_RDC_RLAST_MASK) | (rdc_rlast << MH_DEBUG_REG48_RDC_RLAST_SHIFT)
+#define MH_DEBUG_REG48_SET_RDC_RRESP(mh_debug_reg48_reg, rdc_rresp) \
+ mh_debug_reg48_reg = (mh_debug_reg48_reg & ~MH_DEBUG_REG48_RDC_RRESP_MASK) | (rdc_rresp << MH_DEBUG_REG48_RDC_RRESP_SHIFT)
+#define MH_DEBUG_REG48_SET_TLBMISS_CTRL_RTS(mh_debug_reg48_reg, tlbmiss_ctrl_rts) \
+ mh_debug_reg48_reg = (mh_debug_reg48_reg & ~MH_DEBUG_REG48_TLBMISS_CTRL_RTS_MASK) | (tlbmiss_ctrl_rts << MH_DEBUG_REG48_TLBMISS_CTRL_RTS_SHIFT)
+#define MH_DEBUG_REG48_SET_CTRL_TLBMISS_RE_q(mh_debug_reg48_reg, ctrl_tlbmiss_re_q) \
+ mh_debug_reg48_reg = (mh_debug_reg48_reg & ~MH_DEBUG_REG48_CTRL_TLBMISS_RE_q_MASK) | (ctrl_tlbmiss_re_q << MH_DEBUG_REG48_CTRL_TLBMISS_RE_q_SHIFT)
+#define MH_DEBUG_REG48_SET_MMU_ID_REQUEST_q(mh_debug_reg48_reg, mmu_id_request_q) \
+ mh_debug_reg48_reg = (mh_debug_reg48_reg & ~MH_DEBUG_REG48_MMU_ID_REQUEST_q_MASK) | (mmu_id_request_q << MH_DEBUG_REG48_MMU_ID_REQUEST_q_SHIFT)
+#define MH_DEBUG_REG48_SET_OUTSTANDING_MMUID_CNT_q(mh_debug_reg48_reg, outstanding_mmuid_cnt_q) \
+ mh_debug_reg48_reg = (mh_debug_reg48_reg & ~MH_DEBUG_REG48_OUTSTANDING_MMUID_CNT_q_MASK) | (outstanding_mmuid_cnt_q << MH_DEBUG_REG48_OUTSTANDING_MMUID_CNT_q_SHIFT)
+#define MH_DEBUG_REG48_SET_MMU_ID_RESPONSE(mh_debug_reg48_reg, mmu_id_response) \
+ mh_debug_reg48_reg = (mh_debug_reg48_reg & ~MH_DEBUG_REG48_MMU_ID_RESPONSE_MASK) | (mmu_id_response << MH_DEBUG_REG48_MMU_ID_RESPONSE_SHIFT)
+#define MH_DEBUG_REG48_SET_TLBMISS_RETURN_CNT_q(mh_debug_reg48_reg, tlbmiss_return_cnt_q) \
+ mh_debug_reg48_reg = (mh_debug_reg48_reg & ~MH_DEBUG_REG48_TLBMISS_RETURN_CNT_q_MASK) | (tlbmiss_return_cnt_q << MH_DEBUG_REG48_TLBMISS_RETURN_CNT_q_SHIFT)
+#define MH_DEBUG_REG48_SET_CNT_HOLD_q1(mh_debug_reg48_reg, cnt_hold_q1) \
+ mh_debug_reg48_reg = (mh_debug_reg48_reg & ~MH_DEBUG_REG48_CNT_HOLD_q1_MASK) | (cnt_hold_q1 << MH_DEBUG_REG48_CNT_HOLD_q1_SHIFT)
+#define MH_DEBUG_REG48_SET_MH_CLNT_AXI_ID_REUSE_MMUr_ID(mh_debug_reg48_reg, mh_clnt_axi_id_reuse_mmur_id) \
+ mh_debug_reg48_reg = (mh_debug_reg48_reg & ~MH_DEBUG_REG48_MH_CLNT_AXI_ID_REUSE_MMUr_ID_MASK) | (mh_clnt_axi_id_reuse_mmur_id << MH_DEBUG_REG48_MH_CLNT_AXI_ID_REUSE_MMUr_ID_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg48_t {
+ unsigned int mh_cp_grb_send : MH_DEBUG_REG48_MH_CP_grb_send_SIZE;
+ unsigned int mh_vgt_grb_send : MH_DEBUG_REG48_MH_VGT_grb_send_SIZE;
+ unsigned int mh_tc_mcsend : MH_DEBUG_REG48_MH_TC_mcsend_SIZE;
+ unsigned int mh_tlbmiss_send : MH_DEBUG_REG48_MH_TLBMISS_SEND_SIZE;
+ unsigned int tlbmiss_valid : MH_DEBUG_REG48_TLBMISS_VALID_SIZE;
+ unsigned int rdc_valid : MH_DEBUG_REG48_RDC_VALID_SIZE;
+ unsigned int rdc_rid : MH_DEBUG_REG48_RDC_RID_SIZE;
+ unsigned int rdc_rlast : MH_DEBUG_REG48_RDC_RLAST_SIZE;
+ unsigned int rdc_rresp : MH_DEBUG_REG48_RDC_RRESP_SIZE;
+ unsigned int tlbmiss_ctrl_rts : MH_DEBUG_REG48_TLBMISS_CTRL_RTS_SIZE;
+ unsigned int ctrl_tlbmiss_re_q : MH_DEBUG_REG48_CTRL_TLBMISS_RE_q_SIZE;
+ unsigned int mmu_id_request_q : MH_DEBUG_REG48_MMU_ID_REQUEST_q_SIZE;
+ unsigned int outstanding_mmuid_cnt_q : MH_DEBUG_REG48_OUTSTANDING_MMUID_CNT_q_SIZE;
+ unsigned int mmu_id_response : MH_DEBUG_REG48_MMU_ID_RESPONSE_SIZE;
+ unsigned int tlbmiss_return_cnt_q : MH_DEBUG_REG48_TLBMISS_RETURN_CNT_q_SIZE;
+ unsigned int cnt_hold_q1 : MH_DEBUG_REG48_CNT_HOLD_q1_SIZE;
+ unsigned int mh_clnt_axi_id_reuse_mmur_id : MH_DEBUG_REG48_MH_CLNT_AXI_ID_REUSE_MMUr_ID_SIZE;
+ } mh_debug_reg48_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg48_t {
+ unsigned int mh_clnt_axi_id_reuse_mmur_id : MH_DEBUG_REG48_MH_CLNT_AXI_ID_REUSE_MMUr_ID_SIZE;
+ unsigned int cnt_hold_q1 : MH_DEBUG_REG48_CNT_HOLD_q1_SIZE;
+ unsigned int tlbmiss_return_cnt_q : MH_DEBUG_REG48_TLBMISS_RETURN_CNT_q_SIZE;
+ unsigned int mmu_id_response : MH_DEBUG_REG48_MMU_ID_RESPONSE_SIZE;
+ unsigned int outstanding_mmuid_cnt_q : MH_DEBUG_REG48_OUTSTANDING_MMUID_CNT_q_SIZE;
+ unsigned int mmu_id_request_q : MH_DEBUG_REG48_MMU_ID_REQUEST_q_SIZE;
+ unsigned int ctrl_tlbmiss_re_q : MH_DEBUG_REG48_CTRL_TLBMISS_RE_q_SIZE;
+ unsigned int tlbmiss_ctrl_rts : MH_DEBUG_REG48_TLBMISS_CTRL_RTS_SIZE;
+ unsigned int rdc_rresp : MH_DEBUG_REG48_RDC_RRESP_SIZE;
+ unsigned int rdc_rlast : MH_DEBUG_REG48_RDC_RLAST_SIZE;
+ unsigned int rdc_rid : MH_DEBUG_REG48_RDC_RID_SIZE;
+ unsigned int rdc_valid : MH_DEBUG_REG48_RDC_VALID_SIZE;
+ unsigned int tlbmiss_valid : MH_DEBUG_REG48_TLBMISS_VALID_SIZE;
+ unsigned int mh_tlbmiss_send : MH_DEBUG_REG48_MH_TLBMISS_SEND_SIZE;
+ unsigned int mh_tc_mcsend : MH_DEBUG_REG48_MH_TC_mcsend_SIZE;
+ unsigned int mh_vgt_grb_send : MH_DEBUG_REG48_MH_VGT_grb_send_SIZE;
+ unsigned int mh_cp_grb_send : MH_DEBUG_REG48_MH_CP_grb_send_SIZE;
+ } mh_debug_reg48_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg48_t f;
+} mh_debug_reg48_u;
+
+
+/*
+ * MH_DEBUG_REG49 struct
+ */
+
+#define MH_DEBUG_REG49_RF_MMU_PAGE_FAULT_SIZE 32
+
+#define MH_DEBUG_REG49_RF_MMU_PAGE_FAULT_SHIFT 0
+
+#define MH_DEBUG_REG49_RF_MMU_PAGE_FAULT_MASK 0xffffffff
+
+#define MH_DEBUG_REG49_MASK \
+ (MH_DEBUG_REG49_RF_MMU_PAGE_FAULT_MASK)
+
+#define MH_DEBUG_REG49(rf_mmu_page_fault) \
+ ((rf_mmu_page_fault << MH_DEBUG_REG49_RF_MMU_PAGE_FAULT_SHIFT))
+
+#define MH_DEBUG_REG49_GET_RF_MMU_PAGE_FAULT(mh_debug_reg49) \
+ ((mh_debug_reg49 & MH_DEBUG_REG49_RF_MMU_PAGE_FAULT_MASK) >> MH_DEBUG_REG49_RF_MMU_PAGE_FAULT_SHIFT)
+
+#define MH_DEBUG_REG49_SET_RF_MMU_PAGE_FAULT(mh_debug_reg49_reg, rf_mmu_page_fault) \
+ mh_debug_reg49_reg = (mh_debug_reg49_reg & ~MH_DEBUG_REG49_RF_MMU_PAGE_FAULT_MASK) | (rf_mmu_page_fault << MH_DEBUG_REG49_RF_MMU_PAGE_FAULT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg49_t {
+ unsigned int rf_mmu_page_fault : MH_DEBUG_REG49_RF_MMU_PAGE_FAULT_SIZE;
+ } mh_debug_reg49_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg49_t {
+ unsigned int rf_mmu_page_fault : MH_DEBUG_REG49_RF_MMU_PAGE_FAULT_SIZE;
+ } mh_debug_reg49_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg49_t f;
+} mh_debug_reg49_u;
+
+
+/*
+ * MH_DEBUG_REG50 struct
+ */
+
+#define MH_DEBUG_REG50_RF_MMU_CONFIG_q_SIZE 24
+#define MH_DEBUG_REG50_ARB_ID_q_SIZE 3
+#define MH_DEBUG_REG50_ARB_WRITE_q_SIZE 1
+#define MH_DEBUG_REG50_client_behavior_q_SIZE 2
+#define MH_DEBUG_REG50_ARB_WE_SIZE 1
+#define MH_DEBUG_REG50_MMU_RTR_SIZE 1
+
+#define MH_DEBUG_REG50_RF_MMU_CONFIG_q_SHIFT 0
+#define MH_DEBUG_REG50_ARB_ID_q_SHIFT 24
+#define MH_DEBUG_REG50_ARB_WRITE_q_SHIFT 27
+#define MH_DEBUG_REG50_client_behavior_q_SHIFT 28
+#define MH_DEBUG_REG50_ARB_WE_SHIFT 30
+#define MH_DEBUG_REG50_MMU_RTR_SHIFT 31
+
+#define MH_DEBUG_REG50_RF_MMU_CONFIG_q_MASK 0x00ffffff
+#define MH_DEBUG_REG50_ARB_ID_q_MASK 0x07000000
+#define MH_DEBUG_REG50_ARB_WRITE_q_MASK 0x08000000
+#define MH_DEBUG_REG50_client_behavior_q_MASK 0x30000000
+#define MH_DEBUG_REG50_ARB_WE_MASK 0x40000000
+#define MH_DEBUG_REG50_MMU_RTR_MASK 0x80000000
+
+#define MH_DEBUG_REG50_MASK \
+ (MH_DEBUG_REG50_RF_MMU_CONFIG_q_MASK | \
+ MH_DEBUG_REG50_ARB_ID_q_MASK | \
+ MH_DEBUG_REG50_ARB_WRITE_q_MASK | \
+ MH_DEBUG_REG50_client_behavior_q_MASK | \
+ MH_DEBUG_REG50_ARB_WE_MASK | \
+ MH_DEBUG_REG50_MMU_RTR_MASK)
+
+#define MH_DEBUG_REG50(rf_mmu_config_q, arb_id_q, arb_write_q, client_behavior_q, arb_we, mmu_rtr) \
+ ((rf_mmu_config_q << MH_DEBUG_REG50_RF_MMU_CONFIG_q_SHIFT) | \
+ (arb_id_q << MH_DEBUG_REG50_ARB_ID_q_SHIFT) | \
+ (arb_write_q << MH_DEBUG_REG50_ARB_WRITE_q_SHIFT) | \
+ (client_behavior_q << MH_DEBUG_REG50_client_behavior_q_SHIFT) | \
+ (arb_we << MH_DEBUG_REG50_ARB_WE_SHIFT) | \
+ (mmu_rtr << MH_DEBUG_REG50_MMU_RTR_SHIFT))
+
+#define MH_DEBUG_REG50_GET_RF_MMU_CONFIG_q(mh_debug_reg50) \
+ ((mh_debug_reg50 & MH_DEBUG_REG50_RF_MMU_CONFIG_q_MASK) >> MH_DEBUG_REG50_RF_MMU_CONFIG_q_SHIFT)
+#define MH_DEBUG_REG50_GET_ARB_ID_q(mh_debug_reg50) \
+ ((mh_debug_reg50 & MH_DEBUG_REG50_ARB_ID_q_MASK) >> MH_DEBUG_REG50_ARB_ID_q_SHIFT)
+#define MH_DEBUG_REG50_GET_ARB_WRITE_q(mh_debug_reg50) \
+ ((mh_debug_reg50 & MH_DEBUG_REG50_ARB_WRITE_q_MASK) >> MH_DEBUG_REG50_ARB_WRITE_q_SHIFT)
+#define MH_DEBUG_REG50_GET_client_behavior_q(mh_debug_reg50) \
+ ((mh_debug_reg50 & MH_DEBUG_REG50_client_behavior_q_MASK) >> MH_DEBUG_REG50_client_behavior_q_SHIFT)
+#define MH_DEBUG_REG50_GET_ARB_WE(mh_debug_reg50) \
+ ((mh_debug_reg50 & MH_DEBUG_REG50_ARB_WE_MASK) >> MH_DEBUG_REG50_ARB_WE_SHIFT)
+#define MH_DEBUG_REG50_GET_MMU_RTR(mh_debug_reg50) \
+ ((mh_debug_reg50 & MH_DEBUG_REG50_MMU_RTR_MASK) >> MH_DEBUG_REG50_MMU_RTR_SHIFT)
+
+#define MH_DEBUG_REG50_SET_RF_MMU_CONFIG_q(mh_debug_reg50_reg, rf_mmu_config_q) \
+ mh_debug_reg50_reg = (mh_debug_reg50_reg & ~MH_DEBUG_REG50_RF_MMU_CONFIG_q_MASK) | (rf_mmu_config_q << MH_DEBUG_REG50_RF_MMU_CONFIG_q_SHIFT)
+#define MH_DEBUG_REG50_SET_ARB_ID_q(mh_debug_reg50_reg, arb_id_q) \
+ mh_debug_reg50_reg = (mh_debug_reg50_reg & ~MH_DEBUG_REG50_ARB_ID_q_MASK) | (arb_id_q << MH_DEBUG_REG50_ARB_ID_q_SHIFT)
+#define MH_DEBUG_REG50_SET_ARB_WRITE_q(mh_debug_reg50_reg, arb_write_q) \
+ mh_debug_reg50_reg = (mh_debug_reg50_reg & ~MH_DEBUG_REG50_ARB_WRITE_q_MASK) | (arb_write_q << MH_DEBUG_REG50_ARB_WRITE_q_SHIFT)
+#define MH_DEBUG_REG50_SET_client_behavior_q(mh_debug_reg50_reg, client_behavior_q) \
+ mh_debug_reg50_reg = (mh_debug_reg50_reg & ~MH_DEBUG_REG50_client_behavior_q_MASK) | (client_behavior_q << MH_DEBUG_REG50_client_behavior_q_SHIFT)
+#define MH_DEBUG_REG50_SET_ARB_WE(mh_debug_reg50_reg, arb_we) \
+ mh_debug_reg50_reg = (mh_debug_reg50_reg & ~MH_DEBUG_REG50_ARB_WE_MASK) | (arb_we << MH_DEBUG_REG50_ARB_WE_SHIFT)
+#define MH_DEBUG_REG50_SET_MMU_RTR(mh_debug_reg50_reg, mmu_rtr) \
+ mh_debug_reg50_reg = (mh_debug_reg50_reg & ~MH_DEBUG_REG50_MMU_RTR_MASK) | (mmu_rtr << MH_DEBUG_REG50_MMU_RTR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg50_t {
+ unsigned int rf_mmu_config_q : MH_DEBUG_REG50_RF_MMU_CONFIG_q_SIZE;
+ unsigned int arb_id_q : MH_DEBUG_REG50_ARB_ID_q_SIZE;
+ unsigned int arb_write_q : MH_DEBUG_REG50_ARB_WRITE_q_SIZE;
+ unsigned int client_behavior_q : MH_DEBUG_REG50_client_behavior_q_SIZE;
+ unsigned int arb_we : MH_DEBUG_REG50_ARB_WE_SIZE;
+ unsigned int mmu_rtr : MH_DEBUG_REG50_MMU_RTR_SIZE;
+ } mh_debug_reg50_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg50_t {
+ unsigned int mmu_rtr : MH_DEBUG_REG50_MMU_RTR_SIZE;
+ unsigned int arb_we : MH_DEBUG_REG50_ARB_WE_SIZE;
+ unsigned int client_behavior_q : MH_DEBUG_REG50_client_behavior_q_SIZE;
+ unsigned int arb_write_q : MH_DEBUG_REG50_ARB_WRITE_q_SIZE;
+ unsigned int arb_id_q : MH_DEBUG_REG50_ARB_ID_q_SIZE;
+ unsigned int rf_mmu_config_q : MH_DEBUG_REG50_RF_MMU_CONFIG_q_SIZE;
+ } mh_debug_reg50_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg50_t f;
+} mh_debug_reg50_u;
+
+
+/*
+ * MH_DEBUG_REG51 struct
+ */
+
+#define MH_DEBUG_REG51_stage1_valid_SIZE 1
+#define MH_DEBUG_REG51_IGNORE_TAG_MISS_q_SIZE 1
+#define MH_DEBUG_REG51_pa_in_mpu_range_SIZE 1
+#define MH_DEBUG_REG51_tag_match_q_SIZE 1
+#define MH_DEBUG_REG51_tag_miss_q_SIZE 1
+#define MH_DEBUG_REG51_va_in_range_q_SIZE 1
+#define MH_DEBUG_REG51_MMU_MISS_SIZE 1
+#define MH_DEBUG_REG51_MMU_READ_MISS_SIZE 1
+#define MH_DEBUG_REG51_MMU_WRITE_MISS_SIZE 1
+#define MH_DEBUG_REG51_MMU_HIT_SIZE 1
+#define MH_DEBUG_REG51_MMU_READ_HIT_SIZE 1
+#define MH_DEBUG_REG51_MMU_WRITE_HIT_SIZE 1
+#define MH_DEBUG_REG51_MMU_SPLIT_MODE_TC_MISS_SIZE 1
+#define MH_DEBUG_REG51_MMU_SPLIT_MODE_TC_HIT_SIZE 1
+#define MH_DEBUG_REG51_MMU_SPLIT_MODE_nonTC_MISS_SIZE 1
+#define MH_DEBUG_REG51_MMU_SPLIT_MODE_nonTC_HIT_SIZE 1
+#define MH_DEBUG_REG51_REQ_VA_OFFSET_q_SIZE 16
+
+#define MH_DEBUG_REG51_stage1_valid_SHIFT 0
+#define MH_DEBUG_REG51_IGNORE_TAG_MISS_q_SHIFT 1
+#define MH_DEBUG_REG51_pa_in_mpu_range_SHIFT 2
+#define MH_DEBUG_REG51_tag_match_q_SHIFT 3
+#define MH_DEBUG_REG51_tag_miss_q_SHIFT 4
+#define MH_DEBUG_REG51_va_in_range_q_SHIFT 5
+#define MH_DEBUG_REG51_MMU_MISS_SHIFT 6
+#define MH_DEBUG_REG51_MMU_READ_MISS_SHIFT 7
+#define MH_DEBUG_REG51_MMU_WRITE_MISS_SHIFT 8
+#define MH_DEBUG_REG51_MMU_HIT_SHIFT 9
+#define MH_DEBUG_REG51_MMU_READ_HIT_SHIFT 10
+#define MH_DEBUG_REG51_MMU_WRITE_HIT_SHIFT 11
+#define MH_DEBUG_REG51_MMU_SPLIT_MODE_TC_MISS_SHIFT 12
+#define MH_DEBUG_REG51_MMU_SPLIT_MODE_TC_HIT_SHIFT 13
+#define MH_DEBUG_REG51_MMU_SPLIT_MODE_nonTC_MISS_SHIFT 14
+#define MH_DEBUG_REG51_MMU_SPLIT_MODE_nonTC_HIT_SHIFT 15
+#define MH_DEBUG_REG51_REQ_VA_OFFSET_q_SHIFT 16
+
+#define MH_DEBUG_REG51_stage1_valid_MASK 0x00000001
+#define MH_DEBUG_REG51_IGNORE_TAG_MISS_q_MASK 0x00000002
+#define MH_DEBUG_REG51_pa_in_mpu_range_MASK 0x00000004
+#define MH_DEBUG_REG51_tag_match_q_MASK 0x00000008
+#define MH_DEBUG_REG51_tag_miss_q_MASK 0x00000010
+#define MH_DEBUG_REG51_va_in_range_q_MASK 0x00000020
+#define MH_DEBUG_REG51_MMU_MISS_MASK 0x00000040
+#define MH_DEBUG_REG51_MMU_READ_MISS_MASK 0x00000080
+#define MH_DEBUG_REG51_MMU_WRITE_MISS_MASK 0x00000100
+#define MH_DEBUG_REG51_MMU_HIT_MASK 0x00000200
+#define MH_DEBUG_REG51_MMU_READ_HIT_MASK 0x00000400
+#define MH_DEBUG_REG51_MMU_WRITE_HIT_MASK 0x00000800
+#define MH_DEBUG_REG51_MMU_SPLIT_MODE_TC_MISS_MASK 0x00001000
+#define MH_DEBUG_REG51_MMU_SPLIT_MODE_TC_HIT_MASK 0x00002000
+#define MH_DEBUG_REG51_MMU_SPLIT_MODE_nonTC_MISS_MASK 0x00004000
+#define MH_DEBUG_REG51_MMU_SPLIT_MODE_nonTC_HIT_MASK 0x00008000
+#define MH_DEBUG_REG51_REQ_VA_OFFSET_q_MASK 0xffff0000
+
+#define MH_DEBUG_REG51_MASK \
+ (MH_DEBUG_REG51_stage1_valid_MASK | \
+ MH_DEBUG_REG51_IGNORE_TAG_MISS_q_MASK | \
+ MH_DEBUG_REG51_pa_in_mpu_range_MASK | \
+ MH_DEBUG_REG51_tag_match_q_MASK | \
+ MH_DEBUG_REG51_tag_miss_q_MASK | \
+ MH_DEBUG_REG51_va_in_range_q_MASK | \
+ MH_DEBUG_REG51_MMU_MISS_MASK | \
+ MH_DEBUG_REG51_MMU_READ_MISS_MASK | \
+ MH_DEBUG_REG51_MMU_WRITE_MISS_MASK | \
+ MH_DEBUG_REG51_MMU_HIT_MASK | \
+ MH_DEBUG_REG51_MMU_READ_HIT_MASK | \
+ MH_DEBUG_REG51_MMU_WRITE_HIT_MASK | \
+ MH_DEBUG_REG51_MMU_SPLIT_MODE_TC_MISS_MASK | \
+ MH_DEBUG_REG51_MMU_SPLIT_MODE_TC_HIT_MASK | \
+ MH_DEBUG_REG51_MMU_SPLIT_MODE_nonTC_MISS_MASK | \
+ MH_DEBUG_REG51_MMU_SPLIT_MODE_nonTC_HIT_MASK | \
+ MH_DEBUG_REG51_REQ_VA_OFFSET_q_MASK)
+
+#define MH_DEBUG_REG51(stage1_valid, ignore_tag_miss_q, pa_in_mpu_range, tag_match_q, tag_miss_q, va_in_range_q, mmu_miss, mmu_read_miss, mmu_write_miss, mmu_hit, mmu_read_hit, mmu_write_hit, mmu_split_mode_tc_miss, mmu_split_mode_tc_hit, mmu_split_mode_nontc_miss, mmu_split_mode_nontc_hit, req_va_offset_q) \
+ ((stage1_valid << MH_DEBUG_REG51_stage1_valid_SHIFT) | \
+ (ignore_tag_miss_q << MH_DEBUG_REG51_IGNORE_TAG_MISS_q_SHIFT) | \
+ (pa_in_mpu_range << MH_DEBUG_REG51_pa_in_mpu_range_SHIFT) | \
+ (tag_match_q << MH_DEBUG_REG51_tag_match_q_SHIFT) | \
+ (tag_miss_q << MH_DEBUG_REG51_tag_miss_q_SHIFT) | \
+ (va_in_range_q << MH_DEBUG_REG51_va_in_range_q_SHIFT) | \
+ (mmu_miss << MH_DEBUG_REG51_MMU_MISS_SHIFT) | \
+ (mmu_read_miss << MH_DEBUG_REG51_MMU_READ_MISS_SHIFT) | \
+ (mmu_write_miss << MH_DEBUG_REG51_MMU_WRITE_MISS_SHIFT) | \
+ (mmu_hit << MH_DEBUG_REG51_MMU_HIT_SHIFT) | \
+ (mmu_read_hit << MH_DEBUG_REG51_MMU_READ_HIT_SHIFT) | \
+ (mmu_write_hit << MH_DEBUG_REG51_MMU_WRITE_HIT_SHIFT) | \
+ (mmu_split_mode_tc_miss << MH_DEBUG_REG51_MMU_SPLIT_MODE_TC_MISS_SHIFT) | \
+ (mmu_split_mode_tc_hit << MH_DEBUG_REG51_MMU_SPLIT_MODE_TC_HIT_SHIFT) | \
+ (mmu_split_mode_nontc_miss << MH_DEBUG_REG51_MMU_SPLIT_MODE_nonTC_MISS_SHIFT) | \
+ (mmu_split_mode_nontc_hit << MH_DEBUG_REG51_MMU_SPLIT_MODE_nonTC_HIT_SHIFT) | \
+ (req_va_offset_q << MH_DEBUG_REG51_REQ_VA_OFFSET_q_SHIFT))
+
+#define MH_DEBUG_REG51_GET_stage1_valid(mh_debug_reg51) \
+ ((mh_debug_reg51 & MH_DEBUG_REG51_stage1_valid_MASK) >> MH_DEBUG_REG51_stage1_valid_SHIFT)
+#define MH_DEBUG_REG51_GET_IGNORE_TAG_MISS_q(mh_debug_reg51) \
+ ((mh_debug_reg51 & MH_DEBUG_REG51_IGNORE_TAG_MISS_q_MASK) >> MH_DEBUG_REG51_IGNORE_TAG_MISS_q_SHIFT)
+#define MH_DEBUG_REG51_GET_pa_in_mpu_range(mh_debug_reg51) \
+ ((mh_debug_reg51 & MH_DEBUG_REG51_pa_in_mpu_range_MASK) >> MH_DEBUG_REG51_pa_in_mpu_range_SHIFT)
+#define MH_DEBUG_REG51_GET_tag_match_q(mh_debug_reg51) \
+ ((mh_debug_reg51 & MH_DEBUG_REG51_tag_match_q_MASK) >> MH_DEBUG_REG51_tag_match_q_SHIFT)
+#define MH_DEBUG_REG51_GET_tag_miss_q(mh_debug_reg51) \
+ ((mh_debug_reg51 & MH_DEBUG_REG51_tag_miss_q_MASK) >> MH_DEBUG_REG51_tag_miss_q_SHIFT)
+#define MH_DEBUG_REG51_GET_va_in_range_q(mh_debug_reg51) \
+ ((mh_debug_reg51 & MH_DEBUG_REG51_va_in_range_q_MASK) >> MH_DEBUG_REG51_va_in_range_q_SHIFT)
+#define MH_DEBUG_REG51_GET_MMU_MISS(mh_debug_reg51) \
+ ((mh_debug_reg51 & MH_DEBUG_REG51_MMU_MISS_MASK) >> MH_DEBUG_REG51_MMU_MISS_SHIFT)
+#define MH_DEBUG_REG51_GET_MMU_READ_MISS(mh_debug_reg51) \
+ ((mh_debug_reg51 & MH_DEBUG_REG51_MMU_READ_MISS_MASK) >> MH_DEBUG_REG51_MMU_READ_MISS_SHIFT)
+#define MH_DEBUG_REG51_GET_MMU_WRITE_MISS(mh_debug_reg51) \
+ ((mh_debug_reg51 & MH_DEBUG_REG51_MMU_WRITE_MISS_MASK) >> MH_DEBUG_REG51_MMU_WRITE_MISS_SHIFT)
+#define MH_DEBUG_REG51_GET_MMU_HIT(mh_debug_reg51) \
+ ((mh_debug_reg51 & MH_DEBUG_REG51_MMU_HIT_MASK) >> MH_DEBUG_REG51_MMU_HIT_SHIFT)
+#define MH_DEBUG_REG51_GET_MMU_READ_HIT(mh_debug_reg51) \
+ ((mh_debug_reg51 & MH_DEBUG_REG51_MMU_READ_HIT_MASK) >> MH_DEBUG_REG51_MMU_READ_HIT_SHIFT)
+#define MH_DEBUG_REG51_GET_MMU_WRITE_HIT(mh_debug_reg51) \
+ ((mh_debug_reg51 & MH_DEBUG_REG51_MMU_WRITE_HIT_MASK) >> MH_DEBUG_REG51_MMU_WRITE_HIT_SHIFT)
+#define MH_DEBUG_REG51_GET_MMU_SPLIT_MODE_TC_MISS(mh_debug_reg51) \
+ ((mh_debug_reg51 & MH_DEBUG_REG51_MMU_SPLIT_MODE_TC_MISS_MASK) >> MH_DEBUG_REG51_MMU_SPLIT_MODE_TC_MISS_SHIFT)
+#define MH_DEBUG_REG51_GET_MMU_SPLIT_MODE_TC_HIT(mh_debug_reg51) \
+ ((mh_debug_reg51 & MH_DEBUG_REG51_MMU_SPLIT_MODE_TC_HIT_MASK) >> MH_DEBUG_REG51_MMU_SPLIT_MODE_TC_HIT_SHIFT)
+#define MH_DEBUG_REG51_GET_MMU_SPLIT_MODE_nonTC_MISS(mh_debug_reg51) \
+ ((mh_debug_reg51 & MH_DEBUG_REG51_MMU_SPLIT_MODE_nonTC_MISS_MASK) >> MH_DEBUG_REG51_MMU_SPLIT_MODE_nonTC_MISS_SHIFT)
+#define MH_DEBUG_REG51_GET_MMU_SPLIT_MODE_nonTC_HIT(mh_debug_reg51) \
+ ((mh_debug_reg51 & MH_DEBUG_REG51_MMU_SPLIT_MODE_nonTC_HIT_MASK) >> MH_DEBUG_REG51_MMU_SPLIT_MODE_nonTC_HIT_SHIFT)
+#define MH_DEBUG_REG51_GET_REQ_VA_OFFSET_q(mh_debug_reg51) \
+ ((mh_debug_reg51 & MH_DEBUG_REG51_REQ_VA_OFFSET_q_MASK) >> MH_DEBUG_REG51_REQ_VA_OFFSET_q_SHIFT)
+
+#define MH_DEBUG_REG51_SET_stage1_valid(mh_debug_reg51_reg, stage1_valid) \
+ mh_debug_reg51_reg = (mh_debug_reg51_reg & ~MH_DEBUG_REG51_stage1_valid_MASK) | (stage1_valid << MH_DEBUG_REG51_stage1_valid_SHIFT)
+#define MH_DEBUG_REG51_SET_IGNORE_TAG_MISS_q(mh_debug_reg51_reg, ignore_tag_miss_q) \
+ mh_debug_reg51_reg = (mh_debug_reg51_reg & ~MH_DEBUG_REG51_IGNORE_TAG_MISS_q_MASK) | (ignore_tag_miss_q << MH_DEBUG_REG51_IGNORE_TAG_MISS_q_SHIFT)
+#define MH_DEBUG_REG51_SET_pa_in_mpu_range(mh_debug_reg51_reg, pa_in_mpu_range) \
+ mh_debug_reg51_reg = (mh_debug_reg51_reg & ~MH_DEBUG_REG51_pa_in_mpu_range_MASK) | (pa_in_mpu_range << MH_DEBUG_REG51_pa_in_mpu_range_SHIFT)
+#define MH_DEBUG_REG51_SET_tag_match_q(mh_debug_reg51_reg, tag_match_q) \
+ mh_debug_reg51_reg = (mh_debug_reg51_reg & ~MH_DEBUG_REG51_tag_match_q_MASK) | (tag_match_q << MH_DEBUG_REG51_tag_match_q_SHIFT)
+#define MH_DEBUG_REG51_SET_tag_miss_q(mh_debug_reg51_reg, tag_miss_q) \
+ mh_debug_reg51_reg = (mh_debug_reg51_reg & ~MH_DEBUG_REG51_tag_miss_q_MASK) | (tag_miss_q << MH_DEBUG_REG51_tag_miss_q_SHIFT)
+#define MH_DEBUG_REG51_SET_va_in_range_q(mh_debug_reg51_reg, va_in_range_q) \
+ mh_debug_reg51_reg = (mh_debug_reg51_reg & ~MH_DEBUG_REG51_va_in_range_q_MASK) | (va_in_range_q << MH_DEBUG_REG51_va_in_range_q_SHIFT)
+#define MH_DEBUG_REG51_SET_MMU_MISS(mh_debug_reg51_reg, mmu_miss) \
+ mh_debug_reg51_reg = (mh_debug_reg51_reg & ~MH_DEBUG_REG51_MMU_MISS_MASK) | (mmu_miss << MH_DEBUG_REG51_MMU_MISS_SHIFT)
+#define MH_DEBUG_REG51_SET_MMU_READ_MISS(mh_debug_reg51_reg, mmu_read_miss) \
+ mh_debug_reg51_reg = (mh_debug_reg51_reg & ~MH_DEBUG_REG51_MMU_READ_MISS_MASK) | (mmu_read_miss << MH_DEBUG_REG51_MMU_READ_MISS_SHIFT)
+#define MH_DEBUG_REG51_SET_MMU_WRITE_MISS(mh_debug_reg51_reg, mmu_write_miss) \
+ mh_debug_reg51_reg = (mh_debug_reg51_reg & ~MH_DEBUG_REG51_MMU_WRITE_MISS_MASK) | (mmu_write_miss << MH_DEBUG_REG51_MMU_WRITE_MISS_SHIFT)
+#define MH_DEBUG_REG51_SET_MMU_HIT(mh_debug_reg51_reg, mmu_hit) \
+ mh_debug_reg51_reg = (mh_debug_reg51_reg & ~MH_DEBUG_REG51_MMU_HIT_MASK) | (mmu_hit << MH_DEBUG_REG51_MMU_HIT_SHIFT)
+#define MH_DEBUG_REG51_SET_MMU_READ_HIT(mh_debug_reg51_reg, mmu_read_hit) \
+ mh_debug_reg51_reg = (mh_debug_reg51_reg & ~MH_DEBUG_REG51_MMU_READ_HIT_MASK) | (mmu_read_hit << MH_DEBUG_REG51_MMU_READ_HIT_SHIFT)
+#define MH_DEBUG_REG51_SET_MMU_WRITE_HIT(mh_debug_reg51_reg, mmu_write_hit) \
+ mh_debug_reg51_reg = (mh_debug_reg51_reg & ~MH_DEBUG_REG51_MMU_WRITE_HIT_MASK) | (mmu_write_hit << MH_DEBUG_REG51_MMU_WRITE_HIT_SHIFT)
+#define MH_DEBUG_REG51_SET_MMU_SPLIT_MODE_TC_MISS(mh_debug_reg51_reg, mmu_split_mode_tc_miss) \
+ mh_debug_reg51_reg = (mh_debug_reg51_reg & ~MH_DEBUG_REG51_MMU_SPLIT_MODE_TC_MISS_MASK) | (mmu_split_mode_tc_miss << MH_DEBUG_REG51_MMU_SPLIT_MODE_TC_MISS_SHIFT)
+#define MH_DEBUG_REG51_SET_MMU_SPLIT_MODE_TC_HIT(mh_debug_reg51_reg, mmu_split_mode_tc_hit) \
+ mh_debug_reg51_reg = (mh_debug_reg51_reg & ~MH_DEBUG_REG51_MMU_SPLIT_MODE_TC_HIT_MASK) | (mmu_split_mode_tc_hit << MH_DEBUG_REG51_MMU_SPLIT_MODE_TC_HIT_SHIFT)
+#define MH_DEBUG_REG51_SET_MMU_SPLIT_MODE_nonTC_MISS(mh_debug_reg51_reg, mmu_split_mode_nontc_miss) \
+ mh_debug_reg51_reg = (mh_debug_reg51_reg & ~MH_DEBUG_REG51_MMU_SPLIT_MODE_nonTC_MISS_MASK) | (mmu_split_mode_nontc_miss << MH_DEBUG_REG51_MMU_SPLIT_MODE_nonTC_MISS_SHIFT)
+#define MH_DEBUG_REG51_SET_MMU_SPLIT_MODE_nonTC_HIT(mh_debug_reg51_reg, mmu_split_mode_nontc_hit) \
+ mh_debug_reg51_reg = (mh_debug_reg51_reg & ~MH_DEBUG_REG51_MMU_SPLIT_MODE_nonTC_HIT_MASK) | (mmu_split_mode_nontc_hit << MH_DEBUG_REG51_MMU_SPLIT_MODE_nonTC_HIT_SHIFT)
+#define MH_DEBUG_REG51_SET_REQ_VA_OFFSET_q(mh_debug_reg51_reg, req_va_offset_q) \
+ mh_debug_reg51_reg = (mh_debug_reg51_reg & ~MH_DEBUG_REG51_REQ_VA_OFFSET_q_MASK) | (req_va_offset_q << MH_DEBUG_REG51_REQ_VA_OFFSET_q_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg51_t {
+ unsigned int stage1_valid : MH_DEBUG_REG51_stage1_valid_SIZE;
+ unsigned int ignore_tag_miss_q : MH_DEBUG_REG51_IGNORE_TAG_MISS_q_SIZE;
+ unsigned int pa_in_mpu_range : MH_DEBUG_REG51_pa_in_mpu_range_SIZE;
+ unsigned int tag_match_q : MH_DEBUG_REG51_tag_match_q_SIZE;
+ unsigned int tag_miss_q : MH_DEBUG_REG51_tag_miss_q_SIZE;
+ unsigned int va_in_range_q : MH_DEBUG_REG51_va_in_range_q_SIZE;
+ unsigned int mmu_miss : MH_DEBUG_REG51_MMU_MISS_SIZE;
+ unsigned int mmu_read_miss : MH_DEBUG_REG51_MMU_READ_MISS_SIZE;
+ unsigned int mmu_write_miss : MH_DEBUG_REG51_MMU_WRITE_MISS_SIZE;
+ unsigned int mmu_hit : MH_DEBUG_REG51_MMU_HIT_SIZE;
+ unsigned int mmu_read_hit : MH_DEBUG_REG51_MMU_READ_HIT_SIZE;
+ unsigned int mmu_write_hit : MH_DEBUG_REG51_MMU_WRITE_HIT_SIZE;
+ unsigned int mmu_split_mode_tc_miss : MH_DEBUG_REG51_MMU_SPLIT_MODE_TC_MISS_SIZE;
+ unsigned int mmu_split_mode_tc_hit : MH_DEBUG_REG51_MMU_SPLIT_MODE_TC_HIT_SIZE;
+ unsigned int mmu_split_mode_nontc_miss : MH_DEBUG_REG51_MMU_SPLIT_MODE_nonTC_MISS_SIZE;
+ unsigned int mmu_split_mode_nontc_hit : MH_DEBUG_REG51_MMU_SPLIT_MODE_nonTC_HIT_SIZE;
+ unsigned int req_va_offset_q : MH_DEBUG_REG51_REQ_VA_OFFSET_q_SIZE;
+ } mh_debug_reg51_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg51_t {
+ unsigned int req_va_offset_q : MH_DEBUG_REG51_REQ_VA_OFFSET_q_SIZE;
+ unsigned int mmu_split_mode_nontc_hit : MH_DEBUG_REG51_MMU_SPLIT_MODE_nonTC_HIT_SIZE;
+ unsigned int mmu_split_mode_nontc_miss : MH_DEBUG_REG51_MMU_SPLIT_MODE_nonTC_MISS_SIZE;
+ unsigned int mmu_split_mode_tc_hit : MH_DEBUG_REG51_MMU_SPLIT_MODE_TC_HIT_SIZE;
+ unsigned int mmu_split_mode_tc_miss : MH_DEBUG_REG51_MMU_SPLIT_MODE_TC_MISS_SIZE;
+ unsigned int mmu_write_hit : MH_DEBUG_REG51_MMU_WRITE_HIT_SIZE;
+ unsigned int mmu_read_hit : MH_DEBUG_REG51_MMU_READ_HIT_SIZE;
+ unsigned int mmu_hit : MH_DEBUG_REG51_MMU_HIT_SIZE;
+ unsigned int mmu_write_miss : MH_DEBUG_REG51_MMU_WRITE_MISS_SIZE;
+ unsigned int mmu_read_miss : MH_DEBUG_REG51_MMU_READ_MISS_SIZE;
+ unsigned int mmu_miss : MH_DEBUG_REG51_MMU_MISS_SIZE;
+ unsigned int va_in_range_q : MH_DEBUG_REG51_va_in_range_q_SIZE;
+ unsigned int tag_miss_q : MH_DEBUG_REG51_tag_miss_q_SIZE;
+ unsigned int tag_match_q : MH_DEBUG_REG51_tag_match_q_SIZE;
+ unsigned int pa_in_mpu_range : MH_DEBUG_REG51_pa_in_mpu_range_SIZE;
+ unsigned int ignore_tag_miss_q : MH_DEBUG_REG51_IGNORE_TAG_MISS_q_SIZE;
+ unsigned int stage1_valid : MH_DEBUG_REG51_stage1_valid_SIZE;
+ } mh_debug_reg51_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg51_t f;
+} mh_debug_reg51_u;
+
+
+/*
+ * MH_DEBUG_REG52 struct
+ */
+
+#define MH_DEBUG_REG52_ARQ_RTR_SIZE 1
+#define MH_DEBUG_REG52_MMU_WE_SIZE 1
+#define MH_DEBUG_REG52_CTRL_TLBMISS_RE_q_SIZE 1
+#define MH_DEBUG_REG52_TLBMISS_CTRL_RTS_SIZE 1
+#define MH_DEBUG_REG52_MH_TLBMISS_SEND_SIZE 1
+#define MH_DEBUG_REG52_MMU_STALL_AWAITING_TLB_MISS_FETCH_SIZE 1
+#define MH_DEBUG_REG52_pa_in_mpu_range_SIZE 1
+#define MH_DEBUG_REG52_stage1_valid_SIZE 1
+#define MH_DEBUG_REG52_stage2_valid_SIZE 1
+#define MH_DEBUG_REG52_client_behavior_q_SIZE 2
+#define MH_DEBUG_REG52_IGNORE_TAG_MISS_q_SIZE 1
+#define MH_DEBUG_REG52_tag_match_q_SIZE 1
+#define MH_DEBUG_REG52_tag_miss_q_SIZE 1
+#define MH_DEBUG_REG52_va_in_range_q_SIZE 1
+#define MH_DEBUG_REG52_PTE_FETCH_COMPLETE_q_SIZE 1
+#define MH_DEBUG_REG52_TAG_valid_q_SIZE 16
+
+#define MH_DEBUG_REG52_ARQ_RTR_SHIFT 0
+#define MH_DEBUG_REG52_MMU_WE_SHIFT 1
+#define MH_DEBUG_REG52_CTRL_TLBMISS_RE_q_SHIFT 2
+#define MH_DEBUG_REG52_TLBMISS_CTRL_RTS_SHIFT 3
+#define MH_DEBUG_REG52_MH_TLBMISS_SEND_SHIFT 4
+#define MH_DEBUG_REG52_MMU_STALL_AWAITING_TLB_MISS_FETCH_SHIFT 5
+#define MH_DEBUG_REG52_pa_in_mpu_range_SHIFT 6
+#define MH_DEBUG_REG52_stage1_valid_SHIFT 7
+#define MH_DEBUG_REG52_stage2_valid_SHIFT 8
+#define MH_DEBUG_REG52_client_behavior_q_SHIFT 9
+#define MH_DEBUG_REG52_IGNORE_TAG_MISS_q_SHIFT 11
+#define MH_DEBUG_REG52_tag_match_q_SHIFT 12
+#define MH_DEBUG_REG52_tag_miss_q_SHIFT 13
+#define MH_DEBUG_REG52_va_in_range_q_SHIFT 14
+#define MH_DEBUG_REG52_PTE_FETCH_COMPLETE_q_SHIFT 15
+#define MH_DEBUG_REG52_TAG_valid_q_SHIFT 16
+
+#define MH_DEBUG_REG52_ARQ_RTR_MASK 0x00000001
+#define MH_DEBUG_REG52_MMU_WE_MASK 0x00000002
+#define MH_DEBUG_REG52_CTRL_TLBMISS_RE_q_MASK 0x00000004
+#define MH_DEBUG_REG52_TLBMISS_CTRL_RTS_MASK 0x00000008
+#define MH_DEBUG_REG52_MH_TLBMISS_SEND_MASK 0x00000010
+#define MH_DEBUG_REG52_MMU_STALL_AWAITING_TLB_MISS_FETCH_MASK 0x00000020
+#define MH_DEBUG_REG52_pa_in_mpu_range_MASK 0x00000040
+#define MH_DEBUG_REG52_stage1_valid_MASK 0x00000080
+#define MH_DEBUG_REG52_stage2_valid_MASK 0x00000100
+#define MH_DEBUG_REG52_client_behavior_q_MASK 0x00000600
+#define MH_DEBUG_REG52_IGNORE_TAG_MISS_q_MASK 0x00000800
+#define MH_DEBUG_REG52_tag_match_q_MASK 0x00001000
+#define MH_DEBUG_REG52_tag_miss_q_MASK 0x00002000
+#define MH_DEBUG_REG52_va_in_range_q_MASK 0x00004000
+#define MH_DEBUG_REG52_PTE_FETCH_COMPLETE_q_MASK 0x00008000
+#define MH_DEBUG_REG52_TAG_valid_q_MASK 0xffff0000
+
+#define MH_DEBUG_REG52_MASK \
+ (MH_DEBUG_REG52_ARQ_RTR_MASK | \
+ MH_DEBUG_REG52_MMU_WE_MASK | \
+ MH_DEBUG_REG52_CTRL_TLBMISS_RE_q_MASK | \
+ MH_DEBUG_REG52_TLBMISS_CTRL_RTS_MASK | \
+ MH_DEBUG_REG52_MH_TLBMISS_SEND_MASK | \
+ MH_DEBUG_REG52_MMU_STALL_AWAITING_TLB_MISS_FETCH_MASK | \
+ MH_DEBUG_REG52_pa_in_mpu_range_MASK | \
+ MH_DEBUG_REG52_stage1_valid_MASK | \
+ MH_DEBUG_REG52_stage2_valid_MASK | \
+ MH_DEBUG_REG52_client_behavior_q_MASK | \
+ MH_DEBUG_REG52_IGNORE_TAG_MISS_q_MASK | \
+ MH_DEBUG_REG52_tag_match_q_MASK | \
+ MH_DEBUG_REG52_tag_miss_q_MASK | \
+ MH_DEBUG_REG52_va_in_range_q_MASK | \
+ MH_DEBUG_REG52_PTE_FETCH_COMPLETE_q_MASK | \
+ MH_DEBUG_REG52_TAG_valid_q_MASK)
+
+#define MH_DEBUG_REG52(arq_rtr, mmu_we, ctrl_tlbmiss_re_q, tlbmiss_ctrl_rts, mh_tlbmiss_send, mmu_stall_awaiting_tlb_miss_fetch, pa_in_mpu_range, stage1_valid, stage2_valid, client_behavior_q, ignore_tag_miss_q, tag_match_q, tag_miss_q, va_in_range_q, pte_fetch_complete_q, tag_valid_q) \
+ ((arq_rtr << MH_DEBUG_REG52_ARQ_RTR_SHIFT) | \
+ (mmu_we << MH_DEBUG_REG52_MMU_WE_SHIFT) | \
+ (ctrl_tlbmiss_re_q << MH_DEBUG_REG52_CTRL_TLBMISS_RE_q_SHIFT) | \
+ (tlbmiss_ctrl_rts << MH_DEBUG_REG52_TLBMISS_CTRL_RTS_SHIFT) | \
+ (mh_tlbmiss_send << MH_DEBUG_REG52_MH_TLBMISS_SEND_SHIFT) | \
+ (mmu_stall_awaiting_tlb_miss_fetch << MH_DEBUG_REG52_MMU_STALL_AWAITING_TLB_MISS_FETCH_SHIFT) | \
+ (pa_in_mpu_range << MH_DEBUG_REG52_pa_in_mpu_range_SHIFT) | \
+ (stage1_valid << MH_DEBUG_REG52_stage1_valid_SHIFT) | \
+ (stage2_valid << MH_DEBUG_REG52_stage2_valid_SHIFT) | \
+ (client_behavior_q << MH_DEBUG_REG52_client_behavior_q_SHIFT) | \
+ (ignore_tag_miss_q << MH_DEBUG_REG52_IGNORE_TAG_MISS_q_SHIFT) | \
+ (tag_match_q << MH_DEBUG_REG52_tag_match_q_SHIFT) | \
+ (tag_miss_q << MH_DEBUG_REG52_tag_miss_q_SHIFT) | \
+ (va_in_range_q << MH_DEBUG_REG52_va_in_range_q_SHIFT) | \
+ (pte_fetch_complete_q << MH_DEBUG_REG52_PTE_FETCH_COMPLETE_q_SHIFT) | \
+ (tag_valid_q << MH_DEBUG_REG52_TAG_valid_q_SHIFT))
+
+#define MH_DEBUG_REG52_GET_ARQ_RTR(mh_debug_reg52) \
+ ((mh_debug_reg52 & MH_DEBUG_REG52_ARQ_RTR_MASK) >> MH_DEBUG_REG52_ARQ_RTR_SHIFT)
+#define MH_DEBUG_REG52_GET_MMU_WE(mh_debug_reg52) \
+ ((mh_debug_reg52 & MH_DEBUG_REG52_MMU_WE_MASK) >> MH_DEBUG_REG52_MMU_WE_SHIFT)
+#define MH_DEBUG_REG52_GET_CTRL_TLBMISS_RE_q(mh_debug_reg52) \
+ ((mh_debug_reg52 & MH_DEBUG_REG52_CTRL_TLBMISS_RE_q_MASK) >> MH_DEBUG_REG52_CTRL_TLBMISS_RE_q_SHIFT)
+#define MH_DEBUG_REG52_GET_TLBMISS_CTRL_RTS(mh_debug_reg52) \
+ ((mh_debug_reg52 & MH_DEBUG_REG52_TLBMISS_CTRL_RTS_MASK) >> MH_DEBUG_REG52_TLBMISS_CTRL_RTS_SHIFT)
+#define MH_DEBUG_REG52_GET_MH_TLBMISS_SEND(mh_debug_reg52) \
+ ((mh_debug_reg52 & MH_DEBUG_REG52_MH_TLBMISS_SEND_MASK) >> MH_DEBUG_REG52_MH_TLBMISS_SEND_SHIFT)
+#define MH_DEBUG_REG52_GET_MMU_STALL_AWAITING_TLB_MISS_FETCH(mh_debug_reg52) \
+ ((mh_debug_reg52 & MH_DEBUG_REG52_MMU_STALL_AWAITING_TLB_MISS_FETCH_MASK) >> MH_DEBUG_REG52_MMU_STALL_AWAITING_TLB_MISS_FETCH_SHIFT)
+#define MH_DEBUG_REG52_GET_pa_in_mpu_range(mh_debug_reg52) \
+ ((mh_debug_reg52 & MH_DEBUG_REG52_pa_in_mpu_range_MASK) >> MH_DEBUG_REG52_pa_in_mpu_range_SHIFT)
+#define MH_DEBUG_REG52_GET_stage1_valid(mh_debug_reg52) \
+ ((mh_debug_reg52 & MH_DEBUG_REG52_stage1_valid_MASK) >> MH_DEBUG_REG52_stage1_valid_SHIFT)
+#define MH_DEBUG_REG52_GET_stage2_valid(mh_debug_reg52) \
+ ((mh_debug_reg52 & MH_DEBUG_REG52_stage2_valid_MASK) >> MH_DEBUG_REG52_stage2_valid_SHIFT)
+#define MH_DEBUG_REG52_GET_client_behavior_q(mh_debug_reg52) \
+ ((mh_debug_reg52 & MH_DEBUG_REG52_client_behavior_q_MASK) >> MH_DEBUG_REG52_client_behavior_q_SHIFT)
+#define MH_DEBUG_REG52_GET_IGNORE_TAG_MISS_q(mh_debug_reg52) \
+ ((mh_debug_reg52 & MH_DEBUG_REG52_IGNORE_TAG_MISS_q_MASK) >> MH_DEBUG_REG52_IGNORE_TAG_MISS_q_SHIFT)
+#define MH_DEBUG_REG52_GET_tag_match_q(mh_debug_reg52) \
+ ((mh_debug_reg52 & MH_DEBUG_REG52_tag_match_q_MASK) >> MH_DEBUG_REG52_tag_match_q_SHIFT)
+#define MH_DEBUG_REG52_GET_tag_miss_q(mh_debug_reg52) \
+ ((mh_debug_reg52 & MH_DEBUG_REG52_tag_miss_q_MASK) >> MH_DEBUG_REG52_tag_miss_q_SHIFT)
+#define MH_DEBUG_REG52_GET_va_in_range_q(mh_debug_reg52) \
+ ((mh_debug_reg52 & MH_DEBUG_REG52_va_in_range_q_MASK) >> MH_DEBUG_REG52_va_in_range_q_SHIFT)
+#define MH_DEBUG_REG52_GET_PTE_FETCH_COMPLETE_q(mh_debug_reg52) \
+ ((mh_debug_reg52 & MH_DEBUG_REG52_PTE_FETCH_COMPLETE_q_MASK) >> MH_DEBUG_REG52_PTE_FETCH_COMPLETE_q_SHIFT)
+#define MH_DEBUG_REG52_GET_TAG_valid_q(mh_debug_reg52) \
+ ((mh_debug_reg52 & MH_DEBUG_REG52_TAG_valid_q_MASK) >> MH_DEBUG_REG52_TAG_valid_q_SHIFT)
+
+#define MH_DEBUG_REG52_SET_ARQ_RTR(mh_debug_reg52_reg, arq_rtr) \
+ mh_debug_reg52_reg = (mh_debug_reg52_reg & ~MH_DEBUG_REG52_ARQ_RTR_MASK) | (arq_rtr << MH_DEBUG_REG52_ARQ_RTR_SHIFT)
+#define MH_DEBUG_REG52_SET_MMU_WE(mh_debug_reg52_reg, mmu_we) \
+ mh_debug_reg52_reg = (mh_debug_reg52_reg & ~MH_DEBUG_REG52_MMU_WE_MASK) | (mmu_we << MH_DEBUG_REG52_MMU_WE_SHIFT)
+#define MH_DEBUG_REG52_SET_CTRL_TLBMISS_RE_q(mh_debug_reg52_reg, ctrl_tlbmiss_re_q) \
+ mh_debug_reg52_reg = (mh_debug_reg52_reg & ~MH_DEBUG_REG52_CTRL_TLBMISS_RE_q_MASK) | (ctrl_tlbmiss_re_q << MH_DEBUG_REG52_CTRL_TLBMISS_RE_q_SHIFT)
+#define MH_DEBUG_REG52_SET_TLBMISS_CTRL_RTS(mh_debug_reg52_reg, tlbmiss_ctrl_rts) \
+ mh_debug_reg52_reg = (mh_debug_reg52_reg & ~MH_DEBUG_REG52_TLBMISS_CTRL_RTS_MASK) | (tlbmiss_ctrl_rts << MH_DEBUG_REG52_TLBMISS_CTRL_RTS_SHIFT)
+#define MH_DEBUG_REG52_SET_MH_TLBMISS_SEND(mh_debug_reg52_reg, mh_tlbmiss_send) \
+ mh_debug_reg52_reg = (mh_debug_reg52_reg & ~MH_DEBUG_REG52_MH_TLBMISS_SEND_MASK) | (mh_tlbmiss_send << MH_DEBUG_REG52_MH_TLBMISS_SEND_SHIFT)
+#define MH_DEBUG_REG52_SET_MMU_STALL_AWAITING_TLB_MISS_FETCH(mh_debug_reg52_reg, mmu_stall_awaiting_tlb_miss_fetch) \
+ mh_debug_reg52_reg = (mh_debug_reg52_reg & ~MH_DEBUG_REG52_MMU_STALL_AWAITING_TLB_MISS_FETCH_MASK) | (mmu_stall_awaiting_tlb_miss_fetch << MH_DEBUG_REG52_MMU_STALL_AWAITING_TLB_MISS_FETCH_SHIFT)
+#define MH_DEBUG_REG52_SET_pa_in_mpu_range(mh_debug_reg52_reg, pa_in_mpu_range) \
+ mh_debug_reg52_reg = (mh_debug_reg52_reg & ~MH_DEBUG_REG52_pa_in_mpu_range_MASK) | (pa_in_mpu_range << MH_DEBUG_REG52_pa_in_mpu_range_SHIFT)
+#define MH_DEBUG_REG52_SET_stage1_valid(mh_debug_reg52_reg, stage1_valid) \
+ mh_debug_reg52_reg = (mh_debug_reg52_reg & ~MH_DEBUG_REG52_stage1_valid_MASK) | (stage1_valid << MH_DEBUG_REG52_stage1_valid_SHIFT)
+#define MH_DEBUG_REG52_SET_stage2_valid(mh_debug_reg52_reg, stage2_valid) \
+ mh_debug_reg52_reg = (mh_debug_reg52_reg & ~MH_DEBUG_REG52_stage2_valid_MASK) | (stage2_valid << MH_DEBUG_REG52_stage2_valid_SHIFT)
+#define MH_DEBUG_REG52_SET_client_behavior_q(mh_debug_reg52_reg, client_behavior_q) \
+ mh_debug_reg52_reg = (mh_debug_reg52_reg & ~MH_DEBUG_REG52_client_behavior_q_MASK) | (client_behavior_q << MH_DEBUG_REG52_client_behavior_q_SHIFT)
+#define MH_DEBUG_REG52_SET_IGNORE_TAG_MISS_q(mh_debug_reg52_reg, ignore_tag_miss_q) \
+ mh_debug_reg52_reg = (mh_debug_reg52_reg & ~MH_DEBUG_REG52_IGNORE_TAG_MISS_q_MASK) | (ignore_tag_miss_q << MH_DEBUG_REG52_IGNORE_TAG_MISS_q_SHIFT)
+#define MH_DEBUG_REG52_SET_tag_match_q(mh_debug_reg52_reg, tag_match_q) \
+ mh_debug_reg52_reg = (mh_debug_reg52_reg & ~MH_DEBUG_REG52_tag_match_q_MASK) | (tag_match_q << MH_DEBUG_REG52_tag_match_q_SHIFT)
+#define MH_DEBUG_REG52_SET_tag_miss_q(mh_debug_reg52_reg, tag_miss_q) \
+ mh_debug_reg52_reg = (mh_debug_reg52_reg & ~MH_DEBUG_REG52_tag_miss_q_MASK) | (tag_miss_q << MH_DEBUG_REG52_tag_miss_q_SHIFT)
+#define MH_DEBUG_REG52_SET_va_in_range_q(mh_debug_reg52_reg, va_in_range_q) \
+ mh_debug_reg52_reg = (mh_debug_reg52_reg & ~MH_DEBUG_REG52_va_in_range_q_MASK) | (va_in_range_q << MH_DEBUG_REG52_va_in_range_q_SHIFT)
+#define MH_DEBUG_REG52_SET_PTE_FETCH_COMPLETE_q(mh_debug_reg52_reg, pte_fetch_complete_q) \
+ mh_debug_reg52_reg = (mh_debug_reg52_reg & ~MH_DEBUG_REG52_PTE_FETCH_COMPLETE_q_MASK) | (pte_fetch_complete_q << MH_DEBUG_REG52_PTE_FETCH_COMPLETE_q_SHIFT)
+#define MH_DEBUG_REG52_SET_TAG_valid_q(mh_debug_reg52_reg, tag_valid_q) \
+ mh_debug_reg52_reg = (mh_debug_reg52_reg & ~MH_DEBUG_REG52_TAG_valid_q_MASK) | (tag_valid_q << MH_DEBUG_REG52_TAG_valid_q_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg52_t {
+ unsigned int arq_rtr : MH_DEBUG_REG52_ARQ_RTR_SIZE;
+ unsigned int mmu_we : MH_DEBUG_REG52_MMU_WE_SIZE;
+ unsigned int ctrl_tlbmiss_re_q : MH_DEBUG_REG52_CTRL_TLBMISS_RE_q_SIZE;
+ unsigned int tlbmiss_ctrl_rts : MH_DEBUG_REG52_TLBMISS_CTRL_RTS_SIZE;
+ unsigned int mh_tlbmiss_send : MH_DEBUG_REG52_MH_TLBMISS_SEND_SIZE;
+ unsigned int mmu_stall_awaiting_tlb_miss_fetch : MH_DEBUG_REG52_MMU_STALL_AWAITING_TLB_MISS_FETCH_SIZE;
+ unsigned int pa_in_mpu_range : MH_DEBUG_REG52_pa_in_mpu_range_SIZE;
+ unsigned int stage1_valid : MH_DEBUG_REG52_stage1_valid_SIZE;
+ unsigned int stage2_valid : MH_DEBUG_REG52_stage2_valid_SIZE;
+ unsigned int client_behavior_q : MH_DEBUG_REG52_client_behavior_q_SIZE;
+ unsigned int ignore_tag_miss_q : MH_DEBUG_REG52_IGNORE_TAG_MISS_q_SIZE;
+ unsigned int tag_match_q : MH_DEBUG_REG52_tag_match_q_SIZE;
+ unsigned int tag_miss_q : MH_DEBUG_REG52_tag_miss_q_SIZE;
+ unsigned int va_in_range_q : MH_DEBUG_REG52_va_in_range_q_SIZE;
+ unsigned int pte_fetch_complete_q : MH_DEBUG_REG52_PTE_FETCH_COMPLETE_q_SIZE;
+ unsigned int tag_valid_q : MH_DEBUG_REG52_TAG_valid_q_SIZE;
+ } mh_debug_reg52_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg52_t {
+ unsigned int tag_valid_q : MH_DEBUG_REG52_TAG_valid_q_SIZE;
+ unsigned int pte_fetch_complete_q : MH_DEBUG_REG52_PTE_FETCH_COMPLETE_q_SIZE;
+ unsigned int va_in_range_q : MH_DEBUG_REG52_va_in_range_q_SIZE;
+ unsigned int tag_miss_q : MH_DEBUG_REG52_tag_miss_q_SIZE;
+ unsigned int tag_match_q : MH_DEBUG_REG52_tag_match_q_SIZE;
+ unsigned int ignore_tag_miss_q : MH_DEBUG_REG52_IGNORE_TAG_MISS_q_SIZE;
+ unsigned int client_behavior_q : MH_DEBUG_REG52_client_behavior_q_SIZE;
+ unsigned int stage2_valid : MH_DEBUG_REG52_stage2_valid_SIZE;
+ unsigned int stage1_valid : MH_DEBUG_REG52_stage1_valid_SIZE;
+ unsigned int pa_in_mpu_range : MH_DEBUG_REG52_pa_in_mpu_range_SIZE;
+ unsigned int mmu_stall_awaiting_tlb_miss_fetch : MH_DEBUG_REG52_MMU_STALL_AWAITING_TLB_MISS_FETCH_SIZE;
+ unsigned int mh_tlbmiss_send : MH_DEBUG_REG52_MH_TLBMISS_SEND_SIZE;
+ unsigned int tlbmiss_ctrl_rts : MH_DEBUG_REG52_TLBMISS_CTRL_RTS_SIZE;
+ unsigned int ctrl_tlbmiss_re_q : MH_DEBUG_REG52_CTRL_TLBMISS_RE_q_SIZE;
+ unsigned int mmu_we : MH_DEBUG_REG52_MMU_WE_SIZE;
+ unsigned int arq_rtr : MH_DEBUG_REG52_ARQ_RTR_SIZE;
+ } mh_debug_reg52_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg52_t f;
+} mh_debug_reg52_u;
+
+
+/*
+ * MH_DEBUG_REG53 struct
+ */
+
+#define MH_DEBUG_REG53_TAG0_VA_SIZE 13
+#define MH_DEBUG_REG53_TAG_valid_q_0_SIZE 1
+#define MH_DEBUG_REG53_ALWAYS_ZERO_SIZE 2
+#define MH_DEBUG_REG53_TAG1_VA_SIZE 13
+#define MH_DEBUG_REG53_TAG_valid_q_1_SIZE 1
+
+#define MH_DEBUG_REG53_TAG0_VA_SHIFT 0
+#define MH_DEBUG_REG53_TAG_valid_q_0_SHIFT 13
+#define MH_DEBUG_REG53_ALWAYS_ZERO_SHIFT 14
+#define MH_DEBUG_REG53_TAG1_VA_SHIFT 16
+#define MH_DEBUG_REG53_TAG_valid_q_1_SHIFT 29
+
+#define MH_DEBUG_REG53_TAG0_VA_MASK 0x00001fff
+#define MH_DEBUG_REG53_TAG_valid_q_0_MASK 0x00002000
+#define MH_DEBUG_REG53_ALWAYS_ZERO_MASK 0x0000c000
+#define MH_DEBUG_REG53_TAG1_VA_MASK 0x1fff0000
+#define MH_DEBUG_REG53_TAG_valid_q_1_MASK 0x20000000
+
+#define MH_DEBUG_REG53_MASK \
+ (MH_DEBUG_REG53_TAG0_VA_MASK | \
+ MH_DEBUG_REG53_TAG_valid_q_0_MASK | \
+ MH_DEBUG_REG53_ALWAYS_ZERO_MASK | \
+ MH_DEBUG_REG53_TAG1_VA_MASK | \
+ MH_DEBUG_REG53_TAG_valid_q_1_MASK)
+
+#define MH_DEBUG_REG53(tag0_va, tag_valid_q_0, always_zero, tag1_va, tag_valid_q_1) \
+ ((tag0_va << MH_DEBUG_REG53_TAG0_VA_SHIFT) | \
+ (tag_valid_q_0 << MH_DEBUG_REG53_TAG_valid_q_0_SHIFT) | \
+ (always_zero << MH_DEBUG_REG53_ALWAYS_ZERO_SHIFT) | \
+ (tag1_va << MH_DEBUG_REG53_TAG1_VA_SHIFT) | \
+ (tag_valid_q_1 << MH_DEBUG_REG53_TAG_valid_q_1_SHIFT))
+
+#define MH_DEBUG_REG53_GET_TAG0_VA(mh_debug_reg53) \
+ ((mh_debug_reg53 & MH_DEBUG_REG53_TAG0_VA_MASK) >> MH_DEBUG_REG53_TAG0_VA_SHIFT)
+#define MH_DEBUG_REG53_GET_TAG_valid_q_0(mh_debug_reg53) \
+ ((mh_debug_reg53 & MH_DEBUG_REG53_TAG_valid_q_0_MASK) >> MH_DEBUG_REG53_TAG_valid_q_0_SHIFT)
+#define MH_DEBUG_REG53_GET_ALWAYS_ZERO(mh_debug_reg53) \
+ ((mh_debug_reg53 & MH_DEBUG_REG53_ALWAYS_ZERO_MASK) >> MH_DEBUG_REG53_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG53_GET_TAG1_VA(mh_debug_reg53) \
+ ((mh_debug_reg53 & MH_DEBUG_REG53_TAG1_VA_MASK) >> MH_DEBUG_REG53_TAG1_VA_SHIFT)
+#define MH_DEBUG_REG53_GET_TAG_valid_q_1(mh_debug_reg53) \
+ ((mh_debug_reg53 & MH_DEBUG_REG53_TAG_valid_q_1_MASK) >> MH_DEBUG_REG53_TAG_valid_q_1_SHIFT)
+
+#define MH_DEBUG_REG53_SET_TAG0_VA(mh_debug_reg53_reg, tag0_va) \
+ mh_debug_reg53_reg = (mh_debug_reg53_reg & ~MH_DEBUG_REG53_TAG0_VA_MASK) | (tag0_va << MH_DEBUG_REG53_TAG0_VA_SHIFT)
+#define MH_DEBUG_REG53_SET_TAG_valid_q_0(mh_debug_reg53_reg, tag_valid_q_0) \
+ mh_debug_reg53_reg = (mh_debug_reg53_reg & ~MH_DEBUG_REG53_TAG_valid_q_0_MASK) | (tag_valid_q_0 << MH_DEBUG_REG53_TAG_valid_q_0_SHIFT)
+#define MH_DEBUG_REG53_SET_ALWAYS_ZERO(mh_debug_reg53_reg, always_zero) \
+ mh_debug_reg53_reg = (mh_debug_reg53_reg & ~MH_DEBUG_REG53_ALWAYS_ZERO_MASK) | (always_zero << MH_DEBUG_REG53_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG53_SET_TAG1_VA(mh_debug_reg53_reg, tag1_va) \
+ mh_debug_reg53_reg = (mh_debug_reg53_reg & ~MH_DEBUG_REG53_TAG1_VA_MASK) | (tag1_va << MH_DEBUG_REG53_TAG1_VA_SHIFT)
+#define MH_DEBUG_REG53_SET_TAG_valid_q_1(mh_debug_reg53_reg, tag_valid_q_1) \
+ mh_debug_reg53_reg = (mh_debug_reg53_reg & ~MH_DEBUG_REG53_TAG_valid_q_1_MASK) | (tag_valid_q_1 << MH_DEBUG_REG53_TAG_valid_q_1_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg53_t {
+ unsigned int tag0_va : MH_DEBUG_REG53_TAG0_VA_SIZE;
+ unsigned int tag_valid_q_0 : MH_DEBUG_REG53_TAG_valid_q_0_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG53_ALWAYS_ZERO_SIZE;
+ unsigned int tag1_va : MH_DEBUG_REG53_TAG1_VA_SIZE;
+ unsigned int tag_valid_q_1 : MH_DEBUG_REG53_TAG_valid_q_1_SIZE;
+ unsigned int : 2;
+ } mh_debug_reg53_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg53_t {
+ unsigned int : 2;
+ unsigned int tag_valid_q_1 : MH_DEBUG_REG53_TAG_valid_q_1_SIZE;
+ unsigned int tag1_va : MH_DEBUG_REG53_TAG1_VA_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG53_ALWAYS_ZERO_SIZE;
+ unsigned int tag_valid_q_0 : MH_DEBUG_REG53_TAG_valid_q_0_SIZE;
+ unsigned int tag0_va : MH_DEBUG_REG53_TAG0_VA_SIZE;
+ } mh_debug_reg53_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg53_t f;
+} mh_debug_reg53_u;
+
+
+/*
+ * MH_DEBUG_REG54 struct
+ */
+
+#define MH_DEBUG_REG54_TAG2_VA_SIZE 13
+#define MH_DEBUG_REG54_TAG_valid_q_2_SIZE 1
+#define MH_DEBUG_REG54_ALWAYS_ZERO_SIZE 2
+#define MH_DEBUG_REG54_TAG3_VA_SIZE 13
+#define MH_DEBUG_REG54_TAG_valid_q_3_SIZE 1
+
+#define MH_DEBUG_REG54_TAG2_VA_SHIFT 0
+#define MH_DEBUG_REG54_TAG_valid_q_2_SHIFT 13
+#define MH_DEBUG_REG54_ALWAYS_ZERO_SHIFT 14
+#define MH_DEBUG_REG54_TAG3_VA_SHIFT 16
+#define MH_DEBUG_REG54_TAG_valid_q_3_SHIFT 29
+
+#define MH_DEBUG_REG54_TAG2_VA_MASK 0x00001fff
+#define MH_DEBUG_REG54_TAG_valid_q_2_MASK 0x00002000
+#define MH_DEBUG_REG54_ALWAYS_ZERO_MASK 0x0000c000
+#define MH_DEBUG_REG54_TAG3_VA_MASK 0x1fff0000
+#define MH_DEBUG_REG54_TAG_valid_q_3_MASK 0x20000000
+
+#define MH_DEBUG_REG54_MASK \
+ (MH_DEBUG_REG54_TAG2_VA_MASK | \
+ MH_DEBUG_REG54_TAG_valid_q_2_MASK | \
+ MH_DEBUG_REG54_ALWAYS_ZERO_MASK | \
+ MH_DEBUG_REG54_TAG3_VA_MASK | \
+ MH_DEBUG_REG54_TAG_valid_q_3_MASK)
+
+#define MH_DEBUG_REG54(tag2_va, tag_valid_q_2, always_zero, tag3_va, tag_valid_q_3) \
+ ((tag2_va << MH_DEBUG_REG54_TAG2_VA_SHIFT) | \
+ (tag_valid_q_2 << MH_DEBUG_REG54_TAG_valid_q_2_SHIFT) | \
+ (always_zero << MH_DEBUG_REG54_ALWAYS_ZERO_SHIFT) | \
+ (tag3_va << MH_DEBUG_REG54_TAG3_VA_SHIFT) | \
+ (tag_valid_q_3 << MH_DEBUG_REG54_TAG_valid_q_3_SHIFT))
+
+#define MH_DEBUG_REG54_GET_TAG2_VA(mh_debug_reg54) \
+ ((mh_debug_reg54 & MH_DEBUG_REG54_TAG2_VA_MASK) >> MH_DEBUG_REG54_TAG2_VA_SHIFT)
+#define MH_DEBUG_REG54_GET_TAG_valid_q_2(mh_debug_reg54) \
+ ((mh_debug_reg54 & MH_DEBUG_REG54_TAG_valid_q_2_MASK) >> MH_DEBUG_REG54_TAG_valid_q_2_SHIFT)
+#define MH_DEBUG_REG54_GET_ALWAYS_ZERO(mh_debug_reg54) \
+ ((mh_debug_reg54 & MH_DEBUG_REG54_ALWAYS_ZERO_MASK) >> MH_DEBUG_REG54_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG54_GET_TAG3_VA(mh_debug_reg54) \
+ ((mh_debug_reg54 & MH_DEBUG_REG54_TAG3_VA_MASK) >> MH_DEBUG_REG54_TAG3_VA_SHIFT)
+#define MH_DEBUG_REG54_GET_TAG_valid_q_3(mh_debug_reg54) \
+ ((mh_debug_reg54 & MH_DEBUG_REG54_TAG_valid_q_3_MASK) >> MH_DEBUG_REG54_TAG_valid_q_3_SHIFT)
+
+#define MH_DEBUG_REG54_SET_TAG2_VA(mh_debug_reg54_reg, tag2_va) \
+ mh_debug_reg54_reg = (mh_debug_reg54_reg & ~MH_DEBUG_REG54_TAG2_VA_MASK) | (tag2_va << MH_DEBUG_REG54_TAG2_VA_SHIFT)
+#define MH_DEBUG_REG54_SET_TAG_valid_q_2(mh_debug_reg54_reg, tag_valid_q_2) \
+ mh_debug_reg54_reg = (mh_debug_reg54_reg & ~MH_DEBUG_REG54_TAG_valid_q_2_MASK) | (tag_valid_q_2 << MH_DEBUG_REG54_TAG_valid_q_2_SHIFT)
+#define MH_DEBUG_REG54_SET_ALWAYS_ZERO(mh_debug_reg54_reg, always_zero) \
+ mh_debug_reg54_reg = (mh_debug_reg54_reg & ~MH_DEBUG_REG54_ALWAYS_ZERO_MASK) | (always_zero << MH_DEBUG_REG54_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG54_SET_TAG3_VA(mh_debug_reg54_reg, tag3_va) \
+ mh_debug_reg54_reg = (mh_debug_reg54_reg & ~MH_DEBUG_REG54_TAG3_VA_MASK) | (tag3_va << MH_DEBUG_REG54_TAG3_VA_SHIFT)
+#define MH_DEBUG_REG54_SET_TAG_valid_q_3(mh_debug_reg54_reg, tag_valid_q_3) \
+ mh_debug_reg54_reg = (mh_debug_reg54_reg & ~MH_DEBUG_REG54_TAG_valid_q_3_MASK) | (tag_valid_q_3 << MH_DEBUG_REG54_TAG_valid_q_3_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg54_t {
+ unsigned int tag2_va : MH_DEBUG_REG54_TAG2_VA_SIZE;
+ unsigned int tag_valid_q_2 : MH_DEBUG_REG54_TAG_valid_q_2_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG54_ALWAYS_ZERO_SIZE;
+ unsigned int tag3_va : MH_DEBUG_REG54_TAG3_VA_SIZE;
+ unsigned int tag_valid_q_3 : MH_DEBUG_REG54_TAG_valid_q_3_SIZE;
+ unsigned int : 2;
+ } mh_debug_reg54_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg54_t {
+ unsigned int : 2;
+ unsigned int tag_valid_q_3 : MH_DEBUG_REG54_TAG_valid_q_3_SIZE;
+ unsigned int tag3_va : MH_DEBUG_REG54_TAG3_VA_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG54_ALWAYS_ZERO_SIZE;
+ unsigned int tag_valid_q_2 : MH_DEBUG_REG54_TAG_valid_q_2_SIZE;
+ unsigned int tag2_va : MH_DEBUG_REG54_TAG2_VA_SIZE;
+ } mh_debug_reg54_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg54_t f;
+} mh_debug_reg54_u;
+
+
+/*
+ * MH_DEBUG_REG55 struct
+ */
+
+#define MH_DEBUG_REG55_TAG4_VA_SIZE 13
+#define MH_DEBUG_REG55_TAG_valid_q_4_SIZE 1
+#define MH_DEBUG_REG55_ALWAYS_ZERO_SIZE 2
+#define MH_DEBUG_REG55_TAG5_VA_SIZE 13
+#define MH_DEBUG_REG55_TAG_valid_q_5_SIZE 1
+
+#define MH_DEBUG_REG55_TAG4_VA_SHIFT 0
+#define MH_DEBUG_REG55_TAG_valid_q_4_SHIFT 13
+#define MH_DEBUG_REG55_ALWAYS_ZERO_SHIFT 14
+#define MH_DEBUG_REG55_TAG5_VA_SHIFT 16
+#define MH_DEBUG_REG55_TAG_valid_q_5_SHIFT 29
+
+#define MH_DEBUG_REG55_TAG4_VA_MASK 0x00001fff
+#define MH_DEBUG_REG55_TAG_valid_q_4_MASK 0x00002000
+#define MH_DEBUG_REG55_ALWAYS_ZERO_MASK 0x0000c000
+#define MH_DEBUG_REG55_TAG5_VA_MASK 0x1fff0000
+#define MH_DEBUG_REG55_TAG_valid_q_5_MASK 0x20000000
+
+#define MH_DEBUG_REG55_MASK \
+ (MH_DEBUG_REG55_TAG4_VA_MASK | \
+ MH_DEBUG_REG55_TAG_valid_q_4_MASK | \
+ MH_DEBUG_REG55_ALWAYS_ZERO_MASK | \
+ MH_DEBUG_REG55_TAG5_VA_MASK | \
+ MH_DEBUG_REG55_TAG_valid_q_5_MASK)
+
+#define MH_DEBUG_REG55(tag4_va, tag_valid_q_4, always_zero, tag5_va, tag_valid_q_5) \
+ ((tag4_va << MH_DEBUG_REG55_TAG4_VA_SHIFT) | \
+ (tag_valid_q_4 << MH_DEBUG_REG55_TAG_valid_q_4_SHIFT) | \
+ (always_zero << MH_DEBUG_REG55_ALWAYS_ZERO_SHIFT) | \
+ (tag5_va << MH_DEBUG_REG55_TAG5_VA_SHIFT) | \
+ (tag_valid_q_5 << MH_DEBUG_REG55_TAG_valid_q_5_SHIFT))
+
+#define MH_DEBUG_REG55_GET_TAG4_VA(mh_debug_reg55) \
+ ((mh_debug_reg55 & MH_DEBUG_REG55_TAG4_VA_MASK) >> MH_DEBUG_REG55_TAG4_VA_SHIFT)
+#define MH_DEBUG_REG55_GET_TAG_valid_q_4(mh_debug_reg55) \
+ ((mh_debug_reg55 & MH_DEBUG_REG55_TAG_valid_q_4_MASK) >> MH_DEBUG_REG55_TAG_valid_q_4_SHIFT)
+#define MH_DEBUG_REG55_GET_ALWAYS_ZERO(mh_debug_reg55) \
+ ((mh_debug_reg55 & MH_DEBUG_REG55_ALWAYS_ZERO_MASK) >> MH_DEBUG_REG55_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG55_GET_TAG5_VA(mh_debug_reg55) \
+ ((mh_debug_reg55 & MH_DEBUG_REG55_TAG5_VA_MASK) >> MH_DEBUG_REG55_TAG5_VA_SHIFT)
+#define MH_DEBUG_REG55_GET_TAG_valid_q_5(mh_debug_reg55) \
+ ((mh_debug_reg55 & MH_DEBUG_REG55_TAG_valid_q_5_MASK) >> MH_DEBUG_REG55_TAG_valid_q_5_SHIFT)
+
+#define MH_DEBUG_REG55_SET_TAG4_VA(mh_debug_reg55_reg, tag4_va) \
+ mh_debug_reg55_reg = (mh_debug_reg55_reg & ~MH_DEBUG_REG55_TAG4_VA_MASK) | (tag4_va << MH_DEBUG_REG55_TAG4_VA_SHIFT)
+#define MH_DEBUG_REG55_SET_TAG_valid_q_4(mh_debug_reg55_reg, tag_valid_q_4) \
+ mh_debug_reg55_reg = (mh_debug_reg55_reg & ~MH_DEBUG_REG55_TAG_valid_q_4_MASK) | (tag_valid_q_4 << MH_DEBUG_REG55_TAG_valid_q_4_SHIFT)
+#define MH_DEBUG_REG55_SET_ALWAYS_ZERO(mh_debug_reg55_reg, always_zero) \
+ mh_debug_reg55_reg = (mh_debug_reg55_reg & ~MH_DEBUG_REG55_ALWAYS_ZERO_MASK) | (always_zero << MH_DEBUG_REG55_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG55_SET_TAG5_VA(mh_debug_reg55_reg, tag5_va) \
+ mh_debug_reg55_reg = (mh_debug_reg55_reg & ~MH_DEBUG_REG55_TAG5_VA_MASK) | (tag5_va << MH_DEBUG_REG55_TAG5_VA_SHIFT)
+#define MH_DEBUG_REG55_SET_TAG_valid_q_5(mh_debug_reg55_reg, tag_valid_q_5) \
+ mh_debug_reg55_reg = (mh_debug_reg55_reg & ~MH_DEBUG_REG55_TAG_valid_q_5_MASK) | (tag_valid_q_5 << MH_DEBUG_REG55_TAG_valid_q_5_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg55_t {
+ unsigned int tag4_va : MH_DEBUG_REG55_TAG4_VA_SIZE;
+ unsigned int tag_valid_q_4 : MH_DEBUG_REG55_TAG_valid_q_4_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG55_ALWAYS_ZERO_SIZE;
+ unsigned int tag5_va : MH_DEBUG_REG55_TAG5_VA_SIZE;
+ unsigned int tag_valid_q_5 : MH_DEBUG_REG55_TAG_valid_q_5_SIZE;
+ unsigned int : 2;
+ } mh_debug_reg55_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg55_t {
+ unsigned int : 2;
+ unsigned int tag_valid_q_5 : MH_DEBUG_REG55_TAG_valid_q_5_SIZE;
+ unsigned int tag5_va : MH_DEBUG_REG55_TAG5_VA_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG55_ALWAYS_ZERO_SIZE;
+ unsigned int tag_valid_q_4 : MH_DEBUG_REG55_TAG_valid_q_4_SIZE;
+ unsigned int tag4_va : MH_DEBUG_REG55_TAG4_VA_SIZE;
+ } mh_debug_reg55_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg55_t f;
+} mh_debug_reg55_u;
+
+
+/*
+ * MH_DEBUG_REG56 struct
+ */
+
+#define MH_DEBUG_REG56_TAG6_VA_SIZE 13
+#define MH_DEBUG_REG56_TAG_valid_q_6_SIZE 1
+#define MH_DEBUG_REG56_ALWAYS_ZERO_SIZE 2
+#define MH_DEBUG_REG56_TAG7_VA_SIZE 13
+#define MH_DEBUG_REG56_TAG_valid_q_7_SIZE 1
+
+#define MH_DEBUG_REG56_TAG6_VA_SHIFT 0
+#define MH_DEBUG_REG56_TAG_valid_q_6_SHIFT 13
+#define MH_DEBUG_REG56_ALWAYS_ZERO_SHIFT 14
+#define MH_DEBUG_REG56_TAG7_VA_SHIFT 16
+#define MH_DEBUG_REG56_TAG_valid_q_7_SHIFT 29
+
+#define MH_DEBUG_REG56_TAG6_VA_MASK 0x00001fff
+#define MH_DEBUG_REG56_TAG_valid_q_6_MASK 0x00002000
+#define MH_DEBUG_REG56_ALWAYS_ZERO_MASK 0x0000c000
+#define MH_DEBUG_REG56_TAG7_VA_MASK 0x1fff0000
+#define MH_DEBUG_REG56_TAG_valid_q_7_MASK 0x20000000
+
+#define MH_DEBUG_REG56_MASK \
+ (MH_DEBUG_REG56_TAG6_VA_MASK | \
+ MH_DEBUG_REG56_TAG_valid_q_6_MASK | \
+ MH_DEBUG_REG56_ALWAYS_ZERO_MASK | \
+ MH_DEBUG_REG56_TAG7_VA_MASK | \
+ MH_DEBUG_REG56_TAG_valid_q_7_MASK)
+
+#define MH_DEBUG_REG56(tag6_va, tag_valid_q_6, always_zero, tag7_va, tag_valid_q_7) \
+ ((tag6_va << MH_DEBUG_REG56_TAG6_VA_SHIFT) | \
+ (tag_valid_q_6 << MH_DEBUG_REG56_TAG_valid_q_6_SHIFT) | \
+ (always_zero << MH_DEBUG_REG56_ALWAYS_ZERO_SHIFT) | \
+ (tag7_va << MH_DEBUG_REG56_TAG7_VA_SHIFT) | \
+ (tag_valid_q_7 << MH_DEBUG_REG56_TAG_valid_q_7_SHIFT))
+
+#define MH_DEBUG_REG56_GET_TAG6_VA(mh_debug_reg56) \
+ ((mh_debug_reg56 & MH_DEBUG_REG56_TAG6_VA_MASK) >> MH_DEBUG_REG56_TAG6_VA_SHIFT)
+#define MH_DEBUG_REG56_GET_TAG_valid_q_6(mh_debug_reg56) \
+ ((mh_debug_reg56 & MH_DEBUG_REG56_TAG_valid_q_6_MASK) >> MH_DEBUG_REG56_TAG_valid_q_6_SHIFT)
+#define MH_DEBUG_REG56_GET_ALWAYS_ZERO(mh_debug_reg56) \
+ ((mh_debug_reg56 & MH_DEBUG_REG56_ALWAYS_ZERO_MASK) >> MH_DEBUG_REG56_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG56_GET_TAG7_VA(mh_debug_reg56) \
+ ((mh_debug_reg56 & MH_DEBUG_REG56_TAG7_VA_MASK) >> MH_DEBUG_REG56_TAG7_VA_SHIFT)
+#define MH_DEBUG_REG56_GET_TAG_valid_q_7(mh_debug_reg56) \
+ ((mh_debug_reg56 & MH_DEBUG_REG56_TAG_valid_q_7_MASK) >> MH_DEBUG_REG56_TAG_valid_q_7_SHIFT)
+
+#define MH_DEBUG_REG56_SET_TAG6_VA(mh_debug_reg56_reg, tag6_va) \
+ mh_debug_reg56_reg = (mh_debug_reg56_reg & ~MH_DEBUG_REG56_TAG6_VA_MASK) | (tag6_va << MH_DEBUG_REG56_TAG6_VA_SHIFT)
+#define MH_DEBUG_REG56_SET_TAG_valid_q_6(mh_debug_reg56_reg, tag_valid_q_6) \
+ mh_debug_reg56_reg = (mh_debug_reg56_reg & ~MH_DEBUG_REG56_TAG_valid_q_6_MASK) | (tag_valid_q_6 << MH_DEBUG_REG56_TAG_valid_q_6_SHIFT)
+#define MH_DEBUG_REG56_SET_ALWAYS_ZERO(mh_debug_reg56_reg, always_zero) \
+ mh_debug_reg56_reg = (mh_debug_reg56_reg & ~MH_DEBUG_REG56_ALWAYS_ZERO_MASK) | (always_zero << MH_DEBUG_REG56_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG56_SET_TAG7_VA(mh_debug_reg56_reg, tag7_va) \
+ mh_debug_reg56_reg = (mh_debug_reg56_reg & ~MH_DEBUG_REG56_TAG7_VA_MASK) | (tag7_va << MH_DEBUG_REG56_TAG7_VA_SHIFT)
+#define MH_DEBUG_REG56_SET_TAG_valid_q_7(mh_debug_reg56_reg, tag_valid_q_7) \
+ mh_debug_reg56_reg = (mh_debug_reg56_reg & ~MH_DEBUG_REG56_TAG_valid_q_7_MASK) | (tag_valid_q_7 << MH_DEBUG_REG56_TAG_valid_q_7_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg56_t {
+ unsigned int tag6_va : MH_DEBUG_REG56_TAG6_VA_SIZE;
+ unsigned int tag_valid_q_6 : MH_DEBUG_REG56_TAG_valid_q_6_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG56_ALWAYS_ZERO_SIZE;
+ unsigned int tag7_va : MH_DEBUG_REG56_TAG7_VA_SIZE;
+ unsigned int tag_valid_q_7 : MH_DEBUG_REG56_TAG_valid_q_7_SIZE;
+ unsigned int : 2;
+ } mh_debug_reg56_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg56_t {
+ unsigned int : 2;
+ unsigned int tag_valid_q_7 : MH_DEBUG_REG56_TAG_valid_q_7_SIZE;
+ unsigned int tag7_va : MH_DEBUG_REG56_TAG7_VA_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG56_ALWAYS_ZERO_SIZE;
+ unsigned int tag_valid_q_6 : MH_DEBUG_REG56_TAG_valid_q_6_SIZE;
+ unsigned int tag6_va : MH_DEBUG_REG56_TAG6_VA_SIZE;
+ } mh_debug_reg56_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg56_t f;
+} mh_debug_reg56_u;
+
+
+/*
+ * MH_DEBUG_REG57 struct
+ */
+
+#define MH_DEBUG_REG57_TAG8_VA_SIZE 13
+#define MH_DEBUG_REG57_TAG_valid_q_8_SIZE 1
+#define MH_DEBUG_REG57_ALWAYS_ZERO_SIZE 2
+#define MH_DEBUG_REG57_TAG9_VA_SIZE 13
+#define MH_DEBUG_REG57_TAG_valid_q_9_SIZE 1
+
+#define MH_DEBUG_REG57_TAG8_VA_SHIFT 0
+#define MH_DEBUG_REG57_TAG_valid_q_8_SHIFT 13
+#define MH_DEBUG_REG57_ALWAYS_ZERO_SHIFT 14
+#define MH_DEBUG_REG57_TAG9_VA_SHIFT 16
+#define MH_DEBUG_REG57_TAG_valid_q_9_SHIFT 29
+
+#define MH_DEBUG_REG57_TAG8_VA_MASK 0x00001fff
+#define MH_DEBUG_REG57_TAG_valid_q_8_MASK 0x00002000
+#define MH_DEBUG_REG57_ALWAYS_ZERO_MASK 0x0000c000
+#define MH_DEBUG_REG57_TAG9_VA_MASK 0x1fff0000
+#define MH_DEBUG_REG57_TAG_valid_q_9_MASK 0x20000000
+
+#define MH_DEBUG_REG57_MASK \
+ (MH_DEBUG_REG57_TAG8_VA_MASK | \
+ MH_DEBUG_REG57_TAG_valid_q_8_MASK | \
+ MH_DEBUG_REG57_ALWAYS_ZERO_MASK | \
+ MH_DEBUG_REG57_TAG9_VA_MASK | \
+ MH_DEBUG_REG57_TAG_valid_q_9_MASK)
+
+#define MH_DEBUG_REG57(tag8_va, tag_valid_q_8, always_zero, tag9_va, tag_valid_q_9) \
+ ((tag8_va << MH_DEBUG_REG57_TAG8_VA_SHIFT) | \
+ (tag_valid_q_8 << MH_DEBUG_REG57_TAG_valid_q_8_SHIFT) | \
+ (always_zero << MH_DEBUG_REG57_ALWAYS_ZERO_SHIFT) | \
+ (tag9_va << MH_DEBUG_REG57_TAG9_VA_SHIFT) | \
+ (tag_valid_q_9 << MH_DEBUG_REG57_TAG_valid_q_9_SHIFT))
+
+#define MH_DEBUG_REG57_GET_TAG8_VA(mh_debug_reg57) \
+ ((mh_debug_reg57 & MH_DEBUG_REG57_TAG8_VA_MASK) >> MH_DEBUG_REG57_TAG8_VA_SHIFT)
+#define MH_DEBUG_REG57_GET_TAG_valid_q_8(mh_debug_reg57) \
+ ((mh_debug_reg57 & MH_DEBUG_REG57_TAG_valid_q_8_MASK) >> MH_DEBUG_REG57_TAG_valid_q_8_SHIFT)
+#define MH_DEBUG_REG57_GET_ALWAYS_ZERO(mh_debug_reg57) \
+ ((mh_debug_reg57 & MH_DEBUG_REG57_ALWAYS_ZERO_MASK) >> MH_DEBUG_REG57_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG57_GET_TAG9_VA(mh_debug_reg57) \
+ ((mh_debug_reg57 & MH_DEBUG_REG57_TAG9_VA_MASK) >> MH_DEBUG_REG57_TAG9_VA_SHIFT)
+#define MH_DEBUG_REG57_GET_TAG_valid_q_9(mh_debug_reg57) \
+ ((mh_debug_reg57 & MH_DEBUG_REG57_TAG_valid_q_9_MASK) >> MH_DEBUG_REG57_TAG_valid_q_9_SHIFT)
+
+#define MH_DEBUG_REG57_SET_TAG8_VA(mh_debug_reg57_reg, tag8_va) \
+ mh_debug_reg57_reg = (mh_debug_reg57_reg & ~MH_DEBUG_REG57_TAG8_VA_MASK) | (tag8_va << MH_DEBUG_REG57_TAG8_VA_SHIFT)
+#define MH_DEBUG_REG57_SET_TAG_valid_q_8(mh_debug_reg57_reg, tag_valid_q_8) \
+ mh_debug_reg57_reg = (mh_debug_reg57_reg & ~MH_DEBUG_REG57_TAG_valid_q_8_MASK) | (tag_valid_q_8 << MH_DEBUG_REG57_TAG_valid_q_8_SHIFT)
+#define MH_DEBUG_REG57_SET_ALWAYS_ZERO(mh_debug_reg57_reg, always_zero) \
+ mh_debug_reg57_reg = (mh_debug_reg57_reg & ~MH_DEBUG_REG57_ALWAYS_ZERO_MASK) | (always_zero << MH_DEBUG_REG57_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG57_SET_TAG9_VA(mh_debug_reg57_reg, tag9_va) \
+ mh_debug_reg57_reg = (mh_debug_reg57_reg & ~MH_DEBUG_REG57_TAG9_VA_MASK) | (tag9_va << MH_DEBUG_REG57_TAG9_VA_SHIFT)
+#define MH_DEBUG_REG57_SET_TAG_valid_q_9(mh_debug_reg57_reg, tag_valid_q_9) \
+ mh_debug_reg57_reg = (mh_debug_reg57_reg & ~MH_DEBUG_REG57_TAG_valid_q_9_MASK) | (tag_valid_q_9 << MH_DEBUG_REG57_TAG_valid_q_9_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg57_t {
+ unsigned int tag8_va : MH_DEBUG_REG57_TAG8_VA_SIZE;
+ unsigned int tag_valid_q_8 : MH_DEBUG_REG57_TAG_valid_q_8_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG57_ALWAYS_ZERO_SIZE;
+ unsigned int tag9_va : MH_DEBUG_REG57_TAG9_VA_SIZE;
+ unsigned int tag_valid_q_9 : MH_DEBUG_REG57_TAG_valid_q_9_SIZE;
+ unsigned int : 2;
+ } mh_debug_reg57_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg57_t {
+ unsigned int : 2;
+ unsigned int tag_valid_q_9 : MH_DEBUG_REG57_TAG_valid_q_9_SIZE;
+ unsigned int tag9_va : MH_DEBUG_REG57_TAG9_VA_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG57_ALWAYS_ZERO_SIZE;
+ unsigned int tag_valid_q_8 : MH_DEBUG_REG57_TAG_valid_q_8_SIZE;
+ unsigned int tag8_va : MH_DEBUG_REG57_TAG8_VA_SIZE;
+ } mh_debug_reg57_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg57_t f;
+} mh_debug_reg57_u;
+
+
+/*
+ * MH_DEBUG_REG58 struct
+ */
+
+#define MH_DEBUG_REG58_TAG10_VA_SIZE 13
+#define MH_DEBUG_REG58_TAG_valid_q_10_SIZE 1
+#define MH_DEBUG_REG58_ALWAYS_ZERO_SIZE 2
+#define MH_DEBUG_REG58_TAG11_VA_SIZE 13
+#define MH_DEBUG_REG58_TAG_valid_q_11_SIZE 1
+
+#define MH_DEBUG_REG58_TAG10_VA_SHIFT 0
+#define MH_DEBUG_REG58_TAG_valid_q_10_SHIFT 13
+#define MH_DEBUG_REG58_ALWAYS_ZERO_SHIFT 14
+#define MH_DEBUG_REG58_TAG11_VA_SHIFT 16
+#define MH_DEBUG_REG58_TAG_valid_q_11_SHIFT 29
+
+#define MH_DEBUG_REG58_TAG10_VA_MASK 0x00001fff
+#define MH_DEBUG_REG58_TAG_valid_q_10_MASK 0x00002000
+#define MH_DEBUG_REG58_ALWAYS_ZERO_MASK 0x0000c000
+#define MH_DEBUG_REG58_TAG11_VA_MASK 0x1fff0000
+#define MH_DEBUG_REG58_TAG_valid_q_11_MASK 0x20000000
+
+#define MH_DEBUG_REG58_MASK \
+ (MH_DEBUG_REG58_TAG10_VA_MASK | \
+ MH_DEBUG_REG58_TAG_valid_q_10_MASK | \
+ MH_DEBUG_REG58_ALWAYS_ZERO_MASK | \
+ MH_DEBUG_REG58_TAG11_VA_MASK | \
+ MH_DEBUG_REG58_TAG_valid_q_11_MASK)
+
+#define MH_DEBUG_REG58(tag10_va, tag_valid_q_10, always_zero, tag11_va, tag_valid_q_11) \
+ ((tag10_va << MH_DEBUG_REG58_TAG10_VA_SHIFT) | \
+ (tag_valid_q_10 << MH_DEBUG_REG58_TAG_valid_q_10_SHIFT) | \
+ (always_zero << MH_DEBUG_REG58_ALWAYS_ZERO_SHIFT) | \
+ (tag11_va << MH_DEBUG_REG58_TAG11_VA_SHIFT) | \
+ (tag_valid_q_11 << MH_DEBUG_REG58_TAG_valid_q_11_SHIFT))
+
+#define MH_DEBUG_REG58_GET_TAG10_VA(mh_debug_reg58) \
+ ((mh_debug_reg58 & MH_DEBUG_REG58_TAG10_VA_MASK) >> MH_DEBUG_REG58_TAG10_VA_SHIFT)
+#define MH_DEBUG_REG58_GET_TAG_valid_q_10(mh_debug_reg58) \
+ ((mh_debug_reg58 & MH_DEBUG_REG58_TAG_valid_q_10_MASK) >> MH_DEBUG_REG58_TAG_valid_q_10_SHIFT)
+#define MH_DEBUG_REG58_GET_ALWAYS_ZERO(mh_debug_reg58) \
+ ((mh_debug_reg58 & MH_DEBUG_REG58_ALWAYS_ZERO_MASK) >> MH_DEBUG_REG58_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG58_GET_TAG11_VA(mh_debug_reg58) \
+ ((mh_debug_reg58 & MH_DEBUG_REG58_TAG11_VA_MASK) >> MH_DEBUG_REG58_TAG11_VA_SHIFT)
+#define MH_DEBUG_REG58_GET_TAG_valid_q_11(mh_debug_reg58) \
+ ((mh_debug_reg58 & MH_DEBUG_REG58_TAG_valid_q_11_MASK) >> MH_DEBUG_REG58_TAG_valid_q_11_SHIFT)
+
+#define MH_DEBUG_REG58_SET_TAG10_VA(mh_debug_reg58_reg, tag10_va) \
+ mh_debug_reg58_reg = (mh_debug_reg58_reg & ~MH_DEBUG_REG58_TAG10_VA_MASK) | (tag10_va << MH_DEBUG_REG58_TAG10_VA_SHIFT)
+#define MH_DEBUG_REG58_SET_TAG_valid_q_10(mh_debug_reg58_reg, tag_valid_q_10) \
+ mh_debug_reg58_reg = (mh_debug_reg58_reg & ~MH_DEBUG_REG58_TAG_valid_q_10_MASK) | (tag_valid_q_10 << MH_DEBUG_REG58_TAG_valid_q_10_SHIFT)
+#define MH_DEBUG_REG58_SET_ALWAYS_ZERO(mh_debug_reg58_reg, always_zero) \
+ mh_debug_reg58_reg = (mh_debug_reg58_reg & ~MH_DEBUG_REG58_ALWAYS_ZERO_MASK) | (always_zero << MH_DEBUG_REG58_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG58_SET_TAG11_VA(mh_debug_reg58_reg, tag11_va) \
+ mh_debug_reg58_reg = (mh_debug_reg58_reg & ~MH_DEBUG_REG58_TAG11_VA_MASK) | (tag11_va << MH_DEBUG_REG58_TAG11_VA_SHIFT)
+#define MH_DEBUG_REG58_SET_TAG_valid_q_11(mh_debug_reg58_reg, tag_valid_q_11) \
+ mh_debug_reg58_reg = (mh_debug_reg58_reg & ~MH_DEBUG_REG58_TAG_valid_q_11_MASK) | (tag_valid_q_11 << MH_DEBUG_REG58_TAG_valid_q_11_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg58_t {
+ unsigned int tag10_va : MH_DEBUG_REG58_TAG10_VA_SIZE;
+ unsigned int tag_valid_q_10 : MH_DEBUG_REG58_TAG_valid_q_10_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG58_ALWAYS_ZERO_SIZE;
+ unsigned int tag11_va : MH_DEBUG_REG58_TAG11_VA_SIZE;
+ unsigned int tag_valid_q_11 : MH_DEBUG_REG58_TAG_valid_q_11_SIZE;
+ unsigned int : 2;
+ } mh_debug_reg58_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg58_t {
+ unsigned int : 2;
+ unsigned int tag_valid_q_11 : MH_DEBUG_REG58_TAG_valid_q_11_SIZE;
+ unsigned int tag11_va : MH_DEBUG_REG58_TAG11_VA_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG58_ALWAYS_ZERO_SIZE;
+ unsigned int tag_valid_q_10 : MH_DEBUG_REG58_TAG_valid_q_10_SIZE;
+ unsigned int tag10_va : MH_DEBUG_REG58_TAG10_VA_SIZE;
+ } mh_debug_reg58_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg58_t f;
+} mh_debug_reg58_u;
+
+
+/*
+ * MH_DEBUG_REG59 struct
+ */
+
+#define MH_DEBUG_REG59_TAG12_VA_SIZE 13
+#define MH_DEBUG_REG59_TAG_valid_q_12_SIZE 1
+#define MH_DEBUG_REG59_ALWAYS_ZERO_SIZE 2
+#define MH_DEBUG_REG59_TAG13_VA_SIZE 13
+#define MH_DEBUG_REG59_TAG_valid_q_13_SIZE 1
+
+#define MH_DEBUG_REG59_TAG12_VA_SHIFT 0
+#define MH_DEBUG_REG59_TAG_valid_q_12_SHIFT 13
+#define MH_DEBUG_REG59_ALWAYS_ZERO_SHIFT 14
+#define MH_DEBUG_REG59_TAG13_VA_SHIFT 16
+#define MH_DEBUG_REG59_TAG_valid_q_13_SHIFT 29
+
+#define MH_DEBUG_REG59_TAG12_VA_MASK 0x00001fff
+#define MH_DEBUG_REG59_TAG_valid_q_12_MASK 0x00002000
+#define MH_DEBUG_REG59_ALWAYS_ZERO_MASK 0x0000c000
+#define MH_DEBUG_REG59_TAG13_VA_MASK 0x1fff0000
+#define MH_DEBUG_REG59_TAG_valid_q_13_MASK 0x20000000
+
+#define MH_DEBUG_REG59_MASK \
+ (MH_DEBUG_REG59_TAG12_VA_MASK | \
+ MH_DEBUG_REG59_TAG_valid_q_12_MASK | \
+ MH_DEBUG_REG59_ALWAYS_ZERO_MASK | \
+ MH_DEBUG_REG59_TAG13_VA_MASK | \
+ MH_DEBUG_REG59_TAG_valid_q_13_MASK)
+
+#define MH_DEBUG_REG59(tag12_va, tag_valid_q_12, always_zero, tag13_va, tag_valid_q_13) \
+ ((tag12_va << MH_DEBUG_REG59_TAG12_VA_SHIFT) | \
+ (tag_valid_q_12 << MH_DEBUG_REG59_TAG_valid_q_12_SHIFT) | \
+ (always_zero << MH_DEBUG_REG59_ALWAYS_ZERO_SHIFT) | \
+ (tag13_va << MH_DEBUG_REG59_TAG13_VA_SHIFT) | \
+ (tag_valid_q_13 << MH_DEBUG_REG59_TAG_valid_q_13_SHIFT))
+
+#define MH_DEBUG_REG59_GET_TAG12_VA(mh_debug_reg59) \
+ ((mh_debug_reg59 & MH_DEBUG_REG59_TAG12_VA_MASK) >> MH_DEBUG_REG59_TAG12_VA_SHIFT)
+#define MH_DEBUG_REG59_GET_TAG_valid_q_12(mh_debug_reg59) \
+ ((mh_debug_reg59 & MH_DEBUG_REG59_TAG_valid_q_12_MASK) >> MH_DEBUG_REG59_TAG_valid_q_12_SHIFT)
+#define MH_DEBUG_REG59_GET_ALWAYS_ZERO(mh_debug_reg59) \
+ ((mh_debug_reg59 & MH_DEBUG_REG59_ALWAYS_ZERO_MASK) >> MH_DEBUG_REG59_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG59_GET_TAG13_VA(mh_debug_reg59) \
+ ((mh_debug_reg59 & MH_DEBUG_REG59_TAG13_VA_MASK) >> MH_DEBUG_REG59_TAG13_VA_SHIFT)
+#define MH_DEBUG_REG59_GET_TAG_valid_q_13(mh_debug_reg59) \
+ ((mh_debug_reg59 & MH_DEBUG_REG59_TAG_valid_q_13_MASK) >> MH_DEBUG_REG59_TAG_valid_q_13_SHIFT)
+
+#define MH_DEBUG_REG59_SET_TAG12_VA(mh_debug_reg59_reg, tag12_va) \
+ mh_debug_reg59_reg = (mh_debug_reg59_reg & ~MH_DEBUG_REG59_TAG12_VA_MASK) | (tag12_va << MH_DEBUG_REG59_TAG12_VA_SHIFT)
+#define MH_DEBUG_REG59_SET_TAG_valid_q_12(mh_debug_reg59_reg, tag_valid_q_12) \
+ mh_debug_reg59_reg = (mh_debug_reg59_reg & ~MH_DEBUG_REG59_TAG_valid_q_12_MASK) | (tag_valid_q_12 << MH_DEBUG_REG59_TAG_valid_q_12_SHIFT)
+#define MH_DEBUG_REG59_SET_ALWAYS_ZERO(mh_debug_reg59_reg, always_zero) \
+ mh_debug_reg59_reg = (mh_debug_reg59_reg & ~MH_DEBUG_REG59_ALWAYS_ZERO_MASK) | (always_zero << MH_DEBUG_REG59_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG59_SET_TAG13_VA(mh_debug_reg59_reg, tag13_va) \
+ mh_debug_reg59_reg = (mh_debug_reg59_reg & ~MH_DEBUG_REG59_TAG13_VA_MASK) | (tag13_va << MH_DEBUG_REG59_TAG13_VA_SHIFT)
+#define MH_DEBUG_REG59_SET_TAG_valid_q_13(mh_debug_reg59_reg, tag_valid_q_13) \
+ mh_debug_reg59_reg = (mh_debug_reg59_reg & ~MH_DEBUG_REG59_TAG_valid_q_13_MASK) | (tag_valid_q_13 << MH_DEBUG_REG59_TAG_valid_q_13_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg59_t {
+ unsigned int tag12_va : MH_DEBUG_REG59_TAG12_VA_SIZE;
+ unsigned int tag_valid_q_12 : MH_DEBUG_REG59_TAG_valid_q_12_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG59_ALWAYS_ZERO_SIZE;
+ unsigned int tag13_va : MH_DEBUG_REG59_TAG13_VA_SIZE;
+ unsigned int tag_valid_q_13 : MH_DEBUG_REG59_TAG_valid_q_13_SIZE;
+ unsigned int : 2;
+ } mh_debug_reg59_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg59_t {
+ unsigned int : 2;
+ unsigned int tag_valid_q_13 : MH_DEBUG_REG59_TAG_valid_q_13_SIZE;
+ unsigned int tag13_va : MH_DEBUG_REG59_TAG13_VA_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG59_ALWAYS_ZERO_SIZE;
+ unsigned int tag_valid_q_12 : MH_DEBUG_REG59_TAG_valid_q_12_SIZE;
+ unsigned int tag12_va : MH_DEBUG_REG59_TAG12_VA_SIZE;
+ } mh_debug_reg59_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg59_t f;
+} mh_debug_reg59_u;
+
+
+/*
+ * MH_DEBUG_REG60 struct
+ */
+
+#define MH_DEBUG_REG60_TAG14_VA_SIZE 13
+#define MH_DEBUG_REG60_TAG_valid_q_14_SIZE 1
+#define MH_DEBUG_REG60_ALWAYS_ZERO_SIZE 2
+#define MH_DEBUG_REG60_TAG15_VA_SIZE 13
+#define MH_DEBUG_REG60_TAG_valid_q_15_SIZE 1
+
+#define MH_DEBUG_REG60_TAG14_VA_SHIFT 0
+#define MH_DEBUG_REG60_TAG_valid_q_14_SHIFT 13
+#define MH_DEBUG_REG60_ALWAYS_ZERO_SHIFT 14
+#define MH_DEBUG_REG60_TAG15_VA_SHIFT 16
+#define MH_DEBUG_REG60_TAG_valid_q_15_SHIFT 29
+
+#define MH_DEBUG_REG60_TAG14_VA_MASK 0x00001fff
+#define MH_DEBUG_REG60_TAG_valid_q_14_MASK 0x00002000
+#define MH_DEBUG_REG60_ALWAYS_ZERO_MASK 0x0000c000
+#define MH_DEBUG_REG60_TAG15_VA_MASK 0x1fff0000
+#define MH_DEBUG_REG60_TAG_valid_q_15_MASK 0x20000000
+
+#define MH_DEBUG_REG60_MASK \
+ (MH_DEBUG_REG60_TAG14_VA_MASK | \
+ MH_DEBUG_REG60_TAG_valid_q_14_MASK | \
+ MH_DEBUG_REG60_ALWAYS_ZERO_MASK | \
+ MH_DEBUG_REG60_TAG15_VA_MASK | \
+ MH_DEBUG_REG60_TAG_valid_q_15_MASK)
+
+#define MH_DEBUG_REG60(tag14_va, tag_valid_q_14, always_zero, tag15_va, tag_valid_q_15) \
+ ((tag14_va << MH_DEBUG_REG60_TAG14_VA_SHIFT) | \
+ (tag_valid_q_14 << MH_DEBUG_REG60_TAG_valid_q_14_SHIFT) | \
+ (always_zero << MH_DEBUG_REG60_ALWAYS_ZERO_SHIFT) | \
+ (tag15_va << MH_DEBUG_REG60_TAG15_VA_SHIFT) | \
+ (tag_valid_q_15 << MH_DEBUG_REG60_TAG_valid_q_15_SHIFT))
+
+#define MH_DEBUG_REG60_GET_TAG14_VA(mh_debug_reg60) \
+ ((mh_debug_reg60 & MH_DEBUG_REG60_TAG14_VA_MASK) >> MH_DEBUG_REG60_TAG14_VA_SHIFT)
+#define MH_DEBUG_REG60_GET_TAG_valid_q_14(mh_debug_reg60) \
+ ((mh_debug_reg60 & MH_DEBUG_REG60_TAG_valid_q_14_MASK) >> MH_DEBUG_REG60_TAG_valid_q_14_SHIFT)
+#define MH_DEBUG_REG60_GET_ALWAYS_ZERO(mh_debug_reg60) \
+ ((mh_debug_reg60 & MH_DEBUG_REG60_ALWAYS_ZERO_MASK) >> MH_DEBUG_REG60_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG60_GET_TAG15_VA(mh_debug_reg60) \
+ ((mh_debug_reg60 & MH_DEBUG_REG60_TAG15_VA_MASK) >> MH_DEBUG_REG60_TAG15_VA_SHIFT)
+#define MH_DEBUG_REG60_GET_TAG_valid_q_15(mh_debug_reg60) \
+ ((mh_debug_reg60 & MH_DEBUG_REG60_TAG_valid_q_15_MASK) >> MH_DEBUG_REG60_TAG_valid_q_15_SHIFT)
+
+#define MH_DEBUG_REG60_SET_TAG14_VA(mh_debug_reg60_reg, tag14_va) \
+ mh_debug_reg60_reg = (mh_debug_reg60_reg & ~MH_DEBUG_REG60_TAG14_VA_MASK) | (tag14_va << MH_DEBUG_REG60_TAG14_VA_SHIFT)
+#define MH_DEBUG_REG60_SET_TAG_valid_q_14(mh_debug_reg60_reg, tag_valid_q_14) \
+ mh_debug_reg60_reg = (mh_debug_reg60_reg & ~MH_DEBUG_REG60_TAG_valid_q_14_MASK) | (tag_valid_q_14 << MH_DEBUG_REG60_TAG_valid_q_14_SHIFT)
+#define MH_DEBUG_REG60_SET_ALWAYS_ZERO(mh_debug_reg60_reg, always_zero) \
+ mh_debug_reg60_reg = (mh_debug_reg60_reg & ~MH_DEBUG_REG60_ALWAYS_ZERO_MASK) | (always_zero << MH_DEBUG_REG60_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG60_SET_TAG15_VA(mh_debug_reg60_reg, tag15_va) \
+ mh_debug_reg60_reg = (mh_debug_reg60_reg & ~MH_DEBUG_REG60_TAG15_VA_MASK) | (tag15_va << MH_DEBUG_REG60_TAG15_VA_SHIFT)
+#define MH_DEBUG_REG60_SET_TAG_valid_q_15(mh_debug_reg60_reg, tag_valid_q_15) \
+ mh_debug_reg60_reg = (mh_debug_reg60_reg & ~MH_DEBUG_REG60_TAG_valid_q_15_MASK) | (tag_valid_q_15 << MH_DEBUG_REG60_TAG_valid_q_15_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg60_t {
+ unsigned int tag14_va : MH_DEBUG_REG60_TAG14_VA_SIZE;
+ unsigned int tag_valid_q_14 : MH_DEBUG_REG60_TAG_valid_q_14_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG60_ALWAYS_ZERO_SIZE;
+ unsigned int tag15_va : MH_DEBUG_REG60_TAG15_VA_SIZE;
+ unsigned int tag_valid_q_15 : MH_DEBUG_REG60_TAG_valid_q_15_SIZE;
+ unsigned int : 2;
+ } mh_debug_reg60_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg60_t {
+ unsigned int : 2;
+ unsigned int tag_valid_q_15 : MH_DEBUG_REG60_TAG_valid_q_15_SIZE;
+ unsigned int tag15_va : MH_DEBUG_REG60_TAG15_VA_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG60_ALWAYS_ZERO_SIZE;
+ unsigned int tag_valid_q_14 : MH_DEBUG_REG60_TAG_valid_q_14_SIZE;
+ unsigned int tag14_va : MH_DEBUG_REG60_TAG14_VA_SIZE;
+ } mh_debug_reg60_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg60_t f;
+} mh_debug_reg60_u;
+
+
+/*
+ * MH_DEBUG_REG61 struct
+ */
+
+#define MH_DEBUG_REG61_MH_DBG_DEFAULT_SIZE 32
+
+#define MH_DEBUG_REG61_MH_DBG_DEFAULT_SHIFT 0
+
+#define MH_DEBUG_REG61_MH_DBG_DEFAULT_MASK 0xffffffff
+
+#define MH_DEBUG_REG61_MASK \
+ (MH_DEBUG_REG61_MH_DBG_DEFAULT_MASK)
+
+#define MH_DEBUG_REG61(mh_dbg_default) \
+ ((mh_dbg_default << MH_DEBUG_REG61_MH_DBG_DEFAULT_SHIFT))
+
+#define MH_DEBUG_REG61_GET_MH_DBG_DEFAULT(mh_debug_reg61) \
+ ((mh_debug_reg61 & MH_DEBUG_REG61_MH_DBG_DEFAULT_MASK) >> MH_DEBUG_REG61_MH_DBG_DEFAULT_SHIFT)
+
+#define MH_DEBUG_REG61_SET_MH_DBG_DEFAULT(mh_debug_reg61_reg, mh_dbg_default) \
+ mh_debug_reg61_reg = (mh_debug_reg61_reg & ~MH_DEBUG_REG61_MH_DBG_DEFAULT_MASK) | (mh_dbg_default << MH_DEBUG_REG61_MH_DBG_DEFAULT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg61_t {
+ unsigned int mh_dbg_default : MH_DEBUG_REG61_MH_DBG_DEFAULT_SIZE;
+ } mh_debug_reg61_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg61_t {
+ unsigned int mh_dbg_default : MH_DEBUG_REG61_MH_DBG_DEFAULT_SIZE;
+ } mh_debug_reg61_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg61_t f;
+} mh_debug_reg61_u;
+
+
+/*
+ * MH_DEBUG_REG62 struct
+ */
+
+#define MH_DEBUG_REG62_MH_DBG_DEFAULT_SIZE 32
+
+#define MH_DEBUG_REG62_MH_DBG_DEFAULT_SHIFT 0
+
+#define MH_DEBUG_REG62_MH_DBG_DEFAULT_MASK 0xffffffff
+
+#define MH_DEBUG_REG62_MASK \
+ (MH_DEBUG_REG62_MH_DBG_DEFAULT_MASK)
+
+#define MH_DEBUG_REG62(mh_dbg_default) \
+ ((mh_dbg_default << MH_DEBUG_REG62_MH_DBG_DEFAULT_SHIFT))
+
+#define MH_DEBUG_REG62_GET_MH_DBG_DEFAULT(mh_debug_reg62) \
+ ((mh_debug_reg62 & MH_DEBUG_REG62_MH_DBG_DEFAULT_MASK) >> MH_DEBUG_REG62_MH_DBG_DEFAULT_SHIFT)
+
+#define MH_DEBUG_REG62_SET_MH_DBG_DEFAULT(mh_debug_reg62_reg, mh_dbg_default) \
+ mh_debug_reg62_reg = (mh_debug_reg62_reg & ~MH_DEBUG_REG62_MH_DBG_DEFAULT_MASK) | (mh_dbg_default << MH_DEBUG_REG62_MH_DBG_DEFAULT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg62_t {
+ unsigned int mh_dbg_default : MH_DEBUG_REG62_MH_DBG_DEFAULT_SIZE;
+ } mh_debug_reg62_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg62_t {
+ unsigned int mh_dbg_default : MH_DEBUG_REG62_MH_DBG_DEFAULT_SIZE;
+ } mh_debug_reg62_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg62_t f;
+} mh_debug_reg62_u;
+
+
+/*
+ * MH_DEBUG_REG63 struct
+ */
+
+#define MH_DEBUG_REG63_MH_DBG_DEFAULT_SIZE 32
+
+#define MH_DEBUG_REG63_MH_DBG_DEFAULT_SHIFT 0
+
+#define MH_DEBUG_REG63_MH_DBG_DEFAULT_MASK 0xffffffff
+
+#define MH_DEBUG_REG63_MASK \
+ (MH_DEBUG_REG63_MH_DBG_DEFAULT_MASK)
+
+#define MH_DEBUG_REG63(mh_dbg_default) \
+ ((mh_dbg_default << MH_DEBUG_REG63_MH_DBG_DEFAULT_SHIFT))
+
+#define MH_DEBUG_REG63_GET_MH_DBG_DEFAULT(mh_debug_reg63) \
+ ((mh_debug_reg63 & MH_DEBUG_REG63_MH_DBG_DEFAULT_MASK) >> MH_DEBUG_REG63_MH_DBG_DEFAULT_SHIFT)
+
+#define MH_DEBUG_REG63_SET_MH_DBG_DEFAULT(mh_debug_reg63_reg, mh_dbg_default) \
+ mh_debug_reg63_reg = (mh_debug_reg63_reg & ~MH_DEBUG_REG63_MH_DBG_DEFAULT_MASK) | (mh_dbg_default << MH_DEBUG_REG63_MH_DBG_DEFAULT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg63_t {
+ unsigned int mh_dbg_default : MH_DEBUG_REG63_MH_DBG_DEFAULT_SIZE;
+ } mh_debug_reg63_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg63_t {
+ unsigned int mh_dbg_default : MH_DEBUG_REG63_MH_DBG_DEFAULT_SIZE;
+ } mh_debug_reg63_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg63_t f;
+} mh_debug_reg63_u;
+
+
+/*
+ * MH_MMU_CONFIG struct
+ */
+
+#define MH_MMU_CONFIG_MMU_ENABLE_SIZE 1
+#define MH_MMU_CONFIG_SPLIT_MODE_ENABLE_SIZE 1
+#define MH_MMU_CONFIG_RESERVED1_SIZE 2
+#define MH_MMU_CONFIG_RB_W_CLNT_BEHAVIOR_SIZE 2
+#define MH_MMU_CONFIG_CP_W_CLNT_BEHAVIOR_SIZE 2
+#define MH_MMU_CONFIG_CP_R0_CLNT_BEHAVIOR_SIZE 2
+#define MH_MMU_CONFIG_CP_R1_CLNT_BEHAVIOR_SIZE 2
+#define MH_MMU_CONFIG_CP_R2_CLNT_BEHAVIOR_SIZE 2
+#define MH_MMU_CONFIG_CP_R3_CLNT_BEHAVIOR_SIZE 2
+#define MH_MMU_CONFIG_CP_R4_CLNT_BEHAVIOR_SIZE 2
+#define MH_MMU_CONFIG_VGT_R0_CLNT_BEHAVIOR_SIZE 2
+#define MH_MMU_CONFIG_VGT_R1_CLNT_BEHAVIOR_SIZE 2
+#define MH_MMU_CONFIG_TC_R_CLNT_BEHAVIOR_SIZE 2
+
+#define MH_MMU_CONFIG_MMU_ENABLE_SHIFT 0
+#define MH_MMU_CONFIG_SPLIT_MODE_ENABLE_SHIFT 1
+#define MH_MMU_CONFIG_RESERVED1_SHIFT 2
+#define MH_MMU_CONFIG_RB_W_CLNT_BEHAVIOR_SHIFT 4
+#define MH_MMU_CONFIG_CP_W_CLNT_BEHAVIOR_SHIFT 6
+#define MH_MMU_CONFIG_CP_R0_CLNT_BEHAVIOR_SHIFT 8
+#define MH_MMU_CONFIG_CP_R1_CLNT_BEHAVIOR_SHIFT 10
+#define MH_MMU_CONFIG_CP_R2_CLNT_BEHAVIOR_SHIFT 12
+#define MH_MMU_CONFIG_CP_R3_CLNT_BEHAVIOR_SHIFT 14
+#define MH_MMU_CONFIG_CP_R4_CLNT_BEHAVIOR_SHIFT 16
+#define MH_MMU_CONFIG_VGT_R0_CLNT_BEHAVIOR_SHIFT 18
+#define MH_MMU_CONFIG_VGT_R1_CLNT_BEHAVIOR_SHIFT 20
+#define MH_MMU_CONFIG_TC_R_CLNT_BEHAVIOR_SHIFT 22
+
+#define MH_MMU_CONFIG_MMU_ENABLE_MASK 0x00000001
+#define MH_MMU_CONFIG_SPLIT_MODE_ENABLE_MASK 0x00000002
+#define MH_MMU_CONFIG_RESERVED1_MASK 0x0000000c
+#define MH_MMU_CONFIG_RB_W_CLNT_BEHAVIOR_MASK 0x00000030
+#define MH_MMU_CONFIG_CP_W_CLNT_BEHAVIOR_MASK 0x000000c0
+#define MH_MMU_CONFIG_CP_R0_CLNT_BEHAVIOR_MASK 0x00000300
+#define MH_MMU_CONFIG_CP_R1_CLNT_BEHAVIOR_MASK 0x00000c00
+#define MH_MMU_CONFIG_CP_R2_CLNT_BEHAVIOR_MASK 0x00003000
+#define MH_MMU_CONFIG_CP_R3_CLNT_BEHAVIOR_MASK 0x0000c000
+#define MH_MMU_CONFIG_CP_R4_CLNT_BEHAVIOR_MASK 0x00030000
+#define MH_MMU_CONFIG_VGT_R0_CLNT_BEHAVIOR_MASK 0x000c0000
+#define MH_MMU_CONFIG_VGT_R1_CLNT_BEHAVIOR_MASK 0x00300000
+#define MH_MMU_CONFIG_TC_R_CLNT_BEHAVIOR_MASK 0x00c00000
+
+#define MH_MMU_CONFIG_MASK \
+ (MH_MMU_CONFIG_MMU_ENABLE_MASK | \
+ MH_MMU_CONFIG_SPLIT_MODE_ENABLE_MASK | \
+ MH_MMU_CONFIG_RESERVED1_MASK | \
+ MH_MMU_CONFIG_RB_W_CLNT_BEHAVIOR_MASK | \
+ MH_MMU_CONFIG_CP_W_CLNT_BEHAVIOR_MASK | \
+ MH_MMU_CONFIG_CP_R0_CLNT_BEHAVIOR_MASK | \
+ MH_MMU_CONFIG_CP_R1_CLNT_BEHAVIOR_MASK | \
+ MH_MMU_CONFIG_CP_R2_CLNT_BEHAVIOR_MASK | \
+ MH_MMU_CONFIG_CP_R3_CLNT_BEHAVIOR_MASK | \
+ MH_MMU_CONFIG_CP_R4_CLNT_BEHAVIOR_MASK | \
+ MH_MMU_CONFIG_VGT_R0_CLNT_BEHAVIOR_MASK | \
+ MH_MMU_CONFIG_VGT_R1_CLNT_BEHAVIOR_MASK | \
+ MH_MMU_CONFIG_TC_R_CLNT_BEHAVIOR_MASK)
+
+#define MH_MMU_CONFIG(mmu_enable, split_mode_enable, reserved1, rb_w_clnt_behavior, cp_w_clnt_behavior, cp_r0_clnt_behavior, cp_r1_clnt_behavior, cp_r2_clnt_behavior, cp_r3_clnt_behavior, cp_r4_clnt_behavior, vgt_r0_clnt_behavior, vgt_r1_clnt_behavior, tc_r_clnt_behavior) \
+ ((mmu_enable << MH_MMU_CONFIG_MMU_ENABLE_SHIFT) | \
+ (split_mode_enable << MH_MMU_CONFIG_SPLIT_MODE_ENABLE_SHIFT) | \
+ (reserved1 << MH_MMU_CONFIG_RESERVED1_SHIFT) | \
+ (rb_w_clnt_behavior << MH_MMU_CONFIG_RB_W_CLNT_BEHAVIOR_SHIFT) | \
+ (cp_w_clnt_behavior << MH_MMU_CONFIG_CP_W_CLNT_BEHAVIOR_SHIFT) | \
+ (cp_r0_clnt_behavior << MH_MMU_CONFIG_CP_R0_CLNT_BEHAVIOR_SHIFT) | \
+ (cp_r1_clnt_behavior << MH_MMU_CONFIG_CP_R1_CLNT_BEHAVIOR_SHIFT) | \
+ (cp_r2_clnt_behavior << MH_MMU_CONFIG_CP_R2_CLNT_BEHAVIOR_SHIFT) | \
+ (cp_r3_clnt_behavior << MH_MMU_CONFIG_CP_R3_CLNT_BEHAVIOR_SHIFT) | \
+ (cp_r4_clnt_behavior << MH_MMU_CONFIG_CP_R4_CLNT_BEHAVIOR_SHIFT) | \
+ (vgt_r0_clnt_behavior << MH_MMU_CONFIG_VGT_R0_CLNT_BEHAVIOR_SHIFT) | \
+ (vgt_r1_clnt_behavior << MH_MMU_CONFIG_VGT_R1_CLNT_BEHAVIOR_SHIFT) | \
+ (tc_r_clnt_behavior << MH_MMU_CONFIG_TC_R_CLNT_BEHAVIOR_SHIFT))
+
+#define MH_MMU_CONFIG_GET_MMU_ENABLE(mh_mmu_config) \
+ ((mh_mmu_config & MH_MMU_CONFIG_MMU_ENABLE_MASK) >> MH_MMU_CONFIG_MMU_ENABLE_SHIFT)
+#define MH_MMU_CONFIG_GET_SPLIT_MODE_ENABLE(mh_mmu_config) \
+ ((mh_mmu_config & MH_MMU_CONFIG_SPLIT_MODE_ENABLE_MASK) >> MH_MMU_CONFIG_SPLIT_MODE_ENABLE_SHIFT)
+#define MH_MMU_CONFIG_GET_RESERVED1(mh_mmu_config) \
+ ((mh_mmu_config & MH_MMU_CONFIG_RESERVED1_MASK) >> MH_MMU_CONFIG_RESERVED1_SHIFT)
+#define MH_MMU_CONFIG_GET_RB_W_CLNT_BEHAVIOR(mh_mmu_config) \
+ ((mh_mmu_config & MH_MMU_CONFIG_RB_W_CLNT_BEHAVIOR_MASK) >> MH_MMU_CONFIG_RB_W_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_GET_CP_W_CLNT_BEHAVIOR(mh_mmu_config) \
+ ((mh_mmu_config & MH_MMU_CONFIG_CP_W_CLNT_BEHAVIOR_MASK) >> MH_MMU_CONFIG_CP_W_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_GET_CP_R0_CLNT_BEHAVIOR(mh_mmu_config) \
+ ((mh_mmu_config & MH_MMU_CONFIG_CP_R0_CLNT_BEHAVIOR_MASK) >> MH_MMU_CONFIG_CP_R0_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_GET_CP_R1_CLNT_BEHAVIOR(mh_mmu_config) \
+ ((mh_mmu_config & MH_MMU_CONFIG_CP_R1_CLNT_BEHAVIOR_MASK) >> MH_MMU_CONFIG_CP_R1_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_GET_CP_R2_CLNT_BEHAVIOR(mh_mmu_config) \
+ ((mh_mmu_config & MH_MMU_CONFIG_CP_R2_CLNT_BEHAVIOR_MASK) >> MH_MMU_CONFIG_CP_R2_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_GET_CP_R3_CLNT_BEHAVIOR(mh_mmu_config) \
+ ((mh_mmu_config & MH_MMU_CONFIG_CP_R3_CLNT_BEHAVIOR_MASK) >> MH_MMU_CONFIG_CP_R3_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_GET_CP_R4_CLNT_BEHAVIOR(mh_mmu_config) \
+ ((mh_mmu_config & MH_MMU_CONFIG_CP_R4_CLNT_BEHAVIOR_MASK) >> MH_MMU_CONFIG_CP_R4_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_GET_VGT_R0_CLNT_BEHAVIOR(mh_mmu_config) \
+ ((mh_mmu_config & MH_MMU_CONFIG_VGT_R0_CLNT_BEHAVIOR_MASK) >> MH_MMU_CONFIG_VGT_R0_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_GET_VGT_R1_CLNT_BEHAVIOR(mh_mmu_config) \
+ ((mh_mmu_config & MH_MMU_CONFIG_VGT_R1_CLNT_BEHAVIOR_MASK) >> MH_MMU_CONFIG_VGT_R1_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_GET_TC_R_CLNT_BEHAVIOR(mh_mmu_config) \
+ ((mh_mmu_config & MH_MMU_CONFIG_TC_R_CLNT_BEHAVIOR_MASK) >> MH_MMU_CONFIG_TC_R_CLNT_BEHAVIOR_SHIFT)
+
+#define MH_MMU_CONFIG_SET_MMU_ENABLE(mh_mmu_config_reg, mmu_enable) \
+ mh_mmu_config_reg = (mh_mmu_config_reg & ~MH_MMU_CONFIG_MMU_ENABLE_MASK) | (mmu_enable << MH_MMU_CONFIG_MMU_ENABLE_SHIFT)
+#define MH_MMU_CONFIG_SET_SPLIT_MODE_ENABLE(mh_mmu_config_reg, split_mode_enable) \
+ mh_mmu_config_reg = (mh_mmu_config_reg & ~MH_MMU_CONFIG_SPLIT_MODE_ENABLE_MASK) | (split_mode_enable << MH_MMU_CONFIG_SPLIT_MODE_ENABLE_SHIFT)
+#define MH_MMU_CONFIG_SET_RESERVED1(mh_mmu_config_reg, reserved1) \
+ mh_mmu_config_reg = (mh_mmu_config_reg & ~MH_MMU_CONFIG_RESERVED1_MASK) | (reserved1 << MH_MMU_CONFIG_RESERVED1_SHIFT)
+#define MH_MMU_CONFIG_SET_RB_W_CLNT_BEHAVIOR(mh_mmu_config_reg, rb_w_clnt_behavior) \
+ mh_mmu_config_reg = (mh_mmu_config_reg & ~MH_MMU_CONFIG_RB_W_CLNT_BEHAVIOR_MASK) | (rb_w_clnt_behavior << MH_MMU_CONFIG_RB_W_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_SET_CP_W_CLNT_BEHAVIOR(mh_mmu_config_reg, cp_w_clnt_behavior) \
+ mh_mmu_config_reg = (mh_mmu_config_reg & ~MH_MMU_CONFIG_CP_W_CLNT_BEHAVIOR_MASK) | (cp_w_clnt_behavior << MH_MMU_CONFIG_CP_W_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_SET_CP_R0_CLNT_BEHAVIOR(mh_mmu_config_reg, cp_r0_clnt_behavior) \
+ mh_mmu_config_reg = (mh_mmu_config_reg & ~MH_MMU_CONFIG_CP_R0_CLNT_BEHAVIOR_MASK) | (cp_r0_clnt_behavior << MH_MMU_CONFIG_CP_R0_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_SET_CP_R1_CLNT_BEHAVIOR(mh_mmu_config_reg, cp_r1_clnt_behavior) \
+ mh_mmu_config_reg = (mh_mmu_config_reg & ~MH_MMU_CONFIG_CP_R1_CLNT_BEHAVIOR_MASK) | (cp_r1_clnt_behavior << MH_MMU_CONFIG_CP_R1_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_SET_CP_R2_CLNT_BEHAVIOR(mh_mmu_config_reg, cp_r2_clnt_behavior) \
+ mh_mmu_config_reg = (mh_mmu_config_reg & ~MH_MMU_CONFIG_CP_R2_CLNT_BEHAVIOR_MASK) | (cp_r2_clnt_behavior << MH_MMU_CONFIG_CP_R2_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_SET_CP_R3_CLNT_BEHAVIOR(mh_mmu_config_reg, cp_r3_clnt_behavior) \
+ mh_mmu_config_reg = (mh_mmu_config_reg & ~MH_MMU_CONFIG_CP_R3_CLNT_BEHAVIOR_MASK) | (cp_r3_clnt_behavior << MH_MMU_CONFIG_CP_R3_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_SET_CP_R4_CLNT_BEHAVIOR(mh_mmu_config_reg, cp_r4_clnt_behavior) \
+ mh_mmu_config_reg = (mh_mmu_config_reg & ~MH_MMU_CONFIG_CP_R4_CLNT_BEHAVIOR_MASK) | (cp_r4_clnt_behavior << MH_MMU_CONFIG_CP_R4_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_SET_VGT_R0_CLNT_BEHAVIOR(mh_mmu_config_reg, vgt_r0_clnt_behavior) \
+ mh_mmu_config_reg = (mh_mmu_config_reg & ~MH_MMU_CONFIG_VGT_R0_CLNT_BEHAVIOR_MASK) | (vgt_r0_clnt_behavior << MH_MMU_CONFIG_VGT_R0_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_SET_VGT_R1_CLNT_BEHAVIOR(mh_mmu_config_reg, vgt_r1_clnt_behavior) \
+ mh_mmu_config_reg = (mh_mmu_config_reg & ~MH_MMU_CONFIG_VGT_R1_CLNT_BEHAVIOR_MASK) | (vgt_r1_clnt_behavior << MH_MMU_CONFIG_VGT_R1_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_SET_TC_R_CLNT_BEHAVIOR(mh_mmu_config_reg, tc_r_clnt_behavior) \
+ mh_mmu_config_reg = (mh_mmu_config_reg & ~MH_MMU_CONFIG_TC_R_CLNT_BEHAVIOR_MASK) | (tc_r_clnt_behavior << MH_MMU_CONFIG_TC_R_CLNT_BEHAVIOR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_mmu_config_t {
+ unsigned int mmu_enable : MH_MMU_CONFIG_MMU_ENABLE_SIZE;
+ unsigned int split_mode_enable : MH_MMU_CONFIG_SPLIT_MODE_ENABLE_SIZE;
+ unsigned int reserved1 : MH_MMU_CONFIG_RESERVED1_SIZE;
+ unsigned int rb_w_clnt_behavior : MH_MMU_CONFIG_RB_W_CLNT_BEHAVIOR_SIZE;
+ unsigned int cp_w_clnt_behavior : MH_MMU_CONFIG_CP_W_CLNT_BEHAVIOR_SIZE;
+ unsigned int cp_r0_clnt_behavior : MH_MMU_CONFIG_CP_R0_CLNT_BEHAVIOR_SIZE;
+ unsigned int cp_r1_clnt_behavior : MH_MMU_CONFIG_CP_R1_CLNT_BEHAVIOR_SIZE;
+ unsigned int cp_r2_clnt_behavior : MH_MMU_CONFIG_CP_R2_CLNT_BEHAVIOR_SIZE;
+ unsigned int cp_r3_clnt_behavior : MH_MMU_CONFIG_CP_R3_CLNT_BEHAVIOR_SIZE;
+ unsigned int cp_r4_clnt_behavior : MH_MMU_CONFIG_CP_R4_CLNT_BEHAVIOR_SIZE;
+ unsigned int vgt_r0_clnt_behavior : MH_MMU_CONFIG_VGT_R0_CLNT_BEHAVIOR_SIZE;
+ unsigned int vgt_r1_clnt_behavior : MH_MMU_CONFIG_VGT_R1_CLNT_BEHAVIOR_SIZE;
+ unsigned int tc_r_clnt_behavior : MH_MMU_CONFIG_TC_R_CLNT_BEHAVIOR_SIZE;
+ unsigned int : 8;
+ } mh_mmu_config_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_mmu_config_t {
+ unsigned int : 8;
+ unsigned int tc_r_clnt_behavior : MH_MMU_CONFIG_TC_R_CLNT_BEHAVIOR_SIZE;
+ unsigned int vgt_r1_clnt_behavior : MH_MMU_CONFIG_VGT_R1_CLNT_BEHAVIOR_SIZE;
+ unsigned int vgt_r0_clnt_behavior : MH_MMU_CONFIG_VGT_R0_CLNT_BEHAVIOR_SIZE;
+ unsigned int cp_r4_clnt_behavior : MH_MMU_CONFIG_CP_R4_CLNT_BEHAVIOR_SIZE;
+ unsigned int cp_r3_clnt_behavior : MH_MMU_CONFIG_CP_R3_CLNT_BEHAVIOR_SIZE;
+ unsigned int cp_r2_clnt_behavior : MH_MMU_CONFIG_CP_R2_CLNT_BEHAVIOR_SIZE;
+ unsigned int cp_r1_clnt_behavior : MH_MMU_CONFIG_CP_R1_CLNT_BEHAVIOR_SIZE;
+ unsigned int cp_r0_clnt_behavior : MH_MMU_CONFIG_CP_R0_CLNT_BEHAVIOR_SIZE;
+ unsigned int cp_w_clnt_behavior : MH_MMU_CONFIG_CP_W_CLNT_BEHAVIOR_SIZE;
+ unsigned int rb_w_clnt_behavior : MH_MMU_CONFIG_RB_W_CLNT_BEHAVIOR_SIZE;
+ unsigned int reserved1 : MH_MMU_CONFIG_RESERVED1_SIZE;
+ unsigned int split_mode_enable : MH_MMU_CONFIG_SPLIT_MODE_ENABLE_SIZE;
+ unsigned int mmu_enable : MH_MMU_CONFIG_MMU_ENABLE_SIZE;
+ } mh_mmu_config_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_mmu_config_t f;
+} mh_mmu_config_u;
+
+
+/*
+ * MH_MMU_VA_RANGE struct
+ */
+
+#define MH_MMU_VA_RANGE_NUM_64KB_REGIONS_SIZE 12
+#define MH_MMU_VA_RANGE_VA_BASE_SIZE 20
+
+#define MH_MMU_VA_RANGE_NUM_64KB_REGIONS_SHIFT 0
+#define MH_MMU_VA_RANGE_VA_BASE_SHIFT 12
+
+#define MH_MMU_VA_RANGE_NUM_64KB_REGIONS_MASK 0x00000fff
+#define MH_MMU_VA_RANGE_VA_BASE_MASK 0xfffff000
+
+#define MH_MMU_VA_RANGE_MASK \
+ (MH_MMU_VA_RANGE_NUM_64KB_REGIONS_MASK | \
+ MH_MMU_VA_RANGE_VA_BASE_MASK)
+
+#define MH_MMU_VA_RANGE(num_64kb_regions, va_base) \
+ ((num_64kb_regions << MH_MMU_VA_RANGE_NUM_64KB_REGIONS_SHIFT) | \
+ (va_base << MH_MMU_VA_RANGE_VA_BASE_SHIFT))
+
+#define MH_MMU_VA_RANGE_GET_NUM_64KB_REGIONS(mh_mmu_va_range) \
+ ((mh_mmu_va_range & MH_MMU_VA_RANGE_NUM_64KB_REGIONS_MASK) >> MH_MMU_VA_RANGE_NUM_64KB_REGIONS_SHIFT)
+#define MH_MMU_VA_RANGE_GET_VA_BASE(mh_mmu_va_range) \
+ ((mh_mmu_va_range & MH_MMU_VA_RANGE_VA_BASE_MASK) >> MH_MMU_VA_RANGE_VA_BASE_SHIFT)
+
+#define MH_MMU_VA_RANGE_SET_NUM_64KB_REGIONS(mh_mmu_va_range_reg, num_64kb_regions) \
+ mh_mmu_va_range_reg = (mh_mmu_va_range_reg & ~MH_MMU_VA_RANGE_NUM_64KB_REGIONS_MASK) | (num_64kb_regions << MH_MMU_VA_RANGE_NUM_64KB_REGIONS_SHIFT)
+#define MH_MMU_VA_RANGE_SET_VA_BASE(mh_mmu_va_range_reg, va_base) \
+ mh_mmu_va_range_reg = (mh_mmu_va_range_reg & ~MH_MMU_VA_RANGE_VA_BASE_MASK) | (va_base << MH_MMU_VA_RANGE_VA_BASE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_mmu_va_range_t {
+ unsigned int num_64kb_regions : MH_MMU_VA_RANGE_NUM_64KB_REGIONS_SIZE;
+ unsigned int va_base : MH_MMU_VA_RANGE_VA_BASE_SIZE;
+ } mh_mmu_va_range_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_mmu_va_range_t {
+ unsigned int va_base : MH_MMU_VA_RANGE_VA_BASE_SIZE;
+ unsigned int num_64kb_regions : MH_MMU_VA_RANGE_NUM_64KB_REGIONS_SIZE;
+ } mh_mmu_va_range_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_mmu_va_range_t f;
+} mh_mmu_va_range_u;
+
+
+/*
+ * MH_MMU_PT_BASE struct
+ */
+
+#define MH_MMU_PT_BASE_PT_BASE_SIZE 20
+
+#define MH_MMU_PT_BASE_PT_BASE_SHIFT 12
+
+#define MH_MMU_PT_BASE_PT_BASE_MASK 0xfffff000
+
+#define MH_MMU_PT_BASE_MASK \
+ (MH_MMU_PT_BASE_PT_BASE_MASK)
+
+#define MH_MMU_PT_BASE(pt_base) \
+ ((pt_base << MH_MMU_PT_BASE_PT_BASE_SHIFT))
+
+#define MH_MMU_PT_BASE_GET_PT_BASE(mh_mmu_pt_base) \
+ ((mh_mmu_pt_base & MH_MMU_PT_BASE_PT_BASE_MASK) >> MH_MMU_PT_BASE_PT_BASE_SHIFT)
+
+#define MH_MMU_PT_BASE_SET_PT_BASE(mh_mmu_pt_base_reg, pt_base) \
+ mh_mmu_pt_base_reg = (mh_mmu_pt_base_reg & ~MH_MMU_PT_BASE_PT_BASE_MASK) | (pt_base << MH_MMU_PT_BASE_PT_BASE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_mmu_pt_base_t {
+ unsigned int : 12;
+ unsigned int pt_base : MH_MMU_PT_BASE_PT_BASE_SIZE;
+ } mh_mmu_pt_base_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_mmu_pt_base_t {
+ unsigned int pt_base : MH_MMU_PT_BASE_PT_BASE_SIZE;
+ unsigned int : 12;
+ } mh_mmu_pt_base_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_mmu_pt_base_t f;
+} mh_mmu_pt_base_u;
+
+
+/*
+ * MH_MMU_PAGE_FAULT struct
+ */
+
+#define MH_MMU_PAGE_FAULT_PAGE_FAULT_SIZE 1
+#define MH_MMU_PAGE_FAULT_OP_TYPE_SIZE 1
+#define MH_MMU_PAGE_FAULT_CLNT_BEHAVIOR_SIZE 2
+#define MH_MMU_PAGE_FAULT_AXI_ID_SIZE 3
+#define MH_MMU_PAGE_FAULT_RESERVED1_SIZE 1
+#define MH_MMU_PAGE_FAULT_MPU_ADDRESS_OUT_OF_RANGE_SIZE 1
+#define MH_MMU_PAGE_FAULT_ADDRESS_OUT_OF_RANGE_SIZE 1
+#define MH_MMU_PAGE_FAULT_READ_PROTECTION_ERROR_SIZE 1
+#define MH_MMU_PAGE_FAULT_WRITE_PROTECTION_ERROR_SIZE 1
+#define MH_MMU_PAGE_FAULT_REQ_VA_SIZE 20
+
+#define MH_MMU_PAGE_FAULT_PAGE_FAULT_SHIFT 0
+#define MH_MMU_PAGE_FAULT_OP_TYPE_SHIFT 1
+#define MH_MMU_PAGE_FAULT_CLNT_BEHAVIOR_SHIFT 2
+#define MH_MMU_PAGE_FAULT_AXI_ID_SHIFT 4
+#define MH_MMU_PAGE_FAULT_RESERVED1_SHIFT 7
+#define MH_MMU_PAGE_FAULT_MPU_ADDRESS_OUT_OF_RANGE_SHIFT 8
+#define MH_MMU_PAGE_FAULT_ADDRESS_OUT_OF_RANGE_SHIFT 9
+#define MH_MMU_PAGE_FAULT_READ_PROTECTION_ERROR_SHIFT 10
+#define MH_MMU_PAGE_FAULT_WRITE_PROTECTION_ERROR_SHIFT 11
+#define MH_MMU_PAGE_FAULT_REQ_VA_SHIFT 12
+
+#define MH_MMU_PAGE_FAULT_PAGE_FAULT_MASK 0x00000001
+#define MH_MMU_PAGE_FAULT_OP_TYPE_MASK 0x00000002
+#define MH_MMU_PAGE_FAULT_CLNT_BEHAVIOR_MASK 0x0000000c
+#define MH_MMU_PAGE_FAULT_AXI_ID_MASK 0x00000070
+#define MH_MMU_PAGE_FAULT_RESERVED1_MASK 0x00000080
+#define MH_MMU_PAGE_FAULT_MPU_ADDRESS_OUT_OF_RANGE_MASK 0x00000100
+#define MH_MMU_PAGE_FAULT_ADDRESS_OUT_OF_RANGE_MASK 0x00000200
+#define MH_MMU_PAGE_FAULT_READ_PROTECTION_ERROR_MASK 0x00000400
+#define MH_MMU_PAGE_FAULT_WRITE_PROTECTION_ERROR_MASK 0x00000800
+#define MH_MMU_PAGE_FAULT_REQ_VA_MASK 0xfffff000
+
+#define MH_MMU_PAGE_FAULT_MASK \
+ (MH_MMU_PAGE_FAULT_PAGE_FAULT_MASK | \
+ MH_MMU_PAGE_FAULT_OP_TYPE_MASK | \
+ MH_MMU_PAGE_FAULT_CLNT_BEHAVIOR_MASK | \
+ MH_MMU_PAGE_FAULT_AXI_ID_MASK | \
+ MH_MMU_PAGE_FAULT_RESERVED1_MASK | \
+ MH_MMU_PAGE_FAULT_MPU_ADDRESS_OUT_OF_RANGE_MASK | \
+ MH_MMU_PAGE_FAULT_ADDRESS_OUT_OF_RANGE_MASK | \
+ MH_MMU_PAGE_FAULT_READ_PROTECTION_ERROR_MASK | \
+ MH_MMU_PAGE_FAULT_WRITE_PROTECTION_ERROR_MASK | \
+ MH_MMU_PAGE_FAULT_REQ_VA_MASK)
+
+#define MH_MMU_PAGE_FAULT(page_fault, op_type, clnt_behavior, axi_id, reserved1, mpu_address_out_of_range, address_out_of_range, read_protection_error, write_protection_error, req_va) \
+ ((page_fault << MH_MMU_PAGE_FAULT_PAGE_FAULT_SHIFT) | \
+ (op_type << MH_MMU_PAGE_FAULT_OP_TYPE_SHIFT) | \
+ (clnt_behavior << MH_MMU_PAGE_FAULT_CLNT_BEHAVIOR_SHIFT) | \
+ (axi_id << MH_MMU_PAGE_FAULT_AXI_ID_SHIFT) | \
+ (reserved1 << MH_MMU_PAGE_FAULT_RESERVED1_SHIFT) | \
+ (mpu_address_out_of_range << MH_MMU_PAGE_FAULT_MPU_ADDRESS_OUT_OF_RANGE_SHIFT) | \
+ (address_out_of_range << MH_MMU_PAGE_FAULT_ADDRESS_OUT_OF_RANGE_SHIFT) | \
+ (read_protection_error << MH_MMU_PAGE_FAULT_READ_PROTECTION_ERROR_SHIFT) | \
+ (write_protection_error << MH_MMU_PAGE_FAULT_WRITE_PROTECTION_ERROR_SHIFT) | \
+ (req_va << MH_MMU_PAGE_FAULT_REQ_VA_SHIFT))
+
+#define MH_MMU_PAGE_FAULT_GET_PAGE_FAULT(mh_mmu_page_fault) \
+ ((mh_mmu_page_fault & MH_MMU_PAGE_FAULT_PAGE_FAULT_MASK) >> MH_MMU_PAGE_FAULT_PAGE_FAULT_SHIFT)
+#define MH_MMU_PAGE_FAULT_GET_OP_TYPE(mh_mmu_page_fault) \
+ ((mh_mmu_page_fault & MH_MMU_PAGE_FAULT_OP_TYPE_MASK) >> MH_MMU_PAGE_FAULT_OP_TYPE_SHIFT)
+#define MH_MMU_PAGE_FAULT_GET_CLNT_BEHAVIOR(mh_mmu_page_fault) \
+ ((mh_mmu_page_fault & MH_MMU_PAGE_FAULT_CLNT_BEHAVIOR_MASK) >> MH_MMU_PAGE_FAULT_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_PAGE_FAULT_GET_AXI_ID(mh_mmu_page_fault) \
+ ((mh_mmu_page_fault & MH_MMU_PAGE_FAULT_AXI_ID_MASK) >> MH_MMU_PAGE_FAULT_AXI_ID_SHIFT)
+#define MH_MMU_PAGE_FAULT_GET_RESERVED1(mh_mmu_page_fault) \
+ ((mh_mmu_page_fault & MH_MMU_PAGE_FAULT_RESERVED1_MASK) >> MH_MMU_PAGE_FAULT_RESERVED1_SHIFT)
+#define MH_MMU_PAGE_FAULT_GET_MPU_ADDRESS_OUT_OF_RANGE(mh_mmu_page_fault) \
+ ((mh_mmu_page_fault & MH_MMU_PAGE_FAULT_MPU_ADDRESS_OUT_OF_RANGE_MASK) >> MH_MMU_PAGE_FAULT_MPU_ADDRESS_OUT_OF_RANGE_SHIFT)
+#define MH_MMU_PAGE_FAULT_GET_ADDRESS_OUT_OF_RANGE(mh_mmu_page_fault) \
+ ((mh_mmu_page_fault & MH_MMU_PAGE_FAULT_ADDRESS_OUT_OF_RANGE_MASK) >> MH_MMU_PAGE_FAULT_ADDRESS_OUT_OF_RANGE_SHIFT)
+#define MH_MMU_PAGE_FAULT_GET_READ_PROTECTION_ERROR(mh_mmu_page_fault) \
+ ((mh_mmu_page_fault & MH_MMU_PAGE_FAULT_READ_PROTECTION_ERROR_MASK) >> MH_MMU_PAGE_FAULT_READ_PROTECTION_ERROR_SHIFT)
+#define MH_MMU_PAGE_FAULT_GET_WRITE_PROTECTION_ERROR(mh_mmu_page_fault) \
+ ((mh_mmu_page_fault & MH_MMU_PAGE_FAULT_WRITE_PROTECTION_ERROR_MASK) >> MH_MMU_PAGE_FAULT_WRITE_PROTECTION_ERROR_SHIFT)
+#define MH_MMU_PAGE_FAULT_GET_REQ_VA(mh_mmu_page_fault) \
+ ((mh_mmu_page_fault & MH_MMU_PAGE_FAULT_REQ_VA_MASK) >> MH_MMU_PAGE_FAULT_REQ_VA_SHIFT)
+
+#define MH_MMU_PAGE_FAULT_SET_PAGE_FAULT(mh_mmu_page_fault_reg, page_fault) \
+ mh_mmu_page_fault_reg = (mh_mmu_page_fault_reg & ~MH_MMU_PAGE_FAULT_PAGE_FAULT_MASK) | (page_fault << MH_MMU_PAGE_FAULT_PAGE_FAULT_SHIFT)
+#define MH_MMU_PAGE_FAULT_SET_OP_TYPE(mh_mmu_page_fault_reg, op_type) \
+ mh_mmu_page_fault_reg = (mh_mmu_page_fault_reg & ~MH_MMU_PAGE_FAULT_OP_TYPE_MASK) | (op_type << MH_MMU_PAGE_FAULT_OP_TYPE_SHIFT)
+#define MH_MMU_PAGE_FAULT_SET_CLNT_BEHAVIOR(mh_mmu_page_fault_reg, clnt_behavior) \
+ mh_mmu_page_fault_reg = (mh_mmu_page_fault_reg & ~MH_MMU_PAGE_FAULT_CLNT_BEHAVIOR_MASK) | (clnt_behavior << MH_MMU_PAGE_FAULT_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_PAGE_FAULT_SET_AXI_ID(mh_mmu_page_fault_reg, axi_id) \
+ mh_mmu_page_fault_reg = (mh_mmu_page_fault_reg & ~MH_MMU_PAGE_FAULT_AXI_ID_MASK) | (axi_id << MH_MMU_PAGE_FAULT_AXI_ID_SHIFT)
+#define MH_MMU_PAGE_FAULT_SET_RESERVED1(mh_mmu_page_fault_reg, reserved1) \
+ mh_mmu_page_fault_reg = (mh_mmu_page_fault_reg & ~MH_MMU_PAGE_FAULT_RESERVED1_MASK) | (reserved1 << MH_MMU_PAGE_FAULT_RESERVED1_SHIFT)
+#define MH_MMU_PAGE_FAULT_SET_MPU_ADDRESS_OUT_OF_RANGE(mh_mmu_page_fault_reg, mpu_address_out_of_range) \
+ mh_mmu_page_fault_reg = (mh_mmu_page_fault_reg & ~MH_MMU_PAGE_FAULT_MPU_ADDRESS_OUT_OF_RANGE_MASK) | (mpu_address_out_of_range << MH_MMU_PAGE_FAULT_MPU_ADDRESS_OUT_OF_RANGE_SHIFT)
+#define MH_MMU_PAGE_FAULT_SET_ADDRESS_OUT_OF_RANGE(mh_mmu_page_fault_reg, address_out_of_range) \
+ mh_mmu_page_fault_reg = (mh_mmu_page_fault_reg & ~MH_MMU_PAGE_FAULT_ADDRESS_OUT_OF_RANGE_MASK) | (address_out_of_range << MH_MMU_PAGE_FAULT_ADDRESS_OUT_OF_RANGE_SHIFT)
+#define MH_MMU_PAGE_FAULT_SET_READ_PROTECTION_ERROR(mh_mmu_page_fault_reg, read_protection_error) \
+ mh_mmu_page_fault_reg = (mh_mmu_page_fault_reg & ~MH_MMU_PAGE_FAULT_READ_PROTECTION_ERROR_MASK) | (read_protection_error << MH_MMU_PAGE_FAULT_READ_PROTECTION_ERROR_SHIFT)
+#define MH_MMU_PAGE_FAULT_SET_WRITE_PROTECTION_ERROR(mh_mmu_page_fault_reg, write_protection_error) \
+ mh_mmu_page_fault_reg = (mh_mmu_page_fault_reg & ~MH_MMU_PAGE_FAULT_WRITE_PROTECTION_ERROR_MASK) | (write_protection_error << MH_MMU_PAGE_FAULT_WRITE_PROTECTION_ERROR_SHIFT)
+#define MH_MMU_PAGE_FAULT_SET_REQ_VA(mh_mmu_page_fault_reg, req_va) \
+ mh_mmu_page_fault_reg = (mh_mmu_page_fault_reg & ~MH_MMU_PAGE_FAULT_REQ_VA_MASK) | (req_va << MH_MMU_PAGE_FAULT_REQ_VA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_mmu_page_fault_t {
+ unsigned int page_fault : MH_MMU_PAGE_FAULT_PAGE_FAULT_SIZE;
+ unsigned int op_type : MH_MMU_PAGE_FAULT_OP_TYPE_SIZE;
+ unsigned int clnt_behavior : MH_MMU_PAGE_FAULT_CLNT_BEHAVIOR_SIZE;
+ unsigned int axi_id : MH_MMU_PAGE_FAULT_AXI_ID_SIZE;
+ unsigned int reserved1 : MH_MMU_PAGE_FAULT_RESERVED1_SIZE;
+ unsigned int mpu_address_out_of_range : MH_MMU_PAGE_FAULT_MPU_ADDRESS_OUT_OF_RANGE_SIZE;
+ unsigned int address_out_of_range : MH_MMU_PAGE_FAULT_ADDRESS_OUT_OF_RANGE_SIZE;
+ unsigned int read_protection_error : MH_MMU_PAGE_FAULT_READ_PROTECTION_ERROR_SIZE;
+ unsigned int write_protection_error : MH_MMU_PAGE_FAULT_WRITE_PROTECTION_ERROR_SIZE;
+ unsigned int req_va : MH_MMU_PAGE_FAULT_REQ_VA_SIZE;
+ } mh_mmu_page_fault_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_mmu_page_fault_t {
+ unsigned int req_va : MH_MMU_PAGE_FAULT_REQ_VA_SIZE;
+ unsigned int write_protection_error : MH_MMU_PAGE_FAULT_WRITE_PROTECTION_ERROR_SIZE;
+ unsigned int read_protection_error : MH_MMU_PAGE_FAULT_READ_PROTECTION_ERROR_SIZE;
+ unsigned int address_out_of_range : MH_MMU_PAGE_FAULT_ADDRESS_OUT_OF_RANGE_SIZE;
+ unsigned int mpu_address_out_of_range : MH_MMU_PAGE_FAULT_MPU_ADDRESS_OUT_OF_RANGE_SIZE;
+ unsigned int reserved1 : MH_MMU_PAGE_FAULT_RESERVED1_SIZE;
+ unsigned int axi_id : MH_MMU_PAGE_FAULT_AXI_ID_SIZE;
+ unsigned int clnt_behavior : MH_MMU_PAGE_FAULT_CLNT_BEHAVIOR_SIZE;
+ unsigned int op_type : MH_MMU_PAGE_FAULT_OP_TYPE_SIZE;
+ unsigned int page_fault : MH_MMU_PAGE_FAULT_PAGE_FAULT_SIZE;
+ } mh_mmu_page_fault_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_mmu_page_fault_t f;
+} mh_mmu_page_fault_u;
+
+
+/*
+ * MH_MMU_TRAN_ERROR struct
+ */
+
+#define MH_MMU_TRAN_ERROR_TRAN_ERROR_SIZE 27
+
+#define MH_MMU_TRAN_ERROR_TRAN_ERROR_SHIFT 5
+
+#define MH_MMU_TRAN_ERROR_TRAN_ERROR_MASK 0xffffffe0
+
+#define MH_MMU_TRAN_ERROR_MASK \
+ (MH_MMU_TRAN_ERROR_TRAN_ERROR_MASK)
+
+#define MH_MMU_TRAN_ERROR(tran_error) \
+ ((tran_error << MH_MMU_TRAN_ERROR_TRAN_ERROR_SHIFT))
+
+#define MH_MMU_TRAN_ERROR_GET_TRAN_ERROR(mh_mmu_tran_error) \
+ ((mh_mmu_tran_error & MH_MMU_TRAN_ERROR_TRAN_ERROR_MASK) >> MH_MMU_TRAN_ERROR_TRAN_ERROR_SHIFT)
+
+#define MH_MMU_TRAN_ERROR_SET_TRAN_ERROR(mh_mmu_tran_error_reg, tran_error) \
+ mh_mmu_tran_error_reg = (mh_mmu_tran_error_reg & ~MH_MMU_TRAN_ERROR_TRAN_ERROR_MASK) | (tran_error << MH_MMU_TRAN_ERROR_TRAN_ERROR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_mmu_tran_error_t {
+ unsigned int : 5;
+ unsigned int tran_error : MH_MMU_TRAN_ERROR_TRAN_ERROR_SIZE;
+ } mh_mmu_tran_error_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_mmu_tran_error_t {
+ unsigned int tran_error : MH_MMU_TRAN_ERROR_TRAN_ERROR_SIZE;
+ unsigned int : 5;
+ } mh_mmu_tran_error_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_mmu_tran_error_t f;
+} mh_mmu_tran_error_u;
+
+
+/*
+ * MH_MMU_INVALIDATE struct
+ */
+
+#define MH_MMU_INVALIDATE_INVALIDATE_ALL_SIZE 1
+#define MH_MMU_INVALIDATE_INVALIDATE_TC_SIZE 1
+
+#define MH_MMU_INVALIDATE_INVALIDATE_ALL_SHIFT 0
+#define MH_MMU_INVALIDATE_INVALIDATE_TC_SHIFT 1
+
+#define MH_MMU_INVALIDATE_INVALIDATE_ALL_MASK 0x00000001
+#define MH_MMU_INVALIDATE_INVALIDATE_TC_MASK 0x00000002
+
+#define MH_MMU_INVALIDATE_MASK \
+ (MH_MMU_INVALIDATE_INVALIDATE_ALL_MASK | \
+ MH_MMU_INVALIDATE_INVALIDATE_TC_MASK)
+
+#define MH_MMU_INVALIDATE(invalidate_all, invalidate_tc) \
+ ((invalidate_all << MH_MMU_INVALIDATE_INVALIDATE_ALL_SHIFT) | \
+ (invalidate_tc << MH_MMU_INVALIDATE_INVALIDATE_TC_SHIFT))
+
+#define MH_MMU_INVALIDATE_GET_INVALIDATE_ALL(mh_mmu_invalidate) \
+ ((mh_mmu_invalidate & MH_MMU_INVALIDATE_INVALIDATE_ALL_MASK) >> MH_MMU_INVALIDATE_INVALIDATE_ALL_SHIFT)
+#define MH_MMU_INVALIDATE_GET_INVALIDATE_TC(mh_mmu_invalidate) \
+ ((mh_mmu_invalidate & MH_MMU_INVALIDATE_INVALIDATE_TC_MASK) >> MH_MMU_INVALIDATE_INVALIDATE_TC_SHIFT)
+
+#define MH_MMU_INVALIDATE_SET_INVALIDATE_ALL(mh_mmu_invalidate_reg, invalidate_all) \
+ mh_mmu_invalidate_reg = (mh_mmu_invalidate_reg & ~MH_MMU_INVALIDATE_INVALIDATE_ALL_MASK) | (invalidate_all << MH_MMU_INVALIDATE_INVALIDATE_ALL_SHIFT)
+#define MH_MMU_INVALIDATE_SET_INVALIDATE_TC(mh_mmu_invalidate_reg, invalidate_tc) \
+ mh_mmu_invalidate_reg = (mh_mmu_invalidate_reg & ~MH_MMU_INVALIDATE_INVALIDATE_TC_MASK) | (invalidate_tc << MH_MMU_INVALIDATE_INVALIDATE_TC_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_mmu_invalidate_t {
+ unsigned int invalidate_all : MH_MMU_INVALIDATE_INVALIDATE_ALL_SIZE;
+ unsigned int invalidate_tc : MH_MMU_INVALIDATE_INVALIDATE_TC_SIZE;
+ unsigned int : 30;
+ } mh_mmu_invalidate_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_mmu_invalidate_t {
+ unsigned int : 30;
+ unsigned int invalidate_tc : MH_MMU_INVALIDATE_INVALIDATE_TC_SIZE;
+ unsigned int invalidate_all : MH_MMU_INVALIDATE_INVALIDATE_ALL_SIZE;
+ } mh_mmu_invalidate_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_mmu_invalidate_t f;
+} mh_mmu_invalidate_u;
+
+
+/*
+ * MH_MMU_MPU_BASE struct
+ */
+
+#define MH_MMU_MPU_BASE_MPU_BASE_SIZE 20
+
+#define MH_MMU_MPU_BASE_MPU_BASE_SHIFT 12
+
+#define MH_MMU_MPU_BASE_MPU_BASE_MASK 0xfffff000
+
+#define MH_MMU_MPU_BASE_MASK \
+ (MH_MMU_MPU_BASE_MPU_BASE_MASK)
+
+#define MH_MMU_MPU_BASE(mpu_base) \
+ ((mpu_base << MH_MMU_MPU_BASE_MPU_BASE_SHIFT))
+
+#define MH_MMU_MPU_BASE_GET_MPU_BASE(mh_mmu_mpu_base) \
+ ((mh_mmu_mpu_base & MH_MMU_MPU_BASE_MPU_BASE_MASK) >> MH_MMU_MPU_BASE_MPU_BASE_SHIFT)
+
+#define MH_MMU_MPU_BASE_SET_MPU_BASE(mh_mmu_mpu_base_reg, mpu_base) \
+ mh_mmu_mpu_base_reg = (mh_mmu_mpu_base_reg & ~MH_MMU_MPU_BASE_MPU_BASE_MASK) | (mpu_base << MH_MMU_MPU_BASE_MPU_BASE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_mmu_mpu_base_t {
+ unsigned int : 12;
+ unsigned int mpu_base : MH_MMU_MPU_BASE_MPU_BASE_SIZE;
+ } mh_mmu_mpu_base_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_mmu_mpu_base_t {
+ unsigned int mpu_base : MH_MMU_MPU_BASE_MPU_BASE_SIZE;
+ unsigned int : 12;
+ } mh_mmu_mpu_base_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_mmu_mpu_base_t f;
+} mh_mmu_mpu_base_u;
+
+
+/*
+ * MH_MMU_MPU_END struct
+ */
+
+#define MH_MMU_MPU_END_MPU_END_SIZE 20
+
+#define MH_MMU_MPU_END_MPU_END_SHIFT 12
+
+#define MH_MMU_MPU_END_MPU_END_MASK 0xfffff000
+
+#define MH_MMU_MPU_END_MASK \
+ (MH_MMU_MPU_END_MPU_END_MASK)
+
+#define MH_MMU_MPU_END(mpu_end) \
+ ((mpu_end << MH_MMU_MPU_END_MPU_END_SHIFT))
+
+#define MH_MMU_MPU_END_GET_MPU_END(mh_mmu_mpu_end) \
+ ((mh_mmu_mpu_end & MH_MMU_MPU_END_MPU_END_MASK) >> MH_MMU_MPU_END_MPU_END_SHIFT)
+
+#define MH_MMU_MPU_END_SET_MPU_END(mh_mmu_mpu_end_reg, mpu_end) \
+ mh_mmu_mpu_end_reg = (mh_mmu_mpu_end_reg & ~MH_MMU_MPU_END_MPU_END_MASK) | (mpu_end << MH_MMU_MPU_END_MPU_END_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_mmu_mpu_end_t {
+ unsigned int : 12;
+ unsigned int mpu_end : MH_MMU_MPU_END_MPU_END_SIZE;
+ } mh_mmu_mpu_end_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_mmu_mpu_end_t {
+ unsigned int mpu_end : MH_MMU_MPU_END_MPU_END_SIZE;
+ unsigned int : 12;
+ } mh_mmu_mpu_end_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_mmu_mpu_end_t f;
+} mh_mmu_mpu_end_u;
+
+
+#endif
+
+
+#if !defined (_PA_FIDDLE_H)
+#define _PA_FIDDLE_H
+
+/*******************************************************
+ * Enums
+ *******************************************************/
+
+
+/*******************************************************
+ * Values
+ *******************************************************/
+
+
+/*******************************************************
+ * Structures
+ *******************************************************/
+
+/*
+ * PA_CL_VPORT_XSCALE struct
+ */
+
+#define PA_CL_VPORT_XSCALE_VPORT_XSCALE_SIZE 32
+
+#define PA_CL_VPORT_XSCALE_VPORT_XSCALE_SHIFT 0
+
+#define PA_CL_VPORT_XSCALE_VPORT_XSCALE_MASK 0xffffffff
+
+#define PA_CL_VPORT_XSCALE_MASK \
+ (PA_CL_VPORT_XSCALE_VPORT_XSCALE_MASK)
+
+#define PA_CL_VPORT_XSCALE(vport_xscale) \
+ ((vport_xscale << PA_CL_VPORT_XSCALE_VPORT_XSCALE_SHIFT))
+
+#define PA_CL_VPORT_XSCALE_GET_VPORT_XSCALE(pa_cl_vport_xscale) \
+ ((pa_cl_vport_xscale & PA_CL_VPORT_XSCALE_VPORT_XSCALE_MASK) >> PA_CL_VPORT_XSCALE_VPORT_XSCALE_SHIFT)
+
+#define PA_CL_VPORT_XSCALE_SET_VPORT_XSCALE(pa_cl_vport_xscale_reg, vport_xscale) \
+ pa_cl_vport_xscale_reg = (pa_cl_vport_xscale_reg & ~PA_CL_VPORT_XSCALE_VPORT_XSCALE_MASK) | (vport_xscale << PA_CL_VPORT_XSCALE_VPORT_XSCALE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_cl_vport_xscale_t {
+ unsigned int vport_xscale : PA_CL_VPORT_XSCALE_VPORT_XSCALE_SIZE;
+ } pa_cl_vport_xscale_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_cl_vport_xscale_t {
+ unsigned int vport_xscale : PA_CL_VPORT_XSCALE_VPORT_XSCALE_SIZE;
+ } pa_cl_vport_xscale_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_cl_vport_xscale_t f;
+} pa_cl_vport_xscale_u;
+
+
+/*
+ * PA_CL_VPORT_XOFFSET struct
+ */
+
+#define PA_CL_VPORT_XOFFSET_VPORT_XOFFSET_SIZE 32
+
+#define PA_CL_VPORT_XOFFSET_VPORT_XOFFSET_SHIFT 0
+
+#define PA_CL_VPORT_XOFFSET_VPORT_XOFFSET_MASK 0xffffffff
+
+#define PA_CL_VPORT_XOFFSET_MASK \
+ (PA_CL_VPORT_XOFFSET_VPORT_XOFFSET_MASK)
+
+#define PA_CL_VPORT_XOFFSET(vport_xoffset) \
+ ((vport_xoffset << PA_CL_VPORT_XOFFSET_VPORT_XOFFSET_SHIFT))
+
+#define PA_CL_VPORT_XOFFSET_GET_VPORT_XOFFSET(pa_cl_vport_xoffset) \
+ ((pa_cl_vport_xoffset & PA_CL_VPORT_XOFFSET_VPORT_XOFFSET_MASK) >> PA_CL_VPORT_XOFFSET_VPORT_XOFFSET_SHIFT)
+
+#define PA_CL_VPORT_XOFFSET_SET_VPORT_XOFFSET(pa_cl_vport_xoffset_reg, vport_xoffset) \
+ pa_cl_vport_xoffset_reg = (pa_cl_vport_xoffset_reg & ~PA_CL_VPORT_XOFFSET_VPORT_XOFFSET_MASK) | (vport_xoffset << PA_CL_VPORT_XOFFSET_VPORT_XOFFSET_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_cl_vport_xoffset_t {
+ unsigned int vport_xoffset : PA_CL_VPORT_XOFFSET_VPORT_XOFFSET_SIZE;
+ } pa_cl_vport_xoffset_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_cl_vport_xoffset_t {
+ unsigned int vport_xoffset : PA_CL_VPORT_XOFFSET_VPORT_XOFFSET_SIZE;
+ } pa_cl_vport_xoffset_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_cl_vport_xoffset_t f;
+} pa_cl_vport_xoffset_u;
+
+
+/*
+ * PA_CL_VPORT_YSCALE struct
+ */
+
+#define PA_CL_VPORT_YSCALE_VPORT_YSCALE_SIZE 32
+
+#define PA_CL_VPORT_YSCALE_VPORT_YSCALE_SHIFT 0
+
+#define PA_CL_VPORT_YSCALE_VPORT_YSCALE_MASK 0xffffffff
+
+#define PA_CL_VPORT_YSCALE_MASK \
+ (PA_CL_VPORT_YSCALE_VPORT_YSCALE_MASK)
+
+#define PA_CL_VPORT_YSCALE(vport_yscale) \
+ ((vport_yscale << PA_CL_VPORT_YSCALE_VPORT_YSCALE_SHIFT))
+
+#define PA_CL_VPORT_YSCALE_GET_VPORT_YSCALE(pa_cl_vport_yscale) \
+ ((pa_cl_vport_yscale & PA_CL_VPORT_YSCALE_VPORT_YSCALE_MASK) >> PA_CL_VPORT_YSCALE_VPORT_YSCALE_SHIFT)
+
+#define PA_CL_VPORT_YSCALE_SET_VPORT_YSCALE(pa_cl_vport_yscale_reg, vport_yscale) \
+ pa_cl_vport_yscale_reg = (pa_cl_vport_yscale_reg & ~PA_CL_VPORT_YSCALE_VPORT_YSCALE_MASK) | (vport_yscale << PA_CL_VPORT_YSCALE_VPORT_YSCALE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_cl_vport_yscale_t {
+ unsigned int vport_yscale : PA_CL_VPORT_YSCALE_VPORT_YSCALE_SIZE;
+ } pa_cl_vport_yscale_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_cl_vport_yscale_t {
+ unsigned int vport_yscale : PA_CL_VPORT_YSCALE_VPORT_YSCALE_SIZE;
+ } pa_cl_vport_yscale_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_cl_vport_yscale_t f;
+} pa_cl_vport_yscale_u;
+
+
+/*
+ * PA_CL_VPORT_YOFFSET struct
+ */
+
+#define PA_CL_VPORT_YOFFSET_VPORT_YOFFSET_SIZE 32
+
+#define PA_CL_VPORT_YOFFSET_VPORT_YOFFSET_SHIFT 0
+
+#define PA_CL_VPORT_YOFFSET_VPORT_YOFFSET_MASK 0xffffffff
+
+#define PA_CL_VPORT_YOFFSET_MASK \
+ (PA_CL_VPORT_YOFFSET_VPORT_YOFFSET_MASK)
+
+#define PA_CL_VPORT_YOFFSET(vport_yoffset) \
+ ((vport_yoffset << PA_CL_VPORT_YOFFSET_VPORT_YOFFSET_SHIFT))
+
+#define PA_CL_VPORT_YOFFSET_GET_VPORT_YOFFSET(pa_cl_vport_yoffset) \
+ ((pa_cl_vport_yoffset & PA_CL_VPORT_YOFFSET_VPORT_YOFFSET_MASK) >> PA_CL_VPORT_YOFFSET_VPORT_YOFFSET_SHIFT)
+
+#define PA_CL_VPORT_YOFFSET_SET_VPORT_YOFFSET(pa_cl_vport_yoffset_reg, vport_yoffset) \
+ pa_cl_vport_yoffset_reg = (pa_cl_vport_yoffset_reg & ~PA_CL_VPORT_YOFFSET_VPORT_YOFFSET_MASK) | (vport_yoffset << PA_CL_VPORT_YOFFSET_VPORT_YOFFSET_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_cl_vport_yoffset_t {
+ unsigned int vport_yoffset : PA_CL_VPORT_YOFFSET_VPORT_YOFFSET_SIZE;
+ } pa_cl_vport_yoffset_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_cl_vport_yoffset_t {
+ unsigned int vport_yoffset : PA_CL_VPORT_YOFFSET_VPORT_YOFFSET_SIZE;
+ } pa_cl_vport_yoffset_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_cl_vport_yoffset_t f;
+} pa_cl_vport_yoffset_u;
+
+
+/*
+ * PA_CL_VPORT_ZSCALE struct
+ */
+
+#define PA_CL_VPORT_ZSCALE_VPORT_ZSCALE_SIZE 32
+
+#define PA_CL_VPORT_ZSCALE_VPORT_ZSCALE_SHIFT 0
+
+#define PA_CL_VPORT_ZSCALE_VPORT_ZSCALE_MASK 0xffffffff
+
+#define PA_CL_VPORT_ZSCALE_MASK \
+ (PA_CL_VPORT_ZSCALE_VPORT_ZSCALE_MASK)
+
+#define PA_CL_VPORT_ZSCALE(vport_zscale) \
+ ((vport_zscale << PA_CL_VPORT_ZSCALE_VPORT_ZSCALE_SHIFT))
+
+#define PA_CL_VPORT_ZSCALE_GET_VPORT_ZSCALE(pa_cl_vport_zscale) \
+ ((pa_cl_vport_zscale & PA_CL_VPORT_ZSCALE_VPORT_ZSCALE_MASK) >> PA_CL_VPORT_ZSCALE_VPORT_ZSCALE_SHIFT)
+
+#define PA_CL_VPORT_ZSCALE_SET_VPORT_ZSCALE(pa_cl_vport_zscale_reg, vport_zscale) \
+ pa_cl_vport_zscale_reg = (pa_cl_vport_zscale_reg & ~PA_CL_VPORT_ZSCALE_VPORT_ZSCALE_MASK) | (vport_zscale << PA_CL_VPORT_ZSCALE_VPORT_ZSCALE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_cl_vport_zscale_t {
+ unsigned int vport_zscale : PA_CL_VPORT_ZSCALE_VPORT_ZSCALE_SIZE;
+ } pa_cl_vport_zscale_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_cl_vport_zscale_t {
+ unsigned int vport_zscale : PA_CL_VPORT_ZSCALE_VPORT_ZSCALE_SIZE;
+ } pa_cl_vport_zscale_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_cl_vport_zscale_t f;
+} pa_cl_vport_zscale_u;
+
+
+/*
+ * PA_CL_VPORT_ZOFFSET struct
+ */
+
+#define PA_CL_VPORT_ZOFFSET_VPORT_ZOFFSET_SIZE 32
+
+#define PA_CL_VPORT_ZOFFSET_VPORT_ZOFFSET_SHIFT 0
+
+#define PA_CL_VPORT_ZOFFSET_VPORT_ZOFFSET_MASK 0xffffffff
+
+#define PA_CL_VPORT_ZOFFSET_MASK \
+ (PA_CL_VPORT_ZOFFSET_VPORT_ZOFFSET_MASK)
+
+#define PA_CL_VPORT_ZOFFSET(vport_zoffset) \
+ ((vport_zoffset << PA_CL_VPORT_ZOFFSET_VPORT_ZOFFSET_SHIFT))
+
+#define PA_CL_VPORT_ZOFFSET_GET_VPORT_ZOFFSET(pa_cl_vport_zoffset) \
+ ((pa_cl_vport_zoffset & PA_CL_VPORT_ZOFFSET_VPORT_ZOFFSET_MASK) >> PA_CL_VPORT_ZOFFSET_VPORT_ZOFFSET_SHIFT)
+
+#define PA_CL_VPORT_ZOFFSET_SET_VPORT_ZOFFSET(pa_cl_vport_zoffset_reg, vport_zoffset) \
+ pa_cl_vport_zoffset_reg = (pa_cl_vport_zoffset_reg & ~PA_CL_VPORT_ZOFFSET_VPORT_ZOFFSET_MASK) | (vport_zoffset << PA_CL_VPORT_ZOFFSET_VPORT_ZOFFSET_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_cl_vport_zoffset_t {
+ unsigned int vport_zoffset : PA_CL_VPORT_ZOFFSET_VPORT_ZOFFSET_SIZE;
+ } pa_cl_vport_zoffset_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_cl_vport_zoffset_t {
+ unsigned int vport_zoffset : PA_CL_VPORT_ZOFFSET_VPORT_ZOFFSET_SIZE;
+ } pa_cl_vport_zoffset_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_cl_vport_zoffset_t f;
+} pa_cl_vport_zoffset_u;
+
+
+/*
+ * PA_CL_VTE_CNTL struct
+ */
+
+#define PA_CL_VTE_CNTL_VPORT_X_SCALE_ENA_SIZE 1
+#define PA_CL_VTE_CNTL_VPORT_X_OFFSET_ENA_SIZE 1
+#define PA_CL_VTE_CNTL_VPORT_Y_SCALE_ENA_SIZE 1
+#define PA_CL_VTE_CNTL_VPORT_Y_OFFSET_ENA_SIZE 1
+#define PA_CL_VTE_CNTL_VPORT_Z_SCALE_ENA_SIZE 1
+#define PA_CL_VTE_CNTL_VPORT_Z_OFFSET_ENA_SIZE 1
+#define PA_CL_VTE_CNTL_VTX_XY_FMT_SIZE 1
+#define PA_CL_VTE_CNTL_VTX_Z_FMT_SIZE 1
+#define PA_CL_VTE_CNTL_VTX_W0_FMT_SIZE 1
+#define PA_CL_VTE_CNTL_PERFCOUNTER_REF_SIZE 1
+
+#define PA_CL_VTE_CNTL_VPORT_X_SCALE_ENA_SHIFT 0
+#define PA_CL_VTE_CNTL_VPORT_X_OFFSET_ENA_SHIFT 1
+#define PA_CL_VTE_CNTL_VPORT_Y_SCALE_ENA_SHIFT 2
+#define PA_CL_VTE_CNTL_VPORT_Y_OFFSET_ENA_SHIFT 3
+#define PA_CL_VTE_CNTL_VPORT_Z_SCALE_ENA_SHIFT 4
+#define PA_CL_VTE_CNTL_VPORT_Z_OFFSET_ENA_SHIFT 5
+#define PA_CL_VTE_CNTL_VTX_XY_FMT_SHIFT 8
+#define PA_CL_VTE_CNTL_VTX_Z_FMT_SHIFT 9
+#define PA_CL_VTE_CNTL_VTX_W0_FMT_SHIFT 10
+#define PA_CL_VTE_CNTL_PERFCOUNTER_REF_SHIFT 11
+
+#define PA_CL_VTE_CNTL_VPORT_X_SCALE_ENA_MASK 0x00000001
+#define PA_CL_VTE_CNTL_VPORT_X_OFFSET_ENA_MASK 0x00000002
+#define PA_CL_VTE_CNTL_VPORT_Y_SCALE_ENA_MASK 0x00000004
+#define PA_CL_VTE_CNTL_VPORT_Y_OFFSET_ENA_MASK 0x00000008
+#define PA_CL_VTE_CNTL_VPORT_Z_SCALE_ENA_MASK 0x00000010
+#define PA_CL_VTE_CNTL_VPORT_Z_OFFSET_ENA_MASK 0x00000020
+#define PA_CL_VTE_CNTL_VTX_XY_FMT_MASK 0x00000100
+#define PA_CL_VTE_CNTL_VTX_Z_FMT_MASK 0x00000200
+#define PA_CL_VTE_CNTL_VTX_W0_FMT_MASK 0x00000400
+#define PA_CL_VTE_CNTL_PERFCOUNTER_REF_MASK 0x00000800
+
+#define PA_CL_VTE_CNTL_MASK \
+ (PA_CL_VTE_CNTL_VPORT_X_SCALE_ENA_MASK | \
+ PA_CL_VTE_CNTL_VPORT_X_OFFSET_ENA_MASK | \
+ PA_CL_VTE_CNTL_VPORT_Y_SCALE_ENA_MASK | \
+ PA_CL_VTE_CNTL_VPORT_Y_OFFSET_ENA_MASK | \
+ PA_CL_VTE_CNTL_VPORT_Z_SCALE_ENA_MASK | \
+ PA_CL_VTE_CNTL_VPORT_Z_OFFSET_ENA_MASK | \
+ PA_CL_VTE_CNTL_VTX_XY_FMT_MASK | \
+ PA_CL_VTE_CNTL_VTX_Z_FMT_MASK | \
+ PA_CL_VTE_CNTL_VTX_W0_FMT_MASK | \
+ PA_CL_VTE_CNTL_PERFCOUNTER_REF_MASK)
+
+#define PA_CL_VTE_CNTL(vport_x_scale_ena, vport_x_offset_ena, vport_y_scale_ena, vport_y_offset_ena, vport_z_scale_ena, vport_z_offset_ena, vtx_xy_fmt, vtx_z_fmt, vtx_w0_fmt, perfcounter_ref) \
+ ((vport_x_scale_ena << PA_CL_VTE_CNTL_VPORT_X_SCALE_ENA_SHIFT) | \
+ (vport_x_offset_ena << PA_CL_VTE_CNTL_VPORT_X_OFFSET_ENA_SHIFT) | \
+ (vport_y_scale_ena << PA_CL_VTE_CNTL_VPORT_Y_SCALE_ENA_SHIFT) | \
+ (vport_y_offset_ena << PA_CL_VTE_CNTL_VPORT_Y_OFFSET_ENA_SHIFT) | \
+ (vport_z_scale_ena << PA_CL_VTE_CNTL_VPORT_Z_SCALE_ENA_SHIFT) | \
+ (vport_z_offset_ena << PA_CL_VTE_CNTL_VPORT_Z_OFFSET_ENA_SHIFT) | \
+ (vtx_xy_fmt << PA_CL_VTE_CNTL_VTX_XY_FMT_SHIFT) | \
+ (vtx_z_fmt << PA_CL_VTE_CNTL_VTX_Z_FMT_SHIFT) | \
+ (vtx_w0_fmt << PA_CL_VTE_CNTL_VTX_W0_FMT_SHIFT) | \
+ (perfcounter_ref << PA_CL_VTE_CNTL_PERFCOUNTER_REF_SHIFT))
+
+#define PA_CL_VTE_CNTL_GET_VPORT_X_SCALE_ENA(pa_cl_vte_cntl) \
+ ((pa_cl_vte_cntl & PA_CL_VTE_CNTL_VPORT_X_SCALE_ENA_MASK) >> PA_CL_VTE_CNTL_VPORT_X_SCALE_ENA_SHIFT)
+#define PA_CL_VTE_CNTL_GET_VPORT_X_OFFSET_ENA(pa_cl_vte_cntl) \
+ ((pa_cl_vte_cntl & PA_CL_VTE_CNTL_VPORT_X_OFFSET_ENA_MASK) >> PA_CL_VTE_CNTL_VPORT_X_OFFSET_ENA_SHIFT)
+#define PA_CL_VTE_CNTL_GET_VPORT_Y_SCALE_ENA(pa_cl_vte_cntl) \
+ ((pa_cl_vte_cntl & PA_CL_VTE_CNTL_VPORT_Y_SCALE_ENA_MASK) >> PA_CL_VTE_CNTL_VPORT_Y_SCALE_ENA_SHIFT)
+#define PA_CL_VTE_CNTL_GET_VPORT_Y_OFFSET_ENA(pa_cl_vte_cntl) \
+ ((pa_cl_vte_cntl & PA_CL_VTE_CNTL_VPORT_Y_OFFSET_ENA_MASK) >> PA_CL_VTE_CNTL_VPORT_Y_OFFSET_ENA_SHIFT)
+#define PA_CL_VTE_CNTL_GET_VPORT_Z_SCALE_ENA(pa_cl_vte_cntl) \
+ ((pa_cl_vte_cntl & PA_CL_VTE_CNTL_VPORT_Z_SCALE_ENA_MASK) >> PA_CL_VTE_CNTL_VPORT_Z_SCALE_ENA_SHIFT)
+#define PA_CL_VTE_CNTL_GET_VPORT_Z_OFFSET_ENA(pa_cl_vte_cntl) \
+ ((pa_cl_vte_cntl & PA_CL_VTE_CNTL_VPORT_Z_OFFSET_ENA_MASK) >> PA_CL_VTE_CNTL_VPORT_Z_OFFSET_ENA_SHIFT)
+#define PA_CL_VTE_CNTL_GET_VTX_XY_FMT(pa_cl_vte_cntl) \
+ ((pa_cl_vte_cntl & PA_CL_VTE_CNTL_VTX_XY_FMT_MASK) >> PA_CL_VTE_CNTL_VTX_XY_FMT_SHIFT)
+#define PA_CL_VTE_CNTL_GET_VTX_Z_FMT(pa_cl_vte_cntl) \
+ ((pa_cl_vte_cntl & PA_CL_VTE_CNTL_VTX_Z_FMT_MASK) >> PA_CL_VTE_CNTL_VTX_Z_FMT_SHIFT)
+#define PA_CL_VTE_CNTL_GET_VTX_W0_FMT(pa_cl_vte_cntl) \
+ ((pa_cl_vte_cntl & PA_CL_VTE_CNTL_VTX_W0_FMT_MASK) >> PA_CL_VTE_CNTL_VTX_W0_FMT_SHIFT)
+#define PA_CL_VTE_CNTL_GET_PERFCOUNTER_REF(pa_cl_vte_cntl) \
+ ((pa_cl_vte_cntl & PA_CL_VTE_CNTL_PERFCOUNTER_REF_MASK) >> PA_CL_VTE_CNTL_PERFCOUNTER_REF_SHIFT)
+
+#define PA_CL_VTE_CNTL_SET_VPORT_X_SCALE_ENA(pa_cl_vte_cntl_reg, vport_x_scale_ena) \
+ pa_cl_vte_cntl_reg = (pa_cl_vte_cntl_reg & ~PA_CL_VTE_CNTL_VPORT_X_SCALE_ENA_MASK) | (vport_x_scale_ena << PA_CL_VTE_CNTL_VPORT_X_SCALE_ENA_SHIFT)
+#define PA_CL_VTE_CNTL_SET_VPORT_X_OFFSET_ENA(pa_cl_vte_cntl_reg, vport_x_offset_ena) \
+ pa_cl_vte_cntl_reg = (pa_cl_vte_cntl_reg & ~PA_CL_VTE_CNTL_VPORT_X_OFFSET_ENA_MASK) | (vport_x_offset_ena << PA_CL_VTE_CNTL_VPORT_X_OFFSET_ENA_SHIFT)
+#define PA_CL_VTE_CNTL_SET_VPORT_Y_SCALE_ENA(pa_cl_vte_cntl_reg, vport_y_scale_ena) \
+ pa_cl_vte_cntl_reg = (pa_cl_vte_cntl_reg & ~PA_CL_VTE_CNTL_VPORT_Y_SCALE_ENA_MASK) | (vport_y_scale_ena << PA_CL_VTE_CNTL_VPORT_Y_SCALE_ENA_SHIFT)
+#define PA_CL_VTE_CNTL_SET_VPORT_Y_OFFSET_ENA(pa_cl_vte_cntl_reg, vport_y_offset_ena) \
+ pa_cl_vte_cntl_reg = (pa_cl_vte_cntl_reg & ~PA_CL_VTE_CNTL_VPORT_Y_OFFSET_ENA_MASK) | (vport_y_offset_ena << PA_CL_VTE_CNTL_VPORT_Y_OFFSET_ENA_SHIFT)
+#define PA_CL_VTE_CNTL_SET_VPORT_Z_SCALE_ENA(pa_cl_vte_cntl_reg, vport_z_scale_ena) \
+ pa_cl_vte_cntl_reg = (pa_cl_vte_cntl_reg & ~PA_CL_VTE_CNTL_VPORT_Z_SCALE_ENA_MASK) | (vport_z_scale_ena << PA_CL_VTE_CNTL_VPORT_Z_SCALE_ENA_SHIFT)
+#define PA_CL_VTE_CNTL_SET_VPORT_Z_OFFSET_ENA(pa_cl_vte_cntl_reg, vport_z_offset_ena) \
+ pa_cl_vte_cntl_reg = (pa_cl_vte_cntl_reg & ~PA_CL_VTE_CNTL_VPORT_Z_OFFSET_ENA_MASK) | (vport_z_offset_ena << PA_CL_VTE_CNTL_VPORT_Z_OFFSET_ENA_SHIFT)
+#define PA_CL_VTE_CNTL_SET_VTX_XY_FMT(pa_cl_vte_cntl_reg, vtx_xy_fmt) \
+ pa_cl_vte_cntl_reg = (pa_cl_vte_cntl_reg & ~PA_CL_VTE_CNTL_VTX_XY_FMT_MASK) | (vtx_xy_fmt << PA_CL_VTE_CNTL_VTX_XY_FMT_SHIFT)
+#define PA_CL_VTE_CNTL_SET_VTX_Z_FMT(pa_cl_vte_cntl_reg, vtx_z_fmt) \
+ pa_cl_vte_cntl_reg = (pa_cl_vte_cntl_reg & ~PA_CL_VTE_CNTL_VTX_Z_FMT_MASK) | (vtx_z_fmt << PA_CL_VTE_CNTL_VTX_Z_FMT_SHIFT)
+#define PA_CL_VTE_CNTL_SET_VTX_W0_FMT(pa_cl_vte_cntl_reg, vtx_w0_fmt) \
+ pa_cl_vte_cntl_reg = (pa_cl_vte_cntl_reg & ~PA_CL_VTE_CNTL_VTX_W0_FMT_MASK) | (vtx_w0_fmt << PA_CL_VTE_CNTL_VTX_W0_FMT_SHIFT)
+#define PA_CL_VTE_CNTL_SET_PERFCOUNTER_REF(pa_cl_vte_cntl_reg, perfcounter_ref) \
+ pa_cl_vte_cntl_reg = (pa_cl_vte_cntl_reg & ~PA_CL_VTE_CNTL_PERFCOUNTER_REF_MASK) | (perfcounter_ref << PA_CL_VTE_CNTL_PERFCOUNTER_REF_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_cl_vte_cntl_t {
+ unsigned int vport_x_scale_ena : PA_CL_VTE_CNTL_VPORT_X_SCALE_ENA_SIZE;
+ unsigned int vport_x_offset_ena : PA_CL_VTE_CNTL_VPORT_X_OFFSET_ENA_SIZE;
+ unsigned int vport_y_scale_ena : PA_CL_VTE_CNTL_VPORT_Y_SCALE_ENA_SIZE;
+ unsigned int vport_y_offset_ena : PA_CL_VTE_CNTL_VPORT_Y_OFFSET_ENA_SIZE;
+ unsigned int vport_z_scale_ena : PA_CL_VTE_CNTL_VPORT_Z_SCALE_ENA_SIZE;
+ unsigned int vport_z_offset_ena : PA_CL_VTE_CNTL_VPORT_Z_OFFSET_ENA_SIZE;
+ unsigned int : 2;
+ unsigned int vtx_xy_fmt : PA_CL_VTE_CNTL_VTX_XY_FMT_SIZE;
+ unsigned int vtx_z_fmt : PA_CL_VTE_CNTL_VTX_Z_FMT_SIZE;
+ unsigned int vtx_w0_fmt : PA_CL_VTE_CNTL_VTX_W0_FMT_SIZE;
+ unsigned int perfcounter_ref : PA_CL_VTE_CNTL_PERFCOUNTER_REF_SIZE;
+ unsigned int : 20;
+ } pa_cl_vte_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_cl_vte_cntl_t {
+ unsigned int : 20;
+ unsigned int perfcounter_ref : PA_CL_VTE_CNTL_PERFCOUNTER_REF_SIZE;
+ unsigned int vtx_w0_fmt : PA_CL_VTE_CNTL_VTX_W0_FMT_SIZE;
+ unsigned int vtx_z_fmt : PA_CL_VTE_CNTL_VTX_Z_FMT_SIZE;
+ unsigned int vtx_xy_fmt : PA_CL_VTE_CNTL_VTX_XY_FMT_SIZE;
+ unsigned int : 2;
+ unsigned int vport_z_offset_ena : PA_CL_VTE_CNTL_VPORT_Z_OFFSET_ENA_SIZE;
+ unsigned int vport_z_scale_ena : PA_CL_VTE_CNTL_VPORT_Z_SCALE_ENA_SIZE;
+ unsigned int vport_y_offset_ena : PA_CL_VTE_CNTL_VPORT_Y_OFFSET_ENA_SIZE;
+ unsigned int vport_y_scale_ena : PA_CL_VTE_CNTL_VPORT_Y_SCALE_ENA_SIZE;
+ unsigned int vport_x_offset_ena : PA_CL_VTE_CNTL_VPORT_X_OFFSET_ENA_SIZE;
+ unsigned int vport_x_scale_ena : PA_CL_VTE_CNTL_VPORT_X_SCALE_ENA_SIZE;
+ } pa_cl_vte_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_cl_vte_cntl_t f;
+} pa_cl_vte_cntl_u;
+
+
+/*
+ * PA_CL_CLIP_CNTL struct
+ */
+
+#define PA_CL_CLIP_CNTL_CLIP_DISABLE_SIZE 1
+#define PA_CL_CLIP_CNTL_BOUNDARY_EDGE_FLAG_ENA_SIZE 1
+#define PA_CL_CLIP_CNTL_DX_CLIP_SPACE_DEF_SIZE 1
+#define PA_CL_CLIP_CNTL_DIS_CLIP_ERR_DETECT_SIZE 1
+#define PA_CL_CLIP_CNTL_VTX_KILL_OR_SIZE 1
+#define PA_CL_CLIP_CNTL_XY_NAN_RETAIN_SIZE 1
+#define PA_CL_CLIP_CNTL_Z_NAN_RETAIN_SIZE 1
+#define PA_CL_CLIP_CNTL_W_NAN_RETAIN_SIZE 1
+
+#define PA_CL_CLIP_CNTL_CLIP_DISABLE_SHIFT 16
+#define PA_CL_CLIP_CNTL_BOUNDARY_EDGE_FLAG_ENA_SHIFT 18
+#define PA_CL_CLIP_CNTL_DX_CLIP_SPACE_DEF_SHIFT 19
+#define PA_CL_CLIP_CNTL_DIS_CLIP_ERR_DETECT_SHIFT 20
+#define PA_CL_CLIP_CNTL_VTX_KILL_OR_SHIFT 21
+#define PA_CL_CLIP_CNTL_XY_NAN_RETAIN_SHIFT 22
+#define PA_CL_CLIP_CNTL_Z_NAN_RETAIN_SHIFT 23
+#define PA_CL_CLIP_CNTL_W_NAN_RETAIN_SHIFT 24
+
+#define PA_CL_CLIP_CNTL_CLIP_DISABLE_MASK 0x00010000
+#define PA_CL_CLIP_CNTL_BOUNDARY_EDGE_FLAG_ENA_MASK 0x00040000
+#define PA_CL_CLIP_CNTL_DX_CLIP_SPACE_DEF_MASK 0x00080000
+#define PA_CL_CLIP_CNTL_DIS_CLIP_ERR_DETECT_MASK 0x00100000
+#define PA_CL_CLIP_CNTL_VTX_KILL_OR_MASK 0x00200000
+#define PA_CL_CLIP_CNTL_XY_NAN_RETAIN_MASK 0x00400000
+#define PA_CL_CLIP_CNTL_Z_NAN_RETAIN_MASK 0x00800000
+#define PA_CL_CLIP_CNTL_W_NAN_RETAIN_MASK 0x01000000
+
+#define PA_CL_CLIP_CNTL_MASK \
+ (PA_CL_CLIP_CNTL_CLIP_DISABLE_MASK | \
+ PA_CL_CLIP_CNTL_BOUNDARY_EDGE_FLAG_ENA_MASK | \
+ PA_CL_CLIP_CNTL_DX_CLIP_SPACE_DEF_MASK | \
+ PA_CL_CLIP_CNTL_DIS_CLIP_ERR_DETECT_MASK | \
+ PA_CL_CLIP_CNTL_VTX_KILL_OR_MASK | \
+ PA_CL_CLIP_CNTL_XY_NAN_RETAIN_MASK | \
+ PA_CL_CLIP_CNTL_Z_NAN_RETAIN_MASK | \
+ PA_CL_CLIP_CNTL_W_NAN_RETAIN_MASK)
+
+#define PA_CL_CLIP_CNTL(clip_disable, boundary_edge_flag_ena, dx_clip_space_def, dis_clip_err_detect, vtx_kill_or, xy_nan_retain, z_nan_retain, w_nan_retain) \
+ ((clip_disable << PA_CL_CLIP_CNTL_CLIP_DISABLE_SHIFT) | \
+ (boundary_edge_flag_ena << PA_CL_CLIP_CNTL_BOUNDARY_EDGE_FLAG_ENA_SHIFT) | \
+ (dx_clip_space_def << PA_CL_CLIP_CNTL_DX_CLIP_SPACE_DEF_SHIFT) | \
+ (dis_clip_err_detect << PA_CL_CLIP_CNTL_DIS_CLIP_ERR_DETECT_SHIFT) | \
+ (vtx_kill_or << PA_CL_CLIP_CNTL_VTX_KILL_OR_SHIFT) | \
+ (xy_nan_retain << PA_CL_CLIP_CNTL_XY_NAN_RETAIN_SHIFT) | \
+ (z_nan_retain << PA_CL_CLIP_CNTL_Z_NAN_RETAIN_SHIFT) | \
+ (w_nan_retain << PA_CL_CLIP_CNTL_W_NAN_RETAIN_SHIFT))
+
+#define PA_CL_CLIP_CNTL_GET_CLIP_DISABLE(pa_cl_clip_cntl) \
+ ((pa_cl_clip_cntl & PA_CL_CLIP_CNTL_CLIP_DISABLE_MASK) >> PA_CL_CLIP_CNTL_CLIP_DISABLE_SHIFT)
+#define PA_CL_CLIP_CNTL_GET_BOUNDARY_EDGE_FLAG_ENA(pa_cl_clip_cntl) \
+ ((pa_cl_clip_cntl & PA_CL_CLIP_CNTL_BOUNDARY_EDGE_FLAG_ENA_MASK) >> PA_CL_CLIP_CNTL_BOUNDARY_EDGE_FLAG_ENA_SHIFT)
+#define PA_CL_CLIP_CNTL_GET_DX_CLIP_SPACE_DEF(pa_cl_clip_cntl) \
+ ((pa_cl_clip_cntl & PA_CL_CLIP_CNTL_DX_CLIP_SPACE_DEF_MASK) >> PA_CL_CLIP_CNTL_DX_CLIP_SPACE_DEF_SHIFT)
+#define PA_CL_CLIP_CNTL_GET_DIS_CLIP_ERR_DETECT(pa_cl_clip_cntl) \
+ ((pa_cl_clip_cntl & PA_CL_CLIP_CNTL_DIS_CLIP_ERR_DETECT_MASK) >> PA_CL_CLIP_CNTL_DIS_CLIP_ERR_DETECT_SHIFT)
+#define PA_CL_CLIP_CNTL_GET_VTX_KILL_OR(pa_cl_clip_cntl) \
+ ((pa_cl_clip_cntl & PA_CL_CLIP_CNTL_VTX_KILL_OR_MASK) >> PA_CL_CLIP_CNTL_VTX_KILL_OR_SHIFT)
+#define PA_CL_CLIP_CNTL_GET_XY_NAN_RETAIN(pa_cl_clip_cntl) \
+ ((pa_cl_clip_cntl & PA_CL_CLIP_CNTL_XY_NAN_RETAIN_MASK) >> PA_CL_CLIP_CNTL_XY_NAN_RETAIN_SHIFT)
+#define PA_CL_CLIP_CNTL_GET_Z_NAN_RETAIN(pa_cl_clip_cntl) \
+ ((pa_cl_clip_cntl & PA_CL_CLIP_CNTL_Z_NAN_RETAIN_MASK) >> PA_CL_CLIP_CNTL_Z_NAN_RETAIN_SHIFT)
+#define PA_CL_CLIP_CNTL_GET_W_NAN_RETAIN(pa_cl_clip_cntl) \
+ ((pa_cl_clip_cntl & PA_CL_CLIP_CNTL_W_NAN_RETAIN_MASK) >> PA_CL_CLIP_CNTL_W_NAN_RETAIN_SHIFT)
+
+#define PA_CL_CLIP_CNTL_SET_CLIP_DISABLE(pa_cl_clip_cntl_reg, clip_disable) \
+ pa_cl_clip_cntl_reg = (pa_cl_clip_cntl_reg & ~PA_CL_CLIP_CNTL_CLIP_DISABLE_MASK) | (clip_disable << PA_CL_CLIP_CNTL_CLIP_DISABLE_SHIFT)
+#define PA_CL_CLIP_CNTL_SET_BOUNDARY_EDGE_FLAG_ENA(pa_cl_clip_cntl_reg, boundary_edge_flag_ena) \
+ pa_cl_clip_cntl_reg = (pa_cl_clip_cntl_reg & ~PA_CL_CLIP_CNTL_BOUNDARY_EDGE_FLAG_ENA_MASK) | (boundary_edge_flag_ena << PA_CL_CLIP_CNTL_BOUNDARY_EDGE_FLAG_ENA_SHIFT)
+#define PA_CL_CLIP_CNTL_SET_DX_CLIP_SPACE_DEF(pa_cl_clip_cntl_reg, dx_clip_space_def) \
+ pa_cl_clip_cntl_reg = (pa_cl_clip_cntl_reg & ~PA_CL_CLIP_CNTL_DX_CLIP_SPACE_DEF_MASK) | (dx_clip_space_def << PA_CL_CLIP_CNTL_DX_CLIP_SPACE_DEF_SHIFT)
+#define PA_CL_CLIP_CNTL_SET_DIS_CLIP_ERR_DETECT(pa_cl_clip_cntl_reg, dis_clip_err_detect) \
+ pa_cl_clip_cntl_reg = (pa_cl_clip_cntl_reg & ~PA_CL_CLIP_CNTL_DIS_CLIP_ERR_DETECT_MASK) | (dis_clip_err_detect << PA_CL_CLIP_CNTL_DIS_CLIP_ERR_DETECT_SHIFT)
+#define PA_CL_CLIP_CNTL_SET_VTX_KILL_OR(pa_cl_clip_cntl_reg, vtx_kill_or) \
+ pa_cl_clip_cntl_reg = (pa_cl_clip_cntl_reg & ~PA_CL_CLIP_CNTL_VTX_KILL_OR_MASK) | (vtx_kill_or << PA_CL_CLIP_CNTL_VTX_KILL_OR_SHIFT)
+#define PA_CL_CLIP_CNTL_SET_XY_NAN_RETAIN(pa_cl_clip_cntl_reg, xy_nan_retain) \
+ pa_cl_clip_cntl_reg = (pa_cl_clip_cntl_reg & ~PA_CL_CLIP_CNTL_XY_NAN_RETAIN_MASK) | (xy_nan_retain << PA_CL_CLIP_CNTL_XY_NAN_RETAIN_SHIFT)
+#define PA_CL_CLIP_CNTL_SET_Z_NAN_RETAIN(pa_cl_clip_cntl_reg, z_nan_retain) \
+ pa_cl_clip_cntl_reg = (pa_cl_clip_cntl_reg & ~PA_CL_CLIP_CNTL_Z_NAN_RETAIN_MASK) | (z_nan_retain << PA_CL_CLIP_CNTL_Z_NAN_RETAIN_SHIFT)
+#define PA_CL_CLIP_CNTL_SET_W_NAN_RETAIN(pa_cl_clip_cntl_reg, w_nan_retain) \
+ pa_cl_clip_cntl_reg = (pa_cl_clip_cntl_reg & ~PA_CL_CLIP_CNTL_W_NAN_RETAIN_MASK) | (w_nan_retain << PA_CL_CLIP_CNTL_W_NAN_RETAIN_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_cl_clip_cntl_t {
+ unsigned int : 16;
+ unsigned int clip_disable : PA_CL_CLIP_CNTL_CLIP_DISABLE_SIZE;
+ unsigned int : 1;
+ unsigned int boundary_edge_flag_ena : PA_CL_CLIP_CNTL_BOUNDARY_EDGE_FLAG_ENA_SIZE;
+ unsigned int dx_clip_space_def : PA_CL_CLIP_CNTL_DX_CLIP_SPACE_DEF_SIZE;
+ unsigned int dis_clip_err_detect : PA_CL_CLIP_CNTL_DIS_CLIP_ERR_DETECT_SIZE;
+ unsigned int vtx_kill_or : PA_CL_CLIP_CNTL_VTX_KILL_OR_SIZE;
+ unsigned int xy_nan_retain : PA_CL_CLIP_CNTL_XY_NAN_RETAIN_SIZE;
+ unsigned int z_nan_retain : PA_CL_CLIP_CNTL_Z_NAN_RETAIN_SIZE;
+ unsigned int w_nan_retain : PA_CL_CLIP_CNTL_W_NAN_RETAIN_SIZE;
+ unsigned int : 7;
+ } pa_cl_clip_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_cl_clip_cntl_t {
+ unsigned int : 7;
+ unsigned int w_nan_retain : PA_CL_CLIP_CNTL_W_NAN_RETAIN_SIZE;
+ unsigned int z_nan_retain : PA_CL_CLIP_CNTL_Z_NAN_RETAIN_SIZE;
+ unsigned int xy_nan_retain : PA_CL_CLIP_CNTL_XY_NAN_RETAIN_SIZE;
+ unsigned int vtx_kill_or : PA_CL_CLIP_CNTL_VTX_KILL_OR_SIZE;
+ unsigned int dis_clip_err_detect : PA_CL_CLIP_CNTL_DIS_CLIP_ERR_DETECT_SIZE;
+ unsigned int dx_clip_space_def : PA_CL_CLIP_CNTL_DX_CLIP_SPACE_DEF_SIZE;
+ unsigned int boundary_edge_flag_ena : PA_CL_CLIP_CNTL_BOUNDARY_EDGE_FLAG_ENA_SIZE;
+ unsigned int : 1;
+ unsigned int clip_disable : PA_CL_CLIP_CNTL_CLIP_DISABLE_SIZE;
+ unsigned int : 16;
+ } pa_cl_clip_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_cl_clip_cntl_t f;
+} pa_cl_clip_cntl_u;
+
+
+/*
+ * PA_CL_GB_VERT_CLIP_ADJ struct
+ */
+
+#define PA_CL_GB_VERT_CLIP_ADJ_DATA_REGISTER_SIZE 32
+
+#define PA_CL_GB_VERT_CLIP_ADJ_DATA_REGISTER_SHIFT 0
+
+#define PA_CL_GB_VERT_CLIP_ADJ_DATA_REGISTER_MASK 0xffffffff
+
+#define PA_CL_GB_VERT_CLIP_ADJ_MASK \
+ (PA_CL_GB_VERT_CLIP_ADJ_DATA_REGISTER_MASK)
+
+#define PA_CL_GB_VERT_CLIP_ADJ(data_register) \
+ ((data_register << PA_CL_GB_VERT_CLIP_ADJ_DATA_REGISTER_SHIFT))
+
+#define PA_CL_GB_VERT_CLIP_ADJ_GET_DATA_REGISTER(pa_cl_gb_vert_clip_adj) \
+ ((pa_cl_gb_vert_clip_adj & PA_CL_GB_VERT_CLIP_ADJ_DATA_REGISTER_MASK) >> PA_CL_GB_VERT_CLIP_ADJ_DATA_REGISTER_SHIFT)
+
+#define PA_CL_GB_VERT_CLIP_ADJ_SET_DATA_REGISTER(pa_cl_gb_vert_clip_adj_reg, data_register) \
+ pa_cl_gb_vert_clip_adj_reg = (pa_cl_gb_vert_clip_adj_reg & ~PA_CL_GB_VERT_CLIP_ADJ_DATA_REGISTER_MASK) | (data_register << PA_CL_GB_VERT_CLIP_ADJ_DATA_REGISTER_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_cl_gb_vert_clip_adj_t {
+ unsigned int data_register : PA_CL_GB_VERT_CLIP_ADJ_DATA_REGISTER_SIZE;
+ } pa_cl_gb_vert_clip_adj_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_cl_gb_vert_clip_adj_t {
+ unsigned int data_register : PA_CL_GB_VERT_CLIP_ADJ_DATA_REGISTER_SIZE;
+ } pa_cl_gb_vert_clip_adj_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_cl_gb_vert_clip_adj_t f;
+} pa_cl_gb_vert_clip_adj_u;
+
+
+/*
+ * PA_CL_GB_VERT_DISC_ADJ struct
+ */
+
+#define PA_CL_GB_VERT_DISC_ADJ_DATA_REGISTER_SIZE 32
+
+#define PA_CL_GB_VERT_DISC_ADJ_DATA_REGISTER_SHIFT 0
+
+#define PA_CL_GB_VERT_DISC_ADJ_DATA_REGISTER_MASK 0xffffffff
+
+#define PA_CL_GB_VERT_DISC_ADJ_MASK \
+ (PA_CL_GB_VERT_DISC_ADJ_DATA_REGISTER_MASK)
+
+#define PA_CL_GB_VERT_DISC_ADJ(data_register) \
+ ((data_register << PA_CL_GB_VERT_DISC_ADJ_DATA_REGISTER_SHIFT))
+
+#define PA_CL_GB_VERT_DISC_ADJ_GET_DATA_REGISTER(pa_cl_gb_vert_disc_adj) \
+ ((pa_cl_gb_vert_disc_adj & PA_CL_GB_VERT_DISC_ADJ_DATA_REGISTER_MASK) >> PA_CL_GB_VERT_DISC_ADJ_DATA_REGISTER_SHIFT)
+
+#define PA_CL_GB_VERT_DISC_ADJ_SET_DATA_REGISTER(pa_cl_gb_vert_disc_adj_reg, data_register) \
+ pa_cl_gb_vert_disc_adj_reg = (pa_cl_gb_vert_disc_adj_reg & ~PA_CL_GB_VERT_DISC_ADJ_DATA_REGISTER_MASK) | (data_register << PA_CL_GB_VERT_DISC_ADJ_DATA_REGISTER_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_cl_gb_vert_disc_adj_t {
+ unsigned int data_register : PA_CL_GB_VERT_DISC_ADJ_DATA_REGISTER_SIZE;
+ } pa_cl_gb_vert_disc_adj_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_cl_gb_vert_disc_adj_t {
+ unsigned int data_register : PA_CL_GB_VERT_DISC_ADJ_DATA_REGISTER_SIZE;
+ } pa_cl_gb_vert_disc_adj_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_cl_gb_vert_disc_adj_t f;
+} pa_cl_gb_vert_disc_adj_u;
+
+
+/*
+ * PA_CL_GB_HORZ_CLIP_ADJ struct
+ */
+
+#define PA_CL_GB_HORZ_CLIP_ADJ_DATA_REGISTER_SIZE 32
+
+#define PA_CL_GB_HORZ_CLIP_ADJ_DATA_REGISTER_SHIFT 0
+
+#define PA_CL_GB_HORZ_CLIP_ADJ_DATA_REGISTER_MASK 0xffffffff
+
+#define PA_CL_GB_HORZ_CLIP_ADJ_MASK \
+ (PA_CL_GB_HORZ_CLIP_ADJ_DATA_REGISTER_MASK)
+
+#define PA_CL_GB_HORZ_CLIP_ADJ(data_register) \
+ ((data_register << PA_CL_GB_HORZ_CLIP_ADJ_DATA_REGISTER_SHIFT))
+
+#define PA_CL_GB_HORZ_CLIP_ADJ_GET_DATA_REGISTER(pa_cl_gb_horz_clip_adj) \
+ ((pa_cl_gb_horz_clip_adj & PA_CL_GB_HORZ_CLIP_ADJ_DATA_REGISTER_MASK) >> PA_CL_GB_HORZ_CLIP_ADJ_DATA_REGISTER_SHIFT)
+
+#define PA_CL_GB_HORZ_CLIP_ADJ_SET_DATA_REGISTER(pa_cl_gb_horz_clip_adj_reg, data_register) \
+ pa_cl_gb_horz_clip_adj_reg = (pa_cl_gb_horz_clip_adj_reg & ~PA_CL_GB_HORZ_CLIP_ADJ_DATA_REGISTER_MASK) | (data_register << PA_CL_GB_HORZ_CLIP_ADJ_DATA_REGISTER_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_cl_gb_horz_clip_adj_t {
+ unsigned int data_register : PA_CL_GB_HORZ_CLIP_ADJ_DATA_REGISTER_SIZE;
+ } pa_cl_gb_horz_clip_adj_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_cl_gb_horz_clip_adj_t {
+ unsigned int data_register : PA_CL_GB_HORZ_CLIP_ADJ_DATA_REGISTER_SIZE;
+ } pa_cl_gb_horz_clip_adj_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_cl_gb_horz_clip_adj_t f;
+} pa_cl_gb_horz_clip_adj_u;
+
+
+/*
+ * PA_CL_GB_HORZ_DISC_ADJ struct
+ */
+
+#define PA_CL_GB_HORZ_DISC_ADJ_DATA_REGISTER_SIZE 32
+
+#define PA_CL_GB_HORZ_DISC_ADJ_DATA_REGISTER_SHIFT 0
+
+#define PA_CL_GB_HORZ_DISC_ADJ_DATA_REGISTER_MASK 0xffffffff
+
+#define PA_CL_GB_HORZ_DISC_ADJ_MASK \
+ (PA_CL_GB_HORZ_DISC_ADJ_DATA_REGISTER_MASK)
+
+#define PA_CL_GB_HORZ_DISC_ADJ(data_register) \
+ ((data_register << PA_CL_GB_HORZ_DISC_ADJ_DATA_REGISTER_SHIFT))
+
+#define PA_CL_GB_HORZ_DISC_ADJ_GET_DATA_REGISTER(pa_cl_gb_horz_disc_adj) \
+ ((pa_cl_gb_horz_disc_adj & PA_CL_GB_HORZ_DISC_ADJ_DATA_REGISTER_MASK) >> PA_CL_GB_HORZ_DISC_ADJ_DATA_REGISTER_SHIFT)
+
+#define PA_CL_GB_HORZ_DISC_ADJ_SET_DATA_REGISTER(pa_cl_gb_horz_disc_adj_reg, data_register) \
+ pa_cl_gb_horz_disc_adj_reg = (pa_cl_gb_horz_disc_adj_reg & ~PA_CL_GB_HORZ_DISC_ADJ_DATA_REGISTER_MASK) | (data_register << PA_CL_GB_HORZ_DISC_ADJ_DATA_REGISTER_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_cl_gb_horz_disc_adj_t {
+ unsigned int data_register : PA_CL_GB_HORZ_DISC_ADJ_DATA_REGISTER_SIZE;
+ } pa_cl_gb_horz_disc_adj_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_cl_gb_horz_disc_adj_t {
+ unsigned int data_register : PA_CL_GB_HORZ_DISC_ADJ_DATA_REGISTER_SIZE;
+ } pa_cl_gb_horz_disc_adj_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_cl_gb_horz_disc_adj_t f;
+} pa_cl_gb_horz_disc_adj_u;
+
+
+/*
+ * PA_CL_ENHANCE struct
+ */
+
+#define PA_CL_ENHANCE_CLIP_VTX_REORDER_ENA_SIZE 1
+#define PA_CL_ENHANCE_ECO_SPARE3_SIZE 1
+#define PA_CL_ENHANCE_ECO_SPARE2_SIZE 1
+#define PA_CL_ENHANCE_ECO_SPARE1_SIZE 1
+#define PA_CL_ENHANCE_ECO_SPARE0_SIZE 1
+
+#define PA_CL_ENHANCE_CLIP_VTX_REORDER_ENA_SHIFT 0
+#define PA_CL_ENHANCE_ECO_SPARE3_SHIFT 28
+#define PA_CL_ENHANCE_ECO_SPARE2_SHIFT 29
+#define PA_CL_ENHANCE_ECO_SPARE1_SHIFT 30
+#define PA_CL_ENHANCE_ECO_SPARE0_SHIFT 31
+
+#define PA_CL_ENHANCE_CLIP_VTX_REORDER_ENA_MASK 0x00000001
+#define PA_CL_ENHANCE_ECO_SPARE3_MASK 0x10000000
+#define PA_CL_ENHANCE_ECO_SPARE2_MASK 0x20000000
+#define PA_CL_ENHANCE_ECO_SPARE1_MASK 0x40000000
+#define PA_CL_ENHANCE_ECO_SPARE0_MASK 0x80000000
+
+#define PA_CL_ENHANCE_MASK \
+ (PA_CL_ENHANCE_CLIP_VTX_REORDER_ENA_MASK | \
+ PA_CL_ENHANCE_ECO_SPARE3_MASK | \
+ PA_CL_ENHANCE_ECO_SPARE2_MASK | \
+ PA_CL_ENHANCE_ECO_SPARE1_MASK | \
+ PA_CL_ENHANCE_ECO_SPARE0_MASK)
+
+#define PA_CL_ENHANCE(clip_vtx_reorder_ena, eco_spare3, eco_spare2, eco_spare1, eco_spare0) \
+ ((clip_vtx_reorder_ena << PA_CL_ENHANCE_CLIP_VTX_REORDER_ENA_SHIFT) | \
+ (eco_spare3 << PA_CL_ENHANCE_ECO_SPARE3_SHIFT) | \
+ (eco_spare2 << PA_CL_ENHANCE_ECO_SPARE2_SHIFT) | \
+ (eco_spare1 << PA_CL_ENHANCE_ECO_SPARE1_SHIFT) | \
+ (eco_spare0 << PA_CL_ENHANCE_ECO_SPARE0_SHIFT))
+
+#define PA_CL_ENHANCE_GET_CLIP_VTX_REORDER_ENA(pa_cl_enhance) \
+ ((pa_cl_enhance & PA_CL_ENHANCE_CLIP_VTX_REORDER_ENA_MASK) >> PA_CL_ENHANCE_CLIP_VTX_REORDER_ENA_SHIFT)
+#define PA_CL_ENHANCE_GET_ECO_SPARE3(pa_cl_enhance) \
+ ((pa_cl_enhance & PA_CL_ENHANCE_ECO_SPARE3_MASK) >> PA_CL_ENHANCE_ECO_SPARE3_SHIFT)
+#define PA_CL_ENHANCE_GET_ECO_SPARE2(pa_cl_enhance) \
+ ((pa_cl_enhance & PA_CL_ENHANCE_ECO_SPARE2_MASK) >> PA_CL_ENHANCE_ECO_SPARE2_SHIFT)
+#define PA_CL_ENHANCE_GET_ECO_SPARE1(pa_cl_enhance) \
+ ((pa_cl_enhance & PA_CL_ENHANCE_ECO_SPARE1_MASK) >> PA_CL_ENHANCE_ECO_SPARE1_SHIFT)
+#define PA_CL_ENHANCE_GET_ECO_SPARE0(pa_cl_enhance) \
+ ((pa_cl_enhance & PA_CL_ENHANCE_ECO_SPARE0_MASK) >> PA_CL_ENHANCE_ECO_SPARE0_SHIFT)
+
+#define PA_CL_ENHANCE_SET_CLIP_VTX_REORDER_ENA(pa_cl_enhance_reg, clip_vtx_reorder_ena) \
+ pa_cl_enhance_reg = (pa_cl_enhance_reg & ~PA_CL_ENHANCE_CLIP_VTX_REORDER_ENA_MASK) | (clip_vtx_reorder_ena << PA_CL_ENHANCE_CLIP_VTX_REORDER_ENA_SHIFT)
+#define PA_CL_ENHANCE_SET_ECO_SPARE3(pa_cl_enhance_reg, eco_spare3) \
+ pa_cl_enhance_reg = (pa_cl_enhance_reg & ~PA_CL_ENHANCE_ECO_SPARE3_MASK) | (eco_spare3 << PA_CL_ENHANCE_ECO_SPARE3_SHIFT)
+#define PA_CL_ENHANCE_SET_ECO_SPARE2(pa_cl_enhance_reg, eco_spare2) \
+ pa_cl_enhance_reg = (pa_cl_enhance_reg & ~PA_CL_ENHANCE_ECO_SPARE2_MASK) | (eco_spare2 << PA_CL_ENHANCE_ECO_SPARE2_SHIFT)
+#define PA_CL_ENHANCE_SET_ECO_SPARE1(pa_cl_enhance_reg, eco_spare1) \
+ pa_cl_enhance_reg = (pa_cl_enhance_reg & ~PA_CL_ENHANCE_ECO_SPARE1_MASK) | (eco_spare1 << PA_CL_ENHANCE_ECO_SPARE1_SHIFT)
+#define PA_CL_ENHANCE_SET_ECO_SPARE0(pa_cl_enhance_reg, eco_spare0) \
+ pa_cl_enhance_reg = (pa_cl_enhance_reg & ~PA_CL_ENHANCE_ECO_SPARE0_MASK) | (eco_spare0 << PA_CL_ENHANCE_ECO_SPARE0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_cl_enhance_t {
+ unsigned int clip_vtx_reorder_ena : PA_CL_ENHANCE_CLIP_VTX_REORDER_ENA_SIZE;
+ unsigned int : 27;
+ unsigned int eco_spare3 : PA_CL_ENHANCE_ECO_SPARE3_SIZE;
+ unsigned int eco_spare2 : PA_CL_ENHANCE_ECO_SPARE2_SIZE;
+ unsigned int eco_spare1 : PA_CL_ENHANCE_ECO_SPARE1_SIZE;
+ unsigned int eco_spare0 : PA_CL_ENHANCE_ECO_SPARE0_SIZE;
+ } pa_cl_enhance_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_cl_enhance_t {
+ unsigned int eco_spare0 : PA_CL_ENHANCE_ECO_SPARE0_SIZE;
+ unsigned int eco_spare1 : PA_CL_ENHANCE_ECO_SPARE1_SIZE;
+ unsigned int eco_spare2 : PA_CL_ENHANCE_ECO_SPARE2_SIZE;
+ unsigned int eco_spare3 : PA_CL_ENHANCE_ECO_SPARE3_SIZE;
+ unsigned int : 27;
+ unsigned int clip_vtx_reorder_ena : PA_CL_ENHANCE_CLIP_VTX_REORDER_ENA_SIZE;
+ } pa_cl_enhance_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_cl_enhance_t f;
+} pa_cl_enhance_u;
+
+
+/*
+ * PA_SC_ENHANCE struct
+ */
+
+#define PA_SC_ENHANCE_ECO_SPARE3_SIZE 1
+#define PA_SC_ENHANCE_ECO_SPARE2_SIZE 1
+#define PA_SC_ENHANCE_ECO_SPARE1_SIZE 1
+#define PA_SC_ENHANCE_ECO_SPARE0_SIZE 1
+
+#define PA_SC_ENHANCE_ECO_SPARE3_SHIFT 28
+#define PA_SC_ENHANCE_ECO_SPARE2_SHIFT 29
+#define PA_SC_ENHANCE_ECO_SPARE1_SHIFT 30
+#define PA_SC_ENHANCE_ECO_SPARE0_SHIFT 31
+
+#define PA_SC_ENHANCE_ECO_SPARE3_MASK 0x10000000
+#define PA_SC_ENHANCE_ECO_SPARE2_MASK 0x20000000
+#define PA_SC_ENHANCE_ECO_SPARE1_MASK 0x40000000
+#define PA_SC_ENHANCE_ECO_SPARE0_MASK 0x80000000
+
+#define PA_SC_ENHANCE_MASK \
+ (PA_SC_ENHANCE_ECO_SPARE3_MASK | \
+ PA_SC_ENHANCE_ECO_SPARE2_MASK | \
+ PA_SC_ENHANCE_ECO_SPARE1_MASK | \
+ PA_SC_ENHANCE_ECO_SPARE0_MASK)
+
+#define PA_SC_ENHANCE(eco_spare3, eco_spare2, eco_spare1, eco_spare0) \
+ ((eco_spare3 << PA_SC_ENHANCE_ECO_SPARE3_SHIFT) | \
+ (eco_spare2 << PA_SC_ENHANCE_ECO_SPARE2_SHIFT) | \
+ (eco_spare1 << PA_SC_ENHANCE_ECO_SPARE1_SHIFT) | \
+ (eco_spare0 << PA_SC_ENHANCE_ECO_SPARE0_SHIFT))
+
+#define PA_SC_ENHANCE_GET_ECO_SPARE3(pa_sc_enhance) \
+ ((pa_sc_enhance & PA_SC_ENHANCE_ECO_SPARE3_MASK) >> PA_SC_ENHANCE_ECO_SPARE3_SHIFT)
+#define PA_SC_ENHANCE_GET_ECO_SPARE2(pa_sc_enhance) \
+ ((pa_sc_enhance & PA_SC_ENHANCE_ECO_SPARE2_MASK) >> PA_SC_ENHANCE_ECO_SPARE2_SHIFT)
+#define PA_SC_ENHANCE_GET_ECO_SPARE1(pa_sc_enhance) \
+ ((pa_sc_enhance & PA_SC_ENHANCE_ECO_SPARE1_MASK) >> PA_SC_ENHANCE_ECO_SPARE1_SHIFT)
+#define PA_SC_ENHANCE_GET_ECO_SPARE0(pa_sc_enhance) \
+ ((pa_sc_enhance & PA_SC_ENHANCE_ECO_SPARE0_MASK) >> PA_SC_ENHANCE_ECO_SPARE0_SHIFT)
+
+#define PA_SC_ENHANCE_SET_ECO_SPARE3(pa_sc_enhance_reg, eco_spare3) \
+ pa_sc_enhance_reg = (pa_sc_enhance_reg & ~PA_SC_ENHANCE_ECO_SPARE3_MASK) | (eco_spare3 << PA_SC_ENHANCE_ECO_SPARE3_SHIFT)
+#define PA_SC_ENHANCE_SET_ECO_SPARE2(pa_sc_enhance_reg, eco_spare2) \
+ pa_sc_enhance_reg = (pa_sc_enhance_reg & ~PA_SC_ENHANCE_ECO_SPARE2_MASK) | (eco_spare2 << PA_SC_ENHANCE_ECO_SPARE2_SHIFT)
+#define PA_SC_ENHANCE_SET_ECO_SPARE1(pa_sc_enhance_reg, eco_spare1) \
+ pa_sc_enhance_reg = (pa_sc_enhance_reg & ~PA_SC_ENHANCE_ECO_SPARE1_MASK) | (eco_spare1 << PA_SC_ENHANCE_ECO_SPARE1_SHIFT)
+#define PA_SC_ENHANCE_SET_ECO_SPARE0(pa_sc_enhance_reg, eco_spare0) \
+ pa_sc_enhance_reg = (pa_sc_enhance_reg & ~PA_SC_ENHANCE_ECO_SPARE0_MASK) | (eco_spare0 << PA_SC_ENHANCE_ECO_SPARE0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_enhance_t {
+ unsigned int : 28;
+ unsigned int eco_spare3 : PA_SC_ENHANCE_ECO_SPARE3_SIZE;
+ unsigned int eco_spare2 : PA_SC_ENHANCE_ECO_SPARE2_SIZE;
+ unsigned int eco_spare1 : PA_SC_ENHANCE_ECO_SPARE1_SIZE;
+ unsigned int eco_spare0 : PA_SC_ENHANCE_ECO_SPARE0_SIZE;
+ } pa_sc_enhance_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_enhance_t {
+ unsigned int eco_spare0 : PA_SC_ENHANCE_ECO_SPARE0_SIZE;
+ unsigned int eco_spare1 : PA_SC_ENHANCE_ECO_SPARE1_SIZE;
+ unsigned int eco_spare2 : PA_SC_ENHANCE_ECO_SPARE2_SIZE;
+ unsigned int eco_spare3 : PA_SC_ENHANCE_ECO_SPARE3_SIZE;
+ unsigned int : 28;
+ } pa_sc_enhance_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_enhance_t f;
+} pa_sc_enhance_u;
+
+
+/*
+ * PA_SU_VTX_CNTL struct
+ */
+
+#define PA_SU_VTX_CNTL_PIX_CENTER_SIZE 1
+#define PA_SU_VTX_CNTL_ROUND_MODE_SIZE 2
+#define PA_SU_VTX_CNTL_QUANT_MODE_SIZE 3
+
+#define PA_SU_VTX_CNTL_PIX_CENTER_SHIFT 0
+#define PA_SU_VTX_CNTL_ROUND_MODE_SHIFT 1
+#define PA_SU_VTX_CNTL_QUANT_MODE_SHIFT 3
+
+#define PA_SU_VTX_CNTL_PIX_CENTER_MASK 0x00000001
+#define PA_SU_VTX_CNTL_ROUND_MODE_MASK 0x00000006
+#define PA_SU_VTX_CNTL_QUANT_MODE_MASK 0x00000038
+
+#define PA_SU_VTX_CNTL_MASK \
+ (PA_SU_VTX_CNTL_PIX_CENTER_MASK | \
+ PA_SU_VTX_CNTL_ROUND_MODE_MASK | \
+ PA_SU_VTX_CNTL_QUANT_MODE_MASK)
+
+#define PA_SU_VTX_CNTL(pix_center, round_mode, quant_mode) \
+ ((pix_center << PA_SU_VTX_CNTL_PIX_CENTER_SHIFT) | \
+ (round_mode << PA_SU_VTX_CNTL_ROUND_MODE_SHIFT) | \
+ (quant_mode << PA_SU_VTX_CNTL_QUANT_MODE_SHIFT))
+
+#define PA_SU_VTX_CNTL_GET_PIX_CENTER(pa_su_vtx_cntl) \
+ ((pa_su_vtx_cntl & PA_SU_VTX_CNTL_PIX_CENTER_MASK) >> PA_SU_VTX_CNTL_PIX_CENTER_SHIFT)
+#define PA_SU_VTX_CNTL_GET_ROUND_MODE(pa_su_vtx_cntl) \
+ ((pa_su_vtx_cntl & PA_SU_VTX_CNTL_ROUND_MODE_MASK) >> PA_SU_VTX_CNTL_ROUND_MODE_SHIFT)
+#define PA_SU_VTX_CNTL_GET_QUANT_MODE(pa_su_vtx_cntl) \
+ ((pa_su_vtx_cntl & PA_SU_VTX_CNTL_QUANT_MODE_MASK) >> PA_SU_VTX_CNTL_QUANT_MODE_SHIFT)
+
+#define PA_SU_VTX_CNTL_SET_PIX_CENTER(pa_su_vtx_cntl_reg, pix_center) \
+ pa_su_vtx_cntl_reg = (pa_su_vtx_cntl_reg & ~PA_SU_VTX_CNTL_PIX_CENTER_MASK) | (pix_center << PA_SU_VTX_CNTL_PIX_CENTER_SHIFT)
+#define PA_SU_VTX_CNTL_SET_ROUND_MODE(pa_su_vtx_cntl_reg, round_mode) \
+ pa_su_vtx_cntl_reg = (pa_su_vtx_cntl_reg & ~PA_SU_VTX_CNTL_ROUND_MODE_MASK) | (round_mode << PA_SU_VTX_CNTL_ROUND_MODE_SHIFT)
+#define PA_SU_VTX_CNTL_SET_QUANT_MODE(pa_su_vtx_cntl_reg, quant_mode) \
+ pa_su_vtx_cntl_reg = (pa_su_vtx_cntl_reg & ~PA_SU_VTX_CNTL_QUANT_MODE_MASK) | (quant_mode << PA_SU_VTX_CNTL_QUANT_MODE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_vtx_cntl_t {
+ unsigned int pix_center : PA_SU_VTX_CNTL_PIX_CENTER_SIZE;
+ unsigned int round_mode : PA_SU_VTX_CNTL_ROUND_MODE_SIZE;
+ unsigned int quant_mode : PA_SU_VTX_CNTL_QUANT_MODE_SIZE;
+ unsigned int : 26;
+ } pa_su_vtx_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_vtx_cntl_t {
+ unsigned int : 26;
+ unsigned int quant_mode : PA_SU_VTX_CNTL_QUANT_MODE_SIZE;
+ unsigned int round_mode : PA_SU_VTX_CNTL_ROUND_MODE_SIZE;
+ unsigned int pix_center : PA_SU_VTX_CNTL_PIX_CENTER_SIZE;
+ } pa_su_vtx_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_vtx_cntl_t f;
+} pa_su_vtx_cntl_u;
+
+
+/*
+ * PA_SU_POINT_SIZE struct
+ */
+
+#define PA_SU_POINT_SIZE_HEIGHT_SIZE 16
+#define PA_SU_POINT_SIZE_WIDTH_SIZE 16
+
+#define PA_SU_POINT_SIZE_HEIGHT_SHIFT 0
+#define PA_SU_POINT_SIZE_WIDTH_SHIFT 16
+
+#define PA_SU_POINT_SIZE_HEIGHT_MASK 0x0000ffff
+#define PA_SU_POINT_SIZE_WIDTH_MASK 0xffff0000
+
+#define PA_SU_POINT_SIZE_MASK \
+ (PA_SU_POINT_SIZE_HEIGHT_MASK | \
+ PA_SU_POINT_SIZE_WIDTH_MASK)
+
+#define PA_SU_POINT_SIZE(height, width) \
+ ((height << PA_SU_POINT_SIZE_HEIGHT_SHIFT) | \
+ (width << PA_SU_POINT_SIZE_WIDTH_SHIFT))
+
+#define PA_SU_POINT_SIZE_GET_HEIGHT(pa_su_point_size) \
+ ((pa_su_point_size & PA_SU_POINT_SIZE_HEIGHT_MASK) >> PA_SU_POINT_SIZE_HEIGHT_SHIFT)
+#define PA_SU_POINT_SIZE_GET_WIDTH(pa_su_point_size) \
+ ((pa_su_point_size & PA_SU_POINT_SIZE_WIDTH_MASK) >> PA_SU_POINT_SIZE_WIDTH_SHIFT)
+
+#define PA_SU_POINT_SIZE_SET_HEIGHT(pa_su_point_size_reg, height) \
+ pa_su_point_size_reg = (pa_su_point_size_reg & ~PA_SU_POINT_SIZE_HEIGHT_MASK) | (height << PA_SU_POINT_SIZE_HEIGHT_SHIFT)
+#define PA_SU_POINT_SIZE_SET_WIDTH(pa_su_point_size_reg, width) \
+ pa_su_point_size_reg = (pa_su_point_size_reg & ~PA_SU_POINT_SIZE_WIDTH_MASK) | (width << PA_SU_POINT_SIZE_WIDTH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_point_size_t {
+ unsigned int height : PA_SU_POINT_SIZE_HEIGHT_SIZE;
+ unsigned int width : PA_SU_POINT_SIZE_WIDTH_SIZE;
+ } pa_su_point_size_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_point_size_t {
+ unsigned int width : PA_SU_POINT_SIZE_WIDTH_SIZE;
+ unsigned int height : PA_SU_POINT_SIZE_HEIGHT_SIZE;
+ } pa_su_point_size_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_point_size_t f;
+} pa_su_point_size_u;
+
+
+/*
+ * PA_SU_POINT_MINMAX struct
+ */
+
+#define PA_SU_POINT_MINMAX_MIN_SIZE_SIZE 16
+#define PA_SU_POINT_MINMAX_MAX_SIZE_SIZE 16
+
+#define PA_SU_POINT_MINMAX_MIN_SIZE_SHIFT 0
+#define PA_SU_POINT_MINMAX_MAX_SIZE_SHIFT 16
+
+#define PA_SU_POINT_MINMAX_MIN_SIZE_MASK 0x0000ffff
+#define PA_SU_POINT_MINMAX_MAX_SIZE_MASK 0xffff0000
+
+#define PA_SU_POINT_MINMAX_MASK \
+ (PA_SU_POINT_MINMAX_MIN_SIZE_MASK | \
+ PA_SU_POINT_MINMAX_MAX_SIZE_MASK)
+
+#define PA_SU_POINT_MINMAX(min_size, max_size) \
+ ((min_size << PA_SU_POINT_MINMAX_MIN_SIZE_SHIFT) | \
+ (max_size << PA_SU_POINT_MINMAX_MAX_SIZE_SHIFT))
+
+#define PA_SU_POINT_MINMAX_GET_MIN_SIZE(pa_su_point_minmax) \
+ ((pa_su_point_minmax & PA_SU_POINT_MINMAX_MIN_SIZE_MASK) >> PA_SU_POINT_MINMAX_MIN_SIZE_SHIFT)
+#define PA_SU_POINT_MINMAX_GET_MAX_SIZE(pa_su_point_minmax) \
+ ((pa_su_point_minmax & PA_SU_POINT_MINMAX_MAX_SIZE_MASK) >> PA_SU_POINT_MINMAX_MAX_SIZE_SHIFT)
+
+#define PA_SU_POINT_MINMAX_SET_MIN_SIZE(pa_su_point_minmax_reg, min_size) \
+ pa_su_point_minmax_reg = (pa_su_point_minmax_reg & ~PA_SU_POINT_MINMAX_MIN_SIZE_MASK) | (min_size << PA_SU_POINT_MINMAX_MIN_SIZE_SHIFT)
+#define PA_SU_POINT_MINMAX_SET_MAX_SIZE(pa_su_point_minmax_reg, max_size) \
+ pa_su_point_minmax_reg = (pa_su_point_minmax_reg & ~PA_SU_POINT_MINMAX_MAX_SIZE_MASK) | (max_size << PA_SU_POINT_MINMAX_MAX_SIZE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_point_minmax_t {
+ unsigned int min_size : PA_SU_POINT_MINMAX_MIN_SIZE_SIZE;
+ unsigned int max_size : PA_SU_POINT_MINMAX_MAX_SIZE_SIZE;
+ } pa_su_point_minmax_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_point_minmax_t {
+ unsigned int max_size : PA_SU_POINT_MINMAX_MAX_SIZE_SIZE;
+ unsigned int min_size : PA_SU_POINT_MINMAX_MIN_SIZE_SIZE;
+ } pa_su_point_minmax_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_point_minmax_t f;
+} pa_su_point_minmax_u;
+
+
+/*
+ * PA_SU_LINE_CNTL struct
+ */
+
+#define PA_SU_LINE_CNTL_WIDTH_SIZE 16
+
+#define PA_SU_LINE_CNTL_WIDTH_SHIFT 0
+
+#define PA_SU_LINE_CNTL_WIDTH_MASK 0x0000ffff
+
+#define PA_SU_LINE_CNTL_MASK \
+ (PA_SU_LINE_CNTL_WIDTH_MASK)
+
+#define PA_SU_LINE_CNTL(width) \
+ ((width << PA_SU_LINE_CNTL_WIDTH_SHIFT))
+
+#define PA_SU_LINE_CNTL_GET_WIDTH(pa_su_line_cntl) \
+ ((pa_su_line_cntl & PA_SU_LINE_CNTL_WIDTH_MASK) >> PA_SU_LINE_CNTL_WIDTH_SHIFT)
+
+#define PA_SU_LINE_CNTL_SET_WIDTH(pa_su_line_cntl_reg, width) \
+ pa_su_line_cntl_reg = (pa_su_line_cntl_reg & ~PA_SU_LINE_CNTL_WIDTH_MASK) | (width << PA_SU_LINE_CNTL_WIDTH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_line_cntl_t {
+ unsigned int width : PA_SU_LINE_CNTL_WIDTH_SIZE;
+ unsigned int : 16;
+ } pa_su_line_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_line_cntl_t {
+ unsigned int : 16;
+ unsigned int width : PA_SU_LINE_CNTL_WIDTH_SIZE;
+ } pa_su_line_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_line_cntl_t f;
+} pa_su_line_cntl_u;
+
+
+/*
+ * PA_SU_SC_MODE_CNTL struct
+ */
+
+#define PA_SU_SC_MODE_CNTL_CULL_FRONT_SIZE 1
+#define PA_SU_SC_MODE_CNTL_CULL_BACK_SIZE 1
+#define PA_SU_SC_MODE_CNTL_FACE_SIZE 1
+#define PA_SU_SC_MODE_CNTL_POLY_MODE_SIZE 2
+#define PA_SU_SC_MODE_CNTL_POLYMODE_FRONT_PTYPE_SIZE 3
+#define PA_SU_SC_MODE_CNTL_POLYMODE_BACK_PTYPE_SIZE 3
+#define PA_SU_SC_MODE_CNTL_POLY_OFFSET_FRONT_ENABLE_SIZE 1
+#define PA_SU_SC_MODE_CNTL_POLY_OFFSET_BACK_ENABLE_SIZE 1
+#define PA_SU_SC_MODE_CNTL_POLY_OFFSET_PARA_ENABLE_SIZE 1
+#define PA_SU_SC_MODE_CNTL_MSAA_ENABLE_SIZE 1
+#define PA_SU_SC_MODE_CNTL_VTX_WINDOW_OFFSET_ENABLE_SIZE 1
+#define PA_SU_SC_MODE_CNTL_LINE_STIPPLE_ENABLE_SIZE 1
+#define PA_SU_SC_MODE_CNTL_PROVOKING_VTX_LAST_SIZE 1
+#define PA_SU_SC_MODE_CNTL_PERSP_CORR_DIS_SIZE 1
+#define PA_SU_SC_MODE_CNTL_MULTI_PRIM_IB_ENA_SIZE 1
+#define PA_SU_SC_MODE_CNTL_QUAD_ORDER_ENABLE_SIZE 1
+#define PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_ALL_TRI_SIZE 1
+#define PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_FIRST_TRI_NEW_STATE_SIZE 1
+
+#define PA_SU_SC_MODE_CNTL_CULL_FRONT_SHIFT 0
+#define PA_SU_SC_MODE_CNTL_CULL_BACK_SHIFT 1
+#define PA_SU_SC_MODE_CNTL_FACE_SHIFT 2
+#define PA_SU_SC_MODE_CNTL_POLY_MODE_SHIFT 3
+#define PA_SU_SC_MODE_CNTL_POLYMODE_FRONT_PTYPE_SHIFT 5
+#define PA_SU_SC_MODE_CNTL_POLYMODE_BACK_PTYPE_SHIFT 8
+#define PA_SU_SC_MODE_CNTL_POLY_OFFSET_FRONT_ENABLE_SHIFT 11
+#define PA_SU_SC_MODE_CNTL_POLY_OFFSET_BACK_ENABLE_SHIFT 12
+#define PA_SU_SC_MODE_CNTL_POLY_OFFSET_PARA_ENABLE_SHIFT 13
+#define PA_SU_SC_MODE_CNTL_MSAA_ENABLE_SHIFT 15
+#define PA_SU_SC_MODE_CNTL_VTX_WINDOW_OFFSET_ENABLE_SHIFT 16
+#define PA_SU_SC_MODE_CNTL_LINE_STIPPLE_ENABLE_SHIFT 18
+#define PA_SU_SC_MODE_CNTL_PROVOKING_VTX_LAST_SHIFT 19
+#define PA_SU_SC_MODE_CNTL_PERSP_CORR_DIS_SHIFT 20
+#define PA_SU_SC_MODE_CNTL_MULTI_PRIM_IB_ENA_SHIFT 21
+#define PA_SU_SC_MODE_CNTL_QUAD_ORDER_ENABLE_SHIFT 23
+#define PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_ALL_TRI_SHIFT 25
+#define PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_FIRST_TRI_NEW_STATE_SHIFT 26
+
+#define PA_SU_SC_MODE_CNTL_CULL_FRONT_MASK 0x00000001
+#define PA_SU_SC_MODE_CNTL_CULL_BACK_MASK 0x00000002
+#define PA_SU_SC_MODE_CNTL_FACE_MASK 0x00000004
+#define PA_SU_SC_MODE_CNTL_POLY_MODE_MASK 0x00000018
+#define PA_SU_SC_MODE_CNTL_POLYMODE_FRONT_PTYPE_MASK 0x000000e0
+#define PA_SU_SC_MODE_CNTL_POLYMODE_BACK_PTYPE_MASK 0x00000700
+#define PA_SU_SC_MODE_CNTL_POLY_OFFSET_FRONT_ENABLE_MASK 0x00000800
+#define PA_SU_SC_MODE_CNTL_POLY_OFFSET_BACK_ENABLE_MASK 0x00001000
+#define PA_SU_SC_MODE_CNTL_POLY_OFFSET_PARA_ENABLE_MASK 0x00002000
+#define PA_SU_SC_MODE_CNTL_MSAA_ENABLE_MASK 0x00008000
+#define PA_SU_SC_MODE_CNTL_VTX_WINDOW_OFFSET_ENABLE_MASK 0x00010000
+#define PA_SU_SC_MODE_CNTL_LINE_STIPPLE_ENABLE_MASK 0x00040000
+#define PA_SU_SC_MODE_CNTL_PROVOKING_VTX_LAST_MASK 0x00080000
+#define PA_SU_SC_MODE_CNTL_PERSP_CORR_DIS_MASK 0x00100000
+#define PA_SU_SC_MODE_CNTL_MULTI_PRIM_IB_ENA_MASK 0x00200000
+#define PA_SU_SC_MODE_CNTL_QUAD_ORDER_ENABLE_MASK 0x00800000
+#define PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_ALL_TRI_MASK 0x02000000
+#define PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_FIRST_TRI_NEW_STATE_MASK 0x04000000
+
+#define PA_SU_SC_MODE_CNTL_MASK \
+ (PA_SU_SC_MODE_CNTL_CULL_FRONT_MASK | \
+ PA_SU_SC_MODE_CNTL_CULL_BACK_MASK | \
+ PA_SU_SC_MODE_CNTL_FACE_MASK | \
+ PA_SU_SC_MODE_CNTL_POLY_MODE_MASK | \
+ PA_SU_SC_MODE_CNTL_POLYMODE_FRONT_PTYPE_MASK | \
+ PA_SU_SC_MODE_CNTL_POLYMODE_BACK_PTYPE_MASK | \
+ PA_SU_SC_MODE_CNTL_POLY_OFFSET_FRONT_ENABLE_MASK | \
+ PA_SU_SC_MODE_CNTL_POLY_OFFSET_BACK_ENABLE_MASK | \
+ PA_SU_SC_MODE_CNTL_POLY_OFFSET_PARA_ENABLE_MASK | \
+ PA_SU_SC_MODE_CNTL_MSAA_ENABLE_MASK | \
+ PA_SU_SC_MODE_CNTL_VTX_WINDOW_OFFSET_ENABLE_MASK | \
+ PA_SU_SC_MODE_CNTL_LINE_STIPPLE_ENABLE_MASK | \
+ PA_SU_SC_MODE_CNTL_PROVOKING_VTX_LAST_MASK | \
+ PA_SU_SC_MODE_CNTL_PERSP_CORR_DIS_MASK | \
+ PA_SU_SC_MODE_CNTL_MULTI_PRIM_IB_ENA_MASK | \
+ PA_SU_SC_MODE_CNTL_QUAD_ORDER_ENABLE_MASK | \
+ PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_ALL_TRI_MASK | \
+ PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_FIRST_TRI_NEW_STATE_MASK)
+
+#define PA_SU_SC_MODE_CNTL(cull_front, cull_back, face, poly_mode, polymode_front_ptype, polymode_back_ptype, poly_offset_front_enable, poly_offset_back_enable, poly_offset_para_enable, msaa_enable, vtx_window_offset_enable, line_stipple_enable, provoking_vtx_last, persp_corr_dis, multi_prim_ib_ena, quad_order_enable, wait_rb_idle_all_tri, wait_rb_idle_first_tri_new_state) \
+ ((cull_front << PA_SU_SC_MODE_CNTL_CULL_FRONT_SHIFT) | \
+ (cull_back << PA_SU_SC_MODE_CNTL_CULL_BACK_SHIFT) | \
+ (face << PA_SU_SC_MODE_CNTL_FACE_SHIFT) | \
+ (poly_mode << PA_SU_SC_MODE_CNTL_POLY_MODE_SHIFT) | \
+ (polymode_front_ptype << PA_SU_SC_MODE_CNTL_POLYMODE_FRONT_PTYPE_SHIFT) | \
+ (polymode_back_ptype << PA_SU_SC_MODE_CNTL_POLYMODE_BACK_PTYPE_SHIFT) | \
+ (poly_offset_front_enable << PA_SU_SC_MODE_CNTL_POLY_OFFSET_FRONT_ENABLE_SHIFT) | \
+ (poly_offset_back_enable << PA_SU_SC_MODE_CNTL_POLY_OFFSET_BACK_ENABLE_SHIFT) | \
+ (poly_offset_para_enable << PA_SU_SC_MODE_CNTL_POLY_OFFSET_PARA_ENABLE_SHIFT) | \
+ (msaa_enable << PA_SU_SC_MODE_CNTL_MSAA_ENABLE_SHIFT) | \
+ (vtx_window_offset_enable << PA_SU_SC_MODE_CNTL_VTX_WINDOW_OFFSET_ENABLE_SHIFT) | \
+ (line_stipple_enable << PA_SU_SC_MODE_CNTL_LINE_STIPPLE_ENABLE_SHIFT) | \
+ (provoking_vtx_last << PA_SU_SC_MODE_CNTL_PROVOKING_VTX_LAST_SHIFT) | \
+ (persp_corr_dis << PA_SU_SC_MODE_CNTL_PERSP_CORR_DIS_SHIFT) | \
+ (multi_prim_ib_ena << PA_SU_SC_MODE_CNTL_MULTI_PRIM_IB_ENA_SHIFT) | \
+ (quad_order_enable << PA_SU_SC_MODE_CNTL_QUAD_ORDER_ENABLE_SHIFT) | \
+ (wait_rb_idle_all_tri << PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_ALL_TRI_SHIFT) | \
+ (wait_rb_idle_first_tri_new_state << PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_FIRST_TRI_NEW_STATE_SHIFT))
+
+#define PA_SU_SC_MODE_CNTL_GET_CULL_FRONT(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_CULL_FRONT_MASK) >> PA_SU_SC_MODE_CNTL_CULL_FRONT_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_CULL_BACK(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_CULL_BACK_MASK) >> PA_SU_SC_MODE_CNTL_CULL_BACK_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_FACE(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_FACE_MASK) >> PA_SU_SC_MODE_CNTL_FACE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_POLY_MODE(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_POLY_MODE_MASK) >> PA_SU_SC_MODE_CNTL_POLY_MODE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_POLYMODE_FRONT_PTYPE(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_POLYMODE_FRONT_PTYPE_MASK) >> PA_SU_SC_MODE_CNTL_POLYMODE_FRONT_PTYPE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_POLYMODE_BACK_PTYPE(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_POLYMODE_BACK_PTYPE_MASK) >> PA_SU_SC_MODE_CNTL_POLYMODE_BACK_PTYPE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_POLY_OFFSET_FRONT_ENABLE(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_POLY_OFFSET_FRONT_ENABLE_MASK) >> PA_SU_SC_MODE_CNTL_POLY_OFFSET_FRONT_ENABLE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_POLY_OFFSET_BACK_ENABLE(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_POLY_OFFSET_BACK_ENABLE_MASK) >> PA_SU_SC_MODE_CNTL_POLY_OFFSET_BACK_ENABLE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_POLY_OFFSET_PARA_ENABLE(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_POLY_OFFSET_PARA_ENABLE_MASK) >> PA_SU_SC_MODE_CNTL_POLY_OFFSET_PARA_ENABLE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_MSAA_ENABLE(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_MSAA_ENABLE_MASK) >> PA_SU_SC_MODE_CNTL_MSAA_ENABLE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_VTX_WINDOW_OFFSET_ENABLE(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_VTX_WINDOW_OFFSET_ENABLE_MASK) >> PA_SU_SC_MODE_CNTL_VTX_WINDOW_OFFSET_ENABLE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_LINE_STIPPLE_ENABLE(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_LINE_STIPPLE_ENABLE_MASK) >> PA_SU_SC_MODE_CNTL_LINE_STIPPLE_ENABLE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_PROVOKING_VTX_LAST(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_PROVOKING_VTX_LAST_MASK) >> PA_SU_SC_MODE_CNTL_PROVOKING_VTX_LAST_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_PERSP_CORR_DIS(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_PERSP_CORR_DIS_MASK) >> PA_SU_SC_MODE_CNTL_PERSP_CORR_DIS_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_MULTI_PRIM_IB_ENA(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_MULTI_PRIM_IB_ENA_MASK) >> PA_SU_SC_MODE_CNTL_MULTI_PRIM_IB_ENA_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_QUAD_ORDER_ENABLE(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_QUAD_ORDER_ENABLE_MASK) >> PA_SU_SC_MODE_CNTL_QUAD_ORDER_ENABLE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_WAIT_RB_IDLE_ALL_TRI(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_ALL_TRI_MASK) >> PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_ALL_TRI_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_WAIT_RB_IDLE_FIRST_TRI_NEW_STATE(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_FIRST_TRI_NEW_STATE_MASK) >> PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_FIRST_TRI_NEW_STATE_SHIFT)
+
+#define PA_SU_SC_MODE_CNTL_SET_CULL_FRONT(pa_su_sc_mode_cntl_reg, cull_front) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_CULL_FRONT_MASK) | (cull_front << PA_SU_SC_MODE_CNTL_CULL_FRONT_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_CULL_BACK(pa_su_sc_mode_cntl_reg, cull_back) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_CULL_BACK_MASK) | (cull_back << PA_SU_SC_MODE_CNTL_CULL_BACK_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_FACE(pa_su_sc_mode_cntl_reg, face) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_FACE_MASK) | (face << PA_SU_SC_MODE_CNTL_FACE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_POLY_MODE(pa_su_sc_mode_cntl_reg, poly_mode) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_POLY_MODE_MASK) | (poly_mode << PA_SU_SC_MODE_CNTL_POLY_MODE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_POLYMODE_FRONT_PTYPE(pa_su_sc_mode_cntl_reg, polymode_front_ptype) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_POLYMODE_FRONT_PTYPE_MASK) | (polymode_front_ptype << PA_SU_SC_MODE_CNTL_POLYMODE_FRONT_PTYPE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_POLYMODE_BACK_PTYPE(pa_su_sc_mode_cntl_reg, polymode_back_ptype) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_POLYMODE_BACK_PTYPE_MASK) | (polymode_back_ptype << PA_SU_SC_MODE_CNTL_POLYMODE_BACK_PTYPE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_POLY_OFFSET_FRONT_ENABLE(pa_su_sc_mode_cntl_reg, poly_offset_front_enable) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_POLY_OFFSET_FRONT_ENABLE_MASK) | (poly_offset_front_enable << PA_SU_SC_MODE_CNTL_POLY_OFFSET_FRONT_ENABLE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_POLY_OFFSET_BACK_ENABLE(pa_su_sc_mode_cntl_reg, poly_offset_back_enable) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_POLY_OFFSET_BACK_ENABLE_MASK) | (poly_offset_back_enable << PA_SU_SC_MODE_CNTL_POLY_OFFSET_BACK_ENABLE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_POLY_OFFSET_PARA_ENABLE(pa_su_sc_mode_cntl_reg, poly_offset_para_enable) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_POLY_OFFSET_PARA_ENABLE_MASK) | (poly_offset_para_enable << PA_SU_SC_MODE_CNTL_POLY_OFFSET_PARA_ENABLE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_MSAA_ENABLE(pa_su_sc_mode_cntl_reg, msaa_enable) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_MSAA_ENABLE_MASK) | (msaa_enable << PA_SU_SC_MODE_CNTL_MSAA_ENABLE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_VTX_WINDOW_OFFSET_ENABLE(pa_su_sc_mode_cntl_reg, vtx_window_offset_enable) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_VTX_WINDOW_OFFSET_ENABLE_MASK) | (vtx_window_offset_enable << PA_SU_SC_MODE_CNTL_VTX_WINDOW_OFFSET_ENABLE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_LINE_STIPPLE_ENABLE(pa_su_sc_mode_cntl_reg, line_stipple_enable) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_LINE_STIPPLE_ENABLE_MASK) | (line_stipple_enable << PA_SU_SC_MODE_CNTL_LINE_STIPPLE_ENABLE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_PROVOKING_VTX_LAST(pa_su_sc_mode_cntl_reg, provoking_vtx_last) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_PROVOKING_VTX_LAST_MASK) | (provoking_vtx_last << PA_SU_SC_MODE_CNTL_PROVOKING_VTX_LAST_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_PERSP_CORR_DIS(pa_su_sc_mode_cntl_reg, persp_corr_dis) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_PERSP_CORR_DIS_MASK) | (persp_corr_dis << PA_SU_SC_MODE_CNTL_PERSP_CORR_DIS_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_MULTI_PRIM_IB_ENA(pa_su_sc_mode_cntl_reg, multi_prim_ib_ena) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_MULTI_PRIM_IB_ENA_MASK) | (multi_prim_ib_ena << PA_SU_SC_MODE_CNTL_MULTI_PRIM_IB_ENA_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_QUAD_ORDER_ENABLE(pa_su_sc_mode_cntl_reg, quad_order_enable) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_QUAD_ORDER_ENABLE_MASK) | (quad_order_enable << PA_SU_SC_MODE_CNTL_QUAD_ORDER_ENABLE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_WAIT_RB_IDLE_ALL_TRI(pa_su_sc_mode_cntl_reg, wait_rb_idle_all_tri) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_ALL_TRI_MASK) | (wait_rb_idle_all_tri << PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_ALL_TRI_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_WAIT_RB_IDLE_FIRST_TRI_NEW_STATE(pa_su_sc_mode_cntl_reg, wait_rb_idle_first_tri_new_state) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_FIRST_TRI_NEW_STATE_MASK) | (wait_rb_idle_first_tri_new_state << PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_FIRST_TRI_NEW_STATE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_sc_mode_cntl_t {
+ unsigned int cull_front : PA_SU_SC_MODE_CNTL_CULL_FRONT_SIZE;
+ unsigned int cull_back : PA_SU_SC_MODE_CNTL_CULL_BACK_SIZE;
+ unsigned int face : PA_SU_SC_MODE_CNTL_FACE_SIZE;
+ unsigned int poly_mode : PA_SU_SC_MODE_CNTL_POLY_MODE_SIZE;
+ unsigned int polymode_front_ptype : PA_SU_SC_MODE_CNTL_POLYMODE_FRONT_PTYPE_SIZE;
+ unsigned int polymode_back_ptype : PA_SU_SC_MODE_CNTL_POLYMODE_BACK_PTYPE_SIZE;
+ unsigned int poly_offset_front_enable : PA_SU_SC_MODE_CNTL_POLY_OFFSET_FRONT_ENABLE_SIZE;
+ unsigned int poly_offset_back_enable : PA_SU_SC_MODE_CNTL_POLY_OFFSET_BACK_ENABLE_SIZE;
+ unsigned int poly_offset_para_enable : PA_SU_SC_MODE_CNTL_POLY_OFFSET_PARA_ENABLE_SIZE;
+ unsigned int : 1;
+ unsigned int msaa_enable : PA_SU_SC_MODE_CNTL_MSAA_ENABLE_SIZE;
+ unsigned int vtx_window_offset_enable : PA_SU_SC_MODE_CNTL_VTX_WINDOW_OFFSET_ENABLE_SIZE;
+ unsigned int : 1;
+ unsigned int line_stipple_enable : PA_SU_SC_MODE_CNTL_LINE_STIPPLE_ENABLE_SIZE;
+ unsigned int provoking_vtx_last : PA_SU_SC_MODE_CNTL_PROVOKING_VTX_LAST_SIZE;
+ unsigned int persp_corr_dis : PA_SU_SC_MODE_CNTL_PERSP_CORR_DIS_SIZE;
+ unsigned int multi_prim_ib_ena : PA_SU_SC_MODE_CNTL_MULTI_PRIM_IB_ENA_SIZE;
+ unsigned int : 1;
+ unsigned int quad_order_enable : PA_SU_SC_MODE_CNTL_QUAD_ORDER_ENABLE_SIZE;
+ unsigned int : 1;
+ unsigned int wait_rb_idle_all_tri : PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_ALL_TRI_SIZE;
+ unsigned int wait_rb_idle_first_tri_new_state : PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_FIRST_TRI_NEW_STATE_SIZE;
+ unsigned int : 5;
+ } pa_su_sc_mode_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_sc_mode_cntl_t {
+ unsigned int : 5;
+ unsigned int wait_rb_idle_first_tri_new_state : PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_FIRST_TRI_NEW_STATE_SIZE;
+ unsigned int wait_rb_idle_all_tri : PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_ALL_TRI_SIZE;
+ unsigned int : 1;
+ unsigned int quad_order_enable : PA_SU_SC_MODE_CNTL_QUAD_ORDER_ENABLE_SIZE;
+ unsigned int : 1;
+ unsigned int multi_prim_ib_ena : PA_SU_SC_MODE_CNTL_MULTI_PRIM_IB_ENA_SIZE;
+ unsigned int persp_corr_dis : PA_SU_SC_MODE_CNTL_PERSP_CORR_DIS_SIZE;
+ unsigned int provoking_vtx_last : PA_SU_SC_MODE_CNTL_PROVOKING_VTX_LAST_SIZE;
+ unsigned int line_stipple_enable : PA_SU_SC_MODE_CNTL_LINE_STIPPLE_ENABLE_SIZE;
+ unsigned int : 1;
+ unsigned int vtx_window_offset_enable : PA_SU_SC_MODE_CNTL_VTX_WINDOW_OFFSET_ENABLE_SIZE;
+ unsigned int msaa_enable : PA_SU_SC_MODE_CNTL_MSAA_ENABLE_SIZE;
+ unsigned int : 1;
+ unsigned int poly_offset_para_enable : PA_SU_SC_MODE_CNTL_POLY_OFFSET_PARA_ENABLE_SIZE;
+ unsigned int poly_offset_back_enable : PA_SU_SC_MODE_CNTL_POLY_OFFSET_BACK_ENABLE_SIZE;
+ unsigned int poly_offset_front_enable : PA_SU_SC_MODE_CNTL_POLY_OFFSET_FRONT_ENABLE_SIZE;
+ unsigned int polymode_back_ptype : PA_SU_SC_MODE_CNTL_POLYMODE_BACK_PTYPE_SIZE;
+ unsigned int polymode_front_ptype : PA_SU_SC_MODE_CNTL_POLYMODE_FRONT_PTYPE_SIZE;
+ unsigned int poly_mode : PA_SU_SC_MODE_CNTL_POLY_MODE_SIZE;
+ unsigned int face : PA_SU_SC_MODE_CNTL_FACE_SIZE;
+ unsigned int cull_back : PA_SU_SC_MODE_CNTL_CULL_BACK_SIZE;
+ unsigned int cull_front : PA_SU_SC_MODE_CNTL_CULL_FRONT_SIZE;
+ } pa_su_sc_mode_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_sc_mode_cntl_t f;
+} pa_su_sc_mode_cntl_u;
+
+
+/*
+ * PA_SU_POLY_OFFSET_FRONT_SCALE struct
+ */
+
+#define PA_SU_POLY_OFFSET_FRONT_SCALE_SCALE_SIZE 32
+
+#define PA_SU_POLY_OFFSET_FRONT_SCALE_SCALE_SHIFT 0
+
+#define PA_SU_POLY_OFFSET_FRONT_SCALE_SCALE_MASK 0xffffffff
+
+#define PA_SU_POLY_OFFSET_FRONT_SCALE_MASK \
+ (PA_SU_POLY_OFFSET_FRONT_SCALE_SCALE_MASK)
+
+#define PA_SU_POLY_OFFSET_FRONT_SCALE(scale) \
+ ((scale << PA_SU_POLY_OFFSET_FRONT_SCALE_SCALE_SHIFT))
+
+#define PA_SU_POLY_OFFSET_FRONT_SCALE_GET_SCALE(pa_su_poly_offset_front_scale) \
+ ((pa_su_poly_offset_front_scale & PA_SU_POLY_OFFSET_FRONT_SCALE_SCALE_MASK) >> PA_SU_POLY_OFFSET_FRONT_SCALE_SCALE_SHIFT)
+
+#define PA_SU_POLY_OFFSET_FRONT_SCALE_SET_SCALE(pa_su_poly_offset_front_scale_reg, scale) \
+ pa_su_poly_offset_front_scale_reg = (pa_su_poly_offset_front_scale_reg & ~PA_SU_POLY_OFFSET_FRONT_SCALE_SCALE_MASK) | (scale << PA_SU_POLY_OFFSET_FRONT_SCALE_SCALE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_poly_offset_front_scale_t {
+ unsigned int scale : PA_SU_POLY_OFFSET_FRONT_SCALE_SCALE_SIZE;
+ } pa_su_poly_offset_front_scale_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_poly_offset_front_scale_t {
+ unsigned int scale : PA_SU_POLY_OFFSET_FRONT_SCALE_SCALE_SIZE;
+ } pa_su_poly_offset_front_scale_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_poly_offset_front_scale_t f;
+} pa_su_poly_offset_front_scale_u;
+
+
+/*
+ * PA_SU_POLY_OFFSET_FRONT_OFFSET struct
+ */
+
+#define PA_SU_POLY_OFFSET_FRONT_OFFSET_OFFSET_SIZE 32
+
+#define PA_SU_POLY_OFFSET_FRONT_OFFSET_OFFSET_SHIFT 0
+
+#define PA_SU_POLY_OFFSET_FRONT_OFFSET_OFFSET_MASK 0xffffffff
+
+#define PA_SU_POLY_OFFSET_FRONT_OFFSET_MASK \
+ (PA_SU_POLY_OFFSET_FRONT_OFFSET_OFFSET_MASK)
+
+#define PA_SU_POLY_OFFSET_FRONT_OFFSET(offset) \
+ ((offset << PA_SU_POLY_OFFSET_FRONT_OFFSET_OFFSET_SHIFT))
+
+#define PA_SU_POLY_OFFSET_FRONT_OFFSET_GET_OFFSET(pa_su_poly_offset_front_offset) \
+ ((pa_su_poly_offset_front_offset & PA_SU_POLY_OFFSET_FRONT_OFFSET_OFFSET_MASK) >> PA_SU_POLY_OFFSET_FRONT_OFFSET_OFFSET_SHIFT)
+
+#define PA_SU_POLY_OFFSET_FRONT_OFFSET_SET_OFFSET(pa_su_poly_offset_front_offset_reg, offset) \
+ pa_su_poly_offset_front_offset_reg = (pa_su_poly_offset_front_offset_reg & ~PA_SU_POLY_OFFSET_FRONT_OFFSET_OFFSET_MASK) | (offset << PA_SU_POLY_OFFSET_FRONT_OFFSET_OFFSET_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_poly_offset_front_offset_t {
+ unsigned int offset : PA_SU_POLY_OFFSET_FRONT_OFFSET_OFFSET_SIZE;
+ } pa_su_poly_offset_front_offset_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_poly_offset_front_offset_t {
+ unsigned int offset : PA_SU_POLY_OFFSET_FRONT_OFFSET_OFFSET_SIZE;
+ } pa_su_poly_offset_front_offset_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_poly_offset_front_offset_t f;
+} pa_su_poly_offset_front_offset_u;
+
+
+/*
+ * PA_SU_POLY_OFFSET_BACK_SCALE struct
+ */
+
+#define PA_SU_POLY_OFFSET_BACK_SCALE_SCALE_SIZE 32
+
+#define PA_SU_POLY_OFFSET_BACK_SCALE_SCALE_SHIFT 0
+
+#define PA_SU_POLY_OFFSET_BACK_SCALE_SCALE_MASK 0xffffffff
+
+#define PA_SU_POLY_OFFSET_BACK_SCALE_MASK \
+ (PA_SU_POLY_OFFSET_BACK_SCALE_SCALE_MASK)
+
+#define PA_SU_POLY_OFFSET_BACK_SCALE(scale) \
+ ((scale << PA_SU_POLY_OFFSET_BACK_SCALE_SCALE_SHIFT))
+
+#define PA_SU_POLY_OFFSET_BACK_SCALE_GET_SCALE(pa_su_poly_offset_back_scale) \
+ ((pa_su_poly_offset_back_scale & PA_SU_POLY_OFFSET_BACK_SCALE_SCALE_MASK) >> PA_SU_POLY_OFFSET_BACK_SCALE_SCALE_SHIFT)
+
+#define PA_SU_POLY_OFFSET_BACK_SCALE_SET_SCALE(pa_su_poly_offset_back_scale_reg, scale) \
+ pa_su_poly_offset_back_scale_reg = (pa_su_poly_offset_back_scale_reg & ~PA_SU_POLY_OFFSET_BACK_SCALE_SCALE_MASK) | (scale << PA_SU_POLY_OFFSET_BACK_SCALE_SCALE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_poly_offset_back_scale_t {
+ unsigned int scale : PA_SU_POLY_OFFSET_BACK_SCALE_SCALE_SIZE;
+ } pa_su_poly_offset_back_scale_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_poly_offset_back_scale_t {
+ unsigned int scale : PA_SU_POLY_OFFSET_BACK_SCALE_SCALE_SIZE;
+ } pa_su_poly_offset_back_scale_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_poly_offset_back_scale_t f;
+} pa_su_poly_offset_back_scale_u;
+
+
+/*
+ * PA_SU_POLY_OFFSET_BACK_OFFSET struct
+ */
+
+#define PA_SU_POLY_OFFSET_BACK_OFFSET_OFFSET_SIZE 32
+
+#define PA_SU_POLY_OFFSET_BACK_OFFSET_OFFSET_SHIFT 0
+
+#define PA_SU_POLY_OFFSET_BACK_OFFSET_OFFSET_MASK 0xffffffff
+
+#define PA_SU_POLY_OFFSET_BACK_OFFSET_MASK \
+ (PA_SU_POLY_OFFSET_BACK_OFFSET_OFFSET_MASK)
+
+#define PA_SU_POLY_OFFSET_BACK_OFFSET(offset) \
+ ((offset << PA_SU_POLY_OFFSET_BACK_OFFSET_OFFSET_SHIFT))
+
+#define PA_SU_POLY_OFFSET_BACK_OFFSET_GET_OFFSET(pa_su_poly_offset_back_offset) \
+ ((pa_su_poly_offset_back_offset & PA_SU_POLY_OFFSET_BACK_OFFSET_OFFSET_MASK) >> PA_SU_POLY_OFFSET_BACK_OFFSET_OFFSET_SHIFT)
+
+#define PA_SU_POLY_OFFSET_BACK_OFFSET_SET_OFFSET(pa_su_poly_offset_back_offset_reg, offset) \
+ pa_su_poly_offset_back_offset_reg = (pa_su_poly_offset_back_offset_reg & ~PA_SU_POLY_OFFSET_BACK_OFFSET_OFFSET_MASK) | (offset << PA_SU_POLY_OFFSET_BACK_OFFSET_OFFSET_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_poly_offset_back_offset_t {
+ unsigned int offset : PA_SU_POLY_OFFSET_BACK_OFFSET_OFFSET_SIZE;
+ } pa_su_poly_offset_back_offset_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_poly_offset_back_offset_t {
+ unsigned int offset : PA_SU_POLY_OFFSET_BACK_OFFSET_OFFSET_SIZE;
+ } pa_su_poly_offset_back_offset_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_poly_offset_back_offset_t f;
+} pa_su_poly_offset_back_offset_u;
+
+
+/*
+ * PA_SU_PERFCOUNTER0_SELECT struct
+ */
+
+#define PA_SU_PERFCOUNTER0_SELECT_PERF_SEL_SIZE 8
+
+#define PA_SU_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT 0
+
+#define PA_SU_PERFCOUNTER0_SELECT_PERF_SEL_MASK 0x000000ff
+
+#define PA_SU_PERFCOUNTER0_SELECT_MASK \
+ (PA_SU_PERFCOUNTER0_SELECT_PERF_SEL_MASK)
+
+#define PA_SU_PERFCOUNTER0_SELECT(perf_sel) \
+ ((perf_sel << PA_SU_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT))
+
+#define PA_SU_PERFCOUNTER0_SELECT_GET_PERF_SEL(pa_su_perfcounter0_select) \
+ ((pa_su_perfcounter0_select & PA_SU_PERFCOUNTER0_SELECT_PERF_SEL_MASK) >> PA_SU_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT)
+
+#define PA_SU_PERFCOUNTER0_SELECT_SET_PERF_SEL(pa_su_perfcounter0_select_reg, perf_sel) \
+ pa_su_perfcounter0_select_reg = (pa_su_perfcounter0_select_reg & ~PA_SU_PERFCOUNTER0_SELECT_PERF_SEL_MASK) | (perf_sel << PA_SU_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter0_select_t {
+ unsigned int perf_sel : PA_SU_PERFCOUNTER0_SELECT_PERF_SEL_SIZE;
+ unsigned int : 24;
+ } pa_su_perfcounter0_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter0_select_t {
+ unsigned int : 24;
+ unsigned int perf_sel : PA_SU_PERFCOUNTER0_SELECT_PERF_SEL_SIZE;
+ } pa_su_perfcounter0_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_perfcounter0_select_t f;
+} pa_su_perfcounter0_select_u;
+
+
+/*
+ * PA_SU_PERFCOUNTER1_SELECT struct
+ */
+
+#define PA_SU_PERFCOUNTER1_SELECT_PERF_SEL_SIZE 8
+
+#define PA_SU_PERFCOUNTER1_SELECT_PERF_SEL_SHIFT 0
+
+#define PA_SU_PERFCOUNTER1_SELECT_PERF_SEL_MASK 0x000000ff
+
+#define PA_SU_PERFCOUNTER1_SELECT_MASK \
+ (PA_SU_PERFCOUNTER1_SELECT_PERF_SEL_MASK)
+
+#define PA_SU_PERFCOUNTER1_SELECT(perf_sel) \
+ ((perf_sel << PA_SU_PERFCOUNTER1_SELECT_PERF_SEL_SHIFT))
+
+#define PA_SU_PERFCOUNTER1_SELECT_GET_PERF_SEL(pa_su_perfcounter1_select) \
+ ((pa_su_perfcounter1_select & PA_SU_PERFCOUNTER1_SELECT_PERF_SEL_MASK) >> PA_SU_PERFCOUNTER1_SELECT_PERF_SEL_SHIFT)
+
+#define PA_SU_PERFCOUNTER1_SELECT_SET_PERF_SEL(pa_su_perfcounter1_select_reg, perf_sel) \
+ pa_su_perfcounter1_select_reg = (pa_su_perfcounter1_select_reg & ~PA_SU_PERFCOUNTER1_SELECT_PERF_SEL_MASK) | (perf_sel << PA_SU_PERFCOUNTER1_SELECT_PERF_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter1_select_t {
+ unsigned int perf_sel : PA_SU_PERFCOUNTER1_SELECT_PERF_SEL_SIZE;
+ unsigned int : 24;
+ } pa_su_perfcounter1_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter1_select_t {
+ unsigned int : 24;
+ unsigned int perf_sel : PA_SU_PERFCOUNTER1_SELECT_PERF_SEL_SIZE;
+ } pa_su_perfcounter1_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_perfcounter1_select_t f;
+} pa_su_perfcounter1_select_u;
+
+
+/*
+ * PA_SU_PERFCOUNTER2_SELECT struct
+ */
+
+#define PA_SU_PERFCOUNTER2_SELECT_PERF_SEL_SIZE 8
+
+#define PA_SU_PERFCOUNTER2_SELECT_PERF_SEL_SHIFT 0
+
+#define PA_SU_PERFCOUNTER2_SELECT_PERF_SEL_MASK 0x000000ff
+
+#define PA_SU_PERFCOUNTER2_SELECT_MASK \
+ (PA_SU_PERFCOUNTER2_SELECT_PERF_SEL_MASK)
+
+#define PA_SU_PERFCOUNTER2_SELECT(perf_sel) \
+ ((perf_sel << PA_SU_PERFCOUNTER2_SELECT_PERF_SEL_SHIFT))
+
+#define PA_SU_PERFCOUNTER2_SELECT_GET_PERF_SEL(pa_su_perfcounter2_select) \
+ ((pa_su_perfcounter2_select & PA_SU_PERFCOUNTER2_SELECT_PERF_SEL_MASK) >> PA_SU_PERFCOUNTER2_SELECT_PERF_SEL_SHIFT)
+
+#define PA_SU_PERFCOUNTER2_SELECT_SET_PERF_SEL(pa_su_perfcounter2_select_reg, perf_sel) \
+ pa_su_perfcounter2_select_reg = (pa_su_perfcounter2_select_reg & ~PA_SU_PERFCOUNTER2_SELECT_PERF_SEL_MASK) | (perf_sel << PA_SU_PERFCOUNTER2_SELECT_PERF_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter2_select_t {
+ unsigned int perf_sel : PA_SU_PERFCOUNTER2_SELECT_PERF_SEL_SIZE;
+ unsigned int : 24;
+ } pa_su_perfcounter2_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter2_select_t {
+ unsigned int : 24;
+ unsigned int perf_sel : PA_SU_PERFCOUNTER2_SELECT_PERF_SEL_SIZE;
+ } pa_su_perfcounter2_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_perfcounter2_select_t f;
+} pa_su_perfcounter2_select_u;
+
+
+/*
+ * PA_SU_PERFCOUNTER3_SELECT struct
+ */
+
+#define PA_SU_PERFCOUNTER3_SELECT_PERF_SEL_SIZE 8
+
+#define PA_SU_PERFCOUNTER3_SELECT_PERF_SEL_SHIFT 0
+
+#define PA_SU_PERFCOUNTER3_SELECT_PERF_SEL_MASK 0x000000ff
+
+#define PA_SU_PERFCOUNTER3_SELECT_MASK \
+ (PA_SU_PERFCOUNTER3_SELECT_PERF_SEL_MASK)
+
+#define PA_SU_PERFCOUNTER3_SELECT(perf_sel) \
+ ((perf_sel << PA_SU_PERFCOUNTER3_SELECT_PERF_SEL_SHIFT))
+
+#define PA_SU_PERFCOUNTER3_SELECT_GET_PERF_SEL(pa_su_perfcounter3_select) \
+ ((pa_su_perfcounter3_select & PA_SU_PERFCOUNTER3_SELECT_PERF_SEL_MASK) >> PA_SU_PERFCOUNTER3_SELECT_PERF_SEL_SHIFT)
+
+#define PA_SU_PERFCOUNTER3_SELECT_SET_PERF_SEL(pa_su_perfcounter3_select_reg, perf_sel) \
+ pa_su_perfcounter3_select_reg = (pa_su_perfcounter3_select_reg & ~PA_SU_PERFCOUNTER3_SELECT_PERF_SEL_MASK) | (perf_sel << PA_SU_PERFCOUNTER3_SELECT_PERF_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter3_select_t {
+ unsigned int perf_sel : PA_SU_PERFCOUNTER3_SELECT_PERF_SEL_SIZE;
+ unsigned int : 24;
+ } pa_su_perfcounter3_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter3_select_t {
+ unsigned int : 24;
+ unsigned int perf_sel : PA_SU_PERFCOUNTER3_SELECT_PERF_SEL_SIZE;
+ } pa_su_perfcounter3_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_perfcounter3_select_t f;
+} pa_su_perfcounter3_select_u;
+
+
+/*
+ * PA_SU_PERFCOUNTER0_LOW struct
+ */
+
+#define PA_SU_PERFCOUNTER0_LOW_PERF_COUNT_SIZE 32
+
+#define PA_SU_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT 0
+
+#define PA_SU_PERFCOUNTER0_LOW_PERF_COUNT_MASK 0xffffffff
+
+#define PA_SU_PERFCOUNTER0_LOW_MASK \
+ (PA_SU_PERFCOUNTER0_LOW_PERF_COUNT_MASK)
+
+#define PA_SU_PERFCOUNTER0_LOW(perf_count) \
+ ((perf_count << PA_SU_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT))
+
+#define PA_SU_PERFCOUNTER0_LOW_GET_PERF_COUNT(pa_su_perfcounter0_low) \
+ ((pa_su_perfcounter0_low & PA_SU_PERFCOUNTER0_LOW_PERF_COUNT_MASK) >> PA_SU_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT)
+
+#define PA_SU_PERFCOUNTER0_LOW_SET_PERF_COUNT(pa_su_perfcounter0_low_reg, perf_count) \
+ pa_su_perfcounter0_low_reg = (pa_su_perfcounter0_low_reg & ~PA_SU_PERFCOUNTER0_LOW_PERF_COUNT_MASK) | (perf_count << PA_SU_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter0_low_t {
+ unsigned int perf_count : PA_SU_PERFCOUNTER0_LOW_PERF_COUNT_SIZE;
+ } pa_su_perfcounter0_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter0_low_t {
+ unsigned int perf_count : PA_SU_PERFCOUNTER0_LOW_PERF_COUNT_SIZE;
+ } pa_su_perfcounter0_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_perfcounter0_low_t f;
+} pa_su_perfcounter0_low_u;
+
+
+/*
+ * PA_SU_PERFCOUNTER0_HI struct
+ */
+
+#define PA_SU_PERFCOUNTER0_HI_PERF_COUNT_SIZE 16
+
+#define PA_SU_PERFCOUNTER0_HI_PERF_COUNT_SHIFT 0
+
+#define PA_SU_PERFCOUNTER0_HI_PERF_COUNT_MASK 0x0000ffff
+
+#define PA_SU_PERFCOUNTER0_HI_MASK \
+ (PA_SU_PERFCOUNTER0_HI_PERF_COUNT_MASK)
+
+#define PA_SU_PERFCOUNTER0_HI(perf_count) \
+ ((perf_count << PA_SU_PERFCOUNTER0_HI_PERF_COUNT_SHIFT))
+
+#define PA_SU_PERFCOUNTER0_HI_GET_PERF_COUNT(pa_su_perfcounter0_hi) \
+ ((pa_su_perfcounter0_hi & PA_SU_PERFCOUNTER0_HI_PERF_COUNT_MASK) >> PA_SU_PERFCOUNTER0_HI_PERF_COUNT_SHIFT)
+
+#define PA_SU_PERFCOUNTER0_HI_SET_PERF_COUNT(pa_su_perfcounter0_hi_reg, perf_count) \
+ pa_su_perfcounter0_hi_reg = (pa_su_perfcounter0_hi_reg & ~PA_SU_PERFCOUNTER0_HI_PERF_COUNT_MASK) | (perf_count << PA_SU_PERFCOUNTER0_HI_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter0_hi_t {
+ unsigned int perf_count : PA_SU_PERFCOUNTER0_HI_PERF_COUNT_SIZE;
+ unsigned int : 16;
+ } pa_su_perfcounter0_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter0_hi_t {
+ unsigned int : 16;
+ unsigned int perf_count : PA_SU_PERFCOUNTER0_HI_PERF_COUNT_SIZE;
+ } pa_su_perfcounter0_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_perfcounter0_hi_t f;
+} pa_su_perfcounter0_hi_u;
+
+
+/*
+ * PA_SU_PERFCOUNTER1_LOW struct
+ */
+
+#define PA_SU_PERFCOUNTER1_LOW_PERF_COUNT_SIZE 32
+
+#define PA_SU_PERFCOUNTER1_LOW_PERF_COUNT_SHIFT 0
+
+#define PA_SU_PERFCOUNTER1_LOW_PERF_COUNT_MASK 0xffffffff
+
+#define PA_SU_PERFCOUNTER1_LOW_MASK \
+ (PA_SU_PERFCOUNTER1_LOW_PERF_COUNT_MASK)
+
+#define PA_SU_PERFCOUNTER1_LOW(perf_count) \
+ ((perf_count << PA_SU_PERFCOUNTER1_LOW_PERF_COUNT_SHIFT))
+
+#define PA_SU_PERFCOUNTER1_LOW_GET_PERF_COUNT(pa_su_perfcounter1_low) \
+ ((pa_su_perfcounter1_low & PA_SU_PERFCOUNTER1_LOW_PERF_COUNT_MASK) >> PA_SU_PERFCOUNTER1_LOW_PERF_COUNT_SHIFT)
+
+#define PA_SU_PERFCOUNTER1_LOW_SET_PERF_COUNT(pa_su_perfcounter1_low_reg, perf_count) \
+ pa_su_perfcounter1_low_reg = (pa_su_perfcounter1_low_reg & ~PA_SU_PERFCOUNTER1_LOW_PERF_COUNT_MASK) | (perf_count << PA_SU_PERFCOUNTER1_LOW_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter1_low_t {
+ unsigned int perf_count : PA_SU_PERFCOUNTER1_LOW_PERF_COUNT_SIZE;
+ } pa_su_perfcounter1_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter1_low_t {
+ unsigned int perf_count : PA_SU_PERFCOUNTER1_LOW_PERF_COUNT_SIZE;
+ } pa_su_perfcounter1_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_perfcounter1_low_t f;
+} pa_su_perfcounter1_low_u;
+
+
+/*
+ * PA_SU_PERFCOUNTER1_HI struct
+ */
+
+#define PA_SU_PERFCOUNTER1_HI_PERF_COUNT_SIZE 16
+
+#define PA_SU_PERFCOUNTER1_HI_PERF_COUNT_SHIFT 0
+
+#define PA_SU_PERFCOUNTER1_HI_PERF_COUNT_MASK 0x0000ffff
+
+#define PA_SU_PERFCOUNTER1_HI_MASK \
+ (PA_SU_PERFCOUNTER1_HI_PERF_COUNT_MASK)
+
+#define PA_SU_PERFCOUNTER1_HI(perf_count) \
+ ((perf_count << PA_SU_PERFCOUNTER1_HI_PERF_COUNT_SHIFT))
+
+#define PA_SU_PERFCOUNTER1_HI_GET_PERF_COUNT(pa_su_perfcounter1_hi) \
+ ((pa_su_perfcounter1_hi & PA_SU_PERFCOUNTER1_HI_PERF_COUNT_MASK) >> PA_SU_PERFCOUNTER1_HI_PERF_COUNT_SHIFT)
+
+#define PA_SU_PERFCOUNTER1_HI_SET_PERF_COUNT(pa_su_perfcounter1_hi_reg, perf_count) \
+ pa_su_perfcounter1_hi_reg = (pa_su_perfcounter1_hi_reg & ~PA_SU_PERFCOUNTER1_HI_PERF_COUNT_MASK) | (perf_count << PA_SU_PERFCOUNTER1_HI_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter1_hi_t {
+ unsigned int perf_count : PA_SU_PERFCOUNTER1_HI_PERF_COUNT_SIZE;
+ unsigned int : 16;
+ } pa_su_perfcounter1_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter1_hi_t {
+ unsigned int : 16;
+ unsigned int perf_count : PA_SU_PERFCOUNTER1_HI_PERF_COUNT_SIZE;
+ } pa_su_perfcounter1_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_perfcounter1_hi_t f;
+} pa_su_perfcounter1_hi_u;
+
+
+/*
+ * PA_SU_PERFCOUNTER2_LOW struct
+ */
+
+#define PA_SU_PERFCOUNTER2_LOW_PERF_COUNT_SIZE 32
+
+#define PA_SU_PERFCOUNTER2_LOW_PERF_COUNT_SHIFT 0
+
+#define PA_SU_PERFCOUNTER2_LOW_PERF_COUNT_MASK 0xffffffff
+
+#define PA_SU_PERFCOUNTER2_LOW_MASK \
+ (PA_SU_PERFCOUNTER2_LOW_PERF_COUNT_MASK)
+
+#define PA_SU_PERFCOUNTER2_LOW(perf_count) \
+ ((perf_count << PA_SU_PERFCOUNTER2_LOW_PERF_COUNT_SHIFT))
+
+#define PA_SU_PERFCOUNTER2_LOW_GET_PERF_COUNT(pa_su_perfcounter2_low) \
+ ((pa_su_perfcounter2_low & PA_SU_PERFCOUNTER2_LOW_PERF_COUNT_MASK) >> PA_SU_PERFCOUNTER2_LOW_PERF_COUNT_SHIFT)
+
+#define PA_SU_PERFCOUNTER2_LOW_SET_PERF_COUNT(pa_su_perfcounter2_low_reg, perf_count) \
+ pa_su_perfcounter2_low_reg = (pa_su_perfcounter2_low_reg & ~PA_SU_PERFCOUNTER2_LOW_PERF_COUNT_MASK) | (perf_count << PA_SU_PERFCOUNTER2_LOW_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter2_low_t {
+ unsigned int perf_count : PA_SU_PERFCOUNTER2_LOW_PERF_COUNT_SIZE;
+ } pa_su_perfcounter2_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter2_low_t {
+ unsigned int perf_count : PA_SU_PERFCOUNTER2_LOW_PERF_COUNT_SIZE;
+ } pa_su_perfcounter2_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_perfcounter2_low_t f;
+} pa_su_perfcounter2_low_u;
+
+
+/*
+ * PA_SU_PERFCOUNTER2_HI struct
+ */
+
+#define PA_SU_PERFCOUNTER2_HI_PERF_COUNT_SIZE 16
+
+#define PA_SU_PERFCOUNTER2_HI_PERF_COUNT_SHIFT 0
+
+#define PA_SU_PERFCOUNTER2_HI_PERF_COUNT_MASK 0x0000ffff
+
+#define PA_SU_PERFCOUNTER2_HI_MASK \
+ (PA_SU_PERFCOUNTER2_HI_PERF_COUNT_MASK)
+
+#define PA_SU_PERFCOUNTER2_HI(perf_count) \
+ ((perf_count << PA_SU_PERFCOUNTER2_HI_PERF_COUNT_SHIFT))
+
+#define PA_SU_PERFCOUNTER2_HI_GET_PERF_COUNT(pa_su_perfcounter2_hi) \
+ ((pa_su_perfcounter2_hi & PA_SU_PERFCOUNTER2_HI_PERF_COUNT_MASK) >> PA_SU_PERFCOUNTER2_HI_PERF_COUNT_SHIFT)
+
+#define PA_SU_PERFCOUNTER2_HI_SET_PERF_COUNT(pa_su_perfcounter2_hi_reg, perf_count) \
+ pa_su_perfcounter2_hi_reg = (pa_su_perfcounter2_hi_reg & ~PA_SU_PERFCOUNTER2_HI_PERF_COUNT_MASK) | (perf_count << PA_SU_PERFCOUNTER2_HI_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter2_hi_t {
+ unsigned int perf_count : PA_SU_PERFCOUNTER2_HI_PERF_COUNT_SIZE;
+ unsigned int : 16;
+ } pa_su_perfcounter2_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter2_hi_t {
+ unsigned int : 16;
+ unsigned int perf_count : PA_SU_PERFCOUNTER2_HI_PERF_COUNT_SIZE;
+ } pa_su_perfcounter2_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_perfcounter2_hi_t f;
+} pa_su_perfcounter2_hi_u;
+
+
+/*
+ * PA_SU_PERFCOUNTER3_LOW struct
+ */
+
+#define PA_SU_PERFCOUNTER3_LOW_PERF_COUNT_SIZE 32
+
+#define PA_SU_PERFCOUNTER3_LOW_PERF_COUNT_SHIFT 0
+
+#define PA_SU_PERFCOUNTER3_LOW_PERF_COUNT_MASK 0xffffffff
+
+#define PA_SU_PERFCOUNTER3_LOW_MASK \
+ (PA_SU_PERFCOUNTER3_LOW_PERF_COUNT_MASK)
+
+#define PA_SU_PERFCOUNTER3_LOW(perf_count) \
+ ((perf_count << PA_SU_PERFCOUNTER3_LOW_PERF_COUNT_SHIFT))
+
+#define PA_SU_PERFCOUNTER3_LOW_GET_PERF_COUNT(pa_su_perfcounter3_low) \
+ ((pa_su_perfcounter3_low & PA_SU_PERFCOUNTER3_LOW_PERF_COUNT_MASK) >> PA_SU_PERFCOUNTER3_LOW_PERF_COUNT_SHIFT)
+
+#define PA_SU_PERFCOUNTER3_LOW_SET_PERF_COUNT(pa_su_perfcounter3_low_reg, perf_count) \
+ pa_su_perfcounter3_low_reg = (pa_su_perfcounter3_low_reg & ~PA_SU_PERFCOUNTER3_LOW_PERF_COUNT_MASK) | (perf_count << PA_SU_PERFCOUNTER3_LOW_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter3_low_t {
+ unsigned int perf_count : PA_SU_PERFCOUNTER3_LOW_PERF_COUNT_SIZE;
+ } pa_su_perfcounter3_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter3_low_t {
+ unsigned int perf_count : PA_SU_PERFCOUNTER3_LOW_PERF_COUNT_SIZE;
+ } pa_su_perfcounter3_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_perfcounter3_low_t f;
+} pa_su_perfcounter3_low_u;
+
+
+/*
+ * PA_SU_PERFCOUNTER3_HI struct
+ */
+
+#define PA_SU_PERFCOUNTER3_HI_PERF_COUNT_SIZE 16
+
+#define PA_SU_PERFCOUNTER3_HI_PERF_COUNT_SHIFT 0
+
+#define PA_SU_PERFCOUNTER3_HI_PERF_COUNT_MASK 0x0000ffff
+
+#define PA_SU_PERFCOUNTER3_HI_MASK \
+ (PA_SU_PERFCOUNTER3_HI_PERF_COUNT_MASK)
+
+#define PA_SU_PERFCOUNTER3_HI(perf_count) \
+ ((perf_count << PA_SU_PERFCOUNTER3_HI_PERF_COUNT_SHIFT))
+
+#define PA_SU_PERFCOUNTER3_HI_GET_PERF_COUNT(pa_su_perfcounter3_hi) \
+ ((pa_su_perfcounter3_hi & PA_SU_PERFCOUNTER3_HI_PERF_COUNT_MASK) >> PA_SU_PERFCOUNTER3_HI_PERF_COUNT_SHIFT)
+
+#define PA_SU_PERFCOUNTER3_HI_SET_PERF_COUNT(pa_su_perfcounter3_hi_reg, perf_count) \
+ pa_su_perfcounter3_hi_reg = (pa_su_perfcounter3_hi_reg & ~PA_SU_PERFCOUNTER3_HI_PERF_COUNT_MASK) | (perf_count << PA_SU_PERFCOUNTER3_HI_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter3_hi_t {
+ unsigned int perf_count : PA_SU_PERFCOUNTER3_HI_PERF_COUNT_SIZE;
+ unsigned int : 16;
+ } pa_su_perfcounter3_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter3_hi_t {
+ unsigned int : 16;
+ unsigned int perf_count : PA_SU_PERFCOUNTER3_HI_PERF_COUNT_SIZE;
+ } pa_su_perfcounter3_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_perfcounter3_hi_t f;
+} pa_su_perfcounter3_hi_u;
+
+
+/*
+ * PA_SC_WINDOW_OFFSET struct
+ */
+
+#define PA_SC_WINDOW_OFFSET_WINDOW_X_OFFSET_SIZE 15
+#define PA_SC_WINDOW_OFFSET_WINDOW_Y_OFFSET_SIZE 15
+
+#define PA_SC_WINDOW_OFFSET_WINDOW_X_OFFSET_SHIFT 0
+#define PA_SC_WINDOW_OFFSET_WINDOW_Y_OFFSET_SHIFT 16
+
+#define PA_SC_WINDOW_OFFSET_WINDOW_X_OFFSET_MASK 0x00007fff
+#define PA_SC_WINDOW_OFFSET_WINDOW_Y_OFFSET_MASK 0x7fff0000
+
+#define PA_SC_WINDOW_OFFSET_MASK \
+ (PA_SC_WINDOW_OFFSET_WINDOW_X_OFFSET_MASK | \
+ PA_SC_WINDOW_OFFSET_WINDOW_Y_OFFSET_MASK)
+
+#define PA_SC_WINDOW_OFFSET(window_x_offset, window_y_offset) \
+ ((window_x_offset << PA_SC_WINDOW_OFFSET_WINDOW_X_OFFSET_SHIFT) | \
+ (window_y_offset << PA_SC_WINDOW_OFFSET_WINDOW_Y_OFFSET_SHIFT))
+
+#define PA_SC_WINDOW_OFFSET_GET_WINDOW_X_OFFSET(pa_sc_window_offset) \
+ ((pa_sc_window_offset & PA_SC_WINDOW_OFFSET_WINDOW_X_OFFSET_MASK) >> PA_SC_WINDOW_OFFSET_WINDOW_X_OFFSET_SHIFT)
+#define PA_SC_WINDOW_OFFSET_GET_WINDOW_Y_OFFSET(pa_sc_window_offset) \
+ ((pa_sc_window_offset & PA_SC_WINDOW_OFFSET_WINDOW_Y_OFFSET_MASK) >> PA_SC_WINDOW_OFFSET_WINDOW_Y_OFFSET_SHIFT)
+
+#define PA_SC_WINDOW_OFFSET_SET_WINDOW_X_OFFSET(pa_sc_window_offset_reg, window_x_offset) \
+ pa_sc_window_offset_reg = (pa_sc_window_offset_reg & ~PA_SC_WINDOW_OFFSET_WINDOW_X_OFFSET_MASK) | (window_x_offset << PA_SC_WINDOW_OFFSET_WINDOW_X_OFFSET_SHIFT)
+#define PA_SC_WINDOW_OFFSET_SET_WINDOW_Y_OFFSET(pa_sc_window_offset_reg, window_y_offset) \
+ pa_sc_window_offset_reg = (pa_sc_window_offset_reg & ~PA_SC_WINDOW_OFFSET_WINDOW_Y_OFFSET_MASK) | (window_y_offset << PA_SC_WINDOW_OFFSET_WINDOW_Y_OFFSET_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_window_offset_t {
+ unsigned int window_x_offset : PA_SC_WINDOW_OFFSET_WINDOW_X_OFFSET_SIZE;
+ unsigned int : 1;
+ unsigned int window_y_offset : PA_SC_WINDOW_OFFSET_WINDOW_Y_OFFSET_SIZE;
+ unsigned int : 1;
+ } pa_sc_window_offset_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_window_offset_t {
+ unsigned int : 1;
+ unsigned int window_y_offset : PA_SC_WINDOW_OFFSET_WINDOW_Y_OFFSET_SIZE;
+ unsigned int : 1;
+ unsigned int window_x_offset : PA_SC_WINDOW_OFFSET_WINDOW_X_OFFSET_SIZE;
+ } pa_sc_window_offset_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_window_offset_t f;
+} pa_sc_window_offset_u;
+
+
+/*
+ * PA_SC_AA_CONFIG struct
+ */
+
+#define PA_SC_AA_CONFIG_MSAA_NUM_SAMPLES_SIZE 3
+#define PA_SC_AA_CONFIG_MAX_SAMPLE_DIST_SIZE 4
+
+#define PA_SC_AA_CONFIG_MSAA_NUM_SAMPLES_SHIFT 0
+#define PA_SC_AA_CONFIG_MAX_SAMPLE_DIST_SHIFT 13
+
+#define PA_SC_AA_CONFIG_MSAA_NUM_SAMPLES_MASK 0x00000007
+#define PA_SC_AA_CONFIG_MAX_SAMPLE_DIST_MASK 0x0001e000
+
+#define PA_SC_AA_CONFIG_MASK \
+ (PA_SC_AA_CONFIG_MSAA_NUM_SAMPLES_MASK | \
+ PA_SC_AA_CONFIG_MAX_SAMPLE_DIST_MASK)
+
+#define PA_SC_AA_CONFIG(msaa_num_samples, max_sample_dist) \
+ ((msaa_num_samples << PA_SC_AA_CONFIG_MSAA_NUM_SAMPLES_SHIFT) | \
+ (max_sample_dist << PA_SC_AA_CONFIG_MAX_SAMPLE_DIST_SHIFT))
+
+#define PA_SC_AA_CONFIG_GET_MSAA_NUM_SAMPLES(pa_sc_aa_config) \
+ ((pa_sc_aa_config & PA_SC_AA_CONFIG_MSAA_NUM_SAMPLES_MASK) >> PA_SC_AA_CONFIG_MSAA_NUM_SAMPLES_SHIFT)
+#define PA_SC_AA_CONFIG_GET_MAX_SAMPLE_DIST(pa_sc_aa_config) \
+ ((pa_sc_aa_config & PA_SC_AA_CONFIG_MAX_SAMPLE_DIST_MASK) >> PA_SC_AA_CONFIG_MAX_SAMPLE_DIST_SHIFT)
+
+#define PA_SC_AA_CONFIG_SET_MSAA_NUM_SAMPLES(pa_sc_aa_config_reg, msaa_num_samples) \
+ pa_sc_aa_config_reg = (pa_sc_aa_config_reg & ~PA_SC_AA_CONFIG_MSAA_NUM_SAMPLES_MASK) | (msaa_num_samples << PA_SC_AA_CONFIG_MSAA_NUM_SAMPLES_SHIFT)
+#define PA_SC_AA_CONFIG_SET_MAX_SAMPLE_DIST(pa_sc_aa_config_reg, max_sample_dist) \
+ pa_sc_aa_config_reg = (pa_sc_aa_config_reg & ~PA_SC_AA_CONFIG_MAX_SAMPLE_DIST_MASK) | (max_sample_dist << PA_SC_AA_CONFIG_MAX_SAMPLE_DIST_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_aa_config_t {
+ unsigned int msaa_num_samples : PA_SC_AA_CONFIG_MSAA_NUM_SAMPLES_SIZE;
+ unsigned int : 10;
+ unsigned int max_sample_dist : PA_SC_AA_CONFIG_MAX_SAMPLE_DIST_SIZE;
+ unsigned int : 15;
+ } pa_sc_aa_config_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_aa_config_t {
+ unsigned int : 15;
+ unsigned int max_sample_dist : PA_SC_AA_CONFIG_MAX_SAMPLE_DIST_SIZE;
+ unsigned int : 10;
+ unsigned int msaa_num_samples : PA_SC_AA_CONFIG_MSAA_NUM_SAMPLES_SIZE;
+ } pa_sc_aa_config_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_aa_config_t f;
+} pa_sc_aa_config_u;
+
+
+/*
+ * PA_SC_AA_MASK struct
+ */
+
+#define PA_SC_AA_MASK_AA_MASK_SIZE 16
+
+#define PA_SC_AA_MASK_AA_MASK_SHIFT 0
+
+#define PA_SC_AA_MASK_AA_MASK_MASK 0x0000ffff
+
+#define PA_SC_AA_MASK_MASK \
+ (PA_SC_AA_MASK_AA_MASK_MASK)
+
+#define PA_SC_AA_MASK(aa_mask) \
+ ((aa_mask << PA_SC_AA_MASK_AA_MASK_SHIFT))
+
+#define PA_SC_AA_MASK_GET_AA_MASK(pa_sc_aa_mask) \
+ ((pa_sc_aa_mask & PA_SC_AA_MASK_AA_MASK_MASK) >> PA_SC_AA_MASK_AA_MASK_SHIFT)
+
+#define PA_SC_AA_MASK_SET_AA_MASK(pa_sc_aa_mask_reg, aa_mask) \
+ pa_sc_aa_mask_reg = (pa_sc_aa_mask_reg & ~PA_SC_AA_MASK_AA_MASK_MASK) | (aa_mask << PA_SC_AA_MASK_AA_MASK_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_aa_mask_t {
+ unsigned int aa_mask : PA_SC_AA_MASK_AA_MASK_SIZE;
+ unsigned int : 16;
+ } pa_sc_aa_mask_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_aa_mask_t {
+ unsigned int : 16;
+ unsigned int aa_mask : PA_SC_AA_MASK_AA_MASK_SIZE;
+ } pa_sc_aa_mask_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_aa_mask_t f;
+} pa_sc_aa_mask_u;
+
+
+/*
+ * PA_SC_LINE_STIPPLE struct
+ */
+
+#define PA_SC_LINE_STIPPLE_LINE_PATTERN_SIZE 16
+#define PA_SC_LINE_STIPPLE_REPEAT_COUNT_SIZE 8
+#define PA_SC_LINE_STIPPLE_PATTERN_BIT_ORDER_SIZE 1
+#define PA_SC_LINE_STIPPLE_AUTO_RESET_CNTL_SIZE 2
+
+#define PA_SC_LINE_STIPPLE_LINE_PATTERN_SHIFT 0
+#define PA_SC_LINE_STIPPLE_REPEAT_COUNT_SHIFT 16
+#define PA_SC_LINE_STIPPLE_PATTERN_BIT_ORDER_SHIFT 28
+#define PA_SC_LINE_STIPPLE_AUTO_RESET_CNTL_SHIFT 29
+
+#define PA_SC_LINE_STIPPLE_LINE_PATTERN_MASK 0x0000ffff
+#define PA_SC_LINE_STIPPLE_REPEAT_COUNT_MASK 0x00ff0000
+#define PA_SC_LINE_STIPPLE_PATTERN_BIT_ORDER_MASK 0x10000000
+#define PA_SC_LINE_STIPPLE_AUTO_RESET_CNTL_MASK 0x60000000
+
+#define PA_SC_LINE_STIPPLE_MASK \
+ (PA_SC_LINE_STIPPLE_LINE_PATTERN_MASK | \
+ PA_SC_LINE_STIPPLE_REPEAT_COUNT_MASK | \
+ PA_SC_LINE_STIPPLE_PATTERN_BIT_ORDER_MASK | \
+ PA_SC_LINE_STIPPLE_AUTO_RESET_CNTL_MASK)
+
+#define PA_SC_LINE_STIPPLE(line_pattern, repeat_count, pattern_bit_order, auto_reset_cntl) \
+ ((line_pattern << PA_SC_LINE_STIPPLE_LINE_PATTERN_SHIFT) | \
+ (repeat_count << PA_SC_LINE_STIPPLE_REPEAT_COUNT_SHIFT) | \
+ (pattern_bit_order << PA_SC_LINE_STIPPLE_PATTERN_BIT_ORDER_SHIFT) | \
+ (auto_reset_cntl << PA_SC_LINE_STIPPLE_AUTO_RESET_CNTL_SHIFT))
+
+#define PA_SC_LINE_STIPPLE_GET_LINE_PATTERN(pa_sc_line_stipple) \
+ ((pa_sc_line_stipple & PA_SC_LINE_STIPPLE_LINE_PATTERN_MASK) >> PA_SC_LINE_STIPPLE_LINE_PATTERN_SHIFT)
+#define PA_SC_LINE_STIPPLE_GET_REPEAT_COUNT(pa_sc_line_stipple) \
+ ((pa_sc_line_stipple & PA_SC_LINE_STIPPLE_REPEAT_COUNT_MASK) >> PA_SC_LINE_STIPPLE_REPEAT_COUNT_SHIFT)
+#define PA_SC_LINE_STIPPLE_GET_PATTERN_BIT_ORDER(pa_sc_line_stipple) \
+ ((pa_sc_line_stipple & PA_SC_LINE_STIPPLE_PATTERN_BIT_ORDER_MASK) >> PA_SC_LINE_STIPPLE_PATTERN_BIT_ORDER_SHIFT)
+#define PA_SC_LINE_STIPPLE_GET_AUTO_RESET_CNTL(pa_sc_line_stipple) \
+ ((pa_sc_line_stipple & PA_SC_LINE_STIPPLE_AUTO_RESET_CNTL_MASK) >> PA_SC_LINE_STIPPLE_AUTO_RESET_CNTL_SHIFT)
+
+#define PA_SC_LINE_STIPPLE_SET_LINE_PATTERN(pa_sc_line_stipple_reg, line_pattern) \
+ pa_sc_line_stipple_reg = (pa_sc_line_stipple_reg & ~PA_SC_LINE_STIPPLE_LINE_PATTERN_MASK) | (line_pattern << PA_SC_LINE_STIPPLE_LINE_PATTERN_SHIFT)
+#define PA_SC_LINE_STIPPLE_SET_REPEAT_COUNT(pa_sc_line_stipple_reg, repeat_count) \
+ pa_sc_line_stipple_reg = (pa_sc_line_stipple_reg & ~PA_SC_LINE_STIPPLE_REPEAT_COUNT_MASK) | (repeat_count << PA_SC_LINE_STIPPLE_REPEAT_COUNT_SHIFT)
+#define PA_SC_LINE_STIPPLE_SET_PATTERN_BIT_ORDER(pa_sc_line_stipple_reg, pattern_bit_order) \
+ pa_sc_line_stipple_reg = (pa_sc_line_stipple_reg & ~PA_SC_LINE_STIPPLE_PATTERN_BIT_ORDER_MASK) | (pattern_bit_order << PA_SC_LINE_STIPPLE_PATTERN_BIT_ORDER_SHIFT)
+#define PA_SC_LINE_STIPPLE_SET_AUTO_RESET_CNTL(pa_sc_line_stipple_reg, auto_reset_cntl) \
+ pa_sc_line_stipple_reg = (pa_sc_line_stipple_reg & ~PA_SC_LINE_STIPPLE_AUTO_RESET_CNTL_MASK) | (auto_reset_cntl << PA_SC_LINE_STIPPLE_AUTO_RESET_CNTL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_line_stipple_t {
+ unsigned int line_pattern : PA_SC_LINE_STIPPLE_LINE_PATTERN_SIZE;
+ unsigned int repeat_count : PA_SC_LINE_STIPPLE_REPEAT_COUNT_SIZE;
+ unsigned int : 4;
+ unsigned int pattern_bit_order : PA_SC_LINE_STIPPLE_PATTERN_BIT_ORDER_SIZE;
+ unsigned int auto_reset_cntl : PA_SC_LINE_STIPPLE_AUTO_RESET_CNTL_SIZE;
+ unsigned int : 1;
+ } pa_sc_line_stipple_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_line_stipple_t {
+ unsigned int : 1;
+ unsigned int auto_reset_cntl : PA_SC_LINE_STIPPLE_AUTO_RESET_CNTL_SIZE;
+ unsigned int pattern_bit_order : PA_SC_LINE_STIPPLE_PATTERN_BIT_ORDER_SIZE;
+ unsigned int : 4;
+ unsigned int repeat_count : PA_SC_LINE_STIPPLE_REPEAT_COUNT_SIZE;
+ unsigned int line_pattern : PA_SC_LINE_STIPPLE_LINE_PATTERN_SIZE;
+ } pa_sc_line_stipple_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_line_stipple_t f;
+} pa_sc_line_stipple_u;
+
+
+/*
+ * PA_SC_LINE_CNTL struct
+ */
+
+#define PA_SC_LINE_CNTL_BRES_CNTL_SIZE 8
+#define PA_SC_LINE_CNTL_USE_BRES_CNTL_SIZE 1
+#define PA_SC_LINE_CNTL_EXPAND_LINE_WIDTH_SIZE 1
+#define PA_SC_LINE_CNTL_LAST_PIXEL_SIZE 1
+
+#define PA_SC_LINE_CNTL_BRES_CNTL_SHIFT 0
+#define PA_SC_LINE_CNTL_USE_BRES_CNTL_SHIFT 8
+#define PA_SC_LINE_CNTL_EXPAND_LINE_WIDTH_SHIFT 9
+#define PA_SC_LINE_CNTL_LAST_PIXEL_SHIFT 10
+
+#define PA_SC_LINE_CNTL_BRES_CNTL_MASK 0x000000ff
+#define PA_SC_LINE_CNTL_USE_BRES_CNTL_MASK 0x00000100
+#define PA_SC_LINE_CNTL_EXPAND_LINE_WIDTH_MASK 0x00000200
+#define PA_SC_LINE_CNTL_LAST_PIXEL_MASK 0x00000400
+
+#define PA_SC_LINE_CNTL_MASK \
+ (PA_SC_LINE_CNTL_BRES_CNTL_MASK | \
+ PA_SC_LINE_CNTL_USE_BRES_CNTL_MASK | \
+ PA_SC_LINE_CNTL_EXPAND_LINE_WIDTH_MASK | \
+ PA_SC_LINE_CNTL_LAST_PIXEL_MASK)
+
+#define PA_SC_LINE_CNTL(bres_cntl, use_bres_cntl, expand_line_width, last_pixel) \
+ ((bres_cntl << PA_SC_LINE_CNTL_BRES_CNTL_SHIFT) | \
+ (use_bres_cntl << PA_SC_LINE_CNTL_USE_BRES_CNTL_SHIFT) | \
+ (expand_line_width << PA_SC_LINE_CNTL_EXPAND_LINE_WIDTH_SHIFT) | \
+ (last_pixel << PA_SC_LINE_CNTL_LAST_PIXEL_SHIFT))
+
+#define PA_SC_LINE_CNTL_GET_BRES_CNTL(pa_sc_line_cntl) \
+ ((pa_sc_line_cntl & PA_SC_LINE_CNTL_BRES_CNTL_MASK) >> PA_SC_LINE_CNTL_BRES_CNTL_SHIFT)
+#define PA_SC_LINE_CNTL_GET_USE_BRES_CNTL(pa_sc_line_cntl) \
+ ((pa_sc_line_cntl & PA_SC_LINE_CNTL_USE_BRES_CNTL_MASK) >> PA_SC_LINE_CNTL_USE_BRES_CNTL_SHIFT)
+#define PA_SC_LINE_CNTL_GET_EXPAND_LINE_WIDTH(pa_sc_line_cntl) \
+ ((pa_sc_line_cntl & PA_SC_LINE_CNTL_EXPAND_LINE_WIDTH_MASK) >> PA_SC_LINE_CNTL_EXPAND_LINE_WIDTH_SHIFT)
+#define PA_SC_LINE_CNTL_GET_LAST_PIXEL(pa_sc_line_cntl) \
+ ((pa_sc_line_cntl & PA_SC_LINE_CNTL_LAST_PIXEL_MASK) >> PA_SC_LINE_CNTL_LAST_PIXEL_SHIFT)
+
+#define PA_SC_LINE_CNTL_SET_BRES_CNTL(pa_sc_line_cntl_reg, bres_cntl) \
+ pa_sc_line_cntl_reg = (pa_sc_line_cntl_reg & ~PA_SC_LINE_CNTL_BRES_CNTL_MASK) | (bres_cntl << PA_SC_LINE_CNTL_BRES_CNTL_SHIFT)
+#define PA_SC_LINE_CNTL_SET_USE_BRES_CNTL(pa_sc_line_cntl_reg, use_bres_cntl) \
+ pa_sc_line_cntl_reg = (pa_sc_line_cntl_reg & ~PA_SC_LINE_CNTL_USE_BRES_CNTL_MASK) | (use_bres_cntl << PA_SC_LINE_CNTL_USE_BRES_CNTL_SHIFT)
+#define PA_SC_LINE_CNTL_SET_EXPAND_LINE_WIDTH(pa_sc_line_cntl_reg, expand_line_width) \
+ pa_sc_line_cntl_reg = (pa_sc_line_cntl_reg & ~PA_SC_LINE_CNTL_EXPAND_LINE_WIDTH_MASK) | (expand_line_width << PA_SC_LINE_CNTL_EXPAND_LINE_WIDTH_SHIFT)
+#define PA_SC_LINE_CNTL_SET_LAST_PIXEL(pa_sc_line_cntl_reg, last_pixel) \
+ pa_sc_line_cntl_reg = (pa_sc_line_cntl_reg & ~PA_SC_LINE_CNTL_LAST_PIXEL_MASK) | (last_pixel << PA_SC_LINE_CNTL_LAST_PIXEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_line_cntl_t {
+ unsigned int bres_cntl : PA_SC_LINE_CNTL_BRES_CNTL_SIZE;
+ unsigned int use_bres_cntl : PA_SC_LINE_CNTL_USE_BRES_CNTL_SIZE;
+ unsigned int expand_line_width : PA_SC_LINE_CNTL_EXPAND_LINE_WIDTH_SIZE;
+ unsigned int last_pixel : PA_SC_LINE_CNTL_LAST_PIXEL_SIZE;
+ unsigned int : 21;
+ } pa_sc_line_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_line_cntl_t {
+ unsigned int : 21;
+ unsigned int last_pixel : PA_SC_LINE_CNTL_LAST_PIXEL_SIZE;
+ unsigned int expand_line_width : PA_SC_LINE_CNTL_EXPAND_LINE_WIDTH_SIZE;
+ unsigned int use_bres_cntl : PA_SC_LINE_CNTL_USE_BRES_CNTL_SIZE;
+ unsigned int bres_cntl : PA_SC_LINE_CNTL_BRES_CNTL_SIZE;
+ } pa_sc_line_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_line_cntl_t f;
+} pa_sc_line_cntl_u;
+
+
+/*
+ * PA_SC_WINDOW_SCISSOR_TL struct
+ */
+
+#define PA_SC_WINDOW_SCISSOR_TL_TL_X_SIZE 14
+#define PA_SC_WINDOW_SCISSOR_TL_TL_Y_SIZE 14
+#define PA_SC_WINDOW_SCISSOR_TL_WINDOW_OFFSET_DISABLE_SIZE 1
+
+#define PA_SC_WINDOW_SCISSOR_TL_TL_X_SHIFT 0
+#define PA_SC_WINDOW_SCISSOR_TL_TL_Y_SHIFT 16
+#define PA_SC_WINDOW_SCISSOR_TL_WINDOW_OFFSET_DISABLE_SHIFT 31
+
+#define PA_SC_WINDOW_SCISSOR_TL_TL_X_MASK 0x00003fff
+#define PA_SC_WINDOW_SCISSOR_TL_TL_Y_MASK 0x3fff0000
+#define PA_SC_WINDOW_SCISSOR_TL_WINDOW_OFFSET_DISABLE_MASK 0x80000000
+
+#define PA_SC_WINDOW_SCISSOR_TL_MASK \
+ (PA_SC_WINDOW_SCISSOR_TL_TL_X_MASK | \
+ PA_SC_WINDOW_SCISSOR_TL_TL_Y_MASK | \
+ PA_SC_WINDOW_SCISSOR_TL_WINDOW_OFFSET_DISABLE_MASK)
+
+#define PA_SC_WINDOW_SCISSOR_TL(tl_x, tl_y, window_offset_disable) \
+ ((tl_x << PA_SC_WINDOW_SCISSOR_TL_TL_X_SHIFT) | \
+ (tl_y << PA_SC_WINDOW_SCISSOR_TL_TL_Y_SHIFT) | \
+ (window_offset_disable << PA_SC_WINDOW_SCISSOR_TL_WINDOW_OFFSET_DISABLE_SHIFT))
+
+#define PA_SC_WINDOW_SCISSOR_TL_GET_TL_X(pa_sc_window_scissor_tl) \
+ ((pa_sc_window_scissor_tl & PA_SC_WINDOW_SCISSOR_TL_TL_X_MASK) >> PA_SC_WINDOW_SCISSOR_TL_TL_X_SHIFT)
+#define PA_SC_WINDOW_SCISSOR_TL_GET_TL_Y(pa_sc_window_scissor_tl) \
+ ((pa_sc_window_scissor_tl & PA_SC_WINDOW_SCISSOR_TL_TL_Y_MASK) >> PA_SC_WINDOW_SCISSOR_TL_TL_Y_SHIFT)
+#define PA_SC_WINDOW_SCISSOR_TL_GET_WINDOW_OFFSET_DISABLE(pa_sc_window_scissor_tl) \
+ ((pa_sc_window_scissor_tl & PA_SC_WINDOW_SCISSOR_TL_WINDOW_OFFSET_DISABLE_MASK) >> PA_SC_WINDOW_SCISSOR_TL_WINDOW_OFFSET_DISABLE_SHIFT)
+
+#define PA_SC_WINDOW_SCISSOR_TL_SET_TL_X(pa_sc_window_scissor_tl_reg, tl_x) \
+ pa_sc_window_scissor_tl_reg = (pa_sc_window_scissor_tl_reg & ~PA_SC_WINDOW_SCISSOR_TL_TL_X_MASK) | (tl_x << PA_SC_WINDOW_SCISSOR_TL_TL_X_SHIFT)
+#define PA_SC_WINDOW_SCISSOR_TL_SET_TL_Y(pa_sc_window_scissor_tl_reg, tl_y) \
+ pa_sc_window_scissor_tl_reg = (pa_sc_window_scissor_tl_reg & ~PA_SC_WINDOW_SCISSOR_TL_TL_Y_MASK) | (tl_y << PA_SC_WINDOW_SCISSOR_TL_TL_Y_SHIFT)
+#define PA_SC_WINDOW_SCISSOR_TL_SET_WINDOW_OFFSET_DISABLE(pa_sc_window_scissor_tl_reg, window_offset_disable) \
+ pa_sc_window_scissor_tl_reg = (pa_sc_window_scissor_tl_reg & ~PA_SC_WINDOW_SCISSOR_TL_WINDOW_OFFSET_DISABLE_MASK) | (window_offset_disable << PA_SC_WINDOW_SCISSOR_TL_WINDOW_OFFSET_DISABLE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_window_scissor_tl_t {
+ unsigned int tl_x : PA_SC_WINDOW_SCISSOR_TL_TL_X_SIZE;
+ unsigned int : 2;
+ unsigned int tl_y : PA_SC_WINDOW_SCISSOR_TL_TL_Y_SIZE;
+ unsigned int : 1;
+ unsigned int window_offset_disable : PA_SC_WINDOW_SCISSOR_TL_WINDOW_OFFSET_DISABLE_SIZE;
+ } pa_sc_window_scissor_tl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_window_scissor_tl_t {
+ unsigned int window_offset_disable : PA_SC_WINDOW_SCISSOR_TL_WINDOW_OFFSET_DISABLE_SIZE;
+ unsigned int : 1;
+ unsigned int tl_y : PA_SC_WINDOW_SCISSOR_TL_TL_Y_SIZE;
+ unsigned int : 2;
+ unsigned int tl_x : PA_SC_WINDOW_SCISSOR_TL_TL_X_SIZE;
+ } pa_sc_window_scissor_tl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_window_scissor_tl_t f;
+} pa_sc_window_scissor_tl_u;
+
+
+/*
+ * PA_SC_WINDOW_SCISSOR_BR struct
+ */
+
+#define PA_SC_WINDOW_SCISSOR_BR_BR_X_SIZE 14
+#define PA_SC_WINDOW_SCISSOR_BR_BR_Y_SIZE 14
+
+#define PA_SC_WINDOW_SCISSOR_BR_BR_X_SHIFT 0
+#define PA_SC_WINDOW_SCISSOR_BR_BR_Y_SHIFT 16
+
+#define PA_SC_WINDOW_SCISSOR_BR_BR_X_MASK 0x00003fff
+#define PA_SC_WINDOW_SCISSOR_BR_BR_Y_MASK 0x3fff0000
+
+#define PA_SC_WINDOW_SCISSOR_BR_MASK \
+ (PA_SC_WINDOW_SCISSOR_BR_BR_X_MASK | \
+ PA_SC_WINDOW_SCISSOR_BR_BR_Y_MASK)
+
+#define PA_SC_WINDOW_SCISSOR_BR(br_x, br_y) \
+ ((br_x << PA_SC_WINDOW_SCISSOR_BR_BR_X_SHIFT) | \
+ (br_y << PA_SC_WINDOW_SCISSOR_BR_BR_Y_SHIFT))
+
+#define PA_SC_WINDOW_SCISSOR_BR_GET_BR_X(pa_sc_window_scissor_br) \
+ ((pa_sc_window_scissor_br & PA_SC_WINDOW_SCISSOR_BR_BR_X_MASK) >> PA_SC_WINDOW_SCISSOR_BR_BR_X_SHIFT)
+#define PA_SC_WINDOW_SCISSOR_BR_GET_BR_Y(pa_sc_window_scissor_br) \
+ ((pa_sc_window_scissor_br & PA_SC_WINDOW_SCISSOR_BR_BR_Y_MASK) >> PA_SC_WINDOW_SCISSOR_BR_BR_Y_SHIFT)
+
+#define PA_SC_WINDOW_SCISSOR_BR_SET_BR_X(pa_sc_window_scissor_br_reg, br_x) \
+ pa_sc_window_scissor_br_reg = (pa_sc_window_scissor_br_reg & ~PA_SC_WINDOW_SCISSOR_BR_BR_X_MASK) | (br_x << PA_SC_WINDOW_SCISSOR_BR_BR_X_SHIFT)
+#define PA_SC_WINDOW_SCISSOR_BR_SET_BR_Y(pa_sc_window_scissor_br_reg, br_y) \
+ pa_sc_window_scissor_br_reg = (pa_sc_window_scissor_br_reg & ~PA_SC_WINDOW_SCISSOR_BR_BR_Y_MASK) | (br_y << PA_SC_WINDOW_SCISSOR_BR_BR_Y_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_window_scissor_br_t {
+ unsigned int br_x : PA_SC_WINDOW_SCISSOR_BR_BR_X_SIZE;
+ unsigned int : 2;
+ unsigned int br_y : PA_SC_WINDOW_SCISSOR_BR_BR_Y_SIZE;
+ unsigned int : 2;
+ } pa_sc_window_scissor_br_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_window_scissor_br_t {
+ unsigned int : 2;
+ unsigned int br_y : PA_SC_WINDOW_SCISSOR_BR_BR_Y_SIZE;
+ unsigned int : 2;
+ unsigned int br_x : PA_SC_WINDOW_SCISSOR_BR_BR_X_SIZE;
+ } pa_sc_window_scissor_br_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_window_scissor_br_t f;
+} pa_sc_window_scissor_br_u;
+
+
+/*
+ * PA_SC_SCREEN_SCISSOR_TL struct
+ */
+
+#define PA_SC_SCREEN_SCISSOR_TL_TL_X_SIZE 15
+#define PA_SC_SCREEN_SCISSOR_TL_TL_Y_SIZE 15
+
+#define PA_SC_SCREEN_SCISSOR_TL_TL_X_SHIFT 0
+#define PA_SC_SCREEN_SCISSOR_TL_TL_Y_SHIFT 16
+
+#define PA_SC_SCREEN_SCISSOR_TL_TL_X_MASK 0x00007fff
+#define PA_SC_SCREEN_SCISSOR_TL_TL_Y_MASK 0x7fff0000
+
+#define PA_SC_SCREEN_SCISSOR_TL_MASK \
+ (PA_SC_SCREEN_SCISSOR_TL_TL_X_MASK | \
+ PA_SC_SCREEN_SCISSOR_TL_TL_Y_MASK)
+
+#define PA_SC_SCREEN_SCISSOR_TL(tl_x, tl_y) \
+ ((tl_x << PA_SC_SCREEN_SCISSOR_TL_TL_X_SHIFT) | \
+ (tl_y << PA_SC_SCREEN_SCISSOR_TL_TL_Y_SHIFT))
+
+#define PA_SC_SCREEN_SCISSOR_TL_GET_TL_X(pa_sc_screen_scissor_tl) \
+ ((pa_sc_screen_scissor_tl & PA_SC_SCREEN_SCISSOR_TL_TL_X_MASK) >> PA_SC_SCREEN_SCISSOR_TL_TL_X_SHIFT)
+#define PA_SC_SCREEN_SCISSOR_TL_GET_TL_Y(pa_sc_screen_scissor_tl) \
+ ((pa_sc_screen_scissor_tl & PA_SC_SCREEN_SCISSOR_TL_TL_Y_MASK) >> PA_SC_SCREEN_SCISSOR_TL_TL_Y_SHIFT)
+
+#define PA_SC_SCREEN_SCISSOR_TL_SET_TL_X(pa_sc_screen_scissor_tl_reg, tl_x) \
+ pa_sc_screen_scissor_tl_reg = (pa_sc_screen_scissor_tl_reg & ~PA_SC_SCREEN_SCISSOR_TL_TL_X_MASK) | (tl_x << PA_SC_SCREEN_SCISSOR_TL_TL_X_SHIFT)
+#define PA_SC_SCREEN_SCISSOR_TL_SET_TL_Y(pa_sc_screen_scissor_tl_reg, tl_y) \
+ pa_sc_screen_scissor_tl_reg = (pa_sc_screen_scissor_tl_reg & ~PA_SC_SCREEN_SCISSOR_TL_TL_Y_MASK) | (tl_y << PA_SC_SCREEN_SCISSOR_TL_TL_Y_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_screen_scissor_tl_t {
+ unsigned int tl_x : PA_SC_SCREEN_SCISSOR_TL_TL_X_SIZE;
+ unsigned int : 1;
+ unsigned int tl_y : PA_SC_SCREEN_SCISSOR_TL_TL_Y_SIZE;
+ unsigned int : 1;
+ } pa_sc_screen_scissor_tl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_screen_scissor_tl_t {
+ unsigned int : 1;
+ unsigned int tl_y : PA_SC_SCREEN_SCISSOR_TL_TL_Y_SIZE;
+ unsigned int : 1;
+ unsigned int tl_x : PA_SC_SCREEN_SCISSOR_TL_TL_X_SIZE;
+ } pa_sc_screen_scissor_tl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_screen_scissor_tl_t f;
+} pa_sc_screen_scissor_tl_u;
+
+
+/*
+ * PA_SC_SCREEN_SCISSOR_BR struct
+ */
+
+#define PA_SC_SCREEN_SCISSOR_BR_BR_X_SIZE 15
+#define PA_SC_SCREEN_SCISSOR_BR_BR_Y_SIZE 15
+
+#define PA_SC_SCREEN_SCISSOR_BR_BR_X_SHIFT 0
+#define PA_SC_SCREEN_SCISSOR_BR_BR_Y_SHIFT 16
+
+#define PA_SC_SCREEN_SCISSOR_BR_BR_X_MASK 0x00007fff
+#define PA_SC_SCREEN_SCISSOR_BR_BR_Y_MASK 0x7fff0000
+
+#define PA_SC_SCREEN_SCISSOR_BR_MASK \
+ (PA_SC_SCREEN_SCISSOR_BR_BR_X_MASK | \
+ PA_SC_SCREEN_SCISSOR_BR_BR_Y_MASK)
+
+#define PA_SC_SCREEN_SCISSOR_BR(br_x, br_y) \
+ ((br_x << PA_SC_SCREEN_SCISSOR_BR_BR_X_SHIFT) | \
+ (br_y << PA_SC_SCREEN_SCISSOR_BR_BR_Y_SHIFT))
+
+#define PA_SC_SCREEN_SCISSOR_BR_GET_BR_X(pa_sc_screen_scissor_br) \
+ ((pa_sc_screen_scissor_br & PA_SC_SCREEN_SCISSOR_BR_BR_X_MASK) >> PA_SC_SCREEN_SCISSOR_BR_BR_X_SHIFT)
+#define PA_SC_SCREEN_SCISSOR_BR_GET_BR_Y(pa_sc_screen_scissor_br) \
+ ((pa_sc_screen_scissor_br & PA_SC_SCREEN_SCISSOR_BR_BR_Y_MASK) >> PA_SC_SCREEN_SCISSOR_BR_BR_Y_SHIFT)
+
+#define PA_SC_SCREEN_SCISSOR_BR_SET_BR_X(pa_sc_screen_scissor_br_reg, br_x) \
+ pa_sc_screen_scissor_br_reg = (pa_sc_screen_scissor_br_reg & ~PA_SC_SCREEN_SCISSOR_BR_BR_X_MASK) | (br_x << PA_SC_SCREEN_SCISSOR_BR_BR_X_SHIFT)
+#define PA_SC_SCREEN_SCISSOR_BR_SET_BR_Y(pa_sc_screen_scissor_br_reg, br_y) \
+ pa_sc_screen_scissor_br_reg = (pa_sc_screen_scissor_br_reg & ~PA_SC_SCREEN_SCISSOR_BR_BR_Y_MASK) | (br_y << PA_SC_SCREEN_SCISSOR_BR_BR_Y_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_screen_scissor_br_t {
+ unsigned int br_x : PA_SC_SCREEN_SCISSOR_BR_BR_X_SIZE;
+ unsigned int : 1;
+ unsigned int br_y : PA_SC_SCREEN_SCISSOR_BR_BR_Y_SIZE;
+ unsigned int : 1;
+ } pa_sc_screen_scissor_br_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_screen_scissor_br_t {
+ unsigned int : 1;
+ unsigned int br_y : PA_SC_SCREEN_SCISSOR_BR_BR_Y_SIZE;
+ unsigned int : 1;
+ unsigned int br_x : PA_SC_SCREEN_SCISSOR_BR_BR_X_SIZE;
+ } pa_sc_screen_scissor_br_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_screen_scissor_br_t f;
+} pa_sc_screen_scissor_br_u;
+
+
+/*
+ * PA_SC_VIZ_QUERY struct
+ */
+
+#define PA_SC_VIZ_QUERY_VIZ_QUERY_ENA_SIZE 1
+#define PA_SC_VIZ_QUERY_VIZ_QUERY_ID_SIZE 5
+#define PA_SC_VIZ_QUERY_KILL_PIX_POST_EARLY_Z_SIZE 1
+
+#define PA_SC_VIZ_QUERY_VIZ_QUERY_ENA_SHIFT 0
+#define PA_SC_VIZ_QUERY_VIZ_QUERY_ID_SHIFT 1
+#define PA_SC_VIZ_QUERY_KILL_PIX_POST_EARLY_Z_SHIFT 7
+
+#define PA_SC_VIZ_QUERY_VIZ_QUERY_ENA_MASK 0x00000001
+#define PA_SC_VIZ_QUERY_VIZ_QUERY_ID_MASK 0x0000003e
+#define PA_SC_VIZ_QUERY_KILL_PIX_POST_EARLY_Z_MASK 0x00000080
+
+#define PA_SC_VIZ_QUERY_MASK \
+ (PA_SC_VIZ_QUERY_VIZ_QUERY_ENA_MASK | \
+ PA_SC_VIZ_QUERY_VIZ_QUERY_ID_MASK | \
+ PA_SC_VIZ_QUERY_KILL_PIX_POST_EARLY_Z_MASK)
+
+#define PA_SC_VIZ_QUERY(viz_query_ena, viz_query_id, kill_pix_post_early_z) \
+ ((viz_query_ena << PA_SC_VIZ_QUERY_VIZ_QUERY_ENA_SHIFT) | \
+ (viz_query_id << PA_SC_VIZ_QUERY_VIZ_QUERY_ID_SHIFT) | \
+ (kill_pix_post_early_z << PA_SC_VIZ_QUERY_KILL_PIX_POST_EARLY_Z_SHIFT))
+
+#define PA_SC_VIZ_QUERY_GET_VIZ_QUERY_ENA(pa_sc_viz_query) \
+ ((pa_sc_viz_query & PA_SC_VIZ_QUERY_VIZ_QUERY_ENA_MASK) >> PA_SC_VIZ_QUERY_VIZ_QUERY_ENA_SHIFT)
+#define PA_SC_VIZ_QUERY_GET_VIZ_QUERY_ID(pa_sc_viz_query) \
+ ((pa_sc_viz_query & PA_SC_VIZ_QUERY_VIZ_QUERY_ID_MASK) >> PA_SC_VIZ_QUERY_VIZ_QUERY_ID_SHIFT)
+#define PA_SC_VIZ_QUERY_GET_KILL_PIX_POST_EARLY_Z(pa_sc_viz_query) \
+ ((pa_sc_viz_query & PA_SC_VIZ_QUERY_KILL_PIX_POST_EARLY_Z_MASK) >> PA_SC_VIZ_QUERY_KILL_PIX_POST_EARLY_Z_SHIFT)
+
+#define PA_SC_VIZ_QUERY_SET_VIZ_QUERY_ENA(pa_sc_viz_query_reg, viz_query_ena) \
+ pa_sc_viz_query_reg = (pa_sc_viz_query_reg & ~PA_SC_VIZ_QUERY_VIZ_QUERY_ENA_MASK) | (viz_query_ena << PA_SC_VIZ_QUERY_VIZ_QUERY_ENA_SHIFT)
+#define PA_SC_VIZ_QUERY_SET_VIZ_QUERY_ID(pa_sc_viz_query_reg, viz_query_id) \
+ pa_sc_viz_query_reg = (pa_sc_viz_query_reg & ~PA_SC_VIZ_QUERY_VIZ_QUERY_ID_MASK) | (viz_query_id << PA_SC_VIZ_QUERY_VIZ_QUERY_ID_SHIFT)
+#define PA_SC_VIZ_QUERY_SET_KILL_PIX_POST_EARLY_Z(pa_sc_viz_query_reg, kill_pix_post_early_z) \
+ pa_sc_viz_query_reg = (pa_sc_viz_query_reg & ~PA_SC_VIZ_QUERY_KILL_PIX_POST_EARLY_Z_MASK) | (kill_pix_post_early_z << PA_SC_VIZ_QUERY_KILL_PIX_POST_EARLY_Z_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_viz_query_t {
+ unsigned int viz_query_ena : PA_SC_VIZ_QUERY_VIZ_QUERY_ENA_SIZE;
+ unsigned int viz_query_id : PA_SC_VIZ_QUERY_VIZ_QUERY_ID_SIZE;
+ unsigned int : 1;
+ unsigned int kill_pix_post_early_z : PA_SC_VIZ_QUERY_KILL_PIX_POST_EARLY_Z_SIZE;
+ unsigned int : 24;
+ } pa_sc_viz_query_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_viz_query_t {
+ unsigned int : 24;
+ unsigned int kill_pix_post_early_z : PA_SC_VIZ_QUERY_KILL_PIX_POST_EARLY_Z_SIZE;
+ unsigned int : 1;
+ unsigned int viz_query_id : PA_SC_VIZ_QUERY_VIZ_QUERY_ID_SIZE;
+ unsigned int viz_query_ena : PA_SC_VIZ_QUERY_VIZ_QUERY_ENA_SIZE;
+ } pa_sc_viz_query_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_viz_query_t f;
+} pa_sc_viz_query_u;
+
+
+/*
+ * PA_SC_VIZ_QUERY_STATUS struct
+ */
+
+#define PA_SC_VIZ_QUERY_STATUS_STATUS_BITS_SIZE 32
+
+#define PA_SC_VIZ_QUERY_STATUS_STATUS_BITS_SHIFT 0
+
+#define PA_SC_VIZ_QUERY_STATUS_STATUS_BITS_MASK 0xffffffff
+
+#define PA_SC_VIZ_QUERY_STATUS_MASK \
+ (PA_SC_VIZ_QUERY_STATUS_STATUS_BITS_MASK)
+
+#define PA_SC_VIZ_QUERY_STATUS(status_bits) \
+ ((status_bits << PA_SC_VIZ_QUERY_STATUS_STATUS_BITS_SHIFT))
+
+#define PA_SC_VIZ_QUERY_STATUS_GET_STATUS_BITS(pa_sc_viz_query_status) \
+ ((pa_sc_viz_query_status & PA_SC_VIZ_QUERY_STATUS_STATUS_BITS_MASK) >> PA_SC_VIZ_QUERY_STATUS_STATUS_BITS_SHIFT)
+
+#define PA_SC_VIZ_QUERY_STATUS_SET_STATUS_BITS(pa_sc_viz_query_status_reg, status_bits) \
+ pa_sc_viz_query_status_reg = (pa_sc_viz_query_status_reg & ~PA_SC_VIZ_QUERY_STATUS_STATUS_BITS_MASK) | (status_bits << PA_SC_VIZ_QUERY_STATUS_STATUS_BITS_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_viz_query_status_t {
+ unsigned int status_bits : PA_SC_VIZ_QUERY_STATUS_STATUS_BITS_SIZE;
+ } pa_sc_viz_query_status_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_viz_query_status_t {
+ unsigned int status_bits : PA_SC_VIZ_QUERY_STATUS_STATUS_BITS_SIZE;
+ } pa_sc_viz_query_status_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_viz_query_status_t f;
+} pa_sc_viz_query_status_u;
+
+
+/*
+ * PA_SC_LINE_STIPPLE_STATE struct
+ */
+
+#define PA_SC_LINE_STIPPLE_STATE_CURRENT_PTR_SIZE 4
+#define PA_SC_LINE_STIPPLE_STATE_CURRENT_COUNT_SIZE 8
+
+#define PA_SC_LINE_STIPPLE_STATE_CURRENT_PTR_SHIFT 0
+#define PA_SC_LINE_STIPPLE_STATE_CURRENT_COUNT_SHIFT 8
+
+#define PA_SC_LINE_STIPPLE_STATE_CURRENT_PTR_MASK 0x0000000f
+#define PA_SC_LINE_STIPPLE_STATE_CURRENT_COUNT_MASK 0x0000ff00
+
+#define PA_SC_LINE_STIPPLE_STATE_MASK \
+ (PA_SC_LINE_STIPPLE_STATE_CURRENT_PTR_MASK | \
+ PA_SC_LINE_STIPPLE_STATE_CURRENT_COUNT_MASK)
+
+#define PA_SC_LINE_STIPPLE_STATE(current_ptr, current_count) \
+ ((current_ptr << PA_SC_LINE_STIPPLE_STATE_CURRENT_PTR_SHIFT) | \
+ (current_count << PA_SC_LINE_STIPPLE_STATE_CURRENT_COUNT_SHIFT))
+
+#define PA_SC_LINE_STIPPLE_STATE_GET_CURRENT_PTR(pa_sc_line_stipple_state) \
+ ((pa_sc_line_stipple_state & PA_SC_LINE_STIPPLE_STATE_CURRENT_PTR_MASK) >> PA_SC_LINE_STIPPLE_STATE_CURRENT_PTR_SHIFT)
+#define PA_SC_LINE_STIPPLE_STATE_GET_CURRENT_COUNT(pa_sc_line_stipple_state) \
+ ((pa_sc_line_stipple_state & PA_SC_LINE_STIPPLE_STATE_CURRENT_COUNT_MASK) >> PA_SC_LINE_STIPPLE_STATE_CURRENT_COUNT_SHIFT)
+
+#define PA_SC_LINE_STIPPLE_STATE_SET_CURRENT_PTR(pa_sc_line_stipple_state_reg, current_ptr) \
+ pa_sc_line_stipple_state_reg = (pa_sc_line_stipple_state_reg & ~PA_SC_LINE_STIPPLE_STATE_CURRENT_PTR_MASK) | (current_ptr << PA_SC_LINE_STIPPLE_STATE_CURRENT_PTR_SHIFT)
+#define PA_SC_LINE_STIPPLE_STATE_SET_CURRENT_COUNT(pa_sc_line_stipple_state_reg, current_count) \
+ pa_sc_line_stipple_state_reg = (pa_sc_line_stipple_state_reg & ~PA_SC_LINE_STIPPLE_STATE_CURRENT_COUNT_MASK) | (current_count << PA_SC_LINE_STIPPLE_STATE_CURRENT_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_line_stipple_state_t {
+ unsigned int current_ptr : PA_SC_LINE_STIPPLE_STATE_CURRENT_PTR_SIZE;
+ unsigned int : 4;
+ unsigned int current_count : PA_SC_LINE_STIPPLE_STATE_CURRENT_COUNT_SIZE;
+ unsigned int : 16;
+ } pa_sc_line_stipple_state_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_line_stipple_state_t {
+ unsigned int : 16;
+ unsigned int current_count : PA_SC_LINE_STIPPLE_STATE_CURRENT_COUNT_SIZE;
+ unsigned int : 4;
+ unsigned int current_ptr : PA_SC_LINE_STIPPLE_STATE_CURRENT_PTR_SIZE;
+ } pa_sc_line_stipple_state_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_line_stipple_state_t f;
+} pa_sc_line_stipple_state_u;
+
+
+/*
+ * PA_SC_PERFCOUNTER0_SELECT struct
+ */
+
+#define PA_SC_PERFCOUNTER0_SELECT_PERF_SEL_SIZE 8
+
+#define PA_SC_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT 0
+
+#define PA_SC_PERFCOUNTER0_SELECT_PERF_SEL_MASK 0x000000ff
+
+#define PA_SC_PERFCOUNTER0_SELECT_MASK \
+ (PA_SC_PERFCOUNTER0_SELECT_PERF_SEL_MASK)
+
+#define PA_SC_PERFCOUNTER0_SELECT(perf_sel) \
+ ((perf_sel << PA_SC_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT))
+
+#define PA_SC_PERFCOUNTER0_SELECT_GET_PERF_SEL(pa_sc_perfcounter0_select) \
+ ((pa_sc_perfcounter0_select & PA_SC_PERFCOUNTER0_SELECT_PERF_SEL_MASK) >> PA_SC_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT)
+
+#define PA_SC_PERFCOUNTER0_SELECT_SET_PERF_SEL(pa_sc_perfcounter0_select_reg, perf_sel) \
+ pa_sc_perfcounter0_select_reg = (pa_sc_perfcounter0_select_reg & ~PA_SC_PERFCOUNTER0_SELECT_PERF_SEL_MASK) | (perf_sel << PA_SC_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_perfcounter0_select_t {
+ unsigned int perf_sel : PA_SC_PERFCOUNTER0_SELECT_PERF_SEL_SIZE;
+ unsigned int : 24;
+ } pa_sc_perfcounter0_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_perfcounter0_select_t {
+ unsigned int : 24;
+ unsigned int perf_sel : PA_SC_PERFCOUNTER0_SELECT_PERF_SEL_SIZE;
+ } pa_sc_perfcounter0_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_perfcounter0_select_t f;
+} pa_sc_perfcounter0_select_u;
+
+
+/*
+ * PA_SC_PERFCOUNTER0_LOW struct
+ */
+
+#define PA_SC_PERFCOUNTER0_LOW_PERF_COUNT_SIZE 32
+
+#define PA_SC_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT 0
+
+#define PA_SC_PERFCOUNTER0_LOW_PERF_COUNT_MASK 0xffffffff
+
+#define PA_SC_PERFCOUNTER0_LOW_MASK \
+ (PA_SC_PERFCOUNTER0_LOW_PERF_COUNT_MASK)
+
+#define PA_SC_PERFCOUNTER0_LOW(perf_count) \
+ ((perf_count << PA_SC_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT))
+
+#define PA_SC_PERFCOUNTER0_LOW_GET_PERF_COUNT(pa_sc_perfcounter0_low) \
+ ((pa_sc_perfcounter0_low & PA_SC_PERFCOUNTER0_LOW_PERF_COUNT_MASK) >> PA_SC_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT)
+
+#define PA_SC_PERFCOUNTER0_LOW_SET_PERF_COUNT(pa_sc_perfcounter0_low_reg, perf_count) \
+ pa_sc_perfcounter0_low_reg = (pa_sc_perfcounter0_low_reg & ~PA_SC_PERFCOUNTER0_LOW_PERF_COUNT_MASK) | (perf_count << PA_SC_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_perfcounter0_low_t {
+ unsigned int perf_count : PA_SC_PERFCOUNTER0_LOW_PERF_COUNT_SIZE;
+ } pa_sc_perfcounter0_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_perfcounter0_low_t {
+ unsigned int perf_count : PA_SC_PERFCOUNTER0_LOW_PERF_COUNT_SIZE;
+ } pa_sc_perfcounter0_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_perfcounter0_low_t f;
+} pa_sc_perfcounter0_low_u;
+
+
+/*
+ * PA_SC_PERFCOUNTER0_HI struct
+ */
+
+#define PA_SC_PERFCOUNTER0_HI_PERF_COUNT_SIZE 16
+
+#define PA_SC_PERFCOUNTER0_HI_PERF_COUNT_SHIFT 0
+
+#define PA_SC_PERFCOUNTER0_HI_PERF_COUNT_MASK 0x0000ffff
+
+#define PA_SC_PERFCOUNTER0_HI_MASK \
+ (PA_SC_PERFCOUNTER0_HI_PERF_COUNT_MASK)
+
+#define PA_SC_PERFCOUNTER0_HI(perf_count) \
+ ((perf_count << PA_SC_PERFCOUNTER0_HI_PERF_COUNT_SHIFT))
+
+#define PA_SC_PERFCOUNTER0_HI_GET_PERF_COUNT(pa_sc_perfcounter0_hi) \
+ ((pa_sc_perfcounter0_hi & PA_SC_PERFCOUNTER0_HI_PERF_COUNT_MASK) >> PA_SC_PERFCOUNTER0_HI_PERF_COUNT_SHIFT)
+
+#define PA_SC_PERFCOUNTER0_HI_SET_PERF_COUNT(pa_sc_perfcounter0_hi_reg, perf_count) \
+ pa_sc_perfcounter0_hi_reg = (pa_sc_perfcounter0_hi_reg & ~PA_SC_PERFCOUNTER0_HI_PERF_COUNT_MASK) | (perf_count << PA_SC_PERFCOUNTER0_HI_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_perfcounter0_hi_t {
+ unsigned int perf_count : PA_SC_PERFCOUNTER0_HI_PERF_COUNT_SIZE;
+ unsigned int : 16;
+ } pa_sc_perfcounter0_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_perfcounter0_hi_t {
+ unsigned int : 16;
+ unsigned int perf_count : PA_SC_PERFCOUNTER0_HI_PERF_COUNT_SIZE;
+ } pa_sc_perfcounter0_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_perfcounter0_hi_t f;
+} pa_sc_perfcounter0_hi_u;
+
+
+/*
+ * PA_CL_CNTL_STATUS struct
+ */
+
+#define PA_CL_CNTL_STATUS_CL_BUSY_SIZE 1
+
+#define PA_CL_CNTL_STATUS_CL_BUSY_SHIFT 31
+
+#define PA_CL_CNTL_STATUS_CL_BUSY_MASK 0x80000000
+
+#define PA_CL_CNTL_STATUS_MASK \
+ (PA_CL_CNTL_STATUS_CL_BUSY_MASK)
+
+#define PA_CL_CNTL_STATUS(cl_busy) \
+ ((cl_busy << PA_CL_CNTL_STATUS_CL_BUSY_SHIFT))
+
+#define PA_CL_CNTL_STATUS_GET_CL_BUSY(pa_cl_cntl_status) \
+ ((pa_cl_cntl_status & PA_CL_CNTL_STATUS_CL_BUSY_MASK) >> PA_CL_CNTL_STATUS_CL_BUSY_SHIFT)
+
+#define PA_CL_CNTL_STATUS_SET_CL_BUSY(pa_cl_cntl_status_reg, cl_busy) \
+ pa_cl_cntl_status_reg = (pa_cl_cntl_status_reg & ~PA_CL_CNTL_STATUS_CL_BUSY_MASK) | (cl_busy << PA_CL_CNTL_STATUS_CL_BUSY_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_cl_cntl_status_t {
+ unsigned int : 31;
+ unsigned int cl_busy : PA_CL_CNTL_STATUS_CL_BUSY_SIZE;
+ } pa_cl_cntl_status_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_cl_cntl_status_t {
+ unsigned int cl_busy : PA_CL_CNTL_STATUS_CL_BUSY_SIZE;
+ unsigned int : 31;
+ } pa_cl_cntl_status_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_cl_cntl_status_t f;
+} pa_cl_cntl_status_u;
+
+
+/*
+ * PA_SU_CNTL_STATUS struct
+ */
+
+#define PA_SU_CNTL_STATUS_SU_BUSY_SIZE 1
+
+#define PA_SU_CNTL_STATUS_SU_BUSY_SHIFT 31
+
+#define PA_SU_CNTL_STATUS_SU_BUSY_MASK 0x80000000
+
+#define PA_SU_CNTL_STATUS_MASK \
+ (PA_SU_CNTL_STATUS_SU_BUSY_MASK)
+
+#define PA_SU_CNTL_STATUS(su_busy) \
+ ((su_busy << PA_SU_CNTL_STATUS_SU_BUSY_SHIFT))
+
+#define PA_SU_CNTL_STATUS_GET_SU_BUSY(pa_su_cntl_status) \
+ ((pa_su_cntl_status & PA_SU_CNTL_STATUS_SU_BUSY_MASK) >> PA_SU_CNTL_STATUS_SU_BUSY_SHIFT)
+
+#define PA_SU_CNTL_STATUS_SET_SU_BUSY(pa_su_cntl_status_reg, su_busy) \
+ pa_su_cntl_status_reg = (pa_su_cntl_status_reg & ~PA_SU_CNTL_STATUS_SU_BUSY_MASK) | (su_busy << PA_SU_CNTL_STATUS_SU_BUSY_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_cntl_status_t {
+ unsigned int : 31;
+ unsigned int su_busy : PA_SU_CNTL_STATUS_SU_BUSY_SIZE;
+ } pa_su_cntl_status_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_cntl_status_t {
+ unsigned int su_busy : PA_SU_CNTL_STATUS_SU_BUSY_SIZE;
+ unsigned int : 31;
+ } pa_su_cntl_status_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_cntl_status_t f;
+} pa_su_cntl_status_u;
+
+
+/*
+ * PA_SC_CNTL_STATUS struct
+ */
+
+#define PA_SC_CNTL_STATUS_SC_BUSY_SIZE 1
+
+#define PA_SC_CNTL_STATUS_SC_BUSY_SHIFT 31
+
+#define PA_SC_CNTL_STATUS_SC_BUSY_MASK 0x80000000
+
+#define PA_SC_CNTL_STATUS_MASK \
+ (PA_SC_CNTL_STATUS_SC_BUSY_MASK)
+
+#define PA_SC_CNTL_STATUS(sc_busy) \
+ ((sc_busy << PA_SC_CNTL_STATUS_SC_BUSY_SHIFT))
+
+#define PA_SC_CNTL_STATUS_GET_SC_BUSY(pa_sc_cntl_status) \
+ ((pa_sc_cntl_status & PA_SC_CNTL_STATUS_SC_BUSY_MASK) >> PA_SC_CNTL_STATUS_SC_BUSY_SHIFT)
+
+#define PA_SC_CNTL_STATUS_SET_SC_BUSY(pa_sc_cntl_status_reg, sc_busy) \
+ pa_sc_cntl_status_reg = (pa_sc_cntl_status_reg & ~PA_SC_CNTL_STATUS_SC_BUSY_MASK) | (sc_busy << PA_SC_CNTL_STATUS_SC_BUSY_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_cntl_status_t {
+ unsigned int : 31;
+ unsigned int sc_busy : PA_SC_CNTL_STATUS_SC_BUSY_SIZE;
+ } pa_sc_cntl_status_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_cntl_status_t {
+ unsigned int sc_busy : PA_SC_CNTL_STATUS_SC_BUSY_SIZE;
+ unsigned int : 31;
+ } pa_sc_cntl_status_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_cntl_status_t f;
+} pa_sc_cntl_status_u;
+
+
+/*
+ * PA_SU_DEBUG_CNTL struct
+ */
+
+#define PA_SU_DEBUG_CNTL_SU_DEBUG_INDX_SIZE 5
+
+#define PA_SU_DEBUG_CNTL_SU_DEBUG_INDX_SHIFT 0
+
+#define PA_SU_DEBUG_CNTL_SU_DEBUG_INDX_MASK 0x0000001f
+
+#define PA_SU_DEBUG_CNTL_MASK \
+ (PA_SU_DEBUG_CNTL_SU_DEBUG_INDX_MASK)
+
+#define PA_SU_DEBUG_CNTL(su_debug_indx) \
+ ((su_debug_indx << PA_SU_DEBUG_CNTL_SU_DEBUG_INDX_SHIFT))
+
+#define PA_SU_DEBUG_CNTL_GET_SU_DEBUG_INDX(pa_su_debug_cntl) \
+ ((pa_su_debug_cntl & PA_SU_DEBUG_CNTL_SU_DEBUG_INDX_MASK) >> PA_SU_DEBUG_CNTL_SU_DEBUG_INDX_SHIFT)
+
+#define PA_SU_DEBUG_CNTL_SET_SU_DEBUG_INDX(pa_su_debug_cntl_reg, su_debug_indx) \
+ pa_su_debug_cntl_reg = (pa_su_debug_cntl_reg & ~PA_SU_DEBUG_CNTL_SU_DEBUG_INDX_MASK) | (su_debug_indx << PA_SU_DEBUG_CNTL_SU_DEBUG_INDX_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_debug_cntl_t {
+ unsigned int su_debug_indx : PA_SU_DEBUG_CNTL_SU_DEBUG_INDX_SIZE;
+ unsigned int : 27;
+ } pa_su_debug_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_debug_cntl_t {
+ unsigned int : 27;
+ unsigned int su_debug_indx : PA_SU_DEBUG_CNTL_SU_DEBUG_INDX_SIZE;
+ } pa_su_debug_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_debug_cntl_t f;
+} pa_su_debug_cntl_u;
+
+
+/*
+ * PA_SU_DEBUG_DATA struct
+ */
+
+#define PA_SU_DEBUG_DATA_DATA_SIZE 32
+
+#define PA_SU_DEBUG_DATA_DATA_SHIFT 0
+
+#define PA_SU_DEBUG_DATA_DATA_MASK 0xffffffff
+
+#define PA_SU_DEBUG_DATA_MASK \
+ (PA_SU_DEBUG_DATA_DATA_MASK)
+
+#define PA_SU_DEBUG_DATA(data) \
+ ((data << PA_SU_DEBUG_DATA_DATA_SHIFT))
+
+#define PA_SU_DEBUG_DATA_GET_DATA(pa_su_debug_data) \
+ ((pa_su_debug_data & PA_SU_DEBUG_DATA_DATA_MASK) >> PA_SU_DEBUG_DATA_DATA_SHIFT)
+
+#define PA_SU_DEBUG_DATA_SET_DATA(pa_su_debug_data_reg, data) \
+ pa_su_debug_data_reg = (pa_su_debug_data_reg & ~PA_SU_DEBUG_DATA_DATA_MASK) | (data << PA_SU_DEBUG_DATA_DATA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_debug_data_t {
+ unsigned int data : PA_SU_DEBUG_DATA_DATA_SIZE;
+ } pa_su_debug_data_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_debug_data_t {
+ unsigned int data : PA_SU_DEBUG_DATA_DATA_SIZE;
+ } pa_su_debug_data_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_debug_data_t f;
+} pa_su_debug_data_u;
+
+
+/*
+ * CLIPPER_DEBUG_REG00 struct
+ */
+
+#define CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_write_SIZE 1
+#define CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_full_SIZE 1
+#define CLIPPER_DEBUG_REG00_clip_to_ga_fifo_write_SIZE 1
+#define CLIPPER_DEBUG_REG00_clip_to_ga_fifo_full_SIZE 1
+#define CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_empty_SIZE 1
+#define CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_full_SIZE 1
+#define CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_empty_SIZE 1
+#define CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_full_SIZE 1
+#define CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_empty_SIZE 1
+#define CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_full_SIZE 1
+#define CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_empty_SIZE 1
+#define CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_full_SIZE 1
+#define CLIPPER_DEBUG_REG00_clipcode_fifo_fifo_empty_SIZE 1
+#define CLIPPER_DEBUG_REG00_clipcode_fifo_full_SIZE 1
+#define CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_empty_SIZE 1
+#define CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_full_SIZE 1
+#define CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_empty_SIZE 1
+#define CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_full_SIZE 1
+#define CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_empty_SIZE 1
+#define CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_full_SIZE 1
+#define CLIPPER_DEBUG_REG00_ALWAYS_ZERO_SIZE 12
+
+#define CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_write_SHIFT 0
+#define CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_full_SHIFT 1
+#define CLIPPER_DEBUG_REG00_clip_to_ga_fifo_write_SHIFT 2
+#define CLIPPER_DEBUG_REG00_clip_to_ga_fifo_full_SHIFT 3
+#define CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_empty_SHIFT 4
+#define CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_full_SHIFT 5
+#define CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_empty_SHIFT 6
+#define CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_full_SHIFT 7
+#define CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_empty_SHIFT 8
+#define CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_full_SHIFT 9
+#define CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_empty_SHIFT 10
+#define CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_full_SHIFT 11
+#define CLIPPER_DEBUG_REG00_clipcode_fifo_fifo_empty_SHIFT 12
+#define CLIPPER_DEBUG_REG00_clipcode_fifo_full_SHIFT 13
+#define CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_empty_SHIFT 14
+#define CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_full_SHIFT 15
+#define CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_empty_SHIFT 16
+#define CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_full_SHIFT 17
+#define CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_empty_SHIFT 18
+#define CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_full_SHIFT 19
+#define CLIPPER_DEBUG_REG00_ALWAYS_ZERO_SHIFT 20
+
+#define CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_write_MASK 0x00000001
+#define CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_full_MASK 0x00000002
+#define CLIPPER_DEBUG_REG00_clip_to_ga_fifo_write_MASK 0x00000004
+#define CLIPPER_DEBUG_REG00_clip_to_ga_fifo_full_MASK 0x00000008
+#define CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_empty_MASK 0x00000010
+#define CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_full_MASK 0x00000020
+#define CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_empty_MASK 0x00000040
+#define CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_full_MASK 0x00000080
+#define CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_empty_MASK 0x00000100
+#define CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_full_MASK 0x00000200
+#define CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_empty_MASK 0x00000400
+#define CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_full_MASK 0x00000800
+#define CLIPPER_DEBUG_REG00_clipcode_fifo_fifo_empty_MASK 0x00001000
+#define CLIPPER_DEBUG_REG00_clipcode_fifo_full_MASK 0x00002000
+#define CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_empty_MASK 0x00004000
+#define CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_full_MASK 0x00008000
+#define CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_empty_MASK 0x00010000
+#define CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_full_MASK 0x00020000
+#define CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_empty_MASK 0x00040000
+#define CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_full_MASK 0x00080000
+#define CLIPPER_DEBUG_REG00_ALWAYS_ZERO_MASK 0xfff00000
+
+#define CLIPPER_DEBUG_REG00_MASK \
+ (CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_write_MASK | \
+ CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_full_MASK | \
+ CLIPPER_DEBUG_REG00_clip_to_ga_fifo_write_MASK | \
+ CLIPPER_DEBUG_REG00_clip_to_ga_fifo_full_MASK | \
+ CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_empty_MASK | \
+ CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_full_MASK | \
+ CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_empty_MASK | \
+ CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_full_MASK | \
+ CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_empty_MASK | \
+ CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_full_MASK | \
+ CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_empty_MASK | \
+ CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_full_MASK | \
+ CLIPPER_DEBUG_REG00_clipcode_fifo_fifo_empty_MASK | \
+ CLIPPER_DEBUG_REG00_clipcode_fifo_full_MASK | \
+ CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_empty_MASK | \
+ CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_full_MASK | \
+ CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_empty_MASK | \
+ CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_full_MASK | \
+ CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_empty_MASK | \
+ CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_full_MASK | \
+ CLIPPER_DEBUG_REG00_ALWAYS_ZERO_MASK)
+
+#define CLIPPER_DEBUG_REG00(clip_ga_bc_fifo_write, clip_ga_bc_fifo_full, clip_to_ga_fifo_write, clip_to_ga_fifo_full, primic_to_clprim_fifo_empty, primic_to_clprim_fifo_full, clip_to_outsm_fifo_empty, clip_to_outsm_fifo_full, vgt_to_clipp_fifo_empty, vgt_to_clipp_fifo_full, vgt_to_clips_fifo_empty, vgt_to_clips_fifo_full, clipcode_fifo_fifo_empty, clipcode_fifo_full, vte_out_clip_fifo_fifo_empty, vte_out_clip_fifo_fifo_full, vte_out_orig_fifo_fifo_empty, vte_out_orig_fifo_fifo_full, ccgen_to_clipcc_fifo_empty, ccgen_to_clipcc_fifo_full, always_zero) \
+ ((clip_ga_bc_fifo_write << CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_write_SHIFT) | \
+ (clip_ga_bc_fifo_full << CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_full_SHIFT) | \
+ (clip_to_ga_fifo_write << CLIPPER_DEBUG_REG00_clip_to_ga_fifo_write_SHIFT) | \
+ (clip_to_ga_fifo_full << CLIPPER_DEBUG_REG00_clip_to_ga_fifo_full_SHIFT) | \
+ (primic_to_clprim_fifo_empty << CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_empty_SHIFT) | \
+ (primic_to_clprim_fifo_full << CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_full_SHIFT) | \
+ (clip_to_outsm_fifo_empty << CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_empty_SHIFT) | \
+ (clip_to_outsm_fifo_full << CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_full_SHIFT) | \
+ (vgt_to_clipp_fifo_empty << CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_empty_SHIFT) | \
+ (vgt_to_clipp_fifo_full << CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_full_SHIFT) | \
+ (vgt_to_clips_fifo_empty << CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_empty_SHIFT) | \
+ (vgt_to_clips_fifo_full << CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_full_SHIFT) | \
+ (clipcode_fifo_fifo_empty << CLIPPER_DEBUG_REG00_clipcode_fifo_fifo_empty_SHIFT) | \
+ (clipcode_fifo_full << CLIPPER_DEBUG_REG00_clipcode_fifo_full_SHIFT) | \
+ (vte_out_clip_fifo_fifo_empty << CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_empty_SHIFT) | \
+ (vte_out_clip_fifo_fifo_full << CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_full_SHIFT) | \
+ (vte_out_orig_fifo_fifo_empty << CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_empty_SHIFT) | \
+ (vte_out_orig_fifo_fifo_full << CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_full_SHIFT) | \
+ (ccgen_to_clipcc_fifo_empty << CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_empty_SHIFT) | \
+ (ccgen_to_clipcc_fifo_full << CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_full_SHIFT) | \
+ (always_zero << CLIPPER_DEBUG_REG00_ALWAYS_ZERO_SHIFT))
+
+#define CLIPPER_DEBUG_REG00_GET_clip_ga_bc_fifo_write(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_write_MASK) >> CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_write_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_clip_ga_bc_fifo_full(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_full_MASK) >> CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_clip_to_ga_fifo_write(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_clip_to_ga_fifo_write_MASK) >> CLIPPER_DEBUG_REG00_clip_to_ga_fifo_write_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_clip_to_ga_fifo_full(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_clip_to_ga_fifo_full_MASK) >> CLIPPER_DEBUG_REG00_clip_to_ga_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_primic_to_clprim_fifo_empty(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_empty_MASK) >> CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_primic_to_clprim_fifo_full(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_full_MASK) >> CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_clip_to_outsm_fifo_empty(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_empty_MASK) >> CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_clip_to_outsm_fifo_full(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_full_MASK) >> CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_vgt_to_clipp_fifo_empty(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_empty_MASK) >> CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_vgt_to_clipp_fifo_full(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_full_MASK) >> CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_vgt_to_clips_fifo_empty(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_empty_MASK) >> CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_vgt_to_clips_fifo_full(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_full_MASK) >> CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_clipcode_fifo_fifo_empty(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_clipcode_fifo_fifo_empty_MASK) >> CLIPPER_DEBUG_REG00_clipcode_fifo_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_clipcode_fifo_full(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_clipcode_fifo_full_MASK) >> CLIPPER_DEBUG_REG00_clipcode_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_vte_out_clip_fifo_fifo_empty(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_empty_MASK) >> CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_vte_out_clip_fifo_fifo_full(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_full_MASK) >> CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_vte_out_orig_fifo_fifo_empty(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_empty_MASK) >> CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_vte_out_orig_fifo_fifo_full(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_full_MASK) >> CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_ccgen_to_clipcc_fifo_empty(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_empty_MASK) >> CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_ccgen_to_clipcc_fifo_full(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_full_MASK) >> CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_ALWAYS_ZERO(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_ALWAYS_ZERO_MASK) >> CLIPPER_DEBUG_REG00_ALWAYS_ZERO_SHIFT)
+
+#define CLIPPER_DEBUG_REG00_SET_clip_ga_bc_fifo_write(clipper_debug_reg00_reg, clip_ga_bc_fifo_write) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_write_MASK) | (clip_ga_bc_fifo_write << CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_write_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_clip_ga_bc_fifo_full(clipper_debug_reg00_reg, clip_ga_bc_fifo_full) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_full_MASK) | (clip_ga_bc_fifo_full << CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_clip_to_ga_fifo_write(clipper_debug_reg00_reg, clip_to_ga_fifo_write) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_clip_to_ga_fifo_write_MASK) | (clip_to_ga_fifo_write << CLIPPER_DEBUG_REG00_clip_to_ga_fifo_write_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_clip_to_ga_fifo_full(clipper_debug_reg00_reg, clip_to_ga_fifo_full) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_clip_to_ga_fifo_full_MASK) | (clip_to_ga_fifo_full << CLIPPER_DEBUG_REG00_clip_to_ga_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_primic_to_clprim_fifo_empty(clipper_debug_reg00_reg, primic_to_clprim_fifo_empty) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_empty_MASK) | (primic_to_clprim_fifo_empty << CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_primic_to_clprim_fifo_full(clipper_debug_reg00_reg, primic_to_clprim_fifo_full) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_full_MASK) | (primic_to_clprim_fifo_full << CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_clip_to_outsm_fifo_empty(clipper_debug_reg00_reg, clip_to_outsm_fifo_empty) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_empty_MASK) | (clip_to_outsm_fifo_empty << CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_clip_to_outsm_fifo_full(clipper_debug_reg00_reg, clip_to_outsm_fifo_full) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_full_MASK) | (clip_to_outsm_fifo_full << CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_vgt_to_clipp_fifo_empty(clipper_debug_reg00_reg, vgt_to_clipp_fifo_empty) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_empty_MASK) | (vgt_to_clipp_fifo_empty << CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_vgt_to_clipp_fifo_full(clipper_debug_reg00_reg, vgt_to_clipp_fifo_full) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_full_MASK) | (vgt_to_clipp_fifo_full << CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_vgt_to_clips_fifo_empty(clipper_debug_reg00_reg, vgt_to_clips_fifo_empty) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_empty_MASK) | (vgt_to_clips_fifo_empty << CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_vgt_to_clips_fifo_full(clipper_debug_reg00_reg, vgt_to_clips_fifo_full) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_full_MASK) | (vgt_to_clips_fifo_full << CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_clipcode_fifo_fifo_empty(clipper_debug_reg00_reg, clipcode_fifo_fifo_empty) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_clipcode_fifo_fifo_empty_MASK) | (clipcode_fifo_fifo_empty << CLIPPER_DEBUG_REG00_clipcode_fifo_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_clipcode_fifo_full(clipper_debug_reg00_reg, clipcode_fifo_full) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_clipcode_fifo_full_MASK) | (clipcode_fifo_full << CLIPPER_DEBUG_REG00_clipcode_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_vte_out_clip_fifo_fifo_empty(clipper_debug_reg00_reg, vte_out_clip_fifo_fifo_empty) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_empty_MASK) | (vte_out_clip_fifo_fifo_empty << CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_vte_out_clip_fifo_fifo_full(clipper_debug_reg00_reg, vte_out_clip_fifo_fifo_full) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_full_MASK) | (vte_out_clip_fifo_fifo_full << CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_vte_out_orig_fifo_fifo_empty(clipper_debug_reg00_reg, vte_out_orig_fifo_fifo_empty) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_empty_MASK) | (vte_out_orig_fifo_fifo_empty << CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_vte_out_orig_fifo_fifo_full(clipper_debug_reg00_reg, vte_out_orig_fifo_fifo_full) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_full_MASK) | (vte_out_orig_fifo_fifo_full << CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_ccgen_to_clipcc_fifo_empty(clipper_debug_reg00_reg, ccgen_to_clipcc_fifo_empty) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_empty_MASK) | (ccgen_to_clipcc_fifo_empty << CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_ccgen_to_clipcc_fifo_full(clipper_debug_reg00_reg, ccgen_to_clipcc_fifo_full) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_full_MASK) | (ccgen_to_clipcc_fifo_full << CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_ALWAYS_ZERO(clipper_debug_reg00_reg, always_zero) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_ALWAYS_ZERO_MASK) | (always_zero << CLIPPER_DEBUG_REG00_ALWAYS_ZERO_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg00_t {
+ unsigned int clip_ga_bc_fifo_write : CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_write_SIZE;
+ unsigned int clip_ga_bc_fifo_full : CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_full_SIZE;
+ unsigned int clip_to_ga_fifo_write : CLIPPER_DEBUG_REG00_clip_to_ga_fifo_write_SIZE;
+ unsigned int clip_to_ga_fifo_full : CLIPPER_DEBUG_REG00_clip_to_ga_fifo_full_SIZE;
+ unsigned int primic_to_clprim_fifo_empty : CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_empty_SIZE;
+ unsigned int primic_to_clprim_fifo_full : CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_full_SIZE;
+ unsigned int clip_to_outsm_fifo_empty : CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_empty_SIZE;
+ unsigned int clip_to_outsm_fifo_full : CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_full_SIZE;
+ unsigned int vgt_to_clipp_fifo_empty : CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_empty_SIZE;
+ unsigned int vgt_to_clipp_fifo_full : CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_full_SIZE;
+ unsigned int vgt_to_clips_fifo_empty : CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_empty_SIZE;
+ unsigned int vgt_to_clips_fifo_full : CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_full_SIZE;
+ unsigned int clipcode_fifo_fifo_empty : CLIPPER_DEBUG_REG00_clipcode_fifo_fifo_empty_SIZE;
+ unsigned int clipcode_fifo_full : CLIPPER_DEBUG_REG00_clipcode_fifo_full_SIZE;
+ unsigned int vte_out_clip_fifo_fifo_empty : CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_empty_SIZE;
+ unsigned int vte_out_clip_fifo_fifo_full : CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_full_SIZE;
+ unsigned int vte_out_orig_fifo_fifo_empty : CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_empty_SIZE;
+ unsigned int vte_out_orig_fifo_fifo_full : CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_full_SIZE;
+ unsigned int ccgen_to_clipcc_fifo_empty : CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_empty_SIZE;
+ unsigned int ccgen_to_clipcc_fifo_full : CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_full_SIZE;
+ unsigned int always_zero : CLIPPER_DEBUG_REG00_ALWAYS_ZERO_SIZE;
+ } clipper_debug_reg00_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg00_t {
+ unsigned int always_zero : CLIPPER_DEBUG_REG00_ALWAYS_ZERO_SIZE;
+ unsigned int ccgen_to_clipcc_fifo_full : CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_full_SIZE;
+ unsigned int ccgen_to_clipcc_fifo_empty : CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_empty_SIZE;
+ unsigned int vte_out_orig_fifo_fifo_full : CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_full_SIZE;
+ unsigned int vte_out_orig_fifo_fifo_empty : CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_empty_SIZE;
+ unsigned int vte_out_clip_fifo_fifo_full : CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_full_SIZE;
+ unsigned int vte_out_clip_fifo_fifo_empty : CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_empty_SIZE;
+ unsigned int clipcode_fifo_full : CLIPPER_DEBUG_REG00_clipcode_fifo_full_SIZE;
+ unsigned int clipcode_fifo_fifo_empty : CLIPPER_DEBUG_REG00_clipcode_fifo_fifo_empty_SIZE;
+ unsigned int vgt_to_clips_fifo_full : CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_full_SIZE;
+ unsigned int vgt_to_clips_fifo_empty : CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_empty_SIZE;
+ unsigned int vgt_to_clipp_fifo_full : CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_full_SIZE;
+ unsigned int vgt_to_clipp_fifo_empty : CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_empty_SIZE;
+ unsigned int clip_to_outsm_fifo_full : CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_full_SIZE;
+ unsigned int clip_to_outsm_fifo_empty : CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_empty_SIZE;
+ unsigned int primic_to_clprim_fifo_full : CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_full_SIZE;
+ unsigned int primic_to_clprim_fifo_empty : CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_empty_SIZE;
+ unsigned int clip_to_ga_fifo_full : CLIPPER_DEBUG_REG00_clip_to_ga_fifo_full_SIZE;
+ unsigned int clip_to_ga_fifo_write : CLIPPER_DEBUG_REG00_clip_to_ga_fifo_write_SIZE;
+ unsigned int clip_ga_bc_fifo_full : CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_full_SIZE;
+ unsigned int clip_ga_bc_fifo_write : CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_write_SIZE;
+ } clipper_debug_reg00_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ clipper_debug_reg00_t f;
+} clipper_debug_reg00_u;
+
+
+/*
+ * CLIPPER_DEBUG_REG01 struct
+ */
+
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_end_of_packet_SIZE 1
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_first_prim_of_slot_SIZE 1
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_deallocate_slot_SIZE 3
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_clipped_prim_SIZE 1
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_null_primitive_SIZE 1
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_2_SIZE 4
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_1_SIZE 4
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_0_SIZE 4
+#define CLIPPER_DEBUG_REG01_clip_vert_vte_valid_SIZE 3
+#define CLIPPER_DEBUG_REG01_vte_out_clip_rd_vertex_store_indx_SIZE 2
+#define CLIPPER_DEBUG_REG01_ALWAYS_ZERO_SIZE 8
+
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_end_of_packet_SHIFT 0
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_first_prim_of_slot_SHIFT 1
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_deallocate_slot_SHIFT 2
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_clipped_prim_SHIFT 5
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_null_primitive_SHIFT 6
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_2_SHIFT 7
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_1_SHIFT 11
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_0_SHIFT 15
+#define CLIPPER_DEBUG_REG01_clip_vert_vte_valid_SHIFT 19
+#define CLIPPER_DEBUG_REG01_vte_out_clip_rd_vertex_store_indx_SHIFT 22
+#define CLIPPER_DEBUG_REG01_ALWAYS_ZERO_SHIFT 24
+
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_end_of_packet_MASK 0x00000001
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_first_prim_of_slot_MASK 0x00000002
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_deallocate_slot_MASK 0x0000001c
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_clipped_prim_MASK 0x00000020
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_null_primitive_MASK 0x00000040
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_2_MASK 0x00000780
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_1_MASK 0x00007800
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_0_MASK 0x00078000
+#define CLIPPER_DEBUG_REG01_clip_vert_vte_valid_MASK 0x00380000
+#define CLIPPER_DEBUG_REG01_vte_out_clip_rd_vertex_store_indx_MASK 0x00c00000
+#define CLIPPER_DEBUG_REG01_ALWAYS_ZERO_MASK 0xff000000
+
+#define CLIPPER_DEBUG_REG01_MASK \
+ (CLIPPER_DEBUG_REG01_clip_to_outsm_end_of_packet_MASK | \
+ CLIPPER_DEBUG_REG01_clip_to_outsm_first_prim_of_slot_MASK | \
+ CLIPPER_DEBUG_REG01_clip_to_outsm_deallocate_slot_MASK | \
+ CLIPPER_DEBUG_REG01_clip_to_outsm_clipped_prim_MASK | \
+ CLIPPER_DEBUG_REG01_clip_to_outsm_null_primitive_MASK | \
+ CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_2_MASK | \
+ CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_1_MASK | \
+ CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_0_MASK | \
+ CLIPPER_DEBUG_REG01_clip_vert_vte_valid_MASK | \
+ CLIPPER_DEBUG_REG01_vte_out_clip_rd_vertex_store_indx_MASK | \
+ CLIPPER_DEBUG_REG01_ALWAYS_ZERO_MASK)
+
+#define CLIPPER_DEBUG_REG01(clip_to_outsm_end_of_packet, clip_to_outsm_first_prim_of_slot, clip_to_outsm_deallocate_slot, clip_to_outsm_clipped_prim, clip_to_outsm_null_primitive, clip_to_outsm_vertex_store_indx_2, clip_to_outsm_vertex_store_indx_1, clip_to_outsm_vertex_store_indx_0, clip_vert_vte_valid, vte_out_clip_rd_vertex_store_indx, always_zero) \
+ ((clip_to_outsm_end_of_packet << CLIPPER_DEBUG_REG01_clip_to_outsm_end_of_packet_SHIFT) | \
+ (clip_to_outsm_first_prim_of_slot << CLIPPER_DEBUG_REG01_clip_to_outsm_first_prim_of_slot_SHIFT) | \
+ (clip_to_outsm_deallocate_slot << CLIPPER_DEBUG_REG01_clip_to_outsm_deallocate_slot_SHIFT) | \
+ (clip_to_outsm_clipped_prim << CLIPPER_DEBUG_REG01_clip_to_outsm_clipped_prim_SHIFT) | \
+ (clip_to_outsm_null_primitive << CLIPPER_DEBUG_REG01_clip_to_outsm_null_primitive_SHIFT) | \
+ (clip_to_outsm_vertex_store_indx_2 << CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_2_SHIFT) | \
+ (clip_to_outsm_vertex_store_indx_1 << CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_1_SHIFT) | \
+ (clip_to_outsm_vertex_store_indx_0 << CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_0_SHIFT) | \
+ (clip_vert_vte_valid << CLIPPER_DEBUG_REG01_clip_vert_vte_valid_SHIFT) | \
+ (vte_out_clip_rd_vertex_store_indx << CLIPPER_DEBUG_REG01_vte_out_clip_rd_vertex_store_indx_SHIFT) | \
+ (always_zero << CLIPPER_DEBUG_REG01_ALWAYS_ZERO_SHIFT))
+
+#define CLIPPER_DEBUG_REG01_GET_clip_to_outsm_end_of_packet(clipper_debug_reg01) \
+ ((clipper_debug_reg01 & CLIPPER_DEBUG_REG01_clip_to_outsm_end_of_packet_MASK) >> CLIPPER_DEBUG_REG01_clip_to_outsm_end_of_packet_SHIFT)
+#define CLIPPER_DEBUG_REG01_GET_clip_to_outsm_first_prim_of_slot(clipper_debug_reg01) \
+ ((clipper_debug_reg01 & CLIPPER_DEBUG_REG01_clip_to_outsm_first_prim_of_slot_MASK) >> CLIPPER_DEBUG_REG01_clip_to_outsm_first_prim_of_slot_SHIFT)
+#define CLIPPER_DEBUG_REG01_GET_clip_to_outsm_deallocate_slot(clipper_debug_reg01) \
+ ((clipper_debug_reg01 & CLIPPER_DEBUG_REG01_clip_to_outsm_deallocate_slot_MASK) >> CLIPPER_DEBUG_REG01_clip_to_outsm_deallocate_slot_SHIFT)
+#define CLIPPER_DEBUG_REG01_GET_clip_to_outsm_clipped_prim(clipper_debug_reg01) \
+ ((clipper_debug_reg01 & CLIPPER_DEBUG_REG01_clip_to_outsm_clipped_prim_MASK) >> CLIPPER_DEBUG_REG01_clip_to_outsm_clipped_prim_SHIFT)
+#define CLIPPER_DEBUG_REG01_GET_clip_to_outsm_null_primitive(clipper_debug_reg01) \
+ ((clipper_debug_reg01 & CLIPPER_DEBUG_REG01_clip_to_outsm_null_primitive_MASK) >> CLIPPER_DEBUG_REG01_clip_to_outsm_null_primitive_SHIFT)
+#define CLIPPER_DEBUG_REG01_GET_clip_to_outsm_vertex_store_indx_2(clipper_debug_reg01) \
+ ((clipper_debug_reg01 & CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_2_MASK) >> CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_2_SHIFT)
+#define CLIPPER_DEBUG_REG01_GET_clip_to_outsm_vertex_store_indx_1(clipper_debug_reg01) \
+ ((clipper_debug_reg01 & CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_1_MASK) >> CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_1_SHIFT)
+#define CLIPPER_DEBUG_REG01_GET_clip_to_outsm_vertex_store_indx_0(clipper_debug_reg01) \
+ ((clipper_debug_reg01 & CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_0_MASK) >> CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_0_SHIFT)
+#define CLIPPER_DEBUG_REG01_GET_clip_vert_vte_valid(clipper_debug_reg01) \
+ ((clipper_debug_reg01 & CLIPPER_DEBUG_REG01_clip_vert_vte_valid_MASK) >> CLIPPER_DEBUG_REG01_clip_vert_vte_valid_SHIFT)
+#define CLIPPER_DEBUG_REG01_GET_vte_out_clip_rd_vertex_store_indx(clipper_debug_reg01) \
+ ((clipper_debug_reg01 & CLIPPER_DEBUG_REG01_vte_out_clip_rd_vertex_store_indx_MASK) >> CLIPPER_DEBUG_REG01_vte_out_clip_rd_vertex_store_indx_SHIFT)
+#define CLIPPER_DEBUG_REG01_GET_ALWAYS_ZERO(clipper_debug_reg01) \
+ ((clipper_debug_reg01 & CLIPPER_DEBUG_REG01_ALWAYS_ZERO_MASK) >> CLIPPER_DEBUG_REG01_ALWAYS_ZERO_SHIFT)
+
+#define CLIPPER_DEBUG_REG01_SET_clip_to_outsm_end_of_packet(clipper_debug_reg01_reg, clip_to_outsm_end_of_packet) \
+ clipper_debug_reg01_reg = (clipper_debug_reg01_reg & ~CLIPPER_DEBUG_REG01_clip_to_outsm_end_of_packet_MASK) | (clip_to_outsm_end_of_packet << CLIPPER_DEBUG_REG01_clip_to_outsm_end_of_packet_SHIFT)
+#define CLIPPER_DEBUG_REG01_SET_clip_to_outsm_first_prim_of_slot(clipper_debug_reg01_reg, clip_to_outsm_first_prim_of_slot) \
+ clipper_debug_reg01_reg = (clipper_debug_reg01_reg & ~CLIPPER_DEBUG_REG01_clip_to_outsm_first_prim_of_slot_MASK) | (clip_to_outsm_first_prim_of_slot << CLIPPER_DEBUG_REG01_clip_to_outsm_first_prim_of_slot_SHIFT)
+#define CLIPPER_DEBUG_REG01_SET_clip_to_outsm_deallocate_slot(clipper_debug_reg01_reg, clip_to_outsm_deallocate_slot) \
+ clipper_debug_reg01_reg = (clipper_debug_reg01_reg & ~CLIPPER_DEBUG_REG01_clip_to_outsm_deallocate_slot_MASK) | (clip_to_outsm_deallocate_slot << CLIPPER_DEBUG_REG01_clip_to_outsm_deallocate_slot_SHIFT)
+#define CLIPPER_DEBUG_REG01_SET_clip_to_outsm_clipped_prim(clipper_debug_reg01_reg, clip_to_outsm_clipped_prim) \
+ clipper_debug_reg01_reg = (clipper_debug_reg01_reg & ~CLIPPER_DEBUG_REG01_clip_to_outsm_clipped_prim_MASK) | (clip_to_outsm_clipped_prim << CLIPPER_DEBUG_REG01_clip_to_outsm_clipped_prim_SHIFT)
+#define CLIPPER_DEBUG_REG01_SET_clip_to_outsm_null_primitive(clipper_debug_reg01_reg, clip_to_outsm_null_primitive) \
+ clipper_debug_reg01_reg = (clipper_debug_reg01_reg & ~CLIPPER_DEBUG_REG01_clip_to_outsm_null_primitive_MASK) | (clip_to_outsm_null_primitive << CLIPPER_DEBUG_REG01_clip_to_outsm_null_primitive_SHIFT)
+#define CLIPPER_DEBUG_REG01_SET_clip_to_outsm_vertex_store_indx_2(clipper_debug_reg01_reg, clip_to_outsm_vertex_store_indx_2) \
+ clipper_debug_reg01_reg = (clipper_debug_reg01_reg & ~CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_2_MASK) | (clip_to_outsm_vertex_store_indx_2 << CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_2_SHIFT)
+#define CLIPPER_DEBUG_REG01_SET_clip_to_outsm_vertex_store_indx_1(clipper_debug_reg01_reg, clip_to_outsm_vertex_store_indx_1) \
+ clipper_debug_reg01_reg = (clipper_debug_reg01_reg & ~CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_1_MASK) | (clip_to_outsm_vertex_store_indx_1 << CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_1_SHIFT)
+#define CLIPPER_DEBUG_REG01_SET_clip_to_outsm_vertex_store_indx_0(clipper_debug_reg01_reg, clip_to_outsm_vertex_store_indx_0) \
+ clipper_debug_reg01_reg = (clipper_debug_reg01_reg & ~CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_0_MASK) | (clip_to_outsm_vertex_store_indx_0 << CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_0_SHIFT)
+#define CLIPPER_DEBUG_REG01_SET_clip_vert_vte_valid(clipper_debug_reg01_reg, clip_vert_vte_valid) \
+ clipper_debug_reg01_reg = (clipper_debug_reg01_reg & ~CLIPPER_DEBUG_REG01_clip_vert_vte_valid_MASK) | (clip_vert_vte_valid << CLIPPER_DEBUG_REG01_clip_vert_vte_valid_SHIFT)
+#define CLIPPER_DEBUG_REG01_SET_vte_out_clip_rd_vertex_store_indx(clipper_debug_reg01_reg, vte_out_clip_rd_vertex_store_indx) \
+ clipper_debug_reg01_reg = (clipper_debug_reg01_reg & ~CLIPPER_DEBUG_REG01_vte_out_clip_rd_vertex_store_indx_MASK) | (vte_out_clip_rd_vertex_store_indx << CLIPPER_DEBUG_REG01_vte_out_clip_rd_vertex_store_indx_SHIFT)
+#define CLIPPER_DEBUG_REG01_SET_ALWAYS_ZERO(clipper_debug_reg01_reg, always_zero) \
+ clipper_debug_reg01_reg = (clipper_debug_reg01_reg & ~CLIPPER_DEBUG_REG01_ALWAYS_ZERO_MASK) | (always_zero << CLIPPER_DEBUG_REG01_ALWAYS_ZERO_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg01_t {
+ unsigned int clip_to_outsm_end_of_packet : CLIPPER_DEBUG_REG01_clip_to_outsm_end_of_packet_SIZE;
+ unsigned int clip_to_outsm_first_prim_of_slot : CLIPPER_DEBUG_REG01_clip_to_outsm_first_prim_of_slot_SIZE;
+ unsigned int clip_to_outsm_deallocate_slot : CLIPPER_DEBUG_REG01_clip_to_outsm_deallocate_slot_SIZE;
+ unsigned int clip_to_outsm_clipped_prim : CLIPPER_DEBUG_REG01_clip_to_outsm_clipped_prim_SIZE;
+ unsigned int clip_to_outsm_null_primitive : CLIPPER_DEBUG_REG01_clip_to_outsm_null_primitive_SIZE;
+ unsigned int clip_to_outsm_vertex_store_indx_2 : CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_2_SIZE;
+ unsigned int clip_to_outsm_vertex_store_indx_1 : CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_1_SIZE;
+ unsigned int clip_to_outsm_vertex_store_indx_0 : CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_0_SIZE;
+ unsigned int clip_vert_vte_valid : CLIPPER_DEBUG_REG01_clip_vert_vte_valid_SIZE;
+ unsigned int vte_out_clip_rd_vertex_store_indx : CLIPPER_DEBUG_REG01_vte_out_clip_rd_vertex_store_indx_SIZE;
+ unsigned int always_zero : CLIPPER_DEBUG_REG01_ALWAYS_ZERO_SIZE;
+ } clipper_debug_reg01_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg01_t {
+ unsigned int always_zero : CLIPPER_DEBUG_REG01_ALWAYS_ZERO_SIZE;
+ unsigned int vte_out_clip_rd_vertex_store_indx : CLIPPER_DEBUG_REG01_vte_out_clip_rd_vertex_store_indx_SIZE;
+ unsigned int clip_vert_vte_valid : CLIPPER_DEBUG_REG01_clip_vert_vte_valid_SIZE;
+ unsigned int clip_to_outsm_vertex_store_indx_0 : CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_0_SIZE;
+ unsigned int clip_to_outsm_vertex_store_indx_1 : CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_1_SIZE;
+ unsigned int clip_to_outsm_vertex_store_indx_2 : CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_2_SIZE;
+ unsigned int clip_to_outsm_null_primitive : CLIPPER_DEBUG_REG01_clip_to_outsm_null_primitive_SIZE;
+ unsigned int clip_to_outsm_clipped_prim : CLIPPER_DEBUG_REG01_clip_to_outsm_clipped_prim_SIZE;
+ unsigned int clip_to_outsm_deallocate_slot : CLIPPER_DEBUG_REG01_clip_to_outsm_deallocate_slot_SIZE;
+ unsigned int clip_to_outsm_first_prim_of_slot : CLIPPER_DEBUG_REG01_clip_to_outsm_first_prim_of_slot_SIZE;
+ unsigned int clip_to_outsm_end_of_packet : CLIPPER_DEBUG_REG01_clip_to_outsm_end_of_packet_SIZE;
+ } clipper_debug_reg01_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ clipper_debug_reg01_t f;
+} clipper_debug_reg01_u;
+
+
+/*
+ * CLIPPER_DEBUG_REG02 struct
+ */
+
+#define CLIPPER_DEBUG_REG02_ALWAYS_ZERO1_SIZE 21
+#define CLIPPER_DEBUG_REG02_clipsm0_clip_to_clipga_clip_to_outsm_cnt_SIZE 3
+#define CLIPPER_DEBUG_REG02_ALWAYS_ZERO0_SIZE 7
+#define CLIPPER_DEBUG_REG02_clipsm0_clprim_to_clip_prim_valid_SIZE 1
+
+#define CLIPPER_DEBUG_REG02_ALWAYS_ZERO1_SHIFT 0
+#define CLIPPER_DEBUG_REG02_clipsm0_clip_to_clipga_clip_to_outsm_cnt_SHIFT 21
+#define CLIPPER_DEBUG_REG02_ALWAYS_ZERO0_SHIFT 24
+#define CLIPPER_DEBUG_REG02_clipsm0_clprim_to_clip_prim_valid_SHIFT 31
+
+#define CLIPPER_DEBUG_REG02_ALWAYS_ZERO1_MASK 0x001fffff
+#define CLIPPER_DEBUG_REG02_clipsm0_clip_to_clipga_clip_to_outsm_cnt_MASK 0x00e00000
+#define CLIPPER_DEBUG_REG02_ALWAYS_ZERO0_MASK 0x7f000000
+#define CLIPPER_DEBUG_REG02_clipsm0_clprim_to_clip_prim_valid_MASK 0x80000000
+
+#define CLIPPER_DEBUG_REG02_MASK \
+ (CLIPPER_DEBUG_REG02_ALWAYS_ZERO1_MASK | \
+ CLIPPER_DEBUG_REG02_clipsm0_clip_to_clipga_clip_to_outsm_cnt_MASK | \
+ CLIPPER_DEBUG_REG02_ALWAYS_ZERO0_MASK | \
+ CLIPPER_DEBUG_REG02_clipsm0_clprim_to_clip_prim_valid_MASK)
+
+#define CLIPPER_DEBUG_REG02(always_zero1, clipsm0_clip_to_clipga_clip_to_outsm_cnt, always_zero0, clipsm0_clprim_to_clip_prim_valid) \
+ ((always_zero1 << CLIPPER_DEBUG_REG02_ALWAYS_ZERO1_SHIFT) | \
+ (clipsm0_clip_to_clipga_clip_to_outsm_cnt << CLIPPER_DEBUG_REG02_clipsm0_clip_to_clipga_clip_to_outsm_cnt_SHIFT) | \
+ (always_zero0 << CLIPPER_DEBUG_REG02_ALWAYS_ZERO0_SHIFT) | \
+ (clipsm0_clprim_to_clip_prim_valid << CLIPPER_DEBUG_REG02_clipsm0_clprim_to_clip_prim_valid_SHIFT))
+
+#define CLIPPER_DEBUG_REG02_GET_ALWAYS_ZERO1(clipper_debug_reg02) \
+ ((clipper_debug_reg02 & CLIPPER_DEBUG_REG02_ALWAYS_ZERO1_MASK) >> CLIPPER_DEBUG_REG02_ALWAYS_ZERO1_SHIFT)
+#define CLIPPER_DEBUG_REG02_GET_clipsm0_clip_to_clipga_clip_to_outsm_cnt(clipper_debug_reg02) \
+ ((clipper_debug_reg02 & CLIPPER_DEBUG_REG02_clipsm0_clip_to_clipga_clip_to_outsm_cnt_MASK) >> CLIPPER_DEBUG_REG02_clipsm0_clip_to_clipga_clip_to_outsm_cnt_SHIFT)
+#define CLIPPER_DEBUG_REG02_GET_ALWAYS_ZERO0(clipper_debug_reg02) \
+ ((clipper_debug_reg02 & CLIPPER_DEBUG_REG02_ALWAYS_ZERO0_MASK) >> CLIPPER_DEBUG_REG02_ALWAYS_ZERO0_SHIFT)
+#define CLIPPER_DEBUG_REG02_GET_clipsm0_clprim_to_clip_prim_valid(clipper_debug_reg02) \
+ ((clipper_debug_reg02 & CLIPPER_DEBUG_REG02_clipsm0_clprim_to_clip_prim_valid_MASK) >> CLIPPER_DEBUG_REG02_clipsm0_clprim_to_clip_prim_valid_SHIFT)
+
+#define CLIPPER_DEBUG_REG02_SET_ALWAYS_ZERO1(clipper_debug_reg02_reg, always_zero1) \
+ clipper_debug_reg02_reg = (clipper_debug_reg02_reg & ~CLIPPER_DEBUG_REG02_ALWAYS_ZERO1_MASK) | (always_zero1 << CLIPPER_DEBUG_REG02_ALWAYS_ZERO1_SHIFT)
+#define CLIPPER_DEBUG_REG02_SET_clipsm0_clip_to_clipga_clip_to_outsm_cnt(clipper_debug_reg02_reg, clipsm0_clip_to_clipga_clip_to_outsm_cnt) \
+ clipper_debug_reg02_reg = (clipper_debug_reg02_reg & ~CLIPPER_DEBUG_REG02_clipsm0_clip_to_clipga_clip_to_outsm_cnt_MASK) | (clipsm0_clip_to_clipga_clip_to_outsm_cnt << CLIPPER_DEBUG_REG02_clipsm0_clip_to_clipga_clip_to_outsm_cnt_SHIFT)
+#define CLIPPER_DEBUG_REG02_SET_ALWAYS_ZERO0(clipper_debug_reg02_reg, always_zero0) \
+ clipper_debug_reg02_reg = (clipper_debug_reg02_reg & ~CLIPPER_DEBUG_REG02_ALWAYS_ZERO0_MASK) | (always_zero0 << CLIPPER_DEBUG_REG02_ALWAYS_ZERO0_SHIFT)
+#define CLIPPER_DEBUG_REG02_SET_clipsm0_clprim_to_clip_prim_valid(clipper_debug_reg02_reg, clipsm0_clprim_to_clip_prim_valid) \
+ clipper_debug_reg02_reg = (clipper_debug_reg02_reg & ~CLIPPER_DEBUG_REG02_clipsm0_clprim_to_clip_prim_valid_MASK) | (clipsm0_clprim_to_clip_prim_valid << CLIPPER_DEBUG_REG02_clipsm0_clprim_to_clip_prim_valid_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg02_t {
+ unsigned int always_zero1 : CLIPPER_DEBUG_REG02_ALWAYS_ZERO1_SIZE;
+ unsigned int clipsm0_clip_to_clipga_clip_to_outsm_cnt : CLIPPER_DEBUG_REG02_clipsm0_clip_to_clipga_clip_to_outsm_cnt_SIZE;
+ unsigned int always_zero0 : CLIPPER_DEBUG_REG02_ALWAYS_ZERO0_SIZE;
+ unsigned int clipsm0_clprim_to_clip_prim_valid : CLIPPER_DEBUG_REG02_clipsm0_clprim_to_clip_prim_valid_SIZE;
+ } clipper_debug_reg02_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg02_t {
+ unsigned int clipsm0_clprim_to_clip_prim_valid : CLIPPER_DEBUG_REG02_clipsm0_clprim_to_clip_prim_valid_SIZE;
+ unsigned int always_zero0 : CLIPPER_DEBUG_REG02_ALWAYS_ZERO0_SIZE;
+ unsigned int clipsm0_clip_to_clipga_clip_to_outsm_cnt : CLIPPER_DEBUG_REG02_clipsm0_clip_to_clipga_clip_to_outsm_cnt_SIZE;
+ unsigned int always_zero1 : CLIPPER_DEBUG_REG02_ALWAYS_ZERO1_SIZE;
+ } clipper_debug_reg02_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ clipper_debug_reg02_t f;
+} clipper_debug_reg02_u;
+
+
+/*
+ * CLIPPER_DEBUG_REG03 struct
+ */
+
+#define CLIPPER_DEBUG_REG03_ALWAYS_ZERO3_SIZE 3
+#define CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_primitive_SIZE 1
+#define CLIPPER_DEBUG_REG03_ALWAYS_ZERO2_SIZE 3
+#define CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_null_primitive_SIZE 1
+#define CLIPPER_DEBUG_REG03_ALWAYS_ZERO1_SIZE 12
+#define CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_code_or_SIZE 6
+#define CLIPPER_DEBUG_REG03_ALWAYS_ZERO0_SIZE 6
+
+#define CLIPPER_DEBUG_REG03_ALWAYS_ZERO3_SHIFT 0
+#define CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_primitive_SHIFT 3
+#define CLIPPER_DEBUG_REG03_ALWAYS_ZERO2_SHIFT 4
+#define CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_null_primitive_SHIFT 7
+#define CLIPPER_DEBUG_REG03_ALWAYS_ZERO1_SHIFT 8
+#define CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_code_or_SHIFT 20
+#define CLIPPER_DEBUG_REG03_ALWAYS_ZERO0_SHIFT 26
+
+#define CLIPPER_DEBUG_REG03_ALWAYS_ZERO3_MASK 0x00000007
+#define CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_primitive_MASK 0x00000008
+#define CLIPPER_DEBUG_REG03_ALWAYS_ZERO2_MASK 0x00000070
+#define CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_null_primitive_MASK 0x00000080
+#define CLIPPER_DEBUG_REG03_ALWAYS_ZERO1_MASK 0x000fff00
+#define CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_code_or_MASK 0x03f00000
+#define CLIPPER_DEBUG_REG03_ALWAYS_ZERO0_MASK 0xfc000000
+
+#define CLIPPER_DEBUG_REG03_MASK \
+ (CLIPPER_DEBUG_REG03_ALWAYS_ZERO3_MASK | \
+ CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_primitive_MASK | \
+ CLIPPER_DEBUG_REG03_ALWAYS_ZERO2_MASK | \
+ CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_null_primitive_MASK | \
+ CLIPPER_DEBUG_REG03_ALWAYS_ZERO1_MASK | \
+ CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_code_or_MASK | \
+ CLIPPER_DEBUG_REG03_ALWAYS_ZERO0_MASK)
+
+#define CLIPPER_DEBUG_REG03(always_zero3, clipsm0_clprim_to_clip_clip_primitive, always_zero2, clipsm0_clprim_to_clip_null_primitive, always_zero1, clipsm0_clprim_to_clip_clip_code_or, always_zero0) \
+ ((always_zero3 << CLIPPER_DEBUG_REG03_ALWAYS_ZERO3_SHIFT) | \
+ (clipsm0_clprim_to_clip_clip_primitive << CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_primitive_SHIFT) | \
+ (always_zero2 << CLIPPER_DEBUG_REG03_ALWAYS_ZERO2_SHIFT) | \
+ (clipsm0_clprim_to_clip_null_primitive << CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_null_primitive_SHIFT) | \
+ (always_zero1 << CLIPPER_DEBUG_REG03_ALWAYS_ZERO1_SHIFT) | \
+ (clipsm0_clprim_to_clip_clip_code_or << CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_code_or_SHIFT) | \
+ (always_zero0 << CLIPPER_DEBUG_REG03_ALWAYS_ZERO0_SHIFT))
+
+#define CLIPPER_DEBUG_REG03_GET_ALWAYS_ZERO3(clipper_debug_reg03) \
+ ((clipper_debug_reg03 & CLIPPER_DEBUG_REG03_ALWAYS_ZERO3_MASK) >> CLIPPER_DEBUG_REG03_ALWAYS_ZERO3_SHIFT)
+#define CLIPPER_DEBUG_REG03_GET_clipsm0_clprim_to_clip_clip_primitive(clipper_debug_reg03) \
+ ((clipper_debug_reg03 & CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_primitive_MASK) >> CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_primitive_SHIFT)
+#define CLIPPER_DEBUG_REG03_GET_ALWAYS_ZERO2(clipper_debug_reg03) \
+ ((clipper_debug_reg03 & CLIPPER_DEBUG_REG03_ALWAYS_ZERO2_MASK) >> CLIPPER_DEBUG_REG03_ALWAYS_ZERO2_SHIFT)
+#define CLIPPER_DEBUG_REG03_GET_clipsm0_clprim_to_clip_null_primitive(clipper_debug_reg03) \
+ ((clipper_debug_reg03 & CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_null_primitive_MASK) >> CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_null_primitive_SHIFT)
+#define CLIPPER_DEBUG_REG03_GET_ALWAYS_ZERO1(clipper_debug_reg03) \
+ ((clipper_debug_reg03 & CLIPPER_DEBUG_REG03_ALWAYS_ZERO1_MASK) >> CLIPPER_DEBUG_REG03_ALWAYS_ZERO1_SHIFT)
+#define CLIPPER_DEBUG_REG03_GET_clipsm0_clprim_to_clip_clip_code_or(clipper_debug_reg03) \
+ ((clipper_debug_reg03 & CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_code_or_MASK) >> CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_code_or_SHIFT)
+#define CLIPPER_DEBUG_REG03_GET_ALWAYS_ZERO0(clipper_debug_reg03) \
+ ((clipper_debug_reg03 & CLIPPER_DEBUG_REG03_ALWAYS_ZERO0_MASK) >> CLIPPER_DEBUG_REG03_ALWAYS_ZERO0_SHIFT)
+
+#define CLIPPER_DEBUG_REG03_SET_ALWAYS_ZERO3(clipper_debug_reg03_reg, always_zero3) \
+ clipper_debug_reg03_reg = (clipper_debug_reg03_reg & ~CLIPPER_DEBUG_REG03_ALWAYS_ZERO3_MASK) | (always_zero3 << CLIPPER_DEBUG_REG03_ALWAYS_ZERO3_SHIFT)
+#define CLIPPER_DEBUG_REG03_SET_clipsm0_clprim_to_clip_clip_primitive(clipper_debug_reg03_reg, clipsm0_clprim_to_clip_clip_primitive) \
+ clipper_debug_reg03_reg = (clipper_debug_reg03_reg & ~CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_primitive_MASK) | (clipsm0_clprim_to_clip_clip_primitive << CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_primitive_SHIFT)
+#define CLIPPER_DEBUG_REG03_SET_ALWAYS_ZERO2(clipper_debug_reg03_reg, always_zero2) \
+ clipper_debug_reg03_reg = (clipper_debug_reg03_reg & ~CLIPPER_DEBUG_REG03_ALWAYS_ZERO2_MASK) | (always_zero2 << CLIPPER_DEBUG_REG03_ALWAYS_ZERO2_SHIFT)
+#define CLIPPER_DEBUG_REG03_SET_clipsm0_clprim_to_clip_null_primitive(clipper_debug_reg03_reg, clipsm0_clprim_to_clip_null_primitive) \
+ clipper_debug_reg03_reg = (clipper_debug_reg03_reg & ~CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_null_primitive_MASK) | (clipsm0_clprim_to_clip_null_primitive << CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_null_primitive_SHIFT)
+#define CLIPPER_DEBUG_REG03_SET_ALWAYS_ZERO1(clipper_debug_reg03_reg, always_zero1) \
+ clipper_debug_reg03_reg = (clipper_debug_reg03_reg & ~CLIPPER_DEBUG_REG03_ALWAYS_ZERO1_MASK) | (always_zero1 << CLIPPER_DEBUG_REG03_ALWAYS_ZERO1_SHIFT)
+#define CLIPPER_DEBUG_REG03_SET_clipsm0_clprim_to_clip_clip_code_or(clipper_debug_reg03_reg, clipsm0_clprim_to_clip_clip_code_or) \
+ clipper_debug_reg03_reg = (clipper_debug_reg03_reg & ~CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_code_or_MASK) | (clipsm0_clprim_to_clip_clip_code_or << CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_code_or_SHIFT)
+#define CLIPPER_DEBUG_REG03_SET_ALWAYS_ZERO0(clipper_debug_reg03_reg, always_zero0) \
+ clipper_debug_reg03_reg = (clipper_debug_reg03_reg & ~CLIPPER_DEBUG_REG03_ALWAYS_ZERO0_MASK) | (always_zero0 << CLIPPER_DEBUG_REG03_ALWAYS_ZERO0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg03_t {
+ unsigned int always_zero3 : CLIPPER_DEBUG_REG03_ALWAYS_ZERO3_SIZE;
+ unsigned int clipsm0_clprim_to_clip_clip_primitive : CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_primitive_SIZE;
+ unsigned int always_zero2 : CLIPPER_DEBUG_REG03_ALWAYS_ZERO2_SIZE;
+ unsigned int clipsm0_clprim_to_clip_null_primitive : CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_null_primitive_SIZE;
+ unsigned int always_zero1 : CLIPPER_DEBUG_REG03_ALWAYS_ZERO1_SIZE;
+ unsigned int clipsm0_clprim_to_clip_clip_code_or : CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_code_or_SIZE;
+ unsigned int always_zero0 : CLIPPER_DEBUG_REG03_ALWAYS_ZERO0_SIZE;
+ } clipper_debug_reg03_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg03_t {
+ unsigned int always_zero0 : CLIPPER_DEBUG_REG03_ALWAYS_ZERO0_SIZE;
+ unsigned int clipsm0_clprim_to_clip_clip_code_or : CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_code_or_SIZE;
+ unsigned int always_zero1 : CLIPPER_DEBUG_REG03_ALWAYS_ZERO1_SIZE;
+ unsigned int clipsm0_clprim_to_clip_null_primitive : CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_null_primitive_SIZE;
+ unsigned int always_zero2 : CLIPPER_DEBUG_REG03_ALWAYS_ZERO2_SIZE;
+ unsigned int clipsm0_clprim_to_clip_clip_primitive : CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_primitive_SIZE;
+ unsigned int always_zero3 : CLIPPER_DEBUG_REG03_ALWAYS_ZERO3_SIZE;
+ } clipper_debug_reg03_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ clipper_debug_reg03_t f;
+} clipper_debug_reg03_u;
+
+
+/*
+ * CLIPPER_DEBUG_REG04 struct
+ */
+
+#define CLIPPER_DEBUG_REG04_ALWAYS_ZERO2_SIZE 3
+#define CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_first_prim_of_slot_SIZE 1
+#define CLIPPER_DEBUG_REG04_ALWAYS_ZERO1_SIZE 3
+#define CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_event_SIZE 1
+#define CLIPPER_DEBUG_REG04_ALWAYS_ZERO0_SIZE 24
+
+#define CLIPPER_DEBUG_REG04_ALWAYS_ZERO2_SHIFT 0
+#define CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_first_prim_of_slot_SHIFT 3
+#define CLIPPER_DEBUG_REG04_ALWAYS_ZERO1_SHIFT 4
+#define CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_event_SHIFT 7
+#define CLIPPER_DEBUG_REG04_ALWAYS_ZERO0_SHIFT 8
+
+#define CLIPPER_DEBUG_REG04_ALWAYS_ZERO2_MASK 0x00000007
+#define CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_first_prim_of_slot_MASK 0x00000008
+#define CLIPPER_DEBUG_REG04_ALWAYS_ZERO1_MASK 0x00000070
+#define CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_event_MASK 0x00000080
+#define CLIPPER_DEBUG_REG04_ALWAYS_ZERO0_MASK 0xffffff00
+
+#define CLIPPER_DEBUG_REG04_MASK \
+ (CLIPPER_DEBUG_REG04_ALWAYS_ZERO2_MASK | \
+ CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_first_prim_of_slot_MASK | \
+ CLIPPER_DEBUG_REG04_ALWAYS_ZERO1_MASK | \
+ CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_event_MASK | \
+ CLIPPER_DEBUG_REG04_ALWAYS_ZERO0_MASK)
+
+#define CLIPPER_DEBUG_REG04(always_zero2, clipsm0_clprim_to_clip_first_prim_of_slot, always_zero1, clipsm0_clprim_to_clip_event, always_zero0) \
+ ((always_zero2 << CLIPPER_DEBUG_REG04_ALWAYS_ZERO2_SHIFT) | \
+ (clipsm0_clprim_to_clip_first_prim_of_slot << CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_first_prim_of_slot_SHIFT) | \
+ (always_zero1 << CLIPPER_DEBUG_REG04_ALWAYS_ZERO1_SHIFT) | \
+ (clipsm0_clprim_to_clip_event << CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_event_SHIFT) | \
+ (always_zero0 << CLIPPER_DEBUG_REG04_ALWAYS_ZERO0_SHIFT))
+
+#define CLIPPER_DEBUG_REG04_GET_ALWAYS_ZERO2(clipper_debug_reg04) \
+ ((clipper_debug_reg04 & CLIPPER_DEBUG_REG04_ALWAYS_ZERO2_MASK) >> CLIPPER_DEBUG_REG04_ALWAYS_ZERO2_SHIFT)
+#define CLIPPER_DEBUG_REG04_GET_clipsm0_clprim_to_clip_first_prim_of_slot(clipper_debug_reg04) \
+ ((clipper_debug_reg04 & CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_first_prim_of_slot_MASK) >> CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_first_prim_of_slot_SHIFT)
+#define CLIPPER_DEBUG_REG04_GET_ALWAYS_ZERO1(clipper_debug_reg04) \
+ ((clipper_debug_reg04 & CLIPPER_DEBUG_REG04_ALWAYS_ZERO1_MASK) >> CLIPPER_DEBUG_REG04_ALWAYS_ZERO1_SHIFT)
+#define CLIPPER_DEBUG_REG04_GET_clipsm0_clprim_to_clip_event(clipper_debug_reg04) \
+ ((clipper_debug_reg04 & CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_event_MASK) >> CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_event_SHIFT)
+#define CLIPPER_DEBUG_REG04_GET_ALWAYS_ZERO0(clipper_debug_reg04) \
+ ((clipper_debug_reg04 & CLIPPER_DEBUG_REG04_ALWAYS_ZERO0_MASK) >> CLIPPER_DEBUG_REG04_ALWAYS_ZERO0_SHIFT)
+
+#define CLIPPER_DEBUG_REG04_SET_ALWAYS_ZERO2(clipper_debug_reg04_reg, always_zero2) \
+ clipper_debug_reg04_reg = (clipper_debug_reg04_reg & ~CLIPPER_DEBUG_REG04_ALWAYS_ZERO2_MASK) | (always_zero2 << CLIPPER_DEBUG_REG04_ALWAYS_ZERO2_SHIFT)
+#define CLIPPER_DEBUG_REG04_SET_clipsm0_clprim_to_clip_first_prim_of_slot(clipper_debug_reg04_reg, clipsm0_clprim_to_clip_first_prim_of_slot) \
+ clipper_debug_reg04_reg = (clipper_debug_reg04_reg & ~CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_first_prim_of_slot_MASK) | (clipsm0_clprim_to_clip_first_prim_of_slot << CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_first_prim_of_slot_SHIFT)
+#define CLIPPER_DEBUG_REG04_SET_ALWAYS_ZERO1(clipper_debug_reg04_reg, always_zero1) \
+ clipper_debug_reg04_reg = (clipper_debug_reg04_reg & ~CLIPPER_DEBUG_REG04_ALWAYS_ZERO1_MASK) | (always_zero1 << CLIPPER_DEBUG_REG04_ALWAYS_ZERO1_SHIFT)
+#define CLIPPER_DEBUG_REG04_SET_clipsm0_clprim_to_clip_event(clipper_debug_reg04_reg, clipsm0_clprim_to_clip_event) \
+ clipper_debug_reg04_reg = (clipper_debug_reg04_reg & ~CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_event_MASK) | (clipsm0_clprim_to_clip_event << CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_event_SHIFT)
+#define CLIPPER_DEBUG_REG04_SET_ALWAYS_ZERO0(clipper_debug_reg04_reg, always_zero0) \
+ clipper_debug_reg04_reg = (clipper_debug_reg04_reg & ~CLIPPER_DEBUG_REG04_ALWAYS_ZERO0_MASK) | (always_zero0 << CLIPPER_DEBUG_REG04_ALWAYS_ZERO0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg04_t {
+ unsigned int always_zero2 : CLIPPER_DEBUG_REG04_ALWAYS_ZERO2_SIZE;
+ unsigned int clipsm0_clprim_to_clip_first_prim_of_slot : CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_first_prim_of_slot_SIZE;
+ unsigned int always_zero1 : CLIPPER_DEBUG_REG04_ALWAYS_ZERO1_SIZE;
+ unsigned int clipsm0_clprim_to_clip_event : CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_event_SIZE;
+ unsigned int always_zero0 : CLIPPER_DEBUG_REG04_ALWAYS_ZERO0_SIZE;
+ } clipper_debug_reg04_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg04_t {
+ unsigned int always_zero0 : CLIPPER_DEBUG_REG04_ALWAYS_ZERO0_SIZE;
+ unsigned int clipsm0_clprim_to_clip_event : CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_event_SIZE;
+ unsigned int always_zero1 : CLIPPER_DEBUG_REG04_ALWAYS_ZERO1_SIZE;
+ unsigned int clipsm0_clprim_to_clip_first_prim_of_slot : CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_first_prim_of_slot_SIZE;
+ unsigned int always_zero2 : CLIPPER_DEBUG_REG04_ALWAYS_ZERO2_SIZE;
+ } clipper_debug_reg04_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ clipper_debug_reg04_t f;
+} clipper_debug_reg04_u;
+
+
+/*
+ * CLIPPER_DEBUG_REG05 struct
+ */
+
+#define CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_state_var_indx_SIZE 1
+#define CLIPPER_DEBUG_REG05_ALWAYS_ZERO3_SIZE 2
+#define CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_deallocate_slot_SIZE 3
+#define CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_event_id_SIZE 6
+#define CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_2_SIZE 4
+#define CLIPPER_DEBUG_REG05_ALWAYS_ZERO2_SIZE 2
+#define CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_1_SIZE 4
+#define CLIPPER_DEBUG_REG05_ALWAYS_ZERO1_SIZE 2
+#define CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_0_SIZE 4
+#define CLIPPER_DEBUG_REG05_ALWAYS_ZERO0_SIZE 4
+
+#define CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_state_var_indx_SHIFT 0
+#define CLIPPER_DEBUG_REG05_ALWAYS_ZERO3_SHIFT 1
+#define CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_deallocate_slot_SHIFT 3
+#define CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_event_id_SHIFT 6
+#define CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_2_SHIFT 12
+#define CLIPPER_DEBUG_REG05_ALWAYS_ZERO2_SHIFT 16
+#define CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_1_SHIFT 18
+#define CLIPPER_DEBUG_REG05_ALWAYS_ZERO1_SHIFT 22
+#define CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_0_SHIFT 24
+#define CLIPPER_DEBUG_REG05_ALWAYS_ZERO0_SHIFT 28
+
+#define CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_state_var_indx_MASK 0x00000001
+#define CLIPPER_DEBUG_REG05_ALWAYS_ZERO3_MASK 0x00000006
+#define CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_deallocate_slot_MASK 0x00000038
+#define CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_event_id_MASK 0x00000fc0
+#define CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_2_MASK 0x0000f000
+#define CLIPPER_DEBUG_REG05_ALWAYS_ZERO2_MASK 0x00030000
+#define CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_1_MASK 0x003c0000
+#define CLIPPER_DEBUG_REG05_ALWAYS_ZERO1_MASK 0x00c00000
+#define CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_0_MASK 0x0f000000
+#define CLIPPER_DEBUG_REG05_ALWAYS_ZERO0_MASK 0xf0000000
+
+#define CLIPPER_DEBUG_REG05_MASK \
+ (CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_state_var_indx_MASK | \
+ CLIPPER_DEBUG_REG05_ALWAYS_ZERO3_MASK | \
+ CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_deallocate_slot_MASK | \
+ CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_event_id_MASK | \
+ CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_2_MASK | \
+ CLIPPER_DEBUG_REG05_ALWAYS_ZERO2_MASK | \
+ CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_1_MASK | \
+ CLIPPER_DEBUG_REG05_ALWAYS_ZERO1_MASK | \
+ CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_0_MASK | \
+ CLIPPER_DEBUG_REG05_ALWAYS_ZERO0_MASK)
+
+#define CLIPPER_DEBUG_REG05(clipsm0_clprim_to_clip_state_var_indx, always_zero3, clipsm0_clprim_to_clip_deallocate_slot, clipsm0_clprim_to_clip_event_id, clipsm0_clprim_to_clip_vertex_store_indx_2, always_zero2, clipsm0_clprim_to_clip_vertex_store_indx_1, always_zero1, clipsm0_clprim_to_clip_vertex_store_indx_0, always_zero0) \
+ ((clipsm0_clprim_to_clip_state_var_indx << CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_state_var_indx_SHIFT) | \
+ (always_zero3 << CLIPPER_DEBUG_REG05_ALWAYS_ZERO3_SHIFT) | \
+ (clipsm0_clprim_to_clip_deallocate_slot << CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_deallocate_slot_SHIFT) | \
+ (clipsm0_clprim_to_clip_event_id << CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_event_id_SHIFT) | \
+ (clipsm0_clprim_to_clip_vertex_store_indx_2 << CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_2_SHIFT) | \
+ (always_zero2 << CLIPPER_DEBUG_REG05_ALWAYS_ZERO2_SHIFT) | \
+ (clipsm0_clprim_to_clip_vertex_store_indx_1 << CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_1_SHIFT) | \
+ (always_zero1 << CLIPPER_DEBUG_REG05_ALWAYS_ZERO1_SHIFT) | \
+ (clipsm0_clprim_to_clip_vertex_store_indx_0 << CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_0_SHIFT) | \
+ (always_zero0 << CLIPPER_DEBUG_REG05_ALWAYS_ZERO0_SHIFT))
+
+#define CLIPPER_DEBUG_REG05_GET_clipsm0_clprim_to_clip_state_var_indx(clipper_debug_reg05) \
+ ((clipper_debug_reg05 & CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_state_var_indx_MASK) >> CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_state_var_indx_SHIFT)
+#define CLIPPER_DEBUG_REG05_GET_ALWAYS_ZERO3(clipper_debug_reg05) \
+ ((clipper_debug_reg05 & CLIPPER_DEBUG_REG05_ALWAYS_ZERO3_MASK) >> CLIPPER_DEBUG_REG05_ALWAYS_ZERO3_SHIFT)
+#define CLIPPER_DEBUG_REG05_GET_clipsm0_clprim_to_clip_deallocate_slot(clipper_debug_reg05) \
+ ((clipper_debug_reg05 & CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_deallocate_slot_MASK) >> CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_deallocate_slot_SHIFT)
+#define CLIPPER_DEBUG_REG05_GET_clipsm0_clprim_to_clip_event_id(clipper_debug_reg05) \
+ ((clipper_debug_reg05 & CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_event_id_MASK) >> CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_event_id_SHIFT)
+#define CLIPPER_DEBUG_REG05_GET_clipsm0_clprim_to_clip_vertex_store_indx_2(clipper_debug_reg05) \
+ ((clipper_debug_reg05 & CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_2_MASK) >> CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_2_SHIFT)
+#define CLIPPER_DEBUG_REG05_GET_ALWAYS_ZERO2(clipper_debug_reg05) \
+ ((clipper_debug_reg05 & CLIPPER_DEBUG_REG05_ALWAYS_ZERO2_MASK) >> CLIPPER_DEBUG_REG05_ALWAYS_ZERO2_SHIFT)
+#define CLIPPER_DEBUG_REG05_GET_clipsm0_clprim_to_clip_vertex_store_indx_1(clipper_debug_reg05) \
+ ((clipper_debug_reg05 & CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_1_MASK) >> CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_1_SHIFT)
+#define CLIPPER_DEBUG_REG05_GET_ALWAYS_ZERO1(clipper_debug_reg05) \
+ ((clipper_debug_reg05 & CLIPPER_DEBUG_REG05_ALWAYS_ZERO1_MASK) >> CLIPPER_DEBUG_REG05_ALWAYS_ZERO1_SHIFT)
+#define CLIPPER_DEBUG_REG05_GET_clipsm0_clprim_to_clip_vertex_store_indx_0(clipper_debug_reg05) \
+ ((clipper_debug_reg05 & CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_0_MASK) >> CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_0_SHIFT)
+#define CLIPPER_DEBUG_REG05_GET_ALWAYS_ZERO0(clipper_debug_reg05) \
+ ((clipper_debug_reg05 & CLIPPER_DEBUG_REG05_ALWAYS_ZERO0_MASK) >> CLIPPER_DEBUG_REG05_ALWAYS_ZERO0_SHIFT)
+
+#define CLIPPER_DEBUG_REG05_SET_clipsm0_clprim_to_clip_state_var_indx(clipper_debug_reg05_reg, clipsm0_clprim_to_clip_state_var_indx) \
+ clipper_debug_reg05_reg = (clipper_debug_reg05_reg & ~CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_state_var_indx_MASK) | (clipsm0_clprim_to_clip_state_var_indx << CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_state_var_indx_SHIFT)
+#define CLIPPER_DEBUG_REG05_SET_ALWAYS_ZERO3(clipper_debug_reg05_reg, always_zero3) \
+ clipper_debug_reg05_reg = (clipper_debug_reg05_reg & ~CLIPPER_DEBUG_REG05_ALWAYS_ZERO3_MASK) | (always_zero3 << CLIPPER_DEBUG_REG05_ALWAYS_ZERO3_SHIFT)
+#define CLIPPER_DEBUG_REG05_SET_clipsm0_clprim_to_clip_deallocate_slot(clipper_debug_reg05_reg, clipsm0_clprim_to_clip_deallocate_slot) \
+ clipper_debug_reg05_reg = (clipper_debug_reg05_reg & ~CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_deallocate_slot_MASK) | (clipsm0_clprim_to_clip_deallocate_slot << CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_deallocate_slot_SHIFT)
+#define CLIPPER_DEBUG_REG05_SET_clipsm0_clprim_to_clip_event_id(clipper_debug_reg05_reg, clipsm0_clprim_to_clip_event_id) \
+ clipper_debug_reg05_reg = (clipper_debug_reg05_reg & ~CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_event_id_MASK) | (clipsm0_clprim_to_clip_event_id << CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_event_id_SHIFT)
+#define CLIPPER_DEBUG_REG05_SET_clipsm0_clprim_to_clip_vertex_store_indx_2(clipper_debug_reg05_reg, clipsm0_clprim_to_clip_vertex_store_indx_2) \
+ clipper_debug_reg05_reg = (clipper_debug_reg05_reg & ~CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_2_MASK) | (clipsm0_clprim_to_clip_vertex_store_indx_2 << CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_2_SHIFT)
+#define CLIPPER_DEBUG_REG05_SET_ALWAYS_ZERO2(clipper_debug_reg05_reg, always_zero2) \
+ clipper_debug_reg05_reg = (clipper_debug_reg05_reg & ~CLIPPER_DEBUG_REG05_ALWAYS_ZERO2_MASK) | (always_zero2 << CLIPPER_DEBUG_REG05_ALWAYS_ZERO2_SHIFT)
+#define CLIPPER_DEBUG_REG05_SET_clipsm0_clprim_to_clip_vertex_store_indx_1(clipper_debug_reg05_reg, clipsm0_clprim_to_clip_vertex_store_indx_1) \
+ clipper_debug_reg05_reg = (clipper_debug_reg05_reg & ~CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_1_MASK) | (clipsm0_clprim_to_clip_vertex_store_indx_1 << CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_1_SHIFT)
+#define CLIPPER_DEBUG_REG05_SET_ALWAYS_ZERO1(clipper_debug_reg05_reg, always_zero1) \
+ clipper_debug_reg05_reg = (clipper_debug_reg05_reg & ~CLIPPER_DEBUG_REG05_ALWAYS_ZERO1_MASK) | (always_zero1 << CLIPPER_DEBUG_REG05_ALWAYS_ZERO1_SHIFT)
+#define CLIPPER_DEBUG_REG05_SET_clipsm0_clprim_to_clip_vertex_store_indx_0(clipper_debug_reg05_reg, clipsm0_clprim_to_clip_vertex_store_indx_0) \
+ clipper_debug_reg05_reg = (clipper_debug_reg05_reg & ~CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_0_MASK) | (clipsm0_clprim_to_clip_vertex_store_indx_0 << CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_0_SHIFT)
+#define CLIPPER_DEBUG_REG05_SET_ALWAYS_ZERO0(clipper_debug_reg05_reg, always_zero0) \
+ clipper_debug_reg05_reg = (clipper_debug_reg05_reg & ~CLIPPER_DEBUG_REG05_ALWAYS_ZERO0_MASK) | (always_zero0 << CLIPPER_DEBUG_REG05_ALWAYS_ZERO0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg05_t {
+ unsigned int clipsm0_clprim_to_clip_state_var_indx : CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_state_var_indx_SIZE;
+ unsigned int always_zero3 : CLIPPER_DEBUG_REG05_ALWAYS_ZERO3_SIZE;
+ unsigned int clipsm0_clprim_to_clip_deallocate_slot : CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_deallocate_slot_SIZE;
+ unsigned int clipsm0_clprim_to_clip_event_id : CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_event_id_SIZE;
+ unsigned int clipsm0_clprim_to_clip_vertex_store_indx_2 : CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_2_SIZE;
+ unsigned int always_zero2 : CLIPPER_DEBUG_REG05_ALWAYS_ZERO2_SIZE;
+ unsigned int clipsm0_clprim_to_clip_vertex_store_indx_1 : CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_1_SIZE;
+ unsigned int always_zero1 : CLIPPER_DEBUG_REG05_ALWAYS_ZERO1_SIZE;
+ unsigned int clipsm0_clprim_to_clip_vertex_store_indx_0 : CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_0_SIZE;
+ unsigned int always_zero0 : CLIPPER_DEBUG_REG05_ALWAYS_ZERO0_SIZE;
+ } clipper_debug_reg05_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg05_t {
+ unsigned int always_zero0 : CLIPPER_DEBUG_REG05_ALWAYS_ZERO0_SIZE;
+ unsigned int clipsm0_clprim_to_clip_vertex_store_indx_0 : CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_0_SIZE;
+ unsigned int always_zero1 : CLIPPER_DEBUG_REG05_ALWAYS_ZERO1_SIZE;
+ unsigned int clipsm0_clprim_to_clip_vertex_store_indx_1 : CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_1_SIZE;
+ unsigned int always_zero2 : CLIPPER_DEBUG_REG05_ALWAYS_ZERO2_SIZE;
+ unsigned int clipsm0_clprim_to_clip_vertex_store_indx_2 : CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_2_SIZE;
+ unsigned int clipsm0_clprim_to_clip_event_id : CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_event_id_SIZE;
+ unsigned int clipsm0_clprim_to_clip_deallocate_slot : CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_deallocate_slot_SIZE;
+ unsigned int always_zero3 : CLIPPER_DEBUG_REG05_ALWAYS_ZERO3_SIZE;
+ unsigned int clipsm0_clprim_to_clip_state_var_indx : CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_state_var_indx_SIZE;
+ } clipper_debug_reg05_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ clipper_debug_reg05_t f;
+} clipper_debug_reg05_u;
+
+
+/*
+ * CLIPPER_DEBUG_REG09 struct
+ */
+
+#define CLIPPER_DEBUG_REG09_clprim_in_back_event_SIZE 1
+#define CLIPPER_DEBUG_REG09_outputclprimtoclip_null_primitive_SIZE 1
+#define CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_2_SIZE 4
+#define CLIPPER_DEBUG_REG09_ALWAYS_ZERO2_SIZE 2
+#define CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_1_SIZE 4
+#define CLIPPER_DEBUG_REG09_ALWAYS_ZERO1_SIZE 2
+#define CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_0_SIZE 4
+#define CLIPPER_DEBUG_REG09_ALWAYS_ZERO0_SIZE 2
+#define CLIPPER_DEBUG_REG09_prim_back_valid_SIZE 1
+#define CLIPPER_DEBUG_REG09_clip_priority_seq_indx_out_cnt_SIZE 4
+#define CLIPPER_DEBUG_REG09_outsm_clr_rd_orig_vertices_SIZE 2
+#define CLIPPER_DEBUG_REG09_outsm_clr_rd_clipsm_wait_SIZE 1
+#define CLIPPER_DEBUG_REG09_outsm_clr_fifo_empty_SIZE 1
+#define CLIPPER_DEBUG_REG09_outsm_clr_fifo_full_SIZE 1
+#define CLIPPER_DEBUG_REG09_clip_priority_seq_indx_load_SIZE 2
+
+#define CLIPPER_DEBUG_REG09_clprim_in_back_event_SHIFT 0
+#define CLIPPER_DEBUG_REG09_outputclprimtoclip_null_primitive_SHIFT 1
+#define CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_2_SHIFT 2
+#define CLIPPER_DEBUG_REG09_ALWAYS_ZERO2_SHIFT 6
+#define CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_1_SHIFT 8
+#define CLIPPER_DEBUG_REG09_ALWAYS_ZERO1_SHIFT 12
+#define CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_0_SHIFT 14
+#define CLIPPER_DEBUG_REG09_ALWAYS_ZERO0_SHIFT 18
+#define CLIPPER_DEBUG_REG09_prim_back_valid_SHIFT 20
+#define CLIPPER_DEBUG_REG09_clip_priority_seq_indx_out_cnt_SHIFT 21
+#define CLIPPER_DEBUG_REG09_outsm_clr_rd_orig_vertices_SHIFT 25
+#define CLIPPER_DEBUG_REG09_outsm_clr_rd_clipsm_wait_SHIFT 27
+#define CLIPPER_DEBUG_REG09_outsm_clr_fifo_empty_SHIFT 28
+#define CLIPPER_DEBUG_REG09_outsm_clr_fifo_full_SHIFT 29
+#define CLIPPER_DEBUG_REG09_clip_priority_seq_indx_load_SHIFT 30
+
+#define CLIPPER_DEBUG_REG09_clprim_in_back_event_MASK 0x00000001
+#define CLIPPER_DEBUG_REG09_outputclprimtoclip_null_primitive_MASK 0x00000002
+#define CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_2_MASK 0x0000003c
+#define CLIPPER_DEBUG_REG09_ALWAYS_ZERO2_MASK 0x000000c0
+#define CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_1_MASK 0x00000f00
+#define CLIPPER_DEBUG_REG09_ALWAYS_ZERO1_MASK 0x00003000
+#define CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_0_MASK 0x0003c000
+#define CLIPPER_DEBUG_REG09_ALWAYS_ZERO0_MASK 0x000c0000
+#define CLIPPER_DEBUG_REG09_prim_back_valid_MASK 0x00100000
+#define CLIPPER_DEBUG_REG09_clip_priority_seq_indx_out_cnt_MASK 0x01e00000
+#define CLIPPER_DEBUG_REG09_outsm_clr_rd_orig_vertices_MASK 0x06000000
+#define CLIPPER_DEBUG_REG09_outsm_clr_rd_clipsm_wait_MASK 0x08000000
+#define CLIPPER_DEBUG_REG09_outsm_clr_fifo_empty_MASK 0x10000000
+#define CLIPPER_DEBUG_REG09_outsm_clr_fifo_full_MASK 0x20000000
+#define CLIPPER_DEBUG_REG09_clip_priority_seq_indx_load_MASK 0xc0000000
+
+#define CLIPPER_DEBUG_REG09_MASK \
+ (CLIPPER_DEBUG_REG09_clprim_in_back_event_MASK | \
+ CLIPPER_DEBUG_REG09_outputclprimtoclip_null_primitive_MASK | \
+ CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_2_MASK | \
+ CLIPPER_DEBUG_REG09_ALWAYS_ZERO2_MASK | \
+ CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_1_MASK | \
+ CLIPPER_DEBUG_REG09_ALWAYS_ZERO1_MASK | \
+ CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_0_MASK | \
+ CLIPPER_DEBUG_REG09_ALWAYS_ZERO0_MASK | \
+ CLIPPER_DEBUG_REG09_prim_back_valid_MASK | \
+ CLIPPER_DEBUG_REG09_clip_priority_seq_indx_out_cnt_MASK | \
+ CLIPPER_DEBUG_REG09_outsm_clr_rd_orig_vertices_MASK | \
+ CLIPPER_DEBUG_REG09_outsm_clr_rd_clipsm_wait_MASK | \
+ CLIPPER_DEBUG_REG09_outsm_clr_fifo_empty_MASK | \
+ CLIPPER_DEBUG_REG09_outsm_clr_fifo_full_MASK | \
+ CLIPPER_DEBUG_REG09_clip_priority_seq_indx_load_MASK)
+
+#define CLIPPER_DEBUG_REG09(clprim_in_back_event, outputclprimtoclip_null_primitive, clprim_in_back_vertex_store_indx_2, always_zero2, clprim_in_back_vertex_store_indx_1, always_zero1, clprim_in_back_vertex_store_indx_0, always_zero0, prim_back_valid, clip_priority_seq_indx_out_cnt, outsm_clr_rd_orig_vertices, outsm_clr_rd_clipsm_wait, outsm_clr_fifo_empty, outsm_clr_fifo_full, clip_priority_seq_indx_load) \
+ ((clprim_in_back_event << CLIPPER_DEBUG_REG09_clprim_in_back_event_SHIFT) | \
+ (outputclprimtoclip_null_primitive << CLIPPER_DEBUG_REG09_outputclprimtoclip_null_primitive_SHIFT) | \
+ (clprim_in_back_vertex_store_indx_2 << CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_2_SHIFT) | \
+ (always_zero2 << CLIPPER_DEBUG_REG09_ALWAYS_ZERO2_SHIFT) | \
+ (clprim_in_back_vertex_store_indx_1 << CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_1_SHIFT) | \
+ (always_zero1 << CLIPPER_DEBUG_REG09_ALWAYS_ZERO1_SHIFT) | \
+ (clprim_in_back_vertex_store_indx_0 << CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_0_SHIFT) | \
+ (always_zero0 << CLIPPER_DEBUG_REG09_ALWAYS_ZERO0_SHIFT) | \
+ (prim_back_valid << CLIPPER_DEBUG_REG09_prim_back_valid_SHIFT) | \
+ (clip_priority_seq_indx_out_cnt << CLIPPER_DEBUG_REG09_clip_priority_seq_indx_out_cnt_SHIFT) | \
+ (outsm_clr_rd_orig_vertices << CLIPPER_DEBUG_REG09_outsm_clr_rd_orig_vertices_SHIFT) | \
+ (outsm_clr_rd_clipsm_wait << CLIPPER_DEBUG_REG09_outsm_clr_rd_clipsm_wait_SHIFT) | \
+ (outsm_clr_fifo_empty << CLIPPER_DEBUG_REG09_outsm_clr_fifo_empty_SHIFT) | \
+ (outsm_clr_fifo_full << CLIPPER_DEBUG_REG09_outsm_clr_fifo_full_SHIFT) | \
+ (clip_priority_seq_indx_load << CLIPPER_DEBUG_REG09_clip_priority_seq_indx_load_SHIFT))
+
+#define CLIPPER_DEBUG_REG09_GET_clprim_in_back_event(clipper_debug_reg09) \
+ ((clipper_debug_reg09 & CLIPPER_DEBUG_REG09_clprim_in_back_event_MASK) >> CLIPPER_DEBUG_REG09_clprim_in_back_event_SHIFT)
+#define CLIPPER_DEBUG_REG09_GET_outputclprimtoclip_null_primitive(clipper_debug_reg09) \
+ ((clipper_debug_reg09 & CLIPPER_DEBUG_REG09_outputclprimtoclip_null_primitive_MASK) >> CLIPPER_DEBUG_REG09_outputclprimtoclip_null_primitive_SHIFT)
+#define CLIPPER_DEBUG_REG09_GET_clprim_in_back_vertex_store_indx_2(clipper_debug_reg09) \
+ ((clipper_debug_reg09 & CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_2_MASK) >> CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_2_SHIFT)
+#define CLIPPER_DEBUG_REG09_GET_ALWAYS_ZERO2(clipper_debug_reg09) \
+ ((clipper_debug_reg09 & CLIPPER_DEBUG_REG09_ALWAYS_ZERO2_MASK) >> CLIPPER_DEBUG_REG09_ALWAYS_ZERO2_SHIFT)
+#define CLIPPER_DEBUG_REG09_GET_clprim_in_back_vertex_store_indx_1(clipper_debug_reg09) \
+ ((clipper_debug_reg09 & CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_1_MASK) >> CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_1_SHIFT)
+#define CLIPPER_DEBUG_REG09_GET_ALWAYS_ZERO1(clipper_debug_reg09) \
+ ((clipper_debug_reg09 & CLIPPER_DEBUG_REG09_ALWAYS_ZERO1_MASK) >> CLIPPER_DEBUG_REG09_ALWAYS_ZERO1_SHIFT)
+#define CLIPPER_DEBUG_REG09_GET_clprim_in_back_vertex_store_indx_0(clipper_debug_reg09) \
+ ((clipper_debug_reg09 & CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_0_MASK) >> CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_0_SHIFT)
+#define CLIPPER_DEBUG_REG09_GET_ALWAYS_ZERO0(clipper_debug_reg09) \
+ ((clipper_debug_reg09 & CLIPPER_DEBUG_REG09_ALWAYS_ZERO0_MASK) >> CLIPPER_DEBUG_REG09_ALWAYS_ZERO0_SHIFT)
+#define CLIPPER_DEBUG_REG09_GET_prim_back_valid(clipper_debug_reg09) \
+ ((clipper_debug_reg09 & CLIPPER_DEBUG_REG09_prim_back_valid_MASK) >> CLIPPER_DEBUG_REG09_prim_back_valid_SHIFT)
+#define CLIPPER_DEBUG_REG09_GET_clip_priority_seq_indx_out_cnt(clipper_debug_reg09) \
+ ((clipper_debug_reg09 & CLIPPER_DEBUG_REG09_clip_priority_seq_indx_out_cnt_MASK) >> CLIPPER_DEBUG_REG09_clip_priority_seq_indx_out_cnt_SHIFT)
+#define CLIPPER_DEBUG_REG09_GET_outsm_clr_rd_orig_vertices(clipper_debug_reg09) \
+ ((clipper_debug_reg09 & CLIPPER_DEBUG_REG09_outsm_clr_rd_orig_vertices_MASK) >> CLIPPER_DEBUG_REG09_outsm_clr_rd_orig_vertices_SHIFT)
+#define CLIPPER_DEBUG_REG09_GET_outsm_clr_rd_clipsm_wait(clipper_debug_reg09) \
+ ((clipper_debug_reg09 & CLIPPER_DEBUG_REG09_outsm_clr_rd_clipsm_wait_MASK) >> CLIPPER_DEBUG_REG09_outsm_clr_rd_clipsm_wait_SHIFT)
+#define CLIPPER_DEBUG_REG09_GET_outsm_clr_fifo_empty(clipper_debug_reg09) \
+ ((clipper_debug_reg09 & CLIPPER_DEBUG_REG09_outsm_clr_fifo_empty_MASK) >> CLIPPER_DEBUG_REG09_outsm_clr_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG09_GET_outsm_clr_fifo_full(clipper_debug_reg09) \
+ ((clipper_debug_reg09 & CLIPPER_DEBUG_REG09_outsm_clr_fifo_full_MASK) >> CLIPPER_DEBUG_REG09_outsm_clr_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG09_GET_clip_priority_seq_indx_load(clipper_debug_reg09) \
+ ((clipper_debug_reg09 & CLIPPER_DEBUG_REG09_clip_priority_seq_indx_load_MASK) >> CLIPPER_DEBUG_REG09_clip_priority_seq_indx_load_SHIFT)
+
+#define CLIPPER_DEBUG_REG09_SET_clprim_in_back_event(clipper_debug_reg09_reg, clprim_in_back_event) \
+ clipper_debug_reg09_reg = (clipper_debug_reg09_reg & ~CLIPPER_DEBUG_REG09_clprim_in_back_event_MASK) | (clprim_in_back_event << CLIPPER_DEBUG_REG09_clprim_in_back_event_SHIFT)
+#define CLIPPER_DEBUG_REG09_SET_outputclprimtoclip_null_primitive(clipper_debug_reg09_reg, outputclprimtoclip_null_primitive) \
+ clipper_debug_reg09_reg = (clipper_debug_reg09_reg & ~CLIPPER_DEBUG_REG09_outputclprimtoclip_null_primitive_MASK) | (outputclprimtoclip_null_primitive << CLIPPER_DEBUG_REG09_outputclprimtoclip_null_primitive_SHIFT)
+#define CLIPPER_DEBUG_REG09_SET_clprim_in_back_vertex_store_indx_2(clipper_debug_reg09_reg, clprim_in_back_vertex_store_indx_2) \
+ clipper_debug_reg09_reg = (clipper_debug_reg09_reg & ~CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_2_MASK) | (clprim_in_back_vertex_store_indx_2 << CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_2_SHIFT)
+#define CLIPPER_DEBUG_REG09_SET_ALWAYS_ZERO2(clipper_debug_reg09_reg, always_zero2) \
+ clipper_debug_reg09_reg = (clipper_debug_reg09_reg & ~CLIPPER_DEBUG_REG09_ALWAYS_ZERO2_MASK) | (always_zero2 << CLIPPER_DEBUG_REG09_ALWAYS_ZERO2_SHIFT)
+#define CLIPPER_DEBUG_REG09_SET_clprim_in_back_vertex_store_indx_1(clipper_debug_reg09_reg, clprim_in_back_vertex_store_indx_1) \
+ clipper_debug_reg09_reg = (clipper_debug_reg09_reg & ~CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_1_MASK) | (clprim_in_back_vertex_store_indx_1 << CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_1_SHIFT)
+#define CLIPPER_DEBUG_REG09_SET_ALWAYS_ZERO1(clipper_debug_reg09_reg, always_zero1) \
+ clipper_debug_reg09_reg = (clipper_debug_reg09_reg & ~CLIPPER_DEBUG_REG09_ALWAYS_ZERO1_MASK) | (always_zero1 << CLIPPER_DEBUG_REG09_ALWAYS_ZERO1_SHIFT)
+#define CLIPPER_DEBUG_REG09_SET_clprim_in_back_vertex_store_indx_0(clipper_debug_reg09_reg, clprim_in_back_vertex_store_indx_0) \
+ clipper_debug_reg09_reg = (clipper_debug_reg09_reg & ~CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_0_MASK) | (clprim_in_back_vertex_store_indx_0 << CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_0_SHIFT)
+#define CLIPPER_DEBUG_REG09_SET_ALWAYS_ZERO0(clipper_debug_reg09_reg, always_zero0) \
+ clipper_debug_reg09_reg = (clipper_debug_reg09_reg & ~CLIPPER_DEBUG_REG09_ALWAYS_ZERO0_MASK) | (always_zero0 << CLIPPER_DEBUG_REG09_ALWAYS_ZERO0_SHIFT)
+#define CLIPPER_DEBUG_REG09_SET_prim_back_valid(clipper_debug_reg09_reg, prim_back_valid) \
+ clipper_debug_reg09_reg = (clipper_debug_reg09_reg & ~CLIPPER_DEBUG_REG09_prim_back_valid_MASK) | (prim_back_valid << CLIPPER_DEBUG_REG09_prim_back_valid_SHIFT)
+#define CLIPPER_DEBUG_REG09_SET_clip_priority_seq_indx_out_cnt(clipper_debug_reg09_reg, clip_priority_seq_indx_out_cnt) \
+ clipper_debug_reg09_reg = (clipper_debug_reg09_reg & ~CLIPPER_DEBUG_REG09_clip_priority_seq_indx_out_cnt_MASK) | (clip_priority_seq_indx_out_cnt << CLIPPER_DEBUG_REG09_clip_priority_seq_indx_out_cnt_SHIFT)
+#define CLIPPER_DEBUG_REG09_SET_outsm_clr_rd_orig_vertices(clipper_debug_reg09_reg, outsm_clr_rd_orig_vertices) \
+ clipper_debug_reg09_reg = (clipper_debug_reg09_reg & ~CLIPPER_DEBUG_REG09_outsm_clr_rd_orig_vertices_MASK) | (outsm_clr_rd_orig_vertices << CLIPPER_DEBUG_REG09_outsm_clr_rd_orig_vertices_SHIFT)
+#define CLIPPER_DEBUG_REG09_SET_outsm_clr_rd_clipsm_wait(clipper_debug_reg09_reg, outsm_clr_rd_clipsm_wait) \
+ clipper_debug_reg09_reg = (clipper_debug_reg09_reg & ~CLIPPER_DEBUG_REG09_outsm_clr_rd_clipsm_wait_MASK) | (outsm_clr_rd_clipsm_wait << CLIPPER_DEBUG_REG09_outsm_clr_rd_clipsm_wait_SHIFT)
+#define CLIPPER_DEBUG_REG09_SET_outsm_clr_fifo_empty(clipper_debug_reg09_reg, outsm_clr_fifo_empty) \
+ clipper_debug_reg09_reg = (clipper_debug_reg09_reg & ~CLIPPER_DEBUG_REG09_outsm_clr_fifo_empty_MASK) | (outsm_clr_fifo_empty << CLIPPER_DEBUG_REG09_outsm_clr_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG09_SET_outsm_clr_fifo_full(clipper_debug_reg09_reg, outsm_clr_fifo_full) \
+ clipper_debug_reg09_reg = (clipper_debug_reg09_reg & ~CLIPPER_DEBUG_REG09_outsm_clr_fifo_full_MASK) | (outsm_clr_fifo_full << CLIPPER_DEBUG_REG09_outsm_clr_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG09_SET_clip_priority_seq_indx_load(clipper_debug_reg09_reg, clip_priority_seq_indx_load) \
+ clipper_debug_reg09_reg = (clipper_debug_reg09_reg & ~CLIPPER_DEBUG_REG09_clip_priority_seq_indx_load_MASK) | (clip_priority_seq_indx_load << CLIPPER_DEBUG_REG09_clip_priority_seq_indx_load_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg09_t {
+ unsigned int clprim_in_back_event : CLIPPER_DEBUG_REG09_clprim_in_back_event_SIZE;
+ unsigned int outputclprimtoclip_null_primitive : CLIPPER_DEBUG_REG09_outputclprimtoclip_null_primitive_SIZE;
+ unsigned int clprim_in_back_vertex_store_indx_2 : CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_2_SIZE;
+ unsigned int always_zero2 : CLIPPER_DEBUG_REG09_ALWAYS_ZERO2_SIZE;
+ unsigned int clprim_in_back_vertex_store_indx_1 : CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_1_SIZE;
+ unsigned int always_zero1 : CLIPPER_DEBUG_REG09_ALWAYS_ZERO1_SIZE;
+ unsigned int clprim_in_back_vertex_store_indx_0 : CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_0_SIZE;
+ unsigned int always_zero0 : CLIPPER_DEBUG_REG09_ALWAYS_ZERO0_SIZE;
+ unsigned int prim_back_valid : CLIPPER_DEBUG_REG09_prim_back_valid_SIZE;
+ unsigned int clip_priority_seq_indx_out_cnt : CLIPPER_DEBUG_REG09_clip_priority_seq_indx_out_cnt_SIZE;
+ unsigned int outsm_clr_rd_orig_vertices : CLIPPER_DEBUG_REG09_outsm_clr_rd_orig_vertices_SIZE;
+ unsigned int outsm_clr_rd_clipsm_wait : CLIPPER_DEBUG_REG09_outsm_clr_rd_clipsm_wait_SIZE;
+ unsigned int outsm_clr_fifo_empty : CLIPPER_DEBUG_REG09_outsm_clr_fifo_empty_SIZE;
+ unsigned int outsm_clr_fifo_full : CLIPPER_DEBUG_REG09_outsm_clr_fifo_full_SIZE;
+ unsigned int clip_priority_seq_indx_load : CLIPPER_DEBUG_REG09_clip_priority_seq_indx_load_SIZE;
+ } clipper_debug_reg09_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg09_t {
+ unsigned int clip_priority_seq_indx_load : CLIPPER_DEBUG_REG09_clip_priority_seq_indx_load_SIZE;
+ unsigned int outsm_clr_fifo_full : CLIPPER_DEBUG_REG09_outsm_clr_fifo_full_SIZE;
+ unsigned int outsm_clr_fifo_empty : CLIPPER_DEBUG_REG09_outsm_clr_fifo_empty_SIZE;
+ unsigned int outsm_clr_rd_clipsm_wait : CLIPPER_DEBUG_REG09_outsm_clr_rd_clipsm_wait_SIZE;
+ unsigned int outsm_clr_rd_orig_vertices : CLIPPER_DEBUG_REG09_outsm_clr_rd_orig_vertices_SIZE;
+ unsigned int clip_priority_seq_indx_out_cnt : CLIPPER_DEBUG_REG09_clip_priority_seq_indx_out_cnt_SIZE;
+ unsigned int prim_back_valid : CLIPPER_DEBUG_REG09_prim_back_valid_SIZE;
+ unsigned int always_zero0 : CLIPPER_DEBUG_REG09_ALWAYS_ZERO0_SIZE;
+ unsigned int clprim_in_back_vertex_store_indx_0 : CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_0_SIZE;
+ unsigned int always_zero1 : CLIPPER_DEBUG_REG09_ALWAYS_ZERO1_SIZE;
+ unsigned int clprim_in_back_vertex_store_indx_1 : CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_1_SIZE;
+ unsigned int always_zero2 : CLIPPER_DEBUG_REG09_ALWAYS_ZERO2_SIZE;
+ unsigned int clprim_in_back_vertex_store_indx_2 : CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_2_SIZE;
+ unsigned int outputclprimtoclip_null_primitive : CLIPPER_DEBUG_REG09_outputclprimtoclip_null_primitive_SIZE;
+ unsigned int clprim_in_back_event : CLIPPER_DEBUG_REG09_clprim_in_back_event_SIZE;
+ } clipper_debug_reg09_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ clipper_debug_reg09_t f;
+} clipper_debug_reg09_u;
+
+
+/*
+ * CLIPPER_DEBUG_REG10 struct
+ */
+
+#define CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_2_SIZE 4
+#define CLIPPER_DEBUG_REG10_ALWAYS_ZERO3_SIZE 2
+#define CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_1_SIZE 4
+#define CLIPPER_DEBUG_REG10_ALWAYS_ZERO2_SIZE 2
+#define CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_0_SIZE 4
+#define CLIPPER_DEBUG_REG10_ALWAYS_ZERO1_SIZE 2
+#define CLIPPER_DEBUG_REG10_clprim_in_back_state_var_indx_SIZE 1
+#define CLIPPER_DEBUG_REG10_ALWAYS_ZERO0_SIZE 2
+#define CLIPPER_DEBUG_REG10_clprim_in_back_end_of_packet_SIZE 1
+#define CLIPPER_DEBUG_REG10_clprim_in_back_first_prim_of_slot_SIZE 1
+#define CLIPPER_DEBUG_REG10_clprim_in_back_deallocate_slot_SIZE 3
+#define CLIPPER_DEBUG_REG10_clprim_in_back_event_id_SIZE 6
+
+#define CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_2_SHIFT 0
+#define CLIPPER_DEBUG_REG10_ALWAYS_ZERO3_SHIFT 4
+#define CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_1_SHIFT 6
+#define CLIPPER_DEBUG_REG10_ALWAYS_ZERO2_SHIFT 10
+#define CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_0_SHIFT 12
+#define CLIPPER_DEBUG_REG10_ALWAYS_ZERO1_SHIFT 16
+#define CLIPPER_DEBUG_REG10_clprim_in_back_state_var_indx_SHIFT 18
+#define CLIPPER_DEBUG_REG10_ALWAYS_ZERO0_SHIFT 19
+#define CLIPPER_DEBUG_REG10_clprim_in_back_end_of_packet_SHIFT 21
+#define CLIPPER_DEBUG_REG10_clprim_in_back_first_prim_of_slot_SHIFT 22
+#define CLIPPER_DEBUG_REG10_clprim_in_back_deallocate_slot_SHIFT 23
+#define CLIPPER_DEBUG_REG10_clprim_in_back_event_id_SHIFT 26
+
+#define CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_2_MASK 0x0000000f
+#define CLIPPER_DEBUG_REG10_ALWAYS_ZERO3_MASK 0x00000030
+#define CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_1_MASK 0x000003c0
+#define CLIPPER_DEBUG_REG10_ALWAYS_ZERO2_MASK 0x00000c00
+#define CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_0_MASK 0x0000f000
+#define CLIPPER_DEBUG_REG10_ALWAYS_ZERO1_MASK 0x00030000
+#define CLIPPER_DEBUG_REG10_clprim_in_back_state_var_indx_MASK 0x00040000
+#define CLIPPER_DEBUG_REG10_ALWAYS_ZERO0_MASK 0x00180000
+#define CLIPPER_DEBUG_REG10_clprim_in_back_end_of_packet_MASK 0x00200000
+#define CLIPPER_DEBUG_REG10_clprim_in_back_first_prim_of_slot_MASK 0x00400000
+#define CLIPPER_DEBUG_REG10_clprim_in_back_deallocate_slot_MASK 0x03800000
+#define CLIPPER_DEBUG_REG10_clprim_in_back_event_id_MASK 0xfc000000
+
+#define CLIPPER_DEBUG_REG10_MASK \
+ (CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_2_MASK | \
+ CLIPPER_DEBUG_REG10_ALWAYS_ZERO3_MASK | \
+ CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_1_MASK | \
+ CLIPPER_DEBUG_REG10_ALWAYS_ZERO2_MASK | \
+ CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_0_MASK | \
+ CLIPPER_DEBUG_REG10_ALWAYS_ZERO1_MASK | \
+ CLIPPER_DEBUG_REG10_clprim_in_back_state_var_indx_MASK | \
+ CLIPPER_DEBUG_REG10_ALWAYS_ZERO0_MASK | \
+ CLIPPER_DEBUG_REG10_clprim_in_back_end_of_packet_MASK | \
+ CLIPPER_DEBUG_REG10_clprim_in_back_first_prim_of_slot_MASK | \
+ CLIPPER_DEBUG_REG10_clprim_in_back_deallocate_slot_MASK | \
+ CLIPPER_DEBUG_REG10_clprim_in_back_event_id_MASK)
+
+#define CLIPPER_DEBUG_REG10(primic_to_clprim_fifo_vertex_store_indx_2, always_zero3, primic_to_clprim_fifo_vertex_store_indx_1, always_zero2, primic_to_clprim_fifo_vertex_store_indx_0, always_zero1, clprim_in_back_state_var_indx, always_zero0, clprim_in_back_end_of_packet, clprim_in_back_first_prim_of_slot, clprim_in_back_deallocate_slot, clprim_in_back_event_id) \
+ ((primic_to_clprim_fifo_vertex_store_indx_2 << CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_2_SHIFT) | \
+ (always_zero3 << CLIPPER_DEBUG_REG10_ALWAYS_ZERO3_SHIFT) | \
+ (primic_to_clprim_fifo_vertex_store_indx_1 << CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_1_SHIFT) | \
+ (always_zero2 << CLIPPER_DEBUG_REG10_ALWAYS_ZERO2_SHIFT) | \
+ (primic_to_clprim_fifo_vertex_store_indx_0 << CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_0_SHIFT) | \
+ (always_zero1 << CLIPPER_DEBUG_REG10_ALWAYS_ZERO1_SHIFT) | \
+ (clprim_in_back_state_var_indx << CLIPPER_DEBUG_REG10_clprim_in_back_state_var_indx_SHIFT) | \
+ (always_zero0 << CLIPPER_DEBUG_REG10_ALWAYS_ZERO0_SHIFT) | \
+ (clprim_in_back_end_of_packet << CLIPPER_DEBUG_REG10_clprim_in_back_end_of_packet_SHIFT) | \
+ (clprim_in_back_first_prim_of_slot << CLIPPER_DEBUG_REG10_clprim_in_back_first_prim_of_slot_SHIFT) | \
+ (clprim_in_back_deallocate_slot << CLIPPER_DEBUG_REG10_clprim_in_back_deallocate_slot_SHIFT) | \
+ (clprim_in_back_event_id << CLIPPER_DEBUG_REG10_clprim_in_back_event_id_SHIFT))
+
+#define CLIPPER_DEBUG_REG10_GET_primic_to_clprim_fifo_vertex_store_indx_2(clipper_debug_reg10) \
+ ((clipper_debug_reg10 & CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_2_MASK) >> CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_2_SHIFT)
+#define CLIPPER_DEBUG_REG10_GET_ALWAYS_ZERO3(clipper_debug_reg10) \
+ ((clipper_debug_reg10 & CLIPPER_DEBUG_REG10_ALWAYS_ZERO3_MASK) >> CLIPPER_DEBUG_REG10_ALWAYS_ZERO3_SHIFT)
+#define CLIPPER_DEBUG_REG10_GET_primic_to_clprim_fifo_vertex_store_indx_1(clipper_debug_reg10) \
+ ((clipper_debug_reg10 & CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_1_MASK) >> CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_1_SHIFT)
+#define CLIPPER_DEBUG_REG10_GET_ALWAYS_ZERO2(clipper_debug_reg10) \
+ ((clipper_debug_reg10 & CLIPPER_DEBUG_REG10_ALWAYS_ZERO2_MASK) >> CLIPPER_DEBUG_REG10_ALWAYS_ZERO2_SHIFT)
+#define CLIPPER_DEBUG_REG10_GET_primic_to_clprim_fifo_vertex_store_indx_0(clipper_debug_reg10) \
+ ((clipper_debug_reg10 & CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_0_MASK) >> CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_0_SHIFT)
+#define CLIPPER_DEBUG_REG10_GET_ALWAYS_ZERO1(clipper_debug_reg10) \
+ ((clipper_debug_reg10 & CLIPPER_DEBUG_REG10_ALWAYS_ZERO1_MASK) >> CLIPPER_DEBUG_REG10_ALWAYS_ZERO1_SHIFT)
+#define CLIPPER_DEBUG_REG10_GET_clprim_in_back_state_var_indx(clipper_debug_reg10) \
+ ((clipper_debug_reg10 & CLIPPER_DEBUG_REG10_clprim_in_back_state_var_indx_MASK) >> CLIPPER_DEBUG_REG10_clprim_in_back_state_var_indx_SHIFT)
+#define CLIPPER_DEBUG_REG10_GET_ALWAYS_ZERO0(clipper_debug_reg10) \
+ ((clipper_debug_reg10 & CLIPPER_DEBUG_REG10_ALWAYS_ZERO0_MASK) >> CLIPPER_DEBUG_REG10_ALWAYS_ZERO0_SHIFT)
+#define CLIPPER_DEBUG_REG10_GET_clprim_in_back_end_of_packet(clipper_debug_reg10) \
+ ((clipper_debug_reg10 & CLIPPER_DEBUG_REG10_clprim_in_back_end_of_packet_MASK) >> CLIPPER_DEBUG_REG10_clprim_in_back_end_of_packet_SHIFT)
+#define CLIPPER_DEBUG_REG10_GET_clprim_in_back_first_prim_of_slot(clipper_debug_reg10) \
+ ((clipper_debug_reg10 & CLIPPER_DEBUG_REG10_clprim_in_back_first_prim_of_slot_MASK) >> CLIPPER_DEBUG_REG10_clprim_in_back_first_prim_of_slot_SHIFT)
+#define CLIPPER_DEBUG_REG10_GET_clprim_in_back_deallocate_slot(clipper_debug_reg10) \
+ ((clipper_debug_reg10 & CLIPPER_DEBUG_REG10_clprim_in_back_deallocate_slot_MASK) >> CLIPPER_DEBUG_REG10_clprim_in_back_deallocate_slot_SHIFT)
+#define CLIPPER_DEBUG_REG10_GET_clprim_in_back_event_id(clipper_debug_reg10) \
+ ((clipper_debug_reg10 & CLIPPER_DEBUG_REG10_clprim_in_back_event_id_MASK) >> CLIPPER_DEBUG_REG10_clprim_in_back_event_id_SHIFT)
+
+#define CLIPPER_DEBUG_REG10_SET_primic_to_clprim_fifo_vertex_store_indx_2(clipper_debug_reg10_reg, primic_to_clprim_fifo_vertex_store_indx_2) \
+ clipper_debug_reg10_reg = (clipper_debug_reg10_reg & ~CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_2_MASK) | (primic_to_clprim_fifo_vertex_store_indx_2 << CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_2_SHIFT)
+#define CLIPPER_DEBUG_REG10_SET_ALWAYS_ZERO3(clipper_debug_reg10_reg, always_zero3) \
+ clipper_debug_reg10_reg = (clipper_debug_reg10_reg & ~CLIPPER_DEBUG_REG10_ALWAYS_ZERO3_MASK) | (always_zero3 << CLIPPER_DEBUG_REG10_ALWAYS_ZERO3_SHIFT)
+#define CLIPPER_DEBUG_REG10_SET_primic_to_clprim_fifo_vertex_store_indx_1(clipper_debug_reg10_reg, primic_to_clprim_fifo_vertex_store_indx_1) \
+ clipper_debug_reg10_reg = (clipper_debug_reg10_reg & ~CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_1_MASK) | (primic_to_clprim_fifo_vertex_store_indx_1 << CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_1_SHIFT)
+#define CLIPPER_DEBUG_REG10_SET_ALWAYS_ZERO2(clipper_debug_reg10_reg, always_zero2) \
+ clipper_debug_reg10_reg = (clipper_debug_reg10_reg & ~CLIPPER_DEBUG_REG10_ALWAYS_ZERO2_MASK) | (always_zero2 << CLIPPER_DEBUG_REG10_ALWAYS_ZERO2_SHIFT)
+#define CLIPPER_DEBUG_REG10_SET_primic_to_clprim_fifo_vertex_store_indx_0(clipper_debug_reg10_reg, primic_to_clprim_fifo_vertex_store_indx_0) \
+ clipper_debug_reg10_reg = (clipper_debug_reg10_reg & ~CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_0_MASK) | (primic_to_clprim_fifo_vertex_store_indx_0 << CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_0_SHIFT)
+#define CLIPPER_DEBUG_REG10_SET_ALWAYS_ZERO1(clipper_debug_reg10_reg, always_zero1) \
+ clipper_debug_reg10_reg = (clipper_debug_reg10_reg & ~CLIPPER_DEBUG_REG10_ALWAYS_ZERO1_MASK) | (always_zero1 << CLIPPER_DEBUG_REG10_ALWAYS_ZERO1_SHIFT)
+#define CLIPPER_DEBUG_REG10_SET_clprim_in_back_state_var_indx(clipper_debug_reg10_reg, clprim_in_back_state_var_indx) \
+ clipper_debug_reg10_reg = (clipper_debug_reg10_reg & ~CLIPPER_DEBUG_REG10_clprim_in_back_state_var_indx_MASK) | (clprim_in_back_state_var_indx << CLIPPER_DEBUG_REG10_clprim_in_back_state_var_indx_SHIFT)
+#define CLIPPER_DEBUG_REG10_SET_ALWAYS_ZERO0(clipper_debug_reg10_reg, always_zero0) \
+ clipper_debug_reg10_reg = (clipper_debug_reg10_reg & ~CLIPPER_DEBUG_REG10_ALWAYS_ZERO0_MASK) | (always_zero0 << CLIPPER_DEBUG_REG10_ALWAYS_ZERO0_SHIFT)
+#define CLIPPER_DEBUG_REG10_SET_clprim_in_back_end_of_packet(clipper_debug_reg10_reg, clprim_in_back_end_of_packet) \
+ clipper_debug_reg10_reg = (clipper_debug_reg10_reg & ~CLIPPER_DEBUG_REG10_clprim_in_back_end_of_packet_MASK) | (clprim_in_back_end_of_packet << CLIPPER_DEBUG_REG10_clprim_in_back_end_of_packet_SHIFT)
+#define CLIPPER_DEBUG_REG10_SET_clprim_in_back_first_prim_of_slot(clipper_debug_reg10_reg, clprim_in_back_first_prim_of_slot) \
+ clipper_debug_reg10_reg = (clipper_debug_reg10_reg & ~CLIPPER_DEBUG_REG10_clprim_in_back_first_prim_of_slot_MASK) | (clprim_in_back_first_prim_of_slot << CLIPPER_DEBUG_REG10_clprim_in_back_first_prim_of_slot_SHIFT)
+#define CLIPPER_DEBUG_REG10_SET_clprim_in_back_deallocate_slot(clipper_debug_reg10_reg, clprim_in_back_deallocate_slot) \
+ clipper_debug_reg10_reg = (clipper_debug_reg10_reg & ~CLIPPER_DEBUG_REG10_clprim_in_back_deallocate_slot_MASK) | (clprim_in_back_deallocate_slot << CLIPPER_DEBUG_REG10_clprim_in_back_deallocate_slot_SHIFT)
+#define CLIPPER_DEBUG_REG10_SET_clprim_in_back_event_id(clipper_debug_reg10_reg, clprim_in_back_event_id) \
+ clipper_debug_reg10_reg = (clipper_debug_reg10_reg & ~CLIPPER_DEBUG_REG10_clprim_in_back_event_id_MASK) | (clprim_in_back_event_id << CLIPPER_DEBUG_REG10_clprim_in_back_event_id_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg10_t {
+ unsigned int primic_to_clprim_fifo_vertex_store_indx_2 : CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_2_SIZE;
+ unsigned int always_zero3 : CLIPPER_DEBUG_REG10_ALWAYS_ZERO3_SIZE;
+ unsigned int primic_to_clprim_fifo_vertex_store_indx_1 : CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_1_SIZE;
+ unsigned int always_zero2 : CLIPPER_DEBUG_REG10_ALWAYS_ZERO2_SIZE;
+ unsigned int primic_to_clprim_fifo_vertex_store_indx_0 : CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_0_SIZE;
+ unsigned int always_zero1 : CLIPPER_DEBUG_REG10_ALWAYS_ZERO1_SIZE;
+ unsigned int clprim_in_back_state_var_indx : CLIPPER_DEBUG_REG10_clprim_in_back_state_var_indx_SIZE;
+ unsigned int always_zero0 : CLIPPER_DEBUG_REG10_ALWAYS_ZERO0_SIZE;
+ unsigned int clprim_in_back_end_of_packet : CLIPPER_DEBUG_REG10_clprim_in_back_end_of_packet_SIZE;
+ unsigned int clprim_in_back_first_prim_of_slot : CLIPPER_DEBUG_REG10_clprim_in_back_first_prim_of_slot_SIZE;
+ unsigned int clprim_in_back_deallocate_slot : CLIPPER_DEBUG_REG10_clprim_in_back_deallocate_slot_SIZE;
+ unsigned int clprim_in_back_event_id : CLIPPER_DEBUG_REG10_clprim_in_back_event_id_SIZE;
+ } clipper_debug_reg10_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg10_t {
+ unsigned int clprim_in_back_event_id : CLIPPER_DEBUG_REG10_clprim_in_back_event_id_SIZE;
+ unsigned int clprim_in_back_deallocate_slot : CLIPPER_DEBUG_REG10_clprim_in_back_deallocate_slot_SIZE;
+ unsigned int clprim_in_back_first_prim_of_slot : CLIPPER_DEBUG_REG10_clprim_in_back_first_prim_of_slot_SIZE;
+ unsigned int clprim_in_back_end_of_packet : CLIPPER_DEBUG_REG10_clprim_in_back_end_of_packet_SIZE;
+ unsigned int always_zero0 : CLIPPER_DEBUG_REG10_ALWAYS_ZERO0_SIZE;
+ unsigned int clprim_in_back_state_var_indx : CLIPPER_DEBUG_REG10_clprim_in_back_state_var_indx_SIZE;
+ unsigned int always_zero1 : CLIPPER_DEBUG_REG10_ALWAYS_ZERO1_SIZE;
+ unsigned int primic_to_clprim_fifo_vertex_store_indx_0 : CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_0_SIZE;
+ unsigned int always_zero2 : CLIPPER_DEBUG_REG10_ALWAYS_ZERO2_SIZE;
+ unsigned int primic_to_clprim_fifo_vertex_store_indx_1 : CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_1_SIZE;
+ unsigned int always_zero3 : CLIPPER_DEBUG_REG10_ALWAYS_ZERO3_SIZE;
+ unsigned int primic_to_clprim_fifo_vertex_store_indx_2 : CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_2_SIZE;
+ } clipper_debug_reg10_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ clipper_debug_reg10_t f;
+} clipper_debug_reg10_u;
+
+
+/*
+ * CLIPPER_DEBUG_REG11 struct
+ */
+
+#define CLIPPER_DEBUG_REG11_vertval_bits_vertex_vertex_store_msb_SIZE 4
+#define CLIPPER_DEBUG_REG11_ALWAYS_ZERO_SIZE 28
+
+#define CLIPPER_DEBUG_REG11_vertval_bits_vertex_vertex_store_msb_SHIFT 0
+#define CLIPPER_DEBUG_REG11_ALWAYS_ZERO_SHIFT 4
+
+#define CLIPPER_DEBUG_REG11_vertval_bits_vertex_vertex_store_msb_MASK 0x0000000f
+#define CLIPPER_DEBUG_REG11_ALWAYS_ZERO_MASK 0xfffffff0
+
+#define CLIPPER_DEBUG_REG11_MASK \
+ (CLIPPER_DEBUG_REG11_vertval_bits_vertex_vertex_store_msb_MASK | \
+ CLIPPER_DEBUG_REG11_ALWAYS_ZERO_MASK)
+
+#define CLIPPER_DEBUG_REG11(vertval_bits_vertex_vertex_store_msb, always_zero) \
+ ((vertval_bits_vertex_vertex_store_msb << CLIPPER_DEBUG_REG11_vertval_bits_vertex_vertex_store_msb_SHIFT) | \
+ (always_zero << CLIPPER_DEBUG_REG11_ALWAYS_ZERO_SHIFT))
+
+#define CLIPPER_DEBUG_REG11_GET_vertval_bits_vertex_vertex_store_msb(clipper_debug_reg11) \
+ ((clipper_debug_reg11 & CLIPPER_DEBUG_REG11_vertval_bits_vertex_vertex_store_msb_MASK) >> CLIPPER_DEBUG_REG11_vertval_bits_vertex_vertex_store_msb_SHIFT)
+#define CLIPPER_DEBUG_REG11_GET_ALWAYS_ZERO(clipper_debug_reg11) \
+ ((clipper_debug_reg11 & CLIPPER_DEBUG_REG11_ALWAYS_ZERO_MASK) >> CLIPPER_DEBUG_REG11_ALWAYS_ZERO_SHIFT)
+
+#define CLIPPER_DEBUG_REG11_SET_vertval_bits_vertex_vertex_store_msb(clipper_debug_reg11_reg, vertval_bits_vertex_vertex_store_msb) \
+ clipper_debug_reg11_reg = (clipper_debug_reg11_reg & ~CLIPPER_DEBUG_REG11_vertval_bits_vertex_vertex_store_msb_MASK) | (vertval_bits_vertex_vertex_store_msb << CLIPPER_DEBUG_REG11_vertval_bits_vertex_vertex_store_msb_SHIFT)
+#define CLIPPER_DEBUG_REG11_SET_ALWAYS_ZERO(clipper_debug_reg11_reg, always_zero) \
+ clipper_debug_reg11_reg = (clipper_debug_reg11_reg & ~CLIPPER_DEBUG_REG11_ALWAYS_ZERO_MASK) | (always_zero << CLIPPER_DEBUG_REG11_ALWAYS_ZERO_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg11_t {
+ unsigned int vertval_bits_vertex_vertex_store_msb : CLIPPER_DEBUG_REG11_vertval_bits_vertex_vertex_store_msb_SIZE;
+ unsigned int always_zero : CLIPPER_DEBUG_REG11_ALWAYS_ZERO_SIZE;
+ } clipper_debug_reg11_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg11_t {
+ unsigned int always_zero : CLIPPER_DEBUG_REG11_ALWAYS_ZERO_SIZE;
+ unsigned int vertval_bits_vertex_vertex_store_msb : CLIPPER_DEBUG_REG11_vertval_bits_vertex_vertex_store_msb_SIZE;
+ } clipper_debug_reg11_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ clipper_debug_reg11_t f;
+} clipper_debug_reg11_u;
+
+
+/*
+ * CLIPPER_DEBUG_REG12 struct
+ */
+
+#define CLIPPER_DEBUG_REG12_clip_priority_available_vte_out_clip_SIZE 2
+#define CLIPPER_DEBUG_REG12_ALWAYS_ZERO2_SIZE 3
+#define CLIPPER_DEBUG_REG12_clip_vertex_fifo_empty_SIZE 1
+#define CLIPPER_DEBUG_REG12_clip_priority_available_clip_verts_SIZE 5
+#define CLIPPER_DEBUG_REG12_ALWAYS_ZERO1_SIZE 4
+#define CLIPPER_DEBUG_REG12_vertval_bits_vertex_cc_next_valid_SIZE 4
+#define CLIPPER_DEBUG_REG12_clipcc_vertex_store_indx_SIZE 2
+#define CLIPPER_DEBUG_REG12_primic_to_clprim_valid_SIZE 1
+#define CLIPPER_DEBUG_REG12_ALWAYS_ZERO0_SIZE 10
+
+#define CLIPPER_DEBUG_REG12_clip_priority_available_vte_out_clip_SHIFT 0
+#define CLIPPER_DEBUG_REG12_ALWAYS_ZERO2_SHIFT 2
+#define CLIPPER_DEBUG_REG12_clip_vertex_fifo_empty_SHIFT 5
+#define CLIPPER_DEBUG_REG12_clip_priority_available_clip_verts_SHIFT 6
+#define CLIPPER_DEBUG_REG12_ALWAYS_ZERO1_SHIFT 11
+#define CLIPPER_DEBUG_REG12_vertval_bits_vertex_cc_next_valid_SHIFT 15
+#define CLIPPER_DEBUG_REG12_clipcc_vertex_store_indx_SHIFT 19
+#define CLIPPER_DEBUG_REG12_primic_to_clprim_valid_SHIFT 21
+#define CLIPPER_DEBUG_REG12_ALWAYS_ZERO0_SHIFT 22
+
+#define CLIPPER_DEBUG_REG12_clip_priority_available_vte_out_clip_MASK 0x00000003
+#define CLIPPER_DEBUG_REG12_ALWAYS_ZERO2_MASK 0x0000001c
+#define CLIPPER_DEBUG_REG12_clip_vertex_fifo_empty_MASK 0x00000020
+#define CLIPPER_DEBUG_REG12_clip_priority_available_clip_verts_MASK 0x000007c0
+#define CLIPPER_DEBUG_REG12_ALWAYS_ZERO1_MASK 0x00007800
+#define CLIPPER_DEBUG_REG12_vertval_bits_vertex_cc_next_valid_MASK 0x00078000
+#define CLIPPER_DEBUG_REG12_clipcc_vertex_store_indx_MASK 0x00180000
+#define CLIPPER_DEBUG_REG12_primic_to_clprim_valid_MASK 0x00200000
+#define CLIPPER_DEBUG_REG12_ALWAYS_ZERO0_MASK 0xffc00000
+
+#define CLIPPER_DEBUG_REG12_MASK \
+ (CLIPPER_DEBUG_REG12_clip_priority_available_vte_out_clip_MASK | \
+ CLIPPER_DEBUG_REG12_ALWAYS_ZERO2_MASK | \
+ CLIPPER_DEBUG_REG12_clip_vertex_fifo_empty_MASK | \
+ CLIPPER_DEBUG_REG12_clip_priority_available_clip_verts_MASK | \
+ CLIPPER_DEBUG_REG12_ALWAYS_ZERO1_MASK | \
+ CLIPPER_DEBUG_REG12_vertval_bits_vertex_cc_next_valid_MASK | \
+ CLIPPER_DEBUG_REG12_clipcc_vertex_store_indx_MASK | \
+ CLIPPER_DEBUG_REG12_primic_to_clprim_valid_MASK | \
+ CLIPPER_DEBUG_REG12_ALWAYS_ZERO0_MASK)
+
+#define CLIPPER_DEBUG_REG12(clip_priority_available_vte_out_clip, always_zero2, clip_vertex_fifo_empty, clip_priority_available_clip_verts, always_zero1, vertval_bits_vertex_cc_next_valid, clipcc_vertex_store_indx, primic_to_clprim_valid, always_zero0) \
+ ((clip_priority_available_vte_out_clip << CLIPPER_DEBUG_REG12_clip_priority_available_vte_out_clip_SHIFT) | \
+ (always_zero2 << CLIPPER_DEBUG_REG12_ALWAYS_ZERO2_SHIFT) | \
+ (clip_vertex_fifo_empty << CLIPPER_DEBUG_REG12_clip_vertex_fifo_empty_SHIFT) | \
+ (clip_priority_available_clip_verts << CLIPPER_DEBUG_REG12_clip_priority_available_clip_verts_SHIFT) | \
+ (always_zero1 << CLIPPER_DEBUG_REG12_ALWAYS_ZERO1_SHIFT) | \
+ (vertval_bits_vertex_cc_next_valid << CLIPPER_DEBUG_REG12_vertval_bits_vertex_cc_next_valid_SHIFT) | \
+ (clipcc_vertex_store_indx << CLIPPER_DEBUG_REG12_clipcc_vertex_store_indx_SHIFT) | \
+ (primic_to_clprim_valid << CLIPPER_DEBUG_REG12_primic_to_clprim_valid_SHIFT) | \
+ (always_zero0 << CLIPPER_DEBUG_REG12_ALWAYS_ZERO0_SHIFT))
+
+#define CLIPPER_DEBUG_REG12_GET_clip_priority_available_vte_out_clip(clipper_debug_reg12) \
+ ((clipper_debug_reg12 & CLIPPER_DEBUG_REG12_clip_priority_available_vte_out_clip_MASK) >> CLIPPER_DEBUG_REG12_clip_priority_available_vte_out_clip_SHIFT)
+#define CLIPPER_DEBUG_REG12_GET_ALWAYS_ZERO2(clipper_debug_reg12) \
+ ((clipper_debug_reg12 & CLIPPER_DEBUG_REG12_ALWAYS_ZERO2_MASK) >> CLIPPER_DEBUG_REG12_ALWAYS_ZERO2_SHIFT)
+#define CLIPPER_DEBUG_REG12_GET_clip_vertex_fifo_empty(clipper_debug_reg12) \
+ ((clipper_debug_reg12 & CLIPPER_DEBUG_REG12_clip_vertex_fifo_empty_MASK) >> CLIPPER_DEBUG_REG12_clip_vertex_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG12_GET_clip_priority_available_clip_verts(clipper_debug_reg12) \
+ ((clipper_debug_reg12 & CLIPPER_DEBUG_REG12_clip_priority_available_clip_verts_MASK) >> CLIPPER_DEBUG_REG12_clip_priority_available_clip_verts_SHIFT)
+#define CLIPPER_DEBUG_REG12_GET_ALWAYS_ZERO1(clipper_debug_reg12) \
+ ((clipper_debug_reg12 & CLIPPER_DEBUG_REG12_ALWAYS_ZERO1_MASK) >> CLIPPER_DEBUG_REG12_ALWAYS_ZERO1_SHIFT)
+#define CLIPPER_DEBUG_REG12_GET_vertval_bits_vertex_cc_next_valid(clipper_debug_reg12) \
+ ((clipper_debug_reg12 & CLIPPER_DEBUG_REG12_vertval_bits_vertex_cc_next_valid_MASK) >> CLIPPER_DEBUG_REG12_vertval_bits_vertex_cc_next_valid_SHIFT)
+#define CLIPPER_DEBUG_REG12_GET_clipcc_vertex_store_indx(clipper_debug_reg12) \
+ ((clipper_debug_reg12 & CLIPPER_DEBUG_REG12_clipcc_vertex_store_indx_MASK) >> CLIPPER_DEBUG_REG12_clipcc_vertex_store_indx_SHIFT)
+#define CLIPPER_DEBUG_REG12_GET_primic_to_clprim_valid(clipper_debug_reg12) \
+ ((clipper_debug_reg12 & CLIPPER_DEBUG_REG12_primic_to_clprim_valid_MASK) >> CLIPPER_DEBUG_REG12_primic_to_clprim_valid_SHIFT)
+#define CLIPPER_DEBUG_REG12_GET_ALWAYS_ZERO0(clipper_debug_reg12) \
+ ((clipper_debug_reg12 & CLIPPER_DEBUG_REG12_ALWAYS_ZERO0_MASK) >> CLIPPER_DEBUG_REG12_ALWAYS_ZERO0_SHIFT)
+
+#define CLIPPER_DEBUG_REG12_SET_clip_priority_available_vte_out_clip(clipper_debug_reg12_reg, clip_priority_available_vte_out_clip) \
+ clipper_debug_reg12_reg = (clipper_debug_reg12_reg & ~CLIPPER_DEBUG_REG12_clip_priority_available_vte_out_clip_MASK) | (clip_priority_available_vte_out_clip << CLIPPER_DEBUG_REG12_clip_priority_available_vte_out_clip_SHIFT)
+#define CLIPPER_DEBUG_REG12_SET_ALWAYS_ZERO2(clipper_debug_reg12_reg, always_zero2) \
+ clipper_debug_reg12_reg = (clipper_debug_reg12_reg & ~CLIPPER_DEBUG_REG12_ALWAYS_ZERO2_MASK) | (always_zero2 << CLIPPER_DEBUG_REG12_ALWAYS_ZERO2_SHIFT)
+#define CLIPPER_DEBUG_REG12_SET_clip_vertex_fifo_empty(clipper_debug_reg12_reg, clip_vertex_fifo_empty) \
+ clipper_debug_reg12_reg = (clipper_debug_reg12_reg & ~CLIPPER_DEBUG_REG12_clip_vertex_fifo_empty_MASK) | (clip_vertex_fifo_empty << CLIPPER_DEBUG_REG12_clip_vertex_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG12_SET_clip_priority_available_clip_verts(clipper_debug_reg12_reg, clip_priority_available_clip_verts) \
+ clipper_debug_reg12_reg = (clipper_debug_reg12_reg & ~CLIPPER_DEBUG_REG12_clip_priority_available_clip_verts_MASK) | (clip_priority_available_clip_verts << CLIPPER_DEBUG_REG12_clip_priority_available_clip_verts_SHIFT)
+#define CLIPPER_DEBUG_REG12_SET_ALWAYS_ZERO1(clipper_debug_reg12_reg, always_zero1) \
+ clipper_debug_reg12_reg = (clipper_debug_reg12_reg & ~CLIPPER_DEBUG_REG12_ALWAYS_ZERO1_MASK) | (always_zero1 << CLIPPER_DEBUG_REG12_ALWAYS_ZERO1_SHIFT)
+#define CLIPPER_DEBUG_REG12_SET_vertval_bits_vertex_cc_next_valid(clipper_debug_reg12_reg, vertval_bits_vertex_cc_next_valid) \
+ clipper_debug_reg12_reg = (clipper_debug_reg12_reg & ~CLIPPER_DEBUG_REG12_vertval_bits_vertex_cc_next_valid_MASK) | (vertval_bits_vertex_cc_next_valid << CLIPPER_DEBUG_REG12_vertval_bits_vertex_cc_next_valid_SHIFT)
+#define CLIPPER_DEBUG_REG12_SET_clipcc_vertex_store_indx(clipper_debug_reg12_reg, clipcc_vertex_store_indx) \
+ clipper_debug_reg12_reg = (clipper_debug_reg12_reg & ~CLIPPER_DEBUG_REG12_clipcc_vertex_store_indx_MASK) | (clipcc_vertex_store_indx << CLIPPER_DEBUG_REG12_clipcc_vertex_store_indx_SHIFT)
+#define CLIPPER_DEBUG_REG12_SET_primic_to_clprim_valid(clipper_debug_reg12_reg, primic_to_clprim_valid) \
+ clipper_debug_reg12_reg = (clipper_debug_reg12_reg & ~CLIPPER_DEBUG_REG12_primic_to_clprim_valid_MASK) | (primic_to_clprim_valid << CLIPPER_DEBUG_REG12_primic_to_clprim_valid_SHIFT)
+#define CLIPPER_DEBUG_REG12_SET_ALWAYS_ZERO0(clipper_debug_reg12_reg, always_zero0) \
+ clipper_debug_reg12_reg = (clipper_debug_reg12_reg & ~CLIPPER_DEBUG_REG12_ALWAYS_ZERO0_MASK) | (always_zero0 << CLIPPER_DEBUG_REG12_ALWAYS_ZERO0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg12_t {
+ unsigned int clip_priority_available_vte_out_clip : CLIPPER_DEBUG_REG12_clip_priority_available_vte_out_clip_SIZE;
+ unsigned int always_zero2 : CLIPPER_DEBUG_REG12_ALWAYS_ZERO2_SIZE;
+ unsigned int clip_vertex_fifo_empty : CLIPPER_DEBUG_REG12_clip_vertex_fifo_empty_SIZE;
+ unsigned int clip_priority_available_clip_verts : CLIPPER_DEBUG_REG12_clip_priority_available_clip_verts_SIZE;
+ unsigned int always_zero1 : CLIPPER_DEBUG_REG12_ALWAYS_ZERO1_SIZE;
+ unsigned int vertval_bits_vertex_cc_next_valid : CLIPPER_DEBUG_REG12_vertval_bits_vertex_cc_next_valid_SIZE;
+ unsigned int clipcc_vertex_store_indx : CLIPPER_DEBUG_REG12_clipcc_vertex_store_indx_SIZE;
+ unsigned int primic_to_clprim_valid : CLIPPER_DEBUG_REG12_primic_to_clprim_valid_SIZE;
+ unsigned int always_zero0 : CLIPPER_DEBUG_REG12_ALWAYS_ZERO0_SIZE;
+ } clipper_debug_reg12_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg12_t {
+ unsigned int always_zero0 : CLIPPER_DEBUG_REG12_ALWAYS_ZERO0_SIZE;
+ unsigned int primic_to_clprim_valid : CLIPPER_DEBUG_REG12_primic_to_clprim_valid_SIZE;
+ unsigned int clipcc_vertex_store_indx : CLIPPER_DEBUG_REG12_clipcc_vertex_store_indx_SIZE;
+ unsigned int vertval_bits_vertex_cc_next_valid : CLIPPER_DEBUG_REG12_vertval_bits_vertex_cc_next_valid_SIZE;
+ unsigned int always_zero1 : CLIPPER_DEBUG_REG12_ALWAYS_ZERO1_SIZE;
+ unsigned int clip_priority_available_clip_verts : CLIPPER_DEBUG_REG12_clip_priority_available_clip_verts_SIZE;
+ unsigned int clip_vertex_fifo_empty : CLIPPER_DEBUG_REG12_clip_vertex_fifo_empty_SIZE;
+ unsigned int always_zero2 : CLIPPER_DEBUG_REG12_ALWAYS_ZERO2_SIZE;
+ unsigned int clip_priority_available_vte_out_clip : CLIPPER_DEBUG_REG12_clip_priority_available_vte_out_clip_SIZE;
+ } clipper_debug_reg12_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ clipper_debug_reg12_t f;
+} clipper_debug_reg12_u;
+
+
+/*
+ * CLIPPER_DEBUG_REG13 struct
+ */
+
+#define CLIPPER_DEBUG_REG13_sm0_clip_vert_cnt_SIZE 4
+#define CLIPPER_DEBUG_REG13_sm0_prim_end_state_SIZE 7
+#define CLIPPER_DEBUG_REG13_ALWAYS_ZERO1_SIZE 3
+#define CLIPPER_DEBUG_REG13_sm0_vertex_clip_cnt_SIZE 4
+#define CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_1_SIZE 1
+#define CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_0_SIZE 1
+#define CLIPPER_DEBUG_REG13_sm0_current_state_SIZE 7
+#define CLIPPER_DEBUG_REG13_ALWAYS_ZERO0_SIZE 5
+
+#define CLIPPER_DEBUG_REG13_sm0_clip_vert_cnt_SHIFT 0
+#define CLIPPER_DEBUG_REG13_sm0_prim_end_state_SHIFT 4
+#define CLIPPER_DEBUG_REG13_ALWAYS_ZERO1_SHIFT 11
+#define CLIPPER_DEBUG_REG13_sm0_vertex_clip_cnt_SHIFT 14
+#define CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_1_SHIFT 18
+#define CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_0_SHIFT 19
+#define CLIPPER_DEBUG_REG13_sm0_current_state_SHIFT 20
+#define CLIPPER_DEBUG_REG13_ALWAYS_ZERO0_SHIFT 27
+
+#define CLIPPER_DEBUG_REG13_sm0_clip_vert_cnt_MASK 0x0000000f
+#define CLIPPER_DEBUG_REG13_sm0_prim_end_state_MASK 0x000007f0
+#define CLIPPER_DEBUG_REG13_ALWAYS_ZERO1_MASK 0x00003800
+#define CLIPPER_DEBUG_REG13_sm0_vertex_clip_cnt_MASK 0x0003c000
+#define CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_1_MASK 0x00040000
+#define CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_0_MASK 0x00080000
+#define CLIPPER_DEBUG_REG13_sm0_current_state_MASK 0x07f00000
+#define CLIPPER_DEBUG_REG13_ALWAYS_ZERO0_MASK 0xf8000000
+
+#define CLIPPER_DEBUG_REG13_MASK \
+ (CLIPPER_DEBUG_REG13_sm0_clip_vert_cnt_MASK | \
+ CLIPPER_DEBUG_REG13_sm0_prim_end_state_MASK | \
+ CLIPPER_DEBUG_REG13_ALWAYS_ZERO1_MASK | \
+ CLIPPER_DEBUG_REG13_sm0_vertex_clip_cnt_MASK | \
+ CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_1_MASK | \
+ CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_0_MASK | \
+ CLIPPER_DEBUG_REG13_sm0_current_state_MASK | \
+ CLIPPER_DEBUG_REG13_ALWAYS_ZERO0_MASK)
+
+#define CLIPPER_DEBUG_REG13(sm0_clip_vert_cnt, sm0_prim_end_state, always_zero1, sm0_vertex_clip_cnt, sm0_inv_to_clip_data_valid_1, sm0_inv_to_clip_data_valid_0, sm0_current_state, always_zero0) \
+ ((sm0_clip_vert_cnt << CLIPPER_DEBUG_REG13_sm0_clip_vert_cnt_SHIFT) | \
+ (sm0_prim_end_state << CLIPPER_DEBUG_REG13_sm0_prim_end_state_SHIFT) | \
+ (always_zero1 << CLIPPER_DEBUG_REG13_ALWAYS_ZERO1_SHIFT) | \
+ (sm0_vertex_clip_cnt << CLIPPER_DEBUG_REG13_sm0_vertex_clip_cnt_SHIFT) | \
+ (sm0_inv_to_clip_data_valid_1 << CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_1_SHIFT) | \
+ (sm0_inv_to_clip_data_valid_0 << CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_0_SHIFT) | \
+ (sm0_current_state << CLIPPER_DEBUG_REG13_sm0_current_state_SHIFT) | \
+ (always_zero0 << CLIPPER_DEBUG_REG13_ALWAYS_ZERO0_SHIFT))
+
+#define CLIPPER_DEBUG_REG13_GET_sm0_clip_vert_cnt(clipper_debug_reg13) \
+ ((clipper_debug_reg13 & CLIPPER_DEBUG_REG13_sm0_clip_vert_cnt_MASK) >> CLIPPER_DEBUG_REG13_sm0_clip_vert_cnt_SHIFT)
+#define CLIPPER_DEBUG_REG13_GET_sm0_prim_end_state(clipper_debug_reg13) \
+ ((clipper_debug_reg13 & CLIPPER_DEBUG_REG13_sm0_prim_end_state_MASK) >> CLIPPER_DEBUG_REG13_sm0_prim_end_state_SHIFT)
+#define CLIPPER_DEBUG_REG13_GET_ALWAYS_ZERO1(clipper_debug_reg13) \
+ ((clipper_debug_reg13 & CLIPPER_DEBUG_REG13_ALWAYS_ZERO1_MASK) >> CLIPPER_DEBUG_REG13_ALWAYS_ZERO1_SHIFT)
+#define CLIPPER_DEBUG_REG13_GET_sm0_vertex_clip_cnt(clipper_debug_reg13) \
+ ((clipper_debug_reg13 & CLIPPER_DEBUG_REG13_sm0_vertex_clip_cnt_MASK) >> CLIPPER_DEBUG_REG13_sm0_vertex_clip_cnt_SHIFT)
+#define CLIPPER_DEBUG_REG13_GET_sm0_inv_to_clip_data_valid_1(clipper_debug_reg13) \
+ ((clipper_debug_reg13 & CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_1_MASK) >> CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_1_SHIFT)
+#define CLIPPER_DEBUG_REG13_GET_sm0_inv_to_clip_data_valid_0(clipper_debug_reg13) \
+ ((clipper_debug_reg13 & CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_0_MASK) >> CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_0_SHIFT)
+#define CLIPPER_DEBUG_REG13_GET_sm0_current_state(clipper_debug_reg13) \
+ ((clipper_debug_reg13 & CLIPPER_DEBUG_REG13_sm0_current_state_MASK) >> CLIPPER_DEBUG_REG13_sm0_current_state_SHIFT)
+#define CLIPPER_DEBUG_REG13_GET_ALWAYS_ZERO0(clipper_debug_reg13) \
+ ((clipper_debug_reg13 & CLIPPER_DEBUG_REG13_ALWAYS_ZERO0_MASK) >> CLIPPER_DEBUG_REG13_ALWAYS_ZERO0_SHIFT)
+
+#define CLIPPER_DEBUG_REG13_SET_sm0_clip_vert_cnt(clipper_debug_reg13_reg, sm0_clip_vert_cnt) \
+ clipper_debug_reg13_reg = (clipper_debug_reg13_reg & ~CLIPPER_DEBUG_REG13_sm0_clip_vert_cnt_MASK) | (sm0_clip_vert_cnt << CLIPPER_DEBUG_REG13_sm0_clip_vert_cnt_SHIFT)
+#define CLIPPER_DEBUG_REG13_SET_sm0_prim_end_state(clipper_debug_reg13_reg, sm0_prim_end_state) \
+ clipper_debug_reg13_reg = (clipper_debug_reg13_reg & ~CLIPPER_DEBUG_REG13_sm0_prim_end_state_MASK) | (sm0_prim_end_state << CLIPPER_DEBUG_REG13_sm0_prim_end_state_SHIFT)
+#define CLIPPER_DEBUG_REG13_SET_ALWAYS_ZERO1(clipper_debug_reg13_reg, always_zero1) \
+ clipper_debug_reg13_reg = (clipper_debug_reg13_reg & ~CLIPPER_DEBUG_REG13_ALWAYS_ZERO1_MASK) | (always_zero1 << CLIPPER_DEBUG_REG13_ALWAYS_ZERO1_SHIFT)
+#define CLIPPER_DEBUG_REG13_SET_sm0_vertex_clip_cnt(clipper_debug_reg13_reg, sm0_vertex_clip_cnt) \
+ clipper_debug_reg13_reg = (clipper_debug_reg13_reg & ~CLIPPER_DEBUG_REG13_sm0_vertex_clip_cnt_MASK) | (sm0_vertex_clip_cnt << CLIPPER_DEBUG_REG13_sm0_vertex_clip_cnt_SHIFT)
+#define CLIPPER_DEBUG_REG13_SET_sm0_inv_to_clip_data_valid_1(clipper_debug_reg13_reg, sm0_inv_to_clip_data_valid_1) \
+ clipper_debug_reg13_reg = (clipper_debug_reg13_reg & ~CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_1_MASK) | (sm0_inv_to_clip_data_valid_1 << CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_1_SHIFT)
+#define CLIPPER_DEBUG_REG13_SET_sm0_inv_to_clip_data_valid_0(clipper_debug_reg13_reg, sm0_inv_to_clip_data_valid_0) \
+ clipper_debug_reg13_reg = (clipper_debug_reg13_reg & ~CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_0_MASK) | (sm0_inv_to_clip_data_valid_0 << CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_0_SHIFT)
+#define CLIPPER_DEBUG_REG13_SET_sm0_current_state(clipper_debug_reg13_reg, sm0_current_state) \
+ clipper_debug_reg13_reg = (clipper_debug_reg13_reg & ~CLIPPER_DEBUG_REG13_sm0_current_state_MASK) | (sm0_current_state << CLIPPER_DEBUG_REG13_sm0_current_state_SHIFT)
+#define CLIPPER_DEBUG_REG13_SET_ALWAYS_ZERO0(clipper_debug_reg13_reg, always_zero0) \
+ clipper_debug_reg13_reg = (clipper_debug_reg13_reg & ~CLIPPER_DEBUG_REG13_ALWAYS_ZERO0_MASK) | (always_zero0 << CLIPPER_DEBUG_REG13_ALWAYS_ZERO0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg13_t {
+ unsigned int sm0_clip_vert_cnt : CLIPPER_DEBUG_REG13_sm0_clip_vert_cnt_SIZE;
+ unsigned int sm0_prim_end_state : CLIPPER_DEBUG_REG13_sm0_prim_end_state_SIZE;
+ unsigned int always_zero1 : CLIPPER_DEBUG_REG13_ALWAYS_ZERO1_SIZE;
+ unsigned int sm0_vertex_clip_cnt : CLIPPER_DEBUG_REG13_sm0_vertex_clip_cnt_SIZE;
+ unsigned int sm0_inv_to_clip_data_valid_1 : CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_1_SIZE;
+ unsigned int sm0_inv_to_clip_data_valid_0 : CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_0_SIZE;
+ unsigned int sm0_current_state : CLIPPER_DEBUG_REG13_sm0_current_state_SIZE;
+ unsigned int always_zero0 : CLIPPER_DEBUG_REG13_ALWAYS_ZERO0_SIZE;
+ } clipper_debug_reg13_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg13_t {
+ unsigned int always_zero0 : CLIPPER_DEBUG_REG13_ALWAYS_ZERO0_SIZE;
+ unsigned int sm0_current_state : CLIPPER_DEBUG_REG13_sm0_current_state_SIZE;
+ unsigned int sm0_inv_to_clip_data_valid_0 : CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_0_SIZE;
+ unsigned int sm0_inv_to_clip_data_valid_1 : CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_1_SIZE;
+ unsigned int sm0_vertex_clip_cnt : CLIPPER_DEBUG_REG13_sm0_vertex_clip_cnt_SIZE;
+ unsigned int always_zero1 : CLIPPER_DEBUG_REG13_ALWAYS_ZERO1_SIZE;
+ unsigned int sm0_prim_end_state : CLIPPER_DEBUG_REG13_sm0_prim_end_state_SIZE;
+ unsigned int sm0_clip_vert_cnt : CLIPPER_DEBUG_REG13_sm0_clip_vert_cnt_SIZE;
+ } clipper_debug_reg13_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ clipper_debug_reg13_t f;
+} clipper_debug_reg13_u;
+
+
+/*
+ * SXIFCCG_DEBUG_REG0 struct
+ */
+
+#define SXIFCCG_DEBUG_REG0_nan_kill_flag_SIZE 4
+#define SXIFCCG_DEBUG_REG0_position_address_SIZE 3
+#define SXIFCCG_DEBUG_REG0_ALWAYS_ZERO2_SIZE 3
+#define SXIFCCG_DEBUG_REG0_point_address_SIZE 3
+#define SXIFCCG_DEBUG_REG0_ALWAYS_ZERO1_SIZE 3
+#define SXIFCCG_DEBUG_REG0_sx_pending_rd_state_var_indx_SIZE 1
+#define SXIFCCG_DEBUG_REG0_ALWAYS_ZERO0_SIZE 2
+#define SXIFCCG_DEBUG_REG0_sx_pending_rd_req_mask_SIZE 4
+#define SXIFCCG_DEBUG_REG0_sx_pending_rd_pci_SIZE 7
+#define SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_inc_SIZE 1
+#define SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_sel_SIZE 1
+
+#define SXIFCCG_DEBUG_REG0_nan_kill_flag_SHIFT 0
+#define SXIFCCG_DEBUG_REG0_position_address_SHIFT 4
+#define SXIFCCG_DEBUG_REG0_ALWAYS_ZERO2_SHIFT 7
+#define SXIFCCG_DEBUG_REG0_point_address_SHIFT 10
+#define SXIFCCG_DEBUG_REG0_ALWAYS_ZERO1_SHIFT 13
+#define SXIFCCG_DEBUG_REG0_sx_pending_rd_state_var_indx_SHIFT 16
+#define SXIFCCG_DEBUG_REG0_ALWAYS_ZERO0_SHIFT 17
+#define SXIFCCG_DEBUG_REG0_sx_pending_rd_req_mask_SHIFT 19
+#define SXIFCCG_DEBUG_REG0_sx_pending_rd_pci_SHIFT 23
+#define SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_inc_SHIFT 30
+#define SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_sel_SHIFT 31
+
+#define SXIFCCG_DEBUG_REG0_nan_kill_flag_MASK 0x0000000f
+#define SXIFCCG_DEBUG_REG0_position_address_MASK 0x00000070
+#define SXIFCCG_DEBUG_REG0_ALWAYS_ZERO2_MASK 0x00000380
+#define SXIFCCG_DEBUG_REG0_point_address_MASK 0x00001c00
+#define SXIFCCG_DEBUG_REG0_ALWAYS_ZERO1_MASK 0x0000e000
+#define SXIFCCG_DEBUG_REG0_sx_pending_rd_state_var_indx_MASK 0x00010000
+#define SXIFCCG_DEBUG_REG0_ALWAYS_ZERO0_MASK 0x00060000
+#define SXIFCCG_DEBUG_REG0_sx_pending_rd_req_mask_MASK 0x00780000
+#define SXIFCCG_DEBUG_REG0_sx_pending_rd_pci_MASK 0x3f800000
+#define SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_inc_MASK 0x40000000
+#define SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_sel_MASK 0x80000000
+
+#define SXIFCCG_DEBUG_REG0_MASK \
+ (SXIFCCG_DEBUG_REG0_nan_kill_flag_MASK | \
+ SXIFCCG_DEBUG_REG0_position_address_MASK | \
+ SXIFCCG_DEBUG_REG0_ALWAYS_ZERO2_MASK | \
+ SXIFCCG_DEBUG_REG0_point_address_MASK | \
+ SXIFCCG_DEBUG_REG0_ALWAYS_ZERO1_MASK | \
+ SXIFCCG_DEBUG_REG0_sx_pending_rd_state_var_indx_MASK | \
+ SXIFCCG_DEBUG_REG0_ALWAYS_ZERO0_MASK | \
+ SXIFCCG_DEBUG_REG0_sx_pending_rd_req_mask_MASK | \
+ SXIFCCG_DEBUG_REG0_sx_pending_rd_pci_MASK | \
+ SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_inc_MASK | \
+ SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_sel_MASK)
+
+#define SXIFCCG_DEBUG_REG0(nan_kill_flag, position_address, always_zero2, point_address, always_zero1, sx_pending_rd_state_var_indx, always_zero0, sx_pending_rd_req_mask, sx_pending_rd_pci, sx_pending_rd_aux_inc, sx_pending_rd_aux_sel) \
+ ((nan_kill_flag << SXIFCCG_DEBUG_REG0_nan_kill_flag_SHIFT) | \
+ (position_address << SXIFCCG_DEBUG_REG0_position_address_SHIFT) | \
+ (always_zero2 << SXIFCCG_DEBUG_REG0_ALWAYS_ZERO2_SHIFT) | \
+ (point_address << SXIFCCG_DEBUG_REG0_point_address_SHIFT) | \
+ (always_zero1 << SXIFCCG_DEBUG_REG0_ALWAYS_ZERO1_SHIFT) | \
+ (sx_pending_rd_state_var_indx << SXIFCCG_DEBUG_REG0_sx_pending_rd_state_var_indx_SHIFT) | \
+ (always_zero0 << SXIFCCG_DEBUG_REG0_ALWAYS_ZERO0_SHIFT) | \
+ (sx_pending_rd_req_mask << SXIFCCG_DEBUG_REG0_sx_pending_rd_req_mask_SHIFT) | \
+ (sx_pending_rd_pci << SXIFCCG_DEBUG_REG0_sx_pending_rd_pci_SHIFT) | \
+ (sx_pending_rd_aux_inc << SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_inc_SHIFT) | \
+ (sx_pending_rd_aux_sel << SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_sel_SHIFT))
+
+#define SXIFCCG_DEBUG_REG0_GET_nan_kill_flag(sxifccg_debug_reg0) \
+ ((sxifccg_debug_reg0 & SXIFCCG_DEBUG_REG0_nan_kill_flag_MASK) >> SXIFCCG_DEBUG_REG0_nan_kill_flag_SHIFT)
+#define SXIFCCG_DEBUG_REG0_GET_position_address(sxifccg_debug_reg0) \
+ ((sxifccg_debug_reg0 & SXIFCCG_DEBUG_REG0_position_address_MASK) >> SXIFCCG_DEBUG_REG0_position_address_SHIFT)
+#define SXIFCCG_DEBUG_REG0_GET_ALWAYS_ZERO2(sxifccg_debug_reg0) \
+ ((sxifccg_debug_reg0 & SXIFCCG_DEBUG_REG0_ALWAYS_ZERO2_MASK) >> SXIFCCG_DEBUG_REG0_ALWAYS_ZERO2_SHIFT)
+#define SXIFCCG_DEBUG_REG0_GET_point_address(sxifccg_debug_reg0) \
+ ((sxifccg_debug_reg0 & SXIFCCG_DEBUG_REG0_point_address_MASK) >> SXIFCCG_DEBUG_REG0_point_address_SHIFT)
+#define SXIFCCG_DEBUG_REG0_GET_ALWAYS_ZERO1(sxifccg_debug_reg0) \
+ ((sxifccg_debug_reg0 & SXIFCCG_DEBUG_REG0_ALWAYS_ZERO1_MASK) >> SXIFCCG_DEBUG_REG0_ALWAYS_ZERO1_SHIFT)
+#define SXIFCCG_DEBUG_REG0_GET_sx_pending_rd_state_var_indx(sxifccg_debug_reg0) \
+ ((sxifccg_debug_reg0 & SXIFCCG_DEBUG_REG0_sx_pending_rd_state_var_indx_MASK) >> SXIFCCG_DEBUG_REG0_sx_pending_rd_state_var_indx_SHIFT)
+#define SXIFCCG_DEBUG_REG0_GET_ALWAYS_ZERO0(sxifccg_debug_reg0) \
+ ((sxifccg_debug_reg0 & SXIFCCG_DEBUG_REG0_ALWAYS_ZERO0_MASK) >> SXIFCCG_DEBUG_REG0_ALWAYS_ZERO0_SHIFT)
+#define SXIFCCG_DEBUG_REG0_GET_sx_pending_rd_req_mask(sxifccg_debug_reg0) \
+ ((sxifccg_debug_reg0 & SXIFCCG_DEBUG_REG0_sx_pending_rd_req_mask_MASK) >> SXIFCCG_DEBUG_REG0_sx_pending_rd_req_mask_SHIFT)
+#define SXIFCCG_DEBUG_REG0_GET_sx_pending_rd_pci(sxifccg_debug_reg0) \
+ ((sxifccg_debug_reg0 & SXIFCCG_DEBUG_REG0_sx_pending_rd_pci_MASK) >> SXIFCCG_DEBUG_REG0_sx_pending_rd_pci_SHIFT)
+#define SXIFCCG_DEBUG_REG0_GET_sx_pending_rd_aux_inc(sxifccg_debug_reg0) \
+ ((sxifccg_debug_reg0 & SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_inc_MASK) >> SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_inc_SHIFT)
+#define SXIFCCG_DEBUG_REG0_GET_sx_pending_rd_aux_sel(sxifccg_debug_reg0) \
+ ((sxifccg_debug_reg0 & SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_sel_MASK) >> SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_sel_SHIFT)
+
+#define SXIFCCG_DEBUG_REG0_SET_nan_kill_flag(sxifccg_debug_reg0_reg, nan_kill_flag) \
+ sxifccg_debug_reg0_reg = (sxifccg_debug_reg0_reg & ~SXIFCCG_DEBUG_REG0_nan_kill_flag_MASK) | (nan_kill_flag << SXIFCCG_DEBUG_REG0_nan_kill_flag_SHIFT)
+#define SXIFCCG_DEBUG_REG0_SET_position_address(sxifccg_debug_reg0_reg, position_address) \
+ sxifccg_debug_reg0_reg = (sxifccg_debug_reg0_reg & ~SXIFCCG_DEBUG_REG0_position_address_MASK) | (position_address << SXIFCCG_DEBUG_REG0_position_address_SHIFT)
+#define SXIFCCG_DEBUG_REG0_SET_ALWAYS_ZERO2(sxifccg_debug_reg0_reg, always_zero2) \
+ sxifccg_debug_reg0_reg = (sxifccg_debug_reg0_reg & ~SXIFCCG_DEBUG_REG0_ALWAYS_ZERO2_MASK) | (always_zero2 << SXIFCCG_DEBUG_REG0_ALWAYS_ZERO2_SHIFT)
+#define SXIFCCG_DEBUG_REG0_SET_point_address(sxifccg_debug_reg0_reg, point_address) \
+ sxifccg_debug_reg0_reg = (sxifccg_debug_reg0_reg & ~SXIFCCG_DEBUG_REG0_point_address_MASK) | (point_address << SXIFCCG_DEBUG_REG0_point_address_SHIFT)
+#define SXIFCCG_DEBUG_REG0_SET_ALWAYS_ZERO1(sxifccg_debug_reg0_reg, always_zero1) \
+ sxifccg_debug_reg0_reg = (sxifccg_debug_reg0_reg & ~SXIFCCG_DEBUG_REG0_ALWAYS_ZERO1_MASK) | (always_zero1 << SXIFCCG_DEBUG_REG0_ALWAYS_ZERO1_SHIFT)
+#define SXIFCCG_DEBUG_REG0_SET_sx_pending_rd_state_var_indx(sxifccg_debug_reg0_reg, sx_pending_rd_state_var_indx) \
+ sxifccg_debug_reg0_reg = (sxifccg_debug_reg0_reg & ~SXIFCCG_DEBUG_REG0_sx_pending_rd_state_var_indx_MASK) | (sx_pending_rd_state_var_indx << SXIFCCG_DEBUG_REG0_sx_pending_rd_state_var_indx_SHIFT)
+#define SXIFCCG_DEBUG_REG0_SET_ALWAYS_ZERO0(sxifccg_debug_reg0_reg, always_zero0) \
+ sxifccg_debug_reg0_reg = (sxifccg_debug_reg0_reg & ~SXIFCCG_DEBUG_REG0_ALWAYS_ZERO0_MASK) | (always_zero0 << SXIFCCG_DEBUG_REG0_ALWAYS_ZERO0_SHIFT)
+#define SXIFCCG_DEBUG_REG0_SET_sx_pending_rd_req_mask(sxifccg_debug_reg0_reg, sx_pending_rd_req_mask) \
+ sxifccg_debug_reg0_reg = (sxifccg_debug_reg0_reg & ~SXIFCCG_DEBUG_REG0_sx_pending_rd_req_mask_MASK) | (sx_pending_rd_req_mask << SXIFCCG_DEBUG_REG0_sx_pending_rd_req_mask_SHIFT)
+#define SXIFCCG_DEBUG_REG0_SET_sx_pending_rd_pci(sxifccg_debug_reg0_reg, sx_pending_rd_pci) \
+ sxifccg_debug_reg0_reg = (sxifccg_debug_reg0_reg & ~SXIFCCG_DEBUG_REG0_sx_pending_rd_pci_MASK) | (sx_pending_rd_pci << SXIFCCG_DEBUG_REG0_sx_pending_rd_pci_SHIFT)
+#define SXIFCCG_DEBUG_REG0_SET_sx_pending_rd_aux_inc(sxifccg_debug_reg0_reg, sx_pending_rd_aux_inc) \
+ sxifccg_debug_reg0_reg = (sxifccg_debug_reg0_reg & ~SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_inc_MASK) | (sx_pending_rd_aux_inc << SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_inc_SHIFT)
+#define SXIFCCG_DEBUG_REG0_SET_sx_pending_rd_aux_sel(sxifccg_debug_reg0_reg, sx_pending_rd_aux_sel) \
+ sxifccg_debug_reg0_reg = (sxifccg_debug_reg0_reg & ~SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_sel_MASK) | (sx_pending_rd_aux_sel << SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_sel_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sxifccg_debug_reg0_t {
+ unsigned int nan_kill_flag : SXIFCCG_DEBUG_REG0_nan_kill_flag_SIZE;
+ unsigned int position_address : SXIFCCG_DEBUG_REG0_position_address_SIZE;
+ unsigned int always_zero2 : SXIFCCG_DEBUG_REG0_ALWAYS_ZERO2_SIZE;
+ unsigned int point_address : SXIFCCG_DEBUG_REG0_point_address_SIZE;
+ unsigned int always_zero1 : SXIFCCG_DEBUG_REG0_ALWAYS_ZERO1_SIZE;
+ unsigned int sx_pending_rd_state_var_indx : SXIFCCG_DEBUG_REG0_sx_pending_rd_state_var_indx_SIZE;
+ unsigned int always_zero0 : SXIFCCG_DEBUG_REG0_ALWAYS_ZERO0_SIZE;
+ unsigned int sx_pending_rd_req_mask : SXIFCCG_DEBUG_REG0_sx_pending_rd_req_mask_SIZE;
+ unsigned int sx_pending_rd_pci : SXIFCCG_DEBUG_REG0_sx_pending_rd_pci_SIZE;
+ unsigned int sx_pending_rd_aux_inc : SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_inc_SIZE;
+ unsigned int sx_pending_rd_aux_sel : SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_sel_SIZE;
+ } sxifccg_debug_reg0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sxifccg_debug_reg0_t {
+ unsigned int sx_pending_rd_aux_sel : SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_sel_SIZE;
+ unsigned int sx_pending_rd_aux_inc : SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_inc_SIZE;
+ unsigned int sx_pending_rd_pci : SXIFCCG_DEBUG_REG0_sx_pending_rd_pci_SIZE;
+ unsigned int sx_pending_rd_req_mask : SXIFCCG_DEBUG_REG0_sx_pending_rd_req_mask_SIZE;
+ unsigned int always_zero0 : SXIFCCG_DEBUG_REG0_ALWAYS_ZERO0_SIZE;
+ unsigned int sx_pending_rd_state_var_indx : SXIFCCG_DEBUG_REG0_sx_pending_rd_state_var_indx_SIZE;
+ unsigned int always_zero1 : SXIFCCG_DEBUG_REG0_ALWAYS_ZERO1_SIZE;
+ unsigned int point_address : SXIFCCG_DEBUG_REG0_point_address_SIZE;
+ unsigned int always_zero2 : SXIFCCG_DEBUG_REG0_ALWAYS_ZERO2_SIZE;
+ unsigned int position_address : SXIFCCG_DEBUG_REG0_position_address_SIZE;
+ unsigned int nan_kill_flag : SXIFCCG_DEBUG_REG0_nan_kill_flag_SIZE;
+ } sxifccg_debug_reg0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sxifccg_debug_reg0_t f;
+} sxifccg_debug_reg0_u;
+
+
+/*
+ * SXIFCCG_DEBUG_REG1 struct
+ */
+
+#define SXIFCCG_DEBUG_REG1_ALWAYS_ZERO3_SIZE 2
+#define SXIFCCG_DEBUG_REG1_sx_to_pa_empty_SIZE 2
+#define SXIFCCG_DEBUG_REG1_available_positions_SIZE 3
+#define SXIFCCG_DEBUG_REG1_ALWAYS_ZERO2_SIZE 4
+#define SXIFCCG_DEBUG_REG1_sx_pending_advance_SIZE 1
+#define SXIFCCG_DEBUG_REG1_sx_receive_indx_SIZE 3
+#define SXIFCCG_DEBUG_REG1_statevar_bits_sxpa_aux_vector_SIZE 1
+#define SXIFCCG_DEBUG_REG1_ALWAYS_ZERO1_SIZE 4
+#define SXIFCCG_DEBUG_REG1_aux_sel_SIZE 1
+#define SXIFCCG_DEBUG_REG1_ALWAYS_ZERO0_SIZE 2
+#define SXIFCCG_DEBUG_REG1_pasx_req_cnt_SIZE 2
+#define SXIFCCG_DEBUG_REG1_param_cache_base_SIZE 7
+
+#define SXIFCCG_DEBUG_REG1_ALWAYS_ZERO3_SHIFT 0
+#define SXIFCCG_DEBUG_REG1_sx_to_pa_empty_SHIFT 2
+#define SXIFCCG_DEBUG_REG1_available_positions_SHIFT 4
+#define SXIFCCG_DEBUG_REG1_ALWAYS_ZERO2_SHIFT 7
+#define SXIFCCG_DEBUG_REG1_sx_pending_advance_SHIFT 11
+#define SXIFCCG_DEBUG_REG1_sx_receive_indx_SHIFT 12
+#define SXIFCCG_DEBUG_REG1_statevar_bits_sxpa_aux_vector_SHIFT 15
+#define SXIFCCG_DEBUG_REG1_ALWAYS_ZERO1_SHIFT 16
+#define SXIFCCG_DEBUG_REG1_aux_sel_SHIFT 20
+#define SXIFCCG_DEBUG_REG1_ALWAYS_ZERO0_SHIFT 21
+#define SXIFCCG_DEBUG_REG1_pasx_req_cnt_SHIFT 23
+#define SXIFCCG_DEBUG_REG1_param_cache_base_SHIFT 25
+
+#define SXIFCCG_DEBUG_REG1_ALWAYS_ZERO3_MASK 0x00000003
+#define SXIFCCG_DEBUG_REG1_sx_to_pa_empty_MASK 0x0000000c
+#define SXIFCCG_DEBUG_REG1_available_positions_MASK 0x00000070
+#define SXIFCCG_DEBUG_REG1_ALWAYS_ZERO2_MASK 0x00000780
+#define SXIFCCG_DEBUG_REG1_sx_pending_advance_MASK 0x00000800
+#define SXIFCCG_DEBUG_REG1_sx_receive_indx_MASK 0x00007000
+#define SXIFCCG_DEBUG_REG1_statevar_bits_sxpa_aux_vector_MASK 0x00008000
+#define SXIFCCG_DEBUG_REG1_ALWAYS_ZERO1_MASK 0x000f0000
+#define SXIFCCG_DEBUG_REG1_aux_sel_MASK 0x00100000
+#define SXIFCCG_DEBUG_REG1_ALWAYS_ZERO0_MASK 0x00600000
+#define SXIFCCG_DEBUG_REG1_pasx_req_cnt_MASK 0x01800000
+#define SXIFCCG_DEBUG_REG1_param_cache_base_MASK 0xfe000000
+
+#define SXIFCCG_DEBUG_REG1_MASK \
+ (SXIFCCG_DEBUG_REG1_ALWAYS_ZERO3_MASK | \
+ SXIFCCG_DEBUG_REG1_sx_to_pa_empty_MASK | \
+ SXIFCCG_DEBUG_REG1_available_positions_MASK | \
+ SXIFCCG_DEBUG_REG1_ALWAYS_ZERO2_MASK | \
+ SXIFCCG_DEBUG_REG1_sx_pending_advance_MASK | \
+ SXIFCCG_DEBUG_REG1_sx_receive_indx_MASK | \
+ SXIFCCG_DEBUG_REG1_statevar_bits_sxpa_aux_vector_MASK | \
+ SXIFCCG_DEBUG_REG1_ALWAYS_ZERO1_MASK | \
+ SXIFCCG_DEBUG_REG1_aux_sel_MASK | \
+ SXIFCCG_DEBUG_REG1_ALWAYS_ZERO0_MASK | \
+ SXIFCCG_DEBUG_REG1_pasx_req_cnt_MASK | \
+ SXIFCCG_DEBUG_REG1_param_cache_base_MASK)
+
+#define SXIFCCG_DEBUG_REG1(always_zero3, sx_to_pa_empty, available_positions, always_zero2, sx_pending_advance, sx_receive_indx, statevar_bits_sxpa_aux_vector, always_zero1, aux_sel, always_zero0, pasx_req_cnt, param_cache_base) \
+ ((always_zero3 << SXIFCCG_DEBUG_REG1_ALWAYS_ZERO3_SHIFT) | \
+ (sx_to_pa_empty << SXIFCCG_DEBUG_REG1_sx_to_pa_empty_SHIFT) | \
+ (available_positions << SXIFCCG_DEBUG_REG1_available_positions_SHIFT) | \
+ (always_zero2 << SXIFCCG_DEBUG_REG1_ALWAYS_ZERO2_SHIFT) | \
+ (sx_pending_advance << SXIFCCG_DEBUG_REG1_sx_pending_advance_SHIFT) | \
+ (sx_receive_indx << SXIFCCG_DEBUG_REG1_sx_receive_indx_SHIFT) | \
+ (statevar_bits_sxpa_aux_vector << SXIFCCG_DEBUG_REG1_statevar_bits_sxpa_aux_vector_SHIFT) | \
+ (always_zero1 << SXIFCCG_DEBUG_REG1_ALWAYS_ZERO1_SHIFT) | \
+ (aux_sel << SXIFCCG_DEBUG_REG1_aux_sel_SHIFT) | \
+ (always_zero0 << SXIFCCG_DEBUG_REG1_ALWAYS_ZERO0_SHIFT) | \
+ (pasx_req_cnt << SXIFCCG_DEBUG_REG1_pasx_req_cnt_SHIFT) | \
+ (param_cache_base << SXIFCCG_DEBUG_REG1_param_cache_base_SHIFT))
+
+#define SXIFCCG_DEBUG_REG1_GET_ALWAYS_ZERO3(sxifccg_debug_reg1) \
+ ((sxifccg_debug_reg1 & SXIFCCG_DEBUG_REG1_ALWAYS_ZERO3_MASK) >> SXIFCCG_DEBUG_REG1_ALWAYS_ZERO3_SHIFT)
+#define SXIFCCG_DEBUG_REG1_GET_sx_to_pa_empty(sxifccg_debug_reg1) \
+ ((sxifccg_debug_reg1 & SXIFCCG_DEBUG_REG1_sx_to_pa_empty_MASK) >> SXIFCCG_DEBUG_REG1_sx_to_pa_empty_SHIFT)
+#define SXIFCCG_DEBUG_REG1_GET_available_positions(sxifccg_debug_reg1) \
+ ((sxifccg_debug_reg1 & SXIFCCG_DEBUG_REG1_available_positions_MASK) >> SXIFCCG_DEBUG_REG1_available_positions_SHIFT)
+#define SXIFCCG_DEBUG_REG1_GET_ALWAYS_ZERO2(sxifccg_debug_reg1) \
+ ((sxifccg_debug_reg1 & SXIFCCG_DEBUG_REG1_ALWAYS_ZERO2_MASK) >> SXIFCCG_DEBUG_REG1_ALWAYS_ZERO2_SHIFT)
+#define SXIFCCG_DEBUG_REG1_GET_sx_pending_advance(sxifccg_debug_reg1) \
+ ((sxifccg_debug_reg1 & SXIFCCG_DEBUG_REG1_sx_pending_advance_MASK) >> SXIFCCG_DEBUG_REG1_sx_pending_advance_SHIFT)
+#define SXIFCCG_DEBUG_REG1_GET_sx_receive_indx(sxifccg_debug_reg1) \
+ ((sxifccg_debug_reg1 & SXIFCCG_DEBUG_REG1_sx_receive_indx_MASK) >> SXIFCCG_DEBUG_REG1_sx_receive_indx_SHIFT)
+#define SXIFCCG_DEBUG_REG1_GET_statevar_bits_sxpa_aux_vector(sxifccg_debug_reg1) \
+ ((sxifccg_debug_reg1 & SXIFCCG_DEBUG_REG1_statevar_bits_sxpa_aux_vector_MASK) >> SXIFCCG_DEBUG_REG1_statevar_bits_sxpa_aux_vector_SHIFT)
+#define SXIFCCG_DEBUG_REG1_GET_ALWAYS_ZERO1(sxifccg_debug_reg1) \
+ ((sxifccg_debug_reg1 & SXIFCCG_DEBUG_REG1_ALWAYS_ZERO1_MASK) >> SXIFCCG_DEBUG_REG1_ALWAYS_ZERO1_SHIFT)
+#define SXIFCCG_DEBUG_REG1_GET_aux_sel(sxifccg_debug_reg1) \
+ ((sxifccg_debug_reg1 & SXIFCCG_DEBUG_REG1_aux_sel_MASK) >> SXIFCCG_DEBUG_REG1_aux_sel_SHIFT)
+#define SXIFCCG_DEBUG_REG1_GET_ALWAYS_ZERO0(sxifccg_debug_reg1) \
+ ((sxifccg_debug_reg1 & SXIFCCG_DEBUG_REG1_ALWAYS_ZERO0_MASK) >> SXIFCCG_DEBUG_REG1_ALWAYS_ZERO0_SHIFT)
+#define SXIFCCG_DEBUG_REG1_GET_pasx_req_cnt(sxifccg_debug_reg1) \
+ ((sxifccg_debug_reg1 & SXIFCCG_DEBUG_REG1_pasx_req_cnt_MASK) >> SXIFCCG_DEBUG_REG1_pasx_req_cnt_SHIFT)
+#define SXIFCCG_DEBUG_REG1_GET_param_cache_base(sxifccg_debug_reg1) \
+ ((sxifccg_debug_reg1 & SXIFCCG_DEBUG_REG1_param_cache_base_MASK) >> SXIFCCG_DEBUG_REG1_param_cache_base_SHIFT)
+
+#define SXIFCCG_DEBUG_REG1_SET_ALWAYS_ZERO3(sxifccg_debug_reg1_reg, always_zero3) \
+ sxifccg_debug_reg1_reg = (sxifccg_debug_reg1_reg & ~SXIFCCG_DEBUG_REG1_ALWAYS_ZERO3_MASK) | (always_zero3 << SXIFCCG_DEBUG_REG1_ALWAYS_ZERO3_SHIFT)
+#define SXIFCCG_DEBUG_REG1_SET_sx_to_pa_empty(sxifccg_debug_reg1_reg, sx_to_pa_empty) \
+ sxifccg_debug_reg1_reg = (sxifccg_debug_reg1_reg & ~SXIFCCG_DEBUG_REG1_sx_to_pa_empty_MASK) | (sx_to_pa_empty << SXIFCCG_DEBUG_REG1_sx_to_pa_empty_SHIFT)
+#define SXIFCCG_DEBUG_REG1_SET_available_positions(sxifccg_debug_reg1_reg, available_positions) \
+ sxifccg_debug_reg1_reg = (sxifccg_debug_reg1_reg & ~SXIFCCG_DEBUG_REG1_available_positions_MASK) | (available_positions << SXIFCCG_DEBUG_REG1_available_positions_SHIFT)
+#define SXIFCCG_DEBUG_REG1_SET_ALWAYS_ZERO2(sxifccg_debug_reg1_reg, always_zero2) \
+ sxifccg_debug_reg1_reg = (sxifccg_debug_reg1_reg & ~SXIFCCG_DEBUG_REG1_ALWAYS_ZERO2_MASK) | (always_zero2 << SXIFCCG_DEBUG_REG1_ALWAYS_ZERO2_SHIFT)
+#define SXIFCCG_DEBUG_REG1_SET_sx_pending_advance(sxifccg_debug_reg1_reg, sx_pending_advance) \
+ sxifccg_debug_reg1_reg = (sxifccg_debug_reg1_reg & ~SXIFCCG_DEBUG_REG1_sx_pending_advance_MASK) | (sx_pending_advance << SXIFCCG_DEBUG_REG1_sx_pending_advance_SHIFT)
+#define SXIFCCG_DEBUG_REG1_SET_sx_receive_indx(sxifccg_debug_reg1_reg, sx_receive_indx) \
+ sxifccg_debug_reg1_reg = (sxifccg_debug_reg1_reg & ~SXIFCCG_DEBUG_REG1_sx_receive_indx_MASK) | (sx_receive_indx << SXIFCCG_DEBUG_REG1_sx_receive_indx_SHIFT)
+#define SXIFCCG_DEBUG_REG1_SET_statevar_bits_sxpa_aux_vector(sxifccg_debug_reg1_reg, statevar_bits_sxpa_aux_vector) \
+ sxifccg_debug_reg1_reg = (sxifccg_debug_reg1_reg & ~SXIFCCG_DEBUG_REG1_statevar_bits_sxpa_aux_vector_MASK) | (statevar_bits_sxpa_aux_vector << SXIFCCG_DEBUG_REG1_statevar_bits_sxpa_aux_vector_SHIFT)
+#define SXIFCCG_DEBUG_REG1_SET_ALWAYS_ZERO1(sxifccg_debug_reg1_reg, always_zero1) \
+ sxifccg_debug_reg1_reg = (sxifccg_debug_reg1_reg & ~SXIFCCG_DEBUG_REG1_ALWAYS_ZERO1_MASK) | (always_zero1 << SXIFCCG_DEBUG_REG1_ALWAYS_ZERO1_SHIFT)
+#define SXIFCCG_DEBUG_REG1_SET_aux_sel(sxifccg_debug_reg1_reg, aux_sel) \
+ sxifccg_debug_reg1_reg = (sxifccg_debug_reg1_reg & ~SXIFCCG_DEBUG_REG1_aux_sel_MASK) | (aux_sel << SXIFCCG_DEBUG_REG1_aux_sel_SHIFT)
+#define SXIFCCG_DEBUG_REG1_SET_ALWAYS_ZERO0(sxifccg_debug_reg1_reg, always_zero0) \
+ sxifccg_debug_reg1_reg = (sxifccg_debug_reg1_reg & ~SXIFCCG_DEBUG_REG1_ALWAYS_ZERO0_MASK) | (always_zero0 << SXIFCCG_DEBUG_REG1_ALWAYS_ZERO0_SHIFT)
+#define SXIFCCG_DEBUG_REG1_SET_pasx_req_cnt(sxifccg_debug_reg1_reg, pasx_req_cnt) \
+ sxifccg_debug_reg1_reg = (sxifccg_debug_reg1_reg & ~SXIFCCG_DEBUG_REG1_pasx_req_cnt_MASK) | (pasx_req_cnt << SXIFCCG_DEBUG_REG1_pasx_req_cnt_SHIFT)
+#define SXIFCCG_DEBUG_REG1_SET_param_cache_base(sxifccg_debug_reg1_reg, param_cache_base) \
+ sxifccg_debug_reg1_reg = (sxifccg_debug_reg1_reg & ~SXIFCCG_DEBUG_REG1_param_cache_base_MASK) | (param_cache_base << SXIFCCG_DEBUG_REG1_param_cache_base_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sxifccg_debug_reg1_t {
+ unsigned int always_zero3 : SXIFCCG_DEBUG_REG1_ALWAYS_ZERO3_SIZE;
+ unsigned int sx_to_pa_empty : SXIFCCG_DEBUG_REG1_sx_to_pa_empty_SIZE;
+ unsigned int available_positions : SXIFCCG_DEBUG_REG1_available_positions_SIZE;
+ unsigned int always_zero2 : SXIFCCG_DEBUG_REG1_ALWAYS_ZERO2_SIZE;
+ unsigned int sx_pending_advance : SXIFCCG_DEBUG_REG1_sx_pending_advance_SIZE;
+ unsigned int sx_receive_indx : SXIFCCG_DEBUG_REG1_sx_receive_indx_SIZE;
+ unsigned int statevar_bits_sxpa_aux_vector : SXIFCCG_DEBUG_REG1_statevar_bits_sxpa_aux_vector_SIZE;
+ unsigned int always_zero1 : SXIFCCG_DEBUG_REG1_ALWAYS_ZERO1_SIZE;
+ unsigned int aux_sel : SXIFCCG_DEBUG_REG1_aux_sel_SIZE;
+ unsigned int always_zero0 : SXIFCCG_DEBUG_REG1_ALWAYS_ZERO0_SIZE;
+ unsigned int pasx_req_cnt : SXIFCCG_DEBUG_REG1_pasx_req_cnt_SIZE;
+ unsigned int param_cache_base : SXIFCCG_DEBUG_REG1_param_cache_base_SIZE;
+ } sxifccg_debug_reg1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sxifccg_debug_reg1_t {
+ unsigned int param_cache_base : SXIFCCG_DEBUG_REG1_param_cache_base_SIZE;
+ unsigned int pasx_req_cnt : SXIFCCG_DEBUG_REG1_pasx_req_cnt_SIZE;
+ unsigned int always_zero0 : SXIFCCG_DEBUG_REG1_ALWAYS_ZERO0_SIZE;
+ unsigned int aux_sel : SXIFCCG_DEBUG_REG1_aux_sel_SIZE;
+ unsigned int always_zero1 : SXIFCCG_DEBUG_REG1_ALWAYS_ZERO1_SIZE;
+ unsigned int statevar_bits_sxpa_aux_vector : SXIFCCG_DEBUG_REG1_statevar_bits_sxpa_aux_vector_SIZE;
+ unsigned int sx_receive_indx : SXIFCCG_DEBUG_REG1_sx_receive_indx_SIZE;
+ unsigned int sx_pending_advance : SXIFCCG_DEBUG_REG1_sx_pending_advance_SIZE;
+ unsigned int always_zero2 : SXIFCCG_DEBUG_REG1_ALWAYS_ZERO2_SIZE;
+ unsigned int available_positions : SXIFCCG_DEBUG_REG1_available_positions_SIZE;
+ unsigned int sx_to_pa_empty : SXIFCCG_DEBUG_REG1_sx_to_pa_empty_SIZE;
+ unsigned int always_zero3 : SXIFCCG_DEBUG_REG1_ALWAYS_ZERO3_SIZE;
+ } sxifccg_debug_reg1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sxifccg_debug_reg1_t f;
+} sxifccg_debug_reg1_u;
+
+
+/*
+ * SXIFCCG_DEBUG_REG2 struct
+ */
+
+#define SXIFCCG_DEBUG_REG2_sx_sent_SIZE 1
+#define SXIFCCG_DEBUG_REG2_ALWAYS_ZERO3_SIZE 1
+#define SXIFCCG_DEBUG_REG2_sx_aux_SIZE 1
+#define SXIFCCG_DEBUG_REG2_sx_request_indx_SIZE 6
+#define SXIFCCG_DEBUG_REG2_req_active_verts_SIZE 7
+#define SXIFCCG_DEBUG_REG2_ALWAYS_ZERO2_SIZE 1
+#define SXIFCCG_DEBUG_REG2_vgt_to_ccgen_state_var_indx_SIZE 1
+#define SXIFCCG_DEBUG_REG2_ALWAYS_ZERO1_SIZE 2
+#define SXIFCCG_DEBUG_REG2_vgt_to_ccgen_active_verts_SIZE 2
+#define SXIFCCG_DEBUG_REG2_ALWAYS_ZERO0_SIZE 4
+#define SXIFCCG_DEBUG_REG2_req_active_verts_loaded_SIZE 1
+#define SXIFCCG_DEBUG_REG2_sx_pending_fifo_empty_SIZE 1
+#define SXIFCCG_DEBUG_REG2_sx_pending_fifo_full_SIZE 1
+#define SXIFCCG_DEBUG_REG2_sx_pending_fifo_contents_SIZE 3
+
+#define SXIFCCG_DEBUG_REG2_sx_sent_SHIFT 0
+#define SXIFCCG_DEBUG_REG2_ALWAYS_ZERO3_SHIFT 1
+#define SXIFCCG_DEBUG_REG2_sx_aux_SHIFT 2
+#define SXIFCCG_DEBUG_REG2_sx_request_indx_SHIFT 3
+#define SXIFCCG_DEBUG_REG2_req_active_verts_SHIFT 9
+#define SXIFCCG_DEBUG_REG2_ALWAYS_ZERO2_SHIFT 16
+#define SXIFCCG_DEBUG_REG2_vgt_to_ccgen_state_var_indx_SHIFT 17
+#define SXIFCCG_DEBUG_REG2_ALWAYS_ZERO1_SHIFT 18
+#define SXIFCCG_DEBUG_REG2_vgt_to_ccgen_active_verts_SHIFT 20
+#define SXIFCCG_DEBUG_REG2_ALWAYS_ZERO0_SHIFT 22
+#define SXIFCCG_DEBUG_REG2_req_active_verts_loaded_SHIFT 26
+#define SXIFCCG_DEBUG_REG2_sx_pending_fifo_empty_SHIFT 27
+#define SXIFCCG_DEBUG_REG2_sx_pending_fifo_full_SHIFT 28
+#define SXIFCCG_DEBUG_REG2_sx_pending_fifo_contents_SHIFT 29
+
+#define SXIFCCG_DEBUG_REG2_sx_sent_MASK 0x00000001
+#define SXIFCCG_DEBUG_REG2_ALWAYS_ZERO3_MASK 0x00000002
+#define SXIFCCG_DEBUG_REG2_sx_aux_MASK 0x00000004
+#define SXIFCCG_DEBUG_REG2_sx_request_indx_MASK 0x000001f8
+#define SXIFCCG_DEBUG_REG2_req_active_verts_MASK 0x0000fe00
+#define SXIFCCG_DEBUG_REG2_ALWAYS_ZERO2_MASK 0x00010000
+#define SXIFCCG_DEBUG_REG2_vgt_to_ccgen_state_var_indx_MASK 0x00020000
+#define SXIFCCG_DEBUG_REG2_ALWAYS_ZERO1_MASK 0x000c0000
+#define SXIFCCG_DEBUG_REG2_vgt_to_ccgen_active_verts_MASK 0x00300000
+#define SXIFCCG_DEBUG_REG2_ALWAYS_ZERO0_MASK 0x03c00000
+#define SXIFCCG_DEBUG_REG2_req_active_verts_loaded_MASK 0x04000000
+#define SXIFCCG_DEBUG_REG2_sx_pending_fifo_empty_MASK 0x08000000
+#define SXIFCCG_DEBUG_REG2_sx_pending_fifo_full_MASK 0x10000000
+#define SXIFCCG_DEBUG_REG2_sx_pending_fifo_contents_MASK 0xe0000000
+
+#define SXIFCCG_DEBUG_REG2_MASK \
+ (SXIFCCG_DEBUG_REG2_sx_sent_MASK | \
+ SXIFCCG_DEBUG_REG2_ALWAYS_ZERO3_MASK | \
+ SXIFCCG_DEBUG_REG2_sx_aux_MASK | \
+ SXIFCCG_DEBUG_REG2_sx_request_indx_MASK | \
+ SXIFCCG_DEBUG_REG2_req_active_verts_MASK | \
+ SXIFCCG_DEBUG_REG2_ALWAYS_ZERO2_MASK | \
+ SXIFCCG_DEBUG_REG2_vgt_to_ccgen_state_var_indx_MASK | \
+ SXIFCCG_DEBUG_REG2_ALWAYS_ZERO1_MASK | \
+ SXIFCCG_DEBUG_REG2_vgt_to_ccgen_active_verts_MASK | \
+ SXIFCCG_DEBUG_REG2_ALWAYS_ZERO0_MASK | \
+ SXIFCCG_DEBUG_REG2_req_active_verts_loaded_MASK | \
+ SXIFCCG_DEBUG_REG2_sx_pending_fifo_empty_MASK | \
+ SXIFCCG_DEBUG_REG2_sx_pending_fifo_full_MASK | \
+ SXIFCCG_DEBUG_REG2_sx_pending_fifo_contents_MASK)
+
+#define SXIFCCG_DEBUG_REG2(sx_sent, always_zero3, sx_aux, sx_request_indx, req_active_verts, always_zero2, vgt_to_ccgen_state_var_indx, always_zero1, vgt_to_ccgen_active_verts, always_zero0, req_active_verts_loaded, sx_pending_fifo_empty, sx_pending_fifo_full, sx_pending_fifo_contents) \
+ ((sx_sent << SXIFCCG_DEBUG_REG2_sx_sent_SHIFT) | \
+ (always_zero3 << SXIFCCG_DEBUG_REG2_ALWAYS_ZERO3_SHIFT) | \
+ (sx_aux << SXIFCCG_DEBUG_REG2_sx_aux_SHIFT) | \
+ (sx_request_indx << SXIFCCG_DEBUG_REG2_sx_request_indx_SHIFT) | \
+ (req_active_verts << SXIFCCG_DEBUG_REG2_req_active_verts_SHIFT) | \
+ (always_zero2 << SXIFCCG_DEBUG_REG2_ALWAYS_ZERO2_SHIFT) | \
+ (vgt_to_ccgen_state_var_indx << SXIFCCG_DEBUG_REG2_vgt_to_ccgen_state_var_indx_SHIFT) | \
+ (always_zero1 << SXIFCCG_DEBUG_REG2_ALWAYS_ZERO1_SHIFT) | \
+ (vgt_to_ccgen_active_verts << SXIFCCG_DEBUG_REG2_vgt_to_ccgen_active_verts_SHIFT) | \
+ (always_zero0 << SXIFCCG_DEBUG_REG2_ALWAYS_ZERO0_SHIFT) | \
+ (req_active_verts_loaded << SXIFCCG_DEBUG_REG2_req_active_verts_loaded_SHIFT) | \
+ (sx_pending_fifo_empty << SXIFCCG_DEBUG_REG2_sx_pending_fifo_empty_SHIFT) | \
+ (sx_pending_fifo_full << SXIFCCG_DEBUG_REG2_sx_pending_fifo_full_SHIFT) | \
+ (sx_pending_fifo_contents << SXIFCCG_DEBUG_REG2_sx_pending_fifo_contents_SHIFT))
+
+#define SXIFCCG_DEBUG_REG2_GET_sx_sent(sxifccg_debug_reg2) \
+ ((sxifccg_debug_reg2 & SXIFCCG_DEBUG_REG2_sx_sent_MASK) >> SXIFCCG_DEBUG_REG2_sx_sent_SHIFT)
+#define SXIFCCG_DEBUG_REG2_GET_ALWAYS_ZERO3(sxifccg_debug_reg2) \
+ ((sxifccg_debug_reg2 & SXIFCCG_DEBUG_REG2_ALWAYS_ZERO3_MASK) >> SXIFCCG_DEBUG_REG2_ALWAYS_ZERO3_SHIFT)
+#define SXIFCCG_DEBUG_REG2_GET_sx_aux(sxifccg_debug_reg2) \
+ ((sxifccg_debug_reg2 & SXIFCCG_DEBUG_REG2_sx_aux_MASK) >> SXIFCCG_DEBUG_REG2_sx_aux_SHIFT)
+#define SXIFCCG_DEBUG_REG2_GET_sx_request_indx(sxifccg_debug_reg2) \
+ ((sxifccg_debug_reg2 & SXIFCCG_DEBUG_REG2_sx_request_indx_MASK) >> SXIFCCG_DEBUG_REG2_sx_request_indx_SHIFT)
+#define SXIFCCG_DEBUG_REG2_GET_req_active_verts(sxifccg_debug_reg2) \
+ ((sxifccg_debug_reg2 & SXIFCCG_DEBUG_REG2_req_active_verts_MASK) >> SXIFCCG_DEBUG_REG2_req_active_verts_SHIFT)
+#define SXIFCCG_DEBUG_REG2_GET_ALWAYS_ZERO2(sxifccg_debug_reg2) \
+ ((sxifccg_debug_reg2 & SXIFCCG_DEBUG_REG2_ALWAYS_ZERO2_MASK) >> SXIFCCG_DEBUG_REG2_ALWAYS_ZERO2_SHIFT)
+#define SXIFCCG_DEBUG_REG2_GET_vgt_to_ccgen_state_var_indx(sxifccg_debug_reg2) \
+ ((sxifccg_debug_reg2 & SXIFCCG_DEBUG_REG2_vgt_to_ccgen_state_var_indx_MASK) >> SXIFCCG_DEBUG_REG2_vgt_to_ccgen_state_var_indx_SHIFT)
+#define SXIFCCG_DEBUG_REG2_GET_ALWAYS_ZERO1(sxifccg_debug_reg2) \
+ ((sxifccg_debug_reg2 & SXIFCCG_DEBUG_REG2_ALWAYS_ZERO1_MASK) >> SXIFCCG_DEBUG_REG2_ALWAYS_ZERO1_SHIFT)
+#define SXIFCCG_DEBUG_REG2_GET_vgt_to_ccgen_active_verts(sxifccg_debug_reg2) \
+ ((sxifccg_debug_reg2 & SXIFCCG_DEBUG_REG2_vgt_to_ccgen_active_verts_MASK) >> SXIFCCG_DEBUG_REG2_vgt_to_ccgen_active_verts_SHIFT)
+#define SXIFCCG_DEBUG_REG2_GET_ALWAYS_ZERO0(sxifccg_debug_reg2) \
+ ((sxifccg_debug_reg2 & SXIFCCG_DEBUG_REG2_ALWAYS_ZERO0_MASK) >> SXIFCCG_DEBUG_REG2_ALWAYS_ZERO0_SHIFT)
+#define SXIFCCG_DEBUG_REG2_GET_req_active_verts_loaded(sxifccg_debug_reg2) \
+ ((sxifccg_debug_reg2 & SXIFCCG_DEBUG_REG2_req_active_verts_loaded_MASK) >> SXIFCCG_DEBUG_REG2_req_active_verts_loaded_SHIFT)
+#define SXIFCCG_DEBUG_REG2_GET_sx_pending_fifo_empty(sxifccg_debug_reg2) \
+ ((sxifccg_debug_reg2 & SXIFCCG_DEBUG_REG2_sx_pending_fifo_empty_MASK) >> SXIFCCG_DEBUG_REG2_sx_pending_fifo_empty_SHIFT)
+#define SXIFCCG_DEBUG_REG2_GET_sx_pending_fifo_full(sxifccg_debug_reg2) \
+ ((sxifccg_debug_reg2 & SXIFCCG_DEBUG_REG2_sx_pending_fifo_full_MASK) >> SXIFCCG_DEBUG_REG2_sx_pending_fifo_full_SHIFT)
+#define SXIFCCG_DEBUG_REG2_GET_sx_pending_fifo_contents(sxifccg_debug_reg2) \
+ ((sxifccg_debug_reg2 & SXIFCCG_DEBUG_REG2_sx_pending_fifo_contents_MASK) >> SXIFCCG_DEBUG_REG2_sx_pending_fifo_contents_SHIFT)
+
+#define SXIFCCG_DEBUG_REG2_SET_sx_sent(sxifccg_debug_reg2_reg, sx_sent) \
+ sxifccg_debug_reg2_reg = (sxifccg_debug_reg2_reg & ~SXIFCCG_DEBUG_REG2_sx_sent_MASK) | (sx_sent << SXIFCCG_DEBUG_REG2_sx_sent_SHIFT)
+#define SXIFCCG_DEBUG_REG2_SET_ALWAYS_ZERO3(sxifccg_debug_reg2_reg, always_zero3) \
+ sxifccg_debug_reg2_reg = (sxifccg_debug_reg2_reg & ~SXIFCCG_DEBUG_REG2_ALWAYS_ZERO3_MASK) | (always_zero3 << SXIFCCG_DEBUG_REG2_ALWAYS_ZERO3_SHIFT)
+#define SXIFCCG_DEBUG_REG2_SET_sx_aux(sxifccg_debug_reg2_reg, sx_aux) \
+ sxifccg_debug_reg2_reg = (sxifccg_debug_reg2_reg & ~SXIFCCG_DEBUG_REG2_sx_aux_MASK) | (sx_aux << SXIFCCG_DEBUG_REG2_sx_aux_SHIFT)
+#define SXIFCCG_DEBUG_REG2_SET_sx_request_indx(sxifccg_debug_reg2_reg, sx_request_indx) \
+ sxifccg_debug_reg2_reg = (sxifccg_debug_reg2_reg & ~SXIFCCG_DEBUG_REG2_sx_request_indx_MASK) | (sx_request_indx << SXIFCCG_DEBUG_REG2_sx_request_indx_SHIFT)
+#define SXIFCCG_DEBUG_REG2_SET_req_active_verts(sxifccg_debug_reg2_reg, req_active_verts) \
+ sxifccg_debug_reg2_reg = (sxifccg_debug_reg2_reg & ~SXIFCCG_DEBUG_REG2_req_active_verts_MASK) | (req_active_verts << SXIFCCG_DEBUG_REG2_req_active_verts_SHIFT)
+#define SXIFCCG_DEBUG_REG2_SET_ALWAYS_ZERO2(sxifccg_debug_reg2_reg, always_zero2) \
+ sxifccg_debug_reg2_reg = (sxifccg_debug_reg2_reg & ~SXIFCCG_DEBUG_REG2_ALWAYS_ZERO2_MASK) | (always_zero2 << SXIFCCG_DEBUG_REG2_ALWAYS_ZERO2_SHIFT)
+#define SXIFCCG_DEBUG_REG2_SET_vgt_to_ccgen_state_var_indx(sxifccg_debug_reg2_reg, vgt_to_ccgen_state_var_indx) \
+ sxifccg_debug_reg2_reg = (sxifccg_debug_reg2_reg & ~SXIFCCG_DEBUG_REG2_vgt_to_ccgen_state_var_indx_MASK) | (vgt_to_ccgen_state_var_indx << SXIFCCG_DEBUG_REG2_vgt_to_ccgen_state_var_indx_SHIFT)
+#define SXIFCCG_DEBUG_REG2_SET_ALWAYS_ZERO1(sxifccg_debug_reg2_reg, always_zero1) \
+ sxifccg_debug_reg2_reg = (sxifccg_debug_reg2_reg & ~SXIFCCG_DEBUG_REG2_ALWAYS_ZERO1_MASK) | (always_zero1 << SXIFCCG_DEBUG_REG2_ALWAYS_ZERO1_SHIFT)
+#define SXIFCCG_DEBUG_REG2_SET_vgt_to_ccgen_active_verts(sxifccg_debug_reg2_reg, vgt_to_ccgen_active_verts) \
+ sxifccg_debug_reg2_reg = (sxifccg_debug_reg2_reg & ~SXIFCCG_DEBUG_REG2_vgt_to_ccgen_active_verts_MASK) | (vgt_to_ccgen_active_verts << SXIFCCG_DEBUG_REG2_vgt_to_ccgen_active_verts_SHIFT)
+#define SXIFCCG_DEBUG_REG2_SET_ALWAYS_ZERO0(sxifccg_debug_reg2_reg, always_zero0) \
+ sxifccg_debug_reg2_reg = (sxifccg_debug_reg2_reg & ~SXIFCCG_DEBUG_REG2_ALWAYS_ZERO0_MASK) | (always_zero0 << SXIFCCG_DEBUG_REG2_ALWAYS_ZERO0_SHIFT)
+#define SXIFCCG_DEBUG_REG2_SET_req_active_verts_loaded(sxifccg_debug_reg2_reg, req_active_verts_loaded) \
+ sxifccg_debug_reg2_reg = (sxifccg_debug_reg2_reg & ~SXIFCCG_DEBUG_REG2_req_active_verts_loaded_MASK) | (req_active_verts_loaded << SXIFCCG_DEBUG_REG2_req_active_verts_loaded_SHIFT)
+#define SXIFCCG_DEBUG_REG2_SET_sx_pending_fifo_empty(sxifccg_debug_reg2_reg, sx_pending_fifo_empty) \
+ sxifccg_debug_reg2_reg = (sxifccg_debug_reg2_reg & ~SXIFCCG_DEBUG_REG2_sx_pending_fifo_empty_MASK) | (sx_pending_fifo_empty << SXIFCCG_DEBUG_REG2_sx_pending_fifo_empty_SHIFT)
+#define SXIFCCG_DEBUG_REG2_SET_sx_pending_fifo_full(sxifccg_debug_reg2_reg, sx_pending_fifo_full) \
+ sxifccg_debug_reg2_reg = (sxifccg_debug_reg2_reg & ~SXIFCCG_DEBUG_REG2_sx_pending_fifo_full_MASK) | (sx_pending_fifo_full << SXIFCCG_DEBUG_REG2_sx_pending_fifo_full_SHIFT)
+#define SXIFCCG_DEBUG_REG2_SET_sx_pending_fifo_contents(sxifccg_debug_reg2_reg, sx_pending_fifo_contents) \
+ sxifccg_debug_reg2_reg = (sxifccg_debug_reg2_reg & ~SXIFCCG_DEBUG_REG2_sx_pending_fifo_contents_MASK) | (sx_pending_fifo_contents << SXIFCCG_DEBUG_REG2_sx_pending_fifo_contents_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sxifccg_debug_reg2_t {
+ unsigned int sx_sent : SXIFCCG_DEBUG_REG2_sx_sent_SIZE;
+ unsigned int always_zero3 : SXIFCCG_DEBUG_REG2_ALWAYS_ZERO3_SIZE;
+ unsigned int sx_aux : SXIFCCG_DEBUG_REG2_sx_aux_SIZE;
+ unsigned int sx_request_indx : SXIFCCG_DEBUG_REG2_sx_request_indx_SIZE;
+ unsigned int req_active_verts : SXIFCCG_DEBUG_REG2_req_active_verts_SIZE;
+ unsigned int always_zero2 : SXIFCCG_DEBUG_REG2_ALWAYS_ZERO2_SIZE;
+ unsigned int vgt_to_ccgen_state_var_indx : SXIFCCG_DEBUG_REG2_vgt_to_ccgen_state_var_indx_SIZE;
+ unsigned int always_zero1 : SXIFCCG_DEBUG_REG2_ALWAYS_ZERO1_SIZE;
+ unsigned int vgt_to_ccgen_active_verts : SXIFCCG_DEBUG_REG2_vgt_to_ccgen_active_verts_SIZE;
+ unsigned int always_zero0 : SXIFCCG_DEBUG_REG2_ALWAYS_ZERO0_SIZE;
+ unsigned int req_active_verts_loaded : SXIFCCG_DEBUG_REG2_req_active_verts_loaded_SIZE;
+ unsigned int sx_pending_fifo_empty : SXIFCCG_DEBUG_REG2_sx_pending_fifo_empty_SIZE;
+ unsigned int sx_pending_fifo_full : SXIFCCG_DEBUG_REG2_sx_pending_fifo_full_SIZE;
+ unsigned int sx_pending_fifo_contents : SXIFCCG_DEBUG_REG2_sx_pending_fifo_contents_SIZE;
+ } sxifccg_debug_reg2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sxifccg_debug_reg2_t {
+ unsigned int sx_pending_fifo_contents : SXIFCCG_DEBUG_REG2_sx_pending_fifo_contents_SIZE;
+ unsigned int sx_pending_fifo_full : SXIFCCG_DEBUG_REG2_sx_pending_fifo_full_SIZE;
+ unsigned int sx_pending_fifo_empty : SXIFCCG_DEBUG_REG2_sx_pending_fifo_empty_SIZE;
+ unsigned int req_active_verts_loaded : SXIFCCG_DEBUG_REG2_req_active_verts_loaded_SIZE;
+ unsigned int always_zero0 : SXIFCCG_DEBUG_REG2_ALWAYS_ZERO0_SIZE;
+ unsigned int vgt_to_ccgen_active_verts : SXIFCCG_DEBUG_REG2_vgt_to_ccgen_active_verts_SIZE;
+ unsigned int always_zero1 : SXIFCCG_DEBUG_REG2_ALWAYS_ZERO1_SIZE;
+ unsigned int vgt_to_ccgen_state_var_indx : SXIFCCG_DEBUG_REG2_vgt_to_ccgen_state_var_indx_SIZE;
+ unsigned int always_zero2 : SXIFCCG_DEBUG_REG2_ALWAYS_ZERO2_SIZE;
+ unsigned int req_active_verts : SXIFCCG_DEBUG_REG2_req_active_verts_SIZE;
+ unsigned int sx_request_indx : SXIFCCG_DEBUG_REG2_sx_request_indx_SIZE;
+ unsigned int sx_aux : SXIFCCG_DEBUG_REG2_sx_aux_SIZE;
+ unsigned int always_zero3 : SXIFCCG_DEBUG_REG2_ALWAYS_ZERO3_SIZE;
+ unsigned int sx_sent : SXIFCCG_DEBUG_REG2_sx_sent_SIZE;
+ } sxifccg_debug_reg2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sxifccg_debug_reg2_t f;
+} sxifccg_debug_reg2_u;
+
+
+/*
+ * SXIFCCG_DEBUG_REG3 struct
+ */
+
+#define SXIFCCG_DEBUG_REG3_vertex_fifo_entriesavailable_SIZE 4
+#define SXIFCCG_DEBUG_REG3_ALWAYS_ZERO3_SIZE 1
+#define SXIFCCG_DEBUG_REG3_available_positions_SIZE 3
+#define SXIFCCG_DEBUG_REG3_ALWAYS_ZERO2_SIZE 4
+#define SXIFCCG_DEBUG_REG3_current_state_SIZE 2
+#define SXIFCCG_DEBUG_REG3_vertex_fifo_empty_SIZE 1
+#define SXIFCCG_DEBUG_REG3_vertex_fifo_full_SIZE 1
+#define SXIFCCG_DEBUG_REG3_ALWAYS_ZERO1_SIZE 2
+#define SXIFCCG_DEBUG_REG3_sx0_receive_fifo_empty_SIZE 1
+#define SXIFCCG_DEBUG_REG3_sx0_receive_fifo_full_SIZE 1
+#define SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_empty_SIZE 1
+#define SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_full_SIZE 1
+#define SXIFCCG_DEBUG_REG3_ALWAYS_ZERO0_SIZE 10
+
+#define SXIFCCG_DEBUG_REG3_vertex_fifo_entriesavailable_SHIFT 0
+#define SXIFCCG_DEBUG_REG3_ALWAYS_ZERO3_SHIFT 4
+#define SXIFCCG_DEBUG_REG3_available_positions_SHIFT 5
+#define SXIFCCG_DEBUG_REG3_ALWAYS_ZERO2_SHIFT 8
+#define SXIFCCG_DEBUG_REG3_current_state_SHIFT 12
+#define SXIFCCG_DEBUG_REG3_vertex_fifo_empty_SHIFT 14
+#define SXIFCCG_DEBUG_REG3_vertex_fifo_full_SHIFT 15
+#define SXIFCCG_DEBUG_REG3_ALWAYS_ZERO1_SHIFT 16
+#define SXIFCCG_DEBUG_REG3_sx0_receive_fifo_empty_SHIFT 18
+#define SXIFCCG_DEBUG_REG3_sx0_receive_fifo_full_SHIFT 19
+#define SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_empty_SHIFT 20
+#define SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_full_SHIFT 21
+#define SXIFCCG_DEBUG_REG3_ALWAYS_ZERO0_SHIFT 22
+
+#define SXIFCCG_DEBUG_REG3_vertex_fifo_entriesavailable_MASK 0x0000000f
+#define SXIFCCG_DEBUG_REG3_ALWAYS_ZERO3_MASK 0x00000010
+#define SXIFCCG_DEBUG_REG3_available_positions_MASK 0x000000e0
+#define SXIFCCG_DEBUG_REG3_ALWAYS_ZERO2_MASK 0x00000f00
+#define SXIFCCG_DEBUG_REG3_current_state_MASK 0x00003000
+#define SXIFCCG_DEBUG_REG3_vertex_fifo_empty_MASK 0x00004000
+#define SXIFCCG_DEBUG_REG3_vertex_fifo_full_MASK 0x00008000
+#define SXIFCCG_DEBUG_REG3_ALWAYS_ZERO1_MASK 0x00030000
+#define SXIFCCG_DEBUG_REG3_sx0_receive_fifo_empty_MASK 0x00040000
+#define SXIFCCG_DEBUG_REG3_sx0_receive_fifo_full_MASK 0x00080000
+#define SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_empty_MASK 0x00100000
+#define SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_full_MASK 0x00200000
+#define SXIFCCG_DEBUG_REG3_ALWAYS_ZERO0_MASK 0xffc00000
+
+#define SXIFCCG_DEBUG_REG3_MASK \
+ (SXIFCCG_DEBUG_REG3_vertex_fifo_entriesavailable_MASK | \
+ SXIFCCG_DEBUG_REG3_ALWAYS_ZERO3_MASK | \
+ SXIFCCG_DEBUG_REG3_available_positions_MASK | \
+ SXIFCCG_DEBUG_REG3_ALWAYS_ZERO2_MASK | \
+ SXIFCCG_DEBUG_REG3_current_state_MASK | \
+ SXIFCCG_DEBUG_REG3_vertex_fifo_empty_MASK | \
+ SXIFCCG_DEBUG_REG3_vertex_fifo_full_MASK | \
+ SXIFCCG_DEBUG_REG3_ALWAYS_ZERO1_MASK | \
+ SXIFCCG_DEBUG_REG3_sx0_receive_fifo_empty_MASK | \
+ SXIFCCG_DEBUG_REG3_sx0_receive_fifo_full_MASK | \
+ SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_empty_MASK | \
+ SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_full_MASK | \
+ SXIFCCG_DEBUG_REG3_ALWAYS_ZERO0_MASK)
+
+#define SXIFCCG_DEBUG_REG3(vertex_fifo_entriesavailable, always_zero3, available_positions, always_zero2, current_state, vertex_fifo_empty, vertex_fifo_full, always_zero1, sx0_receive_fifo_empty, sx0_receive_fifo_full, vgt_to_ccgen_fifo_empty, vgt_to_ccgen_fifo_full, always_zero0) \
+ ((vertex_fifo_entriesavailable << SXIFCCG_DEBUG_REG3_vertex_fifo_entriesavailable_SHIFT) | \
+ (always_zero3 << SXIFCCG_DEBUG_REG3_ALWAYS_ZERO3_SHIFT) | \
+ (available_positions << SXIFCCG_DEBUG_REG3_available_positions_SHIFT) | \
+ (always_zero2 << SXIFCCG_DEBUG_REG3_ALWAYS_ZERO2_SHIFT) | \
+ (current_state << SXIFCCG_DEBUG_REG3_current_state_SHIFT) | \
+ (vertex_fifo_empty << SXIFCCG_DEBUG_REG3_vertex_fifo_empty_SHIFT) | \
+ (vertex_fifo_full << SXIFCCG_DEBUG_REG3_vertex_fifo_full_SHIFT) | \
+ (always_zero1 << SXIFCCG_DEBUG_REG3_ALWAYS_ZERO1_SHIFT) | \
+ (sx0_receive_fifo_empty << SXIFCCG_DEBUG_REG3_sx0_receive_fifo_empty_SHIFT) | \
+ (sx0_receive_fifo_full << SXIFCCG_DEBUG_REG3_sx0_receive_fifo_full_SHIFT) | \
+ (vgt_to_ccgen_fifo_empty << SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_empty_SHIFT) | \
+ (vgt_to_ccgen_fifo_full << SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_full_SHIFT) | \
+ (always_zero0 << SXIFCCG_DEBUG_REG3_ALWAYS_ZERO0_SHIFT))
+
+#define SXIFCCG_DEBUG_REG3_GET_vertex_fifo_entriesavailable(sxifccg_debug_reg3) \
+ ((sxifccg_debug_reg3 & SXIFCCG_DEBUG_REG3_vertex_fifo_entriesavailable_MASK) >> SXIFCCG_DEBUG_REG3_vertex_fifo_entriesavailable_SHIFT)
+#define SXIFCCG_DEBUG_REG3_GET_ALWAYS_ZERO3(sxifccg_debug_reg3) \
+ ((sxifccg_debug_reg3 & SXIFCCG_DEBUG_REG3_ALWAYS_ZERO3_MASK) >> SXIFCCG_DEBUG_REG3_ALWAYS_ZERO3_SHIFT)
+#define SXIFCCG_DEBUG_REG3_GET_available_positions(sxifccg_debug_reg3) \
+ ((sxifccg_debug_reg3 & SXIFCCG_DEBUG_REG3_available_positions_MASK) >> SXIFCCG_DEBUG_REG3_available_positions_SHIFT)
+#define SXIFCCG_DEBUG_REG3_GET_ALWAYS_ZERO2(sxifccg_debug_reg3) \
+ ((sxifccg_debug_reg3 & SXIFCCG_DEBUG_REG3_ALWAYS_ZERO2_MASK) >> SXIFCCG_DEBUG_REG3_ALWAYS_ZERO2_SHIFT)
+#define SXIFCCG_DEBUG_REG3_GET_current_state(sxifccg_debug_reg3) \
+ ((sxifccg_debug_reg3 & SXIFCCG_DEBUG_REG3_current_state_MASK) >> SXIFCCG_DEBUG_REG3_current_state_SHIFT)
+#define SXIFCCG_DEBUG_REG3_GET_vertex_fifo_empty(sxifccg_debug_reg3) \
+ ((sxifccg_debug_reg3 & SXIFCCG_DEBUG_REG3_vertex_fifo_empty_MASK) >> SXIFCCG_DEBUG_REG3_vertex_fifo_empty_SHIFT)
+#define SXIFCCG_DEBUG_REG3_GET_vertex_fifo_full(sxifccg_debug_reg3) \
+ ((sxifccg_debug_reg3 & SXIFCCG_DEBUG_REG3_vertex_fifo_full_MASK) >> SXIFCCG_DEBUG_REG3_vertex_fifo_full_SHIFT)
+#define SXIFCCG_DEBUG_REG3_GET_ALWAYS_ZERO1(sxifccg_debug_reg3) \
+ ((sxifccg_debug_reg3 & SXIFCCG_DEBUG_REG3_ALWAYS_ZERO1_MASK) >> SXIFCCG_DEBUG_REG3_ALWAYS_ZERO1_SHIFT)
+#define SXIFCCG_DEBUG_REG3_GET_sx0_receive_fifo_empty(sxifccg_debug_reg3) \
+ ((sxifccg_debug_reg3 & SXIFCCG_DEBUG_REG3_sx0_receive_fifo_empty_MASK) >> SXIFCCG_DEBUG_REG3_sx0_receive_fifo_empty_SHIFT)
+#define SXIFCCG_DEBUG_REG3_GET_sx0_receive_fifo_full(sxifccg_debug_reg3) \
+ ((sxifccg_debug_reg3 & SXIFCCG_DEBUG_REG3_sx0_receive_fifo_full_MASK) >> SXIFCCG_DEBUG_REG3_sx0_receive_fifo_full_SHIFT)
+#define SXIFCCG_DEBUG_REG3_GET_vgt_to_ccgen_fifo_empty(sxifccg_debug_reg3) \
+ ((sxifccg_debug_reg3 & SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_empty_MASK) >> SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_empty_SHIFT)
+#define SXIFCCG_DEBUG_REG3_GET_vgt_to_ccgen_fifo_full(sxifccg_debug_reg3) \
+ ((sxifccg_debug_reg3 & SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_full_MASK) >> SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_full_SHIFT)
+#define SXIFCCG_DEBUG_REG3_GET_ALWAYS_ZERO0(sxifccg_debug_reg3) \
+ ((sxifccg_debug_reg3 & SXIFCCG_DEBUG_REG3_ALWAYS_ZERO0_MASK) >> SXIFCCG_DEBUG_REG3_ALWAYS_ZERO0_SHIFT)
+
+#define SXIFCCG_DEBUG_REG3_SET_vertex_fifo_entriesavailable(sxifccg_debug_reg3_reg, vertex_fifo_entriesavailable) \
+ sxifccg_debug_reg3_reg = (sxifccg_debug_reg3_reg & ~SXIFCCG_DEBUG_REG3_vertex_fifo_entriesavailable_MASK) | (vertex_fifo_entriesavailable << SXIFCCG_DEBUG_REG3_vertex_fifo_entriesavailable_SHIFT)
+#define SXIFCCG_DEBUG_REG3_SET_ALWAYS_ZERO3(sxifccg_debug_reg3_reg, always_zero3) \
+ sxifccg_debug_reg3_reg = (sxifccg_debug_reg3_reg & ~SXIFCCG_DEBUG_REG3_ALWAYS_ZERO3_MASK) | (always_zero3 << SXIFCCG_DEBUG_REG3_ALWAYS_ZERO3_SHIFT)
+#define SXIFCCG_DEBUG_REG3_SET_available_positions(sxifccg_debug_reg3_reg, available_positions) \
+ sxifccg_debug_reg3_reg = (sxifccg_debug_reg3_reg & ~SXIFCCG_DEBUG_REG3_available_positions_MASK) | (available_positions << SXIFCCG_DEBUG_REG3_available_positions_SHIFT)
+#define SXIFCCG_DEBUG_REG3_SET_ALWAYS_ZERO2(sxifccg_debug_reg3_reg, always_zero2) \
+ sxifccg_debug_reg3_reg = (sxifccg_debug_reg3_reg & ~SXIFCCG_DEBUG_REG3_ALWAYS_ZERO2_MASK) | (always_zero2 << SXIFCCG_DEBUG_REG3_ALWAYS_ZERO2_SHIFT)
+#define SXIFCCG_DEBUG_REG3_SET_current_state(sxifccg_debug_reg3_reg, current_state) \
+ sxifccg_debug_reg3_reg = (sxifccg_debug_reg3_reg & ~SXIFCCG_DEBUG_REG3_current_state_MASK) | (current_state << SXIFCCG_DEBUG_REG3_current_state_SHIFT)
+#define SXIFCCG_DEBUG_REG3_SET_vertex_fifo_empty(sxifccg_debug_reg3_reg, vertex_fifo_empty) \
+ sxifccg_debug_reg3_reg = (sxifccg_debug_reg3_reg & ~SXIFCCG_DEBUG_REG3_vertex_fifo_empty_MASK) | (vertex_fifo_empty << SXIFCCG_DEBUG_REG3_vertex_fifo_empty_SHIFT)
+#define SXIFCCG_DEBUG_REG3_SET_vertex_fifo_full(sxifccg_debug_reg3_reg, vertex_fifo_full) \
+ sxifccg_debug_reg3_reg = (sxifccg_debug_reg3_reg & ~SXIFCCG_DEBUG_REG3_vertex_fifo_full_MASK) | (vertex_fifo_full << SXIFCCG_DEBUG_REG3_vertex_fifo_full_SHIFT)
+#define SXIFCCG_DEBUG_REG3_SET_ALWAYS_ZERO1(sxifccg_debug_reg3_reg, always_zero1) \
+ sxifccg_debug_reg3_reg = (sxifccg_debug_reg3_reg & ~SXIFCCG_DEBUG_REG3_ALWAYS_ZERO1_MASK) | (always_zero1 << SXIFCCG_DEBUG_REG3_ALWAYS_ZERO1_SHIFT)
+#define SXIFCCG_DEBUG_REG3_SET_sx0_receive_fifo_empty(sxifccg_debug_reg3_reg, sx0_receive_fifo_empty) \
+ sxifccg_debug_reg3_reg = (sxifccg_debug_reg3_reg & ~SXIFCCG_DEBUG_REG3_sx0_receive_fifo_empty_MASK) | (sx0_receive_fifo_empty << SXIFCCG_DEBUG_REG3_sx0_receive_fifo_empty_SHIFT)
+#define SXIFCCG_DEBUG_REG3_SET_sx0_receive_fifo_full(sxifccg_debug_reg3_reg, sx0_receive_fifo_full) \
+ sxifccg_debug_reg3_reg = (sxifccg_debug_reg3_reg & ~SXIFCCG_DEBUG_REG3_sx0_receive_fifo_full_MASK) | (sx0_receive_fifo_full << SXIFCCG_DEBUG_REG3_sx0_receive_fifo_full_SHIFT)
+#define SXIFCCG_DEBUG_REG3_SET_vgt_to_ccgen_fifo_empty(sxifccg_debug_reg3_reg, vgt_to_ccgen_fifo_empty) \
+ sxifccg_debug_reg3_reg = (sxifccg_debug_reg3_reg & ~SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_empty_MASK) | (vgt_to_ccgen_fifo_empty << SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_empty_SHIFT)
+#define SXIFCCG_DEBUG_REG3_SET_vgt_to_ccgen_fifo_full(sxifccg_debug_reg3_reg, vgt_to_ccgen_fifo_full) \
+ sxifccg_debug_reg3_reg = (sxifccg_debug_reg3_reg & ~SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_full_MASK) | (vgt_to_ccgen_fifo_full << SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_full_SHIFT)
+#define SXIFCCG_DEBUG_REG3_SET_ALWAYS_ZERO0(sxifccg_debug_reg3_reg, always_zero0) \
+ sxifccg_debug_reg3_reg = (sxifccg_debug_reg3_reg & ~SXIFCCG_DEBUG_REG3_ALWAYS_ZERO0_MASK) | (always_zero0 << SXIFCCG_DEBUG_REG3_ALWAYS_ZERO0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sxifccg_debug_reg3_t {
+ unsigned int vertex_fifo_entriesavailable : SXIFCCG_DEBUG_REG3_vertex_fifo_entriesavailable_SIZE;
+ unsigned int always_zero3 : SXIFCCG_DEBUG_REG3_ALWAYS_ZERO3_SIZE;
+ unsigned int available_positions : SXIFCCG_DEBUG_REG3_available_positions_SIZE;
+ unsigned int always_zero2 : SXIFCCG_DEBUG_REG3_ALWAYS_ZERO2_SIZE;
+ unsigned int current_state : SXIFCCG_DEBUG_REG3_current_state_SIZE;
+ unsigned int vertex_fifo_empty : SXIFCCG_DEBUG_REG3_vertex_fifo_empty_SIZE;
+ unsigned int vertex_fifo_full : SXIFCCG_DEBUG_REG3_vertex_fifo_full_SIZE;
+ unsigned int always_zero1 : SXIFCCG_DEBUG_REG3_ALWAYS_ZERO1_SIZE;
+ unsigned int sx0_receive_fifo_empty : SXIFCCG_DEBUG_REG3_sx0_receive_fifo_empty_SIZE;
+ unsigned int sx0_receive_fifo_full : SXIFCCG_DEBUG_REG3_sx0_receive_fifo_full_SIZE;
+ unsigned int vgt_to_ccgen_fifo_empty : SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_empty_SIZE;
+ unsigned int vgt_to_ccgen_fifo_full : SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_full_SIZE;
+ unsigned int always_zero0 : SXIFCCG_DEBUG_REG3_ALWAYS_ZERO0_SIZE;
+ } sxifccg_debug_reg3_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sxifccg_debug_reg3_t {
+ unsigned int always_zero0 : SXIFCCG_DEBUG_REG3_ALWAYS_ZERO0_SIZE;
+ unsigned int vgt_to_ccgen_fifo_full : SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_full_SIZE;
+ unsigned int vgt_to_ccgen_fifo_empty : SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_empty_SIZE;
+ unsigned int sx0_receive_fifo_full : SXIFCCG_DEBUG_REG3_sx0_receive_fifo_full_SIZE;
+ unsigned int sx0_receive_fifo_empty : SXIFCCG_DEBUG_REG3_sx0_receive_fifo_empty_SIZE;
+ unsigned int always_zero1 : SXIFCCG_DEBUG_REG3_ALWAYS_ZERO1_SIZE;
+ unsigned int vertex_fifo_full : SXIFCCG_DEBUG_REG3_vertex_fifo_full_SIZE;
+ unsigned int vertex_fifo_empty : SXIFCCG_DEBUG_REG3_vertex_fifo_empty_SIZE;
+ unsigned int current_state : SXIFCCG_DEBUG_REG3_current_state_SIZE;
+ unsigned int always_zero2 : SXIFCCG_DEBUG_REG3_ALWAYS_ZERO2_SIZE;
+ unsigned int available_positions : SXIFCCG_DEBUG_REG3_available_positions_SIZE;
+ unsigned int always_zero3 : SXIFCCG_DEBUG_REG3_ALWAYS_ZERO3_SIZE;
+ unsigned int vertex_fifo_entriesavailable : SXIFCCG_DEBUG_REG3_vertex_fifo_entriesavailable_SIZE;
+ } sxifccg_debug_reg3_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sxifccg_debug_reg3_t f;
+} sxifccg_debug_reg3_u;
+
+
+/*
+ * SETUP_DEBUG_REG0 struct
+ */
+
+#define SETUP_DEBUG_REG0_su_cntl_state_SIZE 5
+#define SETUP_DEBUG_REG0_pmode_state_SIZE 6
+#define SETUP_DEBUG_REG0_ge_stallb_SIZE 1
+#define SETUP_DEBUG_REG0_geom_enable_SIZE 1
+#define SETUP_DEBUG_REG0_su_clip_baryc_rtr_SIZE 1
+#define SETUP_DEBUG_REG0_su_clip_rtr_SIZE 1
+#define SETUP_DEBUG_REG0_pfifo_busy_SIZE 1
+#define SETUP_DEBUG_REG0_su_cntl_busy_SIZE 1
+#define SETUP_DEBUG_REG0_geom_busy_SIZE 1
+
+#define SETUP_DEBUG_REG0_su_cntl_state_SHIFT 0
+#define SETUP_DEBUG_REG0_pmode_state_SHIFT 5
+#define SETUP_DEBUG_REG0_ge_stallb_SHIFT 11
+#define SETUP_DEBUG_REG0_geom_enable_SHIFT 12
+#define SETUP_DEBUG_REG0_su_clip_baryc_rtr_SHIFT 13
+#define SETUP_DEBUG_REG0_su_clip_rtr_SHIFT 14
+#define SETUP_DEBUG_REG0_pfifo_busy_SHIFT 15
+#define SETUP_DEBUG_REG0_su_cntl_busy_SHIFT 16
+#define SETUP_DEBUG_REG0_geom_busy_SHIFT 17
+
+#define SETUP_DEBUG_REG0_su_cntl_state_MASK 0x0000001f
+#define SETUP_DEBUG_REG0_pmode_state_MASK 0x000007e0
+#define SETUP_DEBUG_REG0_ge_stallb_MASK 0x00000800
+#define SETUP_DEBUG_REG0_geom_enable_MASK 0x00001000
+#define SETUP_DEBUG_REG0_su_clip_baryc_rtr_MASK 0x00002000
+#define SETUP_DEBUG_REG0_su_clip_rtr_MASK 0x00004000
+#define SETUP_DEBUG_REG0_pfifo_busy_MASK 0x00008000
+#define SETUP_DEBUG_REG0_su_cntl_busy_MASK 0x00010000
+#define SETUP_DEBUG_REG0_geom_busy_MASK 0x00020000
+
+#define SETUP_DEBUG_REG0_MASK \
+ (SETUP_DEBUG_REG0_su_cntl_state_MASK | \
+ SETUP_DEBUG_REG0_pmode_state_MASK | \
+ SETUP_DEBUG_REG0_ge_stallb_MASK | \
+ SETUP_DEBUG_REG0_geom_enable_MASK | \
+ SETUP_DEBUG_REG0_su_clip_baryc_rtr_MASK | \
+ SETUP_DEBUG_REG0_su_clip_rtr_MASK | \
+ SETUP_DEBUG_REG0_pfifo_busy_MASK | \
+ SETUP_DEBUG_REG0_su_cntl_busy_MASK | \
+ SETUP_DEBUG_REG0_geom_busy_MASK)
+
+#define SETUP_DEBUG_REG0(su_cntl_state, pmode_state, ge_stallb, geom_enable, su_clip_baryc_rtr, su_clip_rtr, pfifo_busy, su_cntl_busy, geom_busy) \
+ ((su_cntl_state << SETUP_DEBUG_REG0_su_cntl_state_SHIFT) | \
+ (pmode_state << SETUP_DEBUG_REG0_pmode_state_SHIFT) | \
+ (ge_stallb << SETUP_DEBUG_REG0_ge_stallb_SHIFT) | \
+ (geom_enable << SETUP_DEBUG_REG0_geom_enable_SHIFT) | \
+ (su_clip_baryc_rtr << SETUP_DEBUG_REG0_su_clip_baryc_rtr_SHIFT) | \
+ (su_clip_rtr << SETUP_DEBUG_REG0_su_clip_rtr_SHIFT) | \
+ (pfifo_busy << SETUP_DEBUG_REG0_pfifo_busy_SHIFT) | \
+ (su_cntl_busy << SETUP_DEBUG_REG0_su_cntl_busy_SHIFT) | \
+ (geom_busy << SETUP_DEBUG_REG0_geom_busy_SHIFT))
+
+#define SETUP_DEBUG_REG0_GET_su_cntl_state(setup_debug_reg0) \
+ ((setup_debug_reg0 & SETUP_DEBUG_REG0_su_cntl_state_MASK) >> SETUP_DEBUG_REG0_su_cntl_state_SHIFT)
+#define SETUP_DEBUG_REG0_GET_pmode_state(setup_debug_reg0) \
+ ((setup_debug_reg0 & SETUP_DEBUG_REG0_pmode_state_MASK) >> SETUP_DEBUG_REG0_pmode_state_SHIFT)
+#define SETUP_DEBUG_REG0_GET_ge_stallb(setup_debug_reg0) \
+ ((setup_debug_reg0 & SETUP_DEBUG_REG0_ge_stallb_MASK) >> SETUP_DEBUG_REG0_ge_stallb_SHIFT)
+#define SETUP_DEBUG_REG0_GET_geom_enable(setup_debug_reg0) \
+ ((setup_debug_reg0 & SETUP_DEBUG_REG0_geom_enable_MASK) >> SETUP_DEBUG_REG0_geom_enable_SHIFT)
+#define SETUP_DEBUG_REG0_GET_su_clip_baryc_rtr(setup_debug_reg0) \
+ ((setup_debug_reg0 & SETUP_DEBUG_REG0_su_clip_baryc_rtr_MASK) >> SETUP_DEBUG_REG0_su_clip_baryc_rtr_SHIFT)
+#define SETUP_DEBUG_REG0_GET_su_clip_rtr(setup_debug_reg0) \
+ ((setup_debug_reg0 & SETUP_DEBUG_REG0_su_clip_rtr_MASK) >> SETUP_DEBUG_REG0_su_clip_rtr_SHIFT)
+#define SETUP_DEBUG_REG0_GET_pfifo_busy(setup_debug_reg0) \
+ ((setup_debug_reg0 & SETUP_DEBUG_REG0_pfifo_busy_MASK) >> SETUP_DEBUG_REG0_pfifo_busy_SHIFT)
+#define SETUP_DEBUG_REG0_GET_su_cntl_busy(setup_debug_reg0) \
+ ((setup_debug_reg0 & SETUP_DEBUG_REG0_su_cntl_busy_MASK) >> SETUP_DEBUG_REG0_su_cntl_busy_SHIFT)
+#define SETUP_DEBUG_REG0_GET_geom_busy(setup_debug_reg0) \
+ ((setup_debug_reg0 & SETUP_DEBUG_REG0_geom_busy_MASK) >> SETUP_DEBUG_REG0_geom_busy_SHIFT)
+
+#define SETUP_DEBUG_REG0_SET_su_cntl_state(setup_debug_reg0_reg, su_cntl_state) \
+ setup_debug_reg0_reg = (setup_debug_reg0_reg & ~SETUP_DEBUG_REG0_su_cntl_state_MASK) | (su_cntl_state << SETUP_DEBUG_REG0_su_cntl_state_SHIFT)
+#define SETUP_DEBUG_REG0_SET_pmode_state(setup_debug_reg0_reg, pmode_state) \
+ setup_debug_reg0_reg = (setup_debug_reg0_reg & ~SETUP_DEBUG_REG0_pmode_state_MASK) | (pmode_state << SETUP_DEBUG_REG0_pmode_state_SHIFT)
+#define SETUP_DEBUG_REG0_SET_ge_stallb(setup_debug_reg0_reg, ge_stallb) \
+ setup_debug_reg0_reg = (setup_debug_reg0_reg & ~SETUP_DEBUG_REG0_ge_stallb_MASK) | (ge_stallb << SETUP_DEBUG_REG0_ge_stallb_SHIFT)
+#define SETUP_DEBUG_REG0_SET_geom_enable(setup_debug_reg0_reg, geom_enable) \
+ setup_debug_reg0_reg = (setup_debug_reg0_reg & ~SETUP_DEBUG_REG0_geom_enable_MASK) | (geom_enable << SETUP_DEBUG_REG0_geom_enable_SHIFT)
+#define SETUP_DEBUG_REG0_SET_su_clip_baryc_rtr(setup_debug_reg0_reg, su_clip_baryc_rtr) \
+ setup_debug_reg0_reg = (setup_debug_reg0_reg & ~SETUP_DEBUG_REG0_su_clip_baryc_rtr_MASK) | (su_clip_baryc_rtr << SETUP_DEBUG_REG0_su_clip_baryc_rtr_SHIFT)
+#define SETUP_DEBUG_REG0_SET_su_clip_rtr(setup_debug_reg0_reg, su_clip_rtr) \
+ setup_debug_reg0_reg = (setup_debug_reg0_reg & ~SETUP_DEBUG_REG0_su_clip_rtr_MASK) | (su_clip_rtr << SETUP_DEBUG_REG0_su_clip_rtr_SHIFT)
+#define SETUP_DEBUG_REG0_SET_pfifo_busy(setup_debug_reg0_reg, pfifo_busy) \
+ setup_debug_reg0_reg = (setup_debug_reg0_reg & ~SETUP_DEBUG_REG0_pfifo_busy_MASK) | (pfifo_busy << SETUP_DEBUG_REG0_pfifo_busy_SHIFT)
+#define SETUP_DEBUG_REG0_SET_su_cntl_busy(setup_debug_reg0_reg, su_cntl_busy) \
+ setup_debug_reg0_reg = (setup_debug_reg0_reg & ~SETUP_DEBUG_REG0_su_cntl_busy_MASK) | (su_cntl_busy << SETUP_DEBUG_REG0_su_cntl_busy_SHIFT)
+#define SETUP_DEBUG_REG0_SET_geom_busy(setup_debug_reg0_reg, geom_busy) \
+ setup_debug_reg0_reg = (setup_debug_reg0_reg & ~SETUP_DEBUG_REG0_geom_busy_MASK) | (geom_busy << SETUP_DEBUG_REG0_geom_busy_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _setup_debug_reg0_t {
+ unsigned int su_cntl_state : SETUP_DEBUG_REG0_su_cntl_state_SIZE;
+ unsigned int pmode_state : SETUP_DEBUG_REG0_pmode_state_SIZE;
+ unsigned int ge_stallb : SETUP_DEBUG_REG0_ge_stallb_SIZE;
+ unsigned int geom_enable : SETUP_DEBUG_REG0_geom_enable_SIZE;
+ unsigned int su_clip_baryc_rtr : SETUP_DEBUG_REG0_su_clip_baryc_rtr_SIZE;
+ unsigned int su_clip_rtr : SETUP_DEBUG_REG0_su_clip_rtr_SIZE;
+ unsigned int pfifo_busy : SETUP_DEBUG_REG0_pfifo_busy_SIZE;
+ unsigned int su_cntl_busy : SETUP_DEBUG_REG0_su_cntl_busy_SIZE;
+ unsigned int geom_busy : SETUP_DEBUG_REG0_geom_busy_SIZE;
+ unsigned int : 14;
+ } setup_debug_reg0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _setup_debug_reg0_t {
+ unsigned int : 14;
+ unsigned int geom_busy : SETUP_DEBUG_REG0_geom_busy_SIZE;
+ unsigned int su_cntl_busy : SETUP_DEBUG_REG0_su_cntl_busy_SIZE;
+ unsigned int pfifo_busy : SETUP_DEBUG_REG0_pfifo_busy_SIZE;
+ unsigned int su_clip_rtr : SETUP_DEBUG_REG0_su_clip_rtr_SIZE;
+ unsigned int su_clip_baryc_rtr : SETUP_DEBUG_REG0_su_clip_baryc_rtr_SIZE;
+ unsigned int geom_enable : SETUP_DEBUG_REG0_geom_enable_SIZE;
+ unsigned int ge_stallb : SETUP_DEBUG_REG0_ge_stallb_SIZE;
+ unsigned int pmode_state : SETUP_DEBUG_REG0_pmode_state_SIZE;
+ unsigned int su_cntl_state : SETUP_DEBUG_REG0_su_cntl_state_SIZE;
+ } setup_debug_reg0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ setup_debug_reg0_t f;
+} setup_debug_reg0_u;
+
+
+/*
+ * SETUP_DEBUG_REG1 struct
+ */
+
+#define SETUP_DEBUG_REG1_y_sort0_gated_17_4_SIZE 14
+#define SETUP_DEBUG_REG1_x_sort0_gated_17_4_SIZE 14
+
+#define SETUP_DEBUG_REG1_y_sort0_gated_17_4_SHIFT 0
+#define SETUP_DEBUG_REG1_x_sort0_gated_17_4_SHIFT 14
+
+#define SETUP_DEBUG_REG1_y_sort0_gated_17_4_MASK 0x00003fff
+#define SETUP_DEBUG_REG1_x_sort0_gated_17_4_MASK 0x0fffc000
+
+#define SETUP_DEBUG_REG1_MASK \
+ (SETUP_DEBUG_REG1_y_sort0_gated_17_4_MASK | \
+ SETUP_DEBUG_REG1_x_sort0_gated_17_4_MASK)
+
+#define SETUP_DEBUG_REG1(y_sort0_gated_17_4, x_sort0_gated_17_4) \
+ ((y_sort0_gated_17_4 << SETUP_DEBUG_REG1_y_sort0_gated_17_4_SHIFT) | \
+ (x_sort0_gated_17_4 << SETUP_DEBUG_REG1_x_sort0_gated_17_4_SHIFT))
+
+#define SETUP_DEBUG_REG1_GET_y_sort0_gated_17_4(setup_debug_reg1) \
+ ((setup_debug_reg1 & SETUP_DEBUG_REG1_y_sort0_gated_17_4_MASK) >> SETUP_DEBUG_REG1_y_sort0_gated_17_4_SHIFT)
+#define SETUP_DEBUG_REG1_GET_x_sort0_gated_17_4(setup_debug_reg1) \
+ ((setup_debug_reg1 & SETUP_DEBUG_REG1_x_sort0_gated_17_4_MASK) >> SETUP_DEBUG_REG1_x_sort0_gated_17_4_SHIFT)
+
+#define SETUP_DEBUG_REG1_SET_y_sort0_gated_17_4(setup_debug_reg1_reg, y_sort0_gated_17_4) \
+ setup_debug_reg1_reg = (setup_debug_reg1_reg & ~SETUP_DEBUG_REG1_y_sort0_gated_17_4_MASK) | (y_sort0_gated_17_4 << SETUP_DEBUG_REG1_y_sort0_gated_17_4_SHIFT)
+#define SETUP_DEBUG_REG1_SET_x_sort0_gated_17_4(setup_debug_reg1_reg, x_sort0_gated_17_4) \
+ setup_debug_reg1_reg = (setup_debug_reg1_reg & ~SETUP_DEBUG_REG1_x_sort0_gated_17_4_MASK) | (x_sort0_gated_17_4 << SETUP_DEBUG_REG1_x_sort0_gated_17_4_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _setup_debug_reg1_t {
+ unsigned int y_sort0_gated_17_4 : SETUP_DEBUG_REG1_y_sort0_gated_17_4_SIZE;
+ unsigned int x_sort0_gated_17_4 : SETUP_DEBUG_REG1_x_sort0_gated_17_4_SIZE;
+ unsigned int : 4;
+ } setup_debug_reg1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _setup_debug_reg1_t {
+ unsigned int : 4;
+ unsigned int x_sort0_gated_17_4 : SETUP_DEBUG_REG1_x_sort0_gated_17_4_SIZE;
+ unsigned int y_sort0_gated_17_4 : SETUP_DEBUG_REG1_y_sort0_gated_17_4_SIZE;
+ } setup_debug_reg1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ setup_debug_reg1_t f;
+} setup_debug_reg1_u;
+
+
+/*
+ * SETUP_DEBUG_REG2 struct
+ */
+
+#define SETUP_DEBUG_REG2_y_sort1_gated_17_4_SIZE 14
+#define SETUP_DEBUG_REG2_x_sort1_gated_17_4_SIZE 14
+
+#define SETUP_DEBUG_REG2_y_sort1_gated_17_4_SHIFT 0
+#define SETUP_DEBUG_REG2_x_sort1_gated_17_4_SHIFT 14
+
+#define SETUP_DEBUG_REG2_y_sort1_gated_17_4_MASK 0x00003fff
+#define SETUP_DEBUG_REG2_x_sort1_gated_17_4_MASK 0x0fffc000
+
+#define SETUP_DEBUG_REG2_MASK \
+ (SETUP_DEBUG_REG2_y_sort1_gated_17_4_MASK | \
+ SETUP_DEBUG_REG2_x_sort1_gated_17_4_MASK)
+
+#define SETUP_DEBUG_REG2(y_sort1_gated_17_4, x_sort1_gated_17_4) \
+ ((y_sort1_gated_17_4 << SETUP_DEBUG_REG2_y_sort1_gated_17_4_SHIFT) | \
+ (x_sort1_gated_17_4 << SETUP_DEBUG_REG2_x_sort1_gated_17_4_SHIFT))
+
+#define SETUP_DEBUG_REG2_GET_y_sort1_gated_17_4(setup_debug_reg2) \
+ ((setup_debug_reg2 & SETUP_DEBUG_REG2_y_sort1_gated_17_4_MASK) >> SETUP_DEBUG_REG2_y_sort1_gated_17_4_SHIFT)
+#define SETUP_DEBUG_REG2_GET_x_sort1_gated_17_4(setup_debug_reg2) \
+ ((setup_debug_reg2 & SETUP_DEBUG_REG2_x_sort1_gated_17_4_MASK) >> SETUP_DEBUG_REG2_x_sort1_gated_17_4_SHIFT)
+
+#define SETUP_DEBUG_REG2_SET_y_sort1_gated_17_4(setup_debug_reg2_reg, y_sort1_gated_17_4) \
+ setup_debug_reg2_reg = (setup_debug_reg2_reg & ~SETUP_DEBUG_REG2_y_sort1_gated_17_4_MASK) | (y_sort1_gated_17_4 << SETUP_DEBUG_REG2_y_sort1_gated_17_4_SHIFT)
+#define SETUP_DEBUG_REG2_SET_x_sort1_gated_17_4(setup_debug_reg2_reg, x_sort1_gated_17_4) \
+ setup_debug_reg2_reg = (setup_debug_reg2_reg & ~SETUP_DEBUG_REG2_x_sort1_gated_17_4_MASK) | (x_sort1_gated_17_4 << SETUP_DEBUG_REG2_x_sort1_gated_17_4_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _setup_debug_reg2_t {
+ unsigned int y_sort1_gated_17_4 : SETUP_DEBUG_REG2_y_sort1_gated_17_4_SIZE;
+ unsigned int x_sort1_gated_17_4 : SETUP_DEBUG_REG2_x_sort1_gated_17_4_SIZE;
+ unsigned int : 4;
+ } setup_debug_reg2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _setup_debug_reg2_t {
+ unsigned int : 4;
+ unsigned int x_sort1_gated_17_4 : SETUP_DEBUG_REG2_x_sort1_gated_17_4_SIZE;
+ unsigned int y_sort1_gated_17_4 : SETUP_DEBUG_REG2_y_sort1_gated_17_4_SIZE;
+ } setup_debug_reg2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ setup_debug_reg2_t f;
+} setup_debug_reg2_u;
+
+
+/*
+ * SETUP_DEBUG_REG3 struct
+ */
+
+#define SETUP_DEBUG_REG3_y_sort2_gated_17_4_SIZE 14
+#define SETUP_DEBUG_REG3_x_sort2_gated_17_4_SIZE 14
+
+#define SETUP_DEBUG_REG3_y_sort2_gated_17_4_SHIFT 0
+#define SETUP_DEBUG_REG3_x_sort2_gated_17_4_SHIFT 14
+
+#define SETUP_DEBUG_REG3_y_sort2_gated_17_4_MASK 0x00003fff
+#define SETUP_DEBUG_REG3_x_sort2_gated_17_4_MASK 0x0fffc000
+
+#define SETUP_DEBUG_REG3_MASK \
+ (SETUP_DEBUG_REG3_y_sort2_gated_17_4_MASK | \
+ SETUP_DEBUG_REG3_x_sort2_gated_17_4_MASK)
+
+#define SETUP_DEBUG_REG3(y_sort2_gated_17_4, x_sort2_gated_17_4) \
+ ((y_sort2_gated_17_4 << SETUP_DEBUG_REG3_y_sort2_gated_17_4_SHIFT) | \
+ (x_sort2_gated_17_4 << SETUP_DEBUG_REG3_x_sort2_gated_17_4_SHIFT))
+
+#define SETUP_DEBUG_REG3_GET_y_sort2_gated_17_4(setup_debug_reg3) \
+ ((setup_debug_reg3 & SETUP_DEBUG_REG3_y_sort2_gated_17_4_MASK) >> SETUP_DEBUG_REG3_y_sort2_gated_17_4_SHIFT)
+#define SETUP_DEBUG_REG3_GET_x_sort2_gated_17_4(setup_debug_reg3) \
+ ((setup_debug_reg3 & SETUP_DEBUG_REG3_x_sort2_gated_17_4_MASK) >> SETUP_DEBUG_REG3_x_sort2_gated_17_4_SHIFT)
+
+#define SETUP_DEBUG_REG3_SET_y_sort2_gated_17_4(setup_debug_reg3_reg, y_sort2_gated_17_4) \
+ setup_debug_reg3_reg = (setup_debug_reg3_reg & ~SETUP_DEBUG_REG3_y_sort2_gated_17_4_MASK) | (y_sort2_gated_17_4 << SETUP_DEBUG_REG3_y_sort2_gated_17_4_SHIFT)
+#define SETUP_DEBUG_REG3_SET_x_sort2_gated_17_4(setup_debug_reg3_reg, x_sort2_gated_17_4) \
+ setup_debug_reg3_reg = (setup_debug_reg3_reg & ~SETUP_DEBUG_REG3_x_sort2_gated_17_4_MASK) | (x_sort2_gated_17_4 << SETUP_DEBUG_REG3_x_sort2_gated_17_4_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _setup_debug_reg3_t {
+ unsigned int y_sort2_gated_17_4 : SETUP_DEBUG_REG3_y_sort2_gated_17_4_SIZE;
+ unsigned int x_sort2_gated_17_4 : SETUP_DEBUG_REG3_x_sort2_gated_17_4_SIZE;
+ unsigned int : 4;
+ } setup_debug_reg3_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _setup_debug_reg3_t {
+ unsigned int : 4;
+ unsigned int x_sort2_gated_17_4 : SETUP_DEBUG_REG3_x_sort2_gated_17_4_SIZE;
+ unsigned int y_sort2_gated_17_4 : SETUP_DEBUG_REG3_y_sort2_gated_17_4_SIZE;
+ } setup_debug_reg3_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ setup_debug_reg3_t f;
+} setup_debug_reg3_u;
+
+
+/*
+ * SETUP_DEBUG_REG4 struct
+ */
+
+#define SETUP_DEBUG_REG4_attr_indx_sort0_gated_SIZE 11
+#define SETUP_DEBUG_REG4_null_prim_gated_SIZE 1
+#define SETUP_DEBUG_REG4_backfacing_gated_SIZE 1
+#define SETUP_DEBUG_REG4_st_indx_gated_SIZE 3
+#define SETUP_DEBUG_REG4_clipped_gated_SIZE 1
+#define SETUP_DEBUG_REG4_dealloc_slot_gated_SIZE 3
+#define SETUP_DEBUG_REG4_xmajor_gated_SIZE 1
+#define SETUP_DEBUG_REG4_diamond_rule_gated_SIZE 2
+#define SETUP_DEBUG_REG4_type_gated_SIZE 3
+#define SETUP_DEBUG_REG4_fpov_gated_SIZE 1
+#define SETUP_DEBUG_REG4_pmode_prim_gated_SIZE 1
+#define SETUP_DEBUG_REG4_event_gated_SIZE 1
+#define SETUP_DEBUG_REG4_eop_gated_SIZE 1
+
+#define SETUP_DEBUG_REG4_attr_indx_sort0_gated_SHIFT 0
+#define SETUP_DEBUG_REG4_null_prim_gated_SHIFT 11
+#define SETUP_DEBUG_REG4_backfacing_gated_SHIFT 12
+#define SETUP_DEBUG_REG4_st_indx_gated_SHIFT 13
+#define SETUP_DEBUG_REG4_clipped_gated_SHIFT 16
+#define SETUP_DEBUG_REG4_dealloc_slot_gated_SHIFT 17
+#define SETUP_DEBUG_REG4_xmajor_gated_SHIFT 20
+#define SETUP_DEBUG_REG4_diamond_rule_gated_SHIFT 21
+#define SETUP_DEBUG_REG4_type_gated_SHIFT 23
+#define SETUP_DEBUG_REG4_fpov_gated_SHIFT 26
+#define SETUP_DEBUG_REG4_pmode_prim_gated_SHIFT 27
+#define SETUP_DEBUG_REG4_event_gated_SHIFT 28
+#define SETUP_DEBUG_REG4_eop_gated_SHIFT 29
+
+#define SETUP_DEBUG_REG4_attr_indx_sort0_gated_MASK 0x000007ff
+#define SETUP_DEBUG_REG4_null_prim_gated_MASK 0x00000800
+#define SETUP_DEBUG_REG4_backfacing_gated_MASK 0x00001000
+#define SETUP_DEBUG_REG4_st_indx_gated_MASK 0x0000e000
+#define SETUP_DEBUG_REG4_clipped_gated_MASK 0x00010000
+#define SETUP_DEBUG_REG4_dealloc_slot_gated_MASK 0x000e0000
+#define SETUP_DEBUG_REG4_xmajor_gated_MASK 0x00100000
+#define SETUP_DEBUG_REG4_diamond_rule_gated_MASK 0x00600000
+#define SETUP_DEBUG_REG4_type_gated_MASK 0x03800000
+#define SETUP_DEBUG_REG4_fpov_gated_MASK 0x04000000
+#define SETUP_DEBUG_REG4_pmode_prim_gated_MASK 0x08000000
+#define SETUP_DEBUG_REG4_event_gated_MASK 0x10000000
+#define SETUP_DEBUG_REG4_eop_gated_MASK 0x20000000
+
+#define SETUP_DEBUG_REG4_MASK \
+ (SETUP_DEBUG_REG4_attr_indx_sort0_gated_MASK | \
+ SETUP_DEBUG_REG4_null_prim_gated_MASK | \
+ SETUP_DEBUG_REG4_backfacing_gated_MASK | \
+ SETUP_DEBUG_REG4_st_indx_gated_MASK | \
+ SETUP_DEBUG_REG4_clipped_gated_MASK | \
+ SETUP_DEBUG_REG4_dealloc_slot_gated_MASK | \
+ SETUP_DEBUG_REG4_xmajor_gated_MASK | \
+ SETUP_DEBUG_REG4_diamond_rule_gated_MASK | \
+ SETUP_DEBUG_REG4_type_gated_MASK | \
+ SETUP_DEBUG_REG4_fpov_gated_MASK | \
+ SETUP_DEBUG_REG4_pmode_prim_gated_MASK | \
+ SETUP_DEBUG_REG4_event_gated_MASK | \
+ SETUP_DEBUG_REG4_eop_gated_MASK)
+
+#define SETUP_DEBUG_REG4(attr_indx_sort0_gated, null_prim_gated, backfacing_gated, st_indx_gated, clipped_gated, dealloc_slot_gated, xmajor_gated, diamond_rule_gated, type_gated, fpov_gated, pmode_prim_gated, event_gated, eop_gated) \
+ ((attr_indx_sort0_gated << SETUP_DEBUG_REG4_attr_indx_sort0_gated_SHIFT) | \
+ (null_prim_gated << SETUP_DEBUG_REG4_null_prim_gated_SHIFT) | \
+ (backfacing_gated << SETUP_DEBUG_REG4_backfacing_gated_SHIFT) | \
+ (st_indx_gated << SETUP_DEBUG_REG4_st_indx_gated_SHIFT) | \
+ (clipped_gated << SETUP_DEBUG_REG4_clipped_gated_SHIFT) | \
+ (dealloc_slot_gated << SETUP_DEBUG_REG4_dealloc_slot_gated_SHIFT) | \
+ (xmajor_gated << SETUP_DEBUG_REG4_xmajor_gated_SHIFT) | \
+ (diamond_rule_gated << SETUP_DEBUG_REG4_diamond_rule_gated_SHIFT) | \
+ (type_gated << SETUP_DEBUG_REG4_type_gated_SHIFT) | \
+ (fpov_gated << SETUP_DEBUG_REG4_fpov_gated_SHIFT) | \
+ (pmode_prim_gated << SETUP_DEBUG_REG4_pmode_prim_gated_SHIFT) | \
+ (event_gated << SETUP_DEBUG_REG4_event_gated_SHIFT) | \
+ (eop_gated << SETUP_DEBUG_REG4_eop_gated_SHIFT))
+
+#define SETUP_DEBUG_REG4_GET_attr_indx_sort0_gated(setup_debug_reg4) \
+ ((setup_debug_reg4 & SETUP_DEBUG_REG4_attr_indx_sort0_gated_MASK) >> SETUP_DEBUG_REG4_attr_indx_sort0_gated_SHIFT)
+#define SETUP_DEBUG_REG4_GET_null_prim_gated(setup_debug_reg4) \
+ ((setup_debug_reg4 & SETUP_DEBUG_REG4_null_prim_gated_MASK) >> SETUP_DEBUG_REG4_null_prim_gated_SHIFT)
+#define SETUP_DEBUG_REG4_GET_backfacing_gated(setup_debug_reg4) \
+ ((setup_debug_reg4 & SETUP_DEBUG_REG4_backfacing_gated_MASK) >> SETUP_DEBUG_REG4_backfacing_gated_SHIFT)
+#define SETUP_DEBUG_REG4_GET_st_indx_gated(setup_debug_reg4) \
+ ((setup_debug_reg4 & SETUP_DEBUG_REG4_st_indx_gated_MASK) >> SETUP_DEBUG_REG4_st_indx_gated_SHIFT)
+#define SETUP_DEBUG_REG4_GET_clipped_gated(setup_debug_reg4) \
+ ((setup_debug_reg4 & SETUP_DEBUG_REG4_clipped_gated_MASK) >> SETUP_DEBUG_REG4_clipped_gated_SHIFT)
+#define SETUP_DEBUG_REG4_GET_dealloc_slot_gated(setup_debug_reg4) \
+ ((setup_debug_reg4 & SETUP_DEBUG_REG4_dealloc_slot_gated_MASK) >> SETUP_DEBUG_REG4_dealloc_slot_gated_SHIFT)
+#define SETUP_DEBUG_REG4_GET_xmajor_gated(setup_debug_reg4) \
+ ((setup_debug_reg4 & SETUP_DEBUG_REG4_xmajor_gated_MASK) >> SETUP_DEBUG_REG4_xmajor_gated_SHIFT)
+#define SETUP_DEBUG_REG4_GET_diamond_rule_gated(setup_debug_reg4) \
+ ((setup_debug_reg4 & SETUP_DEBUG_REG4_diamond_rule_gated_MASK) >> SETUP_DEBUG_REG4_diamond_rule_gated_SHIFT)
+#define SETUP_DEBUG_REG4_GET_type_gated(setup_debug_reg4) \
+ ((setup_debug_reg4 & SETUP_DEBUG_REG4_type_gated_MASK) >> SETUP_DEBUG_REG4_type_gated_SHIFT)
+#define SETUP_DEBUG_REG4_GET_fpov_gated(setup_debug_reg4) \
+ ((setup_debug_reg4 & SETUP_DEBUG_REG4_fpov_gated_MASK) >> SETUP_DEBUG_REG4_fpov_gated_SHIFT)
+#define SETUP_DEBUG_REG4_GET_pmode_prim_gated(setup_debug_reg4) \
+ ((setup_debug_reg4 & SETUP_DEBUG_REG4_pmode_prim_gated_MASK) >> SETUP_DEBUG_REG4_pmode_prim_gated_SHIFT)
+#define SETUP_DEBUG_REG4_GET_event_gated(setup_debug_reg4) \
+ ((setup_debug_reg4 & SETUP_DEBUG_REG4_event_gated_MASK) >> SETUP_DEBUG_REG4_event_gated_SHIFT)
+#define SETUP_DEBUG_REG4_GET_eop_gated(setup_debug_reg4) \
+ ((setup_debug_reg4 & SETUP_DEBUG_REG4_eop_gated_MASK) >> SETUP_DEBUG_REG4_eop_gated_SHIFT)
+
+#define SETUP_DEBUG_REG4_SET_attr_indx_sort0_gated(setup_debug_reg4_reg, attr_indx_sort0_gated) \
+ setup_debug_reg4_reg = (setup_debug_reg4_reg & ~SETUP_DEBUG_REG4_attr_indx_sort0_gated_MASK) | (attr_indx_sort0_gated << SETUP_DEBUG_REG4_attr_indx_sort0_gated_SHIFT)
+#define SETUP_DEBUG_REG4_SET_null_prim_gated(setup_debug_reg4_reg, null_prim_gated) \
+ setup_debug_reg4_reg = (setup_debug_reg4_reg & ~SETUP_DEBUG_REG4_null_prim_gated_MASK) | (null_prim_gated << SETUP_DEBUG_REG4_null_prim_gated_SHIFT)
+#define SETUP_DEBUG_REG4_SET_backfacing_gated(setup_debug_reg4_reg, backfacing_gated) \
+ setup_debug_reg4_reg = (setup_debug_reg4_reg & ~SETUP_DEBUG_REG4_backfacing_gated_MASK) | (backfacing_gated << SETUP_DEBUG_REG4_backfacing_gated_SHIFT)
+#define SETUP_DEBUG_REG4_SET_st_indx_gated(setup_debug_reg4_reg, st_indx_gated) \
+ setup_debug_reg4_reg = (setup_debug_reg4_reg & ~SETUP_DEBUG_REG4_st_indx_gated_MASK) | (st_indx_gated << SETUP_DEBUG_REG4_st_indx_gated_SHIFT)
+#define SETUP_DEBUG_REG4_SET_clipped_gated(setup_debug_reg4_reg, clipped_gated) \
+ setup_debug_reg4_reg = (setup_debug_reg4_reg & ~SETUP_DEBUG_REG4_clipped_gated_MASK) | (clipped_gated << SETUP_DEBUG_REG4_clipped_gated_SHIFT)
+#define SETUP_DEBUG_REG4_SET_dealloc_slot_gated(setup_debug_reg4_reg, dealloc_slot_gated) \
+ setup_debug_reg4_reg = (setup_debug_reg4_reg & ~SETUP_DEBUG_REG4_dealloc_slot_gated_MASK) | (dealloc_slot_gated << SETUP_DEBUG_REG4_dealloc_slot_gated_SHIFT)
+#define SETUP_DEBUG_REG4_SET_xmajor_gated(setup_debug_reg4_reg, xmajor_gated) \
+ setup_debug_reg4_reg = (setup_debug_reg4_reg & ~SETUP_DEBUG_REG4_xmajor_gated_MASK) | (xmajor_gated << SETUP_DEBUG_REG4_xmajor_gated_SHIFT)
+#define SETUP_DEBUG_REG4_SET_diamond_rule_gated(setup_debug_reg4_reg, diamond_rule_gated) \
+ setup_debug_reg4_reg = (setup_debug_reg4_reg & ~SETUP_DEBUG_REG4_diamond_rule_gated_MASK) | (diamond_rule_gated << SETUP_DEBUG_REG4_diamond_rule_gated_SHIFT)
+#define SETUP_DEBUG_REG4_SET_type_gated(setup_debug_reg4_reg, type_gated) \
+ setup_debug_reg4_reg = (setup_debug_reg4_reg & ~SETUP_DEBUG_REG4_type_gated_MASK) | (type_gated << SETUP_DEBUG_REG4_type_gated_SHIFT)
+#define SETUP_DEBUG_REG4_SET_fpov_gated(setup_debug_reg4_reg, fpov_gated) \
+ setup_debug_reg4_reg = (setup_debug_reg4_reg & ~SETUP_DEBUG_REG4_fpov_gated_MASK) | (fpov_gated << SETUP_DEBUG_REG4_fpov_gated_SHIFT)
+#define SETUP_DEBUG_REG4_SET_pmode_prim_gated(setup_debug_reg4_reg, pmode_prim_gated) \
+ setup_debug_reg4_reg = (setup_debug_reg4_reg & ~SETUP_DEBUG_REG4_pmode_prim_gated_MASK) | (pmode_prim_gated << SETUP_DEBUG_REG4_pmode_prim_gated_SHIFT)
+#define SETUP_DEBUG_REG4_SET_event_gated(setup_debug_reg4_reg, event_gated) \
+ setup_debug_reg4_reg = (setup_debug_reg4_reg & ~SETUP_DEBUG_REG4_event_gated_MASK) | (event_gated << SETUP_DEBUG_REG4_event_gated_SHIFT)
+#define SETUP_DEBUG_REG4_SET_eop_gated(setup_debug_reg4_reg, eop_gated) \
+ setup_debug_reg4_reg = (setup_debug_reg4_reg & ~SETUP_DEBUG_REG4_eop_gated_MASK) | (eop_gated << SETUP_DEBUG_REG4_eop_gated_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _setup_debug_reg4_t {
+ unsigned int attr_indx_sort0_gated : SETUP_DEBUG_REG4_attr_indx_sort0_gated_SIZE;
+ unsigned int null_prim_gated : SETUP_DEBUG_REG4_null_prim_gated_SIZE;
+ unsigned int backfacing_gated : SETUP_DEBUG_REG4_backfacing_gated_SIZE;
+ unsigned int st_indx_gated : SETUP_DEBUG_REG4_st_indx_gated_SIZE;
+ unsigned int clipped_gated : SETUP_DEBUG_REG4_clipped_gated_SIZE;
+ unsigned int dealloc_slot_gated : SETUP_DEBUG_REG4_dealloc_slot_gated_SIZE;
+ unsigned int xmajor_gated : SETUP_DEBUG_REG4_xmajor_gated_SIZE;
+ unsigned int diamond_rule_gated : SETUP_DEBUG_REG4_diamond_rule_gated_SIZE;
+ unsigned int type_gated : SETUP_DEBUG_REG4_type_gated_SIZE;
+ unsigned int fpov_gated : SETUP_DEBUG_REG4_fpov_gated_SIZE;
+ unsigned int pmode_prim_gated : SETUP_DEBUG_REG4_pmode_prim_gated_SIZE;
+ unsigned int event_gated : SETUP_DEBUG_REG4_event_gated_SIZE;
+ unsigned int eop_gated : SETUP_DEBUG_REG4_eop_gated_SIZE;
+ unsigned int : 2;
+ } setup_debug_reg4_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _setup_debug_reg4_t {
+ unsigned int : 2;
+ unsigned int eop_gated : SETUP_DEBUG_REG4_eop_gated_SIZE;
+ unsigned int event_gated : SETUP_DEBUG_REG4_event_gated_SIZE;
+ unsigned int pmode_prim_gated : SETUP_DEBUG_REG4_pmode_prim_gated_SIZE;
+ unsigned int fpov_gated : SETUP_DEBUG_REG4_fpov_gated_SIZE;
+ unsigned int type_gated : SETUP_DEBUG_REG4_type_gated_SIZE;
+ unsigned int diamond_rule_gated : SETUP_DEBUG_REG4_diamond_rule_gated_SIZE;
+ unsigned int xmajor_gated : SETUP_DEBUG_REG4_xmajor_gated_SIZE;
+ unsigned int dealloc_slot_gated : SETUP_DEBUG_REG4_dealloc_slot_gated_SIZE;
+ unsigned int clipped_gated : SETUP_DEBUG_REG4_clipped_gated_SIZE;
+ unsigned int st_indx_gated : SETUP_DEBUG_REG4_st_indx_gated_SIZE;
+ unsigned int backfacing_gated : SETUP_DEBUG_REG4_backfacing_gated_SIZE;
+ unsigned int null_prim_gated : SETUP_DEBUG_REG4_null_prim_gated_SIZE;
+ unsigned int attr_indx_sort0_gated : SETUP_DEBUG_REG4_attr_indx_sort0_gated_SIZE;
+ } setup_debug_reg4_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ setup_debug_reg4_t f;
+} setup_debug_reg4_u;
+
+
+/*
+ * SETUP_DEBUG_REG5 struct
+ */
+
+#define SETUP_DEBUG_REG5_attr_indx_sort2_gated_SIZE 11
+#define SETUP_DEBUG_REG5_attr_indx_sort1_gated_SIZE 11
+#define SETUP_DEBUG_REG5_provoking_vtx_gated_SIZE 2
+#define SETUP_DEBUG_REG5_event_id_gated_SIZE 5
+
+#define SETUP_DEBUG_REG5_attr_indx_sort2_gated_SHIFT 0
+#define SETUP_DEBUG_REG5_attr_indx_sort1_gated_SHIFT 11
+#define SETUP_DEBUG_REG5_provoking_vtx_gated_SHIFT 22
+#define SETUP_DEBUG_REG5_event_id_gated_SHIFT 24
+
+#define SETUP_DEBUG_REG5_attr_indx_sort2_gated_MASK 0x000007ff
+#define SETUP_DEBUG_REG5_attr_indx_sort1_gated_MASK 0x003ff800
+#define SETUP_DEBUG_REG5_provoking_vtx_gated_MASK 0x00c00000
+#define SETUP_DEBUG_REG5_event_id_gated_MASK 0x1f000000
+
+#define SETUP_DEBUG_REG5_MASK \
+ (SETUP_DEBUG_REG5_attr_indx_sort2_gated_MASK | \
+ SETUP_DEBUG_REG5_attr_indx_sort1_gated_MASK | \
+ SETUP_DEBUG_REG5_provoking_vtx_gated_MASK | \
+ SETUP_DEBUG_REG5_event_id_gated_MASK)
+
+#define SETUP_DEBUG_REG5(attr_indx_sort2_gated, attr_indx_sort1_gated, provoking_vtx_gated, event_id_gated) \
+ ((attr_indx_sort2_gated << SETUP_DEBUG_REG5_attr_indx_sort2_gated_SHIFT) | \
+ (attr_indx_sort1_gated << SETUP_DEBUG_REG5_attr_indx_sort1_gated_SHIFT) | \
+ (provoking_vtx_gated << SETUP_DEBUG_REG5_provoking_vtx_gated_SHIFT) | \
+ (event_id_gated << SETUP_DEBUG_REG5_event_id_gated_SHIFT))
+
+#define SETUP_DEBUG_REG5_GET_attr_indx_sort2_gated(setup_debug_reg5) \
+ ((setup_debug_reg5 & SETUP_DEBUG_REG5_attr_indx_sort2_gated_MASK) >> SETUP_DEBUG_REG5_attr_indx_sort2_gated_SHIFT)
+#define SETUP_DEBUG_REG5_GET_attr_indx_sort1_gated(setup_debug_reg5) \
+ ((setup_debug_reg5 & SETUP_DEBUG_REG5_attr_indx_sort1_gated_MASK) >> SETUP_DEBUG_REG5_attr_indx_sort1_gated_SHIFT)
+#define SETUP_DEBUG_REG5_GET_provoking_vtx_gated(setup_debug_reg5) \
+ ((setup_debug_reg5 & SETUP_DEBUG_REG5_provoking_vtx_gated_MASK) >> SETUP_DEBUG_REG5_provoking_vtx_gated_SHIFT)
+#define SETUP_DEBUG_REG5_GET_event_id_gated(setup_debug_reg5) \
+ ((setup_debug_reg5 & SETUP_DEBUG_REG5_event_id_gated_MASK) >> SETUP_DEBUG_REG5_event_id_gated_SHIFT)
+
+#define SETUP_DEBUG_REG5_SET_attr_indx_sort2_gated(setup_debug_reg5_reg, attr_indx_sort2_gated) \
+ setup_debug_reg5_reg = (setup_debug_reg5_reg & ~SETUP_DEBUG_REG5_attr_indx_sort2_gated_MASK) | (attr_indx_sort2_gated << SETUP_DEBUG_REG5_attr_indx_sort2_gated_SHIFT)
+#define SETUP_DEBUG_REG5_SET_attr_indx_sort1_gated(setup_debug_reg5_reg, attr_indx_sort1_gated) \
+ setup_debug_reg5_reg = (setup_debug_reg5_reg & ~SETUP_DEBUG_REG5_attr_indx_sort1_gated_MASK) | (attr_indx_sort1_gated << SETUP_DEBUG_REG5_attr_indx_sort1_gated_SHIFT)
+#define SETUP_DEBUG_REG5_SET_provoking_vtx_gated(setup_debug_reg5_reg, provoking_vtx_gated) \
+ setup_debug_reg5_reg = (setup_debug_reg5_reg & ~SETUP_DEBUG_REG5_provoking_vtx_gated_MASK) | (provoking_vtx_gated << SETUP_DEBUG_REG5_provoking_vtx_gated_SHIFT)
+#define SETUP_DEBUG_REG5_SET_event_id_gated(setup_debug_reg5_reg, event_id_gated) \
+ setup_debug_reg5_reg = (setup_debug_reg5_reg & ~SETUP_DEBUG_REG5_event_id_gated_MASK) | (event_id_gated << SETUP_DEBUG_REG5_event_id_gated_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _setup_debug_reg5_t {
+ unsigned int attr_indx_sort2_gated : SETUP_DEBUG_REG5_attr_indx_sort2_gated_SIZE;
+ unsigned int attr_indx_sort1_gated : SETUP_DEBUG_REG5_attr_indx_sort1_gated_SIZE;
+ unsigned int provoking_vtx_gated : SETUP_DEBUG_REG5_provoking_vtx_gated_SIZE;
+ unsigned int event_id_gated : SETUP_DEBUG_REG5_event_id_gated_SIZE;
+ unsigned int : 3;
+ } setup_debug_reg5_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _setup_debug_reg5_t {
+ unsigned int : 3;
+ unsigned int event_id_gated : SETUP_DEBUG_REG5_event_id_gated_SIZE;
+ unsigned int provoking_vtx_gated : SETUP_DEBUG_REG5_provoking_vtx_gated_SIZE;
+ unsigned int attr_indx_sort1_gated : SETUP_DEBUG_REG5_attr_indx_sort1_gated_SIZE;
+ unsigned int attr_indx_sort2_gated : SETUP_DEBUG_REG5_attr_indx_sort2_gated_SIZE;
+ } setup_debug_reg5_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ setup_debug_reg5_t f;
+} setup_debug_reg5_u;
+
+
+/*
+ * PA_SC_DEBUG_CNTL struct
+ */
+
+#define PA_SC_DEBUG_CNTL_SC_DEBUG_INDX_SIZE 5
+
+#define PA_SC_DEBUG_CNTL_SC_DEBUG_INDX_SHIFT 0
+
+#define PA_SC_DEBUG_CNTL_SC_DEBUG_INDX_MASK 0x0000001f
+
+#define PA_SC_DEBUG_CNTL_MASK \
+ (PA_SC_DEBUG_CNTL_SC_DEBUG_INDX_MASK)
+
+#define PA_SC_DEBUG_CNTL(sc_debug_indx) \
+ ((sc_debug_indx << PA_SC_DEBUG_CNTL_SC_DEBUG_INDX_SHIFT))
+
+#define PA_SC_DEBUG_CNTL_GET_SC_DEBUG_INDX(pa_sc_debug_cntl) \
+ ((pa_sc_debug_cntl & PA_SC_DEBUG_CNTL_SC_DEBUG_INDX_MASK) >> PA_SC_DEBUG_CNTL_SC_DEBUG_INDX_SHIFT)
+
+#define PA_SC_DEBUG_CNTL_SET_SC_DEBUG_INDX(pa_sc_debug_cntl_reg, sc_debug_indx) \
+ pa_sc_debug_cntl_reg = (pa_sc_debug_cntl_reg & ~PA_SC_DEBUG_CNTL_SC_DEBUG_INDX_MASK) | (sc_debug_indx << PA_SC_DEBUG_CNTL_SC_DEBUG_INDX_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_debug_cntl_t {
+ unsigned int sc_debug_indx : PA_SC_DEBUG_CNTL_SC_DEBUG_INDX_SIZE;
+ unsigned int : 27;
+ } pa_sc_debug_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_debug_cntl_t {
+ unsigned int : 27;
+ unsigned int sc_debug_indx : PA_SC_DEBUG_CNTL_SC_DEBUG_INDX_SIZE;
+ } pa_sc_debug_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_debug_cntl_t f;
+} pa_sc_debug_cntl_u;
+
+
+/*
+ * PA_SC_DEBUG_DATA struct
+ */
+
+#define PA_SC_DEBUG_DATA_DATA_SIZE 32
+
+#define PA_SC_DEBUG_DATA_DATA_SHIFT 0
+
+#define PA_SC_DEBUG_DATA_DATA_MASK 0xffffffff
+
+#define PA_SC_DEBUG_DATA_MASK \
+ (PA_SC_DEBUG_DATA_DATA_MASK)
+
+#define PA_SC_DEBUG_DATA(data) \
+ ((data << PA_SC_DEBUG_DATA_DATA_SHIFT))
+
+#define PA_SC_DEBUG_DATA_GET_DATA(pa_sc_debug_data) \
+ ((pa_sc_debug_data & PA_SC_DEBUG_DATA_DATA_MASK) >> PA_SC_DEBUG_DATA_DATA_SHIFT)
+
+#define PA_SC_DEBUG_DATA_SET_DATA(pa_sc_debug_data_reg, data) \
+ pa_sc_debug_data_reg = (pa_sc_debug_data_reg & ~PA_SC_DEBUG_DATA_DATA_MASK) | (data << PA_SC_DEBUG_DATA_DATA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_debug_data_t {
+ unsigned int data : PA_SC_DEBUG_DATA_DATA_SIZE;
+ } pa_sc_debug_data_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_debug_data_t {
+ unsigned int data : PA_SC_DEBUG_DATA_DATA_SIZE;
+ } pa_sc_debug_data_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_debug_data_t f;
+} pa_sc_debug_data_u;
+
+
+/*
+ * SC_DEBUG_0 struct
+ */
+
+#define SC_DEBUG_0_pa_freeze_b1_SIZE 1
+#define SC_DEBUG_0_pa_sc_valid_SIZE 1
+#define SC_DEBUG_0_pa_sc_phase_SIZE 3
+#define SC_DEBUG_0_cntx_cnt_SIZE 7
+#define SC_DEBUG_0_decr_cntx_cnt_SIZE 1
+#define SC_DEBUG_0_incr_cntx_cnt_SIZE 1
+#define SC_DEBUG_0_trigger_SIZE 1
+
+#define SC_DEBUG_0_pa_freeze_b1_SHIFT 0
+#define SC_DEBUG_0_pa_sc_valid_SHIFT 1
+#define SC_DEBUG_0_pa_sc_phase_SHIFT 2
+#define SC_DEBUG_0_cntx_cnt_SHIFT 5
+#define SC_DEBUG_0_decr_cntx_cnt_SHIFT 12
+#define SC_DEBUG_0_incr_cntx_cnt_SHIFT 13
+#define SC_DEBUG_0_trigger_SHIFT 31
+
+#define SC_DEBUG_0_pa_freeze_b1_MASK 0x00000001
+#define SC_DEBUG_0_pa_sc_valid_MASK 0x00000002
+#define SC_DEBUG_0_pa_sc_phase_MASK 0x0000001c
+#define SC_DEBUG_0_cntx_cnt_MASK 0x00000fe0
+#define SC_DEBUG_0_decr_cntx_cnt_MASK 0x00001000
+#define SC_DEBUG_0_incr_cntx_cnt_MASK 0x00002000
+#define SC_DEBUG_0_trigger_MASK 0x80000000
+
+#define SC_DEBUG_0_MASK \
+ (SC_DEBUG_0_pa_freeze_b1_MASK | \
+ SC_DEBUG_0_pa_sc_valid_MASK | \
+ SC_DEBUG_0_pa_sc_phase_MASK | \
+ SC_DEBUG_0_cntx_cnt_MASK | \
+ SC_DEBUG_0_decr_cntx_cnt_MASK | \
+ SC_DEBUG_0_incr_cntx_cnt_MASK | \
+ SC_DEBUG_0_trigger_MASK)
+
+#define SC_DEBUG_0(pa_freeze_b1, pa_sc_valid, pa_sc_phase, cntx_cnt, decr_cntx_cnt, incr_cntx_cnt, trigger) \
+ ((pa_freeze_b1 << SC_DEBUG_0_pa_freeze_b1_SHIFT) | \
+ (pa_sc_valid << SC_DEBUG_0_pa_sc_valid_SHIFT) | \
+ (pa_sc_phase << SC_DEBUG_0_pa_sc_phase_SHIFT) | \
+ (cntx_cnt << SC_DEBUG_0_cntx_cnt_SHIFT) | \
+ (decr_cntx_cnt << SC_DEBUG_0_decr_cntx_cnt_SHIFT) | \
+ (incr_cntx_cnt << SC_DEBUG_0_incr_cntx_cnt_SHIFT) | \
+ (trigger << SC_DEBUG_0_trigger_SHIFT))
+
+#define SC_DEBUG_0_GET_pa_freeze_b1(sc_debug_0) \
+ ((sc_debug_0 & SC_DEBUG_0_pa_freeze_b1_MASK) >> SC_DEBUG_0_pa_freeze_b1_SHIFT)
+#define SC_DEBUG_0_GET_pa_sc_valid(sc_debug_0) \
+ ((sc_debug_0 & SC_DEBUG_0_pa_sc_valid_MASK) >> SC_DEBUG_0_pa_sc_valid_SHIFT)
+#define SC_DEBUG_0_GET_pa_sc_phase(sc_debug_0) \
+ ((sc_debug_0 & SC_DEBUG_0_pa_sc_phase_MASK) >> SC_DEBUG_0_pa_sc_phase_SHIFT)
+#define SC_DEBUG_0_GET_cntx_cnt(sc_debug_0) \
+ ((sc_debug_0 & SC_DEBUG_0_cntx_cnt_MASK) >> SC_DEBUG_0_cntx_cnt_SHIFT)
+#define SC_DEBUG_0_GET_decr_cntx_cnt(sc_debug_0) \
+ ((sc_debug_0 & SC_DEBUG_0_decr_cntx_cnt_MASK) >> SC_DEBUG_0_decr_cntx_cnt_SHIFT)
+#define SC_DEBUG_0_GET_incr_cntx_cnt(sc_debug_0) \
+ ((sc_debug_0 & SC_DEBUG_0_incr_cntx_cnt_MASK) >> SC_DEBUG_0_incr_cntx_cnt_SHIFT)
+#define SC_DEBUG_0_GET_trigger(sc_debug_0) \
+ ((sc_debug_0 & SC_DEBUG_0_trigger_MASK) >> SC_DEBUG_0_trigger_SHIFT)
+
+#define SC_DEBUG_0_SET_pa_freeze_b1(sc_debug_0_reg, pa_freeze_b1) \
+ sc_debug_0_reg = (sc_debug_0_reg & ~SC_DEBUG_0_pa_freeze_b1_MASK) | (pa_freeze_b1 << SC_DEBUG_0_pa_freeze_b1_SHIFT)
+#define SC_DEBUG_0_SET_pa_sc_valid(sc_debug_0_reg, pa_sc_valid) \
+ sc_debug_0_reg = (sc_debug_0_reg & ~SC_DEBUG_0_pa_sc_valid_MASK) | (pa_sc_valid << SC_DEBUG_0_pa_sc_valid_SHIFT)
+#define SC_DEBUG_0_SET_pa_sc_phase(sc_debug_0_reg, pa_sc_phase) \
+ sc_debug_0_reg = (sc_debug_0_reg & ~SC_DEBUG_0_pa_sc_phase_MASK) | (pa_sc_phase << SC_DEBUG_0_pa_sc_phase_SHIFT)
+#define SC_DEBUG_0_SET_cntx_cnt(sc_debug_0_reg, cntx_cnt) \
+ sc_debug_0_reg = (sc_debug_0_reg & ~SC_DEBUG_0_cntx_cnt_MASK) | (cntx_cnt << SC_DEBUG_0_cntx_cnt_SHIFT)
+#define SC_DEBUG_0_SET_decr_cntx_cnt(sc_debug_0_reg, decr_cntx_cnt) \
+ sc_debug_0_reg = (sc_debug_0_reg & ~SC_DEBUG_0_decr_cntx_cnt_MASK) | (decr_cntx_cnt << SC_DEBUG_0_decr_cntx_cnt_SHIFT)
+#define SC_DEBUG_0_SET_incr_cntx_cnt(sc_debug_0_reg, incr_cntx_cnt) \
+ sc_debug_0_reg = (sc_debug_0_reg & ~SC_DEBUG_0_incr_cntx_cnt_MASK) | (incr_cntx_cnt << SC_DEBUG_0_incr_cntx_cnt_SHIFT)
+#define SC_DEBUG_0_SET_trigger(sc_debug_0_reg, trigger) \
+ sc_debug_0_reg = (sc_debug_0_reg & ~SC_DEBUG_0_trigger_MASK) | (trigger << SC_DEBUG_0_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sc_debug_0_t {
+ unsigned int pa_freeze_b1 : SC_DEBUG_0_pa_freeze_b1_SIZE;
+ unsigned int pa_sc_valid : SC_DEBUG_0_pa_sc_valid_SIZE;
+ unsigned int pa_sc_phase : SC_DEBUG_0_pa_sc_phase_SIZE;
+ unsigned int cntx_cnt : SC_DEBUG_0_cntx_cnt_SIZE;
+ unsigned int decr_cntx_cnt : SC_DEBUG_0_decr_cntx_cnt_SIZE;
+ unsigned int incr_cntx_cnt : SC_DEBUG_0_incr_cntx_cnt_SIZE;
+ unsigned int : 17;
+ unsigned int trigger : SC_DEBUG_0_trigger_SIZE;
+ } sc_debug_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sc_debug_0_t {
+ unsigned int trigger : SC_DEBUG_0_trigger_SIZE;
+ unsigned int : 17;
+ unsigned int incr_cntx_cnt : SC_DEBUG_0_incr_cntx_cnt_SIZE;
+ unsigned int decr_cntx_cnt : SC_DEBUG_0_decr_cntx_cnt_SIZE;
+ unsigned int cntx_cnt : SC_DEBUG_0_cntx_cnt_SIZE;
+ unsigned int pa_sc_phase : SC_DEBUG_0_pa_sc_phase_SIZE;
+ unsigned int pa_sc_valid : SC_DEBUG_0_pa_sc_valid_SIZE;
+ unsigned int pa_freeze_b1 : SC_DEBUG_0_pa_freeze_b1_SIZE;
+ } sc_debug_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sc_debug_0_t f;
+} sc_debug_0_u;
+
+
+/*
+ * SC_DEBUG_1 struct
+ */
+
+#define SC_DEBUG_1_em_state_SIZE 3
+#define SC_DEBUG_1_em1_data_ready_SIZE 1
+#define SC_DEBUG_1_em2_data_ready_SIZE 1
+#define SC_DEBUG_1_move_em1_to_em2_SIZE 1
+#define SC_DEBUG_1_ef_data_ready_SIZE 1
+#define SC_DEBUG_1_ef_state_SIZE 2
+#define SC_DEBUG_1_pipe_valid_SIZE 1
+#define SC_DEBUG_1_trigger_SIZE 1
+
+#define SC_DEBUG_1_em_state_SHIFT 0
+#define SC_DEBUG_1_em1_data_ready_SHIFT 3
+#define SC_DEBUG_1_em2_data_ready_SHIFT 4
+#define SC_DEBUG_1_move_em1_to_em2_SHIFT 5
+#define SC_DEBUG_1_ef_data_ready_SHIFT 6
+#define SC_DEBUG_1_ef_state_SHIFT 7
+#define SC_DEBUG_1_pipe_valid_SHIFT 9
+#define SC_DEBUG_1_trigger_SHIFT 31
+
+#define SC_DEBUG_1_em_state_MASK 0x00000007
+#define SC_DEBUG_1_em1_data_ready_MASK 0x00000008
+#define SC_DEBUG_1_em2_data_ready_MASK 0x00000010
+#define SC_DEBUG_1_move_em1_to_em2_MASK 0x00000020
+#define SC_DEBUG_1_ef_data_ready_MASK 0x00000040
+#define SC_DEBUG_1_ef_state_MASK 0x00000180
+#define SC_DEBUG_1_pipe_valid_MASK 0x00000200
+#define SC_DEBUG_1_trigger_MASK 0x80000000
+
+#define SC_DEBUG_1_MASK \
+ (SC_DEBUG_1_em_state_MASK | \
+ SC_DEBUG_1_em1_data_ready_MASK | \
+ SC_DEBUG_1_em2_data_ready_MASK | \
+ SC_DEBUG_1_move_em1_to_em2_MASK | \
+ SC_DEBUG_1_ef_data_ready_MASK | \
+ SC_DEBUG_1_ef_state_MASK | \
+ SC_DEBUG_1_pipe_valid_MASK | \
+ SC_DEBUG_1_trigger_MASK)
+
+#define SC_DEBUG_1(em_state, em1_data_ready, em2_data_ready, move_em1_to_em2, ef_data_ready, ef_state, pipe_valid, trigger) \
+ ((em_state << SC_DEBUG_1_em_state_SHIFT) | \
+ (em1_data_ready << SC_DEBUG_1_em1_data_ready_SHIFT) | \
+ (em2_data_ready << SC_DEBUG_1_em2_data_ready_SHIFT) | \
+ (move_em1_to_em2 << SC_DEBUG_1_move_em1_to_em2_SHIFT) | \
+ (ef_data_ready << SC_DEBUG_1_ef_data_ready_SHIFT) | \
+ (ef_state << SC_DEBUG_1_ef_state_SHIFT) | \
+ (pipe_valid << SC_DEBUG_1_pipe_valid_SHIFT) | \
+ (trigger << SC_DEBUG_1_trigger_SHIFT))
+
+#define SC_DEBUG_1_GET_em_state(sc_debug_1) \
+ ((sc_debug_1 & SC_DEBUG_1_em_state_MASK) >> SC_DEBUG_1_em_state_SHIFT)
+#define SC_DEBUG_1_GET_em1_data_ready(sc_debug_1) \
+ ((sc_debug_1 & SC_DEBUG_1_em1_data_ready_MASK) >> SC_DEBUG_1_em1_data_ready_SHIFT)
+#define SC_DEBUG_1_GET_em2_data_ready(sc_debug_1) \
+ ((sc_debug_1 & SC_DEBUG_1_em2_data_ready_MASK) >> SC_DEBUG_1_em2_data_ready_SHIFT)
+#define SC_DEBUG_1_GET_move_em1_to_em2(sc_debug_1) \
+ ((sc_debug_1 & SC_DEBUG_1_move_em1_to_em2_MASK) >> SC_DEBUG_1_move_em1_to_em2_SHIFT)
+#define SC_DEBUG_1_GET_ef_data_ready(sc_debug_1) \
+ ((sc_debug_1 & SC_DEBUG_1_ef_data_ready_MASK) >> SC_DEBUG_1_ef_data_ready_SHIFT)
+#define SC_DEBUG_1_GET_ef_state(sc_debug_1) \
+ ((sc_debug_1 & SC_DEBUG_1_ef_state_MASK) >> SC_DEBUG_1_ef_state_SHIFT)
+#define SC_DEBUG_1_GET_pipe_valid(sc_debug_1) \
+ ((sc_debug_1 & SC_DEBUG_1_pipe_valid_MASK) >> SC_DEBUG_1_pipe_valid_SHIFT)
+#define SC_DEBUG_1_GET_trigger(sc_debug_1) \
+ ((sc_debug_1 & SC_DEBUG_1_trigger_MASK) >> SC_DEBUG_1_trigger_SHIFT)
+
+#define SC_DEBUG_1_SET_em_state(sc_debug_1_reg, em_state) \
+ sc_debug_1_reg = (sc_debug_1_reg & ~SC_DEBUG_1_em_state_MASK) | (em_state << SC_DEBUG_1_em_state_SHIFT)
+#define SC_DEBUG_1_SET_em1_data_ready(sc_debug_1_reg, em1_data_ready) \
+ sc_debug_1_reg = (sc_debug_1_reg & ~SC_DEBUG_1_em1_data_ready_MASK) | (em1_data_ready << SC_DEBUG_1_em1_data_ready_SHIFT)
+#define SC_DEBUG_1_SET_em2_data_ready(sc_debug_1_reg, em2_data_ready) \
+ sc_debug_1_reg = (sc_debug_1_reg & ~SC_DEBUG_1_em2_data_ready_MASK) | (em2_data_ready << SC_DEBUG_1_em2_data_ready_SHIFT)
+#define SC_DEBUG_1_SET_move_em1_to_em2(sc_debug_1_reg, move_em1_to_em2) \
+ sc_debug_1_reg = (sc_debug_1_reg & ~SC_DEBUG_1_move_em1_to_em2_MASK) | (move_em1_to_em2 << SC_DEBUG_1_move_em1_to_em2_SHIFT)
+#define SC_DEBUG_1_SET_ef_data_ready(sc_debug_1_reg, ef_data_ready) \
+ sc_debug_1_reg = (sc_debug_1_reg & ~SC_DEBUG_1_ef_data_ready_MASK) | (ef_data_ready << SC_DEBUG_1_ef_data_ready_SHIFT)
+#define SC_DEBUG_1_SET_ef_state(sc_debug_1_reg, ef_state) \
+ sc_debug_1_reg = (sc_debug_1_reg & ~SC_DEBUG_1_ef_state_MASK) | (ef_state << SC_DEBUG_1_ef_state_SHIFT)
+#define SC_DEBUG_1_SET_pipe_valid(sc_debug_1_reg, pipe_valid) \
+ sc_debug_1_reg = (sc_debug_1_reg & ~SC_DEBUG_1_pipe_valid_MASK) | (pipe_valid << SC_DEBUG_1_pipe_valid_SHIFT)
+#define SC_DEBUG_1_SET_trigger(sc_debug_1_reg, trigger) \
+ sc_debug_1_reg = (sc_debug_1_reg & ~SC_DEBUG_1_trigger_MASK) | (trigger << SC_DEBUG_1_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sc_debug_1_t {
+ unsigned int em_state : SC_DEBUG_1_em_state_SIZE;
+ unsigned int em1_data_ready : SC_DEBUG_1_em1_data_ready_SIZE;
+ unsigned int em2_data_ready : SC_DEBUG_1_em2_data_ready_SIZE;
+ unsigned int move_em1_to_em2 : SC_DEBUG_1_move_em1_to_em2_SIZE;
+ unsigned int ef_data_ready : SC_DEBUG_1_ef_data_ready_SIZE;
+ unsigned int ef_state : SC_DEBUG_1_ef_state_SIZE;
+ unsigned int pipe_valid : SC_DEBUG_1_pipe_valid_SIZE;
+ unsigned int : 21;
+ unsigned int trigger : SC_DEBUG_1_trigger_SIZE;
+ } sc_debug_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sc_debug_1_t {
+ unsigned int trigger : SC_DEBUG_1_trigger_SIZE;
+ unsigned int : 21;
+ unsigned int pipe_valid : SC_DEBUG_1_pipe_valid_SIZE;
+ unsigned int ef_state : SC_DEBUG_1_ef_state_SIZE;
+ unsigned int ef_data_ready : SC_DEBUG_1_ef_data_ready_SIZE;
+ unsigned int move_em1_to_em2 : SC_DEBUG_1_move_em1_to_em2_SIZE;
+ unsigned int em2_data_ready : SC_DEBUG_1_em2_data_ready_SIZE;
+ unsigned int em1_data_ready : SC_DEBUG_1_em1_data_ready_SIZE;
+ unsigned int em_state : SC_DEBUG_1_em_state_SIZE;
+ } sc_debug_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sc_debug_1_t f;
+} sc_debug_1_u;
+
+
+/*
+ * SC_DEBUG_2 struct
+ */
+
+#define SC_DEBUG_2_rc_rtr_dly_SIZE 1
+#define SC_DEBUG_2_qmask_ff_alm_full_d1_SIZE 1
+#define SC_DEBUG_2_pipe_freeze_b_SIZE 1
+#define SC_DEBUG_2_prim_rts_SIZE 1
+#define SC_DEBUG_2_next_prim_rts_dly_SIZE 1
+#define SC_DEBUG_2_next_prim_rtr_dly_SIZE 1
+#define SC_DEBUG_2_pre_stage1_rts_d1_SIZE 1
+#define SC_DEBUG_2_stage0_rts_SIZE 1
+#define SC_DEBUG_2_phase_rts_dly_SIZE 1
+#define SC_DEBUG_2_end_of_prim_s1_dly_SIZE 1
+#define SC_DEBUG_2_pass_empty_prim_s1_SIZE 1
+#define SC_DEBUG_2_event_id_s1_SIZE 5
+#define SC_DEBUG_2_event_s1_SIZE 1
+#define SC_DEBUG_2_trigger_SIZE 1
+
+#define SC_DEBUG_2_rc_rtr_dly_SHIFT 0
+#define SC_DEBUG_2_qmask_ff_alm_full_d1_SHIFT 1
+#define SC_DEBUG_2_pipe_freeze_b_SHIFT 3
+#define SC_DEBUG_2_prim_rts_SHIFT 4
+#define SC_DEBUG_2_next_prim_rts_dly_SHIFT 5
+#define SC_DEBUG_2_next_prim_rtr_dly_SHIFT 6
+#define SC_DEBUG_2_pre_stage1_rts_d1_SHIFT 7
+#define SC_DEBUG_2_stage0_rts_SHIFT 8
+#define SC_DEBUG_2_phase_rts_dly_SHIFT 9
+#define SC_DEBUG_2_end_of_prim_s1_dly_SHIFT 15
+#define SC_DEBUG_2_pass_empty_prim_s1_SHIFT 16
+#define SC_DEBUG_2_event_id_s1_SHIFT 17
+#define SC_DEBUG_2_event_s1_SHIFT 22
+#define SC_DEBUG_2_trigger_SHIFT 31
+
+#define SC_DEBUG_2_rc_rtr_dly_MASK 0x00000001
+#define SC_DEBUG_2_qmask_ff_alm_full_d1_MASK 0x00000002
+#define SC_DEBUG_2_pipe_freeze_b_MASK 0x00000008
+#define SC_DEBUG_2_prim_rts_MASK 0x00000010
+#define SC_DEBUG_2_next_prim_rts_dly_MASK 0x00000020
+#define SC_DEBUG_2_next_prim_rtr_dly_MASK 0x00000040
+#define SC_DEBUG_2_pre_stage1_rts_d1_MASK 0x00000080
+#define SC_DEBUG_2_stage0_rts_MASK 0x00000100
+#define SC_DEBUG_2_phase_rts_dly_MASK 0x00000200
+#define SC_DEBUG_2_end_of_prim_s1_dly_MASK 0x00008000
+#define SC_DEBUG_2_pass_empty_prim_s1_MASK 0x00010000
+#define SC_DEBUG_2_event_id_s1_MASK 0x003e0000
+#define SC_DEBUG_2_event_s1_MASK 0x00400000
+#define SC_DEBUG_2_trigger_MASK 0x80000000
+
+#define SC_DEBUG_2_MASK \
+ (SC_DEBUG_2_rc_rtr_dly_MASK | \
+ SC_DEBUG_2_qmask_ff_alm_full_d1_MASK | \
+ SC_DEBUG_2_pipe_freeze_b_MASK | \
+ SC_DEBUG_2_prim_rts_MASK | \
+ SC_DEBUG_2_next_prim_rts_dly_MASK | \
+ SC_DEBUG_2_next_prim_rtr_dly_MASK | \
+ SC_DEBUG_2_pre_stage1_rts_d1_MASK | \
+ SC_DEBUG_2_stage0_rts_MASK | \
+ SC_DEBUG_2_phase_rts_dly_MASK | \
+ SC_DEBUG_2_end_of_prim_s1_dly_MASK | \
+ SC_DEBUG_2_pass_empty_prim_s1_MASK | \
+ SC_DEBUG_2_event_id_s1_MASK | \
+ SC_DEBUG_2_event_s1_MASK | \
+ SC_DEBUG_2_trigger_MASK)
+
+#define SC_DEBUG_2(rc_rtr_dly, qmask_ff_alm_full_d1, pipe_freeze_b, prim_rts, next_prim_rts_dly, next_prim_rtr_dly, pre_stage1_rts_d1, stage0_rts, phase_rts_dly, end_of_prim_s1_dly, pass_empty_prim_s1, event_id_s1, event_s1, trigger) \
+ ((rc_rtr_dly << SC_DEBUG_2_rc_rtr_dly_SHIFT) | \
+ (qmask_ff_alm_full_d1 << SC_DEBUG_2_qmask_ff_alm_full_d1_SHIFT) | \
+ (pipe_freeze_b << SC_DEBUG_2_pipe_freeze_b_SHIFT) | \
+ (prim_rts << SC_DEBUG_2_prim_rts_SHIFT) | \
+ (next_prim_rts_dly << SC_DEBUG_2_next_prim_rts_dly_SHIFT) | \
+ (next_prim_rtr_dly << SC_DEBUG_2_next_prim_rtr_dly_SHIFT) | \
+ (pre_stage1_rts_d1 << SC_DEBUG_2_pre_stage1_rts_d1_SHIFT) | \
+ (stage0_rts << SC_DEBUG_2_stage0_rts_SHIFT) | \
+ (phase_rts_dly << SC_DEBUG_2_phase_rts_dly_SHIFT) | \
+ (end_of_prim_s1_dly << SC_DEBUG_2_end_of_prim_s1_dly_SHIFT) | \
+ (pass_empty_prim_s1 << SC_DEBUG_2_pass_empty_prim_s1_SHIFT) | \
+ (event_id_s1 << SC_DEBUG_2_event_id_s1_SHIFT) | \
+ (event_s1 << SC_DEBUG_2_event_s1_SHIFT) | \
+ (trigger << SC_DEBUG_2_trigger_SHIFT))
+
+#define SC_DEBUG_2_GET_rc_rtr_dly(sc_debug_2) \
+ ((sc_debug_2 & SC_DEBUG_2_rc_rtr_dly_MASK) >> SC_DEBUG_2_rc_rtr_dly_SHIFT)
+#define SC_DEBUG_2_GET_qmask_ff_alm_full_d1(sc_debug_2) \
+ ((sc_debug_2 & SC_DEBUG_2_qmask_ff_alm_full_d1_MASK) >> SC_DEBUG_2_qmask_ff_alm_full_d1_SHIFT)
+#define SC_DEBUG_2_GET_pipe_freeze_b(sc_debug_2) \
+ ((sc_debug_2 & SC_DEBUG_2_pipe_freeze_b_MASK) >> SC_DEBUG_2_pipe_freeze_b_SHIFT)
+#define SC_DEBUG_2_GET_prim_rts(sc_debug_2) \
+ ((sc_debug_2 & SC_DEBUG_2_prim_rts_MASK) >> SC_DEBUG_2_prim_rts_SHIFT)
+#define SC_DEBUG_2_GET_next_prim_rts_dly(sc_debug_2) \
+ ((sc_debug_2 & SC_DEBUG_2_next_prim_rts_dly_MASK) >> SC_DEBUG_2_next_prim_rts_dly_SHIFT)
+#define SC_DEBUG_2_GET_next_prim_rtr_dly(sc_debug_2) \
+ ((sc_debug_2 & SC_DEBUG_2_next_prim_rtr_dly_MASK) >> SC_DEBUG_2_next_prim_rtr_dly_SHIFT)
+#define SC_DEBUG_2_GET_pre_stage1_rts_d1(sc_debug_2) \
+ ((sc_debug_2 & SC_DEBUG_2_pre_stage1_rts_d1_MASK) >> SC_DEBUG_2_pre_stage1_rts_d1_SHIFT)
+#define SC_DEBUG_2_GET_stage0_rts(sc_debug_2) \
+ ((sc_debug_2 & SC_DEBUG_2_stage0_rts_MASK) >> SC_DEBUG_2_stage0_rts_SHIFT)
+#define SC_DEBUG_2_GET_phase_rts_dly(sc_debug_2) \
+ ((sc_debug_2 & SC_DEBUG_2_phase_rts_dly_MASK) >> SC_DEBUG_2_phase_rts_dly_SHIFT)
+#define SC_DEBUG_2_GET_end_of_prim_s1_dly(sc_debug_2) \
+ ((sc_debug_2 & SC_DEBUG_2_end_of_prim_s1_dly_MASK) >> SC_DEBUG_2_end_of_prim_s1_dly_SHIFT)
+#define SC_DEBUG_2_GET_pass_empty_prim_s1(sc_debug_2) \
+ ((sc_debug_2 & SC_DEBUG_2_pass_empty_prim_s1_MASK) >> SC_DEBUG_2_pass_empty_prim_s1_SHIFT)
+#define SC_DEBUG_2_GET_event_id_s1(sc_debug_2) \
+ ((sc_debug_2 & SC_DEBUG_2_event_id_s1_MASK) >> SC_DEBUG_2_event_id_s1_SHIFT)
+#define SC_DEBUG_2_GET_event_s1(sc_debug_2) \
+ ((sc_debug_2 & SC_DEBUG_2_event_s1_MASK) >> SC_DEBUG_2_event_s1_SHIFT)
+#define SC_DEBUG_2_GET_trigger(sc_debug_2) \
+ ((sc_debug_2 & SC_DEBUG_2_trigger_MASK) >> SC_DEBUG_2_trigger_SHIFT)
+
+#define SC_DEBUG_2_SET_rc_rtr_dly(sc_debug_2_reg, rc_rtr_dly) \
+ sc_debug_2_reg = (sc_debug_2_reg & ~SC_DEBUG_2_rc_rtr_dly_MASK) | (rc_rtr_dly << SC_DEBUG_2_rc_rtr_dly_SHIFT)
+#define SC_DEBUG_2_SET_qmask_ff_alm_full_d1(sc_debug_2_reg, qmask_ff_alm_full_d1) \
+ sc_debug_2_reg = (sc_debug_2_reg & ~SC_DEBUG_2_qmask_ff_alm_full_d1_MASK) | (qmask_ff_alm_full_d1 << SC_DEBUG_2_qmask_ff_alm_full_d1_SHIFT)
+#define SC_DEBUG_2_SET_pipe_freeze_b(sc_debug_2_reg, pipe_freeze_b) \
+ sc_debug_2_reg = (sc_debug_2_reg & ~SC_DEBUG_2_pipe_freeze_b_MASK) | (pipe_freeze_b << SC_DEBUG_2_pipe_freeze_b_SHIFT)
+#define SC_DEBUG_2_SET_prim_rts(sc_debug_2_reg, prim_rts) \
+ sc_debug_2_reg = (sc_debug_2_reg & ~SC_DEBUG_2_prim_rts_MASK) | (prim_rts << SC_DEBUG_2_prim_rts_SHIFT)
+#define SC_DEBUG_2_SET_next_prim_rts_dly(sc_debug_2_reg, next_prim_rts_dly) \
+ sc_debug_2_reg = (sc_debug_2_reg & ~SC_DEBUG_2_next_prim_rts_dly_MASK) | (next_prim_rts_dly << SC_DEBUG_2_next_prim_rts_dly_SHIFT)
+#define SC_DEBUG_2_SET_next_prim_rtr_dly(sc_debug_2_reg, next_prim_rtr_dly) \
+ sc_debug_2_reg = (sc_debug_2_reg & ~SC_DEBUG_2_next_prim_rtr_dly_MASK) | (next_prim_rtr_dly << SC_DEBUG_2_next_prim_rtr_dly_SHIFT)
+#define SC_DEBUG_2_SET_pre_stage1_rts_d1(sc_debug_2_reg, pre_stage1_rts_d1) \
+ sc_debug_2_reg = (sc_debug_2_reg & ~SC_DEBUG_2_pre_stage1_rts_d1_MASK) | (pre_stage1_rts_d1 << SC_DEBUG_2_pre_stage1_rts_d1_SHIFT)
+#define SC_DEBUG_2_SET_stage0_rts(sc_debug_2_reg, stage0_rts) \
+ sc_debug_2_reg = (sc_debug_2_reg & ~SC_DEBUG_2_stage0_rts_MASK) | (stage0_rts << SC_DEBUG_2_stage0_rts_SHIFT)
+#define SC_DEBUG_2_SET_phase_rts_dly(sc_debug_2_reg, phase_rts_dly) \
+ sc_debug_2_reg = (sc_debug_2_reg & ~SC_DEBUG_2_phase_rts_dly_MASK) | (phase_rts_dly << SC_DEBUG_2_phase_rts_dly_SHIFT)
+#define SC_DEBUG_2_SET_end_of_prim_s1_dly(sc_debug_2_reg, end_of_prim_s1_dly) \
+ sc_debug_2_reg = (sc_debug_2_reg & ~SC_DEBUG_2_end_of_prim_s1_dly_MASK) | (end_of_prim_s1_dly << SC_DEBUG_2_end_of_prim_s1_dly_SHIFT)
+#define SC_DEBUG_2_SET_pass_empty_prim_s1(sc_debug_2_reg, pass_empty_prim_s1) \
+ sc_debug_2_reg = (sc_debug_2_reg & ~SC_DEBUG_2_pass_empty_prim_s1_MASK) | (pass_empty_prim_s1 << SC_DEBUG_2_pass_empty_prim_s1_SHIFT)
+#define SC_DEBUG_2_SET_event_id_s1(sc_debug_2_reg, event_id_s1) \
+ sc_debug_2_reg = (sc_debug_2_reg & ~SC_DEBUG_2_event_id_s1_MASK) | (event_id_s1 << SC_DEBUG_2_event_id_s1_SHIFT)
+#define SC_DEBUG_2_SET_event_s1(sc_debug_2_reg, event_s1) \
+ sc_debug_2_reg = (sc_debug_2_reg & ~SC_DEBUG_2_event_s1_MASK) | (event_s1 << SC_DEBUG_2_event_s1_SHIFT)
+#define SC_DEBUG_2_SET_trigger(sc_debug_2_reg, trigger) \
+ sc_debug_2_reg = (sc_debug_2_reg & ~SC_DEBUG_2_trigger_MASK) | (trigger << SC_DEBUG_2_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sc_debug_2_t {
+ unsigned int rc_rtr_dly : SC_DEBUG_2_rc_rtr_dly_SIZE;
+ unsigned int qmask_ff_alm_full_d1 : SC_DEBUG_2_qmask_ff_alm_full_d1_SIZE;
+ unsigned int : 1;
+ unsigned int pipe_freeze_b : SC_DEBUG_2_pipe_freeze_b_SIZE;
+ unsigned int prim_rts : SC_DEBUG_2_prim_rts_SIZE;
+ unsigned int next_prim_rts_dly : SC_DEBUG_2_next_prim_rts_dly_SIZE;
+ unsigned int next_prim_rtr_dly : SC_DEBUG_2_next_prim_rtr_dly_SIZE;
+ unsigned int pre_stage1_rts_d1 : SC_DEBUG_2_pre_stage1_rts_d1_SIZE;
+ unsigned int stage0_rts : SC_DEBUG_2_stage0_rts_SIZE;
+ unsigned int phase_rts_dly : SC_DEBUG_2_phase_rts_dly_SIZE;
+ unsigned int : 5;
+ unsigned int end_of_prim_s1_dly : SC_DEBUG_2_end_of_prim_s1_dly_SIZE;
+ unsigned int pass_empty_prim_s1 : SC_DEBUG_2_pass_empty_prim_s1_SIZE;
+ unsigned int event_id_s1 : SC_DEBUG_2_event_id_s1_SIZE;
+ unsigned int event_s1 : SC_DEBUG_2_event_s1_SIZE;
+ unsigned int : 8;
+ unsigned int trigger : SC_DEBUG_2_trigger_SIZE;
+ } sc_debug_2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sc_debug_2_t {
+ unsigned int trigger : SC_DEBUG_2_trigger_SIZE;
+ unsigned int : 8;
+ unsigned int event_s1 : SC_DEBUG_2_event_s1_SIZE;
+ unsigned int event_id_s1 : SC_DEBUG_2_event_id_s1_SIZE;
+ unsigned int pass_empty_prim_s1 : SC_DEBUG_2_pass_empty_prim_s1_SIZE;
+ unsigned int end_of_prim_s1_dly : SC_DEBUG_2_end_of_prim_s1_dly_SIZE;
+ unsigned int : 5;
+ unsigned int phase_rts_dly : SC_DEBUG_2_phase_rts_dly_SIZE;
+ unsigned int stage0_rts : SC_DEBUG_2_stage0_rts_SIZE;
+ unsigned int pre_stage1_rts_d1 : SC_DEBUG_2_pre_stage1_rts_d1_SIZE;
+ unsigned int next_prim_rtr_dly : SC_DEBUG_2_next_prim_rtr_dly_SIZE;
+ unsigned int next_prim_rts_dly : SC_DEBUG_2_next_prim_rts_dly_SIZE;
+ unsigned int prim_rts : SC_DEBUG_2_prim_rts_SIZE;
+ unsigned int pipe_freeze_b : SC_DEBUG_2_pipe_freeze_b_SIZE;
+ unsigned int : 1;
+ unsigned int qmask_ff_alm_full_d1 : SC_DEBUG_2_qmask_ff_alm_full_d1_SIZE;
+ unsigned int rc_rtr_dly : SC_DEBUG_2_rc_rtr_dly_SIZE;
+ } sc_debug_2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sc_debug_2_t f;
+} sc_debug_2_u;
+
+
+/*
+ * SC_DEBUG_3 struct
+ */
+
+#define SC_DEBUG_3_x_curr_s1_SIZE 11
+#define SC_DEBUG_3_y_curr_s1_SIZE 11
+#define SC_DEBUG_3_trigger_SIZE 1
+
+#define SC_DEBUG_3_x_curr_s1_SHIFT 0
+#define SC_DEBUG_3_y_curr_s1_SHIFT 11
+#define SC_DEBUG_3_trigger_SHIFT 31
+
+#define SC_DEBUG_3_x_curr_s1_MASK 0x000007ff
+#define SC_DEBUG_3_y_curr_s1_MASK 0x003ff800
+#define SC_DEBUG_3_trigger_MASK 0x80000000
+
+#define SC_DEBUG_3_MASK \
+ (SC_DEBUG_3_x_curr_s1_MASK | \
+ SC_DEBUG_3_y_curr_s1_MASK | \
+ SC_DEBUG_3_trigger_MASK)
+
+#define SC_DEBUG_3(x_curr_s1, y_curr_s1, trigger) \
+ ((x_curr_s1 << SC_DEBUG_3_x_curr_s1_SHIFT) | \
+ (y_curr_s1 << SC_DEBUG_3_y_curr_s1_SHIFT) | \
+ (trigger << SC_DEBUG_3_trigger_SHIFT))
+
+#define SC_DEBUG_3_GET_x_curr_s1(sc_debug_3) \
+ ((sc_debug_3 & SC_DEBUG_3_x_curr_s1_MASK) >> SC_DEBUG_3_x_curr_s1_SHIFT)
+#define SC_DEBUG_3_GET_y_curr_s1(sc_debug_3) \
+ ((sc_debug_3 & SC_DEBUG_3_y_curr_s1_MASK) >> SC_DEBUG_3_y_curr_s1_SHIFT)
+#define SC_DEBUG_3_GET_trigger(sc_debug_3) \
+ ((sc_debug_3 & SC_DEBUG_3_trigger_MASK) >> SC_DEBUG_3_trigger_SHIFT)
+
+#define SC_DEBUG_3_SET_x_curr_s1(sc_debug_3_reg, x_curr_s1) \
+ sc_debug_3_reg = (sc_debug_3_reg & ~SC_DEBUG_3_x_curr_s1_MASK) | (x_curr_s1 << SC_DEBUG_3_x_curr_s1_SHIFT)
+#define SC_DEBUG_3_SET_y_curr_s1(sc_debug_3_reg, y_curr_s1) \
+ sc_debug_3_reg = (sc_debug_3_reg & ~SC_DEBUG_3_y_curr_s1_MASK) | (y_curr_s1 << SC_DEBUG_3_y_curr_s1_SHIFT)
+#define SC_DEBUG_3_SET_trigger(sc_debug_3_reg, trigger) \
+ sc_debug_3_reg = (sc_debug_3_reg & ~SC_DEBUG_3_trigger_MASK) | (trigger << SC_DEBUG_3_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sc_debug_3_t {
+ unsigned int x_curr_s1 : SC_DEBUG_3_x_curr_s1_SIZE;
+ unsigned int y_curr_s1 : SC_DEBUG_3_y_curr_s1_SIZE;
+ unsigned int : 9;
+ unsigned int trigger : SC_DEBUG_3_trigger_SIZE;
+ } sc_debug_3_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sc_debug_3_t {
+ unsigned int trigger : SC_DEBUG_3_trigger_SIZE;
+ unsigned int : 9;
+ unsigned int y_curr_s1 : SC_DEBUG_3_y_curr_s1_SIZE;
+ unsigned int x_curr_s1 : SC_DEBUG_3_x_curr_s1_SIZE;
+ } sc_debug_3_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sc_debug_3_t f;
+} sc_debug_3_u;
+
+
+/*
+ * SC_DEBUG_4 struct
+ */
+
+#define SC_DEBUG_4_y_end_s1_SIZE 14
+#define SC_DEBUG_4_y_start_s1_SIZE 14
+#define SC_DEBUG_4_y_dir_s1_SIZE 1
+#define SC_DEBUG_4_trigger_SIZE 1
+
+#define SC_DEBUG_4_y_end_s1_SHIFT 0
+#define SC_DEBUG_4_y_start_s1_SHIFT 14
+#define SC_DEBUG_4_y_dir_s1_SHIFT 28
+#define SC_DEBUG_4_trigger_SHIFT 31
+
+#define SC_DEBUG_4_y_end_s1_MASK 0x00003fff
+#define SC_DEBUG_4_y_start_s1_MASK 0x0fffc000
+#define SC_DEBUG_4_y_dir_s1_MASK 0x10000000
+#define SC_DEBUG_4_trigger_MASK 0x80000000
+
+#define SC_DEBUG_4_MASK \
+ (SC_DEBUG_4_y_end_s1_MASK | \
+ SC_DEBUG_4_y_start_s1_MASK | \
+ SC_DEBUG_4_y_dir_s1_MASK | \
+ SC_DEBUG_4_trigger_MASK)
+
+#define SC_DEBUG_4(y_end_s1, y_start_s1, y_dir_s1, trigger) \
+ ((y_end_s1 << SC_DEBUG_4_y_end_s1_SHIFT) | \
+ (y_start_s1 << SC_DEBUG_4_y_start_s1_SHIFT) | \
+ (y_dir_s1 << SC_DEBUG_4_y_dir_s1_SHIFT) | \
+ (trigger << SC_DEBUG_4_trigger_SHIFT))
+
+#define SC_DEBUG_4_GET_y_end_s1(sc_debug_4) \
+ ((sc_debug_4 & SC_DEBUG_4_y_end_s1_MASK) >> SC_DEBUG_4_y_end_s1_SHIFT)
+#define SC_DEBUG_4_GET_y_start_s1(sc_debug_4) \
+ ((sc_debug_4 & SC_DEBUG_4_y_start_s1_MASK) >> SC_DEBUG_4_y_start_s1_SHIFT)
+#define SC_DEBUG_4_GET_y_dir_s1(sc_debug_4) \
+ ((sc_debug_4 & SC_DEBUG_4_y_dir_s1_MASK) >> SC_DEBUG_4_y_dir_s1_SHIFT)
+#define SC_DEBUG_4_GET_trigger(sc_debug_4) \
+ ((sc_debug_4 & SC_DEBUG_4_trigger_MASK) >> SC_DEBUG_4_trigger_SHIFT)
+
+#define SC_DEBUG_4_SET_y_end_s1(sc_debug_4_reg, y_end_s1) \
+ sc_debug_4_reg = (sc_debug_4_reg & ~SC_DEBUG_4_y_end_s1_MASK) | (y_end_s1 << SC_DEBUG_4_y_end_s1_SHIFT)
+#define SC_DEBUG_4_SET_y_start_s1(sc_debug_4_reg, y_start_s1) \
+ sc_debug_4_reg = (sc_debug_4_reg & ~SC_DEBUG_4_y_start_s1_MASK) | (y_start_s1 << SC_DEBUG_4_y_start_s1_SHIFT)
+#define SC_DEBUG_4_SET_y_dir_s1(sc_debug_4_reg, y_dir_s1) \
+ sc_debug_4_reg = (sc_debug_4_reg & ~SC_DEBUG_4_y_dir_s1_MASK) | (y_dir_s1 << SC_DEBUG_4_y_dir_s1_SHIFT)
+#define SC_DEBUG_4_SET_trigger(sc_debug_4_reg, trigger) \
+ sc_debug_4_reg = (sc_debug_4_reg & ~SC_DEBUG_4_trigger_MASK) | (trigger << SC_DEBUG_4_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sc_debug_4_t {
+ unsigned int y_end_s1 : SC_DEBUG_4_y_end_s1_SIZE;
+ unsigned int y_start_s1 : SC_DEBUG_4_y_start_s1_SIZE;
+ unsigned int y_dir_s1 : SC_DEBUG_4_y_dir_s1_SIZE;
+ unsigned int : 2;
+ unsigned int trigger : SC_DEBUG_4_trigger_SIZE;
+ } sc_debug_4_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sc_debug_4_t {
+ unsigned int trigger : SC_DEBUG_4_trigger_SIZE;
+ unsigned int : 2;
+ unsigned int y_dir_s1 : SC_DEBUG_4_y_dir_s1_SIZE;
+ unsigned int y_start_s1 : SC_DEBUG_4_y_start_s1_SIZE;
+ unsigned int y_end_s1 : SC_DEBUG_4_y_end_s1_SIZE;
+ } sc_debug_4_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sc_debug_4_t f;
+} sc_debug_4_u;
+
+
+/*
+ * SC_DEBUG_5 struct
+ */
+
+#define SC_DEBUG_5_x_end_s1_SIZE 14
+#define SC_DEBUG_5_x_start_s1_SIZE 14
+#define SC_DEBUG_5_x_dir_s1_SIZE 1
+#define SC_DEBUG_5_trigger_SIZE 1
+
+#define SC_DEBUG_5_x_end_s1_SHIFT 0
+#define SC_DEBUG_5_x_start_s1_SHIFT 14
+#define SC_DEBUG_5_x_dir_s1_SHIFT 28
+#define SC_DEBUG_5_trigger_SHIFT 31
+
+#define SC_DEBUG_5_x_end_s1_MASK 0x00003fff
+#define SC_DEBUG_5_x_start_s1_MASK 0x0fffc000
+#define SC_DEBUG_5_x_dir_s1_MASK 0x10000000
+#define SC_DEBUG_5_trigger_MASK 0x80000000
+
+#define SC_DEBUG_5_MASK \
+ (SC_DEBUG_5_x_end_s1_MASK | \
+ SC_DEBUG_5_x_start_s1_MASK | \
+ SC_DEBUG_5_x_dir_s1_MASK | \
+ SC_DEBUG_5_trigger_MASK)
+
+#define SC_DEBUG_5(x_end_s1, x_start_s1, x_dir_s1, trigger) \
+ ((x_end_s1 << SC_DEBUG_5_x_end_s1_SHIFT) | \
+ (x_start_s1 << SC_DEBUG_5_x_start_s1_SHIFT) | \
+ (x_dir_s1 << SC_DEBUG_5_x_dir_s1_SHIFT) | \
+ (trigger << SC_DEBUG_5_trigger_SHIFT))
+
+#define SC_DEBUG_5_GET_x_end_s1(sc_debug_5) \
+ ((sc_debug_5 & SC_DEBUG_5_x_end_s1_MASK) >> SC_DEBUG_5_x_end_s1_SHIFT)
+#define SC_DEBUG_5_GET_x_start_s1(sc_debug_5) \
+ ((sc_debug_5 & SC_DEBUG_5_x_start_s1_MASK) >> SC_DEBUG_5_x_start_s1_SHIFT)
+#define SC_DEBUG_5_GET_x_dir_s1(sc_debug_5) \
+ ((sc_debug_5 & SC_DEBUG_5_x_dir_s1_MASK) >> SC_DEBUG_5_x_dir_s1_SHIFT)
+#define SC_DEBUG_5_GET_trigger(sc_debug_5) \
+ ((sc_debug_5 & SC_DEBUG_5_trigger_MASK) >> SC_DEBUG_5_trigger_SHIFT)
+
+#define SC_DEBUG_5_SET_x_end_s1(sc_debug_5_reg, x_end_s1) \
+ sc_debug_5_reg = (sc_debug_5_reg & ~SC_DEBUG_5_x_end_s1_MASK) | (x_end_s1 << SC_DEBUG_5_x_end_s1_SHIFT)
+#define SC_DEBUG_5_SET_x_start_s1(sc_debug_5_reg, x_start_s1) \
+ sc_debug_5_reg = (sc_debug_5_reg & ~SC_DEBUG_5_x_start_s1_MASK) | (x_start_s1 << SC_DEBUG_5_x_start_s1_SHIFT)
+#define SC_DEBUG_5_SET_x_dir_s1(sc_debug_5_reg, x_dir_s1) \
+ sc_debug_5_reg = (sc_debug_5_reg & ~SC_DEBUG_5_x_dir_s1_MASK) | (x_dir_s1 << SC_DEBUG_5_x_dir_s1_SHIFT)
+#define SC_DEBUG_5_SET_trigger(sc_debug_5_reg, trigger) \
+ sc_debug_5_reg = (sc_debug_5_reg & ~SC_DEBUG_5_trigger_MASK) | (trigger << SC_DEBUG_5_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sc_debug_5_t {
+ unsigned int x_end_s1 : SC_DEBUG_5_x_end_s1_SIZE;
+ unsigned int x_start_s1 : SC_DEBUG_5_x_start_s1_SIZE;
+ unsigned int x_dir_s1 : SC_DEBUG_5_x_dir_s1_SIZE;
+ unsigned int : 2;
+ unsigned int trigger : SC_DEBUG_5_trigger_SIZE;
+ } sc_debug_5_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sc_debug_5_t {
+ unsigned int trigger : SC_DEBUG_5_trigger_SIZE;
+ unsigned int : 2;
+ unsigned int x_dir_s1 : SC_DEBUG_5_x_dir_s1_SIZE;
+ unsigned int x_start_s1 : SC_DEBUG_5_x_start_s1_SIZE;
+ unsigned int x_end_s1 : SC_DEBUG_5_x_end_s1_SIZE;
+ } sc_debug_5_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sc_debug_5_t f;
+} sc_debug_5_u;
+
+
+/*
+ * SC_DEBUG_6 struct
+ */
+
+#define SC_DEBUG_6_z_ff_empty_SIZE 1
+#define SC_DEBUG_6_qmcntl_ff_empty_SIZE 1
+#define SC_DEBUG_6_xy_ff_empty_SIZE 1
+#define SC_DEBUG_6_event_flag_SIZE 1
+#define SC_DEBUG_6_z_mask_needed_SIZE 1
+#define SC_DEBUG_6_state_SIZE 3
+#define SC_DEBUG_6_state_delayed_SIZE 3
+#define SC_DEBUG_6_data_valid_SIZE 1
+#define SC_DEBUG_6_data_valid_d_SIZE 1
+#define SC_DEBUG_6_tilex_delayed_SIZE 9
+#define SC_DEBUG_6_tiley_delayed_SIZE 9
+#define SC_DEBUG_6_trigger_SIZE 1
+
+#define SC_DEBUG_6_z_ff_empty_SHIFT 0
+#define SC_DEBUG_6_qmcntl_ff_empty_SHIFT 1
+#define SC_DEBUG_6_xy_ff_empty_SHIFT 2
+#define SC_DEBUG_6_event_flag_SHIFT 3
+#define SC_DEBUG_6_z_mask_needed_SHIFT 4
+#define SC_DEBUG_6_state_SHIFT 5
+#define SC_DEBUG_6_state_delayed_SHIFT 8
+#define SC_DEBUG_6_data_valid_SHIFT 11
+#define SC_DEBUG_6_data_valid_d_SHIFT 12
+#define SC_DEBUG_6_tilex_delayed_SHIFT 13
+#define SC_DEBUG_6_tiley_delayed_SHIFT 22
+#define SC_DEBUG_6_trigger_SHIFT 31
+
+#define SC_DEBUG_6_z_ff_empty_MASK 0x00000001
+#define SC_DEBUG_6_qmcntl_ff_empty_MASK 0x00000002
+#define SC_DEBUG_6_xy_ff_empty_MASK 0x00000004
+#define SC_DEBUG_6_event_flag_MASK 0x00000008
+#define SC_DEBUG_6_z_mask_needed_MASK 0x00000010
+#define SC_DEBUG_6_state_MASK 0x000000e0
+#define SC_DEBUG_6_state_delayed_MASK 0x00000700
+#define SC_DEBUG_6_data_valid_MASK 0x00000800
+#define SC_DEBUG_6_data_valid_d_MASK 0x00001000
+#define SC_DEBUG_6_tilex_delayed_MASK 0x003fe000
+#define SC_DEBUG_6_tiley_delayed_MASK 0x7fc00000
+#define SC_DEBUG_6_trigger_MASK 0x80000000
+
+#define SC_DEBUG_6_MASK \
+ (SC_DEBUG_6_z_ff_empty_MASK | \
+ SC_DEBUG_6_qmcntl_ff_empty_MASK | \
+ SC_DEBUG_6_xy_ff_empty_MASK | \
+ SC_DEBUG_6_event_flag_MASK | \
+ SC_DEBUG_6_z_mask_needed_MASK | \
+ SC_DEBUG_6_state_MASK | \
+ SC_DEBUG_6_state_delayed_MASK | \
+ SC_DEBUG_6_data_valid_MASK | \
+ SC_DEBUG_6_data_valid_d_MASK | \
+ SC_DEBUG_6_tilex_delayed_MASK | \
+ SC_DEBUG_6_tiley_delayed_MASK | \
+ SC_DEBUG_6_trigger_MASK)
+
+#define SC_DEBUG_6(z_ff_empty, qmcntl_ff_empty, xy_ff_empty, event_flag, z_mask_needed, state, state_delayed, data_valid, data_valid_d, tilex_delayed, tiley_delayed, trigger) \
+ ((z_ff_empty << SC_DEBUG_6_z_ff_empty_SHIFT) | \
+ (qmcntl_ff_empty << SC_DEBUG_6_qmcntl_ff_empty_SHIFT) | \
+ (xy_ff_empty << SC_DEBUG_6_xy_ff_empty_SHIFT) | \
+ (event_flag << SC_DEBUG_6_event_flag_SHIFT) | \
+ (z_mask_needed << SC_DEBUG_6_z_mask_needed_SHIFT) | \
+ (state << SC_DEBUG_6_state_SHIFT) | \
+ (state_delayed << SC_DEBUG_6_state_delayed_SHIFT) | \
+ (data_valid << SC_DEBUG_6_data_valid_SHIFT) | \
+ (data_valid_d << SC_DEBUG_6_data_valid_d_SHIFT) | \
+ (tilex_delayed << SC_DEBUG_6_tilex_delayed_SHIFT) | \
+ (tiley_delayed << SC_DEBUG_6_tiley_delayed_SHIFT) | \
+ (trigger << SC_DEBUG_6_trigger_SHIFT))
+
+#define SC_DEBUG_6_GET_z_ff_empty(sc_debug_6) \
+ ((sc_debug_6 & SC_DEBUG_6_z_ff_empty_MASK) >> SC_DEBUG_6_z_ff_empty_SHIFT)
+#define SC_DEBUG_6_GET_qmcntl_ff_empty(sc_debug_6) \
+ ((sc_debug_6 & SC_DEBUG_6_qmcntl_ff_empty_MASK) >> SC_DEBUG_6_qmcntl_ff_empty_SHIFT)
+#define SC_DEBUG_6_GET_xy_ff_empty(sc_debug_6) \
+ ((sc_debug_6 & SC_DEBUG_6_xy_ff_empty_MASK) >> SC_DEBUG_6_xy_ff_empty_SHIFT)
+#define SC_DEBUG_6_GET_event_flag(sc_debug_6) \
+ ((sc_debug_6 & SC_DEBUG_6_event_flag_MASK) >> SC_DEBUG_6_event_flag_SHIFT)
+#define SC_DEBUG_6_GET_z_mask_needed(sc_debug_6) \
+ ((sc_debug_6 & SC_DEBUG_6_z_mask_needed_MASK) >> SC_DEBUG_6_z_mask_needed_SHIFT)
+#define SC_DEBUG_6_GET_state(sc_debug_6) \
+ ((sc_debug_6 & SC_DEBUG_6_state_MASK) >> SC_DEBUG_6_state_SHIFT)
+#define SC_DEBUG_6_GET_state_delayed(sc_debug_6) \
+ ((sc_debug_6 & SC_DEBUG_6_state_delayed_MASK) >> SC_DEBUG_6_state_delayed_SHIFT)
+#define SC_DEBUG_6_GET_data_valid(sc_debug_6) \
+ ((sc_debug_6 & SC_DEBUG_6_data_valid_MASK) >> SC_DEBUG_6_data_valid_SHIFT)
+#define SC_DEBUG_6_GET_data_valid_d(sc_debug_6) \
+ ((sc_debug_6 & SC_DEBUG_6_data_valid_d_MASK) >> SC_DEBUG_6_data_valid_d_SHIFT)
+#define SC_DEBUG_6_GET_tilex_delayed(sc_debug_6) \
+ ((sc_debug_6 & SC_DEBUG_6_tilex_delayed_MASK) >> SC_DEBUG_6_tilex_delayed_SHIFT)
+#define SC_DEBUG_6_GET_tiley_delayed(sc_debug_6) \
+ ((sc_debug_6 & SC_DEBUG_6_tiley_delayed_MASK) >> SC_DEBUG_6_tiley_delayed_SHIFT)
+#define SC_DEBUG_6_GET_trigger(sc_debug_6) \
+ ((sc_debug_6 & SC_DEBUG_6_trigger_MASK) >> SC_DEBUG_6_trigger_SHIFT)
+
+#define SC_DEBUG_6_SET_z_ff_empty(sc_debug_6_reg, z_ff_empty) \
+ sc_debug_6_reg = (sc_debug_6_reg & ~SC_DEBUG_6_z_ff_empty_MASK) | (z_ff_empty << SC_DEBUG_6_z_ff_empty_SHIFT)
+#define SC_DEBUG_6_SET_qmcntl_ff_empty(sc_debug_6_reg, qmcntl_ff_empty) \
+ sc_debug_6_reg = (sc_debug_6_reg & ~SC_DEBUG_6_qmcntl_ff_empty_MASK) | (qmcntl_ff_empty << SC_DEBUG_6_qmcntl_ff_empty_SHIFT)
+#define SC_DEBUG_6_SET_xy_ff_empty(sc_debug_6_reg, xy_ff_empty) \
+ sc_debug_6_reg = (sc_debug_6_reg & ~SC_DEBUG_6_xy_ff_empty_MASK) | (xy_ff_empty << SC_DEBUG_6_xy_ff_empty_SHIFT)
+#define SC_DEBUG_6_SET_event_flag(sc_debug_6_reg, event_flag) \
+ sc_debug_6_reg = (sc_debug_6_reg & ~SC_DEBUG_6_event_flag_MASK) | (event_flag << SC_DEBUG_6_event_flag_SHIFT)
+#define SC_DEBUG_6_SET_z_mask_needed(sc_debug_6_reg, z_mask_needed) \
+ sc_debug_6_reg = (sc_debug_6_reg & ~SC_DEBUG_6_z_mask_needed_MASK) | (z_mask_needed << SC_DEBUG_6_z_mask_needed_SHIFT)
+#define SC_DEBUG_6_SET_state(sc_debug_6_reg, state) \
+ sc_debug_6_reg = (sc_debug_6_reg & ~SC_DEBUG_6_state_MASK) | (state << SC_DEBUG_6_state_SHIFT)
+#define SC_DEBUG_6_SET_state_delayed(sc_debug_6_reg, state_delayed) \
+ sc_debug_6_reg = (sc_debug_6_reg & ~SC_DEBUG_6_state_delayed_MASK) | (state_delayed << SC_DEBUG_6_state_delayed_SHIFT)
+#define SC_DEBUG_6_SET_data_valid(sc_debug_6_reg, data_valid) \
+ sc_debug_6_reg = (sc_debug_6_reg & ~SC_DEBUG_6_data_valid_MASK) | (data_valid << SC_DEBUG_6_data_valid_SHIFT)
+#define SC_DEBUG_6_SET_data_valid_d(sc_debug_6_reg, data_valid_d) \
+ sc_debug_6_reg = (sc_debug_6_reg & ~SC_DEBUG_6_data_valid_d_MASK) | (data_valid_d << SC_DEBUG_6_data_valid_d_SHIFT)
+#define SC_DEBUG_6_SET_tilex_delayed(sc_debug_6_reg, tilex_delayed) \
+ sc_debug_6_reg = (sc_debug_6_reg & ~SC_DEBUG_6_tilex_delayed_MASK) | (tilex_delayed << SC_DEBUG_6_tilex_delayed_SHIFT)
+#define SC_DEBUG_6_SET_tiley_delayed(sc_debug_6_reg, tiley_delayed) \
+ sc_debug_6_reg = (sc_debug_6_reg & ~SC_DEBUG_6_tiley_delayed_MASK) | (tiley_delayed << SC_DEBUG_6_tiley_delayed_SHIFT)
+#define SC_DEBUG_6_SET_trigger(sc_debug_6_reg, trigger) \
+ sc_debug_6_reg = (sc_debug_6_reg & ~SC_DEBUG_6_trigger_MASK) | (trigger << SC_DEBUG_6_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sc_debug_6_t {
+ unsigned int z_ff_empty : SC_DEBUG_6_z_ff_empty_SIZE;
+ unsigned int qmcntl_ff_empty : SC_DEBUG_6_qmcntl_ff_empty_SIZE;
+ unsigned int xy_ff_empty : SC_DEBUG_6_xy_ff_empty_SIZE;
+ unsigned int event_flag : SC_DEBUG_6_event_flag_SIZE;
+ unsigned int z_mask_needed : SC_DEBUG_6_z_mask_needed_SIZE;
+ unsigned int state : SC_DEBUG_6_state_SIZE;
+ unsigned int state_delayed : SC_DEBUG_6_state_delayed_SIZE;
+ unsigned int data_valid : SC_DEBUG_6_data_valid_SIZE;
+ unsigned int data_valid_d : SC_DEBUG_6_data_valid_d_SIZE;
+ unsigned int tilex_delayed : SC_DEBUG_6_tilex_delayed_SIZE;
+ unsigned int tiley_delayed : SC_DEBUG_6_tiley_delayed_SIZE;
+ unsigned int trigger : SC_DEBUG_6_trigger_SIZE;
+ } sc_debug_6_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sc_debug_6_t {
+ unsigned int trigger : SC_DEBUG_6_trigger_SIZE;
+ unsigned int tiley_delayed : SC_DEBUG_6_tiley_delayed_SIZE;
+ unsigned int tilex_delayed : SC_DEBUG_6_tilex_delayed_SIZE;
+ unsigned int data_valid_d : SC_DEBUG_6_data_valid_d_SIZE;
+ unsigned int data_valid : SC_DEBUG_6_data_valid_SIZE;
+ unsigned int state_delayed : SC_DEBUG_6_state_delayed_SIZE;
+ unsigned int state : SC_DEBUG_6_state_SIZE;
+ unsigned int z_mask_needed : SC_DEBUG_6_z_mask_needed_SIZE;
+ unsigned int event_flag : SC_DEBUG_6_event_flag_SIZE;
+ unsigned int xy_ff_empty : SC_DEBUG_6_xy_ff_empty_SIZE;
+ unsigned int qmcntl_ff_empty : SC_DEBUG_6_qmcntl_ff_empty_SIZE;
+ unsigned int z_ff_empty : SC_DEBUG_6_z_ff_empty_SIZE;
+ } sc_debug_6_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sc_debug_6_t f;
+} sc_debug_6_u;
+
+
+/*
+ * SC_DEBUG_7 struct
+ */
+
+#define SC_DEBUG_7_event_flag_SIZE 1
+#define SC_DEBUG_7_deallocate_SIZE 3
+#define SC_DEBUG_7_fpos_SIZE 1
+#define SC_DEBUG_7_sr_prim_we_SIZE 1
+#define SC_DEBUG_7_last_tile_SIZE 1
+#define SC_DEBUG_7_tile_ff_we_SIZE 1
+#define SC_DEBUG_7_qs_data_valid_SIZE 1
+#define SC_DEBUG_7_qs_q0_y_SIZE 2
+#define SC_DEBUG_7_qs_q0_x_SIZE 2
+#define SC_DEBUG_7_qs_q0_valid_SIZE 1
+#define SC_DEBUG_7_prim_ff_we_SIZE 1
+#define SC_DEBUG_7_tile_ff_re_SIZE 1
+#define SC_DEBUG_7_fw_prim_data_valid_SIZE 1
+#define SC_DEBUG_7_last_quad_of_tile_SIZE 1
+#define SC_DEBUG_7_first_quad_of_tile_SIZE 1
+#define SC_DEBUG_7_first_quad_of_prim_SIZE 1
+#define SC_DEBUG_7_new_prim_SIZE 1
+#define SC_DEBUG_7_load_new_tile_data_SIZE 1
+#define SC_DEBUG_7_state_SIZE 2
+#define SC_DEBUG_7_fifos_ready_SIZE 1
+#define SC_DEBUG_7_trigger_SIZE 1
+
+#define SC_DEBUG_7_event_flag_SHIFT 0
+#define SC_DEBUG_7_deallocate_SHIFT 1
+#define SC_DEBUG_7_fpos_SHIFT 4
+#define SC_DEBUG_7_sr_prim_we_SHIFT 5
+#define SC_DEBUG_7_last_tile_SHIFT 6
+#define SC_DEBUG_7_tile_ff_we_SHIFT 7
+#define SC_DEBUG_7_qs_data_valid_SHIFT 8
+#define SC_DEBUG_7_qs_q0_y_SHIFT 9
+#define SC_DEBUG_7_qs_q0_x_SHIFT 11
+#define SC_DEBUG_7_qs_q0_valid_SHIFT 13
+#define SC_DEBUG_7_prim_ff_we_SHIFT 14
+#define SC_DEBUG_7_tile_ff_re_SHIFT 15
+#define SC_DEBUG_7_fw_prim_data_valid_SHIFT 16
+#define SC_DEBUG_7_last_quad_of_tile_SHIFT 17
+#define SC_DEBUG_7_first_quad_of_tile_SHIFT 18
+#define SC_DEBUG_7_first_quad_of_prim_SHIFT 19
+#define SC_DEBUG_7_new_prim_SHIFT 20
+#define SC_DEBUG_7_load_new_tile_data_SHIFT 21
+#define SC_DEBUG_7_state_SHIFT 22
+#define SC_DEBUG_7_fifos_ready_SHIFT 24
+#define SC_DEBUG_7_trigger_SHIFT 31
+
+#define SC_DEBUG_7_event_flag_MASK 0x00000001
+#define SC_DEBUG_7_deallocate_MASK 0x0000000e
+#define SC_DEBUG_7_fpos_MASK 0x00000010
+#define SC_DEBUG_7_sr_prim_we_MASK 0x00000020
+#define SC_DEBUG_7_last_tile_MASK 0x00000040
+#define SC_DEBUG_7_tile_ff_we_MASK 0x00000080
+#define SC_DEBUG_7_qs_data_valid_MASK 0x00000100
+#define SC_DEBUG_7_qs_q0_y_MASK 0x00000600
+#define SC_DEBUG_7_qs_q0_x_MASK 0x00001800
+#define SC_DEBUG_7_qs_q0_valid_MASK 0x00002000
+#define SC_DEBUG_7_prim_ff_we_MASK 0x00004000
+#define SC_DEBUG_7_tile_ff_re_MASK 0x00008000
+#define SC_DEBUG_7_fw_prim_data_valid_MASK 0x00010000
+#define SC_DEBUG_7_last_quad_of_tile_MASK 0x00020000
+#define SC_DEBUG_7_first_quad_of_tile_MASK 0x00040000
+#define SC_DEBUG_7_first_quad_of_prim_MASK 0x00080000
+#define SC_DEBUG_7_new_prim_MASK 0x00100000
+#define SC_DEBUG_7_load_new_tile_data_MASK 0x00200000
+#define SC_DEBUG_7_state_MASK 0x00c00000
+#define SC_DEBUG_7_fifos_ready_MASK 0x01000000
+#define SC_DEBUG_7_trigger_MASK 0x80000000
+
+#define SC_DEBUG_7_MASK \
+ (SC_DEBUG_7_event_flag_MASK | \
+ SC_DEBUG_7_deallocate_MASK | \
+ SC_DEBUG_7_fpos_MASK | \
+ SC_DEBUG_7_sr_prim_we_MASK | \
+ SC_DEBUG_7_last_tile_MASK | \
+ SC_DEBUG_7_tile_ff_we_MASK | \
+ SC_DEBUG_7_qs_data_valid_MASK | \
+ SC_DEBUG_7_qs_q0_y_MASK | \
+ SC_DEBUG_7_qs_q0_x_MASK | \
+ SC_DEBUG_7_qs_q0_valid_MASK | \
+ SC_DEBUG_7_prim_ff_we_MASK | \
+ SC_DEBUG_7_tile_ff_re_MASK | \
+ SC_DEBUG_7_fw_prim_data_valid_MASK | \
+ SC_DEBUG_7_last_quad_of_tile_MASK | \
+ SC_DEBUG_7_first_quad_of_tile_MASK | \
+ SC_DEBUG_7_first_quad_of_prim_MASK | \
+ SC_DEBUG_7_new_prim_MASK | \
+ SC_DEBUG_7_load_new_tile_data_MASK | \
+ SC_DEBUG_7_state_MASK | \
+ SC_DEBUG_7_fifos_ready_MASK | \
+ SC_DEBUG_7_trigger_MASK)
+
+#define SC_DEBUG_7(event_flag, deallocate, fpos, sr_prim_we, last_tile, tile_ff_we, qs_data_valid, qs_q0_y, qs_q0_x, qs_q0_valid, prim_ff_we, tile_ff_re, fw_prim_data_valid, last_quad_of_tile, first_quad_of_tile, first_quad_of_prim, new_prim, load_new_tile_data, state, fifos_ready, trigger) \
+ ((event_flag << SC_DEBUG_7_event_flag_SHIFT) | \
+ (deallocate << SC_DEBUG_7_deallocate_SHIFT) | \
+ (fpos << SC_DEBUG_7_fpos_SHIFT) | \
+ (sr_prim_we << SC_DEBUG_7_sr_prim_we_SHIFT) | \
+ (last_tile << SC_DEBUG_7_last_tile_SHIFT) | \
+ (tile_ff_we << SC_DEBUG_7_tile_ff_we_SHIFT) | \
+ (qs_data_valid << SC_DEBUG_7_qs_data_valid_SHIFT) | \
+ (qs_q0_y << SC_DEBUG_7_qs_q0_y_SHIFT) | \
+ (qs_q0_x << SC_DEBUG_7_qs_q0_x_SHIFT) | \
+ (qs_q0_valid << SC_DEBUG_7_qs_q0_valid_SHIFT) | \
+ (prim_ff_we << SC_DEBUG_7_prim_ff_we_SHIFT) | \
+ (tile_ff_re << SC_DEBUG_7_tile_ff_re_SHIFT) | \
+ (fw_prim_data_valid << SC_DEBUG_7_fw_prim_data_valid_SHIFT) | \
+ (last_quad_of_tile << SC_DEBUG_7_last_quad_of_tile_SHIFT) | \
+ (first_quad_of_tile << SC_DEBUG_7_first_quad_of_tile_SHIFT) | \
+ (first_quad_of_prim << SC_DEBUG_7_first_quad_of_prim_SHIFT) | \
+ (new_prim << SC_DEBUG_7_new_prim_SHIFT) | \
+ (load_new_tile_data << SC_DEBUG_7_load_new_tile_data_SHIFT) | \
+ (state << SC_DEBUG_7_state_SHIFT) | \
+ (fifos_ready << SC_DEBUG_7_fifos_ready_SHIFT) | \
+ (trigger << SC_DEBUG_7_trigger_SHIFT))
+
+#define SC_DEBUG_7_GET_event_flag(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_event_flag_MASK) >> SC_DEBUG_7_event_flag_SHIFT)
+#define SC_DEBUG_7_GET_deallocate(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_deallocate_MASK) >> SC_DEBUG_7_deallocate_SHIFT)
+#define SC_DEBUG_7_GET_fpos(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_fpos_MASK) >> SC_DEBUG_7_fpos_SHIFT)
+#define SC_DEBUG_7_GET_sr_prim_we(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_sr_prim_we_MASK) >> SC_DEBUG_7_sr_prim_we_SHIFT)
+#define SC_DEBUG_7_GET_last_tile(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_last_tile_MASK) >> SC_DEBUG_7_last_tile_SHIFT)
+#define SC_DEBUG_7_GET_tile_ff_we(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_tile_ff_we_MASK) >> SC_DEBUG_7_tile_ff_we_SHIFT)
+#define SC_DEBUG_7_GET_qs_data_valid(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_qs_data_valid_MASK) >> SC_DEBUG_7_qs_data_valid_SHIFT)
+#define SC_DEBUG_7_GET_qs_q0_y(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_qs_q0_y_MASK) >> SC_DEBUG_7_qs_q0_y_SHIFT)
+#define SC_DEBUG_7_GET_qs_q0_x(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_qs_q0_x_MASK) >> SC_DEBUG_7_qs_q0_x_SHIFT)
+#define SC_DEBUG_7_GET_qs_q0_valid(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_qs_q0_valid_MASK) >> SC_DEBUG_7_qs_q0_valid_SHIFT)
+#define SC_DEBUG_7_GET_prim_ff_we(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_prim_ff_we_MASK) >> SC_DEBUG_7_prim_ff_we_SHIFT)
+#define SC_DEBUG_7_GET_tile_ff_re(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_tile_ff_re_MASK) >> SC_DEBUG_7_tile_ff_re_SHIFT)
+#define SC_DEBUG_7_GET_fw_prim_data_valid(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_fw_prim_data_valid_MASK) >> SC_DEBUG_7_fw_prim_data_valid_SHIFT)
+#define SC_DEBUG_7_GET_last_quad_of_tile(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_last_quad_of_tile_MASK) >> SC_DEBUG_7_last_quad_of_tile_SHIFT)
+#define SC_DEBUG_7_GET_first_quad_of_tile(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_first_quad_of_tile_MASK) >> SC_DEBUG_7_first_quad_of_tile_SHIFT)
+#define SC_DEBUG_7_GET_first_quad_of_prim(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_first_quad_of_prim_MASK) >> SC_DEBUG_7_first_quad_of_prim_SHIFT)
+#define SC_DEBUG_7_GET_new_prim(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_new_prim_MASK) >> SC_DEBUG_7_new_prim_SHIFT)
+#define SC_DEBUG_7_GET_load_new_tile_data(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_load_new_tile_data_MASK) >> SC_DEBUG_7_load_new_tile_data_SHIFT)
+#define SC_DEBUG_7_GET_state(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_state_MASK) >> SC_DEBUG_7_state_SHIFT)
+#define SC_DEBUG_7_GET_fifos_ready(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_fifos_ready_MASK) >> SC_DEBUG_7_fifos_ready_SHIFT)
+#define SC_DEBUG_7_GET_trigger(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_trigger_MASK) >> SC_DEBUG_7_trigger_SHIFT)
+
+#define SC_DEBUG_7_SET_event_flag(sc_debug_7_reg, event_flag) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_event_flag_MASK) | (event_flag << SC_DEBUG_7_event_flag_SHIFT)
+#define SC_DEBUG_7_SET_deallocate(sc_debug_7_reg, deallocate) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_deallocate_MASK) | (deallocate << SC_DEBUG_7_deallocate_SHIFT)
+#define SC_DEBUG_7_SET_fpos(sc_debug_7_reg, fpos) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_fpos_MASK) | (fpos << SC_DEBUG_7_fpos_SHIFT)
+#define SC_DEBUG_7_SET_sr_prim_we(sc_debug_7_reg, sr_prim_we) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_sr_prim_we_MASK) | (sr_prim_we << SC_DEBUG_7_sr_prim_we_SHIFT)
+#define SC_DEBUG_7_SET_last_tile(sc_debug_7_reg, last_tile) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_last_tile_MASK) | (last_tile << SC_DEBUG_7_last_tile_SHIFT)
+#define SC_DEBUG_7_SET_tile_ff_we(sc_debug_7_reg, tile_ff_we) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_tile_ff_we_MASK) | (tile_ff_we << SC_DEBUG_7_tile_ff_we_SHIFT)
+#define SC_DEBUG_7_SET_qs_data_valid(sc_debug_7_reg, qs_data_valid) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_qs_data_valid_MASK) | (qs_data_valid << SC_DEBUG_7_qs_data_valid_SHIFT)
+#define SC_DEBUG_7_SET_qs_q0_y(sc_debug_7_reg, qs_q0_y) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_qs_q0_y_MASK) | (qs_q0_y << SC_DEBUG_7_qs_q0_y_SHIFT)
+#define SC_DEBUG_7_SET_qs_q0_x(sc_debug_7_reg, qs_q0_x) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_qs_q0_x_MASK) | (qs_q0_x << SC_DEBUG_7_qs_q0_x_SHIFT)
+#define SC_DEBUG_7_SET_qs_q0_valid(sc_debug_7_reg, qs_q0_valid) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_qs_q0_valid_MASK) | (qs_q0_valid << SC_DEBUG_7_qs_q0_valid_SHIFT)
+#define SC_DEBUG_7_SET_prim_ff_we(sc_debug_7_reg, prim_ff_we) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_prim_ff_we_MASK) | (prim_ff_we << SC_DEBUG_7_prim_ff_we_SHIFT)
+#define SC_DEBUG_7_SET_tile_ff_re(sc_debug_7_reg, tile_ff_re) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_tile_ff_re_MASK) | (tile_ff_re << SC_DEBUG_7_tile_ff_re_SHIFT)
+#define SC_DEBUG_7_SET_fw_prim_data_valid(sc_debug_7_reg, fw_prim_data_valid) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_fw_prim_data_valid_MASK) | (fw_prim_data_valid << SC_DEBUG_7_fw_prim_data_valid_SHIFT)
+#define SC_DEBUG_7_SET_last_quad_of_tile(sc_debug_7_reg, last_quad_of_tile) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_last_quad_of_tile_MASK) | (last_quad_of_tile << SC_DEBUG_7_last_quad_of_tile_SHIFT)
+#define SC_DEBUG_7_SET_first_quad_of_tile(sc_debug_7_reg, first_quad_of_tile) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_first_quad_of_tile_MASK) | (first_quad_of_tile << SC_DEBUG_7_first_quad_of_tile_SHIFT)
+#define SC_DEBUG_7_SET_first_quad_of_prim(sc_debug_7_reg, first_quad_of_prim) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_first_quad_of_prim_MASK) | (first_quad_of_prim << SC_DEBUG_7_first_quad_of_prim_SHIFT)
+#define SC_DEBUG_7_SET_new_prim(sc_debug_7_reg, new_prim) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_new_prim_MASK) | (new_prim << SC_DEBUG_7_new_prim_SHIFT)
+#define SC_DEBUG_7_SET_load_new_tile_data(sc_debug_7_reg, load_new_tile_data) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_load_new_tile_data_MASK) | (load_new_tile_data << SC_DEBUG_7_load_new_tile_data_SHIFT)
+#define SC_DEBUG_7_SET_state(sc_debug_7_reg, state) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_state_MASK) | (state << SC_DEBUG_7_state_SHIFT)
+#define SC_DEBUG_7_SET_fifos_ready(sc_debug_7_reg, fifos_ready) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_fifos_ready_MASK) | (fifos_ready << SC_DEBUG_7_fifos_ready_SHIFT)
+#define SC_DEBUG_7_SET_trigger(sc_debug_7_reg, trigger) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_trigger_MASK) | (trigger << SC_DEBUG_7_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sc_debug_7_t {
+ unsigned int event_flag : SC_DEBUG_7_event_flag_SIZE;
+ unsigned int deallocate : SC_DEBUG_7_deallocate_SIZE;
+ unsigned int fpos : SC_DEBUG_7_fpos_SIZE;
+ unsigned int sr_prim_we : SC_DEBUG_7_sr_prim_we_SIZE;
+ unsigned int last_tile : SC_DEBUG_7_last_tile_SIZE;
+ unsigned int tile_ff_we : SC_DEBUG_7_tile_ff_we_SIZE;
+ unsigned int qs_data_valid : SC_DEBUG_7_qs_data_valid_SIZE;
+ unsigned int qs_q0_y : SC_DEBUG_7_qs_q0_y_SIZE;
+ unsigned int qs_q0_x : SC_DEBUG_7_qs_q0_x_SIZE;
+ unsigned int qs_q0_valid : SC_DEBUG_7_qs_q0_valid_SIZE;
+ unsigned int prim_ff_we : SC_DEBUG_7_prim_ff_we_SIZE;
+ unsigned int tile_ff_re : SC_DEBUG_7_tile_ff_re_SIZE;
+ unsigned int fw_prim_data_valid : SC_DEBUG_7_fw_prim_data_valid_SIZE;
+ unsigned int last_quad_of_tile : SC_DEBUG_7_last_quad_of_tile_SIZE;
+ unsigned int first_quad_of_tile : SC_DEBUG_7_first_quad_of_tile_SIZE;
+ unsigned int first_quad_of_prim : SC_DEBUG_7_first_quad_of_prim_SIZE;
+ unsigned int new_prim : SC_DEBUG_7_new_prim_SIZE;
+ unsigned int load_new_tile_data : SC_DEBUG_7_load_new_tile_data_SIZE;
+ unsigned int state : SC_DEBUG_7_state_SIZE;
+ unsigned int fifos_ready : SC_DEBUG_7_fifos_ready_SIZE;
+ unsigned int : 6;
+ unsigned int trigger : SC_DEBUG_7_trigger_SIZE;
+ } sc_debug_7_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sc_debug_7_t {
+ unsigned int trigger : SC_DEBUG_7_trigger_SIZE;
+ unsigned int : 6;
+ unsigned int fifos_ready : SC_DEBUG_7_fifos_ready_SIZE;
+ unsigned int state : SC_DEBUG_7_state_SIZE;
+ unsigned int load_new_tile_data : SC_DEBUG_7_load_new_tile_data_SIZE;
+ unsigned int new_prim : SC_DEBUG_7_new_prim_SIZE;
+ unsigned int first_quad_of_prim : SC_DEBUG_7_first_quad_of_prim_SIZE;
+ unsigned int first_quad_of_tile : SC_DEBUG_7_first_quad_of_tile_SIZE;
+ unsigned int last_quad_of_tile : SC_DEBUG_7_last_quad_of_tile_SIZE;
+ unsigned int fw_prim_data_valid : SC_DEBUG_7_fw_prim_data_valid_SIZE;
+ unsigned int tile_ff_re : SC_DEBUG_7_tile_ff_re_SIZE;
+ unsigned int prim_ff_we : SC_DEBUG_7_prim_ff_we_SIZE;
+ unsigned int qs_q0_valid : SC_DEBUG_7_qs_q0_valid_SIZE;
+ unsigned int qs_q0_x : SC_DEBUG_7_qs_q0_x_SIZE;
+ unsigned int qs_q0_y : SC_DEBUG_7_qs_q0_y_SIZE;
+ unsigned int qs_data_valid : SC_DEBUG_7_qs_data_valid_SIZE;
+ unsigned int tile_ff_we : SC_DEBUG_7_tile_ff_we_SIZE;
+ unsigned int last_tile : SC_DEBUG_7_last_tile_SIZE;
+ unsigned int sr_prim_we : SC_DEBUG_7_sr_prim_we_SIZE;
+ unsigned int fpos : SC_DEBUG_7_fpos_SIZE;
+ unsigned int deallocate : SC_DEBUG_7_deallocate_SIZE;
+ unsigned int event_flag : SC_DEBUG_7_event_flag_SIZE;
+ } sc_debug_7_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sc_debug_7_t f;
+} sc_debug_7_u;
+
+
+/*
+ * SC_DEBUG_8 struct
+ */
+
+#define SC_DEBUG_8_sample_last_SIZE 1
+#define SC_DEBUG_8_sample_mask_SIZE 4
+#define SC_DEBUG_8_sample_y_SIZE 2
+#define SC_DEBUG_8_sample_x_SIZE 2
+#define SC_DEBUG_8_sample_send_SIZE 1
+#define SC_DEBUG_8_next_cycle_SIZE 2
+#define SC_DEBUG_8_ez_sample_ff_full_SIZE 1
+#define SC_DEBUG_8_rb_sc_samp_rtr_SIZE 1
+#define SC_DEBUG_8_num_samples_SIZE 2
+#define SC_DEBUG_8_last_quad_of_tile_SIZE 1
+#define SC_DEBUG_8_last_quad_of_prim_SIZE 1
+#define SC_DEBUG_8_first_quad_of_prim_SIZE 1
+#define SC_DEBUG_8_sample_we_SIZE 1
+#define SC_DEBUG_8_fpos_SIZE 1
+#define SC_DEBUG_8_event_id_SIZE 5
+#define SC_DEBUG_8_event_flag_SIZE 1
+#define SC_DEBUG_8_fw_prim_data_valid_SIZE 1
+#define SC_DEBUG_8_trigger_SIZE 1
+
+#define SC_DEBUG_8_sample_last_SHIFT 0
+#define SC_DEBUG_8_sample_mask_SHIFT 1
+#define SC_DEBUG_8_sample_y_SHIFT 5
+#define SC_DEBUG_8_sample_x_SHIFT 7
+#define SC_DEBUG_8_sample_send_SHIFT 9
+#define SC_DEBUG_8_next_cycle_SHIFT 10
+#define SC_DEBUG_8_ez_sample_ff_full_SHIFT 12
+#define SC_DEBUG_8_rb_sc_samp_rtr_SHIFT 13
+#define SC_DEBUG_8_num_samples_SHIFT 14
+#define SC_DEBUG_8_last_quad_of_tile_SHIFT 16
+#define SC_DEBUG_8_last_quad_of_prim_SHIFT 17
+#define SC_DEBUG_8_first_quad_of_prim_SHIFT 18
+#define SC_DEBUG_8_sample_we_SHIFT 19
+#define SC_DEBUG_8_fpos_SHIFT 20
+#define SC_DEBUG_8_event_id_SHIFT 21
+#define SC_DEBUG_8_event_flag_SHIFT 26
+#define SC_DEBUG_8_fw_prim_data_valid_SHIFT 27
+#define SC_DEBUG_8_trigger_SHIFT 31
+
+#define SC_DEBUG_8_sample_last_MASK 0x00000001
+#define SC_DEBUG_8_sample_mask_MASK 0x0000001e
+#define SC_DEBUG_8_sample_y_MASK 0x00000060
+#define SC_DEBUG_8_sample_x_MASK 0x00000180
+#define SC_DEBUG_8_sample_send_MASK 0x00000200
+#define SC_DEBUG_8_next_cycle_MASK 0x00000c00
+#define SC_DEBUG_8_ez_sample_ff_full_MASK 0x00001000
+#define SC_DEBUG_8_rb_sc_samp_rtr_MASK 0x00002000
+#define SC_DEBUG_8_num_samples_MASK 0x0000c000
+#define SC_DEBUG_8_last_quad_of_tile_MASK 0x00010000
+#define SC_DEBUG_8_last_quad_of_prim_MASK 0x00020000
+#define SC_DEBUG_8_first_quad_of_prim_MASK 0x00040000
+#define SC_DEBUG_8_sample_we_MASK 0x00080000
+#define SC_DEBUG_8_fpos_MASK 0x00100000
+#define SC_DEBUG_8_event_id_MASK 0x03e00000
+#define SC_DEBUG_8_event_flag_MASK 0x04000000
+#define SC_DEBUG_8_fw_prim_data_valid_MASK 0x08000000
+#define SC_DEBUG_8_trigger_MASK 0x80000000
+
+#define SC_DEBUG_8_MASK \
+ (SC_DEBUG_8_sample_last_MASK | \
+ SC_DEBUG_8_sample_mask_MASK | \
+ SC_DEBUG_8_sample_y_MASK | \
+ SC_DEBUG_8_sample_x_MASK | \
+ SC_DEBUG_8_sample_send_MASK | \
+ SC_DEBUG_8_next_cycle_MASK | \
+ SC_DEBUG_8_ez_sample_ff_full_MASK | \
+ SC_DEBUG_8_rb_sc_samp_rtr_MASK | \
+ SC_DEBUG_8_num_samples_MASK | \
+ SC_DEBUG_8_last_quad_of_tile_MASK | \
+ SC_DEBUG_8_last_quad_of_prim_MASK | \
+ SC_DEBUG_8_first_quad_of_prim_MASK | \
+ SC_DEBUG_8_sample_we_MASK | \
+ SC_DEBUG_8_fpos_MASK | \
+ SC_DEBUG_8_event_id_MASK | \
+ SC_DEBUG_8_event_flag_MASK | \
+ SC_DEBUG_8_fw_prim_data_valid_MASK | \
+ SC_DEBUG_8_trigger_MASK)
+
+#define SC_DEBUG_8(sample_last, sample_mask, sample_y, sample_x, sample_send, next_cycle, ez_sample_ff_full, rb_sc_samp_rtr, num_samples, last_quad_of_tile, last_quad_of_prim, first_quad_of_prim, sample_we, fpos, event_id, event_flag, fw_prim_data_valid, trigger) \
+ ((sample_last << SC_DEBUG_8_sample_last_SHIFT) | \
+ (sample_mask << SC_DEBUG_8_sample_mask_SHIFT) | \
+ (sample_y << SC_DEBUG_8_sample_y_SHIFT) | \
+ (sample_x << SC_DEBUG_8_sample_x_SHIFT) | \
+ (sample_send << SC_DEBUG_8_sample_send_SHIFT) | \
+ (next_cycle << SC_DEBUG_8_next_cycle_SHIFT) | \
+ (ez_sample_ff_full << SC_DEBUG_8_ez_sample_ff_full_SHIFT) | \
+ (rb_sc_samp_rtr << SC_DEBUG_8_rb_sc_samp_rtr_SHIFT) | \
+ (num_samples << SC_DEBUG_8_num_samples_SHIFT) | \
+ (last_quad_of_tile << SC_DEBUG_8_last_quad_of_tile_SHIFT) | \
+ (last_quad_of_prim << SC_DEBUG_8_last_quad_of_prim_SHIFT) | \
+ (first_quad_of_prim << SC_DEBUG_8_first_quad_of_prim_SHIFT) | \
+ (sample_we << SC_DEBUG_8_sample_we_SHIFT) | \
+ (fpos << SC_DEBUG_8_fpos_SHIFT) | \
+ (event_id << SC_DEBUG_8_event_id_SHIFT) | \
+ (event_flag << SC_DEBUG_8_event_flag_SHIFT) | \
+ (fw_prim_data_valid << SC_DEBUG_8_fw_prim_data_valid_SHIFT) | \
+ (trigger << SC_DEBUG_8_trigger_SHIFT))
+
+#define SC_DEBUG_8_GET_sample_last(sc_debug_8) \
+ ((sc_debug_8 & SC_DEBUG_8_sample_last_MASK) >> SC_DEBUG_8_sample_last_SHIFT)
+#define SC_DEBUG_8_GET_sample_mask(sc_debug_8) \
+ ((sc_debug_8 & SC_DEBUG_8_sample_mask_MASK) >> SC_DEBUG_8_sample_mask_SHIFT)
+#define SC_DEBUG_8_GET_sample_y(sc_debug_8) \
+ ((sc_debug_8 & SC_DEBUG_8_sample_y_MASK) >> SC_DEBUG_8_sample_y_SHIFT)
+#define SC_DEBUG_8_GET_sample_x(sc_debug_8) \
+ ((sc_debug_8 & SC_DEBUG_8_sample_x_MASK) >> SC_DEBUG_8_sample_x_SHIFT)
+#define SC_DEBUG_8_GET_sample_send(sc_debug_8) \
+ ((sc_debug_8 & SC_DEBUG_8_sample_send_MASK) >> SC_DEBUG_8_sample_send_SHIFT)
+#define SC_DEBUG_8_GET_next_cycle(sc_debug_8) \
+ ((sc_debug_8 & SC_DEBUG_8_next_cycle_MASK) >> SC_DEBUG_8_next_cycle_SHIFT)
+#define SC_DEBUG_8_GET_ez_sample_ff_full(sc_debug_8) \
+ ((sc_debug_8 & SC_DEBUG_8_ez_sample_ff_full_MASK) >> SC_DEBUG_8_ez_sample_ff_full_SHIFT)
+#define SC_DEBUG_8_GET_rb_sc_samp_rtr(sc_debug_8) \
+ ((sc_debug_8 & SC_DEBUG_8_rb_sc_samp_rtr_MASK) >> SC_DEBUG_8_rb_sc_samp_rtr_SHIFT)
+#define SC_DEBUG_8_GET_num_samples(sc_debug_8) \
+ ((sc_debug_8 & SC_DEBUG_8_num_samples_MASK) >> SC_DEBUG_8_num_samples_SHIFT)
+#define SC_DEBUG_8_GET_last_quad_of_tile(sc_debug_8) \
+ ((sc_debug_8 & SC_DEBUG_8_last_quad_of_tile_MASK) >> SC_DEBUG_8_last_quad_of_tile_SHIFT)
+#define SC_DEBUG_8_GET_last_quad_of_prim(sc_debug_8) \
+ ((sc_debug_8 & SC_DEBUG_8_last_quad_of_prim_MASK) >> SC_DEBUG_8_last_quad_of_prim_SHIFT)
+#define SC_DEBUG_8_GET_first_quad_of_prim(sc_debug_8) \
+ ((sc_debug_8 & SC_DEBUG_8_first_quad_of_prim_MASK) >> SC_DEBUG_8_first_quad_of_prim_SHIFT)
+#define SC_DEBUG_8_GET_sample_we(sc_debug_8) \
+ ((sc_debug_8 & SC_DEBUG_8_sample_we_MASK) >> SC_DEBUG_8_sample_we_SHIFT)
+#define SC_DEBUG_8_GET_fpos(sc_debug_8) \
+ ((sc_debug_8 & SC_DEBUG_8_fpos_MASK) >> SC_DEBUG_8_fpos_SHIFT)
+#define SC_DEBUG_8_GET_event_id(sc_debug_8) \
+ ((sc_debug_8 & SC_DEBUG_8_event_id_MASK) >> SC_DEBUG_8_event_id_SHIFT)
+#define SC_DEBUG_8_GET_event_flag(sc_debug_8) \
+ ((sc_debug_8 & SC_DEBUG_8_event_flag_MASK) >> SC_DEBUG_8_event_flag_SHIFT)
+#define SC_DEBUG_8_GET_fw_prim_data_valid(sc_debug_8) \
+ ((sc_debug_8 & SC_DEBUG_8_fw_prim_data_valid_MASK) >> SC_DEBUG_8_fw_prim_data_valid_SHIFT)
+#define SC_DEBUG_8_GET_trigger(sc_debug_8) \
+ ((sc_debug_8 & SC_DEBUG_8_trigger_MASK) >> SC_DEBUG_8_trigger_SHIFT)
+
+#define SC_DEBUG_8_SET_sample_last(sc_debug_8_reg, sample_last) \
+ sc_debug_8_reg = (sc_debug_8_reg & ~SC_DEBUG_8_sample_last_MASK) | (sample_last << SC_DEBUG_8_sample_last_SHIFT)
+#define SC_DEBUG_8_SET_sample_mask(sc_debug_8_reg, sample_mask) \
+ sc_debug_8_reg = (sc_debug_8_reg & ~SC_DEBUG_8_sample_mask_MASK) | (sample_mask << SC_DEBUG_8_sample_mask_SHIFT)
+#define SC_DEBUG_8_SET_sample_y(sc_debug_8_reg, sample_y) \
+ sc_debug_8_reg = (sc_debug_8_reg & ~SC_DEBUG_8_sample_y_MASK) | (sample_y << SC_DEBUG_8_sample_y_SHIFT)
+#define SC_DEBUG_8_SET_sample_x(sc_debug_8_reg, sample_x) \
+ sc_debug_8_reg = (sc_debug_8_reg & ~SC_DEBUG_8_sample_x_MASK) | (sample_x << SC_DEBUG_8_sample_x_SHIFT)
+#define SC_DEBUG_8_SET_sample_send(sc_debug_8_reg, sample_send) \
+ sc_debug_8_reg = (sc_debug_8_reg & ~SC_DEBUG_8_sample_send_MASK) | (sample_send << SC_DEBUG_8_sample_send_SHIFT)
+#define SC_DEBUG_8_SET_next_cycle(sc_debug_8_reg, next_cycle) \
+ sc_debug_8_reg = (sc_debug_8_reg & ~SC_DEBUG_8_next_cycle_MASK) | (next_cycle << SC_DEBUG_8_next_cycle_SHIFT)
+#define SC_DEBUG_8_SET_ez_sample_ff_full(sc_debug_8_reg, ez_sample_ff_full) \
+ sc_debug_8_reg = (sc_debug_8_reg & ~SC_DEBUG_8_ez_sample_ff_full_MASK) | (ez_sample_ff_full << SC_DEBUG_8_ez_sample_ff_full_SHIFT)
+#define SC_DEBUG_8_SET_rb_sc_samp_rtr(sc_debug_8_reg, rb_sc_samp_rtr) \
+ sc_debug_8_reg = (sc_debug_8_reg & ~SC_DEBUG_8_rb_sc_samp_rtr_MASK) | (rb_sc_samp_rtr << SC_DEBUG_8_rb_sc_samp_rtr_SHIFT)
+#define SC_DEBUG_8_SET_num_samples(sc_debug_8_reg, num_samples) \
+ sc_debug_8_reg = (sc_debug_8_reg & ~SC_DEBUG_8_num_samples_MASK) | (num_samples << SC_DEBUG_8_num_samples_SHIFT)
+#define SC_DEBUG_8_SET_last_quad_of_tile(sc_debug_8_reg, last_quad_of_tile) \
+ sc_debug_8_reg = (sc_debug_8_reg & ~SC_DEBUG_8_last_quad_of_tile_MASK) | (last_quad_of_tile << SC_DEBUG_8_last_quad_of_tile_SHIFT)
+#define SC_DEBUG_8_SET_last_quad_of_prim(sc_debug_8_reg, last_quad_of_prim) \
+ sc_debug_8_reg = (sc_debug_8_reg & ~SC_DEBUG_8_last_quad_of_prim_MASK) | (last_quad_of_prim << SC_DEBUG_8_last_quad_of_prim_SHIFT)
+#define SC_DEBUG_8_SET_first_quad_of_prim(sc_debug_8_reg, first_quad_of_prim) \
+ sc_debug_8_reg = (sc_debug_8_reg & ~SC_DEBUG_8_first_quad_of_prim_MASK) | (first_quad_of_prim << SC_DEBUG_8_first_quad_of_prim_SHIFT)
+#define SC_DEBUG_8_SET_sample_we(sc_debug_8_reg, sample_we) \
+ sc_debug_8_reg = (sc_debug_8_reg & ~SC_DEBUG_8_sample_we_MASK) | (sample_we << SC_DEBUG_8_sample_we_SHIFT)
+#define SC_DEBUG_8_SET_fpos(sc_debug_8_reg, fpos) \
+ sc_debug_8_reg = (sc_debug_8_reg & ~SC_DEBUG_8_fpos_MASK) | (fpos << SC_DEBUG_8_fpos_SHIFT)
+#define SC_DEBUG_8_SET_event_id(sc_debug_8_reg, event_id) \
+ sc_debug_8_reg = (sc_debug_8_reg & ~SC_DEBUG_8_event_id_MASK) | (event_id << SC_DEBUG_8_event_id_SHIFT)
+#define SC_DEBUG_8_SET_event_flag(sc_debug_8_reg, event_flag) \
+ sc_debug_8_reg = (sc_debug_8_reg & ~SC_DEBUG_8_event_flag_MASK) | (event_flag << SC_DEBUG_8_event_flag_SHIFT)
+#define SC_DEBUG_8_SET_fw_prim_data_valid(sc_debug_8_reg, fw_prim_data_valid) \
+ sc_debug_8_reg = (sc_debug_8_reg & ~SC_DEBUG_8_fw_prim_data_valid_MASK) | (fw_prim_data_valid << SC_DEBUG_8_fw_prim_data_valid_SHIFT)
+#define SC_DEBUG_8_SET_trigger(sc_debug_8_reg, trigger) \
+ sc_debug_8_reg = (sc_debug_8_reg & ~SC_DEBUG_8_trigger_MASK) | (trigger << SC_DEBUG_8_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sc_debug_8_t {
+ unsigned int sample_last : SC_DEBUG_8_sample_last_SIZE;
+ unsigned int sample_mask : SC_DEBUG_8_sample_mask_SIZE;
+ unsigned int sample_y : SC_DEBUG_8_sample_y_SIZE;
+ unsigned int sample_x : SC_DEBUG_8_sample_x_SIZE;
+ unsigned int sample_send : SC_DEBUG_8_sample_send_SIZE;
+ unsigned int next_cycle : SC_DEBUG_8_next_cycle_SIZE;
+ unsigned int ez_sample_ff_full : SC_DEBUG_8_ez_sample_ff_full_SIZE;
+ unsigned int rb_sc_samp_rtr : SC_DEBUG_8_rb_sc_samp_rtr_SIZE;
+ unsigned int num_samples : SC_DEBUG_8_num_samples_SIZE;
+ unsigned int last_quad_of_tile : SC_DEBUG_8_last_quad_of_tile_SIZE;
+ unsigned int last_quad_of_prim : SC_DEBUG_8_last_quad_of_prim_SIZE;
+ unsigned int first_quad_of_prim : SC_DEBUG_8_first_quad_of_prim_SIZE;
+ unsigned int sample_we : SC_DEBUG_8_sample_we_SIZE;
+ unsigned int fpos : SC_DEBUG_8_fpos_SIZE;
+ unsigned int event_id : SC_DEBUG_8_event_id_SIZE;
+ unsigned int event_flag : SC_DEBUG_8_event_flag_SIZE;
+ unsigned int fw_prim_data_valid : SC_DEBUG_8_fw_prim_data_valid_SIZE;
+ unsigned int : 3;
+ unsigned int trigger : SC_DEBUG_8_trigger_SIZE;
+ } sc_debug_8_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sc_debug_8_t {
+ unsigned int trigger : SC_DEBUG_8_trigger_SIZE;
+ unsigned int : 3;
+ unsigned int fw_prim_data_valid : SC_DEBUG_8_fw_prim_data_valid_SIZE;
+ unsigned int event_flag : SC_DEBUG_8_event_flag_SIZE;
+ unsigned int event_id : SC_DEBUG_8_event_id_SIZE;
+ unsigned int fpos : SC_DEBUG_8_fpos_SIZE;
+ unsigned int sample_we : SC_DEBUG_8_sample_we_SIZE;
+ unsigned int first_quad_of_prim : SC_DEBUG_8_first_quad_of_prim_SIZE;
+ unsigned int last_quad_of_prim : SC_DEBUG_8_last_quad_of_prim_SIZE;
+ unsigned int last_quad_of_tile : SC_DEBUG_8_last_quad_of_tile_SIZE;
+ unsigned int num_samples : SC_DEBUG_8_num_samples_SIZE;
+ unsigned int rb_sc_samp_rtr : SC_DEBUG_8_rb_sc_samp_rtr_SIZE;
+ unsigned int ez_sample_ff_full : SC_DEBUG_8_ez_sample_ff_full_SIZE;
+ unsigned int next_cycle : SC_DEBUG_8_next_cycle_SIZE;
+ unsigned int sample_send : SC_DEBUG_8_sample_send_SIZE;
+ unsigned int sample_x : SC_DEBUG_8_sample_x_SIZE;
+ unsigned int sample_y : SC_DEBUG_8_sample_y_SIZE;
+ unsigned int sample_mask : SC_DEBUG_8_sample_mask_SIZE;
+ unsigned int sample_last : SC_DEBUG_8_sample_last_SIZE;
+ } sc_debug_8_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sc_debug_8_t f;
+} sc_debug_8_u;
+
+
+/*
+ * SC_DEBUG_9 struct
+ */
+
+#define SC_DEBUG_9_rb_sc_send_SIZE 1
+#define SC_DEBUG_9_rb_sc_ez_mask_SIZE 4
+#define SC_DEBUG_9_fifo_data_ready_SIZE 1
+#define SC_DEBUG_9_early_z_enable_SIZE 1
+#define SC_DEBUG_9_mask_state_SIZE 2
+#define SC_DEBUG_9_next_ez_mask_SIZE 16
+#define SC_DEBUG_9_mask_ready_SIZE 1
+#define SC_DEBUG_9_drop_sample_SIZE 1
+#define SC_DEBUG_9_fetch_new_sample_data_SIZE 1
+#define SC_DEBUG_9_fetch_new_ez_sample_mask_SIZE 1
+#define SC_DEBUG_9_pkr_fetch_new_sample_data_SIZE 1
+#define SC_DEBUG_9_pkr_fetch_new_prim_data_SIZE 1
+#define SC_DEBUG_9_trigger_SIZE 1
+
+#define SC_DEBUG_9_rb_sc_send_SHIFT 0
+#define SC_DEBUG_9_rb_sc_ez_mask_SHIFT 1
+#define SC_DEBUG_9_fifo_data_ready_SHIFT 5
+#define SC_DEBUG_9_early_z_enable_SHIFT 6
+#define SC_DEBUG_9_mask_state_SHIFT 7
+#define SC_DEBUG_9_next_ez_mask_SHIFT 9
+#define SC_DEBUG_9_mask_ready_SHIFT 25
+#define SC_DEBUG_9_drop_sample_SHIFT 26
+#define SC_DEBUG_9_fetch_new_sample_data_SHIFT 27
+#define SC_DEBUG_9_fetch_new_ez_sample_mask_SHIFT 28
+#define SC_DEBUG_9_pkr_fetch_new_sample_data_SHIFT 29
+#define SC_DEBUG_9_pkr_fetch_new_prim_data_SHIFT 30
+#define SC_DEBUG_9_trigger_SHIFT 31
+
+#define SC_DEBUG_9_rb_sc_send_MASK 0x00000001
+#define SC_DEBUG_9_rb_sc_ez_mask_MASK 0x0000001e
+#define SC_DEBUG_9_fifo_data_ready_MASK 0x00000020
+#define SC_DEBUG_9_early_z_enable_MASK 0x00000040
+#define SC_DEBUG_9_mask_state_MASK 0x00000180
+#define SC_DEBUG_9_next_ez_mask_MASK 0x01fffe00
+#define SC_DEBUG_9_mask_ready_MASK 0x02000000
+#define SC_DEBUG_9_drop_sample_MASK 0x04000000
+#define SC_DEBUG_9_fetch_new_sample_data_MASK 0x08000000
+#define SC_DEBUG_9_fetch_new_ez_sample_mask_MASK 0x10000000
+#define SC_DEBUG_9_pkr_fetch_new_sample_data_MASK 0x20000000
+#define SC_DEBUG_9_pkr_fetch_new_prim_data_MASK 0x40000000
+#define SC_DEBUG_9_trigger_MASK 0x80000000
+
+#define SC_DEBUG_9_MASK \
+ (SC_DEBUG_9_rb_sc_send_MASK | \
+ SC_DEBUG_9_rb_sc_ez_mask_MASK | \
+ SC_DEBUG_9_fifo_data_ready_MASK | \
+ SC_DEBUG_9_early_z_enable_MASK | \
+ SC_DEBUG_9_mask_state_MASK | \
+ SC_DEBUG_9_next_ez_mask_MASK | \
+ SC_DEBUG_9_mask_ready_MASK | \
+ SC_DEBUG_9_drop_sample_MASK | \
+ SC_DEBUG_9_fetch_new_sample_data_MASK | \
+ SC_DEBUG_9_fetch_new_ez_sample_mask_MASK | \
+ SC_DEBUG_9_pkr_fetch_new_sample_data_MASK | \
+ SC_DEBUG_9_pkr_fetch_new_prim_data_MASK | \
+ SC_DEBUG_9_trigger_MASK)
+
+#define SC_DEBUG_9(rb_sc_send, rb_sc_ez_mask, fifo_data_ready, early_z_enable, mask_state, next_ez_mask, mask_ready, drop_sample, fetch_new_sample_data, fetch_new_ez_sample_mask, pkr_fetch_new_sample_data, pkr_fetch_new_prim_data, trigger) \
+ ((rb_sc_send << SC_DEBUG_9_rb_sc_send_SHIFT) | \
+ (rb_sc_ez_mask << SC_DEBUG_9_rb_sc_ez_mask_SHIFT) | \
+ (fifo_data_ready << SC_DEBUG_9_fifo_data_ready_SHIFT) | \
+ (early_z_enable << SC_DEBUG_9_early_z_enable_SHIFT) | \
+ (mask_state << SC_DEBUG_9_mask_state_SHIFT) | \
+ (next_ez_mask << SC_DEBUG_9_next_ez_mask_SHIFT) | \
+ (mask_ready << SC_DEBUG_9_mask_ready_SHIFT) | \
+ (drop_sample << SC_DEBUG_9_drop_sample_SHIFT) | \
+ (fetch_new_sample_data << SC_DEBUG_9_fetch_new_sample_data_SHIFT) | \
+ (fetch_new_ez_sample_mask << SC_DEBUG_9_fetch_new_ez_sample_mask_SHIFT) | \
+ (pkr_fetch_new_sample_data << SC_DEBUG_9_pkr_fetch_new_sample_data_SHIFT) | \
+ (pkr_fetch_new_prim_data << SC_DEBUG_9_pkr_fetch_new_prim_data_SHIFT) | \
+ (trigger << SC_DEBUG_9_trigger_SHIFT))
+
+#define SC_DEBUG_9_GET_rb_sc_send(sc_debug_9) \
+ ((sc_debug_9 & SC_DEBUG_9_rb_sc_send_MASK) >> SC_DEBUG_9_rb_sc_send_SHIFT)
+#define SC_DEBUG_9_GET_rb_sc_ez_mask(sc_debug_9) \
+ ((sc_debug_9 & SC_DEBUG_9_rb_sc_ez_mask_MASK) >> SC_DEBUG_9_rb_sc_ez_mask_SHIFT)
+#define SC_DEBUG_9_GET_fifo_data_ready(sc_debug_9) \
+ ((sc_debug_9 & SC_DEBUG_9_fifo_data_ready_MASK) >> SC_DEBUG_9_fifo_data_ready_SHIFT)
+#define SC_DEBUG_9_GET_early_z_enable(sc_debug_9) \
+ ((sc_debug_9 & SC_DEBUG_9_early_z_enable_MASK) >> SC_DEBUG_9_early_z_enable_SHIFT)
+#define SC_DEBUG_9_GET_mask_state(sc_debug_9) \
+ ((sc_debug_9 & SC_DEBUG_9_mask_state_MASK) >> SC_DEBUG_9_mask_state_SHIFT)
+#define SC_DEBUG_9_GET_next_ez_mask(sc_debug_9) \
+ ((sc_debug_9 & SC_DEBUG_9_next_ez_mask_MASK) >> SC_DEBUG_9_next_ez_mask_SHIFT)
+#define SC_DEBUG_9_GET_mask_ready(sc_debug_9) \
+ ((sc_debug_9 & SC_DEBUG_9_mask_ready_MASK) >> SC_DEBUG_9_mask_ready_SHIFT)
+#define SC_DEBUG_9_GET_drop_sample(sc_debug_9) \
+ ((sc_debug_9 & SC_DEBUG_9_drop_sample_MASK) >> SC_DEBUG_9_drop_sample_SHIFT)
+#define SC_DEBUG_9_GET_fetch_new_sample_data(sc_debug_9) \
+ ((sc_debug_9 & SC_DEBUG_9_fetch_new_sample_data_MASK) >> SC_DEBUG_9_fetch_new_sample_data_SHIFT)
+#define SC_DEBUG_9_GET_fetch_new_ez_sample_mask(sc_debug_9) \
+ ((sc_debug_9 & SC_DEBUG_9_fetch_new_ez_sample_mask_MASK) >> SC_DEBUG_9_fetch_new_ez_sample_mask_SHIFT)
+#define SC_DEBUG_9_GET_pkr_fetch_new_sample_data(sc_debug_9) \
+ ((sc_debug_9 & SC_DEBUG_9_pkr_fetch_new_sample_data_MASK) >> SC_DEBUG_9_pkr_fetch_new_sample_data_SHIFT)
+#define SC_DEBUG_9_GET_pkr_fetch_new_prim_data(sc_debug_9) \
+ ((sc_debug_9 & SC_DEBUG_9_pkr_fetch_new_prim_data_MASK) >> SC_DEBUG_9_pkr_fetch_new_prim_data_SHIFT)
+#define SC_DEBUG_9_GET_trigger(sc_debug_9) \
+ ((sc_debug_9 & SC_DEBUG_9_trigger_MASK) >> SC_DEBUG_9_trigger_SHIFT)
+
+#define SC_DEBUG_9_SET_rb_sc_send(sc_debug_9_reg, rb_sc_send) \
+ sc_debug_9_reg = (sc_debug_9_reg & ~SC_DEBUG_9_rb_sc_send_MASK) | (rb_sc_send << SC_DEBUG_9_rb_sc_send_SHIFT)
+#define SC_DEBUG_9_SET_rb_sc_ez_mask(sc_debug_9_reg, rb_sc_ez_mask) \
+ sc_debug_9_reg = (sc_debug_9_reg & ~SC_DEBUG_9_rb_sc_ez_mask_MASK) | (rb_sc_ez_mask << SC_DEBUG_9_rb_sc_ez_mask_SHIFT)
+#define SC_DEBUG_9_SET_fifo_data_ready(sc_debug_9_reg, fifo_data_ready) \
+ sc_debug_9_reg = (sc_debug_9_reg & ~SC_DEBUG_9_fifo_data_ready_MASK) | (fifo_data_ready << SC_DEBUG_9_fifo_data_ready_SHIFT)
+#define SC_DEBUG_9_SET_early_z_enable(sc_debug_9_reg, early_z_enable) \
+ sc_debug_9_reg = (sc_debug_9_reg & ~SC_DEBUG_9_early_z_enable_MASK) | (early_z_enable << SC_DEBUG_9_early_z_enable_SHIFT)
+#define SC_DEBUG_9_SET_mask_state(sc_debug_9_reg, mask_state) \
+ sc_debug_9_reg = (sc_debug_9_reg & ~SC_DEBUG_9_mask_state_MASK) | (mask_state << SC_DEBUG_9_mask_state_SHIFT)
+#define SC_DEBUG_9_SET_next_ez_mask(sc_debug_9_reg, next_ez_mask) \
+ sc_debug_9_reg = (sc_debug_9_reg & ~SC_DEBUG_9_next_ez_mask_MASK) | (next_ez_mask << SC_DEBUG_9_next_ez_mask_SHIFT)
+#define SC_DEBUG_9_SET_mask_ready(sc_debug_9_reg, mask_ready) \
+ sc_debug_9_reg = (sc_debug_9_reg & ~SC_DEBUG_9_mask_ready_MASK) | (mask_ready << SC_DEBUG_9_mask_ready_SHIFT)
+#define SC_DEBUG_9_SET_drop_sample(sc_debug_9_reg, drop_sample) \
+ sc_debug_9_reg = (sc_debug_9_reg & ~SC_DEBUG_9_drop_sample_MASK) | (drop_sample << SC_DEBUG_9_drop_sample_SHIFT)
+#define SC_DEBUG_9_SET_fetch_new_sample_data(sc_debug_9_reg, fetch_new_sample_data) \
+ sc_debug_9_reg = (sc_debug_9_reg & ~SC_DEBUG_9_fetch_new_sample_data_MASK) | (fetch_new_sample_data << SC_DEBUG_9_fetch_new_sample_data_SHIFT)
+#define SC_DEBUG_9_SET_fetch_new_ez_sample_mask(sc_debug_9_reg, fetch_new_ez_sample_mask) \
+ sc_debug_9_reg = (sc_debug_9_reg & ~SC_DEBUG_9_fetch_new_ez_sample_mask_MASK) | (fetch_new_ez_sample_mask << SC_DEBUG_9_fetch_new_ez_sample_mask_SHIFT)
+#define SC_DEBUG_9_SET_pkr_fetch_new_sample_data(sc_debug_9_reg, pkr_fetch_new_sample_data) \
+ sc_debug_9_reg = (sc_debug_9_reg & ~SC_DEBUG_9_pkr_fetch_new_sample_data_MASK) | (pkr_fetch_new_sample_data << SC_DEBUG_9_pkr_fetch_new_sample_data_SHIFT)
+#define SC_DEBUG_9_SET_pkr_fetch_new_prim_data(sc_debug_9_reg, pkr_fetch_new_prim_data) \
+ sc_debug_9_reg = (sc_debug_9_reg & ~SC_DEBUG_9_pkr_fetch_new_prim_data_MASK) | (pkr_fetch_new_prim_data << SC_DEBUG_9_pkr_fetch_new_prim_data_SHIFT)
+#define SC_DEBUG_9_SET_trigger(sc_debug_9_reg, trigger) \
+ sc_debug_9_reg = (sc_debug_9_reg & ~SC_DEBUG_9_trigger_MASK) | (trigger << SC_DEBUG_9_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sc_debug_9_t {
+ unsigned int rb_sc_send : SC_DEBUG_9_rb_sc_send_SIZE;
+ unsigned int rb_sc_ez_mask : SC_DEBUG_9_rb_sc_ez_mask_SIZE;
+ unsigned int fifo_data_ready : SC_DEBUG_9_fifo_data_ready_SIZE;
+ unsigned int early_z_enable : SC_DEBUG_9_early_z_enable_SIZE;
+ unsigned int mask_state : SC_DEBUG_9_mask_state_SIZE;
+ unsigned int next_ez_mask : SC_DEBUG_9_next_ez_mask_SIZE;
+ unsigned int mask_ready : SC_DEBUG_9_mask_ready_SIZE;
+ unsigned int drop_sample : SC_DEBUG_9_drop_sample_SIZE;
+ unsigned int fetch_new_sample_data : SC_DEBUG_9_fetch_new_sample_data_SIZE;
+ unsigned int fetch_new_ez_sample_mask : SC_DEBUG_9_fetch_new_ez_sample_mask_SIZE;
+ unsigned int pkr_fetch_new_sample_data : SC_DEBUG_9_pkr_fetch_new_sample_data_SIZE;
+ unsigned int pkr_fetch_new_prim_data : SC_DEBUG_9_pkr_fetch_new_prim_data_SIZE;
+ unsigned int trigger : SC_DEBUG_9_trigger_SIZE;
+ } sc_debug_9_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sc_debug_9_t {
+ unsigned int trigger : SC_DEBUG_9_trigger_SIZE;
+ unsigned int pkr_fetch_new_prim_data : SC_DEBUG_9_pkr_fetch_new_prim_data_SIZE;
+ unsigned int pkr_fetch_new_sample_data : SC_DEBUG_9_pkr_fetch_new_sample_data_SIZE;
+ unsigned int fetch_new_ez_sample_mask : SC_DEBUG_9_fetch_new_ez_sample_mask_SIZE;
+ unsigned int fetch_new_sample_data : SC_DEBUG_9_fetch_new_sample_data_SIZE;
+ unsigned int drop_sample : SC_DEBUG_9_drop_sample_SIZE;
+ unsigned int mask_ready : SC_DEBUG_9_mask_ready_SIZE;
+ unsigned int next_ez_mask : SC_DEBUG_9_next_ez_mask_SIZE;
+ unsigned int mask_state : SC_DEBUG_9_mask_state_SIZE;
+ unsigned int early_z_enable : SC_DEBUG_9_early_z_enable_SIZE;
+ unsigned int fifo_data_ready : SC_DEBUG_9_fifo_data_ready_SIZE;
+ unsigned int rb_sc_ez_mask : SC_DEBUG_9_rb_sc_ez_mask_SIZE;
+ unsigned int rb_sc_send : SC_DEBUG_9_rb_sc_send_SIZE;
+ } sc_debug_9_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sc_debug_9_t f;
+} sc_debug_9_u;
+
+
+/*
+ * SC_DEBUG_10 struct
+ */
+
+#define SC_DEBUG_10_combined_sample_mask_SIZE 16
+#define SC_DEBUG_10_trigger_SIZE 1
+
+#define SC_DEBUG_10_combined_sample_mask_SHIFT 0
+#define SC_DEBUG_10_trigger_SHIFT 31
+
+#define SC_DEBUG_10_combined_sample_mask_MASK 0x0000ffff
+#define SC_DEBUG_10_trigger_MASK 0x80000000
+
+#define SC_DEBUG_10_MASK \
+ (SC_DEBUG_10_combined_sample_mask_MASK | \
+ SC_DEBUG_10_trigger_MASK)
+
+#define SC_DEBUG_10(combined_sample_mask, trigger) \
+ ((combined_sample_mask << SC_DEBUG_10_combined_sample_mask_SHIFT) | \
+ (trigger << SC_DEBUG_10_trigger_SHIFT))
+
+#define SC_DEBUG_10_GET_combined_sample_mask(sc_debug_10) \
+ ((sc_debug_10 & SC_DEBUG_10_combined_sample_mask_MASK) >> SC_DEBUG_10_combined_sample_mask_SHIFT)
+#define SC_DEBUG_10_GET_trigger(sc_debug_10) \
+ ((sc_debug_10 & SC_DEBUG_10_trigger_MASK) >> SC_DEBUG_10_trigger_SHIFT)
+
+#define SC_DEBUG_10_SET_combined_sample_mask(sc_debug_10_reg, combined_sample_mask) \
+ sc_debug_10_reg = (sc_debug_10_reg & ~SC_DEBUG_10_combined_sample_mask_MASK) | (combined_sample_mask << SC_DEBUG_10_combined_sample_mask_SHIFT)
+#define SC_DEBUG_10_SET_trigger(sc_debug_10_reg, trigger) \
+ sc_debug_10_reg = (sc_debug_10_reg & ~SC_DEBUG_10_trigger_MASK) | (trigger << SC_DEBUG_10_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sc_debug_10_t {
+ unsigned int combined_sample_mask : SC_DEBUG_10_combined_sample_mask_SIZE;
+ unsigned int : 15;
+ unsigned int trigger : SC_DEBUG_10_trigger_SIZE;
+ } sc_debug_10_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sc_debug_10_t {
+ unsigned int trigger : SC_DEBUG_10_trigger_SIZE;
+ unsigned int : 15;
+ unsigned int combined_sample_mask : SC_DEBUG_10_combined_sample_mask_SIZE;
+ } sc_debug_10_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sc_debug_10_t f;
+} sc_debug_10_u;
+
+
+/*
+ * SC_DEBUG_11 struct
+ */
+
+#define SC_DEBUG_11_ez_sample_data_ready_SIZE 1
+#define SC_DEBUG_11_pkr_fetch_new_sample_data_SIZE 1
+#define SC_DEBUG_11_ez_prim_data_ready_SIZE 1
+#define SC_DEBUG_11_pkr_fetch_new_prim_data_SIZE 1
+#define SC_DEBUG_11_iterator_input_fz_SIZE 1
+#define SC_DEBUG_11_packer_send_quads_SIZE 1
+#define SC_DEBUG_11_packer_send_cmd_SIZE 1
+#define SC_DEBUG_11_packer_send_event_SIZE 1
+#define SC_DEBUG_11_next_state_SIZE 3
+#define SC_DEBUG_11_state_SIZE 3
+#define SC_DEBUG_11_stall_SIZE 1
+#define SC_DEBUG_11_trigger_SIZE 1
+
+#define SC_DEBUG_11_ez_sample_data_ready_SHIFT 0
+#define SC_DEBUG_11_pkr_fetch_new_sample_data_SHIFT 1
+#define SC_DEBUG_11_ez_prim_data_ready_SHIFT 2
+#define SC_DEBUG_11_pkr_fetch_new_prim_data_SHIFT 3
+#define SC_DEBUG_11_iterator_input_fz_SHIFT 4
+#define SC_DEBUG_11_packer_send_quads_SHIFT 5
+#define SC_DEBUG_11_packer_send_cmd_SHIFT 6
+#define SC_DEBUG_11_packer_send_event_SHIFT 7
+#define SC_DEBUG_11_next_state_SHIFT 8
+#define SC_DEBUG_11_state_SHIFT 11
+#define SC_DEBUG_11_stall_SHIFT 14
+#define SC_DEBUG_11_trigger_SHIFT 31
+
+#define SC_DEBUG_11_ez_sample_data_ready_MASK 0x00000001
+#define SC_DEBUG_11_pkr_fetch_new_sample_data_MASK 0x00000002
+#define SC_DEBUG_11_ez_prim_data_ready_MASK 0x00000004
+#define SC_DEBUG_11_pkr_fetch_new_prim_data_MASK 0x00000008
+#define SC_DEBUG_11_iterator_input_fz_MASK 0x00000010
+#define SC_DEBUG_11_packer_send_quads_MASK 0x00000020
+#define SC_DEBUG_11_packer_send_cmd_MASK 0x00000040
+#define SC_DEBUG_11_packer_send_event_MASK 0x00000080
+#define SC_DEBUG_11_next_state_MASK 0x00000700
+#define SC_DEBUG_11_state_MASK 0x00003800
+#define SC_DEBUG_11_stall_MASK 0x00004000
+#define SC_DEBUG_11_trigger_MASK 0x80000000
+
+#define SC_DEBUG_11_MASK \
+ (SC_DEBUG_11_ez_sample_data_ready_MASK | \
+ SC_DEBUG_11_pkr_fetch_new_sample_data_MASK | \
+ SC_DEBUG_11_ez_prim_data_ready_MASK | \
+ SC_DEBUG_11_pkr_fetch_new_prim_data_MASK | \
+ SC_DEBUG_11_iterator_input_fz_MASK | \
+ SC_DEBUG_11_packer_send_quads_MASK | \
+ SC_DEBUG_11_packer_send_cmd_MASK | \
+ SC_DEBUG_11_packer_send_event_MASK | \
+ SC_DEBUG_11_next_state_MASK | \
+ SC_DEBUG_11_state_MASK | \
+ SC_DEBUG_11_stall_MASK | \
+ SC_DEBUG_11_trigger_MASK)
+
+#define SC_DEBUG_11(ez_sample_data_ready, pkr_fetch_new_sample_data, ez_prim_data_ready, pkr_fetch_new_prim_data, iterator_input_fz, packer_send_quads, packer_send_cmd, packer_send_event, next_state, state, stall, trigger) \
+ ((ez_sample_data_ready << SC_DEBUG_11_ez_sample_data_ready_SHIFT) | \
+ (pkr_fetch_new_sample_data << SC_DEBUG_11_pkr_fetch_new_sample_data_SHIFT) | \
+ (ez_prim_data_ready << SC_DEBUG_11_ez_prim_data_ready_SHIFT) | \
+ (pkr_fetch_new_prim_data << SC_DEBUG_11_pkr_fetch_new_prim_data_SHIFT) | \
+ (iterator_input_fz << SC_DEBUG_11_iterator_input_fz_SHIFT) | \
+ (packer_send_quads << SC_DEBUG_11_packer_send_quads_SHIFT) | \
+ (packer_send_cmd << SC_DEBUG_11_packer_send_cmd_SHIFT) | \
+ (packer_send_event << SC_DEBUG_11_packer_send_event_SHIFT) | \
+ (next_state << SC_DEBUG_11_next_state_SHIFT) | \
+ (state << SC_DEBUG_11_state_SHIFT) | \
+ (stall << SC_DEBUG_11_stall_SHIFT) | \
+ (trigger << SC_DEBUG_11_trigger_SHIFT))
+
+#define SC_DEBUG_11_GET_ez_sample_data_ready(sc_debug_11) \
+ ((sc_debug_11 & SC_DEBUG_11_ez_sample_data_ready_MASK) >> SC_DEBUG_11_ez_sample_data_ready_SHIFT)
+#define SC_DEBUG_11_GET_pkr_fetch_new_sample_data(sc_debug_11) \
+ ((sc_debug_11 & SC_DEBUG_11_pkr_fetch_new_sample_data_MASK) >> SC_DEBUG_11_pkr_fetch_new_sample_data_SHIFT)
+#define SC_DEBUG_11_GET_ez_prim_data_ready(sc_debug_11) \
+ ((sc_debug_11 & SC_DEBUG_11_ez_prim_data_ready_MASK) >> SC_DEBUG_11_ez_prim_data_ready_SHIFT)
+#define SC_DEBUG_11_GET_pkr_fetch_new_prim_data(sc_debug_11) \
+ ((sc_debug_11 & SC_DEBUG_11_pkr_fetch_new_prim_data_MASK) >> SC_DEBUG_11_pkr_fetch_new_prim_data_SHIFT)
+#define SC_DEBUG_11_GET_iterator_input_fz(sc_debug_11) \
+ ((sc_debug_11 & SC_DEBUG_11_iterator_input_fz_MASK) >> SC_DEBUG_11_iterator_input_fz_SHIFT)
+#define SC_DEBUG_11_GET_packer_send_quads(sc_debug_11) \
+ ((sc_debug_11 & SC_DEBUG_11_packer_send_quads_MASK) >> SC_DEBUG_11_packer_send_quads_SHIFT)
+#define SC_DEBUG_11_GET_packer_send_cmd(sc_debug_11) \
+ ((sc_debug_11 & SC_DEBUG_11_packer_send_cmd_MASK) >> SC_DEBUG_11_packer_send_cmd_SHIFT)
+#define SC_DEBUG_11_GET_packer_send_event(sc_debug_11) \
+ ((sc_debug_11 & SC_DEBUG_11_packer_send_event_MASK) >> SC_DEBUG_11_packer_send_event_SHIFT)
+#define SC_DEBUG_11_GET_next_state(sc_debug_11) \
+ ((sc_debug_11 & SC_DEBUG_11_next_state_MASK) >> SC_DEBUG_11_next_state_SHIFT)
+#define SC_DEBUG_11_GET_state(sc_debug_11) \
+ ((sc_debug_11 & SC_DEBUG_11_state_MASK) >> SC_DEBUG_11_state_SHIFT)
+#define SC_DEBUG_11_GET_stall(sc_debug_11) \
+ ((sc_debug_11 & SC_DEBUG_11_stall_MASK) >> SC_DEBUG_11_stall_SHIFT)
+#define SC_DEBUG_11_GET_trigger(sc_debug_11) \
+ ((sc_debug_11 & SC_DEBUG_11_trigger_MASK) >> SC_DEBUG_11_trigger_SHIFT)
+
+#define SC_DEBUG_11_SET_ez_sample_data_ready(sc_debug_11_reg, ez_sample_data_ready) \
+ sc_debug_11_reg = (sc_debug_11_reg & ~SC_DEBUG_11_ez_sample_data_ready_MASK) | (ez_sample_data_ready << SC_DEBUG_11_ez_sample_data_ready_SHIFT)
+#define SC_DEBUG_11_SET_pkr_fetch_new_sample_data(sc_debug_11_reg, pkr_fetch_new_sample_data) \
+ sc_debug_11_reg = (sc_debug_11_reg & ~SC_DEBUG_11_pkr_fetch_new_sample_data_MASK) | (pkr_fetch_new_sample_data << SC_DEBUG_11_pkr_fetch_new_sample_data_SHIFT)
+#define SC_DEBUG_11_SET_ez_prim_data_ready(sc_debug_11_reg, ez_prim_data_ready) \
+ sc_debug_11_reg = (sc_debug_11_reg & ~SC_DEBUG_11_ez_prim_data_ready_MASK) | (ez_prim_data_ready << SC_DEBUG_11_ez_prim_data_ready_SHIFT)
+#define SC_DEBUG_11_SET_pkr_fetch_new_prim_data(sc_debug_11_reg, pkr_fetch_new_prim_data) \
+ sc_debug_11_reg = (sc_debug_11_reg & ~SC_DEBUG_11_pkr_fetch_new_prim_data_MASK) | (pkr_fetch_new_prim_data << SC_DEBUG_11_pkr_fetch_new_prim_data_SHIFT)
+#define SC_DEBUG_11_SET_iterator_input_fz(sc_debug_11_reg, iterator_input_fz) \
+ sc_debug_11_reg = (sc_debug_11_reg & ~SC_DEBUG_11_iterator_input_fz_MASK) | (iterator_input_fz << SC_DEBUG_11_iterator_input_fz_SHIFT)
+#define SC_DEBUG_11_SET_packer_send_quads(sc_debug_11_reg, packer_send_quads) \
+ sc_debug_11_reg = (sc_debug_11_reg & ~SC_DEBUG_11_packer_send_quads_MASK) | (packer_send_quads << SC_DEBUG_11_packer_send_quads_SHIFT)
+#define SC_DEBUG_11_SET_packer_send_cmd(sc_debug_11_reg, packer_send_cmd) \
+ sc_debug_11_reg = (sc_debug_11_reg & ~SC_DEBUG_11_packer_send_cmd_MASK) | (packer_send_cmd << SC_DEBUG_11_packer_send_cmd_SHIFT)
+#define SC_DEBUG_11_SET_packer_send_event(sc_debug_11_reg, packer_send_event) \
+ sc_debug_11_reg = (sc_debug_11_reg & ~SC_DEBUG_11_packer_send_event_MASK) | (packer_send_event << SC_DEBUG_11_packer_send_event_SHIFT)
+#define SC_DEBUG_11_SET_next_state(sc_debug_11_reg, next_state) \
+ sc_debug_11_reg = (sc_debug_11_reg & ~SC_DEBUG_11_next_state_MASK) | (next_state << SC_DEBUG_11_next_state_SHIFT)
+#define SC_DEBUG_11_SET_state(sc_debug_11_reg, state) \
+ sc_debug_11_reg = (sc_debug_11_reg & ~SC_DEBUG_11_state_MASK) | (state << SC_DEBUG_11_state_SHIFT)
+#define SC_DEBUG_11_SET_stall(sc_debug_11_reg, stall) \
+ sc_debug_11_reg = (sc_debug_11_reg & ~SC_DEBUG_11_stall_MASK) | (stall << SC_DEBUG_11_stall_SHIFT)
+#define SC_DEBUG_11_SET_trigger(sc_debug_11_reg, trigger) \
+ sc_debug_11_reg = (sc_debug_11_reg & ~SC_DEBUG_11_trigger_MASK) | (trigger << SC_DEBUG_11_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sc_debug_11_t {
+ unsigned int ez_sample_data_ready : SC_DEBUG_11_ez_sample_data_ready_SIZE;
+ unsigned int pkr_fetch_new_sample_data : SC_DEBUG_11_pkr_fetch_new_sample_data_SIZE;
+ unsigned int ez_prim_data_ready : SC_DEBUG_11_ez_prim_data_ready_SIZE;
+ unsigned int pkr_fetch_new_prim_data : SC_DEBUG_11_pkr_fetch_new_prim_data_SIZE;
+ unsigned int iterator_input_fz : SC_DEBUG_11_iterator_input_fz_SIZE;
+ unsigned int packer_send_quads : SC_DEBUG_11_packer_send_quads_SIZE;
+ unsigned int packer_send_cmd : SC_DEBUG_11_packer_send_cmd_SIZE;
+ unsigned int packer_send_event : SC_DEBUG_11_packer_send_event_SIZE;
+ unsigned int next_state : SC_DEBUG_11_next_state_SIZE;
+ unsigned int state : SC_DEBUG_11_state_SIZE;
+ unsigned int stall : SC_DEBUG_11_stall_SIZE;
+ unsigned int : 16;
+ unsigned int trigger : SC_DEBUG_11_trigger_SIZE;
+ } sc_debug_11_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sc_debug_11_t {
+ unsigned int trigger : SC_DEBUG_11_trigger_SIZE;
+ unsigned int : 16;
+ unsigned int stall : SC_DEBUG_11_stall_SIZE;
+ unsigned int state : SC_DEBUG_11_state_SIZE;
+ unsigned int next_state : SC_DEBUG_11_next_state_SIZE;
+ unsigned int packer_send_event : SC_DEBUG_11_packer_send_event_SIZE;
+ unsigned int packer_send_cmd : SC_DEBUG_11_packer_send_cmd_SIZE;
+ unsigned int packer_send_quads : SC_DEBUG_11_packer_send_quads_SIZE;
+ unsigned int iterator_input_fz : SC_DEBUG_11_iterator_input_fz_SIZE;
+ unsigned int pkr_fetch_new_prim_data : SC_DEBUG_11_pkr_fetch_new_prim_data_SIZE;
+ unsigned int ez_prim_data_ready : SC_DEBUG_11_ez_prim_data_ready_SIZE;
+ unsigned int pkr_fetch_new_sample_data : SC_DEBUG_11_pkr_fetch_new_sample_data_SIZE;
+ unsigned int ez_sample_data_ready : SC_DEBUG_11_ez_sample_data_ready_SIZE;
+ } sc_debug_11_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sc_debug_11_t f;
+} sc_debug_11_u;
+
+
+/*
+ * SC_DEBUG_12 struct
+ */
+
+#define SC_DEBUG_12_SQ_iterator_free_buff_SIZE 1
+#define SC_DEBUG_12_event_id_SIZE 5
+#define SC_DEBUG_12_event_flag_SIZE 1
+#define SC_DEBUG_12_itercmdfifo_busy_nc_dly_SIZE 1
+#define SC_DEBUG_12_itercmdfifo_full_SIZE 1
+#define SC_DEBUG_12_itercmdfifo_empty_SIZE 1
+#define SC_DEBUG_12_iter_ds_one_clk_command_SIZE 1
+#define SC_DEBUG_12_iter_ds_end_of_prim0_SIZE 1
+#define SC_DEBUG_12_iter_ds_end_of_vector_SIZE 1
+#define SC_DEBUG_12_iter_qdhit0_SIZE 1
+#define SC_DEBUG_12_bc_use_centers_reg_SIZE 1
+#define SC_DEBUG_12_bc_output_xy_reg_SIZE 1
+#define SC_DEBUG_12_iter_phase_out_SIZE 2
+#define SC_DEBUG_12_iter_phase_reg_SIZE 2
+#define SC_DEBUG_12_iterator_SP_valid_SIZE 1
+#define SC_DEBUG_12_eopv_reg_SIZE 1
+#define SC_DEBUG_12_one_clk_cmd_reg_SIZE 1
+#define SC_DEBUG_12_iter_dx_end_of_prim_SIZE 1
+#define SC_DEBUG_12_trigger_SIZE 1
+
+#define SC_DEBUG_12_SQ_iterator_free_buff_SHIFT 0
+#define SC_DEBUG_12_event_id_SHIFT 1
+#define SC_DEBUG_12_event_flag_SHIFT 6
+#define SC_DEBUG_12_itercmdfifo_busy_nc_dly_SHIFT 7
+#define SC_DEBUG_12_itercmdfifo_full_SHIFT 8
+#define SC_DEBUG_12_itercmdfifo_empty_SHIFT 9
+#define SC_DEBUG_12_iter_ds_one_clk_command_SHIFT 10
+#define SC_DEBUG_12_iter_ds_end_of_prim0_SHIFT 11
+#define SC_DEBUG_12_iter_ds_end_of_vector_SHIFT 12
+#define SC_DEBUG_12_iter_qdhit0_SHIFT 13
+#define SC_DEBUG_12_bc_use_centers_reg_SHIFT 14
+#define SC_DEBUG_12_bc_output_xy_reg_SHIFT 15
+#define SC_DEBUG_12_iter_phase_out_SHIFT 16
+#define SC_DEBUG_12_iter_phase_reg_SHIFT 18
+#define SC_DEBUG_12_iterator_SP_valid_SHIFT 20
+#define SC_DEBUG_12_eopv_reg_SHIFT 21
+#define SC_DEBUG_12_one_clk_cmd_reg_SHIFT 22
+#define SC_DEBUG_12_iter_dx_end_of_prim_SHIFT 23
+#define SC_DEBUG_12_trigger_SHIFT 31
+
+#define SC_DEBUG_12_SQ_iterator_free_buff_MASK 0x00000001
+#define SC_DEBUG_12_event_id_MASK 0x0000003e
+#define SC_DEBUG_12_event_flag_MASK 0x00000040
+#define SC_DEBUG_12_itercmdfifo_busy_nc_dly_MASK 0x00000080
+#define SC_DEBUG_12_itercmdfifo_full_MASK 0x00000100
+#define SC_DEBUG_12_itercmdfifo_empty_MASK 0x00000200
+#define SC_DEBUG_12_iter_ds_one_clk_command_MASK 0x00000400
+#define SC_DEBUG_12_iter_ds_end_of_prim0_MASK 0x00000800
+#define SC_DEBUG_12_iter_ds_end_of_vector_MASK 0x00001000
+#define SC_DEBUG_12_iter_qdhit0_MASK 0x00002000
+#define SC_DEBUG_12_bc_use_centers_reg_MASK 0x00004000
+#define SC_DEBUG_12_bc_output_xy_reg_MASK 0x00008000
+#define SC_DEBUG_12_iter_phase_out_MASK 0x00030000
+#define SC_DEBUG_12_iter_phase_reg_MASK 0x000c0000
+#define SC_DEBUG_12_iterator_SP_valid_MASK 0x00100000
+#define SC_DEBUG_12_eopv_reg_MASK 0x00200000
+#define SC_DEBUG_12_one_clk_cmd_reg_MASK 0x00400000
+#define SC_DEBUG_12_iter_dx_end_of_prim_MASK 0x00800000
+#define SC_DEBUG_12_trigger_MASK 0x80000000
+
+#define SC_DEBUG_12_MASK \
+ (SC_DEBUG_12_SQ_iterator_free_buff_MASK | \
+ SC_DEBUG_12_event_id_MASK | \
+ SC_DEBUG_12_event_flag_MASK | \
+ SC_DEBUG_12_itercmdfifo_busy_nc_dly_MASK | \
+ SC_DEBUG_12_itercmdfifo_full_MASK | \
+ SC_DEBUG_12_itercmdfifo_empty_MASK | \
+ SC_DEBUG_12_iter_ds_one_clk_command_MASK | \
+ SC_DEBUG_12_iter_ds_end_of_prim0_MASK | \
+ SC_DEBUG_12_iter_ds_end_of_vector_MASK | \
+ SC_DEBUG_12_iter_qdhit0_MASK | \
+ SC_DEBUG_12_bc_use_centers_reg_MASK | \
+ SC_DEBUG_12_bc_output_xy_reg_MASK | \
+ SC_DEBUG_12_iter_phase_out_MASK | \
+ SC_DEBUG_12_iter_phase_reg_MASK | \
+ SC_DEBUG_12_iterator_SP_valid_MASK | \
+ SC_DEBUG_12_eopv_reg_MASK | \
+ SC_DEBUG_12_one_clk_cmd_reg_MASK | \
+ SC_DEBUG_12_iter_dx_end_of_prim_MASK | \
+ SC_DEBUG_12_trigger_MASK)
+
+#define SC_DEBUG_12(sq_iterator_free_buff, event_id, event_flag, itercmdfifo_busy_nc_dly, itercmdfifo_full, itercmdfifo_empty, iter_ds_one_clk_command, iter_ds_end_of_prim0, iter_ds_end_of_vector, iter_qdhit0, bc_use_centers_reg, bc_output_xy_reg, iter_phase_out, iter_phase_reg, iterator_sp_valid, eopv_reg, one_clk_cmd_reg, iter_dx_end_of_prim, trigger) \
+ ((sq_iterator_free_buff << SC_DEBUG_12_SQ_iterator_free_buff_SHIFT) | \
+ (event_id << SC_DEBUG_12_event_id_SHIFT) | \
+ (event_flag << SC_DEBUG_12_event_flag_SHIFT) | \
+ (itercmdfifo_busy_nc_dly << SC_DEBUG_12_itercmdfifo_busy_nc_dly_SHIFT) | \
+ (itercmdfifo_full << SC_DEBUG_12_itercmdfifo_full_SHIFT) | \
+ (itercmdfifo_empty << SC_DEBUG_12_itercmdfifo_empty_SHIFT) | \
+ (iter_ds_one_clk_command << SC_DEBUG_12_iter_ds_one_clk_command_SHIFT) | \
+ (iter_ds_end_of_prim0 << SC_DEBUG_12_iter_ds_end_of_prim0_SHIFT) | \
+ (iter_ds_end_of_vector << SC_DEBUG_12_iter_ds_end_of_vector_SHIFT) | \
+ (iter_qdhit0 << SC_DEBUG_12_iter_qdhit0_SHIFT) | \
+ (bc_use_centers_reg << SC_DEBUG_12_bc_use_centers_reg_SHIFT) | \
+ (bc_output_xy_reg << SC_DEBUG_12_bc_output_xy_reg_SHIFT) | \
+ (iter_phase_out << SC_DEBUG_12_iter_phase_out_SHIFT) | \
+ (iter_phase_reg << SC_DEBUG_12_iter_phase_reg_SHIFT) | \
+ (iterator_sp_valid << SC_DEBUG_12_iterator_SP_valid_SHIFT) | \
+ (eopv_reg << SC_DEBUG_12_eopv_reg_SHIFT) | \
+ (one_clk_cmd_reg << SC_DEBUG_12_one_clk_cmd_reg_SHIFT) | \
+ (iter_dx_end_of_prim << SC_DEBUG_12_iter_dx_end_of_prim_SHIFT) | \
+ (trigger << SC_DEBUG_12_trigger_SHIFT))
+
+#define SC_DEBUG_12_GET_SQ_iterator_free_buff(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_SQ_iterator_free_buff_MASK) >> SC_DEBUG_12_SQ_iterator_free_buff_SHIFT)
+#define SC_DEBUG_12_GET_event_id(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_event_id_MASK) >> SC_DEBUG_12_event_id_SHIFT)
+#define SC_DEBUG_12_GET_event_flag(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_event_flag_MASK) >> SC_DEBUG_12_event_flag_SHIFT)
+#define SC_DEBUG_12_GET_itercmdfifo_busy_nc_dly(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_itercmdfifo_busy_nc_dly_MASK) >> SC_DEBUG_12_itercmdfifo_busy_nc_dly_SHIFT)
+#define SC_DEBUG_12_GET_itercmdfifo_full(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_itercmdfifo_full_MASK) >> SC_DEBUG_12_itercmdfifo_full_SHIFT)
+#define SC_DEBUG_12_GET_itercmdfifo_empty(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_itercmdfifo_empty_MASK) >> SC_DEBUG_12_itercmdfifo_empty_SHIFT)
+#define SC_DEBUG_12_GET_iter_ds_one_clk_command(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_iter_ds_one_clk_command_MASK) >> SC_DEBUG_12_iter_ds_one_clk_command_SHIFT)
+#define SC_DEBUG_12_GET_iter_ds_end_of_prim0(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_iter_ds_end_of_prim0_MASK) >> SC_DEBUG_12_iter_ds_end_of_prim0_SHIFT)
+#define SC_DEBUG_12_GET_iter_ds_end_of_vector(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_iter_ds_end_of_vector_MASK) >> SC_DEBUG_12_iter_ds_end_of_vector_SHIFT)
+#define SC_DEBUG_12_GET_iter_qdhit0(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_iter_qdhit0_MASK) >> SC_DEBUG_12_iter_qdhit0_SHIFT)
+#define SC_DEBUG_12_GET_bc_use_centers_reg(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_bc_use_centers_reg_MASK) >> SC_DEBUG_12_bc_use_centers_reg_SHIFT)
+#define SC_DEBUG_12_GET_bc_output_xy_reg(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_bc_output_xy_reg_MASK) >> SC_DEBUG_12_bc_output_xy_reg_SHIFT)
+#define SC_DEBUG_12_GET_iter_phase_out(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_iter_phase_out_MASK) >> SC_DEBUG_12_iter_phase_out_SHIFT)
+#define SC_DEBUG_12_GET_iter_phase_reg(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_iter_phase_reg_MASK) >> SC_DEBUG_12_iter_phase_reg_SHIFT)
+#define SC_DEBUG_12_GET_iterator_SP_valid(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_iterator_SP_valid_MASK) >> SC_DEBUG_12_iterator_SP_valid_SHIFT)
+#define SC_DEBUG_12_GET_eopv_reg(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_eopv_reg_MASK) >> SC_DEBUG_12_eopv_reg_SHIFT)
+#define SC_DEBUG_12_GET_one_clk_cmd_reg(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_one_clk_cmd_reg_MASK) >> SC_DEBUG_12_one_clk_cmd_reg_SHIFT)
+#define SC_DEBUG_12_GET_iter_dx_end_of_prim(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_iter_dx_end_of_prim_MASK) >> SC_DEBUG_12_iter_dx_end_of_prim_SHIFT)
+#define SC_DEBUG_12_GET_trigger(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_trigger_MASK) >> SC_DEBUG_12_trigger_SHIFT)
+
+#define SC_DEBUG_12_SET_SQ_iterator_free_buff(sc_debug_12_reg, sq_iterator_free_buff) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_SQ_iterator_free_buff_MASK) | (sq_iterator_free_buff << SC_DEBUG_12_SQ_iterator_free_buff_SHIFT)
+#define SC_DEBUG_12_SET_event_id(sc_debug_12_reg, event_id) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_event_id_MASK) | (event_id << SC_DEBUG_12_event_id_SHIFT)
+#define SC_DEBUG_12_SET_event_flag(sc_debug_12_reg, event_flag) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_event_flag_MASK) | (event_flag << SC_DEBUG_12_event_flag_SHIFT)
+#define SC_DEBUG_12_SET_itercmdfifo_busy_nc_dly(sc_debug_12_reg, itercmdfifo_busy_nc_dly) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_itercmdfifo_busy_nc_dly_MASK) | (itercmdfifo_busy_nc_dly << SC_DEBUG_12_itercmdfifo_busy_nc_dly_SHIFT)
+#define SC_DEBUG_12_SET_itercmdfifo_full(sc_debug_12_reg, itercmdfifo_full) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_itercmdfifo_full_MASK) | (itercmdfifo_full << SC_DEBUG_12_itercmdfifo_full_SHIFT)
+#define SC_DEBUG_12_SET_itercmdfifo_empty(sc_debug_12_reg, itercmdfifo_empty) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_itercmdfifo_empty_MASK) | (itercmdfifo_empty << SC_DEBUG_12_itercmdfifo_empty_SHIFT)
+#define SC_DEBUG_12_SET_iter_ds_one_clk_command(sc_debug_12_reg, iter_ds_one_clk_command) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_iter_ds_one_clk_command_MASK) | (iter_ds_one_clk_command << SC_DEBUG_12_iter_ds_one_clk_command_SHIFT)
+#define SC_DEBUG_12_SET_iter_ds_end_of_prim0(sc_debug_12_reg, iter_ds_end_of_prim0) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_iter_ds_end_of_prim0_MASK) | (iter_ds_end_of_prim0 << SC_DEBUG_12_iter_ds_end_of_prim0_SHIFT)
+#define SC_DEBUG_12_SET_iter_ds_end_of_vector(sc_debug_12_reg, iter_ds_end_of_vector) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_iter_ds_end_of_vector_MASK) | (iter_ds_end_of_vector << SC_DEBUG_12_iter_ds_end_of_vector_SHIFT)
+#define SC_DEBUG_12_SET_iter_qdhit0(sc_debug_12_reg, iter_qdhit0) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_iter_qdhit0_MASK) | (iter_qdhit0 << SC_DEBUG_12_iter_qdhit0_SHIFT)
+#define SC_DEBUG_12_SET_bc_use_centers_reg(sc_debug_12_reg, bc_use_centers_reg) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_bc_use_centers_reg_MASK) | (bc_use_centers_reg << SC_DEBUG_12_bc_use_centers_reg_SHIFT)
+#define SC_DEBUG_12_SET_bc_output_xy_reg(sc_debug_12_reg, bc_output_xy_reg) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_bc_output_xy_reg_MASK) | (bc_output_xy_reg << SC_DEBUG_12_bc_output_xy_reg_SHIFT)
+#define SC_DEBUG_12_SET_iter_phase_out(sc_debug_12_reg, iter_phase_out) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_iter_phase_out_MASK) | (iter_phase_out << SC_DEBUG_12_iter_phase_out_SHIFT)
+#define SC_DEBUG_12_SET_iter_phase_reg(sc_debug_12_reg, iter_phase_reg) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_iter_phase_reg_MASK) | (iter_phase_reg << SC_DEBUG_12_iter_phase_reg_SHIFT)
+#define SC_DEBUG_12_SET_iterator_SP_valid(sc_debug_12_reg, iterator_sp_valid) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_iterator_SP_valid_MASK) | (iterator_sp_valid << SC_DEBUG_12_iterator_SP_valid_SHIFT)
+#define SC_DEBUG_12_SET_eopv_reg(sc_debug_12_reg, eopv_reg) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_eopv_reg_MASK) | (eopv_reg << SC_DEBUG_12_eopv_reg_SHIFT)
+#define SC_DEBUG_12_SET_one_clk_cmd_reg(sc_debug_12_reg, one_clk_cmd_reg) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_one_clk_cmd_reg_MASK) | (one_clk_cmd_reg << SC_DEBUG_12_one_clk_cmd_reg_SHIFT)
+#define SC_DEBUG_12_SET_iter_dx_end_of_prim(sc_debug_12_reg, iter_dx_end_of_prim) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_iter_dx_end_of_prim_MASK) | (iter_dx_end_of_prim << SC_DEBUG_12_iter_dx_end_of_prim_SHIFT)
+#define SC_DEBUG_12_SET_trigger(sc_debug_12_reg, trigger) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_trigger_MASK) | (trigger << SC_DEBUG_12_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sc_debug_12_t {
+ unsigned int sq_iterator_free_buff : SC_DEBUG_12_SQ_iterator_free_buff_SIZE;
+ unsigned int event_id : SC_DEBUG_12_event_id_SIZE;
+ unsigned int event_flag : SC_DEBUG_12_event_flag_SIZE;
+ unsigned int itercmdfifo_busy_nc_dly : SC_DEBUG_12_itercmdfifo_busy_nc_dly_SIZE;
+ unsigned int itercmdfifo_full : SC_DEBUG_12_itercmdfifo_full_SIZE;
+ unsigned int itercmdfifo_empty : SC_DEBUG_12_itercmdfifo_empty_SIZE;
+ unsigned int iter_ds_one_clk_command : SC_DEBUG_12_iter_ds_one_clk_command_SIZE;
+ unsigned int iter_ds_end_of_prim0 : SC_DEBUG_12_iter_ds_end_of_prim0_SIZE;
+ unsigned int iter_ds_end_of_vector : SC_DEBUG_12_iter_ds_end_of_vector_SIZE;
+ unsigned int iter_qdhit0 : SC_DEBUG_12_iter_qdhit0_SIZE;
+ unsigned int bc_use_centers_reg : SC_DEBUG_12_bc_use_centers_reg_SIZE;
+ unsigned int bc_output_xy_reg : SC_DEBUG_12_bc_output_xy_reg_SIZE;
+ unsigned int iter_phase_out : SC_DEBUG_12_iter_phase_out_SIZE;
+ unsigned int iter_phase_reg : SC_DEBUG_12_iter_phase_reg_SIZE;
+ unsigned int iterator_sp_valid : SC_DEBUG_12_iterator_SP_valid_SIZE;
+ unsigned int eopv_reg : SC_DEBUG_12_eopv_reg_SIZE;
+ unsigned int one_clk_cmd_reg : SC_DEBUG_12_one_clk_cmd_reg_SIZE;
+ unsigned int iter_dx_end_of_prim : SC_DEBUG_12_iter_dx_end_of_prim_SIZE;
+ unsigned int : 7;
+ unsigned int trigger : SC_DEBUG_12_trigger_SIZE;
+ } sc_debug_12_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sc_debug_12_t {
+ unsigned int trigger : SC_DEBUG_12_trigger_SIZE;
+ unsigned int : 7;
+ unsigned int iter_dx_end_of_prim : SC_DEBUG_12_iter_dx_end_of_prim_SIZE;
+ unsigned int one_clk_cmd_reg : SC_DEBUG_12_one_clk_cmd_reg_SIZE;
+ unsigned int eopv_reg : SC_DEBUG_12_eopv_reg_SIZE;
+ unsigned int iterator_sp_valid : SC_DEBUG_12_iterator_SP_valid_SIZE;
+ unsigned int iter_phase_reg : SC_DEBUG_12_iter_phase_reg_SIZE;
+ unsigned int iter_phase_out : SC_DEBUG_12_iter_phase_out_SIZE;
+ unsigned int bc_output_xy_reg : SC_DEBUG_12_bc_output_xy_reg_SIZE;
+ unsigned int bc_use_centers_reg : SC_DEBUG_12_bc_use_centers_reg_SIZE;
+ unsigned int iter_qdhit0 : SC_DEBUG_12_iter_qdhit0_SIZE;
+ unsigned int iter_ds_end_of_vector : SC_DEBUG_12_iter_ds_end_of_vector_SIZE;
+ unsigned int iter_ds_end_of_prim0 : SC_DEBUG_12_iter_ds_end_of_prim0_SIZE;
+ unsigned int iter_ds_one_clk_command : SC_DEBUG_12_iter_ds_one_clk_command_SIZE;
+ unsigned int itercmdfifo_empty : SC_DEBUG_12_itercmdfifo_empty_SIZE;
+ unsigned int itercmdfifo_full : SC_DEBUG_12_itercmdfifo_full_SIZE;
+ unsigned int itercmdfifo_busy_nc_dly : SC_DEBUG_12_itercmdfifo_busy_nc_dly_SIZE;
+ unsigned int event_flag : SC_DEBUG_12_event_flag_SIZE;
+ unsigned int event_id : SC_DEBUG_12_event_id_SIZE;
+ unsigned int sq_iterator_free_buff : SC_DEBUG_12_SQ_iterator_free_buff_SIZE;
+ } sc_debug_12_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sc_debug_12_t f;
+} sc_debug_12_u;
+
+
+#endif
+
+
+#if !defined (_VGT_FIDDLE_H)
+#define _VGT_FIDDLE_H
+
+/*******************************************************
+ * Enums
+ *******************************************************/
+
+/*
+ * VGT_OUT_PRIM_TYPE enum
+ */
+
+#define VGT_OUT_POINT 0x00000000
+#define VGT_OUT_LINE 0x00000001
+#define VGT_OUT_TRI 0x00000002
+#define VGT_OUT_RECT_V0 0x00000003
+#define VGT_OUT_RECT_V1 0x00000004
+#define VGT_OUT_RECT_V2 0x00000005
+#define VGT_OUT_RECT_V3 0x00000006
+#define VGT_OUT_RESERVED 0x00000007
+#define VGT_TE_QUAD 0x00000008
+#define VGT_TE_PRIM_INDEX_LINE 0x00000009
+#define VGT_TE_PRIM_INDEX_TRI 0x0000000a
+#define VGT_TE_PRIM_INDEX_QUAD 0x0000000b
+
+
+/*******************************************************
+ * Values
+ *******************************************************/
+
+
+/*******************************************************
+ * Structures
+ *******************************************************/
+
+/*
+ * GFX_COPY_STATE struct
+ */
+
+#define GFX_COPY_STATE_SRC_STATE_ID_SIZE 1
+
+#define GFX_COPY_STATE_SRC_STATE_ID_SHIFT 0
+
+#define GFX_COPY_STATE_SRC_STATE_ID_MASK 0x00000001
+
+#define GFX_COPY_STATE_MASK \
+ (GFX_COPY_STATE_SRC_STATE_ID_MASK)
+
+#define GFX_COPY_STATE(src_state_id) \
+ ((src_state_id << GFX_COPY_STATE_SRC_STATE_ID_SHIFT))
+
+#define GFX_COPY_STATE_GET_SRC_STATE_ID(gfx_copy_state) \
+ ((gfx_copy_state & GFX_COPY_STATE_SRC_STATE_ID_MASK) >> GFX_COPY_STATE_SRC_STATE_ID_SHIFT)
+
+#define GFX_COPY_STATE_SET_SRC_STATE_ID(gfx_copy_state_reg, src_state_id) \
+ gfx_copy_state_reg = (gfx_copy_state_reg & ~GFX_COPY_STATE_SRC_STATE_ID_MASK) | (src_state_id << GFX_COPY_STATE_SRC_STATE_ID_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _gfx_copy_state_t {
+ unsigned int src_state_id : GFX_COPY_STATE_SRC_STATE_ID_SIZE;
+ unsigned int : 31;
+ } gfx_copy_state_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _gfx_copy_state_t {
+ unsigned int : 31;
+ unsigned int src_state_id : GFX_COPY_STATE_SRC_STATE_ID_SIZE;
+ } gfx_copy_state_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ gfx_copy_state_t f;
+} gfx_copy_state_u;
+
+
+/*
+ * VGT_DRAW_INITIATOR struct
+ */
+
+#define VGT_DRAW_INITIATOR_PRIM_TYPE_SIZE 6
+#define VGT_DRAW_INITIATOR_SOURCE_SELECT_SIZE 2
+#define VGT_DRAW_INITIATOR_INDEX_SIZE_SIZE 1
+#define VGT_DRAW_INITIATOR_NOT_EOP_SIZE 1
+#define VGT_DRAW_INITIATOR_SMALL_INDEX_SIZE 1
+#define VGT_DRAW_INITIATOR_PRE_FETCH_CULL_ENABLE_SIZE 1
+#define VGT_DRAW_INITIATOR_GRP_CULL_ENABLE_SIZE 1
+#define VGT_DRAW_INITIATOR_NUM_INDICES_SIZE 16
+
+#define VGT_DRAW_INITIATOR_PRIM_TYPE_SHIFT 0
+#define VGT_DRAW_INITIATOR_SOURCE_SELECT_SHIFT 6
+#define VGT_DRAW_INITIATOR_INDEX_SIZE_SHIFT 11
+#define VGT_DRAW_INITIATOR_NOT_EOP_SHIFT 12
+#define VGT_DRAW_INITIATOR_SMALL_INDEX_SHIFT 13
+#define VGT_DRAW_INITIATOR_PRE_FETCH_CULL_ENABLE_SHIFT 14
+#define VGT_DRAW_INITIATOR_GRP_CULL_ENABLE_SHIFT 15
+#define VGT_DRAW_INITIATOR_NUM_INDICES_SHIFT 16
+
+#define VGT_DRAW_INITIATOR_PRIM_TYPE_MASK 0x0000003f
+#define VGT_DRAW_INITIATOR_SOURCE_SELECT_MASK 0x000000c0
+#define VGT_DRAW_INITIATOR_INDEX_SIZE_MASK 0x00000800
+#define VGT_DRAW_INITIATOR_NOT_EOP_MASK 0x00001000
+#define VGT_DRAW_INITIATOR_SMALL_INDEX_MASK 0x00002000
+#define VGT_DRAW_INITIATOR_PRE_FETCH_CULL_ENABLE_MASK 0x00004000
+#define VGT_DRAW_INITIATOR_GRP_CULL_ENABLE_MASK 0x00008000
+#define VGT_DRAW_INITIATOR_NUM_INDICES_MASK 0xffff0000
+
+#define VGT_DRAW_INITIATOR_MASK \
+ (VGT_DRAW_INITIATOR_PRIM_TYPE_MASK | \
+ VGT_DRAW_INITIATOR_SOURCE_SELECT_MASK | \
+ VGT_DRAW_INITIATOR_INDEX_SIZE_MASK | \
+ VGT_DRAW_INITIATOR_NOT_EOP_MASK | \
+ VGT_DRAW_INITIATOR_SMALL_INDEX_MASK | \
+ VGT_DRAW_INITIATOR_PRE_FETCH_CULL_ENABLE_MASK | \
+ VGT_DRAW_INITIATOR_GRP_CULL_ENABLE_MASK | \
+ VGT_DRAW_INITIATOR_NUM_INDICES_MASK)
+
+#define VGT_DRAW_INITIATOR(prim_type, source_select, index_size, not_eop, small_index, pre_fetch_cull_enable, grp_cull_enable, num_indices) \
+ ((prim_type << VGT_DRAW_INITIATOR_PRIM_TYPE_SHIFT) | \
+ (source_select << VGT_DRAW_INITIATOR_SOURCE_SELECT_SHIFT) | \
+ (index_size << VGT_DRAW_INITIATOR_INDEX_SIZE_SHIFT) | \
+ (not_eop << VGT_DRAW_INITIATOR_NOT_EOP_SHIFT) | \
+ (small_index << VGT_DRAW_INITIATOR_SMALL_INDEX_SHIFT) | \
+ (pre_fetch_cull_enable << VGT_DRAW_INITIATOR_PRE_FETCH_CULL_ENABLE_SHIFT) | \
+ (grp_cull_enable << VGT_DRAW_INITIATOR_GRP_CULL_ENABLE_SHIFT) | \
+ (num_indices << VGT_DRAW_INITIATOR_NUM_INDICES_SHIFT))
+
+#define VGT_DRAW_INITIATOR_GET_PRIM_TYPE(vgt_draw_initiator) \
+ ((vgt_draw_initiator & VGT_DRAW_INITIATOR_PRIM_TYPE_MASK) >> VGT_DRAW_INITIATOR_PRIM_TYPE_SHIFT)
+#define VGT_DRAW_INITIATOR_GET_SOURCE_SELECT(vgt_draw_initiator) \
+ ((vgt_draw_initiator & VGT_DRAW_INITIATOR_SOURCE_SELECT_MASK) >> VGT_DRAW_INITIATOR_SOURCE_SELECT_SHIFT)
+#define VGT_DRAW_INITIATOR_GET_INDEX_SIZE(vgt_draw_initiator) \
+ ((vgt_draw_initiator & VGT_DRAW_INITIATOR_INDEX_SIZE_MASK) >> VGT_DRAW_INITIATOR_INDEX_SIZE_SHIFT)
+#define VGT_DRAW_INITIATOR_GET_NOT_EOP(vgt_draw_initiator) \
+ ((vgt_draw_initiator & VGT_DRAW_INITIATOR_NOT_EOP_MASK) >> VGT_DRAW_INITIATOR_NOT_EOP_SHIFT)
+#define VGT_DRAW_INITIATOR_GET_SMALL_INDEX(vgt_draw_initiator) \
+ ((vgt_draw_initiator & VGT_DRAW_INITIATOR_SMALL_INDEX_MASK) >> VGT_DRAW_INITIATOR_SMALL_INDEX_SHIFT)
+#define VGT_DRAW_INITIATOR_GET_PRE_FETCH_CULL_ENABLE(vgt_draw_initiator) \
+ ((vgt_draw_initiator & VGT_DRAW_INITIATOR_PRE_FETCH_CULL_ENABLE_MASK) >> VGT_DRAW_INITIATOR_PRE_FETCH_CULL_ENABLE_SHIFT)
+#define VGT_DRAW_INITIATOR_GET_GRP_CULL_ENABLE(vgt_draw_initiator) \
+ ((vgt_draw_initiator & VGT_DRAW_INITIATOR_GRP_CULL_ENABLE_MASK) >> VGT_DRAW_INITIATOR_GRP_CULL_ENABLE_SHIFT)
+#define VGT_DRAW_INITIATOR_GET_NUM_INDICES(vgt_draw_initiator) \
+ ((vgt_draw_initiator & VGT_DRAW_INITIATOR_NUM_INDICES_MASK) >> VGT_DRAW_INITIATOR_NUM_INDICES_SHIFT)
+
+#define VGT_DRAW_INITIATOR_SET_PRIM_TYPE(vgt_draw_initiator_reg, prim_type) \
+ vgt_draw_initiator_reg = (vgt_draw_initiator_reg & ~VGT_DRAW_INITIATOR_PRIM_TYPE_MASK) | (prim_type << VGT_DRAW_INITIATOR_PRIM_TYPE_SHIFT)
+#define VGT_DRAW_INITIATOR_SET_SOURCE_SELECT(vgt_draw_initiator_reg, source_select) \
+ vgt_draw_initiator_reg = (vgt_draw_initiator_reg & ~VGT_DRAW_INITIATOR_SOURCE_SELECT_MASK) | (source_select << VGT_DRAW_INITIATOR_SOURCE_SELECT_SHIFT)
+#define VGT_DRAW_INITIATOR_SET_INDEX_SIZE(vgt_draw_initiator_reg, index_size) \
+ vgt_draw_initiator_reg = (vgt_draw_initiator_reg & ~VGT_DRAW_INITIATOR_INDEX_SIZE_MASK) | (index_size << VGT_DRAW_INITIATOR_INDEX_SIZE_SHIFT)
+#define VGT_DRAW_INITIATOR_SET_NOT_EOP(vgt_draw_initiator_reg, not_eop) \
+ vgt_draw_initiator_reg = (vgt_draw_initiator_reg & ~VGT_DRAW_INITIATOR_NOT_EOP_MASK) | (not_eop << VGT_DRAW_INITIATOR_NOT_EOP_SHIFT)
+#define VGT_DRAW_INITIATOR_SET_SMALL_INDEX(vgt_draw_initiator_reg, small_index) \
+ vgt_draw_initiator_reg = (vgt_draw_initiator_reg & ~VGT_DRAW_INITIATOR_SMALL_INDEX_MASK) | (small_index << VGT_DRAW_INITIATOR_SMALL_INDEX_SHIFT)
+#define VGT_DRAW_INITIATOR_SET_PRE_FETCH_CULL_ENABLE(vgt_draw_initiator_reg, pre_fetch_cull_enable) \
+ vgt_draw_initiator_reg = (vgt_draw_initiator_reg & ~VGT_DRAW_INITIATOR_PRE_FETCH_CULL_ENABLE_MASK) | (pre_fetch_cull_enable << VGT_DRAW_INITIATOR_PRE_FETCH_CULL_ENABLE_SHIFT)
+#define VGT_DRAW_INITIATOR_SET_GRP_CULL_ENABLE(vgt_draw_initiator_reg, grp_cull_enable) \
+ vgt_draw_initiator_reg = (vgt_draw_initiator_reg & ~VGT_DRAW_INITIATOR_GRP_CULL_ENABLE_MASK) | (grp_cull_enable << VGT_DRAW_INITIATOR_GRP_CULL_ENABLE_SHIFT)
+#define VGT_DRAW_INITIATOR_SET_NUM_INDICES(vgt_draw_initiator_reg, num_indices) \
+ vgt_draw_initiator_reg = (vgt_draw_initiator_reg & ~VGT_DRAW_INITIATOR_NUM_INDICES_MASK) | (num_indices << VGT_DRAW_INITIATOR_NUM_INDICES_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_draw_initiator_t {
+ unsigned int prim_type : VGT_DRAW_INITIATOR_PRIM_TYPE_SIZE;
+ unsigned int source_select : VGT_DRAW_INITIATOR_SOURCE_SELECT_SIZE;
+ unsigned int : 3;
+ unsigned int index_size : VGT_DRAW_INITIATOR_INDEX_SIZE_SIZE;
+ unsigned int not_eop : VGT_DRAW_INITIATOR_NOT_EOP_SIZE;
+ unsigned int small_index : VGT_DRAW_INITIATOR_SMALL_INDEX_SIZE;
+ unsigned int pre_fetch_cull_enable : VGT_DRAW_INITIATOR_PRE_FETCH_CULL_ENABLE_SIZE;
+ unsigned int grp_cull_enable : VGT_DRAW_INITIATOR_GRP_CULL_ENABLE_SIZE;
+ unsigned int num_indices : VGT_DRAW_INITIATOR_NUM_INDICES_SIZE;
+ } vgt_draw_initiator_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_draw_initiator_t {
+ unsigned int num_indices : VGT_DRAW_INITIATOR_NUM_INDICES_SIZE;
+ unsigned int grp_cull_enable : VGT_DRAW_INITIATOR_GRP_CULL_ENABLE_SIZE;
+ unsigned int pre_fetch_cull_enable : VGT_DRAW_INITIATOR_PRE_FETCH_CULL_ENABLE_SIZE;
+ unsigned int small_index : VGT_DRAW_INITIATOR_SMALL_INDEX_SIZE;
+ unsigned int not_eop : VGT_DRAW_INITIATOR_NOT_EOP_SIZE;
+ unsigned int index_size : VGT_DRAW_INITIATOR_INDEX_SIZE_SIZE;
+ unsigned int : 3;
+ unsigned int source_select : VGT_DRAW_INITIATOR_SOURCE_SELECT_SIZE;
+ unsigned int prim_type : VGT_DRAW_INITIATOR_PRIM_TYPE_SIZE;
+ } vgt_draw_initiator_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_draw_initiator_t f;
+} vgt_draw_initiator_u;
+
+
+/*
+ * VGT_EVENT_INITIATOR struct
+ */
+
+#define VGT_EVENT_INITIATOR_EVENT_TYPE_SIZE 6
+
+#define VGT_EVENT_INITIATOR_EVENT_TYPE_SHIFT 0
+
+#define VGT_EVENT_INITIATOR_EVENT_TYPE_MASK 0x0000003f
+
+#define VGT_EVENT_INITIATOR_MASK \
+ (VGT_EVENT_INITIATOR_EVENT_TYPE_MASK)
+
+#define VGT_EVENT_INITIATOR(event_type) \
+ ((event_type << VGT_EVENT_INITIATOR_EVENT_TYPE_SHIFT))
+
+#define VGT_EVENT_INITIATOR_GET_EVENT_TYPE(vgt_event_initiator) \
+ ((vgt_event_initiator & VGT_EVENT_INITIATOR_EVENT_TYPE_MASK) >> VGT_EVENT_INITIATOR_EVENT_TYPE_SHIFT)
+
+#define VGT_EVENT_INITIATOR_SET_EVENT_TYPE(vgt_event_initiator_reg, event_type) \
+ vgt_event_initiator_reg = (vgt_event_initiator_reg & ~VGT_EVENT_INITIATOR_EVENT_TYPE_MASK) | (event_type << VGT_EVENT_INITIATOR_EVENT_TYPE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_event_initiator_t {
+ unsigned int event_type : VGT_EVENT_INITIATOR_EVENT_TYPE_SIZE;
+ unsigned int : 26;
+ } vgt_event_initiator_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_event_initiator_t {
+ unsigned int : 26;
+ unsigned int event_type : VGT_EVENT_INITIATOR_EVENT_TYPE_SIZE;
+ } vgt_event_initiator_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_event_initiator_t f;
+} vgt_event_initiator_u;
+
+
+/*
+ * VGT_DMA_BASE struct
+ */
+
+#define VGT_DMA_BASE_BASE_ADDR_SIZE 32
+
+#define VGT_DMA_BASE_BASE_ADDR_SHIFT 0
+
+#define VGT_DMA_BASE_BASE_ADDR_MASK 0xffffffff
+
+#define VGT_DMA_BASE_MASK \
+ (VGT_DMA_BASE_BASE_ADDR_MASK)
+
+#define VGT_DMA_BASE(base_addr) \
+ ((base_addr << VGT_DMA_BASE_BASE_ADDR_SHIFT))
+
+#define VGT_DMA_BASE_GET_BASE_ADDR(vgt_dma_base) \
+ ((vgt_dma_base & VGT_DMA_BASE_BASE_ADDR_MASK) >> VGT_DMA_BASE_BASE_ADDR_SHIFT)
+
+#define VGT_DMA_BASE_SET_BASE_ADDR(vgt_dma_base_reg, base_addr) \
+ vgt_dma_base_reg = (vgt_dma_base_reg & ~VGT_DMA_BASE_BASE_ADDR_MASK) | (base_addr << VGT_DMA_BASE_BASE_ADDR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_dma_base_t {
+ unsigned int base_addr : VGT_DMA_BASE_BASE_ADDR_SIZE;
+ } vgt_dma_base_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_dma_base_t {
+ unsigned int base_addr : VGT_DMA_BASE_BASE_ADDR_SIZE;
+ } vgt_dma_base_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_dma_base_t f;
+} vgt_dma_base_u;
+
+
+/*
+ * VGT_DMA_SIZE struct
+ */
+
+#define VGT_DMA_SIZE_NUM_WORDS_SIZE 24
+#define VGT_DMA_SIZE_SWAP_MODE_SIZE 2
+
+#define VGT_DMA_SIZE_NUM_WORDS_SHIFT 0
+#define VGT_DMA_SIZE_SWAP_MODE_SHIFT 30
+
+#define VGT_DMA_SIZE_NUM_WORDS_MASK 0x00ffffff
+#define VGT_DMA_SIZE_SWAP_MODE_MASK 0xc0000000
+
+#define VGT_DMA_SIZE_MASK \
+ (VGT_DMA_SIZE_NUM_WORDS_MASK | \
+ VGT_DMA_SIZE_SWAP_MODE_MASK)
+
+#define VGT_DMA_SIZE(num_words, swap_mode) \
+ ((num_words << VGT_DMA_SIZE_NUM_WORDS_SHIFT) | \
+ (swap_mode << VGT_DMA_SIZE_SWAP_MODE_SHIFT))
+
+#define VGT_DMA_SIZE_GET_NUM_WORDS(vgt_dma_size) \
+ ((vgt_dma_size & VGT_DMA_SIZE_NUM_WORDS_MASK) >> VGT_DMA_SIZE_NUM_WORDS_SHIFT)
+#define VGT_DMA_SIZE_GET_SWAP_MODE(vgt_dma_size) \
+ ((vgt_dma_size & VGT_DMA_SIZE_SWAP_MODE_MASK) >> VGT_DMA_SIZE_SWAP_MODE_SHIFT)
+
+#define VGT_DMA_SIZE_SET_NUM_WORDS(vgt_dma_size_reg, num_words) \
+ vgt_dma_size_reg = (vgt_dma_size_reg & ~VGT_DMA_SIZE_NUM_WORDS_MASK) | (num_words << VGT_DMA_SIZE_NUM_WORDS_SHIFT)
+#define VGT_DMA_SIZE_SET_SWAP_MODE(vgt_dma_size_reg, swap_mode) \
+ vgt_dma_size_reg = (vgt_dma_size_reg & ~VGT_DMA_SIZE_SWAP_MODE_MASK) | (swap_mode << VGT_DMA_SIZE_SWAP_MODE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_dma_size_t {
+ unsigned int num_words : VGT_DMA_SIZE_NUM_WORDS_SIZE;
+ unsigned int : 6;
+ unsigned int swap_mode : VGT_DMA_SIZE_SWAP_MODE_SIZE;
+ } vgt_dma_size_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_dma_size_t {
+ unsigned int swap_mode : VGT_DMA_SIZE_SWAP_MODE_SIZE;
+ unsigned int : 6;
+ unsigned int num_words : VGT_DMA_SIZE_NUM_WORDS_SIZE;
+ } vgt_dma_size_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_dma_size_t f;
+} vgt_dma_size_u;
+
+
+/*
+ * VGT_BIN_BASE struct
+ */
+
+#define VGT_BIN_BASE_BIN_BASE_ADDR_SIZE 32
+
+#define VGT_BIN_BASE_BIN_BASE_ADDR_SHIFT 0
+
+#define VGT_BIN_BASE_BIN_BASE_ADDR_MASK 0xffffffff
+
+#define VGT_BIN_BASE_MASK \
+ (VGT_BIN_BASE_BIN_BASE_ADDR_MASK)
+
+#define VGT_BIN_BASE(bin_base_addr) \
+ ((bin_base_addr << VGT_BIN_BASE_BIN_BASE_ADDR_SHIFT))
+
+#define VGT_BIN_BASE_GET_BIN_BASE_ADDR(vgt_bin_base) \
+ ((vgt_bin_base & VGT_BIN_BASE_BIN_BASE_ADDR_MASK) >> VGT_BIN_BASE_BIN_BASE_ADDR_SHIFT)
+
+#define VGT_BIN_BASE_SET_BIN_BASE_ADDR(vgt_bin_base_reg, bin_base_addr) \
+ vgt_bin_base_reg = (vgt_bin_base_reg & ~VGT_BIN_BASE_BIN_BASE_ADDR_MASK) | (bin_base_addr << VGT_BIN_BASE_BIN_BASE_ADDR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_bin_base_t {
+ unsigned int bin_base_addr : VGT_BIN_BASE_BIN_BASE_ADDR_SIZE;
+ } vgt_bin_base_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_bin_base_t {
+ unsigned int bin_base_addr : VGT_BIN_BASE_BIN_BASE_ADDR_SIZE;
+ } vgt_bin_base_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_bin_base_t f;
+} vgt_bin_base_u;
+
+
+/*
+ * VGT_BIN_SIZE struct
+ */
+
+#define VGT_BIN_SIZE_NUM_WORDS_SIZE 24
+
+#define VGT_BIN_SIZE_NUM_WORDS_SHIFT 0
+
+#define VGT_BIN_SIZE_NUM_WORDS_MASK 0x00ffffff
+
+#define VGT_BIN_SIZE_MASK \
+ (VGT_BIN_SIZE_NUM_WORDS_MASK)
+
+#define VGT_BIN_SIZE(num_words) \
+ ((num_words << VGT_BIN_SIZE_NUM_WORDS_SHIFT))
+
+#define VGT_BIN_SIZE_GET_NUM_WORDS(vgt_bin_size) \
+ ((vgt_bin_size & VGT_BIN_SIZE_NUM_WORDS_MASK) >> VGT_BIN_SIZE_NUM_WORDS_SHIFT)
+
+#define VGT_BIN_SIZE_SET_NUM_WORDS(vgt_bin_size_reg, num_words) \
+ vgt_bin_size_reg = (vgt_bin_size_reg & ~VGT_BIN_SIZE_NUM_WORDS_MASK) | (num_words << VGT_BIN_SIZE_NUM_WORDS_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_bin_size_t {
+ unsigned int num_words : VGT_BIN_SIZE_NUM_WORDS_SIZE;
+ unsigned int : 8;
+ } vgt_bin_size_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_bin_size_t {
+ unsigned int : 8;
+ unsigned int num_words : VGT_BIN_SIZE_NUM_WORDS_SIZE;
+ } vgt_bin_size_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_bin_size_t f;
+} vgt_bin_size_u;
+
+
+/*
+ * VGT_CURRENT_BIN_ID_MIN struct
+ */
+
+#define VGT_CURRENT_BIN_ID_MIN_COLUMN_SIZE 3
+#define VGT_CURRENT_BIN_ID_MIN_ROW_SIZE 3
+#define VGT_CURRENT_BIN_ID_MIN_GUARD_BAND_SIZE 3
+
+#define VGT_CURRENT_BIN_ID_MIN_COLUMN_SHIFT 0
+#define VGT_CURRENT_BIN_ID_MIN_ROW_SHIFT 3
+#define VGT_CURRENT_BIN_ID_MIN_GUARD_BAND_SHIFT 6
+
+#define VGT_CURRENT_BIN_ID_MIN_COLUMN_MASK 0x00000007
+#define VGT_CURRENT_BIN_ID_MIN_ROW_MASK 0x00000038
+#define VGT_CURRENT_BIN_ID_MIN_GUARD_BAND_MASK 0x000001c0
+
+#define VGT_CURRENT_BIN_ID_MIN_MASK \
+ (VGT_CURRENT_BIN_ID_MIN_COLUMN_MASK | \
+ VGT_CURRENT_BIN_ID_MIN_ROW_MASK | \
+ VGT_CURRENT_BIN_ID_MIN_GUARD_BAND_MASK)
+
+#define VGT_CURRENT_BIN_ID_MIN(column, row, guard_band) \
+ ((column << VGT_CURRENT_BIN_ID_MIN_COLUMN_SHIFT) | \
+ (row << VGT_CURRENT_BIN_ID_MIN_ROW_SHIFT) | \
+ (guard_band << VGT_CURRENT_BIN_ID_MIN_GUARD_BAND_SHIFT))
+
+#define VGT_CURRENT_BIN_ID_MIN_GET_COLUMN(vgt_current_bin_id_min) \
+ ((vgt_current_bin_id_min & VGT_CURRENT_BIN_ID_MIN_COLUMN_MASK) >> VGT_CURRENT_BIN_ID_MIN_COLUMN_SHIFT)
+#define VGT_CURRENT_BIN_ID_MIN_GET_ROW(vgt_current_bin_id_min) \
+ ((vgt_current_bin_id_min & VGT_CURRENT_BIN_ID_MIN_ROW_MASK) >> VGT_CURRENT_BIN_ID_MIN_ROW_SHIFT)
+#define VGT_CURRENT_BIN_ID_MIN_GET_GUARD_BAND(vgt_current_bin_id_min) \
+ ((vgt_current_bin_id_min & VGT_CURRENT_BIN_ID_MIN_GUARD_BAND_MASK) >> VGT_CURRENT_BIN_ID_MIN_GUARD_BAND_SHIFT)
+
+#define VGT_CURRENT_BIN_ID_MIN_SET_COLUMN(vgt_current_bin_id_min_reg, column) \
+ vgt_current_bin_id_min_reg = (vgt_current_bin_id_min_reg & ~VGT_CURRENT_BIN_ID_MIN_COLUMN_MASK) | (column << VGT_CURRENT_BIN_ID_MIN_COLUMN_SHIFT)
+#define VGT_CURRENT_BIN_ID_MIN_SET_ROW(vgt_current_bin_id_min_reg, row) \
+ vgt_current_bin_id_min_reg = (vgt_current_bin_id_min_reg & ~VGT_CURRENT_BIN_ID_MIN_ROW_MASK) | (row << VGT_CURRENT_BIN_ID_MIN_ROW_SHIFT)
+#define VGT_CURRENT_BIN_ID_MIN_SET_GUARD_BAND(vgt_current_bin_id_min_reg, guard_band) \
+ vgt_current_bin_id_min_reg = (vgt_current_bin_id_min_reg & ~VGT_CURRENT_BIN_ID_MIN_GUARD_BAND_MASK) | (guard_band << VGT_CURRENT_BIN_ID_MIN_GUARD_BAND_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_current_bin_id_min_t {
+ unsigned int column : VGT_CURRENT_BIN_ID_MIN_COLUMN_SIZE;
+ unsigned int row : VGT_CURRENT_BIN_ID_MIN_ROW_SIZE;
+ unsigned int guard_band : VGT_CURRENT_BIN_ID_MIN_GUARD_BAND_SIZE;
+ unsigned int : 23;
+ } vgt_current_bin_id_min_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_current_bin_id_min_t {
+ unsigned int : 23;
+ unsigned int guard_band : VGT_CURRENT_BIN_ID_MIN_GUARD_BAND_SIZE;
+ unsigned int row : VGT_CURRENT_BIN_ID_MIN_ROW_SIZE;
+ unsigned int column : VGT_CURRENT_BIN_ID_MIN_COLUMN_SIZE;
+ } vgt_current_bin_id_min_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_current_bin_id_min_t f;
+} vgt_current_bin_id_min_u;
+
+
+/*
+ * VGT_CURRENT_BIN_ID_MAX struct
+ */
+
+#define VGT_CURRENT_BIN_ID_MAX_COLUMN_SIZE 3
+#define VGT_CURRENT_BIN_ID_MAX_ROW_SIZE 3
+#define VGT_CURRENT_BIN_ID_MAX_GUARD_BAND_SIZE 3
+
+#define VGT_CURRENT_BIN_ID_MAX_COLUMN_SHIFT 0
+#define VGT_CURRENT_BIN_ID_MAX_ROW_SHIFT 3
+#define VGT_CURRENT_BIN_ID_MAX_GUARD_BAND_SHIFT 6
+
+#define VGT_CURRENT_BIN_ID_MAX_COLUMN_MASK 0x00000007
+#define VGT_CURRENT_BIN_ID_MAX_ROW_MASK 0x00000038
+#define VGT_CURRENT_BIN_ID_MAX_GUARD_BAND_MASK 0x000001c0
+
+#define VGT_CURRENT_BIN_ID_MAX_MASK \
+ (VGT_CURRENT_BIN_ID_MAX_COLUMN_MASK | \
+ VGT_CURRENT_BIN_ID_MAX_ROW_MASK | \
+ VGT_CURRENT_BIN_ID_MAX_GUARD_BAND_MASK)
+
+#define VGT_CURRENT_BIN_ID_MAX(column, row, guard_band) \
+ ((column << VGT_CURRENT_BIN_ID_MAX_COLUMN_SHIFT) | \
+ (row << VGT_CURRENT_BIN_ID_MAX_ROW_SHIFT) | \
+ (guard_band << VGT_CURRENT_BIN_ID_MAX_GUARD_BAND_SHIFT))
+
+#define VGT_CURRENT_BIN_ID_MAX_GET_COLUMN(vgt_current_bin_id_max) \
+ ((vgt_current_bin_id_max & VGT_CURRENT_BIN_ID_MAX_COLUMN_MASK) >> VGT_CURRENT_BIN_ID_MAX_COLUMN_SHIFT)
+#define VGT_CURRENT_BIN_ID_MAX_GET_ROW(vgt_current_bin_id_max) \
+ ((vgt_current_bin_id_max & VGT_CURRENT_BIN_ID_MAX_ROW_MASK) >> VGT_CURRENT_BIN_ID_MAX_ROW_SHIFT)
+#define VGT_CURRENT_BIN_ID_MAX_GET_GUARD_BAND(vgt_current_bin_id_max) \
+ ((vgt_current_bin_id_max & VGT_CURRENT_BIN_ID_MAX_GUARD_BAND_MASK) >> VGT_CURRENT_BIN_ID_MAX_GUARD_BAND_SHIFT)
+
+#define VGT_CURRENT_BIN_ID_MAX_SET_COLUMN(vgt_current_bin_id_max_reg, column) \
+ vgt_current_bin_id_max_reg = (vgt_current_bin_id_max_reg & ~VGT_CURRENT_BIN_ID_MAX_COLUMN_MASK) | (column << VGT_CURRENT_BIN_ID_MAX_COLUMN_SHIFT)
+#define VGT_CURRENT_BIN_ID_MAX_SET_ROW(vgt_current_bin_id_max_reg, row) \
+ vgt_current_bin_id_max_reg = (vgt_current_bin_id_max_reg & ~VGT_CURRENT_BIN_ID_MAX_ROW_MASK) | (row << VGT_CURRENT_BIN_ID_MAX_ROW_SHIFT)
+#define VGT_CURRENT_BIN_ID_MAX_SET_GUARD_BAND(vgt_current_bin_id_max_reg, guard_band) \
+ vgt_current_bin_id_max_reg = (vgt_current_bin_id_max_reg & ~VGT_CURRENT_BIN_ID_MAX_GUARD_BAND_MASK) | (guard_band << VGT_CURRENT_BIN_ID_MAX_GUARD_BAND_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_current_bin_id_max_t {
+ unsigned int column : VGT_CURRENT_BIN_ID_MAX_COLUMN_SIZE;
+ unsigned int row : VGT_CURRENT_BIN_ID_MAX_ROW_SIZE;
+ unsigned int guard_band : VGT_CURRENT_BIN_ID_MAX_GUARD_BAND_SIZE;
+ unsigned int : 23;
+ } vgt_current_bin_id_max_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_current_bin_id_max_t {
+ unsigned int : 23;
+ unsigned int guard_band : VGT_CURRENT_BIN_ID_MAX_GUARD_BAND_SIZE;
+ unsigned int row : VGT_CURRENT_BIN_ID_MAX_ROW_SIZE;
+ unsigned int column : VGT_CURRENT_BIN_ID_MAX_COLUMN_SIZE;
+ } vgt_current_bin_id_max_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_current_bin_id_max_t f;
+} vgt_current_bin_id_max_u;
+
+
+/*
+ * VGT_IMMED_DATA struct
+ */
+
+#define VGT_IMMED_DATA_DATA_SIZE 32
+
+#define VGT_IMMED_DATA_DATA_SHIFT 0
+
+#define VGT_IMMED_DATA_DATA_MASK 0xffffffff
+
+#define VGT_IMMED_DATA_MASK \
+ (VGT_IMMED_DATA_DATA_MASK)
+
+#define VGT_IMMED_DATA(data) \
+ ((data << VGT_IMMED_DATA_DATA_SHIFT))
+
+#define VGT_IMMED_DATA_GET_DATA(vgt_immed_data) \
+ ((vgt_immed_data & VGT_IMMED_DATA_DATA_MASK) >> VGT_IMMED_DATA_DATA_SHIFT)
+
+#define VGT_IMMED_DATA_SET_DATA(vgt_immed_data_reg, data) \
+ vgt_immed_data_reg = (vgt_immed_data_reg & ~VGT_IMMED_DATA_DATA_MASK) | (data << VGT_IMMED_DATA_DATA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_immed_data_t {
+ unsigned int data : VGT_IMMED_DATA_DATA_SIZE;
+ } vgt_immed_data_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_immed_data_t {
+ unsigned int data : VGT_IMMED_DATA_DATA_SIZE;
+ } vgt_immed_data_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_immed_data_t f;
+} vgt_immed_data_u;
+
+
+/*
+ * VGT_MAX_VTX_INDX struct
+ */
+
+#define VGT_MAX_VTX_INDX_MAX_INDX_SIZE 24
+
+#define VGT_MAX_VTX_INDX_MAX_INDX_SHIFT 0
+
+#define VGT_MAX_VTX_INDX_MAX_INDX_MASK 0x00ffffff
+
+#define VGT_MAX_VTX_INDX_MASK \
+ (VGT_MAX_VTX_INDX_MAX_INDX_MASK)
+
+#define VGT_MAX_VTX_INDX(max_indx) \
+ ((max_indx << VGT_MAX_VTX_INDX_MAX_INDX_SHIFT))
+
+#define VGT_MAX_VTX_INDX_GET_MAX_INDX(vgt_max_vtx_indx) \
+ ((vgt_max_vtx_indx & VGT_MAX_VTX_INDX_MAX_INDX_MASK) >> VGT_MAX_VTX_INDX_MAX_INDX_SHIFT)
+
+#define VGT_MAX_VTX_INDX_SET_MAX_INDX(vgt_max_vtx_indx_reg, max_indx) \
+ vgt_max_vtx_indx_reg = (vgt_max_vtx_indx_reg & ~VGT_MAX_VTX_INDX_MAX_INDX_MASK) | (max_indx << VGT_MAX_VTX_INDX_MAX_INDX_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_max_vtx_indx_t {
+ unsigned int max_indx : VGT_MAX_VTX_INDX_MAX_INDX_SIZE;
+ unsigned int : 8;
+ } vgt_max_vtx_indx_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_max_vtx_indx_t {
+ unsigned int : 8;
+ unsigned int max_indx : VGT_MAX_VTX_INDX_MAX_INDX_SIZE;
+ } vgt_max_vtx_indx_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_max_vtx_indx_t f;
+} vgt_max_vtx_indx_u;
+
+
+/*
+ * VGT_MIN_VTX_INDX struct
+ */
+
+#define VGT_MIN_VTX_INDX_MIN_INDX_SIZE 24
+
+#define VGT_MIN_VTX_INDX_MIN_INDX_SHIFT 0
+
+#define VGT_MIN_VTX_INDX_MIN_INDX_MASK 0x00ffffff
+
+#define VGT_MIN_VTX_INDX_MASK \
+ (VGT_MIN_VTX_INDX_MIN_INDX_MASK)
+
+#define VGT_MIN_VTX_INDX(min_indx) \
+ ((min_indx << VGT_MIN_VTX_INDX_MIN_INDX_SHIFT))
+
+#define VGT_MIN_VTX_INDX_GET_MIN_INDX(vgt_min_vtx_indx) \
+ ((vgt_min_vtx_indx & VGT_MIN_VTX_INDX_MIN_INDX_MASK) >> VGT_MIN_VTX_INDX_MIN_INDX_SHIFT)
+
+#define VGT_MIN_VTX_INDX_SET_MIN_INDX(vgt_min_vtx_indx_reg, min_indx) \
+ vgt_min_vtx_indx_reg = (vgt_min_vtx_indx_reg & ~VGT_MIN_VTX_INDX_MIN_INDX_MASK) | (min_indx << VGT_MIN_VTX_INDX_MIN_INDX_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_min_vtx_indx_t {
+ unsigned int min_indx : VGT_MIN_VTX_INDX_MIN_INDX_SIZE;
+ unsigned int : 8;
+ } vgt_min_vtx_indx_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_min_vtx_indx_t {
+ unsigned int : 8;
+ unsigned int min_indx : VGT_MIN_VTX_INDX_MIN_INDX_SIZE;
+ } vgt_min_vtx_indx_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_min_vtx_indx_t f;
+} vgt_min_vtx_indx_u;
+
+
+/*
+ * VGT_INDX_OFFSET struct
+ */
+
+#define VGT_INDX_OFFSET_INDX_OFFSET_SIZE 24
+
+#define VGT_INDX_OFFSET_INDX_OFFSET_SHIFT 0
+
+#define VGT_INDX_OFFSET_INDX_OFFSET_MASK 0x00ffffff
+
+#define VGT_INDX_OFFSET_MASK \
+ (VGT_INDX_OFFSET_INDX_OFFSET_MASK)
+
+#define VGT_INDX_OFFSET(indx_offset) \
+ ((indx_offset << VGT_INDX_OFFSET_INDX_OFFSET_SHIFT))
+
+#define VGT_INDX_OFFSET_GET_INDX_OFFSET(vgt_indx_offset) \
+ ((vgt_indx_offset & VGT_INDX_OFFSET_INDX_OFFSET_MASK) >> VGT_INDX_OFFSET_INDX_OFFSET_SHIFT)
+
+#define VGT_INDX_OFFSET_SET_INDX_OFFSET(vgt_indx_offset_reg, indx_offset) \
+ vgt_indx_offset_reg = (vgt_indx_offset_reg & ~VGT_INDX_OFFSET_INDX_OFFSET_MASK) | (indx_offset << VGT_INDX_OFFSET_INDX_OFFSET_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_indx_offset_t {
+ unsigned int indx_offset : VGT_INDX_OFFSET_INDX_OFFSET_SIZE;
+ unsigned int : 8;
+ } vgt_indx_offset_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_indx_offset_t {
+ unsigned int : 8;
+ unsigned int indx_offset : VGT_INDX_OFFSET_INDX_OFFSET_SIZE;
+ } vgt_indx_offset_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_indx_offset_t f;
+} vgt_indx_offset_u;
+
+
+/*
+ * VGT_VERTEX_REUSE_BLOCK_CNTL struct
+ */
+
+#define VGT_VERTEX_REUSE_BLOCK_CNTL_VTX_REUSE_DEPTH_SIZE 3
+
+#define VGT_VERTEX_REUSE_BLOCK_CNTL_VTX_REUSE_DEPTH_SHIFT 0
+
+#define VGT_VERTEX_REUSE_BLOCK_CNTL_VTX_REUSE_DEPTH_MASK 0x00000007
+
+#define VGT_VERTEX_REUSE_BLOCK_CNTL_MASK \
+ (VGT_VERTEX_REUSE_BLOCK_CNTL_VTX_REUSE_DEPTH_MASK)
+
+#define VGT_VERTEX_REUSE_BLOCK_CNTL(vtx_reuse_depth) \
+ ((vtx_reuse_depth << VGT_VERTEX_REUSE_BLOCK_CNTL_VTX_REUSE_DEPTH_SHIFT))
+
+#define VGT_VERTEX_REUSE_BLOCK_CNTL_GET_VTX_REUSE_DEPTH(vgt_vertex_reuse_block_cntl) \
+ ((vgt_vertex_reuse_block_cntl & VGT_VERTEX_REUSE_BLOCK_CNTL_VTX_REUSE_DEPTH_MASK) >> VGT_VERTEX_REUSE_BLOCK_CNTL_VTX_REUSE_DEPTH_SHIFT)
+
+#define VGT_VERTEX_REUSE_BLOCK_CNTL_SET_VTX_REUSE_DEPTH(vgt_vertex_reuse_block_cntl_reg, vtx_reuse_depth) \
+ vgt_vertex_reuse_block_cntl_reg = (vgt_vertex_reuse_block_cntl_reg & ~VGT_VERTEX_REUSE_BLOCK_CNTL_VTX_REUSE_DEPTH_MASK) | (vtx_reuse_depth << VGT_VERTEX_REUSE_BLOCK_CNTL_VTX_REUSE_DEPTH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_vertex_reuse_block_cntl_t {
+ unsigned int vtx_reuse_depth : VGT_VERTEX_REUSE_BLOCK_CNTL_VTX_REUSE_DEPTH_SIZE;
+ unsigned int : 29;
+ } vgt_vertex_reuse_block_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_vertex_reuse_block_cntl_t {
+ unsigned int : 29;
+ unsigned int vtx_reuse_depth : VGT_VERTEX_REUSE_BLOCK_CNTL_VTX_REUSE_DEPTH_SIZE;
+ } vgt_vertex_reuse_block_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_vertex_reuse_block_cntl_t f;
+} vgt_vertex_reuse_block_cntl_u;
+
+
+/*
+ * VGT_OUT_DEALLOC_CNTL struct
+ */
+
+#define VGT_OUT_DEALLOC_CNTL_DEALLOC_DIST_SIZE 2
+
+#define VGT_OUT_DEALLOC_CNTL_DEALLOC_DIST_SHIFT 0
+
+#define VGT_OUT_DEALLOC_CNTL_DEALLOC_DIST_MASK 0x00000003
+
+#define VGT_OUT_DEALLOC_CNTL_MASK \
+ (VGT_OUT_DEALLOC_CNTL_DEALLOC_DIST_MASK)
+
+#define VGT_OUT_DEALLOC_CNTL(dealloc_dist) \
+ ((dealloc_dist << VGT_OUT_DEALLOC_CNTL_DEALLOC_DIST_SHIFT))
+
+#define VGT_OUT_DEALLOC_CNTL_GET_DEALLOC_DIST(vgt_out_dealloc_cntl) \
+ ((vgt_out_dealloc_cntl & VGT_OUT_DEALLOC_CNTL_DEALLOC_DIST_MASK) >> VGT_OUT_DEALLOC_CNTL_DEALLOC_DIST_SHIFT)
+
+#define VGT_OUT_DEALLOC_CNTL_SET_DEALLOC_DIST(vgt_out_dealloc_cntl_reg, dealloc_dist) \
+ vgt_out_dealloc_cntl_reg = (vgt_out_dealloc_cntl_reg & ~VGT_OUT_DEALLOC_CNTL_DEALLOC_DIST_MASK) | (dealloc_dist << VGT_OUT_DEALLOC_CNTL_DEALLOC_DIST_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_out_dealloc_cntl_t {
+ unsigned int dealloc_dist : VGT_OUT_DEALLOC_CNTL_DEALLOC_DIST_SIZE;
+ unsigned int : 30;
+ } vgt_out_dealloc_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_out_dealloc_cntl_t {
+ unsigned int : 30;
+ unsigned int dealloc_dist : VGT_OUT_DEALLOC_CNTL_DEALLOC_DIST_SIZE;
+ } vgt_out_dealloc_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_out_dealloc_cntl_t f;
+} vgt_out_dealloc_cntl_u;
+
+
+/*
+ * VGT_MULTI_PRIM_IB_RESET_INDX struct
+ */
+
+#define VGT_MULTI_PRIM_IB_RESET_INDX_RESET_INDX_SIZE 24
+
+#define VGT_MULTI_PRIM_IB_RESET_INDX_RESET_INDX_SHIFT 0
+
+#define VGT_MULTI_PRIM_IB_RESET_INDX_RESET_INDX_MASK 0x00ffffff
+
+#define VGT_MULTI_PRIM_IB_RESET_INDX_MASK \
+ (VGT_MULTI_PRIM_IB_RESET_INDX_RESET_INDX_MASK)
+
+#define VGT_MULTI_PRIM_IB_RESET_INDX(reset_indx) \
+ ((reset_indx << VGT_MULTI_PRIM_IB_RESET_INDX_RESET_INDX_SHIFT))
+
+#define VGT_MULTI_PRIM_IB_RESET_INDX_GET_RESET_INDX(vgt_multi_prim_ib_reset_indx) \
+ ((vgt_multi_prim_ib_reset_indx & VGT_MULTI_PRIM_IB_RESET_INDX_RESET_INDX_MASK) >> VGT_MULTI_PRIM_IB_RESET_INDX_RESET_INDX_SHIFT)
+
+#define VGT_MULTI_PRIM_IB_RESET_INDX_SET_RESET_INDX(vgt_multi_prim_ib_reset_indx_reg, reset_indx) \
+ vgt_multi_prim_ib_reset_indx_reg = (vgt_multi_prim_ib_reset_indx_reg & ~VGT_MULTI_PRIM_IB_RESET_INDX_RESET_INDX_MASK) | (reset_indx << VGT_MULTI_PRIM_IB_RESET_INDX_RESET_INDX_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_multi_prim_ib_reset_indx_t {
+ unsigned int reset_indx : VGT_MULTI_PRIM_IB_RESET_INDX_RESET_INDX_SIZE;
+ unsigned int : 8;
+ } vgt_multi_prim_ib_reset_indx_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_multi_prim_ib_reset_indx_t {
+ unsigned int : 8;
+ unsigned int reset_indx : VGT_MULTI_PRIM_IB_RESET_INDX_RESET_INDX_SIZE;
+ } vgt_multi_prim_ib_reset_indx_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_multi_prim_ib_reset_indx_t f;
+} vgt_multi_prim_ib_reset_indx_u;
+
+
+/*
+ * VGT_ENHANCE struct
+ */
+
+#define VGT_ENHANCE_MISC_SIZE 16
+
+#define VGT_ENHANCE_MISC_SHIFT 0
+
+#define VGT_ENHANCE_MISC_MASK 0x0000ffff
+
+#define VGT_ENHANCE_MASK \
+ (VGT_ENHANCE_MISC_MASK)
+
+#define VGT_ENHANCE(misc) \
+ ((misc << VGT_ENHANCE_MISC_SHIFT))
+
+#define VGT_ENHANCE_GET_MISC(vgt_enhance) \
+ ((vgt_enhance & VGT_ENHANCE_MISC_MASK) >> VGT_ENHANCE_MISC_SHIFT)
+
+#define VGT_ENHANCE_SET_MISC(vgt_enhance_reg, misc) \
+ vgt_enhance_reg = (vgt_enhance_reg & ~VGT_ENHANCE_MISC_MASK) | (misc << VGT_ENHANCE_MISC_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_enhance_t {
+ unsigned int misc : VGT_ENHANCE_MISC_SIZE;
+ unsigned int : 16;
+ } vgt_enhance_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_enhance_t {
+ unsigned int : 16;
+ unsigned int misc : VGT_ENHANCE_MISC_SIZE;
+ } vgt_enhance_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_enhance_t f;
+} vgt_enhance_u;
+
+
+/*
+ * VGT_VTX_VECT_EJECT_REG struct
+ */
+
+#define VGT_VTX_VECT_EJECT_REG_PRIM_COUNT_SIZE 5
+
+#define VGT_VTX_VECT_EJECT_REG_PRIM_COUNT_SHIFT 0
+
+#define VGT_VTX_VECT_EJECT_REG_PRIM_COUNT_MASK 0x0000001f
+
+#define VGT_VTX_VECT_EJECT_REG_MASK \
+ (VGT_VTX_VECT_EJECT_REG_PRIM_COUNT_MASK)
+
+#define VGT_VTX_VECT_EJECT_REG(prim_count) \
+ ((prim_count << VGT_VTX_VECT_EJECT_REG_PRIM_COUNT_SHIFT))
+
+#define VGT_VTX_VECT_EJECT_REG_GET_PRIM_COUNT(vgt_vtx_vect_eject_reg) \
+ ((vgt_vtx_vect_eject_reg & VGT_VTX_VECT_EJECT_REG_PRIM_COUNT_MASK) >> VGT_VTX_VECT_EJECT_REG_PRIM_COUNT_SHIFT)
+
+#define VGT_VTX_VECT_EJECT_REG_SET_PRIM_COUNT(vgt_vtx_vect_eject_reg_reg, prim_count) \
+ vgt_vtx_vect_eject_reg_reg = (vgt_vtx_vect_eject_reg_reg & ~VGT_VTX_VECT_EJECT_REG_PRIM_COUNT_MASK) | (prim_count << VGT_VTX_VECT_EJECT_REG_PRIM_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_vtx_vect_eject_reg_t {
+ unsigned int prim_count : VGT_VTX_VECT_EJECT_REG_PRIM_COUNT_SIZE;
+ unsigned int : 27;
+ } vgt_vtx_vect_eject_reg_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_vtx_vect_eject_reg_t {
+ unsigned int : 27;
+ unsigned int prim_count : VGT_VTX_VECT_EJECT_REG_PRIM_COUNT_SIZE;
+ } vgt_vtx_vect_eject_reg_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_vtx_vect_eject_reg_t f;
+} vgt_vtx_vect_eject_reg_u;
+
+
+/*
+ * VGT_LAST_COPY_STATE struct
+ */
+
+#define VGT_LAST_COPY_STATE_SRC_STATE_ID_SIZE 1
+#define VGT_LAST_COPY_STATE_DST_STATE_ID_SIZE 1
+
+#define VGT_LAST_COPY_STATE_SRC_STATE_ID_SHIFT 0
+#define VGT_LAST_COPY_STATE_DST_STATE_ID_SHIFT 16
+
+#define VGT_LAST_COPY_STATE_SRC_STATE_ID_MASK 0x00000001
+#define VGT_LAST_COPY_STATE_DST_STATE_ID_MASK 0x00010000
+
+#define VGT_LAST_COPY_STATE_MASK \
+ (VGT_LAST_COPY_STATE_SRC_STATE_ID_MASK | \
+ VGT_LAST_COPY_STATE_DST_STATE_ID_MASK)
+
+#define VGT_LAST_COPY_STATE(src_state_id, dst_state_id) \
+ ((src_state_id << VGT_LAST_COPY_STATE_SRC_STATE_ID_SHIFT) | \
+ (dst_state_id << VGT_LAST_COPY_STATE_DST_STATE_ID_SHIFT))
+
+#define VGT_LAST_COPY_STATE_GET_SRC_STATE_ID(vgt_last_copy_state) \
+ ((vgt_last_copy_state & VGT_LAST_COPY_STATE_SRC_STATE_ID_MASK) >> VGT_LAST_COPY_STATE_SRC_STATE_ID_SHIFT)
+#define VGT_LAST_COPY_STATE_GET_DST_STATE_ID(vgt_last_copy_state) \
+ ((vgt_last_copy_state & VGT_LAST_COPY_STATE_DST_STATE_ID_MASK) >> VGT_LAST_COPY_STATE_DST_STATE_ID_SHIFT)
+
+#define VGT_LAST_COPY_STATE_SET_SRC_STATE_ID(vgt_last_copy_state_reg, src_state_id) \
+ vgt_last_copy_state_reg = (vgt_last_copy_state_reg & ~VGT_LAST_COPY_STATE_SRC_STATE_ID_MASK) | (src_state_id << VGT_LAST_COPY_STATE_SRC_STATE_ID_SHIFT)
+#define VGT_LAST_COPY_STATE_SET_DST_STATE_ID(vgt_last_copy_state_reg, dst_state_id) \
+ vgt_last_copy_state_reg = (vgt_last_copy_state_reg & ~VGT_LAST_COPY_STATE_DST_STATE_ID_MASK) | (dst_state_id << VGT_LAST_COPY_STATE_DST_STATE_ID_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_last_copy_state_t {
+ unsigned int src_state_id : VGT_LAST_COPY_STATE_SRC_STATE_ID_SIZE;
+ unsigned int : 15;
+ unsigned int dst_state_id : VGT_LAST_COPY_STATE_DST_STATE_ID_SIZE;
+ unsigned int : 15;
+ } vgt_last_copy_state_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_last_copy_state_t {
+ unsigned int : 15;
+ unsigned int dst_state_id : VGT_LAST_COPY_STATE_DST_STATE_ID_SIZE;
+ unsigned int : 15;
+ unsigned int src_state_id : VGT_LAST_COPY_STATE_SRC_STATE_ID_SIZE;
+ } vgt_last_copy_state_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_last_copy_state_t f;
+} vgt_last_copy_state_u;
+
+
+/*
+ * VGT_DEBUG_CNTL struct
+ */
+
+#define VGT_DEBUG_CNTL_VGT_DEBUG_INDX_SIZE 5
+
+#define VGT_DEBUG_CNTL_VGT_DEBUG_INDX_SHIFT 0
+
+#define VGT_DEBUG_CNTL_VGT_DEBUG_INDX_MASK 0x0000001f
+
+#define VGT_DEBUG_CNTL_MASK \
+ (VGT_DEBUG_CNTL_VGT_DEBUG_INDX_MASK)
+
+#define VGT_DEBUG_CNTL(vgt_debug_indx) \
+ ((vgt_debug_indx << VGT_DEBUG_CNTL_VGT_DEBUG_INDX_SHIFT))
+
+#define VGT_DEBUG_CNTL_GET_VGT_DEBUG_INDX(vgt_debug_cntl) \
+ ((vgt_debug_cntl & VGT_DEBUG_CNTL_VGT_DEBUG_INDX_MASK) >> VGT_DEBUG_CNTL_VGT_DEBUG_INDX_SHIFT)
+
+#define VGT_DEBUG_CNTL_SET_VGT_DEBUG_INDX(vgt_debug_cntl_reg, vgt_debug_indx) \
+ vgt_debug_cntl_reg = (vgt_debug_cntl_reg & ~VGT_DEBUG_CNTL_VGT_DEBUG_INDX_MASK) | (vgt_debug_indx << VGT_DEBUG_CNTL_VGT_DEBUG_INDX_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_cntl_t {
+ unsigned int vgt_debug_indx : VGT_DEBUG_CNTL_VGT_DEBUG_INDX_SIZE;
+ unsigned int : 27;
+ } vgt_debug_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_cntl_t {
+ unsigned int : 27;
+ unsigned int vgt_debug_indx : VGT_DEBUG_CNTL_VGT_DEBUG_INDX_SIZE;
+ } vgt_debug_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_cntl_t f;
+} vgt_debug_cntl_u;
+
+
+/*
+ * VGT_DEBUG_DATA struct
+ */
+
+#define VGT_DEBUG_DATA_DATA_SIZE 32
+
+#define VGT_DEBUG_DATA_DATA_SHIFT 0
+
+#define VGT_DEBUG_DATA_DATA_MASK 0xffffffff
+
+#define VGT_DEBUG_DATA_MASK \
+ (VGT_DEBUG_DATA_DATA_MASK)
+
+#define VGT_DEBUG_DATA(data) \
+ ((data << VGT_DEBUG_DATA_DATA_SHIFT))
+
+#define VGT_DEBUG_DATA_GET_DATA(vgt_debug_data) \
+ ((vgt_debug_data & VGT_DEBUG_DATA_DATA_MASK) >> VGT_DEBUG_DATA_DATA_SHIFT)
+
+#define VGT_DEBUG_DATA_SET_DATA(vgt_debug_data_reg, data) \
+ vgt_debug_data_reg = (vgt_debug_data_reg & ~VGT_DEBUG_DATA_DATA_MASK) | (data << VGT_DEBUG_DATA_DATA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_data_t {
+ unsigned int data : VGT_DEBUG_DATA_DATA_SIZE;
+ } vgt_debug_data_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_data_t {
+ unsigned int data : VGT_DEBUG_DATA_DATA_SIZE;
+ } vgt_debug_data_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_data_t f;
+} vgt_debug_data_u;
+
+
+/*
+ * VGT_CNTL_STATUS struct
+ */
+
+#define VGT_CNTL_STATUS_VGT_BUSY_SIZE 1
+#define VGT_CNTL_STATUS_VGT_DMA_BUSY_SIZE 1
+#define VGT_CNTL_STATUS_VGT_DMA_REQ_BUSY_SIZE 1
+#define VGT_CNTL_STATUS_VGT_GRP_BUSY_SIZE 1
+#define VGT_CNTL_STATUS_VGT_VR_BUSY_SIZE 1
+#define VGT_CNTL_STATUS_VGT_BIN_BUSY_SIZE 1
+#define VGT_CNTL_STATUS_VGT_PT_BUSY_SIZE 1
+#define VGT_CNTL_STATUS_VGT_OUT_BUSY_SIZE 1
+#define VGT_CNTL_STATUS_VGT_OUT_INDX_BUSY_SIZE 1
+
+#define VGT_CNTL_STATUS_VGT_BUSY_SHIFT 0
+#define VGT_CNTL_STATUS_VGT_DMA_BUSY_SHIFT 1
+#define VGT_CNTL_STATUS_VGT_DMA_REQ_BUSY_SHIFT 2
+#define VGT_CNTL_STATUS_VGT_GRP_BUSY_SHIFT 3
+#define VGT_CNTL_STATUS_VGT_VR_BUSY_SHIFT 4
+#define VGT_CNTL_STATUS_VGT_BIN_BUSY_SHIFT 5
+#define VGT_CNTL_STATUS_VGT_PT_BUSY_SHIFT 6
+#define VGT_CNTL_STATUS_VGT_OUT_BUSY_SHIFT 7
+#define VGT_CNTL_STATUS_VGT_OUT_INDX_BUSY_SHIFT 8
+
+#define VGT_CNTL_STATUS_VGT_BUSY_MASK 0x00000001
+#define VGT_CNTL_STATUS_VGT_DMA_BUSY_MASK 0x00000002
+#define VGT_CNTL_STATUS_VGT_DMA_REQ_BUSY_MASK 0x00000004
+#define VGT_CNTL_STATUS_VGT_GRP_BUSY_MASK 0x00000008
+#define VGT_CNTL_STATUS_VGT_VR_BUSY_MASK 0x00000010
+#define VGT_CNTL_STATUS_VGT_BIN_BUSY_MASK 0x00000020
+#define VGT_CNTL_STATUS_VGT_PT_BUSY_MASK 0x00000040
+#define VGT_CNTL_STATUS_VGT_OUT_BUSY_MASK 0x00000080
+#define VGT_CNTL_STATUS_VGT_OUT_INDX_BUSY_MASK 0x00000100
+
+#define VGT_CNTL_STATUS_MASK \
+ (VGT_CNTL_STATUS_VGT_BUSY_MASK | \
+ VGT_CNTL_STATUS_VGT_DMA_BUSY_MASK | \
+ VGT_CNTL_STATUS_VGT_DMA_REQ_BUSY_MASK | \
+ VGT_CNTL_STATUS_VGT_GRP_BUSY_MASK | \
+ VGT_CNTL_STATUS_VGT_VR_BUSY_MASK | \
+ VGT_CNTL_STATUS_VGT_BIN_BUSY_MASK | \
+ VGT_CNTL_STATUS_VGT_PT_BUSY_MASK | \
+ VGT_CNTL_STATUS_VGT_OUT_BUSY_MASK | \
+ VGT_CNTL_STATUS_VGT_OUT_INDX_BUSY_MASK)
+
+#define VGT_CNTL_STATUS(vgt_busy, vgt_dma_busy, vgt_dma_req_busy, vgt_grp_busy, vgt_vr_busy, vgt_bin_busy, vgt_pt_busy, vgt_out_busy, vgt_out_indx_busy) \
+ ((vgt_busy << VGT_CNTL_STATUS_VGT_BUSY_SHIFT) | \
+ (vgt_dma_busy << VGT_CNTL_STATUS_VGT_DMA_BUSY_SHIFT) | \
+ (vgt_dma_req_busy << VGT_CNTL_STATUS_VGT_DMA_REQ_BUSY_SHIFT) | \
+ (vgt_grp_busy << VGT_CNTL_STATUS_VGT_GRP_BUSY_SHIFT) | \
+ (vgt_vr_busy << VGT_CNTL_STATUS_VGT_VR_BUSY_SHIFT) | \
+ (vgt_bin_busy << VGT_CNTL_STATUS_VGT_BIN_BUSY_SHIFT) | \
+ (vgt_pt_busy << VGT_CNTL_STATUS_VGT_PT_BUSY_SHIFT) | \
+ (vgt_out_busy << VGT_CNTL_STATUS_VGT_OUT_BUSY_SHIFT) | \
+ (vgt_out_indx_busy << VGT_CNTL_STATUS_VGT_OUT_INDX_BUSY_SHIFT))
+
+#define VGT_CNTL_STATUS_GET_VGT_BUSY(vgt_cntl_status) \
+ ((vgt_cntl_status & VGT_CNTL_STATUS_VGT_BUSY_MASK) >> VGT_CNTL_STATUS_VGT_BUSY_SHIFT)
+#define VGT_CNTL_STATUS_GET_VGT_DMA_BUSY(vgt_cntl_status) \
+ ((vgt_cntl_status & VGT_CNTL_STATUS_VGT_DMA_BUSY_MASK) >> VGT_CNTL_STATUS_VGT_DMA_BUSY_SHIFT)
+#define VGT_CNTL_STATUS_GET_VGT_DMA_REQ_BUSY(vgt_cntl_status) \
+ ((vgt_cntl_status & VGT_CNTL_STATUS_VGT_DMA_REQ_BUSY_MASK) >> VGT_CNTL_STATUS_VGT_DMA_REQ_BUSY_SHIFT)
+#define VGT_CNTL_STATUS_GET_VGT_GRP_BUSY(vgt_cntl_status) \
+ ((vgt_cntl_status & VGT_CNTL_STATUS_VGT_GRP_BUSY_MASK) >> VGT_CNTL_STATUS_VGT_GRP_BUSY_SHIFT)
+#define VGT_CNTL_STATUS_GET_VGT_VR_BUSY(vgt_cntl_status) \
+ ((vgt_cntl_status & VGT_CNTL_STATUS_VGT_VR_BUSY_MASK) >> VGT_CNTL_STATUS_VGT_VR_BUSY_SHIFT)
+#define VGT_CNTL_STATUS_GET_VGT_BIN_BUSY(vgt_cntl_status) \
+ ((vgt_cntl_status & VGT_CNTL_STATUS_VGT_BIN_BUSY_MASK) >> VGT_CNTL_STATUS_VGT_BIN_BUSY_SHIFT)
+#define VGT_CNTL_STATUS_GET_VGT_PT_BUSY(vgt_cntl_status) \
+ ((vgt_cntl_status & VGT_CNTL_STATUS_VGT_PT_BUSY_MASK) >> VGT_CNTL_STATUS_VGT_PT_BUSY_SHIFT)
+#define VGT_CNTL_STATUS_GET_VGT_OUT_BUSY(vgt_cntl_status) \
+ ((vgt_cntl_status & VGT_CNTL_STATUS_VGT_OUT_BUSY_MASK) >> VGT_CNTL_STATUS_VGT_OUT_BUSY_SHIFT)
+#define VGT_CNTL_STATUS_GET_VGT_OUT_INDX_BUSY(vgt_cntl_status) \
+ ((vgt_cntl_status & VGT_CNTL_STATUS_VGT_OUT_INDX_BUSY_MASK) >> VGT_CNTL_STATUS_VGT_OUT_INDX_BUSY_SHIFT)
+
+#define VGT_CNTL_STATUS_SET_VGT_BUSY(vgt_cntl_status_reg, vgt_busy) \
+ vgt_cntl_status_reg = (vgt_cntl_status_reg & ~VGT_CNTL_STATUS_VGT_BUSY_MASK) | (vgt_busy << VGT_CNTL_STATUS_VGT_BUSY_SHIFT)
+#define VGT_CNTL_STATUS_SET_VGT_DMA_BUSY(vgt_cntl_status_reg, vgt_dma_busy) \
+ vgt_cntl_status_reg = (vgt_cntl_status_reg & ~VGT_CNTL_STATUS_VGT_DMA_BUSY_MASK) | (vgt_dma_busy << VGT_CNTL_STATUS_VGT_DMA_BUSY_SHIFT)
+#define VGT_CNTL_STATUS_SET_VGT_DMA_REQ_BUSY(vgt_cntl_status_reg, vgt_dma_req_busy) \
+ vgt_cntl_status_reg = (vgt_cntl_status_reg & ~VGT_CNTL_STATUS_VGT_DMA_REQ_BUSY_MASK) | (vgt_dma_req_busy << VGT_CNTL_STATUS_VGT_DMA_REQ_BUSY_SHIFT)
+#define VGT_CNTL_STATUS_SET_VGT_GRP_BUSY(vgt_cntl_status_reg, vgt_grp_busy) \
+ vgt_cntl_status_reg = (vgt_cntl_status_reg & ~VGT_CNTL_STATUS_VGT_GRP_BUSY_MASK) | (vgt_grp_busy << VGT_CNTL_STATUS_VGT_GRP_BUSY_SHIFT)
+#define VGT_CNTL_STATUS_SET_VGT_VR_BUSY(vgt_cntl_status_reg, vgt_vr_busy) \
+ vgt_cntl_status_reg = (vgt_cntl_status_reg & ~VGT_CNTL_STATUS_VGT_VR_BUSY_MASK) | (vgt_vr_busy << VGT_CNTL_STATUS_VGT_VR_BUSY_SHIFT)
+#define VGT_CNTL_STATUS_SET_VGT_BIN_BUSY(vgt_cntl_status_reg, vgt_bin_busy) \
+ vgt_cntl_status_reg = (vgt_cntl_status_reg & ~VGT_CNTL_STATUS_VGT_BIN_BUSY_MASK) | (vgt_bin_busy << VGT_CNTL_STATUS_VGT_BIN_BUSY_SHIFT)
+#define VGT_CNTL_STATUS_SET_VGT_PT_BUSY(vgt_cntl_status_reg, vgt_pt_busy) \
+ vgt_cntl_status_reg = (vgt_cntl_status_reg & ~VGT_CNTL_STATUS_VGT_PT_BUSY_MASK) | (vgt_pt_busy << VGT_CNTL_STATUS_VGT_PT_BUSY_SHIFT)
+#define VGT_CNTL_STATUS_SET_VGT_OUT_BUSY(vgt_cntl_status_reg, vgt_out_busy) \
+ vgt_cntl_status_reg = (vgt_cntl_status_reg & ~VGT_CNTL_STATUS_VGT_OUT_BUSY_MASK) | (vgt_out_busy << VGT_CNTL_STATUS_VGT_OUT_BUSY_SHIFT)
+#define VGT_CNTL_STATUS_SET_VGT_OUT_INDX_BUSY(vgt_cntl_status_reg, vgt_out_indx_busy) \
+ vgt_cntl_status_reg = (vgt_cntl_status_reg & ~VGT_CNTL_STATUS_VGT_OUT_INDX_BUSY_MASK) | (vgt_out_indx_busy << VGT_CNTL_STATUS_VGT_OUT_INDX_BUSY_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_cntl_status_t {
+ unsigned int vgt_busy : VGT_CNTL_STATUS_VGT_BUSY_SIZE;
+ unsigned int vgt_dma_busy : VGT_CNTL_STATUS_VGT_DMA_BUSY_SIZE;
+ unsigned int vgt_dma_req_busy : VGT_CNTL_STATUS_VGT_DMA_REQ_BUSY_SIZE;
+ unsigned int vgt_grp_busy : VGT_CNTL_STATUS_VGT_GRP_BUSY_SIZE;
+ unsigned int vgt_vr_busy : VGT_CNTL_STATUS_VGT_VR_BUSY_SIZE;
+ unsigned int vgt_bin_busy : VGT_CNTL_STATUS_VGT_BIN_BUSY_SIZE;
+ unsigned int vgt_pt_busy : VGT_CNTL_STATUS_VGT_PT_BUSY_SIZE;
+ unsigned int vgt_out_busy : VGT_CNTL_STATUS_VGT_OUT_BUSY_SIZE;
+ unsigned int vgt_out_indx_busy : VGT_CNTL_STATUS_VGT_OUT_INDX_BUSY_SIZE;
+ unsigned int : 23;
+ } vgt_cntl_status_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_cntl_status_t {
+ unsigned int : 23;
+ unsigned int vgt_out_indx_busy : VGT_CNTL_STATUS_VGT_OUT_INDX_BUSY_SIZE;
+ unsigned int vgt_out_busy : VGT_CNTL_STATUS_VGT_OUT_BUSY_SIZE;
+ unsigned int vgt_pt_busy : VGT_CNTL_STATUS_VGT_PT_BUSY_SIZE;
+ unsigned int vgt_bin_busy : VGT_CNTL_STATUS_VGT_BIN_BUSY_SIZE;
+ unsigned int vgt_vr_busy : VGT_CNTL_STATUS_VGT_VR_BUSY_SIZE;
+ unsigned int vgt_grp_busy : VGT_CNTL_STATUS_VGT_GRP_BUSY_SIZE;
+ unsigned int vgt_dma_req_busy : VGT_CNTL_STATUS_VGT_DMA_REQ_BUSY_SIZE;
+ unsigned int vgt_dma_busy : VGT_CNTL_STATUS_VGT_DMA_BUSY_SIZE;
+ unsigned int vgt_busy : VGT_CNTL_STATUS_VGT_BUSY_SIZE;
+ } vgt_cntl_status_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_cntl_status_t f;
+} vgt_cntl_status_u;
+
+
+/*
+ * VGT_DEBUG_REG0 struct
+ */
+
+#define VGT_DEBUG_REG0_te_grp_busy_SIZE 1
+#define VGT_DEBUG_REG0_pt_grp_busy_SIZE 1
+#define VGT_DEBUG_REG0_vr_grp_busy_SIZE 1
+#define VGT_DEBUG_REG0_dma_request_busy_SIZE 1
+#define VGT_DEBUG_REG0_out_busy_SIZE 1
+#define VGT_DEBUG_REG0_grp_backend_busy_SIZE 1
+#define VGT_DEBUG_REG0_grp_busy_SIZE 1
+#define VGT_DEBUG_REG0_dma_busy_SIZE 1
+#define VGT_DEBUG_REG0_rbiu_dma_request_busy_SIZE 1
+#define VGT_DEBUG_REG0_rbiu_busy_SIZE 1
+#define VGT_DEBUG_REG0_vgt_no_dma_busy_extended_SIZE 1
+#define VGT_DEBUG_REG0_vgt_no_dma_busy_SIZE 1
+#define VGT_DEBUG_REG0_vgt_busy_extended_SIZE 1
+#define VGT_DEBUG_REG0_vgt_busy_SIZE 1
+#define VGT_DEBUG_REG0_rbbm_skid_fifo_busy_out_SIZE 1
+#define VGT_DEBUG_REG0_VGT_RBBM_no_dma_busy_SIZE 1
+#define VGT_DEBUG_REG0_VGT_RBBM_busy_SIZE 1
+
+#define VGT_DEBUG_REG0_te_grp_busy_SHIFT 0
+#define VGT_DEBUG_REG0_pt_grp_busy_SHIFT 1
+#define VGT_DEBUG_REG0_vr_grp_busy_SHIFT 2
+#define VGT_DEBUG_REG0_dma_request_busy_SHIFT 3
+#define VGT_DEBUG_REG0_out_busy_SHIFT 4
+#define VGT_DEBUG_REG0_grp_backend_busy_SHIFT 5
+#define VGT_DEBUG_REG0_grp_busy_SHIFT 6
+#define VGT_DEBUG_REG0_dma_busy_SHIFT 7
+#define VGT_DEBUG_REG0_rbiu_dma_request_busy_SHIFT 8
+#define VGT_DEBUG_REG0_rbiu_busy_SHIFT 9
+#define VGT_DEBUG_REG0_vgt_no_dma_busy_extended_SHIFT 10
+#define VGT_DEBUG_REG0_vgt_no_dma_busy_SHIFT 11
+#define VGT_DEBUG_REG0_vgt_busy_extended_SHIFT 12
+#define VGT_DEBUG_REG0_vgt_busy_SHIFT 13
+#define VGT_DEBUG_REG0_rbbm_skid_fifo_busy_out_SHIFT 14
+#define VGT_DEBUG_REG0_VGT_RBBM_no_dma_busy_SHIFT 15
+#define VGT_DEBUG_REG0_VGT_RBBM_busy_SHIFT 16
+
+#define VGT_DEBUG_REG0_te_grp_busy_MASK 0x00000001
+#define VGT_DEBUG_REG0_pt_grp_busy_MASK 0x00000002
+#define VGT_DEBUG_REG0_vr_grp_busy_MASK 0x00000004
+#define VGT_DEBUG_REG0_dma_request_busy_MASK 0x00000008
+#define VGT_DEBUG_REG0_out_busy_MASK 0x00000010
+#define VGT_DEBUG_REG0_grp_backend_busy_MASK 0x00000020
+#define VGT_DEBUG_REG0_grp_busy_MASK 0x00000040
+#define VGT_DEBUG_REG0_dma_busy_MASK 0x00000080
+#define VGT_DEBUG_REG0_rbiu_dma_request_busy_MASK 0x00000100
+#define VGT_DEBUG_REG0_rbiu_busy_MASK 0x00000200
+#define VGT_DEBUG_REG0_vgt_no_dma_busy_extended_MASK 0x00000400
+#define VGT_DEBUG_REG0_vgt_no_dma_busy_MASK 0x00000800
+#define VGT_DEBUG_REG0_vgt_busy_extended_MASK 0x00001000
+#define VGT_DEBUG_REG0_vgt_busy_MASK 0x00002000
+#define VGT_DEBUG_REG0_rbbm_skid_fifo_busy_out_MASK 0x00004000
+#define VGT_DEBUG_REG0_VGT_RBBM_no_dma_busy_MASK 0x00008000
+#define VGT_DEBUG_REG0_VGT_RBBM_busy_MASK 0x00010000
+
+#define VGT_DEBUG_REG0_MASK \
+ (VGT_DEBUG_REG0_te_grp_busy_MASK | \
+ VGT_DEBUG_REG0_pt_grp_busy_MASK | \
+ VGT_DEBUG_REG0_vr_grp_busy_MASK | \
+ VGT_DEBUG_REG0_dma_request_busy_MASK | \
+ VGT_DEBUG_REG0_out_busy_MASK | \
+ VGT_DEBUG_REG0_grp_backend_busy_MASK | \
+ VGT_DEBUG_REG0_grp_busy_MASK | \
+ VGT_DEBUG_REG0_dma_busy_MASK | \
+ VGT_DEBUG_REG0_rbiu_dma_request_busy_MASK | \
+ VGT_DEBUG_REG0_rbiu_busy_MASK | \
+ VGT_DEBUG_REG0_vgt_no_dma_busy_extended_MASK | \
+ VGT_DEBUG_REG0_vgt_no_dma_busy_MASK | \
+ VGT_DEBUG_REG0_vgt_busy_extended_MASK | \
+ VGT_DEBUG_REG0_vgt_busy_MASK | \
+ VGT_DEBUG_REG0_rbbm_skid_fifo_busy_out_MASK | \
+ VGT_DEBUG_REG0_VGT_RBBM_no_dma_busy_MASK | \
+ VGT_DEBUG_REG0_VGT_RBBM_busy_MASK)
+
+#define VGT_DEBUG_REG0(te_grp_busy, pt_grp_busy, vr_grp_busy, dma_request_busy, out_busy, grp_backend_busy, grp_busy, dma_busy, rbiu_dma_request_busy, rbiu_busy, vgt_no_dma_busy_extended, vgt_no_dma_busy, vgt_busy_extended, vgt_busy, rbbm_skid_fifo_busy_out, vgt_rbbm_no_dma_busy, vgt_rbbm_busy) \
+ ((te_grp_busy << VGT_DEBUG_REG0_te_grp_busy_SHIFT) | \
+ (pt_grp_busy << VGT_DEBUG_REG0_pt_grp_busy_SHIFT) | \
+ (vr_grp_busy << VGT_DEBUG_REG0_vr_grp_busy_SHIFT) | \
+ (dma_request_busy << VGT_DEBUG_REG0_dma_request_busy_SHIFT) | \
+ (out_busy << VGT_DEBUG_REG0_out_busy_SHIFT) | \
+ (grp_backend_busy << VGT_DEBUG_REG0_grp_backend_busy_SHIFT) | \
+ (grp_busy << VGT_DEBUG_REG0_grp_busy_SHIFT) | \
+ (dma_busy << VGT_DEBUG_REG0_dma_busy_SHIFT) | \
+ (rbiu_dma_request_busy << VGT_DEBUG_REG0_rbiu_dma_request_busy_SHIFT) | \
+ (rbiu_busy << VGT_DEBUG_REG0_rbiu_busy_SHIFT) | \
+ (vgt_no_dma_busy_extended << VGT_DEBUG_REG0_vgt_no_dma_busy_extended_SHIFT) | \
+ (vgt_no_dma_busy << VGT_DEBUG_REG0_vgt_no_dma_busy_SHIFT) | \
+ (vgt_busy_extended << VGT_DEBUG_REG0_vgt_busy_extended_SHIFT) | \
+ (vgt_busy << VGT_DEBUG_REG0_vgt_busy_SHIFT) | \
+ (rbbm_skid_fifo_busy_out << VGT_DEBUG_REG0_rbbm_skid_fifo_busy_out_SHIFT) | \
+ (vgt_rbbm_no_dma_busy << VGT_DEBUG_REG0_VGT_RBBM_no_dma_busy_SHIFT) | \
+ (vgt_rbbm_busy << VGT_DEBUG_REG0_VGT_RBBM_busy_SHIFT))
+
+#define VGT_DEBUG_REG0_GET_te_grp_busy(vgt_debug_reg0) \
+ ((vgt_debug_reg0 & VGT_DEBUG_REG0_te_grp_busy_MASK) >> VGT_DEBUG_REG0_te_grp_busy_SHIFT)
+#define VGT_DEBUG_REG0_GET_pt_grp_busy(vgt_debug_reg0) \
+ ((vgt_debug_reg0 & VGT_DEBUG_REG0_pt_grp_busy_MASK) >> VGT_DEBUG_REG0_pt_grp_busy_SHIFT)
+#define VGT_DEBUG_REG0_GET_vr_grp_busy(vgt_debug_reg0) \
+ ((vgt_debug_reg0 & VGT_DEBUG_REG0_vr_grp_busy_MASK) >> VGT_DEBUG_REG0_vr_grp_busy_SHIFT)
+#define VGT_DEBUG_REG0_GET_dma_request_busy(vgt_debug_reg0) \
+ ((vgt_debug_reg0 & VGT_DEBUG_REG0_dma_request_busy_MASK) >> VGT_DEBUG_REG0_dma_request_busy_SHIFT)
+#define VGT_DEBUG_REG0_GET_out_busy(vgt_debug_reg0) \
+ ((vgt_debug_reg0 & VGT_DEBUG_REG0_out_busy_MASK) >> VGT_DEBUG_REG0_out_busy_SHIFT)
+#define VGT_DEBUG_REG0_GET_grp_backend_busy(vgt_debug_reg0) \
+ ((vgt_debug_reg0 & VGT_DEBUG_REG0_grp_backend_busy_MASK) >> VGT_DEBUG_REG0_grp_backend_busy_SHIFT)
+#define VGT_DEBUG_REG0_GET_grp_busy(vgt_debug_reg0) \
+ ((vgt_debug_reg0 & VGT_DEBUG_REG0_grp_busy_MASK) >> VGT_DEBUG_REG0_grp_busy_SHIFT)
+#define VGT_DEBUG_REG0_GET_dma_busy(vgt_debug_reg0) \
+ ((vgt_debug_reg0 & VGT_DEBUG_REG0_dma_busy_MASK) >> VGT_DEBUG_REG0_dma_busy_SHIFT)
+#define VGT_DEBUG_REG0_GET_rbiu_dma_request_busy(vgt_debug_reg0) \
+ ((vgt_debug_reg0 & VGT_DEBUG_REG0_rbiu_dma_request_busy_MASK) >> VGT_DEBUG_REG0_rbiu_dma_request_busy_SHIFT)
+#define VGT_DEBUG_REG0_GET_rbiu_busy(vgt_debug_reg0) \
+ ((vgt_debug_reg0 & VGT_DEBUG_REG0_rbiu_busy_MASK) >> VGT_DEBUG_REG0_rbiu_busy_SHIFT)
+#define VGT_DEBUG_REG0_GET_vgt_no_dma_busy_extended(vgt_debug_reg0) \
+ ((vgt_debug_reg0 & VGT_DEBUG_REG0_vgt_no_dma_busy_extended_MASK) >> VGT_DEBUG_REG0_vgt_no_dma_busy_extended_SHIFT)
+#define VGT_DEBUG_REG0_GET_vgt_no_dma_busy(vgt_debug_reg0) \
+ ((vgt_debug_reg0 & VGT_DEBUG_REG0_vgt_no_dma_busy_MASK) >> VGT_DEBUG_REG0_vgt_no_dma_busy_SHIFT)
+#define VGT_DEBUG_REG0_GET_vgt_busy_extended(vgt_debug_reg0) \
+ ((vgt_debug_reg0 & VGT_DEBUG_REG0_vgt_busy_extended_MASK) >> VGT_DEBUG_REG0_vgt_busy_extended_SHIFT)
+#define VGT_DEBUG_REG0_GET_vgt_busy(vgt_debug_reg0) \
+ ((vgt_debug_reg0 & VGT_DEBUG_REG0_vgt_busy_MASK) >> VGT_DEBUG_REG0_vgt_busy_SHIFT)
+#define VGT_DEBUG_REG0_GET_rbbm_skid_fifo_busy_out(vgt_debug_reg0) \
+ ((vgt_debug_reg0 & VGT_DEBUG_REG0_rbbm_skid_fifo_busy_out_MASK) >> VGT_DEBUG_REG0_rbbm_skid_fifo_busy_out_SHIFT)
+#define VGT_DEBUG_REG0_GET_VGT_RBBM_no_dma_busy(vgt_debug_reg0) \
+ ((vgt_debug_reg0 & VGT_DEBUG_REG0_VGT_RBBM_no_dma_busy_MASK) >> VGT_DEBUG_REG0_VGT_RBBM_no_dma_busy_SHIFT)
+#define VGT_DEBUG_REG0_GET_VGT_RBBM_busy(vgt_debug_reg0) \
+ ((vgt_debug_reg0 & VGT_DEBUG_REG0_VGT_RBBM_busy_MASK) >> VGT_DEBUG_REG0_VGT_RBBM_busy_SHIFT)
+
+#define VGT_DEBUG_REG0_SET_te_grp_busy(vgt_debug_reg0_reg, te_grp_busy) \
+ vgt_debug_reg0_reg = (vgt_debug_reg0_reg & ~VGT_DEBUG_REG0_te_grp_busy_MASK) | (te_grp_busy << VGT_DEBUG_REG0_te_grp_busy_SHIFT)
+#define VGT_DEBUG_REG0_SET_pt_grp_busy(vgt_debug_reg0_reg, pt_grp_busy) \
+ vgt_debug_reg0_reg = (vgt_debug_reg0_reg & ~VGT_DEBUG_REG0_pt_grp_busy_MASK) | (pt_grp_busy << VGT_DEBUG_REG0_pt_grp_busy_SHIFT)
+#define VGT_DEBUG_REG0_SET_vr_grp_busy(vgt_debug_reg0_reg, vr_grp_busy) \
+ vgt_debug_reg0_reg = (vgt_debug_reg0_reg & ~VGT_DEBUG_REG0_vr_grp_busy_MASK) | (vr_grp_busy << VGT_DEBUG_REG0_vr_grp_busy_SHIFT)
+#define VGT_DEBUG_REG0_SET_dma_request_busy(vgt_debug_reg0_reg, dma_request_busy) \
+ vgt_debug_reg0_reg = (vgt_debug_reg0_reg & ~VGT_DEBUG_REG0_dma_request_busy_MASK) | (dma_request_busy << VGT_DEBUG_REG0_dma_request_busy_SHIFT)
+#define VGT_DEBUG_REG0_SET_out_busy(vgt_debug_reg0_reg, out_busy) \
+ vgt_debug_reg0_reg = (vgt_debug_reg0_reg & ~VGT_DEBUG_REG0_out_busy_MASK) | (out_busy << VGT_DEBUG_REG0_out_busy_SHIFT)
+#define VGT_DEBUG_REG0_SET_grp_backend_busy(vgt_debug_reg0_reg, grp_backend_busy) \
+ vgt_debug_reg0_reg = (vgt_debug_reg0_reg & ~VGT_DEBUG_REG0_grp_backend_busy_MASK) | (grp_backend_busy << VGT_DEBUG_REG0_grp_backend_busy_SHIFT)
+#define VGT_DEBUG_REG0_SET_grp_busy(vgt_debug_reg0_reg, grp_busy) \
+ vgt_debug_reg0_reg = (vgt_debug_reg0_reg & ~VGT_DEBUG_REG0_grp_busy_MASK) | (grp_busy << VGT_DEBUG_REG0_grp_busy_SHIFT)
+#define VGT_DEBUG_REG0_SET_dma_busy(vgt_debug_reg0_reg, dma_busy) \
+ vgt_debug_reg0_reg = (vgt_debug_reg0_reg & ~VGT_DEBUG_REG0_dma_busy_MASK) | (dma_busy << VGT_DEBUG_REG0_dma_busy_SHIFT)
+#define VGT_DEBUG_REG0_SET_rbiu_dma_request_busy(vgt_debug_reg0_reg, rbiu_dma_request_busy) \
+ vgt_debug_reg0_reg = (vgt_debug_reg0_reg & ~VGT_DEBUG_REG0_rbiu_dma_request_busy_MASK) | (rbiu_dma_request_busy << VGT_DEBUG_REG0_rbiu_dma_request_busy_SHIFT)
+#define VGT_DEBUG_REG0_SET_rbiu_busy(vgt_debug_reg0_reg, rbiu_busy) \
+ vgt_debug_reg0_reg = (vgt_debug_reg0_reg & ~VGT_DEBUG_REG0_rbiu_busy_MASK) | (rbiu_busy << VGT_DEBUG_REG0_rbiu_busy_SHIFT)
+#define VGT_DEBUG_REG0_SET_vgt_no_dma_busy_extended(vgt_debug_reg0_reg, vgt_no_dma_busy_extended) \
+ vgt_debug_reg0_reg = (vgt_debug_reg0_reg & ~VGT_DEBUG_REG0_vgt_no_dma_busy_extended_MASK) | (vgt_no_dma_busy_extended << VGT_DEBUG_REG0_vgt_no_dma_busy_extended_SHIFT)
+#define VGT_DEBUG_REG0_SET_vgt_no_dma_busy(vgt_debug_reg0_reg, vgt_no_dma_busy) \
+ vgt_debug_reg0_reg = (vgt_debug_reg0_reg & ~VGT_DEBUG_REG0_vgt_no_dma_busy_MASK) | (vgt_no_dma_busy << VGT_DEBUG_REG0_vgt_no_dma_busy_SHIFT)
+#define VGT_DEBUG_REG0_SET_vgt_busy_extended(vgt_debug_reg0_reg, vgt_busy_extended) \
+ vgt_debug_reg0_reg = (vgt_debug_reg0_reg & ~VGT_DEBUG_REG0_vgt_busy_extended_MASK) | (vgt_busy_extended << VGT_DEBUG_REG0_vgt_busy_extended_SHIFT)
+#define VGT_DEBUG_REG0_SET_vgt_busy(vgt_debug_reg0_reg, vgt_busy) \
+ vgt_debug_reg0_reg = (vgt_debug_reg0_reg & ~VGT_DEBUG_REG0_vgt_busy_MASK) | (vgt_busy << VGT_DEBUG_REG0_vgt_busy_SHIFT)
+#define VGT_DEBUG_REG0_SET_rbbm_skid_fifo_busy_out(vgt_debug_reg0_reg, rbbm_skid_fifo_busy_out) \
+ vgt_debug_reg0_reg = (vgt_debug_reg0_reg & ~VGT_DEBUG_REG0_rbbm_skid_fifo_busy_out_MASK) | (rbbm_skid_fifo_busy_out << VGT_DEBUG_REG0_rbbm_skid_fifo_busy_out_SHIFT)
+#define VGT_DEBUG_REG0_SET_VGT_RBBM_no_dma_busy(vgt_debug_reg0_reg, vgt_rbbm_no_dma_busy) \
+ vgt_debug_reg0_reg = (vgt_debug_reg0_reg & ~VGT_DEBUG_REG0_VGT_RBBM_no_dma_busy_MASK) | (vgt_rbbm_no_dma_busy << VGT_DEBUG_REG0_VGT_RBBM_no_dma_busy_SHIFT)
+#define VGT_DEBUG_REG0_SET_VGT_RBBM_busy(vgt_debug_reg0_reg, vgt_rbbm_busy) \
+ vgt_debug_reg0_reg = (vgt_debug_reg0_reg & ~VGT_DEBUG_REG0_VGT_RBBM_busy_MASK) | (vgt_rbbm_busy << VGT_DEBUG_REG0_VGT_RBBM_busy_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg0_t {
+ unsigned int te_grp_busy : VGT_DEBUG_REG0_te_grp_busy_SIZE;
+ unsigned int pt_grp_busy : VGT_DEBUG_REG0_pt_grp_busy_SIZE;
+ unsigned int vr_grp_busy : VGT_DEBUG_REG0_vr_grp_busy_SIZE;
+ unsigned int dma_request_busy : VGT_DEBUG_REG0_dma_request_busy_SIZE;
+ unsigned int out_busy : VGT_DEBUG_REG0_out_busy_SIZE;
+ unsigned int grp_backend_busy : VGT_DEBUG_REG0_grp_backend_busy_SIZE;
+ unsigned int grp_busy : VGT_DEBUG_REG0_grp_busy_SIZE;
+ unsigned int dma_busy : VGT_DEBUG_REG0_dma_busy_SIZE;
+ unsigned int rbiu_dma_request_busy : VGT_DEBUG_REG0_rbiu_dma_request_busy_SIZE;
+ unsigned int rbiu_busy : VGT_DEBUG_REG0_rbiu_busy_SIZE;
+ unsigned int vgt_no_dma_busy_extended : VGT_DEBUG_REG0_vgt_no_dma_busy_extended_SIZE;
+ unsigned int vgt_no_dma_busy : VGT_DEBUG_REG0_vgt_no_dma_busy_SIZE;
+ unsigned int vgt_busy_extended : VGT_DEBUG_REG0_vgt_busy_extended_SIZE;
+ unsigned int vgt_busy : VGT_DEBUG_REG0_vgt_busy_SIZE;
+ unsigned int rbbm_skid_fifo_busy_out : VGT_DEBUG_REG0_rbbm_skid_fifo_busy_out_SIZE;
+ unsigned int vgt_rbbm_no_dma_busy : VGT_DEBUG_REG0_VGT_RBBM_no_dma_busy_SIZE;
+ unsigned int vgt_rbbm_busy : VGT_DEBUG_REG0_VGT_RBBM_busy_SIZE;
+ unsigned int : 15;
+ } vgt_debug_reg0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg0_t {
+ unsigned int : 15;
+ unsigned int vgt_rbbm_busy : VGT_DEBUG_REG0_VGT_RBBM_busy_SIZE;
+ unsigned int vgt_rbbm_no_dma_busy : VGT_DEBUG_REG0_VGT_RBBM_no_dma_busy_SIZE;
+ unsigned int rbbm_skid_fifo_busy_out : VGT_DEBUG_REG0_rbbm_skid_fifo_busy_out_SIZE;
+ unsigned int vgt_busy : VGT_DEBUG_REG0_vgt_busy_SIZE;
+ unsigned int vgt_busy_extended : VGT_DEBUG_REG0_vgt_busy_extended_SIZE;
+ unsigned int vgt_no_dma_busy : VGT_DEBUG_REG0_vgt_no_dma_busy_SIZE;
+ unsigned int vgt_no_dma_busy_extended : VGT_DEBUG_REG0_vgt_no_dma_busy_extended_SIZE;
+ unsigned int rbiu_busy : VGT_DEBUG_REG0_rbiu_busy_SIZE;
+ unsigned int rbiu_dma_request_busy : VGT_DEBUG_REG0_rbiu_dma_request_busy_SIZE;
+ unsigned int dma_busy : VGT_DEBUG_REG0_dma_busy_SIZE;
+ unsigned int grp_busy : VGT_DEBUG_REG0_grp_busy_SIZE;
+ unsigned int grp_backend_busy : VGT_DEBUG_REG0_grp_backend_busy_SIZE;
+ unsigned int out_busy : VGT_DEBUG_REG0_out_busy_SIZE;
+ unsigned int dma_request_busy : VGT_DEBUG_REG0_dma_request_busy_SIZE;
+ unsigned int vr_grp_busy : VGT_DEBUG_REG0_vr_grp_busy_SIZE;
+ unsigned int pt_grp_busy : VGT_DEBUG_REG0_pt_grp_busy_SIZE;
+ unsigned int te_grp_busy : VGT_DEBUG_REG0_te_grp_busy_SIZE;
+ } vgt_debug_reg0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_reg0_t f;
+} vgt_debug_reg0_u;
+
+
+/*
+ * VGT_DEBUG_REG1 struct
+ */
+
+#define VGT_DEBUG_REG1_out_te_data_read_SIZE 1
+#define VGT_DEBUG_REG1_te_out_data_valid_SIZE 1
+#define VGT_DEBUG_REG1_out_pt_prim_read_SIZE 1
+#define VGT_DEBUG_REG1_pt_out_prim_valid_SIZE 1
+#define VGT_DEBUG_REG1_out_pt_data_read_SIZE 1
+#define VGT_DEBUG_REG1_pt_out_indx_valid_SIZE 1
+#define VGT_DEBUG_REG1_out_vr_prim_read_SIZE 1
+#define VGT_DEBUG_REG1_vr_out_prim_valid_SIZE 1
+#define VGT_DEBUG_REG1_out_vr_indx_read_SIZE 1
+#define VGT_DEBUG_REG1_vr_out_indx_valid_SIZE 1
+#define VGT_DEBUG_REG1_te_grp_read_SIZE 1
+#define VGT_DEBUG_REG1_grp_te_valid_SIZE 1
+#define VGT_DEBUG_REG1_pt_grp_read_SIZE 1
+#define VGT_DEBUG_REG1_grp_pt_valid_SIZE 1
+#define VGT_DEBUG_REG1_vr_grp_read_SIZE 1
+#define VGT_DEBUG_REG1_grp_vr_valid_SIZE 1
+#define VGT_DEBUG_REG1_grp_dma_read_SIZE 1
+#define VGT_DEBUG_REG1_dma_grp_valid_SIZE 1
+#define VGT_DEBUG_REG1_grp_rbiu_di_read_SIZE 1
+#define VGT_DEBUG_REG1_rbiu_grp_di_valid_SIZE 1
+#define VGT_DEBUG_REG1_MH_VGT_rtr_SIZE 1
+#define VGT_DEBUG_REG1_VGT_MH_send_SIZE 1
+#define VGT_DEBUG_REG1_PA_VGT_clip_s_rtr_SIZE 1
+#define VGT_DEBUG_REG1_VGT_PA_clip_s_send_SIZE 1
+#define VGT_DEBUG_REG1_PA_VGT_clip_p_rtr_SIZE 1
+#define VGT_DEBUG_REG1_VGT_PA_clip_p_send_SIZE 1
+#define VGT_DEBUG_REG1_PA_VGT_clip_v_rtr_SIZE 1
+#define VGT_DEBUG_REG1_VGT_PA_clip_v_send_SIZE 1
+#define VGT_DEBUG_REG1_SQ_VGT_rtr_SIZE 1
+#define VGT_DEBUG_REG1_VGT_SQ_send_SIZE 1
+#define VGT_DEBUG_REG1_mh_vgt_tag_7_q_SIZE 1
+
+#define VGT_DEBUG_REG1_out_te_data_read_SHIFT 0
+#define VGT_DEBUG_REG1_te_out_data_valid_SHIFT 1
+#define VGT_DEBUG_REG1_out_pt_prim_read_SHIFT 2
+#define VGT_DEBUG_REG1_pt_out_prim_valid_SHIFT 3
+#define VGT_DEBUG_REG1_out_pt_data_read_SHIFT 4
+#define VGT_DEBUG_REG1_pt_out_indx_valid_SHIFT 5
+#define VGT_DEBUG_REG1_out_vr_prim_read_SHIFT 6
+#define VGT_DEBUG_REG1_vr_out_prim_valid_SHIFT 7
+#define VGT_DEBUG_REG1_out_vr_indx_read_SHIFT 8
+#define VGT_DEBUG_REG1_vr_out_indx_valid_SHIFT 9
+#define VGT_DEBUG_REG1_te_grp_read_SHIFT 10
+#define VGT_DEBUG_REG1_grp_te_valid_SHIFT 11
+#define VGT_DEBUG_REG1_pt_grp_read_SHIFT 12
+#define VGT_DEBUG_REG1_grp_pt_valid_SHIFT 13
+#define VGT_DEBUG_REG1_vr_grp_read_SHIFT 14
+#define VGT_DEBUG_REG1_grp_vr_valid_SHIFT 15
+#define VGT_DEBUG_REG1_grp_dma_read_SHIFT 16
+#define VGT_DEBUG_REG1_dma_grp_valid_SHIFT 17
+#define VGT_DEBUG_REG1_grp_rbiu_di_read_SHIFT 18
+#define VGT_DEBUG_REG1_rbiu_grp_di_valid_SHIFT 19
+#define VGT_DEBUG_REG1_MH_VGT_rtr_SHIFT 20
+#define VGT_DEBUG_REG1_VGT_MH_send_SHIFT 21
+#define VGT_DEBUG_REG1_PA_VGT_clip_s_rtr_SHIFT 22
+#define VGT_DEBUG_REG1_VGT_PA_clip_s_send_SHIFT 23
+#define VGT_DEBUG_REG1_PA_VGT_clip_p_rtr_SHIFT 24
+#define VGT_DEBUG_REG1_VGT_PA_clip_p_send_SHIFT 25
+#define VGT_DEBUG_REG1_PA_VGT_clip_v_rtr_SHIFT 26
+#define VGT_DEBUG_REG1_VGT_PA_clip_v_send_SHIFT 27
+#define VGT_DEBUG_REG1_SQ_VGT_rtr_SHIFT 28
+#define VGT_DEBUG_REG1_VGT_SQ_send_SHIFT 29
+#define VGT_DEBUG_REG1_mh_vgt_tag_7_q_SHIFT 30
+
+#define VGT_DEBUG_REG1_out_te_data_read_MASK 0x00000001
+#define VGT_DEBUG_REG1_te_out_data_valid_MASK 0x00000002
+#define VGT_DEBUG_REG1_out_pt_prim_read_MASK 0x00000004
+#define VGT_DEBUG_REG1_pt_out_prim_valid_MASK 0x00000008
+#define VGT_DEBUG_REG1_out_pt_data_read_MASK 0x00000010
+#define VGT_DEBUG_REG1_pt_out_indx_valid_MASK 0x00000020
+#define VGT_DEBUG_REG1_out_vr_prim_read_MASK 0x00000040
+#define VGT_DEBUG_REG1_vr_out_prim_valid_MASK 0x00000080
+#define VGT_DEBUG_REG1_out_vr_indx_read_MASK 0x00000100
+#define VGT_DEBUG_REG1_vr_out_indx_valid_MASK 0x00000200
+#define VGT_DEBUG_REG1_te_grp_read_MASK 0x00000400
+#define VGT_DEBUG_REG1_grp_te_valid_MASK 0x00000800
+#define VGT_DEBUG_REG1_pt_grp_read_MASK 0x00001000
+#define VGT_DEBUG_REG1_grp_pt_valid_MASK 0x00002000
+#define VGT_DEBUG_REG1_vr_grp_read_MASK 0x00004000
+#define VGT_DEBUG_REG1_grp_vr_valid_MASK 0x00008000
+#define VGT_DEBUG_REG1_grp_dma_read_MASK 0x00010000
+#define VGT_DEBUG_REG1_dma_grp_valid_MASK 0x00020000
+#define VGT_DEBUG_REG1_grp_rbiu_di_read_MASK 0x00040000
+#define VGT_DEBUG_REG1_rbiu_grp_di_valid_MASK 0x00080000
+#define VGT_DEBUG_REG1_MH_VGT_rtr_MASK 0x00100000
+#define VGT_DEBUG_REG1_VGT_MH_send_MASK 0x00200000
+#define VGT_DEBUG_REG1_PA_VGT_clip_s_rtr_MASK 0x00400000
+#define VGT_DEBUG_REG1_VGT_PA_clip_s_send_MASK 0x00800000
+#define VGT_DEBUG_REG1_PA_VGT_clip_p_rtr_MASK 0x01000000
+#define VGT_DEBUG_REG1_VGT_PA_clip_p_send_MASK 0x02000000
+#define VGT_DEBUG_REG1_PA_VGT_clip_v_rtr_MASK 0x04000000
+#define VGT_DEBUG_REG1_VGT_PA_clip_v_send_MASK 0x08000000
+#define VGT_DEBUG_REG1_SQ_VGT_rtr_MASK 0x10000000
+#define VGT_DEBUG_REG1_VGT_SQ_send_MASK 0x20000000
+#define VGT_DEBUG_REG1_mh_vgt_tag_7_q_MASK 0x40000000
+
+#define VGT_DEBUG_REG1_MASK \
+ (VGT_DEBUG_REG1_out_te_data_read_MASK | \
+ VGT_DEBUG_REG1_te_out_data_valid_MASK | \
+ VGT_DEBUG_REG1_out_pt_prim_read_MASK | \
+ VGT_DEBUG_REG1_pt_out_prim_valid_MASK | \
+ VGT_DEBUG_REG1_out_pt_data_read_MASK | \
+ VGT_DEBUG_REG1_pt_out_indx_valid_MASK | \
+ VGT_DEBUG_REG1_out_vr_prim_read_MASK | \
+ VGT_DEBUG_REG1_vr_out_prim_valid_MASK | \
+ VGT_DEBUG_REG1_out_vr_indx_read_MASK | \
+ VGT_DEBUG_REG1_vr_out_indx_valid_MASK | \
+ VGT_DEBUG_REG1_te_grp_read_MASK | \
+ VGT_DEBUG_REG1_grp_te_valid_MASK | \
+ VGT_DEBUG_REG1_pt_grp_read_MASK | \
+ VGT_DEBUG_REG1_grp_pt_valid_MASK | \
+ VGT_DEBUG_REG1_vr_grp_read_MASK | \
+ VGT_DEBUG_REG1_grp_vr_valid_MASK | \
+ VGT_DEBUG_REG1_grp_dma_read_MASK | \
+ VGT_DEBUG_REG1_dma_grp_valid_MASK | \
+ VGT_DEBUG_REG1_grp_rbiu_di_read_MASK | \
+ VGT_DEBUG_REG1_rbiu_grp_di_valid_MASK | \
+ VGT_DEBUG_REG1_MH_VGT_rtr_MASK | \
+ VGT_DEBUG_REG1_VGT_MH_send_MASK | \
+ VGT_DEBUG_REG1_PA_VGT_clip_s_rtr_MASK | \
+ VGT_DEBUG_REG1_VGT_PA_clip_s_send_MASK | \
+ VGT_DEBUG_REG1_PA_VGT_clip_p_rtr_MASK | \
+ VGT_DEBUG_REG1_VGT_PA_clip_p_send_MASK | \
+ VGT_DEBUG_REG1_PA_VGT_clip_v_rtr_MASK | \
+ VGT_DEBUG_REG1_VGT_PA_clip_v_send_MASK | \
+ VGT_DEBUG_REG1_SQ_VGT_rtr_MASK | \
+ VGT_DEBUG_REG1_VGT_SQ_send_MASK | \
+ VGT_DEBUG_REG1_mh_vgt_tag_7_q_MASK)
+
+#define VGT_DEBUG_REG1(out_te_data_read, te_out_data_valid, out_pt_prim_read, pt_out_prim_valid, out_pt_data_read, pt_out_indx_valid, out_vr_prim_read, vr_out_prim_valid, out_vr_indx_read, vr_out_indx_valid, te_grp_read, grp_te_valid, pt_grp_read, grp_pt_valid, vr_grp_read, grp_vr_valid, grp_dma_read, dma_grp_valid, grp_rbiu_di_read, rbiu_grp_di_valid, mh_vgt_rtr, vgt_mh_send, pa_vgt_clip_s_rtr, vgt_pa_clip_s_send, pa_vgt_clip_p_rtr, vgt_pa_clip_p_send, pa_vgt_clip_v_rtr, vgt_pa_clip_v_send, sq_vgt_rtr, vgt_sq_send, mh_vgt_tag_7_q) \
+ ((out_te_data_read << VGT_DEBUG_REG1_out_te_data_read_SHIFT) | \
+ (te_out_data_valid << VGT_DEBUG_REG1_te_out_data_valid_SHIFT) | \
+ (out_pt_prim_read << VGT_DEBUG_REG1_out_pt_prim_read_SHIFT) | \
+ (pt_out_prim_valid << VGT_DEBUG_REG1_pt_out_prim_valid_SHIFT) | \
+ (out_pt_data_read << VGT_DEBUG_REG1_out_pt_data_read_SHIFT) | \
+ (pt_out_indx_valid << VGT_DEBUG_REG1_pt_out_indx_valid_SHIFT) | \
+ (out_vr_prim_read << VGT_DEBUG_REG1_out_vr_prim_read_SHIFT) | \
+ (vr_out_prim_valid << VGT_DEBUG_REG1_vr_out_prim_valid_SHIFT) | \
+ (out_vr_indx_read << VGT_DEBUG_REG1_out_vr_indx_read_SHIFT) | \
+ (vr_out_indx_valid << VGT_DEBUG_REG1_vr_out_indx_valid_SHIFT) | \
+ (te_grp_read << VGT_DEBUG_REG1_te_grp_read_SHIFT) | \
+ (grp_te_valid << VGT_DEBUG_REG1_grp_te_valid_SHIFT) | \
+ (pt_grp_read << VGT_DEBUG_REG1_pt_grp_read_SHIFT) | \
+ (grp_pt_valid << VGT_DEBUG_REG1_grp_pt_valid_SHIFT) | \
+ (vr_grp_read << VGT_DEBUG_REG1_vr_grp_read_SHIFT) | \
+ (grp_vr_valid << VGT_DEBUG_REG1_grp_vr_valid_SHIFT) | \
+ (grp_dma_read << VGT_DEBUG_REG1_grp_dma_read_SHIFT) | \
+ (dma_grp_valid << VGT_DEBUG_REG1_dma_grp_valid_SHIFT) | \
+ (grp_rbiu_di_read << VGT_DEBUG_REG1_grp_rbiu_di_read_SHIFT) | \
+ (rbiu_grp_di_valid << VGT_DEBUG_REG1_rbiu_grp_di_valid_SHIFT) | \
+ (mh_vgt_rtr << VGT_DEBUG_REG1_MH_VGT_rtr_SHIFT) | \
+ (vgt_mh_send << VGT_DEBUG_REG1_VGT_MH_send_SHIFT) | \
+ (pa_vgt_clip_s_rtr << VGT_DEBUG_REG1_PA_VGT_clip_s_rtr_SHIFT) | \
+ (vgt_pa_clip_s_send << VGT_DEBUG_REG1_VGT_PA_clip_s_send_SHIFT) | \
+ (pa_vgt_clip_p_rtr << VGT_DEBUG_REG1_PA_VGT_clip_p_rtr_SHIFT) | \
+ (vgt_pa_clip_p_send << VGT_DEBUG_REG1_VGT_PA_clip_p_send_SHIFT) | \
+ (pa_vgt_clip_v_rtr << VGT_DEBUG_REG1_PA_VGT_clip_v_rtr_SHIFT) | \
+ (vgt_pa_clip_v_send << VGT_DEBUG_REG1_VGT_PA_clip_v_send_SHIFT) | \
+ (sq_vgt_rtr << VGT_DEBUG_REG1_SQ_VGT_rtr_SHIFT) | \
+ (vgt_sq_send << VGT_DEBUG_REG1_VGT_SQ_send_SHIFT) | \
+ (mh_vgt_tag_7_q << VGT_DEBUG_REG1_mh_vgt_tag_7_q_SHIFT))
+
+#define VGT_DEBUG_REG1_GET_out_te_data_read(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_out_te_data_read_MASK) >> VGT_DEBUG_REG1_out_te_data_read_SHIFT)
+#define VGT_DEBUG_REG1_GET_te_out_data_valid(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_te_out_data_valid_MASK) >> VGT_DEBUG_REG1_te_out_data_valid_SHIFT)
+#define VGT_DEBUG_REG1_GET_out_pt_prim_read(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_out_pt_prim_read_MASK) >> VGT_DEBUG_REG1_out_pt_prim_read_SHIFT)
+#define VGT_DEBUG_REG1_GET_pt_out_prim_valid(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_pt_out_prim_valid_MASK) >> VGT_DEBUG_REG1_pt_out_prim_valid_SHIFT)
+#define VGT_DEBUG_REG1_GET_out_pt_data_read(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_out_pt_data_read_MASK) >> VGT_DEBUG_REG1_out_pt_data_read_SHIFT)
+#define VGT_DEBUG_REG1_GET_pt_out_indx_valid(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_pt_out_indx_valid_MASK) >> VGT_DEBUG_REG1_pt_out_indx_valid_SHIFT)
+#define VGT_DEBUG_REG1_GET_out_vr_prim_read(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_out_vr_prim_read_MASK) >> VGT_DEBUG_REG1_out_vr_prim_read_SHIFT)
+#define VGT_DEBUG_REG1_GET_vr_out_prim_valid(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_vr_out_prim_valid_MASK) >> VGT_DEBUG_REG1_vr_out_prim_valid_SHIFT)
+#define VGT_DEBUG_REG1_GET_out_vr_indx_read(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_out_vr_indx_read_MASK) >> VGT_DEBUG_REG1_out_vr_indx_read_SHIFT)
+#define VGT_DEBUG_REG1_GET_vr_out_indx_valid(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_vr_out_indx_valid_MASK) >> VGT_DEBUG_REG1_vr_out_indx_valid_SHIFT)
+#define VGT_DEBUG_REG1_GET_te_grp_read(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_te_grp_read_MASK) >> VGT_DEBUG_REG1_te_grp_read_SHIFT)
+#define VGT_DEBUG_REG1_GET_grp_te_valid(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_grp_te_valid_MASK) >> VGT_DEBUG_REG1_grp_te_valid_SHIFT)
+#define VGT_DEBUG_REG1_GET_pt_grp_read(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_pt_grp_read_MASK) >> VGT_DEBUG_REG1_pt_grp_read_SHIFT)
+#define VGT_DEBUG_REG1_GET_grp_pt_valid(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_grp_pt_valid_MASK) >> VGT_DEBUG_REG1_grp_pt_valid_SHIFT)
+#define VGT_DEBUG_REG1_GET_vr_grp_read(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_vr_grp_read_MASK) >> VGT_DEBUG_REG1_vr_grp_read_SHIFT)
+#define VGT_DEBUG_REG1_GET_grp_vr_valid(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_grp_vr_valid_MASK) >> VGT_DEBUG_REG1_grp_vr_valid_SHIFT)
+#define VGT_DEBUG_REG1_GET_grp_dma_read(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_grp_dma_read_MASK) >> VGT_DEBUG_REG1_grp_dma_read_SHIFT)
+#define VGT_DEBUG_REG1_GET_dma_grp_valid(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_dma_grp_valid_MASK) >> VGT_DEBUG_REG1_dma_grp_valid_SHIFT)
+#define VGT_DEBUG_REG1_GET_grp_rbiu_di_read(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_grp_rbiu_di_read_MASK) >> VGT_DEBUG_REG1_grp_rbiu_di_read_SHIFT)
+#define VGT_DEBUG_REG1_GET_rbiu_grp_di_valid(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_rbiu_grp_di_valid_MASK) >> VGT_DEBUG_REG1_rbiu_grp_di_valid_SHIFT)
+#define VGT_DEBUG_REG1_GET_MH_VGT_rtr(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_MH_VGT_rtr_MASK) >> VGT_DEBUG_REG1_MH_VGT_rtr_SHIFT)
+#define VGT_DEBUG_REG1_GET_VGT_MH_send(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_VGT_MH_send_MASK) >> VGT_DEBUG_REG1_VGT_MH_send_SHIFT)
+#define VGT_DEBUG_REG1_GET_PA_VGT_clip_s_rtr(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_PA_VGT_clip_s_rtr_MASK) >> VGT_DEBUG_REG1_PA_VGT_clip_s_rtr_SHIFT)
+#define VGT_DEBUG_REG1_GET_VGT_PA_clip_s_send(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_VGT_PA_clip_s_send_MASK) >> VGT_DEBUG_REG1_VGT_PA_clip_s_send_SHIFT)
+#define VGT_DEBUG_REG1_GET_PA_VGT_clip_p_rtr(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_PA_VGT_clip_p_rtr_MASK) >> VGT_DEBUG_REG1_PA_VGT_clip_p_rtr_SHIFT)
+#define VGT_DEBUG_REG1_GET_VGT_PA_clip_p_send(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_VGT_PA_clip_p_send_MASK) >> VGT_DEBUG_REG1_VGT_PA_clip_p_send_SHIFT)
+#define VGT_DEBUG_REG1_GET_PA_VGT_clip_v_rtr(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_PA_VGT_clip_v_rtr_MASK) >> VGT_DEBUG_REG1_PA_VGT_clip_v_rtr_SHIFT)
+#define VGT_DEBUG_REG1_GET_VGT_PA_clip_v_send(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_VGT_PA_clip_v_send_MASK) >> VGT_DEBUG_REG1_VGT_PA_clip_v_send_SHIFT)
+#define VGT_DEBUG_REG1_GET_SQ_VGT_rtr(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_SQ_VGT_rtr_MASK) >> VGT_DEBUG_REG1_SQ_VGT_rtr_SHIFT)
+#define VGT_DEBUG_REG1_GET_VGT_SQ_send(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_VGT_SQ_send_MASK) >> VGT_DEBUG_REG1_VGT_SQ_send_SHIFT)
+#define VGT_DEBUG_REG1_GET_mh_vgt_tag_7_q(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_mh_vgt_tag_7_q_MASK) >> VGT_DEBUG_REG1_mh_vgt_tag_7_q_SHIFT)
+
+#define VGT_DEBUG_REG1_SET_out_te_data_read(vgt_debug_reg1_reg, out_te_data_read) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_out_te_data_read_MASK) | (out_te_data_read << VGT_DEBUG_REG1_out_te_data_read_SHIFT)
+#define VGT_DEBUG_REG1_SET_te_out_data_valid(vgt_debug_reg1_reg, te_out_data_valid) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_te_out_data_valid_MASK) | (te_out_data_valid << VGT_DEBUG_REG1_te_out_data_valid_SHIFT)
+#define VGT_DEBUG_REG1_SET_out_pt_prim_read(vgt_debug_reg1_reg, out_pt_prim_read) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_out_pt_prim_read_MASK) | (out_pt_prim_read << VGT_DEBUG_REG1_out_pt_prim_read_SHIFT)
+#define VGT_DEBUG_REG1_SET_pt_out_prim_valid(vgt_debug_reg1_reg, pt_out_prim_valid) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_pt_out_prim_valid_MASK) | (pt_out_prim_valid << VGT_DEBUG_REG1_pt_out_prim_valid_SHIFT)
+#define VGT_DEBUG_REG1_SET_out_pt_data_read(vgt_debug_reg1_reg, out_pt_data_read) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_out_pt_data_read_MASK) | (out_pt_data_read << VGT_DEBUG_REG1_out_pt_data_read_SHIFT)
+#define VGT_DEBUG_REG1_SET_pt_out_indx_valid(vgt_debug_reg1_reg, pt_out_indx_valid) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_pt_out_indx_valid_MASK) | (pt_out_indx_valid << VGT_DEBUG_REG1_pt_out_indx_valid_SHIFT)
+#define VGT_DEBUG_REG1_SET_out_vr_prim_read(vgt_debug_reg1_reg, out_vr_prim_read) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_out_vr_prim_read_MASK) | (out_vr_prim_read << VGT_DEBUG_REG1_out_vr_prim_read_SHIFT)
+#define VGT_DEBUG_REG1_SET_vr_out_prim_valid(vgt_debug_reg1_reg, vr_out_prim_valid) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_vr_out_prim_valid_MASK) | (vr_out_prim_valid << VGT_DEBUG_REG1_vr_out_prim_valid_SHIFT)
+#define VGT_DEBUG_REG1_SET_out_vr_indx_read(vgt_debug_reg1_reg, out_vr_indx_read) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_out_vr_indx_read_MASK) | (out_vr_indx_read << VGT_DEBUG_REG1_out_vr_indx_read_SHIFT)
+#define VGT_DEBUG_REG1_SET_vr_out_indx_valid(vgt_debug_reg1_reg, vr_out_indx_valid) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_vr_out_indx_valid_MASK) | (vr_out_indx_valid << VGT_DEBUG_REG1_vr_out_indx_valid_SHIFT)
+#define VGT_DEBUG_REG1_SET_te_grp_read(vgt_debug_reg1_reg, te_grp_read) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_te_grp_read_MASK) | (te_grp_read << VGT_DEBUG_REG1_te_grp_read_SHIFT)
+#define VGT_DEBUG_REG1_SET_grp_te_valid(vgt_debug_reg1_reg, grp_te_valid) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_grp_te_valid_MASK) | (grp_te_valid << VGT_DEBUG_REG1_grp_te_valid_SHIFT)
+#define VGT_DEBUG_REG1_SET_pt_grp_read(vgt_debug_reg1_reg, pt_grp_read) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_pt_grp_read_MASK) | (pt_grp_read << VGT_DEBUG_REG1_pt_grp_read_SHIFT)
+#define VGT_DEBUG_REG1_SET_grp_pt_valid(vgt_debug_reg1_reg, grp_pt_valid) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_grp_pt_valid_MASK) | (grp_pt_valid << VGT_DEBUG_REG1_grp_pt_valid_SHIFT)
+#define VGT_DEBUG_REG1_SET_vr_grp_read(vgt_debug_reg1_reg, vr_grp_read) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_vr_grp_read_MASK) | (vr_grp_read << VGT_DEBUG_REG1_vr_grp_read_SHIFT)
+#define VGT_DEBUG_REG1_SET_grp_vr_valid(vgt_debug_reg1_reg, grp_vr_valid) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_grp_vr_valid_MASK) | (grp_vr_valid << VGT_DEBUG_REG1_grp_vr_valid_SHIFT)
+#define VGT_DEBUG_REG1_SET_grp_dma_read(vgt_debug_reg1_reg, grp_dma_read) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_grp_dma_read_MASK) | (grp_dma_read << VGT_DEBUG_REG1_grp_dma_read_SHIFT)
+#define VGT_DEBUG_REG1_SET_dma_grp_valid(vgt_debug_reg1_reg, dma_grp_valid) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_dma_grp_valid_MASK) | (dma_grp_valid << VGT_DEBUG_REG1_dma_grp_valid_SHIFT)
+#define VGT_DEBUG_REG1_SET_grp_rbiu_di_read(vgt_debug_reg1_reg, grp_rbiu_di_read) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_grp_rbiu_di_read_MASK) | (grp_rbiu_di_read << VGT_DEBUG_REG1_grp_rbiu_di_read_SHIFT)
+#define VGT_DEBUG_REG1_SET_rbiu_grp_di_valid(vgt_debug_reg1_reg, rbiu_grp_di_valid) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_rbiu_grp_di_valid_MASK) | (rbiu_grp_di_valid << VGT_DEBUG_REG1_rbiu_grp_di_valid_SHIFT)
+#define VGT_DEBUG_REG1_SET_MH_VGT_rtr(vgt_debug_reg1_reg, mh_vgt_rtr) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_MH_VGT_rtr_MASK) | (mh_vgt_rtr << VGT_DEBUG_REG1_MH_VGT_rtr_SHIFT)
+#define VGT_DEBUG_REG1_SET_VGT_MH_send(vgt_debug_reg1_reg, vgt_mh_send) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_VGT_MH_send_MASK) | (vgt_mh_send << VGT_DEBUG_REG1_VGT_MH_send_SHIFT)
+#define VGT_DEBUG_REG1_SET_PA_VGT_clip_s_rtr(vgt_debug_reg1_reg, pa_vgt_clip_s_rtr) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_PA_VGT_clip_s_rtr_MASK) | (pa_vgt_clip_s_rtr << VGT_DEBUG_REG1_PA_VGT_clip_s_rtr_SHIFT)
+#define VGT_DEBUG_REG1_SET_VGT_PA_clip_s_send(vgt_debug_reg1_reg, vgt_pa_clip_s_send) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_VGT_PA_clip_s_send_MASK) | (vgt_pa_clip_s_send << VGT_DEBUG_REG1_VGT_PA_clip_s_send_SHIFT)
+#define VGT_DEBUG_REG1_SET_PA_VGT_clip_p_rtr(vgt_debug_reg1_reg, pa_vgt_clip_p_rtr) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_PA_VGT_clip_p_rtr_MASK) | (pa_vgt_clip_p_rtr << VGT_DEBUG_REG1_PA_VGT_clip_p_rtr_SHIFT)
+#define VGT_DEBUG_REG1_SET_VGT_PA_clip_p_send(vgt_debug_reg1_reg, vgt_pa_clip_p_send) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_VGT_PA_clip_p_send_MASK) | (vgt_pa_clip_p_send << VGT_DEBUG_REG1_VGT_PA_clip_p_send_SHIFT)
+#define VGT_DEBUG_REG1_SET_PA_VGT_clip_v_rtr(vgt_debug_reg1_reg, pa_vgt_clip_v_rtr) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_PA_VGT_clip_v_rtr_MASK) | (pa_vgt_clip_v_rtr << VGT_DEBUG_REG1_PA_VGT_clip_v_rtr_SHIFT)
+#define VGT_DEBUG_REG1_SET_VGT_PA_clip_v_send(vgt_debug_reg1_reg, vgt_pa_clip_v_send) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_VGT_PA_clip_v_send_MASK) | (vgt_pa_clip_v_send << VGT_DEBUG_REG1_VGT_PA_clip_v_send_SHIFT)
+#define VGT_DEBUG_REG1_SET_SQ_VGT_rtr(vgt_debug_reg1_reg, sq_vgt_rtr) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_SQ_VGT_rtr_MASK) | (sq_vgt_rtr << VGT_DEBUG_REG1_SQ_VGT_rtr_SHIFT)
+#define VGT_DEBUG_REG1_SET_VGT_SQ_send(vgt_debug_reg1_reg, vgt_sq_send) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_VGT_SQ_send_MASK) | (vgt_sq_send << VGT_DEBUG_REG1_VGT_SQ_send_SHIFT)
+#define VGT_DEBUG_REG1_SET_mh_vgt_tag_7_q(vgt_debug_reg1_reg, mh_vgt_tag_7_q) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_mh_vgt_tag_7_q_MASK) | (mh_vgt_tag_7_q << VGT_DEBUG_REG1_mh_vgt_tag_7_q_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg1_t {
+ unsigned int out_te_data_read : VGT_DEBUG_REG1_out_te_data_read_SIZE;
+ unsigned int te_out_data_valid : VGT_DEBUG_REG1_te_out_data_valid_SIZE;
+ unsigned int out_pt_prim_read : VGT_DEBUG_REG1_out_pt_prim_read_SIZE;
+ unsigned int pt_out_prim_valid : VGT_DEBUG_REG1_pt_out_prim_valid_SIZE;
+ unsigned int out_pt_data_read : VGT_DEBUG_REG1_out_pt_data_read_SIZE;
+ unsigned int pt_out_indx_valid : VGT_DEBUG_REG1_pt_out_indx_valid_SIZE;
+ unsigned int out_vr_prim_read : VGT_DEBUG_REG1_out_vr_prim_read_SIZE;
+ unsigned int vr_out_prim_valid : VGT_DEBUG_REG1_vr_out_prim_valid_SIZE;
+ unsigned int out_vr_indx_read : VGT_DEBUG_REG1_out_vr_indx_read_SIZE;
+ unsigned int vr_out_indx_valid : VGT_DEBUG_REG1_vr_out_indx_valid_SIZE;
+ unsigned int te_grp_read : VGT_DEBUG_REG1_te_grp_read_SIZE;
+ unsigned int grp_te_valid : VGT_DEBUG_REG1_grp_te_valid_SIZE;
+ unsigned int pt_grp_read : VGT_DEBUG_REG1_pt_grp_read_SIZE;
+ unsigned int grp_pt_valid : VGT_DEBUG_REG1_grp_pt_valid_SIZE;
+ unsigned int vr_grp_read : VGT_DEBUG_REG1_vr_grp_read_SIZE;
+ unsigned int grp_vr_valid : VGT_DEBUG_REG1_grp_vr_valid_SIZE;
+ unsigned int grp_dma_read : VGT_DEBUG_REG1_grp_dma_read_SIZE;
+ unsigned int dma_grp_valid : VGT_DEBUG_REG1_dma_grp_valid_SIZE;
+ unsigned int grp_rbiu_di_read : VGT_DEBUG_REG1_grp_rbiu_di_read_SIZE;
+ unsigned int rbiu_grp_di_valid : VGT_DEBUG_REG1_rbiu_grp_di_valid_SIZE;
+ unsigned int mh_vgt_rtr : VGT_DEBUG_REG1_MH_VGT_rtr_SIZE;
+ unsigned int vgt_mh_send : VGT_DEBUG_REG1_VGT_MH_send_SIZE;
+ unsigned int pa_vgt_clip_s_rtr : VGT_DEBUG_REG1_PA_VGT_clip_s_rtr_SIZE;
+ unsigned int vgt_pa_clip_s_send : VGT_DEBUG_REG1_VGT_PA_clip_s_send_SIZE;
+ unsigned int pa_vgt_clip_p_rtr : VGT_DEBUG_REG1_PA_VGT_clip_p_rtr_SIZE;
+ unsigned int vgt_pa_clip_p_send : VGT_DEBUG_REG1_VGT_PA_clip_p_send_SIZE;
+ unsigned int pa_vgt_clip_v_rtr : VGT_DEBUG_REG1_PA_VGT_clip_v_rtr_SIZE;
+ unsigned int vgt_pa_clip_v_send : VGT_DEBUG_REG1_VGT_PA_clip_v_send_SIZE;
+ unsigned int sq_vgt_rtr : VGT_DEBUG_REG1_SQ_VGT_rtr_SIZE;
+ unsigned int vgt_sq_send : VGT_DEBUG_REG1_VGT_SQ_send_SIZE;
+ unsigned int mh_vgt_tag_7_q : VGT_DEBUG_REG1_mh_vgt_tag_7_q_SIZE;
+ unsigned int : 1;
+ } vgt_debug_reg1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg1_t {
+ unsigned int : 1;
+ unsigned int mh_vgt_tag_7_q : VGT_DEBUG_REG1_mh_vgt_tag_7_q_SIZE;
+ unsigned int vgt_sq_send : VGT_DEBUG_REG1_VGT_SQ_send_SIZE;
+ unsigned int sq_vgt_rtr : VGT_DEBUG_REG1_SQ_VGT_rtr_SIZE;
+ unsigned int vgt_pa_clip_v_send : VGT_DEBUG_REG1_VGT_PA_clip_v_send_SIZE;
+ unsigned int pa_vgt_clip_v_rtr : VGT_DEBUG_REG1_PA_VGT_clip_v_rtr_SIZE;
+ unsigned int vgt_pa_clip_p_send : VGT_DEBUG_REG1_VGT_PA_clip_p_send_SIZE;
+ unsigned int pa_vgt_clip_p_rtr : VGT_DEBUG_REG1_PA_VGT_clip_p_rtr_SIZE;
+ unsigned int vgt_pa_clip_s_send : VGT_DEBUG_REG1_VGT_PA_clip_s_send_SIZE;
+ unsigned int pa_vgt_clip_s_rtr : VGT_DEBUG_REG1_PA_VGT_clip_s_rtr_SIZE;
+ unsigned int vgt_mh_send : VGT_DEBUG_REG1_VGT_MH_send_SIZE;
+ unsigned int mh_vgt_rtr : VGT_DEBUG_REG1_MH_VGT_rtr_SIZE;
+ unsigned int rbiu_grp_di_valid : VGT_DEBUG_REG1_rbiu_grp_di_valid_SIZE;
+ unsigned int grp_rbiu_di_read : VGT_DEBUG_REG1_grp_rbiu_di_read_SIZE;
+ unsigned int dma_grp_valid : VGT_DEBUG_REG1_dma_grp_valid_SIZE;
+ unsigned int grp_dma_read : VGT_DEBUG_REG1_grp_dma_read_SIZE;
+ unsigned int grp_vr_valid : VGT_DEBUG_REG1_grp_vr_valid_SIZE;
+ unsigned int vr_grp_read : VGT_DEBUG_REG1_vr_grp_read_SIZE;
+ unsigned int grp_pt_valid : VGT_DEBUG_REG1_grp_pt_valid_SIZE;
+ unsigned int pt_grp_read : VGT_DEBUG_REG1_pt_grp_read_SIZE;
+ unsigned int grp_te_valid : VGT_DEBUG_REG1_grp_te_valid_SIZE;
+ unsigned int te_grp_read : VGT_DEBUG_REG1_te_grp_read_SIZE;
+ unsigned int vr_out_indx_valid : VGT_DEBUG_REG1_vr_out_indx_valid_SIZE;
+ unsigned int out_vr_indx_read : VGT_DEBUG_REG1_out_vr_indx_read_SIZE;
+ unsigned int vr_out_prim_valid : VGT_DEBUG_REG1_vr_out_prim_valid_SIZE;
+ unsigned int out_vr_prim_read : VGT_DEBUG_REG1_out_vr_prim_read_SIZE;
+ unsigned int pt_out_indx_valid : VGT_DEBUG_REG1_pt_out_indx_valid_SIZE;
+ unsigned int out_pt_data_read : VGT_DEBUG_REG1_out_pt_data_read_SIZE;
+ unsigned int pt_out_prim_valid : VGT_DEBUG_REG1_pt_out_prim_valid_SIZE;
+ unsigned int out_pt_prim_read : VGT_DEBUG_REG1_out_pt_prim_read_SIZE;
+ unsigned int te_out_data_valid : VGT_DEBUG_REG1_te_out_data_valid_SIZE;
+ unsigned int out_te_data_read : VGT_DEBUG_REG1_out_te_data_read_SIZE;
+ } vgt_debug_reg1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_reg1_t f;
+} vgt_debug_reg1_u;
+
+
+/*
+ * VGT_DEBUG_REG3 struct
+ */
+
+#define VGT_DEBUG_REG3_vgt_clk_en_SIZE 1
+#define VGT_DEBUG_REG3_reg_fifos_clk_en_SIZE 1
+
+#define VGT_DEBUG_REG3_vgt_clk_en_SHIFT 0
+#define VGT_DEBUG_REG3_reg_fifos_clk_en_SHIFT 1
+
+#define VGT_DEBUG_REG3_vgt_clk_en_MASK 0x00000001
+#define VGT_DEBUG_REG3_reg_fifos_clk_en_MASK 0x00000002
+
+#define VGT_DEBUG_REG3_MASK \
+ (VGT_DEBUG_REG3_vgt_clk_en_MASK | \
+ VGT_DEBUG_REG3_reg_fifos_clk_en_MASK)
+
+#define VGT_DEBUG_REG3(vgt_clk_en, reg_fifos_clk_en) \
+ ((vgt_clk_en << VGT_DEBUG_REG3_vgt_clk_en_SHIFT) | \
+ (reg_fifos_clk_en << VGT_DEBUG_REG3_reg_fifos_clk_en_SHIFT))
+
+#define VGT_DEBUG_REG3_GET_vgt_clk_en(vgt_debug_reg3) \
+ ((vgt_debug_reg3 & VGT_DEBUG_REG3_vgt_clk_en_MASK) >> VGT_DEBUG_REG3_vgt_clk_en_SHIFT)
+#define VGT_DEBUG_REG3_GET_reg_fifos_clk_en(vgt_debug_reg3) \
+ ((vgt_debug_reg3 & VGT_DEBUG_REG3_reg_fifos_clk_en_MASK) >> VGT_DEBUG_REG3_reg_fifos_clk_en_SHIFT)
+
+#define VGT_DEBUG_REG3_SET_vgt_clk_en(vgt_debug_reg3_reg, vgt_clk_en) \
+ vgt_debug_reg3_reg = (vgt_debug_reg3_reg & ~VGT_DEBUG_REG3_vgt_clk_en_MASK) | (vgt_clk_en << VGT_DEBUG_REG3_vgt_clk_en_SHIFT)
+#define VGT_DEBUG_REG3_SET_reg_fifos_clk_en(vgt_debug_reg3_reg, reg_fifos_clk_en) \
+ vgt_debug_reg3_reg = (vgt_debug_reg3_reg & ~VGT_DEBUG_REG3_reg_fifos_clk_en_MASK) | (reg_fifos_clk_en << VGT_DEBUG_REG3_reg_fifos_clk_en_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg3_t {
+ unsigned int vgt_clk_en : VGT_DEBUG_REG3_vgt_clk_en_SIZE;
+ unsigned int reg_fifos_clk_en : VGT_DEBUG_REG3_reg_fifos_clk_en_SIZE;
+ unsigned int : 30;
+ } vgt_debug_reg3_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg3_t {
+ unsigned int : 30;
+ unsigned int reg_fifos_clk_en : VGT_DEBUG_REG3_reg_fifos_clk_en_SIZE;
+ unsigned int vgt_clk_en : VGT_DEBUG_REG3_vgt_clk_en_SIZE;
+ } vgt_debug_reg3_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_reg3_t f;
+} vgt_debug_reg3_u;
+
+
+/*
+ * VGT_DEBUG_REG6 struct
+ */
+
+#define VGT_DEBUG_REG6_shifter_byte_count_q_SIZE 5
+#define VGT_DEBUG_REG6_right_word_indx_q_SIZE 5
+#define VGT_DEBUG_REG6_input_data_valid_SIZE 1
+#define VGT_DEBUG_REG6_input_data_xfer_SIZE 1
+#define VGT_DEBUG_REG6_next_shift_is_vect_1_q_SIZE 1
+#define VGT_DEBUG_REG6_next_shift_is_vect_1_d_SIZE 1
+#define VGT_DEBUG_REG6_next_shift_is_vect_1_pre_d_SIZE 1
+#define VGT_DEBUG_REG6_space_avail_from_shift_SIZE 1
+#define VGT_DEBUG_REG6_shifter_first_load_SIZE 1
+#define VGT_DEBUG_REG6_di_state_sel_q_SIZE 1
+#define VGT_DEBUG_REG6_shifter_waiting_for_first_load_q_SIZE 1
+#define VGT_DEBUG_REG6_di_first_group_flag_q_SIZE 1
+#define VGT_DEBUG_REG6_di_event_flag_q_SIZE 1
+#define VGT_DEBUG_REG6_read_draw_initiator_SIZE 1
+#define VGT_DEBUG_REG6_loading_di_requires_shifter_SIZE 1
+#define VGT_DEBUG_REG6_last_shift_of_packet_SIZE 1
+#define VGT_DEBUG_REG6_last_decr_of_packet_SIZE 1
+#define VGT_DEBUG_REG6_extract_vector_SIZE 1
+#define VGT_DEBUG_REG6_shift_vect_rtr_SIZE 1
+#define VGT_DEBUG_REG6_destination_rtr_SIZE 1
+#define VGT_DEBUG_REG6_grp_trigger_SIZE 1
+
+#define VGT_DEBUG_REG6_shifter_byte_count_q_SHIFT 0
+#define VGT_DEBUG_REG6_right_word_indx_q_SHIFT 5
+#define VGT_DEBUG_REG6_input_data_valid_SHIFT 10
+#define VGT_DEBUG_REG6_input_data_xfer_SHIFT 11
+#define VGT_DEBUG_REG6_next_shift_is_vect_1_q_SHIFT 12
+#define VGT_DEBUG_REG6_next_shift_is_vect_1_d_SHIFT 13
+#define VGT_DEBUG_REG6_next_shift_is_vect_1_pre_d_SHIFT 14
+#define VGT_DEBUG_REG6_space_avail_from_shift_SHIFT 15
+#define VGT_DEBUG_REG6_shifter_first_load_SHIFT 16
+#define VGT_DEBUG_REG6_di_state_sel_q_SHIFT 17
+#define VGT_DEBUG_REG6_shifter_waiting_for_first_load_q_SHIFT 18
+#define VGT_DEBUG_REG6_di_first_group_flag_q_SHIFT 19
+#define VGT_DEBUG_REG6_di_event_flag_q_SHIFT 20
+#define VGT_DEBUG_REG6_read_draw_initiator_SHIFT 21
+#define VGT_DEBUG_REG6_loading_di_requires_shifter_SHIFT 22
+#define VGT_DEBUG_REG6_last_shift_of_packet_SHIFT 23
+#define VGT_DEBUG_REG6_last_decr_of_packet_SHIFT 24
+#define VGT_DEBUG_REG6_extract_vector_SHIFT 25
+#define VGT_DEBUG_REG6_shift_vect_rtr_SHIFT 26
+#define VGT_DEBUG_REG6_destination_rtr_SHIFT 27
+#define VGT_DEBUG_REG6_grp_trigger_SHIFT 28
+
+#define VGT_DEBUG_REG6_shifter_byte_count_q_MASK 0x0000001f
+#define VGT_DEBUG_REG6_right_word_indx_q_MASK 0x000003e0
+#define VGT_DEBUG_REG6_input_data_valid_MASK 0x00000400
+#define VGT_DEBUG_REG6_input_data_xfer_MASK 0x00000800
+#define VGT_DEBUG_REG6_next_shift_is_vect_1_q_MASK 0x00001000
+#define VGT_DEBUG_REG6_next_shift_is_vect_1_d_MASK 0x00002000
+#define VGT_DEBUG_REG6_next_shift_is_vect_1_pre_d_MASK 0x00004000
+#define VGT_DEBUG_REG6_space_avail_from_shift_MASK 0x00008000
+#define VGT_DEBUG_REG6_shifter_first_load_MASK 0x00010000
+#define VGT_DEBUG_REG6_di_state_sel_q_MASK 0x00020000
+#define VGT_DEBUG_REG6_shifter_waiting_for_first_load_q_MASK 0x00040000
+#define VGT_DEBUG_REG6_di_first_group_flag_q_MASK 0x00080000
+#define VGT_DEBUG_REG6_di_event_flag_q_MASK 0x00100000
+#define VGT_DEBUG_REG6_read_draw_initiator_MASK 0x00200000
+#define VGT_DEBUG_REG6_loading_di_requires_shifter_MASK 0x00400000
+#define VGT_DEBUG_REG6_last_shift_of_packet_MASK 0x00800000
+#define VGT_DEBUG_REG6_last_decr_of_packet_MASK 0x01000000
+#define VGT_DEBUG_REG6_extract_vector_MASK 0x02000000
+#define VGT_DEBUG_REG6_shift_vect_rtr_MASK 0x04000000
+#define VGT_DEBUG_REG6_destination_rtr_MASK 0x08000000
+#define VGT_DEBUG_REG6_grp_trigger_MASK 0x10000000
+
+#define VGT_DEBUG_REG6_MASK \
+ (VGT_DEBUG_REG6_shifter_byte_count_q_MASK | \
+ VGT_DEBUG_REG6_right_word_indx_q_MASK | \
+ VGT_DEBUG_REG6_input_data_valid_MASK | \
+ VGT_DEBUG_REG6_input_data_xfer_MASK | \
+ VGT_DEBUG_REG6_next_shift_is_vect_1_q_MASK | \
+ VGT_DEBUG_REG6_next_shift_is_vect_1_d_MASK | \
+ VGT_DEBUG_REG6_next_shift_is_vect_1_pre_d_MASK | \
+ VGT_DEBUG_REG6_space_avail_from_shift_MASK | \
+ VGT_DEBUG_REG6_shifter_first_load_MASK | \
+ VGT_DEBUG_REG6_di_state_sel_q_MASK | \
+ VGT_DEBUG_REG6_shifter_waiting_for_first_load_q_MASK | \
+ VGT_DEBUG_REG6_di_first_group_flag_q_MASK | \
+ VGT_DEBUG_REG6_di_event_flag_q_MASK | \
+ VGT_DEBUG_REG6_read_draw_initiator_MASK | \
+ VGT_DEBUG_REG6_loading_di_requires_shifter_MASK | \
+ VGT_DEBUG_REG6_last_shift_of_packet_MASK | \
+ VGT_DEBUG_REG6_last_decr_of_packet_MASK | \
+ VGT_DEBUG_REG6_extract_vector_MASK | \
+ VGT_DEBUG_REG6_shift_vect_rtr_MASK | \
+ VGT_DEBUG_REG6_destination_rtr_MASK | \
+ VGT_DEBUG_REG6_grp_trigger_MASK)
+
+#define VGT_DEBUG_REG6(shifter_byte_count_q, right_word_indx_q, input_data_valid, input_data_xfer, next_shift_is_vect_1_q, next_shift_is_vect_1_d, next_shift_is_vect_1_pre_d, space_avail_from_shift, shifter_first_load, di_state_sel_q, shifter_waiting_for_first_load_q, di_first_group_flag_q, di_event_flag_q, read_draw_initiator, loading_di_requires_shifter, last_shift_of_packet, last_decr_of_packet, extract_vector, shift_vect_rtr, destination_rtr, grp_trigger) \
+ ((shifter_byte_count_q << VGT_DEBUG_REG6_shifter_byte_count_q_SHIFT) | \
+ (right_word_indx_q << VGT_DEBUG_REG6_right_word_indx_q_SHIFT) | \
+ (input_data_valid << VGT_DEBUG_REG6_input_data_valid_SHIFT) | \
+ (input_data_xfer << VGT_DEBUG_REG6_input_data_xfer_SHIFT) | \
+ (next_shift_is_vect_1_q << VGT_DEBUG_REG6_next_shift_is_vect_1_q_SHIFT) | \
+ (next_shift_is_vect_1_d << VGT_DEBUG_REG6_next_shift_is_vect_1_d_SHIFT) | \
+ (next_shift_is_vect_1_pre_d << VGT_DEBUG_REG6_next_shift_is_vect_1_pre_d_SHIFT) | \
+ (space_avail_from_shift << VGT_DEBUG_REG6_space_avail_from_shift_SHIFT) | \
+ (shifter_first_load << VGT_DEBUG_REG6_shifter_first_load_SHIFT) | \
+ (di_state_sel_q << VGT_DEBUG_REG6_di_state_sel_q_SHIFT) | \
+ (shifter_waiting_for_first_load_q << VGT_DEBUG_REG6_shifter_waiting_for_first_load_q_SHIFT) | \
+ (di_first_group_flag_q << VGT_DEBUG_REG6_di_first_group_flag_q_SHIFT) | \
+ (di_event_flag_q << VGT_DEBUG_REG6_di_event_flag_q_SHIFT) | \
+ (read_draw_initiator << VGT_DEBUG_REG6_read_draw_initiator_SHIFT) | \
+ (loading_di_requires_shifter << VGT_DEBUG_REG6_loading_di_requires_shifter_SHIFT) | \
+ (last_shift_of_packet << VGT_DEBUG_REG6_last_shift_of_packet_SHIFT) | \
+ (last_decr_of_packet << VGT_DEBUG_REG6_last_decr_of_packet_SHIFT) | \
+ (extract_vector << VGT_DEBUG_REG6_extract_vector_SHIFT) | \
+ (shift_vect_rtr << VGT_DEBUG_REG6_shift_vect_rtr_SHIFT) | \
+ (destination_rtr << VGT_DEBUG_REG6_destination_rtr_SHIFT) | \
+ (grp_trigger << VGT_DEBUG_REG6_grp_trigger_SHIFT))
+
+#define VGT_DEBUG_REG6_GET_shifter_byte_count_q(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_shifter_byte_count_q_MASK) >> VGT_DEBUG_REG6_shifter_byte_count_q_SHIFT)
+#define VGT_DEBUG_REG6_GET_right_word_indx_q(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_right_word_indx_q_MASK) >> VGT_DEBUG_REG6_right_word_indx_q_SHIFT)
+#define VGT_DEBUG_REG6_GET_input_data_valid(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_input_data_valid_MASK) >> VGT_DEBUG_REG6_input_data_valid_SHIFT)
+#define VGT_DEBUG_REG6_GET_input_data_xfer(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_input_data_xfer_MASK) >> VGT_DEBUG_REG6_input_data_xfer_SHIFT)
+#define VGT_DEBUG_REG6_GET_next_shift_is_vect_1_q(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_next_shift_is_vect_1_q_MASK) >> VGT_DEBUG_REG6_next_shift_is_vect_1_q_SHIFT)
+#define VGT_DEBUG_REG6_GET_next_shift_is_vect_1_d(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_next_shift_is_vect_1_d_MASK) >> VGT_DEBUG_REG6_next_shift_is_vect_1_d_SHIFT)
+#define VGT_DEBUG_REG6_GET_next_shift_is_vect_1_pre_d(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_next_shift_is_vect_1_pre_d_MASK) >> VGT_DEBUG_REG6_next_shift_is_vect_1_pre_d_SHIFT)
+#define VGT_DEBUG_REG6_GET_space_avail_from_shift(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_space_avail_from_shift_MASK) >> VGT_DEBUG_REG6_space_avail_from_shift_SHIFT)
+#define VGT_DEBUG_REG6_GET_shifter_first_load(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_shifter_first_load_MASK) >> VGT_DEBUG_REG6_shifter_first_load_SHIFT)
+#define VGT_DEBUG_REG6_GET_di_state_sel_q(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_di_state_sel_q_MASK) >> VGT_DEBUG_REG6_di_state_sel_q_SHIFT)
+#define VGT_DEBUG_REG6_GET_shifter_waiting_for_first_load_q(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_shifter_waiting_for_first_load_q_MASK) >> VGT_DEBUG_REG6_shifter_waiting_for_first_load_q_SHIFT)
+#define VGT_DEBUG_REG6_GET_di_first_group_flag_q(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_di_first_group_flag_q_MASK) >> VGT_DEBUG_REG6_di_first_group_flag_q_SHIFT)
+#define VGT_DEBUG_REG6_GET_di_event_flag_q(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_di_event_flag_q_MASK) >> VGT_DEBUG_REG6_di_event_flag_q_SHIFT)
+#define VGT_DEBUG_REG6_GET_read_draw_initiator(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_read_draw_initiator_MASK) >> VGT_DEBUG_REG6_read_draw_initiator_SHIFT)
+#define VGT_DEBUG_REG6_GET_loading_di_requires_shifter(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_loading_di_requires_shifter_MASK) >> VGT_DEBUG_REG6_loading_di_requires_shifter_SHIFT)
+#define VGT_DEBUG_REG6_GET_last_shift_of_packet(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_last_shift_of_packet_MASK) >> VGT_DEBUG_REG6_last_shift_of_packet_SHIFT)
+#define VGT_DEBUG_REG6_GET_last_decr_of_packet(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_last_decr_of_packet_MASK) >> VGT_DEBUG_REG6_last_decr_of_packet_SHIFT)
+#define VGT_DEBUG_REG6_GET_extract_vector(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_extract_vector_MASK) >> VGT_DEBUG_REG6_extract_vector_SHIFT)
+#define VGT_DEBUG_REG6_GET_shift_vect_rtr(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_shift_vect_rtr_MASK) >> VGT_DEBUG_REG6_shift_vect_rtr_SHIFT)
+#define VGT_DEBUG_REG6_GET_destination_rtr(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_destination_rtr_MASK) >> VGT_DEBUG_REG6_destination_rtr_SHIFT)
+#define VGT_DEBUG_REG6_GET_grp_trigger(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_grp_trigger_MASK) >> VGT_DEBUG_REG6_grp_trigger_SHIFT)
+
+#define VGT_DEBUG_REG6_SET_shifter_byte_count_q(vgt_debug_reg6_reg, shifter_byte_count_q) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_shifter_byte_count_q_MASK) | (shifter_byte_count_q << VGT_DEBUG_REG6_shifter_byte_count_q_SHIFT)
+#define VGT_DEBUG_REG6_SET_right_word_indx_q(vgt_debug_reg6_reg, right_word_indx_q) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_right_word_indx_q_MASK) | (right_word_indx_q << VGT_DEBUG_REG6_right_word_indx_q_SHIFT)
+#define VGT_DEBUG_REG6_SET_input_data_valid(vgt_debug_reg6_reg, input_data_valid) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_input_data_valid_MASK) | (input_data_valid << VGT_DEBUG_REG6_input_data_valid_SHIFT)
+#define VGT_DEBUG_REG6_SET_input_data_xfer(vgt_debug_reg6_reg, input_data_xfer) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_input_data_xfer_MASK) | (input_data_xfer << VGT_DEBUG_REG6_input_data_xfer_SHIFT)
+#define VGT_DEBUG_REG6_SET_next_shift_is_vect_1_q(vgt_debug_reg6_reg, next_shift_is_vect_1_q) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_next_shift_is_vect_1_q_MASK) | (next_shift_is_vect_1_q << VGT_DEBUG_REG6_next_shift_is_vect_1_q_SHIFT)
+#define VGT_DEBUG_REG6_SET_next_shift_is_vect_1_d(vgt_debug_reg6_reg, next_shift_is_vect_1_d) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_next_shift_is_vect_1_d_MASK) | (next_shift_is_vect_1_d << VGT_DEBUG_REG6_next_shift_is_vect_1_d_SHIFT)
+#define VGT_DEBUG_REG6_SET_next_shift_is_vect_1_pre_d(vgt_debug_reg6_reg, next_shift_is_vect_1_pre_d) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_next_shift_is_vect_1_pre_d_MASK) | (next_shift_is_vect_1_pre_d << VGT_DEBUG_REG6_next_shift_is_vect_1_pre_d_SHIFT)
+#define VGT_DEBUG_REG6_SET_space_avail_from_shift(vgt_debug_reg6_reg, space_avail_from_shift) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_space_avail_from_shift_MASK) | (space_avail_from_shift << VGT_DEBUG_REG6_space_avail_from_shift_SHIFT)
+#define VGT_DEBUG_REG6_SET_shifter_first_load(vgt_debug_reg6_reg, shifter_first_load) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_shifter_first_load_MASK) | (shifter_first_load << VGT_DEBUG_REG6_shifter_first_load_SHIFT)
+#define VGT_DEBUG_REG6_SET_di_state_sel_q(vgt_debug_reg6_reg, di_state_sel_q) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_di_state_sel_q_MASK) | (di_state_sel_q << VGT_DEBUG_REG6_di_state_sel_q_SHIFT)
+#define VGT_DEBUG_REG6_SET_shifter_waiting_for_first_load_q(vgt_debug_reg6_reg, shifter_waiting_for_first_load_q) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_shifter_waiting_for_first_load_q_MASK) | (shifter_waiting_for_first_load_q << VGT_DEBUG_REG6_shifter_waiting_for_first_load_q_SHIFT)
+#define VGT_DEBUG_REG6_SET_di_first_group_flag_q(vgt_debug_reg6_reg, di_first_group_flag_q) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_di_first_group_flag_q_MASK) | (di_first_group_flag_q << VGT_DEBUG_REG6_di_first_group_flag_q_SHIFT)
+#define VGT_DEBUG_REG6_SET_di_event_flag_q(vgt_debug_reg6_reg, di_event_flag_q) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_di_event_flag_q_MASK) | (di_event_flag_q << VGT_DEBUG_REG6_di_event_flag_q_SHIFT)
+#define VGT_DEBUG_REG6_SET_read_draw_initiator(vgt_debug_reg6_reg, read_draw_initiator) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_read_draw_initiator_MASK) | (read_draw_initiator << VGT_DEBUG_REG6_read_draw_initiator_SHIFT)
+#define VGT_DEBUG_REG6_SET_loading_di_requires_shifter(vgt_debug_reg6_reg, loading_di_requires_shifter) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_loading_di_requires_shifter_MASK) | (loading_di_requires_shifter << VGT_DEBUG_REG6_loading_di_requires_shifter_SHIFT)
+#define VGT_DEBUG_REG6_SET_last_shift_of_packet(vgt_debug_reg6_reg, last_shift_of_packet) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_last_shift_of_packet_MASK) | (last_shift_of_packet << VGT_DEBUG_REG6_last_shift_of_packet_SHIFT)
+#define VGT_DEBUG_REG6_SET_last_decr_of_packet(vgt_debug_reg6_reg, last_decr_of_packet) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_last_decr_of_packet_MASK) | (last_decr_of_packet << VGT_DEBUG_REG6_last_decr_of_packet_SHIFT)
+#define VGT_DEBUG_REG6_SET_extract_vector(vgt_debug_reg6_reg, extract_vector) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_extract_vector_MASK) | (extract_vector << VGT_DEBUG_REG6_extract_vector_SHIFT)
+#define VGT_DEBUG_REG6_SET_shift_vect_rtr(vgt_debug_reg6_reg, shift_vect_rtr) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_shift_vect_rtr_MASK) | (shift_vect_rtr << VGT_DEBUG_REG6_shift_vect_rtr_SHIFT)
+#define VGT_DEBUG_REG6_SET_destination_rtr(vgt_debug_reg6_reg, destination_rtr) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_destination_rtr_MASK) | (destination_rtr << VGT_DEBUG_REG6_destination_rtr_SHIFT)
+#define VGT_DEBUG_REG6_SET_grp_trigger(vgt_debug_reg6_reg, grp_trigger) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_grp_trigger_MASK) | (grp_trigger << VGT_DEBUG_REG6_grp_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg6_t {
+ unsigned int shifter_byte_count_q : VGT_DEBUG_REG6_shifter_byte_count_q_SIZE;
+ unsigned int right_word_indx_q : VGT_DEBUG_REG6_right_word_indx_q_SIZE;
+ unsigned int input_data_valid : VGT_DEBUG_REG6_input_data_valid_SIZE;
+ unsigned int input_data_xfer : VGT_DEBUG_REG6_input_data_xfer_SIZE;
+ unsigned int next_shift_is_vect_1_q : VGT_DEBUG_REG6_next_shift_is_vect_1_q_SIZE;
+ unsigned int next_shift_is_vect_1_d : VGT_DEBUG_REG6_next_shift_is_vect_1_d_SIZE;
+ unsigned int next_shift_is_vect_1_pre_d : VGT_DEBUG_REG6_next_shift_is_vect_1_pre_d_SIZE;
+ unsigned int space_avail_from_shift : VGT_DEBUG_REG6_space_avail_from_shift_SIZE;
+ unsigned int shifter_first_load : VGT_DEBUG_REG6_shifter_first_load_SIZE;
+ unsigned int di_state_sel_q : VGT_DEBUG_REG6_di_state_sel_q_SIZE;
+ unsigned int shifter_waiting_for_first_load_q : VGT_DEBUG_REG6_shifter_waiting_for_first_load_q_SIZE;
+ unsigned int di_first_group_flag_q : VGT_DEBUG_REG6_di_first_group_flag_q_SIZE;
+ unsigned int di_event_flag_q : VGT_DEBUG_REG6_di_event_flag_q_SIZE;
+ unsigned int read_draw_initiator : VGT_DEBUG_REG6_read_draw_initiator_SIZE;
+ unsigned int loading_di_requires_shifter : VGT_DEBUG_REG6_loading_di_requires_shifter_SIZE;
+ unsigned int last_shift_of_packet : VGT_DEBUG_REG6_last_shift_of_packet_SIZE;
+ unsigned int last_decr_of_packet : VGT_DEBUG_REG6_last_decr_of_packet_SIZE;
+ unsigned int extract_vector : VGT_DEBUG_REG6_extract_vector_SIZE;
+ unsigned int shift_vect_rtr : VGT_DEBUG_REG6_shift_vect_rtr_SIZE;
+ unsigned int destination_rtr : VGT_DEBUG_REG6_destination_rtr_SIZE;
+ unsigned int grp_trigger : VGT_DEBUG_REG6_grp_trigger_SIZE;
+ unsigned int : 3;
+ } vgt_debug_reg6_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg6_t {
+ unsigned int : 3;
+ unsigned int grp_trigger : VGT_DEBUG_REG6_grp_trigger_SIZE;
+ unsigned int destination_rtr : VGT_DEBUG_REG6_destination_rtr_SIZE;
+ unsigned int shift_vect_rtr : VGT_DEBUG_REG6_shift_vect_rtr_SIZE;
+ unsigned int extract_vector : VGT_DEBUG_REG6_extract_vector_SIZE;
+ unsigned int last_decr_of_packet : VGT_DEBUG_REG6_last_decr_of_packet_SIZE;
+ unsigned int last_shift_of_packet : VGT_DEBUG_REG6_last_shift_of_packet_SIZE;
+ unsigned int loading_di_requires_shifter : VGT_DEBUG_REG6_loading_di_requires_shifter_SIZE;
+ unsigned int read_draw_initiator : VGT_DEBUG_REG6_read_draw_initiator_SIZE;
+ unsigned int di_event_flag_q : VGT_DEBUG_REG6_di_event_flag_q_SIZE;
+ unsigned int di_first_group_flag_q : VGT_DEBUG_REG6_di_first_group_flag_q_SIZE;
+ unsigned int shifter_waiting_for_first_load_q : VGT_DEBUG_REG6_shifter_waiting_for_first_load_q_SIZE;
+ unsigned int di_state_sel_q : VGT_DEBUG_REG6_di_state_sel_q_SIZE;
+ unsigned int shifter_first_load : VGT_DEBUG_REG6_shifter_first_load_SIZE;
+ unsigned int space_avail_from_shift : VGT_DEBUG_REG6_space_avail_from_shift_SIZE;
+ unsigned int next_shift_is_vect_1_pre_d : VGT_DEBUG_REG6_next_shift_is_vect_1_pre_d_SIZE;
+ unsigned int next_shift_is_vect_1_d : VGT_DEBUG_REG6_next_shift_is_vect_1_d_SIZE;
+ unsigned int next_shift_is_vect_1_q : VGT_DEBUG_REG6_next_shift_is_vect_1_q_SIZE;
+ unsigned int input_data_xfer : VGT_DEBUG_REG6_input_data_xfer_SIZE;
+ unsigned int input_data_valid : VGT_DEBUG_REG6_input_data_valid_SIZE;
+ unsigned int right_word_indx_q : VGT_DEBUG_REG6_right_word_indx_q_SIZE;
+ unsigned int shifter_byte_count_q : VGT_DEBUG_REG6_shifter_byte_count_q_SIZE;
+ } vgt_debug_reg6_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_reg6_t f;
+} vgt_debug_reg6_u;
+
+
+/*
+ * VGT_DEBUG_REG7 struct
+ */
+
+#define VGT_DEBUG_REG7_di_index_counter_q_SIZE 16
+#define VGT_DEBUG_REG7_shift_amount_no_extract_SIZE 4
+#define VGT_DEBUG_REG7_shift_amount_extract_SIZE 4
+#define VGT_DEBUG_REG7_di_prim_type_q_SIZE 6
+#define VGT_DEBUG_REG7_current_source_sel_SIZE 2
+
+#define VGT_DEBUG_REG7_di_index_counter_q_SHIFT 0
+#define VGT_DEBUG_REG7_shift_amount_no_extract_SHIFT 16
+#define VGT_DEBUG_REG7_shift_amount_extract_SHIFT 20
+#define VGT_DEBUG_REG7_di_prim_type_q_SHIFT 24
+#define VGT_DEBUG_REG7_current_source_sel_SHIFT 30
+
+#define VGT_DEBUG_REG7_di_index_counter_q_MASK 0x0000ffff
+#define VGT_DEBUG_REG7_shift_amount_no_extract_MASK 0x000f0000
+#define VGT_DEBUG_REG7_shift_amount_extract_MASK 0x00f00000
+#define VGT_DEBUG_REG7_di_prim_type_q_MASK 0x3f000000
+#define VGT_DEBUG_REG7_current_source_sel_MASK 0xc0000000
+
+#define VGT_DEBUG_REG7_MASK \
+ (VGT_DEBUG_REG7_di_index_counter_q_MASK | \
+ VGT_DEBUG_REG7_shift_amount_no_extract_MASK | \
+ VGT_DEBUG_REG7_shift_amount_extract_MASK | \
+ VGT_DEBUG_REG7_di_prim_type_q_MASK | \
+ VGT_DEBUG_REG7_current_source_sel_MASK)
+
+#define VGT_DEBUG_REG7(di_index_counter_q, shift_amount_no_extract, shift_amount_extract, di_prim_type_q, current_source_sel) \
+ ((di_index_counter_q << VGT_DEBUG_REG7_di_index_counter_q_SHIFT) | \
+ (shift_amount_no_extract << VGT_DEBUG_REG7_shift_amount_no_extract_SHIFT) | \
+ (shift_amount_extract << VGT_DEBUG_REG7_shift_amount_extract_SHIFT) | \
+ (di_prim_type_q << VGT_DEBUG_REG7_di_prim_type_q_SHIFT) | \
+ (current_source_sel << VGT_DEBUG_REG7_current_source_sel_SHIFT))
+
+#define VGT_DEBUG_REG7_GET_di_index_counter_q(vgt_debug_reg7) \
+ ((vgt_debug_reg7 & VGT_DEBUG_REG7_di_index_counter_q_MASK) >> VGT_DEBUG_REG7_di_index_counter_q_SHIFT)
+#define VGT_DEBUG_REG7_GET_shift_amount_no_extract(vgt_debug_reg7) \
+ ((vgt_debug_reg7 & VGT_DEBUG_REG7_shift_amount_no_extract_MASK) >> VGT_DEBUG_REG7_shift_amount_no_extract_SHIFT)
+#define VGT_DEBUG_REG7_GET_shift_amount_extract(vgt_debug_reg7) \
+ ((vgt_debug_reg7 & VGT_DEBUG_REG7_shift_amount_extract_MASK) >> VGT_DEBUG_REG7_shift_amount_extract_SHIFT)
+#define VGT_DEBUG_REG7_GET_di_prim_type_q(vgt_debug_reg7) \
+ ((vgt_debug_reg7 & VGT_DEBUG_REG7_di_prim_type_q_MASK) >> VGT_DEBUG_REG7_di_prim_type_q_SHIFT)
+#define VGT_DEBUG_REG7_GET_current_source_sel(vgt_debug_reg7) \
+ ((vgt_debug_reg7 & VGT_DEBUG_REG7_current_source_sel_MASK) >> VGT_DEBUG_REG7_current_source_sel_SHIFT)
+
+#define VGT_DEBUG_REG7_SET_di_index_counter_q(vgt_debug_reg7_reg, di_index_counter_q) \
+ vgt_debug_reg7_reg = (vgt_debug_reg7_reg & ~VGT_DEBUG_REG7_di_index_counter_q_MASK) | (di_index_counter_q << VGT_DEBUG_REG7_di_index_counter_q_SHIFT)
+#define VGT_DEBUG_REG7_SET_shift_amount_no_extract(vgt_debug_reg7_reg, shift_amount_no_extract) \
+ vgt_debug_reg7_reg = (vgt_debug_reg7_reg & ~VGT_DEBUG_REG7_shift_amount_no_extract_MASK) | (shift_amount_no_extract << VGT_DEBUG_REG7_shift_amount_no_extract_SHIFT)
+#define VGT_DEBUG_REG7_SET_shift_amount_extract(vgt_debug_reg7_reg, shift_amount_extract) \
+ vgt_debug_reg7_reg = (vgt_debug_reg7_reg & ~VGT_DEBUG_REG7_shift_amount_extract_MASK) | (shift_amount_extract << VGT_DEBUG_REG7_shift_amount_extract_SHIFT)
+#define VGT_DEBUG_REG7_SET_di_prim_type_q(vgt_debug_reg7_reg, di_prim_type_q) \
+ vgt_debug_reg7_reg = (vgt_debug_reg7_reg & ~VGT_DEBUG_REG7_di_prim_type_q_MASK) | (di_prim_type_q << VGT_DEBUG_REG7_di_prim_type_q_SHIFT)
+#define VGT_DEBUG_REG7_SET_current_source_sel(vgt_debug_reg7_reg, current_source_sel) \
+ vgt_debug_reg7_reg = (vgt_debug_reg7_reg & ~VGT_DEBUG_REG7_current_source_sel_MASK) | (current_source_sel << VGT_DEBUG_REG7_current_source_sel_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg7_t {
+ unsigned int di_index_counter_q : VGT_DEBUG_REG7_di_index_counter_q_SIZE;
+ unsigned int shift_amount_no_extract : VGT_DEBUG_REG7_shift_amount_no_extract_SIZE;
+ unsigned int shift_amount_extract : VGT_DEBUG_REG7_shift_amount_extract_SIZE;
+ unsigned int di_prim_type_q : VGT_DEBUG_REG7_di_prim_type_q_SIZE;
+ unsigned int current_source_sel : VGT_DEBUG_REG7_current_source_sel_SIZE;
+ } vgt_debug_reg7_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg7_t {
+ unsigned int current_source_sel : VGT_DEBUG_REG7_current_source_sel_SIZE;
+ unsigned int di_prim_type_q : VGT_DEBUG_REG7_di_prim_type_q_SIZE;
+ unsigned int shift_amount_extract : VGT_DEBUG_REG7_shift_amount_extract_SIZE;
+ unsigned int shift_amount_no_extract : VGT_DEBUG_REG7_shift_amount_no_extract_SIZE;
+ unsigned int di_index_counter_q : VGT_DEBUG_REG7_di_index_counter_q_SIZE;
+ } vgt_debug_reg7_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_reg7_t f;
+} vgt_debug_reg7_u;
+
+
+/*
+ * VGT_DEBUG_REG8 struct
+ */
+
+#define VGT_DEBUG_REG8_current_source_sel_SIZE 2
+#define VGT_DEBUG_REG8_left_word_indx_q_SIZE 5
+#define VGT_DEBUG_REG8_input_data_cnt_SIZE 5
+#define VGT_DEBUG_REG8_input_data_lsw_SIZE 5
+#define VGT_DEBUG_REG8_input_data_msw_SIZE 5
+#define VGT_DEBUG_REG8_next_small_stride_shift_limit_q_SIZE 5
+#define VGT_DEBUG_REG8_current_small_stride_shift_limit_q_SIZE 5
+
+#define VGT_DEBUG_REG8_current_source_sel_SHIFT 0
+#define VGT_DEBUG_REG8_left_word_indx_q_SHIFT 2
+#define VGT_DEBUG_REG8_input_data_cnt_SHIFT 7
+#define VGT_DEBUG_REG8_input_data_lsw_SHIFT 12
+#define VGT_DEBUG_REG8_input_data_msw_SHIFT 17
+#define VGT_DEBUG_REG8_next_small_stride_shift_limit_q_SHIFT 22
+#define VGT_DEBUG_REG8_current_small_stride_shift_limit_q_SHIFT 27
+
+#define VGT_DEBUG_REG8_current_source_sel_MASK 0x00000003
+#define VGT_DEBUG_REG8_left_word_indx_q_MASK 0x0000007c
+#define VGT_DEBUG_REG8_input_data_cnt_MASK 0x00000f80
+#define VGT_DEBUG_REG8_input_data_lsw_MASK 0x0001f000
+#define VGT_DEBUG_REG8_input_data_msw_MASK 0x003e0000
+#define VGT_DEBUG_REG8_next_small_stride_shift_limit_q_MASK 0x07c00000
+#define VGT_DEBUG_REG8_current_small_stride_shift_limit_q_MASK 0xf8000000
+
+#define VGT_DEBUG_REG8_MASK \
+ (VGT_DEBUG_REG8_current_source_sel_MASK | \
+ VGT_DEBUG_REG8_left_word_indx_q_MASK | \
+ VGT_DEBUG_REG8_input_data_cnt_MASK | \
+ VGT_DEBUG_REG8_input_data_lsw_MASK | \
+ VGT_DEBUG_REG8_input_data_msw_MASK | \
+ VGT_DEBUG_REG8_next_small_stride_shift_limit_q_MASK | \
+ VGT_DEBUG_REG8_current_small_stride_shift_limit_q_MASK)
+
+#define VGT_DEBUG_REG8(current_source_sel, left_word_indx_q, input_data_cnt, input_data_lsw, input_data_msw, next_small_stride_shift_limit_q, current_small_stride_shift_limit_q) \
+ ((current_source_sel << VGT_DEBUG_REG8_current_source_sel_SHIFT) | \
+ (left_word_indx_q << VGT_DEBUG_REG8_left_word_indx_q_SHIFT) | \
+ (input_data_cnt << VGT_DEBUG_REG8_input_data_cnt_SHIFT) | \
+ (input_data_lsw << VGT_DEBUG_REG8_input_data_lsw_SHIFT) | \
+ (input_data_msw << VGT_DEBUG_REG8_input_data_msw_SHIFT) | \
+ (next_small_stride_shift_limit_q << VGT_DEBUG_REG8_next_small_stride_shift_limit_q_SHIFT) | \
+ (current_small_stride_shift_limit_q << VGT_DEBUG_REG8_current_small_stride_shift_limit_q_SHIFT))
+
+#define VGT_DEBUG_REG8_GET_current_source_sel(vgt_debug_reg8) \
+ ((vgt_debug_reg8 & VGT_DEBUG_REG8_current_source_sel_MASK) >> VGT_DEBUG_REG8_current_source_sel_SHIFT)
+#define VGT_DEBUG_REG8_GET_left_word_indx_q(vgt_debug_reg8) \
+ ((vgt_debug_reg8 & VGT_DEBUG_REG8_left_word_indx_q_MASK) >> VGT_DEBUG_REG8_left_word_indx_q_SHIFT)
+#define VGT_DEBUG_REG8_GET_input_data_cnt(vgt_debug_reg8) \
+ ((vgt_debug_reg8 & VGT_DEBUG_REG8_input_data_cnt_MASK) >> VGT_DEBUG_REG8_input_data_cnt_SHIFT)
+#define VGT_DEBUG_REG8_GET_input_data_lsw(vgt_debug_reg8) \
+ ((vgt_debug_reg8 & VGT_DEBUG_REG8_input_data_lsw_MASK) >> VGT_DEBUG_REG8_input_data_lsw_SHIFT)
+#define VGT_DEBUG_REG8_GET_input_data_msw(vgt_debug_reg8) \
+ ((vgt_debug_reg8 & VGT_DEBUG_REG8_input_data_msw_MASK) >> VGT_DEBUG_REG8_input_data_msw_SHIFT)
+#define VGT_DEBUG_REG8_GET_next_small_stride_shift_limit_q(vgt_debug_reg8) \
+ ((vgt_debug_reg8 & VGT_DEBUG_REG8_next_small_stride_shift_limit_q_MASK) >> VGT_DEBUG_REG8_next_small_stride_shift_limit_q_SHIFT)
+#define VGT_DEBUG_REG8_GET_current_small_stride_shift_limit_q(vgt_debug_reg8) \
+ ((vgt_debug_reg8 & VGT_DEBUG_REG8_current_small_stride_shift_limit_q_MASK) >> VGT_DEBUG_REG8_current_small_stride_shift_limit_q_SHIFT)
+
+#define VGT_DEBUG_REG8_SET_current_source_sel(vgt_debug_reg8_reg, current_source_sel) \
+ vgt_debug_reg8_reg = (vgt_debug_reg8_reg & ~VGT_DEBUG_REG8_current_source_sel_MASK) | (current_source_sel << VGT_DEBUG_REG8_current_source_sel_SHIFT)
+#define VGT_DEBUG_REG8_SET_left_word_indx_q(vgt_debug_reg8_reg, left_word_indx_q) \
+ vgt_debug_reg8_reg = (vgt_debug_reg8_reg & ~VGT_DEBUG_REG8_left_word_indx_q_MASK) | (left_word_indx_q << VGT_DEBUG_REG8_left_word_indx_q_SHIFT)
+#define VGT_DEBUG_REG8_SET_input_data_cnt(vgt_debug_reg8_reg, input_data_cnt) \
+ vgt_debug_reg8_reg = (vgt_debug_reg8_reg & ~VGT_DEBUG_REG8_input_data_cnt_MASK) | (input_data_cnt << VGT_DEBUG_REG8_input_data_cnt_SHIFT)
+#define VGT_DEBUG_REG8_SET_input_data_lsw(vgt_debug_reg8_reg, input_data_lsw) \
+ vgt_debug_reg8_reg = (vgt_debug_reg8_reg & ~VGT_DEBUG_REG8_input_data_lsw_MASK) | (input_data_lsw << VGT_DEBUG_REG8_input_data_lsw_SHIFT)
+#define VGT_DEBUG_REG8_SET_input_data_msw(vgt_debug_reg8_reg, input_data_msw) \
+ vgt_debug_reg8_reg = (vgt_debug_reg8_reg & ~VGT_DEBUG_REG8_input_data_msw_MASK) | (input_data_msw << VGT_DEBUG_REG8_input_data_msw_SHIFT)
+#define VGT_DEBUG_REG8_SET_next_small_stride_shift_limit_q(vgt_debug_reg8_reg, next_small_stride_shift_limit_q) \
+ vgt_debug_reg8_reg = (vgt_debug_reg8_reg & ~VGT_DEBUG_REG8_next_small_stride_shift_limit_q_MASK) | (next_small_stride_shift_limit_q << VGT_DEBUG_REG8_next_small_stride_shift_limit_q_SHIFT)
+#define VGT_DEBUG_REG8_SET_current_small_stride_shift_limit_q(vgt_debug_reg8_reg, current_small_stride_shift_limit_q) \
+ vgt_debug_reg8_reg = (vgt_debug_reg8_reg & ~VGT_DEBUG_REG8_current_small_stride_shift_limit_q_MASK) | (current_small_stride_shift_limit_q << VGT_DEBUG_REG8_current_small_stride_shift_limit_q_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg8_t {
+ unsigned int current_source_sel : VGT_DEBUG_REG8_current_source_sel_SIZE;
+ unsigned int left_word_indx_q : VGT_DEBUG_REG8_left_word_indx_q_SIZE;
+ unsigned int input_data_cnt : VGT_DEBUG_REG8_input_data_cnt_SIZE;
+ unsigned int input_data_lsw : VGT_DEBUG_REG8_input_data_lsw_SIZE;
+ unsigned int input_data_msw : VGT_DEBUG_REG8_input_data_msw_SIZE;
+ unsigned int next_small_stride_shift_limit_q : VGT_DEBUG_REG8_next_small_stride_shift_limit_q_SIZE;
+ unsigned int current_small_stride_shift_limit_q : VGT_DEBUG_REG8_current_small_stride_shift_limit_q_SIZE;
+ } vgt_debug_reg8_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg8_t {
+ unsigned int current_small_stride_shift_limit_q : VGT_DEBUG_REG8_current_small_stride_shift_limit_q_SIZE;
+ unsigned int next_small_stride_shift_limit_q : VGT_DEBUG_REG8_next_small_stride_shift_limit_q_SIZE;
+ unsigned int input_data_msw : VGT_DEBUG_REG8_input_data_msw_SIZE;
+ unsigned int input_data_lsw : VGT_DEBUG_REG8_input_data_lsw_SIZE;
+ unsigned int input_data_cnt : VGT_DEBUG_REG8_input_data_cnt_SIZE;
+ unsigned int left_word_indx_q : VGT_DEBUG_REG8_left_word_indx_q_SIZE;
+ unsigned int current_source_sel : VGT_DEBUG_REG8_current_source_sel_SIZE;
+ } vgt_debug_reg8_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_reg8_t f;
+} vgt_debug_reg8_u;
+
+
+/*
+ * VGT_DEBUG_REG9 struct
+ */
+
+#define VGT_DEBUG_REG9_next_stride_q_SIZE 5
+#define VGT_DEBUG_REG9_next_stride_d_SIZE 5
+#define VGT_DEBUG_REG9_current_shift_q_SIZE 5
+#define VGT_DEBUG_REG9_current_shift_d_SIZE 5
+#define VGT_DEBUG_REG9_current_stride_q_SIZE 5
+#define VGT_DEBUG_REG9_current_stride_d_SIZE 5
+#define VGT_DEBUG_REG9_grp_trigger_SIZE 1
+
+#define VGT_DEBUG_REG9_next_stride_q_SHIFT 0
+#define VGT_DEBUG_REG9_next_stride_d_SHIFT 5
+#define VGT_DEBUG_REG9_current_shift_q_SHIFT 10
+#define VGT_DEBUG_REG9_current_shift_d_SHIFT 15
+#define VGT_DEBUG_REG9_current_stride_q_SHIFT 20
+#define VGT_DEBUG_REG9_current_stride_d_SHIFT 25
+#define VGT_DEBUG_REG9_grp_trigger_SHIFT 30
+
+#define VGT_DEBUG_REG9_next_stride_q_MASK 0x0000001f
+#define VGT_DEBUG_REG9_next_stride_d_MASK 0x000003e0
+#define VGT_DEBUG_REG9_current_shift_q_MASK 0x00007c00
+#define VGT_DEBUG_REG9_current_shift_d_MASK 0x000f8000
+#define VGT_DEBUG_REG9_current_stride_q_MASK 0x01f00000
+#define VGT_DEBUG_REG9_current_stride_d_MASK 0x3e000000
+#define VGT_DEBUG_REG9_grp_trigger_MASK 0x40000000
+
+#define VGT_DEBUG_REG9_MASK \
+ (VGT_DEBUG_REG9_next_stride_q_MASK | \
+ VGT_DEBUG_REG9_next_stride_d_MASK | \
+ VGT_DEBUG_REG9_current_shift_q_MASK | \
+ VGT_DEBUG_REG9_current_shift_d_MASK | \
+ VGT_DEBUG_REG9_current_stride_q_MASK | \
+ VGT_DEBUG_REG9_current_stride_d_MASK | \
+ VGT_DEBUG_REG9_grp_trigger_MASK)
+
+#define VGT_DEBUG_REG9(next_stride_q, next_stride_d, current_shift_q, current_shift_d, current_stride_q, current_stride_d, grp_trigger) \
+ ((next_stride_q << VGT_DEBUG_REG9_next_stride_q_SHIFT) | \
+ (next_stride_d << VGT_DEBUG_REG9_next_stride_d_SHIFT) | \
+ (current_shift_q << VGT_DEBUG_REG9_current_shift_q_SHIFT) | \
+ (current_shift_d << VGT_DEBUG_REG9_current_shift_d_SHIFT) | \
+ (current_stride_q << VGT_DEBUG_REG9_current_stride_q_SHIFT) | \
+ (current_stride_d << VGT_DEBUG_REG9_current_stride_d_SHIFT) | \
+ (grp_trigger << VGT_DEBUG_REG9_grp_trigger_SHIFT))
+
+#define VGT_DEBUG_REG9_GET_next_stride_q(vgt_debug_reg9) \
+ ((vgt_debug_reg9 & VGT_DEBUG_REG9_next_stride_q_MASK) >> VGT_DEBUG_REG9_next_stride_q_SHIFT)
+#define VGT_DEBUG_REG9_GET_next_stride_d(vgt_debug_reg9) \
+ ((vgt_debug_reg9 & VGT_DEBUG_REG9_next_stride_d_MASK) >> VGT_DEBUG_REG9_next_stride_d_SHIFT)
+#define VGT_DEBUG_REG9_GET_current_shift_q(vgt_debug_reg9) \
+ ((vgt_debug_reg9 & VGT_DEBUG_REG9_current_shift_q_MASK) >> VGT_DEBUG_REG9_current_shift_q_SHIFT)
+#define VGT_DEBUG_REG9_GET_current_shift_d(vgt_debug_reg9) \
+ ((vgt_debug_reg9 & VGT_DEBUG_REG9_current_shift_d_MASK) >> VGT_DEBUG_REG9_current_shift_d_SHIFT)
+#define VGT_DEBUG_REG9_GET_current_stride_q(vgt_debug_reg9) \
+ ((vgt_debug_reg9 & VGT_DEBUG_REG9_current_stride_q_MASK) >> VGT_DEBUG_REG9_current_stride_q_SHIFT)
+#define VGT_DEBUG_REG9_GET_current_stride_d(vgt_debug_reg9) \
+ ((vgt_debug_reg9 & VGT_DEBUG_REG9_current_stride_d_MASK) >> VGT_DEBUG_REG9_current_stride_d_SHIFT)
+#define VGT_DEBUG_REG9_GET_grp_trigger(vgt_debug_reg9) \
+ ((vgt_debug_reg9 & VGT_DEBUG_REG9_grp_trigger_MASK) >> VGT_DEBUG_REG9_grp_trigger_SHIFT)
+
+#define VGT_DEBUG_REG9_SET_next_stride_q(vgt_debug_reg9_reg, next_stride_q) \
+ vgt_debug_reg9_reg = (vgt_debug_reg9_reg & ~VGT_DEBUG_REG9_next_stride_q_MASK) | (next_stride_q << VGT_DEBUG_REG9_next_stride_q_SHIFT)
+#define VGT_DEBUG_REG9_SET_next_stride_d(vgt_debug_reg9_reg, next_stride_d) \
+ vgt_debug_reg9_reg = (vgt_debug_reg9_reg & ~VGT_DEBUG_REG9_next_stride_d_MASK) | (next_stride_d << VGT_DEBUG_REG9_next_stride_d_SHIFT)
+#define VGT_DEBUG_REG9_SET_current_shift_q(vgt_debug_reg9_reg, current_shift_q) \
+ vgt_debug_reg9_reg = (vgt_debug_reg9_reg & ~VGT_DEBUG_REG9_current_shift_q_MASK) | (current_shift_q << VGT_DEBUG_REG9_current_shift_q_SHIFT)
+#define VGT_DEBUG_REG9_SET_current_shift_d(vgt_debug_reg9_reg, current_shift_d) \
+ vgt_debug_reg9_reg = (vgt_debug_reg9_reg & ~VGT_DEBUG_REG9_current_shift_d_MASK) | (current_shift_d << VGT_DEBUG_REG9_current_shift_d_SHIFT)
+#define VGT_DEBUG_REG9_SET_current_stride_q(vgt_debug_reg9_reg, current_stride_q) \
+ vgt_debug_reg9_reg = (vgt_debug_reg9_reg & ~VGT_DEBUG_REG9_current_stride_q_MASK) | (current_stride_q << VGT_DEBUG_REG9_current_stride_q_SHIFT)
+#define VGT_DEBUG_REG9_SET_current_stride_d(vgt_debug_reg9_reg, current_stride_d) \
+ vgt_debug_reg9_reg = (vgt_debug_reg9_reg & ~VGT_DEBUG_REG9_current_stride_d_MASK) | (current_stride_d << VGT_DEBUG_REG9_current_stride_d_SHIFT)
+#define VGT_DEBUG_REG9_SET_grp_trigger(vgt_debug_reg9_reg, grp_trigger) \
+ vgt_debug_reg9_reg = (vgt_debug_reg9_reg & ~VGT_DEBUG_REG9_grp_trigger_MASK) | (grp_trigger << VGT_DEBUG_REG9_grp_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg9_t {
+ unsigned int next_stride_q : VGT_DEBUG_REG9_next_stride_q_SIZE;
+ unsigned int next_stride_d : VGT_DEBUG_REG9_next_stride_d_SIZE;
+ unsigned int current_shift_q : VGT_DEBUG_REG9_current_shift_q_SIZE;
+ unsigned int current_shift_d : VGT_DEBUG_REG9_current_shift_d_SIZE;
+ unsigned int current_stride_q : VGT_DEBUG_REG9_current_stride_q_SIZE;
+ unsigned int current_stride_d : VGT_DEBUG_REG9_current_stride_d_SIZE;
+ unsigned int grp_trigger : VGT_DEBUG_REG9_grp_trigger_SIZE;
+ unsigned int : 1;
+ } vgt_debug_reg9_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg9_t {
+ unsigned int : 1;
+ unsigned int grp_trigger : VGT_DEBUG_REG9_grp_trigger_SIZE;
+ unsigned int current_stride_d : VGT_DEBUG_REG9_current_stride_d_SIZE;
+ unsigned int current_stride_q : VGT_DEBUG_REG9_current_stride_q_SIZE;
+ unsigned int current_shift_d : VGT_DEBUG_REG9_current_shift_d_SIZE;
+ unsigned int current_shift_q : VGT_DEBUG_REG9_current_shift_q_SIZE;
+ unsigned int next_stride_d : VGT_DEBUG_REG9_next_stride_d_SIZE;
+ unsigned int next_stride_q : VGT_DEBUG_REG9_next_stride_q_SIZE;
+ } vgt_debug_reg9_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_reg9_t f;
+} vgt_debug_reg9_u;
+
+
+/*
+ * VGT_DEBUG_REG10 struct
+ */
+
+#define VGT_DEBUG_REG10_temp_derived_di_prim_type_t0_SIZE 1
+#define VGT_DEBUG_REG10_temp_derived_di_small_index_t0_SIZE 1
+#define VGT_DEBUG_REG10_temp_derived_di_cull_enable_t0_SIZE 1
+#define VGT_DEBUG_REG10_temp_derived_di_pre_fetch_cull_enable_t0_SIZE 1
+#define VGT_DEBUG_REG10_di_state_sel_q_SIZE 1
+#define VGT_DEBUG_REG10_last_decr_of_packet_SIZE 1
+#define VGT_DEBUG_REG10_bin_valid_SIZE 1
+#define VGT_DEBUG_REG10_read_block_SIZE 1
+#define VGT_DEBUG_REG10_grp_bgrp_last_bit_read_SIZE 1
+#define VGT_DEBUG_REG10_last_bit_enable_q_SIZE 1
+#define VGT_DEBUG_REG10_last_bit_end_di_q_SIZE 1
+#define VGT_DEBUG_REG10_selected_data_SIZE 8
+#define VGT_DEBUG_REG10_mask_input_data_SIZE 8
+#define VGT_DEBUG_REG10_gap_q_SIZE 1
+#define VGT_DEBUG_REG10_temp_mini_reset_z_SIZE 1
+#define VGT_DEBUG_REG10_temp_mini_reset_y_SIZE 1
+#define VGT_DEBUG_REG10_temp_mini_reset_x_SIZE 1
+#define VGT_DEBUG_REG10_grp_trigger_SIZE 1
+
+#define VGT_DEBUG_REG10_temp_derived_di_prim_type_t0_SHIFT 0
+#define VGT_DEBUG_REG10_temp_derived_di_small_index_t0_SHIFT 1
+#define VGT_DEBUG_REG10_temp_derived_di_cull_enable_t0_SHIFT 2
+#define VGT_DEBUG_REG10_temp_derived_di_pre_fetch_cull_enable_t0_SHIFT 3
+#define VGT_DEBUG_REG10_di_state_sel_q_SHIFT 4
+#define VGT_DEBUG_REG10_last_decr_of_packet_SHIFT 5
+#define VGT_DEBUG_REG10_bin_valid_SHIFT 6
+#define VGT_DEBUG_REG10_read_block_SHIFT 7
+#define VGT_DEBUG_REG10_grp_bgrp_last_bit_read_SHIFT 8
+#define VGT_DEBUG_REG10_last_bit_enable_q_SHIFT 9
+#define VGT_DEBUG_REG10_last_bit_end_di_q_SHIFT 10
+#define VGT_DEBUG_REG10_selected_data_SHIFT 11
+#define VGT_DEBUG_REG10_mask_input_data_SHIFT 19
+#define VGT_DEBUG_REG10_gap_q_SHIFT 27
+#define VGT_DEBUG_REG10_temp_mini_reset_z_SHIFT 28
+#define VGT_DEBUG_REG10_temp_mini_reset_y_SHIFT 29
+#define VGT_DEBUG_REG10_temp_mini_reset_x_SHIFT 30
+#define VGT_DEBUG_REG10_grp_trigger_SHIFT 31
+
+#define VGT_DEBUG_REG10_temp_derived_di_prim_type_t0_MASK 0x00000001
+#define VGT_DEBUG_REG10_temp_derived_di_small_index_t0_MASK 0x00000002
+#define VGT_DEBUG_REG10_temp_derived_di_cull_enable_t0_MASK 0x00000004
+#define VGT_DEBUG_REG10_temp_derived_di_pre_fetch_cull_enable_t0_MASK 0x00000008
+#define VGT_DEBUG_REG10_di_state_sel_q_MASK 0x00000010
+#define VGT_DEBUG_REG10_last_decr_of_packet_MASK 0x00000020
+#define VGT_DEBUG_REG10_bin_valid_MASK 0x00000040
+#define VGT_DEBUG_REG10_read_block_MASK 0x00000080
+#define VGT_DEBUG_REG10_grp_bgrp_last_bit_read_MASK 0x00000100
+#define VGT_DEBUG_REG10_last_bit_enable_q_MASK 0x00000200
+#define VGT_DEBUG_REG10_last_bit_end_di_q_MASK 0x00000400
+#define VGT_DEBUG_REG10_selected_data_MASK 0x0007f800
+#define VGT_DEBUG_REG10_mask_input_data_MASK 0x07f80000
+#define VGT_DEBUG_REG10_gap_q_MASK 0x08000000
+#define VGT_DEBUG_REG10_temp_mini_reset_z_MASK 0x10000000
+#define VGT_DEBUG_REG10_temp_mini_reset_y_MASK 0x20000000
+#define VGT_DEBUG_REG10_temp_mini_reset_x_MASK 0x40000000
+#define VGT_DEBUG_REG10_grp_trigger_MASK 0x80000000
+
+#define VGT_DEBUG_REG10_MASK \
+ (VGT_DEBUG_REG10_temp_derived_di_prim_type_t0_MASK | \
+ VGT_DEBUG_REG10_temp_derived_di_small_index_t0_MASK | \
+ VGT_DEBUG_REG10_temp_derived_di_cull_enable_t0_MASK | \
+ VGT_DEBUG_REG10_temp_derived_di_pre_fetch_cull_enable_t0_MASK | \
+ VGT_DEBUG_REG10_di_state_sel_q_MASK | \
+ VGT_DEBUG_REG10_last_decr_of_packet_MASK | \
+ VGT_DEBUG_REG10_bin_valid_MASK | \
+ VGT_DEBUG_REG10_read_block_MASK | \
+ VGT_DEBUG_REG10_grp_bgrp_last_bit_read_MASK | \
+ VGT_DEBUG_REG10_last_bit_enable_q_MASK | \
+ VGT_DEBUG_REG10_last_bit_end_di_q_MASK | \
+ VGT_DEBUG_REG10_selected_data_MASK | \
+ VGT_DEBUG_REG10_mask_input_data_MASK | \
+ VGT_DEBUG_REG10_gap_q_MASK | \
+ VGT_DEBUG_REG10_temp_mini_reset_z_MASK | \
+ VGT_DEBUG_REG10_temp_mini_reset_y_MASK | \
+ VGT_DEBUG_REG10_temp_mini_reset_x_MASK | \
+ VGT_DEBUG_REG10_grp_trigger_MASK)
+
+#define VGT_DEBUG_REG10(temp_derived_di_prim_type_t0, temp_derived_di_small_index_t0, temp_derived_di_cull_enable_t0, temp_derived_di_pre_fetch_cull_enable_t0, di_state_sel_q, last_decr_of_packet, bin_valid, read_block, grp_bgrp_last_bit_read, last_bit_enable_q, last_bit_end_di_q, selected_data, mask_input_data, gap_q, temp_mini_reset_z, temp_mini_reset_y, temp_mini_reset_x, grp_trigger) \
+ ((temp_derived_di_prim_type_t0 << VGT_DEBUG_REG10_temp_derived_di_prim_type_t0_SHIFT) | \
+ (temp_derived_di_small_index_t0 << VGT_DEBUG_REG10_temp_derived_di_small_index_t0_SHIFT) | \
+ (temp_derived_di_cull_enable_t0 << VGT_DEBUG_REG10_temp_derived_di_cull_enable_t0_SHIFT) | \
+ (temp_derived_di_pre_fetch_cull_enable_t0 << VGT_DEBUG_REG10_temp_derived_di_pre_fetch_cull_enable_t0_SHIFT) | \
+ (di_state_sel_q << VGT_DEBUG_REG10_di_state_sel_q_SHIFT) | \
+ (last_decr_of_packet << VGT_DEBUG_REG10_last_decr_of_packet_SHIFT) | \
+ (bin_valid << VGT_DEBUG_REG10_bin_valid_SHIFT) | \
+ (read_block << VGT_DEBUG_REG10_read_block_SHIFT) | \
+ (grp_bgrp_last_bit_read << VGT_DEBUG_REG10_grp_bgrp_last_bit_read_SHIFT) | \
+ (last_bit_enable_q << VGT_DEBUG_REG10_last_bit_enable_q_SHIFT) | \
+ (last_bit_end_di_q << VGT_DEBUG_REG10_last_bit_end_di_q_SHIFT) | \
+ (selected_data << VGT_DEBUG_REG10_selected_data_SHIFT) | \
+ (mask_input_data << VGT_DEBUG_REG10_mask_input_data_SHIFT) | \
+ (gap_q << VGT_DEBUG_REG10_gap_q_SHIFT) | \
+ (temp_mini_reset_z << VGT_DEBUG_REG10_temp_mini_reset_z_SHIFT) | \
+ (temp_mini_reset_y << VGT_DEBUG_REG10_temp_mini_reset_y_SHIFT) | \
+ (temp_mini_reset_x << VGT_DEBUG_REG10_temp_mini_reset_x_SHIFT) | \
+ (grp_trigger << VGT_DEBUG_REG10_grp_trigger_SHIFT))
+
+#define VGT_DEBUG_REG10_GET_temp_derived_di_prim_type_t0(vgt_debug_reg10) \
+ ((vgt_debug_reg10 & VGT_DEBUG_REG10_temp_derived_di_prim_type_t0_MASK) >> VGT_DEBUG_REG10_temp_derived_di_prim_type_t0_SHIFT)
+#define VGT_DEBUG_REG10_GET_temp_derived_di_small_index_t0(vgt_debug_reg10) \
+ ((vgt_debug_reg10 & VGT_DEBUG_REG10_temp_derived_di_small_index_t0_MASK) >> VGT_DEBUG_REG10_temp_derived_di_small_index_t0_SHIFT)
+#define VGT_DEBUG_REG10_GET_temp_derived_di_cull_enable_t0(vgt_debug_reg10) \
+ ((vgt_debug_reg10 & VGT_DEBUG_REG10_temp_derived_di_cull_enable_t0_MASK) >> VGT_DEBUG_REG10_temp_derived_di_cull_enable_t0_SHIFT)
+#define VGT_DEBUG_REG10_GET_temp_derived_di_pre_fetch_cull_enable_t0(vgt_debug_reg10) \
+ ((vgt_debug_reg10 & VGT_DEBUG_REG10_temp_derived_di_pre_fetch_cull_enable_t0_MASK) >> VGT_DEBUG_REG10_temp_derived_di_pre_fetch_cull_enable_t0_SHIFT)
+#define VGT_DEBUG_REG10_GET_di_state_sel_q(vgt_debug_reg10) \
+ ((vgt_debug_reg10 & VGT_DEBUG_REG10_di_state_sel_q_MASK) >> VGT_DEBUG_REG10_di_state_sel_q_SHIFT)
+#define VGT_DEBUG_REG10_GET_last_decr_of_packet(vgt_debug_reg10) \
+ ((vgt_debug_reg10 & VGT_DEBUG_REG10_last_decr_of_packet_MASK) >> VGT_DEBUG_REG10_last_decr_of_packet_SHIFT)
+#define VGT_DEBUG_REG10_GET_bin_valid(vgt_debug_reg10) \
+ ((vgt_debug_reg10 & VGT_DEBUG_REG10_bin_valid_MASK) >> VGT_DEBUG_REG10_bin_valid_SHIFT)
+#define VGT_DEBUG_REG10_GET_read_block(vgt_debug_reg10) \
+ ((vgt_debug_reg10 & VGT_DEBUG_REG10_read_block_MASK) >> VGT_DEBUG_REG10_read_block_SHIFT)
+#define VGT_DEBUG_REG10_GET_grp_bgrp_last_bit_read(vgt_debug_reg10) \
+ ((vgt_debug_reg10 & VGT_DEBUG_REG10_grp_bgrp_last_bit_read_MASK) >> VGT_DEBUG_REG10_grp_bgrp_last_bit_read_SHIFT)
+#define VGT_DEBUG_REG10_GET_last_bit_enable_q(vgt_debug_reg10) \
+ ((vgt_debug_reg10 & VGT_DEBUG_REG10_last_bit_enable_q_MASK) >> VGT_DEBUG_REG10_last_bit_enable_q_SHIFT)
+#define VGT_DEBUG_REG10_GET_last_bit_end_di_q(vgt_debug_reg10) \
+ ((vgt_debug_reg10 & VGT_DEBUG_REG10_last_bit_end_di_q_MASK) >> VGT_DEBUG_REG10_last_bit_end_di_q_SHIFT)
+#define VGT_DEBUG_REG10_GET_selected_data(vgt_debug_reg10) \
+ ((vgt_debug_reg10 & VGT_DEBUG_REG10_selected_data_MASK) >> VGT_DEBUG_REG10_selected_data_SHIFT)
+#define VGT_DEBUG_REG10_GET_mask_input_data(vgt_debug_reg10) \
+ ((vgt_debug_reg10 & VGT_DEBUG_REG10_mask_input_data_MASK) >> VGT_DEBUG_REG10_mask_input_data_SHIFT)
+#define VGT_DEBUG_REG10_GET_gap_q(vgt_debug_reg10) \
+ ((vgt_debug_reg10 & VGT_DEBUG_REG10_gap_q_MASK) >> VGT_DEBUG_REG10_gap_q_SHIFT)
+#define VGT_DEBUG_REG10_GET_temp_mini_reset_z(vgt_debug_reg10) \
+ ((vgt_debug_reg10 & VGT_DEBUG_REG10_temp_mini_reset_z_MASK) >> VGT_DEBUG_REG10_temp_mini_reset_z_SHIFT)
+#define VGT_DEBUG_REG10_GET_temp_mini_reset_y(vgt_debug_reg10) \
+ ((vgt_debug_reg10 & VGT_DEBUG_REG10_temp_mini_reset_y_MASK) >> VGT_DEBUG_REG10_temp_mini_reset_y_SHIFT)
+#define VGT_DEBUG_REG10_GET_temp_mini_reset_x(vgt_debug_reg10) \
+ ((vgt_debug_reg10 & VGT_DEBUG_REG10_temp_mini_reset_x_MASK) >> VGT_DEBUG_REG10_temp_mini_reset_x_SHIFT)
+#define VGT_DEBUG_REG10_GET_grp_trigger(vgt_debug_reg10) \
+ ((vgt_debug_reg10 & VGT_DEBUG_REG10_grp_trigger_MASK) >> VGT_DEBUG_REG10_grp_trigger_SHIFT)
+
+#define VGT_DEBUG_REG10_SET_temp_derived_di_prim_type_t0(vgt_debug_reg10_reg, temp_derived_di_prim_type_t0) \
+ vgt_debug_reg10_reg = (vgt_debug_reg10_reg & ~VGT_DEBUG_REG10_temp_derived_di_prim_type_t0_MASK) | (temp_derived_di_prim_type_t0 << VGT_DEBUG_REG10_temp_derived_di_prim_type_t0_SHIFT)
+#define VGT_DEBUG_REG10_SET_temp_derived_di_small_index_t0(vgt_debug_reg10_reg, temp_derived_di_small_index_t0) \
+ vgt_debug_reg10_reg = (vgt_debug_reg10_reg & ~VGT_DEBUG_REG10_temp_derived_di_small_index_t0_MASK) | (temp_derived_di_small_index_t0 << VGT_DEBUG_REG10_temp_derived_di_small_index_t0_SHIFT)
+#define VGT_DEBUG_REG10_SET_temp_derived_di_cull_enable_t0(vgt_debug_reg10_reg, temp_derived_di_cull_enable_t0) \
+ vgt_debug_reg10_reg = (vgt_debug_reg10_reg & ~VGT_DEBUG_REG10_temp_derived_di_cull_enable_t0_MASK) | (temp_derived_di_cull_enable_t0 << VGT_DEBUG_REG10_temp_derived_di_cull_enable_t0_SHIFT)
+#define VGT_DEBUG_REG10_SET_temp_derived_di_pre_fetch_cull_enable_t0(vgt_debug_reg10_reg, temp_derived_di_pre_fetch_cull_enable_t0) \
+ vgt_debug_reg10_reg = (vgt_debug_reg10_reg & ~VGT_DEBUG_REG10_temp_derived_di_pre_fetch_cull_enable_t0_MASK) | (temp_derived_di_pre_fetch_cull_enable_t0 << VGT_DEBUG_REG10_temp_derived_di_pre_fetch_cull_enable_t0_SHIFT)
+#define VGT_DEBUG_REG10_SET_di_state_sel_q(vgt_debug_reg10_reg, di_state_sel_q) \
+ vgt_debug_reg10_reg = (vgt_debug_reg10_reg & ~VGT_DEBUG_REG10_di_state_sel_q_MASK) | (di_state_sel_q << VGT_DEBUG_REG10_di_state_sel_q_SHIFT)
+#define VGT_DEBUG_REG10_SET_last_decr_of_packet(vgt_debug_reg10_reg, last_decr_of_packet) \
+ vgt_debug_reg10_reg = (vgt_debug_reg10_reg & ~VGT_DEBUG_REG10_last_decr_of_packet_MASK) | (last_decr_of_packet << VGT_DEBUG_REG10_last_decr_of_packet_SHIFT)
+#define VGT_DEBUG_REG10_SET_bin_valid(vgt_debug_reg10_reg, bin_valid) \
+ vgt_debug_reg10_reg = (vgt_debug_reg10_reg & ~VGT_DEBUG_REG10_bin_valid_MASK) | (bin_valid << VGT_DEBUG_REG10_bin_valid_SHIFT)
+#define VGT_DEBUG_REG10_SET_read_block(vgt_debug_reg10_reg, read_block) \
+ vgt_debug_reg10_reg = (vgt_debug_reg10_reg & ~VGT_DEBUG_REG10_read_block_MASK) | (read_block << VGT_DEBUG_REG10_read_block_SHIFT)
+#define VGT_DEBUG_REG10_SET_grp_bgrp_last_bit_read(vgt_debug_reg10_reg, grp_bgrp_last_bit_read) \
+ vgt_debug_reg10_reg = (vgt_debug_reg10_reg & ~VGT_DEBUG_REG10_grp_bgrp_last_bit_read_MASK) | (grp_bgrp_last_bit_read << VGT_DEBUG_REG10_grp_bgrp_last_bit_read_SHIFT)
+#define VGT_DEBUG_REG10_SET_last_bit_enable_q(vgt_debug_reg10_reg, last_bit_enable_q) \
+ vgt_debug_reg10_reg = (vgt_debug_reg10_reg & ~VGT_DEBUG_REG10_last_bit_enable_q_MASK) | (last_bit_enable_q << VGT_DEBUG_REG10_last_bit_enable_q_SHIFT)
+#define VGT_DEBUG_REG10_SET_last_bit_end_di_q(vgt_debug_reg10_reg, last_bit_end_di_q) \
+ vgt_debug_reg10_reg = (vgt_debug_reg10_reg & ~VGT_DEBUG_REG10_last_bit_end_di_q_MASK) | (last_bit_end_di_q << VGT_DEBUG_REG10_last_bit_end_di_q_SHIFT)
+#define VGT_DEBUG_REG10_SET_selected_data(vgt_debug_reg10_reg, selected_data) \
+ vgt_debug_reg10_reg = (vgt_debug_reg10_reg & ~VGT_DEBUG_REG10_selected_data_MASK) | (selected_data << VGT_DEBUG_REG10_selected_data_SHIFT)
+#define VGT_DEBUG_REG10_SET_mask_input_data(vgt_debug_reg10_reg, mask_input_data) \
+ vgt_debug_reg10_reg = (vgt_debug_reg10_reg & ~VGT_DEBUG_REG10_mask_input_data_MASK) | (mask_input_data << VGT_DEBUG_REG10_mask_input_data_SHIFT)
+#define VGT_DEBUG_REG10_SET_gap_q(vgt_debug_reg10_reg, gap_q) \
+ vgt_debug_reg10_reg = (vgt_debug_reg10_reg & ~VGT_DEBUG_REG10_gap_q_MASK) | (gap_q << VGT_DEBUG_REG10_gap_q_SHIFT)
+#define VGT_DEBUG_REG10_SET_temp_mini_reset_z(vgt_debug_reg10_reg, temp_mini_reset_z) \
+ vgt_debug_reg10_reg = (vgt_debug_reg10_reg & ~VGT_DEBUG_REG10_temp_mini_reset_z_MASK) | (temp_mini_reset_z << VGT_DEBUG_REG10_temp_mini_reset_z_SHIFT)
+#define VGT_DEBUG_REG10_SET_temp_mini_reset_y(vgt_debug_reg10_reg, temp_mini_reset_y) \
+ vgt_debug_reg10_reg = (vgt_debug_reg10_reg & ~VGT_DEBUG_REG10_temp_mini_reset_y_MASK) | (temp_mini_reset_y << VGT_DEBUG_REG10_temp_mini_reset_y_SHIFT)
+#define VGT_DEBUG_REG10_SET_temp_mini_reset_x(vgt_debug_reg10_reg, temp_mini_reset_x) \
+ vgt_debug_reg10_reg = (vgt_debug_reg10_reg & ~VGT_DEBUG_REG10_temp_mini_reset_x_MASK) | (temp_mini_reset_x << VGT_DEBUG_REG10_temp_mini_reset_x_SHIFT)
+#define VGT_DEBUG_REG10_SET_grp_trigger(vgt_debug_reg10_reg, grp_trigger) \
+ vgt_debug_reg10_reg = (vgt_debug_reg10_reg & ~VGT_DEBUG_REG10_grp_trigger_MASK) | (grp_trigger << VGT_DEBUG_REG10_grp_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg10_t {
+ unsigned int temp_derived_di_prim_type_t0 : VGT_DEBUG_REG10_temp_derived_di_prim_type_t0_SIZE;
+ unsigned int temp_derived_di_small_index_t0 : VGT_DEBUG_REG10_temp_derived_di_small_index_t0_SIZE;
+ unsigned int temp_derived_di_cull_enable_t0 : VGT_DEBUG_REG10_temp_derived_di_cull_enable_t0_SIZE;
+ unsigned int temp_derived_di_pre_fetch_cull_enable_t0 : VGT_DEBUG_REG10_temp_derived_di_pre_fetch_cull_enable_t0_SIZE;
+ unsigned int di_state_sel_q : VGT_DEBUG_REG10_di_state_sel_q_SIZE;
+ unsigned int last_decr_of_packet : VGT_DEBUG_REG10_last_decr_of_packet_SIZE;
+ unsigned int bin_valid : VGT_DEBUG_REG10_bin_valid_SIZE;
+ unsigned int read_block : VGT_DEBUG_REG10_read_block_SIZE;
+ unsigned int grp_bgrp_last_bit_read : VGT_DEBUG_REG10_grp_bgrp_last_bit_read_SIZE;
+ unsigned int last_bit_enable_q : VGT_DEBUG_REG10_last_bit_enable_q_SIZE;
+ unsigned int last_bit_end_di_q : VGT_DEBUG_REG10_last_bit_end_di_q_SIZE;
+ unsigned int selected_data : VGT_DEBUG_REG10_selected_data_SIZE;
+ unsigned int mask_input_data : VGT_DEBUG_REG10_mask_input_data_SIZE;
+ unsigned int gap_q : VGT_DEBUG_REG10_gap_q_SIZE;
+ unsigned int temp_mini_reset_z : VGT_DEBUG_REG10_temp_mini_reset_z_SIZE;
+ unsigned int temp_mini_reset_y : VGT_DEBUG_REG10_temp_mini_reset_y_SIZE;
+ unsigned int temp_mini_reset_x : VGT_DEBUG_REG10_temp_mini_reset_x_SIZE;
+ unsigned int grp_trigger : VGT_DEBUG_REG10_grp_trigger_SIZE;
+ } vgt_debug_reg10_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg10_t {
+ unsigned int grp_trigger : VGT_DEBUG_REG10_grp_trigger_SIZE;
+ unsigned int temp_mini_reset_x : VGT_DEBUG_REG10_temp_mini_reset_x_SIZE;
+ unsigned int temp_mini_reset_y : VGT_DEBUG_REG10_temp_mini_reset_y_SIZE;
+ unsigned int temp_mini_reset_z : VGT_DEBUG_REG10_temp_mini_reset_z_SIZE;
+ unsigned int gap_q : VGT_DEBUG_REG10_gap_q_SIZE;
+ unsigned int mask_input_data : VGT_DEBUG_REG10_mask_input_data_SIZE;
+ unsigned int selected_data : VGT_DEBUG_REG10_selected_data_SIZE;
+ unsigned int last_bit_end_di_q : VGT_DEBUG_REG10_last_bit_end_di_q_SIZE;
+ unsigned int last_bit_enable_q : VGT_DEBUG_REG10_last_bit_enable_q_SIZE;
+ unsigned int grp_bgrp_last_bit_read : VGT_DEBUG_REG10_grp_bgrp_last_bit_read_SIZE;
+ unsigned int read_block : VGT_DEBUG_REG10_read_block_SIZE;
+ unsigned int bin_valid : VGT_DEBUG_REG10_bin_valid_SIZE;
+ unsigned int last_decr_of_packet : VGT_DEBUG_REG10_last_decr_of_packet_SIZE;
+ unsigned int di_state_sel_q : VGT_DEBUG_REG10_di_state_sel_q_SIZE;
+ unsigned int temp_derived_di_pre_fetch_cull_enable_t0 : VGT_DEBUG_REG10_temp_derived_di_pre_fetch_cull_enable_t0_SIZE;
+ unsigned int temp_derived_di_cull_enable_t0 : VGT_DEBUG_REG10_temp_derived_di_cull_enable_t0_SIZE;
+ unsigned int temp_derived_di_small_index_t0 : VGT_DEBUG_REG10_temp_derived_di_small_index_t0_SIZE;
+ unsigned int temp_derived_di_prim_type_t0 : VGT_DEBUG_REG10_temp_derived_di_prim_type_t0_SIZE;
+ } vgt_debug_reg10_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_reg10_t f;
+} vgt_debug_reg10_u;
+
+
+/*
+ * VGT_DEBUG_REG12 struct
+ */
+
+#define VGT_DEBUG_REG12_shifter_byte_count_q_SIZE 5
+#define VGT_DEBUG_REG12_right_word_indx_q_SIZE 5
+#define VGT_DEBUG_REG12_input_data_valid_SIZE 1
+#define VGT_DEBUG_REG12_input_data_xfer_SIZE 1
+#define VGT_DEBUG_REG12_next_shift_is_vect_1_q_SIZE 1
+#define VGT_DEBUG_REG12_next_shift_is_vect_1_d_SIZE 1
+#define VGT_DEBUG_REG12_next_shift_is_vect_1_pre_d_SIZE 1
+#define VGT_DEBUG_REG12_space_avail_from_shift_SIZE 1
+#define VGT_DEBUG_REG12_shifter_first_load_SIZE 1
+#define VGT_DEBUG_REG12_di_state_sel_q_SIZE 1
+#define VGT_DEBUG_REG12_shifter_waiting_for_first_load_q_SIZE 1
+#define VGT_DEBUG_REG12_di_first_group_flag_q_SIZE 1
+#define VGT_DEBUG_REG12_di_event_flag_q_SIZE 1
+#define VGT_DEBUG_REG12_read_draw_initiator_SIZE 1
+#define VGT_DEBUG_REG12_loading_di_requires_shifter_SIZE 1
+#define VGT_DEBUG_REG12_last_shift_of_packet_SIZE 1
+#define VGT_DEBUG_REG12_last_decr_of_packet_SIZE 1
+#define VGT_DEBUG_REG12_extract_vector_SIZE 1
+#define VGT_DEBUG_REG12_shift_vect_rtr_SIZE 1
+#define VGT_DEBUG_REG12_destination_rtr_SIZE 1
+#define VGT_DEBUG_REG12_bgrp_trigger_SIZE 1
+
+#define VGT_DEBUG_REG12_shifter_byte_count_q_SHIFT 0
+#define VGT_DEBUG_REG12_right_word_indx_q_SHIFT 5
+#define VGT_DEBUG_REG12_input_data_valid_SHIFT 10
+#define VGT_DEBUG_REG12_input_data_xfer_SHIFT 11
+#define VGT_DEBUG_REG12_next_shift_is_vect_1_q_SHIFT 12
+#define VGT_DEBUG_REG12_next_shift_is_vect_1_d_SHIFT 13
+#define VGT_DEBUG_REG12_next_shift_is_vect_1_pre_d_SHIFT 14
+#define VGT_DEBUG_REG12_space_avail_from_shift_SHIFT 15
+#define VGT_DEBUG_REG12_shifter_first_load_SHIFT 16
+#define VGT_DEBUG_REG12_di_state_sel_q_SHIFT 17
+#define VGT_DEBUG_REG12_shifter_waiting_for_first_load_q_SHIFT 18
+#define VGT_DEBUG_REG12_di_first_group_flag_q_SHIFT 19
+#define VGT_DEBUG_REG12_di_event_flag_q_SHIFT 20
+#define VGT_DEBUG_REG12_read_draw_initiator_SHIFT 21
+#define VGT_DEBUG_REG12_loading_di_requires_shifter_SHIFT 22
+#define VGT_DEBUG_REG12_last_shift_of_packet_SHIFT 23
+#define VGT_DEBUG_REG12_last_decr_of_packet_SHIFT 24
+#define VGT_DEBUG_REG12_extract_vector_SHIFT 25
+#define VGT_DEBUG_REG12_shift_vect_rtr_SHIFT 26
+#define VGT_DEBUG_REG12_destination_rtr_SHIFT 27
+#define VGT_DEBUG_REG12_bgrp_trigger_SHIFT 28
+
+#define VGT_DEBUG_REG12_shifter_byte_count_q_MASK 0x0000001f
+#define VGT_DEBUG_REG12_right_word_indx_q_MASK 0x000003e0
+#define VGT_DEBUG_REG12_input_data_valid_MASK 0x00000400
+#define VGT_DEBUG_REG12_input_data_xfer_MASK 0x00000800
+#define VGT_DEBUG_REG12_next_shift_is_vect_1_q_MASK 0x00001000
+#define VGT_DEBUG_REG12_next_shift_is_vect_1_d_MASK 0x00002000
+#define VGT_DEBUG_REG12_next_shift_is_vect_1_pre_d_MASK 0x00004000
+#define VGT_DEBUG_REG12_space_avail_from_shift_MASK 0x00008000
+#define VGT_DEBUG_REG12_shifter_first_load_MASK 0x00010000
+#define VGT_DEBUG_REG12_di_state_sel_q_MASK 0x00020000
+#define VGT_DEBUG_REG12_shifter_waiting_for_first_load_q_MASK 0x00040000
+#define VGT_DEBUG_REG12_di_first_group_flag_q_MASK 0x00080000
+#define VGT_DEBUG_REG12_di_event_flag_q_MASK 0x00100000
+#define VGT_DEBUG_REG12_read_draw_initiator_MASK 0x00200000
+#define VGT_DEBUG_REG12_loading_di_requires_shifter_MASK 0x00400000
+#define VGT_DEBUG_REG12_last_shift_of_packet_MASK 0x00800000
+#define VGT_DEBUG_REG12_last_decr_of_packet_MASK 0x01000000
+#define VGT_DEBUG_REG12_extract_vector_MASK 0x02000000
+#define VGT_DEBUG_REG12_shift_vect_rtr_MASK 0x04000000
+#define VGT_DEBUG_REG12_destination_rtr_MASK 0x08000000
+#define VGT_DEBUG_REG12_bgrp_trigger_MASK 0x10000000
+
+#define VGT_DEBUG_REG12_MASK \
+ (VGT_DEBUG_REG12_shifter_byte_count_q_MASK | \
+ VGT_DEBUG_REG12_right_word_indx_q_MASK | \
+ VGT_DEBUG_REG12_input_data_valid_MASK | \
+ VGT_DEBUG_REG12_input_data_xfer_MASK | \
+ VGT_DEBUG_REG12_next_shift_is_vect_1_q_MASK | \
+ VGT_DEBUG_REG12_next_shift_is_vect_1_d_MASK | \
+ VGT_DEBUG_REG12_next_shift_is_vect_1_pre_d_MASK | \
+ VGT_DEBUG_REG12_space_avail_from_shift_MASK | \
+ VGT_DEBUG_REG12_shifter_first_load_MASK | \
+ VGT_DEBUG_REG12_di_state_sel_q_MASK | \
+ VGT_DEBUG_REG12_shifter_waiting_for_first_load_q_MASK | \
+ VGT_DEBUG_REG12_di_first_group_flag_q_MASK | \
+ VGT_DEBUG_REG12_di_event_flag_q_MASK | \
+ VGT_DEBUG_REG12_read_draw_initiator_MASK | \
+ VGT_DEBUG_REG12_loading_di_requires_shifter_MASK | \
+ VGT_DEBUG_REG12_last_shift_of_packet_MASK | \
+ VGT_DEBUG_REG12_last_decr_of_packet_MASK | \
+ VGT_DEBUG_REG12_extract_vector_MASK | \
+ VGT_DEBUG_REG12_shift_vect_rtr_MASK | \
+ VGT_DEBUG_REG12_destination_rtr_MASK | \
+ VGT_DEBUG_REG12_bgrp_trigger_MASK)
+
+#define VGT_DEBUG_REG12(shifter_byte_count_q, right_word_indx_q, input_data_valid, input_data_xfer, next_shift_is_vect_1_q, next_shift_is_vect_1_d, next_shift_is_vect_1_pre_d, space_avail_from_shift, shifter_first_load, di_state_sel_q, shifter_waiting_for_first_load_q, di_first_group_flag_q, di_event_flag_q, read_draw_initiator, loading_di_requires_shifter, last_shift_of_packet, last_decr_of_packet, extract_vector, shift_vect_rtr, destination_rtr, bgrp_trigger) \
+ ((shifter_byte_count_q << VGT_DEBUG_REG12_shifter_byte_count_q_SHIFT) | \
+ (right_word_indx_q << VGT_DEBUG_REG12_right_word_indx_q_SHIFT) | \
+ (input_data_valid << VGT_DEBUG_REG12_input_data_valid_SHIFT) | \
+ (input_data_xfer << VGT_DEBUG_REG12_input_data_xfer_SHIFT) | \
+ (next_shift_is_vect_1_q << VGT_DEBUG_REG12_next_shift_is_vect_1_q_SHIFT) | \
+ (next_shift_is_vect_1_d << VGT_DEBUG_REG12_next_shift_is_vect_1_d_SHIFT) | \
+ (next_shift_is_vect_1_pre_d << VGT_DEBUG_REG12_next_shift_is_vect_1_pre_d_SHIFT) | \
+ (space_avail_from_shift << VGT_DEBUG_REG12_space_avail_from_shift_SHIFT) | \
+ (shifter_first_load << VGT_DEBUG_REG12_shifter_first_load_SHIFT) | \
+ (di_state_sel_q << VGT_DEBUG_REG12_di_state_sel_q_SHIFT) | \
+ (shifter_waiting_for_first_load_q << VGT_DEBUG_REG12_shifter_waiting_for_first_load_q_SHIFT) | \
+ (di_first_group_flag_q << VGT_DEBUG_REG12_di_first_group_flag_q_SHIFT) | \
+ (di_event_flag_q << VGT_DEBUG_REG12_di_event_flag_q_SHIFT) | \
+ (read_draw_initiator << VGT_DEBUG_REG12_read_draw_initiator_SHIFT) | \
+ (loading_di_requires_shifter << VGT_DEBUG_REG12_loading_di_requires_shifter_SHIFT) | \
+ (last_shift_of_packet << VGT_DEBUG_REG12_last_shift_of_packet_SHIFT) | \
+ (last_decr_of_packet << VGT_DEBUG_REG12_last_decr_of_packet_SHIFT) | \
+ (extract_vector << VGT_DEBUG_REG12_extract_vector_SHIFT) | \
+ (shift_vect_rtr << VGT_DEBUG_REG12_shift_vect_rtr_SHIFT) | \
+ (destination_rtr << VGT_DEBUG_REG12_destination_rtr_SHIFT) | \
+ (bgrp_trigger << VGT_DEBUG_REG12_bgrp_trigger_SHIFT))
+
+#define VGT_DEBUG_REG12_GET_shifter_byte_count_q(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_shifter_byte_count_q_MASK) >> VGT_DEBUG_REG12_shifter_byte_count_q_SHIFT)
+#define VGT_DEBUG_REG12_GET_right_word_indx_q(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_right_word_indx_q_MASK) >> VGT_DEBUG_REG12_right_word_indx_q_SHIFT)
+#define VGT_DEBUG_REG12_GET_input_data_valid(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_input_data_valid_MASK) >> VGT_DEBUG_REG12_input_data_valid_SHIFT)
+#define VGT_DEBUG_REG12_GET_input_data_xfer(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_input_data_xfer_MASK) >> VGT_DEBUG_REG12_input_data_xfer_SHIFT)
+#define VGT_DEBUG_REG12_GET_next_shift_is_vect_1_q(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_next_shift_is_vect_1_q_MASK) >> VGT_DEBUG_REG12_next_shift_is_vect_1_q_SHIFT)
+#define VGT_DEBUG_REG12_GET_next_shift_is_vect_1_d(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_next_shift_is_vect_1_d_MASK) >> VGT_DEBUG_REG12_next_shift_is_vect_1_d_SHIFT)
+#define VGT_DEBUG_REG12_GET_next_shift_is_vect_1_pre_d(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_next_shift_is_vect_1_pre_d_MASK) >> VGT_DEBUG_REG12_next_shift_is_vect_1_pre_d_SHIFT)
+#define VGT_DEBUG_REG12_GET_space_avail_from_shift(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_space_avail_from_shift_MASK) >> VGT_DEBUG_REG12_space_avail_from_shift_SHIFT)
+#define VGT_DEBUG_REG12_GET_shifter_first_load(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_shifter_first_load_MASK) >> VGT_DEBUG_REG12_shifter_first_load_SHIFT)
+#define VGT_DEBUG_REG12_GET_di_state_sel_q(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_di_state_sel_q_MASK) >> VGT_DEBUG_REG12_di_state_sel_q_SHIFT)
+#define VGT_DEBUG_REG12_GET_shifter_waiting_for_first_load_q(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_shifter_waiting_for_first_load_q_MASK) >> VGT_DEBUG_REG12_shifter_waiting_for_first_load_q_SHIFT)
+#define VGT_DEBUG_REG12_GET_di_first_group_flag_q(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_di_first_group_flag_q_MASK) >> VGT_DEBUG_REG12_di_first_group_flag_q_SHIFT)
+#define VGT_DEBUG_REG12_GET_di_event_flag_q(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_di_event_flag_q_MASK) >> VGT_DEBUG_REG12_di_event_flag_q_SHIFT)
+#define VGT_DEBUG_REG12_GET_read_draw_initiator(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_read_draw_initiator_MASK) >> VGT_DEBUG_REG12_read_draw_initiator_SHIFT)
+#define VGT_DEBUG_REG12_GET_loading_di_requires_shifter(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_loading_di_requires_shifter_MASK) >> VGT_DEBUG_REG12_loading_di_requires_shifter_SHIFT)
+#define VGT_DEBUG_REG12_GET_last_shift_of_packet(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_last_shift_of_packet_MASK) >> VGT_DEBUG_REG12_last_shift_of_packet_SHIFT)
+#define VGT_DEBUG_REG12_GET_last_decr_of_packet(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_last_decr_of_packet_MASK) >> VGT_DEBUG_REG12_last_decr_of_packet_SHIFT)
+#define VGT_DEBUG_REG12_GET_extract_vector(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_extract_vector_MASK) >> VGT_DEBUG_REG12_extract_vector_SHIFT)
+#define VGT_DEBUG_REG12_GET_shift_vect_rtr(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_shift_vect_rtr_MASK) >> VGT_DEBUG_REG12_shift_vect_rtr_SHIFT)
+#define VGT_DEBUG_REG12_GET_destination_rtr(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_destination_rtr_MASK) >> VGT_DEBUG_REG12_destination_rtr_SHIFT)
+#define VGT_DEBUG_REG12_GET_bgrp_trigger(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_bgrp_trigger_MASK) >> VGT_DEBUG_REG12_bgrp_trigger_SHIFT)
+
+#define VGT_DEBUG_REG12_SET_shifter_byte_count_q(vgt_debug_reg12_reg, shifter_byte_count_q) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_shifter_byte_count_q_MASK) | (shifter_byte_count_q << VGT_DEBUG_REG12_shifter_byte_count_q_SHIFT)
+#define VGT_DEBUG_REG12_SET_right_word_indx_q(vgt_debug_reg12_reg, right_word_indx_q) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_right_word_indx_q_MASK) | (right_word_indx_q << VGT_DEBUG_REG12_right_word_indx_q_SHIFT)
+#define VGT_DEBUG_REG12_SET_input_data_valid(vgt_debug_reg12_reg, input_data_valid) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_input_data_valid_MASK) | (input_data_valid << VGT_DEBUG_REG12_input_data_valid_SHIFT)
+#define VGT_DEBUG_REG12_SET_input_data_xfer(vgt_debug_reg12_reg, input_data_xfer) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_input_data_xfer_MASK) | (input_data_xfer << VGT_DEBUG_REG12_input_data_xfer_SHIFT)
+#define VGT_DEBUG_REG12_SET_next_shift_is_vect_1_q(vgt_debug_reg12_reg, next_shift_is_vect_1_q) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_next_shift_is_vect_1_q_MASK) | (next_shift_is_vect_1_q << VGT_DEBUG_REG12_next_shift_is_vect_1_q_SHIFT)
+#define VGT_DEBUG_REG12_SET_next_shift_is_vect_1_d(vgt_debug_reg12_reg, next_shift_is_vect_1_d) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_next_shift_is_vect_1_d_MASK) | (next_shift_is_vect_1_d << VGT_DEBUG_REG12_next_shift_is_vect_1_d_SHIFT)
+#define VGT_DEBUG_REG12_SET_next_shift_is_vect_1_pre_d(vgt_debug_reg12_reg, next_shift_is_vect_1_pre_d) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_next_shift_is_vect_1_pre_d_MASK) | (next_shift_is_vect_1_pre_d << VGT_DEBUG_REG12_next_shift_is_vect_1_pre_d_SHIFT)
+#define VGT_DEBUG_REG12_SET_space_avail_from_shift(vgt_debug_reg12_reg, space_avail_from_shift) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_space_avail_from_shift_MASK) | (space_avail_from_shift << VGT_DEBUG_REG12_space_avail_from_shift_SHIFT)
+#define VGT_DEBUG_REG12_SET_shifter_first_load(vgt_debug_reg12_reg, shifter_first_load) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_shifter_first_load_MASK) | (shifter_first_load << VGT_DEBUG_REG12_shifter_first_load_SHIFT)
+#define VGT_DEBUG_REG12_SET_di_state_sel_q(vgt_debug_reg12_reg, di_state_sel_q) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_di_state_sel_q_MASK) | (di_state_sel_q << VGT_DEBUG_REG12_di_state_sel_q_SHIFT)
+#define VGT_DEBUG_REG12_SET_shifter_waiting_for_first_load_q(vgt_debug_reg12_reg, shifter_waiting_for_first_load_q) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_shifter_waiting_for_first_load_q_MASK) | (shifter_waiting_for_first_load_q << VGT_DEBUG_REG12_shifter_waiting_for_first_load_q_SHIFT)
+#define VGT_DEBUG_REG12_SET_di_first_group_flag_q(vgt_debug_reg12_reg, di_first_group_flag_q) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_di_first_group_flag_q_MASK) | (di_first_group_flag_q << VGT_DEBUG_REG12_di_first_group_flag_q_SHIFT)
+#define VGT_DEBUG_REG12_SET_di_event_flag_q(vgt_debug_reg12_reg, di_event_flag_q) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_di_event_flag_q_MASK) | (di_event_flag_q << VGT_DEBUG_REG12_di_event_flag_q_SHIFT)
+#define VGT_DEBUG_REG12_SET_read_draw_initiator(vgt_debug_reg12_reg, read_draw_initiator) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_read_draw_initiator_MASK) | (read_draw_initiator << VGT_DEBUG_REG12_read_draw_initiator_SHIFT)
+#define VGT_DEBUG_REG12_SET_loading_di_requires_shifter(vgt_debug_reg12_reg, loading_di_requires_shifter) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_loading_di_requires_shifter_MASK) | (loading_di_requires_shifter << VGT_DEBUG_REG12_loading_di_requires_shifter_SHIFT)
+#define VGT_DEBUG_REG12_SET_last_shift_of_packet(vgt_debug_reg12_reg, last_shift_of_packet) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_last_shift_of_packet_MASK) | (last_shift_of_packet << VGT_DEBUG_REG12_last_shift_of_packet_SHIFT)
+#define VGT_DEBUG_REG12_SET_last_decr_of_packet(vgt_debug_reg12_reg, last_decr_of_packet) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_last_decr_of_packet_MASK) | (last_decr_of_packet << VGT_DEBUG_REG12_last_decr_of_packet_SHIFT)
+#define VGT_DEBUG_REG12_SET_extract_vector(vgt_debug_reg12_reg, extract_vector) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_extract_vector_MASK) | (extract_vector << VGT_DEBUG_REG12_extract_vector_SHIFT)
+#define VGT_DEBUG_REG12_SET_shift_vect_rtr(vgt_debug_reg12_reg, shift_vect_rtr) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_shift_vect_rtr_MASK) | (shift_vect_rtr << VGT_DEBUG_REG12_shift_vect_rtr_SHIFT)
+#define VGT_DEBUG_REG12_SET_destination_rtr(vgt_debug_reg12_reg, destination_rtr) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_destination_rtr_MASK) | (destination_rtr << VGT_DEBUG_REG12_destination_rtr_SHIFT)
+#define VGT_DEBUG_REG12_SET_bgrp_trigger(vgt_debug_reg12_reg, bgrp_trigger) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_bgrp_trigger_MASK) | (bgrp_trigger << VGT_DEBUG_REG12_bgrp_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg12_t {
+ unsigned int shifter_byte_count_q : VGT_DEBUG_REG12_shifter_byte_count_q_SIZE;
+ unsigned int right_word_indx_q : VGT_DEBUG_REG12_right_word_indx_q_SIZE;
+ unsigned int input_data_valid : VGT_DEBUG_REG12_input_data_valid_SIZE;
+ unsigned int input_data_xfer : VGT_DEBUG_REG12_input_data_xfer_SIZE;
+ unsigned int next_shift_is_vect_1_q : VGT_DEBUG_REG12_next_shift_is_vect_1_q_SIZE;
+ unsigned int next_shift_is_vect_1_d : VGT_DEBUG_REG12_next_shift_is_vect_1_d_SIZE;
+ unsigned int next_shift_is_vect_1_pre_d : VGT_DEBUG_REG12_next_shift_is_vect_1_pre_d_SIZE;
+ unsigned int space_avail_from_shift : VGT_DEBUG_REG12_space_avail_from_shift_SIZE;
+ unsigned int shifter_first_load : VGT_DEBUG_REG12_shifter_first_load_SIZE;
+ unsigned int di_state_sel_q : VGT_DEBUG_REG12_di_state_sel_q_SIZE;
+ unsigned int shifter_waiting_for_first_load_q : VGT_DEBUG_REG12_shifter_waiting_for_first_load_q_SIZE;
+ unsigned int di_first_group_flag_q : VGT_DEBUG_REG12_di_first_group_flag_q_SIZE;
+ unsigned int di_event_flag_q : VGT_DEBUG_REG12_di_event_flag_q_SIZE;
+ unsigned int read_draw_initiator : VGT_DEBUG_REG12_read_draw_initiator_SIZE;
+ unsigned int loading_di_requires_shifter : VGT_DEBUG_REG12_loading_di_requires_shifter_SIZE;
+ unsigned int last_shift_of_packet : VGT_DEBUG_REG12_last_shift_of_packet_SIZE;
+ unsigned int last_decr_of_packet : VGT_DEBUG_REG12_last_decr_of_packet_SIZE;
+ unsigned int extract_vector : VGT_DEBUG_REG12_extract_vector_SIZE;
+ unsigned int shift_vect_rtr : VGT_DEBUG_REG12_shift_vect_rtr_SIZE;
+ unsigned int destination_rtr : VGT_DEBUG_REG12_destination_rtr_SIZE;
+ unsigned int bgrp_trigger : VGT_DEBUG_REG12_bgrp_trigger_SIZE;
+ unsigned int : 3;
+ } vgt_debug_reg12_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg12_t {
+ unsigned int : 3;
+ unsigned int bgrp_trigger : VGT_DEBUG_REG12_bgrp_trigger_SIZE;
+ unsigned int destination_rtr : VGT_DEBUG_REG12_destination_rtr_SIZE;
+ unsigned int shift_vect_rtr : VGT_DEBUG_REG12_shift_vect_rtr_SIZE;
+ unsigned int extract_vector : VGT_DEBUG_REG12_extract_vector_SIZE;
+ unsigned int last_decr_of_packet : VGT_DEBUG_REG12_last_decr_of_packet_SIZE;
+ unsigned int last_shift_of_packet : VGT_DEBUG_REG12_last_shift_of_packet_SIZE;
+ unsigned int loading_di_requires_shifter : VGT_DEBUG_REG12_loading_di_requires_shifter_SIZE;
+ unsigned int read_draw_initiator : VGT_DEBUG_REG12_read_draw_initiator_SIZE;
+ unsigned int di_event_flag_q : VGT_DEBUG_REG12_di_event_flag_q_SIZE;
+ unsigned int di_first_group_flag_q : VGT_DEBUG_REG12_di_first_group_flag_q_SIZE;
+ unsigned int shifter_waiting_for_first_load_q : VGT_DEBUG_REG12_shifter_waiting_for_first_load_q_SIZE;
+ unsigned int di_state_sel_q : VGT_DEBUG_REG12_di_state_sel_q_SIZE;
+ unsigned int shifter_first_load : VGT_DEBUG_REG12_shifter_first_load_SIZE;
+ unsigned int space_avail_from_shift : VGT_DEBUG_REG12_space_avail_from_shift_SIZE;
+ unsigned int next_shift_is_vect_1_pre_d : VGT_DEBUG_REG12_next_shift_is_vect_1_pre_d_SIZE;
+ unsigned int next_shift_is_vect_1_d : VGT_DEBUG_REG12_next_shift_is_vect_1_d_SIZE;
+ unsigned int next_shift_is_vect_1_q : VGT_DEBUG_REG12_next_shift_is_vect_1_q_SIZE;
+ unsigned int input_data_xfer : VGT_DEBUG_REG12_input_data_xfer_SIZE;
+ unsigned int input_data_valid : VGT_DEBUG_REG12_input_data_valid_SIZE;
+ unsigned int right_word_indx_q : VGT_DEBUG_REG12_right_word_indx_q_SIZE;
+ unsigned int shifter_byte_count_q : VGT_DEBUG_REG12_shifter_byte_count_q_SIZE;
+ } vgt_debug_reg12_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_reg12_t f;
+} vgt_debug_reg12_u;
+
+
+/*
+ * VGT_DEBUG_REG13 struct
+ */
+
+#define VGT_DEBUG_REG13_di_index_counter_q_SIZE 16
+#define VGT_DEBUG_REG13_shift_amount_no_extract_SIZE 4
+#define VGT_DEBUG_REG13_shift_amount_extract_SIZE 4
+#define VGT_DEBUG_REG13_di_prim_type_q_SIZE 6
+#define VGT_DEBUG_REG13_current_source_sel_SIZE 2
+
+#define VGT_DEBUG_REG13_di_index_counter_q_SHIFT 0
+#define VGT_DEBUG_REG13_shift_amount_no_extract_SHIFT 16
+#define VGT_DEBUG_REG13_shift_amount_extract_SHIFT 20
+#define VGT_DEBUG_REG13_di_prim_type_q_SHIFT 24
+#define VGT_DEBUG_REG13_current_source_sel_SHIFT 30
+
+#define VGT_DEBUG_REG13_di_index_counter_q_MASK 0x0000ffff
+#define VGT_DEBUG_REG13_shift_amount_no_extract_MASK 0x000f0000
+#define VGT_DEBUG_REG13_shift_amount_extract_MASK 0x00f00000
+#define VGT_DEBUG_REG13_di_prim_type_q_MASK 0x3f000000
+#define VGT_DEBUG_REG13_current_source_sel_MASK 0xc0000000
+
+#define VGT_DEBUG_REG13_MASK \
+ (VGT_DEBUG_REG13_di_index_counter_q_MASK | \
+ VGT_DEBUG_REG13_shift_amount_no_extract_MASK | \
+ VGT_DEBUG_REG13_shift_amount_extract_MASK | \
+ VGT_DEBUG_REG13_di_prim_type_q_MASK | \
+ VGT_DEBUG_REG13_current_source_sel_MASK)
+
+#define VGT_DEBUG_REG13(di_index_counter_q, shift_amount_no_extract, shift_amount_extract, di_prim_type_q, current_source_sel) \
+ ((di_index_counter_q << VGT_DEBUG_REG13_di_index_counter_q_SHIFT) | \
+ (shift_amount_no_extract << VGT_DEBUG_REG13_shift_amount_no_extract_SHIFT) | \
+ (shift_amount_extract << VGT_DEBUG_REG13_shift_amount_extract_SHIFT) | \
+ (di_prim_type_q << VGT_DEBUG_REG13_di_prim_type_q_SHIFT) | \
+ (current_source_sel << VGT_DEBUG_REG13_current_source_sel_SHIFT))
+
+#define VGT_DEBUG_REG13_GET_di_index_counter_q(vgt_debug_reg13) \
+ ((vgt_debug_reg13 & VGT_DEBUG_REG13_di_index_counter_q_MASK) >> VGT_DEBUG_REG13_di_index_counter_q_SHIFT)
+#define VGT_DEBUG_REG13_GET_shift_amount_no_extract(vgt_debug_reg13) \
+ ((vgt_debug_reg13 & VGT_DEBUG_REG13_shift_amount_no_extract_MASK) >> VGT_DEBUG_REG13_shift_amount_no_extract_SHIFT)
+#define VGT_DEBUG_REG13_GET_shift_amount_extract(vgt_debug_reg13) \
+ ((vgt_debug_reg13 & VGT_DEBUG_REG13_shift_amount_extract_MASK) >> VGT_DEBUG_REG13_shift_amount_extract_SHIFT)
+#define VGT_DEBUG_REG13_GET_di_prim_type_q(vgt_debug_reg13) \
+ ((vgt_debug_reg13 & VGT_DEBUG_REG13_di_prim_type_q_MASK) >> VGT_DEBUG_REG13_di_prim_type_q_SHIFT)
+#define VGT_DEBUG_REG13_GET_current_source_sel(vgt_debug_reg13) \
+ ((vgt_debug_reg13 & VGT_DEBUG_REG13_current_source_sel_MASK) >> VGT_DEBUG_REG13_current_source_sel_SHIFT)
+
+#define VGT_DEBUG_REG13_SET_di_index_counter_q(vgt_debug_reg13_reg, di_index_counter_q) \
+ vgt_debug_reg13_reg = (vgt_debug_reg13_reg & ~VGT_DEBUG_REG13_di_index_counter_q_MASK) | (di_index_counter_q << VGT_DEBUG_REG13_di_index_counter_q_SHIFT)
+#define VGT_DEBUG_REG13_SET_shift_amount_no_extract(vgt_debug_reg13_reg, shift_amount_no_extract) \
+ vgt_debug_reg13_reg = (vgt_debug_reg13_reg & ~VGT_DEBUG_REG13_shift_amount_no_extract_MASK) | (shift_amount_no_extract << VGT_DEBUG_REG13_shift_amount_no_extract_SHIFT)
+#define VGT_DEBUG_REG13_SET_shift_amount_extract(vgt_debug_reg13_reg, shift_amount_extract) \
+ vgt_debug_reg13_reg = (vgt_debug_reg13_reg & ~VGT_DEBUG_REG13_shift_amount_extract_MASK) | (shift_amount_extract << VGT_DEBUG_REG13_shift_amount_extract_SHIFT)
+#define VGT_DEBUG_REG13_SET_di_prim_type_q(vgt_debug_reg13_reg, di_prim_type_q) \
+ vgt_debug_reg13_reg = (vgt_debug_reg13_reg & ~VGT_DEBUG_REG13_di_prim_type_q_MASK) | (di_prim_type_q << VGT_DEBUG_REG13_di_prim_type_q_SHIFT)
+#define VGT_DEBUG_REG13_SET_current_source_sel(vgt_debug_reg13_reg, current_source_sel) \
+ vgt_debug_reg13_reg = (vgt_debug_reg13_reg & ~VGT_DEBUG_REG13_current_source_sel_MASK) | (current_source_sel << VGT_DEBUG_REG13_current_source_sel_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg13_t {
+ unsigned int di_index_counter_q : VGT_DEBUG_REG13_di_index_counter_q_SIZE;
+ unsigned int shift_amount_no_extract : VGT_DEBUG_REG13_shift_amount_no_extract_SIZE;
+ unsigned int shift_amount_extract : VGT_DEBUG_REG13_shift_amount_extract_SIZE;
+ unsigned int di_prim_type_q : VGT_DEBUG_REG13_di_prim_type_q_SIZE;
+ unsigned int current_source_sel : VGT_DEBUG_REG13_current_source_sel_SIZE;
+ } vgt_debug_reg13_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg13_t {
+ unsigned int current_source_sel : VGT_DEBUG_REG13_current_source_sel_SIZE;
+ unsigned int di_prim_type_q : VGT_DEBUG_REG13_di_prim_type_q_SIZE;
+ unsigned int shift_amount_extract : VGT_DEBUG_REG13_shift_amount_extract_SIZE;
+ unsigned int shift_amount_no_extract : VGT_DEBUG_REG13_shift_amount_no_extract_SIZE;
+ unsigned int di_index_counter_q : VGT_DEBUG_REG13_di_index_counter_q_SIZE;
+ } vgt_debug_reg13_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_reg13_t f;
+} vgt_debug_reg13_u;
+
+
+/*
+ * VGT_DEBUG_REG14 struct
+ */
+
+#define VGT_DEBUG_REG14_current_source_sel_SIZE 2
+#define VGT_DEBUG_REG14_left_word_indx_q_SIZE 5
+#define VGT_DEBUG_REG14_input_data_cnt_SIZE 5
+#define VGT_DEBUG_REG14_input_data_lsw_SIZE 5
+#define VGT_DEBUG_REG14_input_data_msw_SIZE 5
+#define VGT_DEBUG_REG14_next_small_stride_shift_limit_q_SIZE 5
+#define VGT_DEBUG_REG14_current_small_stride_shift_limit_q_SIZE 5
+
+#define VGT_DEBUG_REG14_current_source_sel_SHIFT 0
+#define VGT_DEBUG_REG14_left_word_indx_q_SHIFT 2
+#define VGT_DEBUG_REG14_input_data_cnt_SHIFT 7
+#define VGT_DEBUG_REG14_input_data_lsw_SHIFT 12
+#define VGT_DEBUG_REG14_input_data_msw_SHIFT 17
+#define VGT_DEBUG_REG14_next_small_stride_shift_limit_q_SHIFT 22
+#define VGT_DEBUG_REG14_current_small_stride_shift_limit_q_SHIFT 27
+
+#define VGT_DEBUG_REG14_current_source_sel_MASK 0x00000003
+#define VGT_DEBUG_REG14_left_word_indx_q_MASK 0x0000007c
+#define VGT_DEBUG_REG14_input_data_cnt_MASK 0x00000f80
+#define VGT_DEBUG_REG14_input_data_lsw_MASK 0x0001f000
+#define VGT_DEBUG_REG14_input_data_msw_MASK 0x003e0000
+#define VGT_DEBUG_REG14_next_small_stride_shift_limit_q_MASK 0x07c00000
+#define VGT_DEBUG_REG14_current_small_stride_shift_limit_q_MASK 0xf8000000
+
+#define VGT_DEBUG_REG14_MASK \
+ (VGT_DEBUG_REG14_current_source_sel_MASK | \
+ VGT_DEBUG_REG14_left_word_indx_q_MASK | \
+ VGT_DEBUG_REG14_input_data_cnt_MASK | \
+ VGT_DEBUG_REG14_input_data_lsw_MASK | \
+ VGT_DEBUG_REG14_input_data_msw_MASK | \
+ VGT_DEBUG_REG14_next_small_stride_shift_limit_q_MASK | \
+ VGT_DEBUG_REG14_current_small_stride_shift_limit_q_MASK)
+
+#define VGT_DEBUG_REG14(current_source_sel, left_word_indx_q, input_data_cnt, input_data_lsw, input_data_msw, next_small_stride_shift_limit_q, current_small_stride_shift_limit_q) \
+ ((current_source_sel << VGT_DEBUG_REG14_current_source_sel_SHIFT) | \
+ (left_word_indx_q << VGT_DEBUG_REG14_left_word_indx_q_SHIFT) | \
+ (input_data_cnt << VGT_DEBUG_REG14_input_data_cnt_SHIFT) | \
+ (input_data_lsw << VGT_DEBUG_REG14_input_data_lsw_SHIFT) | \
+ (input_data_msw << VGT_DEBUG_REG14_input_data_msw_SHIFT) | \
+ (next_small_stride_shift_limit_q << VGT_DEBUG_REG14_next_small_stride_shift_limit_q_SHIFT) | \
+ (current_small_stride_shift_limit_q << VGT_DEBUG_REG14_current_small_stride_shift_limit_q_SHIFT))
+
+#define VGT_DEBUG_REG14_GET_current_source_sel(vgt_debug_reg14) \
+ ((vgt_debug_reg14 & VGT_DEBUG_REG14_current_source_sel_MASK) >> VGT_DEBUG_REG14_current_source_sel_SHIFT)
+#define VGT_DEBUG_REG14_GET_left_word_indx_q(vgt_debug_reg14) \
+ ((vgt_debug_reg14 & VGT_DEBUG_REG14_left_word_indx_q_MASK) >> VGT_DEBUG_REG14_left_word_indx_q_SHIFT)
+#define VGT_DEBUG_REG14_GET_input_data_cnt(vgt_debug_reg14) \
+ ((vgt_debug_reg14 & VGT_DEBUG_REG14_input_data_cnt_MASK) >> VGT_DEBUG_REG14_input_data_cnt_SHIFT)
+#define VGT_DEBUG_REG14_GET_input_data_lsw(vgt_debug_reg14) \
+ ((vgt_debug_reg14 & VGT_DEBUG_REG14_input_data_lsw_MASK) >> VGT_DEBUG_REG14_input_data_lsw_SHIFT)
+#define VGT_DEBUG_REG14_GET_input_data_msw(vgt_debug_reg14) \
+ ((vgt_debug_reg14 & VGT_DEBUG_REG14_input_data_msw_MASK) >> VGT_DEBUG_REG14_input_data_msw_SHIFT)
+#define VGT_DEBUG_REG14_GET_next_small_stride_shift_limit_q(vgt_debug_reg14) \
+ ((vgt_debug_reg14 & VGT_DEBUG_REG14_next_small_stride_shift_limit_q_MASK) >> VGT_DEBUG_REG14_next_small_stride_shift_limit_q_SHIFT)
+#define VGT_DEBUG_REG14_GET_current_small_stride_shift_limit_q(vgt_debug_reg14) \
+ ((vgt_debug_reg14 & VGT_DEBUG_REG14_current_small_stride_shift_limit_q_MASK) >> VGT_DEBUG_REG14_current_small_stride_shift_limit_q_SHIFT)
+
+#define VGT_DEBUG_REG14_SET_current_source_sel(vgt_debug_reg14_reg, current_source_sel) \
+ vgt_debug_reg14_reg = (vgt_debug_reg14_reg & ~VGT_DEBUG_REG14_current_source_sel_MASK) | (current_source_sel << VGT_DEBUG_REG14_current_source_sel_SHIFT)
+#define VGT_DEBUG_REG14_SET_left_word_indx_q(vgt_debug_reg14_reg, left_word_indx_q) \
+ vgt_debug_reg14_reg = (vgt_debug_reg14_reg & ~VGT_DEBUG_REG14_left_word_indx_q_MASK) | (left_word_indx_q << VGT_DEBUG_REG14_left_word_indx_q_SHIFT)
+#define VGT_DEBUG_REG14_SET_input_data_cnt(vgt_debug_reg14_reg, input_data_cnt) \
+ vgt_debug_reg14_reg = (vgt_debug_reg14_reg & ~VGT_DEBUG_REG14_input_data_cnt_MASK) | (input_data_cnt << VGT_DEBUG_REG14_input_data_cnt_SHIFT)
+#define VGT_DEBUG_REG14_SET_input_data_lsw(vgt_debug_reg14_reg, input_data_lsw) \
+ vgt_debug_reg14_reg = (vgt_debug_reg14_reg & ~VGT_DEBUG_REG14_input_data_lsw_MASK) | (input_data_lsw << VGT_DEBUG_REG14_input_data_lsw_SHIFT)
+#define VGT_DEBUG_REG14_SET_input_data_msw(vgt_debug_reg14_reg, input_data_msw) \
+ vgt_debug_reg14_reg = (vgt_debug_reg14_reg & ~VGT_DEBUG_REG14_input_data_msw_MASK) | (input_data_msw << VGT_DEBUG_REG14_input_data_msw_SHIFT)
+#define VGT_DEBUG_REG14_SET_next_small_stride_shift_limit_q(vgt_debug_reg14_reg, next_small_stride_shift_limit_q) \
+ vgt_debug_reg14_reg = (vgt_debug_reg14_reg & ~VGT_DEBUG_REG14_next_small_stride_shift_limit_q_MASK) | (next_small_stride_shift_limit_q << VGT_DEBUG_REG14_next_small_stride_shift_limit_q_SHIFT)
+#define VGT_DEBUG_REG14_SET_current_small_stride_shift_limit_q(vgt_debug_reg14_reg, current_small_stride_shift_limit_q) \
+ vgt_debug_reg14_reg = (vgt_debug_reg14_reg & ~VGT_DEBUG_REG14_current_small_stride_shift_limit_q_MASK) | (current_small_stride_shift_limit_q << VGT_DEBUG_REG14_current_small_stride_shift_limit_q_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg14_t {
+ unsigned int current_source_sel : VGT_DEBUG_REG14_current_source_sel_SIZE;
+ unsigned int left_word_indx_q : VGT_DEBUG_REG14_left_word_indx_q_SIZE;
+ unsigned int input_data_cnt : VGT_DEBUG_REG14_input_data_cnt_SIZE;
+ unsigned int input_data_lsw : VGT_DEBUG_REG14_input_data_lsw_SIZE;
+ unsigned int input_data_msw : VGT_DEBUG_REG14_input_data_msw_SIZE;
+ unsigned int next_small_stride_shift_limit_q : VGT_DEBUG_REG14_next_small_stride_shift_limit_q_SIZE;
+ unsigned int current_small_stride_shift_limit_q : VGT_DEBUG_REG14_current_small_stride_shift_limit_q_SIZE;
+ } vgt_debug_reg14_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg14_t {
+ unsigned int current_small_stride_shift_limit_q : VGT_DEBUG_REG14_current_small_stride_shift_limit_q_SIZE;
+ unsigned int next_small_stride_shift_limit_q : VGT_DEBUG_REG14_next_small_stride_shift_limit_q_SIZE;
+ unsigned int input_data_msw : VGT_DEBUG_REG14_input_data_msw_SIZE;
+ unsigned int input_data_lsw : VGT_DEBUG_REG14_input_data_lsw_SIZE;
+ unsigned int input_data_cnt : VGT_DEBUG_REG14_input_data_cnt_SIZE;
+ unsigned int left_word_indx_q : VGT_DEBUG_REG14_left_word_indx_q_SIZE;
+ unsigned int current_source_sel : VGT_DEBUG_REG14_current_source_sel_SIZE;
+ } vgt_debug_reg14_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_reg14_t f;
+} vgt_debug_reg14_u;
+
+
+/*
+ * VGT_DEBUG_REG15 struct
+ */
+
+#define VGT_DEBUG_REG15_next_stride_q_SIZE 5
+#define VGT_DEBUG_REG15_next_stride_d_SIZE 5
+#define VGT_DEBUG_REG15_current_shift_q_SIZE 5
+#define VGT_DEBUG_REG15_current_shift_d_SIZE 5
+#define VGT_DEBUG_REG15_current_stride_q_SIZE 5
+#define VGT_DEBUG_REG15_current_stride_d_SIZE 5
+#define VGT_DEBUG_REG15_bgrp_trigger_SIZE 1
+
+#define VGT_DEBUG_REG15_next_stride_q_SHIFT 0
+#define VGT_DEBUG_REG15_next_stride_d_SHIFT 5
+#define VGT_DEBUG_REG15_current_shift_q_SHIFT 10
+#define VGT_DEBUG_REG15_current_shift_d_SHIFT 15
+#define VGT_DEBUG_REG15_current_stride_q_SHIFT 20
+#define VGT_DEBUG_REG15_current_stride_d_SHIFT 25
+#define VGT_DEBUG_REG15_bgrp_trigger_SHIFT 30
+
+#define VGT_DEBUG_REG15_next_stride_q_MASK 0x0000001f
+#define VGT_DEBUG_REG15_next_stride_d_MASK 0x000003e0
+#define VGT_DEBUG_REG15_current_shift_q_MASK 0x00007c00
+#define VGT_DEBUG_REG15_current_shift_d_MASK 0x000f8000
+#define VGT_DEBUG_REG15_current_stride_q_MASK 0x01f00000
+#define VGT_DEBUG_REG15_current_stride_d_MASK 0x3e000000
+#define VGT_DEBUG_REG15_bgrp_trigger_MASK 0x40000000
+
+#define VGT_DEBUG_REG15_MASK \
+ (VGT_DEBUG_REG15_next_stride_q_MASK | \
+ VGT_DEBUG_REG15_next_stride_d_MASK | \
+ VGT_DEBUG_REG15_current_shift_q_MASK | \
+ VGT_DEBUG_REG15_current_shift_d_MASK | \
+ VGT_DEBUG_REG15_current_stride_q_MASK | \
+ VGT_DEBUG_REG15_current_stride_d_MASK | \
+ VGT_DEBUG_REG15_bgrp_trigger_MASK)
+
+#define VGT_DEBUG_REG15(next_stride_q, next_stride_d, current_shift_q, current_shift_d, current_stride_q, current_stride_d, bgrp_trigger) \
+ ((next_stride_q << VGT_DEBUG_REG15_next_stride_q_SHIFT) | \
+ (next_stride_d << VGT_DEBUG_REG15_next_stride_d_SHIFT) | \
+ (current_shift_q << VGT_DEBUG_REG15_current_shift_q_SHIFT) | \
+ (current_shift_d << VGT_DEBUG_REG15_current_shift_d_SHIFT) | \
+ (current_stride_q << VGT_DEBUG_REG15_current_stride_q_SHIFT) | \
+ (current_stride_d << VGT_DEBUG_REG15_current_stride_d_SHIFT) | \
+ (bgrp_trigger << VGT_DEBUG_REG15_bgrp_trigger_SHIFT))
+
+#define VGT_DEBUG_REG15_GET_next_stride_q(vgt_debug_reg15) \
+ ((vgt_debug_reg15 & VGT_DEBUG_REG15_next_stride_q_MASK) >> VGT_DEBUG_REG15_next_stride_q_SHIFT)
+#define VGT_DEBUG_REG15_GET_next_stride_d(vgt_debug_reg15) \
+ ((vgt_debug_reg15 & VGT_DEBUG_REG15_next_stride_d_MASK) >> VGT_DEBUG_REG15_next_stride_d_SHIFT)
+#define VGT_DEBUG_REG15_GET_current_shift_q(vgt_debug_reg15) \
+ ((vgt_debug_reg15 & VGT_DEBUG_REG15_current_shift_q_MASK) >> VGT_DEBUG_REG15_current_shift_q_SHIFT)
+#define VGT_DEBUG_REG15_GET_current_shift_d(vgt_debug_reg15) \
+ ((vgt_debug_reg15 & VGT_DEBUG_REG15_current_shift_d_MASK) >> VGT_DEBUG_REG15_current_shift_d_SHIFT)
+#define VGT_DEBUG_REG15_GET_current_stride_q(vgt_debug_reg15) \
+ ((vgt_debug_reg15 & VGT_DEBUG_REG15_current_stride_q_MASK) >> VGT_DEBUG_REG15_current_stride_q_SHIFT)
+#define VGT_DEBUG_REG15_GET_current_stride_d(vgt_debug_reg15) \
+ ((vgt_debug_reg15 & VGT_DEBUG_REG15_current_stride_d_MASK) >> VGT_DEBUG_REG15_current_stride_d_SHIFT)
+#define VGT_DEBUG_REG15_GET_bgrp_trigger(vgt_debug_reg15) \
+ ((vgt_debug_reg15 & VGT_DEBUG_REG15_bgrp_trigger_MASK) >> VGT_DEBUG_REG15_bgrp_trigger_SHIFT)
+
+#define VGT_DEBUG_REG15_SET_next_stride_q(vgt_debug_reg15_reg, next_stride_q) \
+ vgt_debug_reg15_reg = (vgt_debug_reg15_reg & ~VGT_DEBUG_REG15_next_stride_q_MASK) | (next_stride_q << VGT_DEBUG_REG15_next_stride_q_SHIFT)
+#define VGT_DEBUG_REG15_SET_next_stride_d(vgt_debug_reg15_reg, next_stride_d) \
+ vgt_debug_reg15_reg = (vgt_debug_reg15_reg & ~VGT_DEBUG_REG15_next_stride_d_MASK) | (next_stride_d << VGT_DEBUG_REG15_next_stride_d_SHIFT)
+#define VGT_DEBUG_REG15_SET_current_shift_q(vgt_debug_reg15_reg, current_shift_q) \
+ vgt_debug_reg15_reg = (vgt_debug_reg15_reg & ~VGT_DEBUG_REG15_current_shift_q_MASK) | (current_shift_q << VGT_DEBUG_REG15_current_shift_q_SHIFT)
+#define VGT_DEBUG_REG15_SET_current_shift_d(vgt_debug_reg15_reg, current_shift_d) \
+ vgt_debug_reg15_reg = (vgt_debug_reg15_reg & ~VGT_DEBUG_REG15_current_shift_d_MASK) | (current_shift_d << VGT_DEBUG_REG15_current_shift_d_SHIFT)
+#define VGT_DEBUG_REG15_SET_current_stride_q(vgt_debug_reg15_reg, current_stride_q) \
+ vgt_debug_reg15_reg = (vgt_debug_reg15_reg & ~VGT_DEBUG_REG15_current_stride_q_MASK) | (current_stride_q << VGT_DEBUG_REG15_current_stride_q_SHIFT)
+#define VGT_DEBUG_REG15_SET_current_stride_d(vgt_debug_reg15_reg, current_stride_d) \
+ vgt_debug_reg15_reg = (vgt_debug_reg15_reg & ~VGT_DEBUG_REG15_current_stride_d_MASK) | (current_stride_d << VGT_DEBUG_REG15_current_stride_d_SHIFT)
+#define VGT_DEBUG_REG15_SET_bgrp_trigger(vgt_debug_reg15_reg, bgrp_trigger) \
+ vgt_debug_reg15_reg = (vgt_debug_reg15_reg & ~VGT_DEBUG_REG15_bgrp_trigger_MASK) | (bgrp_trigger << VGT_DEBUG_REG15_bgrp_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg15_t {
+ unsigned int next_stride_q : VGT_DEBUG_REG15_next_stride_q_SIZE;
+ unsigned int next_stride_d : VGT_DEBUG_REG15_next_stride_d_SIZE;
+ unsigned int current_shift_q : VGT_DEBUG_REG15_current_shift_q_SIZE;
+ unsigned int current_shift_d : VGT_DEBUG_REG15_current_shift_d_SIZE;
+ unsigned int current_stride_q : VGT_DEBUG_REG15_current_stride_q_SIZE;
+ unsigned int current_stride_d : VGT_DEBUG_REG15_current_stride_d_SIZE;
+ unsigned int bgrp_trigger : VGT_DEBUG_REG15_bgrp_trigger_SIZE;
+ unsigned int : 1;
+ } vgt_debug_reg15_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg15_t {
+ unsigned int : 1;
+ unsigned int bgrp_trigger : VGT_DEBUG_REG15_bgrp_trigger_SIZE;
+ unsigned int current_stride_d : VGT_DEBUG_REG15_current_stride_d_SIZE;
+ unsigned int current_stride_q : VGT_DEBUG_REG15_current_stride_q_SIZE;
+ unsigned int current_shift_d : VGT_DEBUG_REG15_current_shift_d_SIZE;
+ unsigned int current_shift_q : VGT_DEBUG_REG15_current_shift_q_SIZE;
+ unsigned int next_stride_d : VGT_DEBUG_REG15_next_stride_d_SIZE;
+ unsigned int next_stride_q : VGT_DEBUG_REG15_next_stride_q_SIZE;
+ } vgt_debug_reg15_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_reg15_t f;
+} vgt_debug_reg15_u;
+
+
+/*
+ * VGT_DEBUG_REG16 struct
+ */
+
+#define VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_full_SIZE 1
+#define VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_empty_SIZE 1
+#define VGT_DEBUG_REG16_dma_bgrp_cull_fetch_read_SIZE 1
+#define VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_we_SIZE 1
+#define VGT_DEBUG_REG16_bgrp_byte_mask_fifo_full_SIZE 1
+#define VGT_DEBUG_REG16_bgrp_byte_mask_fifo_empty_SIZE 1
+#define VGT_DEBUG_REG16_bgrp_byte_mask_fifo_re_q_SIZE 1
+#define VGT_DEBUG_REG16_bgrp_byte_mask_fifo_we_SIZE 1
+#define VGT_DEBUG_REG16_bgrp_dma_mask_kill_SIZE 1
+#define VGT_DEBUG_REG16_bgrp_grp_bin_valid_SIZE 1
+#define VGT_DEBUG_REG16_rst_last_bit_SIZE 1
+#define VGT_DEBUG_REG16_current_state_q_SIZE 1
+#define VGT_DEBUG_REG16_old_state_q_SIZE 1
+#define VGT_DEBUG_REG16_old_state_en_SIZE 1
+#define VGT_DEBUG_REG16_prev_last_bit_q_SIZE 1
+#define VGT_DEBUG_REG16_dbl_last_bit_q_SIZE 1
+#define VGT_DEBUG_REG16_last_bit_block_q_SIZE 1
+#define VGT_DEBUG_REG16_ast_bit_block2_q_SIZE 1
+#define VGT_DEBUG_REG16_load_empty_reg_SIZE 1
+#define VGT_DEBUG_REG16_bgrp_grp_byte_mask_rdata_SIZE 8
+#define VGT_DEBUG_REG16_dma_bgrp_dma_data_fifo_rptr_SIZE 2
+#define VGT_DEBUG_REG16_top_di_pre_fetch_cull_enable_SIZE 1
+#define VGT_DEBUG_REG16_top_di_grp_cull_enable_q_SIZE 1
+#define VGT_DEBUG_REG16_bgrp_trigger_SIZE 1
+
+#define VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_full_SHIFT 0
+#define VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_empty_SHIFT 1
+#define VGT_DEBUG_REG16_dma_bgrp_cull_fetch_read_SHIFT 2
+#define VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_we_SHIFT 3
+#define VGT_DEBUG_REG16_bgrp_byte_mask_fifo_full_SHIFT 4
+#define VGT_DEBUG_REG16_bgrp_byte_mask_fifo_empty_SHIFT 5
+#define VGT_DEBUG_REG16_bgrp_byte_mask_fifo_re_q_SHIFT 6
+#define VGT_DEBUG_REG16_bgrp_byte_mask_fifo_we_SHIFT 7
+#define VGT_DEBUG_REG16_bgrp_dma_mask_kill_SHIFT 8
+#define VGT_DEBUG_REG16_bgrp_grp_bin_valid_SHIFT 9
+#define VGT_DEBUG_REG16_rst_last_bit_SHIFT 10
+#define VGT_DEBUG_REG16_current_state_q_SHIFT 11
+#define VGT_DEBUG_REG16_old_state_q_SHIFT 12
+#define VGT_DEBUG_REG16_old_state_en_SHIFT 13
+#define VGT_DEBUG_REG16_prev_last_bit_q_SHIFT 14
+#define VGT_DEBUG_REG16_dbl_last_bit_q_SHIFT 15
+#define VGT_DEBUG_REG16_last_bit_block_q_SHIFT 16
+#define VGT_DEBUG_REG16_ast_bit_block2_q_SHIFT 17
+#define VGT_DEBUG_REG16_load_empty_reg_SHIFT 18
+#define VGT_DEBUG_REG16_bgrp_grp_byte_mask_rdata_SHIFT 19
+#define VGT_DEBUG_REG16_dma_bgrp_dma_data_fifo_rptr_SHIFT 27
+#define VGT_DEBUG_REG16_top_di_pre_fetch_cull_enable_SHIFT 29
+#define VGT_DEBUG_REG16_top_di_grp_cull_enable_q_SHIFT 30
+#define VGT_DEBUG_REG16_bgrp_trigger_SHIFT 31
+
+#define VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_full_MASK 0x00000001
+#define VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_empty_MASK 0x00000002
+#define VGT_DEBUG_REG16_dma_bgrp_cull_fetch_read_MASK 0x00000004
+#define VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_we_MASK 0x00000008
+#define VGT_DEBUG_REG16_bgrp_byte_mask_fifo_full_MASK 0x00000010
+#define VGT_DEBUG_REG16_bgrp_byte_mask_fifo_empty_MASK 0x00000020
+#define VGT_DEBUG_REG16_bgrp_byte_mask_fifo_re_q_MASK 0x00000040
+#define VGT_DEBUG_REG16_bgrp_byte_mask_fifo_we_MASK 0x00000080
+#define VGT_DEBUG_REG16_bgrp_dma_mask_kill_MASK 0x00000100
+#define VGT_DEBUG_REG16_bgrp_grp_bin_valid_MASK 0x00000200
+#define VGT_DEBUG_REG16_rst_last_bit_MASK 0x00000400
+#define VGT_DEBUG_REG16_current_state_q_MASK 0x00000800
+#define VGT_DEBUG_REG16_old_state_q_MASK 0x00001000
+#define VGT_DEBUG_REG16_old_state_en_MASK 0x00002000
+#define VGT_DEBUG_REG16_prev_last_bit_q_MASK 0x00004000
+#define VGT_DEBUG_REG16_dbl_last_bit_q_MASK 0x00008000
+#define VGT_DEBUG_REG16_last_bit_block_q_MASK 0x00010000
+#define VGT_DEBUG_REG16_ast_bit_block2_q_MASK 0x00020000
+#define VGT_DEBUG_REG16_load_empty_reg_MASK 0x00040000
+#define VGT_DEBUG_REG16_bgrp_grp_byte_mask_rdata_MASK 0x07f80000
+#define VGT_DEBUG_REG16_dma_bgrp_dma_data_fifo_rptr_MASK 0x18000000
+#define VGT_DEBUG_REG16_top_di_pre_fetch_cull_enable_MASK 0x20000000
+#define VGT_DEBUG_REG16_top_di_grp_cull_enable_q_MASK 0x40000000
+#define VGT_DEBUG_REG16_bgrp_trigger_MASK 0x80000000
+
+#define VGT_DEBUG_REG16_MASK \
+ (VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_full_MASK | \
+ VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_empty_MASK | \
+ VGT_DEBUG_REG16_dma_bgrp_cull_fetch_read_MASK | \
+ VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_we_MASK | \
+ VGT_DEBUG_REG16_bgrp_byte_mask_fifo_full_MASK | \
+ VGT_DEBUG_REG16_bgrp_byte_mask_fifo_empty_MASK | \
+ VGT_DEBUG_REG16_bgrp_byte_mask_fifo_re_q_MASK | \
+ VGT_DEBUG_REG16_bgrp_byte_mask_fifo_we_MASK | \
+ VGT_DEBUG_REG16_bgrp_dma_mask_kill_MASK | \
+ VGT_DEBUG_REG16_bgrp_grp_bin_valid_MASK | \
+ VGT_DEBUG_REG16_rst_last_bit_MASK | \
+ VGT_DEBUG_REG16_current_state_q_MASK | \
+ VGT_DEBUG_REG16_old_state_q_MASK | \
+ VGT_DEBUG_REG16_old_state_en_MASK | \
+ VGT_DEBUG_REG16_prev_last_bit_q_MASK | \
+ VGT_DEBUG_REG16_dbl_last_bit_q_MASK | \
+ VGT_DEBUG_REG16_last_bit_block_q_MASK | \
+ VGT_DEBUG_REG16_ast_bit_block2_q_MASK | \
+ VGT_DEBUG_REG16_load_empty_reg_MASK | \
+ VGT_DEBUG_REG16_bgrp_grp_byte_mask_rdata_MASK | \
+ VGT_DEBUG_REG16_dma_bgrp_dma_data_fifo_rptr_MASK | \
+ VGT_DEBUG_REG16_top_di_pre_fetch_cull_enable_MASK | \
+ VGT_DEBUG_REG16_top_di_grp_cull_enable_q_MASK | \
+ VGT_DEBUG_REG16_bgrp_trigger_MASK)
+
+#define VGT_DEBUG_REG16(bgrp_cull_fetch_fifo_full, bgrp_cull_fetch_fifo_empty, dma_bgrp_cull_fetch_read, bgrp_cull_fetch_fifo_we, bgrp_byte_mask_fifo_full, bgrp_byte_mask_fifo_empty, bgrp_byte_mask_fifo_re_q, bgrp_byte_mask_fifo_we, bgrp_dma_mask_kill, bgrp_grp_bin_valid, rst_last_bit, current_state_q, old_state_q, old_state_en, prev_last_bit_q, dbl_last_bit_q, last_bit_block_q, ast_bit_block2_q, load_empty_reg, bgrp_grp_byte_mask_rdata, dma_bgrp_dma_data_fifo_rptr, top_di_pre_fetch_cull_enable, top_di_grp_cull_enable_q, bgrp_trigger) \
+ ((bgrp_cull_fetch_fifo_full << VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_full_SHIFT) | \
+ (bgrp_cull_fetch_fifo_empty << VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_empty_SHIFT) | \
+ (dma_bgrp_cull_fetch_read << VGT_DEBUG_REG16_dma_bgrp_cull_fetch_read_SHIFT) | \
+ (bgrp_cull_fetch_fifo_we << VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_we_SHIFT) | \
+ (bgrp_byte_mask_fifo_full << VGT_DEBUG_REG16_bgrp_byte_mask_fifo_full_SHIFT) | \
+ (bgrp_byte_mask_fifo_empty << VGT_DEBUG_REG16_bgrp_byte_mask_fifo_empty_SHIFT) | \
+ (bgrp_byte_mask_fifo_re_q << VGT_DEBUG_REG16_bgrp_byte_mask_fifo_re_q_SHIFT) | \
+ (bgrp_byte_mask_fifo_we << VGT_DEBUG_REG16_bgrp_byte_mask_fifo_we_SHIFT) | \
+ (bgrp_dma_mask_kill << VGT_DEBUG_REG16_bgrp_dma_mask_kill_SHIFT) | \
+ (bgrp_grp_bin_valid << VGT_DEBUG_REG16_bgrp_grp_bin_valid_SHIFT) | \
+ (rst_last_bit << VGT_DEBUG_REG16_rst_last_bit_SHIFT) | \
+ (current_state_q << VGT_DEBUG_REG16_current_state_q_SHIFT) | \
+ (old_state_q << VGT_DEBUG_REG16_old_state_q_SHIFT) | \
+ (old_state_en << VGT_DEBUG_REG16_old_state_en_SHIFT) | \
+ (prev_last_bit_q << VGT_DEBUG_REG16_prev_last_bit_q_SHIFT) | \
+ (dbl_last_bit_q << VGT_DEBUG_REG16_dbl_last_bit_q_SHIFT) | \
+ (last_bit_block_q << VGT_DEBUG_REG16_last_bit_block_q_SHIFT) | \
+ (ast_bit_block2_q << VGT_DEBUG_REG16_ast_bit_block2_q_SHIFT) | \
+ (load_empty_reg << VGT_DEBUG_REG16_load_empty_reg_SHIFT) | \
+ (bgrp_grp_byte_mask_rdata << VGT_DEBUG_REG16_bgrp_grp_byte_mask_rdata_SHIFT) | \
+ (dma_bgrp_dma_data_fifo_rptr << VGT_DEBUG_REG16_dma_bgrp_dma_data_fifo_rptr_SHIFT) | \
+ (top_di_pre_fetch_cull_enable << VGT_DEBUG_REG16_top_di_pre_fetch_cull_enable_SHIFT) | \
+ (top_di_grp_cull_enable_q << VGT_DEBUG_REG16_top_di_grp_cull_enable_q_SHIFT) | \
+ (bgrp_trigger << VGT_DEBUG_REG16_bgrp_trigger_SHIFT))
+
+#define VGT_DEBUG_REG16_GET_bgrp_cull_fetch_fifo_full(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_full_MASK) >> VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_full_SHIFT)
+#define VGT_DEBUG_REG16_GET_bgrp_cull_fetch_fifo_empty(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_empty_MASK) >> VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_empty_SHIFT)
+#define VGT_DEBUG_REG16_GET_dma_bgrp_cull_fetch_read(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_dma_bgrp_cull_fetch_read_MASK) >> VGT_DEBUG_REG16_dma_bgrp_cull_fetch_read_SHIFT)
+#define VGT_DEBUG_REG16_GET_bgrp_cull_fetch_fifo_we(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_we_MASK) >> VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_we_SHIFT)
+#define VGT_DEBUG_REG16_GET_bgrp_byte_mask_fifo_full(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_bgrp_byte_mask_fifo_full_MASK) >> VGT_DEBUG_REG16_bgrp_byte_mask_fifo_full_SHIFT)
+#define VGT_DEBUG_REG16_GET_bgrp_byte_mask_fifo_empty(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_bgrp_byte_mask_fifo_empty_MASK) >> VGT_DEBUG_REG16_bgrp_byte_mask_fifo_empty_SHIFT)
+#define VGT_DEBUG_REG16_GET_bgrp_byte_mask_fifo_re_q(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_bgrp_byte_mask_fifo_re_q_MASK) >> VGT_DEBUG_REG16_bgrp_byte_mask_fifo_re_q_SHIFT)
+#define VGT_DEBUG_REG16_GET_bgrp_byte_mask_fifo_we(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_bgrp_byte_mask_fifo_we_MASK) >> VGT_DEBUG_REG16_bgrp_byte_mask_fifo_we_SHIFT)
+#define VGT_DEBUG_REG16_GET_bgrp_dma_mask_kill(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_bgrp_dma_mask_kill_MASK) >> VGT_DEBUG_REG16_bgrp_dma_mask_kill_SHIFT)
+#define VGT_DEBUG_REG16_GET_bgrp_grp_bin_valid(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_bgrp_grp_bin_valid_MASK) >> VGT_DEBUG_REG16_bgrp_grp_bin_valid_SHIFT)
+#define VGT_DEBUG_REG16_GET_rst_last_bit(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_rst_last_bit_MASK) >> VGT_DEBUG_REG16_rst_last_bit_SHIFT)
+#define VGT_DEBUG_REG16_GET_current_state_q(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_current_state_q_MASK) >> VGT_DEBUG_REG16_current_state_q_SHIFT)
+#define VGT_DEBUG_REG16_GET_old_state_q(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_old_state_q_MASK) >> VGT_DEBUG_REG16_old_state_q_SHIFT)
+#define VGT_DEBUG_REG16_GET_old_state_en(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_old_state_en_MASK) >> VGT_DEBUG_REG16_old_state_en_SHIFT)
+#define VGT_DEBUG_REG16_GET_prev_last_bit_q(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_prev_last_bit_q_MASK) >> VGT_DEBUG_REG16_prev_last_bit_q_SHIFT)
+#define VGT_DEBUG_REG16_GET_dbl_last_bit_q(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_dbl_last_bit_q_MASK) >> VGT_DEBUG_REG16_dbl_last_bit_q_SHIFT)
+#define VGT_DEBUG_REG16_GET_last_bit_block_q(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_last_bit_block_q_MASK) >> VGT_DEBUG_REG16_last_bit_block_q_SHIFT)
+#define VGT_DEBUG_REG16_GET_ast_bit_block2_q(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_ast_bit_block2_q_MASK) >> VGT_DEBUG_REG16_ast_bit_block2_q_SHIFT)
+#define VGT_DEBUG_REG16_GET_load_empty_reg(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_load_empty_reg_MASK) >> VGT_DEBUG_REG16_load_empty_reg_SHIFT)
+#define VGT_DEBUG_REG16_GET_bgrp_grp_byte_mask_rdata(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_bgrp_grp_byte_mask_rdata_MASK) >> VGT_DEBUG_REG16_bgrp_grp_byte_mask_rdata_SHIFT)
+#define VGT_DEBUG_REG16_GET_dma_bgrp_dma_data_fifo_rptr(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_dma_bgrp_dma_data_fifo_rptr_MASK) >> VGT_DEBUG_REG16_dma_bgrp_dma_data_fifo_rptr_SHIFT)
+#define VGT_DEBUG_REG16_GET_top_di_pre_fetch_cull_enable(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_top_di_pre_fetch_cull_enable_MASK) >> VGT_DEBUG_REG16_top_di_pre_fetch_cull_enable_SHIFT)
+#define VGT_DEBUG_REG16_GET_top_di_grp_cull_enable_q(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_top_di_grp_cull_enable_q_MASK) >> VGT_DEBUG_REG16_top_di_grp_cull_enable_q_SHIFT)
+#define VGT_DEBUG_REG16_GET_bgrp_trigger(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_bgrp_trigger_MASK) >> VGT_DEBUG_REG16_bgrp_trigger_SHIFT)
+
+#define VGT_DEBUG_REG16_SET_bgrp_cull_fetch_fifo_full(vgt_debug_reg16_reg, bgrp_cull_fetch_fifo_full) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_full_MASK) | (bgrp_cull_fetch_fifo_full << VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_full_SHIFT)
+#define VGT_DEBUG_REG16_SET_bgrp_cull_fetch_fifo_empty(vgt_debug_reg16_reg, bgrp_cull_fetch_fifo_empty) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_empty_MASK) | (bgrp_cull_fetch_fifo_empty << VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_empty_SHIFT)
+#define VGT_DEBUG_REG16_SET_dma_bgrp_cull_fetch_read(vgt_debug_reg16_reg, dma_bgrp_cull_fetch_read) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_dma_bgrp_cull_fetch_read_MASK) | (dma_bgrp_cull_fetch_read << VGT_DEBUG_REG16_dma_bgrp_cull_fetch_read_SHIFT)
+#define VGT_DEBUG_REG16_SET_bgrp_cull_fetch_fifo_we(vgt_debug_reg16_reg, bgrp_cull_fetch_fifo_we) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_we_MASK) | (bgrp_cull_fetch_fifo_we << VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_we_SHIFT)
+#define VGT_DEBUG_REG16_SET_bgrp_byte_mask_fifo_full(vgt_debug_reg16_reg, bgrp_byte_mask_fifo_full) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_bgrp_byte_mask_fifo_full_MASK) | (bgrp_byte_mask_fifo_full << VGT_DEBUG_REG16_bgrp_byte_mask_fifo_full_SHIFT)
+#define VGT_DEBUG_REG16_SET_bgrp_byte_mask_fifo_empty(vgt_debug_reg16_reg, bgrp_byte_mask_fifo_empty) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_bgrp_byte_mask_fifo_empty_MASK) | (bgrp_byte_mask_fifo_empty << VGT_DEBUG_REG16_bgrp_byte_mask_fifo_empty_SHIFT)
+#define VGT_DEBUG_REG16_SET_bgrp_byte_mask_fifo_re_q(vgt_debug_reg16_reg, bgrp_byte_mask_fifo_re_q) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_bgrp_byte_mask_fifo_re_q_MASK) | (bgrp_byte_mask_fifo_re_q << VGT_DEBUG_REG16_bgrp_byte_mask_fifo_re_q_SHIFT)
+#define VGT_DEBUG_REG16_SET_bgrp_byte_mask_fifo_we(vgt_debug_reg16_reg, bgrp_byte_mask_fifo_we) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_bgrp_byte_mask_fifo_we_MASK) | (bgrp_byte_mask_fifo_we << VGT_DEBUG_REG16_bgrp_byte_mask_fifo_we_SHIFT)
+#define VGT_DEBUG_REG16_SET_bgrp_dma_mask_kill(vgt_debug_reg16_reg, bgrp_dma_mask_kill) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_bgrp_dma_mask_kill_MASK) | (bgrp_dma_mask_kill << VGT_DEBUG_REG16_bgrp_dma_mask_kill_SHIFT)
+#define VGT_DEBUG_REG16_SET_bgrp_grp_bin_valid(vgt_debug_reg16_reg, bgrp_grp_bin_valid) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_bgrp_grp_bin_valid_MASK) | (bgrp_grp_bin_valid << VGT_DEBUG_REG16_bgrp_grp_bin_valid_SHIFT)
+#define VGT_DEBUG_REG16_SET_rst_last_bit(vgt_debug_reg16_reg, rst_last_bit) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_rst_last_bit_MASK) | (rst_last_bit << VGT_DEBUG_REG16_rst_last_bit_SHIFT)
+#define VGT_DEBUG_REG16_SET_current_state_q(vgt_debug_reg16_reg, current_state_q) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_current_state_q_MASK) | (current_state_q << VGT_DEBUG_REG16_current_state_q_SHIFT)
+#define VGT_DEBUG_REG16_SET_old_state_q(vgt_debug_reg16_reg, old_state_q) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_old_state_q_MASK) | (old_state_q << VGT_DEBUG_REG16_old_state_q_SHIFT)
+#define VGT_DEBUG_REG16_SET_old_state_en(vgt_debug_reg16_reg, old_state_en) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_old_state_en_MASK) | (old_state_en << VGT_DEBUG_REG16_old_state_en_SHIFT)
+#define VGT_DEBUG_REG16_SET_prev_last_bit_q(vgt_debug_reg16_reg, prev_last_bit_q) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_prev_last_bit_q_MASK) | (prev_last_bit_q << VGT_DEBUG_REG16_prev_last_bit_q_SHIFT)
+#define VGT_DEBUG_REG16_SET_dbl_last_bit_q(vgt_debug_reg16_reg, dbl_last_bit_q) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_dbl_last_bit_q_MASK) | (dbl_last_bit_q << VGT_DEBUG_REG16_dbl_last_bit_q_SHIFT)
+#define VGT_DEBUG_REG16_SET_last_bit_block_q(vgt_debug_reg16_reg, last_bit_block_q) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_last_bit_block_q_MASK) | (last_bit_block_q << VGT_DEBUG_REG16_last_bit_block_q_SHIFT)
+#define VGT_DEBUG_REG16_SET_ast_bit_block2_q(vgt_debug_reg16_reg, ast_bit_block2_q) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_ast_bit_block2_q_MASK) | (ast_bit_block2_q << VGT_DEBUG_REG16_ast_bit_block2_q_SHIFT)
+#define VGT_DEBUG_REG16_SET_load_empty_reg(vgt_debug_reg16_reg, load_empty_reg) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_load_empty_reg_MASK) | (load_empty_reg << VGT_DEBUG_REG16_load_empty_reg_SHIFT)
+#define VGT_DEBUG_REG16_SET_bgrp_grp_byte_mask_rdata(vgt_debug_reg16_reg, bgrp_grp_byte_mask_rdata) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_bgrp_grp_byte_mask_rdata_MASK) | (bgrp_grp_byte_mask_rdata << VGT_DEBUG_REG16_bgrp_grp_byte_mask_rdata_SHIFT)
+#define VGT_DEBUG_REG16_SET_dma_bgrp_dma_data_fifo_rptr(vgt_debug_reg16_reg, dma_bgrp_dma_data_fifo_rptr) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_dma_bgrp_dma_data_fifo_rptr_MASK) | (dma_bgrp_dma_data_fifo_rptr << VGT_DEBUG_REG16_dma_bgrp_dma_data_fifo_rptr_SHIFT)
+#define VGT_DEBUG_REG16_SET_top_di_pre_fetch_cull_enable(vgt_debug_reg16_reg, top_di_pre_fetch_cull_enable) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_top_di_pre_fetch_cull_enable_MASK) | (top_di_pre_fetch_cull_enable << VGT_DEBUG_REG16_top_di_pre_fetch_cull_enable_SHIFT)
+#define VGT_DEBUG_REG16_SET_top_di_grp_cull_enable_q(vgt_debug_reg16_reg, top_di_grp_cull_enable_q) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_top_di_grp_cull_enable_q_MASK) | (top_di_grp_cull_enable_q << VGT_DEBUG_REG16_top_di_grp_cull_enable_q_SHIFT)
+#define VGT_DEBUG_REG16_SET_bgrp_trigger(vgt_debug_reg16_reg, bgrp_trigger) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_bgrp_trigger_MASK) | (bgrp_trigger << VGT_DEBUG_REG16_bgrp_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg16_t {
+ unsigned int bgrp_cull_fetch_fifo_full : VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_full_SIZE;
+ unsigned int bgrp_cull_fetch_fifo_empty : VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_empty_SIZE;
+ unsigned int dma_bgrp_cull_fetch_read : VGT_DEBUG_REG16_dma_bgrp_cull_fetch_read_SIZE;
+ unsigned int bgrp_cull_fetch_fifo_we : VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_we_SIZE;
+ unsigned int bgrp_byte_mask_fifo_full : VGT_DEBUG_REG16_bgrp_byte_mask_fifo_full_SIZE;
+ unsigned int bgrp_byte_mask_fifo_empty : VGT_DEBUG_REG16_bgrp_byte_mask_fifo_empty_SIZE;
+ unsigned int bgrp_byte_mask_fifo_re_q : VGT_DEBUG_REG16_bgrp_byte_mask_fifo_re_q_SIZE;
+ unsigned int bgrp_byte_mask_fifo_we : VGT_DEBUG_REG16_bgrp_byte_mask_fifo_we_SIZE;
+ unsigned int bgrp_dma_mask_kill : VGT_DEBUG_REG16_bgrp_dma_mask_kill_SIZE;
+ unsigned int bgrp_grp_bin_valid : VGT_DEBUG_REG16_bgrp_grp_bin_valid_SIZE;
+ unsigned int rst_last_bit : VGT_DEBUG_REG16_rst_last_bit_SIZE;
+ unsigned int current_state_q : VGT_DEBUG_REG16_current_state_q_SIZE;
+ unsigned int old_state_q : VGT_DEBUG_REG16_old_state_q_SIZE;
+ unsigned int old_state_en : VGT_DEBUG_REG16_old_state_en_SIZE;
+ unsigned int prev_last_bit_q : VGT_DEBUG_REG16_prev_last_bit_q_SIZE;
+ unsigned int dbl_last_bit_q : VGT_DEBUG_REG16_dbl_last_bit_q_SIZE;
+ unsigned int last_bit_block_q : VGT_DEBUG_REG16_last_bit_block_q_SIZE;
+ unsigned int ast_bit_block2_q : VGT_DEBUG_REG16_ast_bit_block2_q_SIZE;
+ unsigned int load_empty_reg : VGT_DEBUG_REG16_load_empty_reg_SIZE;
+ unsigned int bgrp_grp_byte_mask_rdata : VGT_DEBUG_REG16_bgrp_grp_byte_mask_rdata_SIZE;
+ unsigned int dma_bgrp_dma_data_fifo_rptr : VGT_DEBUG_REG16_dma_bgrp_dma_data_fifo_rptr_SIZE;
+ unsigned int top_di_pre_fetch_cull_enable : VGT_DEBUG_REG16_top_di_pre_fetch_cull_enable_SIZE;
+ unsigned int top_di_grp_cull_enable_q : VGT_DEBUG_REG16_top_di_grp_cull_enable_q_SIZE;
+ unsigned int bgrp_trigger : VGT_DEBUG_REG16_bgrp_trigger_SIZE;
+ } vgt_debug_reg16_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg16_t {
+ unsigned int bgrp_trigger : VGT_DEBUG_REG16_bgrp_trigger_SIZE;
+ unsigned int top_di_grp_cull_enable_q : VGT_DEBUG_REG16_top_di_grp_cull_enable_q_SIZE;
+ unsigned int top_di_pre_fetch_cull_enable : VGT_DEBUG_REG16_top_di_pre_fetch_cull_enable_SIZE;
+ unsigned int dma_bgrp_dma_data_fifo_rptr : VGT_DEBUG_REG16_dma_bgrp_dma_data_fifo_rptr_SIZE;
+ unsigned int bgrp_grp_byte_mask_rdata : VGT_DEBUG_REG16_bgrp_grp_byte_mask_rdata_SIZE;
+ unsigned int load_empty_reg : VGT_DEBUG_REG16_load_empty_reg_SIZE;
+ unsigned int ast_bit_block2_q : VGT_DEBUG_REG16_ast_bit_block2_q_SIZE;
+ unsigned int last_bit_block_q : VGT_DEBUG_REG16_last_bit_block_q_SIZE;
+ unsigned int dbl_last_bit_q : VGT_DEBUG_REG16_dbl_last_bit_q_SIZE;
+ unsigned int prev_last_bit_q : VGT_DEBUG_REG16_prev_last_bit_q_SIZE;
+ unsigned int old_state_en : VGT_DEBUG_REG16_old_state_en_SIZE;
+ unsigned int old_state_q : VGT_DEBUG_REG16_old_state_q_SIZE;
+ unsigned int current_state_q : VGT_DEBUG_REG16_current_state_q_SIZE;
+ unsigned int rst_last_bit : VGT_DEBUG_REG16_rst_last_bit_SIZE;
+ unsigned int bgrp_grp_bin_valid : VGT_DEBUG_REG16_bgrp_grp_bin_valid_SIZE;
+ unsigned int bgrp_dma_mask_kill : VGT_DEBUG_REG16_bgrp_dma_mask_kill_SIZE;
+ unsigned int bgrp_byte_mask_fifo_we : VGT_DEBUG_REG16_bgrp_byte_mask_fifo_we_SIZE;
+ unsigned int bgrp_byte_mask_fifo_re_q : VGT_DEBUG_REG16_bgrp_byte_mask_fifo_re_q_SIZE;
+ unsigned int bgrp_byte_mask_fifo_empty : VGT_DEBUG_REG16_bgrp_byte_mask_fifo_empty_SIZE;
+ unsigned int bgrp_byte_mask_fifo_full : VGT_DEBUG_REG16_bgrp_byte_mask_fifo_full_SIZE;
+ unsigned int bgrp_cull_fetch_fifo_we : VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_we_SIZE;
+ unsigned int dma_bgrp_cull_fetch_read : VGT_DEBUG_REG16_dma_bgrp_cull_fetch_read_SIZE;
+ unsigned int bgrp_cull_fetch_fifo_empty : VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_empty_SIZE;
+ unsigned int bgrp_cull_fetch_fifo_full : VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_full_SIZE;
+ } vgt_debug_reg16_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_reg16_t f;
+} vgt_debug_reg16_u;
+
+
+/*
+ * VGT_DEBUG_REG17 struct
+ */
+
+#define VGT_DEBUG_REG17_save_read_q_SIZE 1
+#define VGT_DEBUG_REG17_extend_read_q_SIZE 1
+#define VGT_DEBUG_REG17_grp_indx_size_SIZE 2
+#define VGT_DEBUG_REG17_cull_prim_true_SIZE 1
+#define VGT_DEBUG_REG17_reset_bit2_q_SIZE 1
+#define VGT_DEBUG_REG17_reset_bit1_q_SIZE 1
+#define VGT_DEBUG_REG17_first_reg_first_q_SIZE 1
+#define VGT_DEBUG_REG17_check_second_reg_SIZE 1
+#define VGT_DEBUG_REG17_check_first_reg_SIZE 1
+#define VGT_DEBUG_REG17_bgrp_cull_fetch_fifo_wdata_SIZE 1
+#define VGT_DEBUG_REG17_save_cull_fetch_data2_q_SIZE 1
+#define VGT_DEBUG_REG17_save_cull_fetch_data1_q_SIZE 1
+#define VGT_DEBUG_REG17_save_byte_mask_data2_q_SIZE 1
+#define VGT_DEBUG_REG17_save_byte_mask_data1_q_SIZE 1
+#define VGT_DEBUG_REG17_to_second_reg_q_SIZE 1
+#define VGT_DEBUG_REG17_roll_over_msk_q_SIZE 1
+#define VGT_DEBUG_REG17_max_msk_ptr_q_SIZE 7
+#define VGT_DEBUG_REG17_min_msk_ptr_q_SIZE 7
+#define VGT_DEBUG_REG17_bgrp_trigger_SIZE 1
+
+#define VGT_DEBUG_REG17_save_read_q_SHIFT 0
+#define VGT_DEBUG_REG17_extend_read_q_SHIFT 1
+#define VGT_DEBUG_REG17_grp_indx_size_SHIFT 2
+#define VGT_DEBUG_REG17_cull_prim_true_SHIFT 4
+#define VGT_DEBUG_REG17_reset_bit2_q_SHIFT 5
+#define VGT_DEBUG_REG17_reset_bit1_q_SHIFT 6
+#define VGT_DEBUG_REG17_first_reg_first_q_SHIFT 7
+#define VGT_DEBUG_REG17_check_second_reg_SHIFT 8
+#define VGT_DEBUG_REG17_check_first_reg_SHIFT 9
+#define VGT_DEBUG_REG17_bgrp_cull_fetch_fifo_wdata_SHIFT 10
+#define VGT_DEBUG_REG17_save_cull_fetch_data2_q_SHIFT 11
+#define VGT_DEBUG_REG17_save_cull_fetch_data1_q_SHIFT 12
+#define VGT_DEBUG_REG17_save_byte_mask_data2_q_SHIFT 13
+#define VGT_DEBUG_REG17_save_byte_mask_data1_q_SHIFT 14
+#define VGT_DEBUG_REG17_to_second_reg_q_SHIFT 15
+#define VGT_DEBUG_REG17_roll_over_msk_q_SHIFT 16
+#define VGT_DEBUG_REG17_max_msk_ptr_q_SHIFT 17
+#define VGT_DEBUG_REG17_min_msk_ptr_q_SHIFT 24
+#define VGT_DEBUG_REG17_bgrp_trigger_SHIFT 31
+
+#define VGT_DEBUG_REG17_save_read_q_MASK 0x00000001
+#define VGT_DEBUG_REG17_extend_read_q_MASK 0x00000002
+#define VGT_DEBUG_REG17_grp_indx_size_MASK 0x0000000c
+#define VGT_DEBUG_REG17_cull_prim_true_MASK 0x00000010
+#define VGT_DEBUG_REG17_reset_bit2_q_MASK 0x00000020
+#define VGT_DEBUG_REG17_reset_bit1_q_MASK 0x00000040
+#define VGT_DEBUG_REG17_first_reg_first_q_MASK 0x00000080
+#define VGT_DEBUG_REG17_check_second_reg_MASK 0x00000100
+#define VGT_DEBUG_REG17_check_first_reg_MASK 0x00000200
+#define VGT_DEBUG_REG17_bgrp_cull_fetch_fifo_wdata_MASK 0x00000400
+#define VGT_DEBUG_REG17_save_cull_fetch_data2_q_MASK 0x00000800
+#define VGT_DEBUG_REG17_save_cull_fetch_data1_q_MASK 0x00001000
+#define VGT_DEBUG_REG17_save_byte_mask_data2_q_MASK 0x00002000
+#define VGT_DEBUG_REG17_save_byte_mask_data1_q_MASK 0x00004000
+#define VGT_DEBUG_REG17_to_second_reg_q_MASK 0x00008000
+#define VGT_DEBUG_REG17_roll_over_msk_q_MASK 0x00010000
+#define VGT_DEBUG_REG17_max_msk_ptr_q_MASK 0x00fe0000
+#define VGT_DEBUG_REG17_min_msk_ptr_q_MASK 0x7f000000
+#define VGT_DEBUG_REG17_bgrp_trigger_MASK 0x80000000
+
+#define VGT_DEBUG_REG17_MASK \
+ (VGT_DEBUG_REG17_save_read_q_MASK | \
+ VGT_DEBUG_REG17_extend_read_q_MASK | \
+ VGT_DEBUG_REG17_grp_indx_size_MASK | \
+ VGT_DEBUG_REG17_cull_prim_true_MASK | \
+ VGT_DEBUG_REG17_reset_bit2_q_MASK | \
+ VGT_DEBUG_REG17_reset_bit1_q_MASK | \
+ VGT_DEBUG_REG17_first_reg_first_q_MASK | \
+ VGT_DEBUG_REG17_check_second_reg_MASK | \
+ VGT_DEBUG_REG17_check_first_reg_MASK | \
+ VGT_DEBUG_REG17_bgrp_cull_fetch_fifo_wdata_MASK | \
+ VGT_DEBUG_REG17_save_cull_fetch_data2_q_MASK | \
+ VGT_DEBUG_REG17_save_cull_fetch_data1_q_MASK | \
+ VGT_DEBUG_REG17_save_byte_mask_data2_q_MASK | \
+ VGT_DEBUG_REG17_save_byte_mask_data1_q_MASK | \
+ VGT_DEBUG_REG17_to_second_reg_q_MASK | \
+ VGT_DEBUG_REG17_roll_over_msk_q_MASK | \
+ VGT_DEBUG_REG17_max_msk_ptr_q_MASK | \
+ VGT_DEBUG_REG17_min_msk_ptr_q_MASK | \
+ VGT_DEBUG_REG17_bgrp_trigger_MASK)
+
+#define VGT_DEBUG_REG17(save_read_q, extend_read_q, grp_indx_size, cull_prim_true, reset_bit2_q, reset_bit1_q, first_reg_first_q, check_second_reg, check_first_reg, bgrp_cull_fetch_fifo_wdata, save_cull_fetch_data2_q, save_cull_fetch_data1_q, save_byte_mask_data2_q, save_byte_mask_data1_q, to_second_reg_q, roll_over_msk_q, max_msk_ptr_q, min_msk_ptr_q, bgrp_trigger) \
+ ((save_read_q << VGT_DEBUG_REG17_save_read_q_SHIFT) | \
+ (extend_read_q << VGT_DEBUG_REG17_extend_read_q_SHIFT) | \
+ (grp_indx_size << VGT_DEBUG_REG17_grp_indx_size_SHIFT) | \
+ (cull_prim_true << VGT_DEBUG_REG17_cull_prim_true_SHIFT) | \
+ (reset_bit2_q << VGT_DEBUG_REG17_reset_bit2_q_SHIFT) | \
+ (reset_bit1_q << VGT_DEBUG_REG17_reset_bit1_q_SHIFT) | \
+ (first_reg_first_q << VGT_DEBUG_REG17_first_reg_first_q_SHIFT) | \
+ (check_second_reg << VGT_DEBUG_REG17_check_second_reg_SHIFT) | \
+ (check_first_reg << VGT_DEBUG_REG17_check_first_reg_SHIFT) | \
+ (bgrp_cull_fetch_fifo_wdata << VGT_DEBUG_REG17_bgrp_cull_fetch_fifo_wdata_SHIFT) | \
+ (save_cull_fetch_data2_q << VGT_DEBUG_REG17_save_cull_fetch_data2_q_SHIFT) | \
+ (save_cull_fetch_data1_q << VGT_DEBUG_REG17_save_cull_fetch_data1_q_SHIFT) | \
+ (save_byte_mask_data2_q << VGT_DEBUG_REG17_save_byte_mask_data2_q_SHIFT) | \
+ (save_byte_mask_data1_q << VGT_DEBUG_REG17_save_byte_mask_data1_q_SHIFT) | \
+ (to_second_reg_q << VGT_DEBUG_REG17_to_second_reg_q_SHIFT) | \
+ (roll_over_msk_q << VGT_DEBUG_REG17_roll_over_msk_q_SHIFT) | \
+ (max_msk_ptr_q << VGT_DEBUG_REG17_max_msk_ptr_q_SHIFT) | \
+ (min_msk_ptr_q << VGT_DEBUG_REG17_min_msk_ptr_q_SHIFT) | \
+ (bgrp_trigger << VGT_DEBUG_REG17_bgrp_trigger_SHIFT))
+
+#define VGT_DEBUG_REG17_GET_save_read_q(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_save_read_q_MASK) >> VGT_DEBUG_REG17_save_read_q_SHIFT)
+#define VGT_DEBUG_REG17_GET_extend_read_q(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_extend_read_q_MASK) >> VGT_DEBUG_REG17_extend_read_q_SHIFT)
+#define VGT_DEBUG_REG17_GET_grp_indx_size(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_grp_indx_size_MASK) >> VGT_DEBUG_REG17_grp_indx_size_SHIFT)
+#define VGT_DEBUG_REG17_GET_cull_prim_true(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_cull_prim_true_MASK) >> VGT_DEBUG_REG17_cull_prim_true_SHIFT)
+#define VGT_DEBUG_REG17_GET_reset_bit2_q(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_reset_bit2_q_MASK) >> VGT_DEBUG_REG17_reset_bit2_q_SHIFT)
+#define VGT_DEBUG_REG17_GET_reset_bit1_q(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_reset_bit1_q_MASK) >> VGT_DEBUG_REG17_reset_bit1_q_SHIFT)
+#define VGT_DEBUG_REG17_GET_first_reg_first_q(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_first_reg_first_q_MASK) >> VGT_DEBUG_REG17_first_reg_first_q_SHIFT)
+#define VGT_DEBUG_REG17_GET_check_second_reg(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_check_second_reg_MASK) >> VGT_DEBUG_REG17_check_second_reg_SHIFT)
+#define VGT_DEBUG_REG17_GET_check_first_reg(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_check_first_reg_MASK) >> VGT_DEBUG_REG17_check_first_reg_SHIFT)
+#define VGT_DEBUG_REG17_GET_bgrp_cull_fetch_fifo_wdata(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_bgrp_cull_fetch_fifo_wdata_MASK) >> VGT_DEBUG_REG17_bgrp_cull_fetch_fifo_wdata_SHIFT)
+#define VGT_DEBUG_REG17_GET_save_cull_fetch_data2_q(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_save_cull_fetch_data2_q_MASK) >> VGT_DEBUG_REG17_save_cull_fetch_data2_q_SHIFT)
+#define VGT_DEBUG_REG17_GET_save_cull_fetch_data1_q(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_save_cull_fetch_data1_q_MASK) >> VGT_DEBUG_REG17_save_cull_fetch_data1_q_SHIFT)
+#define VGT_DEBUG_REG17_GET_save_byte_mask_data2_q(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_save_byte_mask_data2_q_MASK) >> VGT_DEBUG_REG17_save_byte_mask_data2_q_SHIFT)
+#define VGT_DEBUG_REG17_GET_save_byte_mask_data1_q(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_save_byte_mask_data1_q_MASK) >> VGT_DEBUG_REG17_save_byte_mask_data1_q_SHIFT)
+#define VGT_DEBUG_REG17_GET_to_second_reg_q(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_to_second_reg_q_MASK) >> VGT_DEBUG_REG17_to_second_reg_q_SHIFT)
+#define VGT_DEBUG_REG17_GET_roll_over_msk_q(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_roll_over_msk_q_MASK) >> VGT_DEBUG_REG17_roll_over_msk_q_SHIFT)
+#define VGT_DEBUG_REG17_GET_max_msk_ptr_q(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_max_msk_ptr_q_MASK) >> VGT_DEBUG_REG17_max_msk_ptr_q_SHIFT)
+#define VGT_DEBUG_REG17_GET_min_msk_ptr_q(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_min_msk_ptr_q_MASK) >> VGT_DEBUG_REG17_min_msk_ptr_q_SHIFT)
+#define VGT_DEBUG_REG17_GET_bgrp_trigger(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_bgrp_trigger_MASK) >> VGT_DEBUG_REG17_bgrp_trigger_SHIFT)
+
+#define VGT_DEBUG_REG17_SET_save_read_q(vgt_debug_reg17_reg, save_read_q) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_save_read_q_MASK) | (save_read_q << VGT_DEBUG_REG17_save_read_q_SHIFT)
+#define VGT_DEBUG_REG17_SET_extend_read_q(vgt_debug_reg17_reg, extend_read_q) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_extend_read_q_MASK) | (extend_read_q << VGT_DEBUG_REG17_extend_read_q_SHIFT)
+#define VGT_DEBUG_REG17_SET_grp_indx_size(vgt_debug_reg17_reg, grp_indx_size) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_grp_indx_size_MASK) | (grp_indx_size << VGT_DEBUG_REG17_grp_indx_size_SHIFT)
+#define VGT_DEBUG_REG17_SET_cull_prim_true(vgt_debug_reg17_reg, cull_prim_true) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_cull_prim_true_MASK) | (cull_prim_true << VGT_DEBUG_REG17_cull_prim_true_SHIFT)
+#define VGT_DEBUG_REG17_SET_reset_bit2_q(vgt_debug_reg17_reg, reset_bit2_q) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_reset_bit2_q_MASK) | (reset_bit2_q << VGT_DEBUG_REG17_reset_bit2_q_SHIFT)
+#define VGT_DEBUG_REG17_SET_reset_bit1_q(vgt_debug_reg17_reg, reset_bit1_q) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_reset_bit1_q_MASK) | (reset_bit1_q << VGT_DEBUG_REG17_reset_bit1_q_SHIFT)
+#define VGT_DEBUG_REG17_SET_first_reg_first_q(vgt_debug_reg17_reg, first_reg_first_q) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_first_reg_first_q_MASK) | (first_reg_first_q << VGT_DEBUG_REG17_first_reg_first_q_SHIFT)
+#define VGT_DEBUG_REG17_SET_check_second_reg(vgt_debug_reg17_reg, check_second_reg) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_check_second_reg_MASK) | (check_second_reg << VGT_DEBUG_REG17_check_second_reg_SHIFT)
+#define VGT_DEBUG_REG17_SET_check_first_reg(vgt_debug_reg17_reg, check_first_reg) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_check_first_reg_MASK) | (check_first_reg << VGT_DEBUG_REG17_check_first_reg_SHIFT)
+#define VGT_DEBUG_REG17_SET_bgrp_cull_fetch_fifo_wdata(vgt_debug_reg17_reg, bgrp_cull_fetch_fifo_wdata) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_bgrp_cull_fetch_fifo_wdata_MASK) | (bgrp_cull_fetch_fifo_wdata << VGT_DEBUG_REG17_bgrp_cull_fetch_fifo_wdata_SHIFT)
+#define VGT_DEBUG_REG17_SET_save_cull_fetch_data2_q(vgt_debug_reg17_reg, save_cull_fetch_data2_q) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_save_cull_fetch_data2_q_MASK) | (save_cull_fetch_data2_q << VGT_DEBUG_REG17_save_cull_fetch_data2_q_SHIFT)
+#define VGT_DEBUG_REG17_SET_save_cull_fetch_data1_q(vgt_debug_reg17_reg, save_cull_fetch_data1_q) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_save_cull_fetch_data1_q_MASK) | (save_cull_fetch_data1_q << VGT_DEBUG_REG17_save_cull_fetch_data1_q_SHIFT)
+#define VGT_DEBUG_REG17_SET_save_byte_mask_data2_q(vgt_debug_reg17_reg, save_byte_mask_data2_q) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_save_byte_mask_data2_q_MASK) | (save_byte_mask_data2_q << VGT_DEBUG_REG17_save_byte_mask_data2_q_SHIFT)
+#define VGT_DEBUG_REG17_SET_save_byte_mask_data1_q(vgt_debug_reg17_reg, save_byte_mask_data1_q) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_save_byte_mask_data1_q_MASK) | (save_byte_mask_data1_q << VGT_DEBUG_REG17_save_byte_mask_data1_q_SHIFT)
+#define VGT_DEBUG_REG17_SET_to_second_reg_q(vgt_debug_reg17_reg, to_second_reg_q) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_to_second_reg_q_MASK) | (to_second_reg_q << VGT_DEBUG_REG17_to_second_reg_q_SHIFT)
+#define VGT_DEBUG_REG17_SET_roll_over_msk_q(vgt_debug_reg17_reg, roll_over_msk_q) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_roll_over_msk_q_MASK) | (roll_over_msk_q << VGT_DEBUG_REG17_roll_over_msk_q_SHIFT)
+#define VGT_DEBUG_REG17_SET_max_msk_ptr_q(vgt_debug_reg17_reg, max_msk_ptr_q) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_max_msk_ptr_q_MASK) | (max_msk_ptr_q << VGT_DEBUG_REG17_max_msk_ptr_q_SHIFT)
+#define VGT_DEBUG_REG17_SET_min_msk_ptr_q(vgt_debug_reg17_reg, min_msk_ptr_q) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_min_msk_ptr_q_MASK) | (min_msk_ptr_q << VGT_DEBUG_REG17_min_msk_ptr_q_SHIFT)
+#define VGT_DEBUG_REG17_SET_bgrp_trigger(vgt_debug_reg17_reg, bgrp_trigger) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_bgrp_trigger_MASK) | (bgrp_trigger << VGT_DEBUG_REG17_bgrp_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg17_t {
+ unsigned int save_read_q : VGT_DEBUG_REG17_save_read_q_SIZE;
+ unsigned int extend_read_q : VGT_DEBUG_REG17_extend_read_q_SIZE;
+ unsigned int grp_indx_size : VGT_DEBUG_REG17_grp_indx_size_SIZE;
+ unsigned int cull_prim_true : VGT_DEBUG_REG17_cull_prim_true_SIZE;
+ unsigned int reset_bit2_q : VGT_DEBUG_REG17_reset_bit2_q_SIZE;
+ unsigned int reset_bit1_q : VGT_DEBUG_REG17_reset_bit1_q_SIZE;
+ unsigned int first_reg_first_q : VGT_DEBUG_REG17_first_reg_first_q_SIZE;
+ unsigned int check_second_reg : VGT_DEBUG_REG17_check_second_reg_SIZE;
+ unsigned int check_first_reg : VGT_DEBUG_REG17_check_first_reg_SIZE;
+ unsigned int bgrp_cull_fetch_fifo_wdata : VGT_DEBUG_REG17_bgrp_cull_fetch_fifo_wdata_SIZE;
+ unsigned int save_cull_fetch_data2_q : VGT_DEBUG_REG17_save_cull_fetch_data2_q_SIZE;
+ unsigned int save_cull_fetch_data1_q : VGT_DEBUG_REG17_save_cull_fetch_data1_q_SIZE;
+ unsigned int save_byte_mask_data2_q : VGT_DEBUG_REG17_save_byte_mask_data2_q_SIZE;
+ unsigned int save_byte_mask_data1_q : VGT_DEBUG_REG17_save_byte_mask_data1_q_SIZE;
+ unsigned int to_second_reg_q : VGT_DEBUG_REG17_to_second_reg_q_SIZE;
+ unsigned int roll_over_msk_q : VGT_DEBUG_REG17_roll_over_msk_q_SIZE;
+ unsigned int max_msk_ptr_q : VGT_DEBUG_REG17_max_msk_ptr_q_SIZE;
+ unsigned int min_msk_ptr_q : VGT_DEBUG_REG17_min_msk_ptr_q_SIZE;
+ unsigned int bgrp_trigger : VGT_DEBUG_REG17_bgrp_trigger_SIZE;
+ } vgt_debug_reg17_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg17_t {
+ unsigned int bgrp_trigger : VGT_DEBUG_REG17_bgrp_trigger_SIZE;
+ unsigned int min_msk_ptr_q : VGT_DEBUG_REG17_min_msk_ptr_q_SIZE;
+ unsigned int max_msk_ptr_q : VGT_DEBUG_REG17_max_msk_ptr_q_SIZE;
+ unsigned int roll_over_msk_q : VGT_DEBUG_REG17_roll_over_msk_q_SIZE;
+ unsigned int to_second_reg_q : VGT_DEBUG_REG17_to_second_reg_q_SIZE;
+ unsigned int save_byte_mask_data1_q : VGT_DEBUG_REG17_save_byte_mask_data1_q_SIZE;
+ unsigned int save_byte_mask_data2_q : VGT_DEBUG_REG17_save_byte_mask_data2_q_SIZE;
+ unsigned int save_cull_fetch_data1_q : VGT_DEBUG_REG17_save_cull_fetch_data1_q_SIZE;
+ unsigned int save_cull_fetch_data2_q : VGT_DEBUG_REG17_save_cull_fetch_data2_q_SIZE;
+ unsigned int bgrp_cull_fetch_fifo_wdata : VGT_DEBUG_REG17_bgrp_cull_fetch_fifo_wdata_SIZE;
+ unsigned int check_first_reg : VGT_DEBUG_REG17_check_first_reg_SIZE;
+ unsigned int check_second_reg : VGT_DEBUG_REG17_check_second_reg_SIZE;
+ unsigned int first_reg_first_q : VGT_DEBUG_REG17_first_reg_first_q_SIZE;
+ unsigned int reset_bit1_q : VGT_DEBUG_REG17_reset_bit1_q_SIZE;
+ unsigned int reset_bit2_q : VGT_DEBUG_REG17_reset_bit2_q_SIZE;
+ unsigned int cull_prim_true : VGT_DEBUG_REG17_cull_prim_true_SIZE;
+ unsigned int grp_indx_size : VGT_DEBUG_REG17_grp_indx_size_SIZE;
+ unsigned int extend_read_q : VGT_DEBUG_REG17_extend_read_q_SIZE;
+ unsigned int save_read_q : VGT_DEBUG_REG17_save_read_q_SIZE;
+ } vgt_debug_reg17_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_reg17_t f;
+} vgt_debug_reg17_u;
+
+
+/*
+ * VGT_DEBUG_REG18 struct
+ */
+
+#define VGT_DEBUG_REG18_dma_data_fifo_mem_raddr_SIZE 6
+#define VGT_DEBUG_REG18_dma_data_fifo_mem_waddr_SIZE 6
+#define VGT_DEBUG_REG18_dma_bgrp_byte_mask_fifo_re_SIZE 1
+#define VGT_DEBUG_REG18_dma_bgrp_dma_data_fifo_rptr_SIZE 2
+#define VGT_DEBUG_REG18_dma_mem_full_SIZE 1
+#define VGT_DEBUG_REG18_dma_ram_re_SIZE 1
+#define VGT_DEBUG_REG18_dma_ram_we_SIZE 1
+#define VGT_DEBUG_REG18_dma_mem_empty_SIZE 1
+#define VGT_DEBUG_REG18_dma_data_fifo_mem_re_SIZE 1
+#define VGT_DEBUG_REG18_dma_data_fifo_mem_we_SIZE 1
+#define VGT_DEBUG_REG18_bin_mem_full_SIZE 1
+#define VGT_DEBUG_REG18_bin_ram_we_SIZE 1
+#define VGT_DEBUG_REG18_bin_ram_re_SIZE 1
+#define VGT_DEBUG_REG18_bin_mem_empty_SIZE 1
+#define VGT_DEBUG_REG18_start_bin_req_SIZE 1
+#define VGT_DEBUG_REG18_fetch_cull_not_used_SIZE 1
+#define VGT_DEBUG_REG18_dma_req_xfer_SIZE 1
+#define VGT_DEBUG_REG18_have_valid_bin_req_SIZE 1
+#define VGT_DEBUG_REG18_have_valid_dma_req_SIZE 1
+#define VGT_DEBUG_REG18_bgrp_dma_di_grp_cull_enable_SIZE 1
+#define VGT_DEBUG_REG18_bgrp_dma_di_pre_fetch_cull_enable_SIZE 1
+
+#define VGT_DEBUG_REG18_dma_data_fifo_mem_raddr_SHIFT 0
+#define VGT_DEBUG_REG18_dma_data_fifo_mem_waddr_SHIFT 6
+#define VGT_DEBUG_REG18_dma_bgrp_byte_mask_fifo_re_SHIFT 12
+#define VGT_DEBUG_REG18_dma_bgrp_dma_data_fifo_rptr_SHIFT 13
+#define VGT_DEBUG_REG18_dma_mem_full_SHIFT 15
+#define VGT_DEBUG_REG18_dma_ram_re_SHIFT 16
+#define VGT_DEBUG_REG18_dma_ram_we_SHIFT 17
+#define VGT_DEBUG_REG18_dma_mem_empty_SHIFT 18
+#define VGT_DEBUG_REG18_dma_data_fifo_mem_re_SHIFT 19
+#define VGT_DEBUG_REG18_dma_data_fifo_mem_we_SHIFT 20
+#define VGT_DEBUG_REG18_bin_mem_full_SHIFT 21
+#define VGT_DEBUG_REG18_bin_ram_we_SHIFT 22
+#define VGT_DEBUG_REG18_bin_ram_re_SHIFT 23
+#define VGT_DEBUG_REG18_bin_mem_empty_SHIFT 24
+#define VGT_DEBUG_REG18_start_bin_req_SHIFT 25
+#define VGT_DEBUG_REG18_fetch_cull_not_used_SHIFT 26
+#define VGT_DEBUG_REG18_dma_req_xfer_SHIFT 27
+#define VGT_DEBUG_REG18_have_valid_bin_req_SHIFT 28
+#define VGT_DEBUG_REG18_have_valid_dma_req_SHIFT 29
+#define VGT_DEBUG_REG18_bgrp_dma_di_grp_cull_enable_SHIFT 30
+#define VGT_DEBUG_REG18_bgrp_dma_di_pre_fetch_cull_enable_SHIFT 31
+
+#define VGT_DEBUG_REG18_dma_data_fifo_mem_raddr_MASK 0x0000003f
+#define VGT_DEBUG_REG18_dma_data_fifo_mem_waddr_MASK 0x00000fc0
+#define VGT_DEBUG_REG18_dma_bgrp_byte_mask_fifo_re_MASK 0x00001000
+#define VGT_DEBUG_REG18_dma_bgrp_dma_data_fifo_rptr_MASK 0x00006000
+#define VGT_DEBUG_REG18_dma_mem_full_MASK 0x00008000
+#define VGT_DEBUG_REG18_dma_ram_re_MASK 0x00010000
+#define VGT_DEBUG_REG18_dma_ram_we_MASK 0x00020000
+#define VGT_DEBUG_REG18_dma_mem_empty_MASK 0x00040000
+#define VGT_DEBUG_REG18_dma_data_fifo_mem_re_MASK 0x00080000
+#define VGT_DEBUG_REG18_dma_data_fifo_mem_we_MASK 0x00100000
+#define VGT_DEBUG_REG18_bin_mem_full_MASK 0x00200000
+#define VGT_DEBUG_REG18_bin_ram_we_MASK 0x00400000
+#define VGT_DEBUG_REG18_bin_ram_re_MASK 0x00800000
+#define VGT_DEBUG_REG18_bin_mem_empty_MASK 0x01000000
+#define VGT_DEBUG_REG18_start_bin_req_MASK 0x02000000
+#define VGT_DEBUG_REG18_fetch_cull_not_used_MASK 0x04000000
+#define VGT_DEBUG_REG18_dma_req_xfer_MASK 0x08000000
+#define VGT_DEBUG_REG18_have_valid_bin_req_MASK 0x10000000
+#define VGT_DEBUG_REG18_have_valid_dma_req_MASK 0x20000000
+#define VGT_DEBUG_REG18_bgrp_dma_di_grp_cull_enable_MASK 0x40000000
+#define VGT_DEBUG_REG18_bgrp_dma_di_pre_fetch_cull_enable_MASK 0x80000000
+
+#define VGT_DEBUG_REG18_MASK \
+ (VGT_DEBUG_REG18_dma_data_fifo_mem_raddr_MASK | \
+ VGT_DEBUG_REG18_dma_data_fifo_mem_waddr_MASK | \
+ VGT_DEBUG_REG18_dma_bgrp_byte_mask_fifo_re_MASK | \
+ VGT_DEBUG_REG18_dma_bgrp_dma_data_fifo_rptr_MASK | \
+ VGT_DEBUG_REG18_dma_mem_full_MASK | \
+ VGT_DEBUG_REG18_dma_ram_re_MASK | \
+ VGT_DEBUG_REG18_dma_ram_we_MASK | \
+ VGT_DEBUG_REG18_dma_mem_empty_MASK | \
+ VGT_DEBUG_REG18_dma_data_fifo_mem_re_MASK | \
+ VGT_DEBUG_REG18_dma_data_fifo_mem_we_MASK | \
+ VGT_DEBUG_REG18_bin_mem_full_MASK | \
+ VGT_DEBUG_REG18_bin_ram_we_MASK | \
+ VGT_DEBUG_REG18_bin_ram_re_MASK | \
+ VGT_DEBUG_REG18_bin_mem_empty_MASK | \
+ VGT_DEBUG_REG18_start_bin_req_MASK | \
+ VGT_DEBUG_REG18_fetch_cull_not_used_MASK | \
+ VGT_DEBUG_REG18_dma_req_xfer_MASK | \
+ VGT_DEBUG_REG18_have_valid_bin_req_MASK | \
+ VGT_DEBUG_REG18_have_valid_dma_req_MASK | \
+ VGT_DEBUG_REG18_bgrp_dma_di_grp_cull_enable_MASK | \
+ VGT_DEBUG_REG18_bgrp_dma_di_pre_fetch_cull_enable_MASK)
+
+#define VGT_DEBUG_REG18(dma_data_fifo_mem_raddr, dma_data_fifo_mem_waddr, dma_bgrp_byte_mask_fifo_re, dma_bgrp_dma_data_fifo_rptr, dma_mem_full, dma_ram_re, dma_ram_we, dma_mem_empty, dma_data_fifo_mem_re, dma_data_fifo_mem_we, bin_mem_full, bin_ram_we, bin_ram_re, bin_mem_empty, start_bin_req, fetch_cull_not_used, dma_req_xfer, have_valid_bin_req, have_valid_dma_req, bgrp_dma_di_grp_cull_enable, bgrp_dma_di_pre_fetch_cull_enable) \
+ ((dma_data_fifo_mem_raddr << VGT_DEBUG_REG18_dma_data_fifo_mem_raddr_SHIFT) | \
+ (dma_data_fifo_mem_waddr << VGT_DEBUG_REG18_dma_data_fifo_mem_waddr_SHIFT) | \
+ (dma_bgrp_byte_mask_fifo_re << VGT_DEBUG_REG18_dma_bgrp_byte_mask_fifo_re_SHIFT) | \
+ (dma_bgrp_dma_data_fifo_rptr << VGT_DEBUG_REG18_dma_bgrp_dma_data_fifo_rptr_SHIFT) | \
+ (dma_mem_full << VGT_DEBUG_REG18_dma_mem_full_SHIFT) | \
+ (dma_ram_re << VGT_DEBUG_REG18_dma_ram_re_SHIFT) | \
+ (dma_ram_we << VGT_DEBUG_REG18_dma_ram_we_SHIFT) | \
+ (dma_mem_empty << VGT_DEBUG_REG18_dma_mem_empty_SHIFT) | \
+ (dma_data_fifo_mem_re << VGT_DEBUG_REG18_dma_data_fifo_mem_re_SHIFT) | \
+ (dma_data_fifo_mem_we << VGT_DEBUG_REG18_dma_data_fifo_mem_we_SHIFT) | \
+ (bin_mem_full << VGT_DEBUG_REG18_bin_mem_full_SHIFT) | \
+ (bin_ram_we << VGT_DEBUG_REG18_bin_ram_we_SHIFT) | \
+ (bin_ram_re << VGT_DEBUG_REG18_bin_ram_re_SHIFT) | \
+ (bin_mem_empty << VGT_DEBUG_REG18_bin_mem_empty_SHIFT) | \
+ (start_bin_req << VGT_DEBUG_REG18_start_bin_req_SHIFT) | \
+ (fetch_cull_not_used << VGT_DEBUG_REG18_fetch_cull_not_used_SHIFT) | \
+ (dma_req_xfer << VGT_DEBUG_REG18_dma_req_xfer_SHIFT) | \
+ (have_valid_bin_req << VGT_DEBUG_REG18_have_valid_bin_req_SHIFT) | \
+ (have_valid_dma_req << VGT_DEBUG_REG18_have_valid_dma_req_SHIFT) | \
+ (bgrp_dma_di_grp_cull_enable << VGT_DEBUG_REG18_bgrp_dma_di_grp_cull_enable_SHIFT) | \
+ (bgrp_dma_di_pre_fetch_cull_enable << VGT_DEBUG_REG18_bgrp_dma_di_pre_fetch_cull_enable_SHIFT))
+
+#define VGT_DEBUG_REG18_GET_dma_data_fifo_mem_raddr(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_dma_data_fifo_mem_raddr_MASK) >> VGT_DEBUG_REG18_dma_data_fifo_mem_raddr_SHIFT)
+#define VGT_DEBUG_REG18_GET_dma_data_fifo_mem_waddr(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_dma_data_fifo_mem_waddr_MASK) >> VGT_DEBUG_REG18_dma_data_fifo_mem_waddr_SHIFT)
+#define VGT_DEBUG_REG18_GET_dma_bgrp_byte_mask_fifo_re(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_dma_bgrp_byte_mask_fifo_re_MASK) >> VGT_DEBUG_REG18_dma_bgrp_byte_mask_fifo_re_SHIFT)
+#define VGT_DEBUG_REG18_GET_dma_bgrp_dma_data_fifo_rptr(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_dma_bgrp_dma_data_fifo_rptr_MASK) >> VGT_DEBUG_REG18_dma_bgrp_dma_data_fifo_rptr_SHIFT)
+#define VGT_DEBUG_REG18_GET_dma_mem_full(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_dma_mem_full_MASK) >> VGT_DEBUG_REG18_dma_mem_full_SHIFT)
+#define VGT_DEBUG_REG18_GET_dma_ram_re(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_dma_ram_re_MASK) >> VGT_DEBUG_REG18_dma_ram_re_SHIFT)
+#define VGT_DEBUG_REG18_GET_dma_ram_we(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_dma_ram_we_MASK) >> VGT_DEBUG_REG18_dma_ram_we_SHIFT)
+#define VGT_DEBUG_REG18_GET_dma_mem_empty(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_dma_mem_empty_MASK) >> VGT_DEBUG_REG18_dma_mem_empty_SHIFT)
+#define VGT_DEBUG_REG18_GET_dma_data_fifo_mem_re(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_dma_data_fifo_mem_re_MASK) >> VGT_DEBUG_REG18_dma_data_fifo_mem_re_SHIFT)
+#define VGT_DEBUG_REG18_GET_dma_data_fifo_mem_we(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_dma_data_fifo_mem_we_MASK) >> VGT_DEBUG_REG18_dma_data_fifo_mem_we_SHIFT)
+#define VGT_DEBUG_REG18_GET_bin_mem_full(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_bin_mem_full_MASK) >> VGT_DEBUG_REG18_bin_mem_full_SHIFT)
+#define VGT_DEBUG_REG18_GET_bin_ram_we(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_bin_ram_we_MASK) >> VGT_DEBUG_REG18_bin_ram_we_SHIFT)
+#define VGT_DEBUG_REG18_GET_bin_ram_re(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_bin_ram_re_MASK) >> VGT_DEBUG_REG18_bin_ram_re_SHIFT)
+#define VGT_DEBUG_REG18_GET_bin_mem_empty(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_bin_mem_empty_MASK) >> VGT_DEBUG_REG18_bin_mem_empty_SHIFT)
+#define VGT_DEBUG_REG18_GET_start_bin_req(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_start_bin_req_MASK) >> VGT_DEBUG_REG18_start_bin_req_SHIFT)
+#define VGT_DEBUG_REG18_GET_fetch_cull_not_used(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_fetch_cull_not_used_MASK) >> VGT_DEBUG_REG18_fetch_cull_not_used_SHIFT)
+#define VGT_DEBUG_REG18_GET_dma_req_xfer(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_dma_req_xfer_MASK) >> VGT_DEBUG_REG18_dma_req_xfer_SHIFT)
+#define VGT_DEBUG_REG18_GET_have_valid_bin_req(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_have_valid_bin_req_MASK) >> VGT_DEBUG_REG18_have_valid_bin_req_SHIFT)
+#define VGT_DEBUG_REG18_GET_have_valid_dma_req(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_have_valid_dma_req_MASK) >> VGT_DEBUG_REG18_have_valid_dma_req_SHIFT)
+#define VGT_DEBUG_REG18_GET_bgrp_dma_di_grp_cull_enable(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_bgrp_dma_di_grp_cull_enable_MASK) >> VGT_DEBUG_REG18_bgrp_dma_di_grp_cull_enable_SHIFT)
+#define VGT_DEBUG_REG18_GET_bgrp_dma_di_pre_fetch_cull_enable(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_bgrp_dma_di_pre_fetch_cull_enable_MASK) >> VGT_DEBUG_REG18_bgrp_dma_di_pre_fetch_cull_enable_SHIFT)
+
+#define VGT_DEBUG_REG18_SET_dma_data_fifo_mem_raddr(vgt_debug_reg18_reg, dma_data_fifo_mem_raddr) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_dma_data_fifo_mem_raddr_MASK) | (dma_data_fifo_mem_raddr << VGT_DEBUG_REG18_dma_data_fifo_mem_raddr_SHIFT)
+#define VGT_DEBUG_REG18_SET_dma_data_fifo_mem_waddr(vgt_debug_reg18_reg, dma_data_fifo_mem_waddr) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_dma_data_fifo_mem_waddr_MASK) | (dma_data_fifo_mem_waddr << VGT_DEBUG_REG18_dma_data_fifo_mem_waddr_SHIFT)
+#define VGT_DEBUG_REG18_SET_dma_bgrp_byte_mask_fifo_re(vgt_debug_reg18_reg, dma_bgrp_byte_mask_fifo_re) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_dma_bgrp_byte_mask_fifo_re_MASK) | (dma_bgrp_byte_mask_fifo_re << VGT_DEBUG_REG18_dma_bgrp_byte_mask_fifo_re_SHIFT)
+#define VGT_DEBUG_REG18_SET_dma_bgrp_dma_data_fifo_rptr(vgt_debug_reg18_reg, dma_bgrp_dma_data_fifo_rptr) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_dma_bgrp_dma_data_fifo_rptr_MASK) | (dma_bgrp_dma_data_fifo_rptr << VGT_DEBUG_REG18_dma_bgrp_dma_data_fifo_rptr_SHIFT)
+#define VGT_DEBUG_REG18_SET_dma_mem_full(vgt_debug_reg18_reg, dma_mem_full) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_dma_mem_full_MASK) | (dma_mem_full << VGT_DEBUG_REG18_dma_mem_full_SHIFT)
+#define VGT_DEBUG_REG18_SET_dma_ram_re(vgt_debug_reg18_reg, dma_ram_re) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_dma_ram_re_MASK) | (dma_ram_re << VGT_DEBUG_REG18_dma_ram_re_SHIFT)
+#define VGT_DEBUG_REG18_SET_dma_ram_we(vgt_debug_reg18_reg, dma_ram_we) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_dma_ram_we_MASK) | (dma_ram_we << VGT_DEBUG_REG18_dma_ram_we_SHIFT)
+#define VGT_DEBUG_REG18_SET_dma_mem_empty(vgt_debug_reg18_reg, dma_mem_empty) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_dma_mem_empty_MASK) | (dma_mem_empty << VGT_DEBUG_REG18_dma_mem_empty_SHIFT)
+#define VGT_DEBUG_REG18_SET_dma_data_fifo_mem_re(vgt_debug_reg18_reg, dma_data_fifo_mem_re) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_dma_data_fifo_mem_re_MASK) | (dma_data_fifo_mem_re << VGT_DEBUG_REG18_dma_data_fifo_mem_re_SHIFT)
+#define VGT_DEBUG_REG18_SET_dma_data_fifo_mem_we(vgt_debug_reg18_reg, dma_data_fifo_mem_we) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_dma_data_fifo_mem_we_MASK) | (dma_data_fifo_mem_we << VGT_DEBUG_REG18_dma_data_fifo_mem_we_SHIFT)
+#define VGT_DEBUG_REG18_SET_bin_mem_full(vgt_debug_reg18_reg, bin_mem_full) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_bin_mem_full_MASK) | (bin_mem_full << VGT_DEBUG_REG18_bin_mem_full_SHIFT)
+#define VGT_DEBUG_REG18_SET_bin_ram_we(vgt_debug_reg18_reg, bin_ram_we) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_bin_ram_we_MASK) | (bin_ram_we << VGT_DEBUG_REG18_bin_ram_we_SHIFT)
+#define VGT_DEBUG_REG18_SET_bin_ram_re(vgt_debug_reg18_reg, bin_ram_re) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_bin_ram_re_MASK) | (bin_ram_re << VGT_DEBUG_REG18_bin_ram_re_SHIFT)
+#define VGT_DEBUG_REG18_SET_bin_mem_empty(vgt_debug_reg18_reg, bin_mem_empty) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_bin_mem_empty_MASK) | (bin_mem_empty << VGT_DEBUG_REG18_bin_mem_empty_SHIFT)
+#define VGT_DEBUG_REG18_SET_start_bin_req(vgt_debug_reg18_reg, start_bin_req) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_start_bin_req_MASK) | (start_bin_req << VGT_DEBUG_REG18_start_bin_req_SHIFT)
+#define VGT_DEBUG_REG18_SET_fetch_cull_not_used(vgt_debug_reg18_reg, fetch_cull_not_used) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_fetch_cull_not_used_MASK) | (fetch_cull_not_used << VGT_DEBUG_REG18_fetch_cull_not_used_SHIFT)
+#define VGT_DEBUG_REG18_SET_dma_req_xfer(vgt_debug_reg18_reg, dma_req_xfer) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_dma_req_xfer_MASK) | (dma_req_xfer << VGT_DEBUG_REG18_dma_req_xfer_SHIFT)
+#define VGT_DEBUG_REG18_SET_have_valid_bin_req(vgt_debug_reg18_reg, have_valid_bin_req) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_have_valid_bin_req_MASK) | (have_valid_bin_req << VGT_DEBUG_REG18_have_valid_bin_req_SHIFT)
+#define VGT_DEBUG_REG18_SET_have_valid_dma_req(vgt_debug_reg18_reg, have_valid_dma_req) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_have_valid_dma_req_MASK) | (have_valid_dma_req << VGT_DEBUG_REG18_have_valid_dma_req_SHIFT)
+#define VGT_DEBUG_REG18_SET_bgrp_dma_di_grp_cull_enable(vgt_debug_reg18_reg, bgrp_dma_di_grp_cull_enable) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_bgrp_dma_di_grp_cull_enable_MASK) | (bgrp_dma_di_grp_cull_enable << VGT_DEBUG_REG18_bgrp_dma_di_grp_cull_enable_SHIFT)
+#define VGT_DEBUG_REG18_SET_bgrp_dma_di_pre_fetch_cull_enable(vgt_debug_reg18_reg, bgrp_dma_di_pre_fetch_cull_enable) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_bgrp_dma_di_pre_fetch_cull_enable_MASK) | (bgrp_dma_di_pre_fetch_cull_enable << VGT_DEBUG_REG18_bgrp_dma_di_pre_fetch_cull_enable_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg18_t {
+ unsigned int dma_data_fifo_mem_raddr : VGT_DEBUG_REG18_dma_data_fifo_mem_raddr_SIZE;
+ unsigned int dma_data_fifo_mem_waddr : VGT_DEBUG_REG18_dma_data_fifo_mem_waddr_SIZE;
+ unsigned int dma_bgrp_byte_mask_fifo_re : VGT_DEBUG_REG18_dma_bgrp_byte_mask_fifo_re_SIZE;
+ unsigned int dma_bgrp_dma_data_fifo_rptr : VGT_DEBUG_REG18_dma_bgrp_dma_data_fifo_rptr_SIZE;
+ unsigned int dma_mem_full : VGT_DEBUG_REG18_dma_mem_full_SIZE;
+ unsigned int dma_ram_re : VGT_DEBUG_REG18_dma_ram_re_SIZE;
+ unsigned int dma_ram_we : VGT_DEBUG_REG18_dma_ram_we_SIZE;
+ unsigned int dma_mem_empty : VGT_DEBUG_REG18_dma_mem_empty_SIZE;
+ unsigned int dma_data_fifo_mem_re : VGT_DEBUG_REG18_dma_data_fifo_mem_re_SIZE;
+ unsigned int dma_data_fifo_mem_we : VGT_DEBUG_REG18_dma_data_fifo_mem_we_SIZE;
+ unsigned int bin_mem_full : VGT_DEBUG_REG18_bin_mem_full_SIZE;
+ unsigned int bin_ram_we : VGT_DEBUG_REG18_bin_ram_we_SIZE;
+ unsigned int bin_ram_re : VGT_DEBUG_REG18_bin_ram_re_SIZE;
+ unsigned int bin_mem_empty : VGT_DEBUG_REG18_bin_mem_empty_SIZE;
+ unsigned int start_bin_req : VGT_DEBUG_REG18_start_bin_req_SIZE;
+ unsigned int fetch_cull_not_used : VGT_DEBUG_REG18_fetch_cull_not_used_SIZE;
+ unsigned int dma_req_xfer : VGT_DEBUG_REG18_dma_req_xfer_SIZE;
+ unsigned int have_valid_bin_req : VGT_DEBUG_REG18_have_valid_bin_req_SIZE;
+ unsigned int have_valid_dma_req : VGT_DEBUG_REG18_have_valid_dma_req_SIZE;
+ unsigned int bgrp_dma_di_grp_cull_enable : VGT_DEBUG_REG18_bgrp_dma_di_grp_cull_enable_SIZE;
+ unsigned int bgrp_dma_di_pre_fetch_cull_enable : VGT_DEBUG_REG18_bgrp_dma_di_pre_fetch_cull_enable_SIZE;
+ } vgt_debug_reg18_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg18_t {
+ unsigned int bgrp_dma_di_pre_fetch_cull_enable : VGT_DEBUG_REG18_bgrp_dma_di_pre_fetch_cull_enable_SIZE;
+ unsigned int bgrp_dma_di_grp_cull_enable : VGT_DEBUG_REG18_bgrp_dma_di_grp_cull_enable_SIZE;
+ unsigned int have_valid_dma_req : VGT_DEBUG_REG18_have_valid_dma_req_SIZE;
+ unsigned int have_valid_bin_req : VGT_DEBUG_REG18_have_valid_bin_req_SIZE;
+ unsigned int dma_req_xfer : VGT_DEBUG_REG18_dma_req_xfer_SIZE;
+ unsigned int fetch_cull_not_used : VGT_DEBUG_REG18_fetch_cull_not_used_SIZE;
+ unsigned int start_bin_req : VGT_DEBUG_REG18_start_bin_req_SIZE;
+ unsigned int bin_mem_empty : VGT_DEBUG_REG18_bin_mem_empty_SIZE;
+ unsigned int bin_ram_re : VGT_DEBUG_REG18_bin_ram_re_SIZE;
+ unsigned int bin_ram_we : VGT_DEBUG_REG18_bin_ram_we_SIZE;
+ unsigned int bin_mem_full : VGT_DEBUG_REG18_bin_mem_full_SIZE;
+ unsigned int dma_data_fifo_mem_we : VGT_DEBUG_REG18_dma_data_fifo_mem_we_SIZE;
+ unsigned int dma_data_fifo_mem_re : VGT_DEBUG_REG18_dma_data_fifo_mem_re_SIZE;
+ unsigned int dma_mem_empty : VGT_DEBUG_REG18_dma_mem_empty_SIZE;
+ unsigned int dma_ram_we : VGT_DEBUG_REG18_dma_ram_we_SIZE;
+ unsigned int dma_ram_re : VGT_DEBUG_REG18_dma_ram_re_SIZE;
+ unsigned int dma_mem_full : VGT_DEBUG_REG18_dma_mem_full_SIZE;
+ unsigned int dma_bgrp_dma_data_fifo_rptr : VGT_DEBUG_REG18_dma_bgrp_dma_data_fifo_rptr_SIZE;
+ unsigned int dma_bgrp_byte_mask_fifo_re : VGT_DEBUG_REG18_dma_bgrp_byte_mask_fifo_re_SIZE;
+ unsigned int dma_data_fifo_mem_waddr : VGT_DEBUG_REG18_dma_data_fifo_mem_waddr_SIZE;
+ unsigned int dma_data_fifo_mem_raddr : VGT_DEBUG_REG18_dma_data_fifo_mem_raddr_SIZE;
+ } vgt_debug_reg18_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_reg18_t f;
+} vgt_debug_reg18_u;
+
+
+/*
+ * VGT_DEBUG_REG20 struct
+ */
+
+#define VGT_DEBUG_REG20_prim_side_indx_valid_SIZE 1
+#define VGT_DEBUG_REG20_indx_side_fifo_empty_SIZE 1
+#define VGT_DEBUG_REG20_indx_side_fifo_re_SIZE 1
+#define VGT_DEBUG_REG20_indx_side_fifo_we_SIZE 1
+#define VGT_DEBUG_REG20_indx_side_fifo_full_SIZE 1
+#define VGT_DEBUG_REG20_prim_buffer_empty_SIZE 1
+#define VGT_DEBUG_REG20_prim_buffer_re_SIZE 1
+#define VGT_DEBUG_REG20_prim_buffer_we_SIZE 1
+#define VGT_DEBUG_REG20_prim_buffer_full_SIZE 1
+#define VGT_DEBUG_REG20_indx_buffer_empty_SIZE 1
+#define VGT_DEBUG_REG20_indx_buffer_re_SIZE 1
+#define VGT_DEBUG_REG20_indx_buffer_we_SIZE 1
+#define VGT_DEBUG_REG20_indx_buffer_full_SIZE 1
+#define VGT_DEBUG_REG20_hold_prim_SIZE 1
+#define VGT_DEBUG_REG20_sent_cnt_SIZE 4
+#define VGT_DEBUG_REG20_start_of_vtx_vector_SIZE 1
+#define VGT_DEBUG_REG20_clip_s_pre_hold_prim_SIZE 1
+#define VGT_DEBUG_REG20_clip_p_pre_hold_prim_SIZE 1
+#define VGT_DEBUG_REG20_buffered_prim_type_event_SIZE 5
+#define VGT_DEBUG_REG20_out_trigger_SIZE 1
+
+#define VGT_DEBUG_REG20_prim_side_indx_valid_SHIFT 0
+#define VGT_DEBUG_REG20_indx_side_fifo_empty_SHIFT 1
+#define VGT_DEBUG_REG20_indx_side_fifo_re_SHIFT 2
+#define VGT_DEBUG_REG20_indx_side_fifo_we_SHIFT 3
+#define VGT_DEBUG_REG20_indx_side_fifo_full_SHIFT 4
+#define VGT_DEBUG_REG20_prim_buffer_empty_SHIFT 5
+#define VGT_DEBUG_REG20_prim_buffer_re_SHIFT 6
+#define VGT_DEBUG_REG20_prim_buffer_we_SHIFT 7
+#define VGT_DEBUG_REG20_prim_buffer_full_SHIFT 8
+#define VGT_DEBUG_REG20_indx_buffer_empty_SHIFT 9
+#define VGT_DEBUG_REG20_indx_buffer_re_SHIFT 10
+#define VGT_DEBUG_REG20_indx_buffer_we_SHIFT 11
+#define VGT_DEBUG_REG20_indx_buffer_full_SHIFT 12
+#define VGT_DEBUG_REG20_hold_prim_SHIFT 13
+#define VGT_DEBUG_REG20_sent_cnt_SHIFT 14
+#define VGT_DEBUG_REG20_start_of_vtx_vector_SHIFT 18
+#define VGT_DEBUG_REG20_clip_s_pre_hold_prim_SHIFT 19
+#define VGT_DEBUG_REG20_clip_p_pre_hold_prim_SHIFT 20
+#define VGT_DEBUG_REG20_buffered_prim_type_event_SHIFT 21
+#define VGT_DEBUG_REG20_out_trigger_SHIFT 26
+
+#define VGT_DEBUG_REG20_prim_side_indx_valid_MASK 0x00000001
+#define VGT_DEBUG_REG20_indx_side_fifo_empty_MASK 0x00000002
+#define VGT_DEBUG_REG20_indx_side_fifo_re_MASK 0x00000004
+#define VGT_DEBUG_REG20_indx_side_fifo_we_MASK 0x00000008
+#define VGT_DEBUG_REG20_indx_side_fifo_full_MASK 0x00000010
+#define VGT_DEBUG_REG20_prim_buffer_empty_MASK 0x00000020
+#define VGT_DEBUG_REG20_prim_buffer_re_MASK 0x00000040
+#define VGT_DEBUG_REG20_prim_buffer_we_MASK 0x00000080
+#define VGT_DEBUG_REG20_prim_buffer_full_MASK 0x00000100
+#define VGT_DEBUG_REG20_indx_buffer_empty_MASK 0x00000200
+#define VGT_DEBUG_REG20_indx_buffer_re_MASK 0x00000400
+#define VGT_DEBUG_REG20_indx_buffer_we_MASK 0x00000800
+#define VGT_DEBUG_REG20_indx_buffer_full_MASK 0x00001000
+#define VGT_DEBUG_REG20_hold_prim_MASK 0x00002000
+#define VGT_DEBUG_REG20_sent_cnt_MASK 0x0003c000
+#define VGT_DEBUG_REG20_start_of_vtx_vector_MASK 0x00040000
+#define VGT_DEBUG_REG20_clip_s_pre_hold_prim_MASK 0x00080000
+#define VGT_DEBUG_REG20_clip_p_pre_hold_prim_MASK 0x00100000
+#define VGT_DEBUG_REG20_buffered_prim_type_event_MASK 0x03e00000
+#define VGT_DEBUG_REG20_out_trigger_MASK 0x04000000
+
+#define VGT_DEBUG_REG20_MASK \
+ (VGT_DEBUG_REG20_prim_side_indx_valid_MASK | \
+ VGT_DEBUG_REG20_indx_side_fifo_empty_MASK | \
+ VGT_DEBUG_REG20_indx_side_fifo_re_MASK | \
+ VGT_DEBUG_REG20_indx_side_fifo_we_MASK | \
+ VGT_DEBUG_REG20_indx_side_fifo_full_MASK | \
+ VGT_DEBUG_REG20_prim_buffer_empty_MASK | \
+ VGT_DEBUG_REG20_prim_buffer_re_MASK | \
+ VGT_DEBUG_REG20_prim_buffer_we_MASK | \
+ VGT_DEBUG_REG20_prim_buffer_full_MASK | \
+ VGT_DEBUG_REG20_indx_buffer_empty_MASK | \
+ VGT_DEBUG_REG20_indx_buffer_re_MASK | \
+ VGT_DEBUG_REG20_indx_buffer_we_MASK | \
+ VGT_DEBUG_REG20_indx_buffer_full_MASK | \
+ VGT_DEBUG_REG20_hold_prim_MASK | \
+ VGT_DEBUG_REG20_sent_cnt_MASK | \
+ VGT_DEBUG_REG20_start_of_vtx_vector_MASK | \
+ VGT_DEBUG_REG20_clip_s_pre_hold_prim_MASK | \
+ VGT_DEBUG_REG20_clip_p_pre_hold_prim_MASK | \
+ VGT_DEBUG_REG20_buffered_prim_type_event_MASK | \
+ VGT_DEBUG_REG20_out_trigger_MASK)
+
+#define VGT_DEBUG_REG20(prim_side_indx_valid, indx_side_fifo_empty, indx_side_fifo_re, indx_side_fifo_we, indx_side_fifo_full, prim_buffer_empty, prim_buffer_re, prim_buffer_we, prim_buffer_full, indx_buffer_empty, indx_buffer_re, indx_buffer_we, indx_buffer_full, hold_prim, sent_cnt, start_of_vtx_vector, clip_s_pre_hold_prim, clip_p_pre_hold_prim, buffered_prim_type_event, out_trigger) \
+ ((prim_side_indx_valid << VGT_DEBUG_REG20_prim_side_indx_valid_SHIFT) | \
+ (indx_side_fifo_empty << VGT_DEBUG_REG20_indx_side_fifo_empty_SHIFT) | \
+ (indx_side_fifo_re << VGT_DEBUG_REG20_indx_side_fifo_re_SHIFT) | \
+ (indx_side_fifo_we << VGT_DEBUG_REG20_indx_side_fifo_we_SHIFT) | \
+ (indx_side_fifo_full << VGT_DEBUG_REG20_indx_side_fifo_full_SHIFT) | \
+ (prim_buffer_empty << VGT_DEBUG_REG20_prim_buffer_empty_SHIFT) | \
+ (prim_buffer_re << VGT_DEBUG_REG20_prim_buffer_re_SHIFT) | \
+ (prim_buffer_we << VGT_DEBUG_REG20_prim_buffer_we_SHIFT) | \
+ (prim_buffer_full << VGT_DEBUG_REG20_prim_buffer_full_SHIFT) | \
+ (indx_buffer_empty << VGT_DEBUG_REG20_indx_buffer_empty_SHIFT) | \
+ (indx_buffer_re << VGT_DEBUG_REG20_indx_buffer_re_SHIFT) | \
+ (indx_buffer_we << VGT_DEBUG_REG20_indx_buffer_we_SHIFT) | \
+ (indx_buffer_full << VGT_DEBUG_REG20_indx_buffer_full_SHIFT) | \
+ (hold_prim << VGT_DEBUG_REG20_hold_prim_SHIFT) | \
+ (sent_cnt << VGT_DEBUG_REG20_sent_cnt_SHIFT) | \
+ (start_of_vtx_vector << VGT_DEBUG_REG20_start_of_vtx_vector_SHIFT) | \
+ (clip_s_pre_hold_prim << VGT_DEBUG_REG20_clip_s_pre_hold_prim_SHIFT) | \
+ (clip_p_pre_hold_prim << VGT_DEBUG_REG20_clip_p_pre_hold_prim_SHIFT) | \
+ (buffered_prim_type_event << VGT_DEBUG_REG20_buffered_prim_type_event_SHIFT) | \
+ (out_trigger << VGT_DEBUG_REG20_out_trigger_SHIFT))
+
+#define VGT_DEBUG_REG20_GET_prim_side_indx_valid(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_prim_side_indx_valid_MASK) >> VGT_DEBUG_REG20_prim_side_indx_valid_SHIFT)
+#define VGT_DEBUG_REG20_GET_indx_side_fifo_empty(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_indx_side_fifo_empty_MASK) >> VGT_DEBUG_REG20_indx_side_fifo_empty_SHIFT)
+#define VGT_DEBUG_REG20_GET_indx_side_fifo_re(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_indx_side_fifo_re_MASK) >> VGT_DEBUG_REG20_indx_side_fifo_re_SHIFT)
+#define VGT_DEBUG_REG20_GET_indx_side_fifo_we(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_indx_side_fifo_we_MASK) >> VGT_DEBUG_REG20_indx_side_fifo_we_SHIFT)
+#define VGT_DEBUG_REG20_GET_indx_side_fifo_full(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_indx_side_fifo_full_MASK) >> VGT_DEBUG_REG20_indx_side_fifo_full_SHIFT)
+#define VGT_DEBUG_REG20_GET_prim_buffer_empty(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_prim_buffer_empty_MASK) >> VGT_DEBUG_REG20_prim_buffer_empty_SHIFT)
+#define VGT_DEBUG_REG20_GET_prim_buffer_re(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_prim_buffer_re_MASK) >> VGT_DEBUG_REG20_prim_buffer_re_SHIFT)
+#define VGT_DEBUG_REG20_GET_prim_buffer_we(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_prim_buffer_we_MASK) >> VGT_DEBUG_REG20_prim_buffer_we_SHIFT)
+#define VGT_DEBUG_REG20_GET_prim_buffer_full(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_prim_buffer_full_MASK) >> VGT_DEBUG_REG20_prim_buffer_full_SHIFT)
+#define VGT_DEBUG_REG20_GET_indx_buffer_empty(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_indx_buffer_empty_MASK) >> VGT_DEBUG_REG20_indx_buffer_empty_SHIFT)
+#define VGT_DEBUG_REG20_GET_indx_buffer_re(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_indx_buffer_re_MASK) >> VGT_DEBUG_REG20_indx_buffer_re_SHIFT)
+#define VGT_DEBUG_REG20_GET_indx_buffer_we(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_indx_buffer_we_MASK) >> VGT_DEBUG_REG20_indx_buffer_we_SHIFT)
+#define VGT_DEBUG_REG20_GET_indx_buffer_full(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_indx_buffer_full_MASK) >> VGT_DEBUG_REG20_indx_buffer_full_SHIFT)
+#define VGT_DEBUG_REG20_GET_hold_prim(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_hold_prim_MASK) >> VGT_DEBUG_REG20_hold_prim_SHIFT)
+#define VGT_DEBUG_REG20_GET_sent_cnt(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_sent_cnt_MASK) >> VGT_DEBUG_REG20_sent_cnt_SHIFT)
+#define VGT_DEBUG_REG20_GET_start_of_vtx_vector(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_start_of_vtx_vector_MASK) >> VGT_DEBUG_REG20_start_of_vtx_vector_SHIFT)
+#define VGT_DEBUG_REG20_GET_clip_s_pre_hold_prim(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_clip_s_pre_hold_prim_MASK) >> VGT_DEBUG_REG20_clip_s_pre_hold_prim_SHIFT)
+#define VGT_DEBUG_REG20_GET_clip_p_pre_hold_prim(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_clip_p_pre_hold_prim_MASK) >> VGT_DEBUG_REG20_clip_p_pre_hold_prim_SHIFT)
+#define VGT_DEBUG_REG20_GET_buffered_prim_type_event(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_buffered_prim_type_event_MASK) >> VGT_DEBUG_REG20_buffered_prim_type_event_SHIFT)
+#define VGT_DEBUG_REG20_GET_out_trigger(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_out_trigger_MASK) >> VGT_DEBUG_REG20_out_trigger_SHIFT)
+
+#define VGT_DEBUG_REG20_SET_prim_side_indx_valid(vgt_debug_reg20_reg, prim_side_indx_valid) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_prim_side_indx_valid_MASK) | (prim_side_indx_valid << VGT_DEBUG_REG20_prim_side_indx_valid_SHIFT)
+#define VGT_DEBUG_REG20_SET_indx_side_fifo_empty(vgt_debug_reg20_reg, indx_side_fifo_empty) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_indx_side_fifo_empty_MASK) | (indx_side_fifo_empty << VGT_DEBUG_REG20_indx_side_fifo_empty_SHIFT)
+#define VGT_DEBUG_REG20_SET_indx_side_fifo_re(vgt_debug_reg20_reg, indx_side_fifo_re) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_indx_side_fifo_re_MASK) | (indx_side_fifo_re << VGT_DEBUG_REG20_indx_side_fifo_re_SHIFT)
+#define VGT_DEBUG_REG20_SET_indx_side_fifo_we(vgt_debug_reg20_reg, indx_side_fifo_we) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_indx_side_fifo_we_MASK) | (indx_side_fifo_we << VGT_DEBUG_REG20_indx_side_fifo_we_SHIFT)
+#define VGT_DEBUG_REG20_SET_indx_side_fifo_full(vgt_debug_reg20_reg, indx_side_fifo_full) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_indx_side_fifo_full_MASK) | (indx_side_fifo_full << VGT_DEBUG_REG20_indx_side_fifo_full_SHIFT)
+#define VGT_DEBUG_REG20_SET_prim_buffer_empty(vgt_debug_reg20_reg, prim_buffer_empty) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_prim_buffer_empty_MASK) | (prim_buffer_empty << VGT_DEBUG_REG20_prim_buffer_empty_SHIFT)
+#define VGT_DEBUG_REG20_SET_prim_buffer_re(vgt_debug_reg20_reg, prim_buffer_re) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_prim_buffer_re_MASK) | (prim_buffer_re << VGT_DEBUG_REG20_prim_buffer_re_SHIFT)
+#define VGT_DEBUG_REG20_SET_prim_buffer_we(vgt_debug_reg20_reg, prim_buffer_we) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_prim_buffer_we_MASK) | (prim_buffer_we << VGT_DEBUG_REG20_prim_buffer_we_SHIFT)
+#define VGT_DEBUG_REG20_SET_prim_buffer_full(vgt_debug_reg20_reg, prim_buffer_full) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_prim_buffer_full_MASK) | (prim_buffer_full << VGT_DEBUG_REG20_prim_buffer_full_SHIFT)
+#define VGT_DEBUG_REG20_SET_indx_buffer_empty(vgt_debug_reg20_reg, indx_buffer_empty) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_indx_buffer_empty_MASK) | (indx_buffer_empty << VGT_DEBUG_REG20_indx_buffer_empty_SHIFT)
+#define VGT_DEBUG_REG20_SET_indx_buffer_re(vgt_debug_reg20_reg, indx_buffer_re) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_indx_buffer_re_MASK) | (indx_buffer_re << VGT_DEBUG_REG20_indx_buffer_re_SHIFT)
+#define VGT_DEBUG_REG20_SET_indx_buffer_we(vgt_debug_reg20_reg, indx_buffer_we) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_indx_buffer_we_MASK) | (indx_buffer_we << VGT_DEBUG_REG20_indx_buffer_we_SHIFT)
+#define VGT_DEBUG_REG20_SET_indx_buffer_full(vgt_debug_reg20_reg, indx_buffer_full) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_indx_buffer_full_MASK) | (indx_buffer_full << VGT_DEBUG_REG20_indx_buffer_full_SHIFT)
+#define VGT_DEBUG_REG20_SET_hold_prim(vgt_debug_reg20_reg, hold_prim) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_hold_prim_MASK) | (hold_prim << VGT_DEBUG_REG20_hold_prim_SHIFT)
+#define VGT_DEBUG_REG20_SET_sent_cnt(vgt_debug_reg20_reg, sent_cnt) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_sent_cnt_MASK) | (sent_cnt << VGT_DEBUG_REG20_sent_cnt_SHIFT)
+#define VGT_DEBUG_REG20_SET_start_of_vtx_vector(vgt_debug_reg20_reg, start_of_vtx_vector) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_start_of_vtx_vector_MASK) | (start_of_vtx_vector << VGT_DEBUG_REG20_start_of_vtx_vector_SHIFT)
+#define VGT_DEBUG_REG20_SET_clip_s_pre_hold_prim(vgt_debug_reg20_reg, clip_s_pre_hold_prim) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_clip_s_pre_hold_prim_MASK) | (clip_s_pre_hold_prim << VGT_DEBUG_REG20_clip_s_pre_hold_prim_SHIFT)
+#define VGT_DEBUG_REG20_SET_clip_p_pre_hold_prim(vgt_debug_reg20_reg, clip_p_pre_hold_prim) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_clip_p_pre_hold_prim_MASK) | (clip_p_pre_hold_prim << VGT_DEBUG_REG20_clip_p_pre_hold_prim_SHIFT)
+#define VGT_DEBUG_REG20_SET_buffered_prim_type_event(vgt_debug_reg20_reg, buffered_prim_type_event) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_buffered_prim_type_event_MASK) | (buffered_prim_type_event << VGT_DEBUG_REG20_buffered_prim_type_event_SHIFT)
+#define VGT_DEBUG_REG20_SET_out_trigger(vgt_debug_reg20_reg, out_trigger) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_out_trigger_MASK) | (out_trigger << VGT_DEBUG_REG20_out_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg20_t {
+ unsigned int prim_side_indx_valid : VGT_DEBUG_REG20_prim_side_indx_valid_SIZE;
+ unsigned int indx_side_fifo_empty : VGT_DEBUG_REG20_indx_side_fifo_empty_SIZE;
+ unsigned int indx_side_fifo_re : VGT_DEBUG_REG20_indx_side_fifo_re_SIZE;
+ unsigned int indx_side_fifo_we : VGT_DEBUG_REG20_indx_side_fifo_we_SIZE;
+ unsigned int indx_side_fifo_full : VGT_DEBUG_REG20_indx_side_fifo_full_SIZE;
+ unsigned int prim_buffer_empty : VGT_DEBUG_REG20_prim_buffer_empty_SIZE;
+ unsigned int prim_buffer_re : VGT_DEBUG_REG20_prim_buffer_re_SIZE;
+ unsigned int prim_buffer_we : VGT_DEBUG_REG20_prim_buffer_we_SIZE;
+ unsigned int prim_buffer_full : VGT_DEBUG_REG20_prim_buffer_full_SIZE;
+ unsigned int indx_buffer_empty : VGT_DEBUG_REG20_indx_buffer_empty_SIZE;
+ unsigned int indx_buffer_re : VGT_DEBUG_REG20_indx_buffer_re_SIZE;
+ unsigned int indx_buffer_we : VGT_DEBUG_REG20_indx_buffer_we_SIZE;
+ unsigned int indx_buffer_full : VGT_DEBUG_REG20_indx_buffer_full_SIZE;
+ unsigned int hold_prim : VGT_DEBUG_REG20_hold_prim_SIZE;
+ unsigned int sent_cnt : VGT_DEBUG_REG20_sent_cnt_SIZE;
+ unsigned int start_of_vtx_vector : VGT_DEBUG_REG20_start_of_vtx_vector_SIZE;
+ unsigned int clip_s_pre_hold_prim : VGT_DEBUG_REG20_clip_s_pre_hold_prim_SIZE;
+ unsigned int clip_p_pre_hold_prim : VGT_DEBUG_REG20_clip_p_pre_hold_prim_SIZE;
+ unsigned int buffered_prim_type_event : VGT_DEBUG_REG20_buffered_prim_type_event_SIZE;
+ unsigned int out_trigger : VGT_DEBUG_REG20_out_trigger_SIZE;
+ unsigned int : 5;
+ } vgt_debug_reg20_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg20_t {
+ unsigned int : 5;
+ unsigned int out_trigger : VGT_DEBUG_REG20_out_trigger_SIZE;
+ unsigned int buffered_prim_type_event : VGT_DEBUG_REG20_buffered_prim_type_event_SIZE;
+ unsigned int clip_p_pre_hold_prim : VGT_DEBUG_REG20_clip_p_pre_hold_prim_SIZE;
+ unsigned int clip_s_pre_hold_prim : VGT_DEBUG_REG20_clip_s_pre_hold_prim_SIZE;
+ unsigned int start_of_vtx_vector : VGT_DEBUG_REG20_start_of_vtx_vector_SIZE;
+ unsigned int sent_cnt : VGT_DEBUG_REG20_sent_cnt_SIZE;
+ unsigned int hold_prim : VGT_DEBUG_REG20_hold_prim_SIZE;
+ unsigned int indx_buffer_full : VGT_DEBUG_REG20_indx_buffer_full_SIZE;
+ unsigned int indx_buffer_we : VGT_DEBUG_REG20_indx_buffer_we_SIZE;
+ unsigned int indx_buffer_re : VGT_DEBUG_REG20_indx_buffer_re_SIZE;
+ unsigned int indx_buffer_empty : VGT_DEBUG_REG20_indx_buffer_empty_SIZE;
+ unsigned int prim_buffer_full : VGT_DEBUG_REG20_prim_buffer_full_SIZE;
+ unsigned int prim_buffer_we : VGT_DEBUG_REG20_prim_buffer_we_SIZE;
+ unsigned int prim_buffer_re : VGT_DEBUG_REG20_prim_buffer_re_SIZE;
+ unsigned int prim_buffer_empty : VGT_DEBUG_REG20_prim_buffer_empty_SIZE;
+ unsigned int indx_side_fifo_full : VGT_DEBUG_REG20_indx_side_fifo_full_SIZE;
+ unsigned int indx_side_fifo_we : VGT_DEBUG_REG20_indx_side_fifo_we_SIZE;
+ unsigned int indx_side_fifo_re : VGT_DEBUG_REG20_indx_side_fifo_re_SIZE;
+ unsigned int indx_side_fifo_empty : VGT_DEBUG_REG20_indx_side_fifo_empty_SIZE;
+ unsigned int prim_side_indx_valid : VGT_DEBUG_REG20_prim_side_indx_valid_SIZE;
+ } vgt_debug_reg20_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_reg20_t f;
+} vgt_debug_reg20_u;
+
+
+/*
+ * VGT_DEBUG_REG21 struct
+ */
+
+#define VGT_DEBUG_REG21_null_terminate_vtx_vector_SIZE 1
+#define VGT_DEBUG_REG21_prim_end_of_vtx_vect_flags_SIZE 3
+#define VGT_DEBUG_REG21_alloc_counter_q_SIZE 3
+#define VGT_DEBUG_REG21_curr_slot_in_vtx_vect_q_SIZE 3
+#define VGT_DEBUG_REG21_int_vtx_counter_q_SIZE 4
+#define VGT_DEBUG_REG21_curr_dealloc_distance_q_SIZE 4
+#define VGT_DEBUG_REG21_new_packet_q_SIZE 1
+#define VGT_DEBUG_REG21_new_allocate_q_SIZE 1
+#define VGT_DEBUG_REG21_num_new_unique_rel_indx_SIZE 2
+#define VGT_DEBUG_REG21_inserted_null_prim_q_SIZE 1
+#define VGT_DEBUG_REG21_insert_null_prim_SIZE 1
+#define VGT_DEBUG_REG21_buffered_prim_eop_mux_SIZE 1
+#define VGT_DEBUG_REG21_prim_buffer_empty_mux_SIZE 1
+#define VGT_DEBUG_REG21_buffered_thread_size_SIZE 1
+#define VGT_DEBUG_REG21_out_trigger_SIZE 1
+
+#define VGT_DEBUG_REG21_null_terminate_vtx_vector_SHIFT 0
+#define VGT_DEBUG_REG21_prim_end_of_vtx_vect_flags_SHIFT 1
+#define VGT_DEBUG_REG21_alloc_counter_q_SHIFT 4
+#define VGT_DEBUG_REG21_curr_slot_in_vtx_vect_q_SHIFT 7
+#define VGT_DEBUG_REG21_int_vtx_counter_q_SHIFT 10
+#define VGT_DEBUG_REG21_curr_dealloc_distance_q_SHIFT 14
+#define VGT_DEBUG_REG21_new_packet_q_SHIFT 18
+#define VGT_DEBUG_REG21_new_allocate_q_SHIFT 19
+#define VGT_DEBUG_REG21_num_new_unique_rel_indx_SHIFT 20
+#define VGT_DEBUG_REG21_inserted_null_prim_q_SHIFT 22
+#define VGT_DEBUG_REG21_insert_null_prim_SHIFT 23
+#define VGT_DEBUG_REG21_buffered_prim_eop_mux_SHIFT 24
+#define VGT_DEBUG_REG21_prim_buffer_empty_mux_SHIFT 25
+#define VGT_DEBUG_REG21_buffered_thread_size_SHIFT 26
+#define VGT_DEBUG_REG21_out_trigger_SHIFT 31
+
+#define VGT_DEBUG_REG21_null_terminate_vtx_vector_MASK 0x00000001
+#define VGT_DEBUG_REG21_prim_end_of_vtx_vect_flags_MASK 0x0000000e
+#define VGT_DEBUG_REG21_alloc_counter_q_MASK 0x00000070
+#define VGT_DEBUG_REG21_curr_slot_in_vtx_vect_q_MASK 0x00000380
+#define VGT_DEBUG_REG21_int_vtx_counter_q_MASK 0x00003c00
+#define VGT_DEBUG_REG21_curr_dealloc_distance_q_MASK 0x0003c000
+#define VGT_DEBUG_REG21_new_packet_q_MASK 0x00040000
+#define VGT_DEBUG_REG21_new_allocate_q_MASK 0x00080000
+#define VGT_DEBUG_REG21_num_new_unique_rel_indx_MASK 0x00300000
+#define VGT_DEBUG_REG21_inserted_null_prim_q_MASK 0x00400000
+#define VGT_DEBUG_REG21_insert_null_prim_MASK 0x00800000
+#define VGT_DEBUG_REG21_buffered_prim_eop_mux_MASK 0x01000000
+#define VGT_DEBUG_REG21_prim_buffer_empty_mux_MASK 0x02000000
+#define VGT_DEBUG_REG21_buffered_thread_size_MASK 0x04000000
+#define VGT_DEBUG_REG21_out_trigger_MASK 0x80000000
+
+#define VGT_DEBUG_REG21_MASK \
+ (VGT_DEBUG_REG21_null_terminate_vtx_vector_MASK | \
+ VGT_DEBUG_REG21_prim_end_of_vtx_vect_flags_MASK | \
+ VGT_DEBUG_REG21_alloc_counter_q_MASK | \
+ VGT_DEBUG_REG21_curr_slot_in_vtx_vect_q_MASK | \
+ VGT_DEBUG_REG21_int_vtx_counter_q_MASK | \
+ VGT_DEBUG_REG21_curr_dealloc_distance_q_MASK | \
+ VGT_DEBUG_REG21_new_packet_q_MASK | \
+ VGT_DEBUG_REG21_new_allocate_q_MASK | \
+ VGT_DEBUG_REG21_num_new_unique_rel_indx_MASK | \
+ VGT_DEBUG_REG21_inserted_null_prim_q_MASK | \
+ VGT_DEBUG_REG21_insert_null_prim_MASK | \
+ VGT_DEBUG_REG21_buffered_prim_eop_mux_MASK | \
+ VGT_DEBUG_REG21_prim_buffer_empty_mux_MASK | \
+ VGT_DEBUG_REG21_buffered_thread_size_MASK | \
+ VGT_DEBUG_REG21_out_trigger_MASK)
+
+#define VGT_DEBUG_REG21(null_terminate_vtx_vector, prim_end_of_vtx_vect_flags, alloc_counter_q, curr_slot_in_vtx_vect_q, int_vtx_counter_q, curr_dealloc_distance_q, new_packet_q, new_allocate_q, num_new_unique_rel_indx, inserted_null_prim_q, insert_null_prim, buffered_prim_eop_mux, prim_buffer_empty_mux, buffered_thread_size, out_trigger) \
+ ((null_terminate_vtx_vector << VGT_DEBUG_REG21_null_terminate_vtx_vector_SHIFT) | \
+ (prim_end_of_vtx_vect_flags << VGT_DEBUG_REG21_prim_end_of_vtx_vect_flags_SHIFT) | \
+ (alloc_counter_q << VGT_DEBUG_REG21_alloc_counter_q_SHIFT) | \
+ (curr_slot_in_vtx_vect_q << VGT_DEBUG_REG21_curr_slot_in_vtx_vect_q_SHIFT) | \
+ (int_vtx_counter_q << VGT_DEBUG_REG21_int_vtx_counter_q_SHIFT) | \
+ (curr_dealloc_distance_q << VGT_DEBUG_REG21_curr_dealloc_distance_q_SHIFT) | \
+ (new_packet_q << VGT_DEBUG_REG21_new_packet_q_SHIFT) | \
+ (new_allocate_q << VGT_DEBUG_REG21_new_allocate_q_SHIFT) | \
+ (num_new_unique_rel_indx << VGT_DEBUG_REG21_num_new_unique_rel_indx_SHIFT) | \
+ (inserted_null_prim_q << VGT_DEBUG_REG21_inserted_null_prim_q_SHIFT) | \
+ (insert_null_prim << VGT_DEBUG_REG21_insert_null_prim_SHIFT) | \
+ (buffered_prim_eop_mux << VGT_DEBUG_REG21_buffered_prim_eop_mux_SHIFT) | \
+ (prim_buffer_empty_mux << VGT_DEBUG_REG21_prim_buffer_empty_mux_SHIFT) | \
+ (buffered_thread_size << VGT_DEBUG_REG21_buffered_thread_size_SHIFT) | \
+ (out_trigger << VGT_DEBUG_REG21_out_trigger_SHIFT))
+
+#define VGT_DEBUG_REG21_GET_null_terminate_vtx_vector(vgt_debug_reg21) \
+ ((vgt_debug_reg21 & VGT_DEBUG_REG21_null_terminate_vtx_vector_MASK) >> VGT_DEBUG_REG21_null_terminate_vtx_vector_SHIFT)
+#define VGT_DEBUG_REG21_GET_prim_end_of_vtx_vect_flags(vgt_debug_reg21) \
+ ((vgt_debug_reg21 & VGT_DEBUG_REG21_prim_end_of_vtx_vect_flags_MASK) >> VGT_DEBUG_REG21_prim_end_of_vtx_vect_flags_SHIFT)
+#define VGT_DEBUG_REG21_GET_alloc_counter_q(vgt_debug_reg21) \
+ ((vgt_debug_reg21 & VGT_DEBUG_REG21_alloc_counter_q_MASK) >> VGT_DEBUG_REG21_alloc_counter_q_SHIFT)
+#define VGT_DEBUG_REG21_GET_curr_slot_in_vtx_vect_q(vgt_debug_reg21) \
+ ((vgt_debug_reg21 & VGT_DEBUG_REG21_curr_slot_in_vtx_vect_q_MASK) >> VGT_DEBUG_REG21_curr_slot_in_vtx_vect_q_SHIFT)
+#define VGT_DEBUG_REG21_GET_int_vtx_counter_q(vgt_debug_reg21) \
+ ((vgt_debug_reg21 & VGT_DEBUG_REG21_int_vtx_counter_q_MASK) >> VGT_DEBUG_REG21_int_vtx_counter_q_SHIFT)
+#define VGT_DEBUG_REG21_GET_curr_dealloc_distance_q(vgt_debug_reg21) \
+ ((vgt_debug_reg21 & VGT_DEBUG_REG21_curr_dealloc_distance_q_MASK) >> VGT_DEBUG_REG21_curr_dealloc_distance_q_SHIFT)
+#define VGT_DEBUG_REG21_GET_new_packet_q(vgt_debug_reg21) \
+ ((vgt_debug_reg21 & VGT_DEBUG_REG21_new_packet_q_MASK) >> VGT_DEBUG_REG21_new_packet_q_SHIFT)
+#define VGT_DEBUG_REG21_GET_new_allocate_q(vgt_debug_reg21) \
+ ((vgt_debug_reg21 & VGT_DEBUG_REG21_new_allocate_q_MASK) >> VGT_DEBUG_REG21_new_allocate_q_SHIFT)
+#define VGT_DEBUG_REG21_GET_num_new_unique_rel_indx(vgt_debug_reg21) \
+ ((vgt_debug_reg21 & VGT_DEBUG_REG21_num_new_unique_rel_indx_MASK) >> VGT_DEBUG_REG21_num_new_unique_rel_indx_SHIFT)
+#define VGT_DEBUG_REG21_GET_inserted_null_prim_q(vgt_debug_reg21) \
+ ((vgt_debug_reg21 & VGT_DEBUG_REG21_inserted_null_prim_q_MASK) >> VGT_DEBUG_REG21_inserted_null_prim_q_SHIFT)
+#define VGT_DEBUG_REG21_GET_insert_null_prim(vgt_debug_reg21) \
+ ((vgt_debug_reg21 & VGT_DEBUG_REG21_insert_null_prim_MASK) >> VGT_DEBUG_REG21_insert_null_prim_SHIFT)
+#define VGT_DEBUG_REG21_GET_buffered_prim_eop_mux(vgt_debug_reg21) \
+ ((vgt_debug_reg21 & VGT_DEBUG_REG21_buffered_prim_eop_mux_MASK) >> VGT_DEBUG_REG21_buffered_prim_eop_mux_SHIFT)
+#define VGT_DEBUG_REG21_GET_prim_buffer_empty_mux(vgt_debug_reg21) \
+ ((vgt_debug_reg21 & VGT_DEBUG_REG21_prim_buffer_empty_mux_MASK) >> VGT_DEBUG_REG21_prim_buffer_empty_mux_SHIFT)
+#define VGT_DEBUG_REG21_GET_buffered_thread_size(vgt_debug_reg21) \
+ ((vgt_debug_reg21 & VGT_DEBUG_REG21_buffered_thread_size_MASK) >> VGT_DEBUG_REG21_buffered_thread_size_SHIFT)
+#define VGT_DEBUG_REG21_GET_out_trigger(vgt_debug_reg21) \
+ ((vgt_debug_reg21 & VGT_DEBUG_REG21_out_trigger_MASK) >> VGT_DEBUG_REG21_out_trigger_SHIFT)
+
+#define VGT_DEBUG_REG21_SET_null_terminate_vtx_vector(vgt_debug_reg21_reg, null_terminate_vtx_vector) \
+ vgt_debug_reg21_reg = (vgt_debug_reg21_reg & ~VGT_DEBUG_REG21_null_terminate_vtx_vector_MASK) | (null_terminate_vtx_vector << VGT_DEBUG_REG21_null_terminate_vtx_vector_SHIFT)
+#define VGT_DEBUG_REG21_SET_prim_end_of_vtx_vect_flags(vgt_debug_reg21_reg, prim_end_of_vtx_vect_flags) \
+ vgt_debug_reg21_reg = (vgt_debug_reg21_reg & ~VGT_DEBUG_REG21_prim_end_of_vtx_vect_flags_MASK) | (prim_end_of_vtx_vect_flags << VGT_DEBUG_REG21_prim_end_of_vtx_vect_flags_SHIFT)
+#define VGT_DEBUG_REG21_SET_alloc_counter_q(vgt_debug_reg21_reg, alloc_counter_q) \
+ vgt_debug_reg21_reg = (vgt_debug_reg21_reg & ~VGT_DEBUG_REG21_alloc_counter_q_MASK) | (alloc_counter_q << VGT_DEBUG_REG21_alloc_counter_q_SHIFT)
+#define VGT_DEBUG_REG21_SET_curr_slot_in_vtx_vect_q(vgt_debug_reg21_reg, curr_slot_in_vtx_vect_q) \
+ vgt_debug_reg21_reg = (vgt_debug_reg21_reg & ~VGT_DEBUG_REG21_curr_slot_in_vtx_vect_q_MASK) | (curr_slot_in_vtx_vect_q << VGT_DEBUG_REG21_curr_slot_in_vtx_vect_q_SHIFT)
+#define VGT_DEBUG_REG21_SET_int_vtx_counter_q(vgt_debug_reg21_reg, int_vtx_counter_q) \
+ vgt_debug_reg21_reg = (vgt_debug_reg21_reg & ~VGT_DEBUG_REG21_int_vtx_counter_q_MASK) | (int_vtx_counter_q << VGT_DEBUG_REG21_int_vtx_counter_q_SHIFT)
+#define VGT_DEBUG_REG21_SET_curr_dealloc_distance_q(vgt_debug_reg21_reg, curr_dealloc_distance_q) \
+ vgt_debug_reg21_reg = (vgt_debug_reg21_reg & ~VGT_DEBUG_REG21_curr_dealloc_distance_q_MASK) | (curr_dealloc_distance_q << VGT_DEBUG_REG21_curr_dealloc_distance_q_SHIFT)
+#define VGT_DEBUG_REG21_SET_new_packet_q(vgt_debug_reg21_reg, new_packet_q) \
+ vgt_debug_reg21_reg = (vgt_debug_reg21_reg & ~VGT_DEBUG_REG21_new_packet_q_MASK) | (new_packet_q << VGT_DEBUG_REG21_new_packet_q_SHIFT)
+#define VGT_DEBUG_REG21_SET_new_allocate_q(vgt_debug_reg21_reg, new_allocate_q) \
+ vgt_debug_reg21_reg = (vgt_debug_reg21_reg & ~VGT_DEBUG_REG21_new_allocate_q_MASK) | (new_allocate_q << VGT_DEBUG_REG21_new_allocate_q_SHIFT)
+#define VGT_DEBUG_REG21_SET_num_new_unique_rel_indx(vgt_debug_reg21_reg, num_new_unique_rel_indx) \
+ vgt_debug_reg21_reg = (vgt_debug_reg21_reg & ~VGT_DEBUG_REG21_num_new_unique_rel_indx_MASK) | (num_new_unique_rel_indx << VGT_DEBUG_REG21_num_new_unique_rel_indx_SHIFT)
+#define VGT_DEBUG_REG21_SET_inserted_null_prim_q(vgt_debug_reg21_reg, inserted_null_prim_q) \
+ vgt_debug_reg21_reg = (vgt_debug_reg21_reg & ~VGT_DEBUG_REG21_inserted_null_prim_q_MASK) | (inserted_null_prim_q << VGT_DEBUG_REG21_inserted_null_prim_q_SHIFT)
+#define VGT_DEBUG_REG21_SET_insert_null_prim(vgt_debug_reg21_reg, insert_null_prim) \
+ vgt_debug_reg21_reg = (vgt_debug_reg21_reg & ~VGT_DEBUG_REG21_insert_null_prim_MASK) | (insert_null_prim << VGT_DEBUG_REG21_insert_null_prim_SHIFT)
+#define VGT_DEBUG_REG21_SET_buffered_prim_eop_mux(vgt_debug_reg21_reg, buffered_prim_eop_mux) \
+ vgt_debug_reg21_reg = (vgt_debug_reg21_reg & ~VGT_DEBUG_REG21_buffered_prim_eop_mux_MASK) | (buffered_prim_eop_mux << VGT_DEBUG_REG21_buffered_prim_eop_mux_SHIFT)
+#define VGT_DEBUG_REG21_SET_prim_buffer_empty_mux(vgt_debug_reg21_reg, prim_buffer_empty_mux) \
+ vgt_debug_reg21_reg = (vgt_debug_reg21_reg & ~VGT_DEBUG_REG21_prim_buffer_empty_mux_MASK) | (prim_buffer_empty_mux << VGT_DEBUG_REG21_prim_buffer_empty_mux_SHIFT)
+#define VGT_DEBUG_REG21_SET_buffered_thread_size(vgt_debug_reg21_reg, buffered_thread_size) \
+ vgt_debug_reg21_reg = (vgt_debug_reg21_reg & ~VGT_DEBUG_REG21_buffered_thread_size_MASK) | (buffered_thread_size << VGT_DEBUG_REG21_buffered_thread_size_SHIFT)
+#define VGT_DEBUG_REG21_SET_out_trigger(vgt_debug_reg21_reg, out_trigger) \
+ vgt_debug_reg21_reg = (vgt_debug_reg21_reg & ~VGT_DEBUG_REG21_out_trigger_MASK) | (out_trigger << VGT_DEBUG_REG21_out_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg21_t {
+ unsigned int null_terminate_vtx_vector : VGT_DEBUG_REG21_null_terminate_vtx_vector_SIZE;
+ unsigned int prim_end_of_vtx_vect_flags : VGT_DEBUG_REG21_prim_end_of_vtx_vect_flags_SIZE;
+ unsigned int alloc_counter_q : VGT_DEBUG_REG21_alloc_counter_q_SIZE;
+ unsigned int curr_slot_in_vtx_vect_q : VGT_DEBUG_REG21_curr_slot_in_vtx_vect_q_SIZE;
+ unsigned int int_vtx_counter_q : VGT_DEBUG_REG21_int_vtx_counter_q_SIZE;
+ unsigned int curr_dealloc_distance_q : VGT_DEBUG_REG21_curr_dealloc_distance_q_SIZE;
+ unsigned int new_packet_q : VGT_DEBUG_REG21_new_packet_q_SIZE;
+ unsigned int new_allocate_q : VGT_DEBUG_REG21_new_allocate_q_SIZE;
+ unsigned int num_new_unique_rel_indx : VGT_DEBUG_REG21_num_new_unique_rel_indx_SIZE;
+ unsigned int inserted_null_prim_q : VGT_DEBUG_REG21_inserted_null_prim_q_SIZE;
+ unsigned int insert_null_prim : VGT_DEBUG_REG21_insert_null_prim_SIZE;
+ unsigned int buffered_prim_eop_mux : VGT_DEBUG_REG21_buffered_prim_eop_mux_SIZE;
+ unsigned int prim_buffer_empty_mux : VGT_DEBUG_REG21_prim_buffer_empty_mux_SIZE;
+ unsigned int buffered_thread_size : VGT_DEBUG_REG21_buffered_thread_size_SIZE;
+ unsigned int : 4;
+ unsigned int out_trigger : VGT_DEBUG_REG21_out_trigger_SIZE;
+ } vgt_debug_reg21_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg21_t {
+ unsigned int out_trigger : VGT_DEBUG_REG21_out_trigger_SIZE;
+ unsigned int : 4;
+ unsigned int buffered_thread_size : VGT_DEBUG_REG21_buffered_thread_size_SIZE;
+ unsigned int prim_buffer_empty_mux : VGT_DEBUG_REG21_prim_buffer_empty_mux_SIZE;
+ unsigned int buffered_prim_eop_mux : VGT_DEBUG_REG21_buffered_prim_eop_mux_SIZE;
+ unsigned int insert_null_prim : VGT_DEBUG_REG21_insert_null_prim_SIZE;
+ unsigned int inserted_null_prim_q : VGT_DEBUG_REG21_inserted_null_prim_q_SIZE;
+ unsigned int num_new_unique_rel_indx : VGT_DEBUG_REG21_num_new_unique_rel_indx_SIZE;
+ unsigned int new_allocate_q : VGT_DEBUG_REG21_new_allocate_q_SIZE;
+ unsigned int new_packet_q : VGT_DEBUG_REG21_new_packet_q_SIZE;
+ unsigned int curr_dealloc_distance_q : VGT_DEBUG_REG21_curr_dealloc_distance_q_SIZE;
+ unsigned int int_vtx_counter_q : VGT_DEBUG_REG21_int_vtx_counter_q_SIZE;
+ unsigned int curr_slot_in_vtx_vect_q : VGT_DEBUG_REG21_curr_slot_in_vtx_vect_q_SIZE;
+ unsigned int alloc_counter_q : VGT_DEBUG_REG21_alloc_counter_q_SIZE;
+ unsigned int prim_end_of_vtx_vect_flags : VGT_DEBUG_REG21_prim_end_of_vtx_vect_flags_SIZE;
+ unsigned int null_terminate_vtx_vector : VGT_DEBUG_REG21_null_terminate_vtx_vector_SIZE;
+ } vgt_debug_reg21_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_reg21_t f;
+} vgt_debug_reg21_u;
+
+
+/*
+ * VGT_CRC_SQ_DATA struct
+ */
+
+#define VGT_CRC_SQ_DATA_CRC_SIZE 32
+
+#define VGT_CRC_SQ_DATA_CRC_SHIFT 0
+
+#define VGT_CRC_SQ_DATA_CRC_MASK 0xffffffff
+
+#define VGT_CRC_SQ_DATA_MASK \
+ (VGT_CRC_SQ_DATA_CRC_MASK)
+
+#define VGT_CRC_SQ_DATA(crc) \
+ ((crc << VGT_CRC_SQ_DATA_CRC_SHIFT))
+
+#define VGT_CRC_SQ_DATA_GET_CRC(vgt_crc_sq_data) \
+ ((vgt_crc_sq_data & VGT_CRC_SQ_DATA_CRC_MASK) >> VGT_CRC_SQ_DATA_CRC_SHIFT)
+
+#define VGT_CRC_SQ_DATA_SET_CRC(vgt_crc_sq_data_reg, crc) \
+ vgt_crc_sq_data_reg = (vgt_crc_sq_data_reg & ~VGT_CRC_SQ_DATA_CRC_MASK) | (crc << VGT_CRC_SQ_DATA_CRC_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_crc_sq_data_t {
+ unsigned int crc : VGT_CRC_SQ_DATA_CRC_SIZE;
+ } vgt_crc_sq_data_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_crc_sq_data_t {
+ unsigned int crc : VGT_CRC_SQ_DATA_CRC_SIZE;
+ } vgt_crc_sq_data_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_crc_sq_data_t f;
+} vgt_crc_sq_data_u;
+
+
+/*
+ * VGT_CRC_SQ_CTRL struct
+ */
+
+#define VGT_CRC_SQ_CTRL_CRC_SIZE 32
+
+#define VGT_CRC_SQ_CTRL_CRC_SHIFT 0
+
+#define VGT_CRC_SQ_CTRL_CRC_MASK 0xffffffff
+
+#define VGT_CRC_SQ_CTRL_MASK \
+ (VGT_CRC_SQ_CTRL_CRC_MASK)
+
+#define VGT_CRC_SQ_CTRL(crc) \
+ ((crc << VGT_CRC_SQ_CTRL_CRC_SHIFT))
+
+#define VGT_CRC_SQ_CTRL_GET_CRC(vgt_crc_sq_ctrl) \
+ ((vgt_crc_sq_ctrl & VGT_CRC_SQ_CTRL_CRC_MASK) >> VGT_CRC_SQ_CTRL_CRC_SHIFT)
+
+#define VGT_CRC_SQ_CTRL_SET_CRC(vgt_crc_sq_ctrl_reg, crc) \
+ vgt_crc_sq_ctrl_reg = (vgt_crc_sq_ctrl_reg & ~VGT_CRC_SQ_CTRL_CRC_MASK) | (crc << VGT_CRC_SQ_CTRL_CRC_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_crc_sq_ctrl_t {
+ unsigned int crc : VGT_CRC_SQ_CTRL_CRC_SIZE;
+ } vgt_crc_sq_ctrl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_crc_sq_ctrl_t {
+ unsigned int crc : VGT_CRC_SQ_CTRL_CRC_SIZE;
+ } vgt_crc_sq_ctrl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_crc_sq_ctrl_t f;
+} vgt_crc_sq_ctrl_u;
+
+
+/*
+ * VGT_PERFCOUNTER0_SELECT struct
+ */
+
+#define VGT_PERFCOUNTER0_SELECT_PERF_SEL_SIZE 8
+
+#define VGT_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT 0
+
+#define VGT_PERFCOUNTER0_SELECT_PERF_SEL_MASK 0x000000ff
+
+#define VGT_PERFCOUNTER0_SELECT_MASK \
+ (VGT_PERFCOUNTER0_SELECT_PERF_SEL_MASK)
+
+#define VGT_PERFCOUNTER0_SELECT(perf_sel) \
+ ((perf_sel << VGT_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT))
+
+#define VGT_PERFCOUNTER0_SELECT_GET_PERF_SEL(vgt_perfcounter0_select) \
+ ((vgt_perfcounter0_select & VGT_PERFCOUNTER0_SELECT_PERF_SEL_MASK) >> VGT_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT)
+
+#define VGT_PERFCOUNTER0_SELECT_SET_PERF_SEL(vgt_perfcounter0_select_reg, perf_sel) \
+ vgt_perfcounter0_select_reg = (vgt_perfcounter0_select_reg & ~VGT_PERFCOUNTER0_SELECT_PERF_SEL_MASK) | (perf_sel << VGT_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter0_select_t {
+ unsigned int perf_sel : VGT_PERFCOUNTER0_SELECT_PERF_SEL_SIZE;
+ unsigned int : 24;
+ } vgt_perfcounter0_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter0_select_t {
+ unsigned int : 24;
+ unsigned int perf_sel : VGT_PERFCOUNTER0_SELECT_PERF_SEL_SIZE;
+ } vgt_perfcounter0_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_perfcounter0_select_t f;
+} vgt_perfcounter0_select_u;
+
+
+/*
+ * VGT_PERFCOUNTER1_SELECT struct
+ */
+
+#define VGT_PERFCOUNTER1_SELECT_PERF_SEL_SIZE 8
+
+#define VGT_PERFCOUNTER1_SELECT_PERF_SEL_SHIFT 0
+
+#define VGT_PERFCOUNTER1_SELECT_PERF_SEL_MASK 0x000000ff
+
+#define VGT_PERFCOUNTER1_SELECT_MASK \
+ (VGT_PERFCOUNTER1_SELECT_PERF_SEL_MASK)
+
+#define VGT_PERFCOUNTER1_SELECT(perf_sel) \
+ ((perf_sel << VGT_PERFCOUNTER1_SELECT_PERF_SEL_SHIFT))
+
+#define VGT_PERFCOUNTER1_SELECT_GET_PERF_SEL(vgt_perfcounter1_select) \
+ ((vgt_perfcounter1_select & VGT_PERFCOUNTER1_SELECT_PERF_SEL_MASK) >> VGT_PERFCOUNTER1_SELECT_PERF_SEL_SHIFT)
+
+#define VGT_PERFCOUNTER1_SELECT_SET_PERF_SEL(vgt_perfcounter1_select_reg, perf_sel) \
+ vgt_perfcounter1_select_reg = (vgt_perfcounter1_select_reg & ~VGT_PERFCOUNTER1_SELECT_PERF_SEL_MASK) | (perf_sel << VGT_PERFCOUNTER1_SELECT_PERF_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter1_select_t {
+ unsigned int perf_sel : VGT_PERFCOUNTER1_SELECT_PERF_SEL_SIZE;
+ unsigned int : 24;
+ } vgt_perfcounter1_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter1_select_t {
+ unsigned int : 24;
+ unsigned int perf_sel : VGT_PERFCOUNTER1_SELECT_PERF_SEL_SIZE;
+ } vgt_perfcounter1_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_perfcounter1_select_t f;
+} vgt_perfcounter1_select_u;
+
+
+/*
+ * VGT_PERFCOUNTER2_SELECT struct
+ */
+
+#define VGT_PERFCOUNTER2_SELECT_PERF_SEL_SIZE 8
+
+#define VGT_PERFCOUNTER2_SELECT_PERF_SEL_SHIFT 0
+
+#define VGT_PERFCOUNTER2_SELECT_PERF_SEL_MASK 0x000000ff
+
+#define VGT_PERFCOUNTER2_SELECT_MASK \
+ (VGT_PERFCOUNTER2_SELECT_PERF_SEL_MASK)
+
+#define VGT_PERFCOUNTER2_SELECT(perf_sel) \
+ ((perf_sel << VGT_PERFCOUNTER2_SELECT_PERF_SEL_SHIFT))
+
+#define VGT_PERFCOUNTER2_SELECT_GET_PERF_SEL(vgt_perfcounter2_select) \
+ ((vgt_perfcounter2_select & VGT_PERFCOUNTER2_SELECT_PERF_SEL_MASK) >> VGT_PERFCOUNTER2_SELECT_PERF_SEL_SHIFT)
+
+#define VGT_PERFCOUNTER2_SELECT_SET_PERF_SEL(vgt_perfcounter2_select_reg, perf_sel) \
+ vgt_perfcounter2_select_reg = (vgt_perfcounter2_select_reg & ~VGT_PERFCOUNTER2_SELECT_PERF_SEL_MASK) | (perf_sel << VGT_PERFCOUNTER2_SELECT_PERF_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter2_select_t {
+ unsigned int perf_sel : VGT_PERFCOUNTER2_SELECT_PERF_SEL_SIZE;
+ unsigned int : 24;
+ } vgt_perfcounter2_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter2_select_t {
+ unsigned int : 24;
+ unsigned int perf_sel : VGT_PERFCOUNTER2_SELECT_PERF_SEL_SIZE;
+ } vgt_perfcounter2_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_perfcounter2_select_t f;
+} vgt_perfcounter2_select_u;
+
+
+/*
+ * VGT_PERFCOUNTER3_SELECT struct
+ */
+
+#define VGT_PERFCOUNTER3_SELECT_PERF_SEL_SIZE 8
+
+#define VGT_PERFCOUNTER3_SELECT_PERF_SEL_SHIFT 0
+
+#define VGT_PERFCOUNTER3_SELECT_PERF_SEL_MASK 0x000000ff
+
+#define VGT_PERFCOUNTER3_SELECT_MASK \
+ (VGT_PERFCOUNTER3_SELECT_PERF_SEL_MASK)
+
+#define VGT_PERFCOUNTER3_SELECT(perf_sel) \
+ ((perf_sel << VGT_PERFCOUNTER3_SELECT_PERF_SEL_SHIFT))
+
+#define VGT_PERFCOUNTER3_SELECT_GET_PERF_SEL(vgt_perfcounter3_select) \
+ ((vgt_perfcounter3_select & VGT_PERFCOUNTER3_SELECT_PERF_SEL_MASK) >> VGT_PERFCOUNTER3_SELECT_PERF_SEL_SHIFT)
+
+#define VGT_PERFCOUNTER3_SELECT_SET_PERF_SEL(vgt_perfcounter3_select_reg, perf_sel) \
+ vgt_perfcounter3_select_reg = (vgt_perfcounter3_select_reg & ~VGT_PERFCOUNTER3_SELECT_PERF_SEL_MASK) | (perf_sel << VGT_PERFCOUNTER3_SELECT_PERF_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter3_select_t {
+ unsigned int perf_sel : VGT_PERFCOUNTER3_SELECT_PERF_SEL_SIZE;
+ unsigned int : 24;
+ } vgt_perfcounter3_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter3_select_t {
+ unsigned int : 24;
+ unsigned int perf_sel : VGT_PERFCOUNTER3_SELECT_PERF_SEL_SIZE;
+ } vgt_perfcounter3_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_perfcounter3_select_t f;
+} vgt_perfcounter3_select_u;
+
+
+/*
+ * VGT_PERFCOUNTER0_LOW struct
+ */
+
+#define VGT_PERFCOUNTER0_LOW_PERF_COUNT_SIZE 32
+
+#define VGT_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT 0
+
+#define VGT_PERFCOUNTER0_LOW_PERF_COUNT_MASK 0xffffffff
+
+#define VGT_PERFCOUNTER0_LOW_MASK \
+ (VGT_PERFCOUNTER0_LOW_PERF_COUNT_MASK)
+
+#define VGT_PERFCOUNTER0_LOW(perf_count) \
+ ((perf_count << VGT_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT))
+
+#define VGT_PERFCOUNTER0_LOW_GET_PERF_COUNT(vgt_perfcounter0_low) \
+ ((vgt_perfcounter0_low & VGT_PERFCOUNTER0_LOW_PERF_COUNT_MASK) >> VGT_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT)
+
+#define VGT_PERFCOUNTER0_LOW_SET_PERF_COUNT(vgt_perfcounter0_low_reg, perf_count) \
+ vgt_perfcounter0_low_reg = (vgt_perfcounter0_low_reg & ~VGT_PERFCOUNTER0_LOW_PERF_COUNT_MASK) | (perf_count << VGT_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter0_low_t {
+ unsigned int perf_count : VGT_PERFCOUNTER0_LOW_PERF_COUNT_SIZE;
+ } vgt_perfcounter0_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter0_low_t {
+ unsigned int perf_count : VGT_PERFCOUNTER0_LOW_PERF_COUNT_SIZE;
+ } vgt_perfcounter0_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_perfcounter0_low_t f;
+} vgt_perfcounter0_low_u;
+
+
+/*
+ * VGT_PERFCOUNTER1_LOW struct
+ */
+
+#define VGT_PERFCOUNTER1_LOW_PERF_COUNT_SIZE 32
+
+#define VGT_PERFCOUNTER1_LOW_PERF_COUNT_SHIFT 0
+
+#define VGT_PERFCOUNTER1_LOW_PERF_COUNT_MASK 0xffffffff
+
+#define VGT_PERFCOUNTER1_LOW_MASK \
+ (VGT_PERFCOUNTER1_LOW_PERF_COUNT_MASK)
+
+#define VGT_PERFCOUNTER1_LOW(perf_count) \
+ ((perf_count << VGT_PERFCOUNTER1_LOW_PERF_COUNT_SHIFT))
+
+#define VGT_PERFCOUNTER1_LOW_GET_PERF_COUNT(vgt_perfcounter1_low) \
+ ((vgt_perfcounter1_low & VGT_PERFCOUNTER1_LOW_PERF_COUNT_MASK) >> VGT_PERFCOUNTER1_LOW_PERF_COUNT_SHIFT)
+
+#define VGT_PERFCOUNTER1_LOW_SET_PERF_COUNT(vgt_perfcounter1_low_reg, perf_count) \
+ vgt_perfcounter1_low_reg = (vgt_perfcounter1_low_reg & ~VGT_PERFCOUNTER1_LOW_PERF_COUNT_MASK) | (perf_count << VGT_PERFCOUNTER1_LOW_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter1_low_t {
+ unsigned int perf_count : VGT_PERFCOUNTER1_LOW_PERF_COUNT_SIZE;
+ } vgt_perfcounter1_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter1_low_t {
+ unsigned int perf_count : VGT_PERFCOUNTER1_LOW_PERF_COUNT_SIZE;
+ } vgt_perfcounter1_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_perfcounter1_low_t f;
+} vgt_perfcounter1_low_u;
+
+
+/*
+ * VGT_PERFCOUNTER2_LOW struct
+ */
+
+#define VGT_PERFCOUNTER2_LOW_PERF_COUNT_SIZE 32
+
+#define VGT_PERFCOUNTER2_LOW_PERF_COUNT_SHIFT 0
+
+#define VGT_PERFCOUNTER2_LOW_PERF_COUNT_MASK 0xffffffff
+
+#define VGT_PERFCOUNTER2_LOW_MASK \
+ (VGT_PERFCOUNTER2_LOW_PERF_COUNT_MASK)
+
+#define VGT_PERFCOUNTER2_LOW(perf_count) \
+ ((perf_count << VGT_PERFCOUNTER2_LOW_PERF_COUNT_SHIFT))
+
+#define VGT_PERFCOUNTER2_LOW_GET_PERF_COUNT(vgt_perfcounter2_low) \
+ ((vgt_perfcounter2_low & VGT_PERFCOUNTER2_LOW_PERF_COUNT_MASK) >> VGT_PERFCOUNTER2_LOW_PERF_COUNT_SHIFT)
+
+#define VGT_PERFCOUNTER2_LOW_SET_PERF_COUNT(vgt_perfcounter2_low_reg, perf_count) \
+ vgt_perfcounter2_low_reg = (vgt_perfcounter2_low_reg & ~VGT_PERFCOUNTER2_LOW_PERF_COUNT_MASK) | (perf_count << VGT_PERFCOUNTER2_LOW_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter2_low_t {
+ unsigned int perf_count : VGT_PERFCOUNTER2_LOW_PERF_COUNT_SIZE;
+ } vgt_perfcounter2_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter2_low_t {
+ unsigned int perf_count : VGT_PERFCOUNTER2_LOW_PERF_COUNT_SIZE;
+ } vgt_perfcounter2_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_perfcounter2_low_t f;
+} vgt_perfcounter2_low_u;
+
+
+/*
+ * VGT_PERFCOUNTER3_LOW struct
+ */
+
+#define VGT_PERFCOUNTER3_LOW_PERF_COUNT_SIZE 32
+
+#define VGT_PERFCOUNTER3_LOW_PERF_COUNT_SHIFT 0
+
+#define VGT_PERFCOUNTER3_LOW_PERF_COUNT_MASK 0xffffffff
+
+#define VGT_PERFCOUNTER3_LOW_MASK \
+ (VGT_PERFCOUNTER3_LOW_PERF_COUNT_MASK)
+
+#define VGT_PERFCOUNTER3_LOW(perf_count) \
+ ((perf_count << VGT_PERFCOUNTER3_LOW_PERF_COUNT_SHIFT))
+
+#define VGT_PERFCOUNTER3_LOW_GET_PERF_COUNT(vgt_perfcounter3_low) \
+ ((vgt_perfcounter3_low & VGT_PERFCOUNTER3_LOW_PERF_COUNT_MASK) >> VGT_PERFCOUNTER3_LOW_PERF_COUNT_SHIFT)
+
+#define VGT_PERFCOUNTER3_LOW_SET_PERF_COUNT(vgt_perfcounter3_low_reg, perf_count) \
+ vgt_perfcounter3_low_reg = (vgt_perfcounter3_low_reg & ~VGT_PERFCOUNTER3_LOW_PERF_COUNT_MASK) | (perf_count << VGT_PERFCOUNTER3_LOW_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter3_low_t {
+ unsigned int perf_count : VGT_PERFCOUNTER3_LOW_PERF_COUNT_SIZE;
+ } vgt_perfcounter3_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter3_low_t {
+ unsigned int perf_count : VGT_PERFCOUNTER3_LOW_PERF_COUNT_SIZE;
+ } vgt_perfcounter3_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_perfcounter3_low_t f;
+} vgt_perfcounter3_low_u;
+
+
+/*
+ * VGT_PERFCOUNTER0_HI struct
+ */
+
+#define VGT_PERFCOUNTER0_HI_PERF_COUNT_SIZE 16
+
+#define VGT_PERFCOUNTER0_HI_PERF_COUNT_SHIFT 0
+
+#define VGT_PERFCOUNTER0_HI_PERF_COUNT_MASK 0x0000ffff
+
+#define VGT_PERFCOUNTER0_HI_MASK \
+ (VGT_PERFCOUNTER0_HI_PERF_COUNT_MASK)
+
+#define VGT_PERFCOUNTER0_HI(perf_count) \
+ ((perf_count << VGT_PERFCOUNTER0_HI_PERF_COUNT_SHIFT))
+
+#define VGT_PERFCOUNTER0_HI_GET_PERF_COUNT(vgt_perfcounter0_hi) \
+ ((vgt_perfcounter0_hi & VGT_PERFCOUNTER0_HI_PERF_COUNT_MASK) >> VGT_PERFCOUNTER0_HI_PERF_COUNT_SHIFT)
+
+#define VGT_PERFCOUNTER0_HI_SET_PERF_COUNT(vgt_perfcounter0_hi_reg, perf_count) \
+ vgt_perfcounter0_hi_reg = (vgt_perfcounter0_hi_reg & ~VGT_PERFCOUNTER0_HI_PERF_COUNT_MASK) | (perf_count << VGT_PERFCOUNTER0_HI_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter0_hi_t {
+ unsigned int perf_count : VGT_PERFCOUNTER0_HI_PERF_COUNT_SIZE;
+ unsigned int : 16;
+ } vgt_perfcounter0_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter0_hi_t {
+ unsigned int : 16;
+ unsigned int perf_count : VGT_PERFCOUNTER0_HI_PERF_COUNT_SIZE;
+ } vgt_perfcounter0_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_perfcounter0_hi_t f;
+} vgt_perfcounter0_hi_u;
+
+
+/*
+ * VGT_PERFCOUNTER1_HI struct
+ */
+
+#define VGT_PERFCOUNTER1_HI_PERF_COUNT_SIZE 16
+
+#define VGT_PERFCOUNTER1_HI_PERF_COUNT_SHIFT 0
+
+#define VGT_PERFCOUNTER1_HI_PERF_COUNT_MASK 0x0000ffff
+
+#define VGT_PERFCOUNTER1_HI_MASK \
+ (VGT_PERFCOUNTER1_HI_PERF_COUNT_MASK)
+
+#define VGT_PERFCOUNTER1_HI(perf_count) \
+ ((perf_count << VGT_PERFCOUNTER1_HI_PERF_COUNT_SHIFT))
+
+#define VGT_PERFCOUNTER1_HI_GET_PERF_COUNT(vgt_perfcounter1_hi) \
+ ((vgt_perfcounter1_hi & VGT_PERFCOUNTER1_HI_PERF_COUNT_MASK) >> VGT_PERFCOUNTER1_HI_PERF_COUNT_SHIFT)
+
+#define VGT_PERFCOUNTER1_HI_SET_PERF_COUNT(vgt_perfcounter1_hi_reg, perf_count) \
+ vgt_perfcounter1_hi_reg = (vgt_perfcounter1_hi_reg & ~VGT_PERFCOUNTER1_HI_PERF_COUNT_MASK) | (perf_count << VGT_PERFCOUNTER1_HI_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter1_hi_t {
+ unsigned int perf_count : VGT_PERFCOUNTER1_HI_PERF_COUNT_SIZE;
+ unsigned int : 16;
+ } vgt_perfcounter1_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter1_hi_t {
+ unsigned int : 16;
+ unsigned int perf_count : VGT_PERFCOUNTER1_HI_PERF_COUNT_SIZE;
+ } vgt_perfcounter1_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_perfcounter1_hi_t f;
+} vgt_perfcounter1_hi_u;
+
+
+/*
+ * VGT_PERFCOUNTER2_HI struct
+ */
+
+#define VGT_PERFCOUNTER2_HI_PERF_COUNT_SIZE 16
+
+#define VGT_PERFCOUNTER2_HI_PERF_COUNT_SHIFT 0
+
+#define VGT_PERFCOUNTER2_HI_PERF_COUNT_MASK 0x0000ffff
+
+#define VGT_PERFCOUNTER2_HI_MASK \
+ (VGT_PERFCOUNTER2_HI_PERF_COUNT_MASK)
+
+#define VGT_PERFCOUNTER2_HI(perf_count) \
+ ((perf_count << VGT_PERFCOUNTER2_HI_PERF_COUNT_SHIFT))
+
+#define VGT_PERFCOUNTER2_HI_GET_PERF_COUNT(vgt_perfcounter2_hi) \
+ ((vgt_perfcounter2_hi & VGT_PERFCOUNTER2_HI_PERF_COUNT_MASK) >> VGT_PERFCOUNTER2_HI_PERF_COUNT_SHIFT)
+
+#define VGT_PERFCOUNTER2_HI_SET_PERF_COUNT(vgt_perfcounter2_hi_reg, perf_count) \
+ vgt_perfcounter2_hi_reg = (vgt_perfcounter2_hi_reg & ~VGT_PERFCOUNTER2_HI_PERF_COUNT_MASK) | (perf_count << VGT_PERFCOUNTER2_HI_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter2_hi_t {
+ unsigned int perf_count : VGT_PERFCOUNTER2_HI_PERF_COUNT_SIZE;
+ unsigned int : 16;
+ } vgt_perfcounter2_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter2_hi_t {
+ unsigned int : 16;
+ unsigned int perf_count : VGT_PERFCOUNTER2_HI_PERF_COUNT_SIZE;
+ } vgt_perfcounter2_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_perfcounter2_hi_t f;
+} vgt_perfcounter2_hi_u;
+
+
+/*
+ * VGT_PERFCOUNTER3_HI struct
+ */
+
+#define VGT_PERFCOUNTER3_HI_PERF_COUNT_SIZE 16
+
+#define VGT_PERFCOUNTER3_HI_PERF_COUNT_SHIFT 0
+
+#define VGT_PERFCOUNTER3_HI_PERF_COUNT_MASK 0x0000ffff
+
+#define VGT_PERFCOUNTER3_HI_MASK \
+ (VGT_PERFCOUNTER3_HI_PERF_COUNT_MASK)
+
+#define VGT_PERFCOUNTER3_HI(perf_count) \
+ ((perf_count << VGT_PERFCOUNTER3_HI_PERF_COUNT_SHIFT))
+
+#define VGT_PERFCOUNTER3_HI_GET_PERF_COUNT(vgt_perfcounter3_hi) \
+ ((vgt_perfcounter3_hi & VGT_PERFCOUNTER3_HI_PERF_COUNT_MASK) >> VGT_PERFCOUNTER3_HI_PERF_COUNT_SHIFT)
+
+#define VGT_PERFCOUNTER3_HI_SET_PERF_COUNT(vgt_perfcounter3_hi_reg, perf_count) \
+ vgt_perfcounter3_hi_reg = (vgt_perfcounter3_hi_reg & ~VGT_PERFCOUNTER3_HI_PERF_COUNT_MASK) | (perf_count << VGT_PERFCOUNTER3_HI_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter3_hi_t {
+ unsigned int perf_count : VGT_PERFCOUNTER3_HI_PERF_COUNT_SIZE;
+ unsigned int : 16;
+ } vgt_perfcounter3_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter3_hi_t {
+ unsigned int : 16;
+ unsigned int perf_count : VGT_PERFCOUNTER3_HI_PERF_COUNT_SIZE;
+ } vgt_perfcounter3_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_perfcounter3_hi_t f;
+} vgt_perfcounter3_hi_u;
+
+
+#endif
+
+
+#if !defined (_SQ_FIDDLE_H)
+#define _SQ_FIDDLE_H
+
+/*******************************************************
+ * Enums
+ *******************************************************/
+
+
+/*******************************************************
+ * Values
+ *******************************************************/
+
+
+/*******************************************************
+ * Structures
+ *******************************************************/
+
+/*
+ * SQ_GPR_MANAGEMENT struct
+ */
+
+#define SQ_GPR_MANAGEMENT_REG_DYNAMIC_SIZE 1
+#define SQ_GPR_MANAGEMENT_REG_SIZE_PIX_SIZE 7
+#define SQ_GPR_MANAGEMENT_REG_SIZE_VTX_SIZE 7
+
+#define SQ_GPR_MANAGEMENT_REG_DYNAMIC_SHIFT 0
+#define SQ_GPR_MANAGEMENT_REG_SIZE_PIX_SHIFT 4
+#define SQ_GPR_MANAGEMENT_REG_SIZE_VTX_SHIFT 12
+
+#define SQ_GPR_MANAGEMENT_REG_DYNAMIC_MASK 0x00000001
+#define SQ_GPR_MANAGEMENT_REG_SIZE_PIX_MASK 0x000007f0
+#define SQ_GPR_MANAGEMENT_REG_SIZE_VTX_MASK 0x0007f000
+
+#define SQ_GPR_MANAGEMENT_MASK \
+ (SQ_GPR_MANAGEMENT_REG_DYNAMIC_MASK | \
+ SQ_GPR_MANAGEMENT_REG_SIZE_PIX_MASK | \
+ SQ_GPR_MANAGEMENT_REG_SIZE_VTX_MASK)
+
+#define SQ_GPR_MANAGEMENT(reg_dynamic, reg_size_pix, reg_size_vtx) \
+ ((reg_dynamic << SQ_GPR_MANAGEMENT_REG_DYNAMIC_SHIFT) | \
+ (reg_size_pix << SQ_GPR_MANAGEMENT_REG_SIZE_PIX_SHIFT) | \
+ (reg_size_vtx << SQ_GPR_MANAGEMENT_REG_SIZE_VTX_SHIFT))
+
+#define SQ_GPR_MANAGEMENT_GET_REG_DYNAMIC(sq_gpr_management) \
+ ((sq_gpr_management & SQ_GPR_MANAGEMENT_REG_DYNAMIC_MASK) >> SQ_GPR_MANAGEMENT_REG_DYNAMIC_SHIFT)
+#define SQ_GPR_MANAGEMENT_GET_REG_SIZE_PIX(sq_gpr_management) \
+ ((sq_gpr_management & SQ_GPR_MANAGEMENT_REG_SIZE_PIX_MASK) >> SQ_GPR_MANAGEMENT_REG_SIZE_PIX_SHIFT)
+#define SQ_GPR_MANAGEMENT_GET_REG_SIZE_VTX(sq_gpr_management) \
+ ((sq_gpr_management & SQ_GPR_MANAGEMENT_REG_SIZE_VTX_MASK) >> SQ_GPR_MANAGEMENT_REG_SIZE_VTX_SHIFT)
+
+#define SQ_GPR_MANAGEMENT_SET_REG_DYNAMIC(sq_gpr_management_reg, reg_dynamic) \
+ sq_gpr_management_reg = (sq_gpr_management_reg & ~SQ_GPR_MANAGEMENT_REG_DYNAMIC_MASK) | (reg_dynamic << SQ_GPR_MANAGEMENT_REG_DYNAMIC_SHIFT)
+#define SQ_GPR_MANAGEMENT_SET_REG_SIZE_PIX(sq_gpr_management_reg, reg_size_pix) \
+ sq_gpr_management_reg = (sq_gpr_management_reg & ~SQ_GPR_MANAGEMENT_REG_SIZE_PIX_MASK) | (reg_size_pix << SQ_GPR_MANAGEMENT_REG_SIZE_PIX_SHIFT)
+#define SQ_GPR_MANAGEMENT_SET_REG_SIZE_VTX(sq_gpr_management_reg, reg_size_vtx) \
+ sq_gpr_management_reg = (sq_gpr_management_reg & ~SQ_GPR_MANAGEMENT_REG_SIZE_VTX_MASK) | (reg_size_vtx << SQ_GPR_MANAGEMENT_REG_SIZE_VTX_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_gpr_management_t {
+ unsigned int reg_dynamic : SQ_GPR_MANAGEMENT_REG_DYNAMIC_SIZE;
+ unsigned int : 3;
+ unsigned int reg_size_pix : SQ_GPR_MANAGEMENT_REG_SIZE_PIX_SIZE;
+ unsigned int : 1;
+ unsigned int reg_size_vtx : SQ_GPR_MANAGEMENT_REG_SIZE_VTX_SIZE;
+ unsigned int : 13;
+ } sq_gpr_management_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_gpr_management_t {
+ unsigned int : 13;
+ unsigned int reg_size_vtx : SQ_GPR_MANAGEMENT_REG_SIZE_VTX_SIZE;
+ unsigned int : 1;
+ unsigned int reg_size_pix : SQ_GPR_MANAGEMENT_REG_SIZE_PIX_SIZE;
+ unsigned int : 3;
+ unsigned int reg_dynamic : SQ_GPR_MANAGEMENT_REG_DYNAMIC_SIZE;
+ } sq_gpr_management_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_gpr_management_t f;
+} sq_gpr_management_u;
+
+
+/*
+ * SQ_FLOW_CONTROL struct
+ */
+
+#define SQ_FLOW_CONTROL_INPUT_ARBITRATION_POLICY_SIZE 2
+#define SQ_FLOW_CONTROL_ONE_THREAD_SIZE 1
+#define SQ_FLOW_CONTROL_ONE_ALU_SIZE 1
+#define SQ_FLOW_CONTROL_CF_WR_BASE_SIZE 4
+#define SQ_FLOW_CONTROL_NO_PV_PS_SIZE 1
+#define SQ_FLOW_CONTROL_NO_LOOP_EXIT_SIZE 1
+#define SQ_FLOW_CONTROL_NO_CEXEC_OPTIMIZE_SIZE 1
+#define SQ_FLOW_CONTROL_TEXTURE_ARBITRATION_POLICY_SIZE 2
+#define SQ_FLOW_CONTROL_VC_ARBITRATION_POLICY_SIZE 1
+#define SQ_FLOW_CONTROL_ALU_ARBITRATION_POLICY_SIZE 1
+#define SQ_FLOW_CONTROL_NO_ARB_EJECT_SIZE 1
+#define SQ_FLOW_CONTROL_NO_CFS_EJECT_SIZE 1
+#define SQ_FLOW_CONTROL_POS_EXP_PRIORITY_SIZE 1
+#define SQ_FLOW_CONTROL_NO_EARLY_THREAD_TERMINATION_SIZE 1
+#define SQ_FLOW_CONTROL_PS_PREFETCH_COLOR_ALLOC_SIZE 1
+
+#define SQ_FLOW_CONTROL_INPUT_ARBITRATION_POLICY_SHIFT 0
+#define SQ_FLOW_CONTROL_ONE_THREAD_SHIFT 4
+#define SQ_FLOW_CONTROL_ONE_ALU_SHIFT 8
+#define SQ_FLOW_CONTROL_CF_WR_BASE_SHIFT 12
+#define SQ_FLOW_CONTROL_NO_PV_PS_SHIFT 16
+#define SQ_FLOW_CONTROL_NO_LOOP_EXIT_SHIFT 17
+#define SQ_FLOW_CONTROL_NO_CEXEC_OPTIMIZE_SHIFT 18
+#define SQ_FLOW_CONTROL_TEXTURE_ARBITRATION_POLICY_SHIFT 19
+#define SQ_FLOW_CONTROL_VC_ARBITRATION_POLICY_SHIFT 21
+#define SQ_FLOW_CONTROL_ALU_ARBITRATION_POLICY_SHIFT 22
+#define SQ_FLOW_CONTROL_NO_ARB_EJECT_SHIFT 23
+#define SQ_FLOW_CONTROL_NO_CFS_EJECT_SHIFT 24
+#define SQ_FLOW_CONTROL_POS_EXP_PRIORITY_SHIFT 25
+#define SQ_FLOW_CONTROL_NO_EARLY_THREAD_TERMINATION_SHIFT 26
+#define SQ_FLOW_CONTROL_PS_PREFETCH_COLOR_ALLOC_SHIFT 27
+
+#define SQ_FLOW_CONTROL_INPUT_ARBITRATION_POLICY_MASK 0x00000003
+#define SQ_FLOW_CONTROL_ONE_THREAD_MASK 0x00000010
+#define SQ_FLOW_CONTROL_ONE_ALU_MASK 0x00000100
+#define SQ_FLOW_CONTROL_CF_WR_BASE_MASK 0x0000f000
+#define SQ_FLOW_CONTROL_NO_PV_PS_MASK 0x00010000
+#define SQ_FLOW_CONTROL_NO_LOOP_EXIT_MASK 0x00020000
+#define SQ_FLOW_CONTROL_NO_CEXEC_OPTIMIZE_MASK 0x00040000
+#define SQ_FLOW_CONTROL_TEXTURE_ARBITRATION_POLICY_MASK 0x00180000
+#define SQ_FLOW_CONTROL_VC_ARBITRATION_POLICY_MASK 0x00200000
+#define SQ_FLOW_CONTROL_ALU_ARBITRATION_POLICY_MASK 0x00400000
+#define SQ_FLOW_CONTROL_NO_ARB_EJECT_MASK 0x00800000
+#define SQ_FLOW_CONTROL_NO_CFS_EJECT_MASK 0x01000000
+#define SQ_FLOW_CONTROL_POS_EXP_PRIORITY_MASK 0x02000000
+#define SQ_FLOW_CONTROL_NO_EARLY_THREAD_TERMINATION_MASK 0x04000000
+#define SQ_FLOW_CONTROL_PS_PREFETCH_COLOR_ALLOC_MASK 0x08000000
+
+#define SQ_FLOW_CONTROL_MASK \
+ (SQ_FLOW_CONTROL_INPUT_ARBITRATION_POLICY_MASK | \
+ SQ_FLOW_CONTROL_ONE_THREAD_MASK | \
+ SQ_FLOW_CONTROL_ONE_ALU_MASK | \
+ SQ_FLOW_CONTROL_CF_WR_BASE_MASK | \
+ SQ_FLOW_CONTROL_NO_PV_PS_MASK | \
+ SQ_FLOW_CONTROL_NO_LOOP_EXIT_MASK | \
+ SQ_FLOW_CONTROL_NO_CEXEC_OPTIMIZE_MASK | \
+ SQ_FLOW_CONTROL_TEXTURE_ARBITRATION_POLICY_MASK | \
+ SQ_FLOW_CONTROL_VC_ARBITRATION_POLICY_MASK | \
+ SQ_FLOW_CONTROL_ALU_ARBITRATION_POLICY_MASK | \
+ SQ_FLOW_CONTROL_NO_ARB_EJECT_MASK | \
+ SQ_FLOW_CONTROL_NO_CFS_EJECT_MASK | \
+ SQ_FLOW_CONTROL_POS_EXP_PRIORITY_MASK | \
+ SQ_FLOW_CONTROL_NO_EARLY_THREAD_TERMINATION_MASK | \
+ SQ_FLOW_CONTROL_PS_PREFETCH_COLOR_ALLOC_MASK)
+
+#define SQ_FLOW_CONTROL(input_arbitration_policy, one_thread, one_alu, cf_wr_base, no_pv_ps, no_loop_exit, no_cexec_optimize, texture_arbitration_policy, vc_arbitration_policy, alu_arbitration_policy, no_arb_eject, no_cfs_eject, pos_exp_priority, no_early_thread_termination, ps_prefetch_color_alloc) \
+ ((input_arbitration_policy << SQ_FLOW_CONTROL_INPUT_ARBITRATION_POLICY_SHIFT) | \
+ (one_thread << SQ_FLOW_CONTROL_ONE_THREAD_SHIFT) | \
+ (one_alu << SQ_FLOW_CONTROL_ONE_ALU_SHIFT) | \
+ (cf_wr_base << SQ_FLOW_CONTROL_CF_WR_BASE_SHIFT) | \
+ (no_pv_ps << SQ_FLOW_CONTROL_NO_PV_PS_SHIFT) | \
+ (no_loop_exit << SQ_FLOW_CONTROL_NO_LOOP_EXIT_SHIFT) | \
+ (no_cexec_optimize << SQ_FLOW_CONTROL_NO_CEXEC_OPTIMIZE_SHIFT) | \
+ (texture_arbitration_policy << SQ_FLOW_CONTROL_TEXTURE_ARBITRATION_POLICY_SHIFT) | \
+ (vc_arbitration_policy << SQ_FLOW_CONTROL_VC_ARBITRATION_POLICY_SHIFT) | \
+ (alu_arbitration_policy << SQ_FLOW_CONTROL_ALU_ARBITRATION_POLICY_SHIFT) | \
+ (no_arb_eject << SQ_FLOW_CONTROL_NO_ARB_EJECT_SHIFT) | \
+ (no_cfs_eject << SQ_FLOW_CONTROL_NO_CFS_EJECT_SHIFT) | \
+ (pos_exp_priority << SQ_FLOW_CONTROL_POS_EXP_PRIORITY_SHIFT) | \
+ (no_early_thread_termination << SQ_FLOW_CONTROL_NO_EARLY_THREAD_TERMINATION_SHIFT) | \
+ (ps_prefetch_color_alloc << SQ_FLOW_CONTROL_PS_PREFETCH_COLOR_ALLOC_SHIFT))
+
+#define SQ_FLOW_CONTROL_GET_INPUT_ARBITRATION_POLICY(sq_flow_control) \
+ ((sq_flow_control & SQ_FLOW_CONTROL_INPUT_ARBITRATION_POLICY_MASK) >> SQ_FLOW_CONTROL_INPUT_ARBITRATION_POLICY_SHIFT)
+#define SQ_FLOW_CONTROL_GET_ONE_THREAD(sq_flow_control) \
+ ((sq_flow_control & SQ_FLOW_CONTROL_ONE_THREAD_MASK) >> SQ_FLOW_CONTROL_ONE_THREAD_SHIFT)
+#define SQ_FLOW_CONTROL_GET_ONE_ALU(sq_flow_control) \
+ ((sq_flow_control & SQ_FLOW_CONTROL_ONE_ALU_MASK) >> SQ_FLOW_CONTROL_ONE_ALU_SHIFT)
+#define SQ_FLOW_CONTROL_GET_CF_WR_BASE(sq_flow_control) \
+ ((sq_flow_control & SQ_FLOW_CONTROL_CF_WR_BASE_MASK) >> SQ_FLOW_CONTROL_CF_WR_BASE_SHIFT)
+#define SQ_FLOW_CONTROL_GET_NO_PV_PS(sq_flow_control) \
+ ((sq_flow_control & SQ_FLOW_CONTROL_NO_PV_PS_MASK) >> SQ_FLOW_CONTROL_NO_PV_PS_SHIFT)
+#define SQ_FLOW_CONTROL_GET_NO_LOOP_EXIT(sq_flow_control) \
+ ((sq_flow_control & SQ_FLOW_CONTROL_NO_LOOP_EXIT_MASK) >> SQ_FLOW_CONTROL_NO_LOOP_EXIT_SHIFT)
+#define SQ_FLOW_CONTROL_GET_NO_CEXEC_OPTIMIZE(sq_flow_control) \
+ ((sq_flow_control & SQ_FLOW_CONTROL_NO_CEXEC_OPTIMIZE_MASK) >> SQ_FLOW_CONTROL_NO_CEXEC_OPTIMIZE_SHIFT)
+#define SQ_FLOW_CONTROL_GET_TEXTURE_ARBITRATION_POLICY(sq_flow_control) \
+ ((sq_flow_control & SQ_FLOW_CONTROL_TEXTURE_ARBITRATION_POLICY_MASK) >> SQ_FLOW_CONTROL_TEXTURE_ARBITRATION_POLICY_SHIFT)
+#define SQ_FLOW_CONTROL_GET_VC_ARBITRATION_POLICY(sq_flow_control) \
+ ((sq_flow_control & SQ_FLOW_CONTROL_VC_ARBITRATION_POLICY_MASK) >> SQ_FLOW_CONTROL_VC_ARBITRATION_POLICY_SHIFT)
+#define SQ_FLOW_CONTROL_GET_ALU_ARBITRATION_POLICY(sq_flow_control) \
+ ((sq_flow_control & SQ_FLOW_CONTROL_ALU_ARBITRATION_POLICY_MASK) >> SQ_FLOW_CONTROL_ALU_ARBITRATION_POLICY_SHIFT)
+#define SQ_FLOW_CONTROL_GET_NO_ARB_EJECT(sq_flow_control) \
+ ((sq_flow_control & SQ_FLOW_CONTROL_NO_ARB_EJECT_MASK) >> SQ_FLOW_CONTROL_NO_ARB_EJECT_SHIFT)
+#define SQ_FLOW_CONTROL_GET_NO_CFS_EJECT(sq_flow_control) \
+ ((sq_flow_control & SQ_FLOW_CONTROL_NO_CFS_EJECT_MASK) >> SQ_FLOW_CONTROL_NO_CFS_EJECT_SHIFT)
+#define SQ_FLOW_CONTROL_GET_POS_EXP_PRIORITY(sq_flow_control) \
+ ((sq_flow_control & SQ_FLOW_CONTROL_POS_EXP_PRIORITY_MASK) >> SQ_FLOW_CONTROL_POS_EXP_PRIORITY_SHIFT)
+#define SQ_FLOW_CONTROL_GET_NO_EARLY_THREAD_TERMINATION(sq_flow_control) \
+ ((sq_flow_control & SQ_FLOW_CONTROL_NO_EARLY_THREAD_TERMINATION_MASK) >> SQ_FLOW_CONTROL_NO_EARLY_THREAD_TERMINATION_SHIFT)
+#define SQ_FLOW_CONTROL_GET_PS_PREFETCH_COLOR_ALLOC(sq_flow_control) \
+ ((sq_flow_control & SQ_FLOW_CONTROL_PS_PREFETCH_COLOR_ALLOC_MASK) >> SQ_FLOW_CONTROL_PS_PREFETCH_COLOR_ALLOC_SHIFT)
+
+#define SQ_FLOW_CONTROL_SET_INPUT_ARBITRATION_POLICY(sq_flow_control_reg, input_arbitration_policy) \
+ sq_flow_control_reg = (sq_flow_control_reg & ~SQ_FLOW_CONTROL_INPUT_ARBITRATION_POLICY_MASK) | (input_arbitration_policy << SQ_FLOW_CONTROL_INPUT_ARBITRATION_POLICY_SHIFT)
+#define SQ_FLOW_CONTROL_SET_ONE_THREAD(sq_flow_control_reg, one_thread) \
+ sq_flow_control_reg = (sq_flow_control_reg & ~SQ_FLOW_CONTROL_ONE_THREAD_MASK) | (one_thread << SQ_FLOW_CONTROL_ONE_THREAD_SHIFT)
+#define SQ_FLOW_CONTROL_SET_ONE_ALU(sq_flow_control_reg, one_alu) \
+ sq_flow_control_reg = (sq_flow_control_reg & ~SQ_FLOW_CONTROL_ONE_ALU_MASK) | (one_alu << SQ_FLOW_CONTROL_ONE_ALU_SHIFT)
+#define SQ_FLOW_CONTROL_SET_CF_WR_BASE(sq_flow_control_reg, cf_wr_base) \
+ sq_flow_control_reg = (sq_flow_control_reg & ~SQ_FLOW_CONTROL_CF_WR_BASE_MASK) | (cf_wr_base << SQ_FLOW_CONTROL_CF_WR_BASE_SHIFT)
+#define SQ_FLOW_CONTROL_SET_NO_PV_PS(sq_flow_control_reg, no_pv_ps) \
+ sq_flow_control_reg = (sq_flow_control_reg & ~SQ_FLOW_CONTROL_NO_PV_PS_MASK) | (no_pv_ps << SQ_FLOW_CONTROL_NO_PV_PS_SHIFT)
+#define SQ_FLOW_CONTROL_SET_NO_LOOP_EXIT(sq_flow_control_reg, no_loop_exit) \
+ sq_flow_control_reg = (sq_flow_control_reg & ~SQ_FLOW_CONTROL_NO_LOOP_EXIT_MASK) | (no_loop_exit << SQ_FLOW_CONTROL_NO_LOOP_EXIT_SHIFT)
+#define SQ_FLOW_CONTROL_SET_NO_CEXEC_OPTIMIZE(sq_flow_control_reg, no_cexec_optimize) \
+ sq_flow_control_reg = (sq_flow_control_reg & ~SQ_FLOW_CONTROL_NO_CEXEC_OPTIMIZE_MASK) | (no_cexec_optimize << SQ_FLOW_CONTROL_NO_CEXEC_OPTIMIZE_SHIFT)
+#define SQ_FLOW_CONTROL_SET_TEXTURE_ARBITRATION_POLICY(sq_flow_control_reg, texture_arbitration_policy) \
+ sq_flow_control_reg = (sq_flow_control_reg & ~SQ_FLOW_CONTROL_TEXTURE_ARBITRATION_POLICY_MASK) | (texture_arbitration_policy << SQ_FLOW_CONTROL_TEXTURE_ARBITRATION_POLICY_SHIFT)
+#define SQ_FLOW_CONTROL_SET_VC_ARBITRATION_POLICY(sq_flow_control_reg, vc_arbitration_policy) \
+ sq_flow_control_reg = (sq_flow_control_reg & ~SQ_FLOW_CONTROL_VC_ARBITRATION_POLICY_MASK) | (vc_arbitration_policy << SQ_FLOW_CONTROL_VC_ARBITRATION_POLICY_SHIFT)
+#define SQ_FLOW_CONTROL_SET_ALU_ARBITRATION_POLICY(sq_flow_control_reg, alu_arbitration_policy) \
+ sq_flow_control_reg = (sq_flow_control_reg & ~SQ_FLOW_CONTROL_ALU_ARBITRATION_POLICY_MASK) | (alu_arbitration_policy << SQ_FLOW_CONTROL_ALU_ARBITRATION_POLICY_SHIFT)
+#define SQ_FLOW_CONTROL_SET_NO_ARB_EJECT(sq_flow_control_reg, no_arb_eject) \
+ sq_flow_control_reg = (sq_flow_control_reg & ~SQ_FLOW_CONTROL_NO_ARB_EJECT_MASK) | (no_arb_eject << SQ_FLOW_CONTROL_NO_ARB_EJECT_SHIFT)
+#define SQ_FLOW_CONTROL_SET_NO_CFS_EJECT(sq_flow_control_reg, no_cfs_eject) \
+ sq_flow_control_reg = (sq_flow_control_reg & ~SQ_FLOW_CONTROL_NO_CFS_EJECT_MASK) | (no_cfs_eject << SQ_FLOW_CONTROL_NO_CFS_EJECT_SHIFT)
+#define SQ_FLOW_CONTROL_SET_POS_EXP_PRIORITY(sq_flow_control_reg, pos_exp_priority) \
+ sq_flow_control_reg = (sq_flow_control_reg & ~SQ_FLOW_CONTROL_POS_EXP_PRIORITY_MASK) | (pos_exp_priority << SQ_FLOW_CONTROL_POS_EXP_PRIORITY_SHIFT)
+#define SQ_FLOW_CONTROL_SET_NO_EARLY_THREAD_TERMINATION(sq_flow_control_reg, no_early_thread_termination) \
+ sq_flow_control_reg = (sq_flow_control_reg & ~SQ_FLOW_CONTROL_NO_EARLY_THREAD_TERMINATION_MASK) | (no_early_thread_termination << SQ_FLOW_CONTROL_NO_EARLY_THREAD_TERMINATION_SHIFT)
+#define SQ_FLOW_CONTROL_SET_PS_PREFETCH_COLOR_ALLOC(sq_flow_control_reg, ps_prefetch_color_alloc) \
+ sq_flow_control_reg = (sq_flow_control_reg & ~SQ_FLOW_CONTROL_PS_PREFETCH_COLOR_ALLOC_MASK) | (ps_prefetch_color_alloc << SQ_FLOW_CONTROL_PS_PREFETCH_COLOR_ALLOC_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_flow_control_t {
+ unsigned int input_arbitration_policy : SQ_FLOW_CONTROL_INPUT_ARBITRATION_POLICY_SIZE;
+ unsigned int : 2;
+ unsigned int one_thread : SQ_FLOW_CONTROL_ONE_THREAD_SIZE;
+ unsigned int : 3;
+ unsigned int one_alu : SQ_FLOW_CONTROL_ONE_ALU_SIZE;
+ unsigned int : 3;
+ unsigned int cf_wr_base : SQ_FLOW_CONTROL_CF_WR_BASE_SIZE;
+ unsigned int no_pv_ps : SQ_FLOW_CONTROL_NO_PV_PS_SIZE;
+ unsigned int no_loop_exit : SQ_FLOW_CONTROL_NO_LOOP_EXIT_SIZE;
+ unsigned int no_cexec_optimize : SQ_FLOW_CONTROL_NO_CEXEC_OPTIMIZE_SIZE;
+ unsigned int texture_arbitration_policy : SQ_FLOW_CONTROL_TEXTURE_ARBITRATION_POLICY_SIZE;
+ unsigned int vc_arbitration_policy : SQ_FLOW_CONTROL_VC_ARBITRATION_POLICY_SIZE;
+ unsigned int alu_arbitration_policy : SQ_FLOW_CONTROL_ALU_ARBITRATION_POLICY_SIZE;
+ unsigned int no_arb_eject : SQ_FLOW_CONTROL_NO_ARB_EJECT_SIZE;
+ unsigned int no_cfs_eject : SQ_FLOW_CONTROL_NO_CFS_EJECT_SIZE;
+ unsigned int pos_exp_priority : SQ_FLOW_CONTROL_POS_EXP_PRIORITY_SIZE;
+ unsigned int no_early_thread_termination : SQ_FLOW_CONTROL_NO_EARLY_THREAD_TERMINATION_SIZE;
+ unsigned int ps_prefetch_color_alloc : SQ_FLOW_CONTROL_PS_PREFETCH_COLOR_ALLOC_SIZE;
+ unsigned int : 4;
+ } sq_flow_control_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_flow_control_t {
+ unsigned int : 4;
+ unsigned int ps_prefetch_color_alloc : SQ_FLOW_CONTROL_PS_PREFETCH_COLOR_ALLOC_SIZE;
+ unsigned int no_early_thread_termination : SQ_FLOW_CONTROL_NO_EARLY_THREAD_TERMINATION_SIZE;
+ unsigned int pos_exp_priority : SQ_FLOW_CONTROL_POS_EXP_PRIORITY_SIZE;
+ unsigned int no_cfs_eject : SQ_FLOW_CONTROL_NO_CFS_EJECT_SIZE;
+ unsigned int no_arb_eject : SQ_FLOW_CONTROL_NO_ARB_EJECT_SIZE;
+ unsigned int alu_arbitration_policy : SQ_FLOW_CONTROL_ALU_ARBITRATION_POLICY_SIZE;
+ unsigned int vc_arbitration_policy : SQ_FLOW_CONTROL_VC_ARBITRATION_POLICY_SIZE;
+ unsigned int texture_arbitration_policy : SQ_FLOW_CONTROL_TEXTURE_ARBITRATION_POLICY_SIZE;
+ unsigned int no_cexec_optimize : SQ_FLOW_CONTROL_NO_CEXEC_OPTIMIZE_SIZE;
+ unsigned int no_loop_exit : SQ_FLOW_CONTROL_NO_LOOP_EXIT_SIZE;
+ unsigned int no_pv_ps : SQ_FLOW_CONTROL_NO_PV_PS_SIZE;
+ unsigned int cf_wr_base : SQ_FLOW_CONTROL_CF_WR_BASE_SIZE;
+ unsigned int : 3;
+ unsigned int one_alu : SQ_FLOW_CONTROL_ONE_ALU_SIZE;
+ unsigned int : 3;
+ unsigned int one_thread : SQ_FLOW_CONTROL_ONE_THREAD_SIZE;
+ unsigned int : 2;
+ unsigned int input_arbitration_policy : SQ_FLOW_CONTROL_INPUT_ARBITRATION_POLICY_SIZE;
+ } sq_flow_control_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_flow_control_t f;
+} sq_flow_control_u;
+
+
+/*
+ * SQ_INST_STORE_MANAGMENT struct
+ */
+
+#define SQ_INST_STORE_MANAGMENT_INST_BASE_PIX_SIZE 12
+#define SQ_INST_STORE_MANAGMENT_INST_BASE_VTX_SIZE 12
+
+#define SQ_INST_STORE_MANAGMENT_INST_BASE_PIX_SHIFT 0
+#define SQ_INST_STORE_MANAGMENT_INST_BASE_VTX_SHIFT 16
+
+#define SQ_INST_STORE_MANAGMENT_INST_BASE_PIX_MASK 0x00000fff
+#define SQ_INST_STORE_MANAGMENT_INST_BASE_VTX_MASK 0x0fff0000
+
+#define SQ_INST_STORE_MANAGMENT_MASK \
+ (SQ_INST_STORE_MANAGMENT_INST_BASE_PIX_MASK | \
+ SQ_INST_STORE_MANAGMENT_INST_BASE_VTX_MASK)
+
+#define SQ_INST_STORE_MANAGMENT(inst_base_pix, inst_base_vtx) \
+ ((inst_base_pix << SQ_INST_STORE_MANAGMENT_INST_BASE_PIX_SHIFT) | \
+ (inst_base_vtx << SQ_INST_STORE_MANAGMENT_INST_BASE_VTX_SHIFT))
+
+#define SQ_INST_STORE_MANAGMENT_GET_INST_BASE_PIX(sq_inst_store_managment) \
+ ((sq_inst_store_managment & SQ_INST_STORE_MANAGMENT_INST_BASE_PIX_MASK) >> SQ_INST_STORE_MANAGMENT_INST_BASE_PIX_SHIFT)
+#define SQ_INST_STORE_MANAGMENT_GET_INST_BASE_VTX(sq_inst_store_managment) \
+ ((sq_inst_store_managment & SQ_INST_STORE_MANAGMENT_INST_BASE_VTX_MASK) >> SQ_INST_STORE_MANAGMENT_INST_BASE_VTX_SHIFT)
+
+#define SQ_INST_STORE_MANAGMENT_SET_INST_BASE_PIX(sq_inst_store_managment_reg, inst_base_pix) \
+ sq_inst_store_managment_reg = (sq_inst_store_managment_reg & ~SQ_INST_STORE_MANAGMENT_INST_BASE_PIX_MASK) | (inst_base_pix << SQ_INST_STORE_MANAGMENT_INST_BASE_PIX_SHIFT)
+#define SQ_INST_STORE_MANAGMENT_SET_INST_BASE_VTX(sq_inst_store_managment_reg, inst_base_vtx) \
+ sq_inst_store_managment_reg = (sq_inst_store_managment_reg & ~SQ_INST_STORE_MANAGMENT_INST_BASE_VTX_MASK) | (inst_base_vtx << SQ_INST_STORE_MANAGMENT_INST_BASE_VTX_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_inst_store_managment_t {
+ unsigned int inst_base_pix : SQ_INST_STORE_MANAGMENT_INST_BASE_PIX_SIZE;
+ unsigned int : 4;
+ unsigned int inst_base_vtx : SQ_INST_STORE_MANAGMENT_INST_BASE_VTX_SIZE;
+ unsigned int : 4;
+ } sq_inst_store_managment_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_inst_store_managment_t {
+ unsigned int : 4;
+ unsigned int inst_base_vtx : SQ_INST_STORE_MANAGMENT_INST_BASE_VTX_SIZE;
+ unsigned int : 4;
+ unsigned int inst_base_pix : SQ_INST_STORE_MANAGMENT_INST_BASE_PIX_SIZE;
+ } sq_inst_store_managment_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_inst_store_managment_t f;
+} sq_inst_store_managment_u;
+
+
+/*
+ * SQ_RESOURCE_MANAGMENT struct
+ */
+
+#define SQ_RESOURCE_MANAGMENT_VTX_THREAD_BUF_ENTRIES_SIZE 8
+#define SQ_RESOURCE_MANAGMENT_PIX_THREAD_BUF_ENTRIES_SIZE 8
+#define SQ_RESOURCE_MANAGMENT_EXPORT_BUF_ENTRIES_SIZE 9
+
+#define SQ_RESOURCE_MANAGMENT_VTX_THREAD_BUF_ENTRIES_SHIFT 0
+#define SQ_RESOURCE_MANAGMENT_PIX_THREAD_BUF_ENTRIES_SHIFT 8
+#define SQ_RESOURCE_MANAGMENT_EXPORT_BUF_ENTRIES_SHIFT 16
+
+#define SQ_RESOURCE_MANAGMENT_VTX_THREAD_BUF_ENTRIES_MASK 0x000000ff
+#define SQ_RESOURCE_MANAGMENT_PIX_THREAD_BUF_ENTRIES_MASK 0x0000ff00
+#define SQ_RESOURCE_MANAGMENT_EXPORT_BUF_ENTRIES_MASK 0x01ff0000
+
+#define SQ_RESOURCE_MANAGMENT_MASK \
+ (SQ_RESOURCE_MANAGMENT_VTX_THREAD_BUF_ENTRIES_MASK | \
+ SQ_RESOURCE_MANAGMENT_PIX_THREAD_BUF_ENTRIES_MASK | \
+ SQ_RESOURCE_MANAGMENT_EXPORT_BUF_ENTRIES_MASK)
+
+#define SQ_RESOURCE_MANAGMENT(vtx_thread_buf_entries, pix_thread_buf_entries, export_buf_entries) \
+ ((vtx_thread_buf_entries << SQ_RESOURCE_MANAGMENT_VTX_THREAD_BUF_ENTRIES_SHIFT) | \
+ (pix_thread_buf_entries << SQ_RESOURCE_MANAGMENT_PIX_THREAD_BUF_ENTRIES_SHIFT) | \
+ (export_buf_entries << SQ_RESOURCE_MANAGMENT_EXPORT_BUF_ENTRIES_SHIFT))
+
+#define SQ_RESOURCE_MANAGMENT_GET_VTX_THREAD_BUF_ENTRIES(sq_resource_managment) \
+ ((sq_resource_managment & SQ_RESOURCE_MANAGMENT_VTX_THREAD_BUF_ENTRIES_MASK) >> SQ_RESOURCE_MANAGMENT_VTX_THREAD_BUF_ENTRIES_SHIFT)
+#define SQ_RESOURCE_MANAGMENT_GET_PIX_THREAD_BUF_ENTRIES(sq_resource_managment) \
+ ((sq_resource_managment & SQ_RESOURCE_MANAGMENT_PIX_THREAD_BUF_ENTRIES_MASK) >> SQ_RESOURCE_MANAGMENT_PIX_THREAD_BUF_ENTRIES_SHIFT)
+#define SQ_RESOURCE_MANAGMENT_GET_EXPORT_BUF_ENTRIES(sq_resource_managment) \
+ ((sq_resource_managment & SQ_RESOURCE_MANAGMENT_EXPORT_BUF_ENTRIES_MASK) >> SQ_RESOURCE_MANAGMENT_EXPORT_BUF_ENTRIES_SHIFT)
+
+#define SQ_RESOURCE_MANAGMENT_SET_VTX_THREAD_BUF_ENTRIES(sq_resource_managment_reg, vtx_thread_buf_entries) \
+ sq_resource_managment_reg = (sq_resource_managment_reg & ~SQ_RESOURCE_MANAGMENT_VTX_THREAD_BUF_ENTRIES_MASK) | (vtx_thread_buf_entries << SQ_RESOURCE_MANAGMENT_VTX_THREAD_BUF_ENTRIES_SHIFT)
+#define SQ_RESOURCE_MANAGMENT_SET_PIX_THREAD_BUF_ENTRIES(sq_resource_managment_reg, pix_thread_buf_entries) \
+ sq_resource_managment_reg = (sq_resource_managment_reg & ~SQ_RESOURCE_MANAGMENT_PIX_THREAD_BUF_ENTRIES_MASK) | (pix_thread_buf_entries << SQ_RESOURCE_MANAGMENT_PIX_THREAD_BUF_ENTRIES_SHIFT)
+#define SQ_RESOURCE_MANAGMENT_SET_EXPORT_BUF_ENTRIES(sq_resource_managment_reg, export_buf_entries) \
+ sq_resource_managment_reg = (sq_resource_managment_reg & ~SQ_RESOURCE_MANAGMENT_EXPORT_BUF_ENTRIES_MASK) | (export_buf_entries << SQ_RESOURCE_MANAGMENT_EXPORT_BUF_ENTRIES_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_resource_managment_t {
+ unsigned int vtx_thread_buf_entries : SQ_RESOURCE_MANAGMENT_VTX_THREAD_BUF_ENTRIES_SIZE;
+ unsigned int pix_thread_buf_entries : SQ_RESOURCE_MANAGMENT_PIX_THREAD_BUF_ENTRIES_SIZE;
+ unsigned int export_buf_entries : SQ_RESOURCE_MANAGMENT_EXPORT_BUF_ENTRIES_SIZE;
+ unsigned int : 7;
+ } sq_resource_managment_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_resource_managment_t {
+ unsigned int : 7;
+ unsigned int export_buf_entries : SQ_RESOURCE_MANAGMENT_EXPORT_BUF_ENTRIES_SIZE;
+ unsigned int pix_thread_buf_entries : SQ_RESOURCE_MANAGMENT_PIX_THREAD_BUF_ENTRIES_SIZE;
+ unsigned int vtx_thread_buf_entries : SQ_RESOURCE_MANAGMENT_VTX_THREAD_BUF_ENTRIES_SIZE;
+ } sq_resource_managment_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_resource_managment_t f;
+} sq_resource_managment_u;
+
+
+/*
+ * SQ_EO_RT struct
+ */
+
+#define SQ_EO_RT_EO_CONSTANTS_RT_SIZE 8
+#define SQ_EO_RT_EO_TSTATE_RT_SIZE 8
+
+#define SQ_EO_RT_EO_CONSTANTS_RT_SHIFT 0
+#define SQ_EO_RT_EO_TSTATE_RT_SHIFT 16
+
+#define SQ_EO_RT_EO_CONSTANTS_RT_MASK 0x000000ff
+#define SQ_EO_RT_EO_TSTATE_RT_MASK 0x00ff0000
+
+#define SQ_EO_RT_MASK \
+ (SQ_EO_RT_EO_CONSTANTS_RT_MASK | \
+ SQ_EO_RT_EO_TSTATE_RT_MASK)
+
+#define SQ_EO_RT(eo_constants_rt, eo_tstate_rt) \
+ ((eo_constants_rt << SQ_EO_RT_EO_CONSTANTS_RT_SHIFT) | \
+ (eo_tstate_rt << SQ_EO_RT_EO_TSTATE_RT_SHIFT))
+
+#define SQ_EO_RT_GET_EO_CONSTANTS_RT(sq_eo_rt) \
+ ((sq_eo_rt & SQ_EO_RT_EO_CONSTANTS_RT_MASK) >> SQ_EO_RT_EO_CONSTANTS_RT_SHIFT)
+#define SQ_EO_RT_GET_EO_TSTATE_RT(sq_eo_rt) \
+ ((sq_eo_rt & SQ_EO_RT_EO_TSTATE_RT_MASK) >> SQ_EO_RT_EO_TSTATE_RT_SHIFT)
+
+#define SQ_EO_RT_SET_EO_CONSTANTS_RT(sq_eo_rt_reg, eo_constants_rt) \
+ sq_eo_rt_reg = (sq_eo_rt_reg & ~SQ_EO_RT_EO_CONSTANTS_RT_MASK) | (eo_constants_rt << SQ_EO_RT_EO_CONSTANTS_RT_SHIFT)
+#define SQ_EO_RT_SET_EO_TSTATE_RT(sq_eo_rt_reg, eo_tstate_rt) \
+ sq_eo_rt_reg = (sq_eo_rt_reg & ~SQ_EO_RT_EO_TSTATE_RT_MASK) | (eo_tstate_rt << SQ_EO_RT_EO_TSTATE_RT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_eo_rt_t {
+ unsigned int eo_constants_rt : SQ_EO_RT_EO_CONSTANTS_RT_SIZE;
+ unsigned int : 8;
+ unsigned int eo_tstate_rt : SQ_EO_RT_EO_TSTATE_RT_SIZE;
+ unsigned int : 8;
+ } sq_eo_rt_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_eo_rt_t {
+ unsigned int : 8;
+ unsigned int eo_tstate_rt : SQ_EO_RT_EO_TSTATE_RT_SIZE;
+ unsigned int : 8;
+ unsigned int eo_constants_rt : SQ_EO_RT_EO_CONSTANTS_RT_SIZE;
+ } sq_eo_rt_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_eo_rt_t f;
+} sq_eo_rt_u;
+
+
+/*
+ * SQ_DEBUG_MISC struct
+ */
+
+#define SQ_DEBUG_MISC_DB_ALUCST_SIZE_SIZE 11
+#define SQ_DEBUG_MISC_DB_TSTATE_SIZE_SIZE 8
+#define SQ_DEBUG_MISC_DB_READ_CTX_SIZE 1
+#define SQ_DEBUG_MISC_RESERVED_SIZE 2
+#define SQ_DEBUG_MISC_DB_READ_MEMORY_SIZE 2
+#define SQ_DEBUG_MISC_DB_WEN_MEMORY_0_SIZE 1
+#define SQ_DEBUG_MISC_DB_WEN_MEMORY_1_SIZE 1
+#define SQ_DEBUG_MISC_DB_WEN_MEMORY_2_SIZE 1
+#define SQ_DEBUG_MISC_DB_WEN_MEMORY_3_SIZE 1
+
+#define SQ_DEBUG_MISC_DB_ALUCST_SIZE_SHIFT 0
+#define SQ_DEBUG_MISC_DB_TSTATE_SIZE_SHIFT 12
+#define SQ_DEBUG_MISC_DB_READ_CTX_SHIFT 20
+#define SQ_DEBUG_MISC_RESERVED_SHIFT 21
+#define SQ_DEBUG_MISC_DB_READ_MEMORY_SHIFT 23
+#define SQ_DEBUG_MISC_DB_WEN_MEMORY_0_SHIFT 25
+#define SQ_DEBUG_MISC_DB_WEN_MEMORY_1_SHIFT 26
+#define SQ_DEBUG_MISC_DB_WEN_MEMORY_2_SHIFT 27
+#define SQ_DEBUG_MISC_DB_WEN_MEMORY_3_SHIFT 28
+
+#define SQ_DEBUG_MISC_DB_ALUCST_SIZE_MASK 0x000007ff
+#define SQ_DEBUG_MISC_DB_TSTATE_SIZE_MASK 0x000ff000
+#define SQ_DEBUG_MISC_DB_READ_CTX_MASK 0x00100000
+#define SQ_DEBUG_MISC_RESERVED_MASK 0x00600000
+#define SQ_DEBUG_MISC_DB_READ_MEMORY_MASK 0x01800000
+#define SQ_DEBUG_MISC_DB_WEN_MEMORY_0_MASK 0x02000000
+#define SQ_DEBUG_MISC_DB_WEN_MEMORY_1_MASK 0x04000000
+#define SQ_DEBUG_MISC_DB_WEN_MEMORY_2_MASK 0x08000000
+#define SQ_DEBUG_MISC_DB_WEN_MEMORY_3_MASK 0x10000000
+
+#define SQ_DEBUG_MISC_MASK \
+ (SQ_DEBUG_MISC_DB_ALUCST_SIZE_MASK | \
+ SQ_DEBUG_MISC_DB_TSTATE_SIZE_MASK | \
+ SQ_DEBUG_MISC_DB_READ_CTX_MASK | \
+ SQ_DEBUG_MISC_RESERVED_MASK | \
+ SQ_DEBUG_MISC_DB_READ_MEMORY_MASK | \
+ SQ_DEBUG_MISC_DB_WEN_MEMORY_0_MASK | \
+ SQ_DEBUG_MISC_DB_WEN_MEMORY_1_MASK | \
+ SQ_DEBUG_MISC_DB_WEN_MEMORY_2_MASK | \
+ SQ_DEBUG_MISC_DB_WEN_MEMORY_3_MASK)
+
+#define SQ_DEBUG_MISC(db_alucst_size, db_tstate_size, db_read_ctx, reserved, db_read_memory, db_wen_memory_0, db_wen_memory_1, db_wen_memory_2, db_wen_memory_3) \
+ ((db_alucst_size << SQ_DEBUG_MISC_DB_ALUCST_SIZE_SHIFT) | \
+ (db_tstate_size << SQ_DEBUG_MISC_DB_TSTATE_SIZE_SHIFT) | \
+ (db_read_ctx << SQ_DEBUG_MISC_DB_READ_CTX_SHIFT) | \
+ (reserved << SQ_DEBUG_MISC_RESERVED_SHIFT) | \
+ (db_read_memory << SQ_DEBUG_MISC_DB_READ_MEMORY_SHIFT) | \
+ (db_wen_memory_0 << SQ_DEBUG_MISC_DB_WEN_MEMORY_0_SHIFT) | \
+ (db_wen_memory_1 << SQ_DEBUG_MISC_DB_WEN_MEMORY_1_SHIFT) | \
+ (db_wen_memory_2 << SQ_DEBUG_MISC_DB_WEN_MEMORY_2_SHIFT) | \
+ (db_wen_memory_3 << SQ_DEBUG_MISC_DB_WEN_MEMORY_3_SHIFT))
+
+#define SQ_DEBUG_MISC_GET_DB_ALUCST_SIZE(sq_debug_misc) \
+ ((sq_debug_misc & SQ_DEBUG_MISC_DB_ALUCST_SIZE_MASK) >> SQ_DEBUG_MISC_DB_ALUCST_SIZE_SHIFT)
+#define SQ_DEBUG_MISC_GET_DB_TSTATE_SIZE(sq_debug_misc) \
+ ((sq_debug_misc & SQ_DEBUG_MISC_DB_TSTATE_SIZE_MASK) >> SQ_DEBUG_MISC_DB_TSTATE_SIZE_SHIFT)
+#define SQ_DEBUG_MISC_GET_DB_READ_CTX(sq_debug_misc) \
+ ((sq_debug_misc & SQ_DEBUG_MISC_DB_READ_CTX_MASK) >> SQ_DEBUG_MISC_DB_READ_CTX_SHIFT)
+#define SQ_DEBUG_MISC_GET_RESERVED(sq_debug_misc) \
+ ((sq_debug_misc & SQ_DEBUG_MISC_RESERVED_MASK) >> SQ_DEBUG_MISC_RESERVED_SHIFT)
+#define SQ_DEBUG_MISC_GET_DB_READ_MEMORY(sq_debug_misc) \
+ ((sq_debug_misc & SQ_DEBUG_MISC_DB_READ_MEMORY_MASK) >> SQ_DEBUG_MISC_DB_READ_MEMORY_SHIFT)
+#define SQ_DEBUG_MISC_GET_DB_WEN_MEMORY_0(sq_debug_misc) \
+ ((sq_debug_misc & SQ_DEBUG_MISC_DB_WEN_MEMORY_0_MASK) >> SQ_DEBUG_MISC_DB_WEN_MEMORY_0_SHIFT)
+#define SQ_DEBUG_MISC_GET_DB_WEN_MEMORY_1(sq_debug_misc) \
+ ((sq_debug_misc & SQ_DEBUG_MISC_DB_WEN_MEMORY_1_MASK) >> SQ_DEBUG_MISC_DB_WEN_MEMORY_1_SHIFT)
+#define SQ_DEBUG_MISC_GET_DB_WEN_MEMORY_2(sq_debug_misc) \
+ ((sq_debug_misc & SQ_DEBUG_MISC_DB_WEN_MEMORY_2_MASK) >> SQ_DEBUG_MISC_DB_WEN_MEMORY_2_SHIFT)
+#define SQ_DEBUG_MISC_GET_DB_WEN_MEMORY_3(sq_debug_misc) \
+ ((sq_debug_misc & SQ_DEBUG_MISC_DB_WEN_MEMORY_3_MASK) >> SQ_DEBUG_MISC_DB_WEN_MEMORY_3_SHIFT)
+
+#define SQ_DEBUG_MISC_SET_DB_ALUCST_SIZE(sq_debug_misc_reg, db_alucst_size) \
+ sq_debug_misc_reg = (sq_debug_misc_reg & ~SQ_DEBUG_MISC_DB_ALUCST_SIZE_MASK) | (db_alucst_size << SQ_DEBUG_MISC_DB_ALUCST_SIZE_SHIFT)
+#define SQ_DEBUG_MISC_SET_DB_TSTATE_SIZE(sq_debug_misc_reg, db_tstate_size) \
+ sq_debug_misc_reg = (sq_debug_misc_reg & ~SQ_DEBUG_MISC_DB_TSTATE_SIZE_MASK) | (db_tstate_size << SQ_DEBUG_MISC_DB_TSTATE_SIZE_SHIFT)
+#define SQ_DEBUG_MISC_SET_DB_READ_CTX(sq_debug_misc_reg, db_read_ctx) \
+ sq_debug_misc_reg = (sq_debug_misc_reg & ~SQ_DEBUG_MISC_DB_READ_CTX_MASK) | (db_read_ctx << SQ_DEBUG_MISC_DB_READ_CTX_SHIFT)
+#define SQ_DEBUG_MISC_SET_RESERVED(sq_debug_misc_reg, reserved) \
+ sq_debug_misc_reg = (sq_debug_misc_reg & ~SQ_DEBUG_MISC_RESERVED_MASK) | (reserved << SQ_DEBUG_MISC_RESERVED_SHIFT)
+#define SQ_DEBUG_MISC_SET_DB_READ_MEMORY(sq_debug_misc_reg, db_read_memory) \
+ sq_debug_misc_reg = (sq_debug_misc_reg & ~SQ_DEBUG_MISC_DB_READ_MEMORY_MASK) | (db_read_memory << SQ_DEBUG_MISC_DB_READ_MEMORY_SHIFT)
+#define SQ_DEBUG_MISC_SET_DB_WEN_MEMORY_0(sq_debug_misc_reg, db_wen_memory_0) \
+ sq_debug_misc_reg = (sq_debug_misc_reg & ~SQ_DEBUG_MISC_DB_WEN_MEMORY_0_MASK) | (db_wen_memory_0 << SQ_DEBUG_MISC_DB_WEN_MEMORY_0_SHIFT)
+#define SQ_DEBUG_MISC_SET_DB_WEN_MEMORY_1(sq_debug_misc_reg, db_wen_memory_1) \
+ sq_debug_misc_reg = (sq_debug_misc_reg & ~SQ_DEBUG_MISC_DB_WEN_MEMORY_1_MASK) | (db_wen_memory_1 << SQ_DEBUG_MISC_DB_WEN_MEMORY_1_SHIFT)
+#define SQ_DEBUG_MISC_SET_DB_WEN_MEMORY_2(sq_debug_misc_reg, db_wen_memory_2) \
+ sq_debug_misc_reg = (sq_debug_misc_reg & ~SQ_DEBUG_MISC_DB_WEN_MEMORY_2_MASK) | (db_wen_memory_2 << SQ_DEBUG_MISC_DB_WEN_MEMORY_2_SHIFT)
+#define SQ_DEBUG_MISC_SET_DB_WEN_MEMORY_3(sq_debug_misc_reg, db_wen_memory_3) \
+ sq_debug_misc_reg = (sq_debug_misc_reg & ~SQ_DEBUG_MISC_DB_WEN_MEMORY_3_MASK) | (db_wen_memory_3 << SQ_DEBUG_MISC_DB_WEN_MEMORY_3_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_misc_t {
+ unsigned int db_alucst_size : SQ_DEBUG_MISC_DB_ALUCST_SIZE_SIZE;
+ unsigned int : 1;
+ unsigned int db_tstate_size : SQ_DEBUG_MISC_DB_TSTATE_SIZE_SIZE;
+ unsigned int db_read_ctx : SQ_DEBUG_MISC_DB_READ_CTX_SIZE;
+ unsigned int reserved : SQ_DEBUG_MISC_RESERVED_SIZE;
+ unsigned int db_read_memory : SQ_DEBUG_MISC_DB_READ_MEMORY_SIZE;
+ unsigned int db_wen_memory_0 : SQ_DEBUG_MISC_DB_WEN_MEMORY_0_SIZE;
+ unsigned int db_wen_memory_1 : SQ_DEBUG_MISC_DB_WEN_MEMORY_1_SIZE;
+ unsigned int db_wen_memory_2 : SQ_DEBUG_MISC_DB_WEN_MEMORY_2_SIZE;
+ unsigned int db_wen_memory_3 : SQ_DEBUG_MISC_DB_WEN_MEMORY_3_SIZE;
+ unsigned int : 3;
+ } sq_debug_misc_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_misc_t {
+ unsigned int : 3;
+ unsigned int db_wen_memory_3 : SQ_DEBUG_MISC_DB_WEN_MEMORY_3_SIZE;
+ unsigned int db_wen_memory_2 : SQ_DEBUG_MISC_DB_WEN_MEMORY_2_SIZE;
+ unsigned int db_wen_memory_1 : SQ_DEBUG_MISC_DB_WEN_MEMORY_1_SIZE;
+ unsigned int db_wen_memory_0 : SQ_DEBUG_MISC_DB_WEN_MEMORY_0_SIZE;
+ unsigned int db_read_memory : SQ_DEBUG_MISC_DB_READ_MEMORY_SIZE;
+ unsigned int reserved : SQ_DEBUG_MISC_RESERVED_SIZE;
+ unsigned int db_read_ctx : SQ_DEBUG_MISC_DB_READ_CTX_SIZE;
+ unsigned int db_tstate_size : SQ_DEBUG_MISC_DB_TSTATE_SIZE_SIZE;
+ unsigned int : 1;
+ unsigned int db_alucst_size : SQ_DEBUG_MISC_DB_ALUCST_SIZE_SIZE;
+ } sq_debug_misc_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_misc_t f;
+} sq_debug_misc_u;
+
+
+/*
+ * SQ_ACTIVITY_METER_CNTL struct
+ */
+
+#define SQ_ACTIVITY_METER_CNTL_TIMEBASE_SIZE 8
+#define SQ_ACTIVITY_METER_CNTL_THRESHOLD_LOW_SIZE 8
+#define SQ_ACTIVITY_METER_CNTL_THRESHOLD_HIGH_SIZE 8
+#define SQ_ACTIVITY_METER_CNTL_SPARE_SIZE 8
+
+#define SQ_ACTIVITY_METER_CNTL_TIMEBASE_SHIFT 0
+#define SQ_ACTIVITY_METER_CNTL_THRESHOLD_LOW_SHIFT 8
+#define SQ_ACTIVITY_METER_CNTL_THRESHOLD_HIGH_SHIFT 16
+#define SQ_ACTIVITY_METER_CNTL_SPARE_SHIFT 24
+
+#define SQ_ACTIVITY_METER_CNTL_TIMEBASE_MASK 0x000000ff
+#define SQ_ACTIVITY_METER_CNTL_THRESHOLD_LOW_MASK 0x0000ff00
+#define SQ_ACTIVITY_METER_CNTL_THRESHOLD_HIGH_MASK 0x00ff0000
+#define SQ_ACTIVITY_METER_CNTL_SPARE_MASK 0xff000000
+
+#define SQ_ACTIVITY_METER_CNTL_MASK \
+ (SQ_ACTIVITY_METER_CNTL_TIMEBASE_MASK | \
+ SQ_ACTIVITY_METER_CNTL_THRESHOLD_LOW_MASK | \
+ SQ_ACTIVITY_METER_CNTL_THRESHOLD_HIGH_MASK | \
+ SQ_ACTIVITY_METER_CNTL_SPARE_MASK)
+
+#define SQ_ACTIVITY_METER_CNTL(timebase, threshold_low, threshold_high, spare) \
+ ((timebase << SQ_ACTIVITY_METER_CNTL_TIMEBASE_SHIFT) | \
+ (threshold_low << SQ_ACTIVITY_METER_CNTL_THRESHOLD_LOW_SHIFT) | \
+ (threshold_high << SQ_ACTIVITY_METER_CNTL_THRESHOLD_HIGH_SHIFT) | \
+ (spare << SQ_ACTIVITY_METER_CNTL_SPARE_SHIFT))
+
+#define SQ_ACTIVITY_METER_CNTL_GET_TIMEBASE(sq_activity_meter_cntl) \
+ ((sq_activity_meter_cntl & SQ_ACTIVITY_METER_CNTL_TIMEBASE_MASK) >> SQ_ACTIVITY_METER_CNTL_TIMEBASE_SHIFT)
+#define SQ_ACTIVITY_METER_CNTL_GET_THRESHOLD_LOW(sq_activity_meter_cntl) \
+ ((sq_activity_meter_cntl & SQ_ACTIVITY_METER_CNTL_THRESHOLD_LOW_MASK) >> SQ_ACTIVITY_METER_CNTL_THRESHOLD_LOW_SHIFT)
+#define SQ_ACTIVITY_METER_CNTL_GET_THRESHOLD_HIGH(sq_activity_meter_cntl) \
+ ((sq_activity_meter_cntl & SQ_ACTIVITY_METER_CNTL_THRESHOLD_HIGH_MASK) >> SQ_ACTIVITY_METER_CNTL_THRESHOLD_HIGH_SHIFT)
+#define SQ_ACTIVITY_METER_CNTL_GET_SPARE(sq_activity_meter_cntl) \
+ ((sq_activity_meter_cntl & SQ_ACTIVITY_METER_CNTL_SPARE_MASK) >> SQ_ACTIVITY_METER_CNTL_SPARE_SHIFT)
+
+#define SQ_ACTIVITY_METER_CNTL_SET_TIMEBASE(sq_activity_meter_cntl_reg, timebase) \
+ sq_activity_meter_cntl_reg = (sq_activity_meter_cntl_reg & ~SQ_ACTIVITY_METER_CNTL_TIMEBASE_MASK) | (timebase << SQ_ACTIVITY_METER_CNTL_TIMEBASE_SHIFT)
+#define SQ_ACTIVITY_METER_CNTL_SET_THRESHOLD_LOW(sq_activity_meter_cntl_reg, threshold_low) \
+ sq_activity_meter_cntl_reg = (sq_activity_meter_cntl_reg & ~SQ_ACTIVITY_METER_CNTL_THRESHOLD_LOW_MASK) | (threshold_low << SQ_ACTIVITY_METER_CNTL_THRESHOLD_LOW_SHIFT)
+#define SQ_ACTIVITY_METER_CNTL_SET_THRESHOLD_HIGH(sq_activity_meter_cntl_reg, threshold_high) \
+ sq_activity_meter_cntl_reg = (sq_activity_meter_cntl_reg & ~SQ_ACTIVITY_METER_CNTL_THRESHOLD_HIGH_MASK) | (threshold_high << SQ_ACTIVITY_METER_CNTL_THRESHOLD_HIGH_SHIFT)
+#define SQ_ACTIVITY_METER_CNTL_SET_SPARE(sq_activity_meter_cntl_reg, spare) \
+ sq_activity_meter_cntl_reg = (sq_activity_meter_cntl_reg & ~SQ_ACTIVITY_METER_CNTL_SPARE_MASK) | (spare << SQ_ACTIVITY_METER_CNTL_SPARE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_activity_meter_cntl_t {
+ unsigned int timebase : SQ_ACTIVITY_METER_CNTL_TIMEBASE_SIZE;
+ unsigned int threshold_low : SQ_ACTIVITY_METER_CNTL_THRESHOLD_LOW_SIZE;
+ unsigned int threshold_high : SQ_ACTIVITY_METER_CNTL_THRESHOLD_HIGH_SIZE;
+ unsigned int spare : SQ_ACTIVITY_METER_CNTL_SPARE_SIZE;
+ } sq_activity_meter_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_activity_meter_cntl_t {
+ unsigned int spare : SQ_ACTIVITY_METER_CNTL_SPARE_SIZE;
+ unsigned int threshold_high : SQ_ACTIVITY_METER_CNTL_THRESHOLD_HIGH_SIZE;
+ unsigned int threshold_low : SQ_ACTIVITY_METER_CNTL_THRESHOLD_LOW_SIZE;
+ unsigned int timebase : SQ_ACTIVITY_METER_CNTL_TIMEBASE_SIZE;
+ } sq_activity_meter_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_activity_meter_cntl_t f;
+} sq_activity_meter_cntl_u;
+
+
+/*
+ * SQ_ACTIVITY_METER_STATUS struct
+ */
+
+#define SQ_ACTIVITY_METER_STATUS_PERCENT_BUSY_SIZE 8
+
+#define SQ_ACTIVITY_METER_STATUS_PERCENT_BUSY_SHIFT 0
+
+#define SQ_ACTIVITY_METER_STATUS_PERCENT_BUSY_MASK 0x000000ff
+
+#define SQ_ACTIVITY_METER_STATUS_MASK \
+ (SQ_ACTIVITY_METER_STATUS_PERCENT_BUSY_MASK)
+
+#define SQ_ACTIVITY_METER_STATUS(percent_busy) \
+ ((percent_busy << SQ_ACTIVITY_METER_STATUS_PERCENT_BUSY_SHIFT))
+
+#define SQ_ACTIVITY_METER_STATUS_GET_PERCENT_BUSY(sq_activity_meter_status) \
+ ((sq_activity_meter_status & SQ_ACTIVITY_METER_STATUS_PERCENT_BUSY_MASK) >> SQ_ACTIVITY_METER_STATUS_PERCENT_BUSY_SHIFT)
+
+#define SQ_ACTIVITY_METER_STATUS_SET_PERCENT_BUSY(sq_activity_meter_status_reg, percent_busy) \
+ sq_activity_meter_status_reg = (sq_activity_meter_status_reg & ~SQ_ACTIVITY_METER_STATUS_PERCENT_BUSY_MASK) | (percent_busy << SQ_ACTIVITY_METER_STATUS_PERCENT_BUSY_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_activity_meter_status_t {
+ unsigned int percent_busy : SQ_ACTIVITY_METER_STATUS_PERCENT_BUSY_SIZE;
+ unsigned int : 24;
+ } sq_activity_meter_status_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_activity_meter_status_t {
+ unsigned int : 24;
+ unsigned int percent_busy : SQ_ACTIVITY_METER_STATUS_PERCENT_BUSY_SIZE;
+ } sq_activity_meter_status_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_activity_meter_status_t f;
+} sq_activity_meter_status_u;
+
+
+/*
+ * SQ_INPUT_ARB_PRIORITY struct
+ */
+
+#define SQ_INPUT_ARB_PRIORITY_PC_AVAIL_WEIGHT_SIZE 3
+#define SQ_INPUT_ARB_PRIORITY_PC_AVAIL_SIGN_SIZE 1
+#define SQ_INPUT_ARB_PRIORITY_SX_AVAIL_WEIGHT_SIZE 3
+#define SQ_INPUT_ARB_PRIORITY_SX_AVAIL_SIGN_SIZE 1
+#define SQ_INPUT_ARB_PRIORITY_THRESHOLD_SIZE 10
+
+#define SQ_INPUT_ARB_PRIORITY_PC_AVAIL_WEIGHT_SHIFT 0
+#define SQ_INPUT_ARB_PRIORITY_PC_AVAIL_SIGN_SHIFT 3
+#define SQ_INPUT_ARB_PRIORITY_SX_AVAIL_WEIGHT_SHIFT 4
+#define SQ_INPUT_ARB_PRIORITY_SX_AVAIL_SIGN_SHIFT 7
+#define SQ_INPUT_ARB_PRIORITY_THRESHOLD_SHIFT 8
+
+#define SQ_INPUT_ARB_PRIORITY_PC_AVAIL_WEIGHT_MASK 0x00000007
+#define SQ_INPUT_ARB_PRIORITY_PC_AVAIL_SIGN_MASK 0x00000008
+#define SQ_INPUT_ARB_PRIORITY_SX_AVAIL_WEIGHT_MASK 0x00000070
+#define SQ_INPUT_ARB_PRIORITY_SX_AVAIL_SIGN_MASK 0x00000080
+#define SQ_INPUT_ARB_PRIORITY_THRESHOLD_MASK 0x0003ff00
+
+#define SQ_INPUT_ARB_PRIORITY_MASK \
+ (SQ_INPUT_ARB_PRIORITY_PC_AVAIL_WEIGHT_MASK | \
+ SQ_INPUT_ARB_PRIORITY_PC_AVAIL_SIGN_MASK | \
+ SQ_INPUT_ARB_PRIORITY_SX_AVAIL_WEIGHT_MASK | \
+ SQ_INPUT_ARB_PRIORITY_SX_AVAIL_SIGN_MASK | \
+ SQ_INPUT_ARB_PRIORITY_THRESHOLD_MASK)
+
+#define SQ_INPUT_ARB_PRIORITY(pc_avail_weight, pc_avail_sign, sx_avail_weight, sx_avail_sign, threshold) \
+ ((pc_avail_weight << SQ_INPUT_ARB_PRIORITY_PC_AVAIL_WEIGHT_SHIFT) | \
+ (pc_avail_sign << SQ_INPUT_ARB_PRIORITY_PC_AVAIL_SIGN_SHIFT) | \
+ (sx_avail_weight << SQ_INPUT_ARB_PRIORITY_SX_AVAIL_WEIGHT_SHIFT) | \
+ (sx_avail_sign << SQ_INPUT_ARB_PRIORITY_SX_AVAIL_SIGN_SHIFT) | \
+ (threshold << SQ_INPUT_ARB_PRIORITY_THRESHOLD_SHIFT))
+
+#define SQ_INPUT_ARB_PRIORITY_GET_PC_AVAIL_WEIGHT(sq_input_arb_priority) \
+ ((sq_input_arb_priority & SQ_INPUT_ARB_PRIORITY_PC_AVAIL_WEIGHT_MASK) >> SQ_INPUT_ARB_PRIORITY_PC_AVAIL_WEIGHT_SHIFT)
+#define SQ_INPUT_ARB_PRIORITY_GET_PC_AVAIL_SIGN(sq_input_arb_priority) \
+ ((sq_input_arb_priority & SQ_INPUT_ARB_PRIORITY_PC_AVAIL_SIGN_MASK) >> SQ_INPUT_ARB_PRIORITY_PC_AVAIL_SIGN_SHIFT)
+#define SQ_INPUT_ARB_PRIORITY_GET_SX_AVAIL_WEIGHT(sq_input_arb_priority) \
+ ((sq_input_arb_priority & SQ_INPUT_ARB_PRIORITY_SX_AVAIL_WEIGHT_MASK) >> SQ_INPUT_ARB_PRIORITY_SX_AVAIL_WEIGHT_SHIFT)
+#define SQ_INPUT_ARB_PRIORITY_GET_SX_AVAIL_SIGN(sq_input_arb_priority) \
+ ((sq_input_arb_priority & SQ_INPUT_ARB_PRIORITY_SX_AVAIL_SIGN_MASK) >> SQ_INPUT_ARB_PRIORITY_SX_AVAIL_SIGN_SHIFT)
+#define SQ_INPUT_ARB_PRIORITY_GET_THRESHOLD(sq_input_arb_priority) \
+ ((sq_input_arb_priority & SQ_INPUT_ARB_PRIORITY_THRESHOLD_MASK) >> SQ_INPUT_ARB_PRIORITY_THRESHOLD_SHIFT)
+
+#define SQ_INPUT_ARB_PRIORITY_SET_PC_AVAIL_WEIGHT(sq_input_arb_priority_reg, pc_avail_weight) \
+ sq_input_arb_priority_reg = (sq_input_arb_priority_reg & ~SQ_INPUT_ARB_PRIORITY_PC_AVAIL_WEIGHT_MASK) | (pc_avail_weight << SQ_INPUT_ARB_PRIORITY_PC_AVAIL_WEIGHT_SHIFT)
+#define SQ_INPUT_ARB_PRIORITY_SET_PC_AVAIL_SIGN(sq_input_arb_priority_reg, pc_avail_sign) \
+ sq_input_arb_priority_reg = (sq_input_arb_priority_reg & ~SQ_INPUT_ARB_PRIORITY_PC_AVAIL_SIGN_MASK) | (pc_avail_sign << SQ_INPUT_ARB_PRIORITY_PC_AVAIL_SIGN_SHIFT)
+#define SQ_INPUT_ARB_PRIORITY_SET_SX_AVAIL_WEIGHT(sq_input_arb_priority_reg, sx_avail_weight) \
+ sq_input_arb_priority_reg = (sq_input_arb_priority_reg & ~SQ_INPUT_ARB_PRIORITY_SX_AVAIL_WEIGHT_MASK) | (sx_avail_weight << SQ_INPUT_ARB_PRIORITY_SX_AVAIL_WEIGHT_SHIFT)
+#define SQ_INPUT_ARB_PRIORITY_SET_SX_AVAIL_SIGN(sq_input_arb_priority_reg, sx_avail_sign) \
+ sq_input_arb_priority_reg = (sq_input_arb_priority_reg & ~SQ_INPUT_ARB_PRIORITY_SX_AVAIL_SIGN_MASK) | (sx_avail_sign << SQ_INPUT_ARB_PRIORITY_SX_AVAIL_SIGN_SHIFT)
+#define SQ_INPUT_ARB_PRIORITY_SET_THRESHOLD(sq_input_arb_priority_reg, threshold) \
+ sq_input_arb_priority_reg = (sq_input_arb_priority_reg & ~SQ_INPUT_ARB_PRIORITY_THRESHOLD_MASK) | (threshold << SQ_INPUT_ARB_PRIORITY_THRESHOLD_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_input_arb_priority_t {
+ unsigned int pc_avail_weight : SQ_INPUT_ARB_PRIORITY_PC_AVAIL_WEIGHT_SIZE;
+ unsigned int pc_avail_sign : SQ_INPUT_ARB_PRIORITY_PC_AVAIL_SIGN_SIZE;
+ unsigned int sx_avail_weight : SQ_INPUT_ARB_PRIORITY_SX_AVAIL_WEIGHT_SIZE;
+ unsigned int sx_avail_sign : SQ_INPUT_ARB_PRIORITY_SX_AVAIL_SIGN_SIZE;
+ unsigned int threshold : SQ_INPUT_ARB_PRIORITY_THRESHOLD_SIZE;
+ unsigned int : 14;
+ } sq_input_arb_priority_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_input_arb_priority_t {
+ unsigned int : 14;
+ unsigned int threshold : SQ_INPUT_ARB_PRIORITY_THRESHOLD_SIZE;
+ unsigned int sx_avail_sign : SQ_INPUT_ARB_PRIORITY_SX_AVAIL_SIGN_SIZE;
+ unsigned int sx_avail_weight : SQ_INPUT_ARB_PRIORITY_SX_AVAIL_WEIGHT_SIZE;
+ unsigned int pc_avail_sign : SQ_INPUT_ARB_PRIORITY_PC_AVAIL_SIGN_SIZE;
+ unsigned int pc_avail_weight : SQ_INPUT_ARB_PRIORITY_PC_AVAIL_WEIGHT_SIZE;
+ } sq_input_arb_priority_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_input_arb_priority_t f;
+} sq_input_arb_priority_u;
+
+
+/*
+ * SQ_THREAD_ARB_PRIORITY struct
+ */
+
+#define SQ_THREAD_ARB_PRIORITY_PC_AVAIL_WEIGHT_SIZE 3
+#define SQ_THREAD_ARB_PRIORITY_PC_AVAIL_SIGN_SIZE 1
+#define SQ_THREAD_ARB_PRIORITY_SX_AVAIL_WEIGHT_SIZE 3
+#define SQ_THREAD_ARB_PRIORITY_SX_AVAIL_SIGN_SIZE 1
+#define SQ_THREAD_ARB_PRIORITY_THRESHOLD_SIZE 10
+#define SQ_THREAD_ARB_PRIORITY_RESERVED_SIZE 2
+#define SQ_THREAD_ARB_PRIORITY_VS_PRIORITIZE_SERIAL_SIZE 1
+#define SQ_THREAD_ARB_PRIORITY_PS_PRIORITIZE_SERIAL_SIZE 1
+#define SQ_THREAD_ARB_PRIORITY_USE_SERIAL_COUNT_THRESHOLD_SIZE 1
+
+#define SQ_THREAD_ARB_PRIORITY_PC_AVAIL_WEIGHT_SHIFT 0
+#define SQ_THREAD_ARB_PRIORITY_PC_AVAIL_SIGN_SHIFT 3
+#define SQ_THREAD_ARB_PRIORITY_SX_AVAIL_WEIGHT_SHIFT 4
+#define SQ_THREAD_ARB_PRIORITY_SX_AVAIL_SIGN_SHIFT 7
+#define SQ_THREAD_ARB_PRIORITY_THRESHOLD_SHIFT 8
+#define SQ_THREAD_ARB_PRIORITY_RESERVED_SHIFT 18
+#define SQ_THREAD_ARB_PRIORITY_VS_PRIORITIZE_SERIAL_SHIFT 20
+#define SQ_THREAD_ARB_PRIORITY_PS_PRIORITIZE_SERIAL_SHIFT 21
+#define SQ_THREAD_ARB_PRIORITY_USE_SERIAL_COUNT_THRESHOLD_SHIFT 22
+
+#define SQ_THREAD_ARB_PRIORITY_PC_AVAIL_WEIGHT_MASK 0x00000007
+#define SQ_THREAD_ARB_PRIORITY_PC_AVAIL_SIGN_MASK 0x00000008
+#define SQ_THREAD_ARB_PRIORITY_SX_AVAIL_WEIGHT_MASK 0x00000070
+#define SQ_THREAD_ARB_PRIORITY_SX_AVAIL_SIGN_MASK 0x00000080
+#define SQ_THREAD_ARB_PRIORITY_THRESHOLD_MASK 0x0003ff00
+#define SQ_THREAD_ARB_PRIORITY_RESERVED_MASK 0x000c0000
+#define SQ_THREAD_ARB_PRIORITY_VS_PRIORITIZE_SERIAL_MASK 0x00100000
+#define SQ_THREAD_ARB_PRIORITY_PS_PRIORITIZE_SERIAL_MASK 0x00200000
+#define SQ_THREAD_ARB_PRIORITY_USE_SERIAL_COUNT_THRESHOLD_MASK 0x00400000
+
+#define SQ_THREAD_ARB_PRIORITY_MASK \
+ (SQ_THREAD_ARB_PRIORITY_PC_AVAIL_WEIGHT_MASK | \
+ SQ_THREAD_ARB_PRIORITY_PC_AVAIL_SIGN_MASK | \
+ SQ_THREAD_ARB_PRIORITY_SX_AVAIL_WEIGHT_MASK | \
+ SQ_THREAD_ARB_PRIORITY_SX_AVAIL_SIGN_MASK | \
+ SQ_THREAD_ARB_PRIORITY_THRESHOLD_MASK | \
+ SQ_THREAD_ARB_PRIORITY_RESERVED_MASK | \
+ SQ_THREAD_ARB_PRIORITY_VS_PRIORITIZE_SERIAL_MASK | \
+ SQ_THREAD_ARB_PRIORITY_PS_PRIORITIZE_SERIAL_MASK | \
+ SQ_THREAD_ARB_PRIORITY_USE_SERIAL_COUNT_THRESHOLD_MASK)
+
+#define SQ_THREAD_ARB_PRIORITY(pc_avail_weight, pc_avail_sign, sx_avail_weight, sx_avail_sign, threshold, reserved, vs_prioritize_serial, ps_prioritize_serial, use_serial_count_threshold) \
+ ((pc_avail_weight << SQ_THREAD_ARB_PRIORITY_PC_AVAIL_WEIGHT_SHIFT) | \
+ (pc_avail_sign << SQ_THREAD_ARB_PRIORITY_PC_AVAIL_SIGN_SHIFT) | \
+ (sx_avail_weight << SQ_THREAD_ARB_PRIORITY_SX_AVAIL_WEIGHT_SHIFT) | \
+ (sx_avail_sign << SQ_THREAD_ARB_PRIORITY_SX_AVAIL_SIGN_SHIFT) | \
+ (threshold << SQ_THREAD_ARB_PRIORITY_THRESHOLD_SHIFT) | \
+ (reserved << SQ_THREAD_ARB_PRIORITY_RESERVED_SHIFT) | \
+ (vs_prioritize_serial << SQ_THREAD_ARB_PRIORITY_VS_PRIORITIZE_SERIAL_SHIFT) | \
+ (ps_prioritize_serial << SQ_THREAD_ARB_PRIORITY_PS_PRIORITIZE_SERIAL_SHIFT) | \
+ (use_serial_count_threshold << SQ_THREAD_ARB_PRIORITY_USE_SERIAL_COUNT_THRESHOLD_SHIFT))
+
+#define SQ_THREAD_ARB_PRIORITY_GET_PC_AVAIL_WEIGHT(sq_thread_arb_priority) \
+ ((sq_thread_arb_priority & SQ_THREAD_ARB_PRIORITY_PC_AVAIL_WEIGHT_MASK) >> SQ_THREAD_ARB_PRIORITY_PC_AVAIL_WEIGHT_SHIFT)
+#define SQ_THREAD_ARB_PRIORITY_GET_PC_AVAIL_SIGN(sq_thread_arb_priority) \
+ ((sq_thread_arb_priority & SQ_THREAD_ARB_PRIORITY_PC_AVAIL_SIGN_MASK) >> SQ_THREAD_ARB_PRIORITY_PC_AVAIL_SIGN_SHIFT)
+#define SQ_THREAD_ARB_PRIORITY_GET_SX_AVAIL_WEIGHT(sq_thread_arb_priority) \
+ ((sq_thread_arb_priority & SQ_THREAD_ARB_PRIORITY_SX_AVAIL_WEIGHT_MASK) >> SQ_THREAD_ARB_PRIORITY_SX_AVAIL_WEIGHT_SHIFT)
+#define SQ_THREAD_ARB_PRIORITY_GET_SX_AVAIL_SIGN(sq_thread_arb_priority) \
+ ((sq_thread_arb_priority & SQ_THREAD_ARB_PRIORITY_SX_AVAIL_SIGN_MASK) >> SQ_THREAD_ARB_PRIORITY_SX_AVAIL_SIGN_SHIFT)
+#define SQ_THREAD_ARB_PRIORITY_GET_THRESHOLD(sq_thread_arb_priority) \
+ ((sq_thread_arb_priority & SQ_THREAD_ARB_PRIORITY_THRESHOLD_MASK) >> SQ_THREAD_ARB_PRIORITY_THRESHOLD_SHIFT)
+#define SQ_THREAD_ARB_PRIORITY_GET_RESERVED(sq_thread_arb_priority) \
+ ((sq_thread_arb_priority & SQ_THREAD_ARB_PRIORITY_RESERVED_MASK) >> SQ_THREAD_ARB_PRIORITY_RESERVED_SHIFT)
+#define SQ_THREAD_ARB_PRIORITY_GET_VS_PRIORITIZE_SERIAL(sq_thread_arb_priority) \
+ ((sq_thread_arb_priority & SQ_THREAD_ARB_PRIORITY_VS_PRIORITIZE_SERIAL_MASK) >> SQ_THREAD_ARB_PRIORITY_VS_PRIORITIZE_SERIAL_SHIFT)
+#define SQ_THREAD_ARB_PRIORITY_GET_PS_PRIORITIZE_SERIAL(sq_thread_arb_priority) \
+ ((sq_thread_arb_priority & SQ_THREAD_ARB_PRIORITY_PS_PRIORITIZE_SERIAL_MASK) >> SQ_THREAD_ARB_PRIORITY_PS_PRIORITIZE_SERIAL_SHIFT)
+#define SQ_THREAD_ARB_PRIORITY_GET_USE_SERIAL_COUNT_THRESHOLD(sq_thread_arb_priority) \
+ ((sq_thread_arb_priority & SQ_THREAD_ARB_PRIORITY_USE_SERIAL_COUNT_THRESHOLD_MASK) >> SQ_THREAD_ARB_PRIORITY_USE_SERIAL_COUNT_THRESHOLD_SHIFT)
+
+#define SQ_THREAD_ARB_PRIORITY_SET_PC_AVAIL_WEIGHT(sq_thread_arb_priority_reg, pc_avail_weight) \
+ sq_thread_arb_priority_reg = (sq_thread_arb_priority_reg & ~SQ_THREAD_ARB_PRIORITY_PC_AVAIL_WEIGHT_MASK) | (pc_avail_weight << SQ_THREAD_ARB_PRIORITY_PC_AVAIL_WEIGHT_SHIFT)
+#define SQ_THREAD_ARB_PRIORITY_SET_PC_AVAIL_SIGN(sq_thread_arb_priority_reg, pc_avail_sign) \
+ sq_thread_arb_priority_reg = (sq_thread_arb_priority_reg & ~SQ_THREAD_ARB_PRIORITY_PC_AVAIL_SIGN_MASK) | (pc_avail_sign << SQ_THREAD_ARB_PRIORITY_PC_AVAIL_SIGN_SHIFT)
+#define SQ_THREAD_ARB_PRIORITY_SET_SX_AVAIL_WEIGHT(sq_thread_arb_priority_reg, sx_avail_weight) \
+ sq_thread_arb_priority_reg = (sq_thread_arb_priority_reg & ~SQ_THREAD_ARB_PRIORITY_SX_AVAIL_WEIGHT_MASK) | (sx_avail_weight << SQ_THREAD_ARB_PRIORITY_SX_AVAIL_WEIGHT_SHIFT)
+#define SQ_THREAD_ARB_PRIORITY_SET_SX_AVAIL_SIGN(sq_thread_arb_priority_reg, sx_avail_sign) \
+ sq_thread_arb_priority_reg = (sq_thread_arb_priority_reg & ~SQ_THREAD_ARB_PRIORITY_SX_AVAIL_SIGN_MASK) | (sx_avail_sign << SQ_THREAD_ARB_PRIORITY_SX_AVAIL_SIGN_SHIFT)
+#define SQ_THREAD_ARB_PRIORITY_SET_THRESHOLD(sq_thread_arb_priority_reg, threshold) \
+ sq_thread_arb_priority_reg = (sq_thread_arb_priority_reg & ~SQ_THREAD_ARB_PRIORITY_THRESHOLD_MASK) | (threshold << SQ_THREAD_ARB_PRIORITY_THRESHOLD_SHIFT)
+#define SQ_THREAD_ARB_PRIORITY_SET_RESERVED(sq_thread_arb_priority_reg, reserved) \
+ sq_thread_arb_priority_reg = (sq_thread_arb_priority_reg & ~SQ_THREAD_ARB_PRIORITY_RESERVED_MASK) | (reserved << SQ_THREAD_ARB_PRIORITY_RESERVED_SHIFT)
+#define SQ_THREAD_ARB_PRIORITY_SET_VS_PRIORITIZE_SERIAL(sq_thread_arb_priority_reg, vs_prioritize_serial) \
+ sq_thread_arb_priority_reg = (sq_thread_arb_priority_reg & ~SQ_THREAD_ARB_PRIORITY_VS_PRIORITIZE_SERIAL_MASK) | (vs_prioritize_serial << SQ_THREAD_ARB_PRIORITY_VS_PRIORITIZE_SERIAL_SHIFT)
+#define SQ_THREAD_ARB_PRIORITY_SET_PS_PRIORITIZE_SERIAL(sq_thread_arb_priority_reg, ps_prioritize_serial) \
+ sq_thread_arb_priority_reg = (sq_thread_arb_priority_reg & ~SQ_THREAD_ARB_PRIORITY_PS_PRIORITIZE_SERIAL_MASK) | (ps_prioritize_serial << SQ_THREAD_ARB_PRIORITY_PS_PRIORITIZE_SERIAL_SHIFT)
+#define SQ_THREAD_ARB_PRIORITY_SET_USE_SERIAL_COUNT_THRESHOLD(sq_thread_arb_priority_reg, use_serial_count_threshold) \
+ sq_thread_arb_priority_reg = (sq_thread_arb_priority_reg & ~SQ_THREAD_ARB_PRIORITY_USE_SERIAL_COUNT_THRESHOLD_MASK) | (use_serial_count_threshold << SQ_THREAD_ARB_PRIORITY_USE_SERIAL_COUNT_THRESHOLD_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_thread_arb_priority_t {
+ unsigned int pc_avail_weight : SQ_THREAD_ARB_PRIORITY_PC_AVAIL_WEIGHT_SIZE;
+ unsigned int pc_avail_sign : SQ_THREAD_ARB_PRIORITY_PC_AVAIL_SIGN_SIZE;
+ unsigned int sx_avail_weight : SQ_THREAD_ARB_PRIORITY_SX_AVAIL_WEIGHT_SIZE;
+ unsigned int sx_avail_sign : SQ_THREAD_ARB_PRIORITY_SX_AVAIL_SIGN_SIZE;
+ unsigned int threshold : SQ_THREAD_ARB_PRIORITY_THRESHOLD_SIZE;
+ unsigned int reserved : SQ_THREAD_ARB_PRIORITY_RESERVED_SIZE;
+ unsigned int vs_prioritize_serial : SQ_THREAD_ARB_PRIORITY_VS_PRIORITIZE_SERIAL_SIZE;
+ unsigned int ps_prioritize_serial : SQ_THREAD_ARB_PRIORITY_PS_PRIORITIZE_SERIAL_SIZE;
+ unsigned int use_serial_count_threshold : SQ_THREAD_ARB_PRIORITY_USE_SERIAL_COUNT_THRESHOLD_SIZE;
+ unsigned int : 9;
+ } sq_thread_arb_priority_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_thread_arb_priority_t {
+ unsigned int : 9;
+ unsigned int use_serial_count_threshold : SQ_THREAD_ARB_PRIORITY_USE_SERIAL_COUNT_THRESHOLD_SIZE;
+ unsigned int ps_prioritize_serial : SQ_THREAD_ARB_PRIORITY_PS_PRIORITIZE_SERIAL_SIZE;
+ unsigned int vs_prioritize_serial : SQ_THREAD_ARB_PRIORITY_VS_PRIORITIZE_SERIAL_SIZE;
+ unsigned int reserved : SQ_THREAD_ARB_PRIORITY_RESERVED_SIZE;
+ unsigned int threshold : SQ_THREAD_ARB_PRIORITY_THRESHOLD_SIZE;
+ unsigned int sx_avail_sign : SQ_THREAD_ARB_PRIORITY_SX_AVAIL_SIGN_SIZE;
+ unsigned int sx_avail_weight : SQ_THREAD_ARB_PRIORITY_SX_AVAIL_WEIGHT_SIZE;
+ unsigned int pc_avail_sign : SQ_THREAD_ARB_PRIORITY_PC_AVAIL_SIGN_SIZE;
+ unsigned int pc_avail_weight : SQ_THREAD_ARB_PRIORITY_PC_AVAIL_WEIGHT_SIZE;
+ } sq_thread_arb_priority_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_thread_arb_priority_t f;
+} sq_thread_arb_priority_u;
+
+
+/*
+ * SQ_DEBUG_INPUT_FSM struct
+ */
+
+#define SQ_DEBUG_INPUT_FSM_VC_VSR_LD_SIZE 3
+#define SQ_DEBUG_INPUT_FSM_RESERVED_SIZE 1
+#define SQ_DEBUG_INPUT_FSM_VC_GPR_LD_SIZE 4
+#define SQ_DEBUG_INPUT_FSM_PC_PISM_SIZE 3
+#define SQ_DEBUG_INPUT_FSM_RESERVED1_SIZE 1
+#define SQ_DEBUG_INPUT_FSM_PC_AS_SIZE 3
+#define SQ_DEBUG_INPUT_FSM_PC_INTERP_CNT_SIZE 5
+#define SQ_DEBUG_INPUT_FSM_PC_GPR_SIZE_SIZE 8
+
+#define SQ_DEBUG_INPUT_FSM_VC_VSR_LD_SHIFT 0
+#define SQ_DEBUG_INPUT_FSM_RESERVED_SHIFT 3
+#define SQ_DEBUG_INPUT_FSM_VC_GPR_LD_SHIFT 4
+#define SQ_DEBUG_INPUT_FSM_PC_PISM_SHIFT 8
+#define SQ_DEBUG_INPUT_FSM_RESERVED1_SHIFT 11
+#define SQ_DEBUG_INPUT_FSM_PC_AS_SHIFT 12
+#define SQ_DEBUG_INPUT_FSM_PC_INTERP_CNT_SHIFT 15
+#define SQ_DEBUG_INPUT_FSM_PC_GPR_SIZE_SHIFT 20
+
+#define SQ_DEBUG_INPUT_FSM_VC_VSR_LD_MASK 0x00000007
+#define SQ_DEBUG_INPUT_FSM_RESERVED_MASK 0x00000008
+#define SQ_DEBUG_INPUT_FSM_VC_GPR_LD_MASK 0x000000f0
+#define SQ_DEBUG_INPUT_FSM_PC_PISM_MASK 0x00000700
+#define SQ_DEBUG_INPUT_FSM_RESERVED1_MASK 0x00000800
+#define SQ_DEBUG_INPUT_FSM_PC_AS_MASK 0x00007000
+#define SQ_DEBUG_INPUT_FSM_PC_INTERP_CNT_MASK 0x000f8000
+#define SQ_DEBUG_INPUT_FSM_PC_GPR_SIZE_MASK 0x0ff00000
+
+#define SQ_DEBUG_INPUT_FSM_MASK \
+ (SQ_DEBUG_INPUT_FSM_VC_VSR_LD_MASK | \
+ SQ_DEBUG_INPUT_FSM_RESERVED_MASK | \
+ SQ_DEBUG_INPUT_FSM_VC_GPR_LD_MASK | \
+ SQ_DEBUG_INPUT_FSM_PC_PISM_MASK | \
+ SQ_DEBUG_INPUT_FSM_RESERVED1_MASK | \
+ SQ_DEBUG_INPUT_FSM_PC_AS_MASK | \
+ SQ_DEBUG_INPUT_FSM_PC_INTERP_CNT_MASK | \
+ SQ_DEBUG_INPUT_FSM_PC_GPR_SIZE_MASK)
+
+#define SQ_DEBUG_INPUT_FSM(vc_vsr_ld, reserved, vc_gpr_ld, pc_pism, reserved1, pc_as, pc_interp_cnt, pc_gpr_size) \
+ ((vc_vsr_ld << SQ_DEBUG_INPUT_FSM_VC_VSR_LD_SHIFT) | \
+ (reserved << SQ_DEBUG_INPUT_FSM_RESERVED_SHIFT) | \
+ (vc_gpr_ld << SQ_DEBUG_INPUT_FSM_VC_GPR_LD_SHIFT) | \
+ (pc_pism << SQ_DEBUG_INPUT_FSM_PC_PISM_SHIFT) | \
+ (reserved1 << SQ_DEBUG_INPUT_FSM_RESERVED1_SHIFT) | \
+ (pc_as << SQ_DEBUG_INPUT_FSM_PC_AS_SHIFT) | \
+ (pc_interp_cnt << SQ_DEBUG_INPUT_FSM_PC_INTERP_CNT_SHIFT) | \
+ (pc_gpr_size << SQ_DEBUG_INPUT_FSM_PC_GPR_SIZE_SHIFT))
+
+#define SQ_DEBUG_INPUT_FSM_GET_VC_VSR_LD(sq_debug_input_fsm) \
+ ((sq_debug_input_fsm & SQ_DEBUG_INPUT_FSM_VC_VSR_LD_MASK) >> SQ_DEBUG_INPUT_FSM_VC_VSR_LD_SHIFT)
+#define SQ_DEBUG_INPUT_FSM_GET_RESERVED(sq_debug_input_fsm) \
+ ((sq_debug_input_fsm & SQ_DEBUG_INPUT_FSM_RESERVED_MASK) >> SQ_DEBUG_INPUT_FSM_RESERVED_SHIFT)
+#define SQ_DEBUG_INPUT_FSM_GET_VC_GPR_LD(sq_debug_input_fsm) \
+ ((sq_debug_input_fsm & SQ_DEBUG_INPUT_FSM_VC_GPR_LD_MASK) >> SQ_DEBUG_INPUT_FSM_VC_GPR_LD_SHIFT)
+#define SQ_DEBUG_INPUT_FSM_GET_PC_PISM(sq_debug_input_fsm) \
+ ((sq_debug_input_fsm & SQ_DEBUG_INPUT_FSM_PC_PISM_MASK) >> SQ_DEBUG_INPUT_FSM_PC_PISM_SHIFT)
+#define SQ_DEBUG_INPUT_FSM_GET_RESERVED1(sq_debug_input_fsm) \
+ ((sq_debug_input_fsm & SQ_DEBUG_INPUT_FSM_RESERVED1_MASK) >> SQ_DEBUG_INPUT_FSM_RESERVED1_SHIFT)
+#define SQ_DEBUG_INPUT_FSM_GET_PC_AS(sq_debug_input_fsm) \
+ ((sq_debug_input_fsm & SQ_DEBUG_INPUT_FSM_PC_AS_MASK) >> SQ_DEBUG_INPUT_FSM_PC_AS_SHIFT)
+#define SQ_DEBUG_INPUT_FSM_GET_PC_INTERP_CNT(sq_debug_input_fsm) \
+ ((sq_debug_input_fsm & SQ_DEBUG_INPUT_FSM_PC_INTERP_CNT_MASK) >> SQ_DEBUG_INPUT_FSM_PC_INTERP_CNT_SHIFT)
+#define SQ_DEBUG_INPUT_FSM_GET_PC_GPR_SIZE(sq_debug_input_fsm) \
+ ((sq_debug_input_fsm & SQ_DEBUG_INPUT_FSM_PC_GPR_SIZE_MASK) >> SQ_DEBUG_INPUT_FSM_PC_GPR_SIZE_SHIFT)
+
+#define SQ_DEBUG_INPUT_FSM_SET_VC_VSR_LD(sq_debug_input_fsm_reg, vc_vsr_ld) \
+ sq_debug_input_fsm_reg = (sq_debug_input_fsm_reg & ~SQ_DEBUG_INPUT_FSM_VC_VSR_LD_MASK) | (vc_vsr_ld << SQ_DEBUG_INPUT_FSM_VC_VSR_LD_SHIFT)
+#define SQ_DEBUG_INPUT_FSM_SET_RESERVED(sq_debug_input_fsm_reg, reserved) \
+ sq_debug_input_fsm_reg = (sq_debug_input_fsm_reg & ~SQ_DEBUG_INPUT_FSM_RESERVED_MASK) | (reserved << SQ_DEBUG_INPUT_FSM_RESERVED_SHIFT)
+#define SQ_DEBUG_INPUT_FSM_SET_VC_GPR_LD(sq_debug_input_fsm_reg, vc_gpr_ld) \
+ sq_debug_input_fsm_reg = (sq_debug_input_fsm_reg & ~SQ_DEBUG_INPUT_FSM_VC_GPR_LD_MASK) | (vc_gpr_ld << SQ_DEBUG_INPUT_FSM_VC_GPR_LD_SHIFT)
+#define SQ_DEBUG_INPUT_FSM_SET_PC_PISM(sq_debug_input_fsm_reg, pc_pism) \
+ sq_debug_input_fsm_reg = (sq_debug_input_fsm_reg & ~SQ_DEBUG_INPUT_FSM_PC_PISM_MASK) | (pc_pism << SQ_DEBUG_INPUT_FSM_PC_PISM_SHIFT)
+#define SQ_DEBUG_INPUT_FSM_SET_RESERVED1(sq_debug_input_fsm_reg, reserved1) \
+ sq_debug_input_fsm_reg = (sq_debug_input_fsm_reg & ~SQ_DEBUG_INPUT_FSM_RESERVED1_MASK) | (reserved1 << SQ_DEBUG_INPUT_FSM_RESERVED1_SHIFT)
+#define SQ_DEBUG_INPUT_FSM_SET_PC_AS(sq_debug_input_fsm_reg, pc_as) \
+ sq_debug_input_fsm_reg = (sq_debug_input_fsm_reg & ~SQ_DEBUG_INPUT_FSM_PC_AS_MASK) | (pc_as << SQ_DEBUG_INPUT_FSM_PC_AS_SHIFT)
+#define SQ_DEBUG_INPUT_FSM_SET_PC_INTERP_CNT(sq_debug_input_fsm_reg, pc_interp_cnt) \
+ sq_debug_input_fsm_reg = (sq_debug_input_fsm_reg & ~SQ_DEBUG_INPUT_FSM_PC_INTERP_CNT_MASK) | (pc_interp_cnt << SQ_DEBUG_INPUT_FSM_PC_INTERP_CNT_SHIFT)
+#define SQ_DEBUG_INPUT_FSM_SET_PC_GPR_SIZE(sq_debug_input_fsm_reg, pc_gpr_size) \
+ sq_debug_input_fsm_reg = (sq_debug_input_fsm_reg & ~SQ_DEBUG_INPUT_FSM_PC_GPR_SIZE_MASK) | (pc_gpr_size << SQ_DEBUG_INPUT_FSM_PC_GPR_SIZE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_input_fsm_t {
+ unsigned int vc_vsr_ld : SQ_DEBUG_INPUT_FSM_VC_VSR_LD_SIZE;
+ unsigned int reserved : SQ_DEBUG_INPUT_FSM_RESERVED_SIZE;
+ unsigned int vc_gpr_ld : SQ_DEBUG_INPUT_FSM_VC_GPR_LD_SIZE;
+ unsigned int pc_pism : SQ_DEBUG_INPUT_FSM_PC_PISM_SIZE;
+ unsigned int reserved1 : SQ_DEBUG_INPUT_FSM_RESERVED1_SIZE;
+ unsigned int pc_as : SQ_DEBUG_INPUT_FSM_PC_AS_SIZE;
+ unsigned int pc_interp_cnt : SQ_DEBUG_INPUT_FSM_PC_INTERP_CNT_SIZE;
+ unsigned int pc_gpr_size : SQ_DEBUG_INPUT_FSM_PC_GPR_SIZE_SIZE;
+ unsigned int : 4;
+ } sq_debug_input_fsm_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_input_fsm_t {
+ unsigned int : 4;
+ unsigned int pc_gpr_size : SQ_DEBUG_INPUT_FSM_PC_GPR_SIZE_SIZE;
+ unsigned int pc_interp_cnt : SQ_DEBUG_INPUT_FSM_PC_INTERP_CNT_SIZE;
+ unsigned int pc_as : SQ_DEBUG_INPUT_FSM_PC_AS_SIZE;
+ unsigned int reserved1 : SQ_DEBUG_INPUT_FSM_RESERVED1_SIZE;
+ unsigned int pc_pism : SQ_DEBUG_INPUT_FSM_PC_PISM_SIZE;
+ unsigned int vc_gpr_ld : SQ_DEBUG_INPUT_FSM_VC_GPR_LD_SIZE;
+ unsigned int reserved : SQ_DEBUG_INPUT_FSM_RESERVED_SIZE;
+ unsigned int vc_vsr_ld : SQ_DEBUG_INPUT_FSM_VC_VSR_LD_SIZE;
+ } sq_debug_input_fsm_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_input_fsm_t f;
+} sq_debug_input_fsm_u;
+
+
+/*
+ * SQ_DEBUG_CONST_MGR_FSM struct
+ */
+
+#define SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_EVENT_STATE_SIZE 5
+#define SQ_DEBUG_CONST_MGR_FSM_RESERVED1_SIZE 3
+#define SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_EVENT_STATE_SIZE 5
+#define SQ_DEBUG_CONST_MGR_FSM_RESERVED2_SIZE 3
+#define SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_CNTX_VALID_SIZE 2
+#define SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_CNTX_VALID_SIZE 2
+#define SQ_DEBUG_CONST_MGR_FSM_CNTX0_VTX_EVENT_DONE_SIZE 1
+#define SQ_DEBUG_CONST_MGR_FSM_CNTX0_PIX_EVENT_DONE_SIZE 1
+#define SQ_DEBUG_CONST_MGR_FSM_CNTX1_VTX_EVENT_DONE_SIZE 1
+#define SQ_DEBUG_CONST_MGR_FSM_CNTX1_PIX_EVENT_DONE_SIZE 1
+
+#define SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_EVENT_STATE_SHIFT 0
+#define SQ_DEBUG_CONST_MGR_FSM_RESERVED1_SHIFT 5
+#define SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_EVENT_STATE_SHIFT 8
+#define SQ_DEBUG_CONST_MGR_FSM_RESERVED2_SHIFT 13
+#define SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_CNTX_VALID_SHIFT 16
+#define SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_CNTX_VALID_SHIFT 18
+#define SQ_DEBUG_CONST_MGR_FSM_CNTX0_VTX_EVENT_DONE_SHIFT 20
+#define SQ_DEBUG_CONST_MGR_FSM_CNTX0_PIX_EVENT_DONE_SHIFT 21
+#define SQ_DEBUG_CONST_MGR_FSM_CNTX1_VTX_EVENT_DONE_SHIFT 22
+#define SQ_DEBUG_CONST_MGR_FSM_CNTX1_PIX_EVENT_DONE_SHIFT 23
+
+#define SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_EVENT_STATE_MASK 0x0000001f
+#define SQ_DEBUG_CONST_MGR_FSM_RESERVED1_MASK 0x000000e0
+#define SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_EVENT_STATE_MASK 0x00001f00
+#define SQ_DEBUG_CONST_MGR_FSM_RESERVED2_MASK 0x0000e000
+#define SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_CNTX_VALID_MASK 0x00030000
+#define SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_CNTX_VALID_MASK 0x000c0000
+#define SQ_DEBUG_CONST_MGR_FSM_CNTX0_VTX_EVENT_DONE_MASK 0x00100000
+#define SQ_DEBUG_CONST_MGR_FSM_CNTX0_PIX_EVENT_DONE_MASK 0x00200000
+#define SQ_DEBUG_CONST_MGR_FSM_CNTX1_VTX_EVENT_DONE_MASK 0x00400000
+#define SQ_DEBUG_CONST_MGR_FSM_CNTX1_PIX_EVENT_DONE_MASK 0x00800000
+
+#define SQ_DEBUG_CONST_MGR_FSM_MASK \
+ (SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_EVENT_STATE_MASK | \
+ SQ_DEBUG_CONST_MGR_FSM_RESERVED1_MASK | \
+ SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_EVENT_STATE_MASK | \
+ SQ_DEBUG_CONST_MGR_FSM_RESERVED2_MASK | \
+ SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_CNTX_VALID_MASK | \
+ SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_CNTX_VALID_MASK | \
+ SQ_DEBUG_CONST_MGR_FSM_CNTX0_VTX_EVENT_DONE_MASK | \
+ SQ_DEBUG_CONST_MGR_FSM_CNTX0_PIX_EVENT_DONE_MASK | \
+ SQ_DEBUG_CONST_MGR_FSM_CNTX1_VTX_EVENT_DONE_MASK | \
+ SQ_DEBUG_CONST_MGR_FSM_CNTX1_PIX_EVENT_DONE_MASK)
+
+#define SQ_DEBUG_CONST_MGR_FSM(tex_const_event_state, reserved1, alu_const_event_state, reserved2, alu_const_cntx_valid, tex_const_cntx_valid, cntx0_vtx_event_done, cntx0_pix_event_done, cntx1_vtx_event_done, cntx1_pix_event_done) \
+ ((tex_const_event_state << SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_EVENT_STATE_SHIFT) | \
+ (reserved1 << SQ_DEBUG_CONST_MGR_FSM_RESERVED1_SHIFT) | \
+ (alu_const_event_state << SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_EVENT_STATE_SHIFT) | \
+ (reserved2 << SQ_DEBUG_CONST_MGR_FSM_RESERVED2_SHIFT) | \
+ (alu_const_cntx_valid << SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_CNTX_VALID_SHIFT) | \
+ (tex_const_cntx_valid << SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_CNTX_VALID_SHIFT) | \
+ (cntx0_vtx_event_done << SQ_DEBUG_CONST_MGR_FSM_CNTX0_VTX_EVENT_DONE_SHIFT) | \
+ (cntx0_pix_event_done << SQ_DEBUG_CONST_MGR_FSM_CNTX0_PIX_EVENT_DONE_SHIFT) | \
+ (cntx1_vtx_event_done << SQ_DEBUG_CONST_MGR_FSM_CNTX1_VTX_EVENT_DONE_SHIFT) | \
+ (cntx1_pix_event_done << SQ_DEBUG_CONST_MGR_FSM_CNTX1_PIX_EVENT_DONE_SHIFT))
+
+#define SQ_DEBUG_CONST_MGR_FSM_GET_TEX_CONST_EVENT_STATE(sq_debug_const_mgr_fsm) \
+ ((sq_debug_const_mgr_fsm & SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_EVENT_STATE_MASK) >> SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_EVENT_STATE_SHIFT)
+#define SQ_DEBUG_CONST_MGR_FSM_GET_RESERVED1(sq_debug_const_mgr_fsm) \
+ ((sq_debug_const_mgr_fsm & SQ_DEBUG_CONST_MGR_FSM_RESERVED1_MASK) >> SQ_DEBUG_CONST_MGR_FSM_RESERVED1_SHIFT)
+#define SQ_DEBUG_CONST_MGR_FSM_GET_ALU_CONST_EVENT_STATE(sq_debug_const_mgr_fsm) \
+ ((sq_debug_const_mgr_fsm & SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_EVENT_STATE_MASK) >> SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_EVENT_STATE_SHIFT)
+#define SQ_DEBUG_CONST_MGR_FSM_GET_RESERVED2(sq_debug_const_mgr_fsm) \
+ ((sq_debug_const_mgr_fsm & SQ_DEBUG_CONST_MGR_FSM_RESERVED2_MASK) >> SQ_DEBUG_CONST_MGR_FSM_RESERVED2_SHIFT)
+#define SQ_DEBUG_CONST_MGR_FSM_GET_ALU_CONST_CNTX_VALID(sq_debug_const_mgr_fsm) \
+ ((sq_debug_const_mgr_fsm & SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_CNTX_VALID_MASK) >> SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_CNTX_VALID_SHIFT)
+#define SQ_DEBUG_CONST_MGR_FSM_GET_TEX_CONST_CNTX_VALID(sq_debug_const_mgr_fsm) \
+ ((sq_debug_const_mgr_fsm & SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_CNTX_VALID_MASK) >> SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_CNTX_VALID_SHIFT)
+#define SQ_DEBUG_CONST_MGR_FSM_GET_CNTX0_VTX_EVENT_DONE(sq_debug_const_mgr_fsm) \
+ ((sq_debug_const_mgr_fsm & SQ_DEBUG_CONST_MGR_FSM_CNTX0_VTX_EVENT_DONE_MASK) >> SQ_DEBUG_CONST_MGR_FSM_CNTX0_VTX_EVENT_DONE_SHIFT)
+#define SQ_DEBUG_CONST_MGR_FSM_GET_CNTX0_PIX_EVENT_DONE(sq_debug_const_mgr_fsm) \
+ ((sq_debug_const_mgr_fsm & SQ_DEBUG_CONST_MGR_FSM_CNTX0_PIX_EVENT_DONE_MASK) >> SQ_DEBUG_CONST_MGR_FSM_CNTX0_PIX_EVENT_DONE_SHIFT)
+#define SQ_DEBUG_CONST_MGR_FSM_GET_CNTX1_VTX_EVENT_DONE(sq_debug_const_mgr_fsm) \
+ ((sq_debug_const_mgr_fsm & SQ_DEBUG_CONST_MGR_FSM_CNTX1_VTX_EVENT_DONE_MASK) >> SQ_DEBUG_CONST_MGR_FSM_CNTX1_VTX_EVENT_DONE_SHIFT)
+#define SQ_DEBUG_CONST_MGR_FSM_GET_CNTX1_PIX_EVENT_DONE(sq_debug_const_mgr_fsm) \
+ ((sq_debug_const_mgr_fsm & SQ_DEBUG_CONST_MGR_FSM_CNTX1_PIX_EVENT_DONE_MASK) >> SQ_DEBUG_CONST_MGR_FSM_CNTX1_PIX_EVENT_DONE_SHIFT)
+
+#define SQ_DEBUG_CONST_MGR_FSM_SET_TEX_CONST_EVENT_STATE(sq_debug_const_mgr_fsm_reg, tex_const_event_state) \
+ sq_debug_const_mgr_fsm_reg = (sq_debug_const_mgr_fsm_reg & ~SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_EVENT_STATE_MASK) | (tex_const_event_state << SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_EVENT_STATE_SHIFT)
+#define SQ_DEBUG_CONST_MGR_FSM_SET_RESERVED1(sq_debug_const_mgr_fsm_reg, reserved1) \
+ sq_debug_const_mgr_fsm_reg = (sq_debug_const_mgr_fsm_reg & ~SQ_DEBUG_CONST_MGR_FSM_RESERVED1_MASK) | (reserved1 << SQ_DEBUG_CONST_MGR_FSM_RESERVED1_SHIFT)
+#define SQ_DEBUG_CONST_MGR_FSM_SET_ALU_CONST_EVENT_STATE(sq_debug_const_mgr_fsm_reg, alu_const_event_state) \
+ sq_debug_const_mgr_fsm_reg = (sq_debug_const_mgr_fsm_reg & ~SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_EVENT_STATE_MASK) | (alu_const_event_state << SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_EVENT_STATE_SHIFT)
+#define SQ_DEBUG_CONST_MGR_FSM_SET_RESERVED2(sq_debug_const_mgr_fsm_reg, reserved2) \
+ sq_debug_const_mgr_fsm_reg = (sq_debug_const_mgr_fsm_reg & ~SQ_DEBUG_CONST_MGR_FSM_RESERVED2_MASK) | (reserved2 << SQ_DEBUG_CONST_MGR_FSM_RESERVED2_SHIFT)
+#define SQ_DEBUG_CONST_MGR_FSM_SET_ALU_CONST_CNTX_VALID(sq_debug_const_mgr_fsm_reg, alu_const_cntx_valid) \
+ sq_debug_const_mgr_fsm_reg = (sq_debug_const_mgr_fsm_reg & ~SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_CNTX_VALID_MASK) | (alu_const_cntx_valid << SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_CNTX_VALID_SHIFT)
+#define SQ_DEBUG_CONST_MGR_FSM_SET_TEX_CONST_CNTX_VALID(sq_debug_const_mgr_fsm_reg, tex_const_cntx_valid) \
+ sq_debug_const_mgr_fsm_reg = (sq_debug_const_mgr_fsm_reg & ~SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_CNTX_VALID_MASK) | (tex_const_cntx_valid << SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_CNTX_VALID_SHIFT)
+#define SQ_DEBUG_CONST_MGR_FSM_SET_CNTX0_VTX_EVENT_DONE(sq_debug_const_mgr_fsm_reg, cntx0_vtx_event_done) \
+ sq_debug_const_mgr_fsm_reg = (sq_debug_const_mgr_fsm_reg & ~SQ_DEBUG_CONST_MGR_FSM_CNTX0_VTX_EVENT_DONE_MASK) | (cntx0_vtx_event_done << SQ_DEBUG_CONST_MGR_FSM_CNTX0_VTX_EVENT_DONE_SHIFT)
+#define SQ_DEBUG_CONST_MGR_FSM_SET_CNTX0_PIX_EVENT_DONE(sq_debug_const_mgr_fsm_reg, cntx0_pix_event_done) \
+ sq_debug_const_mgr_fsm_reg = (sq_debug_const_mgr_fsm_reg & ~SQ_DEBUG_CONST_MGR_FSM_CNTX0_PIX_EVENT_DONE_MASK) | (cntx0_pix_event_done << SQ_DEBUG_CONST_MGR_FSM_CNTX0_PIX_EVENT_DONE_SHIFT)
+#define SQ_DEBUG_CONST_MGR_FSM_SET_CNTX1_VTX_EVENT_DONE(sq_debug_const_mgr_fsm_reg, cntx1_vtx_event_done) \
+ sq_debug_const_mgr_fsm_reg = (sq_debug_const_mgr_fsm_reg & ~SQ_DEBUG_CONST_MGR_FSM_CNTX1_VTX_EVENT_DONE_MASK) | (cntx1_vtx_event_done << SQ_DEBUG_CONST_MGR_FSM_CNTX1_VTX_EVENT_DONE_SHIFT)
+#define SQ_DEBUG_CONST_MGR_FSM_SET_CNTX1_PIX_EVENT_DONE(sq_debug_const_mgr_fsm_reg, cntx1_pix_event_done) \
+ sq_debug_const_mgr_fsm_reg = (sq_debug_const_mgr_fsm_reg & ~SQ_DEBUG_CONST_MGR_FSM_CNTX1_PIX_EVENT_DONE_MASK) | (cntx1_pix_event_done << SQ_DEBUG_CONST_MGR_FSM_CNTX1_PIX_EVENT_DONE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_const_mgr_fsm_t {
+ unsigned int tex_const_event_state : SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_EVENT_STATE_SIZE;
+ unsigned int reserved1 : SQ_DEBUG_CONST_MGR_FSM_RESERVED1_SIZE;
+ unsigned int alu_const_event_state : SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_EVENT_STATE_SIZE;
+ unsigned int reserved2 : SQ_DEBUG_CONST_MGR_FSM_RESERVED2_SIZE;
+ unsigned int alu_const_cntx_valid : SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_CNTX_VALID_SIZE;
+ unsigned int tex_const_cntx_valid : SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_CNTX_VALID_SIZE;
+ unsigned int cntx0_vtx_event_done : SQ_DEBUG_CONST_MGR_FSM_CNTX0_VTX_EVENT_DONE_SIZE;
+ unsigned int cntx0_pix_event_done : SQ_DEBUG_CONST_MGR_FSM_CNTX0_PIX_EVENT_DONE_SIZE;
+ unsigned int cntx1_vtx_event_done : SQ_DEBUG_CONST_MGR_FSM_CNTX1_VTX_EVENT_DONE_SIZE;
+ unsigned int cntx1_pix_event_done : SQ_DEBUG_CONST_MGR_FSM_CNTX1_PIX_EVENT_DONE_SIZE;
+ unsigned int : 8;
+ } sq_debug_const_mgr_fsm_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_const_mgr_fsm_t {
+ unsigned int : 8;
+ unsigned int cntx1_pix_event_done : SQ_DEBUG_CONST_MGR_FSM_CNTX1_PIX_EVENT_DONE_SIZE;
+ unsigned int cntx1_vtx_event_done : SQ_DEBUG_CONST_MGR_FSM_CNTX1_VTX_EVENT_DONE_SIZE;
+ unsigned int cntx0_pix_event_done : SQ_DEBUG_CONST_MGR_FSM_CNTX0_PIX_EVENT_DONE_SIZE;
+ unsigned int cntx0_vtx_event_done : SQ_DEBUG_CONST_MGR_FSM_CNTX0_VTX_EVENT_DONE_SIZE;
+ unsigned int tex_const_cntx_valid : SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_CNTX_VALID_SIZE;
+ unsigned int alu_const_cntx_valid : SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_CNTX_VALID_SIZE;
+ unsigned int reserved2 : SQ_DEBUG_CONST_MGR_FSM_RESERVED2_SIZE;
+ unsigned int alu_const_event_state : SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_EVENT_STATE_SIZE;
+ unsigned int reserved1 : SQ_DEBUG_CONST_MGR_FSM_RESERVED1_SIZE;
+ unsigned int tex_const_event_state : SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_EVENT_STATE_SIZE;
+ } sq_debug_const_mgr_fsm_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_const_mgr_fsm_t f;
+} sq_debug_const_mgr_fsm_u;
+
+
+/*
+ * SQ_DEBUG_TP_FSM struct
+ */
+
+#define SQ_DEBUG_TP_FSM_EX_TP_SIZE 3
+#define SQ_DEBUG_TP_FSM_RESERVED0_SIZE 1
+#define SQ_DEBUG_TP_FSM_CF_TP_SIZE 4
+#define SQ_DEBUG_TP_FSM_IF_TP_SIZE 3
+#define SQ_DEBUG_TP_FSM_RESERVED1_SIZE 1
+#define SQ_DEBUG_TP_FSM_TIS_TP_SIZE 2
+#define SQ_DEBUG_TP_FSM_RESERVED2_SIZE 2
+#define SQ_DEBUG_TP_FSM_GS_TP_SIZE 2
+#define SQ_DEBUG_TP_FSM_RESERVED3_SIZE 2
+#define SQ_DEBUG_TP_FSM_FCR_TP_SIZE 2
+#define SQ_DEBUG_TP_FSM_RESERVED4_SIZE 2
+#define SQ_DEBUG_TP_FSM_FCS_TP_SIZE 2
+#define SQ_DEBUG_TP_FSM_RESERVED5_SIZE 2
+#define SQ_DEBUG_TP_FSM_ARB_TR_TP_SIZE 3
+
+#define SQ_DEBUG_TP_FSM_EX_TP_SHIFT 0
+#define SQ_DEBUG_TP_FSM_RESERVED0_SHIFT 3
+#define SQ_DEBUG_TP_FSM_CF_TP_SHIFT 4
+#define SQ_DEBUG_TP_FSM_IF_TP_SHIFT 8
+#define SQ_DEBUG_TP_FSM_RESERVED1_SHIFT 11
+#define SQ_DEBUG_TP_FSM_TIS_TP_SHIFT 12
+#define SQ_DEBUG_TP_FSM_RESERVED2_SHIFT 14
+#define SQ_DEBUG_TP_FSM_GS_TP_SHIFT 16
+#define SQ_DEBUG_TP_FSM_RESERVED3_SHIFT 18
+#define SQ_DEBUG_TP_FSM_FCR_TP_SHIFT 20
+#define SQ_DEBUG_TP_FSM_RESERVED4_SHIFT 22
+#define SQ_DEBUG_TP_FSM_FCS_TP_SHIFT 24
+#define SQ_DEBUG_TP_FSM_RESERVED5_SHIFT 26
+#define SQ_DEBUG_TP_FSM_ARB_TR_TP_SHIFT 28
+
+#define SQ_DEBUG_TP_FSM_EX_TP_MASK 0x00000007
+#define SQ_DEBUG_TP_FSM_RESERVED0_MASK 0x00000008
+#define SQ_DEBUG_TP_FSM_CF_TP_MASK 0x000000f0
+#define SQ_DEBUG_TP_FSM_IF_TP_MASK 0x00000700
+#define SQ_DEBUG_TP_FSM_RESERVED1_MASK 0x00000800
+#define SQ_DEBUG_TP_FSM_TIS_TP_MASK 0x00003000
+#define SQ_DEBUG_TP_FSM_RESERVED2_MASK 0x0000c000
+#define SQ_DEBUG_TP_FSM_GS_TP_MASK 0x00030000
+#define SQ_DEBUG_TP_FSM_RESERVED3_MASK 0x000c0000
+#define SQ_DEBUG_TP_FSM_FCR_TP_MASK 0x00300000
+#define SQ_DEBUG_TP_FSM_RESERVED4_MASK 0x00c00000
+#define SQ_DEBUG_TP_FSM_FCS_TP_MASK 0x03000000
+#define SQ_DEBUG_TP_FSM_RESERVED5_MASK 0x0c000000
+#define SQ_DEBUG_TP_FSM_ARB_TR_TP_MASK 0x70000000
+
+#define SQ_DEBUG_TP_FSM_MASK \
+ (SQ_DEBUG_TP_FSM_EX_TP_MASK | \
+ SQ_DEBUG_TP_FSM_RESERVED0_MASK | \
+ SQ_DEBUG_TP_FSM_CF_TP_MASK | \
+ SQ_DEBUG_TP_FSM_IF_TP_MASK | \
+ SQ_DEBUG_TP_FSM_RESERVED1_MASK | \
+ SQ_DEBUG_TP_FSM_TIS_TP_MASK | \
+ SQ_DEBUG_TP_FSM_RESERVED2_MASK | \
+ SQ_DEBUG_TP_FSM_GS_TP_MASK | \
+ SQ_DEBUG_TP_FSM_RESERVED3_MASK | \
+ SQ_DEBUG_TP_FSM_FCR_TP_MASK | \
+ SQ_DEBUG_TP_FSM_RESERVED4_MASK | \
+ SQ_DEBUG_TP_FSM_FCS_TP_MASK | \
+ SQ_DEBUG_TP_FSM_RESERVED5_MASK | \
+ SQ_DEBUG_TP_FSM_ARB_TR_TP_MASK)
+
+#define SQ_DEBUG_TP_FSM(ex_tp, reserved0, cf_tp, if_tp, reserved1, tis_tp, reserved2, gs_tp, reserved3, fcr_tp, reserved4, fcs_tp, reserved5, arb_tr_tp) \
+ ((ex_tp << SQ_DEBUG_TP_FSM_EX_TP_SHIFT) | \
+ (reserved0 << SQ_DEBUG_TP_FSM_RESERVED0_SHIFT) | \
+ (cf_tp << SQ_DEBUG_TP_FSM_CF_TP_SHIFT) | \
+ (if_tp << SQ_DEBUG_TP_FSM_IF_TP_SHIFT) | \
+ (reserved1 << SQ_DEBUG_TP_FSM_RESERVED1_SHIFT) | \
+ (tis_tp << SQ_DEBUG_TP_FSM_TIS_TP_SHIFT) | \
+ (reserved2 << SQ_DEBUG_TP_FSM_RESERVED2_SHIFT) | \
+ (gs_tp << SQ_DEBUG_TP_FSM_GS_TP_SHIFT) | \
+ (reserved3 << SQ_DEBUG_TP_FSM_RESERVED3_SHIFT) | \
+ (fcr_tp << SQ_DEBUG_TP_FSM_FCR_TP_SHIFT) | \
+ (reserved4 << SQ_DEBUG_TP_FSM_RESERVED4_SHIFT) | \
+ (fcs_tp << SQ_DEBUG_TP_FSM_FCS_TP_SHIFT) | \
+ (reserved5 << SQ_DEBUG_TP_FSM_RESERVED5_SHIFT) | \
+ (arb_tr_tp << SQ_DEBUG_TP_FSM_ARB_TR_TP_SHIFT))
+
+#define SQ_DEBUG_TP_FSM_GET_EX_TP(sq_debug_tp_fsm) \
+ ((sq_debug_tp_fsm & SQ_DEBUG_TP_FSM_EX_TP_MASK) >> SQ_DEBUG_TP_FSM_EX_TP_SHIFT)
+#define SQ_DEBUG_TP_FSM_GET_RESERVED0(sq_debug_tp_fsm) \
+ ((sq_debug_tp_fsm & SQ_DEBUG_TP_FSM_RESERVED0_MASK) >> SQ_DEBUG_TP_FSM_RESERVED0_SHIFT)
+#define SQ_DEBUG_TP_FSM_GET_CF_TP(sq_debug_tp_fsm) \
+ ((sq_debug_tp_fsm & SQ_DEBUG_TP_FSM_CF_TP_MASK) >> SQ_DEBUG_TP_FSM_CF_TP_SHIFT)
+#define SQ_DEBUG_TP_FSM_GET_IF_TP(sq_debug_tp_fsm) \
+ ((sq_debug_tp_fsm & SQ_DEBUG_TP_FSM_IF_TP_MASK) >> SQ_DEBUG_TP_FSM_IF_TP_SHIFT)
+#define SQ_DEBUG_TP_FSM_GET_RESERVED1(sq_debug_tp_fsm) \
+ ((sq_debug_tp_fsm & SQ_DEBUG_TP_FSM_RESERVED1_MASK) >> SQ_DEBUG_TP_FSM_RESERVED1_SHIFT)
+#define SQ_DEBUG_TP_FSM_GET_TIS_TP(sq_debug_tp_fsm) \
+ ((sq_debug_tp_fsm & SQ_DEBUG_TP_FSM_TIS_TP_MASK) >> SQ_DEBUG_TP_FSM_TIS_TP_SHIFT)
+#define SQ_DEBUG_TP_FSM_GET_RESERVED2(sq_debug_tp_fsm) \
+ ((sq_debug_tp_fsm & SQ_DEBUG_TP_FSM_RESERVED2_MASK) >> SQ_DEBUG_TP_FSM_RESERVED2_SHIFT)
+#define SQ_DEBUG_TP_FSM_GET_GS_TP(sq_debug_tp_fsm) \
+ ((sq_debug_tp_fsm & SQ_DEBUG_TP_FSM_GS_TP_MASK) >> SQ_DEBUG_TP_FSM_GS_TP_SHIFT)
+#define SQ_DEBUG_TP_FSM_GET_RESERVED3(sq_debug_tp_fsm) \
+ ((sq_debug_tp_fsm & SQ_DEBUG_TP_FSM_RESERVED3_MASK) >> SQ_DEBUG_TP_FSM_RESERVED3_SHIFT)
+#define SQ_DEBUG_TP_FSM_GET_FCR_TP(sq_debug_tp_fsm) \
+ ((sq_debug_tp_fsm & SQ_DEBUG_TP_FSM_FCR_TP_MASK) >> SQ_DEBUG_TP_FSM_FCR_TP_SHIFT)
+#define SQ_DEBUG_TP_FSM_GET_RESERVED4(sq_debug_tp_fsm) \
+ ((sq_debug_tp_fsm & SQ_DEBUG_TP_FSM_RESERVED4_MASK) >> SQ_DEBUG_TP_FSM_RESERVED4_SHIFT)
+#define SQ_DEBUG_TP_FSM_GET_FCS_TP(sq_debug_tp_fsm) \
+ ((sq_debug_tp_fsm & SQ_DEBUG_TP_FSM_FCS_TP_MASK) >> SQ_DEBUG_TP_FSM_FCS_TP_SHIFT)
+#define SQ_DEBUG_TP_FSM_GET_RESERVED5(sq_debug_tp_fsm) \
+ ((sq_debug_tp_fsm & SQ_DEBUG_TP_FSM_RESERVED5_MASK) >> SQ_DEBUG_TP_FSM_RESERVED5_SHIFT)
+#define SQ_DEBUG_TP_FSM_GET_ARB_TR_TP(sq_debug_tp_fsm) \
+ ((sq_debug_tp_fsm & SQ_DEBUG_TP_FSM_ARB_TR_TP_MASK) >> SQ_DEBUG_TP_FSM_ARB_TR_TP_SHIFT)
+
+#define SQ_DEBUG_TP_FSM_SET_EX_TP(sq_debug_tp_fsm_reg, ex_tp) \
+ sq_debug_tp_fsm_reg = (sq_debug_tp_fsm_reg & ~SQ_DEBUG_TP_FSM_EX_TP_MASK) | (ex_tp << SQ_DEBUG_TP_FSM_EX_TP_SHIFT)
+#define SQ_DEBUG_TP_FSM_SET_RESERVED0(sq_debug_tp_fsm_reg, reserved0) \
+ sq_debug_tp_fsm_reg = (sq_debug_tp_fsm_reg & ~SQ_DEBUG_TP_FSM_RESERVED0_MASK) | (reserved0 << SQ_DEBUG_TP_FSM_RESERVED0_SHIFT)
+#define SQ_DEBUG_TP_FSM_SET_CF_TP(sq_debug_tp_fsm_reg, cf_tp) \
+ sq_debug_tp_fsm_reg = (sq_debug_tp_fsm_reg & ~SQ_DEBUG_TP_FSM_CF_TP_MASK) | (cf_tp << SQ_DEBUG_TP_FSM_CF_TP_SHIFT)
+#define SQ_DEBUG_TP_FSM_SET_IF_TP(sq_debug_tp_fsm_reg, if_tp) \
+ sq_debug_tp_fsm_reg = (sq_debug_tp_fsm_reg & ~SQ_DEBUG_TP_FSM_IF_TP_MASK) | (if_tp << SQ_DEBUG_TP_FSM_IF_TP_SHIFT)
+#define SQ_DEBUG_TP_FSM_SET_RESERVED1(sq_debug_tp_fsm_reg, reserved1) \
+ sq_debug_tp_fsm_reg = (sq_debug_tp_fsm_reg & ~SQ_DEBUG_TP_FSM_RESERVED1_MASK) | (reserved1 << SQ_DEBUG_TP_FSM_RESERVED1_SHIFT)
+#define SQ_DEBUG_TP_FSM_SET_TIS_TP(sq_debug_tp_fsm_reg, tis_tp) \
+ sq_debug_tp_fsm_reg = (sq_debug_tp_fsm_reg & ~SQ_DEBUG_TP_FSM_TIS_TP_MASK) | (tis_tp << SQ_DEBUG_TP_FSM_TIS_TP_SHIFT)
+#define SQ_DEBUG_TP_FSM_SET_RESERVED2(sq_debug_tp_fsm_reg, reserved2) \
+ sq_debug_tp_fsm_reg = (sq_debug_tp_fsm_reg & ~SQ_DEBUG_TP_FSM_RESERVED2_MASK) | (reserved2 << SQ_DEBUG_TP_FSM_RESERVED2_SHIFT)
+#define SQ_DEBUG_TP_FSM_SET_GS_TP(sq_debug_tp_fsm_reg, gs_tp) \
+ sq_debug_tp_fsm_reg = (sq_debug_tp_fsm_reg & ~SQ_DEBUG_TP_FSM_GS_TP_MASK) | (gs_tp << SQ_DEBUG_TP_FSM_GS_TP_SHIFT)
+#define SQ_DEBUG_TP_FSM_SET_RESERVED3(sq_debug_tp_fsm_reg, reserved3) \
+ sq_debug_tp_fsm_reg = (sq_debug_tp_fsm_reg & ~SQ_DEBUG_TP_FSM_RESERVED3_MASK) | (reserved3 << SQ_DEBUG_TP_FSM_RESERVED3_SHIFT)
+#define SQ_DEBUG_TP_FSM_SET_FCR_TP(sq_debug_tp_fsm_reg, fcr_tp) \
+ sq_debug_tp_fsm_reg = (sq_debug_tp_fsm_reg & ~SQ_DEBUG_TP_FSM_FCR_TP_MASK) | (fcr_tp << SQ_DEBUG_TP_FSM_FCR_TP_SHIFT)
+#define SQ_DEBUG_TP_FSM_SET_RESERVED4(sq_debug_tp_fsm_reg, reserved4) \
+ sq_debug_tp_fsm_reg = (sq_debug_tp_fsm_reg & ~SQ_DEBUG_TP_FSM_RESERVED4_MASK) | (reserved4 << SQ_DEBUG_TP_FSM_RESERVED4_SHIFT)
+#define SQ_DEBUG_TP_FSM_SET_FCS_TP(sq_debug_tp_fsm_reg, fcs_tp) \
+ sq_debug_tp_fsm_reg = (sq_debug_tp_fsm_reg & ~SQ_DEBUG_TP_FSM_FCS_TP_MASK) | (fcs_tp << SQ_DEBUG_TP_FSM_FCS_TP_SHIFT)
+#define SQ_DEBUG_TP_FSM_SET_RESERVED5(sq_debug_tp_fsm_reg, reserved5) \
+ sq_debug_tp_fsm_reg = (sq_debug_tp_fsm_reg & ~SQ_DEBUG_TP_FSM_RESERVED5_MASK) | (reserved5 << SQ_DEBUG_TP_FSM_RESERVED5_SHIFT)
+#define SQ_DEBUG_TP_FSM_SET_ARB_TR_TP(sq_debug_tp_fsm_reg, arb_tr_tp) \
+ sq_debug_tp_fsm_reg = (sq_debug_tp_fsm_reg & ~SQ_DEBUG_TP_FSM_ARB_TR_TP_MASK) | (arb_tr_tp << SQ_DEBUG_TP_FSM_ARB_TR_TP_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_tp_fsm_t {
+ unsigned int ex_tp : SQ_DEBUG_TP_FSM_EX_TP_SIZE;
+ unsigned int reserved0 : SQ_DEBUG_TP_FSM_RESERVED0_SIZE;
+ unsigned int cf_tp : SQ_DEBUG_TP_FSM_CF_TP_SIZE;
+ unsigned int if_tp : SQ_DEBUG_TP_FSM_IF_TP_SIZE;
+ unsigned int reserved1 : SQ_DEBUG_TP_FSM_RESERVED1_SIZE;
+ unsigned int tis_tp : SQ_DEBUG_TP_FSM_TIS_TP_SIZE;
+ unsigned int reserved2 : SQ_DEBUG_TP_FSM_RESERVED2_SIZE;
+ unsigned int gs_tp : SQ_DEBUG_TP_FSM_GS_TP_SIZE;
+ unsigned int reserved3 : SQ_DEBUG_TP_FSM_RESERVED3_SIZE;
+ unsigned int fcr_tp : SQ_DEBUG_TP_FSM_FCR_TP_SIZE;
+ unsigned int reserved4 : SQ_DEBUG_TP_FSM_RESERVED4_SIZE;
+ unsigned int fcs_tp : SQ_DEBUG_TP_FSM_FCS_TP_SIZE;
+ unsigned int reserved5 : SQ_DEBUG_TP_FSM_RESERVED5_SIZE;
+ unsigned int arb_tr_tp : SQ_DEBUG_TP_FSM_ARB_TR_TP_SIZE;
+ unsigned int : 1;
+ } sq_debug_tp_fsm_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_tp_fsm_t {
+ unsigned int : 1;
+ unsigned int arb_tr_tp : SQ_DEBUG_TP_FSM_ARB_TR_TP_SIZE;
+ unsigned int reserved5 : SQ_DEBUG_TP_FSM_RESERVED5_SIZE;
+ unsigned int fcs_tp : SQ_DEBUG_TP_FSM_FCS_TP_SIZE;
+ unsigned int reserved4 : SQ_DEBUG_TP_FSM_RESERVED4_SIZE;
+ unsigned int fcr_tp : SQ_DEBUG_TP_FSM_FCR_TP_SIZE;
+ unsigned int reserved3 : SQ_DEBUG_TP_FSM_RESERVED3_SIZE;
+ unsigned int gs_tp : SQ_DEBUG_TP_FSM_GS_TP_SIZE;
+ unsigned int reserved2 : SQ_DEBUG_TP_FSM_RESERVED2_SIZE;
+ unsigned int tis_tp : SQ_DEBUG_TP_FSM_TIS_TP_SIZE;
+ unsigned int reserved1 : SQ_DEBUG_TP_FSM_RESERVED1_SIZE;
+ unsigned int if_tp : SQ_DEBUG_TP_FSM_IF_TP_SIZE;
+ unsigned int cf_tp : SQ_DEBUG_TP_FSM_CF_TP_SIZE;
+ unsigned int reserved0 : SQ_DEBUG_TP_FSM_RESERVED0_SIZE;
+ unsigned int ex_tp : SQ_DEBUG_TP_FSM_EX_TP_SIZE;
+ } sq_debug_tp_fsm_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_tp_fsm_t f;
+} sq_debug_tp_fsm_u;
+
+
+/*
+ * SQ_DEBUG_FSM_ALU_0 struct
+ */
+
+#define SQ_DEBUG_FSM_ALU_0_EX_ALU_0_SIZE 3
+#define SQ_DEBUG_FSM_ALU_0_RESERVED0_SIZE 1
+#define SQ_DEBUG_FSM_ALU_0_CF_ALU_0_SIZE 4
+#define SQ_DEBUG_FSM_ALU_0_IF_ALU_0_SIZE 3
+#define SQ_DEBUG_FSM_ALU_0_RESERVED1_SIZE 1
+#define SQ_DEBUG_FSM_ALU_0_DU1_ALU_0_SIZE 3
+#define SQ_DEBUG_FSM_ALU_0_RESERVED2_SIZE 1
+#define SQ_DEBUG_FSM_ALU_0_DU0_ALU_0_SIZE 3
+#define SQ_DEBUG_FSM_ALU_0_RESERVED3_SIZE 1
+#define SQ_DEBUG_FSM_ALU_0_AIS_ALU_0_SIZE 3
+#define SQ_DEBUG_FSM_ALU_0_RESERVED4_SIZE 1
+#define SQ_DEBUG_FSM_ALU_0_ACS_ALU_0_SIZE 3
+#define SQ_DEBUG_FSM_ALU_0_RESERVED5_SIZE 1
+#define SQ_DEBUG_FSM_ALU_0_ARB_TR_ALU_SIZE 3
+
+#define SQ_DEBUG_FSM_ALU_0_EX_ALU_0_SHIFT 0
+#define SQ_DEBUG_FSM_ALU_0_RESERVED0_SHIFT 3
+#define SQ_DEBUG_FSM_ALU_0_CF_ALU_0_SHIFT 4
+#define SQ_DEBUG_FSM_ALU_0_IF_ALU_0_SHIFT 8
+#define SQ_DEBUG_FSM_ALU_0_RESERVED1_SHIFT 11
+#define SQ_DEBUG_FSM_ALU_0_DU1_ALU_0_SHIFT 12
+#define SQ_DEBUG_FSM_ALU_0_RESERVED2_SHIFT 15
+#define SQ_DEBUG_FSM_ALU_0_DU0_ALU_0_SHIFT 16
+#define SQ_DEBUG_FSM_ALU_0_RESERVED3_SHIFT 19
+#define SQ_DEBUG_FSM_ALU_0_AIS_ALU_0_SHIFT 20
+#define SQ_DEBUG_FSM_ALU_0_RESERVED4_SHIFT 23
+#define SQ_DEBUG_FSM_ALU_0_ACS_ALU_0_SHIFT 24
+#define SQ_DEBUG_FSM_ALU_0_RESERVED5_SHIFT 27
+#define SQ_DEBUG_FSM_ALU_0_ARB_TR_ALU_SHIFT 28
+
+#define SQ_DEBUG_FSM_ALU_0_EX_ALU_0_MASK 0x00000007
+#define SQ_DEBUG_FSM_ALU_0_RESERVED0_MASK 0x00000008
+#define SQ_DEBUG_FSM_ALU_0_CF_ALU_0_MASK 0x000000f0
+#define SQ_DEBUG_FSM_ALU_0_IF_ALU_0_MASK 0x00000700
+#define SQ_DEBUG_FSM_ALU_0_RESERVED1_MASK 0x00000800
+#define SQ_DEBUG_FSM_ALU_0_DU1_ALU_0_MASK 0x00007000
+#define SQ_DEBUG_FSM_ALU_0_RESERVED2_MASK 0x00008000
+#define SQ_DEBUG_FSM_ALU_0_DU0_ALU_0_MASK 0x00070000
+#define SQ_DEBUG_FSM_ALU_0_RESERVED3_MASK 0x00080000
+#define SQ_DEBUG_FSM_ALU_0_AIS_ALU_0_MASK 0x00700000
+#define SQ_DEBUG_FSM_ALU_0_RESERVED4_MASK 0x00800000
+#define SQ_DEBUG_FSM_ALU_0_ACS_ALU_0_MASK 0x07000000
+#define SQ_DEBUG_FSM_ALU_0_RESERVED5_MASK 0x08000000
+#define SQ_DEBUG_FSM_ALU_0_ARB_TR_ALU_MASK 0x70000000
+
+#define SQ_DEBUG_FSM_ALU_0_MASK \
+ (SQ_DEBUG_FSM_ALU_0_EX_ALU_0_MASK | \
+ SQ_DEBUG_FSM_ALU_0_RESERVED0_MASK | \
+ SQ_DEBUG_FSM_ALU_0_CF_ALU_0_MASK | \
+ SQ_DEBUG_FSM_ALU_0_IF_ALU_0_MASK | \
+ SQ_DEBUG_FSM_ALU_0_RESERVED1_MASK | \
+ SQ_DEBUG_FSM_ALU_0_DU1_ALU_0_MASK | \
+ SQ_DEBUG_FSM_ALU_0_RESERVED2_MASK | \
+ SQ_DEBUG_FSM_ALU_0_DU0_ALU_0_MASK | \
+ SQ_DEBUG_FSM_ALU_0_RESERVED3_MASK | \
+ SQ_DEBUG_FSM_ALU_0_AIS_ALU_0_MASK | \
+ SQ_DEBUG_FSM_ALU_0_RESERVED4_MASK | \
+ SQ_DEBUG_FSM_ALU_0_ACS_ALU_0_MASK | \
+ SQ_DEBUG_FSM_ALU_0_RESERVED5_MASK | \
+ SQ_DEBUG_FSM_ALU_0_ARB_TR_ALU_MASK)
+
+#define SQ_DEBUG_FSM_ALU_0(ex_alu_0, reserved0, cf_alu_0, if_alu_0, reserved1, du1_alu_0, reserved2, du0_alu_0, reserved3, ais_alu_0, reserved4, acs_alu_0, reserved5, arb_tr_alu) \
+ ((ex_alu_0 << SQ_DEBUG_FSM_ALU_0_EX_ALU_0_SHIFT) | \
+ (reserved0 << SQ_DEBUG_FSM_ALU_0_RESERVED0_SHIFT) | \
+ (cf_alu_0 << SQ_DEBUG_FSM_ALU_0_CF_ALU_0_SHIFT) | \
+ (if_alu_0 << SQ_DEBUG_FSM_ALU_0_IF_ALU_0_SHIFT) | \
+ (reserved1 << SQ_DEBUG_FSM_ALU_0_RESERVED1_SHIFT) | \
+ (du1_alu_0 << SQ_DEBUG_FSM_ALU_0_DU1_ALU_0_SHIFT) | \
+ (reserved2 << SQ_DEBUG_FSM_ALU_0_RESERVED2_SHIFT) | \
+ (du0_alu_0 << SQ_DEBUG_FSM_ALU_0_DU0_ALU_0_SHIFT) | \
+ (reserved3 << SQ_DEBUG_FSM_ALU_0_RESERVED3_SHIFT) | \
+ (ais_alu_0 << SQ_DEBUG_FSM_ALU_0_AIS_ALU_0_SHIFT) | \
+ (reserved4 << SQ_DEBUG_FSM_ALU_0_RESERVED4_SHIFT) | \
+ (acs_alu_0 << SQ_DEBUG_FSM_ALU_0_ACS_ALU_0_SHIFT) | \
+ (reserved5 << SQ_DEBUG_FSM_ALU_0_RESERVED5_SHIFT) | \
+ (arb_tr_alu << SQ_DEBUG_FSM_ALU_0_ARB_TR_ALU_SHIFT))
+
+#define SQ_DEBUG_FSM_ALU_0_GET_EX_ALU_0(sq_debug_fsm_alu_0) \
+ ((sq_debug_fsm_alu_0 & SQ_DEBUG_FSM_ALU_0_EX_ALU_0_MASK) >> SQ_DEBUG_FSM_ALU_0_EX_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_GET_RESERVED0(sq_debug_fsm_alu_0) \
+ ((sq_debug_fsm_alu_0 & SQ_DEBUG_FSM_ALU_0_RESERVED0_MASK) >> SQ_DEBUG_FSM_ALU_0_RESERVED0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_GET_CF_ALU_0(sq_debug_fsm_alu_0) \
+ ((sq_debug_fsm_alu_0 & SQ_DEBUG_FSM_ALU_0_CF_ALU_0_MASK) >> SQ_DEBUG_FSM_ALU_0_CF_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_GET_IF_ALU_0(sq_debug_fsm_alu_0) \
+ ((sq_debug_fsm_alu_0 & SQ_DEBUG_FSM_ALU_0_IF_ALU_0_MASK) >> SQ_DEBUG_FSM_ALU_0_IF_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_GET_RESERVED1(sq_debug_fsm_alu_0) \
+ ((sq_debug_fsm_alu_0 & SQ_DEBUG_FSM_ALU_0_RESERVED1_MASK) >> SQ_DEBUG_FSM_ALU_0_RESERVED1_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_GET_DU1_ALU_0(sq_debug_fsm_alu_0) \
+ ((sq_debug_fsm_alu_0 & SQ_DEBUG_FSM_ALU_0_DU1_ALU_0_MASK) >> SQ_DEBUG_FSM_ALU_0_DU1_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_GET_RESERVED2(sq_debug_fsm_alu_0) \
+ ((sq_debug_fsm_alu_0 & SQ_DEBUG_FSM_ALU_0_RESERVED2_MASK) >> SQ_DEBUG_FSM_ALU_0_RESERVED2_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_GET_DU0_ALU_0(sq_debug_fsm_alu_0) \
+ ((sq_debug_fsm_alu_0 & SQ_DEBUG_FSM_ALU_0_DU0_ALU_0_MASK) >> SQ_DEBUG_FSM_ALU_0_DU0_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_GET_RESERVED3(sq_debug_fsm_alu_0) \
+ ((sq_debug_fsm_alu_0 & SQ_DEBUG_FSM_ALU_0_RESERVED3_MASK) >> SQ_DEBUG_FSM_ALU_0_RESERVED3_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_GET_AIS_ALU_0(sq_debug_fsm_alu_0) \
+ ((sq_debug_fsm_alu_0 & SQ_DEBUG_FSM_ALU_0_AIS_ALU_0_MASK) >> SQ_DEBUG_FSM_ALU_0_AIS_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_GET_RESERVED4(sq_debug_fsm_alu_0) \
+ ((sq_debug_fsm_alu_0 & SQ_DEBUG_FSM_ALU_0_RESERVED4_MASK) >> SQ_DEBUG_FSM_ALU_0_RESERVED4_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_GET_ACS_ALU_0(sq_debug_fsm_alu_0) \
+ ((sq_debug_fsm_alu_0 & SQ_DEBUG_FSM_ALU_0_ACS_ALU_0_MASK) >> SQ_DEBUG_FSM_ALU_0_ACS_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_GET_RESERVED5(sq_debug_fsm_alu_0) \
+ ((sq_debug_fsm_alu_0 & SQ_DEBUG_FSM_ALU_0_RESERVED5_MASK) >> SQ_DEBUG_FSM_ALU_0_RESERVED5_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_GET_ARB_TR_ALU(sq_debug_fsm_alu_0) \
+ ((sq_debug_fsm_alu_0 & SQ_DEBUG_FSM_ALU_0_ARB_TR_ALU_MASK) >> SQ_DEBUG_FSM_ALU_0_ARB_TR_ALU_SHIFT)
+
+#define SQ_DEBUG_FSM_ALU_0_SET_EX_ALU_0(sq_debug_fsm_alu_0_reg, ex_alu_0) \
+ sq_debug_fsm_alu_0_reg = (sq_debug_fsm_alu_0_reg & ~SQ_DEBUG_FSM_ALU_0_EX_ALU_0_MASK) | (ex_alu_0 << SQ_DEBUG_FSM_ALU_0_EX_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_SET_RESERVED0(sq_debug_fsm_alu_0_reg, reserved0) \
+ sq_debug_fsm_alu_0_reg = (sq_debug_fsm_alu_0_reg & ~SQ_DEBUG_FSM_ALU_0_RESERVED0_MASK) | (reserved0 << SQ_DEBUG_FSM_ALU_0_RESERVED0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_SET_CF_ALU_0(sq_debug_fsm_alu_0_reg, cf_alu_0) \
+ sq_debug_fsm_alu_0_reg = (sq_debug_fsm_alu_0_reg & ~SQ_DEBUG_FSM_ALU_0_CF_ALU_0_MASK) | (cf_alu_0 << SQ_DEBUG_FSM_ALU_0_CF_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_SET_IF_ALU_0(sq_debug_fsm_alu_0_reg, if_alu_0) \
+ sq_debug_fsm_alu_0_reg = (sq_debug_fsm_alu_0_reg & ~SQ_DEBUG_FSM_ALU_0_IF_ALU_0_MASK) | (if_alu_0 << SQ_DEBUG_FSM_ALU_0_IF_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_SET_RESERVED1(sq_debug_fsm_alu_0_reg, reserved1) \
+ sq_debug_fsm_alu_0_reg = (sq_debug_fsm_alu_0_reg & ~SQ_DEBUG_FSM_ALU_0_RESERVED1_MASK) | (reserved1 << SQ_DEBUG_FSM_ALU_0_RESERVED1_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_SET_DU1_ALU_0(sq_debug_fsm_alu_0_reg, du1_alu_0) \
+ sq_debug_fsm_alu_0_reg = (sq_debug_fsm_alu_0_reg & ~SQ_DEBUG_FSM_ALU_0_DU1_ALU_0_MASK) | (du1_alu_0 << SQ_DEBUG_FSM_ALU_0_DU1_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_SET_RESERVED2(sq_debug_fsm_alu_0_reg, reserved2) \
+ sq_debug_fsm_alu_0_reg = (sq_debug_fsm_alu_0_reg & ~SQ_DEBUG_FSM_ALU_0_RESERVED2_MASK) | (reserved2 << SQ_DEBUG_FSM_ALU_0_RESERVED2_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_SET_DU0_ALU_0(sq_debug_fsm_alu_0_reg, du0_alu_0) \
+ sq_debug_fsm_alu_0_reg = (sq_debug_fsm_alu_0_reg & ~SQ_DEBUG_FSM_ALU_0_DU0_ALU_0_MASK) | (du0_alu_0 << SQ_DEBUG_FSM_ALU_0_DU0_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_SET_RESERVED3(sq_debug_fsm_alu_0_reg, reserved3) \
+ sq_debug_fsm_alu_0_reg = (sq_debug_fsm_alu_0_reg & ~SQ_DEBUG_FSM_ALU_0_RESERVED3_MASK) | (reserved3 << SQ_DEBUG_FSM_ALU_0_RESERVED3_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_SET_AIS_ALU_0(sq_debug_fsm_alu_0_reg, ais_alu_0) \
+ sq_debug_fsm_alu_0_reg = (sq_debug_fsm_alu_0_reg & ~SQ_DEBUG_FSM_ALU_0_AIS_ALU_0_MASK) | (ais_alu_0 << SQ_DEBUG_FSM_ALU_0_AIS_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_SET_RESERVED4(sq_debug_fsm_alu_0_reg, reserved4) \
+ sq_debug_fsm_alu_0_reg = (sq_debug_fsm_alu_0_reg & ~SQ_DEBUG_FSM_ALU_0_RESERVED4_MASK) | (reserved4 << SQ_DEBUG_FSM_ALU_0_RESERVED4_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_SET_ACS_ALU_0(sq_debug_fsm_alu_0_reg, acs_alu_0) \
+ sq_debug_fsm_alu_0_reg = (sq_debug_fsm_alu_0_reg & ~SQ_DEBUG_FSM_ALU_0_ACS_ALU_0_MASK) | (acs_alu_0 << SQ_DEBUG_FSM_ALU_0_ACS_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_SET_RESERVED5(sq_debug_fsm_alu_0_reg, reserved5) \
+ sq_debug_fsm_alu_0_reg = (sq_debug_fsm_alu_0_reg & ~SQ_DEBUG_FSM_ALU_0_RESERVED5_MASK) | (reserved5 << SQ_DEBUG_FSM_ALU_0_RESERVED5_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_SET_ARB_TR_ALU(sq_debug_fsm_alu_0_reg, arb_tr_alu) \
+ sq_debug_fsm_alu_0_reg = (sq_debug_fsm_alu_0_reg & ~SQ_DEBUG_FSM_ALU_0_ARB_TR_ALU_MASK) | (arb_tr_alu << SQ_DEBUG_FSM_ALU_0_ARB_TR_ALU_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_fsm_alu_0_t {
+ unsigned int ex_alu_0 : SQ_DEBUG_FSM_ALU_0_EX_ALU_0_SIZE;
+ unsigned int reserved0 : SQ_DEBUG_FSM_ALU_0_RESERVED0_SIZE;
+ unsigned int cf_alu_0 : SQ_DEBUG_FSM_ALU_0_CF_ALU_0_SIZE;
+ unsigned int if_alu_0 : SQ_DEBUG_FSM_ALU_0_IF_ALU_0_SIZE;
+ unsigned int reserved1 : SQ_DEBUG_FSM_ALU_0_RESERVED1_SIZE;
+ unsigned int du1_alu_0 : SQ_DEBUG_FSM_ALU_0_DU1_ALU_0_SIZE;
+ unsigned int reserved2 : SQ_DEBUG_FSM_ALU_0_RESERVED2_SIZE;
+ unsigned int du0_alu_0 : SQ_DEBUG_FSM_ALU_0_DU0_ALU_0_SIZE;
+ unsigned int reserved3 : SQ_DEBUG_FSM_ALU_0_RESERVED3_SIZE;
+ unsigned int ais_alu_0 : SQ_DEBUG_FSM_ALU_0_AIS_ALU_0_SIZE;
+ unsigned int reserved4 : SQ_DEBUG_FSM_ALU_0_RESERVED4_SIZE;
+ unsigned int acs_alu_0 : SQ_DEBUG_FSM_ALU_0_ACS_ALU_0_SIZE;
+ unsigned int reserved5 : SQ_DEBUG_FSM_ALU_0_RESERVED5_SIZE;
+ unsigned int arb_tr_alu : SQ_DEBUG_FSM_ALU_0_ARB_TR_ALU_SIZE;
+ unsigned int : 1;
+ } sq_debug_fsm_alu_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_fsm_alu_0_t {
+ unsigned int : 1;
+ unsigned int arb_tr_alu : SQ_DEBUG_FSM_ALU_0_ARB_TR_ALU_SIZE;
+ unsigned int reserved5 : SQ_DEBUG_FSM_ALU_0_RESERVED5_SIZE;
+ unsigned int acs_alu_0 : SQ_DEBUG_FSM_ALU_0_ACS_ALU_0_SIZE;
+ unsigned int reserved4 : SQ_DEBUG_FSM_ALU_0_RESERVED4_SIZE;
+ unsigned int ais_alu_0 : SQ_DEBUG_FSM_ALU_0_AIS_ALU_0_SIZE;
+ unsigned int reserved3 : SQ_DEBUG_FSM_ALU_0_RESERVED3_SIZE;
+ unsigned int du0_alu_0 : SQ_DEBUG_FSM_ALU_0_DU0_ALU_0_SIZE;
+ unsigned int reserved2 : SQ_DEBUG_FSM_ALU_0_RESERVED2_SIZE;
+ unsigned int du1_alu_0 : SQ_DEBUG_FSM_ALU_0_DU1_ALU_0_SIZE;
+ unsigned int reserved1 : SQ_DEBUG_FSM_ALU_0_RESERVED1_SIZE;
+ unsigned int if_alu_0 : SQ_DEBUG_FSM_ALU_0_IF_ALU_0_SIZE;
+ unsigned int cf_alu_0 : SQ_DEBUG_FSM_ALU_0_CF_ALU_0_SIZE;
+ unsigned int reserved0 : SQ_DEBUG_FSM_ALU_0_RESERVED0_SIZE;
+ unsigned int ex_alu_0 : SQ_DEBUG_FSM_ALU_0_EX_ALU_0_SIZE;
+ } sq_debug_fsm_alu_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_fsm_alu_0_t f;
+} sq_debug_fsm_alu_0_u;
+
+
+/*
+ * SQ_DEBUG_FSM_ALU_1 struct
+ */
+
+#define SQ_DEBUG_FSM_ALU_1_EX_ALU_0_SIZE 3
+#define SQ_DEBUG_FSM_ALU_1_RESERVED0_SIZE 1
+#define SQ_DEBUG_FSM_ALU_1_CF_ALU_0_SIZE 4
+#define SQ_DEBUG_FSM_ALU_1_IF_ALU_0_SIZE 3
+#define SQ_DEBUG_FSM_ALU_1_RESERVED1_SIZE 1
+#define SQ_DEBUG_FSM_ALU_1_DU1_ALU_0_SIZE 3
+#define SQ_DEBUG_FSM_ALU_1_RESERVED2_SIZE 1
+#define SQ_DEBUG_FSM_ALU_1_DU0_ALU_0_SIZE 3
+#define SQ_DEBUG_FSM_ALU_1_RESERVED3_SIZE 1
+#define SQ_DEBUG_FSM_ALU_1_AIS_ALU_0_SIZE 3
+#define SQ_DEBUG_FSM_ALU_1_RESERVED4_SIZE 1
+#define SQ_DEBUG_FSM_ALU_1_ACS_ALU_0_SIZE 3
+#define SQ_DEBUG_FSM_ALU_1_RESERVED5_SIZE 1
+#define SQ_DEBUG_FSM_ALU_1_ARB_TR_ALU_SIZE 3
+
+#define SQ_DEBUG_FSM_ALU_1_EX_ALU_0_SHIFT 0
+#define SQ_DEBUG_FSM_ALU_1_RESERVED0_SHIFT 3
+#define SQ_DEBUG_FSM_ALU_1_CF_ALU_0_SHIFT 4
+#define SQ_DEBUG_FSM_ALU_1_IF_ALU_0_SHIFT 8
+#define SQ_DEBUG_FSM_ALU_1_RESERVED1_SHIFT 11
+#define SQ_DEBUG_FSM_ALU_1_DU1_ALU_0_SHIFT 12
+#define SQ_DEBUG_FSM_ALU_1_RESERVED2_SHIFT 15
+#define SQ_DEBUG_FSM_ALU_1_DU0_ALU_0_SHIFT 16
+#define SQ_DEBUG_FSM_ALU_1_RESERVED3_SHIFT 19
+#define SQ_DEBUG_FSM_ALU_1_AIS_ALU_0_SHIFT 20
+#define SQ_DEBUG_FSM_ALU_1_RESERVED4_SHIFT 23
+#define SQ_DEBUG_FSM_ALU_1_ACS_ALU_0_SHIFT 24
+#define SQ_DEBUG_FSM_ALU_1_RESERVED5_SHIFT 27
+#define SQ_DEBUG_FSM_ALU_1_ARB_TR_ALU_SHIFT 28
+
+#define SQ_DEBUG_FSM_ALU_1_EX_ALU_0_MASK 0x00000007
+#define SQ_DEBUG_FSM_ALU_1_RESERVED0_MASK 0x00000008
+#define SQ_DEBUG_FSM_ALU_1_CF_ALU_0_MASK 0x000000f0
+#define SQ_DEBUG_FSM_ALU_1_IF_ALU_0_MASK 0x00000700
+#define SQ_DEBUG_FSM_ALU_1_RESERVED1_MASK 0x00000800
+#define SQ_DEBUG_FSM_ALU_1_DU1_ALU_0_MASK 0x00007000
+#define SQ_DEBUG_FSM_ALU_1_RESERVED2_MASK 0x00008000
+#define SQ_DEBUG_FSM_ALU_1_DU0_ALU_0_MASK 0x00070000
+#define SQ_DEBUG_FSM_ALU_1_RESERVED3_MASK 0x00080000
+#define SQ_DEBUG_FSM_ALU_1_AIS_ALU_0_MASK 0x00700000
+#define SQ_DEBUG_FSM_ALU_1_RESERVED4_MASK 0x00800000
+#define SQ_DEBUG_FSM_ALU_1_ACS_ALU_0_MASK 0x07000000
+#define SQ_DEBUG_FSM_ALU_1_RESERVED5_MASK 0x08000000
+#define SQ_DEBUG_FSM_ALU_1_ARB_TR_ALU_MASK 0x70000000
+
+#define SQ_DEBUG_FSM_ALU_1_MASK \
+ (SQ_DEBUG_FSM_ALU_1_EX_ALU_0_MASK | \
+ SQ_DEBUG_FSM_ALU_1_RESERVED0_MASK | \
+ SQ_DEBUG_FSM_ALU_1_CF_ALU_0_MASK | \
+ SQ_DEBUG_FSM_ALU_1_IF_ALU_0_MASK | \
+ SQ_DEBUG_FSM_ALU_1_RESERVED1_MASK | \
+ SQ_DEBUG_FSM_ALU_1_DU1_ALU_0_MASK | \
+ SQ_DEBUG_FSM_ALU_1_RESERVED2_MASK | \
+ SQ_DEBUG_FSM_ALU_1_DU0_ALU_0_MASK | \
+ SQ_DEBUG_FSM_ALU_1_RESERVED3_MASK | \
+ SQ_DEBUG_FSM_ALU_1_AIS_ALU_0_MASK | \
+ SQ_DEBUG_FSM_ALU_1_RESERVED4_MASK | \
+ SQ_DEBUG_FSM_ALU_1_ACS_ALU_0_MASK | \
+ SQ_DEBUG_FSM_ALU_1_RESERVED5_MASK | \
+ SQ_DEBUG_FSM_ALU_1_ARB_TR_ALU_MASK)
+
+#define SQ_DEBUG_FSM_ALU_1(ex_alu_0, reserved0, cf_alu_0, if_alu_0, reserved1, du1_alu_0, reserved2, du0_alu_0, reserved3, ais_alu_0, reserved4, acs_alu_0, reserved5, arb_tr_alu) \
+ ((ex_alu_0 << SQ_DEBUG_FSM_ALU_1_EX_ALU_0_SHIFT) | \
+ (reserved0 << SQ_DEBUG_FSM_ALU_1_RESERVED0_SHIFT) | \
+ (cf_alu_0 << SQ_DEBUG_FSM_ALU_1_CF_ALU_0_SHIFT) | \
+ (if_alu_0 << SQ_DEBUG_FSM_ALU_1_IF_ALU_0_SHIFT) | \
+ (reserved1 << SQ_DEBUG_FSM_ALU_1_RESERVED1_SHIFT) | \
+ (du1_alu_0 << SQ_DEBUG_FSM_ALU_1_DU1_ALU_0_SHIFT) | \
+ (reserved2 << SQ_DEBUG_FSM_ALU_1_RESERVED2_SHIFT) | \
+ (du0_alu_0 << SQ_DEBUG_FSM_ALU_1_DU0_ALU_0_SHIFT) | \
+ (reserved3 << SQ_DEBUG_FSM_ALU_1_RESERVED3_SHIFT) | \
+ (ais_alu_0 << SQ_DEBUG_FSM_ALU_1_AIS_ALU_0_SHIFT) | \
+ (reserved4 << SQ_DEBUG_FSM_ALU_1_RESERVED4_SHIFT) | \
+ (acs_alu_0 << SQ_DEBUG_FSM_ALU_1_ACS_ALU_0_SHIFT) | \
+ (reserved5 << SQ_DEBUG_FSM_ALU_1_RESERVED5_SHIFT) | \
+ (arb_tr_alu << SQ_DEBUG_FSM_ALU_1_ARB_TR_ALU_SHIFT))
+
+#define SQ_DEBUG_FSM_ALU_1_GET_EX_ALU_0(sq_debug_fsm_alu_1) \
+ ((sq_debug_fsm_alu_1 & SQ_DEBUG_FSM_ALU_1_EX_ALU_0_MASK) >> SQ_DEBUG_FSM_ALU_1_EX_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_GET_RESERVED0(sq_debug_fsm_alu_1) \
+ ((sq_debug_fsm_alu_1 & SQ_DEBUG_FSM_ALU_1_RESERVED0_MASK) >> SQ_DEBUG_FSM_ALU_1_RESERVED0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_GET_CF_ALU_0(sq_debug_fsm_alu_1) \
+ ((sq_debug_fsm_alu_1 & SQ_DEBUG_FSM_ALU_1_CF_ALU_0_MASK) >> SQ_DEBUG_FSM_ALU_1_CF_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_GET_IF_ALU_0(sq_debug_fsm_alu_1) \
+ ((sq_debug_fsm_alu_1 & SQ_DEBUG_FSM_ALU_1_IF_ALU_0_MASK) >> SQ_DEBUG_FSM_ALU_1_IF_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_GET_RESERVED1(sq_debug_fsm_alu_1) \
+ ((sq_debug_fsm_alu_1 & SQ_DEBUG_FSM_ALU_1_RESERVED1_MASK) >> SQ_DEBUG_FSM_ALU_1_RESERVED1_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_GET_DU1_ALU_0(sq_debug_fsm_alu_1) \
+ ((sq_debug_fsm_alu_1 & SQ_DEBUG_FSM_ALU_1_DU1_ALU_0_MASK) >> SQ_DEBUG_FSM_ALU_1_DU1_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_GET_RESERVED2(sq_debug_fsm_alu_1) \
+ ((sq_debug_fsm_alu_1 & SQ_DEBUG_FSM_ALU_1_RESERVED2_MASK) >> SQ_DEBUG_FSM_ALU_1_RESERVED2_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_GET_DU0_ALU_0(sq_debug_fsm_alu_1) \
+ ((sq_debug_fsm_alu_1 & SQ_DEBUG_FSM_ALU_1_DU0_ALU_0_MASK) >> SQ_DEBUG_FSM_ALU_1_DU0_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_GET_RESERVED3(sq_debug_fsm_alu_1) \
+ ((sq_debug_fsm_alu_1 & SQ_DEBUG_FSM_ALU_1_RESERVED3_MASK) >> SQ_DEBUG_FSM_ALU_1_RESERVED3_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_GET_AIS_ALU_0(sq_debug_fsm_alu_1) \
+ ((sq_debug_fsm_alu_1 & SQ_DEBUG_FSM_ALU_1_AIS_ALU_0_MASK) >> SQ_DEBUG_FSM_ALU_1_AIS_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_GET_RESERVED4(sq_debug_fsm_alu_1) \
+ ((sq_debug_fsm_alu_1 & SQ_DEBUG_FSM_ALU_1_RESERVED4_MASK) >> SQ_DEBUG_FSM_ALU_1_RESERVED4_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_GET_ACS_ALU_0(sq_debug_fsm_alu_1) \
+ ((sq_debug_fsm_alu_1 & SQ_DEBUG_FSM_ALU_1_ACS_ALU_0_MASK) >> SQ_DEBUG_FSM_ALU_1_ACS_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_GET_RESERVED5(sq_debug_fsm_alu_1) \
+ ((sq_debug_fsm_alu_1 & SQ_DEBUG_FSM_ALU_1_RESERVED5_MASK) >> SQ_DEBUG_FSM_ALU_1_RESERVED5_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_GET_ARB_TR_ALU(sq_debug_fsm_alu_1) \
+ ((sq_debug_fsm_alu_1 & SQ_DEBUG_FSM_ALU_1_ARB_TR_ALU_MASK) >> SQ_DEBUG_FSM_ALU_1_ARB_TR_ALU_SHIFT)
+
+#define SQ_DEBUG_FSM_ALU_1_SET_EX_ALU_0(sq_debug_fsm_alu_1_reg, ex_alu_0) \
+ sq_debug_fsm_alu_1_reg = (sq_debug_fsm_alu_1_reg & ~SQ_DEBUG_FSM_ALU_1_EX_ALU_0_MASK) | (ex_alu_0 << SQ_DEBUG_FSM_ALU_1_EX_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_SET_RESERVED0(sq_debug_fsm_alu_1_reg, reserved0) \
+ sq_debug_fsm_alu_1_reg = (sq_debug_fsm_alu_1_reg & ~SQ_DEBUG_FSM_ALU_1_RESERVED0_MASK) | (reserved0 << SQ_DEBUG_FSM_ALU_1_RESERVED0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_SET_CF_ALU_0(sq_debug_fsm_alu_1_reg, cf_alu_0) \
+ sq_debug_fsm_alu_1_reg = (sq_debug_fsm_alu_1_reg & ~SQ_DEBUG_FSM_ALU_1_CF_ALU_0_MASK) | (cf_alu_0 << SQ_DEBUG_FSM_ALU_1_CF_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_SET_IF_ALU_0(sq_debug_fsm_alu_1_reg, if_alu_0) \
+ sq_debug_fsm_alu_1_reg = (sq_debug_fsm_alu_1_reg & ~SQ_DEBUG_FSM_ALU_1_IF_ALU_0_MASK) | (if_alu_0 << SQ_DEBUG_FSM_ALU_1_IF_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_SET_RESERVED1(sq_debug_fsm_alu_1_reg, reserved1) \
+ sq_debug_fsm_alu_1_reg = (sq_debug_fsm_alu_1_reg & ~SQ_DEBUG_FSM_ALU_1_RESERVED1_MASK) | (reserved1 << SQ_DEBUG_FSM_ALU_1_RESERVED1_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_SET_DU1_ALU_0(sq_debug_fsm_alu_1_reg, du1_alu_0) \
+ sq_debug_fsm_alu_1_reg = (sq_debug_fsm_alu_1_reg & ~SQ_DEBUG_FSM_ALU_1_DU1_ALU_0_MASK) | (du1_alu_0 << SQ_DEBUG_FSM_ALU_1_DU1_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_SET_RESERVED2(sq_debug_fsm_alu_1_reg, reserved2) \
+ sq_debug_fsm_alu_1_reg = (sq_debug_fsm_alu_1_reg & ~SQ_DEBUG_FSM_ALU_1_RESERVED2_MASK) | (reserved2 << SQ_DEBUG_FSM_ALU_1_RESERVED2_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_SET_DU0_ALU_0(sq_debug_fsm_alu_1_reg, du0_alu_0) \
+ sq_debug_fsm_alu_1_reg = (sq_debug_fsm_alu_1_reg & ~SQ_DEBUG_FSM_ALU_1_DU0_ALU_0_MASK) | (du0_alu_0 << SQ_DEBUG_FSM_ALU_1_DU0_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_SET_RESERVED3(sq_debug_fsm_alu_1_reg, reserved3) \
+ sq_debug_fsm_alu_1_reg = (sq_debug_fsm_alu_1_reg & ~SQ_DEBUG_FSM_ALU_1_RESERVED3_MASK) | (reserved3 << SQ_DEBUG_FSM_ALU_1_RESERVED3_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_SET_AIS_ALU_0(sq_debug_fsm_alu_1_reg, ais_alu_0) \
+ sq_debug_fsm_alu_1_reg = (sq_debug_fsm_alu_1_reg & ~SQ_DEBUG_FSM_ALU_1_AIS_ALU_0_MASK) | (ais_alu_0 << SQ_DEBUG_FSM_ALU_1_AIS_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_SET_RESERVED4(sq_debug_fsm_alu_1_reg, reserved4) \
+ sq_debug_fsm_alu_1_reg = (sq_debug_fsm_alu_1_reg & ~SQ_DEBUG_FSM_ALU_1_RESERVED4_MASK) | (reserved4 << SQ_DEBUG_FSM_ALU_1_RESERVED4_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_SET_ACS_ALU_0(sq_debug_fsm_alu_1_reg, acs_alu_0) \
+ sq_debug_fsm_alu_1_reg = (sq_debug_fsm_alu_1_reg & ~SQ_DEBUG_FSM_ALU_1_ACS_ALU_0_MASK) | (acs_alu_0 << SQ_DEBUG_FSM_ALU_1_ACS_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_SET_RESERVED5(sq_debug_fsm_alu_1_reg, reserved5) \
+ sq_debug_fsm_alu_1_reg = (sq_debug_fsm_alu_1_reg & ~SQ_DEBUG_FSM_ALU_1_RESERVED5_MASK) | (reserved5 << SQ_DEBUG_FSM_ALU_1_RESERVED5_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_SET_ARB_TR_ALU(sq_debug_fsm_alu_1_reg, arb_tr_alu) \
+ sq_debug_fsm_alu_1_reg = (sq_debug_fsm_alu_1_reg & ~SQ_DEBUG_FSM_ALU_1_ARB_TR_ALU_MASK) | (arb_tr_alu << SQ_DEBUG_FSM_ALU_1_ARB_TR_ALU_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_fsm_alu_1_t {
+ unsigned int ex_alu_0 : SQ_DEBUG_FSM_ALU_1_EX_ALU_0_SIZE;
+ unsigned int reserved0 : SQ_DEBUG_FSM_ALU_1_RESERVED0_SIZE;
+ unsigned int cf_alu_0 : SQ_DEBUG_FSM_ALU_1_CF_ALU_0_SIZE;
+ unsigned int if_alu_0 : SQ_DEBUG_FSM_ALU_1_IF_ALU_0_SIZE;
+ unsigned int reserved1 : SQ_DEBUG_FSM_ALU_1_RESERVED1_SIZE;
+ unsigned int du1_alu_0 : SQ_DEBUG_FSM_ALU_1_DU1_ALU_0_SIZE;
+ unsigned int reserved2 : SQ_DEBUG_FSM_ALU_1_RESERVED2_SIZE;
+ unsigned int du0_alu_0 : SQ_DEBUG_FSM_ALU_1_DU0_ALU_0_SIZE;
+ unsigned int reserved3 : SQ_DEBUG_FSM_ALU_1_RESERVED3_SIZE;
+ unsigned int ais_alu_0 : SQ_DEBUG_FSM_ALU_1_AIS_ALU_0_SIZE;
+ unsigned int reserved4 : SQ_DEBUG_FSM_ALU_1_RESERVED4_SIZE;
+ unsigned int acs_alu_0 : SQ_DEBUG_FSM_ALU_1_ACS_ALU_0_SIZE;
+ unsigned int reserved5 : SQ_DEBUG_FSM_ALU_1_RESERVED5_SIZE;
+ unsigned int arb_tr_alu : SQ_DEBUG_FSM_ALU_1_ARB_TR_ALU_SIZE;
+ unsigned int : 1;
+ } sq_debug_fsm_alu_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_fsm_alu_1_t {
+ unsigned int : 1;
+ unsigned int arb_tr_alu : SQ_DEBUG_FSM_ALU_1_ARB_TR_ALU_SIZE;
+ unsigned int reserved5 : SQ_DEBUG_FSM_ALU_1_RESERVED5_SIZE;
+ unsigned int acs_alu_0 : SQ_DEBUG_FSM_ALU_1_ACS_ALU_0_SIZE;
+ unsigned int reserved4 : SQ_DEBUG_FSM_ALU_1_RESERVED4_SIZE;
+ unsigned int ais_alu_0 : SQ_DEBUG_FSM_ALU_1_AIS_ALU_0_SIZE;
+ unsigned int reserved3 : SQ_DEBUG_FSM_ALU_1_RESERVED3_SIZE;
+ unsigned int du0_alu_0 : SQ_DEBUG_FSM_ALU_1_DU0_ALU_0_SIZE;
+ unsigned int reserved2 : SQ_DEBUG_FSM_ALU_1_RESERVED2_SIZE;
+ unsigned int du1_alu_0 : SQ_DEBUG_FSM_ALU_1_DU1_ALU_0_SIZE;
+ unsigned int reserved1 : SQ_DEBUG_FSM_ALU_1_RESERVED1_SIZE;
+ unsigned int if_alu_0 : SQ_DEBUG_FSM_ALU_1_IF_ALU_0_SIZE;
+ unsigned int cf_alu_0 : SQ_DEBUG_FSM_ALU_1_CF_ALU_0_SIZE;
+ unsigned int reserved0 : SQ_DEBUG_FSM_ALU_1_RESERVED0_SIZE;
+ unsigned int ex_alu_0 : SQ_DEBUG_FSM_ALU_1_EX_ALU_0_SIZE;
+ } sq_debug_fsm_alu_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_fsm_alu_1_t f;
+} sq_debug_fsm_alu_1_u;
+
+
+/*
+ * SQ_DEBUG_EXP_ALLOC struct
+ */
+
+#define SQ_DEBUG_EXP_ALLOC_POS_BUF_AVAIL_SIZE 4
+#define SQ_DEBUG_EXP_ALLOC_COLOR_BUF_AVAIL_SIZE 8
+#define SQ_DEBUG_EXP_ALLOC_EA_BUF_AVAIL_SIZE 3
+#define SQ_DEBUG_EXP_ALLOC_RESERVED_SIZE 1
+#define SQ_DEBUG_EXP_ALLOC_ALLOC_TBL_BUF_AVAIL_SIZE 6
+
+#define SQ_DEBUG_EXP_ALLOC_POS_BUF_AVAIL_SHIFT 0
+#define SQ_DEBUG_EXP_ALLOC_COLOR_BUF_AVAIL_SHIFT 4
+#define SQ_DEBUG_EXP_ALLOC_EA_BUF_AVAIL_SHIFT 12
+#define SQ_DEBUG_EXP_ALLOC_RESERVED_SHIFT 15
+#define SQ_DEBUG_EXP_ALLOC_ALLOC_TBL_BUF_AVAIL_SHIFT 16
+
+#define SQ_DEBUG_EXP_ALLOC_POS_BUF_AVAIL_MASK 0x0000000f
+#define SQ_DEBUG_EXP_ALLOC_COLOR_BUF_AVAIL_MASK 0x00000ff0
+#define SQ_DEBUG_EXP_ALLOC_EA_BUF_AVAIL_MASK 0x00007000
+#define SQ_DEBUG_EXP_ALLOC_RESERVED_MASK 0x00008000
+#define SQ_DEBUG_EXP_ALLOC_ALLOC_TBL_BUF_AVAIL_MASK 0x003f0000
+
+#define SQ_DEBUG_EXP_ALLOC_MASK \
+ (SQ_DEBUG_EXP_ALLOC_POS_BUF_AVAIL_MASK | \
+ SQ_DEBUG_EXP_ALLOC_COLOR_BUF_AVAIL_MASK | \
+ SQ_DEBUG_EXP_ALLOC_EA_BUF_AVAIL_MASK | \
+ SQ_DEBUG_EXP_ALLOC_RESERVED_MASK | \
+ SQ_DEBUG_EXP_ALLOC_ALLOC_TBL_BUF_AVAIL_MASK)
+
+#define SQ_DEBUG_EXP_ALLOC(pos_buf_avail, color_buf_avail, ea_buf_avail, reserved, alloc_tbl_buf_avail) \
+ ((pos_buf_avail << SQ_DEBUG_EXP_ALLOC_POS_BUF_AVAIL_SHIFT) | \
+ (color_buf_avail << SQ_DEBUG_EXP_ALLOC_COLOR_BUF_AVAIL_SHIFT) | \
+ (ea_buf_avail << SQ_DEBUG_EXP_ALLOC_EA_BUF_AVAIL_SHIFT) | \
+ (reserved << SQ_DEBUG_EXP_ALLOC_RESERVED_SHIFT) | \
+ (alloc_tbl_buf_avail << SQ_DEBUG_EXP_ALLOC_ALLOC_TBL_BUF_AVAIL_SHIFT))
+
+#define SQ_DEBUG_EXP_ALLOC_GET_POS_BUF_AVAIL(sq_debug_exp_alloc) \
+ ((sq_debug_exp_alloc & SQ_DEBUG_EXP_ALLOC_POS_BUF_AVAIL_MASK) >> SQ_DEBUG_EXP_ALLOC_POS_BUF_AVAIL_SHIFT)
+#define SQ_DEBUG_EXP_ALLOC_GET_COLOR_BUF_AVAIL(sq_debug_exp_alloc) \
+ ((sq_debug_exp_alloc & SQ_DEBUG_EXP_ALLOC_COLOR_BUF_AVAIL_MASK) >> SQ_DEBUG_EXP_ALLOC_COLOR_BUF_AVAIL_SHIFT)
+#define SQ_DEBUG_EXP_ALLOC_GET_EA_BUF_AVAIL(sq_debug_exp_alloc) \
+ ((sq_debug_exp_alloc & SQ_DEBUG_EXP_ALLOC_EA_BUF_AVAIL_MASK) >> SQ_DEBUG_EXP_ALLOC_EA_BUF_AVAIL_SHIFT)
+#define SQ_DEBUG_EXP_ALLOC_GET_RESERVED(sq_debug_exp_alloc) \
+ ((sq_debug_exp_alloc & SQ_DEBUG_EXP_ALLOC_RESERVED_MASK) >> SQ_DEBUG_EXP_ALLOC_RESERVED_SHIFT)
+#define SQ_DEBUG_EXP_ALLOC_GET_ALLOC_TBL_BUF_AVAIL(sq_debug_exp_alloc) \
+ ((sq_debug_exp_alloc & SQ_DEBUG_EXP_ALLOC_ALLOC_TBL_BUF_AVAIL_MASK) >> SQ_DEBUG_EXP_ALLOC_ALLOC_TBL_BUF_AVAIL_SHIFT)
+
+#define SQ_DEBUG_EXP_ALLOC_SET_POS_BUF_AVAIL(sq_debug_exp_alloc_reg, pos_buf_avail) \
+ sq_debug_exp_alloc_reg = (sq_debug_exp_alloc_reg & ~SQ_DEBUG_EXP_ALLOC_POS_BUF_AVAIL_MASK) | (pos_buf_avail << SQ_DEBUG_EXP_ALLOC_POS_BUF_AVAIL_SHIFT)
+#define SQ_DEBUG_EXP_ALLOC_SET_COLOR_BUF_AVAIL(sq_debug_exp_alloc_reg, color_buf_avail) \
+ sq_debug_exp_alloc_reg = (sq_debug_exp_alloc_reg & ~SQ_DEBUG_EXP_ALLOC_COLOR_BUF_AVAIL_MASK) | (color_buf_avail << SQ_DEBUG_EXP_ALLOC_COLOR_BUF_AVAIL_SHIFT)
+#define SQ_DEBUG_EXP_ALLOC_SET_EA_BUF_AVAIL(sq_debug_exp_alloc_reg, ea_buf_avail) \
+ sq_debug_exp_alloc_reg = (sq_debug_exp_alloc_reg & ~SQ_DEBUG_EXP_ALLOC_EA_BUF_AVAIL_MASK) | (ea_buf_avail << SQ_DEBUG_EXP_ALLOC_EA_BUF_AVAIL_SHIFT)
+#define SQ_DEBUG_EXP_ALLOC_SET_RESERVED(sq_debug_exp_alloc_reg, reserved) \
+ sq_debug_exp_alloc_reg = (sq_debug_exp_alloc_reg & ~SQ_DEBUG_EXP_ALLOC_RESERVED_MASK) | (reserved << SQ_DEBUG_EXP_ALLOC_RESERVED_SHIFT)
+#define SQ_DEBUG_EXP_ALLOC_SET_ALLOC_TBL_BUF_AVAIL(sq_debug_exp_alloc_reg, alloc_tbl_buf_avail) \
+ sq_debug_exp_alloc_reg = (sq_debug_exp_alloc_reg & ~SQ_DEBUG_EXP_ALLOC_ALLOC_TBL_BUF_AVAIL_MASK) | (alloc_tbl_buf_avail << SQ_DEBUG_EXP_ALLOC_ALLOC_TBL_BUF_AVAIL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_exp_alloc_t {
+ unsigned int pos_buf_avail : SQ_DEBUG_EXP_ALLOC_POS_BUF_AVAIL_SIZE;
+ unsigned int color_buf_avail : SQ_DEBUG_EXP_ALLOC_COLOR_BUF_AVAIL_SIZE;
+ unsigned int ea_buf_avail : SQ_DEBUG_EXP_ALLOC_EA_BUF_AVAIL_SIZE;
+ unsigned int reserved : SQ_DEBUG_EXP_ALLOC_RESERVED_SIZE;
+ unsigned int alloc_tbl_buf_avail : SQ_DEBUG_EXP_ALLOC_ALLOC_TBL_BUF_AVAIL_SIZE;
+ unsigned int : 10;
+ } sq_debug_exp_alloc_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_exp_alloc_t {
+ unsigned int : 10;
+ unsigned int alloc_tbl_buf_avail : SQ_DEBUG_EXP_ALLOC_ALLOC_TBL_BUF_AVAIL_SIZE;
+ unsigned int reserved : SQ_DEBUG_EXP_ALLOC_RESERVED_SIZE;
+ unsigned int ea_buf_avail : SQ_DEBUG_EXP_ALLOC_EA_BUF_AVAIL_SIZE;
+ unsigned int color_buf_avail : SQ_DEBUG_EXP_ALLOC_COLOR_BUF_AVAIL_SIZE;
+ unsigned int pos_buf_avail : SQ_DEBUG_EXP_ALLOC_POS_BUF_AVAIL_SIZE;
+ } sq_debug_exp_alloc_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_exp_alloc_t f;
+} sq_debug_exp_alloc_u;
+
+
+/*
+ * SQ_DEBUG_PTR_BUFF struct
+ */
+
+#define SQ_DEBUG_PTR_BUFF_END_OF_BUFFER_SIZE 1
+#define SQ_DEBUG_PTR_BUFF_DEALLOC_CNT_SIZE 4
+#define SQ_DEBUG_PTR_BUFF_QUAL_NEW_VECTOR_SIZE 1
+#define SQ_DEBUG_PTR_BUFF_EVENT_CONTEXT_ID_SIZE 3
+#define SQ_DEBUG_PTR_BUFF_SC_EVENT_ID_SIZE 5
+#define SQ_DEBUG_PTR_BUFF_QUAL_EVENT_SIZE 1
+#define SQ_DEBUG_PTR_BUFF_PRIM_TYPE_POLYGON_SIZE 1
+#define SQ_DEBUG_PTR_BUFF_EF_EMPTY_SIZE 1
+#define SQ_DEBUG_PTR_BUFF_VTX_SYNC_CNT_SIZE 11
+
+#define SQ_DEBUG_PTR_BUFF_END_OF_BUFFER_SHIFT 0
+#define SQ_DEBUG_PTR_BUFF_DEALLOC_CNT_SHIFT 1
+#define SQ_DEBUG_PTR_BUFF_QUAL_NEW_VECTOR_SHIFT 5
+#define SQ_DEBUG_PTR_BUFF_EVENT_CONTEXT_ID_SHIFT 6
+#define SQ_DEBUG_PTR_BUFF_SC_EVENT_ID_SHIFT 9
+#define SQ_DEBUG_PTR_BUFF_QUAL_EVENT_SHIFT 14
+#define SQ_DEBUG_PTR_BUFF_PRIM_TYPE_POLYGON_SHIFT 15
+#define SQ_DEBUG_PTR_BUFF_EF_EMPTY_SHIFT 16
+#define SQ_DEBUG_PTR_BUFF_VTX_SYNC_CNT_SHIFT 17
+
+#define SQ_DEBUG_PTR_BUFF_END_OF_BUFFER_MASK 0x00000001
+#define SQ_DEBUG_PTR_BUFF_DEALLOC_CNT_MASK 0x0000001e
+#define SQ_DEBUG_PTR_BUFF_QUAL_NEW_VECTOR_MASK 0x00000020
+#define SQ_DEBUG_PTR_BUFF_EVENT_CONTEXT_ID_MASK 0x000001c0
+#define SQ_DEBUG_PTR_BUFF_SC_EVENT_ID_MASK 0x00003e00
+#define SQ_DEBUG_PTR_BUFF_QUAL_EVENT_MASK 0x00004000
+#define SQ_DEBUG_PTR_BUFF_PRIM_TYPE_POLYGON_MASK 0x00008000
+#define SQ_DEBUG_PTR_BUFF_EF_EMPTY_MASK 0x00010000
+#define SQ_DEBUG_PTR_BUFF_VTX_SYNC_CNT_MASK 0x0ffe0000
+
+#define SQ_DEBUG_PTR_BUFF_MASK \
+ (SQ_DEBUG_PTR_BUFF_END_OF_BUFFER_MASK | \
+ SQ_DEBUG_PTR_BUFF_DEALLOC_CNT_MASK | \
+ SQ_DEBUG_PTR_BUFF_QUAL_NEW_VECTOR_MASK | \
+ SQ_DEBUG_PTR_BUFF_EVENT_CONTEXT_ID_MASK | \
+ SQ_DEBUG_PTR_BUFF_SC_EVENT_ID_MASK | \
+ SQ_DEBUG_PTR_BUFF_QUAL_EVENT_MASK | \
+ SQ_DEBUG_PTR_BUFF_PRIM_TYPE_POLYGON_MASK | \
+ SQ_DEBUG_PTR_BUFF_EF_EMPTY_MASK | \
+ SQ_DEBUG_PTR_BUFF_VTX_SYNC_CNT_MASK)
+
+#define SQ_DEBUG_PTR_BUFF(end_of_buffer, dealloc_cnt, qual_new_vector, event_context_id, sc_event_id, qual_event, prim_type_polygon, ef_empty, vtx_sync_cnt) \
+ ((end_of_buffer << SQ_DEBUG_PTR_BUFF_END_OF_BUFFER_SHIFT) | \
+ (dealloc_cnt << SQ_DEBUG_PTR_BUFF_DEALLOC_CNT_SHIFT) | \
+ (qual_new_vector << SQ_DEBUG_PTR_BUFF_QUAL_NEW_VECTOR_SHIFT) | \
+ (event_context_id << SQ_DEBUG_PTR_BUFF_EVENT_CONTEXT_ID_SHIFT) | \
+ (sc_event_id << SQ_DEBUG_PTR_BUFF_SC_EVENT_ID_SHIFT) | \
+ (qual_event << SQ_DEBUG_PTR_BUFF_QUAL_EVENT_SHIFT) | \
+ (prim_type_polygon << SQ_DEBUG_PTR_BUFF_PRIM_TYPE_POLYGON_SHIFT) | \
+ (ef_empty << SQ_DEBUG_PTR_BUFF_EF_EMPTY_SHIFT) | \
+ (vtx_sync_cnt << SQ_DEBUG_PTR_BUFF_VTX_SYNC_CNT_SHIFT))
+
+#define SQ_DEBUG_PTR_BUFF_GET_END_OF_BUFFER(sq_debug_ptr_buff) \
+ ((sq_debug_ptr_buff & SQ_DEBUG_PTR_BUFF_END_OF_BUFFER_MASK) >> SQ_DEBUG_PTR_BUFF_END_OF_BUFFER_SHIFT)
+#define SQ_DEBUG_PTR_BUFF_GET_DEALLOC_CNT(sq_debug_ptr_buff) \
+ ((sq_debug_ptr_buff & SQ_DEBUG_PTR_BUFF_DEALLOC_CNT_MASK) >> SQ_DEBUG_PTR_BUFF_DEALLOC_CNT_SHIFT)
+#define SQ_DEBUG_PTR_BUFF_GET_QUAL_NEW_VECTOR(sq_debug_ptr_buff) \
+ ((sq_debug_ptr_buff & SQ_DEBUG_PTR_BUFF_QUAL_NEW_VECTOR_MASK) >> SQ_DEBUG_PTR_BUFF_QUAL_NEW_VECTOR_SHIFT)
+#define SQ_DEBUG_PTR_BUFF_GET_EVENT_CONTEXT_ID(sq_debug_ptr_buff) \
+ ((sq_debug_ptr_buff & SQ_DEBUG_PTR_BUFF_EVENT_CONTEXT_ID_MASK) >> SQ_DEBUG_PTR_BUFF_EVENT_CONTEXT_ID_SHIFT)
+#define SQ_DEBUG_PTR_BUFF_GET_SC_EVENT_ID(sq_debug_ptr_buff) \
+ ((sq_debug_ptr_buff & SQ_DEBUG_PTR_BUFF_SC_EVENT_ID_MASK) >> SQ_DEBUG_PTR_BUFF_SC_EVENT_ID_SHIFT)
+#define SQ_DEBUG_PTR_BUFF_GET_QUAL_EVENT(sq_debug_ptr_buff) \
+ ((sq_debug_ptr_buff & SQ_DEBUG_PTR_BUFF_QUAL_EVENT_MASK) >> SQ_DEBUG_PTR_BUFF_QUAL_EVENT_SHIFT)
+#define SQ_DEBUG_PTR_BUFF_GET_PRIM_TYPE_POLYGON(sq_debug_ptr_buff) \
+ ((sq_debug_ptr_buff & SQ_DEBUG_PTR_BUFF_PRIM_TYPE_POLYGON_MASK) >> SQ_DEBUG_PTR_BUFF_PRIM_TYPE_POLYGON_SHIFT)
+#define SQ_DEBUG_PTR_BUFF_GET_EF_EMPTY(sq_debug_ptr_buff) \
+ ((sq_debug_ptr_buff & SQ_DEBUG_PTR_BUFF_EF_EMPTY_MASK) >> SQ_DEBUG_PTR_BUFF_EF_EMPTY_SHIFT)
+#define SQ_DEBUG_PTR_BUFF_GET_VTX_SYNC_CNT(sq_debug_ptr_buff) \
+ ((sq_debug_ptr_buff & SQ_DEBUG_PTR_BUFF_VTX_SYNC_CNT_MASK) >> SQ_DEBUG_PTR_BUFF_VTX_SYNC_CNT_SHIFT)
+
+#define SQ_DEBUG_PTR_BUFF_SET_END_OF_BUFFER(sq_debug_ptr_buff_reg, end_of_buffer) \
+ sq_debug_ptr_buff_reg = (sq_debug_ptr_buff_reg & ~SQ_DEBUG_PTR_BUFF_END_OF_BUFFER_MASK) | (end_of_buffer << SQ_DEBUG_PTR_BUFF_END_OF_BUFFER_SHIFT)
+#define SQ_DEBUG_PTR_BUFF_SET_DEALLOC_CNT(sq_debug_ptr_buff_reg, dealloc_cnt) \
+ sq_debug_ptr_buff_reg = (sq_debug_ptr_buff_reg & ~SQ_DEBUG_PTR_BUFF_DEALLOC_CNT_MASK) | (dealloc_cnt << SQ_DEBUG_PTR_BUFF_DEALLOC_CNT_SHIFT)
+#define SQ_DEBUG_PTR_BUFF_SET_QUAL_NEW_VECTOR(sq_debug_ptr_buff_reg, qual_new_vector) \
+ sq_debug_ptr_buff_reg = (sq_debug_ptr_buff_reg & ~SQ_DEBUG_PTR_BUFF_QUAL_NEW_VECTOR_MASK) | (qual_new_vector << SQ_DEBUG_PTR_BUFF_QUAL_NEW_VECTOR_SHIFT)
+#define SQ_DEBUG_PTR_BUFF_SET_EVENT_CONTEXT_ID(sq_debug_ptr_buff_reg, event_context_id) \
+ sq_debug_ptr_buff_reg = (sq_debug_ptr_buff_reg & ~SQ_DEBUG_PTR_BUFF_EVENT_CONTEXT_ID_MASK) | (event_context_id << SQ_DEBUG_PTR_BUFF_EVENT_CONTEXT_ID_SHIFT)
+#define SQ_DEBUG_PTR_BUFF_SET_SC_EVENT_ID(sq_debug_ptr_buff_reg, sc_event_id) \
+ sq_debug_ptr_buff_reg = (sq_debug_ptr_buff_reg & ~SQ_DEBUG_PTR_BUFF_SC_EVENT_ID_MASK) | (sc_event_id << SQ_DEBUG_PTR_BUFF_SC_EVENT_ID_SHIFT)
+#define SQ_DEBUG_PTR_BUFF_SET_QUAL_EVENT(sq_debug_ptr_buff_reg, qual_event) \
+ sq_debug_ptr_buff_reg = (sq_debug_ptr_buff_reg & ~SQ_DEBUG_PTR_BUFF_QUAL_EVENT_MASK) | (qual_event << SQ_DEBUG_PTR_BUFF_QUAL_EVENT_SHIFT)
+#define SQ_DEBUG_PTR_BUFF_SET_PRIM_TYPE_POLYGON(sq_debug_ptr_buff_reg, prim_type_polygon) \
+ sq_debug_ptr_buff_reg = (sq_debug_ptr_buff_reg & ~SQ_DEBUG_PTR_BUFF_PRIM_TYPE_POLYGON_MASK) | (prim_type_polygon << SQ_DEBUG_PTR_BUFF_PRIM_TYPE_POLYGON_SHIFT)
+#define SQ_DEBUG_PTR_BUFF_SET_EF_EMPTY(sq_debug_ptr_buff_reg, ef_empty) \
+ sq_debug_ptr_buff_reg = (sq_debug_ptr_buff_reg & ~SQ_DEBUG_PTR_BUFF_EF_EMPTY_MASK) | (ef_empty << SQ_DEBUG_PTR_BUFF_EF_EMPTY_SHIFT)
+#define SQ_DEBUG_PTR_BUFF_SET_VTX_SYNC_CNT(sq_debug_ptr_buff_reg, vtx_sync_cnt) \
+ sq_debug_ptr_buff_reg = (sq_debug_ptr_buff_reg & ~SQ_DEBUG_PTR_BUFF_VTX_SYNC_CNT_MASK) | (vtx_sync_cnt << SQ_DEBUG_PTR_BUFF_VTX_SYNC_CNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_ptr_buff_t {
+ unsigned int end_of_buffer : SQ_DEBUG_PTR_BUFF_END_OF_BUFFER_SIZE;
+ unsigned int dealloc_cnt : SQ_DEBUG_PTR_BUFF_DEALLOC_CNT_SIZE;
+ unsigned int qual_new_vector : SQ_DEBUG_PTR_BUFF_QUAL_NEW_VECTOR_SIZE;
+ unsigned int event_context_id : SQ_DEBUG_PTR_BUFF_EVENT_CONTEXT_ID_SIZE;
+ unsigned int sc_event_id : SQ_DEBUG_PTR_BUFF_SC_EVENT_ID_SIZE;
+ unsigned int qual_event : SQ_DEBUG_PTR_BUFF_QUAL_EVENT_SIZE;
+ unsigned int prim_type_polygon : SQ_DEBUG_PTR_BUFF_PRIM_TYPE_POLYGON_SIZE;
+ unsigned int ef_empty : SQ_DEBUG_PTR_BUFF_EF_EMPTY_SIZE;
+ unsigned int vtx_sync_cnt : SQ_DEBUG_PTR_BUFF_VTX_SYNC_CNT_SIZE;
+ unsigned int : 4;
+ } sq_debug_ptr_buff_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_ptr_buff_t {
+ unsigned int : 4;
+ unsigned int vtx_sync_cnt : SQ_DEBUG_PTR_BUFF_VTX_SYNC_CNT_SIZE;
+ unsigned int ef_empty : SQ_DEBUG_PTR_BUFF_EF_EMPTY_SIZE;
+ unsigned int prim_type_polygon : SQ_DEBUG_PTR_BUFF_PRIM_TYPE_POLYGON_SIZE;
+ unsigned int qual_event : SQ_DEBUG_PTR_BUFF_QUAL_EVENT_SIZE;
+ unsigned int sc_event_id : SQ_DEBUG_PTR_BUFF_SC_EVENT_ID_SIZE;
+ unsigned int event_context_id : SQ_DEBUG_PTR_BUFF_EVENT_CONTEXT_ID_SIZE;
+ unsigned int qual_new_vector : SQ_DEBUG_PTR_BUFF_QUAL_NEW_VECTOR_SIZE;
+ unsigned int dealloc_cnt : SQ_DEBUG_PTR_BUFF_DEALLOC_CNT_SIZE;
+ unsigned int end_of_buffer : SQ_DEBUG_PTR_BUFF_END_OF_BUFFER_SIZE;
+ } sq_debug_ptr_buff_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_ptr_buff_t f;
+} sq_debug_ptr_buff_u;
+
+
+/*
+ * SQ_DEBUG_GPR_VTX struct
+ */
+
+#define SQ_DEBUG_GPR_VTX_VTX_TAIL_PTR_SIZE 7
+#define SQ_DEBUG_GPR_VTX_RESERVED_SIZE 1
+#define SQ_DEBUG_GPR_VTX_VTX_HEAD_PTR_SIZE 7
+#define SQ_DEBUG_GPR_VTX_RESERVED1_SIZE 1
+#define SQ_DEBUG_GPR_VTX_VTX_MAX_SIZE 7
+#define SQ_DEBUG_GPR_VTX_RESERVED2_SIZE 1
+#define SQ_DEBUG_GPR_VTX_VTX_FREE_SIZE 7
+
+#define SQ_DEBUG_GPR_VTX_VTX_TAIL_PTR_SHIFT 0
+#define SQ_DEBUG_GPR_VTX_RESERVED_SHIFT 7
+#define SQ_DEBUG_GPR_VTX_VTX_HEAD_PTR_SHIFT 8
+#define SQ_DEBUG_GPR_VTX_RESERVED1_SHIFT 15
+#define SQ_DEBUG_GPR_VTX_VTX_MAX_SHIFT 16
+#define SQ_DEBUG_GPR_VTX_RESERVED2_SHIFT 23
+#define SQ_DEBUG_GPR_VTX_VTX_FREE_SHIFT 24
+
+#define SQ_DEBUG_GPR_VTX_VTX_TAIL_PTR_MASK 0x0000007f
+#define SQ_DEBUG_GPR_VTX_RESERVED_MASK 0x00000080
+#define SQ_DEBUG_GPR_VTX_VTX_HEAD_PTR_MASK 0x00007f00
+#define SQ_DEBUG_GPR_VTX_RESERVED1_MASK 0x00008000
+#define SQ_DEBUG_GPR_VTX_VTX_MAX_MASK 0x007f0000
+#define SQ_DEBUG_GPR_VTX_RESERVED2_MASK 0x00800000
+#define SQ_DEBUG_GPR_VTX_VTX_FREE_MASK 0x7f000000
+
+#define SQ_DEBUG_GPR_VTX_MASK \
+ (SQ_DEBUG_GPR_VTX_VTX_TAIL_PTR_MASK | \
+ SQ_DEBUG_GPR_VTX_RESERVED_MASK | \
+ SQ_DEBUG_GPR_VTX_VTX_HEAD_PTR_MASK | \
+ SQ_DEBUG_GPR_VTX_RESERVED1_MASK | \
+ SQ_DEBUG_GPR_VTX_VTX_MAX_MASK | \
+ SQ_DEBUG_GPR_VTX_RESERVED2_MASK | \
+ SQ_DEBUG_GPR_VTX_VTX_FREE_MASK)
+
+#define SQ_DEBUG_GPR_VTX(vtx_tail_ptr, reserved, vtx_head_ptr, reserved1, vtx_max, reserved2, vtx_free) \
+ ((vtx_tail_ptr << SQ_DEBUG_GPR_VTX_VTX_TAIL_PTR_SHIFT) | \
+ (reserved << SQ_DEBUG_GPR_VTX_RESERVED_SHIFT) | \
+ (vtx_head_ptr << SQ_DEBUG_GPR_VTX_VTX_HEAD_PTR_SHIFT) | \
+ (reserved1 << SQ_DEBUG_GPR_VTX_RESERVED1_SHIFT) | \
+ (vtx_max << SQ_DEBUG_GPR_VTX_VTX_MAX_SHIFT) | \
+ (reserved2 << SQ_DEBUG_GPR_VTX_RESERVED2_SHIFT) | \
+ (vtx_free << SQ_DEBUG_GPR_VTX_VTX_FREE_SHIFT))
+
+#define SQ_DEBUG_GPR_VTX_GET_VTX_TAIL_PTR(sq_debug_gpr_vtx) \
+ ((sq_debug_gpr_vtx & SQ_DEBUG_GPR_VTX_VTX_TAIL_PTR_MASK) >> SQ_DEBUG_GPR_VTX_VTX_TAIL_PTR_SHIFT)
+#define SQ_DEBUG_GPR_VTX_GET_RESERVED(sq_debug_gpr_vtx) \
+ ((sq_debug_gpr_vtx & SQ_DEBUG_GPR_VTX_RESERVED_MASK) >> SQ_DEBUG_GPR_VTX_RESERVED_SHIFT)
+#define SQ_DEBUG_GPR_VTX_GET_VTX_HEAD_PTR(sq_debug_gpr_vtx) \
+ ((sq_debug_gpr_vtx & SQ_DEBUG_GPR_VTX_VTX_HEAD_PTR_MASK) >> SQ_DEBUG_GPR_VTX_VTX_HEAD_PTR_SHIFT)
+#define SQ_DEBUG_GPR_VTX_GET_RESERVED1(sq_debug_gpr_vtx) \
+ ((sq_debug_gpr_vtx & SQ_DEBUG_GPR_VTX_RESERVED1_MASK) >> SQ_DEBUG_GPR_VTX_RESERVED1_SHIFT)
+#define SQ_DEBUG_GPR_VTX_GET_VTX_MAX(sq_debug_gpr_vtx) \
+ ((sq_debug_gpr_vtx & SQ_DEBUG_GPR_VTX_VTX_MAX_MASK) >> SQ_DEBUG_GPR_VTX_VTX_MAX_SHIFT)
+#define SQ_DEBUG_GPR_VTX_GET_RESERVED2(sq_debug_gpr_vtx) \
+ ((sq_debug_gpr_vtx & SQ_DEBUG_GPR_VTX_RESERVED2_MASK) >> SQ_DEBUG_GPR_VTX_RESERVED2_SHIFT)
+#define SQ_DEBUG_GPR_VTX_GET_VTX_FREE(sq_debug_gpr_vtx) \
+ ((sq_debug_gpr_vtx & SQ_DEBUG_GPR_VTX_VTX_FREE_MASK) >> SQ_DEBUG_GPR_VTX_VTX_FREE_SHIFT)
+
+#define SQ_DEBUG_GPR_VTX_SET_VTX_TAIL_PTR(sq_debug_gpr_vtx_reg, vtx_tail_ptr) \
+ sq_debug_gpr_vtx_reg = (sq_debug_gpr_vtx_reg & ~SQ_DEBUG_GPR_VTX_VTX_TAIL_PTR_MASK) | (vtx_tail_ptr << SQ_DEBUG_GPR_VTX_VTX_TAIL_PTR_SHIFT)
+#define SQ_DEBUG_GPR_VTX_SET_RESERVED(sq_debug_gpr_vtx_reg, reserved) \
+ sq_debug_gpr_vtx_reg = (sq_debug_gpr_vtx_reg & ~SQ_DEBUG_GPR_VTX_RESERVED_MASK) | (reserved << SQ_DEBUG_GPR_VTX_RESERVED_SHIFT)
+#define SQ_DEBUG_GPR_VTX_SET_VTX_HEAD_PTR(sq_debug_gpr_vtx_reg, vtx_head_ptr) \
+ sq_debug_gpr_vtx_reg = (sq_debug_gpr_vtx_reg & ~SQ_DEBUG_GPR_VTX_VTX_HEAD_PTR_MASK) | (vtx_head_ptr << SQ_DEBUG_GPR_VTX_VTX_HEAD_PTR_SHIFT)
+#define SQ_DEBUG_GPR_VTX_SET_RESERVED1(sq_debug_gpr_vtx_reg, reserved1) \
+ sq_debug_gpr_vtx_reg = (sq_debug_gpr_vtx_reg & ~SQ_DEBUG_GPR_VTX_RESERVED1_MASK) | (reserved1 << SQ_DEBUG_GPR_VTX_RESERVED1_SHIFT)
+#define SQ_DEBUG_GPR_VTX_SET_VTX_MAX(sq_debug_gpr_vtx_reg, vtx_max) \
+ sq_debug_gpr_vtx_reg = (sq_debug_gpr_vtx_reg & ~SQ_DEBUG_GPR_VTX_VTX_MAX_MASK) | (vtx_max << SQ_DEBUG_GPR_VTX_VTX_MAX_SHIFT)
+#define SQ_DEBUG_GPR_VTX_SET_RESERVED2(sq_debug_gpr_vtx_reg, reserved2) \
+ sq_debug_gpr_vtx_reg = (sq_debug_gpr_vtx_reg & ~SQ_DEBUG_GPR_VTX_RESERVED2_MASK) | (reserved2 << SQ_DEBUG_GPR_VTX_RESERVED2_SHIFT)
+#define SQ_DEBUG_GPR_VTX_SET_VTX_FREE(sq_debug_gpr_vtx_reg, vtx_free) \
+ sq_debug_gpr_vtx_reg = (sq_debug_gpr_vtx_reg & ~SQ_DEBUG_GPR_VTX_VTX_FREE_MASK) | (vtx_free << SQ_DEBUG_GPR_VTX_VTX_FREE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_gpr_vtx_t {
+ unsigned int vtx_tail_ptr : SQ_DEBUG_GPR_VTX_VTX_TAIL_PTR_SIZE;
+ unsigned int reserved : SQ_DEBUG_GPR_VTX_RESERVED_SIZE;
+ unsigned int vtx_head_ptr : SQ_DEBUG_GPR_VTX_VTX_HEAD_PTR_SIZE;
+ unsigned int reserved1 : SQ_DEBUG_GPR_VTX_RESERVED1_SIZE;
+ unsigned int vtx_max : SQ_DEBUG_GPR_VTX_VTX_MAX_SIZE;
+ unsigned int reserved2 : SQ_DEBUG_GPR_VTX_RESERVED2_SIZE;
+ unsigned int vtx_free : SQ_DEBUG_GPR_VTX_VTX_FREE_SIZE;
+ unsigned int : 1;
+ } sq_debug_gpr_vtx_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_gpr_vtx_t {
+ unsigned int : 1;
+ unsigned int vtx_free : SQ_DEBUG_GPR_VTX_VTX_FREE_SIZE;
+ unsigned int reserved2 : SQ_DEBUG_GPR_VTX_RESERVED2_SIZE;
+ unsigned int vtx_max : SQ_DEBUG_GPR_VTX_VTX_MAX_SIZE;
+ unsigned int reserved1 : SQ_DEBUG_GPR_VTX_RESERVED1_SIZE;
+ unsigned int vtx_head_ptr : SQ_DEBUG_GPR_VTX_VTX_HEAD_PTR_SIZE;
+ unsigned int reserved : SQ_DEBUG_GPR_VTX_RESERVED_SIZE;
+ unsigned int vtx_tail_ptr : SQ_DEBUG_GPR_VTX_VTX_TAIL_PTR_SIZE;
+ } sq_debug_gpr_vtx_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_gpr_vtx_t f;
+} sq_debug_gpr_vtx_u;
+
+
+/*
+ * SQ_DEBUG_GPR_PIX struct
+ */
+
+#define SQ_DEBUG_GPR_PIX_PIX_TAIL_PTR_SIZE 7
+#define SQ_DEBUG_GPR_PIX_RESERVED_SIZE 1
+#define SQ_DEBUG_GPR_PIX_PIX_HEAD_PTR_SIZE 7
+#define SQ_DEBUG_GPR_PIX_RESERVED1_SIZE 1
+#define SQ_DEBUG_GPR_PIX_PIX_MAX_SIZE 7
+#define SQ_DEBUG_GPR_PIX_RESERVED2_SIZE 1
+#define SQ_DEBUG_GPR_PIX_PIX_FREE_SIZE 7
+
+#define SQ_DEBUG_GPR_PIX_PIX_TAIL_PTR_SHIFT 0
+#define SQ_DEBUG_GPR_PIX_RESERVED_SHIFT 7
+#define SQ_DEBUG_GPR_PIX_PIX_HEAD_PTR_SHIFT 8
+#define SQ_DEBUG_GPR_PIX_RESERVED1_SHIFT 15
+#define SQ_DEBUG_GPR_PIX_PIX_MAX_SHIFT 16
+#define SQ_DEBUG_GPR_PIX_RESERVED2_SHIFT 23
+#define SQ_DEBUG_GPR_PIX_PIX_FREE_SHIFT 24
+
+#define SQ_DEBUG_GPR_PIX_PIX_TAIL_PTR_MASK 0x0000007f
+#define SQ_DEBUG_GPR_PIX_RESERVED_MASK 0x00000080
+#define SQ_DEBUG_GPR_PIX_PIX_HEAD_PTR_MASK 0x00007f00
+#define SQ_DEBUG_GPR_PIX_RESERVED1_MASK 0x00008000
+#define SQ_DEBUG_GPR_PIX_PIX_MAX_MASK 0x007f0000
+#define SQ_DEBUG_GPR_PIX_RESERVED2_MASK 0x00800000
+#define SQ_DEBUG_GPR_PIX_PIX_FREE_MASK 0x7f000000
+
+#define SQ_DEBUG_GPR_PIX_MASK \
+ (SQ_DEBUG_GPR_PIX_PIX_TAIL_PTR_MASK | \
+ SQ_DEBUG_GPR_PIX_RESERVED_MASK | \
+ SQ_DEBUG_GPR_PIX_PIX_HEAD_PTR_MASK | \
+ SQ_DEBUG_GPR_PIX_RESERVED1_MASK | \
+ SQ_DEBUG_GPR_PIX_PIX_MAX_MASK | \
+ SQ_DEBUG_GPR_PIX_RESERVED2_MASK | \
+ SQ_DEBUG_GPR_PIX_PIX_FREE_MASK)
+
+#define SQ_DEBUG_GPR_PIX(pix_tail_ptr, reserved, pix_head_ptr, reserved1, pix_max, reserved2, pix_free) \
+ ((pix_tail_ptr << SQ_DEBUG_GPR_PIX_PIX_TAIL_PTR_SHIFT) | \
+ (reserved << SQ_DEBUG_GPR_PIX_RESERVED_SHIFT) | \
+ (pix_head_ptr << SQ_DEBUG_GPR_PIX_PIX_HEAD_PTR_SHIFT) | \
+ (reserved1 << SQ_DEBUG_GPR_PIX_RESERVED1_SHIFT) | \
+ (pix_max << SQ_DEBUG_GPR_PIX_PIX_MAX_SHIFT) | \
+ (reserved2 << SQ_DEBUG_GPR_PIX_RESERVED2_SHIFT) | \
+ (pix_free << SQ_DEBUG_GPR_PIX_PIX_FREE_SHIFT))
+
+#define SQ_DEBUG_GPR_PIX_GET_PIX_TAIL_PTR(sq_debug_gpr_pix) \
+ ((sq_debug_gpr_pix & SQ_DEBUG_GPR_PIX_PIX_TAIL_PTR_MASK) >> SQ_DEBUG_GPR_PIX_PIX_TAIL_PTR_SHIFT)
+#define SQ_DEBUG_GPR_PIX_GET_RESERVED(sq_debug_gpr_pix) \
+ ((sq_debug_gpr_pix & SQ_DEBUG_GPR_PIX_RESERVED_MASK) >> SQ_DEBUG_GPR_PIX_RESERVED_SHIFT)
+#define SQ_DEBUG_GPR_PIX_GET_PIX_HEAD_PTR(sq_debug_gpr_pix) \
+ ((sq_debug_gpr_pix & SQ_DEBUG_GPR_PIX_PIX_HEAD_PTR_MASK) >> SQ_DEBUG_GPR_PIX_PIX_HEAD_PTR_SHIFT)
+#define SQ_DEBUG_GPR_PIX_GET_RESERVED1(sq_debug_gpr_pix) \
+ ((sq_debug_gpr_pix & SQ_DEBUG_GPR_PIX_RESERVED1_MASK) >> SQ_DEBUG_GPR_PIX_RESERVED1_SHIFT)
+#define SQ_DEBUG_GPR_PIX_GET_PIX_MAX(sq_debug_gpr_pix) \
+ ((sq_debug_gpr_pix & SQ_DEBUG_GPR_PIX_PIX_MAX_MASK) >> SQ_DEBUG_GPR_PIX_PIX_MAX_SHIFT)
+#define SQ_DEBUG_GPR_PIX_GET_RESERVED2(sq_debug_gpr_pix) \
+ ((sq_debug_gpr_pix & SQ_DEBUG_GPR_PIX_RESERVED2_MASK) >> SQ_DEBUG_GPR_PIX_RESERVED2_SHIFT)
+#define SQ_DEBUG_GPR_PIX_GET_PIX_FREE(sq_debug_gpr_pix) \
+ ((sq_debug_gpr_pix & SQ_DEBUG_GPR_PIX_PIX_FREE_MASK) >> SQ_DEBUG_GPR_PIX_PIX_FREE_SHIFT)
+
+#define SQ_DEBUG_GPR_PIX_SET_PIX_TAIL_PTR(sq_debug_gpr_pix_reg, pix_tail_ptr) \
+ sq_debug_gpr_pix_reg = (sq_debug_gpr_pix_reg & ~SQ_DEBUG_GPR_PIX_PIX_TAIL_PTR_MASK) | (pix_tail_ptr << SQ_DEBUG_GPR_PIX_PIX_TAIL_PTR_SHIFT)
+#define SQ_DEBUG_GPR_PIX_SET_RESERVED(sq_debug_gpr_pix_reg, reserved) \
+ sq_debug_gpr_pix_reg = (sq_debug_gpr_pix_reg & ~SQ_DEBUG_GPR_PIX_RESERVED_MASK) | (reserved << SQ_DEBUG_GPR_PIX_RESERVED_SHIFT)
+#define SQ_DEBUG_GPR_PIX_SET_PIX_HEAD_PTR(sq_debug_gpr_pix_reg, pix_head_ptr) \
+ sq_debug_gpr_pix_reg = (sq_debug_gpr_pix_reg & ~SQ_DEBUG_GPR_PIX_PIX_HEAD_PTR_MASK) | (pix_head_ptr << SQ_DEBUG_GPR_PIX_PIX_HEAD_PTR_SHIFT)
+#define SQ_DEBUG_GPR_PIX_SET_RESERVED1(sq_debug_gpr_pix_reg, reserved1) \
+ sq_debug_gpr_pix_reg = (sq_debug_gpr_pix_reg & ~SQ_DEBUG_GPR_PIX_RESERVED1_MASK) | (reserved1 << SQ_DEBUG_GPR_PIX_RESERVED1_SHIFT)
+#define SQ_DEBUG_GPR_PIX_SET_PIX_MAX(sq_debug_gpr_pix_reg, pix_max) \
+ sq_debug_gpr_pix_reg = (sq_debug_gpr_pix_reg & ~SQ_DEBUG_GPR_PIX_PIX_MAX_MASK) | (pix_max << SQ_DEBUG_GPR_PIX_PIX_MAX_SHIFT)
+#define SQ_DEBUG_GPR_PIX_SET_RESERVED2(sq_debug_gpr_pix_reg, reserved2) \
+ sq_debug_gpr_pix_reg = (sq_debug_gpr_pix_reg & ~SQ_DEBUG_GPR_PIX_RESERVED2_MASK) | (reserved2 << SQ_DEBUG_GPR_PIX_RESERVED2_SHIFT)
+#define SQ_DEBUG_GPR_PIX_SET_PIX_FREE(sq_debug_gpr_pix_reg, pix_free) \
+ sq_debug_gpr_pix_reg = (sq_debug_gpr_pix_reg & ~SQ_DEBUG_GPR_PIX_PIX_FREE_MASK) | (pix_free << SQ_DEBUG_GPR_PIX_PIX_FREE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_gpr_pix_t {
+ unsigned int pix_tail_ptr : SQ_DEBUG_GPR_PIX_PIX_TAIL_PTR_SIZE;
+ unsigned int reserved : SQ_DEBUG_GPR_PIX_RESERVED_SIZE;
+ unsigned int pix_head_ptr : SQ_DEBUG_GPR_PIX_PIX_HEAD_PTR_SIZE;
+ unsigned int reserved1 : SQ_DEBUG_GPR_PIX_RESERVED1_SIZE;
+ unsigned int pix_max : SQ_DEBUG_GPR_PIX_PIX_MAX_SIZE;
+ unsigned int reserved2 : SQ_DEBUG_GPR_PIX_RESERVED2_SIZE;
+ unsigned int pix_free : SQ_DEBUG_GPR_PIX_PIX_FREE_SIZE;
+ unsigned int : 1;
+ } sq_debug_gpr_pix_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_gpr_pix_t {
+ unsigned int : 1;
+ unsigned int pix_free : SQ_DEBUG_GPR_PIX_PIX_FREE_SIZE;
+ unsigned int reserved2 : SQ_DEBUG_GPR_PIX_RESERVED2_SIZE;
+ unsigned int pix_max : SQ_DEBUG_GPR_PIX_PIX_MAX_SIZE;
+ unsigned int reserved1 : SQ_DEBUG_GPR_PIX_RESERVED1_SIZE;
+ unsigned int pix_head_ptr : SQ_DEBUG_GPR_PIX_PIX_HEAD_PTR_SIZE;
+ unsigned int reserved : SQ_DEBUG_GPR_PIX_RESERVED_SIZE;
+ unsigned int pix_tail_ptr : SQ_DEBUG_GPR_PIX_PIX_TAIL_PTR_SIZE;
+ } sq_debug_gpr_pix_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_gpr_pix_t f;
+} sq_debug_gpr_pix_u;
+
+
+/*
+ * SQ_DEBUG_TB_STATUS_SEL struct
+ */
+
+#define SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATUS_REG_SEL_SIZE 4
+#define SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_DW_SEL_SIZE 3
+#define SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_ADDR_SIZE 4
+#define SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_EN_SIZE 1
+#define SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_EN_SIZE 1
+#define SQ_DEBUG_TB_STATUS_SEL_DEBUG_BUS_TRIGGER_SEL_SIZE 2
+#define SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATUS_REG_SEL_SIZE 4
+#define SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_DW_SEL_SIZE 3
+#define SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_ADDR_SIZE 6
+#define SQ_DEBUG_TB_STATUS_SEL_VC_THREAD_BUF_DLY_SIZE 2
+#define SQ_DEBUG_TB_STATUS_SEL_DISABLE_STRICT_CTX_SYNC_SIZE 1
+
+#define SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATUS_REG_SEL_SHIFT 0
+#define SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_DW_SEL_SHIFT 4
+#define SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_ADDR_SHIFT 7
+#define SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_EN_SHIFT 11
+#define SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_EN_SHIFT 12
+#define SQ_DEBUG_TB_STATUS_SEL_DEBUG_BUS_TRIGGER_SEL_SHIFT 14
+#define SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATUS_REG_SEL_SHIFT 16
+#define SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_DW_SEL_SHIFT 20
+#define SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_ADDR_SHIFT 23
+#define SQ_DEBUG_TB_STATUS_SEL_VC_THREAD_BUF_DLY_SHIFT 29
+#define SQ_DEBUG_TB_STATUS_SEL_DISABLE_STRICT_CTX_SYNC_SHIFT 31
+
+#define SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATUS_REG_SEL_MASK 0x0000000f
+#define SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_DW_SEL_MASK 0x00000070
+#define SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_ADDR_MASK 0x00000780
+#define SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_EN_MASK 0x00000800
+#define SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_EN_MASK 0x00001000
+#define SQ_DEBUG_TB_STATUS_SEL_DEBUG_BUS_TRIGGER_SEL_MASK 0x0000c000
+#define SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATUS_REG_SEL_MASK 0x000f0000
+#define SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_DW_SEL_MASK 0x00700000
+#define SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_ADDR_MASK 0x1f800000
+#define SQ_DEBUG_TB_STATUS_SEL_VC_THREAD_BUF_DLY_MASK 0x60000000
+#define SQ_DEBUG_TB_STATUS_SEL_DISABLE_STRICT_CTX_SYNC_MASK 0x80000000
+
+#define SQ_DEBUG_TB_STATUS_SEL_MASK \
+ (SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATUS_REG_SEL_MASK | \
+ SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_DW_SEL_MASK | \
+ SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_ADDR_MASK | \
+ SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_EN_MASK | \
+ SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_EN_MASK | \
+ SQ_DEBUG_TB_STATUS_SEL_DEBUG_BUS_TRIGGER_SEL_MASK | \
+ SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATUS_REG_SEL_MASK | \
+ SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_DW_SEL_MASK | \
+ SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_ADDR_MASK | \
+ SQ_DEBUG_TB_STATUS_SEL_VC_THREAD_BUF_DLY_MASK | \
+ SQ_DEBUG_TB_STATUS_SEL_DISABLE_STRICT_CTX_SYNC_MASK)
+
+#define SQ_DEBUG_TB_STATUS_SEL(vtx_tb_status_reg_sel, vtx_tb_state_mem_dw_sel, vtx_tb_state_mem_rd_addr, vtx_tb_state_mem_rd_en, pix_tb_state_mem_rd_en, debug_bus_trigger_sel, pix_tb_status_reg_sel, pix_tb_state_mem_dw_sel, pix_tb_state_mem_rd_addr, vc_thread_buf_dly, disable_strict_ctx_sync) \
+ ((vtx_tb_status_reg_sel << SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATUS_REG_SEL_SHIFT) | \
+ (vtx_tb_state_mem_dw_sel << SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_DW_SEL_SHIFT) | \
+ (vtx_tb_state_mem_rd_addr << SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_ADDR_SHIFT) | \
+ (vtx_tb_state_mem_rd_en << SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_EN_SHIFT) | \
+ (pix_tb_state_mem_rd_en << SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_EN_SHIFT) | \
+ (debug_bus_trigger_sel << SQ_DEBUG_TB_STATUS_SEL_DEBUG_BUS_TRIGGER_SEL_SHIFT) | \
+ (pix_tb_status_reg_sel << SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATUS_REG_SEL_SHIFT) | \
+ (pix_tb_state_mem_dw_sel << SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_DW_SEL_SHIFT) | \
+ (pix_tb_state_mem_rd_addr << SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_ADDR_SHIFT) | \
+ (vc_thread_buf_dly << SQ_DEBUG_TB_STATUS_SEL_VC_THREAD_BUF_DLY_SHIFT) | \
+ (disable_strict_ctx_sync << SQ_DEBUG_TB_STATUS_SEL_DISABLE_STRICT_CTX_SYNC_SHIFT))
+
+#define SQ_DEBUG_TB_STATUS_SEL_GET_VTX_TB_STATUS_REG_SEL(sq_debug_tb_status_sel) \
+ ((sq_debug_tb_status_sel & SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATUS_REG_SEL_MASK) >> SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATUS_REG_SEL_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_GET_VTX_TB_STATE_MEM_DW_SEL(sq_debug_tb_status_sel) \
+ ((sq_debug_tb_status_sel & SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_DW_SEL_MASK) >> SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_DW_SEL_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_GET_VTX_TB_STATE_MEM_RD_ADDR(sq_debug_tb_status_sel) \
+ ((sq_debug_tb_status_sel & SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_ADDR_MASK) >> SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_ADDR_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_GET_VTX_TB_STATE_MEM_RD_EN(sq_debug_tb_status_sel) \
+ ((sq_debug_tb_status_sel & SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_EN_MASK) >> SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_EN_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_GET_PIX_TB_STATE_MEM_RD_EN(sq_debug_tb_status_sel) \
+ ((sq_debug_tb_status_sel & SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_EN_MASK) >> SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_EN_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_GET_DEBUG_BUS_TRIGGER_SEL(sq_debug_tb_status_sel) \
+ ((sq_debug_tb_status_sel & SQ_DEBUG_TB_STATUS_SEL_DEBUG_BUS_TRIGGER_SEL_MASK) >> SQ_DEBUG_TB_STATUS_SEL_DEBUG_BUS_TRIGGER_SEL_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_GET_PIX_TB_STATUS_REG_SEL(sq_debug_tb_status_sel) \
+ ((sq_debug_tb_status_sel & SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATUS_REG_SEL_MASK) >> SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATUS_REG_SEL_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_GET_PIX_TB_STATE_MEM_DW_SEL(sq_debug_tb_status_sel) \
+ ((sq_debug_tb_status_sel & SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_DW_SEL_MASK) >> SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_DW_SEL_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_GET_PIX_TB_STATE_MEM_RD_ADDR(sq_debug_tb_status_sel) \
+ ((sq_debug_tb_status_sel & SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_ADDR_MASK) >> SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_ADDR_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_GET_VC_THREAD_BUF_DLY(sq_debug_tb_status_sel) \
+ ((sq_debug_tb_status_sel & SQ_DEBUG_TB_STATUS_SEL_VC_THREAD_BUF_DLY_MASK) >> SQ_DEBUG_TB_STATUS_SEL_VC_THREAD_BUF_DLY_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_GET_DISABLE_STRICT_CTX_SYNC(sq_debug_tb_status_sel) \
+ ((sq_debug_tb_status_sel & SQ_DEBUG_TB_STATUS_SEL_DISABLE_STRICT_CTX_SYNC_MASK) >> SQ_DEBUG_TB_STATUS_SEL_DISABLE_STRICT_CTX_SYNC_SHIFT)
+
+#define SQ_DEBUG_TB_STATUS_SEL_SET_VTX_TB_STATUS_REG_SEL(sq_debug_tb_status_sel_reg, vtx_tb_status_reg_sel) \
+ sq_debug_tb_status_sel_reg = (sq_debug_tb_status_sel_reg & ~SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATUS_REG_SEL_MASK) | (vtx_tb_status_reg_sel << SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATUS_REG_SEL_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_SET_VTX_TB_STATE_MEM_DW_SEL(sq_debug_tb_status_sel_reg, vtx_tb_state_mem_dw_sel) \
+ sq_debug_tb_status_sel_reg = (sq_debug_tb_status_sel_reg & ~SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_DW_SEL_MASK) | (vtx_tb_state_mem_dw_sel << SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_DW_SEL_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_SET_VTX_TB_STATE_MEM_RD_ADDR(sq_debug_tb_status_sel_reg, vtx_tb_state_mem_rd_addr) \
+ sq_debug_tb_status_sel_reg = (sq_debug_tb_status_sel_reg & ~SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_ADDR_MASK) | (vtx_tb_state_mem_rd_addr << SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_ADDR_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_SET_VTX_TB_STATE_MEM_RD_EN(sq_debug_tb_status_sel_reg, vtx_tb_state_mem_rd_en) \
+ sq_debug_tb_status_sel_reg = (sq_debug_tb_status_sel_reg & ~SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_EN_MASK) | (vtx_tb_state_mem_rd_en << SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_EN_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_SET_PIX_TB_STATE_MEM_RD_EN(sq_debug_tb_status_sel_reg, pix_tb_state_mem_rd_en) \
+ sq_debug_tb_status_sel_reg = (sq_debug_tb_status_sel_reg & ~SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_EN_MASK) | (pix_tb_state_mem_rd_en << SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_EN_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_SET_DEBUG_BUS_TRIGGER_SEL(sq_debug_tb_status_sel_reg, debug_bus_trigger_sel) \
+ sq_debug_tb_status_sel_reg = (sq_debug_tb_status_sel_reg & ~SQ_DEBUG_TB_STATUS_SEL_DEBUG_BUS_TRIGGER_SEL_MASK) | (debug_bus_trigger_sel << SQ_DEBUG_TB_STATUS_SEL_DEBUG_BUS_TRIGGER_SEL_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_SET_PIX_TB_STATUS_REG_SEL(sq_debug_tb_status_sel_reg, pix_tb_status_reg_sel) \
+ sq_debug_tb_status_sel_reg = (sq_debug_tb_status_sel_reg & ~SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATUS_REG_SEL_MASK) | (pix_tb_status_reg_sel << SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATUS_REG_SEL_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_SET_PIX_TB_STATE_MEM_DW_SEL(sq_debug_tb_status_sel_reg, pix_tb_state_mem_dw_sel) \
+ sq_debug_tb_status_sel_reg = (sq_debug_tb_status_sel_reg & ~SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_DW_SEL_MASK) | (pix_tb_state_mem_dw_sel << SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_DW_SEL_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_SET_PIX_TB_STATE_MEM_RD_ADDR(sq_debug_tb_status_sel_reg, pix_tb_state_mem_rd_addr) \
+ sq_debug_tb_status_sel_reg = (sq_debug_tb_status_sel_reg & ~SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_ADDR_MASK) | (pix_tb_state_mem_rd_addr << SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_ADDR_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_SET_VC_THREAD_BUF_DLY(sq_debug_tb_status_sel_reg, vc_thread_buf_dly) \
+ sq_debug_tb_status_sel_reg = (sq_debug_tb_status_sel_reg & ~SQ_DEBUG_TB_STATUS_SEL_VC_THREAD_BUF_DLY_MASK) | (vc_thread_buf_dly << SQ_DEBUG_TB_STATUS_SEL_VC_THREAD_BUF_DLY_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_SET_DISABLE_STRICT_CTX_SYNC(sq_debug_tb_status_sel_reg, disable_strict_ctx_sync) \
+ sq_debug_tb_status_sel_reg = (sq_debug_tb_status_sel_reg & ~SQ_DEBUG_TB_STATUS_SEL_DISABLE_STRICT_CTX_SYNC_MASK) | (disable_strict_ctx_sync << SQ_DEBUG_TB_STATUS_SEL_DISABLE_STRICT_CTX_SYNC_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_tb_status_sel_t {
+ unsigned int vtx_tb_status_reg_sel : SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATUS_REG_SEL_SIZE;
+ unsigned int vtx_tb_state_mem_dw_sel : SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_DW_SEL_SIZE;
+ unsigned int vtx_tb_state_mem_rd_addr : SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_ADDR_SIZE;
+ unsigned int vtx_tb_state_mem_rd_en : SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_EN_SIZE;
+ unsigned int pix_tb_state_mem_rd_en : SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_EN_SIZE;
+ unsigned int : 1;
+ unsigned int debug_bus_trigger_sel : SQ_DEBUG_TB_STATUS_SEL_DEBUG_BUS_TRIGGER_SEL_SIZE;
+ unsigned int pix_tb_status_reg_sel : SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATUS_REG_SEL_SIZE;
+ unsigned int pix_tb_state_mem_dw_sel : SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_DW_SEL_SIZE;
+ unsigned int pix_tb_state_mem_rd_addr : SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_ADDR_SIZE;
+ unsigned int vc_thread_buf_dly : SQ_DEBUG_TB_STATUS_SEL_VC_THREAD_BUF_DLY_SIZE;
+ unsigned int disable_strict_ctx_sync : SQ_DEBUG_TB_STATUS_SEL_DISABLE_STRICT_CTX_SYNC_SIZE;
+ } sq_debug_tb_status_sel_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_tb_status_sel_t {
+ unsigned int disable_strict_ctx_sync : SQ_DEBUG_TB_STATUS_SEL_DISABLE_STRICT_CTX_SYNC_SIZE;
+ unsigned int vc_thread_buf_dly : SQ_DEBUG_TB_STATUS_SEL_VC_THREAD_BUF_DLY_SIZE;
+ unsigned int pix_tb_state_mem_rd_addr : SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_ADDR_SIZE;
+ unsigned int pix_tb_state_mem_dw_sel : SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_DW_SEL_SIZE;
+ unsigned int pix_tb_status_reg_sel : SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATUS_REG_SEL_SIZE;
+ unsigned int debug_bus_trigger_sel : SQ_DEBUG_TB_STATUS_SEL_DEBUG_BUS_TRIGGER_SEL_SIZE;
+ unsigned int : 1;
+ unsigned int pix_tb_state_mem_rd_en : SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_EN_SIZE;
+ unsigned int vtx_tb_state_mem_rd_en : SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_EN_SIZE;
+ unsigned int vtx_tb_state_mem_rd_addr : SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_ADDR_SIZE;
+ unsigned int vtx_tb_state_mem_dw_sel : SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_DW_SEL_SIZE;
+ unsigned int vtx_tb_status_reg_sel : SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATUS_REG_SEL_SIZE;
+ } sq_debug_tb_status_sel_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_tb_status_sel_t f;
+} sq_debug_tb_status_sel_u;
+
+
+/*
+ * SQ_DEBUG_VTX_TB_0 struct
+ */
+
+#define SQ_DEBUG_VTX_TB_0_VTX_HEAD_PTR_Q_SIZE 4
+#define SQ_DEBUG_VTX_TB_0_TAIL_PTR_Q_SIZE 4
+#define SQ_DEBUG_VTX_TB_0_FULL_CNT_Q_SIZE 4
+#define SQ_DEBUG_VTX_TB_0_NXT_POS_ALLOC_CNT_SIZE 4
+#define SQ_DEBUG_VTX_TB_0_NXT_PC_ALLOC_CNT_SIZE 4
+#define SQ_DEBUG_VTX_TB_0_SX_EVENT_FULL_SIZE 1
+#define SQ_DEBUG_VTX_TB_0_BUSY_Q_SIZE 1
+
+#define SQ_DEBUG_VTX_TB_0_VTX_HEAD_PTR_Q_SHIFT 0
+#define SQ_DEBUG_VTX_TB_0_TAIL_PTR_Q_SHIFT 4
+#define SQ_DEBUG_VTX_TB_0_FULL_CNT_Q_SHIFT 8
+#define SQ_DEBUG_VTX_TB_0_NXT_POS_ALLOC_CNT_SHIFT 12
+#define SQ_DEBUG_VTX_TB_0_NXT_PC_ALLOC_CNT_SHIFT 16
+#define SQ_DEBUG_VTX_TB_0_SX_EVENT_FULL_SHIFT 20
+#define SQ_DEBUG_VTX_TB_0_BUSY_Q_SHIFT 21
+
+#define SQ_DEBUG_VTX_TB_0_VTX_HEAD_PTR_Q_MASK 0x0000000f
+#define SQ_DEBUG_VTX_TB_0_TAIL_PTR_Q_MASK 0x000000f0
+#define SQ_DEBUG_VTX_TB_0_FULL_CNT_Q_MASK 0x00000f00
+#define SQ_DEBUG_VTX_TB_0_NXT_POS_ALLOC_CNT_MASK 0x0000f000
+#define SQ_DEBUG_VTX_TB_0_NXT_PC_ALLOC_CNT_MASK 0x000f0000
+#define SQ_DEBUG_VTX_TB_0_SX_EVENT_FULL_MASK 0x00100000
+#define SQ_DEBUG_VTX_TB_0_BUSY_Q_MASK 0x00200000
+
+#define SQ_DEBUG_VTX_TB_0_MASK \
+ (SQ_DEBUG_VTX_TB_0_VTX_HEAD_PTR_Q_MASK | \
+ SQ_DEBUG_VTX_TB_0_TAIL_PTR_Q_MASK | \
+ SQ_DEBUG_VTX_TB_0_FULL_CNT_Q_MASK | \
+ SQ_DEBUG_VTX_TB_0_NXT_POS_ALLOC_CNT_MASK | \
+ SQ_DEBUG_VTX_TB_0_NXT_PC_ALLOC_CNT_MASK | \
+ SQ_DEBUG_VTX_TB_0_SX_EVENT_FULL_MASK | \
+ SQ_DEBUG_VTX_TB_0_BUSY_Q_MASK)
+
+#define SQ_DEBUG_VTX_TB_0(vtx_head_ptr_q, tail_ptr_q, full_cnt_q, nxt_pos_alloc_cnt, nxt_pc_alloc_cnt, sx_event_full, busy_q) \
+ ((vtx_head_ptr_q << SQ_DEBUG_VTX_TB_0_VTX_HEAD_PTR_Q_SHIFT) | \
+ (tail_ptr_q << SQ_DEBUG_VTX_TB_0_TAIL_PTR_Q_SHIFT) | \
+ (full_cnt_q << SQ_DEBUG_VTX_TB_0_FULL_CNT_Q_SHIFT) | \
+ (nxt_pos_alloc_cnt << SQ_DEBUG_VTX_TB_0_NXT_POS_ALLOC_CNT_SHIFT) | \
+ (nxt_pc_alloc_cnt << SQ_DEBUG_VTX_TB_0_NXT_PC_ALLOC_CNT_SHIFT) | \
+ (sx_event_full << SQ_DEBUG_VTX_TB_0_SX_EVENT_FULL_SHIFT) | \
+ (busy_q << SQ_DEBUG_VTX_TB_0_BUSY_Q_SHIFT))
+
+#define SQ_DEBUG_VTX_TB_0_GET_VTX_HEAD_PTR_Q(sq_debug_vtx_tb_0) \
+ ((sq_debug_vtx_tb_0 & SQ_DEBUG_VTX_TB_0_VTX_HEAD_PTR_Q_MASK) >> SQ_DEBUG_VTX_TB_0_VTX_HEAD_PTR_Q_SHIFT)
+#define SQ_DEBUG_VTX_TB_0_GET_TAIL_PTR_Q(sq_debug_vtx_tb_0) \
+ ((sq_debug_vtx_tb_0 & SQ_DEBUG_VTX_TB_0_TAIL_PTR_Q_MASK) >> SQ_DEBUG_VTX_TB_0_TAIL_PTR_Q_SHIFT)
+#define SQ_DEBUG_VTX_TB_0_GET_FULL_CNT_Q(sq_debug_vtx_tb_0) \
+ ((sq_debug_vtx_tb_0 & SQ_DEBUG_VTX_TB_0_FULL_CNT_Q_MASK) >> SQ_DEBUG_VTX_TB_0_FULL_CNT_Q_SHIFT)
+#define SQ_DEBUG_VTX_TB_0_GET_NXT_POS_ALLOC_CNT(sq_debug_vtx_tb_0) \
+ ((sq_debug_vtx_tb_0 & SQ_DEBUG_VTX_TB_0_NXT_POS_ALLOC_CNT_MASK) >> SQ_DEBUG_VTX_TB_0_NXT_POS_ALLOC_CNT_SHIFT)
+#define SQ_DEBUG_VTX_TB_0_GET_NXT_PC_ALLOC_CNT(sq_debug_vtx_tb_0) \
+ ((sq_debug_vtx_tb_0 & SQ_DEBUG_VTX_TB_0_NXT_PC_ALLOC_CNT_MASK) >> SQ_DEBUG_VTX_TB_0_NXT_PC_ALLOC_CNT_SHIFT)
+#define SQ_DEBUG_VTX_TB_0_GET_SX_EVENT_FULL(sq_debug_vtx_tb_0) \
+ ((sq_debug_vtx_tb_0 & SQ_DEBUG_VTX_TB_0_SX_EVENT_FULL_MASK) >> SQ_DEBUG_VTX_TB_0_SX_EVENT_FULL_SHIFT)
+#define SQ_DEBUG_VTX_TB_0_GET_BUSY_Q(sq_debug_vtx_tb_0) \
+ ((sq_debug_vtx_tb_0 & SQ_DEBUG_VTX_TB_0_BUSY_Q_MASK) >> SQ_DEBUG_VTX_TB_0_BUSY_Q_SHIFT)
+
+#define SQ_DEBUG_VTX_TB_0_SET_VTX_HEAD_PTR_Q(sq_debug_vtx_tb_0_reg, vtx_head_ptr_q) \
+ sq_debug_vtx_tb_0_reg = (sq_debug_vtx_tb_0_reg & ~SQ_DEBUG_VTX_TB_0_VTX_HEAD_PTR_Q_MASK) | (vtx_head_ptr_q << SQ_DEBUG_VTX_TB_0_VTX_HEAD_PTR_Q_SHIFT)
+#define SQ_DEBUG_VTX_TB_0_SET_TAIL_PTR_Q(sq_debug_vtx_tb_0_reg, tail_ptr_q) \
+ sq_debug_vtx_tb_0_reg = (sq_debug_vtx_tb_0_reg & ~SQ_DEBUG_VTX_TB_0_TAIL_PTR_Q_MASK) | (tail_ptr_q << SQ_DEBUG_VTX_TB_0_TAIL_PTR_Q_SHIFT)
+#define SQ_DEBUG_VTX_TB_0_SET_FULL_CNT_Q(sq_debug_vtx_tb_0_reg, full_cnt_q) \
+ sq_debug_vtx_tb_0_reg = (sq_debug_vtx_tb_0_reg & ~SQ_DEBUG_VTX_TB_0_FULL_CNT_Q_MASK) | (full_cnt_q << SQ_DEBUG_VTX_TB_0_FULL_CNT_Q_SHIFT)
+#define SQ_DEBUG_VTX_TB_0_SET_NXT_POS_ALLOC_CNT(sq_debug_vtx_tb_0_reg, nxt_pos_alloc_cnt) \
+ sq_debug_vtx_tb_0_reg = (sq_debug_vtx_tb_0_reg & ~SQ_DEBUG_VTX_TB_0_NXT_POS_ALLOC_CNT_MASK) | (nxt_pos_alloc_cnt << SQ_DEBUG_VTX_TB_0_NXT_POS_ALLOC_CNT_SHIFT)
+#define SQ_DEBUG_VTX_TB_0_SET_NXT_PC_ALLOC_CNT(sq_debug_vtx_tb_0_reg, nxt_pc_alloc_cnt) \
+ sq_debug_vtx_tb_0_reg = (sq_debug_vtx_tb_0_reg & ~SQ_DEBUG_VTX_TB_0_NXT_PC_ALLOC_CNT_MASK) | (nxt_pc_alloc_cnt << SQ_DEBUG_VTX_TB_0_NXT_PC_ALLOC_CNT_SHIFT)
+#define SQ_DEBUG_VTX_TB_0_SET_SX_EVENT_FULL(sq_debug_vtx_tb_0_reg, sx_event_full) \
+ sq_debug_vtx_tb_0_reg = (sq_debug_vtx_tb_0_reg & ~SQ_DEBUG_VTX_TB_0_SX_EVENT_FULL_MASK) | (sx_event_full << SQ_DEBUG_VTX_TB_0_SX_EVENT_FULL_SHIFT)
+#define SQ_DEBUG_VTX_TB_0_SET_BUSY_Q(sq_debug_vtx_tb_0_reg, busy_q) \
+ sq_debug_vtx_tb_0_reg = (sq_debug_vtx_tb_0_reg & ~SQ_DEBUG_VTX_TB_0_BUSY_Q_MASK) | (busy_q << SQ_DEBUG_VTX_TB_0_BUSY_Q_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_vtx_tb_0_t {
+ unsigned int vtx_head_ptr_q : SQ_DEBUG_VTX_TB_0_VTX_HEAD_PTR_Q_SIZE;
+ unsigned int tail_ptr_q : SQ_DEBUG_VTX_TB_0_TAIL_PTR_Q_SIZE;
+ unsigned int full_cnt_q : SQ_DEBUG_VTX_TB_0_FULL_CNT_Q_SIZE;
+ unsigned int nxt_pos_alloc_cnt : SQ_DEBUG_VTX_TB_0_NXT_POS_ALLOC_CNT_SIZE;
+ unsigned int nxt_pc_alloc_cnt : SQ_DEBUG_VTX_TB_0_NXT_PC_ALLOC_CNT_SIZE;
+ unsigned int sx_event_full : SQ_DEBUG_VTX_TB_0_SX_EVENT_FULL_SIZE;
+ unsigned int busy_q : SQ_DEBUG_VTX_TB_0_BUSY_Q_SIZE;
+ unsigned int : 10;
+ } sq_debug_vtx_tb_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_vtx_tb_0_t {
+ unsigned int : 10;
+ unsigned int busy_q : SQ_DEBUG_VTX_TB_0_BUSY_Q_SIZE;
+ unsigned int sx_event_full : SQ_DEBUG_VTX_TB_0_SX_EVENT_FULL_SIZE;
+ unsigned int nxt_pc_alloc_cnt : SQ_DEBUG_VTX_TB_0_NXT_PC_ALLOC_CNT_SIZE;
+ unsigned int nxt_pos_alloc_cnt : SQ_DEBUG_VTX_TB_0_NXT_POS_ALLOC_CNT_SIZE;
+ unsigned int full_cnt_q : SQ_DEBUG_VTX_TB_0_FULL_CNT_Q_SIZE;
+ unsigned int tail_ptr_q : SQ_DEBUG_VTX_TB_0_TAIL_PTR_Q_SIZE;
+ unsigned int vtx_head_ptr_q : SQ_DEBUG_VTX_TB_0_VTX_HEAD_PTR_Q_SIZE;
+ } sq_debug_vtx_tb_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_vtx_tb_0_t f;
+} sq_debug_vtx_tb_0_u;
+
+
+/*
+ * SQ_DEBUG_VTX_TB_1 struct
+ */
+
+#define SQ_DEBUG_VTX_TB_1_VS_DONE_PTR_SIZE 16
+
+#define SQ_DEBUG_VTX_TB_1_VS_DONE_PTR_SHIFT 0
+
+#define SQ_DEBUG_VTX_TB_1_VS_DONE_PTR_MASK 0x0000ffff
+
+#define SQ_DEBUG_VTX_TB_1_MASK \
+ (SQ_DEBUG_VTX_TB_1_VS_DONE_PTR_MASK)
+
+#define SQ_DEBUG_VTX_TB_1(vs_done_ptr) \
+ ((vs_done_ptr << SQ_DEBUG_VTX_TB_1_VS_DONE_PTR_SHIFT))
+
+#define SQ_DEBUG_VTX_TB_1_GET_VS_DONE_PTR(sq_debug_vtx_tb_1) \
+ ((sq_debug_vtx_tb_1 & SQ_DEBUG_VTX_TB_1_VS_DONE_PTR_MASK) >> SQ_DEBUG_VTX_TB_1_VS_DONE_PTR_SHIFT)
+
+#define SQ_DEBUG_VTX_TB_1_SET_VS_DONE_PTR(sq_debug_vtx_tb_1_reg, vs_done_ptr) \
+ sq_debug_vtx_tb_1_reg = (sq_debug_vtx_tb_1_reg & ~SQ_DEBUG_VTX_TB_1_VS_DONE_PTR_MASK) | (vs_done_ptr << SQ_DEBUG_VTX_TB_1_VS_DONE_PTR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_vtx_tb_1_t {
+ unsigned int vs_done_ptr : SQ_DEBUG_VTX_TB_1_VS_DONE_PTR_SIZE;
+ unsigned int : 16;
+ } sq_debug_vtx_tb_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_vtx_tb_1_t {
+ unsigned int : 16;
+ unsigned int vs_done_ptr : SQ_DEBUG_VTX_TB_1_VS_DONE_PTR_SIZE;
+ } sq_debug_vtx_tb_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_vtx_tb_1_t f;
+} sq_debug_vtx_tb_1_u;
+
+
+/*
+ * SQ_DEBUG_VTX_TB_STATUS_REG struct
+ */
+
+#define SQ_DEBUG_VTX_TB_STATUS_REG_VS_STATUS_REG_SIZE 32
+
+#define SQ_DEBUG_VTX_TB_STATUS_REG_VS_STATUS_REG_SHIFT 0
+
+#define SQ_DEBUG_VTX_TB_STATUS_REG_VS_STATUS_REG_MASK 0xffffffff
+
+#define SQ_DEBUG_VTX_TB_STATUS_REG_MASK \
+ (SQ_DEBUG_VTX_TB_STATUS_REG_VS_STATUS_REG_MASK)
+
+#define SQ_DEBUG_VTX_TB_STATUS_REG(vs_status_reg) \
+ ((vs_status_reg << SQ_DEBUG_VTX_TB_STATUS_REG_VS_STATUS_REG_SHIFT))
+
+#define SQ_DEBUG_VTX_TB_STATUS_REG_GET_VS_STATUS_REG(sq_debug_vtx_tb_status_reg) \
+ ((sq_debug_vtx_tb_status_reg & SQ_DEBUG_VTX_TB_STATUS_REG_VS_STATUS_REG_MASK) >> SQ_DEBUG_VTX_TB_STATUS_REG_VS_STATUS_REG_SHIFT)
+
+#define SQ_DEBUG_VTX_TB_STATUS_REG_SET_VS_STATUS_REG(sq_debug_vtx_tb_status_reg_reg, vs_status_reg) \
+ sq_debug_vtx_tb_status_reg_reg = (sq_debug_vtx_tb_status_reg_reg & ~SQ_DEBUG_VTX_TB_STATUS_REG_VS_STATUS_REG_MASK) | (vs_status_reg << SQ_DEBUG_VTX_TB_STATUS_REG_VS_STATUS_REG_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_vtx_tb_status_reg_t {
+ unsigned int vs_status_reg : SQ_DEBUG_VTX_TB_STATUS_REG_VS_STATUS_REG_SIZE;
+ } sq_debug_vtx_tb_status_reg_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_vtx_tb_status_reg_t {
+ unsigned int vs_status_reg : SQ_DEBUG_VTX_TB_STATUS_REG_VS_STATUS_REG_SIZE;
+ } sq_debug_vtx_tb_status_reg_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_vtx_tb_status_reg_t f;
+} sq_debug_vtx_tb_status_reg_u;
+
+
+/*
+ * SQ_DEBUG_VTX_TB_STATE_MEM struct
+ */
+
+#define SQ_DEBUG_VTX_TB_STATE_MEM_VS_STATE_MEM_SIZE 32
+
+#define SQ_DEBUG_VTX_TB_STATE_MEM_VS_STATE_MEM_SHIFT 0
+
+#define SQ_DEBUG_VTX_TB_STATE_MEM_VS_STATE_MEM_MASK 0xffffffff
+
+#define SQ_DEBUG_VTX_TB_STATE_MEM_MASK \
+ (SQ_DEBUG_VTX_TB_STATE_MEM_VS_STATE_MEM_MASK)
+
+#define SQ_DEBUG_VTX_TB_STATE_MEM(vs_state_mem) \
+ ((vs_state_mem << SQ_DEBUG_VTX_TB_STATE_MEM_VS_STATE_MEM_SHIFT))
+
+#define SQ_DEBUG_VTX_TB_STATE_MEM_GET_VS_STATE_MEM(sq_debug_vtx_tb_state_mem) \
+ ((sq_debug_vtx_tb_state_mem & SQ_DEBUG_VTX_TB_STATE_MEM_VS_STATE_MEM_MASK) >> SQ_DEBUG_VTX_TB_STATE_MEM_VS_STATE_MEM_SHIFT)
+
+#define SQ_DEBUG_VTX_TB_STATE_MEM_SET_VS_STATE_MEM(sq_debug_vtx_tb_state_mem_reg, vs_state_mem) \
+ sq_debug_vtx_tb_state_mem_reg = (sq_debug_vtx_tb_state_mem_reg & ~SQ_DEBUG_VTX_TB_STATE_MEM_VS_STATE_MEM_MASK) | (vs_state_mem << SQ_DEBUG_VTX_TB_STATE_MEM_VS_STATE_MEM_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_vtx_tb_state_mem_t {
+ unsigned int vs_state_mem : SQ_DEBUG_VTX_TB_STATE_MEM_VS_STATE_MEM_SIZE;
+ } sq_debug_vtx_tb_state_mem_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_vtx_tb_state_mem_t {
+ unsigned int vs_state_mem : SQ_DEBUG_VTX_TB_STATE_MEM_VS_STATE_MEM_SIZE;
+ } sq_debug_vtx_tb_state_mem_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_vtx_tb_state_mem_t f;
+} sq_debug_vtx_tb_state_mem_u;
+
+
+/*
+ * SQ_DEBUG_PIX_TB_0 struct
+ */
+
+#define SQ_DEBUG_PIX_TB_0_PIX_HEAD_PTR_SIZE 6
+#define SQ_DEBUG_PIX_TB_0_TAIL_PTR_SIZE 6
+#define SQ_DEBUG_PIX_TB_0_FULL_CNT_SIZE 7
+#define SQ_DEBUG_PIX_TB_0_NXT_PIX_ALLOC_CNT_SIZE 6
+#define SQ_DEBUG_PIX_TB_0_NXT_PIX_EXP_CNT_SIZE 6
+#define SQ_DEBUG_PIX_TB_0_BUSY_SIZE 1
+
+#define SQ_DEBUG_PIX_TB_0_PIX_HEAD_PTR_SHIFT 0
+#define SQ_DEBUG_PIX_TB_0_TAIL_PTR_SHIFT 6
+#define SQ_DEBUG_PIX_TB_0_FULL_CNT_SHIFT 12
+#define SQ_DEBUG_PIX_TB_0_NXT_PIX_ALLOC_CNT_SHIFT 19
+#define SQ_DEBUG_PIX_TB_0_NXT_PIX_EXP_CNT_SHIFT 25
+#define SQ_DEBUG_PIX_TB_0_BUSY_SHIFT 31
+
+#define SQ_DEBUG_PIX_TB_0_PIX_HEAD_PTR_MASK 0x0000003f
+#define SQ_DEBUG_PIX_TB_0_TAIL_PTR_MASK 0x00000fc0
+#define SQ_DEBUG_PIX_TB_0_FULL_CNT_MASK 0x0007f000
+#define SQ_DEBUG_PIX_TB_0_NXT_PIX_ALLOC_CNT_MASK 0x01f80000
+#define SQ_DEBUG_PIX_TB_0_NXT_PIX_EXP_CNT_MASK 0x7e000000
+#define SQ_DEBUG_PIX_TB_0_BUSY_MASK 0x80000000
+
+#define SQ_DEBUG_PIX_TB_0_MASK \
+ (SQ_DEBUG_PIX_TB_0_PIX_HEAD_PTR_MASK | \
+ SQ_DEBUG_PIX_TB_0_TAIL_PTR_MASK | \
+ SQ_DEBUG_PIX_TB_0_FULL_CNT_MASK | \
+ SQ_DEBUG_PIX_TB_0_NXT_PIX_ALLOC_CNT_MASK | \
+ SQ_DEBUG_PIX_TB_0_NXT_PIX_EXP_CNT_MASK | \
+ SQ_DEBUG_PIX_TB_0_BUSY_MASK)
+
+#define SQ_DEBUG_PIX_TB_0(pix_head_ptr, tail_ptr, full_cnt, nxt_pix_alloc_cnt, nxt_pix_exp_cnt, busy) \
+ ((pix_head_ptr << SQ_DEBUG_PIX_TB_0_PIX_HEAD_PTR_SHIFT) | \
+ (tail_ptr << SQ_DEBUG_PIX_TB_0_TAIL_PTR_SHIFT) | \
+ (full_cnt << SQ_DEBUG_PIX_TB_0_FULL_CNT_SHIFT) | \
+ (nxt_pix_alloc_cnt << SQ_DEBUG_PIX_TB_0_NXT_PIX_ALLOC_CNT_SHIFT) | \
+ (nxt_pix_exp_cnt << SQ_DEBUG_PIX_TB_0_NXT_PIX_EXP_CNT_SHIFT) | \
+ (busy << SQ_DEBUG_PIX_TB_0_BUSY_SHIFT))
+
+#define SQ_DEBUG_PIX_TB_0_GET_PIX_HEAD_PTR(sq_debug_pix_tb_0) \
+ ((sq_debug_pix_tb_0 & SQ_DEBUG_PIX_TB_0_PIX_HEAD_PTR_MASK) >> SQ_DEBUG_PIX_TB_0_PIX_HEAD_PTR_SHIFT)
+#define SQ_DEBUG_PIX_TB_0_GET_TAIL_PTR(sq_debug_pix_tb_0) \
+ ((sq_debug_pix_tb_0 & SQ_DEBUG_PIX_TB_0_TAIL_PTR_MASK) >> SQ_DEBUG_PIX_TB_0_TAIL_PTR_SHIFT)
+#define SQ_DEBUG_PIX_TB_0_GET_FULL_CNT(sq_debug_pix_tb_0) \
+ ((sq_debug_pix_tb_0 & SQ_DEBUG_PIX_TB_0_FULL_CNT_MASK) >> SQ_DEBUG_PIX_TB_0_FULL_CNT_SHIFT)
+#define SQ_DEBUG_PIX_TB_0_GET_NXT_PIX_ALLOC_CNT(sq_debug_pix_tb_0) \
+ ((sq_debug_pix_tb_0 & SQ_DEBUG_PIX_TB_0_NXT_PIX_ALLOC_CNT_MASK) >> SQ_DEBUG_PIX_TB_0_NXT_PIX_ALLOC_CNT_SHIFT)
+#define SQ_DEBUG_PIX_TB_0_GET_NXT_PIX_EXP_CNT(sq_debug_pix_tb_0) \
+ ((sq_debug_pix_tb_0 & SQ_DEBUG_PIX_TB_0_NXT_PIX_EXP_CNT_MASK) >> SQ_DEBUG_PIX_TB_0_NXT_PIX_EXP_CNT_SHIFT)
+#define SQ_DEBUG_PIX_TB_0_GET_BUSY(sq_debug_pix_tb_0) \
+ ((sq_debug_pix_tb_0 & SQ_DEBUG_PIX_TB_0_BUSY_MASK) >> SQ_DEBUG_PIX_TB_0_BUSY_SHIFT)
+
+#define SQ_DEBUG_PIX_TB_0_SET_PIX_HEAD_PTR(sq_debug_pix_tb_0_reg, pix_head_ptr) \
+ sq_debug_pix_tb_0_reg = (sq_debug_pix_tb_0_reg & ~SQ_DEBUG_PIX_TB_0_PIX_HEAD_PTR_MASK) | (pix_head_ptr << SQ_DEBUG_PIX_TB_0_PIX_HEAD_PTR_SHIFT)
+#define SQ_DEBUG_PIX_TB_0_SET_TAIL_PTR(sq_debug_pix_tb_0_reg, tail_ptr) \
+ sq_debug_pix_tb_0_reg = (sq_debug_pix_tb_0_reg & ~SQ_DEBUG_PIX_TB_0_TAIL_PTR_MASK) | (tail_ptr << SQ_DEBUG_PIX_TB_0_TAIL_PTR_SHIFT)
+#define SQ_DEBUG_PIX_TB_0_SET_FULL_CNT(sq_debug_pix_tb_0_reg, full_cnt) \
+ sq_debug_pix_tb_0_reg = (sq_debug_pix_tb_0_reg & ~SQ_DEBUG_PIX_TB_0_FULL_CNT_MASK) | (full_cnt << SQ_DEBUG_PIX_TB_0_FULL_CNT_SHIFT)
+#define SQ_DEBUG_PIX_TB_0_SET_NXT_PIX_ALLOC_CNT(sq_debug_pix_tb_0_reg, nxt_pix_alloc_cnt) \
+ sq_debug_pix_tb_0_reg = (sq_debug_pix_tb_0_reg & ~SQ_DEBUG_PIX_TB_0_NXT_PIX_ALLOC_CNT_MASK) | (nxt_pix_alloc_cnt << SQ_DEBUG_PIX_TB_0_NXT_PIX_ALLOC_CNT_SHIFT)
+#define SQ_DEBUG_PIX_TB_0_SET_NXT_PIX_EXP_CNT(sq_debug_pix_tb_0_reg, nxt_pix_exp_cnt) \
+ sq_debug_pix_tb_0_reg = (sq_debug_pix_tb_0_reg & ~SQ_DEBUG_PIX_TB_0_NXT_PIX_EXP_CNT_MASK) | (nxt_pix_exp_cnt << SQ_DEBUG_PIX_TB_0_NXT_PIX_EXP_CNT_SHIFT)
+#define SQ_DEBUG_PIX_TB_0_SET_BUSY(sq_debug_pix_tb_0_reg, busy) \
+ sq_debug_pix_tb_0_reg = (sq_debug_pix_tb_0_reg & ~SQ_DEBUG_PIX_TB_0_BUSY_MASK) | (busy << SQ_DEBUG_PIX_TB_0_BUSY_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_pix_tb_0_t {
+ unsigned int pix_head_ptr : SQ_DEBUG_PIX_TB_0_PIX_HEAD_PTR_SIZE;
+ unsigned int tail_ptr : SQ_DEBUG_PIX_TB_0_TAIL_PTR_SIZE;
+ unsigned int full_cnt : SQ_DEBUG_PIX_TB_0_FULL_CNT_SIZE;
+ unsigned int nxt_pix_alloc_cnt : SQ_DEBUG_PIX_TB_0_NXT_PIX_ALLOC_CNT_SIZE;
+ unsigned int nxt_pix_exp_cnt : SQ_DEBUG_PIX_TB_0_NXT_PIX_EXP_CNT_SIZE;
+ unsigned int busy : SQ_DEBUG_PIX_TB_0_BUSY_SIZE;
+ } sq_debug_pix_tb_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_pix_tb_0_t {
+ unsigned int busy : SQ_DEBUG_PIX_TB_0_BUSY_SIZE;
+ unsigned int nxt_pix_exp_cnt : SQ_DEBUG_PIX_TB_0_NXT_PIX_EXP_CNT_SIZE;
+ unsigned int nxt_pix_alloc_cnt : SQ_DEBUG_PIX_TB_0_NXT_PIX_ALLOC_CNT_SIZE;
+ unsigned int full_cnt : SQ_DEBUG_PIX_TB_0_FULL_CNT_SIZE;
+ unsigned int tail_ptr : SQ_DEBUG_PIX_TB_0_TAIL_PTR_SIZE;
+ unsigned int pix_head_ptr : SQ_DEBUG_PIX_TB_0_PIX_HEAD_PTR_SIZE;
+ } sq_debug_pix_tb_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_pix_tb_0_t f;
+} sq_debug_pix_tb_0_u;
+
+
+/*
+ * SQ_DEBUG_PIX_TB_STATUS_REG_0 struct
+ */
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_0_PIX_TB_STATUS_REG_0_SIZE 32
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_0_PIX_TB_STATUS_REG_0_SHIFT 0
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_0_PIX_TB_STATUS_REG_0_MASK 0xffffffff
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_0_MASK \
+ (SQ_DEBUG_PIX_TB_STATUS_REG_0_PIX_TB_STATUS_REG_0_MASK)
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_0(pix_tb_status_reg_0) \
+ ((pix_tb_status_reg_0 << SQ_DEBUG_PIX_TB_STATUS_REG_0_PIX_TB_STATUS_REG_0_SHIFT))
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_0_GET_PIX_TB_STATUS_REG_0(sq_debug_pix_tb_status_reg_0) \
+ ((sq_debug_pix_tb_status_reg_0 & SQ_DEBUG_PIX_TB_STATUS_REG_0_PIX_TB_STATUS_REG_0_MASK) >> SQ_DEBUG_PIX_TB_STATUS_REG_0_PIX_TB_STATUS_REG_0_SHIFT)
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_0_SET_PIX_TB_STATUS_REG_0(sq_debug_pix_tb_status_reg_0_reg, pix_tb_status_reg_0) \
+ sq_debug_pix_tb_status_reg_0_reg = (sq_debug_pix_tb_status_reg_0_reg & ~SQ_DEBUG_PIX_TB_STATUS_REG_0_PIX_TB_STATUS_REG_0_MASK) | (pix_tb_status_reg_0 << SQ_DEBUG_PIX_TB_STATUS_REG_0_PIX_TB_STATUS_REG_0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_pix_tb_status_reg_0_t {
+ unsigned int pix_tb_status_reg_0 : SQ_DEBUG_PIX_TB_STATUS_REG_0_PIX_TB_STATUS_REG_0_SIZE;
+ } sq_debug_pix_tb_status_reg_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_pix_tb_status_reg_0_t {
+ unsigned int pix_tb_status_reg_0 : SQ_DEBUG_PIX_TB_STATUS_REG_0_PIX_TB_STATUS_REG_0_SIZE;
+ } sq_debug_pix_tb_status_reg_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_pix_tb_status_reg_0_t f;
+} sq_debug_pix_tb_status_reg_0_u;
+
+
+/*
+ * SQ_DEBUG_PIX_TB_STATUS_REG_1 struct
+ */
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_1_PIX_TB_STATUS_REG_1_SIZE 32
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_1_PIX_TB_STATUS_REG_1_SHIFT 0
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_1_PIX_TB_STATUS_REG_1_MASK 0xffffffff
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_1_MASK \
+ (SQ_DEBUG_PIX_TB_STATUS_REG_1_PIX_TB_STATUS_REG_1_MASK)
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_1(pix_tb_status_reg_1) \
+ ((pix_tb_status_reg_1 << SQ_DEBUG_PIX_TB_STATUS_REG_1_PIX_TB_STATUS_REG_1_SHIFT))
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_1_GET_PIX_TB_STATUS_REG_1(sq_debug_pix_tb_status_reg_1) \
+ ((sq_debug_pix_tb_status_reg_1 & SQ_DEBUG_PIX_TB_STATUS_REG_1_PIX_TB_STATUS_REG_1_MASK) >> SQ_DEBUG_PIX_TB_STATUS_REG_1_PIX_TB_STATUS_REG_1_SHIFT)
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_1_SET_PIX_TB_STATUS_REG_1(sq_debug_pix_tb_status_reg_1_reg, pix_tb_status_reg_1) \
+ sq_debug_pix_tb_status_reg_1_reg = (sq_debug_pix_tb_status_reg_1_reg & ~SQ_DEBUG_PIX_TB_STATUS_REG_1_PIX_TB_STATUS_REG_1_MASK) | (pix_tb_status_reg_1 << SQ_DEBUG_PIX_TB_STATUS_REG_1_PIX_TB_STATUS_REG_1_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_pix_tb_status_reg_1_t {
+ unsigned int pix_tb_status_reg_1 : SQ_DEBUG_PIX_TB_STATUS_REG_1_PIX_TB_STATUS_REG_1_SIZE;
+ } sq_debug_pix_tb_status_reg_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_pix_tb_status_reg_1_t {
+ unsigned int pix_tb_status_reg_1 : SQ_DEBUG_PIX_TB_STATUS_REG_1_PIX_TB_STATUS_REG_1_SIZE;
+ } sq_debug_pix_tb_status_reg_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_pix_tb_status_reg_1_t f;
+} sq_debug_pix_tb_status_reg_1_u;
+
+
+/*
+ * SQ_DEBUG_PIX_TB_STATUS_REG_2 struct
+ */
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_2_PIX_TB_STATUS_REG_2_SIZE 32
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_2_PIX_TB_STATUS_REG_2_SHIFT 0
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_2_PIX_TB_STATUS_REG_2_MASK 0xffffffff
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_2_MASK \
+ (SQ_DEBUG_PIX_TB_STATUS_REG_2_PIX_TB_STATUS_REG_2_MASK)
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_2(pix_tb_status_reg_2) \
+ ((pix_tb_status_reg_2 << SQ_DEBUG_PIX_TB_STATUS_REG_2_PIX_TB_STATUS_REG_2_SHIFT))
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_2_GET_PIX_TB_STATUS_REG_2(sq_debug_pix_tb_status_reg_2) \
+ ((sq_debug_pix_tb_status_reg_2 & SQ_DEBUG_PIX_TB_STATUS_REG_2_PIX_TB_STATUS_REG_2_MASK) >> SQ_DEBUG_PIX_TB_STATUS_REG_2_PIX_TB_STATUS_REG_2_SHIFT)
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_2_SET_PIX_TB_STATUS_REG_2(sq_debug_pix_tb_status_reg_2_reg, pix_tb_status_reg_2) \
+ sq_debug_pix_tb_status_reg_2_reg = (sq_debug_pix_tb_status_reg_2_reg & ~SQ_DEBUG_PIX_TB_STATUS_REG_2_PIX_TB_STATUS_REG_2_MASK) | (pix_tb_status_reg_2 << SQ_DEBUG_PIX_TB_STATUS_REG_2_PIX_TB_STATUS_REG_2_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_pix_tb_status_reg_2_t {
+ unsigned int pix_tb_status_reg_2 : SQ_DEBUG_PIX_TB_STATUS_REG_2_PIX_TB_STATUS_REG_2_SIZE;
+ } sq_debug_pix_tb_status_reg_2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_pix_tb_status_reg_2_t {
+ unsigned int pix_tb_status_reg_2 : SQ_DEBUG_PIX_TB_STATUS_REG_2_PIX_TB_STATUS_REG_2_SIZE;
+ } sq_debug_pix_tb_status_reg_2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_pix_tb_status_reg_2_t f;
+} sq_debug_pix_tb_status_reg_2_u;
+
+
+/*
+ * SQ_DEBUG_PIX_TB_STATUS_REG_3 struct
+ */
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_3_PIX_TB_STATUS_REG_3_SIZE 32
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_3_PIX_TB_STATUS_REG_3_SHIFT 0
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_3_PIX_TB_STATUS_REG_3_MASK 0xffffffff
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_3_MASK \
+ (SQ_DEBUG_PIX_TB_STATUS_REG_3_PIX_TB_STATUS_REG_3_MASK)
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_3(pix_tb_status_reg_3) \
+ ((pix_tb_status_reg_3 << SQ_DEBUG_PIX_TB_STATUS_REG_3_PIX_TB_STATUS_REG_3_SHIFT))
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_3_GET_PIX_TB_STATUS_REG_3(sq_debug_pix_tb_status_reg_3) \
+ ((sq_debug_pix_tb_status_reg_3 & SQ_DEBUG_PIX_TB_STATUS_REG_3_PIX_TB_STATUS_REG_3_MASK) >> SQ_DEBUG_PIX_TB_STATUS_REG_3_PIX_TB_STATUS_REG_3_SHIFT)
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_3_SET_PIX_TB_STATUS_REG_3(sq_debug_pix_tb_status_reg_3_reg, pix_tb_status_reg_3) \
+ sq_debug_pix_tb_status_reg_3_reg = (sq_debug_pix_tb_status_reg_3_reg & ~SQ_DEBUG_PIX_TB_STATUS_REG_3_PIX_TB_STATUS_REG_3_MASK) | (pix_tb_status_reg_3 << SQ_DEBUG_PIX_TB_STATUS_REG_3_PIX_TB_STATUS_REG_3_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_pix_tb_status_reg_3_t {
+ unsigned int pix_tb_status_reg_3 : SQ_DEBUG_PIX_TB_STATUS_REG_3_PIX_TB_STATUS_REG_3_SIZE;
+ } sq_debug_pix_tb_status_reg_3_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_pix_tb_status_reg_3_t {
+ unsigned int pix_tb_status_reg_3 : SQ_DEBUG_PIX_TB_STATUS_REG_3_PIX_TB_STATUS_REG_3_SIZE;
+ } sq_debug_pix_tb_status_reg_3_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_pix_tb_status_reg_3_t f;
+} sq_debug_pix_tb_status_reg_3_u;
+
+
+/*
+ * SQ_DEBUG_PIX_TB_STATE_MEM struct
+ */
+
+#define SQ_DEBUG_PIX_TB_STATE_MEM_PIX_TB_STATE_MEM_SIZE 32
+
+#define SQ_DEBUG_PIX_TB_STATE_MEM_PIX_TB_STATE_MEM_SHIFT 0
+
+#define SQ_DEBUG_PIX_TB_STATE_MEM_PIX_TB_STATE_MEM_MASK 0xffffffff
+
+#define SQ_DEBUG_PIX_TB_STATE_MEM_MASK \
+ (SQ_DEBUG_PIX_TB_STATE_MEM_PIX_TB_STATE_MEM_MASK)
+
+#define SQ_DEBUG_PIX_TB_STATE_MEM(pix_tb_state_mem) \
+ ((pix_tb_state_mem << SQ_DEBUG_PIX_TB_STATE_MEM_PIX_TB_STATE_MEM_SHIFT))
+
+#define SQ_DEBUG_PIX_TB_STATE_MEM_GET_PIX_TB_STATE_MEM(sq_debug_pix_tb_state_mem) \
+ ((sq_debug_pix_tb_state_mem & SQ_DEBUG_PIX_TB_STATE_MEM_PIX_TB_STATE_MEM_MASK) >> SQ_DEBUG_PIX_TB_STATE_MEM_PIX_TB_STATE_MEM_SHIFT)
+
+#define SQ_DEBUG_PIX_TB_STATE_MEM_SET_PIX_TB_STATE_MEM(sq_debug_pix_tb_state_mem_reg, pix_tb_state_mem) \
+ sq_debug_pix_tb_state_mem_reg = (sq_debug_pix_tb_state_mem_reg & ~SQ_DEBUG_PIX_TB_STATE_MEM_PIX_TB_STATE_MEM_MASK) | (pix_tb_state_mem << SQ_DEBUG_PIX_TB_STATE_MEM_PIX_TB_STATE_MEM_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_pix_tb_state_mem_t {
+ unsigned int pix_tb_state_mem : SQ_DEBUG_PIX_TB_STATE_MEM_PIX_TB_STATE_MEM_SIZE;
+ } sq_debug_pix_tb_state_mem_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_pix_tb_state_mem_t {
+ unsigned int pix_tb_state_mem : SQ_DEBUG_PIX_TB_STATE_MEM_PIX_TB_STATE_MEM_SIZE;
+ } sq_debug_pix_tb_state_mem_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_pix_tb_state_mem_t f;
+} sq_debug_pix_tb_state_mem_u;
+
+
+/*
+ * SQ_PERFCOUNTER0_SELECT struct
+ */
+
+#define SQ_PERFCOUNTER0_SELECT_PERF_SEL_SIZE 8
+
+#define SQ_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT 0
+
+#define SQ_PERFCOUNTER0_SELECT_PERF_SEL_MASK 0x000000ff
+
+#define SQ_PERFCOUNTER0_SELECT_MASK \
+ (SQ_PERFCOUNTER0_SELECT_PERF_SEL_MASK)
+
+#define SQ_PERFCOUNTER0_SELECT(perf_sel) \
+ ((perf_sel << SQ_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT))
+
+#define SQ_PERFCOUNTER0_SELECT_GET_PERF_SEL(sq_perfcounter0_select) \
+ ((sq_perfcounter0_select & SQ_PERFCOUNTER0_SELECT_PERF_SEL_MASK) >> SQ_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT)
+
+#define SQ_PERFCOUNTER0_SELECT_SET_PERF_SEL(sq_perfcounter0_select_reg, perf_sel) \
+ sq_perfcounter0_select_reg = (sq_perfcounter0_select_reg & ~SQ_PERFCOUNTER0_SELECT_PERF_SEL_MASK) | (perf_sel << SQ_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter0_select_t {
+ unsigned int perf_sel : SQ_PERFCOUNTER0_SELECT_PERF_SEL_SIZE;
+ unsigned int : 24;
+ } sq_perfcounter0_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter0_select_t {
+ unsigned int : 24;
+ unsigned int perf_sel : SQ_PERFCOUNTER0_SELECT_PERF_SEL_SIZE;
+ } sq_perfcounter0_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_perfcounter0_select_t f;
+} sq_perfcounter0_select_u;
+
+
+/*
+ * SQ_PERFCOUNTER1_SELECT struct
+ */
+
+#define SQ_PERFCOUNTER1_SELECT_PERF_SEL_SIZE 8
+
+#define SQ_PERFCOUNTER1_SELECT_PERF_SEL_SHIFT 0
+
+#define SQ_PERFCOUNTER1_SELECT_PERF_SEL_MASK 0x000000ff
+
+#define SQ_PERFCOUNTER1_SELECT_MASK \
+ (SQ_PERFCOUNTER1_SELECT_PERF_SEL_MASK)
+
+#define SQ_PERFCOUNTER1_SELECT(perf_sel) \
+ ((perf_sel << SQ_PERFCOUNTER1_SELECT_PERF_SEL_SHIFT))
+
+#define SQ_PERFCOUNTER1_SELECT_GET_PERF_SEL(sq_perfcounter1_select) \
+ ((sq_perfcounter1_select & SQ_PERFCOUNTER1_SELECT_PERF_SEL_MASK) >> SQ_PERFCOUNTER1_SELECT_PERF_SEL_SHIFT)
+
+#define SQ_PERFCOUNTER1_SELECT_SET_PERF_SEL(sq_perfcounter1_select_reg, perf_sel) \
+ sq_perfcounter1_select_reg = (sq_perfcounter1_select_reg & ~SQ_PERFCOUNTER1_SELECT_PERF_SEL_MASK) | (perf_sel << SQ_PERFCOUNTER1_SELECT_PERF_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter1_select_t {
+ unsigned int perf_sel : SQ_PERFCOUNTER1_SELECT_PERF_SEL_SIZE;
+ unsigned int : 24;
+ } sq_perfcounter1_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter1_select_t {
+ unsigned int : 24;
+ unsigned int perf_sel : SQ_PERFCOUNTER1_SELECT_PERF_SEL_SIZE;
+ } sq_perfcounter1_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_perfcounter1_select_t f;
+} sq_perfcounter1_select_u;
+
+
+/*
+ * SQ_PERFCOUNTER2_SELECT struct
+ */
+
+#define SQ_PERFCOUNTER2_SELECT_PERF_SEL_SIZE 8
+
+#define SQ_PERFCOUNTER2_SELECT_PERF_SEL_SHIFT 0
+
+#define SQ_PERFCOUNTER2_SELECT_PERF_SEL_MASK 0x000000ff
+
+#define SQ_PERFCOUNTER2_SELECT_MASK \
+ (SQ_PERFCOUNTER2_SELECT_PERF_SEL_MASK)
+
+#define SQ_PERFCOUNTER2_SELECT(perf_sel) \
+ ((perf_sel << SQ_PERFCOUNTER2_SELECT_PERF_SEL_SHIFT))
+
+#define SQ_PERFCOUNTER2_SELECT_GET_PERF_SEL(sq_perfcounter2_select) \
+ ((sq_perfcounter2_select & SQ_PERFCOUNTER2_SELECT_PERF_SEL_MASK) >> SQ_PERFCOUNTER2_SELECT_PERF_SEL_SHIFT)
+
+#define SQ_PERFCOUNTER2_SELECT_SET_PERF_SEL(sq_perfcounter2_select_reg, perf_sel) \
+ sq_perfcounter2_select_reg = (sq_perfcounter2_select_reg & ~SQ_PERFCOUNTER2_SELECT_PERF_SEL_MASK) | (perf_sel << SQ_PERFCOUNTER2_SELECT_PERF_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter2_select_t {
+ unsigned int perf_sel : SQ_PERFCOUNTER2_SELECT_PERF_SEL_SIZE;
+ unsigned int : 24;
+ } sq_perfcounter2_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter2_select_t {
+ unsigned int : 24;
+ unsigned int perf_sel : SQ_PERFCOUNTER2_SELECT_PERF_SEL_SIZE;
+ } sq_perfcounter2_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_perfcounter2_select_t f;
+} sq_perfcounter2_select_u;
+
+
+/*
+ * SQ_PERFCOUNTER3_SELECT struct
+ */
+
+#define SQ_PERFCOUNTER3_SELECT_PERF_SEL_SIZE 8
+
+#define SQ_PERFCOUNTER3_SELECT_PERF_SEL_SHIFT 0
+
+#define SQ_PERFCOUNTER3_SELECT_PERF_SEL_MASK 0x000000ff
+
+#define SQ_PERFCOUNTER3_SELECT_MASK \
+ (SQ_PERFCOUNTER3_SELECT_PERF_SEL_MASK)
+
+#define SQ_PERFCOUNTER3_SELECT(perf_sel) \
+ ((perf_sel << SQ_PERFCOUNTER3_SELECT_PERF_SEL_SHIFT))
+
+#define SQ_PERFCOUNTER3_SELECT_GET_PERF_SEL(sq_perfcounter3_select) \
+ ((sq_perfcounter3_select & SQ_PERFCOUNTER3_SELECT_PERF_SEL_MASK) >> SQ_PERFCOUNTER3_SELECT_PERF_SEL_SHIFT)
+
+#define SQ_PERFCOUNTER3_SELECT_SET_PERF_SEL(sq_perfcounter3_select_reg, perf_sel) \
+ sq_perfcounter3_select_reg = (sq_perfcounter3_select_reg & ~SQ_PERFCOUNTER3_SELECT_PERF_SEL_MASK) | (perf_sel << SQ_PERFCOUNTER3_SELECT_PERF_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter3_select_t {
+ unsigned int perf_sel : SQ_PERFCOUNTER3_SELECT_PERF_SEL_SIZE;
+ unsigned int : 24;
+ } sq_perfcounter3_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter3_select_t {
+ unsigned int : 24;
+ unsigned int perf_sel : SQ_PERFCOUNTER3_SELECT_PERF_SEL_SIZE;
+ } sq_perfcounter3_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_perfcounter3_select_t f;
+} sq_perfcounter3_select_u;
+
+
+/*
+ * SQ_PERFCOUNTER0_LOW struct
+ */
+
+#define SQ_PERFCOUNTER0_LOW_PERF_COUNT_SIZE 32
+
+#define SQ_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT 0
+
+#define SQ_PERFCOUNTER0_LOW_PERF_COUNT_MASK 0xffffffff
+
+#define SQ_PERFCOUNTER0_LOW_MASK \
+ (SQ_PERFCOUNTER0_LOW_PERF_COUNT_MASK)
+
+#define SQ_PERFCOUNTER0_LOW(perf_count) \
+ ((perf_count << SQ_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT))
+
+#define SQ_PERFCOUNTER0_LOW_GET_PERF_COUNT(sq_perfcounter0_low) \
+ ((sq_perfcounter0_low & SQ_PERFCOUNTER0_LOW_PERF_COUNT_MASK) >> SQ_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT)
+
+#define SQ_PERFCOUNTER0_LOW_SET_PERF_COUNT(sq_perfcounter0_low_reg, perf_count) \
+ sq_perfcounter0_low_reg = (sq_perfcounter0_low_reg & ~SQ_PERFCOUNTER0_LOW_PERF_COUNT_MASK) | (perf_count << SQ_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter0_low_t {
+ unsigned int perf_count : SQ_PERFCOUNTER0_LOW_PERF_COUNT_SIZE;
+ } sq_perfcounter0_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter0_low_t {
+ unsigned int perf_count : SQ_PERFCOUNTER0_LOW_PERF_COUNT_SIZE;
+ } sq_perfcounter0_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_perfcounter0_low_t f;
+} sq_perfcounter0_low_u;
+
+
+/*
+ * SQ_PERFCOUNTER0_HI struct
+ */
+
+#define SQ_PERFCOUNTER0_HI_PERF_COUNT_SIZE 16
+
+#define SQ_PERFCOUNTER0_HI_PERF_COUNT_SHIFT 0
+
+#define SQ_PERFCOUNTER0_HI_PERF_COUNT_MASK 0x0000ffff
+
+#define SQ_PERFCOUNTER0_HI_MASK \
+ (SQ_PERFCOUNTER0_HI_PERF_COUNT_MASK)
+
+#define SQ_PERFCOUNTER0_HI(perf_count) \
+ ((perf_count << SQ_PERFCOUNTER0_HI_PERF_COUNT_SHIFT))
+
+#define SQ_PERFCOUNTER0_HI_GET_PERF_COUNT(sq_perfcounter0_hi) \
+ ((sq_perfcounter0_hi & SQ_PERFCOUNTER0_HI_PERF_COUNT_MASK) >> SQ_PERFCOUNTER0_HI_PERF_COUNT_SHIFT)
+
+#define SQ_PERFCOUNTER0_HI_SET_PERF_COUNT(sq_perfcounter0_hi_reg, perf_count) \
+ sq_perfcounter0_hi_reg = (sq_perfcounter0_hi_reg & ~SQ_PERFCOUNTER0_HI_PERF_COUNT_MASK) | (perf_count << SQ_PERFCOUNTER0_HI_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter0_hi_t {
+ unsigned int perf_count : SQ_PERFCOUNTER0_HI_PERF_COUNT_SIZE;
+ unsigned int : 16;
+ } sq_perfcounter0_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter0_hi_t {
+ unsigned int : 16;
+ unsigned int perf_count : SQ_PERFCOUNTER0_HI_PERF_COUNT_SIZE;
+ } sq_perfcounter0_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_perfcounter0_hi_t f;
+} sq_perfcounter0_hi_u;
+
+
+/*
+ * SQ_PERFCOUNTER1_LOW struct
+ */
+
+#define SQ_PERFCOUNTER1_LOW_PERF_COUNT_SIZE 32
+
+#define SQ_PERFCOUNTER1_LOW_PERF_COUNT_SHIFT 0
+
+#define SQ_PERFCOUNTER1_LOW_PERF_COUNT_MASK 0xffffffff
+
+#define SQ_PERFCOUNTER1_LOW_MASK \
+ (SQ_PERFCOUNTER1_LOW_PERF_COUNT_MASK)
+
+#define SQ_PERFCOUNTER1_LOW(perf_count) \
+ ((perf_count << SQ_PERFCOUNTER1_LOW_PERF_COUNT_SHIFT))
+
+#define SQ_PERFCOUNTER1_LOW_GET_PERF_COUNT(sq_perfcounter1_low) \
+ ((sq_perfcounter1_low & SQ_PERFCOUNTER1_LOW_PERF_COUNT_MASK) >> SQ_PERFCOUNTER1_LOW_PERF_COUNT_SHIFT)
+
+#define SQ_PERFCOUNTER1_LOW_SET_PERF_COUNT(sq_perfcounter1_low_reg, perf_count) \
+ sq_perfcounter1_low_reg = (sq_perfcounter1_low_reg & ~SQ_PERFCOUNTER1_LOW_PERF_COUNT_MASK) | (perf_count << SQ_PERFCOUNTER1_LOW_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter1_low_t {
+ unsigned int perf_count : SQ_PERFCOUNTER1_LOW_PERF_COUNT_SIZE;
+ } sq_perfcounter1_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter1_low_t {
+ unsigned int perf_count : SQ_PERFCOUNTER1_LOW_PERF_COUNT_SIZE;
+ } sq_perfcounter1_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_perfcounter1_low_t f;
+} sq_perfcounter1_low_u;
+
+
+/*
+ * SQ_PERFCOUNTER1_HI struct
+ */
+
+#define SQ_PERFCOUNTER1_HI_PERF_COUNT_SIZE 16
+
+#define SQ_PERFCOUNTER1_HI_PERF_COUNT_SHIFT 0
+
+#define SQ_PERFCOUNTER1_HI_PERF_COUNT_MASK 0x0000ffff
+
+#define SQ_PERFCOUNTER1_HI_MASK \
+ (SQ_PERFCOUNTER1_HI_PERF_COUNT_MASK)
+
+#define SQ_PERFCOUNTER1_HI(perf_count) \
+ ((perf_count << SQ_PERFCOUNTER1_HI_PERF_COUNT_SHIFT))
+
+#define SQ_PERFCOUNTER1_HI_GET_PERF_COUNT(sq_perfcounter1_hi) \
+ ((sq_perfcounter1_hi & SQ_PERFCOUNTER1_HI_PERF_COUNT_MASK) >> SQ_PERFCOUNTER1_HI_PERF_COUNT_SHIFT)
+
+#define SQ_PERFCOUNTER1_HI_SET_PERF_COUNT(sq_perfcounter1_hi_reg, perf_count) \
+ sq_perfcounter1_hi_reg = (sq_perfcounter1_hi_reg & ~SQ_PERFCOUNTER1_HI_PERF_COUNT_MASK) | (perf_count << SQ_PERFCOUNTER1_HI_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter1_hi_t {
+ unsigned int perf_count : SQ_PERFCOUNTER1_HI_PERF_COUNT_SIZE;
+ unsigned int : 16;
+ } sq_perfcounter1_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter1_hi_t {
+ unsigned int : 16;
+ unsigned int perf_count : SQ_PERFCOUNTER1_HI_PERF_COUNT_SIZE;
+ } sq_perfcounter1_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_perfcounter1_hi_t f;
+} sq_perfcounter1_hi_u;
+
+
+/*
+ * SQ_PERFCOUNTER2_LOW struct
+ */
+
+#define SQ_PERFCOUNTER2_LOW_PERF_COUNT_SIZE 32
+
+#define SQ_PERFCOUNTER2_LOW_PERF_COUNT_SHIFT 0
+
+#define SQ_PERFCOUNTER2_LOW_PERF_COUNT_MASK 0xffffffff
+
+#define SQ_PERFCOUNTER2_LOW_MASK \
+ (SQ_PERFCOUNTER2_LOW_PERF_COUNT_MASK)
+
+#define SQ_PERFCOUNTER2_LOW(perf_count) \
+ ((perf_count << SQ_PERFCOUNTER2_LOW_PERF_COUNT_SHIFT))
+
+#define SQ_PERFCOUNTER2_LOW_GET_PERF_COUNT(sq_perfcounter2_low) \
+ ((sq_perfcounter2_low & SQ_PERFCOUNTER2_LOW_PERF_COUNT_MASK) >> SQ_PERFCOUNTER2_LOW_PERF_COUNT_SHIFT)
+
+#define SQ_PERFCOUNTER2_LOW_SET_PERF_COUNT(sq_perfcounter2_low_reg, perf_count) \
+ sq_perfcounter2_low_reg = (sq_perfcounter2_low_reg & ~SQ_PERFCOUNTER2_LOW_PERF_COUNT_MASK) | (perf_count << SQ_PERFCOUNTER2_LOW_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter2_low_t {
+ unsigned int perf_count : SQ_PERFCOUNTER2_LOW_PERF_COUNT_SIZE;
+ } sq_perfcounter2_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter2_low_t {
+ unsigned int perf_count : SQ_PERFCOUNTER2_LOW_PERF_COUNT_SIZE;
+ } sq_perfcounter2_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_perfcounter2_low_t f;
+} sq_perfcounter2_low_u;
+
+
+/*
+ * SQ_PERFCOUNTER2_HI struct
+ */
+
+#define SQ_PERFCOUNTER2_HI_PERF_COUNT_SIZE 16
+
+#define SQ_PERFCOUNTER2_HI_PERF_COUNT_SHIFT 0
+
+#define SQ_PERFCOUNTER2_HI_PERF_COUNT_MASK 0x0000ffff
+
+#define SQ_PERFCOUNTER2_HI_MASK \
+ (SQ_PERFCOUNTER2_HI_PERF_COUNT_MASK)
+
+#define SQ_PERFCOUNTER2_HI(perf_count) \
+ ((perf_count << SQ_PERFCOUNTER2_HI_PERF_COUNT_SHIFT))
+
+#define SQ_PERFCOUNTER2_HI_GET_PERF_COUNT(sq_perfcounter2_hi) \
+ ((sq_perfcounter2_hi & SQ_PERFCOUNTER2_HI_PERF_COUNT_MASK) >> SQ_PERFCOUNTER2_HI_PERF_COUNT_SHIFT)
+
+#define SQ_PERFCOUNTER2_HI_SET_PERF_COUNT(sq_perfcounter2_hi_reg, perf_count) \
+ sq_perfcounter2_hi_reg = (sq_perfcounter2_hi_reg & ~SQ_PERFCOUNTER2_HI_PERF_COUNT_MASK) | (perf_count << SQ_PERFCOUNTER2_HI_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter2_hi_t {
+ unsigned int perf_count : SQ_PERFCOUNTER2_HI_PERF_COUNT_SIZE;
+ unsigned int : 16;
+ } sq_perfcounter2_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter2_hi_t {
+ unsigned int : 16;
+ unsigned int perf_count : SQ_PERFCOUNTER2_HI_PERF_COUNT_SIZE;
+ } sq_perfcounter2_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_perfcounter2_hi_t f;
+} sq_perfcounter2_hi_u;
+
+
+/*
+ * SQ_PERFCOUNTER3_LOW struct
+ */
+
+#define SQ_PERFCOUNTER3_LOW_PERF_COUNT_SIZE 32
+
+#define SQ_PERFCOUNTER3_LOW_PERF_COUNT_SHIFT 0
+
+#define SQ_PERFCOUNTER3_LOW_PERF_COUNT_MASK 0xffffffff
+
+#define SQ_PERFCOUNTER3_LOW_MASK \
+ (SQ_PERFCOUNTER3_LOW_PERF_COUNT_MASK)
+
+#define SQ_PERFCOUNTER3_LOW(perf_count) \
+ ((perf_count << SQ_PERFCOUNTER3_LOW_PERF_COUNT_SHIFT))
+
+#define SQ_PERFCOUNTER3_LOW_GET_PERF_COUNT(sq_perfcounter3_low) \
+ ((sq_perfcounter3_low & SQ_PERFCOUNTER3_LOW_PERF_COUNT_MASK) >> SQ_PERFCOUNTER3_LOW_PERF_COUNT_SHIFT)
+
+#define SQ_PERFCOUNTER3_LOW_SET_PERF_COUNT(sq_perfcounter3_low_reg, perf_count) \
+ sq_perfcounter3_low_reg = (sq_perfcounter3_low_reg & ~SQ_PERFCOUNTER3_LOW_PERF_COUNT_MASK) | (perf_count << SQ_PERFCOUNTER3_LOW_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter3_low_t {
+ unsigned int perf_count : SQ_PERFCOUNTER3_LOW_PERF_COUNT_SIZE;
+ } sq_perfcounter3_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter3_low_t {
+ unsigned int perf_count : SQ_PERFCOUNTER3_LOW_PERF_COUNT_SIZE;
+ } sq_perfcounter3_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_perfcounter3_low_t f;
+} sq_perfcounter3_low_u;
+
+
+/*
+ * SQ_PERFCOUNTER3_HI struct
+ */
+
+#define SQ_PERFCOUNTER3_HI_PERF_COUNT_SIZE 16
+
+#define SQ_PERFCOUNTER3_HI_PERF_COUNT_SHIFT 0
+
+#define SQ_PERFCOUNTER3_HI_PERF_COUNT_MASK 0x0000ffff
+
+#define SQ_PERFCOUNTER3_HI_MASK \
+ (SQ_PERFCOUNTER3_HI_PERF_COUNT_MASK)
+
+#define SQ_PERFCOUNTER3_HI(perf_count) \
+ ((perf_count << SQ_PERFCOUNTER3_HI_PERF_COUNT_SHIFT))
+
+#define SQ_PERFCOUNTER3_HI_GET_PERF_COUNT(sq_perfcounter3_hi) \
+ ((sq_perfcounter3_hi & SQ_PERFCOUNTER3_HI_PERF_COUNT_MASK) >> SQ_PERFCOUNTER3_HI_PERF_COUNT_SHIFT)
+
+#define SQ_PERFCOUNTER3_HI_SET_PERF_COUNT(sq_perfcounter3_hi_reg, perf_count) \
+ sq_perfcounter3_hi_reg = (sq_perfcounter3_hi_reg & ~SQ_PERFCOUNTER3_HI_PERF_COUNT_MASK) | (perf_count << SQ_PERFCOUNTER3_HI_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter3_hi_t {
+ unsigned int perf_count : SQ_PERFCOUNTER3_HI_PERF_COUNT_SIZE;
+ unsigned int : 16;
+ } sq_perfcounter3_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter3_hi_t {
+ unsigned int : 16;
+ unsigned int perf_count : SQ_PERFCOUNTER3_HI_PERF_COUNT_SIZE;
+ } sq_perfcounter3_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_perfcounter3_hi_t f;
+} sq_perfcounter3_hi_u;
+
+
+/*
+ * SX_PERFCOUNTER0_SELECT struct
+ */
+
+#define SX_PERFCOUNTER0_SELECT_PERF_SEL_SIZE 8
+
+#define SX_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT 0
+
+#define SX_PERFCOUNTER0_SELECT_PERF_SEL_MASK 0x000000ff
+
+#define SX_PERFCOUNTER0_SELECT_MASK \
+ (SX_PERFCOUNTER0_SELECT_PERF_SEL_MASK)
+
+#define SX_PERFCOUNTER0_SELECT(perf_sel) \
+ ((perf_sel << SX_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT))
+
+#define SX_PERFCOUNTER0_SELECT_GET_PERF_SEL(sx_perfcounter0_select) \
+ ((sx_perfcounter0_select & SX_PERFCOUNTER0_SELECT_PERF_SEL_MASK) >> SX_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT)
+
+#define SX_PERFCOUNTER0_SELECT_SET_PERF_SEL(sx_perfcounter0_select_reg, perf_sel) \
+ sx_perfcounter0_select_reg = (sx_perfcounter0_select_reg & ~SX_PERFCOUNTER0_SELECT_PERF_SEL_MASK) | (perf_sel << SX_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sx_perfcounter0_select_t {
+ unsigned int perf_sel : SX_PERFCOUNTER0_SELECT_PERF_SEL_SIZE;
+ unsigned int : 24;
+ } sx_perfcounter0_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sx_perfcounter0_select_t {
+ unsigned int : 24;
+ unsigned int perf_sel : SX_PERFCOUNTER0_SELECT_PERF_SEL_SIZE;
+ } sx_perfcounter0_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sx_perfcounter0_select_t f;
+} sx_perfcounter0_select_u;
+
+
+/*
+ * SX_PERFCOUNTER0_LOW struct
+ */
+
+#define SX_PERFCOUNTER0_LOW_PERF_COUNT_SIZE 32
+
+#define SX_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT 0
+
+#define SX_PERFCOUNTER0_LOW_PERF_COUNT_MASK 0xffffffff
+
+#define SX_PERFCOUNTER0_LOW_MASK \
+ (SX_PERFCOUNTER0_LOW_PERF_COUNT_MASK)
+
+#define SX_PERFCOUNTER0_LOW(perf_count) \
+ ((perf_count << SX_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT))
+
+#define SX_PERFCOUNTER0_LOW_GET_PERF_COUNT(sx_perfcounter0_low) \
+ ((sx_perfcounter0_low & SX_PERFCOUNTER0_LOW_PERF_COUNT_MASK) >> SX_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT)
+
+#define SX_PERFCOUNTER0_LOW_SET_PERF_COUNT(sx_perfcounter0_low_reg, perf_count) \
+ sx_perfcounter0_low_reg = (sx_perfcounter0_low_reg & ~SX_PERFCOUNTER0_LOW_PERF_COUNT_MASK) | (perf_count << SX_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sx_perfcounter0_low_t {
+ unsigned int perf_count : SX_PERFCOUNTER0_LOW_PERF_COUNT_SIZE;
+ } sx_perfcounter0_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sx_perfcounter0_low_t {
+ unsigned int perf_count : SX_PERFCOUNTER0_LOW_PERF_COUNT_SIZE;
+ } sx_perfcounter0_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sx_perfcounter0_low_t f;
+} sx_perfcounter0_low_u;
+
+
+/*
+ * SX_PERFCOUNTER0_HI struct
+ */
+
+#define SX_PERFCOUNTER0_HI_PERF_COUNT_SIZE 16
+
+#define SX_PERFCOUNTER0_HI_PERF_COUNT_SHIFT 0
+
+#define SX_PERFCOUNTER0_HI_PERF_COUNT_MASK 0x0000ffff
+
+#define SX_PERFCOUNTER0_HI_MASK \
+ (SX_PERFCOUNTER0_HI_PERF_COUNT_MASK)
+
+#define SX_PERFCOUNTER0_HI(perf_count) \
+ ((perf_count << SX_PERFCOUNTER0_HI_PERF_COUNT_SHIFT))
+
+#define SX_PERFCOUNTER0_HI_GET_PERF_COUNT(sx_perfcounter0_hi) \
+ ((sx_perfcounter0_hi & SX_PERFCOUNTER0_HI_PERF_COUNT_MASK) >> SX_PERFCOUNTER0_HI_PERF_COUNT_SHIFT)
+
+#define SX_PERFCOUNTER0_HI_SET_PERF_COUNT(sx_perfcounter0_hi_reg, perf_count) \
+ sx_perfcounter0_hi_reg = (sx_perfcounter0_hi_reg & ~SX_PERFCOUNTER0_HI_PERF_COUNT_MASK) | (perf_count << SX_PERFCOUNTER0_HI_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sx_perfcounter0_hi_t {
+ unsigned int perf_count : SX_PERFCOUNTER0_HI_PERF_COUNT_SIZE;
+ unsigned int : 16;
+ } sx_perfcounter0_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sx_perfcounter0_hi_t {
+ unsigned int : 16;
+ unsigned int perf_count : SX_PERFCOUNTER0_HI_PERF_COUNT_SIZE;
+ } sx_perfcounter0_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sx_perfcounter0_hi_t f;
+} sx_perfcounter0_hi_u;
+
+
+/*
+ * SQ_INSTRUCTION_ALU_0 struct
+ */
+
+#define SQ_INSTRUCTION_ALU_0_VECTOR_RESULT_SIZE 6
+#define SQ_INSTRUCTION_ALU_0_CST_0_ABS_MOD_SIZE 1
+#define SQ_INSTRUCTION_ALU_0_LOW_PRECISION_16B_FP_SIZE 1
+#define SQ_INSTRUCTION_ALU_0_SCALAR_RESULT_SIZE 6
+#define SQ_INSTRUCTION_ALU_0_SST_0_ABS_MOD_SIZE 1
+#define SQ_INSTRUCTION_ALU_0_EXPORT_DATA_SIZE 1
+#define SQ_INSTRUCTION_ALU_0_VECTOR_WRT_MSK_SIZE 4
+#define SQ_INSTRUCTION_ALU_0_SCALAR_WRT_MSK_SIZE 4
+#define SQ_INSTRUCTION_ALU_0_VECTOR_CLAMP_SIZE 1
+#define SQ_INSTRUCTION_ALU_0_SCALAR_CLAMP_SIZE 1
+#define SQ_INSTRUCTION_ALU_0_SCALAR_OPCODE_SIZE 6
+
+#define SQ_INSTRUCTION_ALU_0_VECTOR_RESULT_SHIFT 0
+#define SQ_INSTRUCTION_ALU_0_CST_0_ABS_MOD_SHIFT 6
+#define SQ_INSTRUCTION_ALU_0_LOW_PRECISION_16B_FP_SHIFT 7
+#define SQ_INSTRUCTION_ALU_0_SCALAR_RESULT_SHIFT 8
+#define SQ_INSTRUCTION_ALU_0_SST_0_ABS_MOD_SHIFT 14
+#define SQ_INSTRUCTION_ALU_0_EXPORT_DATA_SHIFT 15
+#define SQ_INSTRUCTION_ALU_0_VECTOR_WRT_MSK_SHIFT 16
+#define SQ_INSTRUCTION_ALU_0_SCALAR_WRT_MSK_SHIFT 20
+#define SQ_INSTRUCTION_ALU_0_VECTOR_CLAMP_SHIFT 24
+#define SQ_INSTRUCTION_ALU_0_SCALAR_CLAMP_SHIFT 25
+#define SQ_INSTRUCTION_ALU_0_SCALAR_OPCODE_SHIFT 26
+
+#define SQ_INSTRUCTION_ALU_0_VECTOR_RESULT_MASK 0x0000003f
+#define SQ_INSTRUCTION_ALU_0_CST_0_ABS_MOD_MASK 0x00000040
+#define SQ_INSTRUCTION_ALU_0_LOW_PRECISION_16B_FP_MASK 0x00000080
+#define SQ_INSTRUCTION_ALU_0_SCALAR_RESULT_MASK 0x00003f00
+#define SQ_INSTRUCTION_ALU_0_SST_0_ABS_MOD_MASK 0x00004000
+#define SQ_INSTRUCTION_ALU_0_EXPORT_DATA_MASK 0x00008000
+#define SQ_INSTRUCTION_ALU_0_VECTOR_WRT_MSK_MASK 0x000f0000
+#define SQ_INSTRUCTION_ALU_0_SCALAR_WRT_MSK_MASK 0x00f00000
+#define SQ_INSTRUCTION_ALU_0_VECTOR_CLAMP_MASK 0x01000000
+#define SQ_INSTRUCTION_ALU_0_SCALAR_CLAMP_MASK 0x02000000
+#define SQ_INSTRUCTION_ALU_0_SCALAR_OPCODE_MASK 0xfc000000
+
+#define SQ_INSTRUCTION_ALU_0_MASK \
+ (SQ_INSTRUCTION_ALU_0_VECTOR_RESULT_MASK | \
+ SQ_INSTRUCTION_ALU_0_CST_0_ABS_MOD_MASK | \
+ SQ_INSTRUCTION_ALU_0_LOW_PRECISION_16B_FP_MASK | \
+ SQ_INSTRUCTION_ALU_0_SCALAR_RESULT_MASK | \
+ SQ_INSTRUCTION_ALU_0_SST_0_ABS_MOD_MASK | \
+ SQ_INSTRUCTION_ALU_0_EXPORT_DATA_MASK | \
+ SQ_INSTRUCTION_ALU_0_VECTOR_WRT_MSK_MASK | \
+ SQ_INSTRUCTION_ALU_0_SCALAR_WRT_MSK_MASK | \
+ SQ_INSTRUCTION_ALU_0_VECTOR_CLAMP_MASK | \
+ SQ_INSTRUCTION_ALU_0_SCALAR_CLAMP_MASK | \
+ SQ_INSTRUCTION_ALU_0_SCALAR_OPCODE_MASK)
+
+#define SQ_INSTRUCTION_ALU_0(vector_result, cst_0_abs_mod, low_precision_16b_fp, scalar_result, sst_0_abs_mod, export_data, vector_wrt_msk, scalar_wrt_msk, vector_clamp, scalar_clamp, scalar_opcode) \
+ ((vector_result << SQ_INSTRUCTION_ALU_0_VECTOR_RESULT_SHIFT) | \
+ (cst_0_abs_mod << SQ_INSTRUCTION_ALU_0_CST_0_ABS_MOD_SHIFT) | \
+ (low_precision_16b_fp << SQ_INSTRUCTION_ALU_0_LOW_PRECISION_16B_FP_SHIFT) | \
+ (scalar_result << SQ_INSTRUCTION_ALU_0_SCALAR_RESULT_SHIFT) | \
+ (sst_0_abs_mod << SQ_INSTRUCTION_ALU_0_SST_0_ABS_MOD_SHIFT) | \
+ (export_data << SQ_INSTRUCTION_ALU_0_EXPORT_DATA_SHIFT) | \
+ (vector_wrt_msk << SQ_INSTRUCTION_ALU_0_VECTOR_WRT_MSK_SHIFT) | \
+ (scalar_wrt_msk << SQ_INSTRUCTION_ALU_0_SCALAR_WRT_MSK_SHIFT) | \
+ (vector_clamp << SQ_INSTRUCTION_ALU_0_VECTOR_CLAMP_SHIFT) | \
+ (scalar_clamp << SQ_INSTRUCTION_ALU_0_SCALAR_CLAMP_SHIFT) | \
+ (scalar_opcode << SQ_INSTRUCTION_ALU_0_SCALAR_OPCODE_SHIFT))
+
+#define SQ_INSTRUCTION_ALU_0_GET_VECTOR_RESULT(sq_instruction_alu_0) \
+ ((sq_instruction_alu_0 & SQ_INSTRUCTION_ALU_0_VECTOR_RESULT_MASK) >> SQ_INSTRUCTION_ALU_0_VECTOR_RESULT_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_GET_CST_0_ABS_MOD(sq_instruction_alu_0) \
+ ((sq_instruction_alu_0 & SQ_INSTRUCTION_ALU_0_CST_0_ABS_MOD_MASK) >> SQ_INSTRUCTION_ALU_0_CST_0_ABS_MOD_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_GET_LOW_PRECISION_16B_FP(sq_instruction_alu_0) \
+ ((sq_instruction_alu_0 & SQ_INSTRUCTION_ALU_0_LOW_PRECISION_16B_FP_MASK) >> SQ_INSTRUCTION_ALU_0_LOW_PRECISION_16B_FP_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_GET_SCALAR_RESULT(sq_instruction_alu_0) \
+ ((sq_instruction_alu_0 & SQ_INSTRUCTION_ALU_0_SCALAR_RESULT_MASK) >> SQ_INSTRUCTION_ALU_0_SCALAR_RESULT_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_GET_SST_0_ABS_MOD(sq_instruction_alu_0) \
+ ((sq_instruction_alu_0 & SQ_INSTRUCTION_ALU_0_SST_0_ABS_MOD_MASK) >> SQ_INSTRUCTION_ALU_0_SST_0_ABS_MOD_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_GET_EXPORT_DATA(sq_instruction_alu_0) \
+ ((sq_instruction_alu_0 & SQ_INSTRUCTION_ALU_0_EXPORT_DATA_MASK) >> SQ_INSTRUCTION_ALU_0_EXPORT_DATA_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_GET_VECTOR_WRT_MSK(sq_instruction_alu_0) \
+ ((sq_instruction_alu_0 & SQ_INSTRUCTION_ALU_0_VECTOR_WRT_MSK_MASK) >> SQ_INSTRUCTION_ALU_0_VECTOR_WRT_MSK_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_GET_SCALAR_WRT_MSK(sq_instruction_alu_0) \
+ ((sq_instruction_alu_0 & SQ_INSTRUCTION_ALU_0_SCALAR_WRT_MSK_MASK) >> SQ_INSTRUCTION_ALU_0_SCALAR_WRT_MSK_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_GET_VECTOR_CLAMP(sq_instruction_alu_0) \
+ ((sq_instruction_alu_0 & SQ_INSTRUCTION_ALU_0_VECTOR_CLAMP_MASK) >> SQ_INSTRUCTION_ALU_0_VECTOR_CLAMP_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_GET_SCALAR_CLAMP(sq_instruction_alu_0) \
+ ((sq_instruction_alu_0 & SQ_INSTRUCTION_ALU_0_SCALAR_CLAMP_MASK) >> SQ_INSTRUCTION_ALU_0_SCALAR_CLAMP_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_GET_SCALAR_OPCODE(sq_instruction_alu_0) \
+ ((sq_instruction_alu_0 & SQ_INSTRUCTION_ALU_0_SCALAR_OPCODE_MASK) >> SQ_INSTRUCTION_ALU_0_SCALAR_OPCODE_SHIFT)
+
+#define SQ_INSTRUCTION_ALU_0_SET_VECTOR_RESULT(sq_instruction_alu_0_reg, vector_result) \
+ sq_instruction_alu_0_reg = (sq_instruction_alu_0_reg & ~SQ_INSTRUCTION_ALU_0_VECTOR_RESULT_MASK) | (vector_result << SQ_INSTRUCTION_ALU_0_VECTOR_RESULT_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_SET_CST_0_ABS_MOD(sq_instruction_alu_0_reg, cst_0_abs_mod) \
+ sq_instruction_alu_0_reg = (sq_instruction_alu_0_reg & ~SQ_INSTRUCTION_ALU_0_CST_0_ABS_MOD_MASK) | (cst_0_abs_mod << SQ_INSTRUCTION_ALU_0_CST_0_ABS_MOD_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_SET_LOW_PRECISION_16B_FP(sq_instruction_alu_0_reg, low_precision_16b_fp) \
+ sq_instruction_alu_0_reg = (sq_instruction_alu_0_reg & ~SQ_INSTRUCTION_ALU_0_LOW_PRECISION_16B_FP_MASK) | (low_precision_16b_fp << SQ_INSTRUCTION_ALU_0_LOW_PRECISION_16B_FP_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_SET_SCALAR_RESULT(sq_instruction_alu_0_reg, scalar_result) \
+ sq_instruction_alu_0_reg = (sq_instruction_alu_0_reg & ~SQ_INSTRUCTION_ALU_0_SCALAR_RESULT_MASK) | (scalar_result << SQ_INSTRUCTION_ALU_0_SCALAR_RESULT_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_SET_SST_0_ABS_MOD(sq_instruction_alu_0_reg, sst_0_abs_mod) \
+ sq_instruction_alu_0_reg = (sq_instruction_alu_0_reg & ~SQ_INSTRUCTION_ALU_0_SST_0_ABS_MOD_MASK) | (sst_0_abs_mod << SQ_INSTRUCTION_ALU_0_SST_0_ABS_MOD_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_SET_EXPORT_DATA(sq_instruction_alu_0_reg, export_data) \
+ sq_instruction_alu_0_reg = (sq_instruction_alu_0_reg & ~SQ_INSTRUCTION_ALU_0_EXPORT_DATA_MASK) | (export_data << SQ_INSTRUCTION_ALU_0_EXPORT_DATA_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_SET_VECTOR_WRT_MSK(sq_instruction_alu_0_reg, vector_wrt_msk) \
+ sq_instruction_alu_0_reg = (sq_instruction_alu_0_reg & ~SQ_INSTRUCTION_ALU_0_VECTOR_WRT_MSK_MASK) | (vector_wrt_msk << SQ_INSTRUCTION_ALU_0_VECTOR_WRT_MSK_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_SET_SCALAR_WRT_MSK(sq_instruction_alu_0_reg, scalar_wrt_msk) \
+ sq_instruction_alu_0_reg = (sq_instruction_alu_0_reg & ~SQ_INSTRUCTION_ALU_0_SCALAR_WRT_MSK_MASK) | (scalar_wrt_msk << SQ_INSTRUCTION_ALU_0_SCALAR_WRT_MSK_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_SET_VECTOR_CLAMP(sq_instruction_alu_0_reg, vector_clamp) \
+ sq_instruction_alu_0_reg = (sq_instruction_alu_0_reg & ~SQ_INSTRUCTION_ALU_0_VECTOR_CLAMP_MASK) | (vector_clamp << SQ_INSTRUCTION_ALU_0_VECTOR_CLAMP_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_SET_SCALAR_CLAMP(sq_instruction_alu_0_reg, scalar_clamp) \
+ sq_instruction_alu_0_reg = (sq_instruction_alu_0_reg & ~SQ_INSTRUCTION_ALU_0_SCALAR_CLAMP_MASK) | (scalar_clamp << SQ_INSTRUCTION_ALU_0_SCALAR_CLAMP_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_SET_SCALAR_OPCODE(sq_instruction_alu_0_reg, scalar_opcode) \
+ sq_instruction_alu_0_reg = (sq_instruction_alu_0_reg & ~SQ_INSTRUCTION_ALU_0_SCALAR_OPCODE_MASK) | (scalar_opcode << SQ_INSTRUCTION_ALU_0_SCALAR_OPCODE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_alu_0_t {
+ unsigned int vector_result : SQ_INSTRUCTION_ALU_0_VECTOR_RESULT_SIZE;
+ unsigned int cst_0_abs_mod : SQ_INSTRUCTION_ALU_0_CST_0_ABS_MOD_SIZE;
+ unsigned int low_precision_16b_fp : SQ_INSTRUCTION_ALU_0_LOW_PRECISION_16B_FP_SIZE;
+ unsigned int scalar_result : SQ_INSTRUCTION_ALU_0_SCALAR_RESULT_SIZE;
+ unsigned int sst_0_abs_mod : SQ_INSTRUCTION_ALU_0_SST_0_ABS_MOD_SIZE;
+ unsigned int export_data : SQ_INSTRUCTION_ALU_0_EXPORT_DATA_SIZE;
+ unsigned int vector_wrt_msk : SQ_INSTRUCTION_ALU_0_VECTOR_WRT_MSK_SIZE;
+ unsigned int scalar_wrt_msk : SQ_INSTRUCTION_ALU_0_SCALAR_WRT_MSK_SIZE;
+ unsigned int vector_clamp : SQ_INSTRUCTION_ALU_0_VECTOR_CLAMP_SIZE;
+ unsigned int scalar_clamp : SQ_INSTRUCTION_ALU_0_SCALAR_CLAMP_SIZE;
+ unsigned int scalar_opcode : SQ_INSTRUCTION_ALU_0_SCALAR_OPCODE_SIZE;
+ } sq_instruction_alu_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_alu_0_t {
+ unsigned int scalar_opcode : SQ_INSTRUCTION_ALU_0_SCALAR_OPCODE_SIZE;
+ unsigned int scalar_clamp : SQ_INSTRUCTION_ALU_0_SCALAR_CLAMP_SIZE;
+ unsigned int vector_clamp : SQ_INSTRUCTION_ALU_0_VECTOR_CLAMP_SIZE;
+ unsigned int scalar_wrt_msk : SQ_INSTRUCTION_ALU_0_SCALAR_WRT_MSK_SIZE;
+ unsigned int vector_wrt_msk : SQ_INSTRUCTION_ALU_0_VECTOR_WRT_MSK_SIZE;
+ unsigned int export_data : SQ_INSTRUCTION_ALU_0_EXPORT_DATA_SIZE;
+ unsigned int sst_0_abs_mod : SQ_INSTRUCTION_ALU_0_SST_0_ABS_MOD_SIZE;
+ unsigned int scalar_result : SQ_INSTRUCTION_ALU_0_SCALAR_RESULT_SIZE;
+ unsigned int low_precision_16b_fp : SQ_INSTRUCTION_ALU_0_LOW_PRECISION_16B_FP_SIZE;
+ unsigned int cst_0_abs_mod : SQ_INSTRUCTION_ALU_0_CST_0_ABS_MOD_SIZE;
+ unsigned int vector_result : SQ_INSTRUCTION_ALU_0_VECTOR_RESULT_SIZE;
+ } sq_instruction_alu_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_alu_0_t f;
+} sq_instruction_alu_0_u;
+
+
+/*
+ * SQ_INSTRUCTION_ALU_1 struct
+ */
+
+#define SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_R_SIZE 2
+#define SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_G_SIZE 2
+#define SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_B_SIZE 2
+#define SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_A_SIZE 2
+#define SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_R_SIZE 2
+#define SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_G_SIZE 2
+#define SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_B_SIZE 2
+#define SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_A_SIZE 2
+#define SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_R_SIZE 2
+#define SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_G_SIZE 2
+#define SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_B_SIZE 2
+#define SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_A_SIZE 2
+#define SQ_INSTRUCTION_ALU_1_SRC_C_ARG_MOD_SIZE 1
+#define SQ_INSTRUCTION_ALU_1_SRC_B_ARG_MOD_SIZE 1
+#define SQ_INSTRUCTION_ALU_1_SRC_A_ARG_MOD_SIZE 1
+#define SQ_INSTRUCTION_ALU_1_PRED_SELECT_SIZE 2
+#define SQ_INSTRUCTION_ALU_1_RELATIVE_ADDR_SIZE 1
+#define SQ_INSTRUCTION_ALU_1_CONST_1_REL_ABS_SIZE 1
+#define SQ_INSTRUCTION_ALU_1_CONST_0_REL_ABS_SIZE 1
+
+#define SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_R_SHIFT 0
+#define SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_G_SHIFT 2
+#define SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_B_SHIFT 4
+#define SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_A_SHIFT 6
+#define SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_R_SHIFT 8
+#define SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_G_SHIFT 10
+#define SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_B_SHIFT 12
+#define SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_A_SHIFT 14
+#define SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_R_SHIFT 16
+#define SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_G_SHIFT 18
+#define SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_B_SHIFT 20
+#define SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_A_SHIFT 22
+#define SQ_INSTRUCTION_ALU_1_SRC_C_ARG_MOD_SHIFT 24
+#define SQ_INSTRUCTION_ALU_1_SRC_B_ARG_MOD_SHIFT 25
+#define SQ_INSTRUCTION_ALU_1_SRC_A_ARG_MOD_SHIFT 26
+#define SQ_INSTRUCTION_ALU_1_PRED_SELECT_SHIFT 27
+#define SQ_INSTRUCTION_ALU_1_RELATIVE_ADDR_SHIFT 29
+#define SQ_INSTRUCTION_ALU_1_CONST_1_REL_ABS_SHIFT 30
+#define SQ_INSTRUCTION_ALU_1_CONST_0_REL_ABS_SHIFT 31
+
+#define SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_R_MASK 0x00000003
+#define SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_G_MASK 0x0000000c
+#define SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_B_MASK 0x00000030
+#define SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_A_MASK 0x000000c0
+#define SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_R_MASK 0x00000300
+#define SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_G_MASK 0x00000c00
+#define SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_B_MASK 0x00003000
+#define SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_A_MASK 0x0000c000
+#define SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_R_MASK 0x00030000
+#define SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_G_MASK 0x000c0000
+#define SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_B_MASK 0x00300000
+#define SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_A_MASK 0x00c00000
+#define SQ_INSTRUCTION_ALU_1_SRC_C_ARG_MOD_MASK 0x01000000
+#define SQ_INSTRUCTION_ALU_1_SRC_B_ARG_MOD_MASK 0x02000000
+#define SQ_INSTRUCTION_ALU_1_SRC_A_ARG_MOD_MASK 0x04000000
+#define SQ_INSTRUCTION_ALU_1_PRED_SELECT_MASK 0x18000000
+#define SQ_INSTRUCTION_ALU_1_RELATIVE_ADDR_MASK 0x20000000
+#define SQ_INSTRUCTION_ALU_1_CONST_1_REL_ABS_MASK 0x40000000
+#define SQ_INSTRUCTION_ALU_1_CONST_0_REL_ABS_MASK 0x80000000
+
+#define SQ_INSTRUCTION_ALU_1_MASK \
+ (SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_R_MASK | \
+ SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_G_MASK | \
+ SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_B_MASK | \
+ SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_A_MASK | \
+ SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_R_MASK | \
+ SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_G_MASK | \
+ SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_B_MASK | \
+ SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_A_MASK | \
+ SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_R_MASK | \
+ SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_G_MASK | \
+ SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_B_MASK | \
+ SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_A_MASK | \
+ SQ_INSTRUCTION_ALU_1_SRC_C_ARG_MOD_MASK | \
+ SQ_INSTRUCTION_ALU_1_SRC_B_ARG_MOD_MASK | \
+ SQ_INSTRUCTION_ALU_1_SRC_A_ARG_MOD_MASK | \
+ SQ_INSTRUCTION_ALU_1_PRED_SELECT_MASK | \
+ SQ_INSTRUCTION_ALU_1_RELATIVE_ADDR_MASK | \
+ SQ_INSTRUCTION_ALU_1_CONST_1_REL_ABS_MASK | \
+ SQ_INSTRUCTION_ALU_1_CONST_0_REL_ABS_MASK)
+
+#define SQ_INSTRUCTION_ALU_1(src_c_swizzle_r, src_c_swizzle_g, src_c_swizzle_b, src_c_swizzle_a, src_b_swizzle_r, src_b_swizzle_g, src_b_swizzle_b, src_b_swizzle_a, src_a_swizzle_r, src_a_swizzle_g, src_a_swizzle_b, src_a_swizzle_a, src_c_arg_mod, src_b_arg_mod, src_a_arg_mod, pred_select, relative_addr, const_1_rel_abs, const_0_rel_abs) \
+ ((src_c_swizzle_r << SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_R_SHIFT) | \
+ (src_c_swizzle_g << SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_G_SHIFT) | \
+ (src_c_swizzle_b << SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_B_SHIFT) | \
+ (src_c_swizzle_a << SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_A_SHIFT) | \
+ (src_b_swizzle_r << SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_R_SHIFT) | \
+ (src_b_swizzle_g << SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_G_SHIFT) | \
+ (src_b_swizzle_b << SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_B_SHIFT) | \
+ (src_b_swizzle_a << SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_A_SHIFT) | \
+ (src_a_swizzle_r << SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_R_SHIFT) | \
+ (src_a_swizzle_g << SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_G_SHIFT) | \
+ (src_a_swizzle_b << SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_B_SHIFT) | \
+ (src_a_swizzle_a << SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_A_SHIFT) | \
+ (src_c_arg_mod << SQ_INSTRUCTION_ALU_1_SRC_C_ARG_MOD_SHIFT) | \
+ (src_b_arg_mod << SQ_INSTRUCTION_ALU_1_SRC_B_ARG_MOD_SHIFT) | \
+ (src_a_arg_mod << SQ_INSTRUCTION_ALU_1_SRC_A_ARG_MOD_SHIFT) | \
+ (pred_select << SQ_INSTRUCTION_ALU_1_PRED_SELECT_SHIFT) | \
+ (relative_addr << SQ_INSTRUCTION_ALU_1_RELATIVE_ADDR_SHIFT) | \
+ (const_1_rel_abs << SQ_INSTRUCTION_ALU_1_CONST_1_REL_ABS_SHIFT) | \
+ (const_0_rel_abs << SQ_INSTRUCTION_ALU_1_CONST_0_REL_ABS_SHIFT))
+
+#define SQ_INSTRUCTION_ALU_1_GET_SRC_C_SWIZZLE_R(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_R_MASK) >> SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_R_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_GET_SRC_C_SWIZZLE_G(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_G_MASK) >> SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_G_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_GET_SRC_C_SWIZZLE_B(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_B_MASK) >> SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_B_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_GET_SRC_C_SWIZZLE_A(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_A_MASK) >> SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_A_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_GET_SRC_B_SWIZZLE_R(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_R_MASK) >> SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_R_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_GET_SRC_B_SWIZZLE_G(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_G_MASK) >> SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_G_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_GET_SRC_B_SWIZZLE_B(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_B_MASK) >> SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_B_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_GET_SRC_B_SWIZZLE_A(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_A_MASK) >> SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_A_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_GET_SRC_A_SWIZZLE_R(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_R_MASK) >> SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_R_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_GET_SRC_A_SWIZZLE_G(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_G_MASK) >> SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_G_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_GET_SRC_A_SWIZZLE_B(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_B_MASK) >> SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_B_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_GET_SRC_A_SWIZZLE_A(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_A_MASK) >> SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_A_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_GET_SRC_C_ARG_MOD(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_SRC_C_ARG_MOD_MASK) >> SQ_INSTRUCTION_ALU_1_SRC_C_ARG_MOD_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_GET_SRC_B_ARG_MOD(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_SRC_B_ARG_MOD_MASK) >> SQ_INSTRUCTION_ALU_1_SRC_B_ARG_MOD_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_GET_SRC_A_ARG_MOD(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_SRC_A_ARG_MOD_MASK) >> SQ_INSTRUCTION_ALU_1_SRC_A_ARG_MOD_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_GET_PRED_SELECT(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_PRED_SELECT_MASK) >> SQ_INSTRUCTION_ALU_1_PRED_SELECT_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_GET_RELATIVE_ADDR(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_RELATIVE_ADDR_MASK) >> SQ_INSTRUCTION_ALU_1_RELATIVE_ADDR_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_GET_CONST_1_REL_ABS(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_CONST_1_REL_ABS_MASK) >> SQ_INSTRUCTION_ALU_1_CONST_1_REL_ABS_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_GET_CONST_0_REL_ABS(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_CONST_0_REL_ABS_MASK) >> SQ_INSTRUCTION_ALU_1_CONST_0_REL_ABS_SHIFT)
+
+#define SQ_INSTRUCTION_ALU_1_SET_SRC_C_SWIZZLE_R(sq_instruction_alu_1_reg, src_c_swizzle_r) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_R_MASK) | (src_c_swizzle_r << SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_R_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_SET_SRC_C_SWIZZLE_G(sq_instruction_alu_1_reg, src_c_swizzle_g) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_G_MASK) | (src_c_swizzle_g << SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_G_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_SET_SRC_C_SWIZZLE_B(sq_instruction_alu_1_reg, src_c_swizzle_b) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_B_MASK) | (src_c_swizzle_b << SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_B_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_SET_SRC_C_SWIZZLE_A(sq_instruction_alu_1_reg, src_c_swizzle_a) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_A_MASK) | (src_c_swizzle_a << SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_A_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_SET_SRC_B_SWIZZLE_R(sq_instruction_alu_1_reg, src_b_swizzle_r) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_R_MASK) | (src_b_swizzle_r << SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_R_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_SET_SRC_B_SWIZZLE_G(sq_instruction_alu_1_reg, src_b_swizzle_g) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_G_MASK) | (src_b_swizzle_g << SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_G_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_SET_SRC_B_SWIZZLE_B(sq_instruction_alu_1_reg, src_b_swizzle_b) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_B_MASK) | (src_b_swizzle_b << SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_B_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_SET_SRC_B_SWIZZLE_A(sq_instruction_alu_1_reg, src_b_swizzle_a) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_A_MASK) | (src_b_swizzle_a << SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_A_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_SET_SRC_A_SWIZZLE_R(sq_instruction_alu_1_reg, src_a_swizzle_r) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_R_MASK) | (src_a_swizzle_r << SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_R_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_SET_SRC_A_SWIZZLE_G(sq_instruction_alu_1_reg, src_a_swizzle_g) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_G_MASK) | (src_a_swizzle_g << SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_G_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_SET_SRC_A_SWIZZLE_B(sq_instruction_alu_1_reg, src_a_swizzle_b) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_B_MASK) | (src_a_swizzle_b << SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_B_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_SET_SRC_A_SWIZZLE_A(sq_instruction_alu_1_reg, src_a_swizzle_a) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_A_MASK) | (src_a_swizzle_a << SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_A_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_SET_SRC_C_ARG_MOD(sq_instruction_alu_1_reg, src_c_arg_mod) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_SRC_C_ARG_MOD_MASK) | (src_c_arg_mod << SQ_INSTRUCTION_ALU_1_SRC_C_ARG_MOD_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_SET_SRC_B_ARG_MOD(sq_instruction_alu_1_reg, src_b_arg_mod) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_SRC_B_ARG_MOD_MASK) | (src_b_arg_mod << SQ_INSTRUCTION_ALU_1_SRC_B_ARG_MOD_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_SET_SRC_A_ARG_MOD(sq_instruction_alu_1_reg, src_a_arg_mod) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_SRC_A_ARG_MOD_MASK) | (src_a_arg_mod << SQ_INSTRUCTION_ALU_1_SRC_A_ARG_MOD_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_SET_PRED_SELECT(sq_instruction_alu_1_reg, pred_select) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_PRED_SELECT_MASK) | (pred_select << SQ_INSTRUCTION_ALU_1_PRED_SELECT_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_SET_RELATIVE_ADDR(sq_instruction_alu_1_reg, relative_addr) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_RELATIVE_ADDR_MASK) | (relative_addr << SQ_INSTRUCTION_ALU_1_RELATIVE_ADDR_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_SET_CONST_1_REL_ABS(sq_instruction_alu_1_reg, const_1_rel_abs) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_CONST_1_REL_ABS_MASK) | (const_1_rel_abs << SQ_INSTRUCTION_ALU_1_CONST_1_REL_ABS_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_SET_CONST_0_REL_ABS(sq_instruction_alu_1_reg, const_0_rel_abs) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_CONST_0_REL_ABS_MASK) | (const_0_rel_abs << SQ_INSTRUCTION_ALU_1_CONST_0_REL_ABS_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_alu_1_t {
+ unsigned int src_c_swizzle_r : SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_R_SIZE;
+ unsigned int src_c_swizzle_g : SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_G_SIZE;
+ unsigned int src_c_swizzle_b : SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_B_SIZE;
+ unsigned int src_c_swizzle_a : SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_A_SIZE;
+ unsigned int src_b_swizzle_r : SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_R_SIZE;
+ unsigned int src_b_swizzle_g : SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_G_SIZE;
+ unsigned int src_b_swizzle_b : SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_B_SIZE;
+ unsigned int src_b_swizzle_a : SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_A_SIZE;
+ unsigned int src_a_swizzle_r : SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_R_SIZE;
+ unsigned int src_a_swizzle_g : SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_G_SIZE;
+ unsigned int src_a_swizzle_b : SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_B_SIZE;
+ unsigned int src_a_swizzle_a : SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_A_SIZE;
+ unsigned int src_c_arg_mod : SQ_INSTRUCTION_ALU_1_SRC_C_ARG_MOD_SIZE;
+ unsigned int src_b_arg_mod : SQ_INSTRUCTION_ALU_1_SRC_B_ARG_MOD_SIZE;
+ unsigned int src_a_arg_mod : SQ_INSTRUCTION_ALU_1_SRC_A_ARG_MOD_SIZE;
+ unsigned int pred_select : SQ_INSTRUCTION_ALU_1_PRED_SELECT_SIZE;
+ unsigned int relative_addr : SQ_INSTRUCTION_ALU_1_RELATIVE_ADDR_SIZE;
+ unsigned int const_1_rel_abs : SQ_INSTRUCTION_ALU_1_CONST_1_REL_ABS_SIZE;
+ unsigned int const_0_rel_abs : SQ_INSTRUCTION_ALU_1_CONST_0_REL_ABS_SIZE;
+ } sq_instruction_alu_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_alu_1_t {
+ unsigned int const_0_rel_abs : SQ_INSTRUCTION_ALU_1_CONST_0_REL_ABS_SIZE;
+ unsigned int const_1_rel_abs : SQ_INSTRUCTION_ALU_1_CONST_1_REL_ABS_SIZE;
+ unsigned int relative_addr : SQ_INSTRUCTION_ALU_1_RELATIVE_ADDR_SIZE;
+ unsigned int pred_select : SQ_INSTRUCTION_ALU_1_PRED_SELECT_SIZE;
+ unsigned int src_a_arg_mod : SQ_INSTRUCTION_ALU_1_SRC_A_ARG_MOD_SIZE;
+ unsigned int src_b_arg_mod : SQ_INSTRUCTION_ALU_1_SRC_B_ARG_MOD_SIZE;
+ unsigned int src_c_arg_mod : SQ_INSTRUCTION_ALU_1_SRC_C_ARG_MOD_SIZE;
+ unsigned int src_a_swizzle_a : SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_A_SIZE;
+ unsigned int src_a_swizzle_b : SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_B_SIZE;
+ unsigned int src_a_swizzle_g : SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_G_SIZE;
+ unsigned int src_a_swizzle_r : SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_R_SIZE;
+ unsigned int src_b_swizzle_a : SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_A_SIZE;
+ unsigned int src_b_swizzle_b : SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_B_SIZE;
+ unsigned int src_b_swizzle_g : SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_G_SIZE;
+ unsigned int src_b_swizzle_r : SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_R_SIZE;
+ unsigned int src_c_swizzle_a : SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_A_SIZE;
+ unsigned int src_c_swizzle_b : SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_B_SIZE;
+ unsigned int src_c_swizzle_g : SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_G_SIZE;
+ unsigned int src_c_swizzle_r : SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_R_SIZE;
+ } sq_instruction_alu_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_alu_1_t f;
+} sq_instruction_alu_1_u;
+
+
+/*
+ * SQ_INSTRUCTION_ALU_2 struct
+ */
+
+#define SQ_INSTRUCTION_ALU_2_SRC_C_REG_PTR_SIZE 6
+#define SQ_INSTRUCTION_ALU_2_REG_SELECT_C_SIZE 1
+#define SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_C_SIZE 1
+#define SQ_INSTRUCTION_ALU_2_SRC_B_REG_PTR_SIZE 6
+#define SQ_INSTRUCTION_ALU_2_REG_SELECT_B_SIZE 1
+#define SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_B_SIZE 1
+#define SQ_INSTRUCTION_ALU_2_SRC_A_REG_PTR_SIZE 6
+#define SQ_INSTRUCTION_ALU_2_REG_SELECT_A_SIZE 1
+#define SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_A_SIZE 1
+#define SQ_INSTRUCTION_ALU_2_VECTOR_OPCODE_SIZE 5
+#define SQ_INSTRUCTION_ALU_2_SRC_C_SEL_SIZE 1
+#define SQ_INSTRUCTION_ALU_2_SRC_B_SEL_SIZE 1
+#define SQ_INSTRUCTION_ALU_2_SRC_A_SEL_SIZE 1
+
+#define SQ_INSTRUCTION_ALU_2_SRC_C_REG_PTR_SHIFT 0
+#define SQ_INSTRUCTION_ALU_2_REG_SELECT_C_SHIFT 6
+#define SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_C_SHIFT 7
+#define SQ_INSTRUCTION_ALU_2_SRC_B_REG_PTR_SHIFT 8
+#define SQ_INSTRUCTION_ALU_2_REG_SELECT_B_SHIFT 14
+#define SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_B_SHIFT 15
+#define SQ_INSTRUCTION_ALU_2_SRC_A_REG_PTR_SHIFT 16
+#define SQ_INSTRUCTION_ALU_2_REG_SELECT_A_SHIFT 22
+#define SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_A_SHIFT 23
+#define SQ_INSTRUCTION_ALU_2_VECTOR_OPCODE_SHIFT 24
+#define SQ_INSTRUCTION_ALU_2_SRC_C_SEL_SHIFT 29
+#define SQ_INSTRUCTION_ALU_2_SRC_B_SEL_SHIFT 30
+#define SQ_INSTRUCTION_ALU_2_SRC_A_SEL_SHIFT 31
+
+#define SQ_INSTRUCTION_ALU_2_SRC_C_REG_PTR_MASK 0x0000003f
+#define SQ_INSTRUCTION_ALU_2_REG_SELECT_C_MASK 0x00000040
+#define SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_C_MASK 0x00000080
+#define SQ_INSTRUCTION_ALU_2_SRC_B_REG_PTR_MASK 0x00003f00
+#define SQ_INSTRUCTION_ALU_2_REG_SELECT_B_MASK 0x00004000
+#define SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_B_MASK 0x00008000
+#define SQ_INSTRUCTION_ALU_2_SRC_A_REG_PTR_MASK 0x003f0000
+#define SQ_INSTRUCTION_ALU_2_REG_SELECT_A_MASK 0x00400000
+#define SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_A_MASK 0x00800000
+#define SQ_INSTRUCTION_ALU_2_VECTOR_OPCODE_MASK 0x1f000000
+#define SQ_INSTRUCTION_ALU_2_SRC_C_SEL_MASK 0x20000000
+#define SQ_INSTRUCTION_ALU_2_SRC_B_SEL_MASK 0x40000000
+#define SQ_INSTRUCTION_ALU_2_SRC_A_SEL_MASK 0x80000000
+
+#define SQ_INSTRUCTION_ALU_2_MASK \
+ (SQ_INSTRUCTION_ALU_2_SRC_C_REG_PTR_MASK | \
+ SQ_INSTRUCTION_ALU_2_REG_SELECT_C_MASK | \
+ SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_C_MASK | \
+ SQ_INSTRUCTION_ALU_2_SRC_B_REG_PTR_MASK | \
+ SQ_INSTRUCTION_ALU_2_REG_SELECT_B_MASK | \
+ SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_B_MASK | \
+ SQ_INSTRUCTION_ALU_2_SRC_A_REG_PTR_MASK | \
+ SQ_INSTRUCTION_ALU_2_REG_SELECT_A_MASK | \
+ SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_A_MASK | \
+ SQ_INSTRUCTION_ALU_2_VECTOR_OPCODE_MASK | \
+ SQ_INSTRUCTION_ALU_2_SRC_C_SEL_MASK | \
+ SQ_INSTRUCTION_ALU_2_SRC_B_SEL_MASK | \
+ SQ_INSTRUCTION_ALU_2_SRC_A_SEL_MASK)
+
+#define SQ_INSTRUCTION_ALU_2(src_c_reg_ptr, reg_select_c, reg_abs_mod_c, src_b_reg_ptr, reg_select_b, reg_abs_mod_b, src_a_reg_ptr, reg_select_a, reg_abs_mod_a, vector_opcode, src_c_sel, src_b_sel, src_a_sel) \
+ ((src_c_reg_ptr << SQ_INSTRUCTION_ALU_2_SRC_C_REG_PTR_SHIFT) | \
+ (reg_select_c << SQ_INSTRUCTION_ALU_2_REG_SELECT_C_SHIFT) | \
+ (reg_abs_mod_c << SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_C_SHIFT) | \
+ (src_b_reg_ptr << SQ_INSTRUCTION_ALU_2_SRC_B_REG_PTR_SHIFT) | \
+ (reg_select_b << SQ_INSTRUCTION_ALU_2_REG_SELECT_B_SHIFT) | \
+ (reg_abs_mod_b << SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_B_SHIFT) | \
+ (src_a_reg_ptr << SQ_INSTRUCTION_ALU_2_SRC_A_REG_PTR_SHIFT) | \
+ (reg_select_a << SQ_INSTRUCTION_ALU_2_REG_SELECT_A_SHIFT) | \
+ (reg_abs_mod_a << SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_A_SHIFT) | \
+ (vector_opcode << SQ_INSTRUCTION_ALU_2_VECTOR_OPCODE_SHIFT) | \
+ (src_c_sel << SQ_INSTRUCTION_ALU_2_SRC_C_SEL_SHIFT) | \
+ (src_b_sel << SQ_INSTRUCTION_ALU_2_SRC_B_SEL_SHIFT) | \
+ (src_a_sel << SQ_INSTRUCTION_ALU_2_SRC_A_SEL_SHIFT))
+
+#define SQ_INSTRUCTION_ALU_2_GET_SRC_C_REG_PTR(sq_instruction_alu_2) \
+ ((sq_instruction_alu_2 & SQ_INSTRUCTION_ALU_2_SRC_C_REG_PTR_MASK) >> SQ_INSTRUCTION_ALU_2_SRC_C_REG_PTR_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_GET_REG_SELECT_C(sq_instruction_alu_2) \
+ ((sq_instruction_alu_2 & SQ_INSTRUCTION_ALU_2_REG_SELECT_C_MASK) >> SQ_INSTRUCTION_ALU_2_REG_SELECT_C_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_GET_REG_ABS_MOD_C(sq_instruction_alu_2) \
+ ((sq_instruction_alu_2 & SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_C_MASK) >> SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_C_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_GET_SRC_B_REG_PTR(sq_instruction_alu_2) \
+ ((sq_instruction_alu_2 & SQ_INSTRUCTION_ALU_2_SRC_B_REG_PTR_MASK) >> SQ_INSTRUCTION_ALU_2_SRC_B_REG_PTR_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_GET_REG_SELECT_B(sq_instruction_alu_2) \
+ ((sq_instruction_alu_2 & SQ_INSTRUCTION_ALU_2_REG_SELECT_B_MASK) >> SQ_INSTRUCTION_ALU_2_REG_SELECT_B_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_GET_REG_ABS_MOD_B(sq_instruction_alu_2) \
+ ((sq_instruction_alu_2 & SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_B_MASK) >> SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_B_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_GET_SRC_A_REG_PTR(sq_instruction_alu_2) \
+ ((sq_instruction_alu_2 & SQ_INSTRUCTION_ALU_2_SRC_A_REG_PTR_MASK) >> SQ_INSTRUCTION_ALU_2_SRC_A_REG_PTR_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_GET_REG_SELECT_A(sq_instruction_alu_2) \
+ ((sq_instruction_alu_2 & SQ_INSTRUCTION_ALU_2_REG_SELECT_A_MASK) >> SQ_INSTRUCTION_ALU_2_REG_SELECT_A_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_GET_REG_ABS_MOD_A(sq_instruction_alu_2) \
+ ((sq_instruction_alu_2 & SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_A_MASK) >> SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_A_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_GET_VECTOR_OPCODE(sq_instruction_alu_2) \
+ ((sq_instruction_alu_2 & SQ_INSTRUCTION_ALU_2_VECTOR_OPCODE_MASK) >> SQ_INSTRUCTION_ALU_2_VECTOR_OPCODE_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_GET_SRC_C_SEL(sq_instruction_alu_2) \
+ ((sq_instruction_alu_2 & SQ_INSTRUCTION_ALU_2_SRC_C_SEL_MASK) >> SQ_INSTRUCTION_ALU_2_SRC_C_SEL_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_GET_SRC_B_SEL(sq_instruction_alu_2) \
+ ((sq_instruction_alu_2 & SQ_INSTRUCTION_ALU_2_SRC_B_SEL_MASK) >> SQ_INSTRUCTION_ALU_2_SRC_B_SEL_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_GET_SRC_A_SEL(sq_instruction_alu_2) \
+ ((sq_instruction_alu_2 & SQ_INSTRUCTION_ALU_2_SRC_A_SEL_MASK) >> SQ_INSTRUCTION_ALU_2_SRC_A_SEL_SHIFT)
+
+#define SQ_INSTRUCTION_ALU_2_SET_SRC_C_REG_PTR(sq_instruction_alu_2_reg, src_c_reg_ptr) \
+ sq_instruction_alu_2_reg = (sq_instruction_alu_2_reg & ~SQ_INSTRUCTION_ALU_2_SRC_C_REG_PTR_MASK) | (src_c_reg_ptr << SQ_INSTRUCTION_ALU_2_SRC_C_REG_PTR_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_SET_REG_SELECT_C(sq_instruction_alu_2_reg, reg_select_c) \
+ sq_instruction_alu_2_reg = (sq_instruction_alu_2_reg & ~SQ_INSTRUCTION_ALU_2_REG_SELECT_C_MASK) | (reg_select_c << SQ_INSTRUCTION_ALU_2_REG_SELECT_C_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_SET_REG_ABS_MOD_C(sq_instruction_alu_2_reg, reg_abs_mod_c) \
+ sq_instruction_alu_2_reg = (sq_instruction_alu_2_reg & ~SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_C_MASK) | (reg_abs_mod_c << SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_C_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_SET_SRC_B_REG_PTR(sq_instruction_alu_2_reg, src_b_reg_ptr) \
+ sq_instruction_alu_2_reg = (sq_instruction_alu_2_reg & ~SQ_INSTRUCTION_ALU_2_SRC_B_REG_PTR_MASK) | (src_b_reg_ptr << SQ_INSTRUCTION_ALU_2_SRC_B_REG_PTR_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_SET_REG_SELECT_B(sq_instruction_alu_2_reg, reg_select_b) \
+ sq_instruction_alu_2_reg = (sq_instruction_alu_2_reg & ~SQ_INSTRUCTION_ALU_2_REG_SELECT_B_MASK) | (reg_select_b << SQ_INSTRUCTION_ALU_2_REG_SELECT_B_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_SET_REG_ABS_MOD_B(sq_instruction_alu_2_reg, reg_abs_mod_b) \
+ sq_instruction_alu_2_reg = (sq_instruction_alu_2_reg & ~SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_B_MASK) | (reg_abs_mod_b << SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_B_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_SET_SRC_A_REG_PTR(sq_instruction_alu_2_reg, src_a_reg_ptr) \
+ sq_instruction_alu_2_reg = (sq_instruction_alu_2_reg & ~SQ_INSTRUCTION_ALU_2_SRC_A_REG_PTR_MASK) | (src_a_reg_ptr << SQ_INSTRUCTION_ALU_2_SRC_A_REG_PTR_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_SET_REG_SELECT_A(sq_instruction_alu_2_reg, reg_select_a) \
+ sq_instruction_alu_2_reg = (sq_instruction_alu_2_reg & ~SQ_INSTRUCTION_ALU_2_REG_SELECT_A_MASK) | (reg_select_a << SQ_INSTRUCTION_ALU_2_REG_SELECT_A_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_SET_REG_ABS_MOD_A(sq_instruction_alu_2_reg, reg_abs_mod_a) \
+ sq_instruction_alu_2_reg = (sq_instruction_alu_2_reg & ~SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_A_MASK) | (reg_abs_mod_a << SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_A_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_SET_VECTOR_OPCODE(sq_instruction_alu_2_reg, vector_opcode) \
+ sq_instruction_alu_2_reg = (sq_instruction_alu_2_reg & ~SQ_INSTRUCTION_ALU_2_VECTOR_OPCODE_MASK) | (vector_opcode << SQ_INSTRUCTION_ALU_2_VECTOR_OPCODE_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_SET_SRC_C_SEL(sq_instruction_alu_2_reg, src_c_sel) \
+ sq_instruction_alu_2_reg = (sq_instruction_alu_2_reg & ~SQ_INSTRUCTION_ALU_2_SRC_C_SEL_MASK) | (src_c_sel << SQ_INSTRUCTION_ALU_2_SRC_C_SEL_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_SET_SRC_B_SEL(sq_instruction_alu_2_reg, src_b_sel) \
+ sq_instruction_alu_2_reg = (sq_instruction_alu_2_reg & ~SQ_INSTRUCTION_ALU_2_SRC_B_SEL_MASK) | (src_b_sel << SQ_INSTRUCTION_ALU_2_SRC_B_SEL_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_SET_SRC_A_SEL(sq_instruction_alu_2_reg, src_a_sel) \
+ sq_instruction_alu_2_reg = (sq_instruction_alu_2_reg & ~SQ_INSTRUCTION_ALU_2_SRC_A_SEL_MASK) | (src_a_sel << SQ_INSTRUCTION_ALU_2_SRC_A_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_alu_2_t {
+ unsigned int src_c_reg_ptr : SQ_INSTRUCTION_ALU_2_SRC_C_REG_PTR_SIZE;
+ unsigned int reg_select_c : SQ_INSTRUCTION_ALU_2_REG_SELECT_C_SIZE;
+ unsigned int reg_abs_mod_c : SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_C_SIZE;
+ unsigned int src_b_reg_ptr : SQ_INSTRUCTION_ALU_2_SRC_B_REG_PTR_SIZE;
+ unsigned int reg_select_b : SQ_INSTRUCTION_ALU_2_REG_SELECT_B_SIZE;
+ unsigned int reg_abs_mod_b : SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_B_SIZE;
+ unsigned int src_a_reg_ptr : SQ_INSTRUCTION_ALU_2_SRC_A_REG_PTR_SIZE;
+ unsigned int reg_select_a : SQ_INSTRUCTION_ALU_2_REG_SELECT_A_SIZE;
+ unsigned int reg_abs_mod_a : SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_A_SIZE;
+ unsigned int vector_opcode : SQ_INSTRUCTION_ALU_2_VECTOR_OPCODE_SIZE;
+ unsigned int src_c_sel : SQ_INSTRUCTION_ALU_2_SRC_C_SEL_SIZE;
+ unsigned int src_b_sel : SQ_INSTRUCTION_ALU_2_SRC_B_SEL_SIZE;
+ unsigned int src_a_sel : SQ_INSTRUCTION_ALU_2_SRC_A_SEL_SIZE;
+ } sq_instruction_alu_2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_alu_2_t {
+ unsigned int src_a_sel : SQ_INSTRUCTION_ALU_2_SRC_A_SEL_SIZE;
+ unsigned int src_b_sel : SQ_INSTRUCTION_ALU_2_SRC_B_SEL_SIZE;
+ unsigned int src_c_sel : SQ_INSTRUCTION_ALU_2_SRC_C_SEL_SIZE;
+ unsigned int vector_opcode : SQ_INSTRUCTION_ALU_2_VECTOR_OPCODE_SIZE;
+ unsigned int reg_abs_mod_a : SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_A_SIZE;
+ unsigned int reg_select_a : SQ_INSTRUCTION_ALU_2_REG_SELECT_A_SIZE;
+ unsigned int src_a_reg_ptr : SQ_INSTRUCTION_ALU_2_SRC_A_REG_PTR_SIZE;
+ unsigned int reg_abs_mod_b : SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_B_SIZE;
+ unsigned int reg_select_b : SQ_INSTRUCTION_ALU_2_REG_SELECT_B_SIZE;
+ unsigned int src_b_reg_ptr : SQ_INSTRUCTION_ALU_2_SRC_B_REG_PTR_SIZE;
+ unsigned int reg_abs_mod_c : SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_C_SIZE;
+ unsigned int reg_select_c : SQ_INSTRUCTION_ALU_2_REG_SELECT_C_SIZE;
+ unsigned int src_c_reg_ptr : SQ_INSTRUCTION_ALU_2_SRC_C_REG_PTR_SIZE;
+ } sq_instruction_alu_2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_alu_2_t f;
+} sq_instruction_alu_2_u;
+
+
+/*
+ * SQ_INSTRUCTION_CF_EXEC_0 struct
+ */
+
+#define SQ_INSTRUCTION_CF_EXEC_0_ADDRESS_SIZE 9
+#define SQ_INSTRUCTION_CF_EXEC_0_RESERVED_SIZE 3
+#define SQ_INSTRUCTION_CF_EXEC_0_COUNT_SIZE 3
+#define SQ_INSTRUCTION_CF_EXEC_0_YIELD_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_0_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_0_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_1_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_1_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_2_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_2_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_3_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_3_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_4_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_4_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_5_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_5_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_VC_0_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_VC_1_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_VC_2_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_VC_3_SIZE 1
+
+#define SQ_INSTRUCTION_CF_EXEC_0_ADDRESS_SHIFT 0
+#define SQ_INSTRUCTION_CF_EXEC_0_RESERVED_SHIFT 9
+#define SQ_INSTRUCTION_CF_EXEC_0_COUNT_SHIFT 12
+#define SQ_INSTRUCTION_CF_EXEC_0_YIELD_SHIFT 15
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_0_SHIFT 16
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_0_SHIFT 17
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_1_SHIFT 18
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_1_SHIFT 19
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_2_SHIFT 20
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_2_SHIFT 21
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_3_SHIFT 22
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_3_SHIFT 23
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_4_SHIFT 24
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_4_SHIFT 25
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_5_SHIFT 26
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_5_SHIFT 27
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_VC_0_SHIFT 28
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_VC_1_SHIFT 29
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_VC_2_SHIFT 30
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_VC_3_SHIFT 31
+
+#define SQ_INSTRUCTION_CF_EXEC_0_ADDRESS_MASK 0x000001ff
+#define SQ_INSTRUCTION_CF_EXEC_0_RESERVED_MASK 0x00000e00
+#define SQ_INSTRUCTION_CF_EXEC_0_COUNT_MASK 0x00007000
+#define SQ_INSTRUCTION_CF_EXEC_0_YIELD_MASK 0x00008000
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_0_MASK 0x00010000
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_0_MASK 0x00020000
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_1_MASK 0x00040000
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_1_MASK 0x00080000
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_2_MASK 0x00100000
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_2_MASK 0x00200000
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_3_MASK 0x00400000
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_3_MASK 0x00800000
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_4_MASK 0x01000000
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_4_MASK 0x02000000
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_5_MASK 0x04000000
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_5_MASK 0x08000000
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_VC_0_MASK 0x10000000
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_VC_1_MASK 0x20000000
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_VC_2_MASK 0x40000000
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_VC_3_MASK 0x80000000
+
+#define SQ_INSTRUCTION_CF_EXEC_0_MASK \
+ (SQ_INSTRUCTION_CF_EXEC_0_ADDRESS_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_RESERVED_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_COUNT_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_YIELD_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_0_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_0_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_1_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_1_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_2_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_2_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_3_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_3_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_4_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_4_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_5_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_5_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_INST_VC_0_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_INST_VC_1_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_INST_VC_2_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_INST_VC_3_MASK)
+
+#define SQ_INSTRUCTION_CF_EXEC_0(address, reserved, count, yield, inst_type_0, inst_serial_0, inst_type_1, inst_serial_1, inst_type_2, inst_serial_2, inst_type_3, inst_serial_3, inst_type_4, inst_serial_4, inst_type_5, inst_serial_5, inst_vc_0, inst_vc_1, inst_vc_2, inst_vc_3) \
+ ((address << SQ_INSTRUCTION_CF_EXEC_0_ADDRESS_SHIFT) | \
+ (reserved << SQ_INSTRUCTION_CF_EXEC_0_RESERVED_SHIFT) | \
+ (count << SQ_INSTRUCTION_CF_EXEC_0_COUNT_SHIFT) | \
+ (yield << SQ_INSTRUCTION_CF_EXEC_0_YIELD_SHIFT) | \
+ (inst_type_0 << SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_0_SHIFT) | \
+ (inst_serial_0 << SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_0_SHIFT) | \
+ (inst_type_1 << SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_1_SHIFT) | \
+ (inst_serial_1 << SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_1_SHIFT) | \
+ (inst_type_2 << SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_2_SHIFT) | \
+ (inst_serial_2 << SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_2_SHIFT) | \
+ (inst_type_3 << SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_3_SHIFT) | \
+ (inst_serial_3 << SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_3_SHIFT) | \
+ (inst_type_4 << SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_4_SHIFT) | \
+ (inst_serial_4 << SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_4_SHIFT) | \
+ (inst_type_5 << SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_5_SHIFT) | \
+ (inst_serial_5 << SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_5_SHIFT) | \
+ (inst_vc_0 << SQ_INSTRUCTION_CF_EXEC_0_INST_VC_0_SHIFT) | \
+ (inst_vc_1 << SQ_INSTRUCTION_CF_EXEC_0_INST_VC_1_SHIFT) | \
+ (inst_vc_2 << SQ_INSTRUCTION_CF_EXEC_0_INST_VC_2_SHIFT) | \
+ (inst_vc_3 << SQ_INSTRUCTION_CF_EXEC_0_INST_VC_3_SHIFT))
+
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_ADDRESS(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_ADDRESS_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_ADDRESS_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_RESERVED(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_RESERVED_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_RESERVED_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_COUNT(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_COUNT_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_COUNT_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_YIELD(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_YIELD_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_YIELD_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_INST_TYPE_0(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_0_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_0_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_INST_SERIAL_0(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_0_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_0_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_INST_TYPE_1(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_1_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_1_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_INST_SERIAL_1(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_1_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_1_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_INST_TYPE_2(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_2_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_2_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_INST_SERIAL_2(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_2_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_2_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_INST_TYPE_3(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_3_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_3_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_INST_SERIAL_3(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_3_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_3_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_INST_TYPE_4(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_4_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_4_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_INST_SERIAL_4(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_4_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_4_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_INST_TYPE_5(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_5_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_5_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_INST_SERIAL_5(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_5_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_5_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_INST_VC_0(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_INST_VC_0_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_INST_VC_0_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_INST_VC_1(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_INST_VC_1_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_INST_VC_1_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_INST_VC_2(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_INST_VC_2_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_INST_VC_2_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_INST_VC_3(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_INST_VC_3_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_INST_VC_3_SHIFT)
+
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_ADDRESS(sq_instruction_cf_exec_0_reg, address) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_ADDRESS_MASK) | (address << SQ_INSTRUCTION_CF_EXEC_0_ADDRESS_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_RESERVED(sq_instruction_cf_exec_0_reg, reserved) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_RESERVED_MASK) | (reserved << SQ_INSTRUCTION_CF_EXEC_0_RESERVED_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_COUNT(sq_instruction_cf_exec_0_reg, count) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_COUNT_MASK) | (count << SQ_INSTRUCTION_CF_EXEC_0_COUNT_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_YIELD(sq_instruction_cf_exec_0_reg, yield) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_YIELD_MASK) | (yield << SQ_INSTRUCTION_CF_EXEC_0_YIELD_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_INST_TYPE_0(sq_instruction_cf_exec_0_reg, inst_type_0) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_0_MASK) | (inst_type_0 << SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_0_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_INST_SERIAL_0(sq_instruction_cf_exec_0_reg, inst_serial_0) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_0_MASK) | (inst_serial_0 << SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_0_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_INST_TYPE_1(sq_instruction_cf_exec_0_reg, inst_type_1) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_1_MASK) | (inst_type_1 << SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_1_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_INST_SERIAL_1(sq_instruction_cf_exec_0_reg, inst_serial_1) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_1_MASK) | (inst_serial_1 << SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_1_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_INST_TYPE_2(sq_instruction_cf_exec_0_reg, inst_type_2) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_2_MASK) | (inst_type_2 << SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_2_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_INST_SERIAL_2(sq_instruction_cf_exec_0_reg, inst_serial_2) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_2_MASK) | (inst_serial_2 << SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_2_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_INST_TYPE_3(sq_instruction_cf_exec_0_reg, inst_type_3) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_3_MASK) | (inst_type_3 << SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_3_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_INST_SERIAL_3(sq_instruction_cf_exec_0_reg, inst_serial_3) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_3_MASK) | (inst_serial_3 << SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_3_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_INST_TYPE_4(sq_instruction_cf_exec_0_reg, inst_type_4) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_4_MASK) | (inst_type_4 << SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_4_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_INST_SERIAL_4(sq_instruction_cf_exec_0_reg, inst_serial_4) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_4_MASK) | (inst_serial_4 << SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_4_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_INST_TYPE_5(sq_instruction_cf_exec_0_reg, inst_type_5) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_5_MASK) | (inst_type_5 << SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_5_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_INST_SERIAL_5(sq_instruction_cf_exec_0_reg, inst_serial_5) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_5_MASK) | (inst_serial_5 << SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_5_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_INST_VC_0(sq_instruction_cf_exec_0_reg, inst_vc_0) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_INST_VC_0_MASK) | (inst_vc_0 << SQ_INSTRUCTION_CF_EXEC_0_INST_VC_0_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_INST_VC_1(sq_instruction_cf_exec_0_reg, inst_vc_1) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_INST_VC_1_MASK) | (inst_vc_1 << SQ_INSTRUCTION_CF_EXEC_0_INST_VC_1_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_INST_VC_2(sq_instruction_cf_exec_0_reg, inst_vc_2) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_INST_VC_2_MASK) | (inst_vc_2 << SQ_INSTRUCTION_CF_EXEC_0_INST_VC_2_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_INST_VC_3(sq_instruction_cf_exec_0_reg, inst_vc_3) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_INST_VC_3_MASK) | (inst_vc_3 << SQ_INSTRUCTION_CF_EXEC_0_INST_VC_3_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_exec_0_t {
+ unsigned int address : SQ_INSTRUCTION_CF_EXEC_0_ADDRESS_SIZE;
+ unsigned int reserved : SQ_INSTRUCTION_CF_EXEC_0_RESERVED_SIZE;
+ unsigned int count : SQ_INSTRUCTION_CF_EXEC_0_COUNT_SIZE;
+ unsigned int yield : SQ_INSTRUCTION_CF_EXEC_0_YIELD_SIZE;
+ unsigned int inst_type_0 : SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_0_SIZE;
+ unsigned int inst_serial_0 : SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_0_SIZE;
+ unsigned int inst_type_1 : SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_1_SIZE;
+ unsigned int inst_serial_1 : SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_1_SIZE;
+ unsigned int inst_type_2 : SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_2_SIZE;
+ unsigned int inst_serial_2 : SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_2_SIZE;
+ unsigned int inst_type_3 : SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_3_SIZE;
+ unsigned int inst_serial_3 : SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_3_SIZE;
+ unsigned int inst_type_4 : SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_4_SIZE;
+ unsigned int inst_serial_4 : SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_4_SIZE;
+ unsigned int inst_type_5 : SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_5_SIZE;
+ unsigned int inst_serial_5 : SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_5_SIZE;
+ unsigned int inst_vc_0 : SQ_INSTRUCTION_CF_EXEC_0_INST_VC_0_SIZE;
+ unsigned int inst_vc_1 : SQ_INSTRUCTION_CF_EXEC_0_INST_VC_1_SIZE;
+ unsigned int inst_vc_2 : SQ_INSTRUCTION_CF_EXEC_0_INST_VC_2_SIZE;
+ unsigned int inst_vc_3 : SQ_INSTRUCTION_CF_EXEC_0_INST_VC_3_SIZE;
+ } sq_instruction_cf_exec_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_exec_0_t {
+ unsigned int inst_vc_3 : SQ_INSTRUCTION_CF_EXEC_0_INST_VC_3_SIZE;
+ unsigned int inst_vc_2 : SQ_INSTRUCTION_CF_EXEC_0_INST_VC_2_SIZE;
+ unsigned int inst_vc_1 : SQ_INSTRUCTION_CF_EXEC_0_INST_VC_1_SIZE;
+ unsigned int inst_vc_0 : SQ_INSTRUCTION_CF_EXEC_0_INST_VC_0_SIZE;
+ unsigned int inst_serial_5 : SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_5_SIZE;
+ unsigned int inst_type_5 : SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_5_SIZE;
+ unsigned int inst_serial_4 : SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_4_SIZE;
+ unsigned int inst_type_4 : SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_4_SIZE;
+ unsigned int inst_serial_3 : SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_3_SIZE;
+ unsigned int inst_type_3 : SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_3_SIZE;
+ unsigned int inst_serial_2 : SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_2_SIZE;
+ unsigned int inst_type_2 : SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_2_SIZE;
+ unsigned int inst_serial_1 : SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_1_SIZE;
+ unsigned int inst_type_1 : SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_1_SIZE;
+ unsigned int inst_serial_0 : SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_0_SIZE;
+ unsigned int inst_type_0 : SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_0_SIZE;
+ unsigned int yield : SQ_INSTRUCTION_CF_EXEC_0_YIELD_SIZE;
+ unsigned int count : SQ_INSTRUCTION_CF_EXEC_0_COUNT_SIZE;
+ unsigned int reserved : SQ_INSTRUCTION_CF_EXEC_0_RESERVED_SIZE;
+ unsigned int address : SQ_INSTRUCTION_CF_EXEC_0_ADDRESS_SIZE;
+ } sq_instruction_cf_exec_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_cf_exec_0_t f;
+} sq_instruction_cf_exec_0_u;
+
+
+/*
+ * SQ_INSTRUCTION_CF_EXEC_1 struct
+ */
+
+#define SQ_INSTRUCTION_CF_EXEC_1_INST_VC_4_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_1_INST_VC_5_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_1_BOOL_ADDR_SIZE 8
+#define SQ_INSTRUCTION_CF_EXEC_1_CONDITION_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_MODE_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_1_OPCODE_SIZE 4
+#define SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_SIZE 9
+#define SQ_INSTRUCTION_CF_EXEC_1_RESERVED_SIZE 3
+#define SQ_INSTRUCTION_CF_EXEC_1_COUNT_SIZE 3
+#define SQ_INSTRUCTION_CF_EXEC_1_YIELD_SIZE 1
+
+#define SQ_INSTRUCTION_CF_EXEC_1_INST_VC_4_SHIFT 0
+#define SQ_INSTRUCTION_CF_EXEC_1_INST_VC_5_SHIFT 1
+#define SQ_INSTRUCTION_CF_EXEC_1_BOOL_ADDR_SHIFT 2
+#define SQ_INSTRUCTION_CF_EXEC_1_CONDITION_SHIFT 10
+#define SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_MODE_SHIFT 11
+#define SQ_INSTRUCTION_CF_EXEC_1_OPCODE_SHIFT 12
+#define SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_SHIFT 16
+#define SQ_INSTRUCTION_CF_EXEC_1_RESERVED_SHIFT 25
+#define SQ_INSTRUCTION_CF_EXEC_1_COUNT_SHIFT 28
+#define SQ_INSTRUCTION_CF_EXEC_1_YIELD_SHIFT 31
+
+#define SQ_INSTRUCTION_CF_EXEC_1_INST_VC_4_MASK 0x00000001
+#define SQ_INSTRUCTION_CF_EXEC_1_INST_VC_5_MASK 0x00000002
+#define SQ_INSTRUCTION_CF_EXEC_1_BOOL_ADDR_MASK 0x000003fc
+#define SQ_INSTRUCTION_CF_EXEC_1_CONDITION_MASK 0x00000400
+#define SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_MODE_MASK 0x00000800
+#define SQ_INSTRUCTION_CF_EXEC_1_OPCODE_MASK 0x0000f000
+#define SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_MASK 0x01ff0000
+#define SQ_INSTRUCTION_CF_EXEC_1_RESERVED_MASK 0x0e000000
+#define SQ_INSTRUCTION_CF_EXEC_1_COUNT_MASK 0x70000000
+#define SQ_INSTRUCTION_CF_EXEC_1_YIELD_MASK 0x80000000
+
+#define SQ_INSTRUCTION_CF_EXEC_1_MASK \
+ (SQ_INSTRUCTION_CF_EXEC_1_INST_VC_4_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_1_INST_VC_5_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_1_BOOL_ADDR_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_1_CONDITION_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_MODE_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_1_OPCODE_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_1_RESERVED_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_1_COUNT_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_1_YIELD_MASK)
+
+#define SQ_INSTRUCTION_CF_EXEC_1(inst_vc_4, inst_vc_5, bool_addr, condition, address_mode, opcode, address, reserved, count, yield) \
+ ((inst_vc_4 << SQ_INSTRUCTION_CF_EXEC_1_INST_VC_4_SHIFT) | \
+ (inst_vc_5 << SQ_INSTRUCTION_CF_EXEC_1_INST_VC_5_SHIFT) | \
+ (bool_addr << SQ_INSTRUCTION_CF_EXEC_1_BOOL_ADDR_SHIFT) | \
+ (condition << SQ_INSTRUCTION_CF_EXEC_1_CONDITION_SHIFT) | \
+ (address_mode << SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_MODE_SHIFT) | \
+ (opcode << SQ_INSTRUCTION_CF_EXEC_1_OPCODE_SHIFT) | \
+ (address << SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_SHIFT) | \
+ (reserved << SQ_INSTRUCTION_CF_EXEC_1_RESERVED_SHIFT) | \
+ (count << SQ_INSTRUCTION_CF_EXEC_1_COUNT_SHIFT) | \
+ (yield << SQ_INSTRUCTION_CF_EXEC_1_YIELD_SHIFT))
+
+#define SQ_INSTRUCTION_CF_EXEC_1_GET_INST_VC_4(sq_instruction_cf_exec_1) \
+ ((sq_instruction_cf_exec_1 & SQ_INSTRUCTION_CF_EXEC_1_INST_VC_4_MASK) >> SQ_INSTRUCTION_CF_EXEC_1_INST_VC_4_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_1_GET_INST_VC_5(sq_instruction_cf_exec_1) \
+ ((sq_instruction_cf_exec_1 & SQ_INSTRUCTION_CF_EXEC_1_INST_VC_5_MASK) >> SQ_INSTRUCTION_CF_EXEC_1_INST_VC_5_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_1_GET_BOOL_ADDR(sq_instruction_cf_exec_1) \
+ ((sq_instruction_cf_exec_1 & SQ_INSTRUCTION_CF_EXEC_1_BOOL_ADDR_MASK) >> SQ_INSTRUCTION_CF_EXEC_1_BOOL_ADDR_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_1_GET_CONDITION(sq_instruction_cf_exec_1) \
+ ((sq_instruction_cf_exec_1 & SQ_INSTRUCTION_CF_EXEC_1_CONDITION_MASK) >> SQ_INSTRUCTION_CF_EXEC_1_CONDITION_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_1_GET_ADDRESS_MODE(sq_instruction_cf_exec_1) \
+ ((sq_instruction_cf_exec_1 & SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_MODE_MASK) >> SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_MODE_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_1_GET_OPCODE(sq_instruction_cf_exec_1) \
+ ((sq_instruction_cf_exec_1 & SQ_INSTRUCTION_CF_EXEC_1_OPCODE_MASK) >> SQ_INSTRUCTION_CF_EXEC_1_OPCODE_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_1_GET_ADDRESS(sq_instruction_cf_exec_1) \
+ ((sq_instruction_cf_exec_1 & SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_MASK) >> SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_1_GET_RESERVED(sq_instruction_cf_exec_1) \
+ ((sq_instruction_cf_exec_1 & SQ_INSTRUCTION_CF_EXEC_1_RESERVED_MASK) >> SQ_INSTRUCTION_CF_EXEC_1_RESERVED_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_1_GET_COUNT(sq_instruction_cf_exec_1) \
+ ((sq_instruction_cf_exec_1 & SQ_INSTRUCTION_CF_EXEC_1_COUNT_MASK) >> SQ_INSTRUCTION_CF_EXEC_1_COUNT_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_1_GET_YIELD(sq_instruction_cf_exec_1) \
+ ((sq_instruction_cf_exec_1 & SQ_INSTRUCTION_CF_EXEC_1_YIELD_MASK) >> SQ_INSTRUCTION_CF_EXEC_1_YIELD_SHIFT)
+
+#define SQ_INSTRUCTION_CF_EXEC_1_SET_INST_VC_4(sq_instruction_cf_exec_1_reg, inst_vc_4) \
+ sq_instruction_cf_exec_1_reg = (sq_instruction_cf_exec_1_reg & ~SQ_INSTRUCTION_CF_EXEC_1_INST_VC_4_MASK) | (inst_vc_4 << SQ_INSTRUCTION_CF_EXEC_1_INST_VC_4_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_1_SET_INST_VC_5(sq_instruction_cf_exec_1_reg, inst_vc_5) \
+ sq_instruction_cf_exec_1_reg = (sq_instruction_cf_exec_1_reg & ~SQ_INSTRUCTION_CF_EXEC_1_INST_VC_5_MASK) | (inst_vc_5 << SQ_INSTRUCTION_CF_EXEC_1_INST_VC_5_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_1_SET_BOOL_ADDR(sq_instruction_cf_exec_1_reg, bool_addr) \
+ sq_instruction_cf_exec_1_reg = (sq_instruction_cf_exec_1_reg & ~SQ_INSTRUCTION_CF_EXEC_1_BOOL_ADDR_MASK) | (bool_addr << SQ_INSTRUCTION_CF_EXEC_1_BOOL_ADDR_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_1_SET_CONDITION(sq_instruction_cf_exec_1_reg, condition) \
+ sq_instruction_cf_exec_1_reg = (sq_instruction_cf_exec_1_reg & ~SQ_INSTRUCTION_CF_EXEC_1_CONDITION_MASK) | (condition << SQ_INSTRUCTION_CF_EXEC_1_CONDITION_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_1_SET_ADDRESS_MODE(sq_instruction_cf_exec_1_reg, address_mode) \
+ sq_instruction_cf_exec_1_reg = (sq_instruction_cf_exec_1_reg & ~SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_MODE_MASK) | (address_mode << SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_MODE_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_1_SET_OPCODE(sq_instruction_cf_exec_1_reg, opcode) \
+ sq_instruction_cf_exec_1_reg = (sq_instruction_cf_exec_1_reg & ~SQ_INSTRUCTION_CF_EXEC_1_OPCODE_MASK) | (opcode << SQ_INSTRUCTION_CF_EXEC_1_OPCODE_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_1_SET_ADDRESS(sq_instruction_cf_exec_1_reg, address) \
+ sq_instruction_cf_exec_1_reg = (sq_instruction_cf_exec_1_reg & ~SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_MASK) | (address << SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_1_SET_RESERVED(sq_instruction_cf_exec_1_reg, reserved) \
+ sq_instruction_cf_exec_1_reg = (sq_instruction_cf_exec_1_reg & ~SQ_INSTRUCTION_CF_EXEC_1_RESERVED_MASK) | (reserved << SQ_INSTRUCTION_CF_EXEC_1_RESERVED_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_1_SET_COUNT(sq_instruction_cf_exec_1_reg, count) \
+ sq_instruction_cf_exec_1_reg = (sq_instruction_cf_exec_1_reg & ~SQ_INSTRUCTION_CF_EXEC_1_COUNT_MASK) | (count << SQ_INSTRUCTION_CF_EXEC_1_COUNT_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_1_SET_YIELD(sq_instruction_cf_exec_1_reg, yield) \
+ sq_instruction_cf_exec_1_reg = (sq_instruction_cf_exec_1_reg & ~SQ_INSTRUCTION_CF_EXEC_1_YIELD_MASK) | (yield << SQ_INSTRUCTION_CF_EXEC_1_YIELD_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_exec_1_t {
+ unsigned int inst_vc_4 : SQ_INSTRUCTION_CF_EXEC_1_INST_VC_4_SIZE;
+ unsigned int inst_vc_5 : SQ_INSTRUCTION_CF_EXEC_1_INST_VC_5_SIZE;
+ unsigned int bool_addr : SQ_INSTRUCTION_CF_EXEC_1_BOOL_ADDR_SIZE;
+ unsigned int condition : SQ_INSTRUCTION_CF_EXEC_1_CONDITION_SIZE;
+ unsigned int address_mode : SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_MODE_SIZE;
+ unsigned int opcode : SQ_INSTRUCTION_CF_EXEC_1_OPCODE_SIZE;
+ unsigned int address : SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_SIZE;
+ unsigned int reserved : SQ_INSTRUCTION_CF_EXEC_1_RESERVED_SIZE;
+ unsigned int count : SQ_INSTRUCTION_CF_EXEC_1_COUNT_SIZE;
+ unsigned int yield : SQ_INSTRUCTION_CF_EXEC_1_YIELD_SIZE;
+ } sq_instruction_cf_exec_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_exec_1_t {
+ unsigned int yield : SQ_INSTRUCTION_CF_EXEC_1_YIELD_SIZE;
+ unsigned int count : SQ_INSTRUCTION_CF_EXEC_1_COUNT_SIZE;
+ unsigned int reserved : SQ_INSTRUCTION_CF_EXEC_1_RESERVED_SIZE;
+ unsigned int address : SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_SIZE;
+ unsigned int opcode : SQ_INSTRUCTION_CF_EXEC_1_OPCODE_SIZE;
+ unsigned int address_mode : SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_MODE_SIZE;
+ unsigned int condition : SQ_INSTRUCTION_CF_EXEC_1_CONDITION_SIZE;
+ unsigned int bool_addr : SQ_INSTRUCTION_CF_EXEC_1_BOOL_ADDR_SIZE;
+ unsigned int inst_vc_5 : SQ_INSTRUCTION_CF_EXEC_1_INST_VC_5_SIZE;
+ unsigned int inst_vc_4 : SQ_INSTRUCTION_CF_EXEC_1_INST_VC_4_SIZE;
+ } sq_instruction_cf_exec_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_cf_exec_1_t f;
+} sq_instruction_cf_exec_1_u;
+
+
+/*
+ * SQ_INSTRUCTION_CF_EXEC_2 struct
+ */
+
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_0_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_0_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_1_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_1_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_2_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_2_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_3_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_3_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_4_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_4_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_5_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_5_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_VC_0_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_VC_1_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_VC_2_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_VC_3_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_VC_4_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_VC_5_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_BOOL_ADDR_SIZE 8
+#define SQ_INSTRUCTION_CF_EXEC_2_CONDITION_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_ADDRESS_MODE_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_OPCODE_SIZE 4
+
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_0_SHIFT 0
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_0_SHIFT 1
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_1_SHIFT 2
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_1_SHIFT 3
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_2_SHIFT 4
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_2_SHIFT 5
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_3_SHIFT 6
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_3_SHIFT 7
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_4_SHIFT 8
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_4_SHIFT 9
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_5_SHIFT 10
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_5_SHIFT 11
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_VC_0_SHIFT 12
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_VC_1_SHIFT 13
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_VC_2_SHIFT 14
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_VC_3_SHIFT 15
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_VC_4_SHIFT 16
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_VC_5_SHIFT 17
+#define SQ_INSTRUCTION_CF_EXEC_2_BOOL_ADDR_SHIFT 18
+#define SQ_INSTRUCTION_CF_EXEC_2_CONDITION_SHIFT 26
+#define SQ_INSTRUCTION_CF_EXEC_2_ADDRESS_MODE_SHIFT 27
+#define SQ_INSTRUCTION_CF_EXEC_2_OPCODE_SHIFT 28
+
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_0_MASK 0x00000001
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_0_MASK 0x00000002
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_1_MASK 0x00000004
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_1_MASK 0x00000008
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_2_MASK 0x00000010
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_2_MASK 0x00000020
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_3_MASK 0x00000040
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_3_MASK 0x00000080
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_4_MASK 0x00000100
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_4_MASK 0x00000200
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_5_MASK 0x00000400
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_5_MASK 0x00000800
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_VC_0_MASK 0x00001000
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_VC_1_MASK 0x00002000
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_VC_2_MASK 0x00004000
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_VC_3_MASK 0x00008000
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_VC_4_MASK 0x00010000
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_VC_5_MASK 0x00020000
+#define SQ_INSTRUCTION_CF_EXEC_2_BOOL_ADDR_MASK 0x03fc0000
+#define SQ_INSTRUCTION_CF_EXEC_2_CONDITION_MASK 0x04000000
+#define SQ_INSTRUCTION_CF_EXEC_2_ADDRESS_MODE_MASK 0x08000000
+#define SQ_INSTRUCTION_CF_EXEC_2_OPCODE_MASK 0xf0000000
+
+#define SQ_INSTRUCTION_CF_EXEC_2_MASK \
+ (SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_0_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_0_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_1_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_1_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_2_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_2_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_3_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_3_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_4_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_4_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_5_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_5_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_INST_VC_0_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_INST_VC_1_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_INST_VC_2_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_INST_VC_3_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_INST_VC_4_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_INST_VC_5_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_BOOL_ADDR_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_CONDITION_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_ADDRESS_MODE_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_OPCODE_MASK)
+
+#define SQ_INSTRUCTION_CF_EXEC_2(inst_type_0, inst_serial_0, inst_type_1, inst_serial_1, inst_type_2, inst_serial_2, inst_type_3, inst_serial_3, inst_type_4, inst_serial_4, inst_type_5, inst_serial_5, inst_vc_0, inst_vc_1, inst_vc_2, inst_vc_3, inst_vc_4, inst_vc_5, bool_addr, condition, address_mode, opcode) \
+ ((inst_type_0 << SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_0_SHIFT) | \
+ (inst_serial_0 << SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_0_SHIFT) | \
+ (inst_type_1 << SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_1_SHIFT) | \
+ (inst_serial_1 << SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_1_SHIFT) | \
+ (inst_type_2 << SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_2_SHIFT) | \
+ (inst_serial_2 << SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_2_SHIFT) | \
+ (inst_type_3 << SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_3_SHIFT) | \
+ (inst_serial_3 << SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_3_SHIFT) | \
+ (inst_type_4 << SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_4_SHIFT) | \
+ (inst_serial_4 << SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_4_SHIFT) | \
+ (inst_type_5 << SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_5_SHIFT) | \
+ (inst_serial_5 << SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_5_SHIFT) | \
+ (inst_vc_0 << SQ_INSTRUCTION_CF_EXEC_2_INST_VC_0_SHIFT) | \
+ (inst_vc_1 << SQ_INSTRUCTION_CF_EXEC_2_INST_VC_1_SHIFT) | \
+ (inst_vc_2 << SQ_INSTRUCTION_CF_EXEC_2_INST_VC_2_SHIFT) | \
+ (inst_vc_3 << SQ_INSTRUCTION_CF_EXEC_2_INST_VC_3_SHIFT) | \
+ (inst_vc_4 << SQ_INSTRUCTION_CF_EXEC_2_INST_VC_4_SHIFT) | \
+ (inst_vc_5 << SQ_INSTRUCTION_CF_EXEC_2_INST_VC_5_SHIFT) | \
+ (bool_addr << SQ_INSTRUCTION_CF_EXEC_2_BOOL_ADDR_SHIFT) | \
+ (condition << SQ_INSTRUCTION_CF_EXEC_2_CONDITION_SHIFT) | \
+ (address_mode << SQ_INSTRUCTION_CF_EXEC_2_ADDRESS_MODE_SHIFT) | \
+ (opcode << SQ_INSTRUCTION_CF_EXEC_2_OPCODE_SHIFT))
+
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_INST_TYPE_0(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_0_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_0_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_INST_SERIAL_0(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_0_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_0_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_INST_TYPE_1(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_1_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_1_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_INST_SERIAL_1(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_1_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_1_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_INST_TYPE_2(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_2_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_2_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_INST_SERIAL_2(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_2_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_2_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_INST_TYPE_3(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_3_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_3_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_INST_SERIAL_3(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_3_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_3_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_INST_TYPE_4(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_4_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_4_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_INST_SERIAL_4(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_4_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_4_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_INST_TYPE_5(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_5_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_5_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_INST_SERIAL_5(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_5_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_5_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_INST_VC_0(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_INST_VC_0_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_INST_VC_0_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_INST_VC_1(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_INST_VC_1_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_INST_VC_1_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_INST_VC_2(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_INST_VC_2_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_INST_VC_2_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_INST_VC_3(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_INST_VC_3_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_INST_VC_3_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_INST_VC_4(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_INST_VC_4_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_INST_VC_4_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_INST_VC_5(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_INST_VC_5_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_INST_VC_5_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_BOOL_ADDR(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_BOOL_ADDR_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_BOOL_ADDR_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_CONDITION(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_CONDITION_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_CONDITION_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_ADDRESS_MODE(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_ADDRESS_MODE_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_ADDRESS_MODE_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_OPCODE(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_OPCODE_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_OPCODE_SHIFT)
+
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_INST_TYPE_0(sq_instruction_cf_exec_2_reg, inst_type_0) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_0_MASK) | (inst_type_0 << SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_0_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_INST_SERIAL_0(sq_instruction_cf_exec_2_reg, inst_serial_0) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_0_MASK) | (inst_serial_0 << SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_0_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_INST_TYPE_1(sq_instruction_cf_exec_2_reg, inst_type_1) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_1_MASK) | (inst_type_1 << SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_1_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_INST_SERIAL_1(sq_instruction_cf_exec_2_reg, inst_serial_1) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_1_MASK) | (inst_serial_1 << SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_1_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_INST_TYPE_2(sq_instruction_cf_exec_2_reg, inst_type_2) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_2_MASK) | (inst_type_2 << SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_2_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_INST_SERIAL_2(sq_instruction_cf_exec_2_reg, inst_serial_2) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_2_MASK) | (inst_serial_2 << SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_2_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_INST_TYPE_3(sq_instruction_cf_exec_2_reg, inst_type_3) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_3_MASK) | (inst_type_3 << SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_3_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_INST_SERIAL_3(sq_instruction_cf_exec_2_reg, inst_serial_3) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_3_MASK) | (inst_serial_3 << SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_3_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_INST_TYPE_4(sq_instruction_cf_exec_2_reg, inst_type_4) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_4_MASK) | (inst_type_4 << SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_4_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_INST_SERIAL_4(sq_instruction_cf_exec_2_reg, inst_serial_4) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_4_MASK) | (inst_serial_4 << SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_4_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_INST_TYPE_5(sq_instruction_cf_exec_2_reg, inst_type_5) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_5_MASK) | (inst_type_5 << SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_5_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_INST_SERIAL_5(sq_instruction_cf_exec_2_reg, inst_serial_5) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_5_MASK) | (inst_serial_5 << SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_5_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_INST_VC_0(sq_instruction_cf_exec_2_reg, inst_vc_0) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_INST_VC_0_MASK) | (inst_vc_0 << SQ_INSTRUCTION_CF_EXEC_2_INST_VC_0_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_INST_VC_1(sq_instruction_cf_exec_2_reg, inst_vc_1) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_INST_VC_1_MASK) | (inst_vc_1 << SQ_INSTRUCTION_CF_EXEC_2_INST_VC_1_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_INST_VC_2(sq_instruction_cf_exec_2_reg, inst_vc_2) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_INST_VC_2_MASK) | (inst_vc_2 << SQ_INSTRUCTION_CF_EXEC_2_INST_VC_2_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_INST_VC_3(sq_instruction_cf_exec_2_reg, inst_vc_3) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_INST_VC_3_MASK) | (inst_vc_3 << SQ_INSTRUCTION_CF_EXEC_2_INST_VC_3_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_INST_VC_4(sq_instruction_cf_exec_2_reg, inst_vc_4) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_INST_VC_4_MASK) | (inst_vc_4 << SQ_INSTRUCTION_CF_EXEC_2_INST_VC_4_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_INST_VC_5(sq_instruction_cf_exec_2_reg, inst_vc_5) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_INST_VC_5_MASK) | (inst_vc_5 << SQ_INSTRUCTION_CF_EXEC_2_INST_VC_5_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_BOOL_ADDR(sq_instruction_cf_exec_2_reg, bool_addr) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_BOOL_ADDR_MASK) | (bool_addr << SQ_INSTRUCTION_CF_EXEC_2_BOOL_ADDR_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_CONDITION(sq_instruction_cf_exec_2_reg, condition) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_CONDITION_MASK) | (condition << SQ_INSTRUCTION_CF_EXEC_2_CONDITION_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_ADDRESS_MODE(sq_instruction_cf_exec_2_reg, address_mode) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_ADDRESS_MODE_MASK) | (address_mode << SQ_INSTRUCTION_CF_EXEC_2_ADDRESS_MODE_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_OPCODE(sq_instruction_cf_exec_2_reg, opcode) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_OPCODE_MASK) | (opcode << SQ_INSTRUCTION_CF_EXEC_2_OPCODE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_exec_2_t {
+ unsigned int inst_type_0 : SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_0_SIZE;
+ unsigned int inst_serial_0 : SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_0_SIZE;
+ unsigned int inst_type_1 : SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_1_SIZE;
+ unsigned int inst_serial_1 : SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_1_SIZE;
+ unsigned int inst_type_2 : SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_2_SIZE;
+ unsigned int inst_serial_2 : SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_2_SIZE;
+ unsigned int inst_type_3 : SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_3_SIZE;
+ unsigned int inst_serial_3 : SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_3_SIZE;
+ unsigned int inst_type_4 : SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_4_SIZE;
+ unsigned int inst_serial_4 : SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_4_SIZE;
+ unsigned int inst_type_5 : SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_5_SIZE;
+ unsigned int inst_serial_5 : SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_5_SIZE;
+ unsigned int inst_vc_0 : SQ_INSTRUCTION_CF_EXEC_2_INST_VC_0_SIZE;
+ unsigned int inst_vc_1 : SQ_INSTRUCTION_CF_EXEC_2_INST_VC_1_SIZE;
+ unsigned int inst_vc_2 : SQ_INSTRUCTION_CF_EXEC_2_INST_VC_2_SIZE;
+ unsigned int inst_vc_3 : SQ_INSTRUCTION_CF_EXEC_2_INST_VC_3_SIZE;
+ unsigned int inst_vc_4 : SQ_INSTRUCTION_CF_EXEC_2_INST_VC_4_SIZE;
+ unsigned int inst_vc_5 : SQ_INSTRUCTION_CF_EXEC_2_INST_VC_5_SIZE;
+ unsigned int bool_addr : SQ_INSTRUCTION_CF_EXEC_2_BOOL_ADDR_SIZE;
+ unsigned int condition : SQ_INSTRUCTION_CF_EXEC_2_CONDITION_SIZE;
+ unsigned int address_mode : SQ_INSTRUCTION_CF_EXEC_2_ADDRESS_MODE_SIZE;
+ unsigned int opcode : SQ_INSTRUCTION_CF_EXEC_2_OPCODE_SIZE;
+ } sq_instruction_cf_exec_2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_exec_2_t {
+ unsigned int opcode : SQ_INSTRUCTION_CF_EXEC_2_OPCODE_SIZE;
+ unsigned int address_mode : SQ_INSTRUCTION_CF_EXEC_2_ADDRESS_MODE_SIZE;
+ unsigned int condition : SQ_INSTRUCTION_CF_EXEC_2_CONDITION_SIZE;
+ unsigned int bool_addr : SQ_INSTRUCTION_CF_EXEC_2_BOOL_ADDR_SIZE;
+ unsigned int inst_vc_5 : SQ_INSTRUCTION_CF_EXEC_2_INST_VC_5_SIZE;
+ unsigned int inst_vc_4 : SQ_INSTRUCTION_CF_EXEC_2_INST_VC_4_SIZE;
+ unsigned int inst_vc_3 : SQ_INSTRUCTION_CF_EXEC_2_INST_VC_3_SIZE;
+ unsigned int inst_vc_2 : SQ_INSTRUCTION_CF_EXEC_2_INST_VC_2_SIZE;
+ unsigned int inst_vc_1 : SQ_INSTRUCTION_CF_EXEC_2_INST_VC_1_SIZE;
+ unsigned int inst_vc_0 : SQ_INSTRUCTION_CF_EXEC_2_INST_VC_0_SIZE;
+ unsigned int inst_serial_5 : SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_5_SIZE;
+ unsigned int inst_type_5 : SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_5_SIZE;
+ unsigned int inst_serial_4 : SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_4_SIZE;
+ unsigned int inst_type_4 : SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_4_SIZE;
+ unsigned int inst_serial_3 : SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_3_SIZE;
+ unsigned int inst_type_3 : SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_3_SIZE;
+ unsigned int inst_serial_2 : SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_2_SIZE;
+ unsigned int inst_type_2 : SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_2_SIZE;
+ unsigned int inst_serial_1 : SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_1_SIZE;
+ unsigned int inst_type_1 : SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_1_SIZE;
+ unsigned int inst_serial_0 : SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_0_SIZE;
+ unsigned int inst_type_0 : SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_0_SIZE;
+ } sq_instruction_cf_exec_2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_cf_exec_2_t f;
+} sq_instruction_cf_exec_2_u;
+
+
+/*
+ * SQ_INSTRUCTION_CF_LOOP_0 struct
+ */
+
+#define SQ_INSTRUCTION_CF_LOOP_0_ADDRESS_SIZE 10
+#define SQ_INSTRUCTION_CF_LOOP_0_RESERVED_0_SIZE 6
+#define SQ_INSTRUCTION_CF_LOOP_0_LOOP_ID_SIZE 5
+#define SQ_INSTRUCTION_CF_LOOP_0_RESERVED_1_SIZE 11
+
+#define SQ_INSTRUCTION_CF_LOOP_0_ADDRESS_SHIFT 0
+#define SQ_INSTRUCTION_CF_LOOP_0_RESERVED_0_SHIFT 10
+#define SQ_INSTRUCTION_CF_LOOP_0_LOOP_ID_SHIFT 16
+#define SQ_INSTRUCTION_CF_LOOP_0_RESERVED_1_SHIFT 21
+
+#define SQ_INSTRUCTION_CF_LOOP_0_ADDRESS_MASK 0x000003ff
+#define SQ_INSTRUCTION_CF_LOOP_0_RESERVED_0_MASK 0x0000fc00
+#define SQ_INSTRUCTION_CF_LOOP_0_LOOP_ID_MASK 0x001f0000
+#define SQ_INSTRUCTION_CF_LOOP_0_RESERVED_1_MASK 0xffe00000
+
+#define SQ_INSTRUCTION_CF_LOOP_0_MASK \
+ (SQ_INSTRUCTION_CF_LOOP_0_ADDRESS_MASK | \
+ SQ_INSTRUCTION_CF_LOOP_0_RESERVED_0_MASK | \
+ SQ_INSTRUCTION_CF_LOOP_0_LOOP_ID_MASK | \
+ SQ_INSTRUCTION_CF_LOOP_0_RESERVED_1_MASK)
+
+#define SQ_INSTRUCTION_CF_LOOP_0(address, reserved_0, loop_id, reserved_1) \
+ ((address << SQ_INSTRUCTION_CF_LOOP_0_ADDRESS_SHIFT) | \
+ (reserved_0 << SQ_INSTRUCTION_CF_LOOP_0_RESERVED_0_SHIFT) | \
+ (loop_id << SQ_INSTRUCTION_CF_LOOP_0_LOOP_ID_SHIFT) | \
+ (reserved_1 << SQ_INSTRUCTION_CF_LOOP_0_RESERVED_1_SHIFT))
+
+#define SQ_INSTRUCTION_CF_LOOP_0_GET_ADDRESS(sq_instruction_cf_loop_0) \
+ ((sq_instruction_cf_loop_0 & SQ_INSTRUCTION_CF_LOOP_0_ADDRESS_MASK) >> SQ_INSTRUCTION_CF_LOOP_0_ADDRESS_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_0_GET_RESERVED_0(sq_instruction_cf_loop_0) \
+ ((sq_instruction_cf_loop_0 & SQ_INSTRUCTION_CF_LOOP_0_RESERVED_0_MASK) >> SQ_INSTRUCTION_CF_LOOP_0_RESERVED_0_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_0_GET_LOOP_ID(sq_instruction_cf_loop_0) \
+ ((sq_instruction_cf_loop_0 & SQ_INSTRUCTION_CF_LOOP_0_LOOP_ID_MASK) >> SQ_INSTRUCTION_CF_LOOP_0_LOOP_ID_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_0_GET_RESERVED_1(sq_instruction_cf_loop_0) \
+ ((sq_instruction_cf_loop_0 & SQ_INSTRUCTION_CF_LOOP_0_RESERVED_1_MASK) >> SQ_INSTRUCTION_CF_LOOP_0_RESERVED_1_SHIFT)
+
+#define SQ_INSTRUCTION_CF_LOOP_0_SET_ADDRESS(sq_instruction_cf_loop_0_reg, address) \
+ sq_instruction_cf_loop_0_reg = (sq_instruction_cf_loop_0_reg & ~SQ_INSTRUCTION_CF_LOOP_0_ADDRESS_MASK) | (address << SQ_INSTRUCTION_CF_LOOP_0_ADDRESS_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_0_SET_RESERVED_0(sq_instruction_cf_loop_0_reg, reserved_0) \
+ sq_instruction_cf_loop_0_reg = (sq_instruction_cf_loop_0_reg & ~SQ_INSTRUCTION_CF_LOOP_0_RESERVED_0_MASK) | (reserved_0 << SQ_INSTRUCTION_CF_LOOP_0_RESERVED_0_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_0_SET_LOOP_ID(sq_instruction_cf_loop_0_reg, loop_id) \
+ sq_instruction_cf_loop_0_reg = (sq_instruction_cf_loop_0_reg & ~SQ_INSTRUCTION_CF_LOOP_0_LOOP_ID_MASK) | (loop_id << SQ_INSTRUCTION_CF_LOOP_0_LOOP_ID_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_0_SET_RESERVED_1(sq_instruction_cf_loop_0_reg, reserved_1) \
+ sq_instruction_cf_loop_0_reg = (sq_instruction_cf_loop_0_reg & ~SQ_INSTRUCTION_CF_LOOP_0_RESERVED_1_MASK) | (reserved_1 << SQ_INSTRUCTION_CF_LOOP_0_RESERVED_1_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_loop_0_t {
+ unsigned int address : SQ_INSTRUCTION_CF_LOOP_0_ADDRESS_SIZE;
+ unsigned int reserved_0 : SQ_INSTRUCTION_CF_LOOP_0_RESERVED_0_SIZE;
+ unsigned int loop_id : SQ_INSTRUCTION_CF_LOOP_0_LOOP_ID_SIZE;
+ unsigned int reserved_1 : SQ_INSTRUCTION_CF_LOOP_0_RESERVED_1_SIZE;
+ } sq_instruction_cf_loop_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_loop_0_t {
+ unsigned int reserved_1 : SQ_INSTRUCTION_CF_LOOP_0_RESERVED_1_SIZE;
+ unsigned int loop_id : SQ_INSTRUCTION_CF_LOOP_0_LOOP_ID_SIZE;
+ unsigned int reserved_0 : SQ_INSTRUCTION_CF_LOOP_0_RESERVED_0_SIZE;
+ unsigned int address : SQ_INSTRUCTION_CF_LOOP_0_ADDRESS_SIZE;
+ } sq_instruction_cf_loop_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_cf_loop_0_t f;
+} sq_instruction_cf_loop_0_u;
+
+
+/*
+ * SQ_INSTRUCTION_CF_LOOP_1 struct
+ */
+
+#define SQ_INSTRUCTION_CF_LOOP_1_RESERVED_0_SIZE 11
+#define SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_MODE_SIZE 1
+#define SQ_INSTRUCTION_CF_LOOP_1_OPCODE_SIZE 4
+#define SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_SIZE 10
+#define SQ_INSTRUCTION_CF_LOOP_1_RESERVED_1_SIZE 6
+
+#define SQ_INSTRUCTION_CF_LOOP_1_RESERVED_0_SHIFT 0
+#define SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_MODE_SHIFT 11
+#define SQ_INSTRUCTION_CF_LOOP_1_OPCODE_SHIFT 12
+#define SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_SHIFT 16
+#define SQ_INSTRUCTION_CF_LOOP_1_RESERVED_1_SHIFT 26
+
+#define SQ_INSTRUCTION_CF_LOOP_1_RESERVED_0_MASK 0x000007ff
+#define SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_MODE_MASK 0x00000800
+#define SQ_INSTRUCTION_CF_LOOP_1_OPCODE_MASK 0x0000f000
+#define SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_MASK 0x03ff0000
+#define SQ_INSTRUCTION_CF_LOOP_1_RESERVED_1_MASK 0xfc000000
+
+#define SQ_INSTRUCTION_CF_LOOP_1_MASK \
+ (SQ_INSTRUCTION_CF_LOOP_1_RESERVED_0_MASK | \
+ SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_MODE_MASK | \
+ SQ_INSTRUCTION_CF_LOOP_1_OPCODE_MASK | \
+ SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_MASK | \
+ SQ_INSTRUCTION_CF_LOOP_1_RESERVED_1_MASK)
+
+#define SQ_INSTRUCTION_CF_LOOP_1(reserved_0, address_mode, opcode, address, reserved_1) \
+ ((reserved_0 << SQ_INSTRUCTION_CF_LOOP_1_RESERVED_0_SHIFT) | \
+ (address_mode << SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_MODE_SHIFT) | \
+ (opcode << SQ_INSTRUCTION_CF_LOOP_1_OPCODE_SHIFT) | \
+ (address << SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_SHIFT) | \
+ (reserved_1 << SQ_INSTRUCTION_CF_LOOP_1_RESERVED_1_SHIFT))
+
+#define SQ_INSTRUCTION_CF_LOOP_1_GET_RESERVED_0(sq_instruction_cf_loop_1) \
+ ((sq_instruction_cf_loop_1 & SQ_INSTRUCTION_CF_LOOP_1_RESERVED_0_MASK) >> SQ_INSTRUCTION_CF_LOOP_1_RESERVED_0_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_1_GET_ADDRESS_MODE(sq_instruction_cf_loop_1) \
+ ((sq_instruction_cf_loop_1 & SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_MODE_MASK) >> SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_MODE_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_1_GET_OPCODE(sq_instruction_cf_loop_1) \
+ ((sq_instruction_cf_loop_1 & SQ_INSTRUCTION_CF_LOOP_1_OPCODE_MASK) >> SQ_INSTRUCTION_CF_LOOP_1_OPCODE_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_1_GET_ADDRESS(sq_instruction_cf_loop_1) \
+ ((sq_instruction_cf_loop_1 & SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_MASK) >> SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_1_GET_RESERVED_1(sq_instruction_cf_loop_1) \
+ ((sq_instruction_cf_loop_1 & SQ_INSTRUCTION_CF_LOOP_1_RESERVED_1_MASK) >> SQ_INSTRUCTION_CF_LOOP_1_RESERVED_1_SHIFT)
+
+#define SQ_INSTRUCTION_CF_LOOP_1_SET_RESERVED_0(sq_instruction_cf_loop_1_reg, reserved_0) \
+ sq_instruction_cf_loop_1_reg = (sq_instruction_cf_loop_1_reg & ~SQ_INSTRUCTION_CF_LOOP_1_RESERVED_0_MASK) | (reserved_0 << SQ_INSTRUCTION_CF_LOOP_1_RESERVED_0_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_1_SET_ADDRESS_MODE(sq_instruction_cf_loop_1_reg, address_mode) \
+ sq_instruction_cf_loop_1_reg = (sq_instruction_cf_loop_1_reg & ~SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_MODE_MASK) | (address_mode << SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_MODE_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_1_SET_OPCODE(sq_instruction_cf_loop_1_reg, opcode) \
+ sq_instruction_cf_loop_1_reg = (sq_instruction_cf_loop_1_reg & ~SQ_INSTRUCTION_CF_LOOP_1_OPCODE_MASK) | (opcode << SQ_INSTRUCTION_CF_LOOP_1_OPCODE_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_1_SET_ADDRESS(sq_instruction_cf_loop_1_reg, address) \
+ sq_instruction_cf_loop_1_reg = (sq_instruction_cf_loop_1_reg & ~SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_MASK) | (address << SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_1_SET_RESERVED_1(sq_instruction_cf_loop_1_reg, reserved_1) \
+ sq_instruction_cf_loop_1_reg = (sq_instruction_cf_loop_1_reg & ~SQ_INSTRUCTION_CF_LOOP_1_RESERVED_1_MASK) | (reserved_1 << SQ_INSTRUCTION_CF_LOOP_1_RESERVED_1_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_loop_1_t {
+ unsigned int reserved_0 : SQ_INSTRUCTION_CF_LOOP_1_RESERVED_0_SIZE;
+ unsigned int address_mode : SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_MODE_SIZE;
+ unsigned int opcode : SQ_INSTRUCTION_CF_LOOP_1_OPCODE_SIZE;
+ unsigned int address : SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_SIZE;
+ unsigned int reserved_1 : SQ_INSTRUCTION_CF_LOOP_1_RESERVED_1_SIZE;
+ } sq_instruction_cf_loop_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_loop_1_t {
+ unsigned int reserved_1 : SQ_INSTRUCTION_CF_LOOP_1_RESERVED_1_SIZE;
+ unsigned int address : SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_SIZE;
+ unsigned int opcode : SQ_INSTRUCTION_CF_LOOP_1_OPCODE_SIZE;
+ unsigned int address_mode : SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_MODE_SIZE;
+ unsigned int reserved_0 : SQ_INSTRUCTION_CF_LOOP_1_RESERVED_0_SIZE;
+ } sq_instruction_cf_loop_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_cf_loop_1_t f;
+} sq_instruction_cf_loop_1_u;
+
+
+/*
+ * SQ_INSTRUCTION_CF_LOOP_2 struct
+ */
+
+#define SQ_INSTRUCTION_CF_LOOP_2_LOOP_ID_SIZE 5
+#define SQ_INSTRUCTION_CF_LOOP_2_RESERVED_SIZE 22
+#define SQ_INSTRUCTION_CF_LOOP_2_ADDRESS_MODE_SIZE 1
+#define SQ_INSTRUCTION_CF_LOOP_2_OPCODE_SIZE 4
+
+#define SQ_INSTRUCTION_CF_LOOP_2_LOOP_ID_SHIFT 0
+#define SQ_INSTRUCTION_CF_LOOP_2_RESERVED_SHIFT 5
+#define SQ_INSTRUCTION_CF_LOOP_2_ADDRESS_MODE_SHIFT 27
+#define SQ_INSTRUCTION_CF_LOOP_2_OPCODE_SHIFT 28
+
+#define SQ_INSTRUCTION_CF_LOOP_2_LOOP_ID_MASK 0x0000001f
+#define SQ_INSTRUCTION_CF_LOOP_2_RESERVED_MASK 0x07ffffe0
+#define SQ_INSTRUCTION_CF_LOOP_2_ADDRESS_MODE_MASK 0x08000000
+#define SQ_INSTRUCTION_CF_LOOP_2_OPCODE_MASK 0xf0000000
+
+#define SQ_INSTRUCTION_CF_LOOP_2_MASK \
+ (SQ_INSTRUCTION_CF_LOOP_2_LOOP_ID_MASK | \
+ SQ_INSTRUCTION_CF_LOOP_2_RESERVED_MASK | \
+ SQ_INSTRUCTION_CF_LOOP_2_ADDRESS_MODE_MASK | \
+ SQ_INSTRUCTION_CF_LOOP_2_OPCODE_MASK)
+
+#define SQ_INSTRUCTION_CF_LOOP_2(loop_id, reserved, address_mode, opcode) \
+ ((loop_id << SQ_INSTRUCTION_CF_LOOP_2_LOOP_ID_SHIFT) | \
+ (reserved << SQ_INSTRUCTION_CF_LOOP_2_RESERVED_SHIFT) | \
+ (address_mode << SQ_INSTRUCTION_CF_LOOP_2_ADDRESS_MODE_SHIFT) | \
+ (opcode << SQ_INSTRUCTION_CF_LOOP_2_OPCODE_SHIFT))
+
+#define SQ_INSTRUCTION_CF_LOOP_2_GET_LOOP_ID(sq_instruction_cf_loop_2) \
+ ((sq_instruction_cf_loop_2 & SQ_INSTRUCTION_CF_LOOP_2_LOOP_ID_MASK) >> SQ_INSTRUCTION_CF_LOOP_2_LOOP_ID_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_2_GET_RESERVED(sq_instruction_cf_loop_2) \
+ ((sq_instruction_cf_loop_2 & SQ_INSTRUCTION_CF_LOOP_2_RESERVED_MASK) >> SQ_INSTRUCTION_CF_LOOP_2_RESERVED_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_2_GET_ADDRESS_MODE(sq_instruction_cf_loop_2) \
+ ((sq_instruction_cf_loop_2 & SQ_INSTRUCTION_CF_LOOP_2_ADDRESS_MODE_MASK) >> SQ_INSTRUCTION_CF_LOOP_2_ADDRESS_MODE_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_2_GET_OPCODE(sq_instruction_cf_loop_2) \
+ ((sq_instruction_cf_loop_2 & SQ_INSTRUCTION_CF_LOOP_2_OPCODE_MASK) >> SQ_INSTRUCTION_CF_LOOP_2_OPCODE_SHIFT)
+
+#define SQ_INSTRUCTION_CF_LOOP_2_SET_LOOP_ID(sq_instruction_cf_loop_2_reg, loop_id) \
+ sq_instruction_cf_loop_2_reg = (sq_instruction_cf_loop_2_reg & ~SQ_INSTRUCTION_CF_LOOP_2_LOOP_ID_MASK) | (loop_id << SQ_INSTRUCTION_CF_LOOP_2_LOOP_ID_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_2_SET_RESERVED(sq_instruction_cf_loop_2_reg, reserved) \
+ sq_instruction_cf_loop_2_reg = (sq_instruction_cf_loop_2_reg & ~SQ_INSTRUCTION_CF_LOOP_2_RESERVED_MASK) | (reserved << SQ_INSTRUCTION_CF_LOOP_2_RESERVED_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_2_SET_ADDRESS_MODE(sq_instruction_cf_loop_2_reg, address_mode) \
+ sq_instruction_cf_loop_2_reg = (sq_instruction_cf_loop_2_reg & ~SQ_INSTRUCTION_CF_LOOP_2_ADDRESS_MODE_MASK) | (address_mode << SQ_INSTRUCTION_CF_LOOP_2_ADDRESS_MODE_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_2_SET_OPCODE(sq_instruction_cf_loop_2_reg, opcode) \
+ sq_instruction_cf_loop_2_reg = (sq_instruction_cf_loop_2_reg & ~SQ_INSTRUCTION_CF_LOOP_2_OPCODE_MASK) | (opcode << SQ_INSTRUCTION_CF_LOOP_2_OPCODE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_loop_2_t {
+ unsigned int loop_id : SQ_INSTRUCTION_CF_LOOP_2_LOOP_ID_SIZE;
+ unsigned int reserved : SQ_INSTRUCTION_CF_LOOP_2_RESERVED_SIZE;
+ unsigned int address_mode : SQ_INSTRUCTION_CF_LOOP_2_ADDRESS_MODE_SIZE;
+ unsigned int opcode : SQ_INSTRUCTION_CF_LOOP_2_OPCODE_SIZE;
+ } sq_instruction_cf_loop_2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_loop_2_t {
+ unsigned int opcode : SQ_INSTRUCTION_CF_LOOP_2_OPCODE_SIZE;
+ unsigned int address_mode : SQ_INSTRUCTION_CF_LOOP_2_ADDRESS_MODE_SIZE;
+ unsigned int reserved : SQ_INSTRUCTION_CF_LOOP_2_RESERVED_SIZE;
+ unsigned int loop_id : SQ_INSTRUCTION_CF_LOOP_2_LOOP_ID_SIZE;
+ } sq_instruction_cf_loop_2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_cf_loop_2_t f;
+} sq_instruction_cf_loop_2_u;
+
+
+/*
+ * SQ_INSTRUCTION_CF_JMP_CALL_0 struct
+ */
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_ADDRESS_SIZE 10
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_0_SIZE 3
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_FORCE_CALL_SIZE 1
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_PREDICATED_JMP_SIZE 1
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_1_SIZE 17
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_ADDRESS_SHIFT 0
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_0_SHIFT 10
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_FORCE_CALL_SHIFT 13
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_PREDICATED_JMP_SHIFT 14
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_1_SHIFT 15
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_ADDRESS_MASK 0x000003ff
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_0_MASK 0x00001c00
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_FORCE_CALL_MASK 0x00002000
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_PREDICATED_JMP_MASK 0x00004000
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_1_MASK 0xffff8000
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_MASK \
+ (SQ_INSTRUCTION_CF_JMP_CALL_0_ADDRESS_MASK | \
+ SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_0_MASK | \
+ SQ_INSTRUCTION_CF_JMP_CALL_0_FORCE_CALL_MASK | \
+ SQ_INSTRUCTION_CF_JMP_CALL_0_PREDICATED_JMP_MASK | \
+ SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_1_MASK)
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_0(address, reserved_0, force_call, predicated_jmp, reserved_1) \
+ ((address << SQ_INSTRUCTION_CF_JMP_CALL_0_ADDRESS_SHIFT) | \
+ (reserved_0 << SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_0_SHIFT) | \
+ (force_call << SQ_INSTRUCTION_CF_JMP_CALL_0_FORCE_CALL_SHIFT) | \
+ (predicated_jmp << SQ_INSTRUCTION_CF_JMP_CALL_0_PREDICATED_JMP_SHIFT) | \
+ (reserved_1 << SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_1_SHIFT))
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_GET_ADDRESS(sq_instruction_cf_jmp_call_0) \
+ ((sq_instruction_cf_jmp_call_0 & SQ_INSTRUCTION_CF_JMP_CALL_0_ADDRESS_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_0_ADDRESS_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_GET_RESERVED_0(sq_instruction_cf_jmp_call_0) \
+ ((sq_instruction_cf_jmp_call_0 & SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_0_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_0_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_GET_FORCE_CALL(sq_instruction_cf_jmp_call_0) \
+ ((sq_instruction_cf_jmp_call_0 & SQ_INSTRUCTION_CF_JMP_CALL_0_FORCE_CALL_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_0_FORCE_CALL_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_GET_PREDICATED_JMP(sq_instruction_cf_jmp_call_0) \
+ ((sq_instruction_cf_jmp_call_0 & SQ_INSTRUCTION_CF_JMP_CALL_0_PREDICATED_JMP_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_0_PREDICATED_JMP_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_GET_RESERVED_1(sq_instruction_cf_jmp_call_0) \
+ ((sq_instruction_cf_jmp_call_0 & SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_1_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_1_SHIFT)
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_SET_ADDRESS(sq_instruction_cf_jmp_call_0_reg, address) \
+ sq_instruction_cf_jmp_call_0_reg = (sq_instruction_cf_jmp_call_0_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_0_ADDRESS_MASK) | (address << SQ_INSTRUCTION_CF_JMP_CALL_0_ADDRESS_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_SET_RESERVED_0(sq_instruction_cf_jmp_call_0_reg, reserved_0) \
+ sq_instruction_cf_jmp_call_0_reg = (sq_instruction_cf_jmp_call_0_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_0_MASK) | (reserved_0 << SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_0_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_SET_FORCE_CALL(sq_instruction_cf_jmp_call_0_reg, force_call) \
+ sq_instruction_cf_jmp_call_0_reg = (sq_instruction_cf_jmp_call_0_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_0_FORCE_CALL_MASK) | (force_call << SQ_INSTRUCTION_CF_JMP_CALL_0_FORCE_CALL_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_SET_PREDICATED_JMP(sq_instruction_cf_jmp_call_0_reg, predicated_jmp) \
+ sq_instruction_cf_jmp_call_0_reg = (sq_instruction_cf_jmp_call_0_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_0_PREDICATED_JMP_MASK) | (predicated_jmp << SQ_INSTRUCTION_CF_JMP_CALL_0_PREDICATED_JMP_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_SET_RESERVED_1(sq_instruction_cf_jmp_call_0_reg, reserved_1) \
+ sq_instruction_cf_jmp_call_0_reg = (sq_instruction_cf_jmp_call_0_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_1_MASK) | (reserved_1 << SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_1_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_jmp_call_0_t {
+ unsigned int address : SQ_INSTRUCTION_CF_JMP_CALL_0_ADDRESS_SIZE;
+ unsigned int reserved_0 : SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_0_SIZE;
+ unsigned int force_call : SQ_INSTRUCTION_CF_JMP_CALL_0_FORCE_CALL_SIZE;
+ unsigned int predicated_jmp : SQ_INSTRUCTION_CF_JMP_CALL_0_PREDICATED_JMP_SIZE;
+ unsigned int reserved_1 : SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_1_SIZE;
+ } sq_instruction_cf_jmp_call_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_jmp_call_0_t {
+ unsigned int reserved_1 : SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_1_SIZE;
+ unsigned int predicated_jmp : SQ_INSTRUCTION_CF_JMP_CALL_0_PREDICATED_JMP_SIZE;
+ unsigned int force_call : SQ_INSTRUCTION_CF_JMP_CALL_0_FORCE_CALL_SIZE;
+ unsigned int reserved_0 : SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_0_SIZE;
+ unsigned int address : SQ_INSTRUCTION_CF_JMP_CALL_0_ADDRESS_SIZE;
+ } sq_instruction_cf_jmp_call_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_cf_jmp_call_0_t f;
+} sq_instruction_cf_jmp_call_0_u;
+
+
+/*
+ * SQ_INSTRUCTION_CF_JMP_CALL_1 struct
+ */
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_0_SIZE 1
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_DIRECTION_SIZE 1
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_BOOL_ADDR_SIZE 8
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_CONDITION_SIZE 1
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_MODE_SIZE 1
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_OPCODE_SIZE 4
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_SIZE 10
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_1_SIZE 3
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_FORCE_CALL_SIZE 1
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_2_SIZE 2
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_0_SHIFT 0
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_DIRECTION_SHIFT 1
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_BOOL_ADDR_SHIFT 2
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_CONDITION_SHIFT 10
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_MODE_SHIFT 11
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_OPCODE_SHIFT 12
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_SHIFT 16
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_1_SHIFT 26
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_FORCE_CALL_SHIFT 29
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_2_SHIFT 30
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_0_MASK 0x00000001
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_DIRECTION_MASK 0x00000002
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_BOOL_ADDR_MASK 0x000003fc
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_CONDITION_MASK 0x00000400
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_MODE_MASK 0x00000800
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_OPCODE_MASK 0x0000f000
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_MASK 0x03ff0000
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_1_MASK 0x1c000000
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_FORCE_CALL_MASK 0x20000000
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_2_MASK 0xc0000000
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_MASK \
+ (SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_0_MASK | \
+ SQ_INSTRUCTION_CF_JMP_CALL_1_DIRECTION_MASK | \
+ SQ_INSTRUCTION_CF_JMP_CALL_1_BOOL_ADDR_MASK | \
+ SQ_INSTRUCTION_CF_JMP_CALL_1_CONDITION_MASK | \
+ SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_MODE_MASK | \
+ SQ_INSTRUCTION_CF_JMP_CALL_1_OPCODE_MASK | \
+ SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_MASK | \
+ SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_1_MASK | \
+ SQ_INSTRUCTION_CF_JMP_CALL_1_FORCE_CALL_MASK | \
+ SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_2_MASK)
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_1(reserved_0, direction, bool_addr, condition, address_mode, opcode, address, reserved_1, force_call, reserved_2) \
+ ((reserved_0 << SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_0_SHIFT) | \
+ (direction << SQ_INSTRUCTION_CF_JMP_CALL_1_DIRECTION_SHIFT) | \
+ (bool_addr << SQ_INSTRUCTION_CF_JMP_CALL_1_BOOL_ADDR_SHIFT) | \
+ (condition << SQ_INSTRUCTION_CF_JMP_CALL_1_CONDITION_SHIFT) | \
+ (address_mode << SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_MODE_SHIFT) | \
+ (opcode << SQ_INSTRUCTION_CF_JMP_CALL_1_OPCODE_SHIFT) | \
+ (address << SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_SHIFT) | \
+ (reserved_1 << SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_1_SHIFT) | \
+ (force_call << SQ_INSTRUCTION_CF_JMP_CALL_1_FORCE_CALL_SHIFT) | \
+ (reserved_2 << SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_2_SHIFT))
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_GET_RESERVED_0(sq_instruction_cf_jmp_call_1) \
+ ((sq_instruction_cf_jmp_call_1 & SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_0_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_0_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_GET_DIRECTION(sq_instruction_cf_jmp_call_1) \
+ ((sq_instruction_cf_jmp_call_1 & SQ_INSTRUCTION_CF_JMP_CALL_1_DIRECTION_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_1_DIRECTION_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_GET_BOOL_ADDR(sq_instruction_cf_jmp_call_1) \
+ ((sq_instruction_cf_jmp_call_1 & SQ_INSTRUCTION_CF_JMP_CALL_1_BOOL_ADDR_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_1_BOOL_ADDR_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_GET_CONDITION(sq_instruction_cf_jmp_call_1) \
+ ((sq_instruction_cf_jmp_call_1 & SQ_INSTRUCTION_CF_JMP_CALL_1_CONDITION_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_1_CONDITION_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_GET_ADDRESS_MODE(sq_instruction_cf_jmp_call_1) \
+ ((sq_instruction_cf_jmp_call_1 & SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_MODE_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_MODE_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_GET_OPCODE(sq_instruction_cf_jmp_call_1) \
+ ((sq_instruction_cf_jmp_call_1 & SQ_INSTRUCTION_CF_JMP_CALL_1_OPCODE_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_1_OPCODE_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_GET_ADDRESS(sq_instruction_cf_jmp_call_1) \
+ ((sq_instruction_cf_jmp_call_1 & SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_GET_RESERVED_1(sq_instruction_cf_jmp_call_1) \
+ ((sq_instruction_cf_jmp_call_1 & SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_1_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_1_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_GET_FORCE_CALL(sq_instruction_cf_jmp_call_1) \
+ ((sq_instruction_cf_jmp_call_1 & SQ_INSTRUCTION_CF_JMP_CALL_1_FORCE_CALL_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_1_FORCE_CALL_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_GET_RESERVED_2(sq_instruction_cf_jmp_call_1) \
+ ((sq_instruction_cf_jmp_call_1 & SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_2_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_2_SHIFT)
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_SET_RESERVED_0(sq_instruction_cf_jmp_call_1_reg, reserved_0) \
+ sq_instruction_cf_jmp_call_1_reg = (sq_instruction_cf_jmp_call_1_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_0_MASK) | (reserved_0 << SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_0_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_SET_DIRECTION(sq_instruction_cf_jmp_call_1_reg, direction) \
+ sq_instruction_cf_jmp_call_1_reg = (sq_instruction_cf_jmp_call_1_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_1_DIRECTION_MASK) | (direction << SQ_INSTRUCTION_CF_JMP_CALL_1_DIRECTION_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_SET_BOOL_ADDR(sq_instruction_cf_jmp_call_1_reg, bool_addr) \
+ sq_instruction_cf_jmp_call_1_reg = (sq_instruction_cf_jmp_call_1_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_1_BOOL_ADDR_MASK) | (bool_addr << SQ_INSTRUCTION_CF_JMP_CALL_1_BOOL_ADDR_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_SET_CONDITION(sq_instruction_cf_jmp_call_1_reg, condition) \
+ sq_instruction_cf_jmp_call_1_reg = (sq_instruction_cf_jmp_call_1_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_1_CONDITION_MASK) | (condition << SQ_INSTRUCTION_CF_JMP_CALL_1_CONDITION_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_SET_ADDRESS_MODE(sq_instruction_cf_jmp_call_1_reg, address_mode) \
+ sq_instruction_cf_jmp_call_1_reg = (sq_instruction_cf_jmp_call_1_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_MODE_MASK) | (address_mode << SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_MODE_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_SET_OPCODE(sq_instruction_cf_jmp_call_1_reg, opcode) \
+ sq_instruction_cf_jmp_call_1_reg = (sq_instruction_cf_jmp_call_1_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_1_OPCODE_MASK) | (opcode << SQ_INSTRUCTION_CF_JMP_CALL_1_OPCODE_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_SET_ADDRESS(sq_instruction_cf_jmp_call_1_reg, address) \
+ sq_instruction_cf_jmp_call_1_reg = (sq_instruction_cf_jmp_call_1_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_MASK) | (address << SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_SET_RESERVED_1(sq_instruction_cf_jmp_call_1_reg, reserved_1) \
+ sq_instruction_cf_jmp_call_1_reg = (sq_instruction_cf_jmp_call_1_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_1_MASK) | (reserved_1 << SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_1_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_SET_FORCE_CALL(sq_instruction_cf_jmp_call_1_reg, force_call) \
+ sq_instruction_cf_jmp_call_1_reg = (sq_instruction_cf_jmp_call_1_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_1_FORCE_CALL_MASK) | (force_call << SQ_INSTRUCTION_CF_JMP_CALL_1_FORCE_CALL_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_SET_RESERVED_2(sq_instruction_cf_jmp_call_1_reg, reserved_2) \
+ sq_instruction_cf_jmp_call_1_reg = (sq_instruction_cf_jmp_call_1_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_2_MASK) | (reserved_2 << SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_2_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_jmp_call_1_t {
+ unsigned int reserved_0 : SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_0_SIZE;
+ unsigned int direction : SQ_INSTRUCTION_CF_JMP_CALL_1_DIRECTION_SIZE;
+ unsigned int bool_addr : SQ_INSTRUCTION_CF_JMP_CALL_1_BOOL_ADDR_SIZE;
+ unsigned int condition : SQ_INSTRUCTION_CF_JMP_CALL_1_CONDITION_SIZE;
+ unsigned int address_mode : SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_MODE_SIZE;
+ unsigned int opcode : SQ_INSTRUCTION_CF_JMP_CALL_1_OPCODE_SIZE;
+ unsigned int address : SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_SIZE;
+ unsigned int reserved_1 : SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_1_SIZE;
+ unsigned int force_call : SQ_INSTRUCTION_CF_JMP_CALL_1_FORCE_CALL_SIZE;
+ unsigned int reserved_2 : SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_2_SIZE;
+ } sq_instruction_cf_jmp_call_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_jmp_call_1_t {
+ unsigned int reserved_2 : SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_2_SIZE;
+ unsigned int force_call : SQ_INSTRUCTION_CF_JMP_CALL_1_FORCE_CALL_SIZE;
+ unsigned int reserved_1 : SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_1_SIZE;
+ unsigned int address : SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_SIZE;
+ unsigned int opcode : SQ_INSTRUCTION_CF_JMP_CALL_1_OPCODE_SIZE;
+ unsigned int address_mode : SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_MODE_SIZE;
+ unsigned int condition : SQ_INSTRUCTION_CF_JMP_CALL_1_CONDITION_SIZE;
+ unsigned int bool_addr : SQ_INSTRUCTION_CF_JMP_CALL_1_BOOL_ADDR_SIZE;
+ unsigned int direction : SQ_INSTRUCTION_CF_JMP_CALL_1_DIRECTION_SIZE;
+ unsigned int reserved_0 : SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_0_SIZE;
+ } sq_instruction_cf_jmp_call_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_cf_jmp_call_1_t f;
+} sq_instruction_cf_jmp_call_1_u;
+
+
+/*
+ * SQ_INSTRUCTION_CF_JMP_CALL_2 struct
+ */
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_RESERVED_SIZE 17
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_DIRECTION_SIZE 1
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_BOOL_ADDR_SIZE 8
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_CONDITION_SIZE 1
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_ADDRESS_MODE_SIZE 1
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_OPCODE_SIZE 4
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_RESERVED_SHIFT 0
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_DIRECTION_SHIFT 17
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_BOOL_ADDR_SHIFT 18
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_CONDITION_SHIFT 26
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_ADDRESS_MODE_SHIFT 27
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_OPCODE_SHIFT 28
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_RESERVED_MASK 0x0001ffff
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_DIRECTION_MASK 0x00020000
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_BOOL_ADDR_MASK 0x03fc0000
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_CONDITION_MASK 0x04000000
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_ADDRESS_MODE_MASK 0x08000000
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_OPCODE_MASK 0xf0000000
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_MASK \
+ (SQ_INSTRUCTION_CF_JMP_CALL_2_RESERVED_MASK | \
+ SQ_INSTRUCTION_CF_JMP_CALL_2_DIRECTION_MASK | \
+ SQ_INSTRUCTION_CF_JMP_CALL_2_BOOL_ADDR_MASK | \
+ SQ_INSTRUCTION_CF_JMP_CALL_2_CONDITION_MASK | \
+ SQ_INSTRUCTION_CF_JMP_CALL_2_ADDRESS_MODE_MASK | \
+ SQ_INSTRUCTION_CF_JMP_CALL_2_OPCODE_MASK)
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_2(reserved, direction, bool_addr, condition, address_mode, opcode) \
+ ((reserved << SQ_INSTRUCTION_CF_JMP_CALL_2_RESERVED_SHIFT) | \
+ (direction << SQ_INSTRUCTION_CF_JMP_CALL_2_DIRECTION_SHIFT) | \
+ (bool_addr << SQ_INSTRUCTION_CF_JMP_CALL_2_BOOL_ADDR_SHIFT) | \
+ (condition << SQ_INSTRUCTION_CF_JMP_CALL_2_CONDITION_SHIFT) | \
+ (address_mode << SQ_INSTRUCTION_CF_JMP_CALL_2_ADDRESS_MODE_SHIFT) | \
+ (opcode << SQ_INSTRUCTION_CF_JMP_CALL_2_OPCODE_SHIFT))
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_GET_RESERVED(sq_instruction_cf_jmp_call_2) \
+ ((sq_instruction_cf_jmp_call_2 & SQ_INSTRUCTION_CF_JMP_CALL_2_RESERVED_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_2_RESERVED_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_GET_DIRECTION(sq_instruction_cf_jmp_call_2) \
+ ((sq_instruction_cf_jmp_call_2 & SQ_INSTRUCTION_CF_JMP_CALL_2_DIRECTION_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_2_DIRECTION_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_GET_BOOL_ADDR(sq_instruction_cf_jmp_call_2) \
+ ((sq_instruction_cf_jmp_call_2 & SQ_INSTRUCTION_CF_JMP_CALL_2_BOOL_ADDR_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_2_BOOL_ADDR_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_GET_CONDITION(sq_instruction_cf_jmp_call_2) \
+ ((sq_instruction_cf_jmp_call_2 & SQ_INSTRUCTION_CF_JMP_CALL_2_CONDITION_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_2_CONDITION_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_GET_ADDRESS_MODE(sq_instruction_cf_jmp_call_2) \
+ ((sq_instruction_cf_jmp_call_2 & SQ_INSTRUCTION_CF_JMP_CALL_2_ADDRESS_MODE_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_2_ADDRESS_MODE_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_GET_OPCODE(sq_instruction_cf_jmp_call_2) \
+ ((sq_instruction_cf_jmp_call_2 & SQ_INSTRUCTION_CF_JMP_CALL_2_OPCODE_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_2_OPCODE_SHIFT)
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_SET_RESERVED(sq_instruction_cf_jmp_call_2_reg, reserved) \
+ sq_instruction_cf_jmp_call_2_reg = (sq_instruction_cf_jmp_call_2_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_2_RESERVED_MASK) | (reserved << SQ_INSTRUCTION_CF_JMP_CALL_2_RESERVED_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_SET_DIRECTION(sq_instruction_cf_jmp_call_2_reg, direction) \
+ sq_instruction_cf_jmp_call_2_reg = (sq_instruction_cf_jmp_call_2_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_2_DIRECTION_MASK) | (direction << SQ_INSTRUCTION_CF_JMP_CALL_2_DIRECTION_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_SET_BOOL_ADDR(sq_instruction_cf_jmp_call_2_reg, bool_addr) \
+ sq_instruction_cf_jmp_call_2_reg = (sq_instruction_cf_jmp_call_2_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_2_BOOL_ADDR_MASK) | (bool_addr << SQ_INSTRUCTION_CF_JMP_CALL_2_BOOL_ADDR_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_SET_CONDITION(sq_instruction_cf_jmp_call_2_reg, condition) \
+ sq_instruction_cf_jmp_call_2_reg = (sq_instruction_cf_jmp_call_2_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_2_CONDITION_MASK) | (condition << SQ_INSTRUCTION_CF_JMP_CALL_2_CONDITION_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_SET_ADDRESS_MODE(sq_instruction_cf_jmp_call_2_reg, address_mode) \
+ sq_instruction_cf_jmp_call_2_reg = (sq_instruction_cf_jmp_call_2_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_2_ADDRESS_MODE_MASK) | (address_mode << SQ_INSTRUCTION_CF_JMP_CALL_2_ADDRESS_MODE_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_SET_OPCODE(sq_instruction_cf_jmp_call_2_reg, opcode) \
+ sq_instruction_cf_jmp_call_2_reg = (sq_instruction_cf_jmp_call_2_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_2_OPCODE_MASK) | (opcode << SQ_INSTRUCTION_CF_JMP_CALL_2_OPCODE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_jmp_call_2_t {
+ unsigned int reserved : SQ_INSTRUCTION_CF_JMP_CALL_2_RESERVED_SIZE;
+ unsigned int direction : SQ_INSTRUCTION_CF_JMP_CALL_2_DIRECTION_SIZE;
+ unsigned int bool_addr : SQ_INSTRUCTION_CF_JMP_CALL_2_BOOL_ADDR_SIZE;
+ unsigned int condition : SQ_INSTRUCTION_CF_JMP_CALL_2_CONDITION_SIZE;
+ unsigned int address_mode : SQ_INSTRUCTION_CF_JMP_CALL_2_ADDRESS_MODE_SIZE;
+ unsigned int opcode : SQ_INSTRUCTION_CF_JMP_CALL_2_OPCODE_SIZE;
+ } sq_instruction_cf_jmp_call_2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_jmp_call_2_t {
+ unsigned int opcode : SQ_INSTRUCTION_CF_JMP_CALL_2_OPCODE_SIZE;
+ unsigned int address_mode : SQ_INSTRUCTION_CF_JMP_CALL_2_ADDRESS_MODE_SIZE;
+ unsigned int condition : SQ_INSTRUCTION_CF_JMP_CALL_2_CONDITION_SIZE;
+ unsigned int bool_addr : SQ_INSTRUCTION_CF_JMP_CALL_2_BOOL_ADDR_SIZE;
+ unsigned int direction : SQ_INSTRUCTION_CF_JMP_CALL_2_DIRECTION_SIZE;
+ unsigned int reserved : SQ_INSTRUCTION_CF_JMP_CALL_2_RESERVED_SIZE;
+ } sq_instruction_cf_jmp_call_2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_cf_jmp_call_2_t f;
+} sq_instruction_cf_jmp_call_2_u;
+
+
+/*
+ * SQ_INSTRUCTION_CF_ALLOC_0 struct
+ */
+
+#define SQ_INSTRUCTION_CF_ALLOC_0_SIZE_SIZE 4
+#define SQ_INSTRUCTION_CF_ALLOC_0_RESERVED_SIZE 28
+
+#define SQ_INSTRUCTION_CF_ALLOC_0_SIZE_SHIFT 0
+#define SQ_INSTRUCTION_CF_ALLOC_0_RESERVED_SHIFT 4
+
+#define SQ_INSTRUCTION_CF_ALLOC_0_SIZE_MASK 0x0000000f
+#define SQ_INSTRUCTION_CF_ALLOC_0_RESERVED_MASK 0xfffffff0
+
+#define SQ_INSTRUCTION_CF_ALLOC_0_MASK \
+ (SQ_INSTRUCTION_CF_ALLOC_0_SIZE_MASK | \
+ SQ_INSTRUCTION_CF_ALLOC_0_RESERVED_MASK)
+
+#define SQ_INSTRUCTION_CF_ALLOC_0(size, reserved) \
+ ((size << SQ_INSTRUCTION_CF_ALLOC_0_SIZE_SHIFT) | \
+ (reserved << SQ_INSTRUCTION_CF_ALLOC_0_RESERVED_SHIFT))
+
+#define SQ_INSTRUCTION_CF_ALLOC_0_GET_SIZE(sq_instruction_cf_alloc_0) \
+ ((sq_instruction_cf_alloc_0 & SQ_INSTRUCTION_CF_ALLOC_0_SIZE_MASK) >> SQ_INSTRUCTION_CF_ALLOC_0_SIZE_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_0_GET_RESERVED(sq_instruction_cf_alloc_0) \
+ ((sq_instruction_cf_alloc_0 & SQ_INSTRUCTION_CF_ALLOC_0_RESERVED_MASK) >> SQ_INSTRUCTION_CF_ALLOC_0_RESERVED_SHIFT)
+
+#define SQ_INSTRUCTION_CF_ALLOC_0_SET_SIZE(sq_instruction_cf_alloc_0_reg, size) \
+ sq_instruction_cf_alloc_0_reg = (sq_instruction_cf_alloc_0_reg & ~SQ_INSTRUCTION_CF_ALLOC_0_SIZE_MASK) | (size << SQ_INSTRUCTION_CF_ALLOC_0_SIZE_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_0_SET_RESERVED(sq_instruction_cf_alloc_0_reg, reserved) \
+ sq_instruction_cf_alloc_0_reg = (sq_instruction_cf_alloc_0_reg & ~SQ_INSTRUCTION_CF_ALLOC_0_RESERVED_MASK) | (reserved << SQ_INSTRUCTION_CF_ALLOC_0_RESERVED_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_alloc_0_t {
+ unsigned int size : SQ_INSTRUCTION_CF_ALLOC_0_SIZE_SIZE;
+ unsigned int reserved : SQ_INSTRUCTION_CF_ALLOC_0_RESERVED_SIZE;
+ } sq_instruction_cf_alloc_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_alloc_0_t {
+ unsigned int reserved : SQ_INSTRUCTION_CF_ALLOC_0_RESERVED_SIZE;
+ unsigned int size : SQ_INSTRUCTION_CF_ALLOC_0_SIZE_SIZE;
+ } sq_instruction_cf_alloc_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_cf_alloc_0_t f;
+} sq_instruction_cf_alloc_0_u;
+
+
+/*
+ * SQ_INSTRUCTION_CF_ALLOC_1 struct
+ */
+
+#define SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_0_SIZE 8
+#define SQ_INSTRUCTION_CF_ALLOC_1_NO_SERIAL_SIZE 1
+#define SQ_INSTRUCTION_CF_ALLOC_1_BUFFER_SELECT_SIZE 2
+#define SQ_INSTRUCTION_CF_ALLOC_1_ALLOC_MODE_SIZE 1
+#define SQ_INSTRUCTION_CF_ALLOC_1_OPCODE_SIZE 4
+#define SQ_INSTRUCTION_CF_ALLOC_1_SIZE_SIZE 4
+#define SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_1_SIZE 12
+
+#define SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_0_SHIFT 0
+#define SQ_INSTRUCTION_CF_ALLOC_1_NO_SERIAL_SHIFT 8
+#define SQ_INSTRUCTION_CF_ALLOC_1_BUFFER_SELECT_SHIFT 9
+#define SQ_INSTRUCTION_CF_ALLOC_1_ALLOC_MODE_SHIFT 11
+#define SQ_INSTRUCTION_CF_ALLOC_1_OPCODE_SHIFT 12
+#define SQ_INSTRUCTION_CF_ALLOC_1_SIZE_SHIFT 16
+#define SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_1_SHIFT 20
+
+#define SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_0_MASK 0x000000ff
+#define SQ_INSTRUCTION_CF_ALLOC_1_NO_SERIAL_MASK 0x00000100
+#define SQ_INSTRUCTION_CF_ALLOC_1_BUFFER_SELECT_MASK 0x00000600
+#define SQ_INSTRUCTION_CF_ALLOC_1_ALLOC_MODE_MASK 0x00000800
+#define SQ_INSTRUCTION_CF_ALLOC_1_OPCODE_MASK 0x0000f000
+#define SQ_INSTRUCTION_CF_ALLOC_1_SIZE_MASK 0x000f0000
+#define SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_1_MASK 0xfff00000
+
+#define SQ_INSTRUCTION_CF_ALLOC_1_MASK \
+ (SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_0_MASK | \
+ SQ_INSTRUCTION_CF_ALLOC_1_NO_SERIAL_MASK | \
+ SQ_INSTRUCTION_CF_ALLOC_1_BUFFER_SELECT_MASK | \
+ SQ_INSTRUCTION_CF_ALLOC_1_ALLOC_MODE_MASK | \
+ SQ_INSTRUCTION_CF_ALLOC_1_OPCODE_MASK | \
+ SQ_INSTRUCTION_CF_ALLOC_1_SIZE_MASK | \
+ SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_1_MASK)
+
+#define SQ_INSTRUCTION_CF_ALLOC_1(reserved_0, no_serial, buffer_select, alloc_mode, opcode, size, reserved_1) \
+ ((reserved_0 << SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_0_SHIFT) | \
+ (no_serial << SQ_INSTRUCTION_CF_ALLOC_1_NO_SERIAL_SHIFT) | \
+ (buffer_select << SQ_INSTRUCTION_CF_ALLOC_1_BUFFER_SELECT_SHIFT) | \
+ (alloc_mode << SQ_INSTRUCTION_CF_ALLOC_1_ALLOC_MODE_SHIFT) | \
+ (opcode << SQ_INSTRUCTION_CF_ALLOC_1_OPCODE_SHIFT) | \
+ (size << SQ_INSTRUCTION_CF_ALLOC_1_SIZE_SHIFT) | \
+ (reserved_1 << SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_1_SHIFT))
+
+#define SQ_INSTRUCTION_CF_ALLOC_1_GET_RESERVED_0(sq_instruction_cf_alloc_1) \
+ ((sq_instruction_cf_alloc_1 & SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_0_MASK) >> SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_0_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_1_GET_NO_SERIAL(sq_instruction_cf_alloc_1) \
+ ((sq_instruction_cf_alloc_1 & SQ_INSTRUCTION_CF_ALLOC_1_NO_SERIAL_MASK) >> SQ_INSTRUCTION_CF_ALLOC_1_NO_SERIAL_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_1_GET_BUFFER_SELECT(sq_instruction_cf_alloc_1) \
+ ((sq_instruction_cf_alloc_1 & SQ_INSTRUCTION_CF_ALLOC_1_BUFFER_SELECT_MASK) >> SQ_INSTRUCTION_CF_ALLOC_1_BUFFER_SELECT_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_1_GET_ALLOC_MODE(sq_instruction_cf_alloc_1) \
+ ((sq_instruction_cf_alloc_1 & SQ_INSTRUCTION_CF_ALLOC_1_ALLOC_MODE_MASK) >> SQ_INSTRUCTION_CF_ALLOC_1_ALLOC_MODE_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_1_GET_OPCODE(sq_instruction_cf_alloc_1) \
+ ((sq_instruction_cf_alloc_1 & SQ_INSTRUCTION_CF_ALLOC_1_OPCODE_MASK) >> SQ_INSTRUCTION_CF_ALLOC_1_OPCODE_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_1_GET_SIZE(sq_instruction_cf_alloc_1) \
+ ((sq_instruction_cf_alloc_1 & SQ_INSTRUCTION_CF_ALLOC_1_SIZE_MASK) >> SQ_INSTRUCTION_CF_ALLOC_1_SIZE_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_1_GET_RESERVED_1(sq_instruction_cf_alloc_1) \
+ ((sq_instruction_cf_alloc_1 & SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_1_MASK) >> SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_1_SHIFT)
+
+#define SQ_INSTRUCTION_CF_ALLOC_1_SET_RESERVED_0(sq_instruction_cf_alloc_1_reg, reserved_0) \
+ sq_instruction_cf_alloc_1_reg = (sq_instruction_cf_alloc_1_reg & ~SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_0_MASK) | (reserved_0 << SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_0_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_1_SET_NO_SERIAL(sq_instruction_cf_alloc_1_reg, no_serial) \
+ sq_instruction_cf_alloc_1_reg = (sq_instruction_cf_alloc_1_reg & ~SQ_INSTRUCTION_CF_ALLOC_1_NO_SERIAL_MASK) | (no_serial << SQ_INSTRUCTION_CF_ALLOC_1_NO_SERIAL_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_1_SET_BUFFER_SELECT(sq_instruction_cf_alloc_1_reg, buffer_select) \
+ sq_instruction_cf_alloc_1_reg = (sq_instruction_cf_alloc_1_reg & ~SQ_INSTRUCTION_CF_ALLOC_1_BUFFER_SELECT_MASK) | (buffer_select << SQ_INSTRUCTION_CF_ALLOC_1_BUFFER_SELECT_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_1_SET_ALLOC_MODE(sq_instruction_cf_alloc_1_reg, alloc_mode) \
+ sq_instruction_cf_alloc_1_reg = (sq_instruction_cf_alloc_1_reg & ~SQ_INSTRUCTION_CF_ALLOC_1_ALLOC_MODE_MASK) | (alloc_mode << SQ_INSTRUCTION_CF_ALLOC_1_ALLOC_MODE_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_1_SET_OPCODE(sq_instruction_cf_alloc_1_reg, opcode) \
+ sq_instruction_cf_alloc_1_reg = (sq_instruction_cf_alloc_1_reg & ~SQ_INSTRUCTION_CF_ALLOC_1_OPCODE_MASK) | (opcode << SQ_INSTRUCTION_CF_ALLOC_1_OPCODE_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_1_SET_SIZE(sq_instruction_cf_alloc_1_reg, size) \
+ sq_instruction_cf_alloc_1_reg = (sq_instruction_cf_alloc_1_reg & ~SQ_INSTRUCTION_CF_ALLOC_1_SIZE_MASK) | (size << SQ_INSTRUCTION_CF_ALLOC_1_SIZE_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_1_SET_RESERVED_1(sq_instruction_cf_alloc_1_reg, reserved_1) \
+ sq_instruction_cf_alloc_1_reg = (sq_instruction_cf_alloc_1_reg & ~SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_1_MASK) | (reserved_1 << SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_1_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_alloc_1_t {
+ unsigned int reserved_0 : SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_0_SIZE;
+ unsigned int no_serial : SQ_INSTRUCTION_CF_ALLOC_1_NO_SERIAL_SIZE;
+ unsigned int buffer_select : SQ_INSTRUCTION_CF_ALLOC_1_BUFFER_SELECT_SIZE;
+ unsigned int alloc_mode : SQ_INSTRUCTION_CF_ALLOC_1_ALLOC_MODE_SIZE;
+ unsigned int opcode : SQ_INSTRUCTION_CF_ALLOC_1_OPCODE_SIZE;
+ unsigned int size : SQ_INSTRUCTION_CF_ALLOC_1_SIZE_SIZE;
+ unsigned int reserved_1 : SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_1_SIZE;
+ } sq_instruction_cf_alloc_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_alloc_1_t {
+ unsigned int reserved_1 : SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_1_SIZE;
+ unsigned int size : SQ_INSTRUCTION_CF_ALLOC_1_SIZE_SIZE;
+ unsigned int opcode : SQ_INSTRUCTION_CF_ALLOC_1_OPCODE_SIZE;
+ unsigned int alloc_mode : SQ_INSTRUCTION_CF_ALLOC_1_ALLOC_MODE_SIZE;
+ unsigned int buffer_select : SQ_INSTRUCTION_CF_ALLOC_1_BUFFER_SELECT_SIZE;
+ unsigned int no_serial : SQ_INSTRUCTION_CF_ALLOC_1_NO_SERIAL_SIZE;
+ unsigned int reserved_0 : SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_0_SIZE;
+ } sq_instruction_cf_alloc_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_cf_alloc_1_t f;
+} sq_instruction_cf_alloc_1_u;
+
+
+/*
+ * SQ_INSTRUCTION_CF_ALLOC_2 struct
+ */
+
+#define SQ_INSTRUCTION_CF_ALLOC_2_RESERVED_SIZE 24
+#define SQ_INSTRUCTION_CF_ALLOC_2_NO_SERIAL_SIZE 1
+#define SQ_INSTRUCTION_CF_ALLOC_2_BUFFER_SELECT_SIZE 2
+#define SQ_INSTRUCTION_CF_ALLOC_2_ALLOC_MODE_SIZE 1
+#define SQ_INSTRUCTION_CF_ALLOC_2_OPCODE_SIZE 4
+
+#define SQ_INSTRUCTION_CF_ALLOC_2_RESERVED_SHIFT 0
+#define SQ_INSTRUCTION_CF_ALLOC_2_NO_SERIAL_SHIFT 24
+#define SQ_INSTRUCTION_CF_ALLOC_2_BUFFER_SELECT_SHIFT 25
+#define SQ_INSTRUCTION_CF_ALLOC_2_ALLOC_MODE_SHIFT 27
+#define SQ_INSTRUCTION_CF_ALLOC_2_OPCODE_SHIFT 28
+
+#define SQ_INSTRUCTION_CF_ALLOC_2_RESERVED_MASK 0x00ffffff
+#define SQ_INSTRUCTION_CF_ALLOC_2_NO_SERIAL_MASK 0x01000000
+#define SQ_INSTRUCTION_CF_ALLOC_2_BUFFER_SELECT_MASK 0x06000000
+#define SQ_INSTRUCTION_CF_ALLOC_2_ALLOC_MODE_MASK 0x08000000
+#define SQ_INSTRUCTION_CF_ALLOC_2_OPCODE_MASK 0xf0000000
+
+#define SQ_INSTRUCTION_CF_ALLOC_2_MASK \
+ (SQ_INSTRUCTION_CF_ALLOC_2_RESERVED_MASK | \
+ SQ_INSTRUCTION_CF_ALLOC_2_NO_SERIAL_MASK | \
+ SQ_INSTRUCTION_CF_ALLOC_2_BUFFER_SELECT_MASK | \
+ SQ_INSTRUCTION_CF_ALLOC_2_ALLOC_MODE_MASK | \
+ SQ_INSTRUCTION_CF_ALLOC_2_OPCODE_MASK)
+
+#define SQ_INSTRUCTION_CF_ALLOC_2(reserved, no_serial, buffer_select, alloc_mode, opcode) \
+ ((reserved << SQ_INSTRUCTION_CF_ALLOC_2_RESERVED_SHIFT) | \
+ (no_serial << SQ_INSTRUCTION_CF_ALLOC_2_NO_SERIAL_SHIFT) | \
+ (buffer_select << SQ_INSTRUCTION_CF_ALLOC_2_BUFFER_SELECT_SHIFT) | \
+ (alloc_mode << SQ_INSTRUCTION_CF_ALLOC_2_ALLOC_MODE_SHIFT) | \
+ (opcode << SQ_INSTRUCTION_CF_ALLOC_2_OPCODE_SHIFT))
+
+#define SQ_INSTRUCTION_CF_ALLOC_2_GET_RESERVED(sq_instruction_cf_alloc_2) \
+ ((sq_instruction_cf_alloc_2 & SQ_INSTRUCTION_CF_ALLOC_2_RESERVED_MASK) >> SQ_INSTRUCTION_CF_ALLOC_2_RESERVED_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_2_GET_NO_SERIAL(sq_instruction_cf_alloc_2) \
+ ((sq_instruction_cf_alloc_2 & SQ_INSTRUCTION_CF_ALLOC_2_NO_SERIAL_MASK) >> SQ_INSTRUCTION_CF_ALLOC_2_NO_SERIAL_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_2_GET_BUFFER_SELECT(sq_instruction_cf_alloc_2) \
+ ((sq_instruction_cf_alloc_2 & SQ_INSTRUCTION_CF_ALLOC_2_BUFFER_SELECT_MASK) >> SQ_INSTRUCTION_CF_ALLOC_2_BUFFER_SELECT_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_2_GET_ALLOC_MODE(sq_instruction_cf_alloc_2) \
+ ((sq_instruction_cf_alloc_2 & SQ_INSTRUCTION_CF_ALLOC_2_ALLOC_MODE_MASK) >> SQ_INSTRUCTION_CF_ALLOC_2_ALLOC_MODE_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_2_GET_OPCODE(sq_instruction_cf_alloc_2) \
+ ((sq_instruction_cf_alloc_2 & SQ_INSTRUCTION_CF_ALLOC_2_OPCODE_MASK) >> SQ_INSTRUCTION_CF_ALLOC_2_OPCODE_SHIFT)
+
+#define SQ_INSTRUCTION_CF_ALLOC_2_SET_RESERVED(sq_instruction_cf_alloc_2_reg, reserved) \
+ sq_instruction_cf_alloc_2_reg = (sq_instruction_cf_alloc_2_reg & ~SQ_INSTRUCTION_CF_ALLOC_2_RESERVED_MASK) | (reserved << SQ_INSTRUCTION_CF_ALLOC_2_RESERVED_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_2_SET_NO_SERIAL(sq_instruction_cf_alloc_2_reg, no_serial) \
+ sq_instruction_cf_alloc_2_reg = (sq_instruction_cf_alloc_2_reg & ~SQ_INSTRUCTION_CF_ALLOC_2_NO_SERIAL_MASK) | (no_serial << SQ_INSTRUCTION_CF_ALLOC_2_NO_SERIAL_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_2_SET_BUFFER_SELECT(sq_instruction_cf_alloc_2_reg, buffer_select) \
+ sq_instruction_cf_alloc_2_reg = (sq_instruction_cf_alloc_2_reg & ~SQ_INSTRUCTION_CF_ALLOC_2_BUFFER_SELECT_MASK) | (buffer_select << SQ_INSTRUCTION_CF_ALLOC_2_BUFFER_SELECT_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_2_SET_ALLOC_MODE(sq_instruction_cf_alloc_2_reg, alloc_mode) \
+ sq_instruction_cf_alloc_2_reg = (sq_instruction_cf_alloc_2_reg & ~SQ_INSTRUCTION_CF_ALLOC_2_ALLOC_MODE_MASK) | (alloc_mode << SQ_INSTRUCTION_CF_ALLOC_2_ALLOC_MODE_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_2_SET_OPCODE(sq_instruction_cf_alloc_2_reg, opcode) \
+ sq_instruction_cf_alloc_2_reg = (sq_instruction_cf_alloc_2_reg & ~SQ_INSTRUCTION_CF_ALLOC_2_OPCODE_MASK) | (opcode << SQ_INSTRUCTION_CF_ALLOC_2_OPCODE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_alloc_2_t {
+ unsigned int reserved : SQ_INSTRUCTION_CF_ALLOC_2_RESERVED_SIZE;
+ unsigned int no_serial : SQ_INSTRUCTION_CF_ALLOC_2_NO_SERIAL_SIZE;
+ unsigned int buffer_select : SQ_INSTRUCTION_CF_ALLOC_2_BUFFER_SELECT_SIZE;
+ unsigned int alloc_mode : SQ_INSTRUCTION_CF_ALLOC_2_ALLOC_MODE_SIZE;
+ unsigned int opcode : SQ_INSTRUCTION_CF_ALLOC_2_OPCODE_SIZE;
+ } sq_instruction_cf_alloc_2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_alloc_2_t {
+ unsigned int opcode : SQ_INSTRUCTION_CF_ALLOC_2_OPCODE_SIZE;
+ unsigned int alloc_mode : SQ_INSTRUCTION_CF_ALLOC_2_ALLOC_MODE_SIZE;
+ unsigned int buffer_select : SQ_INSTRUCTION_CF_ALLOC_2_BUFFER_SELECT_SIZE;
+ unsigned int no_serial : SQ_INSTRUCTION_CF_ALLOC_2_NO_SERIAL_SIZE;
+ unsigned int reserved : SQ_INSTRUCTION_CF_ALLOC_2_RESERVED_SIZE;
+ } sq_instruction_cf_alloc_2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_cf_alloc_2_t f;
+} sq_instruction_cf_alloc_2_u;
+
+
+/*
+ * SQ_INSTRUCTION_TFETCH_0 struct
+ */
+
+#define SQ_INSTRUCTION_TFETCH_0_OPCODE_SIZE 5
+#define SQ_INSTRUCTION_TFETCH_0_SRC_GPR_SIZE 6
+#define SQ_INSTRUCTION_TFETCH_0_SRC_GPR_AM_SIZE 1
+#define SQ_INSTRUCTION_TFETCH_0_DST_GPR_SIZE 6
+#define SQ_INSTRUCTION_TFETCH_0_DST_GPR_AM_SIZE 1
+#define SQ_INSTRUCTION_TFETCH_0_FETCH_VALID_ONLY_SIZE 1
+#define SQ_INSTRUCTION_TFETCH_0_CONST_INDEX_SIZE 5
+#define SQ_INSTRUCTION_TFETCH_0_TX_COORD_DENORM_SIZE 1
+#define SQ_INSTRUCTION_TFETCH_0_SRC_SEL_X_SIZE 2
+#define SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Y_SIZE 2
+#define SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Z_SIZE 2
+
+#define SQ_INSTRUCTION_TFETCH_0_OPCODE_SHIFT 0
+#define SQ_INSTRUCTION_TFETCH_0_SRC_GPR_SHIFT 5
+#define SQ_INSTRUCTION_TFETCH_0_SRC_GPR_AM_SHIFT 11
+#define SQ_INSTRUCTION_TFETCH_0_DST_GPR_SHIFT 12
+#define SQ_INSTRUCTION_TFETCH_0_DST_GPR_AM_SHIFT 18
+#define SQ_INSTRUCTION_TFETCH_0_FETCH_VALID_ONLY_SHIFT 19
+#define SQ_INSTRUCTION_TFETCH_0_CONST_INDEX_SHIFT 20
+#define SQ_INSTRUCTION_TFETCH_0_TX_COORD_DENORM_SHIFT 25
+#define SQ_INSTRUCTION_TFETCH_0_SRC_SEL_X_SHIFT 26
+#define SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Y_SHIFT 28
+#define SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Z_SHIFT 30
+
+#define SQ_INSTRUCTION_TFETCH_0_OPCODE_MASK 0x0000001f
+#define SQ_INSTRUCTION_TFETCH_0_SRC_GPR_MASK 0x000007e0
+#define SQ_INSTRUCTION_TFETCH_0_SRC_GPR_AM_MASK 0x00000800
+#define SQ_INSTRUCTION_TFETCH_0_DST_GPR_MASK 0x0003f000
+#define SQ_INSTRUCTION_TFETCH_0_DST_GPR_AM_MASK 0x00040000
+#define SQ_INSTRUCTION_TFETCH_0_FETCH_VALID_ONLY_MASK 0x00080000
+#define SQ_INSTRUCTION_TFETCH_0_CONST_INDEX_MASK 0x01f00000
+#define SQ_INSTRUCTION_TFETCH_0_TX_COORD_DENORM_MASK 0x02000000
+#define SQ_INSTRUCTION_TFETCH_0_SRC_SEL_X_MASK 0x0c000000
+#define SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Y_MASK 0x30000000
+#define SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Z_MASK 0xc0000000
+
+#define SQ_INSTRUCTION_TFETCH_0_MASK \
+ (SQ_INSTRUCTION_TFETCH_0_OPCODE_MASK | \
+ SQ_INSTRUCTION_TFETCH_0_SRC_GPR_MASK | \
+ SQ_INSTRUCTION_TFETCH_0_SRC_GPR_AM_MASK | \
+ SQ_INSTRUCTION_TFETCH_0_DST_GPR_MASK | \
+ SQ_INSTRUCTION_TFETCH_0_DST_GPR_AM_MASK | \
+ SQ_INSTRUCTION_TFETCH_0_FETCH_VALID_ONLY_MASK | \
+ SQ_INSTRUCTION_TFETCH_0_CONST_INDEX_MASK | \
+ SQ_INSTRUCTION_TFETCH_0_TX_COORD_DENORM_MASK | \
+ SQ_INSTRUCTION_TFETCH_0_SRC_SEL_X_MASK | \
+ SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Y_MASK | \
+ SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Z_MASK)
+
+#define SQ_INSTRUCTION_TFETCH_0(opcode, src_gpr, src_gpr_am, dst_gpr, dst_gpr_am, fetch_valid_only, const_index, tx_coord_denorm, src_sel_x, src_sel_y, src_sel_z) \
+ ((opcode << SQ_INSTRUCTION_TFETCH_0_OPCODE_SHIFT) | \
+ (src_gpr << SQ_INSTRUCTION_TFETCH_0_SRC_GPR_SHIFT) | \
+ (src_gpr_am << SQ_INSTRUCTION_TFETCH_0_SRC_GPR_AM_SHIFT) | \
+ (dst_gpr << SQ_INSTRUCTION_TFETCH_0_DST_GPR_SHIFT) | \
+ (dst_gpr_am << SQ_INSTRUCTION_TFETCH_0_DST_GPR_AM_SHIFT) | \
+ (fetch_valid_only << SQ_INSTRUCTION_TFETCH_0_FETCH_VALID_ONLY_SHIFT) | \
+ (const_index << SQ_INSTRUCTION_TFETCH_0_CONST_INDEX_SHIFT) | \
+ (tx_coord_denorm << SQ_INSTRUCTION_TFETCH_0_TX_COORD_DENORM_SHIFT) | \
+ (src_sel_x << SQ_INSTRUCTION_TFETCH_0_SRC_SEL_X_SHIFT) | \
+ (src_sel_y << SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Y_SHIFT) | \
+ (src_sel_z << SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Z_SHIFT))
+
+#define SQ_INSTRUCTION_TFETCH_0_GET_OPCODE(sq_instruction_tfetch_0) \
+ ((sq_instruction_tfetch_0 & SQ_INSTRUCTION_TFETCH_0_OPCODE_MASK) >> SQ_INSTRUCTION_TFETCH_0_OPCODE_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_GET_SRC_GPR(sq_instruction_tfetch_0) \
+ ((sq_instruction_tfetch_0 & SQ_INSTRUCTION_TFETCH_0_SRC_GPR_MASK) >> SQ_INSTRUCTION_TFETCH_0_SRC_GPR_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_GET_SRC_GPR_AM(sq_instruction_tfetch_0) \
+ ((sq_instruction_tfetch_0 & SQ_INSTRUCTION_TFETCH_0_SRC_GPR_AM_MASK) >> SQ_INSTRUCTION_TFETCH_0_SRC_GPR_AM_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_GET_DST_GPR(sq_instruction_tfetch_0) \
+ ((sq_instruction_tfetch_0 & SQ_INSTRUCTION_TFETCH_0_DST_GPR_MASK) >> SQ_INSTRUCTION_TFETCH_0_DST_GPR_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_GET_DST_GPR_AM(sq_instruction_tfetch_0) \
+ ((sq_instruction_tfetch_0 & SQ_INSTRUCTION_TFETCH_0_DST_GPR_AM_MASK) >> SQ_INSTRUCTION_TFETCH_0_DST_GPR_AM_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_GET_FETCH_VALID_ONLY(sq_instruction_tfetch_0) \
+ ((sq_instruction_tfetch_0 & SQ_INSTRUCTION_TFETCH_0_FETCH_VALID_ONLY_MASK) >> SQ_INSTRUCTION_TFETCH_0_FETCH_VALID_ONLY_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_GET_CONST_INDEX(sq_instruction_tfetch_0) \
+ ((sq_instruction_tfetch_0 & SQ_INSTRUCTION_TFETCH_0_CONST_INDEX_MASK) >> SQ_INSTRUCTION_TFETCH_0_CONST_INDEX_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_GET_TX_COORD_DENORM(sq_instruction_tfetch_0) \
+ ((sq_instruction_tfetch_0 & SQ_INSTRUCTION_TFETCH_0_TX_COORD_DENORM_MASK) >> SQ_INSTRUCTION_TFETCH_0_TX_COORD_DENORM_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_GET_SRC_SEL_X(sq_instruction_tfetch_0) \
+ ((sq_instruction_tfetch_0 & SQ_INSTRUCTION_TFETCH_0_SRC_SEL_X_MASK) >> SQ_INSTRUCTION_TFETCH_0_SRC_SEL_X_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_GET_SRC_SEL_Y(sq_instruction_tfetch_0) \
+ ((sq_instruction_tfetch_0 & SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Y_MASK) >> SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Y_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_GET_SRC_SEL_Z(sq_instruction_tfetch_0) \
+ ((sq_instruction_tfetch_0 & SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Z_MASK) >> SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Z_SHIFT)
+
+#define SQ_INSTRUCTION_TFETCH_0_SET_OPCODE(sq_instruction_tfetch_0_reg, opcode) \
+ sq_instruction_tfetch_0_reg = (sq_instruction_tfetch_0_reg & ~SQ_INSTRUCTION_TFETCH_0_OPCODE_MASK) | (opcode << SQ_INSTRUCTION_TFETCH_0_OPCODE_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_SET_SRC_GPR(sq_instruction_tfetch_0_reg, src_gpr) \
+ sq_instruction_tfetch_0_reg = (sq_instruction_tfetch_0_reg & ~SQ_INSTRUCTION_TFETCH_0_SRC_GPR_MASK) | (src_gpr << SQ_INSTRUCTION_TFETCH_0_SRC_GPR_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_SET_SRC_GPR_AM(sq_instruction_tfetch_0_reg, src_gpr_am) \
+ sq_instruction_tfetch_0_reg = (sq_instruction_tfetch_0_reg & ~SQ_INSTRUCTION_TFETCH_0_SRC_GPR_AM_MASK) | (src_gpr_am << SQ_INSTRUCTION_TFETCH_0_SRC_GPR_AM_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_SET_DST_GPR(sq_instruction_tfetch_0_reg, dst_gpr) \
+ sq_instruction_tfetch_0_reg = (sq_instruction_tfetch_0_reg & ~SQ_INSTRUCTION_TFETCH_0_DST_GPR_MASK) | (dst_gpr << SQ_INSTRUCTION_TFETCH_0_DST_GPR_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_SET_DST_GPR_AM(sq_instruction_tfetch_0_reg, dst_gpr_am) \
+ sq_instruction_tfetch_0_reg = (sq_instruction_tfetch_0_reg & ~SQ_INSTRUCTION_TFETCH_0_DST_GPR_AM_MASK) | (dst_gpr_am << SQ_INSTRUCTION_TFETCH_0_DST_GPR_AM_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_SET_FETCH_VALID_ONLY(sq_instruction_tfetch_0_reg, fetch_valid_only) \
+ sq_instruction_tfetch_0_reg = (sq_instruction_tfetch_0_reg & ~SQ_INSTRUCTION_TFETCH_0_FETCH_VALID_ONLY_MASK) | (fetch_valid_only << SQ_INSTRUCTION_TFETCH_0_FETCH_VALID_ONLY_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_SET_CONST_INDEX(sq_instruction_tfetch_0_reg, const_index) \
+ sq_instruction_tfetch_0_reg = (sq_instruction_tfetch_0_reg & ~SQ_INSTRUCTION_TFETCH_0_CONST_INDEX_MASK) | (const_index << SQ_INSTRUCTION_TFETCH_0_CONST_INDEX_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_SET_TX_COORD_DENORM(sq_instruction_tfetch_0_reg, tx_coord_denorm) \
+ sq_instruction_tfetch_0_reg = (sq_instruction_tfetch_0_reg & ~SQ_INSTRUCTION_TFETCH_0_TX_COORD_DENORM_MASK) | (tx_coord_denorm << SQ_INSTRUCTION_TFETCH_0_TX_COORD_DENORM_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_SET_SRC_SEL_X(sq_instruction_tfetch_0_reg, src_sel_x) \
+ sq_instruction_tfetch_0_reg = (sq_instruction_tfetch_0_reg & ~SQ_INSTRUCTION_TFETCH_0_SRC_SEL_X_MASK) | (src_sel_x << SQ_INSTRUCTION_TFETCH_0_SRC_SEL_X_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_SET_SRC_SEL_Y(sq_instruction_tfetch_0_reg, src_sel_y) \
+ sq_instruction_tfetch_0_reg = (sq_instruction_tfetch_0_reg & ~SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Y_MASK) | (src_sel_y << SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Y_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_SET_SRC_SEL_Z(sq_instruction_tfetch_0_reg, src_sel_z) \
+ sq_instruction_tfetch_0_reg = (sq_instruction_tfetch_0_reg & ~SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Z_MASK) | (src_sel_z << SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Z_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_tfetch_0_t {
+ unsigned int opcode : SQ_INSTRUCTION_TFETCH_0_OPCODE_SIZE;
+ unsigned int src_gpr : SQ_INSTRUCTION_TFETCH_0_SRC_GPR_SIZE;
+ unsigned int src_gpr_am : SQ_INSTRUCTION_TFETCH_0_SRC_GPR_AM_SIZE;
+ unsigned int dst_gpr : SQ_INSTRUCTION_TFETCH_0_DST_GPR_SIZE;
+ unsigned int dst_gpr_am : SQ_INSTRUCTION_TFETCH_0_DST_GPR_AM_SIZE;
+ unsigned int fetch_valid_only : SQ_INSTRUCTION_TFETCH_0_FETCH_VALID_ONLY_SIZE;
+ unsigned int const_index : SQ_INSTRUCTION_TFETCH_0_CONST_INDEX_SIZE;
+ unsigned int tx_coord_denorm : SQ_INSTRUCTION_TFETCH_0_TX_COORD_DENORM_SIZE;
+ unsigned int src_sel_x : SQ_INSTRUCTION_TFETCH_0_SRC_SEL_X_SIZE;
+ unsigned int src_sel_y : SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Y_SIZE;
+ unsigned int src_sel_z : SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Z_SIZE;
+ } sq_instruction_tfetch_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_tfetch_0_t {
+ unsigned int src_sel_z : SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Z_SIZE;
+ unsigned int src_sel_y : SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Y_SIZE;
+ unsigned int src_sel_x : SQ_INSTRUCTION_TFETCH_0_SRC_SEL_X_SIZE;
+ unsigned int tx_coord_denorm : SQ_INSTRUCTION_TFETCH_0_TX_COORD_DENORM_SIZE;
+ unsigned int const_index : SQ_INSTRUCTION_TFETCH_0_CONST_INDEX_SIZE;
+ unsigned int fetch_valid_only : SQ_INSTRUCTION_TFETCH_0_FETCH_VALID_ONLY_SIZE;
+ unsigned int dst_gpr_am : SQ_INSTRUCTION_TFETCH_0_DST_GPR_AM_SIZE;
+ unsigned int dst_gpr : SQ_INSTRUCTION_TFETCH_0_DST_GPR_SIZE;
+ unsigned int src_gpr_am : SQ_INSTRUCTION_TFETCH_0_SRC_GPR_AM_SIZE;
+ unsigned int src_gpr : SQ_INSTRUCTION_TFETCH_0_SRC_GPR_SIZE;
+ unsigned int opcode : SQ_INSTRUCTION_TFETCH_0_OPCODE_SIZE;
+ } sq_instruction_tfetch_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_tfetch_0_t f;
+} sq_instruction_tfetch_0_u;
+
+
+/*
+ * SQ_INSTRUCTION_TFETCH_1 struct
+ */
+
+#define SQ_INSTRUCTION_TFETCH_1_DST_SEL_X_SIZE 3
+#define SQ_INSTRUCTION_TFETCH_1_DST_SEL_Y_SIZE 3
+#define SQ_INSTRUCTION_TFETCH_1_DST_SEL_Z_SIZE 3
+#define SQ_INSTRUCTION_TFETCH_1_DST_SEL_W_SIZE 3
+#define SQ_INSTRUCTION_TFETCH_1_MAG_FILTER_SIZE 2
+#define SQ_INSTRUCTION_TFETCH_1_MIN_FILTER_SIZE 2
+#define SQ_INSTRUCTION_TFETCH_1_MIP_FILTER_SIZE 2
+#define SQ_INSTRUCTION_TFETCH_1_ANISO_FILTER_SIZE 3
+#define SQ_INSTRUCTION_TFETCH_1_ARBITRARY_FILTER_SIZE 3
+#define SQ_INSTRUCTION_TFETCH_1_VOL_MAG_FILTER_SIZE 2
+#define SQ_INSTRUCTION_TFETCH_1_VOL_MIN_FILTER_SIZE 2
+#define SQ_INSTRUCTION_TFETCH_1_USE_COMP_LOD_SIZE 1
+#define SQ_INSTRUCTION_TFETCH_1_USE_REG_LOD_SIZE 2
+#define SQ_INSTRUCTION_TFETCH_1_PRED_SELECT_SIZE 1
+
+#define SQ_INSTRUCTION_TFETCH_1_DST_SEL_X_SHIFT 0
+#define SQ_INSTRUCTION_TFETCH_1_DST_SEL_Y_SHIFT 3
+#define SQ_INSTRUCTION_TFETCH_1_DST_SEL_Z_SHIFT 6
+#define SQ_INSTRUCTION_TFETCH_1_DST_SEL_W_SHIFT 9
+#define SQ_INSTRUCTION_TFETCH_1_MAG_FILTER_SHIFT 12
+#define SQ_INSTRUCTION_TFETCH_1_MIN_FILTER_SHIFT 14
+#define SQ_INSTRUCTION_TFETCH_1_MIP_FILTER_SHIFT 16
+#define SQ_INSTRUCTION_TFETCH_1_ANISO_FILTER_SHIFT 18
+#define SQ_INSTRUCTION_TFETCH_1_ARBITRARY_FILTER_SHIFT 21
+#define SQ_INSTRUCTION_TFETCH_1_VOL_MAG_FILTER_SHIFT 24
+#define SQ_INSTRUCTION_TFETCH_1_VOL_MIN_FILTER_SHIFT 26
+#define SQ_INSTRUCTION_TFETCH_1_USE_COMP_LOD_SHIFT 28
+#define SQ_INSTRUCTION_TFETCH_1_USE_REG_LOD_SHIFT 29
+#define SQ_INSTRUCTION_TFETCH_1_PRED_SELECT_SHIFT 31
+
+#define SQ_INSTRUCTION_TFETCH_1_DST_SEL_X_MASK 0x00000007
+#define SQ_INSTRUCTION_TFETCH_1_DST_SEL_Y_MASK 0x00000038
+#define SQ_INSTRUCTION_TFETCH_1_DST_SEL_Z_MASK 0x000001c0
+#define SQ_INSTRUCTION_TFETCH_1_DST_SEL_W_MASK 0x00000e00
+#define SQ_INSTRUCTION_TFETCH_1_MAG_FILTER_MASK 0x00003000
+#define SQ_INSTRUCTION_TFETCH_1_MIN_FILTER_MASK 0x0000c000
+#define SQ_INSTRUCTION_TFETCH_1_MIP_FILTER_MASK 0x00030000
+#define SQ_INSTRUCTION_TFETCH_1_ANISO_FILTER_MASK 0x001c0000
+#define SQ_INSTRUCTION_TFETCH_1_ARBITRARY_FILTER_MASK 0x00e00000
+#define SQ_INSTRUCTION_TFETCH_1_VOL_MAG_FILTER_MASK 0x03000000
+#define SQ_INSTRUCTION_TFETCH_1_VOL_MIN_FILTER_MASK 0x0c000000
+#define SQ_INSTRUCTION_TFETCH_1_USE_COMP_LOD_MASK 0x10000000
+#define SQ_INSTRUCTION_TFETCH_1_USE_REG_LOD_MASK 0x60000000
+#define SQ_INSTRUCTION_TFETCH_1_PRED_SELECT_MASK 0x80000000
+
+#define SQ_INSTRUCTION_TFETCH_1_MASK \
+ (SQ_INSTRUCTION_TFETCH_1_DST_SEL_X_MASK | \
+ SQ_INSTRUCTION_TFETCH_1_DST_SEL_Y_MASK | \
+ SQ_INSTRUCTION_TFETCH_1_DST_SEL_Z_MASK | \
+ SQ_INSTRUCTION_TFETCH_1_DST_SEL_W_MASK | \
+ SQ_INSTRUCTION_TFETCH_1_MAG_FILTER_MASK | \
+ SQ_INSTRUCTION_TFETCH_1_MIN_FILTER_MASK | \
+ SQ_INSTRUCTION_TFETCH_1_MIP_FILTER_MASK | \
+ SQ_INSTRUCTION_TFETCH_1_ANISO_FILTER_MASK | \
+ SQ_INSTRUCTION_TFETCH_1_ARBITRARY_FILTER_MASK | \
+ SQ_INSTRUCTION_TFETCH_1_VOL_MAG_FILTER_MASK | \
+ SQ_INSTRUCTION_TFETCH_1_VOL_MIN_FILTER_MASK | \
+ SQ_INSTRUCTION_TFETCH_1_USE_COMP_LOD_MASK | \
+ SQ_INSTRUCTION_TFETCH_1_USE_REG_LOD_MASK | \
+ SQ_INSTRUCTION_TFETCH_1_PRED_SELECT_MASK)
+
+#define SQ_INSTRUCTION_TFETCH_1(dst_sel_x, dst_sel_y, dst_sel_z, dst_sel_w, mag_filter, min_filter, mip_filter, aniso_filter, arbitrary_filter, vol_mag_filter, vol_min_filter, use_comp_lod, use_reg_lod, pred_select) \
+ ((dst_sel_x << SQ_INSTRUCTION_TFETCH_1_DST_SEL_X_SHIFT) | \
+ (dst_sel_y << SQ_INSTRUCTION_TFETCH_1_DST_SEL_Y_SHIFT) | \
+ (dst_sel_z << SQ_INSTRUCTION_TFETCH_1_DST_SEL_Z_SHIFT) | \
+ (dst_sel_w << SQ_INSTRUCTION_TFETCH_1_DST_SEL_W_SHIFT) | \
+ (mag_filter << SQ_INSTRUCTION_TFETCH_1_MAG_FILTER_SHIFT) | \
+ (min_filter << SQ_INSTRUCTION_TFETCH_1_MIN_FILTER_SHIFT) | \
+ (mip_filter << SQ_INSTRUCTION_TFETCH_1_MIP_FILTER_SHIFT) | \
+ (aniso_filter << SQ_INSTRUCTION_TFETCH_1_ANISO_FILTER_SHIFT) | \
+ (arbitrary_filter << SQ_INSTRUCTION_TFETCH_1_ARBITRARY_FILTER_SHIFT) | \
+ (vol_mag_filter << SQ_INSTRUCTION_TFETCH_1_VOL_MAG_FILTER_SHIFT) | \
+ (vol_min_filter << SQ_INSTRUCTION_TFETCH_1_VOL_MIN_FILTER_SHIFT) | \
+ (use_comp_lod << SQ_INSTRUCTION_TFETCH_1_USE_COMP_LOD_SHIFT) | \
+ (use_reg_lod << SQ_INSTRUCTION_TFETCH_1_USE_REG_LOD_SHIFT) | \
+ (pred_select << SQ_INSTRUCTION_TFETCH_1_PRED_SELECT_SHIFT))
+
+#define SQ_INSTRUCTION_TFETCH_1_GET_DST_SEL_X(sq_instruction_tfetch_1) \
+ ((sq_instruction_tfetch_1 & SQ_INSTRUCTION_TFETCH_1_DST_SEL_X_MASK) >> SQ_INSTRUCTION_TFETCH_1_DST_SEL_X_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_GET_DST_SEL_Y(sq_instruction_tfetch_1) \
+ ((sq_instruction_tfetch_1 & SQ_INSTRUCTION_TFETCH_1_DST_SEL_Y_MASK) >> SQ_INSTRUCTION_TFETCH_1_DST_SEL_Y_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_GET_DST_SEL_Z(sq_instruction_tfetch_1) \
+ ((sq_instruction_tfetch_1 & SQ_INSTRUCTION_TFETCH_1_DST_SEL_Z_MASK) >> SQ_INSTRUCTION_TFETCH_1_DST_SEL_Z_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_GET_DST_SEL_W(sq_instruction_tfetch_1) \
+ ((sq_instruction_tfetch_1 & SQ_INSTRUCTION_TFETCH_1_DST_SEL_W_MASK) >> SQ_INSTRUCTION_TFETCH_1_DST_SEL_W_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_GET_MAG_FILTER(sq_instruction_tfetch_1) \
+ ((sq_instruction_tfetch_1 & SQ_INSTRUCTION_TFETCH_1_MAG_FILTER_MASK) >> SQ_INSTRUCTION_TFETCH_1_MAG_FILTER_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_GET_MIN_FILTER(sq_instruction_tfetch_1) \
+ ((sq_instruction_tfetch_1 & SQ_INSTRUCTION_TFETCH_1_MIN_FILTER_MASK) >> SQ_INSTRUCTION_TFETCH_1_MIN_FILTER_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_GET_MIP_FILTER(sq_instruction_tfetch_1) \
+ ((sq_instruction_tfetch_1 & SQ_INSTRUCTION_TFETCH_1_MIP_FILTER_MASK) >> SQ_INSTRUCTION_TFETCH_1_MIP_FILTER_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_GET_ANISO_FILTER(sq_instruction_tfetch_1) \
+ ((sq_instruction_tfetch_1 & SQ_INSTRUCTION_TFETCH_1_ANISO_FILTER_MASK) >> SQ_INSTRUCTION_TFETCH_1_ANISO_FILTER_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_GET_ARBITRARY_FILTER(sq_instruction_tfetch_1) \
+ ((sq_instruction_tfetch_1 & SQ_INSTRUCTION_TFETCH_1_ARBITRARY_FILTER_MASK) >> SQ_INSTRUCTION_TFETCH_1_ARBITRARY_FILTER_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_GET_VOL_MAG_FILTER(sq_instruction_tfetch_1) \
+ ((sq_instruction_tfetch_1 & SQ_INSTRUCTION_TFETCH_1_VOL_MAG_FILTER_MASK) >> SQ_INSTRUCTION_TFETCH_1_VOL_MAG_FILTER_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_GET_VOL_MIN_FILTER(sq_instruction_tfetch_1) \
+ ((sq_instruction_tfetch_1 & SQ_INSTRUCTION_TFETCH_1_VOL_MIN_FILTER_MASK) >> SQ_INSTRUCTION_TFETCH_1_VOL_MIN_FILTER_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_GET_USE_COMP_LOD(sq_instruction_tfetch_1) \
+ ((sq_instruction_tfetch_1 & SQ_INSTRUCTION_TFETCH_1_USE_COMP_LOD_MASK) >> SQ_INSTRUCTION_TFETCH_1_USE_COMP_LOD_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_GET_USE_REG_LOD(sq_instruction_tfetch_1) \
+ ((sq_instruction_tfetch_1 & SQ_INSTRUCTION_TFETCH_1_USE_REG_LOD_MASK) >> SQ_INSTRUCTION_TFETCH_1_USE_REG_LOD_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_GET_PRED_SELECT(sq_instruction_tfetch_1) \
+ ((sq_instruction_tfetch_1 & SQ_INSTRUCTION_TFETCH_1_PRED_SELECT_MASK) >> SQ_INSTRUCTION_TFETCH_1_PRED_SELECT_SHIFT)
+
+#define SQ_INSTRUCTION_TFETCH_1_SET_DST_SEL_X(sq_instruction_tfetch_1_reg, dst_sel_x) \
+ sq_instruction_tfetch_1_reg = (sq_instruction_tfetch_1_reg & ~SQ_INSTRUCTION_TFETCH_1_DST_SEL_X_MASK) | (dst_sel_x << SQ_INSTRUCTION_TFETCH_1_DST_SEL_X_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_SET_DST_SEL_Y(sq_instruction_tfetch_1_reg, dst_sel_y) \
+ sq_instruction_tfetch_1_reg = (sq_instruction_tfetch_1_reg & ~SQ_INSTRUCTION_TFETCH_1_DST_SEL_Y_MASK) | (dst_sel_y << SQ_INSTRUCTION_TFETCH_1_DST_SEL_Y_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_SET_DST_SEL_Z(sq_instruction_tfetch_1_reg, dst_sel_z) \
+ sq_instruction_tfetch_1_reg = (sq_instruction_tfetch_1_reg & ~SQ_INSTRUCTION_TFETCH_1_DST_SEL_Z_MASK) | (dst_sel_z << SQ_INSTRUCTION_TFETCH_1_DST_SEL_Z_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_SET_DST_SEL_W(sq_instruction_tfetch_1_reg, dst_sel_w) \
+ sq_instruction_tfetch_1_reg = (sq_instruction_tfetch_1_reg & ~SQ_INSTRUCTION_TFETCH_1_DST_SEL_W_MASK) | (dst_sel_w << SQ_INSTRUCTION_TFETCH_1_DST_SEL_W_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_SET_MAG_FILTER(sq_instruction_tfetch_1_reg, mag_filter) \
+ sq_instruction_tfetch_1_reg = (sq_instruction_tfetch_1_reg & ~SQ_INSTRUCTION_TFETCH_1_MAG_FILTER_MASK) | (mag_filter << SQ_INSTRUCTION_TFETCH_1_MAG_FILTER_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_SET_MIN_FILTER(sq_instruction_tfetch_1_reg, min_filter) \
+ sq_instruction_tfetch_1_reg = (sq_instruction_tfetch_1_reg & ~SQ_INSTRUCTION_TFETCH_1_MIN_FILTER_MASK) | (min_filter << SQ_INSTRUCTION_TFETCH_1_MIN_FILTER_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_SET_MIP_FILTER(sq_instruction_tfetch_1_reg, mip_filter) \
+ sq_instruction_tfetch_1_reg = (sq_instruction_tfetch_1_reg & ~SQ_INSTRUCTION_TFETCH_1_MIP_FILTER_MASK) | (mip_filter << SQ_INSTRUCTION_TFETCH_1_MIP_FILTER_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_SET_ANISO_FILTER(sq_instruction_tfetch_1_reg, aniso_filter) \
+ sq_instruction_tfetch_1_reg = (sq_instruction_tfetch_1_reg & ~SQ_INSTRUCTION_TFETCH_1_ANISO_FILTER_MASK) | (aniso_filter << SQ_INSTRUCTION_TFETCH_1_ANISO_FILTER_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_SET_ARBITRARY_FILTER(sq_instruction_tfetch_1_reg, arbitrary_filter) \
+ sq_instruction_tfetch_1_reg = (sq_instruction_tfetch_1_reg & ~SQ_INSTRUCTION_TFETCH_1_ARBITRARY_FILTER_MASK) | (arbitrary_filter << SQ_INSTRUCTION_TFETCH_1_ARBITRARY_FILTER_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_SET_VOL_MAG_FILTER(sq_instruction_tfetch_1_reg, vol_mag_filter) \
+ sq_instruction_tfetch_1_reg = (sq_instruction_tfetch_1_reg & ~SQ_INSTRUCTION_TFETCH_1_VOL_MAG_FILTER_MASK) | (vol_mag_filter << SQ_INSTRUCTION_TFETCH_1_VOL_MAG_FILTER_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_SET_VOL_MIN_FILTER(sq_instruction_tfetch_1_reg, vol_min_filter) \
+ sq_instruction_tfetch_1_reg = (sq_instruction_tfetch_1_reg & ~SQ_INSTRUCTION_TFETCH_1_VOL_MIN_FILTER_MASK) | (vol_min_filter << SQ_INSTRUCTION_TFETCH_1_VOL_MIN_FILTER_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_SET_USE_COMP_LOD(sq_instruction_tfetch_1_reg, use_comp_lod) \
+ sq_instruction_tfetch_1_reg = (sq_instruction_tfetch_1_reg & ~SQ_INSTRUCTION_TFETCH_1_USE_COMP_LOD_MASK) | (use_comp_lod << SQ_INSTRUCTION_TFETCH_1_USE_COMP_LOD_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_SET_USE_REG_LOD(sq_instruction_tfetch_1_reg, use_reg_lod) \
+ sq_instruction_tfetch_1_reg = (sq_instruction_tfetch_1_reg & ~SQ_INSTRUCTION_TFETCH_1_USE_REG_LOD_MASK) | (use_reg_lod << SQ_INSTRUCTION_TFETCH_1_USE_REG_LOD_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_SET_PRED_SELECT(sq_instruction_tfetch_1_reg, pred_select) \
+ sq_instruction_tfetch_1_reg = (sq_instruction_tfetch_1_reg & ~SQ_INSTRUCTION_TFETCH_1_PRED_SELECT_MASK) | (pred_select << SQ_INSTRUCTION_TFETCH_1_PRED_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_tfetch_1_t {
+ unsigned int dst_sel_x : SQ_INSTRUCTION_TFETCH_1_DST_SEL_X_SIZE;
+ unsigned int dst_sel_y : SQ_INSTRUCTION_TFETCH_1_DST_SEL_Y_SIZE;
+ unsigned int dst_sel_z : SQ_INSTRUCTION_TFETCH_1_DST_SEL_Z_SIZE;
+ unsigned int dst_sel_w : SQ_INSTRUCTION_TFETCH_1_DST_SEL_W_SIZE;
+ unsigned int mag_filter : SQ_INSTRUCTION_TFETCH_1_MAG_FILTER_SIZE;
+ unsigned int min_filter : SQ_INSTRUCTION_TFETCH_1_MIN_FILTER_SIZE;
+ unsigned int mip_filter : SQ_INSTRUCTION_TFETCH_1_MIP_FILTER_SIZE;
+ unsigned int aniso_filter : SQ_INSTRUCTION_TFETCH_1_ANISO_FILTER_SIZE;
+ unsigned int arbitrary_filter : SQ_INSTRUCTION_TFETCH_1_ARBITRARY_FILTER_SIZE;
+ unsigned int vol_mag_filter : SQ_INSTRUCTION_TFETCH_1_VOL_MAG_FILTER_SIZE;
+ unsigned int vol_min_filter : SQ_INSTRUCTION_TFETCH_1_VOL_MIN_FILTER_SIZE;
+ unsigned int use_comp_lod : SQ_INSTRUCTION_TFETCH_1_USE_COMP_LOD_SIZE;
+ unsigned int use_reg_lod : SQ_INSTRUCTION_TFETCH_1_USE_REG_LOD_SIZE;
+ unsigned int pred_select : SQ_INSTRUCTION_TFETCH_1_PRED_SELECT_SIZE;
+ } sq_instruction_tfetch_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_tfetch_1_t {
+ unsigned int pred_select : SQ_INSTRUCTION_TFETCH_1_PRED_SELECT_SIZE;
+ unsigned int use_reg_lod : SQ_INSTRUCTION_TFETCH_1_USE_REG_LOD_SIZE;
+ unsigned int use_comp_lod : SQ_INSTRUCTION_TFETCH_1_USE_COMP_LOD_SIZE;
+ unsigned int vol_min_filter : SQ_INSTRUCTION_TFETCH_1_VOL_MIN_FILTER_SIZE;
+ unsigned int vol_mag_filter : SQ_INSTRUCTION_TFETCH_1_VOL_MAG_FILTER_SIZE;
+ unsigned int arbitrary_filter : SQ_INSTRUCTION_TFETCH_1_ARBITRARY_FILTER_SIZE;
+ unsigned int aniso_filter : SQ_INSTRUCTION_TFETCH_1_ANISO_FILTER_SIZE;
+ unsigned int mip_filter : SQ_INSTRUCTION_TFETCH_1_MIP_FILTER_SIZE;
+ unsigned int min_filter : SQ_INSTRUCTION_TFETCH_1_MIN_FILTER_SIZE;
+ unsigned int mag_filter : SQ_INSTRUCTION_TFETCH_1_MAG_FILTER_SIZE;
+ unsigned int dst_sel_w : SQ_INSTRUCTION_TFETCH_1_DST_SEL_W_SIZE;
+ unsigned int dst_sel_z : SQ_INSTRUCTION_TFETCH_1_DST_SEL_Z_SIZE;
+ unsigned int dst_sel_y : SQ_INSTRUCTION_TFETCH_1_DST_SEL_Y_SIZE;
+ unsigned int dst_sel_x : SQ_INSTRUCTION_TFETCH_1_DST_SEL_X_SIZE;
+ } sq_instruction_tfetch_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_tfetch_1_t f;
+} sq_instruction_tfetch_1_u;
+
+
+/*
+ * SQ_INSTRUCTION_TFETCH_2 struct
+ */
+
+#define SQ_INSTRUCTION_TFETCH_2_USE_REG_GRADIENTS_SIZE 1
+#define SQ_INSTRUCTION_TFETCH_2_SAMPLE_LOCATION_SIZE 1
+#define SQ_INSTRUCTION_TFETCH_2_LOD_BIAS_SIZE 7
+#define SQ_INSTRUCTION_TFETCH_2_UNUSED_SIZE 7
+#define SQ_INSTRUCTION_TFETCH_2_OFFSET_X_SIZE 5
+#define SQ_INSTRUCTION_TFETCH_2_OFFSET_Y_SIZE 5
+#define SQ_INSTRUCTION_TFETCH_2_OFFSET_Z_SIZE 5
+#define SQ_INSTRUCTION_TFETCH_2_PRED_CONDITION_SIZE 1
+
+#define SQ_INSTRUCTION_TFETCH_2_USE_REG_GRADIENTS_SHIFT 0
+#define SQ_INSTRUCTION_TFETCH_2_SAMPLE_LOCATION_SHIFT 1
+#define SQ_INSTRUCTION_TFETCH_2_LOD_BIAS_SHIFT 2
+#define SQ_INSTRUCTION_TFETCH_2_UNUSED_SHIFT 9
+#define SQ_INSTRUCTION_TFETCH_2_OFFSET_X_SHIFT 16
+#define SQ_INSTRUCTION_TFETCH_2_OFFSET_Y_SHIFT 21
+#define SQ_INSTRUCTION_TFETCH_2_OFFSET_Z_SHIFT 26
+#define SQ_INSTRUCTION_TFETCH_2_PRED_CONDITION_SHIFT 31
+
+#define SQ_INSTRUCTION_TFETCH_2_USE_REG_GRADIENTS_MASK 0x00000001
+#define SQ_INSTRUCTION_TFETCH_2_SAMPLE_LOCATION_MASK 0x00000002
+#define SQ_INSTRUCTION_TFETCH_2_LOD_BIAS_MASK 0x000001fc
+#define SQ_INSTRUCTION_TFETCH_2_UNUSED_MASK 0x0000fe00
+#define SQ_INSTRUCTION_TFETCH_2_OFFSET_X_MASK 0x001f0000
+#define SQ_INSTRUCTION_TFETCH_2_OFFSET_Y_MASK 0x03e00000
+#define SQ_INSTRUCTION_TFETCH_2_OFFSET_Z_MASK 0x7c000000
+#define SQ_INSTRUCTION_TFETCH_2_PRED_CONDITION_MASK 0x80000000
+
+#define SQ_INSTRUCTION_TFETCH_2_MASK \
+ (SQ_INSTRUCTION_TFETCH_2_USE_REG_GRADIENTS_MASK | \
+ SQ_INSTRUCTION_TFETCH_2_SAMPLE_LOCATION_MASK | \
+ SQ_INSTRUCTION_TFETCH_2_LOD_BIAS_MASK | \
+ SQ_INSTRUCTION_TFETCH_2_UNUSED_MASK | \
+ SQ_INSTRUCTION_TFETCH_2_OFFSET_X_MASK | \
+ SQ_INSTRUCTION_TFETCH_2_OFFSET_Y_MASK | \
+ SQ_INSTRUCTION_TFETCH_2_OFFSET_Z_MASK | \
+ SQ_INSTRUCTION_TFETCH_2_PRED_CONDITION_MASK)
+
+#define SQ_INSTRUCTION_TFETCH_2(use_reg_gradients, sample_location, lod_bias, unused, offset_x, offset_y, offset_z, pred_condition) \
+ ((use_reg_gradients << SQ_INSTRUCTION_TFETCH_2_USE_REG_GRADIENTS_SHIFT) | \
+ (sample_location << SQ_INSTRUCTION_TFETCH_2_SAMPLE_LOCATION_SHIFT) | \
+ (lod_bias << SQ_INSTRUCTION_TFETCH_2_LOD_BIAS_SHIFT) | \
+ (unused << SQ_INSTRUCTION_TFETCH_2_UNUSED_SHIFT) | \
+ (offset_x << SQ_INSTRUCTION_TFETCH_2_OFFSET_X_SHIFT) | \
+ (offset_y << SQ_INSTRUCTION_TFETCH_2_OFFSET_Y_SHIFT) | \
+ (offset_z << SQ_INSTRUCTION_TFETCH_2_OFFSET_Z_SHIFT) | \
+ (pred_condition << SQ_INSTRUCTION_TFETCH_2_PRED_CONDITION_SHIFT))
+
+#define SQ_INSTRUCTION_TFETCH_2_GET_USE_REG_GRADIENTS(sq_instruction_tfetch_2) \
+ ((sq_instruction_tfetch_2 & SQ_INSTRUCTION_TFETCH_2_USE_REG_GRADIENTS_MASK) >> SQ_INSTRUCTION_TFETCH_2_USE_REG_GRADIENTS_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_2_GET_SAMPLE_LOCATION(sq_instruction_tfetch_2) \
+ ((sq_instruction_tfetch_2 & SQ_INSTRUCTION_TFETCH_2_SAMPLE_LOCATION_MASK) >> SQ_INSTRUCTION_TFETCH_2_SAMPLE_LOCATION_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_2_GET_LOD_BIAS(sq_instruction_tfetch_2) \
+ ((sq_instruction_tfetch_2 & SQ_INSTRUCTION_TFETCH_2_LOD_BIAS_MASK) >> SQ_INSTRUCTION_TFETCH_2_LOD_BIAS_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_2_GET_UNUSED(sq_instruction_tfetch_2) \
+ ((sq_instruction_tfetch_2 & SQ_INSTRUCTION_TFETCH_2_UNUSED_MASK) >> SQ_INSTRUCTION_TFETCH_2_UNUSED_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_2_GET_OFFSET_X(sq_instruction_tfetch_2) \
+ ((sq_instruction_tfetch_2 & SQ_INSTRUCTION_TFETCH_2_OFFSET_X_MASK) >> SQ_INSTRUCTION_TFETCH_2_OFFSET_X_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_2_GET_OFFSET_Y(sq_instruction_tfetch_2) \
+ ((sq_instruction_tfetch_2 & SQ_INSTRUCTION_TFETCH_2_OFFSET_Y_MASK) >> SQ_INSTRUCTION_TFETCH_2_OFFSET_Y_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_2_GET_OFFSET_Z(sq_instruction_tfetch_2) \
+ ((sq_instruction_tfetch_2 & SQ_INSTRUCTION_TFETCH_2_OFFSET_Z_MASK) >> SQ_INSTRUCTION_TFETCH_2_OFFSET_Z_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_2_GET_PRED_CONDITION(sq_instruction_tfetch_2) \
+ ((sq_instruction_tfetch_2 & SQ_INSTRUCTION_TFETCH_2_PRED_CONDITION_MASK) >> SQ_INSTRUCTION_TFETCH_2_PRED_CONDITION_SHIFT)
+
+#define SQ_INSTRUCTION_TFETCH_2_SET_USE_REG_GRADIENTS(sq_instruction_tfetch_2_reg, use_reg_gradients) \
+ sq_instruction_tfetch_2_reg = (sq_instruction_tfetch_2_reg & ~SQ_INSTRUCTION_TFETCH_2_USE_REG_GRADIENTS_MASK) | (use_reg_gradients << SQ_INSTRUCTION_TFETCH_2_USE_REG_GRADIENTS_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_2_SET_SAMPLE_LOCATION(sq_instruction_tfetch_2_reg, sample_location) \
+ sq_instruction_tfetch_2_reg = (sq_instruction_tfetch_2_reg & ~SQ_INSTRUCTION_TFETCH_2_SAMPLE_LOCATION_MASK) | (sample_location << SQ_INSTRUCTION_TFETCH_2_SAMPLE_LOCATION_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_2_SET_LOD_BIAS(sq_instruction_tfetch_2_reg, lod_bias) \
+ sq_instruction_tfetch_2_reg = (sq_instruction_tfetch_2_reg & ~SQ_INSTRUCTION_TFETCH_2_LOD_BIAS_MASK) | (lod_bias << SQ_INSTRUCTION_TFETCH_2_LOD_BIAS_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_2_SET_UNUSED(sq_instruction_tfetch_2_reg, unused) \
+ sq_instruction_tfetch_2_reg = (sq_instruction_tfetch_2_reg & ~SQ_INSTRUCTION_TFETCH_2_UNUSED_MASK) | (unused << SQ_INSTRUCTION_TFETCH_2_UNUSED_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_2_SET_OFFSET_X(sq_instruction_tfetch_2_reg, offset_x) \
+ sq_instruction_tfetch_2_reg = (sq_instruction_tfetch_2_reg & ~SQ_INSTRUCTION_TFETCH_2_OFFSET_X_MASK) | (offset_x << SQ_INSTRUCTION_TFETCH_2_OFFSET_X_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_2_SET_OFFSET_Y(sq_instruction_tfetch_2_reg, offset_y) \
+ sq_instruction_tfetch_2_reg = (sq_instruction_tfetch_2_reg & ~SQ_INSTRUCTION_TFETCH_2_OFFSET_Y_MASK) | (offset_y << SQ_INSTRUCTION_TFETCH_2_OFFSET_Y_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_2_SET_OFFSET_Z(sq_instruction_tfetch_2_reg, offset_z) \
+ sq_instruction_tfetch_2_reg = (sq_instruction_tfetch_2_reg & ~SQ_INSTRUCTION_TFETCH_2_OFFSET_Z_MASK) | (offset_z << SQ_INSTRUCTION_TFETCH_2_OFFSET_Z_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_2_SET_PRED_CONDITION(sq_instruction_tfetch_2_reg, pred_condition) \
+ sq_instruction_tfetch_2_reg = (sq_instruction_tfetch_2_reg & ~SQ_INSTRUCTION_TFETCH_2_PRED_CONDITION_MASK) | (pred_condition << SQ_INSTRUCTION_TFETCH_2_PRED_CONDITION_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_tfetch_2_t {
+ unsigned int use_reg_gradients : SQ_INSTRUCTION_TFETCH_2_USE_REG_GRADIENTS_SIZE;
+ unsigned int sample_location : SQ_INSTRUCTION_TFETCH_2_SAMPLE_LOCATION_SIZE;
+ unsigned int lod_bias : SQ_INSTRUCTION_TFETCH_2_LOD_BIAS_SIZE;
+ unsigned int unused : SQ_INSTRUCTION_TFETCH_2_UNUSED_SIZE;
+ unsigned int offset_x : SQ_INSTRUCTION_TFETCH_2_OFFSET_X_SIZE;
+ unsigned int offset_y : SQ_INSTRUCTION_TFETCH_2_OFFSET_Y_SIZE;
+ unsigned int offset_z : SQ_INSTRUCTION_TFETCH_2_OFFSET_Z_SIZE;
+ unsigned int pred_condition : SQ_INSTRUCTION_TFETCH_2_PRED_CONDITION_SIZE;
+ } sq_instruction_tfetch_2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_tfetch_2_t {
+ unsigned int pred_condition : SQ_INSTRUCTION_TFETCH_2_PRED_CONDITION_SIZE;
+ unsigned int offset_z : SQ_INSTRUCTION_TFETCH_2_OFFSET_Z_SIZE;
+ unsigned int offset_y : SQ_INSTRUCTION_TFETCH_2_OFFSET_Y_SIZE;
+ unsigned int offset_x : SQ_INSTRUCTION_TFETCH_2_OFFSET_X_SIZE;
+ unsigned int unused : SQ_INSTRUCTION_TFETCH_2_UNUSED_SIZE;
+ unsigned int lod_bias : SQ_INSTRUCTION_TFETCH_2_LOD_BIAS_SIZE;
+ unsigned int sample_location : SQ_INSTRUCTION_TFETCH_2_SAMPLE_LOCATION_SIZE;
+ unsigned int use_reg_gradients : SQ_INSTRUCTION_TFETCH_2_USE_REG_GRADIENTS_SIZE;
+ } sq_instruction_tfetch_2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_tfetch_2_t f;
+} sq_instruction_tfetch_2_u;
+
+
+/*
+ * SQ_INSTRUCTION_VFETCH_0 struct
+ */
+
+#define SQ_INSTRUCTION_VFETCH_0_OPCODE_SIZE 5
+#define SQ_INSTRUCTION_VFETCH_0_SRC_GPR_SIZE 6
+#define SQ_INSTRUCTION_VFETCH_0_SRC_GPR_AM_SIZE 1
+#define SQ_INSTRUCTION_VFETCH_0_DST_GPR_SIZE 6
+#define SQ_INSTRUCTION_VFETCH_0_DST_GPR_AM_SIZE 1
+#define SQ_INSTRUCTION_VFETCH_0_MUST_BE_ONE_SIZE 1
+#define SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_SIZE 5
+#define SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_SEL_SIZE 2
+#define SQ_INSTRUCTION_VFETCH_0_SRC_SEL_SIZE 2
+
+#define SQ_INSTRUCTION_VFETCH_0_OPCODE_SHIFT 0
+#define SQ_INSTRUCTION_VFETCH_0_SRC_GPR_SHIFT 5
+#define SQ_INSTRUCTION_VFETCH_0_SRC_GPR_AM_SHIFT 11
+#define SQ_INSTRUCTION_VFETCH_0_DST_GPR_SHIFT 12
+#define SQ_INSTRUCTION_VFETCH_0_DST_GPR_AM_SHIFT 18
+#define SQ_INSTRUCTION_VFETCH_0_MUST_BE_ONE_SHIFT 19
+#define SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_SHIFT 20
+#define SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_SEL_SHIFT 25
+#define SQ_INSTRUCTION_VFETCH_0_SRC_SEL_SHIFT 30
+
+#define SQ_INSTRUCTION_VFETCH_0_OPCODE_MASK 0x0000001f
+#define SQ_INSTRUCTION_VFETCH_0_SRC_GPR_MASK 0x000007e0
+#define SQ_INSTRUCTION_VFETCH_0_SRC_GPR_AM_MASK 0x00000800
+#define SQ_INSTRUCTION_VFETCH_0_DST_GPR_MASK 0x0003f000
+#define SQ_INSTRUCTION_VFETCH_0_DST_GPR_AM_MASK 0x00040000
+#define SQ_INSTRUCTION_VFETCH_0_MUST_BE_ONE_MASK 0x00080000
+#define SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_MASK 0x01f00000
+#define SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_SEL_MASK 0x06000000
+#define SQ_INSTRUCTION_VFETCH_0_SRC_SEL_MASK 0xc0000000
+
+#define SQ_INSTRUCTION_VFETCH_0_MASK \
+ (SQ_INSTRUCTION_VFETCH_0_OPCODE_MASK | \
+ SQ_INSTRUCTION_VFETCH_0_SRC_GPR_MASK | \
+ SQ_INSTRUCTION_VFETCH_0_SRC_GPR_AM_MASK | \
+ SQ_INSTRUCTION_VFETCH_0_DST_GPR_MASK | \
+ SQ_INSTRUCTION_VFETCH_0_DST_GPR_AM_MASK | \
+ SQ_INSTRUCTION_VFETCH_0_MUST_BE_ONE_MASK | \
+ SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_MASK | \
+ SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_SEL_MASK | \
+ SQ_INSTRUCTION_VFETCH_0_SRC_SEL_MASK)
+
+#define SQ_INSTRUCTION_VFETCH_0(opcode, src_gpr, src_gpr_am, dst_gpr, dst_gpr_am, must_be_one, const_index, const_index_sel, src_sel) \
+ ((opcode << SQ_INSTRUCTION_VFETCH_0_OPCODE_SHIFT) | \
+ (src_gpr << SQ_INSTRUCTION_VFETCH_0_SRC_GPR_SHIFT) | \
+ (src_gpr_am << SQ_INSTRUCTION_VFETCH_0_SRC_GPR_AM_SHIFT) | \
+ (dst_gpr << SQ_INSTRUCTION_VFETCH_0_DST_GPR_SHIFT) | \
+ (dst_gpr_am << SQ_INSTRUCTION_VFETCH_0_DST_GPR_AM_SHIFT) | \
+ (must_be_one << SQ_INSTRUCTION_VFETCH_0_MUST_BE_ONE_SHIFT) | \
+ (const_index << SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_SHIFT) | \
+ (const_index_sel << SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_SEL_SHIFT) | \
+ (src_sel << SQ_INSTRUCTION_VFETCH_0_SRC_SEL_SHIFT))
+
+#define SQ_INSTRUCTION_VFETCH_0_GET_OPCODE(sq_instruction_vfetch_0) \
+ ((sq_instruction_vfetch_0 & SQ_INSTRUCTION_VFETCH_0_OPCODE_MASK) >> SQ_INSTRUCTION_VFETCH_0_OPCODE_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_0_GET_SRC_GPR(sq_instruction_vfetch_0) \
+ ((sq_instruction_vfetch_0 & SQ_INSTRUCTION_VFETCH_0_SRC_GPR_MASK) >> SQ_INSTRUCTION_VFETCH_0_SRC_GPR_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_0_GET_SRC_GPR_AM(sq_instruction_vfetch_0) \
+ ((sq_instruction_vfetch_0 & SQ_INSTRUCTION_VFETCH_0_SRC_GPR_AM_MASK) >> SQ_INSTRUCTION_VFETCH_0_SRC_GPR_AM_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_0_GET_DST_GPR(sq_instruction_vfetch_0) \
+ ((sq_instruction_vfetch_0 & SQ_INSTRUCTION_VFETCH_0_DST_GPR_MASK) >> SQ_INSTRUCTION_VFETCH_0_DST_GPR_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_0_GET_DST_GPR_AM(sq_instruction_vfetch_0) \
+ ((sq_instruction_vfetch_0 & SQ_INSTRUCTION_VFETCH_0_DST_GPR_AM_MASK) >> SQ_INSTRUCTION_VFETCH_0_DST_GPR_AM_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_0_GET_MUST_BE_ONE(sq_instruction_vfetch_0) \
+ ((sq_instruction_vfetch_0 & SQ_INSTRUCTION_VFETCH_0_MUST_BE_ONE_MASK) >> SQ_INSTRUCTION_VFETCH_0_MUST_BE_ONE_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_0_GET_CONST_INDEX(sq_instruction_vfetch_0) \
+ ((sq_instruction_vfetch_0 & SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_MASK) >> SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_0_GET_CONST_INDEX_SEL(sq_instruction_vfetch_0) \
+ ((sq_instruction_vfetch_0 & SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_SEL_MASK) >> SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_SEL_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_0_GET_SRC_SEL(sq_instruction_vfetch_0) \
+ ((sq_instruction_vfetch_0 & SQ_INSTRUCTION_VFETCH_0_SRC_SEL_MASK) >> SQ_INSTRUCTION_VFETCH_0_SRC_SEL_SHIFT)
+
+#define SQ_INSTRUCTION_VFETCH_0_SET_OPCODE(sq_instruction_vfetch_0_reg, opcode) \
+ sq_instruction_vfetch_0_reg = (sq_instruction_vfetch_0_reg & ~SQ_INSTRUCTION_VFETCH_0_OPCODE_MASK) | (opcode << SQ_INSTRUCTION_VFETCH_0_OPCODE_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_0_SET_SRC_GPR(sq_instruction_vfetch_0_reg, src_gpr) \
+ sq_instruction_vfetch_0_reg = (sq_instruction_vfetch_0_reg & ~SQ_INSTRUCTION_VFETCH_0_SRC_GPR_MASK) | (src_gpr << SQ_INSTRUCTION_VFETCH_0_SRC_GPR_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_0_SET_SRC_GPR_AM(sq_instruction_vfetch_0_reg, src_gpr_am) \
+ sq_instruction_vfetch_0_reg = (sq_instruction_vfetch_0_reg & ~SQ_INSTRUCTION_VFETCH_0_SRC_GPR_AM_MASK) | (src_gpr_am << SQ_INSTRUCTION_VFETCH_0_SRC_GPR_AM_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_0_SET_DST_GPR(sq_instruction_vfetch_0_reg, dst_gpr) \
+ sq_instruction_vfetch_0_reg = (sq_instruction_vfetch_0_reg & ~SQ_INSTRUCTION_VFETCH_0_DST_GPR_MASK) | (dst_gpr << SQ_INSTRUCTION_VFETCH_0_DST_GPR_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_0_SET_DST_GPR_AM(sq_instruction_vfetch_0_reg, dst_gpr_am) \
+ sq_instruction_vfetch_0_reg = (sq_instruction_vfetch_0_reg & ~SQ_INSTRUCTION_VFETCH_0_DST_GPR_AM_MASK) | (dst_gpr_am << SQ_INSTRUCTION_VFETCH_0_DST_GPR_AM_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_0_SET_MUST_BE_ONE(sq_instruction_vfetch_0_reg, must_be_one) \
+ sq_instruction_vfetch_0_reg = (sq_instruction_vfetch_0_reg & ~SQ_INSTRUCTION_VFETCH_0_MUST_BE_ONE_MASK) | (must_be_one << SQ_INSTRUCTION_VFETCH_0_MUST_BE_ONE_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_0_SET_CONST_INDEX(sq_instruction_vfetch_0_reg, const_index) \
+ sq_instruction_vfetch_0_reg = (sq_instruction_vfetch_0_reg & ~SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_MASK) | (const_index << SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_0_SET_CONST_INDEX_SEL(sq_instruction_vfetch_0_reg, const_index_sel) \
+ sq_instruction_vfetch_0_reg = (sq_instruction_vfetch_0_reg & ~SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_SEL_MASK) | (const_index_sel << SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_SEL_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_0_SET_SRC_SEL(sq_instruction_vfetch_0_reg, src_sel) \
+ sq_instruction_vfetch_0_reg = (sq_instruction_vfetch_0_reg & ~SQ_INSTRUCTION_VFETCH_0_SRC_SEL_MASK) | (src_sel << SQ_INSTRUCTION_VFETCH_0_SRC_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_vfetch_0_t {
+ unsigned int opcode : SQ_INSTRUCTION_VFETCH_0_OPCODE_SIZE;
+ unsigned int src_gpr : SQ_INSTRUCTION_VFETCH_0_SRC_GPR_SIZE;
+ unsigned int src_gpr_am : SQ_INSTRUCTION_VFETCH_0_SRC_GPR_AM_SIZE;
+ unsigned int dst_gpr : SQ_INSTRUCTION_VFETCH_0_DST_GPR_SIZE;
+ unsigned int dst_gpr_am : SQ_INSTRUCTION_VFETCH_0_DST_GPR_AM_SIZE;
+ unsigned int must_be_one : SQ_INSTRUCTION_VFETCH_0_MUST_BE_ONE_SIZE;
+ unsigned int const_index : SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_SIZE;
+ unsigned int const_index_sel : SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_SEL_SIZE;
+ unsigned int : 3;
+ unsigned int src_sel : SQ_INSTRUCTION_VFETCH_0_SRC_SEL_SIZE;
+ } sq_instruction_vfetch_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_vfetch_0_t {
+ unsigned int src_sel : SQ_INSTRUCTION_VFETCH_0_SRC_SEL_SIZE;
+ unsigned int : 3;
+ unsigned int const_index_sel : SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_SEL_SIZE;
+ unsigned int const_index : SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_SIZE;
+ unsigned int must_be_one : SQ_INSTRUCTION_VFETCH_0_MUST_BE_ONE_SIZE;
+ unsigned int dst_gpr_am : SQ_INSTRUCTION_VFETCH_0_DST_GPR_AM_SIZE;
+ unsigned int dst_gpr : SQ_INSTRUCTION_VFETCH_0_DST_GPR_SIZE;
+ unsigned int src_gpr_am : SQ_INSTRUCTION_VFETCH_0_SRC_GPR_AM_SIZE;
+ unsigned int src_gpr : SQ_INSTRUCTION_VFETCH_0_SRC_GPR_SIZE;
+ unsigned int opcode : SQ_INSTRUCTION_VFETCH_0_OPCODE_SIZE;
+ } sq_instruction_vfetch_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_vfetch_0_t f;
+} sq_instruction_vfetch_0_u;
+
+
+/*
+ * SQ_INSTRUCTION_VFETCH_1 struct
+ */
+
+#define SQ_INSTRUCTION_VFETCH_1_DST_SEL_X_SIZE 3
+#define SQ_INSTRUCTION_VFETCH_1_DST_SEL_Y_SIZE 3
+#define SQ_INSTRUCTION_VFETCH_1_DST_SEL_Z_SIZE 3
+#define SQ_INSTRUCTION_VFETCH_1_DST_SEL_W_SIZE 3
+#define SQ_INSTRUCTION_VFETCH_1_FORMAT_COMP_ALL_SIZE 1
+#define SQ_INSTRUCTION_VFETCH_1_NUM_FORMAT_ALL_SIZE 1
+#define SQ_INSTRUCTION_VFETCH_1_SIGNED_RF_MODE_ALL_SIZE 1
+#define SQ_INSTRUCTION_VFETCH_1_DATA_FORMAT_SIZE 6
+#define SQ_INSTRUCTION_VFETCH_1_EXP_ADJUST_ALL_SIZE 7
+#define SQ_INSTRUCTION_VFETCH_1_PRED_SELECT_SIZE 1
+
+#define SQ_INSTRUCTION_VFETCH_1_DST_SEL_X_SHIFT 0
+#define SQ_INSTRUCTION_VFETCH_1_DST_SEL_Y_SHIFT 3
+#define SQ_INSTRUCTION_VFETCH_1_DST_SEL_Z_SHIFT 6
+#define SQ_INSTRUCTION_VFETCH_1_DST_SEL_W_SHIFT 9
+#define SQ_INSTRUCTION_VFETCH_1_FORMAT_COMP_ALL_SHIFT 12
+#define SQ_INSTRUCTION_VFETCH_1_NUM_FORMAT_ALL_SHIFT 13
+#define SQ_INSTRUCTION_VFETCH_1_SIGNED_RF_MODE_ALL_SHIFT 14
+#define SQ_INSTRUCTION_VFETCH_1_DATA_FORMAT_SHIFT 16
+#define SQ_INSTRUCTION_VFETCH_1_EXP_ADJUST_ALL_SHIFT 23
+#define SQ_INSTRUCTION_VFETCH_1_PRED_SELECT_SHIFT 31
+
+#define SQ_INSTRUCTION_VFETCH_1_DST_SEL_X_MASK 0x00000007
+#define SQ_INSTRUCTION_VFETCH_1_DST_SEL_Y_MASK 0x00000038
+#define SQ_INSTRUCTION_VFETCH_1_DST_SEL_Z_MASK 0x000001c0
+#define SQ_INSTRUCTION_VFETCH_1_DST_SEL_W_MASK 0x00000e00
+#define SQ_INSTRUCTION_VFETCH_1_FORMAT_COMP_ALL_MASK 0x00001000
+#define SQ_INSTRUCTION_VFETCH_1_NUM_FORMAT_ALL_MASK 0x00002000
+#define SQ_INSTRUCTION_VFETCH_1_SIGNED_RF_MODE_ALL_MASK 0x00004000
+#define SQ_INSTRUCTION_VFETCH_1_DATA_FORMAT_MASK 0x003f0000
+#define SQ_INSTRUCTION_VFETCH_1_EXP_ADJUST_ALL_MASK 0x3f800000
+#define SQ_INSTRUCTION_VFETCH_1_PRED_SELECT_MASK 0x80000000
+
+#define SQ_INSTRUCTION_VFETCH_1_MASK \
+ (SQ_INSTRUCTION_VFETCH_1_DST_SEL_X_MASK | \
+ SQ_INSTRUCTION_VFETCH_1_DST_SEL_Y_MASK | \
+ SQ_INSTRUCTION_VFETCH_1_DST_SEL_Z_MASK | \
+ SQ_INSTRUCTION_VFETCH_1_DST_SEL_W_MASK | \
+ SQ_INSTRUCTION_VFETCH_1_FORMAT_COMP_ALL_MASK | \
+ SQ_INSTRUCTION_VFETCH_1_NUM_FORMAT_ALL_MASK | \
+ SQ_INSTRUCTION_VFETCH_1_SIGNED_RF_MODE_ALL_MASK | \
+ SQ_INSTRUCTION_VFETCH_1_DATA_FORMAT_MASK | \
+ SQ_INSTRUCTION_VFETCH_1_EXP_ADJUST_ALL_MASK | \
+ SQ_INSTRUCTION_VFETCH_1_PRED_SELECT_MASK)
+
+#define SQ_INSTRUCTION_VFETCH_1(dst_sel_x, dst_sel_y, dst_sel_z, dst_sel_w, format_comp_all, num_format_all, signed_rf_mode_all, data_format, exp_adjust_all, pred_select) \
+ ((dst_sel_x << SQ_INSTRUCTION_VFETCH_1_DST_SEL_X_SHIFT) | \
+ (dst_sel_y << SQ_INSTRUCTION_VFETCH_1_DST_SEL_Y_SHIFT) | \
+ (dst_sel_z << SQ_INSTRUCTION_VFETCH_1_DST_SEL_Z_SHIFT) | \
+ (dst_sel_w << SQ_INSTRUCTION_VFETCH_1_DST_SEL_W_SHIFT) | \
+ (format_comp_all << SQ_INSTRUCTION_VFETCH_1_FORMAT_COMP_ALL_SHIFT) | \
+ (num_format_all << SQ_INSTRUCTION_VFETCH_1_NUM_FORMAT_ALL_SHIFT) | \
+ (signed_rf_mode_all << SQ_INSTRUCTION_VFETCH_1_SIGNED_RF_MODE_ALL_SHIFT) | \
+ (data_format << SQ_INSTRUCTION_VFETCH_1_DATA_FORMAT_SHIFT) | \
+ (exp_adjust_all << SQ_INSTRUCTION_VFETCH_1_EXP_ADJUST_ALL_SHIFT) | \
+ (pred_select << SQ_INSTRUCTION_VFETCH_1_PRED_SELECT_SHIFT))
+
+#define SQ_INSTRUCTION_VFETCH_1_GET_DST_SEL_X(sq_instruction_vfetch_1) \
+ ((sq_instruction_vfetch_1 & SQ_INSTRUCTION_VFETCH_1_DST_SEL_X_MASK) >> SQ_INSTRUCTION_VFETCH_1_DST_SEL_X_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_1_GET_DST_SEL_Y(sq_instruction_vfetch_1) \
+ ((sq_instruction_vfetch_1 & SQ_INSTRUCTION_VFETCH_1_DST_SEL_Y_MASK) >> SQ_INSTRUCTION_VFETCH_1_DST_SEL_Y_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_1_GET_DST_SEL_Z(sq_instruction_vfetch_1) \
+ ((sq_instruction_vfetch_1 & SQ_INSTRUCTION_VFETCH_1_DST_SEL_Z_MASK) >> SQ_INSTRUCTION_VFETCH_1_DST_SEL_Z_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_1_GET_DST_SEL_W(sq_instruction_vfetch_1) \
+ ((sq_instruction_vfetch_1 & SQ_INSTRUCTION_VFETCH_1_DST_SEL_W_MASK) >> SQ_INSTRUCTION_VFETCH_1_DST_SEL_W_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_1_GET_FORMAT_COMP_ALL(sq_instruction_vfetch_1) \
+ ((sq_instruction_vfetch_1 & SQ_INSTRUCTION_VFETCH_1_FORMAT_COMP_ALL_MASK) >> SQ_INSTRUCTION_VFETCH_1_FORMAT_COMP_ALL_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_1_GET_NUM_FORMAT_ALL(sq_instruction_vfetch_1) \
+ ((sq_instruction_vfetch_1 & SQ_INSTRUCTION_VFETCH_1_NUM_FORMAT_ALL_MASK) >> SQ_INSTRUCTION_VFETCH_1_NUM_FORMAT_ALL_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_1_GET_SIGNED_RF_MODE_ALL(sq_instruction_vfetch_1) \
+ ((sq_instruction_vfetch_1 & SQ_INSTRUCTION_VFETCH_1_SIGNED_RF_MODE_ALL_MASK) >> SQ_INSTRUCTION_VFETCH_1_SIGNED_RF_MODE_ALL_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_1_GET_DATA_FORMAT(sq_instruction_vfetch_1) \
+ ((sq_instruction_vfetch_1 & SQ_INSTRUCTION_VFETCH_1_DATA_FORMAT_MASK) >> SQ_INSTRUCTION_VFETCH_1_DATA_FORMAT_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_1_GET_EXP_ADJUST_ALL(sq_instruction_vfetch_1) \
+ ((sq_instruction_vfetch_1 & SQ_INSTRUCTION_VFETCH_1_EXP_ADJUST_ALL_MASK) >> SQ_INSTRUCTION_VFETCH_1_EXP_ADJUST_ALL_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_1_GET_PRED_SELECT(sq_instruction_vfetch_1) \
+ ((sq_instruction_vfetch_1 & SQ_INSTRUCTION_VFETCH_1_PRED_SELECT_MASK) >> SQ_INSTRUCTION_VFETCH_1_PRED_SELECT_SHIFT)
+
+#define SQ_INSTRUCTION_VFETCH_1_SET_DST_SEL_X(sq_instruction_vfetch_1_reg, dst_sel_x) \
+ sq_instruction_vfetch_1_reg = (sq_instruction_vfetch_1_reg & ~SQ_INSTRUCTION_VFETCH_1_DST_SEL_X_MASK) | (dst_sel_x << SQ_INSTRUCTION_VFETCH_1_DST_SEL_X_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_1_SET_DST_SEL_Y(sq_instruction_vfetch_1_reg, dst_sel_y) \
+ sq_instruction_vfetch_1_reg = (sq_instruction_vfetch_1_reg & ~SQ_INSTRUCTION_VFETCH_1_DST_SEL_Y_MASK) | (dst_sel_y << SQ_INSTRUCTION_VFETCH_1_DST_SEL_Y_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_1_SET_DST_SEL_Z(sq_instruction_vfetch_1_reg, dst_sel_z) \
+ sq_instruction_vfetch_1_reg = (sq_instruction_vfetch_1_reg & ~SQ_INSTRUCTION_VFETCH_1_DST_SEL_Z_MASK) | (dst_sel_z << SQ_INSTRUCTION_VFETCH_1_DST_SEL_Z_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_1_SET_DST_SEL_W(sq_instruction_vfetch_1_reg, dst_sel_w) \
+ sq_instruction_vfetch_1_reg = (sq_instruction_vfetch_1_reg & ~SQ_INSTRUCTION_VFETCH_1_DST_SEL_W_MASK) | (dst_sel_w << SQ_INSTRUCTION_VFETCH_1_DST_SEL_W_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_1_SET_FORMAT_COMP_ALL(sq_instruction_vfetch_1_reg, format_comp_all) \
+ sq_instruction_vfetch_1_reg = (sq_instruction_vfetch_1_reg & ~SQ_INSTRUCTION_VFETCH_1_FORMAT_COMP_ALL_MASK) | (format_comp_all << SQ_INSTRUCTION_VFETCH_1_FORMAT_COMP_ALL_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_1_SET_NUM_FORMAT_ALL(sq_instruction_vfetch_1_reg, num_format_all) \
+ sq_instruction_vfetch_1_reg = (sq_instruction_vfetch_1_reg & ~SQ_INSTRUCTION_VFETCH_1_NUM_FORMAT_ALL_MASK) | (num_format_all << SQ_INSTRUCTION_VFETCH_1_NUM_FORMAT_ALL_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_1_SET_SIGNED_RF_MODE_ALL(sq_instruction_vfetch_1_reg, signed_rf_mode_all) \
+ sq_instruction_vfetch_1_reg = (sq_instruction_vfetch_1_reg & ~SQ_INSTRUCTION_VFETCH_1_SIGNED_RF_MODE_ALL_MASK) | (signed_rf_mode_all << SQ_INSTRUCTION_VFETCH_1_SIGNED_RF_MODE_ALL_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_1_SET_DATA_FORMAT(sq_instruction_vfetch_1_reg, data_format) \
+ sq_instruction_vfetch_1_reg = (sq_instruction_vfetch_1_reg & ~SQ_INSTRUCTION_VFETCH_1_DATA_FORMAT_MASK) | (data_format << SQ_INSTRUCTION_VFETCH_1_DATA_FORMAT_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_1_SET_EXP_ADJUST_ALL(sq_instruction_vfetch_1_reg, exp_adjust_all) \
+ sq_instruction_vfetch_1_reg = (sq_instruction_vfetch_1_reg & ~SQ_INSTRUCTION_VFETCH_1_EXP_ADJUST_ALL_MASK) | (exp_adjust_all << SQ_INSTRUCTION_VFETCH_1_EXP_ADJUST_ALL_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_1_SET_PRED_SELECT(sq_instruction_vfetch_1_reg, pred_select) \
+ sq_instruction_vfetch_1_reg = (sq_instruction_vfetch_1_reg & ~SQ_INSTRUCTION_VFETCH_1_PRED_SELECT_MASK) | (pred_select << SQ_INSTRUCTION_VFETCH_1_PRED_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_vfetch_1_t {
+ unsigned int dst_sel_x : SQ_INSTRUCTION_VFETCH_1_DST_SEL_X_SIZE;
+ unsigned int dst_sel_y : SQ_INSTRUCTION_VFETCH_1_DST_SEL_Y_SIZE;
+ unsigned int dst_sel_z : SQ_INSTRUCTION_VFETCH_1_DST_SEL_Z_SIZE;
+ unsigned int dst_sel_w : SQ_INSTRUCTION_VFETCH_1_DST_SEL_W_SIZE;
+ unsigned int format_comp_all : SQ_INSTRUCTION_VFETCH_1_FORMAT_COMP_ALL_SIZE;
+ unsigned int num_format_all : SQ_INSTRUCTION_VFETCH_1_NUM_FORMAT_ALL_SIZE;
+ unsigned int signed_rf_mode_all : SQ_INSTRUCTION_VFETCH_1_SIGNED_RF_MODE_ALL_SIZE;
+ unsigned int : 1;
+ unsigned int data_format : SQ_INSTRUCTION_VFETCH_1_DATA_FORMAT_SIZE;
+ unsigned int : 1;
+ unsigned int exp_adjust_all : SQ_INSTRUCTION_VFETCH_1_EXP_ADJUST_ALL_SIZE;
+ unsigned int : 1;
+ unsigned int pred_select : SQ_INSTRUCTION_VFETCH_1_PRED_SELECT_SIZE;
+ } sq_instruction_vfetch_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_vfetch_1_t {
+ unsigned int pred_select : SQ_INSTRUCTION_VFETCH_1_PRED_SELECT_SIZE;
+ unsigned int : 1;
+ unsigned int exp_adjust_all : SQ_INSTRUCTION_VFETCH_1_EXP_ADJUST_ALL_SIZE;
+ unsigned int : 1;
+ unsigned int data_format : SQ_INSTRUCTION_VFETCH_1_DATA_FORMAT_SIZE;
+ unsigned int : 1;
+ unsigned int signed_rf_mode_all : SQ_INSTRUCTION_VFETCH_1_SIGNED_RF_MODE_ALL_SIZE;
+ unsigned int num_format_all : SQ_INSTRUCTION_VFETCH_1_NUM_FORMAT_ALL_SIZE;
+ unsigned int format_comp_all : SQ_INSTRUCTION_VFETCH_1_FORMAT_COMP_ALL_SIZE;
+ unsigned int dst_sel_w : SQ_INSTRUCTION_VFETCH_1_DST_SEL_W_SIZE;
+ unsigned int dst_sel_z : SQ_INSTRUCTION_VFETCH_1_DST_SEL_Z_SIZE;
+ unsigned int dst_sel_y : SQ_INSTRUCTION_VFETCH_1_DST_SEL_Y_SIZE;
+ unsigned int dst_sel_x : SQ_INSTRUCTION_VFETCH_1_DST_SEL_X_SIZE;
+ } sq_instruction_vfetch_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_vfetch_1_t f;
+} sq_instruction_vfetch_1_u;
+
+
+/*
+ * SQ_INSTRUCTION_VFETCH_2 struct
+ */
+
+#define SQ_INSTRUCTION_VFETCH_2_STRIDE_SIZE 8
+#define SQ_INSTRUCTION_VFETCH_2_OFFSET_SIZE 8
+#define SQ_INSTRUCTION_VFETCH_2_PRED_CONDITION_SIZE 1
+
+#define SQ_INSTRUCTION_VFETCH_2_STRIDE_SHIFT 0
+#define SQ_INSTRUCTION_VFETCH_2_OFFSET_SHIFT 16
+#define SQ_INSTRUCTION_VFETCH_2_PRED_CONDITION_SHIFT 31
+
+#define SQ_INSTRUCTION_VFETCH_2_STRIDE_MASK 0x000000ff
+#define SQ_INSTRUCTION_VFETCH_2_OFFSET_MASK 0x00ff0000
+#define SQ_INSTRUCTION_VFETCH_2_PRED_CONDITION_MASK 0x80000000
+
+#define SQ_INSTRUCTION_VFETCH_2_MASK \
+ (SQ_INSTRUCTION_VFETCH_2_STRIDE_MASK | \
+ SQ_INSTRUCTION_VFETCH_2_OFFSET_MASK | \
+ SQ_INSTRUCTION_VFETCH_2_PRED_CONDITION_MASK)
+
+#define SQ_INSTRUCTION_VFETCH_2(stride, offset, pred_condition) \
+ ((stride << SQ_INSTRUCTION_VFETCH_2_STRIDE_SHIFT) | \
+ (offset << SQ_INSTRUCTION_VFETCH_2_OFFSET_SHIFT) | \
+ (pred_condition << SQ_INSTRUCTION_VFETCH_2_PRED_CONDITION_SHIFT))
+
+#define SQ_INSTRUCTION_VFETCH_2_GET_STRIDE(sq_instruction_vfetch_2) \
+ ((sq_instruction_vfetch_2 & SQ_INSTRUCTION_VFETCH_2_STRIDE_MASK) >> SQ_INSTRUCTION_VFETCH_2_STRIDE_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_2_GET_OFFSET(sq_instruction_vfetch_2) \
+ ((sq_instruction_vfetch_2 & SQ_INSTRUCTION_VFETCH_2_OFFSET_MASK) >> SQ_INSTRUCTION_VFETCH_2_OFFSET_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_2_GET_PRED_CONDITION(sq_instruction_vfetch_2) \
+ ((sq_instruction_vfetch_2 & SQ_INSTRUCTION_VFETCH_2_PRED_CONDITION_MASK) >> SQ_INSTRUCTION_VFETCH_2_PRED_CONDITION_SHIFT)
+
+#define SQ_INSTRUCTION_VFETCH_2_SET_STRIDE(sq_instruction_vfetch_2_reg, stride) \
+ sq_instruction_vfetch_2_reg = (sq_instruction_vfetch_2_reg & ~SQ_INSTRUCTION_VFETCH_2_STRIDE_MASK) | (stride << SQ_INSTRUCTION_VFETCH_2_STRIDE_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_2_SET_OFFSET(sq_instruction_vfetch_2_reg, offset) \
+ sq_instruction_vfetch_2_reg = (sq_instruction_vfetch_2_reg & ~SQ_INSTRUCTION_VFETCH_2_OFFSET_MASK) | (offset << SQ_INSTRUCTION_VFETCH_2_OFFSET_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_2_SET_PRED_CONDITION(sq_instruction_vfetch_2_reg, pred_condition) \
+ sq_instruction_vfetch_2_reg = (sq_instruction_vfetch_2_reg & ~SQ_INSTRUCTION_VFETCH_2_PRED_CONDITION_MASK) | (pred_condition << SQ_INSTRUCTION_VFETCH_2_PRED_CONDITION_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_vfetch_2_t {
+ unsigned int stride : SQ_INSTRUCTION_VFETCH_2_STRIDE_SIZE;
+ unsigned int : 8;
+ unsigned int offset : SQ_INSTRUCTION_VFETCH_2_OFFSET_SIZE;
+ unsigned int : 7;
+ unsigned int pred_condition : SQ_INSTRUCTION_VFETCH_2_PRED_CONDITION_SIZE;
+ } sq_instruction_vfetch_2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_vfetch_2_t {
+ unsigned int pred_condition : SQ_INSTRUCTION_VFETCH_2_PRED_CONDITION_SIZE;
+ unsigned int : 7;
+ unsigned int offset : SQ_INSTRUCTION_VFETCH_2_OFFSET_SIZE;
+ unsigned int : 8;
+ unsigned int stride : SQ_INSTRUCTION_VFETCH_2_STRIDE_SIZE;
+ } sq_instruction_vfetch_2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_vfetch_2_t f;
+} sq_instruction_vfetch_2_u;
+
+
+/*
+ * SQ_CONSTANT_0 struct
+ */
+
+#define SQ_CONSTANT_0_RED_SIZE 32
+
+#define SQ_CONSTANT_0_RED_SHIFT 0
+
+#define SQ_CONSTANT_0_RED_MASK 0xffffffff
+
+#define SQ_CONSTANT_0_MASK \
+ (SQ_CONSTANT_0_RED_MASK)
+
+#define SQ_CONSTANT_0(red) \
+ ((red << SQ_CONSTANT_0_RED_SHIFT))
+
+#define SQ_CONSTANT_0_GET_RED(sq_constant_0) \
+ ((sq_constant_0 & SQ_CONSTANT_0_RED_MASK) >> SQ_CONSTANT_0_RED_SHIFT)
+
+#define SQ_CONSTANT_0_SET_RED(sq_constant_0_reg, red) \
+ sq_constant_0_reg = (sq_constant_0_reg & ~SQ_CONSTANT_0_RED_MASK) | (red << SQ_CONSTANT_0_RED_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_constant_0_t {
+ unsigned int red : SQ_CONSTANT_0_RED_SIZE;
+ } sq_constant_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_constant_0_t {
+ unsigned int red : SQ_CONSTANT_0_RED_SIZE;
+ } sq_constant_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_constant_0_t f;
+} sq_constant_0_u;
+
+
+/*
+ * SQ_CONSTANT_1 struct
+ */
+
+#define SQ_CONSTANT_1_GREEN_SIZE 32
+
+#define SQ_CONSTANT_1_GREEN_SHIFT 0
+
+#define SQ_CONSTANT_1_GREEN_MASK 0xffffffff
+
+#define SQ_CONSTANT_1_MASK \
+ (SQ_CONSTANT_1_GREEN_MASK)
+
+#define SQ_CONSTANT_1(green) \
+ ((green << SQ_CONSTANT_1_GREEN_SHIFT))
+
+#define SQ_CONSTANT_1_GET_GREEN(sq_constant_1) \
+ ((sq_constant_1 & SQ_CONSTANT_1_GREEN_MASK) >> SQ_CONSTANT_1_GREEN_SHIFT)
+
+#define SQ_CONSTANT_1_SET_GREEN(sq_constant_1_reg, green) \
+ sq_constant_1_reg = (sq_constant_1_reg & ~SQ_CONSTANT_1_GREEN_MASK) | (green << SQ_CONSTANT_1_GREEN_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_constant_1_t {
+ unsigned int green : SQ_CONSTANT_1_GREEN_SIZE;
+ } sq_constant_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_constant_1_t {
+ unsigned int green : SQ_CONSTANT_1_GREEN_SIZE;
+ } sq_constant_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_constant_1_t f;
+} sq_constant_1_u;
+
+
+/*
+ * SQ_CONSTANT_2 struct
+ */
+
+#define SQ_CONSTANT_2_BLUE_SIZE 32
+
+#define SQ_CONSTANT_2_BLUE_SHIFT 0
+
+#define SQ_CONSTANT_2_BLUE_MASK 0xffffffff
+
+#define SQ_CONSTANT_2_MASK \
+ (SQ_CONSTANT_2_BLUE_MASK)
+
+#define SQ_CONSTANT_2(blue) \
+ ((blue << SQ_CONSTANT_2_BLUE_SHIFT))
+
+#define SQ_CONSTANT_2_GET_BLUE(sq_constant_2) \
+ ((sq_constant_2 & SQ_CONSTANT_2_BLUE_MASK) >> SQ_CONSTANT_2_BLUE_SHIFT)
+
+#define SQ_CONSTANT_2_SET_BLUE(sq_constant_2_reg, blue) \
+ sq_constant_2_reg = (sq_constant_2_reg & ~SQ_CONSTANT_2_BLUE_MASK) | (blue << SQ_CONSTANT_2_BLUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_constant_2_t {
+ unsigned int blue : SQ_CONSTANT_2_BLUE_SIZE;
+ } sq_constant_2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_constant_2_t {
+ unsigned int blue : SQ_CONSTANT_2_BLUE_SIZE;
+ } sq_constant_2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_constant_2_t f;
+} sq_constant_2_u;
+
+
+/*
+ * SQ_CONSTANT_3 struct
+ */
+
+#define SQ_CONSTANT_3_ALPHA_SIZE 32
+
+#define SQ_CONSTANT_3_ALPHA_SHIFT 0
+
+#define SQ_CONSTANT_3_ALPHA_MASK 0xffffffff
+
+#define SQ_CONSTANT_3_MASK \
+ (SQ_CONSTANT_3_ALPHA_MASK)
+
+#define SQ_CONSTANT_3(alpha) \
+ ((alpha << SQ_CONSTANT_3_ALPHA_SHIFT))
+
+#define SQ_CONSTANT_3_GET_ALPHA(sq_constant_3) \
+ ((sq_constant_3 & SQ_CONSTANT_3_ALPHA_MASK) >> SQ_CONSTANT_3_ALPHA_SHIFT)
+
+#define SQ_CONSTANT_3_SET_ALPHA(sq_constant_3_reg, alpha) \
+ sq_constant_3_reg = (sq_constant_3_reg & ~SQ_CONSTANT_3_ALPHA_MASK) | (alpha << SQ_CONSTANT_3_ALPHA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_constant_3_t {
+ unsigned int alpha : SQ_CONSTANT_3_ALPHA_SIZE;
+ } sq_constant_3_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_constant_3_t {
+ unsigned int alpha : SQ_CONSTANT_3_ALPHA_SIZE;
+ } sq_constant_3_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_constant_3_t f;
+} sq_constant_3_u;
+
+
+/*
+ * SQ_FETCH_0 struct
+ */
+
+#define SQ_FETCH_0_VALUE_SIZE 32
+
+#define SQ_FETCH_0_VALUE_SHIFT 0
+
+#define SQ_FETCH_0_VALUE_MASK 0xffffffff
+
+#define SQ_FETCH_0_MASK \
+ (SQ_FETCH_0_VALUE_MASK)
+
+#define SQ_FETCH_0(value) \
+ ((value << SQ_FETCH_0_VALUE_SHIFT))
+
+#define SQ_FETCH_0_GET_VALUE(sq_fetch_0) \
+ ((sq_fetch_0 & SQ_FETCH_0_VALUE_MASK) >> SQ_FETCH_0_VALUE_SHIFT)
+
+#define SQ_FETCH_0_SET_VALUE(sq_fetch_0_reg, value) \
+ sq_fetch_0_reg = (sq_fetch_0_reg & ~SQ_FETCH_0_VALUE_MASK) | (value << SQ_FETCH_0_VALUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_fetch_0_t {
+ unsigned int value : SQ_FETCH_0_VALUE_SIZE;
+ } sq_fetch_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_fetch_0_t {
+ unsigned int value : SQ_FETCH_0_VALUE_SIZE;
+ } sq_fetch_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_fetch_0_t f;
+} sq_fetch_0_u;
+
+
+/*
+ * SQ_FETCH_1 struct
+ */
+
+#define SQ_FETCH_1_VALUE_SIZE 32
+
+#define SQ_FETCH_1_VALUE_SHIFT 0
+
+#define SQ_FETCH_1_VALUE_MASK 0xffffffff
+
+#define SQ_FETCH_1_MASK \
+ (SQ_FETCH_1_VALUE_MASK)
+
+#define SQ_FETCH_1(value) \
+ ((value << SQ_FETCH_1_VALUE_SHIFT))
+
+#define SQ_FETCH_1_GET_VALUE(sq_fetch_1) \
+ ((sq_fetch_1 & SQ_FETCH_1_VALUE_MASK) >> SQ_FETCH_1_VALUE_SHIFT)
+
+#define SQ_FETCH_1_SET_VALUE(sq_fetch_1_reg, value) \
+ sq_fetch_1_reg = (sq_fetch_1_reg & ~SQ_FETCH_1_VALUE_MASK) | (value << SQ_FETCH_1_VALUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_fetch_1_t {
+ unsigned int value : SQ_FETCH_1_VALUE_SIZE;
+ } sq_fetch_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_fetch_1_t {
+ unsigned int value : SQ_FETCH_1_VALUE_SIZE;
+ } sq_fetch_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_fetch_1_t f;
+} sq_fetch_1_u;
+
+
+/*
+ * SQ_FETCH_2 struct
+ */
+
+#define SQ_FETCH_2_VALUE_SIZE 32
+
+#define SQ_FETCH_2_VALUE_SHIFT 0
+
+#define SQ_FETCH_2_VALUE_MASK 0xffffffff
+
+#define SQ_FETCH_2_MASK \
+ (SQ_FETCH_2_VALUE_MASK)
+
+#define SQ_FETCH_2(value) \
+ ((value << SQ_FETCH_2_VALUE_SHIFT))
+
+#define SQ_FETCH_2_GET_VALUE(sq_fetch_2) \
+ ((sq_fetch_2 & SQ_FETCH_2_VALUE_MASK) >> SQ_FETCH_2_VALUE_SHIFT)
+
+#define SQ_FETCH_2_SET_VALUE(sq_fetch_2_reg, value) \
+ sq_fetch_2_reg = (sq_fetch_2_reg & ~SQ_FETCH_2_VALUE_MASK) | (value << SQ_FETCH_2_VALUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_fetch_2_t {
+ unsigned int value : SQ_FETCH_2_VALUE_SIZE;
+ } sq_fetch_2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_fetch_2_t {
+ unsigned int value : SQ_FETCH_2_VALUE_SIZE;
+ } sq_fetch_2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_fetch_2_t f;
+} sq_fetch_2_u;
+
+
+/*
+ * SQ_FETCH_3 struct
+ */
+
+#define SQ_FETCH_3_VALUE_SIZE 32
+
+#define SQ_FETCH_3_VALUE_SHIFT 0
+
+#define SQ_FETCH_3_VALUE_MASK 0xffffffff
+
+#define SQ_FETCH_3_MASK \
+ (SQ_FETCH_3_VALUE_MASK)
+
+#define SQ_FETCH_3(value) \
+ ((value << SQ_FETCH_3_VALUE_SHIFT))
+
+#define SQ_FETCH_3_GET_VALUE(sq_fetch_3) \
+ ((sq_fetch_3 & SQ_FETCH_3_VALUE_MASK) >> SQ_FETCH_3_VALUE_SHIFT)
+
+#define SQ_FETCH_3_SET_VALUE(sq_fetch_3_reg, value) \
+ sq_fetch_3_reg = (sq_fetch_3_reg & ~SQ_FETCH_3_VALUE_MASK) | (value << SQ_FETCH_3_VALUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_fetch_3_t {
+ unsigned int value : SQ_FETCH_3_VALUE_SIZE;
+ } sq_fetch_3_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_fetch_3_t {
+ unsigned int value : SQ_FETCH_3_VALUE_SIZE;
+ } sq_fetch_3_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_fetch_3_t f;
+} sq_fetch_3_u;
+
+
+/*
+ * SQ_FETCH_4 struct
+ */
+
+#define SQ_FETCH_4_VALUE_SIZE 32
+
+#define SQ_FETCH_4_VALUE_SHIFT 0
+
+#define SQ_FETCH_4_VALUE_MASK 0xffffffff
+
+#define SQ_FETCH_4_MASK \
+ (SQ_FETCH_4_VALUE_MASK)
+
+#define SQ_FETCH_4(value) \
+ ((value << SQ_FETCH_4_VALUE_SHIFT))
+
+#define SQ_FETCH_4_GET_VALUE(sq_fetch_4) \
+ ((sq_fetch_4 & SQ_FETCH_4_VALUE_MASK) >> SQ_FETCH_4_VALUE_SHIFT)
+
+#define SQ_FETCH_4_SET_VALUE(sq_fetch_4_reg, value) \
+ sq_fetch_4_reg = (sq_fetch_4_reg & ~SQ_FETCH_4_VALUE_MASK) | (value << SQ_FETCH_4_VALUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_fetch_4_t {
+ unsigned int value : SQ_FETCH_4_VALUE_SIZE;
+ } sq_fetch_4_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_fetch_4_t {
+ unsigned int value : SQ_FETCH_4_VALUE_SIZE;
+ } sq_fetch_4_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_fetch_4_t f;
+} sq_fetch_4_u;
+
+
+/*
+ * SQ_FETCH_5 struct
+ */
+
+#define SQ_FETCH_5_VALUE_SIZE 32
+
+#define SQ_FETCH_5_VALUE_SHIFT 0
+
+#define SQ_FETCH_5_VALUE_MASK 0xffffffff
+
+#define SQ_FETCH_5_MASK \
+ (SQ_FETCH_5_VALUE_MASK)
+
+#define SQ_FETCH_5(value) \
+ ((value << SQ_FETCH_5_VALUE_SHIFT))
+
+#define SQ_FETCH_5_GET_VALUE(sq_fetch_5) \
+ ((sq_fetch_5 & SQ_FETCH_5_VALUE_MASK) >> SQ_FETCH_5_VALUE_SHIFT)
+
+#define SQ_FETCH_5_SET_VALUE(sq_fetch_5_reg, value) \
+ sq_fetch_5_reg = (sq_fetch_5_reg & ~SQ_FETCH_5_VALUE_MASK) | (value << SQ_FETCH_5_VALUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_fetch_5_t {
+ unsigned int value : SQ_FETCH_5_VALUE_SIZE;
+ } sq_fetch_5_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_fetch_5_t {
+ unsigned int value : SQ_FETCH_5_VALUE_SIZE;
+ } sq_fetch_5_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_fetch_5_t f;
+} sq_fetch_5_u;
+
+
+/*
+ * SQ_CONSTANT_VFETCH_0 struct
+ */
+
+#define SQ_CONSTANT_VFETCH_0_TYPE_SIZE 1
+#define SQ_CONSTANT_VFETCH_0_STATE_SIZE 1
+#define SQ_CONSTANT_VFETCH_0_BASE_ADDRESS_SIZE 30
+
+#define SQ_CONSTANT_VFETCH_0_TYPE_SHIFT 0
+#define SQ_CONSTANT_VFETCH_0_STATE_SHIFT 1
+#define SQ_CONSTANT_VFETCH_0_BASE_ADDRESS_SHIFT 2
+
+#define SQ_CONSTANT_VFETCH_0_TYPE_MASK 0x00000001
+#define SQ_CONSTANT_VFETCH_0_STATE_MASK 0x00000002
+#define SQ_CONSTANT_VFETCH_0_BASE_ADDRESS_MASK 0xfffffffc
+
+#define SQ_CONSTANT_VFETCH_0_MASK \
+ (SQ_CONSTANT_VFETCH_0_TYPE_MASK | \
+ SQ_CONSTANT_VFETCH_0_STATE_MASK | \
+ SQ_CONSTANT_VFETCH_0_BASE_ADDRESS_MASK)
+
+#define SQ_CONSTANT_VFETCH_0(type, state, base_address) \
+ ((type << SQ_CONSTANT_VFETCH_0_TYPE_SHIFT) | \
+ (state << SQ_CONSTANT_VFETCH_0_STATE_SHIFT) | \
+ (base_address << SQ_CONSTANT_VFETCH_0_BASE_ADDRESS_SHIFT))
+
+#define SQ_CONSTANT_VFETCH_0_GET_TYPE(sq_constant_vfetch_0) \
+ ((sq_constant_vfetch_0 & SQ_CONSTANT_VFETCH_0_TYPE_MASK) >> SQ_CONSTANT_VFETCH_0_TYPE_SHIFT)
+#define SQ_CONSTANT_VFETCH_0_GET_STATE(sq_constant_vfetch_0) \
+ ((sq_constant_vfetch_0 & SQ_CONSTANT_VFETCH_0_STATE_MASK) >> SQ_CONSTANT_VFETCH_0_STATE_SHIFT)
+#define SQ_CONSTANT_VFETCH_0_GET_BASE_ADDRESS(sq_constant_vfetch_0) \
+ ((sq_constant_vfetch_0 & SQ_CONSTANT_VFETCH_0_BASE_ADDRESS_MASK) >> SQ_CONSTANT_VFETCH_0_BASE_ADDRESS_SHIFT)
+
+#define SQ_CONSTANT_VFETCH_0_SET_TYPE(sq_constant_vfetch_0_reg, type) \
+ sq_constant_vfetch_0_reg = (sq_constant_vfetch_0_reg & ~SQ_CONSTANT_VFETCH_0_TYPE_MASK) | (type << SQ_CONSTANT_VFETCH_0_TYPE_SHIFT)
+#define SQ_CONSTANT_VFETCH_0_SET_STATE(sq_constant_vfetch_0_reg, state) \
+ sq_constant_vfetch_0_reg = (sq_constant_vfetch_0_reg & ~SQ_CONSTANT_VFETCH_0_STATE_MASK) | (state << SQ_CONSTANT_VFETCH_0_STATE_SHIFT)
+#define SQ_CONSTANT_VFETCH_0_SET_BASE_ADDRESS(sq_constant_vfetch_0_reg, base_address) \
+ sq_constant_vfetch_0_reg = (sq_constant_vfetch_0_reg & ~SQ_CONSTANT_VFETCH_0_BASE_ADDRESS_MASK) | (base_address << SQ_CONSTANT_VFETCH_0_BASE_ADDRESS_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_constant_vfetch_0_t {
+ unsigned int type : SQ_CONSTANT_VFETCH_0_TYPE_SIZE;
+ unsigned int state : SQ_CONSTANT_VFETCH_0_STATE_SIZE;
+ unsigned int base_address : SQ_CONSTANT_VFETCH_0_BASE_ADDRESS_SIZE;
+ } sq_constant_vfetch_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_constant_vfetch_0_t {
+ unsigned int base_address : SQ_CONSTANT_VFETCH_0_BASE_ADDRESS_SIZE;
+ unsigned int state : SQ_CONSTANT_VFETCH_0_STATE_SIZE;
+ unsigned int type : SQ_CONSTANT_VFETCH_0_TYPE_SIZE;
+ } sq_constant_vfetch_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_constant_vfetch_0_t f;
+} sq_constant_vfetch_0_u;
+
+
+/*
+ * SQ_CONSTANT_VFETCH_1 struct
+ */
+
+#define SQ_CONSTANT_VFETCH_1_ENDIAN_SWAP_SIZE 2
+#define SQ_CONSTANT_VFETCH_1_LIMIT_ADDRESS_SIZE 30
+
+#define SQ_CONSTANT_VFETCH_1_ENDIAN_SWAP_SHIFT 0
+#define SQ_CONSTANT_VFETCH_1_LIMIT_ADDRESS_SHIFT 2
+
+#define SQ_CONSTANT_VFETCH_1_ENDIAN_SWAP_MASK 0x00000003
+#define SQ_CONSTANT_VFETCH_1_LIMIT_ADDRESS_MASK 0xfffffffc
+
+#define SQ_CONSTANT_VFETCH_1_MASK \
+ (SQ_CONSTANT_VFETCH_1_ENDIAN_SWAP_MASK | \
+ SQ_CONSTANT_VFETCH_1_LIMIT_ADDRESS_MASK)
+
+#define SQ_CONSTANT_VFETCH_1(endian_swap, limit_address) \
+ ((endian_swap << SQ_CONSTANT_VFETCH_1_ENDIAN_SWAP_SHIFT) | \
+ (limit_address << SQ_CONSTANT_VFETCH_1_LIMIT_ADDRESS_SHIFT))
+
+#define SQ_CONSTANT_VFETCH_1_GET_ENDIAN_SWAP(sq_constant_vfetch_1) \
+ ((sq_constant_vfetch_1 & SQ_CONSTANT_VFETCH_1_ENDIAN_SWAP_MASK) >> SQ_CONSTANT_VFETCH_1_ENDIAN_SWAP_SHIFT)
+#define SQ_CONSTANT_VFETCH_1_GET_LIMIT_ADDRESS(sq_constant_vfetch_1) \
+ ((sq_constant_vfetch_1 & SQ_CONSTANT_VFETCH_1_LIMIT_ADDRESS_MASK) >> SQ_CONSTANT_VFETCH_1_LIMIT_ADDRESS_SHIFT)
+
+#define SQ_CONSTANT_VFETCH_1_SET_ENDIAN_SWAP(sq_constant_vfetch_1_reg, endian_swap) \
+ sq_constant_vfetch_1_reg = (sq_constant_vfetch_1_reg & ~SQ_CONSTANT_VFETCH_1_ENDIAN_SWAP_MASK) | (endian_swap << SQ_CONSTANT_VFETCH_1_ENDIAN_SWAP_SHIFT)
+#define SQ_CONSTANT_VFETCH_1_SET_LIMIT_ADDRESS(sq_constant_vfetch_1_reg, limit_address) \
+ sq_constant_vfetch_1_reg = (sq_constant_vfetch_1_reg & ~SQ_CONSTANT_VFETCH_1_LIMIT_ADDRESS_MASK) | (limit_address << SQ_CONSTANT_VFETCH_1_LIMIT_ADDRESS_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_constant_vfetch_1_t {
+ unsigned int endian_swap : SQ_CONSTANT_VFETCH_1_ENDIAN_SWAP_SIZE;
+ unsigned int limit_address : SQ_CONSTANT_VFETCH_1_LIMIT_ADDRESS_SIZE;
+ } sq_constant_vfetch_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_constant_vfetch_1_t {
+ unsigned int limit_address : SQ_CONSTANT_VFETCH_1_LIMIT_ADDRESS_SIZE;
+ unsigned int endian_swap : SQ_CONSTANT_VFETCH_1_ENDIAN_SWAP_SIZE;
+ } sq_constant_vfetch_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_constant_vfetch_1_t f;
+} sq_constant_vfetch_1_u;
+
+
+/*
+ * SQ_CONSTANT_T2 struct
+ */
+
+#define SQ_CONSTANT_T2_VALUE_SIZE 32
+
+#define SQ_CONSTANT_T2_VALUE_SHIFT 0
+
+#define SQ_CONSTANT_T2_VALUE_MASK 0xffffffff
+
+#define SQ_CONSTANT_T2_MASK \
+ (SQ_CONSTANT_T2_VALUE_MASK)
+
+#define SQ_CONSTANT_T2(value) \
+ ((value << SQ_CONSTANT_T2_VALUE_SHIFT))
+
+#define SQ_CONSTANT_T2_GET_VALUE(sq_constant_t2) \
+ ((sq_constant_t2 & SQ_CONSTANT_T2_VALUE_MASK) >> SQ_CONSTANT_T2_VALUE_SHIFT)
+
+#define SQ_CONSTANT_T2_SET_VALUE(sq_constant_t2_reg, value) \
+ sq_constant_t2_reg = (sq_constant_t2_reg & ~SQ_CONSTANT_T2_VALUE_MASK) | (value << SQ_CONSTANT_T2_VALUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_constant_t2_t {
+ unsigned int value : SQ_CONSTANT_T2_VALUE_SIZE;
+ } sq_constant_t2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_constant_t2_t {
+ unsigned int value : SQ_CONSTANT_T2_VALUE_SIZE;
+ } sq_constant_t2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_constant_t2_t f;
+} sq_constant_t2_u;
+
+
+/*
+ * SQ_CONSTANT_T3 struct
+ */
+
+#define SQ_CONSTANT_T3_VALUE_SIZE 32
+
+#define SQ_CONSTANT_T3_VALUE_SHIFT 0
+
+#define SQ_CONSTANT_T3_VALUE_MASK 0xffffffff
+
+#define SQ_CONSTANT_T3_MASK \
+ (SQ_CONSTANT_T3_VALUE_MASK)
+
+#define SQ_CONSTANT_T3(value) \
+ ((value << SQ_CONSTANT_T3_VALUE_SHIFT))
+
+#define SQ_CONSTANT_T3_GET_VALUE(sq_constant_t3) \
+ ((sq_constant_t3 & SQ_CONSTANT_T3_VALUE_MASK) >> SQ_CONSTANT_T3_VALUE_SHIFT)
+
+#define SQ_CONSTANT_T3_SET_VALUE(sq_constant_t3_reg, value) \
+ sq_constant_t3_reg = (sq_constant_t3_reg & ~SQ_CONSTANT_T3_VALUE_MASK) | (value << SQ_CONSTANT_T3_VALUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_constant_t3_t {
+ unsigned int value : SQ_CONSTANT_T3_VALUE_SIZE;
+ } sq_constant_t3_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_constant_t3_t {
+ unsigned int value : SQ_CONSTANT_T3_VALUE_SIZE;
+ } sq_constant_t3_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_constant_t3_t f;
+} sq_constant_t3_u;
+
+
+/*
+ * SQ_CF_BOOLEANS struct
+ */
+
+#define SQ_CF_BOOLEANS_CF_BOOLEANS_0_SIZE 8
+#define SQ_CF_BOOLEANS_CF_BOOLEANS_1_SIZE 8
+#define SQ_CF_BOOLEANS_CF_BOOLEANS_2_SIZE 8
+#define SQ_CF_BOOLEANS_CF_BOOLEANS_3_SIZE 8
+
+#define SQ_CF_BOOLEANS_CF_BOOLEANS_0_SHIFT 0
+#define SQ_CF_BOOLEANS_CF_BOOLEANS_1_SHIFT 8
+#define SQ_CF_BOOLEANS_CF_BOOLEANS_2_SHIFT 16
+#define SQ_CF_BOOLEANS_CF_BOOLEANS_3_SHIFT 24
+
+#define SQ_CF_BOOLEANS_CF_BOOLEANS_0_MASK 0x000000ff
+#define SQ_CF_BOOLEANS_CF_BOOLEANS_1_MASK 0x0000ff00
+#define SQ_CF_BOOLEANS_CF_BOOLEANS_2_MASK 0x00ff0000
+#define SQ_CF_BOOLEANS_CF_BOOLEANS_3_MASK 0xff000000
+
+#define SQ_CF_BOOLEANS_MASK \
+ (SQ_CF_BOOLEANS_CF_BOOLEANS_0_MASK | \
+ SQ_CF_BOOLEANS_CF_BOOLEANS_1_MASK | \
+ SQ_CF_BOOLEANS_CF_BOOLEANS_2_MASK | \
+ SQ_CF_BOOLEANS_CF_BOOLEANS_3_MASK)
+
+#define SQ_CF_BOOLEANS(cf_booleans_0, cf_booleans_1, cf_booleans_2, cf_booleans_3) \
+ ((cf_booleans_0 << SQ_CF_BOOLEANS_CF_BOOLEANS_0_SHIFT) | \
+ (cf_booleans_1 << SQ_CF_BOOLEANS_CF_BOOLEANS_1_SHIFT) | \
+ (cf_booleans_2 << SQ_CF_BOOLEANS_CF_BOOLEANS_2_SHIFT) | \
+ (cf_booleans_3 << SQ_CF_BOOLEANS_CF_BOOLEANS_3_SHIFT))
+
+#define SQ_CF_BOOLEANS_GET_CF_BOOLEANS_0(sq_cf_booleans) \
+ ((sq_cf_booleans & SQ_CF_BOOLEANS_CF_BOOLEANS_0_MASK) >> SQ_CF_BOOLEANS_CF_BOOLEANS_0_SHIFT)
+#define SQ_CF_BOOLEANS_GET_CF_BOOLEANS_1(sq_cf_booleans) \
+ ((sq_cf_booleans & SQ_CF_BOOLEANS_CF_BOOLEANS_1_MASK) >> SQ_CF_BOOLEANS_CF_BOOLEANS_1_SHIFT)
+#define SQ_CF_BOOLEANS_GET_CF_BOOLEANS_2(sq_cf_booleans) \
+ ((sq_cf_booleans & SQ_CF_BOOLEANS_CF_BOOLEANS_2_MASK) >> SQ_CF_BOOLEANS_CF_BOOLEANS_2_SHIFT)
+#define SQ_CF_BOOLEANS_GET_CF_BOOLEANS_3(sq_cf_booleans) \
+ ((sq_cf_booleans & SQ_CF_BOOLEANS_CF_BOOLEANS_3_MASK) >> SQ_CF_BOOLEANS_CF_BOOLEANS_3_SHIFT)
+
+#define SQ_CF_BOOLEANS_SET_CF_BOOLEANS_0(sq_cf_booleans_reg, cf_booleans_0) \
+ sq_cf_booleans_reg = (sq_cf_booleans_reg & ~SQ_CF_BOOLEANS_CF_BOOLEANS_0_MASK) | (cf_booleans_0 << SQ_CF_BOOLEANS_CF_BOOLEANS_0_SHIFT)
+#define SQ_CF_BOOLEANS_SET_CF_BOOLEANS_1(sq_cf_booleans_reg, cf_booleans_1) \
+ sq_cf_booleans_reg = (sq_cf_booleans_reg & ~SQ_CF_BOOLEANS_CF_BOOLEANS_1_MASK) | (cf_booleans_1 << SQ_CF_BOOLEANS_CF_BOOLEANS_1_SHIFT)
+#define SQ_CF_BOOLEANS_SET_CF_BOOLEANS_2(sq_cf_booleans_reg, cf_booleans_2) \
+ sq_cf_booleans_reg = (sq_cf_booleans_reg & ~SQ_CF_BOOLEANS_CF_BOOLEANS_2_MASK) | (cf_booleans_2 << SQ_CF_BOOLEANS_CF_BOOLEANS_2_SHIFT)
+#define SQ_CF_BOOLEANS_SET_CF_BOOLEANS_3(sq_cf_booleans_reg, cf_booleans_3) \
+ sq_cf_booleans_reg = (sq_cf_booleans_reg & ~SQ_CF_BOOLEANS_CF_BOOLEANS_3_MASK) | (cf_booleans_3 << SQ_CF_BOOLEANS_CF_BOOLEANS_3_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_cf_booleans_t {
+ unsigned int cf_booleans_0 : SQ_CF_BOOLEANS_CF_BOOLEANS_0_SIZE;
+ unsigned int cf_booleans_1 : SQ_CF_BOOLEANS_CF_BOOLEANS_1_SIZE;
+ unsigned int cf_booleans_2 : SQ_CF_BOOLEANS_CF_BOOLEANS_2_SIZE;
+ unsigned int cf_booleans_3 : SQ_CF_BOOLEANS_CF_BOOLEANS_3_SIZE;
+ } sq_cf_booleans_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_cf_booleans_t {
+ unsigned int cf_booleans_3 : SQ_CF_BOOLEANS_CF_BOOLEANS_3_SIZE;
+ unsigned int cf_booleans_2 : SQ_CF_BOOLEANS_CF_BOOLEANS_2_SIZE;
+ unsigned int cf_booleans_1 : SQ_CF_BOOLEANS_CF_BOOLEANS_1_SIZE;
+ unsigned int cf_booleans_0 : SQ_CF_BOOLEANS_CF_BOOLEANS_0_SIZE;
+ } sq_cf_booleans_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_cf_booleans_t f;
+} sq_cf_booleans_u;
+
+
+/*
+ * SQ_CF_LOOP struct
+ */
+
+#define SQ_CF_LOOP_CF_LOOP_COUNT_SIZE 8
+#define SQ_CF_LOOP_CF_LOOP_START_SIZE 8
+#define SQ_CF_LOOP_CF_LOOP_STEP_SIZE 8
+
+#define SQ_CF_LOOP_CF_LOOP_COUNT_SHIFT 0
+#define SQ_CF_LOOP_CF_LOOP_START_SHIFT 8
+#define SQ_CF_LOOP_CF_LOOP_STEP_SHIFT 16
+
+#define SQ_CF_LOOP_CF_LOOP_COUNT_MASK 0x000000ff
+#define SQ_CF_LOOP_CF_LOOP_START_MASK 0x0000ff00
+#define SQ_CF_LOOP_CF_LOOP_STEP_MASK 0x00ff0000
+
+#define SQ_CF_LOOP_MASK \
+ (SQ_CF_LOOP_CF_LOOP_COUNT_MASK | \
+ SQ_CF_LOOP_CF_LOOP_START_MASK | \
+ SQ_CF_LOOP_CF_LOOP_STEP_MASK)
+
+#define SQ_CF_LOOP(cf_loop_count, cf_loop_start, cf_loop_step) \
+ ((cf_loop_count << SQ_CF_LOOP_CF_LOOP_COUNT_SHIFT) | \
+ (cf_loop_start << SQ_CF_LOOP_CF_LOOP_START_SHIFT) | \
+ (cf_loop_step << SQ_CF_LOOP_CF_LOOP_STEP_SHIFT))
+
+#define SQ_CF_LOOP_GET_CF_LOOP_COUNT(sq_cf_loop) \
+ ((sq_cf_loop & SQ_CF_LOOP_CF_LOOP_COUNT_MASK) >> SQ_CF_LOOP_CF_LOOP_COUNT_SHIFT)
+#define SQ_CF_LOOP_GET_CF_LOOP_START(sq_cf_loop) \
+ ((sq_cf_loop & SQ_CF_LOOP_CF_LOOP_START_MASK) >> SQ_CF_LOOP_CF_LOOP_START_SHIFT)
+#define SQ_CF_LOOP_GET_CF_LOOP_STEP(sq_cf_loop) \
+ ((sq_cf_loop & SQ_CF_LOOP_CF_LOOP_STEP_MASK) >> SQ_CF_LOOP_CF_LOOP_STEP_SHIFT)
+
+#define SQ_CF_LOOP_SET_CF_LOOP_COUNT(sq_cf_loop_reg, cf_loop_count) \
+ sq_cf_loop_reg = (sq_cf_loop_reg & ~SQ_CF_LOOP_CF_LOOP_COUNT_MASK) | (cf_loop_count << SQ_CF_LOOP_CF_LOOP_COUNT_SHIFT)
+#define SQ_CF_LOOP_SET_CF_LOOP_START(sq_cf_loop_reg, cf_loop_start) \
+ sq_cf_loop_reg = (sq_cf_loop_reg & ~SQ_CF_LOOP_CF_LOOP_START_MASK) | (cf_loop_start << SQ_CF_LOOP_CF_LOOP_START_SHIFT)
+#define SQ_CF_LOOP_SET_CF_LOOP_STEP(sq_cf_loop_reg, cf_loop_step) \
+ sq_cf_loop_reg = (sq_cf_loop_reg & ~SQ_CF_LOOP_CF_LOOP_STEP_MASK) | (cf_loop_step << SQ_CF_LOOP_CF_LOOP_STEP_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_cf_loop_t {
+ unsigned int cf_loop_count : SQ_CF_LOOP_CF_LOOP_COUNT_SIZE;
+ unsigned int cf_loop_start : SQ_CF_LOOP_CF_LOOP_START_SIZE;
+ unsigned int cf_loop_step : SQ_CF_LOOP_CF_LOOP_STEP_SIZE;
+ unsigned int : 8;
+ } sq_cf_loop_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_cf_loop_t {
+ unsigned int : 8;
+ unsigned int cf_loop_step : SQ_CF_LOOP_CF_LOOP_STEP_SIZE;
+ unsigned int cf_loop_start : SQ_CF_LOOP_CF_LOOP_START_SIZE;
+ unsigned int cf_loop_count : SQ_CF_LOOP_CF_LOOP_COUNT_SIZE;
+ } sq_cf_loop_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_cf_loop_t f;
+} sq_cf_loop_u;
+
+
+/*
+ * SQ_CONSTANT_RT_0 struct
+ */
+
+#define SQ_CONSTANT_RT_0_RED_SIZE 32
+
+#define SQ_CONSTANT_RT_0_RED_SHIFT 0
+
+#define SQ_CONSTANT_RT_0_RED_MASK 0xffffffff
+
+#define SQ_CONSTANT_RT_0_MASK \
+ (SQ_CONSTANT_RT_0_RED_MASK)
+
+#define SQ_CONSTANT_RT_0(red) \
+ ((red << SQ_CONSTANT_RT_0_RED_SHIFT))
+
+#define SQ_CONSTANT_RT_0_GET_RED(sq_constant_rt_0) \
+ ((sq_constant_rt_0 & SQ_CONSTANT_RT_0_RED_MASK) >> SQ_CONSTANT_RT_0_RED_SHIFT)
+
+#define SQ_CONSTANT_RT_0_SET_RED(sq_constant_rt_0_reg, red) \
+ sq_constant_rt_0_reg = (sq_constant_rt_0_reg & ~SQ_CONSTANT_RT_0_RED_MASK) | (red << SQ_CONSTANT_RT_0_RED_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_constant_rt_0_t {
+ unsigned int red : SQ_CONSTANT_RT_0_RED_SIZE;
+ } sq_constant_rt_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_constant_rt_0_t {
+ unsigned int red : SQ_CONSTANT_RT_0_RED_SIZE;
+ } sq_constant_rt_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_constant_rt_0_t f;
+} sq_constant_rt_0_u;
+
+
+/*
+ * SQ_CONSTANT_RT_1 struct
+ */
+
+#define SQ_CONSTANT_RT_1_GREEN_SIZE 32
+
+#define SQ_CONSTANT_RT_1_GREEN_SHIFT 0
+
+#define SQ_CONSTANT_RT_1_GREEN_MASK 0xffffffff
+
+#define SQ_CONSTANT_RT_1_MASK \
+ (SQ_CONSTANT_RT_1_GREEN_MASK)
+
+#define SQ_CONSTANT_RT_1(green) \
+ ((green << SQ_CONSTANT_RT_1_GREEN_SHIFT))
+
+#define SQ_CONSTANT_RT_1_GET_GREEN(sq_constant_rt_1) \
+ ((sq_constant_rt_1 & SQ_CONSTANT_RT_1_GREEN_MASK) >> SQ_CONSTANT_RT_1_GREEN_SHIFT)
+
+#define SQ_CONSTANT_RT_1_SET_GREEN(sq_constant_rt_1_reg, green) \
+ sq_constant_rt_1_reg = (sq_constant_rt_1_reg & ~SQ_CONSTANT_RT_1_GREEN_MASK) | (green << SQ_CONSTANT_RT_1_GREEN_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_constant_rt_1_t {
+ unsigned int green : SQ_CONSTANT_RT_1_GREEN_SIZE;
+ } sq_constant_rt_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_constant_rt_1_t {
+ unsigned int green : SQ_CONSTANT_RT_1_GREEN_SIZE;
+ } sq_constant_rt_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_constant_rt_1_t f;
+} sq_constant_rt_1_u;
+
+
+/*
+ * SQ_CONSTANT_RT_2 struct
+ */
+
+#define SQ_CONSTANT_RT_2_BLUE_SIZE 32
+
+#define SQ_CONSTANT_RT_2_BLUE_SHIFT 0
+
+#define SQ_CONSTANT_RT_2_BLUE_MASK 0xffffffff
+
+#define SQ_CONSTANT_RT_2_MASK \
+ (SQ_CONSTANT_RT_2_BLUE_MASK)
+
+#define SQ_CONSTANT_RT_2(blue) \
+ ((blue << SQ_CONSTANT_RT_2_BLUE_SHIFT))
+
+#define SQ_CONSTANT_RT_2_GET_BLUE(sq_constant_rt_2) \
+ ((sq_constant_rt_2 & SQ_CONSTANT_RT_2_BLUE_MASK) >> SQ_CONSTANT_RT_2_BLUE_SHIFT)
+
+#define SQ_CONSTANT_RT_2_SET_BLUE(sq_constant_rt_2_reg, blue) \
+ sq_constant_rt_2_reg = (sq_constant_rt_2_reg & ~SQ_CONSTANT_RT_2_BLUE_MASK) | (blue << SQ_CONSTANT_RT_2_BLUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_constant_rt_2_t {
+ unsigned int blue : SQ_CONSTANT_RT_2_BLUE_SIZE;
+ } sq_constant_rt_2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_constant_rt_2_t {
+ unsigned int blue : SQ_CONSTANT_RT_2_BLUE_SIZE;
+ } sq_constant_rt_2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_constant_rt_2_t f;
+} sq_constant_rt_2_u;
+
+
+/*
+ * SQ_CONSTANT_RT_3 struct
+ */
+
+#define SQ_CONSTANT_RT_3_ALPHA_SIZE 32
+
+#define SQ_CONSTANT_RT_3_ALPHA_SHIFT 0
+
+#define SQ_CONSTANT_RT_3_ALPHA_MASK 0xffffffff
+
+#define SQ_CONSTANT_RT_3_MASK \
+ (SQ_CONSTANT_RT_3_ALPHA_MASK)
+
+#define SQ_CONSTANT_RT_3(alpha) \
+ ((alpha << SQ_CONSTANT_RT_3_ALPHA_SHIFT))
+
+#define SQ_CONSTANT_RT_3_GET_ALPHA(sq_constant_rt_3) \
+ ((sq_constant_rt_3 & SQ_CONSTANT_RT_3_ALPHA_MASK) >> SQ_CONSTANT_RT_3_ALPHA_SHIFT)
+
+#define SQ_CONSTANT_RT_3_SET_ALPHA(sq_constant_rt_3_reg, alpha) \
+ sq_constant_rt_3_reg = (sq_constant_rt_3_reg & ~SQ_CONSTANT_RT_3_ALPHA_MASK) | (alpha << SQ_CONSTANT_RT_3_ALPHA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_constant_rt_3_t {
+ unsigned int alpha : SQ_CONSTANT_RT_3_ALPHA_SIZE;
+ } sq_constant_rt_3_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_constant_rt_3_t {
+ unsigned int alpha : SQ_CONSTANT_RT_3_ALPHA_SIZE;
+ } sq_constant_rt_3_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_constant_rt_3_t f;
+} sq_constant_rt_3_u;
+
+
+/*
+ * SQ_FETCH_RT_0 struct
+ */
+
+#define SQ_FETCH_RT_0_VALUE_SIZE 32
+
+#define SQ_FETCH_RT_0_VALUE_SHIFT 0
+
+#define SQ_FETCH_RT_0_VALUE_MASK 0xffffffff
+
+#define SQ_FETCH_RT_0_MASK \
+ (SQ_FETCH_RT_0_VALUE_MASK)
+
+#define SQ_FETCH_RT_0(value) \
+ ((value << SQ_FETCH_RT_0_VALUE_SHIFT))
+
+#define SQ_FETCH_RT_0_GET_VALUE(sq_fetch_rt_0) \
+ ((sq_fetch_rt_0 & SQ_FETCH_RT_0_VALUE_MASK) >> SQ_FETCH_RT_0_VALUE_SHIFT)
+
+#define SQ_FETCH_RT_0_SET_VALUE(sq_fetch_rt_0_reg, value) \
+ sq_fetch_rt_0_reg = (sq_fetch_rt_0_reg & ~SQ_FETCH_RT_0_VALUE_MASK) | (value << SQ_FETCH_RT_0_VALUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_fetch_rt_0_t {
+ unsigned int value : SQ_FETCH_RT_0_VALUE_SIZE;
+ } sq_fetch_rt_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_fetch_rt_0_t {
+ unsigned int value : SQ_FETCH_RT_0_VALUE_SIZE;
+ } sq_fetch_rt_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_fetch_rt_0_t f;
+} sq_fetch_rt_0_u;
+
+
+/*
+ * SQ_FETCH_RT_1 struct
+ */
+
+#define SQ_FETCH_RT_1_VALUE_SIZE 32
+
+#define SQ_FETCH_RT_1_VALUE_SHIFT 0
+
+#define SQ_FETCH_RT_1_VALUE_MASK 0xffffffff
+
+#define SQ_FETCH_RT_1_MASK \
+ (SQ_FETCH_RT_1_VALUE_MASK)
+
+#define SQ_FETCH_RT_1(value) \
+ ((value << SQ_FETCH_RT_1_VALUE_SHIFT))
+
+#define SQ_FETCH_RT_1_GET_VALUE(sq_fetch_rt_1) \
+ ((sq_fetch_rt_1 & SQ_FETCH_RT_1_VALUE_MASK) >> SQ_FETCH_RT_1_VALUE_SHIFT)
+
+#define SQ_FETCH_RT_1_SET_VALUE(sq_fetch_rt_1_reg, value) \
+ sq_fetch_rt_1_reg = (sq_fetch_rt_1_reg & ~SQ_FETCH_RT_1_VALUE_MASK) | (value << SQ_FETCH_RT_1_VALUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_fetch_rt_1_t {
+ unsigned int value : SQ_FETCH_RT_1_VALUE_SIZE;
+ } sq_fetch_rt_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_fetch_rt_1_t {
+ unsigned int value : SQ_FETCH_RT_1_VALUE_SIZE;
+ } sq_fetch_rt_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_fetch_rt_1_t f;
+} sq_fetch_rt_1_u;
+
+
+/*
+ * SQ_FETCH_RT_2 struct
+ */
+
+#define SQ_FETCH_RT_2_VALUE_SIZE 32
+
+#define SQ_FETCH_RT_2_VALUE_SHIFT 0
+
+#define SQ_FETCH_RT_2_VALUE_MASK 0xffffffff
+
+#define SQ_FETCH_RT_2_MASK \
+ (SQ_FETCH_RT_2_VALUE_MASK)
+
+#define SQ_FETCH_RT_2(value) \
+ ((value << SQ_FETCH_RT_2_VALUE_SHIFT))
+
+#define SQ_FETCH_RT_2_GET_VALUE(sq_fetch_rt_2) \
+ ((sq_fetch_rt_2 & SQ_FETCH_RT_2_VALUE_MASK) >> SQ_FETCH_RT_2_VALUE_SHIFT)
+
+#define SQ_FETCH_RT_2_SET_VALUE(sq_fetch_rt_2_reg, value) \
+ sq_fetch_rt_2_reg = (sq_fetch_rt_2_reg & ~SQ_FETCH_RT_2_VALUE_MASK) | (value << SQ_FETCH_RT_2_VALUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_fetch_rt_2_t {
+ unsigned int value : SQ_FETCH_RT_2_VALUE_SIZE;
+ } sq_fetch_rt_2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_fetch_rt_2_t {
+ unsigned int value : SQ_FETCH_RT_2_VALUE_SIZE;
+ } sq_fetch_rt_2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_fetch_rt_2_t f;
+} sq_fetch_rt_2_u;
+
+
+/*
+ * SQ_FETCH_RT_3 struct
+ */
+
+#define SQ_FETCH_RT_3_VALUE_SIZE 32
+
+#define SQ_FETCH_RT_3_VALUE_SHIFT 0
+
+#define SQ_FETCH_RT_3_VALUE_MASK 0xffffffff
+
+#define SQ_FETCH_RT_3_MASK \
+ (SQ_FETCH_RT_3_VALUE_MASK)
+
+#define SQ_FETCH_RT_3(value) \
+ ((value << SQ_FETCH_RT_3_VALUE_SHIFT))
+
+#define SQ_FETCH_RT_3_GET_VALUE(sq_fetch_rt_3) \
+ ((sq_fetch_rt_3 & SQ_FETCH_RT_3_VALUE_MASK) >> SQ_FETCH_RT_3_VALUE_SHIFT)
+
+#define SQ_FETCH_RT_3_SET_VALUE(sq_fetch_rt_3_reg, value) \
+ sq_fetch_rt_3_reg = (sq_fetch_rt_3_reg & ~SQ_FETCH_RT_3_VALUE_MASK) | (value << SQ_FETCH_RT_3_VALUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_fetch_rt_3_t {
+ unsigned int value : SQ_FETCH_RT_3_VALUE_SIZE;
+ } sq_fetch_rt_3_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_fetch_rt_3_t {
+ unsigned int value : SQ_FETCH_RT_3_VALUE_SIZE;
+ } sq_fetch_rt_3_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_fetch_rt_3_t f;
+} sq_fetch_rt_3_u;
+
+
+/*
+ * SQ_FETCH_RT_4 struct
+ */
+
+#define SQ_FETCH_RT_4_VALUE_SIZE 32
+
+#define SQ_FETCH_RT_4_VALUE_SHIFT 0
+
+#define SQ_FETCH_RT_4_VALUE_MASK 0xffffffff
+
+#define SQ_FETCH_RT_4_MASK \
+ (SQ_FETCH_RT_4_VALUE_MASK)
+
+#define SQ_FETCH_RT_4(value) \
+ ((value << SQ_FETCH_RT_4_VALUE_SHIFT))
+
+#define SQ_FETCH_RT_4_GET_VALUE(sq_fetch_rt_4) \
+ ((sq_fetch_rt_4 & SQ_FETCH_RT_4_VALUE_MASK) >> SQ_FETCH_RT_4_VALUE_SHIFT)
+
+#define SQ_FETCH_RT_4_SET_VALUE(sq_fetch_rt_4_reg, value) \
+ sq_fetch_rt_4_reg = (sq_fetch_rt_4_reg & ~SQ_FETCH_RT_4_VALUE_MASK) | (value << SQ_FETCH_RT_4_VALUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_fetch_rt_4_t {
+ unsigned int value : SQ_FETCH_RT_4_VALUE_SIZE;
+ } sq_fetch_rt_4_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_fetch_rt_4_t {
+ unsigned int value : SQ_FETCH_RT_4_VALUE_SIZE;
+ } sq_fetch_rt_4_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_fetch_rt_4_t f;
+} sq_fetch_rt_4_u;
+
+
+/*
+ * SQ_FETCH_RT_5 struct
+ */
+
+#define SQ_FETCH_RT_5_VALUE_SIZE 32
+
+#define SQ_FETCH_RT_5_VALUE_SHIFT 0
+
+#define SQ_FETCH_RT_5_VALUE_MASK 0xffffffff
+
+#define SQ_FETCH_RT_5_MASK \
+ (SQ_FETCH_RT_5_VALUE_MASK)
+
+#define SQ_FETCH_RT_5(value) \
+ ((value << SQ_FETCH_RT_5_VALUE_SHIFT))
+
+#define SQ_FETCH_RT_5_GET_VALUE(sq_fetch_rt_5) \
+ ((sq_fetch_rt_5 & SQ_FETCH_RT_5_VALUE_MASK) >> SQ_FETCH_RT_5_VALUE_SHIFT)
+
+#define SQ_FETCH_RT_5_SET_VALUE(sq_fetch_rt_5_reg, value) \
+ sq_fetch_rt_5_reg = (sq_fetch_rt_5_reg & ~SQ_FETCH_RT_5_VALUE_MASK) | (value << SQ_FETCH_RT_5_VALUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_fetch_rt_5_t {
+ unsigned int value : SQ_FETCH_RT_5_VALUE_SIZE;
+ } sq_fetch_rt_5_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_fetch_rt_5_t {
+ unsigned int value : SQ_FETCH_RT_5_VALUE_SIZE;
+ } sq_fetch_rt_5_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_fetch_rt_5_t f;
+} sq_fetch_rt_5_u;
+
+
+/*
+ * SQ_CF_RT_BOOLEANS struct
+ */
+
+#define SQ_CF_RT_BOOLEANS_CF_BOOLEANS_0_SIZE 8
+#define SQ_CF_RT_BOOLEANS_CF_BOOLEANS_1_SIZE 8
+#define SQ_CF_RT_BOOLEANS_CF_BOOLEANS_2_SIZE 8
+#define SQ_CF_RT_BOOLEANS_CF_BOOLEANS_3_SIZE 8
+
+#define SQ_CF_RT_BOOLEANS_CF_BOOLEANS_0_SHIFT 0
+#define SQ_CF_RT_BOOLEANS_CF_BOOLEANS_1_SHIFT 8
+#define SQ_CF_RT_BOOLEANS_CF_BOOLEANS_2_SHIFT 16
+#define SQ_CF_RT_BOOLEANS_CF_BOOLEANS_3_SHIFT 24
+
+#define SQ_CF_RT_BOOLEANS_CF_BOOLEANS_0_MASK 0x000000ff
+#define SQ_CF_RT_BOOLEANS_CF_BOOLEANS_1_MASK 0x0000ff00
+#define SQ_CF_RT_BOOLEANS_CF_BOOLEANS_2_MASK 0x00ff0000
+#define SQ_CF_RT_BOOLEANS_CF_BOOLEANS_3_MASK 0xff000000
+
+#define SQ_CF_RT_BOOLEANS_MASK \
+ (SQ_CF_RT_BOOLEANS_CF_BOOLEANS_0_MASK | \
+ SQ_CF_RT_BOOLEANS_CF_BOOLEANS_1_MASK | \
+ SQ_CF_RT_BOOLEANS_CF_BOOLEANS_2_MASK | \
+ SQ_CF_RT_BOOLEANS_CF_BOOLEANS_3_MASK)
+
+#define SQ_CF_RT_BOOLEANS(cf_booleans_0, cf_booleans_1, cf_booleans_2, cf_booleans_3) \
+ ((cf_booleans_0 << SQ_CF_RT_BOOLEANS_CF_BOOLEANS_0_SHIFT) | \
+ (cf_booleans_1 << SQ_CF_RT_BOOLEANS_CF_BOOLEANS_1_SHIFT) | \
+ (cf_booleans_2 << SQ_CF_RT_BOOLEANS_CF_BOOLEANS_2_SHIFT) | \
+ (cf_booleans_3 << SQ_CF_RT_BOOLEANS_CF_BOOLEANS_3_SHIFT))
+
+#define SQ_CF_RT_BOOLEANS_GET_CF_BOOLEANS_0(sq_cf_rt_booleans) \
+ ((sq_cf_rt_booleans & SQ_CF_RT_BOOLEANS_CF_BOOLEANS_0_MASK) >> SQ_CF_RT_BOOLEANS_CF_BOOLEANS_0_SHIFT)
+#define SQ_CF_RT_BOOLEANS_GET_CF_BOOLEANS_1(sq_cf_rt_booleans) \
+ ((sq_cf_rt_booleans & SQ_CF_RT_BOOLEANS_CF_BOOLEANS_1_MASK) >> SQ_CF_RT_BOOLEANS_CF_BOOLEANS_1_SHIFT)
+#define SQ_CF_RT_BOOLEANS_GET_CF_BOOLEANS_2(sq_cf_rt_booleans) \
+ ((sq_cf_rt_booleans & SQ_CF_RT_BOOLEANS_CF_BOOLEANS_2_MASK) >> SQ_CF_RT_BOOLEANS_CF_BOOLEANS_2_SHIFT)
+#define SQ_CF_RT_BOOLEANS_GET_CF_BOOLEANS_3(sq_cf_rt_booleans) \
+ ((sq_cf_rt_booleans & SQ_CF_RT_BOOLEANS_CF_BOOLEANS_3_MASK) >> SQ_CF_RT_BOOLEANS_CF_BOOLEANS_3_SHIFT)
+
+#define SQ_CF_RT_BOOLEANS_SET_CF_BOOLEANS_0(sq_cf_rt_booleans_reg, cf_booleans_0) \
+ sq_cf_rt_booleans_reg = (sq_cf_rt_booleans_reg & ~SQ_CF_RT_BOOLEANS_CF_BOOLEANS_0_MASK) | (cf_booleans_0 << SQ_CF_RT_BOOLEANS_CF_BOOLEANS_0_SHIFT)
+#define SQ_CF_RT_BOOLEANS_SET_CF_BOOLEANS_1(sq_cf_rt_booleans_reg, cf_booleans_1) \
+ sq_cf_rt_booleans_reg = (sq_cf_rt_booleans_reg & ~SQ_CF_RT_BOOLEANS_CF_BOOLEANS_1_MASK) | (cf_booleans_1 << SQ_CF_RT_BOOLEANS_CF_BOOLEANS_1_SHIFT)
+#define SQ_CF_RT_BOOLEANS_SET_CF_BOOLEANS_2(sq_cf_rt_booleans_reg, cf_booleans_2) \
+ sq_cf_rt_booleans_reg = (sq_cf_rt_booleans_reg & ~SQ_CF_RT_BOOLEANS_CF_BOOLEANS_2_MASK) | (cf_booleans_2 << SQ_CF_RT_BOOLEANS_CF_BOOLEANS_2_SHIFT)
+#define SQ_CF_RT_BOOLEANS_SET_CF_BOOLEANS_3(sq_cf_rt_booleans_reg, cf_booleans_3) \
+ sq_cf_rt_booleans_reg = (sq_cf_rt_booleans_reg & ~SQ_CF_RT_BOOLEANS_CF_BOOLEANS_3_MASK) | (cf_booleans_3 << SQ_CF_RT_BOOLEANS_CF_BOOLEANS_3_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_cf_rt_booleans_t {
+ unsigned int cf_booleans_0 : SQ_CF_RT_BOOLEANS_CF_BOOLEANS_0_SIZE;
+ unsigned int cf_booleans_1 : SQ_CF_RT_BOOLEANS_CF_BOOLEANS_1_SIZE;
+ unsigned int cf_booleans_2 : SQ_CF_RT_BOOLEANS_CF_BOOLEANS_2_SIZE;
+ unsigned int cf_booleans_3 : SQ_CF_RT_BOOLEANS_CF_BOOLEANS_3_SIZE;
+ } sq_cf_rt_booleans_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_cf_rt_booleans_t {
+ unsigned int cf_booleans_3 : SQ_CF_RT_BOOLEANS_CF_BOOLEANS_3_SIZE;
+ unsigned int cf_booleans_2 : SQ_CF_RT_BOOLEANS_CF_BOOLEANS_2_SIZE;
+ unsigned int cf_booleans_1 : SQ_CF_RT_BOOLEANS_CF_BOOLEANS_1_SIZE;
+ unsigned int cf_booleans_0 : SQ_CF_RT_BOOLEANS_CF_BOOLEANS_0_SIZE;
+ } sq_cf_rt_booleans_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_cf_rt_booleans_t f;
+} sq_cf_rt_booleans_u;
+
+
+/*
+ * SQ_CF_RT_LOOP struct
+ */
+
+#define SQ_CF_RT_LOOP_CF_LOOP_COUNT_SIZE 8
+#define SQ_CF_RT_LOOP_CF_LOOP_START_SIZE 8
+#define SQ_CF_RT_LOOP_CF_LOOP_STEP_SIZE 8
+
+#define SQ_CF_RT_LOOP_CF_LOOP_COUNT_SHIFT 0
+#define SQ_CF_RT_LOOP_CF_LOOP_START_SHIFT 8
+#define SQ_CF_RT_LOOP_CF_LOOP_STEP_SHIFT 16
+
+#define SQ_CF_RT_LOOP_CF_LOOP_COUNT_MASK 0x000000ff
+#define SQ_CF_RT_LOOP_CF_LOOP_START_MASK 0x0000ff00
+#define SQ_CF_RT_LOOP_CF_LOOP_STEP_MASK 0x00ff0000
+
+#define SQ_CF_RT_LOOP_MASK \
+ (SQ_CF_RT_LOOP_CF_LOOP_COUNT_MASK | \
+ SQ_CF_RT_LOOP_CF_LOOP_START_MASK | \
+ SQ_CF_RT_LOOP_CF_LOOP_STEP_MASK)
+
+#define SQ_CF_RT_LOOP(cf_loop_count, cf_loop_start, cf_loop_step) \
+ ((cf_loop_count << SQ_CF_RT_LOOP_CF_LOOP_COUNT_SHIFT) | \
+ (cf_loop_start << SQ_CF_RT_LOOP_CF_LOOP_START_SHIFT) | \
+ (cf_loop_step << SQ_CF_RT_LOOP_CF_LOOP_STEP_SHIFT))
+
+#define SQ_CF_RT_LOOP_GET_CF_LOOP_COUNT(sq_cf_rt_loop) \
+ ((sq_cf_rt_loop & SQ_CF_RT_LOOP_CF_LOOP_COUNT_MASK) >> SQ_CF_RT_LOOP_CF_LOOP_COUNT_SHIFT)
+#define SQ_CF_RT_LOOP_GET_CF_LOOP_START(sq_cf_rt_loop) \
+ ((sq_cf_rt_loop & SQ_CF_RT_LOOP_CF_LOOP_START_MASK) >> SQ_CF_RT_LOOP_CF_LOOP_START_SHIFT)
+#define SQ_CF_RT_LOOP_GET_CF_LOOP_STEP(sq_cf_rt_loop) \
+ ((sq_cf_rt_loop & SQ_CF_RT_LOOP_CF_LOOP_STEP_MASK) >> SQ_CF_RT_LOOP_CF_LOOP_STEP_SHIFT)
+
+#define SQ_CF_RT_LOOP_SET_CF_LOOP_COUNT(sq_cf_rt_loop_reg, cf_loop_count) \
+ sq_cf_rt_loop_reg = (sq_cf_rt_loop_reg & ~SQ_CF_RT_LOOP_CF_LOOP_COUNT_MASK) | (cf_loop_count << SQ_CF_RT_LOOP_CF_LOOP_COUNT_SHIFT)
+#define SQ_CF_RT_LOOP_SET_CF_LOOP_START(sq_cf_rt_loop_reg, cf_loop_start) \
+ sq_cf_rt_loop_reg = (sq_cf_rt_loop_reg & ~SQ_CF_RT_LOOP_CF_LOOP_START_MASK) | (cf_loop_start << SQ_CF_RT_LOOP_CF_LOOP_START_SHIFT)
+#define SQ_CF_RT_LOOP_SET_CF_LOOP_STEP(sq_cf_rt_loop_reg, cf_loop_step) \
+ sq_cf_rt_loop_reg = (sq_cf_rt_loop_reg & ~SQ_CF_RT_LOOP_CF_LOOP_STEP_MASK) | (cf_loop_step << SQ_CF_RT_LOOP_CF_LOOP_STEP_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_cf_rt_loop_t {
+ unsigned int cf_loop_count : SQ_CF_RT_LOOP_CF_LOOP_COUNT_SIZE;
+ unsigned int cf_loop_start : SQ_CF_RT_LOOP_CF_LOOP_START_SIZE;
+ unsigned int cf_loop_step : SQ_CF_RT_LOOP_CF_LOOP_STEP_SIZE;
+ unsigned int : 8;
+ } sq_cf_rt_loop_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_cf_rt_loop_t {
+ unsigned int : 8;
+ unsigned int cf_loop_step : SQ_CF_RT_LOOP_CF_LOOP_STEP_SIZE;
+ unsigned int cf_loop_start : SQ_CF_RT_LOOP_CF_LOOP_START_SIZE;
+ unsigned int cf_loop_count : SQ_CF_RT_LOOP_CF_LOOP_COUNT_SIZE;
+ } sq_cf_rt_loop_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_cf_rt_loop_t f;
+} sq_cf_rt_loop_u;
+
+
+/*
+ * SQ_VS_PROGRAM struct
+ */
+
+#define SQ_VS_PROGRAM_BASE_SIZE 12
+#define SQ_VS_PROGRAM_SIZE_SIZE 12
+
+#define SQ_VS_PROGRAM_BASE_SHIFT 0
+#define SQ_VS_PROGRAM_SIZE_SHIFT 12
+
+#define SQ_VS_PROGRAM_BASE_MASK 0x00000fff
+#define SQ_VS_PROGRAM_SIZE_MASK 0x00fff000
+
+#define SQ_VS_PROGRAM_MASK \
+ (SQ_VS_PROGRAM_BASE_MASK | \
+ SQ_VS_PROGRAM_SIZE_MASK)
+
+#define SQ_VS_PROGRAM(base, size) \
+ ((base << SQ_VS_PROGRAM_BASE_SHIFT) | \
+ (size << SQ_VS_PROGRAM_SIZE_SHIFT))
+
+#define SQ_VS_PROGRAM_GET_BASE(sq_vs_program) \
+ ((sq_vs_program & SQ_VS_PROGRAM_BASE_MASK) >> SQ_VS_PROGRAM_BASE_SHIFT)
+#define SQ_VS_PROGRAM_GET_SIZE(sq_vs_program) \
+ ((sq_vs_program & SQ_VS_PROGRAM_SIZE_MASK) >> SQ_VS_PROGRAM_SIZE_SHIFT)
+
+#define SQ_VS_PROGRAM_SET_BASE(sq_vs_program_reg, base) \
+ sq_vs_program_reg = (sq_vs_program_reg & ~SQ_VS_PROGRAM_BASE_MASK) | (base << SQ_VS_PROGRAM_BASE_SHIFT)
+#define SQ_VS_PROGRAM_SET_SIZE(sq_vs_program_reg, size) \
+ sq_vs_program_reg = (sq_vs_program_reg & ~SQ_VS_PROGRAM_SIZE_MASK) | (size << SQ_VS_PROGRAM_SIZE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_vs_program_t {
+ unsigned int base : SQ_VS_PROGRAM_BASE_SIZE;
+ unsigned int size : SQ_VS_PROGRAM_SIZE_SIZE;
+ unsigned int : 8;
+ } sq_vs_program_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_vs_program_t {
+ unsigned int : 8;
+ unsigned int size : SQ_VS_PROGRAM_SIZE_SIZE;
+ unsigned int base : SQ_VS_PROGRAM_BASE_SIZE;
+ } sq_vs_program_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_vs_program_t f;
+} sq_vs_program_u;
+
+
+/*
+ * SQ_PS_PROGRAM struct
+ */
+
+#define SQ_PS_PROGRAM_BASE_SIZE 12
+#define SQ_PS_PROGRAM_SIZE_SIZE 12
+
+#define SQ_PS_PROGRAM_BASE_SHIFT 0
+#define SQ_PS_PROGRAM_SIZE_SHIFT 12
+
+#define SQ_PS_PROGRAM_BASE_MASK 0x00000fff
+#define SQ_PS_PROGRAM_SIZE_MASK 0x00fff000
+
+#define SQ_PS_PROGRAM_MASK \
+ (SQ_PS_PROGRAM_BASE_MASK | \
+ SQ_PS_PROGRAM_SIZE_MASK)
+
+#define SQ_PS_PROGRAM(base, size) \
+ ((base << SQ_PS_PROGRAM_BASE_SHIFT) | \
+ (size << SQ_PS_PROGRAM_SIZE_SHIFT))
+
+#define SQ_PS_PROGRAM_GET_BASE(sq_ps_program) \
+ ((sq_ps_program & SQ_PS_PROGRAM_BASE_MASK) >> SQ_PS_PROGRAM_BASE_SHIFT)
+#define SQ_PS_PROGRAM_GET_SIZE(sq_ps_program) \
+ ((sq_ps_program & SQ_PS_PROGRAM_SIZE_MASK) >> SQ_PS_PROGRAM_SIZE_SHIFT)
+
+#define SQ_PS_PROGRAM_SET_BASE(sq_ps_program_reg, base) \
+ sq_ps_program_reg = (sq_ps_program_reg & ~SQ_PS_PROGRAM_BASE_MASK) | (base << SQ_PS_PROGRAM_BASE_SHIFT)
+#define SQ_PS_PROGRAM_SET_SIZE(sq_ps_program_reg, size) \
+ sq_ps_program_reg = (sq_ps_program_reg & ~SQ_PS_PROGRAM_SIZE_MASK) | (size << SQ_PS_PROGRAM_SIZE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_ps_program_t {
+ unsigned int base : SQ_PS_PROGRAM_BASE_SIZE;
+ unsigned int size : SQ_PS_PROGRAM_SIZE_SIZE;
+ unsigned int : 8;
+ } sq_ps_program_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_ps_program_t {
+ unsigned int : 8;
+ unsigned int size : SQ_PS_PROGRAM_SIZE_SIZE;
+ unsigned int base : SQ_PS_PROGRAM_BASE_SIZE;
+ } sq_ps_program_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_ps_program_t f;
+} sq_ps_program_u;
+
+
+/*
+ * SQ_CF_PROGRAM_SIZE struct
+ */
+
+#define SQ_CF_PROGRAM_SIZE_VS_CF_SIZE_SIZE 11
+#define SQ_CF_PROGRAM_SIZE_PS_CF_SIZE_SIZE 11
+
+#define SQ_CF_PROGRAM_SIZE_VS_CF_SIZE_SHIFT 0
+#define SQ_CF_PROGRAM_SIZE_PS_CF_SIZE_SHIFT 12
+
+#define SQ_CF_PROGRAM_SIZE_VS_CF_SIZE_MASK 0x000007ff
+#define SQ_CF_PROGRAM_SIZE_PS_CF_SIZE_MASK 0x007ff000
+
+#define SQ_CF_PROGRAM_SIZE_MASK \
+ (SQ_CF_PROGRAM_SIZE_VS_CF_SIZE_MASK | \
+ SQ_CF_PROGRAM_SIZE_PS_CF_SIZE_MASK)
+
+#define SQ_CF_PROGRAM_SIZE(vs_cf_size, ps_cf_size) \
+ ((vs_cf_size << SQ_CF_PROGRAM_SIZE_VS_CF_SIZE_SHIFT) | \
+ (ps_cf_size << SQ_CF_PROGRAM_SIZE_PS_CF_SIZE_SHIFT))
+
+#define SQ_CF_PROGRAM_SIZE_GET_VS_CF_SIZE(sq_cf_program_size) \
+ ((sq_cf_program_size & SQ_CF_PROGRAM_SIZE_VS_CF_SIZE_MASK) >> SQ_CF_PROGRAM_SIZE_VS_CF_SIZE_SHIFT)
+#define SQ_CF_PROGRAM_SIZE_GET_PS_CF_SIZE(sq_cf_program_size) \
+ ((sq_cf_program_size & SQ_CF_PROGRAM_SIZE_PS_CF_SIZE_MASK) >> SQ_CF_PROGRAM_SIZE_PS_CF_SIZE_SHIFT)
+
+#define SQ_CF_PROGRAM_SIZE_SET_VS_CF_SIZE(sq_cf_program_size_reg, vs_cf_size) \
+ sq_cf_program_size_reg = (sq_cf_program_size_reg & ~SQ_CF_PROGRAM_SIZE_VS_CF_SIZE_MASK) | (vs_cf_size << SQ_CF_PROGRAM_SIZE_VS_CF_SIZE_SHIFT)
+#define SQ_CF_PROGRAM_SIZE_SET_PS_CF_SIZE(sq_cf_program_size_reg, ps_cf_size) \
+ sq_cf_program_size_reg = (sq_cf_program_size_reg & ~SQ_CF_PROGRAM_SIZE_PS_CF_SIZE_MASK) | (ps_cf_size << SQ_CF_PROGRAM_SIZE_PS_CF_SIZE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_cf_program_size_t {
+ unsigned int vs_cf_size : SQ_CF_PROGRAM_SIZE_VS_CF_SIZE_SIZE;
+ unsigned int : 1;
+ unsigned int ps_cf_size : SQ_CF_PROGRAM_SIZE_PS_CF_SIZE_SIZE;
+ unsigned int : 9;
+ } sq_cf_program_size_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_cf_program_size_t {
+ unsigned int : 9;
+ unsigned int ps_cf_size : SQ_CF_PROGRAM_SIZE_PS_CF_SIZE_SIZE;
+ unsigned int : 1;
+ unsigned int vs_cf_size : SQ_CF_PROGRAM_SIZE_VS_CF_SIZE_SIZE;
+ } sq_cf_program_size_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_cf_program_size_t f;
+} sq_cf_program_size_u;
+
+
+/*
+ * SQ_INTERPOLATOR_CNTL struct
+ */
+
+#define SQ_INTERPOLATOR_CNTL_PARAM_SHADE_SIZE 16
+#define SQ_INTERPOLATOR_CNTL_SAMPLING_PATTERN_SIZE 16
+
+#define SQ_INTERPOLATOR_CNTL_PARAM_SHADE_SHIFT 0
+#define SQ_INTERPOLATOR_CNTL_SAMPLING_PATTERN_SHIFT 16
+
+#define SQ_INTERPOLATOR_CNTL_PARAM_SHADE_MASK 0x0000ffff
+#define SQ_INTERPOLATOR_CNTL_SAMPLING_PATTERN_MASK 0xffff0000
+
+#define SQ_INTERPOLATOR_CNTL_MASK \
+ (SQ_INTERPOLATOR_CNTL_PARAM_SHADE_MASK | \
+ SQ_INTERPOLATOR_CNTL_SAMPLING_PATTERN_MASK)
+
+#define SQ_INTERPOLATOR_CNTL(param_shade, sampling_pattern) \
+ ((param_shade << SQ_INTERPOLATOR_CNTL_PARAM_SHADE_SHIFT) | \
+ (sampling_pattern << SQ_INTERPOLATOR_CNTL_SAMPLING_PATTERN_SHIFT))
+
+#define SQ_INTERPOLATOR_CNTL_GET_PARAM_SHADE(sq_interpolator_cntl) \
+ ((sq_interpolator_cntl & SQ_INTERPOLATOR_CNTL_PARAM_SHADE_MASK) >> SQ_INTERPOLATOR_CNTL_PARAM_SHADE_SHIFT)
+#define SQ_INTERPOLATOR_CNTL_GET_SAMPLING_PATTERN(sq_interpolator_cntl) \
+ ((sq_interpolator_cntl & SQ_INTERPOLATOR_CNTL_SAMPLING_PATTERN_MASK) >> SQ_INTERPOLATOR_CNTL_SAMPLING_PATTERN_SHIFT)
+
+#define SQ_INTERPOLATOR_CNTL_SET_PARAM_SHADE(sq_interpolator_cntl_reg, param_shade) \
+ sq_interpolator_cntl_reg = (sq_interpolator_cntl_reg & ~SQ_INTERPOLATOR_CNTL_PARAM_SHADE_MASK) | (param_shade << SQ_INTERPOLATOR_CNTL_PARAM_SHADE_SHIFT)
+#define SQ_INTERPOLATOR_CNTL_SET_SAMPLING_PATTERN(sq_interpolator_cntl_reg, sampling_pattern) \
+ sq_interpolator_cntl_reg = (sq_interpolator_cntl_reg & ~SQ_INTERPOLATOR_CNTL_SAMPLING_PATTERN_MASK) | (sampling_pattern << SQ_INTERPOLATOR_CNTL_SAMPLING_PATTERN_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_interpolator_cntl_t {
+ unsigned int param_shade : SQ_INTERPOLATOR_CNTL_PARAM_SHADE_SIZE;
+ unsigned int sampling_pattern : SQ_INTERPOLATOR_CNTL_SAMPLING_PATTERN_SIZE;
+ } sq_interpolator_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_interpolator_cntl_t {
+ unsigned int sampling_pattern : SQ_INTERPOLATOR_CNTL_SAMPLING_PATTERN_SIZE;
+ unsigned int param_shade : SQ_INTERPOLATOR_CNTL_PARAM_SHADE_SIZE;
+ } sq_interpolator_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_interpolator_cntl_t f;
+} sq_interpolator_cntl_u;
+
+
+/*
+ * SQ_PROGRAM_CNTL struct
+ */
+
+#define SQ_PROGRAM_CNTL_VS_NUM_REG_SIZE 6
+#define SQ_PROGRAM_CNTL_PS_NUM_REG_SIZE 6
+#define SQ_PROGRAM_CNTL_VS_RESOURCE_SIZE 1
+#define SQ_PROGRAM_CNTL_PS_RESOURCE_SIZE 1
+#define SQ_PROGRAM_CNTL_PARAM_GEN_SIZE 1
+#define SQ_PROGRAM_CNTL_GEN_INDEX_PIX_SIZE 1
+#define SQ_PROGRAM_CNTL_VS_EXPORT_COUNT_SIZE 4
+#define SQ_PROGRAM_CNTL_VS_EXPORT_MODE_SIZE 3
+#define SQ_PROGRAM_CNTL_PS_EXPORT_MODE_SIZE 4
+#define SQ_PROGRAM_CNTL_GEN_INDEX_VTX_SIZE 1
+
+#define SQ_PROGRAM_CNTL_VS_NUM_REG_SHIFT 0
+#define SQ_PROGRAM_CNTL_PS_NUM_REG_SHIFT 8
+#define SQ_PROGRAM_CNTL_VS_RESOURCE_SHIFT 16
+#define SQ_PROGRAM_CNTL_PS_RESOURCE_SHIFT 17
+#define SQ_PROGRAM_CNTL_PARAM_GEN_SHIFT 18
+#define SQ_PROGRAM_CNTL_GEN_INDEX_PIX_SHIFT 19
+#define SQ_PROGRAM_CNTL_VS_EXPORT_COUNT_SHIFT 20
+#define SQ_PROGRAM_CNTL_VS_EXPORT_MODE_SHIFT 24
+#define SQ_PROGRAM_CNTL_PS_EXPORT_MODE_SHIFT 27
+#define SQ_PROGRAM_CNTL_GEN_INDEX_VTX_SHIFT 31
+
+#define SQ_PROGRAM_CNTL_VS_NUM_REG_MASK 0x0000003f
+#define SQ_PROGRAM_CNTL_PS_NUM_REG_MASK 0x00003f00
+#define SQ_PROGRAM_CNTL_VS_RESOURCE_MASK 0x00010000
+#define SQ_PROGRAM_CNTL_PS_RESOURCE_MASK 0x00020000
+#define SQ_PROGRAM_CNTL_PARAM_GEN_MASK 0x00040000
+#define SQ_PROGRAM_CNTL_GEN_INDEX_PIX_MASK 0x00080000
+#define SQ_PROGRAM_CNTL_VS_EXPORT_COUNT_MASK 0x00f00000
+#define SQ_PROGRAM_CNTL_VS_EXPORT_MODE_MASK 0x07000000
+#define SQ_PROGRAM_CNTL_PS_EXPORT_MODE_MASK 0x78000000
+#define SQ_PROGRAM_CNTL_GEN_INDEX_VTX_MASK 0x80000000
+
+#define SQ_PROGRAM_CNTL_MASK \
+ (SQ_PROGRAM_CNTL_VS_NUM_REG_MASK | \
+ SQ_PROGRAM_CNTL_PS_NUM_REG_MASK | \
+ SQ_PROGRAM_CNTL_VS_RESOURCE_MASK | \
+ SQ_PROGRAM_CNTL_PS_RESOURCE_MASK | \
+ SQ_PROGRAM_CNTL_PARAM_GEN_MASK | \
+ SQ_PROGRAM_CNTL_GEN_INDEX_PIX_MASK | \
+ SQ_PROGRAM_CNTL_VS_EXPORT_COUNT_MASK | \
+ SQ_PROGRAM_CNTL_VS_EXPORT_MODE_MASK | \
+ SQ_PROGRAM_CNTL_PS_EXPORT_MODE_MASK | \
+ SQ_PROGRAM_CNTL_GEN_INDEX_VTX_MASK)
+
+#define SQ_PROGRAM_CNTL(vs_num_reg, ps_num_reg, vs_resource, ps_resource, param_gen, gen_index_pix, vs_export_count, vs_export_mode, ps_export_mode, gen_index_vtx) \
+ ((vs_num_reg << SQ_PROGRAM_CNTL_VS_NUM_REG_SHIFT) | \
+ (ps_num_reg << SQ_PROGRAM_CNTL_PS_NUM_REG_SHIFT) | \
+ (vs_resource << SQ_PROGRAM_CNTL_VS_RESOURCE_SHIFT) | \
+ (ps_resource << SQ_PROGRAM_CNTL_PS_RESOURCE_SHIFT) | \
+ (param_gen << SQ_PROGRAM_CNTL_PARAM_GEN_SHIFT) | \
+ (gen_index_pix << SQ_PROGRAM_CNTL_GEN_INDEX_PIX_SHIFT) | \
+ (vs_export_count << SQ_PROGRAM_CNTL_VS_EXPORT_COUNT_SHIFT) | \
+ (vs_export_mode << SQ_PROGRAM_CNTL_VS_EXPORT_MODE_SHIFT) | \
+ (ps_export_mode << SQ_PROGRAM_CNTL_PS_EXPORT_MODE_SHIFT) | \
+ (gen_index_vtx << SQ_PROGRAM_CNTL_GEN_INDEX_VTX_SHIFT))
+
+#define SQ_PROGRAM_CNTL_GET_VS_NUM_REG(sq_program_cntl) \
+ ((sq_program_cntl & SQ_PROGRAM_CNTL_VS_NUM_REG_MASK) >> SQ_PROGRAM_CNTL_VS_NUM_REG_SHIFT)
+#define SQ_PROGRAM_CNTL_GET_PS_NUM_REG(sq_program_cntl) \
+ ((sq_program_cntl & SQ_PROGRAM_CNTL_PS_NUM_REG_MASK) >> SQ_PROGRAM_CNTL_PS_NUM_REG_SHIFT)
+#define SQ_PROGRAM_CNTL_GET_VS_RESOURCE(sq_program_cntl) \
+ ((sq_program_cntl & SQ_PROGRAM_CNTL_VS_RESOURCE_MASK) >> SQ_PROGRAM_CNTL_VS_RESOURCE_SHIFT)
+#define SQ_PROGRAM_CNTL_GET_PS_RESOURCE(sq_program_cntl) \
+ ((sq_program_cntl & SQ_PROGRAM_CNTL_PS_RESOURCE_MASK) >> SQ_PROGRAM_CNTL_PS_RESOURCE_SHIFT)
+#define SQ_PROGRAM_CNTL_GET_PARAM_GEN(sq_program_cntl) \
+ ((sq_program_cntl & SQ_PROGRAM_CNTL_PARAM_GEN_MASK) >> SQ_PROGRAM_CNTL_PARAM_GEN_SHIFT)
+#define SQ_PROGRAM_CNTL_GET_GEN_INDEX_PIX(sq_program_cntl) \
+ ((sq_program_cntl & SQ_PROGRAM_CNTL_GEN_INDEX_PIX_MASK) >> SQ_PROGRAM_CNTL_GEN_INDEX_PIX_SHIFT)
+#define SQ_PROGRAM_CNTL_GET_VS_EXPORT_COUNT(sq_program_cntl) \
+ ((sq_program_cntl & SQ_PROGRAM_CNTL_VS_EXPORT_COUNT_MASK) >> SQ_PROGRAM_CNTL_VS_EXPORT_COUNT_SHIFT)
+#define SQ_PROGRAM_CNTL_GET_VS_EXPORT_MODE(sq_program_cntl) \
+ ((sq_program_cntl & SQ_PROGRAM_CNTL_VS_EXPORT_MODE_MASK) >> SQ_PROGRAM_CNTL_VS_EXPORT_MODE_SHIFT)
+#define SQ_PROGRAM_CNTL_GET_PS_EXPORT_MODE(sq_program_cntl) \
+ ((sq_program_cntl & SQ_PROGRAM_CNTL_PS_EXPORT_MODE_MASK) >> SQ_PROGRAM_CNTL_PS_EXPORT_MODE_SHIFT)
+#define SQ_PROGRAM_CNTL_GET_GEN_INDEX_VTX(sq_program_cntl) \
+ ((sq_program_cntl & SQ_PROGRAM_CNTL_GEN_INDEX_VTX_MASK) >> SQ_PROGRAM_CNTL_GEN_INDEX_VTX_SHIFT)
+
+#define SQ_PROGRAM_CNTL_SET_VS_NUM_REG(sq_program_cntl_reg, vs_num_reg) \
+ sq_program_cntl_reg = (sq_program_cntl_reg & ~SQ_PROGRAM_CNTL_VS_NUM_REG_MASK) | (vs_num_reg << SQ_PROGRAM_CNTL_VS_NUM_REG_SHIFT)
+#define SQ_PROGRAM_CNTL_SET_PS_NUM_REG(sq_program_cntl_reg, ps_num_reg) \
+ sq_program_cntl_reg = (sq_program_cntl_reg & ~SQ_PROGRAM_CNTL_PS_NUM_REG_MASK) | (ps_num_reg << SQ_PROGRAM_CNTL_PS_NUM_REG_SHIFT)
+#define SQ_PROGRAM_CNTL_SET_VS_RESOURCE(sq_program_cntl_reg, vs_resource) \
+ sq_program_cntl_reg = (sq_program_cntl_reg & ~SQ_PROGRAM_CNTL_VS_RESOURCE_MASK) | (vs_resource << SQ_PROGRAM_CNTL_VS_RESOURCE_SHIFT)
+#define SQ_PROGRAM_CNTL_SET_PS_RESOURCE(sq_program_cntl_reg, ps_resource) \
+ sq_program_cntl_reg = (sq_program_cntl_reg & ~SQ_PROGRAM_CNTL_PS_RESOURCE_MASK) | (ps_resource << SQ_PROGRAM_CNTL_PS_RESOURCE_SHIFT)
+#define SQ_PROGRAM_CNTL_SET_PARAM_GEN(sq_program_cntl_reg, param_gen) \
+ sq_program_cntl_reg = (sq_program_cntl_reg & ~SQ_PROGRAM_CNTL_PARAM_GEN_MASK) | (param_gen << SQ_PROGRAM_CNTL_PARAM_GEN_SHIFT)
+#define SQ_PROGRAM_CNTL_SET_GEN_INDEX_PIX(sq_program_cntl_reg, gen_index_pix) \
+ sq_program_cntl_reg = (sq_program_cntl_reg & ~SQ_PROGRAM_CNTL_GEN_INDEX_PIX_MASK) | (gen_index_pix << SQ_PROGRAM_CNTL_GEN_INDEX_PIX_SHIFT)
+#define SQ_PROGRAM_CNTL_SET_VS_EXPORT_COUNT(sq_program_cntl_reg, vs_export_count) \
+ sq_program_cntl_reg = (sq_program_cntl_reg & ~SQ_PROGRAM_CNTL_VS_EXPORT_COUNT_MASK) | (vs_export_count << SQ_PROGRAM_CNTL_VS_EXPORT_COUNT_SHIFT)
+#define SQ_PROGRAM_CNTL_SET_VS_EXPORT_MODE(sq_program_cntl_reg, vs_export_mode) \
+ sq_program_cntl_reg = (sq_program_cntl_reg & ~SQ_PROGRAM_CNTL_VS_EXPORT_MODE_MASK) | (vs_export_mode << SQ_PROGRAM_CNTL_VS_EXPORT_MODE_SHIFT)
+#define SQ_PROGRAM_CNTL_SET_PS_EXPORT_MODE(sq_program_cntl_reg, ps_export_mode) \
+ sq_program_cntl_reg = (sq_program_cntl_reg & ~SQ_PROGRAM_CNTL_PS_EXPORT_MODE_MASK) | (ps_export_mode << SQ_PROGRAM_CNTL_PS_EXPORT_MODE_SHIFT)
+#define SQ_PROGRAM_CNTL_SET_GEN_INDEX_VTX(sq_program_cntl_reg, gen_index_vtx) \
+ sq_program_cntl_reg = (sq_program_cntl_reg & ~SQ_PROGRAM_CNTL_GEN_INDEX_VTX_MASK) | (gen_index_vtx << SQ_PROGRAM_CNTL_GEN_INDEX_VTX_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_program_cntl_t {
+ unsigned int vs_num_reg : SQ_PROGRAM_CNTL_VS_NUM_REG_SIZE;
+ unsigned int : 2;
+ unsigned int ps_num_reg : SQ_PROGRAM_CNTL_PS_NUM_REG_SIZE;
+ unsigned int : 2;
+ unsigned int vs_resource : SQ_PROGRAM_CNTL_VS_RESOURCE_SIZE;
+ unsigned int ps_resource : SQ_PROGRAM_CNTL_PS_RESOURCE_SIZE;
+ unsigned int param_gen : SQ_PROGRAM_CNTL_PARAM_GEN_SIZE;
+ unsigned int gen_index_pix : SQ_PROGRAM_CNTL_GEN_INDEX_PIX_SIZE;
+ unsigned int vs_export_count : SQ_PROGRAM_CNTL_VS_EXPORT_COUNT_SIZE;
+ unsigned int vs_export_mode : SQ_PROGRAM_CNTL_VS_EXPORT_MODE_SIZE;
+ unsigned int ps_export_mode : SQ_PROGRAM_CNTL_PS_EXPORT_MODE_SIZE;
+ unsigned int gen_index_vtx : SQ_PROGRAM_CNTL_GEN_INDEX_VTX_SIZE;
+ } sq_program_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_program_cntl_t {
+ unsigned int gen_index_vtx : SQ_PROGRAM_CNTL_GEN_INDEX_VTX_SIZE;
+ unsigned int ps_export_mode : SQ_PROGRAM_CNTL_PS_EXPORT_MODE_SIZE;
+ unsigned int vs_export_mode : SQ_PROGRAM_CNTL_VS_EXPORT_MODE_SIZE;
+ unsigned int vs_export_count : SQ_PROGRAM_CNTL_VS_EXPORT_COUNT_SIZE;
+ unsigned int gen_index_pix : SQ_PROGRAM_CNTL_GEN_INDEX_PIX_SIZE;
+ unsigned int param_gen : SQ_PROGRAM_CNTL_PARAM_GEN_SIZE;
+ unsigned int ps_resource : SQ_PROGRAM_CNTL_PS_RESOURCE_SIZE;
+ unsigned int vs_resource : SQ_PROGRAM_CNTL_VS_RESOURCE_SIZE;
+ unsigned int : 2;
+ unsigned int ps_num_reg : SQ_PROGRAM_CNTL_PS_NUM_REG_SIZE;
+ unsigned int : 2;
+ unsigned int vs_num_reg : SQ_PROGRAM_CNTL_VS_NUM_REG_SIZE;
+ } sq_program_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_program_cntl_t f;
+} sq_program_cntl_u;
+
+
+/*
+ * SQ_WRAPPING_0 struct
+ */
+
+#define SQ_WRAPPING_0_PARAM_WRAP_0_SIZE 4
+#define SQ_WRAPPING_0_PARAM_WRAP_1_SIZE 4
+#define SQ_WRAPPING_0_PARAM_WRAP_2_SIZE 4
+#define SQ_WRAPPING_0_PARAM_WRAP_3_SIZE 4
+#define SQ_WRAPPING_0_PARAM_WRAP_4_SIZE 4
+#define SQ_WRAPPING_0_PARAM_WRAP_5_SIZE 4
+#define SQ_WRAPPING_0_PARAM_WRAP_6_SIZE 4
+#define SQ_WRAPPING_0_PARAM_WRAP_7_SIZE 4
+
+#define SQ_WRAPPING_0_PARAM_WRAP_0_SHIFT 0
+#define SQ_WRAPPING_0_PARAM_WRAP_1_SHIFT 4
+#define SQ_WRAPPING_0_PARAM_WRAP_2_SHIFT 8
+#define SQ_WRAPPING_0_PARAM_WRAP_3_SHIFT 12
+#define SQ_WRAPPING_0_PARAM_WRAP_4_SHIFT 16
+#define SQ_WRAPPING_0_PARAM_WRAP_5_SHIFT 20
+#define SQ_WRAPPING_0_PARAM_WRAP_6_SHIFT 24
+#define SQ_WRAPPING_0_PARAM_WRAP_7_SHIFT 28
+
+#define SQ_WRAPPING_0_PARAM_WRAP_0_MASK 0x0000000f
+#define SQ_WRAPPING_0_PARAM_WRAP_1_MASK 0x000000f0
+#define SQ_WRAPPING_0_PARAM_WRAP_2_MASK 0x00000f00
+#define SQ_WRAPPING_0_PARAM_WRAP_3_MASK 0x0000f000
+#define SQ_WRAPPING_0_PARAM_WRAP_4_MASK 0x000f0000
+#define SQ_WRAPPING_0_PARAM_WRAP_5_MASK 0x00f00000
+#define SQ_WRAPPING_0_PARAM_WRAP_6_MASK 0x0f000000
+#define SQ_WRAPPING_0_PARAM_WRAP_7_MASK 0xf0000000
+
+#define SQ_WRAPPING_0_MASK \
+ (SQ_WRAPPING_0_PARAM_WRAP_0_MASK | \
+ SQ_WRAPPING_0_PARAM_WRAP_1_MASK | \
+ SQ_WRAPPING_0_PARAM_WRAP_2_MASK | \
+ SQ_WRAPPING_0_PARAM_WRAP_3_MASK | \
+ SQ_WRAPPING_0_PARAM_WRAP_4_MASK | \
+ SQ_WRAPPING_0_PARAM_WRAP_5_MASK | \
+ SQ_WRAPPING_0_PARAM_WRAP_6_MASK | \
+ SQ_WRAPPING_0_PARAM_WRAP_7_MASK)
+
+#define SQ_WRAPPING_0(param_wrap_0, param_wrap_1, param_wrap_2, param_wrap_3, param_wrap_4, param_wrap_5, param_wrap_6, param_wrap_7) \
+ ((param_wrap_0 << SQ_WRAPPING_0_PARAM_WRAP_0_SHIFT) | \
+ (param_wrap_1 << SQ_WRAPPING_0_PARAM_WRAP_1_SHIFT) | \
+ (param_wrap_2 << SQ_WRAPPING_0_PARAM_WRAP_2_SHIFT) | \
+ (param_wrap_3 << SQ_WRAPPING_0_PARAM_WRAP_3_SHIFT) | \
+ (param_wrap_4 << SQ_WRAPPING_0_PARAM_WRAP_4_SHIFT) | \
+ (param_wrap_5 << SQ_WRAPPING_0_PARAM_WRAP_5_SHIFT) | \
+ (param_wrap_6 << SQ_WRAPPING_0_PARAM_WRAP_6_SHIFT) | \
+ (param_wrap_7 << SQ_WRAPPING_0_PARAM_WRAP_7_SHIFT))
+
+#define SQ_WRAPPING_0_GET_PARAM_WRAP_0(sq_wrapping_0) \
+ ((sq_wrapping_0 & SQ_WRAPPING_0_PARAM_WRAP_0_MASK) >> SQ_WRAPPING_0_PARAM_WRAP_0_SHIFT)
+#define SQ_WRAPPING_0_GET_PARAM_WRAP_1(sq_wrapping_0) \
+ ((sq_wrapping_0 & SQ_WRAPPING_0_PARAM_WRAP_1_MASK) >> SQ_WRAPPING_0_PARAM_WRAP_1_SHIFT)
+#define SQ_WRAPPING_0_GET_PARAM_WRAP_2(sq_wrapping_0) \
+ ((sq_wrapping_0 & SQ_WRAPPING_0_PARAM_WRAP_2_MASK) >> SQ_WRAPPING_0_PARAM_WRAP_2_SHIFT)
+#define SQ_WRAPPING_0_GET_PARAM_WRAP_3(sq_wrapping_0) \
+ ((sq_wrapping_0 & SQ_WRAPPING_0_PARAM_WRAP_3_MASK) >> SQ_WRAPPING_0_PARAM_WRAP_3_SHIFT)
+#define SQ_WRAPPING_0_GET_PARAM_WRAP_4(sq_wrapping_0) \
+ ((sq_wrapping_0 & SQ_WRAPPING_0_PARAM_WRAP_4_MASK) >> SQ_WRAPPING_0_PARAM_WRAP_4_SHIFT)
+#define SQ_WRAPPING_0_GET_PARAM_WRAP_5(sq_wrapping_0) \
+ ((sq_wrapping_0 & SQ_WRAPPING_0_PARAM_WRAP_5_MASK) >> SQ_WRAPPING_0_PARAM_WRAP_5_SHIFT)
+#define SQ_WRAPPING_0_GET_PARAM_WRAP_6(sq_wrapping_0) \
+ ((sq_wrapping_0 & SQ_WRAPPING_0_PARAM_WRAP_6_MASK) >> SQ_WRAPPING_0_PARAM_WRAP_6_SHIFT)
+#define SQ_WRAPPING_0_GET_PARAM_WRAP_7(sq_wrapping_0) \
+ ((sq_wrapping_0 & SQ_WRAPPING_0_PARAM_WRAP_7_MASK) >> SQ_WRAPPING_0_PARAM_WRAP_7_SHIFT)
+
+#define SQ_WRAPPING_0_SET_PARAM_WRAP_0(sq_wrapping_0_reg, param_wrap_0) \
+ sq_wrapping_0_reg = (sq_wrapping_0_reg & ~SQ_WRAPPING_0_PARAM_WRAP_0_MASK) | (param_wrap_0 << SQ_WRAPPING_0_PARAM_WRAP_0_SHIFT)
+#define SQ_WRAPPING_0_SET_PARAM_WRAP_1(sq_wrapping_0_reg, param_wrap_1) \
+ sq_wrapping_0_reg = (sq_wrapping_0_reg & ~SQ_WRAPPING_0_PARAM_WRAP_1_MASK) | (param_wrap_1 << SQ_WRAPPING_0_PARAM_WRAP_1_SHIFT)
+#define SQ_WRAPPING_0_SET_PARAM_WRAP_2(sq_wrapping_0_reg, param_wrap_2) \
+ sq_wrapping_0_reg = (sq_wrapping_0_reg & ~SQ_WRAPPING_0_PARAM_WRAP_2_MASK) | (param_wrap_2 << SQ_WRAPPING_0_PARAM_WRAP_2_SHIFT)
+#define SQ_WRAPPING_0_SET_PARAM_WRAP_3(sq_wrapping_0_reg, param_wrap_3) \
+ sq_wrapping_0_reg = (sq_wrapping_0_reg & ~SQ_WRAPPING_0_PARAM_WRAP_3_MASK) | (param_wrap_3 << SQ_WRAPPING_0_PARAM_WRAP_3_SHIFT)
+#define SQ_WRAPPING_0_SET_PARAM_WRAP_4(sq_wrapping_0_reg, param_wrap_4) \
+ sq_wrapping_0_reg = (sq_wrapping_0_reg & ~SQ_WRAPPING_0_PARAM_WRAP_4_MASK) | (param_wrap_4 << SQ_WRAPPING_0_PARAM_WRAP_4_SHIFT)
+#define SQ_WRAPPING_0_SET_PARAM_WRAP_5(sq_wrapping_0_reg, param_wrap_5) \
+ sq_wrapping_0_reg = (sq_wrapping_0_reg & ~SQ_WRAPPING_0_PARAM_WRAP_5_MASK) | (param_wrap_5 << SQ_WRAPPING_0_PARAM_WRAP_5_SHIFT)
+#define SQ_WRAPPING_0_SET_PARAM_WRAP_6(sq_wrapping_0_reg, param_wrap_6) \
+ sq_wrapping_0_reg = (sq_wrapping_0_reg & ~SQ_WRAPPING_0_PARAM_WRAP_6_MASK) | (param_wrap_6 << SQ_WRAPPING_0_PARAM_WRAP_6_SHIFT)
+#define SQ_WRAPPING_0_SET_PARAM_WRAP_7(sq_wrapping_0_reg, param_wrap_7) \
+ sq_wrapping_0_reg = (sq_wrapping_0_reg & ~SQ_WRAPPING_0_PARAM_WRAP_7_MASK) | (param_wrap_7 << SQ_WRAPPING_0_PARAM_WRAP_7_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_wrapping_0_t {
+ unsigned int param_wrap_0 : SQ_WRAPPING_0_PARAM_WRAP_0_SIZE;
+ unsigned int param_wrap_1 : SQ_WRAPPING_0_PARAM_WRAP_1_SIZE;
+ unsigned int param_wrap_2 : SQ_WRAPPING_0_PARAM_WRAP_2_SIZE;
+ unsigned int param_wrap_3 : SQ_WRAPPING_0_PARAM_WRAP_3_SIZE;
+ unsigned int param_wrap_4 : SQ_WRAPPING_0_PARAM_WRAP_4_SIZE;
+ unsigned int param_wrap_5 : SQ_WRAPPING_0_PARAM_WRAP_5_SIZE;
+ unsigned int param_wrap_6 : SQ_WRAPPING_0_PARAM_WRAP_6_SIZE;
+ unsigned int param_wrap_7 : SQ_WRAPPING_0_PARAM_WRAP_7_SIZE;
+ } sq_wrapping_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_wrapping_0_t {
+ unsigned int param_wrap_7 : SQ_WRAPPING_0_PARAM_WRAP_7_SIZE;
+ unsigned int param_wrap_6 : SQ_WRAPPING_0_PARAM_WRAP_6_SIZE;
+ unsigned int param_wrap_5 : SQ_WRAPPING_0_PARAM_WRAP_5_SIZE;
+ unsigned int param_wrap_4 : SQ_WRAPPING_0_PARAM_WRAP_4_SIZE;
+ unsigned int param_wrap_3 : SQ_WRAPPING_0_PARAM_WRAP_3_SIZE;
+ unsigned int param_wrap_2 : SQ_WRAPPING_0_PARAM_WRAP_2_SIZE;
+ unsigned int param_wrap_1 : SQ_WRAPPING_0_PARAM_WRAP_1_SIZE;
+ unsigned int param_wrap_0 : SQ_WRAPPING_0_PARAM_WRAP_0_SIZE;
+ } sq_wrapping_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_wrapping_0_t f;
+} sq_wrapping_0_u;
+
+
+/*
+ * SQ_WRAPPING_1 struct
+ */
+
+#define SQ_WRAPPING_1_PARAM_WRAP_8_SIZE 4
+#define SQ_WRAPPING_1_PARAM_WRAP_9_SIZE 4
+#define SQ_WRAPPING_1_PARAM_WRAP_10_SIZE 4
+#define SQ_WRAPPING_1_PARAM_WRAP_11_SIZE 4
+#define SQ_WRAPPING_1_PARAM_WRAP_12_SIZE 4
+#define SQ_WRAPPING_1_PARAM_WRAP_13_SIZE 4
+#define SQ_WRAPPING_1_PARAM_WRAP_14_SIZE 4
+#define SQ_WRAPPING_1_PARAM_WRAP_15_SIZE 4
+
+#define SQ_WRAPPING_1_PARAM_WRAP_8_SHIFT 0
+#define SQ_WRAPPING_1_PARAM_WRAP_9_SHIFT 4
+#define SQ_WRAPPING_1_PARAM_WRAP_10_SHIFT 8
+#define SQ_WRAPPING_1_PARAM_WRAP_11_SHIFT 12
+#define SQ_WRAPPING_1_PARAM_WRAP_12_SHIFT 16
+#define SQ_WRAPPING_1_PARAM_WRAP_13_SHIFT 20
+#define SQ_WRAPPING_1_PARAM_WRAP_14_SHIFT 24
+#define SQ_WRAPPING_1_PARAM_WRAP_15_SHIFT 28
+
+#define SQ_WRAPPING_1_PARAM_WRAP_8_MASK 0x0000000f
+#define SQ_WRAPPING_1_PARAM_WRAP_9_MASK 0x000000f0
+#define SQ_WRAPPING_1_PARAM_WRAP_10_MASK 0x00000f00
+#define SQ_WRAPPING_1_PARAM_WRAP_11_MASK 0x0000f000
+#define SQ_WRAPPING_1_PARAM_WRAP_12_MASK 0x000f0000
+#define SQ_WRAPPING_1_PARAM_WRAP_13_MASK 0x00f00000
+#define SQ_WRAPPING_1_PARAM_WRAP_14_MASK 0x0f000000
+#define SQ_WRAPPING_1_PARAM_WRAP_15_MASK 0xf0000000
+
+#define SQ_WRAPPING_1_MASK \
+ (SQ_WRAPPING_1_PARAM_WRAP_8_MASK | \
+ SQ_WRAPPING_1_PARAM_WRAP_9_MASK | \
+ SQ_WRAPPING_1_PARAM_WRAP_10_MASK | \
+ SQ_WRAPPING_1_PARAM_WRAP_11_MASK | \
+ SQ_WRAPPING_1_PARAM_WRAP_12_MASK | \
+ SQ_WRAPPING_1_PARAM_WRAP_13_MASK | \
+ SQ_WRAPPING_1_PARAM_WRAP_14_MASK | \
+ SQ_WRAPPING_1_PARAM_WRAP_15_MASK)
+
+#define SQ_WRAPPING_1(param_wrap_8, param_wrap_9, param_wrap_10, param_wrap_11, param_wrap_12, param_wrap_13, param_wrap_14, param_wrap_15) \
+ ((param_wrap_8 << SQ_WRAPPING_1_PARAM_WRAP_8_SHIFT) | \
+ (param_wrap_9 << SQ_WRAPPING_1_PARAM_WRAP_9_SHIFT) | \
+ (param_wrap_10 << SQ_WRAPPING_1_PARAM_WRAP_10_SHIFT) | \
+ (param_wrap_11 << SQ_WRAPPING_1_PARAM_WRAP_11_SHIFT) | \
+ (param_wrap_12 << SQ_WRAPPING_1_PARAM_WRAP_12_SHIFT) | \
+ (param_wrap_13 << SQ_WRAPPING_1_PARAM_WRAP_13_SHIFT) | \
+ (param_wrap_14 << SQ_WRAPPING_1_PARAM_WRAP_14_SHIFT) | \
+ (param_wrap_15 << SQ_WRAPPING_1_PARAM_WRAP_15_SHIFT))
+
+#define SQ_WRAPPING_1_GET_PARAM_WRAP_8(sq_wrapping_1) \
+ ((sq_wrapping_1 & SQ_WRAPPING_1_PARAM_WRAP_8_MASK) >> SQ_WRAPPING_1_PARAM_WRAP_8_SHIFT)
+#define SQ_WRAPPING_1_GET_PARAM_WRAP_9(sq_wrapping_1) \
+ ((sq_wrapping_1 & SQ_WRAPPING_1_PARAM_WRAP_9_MASK) >> SQ_WRAPPING_1_PARAM_WRAP_9_SHIFT)
+#define SQ_WRAPPING_1_GET_PARAM_WRAP_10(sq_wrapping_1) \
+ ((sq_wrapping_1 & SQ_WRAPPING_1_PARAM_WRAP_10_MASK) >> SQ_WRAPPING_1_PARAM_WRAP_10_SHIFT)
+#define SQ_WRAPPING_1_GET_PARAM_WRAP_11(sq_wrapping_1) \
+ ((sq_wrapping_1 & SQ_WRAPPING_1_PARAM_WRAP_11_MASK) >> SQ_WRAPPING_1_PARAM_WRAP_11_SHIFT)
+#define SQ_WRAPPING_1_GET_PARAM_WRAP_12(sq_wrapping_1) \
+ ((sq_wrapping_1 & SQ_WRAPPING_1_PARAM_WRAP_12_MASK) >> SQ_WRAPPING_1_PARAM_WRAP_12_SHIFT)
+#define SQ_WRAPPING_1_GET_PARAM_WRAP_13(sq_wrapping_1) \
+ ((sq_wrapping_1 & SQ_WRAPPING_1_PARAM_WRAP_13_MASK) >> SQ_WRAPPING_1_PARAM_WRAP_13_SHIFT)
+#define SQ_WRAPPING_1_GET_PARAM_WRAP_14(sq_wrapping_1) \
+ ((sq_wrapping_1 & SQ_WRAPPING_1_PARAM_WRAP_14_MASK) >> SQ_WRAPPING_1_PARAM_WRAP_14_SHIFT)
+#define SQ_WRAPPING_1_GET_PARAM_WRAP_15(sq_wrapping_1) \
+ ((sq_wrapping_1 & SQ_WRAPPING_1_PARAM_WRAP_15_MASK) >> SQ_WRAPPING_1_PARAM_WRAP_15_SHIFT)
+
+#define SQ_WRAPPING_1_SET_PARAM_WRAP_8(sq_wrapping_1_reg, param_wrap_8) \
+ sq_wrapping_1_reg = (sq_wrapping_1_reg & ~SQ_WRAPPING_1_PARAM_WRAP_8_MASK) | (param_wrap_8 << SQ_WRAPPING_1_PARAM_WRAP_8_SHIFT)
+#define SQ_WRAPPING_1_SET_PARAM_WRAP_9(sq_wrapping_1_reg, param_wrap_9) \
+ sq_wrapping_1_reg = (sq_wrapping_1_reg & ~SQ_WRAPPING_1_PARAM_WRAP_9_MASK) | (param_wrap_9 << SQ_WRAPPING_1_PARAM_WRAP_9_SHIFT)
+#define SQ_WRAPPING_1_SET_PARAM_WRAP_10(sq_wrapping_1_reg, param_wrap_10) \
+ sq_wrapping_1_reg = (sq_wrapping_1_reg & ~SQ_WRAPPING_1_PARAM_WRAP_10_MASK) | (param_wrap_10 << SQ_WRAPPING_1_PARAM_WRAP_10_SHIFT)
+#define SQ_WRAPPING_1_SET_PARAM_WRAP_11(sq_wrapping_1_reg, param_wrap_11) \
+ sq_wrapping_1_reg = (sq_wrapping_1_reg & ~SQ_WRAPPING_1_PARAM_WRAP_11_MASK) | (param_wrap_11 << SQ_WRAPPING_1_PARAM_WRAP_11_SHIFT)
+#define SQ_WRAPPING_1_SET_PARAM_WRAP_12(sq_wrapping_1_reg, param_wrap_12) \
+ sq_wrapping_1_reg = (sq_wrapping_1_reg & ~SQ_WRAPPING_1_PARAM_WRAP_12_MASK) | (param_wrap_12 << SQ_WRAPPING_1_PARAM_WRAP_12_SHIFT)
+#define SQ_WRAPPING_1_SET_PARAM_WRAP_13(sq_wrapping_1_reg, param_wrap_13) \
+ sq_wrapping_1_reg = (sq_wrapping_1_reg & ~SQ_WRAPPING_1_PARAM_WRAP_13_MASK) | (param_wrap_13 << SQ_WRAPPING_1_PARAM_WRAP_13_SHIFT)
+#define SQ_WRAPPING_1_SET_PARAM_WRAP_14(sq_wrapping_1_reg, param_wrap_14) \
+ sq_wrapping_1_reg = (sq_wrapping_1_reg & ~SQ_WRAPPING_1_PARAM_WRAP_14_MASK) | (param_wrap_14 << SQ_WRAPPING_1_PARAM_WRAP_14_SHIFT)
+#define SQ_WRAPPING_1_SET_PARAM_WRAP_15(sq_wrapping_1_reg, param_wrap_15) \
+ sq_wrapping_1_reg = (sq_wrapping_1_reg & ~SQ_WRAPPING_1_PARAM_WRAP_15_MASK) | (param_wrap_15 << SQ_WRAPPING_1_PARAM_WRAP_15_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_wrapping_1_t {
+ unsigned int param_wrap_8 : SQ_WRAPPING_1_PARAM_WRAP_8_SIZE;
+ unsigned int param_wrap_9 : SQ_WRAPPING_1_PARAM_WRAP_9_SIZE;
+ unsigned int param_wrap_10 : SQ_WRAPPING_1_PARAM_WRAP_10_SIZE;
+ unsigned int param_wrap_11 : SQ_WRAPPING_1_PARAM_WRAP_11_SIZE;
+ unsigned int param_wrap_12 : SQ_WRAPPING_1_PARAM_WRAP_12_SIZE;
+ unsigned int param_wrap_13 : SQ_WRAPPING_1_PARAM_WRAP_13_SIZE;
+ unsigned int param_wrap_14 : SQ_WRAPPING_1_PARAM_WRAP_14_SIZE;
+ unsigned int param_wrap_15 : SQ_WRAPPING_1_PARAM_WRAP_15_SIZE;
+ } sq_wrapping_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_wrapping_1_t {
+ unsigned int param_wrap_15 : SQ_WRAPPING_1_PARAM_WRAP_15_SIZE;
+ unsigned int param_wrap_14 : SQ_WRAPPING_1_PARAM_WRAP_14_SIZE;
+ unsigned int param_wrap_13 : SQ_WRAPPING_1_PARAM_WRAP_13_SIZE;
+ unsigned int param_wrap_12 : SQ_WRAPPING_1_PARAM_WRAP_12_SIZE;
+ unsigned int param_wrap_11 : SQ_WRAPPING_1_PARAM_WRAP_11_SIZE;
+ unsigned int param_wrap_10 : SQ_WRAPPING_1_PARAM_WRAP_10_SIZE;
+ unsigned int param_wrap_9 : SQ_WRAPPING_1_PARAM_WRAP_9_SIZE;
+ unsigned int param_wrap_8 : SQ_WRAPPING_1_PARAM_WRAP_8_SIZE;
+ } sq_wrapping_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_wrapping_1_t f;
+} sq_wrapping_1_u;
+
+
+/*
+ * SQ_VS_CONST struct
+ */
+
+#define SQ_VS_CONST_BASE_SIZE 9
+#define SQ_VS_CONST_SIZE_SIZE 9
+
+#define SQ_VS_CONST_BASE_SHIFT 0
+#define SQ_VS_CONST_SIZE_SHIFT 12
+
+#define SQ_VS_CONST_BASE_MASK 0x000001ff
+#define SQ_VS_CONST_SIZE_MASK 0x001ff000
+
+#define SQ_VS_CONST_MASK \
+ (SQ_VS_CONST_BASE_MASK | \
+ SQ_VS_CONST_SIZE_MASK)
+
+#define SQ_VS_CONST(base, size) \
+ ((base << SQ_VS_CONST_BASE_SHIFT) | \
+ (size << SQ_VS_CONST_SIZE_SHIFT))
+
+#define SQ_VS_CONST_GET_BASE(sq_vs_const) \
+ ((sq_vs_const & SQ_VS_CONST_BASE_MASK) >> SQ_VS_CONST_BASE_SHIFT)
+#define SQ_VS_CONST_GET_SIZE(sq_vs_const) \
+ ((sq_vs_const & SQ_VS_CONST_SIZE_MASK) >> SQ_VS_CONST_SIZE_SHIFT)
+
+#define SQ_VS_CONST_SET_BASE(sq_vs_const_reg, base) \
+ sq_vs_const_reg = (sq_vs_const_reg & ~SQ_VS_CONST_BASE_MASK) | (base << SQ_VS_CONST_BASE_SHIFT)
+#define SQ_VS_CONST_SET_SIZE(sq_vs_const_reg, size) \
+ sq_vs_const_reg = (sq_vs_const_reg & ~SQ_VS_CONST_SIZE_MASK) | (size << SQ_VS_CONST_SIZE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_vs_const_t {
+ unsigned int base : SQ_VS_CONST_BASE_SIZE;
+ unsigned int : 3;
+ unsigned int size : SQ_VS_CONST_SIZE_SIZE;
+ unsigned int : 11;
+ } sq_vs_const_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_vs_const_t {
+ unsigned int : 11;
+ unsigned int size : SQ_VS_CONST_SIZE_SIZE;
+ unsigned int : 3;
+ unsigned int base : SQ_VS_CONST_BASE_SIZE;
+ } sq_vs_const_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_vs_const_t f;
+} sq_vs_const_u;
+
+
+/*
+ * SQ_PS_CONST struct
+ */
+
+#define SQ_PS_CONST_BASE_SIZE 9
+#define SQ_PS_CONST_SIZE_SIZE 9
+
+#define SQ_PS_CONST_BASE_SHIFT 0
+#define SQ_PS_CONST_SIZE_SHIFT 12
+
+#define SQ_PS_CONST_BASE_MASK 0x000001ff
+#define SQ_PS_CONST_SIZE_MASK 0x001ff000
+
+#define SQ_PS_CONST_MASK \
+ (SQ_PS_CONST_BASE_MASK | \
+ SQ_PS_CONST_SIZE_MASK)
+
+#define SQ_PS_CONST(base, size) \
+ ((base << SQ_PS_CONST_BASE_SHIFT) | \
+ (size << SQ_PS_CONST_SIZE_SHIFT))
+
+#define SQ_PS_CONST_GET_BASE(sq_ps_const) \
+ ((sq_ps_const & SQ_PS_CONST_BASE_MASK) >> SQ_PS_CONST_BASE_SHIFT)
+#define SQ_PS_CONST_GET_SIZE(sq_ps_const) \
+ ((sq_ps_const & SQ_PS_CONST_SIZE_MASK) >> SQ_PS_CONST_SIZE_SHIFT)
+
+#define SQ_PS_CONST_SET_BASE(sq_ps_const_reg, base) \
+ sq_ps_const_reg = (sq_ps_const_reg & ~SQ_PS_CONST_BASE_MASK) | (base << SQ_PS_CONST_BASE_SHIFT)
+#define SQ_PS_CONST_SET_SIZE(sq_ps_const_reg, size) \
+ sq_ps_const_reg = (sq_ps_const_reg & ~SQ_PS_CONST_SIZE_MASK) | (size << SQ_PS_CONST_SIZE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_ps_const_t {
+ unsigned int base : SQ_PS_CONST_BASE_SIZE;
+ unsigned int : 3;
+ unsigned int size : SQ_PS_CONST_SIZE_SIZE;
+ unsigned int : 11;
+ } sq_ps_const_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_ps_const_t {
+ unsigned int : 11;
+ unsigned int size : SQ_PS_CONST_SIZE_SIZE;
+ unsigned int : 3;
+ unsigned int base : SQ_PS_CONST_BASE_SIZE;
+ } sq_ps_const_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_ps_const_t f;
+} sq_ps_const_u;
+
+
+/*
+ * SQ_CONTEXT_MISC struct
+ */
+
+#define SQ_CONTEXT_MISC_INST_PRED_OPTIMIZE_SIZE 1
+#define SQ_CONTEXT_MISC_SC_OUTPUT_SCREEN_XY_SIZE 1
+#define SQ_CONTEXT_MISC_SC_SAMPLE_CNTL_SIZE 2
+#define SQ_CONTEXT_MISC_PARAM_GEN_POS_SIZE 8
+#define SQ_CONTEXT_MISC_PERFCOUNTER_REF_SIZE 1
+#define SQ_CONTEXT_MISC_YEILD_OPTIMIZE_SIZE 1
+#define SQ_CONTEXT_MISC_TX_CACHE_SEL_SIZE 1
+
+#define SQ_CONTEXT_MISC_INST_PRED_OPTIMIZE_SHIFT 0
+#define SQ_CONTEXT_MISC_SC_OUTPUT_SCREEN_XY_SHIFT 1
+#define SQ_CONTEXT_MISC_SC_SAMPLE_CNTL_SHIFT 2
+#define SQ_CONTEXT_MISC_PARAM_GEN_POS_SHIFT 8
+#define SQ_CONTEXT_MISC_PERFCOUNTER_REF_SHIFT 16
+#define SQ_CONTEXT_MISC_YEILD_OPTIMIZE_SHIFT 17
+#define SQ_CONTEXT_MISC_TX_CACHE_SEL_SHIFT 18
+
+#define SQ_CONTEXT_MISC_INST_PRED_OPTIMIZE_MASK 0x00000001
+#define SQ_CONTEXT_MISC_SC_OUTPUT_SCREEN_XY_MASK 0x00000002
+#define SQ_CONTEXT_MISC_SC_SAMPLE_CNTL_MASK 0x0000000c
+#define SQ_CONTEXT_MISC_PARAM_GEN_POS_MASK 0x0000ff00
+#define SQ_CONTEXT_MISC_PERFCOUNTER_REF_MASK 0x00010000
+#define SQ_CONTEXT_MISC_YEILD_OPTIMIZE_MASK 0x00020000
+#define SQ_CONTEXT_MISC_TX_CACHE_SEL_MASK 0x00040000
+
+#define SQ_CONTEXT_MISC_MASK \
+ (SQ_CONTEXT_MISC_INST_PRED_OPTIMIZE_MASK | \
+ SQ_CONTEXT_MISC_SC_OUTPUT_SCREEN_XY_MASK | \
+ SQ_CONTEXT_MISC_SC_SAMPLE_CNTL_MASK | \
+ SQ_CONTEXT_MISC_PARAM_GEN_POS_MASK | \
+ SQ_CONTEXT_MISC_PERFCOUNTER_REF_MASK | \
+ SQ_CONTEXT_MISC_YEILD_OPTIMIZE_MASK | \
+ SQ_CONTEXT_MISC_TX_CACHE_SEL_MASK)
+
+#define SQ_CONTEXT_MISC(inst_pred_optimize, sc_output_screen_xy, sc_sample_cntl, param_gen_pos, perfcounter_ref, yeild_optimize, tx_cache_sel) \
+ ((inst_pred_optimize << SQ_CONTEXT_MISC_INST_PRED_OPTIMIZE_SHIFT) | \
+ (sc_output_screen_xy << SQ_CONTEXT_MISC_SC_OUTPUT_SCREEN_XY_SHIFT) | \
+ (sc_sample_cntl << SQ_CONTEXT_MISC_SC_SAMPLE_CNTL_SHIFT) | \
+ (param_gen_pos << SQ_CONTEXT_MISC_PARAM_GEN_POS_SHIFT) | \
+ (perfcounter_ref << SQ_CONTEXT_MISC_PERFCOUNTER_REF_SHIFT) | \
+ (yeild_optimize << SQ_CONTEXT_MISC_YEILD_OPTIMIZE_SHIFT) | \
+ (tx_cache_sel << SQ_CONTEXT_MISC_TX_CACHE_SEL_SHIFT))
+
+#define SQ_CONTEXT_MISC_GET_INST_PRED_OPTIMIZE(sq_context_misc) \
+ ((sq_context_misc & SQ_CONTEXT_MISC_INST_PRED_OPTIMIZE_MASK) >> SQ_CONTEXT_MISC_INST_PRED_OPTIMIZE_SHIFT)
+#define SQ_CONTEXT_MISC_GET_SC_OUTPUT_SCREEN_XY(sq_context_misc) \
+ ((sq_context_misc & SQ_CONTEXT_MISC_SC_OUTPUT_SCREEN_XY_MASK) >> SQ_CONTEXT_MISC_SC_OUTPUT_SCREEN_XY_SHIFT)
+#define SQ_CONTEXT_MISC_GET_SC_SAMPLE_CNTL(sq_context_misc) \
+ ((sq_context_misc & SQ_CONTEXT_MISC_SC_SAMPLE_CNTL_MASK) >> SQ_CONTEXT_MISC_SC_SAMPLE_CNTL_SHIFT)
+#define SQ_CONTEXT_MISC_GET_PARAM_GEN_POS(sq_context_misc) \
+ ((sq_context_misc & SQ_CONTEXT_MISC_PARAM_GEN_POS_MASK) >> SQ_CONTEXT_MISC_PARAM_GEN_POS_SHIFT)
+#define SQ_CONTEXT_MISC_GET_PERFCOUNTER_REF(sq_context_misc) \
+ ((sq_context_misc & SQ_CONTEXT_MISC_PERFCOUNTER_REF_MASK) >> SQ_CONTEXT_MISC_PERFCOUNTER_REF_SHIFT)
+#define SQ_CONTEXT_MISC_GET_YEILD_OPTIMIZE(sq_context_misc) \
+ ((sq_context_misc & SQ_CONTEXT_MISC_YEILD_OPTIMIZE_MASK) >> SQ_CONTEXT_MISC_YEILD_OPTIMIZE_SHIFT)
+#define SQ_CONTEXT_MISC_GET_TX_CACHE_SEL(sq_context_misc) \
+ ((sq_context_misc & SQ_CONTEXT_MISC_TX_CACHE_SEL_MASK) >> SQ_CONTEXT_MISC_TX_CACHE_SEL_SHIFT)
+
+#define SQ_CONTEXT_MISC_SET_INST_PRED_OPTIMIZE(sq_context_misc_reg, inst_pred_optimize) \
+ sq_context_misc_reg = (sq_context_misc_reg & ~SQ_CONTEXT_MISC_INST_PRED_OPTIMIZE_MASK) | (inst_pred_optimize << SQ_CONTEXT_MISC_INST_PRED_OPTIMIZE_SHIFT)
+#define SQ_CONTEXT_MISC_SET_SC_OUTPUT_SCREEN_XY(sq_context_misc_reg, sc_output_screen_xy) \
+ sq_context_misc_reg = (sq_context_misc_reg & ~SQ_CONTEXT_MISC_SC_OUTPUT_SCREEN_XY_MASK) | (sc_output_screen_xy << SQ_CONTEXT_MISC_SC_OUTPUT_SCREEN_XY_SHIFT)
+#define SQ_CONTEXT_MISC_SET_SC_SAMPLE_CNTL(sq_context_misc_reg, sc_sample_cntl) \
+ sq_context_misc_reg = (sq_context_misc_reg & ~SQ_CONTEXT_MISC_SC_SAMPLE_CNTL_MASK) | (sc_sample_cntl << SQ_CONTEXT_MISC_SC_SAMPLE_CNTL_SHIFT)
+#define SQ_CONTEXT_MISC_SET_PARAM_GEN_POS(sq_context_misc_reg, param_gen_pos) \
+ sq_context_misc_reg = (sq_context_misc_reg & ~SQ_CONTEXT_MISC_PARAM_GEN_POS_MASK) | (param_gen_pos << SQ_CONTEXT_MISC_PARAM_GEN_POS_SHIFT)
+#define SQ_CONTEXT_MISC_SET_PERFCOUNTER_REF(sq_context_misc_reg, perfcounter_ref) \
+ sq_context_misc_reg = (sq_context_misc_reg & ~SQ_CONTEXT_MISC_PERFCOUNTER_REF_MASK) | (perfcounter_ref << SQ_CONTEXT_MISC_PERFCOUNTER_REF_SHIFT)
+#define SQ_CONTEXT_MISC_SET_YEILD_OPTIMIZE(sq_context_misc_reg, yeild_optimize) \
+ sq_context_misc_reg = (sq_context_misc_reg & ~SQ_CONTEXT_MISC_YEILD_OPTIMIZE_MASK) | (yeild_optimize << SQ_CONTEXT_MISC_YEILD_OPTIMIZE_SHIFT)
+#define SQ_CONTEXT_MISC_SET_TX_CACHE_SEL(sq_context_misc_reg, tx_cache_sel) \
+ sq_context_misc_reg = (sq_context_misc_reg & ~SQ_CONTEXT_MISC_TX_CACHE_SEL_MASK) | (tx_cache_sel << SQ_CONTEXT_MISC_TX_CACHE_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_context_misc_t {
+ unsigned int inst_pred_optimize : SQ_CONTEXT_MISC_INST_PRED_OPTIMIZE_SIZE;
+ unsigned int sc_output_screen_xy : SQ_CONTEXT_MISC_SC_OUTPUT_SCREEN_XY_SIZE;
+ unsigned int sc_sample_cntl : SQ_CONTEXT_MISC_SC_SAMPLE_CNTL_SIZE;
+ unsigned int : 4;
+ unsigned int param_gen_pos : SQ_CONTEXT_MISC_PARAM_GEN_POS_SIZE;
+ unsigned int perfcounter_ref : SQ_CONTEXT_MISC_PERFCOUNTER_REF_SIZE;
+ unsigned int yeild_optimize : SQ_CONTEXT_MISC_YEILD_OPTIMIZE_SIZE;
+ unsigned int tx_cache_sel : SQ_CONTEXT_MISC_TX_CACHE_SEL_SIZE;
+ unsigned int : 13;
+ } sq_context_misc_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_context_misc_t {
+ unsigned int : 13;
+ unsigned int tx_cache_sel : SQ_CONTEXT_MISC_TX_CACHE_SEL_SIZE;
+ unsigned int yeild_optimize : SQ_CONTEXT_MISC_YEILD_OPTIMIZE_SIZE;
+ unsigned int perfcounter_ref : SQ_CONTEXT_MISC_PERFCOUNTER_REF_SIZE;
+ unsigned int param_gen_pos : SQ_CONTEXT_MISC_PARAM_GEN_POS_SIZE;
+ unsigned int : 4;
+ unsigned int sc_sample_cntl : SQ_CONTEXT_MISC_SC_SAMPLE_CNTL_SIZE;
+ unsigned int sc_output_screen_xy : SQ_CONTEXT_MISC_SC_OUTPUT_SCREEN_XY_SIZE;
+ unsigned int inst_pred_optimize : SQ_CONTEXT_MISC_INST_PRED_OPTIMIZE_SIZE;
+ } sq_context_misc_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_context_misc_t f;
+} sq_context_misc_u;
+
+
+/*
+ * SQ_CF_RD_BASE struct
+ */
+
+#define SQ_CF_RD_BASE_RD_BASE_SIZE 3
+
+#define SQ_CF_RD_BASE_RD_BASE_SHIFT 0
+
+#define SQ_CF_RD_BASE_RD_BASE_MASK 0x00000007
+
+#define SQ_CF_RD_BASE_MASK \
+ (SQ_CF_RD_BASE_RD_BASE_MASK)
+
+#define SQ_CF_RD_BASE(rd_base) \
+ ((rd_base << SQ_CF_RD_BASE_RD_BASE_SHIFT))
+
+#define SQ_CF_RD_BASE_GET_RD_BASE(sq_cf_rd_base) \
+ ((sq_cf_rd_base & SQ_CF_RD_BASE_RD_BASE_MASK) >> SQ_CF_RD_BASE_RD_BASE_SHIFT)
+
+#define SQ_CF_RD_BASE_SET_RD_BASE(sq_cf_rd_base_reg, rd_base) \
+ sq_cf_rd_base_reg = (sq_cf_rd_base_reg & ~SQ_CF_RD_BASE_RD_BASE_MASK) | (rd_base << SQ_CF_RD_BASE_RD_BASE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_cf_rd_base_t {
+ unsigned int rd_base : SQ_CF_RD_BASE_RD_BASE_SIZE;
+ unsigned int : 29;
+ } sq_cf_rd_base_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_cf_rd_base_t {
+ unsigned int : 29;
+ unsigned int rd_base : SQ_CF_RD_BASE_RD_BASE_SIZE;
+ } sq_cf_rd_base_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_cf_rd_base_t f;
+} sq_cf_rd_base_u;
+
+
+/*
+ * SQ_DEBUG_MISC_0 struct
+ */
+
+#define SQ_DEBUG_MISC_0_DB_PROB_ON_SIZE 1
+#define SQ_DEBUG_MISC_0_DB_PROB_BREAK_SIZE 1
+#define SQ_DEBUG_MISC_0_DB_PROB_ADDR_SIZE 11
+#define SQ_DEBUG_MISC_0_DB_PROB_COUNT_SIZE 8
+
+#define SQ_DEBUG_MISC_0_DB_PROB_ON_SHIFT 0
+#define SQ_DEBUG_MISC_0_DB_PROB_BREAK_SHIFT 4
+#define SQ_DEBUG_MISC_0_DB_PROB_ADDR_SHIFT 8
+#define SQ_DEBUG_MISC_0_DB_PROB_COUNT_SHIFT 24
+
+#define SQ_DEBUG_MISC_0_DB_PROB_ON_MASK 0x00000001
+#define SQ_DEBUG_MISC_0_DB_PROB_BREAK_MASK 0x00000010
+#define SQ_DEBUG_MISC_0_DB_PROB_ADDR_MASK 0x0007ff00
+#define SQ_DEBUG_MISC_0_DB_PROB_COUNT_MASK 0xff000000
+
+#define SQ_DEBUG_MISC_0_MASK \
+ (SQ_DEBUG_MISC_0_DB_PROB_ON_MASK | \
+ SQ_DEBUG_MISC_0_DB_PROB_BREAK_MASK | \
+ SQ_DEBUG_MISC_0_DB_PROB_ADDR_MASK | \
+ SQ_DEBUG_MISC_0_DB_PROB_COUNT_MASK)
+
+#define SQ_DEBUG_MISC_0(db_prob_on, db_prob_break, db_prob_addr, db_prob_count) \
+ ((db_prob_on << SQ_DEBUG_MISC_0_DB_PROB_ON_SHIFT) | \
+ (db_prob_break << SQ_DEBUG_MISC_0_DB_PROB_BREAK_SHIFT) | \
+ (db_prob_addr << SQ_DEBUG_MISC_0_DB_PROB_ADDR_SHIFT) | \
+ (db_prob_count << SQ_DEBUG_MISC_0_DB_PROB_COUNT_SHIFT))
+
+#define SQ_DEBUG_MISC_0_GET_DB_PROB_ON(sq_debug_misc_0) \
+ ((sq_debug_misc_0 & SQ_DEBUG_MISC_0_DB_PROB_ON_MASK) >> SQ_DEBUG_MISC_0_DB_PROB_ON_SHIFT)
+#define SQ_DEBUG_MISC_0_GET_DB_PROB_BREAK(sq_debug_misc_0) \
+ ((sq_debug_misc_0 & SQ_DEBUG_MISC_0_DB_PROB_BREAK_MASK) >> SQ_DEBUG_MISC_0_DB_PROB_BREAK_SHIFT)
+#define SQ_DEBUG_MISC_0_GET_DB_PROB_ADDR(sq_debug_misc_0) \
+ ((sq_debug_misc_0 & SQ_DEBUG_MISC_0_DB_PROB_ADDR_MASK) >> SQ_DEBUG_MISC_0_DB_PROB_ADDR_SHIFT)
+#define SQ_DEBUG_MISC_0_GET_DB_PROB_COUNT(sq_debug_misc_0) \
+ ((sq_debug_misc_0 & SQ_DEBUG_MISC_0_DB_PROB_COUNT_MASK) >> SQ_DEBUG_MISC_0_DB_PROB_COUNT_SHIFT)
+
+#define SQ_DEBUG_MISC_0_SET_DB_PROB_ON(sq_debug_misc_0_reg, db_prob_on) \
+ sq_debug_misc_0_reg = (sq_debug_misc_0_reg & ~SQ_DEBUG_MISC_0_DB_PROB_ON_MASK) | (db_prob_on << SQ_DEBUG_MISC_0_DB_PROB_ON_SHIFT)
+#define SQ_DEBUG_MISC_0_SET_DB_PROB_BREAK(sq_debug_misc_0_reg, db_prob_break) \
+ sq_debug_misc_0_reg = (sq_debug_misc_0_reg & ~SQ_DEBUG_MISC_0_DB_PROB_BREAK_MASK) | (db_prob_break << SQ_DEBUG_MISC_0_DB_PROB_BREAK_SHIFT)
+#define SQ_DEBUG_MISC_0_SET_DB_PROB_ADDR(sq_debug_misc_0_reg, db_prob_addr) \
+ sq_debug_misc_0_reg = (sq_debug_misc_0_reg & ~SQ_DEBUG_MISC_0_DB_PROB_ADDR_MASK) | (db_prob_addr << SQ_DEBUG_MISC_0_DB_PROB_ADDR_SHIFT)
+#define SQ_DEBUG_MISC_0_SET_DB_PROB_COUNT(sq_debug_misc_0_reg, db_prob_count) \
+ sq_debug_misc_0_reg = (sq_debug_misc_0_reg & ~SQ_DEBUG_MISC_0_DB_PROB_COUNT_MASK) | (db_prob_count << SQ_DEBUG_MISC_0_DB_PROB_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_misc_0_t {
+ unsigned int db_prob_on : SQ_DEBUG_MISC_0_DB_PROB_ON_SIZE;
+ unsigned int : 3;
+ unsigned int db_prob_break : SQ_DEBUG_MISC_0_DB_PROB_BREAK_SIZE;
+ unsigned int : 3;
+ unsigned int db_prob_addr : SQ_DEBUG_MISC_0_DB_PROB_ADDR_SIZE;
+ unsigned int : 5;
+ unsigned int db_prob_count : SQ_DEBUG_MISC_0_DB_PROB_COUNT_SIZE;
+ } sq_debug_misc_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_misc_0_t {
+ unsigned int db_prob_count : SQ_DEBUG_MISC_0_DB_PROB_COUNT_SIZE;
+ unsigned int : 5;
+ unsigned int db_prob_addr : SQ_DEBUG_MISC_0_DB_PROB_ADDR_SIZE;
+ unsigned int : 3;
+ unsigned int db_prob_break : SQ_DEBUG_MISC_0_DB_PROB_BREAK_SIZE;
+ unsigned int : 3;
+ unsigned int db_prob_on : SQ_DEBUG_MISC_0_DB_PROB_ON_SIZE;
+ } sq_debug_misc_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_misc_0_t f;
+} sq_debug_misc_0_u;
+
+
+/*
+ * SQ_DEBUG_MISC_1 struct
+ */
+
+#define SQ_DEBUG_MISC_1_DB_ON_PIX_SIZE 1
+#define SQ_DEBUG_MISC_1_DB_ON_VTX_SIZE 1
+#define SQ_DEBUG_MISC_1_DB_INST_COUNT_SIZE 8
+#define SQ_DEBUG_MISC_1_DB_BREAK_ADDR_SIZE 11
+
+#define SQ_DEBUG_MISC_1_DB_ON_PIX_SHIFT 0
+#define SQ_DEBUG_MISC_1_DB_ON_VTX_SHIFT 1
+#define SQ_DEBUG_MISC_1_DB_INST_COUNT_SHIFT 8
+#define SQ_DEBUG_MISC_1_DB_BREAK_ADDR_SHIFT 16
+
+#define SQ_DEBUG_MISC_1_DB_ON_PIX_MASK 0x00000001
+#define SQ_DEBUG_MISC_1_DB_ON_VTX_MASK 0x00000002
+#define SQ_DEBUG_MISC_1_DB_INST_COUNT_MASK 0x0000ff00
+#define SQ_DEBUG_MISC_1_DB_BREAK_ADDR_MASK 0x07ff0000
+
+#define SQ_DEBUG_MISC_1_MASK \
+ (SQ_DEBUG_MISC_1_DB_ON_PIX_MASK | \
+ SQ_DEBUG_MISC_1_DB_ON_VTX_MASK | \
+ SQ_DEBUG_MISC_1_DB_INST_COUNT_MASK | \
+ SQ_DEBUG_MISC_1_DB_BREAK_ADDR_MASK)
+
+#define SQ_DEBUG_MISC_1(db_on_pix, db_on_vtx, db_inst_count, db_break_addr) \
+ ((db_on_pix << SQ_DEBUG_MISC_1_DB_ON_PIX_SHIFT) | \
+ (db_on_vtx << SQ_DEBUG_MISC_1_DB_ON_VTX_SHIFT) | \
+ (db_inst_count << SQ_DEBUG_MISC_1_DB_INST_COUNT_SHIFT) | \
+ (db_break_addr << SQ_DEBUG_MISC_1_DB_BREAK_ADDR_SHIFT))
+
+#define SQ_DEBUG_MISC_1_GET_DB_ON_PIX(sq_debug_misc_1) \
+ ((sq_debug_misc_1 & SQ_DEBUG_MISC_1_DB_ON_PIX_MASK) >> SQ_DEBUG_MISC_1_DB_ON_PIX_SHIFT)
+#define SQ_DEBUG_MISC_1_GET_DB_ON_VTX(sq_debug_misc_1) \
+ ((sq_debug_misc_1 & SQ_DEBUG_MISC_1_DB_ON_VTX_MASK) >> SQ_DEBUG_MISC_1_DB_ON_VTX_SHIFT)
+#define SQ_DEBUG_MISC_1_GET_DB_INST_COUNT(sq_debug_misc_1) \
+ ((sq_debug_misc_1 & SQ_DEBUG_MISC_1_DB_INST_COUNT_MASK) >> SQ_DEBUG_MISC_1_DB_INST_COUNT_SHIFT)
+#define SQ_DEBUG_MISC_1_GET_DB_BREAK_ADDR(sq_debug_misc_1) \
+ ((sq_debug_misc_1 & SQ_DEBUG_MISC_1_DB_BREAK_ADDR_MASK) >> SQ_DEBUG_MISC_1_DB_BREAK_ADDR_SHIFT)
+
+#define SQ_DEBUG_MISC_1_SET_DB_ON_PIX(sq_debug_misc_1_reg, db_on_pix) \
+ sq_debug_misc_1_reg = (sq_debug_misc_1_reg & ~SQ_DEBUG_MISC_1_DB_ON_PIX_MASK) | (db_on_pix << SQ_DEBUG_MISC_1_DB_ON_PIX_SHIFT)
+#define SQ_DEBUG_MISC_1_SET_DB_ON_VTX(sq_debug_misc_1_reg, db_on_vtx) \
+ sq_debug_misc_1_reg = (sq_debug_misc_1_reg & ~SQ_DEBUG_MISC_1_DB_ON_VTX_MASK) | (db_on_vtx << SQ_DEBUG_MISC_1_DB_ON_VTX_SHIFT)
+#define SQ_DEBUG_MISC_1_SET_DB_INST_COUNT(sq_debug_misc_1_reg, db_inst_count) \
+ sq_debug_misc_1_reg = (sq_debug_misc_1_reg & ~SQ_DEBUG_MISC_1_DB_INST_COUNT_MASK) | (db_inst_count << SQ_DEBUG_MISC_1_DB_INST_COUNT_SHIFT)
+#define SQ_DEBUG_MISC_1_SET_DB_BREAK_ADDR(sq_debug_misc_1_reg, db_break_addr) \
+ sq_debug_misc_1_reg = (sq_debug_misc_1_reg & ~SQ_DEBUG_MISC_1_DB_BREAK_ADDR_MASK) | (db_break_addr << SQ_DEBUG_MISC_1_DB_BREAK_ADDR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_misc_1_t {
+ unsigned int db_on_pix : SQ_DEBUG_MISC_1_DB_ON_PIX_SIZE;
+ unsigned int db_on_vtx : SQ_DEBUG_MISC_1_DB_ON_VTX_SIZE;
+ unsigned int : 6;
+ unsigned int db_inst_count : SQ_DEBUG_MISC_1_DB_INST_COUNT_SIZE;
+ unsigned int db_break_addr : SQ_DEBUG_MISC_1_DB_BREAK_ADDR_SIZE;
+ unsigned int : 5;
+ } sq_debug_misc_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_misc_1_t {
+ unsigned int : 5;
+ unsigned int db_break_addr : SQ_DEBUG_MISC_1_DB_BREAK_ADDR_SIZE;
+ unsigned int db_inst_count : SQ_DEBUG_MISC_1_DB_INST_COUNT_SIZE;
+ unsigned int : 6;
+ unsigned int db_on_vtx : SQ_DEBUG_MISC_1_DB_ON_VTX_SIZE;
+ unsigned int db_on_pix : SQ_DEBUG_MISC_1_DB_ON_PIX_SIZE;
+ } sq_debug_misc_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_misc_1_t f;
+} sq_debug_misc_1_u;
+
+
+#endif
+
+
+#if !defined (_SX_FIDDLE_H)
+#define _SX_FIDDLE_H
+
+/*******************************************************
+ * Enums
+ *******************************************************/
+
+
+/*******************************************************
+ * Values
+ *******************************************************/
+
+
+/*******************************************************
+ * Structures
+ *******************************************************/
+
+#endif
+
+
+#if !defined (_TP_FIDDLE_H)
+#define _TP_FIDDLE_H
+
+/*******************************************************
+ * Enums
+ *******************************************************/
+
+
+/*******************************************************
+ * Values
+ *******************************************************/
+
+
+/*******************************************************
+ * Structures
+ *******************************************************/
+
+/*
+ * TC_CNTL_STATUS struct
+ */
+
+#define TC_CNTL_STATUS_L2_INVALIDATE_SIZE 1
+#define TC_CNTL_STATUS_TC_L2_HIT_MISS_SIZE 2
+#define TC_CNTL_STATUS_TC_BUSY_SIZE 1
+
+#define TC_CNTL_STATUS_L2_INVALIDATE_SHIFT 0
+#define TC_CNTL_STATUS_TC_L2_HIT_MISS_SHIFT 18
+#define TC_CNTL_STATUS_TC_BUSY_SHIFT 31
+
+#define TC_CNTL_STATUS_L2_INVALIDATE_MASK 0x00000001
+#define TC_CNTL_STATUS_TC_L2_HIT_MISS_MASK 0x000c0000
+#define TC_CNTL_STATUS_TC_BUSY_MASK 0x80000000
+
+#define TC_CNTL_STATUS_MASK \
+ (TC_CNTL_STATUS_L2_INVALIDATE_MASK | \
+ TC_CNTL_STATUS_TC_L2_HIT_MISS_MASK | \
+ TC_CNTL_STATUS_TC_BUSY_MASK)
+
+#define TC_CNTL_STATUS(l2_invalidate, tc_l2_hit_miss, tc_busy) \
+ ((l2_invalidate << TC_CNTL_STATUS_L2_INVALIDATE_SHIFT) | \
+ (tc_l2_hit_miss << TC_CNTL_STATUS_TC_L2_HIT_MISS_SHIFT) | \
+ (tc_busy << TC_CNTL_STATUS_TC_BUSY_SHIFT))
+
+#define TC_CNTL_STATUS_GET_L2_INVALIDATE(tc_cntl_status) \
+ ((tc_cntl_status & TC_CNTL_STATUS_L2_INVALIDATE_MASK) >> TC_CNTL_STATUS_L2_INVALIDATE_SHIFT)
+#define TC_CNTL_STATUS_GET_TC_L2_HIT_MISS(tc_cntl_status) \
+ ((tc_cntl_status & TC_CNTL_STATUS_TC_L2_HIT_MISS_MASK) >> TC_CNTL_STATUS_TC_L2_HIT_MISS_SHIFT)
+#define TC_CNTL_STATUS_GET_TC_BUSY(tc_cntl_status) \
+ ((tc_cntl_status & TC_CNTL_STATUS_TC_BUSY_MASK) >> TC_CNTL_STATUS_TC_BUSY_SHIFT)
+
+#define TC_CNTL_STATUS_SET_L2_INVALIDATE(tc_cntl_status_reg, l2_invalidate) \
+ tc_cntl_status_reg = (tc_cntl_status_reg & ~TC_CNTL_STATUS_L2_INVALIDATE_MASK) | (l2_invalidate << TC_CNTL_STATUS_L2_INVALIDATE_SHIFT)
+#define TC_CNTL_STATUS_SET_TC_L2_HIT_MISS(tc_cntl_status_reg, tc_l2_hit_miss) \
+ tc_cntl_status_reg = (tc_cntl_status_reg & ~TC_CNTL_STATUS_TC_L2_HIT_MISS_MASK) | (tc_l2_hit_miss << TC_CNTL_STATUS_TC_L2_HIT_MISS_SHIFT)
+#define TC_CNTL_STATUS_SET_TC_BUSY(tc_cntl_status_reg, tc_busy) \
+ tc_cntl_status_reg = (tc_cntl_status_reg & ~TC_CNTL_STATUS_TC_BUSY_MASK) | (tc_busy << TC_CNTL_STATUS_TC_BUSY_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tc_cntl_status_t {
+ unsigned int l2_invalidate : TC_CNTL_STATUS_L2_INVALIDATE_SIZE;
+ unsigned int : 17;
+ unsigned int tc_l2_hit_miss : TC_CNTL_STATUS_TC_L2_HIT_MISS_SIZE;
+ unsigned int : 11;
+ unsigned int tc_busy : TC_CNTL_STATUS_TC_BUSY_SIZE;
+ } tc_cntl_status_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tc_cntl_status_t {
+ unsigned int tc_busy : TC_CNTL_STATUS_TC_BUSY_SIZE;
+ unsigned int : 11;
+ unsigned int tc_l2_hit_miss : TC_CNTL_STATUS_TC_L2_HIT_MISS_SIZE;
+ unsigned int : 17;
+ unsigned int l2_invalidate : TC_CNTL_STATUS_L2_INVALIDATE_SIZE;
+ } tc_cntl_status_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tc_cntl_status_t f;
+} tc_cntl_status_u;
+
+
+/*
+ * TCR_CHICKEN struct
+ */
+
+#define TCR_CHICKEN_SPARE_SIZE 32
+
+#define TCR_CHICKEN_SPARE_SHIFT 0
+
+#define TCR_CHICKEN_SPARE_MASK 0xffffffff
+
+#define TCR_CHICKEN_MASK \
+ (TCR_CHICKEN_SPARE_MASK)
+
+#define TCR_CHICKEN(spare) \
+ ((spare << TCR_CHICKEN_SPARE_SHIFT))
+
+#define TCR_CHICKEN_GET_SPARE(tcr_chicken) \
+ ((tcr_chicken & TCR_CHICKEN_SPARE_MASK) >> TCR_CHICKEN_SPARE_SHIFT)
+
+#define TCR_CHICKEN_SET_SPARE(tcr_chicken_reg, spare) \
+ tcr_chicken_reg = (tcr_chicken_reg & ~TCR_CHICKEN_SPARE_MASK) | (spare << TCR_CHICKEN_SPARE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcr_chicken_t {
+ unsigned int spare : TCR_CHICKEN_SPARE_SIZE;
+ } tcr_chicken_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcr_chicken_t {
+ unsigned int spare : TCR_CHICKEN_SPARE_SIZE;
+ } tcr_chicken_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcr_chicken_t f;
+} tcr_chicken_u;
+
+
+/*
+ * TCF_CHICKEN struct
+ */
+
+#define TCF_CHICKEN_SPARE_SIZE 32
+
+#define TCF_CHICKEN_SPARE_SHIFT 0
+
+#define TCF_CHICKEN_SPARE_MASK 0xffffffff
+
+#define TCF_CHICKEN_MASK \
+ (TCF_CHICKEN_SPARE_MASK)
+
+#define TCF_CHICKEN(spare) \
+ ((spare << TCF_CHICKEN_SPARE_SHIFT))
+
+#define TCF_CHICKEN_GET_SPARE(tcf_chicken) \
+ ((tcf_chicken & TCF_CHICKEN_SPARE_MASK) >> TCF_CHICKEN_SPARE_SHIFT)
+
+#define TCF_CHICKEN_SET_SPARE(tcf_chicken_reg, spare) \
+ tcf_chicken_reg = (tcf_chicken_reg & ~TCF_CHICKEN_SPARE_MASK) | (spare << TCF_CHICKEN_SPARE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_chicken_t {
+ unsigned int spare : TCF_CHICKEN_SPARE_SIZE;
+ } tcf_chicken_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_chicken_t {
+ unsigned int spare : TCF_CHICKEN_SPARE_SIZE;
+ } tcf_chicken_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_chicken_t f;
+} tcf_chicken_u;
+
+
+/*
+ * TCM_CHICKEN struct
+ */
+
+#define TCM_CHICKEN_TCO_READ_LATENCY_FIFO_PROG_DEPTH_SIZE 8
+#define TCM_CHICKEN_ETC_COLOR_ENDIAN_SIZE 1
+#define TCM_CHICKEN_SPARE_SIZE 23
+
+#define TCM_CHICKEN_TCO_READ_LATENCY_FIFO_PROG_DEPTH_SHIFT 0
+#define TCM_CHICKEN_ETC_COLOR_ENDIAN_SHIFT 8
+#define TCM_CHICKEN_SPARE_SHIFT 9
+
+#define TCM_CHICKEN_TCO_READ_LATENCY_FIFO_PROG_DEPTH_MASK 0x000000ff
+#define TCM_CHICKEN_ETC_COLOR_ENDIAN_MASK 0x00000100
+#define TCM_CHICKEN_SPARE_MASK 0xfffffe00
+
+#define TCM_CHICKEN_MASK \
+ (TCM_CHICKEN_TCO_READ_LATENCY_FIFO_PROG_DEPTH_MASK | \
+ TCM_CHICKEN_ETC_COLOR_ENDIAN_MASK | \
+ TCM_CHICKEN_SPARE_MASK)
+
+#define TCM_CHICKEN(tco_read_latency_fifo_prog_depth, etc_color_endian, spare) \
+ ((tco_read_latency_fifo_prog_depth << TCM_CHICKEN_TCO_READ_LATENCY_FIFO_PROG_DEPTH_SHIFT) | \
+ (etc_color_endian << TCM_CHICKEN_ETC_COLOR_ENDIAN_SHIFT) | \
+ (spare << TCM_CHICKEN_SPARE_SHIFT))
+
+#define TCM_CHICKEN_GET_TCO_READ_LATENCY_FIFO_PROG_DEPTH(tcm_chicken) \
+ ((tcm_chicken & TCM_CHICKEN_TCO_READ_LATENCY_FIFO_PROG_DEPTH_MASK) >> TCM_CHICKEN_TCO_READ_LATENCY_FIFO_PROG_DEPTH_SHIFT)
+#define TCM_CHICKEN_GET_ETC_COLOR_ENDIAN(tcm_chicken) \
+ ((tcm_chicken & TCM_CHICKEN_ETC_COLOR_ENDIAN_MASK) >> TCM_CHICKEN_ETC_COLOR_ENDIAN_SHIFT)
+#define TCM_CHICKEN_GET_SPARE(tcm_chicken) \
+ ((tcm_chicken & TCM_CHICKEN_SPARE_MASK) >> TCM_CHICKEN_SPARE_SHIFT)
+
+#define TCM_CHICKEN_SET_TCO_READ_LATENCY_FIFO_PROG_DEPTH(tcm_chicken_reg, tco_read_latency_fifo_prog_depth) \
+ tcm_chicken_reg = (tcm_chicken_reg & ~TCM_CHICKEN_TCO_READ_LATENCY_FIFO_PROG_DEPTH_MASK) | (tco_read_latency_fifo_prog_depth << TCM_CHICKEN_TCO_READ_LATENCY_FIFO_PROG_DEPTH_SHIFT)
+#define TCM_CHICKEN_SET_ETC_COLOR_ENDIAN(tcm_chicken_reg, etc_color_endian) \
+ tcm_chicken_reg = (tcm_chicken_reg & ~TCM_CHICKEN_ETC_COLOR_ENDIAN_MASK) | (etc_color_endian << TCM_CHICKEN_ETC_COLOR_ENDIAN_SHIFT)
+#define TCM_CHICKEN_SET_SPARE(tcm_chicken_reg, spare) \
+ tcm_chicken_reg = (tcm_chicken_reg & ~TCM_CHICKEN_SPARE_MASK) | (spare << TCM_CHICKEN_SPARE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcm_chicken_t {
+ unsigned int tco_read_latency_fifo_prog_depth : TCM_CHICKEN_TCO_READ_LATENCY_FIFO_PROG_DEPTH_SIZE;
+ unsigned int etc_color_endian : TCM_CHICKEN_ETC_COLOR_ENDIAN_SIZE;
+ unsigned int spare : TCM_CHICKEN_SPARE_SIZE;
+ } tcm_chicken_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcm_chicken_t {
+ unsigned int spare : TCM_CHICKEN_SPARE_SIZE;
+ unsigned int etc_color_endian : TCM_CHICKEN_ETC_COLOR_ENDIAN_SIZE;
+ unsigned int tco_read_latency_fifo_prog_depth : TCM_CHICKEN_TCO_READ_LATENCY_FIFO_PROG_DEPTH_SIZE;
+ } tcm_chicken_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcm_chicken_t f;
+} tcm_chicken_u;
+
+
+/*
+ * TCR_PERFCOUNTER0_SELECT struct
+ */
+
+#define TCR_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SIZE 8
+
+#define TCR_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SHIFT 0
+
+#define TCR_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_MASK 0x000000ff
+
+#define TCR_PERFCOUNTER0_SELECT_MASK \
+ (TCR_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_MASK)
+
+#define TCR_PERFCOUNTER0_SELECT(perfcounter_select) \
+ ((perfcounter_select << TCR_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SHIFT))
+
+#define TCR_PERFCOUNTER0_SELECT_GET_PERFCOUNTER_SELECT(tcr_perfcounter0_select) \
+ ((tcr_perfcounter0_select & TCR_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_MASK) >> TCR_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#define TCR_PERFCOUNTER0_SELECT_SET_PERFCOUNTER_SELECT(tcr_perfcounter0_select_reg, perfcounter_select) \
+ tcr_perfcounter0_select_reg = (tcr_perfcounter0_select_reg & ~TCR_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_MASK) | (perfcounter_select << TCR_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcr_perfcounter0_select_t {
+ unsigned int perfcounter_select : TCR_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SIZE;
+ unsigned int : 24;
+ } tcr_perfcounter0_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcr_perfcounter0_select_t {
+ unsigned int : 24;
+ unsigned int perfcounter_select : TCR_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SIZE;
+ } tcr_perfcounter0_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcr_perfcounter0_select_t f;
+} tcr_perfcounter0_select_u;
+
+
+/*
+ * TCR_PERFCOUNTER1_SELECT struct
+ */
+
+#define TCR_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SIZE 8
+
+#define TCR_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SHIFT 0
+
+#define TCR_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_MASK 0x000000ff
+
+#define TCR_PERFCOUNTER1_SELECT_MASK \
+ (TCR_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_MASK)
+
+#define TCR_PERFCOUNTER1_SELECT(perfcounter_select) \
+ ((perfcounter_select << TCR_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SHIFT))
+
+#define TCR_PERFCOUNTER1_SELECT_GET_PERFCOUNTER_SELECT(tcr_perfcounter1_select) \
+ ((tcr_perfcounter1_select & TCR_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_MASK) >> TCR_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#define TCR_PERFCOUNTER1_SELECT_SET_PERFCOUNTER_SELECT(tcr_perfcounter1_select_reg, perfcounter_select) \
+ tcr_perfcounter1_select_reg = (tcr_perfcounter1_select_reg & ~TCR_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_MASK) | (perfcounter_select << TCR_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcr_perfcounter1_select_t {
+ unsigned int perfcounter_select : TCR_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SIZE;
+ unsigned int : 24;
+ } tcr_perfcounter1_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcr_perfcounter1_select_t {
+ unsigned int : 24;
+ unsigned int perfcounter_select : TCR_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SIZE;
+ } tcr_perfcounter1_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcr_perfcounter1_select_t f;
+} tcr_perfcounter1_select_u;
+
+
+/*
+ * TCR_PERFCOUNTER0_HI struct
+ */
+
+#define TCR_PERFCOUNTER0_HI_PERFCOUNTER_HI_SIZE 16
+
+#define TCR_PERFCOUNTER0_HI_PERFCOUNTER_HI_SHIFT 0
+
+#define TCR_PERFCOUNTER0_HI_PERFCOUNTER_HI_MASK 0x0000ffff
+
+#define TCR_PERFCOUNTER0_HI_MASK \
+ (TCR_PERFCOUNTER0_HI_PERFCOUNTER_HI_MASK)
+
+#define TCR_PERFCOUNTER0_HI(perfcounter_hi) \
+ ((perfcounter_hi << TCR_PERFCOUNTER0_HI_PERFCOUNTER_HI_SHIFT))
+
+#define TCR_PERFCOUNTER0_HI_GET_PERFCOUNTER_HI(tcr_perfcounter0_hi) \
+ ((tcr_perfcounter0_hi & TCR_PERFCOUNTER0_HI_PERFCOUNTER_HI_MASK) >> TCR_PERFCOUNTER0_HI_PERFCOUNTER_HI_SHIFT)
+
+#define TCR_PERFCOUNTER0_HI_SET_PERFCOUNTER_HI(tcr_perfcounter0_hi_reg, perfcounter_hi) \
+ tcr_perfcounter0_hi_reg = (tcr_perfcounter0_hi_reg & ~TCR_PERFCOUNTER0_HI_PERFCOUNTER_HI_MASK) | (perfcounter_hi << TCR_PERFCOUNTER0_HI_PERFCOUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcr_perfcounter0_hi_t {
+ unsigned int perfcounter_hi : TCR_PERFCOUNTER0_HI_PERFCOUNTER_HI_SIZE;
+ unsigned int : 16;
+ } tcr_perfcounter0_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcr_perfcounter0_hi_t {
+ unsigned int : 16;
+ unsigned int perfcounter_hi : TCR_PERFCOUNTER0_HI_PERFCOUNTER_HI_SIZE;
+ } tcr_perfcounter0_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcr_perfcounter0_hi_t f;
+} tcr_perfcounter0_hi_u;
+
+
+/*
+ * TCR_PERFCOUNTER1_HI struct
+ */
+
+#define TCR_PERFCOUNTER1_HI_PERFCOUNTER_HI_SIZE 16
+
+#define TCR_PERFCOUNTER1_HI_PERFCOUNTER_HI_SHIFT 0
+
+#define TCR_PERFCOUNTER1_HI_PERFCOUNTER_HI_MASK 0x0000ffff
+
+#define TCR_PERFCOUNTER1_HI_MASK \
+ (TCR_PERFCOUNTER1_HI_PERFCOUNTER_HI_MASK)
+
+#define TCR_PERFCOUNTER1_HI(perfcounter_hi) \
+ ((perfcounter_hi << TCR_PERFCOUNTER1_HI_PERFCOUNTER_HI_SHIFT))
+
+#define TCR_PERFCOUNTER1_HI_GET_PERFCOUNTER_HI(tcr_perfcounter1_hi) \
+ ((tcr_perfcounter1_hi & TCR_PERFCOUNTER1_HI_PERFCOUNTER_HI_MASK) >> TCR_PERFCOUNTER1_HI_PERFCOUNTER_HI_SHIFT)
+
+#define TCR_PERFCOUNTER1_HI_SET_PERFCOUNTER_HI(tcr_perfcounter1_hi_reg, perfcounter_hi) \
+ tcr_perfcounter1_hi_reg = (tcr_perfcounter1_hi_reg & ~TCR_PERFCOUNTER1_HI_PERFCOUNTER_HI_MASK) | (perfcounter_hi << TCR_PERFCOUNTER1_HI_PERFCOUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcr_perfcounter1_hi_t {
+ unsigned int perfcounter_hi : TCR_PERFCOUNTER1_HI_PERFCOUNTER_HI_SIZE;
+ unsigned int : 16;
+ } tcr_perfcounter1_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcr_perfcounter1_hi_t {
+ unsigned int : 16;
+ unsigned int perfcounter_hi : TCR_PERFCOUNTER1_HI_PERFCOUNTER_HI_SIZE;
+ } tcr_perfcounter1_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcr_perfcounter1_hi_t f;
+} tcr_perfcounter1_hi_u;
+
+
+/*
+ * TCR_PERFCOUNTER0_LOW struct
+ */
+
+#define TCR_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SIZE 32
+
+#define TCR_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SHIFT 0
+
+#define TCR_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_MASK 0xffffffff
+
+#define TCR_PERFCOUNTER0_LOW_MASK \
+ (TCR_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_MASK)
+
+#define TCR_PERFCOUNTER0_LOW(perfcounter_low) \
+ ((perfcounter_low << TCR_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SHIFT))
+
+#define TCR_PERFCOUNTER0_LOW_GET_PERFCOUNTER_LOW(tcr_perfcounter0_low) \
+ ((tcr_perfcounter0_low & TCR_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_MASK) >> TCR_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#define TCR_PERFCOUNTER0_LOW_SET_PERFCOUNTER_LOW(tcr_perfcounter0_low_reg, perfcounter_low) \
+ tcr_perfcounter0_low_reg = (tcr_perfcounter0_low_reg & ~TCR_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_MASK) | (perfcounter_low << TCR_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcr_perfcounter0_low_t {
+ unsigned int perfcounter_low : TCR_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcr_perfcounter0_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcr_perfcounter0_low_t {
+ unsigned int perfcounter_low : TCR_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcr_perfcounter0_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcr_perfcounter0_low_t f;
+} tcr_perfcounter0_low_u;
+
+
+/*
+ * TCR_PERFCOUNTER1_LOW struct
+ */
+
+#define TCR_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SIZE 32
+
+#define TCR_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SHIFT 0
+
+#define TCR_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_MASK 0xffffffff
+
+#define TCR_PERFCOUNTER1_LOW_MASK \
+ (TCR_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_MASK)
+
+#define TCR_PERFCOUNTER1_LOW(perfcounter_low) \
+ ((perfcounter_low << TCR_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SHIFT))
+
+#define TCR_PERFCOUNTER1_LOW_GET_PERFCOUNTER_LOW(tcr_perfcounter1_low) \
+ ((tcr_perfcounter1_low & TCR_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_MASK) >> TCR_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#define TCR_PERFCOUNTER1_LOW_SET_PERFCOUNTER_LOW(tcr_perfcounter1_low_reg, perfcounter_low) \
+ tcr_perfcounter1_low_reg = (tcr_perfcounter1_low_reg & ~TCR_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_MASK) | (perfcounter_low << TCR_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcr_perfcounter1_low_t {
+ unsigned int perfcounter_low : TCR_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcr_perfcounter1_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcr_perfcounter1_low_t {
+ unsigned int perfcounter_low : TCR_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcr_perfcounter1_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcr_perfcounter1_low_t f;
+} tcr_perfcounter1_low_u;
+
+
+/*
+ * TP_TC_CLKGATE_CNTL struct
+ */
+
+#define TP_TC_CLKGATE_CNTL_TP_BUSY_EXTEND_SIZE 3
+#define TP_TC_CLKGATE_CNTL_TC_BUSY_EXTEND_SIZE 3
+
+#define TP_TC_CLKGATE_CNTL_TP_BUSY_EXTEND_SHIFT 0
+#define TP_TC_CLKGATE_CNTL_TC_BUSY_EXTEND_SHIFT 3
+
+#define TP_TC_CLKGATE_CNTL_TP_BUSY_EXTEND_MASK 0x00000007
+#define TP_TC_CLKGATE_CNTL_TC_BUSY_EXTEND_MASK 0x00000038
+
+#define TP_TC_CLKGATE_CNTL_MASK \
+ (TP_TC_CLKGATE_CNTL_TP_BUSY_EXTEND_MASK | \
+ TP_TC_CLKGATE_CNTL_TC_BUSY_EXTEND_MASK)
+
+#define TP_TC_CLKGATE_CNTL(tp_busy_extend, tc_busy_extend) \
+ ((tp_busy_extend << TP_TC_CLKGATE_CNTL_TP_BUSY_EXTEND_SHIFT) | \
+ (tc_busy_extend << TP_TC_CLKGATE_CNTL_TC_BUSY_EXTEND_SHIFT))
+
+#define TP_TC_CLKGATE_CNTL_GET_TP_BUSY_EXTEND(tp_tc_clkgate_cntl) \
+ ((tp_tc_clkgate_cntl & TP_TC_CLKGATE_CNTL_TP_BUSY_EXTEND_MASK) >> TP_TC_CLKGATE_CNTL_TP_BUSY_EXTEND_SHIFT)
+#define TP_TC_CLKGATE_CNTL_GET_TC_BUSY_EXTEND(tp_tc_clkgate_cntl) \
+ ((tp_tc_clkgate_cntl & TP_TC_CLKGATE_CNTL_TC_BUSY_EXTEND_MASK) >> TP_TC_CLKGATE_CNTL_TC_BUSY_EXTEND_SHIFT)
+
+#define TP_TC_CLKGATE_CNTL_SET_TP_BUSY_EXTEND(tp_tc_clkgate_cntl_reg, tp_busy_extend) \
+ tp_tc_clkgate_cntl_reg = (tp_tc_clkgate_cntl_reg & ~TP_TC_CLKGATE_CNTL_TP_BUSY_EXTEND_MASK) | (tp_busy_extend << TP_TC_CLKGATE_CNTL_TP_BUSY_EXTEND_SHIFT)
+#define TP_TC_CLKGATE_CNTL_SET_TC_BUSY_EXTEND(tp_tc_clkgate_cntl_reg, tc_busy_extend) \
+ tp_tc_clkgate_cntl_reg = (tp_tc_clkgate_cntl_reg & ~TP_TC_CLKGATE_CNTL_TC_BUSY_EXTEND_MASK) | (tc_busy_extend << TP_TC_CLKGATE_CNTL_TC_BUSY_EXTEND_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tp_tc_clkgate_cntl_t {
+ unsigned int tp_busy_extend : TP_TC_CLKGATE_CNTL_TP_BUSY_EXTEND_SIZE;
+ unsigned int tc_busy_extend : TP_TC_CLKGATE_CNTL_TC_BUSY_EXTEND_SIZE;
+ unsigned int : 26;
+ } tp_tc_clkgate_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tp_tc_clkgate_cntl_t {
+ unsigned int : 26;
+ unsigned int tc_busy_extend : TP_TC_CLKGATE_CNTL_TC_BUSY_EXTEND_SIZE;
+ unsigned int tp_busy_extend : TP_TC_CLKGATE_CNTL_TP_BUSY_EXTEND_SIZE;
+ } tp_tc_clkgate_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tp_tc_clkgate_cntl_t f;
+} tp_tc_clkgate_cntl_u;
+
+
+/*
+ * TPC_CNTL_STATUS struct
+ */
+
+#define TPC_CNTL_STATUS_TPC_INPUT_BUSY_SIZE 1
+#define TPC_CNTL_STATUS_TPC_TC_FIFO_BUSY_SIZE 1
+#define TPC_CNTL_STATUS_TPC_STATE_FIFO_BUSY_SIZE 1
+#define TPC_CNTL_STATUS_TPC_FETCH_FIFO_BUSY_SIZE 1
+#define TPC_CNTL_STATUS_TPC_WALKER_PIPE_BUSY_SIZE 1
+#define TPC_CNTL_STATUS_TPC_WALK_FIFO_BUSY_SIZE 1
+#define TPC_CNTL_STATUS_TPC_WALKER_BUSY_SIZE 1
+#define TPC_CNTL_STATUS_TPC_ALIGNER_PIPE_BUSY_SIZE 1
+#define TPC_CNTL_STATUS_TPC_ALIGN_FIFO_BUSY_SIZE 1
+#define TPC_CNTL_STATUS_TPC_ALIGNER_BUSY_SIZE 1
+#define TPC_CNTL_STATUS_TPC_RR_FIFO_BUSY_SIZE 1
+#define TPC_CNTL_STATUS_TPC_BLEND_PIPE_BUSY_SIZE 1
+#define TPC_CNTL_STATUS_TPC_OUT_FIFO_BUSY_SIZE 1
+#define TPC_CNTL_STATUS_TPC_BLEND_BUSY_SIZE 1
+#define TPC_CNTL_STATUS_TF_TW_RTS_SIZE 1
+#define TPC_CNTL_STATUS_TF_TW_STATE_RTS_SIZE 1
+#define TPC_CNTL_STATUS_TF_TW_RTR_SIZE 1
+#define TPC_CNTL_STATUS_TW_TA_RTS_SIZE 1
+#define TPC_CNTL_STATUS_TW_TA_TT_RTS_SIZE 1
+#define TPC_CNTL_STATUS_TW_TA_LAST_RTS_SIZE 1
+#define TPC_CNTL_STATUS_TW_TA_RTR_SIZE 1
+#define TPC_CNTL_STATUS_TA_TB_RTS_SIZE 1
+#define TPC_CNTL_STATUS_TA_TB_TT_RTS_SIZE 1
+#define TPC_CNTL_STATUS_TA_TB_RTR_SIZE 1
+#define TPC_CNTL_STATUS_TA_TF_RTS_SIZE 1
+#define TPC_CNTL_STATUS_TA_TF_TC_FIFO_REN_SIZE 1
+#define TPC_CNTL_STATUS_TP_SQ_DEC_SIZE 1
+#define TPC_CNTL_STATUS_TPC_BUSY_SIZE 1
+
+#define TPC_CNTL_STATUS_TPC_INPUT_BUSY_SHIFT 0
+#define TPC_CNTL_STATUS_TPC_TC_FIFO_BUSY_SHIFT 1
+#define TPC_CNTL_STATUS_TPC_STATE_FIFO_BUSY_SHIFT 2
+#define TPC_CNTL_STATUS_TPC_FETCH_FIFO_BUSY_SHIFT 3
+#define TPC_CNTL_STATUS_TPC_WALKER_PIPE_BUSY_SHIFT 4
+#define TPC_CNTL_STATUS_TPC_WALK_FIFO_BUSY_SHIFT 5
+#define TPC_CNTL_STATUS_TPC_WALKER_BUSY_SHIFT 6
+#define TPC_CNTL_STATUS_TPC_ALIGNER_PIPE_BUSY_SHIFT 8
+#define TPC_CNTL_STATUS_TPC_ALIGN_FIFO_BUSY_SHIFT 9
+#define TPC_CNTL_STATUS_TPC_ALIGNER_BUSY_SHIFT 10
+#define TPC_CNTL_STATUS_TPC_RR_FIFO_BUSY_SHIFT 12
+#define TPC_CNTL_STATUS_TPC_BLEND_PIPE_BUSY_SHIFT 13
+#define TPC_CNTL_STATUS_TPC_OUT_FIFO_BUSY_SHIFT 14
+#define TPC_CNTL_STATUS_TPC_BLEND_BUSY_SHIFT 15
+#define TPC_CNTL_STATUS_TF_TW_RTS_SHIFT 16
+#define TPC_CNTL_STATUS_TF_TW_STATE_RTS_SHIFT 17
+#define TPC_CNTL_STATUS_TF_TW_RTR_SHIFT 19
+#define TPC_CNTL_STATUS_TW_TA_RTS_SHIFT 20
+#define TPC_CNTL_STATUS_TW_TA_TT_RTS_SHIFT 21
+#define TPC_CNTL_STATUS_TW_TA_LAST_RTS_SHIFT 22
+#define TPC_CNTL_STATUS_TW_TA_RTR_SHIFT 23
+#define TPC_CNTL_STATUS_TA_TB_RTS_SHIFT 24
+#define TPC_CNTL_STATUS_TA_TB_TT_RTS_SHIFT 25
+#define TPC_CNTL_STATUS_TA_TB_RTR_SHIFT 27
+#define TPC_CNTL_STATUS_TA_TF_RTS_SHIFT 28
+#define TPC_CNTL_STATUS_TA_TF_TC_FIFO_REN_SHIFT 29
+#define TPC_CNTL_STATUS_TP_SQ_DEC_SHIFT 30
+#define TPC_CNTL_STATUS_TPC_BUSY_SHIFT 31
+
+#define TPC_CNTL_STATUS_TPC_INPUT_BUSY_MASK 0x00000001
+#define TPC_CNTL_STATUS_TPC_TC_FIFO_BUSY_MASK 0x00000002
+#define TPC_CNTL_STATUS_TPC_STATE_FIFO_BUSY_MASK 0x00000004
+#define TPC_CNTL_STATUS_TPC_FETCH_FIFO_BUSY_MASK 0x00000008
+#define TPC_CNTL_STATUS_TPC_WALKER_PIPE_BUSY_MASK 0x00000010
+#define TPC_CNTL_STATUS_TPC_WALK_FIFO_BUSY_MASK 0x00000020
+#define TPC_CNTL_STATUS_TPC_WALKER_BUSY_MASK 0x00000040
+#define TPC_CNTL_STATUS_TPC_ALIGNER_PIPE_BUSY_MASK 0x00000100
+#define TPC_CNTL_STATUS_TPC_ALIGN_FIFO_BUSY_MASK 0x00000200
+#define TPC_CNTL_STATUS_TPC_ALIGNER_BUSY_MASK 0x00000400
+#define TPC_CNTL_STATUS_TPC_RR_FIFO_BUSY_MASK 0x00001000
+#define TPC_CNTL_STATUS_TPC_BLEND_PIPE_BUSY_MASK 0x00002000
+#define TPC_CNTL_STATUS_TPC_OUT_FIFO_BUSY_MASK 0x00004000
+#define TPC_CNTL_STATUS_TPC_BLEND_BUSY_MASK 0x00008000
+#define TPC_CNTL_STATUS_TF_TW_RTS_MASK 0x00010000
+#define TPC_CNTL_STATUS_TF_TW_STATE_RTS_MASK 0x00020000
+#define TPC_CNTL_STATUS_TF_TW_RTR_MASK 0x00080000
+#define TPC_CNTL_STATUS_TW_TA_RTS_MASK 0x00100000
+#define TPC_CNTL_STATUS_TW_TA_TT_RTS_MASK 0x00200000
+#define TPC_CNTL_STATUS_TW_TA_LAST_RTS_MASK 0x00400000
+#define TPC_CNTL_STATUS_TW_TA_RTR_MASK 0x00800000
+#define TPC_CNTL_STATUS_TA_TB_RTS_MASK 0x01000000
+#define TPC_CNTL_STATUS_TA_TB_TT_RTS_MASK 0x02000000
+#define TPC_CNTL_STATUS_TA_TB_RTR_MASK 0x08000000
+#define TPC_CNTL_STATUS_TA_TF_RTS_MASK 0x10000000
+#define TPC_CNTL_STATUS_TA_TF_TC_FIFO_REN_MASK 0x20000000
+#define TPC_CNTL_STATUS_TP_SQ_DEC_MASK 0x40000000
+#define TPC_CNTL_STATUS_TPC_BUSY_MASK 0x80000000
+
+#define TPC_CNTL_STATUS_MASK \
+ (TPC_CNTL_STATUS_TPC_INPUT_BUSY_MASK | \
+ TPC_CNTL_STATUS_TPC_TC_FIFO_BUSY_MASK | \
+ TPC_CNTL_STATUS_TPC_STATE_FIFO_BUSY_MASK | \
+ TPC_CNTL_STATUS_TPC_FETCH_FIFO_BUSY_MASK | \
+ TPC_CNTL_STATUS_TPC_WALKER_PIPE_BUSY_MASK | \
+ TPC_CNTL_STATUS_TPC_WALK_FIFO_BUSY_MASK | \
+ TPC_CNTL_STATUS_TPC_WALKER_BUSY_MASK | \
+ TPC_CNTL_STATUS_TPC_ALIGNER_PIPE_BUSY_MASK | \
+ TPC_CNTL_STATUS_TPC_ALIGN_FIFO_BUSY_MASK | \
+ TPC_CNTL_STATUS_TPC_ALIGNER_BUSY_MASK | \
+ TPC_CNTL_STATUS_TPC_RR_FIFO_BUSY_MASK | \
+ TPC_CNTL_STATUS_TPC_BLEND_PIPE_BUSY_MASK | \
+ TPC_CNTL_STATUS_TPC_OUT_FIFO_BUSY_MASK | \
+ TPC_CNTL_STATUS_TPC_BLEND_BUSY_MASK | \
+ TPC_CNTL_STATUS_TF_TW_RTS_MASK | \
+ TPC_CNTL_STATUS_TF_TW_STATE_RTS_MASK | \
+ TPC_CNTL_STATUS_TF_TW_RTR_MASK | \
+ TPC_CNTL_STATUS_TW_TA_RTS_MASK | \
+ TPC_CNTL_STATUS_TW_TA_TT_RTS_MASK | \
+ TPC_CNTL_STATUS_TW_TA_LAST_RTS_MASK | \
+ TPC_CNTL_STATUS_TW_TA_RTR_MASK | \
+ TPC_CNTL_STATUS_TA_TB_RTS_MASK | \
+ TPC_CNTL_STATUS_TA_TB_TT_RTS_MASK | \
+ TPC_CNTL_STATUS_TA_TB_RTR_MASK | \
+ TPC_CNTL_STATUS_TA_TF_RTS_MASK | \
+ TPC_CNTL_STATUS_TA_TF_TC_FIFO_REN_MASK | \
+ TPC_CNTL_STATUS_TP_SQ_DEC_MASK | \
+ TPC_CNTL_STATUS_TPC_BUSY_MASK)
+
+#define TPC_CNTL_STATUS(tpc_input_busy, tpc_tc_fifo_busy, tpc_state_fifo_busy, tpc_fetch_fifo_busy, tpc_walker_pipe_busy, tpc_walk_fifo_busy, tpc_walker_busy, tpc_aligner_pipe_busy, tpc_align_fifo_busy, tpc_aligner_busy, tpc_rr_fifo_busy, tpc_blend_pipe_busy, tpc_out_fifo_busy, tpc_blend_busy, tf_tw_rts, tf_tw_state_rts, tf_tw_rtr, tw_ta_rts, tw_ta_tt_rts, tw_ta_last_rts, tw_ta_rtr, ta_tb_rts, ta_tb_tt_rts, ta_tb_rtr, ta_tf_rts, ta_tf_tc_fifo_ren, tp_sq_dec, tpc_busy) \
+ ((tpc_input_busy << TPC_CNTL_STATUS_TPC_INPUT_BUSY_SHIFT) | \
+ (tpc_tc_fifo_busy << TPC_CNTL_STATUS_TPC_TC_FIFO_BUSY_SHIFT) | \
+ (tpc_state_fifo_busy << TPC_CNTL_STATUS_TPC_STATE_FIFO_BUSY_SHIFT) | \
+ (tpc_fetch_fifo_busy << TPC_CNTL_STATUS_TPC_FETCH_FIFO_BUSY_SHIFT) | \
+ (tpc_walker_pipe_busy << TPC_CNTL_STATUS_TPC_WALKER_PIPE_BUSY_SHIFT) | \
+ (tpc_walk_fifo_busy << TPC_CNTL_STATUS_TPC_WALK_FIFO_BUSY_SHIFT) | \
+ (tpc_walker_busy << TPC_CNTL_STATUS_TPC_WALKER_BUSY_SHIFT) | \
+ (tpc_aligner_pipe_busy << TPC_CNTL_STATUS_TPC_ALIGNER_PIPE_BUSY_SHIFT) | \
+ (tpc_align_fifo_busy << TPC_CNTL_STATUS_TPC_ALIGN_FIFO_BUSY_SHIFT) | \
+ (tpc_aligner_busy << TPC_CNTL_STATUS_TPC_ALIGNER_BUSY_SHIFT) | \
+ (tpc_rr_fifo_busy << TPC_CNTL_STATUS_TPC_RR_FIFO_BUSY_SHIFT) | \
+ (tpc_blend_pipe_busy << TPC_CNTL_STATUS_TPC_BLEND_PIPE_BUSY_SHIFT) | \
+ (tpc_out_fifo_busy << TPC_CNTL_STATUS_TPC_OUT_FIFO_BUSY_SHIFT) | \
+ (tpc_blend_busy << TPC_CNTL_STATUS_TPC_BLEND_BUSY_SHIFT) | \
+ (tf_tw_rts << TPC_CNTL_STATUS_TF_TW_RTS_SHIFT) | \
+ (tf_tw_state_rts << TPC_CNTL_STATUS_TF_TW_STATE_RTS_SHIFT) | \
+ (tf_tw_rtr << TPC_CNTL_STATUS_TF_TW_RTR_SHIFT) | \
+ (tw_ta_rts << TPC_CNTL_STATUS_TW_TA_RTS_SHIFT) | \
+ (tw_ta_tt_rts << TPC_CNTL_STATUS_TW_TA_TT_RTS_SHIFT) | \
+ (tw_ta_last_rts << TPC_CNTL_STATUS_TW_TA_LAST_RTS_SHIFT) | \
+ (tw_ta_rtr << TPC_CNTL_STATUS_TW_TA_RTR_SHIFT) | \
+ (ta_tb_rts << TPC_CNTL_STATUS_TA_TB_RTS_SHIFT) | \
+ (ta_tb_tt_rts << TPC_CNTL_STATUS_TA_TB_TT_RTS_SHIFT) | \
+ (ta_tb_rtr << TPC_CNTL_STATUS_TA_TB_RTR_SHIFT) | \
+ (ta_tf_rts << TPC_CNTL_STATUS_TA_TF_RTS_SHIFT) | \
+ (ta_tf_tc_fifo_ren << TPC_CNTL_STATUS_TA_TF_TC_FIFO_REN_SHIFT) | \
+ (tp_sq_dec << TPC_CNTL_STATUS_TP_SQ_DEC_SHIFT) | \
+ (tpc_busy << TPC_CNTL_STATUS_TPC_BUSY_SHIFT))
+
+#define TPC_CNTL_STATUS_GET_TPC_INPUT_BUSY(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TPC_INPUT_BUSY_MASK) >> TPC_CNTL_STATUS_TPC_INPUT_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_GET_TPC_TC_FIFO_BUSY(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TPC_TC_FIFO_BUSY_MASK) >> TPC_CNTL_STATUS_TPC_TC_FIFO_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_GET_TPC_STATE_FIFO_BUSY(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TPC_STATE_FIFO_BUSY_MASK) >> TPC_CNTL_STATUS_TPC_STATE_FIFO_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_GET_TPC_FETCH_FIFO_BUSY(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TPC_FETCH_FIFO_BUSY_MASK) >> TPC_CNTL_STATUS_TPC_FETCH_FIFO_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_GET_TPC_WALKER_PIPE_BUSY(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TPC_WALKER_PIPE_BUSY_MASK) >> TPC_CNTL_STATUS_TPC_WALKER_PIPE_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_GET_TPC_WALK_FIFO_BUSY(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TPC_WALK_FIFO_BUSY_MASK) >> TPC_CNTL_STATUS_TPC_WALK_FIFO_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_GET_TPC_WALKER_BUSY(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TPC_WALKER_BUSY_MASK) >> TPC_CNTL_STATUS_TPC_WALKER_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_GET_TPC_ALIGNER_PIPE_BUSY(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TPC_ALIGNER_PIPE_BUSY_MASK) >> TPC_CNTL_STATUS_TPC_ALIGNER_PIPE_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_GET_TPC_ALIGN_FIFO_BUSY(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TPC_ALIGN_FIFO_BUSY_MASK) >> TPC_CNTL_STATUS_TPC_ALIGN_FIFO_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_GET_TPC_ALIGNER_BUSY(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TPC_ALIGNER_BUSY_MASK) >> TPC_CNTL_STATUS_TPC_ALIGNER_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_GET_TPC_RR_FIFO_BUSY(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TPC_RR_FIFO_BUSY_MASK) >> TPC_CNTL_STATUS_TPC_RR_FIFO_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_GET_TPC_BLEND_PIPE_BUSY(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TPC_BLEND_PIPE_BUSY_MASK) >> TPC_CNTL_STATUS_TPC_BLEND_PIPE_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_GET_TPC_OUT_FIFO_BUSY(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TPC_OUT_FIFO_BUSY_MASK) >> TPC_CNTL_STATUS_TPC_OUT_FIFO_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_GET_TPC_BLEND_BUSY(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TPC_BLEND_BUSY_MASK) >> TPC_CNTL_STATUS_TPC_BLEND_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_GET_TF_TW_RTS(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TF_TW_RTS_MASK) >> TPC_CNTL_STATUS_TF_TW_RTS_SHIFT)
+#define TPC_CNTL_STATUS_GET_TF_TW_STATE_RTS(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TF_TW_STATE_RTS_MASK) >> TPC_CNTL_STATUS_TF_TW_STATE_RTS_SHIFT)
+#define TPC_CNTL_STATUS_GET_TF_TW_RTR(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TF_TW_RTR_MASK) >> TPC_CNTL_STATUS_TF_TW_RTR_SHIFT)
+#define TPC_CNTL_STATUS_GET_TW_TA_RTS(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TW_TA_RTS_MASK) >> TPC_CNTL_STATUS_TW_TA_RTS_SHIFT)
+#define TPC_CNTL_STATUS_GET_TW_TA_TT_RTS(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TW_TA_TT_RTS_MASK) >> TPC_CNTL_STATUS_TW_TA_TT_RTS_SHIFT)
+#define TPC_CNTL_STATUS_GET_TW_TA_LAST_RTS(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TW_TA_LAST_RTS_MASK) >> TPC_CNTL_STATUS_TW_TA_LAST_RTS_SHIFT)
+#define TPC_CNTL_STATUS_GET_TW_TA_RTR(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TW_TA_RTR_MASK) >> TPC_CNTL_STATUS_TW_TA_RTR_SHIFT)
+#define TPC_CNTL_STATUS_GET_TA_TB_RTS(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TA_TB_RTS_MASK) >> TPC_CNTL_STATUS_TA_TB_RTS_SHIFT)
+#define TPC_CNTL_STATUS_GET_TA_TB_TT_RTS(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TA_TB_TT_RTS_MASK) >> TPC_CNTL_STATUS_TA_TB_TT_RTS_SHIFT)
+#define TPC_CNTL_STATUS_GET_TA_TB_RTR(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TA_TB_RTR_MASK) >> TPC_CNTL_STATUS_TA_TB_RTR_SHIFT)
+#define TPC_CNTL_STATUS_GET_TA_TF_RTS(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TA_TF_RTS_MASK) >> TPC_CNTL_STATUS_TA_TF_RTS_SHIFT)
+#define TPC_CNTL_STATUS_GET_TA_TF_TC_FIFO_REN(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TA_TF_TC_FIFO_REN_MASK) >> TPC_CNTL_STATUS_TA_TF_TC_FIFO_REN_SHIFT)
+#define TPC_CNTL_STATUS_GET_TP_SQ_DEC(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TP_SQ_DEC_MASK) >> TPC_CNTL_STATUS_TP_SQ_DEC_SHIFT)
+#define TPC_CNTL_STATUS_GET_TPC_BUSY(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TPC_BUSY_MASK) >> TPC_CNTL_STATUS_TPC_BUSY_SHIFT)
+
+#define TPC_CNTL_STATUS_SET_TPC_INPUT_BUSY(tpc_cntl_status_reg, tpc_input_busy) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TPC_INPUT_BUSY_MASK) | (tpc_input_busy << TPC_CNTL_STATUS_TPC_INPUT_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_SET_TPC_TC_FIFO_BUSY(tpc_cntl_status_reg, tpc_tc_fifo_busy) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TPC_TC_FIFO_BUSY_MASK) | (tpc_tc_fifo_busy << TPC_CNTL_STATUS_TPC_TC_FIFO_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_SET_TPC_STATE_FIFO_BUSY(tpc_cntl_status_reg, tpc_state_fifo_busy) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TPC_STATE_FIFO_BUSY_MASK) | (tpc_state_fifo_busy << TPC_CNTL_STATUS_TPC_STATE_FIFO_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_SET_TPC_FETCH_FIFO_BUSY(tpc_cntl_status_reg, tpc_fetch_fifo_busy) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TPC_FETCH_FIFO_BUSY_MASK) | (tpc_fetch_fifo_busy << TPC_CNTL_STATUS_TPC_FETCH_FIFO_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_SET_TPC_WALKER_PIPE_BUSY(tpc_cntl_status_reg, tpc_walker_pipe_busy) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TPC_WALKER_PIPE_BUSY_MASK) | (tpc_walker_pipe_busy << TPC_CNTL_STATUS_TPC_WALKER_PIPE_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_SET_TPC_WALK_FIFO_BUSY(tpc_cntl_status_reg, tpc_walk_fifo_busy) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TPC_WALK_FIFO_BUSY_MASK) | (tpc_walk_fifo_busy << TPC_CNTL_STATUS_TPC_WALK_FIFO_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_SET_TPC_WALKER_BUSY(tpc_cntl_status_reg, tpc_walker_busy) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TPC_WALKER_BUSY_MASK) | (tpc_walker_busy << TPC_CNTL_STATUS_TPC_WALKER_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_SET_TPC_ALIGNER_PIPE_BUSY(tpc_cntl_status_reg, tpc_aligner_pipe_busy) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TPC_ALIGNER_PIPE_BUSY_MASK) | (tpc_aligner_pipe_busy << TPC_CNTL_STATUS_TPC_ALIGNER_PIPE_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_SET_TPC_ALIGN_FIFO_BUSY(tpc_cntl_status_reg, tpc_align_fifo_busy) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TPC_ALIGN_FIFO_BUSY_MASK) | (tpc_align_fifo_busy << TPC_CNTL_STATUS_TPC_ALIGN_FIFO_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_SET_TPC_ALIGNER_BUSY(tpc_cntl_status_reg, tpc_aligner_busy) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TPC_ALIGNER_BUSY_MASK) | (tpc_aligner_busy << TPC_CNTL_STATUS_TPC_ALIGNER_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_SET_TPC_RR_FIFO_BUSY(tpc_cntl_status_reg, tpc_rr_fifo_busy) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TPC_RR_FIFO_BUSY_MASK) | (tpc_rr_fifo_busy << TPC_CNTL_STATUS_TPC_RR_FIFO_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_SET_TPC_BLEND_PIPE_BUSY(tpc_cntl_status_reg, tpc_blend_pipe_busy) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TPC_BLEND_PIPE_BUSY_MASK) | (tpc_blend_pipe_busy << TPC_CNTL_STATUS_TPC_BLEND_PIPE_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_SET_TPC_OUT_FIFO_BUSY(tpc_cntl_status_reg, tpc_out_fifo_busy) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TPC_OUT_FIFO_BUSY_MASK) | (tpc_out_fifo_busy << TPC_CNTL_STATUS_TPC_OUT_FIFO_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_SET_TPC_BLEND_BUSY(tpc_cntl_status_reg, tpc_blend_busy) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TPC_BLEND_BUSY_MASK) | (tpc_blend_busy << TPC_CNTL_STATUS_TPC_BLEND_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_SET_TF_TW_RTS(tpc_cntl_status_reg, tf_tw_rts) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TF_TW_RTS_MASK) | (tf_tw_rts << TPC_CNTL_STATUS_TF_TW_RTS_SHIFT)
+#define TPC_CNTL_STATUS_SET_TF_TW_STATE_RTS(tpc_cntl_status_reg, tf_tw_state_rts) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TF_TW_STATE_RTS_MASK) | (tf_tw_state_rts << TPC_CNTL_STATUS_TF_TW_STATE_RTS_SHIFT)
+#define TPC_CNTL_STATUS_SET_TF_TW_RTR(tpc_cntl_status_reg, tf_tw_rtr) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TF_TW_RTR_MASK) | (tf_tw_rtr << TPC_CNTL_STATUS_TF_TW_RTR_SHIFT)
+#define TPC_CNTL_STATUS_SET_TW_TA_RTS(tpc_cntl_status_reg, tw_ta_rts) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TW_TA_RTS_MASK) | (tw_ta_rts << TPC_CNTL_STATUS_TW_TA_RTS_SHIFT)
+#define TPC_CNTL_STATUS_SET_TW_TA_TT_RTS(tpc_cntl_status_reg, tw_ta_tt_rts) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TW_TA_TT_RTS_MASK) | (tw_ta_tt_rts << TPC_CNTL_STATUS_TW_TA_TT_RTS_SHIFT)
+#define TPC_CNTL_STATUS_SET_TW_TA_LAST_RTS(tpc_cntl_status_reg, tw_ta_last_rts) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TW_TA_LAST_RTS_MASK) | (tw_ta_last_rts << TPC_CNTL_STATUS_TW_TA_LAST_RTS_SHIFT)
+#define TPC_CNTL_STATUS_SET_TW_TA_RTR(tpc_cntl_status_reg, tw_ta_rtr) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TW_TA_RTR_MASK) | (tw_ta_rtr << TPC_CNTL_STATUS_TW_TA_RTR_SHIFT)
+#define TPC_CNTL_STATUS_SET_TA_TB_RTS(tpc_cntl_status_reg, ta_tb_rts) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TA_TB_RTS_MASK) | (ta_tb_rts << TPC_CNTL_STATUS_TA_TB_RTS_SHIFT)
+#define TPC_CNTL_STATUS_SET_TA_TB_TT_RTS(tpc_cntl_status_reg, ta_tb_tt_rts) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TA_TB_TT_RTS_MASK) | (ta_tb_tt_rts << TPC_CNTL_STATUS_TA_TB_TT_RTS_SHIFT)
+#define TPC_CNTL_STATUS_SET_TA_TB_RTR(tpc_cntl_status_reg, ta_tb_rtr) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TA_TB_RTR_MASK) | (ta_tb_rtr << TPC_CNTL_STATUS_TA_TB_RTR_SHIFT)
+#define TPC_CNTL_STATUS_SET_TA_TF_RTS(tpc_cntl_status_reg, ta_tf_rts) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TA_TF_RTS_MASK) | (ta_tf_rts << TPC_CNTL_STATUS_TA_TF_RTS_SHIFT)
+#define TPC_CNTL_STATUS_SET_TA_TF_TC_FIFO_REN(tpc_cntl_status_reg, ta_tf_tc_fifo_ren) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TA_TF_TC_FIFO_REN_MASK) | (ta_tf_tc_fifo_ren << TPC_CNTL_STATUS_TA_TF_TC_FIFO_REN_SHIFT)
+#define TPC_CNTL_STATUS_SET_TP_SQ_DEC(tpc_cntl_status_reg, tp_sq_dec) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TP_SQ_DEC_MASK) | (tp_sq_dec << TPC_CNTL_STATUS_TP_SQ_DEC_SHIFT)
+#define TPC_CNTL_STATUS_SET_TPC_BUSY(tpc_cntl_status_reg, tpc_busy) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TPC_BUSY_MASK) | (tpc_busy << TPC_CNTL_STATUS_TPC_BUSY_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tpc_cntl_status_t {
+ unsigned int tpc_input_busy : TPC_CNTL_STATUS_TPC_INPUT_BUSY_SIZE;
+ unsigned int tpc_tc_fifo_busy : TPC_CNTL_STATUS_TPC_TC_FIFO_BUSY_SIZE;
+ unsigned int tpc_state_fifo_busy : TPC_CNTL_STATUS_TPC_STATE_FIFO_BUSY_SIZE;
+ unsigned int tpc_fetch_fifo_busy : TPC_CNTL_STATUS_TPC_FETCH_FIFO_BUSY_SIZE;
+ unsigned int tpc_walker_pipe_busy : TPC_CNTL_STATUS_TPC_WALKER_PIPE_BUSY_SIZE;
+ unsigned int tpc_walk_fifo_busy : TPC_CNTL_STATUS_TPC_WALK_FIFO_BUSY_SIZE;
+ unsigned int tpc_walker_busy : TPC_CNTL_STATUS_TPC_WALKER_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int tpc_aligner_pipe_busy : TPC_CNTL_STATUS_TPC_ALIGNER_PIPE_BUSY_SIZE;
+ unsigned int tpc_align_fifo_busy : TPC_CNTL_STATUS_TPC_ALIGN_FIFO_BUSY_SIZE;
+ unsigned int tpc_aligner_busy : TPC_CNTL_STATUS_TPC_ALIGNER_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int tpc_rr_fifo_busy : TPC_CNTL_STATUS_TPC_RR_FIFO_BUSY_SIZE;
+ unsigned int tpc_blend_pipe_busy : TPC_CNTL_STATUS_TPC_BLEND_PIPE_BUSY_SIZE;
+ unsigned int tpc_out_fifo_busy : TPC_CNTL_STATUS_TPC_OUT_FIFO_BUSY_SIZE;
+ unsigned int tpc_blend_busy : TPC_CNTL_STATUS_TPC_BLEND_BUSY_SIZE;
+ unsigned int tf_tw_rts : TPC_CNTL_STATUS_TF_TW_RTS_SIZE;
+ unsigned int tf_tw_state_rts : TPC_CNTL_STATUS_TF_TW_STATE_RTS_SIZE;
+ unsigned int : 1;
+ unsigned int tf_tw_rtr : TPC_CNTL_STATUS_TF_TW_RTR_SIZE;
+ unsigned int tw_ta_rts : TPC_CNTL_STATUS_TW_TA_RTS_SIZE;
+ unsigned int tw_ta_tt_rts : TPC_CNTL_STATUS_TW_TA_TT_RTS_SIZE;
+ unsigned int tw_ta_last_rts : TPC_CNTL_STATUS_TW_TA_LAST_RTS_SIZE;
+ unsigned int tw_ta_rtr : TPC_CNTL_STATUS_TW_TA_RTR_SIZE;
+ unsigned int ta_tb_rts : TPC_CNTL_STATUS_TA_TB_RTS_SIZE;
+ unsigned int ta_tb_tt_rts : TPC_CNTL_STATUS_TA_TB_TT_RTS_SIZE;
+ unsigned int : 1;
+ unsigned int ta_tb_rtr : TPC_CNTL_STATUS_TA_TB_RTR_SIZE;
+ unsigned int ta_tf_rts : TPC_CNTL_STATUS_TA_TF_RTS_SIZE;
+ unsigned int ta_tf_tc_fifo_ren : TPC_CNTL_STATUS_TA_TF_TC_FIFO_REN_SIZE;
+ unsigned int tp_sq_dec : TPC_CNTL_STATUS_TP_SQ_DEC_SIZE;
+ unsigned int tpc_busy : TPC_CNTL_STATUS_TPC_BUSY_SIZE;
+ } tpc_cntl_status_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tpc_cntl_status_t {
+ unsigned int tpc_busy : TPC_CNTL_STATUS_TPC_BUSY_SIZE;
+ unsigned int tp_sq_dec : TPC_CNTL_STATUS_TP_SQ_DEC_SIZE;
+ unsigned int ta_tf_tc_fifo_ren : TPC_CNTL_STATUS_TA_TF_TC_FIFO_REN_SIZE;
+ unsigned int ta_tf_rts : TPC_CNTL_STATUS_TA_TF_RTS_SIZE;
+ unsigned int ta_tb_rtr : TPC_CNTL_STATUS_TA_TB_RTR_SIZE;
+ unsigned int : 1;
+ unsigned int ta_tb_tt_rts : TPC_CNTL_STATUS_TA_TB_TT_RTS_SIZE;
+ unsigned int ta_tb_rts : TPC_CNTL_STATUS_TA_TB_RTS_SIZE;
+ unsigned int tw_ta_rtr : TPC_CNTL_STATUS_TW_TA_RTR_SIZE;
+ unsigned int tw_ta_last_rts : TPC_CNTL_STATUS_TW_TA_LAST_RTS_SIZE;
+ unsigned int tw_ta_tt_rts : TPC_CNTL_STATUS_TW_TA_TT_RTS_SIZE;
+ unsigned int tw_ta_rts : TPC_CNTL_STATUS_TW_TA_RTS_SIZE;
+ unsigned int tf_tw_rtr : TPC_CNTL_STATUS_TF_TW_RTR_SIZE;
+ unsigned int : 1;
+ unsigned int tf_tw_state_rts : TPC_CNTL_STATUS_TF_TW_STATE_RTS_SIZE;
+ unsigned int tf_tw_rts : TPC_CNTL_STATUS_TF_TW_RTS_SIZE;
+ unsigned int tpc_blend_busy : TPC_CNTL_STATUS_TPC_BLEND_BUSY_SIZE;
+ unsigned int tpc_out_fifo_busy : TPC_CNTL_STATUS_TPC_OUT_FIFO_BUSY_SIZE;
+ unsigned int tpc_blend_pipe_busy : TPC_CNTL_STATUS_TPC_BLEND_PIPE_BUSY_SIZE;
+ unsigned int tpc_rr_fifo_busy : TPC_CNTL_STATUS_TPC_RR_FIFO_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int tpc_aligner_busy : TPC_CNTL_STATUS_TPC_ALIGNER_BUSY_SIZE;
+ unsigned int tpc_align_fifo_busy : TPC_CNTL_STATUS_TPC_ALIGN_FIFO_BUSY_SIZE;
+ unsigned int tpc_aligner_pipe_busy : TPC_CNTL_STATUS_TPC_ALIGNER_PIPE_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int tpc_walker_busy : TPC_CNTL_STATUS_TPC_WALKER_BUSY_SIZE;
+ unsigned int tpc_walk_fifo_busy : TPC_CNTL_STATUS_TPC_WALK_FIFO_BUSY_SIZE;
+ unsigned int tpc_walker_pipe_busy : TPC_CNTL_STATUS_TPC_WALKER_PIPE_BUSY_SIZE;
+ unsigned int tpc_fetch_fifo_busy : TPC_CNTL_STATUS_TPC_FETCH_FIFO_BUSY_SIZE;
+ unsigned int tpc_state_fifo_busy : TPC_CNTL_STATUS_TPC_STATE_FIFO_BUSY_SIZE;
+ unsigned int tpc_tc_fifo_busy : TPC_CNTL_STATUS_TPC_TC_FIFO_BUSY_SIZE;
+ unsigned int tpc_input_busy : TPC_CNTL_STATUS_TPC_INPUT_BUSY_SIZE;
+ } tpc_cntl_status_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tpc_cntl_status_t f;
+} tpc_cntl_status_u;
+
+
+/*
+ * TPC_DEBUG0 struct
+ */
+
+#define TPC_DEBUG0_LOD_CNTL_SIZE 2
+#define TPC_DEBUG0_IC_CTR_SIZE 2
+#define TPC_DEBUG0_WALKER_CNTL_SIZE 4
+#define TPC_DEBUG0_ALIGNER_CNTL_SIZE 3
+#define TPC_DEBUG0_PREV_TC_STATE_VALID_SIZE 1
+#define TPC_DEBUG0_WALKER_STATE_SIZE 10
+#define TPC_DEBUG0_ALIGNER_STATE_SIZE 2
+#define TPC_DEBUG0_REG_CLK_EN_SIZE 1
+#define TPC_DEBUG0_TPC_CLK_EN_SIZE 1
+#define TPC_DEBUG0_SQ_TP_WAKEUP_SIZE 1
+
+#define TPC_DEBUG0_LOD_CNTL_SHIFT 0
+#define TPC_DEBUG0_IC_CTR_SHIFT 2
+#define TPC_DEBUG0_WALKER_CNTL_SHIFT 4
+#define TPC_DEBUG0_ALIGNER_CNTL_SHIFT 8
+#define TPC_DEBUG0_PREV_TC_STATE_VALID_SHIFT 12
+#define TPC_DEBUG0_WALKER_STATE_SHIFT 16
+#define TPC_DEBUG0_ALIGNER_STATE_SHIFT 26
+#define TPC_DEBUG0_REG_CLK_EN_SHIFT 29
+#define TPC_DEBUG0_TPC_CLK_EN_SHIFT 30
+#define TPC_DEBUG0_SQ_TP_WAKEUP_SHIFT 31
+
+#define TPC_DEBUG0_LOD_CNTL_MASK 0x00000003
+#define TPC_DEBUG0_IC_CTR_MASK 0x0000000c
+#define TPC_DEBUG0_WALKER_CNTL_MASK 0x000000f0
+#define TPC_DEBUG0_ALIGNER_CNTL_MASK 0x00000700
+#define TPC_DEBUG0_PREV_TC_STATE_VALID_MASK 0x00001000
+#define TPC_DEBUG0_WALKER_STATE_MASK 0x03ff0000
+#define TPC_DEBUG0_ALIGNER_STATE_MASK 0x0c000000
+#define TPC_DEBUG0_REG_CLK_EN_MASK 0x20000000
+#define TPC_DEBUG0_TPC_CLK_EN_MASK 0x40000000
+#define TPC_DEBUG0_SQ_TP_WAKEUP_MASK 0x80000000
+
+#define TPC_DEBUG0_MASK \
+ (TPC_DEBUG0_LOD_CNTL_MASK | \
+ TPC_DEBUG0_IC_CTR_MASK | \
+ TPC_DEBUG0_WALKER_CNTL_MASK | \
+ TPC_DEBUG0_ALIGNER_CNTL_MASK | \
+ TPC_DEBUG0_PREV_TC_STATE_VALID_MASK | \
+ TPC_DEBUG0_WALKER_STATE_MASK | \
+ TPC_DEBUG0_ALIGNER_STATE_MASK | \
+ TPC_DEBUG0_REG_CLK_EN_MASK | \
+ TPC_DEBUG0_TPC_CLK_EN_MASK | \
+ TPC_DEBUG0_SQ_TP_WAKEUP_MASK)
+
+#define TPC_DEBUG0(lod_cntl, ic_ctr, walker_cntl, aligner_cntl, prev_tc_state_valid, walker_state, aligner_state, reg_clk_en, tpc_clk_en, sq_tp_wakeup) \
+ ((lod_cntl << TPC_DEBUG0_LOD_CNTL_SHIFT) | \
+ (ic_ctr << TPC_DEBUG0_IC_CTR_SHIFT) | \
+ (walker_cntl << TPC_DEBUG0_WALKER_CNTL_SHIFT) | \
+ (aligner_cntl << TPC_DEBUG0_ALIGNER_CNTL_SHIFT) | \
+ (prev_tc_state_valid << TPC_DEBUG0_PREV_TC_STATE_VALID_SHIFT) | \
+ (walker_state << TPC_DEBUG0_WALKER_STATE_SHIFT) | \
+ (aligner_state << TPC_DEBUG0_ALIGNER_STATE_SHIFT) | \
+ (reg_clk_en << TPC_DEBUG0_REG_CLK_EN_SHIFT) | \
+ (tpc_clk_en << TPC_DEBUG0_TPC_CLK_EN_SHIFT) | \
+ (sq_tp_wakeup << TPC_DEBUG0_SQ_TP_WAKEUP_SHIFT))
+
+#define TPC_DEBUG0_GET_LOD_CNTL(tpc_debug0) \
+ ((tpc_debug0 & TPC_DEBUG0_LOD_CNTL_MASK) >> TPC_DEBUG0_LOD_CNTL_SHIFT)
+#define TPC_DEBUG0_GET_IC_CTR(tpc_debug0) \
+ ((tpc_debug0 & TPC_DEBUG0_IC_CTR_MASK) >> TPC_DEBUG0_IC_CTR_SHIFT)
+#define TPC_DEBUG0_GET_WALKER_CNTL(tpc_debug0) \
+ ((tpc_debug0 & TPC_DEBUG0_WALKER_CNTL_MASK) >> TPC_DEBUG0_WALKER_CNTL_SHIFT)
+#define TPC_DEBUG0_GET_ALIGNER_CNTL(tpc_debug0) \
+ ((tpc_debug0 & TPC_DEBUG0_ALIGNER_CNTL_MASK) >> TPC_DEBUG0_ALIGNER_CNTL_SHIFT)
+#define TPC_DEBUG0_GET_PREV_TC_STATE_VALID(tpc_debug0) \
+ ((tpc_debug0 & TPC_DEBUG0_PREV_TC_STATE_VALID_MASK) >> TPC_DEBUG0_PREV_TC_STATE_VALID_SHIFT)
+#define TPC_DEBUG0_GET_WALKER_STATE(tpc_debug0) \
+ ((tpc_debug0 & TPC_DEBUG0_WALKER_STATE_MASK) >> TPC_DEBUG0_WALKER_STATE_SHIFT)
+#define TPC_DEBUG0_GET_ALIGNER_STATE(tpc_debug0) \
+ ((tpc_debug0 & TPC_DEBUG0_ALIGNER_STATE_MASK) >> TPC_DEBUG0_ALIGNER_STATE_SHIFT)
+#define TPC_DEBUG0_GET_REG_CLK_EN(tpc_debug0) \
+ ((tpc_debug0 & TPC_DEBUG0_REG_CLK_EN_MASK) >> TPC_DEBUG0_REG_CLK_EN_SHIFT)
+#define TPC_DEBUG0_GET_TPC_CLK_EN(tpc_debug0) \
+ ((tpc_debug0 & TPC_DEBUG0_TPC_CLK_EN_MASK) >> TPC_DEBUG0_TPC_CLK_EN_SHIFT)
+#define TPC_DEBUG0_GET_SQ_TP_WAKEUP(tpc_debug0) \
+ ((tpc_debug0 & TPC_DEBUG0_SQ_TP_WAKEUP_MASK) >> TPC_DEBUG0_SQ_TP_WAKEUP_SHIFT)
+
+#define TPC_DEBUG0_SET_LOD_CNTL(tpc_debug0_reg, lod_cntl) \
+ tpc_debug0_reg = (tpc_debug0_reg & ~TPC_DEBUG0_LOD_CNTL_MASK) | (lod_cntl << TPC_DEBUG0_LOD_CNTL_SHIFT)
+#define TPC_DEBUG0_SET_IC_CTR(tpc_debug0_reg, ic_ctr) \
+ tpc_debug0_reg = (tpc_debug0_reg & ~TPC_DEBUG0_IC_CTR_MASK) | (ic_ctr << TPC_DEBUG0_IC_CTR_SHIFT)
+#define TPC_DEBUG0_SET_WALKER_CNTL(tpc_debug0_reg, walker_cntl) \
+ tpc_debug0_reg = (tpc_debug0_reg & ~TPC_DEBUG0_WALKER_CNTL_MASK) | (walker_cntl << TPC_DEBUG0_WALKER_CNTL_SHIFT)
+#define TPC_DEBUG0_SET_ALIGNER_CNTL(tpc_debug0_reg, aligner_cntl) \
+ tpc_debug0_reg = (tpc_debug0_reg & ~TPC_DEBUG0_ALIGNER_CNTL_MASK) | (aligner_cntl << TPC_DEBUG0_ALIGNER_CNTL_SHIFT)
+#define TPC_DEBUG0_SET_PREV_TC_STATE_VALID(tpc_debug0_reg, prev_tc_state_valid) \
+ tpc_debug0_reg = (tpc_debug0_reg & ~TPC_DEBUG0_PREV_TC_STATE_VALID_MASK) | (prev_tc_state_valid << TPC_DEBUG0_PREV_TC_STATE_VALID_SHIFT)
+#define TPC_DEBUG0_SET_WALKER_STATE(tpc_debug0_reg, walker_state) \
+ tpc_debug0_reg = (tpc_debug0_reg & ~TPC_DEBUG0_WALKER_STATE_MASK) | (walker_state << TPC_DEBUG0_WALKER_STATE_SHIFT)
+#define TPC_DEBUG0_SET_ALIGNER_STATE(tpc_debug0_reg, aligner_state) \
+ tpc_debug0_reg = (tpc_debug0_reg & ~TPC_DEBUG0_ALIGNER_STATE_MASK) | (aligner_state << TPC_DEBUG0_ALIGNER_STATE_SHIFT)
+#define TPC_DEBUG0_SET_REG_CLK_EN(tpc_debug0_reg, reg_clk_en) \
+ tpc_debug0_reg = (tpc_debug0_reg & ~TPC_DEBUG0_REG_CLK_EN_MASK) | (reg_clk_en << TPC_DEBUG0_REG_CLK_EN_SHIFT)
+#define TPC_DEBUG0_SET_TPC_CLK_EN(tpc_debug0_reg, tpc_clk_en) \
+ tpc_debug0_reg = (tpc_debug0_reg & ~TPC_DEBUG0_TPC_CLK_EN_MASK) | (tpc_clk_en << TPC_DEBUG0_TPC_CLK_EN_SHIFT)
+#define TPC_DEBUG0_SET_SQ_TP_WAKEUP(tpc_debug0_reg, sq_tp_wakeup) \
+ tpc_debug0_reg = (tpc_debug0_reg & ~TPC_DEBUG0_SQ_TP_WAKEUP_MASK) | (sq_tp_wakeup << TPC_DEBUG0_SQ_TP_WAKEUP_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tpc_debug0_t {
+ unsigned int lod_cntl : TPC_DEBUG0_LOD_CNTL_SIZE;
+ unsigned int ic_ctr : TPC_DEBUG0_IC_CTR_SIZE;
+ unsigned int walker_cntl : TPC_DEBUG0_WALKER_CNTL_SIZE;
+ unsigned int aligner_cntl : TPC_DEBUG0_ALIGNER_CNTL_SIZE;
+ unsigned int : 1;
+ unsigned int prev_tc_state_valid : TPC_DEBUG0_PREV_TC_STATE_VALID_SIZE;
+ unsigned int : 3;
+ unsigned int walker_state : TPC_DEBUG0_WALKER_STATE_SIZE;
+ unsigned int aligner_state : TPC_DEBUG0_ALIGNER_STATE_SIZE;
+ unsigned int : 1;
+ unsigned int reg_clk_en : TPC_DEBUG0_REG_CLK_EN_SIZE;
+ unsigned int tpc_clk_en : TPC_DEBUG0_TPC_CLK_EN_SIZE;
+ unsigned int sq_tp_wakeup : TPC_DEBUG0_SQ_TP_WAKEUP_SIZE;
+ } tpc_debug0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tpc_debug0_t {
+ unsigned int sq_tp_wakeup : TPC_DEBUG0_SQ_TP_WAKEUP_SIZE;
+ unsigned int tpc_clk_en : TPC_DEBUG0_TPC_CLK_EN_SIZE;
+ unsigned int reg_clk_en : TPC_DEBUG0_REG_CLK_EN_SIZE;
+ unsigned int : 1;
+ unsigned int aligner_state : TPC_DEBUG0_ALIGNER_STATE_SIZE;
+ unsigned int walker_state : TPC_DEBUG0_WALKER_STATE_SIZE;
+ unsigned int : 3;
+ unsigned int prev_tc_state_valid : TPC_DEBUG0_PREV_TC_STATE_VALID_SIZE;
+ unsigned int : 1;
+ unsigned int aligner_cntl : TPC_DEBUG0_ALIGNER_CNTL_SIZE;
+ unsigned int walker_cntl : TPC_DEBUG0_WALKER_CNTL_SIZE;
+ unsigned int ic_ctr : TPC_DEBUG0_IC_CTR_SIZE;
+ unsigned int lod_cntl : TPC_DEBUG0_LOD_CNTL_SIZE;
+ } tpc_debug0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tpc_debug0_t f;
+} tpc_debug0_u;
+
+
+/*
+ * TPC_DEBUG1 struct
+ */
+
+#define TPC_DEBUG1_UNUSED_SIZE 1
+
+#define TPC_DEBUG1_UNUSED_SHIFT 0
+
+#define TPC_DEBUG1_UNUSED_MASK 0x00000001
+
+#define TPC_DEBUG1_MASK \
+ (TPC_DEBUG1_UNUSED_MASK)
+
+#define TPC_DEBUG1(unused) \
+ ((unused << TPC_DEBUG1_UNUSED_SHIFT))
+
+#define TPC_DEBUG1_GET_UNUSED(tpc_debug1) \
+ ((tpc_debug1 & TPC_DEBUG1_UNUSED_MASK) >> TPC_DEBUG1_UNUSED_SHIFT)
+
+#define TPC_DEBUG1_SET_UNUSED(tpc_debug1_reg, unused) \
+ tpc_debug1_reg = (tpc_debug1_reg & ~TPC_DEBUG1_UNUSED_MASK) | (unused << TPC_DEBUG1_UNUSED_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tpc_debug1_t {
+ unsigned int unused : TPC_DEBUG1_UNUSED_SIZE;
+ unsigned int : 31;
+ } tpc_debug1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tpc_debug1_t {
+ unsigned int : 31;
+ unsigned int unused : TPC_DEBUG1_UNUSED_SIZE;
+ } tpc_debug1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tpc_debug1_t f;
+} tpc_debug1_u;
+
+
+/*
+ * TPC_CHICKEN struct
+ */
+
+#define TPC_CHICKEN_BLEND_PRECISION_SIZE 1
+#define TPC_CHICKEN_SPARE_SIZE 31
+
+#define TPC_CHICKEN_BLEND_PRECISION_SHIFT 0
+#define TPC_CHICKEN_SPARE_SHIFT 1
+
+#define TPC_CHICKEN_BLEND_PRECISION_MASK 0x00000001
+#define TPC_CHICKEN_SPARE_MASK 0xfffffffe
+
+#define TPC_CHICKEN_MASK \
+ (TPC_CHICKEN_BLEND_PRECISION_MASK | \
+ TPC_CHICKEN_SPARE_MASK)
+
+#define TPC_CHICKEN(blend_precision, spare) \
+ ((blend_precision << TPC_CHICKEN_BLEND_PRECISION_SHIFT) | \
+ (spare << TPC_CHICKEN_SPARE_SHIFT))
+
+#define TPC_CHICKEN_GET_BLEND_PRECISION(tpc_chicken) \
+ ((tpc_chicken & TPC_CHICKEN_BLEND_PRECISION_MASK) >> TPC_CHICKEN_BLEND_PRECISION_SHIFT)
+#define TPC_CHICKEN_GET_SPARE(tpc_chicken) \
+ ((tpc_chicken & TPC_CHICKEN_SPARE_MASK) >> TPC_CHICKEN_SPARE_SHIFT)
+
+#define TPC_CHICKEN_SET_BLEND_PRECISION(tpc_chicken_reg, blend_precision) \
+ tpc_chicken_reg = (tpc_chicken_reg & ~TPC_CHICKEN_BLEND_PRECISION_MASK) | (blend_precision << TPC_CHICKEN_BLEND_PRECISION_SHIFT)
+#define TPC_CHICKEN_SET_SPARE(tpc_chicken_reg, spare) \
+ tpc_chicken_reg = (tpc_chicken_reg & ~TPC_CHICKEN_SPARE_MASK) | (spare << TPC_CHICKEN_SPARE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tpc_chicken_t {
+ unsigned int blend_precision : TPC_CHICKEN_BLEND_PRECISION_SIZE;
+ unsigned int spare : TPC_CHICKEN_SPARE_SIZE;
+ } tpc_chicken_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tpc_chicken_t {
+ unsigned int spare : TPC_CHICKEN_SPARE_SIZE;
+ unsigned int blend_precision : TPC_CHICKEN_BLEND_PRECISION_SIZE;
+ } tpc_chicken_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tpc_chicken_t f;
+} tpc_chicken_u;
+
+
+/*
+ * TP0_CNTL_STATUS struct
+ */
+
+#define TP0_CNTL_STATUS_TP_INPUT_BUSY_SIZE 1
+#define TP0_CNTL_STATUS_TP_LOD_BUSY_SIZE 1
+#define TP0_CNTL_STATUS_TP_LOD_FIFO_BUSY_SIZE 1
+#define TP0_CNTL_STATUS_TP_ADDR_BUSY_SIZE 1
+#define TP0_CNTL_STATUS_TP_ALIGN_FIFO_BUSY_SIZE 1
+#define TP0_CNTL_STATUS_TP_ALIGNER_BUSY_SIZE 1
+#define TP0_CNTL_STATUS_TP_TC_FIFO_BUSY_SIZE 1
+#define TP0_CNTL_STATUS_TP_RR_FIFO_BUSY_SIZE 1
+#define TP0_CNTL_STATUS_TP_FETCH_BUSY_SIZE 1
+#define TP0_CNTL_STATUS_TP_CH_BLEND_BUSY_SIZE 1
+#define TP0_CNTL_STATUS_TP_TT_BUSY_SIZE 1
+#define TP0_CNTL_STATUS_TP_HICOLOR_BUSY_SIZE 1
+#define TP0_CNTL_STATUS_TP_BLEND_BUSY_SIZE 1
+#define TP0_CNTL_STATUS_TP_OUT_FIFO_BUSY_SIZE 1
+#define TP0_CNTL_STATUS_TP_OUTPUT_BUSY_SIZE 1
+#define TP0_CNTL_STATUS_IN_LC_RTS_SIZE 1
+#define TP0_CNTL_STATUS_LC_LA_RTS_SIZE 1
+#define TP0_CNTL_STATUS_LA_FL_RTS_SIZE 1
+#define TP0_CNTL_STATUS_FL_TA_RTS_SIZE 1
+#define TP0_CNTL_STATUS_TA_FA_RTS_SIZE 1
+#define TP0_CNTL_STATUS_TA_FA_TT_RTS_SIZE 1
+#define TP0_CNTL_STATUS_FA_AL_RTS_SIZE 1
+#define TP0_CNTL_STATUS_FA_AL_TT_RTS_SIZE 1
+#define TP0_CNTL_STATUS_AL_TF_RTS_SIZE 1
+#define TP0_CNTL_STATUS_AL_TF_TT_RTS_SIZE 1
+#define TP0_CNTL_STATUS_TF_TB_RTS_SIZE 1
+#define TP0_CNTL_STATUS_TF_TB_TT_RTS_SIZE 1
+#define TP0_CNTL_STATUS_TB_TT_RTS_SIZE 1
+#define TP0_CNTL_STATUS_TB_TT_TT_RESET_SIZE 1
+#define TP0_CNTL_STATUS_TB_TO_RTS_SIZE 1
+#define TP0_CNTL_STATUS_TP_BUSY_SIZE 1
+
+#define TP0_CNTL_STATUS_TP_INPUT_BUSY_SHIFT 0
+#define TP0_CNTL_STATUS_TP_LOD_BUSY_SHIFT 1
+#define TP0_CNTL_STATUS_TP_LOD_FIFO_BUSY_SHIFT 2
+#define TP0_CNTL_STATUS_TP_ADDR_BUSY_SHIFT 3
+#define TP0_CNTL_STATUS_TP_ALIGN_FIFO_BUSY_SHIFT 4
+#define TP0_CNTL_STATUS_TP_ALIGNER_BUSY_SHIFT 5
+#define TP0_CNTL_STATUS_TP_TC_FIFO_BUSY_SHIFT 6
+#define TP0_CNTL_STATUS_TP_RR_FIFO_BUSY_SHIFT 7
+#define TP0_CNTL_STATUS_TP_FETCH_BUSY_SHIFT 8
+#define TP0_CNTL_STATUS_TP_CH_BLEND_BUSY_SHIFT 9
+#define TP0_CNTL_STATUS_TP_TT_BUSY_SHIFT 10
+#define TP0_CNTL_STATUS_TP_HICOLOR_BUSY_SHIFT 11
+#define TP0_CNTL_STATUS_TP_BLEND_BUSY_SHIFT 12
+#define TP0_CNTL_STATUS_TP_OUT_FIFO_BUSY_SHIFT 13
+#define TP0_CNTL_STATUS_TP_OUTPUT_BUSY_SHIFT 14
+#define TP0_CNTL_STATUS_IN_LC_RTS_SHIFT 16
+#define TP0_CNTL_STATUS_LC_LA_RTS_SHIFT 17
+#define TP0_CNTL_STATUS_LA_FL_RTS_SHIFT 18
+#define TP0_CNTL_STATUS_FL_TA_RTS_SHIFT 19
+#define TP0_CNTL_STATUS_TA_FA_RTS_SHIFT 20
+#define TP0_CNTL_STATUS_TA_FA_TT_RTS_SHIFT 21
+#define TP0_CNTL_STATUS_FA_AL_RTS_SHIFT 22
+#define TP0_CNTL_STATUS_FA_AL_TT_RTS_SHIFT 23
+#define TP0_CNTL_STATUS_AL_TF_RTS_SHIFT 24
+#define TP0_CNTL_STATUS_AL_TF_TT_RTS_SHIFT 25
+#define TP0_CNTL_STATUS_TF_TB_RTS_SHIFT 26
+#define TP0_CNTL_STATUS_TF_TB_TT_RTS_SHIFT 27
+#define TP0_CNTL_STATUS_TB_TT_RTS_SHIFT 28
+#define TP0_CNTL_STATUS_TB_TT_TT_RESET_SHIFT 29
+#define TP0_CNTL_STATUS_TB_TO_RTS_SHIFT 30
+#define TP0_CNTL_STATUS_TP_BUSY_SHIFT 31
+
+#define TP0_CNTL_STATUS_TP_INPUT_BUSY_MASK 0x00000001
+#define TP0_CNTL_STATUS_TP_LOD_BUSY_MASK 0x00000002
+#define TP0_CNTL_STATUS_TP_LOD_FIFO_BUSY_MASK 0x00000004
+#define TP0_CNTL_STATUS_TP_ADDR_BUSY_MASK 0x00000008
+#define TP0_CNTL_STATUS_TP_ALIGN_FIFO_BUSY_MASK 0x00000010
+#define TP0_CNTL_STATUS_TP_ALIGNER_BUSY_MASK 0x00000020
+#define TP0_CNTL_STATUS_TP_TC_FIFO_BUSY_MASK 0x00000040
+#define TP0_CNTL_STATUS_TP_RR_FIFO_BUSY_MASK 0x00000080
+#define TP0_CNTL_STATUS_TP_FETCH_BUSY_MASK 0x00000100
+#define TP0_CNTL_STATUS_TP_CH_BLEND_BUSY_MASK 0x00000200
+#define TP0_CNTL_STATUS_TP_TT_BUSY_MASK 0x00000400
+#define TP0_CNTL_STATUS_TP_HICOLOR_BUSY_MASK 0x00000800
+#define TP0_CNTL_STATUS_TP_BLEND_BUSY_MASK 0x00001000
+#define TP0_CNTL_STATUS_TP_OUT_FIFO_BUSY_MASK 0x00002000
+#define TP0_CNTL_STATUS_TP_OUTPUT_BUSY_MASK 0x00004000
+#define TP0_CNTL_STATUS_IN_LC_RTS_MASK 0x00010000
+#define TP0_CNTL_STATUS_LC_LA_RTS_MASK 0x00020000
+#define TP0_CNTL_STATUS_LA_FL_RTS_MASK 0x00040000
+#define TP0_CNTL_STATUS_FL_TA_RTS_MASK 0x00080000
+#define TP0_CNTL_STATUS_TA_FA_RTS_MASK 0x00100000
+#define TP0_CNTL_STATUS_TA_FA_TT_RTS_MASK 0x00200000
+#define TP0_CNTL_STATUS_FA_AL_RTS_MASK 0x00400000
+#define TP0_CNTL_STATUS_FA_AL_TT_RTS_MASK 0x00800000
+#define TP0_CNTL_STATUS_AL_TF_RTS_MASK 0x01000000
+#define TP0_CNTL_STATUS_AL_TF_TT_RTS_MASK 0x02000000
+#define TP0_CNTL_STATUS_TF_TB_RTS_MASK 0x04000000
+#define TP0_CNTL_STATUS_TF_TB_TT_RTS_MASK 0x08000000
+#define TP0_CNTL_STATUS_TB_TT_RTS_MASK 0x10000000
+#define TP0_CNTL_STATUS_TB_TT_TT_RESET_MASK 0x20000000
+#define TP0_CNTL_STATUS_TB_TO_RTS_MASK 0x40000000
+#define TP0_CNTL_STATUS_TP_BUSY_MASK 0x80000000
+
+#define TP0_CNTL_STATUS_MASK \
+ (TP0_CNTL_STATUS_TP_INPUT_BUSY_MASK | \
+ TP0_CNTL_STATUS_TP_LOD_BUSY_MASK | \
+ TP0_CNTL_STATUS_TP_LOD_FIFO_BUSY_MASK | \
+ TP0_CNTL_STATUS_TP_ADDR_BUSY_MASK | \
+ TP0_CNTL_STATUS_TP_ALIGN_FIFO_BUSY_MASK | \
+ TP0_CNTL_STATUS_TP_ALIGNER_BUSY_MASK | \
+ TP0_CNTL_STATUS_TP_TC_FIFO_BUSY_MASK | \
+ TP0_CNTL_STATUS_TP_RR_FIFO_BUSY_MASK | \
+ TP0_CNTL_STATUS_TP_FETCH_BUSY_MASK | \
+ TP0_CNTL_STATUS_TP_CH_BLEND_BUSY_MASK | \
+ TP0_CNTL_STATUS_TP_TT_BUSY_MASK | \
+ TP0_CNTL_STATUS_TP_HICOLOR_BUSY_MASK | \
+ TP0_CNTL_STATUS_TP_BLEND_BUSY_MASK | \
+ TP0_CNTL_STATUS_TP_OUT_FIFO_BUSY_MASK | \
+ TP0_CNTL_STATUS_TP_OUTPUT_BUSY_MASK | \
+ TP0_CNTL_STATUS_IN_LC_RTS_MASK | \
+ TP0_CNTL_STATUS_LC_LA_RTS_MASK | \
+ TP0_CNTL_STATUS_LA_FL_RTS_MASK | \
+ TP0_CNTL_STATUS_FL_TA_RTS_MASK | \
+ TP0_CNTL_STATUS_TA_FA_RTS_MASK | \
+ TP0_CNTL_STATUS_TA_FA_TT_RTS_MASK | \
+ TP0_CNTL_STATUS_FA_AL_RTS_MASK | \
+ TP0_CNTL_STATUS_FA_AL_TT_RTS_MASK | \
+ TP0_CNTL_STATUS_AL_TF_RTS_MASK | \
+ TP0_CNTL_STATUS_AL_TF_TT_RTS_MASK | \
+ TP0_CNTL_STATUS_TF_TB_RTS_MASK | \
+ TP0_CNTL_STATUS_TF_TB_TT_RTS_MASK | \
+ TP0_CNTL_STATUS_TB_TT_RTS_MASK | \
+ TP0_CNTL_STATUS_TB_TT_TT_RESET_MASK | \
+ TP0_CNTL_STATUS_TB_TO_RTS_MASK | \
+ TP0_CNTL_STATUS_TP_BUSY_MASK)
+
+#define TP0_CNTL_STATUS(tp_input_busy, tp_lod_busy, tp_lod_fifo_busy, tp_addr_busy, tp_align_fifo_busy, tp_aligner_busy, tp_tc_fifo_busy, tp_rr_fifo_busy, tp_fetch_busy, tp_ch_blend_busy, tp_tt_busy, tp_hicolor_busy, tp_blend_busy, tp_out_fifo_busy, tp_output_busy, in_lc_rts, lc_la_rts, la_fl_rts, fl_ta_rts, ta_fa_rts, ta_fa_tt_rts, fa_al_rts, fa_al_tt_rts, al_tf_rts, al_tf_tt_rts, tf_tb_rts, tf_tb_tt_rts, tb_tt_rts, tb_tt_tt_reset, tb_to_rts, tp_busy) \
+ ((tp_input_busy << TP0_CNTL_STATUS_TP_INPUT_BUSY_SHIFT) | \
+ (tp_lod_busy << TP0_CNTL_STATUS_TP_LOD_BUSY_SHIFT) | \
+ (tp_lod_fifo_busy << TP0_CNTL_STATUS_TP_LOD_FIFO_BUSY_SHIFT) | \
+ (tp_addr_busy << TP0_CNTL_STATUS_TP_ADDR_BUSY_SHIFT) | \
+ (tp_align_fifo_busy << TP0_CNTL_STATUS_TP_ALIGN_FIFO_BUSY_SHIFT) | \
+ (tp_aligner_busy << TP0_CNTL_STATUS_TP_ALIGNER_BUSY_SHIFT) | \
+ (tp_tc_fifo_busy << TP0_CNTL_STATUS_TP_TC_FIFO_BUSY_SHIFT) | \
+ (tp_rr_fifo_busy << TP0_CNTL_STATUS_TP_RR_FIFO_BUSY_SHIFT) | \
+ (tp_fetch_busy << TP0_CNTL_STATUS_TP_FETCH_BUSY_SHIFT) | \
+ (tp_ch_blend_busy << TP0_CNTL_STATUS_TP_CH_BLEND_BUSY_SHIFT) | \
+ (tp_tt_busy << TP0_CNTL_STATUS_TP_TT_BUSY_SHIFT) | \
+ (tp_hicolor_busy << TP0_CNTL_STATUS_TP_HICOLOR_BUSY_SHIFT) | \
+ (tp_blend_busy << TP0_CNTL_STATUS_TP_BLEND_BUSY_SHIFT) | \
+ (tp_out_fifo_busy << TP0_CNTL_STATUS_TP_OUT_FIFO_BUSY_SHIFT) | \
+ (tp_output_busy << TP0_CNTL_STATUS_TP_OUTPUT_BUSY_SHIFT) | \
+ (in_lc_rts << TP0_CNTL_STATUS_IN_LC_RTS_SHIFT) | \
+ (lc_la_rts << TP0_CNTL_STATUS_LC_LA_RTS_SHIFT) | \
+ (la_fl_rts << TP0_CNTL_STATUS_LA_FL_RTS_SHIFT) | \
+ (fl_ta_rts << TP0_CNTL_STATUS_FL_TA_RTS_SHIFT) | \
+ (ta_fa_rts << TP0_CNTL_STATUS_TA_FA_RTS_SHIFT) | \
+ (ta_fa_tt_rts << TP0_CNTL_STATUS_TA_FA_TT_RTS_SHIFT) | \
+ (fa_al_rts << TP0_CNTL_STATUS_FA_AL_RTS_SHIFT) | \
+ (fa_al_tt_rts << TP0_CNTL_STATUS_FA_AL_TT_RTS_SHIFT) | \
+ (al_tf_rts << TP0_CNTL_STATUS_AL_TF_RTS_SHIFT) | \
+ (al_tf_tt_rts << TP0_CNTL_STATUS_AL_TF_TT_RTS_SHIFT) | \
+ (tf_tb_rts << TP0_CNTL_STATUS_TF_TB_RTS_SHIFT) | \
+ (tf_tb_tt_rts << TP0_CNTL_STATUS_TF_TB_TT_RTS_SHIFT) | \
+ (tb_tt_rts << TP0_CNTL_STATUS_TB_TT_RTS_SHIFT) | \
+ (tb_tt_tt_reset << TP0_CNTL_STATUS_TB_TT_TT_RESET_SHIFT) | \
+ (tb_to_rts << TP0_CNTL_STATUS_TB_TO_RTS_SHIFT) | \
+ (tp_busy << TP0_CNTL_STATUS_TP_BUSY_SHIFT))
+
+#define TP0_CNTL_STATUS_GET_TP_INPUT_BUSY(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TP_INPUT_BUSY_MASK) >> TP0_CNTL_STATUS_TP_INPUT_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_GET_TP_LOD_BUSY(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TP_LOD_BUSY_MASK) >> TP0_CNTL_STATUS_TP_LOD_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_GET_TP_LOD_FIFO_BUSY(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TP_LOD_FIFO_BUSY_MASK) >> TP0_CNTL_STATUS_TP_LOD_FIFO_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_GET_TP_ADDR_BUSY(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TP_ADDR_BUSY_MASK) >> TP0_CNTL_STATUS_TP_ADDR_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_GET_TP_ALIGN_FIFO_BUSY(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TP_ALIGN_FIFO_BUSY_MASK) >> TP0_CNTL_STATUS_TP_ALIGN_FIFO_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_GET_TP_ALIGNER_BUSY(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TP_ALIGNER_BUSY_MASK) >> TP0_CNTL_STATUS_TP_ALIGNER_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_GET_TP_TC_FIFO_BUSY(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TP_TC_FIFO_BUSY_MASK) >> TP0_CNTL_STATUS_TP_TC_FIFO_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_GET_TP_RR_FIFO_BUSY(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TP_RR_FIFO_BUSY_MASK) >> TP0_CNTL_STATUS_TP_RR_FIFO_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_GET_TP_FETCH_BUSY(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TP_FETCH_BUSY_MASK) >> TP0_CNTL_STATUS_TP_FETCH_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_GET_TP_CH_BLEND_BUSY(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TP_CH_BLEND_BUSY_MASK) >> TP0_CNTL_STATUS_TP_CH_BLEND_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_GET_TP_TT_BUSY(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TP_TT_BUSY_MASK) >> TP0_CNTL_STATUS_TP_TT_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_GET_TP_HICOLOR_BUSY(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TP_HICOLOR_BUSY_MASK) >> TP0_CNTL_STATUS_TP_HICOLOR_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_GET_TP_BLEND_BUSY(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TP_BLEND_BUSY_MASK) >> TP0_CNTL_STATUS_TP_BLEND_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_GET_TP_OUT_FIFO_BUSY(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TP_OUT_FIFO_BUSY_MASK) >> TP0_CNTL_STATUS_TP_OUT_FIFO_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_GET_TP_OUTPUT_BUSY(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TP_OUTPUT_BUSY_MASK) >> TP0_CNTL_STATUS_TP_OUTPUT_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_GET_IN_LC_RTS(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_IN_LC_RTS_MASK) >> TP0_CNTL_STATUS_IN_LC_RTS_SHIFT)
+#define TP0_CNTL_STATUS_GET_LC_LA_RTS(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_LC_LA_RTS_MASK) >> TP0_CNTL_STATUS_LC_LA_RTS_SHIFT)
+#define TP0_CNTL_STATUS_GET_LA_FL_RTS(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_LA_FL_RTS_MASK) >> TP0_CNTL_STATUS_LA_FL_RTS_SHIFT)
+#define TP0_CNTL_STATUS_GET_FL_TA_RTS(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_FL_TA_RTS_MASK) >> TP0_CNTL_STATUS_FL_TA_RTS_SHIFT)
+#define TP0_CNTL_STATUS_GET_TA_FA_RTS(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TA_FA_RTS_MASK) >> TP0_CNTL_STATUS_TA_FA_RTS_SHIFT)
+#define TP0_CNTL_STATUS_GET_TA_FA_TT_RTS(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TA_FA_TT_RTS_MASK) >> TP0_CNTL_STATUS_TA_FA_TT_RTS_SHIFT)
+#define TP0_CNTL_STATUS_GET_FA_AL_RTS(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_FA_AL_RTS_MASK) >> TP0_CNTL_STATUS_FA_AL_RTS_SHIFT)
+#define TP0_CNTL_STATUS_GET_FA_AL_TT_RTS(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_FA_AL_TT_RTS_MASK) >> TP0_CNTL_STATUS_FA_AL_TT_RTS_SHIFT)
+#define TP0_CNTL_STATUS_GET_AL_TF_RTS(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_AL_TF_RTS_MASK) >> TP0_CNTL_STATUS_AL_TF_RTS_SHIFT)
+#define TP0_CNTL_STATUS_GET_AL_TF_TT_RTS(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_AL_TF_TT_RTS_MASK) >> TP0_CNTL_STATUS_AL_TF_TT_RTS_SHIFT)
+#define TP0_CNTL_STATUS_GET_TF_TB_RTS(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TF_TB_RTS_MASK) >> TP0_CNTL_STATUS_TF_TB_RTS_SHIFT)
+#define TP0_CNTL_STATUS_GET_TF_TB_TT_RTS(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TF_TB_TT_RTS_MASK) >> TP0_CNTL_STATUS_TF_TB_TT_RTS_SHIFT)
+#define TP0_CNTL_STATUS_GET_TB_TT_RTS(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TB_TT_RTS_MASK) >> TP0_CNTL_STATUS_TB_TT_RTS_SHIFT)
+#define TP0_CNTL_STATUS_GET_TB_TT_TT_RESET(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TB_TT_TT_RESET_MASK) >> TP0_CNTL_STATUS_TB_TT_TT_RESET_SHIFT)
+#define TP0_CNTL_STATUS_GET_TB_TO_RTS(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TB_TO_RTS_MASK) >> TP0_CNTL_STATUS_TB_TO_RTS_SHIFT)
+#define TP0_CNTL_STATUS_GET_TP_BUSY(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TP_BUSY_MASK) >> TP0_CNTL_STATUS_TP_BUSY_SHIFT)
+
+#define TP0_CNTL_STATUS_SET_TP_INPUT_BUSY(tp0_cntl_status_reg, tp_input_busy) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TP_INPUT_BUSY_MASK) | (tp_input_busy << TP0_CNTL_STATUS_TP_INPUT_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_SET_TP_LOD_BUSY(tp0_cntl_status_reg, tp_lod_busy) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TP_LOD_BUSY_MASK) | (tp_lod_busy << TP0_CNTL_STATUS_TP_LOD_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_SET_TP_LOD_FIFO_BUSY(tp0_cntl_status_reg, tp_lod_fifo_busy) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TP_LOD_FIFO_BUSY_MASK) | (tp_lod_fifo_busy << TP0_CNTL_STATUS_TP_LOD_FIFO_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_SET_TP_ADDR_BUSY(tp0_cntl_status_reg, tp_addr_busy) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TP_ADDR_BUSY_MASK) | (tp_addr_busy << TP0_CNTL_STATUS_TP_ADDR_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_SET_TP_ALIGN_FIFO_BUSY(tp0_cntl_status_reg, tp_align_fifo_busy) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TP_ALIGN_FIFO_BUSY_MASK) | (tp_align_fifo_busy << TP0_CNTL_STATUS_TP_ALIGN_FIFO_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_SET_TP_ALIGNER_BUSY(tp0_cntl_status_reg, tp_aligner_busy) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TP_ALIGNER_BUSY_MASK) | (tp_aligner_busy << TP0_CNTL_STATUS_TP_ALIGNER_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_SET_TP_TC_FIFO_BUSY(tp0_cntl_status_reg, tp_tc_fifo_busy) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TP_TC_FIFO_BUSY_MASK) | (tp_tc_fifo_busy << TP0_CNTL_STATUS_TP_TC_FIFO_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_SET_TP_RR_FIFO_BUSY(tp0_cntl_status_reg, tp_rr_fifo_busy) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TP_RR_FIFO_BUSY_MASK) | (tp_rr_fifo_busy << TP0_CNTL_STATUS_TP_RR_FIFO_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_SET_TP_FETCH_BUSY(tp0_cntl_status_reg, tp_fetch_busy) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TP_FETCH_BUSY_MASK) | (tp_fetch_busy << TP0_CNTL_STATUS_TP_FETCH_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_SET_TP_CH_BLEND_BUSY(tp0_cntl_status_reg, tp_ch_blend_busy) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TP_CH_BLEND_BUSY_MASK) | (tp_ch_blend_busy << TP0_CNTL_STATUS_TP_CH_BLEND_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_SET_TP_TT_BUSY(tp0_cntl_status_reg, tp_tt_busy) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TP_TT_BUSY_MASK) | (tp_tt_busy << TP0_CNTL_STATUS_TP_TT_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_SET_TP_HICOLOR_BUSY(tp0_cntl_status_reg, tp_hicolor_busy) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TP_HICOLOR_BUSY_MASK) | (tp_hicolor_busy << TP0_CNTL_STATUS_TP_HICOLOR_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_SET_TP_BLEND_BUSY(tp0_cntl_status_reg, tp_blend_busy) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TP_BLEND_BUSY_MASK) | (tp_blend_busy << TP0_CNTL_STATUS_TP_BLEND_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_SET_TP_OUT_FIFO_BUSY(tp0_cntl_status_reg, tp_out_fifo_busy) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TP_OUT_FIFO_BUSY_MASK) | (tp_out_fifo_busy << TP0_CNTL_STATUS_TP_OUT_FIFO_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_SET_TP_OUTPUT_BUSY(tp0_cntl_status_reg, tp_output_busy) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TP_OUTPUT_BUSY_MASK) | (tp_output_busy << TP0_CNTL_STATUS_TP_OUTPUT_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_SET_IN_LC_RTS(tp0_cntl_status_reg, in_lc_rts) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_IN_LC_RTS_MASK) | (in_lc_rts << TP0_CNTL_STATUS_IN_LC_RTS_SHIFT)
+#define TP0_CNTL_STATUS_SET_LC_LA_RTS(tp0_cntl_status_reg, lc_la_rts) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_LC_LA_RTS_MASK) | (lc_la_rts << TP0_CNTL_STATUS_LC_LA_RTS_SHIFT)
+#define TP0_CNTL_STATUS_SET_LA_FL_RTS(tp0_cntl_status_reg, la_fl_rts) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_LA_FL_RTS_MASK) | (la_fl_rts << TP0_CNTL_STATUS_LA_FL_RTS_SHIFT)
+#define TP0_CNTL_STATUS_SET_FL_TA_RTS(tp0_cntl_status_reg, fl_ta_rts) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_FL_TA_RTS_MASK) | (fl_ta_rts << TP0_CNTL_STATUS_FL_TA_RTS_SHIFT)
+#define TP0_CNTL_STATUS_SET_TA_FA_RTS(tp0_cntl_status_reg, ta_fa_rts) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TA_FA_RTS_MASK) | (ta_fa_rts << TP0_CNTL_STATUS_TA_FA_RTS_SHIFT)
+#define TP0_CNTL_STATUS_SET_TA_FA_TT_RTS(tp0_cntl_status_reg, ta_fa_tt_rts) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TA_FA_TT_RTS_MASK) | (ta_fa_tt_rts << TP0_CNTL_STATUS_TA_FA_TT_RTS_SHIFT)
+#define TP0_CNTL_STATUS_SET_FA_AL_RTS(tp0_cntl_status_reg, fa_al_rts) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_FA_AL_RTS_MASK) | (fa_al_rts << TP0_CNTL_STATUS_FA_AL_RTS_SHIFT)
+#define TP0_CNTL_STATUS_SET_FA_AL_TT_RTS(tp0_cntl_status_reg, fa_al_tt_rts) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_FA_AL_TT_RTS_MASK) | (fa_al_tt_rts << TP0_CNTL_STATUS_FA_AL_TT_RTS_SHIFT)
+#define TP0_CNTL_STATUS_SET_AL_TF_RTS(tp0_cntl_status_reg, al_tf_rts) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_AL_TF_RTS_MASK) | (al_tf_rts << TP0_CNTL_STATUS_AL_TF_RTS_SHIFT)
+#define TP0_CNTL_STATUS_SET_AL_TF_TT_RTS(tp0_cntl_status_reg, al_tf_tt_rts) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_AL_TF_TT_RTS_MASK) | (al_tf_tt_rts << TP0_CNTL_STATUS_AL_TF_TT_RTS_SHIFT)
+#define TP0_CNTL_STATUS_SET_TF_TB_RTS(tp0_cntl_status_reg, tf_tb_rts) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TF_TB_RTS_MASK) | (tf_tb_rts << TP0_CNTL_STATUS_TF_TB_RTS_SHIFT)
+#define TP0_CNTL_STATUS_SET_TF_TB_TT_RTS(tp0_cntl_status_reg, tf_tb_tt_rts) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TF_TB_TT_RTS_MASK) | (tf_tb_tt_rts << TP0_CNTL_STATUS_TF_TB_TT_RTS_SHIFT)
+#define TP0_CNTL_STATUS_SET_TB_TT_RTS(tp0_cntl_status_reg, tb_tt_rts) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TB_TT_RTS_MASK) | (tb_tt_rts << TP0_CNTL_STATUS_TB_TT_RTS_SHIFT)
+#define TP0_CNTL_STATUS_SET_TB_TT_TT_RESET(tp0_cntl_status_reg, tb_tt_tt_reset) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TB_TT_TT_RESET_MASK) | (tb_tt_tt_reset << TP0_CNTL_STATUS_TB_TT_TT_RESET_SHIFT)
+#define TP0_CNTL_STATUS_SET_TB_TO_RTS(tp0_cntl_status_reg, tb_to_rts) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TB_TO_RTS_MASK) | (tb_to_rts << TP0_CNTL_STATUS_TB_TO_RTS_SHIFT)
+#define TP0_CNTL_STATUS_SET_TP_BUSY(tp0_cntl_status_reg, tp_busy) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TP_BUSY_MASK) | (tp_busy << TP0_CNTL_STATUS_TP_BUSY_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tp0_cntl_status_t {
+ unsigned int tp_input_busy : TP0_CNTL_STATUS_TP_INPUT_BUSY_SIZE;
+ unsigned int tp_lod_busy : TP0_CNTL_STATUS_TP_LOD_BUSY_SIZE;
+ unsigned int tp_lod_fifo_busy : TP0_CNTL_STATUS_TP_LOD_FIFO_BUSY_SIZE;
+ unsigned int tp_addr_busy : TP0_CNTL_STATUS_TP_ADDR_BUSY_SIZE;
+ unsigned int tp_align_fifo_busy : TP0_CNTL_STATUS_TP_ALIGN_FIFO_BUSY_SIZE;
+ unsigned int tp_aligner_busy : TP0_CNTL_STATUS_TP_ALIGNER_BUSY_SIZE;
+ unsigned int tp_tc_fifo_busy : TP0_CNTL_STATUS_TP_TC_FIFO_BUSY_SIZE;
+ unsigned int tp_rr_fifo_busy : TP0_CNTL_STATUS_TP_RR_FIFO_BUSY_SIZE;
+ unsigned int tp_fetch_busy : TP0_CNTL_STATUS_TP_FETCH_BUSY_SIZE;
+ unsigned int tp_ch_blend_busy : TP0_CNTL_STATUS_TP_CH_BLEND_BUSY_SIZE;
+ unsigned int tp_tt_busy : TP0_CNTL_STATUS_TP_TT_BUSY_SIZE;
+ unsigned int tp_hicolor_busy : TP0_CNTL_STATUS_TP_HICOLOR_BUSY_SIZE;
+ unsigned int tp_blend_busy : TP0_CNTL_STATUS_TP_BLEND_BUSY_SIZE;
+ unsigned int tp_out_fifo_busy : TP0_CNTL_STATUS_TP_OUT_FIFO_BUSY_SIZE;
+ unsigned int tp_output_busy : TP0_CNTL_STATUS_TP_OUTPUT_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int in_lc_rts : TP0_CNTL_STATUS_IN_LC_RTS_SIZE;
+ unsigned int lc_la_rts : TP0_CNTL_STATUS_LC_LA_RTS_SIZE;
+ unsigned int la_fl_rts : TP0_CNTL_STATUS_LA_FL_RTS_SIZE;
+ unsigned int fl_ta_rts : TP0_CNTL_STATUS_FL_TA_RTS_SIZE;
+ unsigned int ta_fa_rts : TP0_CNTL_STATUS_TA_FA_RTS_SIZE;
+ unsigned int ta_fa_tt_rts : TP0_CNTL_STATUS_TA_FA_TT_RTS_SIZE;
+ unsigned int fa_al_rts : TP0_CNTL_STATUS_FA_AL_RTS_SIZE;
+ unsigned int fa_al_tt_rts : TP0_CNTL_STATUS_FA_AL_TT_RTS_SIZE;
+ unsigned int al_tf_rts : TP0_CNTL_STATUS_AL_TF_RTS_SIZE;
+ unsigned int al_tf_tt_rts : TP0_CNTL_STATUS_AL_TF_TT_RTS_SIZE;
+ unsigned int tf_tb_rts : TP0_CNTL_STATUS_TF_TB_RTS_SIZE;
+ unsigned int tf_tb_tt_rts : TP0_CNTL_STATUS_TF_TB_TT_RTS_SIZE;
+ unsigned int tb_tt_rts : TP0_CNTL_STATUS_TB_TT_RTS_SIZE;
+ unsigned int tb_tt_tt_reset : TP0_CNTL_STATUS_TB_TT_TT_RESET_SIZE;
+ unsigned int tb_to_rts : TP0_CNTL_STATUS_TB_TO_RTS_SIZE;
+ unsigned int tp_busy : TP0_CNTL_STATUS_TP_BUSY_SIZE;
+ } tp0_cntl_status_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tp0_cntl_status_t {
+ unsigned int tp_busy : TP0_CNTL_STATUS_TP_BUSY_SIZE;
+ unsigned int tb_to_rts : TP0_CNTL_STATUS_TB_TO_RTS_SIZE;
+ unsigned int tb_tt_tt_reset : TP0_CNTL_STATUS_TB_TT_TT_RESET_SIZE;
+ unsigned int tb_tt_rts : TP0_CNTL_STATUS_TB_TT_RTS_SIZE;
+ unsigned int tf_tb_tt_rts : TP0_CNTL_STATUS_TF_TB_TT_RTS_SIZE;
+ unsigned int tf_tb_rts : TP0_CNTL_STATUS_TF_TB_RTS_SIZE;
+ unsigned int al_tf_tt_rts : TP0_CNTL_STATUS_AL_TF_TT_RTS_SIZE;
+ unsigned int al_tf_rts : TP0_CNTL_STATUS_AL_TF_RTS_SIZE;
+ unsigned int fa_al_tt_rts : TP0_CNTL_STATUS_FA_AL_TT_RTS_SIZE;
+ unsigned int fa_al_rts : TP0_CNTL_STATUS_FA_AL_RTS_SIZE;
+ unsigned int ta_fa_tt_rts : TP0_CNTL_STATUS_TA_FA_TT_RTS_SIZE;
+ unsigned int ta_fa_rts : TP0_CNTL_STATUS_TA_FA_RTS_SIZE;
+ unsigned int fl_ta_rts : TP0_CNTL_STATUS_FL_TA_RTS_SIZE;
+ unsigned int la_fl_rts : TP0_CNTL_STATUS_LA_FL_RTS_SIZE;
+ unsigned int lc_la_rts : TP0_CNTL_STATUS_LC_LA_RTS_SIZE;
+ unsigned int in_lc_rts : TP0_CNTL_STATUS_IN_LC_RTS_SIZE;
+ unsigned int : 1;
+ unsigned int tp_output_busy : TP0_CNTL_STATUS_TP_OUTPUT_BUSY_SIZE;
+ unsigned int tp_out_fifo_busy : TP0_CNTL_STATUS_TP_OUT_FIFO_BUSY_SIZE;
+ unsigned int tp_blend_busy : TP0_CNTL_STATUS_TP_BLEND_BUSY_SIZE;
+ unsigned int tp_hicolor_busy : TP0_CNTL_STATUS_TP_HICOLOR_BUSY_SIZE;
+ unsigned int tp_tt_busy : TP0_CNTL_STATUS_TP_TT_BUSY_SIZE;
+ unsigned int tp_ch_blend_busy : TP0_CNTL_STATUS_TP_CH_BLEND_BUSY_SIZE;
+ unsigned int tp_fetch_busy : TP0_CNTL_STATUS_TP_FETCH_BUSY_SIZE;
+ unsigned int tp_rr_fifo_busy : TP0_CNTL_STATUS_TP_RR_FIFO_BUSY_SIZE;
+ unsigned int tp_tc_fifo_busy : TP0_CNTL_STATUS_TP_TC_FIFO_BUSY_SIZE;
+ unsigned int tp_aligner_busy : TP0_CNTL_STATUS_TP_ALIGNER_BUSY_SIZE;
+ unsigned int tp_align_fifo_busy : TP0_CNTL_STATUS_TP_ALIGN_FIFO_BUSY_SIZE;
+ unsigned int tp_addr_busy : TP0_CNTL_STATUS_TP_ADDR_BUSY_SIZE;
+ unsigned int tp_lod_fifo_busy : TP0_CNTL_STATUS_TP_LOD_FIFO_BUSY_SIZE;
+ unsigned int tp_lod_busy : TP0_CNTL_STATUS_TP_LOD_BUSY_SIZE;
+ unsigned int tp_input_busy : TP0_CNTL_STATUS_TP_INPUT_BUSY_SIZE;
+ } tp0_cntl_status_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tp0_cntl_status_t f;
+} tp0_cntl_status_u;
+
+
+/*
+ * TP0_DEBUG struct
+ */
+
+#define TP0_DEBUG_Q_LOD_CNTL_SIZE 2
+#define TP0_DEBUG_Q_SQ_TP_WAKEUP_SIZE 1
+#define TP0_DEBUG_FL_TA_ADDRESSER_CNTL_SIZE 17
+#define TP0_DEBUG_REG_CLK_EN_SIZE 1
+#define TP0_DEBUG_PERF_CLK_EN_SIZE 1
+#define TP0_DEBUG_TP_CLK_EN_SIZE 1
+#define TP0_DEBUG_Q_WALKER_CNTL_SIZE 4
+#define TP0_DEBUG_Q_ALIGNER_CNTL_SIZE 3
+
+#define TP0_DEBUG_Q_LOD_CNTL_SHIFT 0
+#define TP0_DEBUG_Q_SQ_TP_WAKEUP_SHIFT 3
+#define TP0_DEBUG_FL_TA_ADDRESSER_CNTL_SHIFT 4
+#define TP0_DEBUG_REG_CLK_EN_SHIFT 21
+#define TP0_DEBUG_PERF_CLK_EN_SHIFT 22
+#define TP0_DEBUG_TP_CLK_EN_SHIFT 23
+#define TP0_DEBUG_Q_WALKER_CNTL_SHIFT 24
+#define TP0_DEBUG_Q_ALIGNER_CNTL_SHIFT 28
+
+#define TP0_DEBUG_Q_LOD_CNTL_MASK 0x00000003
+#define TP0_DEBUG_Q_SQ_TP_WAKEUP_MASK 0x00000008
+#define TP0_DEBUG_FL_TA_ADDRESSER_CNTL_MASK 0x001ffff0
+#define TP0_DEBUG_REG_CLK_EN_MASK 0x00200000
+#define TP0_DEBUG_PERF_CLK_EN_MASK 0x00400000
+#define TP0_DEBUG_TP_CLK_EN_MASK 0x00800000
+#define TP0_DEBUG_Q_WALKER_CNTL_MASK 0x0f000000
+#define TP0_DEBUG_Q_ALIGNER_CNTL_MASK 0x70000000
+
+#define TP0_DEBUG_MASK \
+ (TP0_DEBUG_Q_LOD_CNTL_MASK | \
+ TP0_DEBUG_Q_SQ_TP_WAKEUP_MASK | \
+ TP0_DEBUG_FL_TA_ADDRESSER_CNTL_MASK | \
+ TP0_DEBUG_REG_CLK_EN_MASK | \
+ TP0_DEBUG_PERF_CLK_EN_MASK | \
+ TP0_DEBUG_TP_CLK_EN_MASK | \
+ TP0_DEBUG_Q_WALKER_CNTL_MASK | \
+ TP0_DEBUG_Q_ALIGNER_CNTL_MASK)
+
+#define TP0_DEBUG(q_lod_cntl, q_sq_tp_wakeup, fl_ta_addresser_cntl, reg_clk_en, perf_clk_en, tp_clk_en, q_walker_cntl, q_aligner_cntl) \
+ ((q_lod_cntl << TP0_DEBUG_Q_LOD_CNTL_SHIFT) | \
+ (q_sq_tp_wakeup << TP0_DEBUG_Q_SQ_TP_WAKEUP_SHIFT) | \
+ (fl_ta_addresser_cntl << TP0_DEBUG_FL_TA_ADDRESSER_CNTL_SHIFT) | \
+ (reg_clk_en << TP0_DEBUG_REG_CLK_EN_SHIFT) | \
+ (perf_clk_en << TP0_DEBUG_PERF_CLK_EN_SHIFT) | \
+ (tp_clk_en << TP0_DEBUG_TP_CLK_EN_SHIFT) | \
+ (q_walker_cntl << TP0_DEBUG_Q_WALKER_CNTL_SHIFT) | \
+ (q_aligner_cntl << TP0_DEBUG_Q_ALIGNER_CNTL_SHIFT))
+
+#define TP0_DEBUG_GET_Q_LOD_CNTL(tp0_debug) \
+ ((tp0_debug & TP0_DEBUG_Q_LOD_CNTL_MASK) >> TP0_DEBUG_Q_LOD_CNTL_SHIFT)
+#define TP0_DEBUG_GET_Q_SQ_TP_WAKEUP(tp0_debug) \
+ ((tp0_debug & TP0_DEBUG_Q_SQ_TP_WAKEUP_MASK) >> TP0_DEBUG_Q_SQ_TP_WAKEUP_SHIFT)
+#define TP0_DEBUG_GET_FL_TA_ADDRESSER_CNTL(tp0_debug) \
+ ((tp0_debug & TP0_DEBUG_FL_TA_ADDRESSER_CNTL_MASK) >> TP0_DEBUG_FL_TA_ADDRESSER_CNTL_SHIFT)
+#define TP0_DEBUG_GET_REG_CLK_EN(tp0_debug) \
+ ((tp0_debug & TP0_DEBUG_REG_CLK_EN_MASK) >> TP0_DEBUG_REG_CLK_EN_SHIFT)
+#define TP0_DEBUG_GET_PERF_CLK_EN(tp0_debug) \
+ ((tp0_debug & TP0_DEBUG_PERF_CLK_EN_MASK) >> TP0_DEBUG_PERF_CLK_EN_SHIFT)
+#define TP0_DEBUG_GET_TP_CLK_EN(tp0_debug) \
+ ((tp0_debug & TP0_DEBUG_TP_CLK_EN_MASK) >> TP0_DEBUG_TP_CLK_EN_SHIFT)
+#define TP0_DEBUG_GET_Q_WALKER_CNTL(tp0_debug) \
+ ((tp0_debug & TP0_DEBUG_Q_WALKER_CNTL_MASK) >> TP0_DEBUG_Q_WALKER_CNTL_SHIFT)
+#define TP0_DEBUG_GET_Q_ALIGNER_CNTL(tp0_debug) \
+ ((tp0_debug & TP0_DEBUG_Q_ALIGNER_CNTL_MASK) >> TP0_DEBUG_Q_ALIGNER_CNTL_SHIFT)
+
+#define TP0_DEBUG_SET_Q_LOD_CNTL(tp0_debug_reg, q_lod_cntl) \
+ tp0_debug_reg = (tp0_debug_reg & ~TP0_DEBUG_Q_LOD_CNTL_MASK) | (q_lod_cntl << TP0_DEBUG_Q_LOD_CNTL_SHIFT)
+#define TP0_DEBUG_SET_Q_SQ_TP_WAKEUP(tp0_debug_reg, q_sq_tp_wakeup) \
+ tp0_debug_reg = (tp0_debug_reg & ~TP0_DEBUG_Q_SQ_TP_WAKEUP_MASK) | (q_sq_tp_wakeup << TP0_DEBUG_Q_SQ_TP_WAKEUP_SHIFT)
+#define TP0_DEBUG_SET_FL_TA_ADDRESSER_CNTL(tp0_debug_reg, fl_ta_addresser_cntl) \
+ tp0_debug_reg = (tp0_debug_reg & ~TP0_DEBUG_FL_TA_ADDRESSER_CNTL_MASK) | (fl_ta_addresser_cntl << TP0_DEBUG_FL_TA_ADDRESSER_CNTL_SHIFT)
+#define TP0_DEBUG_SET_REG_CLK_EN(tp0_debug_reg, reg_clk_en) \
+ tp0_debug_reg = (tp0_debug_reg & ~TP0_DEBUG_REG_CLK_EN_MASK) | (reg_clk_en << TP0_DEBUG_REG_CLK_EN_SHIFT)
+#define TP0_DEBUG_SET_PERF_CLK_EN(tp0_debug_reg, perf_clk_en) \
+ tp0_debug_reg = (tp0_debug_reg & ~TP0_DEBUG_PERF_CLK_EN_MASK) | (perf_clk_en << TP0_DEBUG_PERF_CLK_EN_SHIFT)
+#define TP0_DEBUG_SET_TP_CLK_EN(tp0_debug_reg, tp_clk_en) \
+ tp0_debug_reg = (tp0_debug_reg & ~TP0_DEBUG_TP_CLK_EN_MASK) | (tp_clk_en << TP0_DEBUG_TP_CLK_EN_SHIFT)
+#define TP0_DEBUG_SET_Q_WALKER_CNTL(tp0_debug_reg, q_walker_cntl) \
+ tp0_debug_reg = (tp0_debug_reg & ~TP0_DEBUG_Q_WALKER_CNTL_MASK) | (q_walker_cntl << TP0_DEBUG_Q_WALKER_CNTL_SHIFT)
+#define TP0_DEBUG_SET_Q_ALIGNER_CNTL(tp0_debug_reg, q_aligner_cntl) \
+ tp0_debug_reg = (tp0_debug_reg & ~TP0_DEBUG_Q_ALIGNER_CNTL_MASK) | (q_aligner_cntl << TP0_DEBUG_Q_ALIGNER_CNTL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tp0_debug_t {
+ unsigned int q_lod_cntl : TP0_DEBUG_Q_LOD_CNTL_SIZE;
+ unsigned int : 1;
+ unsigned int q_sq_tp_wakeup : TP0_DEBUG_Q_SQ_TP_WAKEUP_SIZE;
+ unsigned int fl_ta_addresser_cntl : TP0_DEBUG_FL_TA_ADDRESSER_CNTL_SIZE;
+ unsigned int reg_clk_en : TP0_DEBUG_REG_CLK_EN_SIZE;
+ unsigned int perf_clk_en : TP0_DEBUG_PERF_CLK_EN_SIZE;
+ unsigned int tp_clk_en : TP0_DEBUG_TP_CLK_EN_SIZE;
+ unsigned int q_walker_cntl : TP0_DEBUG_Q_WALKER_CNTL_SIZE;
+ unsigned int q_aligner_cntl : TP0_DEBUG_Q_ALIGNER_CNTL_SIZE;
+ unsigned int : 1;
+ } tp0_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tp0_debug_t {
+ unsigned int : 1;
+ unsigned int q_aligner_cntl : TP0_DEBUG_Q_ALIGNER_CNTL_SIZE;
+ unsigned int q_walker_cntl : TP0_DEBUG_Q_WALKER_CNTL_SIZE;
+ unsigned int tp_clk_en : TP0_DEBUG_TP_CLK_EN_SIZE;
+ unsigned int perf_clk_en : TP0_DEBUG_PERF_CLK_EN_SIZE;
+ unsigned int reg_clk_en : TP0_DEBUG_REG_CLK_EN_SIZE;
+ unsigned int fl_ta_addresser_cntl : TP0_DEBUG_FL_TA_ADDRESSER_CNTL_SIZE;
+ unsigned int q_sq_tp_wakeup : TP0_DEBUG_Q_SQ_TP_WAKEUP_SIZE;
+ unsigned int : 1;
+ unsigned int q_lod_cntl : TP0_DEBUG_Q_LOD_CNTL_SIZE;
+ } tp0_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tp0_debug_t f;
+} tp0_debug_u;
+
+
+/*
+ * TP0_CHICKEN struct
+ */
+
+#define TP0_CHICKEN_TT_MODE_SIZE 1
+#define TP0_CHICKEN_VFETCH_ADDRESS_MODE_SIZE 1
+#define TP0_CHICKEN_SPARE_SIZE 30
+
+#define TP0_CHICKEN_TT_MODE_SHIFT 0
+#define TP0_CHICKEN_VFETCH_ADDRESS_MODE_SHIFT 1
+#define TP0_CHICKEN_SPARE_SHIFT 2
+
+#define TP0_CHICKEN_TT_MODE_MASK 0x00000001
+#define TP0_CHICKEN_VFETCH_ADDRESS_MODE_MASK 0x00000002
+#define TP0_CHICKEN_SPARE_MASK 0xfffffffc
+
+#define TP0_CHICKEN_MASK \
+ (TP0_CHICKEN_TT_MODE_MASK | \
+ TP0_CHICKEN_VFETCH_ADDRESS_MODE_MASK | \
+ TP0_CHICKEN_SPARE_MASK)
+
+#define TP0_CHICKEN(tt_mode, vfetch_address_mode, spare) \
+ ((tt_mode << TP0_CHICKEN_TT_MODE_SHIFT) | \
+ (vfetch_address_mode << TP0_CHICKEN_VFETCH_ADDRESS_MODE_SHIFT) | \
+ (spare << TP0_CHICKEN_SPARE_SHIFT))
+
+#define TP0_CHICKEN_GET_TT_MODE(tp0_chicken) \
+ ((tp0_chicken & TP0_CHICKEN_TT_MODE_MASK) >> TP0_CHICKEN_TT_MODE_SHIFT)
+#define TP0_CHICKEN_GET_VFETCH_ADDRESS_MODE(tp0_chicken) \
+ ((tp0_chicken & TP0_CHICKEN_VFETCH_ADDRESS_MODE_MASK) >> TP0_CHICKEN_VFETCH_ADDRESS_MODE_SHIFT)
+#define TP0_CHICKEN_GET_SPARE(tp0_chicken) \
+ ((tp0_chicken & TP0_CHICKEN_SPARE_MASK) >> TP0_CHICKEN_SPARE_SHIFT)
+
+#define TP0_CHICKEN_SET_TT_MODE(tp0_chicken_reg, tt_mode) \
+ tp0_chicken_reg = (tp0_chicken_reg & ~TP0_CHICKEN_TT_MODE_MASK) | (tt_mode << TP0_CHICKEN_TT_MODE_SHIFT)
+#define TP0_CHICKEN_SET_VFETCH_ADDRESS_MODE(tp0_chicken_reg, vfetch_address_mode) \
+ tp0_chicken_reg = (tp0_chicken_reg & ~TP0_CHICKEN_VFETCH_ADDRESS_MODE_MASK) | (vfetch_address_mode << TP0_CHICKEN_VFETCH_ADDRESS_MODE_SHIFT)
+#define TP0_CHICKEN_SET_SPARE(tp0_chicken_reg, spare) \
+ tp0_chicken_reg = (tp0_chicken_reg & ~TP0_CHICKEN_SPARE_MASK) | (spare << TP0_CHICKEN_SPARE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tp0_chicken_t {
+ unsigned int tt_mode : TP0_CHICKEN_TT_MODE_SIZE;
+ unsigned int vfetch_address_mode : TP0_CHICKEN_VFETCH_ADDRESS_MODE_SIZE;
+ unsigned int spare : TP0_CHICKEN_SPARE_SIZE;
+ } tp0_chicken_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tp0_chicken_t {
+ unsigned int spare : TP0_CHICKEN_SPARE_SIZE;
+ unsigned int vfetch_address_mode : TP0_CHICKEN_VFETCH_ADDRESS_MODE_SIZE;
+ unsigned int tt_mode : TP0_CHICKEN_TT_MODE_SIZE;
+ } tp0_chicken_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tp0_chicken_t f;
+} tp0_chicken_u;
+
+
+/*
+ * TP0_PERFCOUNTER0_SELECT struct
+ */
+
+#define TP0_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SIZE 8
+
+#define TP0_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SHIFT 0
+
+#define TP0_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_MASK 0x000000ff
+
+#define TP0_PERFCOUNTER0_SELECT_MASK \
+ (TP0_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_MASK)
+
+#define TP0_PERFCOUNTER0_SELECT(perfcounter_select) \
+ ((perfcounter_select << TP0_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SHIFT))
+
+#define TP0_PERFCOUNTER0_SELECT_GET_PERFCOUNTER_SELECT(tp0_perfcounter0_select) \
+ ((tp0_perfcounter0_select & TP0_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_MASK) >> TP0_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#define TP0_PERFCOUNTER0_SELECT_SET_PERFCOUNTER_SELECT(tp0_perfcounter0_select_reg, perfcounter_select) \
+ tp0_perfcounter0_select_reg = (tp0_perfcounter0_select_reg & ~TP0_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_MASK) | (perfcounter_select << TP0_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tp0_perfcounter0_select_t {
+ unsigned int perfcounter_select : TP0_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SIZE;
+ unsigned int : 24;
+ } tp0_perfcounter0_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tp0_perfcounter0_select_t {
+ unsigned int : 24;
+ unsigned int perfcounter_select : TP0_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SIZE;
+ } tp0_perfcounter0_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tp0_perfcounter0_select_t f;
+} tp0_perfcounter0_select_u;
+
+
+/*
+ * TP0_PERFCOUNTER0_HI struct
+ */
+
+#define TP0_PERFCOUNTER0_HI_PERFCOUNTER_HI_SIZE 16
+
+#define TP0_PERFCOUNTER0_HI_PERFCOUNTER_HI_SHIFT 0
+
+#define TP0_PERFCOUNTER0_HI_PERFCOUNTER_HI_MASK 0x0000ffff
+
+#define TP0_PERFCOUNTER0_HI_MASK \
+ (TP0_PERFCOUNTER0_HI_PERFCOUNTER_HI_MASK)
+
+#define TP0_PERFCOUNTER0_HI(perfcounter_hi) \
+ ((perfcounter_hi << TP0_PERFCOUNTER0_HI_PERFCOUNTER_HI_SHIFT))
+
+#define TP0_PERFCOUNTER0_HI_GET_PERFCOUNTER_HI(tp0_perfcounter0_hi) \
+ ((tp0_perfcounter0_hi & TP0_PERFCOUNTER0_HI_PERFCOUNTER_HI_MASK) >> TP0_PERFCOUNTER0_HI_PERFCOUNTER_HI_SHIFT)
+
+#define TP0_PERFCOUNTER0_HI_SET_PERFCOUNTER_HI(tp0_perfcounter0_hi_reg, perfcounter_hi) \
+ tp0_perfcounter0_hi_reg = (tp0_perfcounter0_hi_reg & ~TP0_PERFCOUNTER0_HI_PERFCOUNTER_HI_MASK) | (perfcounter_hi << TP0_PERFCOUNTER0_HI_PERFCOUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tp0_perfcounter0_hi_t {
+ unsigned int perfcounter_hi : TP0_PERFCOUNTER0_HI_PERFCOUNTER_HI_SIZE;
+ unsigned int : 16;
+ } tp0_perfcounter0_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tp0_perfcounter0_hi_t {
+ unsigned int : 16;
+ unsigned int perfcounter_hi : TP0_PERFCOUNTER0_HI_PERFCOUNTER_HI_SIZE;
+ } tp0_perfcounter0_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tp0_perfcounter0_hi_t f;
+} tp0_perfcounter0_hi_u;
+
+
+/*
+ * TP0_PERFCOUNTER0_LOW struct
+ */
+
+#define TP0_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SIZE 32
+
+#define TP0_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SHIFT 0
+
+#define TP0_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_MASK 0xffffffff
+
+#define TP0_PERFCOUNTER0_LOW_MASK \
+ (TP0_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_MASK)
+
+#define TP0_PERFCOUNTER0_LOW(perfcounter_low) \
+ ((perfcounter_low << TP0_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SHIFT))
+
+#define TP0_PERFCOUNTER0_LOW_GET_PERFCOUNTER_LOW(tp0_perfcounter0_low) \
+ ((tp0_perfcounter0_low & TP0_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_MASK) >> TP0_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#define TP0_PERFCOUNTER0_LOW_SET_PERFCOUNTER_LOW(tp0_perfcounter0_low_reg, perfcounter_low) \
+ tp0_perfcounter0_low_reg = (tp0_perfcounter0_low_reg & ~TP0_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_MASK) | (perfcounter_low << TP0_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tp0_perfcounter0_low_t {
+ unsigned int perfcounter_low : TP0_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SIZE;
+ } tp0_perfcounter0_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tp0_perfcounter0_low_t {
+ unsigned int perfcounter_low : TP0_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SIZE;
+ } tp0_perfcounter0_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tp0_perfcounter0_low_t f;
+} tp0_perfcounter0_low_u;
+
+
+/*
+ * TP0_PERFCOUNTER1_SELECT struct
+ */
+
+#define TP0_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SIZE 8
+
+#define TP0_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SHIFT 0
+
+#define TP0_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_MASK 0x000000ff
+
+#define TP0_PERFCOUNTER1_SELECT_MASK \
+ (TP0_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_MASK)
+
+#define TP0_PERFCOUNTER1_SELECT(perfcounter_select) \
+ ((perfcounter_select << TP0_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SHIFT))
+
+#define TP0_PERFCOUNTER1_SELECT_GET_PERFCOUNTER_SELECT(tp0_perfcounter1_select) \
+ ((tp0_perfcounter1_select & TP0_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_MASK) >> TP0_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#define TP0_PERFCOUNTER1_SELECT_SET_PERFCOUNTER_SELECT(tp0_perfcounter1_select_reg, perfcounter_select) \
+ tp0_perfcounter1_select_reg = (tp0_perfcounter1_select_reg & ~TP0_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_MASK) | (perfcounter_select << TP0_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tp0_perfcounter1_select_t {
+ unsigned int perfcounter_select : TP0_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SIZE;
+ unsigned int : 24;
+ } tp0_perfcounter1_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tp0_perfcounter1_select_t {
+ unsigned int : 24;
+ unsigned int perfcounter_select : TP0_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SIZE;
+ } tp0_perfcounter1_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tp0_perfcounter1_select_t f;
+} tp0_perfcounter1_select_u;
+
+
+/*
+ * TP0_PERFCOUNTER1_HI struct
+ */
+
+#define TP0_PERFCOUNTER1_HI_PERFCOUNTER_HI_SIZE 16
+
+#define TP0_PERFCOUNTER1_HI_PERFCOUNTER_HI_SHIFT 0
+
+#define TP0_PERFCOUNTER1_HI_PERFCOUNTER_HI_MASK 0x0000ffff
+
+#define TP0_PERFCOUNTER1_HI_MASK \
+ (TP0_PERFCOUNTER1_HI_PERFCOUNTER_HI_MASK)
+
+#define TP0_PERFCOUNTER1_HI(perfcounter_hi) \
+ ((perfcounter_hi << TP0_PERFCOUNTER1_HI_PERFCOUNTER_HI_SHIFT))
+
+#define TP0_PERFCOUNTER1_HI_GET_PERFCOUNTER_HI(tp0_perfcounter1_hi) \
+ ((tp0_perfcounter1_hi & TP0_PERFCOUNTER1_HI_PERFCOUNTER_HI_MASK) >> TP0_PERFCOUNTER1_HI_PERFCOUNTER_HI_SHIFT)
+
+#define TP0_PERFCOUNTER1_HI_SET_PERFCOUNTER_HI(tp0_perfcounter1_hi_reg, perfcounter_hi) \
+ tp0_perfcounter1_hi_reg = (tp0_perfcounter1_hi_reg & ~TP0_PERFCOUNTER1_HI_PERFCOUNTER_HI_MASK) | (perfcounter_hi << TP0_PERFCOUNTER1_HI_PERFCOUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tp0_perfcounter1_hi_t {
+ unsigned int perfcounter_hi : TP0_PERFCOUNTER1_HI_PERFCOUNTER_HI_SIZE;
+ unsigned int : 16;
+ } tp0_perfcounter1_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tp0_perfcounter1_hi_t {
+ unsigned int : 16;
+ unsigned int perfcounter_hi : TP0_PERFCOUNTER1_HI_PERFCOUNTER_HI_SIZE;
+ } tp0_perfcounter1_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tp0_perfcounter1_hi_t f;
+} tp0_perfcounter1_hi_u;
+
+
+/*
+ * TP0_PERFCOUNTER1_LOW struct
+ */
+
+#define TP0_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SIZE 32
+
+#define TP0_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SHIFT 0
+
+#define TP0_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_MASK 0xffffffff
+
+#define TP0_PERFCOUNTER1_LOW_MASK \
+ (TP0_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_MASK)
+
+#define TP0_PERFCOUNTER1_LOW(perfcounter_low) \
+ ((perfcounter_low << TP0_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SHIFT))
+
+#define TP0_PERFCOUNTER1_LOW_GET_PERFCOUNTER_LOW(tp0_perfcounter1_low) \
+ ((tp0_perfcounter1_low & TP0_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_MASK) >> TP0_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#define TP0_PERFCOUNTER1_LOW_SET_PERFCOUNTER_LOW(tp0_perfcounter1_low_reg, perfcounter_low) \
+ tp0_perfcounter1_low_reg = (tp0_perfcounter1_low_reg & ~TP0_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_MASK) | (perfcounter_low << TP0_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tp0_perfcounter1_low_t {
+ unsigned int perfcounter_low : TP0_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SIZE;
+ } tp0_perfcounter1_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tp0_perfcounter1_low_t {
+ unsigned int perfcounter_low : TP0_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SIZE;
+ } tp0_perfcounter1_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tp0_perfcounter1_low_t f;
+} tp0_perfcounter1_low_u;
+
+
+/*
+ * TCM_PERFCOUNTER0_SELECT struct
+ */
+
+#define TCM_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SIZE 8
+
+#define TCM_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SHIFT 0
+
+#define TCM_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_MASK 0x000000ff
+
+#define TCM_PERFCOUNTER0_SELECT_MASK \
+ (TCM_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_MASK)
+
+#define TCM_PERFCOUNTER0_SELECT(perfcounter_select) \
+ ((perfcounter_select << TCM_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SHIFT))
+
+#define TCM_PERFCOUNTER0_SELECT_GET_PERFCOUNTER_SELECT(tcm_perfcounter0_select) \
+ ((tcm_perfcounter0_select & TCM_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_MASK) >> TCM_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#define TCM_PERFCOUNTER0_SELECT_SET_PERFCOUNTER_SELECT(tcm_perfcounter0_select_reg, perfcounter_select) \
+ tcm_perfcounter0_select_reg = (tcm_perfcounter0_select_reg & ~TCM_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_MASK) | (perfcounter_select << TCM_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcm_perfcounter0_select_t {
+ unsigned int perfcounter_select : TCM_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SIZE;
+ unsigned int : 24;
+ } tcm_perfcounter0_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcm_perfcounter0_select_t {
+ unsigned int : 24;
+ unsigned int perfcounter_select : TCM_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SIZE;
+ } tcm_perfcounter0_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcm_perfcounter0_select_t f;
+} tcm_perfcounter0_select_u;
+
+
+/*
+ * TCM_PERFCOUNTER1_SELECT struct
+ */
+
+#define TCM_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SIZE 8
+
+#define TCM_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SHIFT 0
+
+#define TCM_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_MASK 0x000000ff
+
+#define TCM_PERFCOUNTER1_SELECT_MASK \
+ (TCM_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_MASK)
+
+#define TCM_PERFCOUNTER1_SELECT(perfcounter_select) \
+ ((perfcounter_select << TCM_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SHIFT))
+
+#define TCM_PERFCOUNTER1_SELECT_GET_PERFCOUNTER_SELECT(tcm_perfcounter1_select) \
+ ((tcm_perfcounter1_select & TCM_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_MASK) >> TCM_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#define TCM_PERFCOUNTER1_SELECT_SET_PERFCOUNTER_SELECT(tcm_perfcounter1_select_reg, perfcounter_select) \
+ tcm_perfcounter1_select_reg = (tcm_perfcounter1_select_reg & ~TCM_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_MASK) | (perfcounter_select << TCM_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcm_perfcounter1_select_t {
+ unsigned int perfcounter_select : TCM_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SIZE;
+ unsigned int : 24;
+ } tcm_perfcounter1_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcm_perfcounter1_select_t {
+ unsigned int : 24;
+ unsigned int perfcounter_select : TCM_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SIZE;
+ } tcm_perfcounter1_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcm_perfcounter1_select_t f;
+} tcm_perfcounter1_select_u;
+
+
+/*
+ * TCM_PERFCOUNTER0_HI struct
+ */
+
+#define TCM_PERFCOUNTER0_HI_PERFCOUNTER_HI_SIZE 16
+
+#define TCM_PERFCOUNTER0_HI_PERFCOUNTER_HI_SHIFT 0
+
+#define TCM_PERFCOUNTER0_HI_PERFCOUNTER_HI_MASK 0x0000ffff
+
+#define TCM_PERFCOUNTER0_HI_MASK \
+ (TCM_PERFCOUNTER0_HI_PERFCOUNTER_HI_MASK)
+
+#define TCM_PERFCOUNTER0_HI(perfcounter_hi) \
+ ((perfcounter_hi << TCM_PERFCOUNTER0_HI_PERFCOUNTER_HI_SHIFT))
+
+#define TCM_PERFCOUNTER0_HI_GET_PERFCOUNTER_HI(tcm_perfcounter0_hi) \
+ ((tcm_perfcounter0_hi & TCM_PERFCOUNTER0_HI_PERFCOUNTER_HI_MASK) >> TCM_PERFCOUNTER0_HI_PERFCOUNTER_HI_SHIFT)
+
+#define TCM_PERFCOUNTER0_HI_SET_PERFCOUNTER_HI(tcm_perfcounter0_hi_reg, perfcounter_hi) \
+ tcm_perfcounter0_hi_reg = (tcm_perfcounter0_hi_reg & ~TCM_PERFCOUNTER0_HI_PERFCOUNTER_HI_MASK) | (perfcounter_hi << TCM_PERFCOUNTER0_HI_PERFCOUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcm_perfcounter0_hi_t {
+ unsigned int perfcounter_hi : TCM_PERFCOUNTER0_HI_PERFCOUNTER_HI_SIZE;
+ unsigned int : 16;
+ } tcm_perfcounter0_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcm_perfcounter0_hi_t {
+ unsigned int : 16;
+ unsigned int perfcounter_hi : TCM_PERFCOUNTER0_HI_PERFCOUNTER_HI_SIZE;
+ } tcm_perfcounter0_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcm_perfcounter0_hi_t f;
+} tcm_perfcounter0_hi_u;
+
+
+/*
+ * TCM_PERFCOUNTER1_HI struct
+ */
+
+#define TCM_PERFCOUNTER1_HI_PERFCOUNTER_HI_SIZE 16
+
+#define TCM_PERFCOUNTER1_HI_PERFCOUNTER_HI_SHIFT 0
+
+#define TCM_PERFCOUNTER1_HI_PERFCOUNTER_HI_MASK 0x0000ffff
+
+#define TCM_PERFCOUNTER1_HI_MASK \
+ (TCM_PERFCOUNTER1_HI_PERFCOUNTER_HI_MASK)
+
+#define TCM_PERFCOUNTER1_HI(perfcounter_hi) \
+ ((perfcounter_hi << TCM_PERFCOUNTER1_HI_PERFCOUNTER_HI_SHIFT))
+
+#define TCM_PERFCOUNTER1_HI_GET_PERFCOUNTER_HI(tcm_perfcounter1_hi) \
+ ((tcm_perfcounter1_hi & TCM_PERFCOUNTER1_HI_PERFCOUNTER_HI_MASK) >> TCM_PERFCOUNTER1_HI_PERFCOUNTER_HI_SHIFT)
+
+#define TCM_PERFCOUNTER1_HI_SET_PERFCOUNTER_HI(tcm_perfcounter1_hi_reg, perfcounter_hi) \
+ tcm_perfcounter1_hi_reg = (tcm_perfcounter1_hi_reg & ~TCM_PERFCOUNTER1_HI_PERFCOUNTER_HI_MASK) | (perfcounter_hi << TCM_PERFCOUNTER1_HI_PERFCOUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcm_perfcounter1_hi_t {
+ unsigned int perfcounter_hi : TCM_PERFCOUNTER1_HI_PERFCOUNTER_HI_SIZE;
+ unsigned int : 16;
+ } tcm_perfcounter1_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcm_perfcounter1_hi_t {
+ unsigned int : 16;
+ unsigned int perfcounter_hi : TCM_PERFCOUNTER1_HI_PERFCOUNTER_HI_SIZE;
+ } tcm_perfcounter1_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcm_perfcounter1_hi_t f;
+} tcm_perfcounter1_hi_u;
+
+
+/*
+ * TCM_PERFCOUNTER0_LOW struct
+ */
+
+#define TCM_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SIZE 32
+
+#define TCM_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SHIFT 0
+
+#define TCM_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_MASK 0xffffffff
+
+#define TCM_PERFCOUNTER0_LOW_MASK \
+ (TCM_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_MASK)
+
+#define TCM_PERFCOUNTER0_LOW(perfcounter_low) \
+ ((perfcounter_low << TCM_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SHIFT))
+
+#define TCM_PERFCOUNTER0_LOW_GET_PERFCOUNTER_LOW(tcm_perfcounter0_low) \
+ ((tcm_perfcounter0_low & TCM_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_MASK) >> TCM_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#define TCM_PERFCOUNTER0_LOW_SET_PERFCOUNTER_LOW(tcm_perfcounter0_low_reg, perfcounter_low) \
+ tcm_perfcounter0_low_reg = (tcm_perfcounter0_low_reg & ~TCM_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_MASK) | (perfcounter_low << TCM_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcm_perfcounter0_low_t {
+ unsigned int perfcounter_low : TCM_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcm_perfcounter0_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcm_perfcounter0_low_t {
+ unsigned int perfcounter_low : TCM_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcm_perfcounter0_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcm_perfcounter0_low_t f;
+} tcm_perfcounter0_low_u;
+
+
+/*
+ * TCM_PERFCOUNTER1_LOW struct
+ */
+
+#define TCM_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SIZE 32
+
+#define TCM_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SHIFT 0
+
+#define TCM_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_MASK 0xffffffff
+
+#define TCM_PERFCOUNTER1_LOW_MASK \
+ (TCM_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_MASK)
+
+#define TCM_PERFCOUNTER1_LOW(perfcounter_low) \
+ ((perfcounter_low << TCM_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SHIFT))
+
+#define TCM_PERFCOUNTER1_LOW_GET_PERFCOUNTER_LOW(tcm_perfcounter1_low) \
+ ((tcm_perfcounter1_low & TCM_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_MASK) >> TCM_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#define TCM_PERFCOUNTER1_LOW_SET_PERFCOUNTER_LOW(tcm_perfcounter1_low_reg, perfcounter_low) \
+ tcm_perfcounter1_low_reg = (tcm_perfcounter1_low_reg & ~TCM_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_MASK) | (perfcounter_low << TCM_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcm_perfcounter1_low_t {
+ unsigned int perfcounter_low : TCM_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcm_perfcounter1_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcm_perfcounter1_low_t {
+ unsigned int perfcounter_low : TCM_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcm_perfcounter1_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcm_perfcounter1_low_t f;
+} tcm_perfcounter1_low_u;
+
+
+/*
+ * TCF_PERFCOUNTER0_SELECT struct
+ */
+
+#define TCF_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SIZE 8
+
+#define TCF_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SHIFT 0
+
+#define TCF_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_MASK 0x000000ff
+
+#define TCF_PERFCOUNTER0_SELECT_MASK \
+ (TCF_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_MASK)
+
+#define TCF_PERFCOUNTER0_SELECT(perfcounter_select) \
+ ((perfcounter_select << TCF_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SHIFT))
+
+#define TCF_PERFCOUNTER0_SELECT_GET_PERFCOUNTER_SELECT(tcf_perfcounter0_select) \
+ ((tcf_perfcounter0_select & TCF_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_MASK) >> TCF_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#define TCF_PERFCOUNTER0_SELECT_SET_PERFCOUNTER_SELECT(tcf_perfcounter0_select_reg, perfcounter_select) \
+ tcf_perfcounter0_select_reg = (tcf_perfcounter0_select_reg & ~TCF_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_MASK) | (perfcounter_select << TCF_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter0_select_t {
+ unsigned int perfcounter_select : TCF_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SIZE;
+ unsigned int : 24;
+ } tcf_perfcounter0_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter0_select_t {
+ unsigned int : 24;
+ unsigned int perfcounter_select : TCF_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SIZE;
+ } tcf_perfcounter0_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter0_select_t f;
+} tcf_perfcounter0_select_u;
+
+
+/*
+ * TCF_PERFCOUNTER1_SELECT struct
+ */
+
+#define TCF_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SIZE 8
+
+#define TCF_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SHIFT 0
+
+#define TCF_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_MASK 0x000000ff
+
+#define TCF_PERFCOUNTER1_SELECT_MASK \
+ (TCF_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_MASK)
+
+#define TCF_PERFCOUNTER1_SELECT(perfcounter_select) \
+ ((perfcounter_select << TCF_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SHIFT))
+
+#define TCF_PERFCOUNTER1_SELECT_GET_PERFCOUNTER_SELECT(tcf_perfcounter1_select) \
+ ((tcf_perfcounter1_select & TCF_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_MASK) >> TCF_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#define TCF_PERFCOUNTER1_SELECT_SET_PERFCOUNTER_SELECT(tcf_perfcounter1_select_reg, perfcounter_select) \
+ tcf_perfcounter1_select_reg = (tcf_perfcounter1_select_reg & ~TCF_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_MASK) | (perfcounter_select << TCF_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter1_select_t {
+ unsigned int perfcounter_select : TCF_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SIZE;
+ unsigned int : 24;
+ } tcf_perfcounter1_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter1_select_t {
+ unsigned int : 24;
+ unsigned int perfcounter_select : TCF_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SIZE;
+ } tcf_perfcounter1_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter1_select_t f;
+} tcf_perfcounter1_select_u;
+
+
+/*
+ * TCF_PERFCOUNTER2_SELECT struct
+ */
+
+#define TCF_PERFCOUNTER2_SELECT_PERFCOUNTER_SELECT_SIZE 8
+
+#define TCF_PERFCOUNTER2_SELECT_PERFCOUNTER_SELECT_SHIFT 0
+
+#define TCF_PERFCOUNTER2_SELECT_PERFCOUNTER_SELECT_MASK 0x000000ff
+
+#define TCF_PERFCOUNTER2_SELECT_MASK \
+ (TCF_PERFCOUNTER2_SELECT_PERFCOUNTER_SELECT_MASK)
+
+#define TCF_PERFCOUNTER2_SELECT(perfcounter_select) \
+ ((perfcounter_select << TCF_PERFCOUNTER2_SELECT_PERFCOUNTER_SELECT_SHIFT))
+
+#define TCF_PERFCOUNTER2_SELECT_GET_PERFCOUNTER_SELECT(tcf_perfcounter2_select) \
+ ((tcf_perfcounter2_select & TCF_PERFCOUNTER2_SELECT_PERFCOUNTER_SELECT_MASK) >> TCF_PERFCOUNTER2_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#define TCF_PERFCOUNTER2_SELECT_SET_PERFCOUNTER_SELECT(tcf_perfcounter2_select_reg, perfcounter_select) \
+ tcf_perfcounter2_select_reg = (tcf_perfcounter2_select_reg & ~TCF_PERFCOUNTER2_SELECT_PERFCOUNTER_SELECT_MASK) | (perfcounter_select << TCF_PERFCOUNTER2_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter2_select_t {
+ unsigned int perfcounter_select : TCF_PERFCOUNTER2_SELECT_PERFCOUNTER_SELECT_SIZE;
+ unsigned int : 24;
+ } tcf_perfcounter2_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter2_select_t {
+ unsigned int : 24;
+ unsigned int perfcounter_select : TCF_PERFCOUNTER2_SELECT_PERFCOUNTER_SELECT_SIZE;
+ } tcf_perfcounter2_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter2_select_t f;
+} tcf_perfcounter2_select_u;
+
+
+/*
+ * TCF_PERFCOUNTER3_SELECT struct
+ */
+
+#define TCF_PERFCOUNTER3_SELECT_PERFCOUNTER_SELECT_SIZE 8
+
+#define TCF_PERFCOUNTER3_SELECT_PERFCOUNTER_SELECT_SHIFT 0
+
+#define TCF_PERFCOUNTER3_SELECT_PERFCOUNTER_SELECT_MASK 0x000000ff
+
+#define TCF_PERFCOUNTER3_SELECT_MASK \
+ (TCF_PERFCOUNTER3_SELECT_PERFCOUNTER_SELECT_MASK)
+
+#define TCF_PERFCOUNTER3_SELECT(perfcounter_select) \
+ ((perfcounter_select << TCF_PERFCOUNTER3_SELECT_PERFCOUNTER_SELECT_SHIFT))
+
+#define TCF_PERFCOUNTER3_SELECT_GET_PERFCOUNTER_SELECT(tcf_perfcounter3_select) \
+ ((tcf_perfcounter3_select & TCF_PERFCOUNTER3_SELECT_PERFCOUNTER_SELECT_MASK) >> TCF_PERFCOUNTER3_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#define TCF_PERFCOUNTER3_SELECT_SET_PERFCOUNTER_SELECT(tcf_perfcounter3_select_reg, perfcounter_select) \
+ tcf_perfcounter3_select_reg = (tcf_perfcounter3_select_reg & ~TCF_PERFCOUNTER3_SELECT_PERFCOUNTER_SELECT_MASK) | (perfcounter_select << TCF_PERFCOUNTER3_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter3_select_t {
+ unsigned int perfcounter_select : TCF_PERFCOUNTER3_SELECT_PERFCOUNTER_SELECT_SIZE;
+ unsigned int : 24;
+ } tcf_perfcounter3_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter3_select_t {
+ unsigned int : 24;
+ unsigned int perfcounter_select : TCF_PERFCOUNTER3_SELECT_PERFCOUNTER_SELECT_SIZE;
+ } tcf_perfcounter3_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter3_select_t f;
+} tcf_perfcounter3_select_u;
+
+
+/*
+ * TCF_PERFCOUNTER4_SELECT struct
+ */
+
+#define TCF_PERFCOUNTER4_SELECT_PERFCOUNTER_SELECT_SIZE 8
+
+#define TCF_PERFCOUNTER4_SELECT_PERFCOUNTER_SELECT_SHIFT 0
+
+#define TCF_PERFCOUNTER4_SELECT_PERFCOUNTER_SELECT_MASK 0x000000ff
+
+#define TCF_PERFCOUNTER4_SELECT_MASK \
+ (TCF_PERFCOUNTER4_SELECT_PERFCOUNTER_SELECT_MASK)
+
+#define TCF_PERFCOUNTER4_SELECT(perfcounter_select) \
+ ((perfcounter_select << TCF_PERFCOUNTER4_SELECT_PERFCOUNTER_SELECT_SHIFT))
+
+#define TCF_PERFCOUNTER4_SELECT_GET_PERFCOUNTER_SELECT(tcf_perfcounter4_select) \
+ ((tcf_perfcounter4_select & TCF_PERFCOUNTER4_SELECT_PERFCOUNTER_SELECT_MASK) >> TCF_PERFCOUNTER4_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#define TCF_PERFCOUNTER4_SELECT_SET_PERFCOUNTER_SELECT(tcf_perfcounter4_select_reg, perfcounter_select) \
+ tcf_perfcounter4_select_reg = (tcf_perfcounter4_select_reg & ~TCF_PERFCOUNTER4_SELECT_PERFCOUNTER_SELECT_MASK) | (perfcounter_select << TCF_PERFCOUNTER4_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter4_select_t {
+ unsigned int perfcounter_select : TCF_PERFCOUNTER4_SELECT_PERFCOUNTER_SELECT_SIZE;
+ unsigned int : 24;
+ } tcf_perfcounter4_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter4_select_t {
+ unsigned int : 24;
+ unsigned int perfcounter_select : TCF_PERFCOUNTER4_SELECT_PERFCOUNTER_SELECT_SIZE;
+ } tcf_perfcounter4_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter4_select_t f;
+} tcf_perfcounter4_select_u;
+
+
+/*
+ * TCF_PERFCOUNTER5_SELECT struct
+ */
+
+#define TCF_PERFCOUNTER5_SELECT_PERFCOUNTER_SELECT_SIZE 8
+
+#define TCF_PERFCOUNTER5_SELECT_PERFCOUNTER_SELECT_SHIFT 0
+
+#define TCF_PERFCOUNTER5_SELECT_PERFCOUNTER_SELECT_MASK 0x000000ff
+
+#define TCF_PERFCOUNTER5_SELECT_MASK \
+ (TCF_PERFCOUNTER5_SELECT_PERFCOUNTER_SELECT_MASK)
+
+#define TCF_PERFCOUNTER5_SELECT(perfcounter_select) \
+ ((perfcounter_select << TCF_PERFCOUNTER5_SELECT_PERFCOUNTER_SELECT_SHIFT))
+
+#define TCF_PERFCOUNTER5_SELECT_GET_PERFCOUNTER_SELECT(tcf_perfcounter5_select) \
+ ((tcf_perfcounter5_select & TCF_PERFCOUNTER5_SELECT_PERFCOUNTER_SELECT_MASK) >> TCF_PERFCOUNTER5_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#define TCF_PERFCOUNTER5_SELECT_SET_PERFCOUNTER_SELECT(tcf_perfcounter5_select_reg, perfcounter_select) \
+ tcf_perfcounter5_select_reg = (tcf_perfcounter5_select_reg & ~TCF_PERFCOUNTER5_SELECT_PERFCOUNTER_SELECT_MASK) | (perfcounter_select << TCF_PERFCOUNTER5_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter5_select_t {
+ unsigned int perfcounter_select : TCF_PERFCOUNTER5_SELECT_PERFCOUNTER_SELECT_SIZE;
+ unsigned int : 24;
+ } tcf_perfcounter5_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter5_select_t {
+ unsigned int : 24;
+ unsigned int perfcounter_select : TCF_PERFCOUNTER5_SELECT_PERFCOUNTER_SELECT_SIZE;
+ } tcf_perfcounter5_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter5_select_t f;
+} tcf_perfcounter5_select_u;
+
+
+/*
+ * TCF_PERFCOUNTER6_SELECT struct
+ */
+
+#define TCF_PERFCOUNTER6_SELECT_PERFCOUNTER_SELECT_SIZE 8
+
+#define TCF_PERFCOUNTER6_SELECT_PERFCOUNTER_SELECT_SHIFT 0
+
+#define TCF_PERFCOUNTER6_SELECT_PERFCOUNTER_SELECT_MASK 0x000000ff
+
+#define TCF_PERFCOUNTER6_SELECT_MASK \
+ (TCF_PERFCOUNTER6_SELECT_PERFCOUNTER_SELECT_MASK)
+
+#define TCF_PERFCOUNTER6_SELECT(perfcounter_select) \
+ ((perfcounter_select << TCF_PERFCOUNTER6_SELECT_PERFCOUNTER_SELECT_SHIFT))
+
+#define TCF_PERFCOUNTER6_SELECT_GET_PERFCOUNTER_SELECT(tcf_perfcounter6_select) \
+ ((tcf_perfcounter6_select & TCF_PERFCOUNTER6_SELECT_PERFCOUNTER_SELECT_MASK) >> TCF_PERFCOUNTER6_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#define TCF_PERFCOUNTER6_SELECT_SET_PERFCOUNTER_SELECT(tcf_perfcounter6_select_reg, perfcounter_select) \
+ tcf_perfcounter6_select_reg = (tcf_perfcounter6_select_reg & ~TCF_PERFCOUNTER6_SELECT_PERFCOUNTER_SELECT_MASK) | (perfcounter_select << TCF_PERFCOUNTER6_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter6_select_t {
+ unsigned int perfcounter_select : TCF_PERFCOUNTER6_SELECT_PERFCOUNTER_SELECT_SIZE;
+ unsigned int : 24;
+ } tcf_perfcounter6_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter6_select_t {
+ unsigned int : 24;
+ unsigned int perfcounter_select : TCF_PERFCOUNTER6_SELECT_PERFCOUNTER_SELECT_SIZE;
+ } tcf_perfcounter6_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter6_select_t f;
+} tcf_perfcounter6_select_u;
+
+
+/*
+ * TCF_PERFCOUNTER7_SELECT struct
+ */
+
+#define TCF_PERFCOUNTER7_SELECT_PERFCOUNTER_SELECT_SIZE 8
+
+#define TCF_PERFCOUNTER7_SELECT_PERFCOUNTER_SELECT_SHIFT 0
+
+#define TCF_PERFCOUNTER7_SELECT_PERFCOUNTER_SELECT_MASK 0x000000ff
+
+#define TCF_PERFCOUNTER7_SELECT_MASK \
+ (TCF_PERFCOUNTER7_SELECT_PERFCOUNTER_SELECT_MASK)
+
+#define TCF_PERFCOUNTER7_SELECT(perfcounter_select) \
+ ((perfcounter_select << TCF_PERFCOUNTER7_SELECT_PERFCOUNTER_SELECT_SHIFT))
+
+#define TCF_PERFCOUNTER7_SELECT_GET_PERFCOUNTER_SELECT(tcf_perfcounter7_select) \
+ ((tcf_perfcounter7_select & TCF_PERFCOUNTER7_SELECT_PERFCOUNTER_SELECT_MASK) >> TCF_PERFCOUNTER7_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#define TCF_PERFCOUNTER7_SELECT_SET_PERFCOUNTER_SELECT(tcf_perfcounter7_select_reg, perfcounter_select) \
+ tcf_perfcounter7_select_reg = (tcf_perfcounter7_select_reg & ~TCF_PERFCOUNTER7_SELECT_PERFCOUNTER_SELECT_MASK) | (perfcounter_select << TCF_PERFCOUNTER7_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter7_select_t {
+ unsigned int perfcounter_select : TCF_PERFCOUNTER7_SELECT_PERFCOUNTER_SELECT_SIZE;
+ unsigned int : 24;
+ } tcf_perfcounter7_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter7_select_t {
+ unsigned int : 24;
+ unsigned int perfcounter_select : TCF_PERFCOUNTER7_SELECT_PERFCOUNTER_SELECT_SIZE;
+ } tcf_perfcounter7_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter7_select_t f;
+} tcf_perfcounter7_select_u;
+
+
+/*
+ * TCF_PERFCOUNTER8_SELECT struct
+ */
+
+#define TCF_PERFCOUNTER8_SELECT_PERFCOUNTER_SELECT_SIZE 8
+
+#define TCF_PERFCOUNTER8_SELECT_PERFCOUNTER_SELECT_SHIFT 0
+
+#define TCF_PERFCOUNTER8_SELECT_PERFCOUNTER_SELECT_MASK 0x000000ff
+
+#define TCF_PERFCOUNTER8_SELECT_MASK \
+ (TCF_PERFCOUNTER8_SELECT_PERFCOUNTER_SELECT_MASK)
+
+#define TCF_PERFCOUNTER8_SELECT(perfcounter_select) \
+ ((perfcounter_select << TCF_PERFCOUNTER8_SELECT_PERFCOUNTER_SELECT_SHIFT))
+
+#define TCF_PERFCOUNTER8_SELECT_GET_PERFCOUNTER_SELECT(tcf_perfcounter8_select) \
+ ((tcf_perfcounter8_select & TCF_PERFCOUNTER8_SELECT_PERFCOUNTER_SELECT_MASK) >> TCF_PERFCOUNTER8_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#define TCF_PERFCOUNTER8_SELECT_SET_PERFCOUNTER_SELECT(tcf_perfcounter8_select_reg, perfcounter_select) \
+ tcf_perfcounter8_select_reg = (tcf_perfcounter8_select_reg & ~TCF_PERFCOUNTER8_SELECT_PERFCOUNTER_SELECT_MASK) | (perfcounter_select << TCF_PERFCOUNTER8_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter8_select_t {
+ unsigned int perfcounter_select : TCF_PERFCOUNTER8_SELECT_PERFCOUNTER_SELECT_SIZE;
+ unsigned int : 24;
+ } tcf_perfcounter8_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter8_select_t {
+ unsigned int : 24;
+ unsigned int perfcounter_select : TCF_PERFCOUNTER8_SELECT_PERFCOUNTER_SELECT_SIZE;
+ } tcf_perfcounter8_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter8_select_t f;
+} tcf_perfcounter8_select_u;
+
+
+/*
+ * TCF_PERFCOUNTER9_SELECT struct
+ */
+
+#define TCF_PERFCOUNTER9_SELECT_PERFCOUNTER_SELECT_SIZE 8
+
+#define TCF_PERFCOUNTER9_SELECT_PERFCOUNTER_SELECT_SHIFT 0
+
+#define TCF_PERFCOUNTER9_SELECT_PERFCOUNTER_SELECT_MASK 0x000000ff
+
+#define TCF_PERFCOUNTER9_SELECT_MASK \
+ (TCF_PERFCOUNTER9_SELECT_PERFCOUNTER_SELECT_MASK)
+
+#define TCF_PERFCOUNTER9_SELECT(perfcounter_select) \
+ ((perfcounter_select << TCF_PERFCOUNTER9_SELECT_PERFCOUNTER_SELECT_SHIFT))
+
+#define TCF_PERFCOUNTER9_SELECT_GET_PERFCOUNTER_SELECT(tcf_perfcounter9_select) \
+ ((tcf_perfcounter9_select & TCF_PERFCOUNTER9_SELECT_PERFCOUNTER_SELECT_MASK) >> TCF_PERFCOUNTER9_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#define TCF_PERFCOUNTER9_SELECT_SET_PERFCOUNTER_SELECT(tcf_perfcounter9_select_reg, perfcounter_select) \
+ tcf_perfcounter9_select_reg = (tcf_perfcounter9_select_reg & ~TCF_PERFCOUNTER9_SELECT_PERFCOUNTER_SELECT_MASK) | (perfcounter_select << TCF_PERFCOUNTER9_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter9_select_t {
+ unsigned int perfcounter_select : TCF_PERFCOUNTER9_SELECT_PERFCOUNTER_SELECT_SIZE;
+ unsigned int : 24;
+ } tcf_perfcounter9_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter9_select_t {
+ unsigned int : 24;
+ unsigned int perfcounter_select : TCF_PERFCOUNTER9_SELECT_PERFCOUNTER_SELECT_SIZE;
+ } tcf_perfcounter9_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter9_select_t f;
+} tcf_perfcounter9_select_u;
+
+
+/*
+ * TCF_PERFCOUNTER10_SELECT struct
+ */
+
+#define TCF_PERFCOUNTER10_SELECT_PERFCOUNTER_SELECT_SIZE 8
+
+#define TCF_PERFCOUNTER10_SELECT_PERFCOUNTER_SELECT_SHIFT 0
+
+#define TCF_PERFCOUNTER10_SELECT_PERFCOUNTER_SELECT_MASK 0x000000ff
+
+#define TCF_PERFCOUNTER10_SELECT_MASK \
+ (TCF_PERFCOUNTER10_SELECT_PERFCOUNTER_SELECT_MASK)
+
+#define TCF_PERFCOUNTER10_SELECT(perfcounter_select) \
+ ((perfcounter_select << TCF_PERFCOUNTER10_SELECT_PERFCOUNTER_SELECT_SHIFT))
+
+#define TCF_PERFCOUNTER10_SELECT_GET_PERFCOUNTER_SELECT(tcf_perfcounter10_select) \
+ ((tcf_perfcounter10_select & TCF_PERFCOUNTER10_SELECT_PERFCOUNTER_SELECT_MASK) >> TCF_PERFCOUNTER10_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#define TCF_PERFCOUNTER10_SELECT_SET_PERFCOUNTER_SELECT(tcf_perfcounter10_select_reg, perfcounter_select) \
+ tcf_perfcounter10_select_reg = (tcf_perfcounter10_select_reg & ~TCF_PERFCOUNTER10_SELECT_PERFCOUNTER_SELECT_MASK) | (perfcounter_select << TCF_PERFCOUNTER10_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter10_select_t {
+ unsigned int perfcounter_select : TCF_PERFCOUNTER10_SELECT_PERFCOUNTER_SELECT_SIZE;
+ unsigned int : 24;
+ } tcf_perfcounter10_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter10_select_t {
+ unsigned int : 24;
+ unsigned int perfcounter_select : TCF_PERFCOUNTER10_SELECT_PERFCOUNTER_SELECT_SIZE;
+ } tcf_perfcounter10_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter10_select_t f;
+} tcf_perfcounter10_select_u;
+
+
+/*
+ * TCF_PERFCOUNTER11_SELECT struct
+ */
+
+#define TCF_PERFCOUNTER11_SELECT_PERFCOUNTER_SELECT_SIZE 8
+
+#define TCF_PERFCOUNTER11_SELECT_PERFCOUNTER_SELECT_SHIFT 0
+
+#define TCF_PERFCOUNTER11_SELECT_PERFCOUNTER_SELECT_MASK 0x000000ff
+
+#define TCF_PERFCOUNTER11_SELECT_MASK \
+ (TCF_PERFCOUNTER11_SELECT_PERFCOUNTER_SELECT_MASK)
+
+#define TCF_PERFCOUNTER11_SELECT(perfcounter_select) \
+ ((perfcounter_select << TCF_PERFCOUNTER11_SELECT_PERFCOUNTER_SELECT_SHIFT))
+
+#define TCF_PERFCOUNTER11_SELECT_GET_PERFCOUNTER_SELECT(tcf_perfcounter11_select) \
+ ((tcf_perfcounter11_select & TCF_PERFCOUNTER11_SELECT_PERFCOUNTER_SELECT_MASK) >> TCF_PERFCOUNTER11_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#define TCF_PERFCOUNTER11_SELECT_SET_PERFCOUNTER_SELECT(tcf_perfcounter11_select_reg, perfcounter_select) \
+ tcf_perfcounter11_select_reg = (tcf_perfcounter11_select_reg & ~TCF_PERFCOUNTER11_SELECT_PERFCOUNTER_SELECT_MASK) | (perfcounter_select << TCF_PERFCOUNTER11_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter11_select_t {
+ unsigned int perfcounter_select : TCF_PERFCOUNTER11_SELECT_PERFCOUNTER_SELECT_SIZE;
+ unsigned int : 24;
+ } tcf_perfcounter11_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter11_select_t {
+ unsigned int : 24;
+ unsigned int perfcounter_select : TCF_PERFCOUNTER11_SELECT_PERFCOUNTER_SELECT_SIZE;
+ } tcf_perfcounter11_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter11_select_t f;
+} tcf_perfcounter11_select_u;
+
+
+/*
+ * TCF_PERFCOUNTER0_HI struct
+ */
+
+#define TCF_PERFCOUNTER0_HI_PERFCOUNTER_HI_SIZE 16
+
+#define TCF_PERFCOUNTER0_HI_PERFCOUNTER_HI_SHIFT 0
+
+#define TCF_PERFCOUNTER0_HI_PERFCOUNTER_HI_MASK 0x0000ffff
+
+#define TCF_PERFCOUNTER0_HI_MASK \
+ (TCF_PERFCOUNTER0_HI_PERFCOUNTER_HI_MASK)
+
+#define TCF_PERFCOUNTER0_HI(perfcounter_hi) \
+ ((perfcounter_hi << TCF_PERFCOUNTER0_HI_PERFCOUNTER_HI_SHIFT))
+
+#define TCF_PERFCOUNTER0_HI_GET_PERFCOUNTER_HI(tcf_perfcounter0_hi) \
+ ((tcf_perfcounter0_hi & TCF_PERFCOUNTER0_HI_PERFCOUNTER_HI_MASK) >> TCF_PERFCOUNTER0_HI_PERFCOUNTER_HI_SHIFT)
+
+#define TCF_PERFCOUNTER0_HI_SET_PERFCOUNTER_HI(tcf_perfcounter0_hi_reg, perfcounter_hi) \
+ tcf_perfcounter0_hi_reg = (tcf_perfcounter0_hi_reg & ~TCF_PERFCOUNTER0_HI_PERFCOUNTER_HI_MASK) | (perfcounter_hi << TCF_PERFCOUNTER0_HI_PERFCOUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter0_hi_t {
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER0_HI_PERFCOUNTER_HI_SIZE;
+ unsigned int : 16;
+ } tcf_perfcounter0_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter0_hi_t {
+ unsigned int : 16;
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER0_HI_PERFCOUNTER_HI_SIZE;
+ } tcf_perfcounter0_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter0_hi_t f;
+} tcf_perfcounter0_hi_u;
+
+
+/*
+ * TCF_PERFCOUNTER1_HI struct
+ */
+
+#define TCF_PERFCOUNTER1_HI_PERFCOUNTER_HI_SIZE 16
+
+#define TCF_PERFCOUNTER1_HI_PERFCOUNTER_HI_SHIFT 0
+
+#define TCF_PERFCOUNTER1_HI_PERFCOUNTER_HI_MASK 0x0000ffff
+
+#define TCF_PERFCOUNTER1_HI_MASK \
+ (TCF_PERFCOUNTER1_HI_PERFCOUNTER_HI_MASK)
+
+#define TCF_PERFCOUNTER1_HI(perfcounter_hi) \
+ ((perfcounter_hi << TCF_PERFCOUNTER1_HI_PERFCOUNTER_HI_SHIFT))
+
+#define TCF_PERFCOUNTER1_HI_GET_PERFCOUNTER_HI(tcf_perfcounter1_hi) \
+ ((tcf_perfcounter1_hi & TCF_PERFCOUNTER1_HI_PERFCOUNTER_HI_MASK) >> TCF_PERFCOUNTER1_HI_PERFCOUNTER_HI_SHIFT)
+
+#define TCF_PERFCOUNTER1_HI_SET_PERFCOUNTER_HI(tcf_perfcounter1_hi_reg, perfcounter_hi) \
+ tcf_perfcounter1_hi_reg = (tcf_perfcounter1_hi_reg & ~TCF_PERFCOUNTER1_HI_PERFCOUNTER_HI_MASK) | (perfcounter_hi << TCF_PERFCOUNTER1_HI_PERFCOUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter1_hi_t {
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER1_HI_PERFCOUNTER_HI_SIZE;
+ unsigned int : 16;
+ } tcf_perfcounter1_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter1_hi_t {
+ unsigned int : 16;
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER1_HI_PERFCOUNTER_HI_SIZE;
+ } tcf_perfcounter1_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter1_hi_t f;
+} tcf_perfcounter1_hi_u;
+
+
+/*
+ * TCF_PERFCOUNTER2_HI struct
+ */
+
+#define TCF_PERFCOUNTER2_HI_PERFCOUNTER_HI_SIZE 16
+
+#define TCF_PERFCOUNTER2_HI_PERFCOUNTER_HI_SHIFT 0
+
+#define TCF_PERFCOUNTER2_HI_PERFCOUNTER_HI_MASK 0x0000ffff
+
+#define TCF_PERFCOUNTER2_HI_MASK \
+ (TCF_PERFCOUNTER2_HI_PERFCOUNTER_HI_MASK)
+
+#define TCF_PERFCOUNTER2_HI(perfcounter_hi) \
+ ((perfcounter_hi << TCF_PERFCOUNTER2_HI_PERFCOUNTER_HI_SHIFT))
+
+#define TCF_PERFCOUNTER2_HI_GET_PERFCOUNTER_HI(tcf_perfcounter2_hi) \
+ ((tcf_perfcounter2_hi & TCF_PERFCOUNTER2_HI_PERFCOUNTER_HI_MASK) >> TCF_PERFCOUNTER2_HI_PERFCOUNTER_HI_SHIFT)
+
+#define TCF_PERFCOUNTER2_HI_SET_PERFCOUNTER_HI(tcf_perfcounter2_hi_reg, perfcounter_hi) \
+ tcf_perfcounter2_hi_reg = (tcf_perfcounter2_hi_reg & ~TCF_PERFCOUNTER2_HI_PERFCOUNTER_HI_MASK) | (perfcounter_hi << TCF_PERFCOUNTER2_HI_PERFCOUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter2_hi_t {
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER2_HI_PERFCOUNTER_HI_SIZE;
+ unsigned int : 16;
+ } tcf_perfcounter2_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter2_hi_t {
+ unsigned int : 16;
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER2_HI_PERFCOUNTER_HI_SIZE;
+ } tcf_perfcounter2_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter2_hi_t f;
+} tcf_perfcounter2_hi_u;
+
+
+/*
+ * TCF_PERFCOUNTER3_HI struct
+ */
+
+#define TCF_PERFCOUNTER3_HI_PERFCOUNTER_HI_SIZE 16
+
+#define TCF_PERFCOUNTER3_HI_PERFCOUNTER_HI_SHIFT 0
+
+#define TCF_PERFCOUNTER3_HI_PERFCOUNTER_HI_MASK 0x0000ffff
+
+#define TCF_PERFCOUNTER3_HI_MASK \
+ (TCF_PERFCOUNTER3_HI_PERFCOUNTER_HI_MASK)
+
+#define TCF_PERFCOUNTER3_HI(perfcounter_hi) \
+ ((perfcounter_hi << TCF_PERFCOUNTER3_HI_PERFCOUNTER_HI_SHIFT))
+
+#define TCF_PERFCOUNTER3_HI_GET_PERFCOUNTER_HI(tcf_perfcounter3_hi) \
+ ((tcf_perfcounter3_hi & TCF_PERFCOUNTER3_HI_PERFCOUNTER_HI_MASK) >> TCF_PERFCOUNTER3_HI_PERFCOUNTER_HI_SHIFT)
+
+#define TCF_PERFCOUNTER3_HI_SET_PERFCOUNTER_HI(tcf_perfcounter3_hi_reg, perfcounter_hi) \
+ tcf_perfcounter3_hi_reg = (tcf_perfcounter3_hi_reg & ~TCF_PERFCOUNTER3_HI_PERFCOUNTER_HI_MASK) | (perfcounter_hi << TCF_PERFCOUNTER3_HI_PERFCOUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter3_hi_t {
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER3_HI_PERFCOUNTER_HI_SIZE;
+ unsigned int : 16;
+ } tcf_perfcounter3_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter3_hi_t {
+ unsigned int : 16;
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER3_HI_PERFCOUNTER_HI_SIZE;
+ } tcf_perfcounter3_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter3_hi_t f;
+} tcf_perfcounter3_hi_u;
+
+
+/*
+ * TCF_PERFCOUNTER4_HI struct
+ */
+
+#define TCF_PERFCOUNTER4_HI_PERFCOUNTER_HI_SIZE 16
+
+#define TCF_PERFCOUNTER4_HI_PERFCOUNTER_HI_SHIFT 0
+
+#define TCF_PERFCOUNTER4_HI_PERFCOUNTER_HI_MASK 0x0000ffff
+
+#define TCF_PERFCOUNTER4_HI_MASK \
+ (TCF_PERFCOUNTER4_HI_PERFCOUNTER_HI_MASK)
+
+#define TCF_PERFCOUNTER4_HI(perfcounter_hi) \
+ ((perfcounter_hi << TCF_PERFCOUNTER4_HI_PERFCOUNTER_HI_SHIFT))
+
+#define TCF_PERFCOUNTER4_HI_GET_PERFCOUNTER_HI(tcf_perfcounter4_hi) \
+ ((tcf_perfcounter4_hi & TCF_PERFCOUNTER4_HI_PERFCOUNTER_HI_MASK) >> TCF_PERFCOUNTER4_HI_PERFCOUNTER_HI_SHIFT)
+
+#define TCF_PERFCOUNTER4_HI_SET_PERFCOUNTER_HI(tcf_perfcounter4_hi_reg, perfcounter_hi) \
+ tcf_perfcounter4_hi_reg = (tcf_perfcounter4_hi_reg & ~TCF_PERFCOUNTER4_HI_PERFCOUNTER_HI_MASK) | (perfcounter_hi << TCF_PERFCOUNTER4_HI_PERFCOUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter4_hi_t {
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER4_HI_PERFCOUNTER_HI_SIZE;
+ unsigned int : 16;
+ } tcf_perfcounter4_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter4_hi_t {
+ unsigned int : 16;
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER4_HI_PERFCOUNTER_HI_SIZE;
+ } tcf_perfcounter4_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter4_hi_t f;
+} tcf_perfcounter4_hi_u;
+
+
+/*
+ * TCF_PERFCOUNTER5_HI struct
+ */
+
+#define TCF_PERFCOUNTER5_HI_PERFCOUNTER_HI_SIZE 16
+
+#define TCF_PERFCOUNTER5_HI_PERFCOUNTER_HI_SHIFT 0
+
+#define TCF_PERFCOUNTER5_HI_PERFCOUNTER_HI_MASK 0x0000ffff
+
+#define TCF_PERFCOUNTER5_HI_MASK \
+ (TCF_PERFCOUNTER5_HI_PERFCOUNTER_HI_MASK)
+
+#define TCF_PERFCOUNTER5_HI(perfcounter_hi) \
+ ((perfcounter_hi << TCF_PERFCOUNTER5_HI_PERFCOUNTER_HI_SHIFT))
+
+#define TCF_PERFCOUNTER5_HI_GET_PERFCOUNTER_HI(tcf_perfcounter5_hi) \
+ ((tcf_perfcounter5_hi & TCF_PERFCOUNTER5_HI_PERFCOUNTER_HI_MASK) >> TCF_PERFCOUNTER5_HI_PERFCOUNTER_HI_SHIFT)
+
+#define TCF_PERFCOUNTER5_HI_SET_PERFCOUNTER_HI(tcf_perfcounter5_hi_reg, perfcounter_hi) \
+ tcf_perfcounter5_hi_reg = (tcf_perfcounter5_hi_reg & ~TCF_PERFCOUNTER5_HI_PERFCOUNTER_HI_MASK) | (perfcounter_hi << TCF_PERFCOUNTER5_HI_PERFCOUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter5_hi_t {
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER5_HI_PERFCOUNTER_HI_SIZE;
+ unsigned int : 16;
+ } tcf_perfcounter5_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter5_hi_t {
+ unsigned int : 16;
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER5_HI_PERFCOUNTER_HI_SIZE;
+ } tcf_perfcounter5_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter5_hi_t f;
+} tcf_perfcounter5_hi_u;
+
+
+/*
+ * TCF_PERFCOUNTER6_HI struct
+ */
+
+#define TCF_PERFCOUNTER6_HI_PERFCOUNTER_HI_SIZE 16
+
+#define TCF_PERFCOUNTER6_HI_PERFCOUNTER_HI_SHIFT 0
+
+#define TCF_PERFCOUNTER6_HI_PERFCOUNTER_HI_MASK 0x0000ffff
+
+#define TCF_PERFCOUNTER6_HI_MASK \
+ (TCF_PERFCOUNTER6_HI_PERFCOUNTER_HI_MASK)
+
+#define TCF_PERFCOUNTER6_HI(perfcounter_hi) \
+ ((perfcounter_hi << TCF_PERFCOUNTER6_HI_PERFCOUNTER_HI_SHIFT))
+
+#define TCF_PERFCOUNTER6_HI_GET_PERFCOUNTER_HI(tcf_perfcounter6_hi) \
+ ((tcf_perfcounter6_hi & TCF_PERFCOUNTER6_HI_PERFCOUNTER_HI_MASK) >> TCF_PERFCOUNTER6_HI_PERFCOUNTER_HI_SHIFT)
+
+#define TCF_PERFCOUNTER6_HI_SET_PERFCOUNTER_HI(tcf_perfcounter6_hi_reg, perfcounter_hi) \
+ tcf_perfcounter6_hi_reg = (tcf_perfcounter6_hi_reg & ~TCF_PERFCOUNTER6_HI_PERFCOUNTER_HI_MASK) | (perfcounter_hi << TCF_PERFCOUNTER6_HI_PERFCOUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter6_hi_t {
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER6_HI_PERFCOUNTER_HI_SIZE;
+ unsigned int : 16;
+ } tcf_perfcounter6_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter6_hi_t {
+ unsigned int : 16;
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER6_HI_PERFCOUNTER_HI_SIZE;
+ } tcf_perfcounter6_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter6_hi_t f;
+} tcf_perfcounter6_hi_u;
+
+
+/*
+ * TCF_PERFCOUNTER7_HI struct
+ */
+
+#define TCF_PERFCOUNTER7_HI_PERFCOUNTER_HI_SIZE 16
+
+#define TCF_PERFCOUNTER7_HI_PERFCOUNTER_HI_SHIFT 0
+
+#define TCF_PERFCOUNTER7_HI_PERFCOUNTER_HI_MASK 0x0000ffff
+
+#define TCF_PERFCOUNTER7_HI_MASK \
+ (TCF_PERFCOUNTER7_HI_PERFCOUNTER_HI_MASK)
+
+#define TCF_PERFCOUNTER7_HI(perfcounter_hi) \
+ ((perfcounter_hi << TCF_PERFCOUNTER7_HI_PERFCOUNTER_HI_SHIFT))
+
+#define TCF_PERFCOUNTER7_HI_GET_PERFCOUNTER_HI(tcf_perfcounter7_hi) \
+ ((tcf_perfcounter7_hi & TCF_PERFCOUNTER7_HI_PERFCOUNTER_HI_MASK) >> TCF_PERFCOUNTER7_HI_PERFCOUNTER_HI_SHIFT)
+
+#define TCF_PERFCOUNTER7_HI_SET_PERFCOUNTER_HI(tcf_perfcounter7_hi_reg, perfcounter_hi) \
+ tcf_perfcounter7_hi_reg = (tcf_perfcounter7_hi_reg & ~TCF_PERFCOUNTER7_HI_PERFCOUNTER_HI_MASK) | (perfcounter_hi << TCF_PERFCOUNTER7_HI_PERFCOUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter7_hi_t {
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER7_HI_PERFCOUNTER_HI_SIZE;
+ unsigned int : 16;
+ } tcf_perfcounter7_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter7_hi_t {
+ unsigned int : 16;
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER7_HI_PERFCOUNTER_HI_SIZE;
+ } tcf_perfcounter7_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter7_hi_t f;
+} tcf_perfcounter7_hi_u;
+
+
+/*
+ * TCF_PERFCOUNTER8_HI struct
+ */
+
+#define TCF_PERFCOUNTER8_HI_PERFCOUNTER_HI_SIZE 16
+
+#define TCF_PERFCOUNTER8_HI_PERFCOUNTER_HI_SHIFT 0
+
+#define TCF_PERFCOUNTER8_HI_PERFCOUNTER_HI_MASK 0x0000ffff
+
+#define TCF_PERFCOUNTER8_HI_MASK \
+ (TCF_PERFCOUNTER8_HI_PERFCOUNTER_HI_MASK)
+
+#define TCF_PERFCOUNTER8_HI(perfcounter_hi) \
+ ((perfcounter_hi << TCF_PERFCOUNTER8_HI_PERFCOUNTER_HI_SHIFT))
+
+#define TCF_PERFCOUNTER8_HI_GET_PERFCOUNTER_HI(tcf_perfcounter8_hi) \
+ ((tcf_perfcounter8_hi & TCF_PERFCOUNTER8_HI_PERFCOUNTER_HI_MASK) >> TCF_PERFCOUNTER8_HI_PERFCOUNTER_HI_SHIFT)
+
+#define TCF_PERFCOUNTER8_HI_SET_PERFCOUNTER_HI(tcf_perfcounter8_hi_reg, perfcounter_hi) \
+ tcf_perfcounter8_hi_reg = (tcf_perfcounter8_hi_reg & ~TCF_PERFCOUNTER8_HI_PERFCOUNTER_HI_MASK) | (perfcounter_hi << TCF_PERFCOUNTER8_HI_PERFCOUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter8_hi_t {
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER8_HI_PERFCOUNTER_HI_SIZE;
+ unsigned int : 16;
+ } tcf_perfcounter8_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter8_hi_t {
+ unsigned int : 16;
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER8_HI_PERFCOUNTER_HI_SIZE;
+ } tcf_perfcounter8_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter8_hi_t f;
+} tcf_perfcounter8_hi_u;
+
+
+/*
+ * TCF_PERFCOUNTER9_HI struct
+ */
+
+#define TCF_PERFCOUNTER9_HI_PERFCOUNTER_HI_SIZE 16
+
+#define TCF_PERFCOUNTER9_HI_PERFCOUNTER_HI_SHIFT 0
+
+#define TCF_PERFCOUNTER9_HI_PERFCOUNTER_HI_MASK 0x0000ffff
+
+#define TCF_PERFCOUNTER9_HI_MASK \
+ (TCF_PERFCOUNTER9_HI_PERFCOUNTER_HI_MASK)
+
+#define TCF_PERFCOUNTER9_HI(perfcounter_hi) \
+ ((perfcounter_hi << TCF_PERFCOUNTER9_HI_PERFCOUNTER_HI_SHIFT))
+
+#define TCF_PERFCOUNTER9_HI_GET_PERFCOUNTER_HI(tcf_perfcounter9_hi) \
+ ((tcf_perfcounter9_hi & TCF_PERFCOUNTER9_HI_PERFCOUNTER_HI_MASK) >> TCF_PERFCOUNTER9_HI_PERFCOUNTER_HI_SHIFT)
+
+#define TCF_PERFCOUNTER9_HI_SET_PERFCOUNTER_HI(tcf_perfcounter9_hi_reg, perfcounter_hi) \
+ tcf_perfcounter9_hi_reg = (tcf_perfcounter9_hi_reg & ~TCF_PERFCOUNTER9_HI_PERFCOUNTER_HI_MASK) | (perfcounter_hi << TCF_PERFCOUNTER9_HI_PERFCOUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter9_hi_t {
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER9_HI_PERFCOUNTER_HI_SIZE;
+ unsigned int : 16;
+ } tcf_perfcounter9_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter9_hi_t {
+ unsigned int : 16;
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER9_HI_PERFCOUNTER_HI_SIZE;
+ } tcf_perfcounter9_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter9_hi_t f;
+} tcf_perfcounter9_hi_u;
+
+
+/*
+ * TCF_PERFCOUNTER10_HI struct
+ */
+
+#define TCF_PERFCOUNTER10_HI_PERFCOUNTER_HI_SIZE 16
+
+#define TCF_PERFCOUNTER10_HI_PERFCOUNTER_HI_SHIFT 0
+
+#define TCF_PERFCOUNTER10_HI_PERFCOUNTER_HI_MASK 0x0000ffff
+
+#define TCF_PERFCOUNTER10_HI_MASK \
+ (TCF_PERFCOUNTER10_HI_PERFCOUNTER_HI_MASK)
+
+#define TCF_PERFCOUNTER10_HI(perfcounter_hi) \
+ ((perfcounter_hi << TCF_PERFCOUNTER10_HI_PERFCOUNTER_HI_SHIFT))
+
+#define TCF_PERFCOUNTER10_HI_GET_PERFCOUNTER_HI(tcf_perfcounter10_hi) \
+ ((tcf_perfcounter10_hi & TCF_PERFCOUNTER10_HI_PERFCOUNTER_HI_MASK) >> TCF_PERFCOUNTER10_HI_PERFCOUNTER_HI_SHIFT)
+
+#define TCF_PERFCOUNTER10_HI_SET_PERFCOUNTER_HI(tcf_perfcounter10_hi_reg, perfcounter_hi) \
+ tcf_perfcounter10_hi_reg = (tcf_perfcounter10_hi_reg & ~TCF_PERFCOUNTER10_HI_PERFCOUNTER_HI_MASK) | (perfcounter_hi << TCF_PERFCOUNTER10_HI_PERFCOUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter10_hi_t {
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER10_HI_PERFCOUNTER_HI_SIZE;
+ unsigned int : 16;
+ } tcf_perfcounter10_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter10_hi_t {
+ unsigned int : 16;
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER10_HI_PERFCOUNTER_HI_SIZE;
+ } tcf_perfcounter10_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter10_hi_t f;
+} tcf_perfcounter10_hi_u;
+
+
+/*
+ * TCF_PERFCOUNTER11_HI struct
+ */
+
+#define TCF_PERFCOUNTER11_HI_PERFCOUNTER_HI_SIZE 16
+
+#define TCF_PERFCOUNTER11_HI_PERFCOUNTER_HI_SHIFT 0
+
+#define TCF_PERFCOUNTER11_HI_PERFCOUNTER_HI_MASK 0x0000ffff
+
+#define TCF_PERFCOUNTER11_HI_MASK \
+ (TCF_PERFCOUNTER11_HI_PERFCOUNTER_HI_MASK)
+
+#define TCF_PERFCOUNTER11_HI(perfcounter_hi) \
+ ((perfcounter_hi << TCF_PERFCOUNTER11_HI_PERFCOUNTER_HI_SHIFT))
+
+#define TCF_PERFCOUNTER11_HI_GET_PERFCOUNTER_HI(tcf_perfcounter11_hi) \
+ ((tcf_perfcounter11_hi & TCF_PERFCOUNTER11_HI_PERFCOUNTER_HI_MASK) >> TCF_PERFCOUNTER11_HI_PERFCOUNTER_HI_SHIFT)
+
+#define TCF_PERFCOUNTER11_HI_SET_PERFCOUNTER_HI(tcf_perfcounter11_hi_reg, perfcounter_hi) \
+ tcf_perfcounter11_hi_reg = (tcf_perfcounter11_hi_reg & ~TCF_PERFCOUNTER11_HI_PERFCOUNTER_HI_MASK) | (perfcounter_hi << TCF_PERFCOUNTER11_HI_PERFCOUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter11_hi_t {
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER11_HI_PERFCOUNTER_HI_SIZE;
+ unsigned int : 16;
+ } tcf_perfcounter11_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter11_hi_t {
+ unsigned int : 16;
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER11_HI_PERFCOUNTER_HI_SIZE;
+ } tcf_perfcounter11_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter11_hi_t f;
+} tcf_perfcounter11_hi_u;
+
+
+/*
+ * TCF_PERFCOUNTER0_LOW struct
+ */
+
+#define TCF_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SIZE 32
+
+#define TCF_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SHIFT 0
+
+#define TCF_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_MASK 0xffffffff
+
+#define TCF_PERFCOUNTER0_LOW_MASK \
+ (TCF_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_MASK)
+
+#define TCF_PERFCOUNTER0_LOW(perfcounter_low) \
+ ((perfcounter_low << TCF_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SHIFT))
+
+#define TCF_PERFCOUNTER0_LOW_GET_PERFCOUNTER_LOW(tcf_perfcounter0_low) \
+ ((tcf_perfcounter0_low & TCF_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_MASK) >> TCF_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#define TCF_PERFCOUNTER0_LOW_SET_PERFCOUNTER_LOW(tcf_perfcounter0_low_reg, perfcounter_low) \
+ tcf_perfcounter0_low_reg = (tcf_perfcounter0_low_reg & ~TCF_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_MASK) | (perfcounter_low << TCF_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter0_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter0_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter0_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter0_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter0_low_t f;
+} tcf_perfcounter0_low_u;
+
+
+/*
+ * TCF_PERFCOUNTER1_LOW struct
+ */
+
+#define TCF_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SIZE 32
+
+#define TCF_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SHIFT 0
+
+#define TCF_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_MASK 0xffffffff
+
+#define TCF_PERFCOUNTER1_LOW_MASK \
+ (TCF_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_MASK)
+
+#define TCF_PERFCOUNTER1_LOW(perfcounter_low) \
+ ((perfcounter_low << TCF_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SHIFT))
+
+#define TCF_PERFCOUNTER1_LOW_GET_PERFCOUNTER_LOW(tcf_perfcounter1_low) \
+ ((tcf_perfcounter1_low & TCF_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_MASK) >> TCF_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#define TCF_PERFCOUNTER1_LOW_SET_PERFCOUNTER_LOW(tcf_perfcounter1_low_reg, perfcounter_low) \
+ tcf_perfcounter1_low_reg = (tcf_perfcounter1_low_reg & ~TCF_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_MASK) | (perfcounter_low << TCF_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter1_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter1_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter1_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter1_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter1_low_t f;
+} tcf_perfcounter1_low_u;
+
+
+/*
+ * TCF_PERFCOUNTER2_LOW struct
+ */
+
+#define TCF_PERFCOUNTER2_LOW_PERFCOUNTER_LOW_SIZE 32
+
+#define TCF_PERFCOUNTER2_LOW_PERFCOUNTER_LOW_SHIFT 0
+
+#define TCF_PERFCOUNTER2_LOW_PERFCOUNTER_LOW_MASK 0xffffffff
+
+#define TCF_PERFCOUNTER2_LOW_MASK \
+ (TCF_PERFCOUNTER2_LOW_PERFCOUNTER_LOW_MASK)
+
+#define TCF_PERFCOUNTER2_LOW(perfcounter_low) \
+ ((perfcounter_low << TCF_PERFCOUNTER2_LOW_PERFCOUNTER_LOW_SHIFT))
+
+#define TCF_PERFCOUNTER2_LOW_GET_PERFCOUNTER_LOW(tcf_perfcounter2_low) \
+ ((tcf_perfcounter2_low & TCF_PERFCOUNTER2_LOW_PERFCOUNTER_LOW_MASK) >> TCF_PERFCOUNTER2_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#define TCF_PERFCOUNTER2_LOW_SET_PERFCOUNTER_LOW(tcf_perfcounter2_low_reg, perfcounter_low) \
+ tcf_perfcounter2_low_reg = (tcf_perfcounter2_low_reg & ~TCF_PERFCOUNTER2_LOW_PERFCOUNTER_LOW_MASK) | (perfcounter_low << TCF_PERFCOUNTER2_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter2_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER2_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter2_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter2_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER2_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter2_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter2_low_t f;
+} tcf_perfcounter2_low_u;
+
+
+/*
+ * TCF_PERFCOUNTER3_LOW struct
+ */
+
+#define TCF_PERFCOUNTER3_LOW_PERFCOUNTER_LOW_SIZE 32
+
+#define TCF_PERFCOUNTER3_LOW_PERFCOUNTER_LOW_SHIFT 0
+
+#define TCF_PERFCOUNTER3_LOW_PERFCOUNTER_LOW_MASK 0xffffffff
+
+#define TCF_PERFCOUNTER3_LOW_MASK \
+ (TCF_PERFCOUNTER3_LOW_PERFCOUNTER_LOW_MASK)
+
+#define TCF_PERFCOUNTER3_LOW(perfcounter_low) \
+ ((perfcounter_low << TCF_PERFCOUNTER3_LOW_PERFCOUNTER_LOW_SHIFT))
+
+#define TCF_PERFCOUNTER3_LOW_GET_PERFCOUNTER_LOW(tcf_perfcounter3_low) \
+ ((tcf_perfcounter3_low & TCF_PERFCOUNTER3_LOW_PERFCOUNTER_LOW_MASK) >> TCF_PERFCOUNTER3_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#define TCF_PERFCOUNTER3_LOW_SET_PERFCOUNTER_LOW(tcf_perfcounter3_low_reg, perfcounter_low) \
+ tcf_perfcounter3_low_reg = (tcf_perfcounter3_low_reg & ~TCF_PERFCOUNTER3_LOW_PERFCOUNTER_LOW_MASK) | (perfcounter_low << TCF_PERFCOUNTER3_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter3_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER3_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter3_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter3_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER3_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter3_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter3_low_t f;
+} tcf_perfcounter3_low_u;
+
+
+/*
+ * TCF_PERFCOUNTER4_LOW struct
+ */
+
+#define TCF_PERFCOUNTER4_LOW_PERFCOUNTER_LOW_SIZE 32
+
+#define TCF_PERFCOUNTER4_LOW_PERFCOUNTER_LOW_SHIFT 0
+
+#define TCF_PERFCOUNTER4_LOW_PERFCOUNTER_LOW_MASK 0xffffffff
+
+#define TCF_PERFCOUNTER4_LOW_MASK \
+ (TCF_PERFCOUNTER4_LOW_PERFCOUNTER_LOW_MASK)
+
+#define TCF_PERFCOUNTER4_LOW(perfcounter_low) \
+ ((perfcounter_low << TCF_PERFCOUNTER4_LOW_PERFCOUNTER_LOW_SHIFT))
+
+#define TCF_PERFCOUNTER4_LOW_GET_PERFCOUNTER_LOW(tcf_perfcounter4_low) \
+ ((tcf_perfcounter4_low & TCF_PERFCOUNTER4_LOW_PERFCOUNTER_LOW_MASK) >> TCF_PERFCOUNTER4_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#define TCF_PERFCOUNTER4_LOW_SET_PERFCOUNTER_LOW(tcf_perfcounter4_low_reg, perfcounter_low) \
+ tcf_perfcounter4_low_reg = (tcf_perfcounter4_low_reg & ~TCF_PERFCOUNTER4_LOW_PERFCOUNTER_LOW_MASK) | (perfcounter_low << TCF_PERFCOUNTER4_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter4_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER4_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter4_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter4_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER4_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter4_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter4_low_t f;
+} tcf_perfcounter4_low_u;
+
+
+/*
+ * TCF_PERFCOUNTER5_LOW struct
+ */
+
+#define TCF_PERFCOUNTER5_LOW_PERFCOUNTER_LOW_SIZE 32
+
+#define TCF_PERFCOUNTER5_LOW_PERFCOUNTER_LOW_SHIFT 0
+
+#define TCF_PERFCOUNTER5_LOW_PERFCOUNTER_LOW_MASK 0xffffffff
+
+#define TCF_PERFCOUNTER5_LOW_MASK \
+ (TCF_PERFCOUNTER5_LOW_PERFCOUNTER_LOW_MASK)
+
+#define TCF_PERFCOUNTER5_LOW(perfcounter_low) \
+ ((perfcounter_low << TCF_PERFCOUNTER5_LOW_PERFCOUNTER_LOW_SHIFT))
+
+#define TCF_PERFCOUNTER5_LOW_GET_PERFCOUNTER_LOW(tcf_perfcounter5_low) \
+ ((tcf_perfcounter5_low & TCF_PERFCOUNTER5_LOW_PERFCOUNTER_LOW_MASK) >> TCF_PERFCOUNTER5_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#define TCF_PERFCOUNTER5_LOW_SET_PERFCOUNTER_LOW(tcf_perfcounter5_low_reg, perfcounter_low) \
+ tcf_perfcounter5_low_reg = (tcf_perfcounter5_low_reg & ~TCF_PERFCOUNTER5_LOW_PERFCOUNTER_LOW_MASK) | (perfcounter_low << TCF_PERFCOUNTER5_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter5_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER5_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter5_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter5_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER5_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter5_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter5_low_t f;
+} tcf_perfcounter5_low_u;
+
+
+/*
+ * TCF_PERFCOUNTER6_LOW struct
+ */
+
+#define TCF_PERFCOUNTER6_LOW_PERFCOUNTER_LOW_SIZE 32
+
+#define TCF_PERFCOUNTER6_LOW_PERFCOUNTER_LOW_SHIFT 0
+
+#define TCF_PERFCOUNTER6_LOW_PERFCOUNTER_LOW_MASK 0xffffffff
+
+#define TCF_PERFCOUNTER6_LOW_MASK \
+ (TCF_PERFCOUNTER6_LOW_PERFCOUNTER_LOW_MASK)
+
+#define TCF_PERFCOUNTER6_LOW(perfcounter_low) \
+ ((perfcounter_low << TCF_PERFCOUNTER6_LOW_PERFCOUNTER_LOW_SHIFT))
+
+#define TCF_PERFCOUNTER6_LOW_GET_PERFCOUNTER_LOW(tcf_perfcounter6_low) \
+ ((tcf_perfcounter6_low & TCF_PERFCOUNTER6_LOW_PERFCOUNTER_LOW_MASK) >> TCF_PERFCOUNTER6_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#define TCF_PERFCOUNTER6_LOW_SET_PERFCOUNTER_LOW(tcf_perfcounter6_low_reg, perfcounter_low) \
+ tcf_perfcounter6_low_reg = (tcf_perfcounter6_low_reg & ~TCF_PERFCOUNTER6_LOW_PERFCOUNTER_LOW_MASK) | (perfcounter_low << TCF_PERFCOUNTER6_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter6_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER6_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter6_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter6_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER6_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter6_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter6_low_t f;
+} tcf_perfcounter6_low_u;
+
+
+/*
+ * TCF_PERFCOUNTER7_LOW struct
+ */
+
+#define TCF_PERFCOUNTER7_LOW_PERFCOUNTER_LOW_SIZE 32
+
+#define TCF_PERFCOUNTER7_LOW_PERFCOUNTER_LOW_SHIFT 0
+
+#define TCF_PERFCOUNTER7_LOW_PERFCOUNTER_LOW_MASK 0xffffffff
+
+#define TCF_PERFCOUNTER7_LOW_MASK \
+ (TCF_PERFCOUNTER7_LOW_PERFCOUNTER_LOW_MASK)
+
+#define TCF_PERFCOUNTER7_LOW(perfcounter_low) \
+ ((perfcounter_low << TCF_PERFCOUNTER7_LOW_PERFCOUNTER_LOW_SHIFT))
+
+#define TCF_PERFCOUNTER7_LOW_GET_PERFCOUNTER_LOW(tcf_perfcounter7_low) \
+ ((tcf_perfcounter7_low & TCF_PERFCOUNTER7_LOW_PERFCOUNTER_LOW_MASK) >> TCF_PERFCOUNTER7_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#define TCF_PERFCOUNTER7_LOW_SET_PERFCOUNTER_LOW(tcf_perfcounter7_low_reg, perfcounter_low) \
+ tcf_perfcounter7_low_reg = (tcf_perfcounter7_low_reg & ~TCF_PERFCOUNTER7_LOW_PERFCOUNTER_LOW_MASK) | (perfcounter_low << TCF_PERFCOUNTER7_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter7_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER7_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter7_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter7_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER7_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter7_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter7_low_t f;
+} tcf_perfcounter7_low_u;
+
+
+/*
+ * TCF_PERFCOUNTER8_LOW struct
+ */
+
+#define TCF_PERFCOUNTER8_LOW_PERFCOUNTER_LOW_SIZE 32
+
+#define TCF_PERFCOUNTER8_LOW_PERFCOUNTER_LOW_SHIFT 0
+
+#define TCF_PERFCOUNTER8_LOW_PERFCOUNTER_LOW_MASK 0xffffffff
+
+#define TCF_PERFCOUNTER8_LOW_MASK \
+ (TCF_PERFCOUNTER8_LOW_PERFCOUNTER_LOW_MASK)
+
+#define TCF_PERFCOUNTER8_LOW(perfcounter_low) \
+ ((perfcounter_low << TCF_PERFCOUNTER8_LOW_PERFCOUNTER_LOW_SHIFT))
+
+#define TCF_PERFCOUNTER8_LOW_GET_PERFCOUNTER_LOW(tcf_perfcounter8_low) \
+ ((tcf_perfcounter8_low & TCF_PERFCOUNTER8_LOW_PERFCOUNTER_LOW_MASK) >> TCF_PERFCOUNTER8_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#define TCF_PERFCOUNTER8_LOW_SET_PERFCOUNTER_LOW(tcf_perfcounter8_low_reg, perfcounter_low) \
+ tcf_perfcounter8_low_reg = (tcf_perfcounter8_low_reg & ~TCF_PERFCOUNTER8_LOW_PERFCOUNTER_LOW_MASK) | (perfcounter_low << TCF_PERFCOUNTER8_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter8_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER8_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter8_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter8_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER8_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter8_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter8_low_t f;
+} tcf_perfcounter8_low_u;
+
+
+/*
+ * TCF_PERFCOUNTER9_LOW struct
+ */
+
+#define TCF_PERFCOUNTER9_LOW_PERFCOUNTER_LOW_SIZE 32
+
+#define TCF_PERFCOUNTER9_LOW_PERFCOUNTER_LOW_SHIFT 0
+
+#define TCF_PERFCOUNTER9_LOW_PERFCOUNTER_LOW_MASK 0xffffffff
+
+#define TCF_PERFCOUNTER9_LOW_MASK \
+ (TCF_PERFCOUNTER9_LOW_PERFCOUNTER_LOW_MASK)
+
+#define TCF_PERFCOUNTER9_LOW(perfcounter_low) \
+ ((perfcounter_low << TCF_PERFCOUNTER9_LOW_PERFCOUNTER_LOW_SHIFT))
+
+#define TCF_PERFCOUNTER9_LOW_GET_PERFCOUNTER_LOW(tcf_perfcounter9_low) \
+ ((tcf_perfcounter9_low & TCF_PERFCOUNTER9_LOW_PERFCOUNTER_LOW_MASK) >> TCF_PERFCOUNTER9_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#define TCF_PERFCOUNTER9_LOW_SET_PERFCOUNTER_LOW(tcf_perfcounter9_low_reg, perfcounter_low) \
+ tcf_perfcounter9_low_reg = (tcf_perfcounter9_low_reg & ~TCF_PERFCOUNTER9_LOW_PERFCOUNTER_LOW_MASK) | (perfcounter_low << TCF_PERFCOUNTER9_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter9_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER9_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter9_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter9_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER9_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter9_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter9_low_t f;
+} tcf_perfcounter9_low_u;
+
+
+/*
+ * TCF_PERFCOUNTER10_LOW struct
+ */
+
+#define TCF_PERFCOUNTER10_LOW_PERFCOUNTER_LOW_SIZE 32
+
+#define TCF_PERFCOUNTER10_LOW_PERFCOUNTER_LOW_SHIFT 0
+
+#define TCF_PERFCOUNTER10_LOW_PERFCOUNTER_LOW_MASK 0xffffffff
+
+#define TCF_PERFCOUNTER10_LOW_MASK \
+ (TCF_PERFCOUNTER10_LOW_PERFCOUNTER_LOW_MASK)
+
+#define TCF_PERFCOUNTER10_LOW(perfcounter_low) \
+ ((perfcounter_low << TCF_PERFCOUNTER10_LOW_PERFCOUNTER_LOW_SHIFT))
+
+#define TCF_PERFCOUNTER10_LOW_GET_PERFCOUNTER_LOW(tcf_perfcounter10_low) \
+ ((tcf_perfcounter10_low & TCF_PERFCOUNTER10_LOW_PERFCOUNTER_LOW_MASK) >> TCF_PERFCOUNTER10_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#define TCF_PERFCOUNTER10_LOW_SET_PERFCOUNTER_LOW(tcf_perfcounter10_low_reg, perfcounter_low) \
+ tcf_perfcounter10_low_reg = (tcf_perfcounter10_low_reg & ~TCF_PERFCOUNTER10_LOW_PERFCOUNTER_LOW_MASK) | (perfcounter_low << TCF_PERFCOUNTER10_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter10_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER10_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter10_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter10_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER10_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter10_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter10_low_t f;
+} tcf_perfcounter10_low_u;
+
+
+/*
+ * TCF_PERFCOUNTER11_LOW struct
+ */
+
+#define TCF_PERFCOUNTER11_LOW_PERFCOUNTER_LOW_SIZE 32
+
+#define TCF_PERFCOUNTER11_LOW_PERFCOUNTER_LOW_SHIFT 0
+
+#define TCF_PERFCOUNTER11_LOW_PERFCOUNTER_LOW_MASK 0xffffffff
+
+#define TCF_PERFCOUNTER11_LOW_MASK \
+ (TCF_PERFCOUNTER11_LOW_PERFCOUNTER_LOW_MASK)
+
+#define TCF_PERFCOUNTER11_LOW(perfcounter_low) \
+ ((perfcounter_low << TCF_PERFCOUNTER11_LOW_PERFCOUNTER_LOW_SHIFT))
+
+#define TCF_PERFCOUNTER11_LOW_GET_PERFCOUNTER_LOW(tcf_perfcounter11_low) \
+ ((tcf_perfcounter11_low & TCF_PERFCOUNTER11_LOW_PERFCOUNTER_LOW_MASK) >> TCF_PERFCOUNTER11_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#define TCF_PERFCOUNTER11_LOW_SET_PERFCOUNTER_LOW(tcf_perfcounter11_low_reg, perfcounter_low) \
+ tcf_perfcounter11_low_reg = (tcf_perfcounter11_low_reg & ~TCF_PERFCOUNTER11_LOW_PERFCOUNTER_LOW_MASK) | (perfcounter_low << TCF_PERFCOUNTER11_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter11_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER11_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter11_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter11_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER11_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter11_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter11_low_t f;
+} tcf_perfcounter11_low_u;
+
+
+/*
+ * TCF_DEBUG struct
+ */
+
+#define TCF_DEBUG_not_MH_TC_rtr_SIZE 1
+#define TCF_DEBUG_TC_MH_send_SIZE 1
+#define TCF_DEBUG_not_FG0_rtr_SIZE 1
+#define TCF_DEBUG_not_TCB_TCO_rtr_SIZE 1
+#define TCF_DEBUG_TCB_ff_stall_SIZE 1
+#define TCF_DEBUG_TCB_miss_stall_SIZE 1
+#define TCF_DEBUG_TCA_TCB_stall_SIZE 1
+#define TCF_DEBUG_PF0_stall_SIZE 1
+#define TCF_DEBUG_TP0_full_SIZE 1
+#define TCF_DEBUG_TPC_full_SIZE 1
+#define TCF_DEBUG_not_TPC_rtr_SIZE 1
+#define TCF_DEBUG_tca_state_rts_SIZE 1
+#define TCF_DEBUG_tca_rts_SIZE 1
+
+#define TCF_DEBUG_not_MH_TC_rtr_SHIFT 6
+#define TCF_DEBUG_TC_MH_send_SHIFT 7
+#define TCF_DEBUG_not_FG0_rtr_SHIFT 8
+#define TCF_DEBUG_not_TCB_TCO_rtr_SHIFT 12
+#define TCF_DEBUG_TCB_ff_stall_SHIFT 13
+#define TCF_DEBUG_TCB_miss_stall_SHIFT 14
+#define TCF_DEBUG_TCA_TCB_stall_SHIFT 15
+#define TCF_DEBUG_PF0_stall_SHIFT 16
+#define TCF_DEBUG_TP0_full_SHIFT 20
+#define TCF_DEBUG_TPC_full_SHIFT 24
+#define TCF_DEBUG_not_TPC_rtr_SHIFT 25
+#define TCF_DEBUG_tca_state_rts_SHIFT 26
+#define TCF_DEBUG_tca_rts_SHIFT 27
+
+#define TCF_DEBUG_not_MH_TC_rtr_MASK 0x00000040
+#define TCF_DEBUG_TC_MH_send_MASK 0x00000080
+#define TCF_DEBUG_not_FG0_rtr_MASK 0x00000100
+#define TCF_DEBUG_not_TCB_TCO_rtr_MASK 0x00001000
+#define TCF_DEBUG_TCB_ff_stall_MASK 0x00002000
+#define TCF_DEBUG_TCB_miss_stall_MASK 0x00004000
+#define TCF_DEBUG_TCA_TCB_stall_MASK 0x00008000
+#define TCF_DEBUG_PF0_stall_MASK 0x00010000
+#define TCF_DEBUG_TP0_full_MASK 0x00100000
+#define TCF_DEBUG_TPC_full_MASK 0x01000000
+#define TCF_DEBUG_not_TPC_rtr_MASK 0x02000000
+#define TCF_DEBUG_tca_state_rts_MASK 0x04000000
+#define TCF_DEBUG_tca_rts_MASK 0x08000000
+
+#define TCF_DEBUG_MASK \
+ (TCF_DEBUG_not_MH_TC_rtr_MASK | \
+ TCF_DEBUG_TC_MH_send_MASK | \
+ TCF_DEBUG_not_FG0_rtr_MASK | \
+ TCF_DEBUG_not_TCB_TCO_rtr_MASK | \
+ TCF_DEBUG_TCB_ff_stall_MASK | \
+ TCF_DEBUG_TCB_miss_stall_MASK | \
+ TCF_DEBUG_TCA_TCB_stall_MASK | \
+ TCF_DEBUG_PF0_stall_MASK | \
+ TCF_DEBUG_TP0_full_MASK | \
+ TCF_DEBUG_TPC_full_MASK | \
+ TCF_DEBUG_not_TPC_rtr_MASK | \
+ TCF_DEBUG_tca_state_rts_MASK | \
+ TCF_DEBUG_tca_rts_MASK)
+
+#define TCF_DEBUG(not_mh_tc_rtr, tc_mh_send, not_fg0_rtr, not_tcb_tco_rtr, tcb_ff_stall, tcb_miss_stall, tca_tcb_stall, pf0_stall, tp0_full, tpc_full, not_tpc_rtr, tca_state_rts, tca_rts) \
+ ((not_mh_tc_rtr << TCF_DEBUG_not_MH_TC_rtr_SHIFT) | \
+ (tc_mh_send << TCF_DEBUG_TC_MH_send_SHIFT) | \
+ (not_fg0_rtr << TCF_DEBUG_not_FG0_rtr_SHIFT) | \
+ (not_tcb_tco_rtr << TCF_DEBUG_not_TCB_TCO_rtr_SHIFT) | \
+ (tcb_ff_stall << TCF_DEBUG_TCB_ff_stall_SHIFT) | \
+ (tcb_miss_stall << TCF_DEBUG_TCB_miss_stall_SHIFT) | \
+ (tca_tcb_stall << TCF_DEBUG_TCA_TCB_stall_SHIFT) | \
+ (pf0_stall << TCF_DEBUG_PF0_stall_SHIFT) | \
+ (tp0_full << TCF_DEBUG_TP0_full_SHIFT) | \
+ (tpc_full << TCF_DEBUG_TPC_full_SHIFT) | \
+ (not_tpc_rtr << TCF_DEBUG_not_TPC_rtr_SHIFT) | \
+ (tca_state_rts << TCF_DEBUG_tca_state_rts_SHIFT) | \
+ (tca_rts << TCF_DEBUG_tca_rts_SHIFT))
+
+#define TCF_DEBUG_GET_not_MH_TC_rtr(tcf_debug) \
+ ((tcf_debug & TCF_DEBUG_not_MH_TC_rtr_MASK) >> TCF_DEBUG_not_MH_TC_rtr_SHIFT)
+#define TCF_DEBUG_GET_TC_MH_send(tcf_debug) \
+ ((tcf_debug & TCF_DEBUG_TC_MH_send_MASK) >> TCF_DEBUG_TC_MH_send_SHIFT)
+#define TCF_DEBUG_GET_not_FG0_rtr(tcf_debug) \
+ ((tcf_debug & TCF_DEBUG_not_FG0_rtr_MASK) >> TCF_DEBUG_not_FG0_rtr_SHIFT)
+#define TCF_DEBUG_GET_not_TCB_TCO_rtr(tcf_debug) \
+ ((tcf_debug & TCF_DEBUG_not_TCB_TCO_rtr_MASK) >> TCF_DEBUG_not_TCB_TCO_rtr_SHIFT)
+#define TCF_DEBUG_GET_TCB_ff_stall(tcf_debug) \
+ ((tcf_debug & TCF_DEBUG_TCB_ff_stall_MASK) >> TCF_DEBUG_TCB_ff_stall_SHIFT)
+#define TCF_DEBUG_GET_TCB_miss_stall(tcf_debug) \
+ ((tcf_debug & TCF_DEBUG_TCB_miss_stall_MASK) >> TCF_DEBUG_TCB_miss_stall_SHIFT)
+#define TCF_DEBUG_GET_TCA_TCB_stall(tcf_debug) \
+ ((tcf_debug & TCF_DEBUG_TCA_TCB_stall_MASK) >> TCF_DEBUG_TCA_TCB_stall_SHIFT)
+#define TCF_DEBUG_GET_PF0_stall(tcf_debug) \
+ ((tcf_debug & TCF_DEBUG_PF0_stall_MASK) >> TCF_DEBUG_PF0_stall_SHIFT)
+#define TCF_DEBUG_GET_TP0_full(tcf_debug) \
+ ((tcf_debug & TCF_DEBUG_TP0_full_MASK) >> TCF_DEBUG_TP0_full_SHIFT)
+#define TCF_DEBUG_GET_TPC_full(tcf_debug) \
+ ((tcf_debug & TCF_DEBUG_TPC_full_MASK) >> TCF_DEBUG_TPC_full_SHIFT)
+#define TCF_DEBUG_GET_not_TPC_rtr(tcf_debug) \
+ ((tcf_debug & TCF_DEBUG_not_TPC_rtr_MASK) >> TCF_DEBUG_not_TPC_rtr_SHIFT)
+#define TCF_DEBUG_GET_tca_state_rts(tcf_debug) \
+ ((tcf_debug & TCF_DEBUG_tca_state_rts_MASK) >> TCF_DEBUG_tca_state_rts_SHIFT)
+#define TCF_DEBUG_GET_tca_rts(tcf_debug) \
+ ((tcf_debug & TCF_DEBUG_tca_rts_MASK) >> TCF_DEBUG_tca_rts_SHIFT)
+
+#define TCF_DEBUG_SET_not_MH_TC_rtr(tcf_debug_reg, not_mh_tc_rtr) \
+ tcf_debug_reg = (tcf_debug_reg & ~TCF_DEBUG_not_MH_TC_rtr_MASK) | (not_mh_tc_rtr << TCF_DEBUG_not_MH_TC_rtr_SHIFT)
+#define TCF_DEBUG_SET_TC_MH_send(tcf_debug_reg, tc_mh_send) \
+ tcf_debug_reg = (tcf_debug_reg & ~TCF_DEBUG_TC_MH_send_MASK) | (tc_mh_send << TCF_DEBUG_TC_MH_send_SHIFT)
+#define TCF_DEBUG_SET_not_FG0_rtr(tcf_debug_reg, not_fg0_rtr) \
+ tcf_debug_reg = (tcf_debug_reg & ~TCF_DEBUG_not_FG0_rtr_MASK) | (not_fg0_rtr << TCF_DEBUG_not_FG0_rtr_SHIFT)
+#define TCF_DEBUG_SET_not_TCB_TCO_rtr(tcf_debug_reg, not_tcb_tco_rtr) \
+ tcf_debug_reg = (tcf_debug_reg & ~TCF_DEBUG_not_TCB_TCO_rtr_MASK) | (not_tcb_tco_rtr << TCF_DEBUG_not_TCB_TCO_rtr_SHIFT)
+#define TCF_DEBUG_SET_TCB_ff_stall(tcf_debug_reg, tcb_ff_stall) \
+ tcf_debug_reg = (tcf_debug_reg & ~TCF_DEBUG_TCB_ff_stall_MASK) | (tcb_ff_stall << TCF_DEBUG_TCB_ff_stall_SHIFT)
+#define TCF_DEBUG_SET_TCB_miss_stall(tcf_debug_reg, tcb_miss_stall) \
+ tcf_debug_reg = (tcf_debug_reg & ~TCF_DEBUG_TCB_miss_stall_MASK) | (tcb_miss_stall << TCF_DEBUG_TCB_miss_stall_SHIFT)
+#define TCF_DEBUG_SET_TCA_TCB_stall(tcf_debug_reg, tca_tcb_stall) \
+ tcf_debug_reg = (tcf_debug_reg & ~TCF_DEBUG_TCA_TCB_stall_MASK) | (tca_tcb_stall << TCF_DEBUG_TCA_TCB_stall_SHIFT)
+#define TCF_DEBUG_SET_PF0_stall(tcf_debug_reg, pf0_stall) \
+ tcf_debug_reg = (tcf_debug_reg & ~TCF_DEBUG_PF0_stall_MASK) | (pf0_stall << TCF_DEBUG_PF0_stall_SHIFT)
+#define TCF_DEBUG_SET_TP0_full(tcf_debug_reg, tp0_full) \
+ tcf_debug_reg = (tcf_debug_reg & ~TCF_DEBUG_TP0_full_MASK) | (tp0_full << TCF_DEBUG_TP0_full_SHIFT)
+#define TCF_DEBUG_SET_TPC_full(tcf_debug_reg, tpc_full) \
+ tcf_debug_reg = (tcf_debug_reg & ~TCF_DEBUG_TPC_full_MASK) | (tpc_full << TCF_DEBUG_TPC_full_SHIFT)
+#define TCF_DEBUG_SET_not_TPC_rtr(tcf_debug_reg, not_tpc_rtr) \
+ tcf_debug_reg = (tcf_debug_reg & ~TCF_DEBUG_not_TPC_rtr_MASK) | (not_tpc_rtr << TCF_DEBUG_not_TPC_rtr_SHIFT)
+#define TCF_DEBUG_SET_tca_state_rts(tcf_debug_reg, tca_state_rts) \
+ tcf_debug_reg = (tcf_debug_reg & ~TCF_DEBUG_tca_state_rts_MASK) | (tca_state_rts << TCF_DEBUG_tca_state_rts_SHIFT)
+#define TCF_DEBUG_SET_tca_rts(tcf_debug_reg, tca_rts) \
+ tcf_debug_reg = (tcf_debug_reg & ~TCF_DEBUG_tca_rts_MASK) | (tca_rts << TCF_DEBUG_tca_rts_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_debug_t {
+ unsigned int : 6;
+ unsigned int not_mh_tc_rtr : TCF_DEBUG_not_MH_TC_rtr_SIZE;
+ unsigned int tc_mh_send : TCF_DEBUG_TC_MH_send_SIZE;
+ unsigned int not_fg0_rtr : TCF_DEBUG_not_FG0_rtr_SIZE;
+ unsigned int : 3;
+ unsigned int not_tcb_tco_rtr : TCF_DEBUG_not_TCB_TCO_rtr_SIZE;
+ unsigned int tcb_ff_stall : TCF_DEBUG_TCB_ff_stall_SIZE;
+ unsigned int tcb_miss_stall : TCF_DEBUG_TCB_miss_stall_SIZE;
+ unsigned int tca_tcb_stall : TCF_DEBUG_TCA_TCB_stall_SIZE;
+ unsigned int pf0_stall : TCF_DEBUG_PF0_stall_SIZE;
+ unsigned int : 3;
+ unsigned int tp0_full : TCF_DEBUG_TP0_full_SIZE;
+ unsigned int : 3;
+ unsigned int tpc_full : TCF_DEBUG_TPC_full_SIZE;
+ unsigned int not_tpc_rtr : TCF_DEBUG_not_TPC_rtr_SIZE;
+ unsigned int tca_state_rts : TCF_DEBUG_tca_state_rts_SIZE;
+ unsigned int tca_rts : TCF_DEBUG_tca_rts_SIZE;
+ unsigned int : 4;
+ } tcf_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_debug_t {
+ unsigned int : 4;
+ unsigned int tca_rts : TCF_DEBUG_tca_rts_SIZE;
+ unsigned int tca_state_rts : TCF_DEBUG_tca_state_rts_SIZE;
+ unsigned int not_tpc_rtr : TCF_DEBUG_not_TPC_rtr_SIZE;
+ unsigned int tpc_full : TCF_DEBUG_TPC_full_SIZE;
+ unsigned int : 3;
+ unsigned int tp0_full : TCF_DEBUG_TP0_full_SIZE;
+ unsigned int : 3;
+ unsigned int pf0_stall : TCF_DEBUG_PF0_stall_SIZE;
+ unsigned int tca_tcb_stall : TCF_DEBUG_TCA_TCB_stall_SIZE;
+ unsigned int tcb_miss_stall : TCF_DEBUG_TCB_miss_stall_SIZE;
+ unsigned int tcb_ff_stall : TCF_DEBUG_TCB_ff_stall_SIZE;
+ unsigned int not_tcb_tco_rtr : TCF_DEBUG_not_TCB_TCO_rtr_SIZE;
+ unsigned int : 3;
+ unsigned int not_fg0_rtr : TCF_DEBUG_not_FG0_rtr_SIZE;
+ unsigned int tc_mh_send : TCF_DEBUG_TC_MH_send_SIZE;
+ unsigned int not_mh_tc_rtr : TCF_DEBUG_not_MH_TC_rtr_SIZE;
+ unsigned int : 6;
+ } tcf_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_debug_t f;
+} tcf_debug_u;
+
+
+/*
+ * TCA_FIFO_DEBUG struct
+ */
+
+#define TCA_FIFO_DEBUG_tp0_full_SIZE 1
+#define TCA_FIFO_DEBUG_tpc_full_SIZE 1
+#define TCA_FIFO_DEBUG_load_tpc_fifo_SIZE 1
+#define TCA_FIFO_DEBUG_load_tp_fifos_SIZE 1
+#define TCA_FIFO_DEBUG_FW_full_SIZE 1
+#define TCA_FIFO_DEBUG_not_FW_rtr0_SIZE 1
+#define TCA_FIFO_DEBUG_FW_rts0_SIZE 1
+#define TCA_FIFO_DEBUG_not_FW_tpc_rtr_SIZE 1
+#define TCA_FIFO_DEBUG_FW_tpc_rts_SIZE 1
+
+#define TCA_FIFO_DEBUG_tp0_full_SHIFT 0
+#define TCA_FIFO_DEBUG_tpc_full_SHIFT 4
+#define TCA_FIFO_DEBUG_load_tpc_fifo_SHIFT 5
+#define TCA_FIFO_DEBUG_load_tp_fifos_SHIFT 6
+#define TCA_FIFO_DEBUG_FW_full_SHIFT 7
+#define TCA_FIFO_DEBUG_not_FW_rtr0_SHIFT 8
+#define TCA_FIFO_DEBUG_FW_rts0_SHIFT 12
+#define TCA_FIFO_DEBUG_not_FW_tpc_rtr_SHIFT 16
+#define TCA_FIFO_DEBUG_FW_tpc_rts_SHIFT 17
+
+#define TCA_FIFO_DEBUG_tp0_full_MASK 0x00000001
+#define TCA_FIFO_DEBUG_tpc_full_MASK 0x00000010
+#define TCA_FIFO_DEBUG_load_tpc_fifo_MASK 0x00000020
+#define TCA_FIFO_DEBUG_load_tp_fifos_MASK 0x00000040
+#define TCA_FIFO_DEBUG_FW_full_MASK 0x00000080
+#define TCA_FIFO_DEBUG_not_FW_rtr0_MASK 0x00000100
+#define TCA_FIFO_DEBUG_FW_rts0_MASK 0x00001000
+#define TCA_FIFO_DEBUG_not_FW_tpc_rtr_MASK 0x00010000
+#define TCA_FIFO_DEBUG_FW_tpc_rts_MASK 0x00020000
+
+#define TCA_FIFO_DEBUG_MASK \
+ (TCA_FIFO_DEBUG_tp0_full_MASK | \
+ TCA_FIFO_DEBUG_tpc_full_MASK | \
+ TCA_FIFO_DEBUG_load_tpc_fifo_MASK | \
+ TCA_FIFO_DEBUG_load_tp_fifos_MASK | \
+ TCA_FIFO_DEBUG_FW_full_MASK | \
+ TCA_FIFO_DEBUG_not_FW_rtr0_MASK | \
+ TCA_FIFO_DEBUG_FW_rts0_MASK | \
+ TCA_FIFO_DEBUG_not_FW_tpc_rtr_MASK | \
+ TCA_FIFO_DEBUG_FW_tpc_rts_MASK)
+
+#define TCA_FIFO_DEBUG(tp0_full, tpc_full, load_tpc_fifo, load_tp_fifos, fw_full, not_fw_rtr0, fw_rts0, not_fw_tpc_rtr, fw_tpc_rts) \
+ ((tp0_full << TCA_FIFO_DEBUG_tp0_full_SHIFT) | \
+ (tpc_full << TCA_FIFO_DEBUG_tpc_full_SHIFT) | \
+ (load_tpc_fifo << TCA_FIFO_DEBUG_load_tpc_fifo_SHIFT) | \
+ (load_tp_fifos << TCA_FIFO_DEBUG_load_tp_fifos_SHIFT) | \
+ (fw_full << TCA_FIFO_DEBUG_FW_full_SHIFT) | \
+ (not_fw_rtr0 << TCA_FIFO_DEBUG_not_FW_rtr0_SHIFT) | \
+ (fw_rts0 << TCA_FIFO_DEBUG_FW_rts0_SHIFT) | \
+ (not_fw_tpc_rtr << TCA_FIFO_DEBUG_not_FW_tpc_rtr_SHIFT) | \
+ (fw_tpc_rts << TCA_FIFO_DEBUG_FW_tpc_rts_SHIFT))
+
+#define TCA_FIFO_DEBUG_GET_tp0_full(tca_fifo_debug) \
+ ((tca_fifo_debug & TCA_FIFO_DEBUG_tp0_full_MASK) >> TCA_FIFO_DEBUG_tp0_full_SHIFT)
+#define TCA_FIFO_DEBUG_GET_tpc_full(tca_fifo_debug) \
+ ((tca_fifo_debug & TCA_FIFO_DEBUG_tpc_full_MASK) >> TCA_FIFO_DEBUG_tpc_full_SHIFT)
+#define TCA_FIFO_DEBUG_GET_load_tpc_fifo(tca_fifo_debug) \
+ ((tca_fifo_debug & TCA_FIFO_DEBUG_load_tpc_fifo_MASK) >> TCA_FIFO_DEBUG_load_tpc_fifo_SHIFT)
+#define TCA_FIFO_DEBUG_GET_load_tp_fifos(tca_fifo_debug) \
+ ((tca_fifo_debug & TCA_FIFO_DEBUG_load_tp_fifos_MASK) >> TCA_FIFO_DEBUG_load_tp_fifos_SHIFT)
+#define TCA_FIFO_DEBUG_GET_FW_full(tca_fifo_debug) \
+ ((tca_fifo_debug & TCA_FIFO_DEBUG_FW_full_MASK) >> TCA_FIFO_DEBUG_FW_full_SHIFT)
+#define TCA_FIFO_DEBUG_GET_not_FW_rtr0(tca_fifo_debug) \
+ ((tca_fifo_debug & TCA_FIFO_DEBUG_not_FW_rtr0_MASK) >> TCA_FIFO_DEBUG_not_FW_rtr0_SHIFT)
+#define TCA_FIFO_DEBUG_GET_FW_rts0(tca_fifo_debug) \
+ ((tca_fifo_debug & TCA_FIFO_DEBUG_FW_rts0_MASK) >> TCA_FIFO_DEBUG_FW_rts0_SHIFT)
+#define TCA_FIFO_DEBUG_GET_not_FW_tpc_rtr(tca_fifo_debug) \
+ ((tca_fifo_debug & TCA_FIFO_DEBUG_not_FW_tpc_rtr_MASK) >> TCA_FIFO_DEBUG_not_FW_tpc_rtr_SHIFT)
+#define TCA_FIFO_DEBUG_GET_FW_tpc_rts(tca_fifo_debug) \
+ ((tca_fifo_debug & TCA_FIFO_DEBUG_FW_tpc_rts_MASK) >> TCA_FIFO_DEBUG_FW_tpc_rts_SHIFT)
+
+#define TCA_FIFO_DEBUG_SET_tp0_full(tca_fifo_debug_reg, tp0_full) \
+ tca_fifo_debug_reg = (tca_fifo_debug_reg & ~TCA_FIFO_DEBUG_tp0_full_MASK) | (tp0_full << TCA_FIFO_DEBUG_tp0_full_SHIFT)
+#define TCA_FIFO_DEBUG_SET_tpc_full(tca_fifo_debug_reg, tpc_full) \
+ tca_fifo_debug_reg = (tca_fifo_debug_reg & ~TCA_FIFO_DEBUG_tpc_full_MASK) | (tpc_full << TCA_FIFO_DEBUG_tpc_full_SHIFT)
+#define TCA_FIFO_DEBUG_SET_load_tpc_fifo(tca_fifo_debug_reg, load_tpc_fifo) \
+ tca_fifo_debug_reg = (tca_fifo_debug_reg & ~TCA_FIFO_DEBUG_load_tpc_fifo_MASK) | (load_tpc_fifo << TCA_FIFO_DEBUG_load_tpc_fifo_SHIFT)
+#define TCA_FIFO_DEBUG_SET_load_tp_fifos(tca_fifo_debug_reg, load_tp_fifos) \
+ tca_fifo_debug_reg = (tca_fifo_debug_reg & ~TCA_FIFO_DEBUG_load_tp_fifos_MASK) | (load_tp_fifos << TCA_FIFO_DEBUG_load_tp_fifos_SHIFT)
+#define TCA_FIFO_DEBUG_SET_FW_full(tca_fifo_debug_reg, fw_full) \
+ tca_fifo_debug_reg = (tca_fifo_debug_reg & ~TCA_FIFO_DEBUG_FW_full_MASK) | (fw_full << TCA_FIFO_DEBUG_FW_full_SHIFT)
+#define TCA_FIFO_DEBUG_SET_not_FW_rtr0(tca_fifo_debug_reg, not_fw_rtr0) \
+ tca_fifo_debug_reg = (tca_fifo_debug_reg & ~TCA_FIFO_DEBUG_not_FW_rtr0_MASK) | (not_fw_rtr0 << TCA_FIFO_DEBUG_not_FW_rtr0_SHIFT)
+#define TCA_FIFO_DEBUG_SET_FW_rts0(tca_fifo_debug_reg, fw_rts0) \
+ tca_fifo_debug_reg = (tca_fifo_debug_reg & ~TCA_FIFO_DEBUG_FW_rts0_MASK) | (fw_rts0 << TCA_FIFO_DEBUG_FW_rts0_SHIFT)
+#define TCA_FIFO_DEBUG_SET_not_FW_tpc_rtr(tca_fifo_debug_reg, not_fw_tpc_rtr) \
+ tca_fifo_debug_reg = (tca_fifo_debug_reg & ~TCA_FIFO_DEBUG_not_FW_tpc_rtr_MASK) | (not_fw_tpc_rtr << TCA_FIFO_DEBUG_not_FW_tpc_rtr_SHIFT)
+#define TCA_FIFO_DEBUG_SET_FW_tpc_rts(tca_fifo_debug_reg, fw_tpc_rts) \
+ tca_fifo_debug_reg = (tca_fifo_debug_reg & ~TCA_FIFO_DEBUG_FW_tpc_rts_MASK) | (fw_tpc_rts << TCA_FIFO_DEBUG_FW_tpc_rts_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tca_fifo_debug_t {
+ unsigned int tp0_full : TCA_FIFO_DEBUG_tp0_full_SIZE;
+ unsigned int : 3;
+ unsigned int tpc_full : TCA_FIFO_DEBUG_tpc_full_SIZE;
+ unsigned int load_tpc_fifo : TCA_FIFO_DEBUG_load_tpc_fifo_SIZE;
+ unsigned int load_tp_fifos : TCA_FIFO_DEBUG_load_tp_fifos_SIZE;
+ unsigned int fw_full : TCA_FIFO_DEBUG_FW_full_SIZE;
+ unsigned int not_fw_rtr0 : TCA_FIFO_DEBUG_not_FW_rtr0_SIZE;
+ unsigned int : 3;
+ unsigned int fw_rts0 : TCA_FIFO_DEBUG_FW_rts0_SIZE;
+ unsigned int : 3;
+ unsigned int not_fw_tpc_rtr : TCA_FIFO_DEBUG_not_FW_tpc_rtr_SIZE;
+ unsigned int fw_tpc_rts : TCA_FIFO_DEBUG_FW_tpc_rts_SIZE;
+ unsigned int : 14;
+ } tca_fifo_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tca_fifo_debug_t {
+ unsigned int : 14;
+ unsigned int fw_tpc_rts : TCA_FIFO_DEBUG_FW_tpc_rts_SIZE;
+ unsigned int not_fw_tpc_rtr : TCA_FIFO_DEBUG_not_FW_tpc_rtr_SIZE;
+ unsigned int : 3;
+ unsigned int fw_rts0 : TCA_FIFO_DEBUG_FW_rts0_SIZE;
+ unsigned int : 3;
+ unsigned int not_fw_rtr0 : TCA_FIFO_DEBUG_not_FW_rtr0_SIZE;
+ unsigned int fw_full : TCA_FIFO_DEBUG_FW_full_SIZE;
+ unsigned int load_tp_fifos : TCA_FIFO_DEBUG_load_tp_fifos_SIZE;
+ unsigned int load_tpc_fifo : TCA_FIFO_DEBUG_load_tpc_fifo_SIZE;
+ unsigned int tpc_full : TCA_FIFO_DEBUG_tpc_full_SIZE;
+ unsigned int : 3;
+ unsigned int tp0_full : TCA_FIFO_DEBUG_tp0_full_SIZE;
+ } tca_fifo_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tca_fifo_debug_t f;
+} tca_fifo_debug_u;
+
+
+/*
+ * TCA_PROBE_DEBUG struct
+ */
+
+#define TCA_PROBE_DEBUG_ProbeFilter_stall_SIZE 1
+
+#define TCA_PROBE_DEBUG_ProbeFilter_stall_SHIFT 0
+
+#define TCA_PROBE_DEBUG_ProbeFilter_stall_MASK 0x00000001
+
+#define TCA_PROBE_DEBUG_MASK \
+ (TCA_PROBE_DEBUG_ProbeFilter_stall_MASK)
+
+#define TCA_PROBE_DEBUG(probefilter_stall) \
+ ((probefilter_stall << TCA_PROBE_DEBUG_ProbeFilter_stall_SHIFT))
+
+#define TCA_PROBE_DEBUG_GET_ProbeFilter_stall(tca_probe_debug) \
+ ((tca_probe_debug & TCA_PROBE_DEBUG_ProbeFilter_stall_MASK) >> TCA_PROBE_DEBUG_ProbeFilter_stall_SHIFT)
+
+#define TCA_PROBE_DEBUG_SET_ProbeFilter_stall(tca_probe_debug_reg, probefilter_stall) \
+ tca_probe_debug_reg = (tca_probe_debug_reg & ~TCA_PROBE_DEBUG_ProbeFilter_stall_MASK) | (probefilter_stall << TCA_PROBE_DEBUG_ProbeFilter_stall_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tca_probe_debug_t {
+ unsigned int probefilter_stall : TCA_PROBE_DEBUG_ProbeFilter_stall_SIZE;
+ unsigned int : 31;
+ } tca_probe_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tca_probe_debug_t {
+ unsigned int : 31;
+ unsigned int probefilter_stall : TCA_PROBE_DEBUG_ProbeFilter_stall_SIZE;
+ } tca_probe_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tca_probe_debug_t f;
+} tca_probe_debug_u;
+
+
+/*
+ * TCA_TPC_DEBUG struct
+ */
+
+#define TCA_TPC_DEBUG_captue_state_rts_SIZE 1
+#define TCA_TPC_DEBUG_capture_tca_rts_SIZE 1
+
+#define TCA_TPC_DEBUG_captue_state_rts_SHIFT 12
+#define TCA_TPC_DEBUG_capture_tca_rts_SHIFT 13
+
+#define TCA_TPC_DEBUG_captue_state_rts_MASK 0x00001000
+#define TCA_TPC_DEBUG_capture_tca_rts_MASK 0x00002000
+
+#define TCA_TPC_DEBUG_MASK \
+ (TCA_TPC_DEBUG_captue_state_rts_MASK | \
+ TCA_TPC_DEBUG_capture_tca_rts_MASK)
+
+#define TCA_TPC_DEBUG(captue_state_rts, capture_tca_rts) \
+ ((captue_state_rts << TCA_TPC_DEBUG_captue_state_rts_SHIFT) | \
+ (capture_tca_rts << TCA_TPC_DEBUG_capture_tca_rts_SHIFT))
+
+#define TCA_TPC_DEBUG_GET_captue_state_rts(tca_tpc_debug) \
+ ((tca_tpc_debug & TCA_TPC_DEBUG_captue_state_rts_MASK) >> TCA_TPC_DEBUG_captue_state_rts_SHIFT)
+#define TCA_TPC_DEBUG_GET_capture_tca_rts(tca_tpc_debug) \
+ ((tca_tpc_debug & TCA_TPC_DEBUG_capture_tca_rts_MASK) >> TCA_TPC_DEBUG_capture_tca_rts_SHIFT)
+
+#define TCA_TPC_DEBUG_SET_captue_state_rts(tca_tpc_debug_reg, captue_state_rts) \
+ tca_tpc_debug_reg = (tca_tpc_debug_reg & ~TCA_TPC_DEBUG_captue_state_rts_MASK) | (captue_state_rts << TCA_TPC_DEBUG_captue_state_rts_SHIFT)
+#define TCA_TPC_DEBUG_SET_capture_tca_rts(tca_tpc_debug_reg, capture_tca_rts) \
+ tca_tpc_debug_reg = (tca_tpc_debug_reg & ~TCA_TPC_DEBUG_capture_tca_rts_MASK) | (capture_tca_rts << TCA_TPC_DEBUG_capture_tca_rts_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tca_tpc_debug_t {
+ unsigned int : 12;
+ unsigned int captue_state_rts : TCA_TPC_DEBUG_captue_state_rts_SIZE;
+ unsigned int capture_tca_rts : TCA_TPC_DEBUG_capture_tca_rts_SIZE;
+ unsigned int : 18;
+ } tca_tpc_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tca_tpc_debug_t {
+ unsigned int : 18;
+ unsigned int capture_tca_rts : TCA_TPC_DEBUG_capture_tca_rts_SIZE;
+ unsigned int captue_state_rts : TCA_TPC_DEBUG_captue_state_rts_SIZE;
+ unsigned int : 12;
+ } tca_tpc_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tca_tpc_debug_t f;
+} tca_tpc_debug_u;
+
+
+/*
+ * TCB_CORE_DEBUG struct
+ */
+
+#define TCB_CORE_DEBUG_access512_SIZE 1
+#define TCB_CORE_DEBUG_tiled_SIZE 1
+#define TCB_CORE_DEBUG_opcode_SIZE 3
+#define TCB_CORE_DEBUG_format_SIZE 6
+#define TCB_CORE_DEBUG_sector_format_SIZE 5
+#define TCB_CORE_DEBUG_sector_format512_SIZE 3
+
+#define TCB_CORE_DEBUG_access512_SHIFT 0
+#define TCB_CORE_DEBUG_tiled_SHIFT 1
+#define TCB_CORE_DEBUG_opcode_SHIFT 4
+#define TCB_CORE_DEBUG_format_SHIFT 8
+#define TCB_CORE_DEBUG_sector_format_SHIFT 16
+#define TCB_CORE_DEBUG_sector_format512_SHIFT 24
+
+#define TCB_CORE_DEBUG_access512_MASK 0x00000001
+#define TCB_CORE_DEBUG_tiled_MASK 0x00000002
+#define TCB_CORE_DEBUG_opcode_MASK 0x00000070
+#define TCB_CORE_DEBUG_format_MASK 0x00003f00
+#define TCB_CORE_DEBUG_sector_format_MASK 0x001f0000
+#define TCB_CORE_DEBUG_sector_format512_MASK 0x07000000
+
+#define TCB_CORE_DEBUG_MASK \
+ (TCB_CORE_DEBUG_access512_MASK | \
+ TCB_CORE_DEBUG_tiled_MASK | \
+ TCB_CORE_DEBUG_opcode_MASK | \
+ TCB_CORE_DEBUG_format_MASK | \
+ TCB_CORE_DEBUG_sector_format_MASK | \
+ TCB_CORE_DEBUG_sector_format512_MASK)
+
+#define TCB_CORE_DEBUG(access512, tiled, opcode, format, sector_format, sector_format512) \
+ ((access512 << TCB_CORE_DEBUG_access512_SHIFT) | \
+ (tiled << TCB_CORE_DEBUG_tiled_SHIFT) | \
+ (opcode << TCB_CORE_DEBUG_opcode_SHIFT) | \
+ (format << TCB_CORE_DEBUG_format_SHIFT) | \
+ (sector_format << TCB_CORE_DEBUG_sector_format_SHIFT) | \
+ (sector_format512 << TCB_CORE_DEBUG_sector_format512_SHIFT))
+
+#define TCB_CORE_DEBUG_GET_access512(tcb_core_debug) \
+ ((tcb_core_debug & TCB_CORE_DEBUG_access512_MASK) >> TCB_CORE_DEBUG_access512_SHIFT)
+#define TCB_CORE_DEBUG_GET_tiled(tcb_core_debug) \
+ ((tcb_core_debug & TCB_CORE_DEBUG_tiled_MASK) >> TCB_CORE_DEBUG_tiled_SHIFT)
+#define TCB_CORE_DEBUG_GET_opcode(tcb_core_debug) \
+ ((tcb_core_debug & TCB_CORE_DEBUG_opcode_MASK) >> TCB_CORE_DEBUG_opcode_SHIFT)
+#define TCB_CORE_DEBUG_GET_format(tcb_core_debug) \
+ ((tcb_core_debug & TCB_CORE_DEBUG_format_MASK) >> TCB_CORE_DEBUG_format_SHIFT)
+#define TCB_CORE_DEBUG_GET_sector_format(tcb_core_debug) \
+ ((tcb_core_debug & TCB_CORE_DEBUG_sector_format_MASK) >> TCB_CORE_DEBUG_sector_format_SHIFT)
+#define TCB_CORE_DEBUG_GET_sector_format512(tcb_core_debug) \
+ ((tcb_core_debug & TCB_CORE_DEBUG_sector_format512_MASK) >> TCB_CORE_DEBUG_sector_format512_SHIFT)
+
+#define TCB_CORE_DEBUG_SET_access512(tcb_core_debug_reg, access512) \
+ tcb_core_debug_reg = (tcb_core_debug_reg & ~TCB_CORE_DEBUG_access512_MASK) | (access512 << TCB_CORE_DEBUG_access512_SHIFT)
+#define TCB_CORE_DEBUG_SET_tiled(tcb_core_debug_reg, tiled) \
+ tcb_core_debug_reg = (tcb_core_debug_reg & ~TCB_CORE_DEBUG_tiled_MASK) | (tiled << TCB_CORE_DEBUG_tiled_SHIFT)
+#define TCB_CORE_DEBUG_SET_opcode(tcb_core_debug_reg, opcode) \
+ tcb_core_debug_reg = (tcb_core_debug_reg & ~TCB_CORE_DEBUG_opcode_MASK) | (opcode << TCB_CORE_DEBUG_opcode_SHIFT)
+#define TCB_CORE_DEBUG_SET_format(tcb_core_debug_reg, format) \
+ tcb_core_debug_reg = (tcb_core_debug_reg & ~TCB_CORE_DEBUG_format_MASK) | (format << TCB_CORE_DEBUG_format_SHIFT)
+#define TCB_CORE_DEBUG_SET_sector_format(tcb_core_debug_reg, sector_format) \
+ tcb_core_debug_reg = (tcb_core_debug_reg & ~TCB_CORE_DEBUG_sector_format_MASK) | (sector_format << TCB_CORE_DEBUG_sector_format_SHIFT)
+#define TCB_CORE_DEBUG_SET_sector_format512(tcb_core_debug_reg, sector_format512) \
+ tcb_core_debug_reg = (tcb_core_debug_reg & ~TCB_CORE_DEBUG_sector_format512_MASK) | (sector_format512 << TCB_CORE_DEBUG_sector_format512_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcb_core_debug_t {
+ unsigned int access512 : TCB_CORE_DEBUG_access512_SIZE;
+ unsigned int tiled : TCB_CORE_DEBUG_tiled_SIZE;
+ unsigned int : 2;
+ unsigned int opcode : TCB_CORE_DEBUG_opcode_SIZE;
+ unsigned int : 1;
+ unsigned int format : TCB_CORE_DEBUG_format_SIZE;
+ unsigned int : 2;
+ unsigned int sector_format : TCB_CORE_DEBUG_sector_format_SIZE;
+ unsigned int : 3;
+ unsigned int sector_format512 : TCB_CORE_DEBUG_sector_format512_SIZE;
+ unsigned int : 5;
+ } tcb_core_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcb_core_debug_t {
+ unsigned int : 5;
+ unsigned int sector_format512 : TCB_CORE_DEBUG_sector_format512_SIZE;
+ unsigned int : 3;
+ unsigned int sector_format : TCB_CORE_DEBUG_sector_format_SIZE;
+ unsigned int : 2;
+ unsigned int format : TCB_CORE_DEBUG_format_SIZE;
+ unsigned int : 1;
+ unsigned int opcode : TCB_CORE_DEBUG_opcode_SIZE;
+ unsigned int : 2;
+ unsigned int tiled : TCB_CORE_DEBUG_tiled_SIZE;
+ unsigned int access512 : TCB_CORE_DEBUG_access512_SIZE;
+ } tcb_core_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcb_core_debug_t f;
+} tcb_core_debug_u;
+
+
+/*
+ * TCB_TAG0_DEBUG struct
+ */
+
+#define TCB_TAG0_DEBUG_mem_read_cycle_SIZE 10
+#define TCB_TAG0_DEBUG_tag_access_cycle_SIZE 9
+#define TCB_TAG0_DEBUG_miss_stall_SIZE 1
+#define TCB_TAG0_DEBUG_num_feee_lines_SIZE 5
+#define TCB_TAG0_DEBUG_max_misses_SIZE 3
+
+#define TCB_TAG0_DEBUG_mem_read_cycle_SHIFT 0
+#define TCB_TAG0_DEBUG_tag_access_cycle_SHIFT 12
+#define TCB_TAG0_DEBUG_miss_stall_SHIFT 23
+#define TCB_TAG0_DEBUG_num_feee_lines_SHIFT 24
+#define TCB_TAG0_DEBUG_max_misses_SHIFT 29
+
+#define TCB_TAG0_DEBUG_mem_read_cycle_MASK 0x000003ff
+#define TCB_TAG0_DEBUG_tag_access_cycle_MASK 0x001ff000
+#define TCB_TAG0_DEBUG_miss_stall_MASK 0x00800000
+#define TCB_TAG0_DEBUG_num_feee_lines_MASK 0x1f000000
+#define TCB_TAG0_DEBUG_max_misses_MASK 0xe0000000
+
+#define TCB_TAG0_DEBUG_MASK \
+ (TCB_TAG0_DEBUG_mem_read_cycle_MASK | \
+ TCB_TAG0_DEBUG_tag_access_cycle_MASK | \
+ TCB_TAG0_DEBUG_miss_stall_MASK | \
+ TCB_TAG0_DEBUG_num_feee_lines_MASK | \
+ TCB_TAG0_DEBUG_max_misses_MASK)
+
+#define TCB_TAG0_DEBUG(mem_read_cycle, tag_access_cycle, miss_stall, num_feee_lines, max_misses) \
+ ((mem_read_cycle << TCB_TAG0_DEBUG_mem_read_cycle_SHIFT) | \
+ (tag_access_cycle << TCB_TAG0_DEBUG_tag_access_cycle_SHIFT) | \
+ (miss_stall << TCB_TAG0_DEBUG_miss_stall_SHIFT) | \
+ (num_feee_lines << TCB_TAG0_DEBUG_num_feee_lines_SHIFT) | \
+ (max_misses << TCB_TAG0_DEBUG_max_misses_SHIFT))
+
+#define TCB_TAG0_DEBUG_GET_mem_read_cycle(tcb_tag0_debug) \
+ ((tcb_tag0_debug & TCB_TAG0_DEBUG_mem_read_cycle_MASK) >> TCB_TAG0_DEBUG_mem_read_cycle_SHIFT)
+#define TCB_TAG0_DEBUG_GET_tag_access_cycle(tcb_tag0_debug) \
+ ((tcb_tag0_debug & TCB_TAG0_DEBUG_tag_access_cycle_MASK) >> TCB_TAG0_DEBUG_tag_access_cycle_SHIFT)
+#define TCB_TAG0_DEBUG_GET_miss_stall(tcb_tag0_debug) \
+ ((tcb_tag0_debug & TCB_TAG0_DEBUG_miss_stall_MASK) >> TCB_TAG0_DEBUG_miss_stall_SHIFT)
+#define TCB_TAG0_DEBUG_GET_num_feee_lines(tcb_tag0_debug) \
+ ((tcb_tag0_debug & TCB_TAG0_DEBUG_num_feee_lines_MASK) >> TCB_TAG0_DEBUG_num_feee_lines_SHIFT)
+#define TCB_TAG0_DEBUG_GET_max_misses(tcb_tag0_debug) \
+ ((tcb_tag0_debug & TCB_TAG0_DEBUG_max_misses_MASK) >> TCB_TAG0_DEBUG_max_misses_SHIFT)
+
+#define TCB_TAG0_DEBUG_SET_mem_read_cycle(tcb_tag0_debug_reg, mem_read_cycle) \
+ tcb_tag0_debug_reg = (tcb_tag0_debug_reg & ~TCB_TAG0_DEBUG_mem_read_cycle_MASK) | (mem_read_cycle << TCB_TAG0_DEBUG_mem_read_cycle_SHIFT)
+#define TCB_TAG0_DEBUG_SET_tag_access_cycle(tcb_tag0_debug_reg, tag_access_cycle) \
+ tcb_tag0_debug_reg = (tcb_tag0_debug_reg & ~TCB_TAG0_DEBUG_tag_access_cycle_MASK) | (tag_access_cycle << TCB_TAG0_DEBUG_tag_access_cycle_SHIFT)
+#define TCB_TAG0_DEBUG_SET_miss_stall(tcb_tag0_debug_reg, miss_stall) \
+ tcb_tag0_debug_reg = (tcb_tag0_debug_reg & ~TCB_TAG0_DEBUG_miss_stall_MASK) | (miss_stall << TCB_TAG0_DEBUG_miss_stall_SHIFT)
+#define TCB_TAG0_DEBUG_SET_num_feee_lines(tcb_tag0_debug_reg, num_feee_lines) \
+ tcb_tag0_debug_reg = (tcb_tag0_debug_reg & ~TCB_TAG0_DEBUG_num_feee_lines_MASK) | (num_feee_lines << TCB_TAG0_DEBUG_num_feee_lines_SHIFT)
+#define TCB_TAG0_DEBUG_SET_max_misses(tcb_tag0_debug_reg, max_misses) \
+ tcb_tag0_debug_reg = (tcb_tag0_debug_reg & ~TCB_TAG0_DEBUG_max_misses_MASK) | (max_misses << TCB_TAG0_DEBUG_max_misses_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcb_tag0_debug_t {
+ unsigned int mem_read_cycle : TCB_TAG0_DEBUG_mem_read_cycle_SIZE;
+ unsigned int : 2;
+ unsigned int tag_access_cycle : TCB_TAG0_DEBUG_tag_access_cycle_SIZE;
+ unsigned int : 2;
+ unsigned int miss_stall : TCB_TAG0_DEBUG_miss_stall_SIZE;
+ unsigned int num_feee_lines : TCB_TAG0_DEBUG_num_feee_lines_SIZE;
+ unsigned int max_misses : TCB_TAG0_DEBUG_max_misses_SIZE;
+ } tcb_tag0_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcb_tag0_debug_t {
+ unsigned int max_misses : TCB_TAG0_DEBUG_max_misses_SIZE;
+ unsigned int num_feee_lines : TCB_TAG0_DEBUG_num_feee_lines_SIZE;
+ unsigned int miss_stall : TCB_TAG0_DEBUG_miss_stall_SIZE;
+ unsigned int : 2;
+ unsigned int tag_access_cycle : TCB_TAG0_DEBUG_tag_access_cycle_SIZE;
+ unsigned int : 2;
+ unsigned int mem_read_cycle : TCB_TAG0_DEBUG_mem_read_cycle_SIZE;
+ } tcb_tag0_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcb_tag0_debug_t f;
+} tcb_tag0_debug_u;
+
+
+/*
+ * TCB_TAG1_DEBUG struct
+ */
+
+#define TCB_TAG1_DEBUG_mem_read_cycle_SIZE 10
+#define TCB_TAG1_DEBUG_tag_access_cycle_SIZE 9
+#define TCB_TAG1_DEBUG_miss_stall_SIZE 1
+#define TCB_TAG1_DEBUG_num_feee_lines_SIZE 5
+#define TCB_TAG1_DEBUG_max_misses_SIZE 3
+
+#define TCB_TAG1_DEBUG_mem_read_cycle_SHIFT 0
+#define TCB_TAG1_DEBUG_tag_access_cycle_SHIFT 12
+#define TCB_TAG1_DEBUG_miss_stall_SHIFT 23
+#define TCB_TAG1_DEBUG_num_feee_lines_SHIFT 24
+#define TCB_TAG1_DEBUG_max_misses_SHIFT 29
+
+#define TCB_TAG1_DEBUG_mem_read_cycle_MASK 0x000003ff
+#define TCB_TAG1_DEBUG_tag_access_cycle_MASK 0x001ff000
+#define TCB_TAG1_DEBUG_miss_stall_MASK 0x00800000
+#define TCB_TAG1_DEBUG_num_feee_lines_MASK 0x1f000000
+#define TCB_TAG1_DEBUG_max_misses_MASK 0xe0000000
+
+#define TCB_TAG1_DEBUG_MASK \
+ (TCB_TAG1_DEBUG_mem_read_cycle_MASK | \
+ TCB_TAG1_DEBUG_tag_access_cycle_MASK | \
+ TCB_TAG1_DEBUG_miss_stall_MASK | \
+ TCB_TAG1_DEBUG_num_feee_lines_MASK | \
+ TCB_TAG1_DEBUG_max_misses_MASK)
+
+#define TCB_TAG1_DEBUG(mem_read_cycle, tag_access_cycle, miss_stall, num_feee_lines, max_misses) \
+ ((mem_read_cycle << TCB_TAG1_DEBUG_mem_read_cycle_SHIFT) | \
+ (tag_access_cycle << TCB_TAG1_DEBUG_tag_access_cycle_SHIFT) | \
+ (miss_stall << TCB_TAG1_DEBUG_miss_stall_SHIFT) | \
+ (num_feee_lines << TCB_TAG1_DEBUG_num_feee_lines_SHIFT) | \
+ (max_misses << TCB_TAG1_DEBUG_max_misses_SHIFT))
+
+#define TCB_TAG1_DEBUG_GET_mem_read_cycle(tcb_tag1_debug) \
+ ((tcb_tag1_debug & TCB_TAG1_DEBUG_mem_read_cycle_MASK) >> TCB_TAG1_DEBUG_mem_read_cycle_SHIFT)
+#define TCB_TAG1_DEBUG_GET_tag_access_cycle(tcb_tag1_debug) \
+ ((tcb_tag1_debug & TCB_TAG1_DEBUG_tag_access_cycle_MASK) >> TCB_TAG1_DEBUG_tag_access_cycle_SHIFT)
+#define TCB_TAG1_DEBUG_GET_miss_stall(tcb_tag1_debug) \
+ ((tcb_tag1_debug & TCB_TAG1_DEBUG_miss_stall_MASK) >> TCB_TAG1_DEBUG_miss_stall_SHIFT)
+#define TCB_TAG1_DEBUG_GET_num_feee_lines(tcb_tag1_debug) \
+ ((tcb_tag1_debug & TCB_TAG1_DEBUG_num_feee_lines_MASK) >> TCB_TAG1_DEBUG_num_feee_lines_SHIFT)
+#define TCB_TAG1_DEBUG_GET_max_misses(tcb_tag1_debug) \
+ ((tcb_tag1_debug & TCB_TAG1_DEBUG_max_misses_MASK) >> TCB_TAG1_DEBUG_max_misses_SHIFT)
+
+#define TCB_TAG1_DEBUG_SET_mem_read_cycle(tcb_tag1_debug_reg, mem_read_cycle) \
+ tcb_tag1_debug_reg = (tcb_tag1_debug_reg & ~TCB_TAG1_DEBUG_mem_read_cycle_MASK) | (mem_read_cycle << TCB_TAG1_DEBUG_mem_read_cycle_SHIFT)
+#define TCB_TAG1_DEBUG_SET_tag_access_cycle(tcb_tag1_debug_reg, tag_access_cycle) \
+ tcb_tag1_debug_reg = (tcb_tag1_debug_reg & ~TCB_TAG1_DEBUG_tag_access_cycle_MASK) | (tag_access_cycle << TCB_TAG1_DEBUG_tag_access_cycle_SHIFT)
+#define TCB_TAG1_DEBUG_SET_miss_stall(tcb_tag1_debug_reg, miss_stall) \
+ tcb_tag1_debug_reg = (tcb_tag1_debug_reg & ~TCB_TAG1_DEBUG_miss_stall_MASK) | (miss_stall << TCB_TAG1_DEBUG_miss_stall_SHIFT)
+#define TCB_TAG1_DEBUG_SET_num_feee_lines(tcb_tag1_debug_reg, num_feee_lines) \
+ tcb_tag1_debug_reg = (tcb_tag1_debug_reg & ~TCB_TAG1_DEBUG_num_feee_lines_MASK) | (num_feee_lines << TCB_TAG1_DEBUG_num_feee_lines_SHIFT)
+#define TCB_TAG1_DEBUG_SET_max_misses(tcb_tag1_debug_reg, max_misses) \
+ tcb_tag1_debug_reg = (tcb_tag1_debug_reg & ~TCB_TAG1_DEBUG_max_misses_MASK) | (max_misses << TCB_TAG1_DEBUG_max_misses_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcb_tag1_debug_t {
+ unsigned int mem_read_cycle : TCB_TAG1_DEBUG_mem_read_cycle_SIZE;
+ unsigned int : 2;
+ unsigned int tag_access_cycle : TCB_TAG1_DEBUG_tag_access_cycle_SIZE;
+ unsigned int : 2;
+ unsigned int miss_stall : TCB_TAG1_DEBUG_miss_stall_SIZE;
+ unsigned int num_feee_lines : TCB_TAG1_DEBUG_num_feee_lines_SIZE;
+ unsigned int max_misses : TCB_TAG1_DEBUG_max_misses_SIZE;
+ } tcb_tag1_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcb_tag1_debug_t {
+ unsigned int max_misses : TCB_TAG1_DEBUG_max_misses_SIZE;
+ unsigned int num_feee_lines : TCB_TAG1_DEBUG_num_feee_lines_SIZE;
+ unsigned int miss_stall : TCB_TAG1_DEBUG_miss_stall_SIZE;
+ unsigned int : 2;
+ unsigned int tag_access_cycle : TCB_TAG1_DEBUG_tag_access_cycle_SIZE;
+ unsigned int : 2;
+ unsigned int mem_read_cycle : TCB_TAG1_DEBUG_mem_read_cycle_SIZE;
+ } tcb_tag1_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcb_tag1_debug_t f;
+} tcb_tag1_debug_u;
+
+
+/*
+ * TCB_TAG2_DEBUG struct
+ */
+
+#define TCB_TAG2_DEBUG_mem_read_cycle_SIZE 10
+#define TCB_TAG2_DEBUG_tag_access_cycle_SIZE 9
+#define TCB_TAG2_DEBUG_miss_stall_SIZE 1
+#define TCB_TAG2_DEBUG_num_feee_lines_SIZE 5
+#define TCB_TAG2_DEBUG_max_misses_SIZE 3
+
+#define TCB_TAG2_DEBUG_mem_read_cycle_SHIFT 0
+#define TCB_TAG2_DEBUG_tag_access_cycle_SHIFT 12
+#define TCB_TAG2_DEBUG_miss_stall_SHIFT 23
+#define TCB_TAG2_DEBUG_num_feee_lines_SHIFT 24
+#define TCB_TAG2_DEBUG_max_misses_SHIFT 29
+
+#define TCB_TAG2_DEBUG_mem_read_cycle_MASK 0x000003ff
+#define TCB_TAG2_DEBUG_tag_access_cycle_MASK 0x001ff000
+#define TCB_TAG2_DEBUG_miss_stall_MASK 0x00800000
+#define TCB_TAG2_DEBUG_num_feee_lines_MASK 0x1f000000
+#define TCB_TAG2_DEBUG_max_misses_MASK 0xe0000000
+
+#define TCB_TAG2_DEBUG_MASK \
+ (TCB_TAG2_DEBUG_mem_read_cycle_MASK | \
+ TCB_TAG2_DEBUG_tag_access_cycle_MASK | \
+ TCB_TAG2_DEBUG_miss_stall_MASK | \
+ TCB_TAG2_DEBUG_num_feee_lines_MASK | \
+ TCB_TAG2_DEBUG_max_misses_MASK)
+
+#define TCB_TAG2_DEBUG(mem_read_cycle, tag_access_cycle, miss_stall, num_feee_lines, max_misses) \
+ ((mem_read_cycle << TCB_TAG2_DEBUG_mem_read_cycle_SHIFT) | \
+ (tag_access_cycle << TCB_TAG2_DEBUG_tag_access_cycle_SHIFT) | \
+ (miss_stall << TCB_TAG2_DEBUG_miss_stall_SHIFT) | \
+ (num_feee_lines << TCB_TAG2_DEBUG_num_feee_lines_SHIFT) | \
+ (max_misses << TCB_TAG2_DEBUG_max_misses_SHIFT))
+
+#define TCB_TAG2_DEBUG_GET_mem_read_cycle(tcb_tag2_debug) \
+ ((tcb_tag2_debug & TCB_TAG2_DEBUG_mem_read_cycle_MASK) >> TCB_TAG2_DEBUG_mem_read_cycle_SHIFT)
+#define TCB_TAG2_DEBUG_GET_tag_access_cycle(tcb_tag2_debug) \
+ ((tcb_tag2_debug & TCB_TAG2_DEBUG_tag_access_cycle_MASK) >> TCB_TAG2_DEBUG_tag_access_cycle_SHIFT)
+#define TCB_TAG2_DEBUG_GET_miss_stall(tcb_tag2_debug) \
+ ((tcb_tag2_debug & TCB_TAG2_DEBUG_miss_stall_MASK) >> TCB_TAG2_DEBUG_miss_stall_SHIFT)
+#define TCB_TAG2_DEBUG_GET_num_feee_lines(tcb_tag2_debug) \
+ ((tcb_tag2_debug & TCB_TAG2_DEBUG_num_feee_lines_MASK) >> TCB_TAG2_DEBUG_num_feee_lines_SHIFT)
+#define TCB_TAG2_DEBUG_GET_max_misses(tcb_tag2_debug) \
+ ((tcb_tag2_debug & TCB_TAG2_DEBUG_max_misses_MASK) >> TCB_TAG2_DEBUG_max_misses_SHIFT)
+
+#define TCB_TAG2_DEBUG_SET_mem_read_cycle(tcb_tag2_debug_reg, mem_read_cycle) \
+ tcb_tag2_debug_reg = (tcb_tag2_debug_reg & ~TCB_TAG2_DEBUG_mem_read_cycle_MASK) | (mem_read_cycle << TCB_TAG2_DEBUG_mem_read_cycle_SHIFT)
+#define TCB_TAG2_DEBUG_SET_tag_access_cycle(tcb_tag2_debug_reg, tag_access_cycle) \
+ tcb_tag2_debug_reg = (tcb_tag2_debug_reg & ~TCB_TAG2_DEBUG_tag_access_cycle_MASK) | (tag_access_cycle << TCB_TAG2_DEBUG_tag_access_cycle_SHIFT)
+#define TCB_TAG2_DEBUG_SET_miss_stall(tcb_tag2_debug_reg, miss_stall) \
+ tcb_tag2_debug_reg = (tcb_tag2_debug_reg & ~TCB_TAG2_DEBUG_miss_stall_MASK) | (miss_stall << TCB_TAG2_DEBUG_miss_stall_SHIFT)
+#define TCB_TAG2_DEBUG_SET_num_feee_lines(tcb_tag2_debug_reg, num_feee_lines) \
+ tcb_tag2_debug_reg = (tcb_tag2_debug_reg & ~TCB_TAG2_DEBUG_num_feee_lines_MASK) | (num_feee_lines << TCB_TAG2_DEBUG_num_feee_lines_SHIFT)
+#define TCB_TAG2_DEBUG_SET_max_misses(tcb_tag2_debug_reg, max_misses) \
+ tcb_tag2_debug_reg = (tcb_tag2_debug_reg & ~TCB_TAG2_DEBUG_max_misses_MASK) | (max_misses << TCB_TAG2_DEBUG_max_misses_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcb_tag2_debug_t {
+ unsigned int mem_read_cycle : TCB_TAG2_DEBUG_mem_read_cycle_SIZE;
+ unsigned int : 2;
+ unsigned int tag_access_cycle : TCB_TAG2_DEBUG_tag_access_cycle_SIZE;
+ unsigned int : 2;
+ unsigned int miss_stall : TCB_TAG2_DEBUG_miss_stall_SIZE;
+ unsigned int num_feee_lines : TCB_TAG2_DEBUG_num_feee_lines_SIZE;
+ unsigned int max_misses : TCB_TAG2_DEBUG_max_misses_SIZE;
+ } tcb_tag2_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcb_tag2_debug_t {
+ unsigned int max_misses : TCB_TAG2_DEBUG_max_misses_SIZE;
+ unsigned int num_feee_lines : TCB_TAG2_DEBUG_num_feee_lines_SIZE;
+ unsigned int miss_stall : TCB_TAG2_DEBUG_miss_stall_SIZE;
+ unsigned int : 2;
+ unsigned int tag_access_cycle : TCB_TAG2_DEBUG_tag_access_cycle_SIZE;
+ unsigned int : 2;
+ unsigned int mem_read_cycle : TCB_TAG2_DEBUG_mem_read_cycle_SIZE;
+ } tcb_tag2_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcb_tag2_debug_t f;
+} tcb_tag2_debug_u;
+
+
+/*
+ * TCB_TAG3_DEBUG struct
+ */
+
+#define TCB_TAG3_DEBUG_mem_read_cycle_SIZE 10
+#define TCB_TAG3_DEBUG_tag_access_cycle_SIZE 9
+#define TCB_TAG3_DEBUG_miss_stall_SIZE 1
+#define TCB_TAG3_DEBUG_num_feee_lines_SIZE 5
+#define TCB_TAG3_DEBUG_max_misses_SIZE 3
+
+#define TCB_TAG3_DEBUG_mem_read_cycle_SHIFT 0
+#define TCB_TAG3_DEBUG_tag_access_cycle_SHIFT 12
+#define TCB_TAG3_DEBUG_miss_stall_SHIFT 23
+#define TCB_TAG3_DEBUG_num_feee_lines_SHIFT 24
+#define TCB_TAG3_DEBUG_max_misses_SHIFT 29
+
+#define TCB_TAG3_DEBUG_mem_read_cycle_MASK 0x000003ff
+#define TCB_TAG3_DEBUG_tag_access_cycle_MASK 0x001ff000
+#define TCB_TAG3_DEBUG_miss_stall_MASK 0x00800000
+#define TCB_TAG3_DEBUG_num_feee_lines_MASK 0x1f000000
+#define TCB_TAG3_DEBUG_max_misses_MASK 0xe0000000
+
+#define TCB_TAG3_DEBUG_MASK \
+ (TCB_TAG3_DEBUG_mem_read_cycle_MASK | \
+ TCB_TAG3_DEBUG_tag_access_cycle_MASK | \
+ TCB_TAG3_DEBUG_miss_stall_MASK | \
+ TCB_TAG3_DEBUG_num_feee_lines_MASK | \
+ TCB_TAG3_DEBUG_max_misses_MASK)
+
+#define TCB_TAG3_DEBUG(mem_read_cycle, tag_access_cycle, miss_stall, num_feee_lines, max_misses) \
+ ((mem_read_cycle << TCB_TAG3_DEBUG_mem_read_cycle_SHIFT) | \
+ (tag_access_cycle << TCB_TAG3_DEBUG_tag_access_cycle_SHIFT) | \
+ (miss_stall << TCB_TAG3_DEBUG_miss_stall_SHIFT) | \
+ (num_feee_lines << TCB_TAG3_DEBUG_num_feee_lines_SHIFT) | \
+ (max_misses << TCB_TAG3_DEBUG_max_misses_SHIFT))
+
+#define TCB_TAG3_DEBUG_GET_mem_read_cycle(tcb_tag3_debug) \
+ ((tcb_tag3_debug & TCB_TAG3_DEBUG_mem_read_cycle_MASK) >> TCB_TAG3_DEBUG_mem_read_cycle_SHIFT)
+#define TCB_TAG3_DEBUG_GET_tag_access_cycle(tcb_tag3_debug) \
+ ((tcb_tag3_debug & TCB_TAG3_DEBUG_tag_access_cycle_MASK) >> TCB_TAG3_DEBUG_tag_access_cycle_SHIFT)
+#define TCB_TAG3_DEBUG_GET_miss_stall(tcb_tag3_debug) \
+ ((tcb_tag3_debug & TCB_TAG3_DEBUG_miss_stall_MASK) >> TCB_TAG3_DEBUG_miss_stall_SHIFT)
+#define TCB_TAG3_DEBUG_GET_num_feee_lines(tcb_tag3_debug) \
+ ((tcb_tag3_debug & TCB_TAG3_DEBUG_num_feee_lines_MASK) >> TCB_TAG3_DEBUG_num_feee_lines_SHIFT)
+#define TCB_TAG3_DEBUG_GET_max_misses(tcb_tag3_debug) \
+ ((tcb_tag3_debug & TCB_TAG3_DEBUG_max_misses_MASK) >> TCB_TAG3_DEBUG_max_misses_SHIFT)
+
+#define TCB_TAG3_DEBUG_SET_mem_read_cycle(tcb_tag3_debug_reg, mem_read_cycle) \
+ tcb_tag3_debug_reg = (tcb_tag3_debug_reg & ~TCB_TAG3_DEBUG_mem_read_cycle_MASK) | (mem_read_cycle << TCB_TAG3_DEBUG_mem_read_cycle_SHIFT)
+#define TCB_TAG3_DEBUG_SET_tag_access_cycle(tcb_tag3_debug_reg, tag_access_cycle) \
+ tcb_tag3_debug_reg = (tcb_tag3_debug_reg & ~TCB_TAG3_DEBUG_tag_access_cycle_MASK) | (tag_access_cycle << TCB_TAG3_DEBUG_tag_access_cycle_SHIFT)
+#define TCB_TAG3_DEBUG_SET_miss_stall(tcb_tag3_debug_reg, miss_stall) \
+ tcb_tag3_debug_reg = (tcb_tag3_debug_reg & ~TCB_TAG3_DEBUG_miss_stall_MASK) | (miss_stall << TCB_TAG3_DEBUG_miss_stall_SHIFT)
+#define TCB_TAG3_DEBUG_SET_num_feee_lines(tcb_tag3_debug_reg, num_feee_lines) \
+ tcb_tag3_debug_reg = (tcb_tag3_debug_reg & ~TCB_TAG3_DEBUG_num_feee_lines_MASK) | (num_feee_lines << TCB_TAG3_DEBUG_num_feee_lines_SHIFT)
+#define TCB_TAG3_DEBUG_SET_max_misses(tcb_tag3_debug_reg, max_misses) \
+ tcb_tag3_debug_reg = (tcb_tag3_debug_reg & ~TCB_TAG3_DEBUG_max_misses_MASK) | (max_misses << TCB_TAG3_DEBUG_max_misses_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcb_tag3_debug_t {
+ unsigned int mem_read_cycle : TCB_TAG3_DEBUG_mem_read_cycle_SIZE;
+ unsigned int : 2;
+ unsigned int tag_access_cycle : TCB_TAG3_DEBUG_tag_access_cycle_SIZE;
+ unsigned int : 2;
+ unsigned int miss_stall : TCB_TAG3_DEBUG_miss_stall_SIZE;
+ unsigned int num_feee_lines : TCB_TAG3_DEBUG_num_feee_lines_SIZE;
+ unsigned int max_misses : TCB_TAG3_DEBUG_max_misses_SIZE;
+ } tcb_tag3_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcb_tag3_debug_t {
+ unsigned int max_misses : TCB_TAG3_DEBUG_max_misses_SIZE;
+ unsigned int num_feee_lines : TCB_TAG3_DEBUG_num_feee_lines_SIZE;
+ unsigned int miss_stall : TCB_TAG3_DEBUG_miss_stall_SIZE;
+ unsigned int : 2;
+ unsigned int tag_access_cycle : TCB_TAG3_DEBUG_tag_access_cycle_SIZE;
+ unsigned int : 2;
+ unsigned int mem_read_cycle : TCB_TAG3_DEBUG_mem_read_cycle_SIZE;
+ } tcb_tag3_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcb_tag3_debug_t f;
+} tcb_tag3_debug_u;
+
+
+/*
+ * TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG struct
+ */
+
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_left_done_SIZE 1
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_fg0_sends_left_SIZE 1
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_one_sector_to_go_left_q_SIZE 1
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_no_sectors_to_go_SIZE 1
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_update_left_SIZE 1
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_count_q_SIZE 5
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_q_SIZE 16
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_valid_left_q_SIZE 1
+
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_left_done_SHIFT 0
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_fg0_sends_left_SHIFT 2
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_one_sector_to_go_left_q_SHIFT 4
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_no_sectors_to_go_SHIFT 5
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_update_left_SHIFT 6
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_count_q_SHIFT 7
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_q_SHIFT 12
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_valid_left_q_SHIFT 28
+
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_left_done_MASK 0x00000001
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_fg0_sends_left_MASK 0x00000004
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_one_sector_to_go_left_q_MASK 0x00000010
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_no_sectors_to_go_MASK 0x00000020
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_update_left_MASK 0x00000040
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_count_q_MASK 0x00000f80
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_q_MASK 0x0ffff000
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_valid_left_q_MASK 0x10000000
+
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_MASK \
+ (TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_left_done_MASK | \
+ TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_fg0_sends_left_MASK | \
+ TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_one_sector_to_go_left_q_MASK | \
+ TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_no_sectors_to_go_MASK | \
+ TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_update_left_MASK | \
+ TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_count_q_MASK | \
+ TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_q_MASK | \
+ TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_valid_left_q_MASK)
+
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG(left_done, fg0_sends_left, one_sector_to_go_left_q, no_sectors_to_go, update_left, sector_mask_left_count_q, sector_mask_left_q, valid_left_q) \
+ ((left_done << TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_left_done_SHIFT) | \
+ (fg0_sends_left << TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_fg0_sends_left_SHIFT) | \
+ (one_sector_to_go_left_q << TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_one_sector_to_go_left_q_SHIFT) | \
+ (no_sectors_to_go << TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_no_sectors_to_go_SHIFT) | \
+ (update_left << TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_update_left_SHIFT) | \
+ (sector_mask_left_count_q << TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_count_q_SHIFT) | \
+ (sector_mask_left_q << TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_q_SHIFT) | \
+ (valid_left_q << TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_valid_left_q_SHIFT))
+
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_GET_left_done(tcb_fetch_gen_sector_walker0_debug) \
+ ((tcb_fetch_gen_sector_walker0_debug & TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_left_done_MASK) >> TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_left_done_SHIFT)
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_GET_fg0_sends_left(tcb_fetch_gen_sector_walker0_debug) \
+ ((tcb_fetch_gen_sector_walker0_debug & TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_fg0_sends_left_MASK) >> TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_fg0_sends_left_SHIFT)
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_GET_one_sector_to_go_left_q(tcb_fetch_gen_sector_walker0_debug) \
+ ((tcb_fetch_gen_sector_walker0_debug & TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_one_sector_to_go_left_q_MASK) >> TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_one_sector_to_go_left_q_SHIFT)
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_GET_no_sectors_to_go(tcb_fetch_gen_sector_walker0_debug) \
+ ((tcb_fetch_gen_sector_walker0_debug & TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_no_sectors_to_go_MASK) >> TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_no_sectors_to_go_SHIFT)
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_GET_update_left(tcb_fetch_gen_sector_walker0_debug) \
+ ((tcb_fetch_gen_sector_walker0_debug & TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_update_left_MASK) >> TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_update_left_SHIFT)
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_GET_sector_mask_left_count_q(tcb_fetch_gen_sector_walker0_debug) \
+ ((tcb_fetch_gen_sector_walker0_debug & TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_count_q_MASK) >> TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_count_q_SHIFT)
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_GET_sector_mask_left_q(tcb_fetch_gen_sector_walker0_debug) \
+ ((tcb_fetch_gen_sector_walker0_debug & TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_q_MASK) >> TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_q_SHIFT)
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_GET_valid_left_q(tcb_fetch_gen_sector_walker0_debug) \
+ ((tcb_fetch_gen_sector_walker0_debug & TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_valid_left_q_MASK) >> TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_valid_left_q_SHIFT)
+
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_SET_left_done(tcb_fetch_gen_sector_walker0_debug_reg, left_done) \
+ tcb_fetch_gen_sector_walker0_debug_reg = (tcb_fetch_gen_sector_walker0_debug_reg & ~TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_left_done_MASK) | (left_done << TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_left_done_SHIFT)
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_SET_fg0_sends_left(tcb_fetch_gen_sector_walker0_debug_reg, fg0_sends_left) \
+ tcb_fetch_gen_sector_walker0_debug_reg = (tcb_fetch_gen_sector_walker0_debug_reg & ~TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_fg0_sends_left_MASK) | (fg0_sends_left << TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_fg0_sends_left_SHIFT)
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_SET_one_sector_to_go_left_q(tcb_fetch_gen_sector_walker0_debug_reg, one_sector_to_go_left_q) \
+ tcb_fetch_gen_sector_walker0_debug_reg = (tcb_fetch_gen_sector_walker0_debug_reg & ~TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_one_sector_to_go_left_q_MASK) | (one_sector_to_go_left_q << TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_one_sector_to_go_left_q_SHIFT)
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_SET_no_sectors_to_go(tcb_fetch_gen_sector_walker0_debug_reg, no_sectors_to_go) \
+ tcb_fetch_gen_sector_walker0_debug_reg = (tcb_fetch_gen_sector_walker0_debug_reg & ~TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_no_sectors_to_go_MASK) | (no_sectors_to_go << TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_no_sectors_to_go_SHIFT)
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_SET_update_left(tcb_fetch_gen_sector_walker0_debug_reg, update_left) \
+ tcb_fetch_gen_sector_walker0_debug_reg = (tcb_fetch_gen_sector_walker0_debug_reg & ~TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_update_left_MASK) | (update_left << TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_update_left_SHIFT)
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_SET_sector_mask_left_count_q(tcb_fetch_gen_sector_walker0_debug_reg, sector_mask_left_count_q) \
+ tcb_fetch_gen_sector_walker0_debug_reg = (tcb_fetch_gen_sector_walker0_debug_reg & ~TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_count_q_MASK) | (sector_mask_left_count_q << TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_count_q_SHIFT)
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_SET_sector_mask_left_q(tcb_fetch_gen_sector_walker0_debug_reg, sector_mask_left_q) \
+ tcb_fetch_gen_sector_walker0_debug_reg = (tcb_fetch_gen_sector_walker0_debug_reg & ~TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_q_MASK) | (sector_mask_left_q << TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_q_SHIFT)
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_SET_valid_left_q(tcb_fetch_gen_sector_walker0_debug_reg, valid_left_q) \
+ tcb_fetch_gen_sector_walker0_debug_reg = (tcb_fetch_gen_sector_walker0_debug_reg & ~TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_valid_left_q_MASK) | (valid_left_q << TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_valid_left_q_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcb_fetch_gen_sector_walker0_debug_t {
+ unsigned int left_done : TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_left_done_SIZE;
+ unsigned int : 1;
+ unsigned int fg0_sends_left : TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_fg0_sends_left_SIZE;
+ unsigned int : 1;
+ unsigned int one_sector_to_go_left_q : TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_one_sector_to_go_left_q_SIZE;
+ unsigned int no_sectors_to_go : TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_no_sectors_to_go_SIZE;
+ unsigned int update_left : TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_update_left_SIZE;
+ unsigned int sector_mask_left_count_q : TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_count_q_SIZE;
+ unsigned int sector_mask_left_q : TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_q_SIZE;
+ unsigned int valid_left_q : TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_valid_left_q_SIZE;
+ unsigned int : 3;
+ } tcb_fetch_gen_sector_walker0_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcb_fetch_gen_sector_walker0_debug_t {
+ unsigned int : 3;
+ unsigned int valid_left_q : TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_valid_left_q_SIZE;
+ unsigned int sector_mask_left_q : TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_q_SIZE;
+ unsigned int sector_mask_left_count_q : TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_count_q_SIZE;
+ unsigned int update_left : TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_update_left_SIZE;
+ unsigned int no_sectors_to_go : TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_no_sectors_to_go_SIZE;
+ unsigned int one_sector_to_go_left_q : TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_one_sector_to_go_left_q_SIZE;
+ unsigned int : 1;
+ unsigned int fg0_sends_left : TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_fg0_sends_left_SIZE;
+ unsigned int : 1;
+ unsigned int left_done : TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_left_done_SIZE;
+ } tcb_fetch_gen_sector_walker0_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcb_fetch_gen_sector_walker0_debug_t f;
+} tcb_fetch_gen_sector_walker0_debug_u;
+
+
+/*
+ * TCB_FETCH_GEN_WALKER_DEBUG struct
+ */
+
+#define TCB_FETCH_GEN_WALKER_DEBUG_quad_sel_left_SIZE 2
+#define TCB_FETCH_GEN_WALKER_DEBUG_set_sel_left_SIZE 2
+#define TCB_FETCH_GEN_WALKER_DEBUG_right_eq_left_SIZE 1
+#define TCB_FETCH_GEN_WALKER_DEBUG_ff_fg_type512_SIZE 3
+#define TCB_FETCH_GEN_WALKER_DEBUG_busy_SIZE 1
+#define TCB_FETCH_GEN_WALKER_DEBUG_setquads_to_send_SIZE 4
+
+#define TCB_FETCH_GEN_WALKER_DEBUG_quad_sel_left_SHIFT 4
+#define TCB_FETCH_GEN_WALKER_DEBUG_set_sel_left_SHIFT 6
+#define TCB_FETCH_GEN_WALKER_DEBUG_right_eq_left_SHIFT 11
+#define TCB_FETCH_GEN_WALKER_DEBUG_ff_fg_type512_SHIFT 12
+#define TCB_FETCH_GEN_WALKER_DEBUG_busy_SHIFT 15
+#define TCB_FETCH_GEN_WALKER_DEBUG_setquads_to_send_SHIFT 16
+
+#define TCB_FETCH_GEN_WALKER_DEBUG_quad_sel_left_MASK 0x00000030
+#define TCB_FETCH_GEN_WALKER_DEBUG_set_sel_left_MASK 0x000000c0
+#define TCB_FETCH_GEN_WALKER_DEBUG_right_eq_left_MASK 0x00000800
+#define TCB_FETCH_GEN_WALKER_DEBUG_ff_fg_type512_MASK 0x00007000
+#define TCB_FETCH_GEN_WALKER_DEBUG_busy_MASK 0x00008000
+#define TCB_FETCH_GEN_WALKER_DEBUG_setquads_to_send_MASK 0x000f0000
+
+#define TCB_FETCH_GEN_WALKER_DEBUG_MASK \
+ (TCB_FETCH_GEN_WALKER_DEBUG_quad_sel_left_MASK | \
+ TCB_FETCH_GEN_WALKER_DEBUG_set_sel_left_MASK | \
+ TCB_FETCH_GEN_WALKER_DEBUG_right_eq_left_MASK | \
+ TCB_FETCH_GEN_WALKER_DEBUG_ff_fg_type512_MASK | \
+ TCB_FETCH_GEN_WALKER_DEBUG_busy_MASK | \
+ TCB_FETCH_GEN_WALKER_DEBUG_setquads_to_send_MASK)
+
+#define TCB_FETCH_GEN_WALKER_DEBUG(quad_sel_left, set_sel_left, right_eq_left, ff_fg_type512, busy, setquads_to_send) \
+ ((quad_sel_left << TCB_FETCH_GEN_WALKER_DEBUG_quad_sel_left_SHIFT) | \
+ (set_sel_left << TCB_FETCH_GEN_WALKER_DEBUG_set_sel_left_SHIFT) | \
+ (right_eq_left << TCB_FETCH_GEN_WALKER_DEBUG_right_eq_left_SHIFT) | \
+ (ff_fg_type512 << TCB_FETCH_GEN_WALKER_DEBUG_ff_fg_type512_SHIFT) | \
+ (busy << TCB_FETCH_GEN_WALKER_DEBUG_busy_SHIFT) | \
+ (setquads_to_send << TCB_FETCH_GEN_WALKER_DEBUG_setquads_to_send_SHIFT))
+
+#define TCB_FETCH_GEN_WALKER_DEBUG_GET_quad_sel_left(tcb_fetch_gen_walker_debug) \
+ ((tcb_fetch_gen_walker_debug & TCB_FETCH_GEN_WALKER_DEBUG_quad_sel_left_MASK) >> TCB_FETCH_GEN_WALKER_DEBUG_quad_sel_left_SHIFT)
+#define TCB_FETCH_GEN_WALKER_DEBUG_GET_set_sel_left(tcb_fetch_gen_walker_debug) \
+ ((tcb_fetch_gen_walker_debug & TCB_FETCH_GEN_WALKER_DEBUG_set_sel_left_MASK) >> TCB_FETCH_GEN_WALKER_DEBUG_set_sel_left_SHIFT)
+#define TCB_FETCH_GEN_WALKER_DEBUG_GET_right_eq_left(tcb_fetch_gen_walker_debug) \
+ ((tcb_fetch_gen_walker_debug & TCB_FETCH_GEN_WALKER_DEBUG_right_eq_left_MASK) >> TCB_FETCH_GEN_WALKER_DEBUG_right_eq_left_SHIFT)
+#define TCB_FETCH_GEN_WALKER_DEBUG_GET_ff_fg_type512(tcb_fetch_gen_walker_debug) \
+ ((tcb_fetch_gen_walker_debug & TCB_FETCH_GEN_WALKER_DEBUG_ff_fg_type512_MASK) >> TCB_FETCH_GEN_WALKER_DEBUG_ff_fg_type512_SHIFT)
+#define TCB_FETCH_GEN_WALKER_DEBUG_GET_busy(tcb_fetch_gen_walker_debug) \
+ ((tcb_fetch_gen_walker_debug & TCB_FETCH_GEN_WALKER_DEBUG_busy_MASK) >> TCB_FETCH_GEN_WALKER_DEBUG_busy_SHIFT)
+#define TCB_FETCH_GEN_WALKER_DEBUG_GET_setquads_to_send(tcb_fetch_gen_walker_debug) \
+ ((tcb_fetch_gen_walker_debug & TCB_FETCH_GEN_WALKER_DEBUG_setquads_to_send_MASK) >> TCB_FETCH_GEN_WALKER_DEBUG_setquads_to_send_SHIFT)
+
+#define TCB_FETCH_GEN_WALKER_DEBUG_SET_quad_sel_left(tcb_fetch_gen_walker_debug_reg, quad_sel_left) \
+ tcb_fetch_gen_walker_debug_reg = (tcb_fetch_gen_walker_debug_reg & ~TCB_FETCH_GEN_WALKER_DEBUG_quad_sel_left_MASK) | (quad_sel_left << TCB_FETCH_GEN_WALKER_DEBUG_quad_sel_left_SHIFT)
+#define TCB_FETCH_GEN_WALKER_DEBUG_SET_set_sel_left(tcb_fetch_gen_walker_debug_reg, set_sel_left) \
+ tcb_fetch_gen_walker_debug_reg = (tcb_fetch_gen_walker_debug_reg & ~TCB_FETCH_GEN_WALKER_DEBUG_set_sel_left_MASK) | (set_sel_left << TCB_FETCH_GEN_WALKER_DEBUG_set_sel_left_SHIFT)
+#define TCB_FETCH_GEN_WALKER_DEBUG_SET_right_eq_left(tcb_fetch_gen_walker_debug_reg, right_eq_left) \
+ tcb_fetch_gen_walker_debug_reg = (tcb_fetch_gen_walker_debug_reg & ~TCB_FETCH_GEN_WALKER_DEBUG_right_eq_left_MASK) | (right_eq_left << TCB_FETCH_GEN_WALKER_DEBUG_right_eq_left_SHIFT)
+#define TCB_FETCH_GEN_WALKER_DEBUG_SET_ff_fg_type512(tcb_fetch_gen_walker_debug_reg, ff_fg_type512) \
+ tcb_fetch_gen_walker_debug_reg = (tcb_fetch_gen_walker_debug_reg & ~TCB_FETCH_GEN_WALKER_DEBUG_ff_fg_type512_MASK) | (ff_fg_type512 << TCB_FETCH_GEN_WALKER_DEBUG_ff_fg_type512_SHIFT)
+#define TCB_FETCH_GEN_WALKER_DEBUG_SET_busy(tcb_fetch_gen_walker_debug_reg, busy) \
+ tcb_fetch_gen_walker_debug_reg = (tcb_fetch_gen_walker_debug_reg & ~TCB_FETCH_GEN_WALKER_DEBUG_busy_MASK) | (busy << TCB_FETCH_GEN_WALKER_DEBUG_busy_SHIFT)
+#define TCB_FETCH_GEN_WALKER_DEBUG_SET_setquads_to_send(tcb_fetch_gen_walker_debug_reg, setquads_to_send) \
+ tcb_fetch_gen_walker_debug_reg = (tcb_fetch_gen_walker_debug_reg & ~TCB_FETCH_GEN_WALKER_DEBUG_setquads_to_send_MASK) | (setquads_to_send << TCB_FETCH_GEN_WALKER_DEBUG_setquads_to_send_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcb_fetch_gen_walker_debug_t {
+ unsigned int : 4;
+ unsigned int quad_sel_left : TCB_FETCH_GEN_WALKER_DEBUG_quad_sel_left_SIZE;
+ unsigned int set_sel_left : TCB_FETCH_GEN_WALKER_DEBUG_set_sel_left_SIZE;
+ unsigned int : 3;
+ unsigned int right_eq_left : TCB_FETCH_GEN_WALKER_DEBUG_right_eq_left_SIZE;
+ unsigned int ff_fg_type512 : TCB_FETCH_GEN_WALKER_DEBUG_ff_fg_type512_SIZE;
+ unsigned int busy : TCB_FETCH_GEN_WALKER_DEBUG_busy_SIZE;
+ unsigned int setquads_to_send : TCB_FETCH_GEN_WALKER_DEBUG_setquads_to_send_SIZE;
+ unsigned int : 12;
+ } tcb_fetch_gen_walker_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcb_fetch_gen_walker_debug_t {
+ unsigned int : 12;
+ unsigned int setquads_to_send : TCB_FETCH_GEN_WALKER_DEBUG_setquads_to_send_SIZE;
+ unsigned int busy : TCB_FETCH_GEN_WALKER_DEBUG_busy_SIZE;
+ unsigned int ff_fg_type512 : TCB_FETCH_GEN_WALKER_DEBUG_ff_fg_type512_SIZE;
+ unsigned int right_eq_left : TCB_FETCH_GEN_WALKER_DEBUG_right_eq_left_SIZE;
+ unsigned int : 3;
+ unsigned int set_sel_left : TCB_FETCH_GEN_WALKER_DEBUG_set_sel_left_SIZE;
+ unsigned int quad_sel_left : TCB_FETCH_GEN_WALKER_DEBUG_quad_sel_left_SIZE;
+ unsigned int : 4;
+ } tcb_fetch_gen_walker_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcb_fetch_gen_walker_debug_t f;
+} tcb_fetch_gen_walker_debug_u;
+
+
+/*
+ * TCB_FETCH_GEN_PIPE0_DEBUG struct
+ */
+
+#define TCB_FETCH_GEN_PIPE0_DEBUG_tc0_arb_rts_SIZE 1
+#define TCB_FETCH_GEN_PIPE0_DEBUG_ga_out_rts_SIZE 1
+#define TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_format_SIZE 12
+#define TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_fmsopcode_SIZE 5
+#define TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_request_type_SIZE 2
+#define TCB_FETCH_GEN_PIPE0_DEBUG_busy_SIZE 1
+#define TCB_FETCH_GEN_PIPE0_DEBUG_fgo_busy_SIZE 1
+#define TCB_FETCH_GEN_PIPE0_DEBUG_ga_busy_SIZE 1
+#define TCB_FETCH_GEN_PIPE0_DEBUG_mc_sel_q_SIZE 2
+#define TCB_FETCH_GEN_PIPE0_DEBUG_valid_q_SIZE 1
+#define TCB_FETCH_GEN_PIPE0_DEBUG_arb_RTR_SIZE 1
+
+#define TCB_FETCH_GEN_PIPE0_DEBUG_tc0_arb_rts_SHIFT 0
+#define TCB_FETCH_GEN_PIPE0_DEBUG_ga_out_rts_SHIFT 2
+#define TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_format_SHIFT 4
+#define TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_fmsopcode_SHIFT 16
+#define TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_request_type_SHIFT 21
+#define TCB_FETCH_GEN_PIPE0_DEBUG_busy_SHIFT 23
+#define TCB_FETCH_GEN_PIPE0_DEBUG_fgo_busy_SHIFT 24
+#define TCB_FETCH_GEN_PIPE0_DEBUG_ga_busy_SHIFT 25
+#define TCB_FETCH_GEN_PIPE0_DEBUG_mc_sel_q_SHIFT 26
+#define TCB_FETCH_GEN_PIPE0_DEBUG_valid_q_SHIFT 28
+#define TCB_FETCH_GEN_PIPE0_DEBUG_arb_RTR_SHIFT 30
+
+#define TCB_FETCH_GEN_PIPE0_DEBUG_tc0_arb_rts_MASK 0x00000001
+#define TCB_FETCH_GEN_PIPE0_DEBUG_ga_out_rts_MASK 0x00000004
+#define TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_format_MASK 0x0000fff0
+#define TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_fmsopcode_MASK 0x001f0000
+#define TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_request_type_MASK 0x00600000
+#define TCB_FETCH_GEN_PIPE0_DEBUG_busy_MASK 0x00800000
+#define TCB_FETCH_GEN_PIPE0_DEBUG_fgo_busy_MASK 0x01000000
+#define TCB_FETCH_GEN_PIPE0_DEBUG_ga_busy_MASK 0x02000000
+#define TCB_FETCH_GEN_PIPE0_DEBUG_mc_sel_q_MASK 0x0c000000
+#define TCB_FETCH_GEN_PIPE0_DEBUG_valid_q_MASK 0x10000000
+#define TCB_FETCH_GEN_PIPE0_DEBUG_arb_RTR_MASK 0x40000000
+
+#define TCB_FETCH_GEN_PIPE0_DEBUG_MASK \
+ (TCB_FETCH_GEN_PIPE0_DEBUG_tc0_arb_rts_MASK | \
+ TCB_FETCH_GEN_PIPE0_DEBUG_ga_out_rts_MASK | \
+ TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_format_MASK | \
+ TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_fmsopcode_MASK | \
+ TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_request_type_MASK | \
+ TCB_FETCH_GEN_PIPE0_DEBUG_busy_MASK | \
+ TCB_FETCH_GEN_PIPE0_DEBUG_fgo_busy_MASK | \
+ TCB_FETCH_GEN_PIPE0_DEBUG_ga_busy_MASK | \
+ TCB_FETCH_GEN_PIPE0_DEBUG_mc_sel_q_MASK | \
+ TCB_FETCH_GEN_PIPE0_DEBUG_valid_q_MASK | \
+ TCB_FETCH_GEN_PIPE0_DEBUG_arb_RTR_MASK)
+
+#define TCB_FETCH_GEN_PIPE0_DEBUG(tc0_arb_rts, ga_out_rts, tc_arb_format, tc_arb_fmsopcode, tc_arb_request_type, busy, fgo_busy, ga_busy, mc_sel_q, valid_q, arb_rtr) \
+ ((tc0_arb_rts << TCB_FETCH_GEN_PIPE0_DEBUG_tc0_arb_rts_SHIFT) | \
+ (ga_out_rts << TCB_FETCH_GEN_PIPE0_DEBUG_ga_out_rts_SHIFT) | \
+ (tc_arb_format << TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_format_SHIFT) | \
+ (tc_arb_fmsopcode << TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_fmsopcode_SHIFT) | \
+ (tc_arb_request_type << TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_request_type_SHIFT) | \
+ (busy << TCB_FETCH_GEN_PIPE0_DEBUG_busy_SHIFT) | \
+ (fgo_busy << TCB_FETCH_GEN_PIPE0_DEBUG_fgo_busy_SHIFT) | \
+ (ga_busy << TCB_FETCH_GEN_PIPE0_DEBUG_ga_busy_SHIFT) | \
+ (mc_sel_q << TCB_FETCH_GEN_PIPE0_DEBUG_mc_sel_q_SHIFT) | \
+ (valid_q << TCB_FETCH_GEN_PIPE0_DEBUG_valid_q_SHIFT) | \
+ (arb_rtr << TCB_FETCH_GEN_PIPE0_DEBUG_arb_RTR_SHIFT))
+
+#define TCB_FETCH_GEN_PIPE0_DEBUG_GET_tc0_arb_rts(tcb_fetch_gen_pipe0_debug) \
+ ((tcb_fetch_gen_pipe0_debug & TCB_FETCH_GEN_PIPE0_DEBUG_tc0_arb_rts_MASK) >> TCB_FETCH_GEN_PIPE0_DEBUG_tc0_arb_rts_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_GET_ga_out_rts(tcb_fetch_gen_pipe0_debug) \
+ ((tcb_fetch_gen_pipe0_debug & TCB_FETCH_GEN_PIPE0_DEBUG_ga_out_rts_MASK) >> TCB_FETCH_GEN_PIPE0_DEBUG_ga_out_rts_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_GET_tc_arb_format(tcb_fetch_gen_pipe0_debug) \
+ ((tcb_fetch_gen_pipe0_debug & TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_format_MASK) >> TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_format_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_GET_tc_arb_fmsopcode(tcb_fetch_gen_pipe0_debug) \
+ ((tcb_fetch_gen_pipe0_debug & TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_fmsopcode_MASK) >> TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_fmsopcode_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_GET_tc_arb_request_type(tcb_fetch_gen_pipe0_debug) \
+ ((tcb_fetch_gen_pipe0_debug & TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_request_type_MASK) >> TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_request_type_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_GET_busy(tcb_fetch_gen_pipe0_debug) \
+ ((tcb_fetch_gen_pipe0_debug & TCB_FETCH_GEN_PIPE0_DEBUG_busy_MASK) >> TCB_FETCH_GEN_PIPE0_DEBUG_busy_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_GET_fgo_busy(tcb_fetch_gen_pipe0_debug) \
+ ((tcb_fetch_gen_pipe0_debug & TCB_FETCH_GEN_PIPE0_DEBUG_fgo_busy_MASK) >> TCB_FETCH_GEN_PIPE0_DEBUG_fgo_busy_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_GET_ga_busy(tcb_fetch_gen_pipe0_debug) \
+ ((tcb_fetch_gen_pipe0_debug & TCB_FETCH_GEN_PIPE0_DEBUG_ga_busy_MASK) >> TCB_FETCH_GEN_PIPE0_DEBUG_ga_busy_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_GET_mc_sel_q(tcb_fetch_gen_pipe0_debug) \
+ ((tcb_fetch_gen_pipe0_debug & TCB_FETCH_GEN_PIPE0_DEBUG_mc_sel_q_MASK) >> TCB_FETCH_GEN_PIPE0_DEBUG_mc_sel_q_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_GET_valid_q(tcb_fetch_gen_pipe0_debug) \
+ ((tcb_fetch_gen_pipe0_debug & TCB_FETCH_GEN_PIPE0_DEBUG_valid_q_MASK) >> TCB_FETCH_GEN_PIPE0_DEBUG_valid_q_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_GET_arb_RTR(tcb_fetch_gen_pipe0_debug) \
+ ((tcb_fetch_gen_pipe0_debug & TCB_FETCH_GEN_PIPE0_DEBUG_arb_RTR_MASK) >> TCB_FETCH_GEN_PIPE0_DEBUG_arb_RTR_SHIFT)
+
+#define TCB_FETCH_GEN_PIPE0_DEBUG_SET_tc0_arb_rts(tcb_fetch_gen_pipe0_debug_reg, tc0_arb_rts) \
+ tcb_fetch_gen_pipe0_debug_reg = (tcb_fetch_gen_pipe0_debug_reg & ~TCB_FETCH_GEN_PIPE0_DEBUG_tc0_arb_rts_MASK) | (tc0_arb_rts << TCB_FETCH_GEN_PIPE0_DEBUG_tc0_arb_rts_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_SET_ga_out_rts(tcb_fetch_gen_pipe0_debug_reg, ga_out_rts) \
+ tcb_fetch_gen_pipe0_debug_reg = (tcb_fetch_gen_pipe0_debug_reg & ~TCB_FETCH_GEN_PIPE0_DEBUG_ga_out_rts_MASK) | (ga_out_rts << TCB_FETCH_GEN_PIPE0_DEBUG_ga_out_rts_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_SET_tc_arb_format(tcb_fetch_gen_pipe0_debug_reg, tc_arb_format) \
+ tcb_fetch_gen_pipe0_debug_reg = (tcb_fetch_gen_pipe0_debug_reg & ~TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_format_MASK) | (tc_arb_format << TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_format_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_SET_tc_arb_fmsopcode(tcb_fetch_gen_pipe0_debug_reg, tc_arb_fmsopcode) \
+ tcb_fetch_gen_pipe0_debug_reg = (tcb_fetch_gen_pipe0_debug_reg & ~TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_fmsopcode_MASK) | (tc_arb_fmsopcode << TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_fmsopcode_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_SET_tc_arb_request_type(tcb_fetch_gen_pipe0_debug_reg, tc_arb_request_type) \
+ tcb_fetch_gen_pipe0_debug_reg = (tcb_fetch_gen_pipe0_debug_reg & ~TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_request_type_MASK) | (tc_arb_request_type << TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_request_type_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_SET_busy(tcb_fetch_gen_pipe0_debug_reg, busy) \
+ tcb_fetch_gen_pipe0_debug_reg = (tcb_fetch_gen_pipe0_debug_reg & ~TCB_FETCH_GEN_PIPE0_DEBUG_busy_MASK) | (busy << TCB_FETCH_GEN_PIPE0_DEBUG_busy_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_SET_fgo_busy(tcb_fetch_gen_pipe0_debug_reg, fgo_busy) \
+ tcb_fetch_gen_pipe0_debug_reg = (tcb_fetch_gen_pipe0_debug_reg & ~TCB_FETCH_GEN_PIPE0_DEBUG_fgo_busy_MASK) | (fgo_busy << TCB_FETCH_GEN_PIPE0_DEBUG_fgo_busy_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_SET_ga_busy(tcb_fetch_gen_pipe0_debug_reg, ga_busy) \
+ tcb_fetch_gen_pipe0_debug_reg = (tcb_fetch_gen_pipe0_debug_reg & ~TCB_FETCH_GEN_PIPE0_DEBUG_ga_busy_MASK) | (ga_busy << TCB_FETCH_GEN_PIPE0_DEBUG_ga_busy_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_SET_mc_sel_q(tcb_fetch_gen_pipe0_debug_reg, mc_sel_q) \
+ tcb_fetch_gen_pipe0_debug_reg = (tcb_fetch_gen_pipe0_debug_reg & ~TCB_FETCH_GEN_PIPE0_DEBUG_mc_sel_q_MASK) | (mc_sel_q << TCB_FETCH_GEN_PIPE0_DEBUG_mc_sel_q_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_SET_valid_q(tcb_fetch_gen_pipe0_debug_reg, valid_q) \
+ tcb_fetch_gen_pipe0_debug_reg = (tcb_fetch_gen_pipe0_debug_reg & ~TCB_FETCH_GEN_PIPE0_DEBUG_valid_q_MASK) | (valid_q << TCB_FETCH_GEN_PIPE0_DEBUG_valid_q_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_SET_arb_RTR(tcb_fetch_gen_pipe0_debug_reg, arb_rtr) \
+ tcb_fetch_gen_pipe0_debug_reg = (tcb_fetch_gen_pipe0_debug_reg & ~TCB_FETCH_GEN_PIPE0_DEBUG_arb_RTR_MASK) | (arb_rtr << TCB_FETCH_GEN_PIPE0_DEBUG_arb_RTR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcb_fetch_gen_pipe0_debug_t {
+ unsigned int tc0_arb_rts : TCB_FETCH_GEN_PIPE0_DEBUG_tc0_arb_rts_SIZE;
+ unsigned int : 1;
+ unsigned int ga_out_rts : TCB_FETCH_GEN_PIPE0_DEBUG_ga_out_rts_SIZE;
+ unsigned int : 1;
+ unsigned int tc_arb_format : TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_format_SIZE;
+ unsigned int tc_arb_fmsopcode : TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_fmsopcode_SIZE;
+ unsigned int tc_arb_request_type : TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_request_type_SIZE;
+ unsigned int busy : TCB_FETCH_GEN_PIPE0_DEBUG_busy_SIZE;
+ unsigned int fgo_busy : TCB_FETCH_GEN_PIPE0_DEBUG_fgo_busy_SIZE;
+ unsigned int ga_busy : TCB_FETCH_GEN_PIPE0_DEBUG_ga_busy_SIZE;
+ unsigned int mc_sel_q : TCB_FETCH_GEN_PIPE0_DEBUG_mc_sel_q_SIZE;
+ unsigned int valid_q : TCB_FETCH_GEN_PIPE0_DEBUG_valid_q_SIZE;
+ unsigned int : 1;
+ unsigned int arb_rtr : TCB_FETCH_GEN_PIPE0_DEBUG_arb_RTR_SIZE;
+ unsigned int : 1;
+ } tcb_fetch_gen_pipe0_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcb_fetch_gen_pipe0_debug_t {
+ unsigned int : 1;
+ unsigned int arb_rtr : TCB_FETCH_GEN_PIPE0_DEBUG_arb_RTR_SIZE;
+ unsigned int : 1;
+ unsigned int valid_q : TCB_FETCH_GEN_PIPE0_DEBUG_valid_q_SIZE;
+ unsigned int mc_sel_q : TCB_FETCH_GEN_PIPE0_DEBUG_mc_sel_q_SIZE;
+ unsigned int ga_busy : TCB_FETCH_GEN_PIPE0_DEBUG_ga_busy_SIZE;
+ unsigned int fgo_busy : TCB_FETCH_GEN_PIPE0_DEBUG_fgo_busy_SIZE;
+ unsigned int busy : TCB_FETCH_GEN_PIPE0_DEBUG_busy_SIZE;
+ unsigned int tc_arb_request_type : TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_request_type_SIZE;
+ unsigned int tc_arb_fmsopcode : TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_fmsopcode_SIZE;
+ unsigned int tc_arb_format : TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_format_SIZE;
+ unsigned int : 1;
+ unsigned int ga_out_rts : TCB_FETCH_GEN_PIPE0_DEBUG_ga_out_rts_SIZE;
+ unsigned int : 1;
+ unsigned int tc0_arb_rts : TCB_FETCH_GEN_PIPE0_DEBUG_tc0_arb_rts_SIZE;
+ } tcb_fetch_gen_pipe0_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcb_fetch_gen_pipe0_debug_t f;
+} tcb_fetch_gen_pipe0_debug_u;
+
+
+/*
+ * TCD_INPUT0_DEBUG struct
+ */
+
+#define TCD_INPUT0_DEBUG_empty_SIZE 1
+#define TCD_INPUT0_DEBUG_full_SIZE 1
+#define TCD_INPUT0_DEBUG_valid_q1_SIZE 1
+#define TCD_INPUT0_DEBUG_cnt_q1_SIZE 2
+#define TCD_INPUT0_DEBUG_last_send_q1_SIZE 1
+#define TCD_INPUT0_DEBUG_ip_send_SIZE 1
+#define TCD_INPUT0_DEBUG_ipbuf_dxt_send_SIZE 1
+#define TCD_INPUT0_DEBUG_ipbuf_busy_SIZE 1
+
+#define TCD_INPUT0_DEBUG_empty_SHIFT 16
+#define TCD_INPUT0_DEBUG_full_SHIFT 17
+#define TCD_INPUT0_DEBUG_valid_q1_SHIFT 20
+#define TCD_INPUT0_DEBUG_cnt_q1_SHIFT 21
+#define TCD_INPUT0_DEBUG_last_send_q1_SHIFT 23
+#define TCD_INPUT0_DEBUG_ip_send_SHIFT 24
+#define TCD_INPUT0_DEBUG_ipbuf_dxt_send_SHIFT 25
+#define TCD_INPUT0_DEBUG_ipbuf_busy_SHIFT 26
+
+#define TCD_INPUT0_DEBUG_empty_MASK 0x00010000
+#define TCD_INPUT0_DEBUG_full_MASK 0x00020000
+#define TCD_INPUT0_DEBUG_valid_q1_MASK 0x00100000
+#define TCD_INPUT0_DEBUG_cnt_q1_MASK 0x00600000
+#define TCD_INPUT0_DEBUG_last_send_q1_MASK 0x00800000
+#define TCD_INPUT0_DEBUG_ip_send_MASK 0x01000000
+#define TCD_INPUT0_DEBUG_ipbuf_dxt_send_MASK 0x02000000
+#define TCD_INPUT0_DEBUG_ipbuf_busy_MASK 0x04000000
+
+#define TCD_INPUT0_DEBUG_MASK \
+ (TCD_INPUT0_DEBUG_empty_MASK | \
+ TCD_INPUT0_DEBUG_full_MASK | \
+ TCD_INPUT0_DEBUG_valid_q1_MASK | \
+ TCD_INPUT0_DEBUG_cnt_q1_MASK | \
+ TCD_INPUT0_DEBUG_last_send_q1_MASK | \
+ TCD_INPUT0_DEBUG_ip_send_MASK | \
+ TCD_INPUT0_DEBUG_ipbuf_dxt_send_MASK | \
+ TCD_INPUT0_DEBUG_ipbuf_busy_MASK)
+
+#define TCD_INPUT0_DEBUG(empty, full, valid_q1, cnt_q1, last_send_q1, ip_send, ipbuf_dxt_send, ipbuf_busy) \
+ ((empty << TCD_INPUT0_DEBUG_empty_SHIFT) | \
+ (full << TCD_INPUT0_DEBUG_full_SHIFT) | \
+ (valid_q1 << TCD_INPUT0_DEBUG_valid_q1_SHIFT) | \
+ (cnt_q1 << TCD_INPUT0_DEBUG_cnt_q1_SHIFT) | \
+ (last_send_q1 << TCD_INPUT0_DEBUG_last_send_q1_SHIFT) | \
+ (ip_send << TCD_INPUT0_DEBUG_ip_send_SHIFT) | \
+ (ipbuf_dxt_send << TCD_INPUT0_DEBUG_ipbuf_dxt_send_SHIFT) | \
+ (ipbuf_busy << TCD_INPUT0_DEBUG_ipbuf_busy_SHIFT))
+
+#define TCD_INPUT0_DEBUG_GET_empty(tcd_input0_debug) \
+ ((tcd_input0_debug & TCD_INPUT0_DEBUG_empty_MASK) >> TCD_INPUT0_DEBUG_empty_SHIFT)
+#define TCD_INPUT0_DEBUG_GET_full(tcd_input0_debug) \
+ ((tcd_input0_debug & TCD_INPUT0_DEBUG_full_MASK) >> TCD_INPUT0_DEBUG_full_SHIFT)
+#define TCD_INPUT0_DEBUG_GET_valid_q1(tcd_input0_debug) \
+ ((tcd_input0_debug & TCD_INPUT0_DEBUG_valid_q1_MASK) >> TCD_INPUT0_DEBUG_valid_q1_SHIFT)
+#define TCD_INPUT0_DEBUG_GET_cnt_q1(tcd_input0_debug) \
+ ((tcd_input0_debug & TCD_INPUT0_DEBUG_cnt_q1_MASK) >> TCD_INPUT0_DEBUG_cnt_q1_SHIFT)
+#define TCD_INPUT0_DEBUG_GET_last_send_q1(tcd_input0_debug) \
+ ((tcd_input0_debug & TCD_INPUT0_DEBUG_last_send_q1_MASK) >> TCD_INPUT0_DEBUG_last_send_q1_SHIFT)
+#define TCD_INPUT0_DEBUG_GET_ip_send(tcd_input0_debug) \
+ ((tcd_input0_debug & TCD_INPUT0_DEBUG_ip_send_MASK) >> TCD_INPUT0_DEBUG_ip_send_SHIFT)
+#define TCD_INPUT0_DEBUG_GET_ipbuf_dxt_send(tcd_input0_debug) \
+ ((tcd_input0_debug & TCD_INPUT0_DEBUG_ipbuf_dxt_send_MASK) >> TCD_INPUT0_DEBUG_ipbuf_dxt_send_SHIFT)
+#define TCD_INPUT0_DEBUG_GET_ipbuf_busy(tcd_input0_debug) \
+ ((tcd_input0_debug & TCD_INPUT0_DEBUG_ipbuf_busy_MASK) >> TCD_INPUT0_DEBUG_ipbuf_busy_SHIFT)
+
+#define TCD_INPUT0_DEBUG_SET_empty(tcd_input0_debug_reg, empty) \
+ tcd_input0_debug_reg = (tcd_input0_debug_reg & ~TCD_INPUT0_DEBUG_empty_MASK) | (empty << TCD_INPUT0_DEBUG_empty_SHIFT)
+#define TCD_INPUT0_DEBUG_SET_full(tcd_input0_debug_reg, full) \
+ tcd_input0_debug_reg = (tcd_input0_debug_reg & ~TCD_INPUT0_DEBUG_full_MASK) | (full << TCD_INPUT0_DEBUG_full_SHIFT)
+#define TCD_INPUT0_DEBUG_SET_valid_q1(tcd_input0_debug_reg, valid_q1) \
+ tcd_input0_debug_reg = (tcd_input0_debug_reg & ~TCD_INPUT0_DEBUG_valid_q1_MASK) | (valid_q1 << TCD_INPUT0_DEBUG_valid_q1_SHIFT)
+#define TCD_INPUT0_DEBUG_SET_cnt_q1(tcd_input0_debug_reg, cnt_q1) \
+ tcd_input0_debug_reg = (tcd_input0_debug_reg & ~TCD_INPUT0_DEBUG_cnt_q1_MASK) | (cnt_q1 << TCD_INPUT0_DEBUG_cnt_q1_SHIFT)
+#define TCD_INPUT0_DEBUG_SET_last_send_q1(tcd_input0_debug_reg, last_send_q1) \
+ tcd_input0_debug_reg = (tcd_input0_debug_reg & ~TCD_INPUT0_DEBUG_last_send_q1_MASK) | (last_send_q1 << TCD_INPUT0_DEBUG_last_send_q1_SHIFT)
+#define TCD_INPUT0_DEBUG_SET_ip_send(tcd_input0_debug_reg, ip_send) \
+ tcd_input0_debug_reg = (tcd_input0_debug_reg & ~TCD_INPUT0_DEBUG_ip_send_MASK) | (ip_send << TCD_INPUT0_DEBUG_ip_send_SHIFT)
+#define TCD_INPUT0_DEBUG_SET_ipbuf_dxt_send(tcd_input0_debug_reg, ipbuf_dxt_send) \
+ tcd_input0_debug_reg = (tcd_input0_debug_reg & ~TCD_INPUT0_DEBUG_ipbuf_dxt_send_MASK) | (ipbuf_dxt_send << TCD_INPUT0_DEBUG_ipbuf_dxt_send_SHIFT)
+#define TCD_INPUT0_DEBUG_SET_ipbuf_busy(tcd_input0_debug_reg, ipbuf_busy) \
+ tcd_input0_debug_reg = (tcd_input0_debug_reg & ~TCD_INPUT0_DEBUG_ipbuf_busy_MASK) | (ipbuf_busy << TCD_INPUT0_DEBUG_ipbuf_busy_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcd_input0_debug_t {
+ unsigned int : 16;
+ unsigned int empty : TCD_INPUT0_DEBUG_empty_SIZE;
+ unsigned int full : TCD_INPUT0_DEBUG_full_SIZE;
+ unsigned int : 2;
+ unsigned int valid_q1 : TCD_INPUT0_DEBUG_valid_q1_SIZE;
+ unsigned int cnt_q1 : TCD_INPUT0_DEBUG_cnt_q1_SIZE;
+ unsigned int last_send_q1 : TCD_INPUT0_DEBUG_last_send_q1_SIZE;
+ unsigned int ip_send : TCD_INPUT0_DEBUG_ip_send_SIZE;
+ unsigned int ipbuf_dxt_send : TCD_INPUT0_DEBUG_ipbuf_dxt_send_SIZE;
+ unsigned int ipbuf_busy : TCD_INPUT0_DEBUG_ipbuf_busy_SIZE;
+ unsigned int : 5;
+ } tcd_input0_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcd_input0_debug_t {
+ unsigned int : 5;
+ unsigned int ipbuf_busy : TCD_INPUT0_DEBUG_ipbuf_busy_SIZE;
+ unsigned int ipbuf_dxt_send : TCD_INPUT0_DEBUG_ipbuf_dxt_send_SIZE;
+ unsigned int ip_send : TCD_INPUT0_DEBUG_ip_send_SIZE;
+ unsigned int last_send_q1 : TCD_INPUT0_DEBUG_last_send_q1_SIZE;
+ unsigned int cnt_q1 : TCD_INPUT0_DEBUG_cnt_q1_SIZE;
+ unsigned int valid_q1 : TCD_INPUT0_DEBUG_valid_q1_SIZE;
+ unsigned int : 2;
+ unsigned int full : TCD_INPUT0_DEBUG_full_SIZE;
+ unsigned int empty : TCD_INPUT0_DEBUG_empty_SIZE;
+ unsigned int : 16;
+ } tcd_input0_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcd_input0_debug_t f;
+} tcd_input0_debug_u;
+
+
+/*
+ * TCD_DEGAMMA_DEBUG struct
+ */
+
+#define TCD_DEGAMMA_DEBUG_dgmm_ftfconv_dgmmen_SIZE 2
+#define TCD_DEGAMMA_DEBUG_dgmm_ctrl_dgmm8_SIZE 1
+#define TCD_DEGAMMA_DEBUG_dgmm_ctrl_last_send_SIZE 1
+#define TCD_DEGAMMA_DEBUG_dgmm_ctrl_send_SIZE 1
+#define TCD_DEGAMMA_DEBUG_dgmm_stall_SIZE 1
+#define TCD_DEGAMMA_DEBUG_dgmm_pstate_SIZE 1
+
+#define TCD_DEGAMMA_DEBUG_dgmm_ftfconv_dgmmen_SHIFT 0
+#define TCD_DEGAMMA_DEBUG_dgmm_ctrl_dgmm8_SHIFT 2
+#define TCD_DEGAMMA_DEBUG_dgmm_ctrl_last_send_SHIFT 3
+#define TCD_DEGAMMA_DEBUG_dgmm_ctrl_send_SHIFT 4
+#define TCD_DEGAMMA_DEBUG_dgmm_stall_SHIFT 5
+#define TCD_DEGAMMA_DEBUG_dgmm_pstate_SHIFT 6
+
+#define TCD_DEGAMMA_DEBUG_dgmm_ftfconv_dgmmen_MASK 0x00000003
+#define TCD_DEGAMMA_DEBUG_dgmm_ctrl_dgmm8_MASK 0x00000004
+#define TCD_DEGAMMA_DEBUG_dgmm_ctrl_last_send_MASK 0x00000008
+#define TCD_DEGAMMA_DEBUG_dgmm_ctrl_send_MASK 0x00000010
+#define TCD_DEGAMMA_DEBUG_dgmm_stall_MASK 0x00000020
+#define TCD_DEGAMMA_DEBUG_dgmm_pstate_MASK 0x00000040
+
+#define TCD_DEGAMMA_DEBUG_MASK \
+ (TCD_DEGAMMA_DEBUG_dgmm_ftfconv_dgmmen_MASK | \
+ TCD_DEGAMMA_DEBUG_dgmm_ctrl_dgmm8_MASK | \
+ TCD_DEGAMMA_DEBUG_dgmm_ctrl_last_send_MASK | \
+ TCD_DEGAMMA_DEBUG_dgmm_ctrl_send_MASK | \
+ TCD_DEGAMMA_DEBUG_dgmm_stall_MASK | \
+ TCD_DEGAMMA_DEBUG_dgmm_pstate_MASK)
+
+#define TCD_DEGAMMA_DEBUG(dgmm_ftfconv_dgmmen, dgmm_ctrl_dgmm8, dgmm_ctrl_last_send, dgmm_ctrl_send, dgmm_stall, dgmm_pstate) \
+ ((dgmm_ftfconv_dgmmen << TCD_DEGAMMA_DEBUG_dgmm_ftfconv_dgmmen_SHIFT) | \
+ (dgmm_ctrl_dgmm8 << TCD_DEGAMMA_DEBUG_dgmm_ctrl_dgmm8_SHIFT) | \
+ (dgmm_ctrl_last_send << TCD_DEGAMMA_DEBUG_dgmm_ctrl_last_send_SHIFT) | \
+ (dgmm_ctrl_send << TCD_DEGAMMA_DEBUG_dgmm_ctrl_send_SHIFT) | \
+ (dgmm_stall << TCD_DEGAMMA_DEBUG_dgmm_stall_SHIFT) | \
+ (dgmm_pstate << TCD_DEGAMMA_DEBUG_dgmm_pstate_SHIFT))
+
+#define TCD_DEGAMMA_DEBUG_GET_dgmm_ftfconv_dgmmen(tcd_degamma_debug) \
+ ((tcd_degamma_debug & TCD_DEGAMMA_DEBUG_dgmm_ftfconv_dgmmen_MASK) >> TCD_DEGAMMA_DEBUG_dgmm_ftfconv_dgmmen_SHIFT)
+#define TCD_DEGAMMA_DEBUG_GET_dgmm_ctrl_dgmm8(tcd_degamma_debug) \
+ ((tcd_degamma_debug & TCD_DEGAMMA_DEBUG_dgmm_ctrl_dgmm8_MASK) >> TCD_DEGAMMA_DEBUG_dgmm_ctrl_dgmm8_SHIFT)
+#define TCD_DEGAMMA_DEBUG_GET_dgmm_ctrl_last_send(tcd_degamma_debug) \
+ ((tcd_degamma_debug & TCD_DEGAMMA_DEBUG_dgmm_ctrl_last_send_MASK) >> TCD_DEGAMMA_DEBUG_dgmm_ctrl_last_send_SHIFT)
+#define TCD_DEGAMMA_DEBUG_GET_dgmm_ctrl_send(tcd_degamma_debug) \
+ ((tcd_degamma_debug & TCD_DEGAMMA_DEBUG_dgmm_ctrl_send_MASK) >> TCD_DEGAMMA_DEBUG_dgmm_ctrl_send_SHIFT)
+#define TCD_DEGAMMA_DEBUG_GET_dgmm_stall(tcd_degamma_debug) \
+ ((tcd_degamma_debug & TCD_DEGAMMA_DEBUG_dgmm_stall_MASK) >> TCD_DEGAMMA_DEBUG_dgmm_stall_SHIFT)
+#define TCD_DEGAMMA_DEBUG_GET_dgmm_pstate(tcd_degamma_debug) \
+ ((tcd_degamma_debug & TCD_DEGAMMA_DEBUG_dgmm_pstate_MASK) >> TCD_DEGAMMA_DEBUG_dgmm_pstate_SHIFT)
+
+#define TCD_DEGAMMA_DEBUG_SET_dgmm_ftfconv_dgmmen(tcd_degamma_debug_reg, dgmm_ftfconv_dgmmen) \
+ tcd_degamma_debug_reg = (tcd_degamma_debug_reg & ~TCD_DEGAMMA_DEBUG_dgmm_ftfconv_dgmmen_MASK) | (dgmm_ftfconv_dgmmen << TCD_DEGAMMA_DEBUG_dgmm_ftfconv_dgmmen_SHIFT)
+#define TCD_DEGAMMA_DEBUG_SET_dgmm_ctrl_dgmm8(tcd_degamma_debug_reg, dgmm_ctrl_dgmm8) \
+ tcd_degamma_debug_reg = (tcd_degamma_debug_reg & ~TCD_DEGAMMA_DEBUG_dgmm_ctrl_dgmm8_MASK) | (dgmm_ctrl_dgmm8 << TCD_DEGAMMA_DEBUG_dgmm_ctrl_dgmm8_SHIFT)
+#define TCD_DEGAMMA_DEBUG_SET_dgmm_ctrl_last_send(tcd_degamma_debug_reg, dgmm_ctrl_last_send) \
+ tcd_degamma_debug_reg = (tcd_degamma_debug_reg & ~TCD_DEGAMMA_DEBUG_dgmm_ctrl_last_send_MASK) | (dgmm_ctrl_last_send << TCD_DEGAMMA_DEBUG_dgmm_ctrl_last_send_SHIFT)
+#define TCD_DEGAMMA_DEBUG_SET_dgmm_ctrl_send(tcd_degamma_debug_reg, dgmm_ctrl_send) \
+ tcd_degamma_debug_reg = (tcd_degamma_debug_reg & ~TCD_DEGAMMA_DEBUG_dgmm_ctrl_send_MASK) | (dgmm_ctrl_send << TCD_DEGAMMA_DEBUG_dgmm_ctrl_send_SHIFT)
+#define TCD_DEGAMMA_DEBUG_SET_dgmm_stall(tcd_degamma_debug_reg, dgmm_stall) \
+ tcd_degamma_debug_reg = (tcd_degamma_debug_reg & ~TCD_DEGAMMA_DEBUG_dgmm_stall_MASK) | (dgmm_stall << TCD_DEGAMMA_DEBUG_dgmm_stall_SHIFT)
+#define TCD_DEGAMMA_DEBUG_SET_dgmm_pstate(tcd_degamma_debug_reg, dgmm_pstate) \
+ tcd_degamma_debug_reg = (tcd_degamma_debug_reg & ~TCD_DEGAMMA_DEBUG_dgmm_pstate_MASK) | (dgmm_pstate << TCD_DEGAMMA_DEBUG_dgmm_pstate_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcd_degamma_debug_t {
+ unsigned int dgmm_ftfconv_dgmmen : TCD_DEGAMMA_DEBUG_dgmm_ftfconv_dgmmen_SIZE;
+ unsigned int dgmm_ctrl_dgmm8 : TCD_DEGAMMA_DEBUG_dgmm_ctrl_dgmm8_SIZE;
+ unsigned int dgmm_ctrl_last_send : TCD_DEGAMMA_DEBUG_dgmm_ctrl_last_send_SIZE;
+ unsigned int dgmm_ctrl_send : TCD_DEGAMMA_DEBUG_dgmm_ctrl_send_SIZE;
+ unsigned int dgmm_stall : TCD_DEGAMMA_DEBUG_dgmm_stall_SIZE;
+ unsigned int dgmm_pstate : TCD_DEGAMMA_DEBUG_dgmm_pstate_SIZE;
+ unsigned int : 25;
+ } tcd_degamma_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcd_degamma_debug_t {
+ unsigned int : 25;
+ unsigned int dgmm_pstate : TCD_DEGAMMA_DEBUG_dgmm_pstate_SIZE;
+ unsigned int dgmm_stall : TCD_DEGAMMA_DEBUG_dgmm_stall_SIZE;
+ unsigned int dgmm_ctrl_send : TCD_DEGAMMA_DEBUG_dgmm_ctrl_send_SIZE;
+ unsigned int dgmm_ctrl_last_send : TCD_DEGAMMA_DEBUG_dgmm_ctrl_last_send_SIZE;
+ unsigned int dgmm_ctrl_dgmm8 : TCD_DEGAMMA_DEBUG_dgmm_ctrl_dgmm8_SIZE;
+ unsigned int dgmm_ftfconv_dgmmen : TCD_DEGAMMA_DEBUG_dgmm_ftfconv_dgmmen_SIZE;
+ } tcd_degamma_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcd_degamma_debug_t f;
+} tcd_degamma_debug_u;
+
+
+/*
+ * TCD_DXTMUX_SCTARB_DEBUG struct
+ */
+
+#define TCD_DXTMUX_SCTARB_DEBUG_pstate_SIZE 1
+#define TCD_DXTMUX_SCTARB_DEBUG_sctrmx_rtr_SIZE 1
+#define TCD_DXTMUX_SCTARB_DEBUG_dxtc_rtr_SIZE 1
+#define TCD_DXTMUX_SCTARB_DEBUG_sctrarb_multcyl_send_SIZE 1
+#define TCD_DXTMUX_SCTARB_DEBUG_sctrmx0_sctrarb_rts_SIZE 1
+#define TCD_DXTMUX_SCTARB_DEBUG_dxtc_sctrarb_send_SIZE 1
+#define TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_last_send_SIZE 1
+#define TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_send_SIZE 1
+#define TCD_DXTMUX_SCTARB_DEBUG_dcmp_mux_send_SIZE 1
+
+#define TCD_DXTMUX_SCTARB_DEBUG_pstate_SHIFT 9
+#define TCD_DXTMUX_SCTARB_DEBUG_sctrmx_rtr_SHIFT 10
+#define TCD_DXTMUX_SCTARB_DEBUG_dxtc_rtr_SHIFT 11
+#define TCD_DXTMUX_SCTARB_DEBUG_sctrarb_multcyl_send_SHIFT 15
+#define TCD_DXTMUX_SCTARB_DEBUG_sctrmx0_sctrarb_rts_SHIFT 16
+#define TCD_DXTMUX_SCTARB_DEBUG_dxtc_sctrarb_send_SHIFT 20
+#define TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_last_send_SHIFT 27
+#define TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_send_SHIFT 28
+#define TCD_DXTMUX_SCTARB_DEBUG_dcmp_mux_send_SHIFT 29
+
+#define TCD_DXTMUX_SCTARB_DEBUG_pstate_MASK 0x00000200
+#define TCD_DXTMUX_SCTARB_DEBUG_sctrmx_rtr_MASK 0x00000400
+#define TCD_DXTMUX_SCTARB_DEBUG_dxtc_rtr_MASK 0x00000800
+#define TCD_DXTMUX_SCTARB_DEBUG_sctrarb_multcyl_send_MASK 0x00008000
+#define TCD_DXTMUX_SCTARB_DEBUG_sctrmx0_sctrarb_rts_MASK 0x00010000
+#define TCD_DXTMUX_SCTARB_DEBUG_dxtc_sctrarb_send_MASK 0x00100000
+#define TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_last_send_MASK 0x08000000
+#define TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_send_MASK 0x10000000
+#define TCD_DXTMUX_SCTARB_DEBUG_dcmp_mux_send_MASK 0x20000000
+
+#define TCD_DXTMUX_SCTARB_DEBUG_MASK \
+ (TCD_DXTMUX_SCTARB_DEBUG_pstate_MASK | \
+ TCD_DXTMUX_SCTARB_DEBUG_sctrmx_rtr_MASK | \
+ TCD_DXTMUX_SCTARB_DEBUG_dxtc_rtr_MASK | \
+ TCD_DXTMUX_SCTARB_DEBUG_sctrarb_multcyl_send_MASK | \
+ TCD_DXTMUX_SCTARB_DEBUG_sctrmx0_sctrarb_rts_MASK | \
+ TCD_DXTMUX_SCTARB_DEBUG_dxtc_sctrarb_send_MASK | \
+ TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_last_send_MASK | \
+ TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_send_MASK | \
+ TCD_DXTMUX_SCTARB_DEBUG_dcmp_mux_send_MASK)
+
+#define TCD_DXTMUX_SCTARB_DEBUG(pstate, sctrmx_rtr, dxtc_rtr, sctrarb_multcyl_send, sctrmx0_sctrarb_rts, dxtc_sctrarb_send, dxtc_dgmmpd_last_send, dxtc_dgmmpd_send, dcmp_mux_send) \
+ ((pstate << TCD_DXTMUX_SCTARB_DEBUG_pstate_SHIFT) | \
+ (sctrmx_rtr << TCD_DXTMUX_SCTARB_DEBUG_sctrmx_rtr_SHIFT) | \
+ (dxtc_rtr << TCD_DXTMUX_SCTARB_DEBUG_dxtc_rtr_SHIFT) | \
+ (sctrarb_multcyl_send << TCD_DXTMUX_SCTARB_DEBUG_sctrarb_multcyl_send_SHIFT) | \
+ (sctrmx0_sctrarb_rts << TCD_DXTMUX_SCTARB_DEBUG_sctrmx0_sctrarb_rts_SHIFT) | \
+ (dxtc_sctrarb_send << TCD_DXTMUX_SCTARB_DEBUG_dxtc_sctrarb_send_SHIFT) | \
+ (dxtc_dgmmpd_last_send << TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_last_send_SHIFT) | \
+ (dxtc_dgmmpd_send << TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_send_SHIFT) | \
+ (dcmp_mux_send << TCD_DXTMUX_SCTARB_DEBUG_dcmp_mux_send_SHIFT))
+
+#define TCD_DXTMUX_SCTARB_DEBUG_GET_pstate(tcd_dxtmux_sctarb_debug) \
+ ((tcd_dxtmux_sctarb_debug & TCD_DXTMUX_SCTARB_DEBUG_pstate_MASK) >> TCD_DXTMUX_SCTARB_DEBUG_pstate_SHIFT)
+#define TCD_DXTMUX_SCTARB_DEBUG_GET_sctrmx_rtr(tcd_dxtmux_sctarb_debug) \
+ ((tcd_dxtmux_sctarb_debug & TCD_DXTMUX_SCTARB_DEBUG_sctrmx_rtr_MASK) >> TCD_DXTMUX_SCTARB_DEBUG_sctrmx_rtr_SHIFT)
+#define TCD_DXTMUX_SCTARB_DEBUG_GET_dxtc_rtr(tcd_dxtmux_sctarb_debug) \
+ ((tcd_dxtmux_sctarb_debug & TCD_DXTMUX_SCTARB_DEBUG_dxtc_rtr_MASK) >> TCD_DXTMUX_SCTARB_DEBUG_dxtc_rtr_SHIFT)
+#define TCD_DXTMUX_SCTARB_DEBUG_GET_sctrarb_multcyl_send(tcd_dxtmux_sctarb_debug) \
+ ((tcd_dxtmux_sctarb_debug & TCD_DXTMUX_SCTARB_DEBUG_sctrarb_multcyl_send_MASK) >> TCD_DXTMUX_SCTARB_DEBUG_sctrarb_multcyl_send_SHIFT)
+#define TCD_DXTMUX_SCTARB_DEBUG_GET_sctrmx0_sctrarb_rts(tcd_dxtmux_sctarb_debug) \
+ ((tcd_dxtmux_sctarb_debug & TCD_DXTMUX_SCTARB_DEBUG_sctrmx0_sctrarb_rts_MASK) >> TCD_DXTMUX_SCTARB_DEBUG_sctrmx0_sctrarb_rts_SHIFT)
+#define TCD_DXTMUX_SCTARB_DEBUG_GET_dxtc_sctrarb_send(tcd_dxtmux_sctarb_debug) \
+ ((tcd_dxtmux_sctarb_debug & TCD_DXTMUX_SCTARB_DEBUG_dxtc_sctrarb_send_MASK) >> TCD_DXTMUX_SCTARB_DEBUG_dxtc_sctrarb_send_SHIFT)
+#define TCD_DXTMUX_SCTARB_DEBUG_GET_dxtc_dgmmpd_last_send(tcd_dxtmux_sctarb_debug) \
+ ((tcd_dxtmux_sctarb_debug & TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_last_send_MASK) >> TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_last_send_SHIFT)
+#define TCD_DXTMUX_SCTARB_DEBUG_GET_dxtc_dgmmpd_send(tcd_dxtmux_sctarb_debug) \
+ ((tcd_dxtmux_sctarb_debug & TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_send_MASK) >> TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_send_SHIFT)
+#define TCD_DXTMUX_SCTARB_DEBUG_GET_dcmp_mux_send(tcd_dxtmux_sctarb_debug) \
+ ((tcd_dxtmux_sctarb_debug & TCD_DXTMUX_SCTARB_DEBUG_dcmp_mux_send_MASK) >> TCD_DXTMUX_SCTARB_DEBUG_dcmp_mux_send_SHIFT)
+
+#define TCD_DXTMUX_SCTARB_DEBUG_SET_pstate(tcd_dxtmux_sctarb_debug_reg, pstate) \
+ tcd_dxtmux_sctarb_debug_reg = (tcd_dxtmux_sctarb_debug_reg & ~TCD_DXTMUX_SCTARB_DEBUG_pstate_MASK) | (pstate << TCD_DXTMUX_SCTARB_DEBUG_pstate_SHIFT)
+#define TCD_DXTMUX_SCTARB_DEBUG_SET_sctrmx_rtr(tcd_dxtmux_sctarb_debug_reg, sctrmx_rtr) \
+ tcd_dxtmux_sctarb_debug_reg = (tcd_dxtmux_sctarb_debug_reg & ~TCD_DXTMUX_SCTARB_DEBUG_sctrmx_rtr_MASK) | (sctrmx_rtr << TCD_DXTMUX_SCTARB_DEBUG_sctrmx_rtr_SHIFT)
+#define TCD_DXTMUX_SCTARB_DEBUG_SET_dxtc_rtr(tcd_dxtmux_sctarb_debug_reg, dxtc_rtr) \
+ tcd_dxtmux_sctarb_debug_reg = (tcd_dxtmux_sctarb_debug_reg & ~TCD_DXTMUX_SCTARB_DEBUG_dxtc_rtr_MASK) | (dxtc_rtr << TCD_DXTMUX_SCTARB_DEBUG_dxtc_rtr_SHIFT)
+#define TCD_DXTMUX_SCTARB_DEBUG_SET_sctrarb_multcyl_send(tcd_dxtmux_sctarb_debug_reg, sctrarb_multcyl_send) \
+ tcd_dxtmux_sctarb_debug_reg = (tcd_dxtmux_sctarb_debug_reg & ~TCD_DXTMUX_SCTARB_DEBUG_sctrarb_multcyl_send_MASK) | (sctrarb_multcyl_send << TCD_DXTMUX_SCTARB_DEBUG_sctrarb_multcyl_send_SHIFT)
+#define TCD_DXTMUX_SCTARB_DEBUG_SET_sctrmx0_sctrarb_rts(tcd_dxtmux_sctarb_debug_reg, sctrmx0_sctrarb_rts) \
+ tcd_dxtmux_sctarb_debug_reg = (tcd_dxtmux_sctarb_debug_reg & ~TCD_DXTMUX_SCTARB_DEBUG_sctrmx0_sctrarb_rts_MASK) | (sctrmx0_sctrarb_rts << TCD_DXTMUX_SCTARB_DEBUG_sctrmx0_sctrarb_rts_SHIFT)
+#define TCD_DXTMUX_SCTARB_DEBUG_SET_dxtc_sctrarb_send(tcd_dxtmux_sctarb_debug_reg, dxtc_sctrarb_send) \
+ tcd_dxtmux_sctarb_debug_reg = (tcd_dxtmux_sctarb_debug_reg & ~TCD_DXTMUX_SCTARB_DEBUG_dxtc_sctrarb_send_MASK) | (dxtc_sctrarb_send << TCD_DXTMUX_SCTARB_DEBUG_dxtc_sctrarb_send_SHIFT)
+#define TCD_DXTMUX_SCTARB_DEBUG_SET_dxtc_dgmmpd_last_send(tcd_dxtmux_sctarb_debug_reg, dxtc_dgmmpd_last_send) \
+ tcd_dxtmux_sctarb_debug_reg = (tcd_dxtmux_sctarb_debug_reg & ~TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_last_send_MASK) | (dxtc_dgmmpd_last_send << TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_last_send_SHIFT)
+#define TCD_DXTMUX_SCTARB_DEBUG_SET_dxtc_dgmmpd_send(tcd_dxtmux_sctarb_debug_reg, dxtc_dgmmpd_send) \
+ tcd_dxtmux_sctarb_debug_reg = (tcd_dxtmux_sctarb_debug_reg & ~TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_send_MASK) | (dxtc_dgmmpd_send << TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_send_SHIFT)
+#define TCD_DXTMUX_SCTARB_DEBUG_SET_dcmp_mux_send(tcd_dxtmux_sctarb_debug_reg, dcmp_mux_send) \
+ tcd_dxtmux_sctarb_debug_reg = (tcd_dxtmux_sctarb_debug_reg & ~TCD_DXTMUX_SCTARB_DEBUG_dcmp_mux_send_MASK) | (dcmp_mux_send << TCD_DXTMUX_SCTARB_DEBUG_dcmp_mux_send_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcd_dxtmux_sctarb_debug_t {
+ unsigned int : 9;
+ unsigned int pstate : TCD_DXTMUX_SCTARB_DEBUG_pstate_SIZE;
+ unsigned int sctrmx_rtr : TCD_DXTMUX_SCTARB_DEBUG_sctrmx_rtr_SIZE;
+ unsigned int dxtc_rtr : TCD_DXTMUX_SCTARB_DEBUG_dxtc_rtr_SIZE;
+ unsigned int : 3;
+ unsigned int sctrarb_multcyl_send : TCD_DXTMUX_SCTARB_DEBUG_sctrarb_multcyl_send_SIZE;
+ unsigned int sctrmx0_sctrarb_rts : TCD_DXTMUX_SCTARB_DEBUG_sctrmx0_sctrarb_rts_SIZE;
+ unsigned int : 3;
+ unsigned int dxtc_sctrarb_send : TCD_DXTMUX_SCTARB_DEBUG_dxtc_sctrarb_send_SIZE;
+ unsigned int : 6;
+ unsigned int dxtc_dgmmpd_last_send : TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_last_send_SIZE;
+ unsigned int dxtc_dgmmpd_send : TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_send_SIZE;
+ unsigned int dcmp_mux_send : TCD_DXTMUX_SCTARB_DEBUG_dcmp_mux_send_SIZE;
+ unsigned int : 2;
+ } tcd_dxtmux_sctarb_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcd_dxtmux_sctarb_debug_t {
+ unsigned int : 2;
+ unsigned int dcmp_mux_send : TCD_DXTMUX_SCTARB_DEBUG_dcmp_mux_send_SIZE;
+ unsigned int dxtc_dgmmpd_send : TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_send_SIZE;
+ unsigned int dxtc_dgmmpd_last_send : TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_last_send_SIZE;
+ unsigned int : 6;
+ unsigned int dxtc_sctrarb_send : TCD_DXTMUX_SCTARB_DEBUG_dxtc_sctrarb_send_SIZE;
+ unsigned int : 3;
+ unsigned int sctrmx0_sctrarb_rts : TCD_DXTMUX_SCTARB_DEBUG_sctrmx0_sctrarb_rts_SIZE;
+ unsigned int sctrarb_multcyl_send : TCD_DXTMUX_SCTARB_DEBUG_sctrarb_multcyl_send_SIZE;
+ unsigned int : 3;
+ unsigned int dxtc_rtr : TCD_DXTMUX_SCTARB_DEBUG_dxtc_rtr_SIZE;
+ unsigned int sctrmx_rtr : TCD_DXTMUX_SCTARB_DEBUG_sctrmx_rtr_SIZE;
+ unsigned int pstate : TCD_DXTMUX_SCTARB_DEBUG_pstate_SIZE;
+ unsigned int : 9;
+ } tcd_dxtmux_sctarb_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcd_dxtmux_sctarb_debug_t f;
+} tcd_dxtmux_sctarb_debug_u;
+
+
+/*
+ * TCD_DXTC_ARB_DEBUG struct
+ */
+
+#define TCD_DXTC_ARB_DEBUG_n0_stall_SIZE 1
+#define TCD_DXTC_ARB_DEBUG_pstate_SIZE 1
+#define TCD_DXTC_ARB_DEBUG_arb_dcmp01_last_send_SIZE 1
+#define TCD_DXTC_ARB_DEBUG_arb_dcmp01_cnt_SIZE 2
+#define TCD_DXTC_ARB_DEBUG_arb_dcmp01_sector_SIZE 3
+#define TCD_DXTC_ARB_DEBUG_arb_dcmp01_cacheline_SIZE 6
+#define TCD_DXTC_ARB_DEBUG_arb_dcmp01_format_SIZE 12
+#define TCD_DXTC_ARB_DEBUG_arb_dcmp01_send_SIZE 1
+#define TCD_DXTC_ARB_DEBUG_n0_dxt2_4_types_SIZE 1
+
+#define TCD_DXTC_ARB_DEBUG_n0_stall_SHIFT 4
+#define TCD_DXTC_ARB_DEBUG_pstate_SHIFT 5
+#define TCD_DXTC_ARB_DEBUG_arb_dcmp01_last_send_SHIFT 6
+#define TCD_DXTC_ARB_DEBUG_arb_dcmp01_cnt_SHIFT 7
+#define TCD_DXTC_ARB_DEBUG_arb_dcmp01_sector_SHIFT 9
+#define TCD_DXTC_ARB_DEBUG_arb_dcmp01_cacheline_SHIFT 12
+#define TCD_DXTC_ARB_DEBUG_arb_dcmp01_format_SHIFT 18
+#define TCD_DXTC_ARB_DEBUG_arb_dcmp01_send_SHIFT 30
+#define TCD_DXTC_ARB_DEBUG_n0_dxt2_4_types_SHIFT 31
+
+#define TCD_DXTC_ARB_DEBUG_n0_stall_MASK 0x00000010
+#define TCD_DXTC_ARB_DEBUG_pstate_MASK 0x00000020
+#define TCD_DXTC_ARB_DEBUG_arb_dcmp01_last_send_MASK 0x00000040
+#define TCD_DXTC_ARB_DEBUG_arb_dcmp01_cnt_MASK 0x00000180
+#define TCD_DXTC_ARB_DEBUG_arb_dcmp01_sector_MASK 0x00000e00
+#define TCD_DXTC_ARB_DEBUG_arb_dcmp01_cacheline_MASK 0x0003f000
+#define TCD_DXTC_ARB_DEBUG_arb_dcmp01_format_MASK 0x3ffc0000
+#define TCD_DXTC_ARB_DEBUG_arb_dcmp01_send_MASK 0x40000000
+#define TCD_DXTC_ARB_DEBUG_n0_dxt2_4_types_MASK 0x80000000
+
+#define TCD_DXTC_ARB_DEBUG_MASK \
+ (TCD_DXTC_ARB_DEBUG_n0_stall_MASK | \
+ TCD_DXTC_ARB_DEBUG_pstate_MASK | \
+ TCD_DXTC_ARB_DEBUG_arb_dcmp01_last_send_MASK | \
+ TCD_DXTC_ARB_DEBUG_arb_dcmp01_cnt_MASK | \
+ TCD_DXTC_ARB_DEBUG_arb_dcmp01_sector_MASK | \
+ TCD_DXTC_ARB_DEBUG_arb_dcmp01_cacheline_MASK | \
+ TCD_DXTC_ARB_DEBUG_arb_dcmp01_format_MASK | \
+ TCD_DXTC_ARB_DEBUG_arb_dcmp01_send_MASK | \
+ TCD_DXTC_ARB_DEBUG_n0_dxt2_4_types_MASK)
+
+#define TCD_DXTC_ARB_DEBUG(n0_stall, pstate, arb_dcmp01_last_send, arb_dcmp01_cnt, arb_dcmp01_sector, arb_dcmp01_cacheline, arb_dcmp01_format, arb_dcmp01_send, n0_dxt2_4_types) \
+ ((n0_stall << TCD_DXTC_ARB_DEBUG_n0_stall_SHIFT) | \
+ (pstate << TCD_DXTC_ARB_DEBUG_pstate_SHIFT) | \
+ (arb_dcmp01_last_send << TCD_DXTC_ARB_DEBUG_arb_dcmp01_last_send_SHIFT) | \
+ (arb_dcmp01_cnt << TCD_DXTC_ARB_DEBUG_arb_dcmp01_cnt_SHIFT) | \
+ (arb_dcmp01_sector << TCD_DXTC_ARB_DEBUG_arb_dcmp01_sector_SHIFT) | \
+ (arb_dcmp01_cacheline << TCD_DXTC_ARB_DEBUG_arb_dcmp01_cacheline_SHIFT) | \
+ (arb_dcmp01_format << TCD_DXTC_ARB_DEBUG_arb_dcmp01_format_SHIFT) | \
+ (arb_dcmp01_send << TCD_DXTC_ARB_DEBUG_arb_dcmp01_send_SHIFT) | \
+ (n0_dxt2_4_types << TCD_DXTC_ARB_DEBUG_n0_dxt2_4_types_SHIFT))
+
+#define TCD_DXTC_ARB_DEBUG_GET_n0_stall(tcd_dxtc_arb_debug) \
+ ((tcd_dxtc_arb_debug & TCD_DXTC_ARB_DEBUG_n0_stall_MASK) >> TCD_DXTC_ARB_DEBUG_n0_stall_SHIFT)
+#define TCD_DXTC_ARB_DEBUG_GET_pstate(tcd_dxtc_arb_debug) \
+ ((tcd_dxtc_arb_debug & TCD_DXTC_ARB_DEBUG_pstate_MASK) >> TCD_DXTC_ARB_DEBUG_pstate_SHIFT)
+#define TCD_DXTC_ARB_DEBUG_GET_arb_dcmp01_last_send(tcd_dxtc_arb_debug) \
+ ((tcd_dxtc_arb_debug & TCD_DXTC_ARB_DEBUG_arb_dcmp01_last_send_MASK) >> TCD_DXTC_ARB_DEBUG_arb_dcmp01_last_send_SHIFT)
+#define TCD_DXTC_ARB_DEBUG_GET_arb_dcmp01_cnt(tcd_dxtc_arb_debug) \
+ ((tcd_dxtc_arb_debug & TCD_DXTC_ARB_DEBUG_arb_dcmp01_cnt_MASK) >> TCD_DXTC_ARB_DEBUG_arb_dcmp01_cnt_SHIFT)
+#define TCD_DXTC_ARB_DEBUG_GET_arb_dcmp01_sector(tcd_dxtc_arb_debug) \
+ ((tcd_dxtc_arb_debug & TCD_DXTC_ARB_DEBUG_arb_dcmp01_sector_MASK) >> TCD_DXTC_ARB_DEBUG_arb_dcmp01_sector_SHIFT)
+#define TCD_DXTC_ARB_DEBUG_GET_arb_dcmp01_cacheline(tcd_dxtc_arb_debug) \
+ ((tcd_dxtc_arb_debug & TCD_DXTC_ARB_DEBUG_arb_dcmp01_cacheline_MASK) >> TCD_DXTC_ARB_DEBUG_arb_dcmp01_cacheline_SHIFT)
+#define TCD_DXTC_ARB_DEBUG_GET_arb_dcmp01_format(tcd_dxtc_arb_debug) \
+ ((tcd_dxtc_arb_debug & TCD_DXTC_ARB_DEBUG_arb_dcmp01_format_MASK) >> TCD_DXTC_ARB_DEBUG_arb_dcmp01_format_SHIFT)
+#define TCD_DXTC_ARB_DEBUG_GET_arb_dcmp01_send(tcd_dxtc_arb_debug) \
+ ((tcd_dxtc_arb_debug & TCD_DXTC_ARB_DEBUG_arb_dcmp01_send_MASK) >> TCD_DXTC_ARB_DEBUG_arb_dcmp01_send_SHIFT)
+#define TCD_DXTC_ARB_DEBUG_GET_n0_dxt2_4_types(tcd_dxtc_arb_debug) \
+ ((tcd_dxtc_arb_debug & TCD_DXTC_ARB_DEBUG_n0_dxt2_4_types_MASK) >> TCD_DXTC_ARB_DEBUG_n0_dxt2_4_types_SHIFT)
+
+#define TCD_DXTC_ARB_DEBUG_SET_n0_stall(tcd_dxtc_arb_debug_reg, n0_stall) \
+ tcd_dxtc_arb_debug_reg = (tcd_dxtc_arb_debug_reg & ~TCD_DXTC_ARB_DEBUG_n0_stall_MASK) | (n0_stall << TCD_DXTC_ARB_DEBUG_n0_stall_SHIFT)
+#define TCD_DXTC_ARB_DEBUG_SET_pstate(tcd_dxtc_arb_debug_reg, pstate) \
+ tcd_dxtc_arb_debug_reg = (tcd_dxtc_arb_debug_reg & ~TCD_DXTC_ARB_DEBUG_pstate_MASK) | (pstate << TCD_DXTC_ARB_DEBUG_pstate_SHIFT)
+#define TCD_DXTC_ARB_DEBUG_SET_arb_dcmp01_last_send(tcd_dxtc_arb_debug_reg, arb_dcmp01_last_send) \
+ tcd_dxtc_arb_debug_reg = (tcd_dxtc_arb_debug_reg & ~TCD_DXTC_ARB_DEBUG_arb_dcmp01_last_send_MASK) | (arb_dcmp01_last_send << TCD_DXTC_ARB_DEBUG_arb_dcmp01_last_send_SHIFT)
+#define TCD_DXTC_ARB_DEBUG_SET_arb_dcmp01_cnt(tcd_dxtc_arb_debug_reg, arb_dcmp01_cnt) \
+ tcd_dxtc_arb_debug_reg = (tcd_dxtc_arb_debug_reg & ~TCD_DXTC_ARB_DEBUG_arb_dcmp01_cnt_MASK) | (arb_dcmp01_cnt << TCD_DXTC_ARB_DEBUG_arb_dcmp01_cnt_SHIFT)
+#define TCD_DXTC_ARB_DEBUG_SET_arb_dcmp01_sector(tcd_dxtc_arb_debug_reg, arb_dcmp01_sector) \
+ tcd_dxtc_arb_debug_reg = (tcd_dxtc_arb_debug_reg & ~TCD_DXTC_ARB_DEBUG_arb_dcmp01_sector_MASK) | (arb_dcmp01_sector << TCD_DXTC_ARB_DEBUG_arb_dcmp01_sector_SHIFT)
+#define TCD_DXTC_ARB_DEBUG_SET_arb_dcmp01_cacheline(tcd_dxtc_arb_debug_reg, arb_dcmp01_cacheline) \
+ tcd_dxtc_arb_debug_reg = (tcd_dxtc_arb_debug_reg & ~TCD_DXTC_ARB_DEBUG_arb_dcmp01_cacheline_MASK) | (arb_dcmp01_cacheline << TCD_DXTC_ARB_DEBUG_arb_dcmp01_cacheline_SHIFT)
+#define TCD_DXTC_ARB_DEBUG_SET_arb_dcmp01_format(tcd_dxtc_arb_debug_reg, arb_dcmp01_format) \
+ tcd_dxtc_arb_debug_reg = (tcd_dxtc_arb_debug_reg & ~TCD_DXTC_ARB_DEBUG_arb_dcmp01_format_MASK) | (arb_dcmp01_format << TCD_DXTC_ARB_DEBUG_arb_dcmp01_format_SHIFT)
+#define TCD_DXTC_ARB_DEBUG_SET_arb_dcmp01_send(tcd_dxtc_arb_debug_reg, arb_dcmp01_send) \
+ tcd_dxtc_arb_debug_reg = (tcd_dxtc_arb_debug_reg & ~TCD_DXTC_ARB_DEBUG_arb_dcmp01_send_MASK) | (arb_dcmp01_send << TCD_DXTC_ARB_DEBUG_arb_dcmp01_send_SHIFT)
+#define TCD_DXTC_ARB_DEBUG_SET_n0_dxt2_4_types(tcd_dxtc_arb_debug_reg, n0_dxt2_4_types) \
+ tcd_dxtc_arb_debug_reg = (tcd_dxtc_arb_debug_reg & ~TCD_DXTC_ARB_DEBUG_n0_dxt2_4_types_MASK) | (n0_dxt2_4_types << TCD_DXTC_ARB_DEBUG_n0_dxt2_4_types_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcd_dxtc_arb_debug_t {
+ unsigned int : 4;
+ unsigned int n0_stall : TCD_DXTC_ARB_DEBUG_n0_stall_SIZE;
+ unsigned int pstate : TCD_DXTC_ARB_DEBUG_pstate_SIZE;
+ unsigned int arb_dcmp01_last_send : TCD_DXTC_ARB_DEBUG_arb_dcmp01_last_send_SIZE;
+ unsigned int arb_dcmp01_cnt : TCD_DXTC_ARB_DEBUG_arb_dcmp01_cnt_SIZE;
+ unsigned int arb_dcmp01_sector : TCD_DXTC_ARB_DEBUG_arb_dcmp01_sector_SIZE;
+ unsigned int arb_dcmp01_cacheline : TCD_DXTC_ARB_DEBUG_arb_dcmp01_cacheline_SIZE;
+ unsigned int arb_dcmp01_format : TCD_DXTC_ARB_DEBUG_arb_dcmp01_format_SIZE;
+ unsigned int arb_dcmp01_send : TCD_DXTC_ARB_DEBUG_arb_dcmp01_send_SIZE;
+ unsigned int n0_dxt2_4_types : TCD_DXTC_ARB_DEBUG_n0_dxt2_4_types_SIZE;
+ } tcd_dxtc_arb_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcd_dxtc_arb_debug_t {
+ unsigned int n0_dxt2_4_types : TCD_DXTC_ARB_DEBUG_n0_dxt2_4_types_SIZE;
+ unsigned int arb_dcmp01_send : TCD_DXTC_ARB_DEBUG_arb_dcmp01_send_SIZE;
+ unsigned int arb_dcmp01_format : TCD_DXTC_ARB_DEBUG_arb_dcmp01_format_SIZE;
+ unsigned int arb_dcmp01_cacheline : TCD_DXTC_ARB_DEBUG_arb_dcmp01_cacheline_SIZE;
+ unsigned int arb_dcmp01_sector : TCD_DXTC_ARB_DEBUG_arb_dcmp01_sector_SIZE;
+ unsigned int arb_dcmp01_cnt : TCD_DXTC_ARB_DEBUG_arb_dcmp01_cnt_SIZE;
+ unsigned int arb_dcmp01_last_send : TCD_DXTC_ARB_DEBUG_arb_dcmp01_last_send_SIZE;
+ unsigned int pstate : TCD_DXTC_ARB_DEBUG_pstate_SIZE;
+ unsigned int n0_stall : TCD_DXTC_ARB_DEBUG_n0_stall_SIZE;
+ unsigned int : 4;
+ } tcd_dxtc_arb_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcd_dxtc_arb_debug_t f;
+} tcd_dxtc_arb_debug_u;
+
+
+/*
+ * TCD_STALLS_DEBUG struct
+ */
+
+#define TCD_STALLS_DEBUG_not_multcyl_sctrarb_rtr_SIZE 1
+#define TCD_STALLS_DEBUG_not_sctrmx0_sctrarb_rtr_SIZE 1
+#define TCD_STALLS_DEBUG_not_dcmp0_arb_rtr_SIZE 1
+#define TCD_STALLS_DEBUG_not_dgmmpd_dxtc_rtr_SIZE 1
+#define TCD_STALLS_DEBUG_not_mux_dcmp_rtr_SIZE 1
+#define TCD_STALLS_DEBUG_not_incoming_rtr_SIZE 1
+
+#define TCD_STALLS_DEBUG_not_multcyl_sctrarb_rtr_SHIFT 10
+#define TCD_STALLS_DEBUG_not_sctrmx0_sctrarb_rtr_SHIFT 11
+#define TCD_STALLS_DEBUG_not_dcmp0_arb_rtr_SHIFT 17
+#define TCD_STALLS_DEBUG_not_dgmmpd_dxtc_rtr_SHIFT 18
+#define TCD_STALLS_DEBUG_not_mux_dcmp_rtr_SHIFT 19
+#define TCD_STALLS_DEBUG_not_incoming_rtr_SHIFT 31
+
+#define TCD_STALLS_DEBUG_not_multcyl_sctrarb_rtr_MASK 0x00000400
+#define TCD_STALLS_DEBUG_not_sctrmx0_sctrarb_rtr_MASK 0x00000800
+#define TCD_STALLS_DEBUG_not_dcmp0_arb_rtr_MASK 0x00020000
+#define TCD_STALLS_DEBUG_not_dgmmpd_dxtc_rtr_MASK 0x00040000
+#define TCD_STALLS_DEBUG_not_mux_dcmp_rtr_MASK 0x00080000
+#define TCD_STALLS_DEBUG_not_incoming_rtr_MASK 0x80000000
+
+#define TCD_STALLS_DEBUG_MASK \
+ (TCD_STALLS_DEBUG_not_multcyl_sctrarb_rtr_MASK | \
+ TCD_STALLS_DEBUG_not_sctrmx0_sctrarb_rtr_MASK | \
+ TCD_STALLS_DEBUG_not_dcmp0_arb_rtr_MASK | \
+ TCD_STALLS_DEBUG_not_dgmmpd_dxtc_rtr_MASK | \
+ TCD_STALLS_DEBUG_not_mux_dcmp_rtr_MASK | \
+ TCD_STALLS_DEBUG_not_incoming_rtr_MASK)
+
+#define TCD_STALLS_DEBUG(not_multcyl_sctrarb_rtr, not_sctrmx0_sctrarb_rtr, not_dcmp0_arb_rtr, not_dgmmpd_dxtc_rtr, not_mux_dcmp_rtr, not_incoming_rtr) \
+ ((not_multcyl_sctrarb_rtr << TCD_STALLS_DEBUG_not_multcyl_sctrarb_rtr_SHIFT) | \
+ (not_sctrmx0_sctrarb_rtr << TCD_STALLS_DEBUG_not_sctrmx0_sctrarb_rtr_SHIFT) | \
+ (not_dcmp0_arb_rtr << TCD_STALLS_DEBUG_not_dcmp0_arb_rtr_SHIFT) | \
+ (not_dgmmpd_dxtc_rtr << TCD_STALLS_DEBUG_not_dgmmpd_dxtc_rtr_SHIFT) | \
+ (not_mux_dcmp_rtr << TCD_STALLS_DEBUG_not_mux_dcmp_rtr_SHIFT) | \
+ (not_incoming_rtr << TCD_STALLS_DEBUG_not_incoming_rtr_SHIFT))
+
+#define TCD_STALLS_DEBUG_GET_not_multcyl_sctrarb_rtr(tcd_stalls_debug) \
+ ((tcd_stalls_debug & TCD_STALLS_DEBUG_not_multcyl_sctrarb_rtr_MASK) >> TCD_STALLS_DEBUG_not_multcyl_sctrarb_rtr_SHIFT)
+#define TCD_STALLS_DEBUG_GET_not_sctrmx0_sctrarb_rtr(tcd_stalls_debug) \
+ ((tcd_stalls_debug & TCD_STALLS_DEBUG_not_sctrmx0_sctrarb_rtr_MASK) >> TCD_STALLS_DEBUG_not_sctrmx0_sctrarb_rtr_SHIFT)
+#define TCD_STALLS_DEBUG_GET_not_dcmp0_arb_rtr(tcd_stalls_debug) \
+ ((tcd_stalls_debug & TCD_STALLS_DEBUG_not_dcmp0_arb_rtr_MASK) >> TCD_STALLS_DEBUG_not_dcmp0_arb_rtr_SHIFT)
+#define TCD_STALLS_DEBUG_GET_not_dgmmpd_dxtc_rtr(tcd_stalls_debug) \
+ ((tcd_stalls_debug & TCD_STALLS_DEBUG_not_dgmmpd_dxtc_rtr_MASK) >> TCD_STALLS_DEBUG_not_dgmmpd_dxtc_rtr_SHIFT)
+#define TCD_STALLS_DEBUG_GET_not_mux_dcmp_rtr(tcd_stalls_debug) \
+ ((tcd_stalls_debug & TCD_STALLS_DEBUG_not_mux_dcmp_rtr_MASK) >> TCD_STALLS_DEBUG_not_mux_dcmp_rtr_SHIFT)
+#define TCD_STALLS_DEBUG_GET_not_incoming_rtr(tcd_stalls_debug) \
+ ((tcd_stalls_debug & TCD_STALLS_DEBUG_not_incoming_rtr_MASK) >> TCD_STALLS_DEBUG_not_incoming_rtr_SHIFT)
+
+#define TCD_STALLS_DEBUG_SET_not_multcyl_sctrarb_rtr(tcd_stalls_debug_reg, not_multcyl_sctrarb_rtr) \
+ tcd_stalls_debug_reg = (tcd_stalls_debug_reg & ~TCD_STALLS_DEBUG_not_multcyl_sctrarb_rtr_MASK) | (not_multcyl_sctrarb_rtr << TCD_STALLS_DEBUG_not_multcyl_sctrarb_rtr_SHIFT)
+#define TCD_STALLS_DEBUG_SET_not_sctrmx0_sctrarb_rtr(tcd_stalls_debug_reg, not_sctrmx0_sctrarb_rtr) \
+ tcd_stalls_debug_reg = (tcd_stalls_debug_reg & ~TCD_STALLS_DEBUG_not_sctrmx0_sctrarb_rtr_MASK) | (not_sctrmx0_sctrarb_rtr << TCD_STALLS_DEBUG_not_sctrmx0_sctrarb_rtr_SHIFT)
+#define TCD_STALLS_DEBUG_SET_not_dcmp0_arb_rtr(tcd_stalls_debug_reg, not_dcmp0_arb_rtr) \
+ tcd_stalls_debug_reg = (tcd_stalls_debug_reg & ~TCD_STALLS_DEBUG_not_dcmp0_arb_rtr_MASK) | (not_dcmp0_arb_rtr << TCD_STALLS_DEBUG_not_dcmp0_arb_rtr_SHIFT)
+#define TCD_STALLS_DEBUG_SET_not_dgmmpd_dxtc_rtr(tcd_stalls_debug_reg, not_dgmmpd_dxtc_rtr) \
+ tcd_stalls_debug_reg = (tcd_stalls_debug_reg & ~TCD_STALLS_DEBUG_not_dgmmpd_dxtc_rtr_MASK) | (not_dgmmpd_dxtc_rtr << TCD_STALLS_DEBUG_not_dgmmpd_dxtc_rtr_SHIFT)
+#define TCD_STALLS_DEBUG_SET_not_mux_dcmp_rtr(tcd_stalls_debug_reg, not_mux_dcmp_rtr) \
+ tcd_stalls_debug_reg = (tcd_stalls_debug_reg & ~TCD_STALLS_DEBUG_not_mux_dcmp_rtr_MASK) | (not_mux_dcmp_rtr << TCD_STALLS_DEBUG_not_mux_dcmp_rtr_SHIFT)
+#define TCD_STALLS_DEBUG_SET_not_incoming_rtr(tcd_stalls_debug_reg, not_incoming_rtr) \
+ tcd_stalls_debug_reg = (tcd_stalls_debug_reg & ~TCD_STALLS_DEBUG_not_incoming_rtr_MASK) | (not_incoming_rtr << TCD_STALLS_DEBUG_not_incoming_rtr_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcd_stalls_debug_t {
+ unsigned int : 10;
+ unsigned int not_multcyl_sctrarb_rtr : TCD_STALLS_DEBUG_not_multcyl_sctrarb_rtr_SIZE;
+ unsigned int not_sctrmx0_sctrarb_rtr : TCD_STALLS_DEBUG_not_sctrmx0_sctrarb_rtr_SIZE;
+ unsigned int : 5;
+ unsigned int not_dcmp0_arb_rtr : TCD_STALLS_DEBUG_not_dcmp0_arb_rtr_SIZE;
+ unsigned int not_dgmmpd_dxtc_rtr : TCD_STALLS_DEBUG_not_dgmmpd_dxtc_rtr_SIZE;
+ unsigned int not_mux_dcmp_rtr : TCD_STALLS_DEBUG_not_mux_dcmp_rtr_SIZE;
+ unsigned int : 11;
+ unsigned int not_incoming_rtr : TCD_STALLS_DEBUG_not_incoming_rtr_SIZE;
+ } tcd_stalls_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcd_stalls_debug_t {
+ unsigned int not_incoming_rtr : TCD_STALLS_DEBUG_not_incoming_rtr_SIZE;
+ unsigned int : 11;
+ unsigned int not_mux_dcmp_rtr : TCD_STALLS_DEBUG_not_mux_dcmp_rtr_SIZE;
+ unsigned int not_dgmmpd_dxtc_rtr : TCD_STALLS_DEBUG_not_dgmmpd_dxtc_rtr_SIZE;
+ unsigned int not_dcmp0_arb_rtr : TCD_STALLS_DEBUG_not_dcmp0_arb_rtr_SIZE;
+ unsigned int : 5;
+ unsigned int not_sctrmx0_sctrarb_rtr : TCD_STALLS_DEBUG_not_sctrmx0_sctrarb_rtr_SIZE;
+ unsigned int not_multcyl_sctrarb_rtr : TCD_STALLS_DEBUG_not_multcyl_sctrarb_rtr_SIZE;
+ unsigned int : 10;
+ } tcd_stalls_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcd_stalls_debug_t f;
+} tcd_stalls_debug_u;
+
+
+/*
+ * TCO_STALLS_DEBUG struct
+ */
+
+#define TCO_STALLS_DEBUG_quad0_sg_crd_RTR_SIZE 1
+#define TCO_STALLS_DEBUG_quad0_rl_sg_RTR_SIZE 1
+#define TCO_STALLS_DEBUG_quad0_TCO_TCB_rtr_d_SIZE 1
+
+#define TCO_STALLS_DEBUG_quad0_sg_crd_RTR_SHIFT 5
+#define TCO_STALLS_DEBUG_quad0_rl_sg_RTR_SHIFT 6
+#define TCO_STALLS_DEBUG_quad0_TCO_TCB_rtr_d_SHIFT 7
+
+#define TCO_STALLS_DEBUG_quad0_sg_crd_RTR_MASK 0x00000020
+#define TCO_STALLS_DEBUG_quad0_rl_sg_RTR_MASK 0x00000040
+#define TCO_STALLS_DEBUG_quad0_TCO_TCB_rtr_d_MASK 0x00000080
+
+#define TCO_STALLS_DEBUG_MASK \
+ (TCO_STALLS_DEBUG_quad0_sg_crd_RTR_MASK | \
+ TCO_STALLS_DEBUG_quad0_rl_sg_RTR_MASK | \
+ TCO_STALLS_DEBUG_quad0_TCO_TCB_rtr_d_MASK)
+
+#define TCO_STALLS_DEBUG(quad0_sg_crd_rtr, quad0_rl_sg_rtr, quad0_tco_tcb_rtr_d) \
+ ((quad0_sg_crd_rtr << TCO_STALLS_DEBUG_quad0_sg_crd_RTR_SHIFT) | \
+ (quad0_rl_sg_rtr << TCO_STALLS_DEBUG_quad0_rl_sg_RTR_SHIFT) | \
+ (quad0_tco_tcb_rtr_d << TCO_STALLS_DEBUG_quad0_TCO_TCB_rtr_d_SHIFT))
+
+#define TCO_STALLS_DEBUG_GET_quad0_sg_crd_RTR(tco_stalls_debug) \
+ ((tco_stalls_debug & TCO_STALLS_DEBUG_quad0_sg_crd_RTR_MASK) >> TCO_STALLS_DEBUG_quad0_sg_crd_RTR_SHIFT)
+#define TCO_STALLS_DEBUG_GET_quad0_rl_sg_RTR(tco_stalls_debug) \
+ ((tco_stalls_debug & TCO_STALLS_DEBUG_quad0_rl_sg_RTR_MASK) >> TCO_STALLS_DEBUG_quad0_rl_sg_RTR_SHIFT)
+#define TCO_STALLS_DEBUG_GET_quad0_TCO_TCB_rtr_d(tco_stalls_debug) \
+ ((tco_stalls_debug & TCO_STALLS_DEBUG_quad0_TCO_TCB_rtr_d_MASK) >> TCO_STALLS_DEBUG_quad0_TCO_TCB_rtr_d_SHIFT)
+
+#define TCO_STALLS_DEBUG_SET_quad0_sg_crd_RTR(tco_stalls_debug_reg, quad0_sg_crd_rtr) \
+ tco_stalls_debug_reg = (tco_stalls_debug_reg & ~TCO_STALLS_DEBUG_quad0_sg_crd_RTR_MASK) | (quad0_sg_crd_rtr << TCO_STALLS_DEBUG_quad0_sg_crd_RTR_SHIFT)
+#define TCO_STALLS_DEBUG_SET_quad0_rl_sg_RTR(tco_stalls_debug_reg, quad0_rl_sg_rtr) \
+ tco_stalls_debug_reg = (tco_stalls_debug_reg & ~TCO_STALLS_DEBUG_quad0_rl_sg_RTR_MASK) | (quad0_rl_sg_rtr << TCO_STALLS_DEBUG_quad0_rl_sg_RTR_SHIFT)
+#define TCO_STALLS_DEBUG_SET_quad0_TCO_TCB_rtr_d(tco_stalls_debug_reg, quad0_tco_tcb_rtr_d) \
+ tco_stalls_debug_reg = (tco_stalls_debug_reg & ~TCO_STALLS_DEBUG_quad0_TCO_TCB_rtr_d_MASK) | (quad0_tco_tcb_rtr_d << TCO_STALLS_DEBUG_quad0_TCO_TCB_rtr_d_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tco_stalls_debug_t {
+ unsigned int : 5;
+ unsigned int quad0_sg_crd_rtr : TCO_STALLS_DEBUG_quad0_sg_crd_RTR_SIZE;
+ unsigned int quad0_rl_sg_rtr : TCO_STALLS_DEBUG_quad0_rl_sg_RTR_SIZE;
+ unsigned int quad0_tco_tcb_rtr_d : TCO_STALLS_DEBUG_quad0_TCO_TCB_rtr_d_SIZE;
+ unsigned int : 24;
+ } tco_stalls_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tco_stalls_debug_t {
+ unsigned int : 24;
+ unsigned int quad0_tco_tcb_rtr_d : TCO_STALLS_DEBUG_quad0_TCO_TCB_rtr_d_SIZE;
+ unsigned int quad0_rl_sg_rtr : TCO_STALLS_DEBUG_quad0_rl_sg_RTR_SIZE;
+ unsigned int quad0_sg_crd_rtr : TCO_STALLS_DEBUG_quad0_sg_crd_RTR_SIZE;
+ unsigned int : 5;
+ } tco_stalls_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tco_stalls_debug_t f;
+} tco_stalls_debug_u;
+
+
+/*
+ * TCO_QUAD0_DEBUG0 struct
+ */
+
+#define TCO_QUAD0_DEBUG0_rl_sg_sector_format_SIZE 8
+#define TCO_QUAD0_DEBUG0_rl_sg_end_of_sample_SIZE 1
+#define TCO_QUAD0_DEBUG0_rl_sg_rtr_SIZE 1
+#define TCO_QUAD0_DEBUG0_rl_sg_rts_SIZE 1
+#define TCO_QUAD0_DEBUG0_sg_crd_end_of_sample_SIZE 1
+#define TCO_QUAD0_DEBUG0_sg_crd_rtr_SIZE 1
+#define TCO_QUAD0_DEBUG0_sg_crd_rts_SIZE 1
+#define TCO_QUAD0_DEBUG0_stageN1_valid_q_SIZE 1
+#define TCO_QUAD0_DEBUG0_read_cache_q_SIZE 1
+#define TCO_QUAD0_DEBUG0_cache_read_RTR_SIZE 1
+#define TCO_QUAD0_DEBUG0_all_sectors_written_set3_SIZE 1
+#define TCO_QUAD0_DEBUG0_all_sectors_written_set2_SIZE 1
+#define TCO_QUAD0_DEBUG0_all_sectors_written_set1_SIZE 1
+#define TCO_QUAD0_DEBUG0_all_sectors_written_set0_SIZE 1
+#define TCO_QUAD0_DEBUG0_busy_SIZE 1
+
+#define TCO_QUAD0_DEBUG0_rl_sg_sector_format_SHIFT 0
+#define TCO_QUAD0_DEBUG0_rl_sg_end_of_sample_SHIFT 8
+#define TCO_QUAD0_DEBUG0_rl_sg_rtr_SHIFT 9
+#define TCO_QUAD0_DEBUG0_rl_sg_rts_SHIFT 10
+#define TCO_QUAD0_DEBUG0_sg_crd_end_of_sample_SHIFT 11
+#define TCO_QUAD0_DEBUG0_sg_crd_rtr_SHIFT 12
+#define TCO_QUAD0_DEBUG0_sg_crd_rts_SHIFT 13
+#define TCO_QUAD0_DEBUG0_stageN1_valid_q_SHIFT 16
+#define TCO_QUAD0_DEBUG0_read_cache_q_SHIFT 24
+#define TCO_QUAD0_DEBUG0_cache_read_RTR_SHIFT 25
+#define TCO_QUAD0_DEBUG0_all_sectors_written_set3_SHIFT 26
+#define TCO_QUAD0_DEBUG0_all_sectors_written_set2_SHIFT 27
+#define TCO_QUAD0_DEBUG0_all_sectors_written_set1_SHIFT 28
+#define TCO_QUAD0_DEBUG0_all_sectors_written_set0_SHIFT 29
+#define TCO_QUAD0_DEBUG0_busy_SHIFT 30
+
+#define TCO_QUAD0_DEBUG0_rl_sg_sector_format_MASK 0x000000ff
+#define TCO_QUAD0_DEBUG0_rl_sg_end_of_sample_MASK 0x00000100
+#define TCO_QUAD0_DEBUG0_rl_sg_rtr_MASK 0x00000200
+#define TCO_QUAD0_DEBUG0_rl_sg_rts_MASK 0x00000400
+#define TCO_QUAD0_DEBUG0_sg_crd_end_of_sample_MASK 0x00000800
+#define TCO_QUAD0_DEBUG0_sg_crd_rtr_MASK 0x00001000
+#define TCO_QUAD0_DEBUG0_sg_crd_rts_MASK 0x00002000
+#define TCO_QUAD0_DEBUG0_stageN1_valid_q_MASK 0x00010000
+#define TCO_QUAD0_DEBUG0_read_cache_q_MASK 0x01000000
+#define TCO_QUAD0_DEBUG0_cache_read_RTR_MASK 0x02000000
+#define TCO_QUAD0_DEBUG0_all_sectors_written_set3_MASK 0x04000000
+#define TCO_QUAD0_DEBUG0_all_sectors_written_set2_MASK 0x08000000
+#define TCO_QUAD0_DEBUG0_all_sectors_written_set1_MASK 0x10000000
+#define TCO_QUAD0_DEBUG0_all_sectors_written_set0_MASK 0x20000000
+#define TCO_QUAD0_DEBUG0_busy_MASK 0x40000000
+
+#define TCO_QUAD0_DEBUG0_MASK \
+ (TCO_QUAD0_DEBUG0_rl_sg_sector_format_MASK | \
+ TCO_QUAD0_DEBUG0_rl_sg_end_of_sample_MASK | \
+ TCO_QUAD0_DEBUG0_rl_sg_rtr_MASK | \
+ TCO_QUAD0_DEBUG0_rl_sg_rts_MASK | \
+ TCO_QUAD0_DEBUG0_sg_crd_end_of_sample_MASK | \
+ TCO_QUAD0_DEBUG0_sg_crd_rtr_MASK | \
+ TCO_QUAD0_DEBUG0_sg_crd_rts_MASK | \
+ TCO_QUAD0_DEBUG0_stageN1_valid_q_MASK | \
+ TCO_QUAD0_DEBUG0_read_cache_q_MASK | \
+ TCO_QUAD0_DEBUG0_cache_read_RTR_MASK | \
+ TCO_QUAD0_DEBUG0_all_sectors_written_set3_MASK | \
+ TCO_QUAD0_DEBUG0_all_sectors_written_set2_MASK | \
+ TCO_QUAD0_DEBUG0_all_sectors_written_set1_MASK | \
+ TCO_QUAD0_DEBUG0_all_sectors_written_set0_MASK | \
+ TCO_QUAD0_DEBUG0_busy_MASK)
+
+#define TCO_QUAD0_DEBUG0(rl_sg_sector_format, rl_sg_end_of_sample, rl_sg_rtr, rl_sg_rts, sg_crd_end_of_sample, sg_crd_rtr, sg_crd_rts, stagen1_valid_q, read_cache_q, cache_read_rtr, all_sectors_written_set3, all_sectors_written_set2, all_sectors_written_set1, all_sectors_written_set0, busy) \
+ ((rl_sg_sector_format << TCO_QUAD0_DEBUG0_rl_sg_sector_format_SHIFT) | \
+ (rl_sg_end_of_sample << TCO_QUAD0_DEBUG0_rl_sg_end_of_sample_SHIFT) | \
+ (rl_sg_rtr << TCO_QUAD0_DEBUG0_rl_sg_rtr_SHIFT) | \
+ (rl_sg_rts << TCO_QUAD0_DEBUG0_rl_sg_rts_SHIFT) | \
+ (sg_crd_end_of_sample << TCO_QUAD0_DEBUG0_sg_crd_end_of_sample_SHIFT) | \
+ (sg_crd_rtr << TCO_QUAD0_DEBUG0_sg_crd_rtr_SHIFT) | \
+ (sg_crd_rts << TCO_QUAD0_DEBUG0_sg_crd_rts_SHIFT) | \
+ (stagen1_valid_q << TCO_QUAD0_DEBUG0_stageN1_valid_q_SHIFT) | \
+ (read_cache_q << TCO_QUAD0_DEBUG0_read_cache_q_SHIFT) | \
+ (cache_read_rtr << TCO_QUAD0_DEBUG0_cache_read_RTR_SHIFT) | \
+ (all_sectors_written_set3 << TCO_QUAD0_DEBUG0_all_sectors_written_set3_SHIFT) | \
+ (all_sectors_written_set2 << TCO_QUAD0_DEBUG0_all_sectors_written_set2_SHIFT) | \
+ (all_sectors_written_set1 << TCO_QUAD0_DEBUG0_all_sectors_written_set1_SHIFT) | \
+ (all_sectors_written_set0 << TCO_QUAD0_DEBUG0_all_sectors_written_set0_SHIFT) | \
+ (busy << TCO_QUAD0_DEBUG0_busy_SHIFT))
+
+#define TCO_QUAD0_DEBUG0_GET_rl_sg_sector_format(tco_quad0_debug0) \
+ ((tco_quad0_debug0 & TCO_QUAD0_DEBUG0_rl_sg_sector_format_MASK) >> TCO_QUAD0_DEBUG0_rl_sg_sector_format_SHIFT)
+#define TCO_QUAD0_DEBUG0_GET_rl_sg_end_of_sample(tco_quad0_debug0) \
+ ((tco_quad0_debug0 & TCO_QUAD0_DEBUG0_rl_sg_end_of_sample_MASK) >> TCO_QUAD0_DEBUG0_rl_sg_end_of_sample_SHIFT)
+#define TCO_QUAD0_DEBUG0_GET_rl_sg_rtr(tco_quad0_debug0) \
+ ((tco_quad0_debug0 & TCO_QUAD0_DEBUG0_rl_sg_rtr_MASK) >> TCO_QUAD0_DEBUG0_rl_sg_rtr_SHIFT)
+#define TCO_QUAD0_DEBUG0_GET_rl_sg_rts(tco_quad0_debug0) \
+ ((tco_quad0_debug0 & TCO_QUAD0_DEBUG0_rl_sg_rts_MASK) >> TCO_QUAD0_DEBUG0_rl_sg_rts_SHIFT)
+#define TCO_QUAD0_DEBUG0_GET_sg_crd_end_of_sample(tco_quad0_debug0) \
+ ((tco_quad0_debug0 & TCO_QUAD0_DEBUG0_sg_crd_end_of_sample_MASK) >> TCO_QUAD0_DEBUG0_sg_crd_end_of_sample_SHIFT)
+#define TCO_QUAD0_DEBUG0_GET_sg_crd_rtr(tco_quad0_debug0) \
+ ((tco_quad0_debug0 & TCO_QUAD0_DEBUG0_sg_crd_rtr_MASK) >> TCO_QUAD0_DEBUG0_sg_crd_rtr_SHIFT)
+#define TCO_QUAD0_DEBUG0_GET_sg_crd_rts(tco_quad0_debug0) \
+ ((tco_quad0_debug0 & TCO_QUAD0_DEBUG0_sg_crd_rts_MASK) >> TCO_QUAD0_DEBUG0_sg_crd_rts_SHIFT)
+#define TCO_QUAD0_DEBUG0_GET_stageN1_valid_q(tco_quad0_debug0) \
+ ((tco_quad0_debug0 & TCO_QUAD0_DEBUG0_stageN1_valid_q_MASK) >> TCO_QUAD0_DEBUG0_stageN1_valid_q_SHIFT)
+#define TCO_QUAD0_DEBUG0_GET_read_cache_q(tco_quad0_debug0) \
+ ((tco_quad0_debug0 & TCO_QUAD0_DEBUG0_read_cache_q_MASK) >> TCO_QUAD0_DEBUG0_read_cache_q_SHIFT)
+#define TCO_QUAD0_DEBUG0_GET_cache_read_RTR(tco_quad0_debug0) \
+ ((tco_quad0_debug0 & TCO_QUAD0_DEBUG0_cache_read_RTR_MASK) >> TCO_QUAD0_DEBUG0_cache_read_RTR_SHIFT)
+#define TCO_QUAD0_DEBUG0_GET_all_sectors_written_set3(tco_quad0_debug0) \
+ ((tco_quad0_debug0 & TCO_QUAD0_DEBUG0_all_sectors_written_set3_MASK) >> TCO_QUAD0_DEBUG0_all_sectors_written_set3_SHIFT)
+#define TCO_QUAD0_DEBUG0_GET_all_sectors_written_set2(tco_quad0_debug0) \
+ ((tco_quad0_debug0 & TCO_QUAD0_DEBUG0_all_sectors_written_set2_MASK) >> TCO_QUAD0_DEBUG0_all_sectors_written_set2_SHIFT)
+#define TCO_QUAD0_DEBUG0_GET_all_sectors_written_set1(tco_quad0_debug0) \
+ ((tco_quad0_debug0 & TCO_QUAD0_DEBUG0_all_sectors_written_set1_MASK) >> TCO_QUAD0_DEBUG0_all_sectors_written_set1_SHIFT)
+#define TCO_QUAD0_DEBUG0_GET_all_sectors_written_set0(tco_quad0_debug0) \
+ ((tco_quad0_debug0 & TCO_QUAD0_DEBUG0_all_sectors_written_set0_MASK) >> TCO_QUAD0_DEBUG0_all_sectors_written_set0_SHIFT)
+#define TCO_QUAD0_DEBUG0_GET_busy(tco_quad0_debug0) \
+ ((tco_quad0_debug0 & TCO_QUAD0_DEBUG0_busy_MASK) >> TCO_QUAD0_DEBUG0_busy_SHIFT)
+
+#define TCO_QUAD0_DEBUG0_SET_rl_sg_sector_format(tco_quad0_debug0_reg, rl_sg_sector_format) \
+ tco_quad0_debug0_reg = (tco_quad0_debug0_reg & ~TCO_QUAD0_DEBUG0_rl_sg_sector_format_MASK) | (rl_sg_sector_format << TCO_QUAD0_DEBUG0_rl_sg_sector_format_SHIFT)
+#define TCO_QUAD0_DEBUG0_SET_rl_sg_end_of_sample(tco_quad0_debug0_reg, rl_sg_end_of_sample) \
+ tco_quad0_debug0_reg = (tco_quad0_debug0_reg & ~TCO_QUAD0_DEBUG0_rl_sg_end_of_sample_MASK) | (rl_sg_end_of_sample << TCO_QUAD0_DEBUG0_rl_sg_end_of_sample_SHIFT)
+#define TCO_QUAD0_DEBUG0_SET_rl_sg_rtr(tco_quad0_debug0_reg, rl_sg_rtr) \
+ tco_quad0_debug0_reg = (tco_quad0_debug0_reg & ~TCO_QUAD0_DEBUG0_rl_sg_rtr_MASK) | (rl_sg_rtr << TCO_QUAD0_DEBUG0_rl_sg_rtr_SHIFT)
+#define TCO_QUAD0_DEBUG0_SET_rl_sg_rts(tco_quad0_debug0_reg, rl_sg_rts) \
+ tco_quad0_debug0_reg = (tco_quad0_debug0_reg & ~TCO_QUAD0_DEBUG0_rl_sg_rts_MASK) | (rl_sg_rts << TCO_QUAD0_DEBUG0_rl_sg_rts_SHIFT)
+#define TCO_QUAD0_DEBUG0_SET_sg_crd_end_of_sample(tco_quad0_debug0_reg, sg_crd_end_of_sample) \
+ tco_quad0_debug0_reg = (tco_quad0_debug0_reg & ~TCO_QUAD0_DEBUG0_sg_crd_end_of_sample_MASK) | (sg_crd_end_of_sample << TCO_QUAD0_DEBUG0_sg_crd_end_of_sample_SHIFT)
+#define TCO_QUAD0_DEBUG0_SET_sg_crd_rtr(tco_quad0_debug0_reg, sg_crd_rtr) \
+ tco_quad0_debug0_reg = (tco_quad0_debug0_reg & ~TCO_QUAD0_DEBUG0_sg_crd_rtr_MASK) | (sg_crd_rtr << TCO_QUAD0_DEBUG0_sg_crd_rtr_SHIFT)
+#define TCO_QUAD0_DEBUG0_SET_sg_crd_rts(tco_quad0_debug0_reg, sg_crd_rts) \
+ tco_quad0_debug0_reg = (tco_quad0_debug0_reg & ~TCO_QUAD0_DEBUG0_sg_crd_rts_MASK) | (sg_crd_rts << TCO_QUAD0_DEBUG0_sg_crd_rts_SHIFT)
+#define TCO_QUAD0_DEBUG0_SET_stageN1_valid_q(tco_quad0_debug0_reg, stagen1_valid_q) \
+ tco_quad0_debug0_reg = (tco_quad0_debug0_reg & ~TCO_QUAD0_DEBUG0_stageN1_valid_q_MASK) | (stagen1_valid_q << TCO_QUAD0_DEBUG0_stageN1_valid_q_SHIFT)
+#define TCO_QUAD0_DEBUG0_SET_read_cache_q(tco_quad0_debug0_reg, read_cache_q) \
+ tco_quad0_debug0_reg = (tco_quad0_debug0_reg & ~TCO_QUAD0_DEBUG0_read_cache_q_MASK) | (read_cache_q << TCO_QUAD0_DEBUG0_read_cache_q_SHIFT)
+#define TCO_QUAD0_DEBUG0_SET_cache_read_RTR(tco_quad0_debug0_reg, cache_read_rtr) \
+ tco_quad0_debug0_reg = (tco_quad0_debug0_reg & ~TCO_QUAD0_DEBUG0_cache_read_RTR_MASK) | (cache_read_rtr << TCO_QUAD0_DEBUG0_cache_read_RTR_SHIFT)
+#define TCO_QUAD0_DEBUG0_SET_all_sectors_written_set3(tco_quad0_debug0_reg, all_sectors_written_set3) \
+ tco_quad0_debug0_reg = (tco_quad0_debug0_reg & ~TCO_QUAD0_DEBUG0_all_sectors_written_set3_MASK) | (all_sectors_written_set3 << TCO_QUAD0_DEBUG0_all_sectors_written_set3_SHIFT)
+#define TCO_QUAD0_DEBUG0_SET_all_sectors_written_set2(tco_quad0_debug0_reg, all_sectors_written_set2) \
+ tco_quad0_debug0_reg = (tco_quad0_debug0_reg & ~TCO_QUAD0_DEBUG0_all_sectors_written_set2_MASK) | (all_sectors_written_set2 << TCO_QUAD0_DEBUG0_all_sectors_written_set2_SHIFT)
+#define TCO_QUAD0_DEBUG0_SET_all_sectors_written_set1(tco_quad0_debug0_reg, all_sectors_written_set1) \
+ tco_quad0_debug0_reg = (tco_quad0_debug0_reg & ~TCO_QUAD0_DEBUG0_all_sectors_written_set1_MASK) | (all_sectors_written_set1 << TCO_QUAD0_DEBUG0_all_sectors_written_set1_SHIFT)
+#define TCO_QUAD0_DEBUG0_SET_all_sectors_written_set0(tco_quad0_debug0_reg, all_sectors_written_set0) \
+ tco_quad0_debug0_reg = (tco_quad0_debug0_reg & ~TCO_QUAD0_DEBUG0_all_sectors_written_set0_MASK) | (all_sectors_written_set0 << TCO_QUAD0_DEBUG0_all_sectors_written_set0_SHIFT)
+#define TCO_QUAD0_DEBUG0_SET_busy(tco_quad0_debug0_reg, busy) \
+ tco_quad0_debug0_reg = (tco_quad0_debug0_reg & ~TCO_QUAD0_DEBUG0_busy_MASK) | (busy << TCO_QUAD0_DEBUG0_busy_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tco_quad0_debug0_t {
+ unsigned int rl_sg_sector_format : TCO_QUAD0_DEBUG0_rl_sg_sector_format_SIZE;
+ unsigned int rl_sg_end_of_sample : TCO_QUAD0_DEBUG0_rl_sg_end_of_sample_SIZE;
+ unsigned int rl_sg_rtr : TCO_QUAD0_DEBUG0_rl_sg_rtr_SIZE;
+ unsigned int rl_sg_rts : TCO_QUAD0_DEBUG0_rl_sg_rts_SIZE;
+ unsigned int sg_crd_end_of_sample : TCO_QUAD0_DEBUG0_sg_crd_end_of_sample_SIZE;
+ unsigned int sg_crd_rtr : TCO_QUAD0_DEBUG0_sg_crd_rtr_SIZE;
+ unsigned int sg_crd_rts : TCO_QUAD0_DEBUG0_sg_crd_rts_SIZE;
+ unsigned int : 2;
+ unsigned int stagen1_valid_q : TCO_QUAD0_DEBUG0_stageN1_valid_q_SIZE;
+ unsigned int : 7;
+ unsigned int read_cache_q : TCO_QUAD0_DEBUG0_read_cache_q_SIZE;
+ unsigned int cache_read_rtr : TCO_QUAD0_DEBUG0_cache_read_RTR_SIZE;
+ unsigned int all_sectors_written_set3 : TCO_QUAD0_DEBUG0_all_sectors_written_set3_SIZE;
+ unsigned int all_sectors_written_set2 : TCO_QUAD0_DEBUG0_all_sectors_written_set2_SIZE;
+ unsigned int all_sectors_written_set1 : TCO_QUAD0_DEBUG0_all_sectors_written_set1_SIZE;
+ unsigned int all_sectors_written_set0 : TCO_QUAD0_DEBUG0_all_sectors_written_set0_SIZE;
+ unsigned int busy : TCO_QUAD0_DEBUG0_busy_SIZE;
+ unsigned int : 1;
+ } tco_quad0_debug0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tco_quad0_debug0_t {
+ unsigned int : 1;
+ unsigned int busy : TCO_QUAD0_DEBUG0_busy_SIZE;
+ unsigned int all_sectors_written_set0 : TCO_QUAD0_DEBUG0_all_sectors_written_set0_SIZE;
+ unsigned int all_sectors_written_set1 : TCO_QUAD0_DEBUG0_all_sectors_written_set1_SIZE;
+ unsigned int all_sectors_written_set2 : TCO_QUAD0_DEBUG0_all_sectors_written_set2_SIZE;
+ unsigned int all_sectors_written_set3 : TCO_QUAD0_DEBUG0_all_sectors_written_set3_SIZE;
+ unsigned int cache_read_rtr : TCO_QUAD0_DEBUG0_cache_read_RTR_SIZE;
+ unsigned int read_cache_q : TCO_QUAD0_DEBUG0_read_cache_q_SIZE;
+ unsigned int : 7;
+ unsigned int stagen1_valid_q : TCO_QUAD0_DEBUG0_stageN1_valid_q_SIZE;
+ unsigned int : 2;
+ unsigned int sg_crd_rts : TCO_QUAD0_DEBUG0_sg_crd_rts_SIZE;
+ unsigned int sg_crd_rtr : TCO_QUAD0_DEBUG0_sg_crd_rtr_SIZE;
+ unsigned int sg_crd_end_of_sample : TCO_QUAD0_DEBUG0_sg_crd_end_of_sample_SIZE;
+ unsigned int rl_sg_rts : TCO_QUAD0_DEBUG0_rl_sg_rts_SIZE;
+ unsigned int rl_sg_rtr : TCO_QUAD0_DEBUG0_rl_sg_rtr_SIZE;
+ unsigned int rl_sg_end_of_sample : TCO_QUAD0_DEBUG0_rl_sg_end_of_sample_SIZE;
+ unsigned int rl_sg_sector_format : TCO_QUAD0_DEBUG0_rl_sg_sector_format_SIZE;
+ } tco_quad0_debug0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tco_quad0_debug0_t f;
+} tco_quad0_debug0_u;
+
+
+/*
+ * TCO_QUAD0_DEBUG1 struct
+ */
+
+#define TCO_QUAD0_DEBUG1_fifo_busy_SIZE 1
+#define TCO_QUAD0_DEBUG1_empty_SIZE 1
+#define TCO_QUAD0_DEBUG1_full_SIZE 1
+#define TCO_QUAD0_DEBUG1_write_enable_SIZE 1
+#define TCO_QUAD0_DEBUG1_fifo_write_ptr_SIZE 7
+#define TCO_QUAD0_DEBUG1_fifo_read_ptr_SIZE 7
+#define TCO_QUAD0_DEBUG1_cache_read_busy_SIZE 1
+#define TCO_QUAD0_DEBUG1_latency_fifo_busy_SIZE 1
+#define TCO_QUAD0_DEBUG1_input_quad_busy_SIZE 1
+#define TCO_QUAD0_DEBUG1_tco_quad_pipe_busy_SIZE 1
+#define TCO_QUAD0_DEBUG1_TCB_TCO_rtr_d_SIZE 1
+#define TCO_QUAD0_DEBUG1_TCB_TCO_xfc_q_SIZE 1
+#define TCO_QUAD0_DEBUG1_rl_sg_rtr_SIZE 1
+#define TCO_QUAD0_DEBUG1_rl_sg_rts_SIZE 1
+#define TCO_QUAD0_DEBUG1_sg_crd_rtr_SIZE 1
+#define TCO_QUAD0_DEBUG1_sg_crd_rts_SIZE 1
+#define TCO_QUAD0_DEBUG1_TCO_TCB_read_xfc_SIZE 1
+
+#define TCO_QUAD0_DEBUG1_fifo_busy_SHIFT 0
+#define TCO_QUAD0_DEBUG1_empty_SHIFT 1
+#define TCO_QUAD0_DEBUG1_full_SHIFT 2
+#define TCO_QUAD0_DEBUG1_write_enable_SHIFT 3
+#define TCO_QUAD0_DEBUG1_fifo_write_ptr_SHIFT 4
+#define TCO_QUAD0_DEBUG1_fifo_read_ptr_SHIFT 11
+#define TCO_QUAD0_DEBUG1_cache_read_busy_SHIFT 20
+#define TCO_QUAD0_DEBUG1_latency_fifo_busy_SHIFT 21
+#define TCO_QUAD0_DEBUG1_input_quad_busy_SHIFT 22
+#define TCO_QUAD0_DEBUG1_tco_quad_pipe_busy_SHIFT 23
+#define TCO_QUAD0_DEBUG1_TCB_TCO_rtr_d_SHIFT 24
+#define TCO_QUAD0_DEBUG1_TCB_TCO_xfc_q_SHIFT 25
+#define TCO_QUAD0_DEBUG1_rl_sg_rtr_SHIFT 26
+#define TCO_QUAD0_DEBUG1_rl_sg_rts_SHIFT 27
+#define TCO_QUAD0_DEBUG1_sg_crd_rtr_SHIFT 28
+#define TCO_QUAD0_DEBUG1_sg_crd_rts_SHIFT 29
+#define TCO_QUAD0_DEBUG1_TCO_TCB_read_xfc_SHIFT 30
+
+#define TCO_QUAD0_DEBUG1_fifo_busy_MASK 0x00000001
+#define TCO_QUAD0_DEBUG1_empty_MASK 0x00000002
+#define TCO_QUAD0_DEBUG1_full_MASK 0x00000004
+#define TCO_QUAD0_DEBUG1_write_enable_MASK 0x00000008
+#define TCO_QUAD0_DEBUG1_fifo_write_ptr_MASK 0x000007f0
+#define TCO_QUAD0_DEBUG1_fifo_read_ptr_MASK 0x0003f800
+#define TCO_QUAD0_DEBUG1_cache_read_busy_MASK 0x00100000
+#define TCO_QUAD0_DEBUG1_latency_fifo_busy_MASK 0x00200000
+#define TCO_QUAD0_DEBUG1_input_quad_busy_MASK 0x00400000
+#define TCO_QUAD0_DEBUG1_tco_quad_pipe_busy_MASK 0x00800000
+#define TCO_QUAD0_DEBUG1_TCB_TCO_rtr_d_MASK 0x01000000
+#define TCO_QUAD0_DEBUG1_TCB_TCO_xfc_q_MASK 0x02000000
+#define TCO_QUAD0_DEBUG1_rl_sg_rtr_MASK 0x04000000
+#define TCO_QUAD0_DEBUG1_rl_sg_rts_MASK 0x08000000
+#define TCO_QUAD0_DEBUG1_sg_crd_rtr_MASK 0x10000000
+#define TCO_QUAD0_DEBUG1_sg_crd_rts_MASK 0x20000000
+#define TCO_QUAD0_DEBUG1_TCO_TCB_read_xfc_MASK 0x40000000
+
+#define TCO_QUAD0_DEBUG1_MASK \
+ (TCO_QUAD0_DEBUG1_fifo_busy_MASK | \
+ TCO_QUAD0_DEBUG1_empty_MASK | \
+ TCO_QUAD0_DEBUG1_full_MASK | \
+ TCO_QUAD0_DEBUG1_write_enable_MASK | \
+ TCO_QUAD0_DEBUG1_fifo_write_ptr_MASK | \
+ TCO_QUAD0_DEBUG1_fifo_read_ptr_MASK | \
+ TCO_QUAD0_DEBUG1_cache_read_busy_MASK | \
+ TCO_QUAD0_DEBUG1_latency_fifo_busy_MASK | \
+ TCO_QUAD0_DEBUG1_input_quad_busy_MASK | \
+ TCO_QUAD0_DEBUG1_tco_quad_pipe_busy_MASK | \
+ TCO_QUAD0_DEBUG1_TCB_TCO_rtr_d_MASK | \
+ TCO_QUAD0_DEBUG1_TCB_TCO_xfc_q_MASK | \
+ TCO_QUAD0_DEBUG1_rl_sg_rtr_MASK | \
+ TCO_QUAD0_DEBUG1_rl_sg_rts_MASK | \
+ TCO_QUAD0_DEBUG1_sg_crd_rtr_MASK | \
+ TCO_QUAD0_DEBUG1_sg_crd_rts_MASK | \
+ TCO_QUAD0_DEBUG1_TCO_TCB_read_xfc_MASK)
+
+#define TCO_QUAD0_DEBUG1(fifo_busy, empty, full, write_enable, fifo_write_ptr, fifo_read_ptr, cache_read_busy, latency_fifo_busy, input_quad_busy, tco_quad_pipe_busy, tcb_tco_rtr_d, tcb_tco_xfc_q, rl_sg_rtr, rl_sg_rts, sg_crd_rtr, sg_crd_rts, tco_tcb_read_xfc) \
+ ((fifo_busy << TCO_QUAD0_DEBUG1_fifo_busy_SHIFT) | \
+ (empty << TCO_QUAD0_DEBUG1_empty_SHIFT) | \
+ (full << TCO_QUAD0_DEBUG1_full_SHIFT) | \
+ (write_enable << TCO_QUAD0_DEBUG1_write_enable_SHIFT) | \
+ (fifo_write_ptr << TCO_QUAD0_DEBUG1_fifo_write_ptr_SHIFT) | \
+ (fifo_read_ptr << TCO_QUAD0_DEBUG1_fifo_read_ptr_SHIFT) | \
+ (cache_read_busy << TCO_QUAD0_DEBUG1_cache_read_busy_SHIFT) | \
+ (latency_fifo_busy << TCO_QUAD0_DEBUG1_latency_fifo_busy_SHIFT) | \
+ (input_quad_busy << TCO_QUAD0_DEBUG1_input_quad_busy_SHIFT) | \
+ (tco_quad_pipe_busy << TCO_QUAD0_DEBUG1_tco_quad_pipe_busy_SHIFT) | \
+ (tcb_tco_rtr_d << TCO_QUAD0_DEBUG1_TCB_TCO_rtr_d_SHIFT) | \
+ (tcb_tco_xfc_q << TCO_QUAD0_DEBUG1_TCB_TCO_xfc_q_SHIFT) | \
+ (rl_sg_rtr << TCO_QUAD0_DEBUG1_rl_sg_rtr_SHIFT) | \
+ (rl_sg_rts << TCO_QUAD0_DEBUG1_rl_sg_rts_SHIFT) | \
+ (sg_crd_rtr << TCO_QUAD0_DEBUG1_sg_crd_rtr_SHIFT) | \
+ (sg_crd_rts << TCO_QUAD0_DEBUG1_sg_crd_rts_SHIFT) | \
+ (tco_tcb_read_xfc << TCO_QUAD0_DEBUG1_TCO_TCB_read_xfc_SHIFT))
+
+#define TCO_QUAD0_DEBUG1_GET_fifo_busy(tco_quad0_debug1) \
+ ((tco_quad0_debug1 & TCO_QUAD0_DEBUG1_fifo_busy_MASK) >> TCO_QUAD0_DEBUG1_fifo_busy_SHIFT)
+#define TCO_QUAD0_DEBUG1_GET_empty(tco_quad0_debug1) \
+ ((tco_quad0_debug1 & TCO_QUAD0_DEBUG1_empty_MASK) >> TCO_QUAD0_DEBUG1_empty_SHIFT)
+#define TCO_QUAD0_DEBUG1_GET_full(tco_quad0_debug1) \
+ ((tco_quad0_debug1 & TCO_QUAD0_DEBUG1_full_MASK) >> TCO_QUAD0_DEBUG1_full_SHIFT)
+#define TCO_QUAD0_DEBUG1_GET_write_enable(tco_quad0_debug1) \
+ ((tco_quad0_debug1 & TCO_QUAD0_DEBUG1_write_enable_MASK) >> TCO_QUAD0_DEBUG1_write_enable_SHIFT)
+#define TCO_QUAD0_DEBUG1_GET_fifo_write_ptr(tco_quad0_debug1) \
+ ((tco_quad0_debug1 & TCO_QUAD0_DEBUG1_fifo_write_ptr_MASK) >> TCO_QUAD0_DEBUG1_fifo_write_ptr_SHIFT)
+#define TCO_QUAD0_DEBUG1_GET_fifo_read_ptr(tco_quad0_debug1) \
+ ((tco_quad0_debug1 & TCO_QUAD0_DEBUG1_fifo_read_ptr_MASK) >> TCO_QUAD0_DEBUG1_fifo_read_ptr_SHIFT)
+#define TCO_QUAD0_DEBUG1_GET_cache_read_busy(tco_quad0_debug1) \
+ ((tco_quad0_debug1 & TCO_QUAD0_DEBUG1_cache_read_busy_MASK) >> TCO_QUAD0_DEBUG1_cache_read_busy_SHIFT)
+#define TCO_QUAD0_DEBUG1_GET_latency_fifo_busy(tco_quad0_debug1) \
+ ((tco_quad0_debug1 & TCO_QUAD0_DEBUG1_latency_fifo_busy_MASK) >> TCO_QUAD0_DEBUG1_latency_fifo_busy_SHIFT)
+#define TCO_QUAD0_DEBUG1_GET_input_quad_busy(tco_quad0_debug1) \
+ ((tco_quad0_debug1 & TCO_QUAD0_DEBUG1_input_quad_busy_MASK) >> TCO_QUAD0_DEBUG1_input_quad_busy_SHIFT)
+#define TCO_QUAD0_DEBUG1_GET_tco_quad_pipe_busy(tco_quad0_debug1) \
+ ((tco_quad0_debug1 & TCO_QUAD0_DEBUG1_tco_quad_pipe_busy_MASK) >> TCO_QUAD0_DEBUG1_tco_quad_pipe_busy_SHIFT)
+#define TCO_QUAD0_DEBUG1_GET_TCB_TCO_rtr_d(tco_quad0_debug1) \
+ ((tco_quad0_debug1 & TCO_QUAD0_DEBUG1_TCB_TCO_rtr_d_MASK) >> TCO_QUAD0_DEBUG1_TCB_TCO_rtr_d_SHIFT)
+#define TCO_QUAD0_DEBUG1_GET_TCB_TCO_xfc_q(tco_quad0_debug1) \
+ ((tco_quad0_debug1 & TCO_QUAD0_DEBUG1_TCB_TCO_xfc_q_MASK) >> TCO_QUAD0_DEBUG1_TCB_TCO_xfc_q_SHIFT)
+#define TCO_QUAD0_DEBUG1_GET_rl_sg_rtr(tco_quad0_debug1) \
+ ((tco_quad0_debug1 & TCO_QUAD0_DEBUG1_rl_sg_rtr_MASK) >> TCO_QUAD0_DEBUG1_rl_sg_rtr_SHIFT)
+#define TCO_QUAD0_DEBUG1_GET_rl_sg_rts(tco_quad0_debug1) \
+ ((tco_quad0_debug1 & TCO_QUAD0_DEBUG1_rl_sg_rts_MASK) >> TCO_QUAD0_DEBUG1_rl_sg_rts_SHIFT)
+#define TCO_QUAD0_DEBUG1_GET_sg_crd_rtr(tco_quad0_debug1) \
+ ((tco_quad0_debug1 & TCO_QUAD0_DEBUG1_sg_crd_rtr_MASK) >> TCO_QUAD0_DEBUG1_sg_crd_rtr_SHIFT)
+#define TCO_QUAD0_DEBUG1_GET_sg_crd_rts(tco_quad0_debug1) \
+ ((tco_quad0_debug1 & TCO_QUAD0_DEBUG1_sg_crd_rts_MASK) >> TCO_QUAD0_DEBUG1_sg_crd_rts_SHIFT)
+#define TCO_QUAD0_DEBUG1_GET_TCO_TCB_read_xfc(tco_quad0_debug1) \
+ ((tco_quad0_debug1 & TCO_QUAD0_DEBUG1_TCO_TCB_read_xfc_MASK) >> TCO_QUAD0_DEBUG1_TCO_TCB_read_xfc_SHIFT)
+
+#define TCO_QUAD0_DEBUG1_SET_fifo_busy(tco_quad0_debug1_reg, fifo_busy) \
+ tco_quad0_debug1_reg = (tco_quad0_debug1_reg & ~TCO_QUAD0_DEBUG1_fifo_busy_MASK) | (fifo_busy << TCO_QUAD0_DEBUG1_fifo_busy_SHIFT)
+#define TCO_QUAD0_DEBUG1_SET_empty(tco_quad0_debug1_reg, empty) \
+ tco_quad0_debug1_reg = (tco_quad0_debug1_reg & ~TCO_QUAD0_DEBUG1_empty_MASK) | (empty << TCO_QUAD0_DEBUG1_empty_SHIFT)
+#define TCO_QUAD0_DEBUG1_SET_full(tco_quad0_debug1_reg, full) \
+ tco_quad0_debug1_reg = (tco_quad0_debug1_reg & ~TCO_QUAD0_DEBUG1_full_MASK) | (full << TCO_QUAD0_DEBUG1_full_SHIFT)
+#define TCO_QUAD0_DEBUG1_SET_write_enable(tco_quad0_debug1_reg, write_enable) \
+ tco_quad0_debug1_reg = (tco_quad0_debug1_reg & ~TCO_QUAD0_DEBUG1_write_enable_MASK) | (write_enable << TCO_QUAD0_DEBUG1_write_enable_SHIFT)
+#define TCO_QUAD0_DEBUG1_SET_fifo_write_ptr(tco_quad0_debug1_reg, fifo_write_ptr) \
+ tco_quad0_debug1_reg = (tco_quad0_debug1_reg & ~TCO_QUAD0_DEBUG1_fifo_write_ptr_MASK) | (fifo_write_ptr << TCO_QUAD0_DEBUG1_fifo_write_ptr_SHIFT)
+#define TCO_QUAD0_DEBUG1_SET_fifo_read_ptr(tco_quad0_debug1_reg, fifo_read_ptr) \
+ tco_quad0_debug1_reg = (tco_quad0_debug1_reg & ~TCO_QUAD0_DEBUG1_fifo_read_ptr_MASK) | (fifo_read_ptr << TCO_QUAD0_DEBUG1_fifo_read_ptr_SHIFT)
+#define TCO_QUAD0_DEBUG1_SET_cache_read_busy(tco_quad0_debug1_reg, cache_read_busy) \
+ tco_quad0_debug1_reg = (tco_quad0_debug1_reg & ~TCO_QUAD0_DEBUG1_cache_read_busy_MASK) | (cache_read_busy << TCO_QUAD0_DEBUG1_cache_read_busy_SHIFT)
+#define TCO_QUAD0_DEBUG1_SET_latency_fifo_busy(tco_quad0_debug1_reg, latency_fifo_busy) \
+ tco_quad0_debug1_reg = (tco_quad0_debug1_reg & ~TCO_QUAD0_DEBUG1_latency_fifo_busy_MASK) | (latency_fifo_busy << TCO_QUAD0_DEBUG1_latency_fifo_busy_SHIFT)
+#define TCO_QUAD0_DEBUG1_SET_input_quad_busy(tco_quad0_debug1_reg, input_quad_busy) \
+ tco_quad0_debug1_reg = (tco_quad0_debug1_reg & ~TCO_QUAD0_DEBUG1_input_quad_busy_MASK) | (input_quad_busy << TCO_QUAD0_DEBUG1_input_quad_busy_SHIFT)
+#define TCO_QUAD0_DEBUG1_SET_tco_quad_pipe_busy(tco_quad0_debug1_reg, tco_quad_pipe_busy) \
+ tco_quad0_debug1_reg = (tco_quad0_debug1_reg & ~TCO_QUAD0_DEBUG1_tco_quad_pipe_busy_MASK) | (tco_quad_pipe_busy << TCO_QUAD0_DEBUG1_tco_quad_pipe_busy_SHIFT)
+#define TCO_QUAD0_DEBUG1_SET_TCB_TCO_rtr_d(tco_quad0_debug1_reg, tcb_tco_rtr_d) \
+ tco_quad0_debug1_reg = (tco_quad0_debug1_reg & ~TCO_QUAD0_DEBUG1_TCB_TCO_rtr_d_MASK) | (tcb_tco_rtr_d << TCO_QUAD0_DEBUG1_TCB_TCO_rtr_d_SHIFT)
+#define TCO_QUAD0_DEBUG1_SET_TCB_TCO_xfc_q(tco_quad0_debug1_reg, tcb_tco_xfc_q) \
+ tco_quad0_debug1_reg = (tco_quad0_debug1_reg & ~TCO_QUAD0_DEBUG1_TCB_TCO_xfc_q_MASK) | (tcb_tco_xfc_q << TCO_QUAD0_DEBUG1_TCB_TCO_xfc_q_SHIFT)
+#define TCO_QUAD0_DEBUG1_SET_rl_sg_rtr(tco_quad0_debug1_reg, rl_sg_rtr) \
+ tco_quad0_debug1_reg = (tco_quad0_debug1_reg & ~TCO_QUAD0_DEBUG1_rl_sg_rtr_MASK) | (rl_sg_rtr << TCO_QUAD0_DEBUG1_rl_sg_rtr_SHIFT)
+#define TCO_QUAD0_DEBUG1_SET_rl_sg_rts(tco_quad0_debug1_reg, rl_sg_rts) \
+ tco_quad0_debug1_reg = (tco_quad0_debug1_reg & ~TCO_QUAD0_DEBUG1_rl_sg_rts_MASK) | (rl_sg_rts << TCO_QUAD0_DEBUG1_rl_sg_rts_SHIFT)
+#define TCO_QUAD0_DEBUG1_SET_sg_crd_rtr(tco_quad0_debug1_reg, sg_crd_rtr) \
+ tco_quad0_debug1_reg = (tco_quad0_debug1_reg & ~TCO_QUAD0_DEBUG1_sg_crd_rtr_MASK) | (sg_crd_rtr << TCO_QUAD0_DEBUG1_sg_crd_rtr_SHIFT)
+#define TCO_QUAD0_DEBUG1_SET_sg_crd_rts(tco_quad0_debug1_reg, sg_crd_rts) \
+ tco_quad0_debug1_reg = (tco_quad0_debug1_reg & ~TCO_QUAD0_DEBUG1_sg_crd_rts_MASK) | (sg_crd_rts << TCO_QUAD0_DEBUG1_sg_crd_rts_SHIFT)
+#define TCO_QUAD0_DEBUG1_SET_TCO_TCB_read_xfc(tco_quad0_debug1_reg, tco_tcb_read_xfc) \
+ tco_quad0_debug1_reg = (tco_quad0_debug1_reg & ~TCO_QUAD0_DEBUG1_TCO_TCB_read_xfc_MASK) | (tco_tcb_read_xfc << TCO_QUAD0_DEBUG1_TCO_TCB_read_xfc_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tco_quad0_debug1_t {
+ unsigned int fifo_busy : TCO_QUAD0_DEBUG1_fifo_busy_SIZE;
+ unsigned int empty : TCO_QUAD0_DEBUG1_empty_SIZE;
+ unsigned int full : TCO_QUAD0_DEBUG1_full_SIZE;
+ unsigned int write_enable : TCO_QUAD0_DEBUG1_write_enable_SIZE;
+ unsigned int fifo_write_ptr : TCO_QUAD0_DEBUG1_fifo_write_ptr_SIZE;
+ unsigned int fifo_read_ptr : TCO_QUAD0_DEBUG1_fifo_read_ptr_SIZE;
+ unsigned int : 2;
+ unsigned int cache_read_busy : TCO_QUAD0_DEBUG1_cache_read_busy_SIZE;
+ unsigned int latency_fifo_busy : TCO_QUAD0_DEBUG1_latency_fifo_busy_SIZE;
+ unsigned int input_quad_busy : TCO_QUAD0_DEBUG1_input_quad_busy_SIZE;
+ unsigned int tco_quad_pipe_busy : TCO_QUAD0_DEBUG1_tco_quad_pipe_busy_SIZE;
+ unsigned int tcb_tco_rtr_d : TCO_QUAD0_DEBUG1_TCB_TCO_rtr_d_SIZE;
+ unsigned int tcb_tco_xfc_q : TCO_QUAD0_DEBUG1_TCB_TCO_xfc_q_SIZE;
+ unsigned int rl_sg_rtr : TCO_QUAD0_DEBUG1_rl_sg_rtr_SIZE;
+ unsigned int rl_sg_rts : TCO_QUAD0_DEBUG1_rl_sg_rts_SIZE;
+ unsigned int sg_crd_rtr : TCO_QUAD0_DEBUG1_sg_crd_rtr_SIZE;
+ unsigned int sg_crd_rts : TCO_QUAD0_DEBUG1_sg_crd_rts_SIZE;
+ unsigned int tco_tcb_read_xfc : TCO_QUAD0_DEBUG1_TCO_TCB_read_xfc_SIZE;
+ unsigned int : 1;
+ } tco_quad0_debug1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tco_quad0_debug1_t {
+ unsigned int : 1;
+ unsigned int tco_tcb_read_xfc : TCO_QUAD0_DEBUG1_TCO_TCB_read_xfc_SIZE;
+ unsigned int sg_crd_rts : TCO_QUAD0_DEBUG1_sg_crd_rts_SIZE;
+ unsigned int sg_crd_rtr : TCO_QUAD0_DEBUG1_sg_crd_rtr_SIZE;
+ unsigned int rl_sg_rts : TCO_QUAD0_DEBUG1_rl_sg_rts_SIZE;
+ unsigned int rl_sg_rtr : TCO_QUAD0_DEBUG1_rl_sg_rtr_SIZE;
+ unsigned int tcb_tco_xfc_q : TCO_QUAD0_DEBUG1_TCB_TCO_xfc_q_SIZE;
+ unsigned int tcb_tco_rtr_d : TCO_QUAD0_DEBUG1_TCB_TCO_rtr_d_SIZE;
+ unsigned int tco_quad_pipe_busy : TCO_QUAD0_DEBUG1_tco_quad_pipe_busy_SIZE;
+ unsigned int input_quad_busy : TCO_QUAD0_DEBUG1_input_quad_busy_SIZE;
+ unsigned int latency_fifo_busy : TCO_QUAD0_DEBUG1_latency_fifo_busy_SIZE;
+ unsigned int cache_read_busy : TCO_QUAD0_DEBUG1_cache_read_busy_SIZE;
+ unsigned int : 2;
+ unsigned int fifo_read_ptr : TCO_QUAD0_DEBUG1_fifo_read_ptr_SIZE;
+ unsigned int fifo_write_ptr : TCO_QUAD0_DEBUG1_fifo_write_ptr_SIZE;
+ unsigned int write_enable : TCO_QUAD0_DEBUG1_write_enable_SIZE;
+ unsigned int full : TCO_QUAD0_DEBUG1_full_SIZE;
+ unsigned int empty : TCO_QUAD0_DEBUG1_empty_SIZE;
+ unsigned int fifo_busy : TCO_QUAD0_DEBUG1_fifo_busy_SIZE;
+ } tco_quad0_debug1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tco_quad0_debug1_t f;
+} tco_quad0_debug1_u;
+
+
+#endif
+
+
+#if !defined (_TC_FIDDLE_H)
+#define _TC_FIDDLE_H
+
+/*******************************************************
+ * Enums
+ *******************************************************/
+
+
+/*******************************************************
+ * Values
+ *******************************************************/
+
+
+/*******************************************************
+ * Structures
+ *******************************************************/
+
+#endif
+
+
+#if !defined (_SC_FIDDLE_H)
+#define _SC_FIDDLE_H
+
+/*******************************************************
+ * Enums
+ *******************************************************/
+
+
+/*******************************************************
+ * Values
+ *******************************************************/
+
+
+/*******************************************************
+ * Structures
+ *******************************************************/
+
+#endif
+
+
+#if !defined (_BC_FIDDLE_H)
+#define _BC_FIDDLE_H
+
+/*******************************************************
+ * Enums
+ *******************************************************/
+
+
+/*******************************************************
+ * Values
+ *******************************************************/
+
+
+/*******************************************************
+ * Structures
+ *******************************************************/
+
+/*
+ * RB_SURFACE_INFO struct
+ */
+
+#define RB_SURFACE_INFO_SURFACE_PITCH_SIZE 14
+#define RB_SURFACE_INFO_MSAA_SAMPLES_SIZE 2
+
+#define RB_SURFACE_INFO_SURFACE_PITCH_SHIFT 0
+#define RB_SURFACE_INFO_MSAA_SAMPLES_SHIFT 14
+
+#define RB_SURFACE_INFO_SURFACE_PITCH_MASK 0x00003fff
+#define RB_SURFACE_INFO_MSAA_SAMPLES_MASK 0x0000c000
+
+#define RB_SURFACE_INFO_MASK \
+ (RB_SURFACE_INFO_SURFACE_PITCH_MASK | \
+ RB_SURFACE_INFO_MSAA_SAMPLES_MASK)
+
+#define RB_SURFACE_INFO(surface_pitch, msaa_samples) \
+ ((surface_pitch << RB_SURFACE_INFO_SURFACE_PITCH_SHIFT) | \
+ (msaa_samples << RB_SURFACE_INFO_MSAA_SAMPLES_SHIFT))
+
+#define RB_SURFACE_INFO_GET_SURFACE_PITCH(rb_surface_info) \
+ ((rb_surface_info & RB_SURFACE_INFO_SURFACE_PITCH_MASK) >> RB_SURFACE_INFO_SURFACE_PITCH_SHIFT)
+#define RB_SURFACE_INFO_GET_MSAA_SAMPLES(rb_surface_info) \
+ ((rb_surface_info & RB_SURFACE_INFO_MSAA_SAMPLES_MASK) >> RB_SURFACE_INFO_MSAA_SAMPLES_SHIFT)
+
+#define RB_SURFACE_INFO_SET_SURFACE_PITCH(rb_surface_info_reg, surface_pitch) \
+ rb_surface_info_reg = (rb_surface_info_reg & ~RB_SURFACE_INFO_SURFACE_PITCH_MASK) | (surface_pitch << RB_SURFACE_INFO_SURFACE_PITCH_SHIFT)
+#define RB_SURFACE_INFO_SET_MSAA_SAMPLES(rb_surface_info_reg, msaa_samples) \
+ rb_surface_info_reg = (rb_surface_info_reg & ~RB_SURFACE_INFO_MSAA_SAMPLES_MASK) | (msaa_samples << RB_SURFACE_INFO_MSAA_SAMPLES_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_surface_info_t {
+ unsigned int surface_pitch : RB_SURFACE_INFO_SURFACE_PITCH_SIZE;
+ unsigned int msaa_samples : RB_SURFACE_INFO_MSAA_SAMPLES_SIZE;
+ unsigned int : 16;
+ } rb_surface_info_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_surface_info_t {
+ unsigned int : 16;
+ unsigned int msaa_samples : RB_SURFACE_INFO_MSAA_SAMPLES_SIZE;
+ unsigned int surface_pitch : RB_SURFACE_INFO_SURFACE_PITCH_SIZE;
+ } rb_surface_info_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_surface_info_t f;
+} rb_surface_info_u;
+
+
+/*
+ * RB_COLOR_INFO struct
+ */
+
+#define RB_COLOR_INFO_COLOR_FORMAT_SIZE 4
+#define RB_COLOR_INFO_COLOR_ROUND_MODE_SIZE 2
+#define RB_COLOR_INFO_COLOR_LINEAR_SIZE 1
+#define RB_COLOR_INFO_COLOR_ENDIAN_SIZE 2
+#define RB_COLOR_INFO_COLOR_SWAP_SIZE 2
+#define RB_COLOR_INFO_COLOR_BASE_SIZE 20
+
+#define RB_COLOR_INFO_COLOR_FORMAT_SHIFT 0
+#define RB_COLOR_INFO_COLOR_ROUND_MODE_SHIFT 4
+#define RB_COLOR_INFO_COLOR_LINEAR_SHIFT 6
+#define RB_COLOR_INFO_COLOR_ENDIAN_SHIFT 7
+#define RB_COLOR_INFO_COLOR_SWAP_SHIFT 9
+#define RB_COLOR_INFO_COLOR_BASE_SHIFT 12
+
+#define RB_COLOR_INFO_COLOR_FORMAT_MASK 0x0000000f
+#define RB_COLOR_INFO_COLOR_ROUND_MODE_MASK 0x00000030
+#define RB_COLOR_INFO_COLOR_LINEAR_MASK 0x00000040
+#define RB_COLOR_INFO_COLOR_ENDIAN_MASK 0x00000180
+#define RB_COLOR_INFO_COLOR_SWAP_MASK 0x00000600
+#define RB_COLOR_INFO_COLOR_BASE_MASK 0xfffff000
+
+#define RB_COLOR_INFO_MASK \
+ (RB_COLOR_INFO_COLOR_FORMAT_MASK | \
+ RB_COLOR_INFO_COLOR_ROUND_MODE_MASK | \
+ RB_COLOR_INFO_COLOR_LINEAR_MASK | \
+ RB_COLOR_INFO_COLOR_ENDIAN_MASK | \
+ RB_COLOR_INFO_COLOR_SWAP_MASK | \
+ RB_COLOR_INFO_COLOR_BASE_MASK)
+
+#define RB_COLOR_INFO(color_format, color_round_mode, color_linear, color_endian, color_swap, color_base) \
+ ((color_format << RB_COLOR_INFO_COLOR_FORMAT_SHIFT) | \
+ (color_round_mode << RB_COLOR_INFO_COLOR_ROUND_MODE_SHIFT) | \
+ (color_linear << RB_COLOR_INFO_COLOR_LINEAR_SHIFT) | \
+ (color_endian << RB_COLOR_INFO_COLOR_ENDIAN_SHIFT) | \
+ (color_swap << RB_COLOR_INFO_COLOR_SWAP_SHIFT) | \
+ (color_base << RB_COLOR_INFO_COLOR_BASE_SHIFT))
+
+#define RB_COLOR_INFO_GET_COLOR_FORMAT(rb_color_info) \
+ ((rb_color_info & RB_COLOR_INFO_COLOR_FORMAT_MASK) >> RB_COLOR_INFO_COLOR_FORMAT_SHIFT)
+#define RB_COLOR_INFO_GET_COLOR_ROUND_MODE(rb_color_info) \
+ ((rb_color_info & RB_COLOR_INFO_COLOR_ROUND_MODE_MASK) >> RB_COLOR_INFO_COLOR_ROUND_MODE_SHIFT)
+#define RB_COLOR_INFO_GET_COLOR_LINEAR(rb_color_info) \
+ ((rb_color_info & RB_COLOR_INFO_COLOR_LINEAR_MASK) >> RB_COLOR_INFO_COLOR_LINEAR_SHIFT)
+#define RB_COLOR_INFO_GET_COLOR_ENDIAN(rb_color_info) \
+ ((rb_color_info & RB_COLOR_INFO_COLOR_ENDIAN_MASK) >> RB_COLOR_INFO_COLOR_ENDIAN_SHIFT)
+#define RB_COLOR_INFO_GET_COLOR_SWAP(rb_color_info) \
+ ((rb_color_info & RB_COLOR_INFO_COLOR_SWAP_MASK) >> RB_COLOR_INFO_COLOR_SWAP_SHIFT)
+#define RB_COLOR_INFO_GET_COLOR_BASE(rb_color_info) \
+ ((rb_color_info & RB_COLOR_INFO_COLOR_BASE_MASK) >> RB_COLOR_INFO_COLOR_BASE_SHIFT)
+
+#define RB_COLOR_INFO_SET_COLOR_FORMAT(rb_color_info_reg, color_format) \
+ rb_color_info_reg = (rb_color_info_reg & ~RB_COLOR_INFO_COLOR_FORMAT_MASK) | (color_format << RB_COLOR_INFO_COLOR_FORMAT_SHIFT)
+#define RB_COLOR_INFO_SET_COLOR_ROUND_MODE(rb_color_info_reg, color_round_mode) \
+ rb_color_info_reg = (rb_color_info_reg & ~RB_COLOR_INFO_COLOR_ROUND_MODE_MASK) | (color_round_mode << RB_COLOR_INFO_COLOR_ROUND_MODE_SHIFT)
+#define RB_COLOR_INFO_SET_COLOR_LINEAR(rb_color_info_reg, color_linear) \
+ rb_color_info_reg = (rb_color_info_reg & ~RB_COLOR_INFO_COLOR_LINEAR_MASK) | (color_linear << RB_COLOR_INFO_COLOR_LINEAR_SHIFT)
+#define RB_COLOR_INFO_SET_COLOR_ENDIAN(rb_color_info_reg, color_endian) \
+ rb_color_info_reg = (rb_color_info_reg & ~RB_COLOR_INFO_COLOR_ENDIAN_MASK) | (color_endian << RB_COLOR_INFO_COLOR_ENDIAN_SHIFT)
+#define RB_COLOR_INFO_SET_COLOR_SWAP(rb_color_info_reg, color_swap) \
+ rb_color_info_reg = (rb_color_info_reg & ~RB_COLOR_INFO_COLOR_SWAP_MASK) | (color_swap << RB_COLOR_INFO_COLOR_SWAP_SHIFT)
+#define RB_COLOR_INFO_SET_COLOR_BASE(rb_color_info_reg, color_base) \
+ rb_color_info_reg = (rb_color_info_reg & ~RB_COLOR_INFO_COLOR_BASE_MASK) | (color_base << RB_COLOR_INFO_COLOR_BASE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_color_info_t {
+ unsigned int color_format : RB_COLOR_INFO_COLOR_FORMAT_SIZE;
+ unsigned int color_round_mode : RB_COLOR_INFO_COLOR_ROUND_MODE_SIZE;
+ unsigned int color_linear : RB_COLOR_INFO_COLOR_LINEAR_SIZE;
+ unsigned int color_endian : RB_COLOR_INFO_COLOR_ENDIAN_SIZE;
+ unsigned int color_swap : RB_COLOR_INFO_COLOR_SWAP_SIZE;
+ unsigned int : 1;
+ unsigned int color_base : RB_COLOR_INFO_COLOR_BASE_SIZE;
+ } rb_color_info_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_color_info_t {
+ unsigned int color_base : RB_COLOR_INFO_COLOR_BASE_SIZE;
+ unsigned int : 1;
+ unsigned int color_swap : RB_COLOR_INFO_COLOR_SWAP_SIZE;
+ unsigned int color_endian : RB_COLOR_INFO_COLOR_ENDIAN_SIZE;
+ unsigned int color_linear : RB_COLOR_INFO_COLOR_LINEAR_SIZE;
+ unsigned int color_round_mode : RB_COLOR_INFO_COLOR_ROUND_MODE_SIZE;
+ unsigned int color_format : RB_COLOR_INFO_COLOR_FORMAT_SIZE;
+ } rb_color_info_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_color_info_t f;
+} rb_color_info_u;
+
+
+/*
+ * RB_DEPTH_INFO struct
+ */
+
+#define RB_DEPTH_INFO_DEPTH_FORMAT_SIZE 1
+#define RB_DEPTH_INFO_DEPTH_BASE_SIZE 20
+
+#define RB_DEPTH_INFO_DEPTH_FORMAT_SHIFT 0
+#define RB_DEPTH_INFO_DEPTH_BASE_SHIFT 12
+
+#define RB_DEPTH_INFO_DEPTH_FORMAT_MASK 0x00000001
+#define RB_DEPTH_INFO_DEPTH_BASE_MASK 0xfffff000
+
+#define RB_DEPTH_INFO_MASK \
+ (RB_DEPTH_INFO_DEPTH_FORMAT_MASK | \
+ RB_DEPTH_INFO_DEPTH_BASE_MASK)
+
+#define RB_DEPTH_INFO(depth_format, depth_base) \
+ ((depth_format << RB_DEPTH_INFO_DEPTH_FORMAT_SHIFT) | \
+ (depth_base << RB_DEPTH_INFO_DEPTH_BASE_SHIFT))
+
+#define RB_DEPTH_INFO_GET_DEPTH_FORMAT(rb_depth_info) \
+ ((rb_depth_info & RB_DEPTH_INFO_DEPTH_FORMAT_MASK) >> RB_DEPTH_INFO_DEPTH_FORMAT_SHIFT)
+#define RB_DEPTH_INFO_GET_DEPTH_BASE(rb_depth_info) \
+ ((rb_depth_info & RB_DEPTH_INFO_DEPTH_BASE_MASK) >> RB_DEPTH_INFO_DEPTH_BASE_SHIFT)
+
+#define RB_DEPTH_INFO_SET_DEPTH_FORMAT(rb_depth_info_reg, depth_format) \
+ rb_depth_info_reg = (rb_depth_info_reg & ~RB_DEPTH_INFO_DEPTH_FORMAT_MASK) | (depth_format << RB_DEPTH_INFO_DEPTH_FORMAT_SHIFT)
+#define RB_DEPTH_INFO_SET_DEPTH_BASE(rb_depth_info_reg, depth_base) \
+ rb_depth_info_reg = (rb_depth_info_reg & ~RB_DEPTH_INFO_DEPTH_BASE_MASK) | (depth_base << RB_DEPTH_INFO_DEPTH_BASE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_depth_info_t {
+ unsigned int depth_format : RB_DEPTH_INFO_DEPTH_FORMAT_SIZE;
+ unsigned int : 11;
+ unsigned int depth_base : RB_DEPTH_INFO_DEPTH_BASE_SIZE;
+ } rb_depth_info_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_depth_info_t {
+ unsigned int depth_base : RB_DEPTH_INFO_DEPTH_BASE_SIZE;
+ unsigned int : 11;
+ unsigned int depth_format : RB_DEPTH_INFO_DEPTH_FORMAT_SIZE;
+ } rb_depth_info_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_depth_info_t f;
+} rb_depth_info_u;
+
+
+/*
+ * RB_STENCILREFMASK struct
+ */
+
+#define RB_STENCILREFMASK_STENCILREF_SIZE 8
+#define RB_STENCILREFMASK_STENCILMASK_SIZE 8
+#define RB_STENCILREFMASK_STENCILWRITEMASK_SIZE 8
+
+#define RB_STENCILREFMASK_STENCILREF_SHIFT 0
+#define RB_STENCILREFMASK_STENCILMASK_SHIFT 8
+#define RB_STENCILREFMASK_STENCILWRITEMASK_SHIFT 16
+
+#define RB_STENCILREFMASK_STENCILREF_MASK 0x000000ff
+#define RB_STENCILREFMASK_STENCILMASK_MASK 0x0000ff00
+#define RB_STENCILREFMASK_STENCILWRITEMASK_MASK 0x00ff0000
+
+#define RB_STENCILREFMASK_MASK \
+ (RB_STENCILREFMASK_STENCILREF_MASK | \
+ RB_STENCILREFMASK_STENCILMASK_MASK | \
+ RB_STENCILREFMASK_STENCILWRITEMASK_MASK)
+
+#define RB_STENCILREFMASK(stencilref, stencilmask, stencilwritemask) \
+ ((stencilref << RB_STENCILREFMASK_STENCILREF_SHIFT) | \
+ (stencilmask << RB_STENCILREFMASK_STENCILMASK_SHIFT) | \
+ (stencilwritemask << RB_STENCILREFMASK_STENCILWRITEMASK_SHIFT))
+
+#define RB_STENCILREFMASK_GET_STENCILREF(rb_stencilrefmask) \
+ ((rb_stencilrefmask & RB_STENCILREFMASK_STENCILREF_MASK) >> RB_STENCILREFMASK_STENCILREF_SHIFT)
+#define RB_STENCILREFMASK_GET_STENCILMASK(rb_stencilrefmask) \
+ ((rb_stencilrefmask & RB_STENCILREFMASK_STENCILMASK_MASK) >> RB_STENCILREFMASK_STENCILMASK_SHIFT)
+#define RB_STENCILREFMASK_GET_STENCILWRITEMASK(rb_stencilrefmask) \
+ ((rb_stencilrefmask & RB_STENCILREFMASK_STENCILWRITEMASK_MASK) >> RB_STENCILREFMASK_STENCILWRITEMASK_SHIFT)
+
+#define RB_STENCILREFMASK_SET_STENCILREF(rb_stencilrefmask_reg, stencilref) \
+ rb_stencilrefmask_reg = (rb_stencilrefmask_reg & ~RB_STENCILREFMASK_STENCILREF_MASK) | (stencilref << RB_STENCILREFMASK_STENCILREF_SHIFT)
+#define RB_STENCILREFMASK_SET_STENCILMASK(rb_stencilrefmask_reg, stencilmask) \
+ rb_stencilrefmask_reg = (rb_stencilrefmask_reg & ~RB_STENCILREFMASK_STENCILMASK_MASK) | (stencilmask << RB_STENCILREFMASK_STENCILMASK_SHIFT)
+#define RB_STENCILREFMASK_SET_STENCILWRITEMASK(rb_stencilrefmask_reg, stencilwritemask) \
+ rb_stencilrefmask_reg = (rb_stencilrefmask_reg & ~RB_STENCILREFMASK_STENCILWRITEMASK_MASK) | (stencilwritemask << RB_STENCILREFMASK_STENCILWRITEMASK_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_stencilrefmask_t {
+ unsigned int stencilref : RB_STENCILREFMASK_STENCILREF_SIZE;
+ unsigned int stencilmask : RB_STENCILREFMASK_STENCILMASK_SIZE;
+ unsigned int stencilwritemask : RB_STENCILREFMASK_STENCILWRITEMASK_SIZE;
+ unsigned int : 8;
+ } rb_stencilrefmask_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_stencilrefmask_t {
+ unsigned int : 8;
+ unsigned int stencilwritemask : RB_STENCILREFMASK_STENCILWRITEMASK_SIZE;
+ unsigned int stencilmask : RB_STENCILREFMASK_STENCILMASK_SIZE;
+ unsigned int stencilref : RB_STENCILREFMASK_STENCILREF_SIZE;
+ } rb_stencilrefmask_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_stencilrefmask_t f;
+} rb_stencilrefmask_u;
+
+
+/*
+ * RB_ALPHA_REF struct
+ */
+
+#define RB_ALPHA_REF_ALPHA_REF_SIZE 32
+
+#define RB_ALPHA_REF_ALPHA_REF_SHIFT 0
+
+#define RB_ALPHA_REF_ALPHA_REF_MASK 0xffffffff
+
+#define RB_ALPHA_REF_MASK \
+ (RB_ALPHA_REF_ALPHA_REF_MASK)
+
+#define RB_ALPHA_REF(alpha_ref) \
+ ((alpha_ref << RB_ALPHA_REF_ALPHA_REF_SHIFT))
+
+#define RB_ALPHA_REF_GET_ALPHA_REF(rb_alpha_ref) \
+ ((rb_alpha_ref & RB_ALPHA_REF_ALPHA_REF_MASK) >> RB_ALPHA_REF_ALPHA_REF_SHIFT)
+
+#define RB_ALPHA_REF_SET_ALPHA_REF(rb_alpha_ref_reg, alpha_ref) \
+ rb_alpha_ref_reg = (rb_alpha_ref_reg & ~RB_ALPHA_REF_ALPHA_REF_MASK) | (alpha_ref << RB_ALPHA_REF_ALPHA_REF_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_alpha_ref_t {
+ unsigned int alpha_ref : RB_ALPHA_REF_ALPHA_REF_SIZE;
+ } rb_alpha_ref_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_alpha_ref_t {
+ unsigned int alpha_ref : RB_ALPHA_REF_ALPHA_REF_SIZE;
+ } rb_alpha_ref_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_alpha_ref_t f;
+} rb_alpha_ref_u;
+
+
+/*
+ * RB_COLOR_MASK struct
+ */
+
+#define RB_COLOR_MASK_WRITE_RED_SIZE 1
+#define RB_COLOR_MASK_WRITE_GREEN_SIZE 1
+#define RB_COLOR_MASK_WRITE_BLUE_SIZE 1
+#define RB_COLOR_MASK_WRITE_ALPHA_SIZE 1
+
+#define RB_COLOR_MASK_WRITE_RED_SHIFT 0
+#define RB_COLOR_MASK_WRITE_GREEN_SHIFT 1
+#define RB_COLOR_MASK_WRITE_BLUE_SHIFT 2
+#define RB_COLOR_MASK_WRITE_ALPHA_SHIFT 3
+
+#define RB_COLOR_MASK_WRITE_RED_MASK 0x00000001
+#define RB_COLOR_MASK_WRITE_GREEN_MASK 0x00000002
+#define RB_COLOR_MASK_WRITE_BLUE_MASK 0x00000004
+#define RB_COLOR_MASK_WRITE_ALPHA_MASK 0x00000008
+
+#define RB_COLOR_MASK_MASK \
+ (RB_COLOR_MASK_WRITE_RED_MASK | \
+ RB_COLOR_MASK_WRITE_GREEN_MASK | \
+ RB_COLOR_MASK_WRITE_BLUE_MASK | \
+ RB_COLOR_MASK_WRITE_ALPHA_MASK)
+
+#define RB_COLOR_MASK(write_red, write_green, write_blue, write_alpha) \
+ ((write_red << RB_COLOR_MASK_WRITE_RED_SHIFT) | \
+ (write_green << RB_COLOR_MASK_WRITE_GREEN_SHIFT) | \
+ (write_blue << RB_COLOR_MASK_WRITE_BLUE_SHIFT) | \
+ (write_alpha << RB_COLOR_MASK_WRITE_ALPHA_SHIFT))
+
+#define RB_COLOR_MASK_GET_WRITE_RED(rb_color_mask) \
+ ((rb_color_mask & RB_COLOR_MASK_WRITE_RED_MASK) >> RB_COLOR_MASK_WRITE_RED_SHIFT)
+#define RB_COLOR_MASK_GET_WRITE_GREEN(rb_color_mask) \
+ ((rb_color_mask & RB_COLOR_MASK_WRITE_GREEN_MASK) >> RB_COLOR_MASK_WRITE_GREEN_SHIFT)
+#define RB_COLOR_MASK_GET_WRITE_BLUE(rb_color_mask) \
+ ((rb_color_mask & RB_COLOR_MASK_WRITE_BLUE_MASK) >> RB_COLOR_MASK_WRITE_BLUE_SHIFT)
+#define RB_COLOR_MASK_GET_WRITE_ALPHA(rb_color_mask) \
+ ((rb_color_mask & RB_COLOR_MASK_WRITE_ALPHA_MASK) >> RB_COLOR_MASK_WRITE_ALPHA_SHIFT)
+
+#define RB_COLOR_MASK_SET_WRITE_RED(rb_color_mask_reg, write_red) \
+ rb_color_mask_reg = (rb_color_mask_reg & ~RB_COLOR_MASK_WRITE_RED_MASK) | (write_red << RB_COLOR_MASK_WRITE_RED_SHIFT)
+#define RB_COLOR_MASK_SET_WRITE_GREEN(rb_color_mask_reg, write_green) \
+ rb_color_mask_reg = (rb_color_mask_reg & ~RB_COLOR_MASK_WRITE_GREEN_MASK) | (write_green << RB_COLOR_MASK_WRITE_GREEN_SHIFT)
+#define RB_COLOR_MASK_SET_WRITE_BLUE(rb_color_mask_reg, write_blue) \
+ rb_color_mask_reg = (rb_color_mask_reg & ~RB_COLOR_MASK_WRITE_BLUE_MASK) | (write_blue << RB_COLOR_MASK_WRITE_BLUE_SHIFT)
+#define RB_COLOR_MASK_SET_WRITE_ALPHA(rb_color_mask_reg, write_alpha) \
+ rb_color_mask_reg = (rb_color_mask_reg & ~RB_COLOR_MASK_WRITE_ALPHA_MASK) | (write_alpha << RB_COLOR_MASK_WRITE_ALPHA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_color_mask_t {
+ unsigned int write_red : RB_COLOR_MASK_WRITE_RED_SIZE;
+ unsigned int write_green : RB_COLOR_MASK_WRITE_GREEN_SIZE;
+ unsigned int write_blue : RB_COLOR_MASK_WRITE_BLUE_SIZE;
+ unsigned int write_alpha : RB_COLOR_MASK_WRITE_ALPHA_SIZE;
+ unsigned int : 28;
+ } rb_color_mask_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_color_mask_t {
+ unsigned int : 28;
+ unsigned int write_alpha : RB_COLOR_MASK_WRITE_ALPHA_SIZE;
+ unsigned int write_blue : RB_COLOR_MASK_WRITE_BLUE_SIZE;
+ unsigned int write_green : RB_COLOR_MASK_WRITE_GREEN_SIZE;
+ unsigned int write_red : RB_COLOR_MASK_WRITE_RED_SIZE;
+ } rb_color_mask_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_color_mask_t f;
+} rb_color_mask_u;
+
+
+/*
+ * RB_BLEND_RED struct
+ */
+
+#define RB_BLEND_RED_BLEND_RED_SIZE 8
+
+#define RB_BLEND_RED_BLEND_RED_SHIFT 0
+
+#define RB_BLEND_RED_BLEND_RED_MASK 0x000000ff
+
+#define RB_BLEND_RED_MASK \
+ (RB_BLEND_RED_BLEND_RED_MASK)
+
+#define RB_BLEND_RED(blend_red) \
+ ((blend_red << RB_BLEND_RED_BLEND_RED_SHIFT))
+
+#define RB_BLEND_RED_GET_BLEND_RED(rb_blend_red) \
+ ((rb_blend_red & RB_BLEND_RED_BLEND_RED_MASK) >> RB_BLEND_RED_BLEND_RED_SHIFT)
+
+#define RB_BLEND_RED_SET_BLEND_RED(rb_blend_red_reg, blend_red) \
+ rb_blend_red_reg = (rb_blend_red_reg & ~RB_BLEND_RED_BLEND_RED_MASK) | (blend_red << RB_BLEND_RED_BLEND_RED_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_blend_red_t {
+ unsigned int blend_red : RB_BLEND_RED_BLEND_RED_SIZE;
+ unsigned int : 24;
+ } rb_blend_red_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_blend_red_t {
+ unsigned int : 24;
+ unsigned int blend_red : RB_BLEND_RED_BLEND_RED_SIZE;
+ } rb_blend_red_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_blend_red_t f;
+} rb_blend_red_u;
+
+
+/*
+ * RB_BLEND_GREEN struct
+ */
+
+#define RB_BLEND_GREEN_BLEND_GREEN_SIZE 8
+
+#define RB_BLEND_GREEN_BLEND_GREEN_SHIFT 0
+
+#define RB_BLEND_GREEN_BLEND_GREEN_MASK 0x000000ff
+
+#define RB_BLEND_GREEN_MASK \
+ (RB_BLEND_GREEN_BLEND_GREEN_MASK)
+
+#define RB_BLEND_GREEN(blend_green) \
+ ((blend_green << RB_BLEND_GREEN_BLEND_GREEN_SHIFT))
+
+#define RB_BLEND_GREEN_GET_BLEND_GREEN(rb_blend_green) \
+ ((rb_blend_green & RB_BLEND_GREEN_BLEND_GREEN_MASK) >> RB_BLEND_GREEN_BLEND_GREEN_SHIFT)
+
+#define RB_BLEND_GREEN_SET_BLEND_GREEN(rb_blend_green_reg, blend_green) \
+ rb_blend_green_reg = (rb_blend_green_reg & ~RB_BLEND_GREEN_BLEND_GREEN_MASK) | (blend_green << RB_BLEND_GREEN_BLEND_GREEN_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_blend_green_t {
+ unsigned int blend_green : RB_BLEND_GREEN_BLEND_GREEN_SIZE;
+ unsigned int : 24;
+ } rb_blend_green_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_blend_green_t {
+ unsigned int : 24;
+ unsigned int blend_green : RB_BLEND_GREEN_BLEND_GREEN_SIZE;
+ } rb_blend_green_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_blend_green_t f;
+} rb_blend_green_u;
+
+
+/*
+ * RB_BLEND_BLUE struct
+ */
+
+#define RB_BLEND_BLUE_BLEND_BLUE_SIZE 8
+
+#define RB_BLEND_BLUE_BLEND_BLUE_SHIFT 0
+
+#define RB_BLEND_BLUE_BLEND_BLUE_MASK 0x000000ff
+
+#define RB_BLEND_BLUE_MASK \
+ (RB_BLEND_BLUE_BLEND_BLUE_MASK)
+
+#define RB_BLEND_BLUE(blend_blue) \
+ ((blend_blue << RB_BLEND_BLUE_BLEND_BLUE_SHIFT))
+
+#define RB_BLEND_BLUE_GET_BLEND_BLUE(rb_blend_blue) \
+ ((rb_blend_blue & RB_BLEND_BLUE_BLEND_BLUE_MASK) >> RB_BLEND_BLUE_BLEND_BLUE_SHIFT)
+
+#define RB_BLEND_BLUE_SET_BLEND_BLUE(rb_blend_blue_reg, blend_blue) \
+ rb_blend_blue_reg = (rb_blend_blue_reg & ~RB_BLEND_BLUE_BLEND_BLUE_MASK) | (blend_blue << RB_BLEND_BLUE_BLEND_BLUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_blend_blue_t {
+ unsigned int blend_blue : RB_BLEND_BLUE_BLEND_BLUE_SIZE;
+ unsigned int : 24;
+ } rb_blend_blue_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_blend_blue_t {
+ unsigned int : 24;
+ unsigned int blend_blue : RB_BLEND_BLUE_BLEND_BLUE_SIZE;
+ } rb_blend_blue_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_blend_blue_t f;
+} rb_blend_blue_u;
+
+
+/*
+ * RB_BLEND_ALPHA struct
+ */
+
+#define RB_BLEND_ALPHA_BLEND_ALPHA_SIZE 8
+
+#define RB_BLEND_ALPHA_BLEND_ALPHA_SHIFT 0
+
+#define RB_BLEND_ALPHA_BLEND_ALPHA_MASK 0x000000ff
+
+#define RB_BLEND_ALPHA_MASK \
+ (RB_BLEND_ALPHA_BLEND_ALPHA_MASK)
+
+#define RB_BLEND_ALPHA(blend_alpha) \
+ ((blend_alpha << RB_BLEND_ALPHA_BLEND_ALPHA_SHIFT))
+
+#define RB_BLEND_ALPHA_GET_BLEND_ALPHA(rb_blend_alpha) \
+ ((rb_blend_alpha & RB_BLEND_ALPHA_BLEND_ALPHA_MASK) >> RB_BLEND_ALPHA_BLEND_ALPHA_SHIFT)
+
+#define RB_BLEND_ALPHA_SET_BLEND_ALPHA(rb_blend_alpha_reg, blend_alpha) \
+ rb_blend_alpha_reg = (rb_blend_alpha_reg & ~RB_BLEND_ALPHA_BLEND_ALPHA_MASK) | (blend_alpha << RB_BLEND_ALPHA_BLEND_ALPHA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_blend_alpha_t {
+ unsigned int blend_alpha : RB_BLEND_ALPHA_BLEND_ALPHA_SIZE;
+ unsigned int : 24;
+ } rb_blend_alpha_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_blend_alpha_t {
+ unsigned int : 24;
+ unsigned int blend_alpha : RB_BLEND_ALPHA_BLEND_ALPHA_SIZE;
+ } rb_blend_alpha_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_blend_alpha_t f;
+} rb_blend_alpha_u;
+
+
+/*
+ * RB_FOG_COLOR struct
+ */
+
+#define RB_FOG_COLOR_FOG_RED_SIZE 8
+#define RB_FOG_COLOR_FOG_GREEN_SIZE 8
+#define RB_FOG_COLOR_FOG_BLUE_SIZE 8
+
+#define RB_FOG_COLOR_FOG_RED_SHIFT 0
+#define RB_FOG_COLOR_FOG_GREEN_SHIFT 8
+#define RB_FOG_COLOR_FOG_BLUE_SHIFT 16
+
+#define RB_FOG_COLOR_FOG_RED_MASK 0x000000ff
+#define RB_FOG_COLOR_FOG_GREEN_MASK 0x0000ff00
+#define RB_FOG_COLOR_FOG_BLUE_MASK 0x00ff0000
+
+#define RB_FOG_COLOR_MASK \
+ (RB_FOG_COLOR_FOG_RED_MASK | \
+ RB_FOG_COLOR_FOG_GREEN_MASK | \
+ RB_FOG_COLOR_FOG_BLUE_MASK)
+
+#define RB_FOG_COLOR(fog_red, fog_green, fog_blue) \
+ ((fog_red << RB_FOG_COLOR_FOG_RED_SHIFT) | \
+ (fog_green << RB_FOG_COLOR_FOG_GREEN_SHIFT) | \
+ (fog_blue << RB_FOG_COLOR_FOG_BLUE_SHIFT))
+
+#define RB_FOG_COLOR_GET_FOG_RED(rb_fog_color) \
+ ((rb_fog_color & RB_FOG_COLOR_FOG_RED_MASK) >> RB_FOG_COLOR_FOG_RED_SHIFT)
+#define RB_FOG_COLOR_GET_FOG_GREEN(rb_fog_color) \
+ ((rb_fog_color & RB_FOG_COLOR_FOG_GREEN_MASK) >> RB_FOG_COLOR_FOG_GREEN_SHIFT)
+#define RB_FOG_COLOR_GET_FOG_BLUE(rb_fog_color) \
+ ((rb_fog_color & RB_FOG_COLOR_FOG_BLUE_MASK) >> RB_FOG_COLOR_FOG_BLUE_SHIFT)
+
+#define RB_FOG_COLOR_SET_FOG_RED(rb_fog_color_reg, fog_red) \
+ rb_fog_color_reg = (rb_fog_color_reg & ~RB_FOG_COLOR_FOG_RED_MASK) | (fog_red << RB_FOG_COLOR_FOG_RED_SHIFT)
+#define RB_FOG_COLOR_SET_FOG_GREEN(rb_fog_color_reg, fog_green) \
+ rb_fog_color_reg = (rb_fog_color_reg & ~RB_FOG_COLOR_FOG_GREEN_MASK) | (fog_green << RB_FOG_COLOR_FOG_GREEN_SHIFT)
+#define RB_FOG_COLOR_SET_FOG_BLUE(rb_fog_color_reg, fog_blue) \
+ rb_fog_color_reg = (rb_fog_color_reg & ~RB_FOG_COLOR_FOG_BLUE_MASK) | (fog_blue << RB_FOG_COLOR_FOG_BLUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_fog_color_t {
+ unsigned int fog_red : RB_FOG_COLOR_FOG_RED_SIZE;
+ unsigned int fog_green : RB_FOG_COLOR_FOG_GREEN_SIZE;
+ unsigned int fog_blue : RB_FOG_COLOR_FOG_BLUE_SIZE;
+ unsigned int : 8;
+ } rb_fog_color_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_fog_color_t {
+ unsigned int : 8;
+ unsigned int fog_blue : RB_FOG_COLOR_FOG_BLUE_SIZE;
+ unsigned int fog_green : RB_FOG_COLOR_FOG_GREEN_SIZE;
+ unsigned int fog_red : RB_FOG_COLOR_FOG_RED_SIZE;
+ } rb_fog_color_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_fog_color_t f;
+} rb_fog_color_u;
+
+
+/*
+ * RB_STENCILREFMASK_BF struct
+ */
+
+#define RB_STENCILREFMASK_BF_STENCILREF_BF_SIZE 8
+#define RB_STENCILREFMASK_BF_STENCILMASK_BF_SIZE 8
+#define RB_STENCILREFMASK_BF_STENCILWRITEMASK_BF_SIZE 8
+
+#define RB_STENCILREFMASK_BF_STENCILREF_BF_SHIFT 0
+#define RB_STENCILREFMASK_BF_STENCILMASK_BF_SHIFT 8
+#define RB_STENCILREFMASK_BF_STENCILWRITEMASK_BF_SHIFT 16
+
+#define RB_STENCILREFMASK_BF_STENCILREF_BF_MASK 0x000000ff
+#define RB_STENCILREFMASK_BF_STENCILMASK_BF_MASK 0x0000ff00
+#define RB_STENCILREFMASK_BF_STENCILWRITEMASK_BF_MASK 0x00ff0000
+
+#define RB_STENCILREFMASK_BF_MASK \
+ (RB_STENCILREFMASK_BF_STENCILREF_BF_MASK | \
+ RB_STENCILREFMASK_BF_STENCILMASK_BF_MASK | \
+ RB_STENCILREFMASK_BF_STENCILWRITEMASK_BF_MASK)
+
+#define RB_STENCILREFMASK_BF(stencilref_bf, stencilmask_bf, stencilwritemask_bf) \
+ ((stencilref_bf << RB_STENCILREFMASK_BF_STENCILREF_BF_SHIFT) | \
+ (stencilmask_bf << RB_STENCILREFMASK_BF_STENCILMASK_BF_SHIFT) | \
+ (stencilwritemask_bf << RB_STENCILREFMASK_BF_STENCILWRITEMASK_BF_SHIFT))
+
+#define RB_STENCILREFMASK_BF_GET_STENCILREF_BF(rb_stencilrefmask_bf) \
+ ((rb_stencilrefmask_bf & RB_STENCILREFMASK_BF_STENCILREF_BF_MASK) >> RB_STENCILREFMASK_BF_STENCILREF_BF_SHIFT)
+#define RB_STENCILREFMASK_BF_GET_STENCILMASK_BF(rb_stencilrefmask_bf) \
+ ((rb_stencilrefmask_bf & RB_STENCILREFMASK_BF_STENCILMASK_BF_MASK) >> RB_STENCILREFMASK_BF_STENCILMASK_BF_SHIFT)
+#define RB_STENCILREFMASK_BF_GET_STENCILWRITEMASK_BF(rb_stencilrefmask_bf) \
+ ((rb_stencilrefmask_bf & RB_STENCILREFMASK_BF_STENCILWRITEMASK_BF_MASK) >> RB_STENCILREFMASK_BF_STENCILWRITEMASK_BF_SHIFT)
+
+#define RB_STENCILREFMASK_BF_SET_STENCILREF_BF(rb_stencilrefmask_bf_reg, stencilref_bf) \
+ rb_stencilrefmask_bf_reg = (rb_stencilrefmask_bf_reg & ~RB_STENCILREFMASK_BF_STENCILREF_BF_MASK) | (stencilref_bf << RB_STENCILREFMASK_BF_STENCILREF_BF_SHIFT)
+#define RB_STENCILREFMASK_BF_SET_STENCILMASK_BF(rb_stencilrefmask_bf_reg, stencilmask_bf) \
+ rb_stencilrefmask_bf_reg = (rb_stencilrefmask_bf_reg & ~RB_STENCILREFMASK_BF_STENCILMASK_BF_MASK) | (stencilmask_bf << RB_STENCILREFMASK_BF_STENCILMASK_BF_SHIFT)
+#define RB_STENCILREFMASK_BF_SET_STENCILWRITEMASK_BF(rb_stencilrefmask_bf_reg, stencilwritemask_bf) \
+ rb_stencilrefmask_bf_reg = (rb_stencilrefmask_bf_reg & ~RB_STENCILREFMASK_BF_STENCILWRITEMASK_BF_MASK) | (stencilwritemask_bf << RB_STENCILREFMASK_BF_STENCILWRITEMASK_BF_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_stencilrefmask_bf_t {
+ unsigned int stencilref_bf : RB_STENCILREFMASK_BF_STENCILREF_BF_SIZE;
+ unsigned int stencilmask_bf : RB_STENCILREFMASK_BF_STENCILMASK_BF_SIZE;
+ unsigned int stencilwritemask_bf : RB_STENCILREFMASK_BF_STENCILWRITEMASK_BF_SIZE;
+ unsigned int : 8;
+ } rb_stencilrefmask_bf_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_stencilrefmask_bf_t {
+ unsigned int : 8;
+ unsigned int stencilwritemask_bf : RB_STENCILREFMASK_BF_STENCILWRITEMASK_BF_SIZE;
+ unsigned int stencilmask_bf : RB_STENCILREFMASK_BF_STENCILMASK_BF_SIZE;
+ unsigned int stencilref_bf : RB_STENCILREFMASK_BF_STENCILREF_BF_SIZE;
+ } rb_stencilrefmask_bf_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_stencilrefmask_bf_t f;
+} rb_stencilrefmask_bf_u;
+
+
+/*
+ * RB_DEPTHCONTROL struct
+ */
+
+#define RB_DEPTHCONTROL_STENCIL_ENABLE_SIZE 1
+#define RB_DEPTHCONTROL_Z_ENABLE_SIZE 1
+#define RB_DEPTHCONTROL_Z_WRITE_ENABLE_SIZE 1
+#define RB_DEPTHCONTROL_EARLY_Z_ENABLE_SIZE 1
+#define RB_DEPTHCONTROL_ZFUNC_SIZE 3
+#define RB_DEPTHCONTROL_BACKFACE_ENABLE_SIZE 1
+#define RB_DEPTHCONTROL_STENCILFUNC_SIZE 3
+#define RB_DEPTHCONTROL_STENCILFAIL_SIZE 3
+#define RB_DEPTHCONTROL_STENCILZPASS_SIZE 3
+#define RB_DEPTHCONTROL_STENCILZFAIL_SIZE 3
+#define RB_DEPTHCONTROL_STENCILFUNC_BF_SIZE 3
+#define RB_DEPTHCONTROL_STENCILFAIL_BF_SIZE 3
+#define RB_DEPTHCONTROL_STENCILZPASS_BF_SIZE 3
+#define RB_DEPTHCONTROL_STENCILZFAIL_BF_SIZE 3
+
+#define RB_DEPTHCONTROL_STENCIL_ENABLE_SHIFT 0
+#define RB_DEPTHCONTROL_Z_ENABLE_SHIFT 1
+#define RB_DEPTHCONTROL_Z_WRITE_ENABLE_SHIFT 2
+#define RB_DEPTHCONTROL_EARLY_Z_ENABLE_SHIFT 3
+#define RB_DEPTHCONTROL_ZFUNC_SHIFT 4
+#define RB_DEPTHCONTROL_BACKFACE_ENABLE_SHIFT 7
+#define RB_DEPTHCONTROL_STENCILFUNC_SHIFT 8
+#define RB_DEPTHCONTROL_STENCILFAIL_SHIFT 11
+#define RB_DEPTHCONTROL_STENCILZPASS_SHIFT 14
+#define RB_DEPTHCONTROL_STENCILZFAIL_SHIFT 17
+#define RB_DEPTHCONTROL_STENCILFUNC_BF_SHIFT 20
+#define RB_DEPTHCONTROL_STENCILFAIL_BF_SHIFT 23
+#define RB_DEPTHCONTROL_STENCILZPASS_BF_SHIFT 26
+#define RB_DEPTHCONTROL_STENCILZFAIL_BF_SHIFT 29
+
+#define RB_DEPTHCONTROL_STENCIL_ENABLE_MASK 0x00000001
+#define RB_DEPTHCONTROL_Z_ENABLE_MASK 0x00000002
+#define RB_DEPTHCONTROL_Z_WRITE_ENABLE_MASK 0x00000004
+#define RB_DEPTHCONTROL_EARLY_Z_ENABLE_MASK 0x00000008
+#define RB_DEPTHCONTROL_ZFUNC_MASK 0x00000070
+#define RB_DEPTHCONTROL_BACKFACE_ENABLE_MASK 0x00000080
+#define RB_DEPTHCONTROL_STENCILFUNC_MASK 0x00000700
+#define RB_DEPTHCONTROL_STENCILFAIL_MASK 0x00003800
+#define RB_DEPTHCONTROL_STENCILZPASS_MASK 0x0001c000
+#define RB_DEPTHCONTROL_STENCILZFAIL_MASK 0x000e0000
+#define RB_DEPTHCONTROL_STENCILFUNC_BF_MASK 0x00700000
+#define RB_DEPTHCONTROL_STENCILFAIL_BF_MASK 0x03800000
+#define RB_DEPTHCONTROL_STENCILZPASS_BF_MASK 0x1c000000
+#define RB_DEPTHCONTROL_STENCILZFAIL_BF_MASK 0xe0000000
+
+#define RB_DEPTHCONTROL_MASK \
+ (RB_DEPTHCONTROL_STENCIL_ENABLE_MASK | \
+ RB_DEPTHCONTROL_Z_ENABLE_MASK | \
+ RB_DEPTHCONTROL_Z_WRITE_ENABLE_MASK | \
+ RB_DEPTHCONTROL_EARLY_Z_ENABLE_MASK | \
+ RB_DEPTHCONTROL_ZFUNC_MASK | \
+ RB_DEPTHCONTROL_BACKFACE_ENABLE_MASK | \
+ RB_DEPTHCONTROL_STENCILFUNC_MASK | \
+ RB_DEPTHCONTROL_STENCILFAIL_MASK | \
+ RB_DEPTHCONTROL_STENCILZPASS_MASK | \
+ RB_DEPTHCONTROL_STENCILZFAIL_MASK | \
+ RB_DEPTHCONTROL_STENCILFUNC_BF_MASK | \
+ RB_DEPTHCONTROL_STENCILFAIL_BF_MASK | \
+ RB_DEPTHCONTROL_STENCILZPASS_BF_MASK | \
+ RB_DEPTHCONTROL_STENCILZFAIL_BF_MASK)
+
+#define RB_DEPTHCONTROL(stencil_enable, z_enable, z_write_enable, early_z_enable, zfunc, backface_enable, stencilfunc, stencilfail, stencilzpass, stencilzfail, stencilfunc_bf, stencilfail_bf, stencilzpass_bf, stencilzfail_bf) \
+ ((stencil_enable << RB_DEPTHCONTROL_STENCIL_ENABLE_SHIFT) | \
+ (z_enable << RB_DEPTHCONTROL_Z_ENABLE_SHIFT) | \
+ (z_write_enable << RB_DEPTHCONTROL_Z_WRITE_ENABLE_SHIFT) | \
+ (early_z_enable << RB_DEPTHCONTROL_EARLY_Z_ENABLE_SHIFT) | \
+ (zfunc << RB_DEPTHCONTROL_ZFUNC_SHIFT) | \
+ (backface_enable << RB_DEPTHCONTROL_BACKFACE_ENABLE_SHIFT) | \
+ (stencilfunc << RB_DEPTHCONTROL_STENCILFUNC_SHIFT) | \
+ (stencilfail << RB_DEPTHCONTROL_STENCILFAIL_SHIFT) | \
+ (stencilzpass << RB_DEPTHCONTROL_STENCILZPASS_SHIFT) | \
+ (stencilzfail << RB_DEPTHCONTROL_STENCILZFAIL_SHIFT) | \
+ (stencilfunc_bf << RB_DEPTHCONTROL_STENCILFUNC_BF_SHIFT) | \
+ (stencilfail_bf << RB_DEPTHCONTROL_STENCILFAIL_BF_SHIFT) | \
+ (stencilzpass_bf << RB_DEPTHCONTROL_STENCILZPASS_BF_SHIFT) | \
+ (stencilzfail_bf << RB_DEPTHCONTROL_STENCILZFAIL_BF_SHIFT))
+
+#define RB_DEPTHCONTROL_GET_STENCIL_ENABLE(rb_depthcontrol) \
+ ((rb_depthcontrol & RB_DEPTHCONTROL_STENCIL_ENABLE_MASK) >> RB_DEPTHCONTROL_STENCIL_ENABLE_SHIFT)
+#define RB_DEPTHCONTROL_GET_Z_ENABLE(rb_depthcontrol) \
+ ((rb_depthcontrol & RB_DEPTHCONTROL_Z_ENABLE_MASK) >> RB_DEPTHCONTROL_Z_ENABLE_SHIFT)
+#define RB_DEPTHCONTROL_GET_Z_WRITE_ENABLE(rb_depthcontrol) \
+ ((rb_depthcontrol & RB_DEPTHCONTROL_Z_WRITE_ENABLE_MASK) >> RB_DEPTHCONTROL_Z_WRITE_ENABLE_SHIFT)
+#define RB_DEPTHCONTROL_GET_EARLY_Z_ENABLE(rb_depthcontrol) \
+ ((rb_depthcontrol & RB_DEPTHCONTROL_EARLY_Z_ENABLE_MASK) >> RB_DEPTHCONTROL_EARLY_Z_ENABLE_SHIFT)
+#define RB_DEPTHCONTROL_GET_ZFUNC(rb_depthcontrol) \
+ ((rb_depthcontrol & RB_DEPTHCONTROL_ZFUNC_MASK) >> RB_DEPTHCONTROL_ZFUNC_SHIFT)
+#define RB_DEPTHCONTROL_GET_BACKFACE_ENABLE(rb_depthcontrol) \
+ ((rb_depthcontrol & RB_DEPTHCONTROL_BACKFACE_ENABLE_MASK) >> RB_DEPTHCONTROL_BACKFACE_ENABLE_SHIFT)
+#define RB_DEPTHCONTROL_GET_STENCILFUNC(rb_depthcontrol) \
+ ((rb_depthcontrol & RB_DEPTHCONTROL_STENCILFUNC_MASK) >> RB_DEPTHCONTROL_STENCILFUNC_SHIFT)
+#define RB_DEPTHCONTROL_GET_STENCILFAIL(rb_depthcontrol) \
+ ((rb_depthcontrol & RB_DEPTHCONTROL_STENCILFAIL_MASK) >> RB_DEPTHCONTROL_STENCILFAIL_SHIFT)
+#define RB_DEPTHCONTROL_GET_STENCILZPASS(rb_depthcontrol) \
+ ((rb_depthcontrol & RB_DEPTHCONTROL_STENCILZPASS_MASK) >> RB_DEPTHCONTROL_STENCILZPASS_SHIFT)
+#define RB_DEPTHCONTROL_GET_STENCILZFAIL(rb_depthcontrol) \
+ ((rb_depthcontrol & RB_DEPTHCONTROL_STENCILZFAIL_MASK) >> RB_DEPTHCONTROL_STENCILZFAIL_SHIFT)
+#define RB_DEPTHCONTROL_GET_STENCILFUNC_BF(rb_depthcontrol) \
+ ((rb_depthcontrol & RB_DEPTHCONTROL_STENCILFUNC_BF_MASK) >> RB_DEPTHCONTROL_STENCILFUNC_BF_SHIFT)
+#define RB_DEPTHCONTROL_GET_STENCILFAIL_BF(rb_depthcontrol) \
+ ((rb_depthcontrol & RB_DEPTHCONTROL_STENCILFAIL_BF_MASK) >> RB_DEPTHCONTROL_STENCILFAIL_BF_SHIFT)
+#define RB_DEPTHCONTROL_GET_STENCILZPASS_BF(rb_depthcontrol) \
+ ((rb_depthcontrol & RB_DEPTHCONTROL_STENCILZPASS_BF_MASK) >> RB_DEPTHCONTROL_STENCILZPASS_BF_SHIFT)
+#define RB_DEPTHCONTROL_GET_STENCILZFAIL_BF(rb_depthcontrol) \
+ ((rb_depthcontrol & RB_DEPTHCONTROL_STENCILZFAIL_BF_MASK) >> RB_DEPTHCONTROL_STENCILZFAIL_BF_SHIFT)
+
+#define RB_DEPTHCONTROL_SET_STENCIL_ENABLE(rb_depthcontrol_reg, stencil_enable) \
+ rb_depthcontrol_reg = (rb_depthcontrol_reg & ~RB_DEPTHCONTROL_STENCIL_ENABLE_MASK) | (stencil_enable << RB_DEPTHCONTROL_STENCIL_ENABLE_SHIFT)
+#define RB_DEPTHCONTROL_SET_Z_ENABLE(rb_depthcontrol_reg, z_enable) \
+ rb_depthcontrol_reg = (rb_depthcontrol_reg & ~RB_DEPTHCONTROL_Z_ENABLE_MASK) | (z_enable << RB_DEPTHCONTROL_Z_ENABLE_SHIFT)
+#define RB_DEPTHCONTROL_SET_Z_WRITE_ENABLE(rb_depthcontrol_reg, z_write_enable) \
+ rb_depthcontrol_reg = (rb_depthcontrol_reg & ~RB_DEPTHCONTROL_Z_WRITE_ENABLE_MASK) | (z_write_enable << RB_DEPTHCONTROL_Z_WRITE_ENABLE_SHIFT)
+#define RB_DEPTHCONTROL_SET_EARLY_Z_ENABLE(rb_depthcontrol_reg, early_z_enable) \
+ rb_depthcontrol_reg = (rb_depthcontrol_reg & ~RB_DEPTHCONTROL_EARLY_Z_ENABLE_MASK) | (early_z_enable << RB_DEPTHCONTROL_EARLY_Z_ENABLE_SHIFT)
+#define RB_DEPTHCONTROL_SET_ZFUNC(rb_depthcontrol_reg, zfunc) \
+ rb_depthcontrol_reg = (rb_depthcontrol_reg & ~RB_DEPTHCONTROL_ZFUNC_MASK) | (zfunc << RB_DEPTHCONTROL_ZFUNC_SHIFT)
+#define RB_DEPTHCONTROL_SET_BACKFACE_ENABLE(rb_depthcontrol_reg, backface_enable) \
+ rb_depthcontrol_reg = (rb_depthcontrol_reg & ~RB_DEPTHCONTROL_BACKFACE_ENABLE_MASK) | (backface_enable << RB_DEPTHCONTROL_BACKFACE_ENABLE_SHIFT)
+#define RB_DEPTHCONTROL_SET_STENCILFUNC(rb_depthcontrol_reg, stencilfunc) \
+ rb_depthcontrol_reg = (rb_depthcontrol_reg & ~RB_DEPTHCONTROL_STENCILFUNC_MASK) | (stencilfunc << RB_DEPTHCONTROL_STENCILFUNC_SHIFT)
+#define RB_DEPTHCONTROL_SET_STENCILFAIL(rb_depthcontrol_reg, stencilfail) \
+ rb_depthcontrol_reg = (rb_depthcontrol_reg & ~RB_DEPTHCONTROL_STENCILFAIL_MASK) | (stencilfail << RB_DEPTHCONTROL_STENCILFAIL_SHIFT)
+#define RB_DEPTHCONTROL_SET_STENCILZPASS(rb_depthcontrol_reg, stencilzpass) \
+ rb_depthcontrol_reg = (rb_depthcontrol_reg & ~RB_DEPTHCONTROL_STENCILZPASS_MASK) | (stencilzpass << RB_DEPTHCONTROL_STENCILZPASS_SHIFT)
+#define RB_DEPTHCONTROL_SET_STENCILZFAIL(rb_depthcontrol_reg, stencilzfail) \
+ rb_depthcontrol_reg = (rb_depthcontrol_reg & ~RB_DEPTHCONTROL_STENCILZFAIL_MASK) | (stencilzfail << RB_DEPTHCONTROL_STENCILZFAIL_SHIFT)
+#define RB_DEPTHCONTROL_SET_STENCILFUNC_BF(rb_depthcontrol_reg, stencilfunc_bf) \
+ rb_depthcontrol_reg = (rb_depthcontrol_reg & ~RB_DEPTHCONTROL_STENCILFUNC_BF_MASK) | (stencilfunc_bf << RB_DEPTHCONTROL_STENCILFUNC_BF_SHIFT)
+#define RB_DEPTHCONTROL_SET_STENCILFAIL_BF(rb_depthcontrol_reg, stencilfail_bf) \
+ rb_depthcontrol_reg = (rb_depthcontrol_reg & ~RB_DEPTHCONTROL_STENCILFAIL_BF_MASK) | (stencilfail_bf << RB_DEPTHCONTROL_STENCILFAIL_BF_SHIFT)
+#define RB_DEPTHCONTROL_SET_STENCILZPASS_BF(rb_depthcontrol_reg, stencilzpass_bf) \
+ rb_depthcontrol_reg = (rb_depthcontrol_reg & ~RB_DEPTHCONTROL_STENCILZPASS_BF_MASK) | (stencilzpass_bf << RB_DEPTHCONTROL_STENCILZPASS_BF_SHIFT)
+#define RB_DEPTHCONTROL_SET_STENCILZFAIL_BF(rb_depthcontrol_reg, stencilzfail_bf) \
+ rb_depthcontrol_reg = (rb_depthcontrol_reg & ~RB_DEPTHCONTROL_STENCILZFAIL_BF_MASK) | (stencilzfail_bf << RB_DEPTHCONTROL_STENCILZFAIL_BF_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_depthcontrol_t {
+ unsigned int stencil_enable : RB_DEPTHCONTROL_STENCIL_ENABLE_SIZE;
+ unsigned int z_enable : RB_DEPTHCONTROL_Z_ENABLE_SIZE;
+ unsigned int z_write_enable : RB_DEPTHCONTROL_Z_WRITE_ENABLE_SIZE;
+ unsigned int early_z_enable : RB_DEPTHCONTROL_EARLY_Z_ENABLE_SIZE;
+ unsigned int zfunc : RB_DEPTHCONTROL_ZFUNC_SIZE;
+ unsigned int backface_enable : RB_DEPTHCONTROL_BACKFACE_ENABLE_SIZE;
+ unsigned int stencilfunc : RB_DEPTHCONTROL_STENCILFUNC_SIZE;
+ unsigned int stencilfail : RB_DEPTHCONTROL_STENCILFAIL_SIZE;
+ unsigned int stencilzpass : RB_DEPTHCONTROL_STENCILZPASS_SIZE;
+ unsigned int stencilzfail : RB_DEPTHCONTROL_STENCILZFAIL_SIZE;
+ unsigned int stencilfunc_bf : RB_DEPTHCONTROL_STENCILFUNC_BF_SIZE;
+ unsigned int stencilfail_bf : RB_DEPTHCONTROL_STENCILFAIL_BF_SIZE;
+ unsigned int stencilzpass_bf : RB_DEPTHCONTROL_STENCILZPASS_BF_SIZE;
+ unsigned int stencilzfail_bf : RB_DEPTHCONTROL_STENCILZFAIL_BF_SIZE;
+ } rb_depthcontrol_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_depthcontrol_t {
+ unsigned int stencilzfail_bf : RB_DEPTHCONTROL_STENCILZFAIL_BF_SIZE;
+ unsigned int stencilzpass_bf : RB_DEPTHCONTROL_STENCILZPASS_BF_SIZE;
+ unsigned int stencilfail_bf : RB_DEPTHCONTROL_STENCILFAIL_BF_SIZE;
+ unsigned int stencilfunc_bf : RB_DEPTHCONTROL_STENCILFUNC_BF_SIZE;
+ unsigned int stencilzfail : RB_DEPTHCONTROL_STENCILZFAIL_SIZE;
+ unsigned int stencilzpass : RB_DEPTHCONTROL_STENCILZPASS_SIZE;
+ unsigned int stencilfail : RB_DEPTHCONTROL_STENCILFAIL_SIZE;
+ unsigned int stencilfunc : RB_DEPTHCONTROL_STENCILFUNC_SIZE;
+ unsigned int backface_enable : RB_DEPTHCONTROL_BACKFACE_ENABLE_SIZE;
+ unsigned int zfunc : RB_DEPTHCONTROL_ZFUNC_SIZE;
+ unsigned int early_z_enable : RB_DEPTHCONTROL_EARLY_Z_ENABLE_SIZE;
+ unsigned int z_write_enable : RB_DEPTHCONTROL_Z_WRITE_ENABLE_SIZE;
+ unsigned int z_enable : RB_DEPTHCONTROL_Z_ENABLE_SIZE;
+ unsigned int stencil_enable : RB_DEPTHCONTROL_STENCIL_ENABLE_SIZE;
+ } rb_depthcontrol_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_depthcontrol_t f;
+} rb_depthcontrol_u;
+
+
+/*
+ * RB_BLENDCONTROL struct
+ */
+
+#define RB_BLENDCONTROL_COLOR_SRCBLEND_SIZE 5
+#define RB_BLENDCONTROL_COLOR_COMB_FCN_SIZE 3
+#define RB_BLENDCONTROL_COLOR_DESTBLEND_SIZE 5
+#define RB_BLENDCONTROL_ALPHA_SRCBLEND_SIZE 5
+#define RB_BLENDCONTROL_ALPHA_COMB_FCN_SIZE 3
+#define RB_BLENDCONTROL_ALPHA_DESTBLEND_SIZE 5
+#define RB_BLENDCONTROL_BLEND_FORCE_ENABLE_SIZE 1
+#define RB_BLENDCONTROL_BLEND_FORCE_SIZE 1
+
+#define RB_BLENDCONTROL_COLOR_SRCBLEND_SHIFT 0
+#define RB_BLENDCONTROL_COLOR_COMB_FCN_SHIFT 5
+#define RB_BLENDCONTROL_COLOR_DESTBLEND_SHIFT 8
+#define RB_BLENDCONTROL_ALPHA_SRCBLEND_SHIFT 16
+#define RB_BLENDCONTROL_ALPHA_COMB_FCN_SHIFT 21
+#define RB_BLENDCONTROL_ALPHA_DESTBLEND_SHIFT 24
+#define RB_BLENDCONTROL_BLEND_FORCE_ENABLE_SHIFT 29
+#define RB_BLENDCONTROL_BLEND_FORCE_SHIFT 30
+
+#define RB_BLENDCONTROL_COLOR_SRCBLEND_MASK 0x0000001f
+#define RB_BLENDCONTROL_COLOR_COMB_FCN_MASK 0x000000e0
+#define RB_BLENDCONTROL_COLOR_DESTBLEND_MASK 0x00001f00
+#define RB_BLENDCONTROL_ALPHA_SRCBLEND_MASK 0x001f0000
+#define RB_BLENDCONTROL_ALPHA_COMB_FCN_MASK 0x00e00000
+#define RB_BLENDCONTROL_ALPHA_DESTBLEND_MASK 0x1f000000
+#define RB_BLENDCONTROL_BLEND_FORCE_ENABLE_MASK 0x20000000
+#define RB_BLENDCONTROL_BLEND_FORCE_MASK 0x40000000
+
+#define RB_BLENDCONTROL_MASK \
+ (RB_BLENDCONTROL_COLOR_SRCBLEND_MASK | \
+ RB_BLENDCONTROL_COLOR_COMB_FCN_MASK | \
+ RB_BLENDCONTROL_COLOR_DESTBLEND_MASK | \
+ RB_BLENDCONTROL_ALPHA_SRCBLEND_MASK | \
+ RB_BLENDCONTROL_ALPHA_COMB_FCN_MASK | \
+ RB_BLENDCONTROL_ALPHA_DESTBLEND_MASK | \
+ RB_BLENDCONTROL_BLEND_FORCE_ENABLE_MASK | \
+ RB_BLENDCONTROL_BLEND_FORCE_MASK)
+
+#define RB_BLENDCONTROL(color_srcblend, color_comb_fcn, color_destblend, alpha_srcblend, alpha_comb_fcn, alpha_destblend, blend_force_enable, blend_force) \
+ ((color_srcblend << RB_BLENDCONTROL_COLOR_SRCBLEND_SHIFT) | \
+ (color_comb_fcn << RB_BLENDCONTROL_COLOR_COMB_FCN_SHIFT) | \
+ (color_destblend << RB_BLENDCONTROL_COLOR_DESTBLEND_SHIFT) | \
+ (alpha_srcblend << RB_BLENDCONTROL_ALPHA_SRCBLEND_SHIFT) | \
+ (alpha_comb_fcn << RB_BLENDCONTROL_ALPHA_COMB_FCN_SHIFT) | \
+ (alpha_destblend << RB_BLENDCONTROL_ALPHA_DESTBLEND_SHIFT) | \
+ (blend_force_enable << RB_BLENDCONTROL_BLEND_FORCE_ENABLE_SHIFT) | \
+ (blend_force << RB_BLENDCONTROL_BLEND_FORCE_SHIFT))
+
+#define RB_BLENDCONTROL_GET_COLOR_SRCBLEND(rb_blendcontrol) \
+ ((rb_blendcontrol & RB_BLENDCONTROL_COLOR_SRCBLEND_MASK) >> RB_BLENDCONTROL_COLOR_SRCBLEND_SHIFT)
+#define RB_BLENDCONTROL_GET_COLOR_COMB_FCN(rb_blendcontrol) \
+ ((rb_blendcontrol & RB_BLENDCONTROL_COLOR_COMB_FCN_MASK) >> RB_BLENDCONTROL_COLOR_COMB_FCN_SHIFT)
+#define RB_BLENDCONTROL_GET_COLOR_DESTBLEND(rb_blendcontrol) \
+ ((rb_blendcontrol & RB_BLENDCONTROL_COLOR_DESTBLEND_MASK) >> RB_BLENDCONTROL_COLOR_DESTBLEND_SHIFT)
+#define RB_BLENDCONTROL_GET_ALPHA_SRCBLEND(rb_blendcontrol) \
+ ((rb_blendcontrol & RB_BLENDCONTROL_ALPHA_SRCBLEND_MASK) >> RB_BLENDCONTROL_ALPHA_SRCBLEND_SHIFT)
+#define RB_BLENDCONTROL_GET_ALPHA_COMB_FCN(rb_blendcontrol) \
+ ((rb_blendcontrol & RB_BLENDCONTROL_ALPHA_COMB_FCN_MASK) >> RB_BLENDCONTROL_ALPHA_COMB_FCN_SHIFT)
+#define RB_BLENDCONTROL_GET_ALPHA_DESTBLEND(rb_blendcontrol) \
+ ((rb_blendcontrol & RB_BLENDCONTROL_ALPHA_DESTBLEND_MASK) >> RB_BLENDCONTROL_ALPHA_DESTBLEND_SHIFT)
+#define RB_BLENDCONTROL_GET_BLEND_FORCE_ENABLE(rb_blendcontrol) \
+ ((rb_blendcontrol & RB_BLENDCONTROL_BLEND_FORCE_ENABLE_MASK) >> RB_BLENDCONTROL_BLEND_FORCE_ENABLE_SHIFT)
+#define RB_BLENDCONTROL_GET_BLEND_FORCE(rb_blendcontrol) \
+ ((rb_blendcontrol & RB_BLENDCONTROL_BLEND_FORCE_MASK) >> RB_BLENDCONTROL_BLEND_FORCE_SHIFT)
+
+#define RB_BLENDCONTROL_SET_COLOR_SRCBLEND(rb_blendcontrol_reg, color_srcblend) \
+ rb_blendcontrol_reg = (rb_blendcontrol_reg & ~RB_BLENDCONTROL_COLOR_SRCBLEND_MASK) | (color_srcblend << RB_BLENDCONTROL_COLOR_SRCBLEND_SHIFT)
+#define RB_BLENDCONTROL_SET_COLOR_COMB_FCN(rb_blendcontrol_reg, color_comb_fcn) \
+ rb_blendcontrol_reg = (rb_blendcontrol_reg & ~RB_BLENDCONTROL_COLOR_COMB_FCN_MASK) | (color_comb_fcn << RB_BLENDCONTROL_COLOR_COMB_FCN_SHIFT)
+#define RB_BLENDCONTROL_SET_COLOR_DESTBLEND(rb_blendcontrol_reg, color_destblend) \
+ rb_blendcontrol_reg = (rb_blendcontrol_reg & ~RB_BLENDCONTROL_COLOR_DESTBLEND_MASK) | (color_destblend << RB_BLENDCONTROL_COLOR_DESTBLEND_SHIFT)
+#define RB_BLENDCONTROL_SET_ALPHA_SRCBLEND(rb_blendcontrol_reg, alpha_srcblend) \
+ rb_blendcontrol_reg = (rb_blendcontrol_reg & ~RB_BLENDCONTROL_ALPHA_SRCBLEND_MASK) | (alpha_srcblend << RB_BLENDCONTROL_ALPHA_SRCBLEND_SHIFT)
+#define RB_BLENDCONTROL_SET_ALPHA_COMB_FCN(rb_blendcontrol_reg, alpha_comb_fcn) \
+ rb_blendcontrol_reg = (rb_blendcontrol_reg & ~RB_BLENDCONTROL_ALPHA_COMB_FCN_MASK) | (alpha_comb_fcn << RB_BLENDCONTROL_ALPHA_COMB_FCN_SHIFT)
+#define RB_BLENDCONTROL_SET_ALPHA_DESTBLEND(rb_blendcontrol_reg, alpha_destblend) \
+ rb_blendcontrol_reg = (rb_blendcontrol_reg & ~RB_BLENDCONTROL_ALPHA_DESTBLEND_MASK) | (alpha_destblend << RB_BLENDCONTROL_ALPHA_DESTBLEND_SHIFT)
+#define RB_BLENDCONTROL_SET_BLEND_FORCE_ENABLE(rb_blendcontrol_reg, blend_force_enable) \
+ rb_blendcontrol_reg = (rb_blendcontrol_reg & ~RB_BLENDCONTROL_BLEND_FORCE_ENABLE_MASK) | (blend_force_enable << RB_BLENDCONTROL_BLEND_FORCE_ENABLE_SHIFT)
+#define RB_BLENDCONTROL_SET_BLEND_FORCE(rb_blendcontrol_reg, blend_force) \
+ rb_blendcontrol_reg = (rb_blendcontrol_reg & ~RB_BLENDCONTROL_BLEND_FORCE_MASK) | (blend_force << RB_BLENDCONTROL_BLEND_FORCE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_blendcontrol_t {
+ unsigned int color_srcblend : RB_BLENDCONTROL_COLOR_SRCBLEND_SIZE;
+ unsigned int color_comb_fcn : RB_BLENDCONTROL_COLOR_COMB_FCN_SIZE;
+ unsigned int color_destblend : RB_BLENDCONTROL_COLOR_DESTBLEND_SIZE;
+ unsigned int : 3;
+ unsigned int alpha_srcblend : RB_BLENDCONTROL_ALPHA_SRCBLEND_SIZE;
+ unsigned int alpha_comb_fcn : RB_BLENDCONTROL_ALPHA_COMB_FCN_SIZE;
+ unsigned int alpha_destblend : RB_BLENDCONTROL_ALPHA_DESTBLEND_SIZE;
+ unsigned int blend_force_enable : RB_BLENDCONTROL_BLEND_FORCE_ENABLE_SIZE;
+ unsigned int blend_force : RB_BLENDCONTROL_BLEND_FORCE_SIZE;
+ unsigned int : 1;
+ } rb_blendcontrol_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_blendcontrol_t {
+ unsigned int : 1;
+ unsigned int blend_force : RB_BLENDCONTROL_BLEND_FORCE_SIZE;
+ unsigned int blend_force_enable : RB_BLENDCONTROL_BLEND_FORCE_ENABLE_SIZE;
+ unsigned int alpha_destblend : RB_BLENDCONTROL_ALPHA_DESTBLEND_SIZE;
+ unsigned int alpha_comb_fcn : RB_BLENDCONTROL_ALPHA_COMB_FCN_SIZE;
+ unsigned int alpha_srcblend : RB_BLENDCONTROL_ALPHA_SRCBLEND_SIZE;
+ unsigned int : 3;
+ unsigned int color_destblend : RB_BLENDCONTROL_COLOR_DESTBLEND_SIZE;
+ unsigned int color_comb_fcn : RB_BLENDCONTROL_COLOR_COMB_FCN_SIZE;
+ unsigned int color_srcblend : RB_BLENDCONTROL_COLOR_SRCBLEND_SIZE;
+ } rb_blendcontrol_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_blendcontrol_t f;
+} rb_blendcontrol_u;
+
+
+/*
+ * RB_COLORCONTROL struct
+ */
+
+#define RB_COLORCONTROL_ALPHA_FUNC_SIZE 3
+#define RB_COLORCONTROL_ALPHA_TEST_ENABLE_SIZE 1
+#define RB_COLORCONTROL_ALPHA_TO_MASK_ENABLE_SIZE 1
+#define RB_COLORCONTROL_BLEND_DISABLE_SIZE 1
+#define RB_COLORCONTROL_FOG_ENABLE_SIZE 1
+#define RB_COLORCONTROL_VS_EXPORTS_FOG_SIZE 1
+#define RB_COLORCONTROL_ROP_CODE_SIZE 4
+#define RB_COLORCONTROL_DITHER_MODE_SIZE 2
+#define RB_COLORCONTROL_DITHER_TYPE_SIZE 2
+#define RB_COLORCONTROL_PIXEL_FOG_SIZE 1
+#define RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET0_SIZE 2
+#define RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET1_SIZE 2
+#define RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET2_SIZE 2
+#define RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET3_SIZE 2
+
+#define RB_COLORCONTROL_ALPHA_FUNC_SHIFT 0
+#define RB_COLORCONTROL_ALPHA_TEST_ENABLE_SHIFT 3
+#define RB_COLORCONTROL_ALPHA_TO_MASK_ENABLE_SHIFT 4
+#define RB_COLORCONTROL_BLEND_DISABLE_SHIFT 5
+#define RB_COLORCONTROL_FOG_ENABLE_SHIFT 6
+#define RB_COLORCONTROL_VS_EXPORTS_FOG_SHIFT 7
+#define RB_COLORCONTROL_ROP_CODE_SHIFT 8
+#define RB_COLORCONTROL_DITHER_MODE_SHIFT 12
+#define RB_COLORCONTROL_DITHER_TYPE_SHIFT 14
+#define RB_COLORCONTROL_PIXEL_FOG_SHIFT 16
+#define RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET0_SHIFT 24
+#define RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET1_SHIFT 26
+#define RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET2_SHIFT 28
+#define RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET3_SHIFT 30
+
+#define RB_COLORCONTROL_ALPHA_FUNC_MASK 0x00000007
+#define RB_COLORCONTROL_ALPHA_TEST_ENABLE_MASK 0x00000008
+#define RB_COLORCONTROL_ALPHA_TO_MASK_ENABLE_MASK 0x00000010
+#define RB_COLORCONTROL_BLEND_DISABLE_MASK 0x00000020
+#define RB_COLORCONTROL_FOG_ENABLE_MASK 0x00000040
+#define RB_COLORCONTROL_VS_EXPORTS_FOG_MASK 0x00000080
+#define RB_COLORCONTROL_ROP_CODE_MASK 0x00000f00
+#define RB_COLORCONTROL_DITHER_MODE_MASK 0x00003000
+#define RB_COLORCONTROL_DITHER_TYPE_MASK 0x0000c000
+#define RB_COLORCONTROL_PIXEL_FOG_MASK 0x00010000
+#define RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET0_MASK 0x03000000
+#define RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET1_MASK 0x0c000000
+#define RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET2_MASK 0x30000000
+#define RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET3_MASK 0xc0000000
+
+#define RB_COLORCONTROL_MASK \
+ (RB_COLORCONTROL_ALPHA_FUNC_MASK | \
+ RB_COLORCONTROL_ALPHA_TEST_ENABLE_MASK | \
+ RB_COLORCONTROL_ALPHA_TO_MASK_ENABLE_MASK | \
+ RB_COLORCONTROL_BLEND_DISABLE_MASK | \
+ RB_COLORCONTROL_FOG_ENABLE_MASK | \
+ RB_COLORCONTROL_VS_EXPORTS_FOG_MASK | \
+ RB_COLORCONTROL_ROP_CODE_MASK | \
+ RB_COLORCONTROL_DITHER_MODE_MASK | \
+ RB_COLORCONTROL_DITHER_TYPE_MASK | \
+ RB_COLORCONTROL_PIXEL_FOG_MASK | \
+ RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET0_MASK | \
+ RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET1_MASK | \
+ RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET2_MASK | \
+ RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET3_MASK)
+
+#define RB_COLORCONTROL(alpha_func, alpha_test_enable, alpha_to_mask_enable, blend_disable, fog_enable, vs_exports_fog, rop_code, dither_mode, dither_type, pixel_fog, alpha_to_mask_offset0, alpha_to_mask_offset1, alpha_to_mask_offset2, alpha_to_mask_offset3) \
+ ((alpha_func << RB_COLORCONTROL_ALPHA_FUNC_SHIFT) | \
+ (alpha_test_enable << RB_COLORCONTROL_ALPHA_TEST_ENABLE_SHIFT) | \
+ (alpha_to_mask_enable << RB_COLORCONTROL_ALPHA_TO_MASK_ENABLE_SHIFT) | \
+ (blend_disable << RB_COLORCONTROL_BLEND_DISABLE_SHIFT) | \
+ (fog_enable << RB_COLORCONTROL_FOG_ENABLE_SHIFT) | \
+ (vs_exports_fog << RB_COLORCONTROL_VS_EXPORTS_FOG_SHIFT) | \
+ (rop_code << RB_COLORCONTROL_ROP_CODE_SHIFT) | \
+ (dither_mode << RB_COLORCONTROL_DITHER_MODE_SHIFT) | \
+ (dither_type << RB_COLORCONTROL_DITHER_TYPE_SHIFT) | \
+ (pixel_fog << RB_COLORCONTROL_PIXEL_FOG_SHIFT) | \
+ (alpha_to_mask_offset0 << RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET0_SHIFT) | \
+ (alpha_to_mask_offset1 << RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET1_SHIFT) | \
+ (alpha_to_mask_offset2 << RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET2_SHIFT) | \
+ (alpha_to_mask_offset3 << RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET3_SHIFT))
+
+#define RB_COLORCONTROL_GET_ALPHA_FUNC(rb_colorcontrol) \
+ ((rb_colorcontrol & RB_COLORCONTROL_ALPHA_FUNC_MASK) >> RB_COLORCONTROL_ALPHA_FUNC_SHIFT)
+#define RB_COLORCONTROL_GET_ALPHA_TEST_ENABLE(rb_colorcontrol) \
+ ((rb_colorcontrol & RB_COLORCONTROL_ALPHA_TEST_ENABLE_MASK) >> RB_COLORCONTROL_ALPHA_TEST_ENABLE_SHIFT)
+#define RB_COLORCONTROL_GET_ALPHA_TO_MASK_ENABLE(rb_colorcontrol) \
+ ((rb_colorcontrol & RB_COLORCONTROL_ALPHA_TO_MASK_ENABLE_MASK) >> RB_COLORCONTROL_ALPHA_TO_MASK_ENABLE_SHIFT)
+#define RB_COLORCONTROL_GET_BLEND_DISABLE(rb_colorcontrol) \
+ ((rb_colorcontrol & RB_COLORCONTROL_BLEND_DISABLE_MASK) >> RB_COLORCONTROL_BLEND_DISABLE_SHIFT)
+#define RB_COLORCONTROL_GET_FOG_ENABLE(rb_colorcontrol) \
+ ((rb_colorcontrol & RB_COLORCONTROL_FOG_ENABLE_MASK) >> RB_COLORCONTROL_FOG_ENABLE_SHIFT)
+#define RB_COLORCONTROL_GET_VS_EXPORTS_FOG(rb_colorcontrol) \
+ ((rb_colorcontrol & RB_COLORCONTROL_VS_EXPORTS_FOG_MASK) >> RB_COLORCONTROL_VS_EXPORTS_FOG_SHIFT)
+#define RB_COLORCONTROL_GET_ROP_CODE(rb_colorcontrol) \
+ ((rb_colorcontrol & RB_COLORCONTROL_ROP_CODE_MASK) >> RB_COLORCONTROL_ROP_CODE_SHIFT)
+#define RB_COLORCONTROL_GET_DITHER_MODE(rb_colorcontrol) \
+ ((rb_colorcontrol & RB_COLORCONTROL_DITHER_MODE_MASK) >> RB_COLORCONTROL_DITHER_MODE_SHIFT)
+#define RB_COLORCONTROL_GET_DITHER_TYPE(rb_colorcontrol) \
+ ((rb_colorcontrol & RB_COLORCONTROL_DITHER_TYPE_MASK) >> RB_COLORCONTROL_DITHER_TYPE_SHIFT)
+#define RB_COLORCONTROL_GET_PIXEL_FOG(rb_colorcontrol) \
+ ((rb_colorcontrol & RB_COLORCONTROL_PIXEL_FOG_MASK) >> RB_COLORCONTROL_PIXEL_FOG_SHIFT)
+#define RB_COLORCONTROL_GET_ALPHA_TO_MASK_OFFSET0(rb_colorcontrol) \
+ ((rb_colorcontrol & RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET0_MASK) >> RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET0_SHIFT)
+#define RB_COLORCONTROL_GET_ALPHA_TO_MASK_OFFSET1(rb_colorcontrol) \
+ ((rb_colorcontrol & RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET1_MASK) >> RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET1_SHIFT)
+#define RB_COLORCONTROL_GET_ALPHA_TO_MASK_OFFSET2(rb_colorcontrol) \
+ ((rb_colorcontrol & RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET2_MASK) >> RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET2_SHIFT)
+#define RB_COLORCONTROL_GET_ALPHA_TO_MASK_OFFSET3(rb_colorcontrol) \
+ ((rb_colorcontrol & RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET3_MASK) >> RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET3_SHIFT)
+
+#define RB_COLORCONTROL_SET_ALPHA_FUNC(rb_colorcontrol_reg, alpha_func) \
+ rb_colorcontrol_reg = (rb_colorcontrol_reg & ~RB_COLORCONTROL_ALPHA_FUNC_MASK) | (alpha_func << RB_COLORCONTROL_ALPHA_FUNC_SHIFT)
+#define RB_COLORCONTROL_SET_ALPHA_TEST_ENABLE(rb_colorcontrol_reg, alpha_test_enable) \
+ rb_colorcontrol_reg = (rb_colorcontrol_reg & ~RB_COLORCONTROL_ALPHA_TEST_ENABLE_MASK) | (alpha_test_enable << RB_COLORCONTROL_ALPHA_TEST_ENABLE_SHIFT)
+#define RB_COLORCONTROL_SET_ALPHA_TO_MASK_ENABLE(rb_colorcontrol_reg, alpha_to_mask_enable) \
+ rb_colorcontrol_reg = (rb_colorcontrol_reg & ~RB_COLORCONTROL_ALPHA_TO_MASK_ENABLE_MASK) | (alpha_to_mask_enable << RB_COLORCONTROL_ALPHA_TO_MASK_ENABLE_SHIFT)
+#define RB_COLORCONTROL_SET_BLEND_DISABLE(rb_colorcontrol_reg, blend_disable) \
+ rb_colorcontrol_reg = (rb_colorcontrol_reg & ~RB_COLORCONTROL_BLEND_DISABLE_MASK) | (blend_disable << RB_COLORCONTROL_BLEND_DISABLE_SHIFT)
+#define RB_COLORCONTROL_SET_FOG_ENABLE(rb_colorcontrol_reg, fog_enable) \
+ rb_colorcontrol_reg = (rb_colorcontrol_reg & ~RB_COLORCONTROL_FOG_ENABLE_MASK) | (fog_enable << RB_COLORCONTROL_FOG_ENABLE_SHIFT)
+#define RB_COLORCONTROL_SET_VS_EXPORTS_FOG(rb_colorcontrol_reg, vs_exports_fog) \
+ rb_colorcontrol_reg = (rb_colorcontrol_reg & ~RB_COLORCONTROL_VS_EXPORTS_FOG_MASK) | (vs_exports_fog << RB_COLORCONTROL_VS_EXPORTS_FOG_SHIFT)
+#define RB_COLORCONTROL_SET_ROP_CODE(rb_colorcontrol_reg, rop_code) \
+ rb_colorcontrol_reg = (rb_colorcontrol_reg & ~RB_COLORCONTROL_ROP_CODE_MASK) | (rop_code << RB_COLORCONTROL_ROP_CODE_SHIFT)
+#define RB_COLORCONTROL_SET_DITHER_MODE(rb_colorcontrol_reg, dither_mode) \
+ rb_colorcontrol_reg = (rb_colorcontrol_reg & ~RB_COLORCONTROL_DITHER_MODE_MASK) | (dither_mode << RB_COLORCONTROL_DITHER_MODE_SHIFT)
+#define RB_COLORCONTROL_SET_DITHER_TYPE(rb_colorcontrol_reg, dither_type) \
+ rb_colorcontrol_reg = (rb_colorcontrol_reg & ~RB_COLORCONTROL_DITHER_TYPE_MASK) | (dither_type << RB_COLORCONTROL_DITHER_TYPE_SHIFT)
+#define RB_COLORCONTROL_SET_PIXEL_FOG(rb_colorcontrol_reg, pixel_fog) \
+ rb_colorcontrol_reg = (rb_colorcontrol_reg & ~RB_COLORCONTROL_PIXEL_FOG_MASK) | (pixel_fog << RB_COLORCONTROL_PIXEL_FOG_SHIFT)
+#define RB_COLORCONTROL_SET_ALPHA_TO_MASK_OFFSET0(rb_colorcontrol_reg, alpha_to_mask_offset0) \
+ rb_colorcontrol_reg = (rb_colorcontrol_reg & ~RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET0_MASK) | (alpha_to_mask_offset0 << RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET0_SHIFT)
+#define RB_COLORCONTROL_SET_ALPHA_TO_MASK_OFFSET1(rb_colorcontrol_reg, alpha_to_mask_offset1) \
+ rb_colorcontrol_reg = (rb_colorcontrol_reg & ~RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET1_MASK) | (alpha_to_mask_offset1 << RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET1_SHIFT)
+#define RB_COLORCONTROL_SET_ALPHA_TO_MASK_OFFSET2(rb_colorcontrol_reg, alpha_to_mask_offset2) \
+ rb_colorcontrol_reg = (rb_colorcontrol_reg & ~RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET2_MASK) | (alpha_to_mask_offset2 << RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET2_SHIFT)
+#define RB_COLORCONTROL_SET_ALPHA_TO_MASK_OFFSET3(rb_colorcontrol_reg, alpha_to_mask_offset3) \
+ rb_colorcontrol_reg = (rb_colorcontrol_reg & ~RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET3_MASK) | (alpha_to_mask_offset3 << RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET3_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_colorcontrol_t {
+ unsigned int alpha_func : RB_COLORCONTROL_ALPHA_FUNC_SIZE;
+ unsigned int alpha_test_enable : RB_COLORCONTROL_ALPHA_TEST_ENABLE_SIZE;
+ unsigned int alpha_to_mask_enable : RB_COLORCONTROL_ALPHA_TO_MASK_ENABLE_SIZE;
+ unsigned int blend_disable : RB_COLORCONTROL_BLEND_DISABLE_SIZE;
+ unsigned int fog_enable : RB_COLORCONTROL_FOG_ENABLE_SIZE;
+ unsigned int vs_exports_fog : RB_COLORCONTROL_VS_EXPORTS_FOG_SIZE;
+ unsigned int rop_code : RB_COLORCONTROL_ROP_CODE_SIZE;
+ unsigned int dither_mode : RB_COLORCONTROL_DITHER_MODE_SIZE;
+ unsigned int dither_type : RB_COLORCONTROL_DITHER_TYPE_SIZE;
+ unsigned int pixel_fog : RB_COLORCONTROL_PIXEL_FOG_SIZE;
+ unsigned int : 7;
+ unsigned int alpha_to_mask_offset0 : RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET0_SIZE;
+ unsigned int alpha_to_mask_offset1 : RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET1_SIZE;
+ unsigned int alpha_to_mask_offset2 : RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET2_SIZE;
+ unsigned int alpha_to_mask_offset3 : RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET3_SIZE;
+ } rb_colorcontrol_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_colorcontrol_t {
+ unsigned int alpha_to_mask_offset3 : RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET3_SIZE;
+ unsigned int alpha_to_mask_offset2 : RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET2_SIZE;
+ unsigned int alpha_to_mask_offset1 : RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET1_SIZE;
+ unsigned int alpha_to_mask_offset0 : RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET0_SIZE;
+ unsigned int : 7;
+ unsigned int pixel_fog : RB_COLORCONTROL_PIXEL_FOG_SIZE;
+ unsigned int dither_type : RB_COLORCONTROL_DITHER_TYPE_SIZE;
+ unsigned int dither_mode : RB_COLORCONTROL_DITHER_MODE_SIZE;
+ unsigned int rop_code : RB_COLORCONTROL_ROP_CODE_SIZE;
+ unsigned int vs_exports_fog : RB_COLORCONTROL_VS_EXPORTS_FOG_SIZE;
+ unsigned int fog_enable : RB_COLORCONTROL_FOG_ENABLE_SIZE;
+ unsigned int blend_disable : RB_COLORCONTROL_BLEND_DISABLE_SIZE;
+ unsigned int alpha_to_mask_enable : RB_COLORCONTROL_ALPHA_TO_MASK_ENABLE_SIZE;
+ unsigned int alpha_test_enable : RB_COLORCONTROL_ALPHA_TEST_ENABLE_SIZE;
+ unsigned int alpha_func : RB_COLORCONTROL_ALPHA_FUNC_SIZE;
+ } rb_colorcontrol_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_colorcontrol_t f;
+} rb_colorcontrol_u;
+
+
+/*
+ * RB_MODECONTROL struct
+ */
+
+#define RB_MODECONTROL_EDRAM_MODE_SIZE 3
+
+#define RB_MODECONTROL_EDRAM_MODE_SHIFT 0
+
+#define RB_MODECONTROL_EDRAM_MODE_MASK 0x00000007
+
+#define RB_MODECONTROL_MASK \
+ (RB_MODECONTROL_EDRAM_MODE_MASK)
+
+#define RB_MODECONTROL(edram_mode) \
+ ((edram_mode << RB_MODECONTROL_EDRAM_MODE_SHIFT))
+
+#define RB_MODECONTROL_GET_EDRAM_MODE(rb_modecontrol) \
+ ((rb_modecontrol & RB_MODECONTROL_EDRAM_MODE_MASK) >> RB_MODECONTROL_EDRAM_MODE_SHIFT)
+
+#define RB_MODECONTROL_SET_EDRAM_MODE(rb_modecontrol_reg, edram_mode) \
+ rb_modecontrol_reg = (rb_modecontrol_reg & ~RB_MODECONTROL_EDRAM_MODE_MASK) | (edram_mode << RB_MODECONTROL_EDRAM_MODE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_modecontrol_t {
+ unsigned int edram_mode : RB_MODECONTROL_EDRAM_MODE_SIZE;
+ unsigned int : 29;
+ } rb_modecontrol_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_modecontrol_t {
+ unsigned int : 29;
+ unsigned int edram_mode : RB_MODECONTROL_EDRAM_MODE_SIZE;
+ } rb_modecontrol_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_modecontrol_t f;
+} rb_modecontrol_u;
+
+
+/*
+ * RB_COLOR_DEST_MASK struct
+ */
+
+#define RB_COLOR_DEST_MASK_COLOR_DEST_MASK_SIZE 32
+
+#define RB_COLOR_DEST_MASK_COLOR_DEST_MASK_SHIFT 0
+
+#define RB_COLOR_DEST_MASK_COLOR_DEST_MASK_MASK 0xffffffff
+
+#define RB_COLOR_DEST_MASK_MASK \
+ (RB_COLOR_DEST_MASK_COLOR_DEST_MASK_MASK)
+
+#define RB_COLOR_DEST_MASK(color_dest_mask) \
+ ((color_dest_mask << RB_COLOR_DEST_MASK_COLOR_DEST_MASK_SHIFT))
+
+#define RB_COLOR_DEST_MASK_GET_COLOR_DEST_MASK(rb_color_dest_mask) \
+ ((rb_color_dest_mask & RB_COLOR_DEST_MASK_COLOR_DEST_MASK_MASK) >> RB_COLOR_DEST_MASK_COLOR_DEST_MASK_SHIFT)
+
+#define RB_COLOR_DEST_MASK_SET_COLOR_DEST_MASK(rb_color_dest_mask_reg, color_dest_mask) \
+ rb_color_dest_mask_reg = (rb_color_dest_mask_reg & ~RB_COLOR_DEST_MASK_COLOR_DEST_MASK_MASK) | (color_dest_mask << RB_COLOR_DEST_MASK_COLOR_DEST_MASK_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_color_dest_mask_t {
+ unsigned int color_dest_mask : RB_COLOR_DEST_MASK_COLOR_DEST_MASK_SIZE;
+ } rb_color_dest_mask_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_color_dest_mask_t {
+ unsigned int color_dest_mask : RB_COLOR_DEST_MASK_COLOR_DEST_MASK_SIZE;
+ } rb_color_dest_mask_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_color_dest_mask_t f;
+} rb_color_dest_mask_u;
+
+
+/*
+ * RB_COPY_CONTROL struct
+ */
+
+#define RB_COPY_CONTROL_COPY_SAMPLE_SELECT_SIZE 3
+#define RB_COPY_CONTROL_DEPTH_CLEAR_ENABLE_SIZE 1
+#define RB_COPY_CONTROL_CLEAR_MASK_SIZE 4
+
+#define RB_COPY_CONTROL_COPY_SAMPLE_SELECT_SHIFT 0
+#define RB_COPY_CONTROL_DEPTH_CLEAR_ENABLE_SHIFT 3
+#define RB_COPY_CONTROL_CLEAR_MASK_SHIFT 4
+
+#define RB_COPY_CONTROL_COPY_SAMPLE_SELECT_MASK 0x00000007
+#define RB_COPY_CONTROL_DEPTH_CLEAR_ENABLE_MASK 0x00000008
+#define RB_COPY_CONTROL_CLEAR_MASK_MASK 0x000000f0
+
+#define RB_COPY_CONTROL_MASK \
+ (RB_COPY_CONTROL_COPY_SAMPLE_SELECT_MASK | \
+ RB_COPY_CONTROL_DEPTH_CLEAR_ENABLE_MASK | \
+ RB_COPY_CONTROL_CLEAR_MASK_MASK)
+
+#define RB_COPY_CONTROL(copy_sample_select, depth_clear_enable, clear_mask) \
+ ((copy_sample_select << RB_COPY_CONTROL_COPY_SAMPLE_SELECT_SHIFT) | \
+ (depth_clear_enable << RB_COPY_CONTROL_DEPTH_CLEAR_ENABLE_SHIFT) | \
+ (clear_mask << RB_COPY_CONTROL_CLEAR_MASK_SHIFT))
+
+#define RB_COPY_CONTROL_GET_COPY_SAMPLE_SELECT(rb_copy_control) \
+ ((rb_copy_control & RB_COPY_CONTROL_COPY_SAMPLE_SELECT_MASK) >> RB_COPY_CONTROL_COPY_SAMPLE_SELECT_SHIFT)
+#define RB_COPY_CONTROL_GET_DEPTH_CLEAR_ENABLE(rb_copy_control) \
+ ((rb_copy_control & RB_COPY_CONTROL_DEPTH_CLEAR_ENABLE_MASK) >> RB_COPY_CONTROL_DEPTH_CLEAR_ENABLE_SHIFT)
+#define RB_COPY_CONTROL_GET_CLEAR_MASK(rb_copy_control) \
+ ((rb_copy_control & RB_COPY_CONTROL_CLEAR_MASK_MASK) >> RB_COPY_CONTROL_CLEAR_MASK_SHIFT)
+
+#define RB_COPY_CONTROL_SET_COPY_SAMPLE_SELECT(rb_copy_control_reg, copy_sample_select) \
+ rb_copy_control_reg = (rb_copy_control_reg & ~RB_COPY_CONTROL_COPY_SAMPLE_SELECT_MASK) | (copy_sample_select << RB_COPY_CONTROL_COPY_SAMPLE_SELECT_SHIFT)
+#define RB_COPY_CONTROL_SET_DEPTH_CLEAR_ENABLE(rb_copy_control_reg, depth_clear_enable) \
+ rb_copy_control_reg = (rb_copy_control_reg & ~RB_COPY_CONTROL_DEPTH_CLEAR_ENABLE_MASK) | (depth_clear_enable << RB_COPY_CONTROL_DEPTH_CLEAR_ENABLE_SHIFT)
+#define RB_COPY_CONTROL_SET_CLEAR_MASK(rb_copy_control_reg, clear_mask) \
+ rb_copy_control_reg = (rb_copy_control_reg & ~RB_COPY_CONTROL_CLEAR_MASK_MASK) | (clear_mask << RB_COPY_CONTROL_CLEAR_MASK_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_copy_control_t {
+ unsigned int copy_sample_select : RB_COPY_CONTROL_COPY_SAMPLE_SELECT_SIZE;
+ unsigned int depth_clear_enable : RB_COPY_CONTROL_DEPTH_CLEAR_ENABLE_SIZE;
+ unsigned int clear_mask : RB_COPY_CONTROL_CLEAR_MASK_SIZE;
+ unsigned int : 24;
+ } rb_copy_control_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_copy_control_t {
+ unsigned int : 24;
+ unsigned int clear_mask : RB_COPY_CONTROL_CLEAR_MASK_SIZE;
+ unsigned int depth_clear_enable : RB_COPY_CONTROL_DEPTH_CLEAR_ENABLE_SIZE;
+ unsigned int copy_sample_select : RB_COPY_CONTROL_COPY_SAMPLE_SELECT_SIZE;
+ } rb_copy_control_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_copy_control_t f;
+} rb_copy_control_u;
+
+
+/*
+ * RB_COPY_DEST_BASE struct
+ */
+
+#define RB_COPY_DEST_BASE_COPY_DEST_BASE_SIZE 20
+
+#define RB_COPY_DEST_BASE_COPY_DEST_BASE_SHIFT 12
+
+#define RB_COPY_DEST_BASE_COPY_DEST_BASE_MASK 0xfffff000
+
+#define RB_COPY_DEST_BASE_MASK \
+ (RB_COPY_DEST_BASE_COPY_DEST_BASE_MASK)
+
+#define RB_COPY_DEST_BASE(copy_dest_base) \
+ ((copy_dest_base << RB_COPY_DEST_BASE_COPY_DEST_BASE_SHIFT))
+
+#define RB_COPY_DEST_BASE_GET_COPY_DEST_BASE(rb_copy_dest_base) \
+ ((rb_copy_dest_base & RB_COPY_DEST_BASE_COPY_DEST_BASE_MASK) >> RB_COPY_DEST_BASE_COPY_DEST_BASE_SHIFT)
+
+#define RB_COPY_DEST_BASE_SET_COPY_DEST_BASE(rb_copy_dest_base_reg, copy_dest_base) \
+ rb_copy_dest_base_reg = (rb_copy_dest_base_reg & ~RB_COPY_DEST_BASE_COPY_DEST_BASE_MASK) | (copy_dest_base << RB_COPY_DEST_BASE_COPY_DEST_BASE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_copy_dest_base_t {
+ unsigned int : 12;
+ unsigned int copy_dest_base : RB_COPY_DEST_BASE_COPY_DEST_BASE_SIZE;
+ } rb_copy_dest_base_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_copy_dest_base_t {
+ unsigned int copy_dest_base : RB_COPY_DEST_BASE_COPY_DEST_BASE_SIZE;
+ unsigned int : 12;
+ } rb_copy_dest_base_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_copy_dest_base_t f;
+} rb_copy_dest_base_u;
+
+
+/*
+ * RB_COPY_DEST_PITCH struct
+ */
+
+#define RB_COPY_DEST_PITCH_COPY_DEST_PITCH_SIZE 9
+
+#define RB_COPY_DEST_PITCH_COPY_DEST_PITCH_SHIFT 0
+
+#define RB_COPY_DEST_PITCH_COPY_DEST_PITCH_MASK 0x000001ff
+
+#define RB_COPY_DEST_PITCH_MASK \
+ (RB_COPY_DEST_PITCH_COPY_DEST_PITCH_MASK)
+
+#define RB_COPY_DEST_PITCH(copy_dest_pitch) \
+ ((copy_dest_pitch << RB_COPY_DEST_PITCH_COPY_DEST_PITCH_SHIFT))
+
+#define RB_COPY_DEST_PITCH_GET_COPY_DEST_PITCH(rb_copy_dest_pitch) \
+ ((rb_copy_dest_pitch & RB_COPY_DEST_PITCH_COPY_DEST_PITCH_MASK) >> RB_COPY_DEST_PITCH_COPY_DEST_PITCH_SHIFT)
+
+#define RB_COPY_DEST_PITCH_SET_COPY_DEST_PITCH(rb_copy_dest_pitch_reg, copy_dest_pitch) \
+ rb_copy_dest_pitch_reg = (rb_copy_dest_pitch_reg & ~RB_COPY_DEST_PITCH_COPY_DEST_PITCH_MASK) | (copy_dest_pitch << RB_COPY_DEST_PITCH_COPY_DEST_PITCH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_copy_dest_pitch_t {
+ unsigned int copy_dest_pitch : RB_COPY_DEST_PITCH_COPY_DEST_PITCH_SIZE;
+ unsigned int : 23;
+ } rb_copy_dest_pitch_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_copy_dest_pitch_t {
+ unsigned int : 23;
+ unsigned int copy_dest_pitch : RB_COPY_DEST_PITCH_COPY_DEST_PITCH_SIZE;
+ } rb_copy_dest_pitch_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_copy_dest_pitch_t f;
+} rb_copy_dest_pitch_u;
+
+
+/*
+ * RB_COPY_DEST_INFO struct
+ */
+
+#define RB_COPY_DEST_INFO_COPY_DEST_ENDIAN_SIZE 3
+#define RB_COPY_DEST_INFO_COPY_DEST_LINEAR_SIZE 1
+#define RB_COPY_DEST_INFO_COPY_DEST_FORMAT_SIZE 4
+#define RB_COPY_DEST_INFO_COPY_DEST_SWAP_SIZE 2
+#define RB_COPY_DEST_INFO_COPY_DEST_DITHER_MODE_SIZE 2
+#define RB_COPY_DEST_INFO_COPY_DEST_DITHER_TYPE_SIZE 2
+#define RB_COPY_DEST_INFO_COPY_MASK_WRITE_RED_SIZE 1
+#define RB_COPY_DEST_INFO_COPY_MASK_WRITE_GREEN_SIZE 1
+#define RB_COPY_DEST_INFO_COPY_MASK_WRITE_BLUE_SIZE 1
+#define RB_COPY_DEST_INFO_COPY_MASK_WRITE_ALPHA_SIZE 1
+
+#define RB_COPY_DEST_INFO_COPY_DEST_ENDIAN_SHIFT 0
+#define RB_COPY_DEST_INFO_COPY_DEST_LINEAR_SHIFT 3
+#define RB_COPY_DEST_INFO_COPY_DEST_FORMAT_SHIFT 4
+#define RB_COPY_DEST_INFO_COPY_DEST_SWAP_SHIFT 8
+#define RB_COPY_DEST_INFO_COPY_DEST_DITHER_MODE_SHIFT 10
+#define RB_COPY_DEST_INFO_COPY_DEST_DITHER_TYPE_SHIFT 12
+#define RB_COPY_DEST_INFO_COPY_MASK_WRITE_RED_SHIFT 14
+#define RB_COPY_DEST_INFO_COPY_MASK_WRITE_GREEN_SHIFT 15
+#define RB_COPY_DEST_INFO_COPY_MASK_WRITE_BLUE_SHIFT 16
+#define RB_COPY_DEST_INFO_COPY_MASK_WRITE_ALPHA_SHIFT 17
+
+#define RB_COPY_DEST_INFO_COPY_DEST_ENDIAN_MASK 0x00000007
+#define RB_COPY_DEST_INFO_COPY_DEST_LINEAR_MASK 0x00000008
+#define RB_COPY_DEST_INFO_COPY_DEST_FORMAT_MASK 0x000000f0
+#define RB_COPY_DEST_INFO_COPY_DEST_SWAP_MASK 0x00000300
+#define RB_COPY_DEST_INFO_COPY_DEST_DITHER_MODE_MASK 0x00000c00
+#define RB_COPY_DEST_INFO_COPY_DEST_DITHER_TYPE_MASK 0x00003000
+#define RB_COPY_DEST_INFO_COPY_MASK_WRITE_RED_MASK 0x00004000
+#define RB_COPY_DEST_INFO_COPY_MASK_WRITE_GREEN_MASK 0x00008000
+#define RB_COPY_DEST_INFO_COPY_MASK_WRITE_BLUE_MASK 0x00010000
+#define RB_COPY_DEST_INFO_COPY_MASK_WRITE_ALPHA_MASK 0x00020000
+
+#define RB_COPY_DEST_INFO_MASK \
+ (RB_COPY_DEST_INFO_COPY_DEST_ENDIAN_MASK | \
+ RB_COPY_DEST_INFO_COPY_DEST_LINEAR_MASK | \
+ RB_COPY_DEST_INFO_COPY_DEST_FORMAT_MASK | \
+ RB_COPY_DEST_INFO_COPY_DEST_SWAP_MASK | \
+ RB_COPY_DEST_INFO_COPY_DEST_DITHER_MODE_MASK | \
+ RB_COPY_DEST_INFO_COPY_DEST_DITHER_TYPE_MASK | \
+ RB_COPY_DEST_INFO_COPY_MASK_WRITE_RED_MASK | \
+ RB_COPY_DEST_INFO_COPY_MASK_WRITE_GREEN_MASK | \
+ RB_COPY_DEST_INFO_COPY_MASK_WRITE_BLUE_MASK | \
+ RB_COPY_DEST_INFO_COPY_MASK_WRITE_ALPHA_MASK)
+
+#define RB_COPY_DEST_INFO(copy_dest_endian, copy_dest_linear, copy_dest_format, copy_dest_swap, copy_dest_dither_mode, copy_dest_dither_type, copy_mask_write_red, copy_mask_write_green, copy_mask_write_blue, copy_mask_write_alpha) \
+ ((copy_dest_endian << RB_COPY_DEST_INFO_COPY_DEST_ENDIAN_SHIFT) | \
+ (copy_dest_linear << RB_COPY_DEST_INFO_COPY_DEST_LINEAR_SHIFT) | \
+ (copy_dest_format << RB_COPY_DEST_INFO_COPY_DEST_FORMAT_SHIFT) | \
+ (copy_dest_swap << RB_COPY_DEST_INFO_COPY_DEST_SWAP_SHIFT) | \
+ (copy_dest_dither_mode << RB_COPY_DEST_INFO_COPY_DEST_DITHER_MODE_SHIFT) | \
+ (copy_dest_dither_type << RB_COPY_DEST_INFO_COPY_DEST_DITHER_TYPE_SHIFT) | \
+ (copy_mask_write_red << RB_COPY_DEST_INFO_COPY_MASK_WRITE_RED_SHIFT) | \
+ (copy_mask_write_green << RB_COPY_DEST_INFO_COPY_MASK_WRITE_GREEN_SHIFT) | \
+ (copy_mask_write_blue << RB_COPY_DEST_INFO_COPY_MASK_WRITE_BLUE_SHIFT) | \
+ (copy_mask_write_alpha << RB_COPY_DEST_INFO_COPY_MASK_WRITE_ALPHA_SHIFT))
+
+#define RB_COPY_DEST_INFO_GET_COPY_DEST_ENDIAN(rb_copy_dest_info) \
+ ((rb_copy_dest_info & RB_COPY_DEST_INFO_COPY_DEST_ENDIAN_MASK) >> RB_COPY_DEST_INFO_COPY_DEST_ENDIAN_SHIFT)
+#define RB_COPY_DEST_INFO_GET_COPY_DEST_LINEAR(rb_copy_dest_info) \
+ ((rb_copy_dest_info & RB_COPY_DEST_INFO_COPY_DEST_LINEAR_MASK) >> RB_COPY_DEST_INFO_COPY_DEST_LINEAR_SHIFT)
+#define RB_COPY_DEST_INFO_GET_COPY_DEST_FORMAT(rb_copy_dest_info) \
+ ((rb_copy_dest_info & RB_COPY_DEST_INFO_COPY_DEST_FORMAT_MASK) >> RB_COPY_DEST_INFO_COPY_DEST_FORMAT_SHIFT)
+#define RB_COPY_DEST_INFO_GET_COPY_DEST_SWAP(rb_copy_dest_info) \
+ ((rb_copy_dest_info & RB_COPY_DEST_INFO_COPY_DEST_SWAP_MASK) >> RB_COPY_DEST_INFO_COPY_DEST_SWAP_SHIFT)
+#define RB_COPY_DEST_INFO_GET_COPY_DEST_DITHER_MODE(rb_copy_dest_info) \
+ ((rb_copy_dest_info & RB_COPY_DEST_INFO_COPY_DEST_DITHER_MODE_MASK) >> RB_COPY_DEST_INFO_COPY_DEST_DITHER_MODE_SHIFT)
+#define RB_COPY_DEST_INFO_GET_COPY_DEST_DITHER_TYPE(rb_copy_dest_info) \
+ ((rb_copy_dest_info & RB_COPY_DEST_INFO_COPY_DEST_DITHER_TYPE_MASK) >> RB_COPY_DEST_INFO_COPY_DEST_DITHER_TYPE_SHIFT)
+#define RB_COPY_DEST_INFO_GET_COPY_MASK_WRITE_RED(rb_copy_dest_info) \
+ ((rb_copy_dest_info & RB_COPY_DEST_INFO_COPY_MASK_WRITE_RED_MASK) >> RB_COPY_DEST_INFO_COPY_MASK_WRITE_RED_SHIFT)
+#define RB_COPY_DEST_INFO_GET_COPY_MASK_WRITE_GREEN(rb_copy_dest_info) \
+ ((rb_copy_dest_info & RB_COPY_DEST_INFO_COPY_MASK_WRITE_GREEN_MASK) >> RB_COPY_DEST_INFO_COPY_MASK_WRITE_GREEN_SHIFT)
+#define RB_COPY_DEST_INFO_GET_COPY_MASK_WRITE_BLUE(rb_copy_dest_info) \
+ ((rb_copy_dest_info & RB_COPY_DEST_INFO_COPY_MASK_WRITE_BLUE_MASK) >> RB_COPY_DEST_INFO_COPY_MASK_WRITE_BLUE_SHIFT)
+#define RB_COPY_DEST_INFO_GET_COPY_MASK_WRITE_ALPHA(rb_copy_dest_info) \
+ ((rb_copy_dest_info & RB_COPY_DEST_INFO_COPY_MASK_WRITE_ALPHA_MASK) >> RB_COPY_DEST_INFO_COPY_MASK_WRITE_ALPHA_SHIFT)
+
+#define RB_COPY_DEST_INFO_SET_COPY_DEST_ENDIAN(rb_copy_dest_info_reg, copy_dest_endian) \
+ rb_copy_dest_info_reg = (rb_copy_dest_info_reg & ~RB_COPY_DEST_INFO_COPY_DEST_ENDIAN_MASK) | (copy_dest_endian << RB_COPY_DEST_INFO_COPY_DEST_ENDIAN_SHIFT)
+#define RB_COPY_DEST_INFO_SET_COPY_DEST_LINEAR(rb_copy_dest_info_reg, copy_dest_linear) \
+ rb_copy_dest_info_reg = (rb_copy_dest_info_reg & ~RB_COPY_DEST_INFO_COPY_DEST_LINEAR_MASK) | (copy_dest_linear << RB_COPY_DEST_INFO_COPY_DEST_LINEAR_SHIFT)
+#define RB_COPY_DEST_INFO_SET_COPY_DEST_FORMAT(rb_copy_dest_info_reg, copy_dest_format) \
+ rb_copy_dest_info_reg = (rb_copy_dest_info_reg & ~RB_COPY_DEST_INFO_COPY_DEST_FORMAT_MASK) | (copy_dest_format << RB_COPY_DEST_INFO_COPY_DEST_FORMAT_SHIFT)
+#define RB_COPY_DEST_INFO_SET_COPY_DEST_SWAP(rb_copy_dest_info_reg, copy_dest_swap) \
+ rb_copy_dest_info_reg = (rb_copy_dest_info_reg & ~RB_COPY_DEST_INFO_COPY_DEST_SWAP_MASK) | (copy_dest_swap << RB_COPY_DEST_INFO_COPY_DEST_SWAP_SHIFT)
+#define RB_COPY_DEST_INFO_SET_COPY_DEST_DITHER_MODE(rb_copy_dest_info_reg, copy_dest_dither_mode) \
+ rb_copy_dest_info_reg = (rb_copy_dest_info_reg & ~RB_COPY_DEST_INFO_COPY_DEST_DITHER_MODE_MASK) | (copy_dest_dither_mode << RB_COPY_DEST_INFO_COPY_DEST_DITHER_MODE_SHIFT)
+#define RB_COPY_DEST_INFO_SET_COPY_DEST_DITHER_TYPE(rb_copy_dest_info_reg, copy_dest_dither_type) \
+ rb_copy_dest_info_reg = (rb_copy_dest_info_reg & ~RB_COPY_DEST_INFO_COPY_DEST_DITHER_TYPE_MASK) | (copy_dest_dither_type << RB_COPY_DEST_INFO_COPY_DEST_DITHER_TYPE_SHIFT)
+#define RB_COPY_DEST_INFO_SET_COPY_MASK_WRITE_RED(rb_copy_dest_info_reg, copy_mask_write_red) \
+ rb_copy_dest_info_reg = (rb_copy_dest_info_reg & ~RB_COPY_DEST_INFO_COPY_MASK_WRITE_RED_MASK) | (copy_mask_write_red << RB_COPY_DEST_INFO_COPY_MASK_WRITE_RED_SHIFT)
+#define RB_COPY_DEST_INFO_SET_COPY_MASK_WRITE_GREEN(rb_copy_dest_info_reg, copy_mask_write_green) \
+ rb_copy_dest_info_reg = (rb_copy_dest_info_reg & ~RB_COPY_DEST_INFO_COPY_MASK_WRITE_GREEN_MASK) | (copy_mask_write_green << RB_COPY_DEST_INFO_COPY_MASK_WRITE_GREEN_SHIFT)
+#define RB_COPY_DEST_INFO_SET_COPY_MASK_WRITE_BLUE(rb_copy_dest_info_reg, copy_mask_write_blue) \
+ rb_copy_dest_info_reg = (rb_copy_dest_info_reg & ~RB_COPY_DEST_INFO_COPY_MASK_WRITE_BLUE_MASK) | (copy_mask_write_blue << RB_COPY_DEST_INFO_COPY_MASK_WRITE_BLUE_SHIFT)
+#define RB_COPY_DEST_INFO_SET_COPY_MASK_WRITE_ALPHA(rb_copy_dest_info_reg, copy_mask_write_alpha) \
+ rb_copy_dest_info_reg = (rb_copy_dest_info_reg & ~RB_COPY_DEST_INFO_COPY_MASK_WRITE_ALPHA_MASK) | (copy_mask_write_alpha << RB_COPY_DEST_INFO_COPY_MASK_WRITE_ALPHA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_copy_dest_info_t {
+ unsigned int copy_dest_endian : RB_COPY_DEST_INFO_COPY_DEST_ENDIAN_SIZE;
+ unsigned int copy_dest_linear : RB_COPY_DEST_INFO_COPY_DEST_LINEAR_SIZE;
+ unsigned int copy_dest_format : RB_COPY_DEST_INFO_COPY_DEST_FORMAT_SIZE;
+ unsigned int copy_dest_swap : RB_COPY_DEST_INFO_COPY_DEST_SWAP_SIZE;
+ unsigned int copy_dest_dither_mode : RB_COPY_DEST_INFO_COPY_DEST_DITHER_MODE_SIZE;
+ unsigned int copy_dest_dither_type : RB_COPY_DEST_INFO_COPY_DEST_DITHER_TYPE_SIZE;
+ unsigned int copy_mask_write_red : RB_COPY_DEST_INFO_COPY_MASK_WRITE_RED_SIZE;
+ unsigned int copy_mask_write_green : RB_COPY_DEST_INFO_COPY_MASK_WRITE_GREEN_SIZE;
+ unsigned int copy_mask_write_blue : RB_COPY_DEST_INFO_COPY_MASK_WRITE_BLUE_SIZE;
+ unsigned int copy_mask_write_alpha : RB_COPY_DEST_INFO_COPY_MASK_WRITE_ALPHA_SIZE;
+ unsigned int : 14;
+ } rb_copy_dest_info_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_copy_dest_info_t {
+ unsigned int : 14;
+ unsigned int copy_mask_write_alpha : RB_COPY_DEST_INFO_COPY_MASK_WRITE_ALPHA_SIZE;
+ unsigned int copy_mask_write_blue : RB_COPY_DEST_INFO_COPY_MASK_WRITE_BLUE_SIZE;
+ unsigned int copy_mask_write_green : RB_COPY_DEST_INFO_COPY_MASK_WRITE_GREEN_SIZE;
+ unsigned int copy_mask_write_red : RB_COPY_DEST_INFO_COPY_MASK_WRITE_RED_SIZE;
+ unsigned int copy_dest_dither_type : RB_COPY_DEST_INFO_COPY_DEST_DITHER_TYPE_SIZE;
+ unsigned int copy_dest_dither_mode : RB_COPY_DEST_INFO_COPY_DEST_DITHER_MODE_SIZE;
+ unsigned int copy_dest_swap : RB_COPY_DEST_INFO_COPY_DEST_SWAP_SIZE;
+ unsigned int copy_dest_format : RB_COPY_DEST_INFO_COPY_DEST_FORMAT_SIZE;
+ unsigned int copy_dest_linear : RB_COPY_DEST_INFO_COPY_DEST_LINEAR_SIZE;
+ unsigned int copy_dest_endian : RB_COPY_DEST_INFO_COPY_DEST_ENDIAN_SIZE;
+ } rb_copy_dest_info_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_copy_dest_info_t f;
+} rb_copy_dest_info_u;
+
+
+/*
+ * RB_COPY_DEST_PIXEL_OFFSET struct
+ */
+
+#define RB_COPY_DEST_PIXEL_OFFSET_OFFSET_X_SIZE 13
+#define RB_COPY_DEST_PIXEL_OFFSET_OFFSET_Y_SIZE 13
+
+#define RB_COPY_DEST_PIXEL_OFFSET_OFFSET_X_SHIFT 0
+#define RB_COPY_DEST_PIXEL_OFFSET_OFFSET_Y_SHIFT 13
+
+#define RB_COPY_DEST_PIXEL_OFFSET_OFFSET_X_MASK 0x00001fff
+#define RB_COPY_DEST_PIXEL_OFFSET_OFFSET_Y_MASK 0x03ffe000
+
+#define RB_COPY_DEST_PIXEL_OFFSET_MASK \
+ (RB_COPY_DEST_PIXEL_OFFSET_OFFSET_X_MASK | \
+ RB_COPY_DEST_PIXEL_OFFSET_OFFSET_Y_MASK)
+
+#define RB_COPY_DEST_PIXEL_OFFSET(offset_x, offset_y) \
+ ((offset_x << RB_COPY_DEST_PIXEL_OFFSET_OFFSET_X_SHIFT) | \
+ (offset_y << RB_COPY_DEST_PIXEL_OFFSET_OFFSET_Y_SHIFT))
+
+#define RB_COPY_DEST_PIXEL_OFFSET_GET_OFFSET_X(rb_copy_dest_pixel_offset) \
+ ((rb_copy_dest_pixel_offset & RB_COPY_DEST_PIXEL_OFFSET_OFFSET_X_MASK) >> RB_COPY_DEST_PIXEL_OFFSET_OFFSET_X_SHIFT)
+#define RB_COPY_DEST_PIXEL_OFFSET_GET_OFFSET_Y(rb_copy_dest_pixel_offset) \
+ ((rb_copy_dest_pixel_offset & RB_COPY_DEST_PIXEL_OFFSET_OFFSET_Y_MASK) >> RB_COPY_DEST_PIXEL_OFFSET_OFFSET_Y_SHIFT)
+
+#define RB_COPY_DEST_PIXEL_OFFSET_SET_OFFSET_X(rb_copy_dest_pixel_offset_reg, offset_x) \
+ rb_copy_dest_pixel_offset_reg = (rb_copy_dest_pixel_offset_reg & ~RB_COPY_DEST_PIXEL_OFFSET_OFFSET_X_MASK) | (offset_x << RB_COPY_DEST_PIXEL_OFFSET_OFFSET_X_SHIFT)
+#define RB_COPY_DEST_PIXEL_OFFSET_SET_OFFSET_Y(rb_copy_dest_pixel_offset_reg, offset_y) \
+ rb_copy_dest_pixel_offset_reg = (rb_copy_dest_pixel_offset_reg & ~RB_COPY_DEST_PIXEL_OFFSET_OFFSET_Y_MASK) | (offset_y << RB_COPY_DEST_PIXEL_OFFSET_OFFSET_Y_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_copy_dest_pixel_offset_t {
+ unsigned int offset_x : RB_COPY_DEST_PIXEL_OFFSET_OFFSET_X_SIZE;
+ unsigned int offset_y : RB_COPY_DEST_PIXEL_OFFSET_OFFSET_Y_SIZE;
+ unsigned int : 6;
+ } rb_copy_dest_pixel_offset_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_copy_dest_pixel_offset_t {
+ unsigned int : 6;
+ unsigned int offset_y : RB_COPY_DEST_PIXEL_OFFSET_OFFSET_Y_SIZE;
+ unsigned int offset_x : RB_COPY_DEST_PIXEL_OFFSET_OFFSET_X_SIZE;
+ } rb_copy_dest_pixel_offset_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_copy_dest_pixel_offset_t f;
+} rb_copy_dest_pixel_offset_u;
+
+
+/*
+ * RB_DEPTH_CLEAR struct
+ */
+
+#define RB_DEPTH_CLEAR_DEPTH_CLEAR_SIZE 32
+
+#define RB_DEPTH_CLEAR_DEPTH_CLEAR_SHIFT 0
+
+#define RB_DEPTH_CLEAR_DEPTH_CLEAR_MASK 0xffffffff
+
+#define RB_DEPTH_CLEAR_MASK \
+ (RB_DEPTH_CLEAR_DEPTH_CLEAR_MASK)
+
+#define RB_DEPTH_CLEAR(depth_clear) \
+ ((depth_clear << RB_DEPTH_CLEAR_DEPTH_CLEAR_SHIFT))
+
+#define RB_DEPTH_CLEAR_GET_DEPTH_CLEAR(rb_depth_clear) \
+ ((rb_depth_clear & RB_DEPTH_CLEAR_DEPTH_CLEAR_MASK) >> RB_DEPTH_CLEAR_DEPTH_CLEAR_SHIFT)
+
+#define RB_DEPTH_CLEAR_SET_DEPTH_CLEAR(rb_depth_clear_reg, depth_clear) \
+ rb_depth_clear_reg = (rb_depth_clear_reg & ~RB_DEPTH_CLEAR_DEPTH_CLEAR_MASK) | (depth_clear << RB_DEPTH_CLEAR_DEPTH_CLEAR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_depth_clear_t {
+ unsigned int depth_clear : RB_DEPTH_CLEAR_DEPTH_CLEAR_SIZE;
+ } rb_depth_clear_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_depth_clear_t {
+ unsigned int depth_clear : RB_DEPTH_CLEAR_DEPTH_CLEAR_SIZE;
+ } rb_depth_clear_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_depth_clear_t f;
+} rb_depth_clear_u;
+
+
+/*
+ * RB_SAMPLE_COUNT_CTL struct
+ */
+
+#define RB_SAMPLE_COUNT_CTL_RESET_SAMPLE_COUNT_SIZE 1
+#define RB_SAMPLE_COUNT_CTL_COPY_SAMPLE_COUNT_SIZE 1
+
+#define RB_SAMPLE_COUNT_CTL_RESET_SAMPLE_COUNT_SHIFT 0
+#define RB_SAMPLE_COUNT_CTL_COPY_SAMPLE_COUNT_SHIFT 1
+
+#define RB_SAMPLE_COUNT_CTL_RESET_SAMPLE_COUNT_MASK 0x00000001
+#define RB_SAMPLE_COUNT_CTL_COPY_SAMPLE_COUNT_MASK 0x00000002
+
+#define RB_SAMPLE_COUNT_CTL_MASK \
+ (RB_SAMPLE_COUNT_CTL_RESET_SAMPLE_COUNT_MASK | \
+ RB_SAMPLE_COUNT_CTL_COPY_SAMPLE_COUNT_MASK)
+
+#define RB_SAMPLE_COUNT_CTL(reset_sample_count, copy_sample_count) \
+ ((reset_sample_count << RB_SAMPLE_COUNT_CTL_RESET_SAMPLE_COUNT_SHIFT) | \
+ (copy_sample_count << RB_SAMPLE_COUNT_CTL_COPY_SAMPLE_COUNT_SHIFT))
+
+#define RB_SAMPLE_COUNT_CTL_GET_RESET_SAMPLE_COUNT(rb_sample_count_ctl) \
+ ((rb_sample_count_ctl & RB_SAMPLE_COUNT_CTL_RESET_SAMPLE_COUNT_MASK) >> RB_SAMPLE_COUNT_CTL_RESET_SAMPLE_COUNT_SHIFT)
+#define RB_SAMPLE_COUNT_CTL_GET_COPY_SAMPLE_COUNT(rb_sample_count_ctl) \
+ ((rb_sample_count_ctl & RB_SAMPLE_COUNT_CTL_COPY_SAMPLE_COUNT_MASK) >> RB_SAMPLE_COUNT_CTL_COPY_SAMPLE_COUNT_SHIFT)
+
+#define RB_SAMPLE_COUNT_CTL_SET_RESET_SAMPLE_COUNT(rb_sample_count_ctl_reg, reset_sample_count) \
+ rb_sample_count_ctl_reg = (rb_sample_count_ctl_reg & ~RB_SAMPLE_COUNT_CTL_RESET_SAMPLE_COUNT_MASK) | (reset_sample_count << RB_SAMPLE_COUNT_CTL_RESET_SAMPLE_COUNT_SHIFT)
+#define RB_SAMPLE_COUNT_CTL_SET_COPY_SAMPLE_COUNT(rb_sample_count_ctl_reg, copy_sample_count) \
+ rb_sample_count_ctl_reg = (rb_sample_count_ctl_reg & ~RB_SAMPLE_COUNT_CTL_COPY_SAMPLE_COUNT_MASK) | (copy_sample_count << RB_SAMPLE_COUNT_CTL_COPY_SAMPLE_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_sample_count_ctl_t {
+ unsigned int reset_sample_count : RB_SAMPLE_COUNT_CTL_RESET_SAMPLE_COUNT_SIZE;
+ unsigned int copy_sample_count : RB_SAMPLE_COUNT_CTL_COPY_SAMPLE_COUNT_SIZE;
+ unsigned int : 30;
+ } rb_sample_count_ctl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_sample_count_ctl_t {
+ unsigned int : 30;
+ unsigned int copy_sample_count : RB_SAMPLE_COUNT_CTL_COPY_SAMPLE_COUNT_SIZE;
+ unsigned int reset_sample_count : RB_SAMPLE_COUNT_CTL_RESET_SAMPLE_COUNT_SIZE;
+ } rb_sample_count_ctl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_sample_count_ctl_t f;
+} rb_sample_count_ctl_u;
+
+
+/*
+ * RB_SAMPLE_COUNT_ADDR struct
+ */
+
+#define RB_SAMPLE_COUNT_ADDR_SAMPLE_COUNT_ADDR_SIZE 32
+
+#define RB_SAMPLE_COUNT_ADDR_SAMPLE_COUNT_ADDR_SHIFT 0
+
+#define RB_SAMPLE_COUNT_ADDR_SAMPLE_COUNT_ADDR_MASK 0xffffffff
+
+#define RB_SAMPLE_COUNT_ADDR_MASK \
+ (RB_SAMPLE_COUNT_ADDR_SAMPLE_COUNT_ADDR_MASK)
+
+#define RB_SAMPLE_COUNT_ADDR(sample_count_addr) \
+ ((sample_count_addr << RB_SAMPLE_COUNT_ADDR_SAMPLE_COUNT_ADDR_SHIFT))
+
+#define RB_SAMPLE_COUNT_ADDR_GET_SAMPLE_COUNT_ADDR(rb_sample_count_addr) \
+ ((rb_sample_count_addr & RB_SAMPLE_COUNT_ADDR_SAMPLE_COUNT_ADDR_MASK) >> RB_SAMPLE_COUNT_ADDR_SAMPLE_COUNT_ADDR_SHIFT)
+
+#define RB_SAMPLE_COUNT_ADDR_SET_SAMPLE_COUNT_ADDR(rb_sample_count_addr_reg, sample_count_addr) \
+ rb_sample_count_addr_reg = (rb_sample_count_addr_reg & ~RB_SAMPLE_COUNT_ADDR_SAMPLE_COUNT_ADDR_MASK) | (sample_count_addr << RB_SAMPLE_COUNT_ADDR_SAMPLE_COUNT_ADDR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_sample_count_addr_t {
+ unsigned int sample_count_addr : RB_SAMPLE_COUNT_ADDR_SAMPLE_COUNT_ADDR_SIZE;
+ } rb_sample_count_addr_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_sample_count_addr_t {
+ unsigned int sample_count_addr : RB_SAMPLE_COUNT_ADDR_SAMPLE_COUNT_ADDR_SIZE;
+ } rb_sample_count_addr_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_sample_count_addr_t f;
+} rb_sample_count_addr_u;
+
+
+/*
+ * RB_BC_CONTROL struct
+ */
+
+#define RB_BC_CONTROL_ACCUM_LINEAR_MODE_ENABLE_SIZE 1
+#define RB_BC_CONTROL_ACCUM_TIMEOUT_SELECT_SIZE 2
+#define RB_BC_CONTROL_DISABLE_EDRAM_CAM_SIZE 1
+#define RB_BC_CONTROL_DISABLE_EZ_FAST_CONTEXT_SWITCH_SIZE 1
+#define RB_BC_CONTROL_DISABLE_EZ_NULL_ZCMD_DROP_SIZE 1
+#define RB_BC_CONTROL_DISABLE_LZ_NULL_ZCMD_DROP_SIZE 1
+#define RB_BC_CONTROL_ENABLE_AZ_THROTTLE_SIZE 1
+#define RB_BC_CONTROL_AZ_THROTTLE_COUNT_SIZE 5
+#define RB_BC_CONTROL_ENABLE_CRC_UPDATE_SIZE 1
+#define RB_BC_CONTROL_CRC_MODE_SIZE 1
+#define RB_BC_CONTROL_DISABLE_SAMPLE_COUNTERS_SIZE 1
+#define RB_BC_CONTROL_DISABLE_ACCUM_SIZE 1
+#define RB_BC_CONTROL_ACCUM_ALLOC_MASK_SIZE 4
+#define RB_BC_CONTROL_LINEAR_PERFORMANCE_ENABLE_SIZE 1
+#define RB_BC_CONTROL_ACCUM_DATA_FIFO_LIMIT_SIZE 4
+#define RB_BC_CONTROL_MEM_EXPORT_TIMEOUT_SELECT_SIZE 2
+#define RB_BC_CONTROL_MEM_EXPORT_LINEAR_MODE_ENABLE_SIZE 1
+#define RB_BC_CONTROL_RESERVED9_SIZE 1
+#define RB_BC_CONTROL_RESERVED10_SIZE 1
+
+#define RB_BC_CONTROL_ACCUM_LINEAR_MODE_ENABLE_SHIFT 0
+#define RB_BC_CONTROL_ACCUM_TIMEOUT_SELECT_SHIFT 1
+#define RB_BC_CONTROL_DISABLE_EDRAM_CAM_SHIFT 3
+#define RB_BC_CONTROL_DISABLE_EZ_FAST_CONTEXT_SWITCH_SHIFT 4
+#define RB_BC_CONTROL_DISABLE_EZ_NULL_ZCMD_DROP_SHIFT 5
+#define RB_BC_CONTROL_DISABLE_LZ_NULL_ZCMD_DROP_SHIFT 6
+#define RB_BC_CONTROL_ENABLE_AZ_THROTTLE_SHIFT 7
+#define RB_BC_CONTROL_AZ_THROTTLE_COUNT_SHIFT 8
+#define RB_BC_CONTROL_ENABLE_CRC_UPDATE_SHIFT 14
+#define RB_BC_CONTROL_CRC_MODE_SHIFT 15
+#define RB_BC_CONTROL_DISABLE_SAMPLE_COUNTERS_SHIFT 16
+#define RB_BC_CONTROL_DISABLE_ACCUM_SHIFT 17
+#define RB_BC_CONTROL_ACCUM_ALLOC_MASK_SHIFT 18
+#define RB_BC_CONTROL_LINEAR_PERFORMANCE_ENABLE_SHIFT 22
+#define RB_BC_CONTROL_ACCUM_DATA_FIFO_LIMIT_SHIFT 23
+#define RB_BC_CONTROL_MEM_EXPORT_TIMEOUT_SELECT_SHIFT 27
+#define RB_BC_CONTROL_MEM_EXPORT_LINEAR_MODE_ENABLE_SHIFT 29
+#define RB_BC_CONTROL_RESERVED9_SHIFT 30
+#define RB_BC_CONTROL_RESERVED10_SHIFT 31
+
+#define RB_BC_CONTROL_ACCUM_LINEAR_MODE_ENABLE_MASK 0x00000001
+#define RB_BC_CONTROL_ACCUM_TIMEOUT_SELECT_MASK 0x00000006
+#define RB_BC_CONTROL_DISABLE_EDRAM_CAM_MASK 0x00000008
+#define RB_BC_CONTROL_DISABLE_EZ_FAST_CONTEXT_SWITCH_MASK 0x00000010
+#define RB_BC_CONTROL_DISABLE_EZ_NULL_ZCMD_DROP_MASK 0x00000020
+#define RB_BC_CONTROL_DISABLE_LZ_NULL_ZCMD_DROP_MASK 0x00000040
+#define RB_BC_CONTROL_ENABLE_AZ_THROTTLE_MASK 0x00000080
+#define RB_BC_CONTROL_AZ_THROTTLE_COUNT_MASK 0x00001f00
+#define RB_BC_CONTROL_ENABLE_CRC_UPDATE_MASK 0x00004000
+#define RB_BC_CONTROL_CRC_MODE_MASK 0x00008000
+#define RB_BC_CONTROL_DISABLE_SAMPLE_COUNTERS_MASK 0x00010000
+#define RB_BC_CONTROL_DISABLE_ACCUM_MASK 0x00020000
+#define RB_BC_CONTROL_ACCUM_ALLOC_MASK_MASK 0x003c0000
+#define RB_BC_CONTROL_LINEAR_PERFORMANCE_ENABLE_MASK 0x00400000
+#define RB_BC_CONTROL_ACCUM_DATA_FIFO_LIMIT_MASK 0x07800000
+#define RB_BC_CONTROL_MEM_EXPORT_TIMEOUT_SELECT_MASK 0x18000000
+#define RB_BC_CONTROL_MEM_EXPORT_LINEAR_MODE_ENABLE_MASK 0x20000000
+#define RB_BC_CONTROL_RESERVED9_MASK 0x40000000
+#define RB_BC_CONTROL_RESERVED10_MASK 0x80000000
+
+#define RB_BC_CONTROL_MASK \
+ (RB_BC_CONTROL_ACCUM_LINEAR_MODE_ENABLE_MASK | \
+ RB_BC_CONTROL_ACCUM_TIMEOUT_SELECT_MASK | \
+ RB_BC_CONTROL_DISABLE_EDRAM_CAM_MASK | \
+ RB_BC_CONTROL_DISABLE_EZ_FAST_CONTEXT_SWITCH_MASK | \
+ RB_BC_CONTROL_DISABLE_EZ_NULL_ZCMD_DROP_MASK | \
+ RB_BC_CONTROL_DISABLE_LZ_NULL_ZCMD_DROP_MASK | \
+ RB_BC_CONTROL_ENABLE_AZ_THROTTLE_MASK | \
+ RB_BC_CONTROL_AZ_THROTTLE_COUNT_MASK | \
+ RB_BC_CONTROL_ENABLE_CRC_UPDATE_MASK | \
+ RB_BC_CONTROL_CRC_MODE_MASK | \
+ RB_BC_CONTROL_DISABLE_SAMPLE_COUNTERS_MASK | \
+ RB_BC_CONTROL_DISABLE_ACCUM_MASK | \
+ RB_BC_CONTROL_ACCUM_ALLOC_MASK_MASK | \
+ RB_BC_CONTROL_LINEAR_PERFORMANCE_ENABLE_MASK | \
+ RB_BC_CONTROL_ACCUM_DATA_FIFO_LIMIT_MASK | \
+ RB_BC_CONTROL_MEM_EXPORT_TIMEOUT_SELECT_MASK | \
+ RB_BC_CONTROL_MEM_EXPORT_LINEAR_MODE_ENABLE_MASK | \
+ RB_BC_CONTROL_RESERVED9_MASK | \
+ RB_BC_CONTROL_RESERVED10_MASK)
+
+#define RB_BC_CONTROL(accum_linear_mode_enable, accum_timeout_select, disable_edram_cam, disable_ez_fast_context_switch, disable_ez_null_zcmd_drop, disable_lz_null_zcmd_drop, enable_az_throttle, az_throttle_count, enable_crc_update, crc_mode, disable_sample_counters, disable_accum, accum_alloc_mask, linear_performance_enable, accum_data_fifo_limit, mem_export_timeout_select, mem_export_linear_mode_enable, reserved9, reserved10) \
+ ((accum_linear_mode_enable << RB_BC_CONTROL_ACCUM_LINEAR_MODE_ENABLE_SHIFT) | \
+ (accum_timeout_select << RB_BC_CONTROL_ACCUM_TIMEOUT_SELECT_SHIFT) | \
+ (disable_edram_cam << RB_BC_CONTROL_DISABLE_EDRAM_CAM_SHIFT) | \
+ (disable_ez_fast_context_switch << RB_BC_CONTROL_DISABLE_EZ_FAST_CONTEXT_SWITCH_SHIFT) | \
+ (disable_ez_null_zcmd_drop << RB_BC_CONTROL_DISABLE_EZ_NULL_ZCMD_DROP_SHIFT) | \
+ (disable_lz_null_zcmd_drop << RB_BC_CONTROL_DISABLE_LZ_NULL_ZCMD_DROP_SHIFT) | \
+ (enable_az_throttle << RB_BC_CONTROL_ENABLE_AZ_THROTTLE_SHIFT) | \
+ (az_throttle_count << RB_BC_CONTROL_AZ_THROTTLE_COUNT_SHIFT) | \
+ (enable_crc_update << RB_BC_CONTROL_ENABLE_CRC_UPDATE_SHIFT) | \
+ (crc_mode << RB_BC_CONTROL_CRC_MODE_SHIFT) | \
+ (disable_sample_counters << RB_BC_CONTROL_DISABLE_SAMPLE_COUNTERS_SHIFT) | \
+ (disable_accum << RB_BC_CONTROL_DISABLE_ACCUM_SHIFT) | \
+ (accum_alloc_mask << RB_BC_CONTROL_ACCUM_ALLOC_MASK_SHIFT) | \
+ (linear_performance_enable << RB_BC_CONTROL_LINEAR_PERFORMANCE_ENABLE_SHIFT) | \
+ (accum_data_fifo_limit << RB_BC_CONTROL_ACCUM_DATA_FIFO_LIMIT_SHIFT) | \
+ (mem_export_timeout_select << RB_BC_CONTROL_MEM_EXPORT_TIMEOUT_SELECT_SHIFT) | \
+ (mem_export_linear_mode_enable << RB_BC_CONTROL_MEM_EXPORT_LINEAR_MODE_ENABLE_SHIFT) | \
+ (reserved9 << RB_BC_CONTROL_RESERVED9_SHIFT) | \
+ (reserved10 << RB_BC_CONTROL_RESERVED10_SHIFT))
+
+#define RB_BC_CONTROL_GET_ACCUM_LINEAR_MODE_ENABLE(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_ACCUM_LINEAR_MODE_ENABLE_MASK) >> RB_BC_CONTROL_ACCUM_LINEAR_MODE_ENABLE_SHIFT)
+#define RB_BC_CONTROL_GET_ACCUM_TIMEOUT_SELECT(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_ACCUM_TIMEOUT_SELECT_MASK) >> RB_BC_CONTROL_ACCUM_TIMEOUT_SELECT_SHIFT)
+#define RB_BC_CONTROL_GET_DISABLE_EDRAM_CAM(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_DISABLE_EDRAM_CAM_MASK) >> RB_BC_CONTROL_DISABLE_EDRAM_CAM_SHIFT)
+#define RB_BC_CONTROL_GET_DISABLE_EZ_FAST_CONTEXT_SWITCH(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_DISABLE_EZ_FAST_CONTEXT_SWITCH_MASK) >> RB_BC_CONTROL_DISABLE_EZ_FAST_CONTEXT_SWITCH_SHIFT)
+#define RB_BC_CONTROL_GET_DISABLE_EZ_NULL_ZCMD_DROP(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_DISABLE_EZ_NULL_ZCMD_DROP_MASK) >> RB_BC_CONTROL_DISABLE_EZ_NULL_ZCMD_DROP_SHIFT)
+#define RB_BC_CONTROL_GET_DISABLE_LZ_NULL_ZCMD_DROP(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_DISABLE_LZ_NULL_ZCMD_DROP_MASK) >> RB_BC_CONTROL_DISABLE_LZ_NULL_ZCMD_DROP_SHIFT)
+#define RB_BC_CONTROL_GET_ENABLE_AZ_THROTTLE(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_ENABLE_AZ_THROTTLE_MASK) >> RB_BC_CONTROL_ENABLE_AZ_THROTTLE_SHIFT)
+#define RB_BC_CONTROL_GET_AZ_THROTTLE_COUNT(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_AZ_THROTTLE_COUNT_MASK) >> RB_BC_CONTROL_AZ_THROTTLE_COUNT_SHIFT)
+#define RB_BC_CONTROL_GET_ENABLE_CRC_UPDATE(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_ENABLE_CRC_UPDATE_MASK) >> RB_BC_CONTROL_ENABLE_CRC_UPDATE_SHIFT)
+#define RB_BC_CONTROL_GET_CRC_MODE(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_CRC_MODE_MASK) >> RB_BC_CONTROL_CRC_MODE_SHIFT)
+#define RB_BC_CONTROL_GET_DISABLE_SAMPLE_COUNTERS(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_DISABLE_SAMPLE_COUNTERS_MASK) >> RB_BC_CONTROL_DISABLE_SAMPLE_COUNTERS_SHIFT)
+#define RB_BC_CONTROL_GET_DISABLE_ACCUM(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_DISABLE_ACCUM_MASK) >> RB_BC_CONTROL_DISABLE_ACCUM_SHIFT)
+#define RB_BC_CONTROL_GET_ACCUM_ALLOC_MASK(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_ACCUM_ALLOC_MASK_MASK) >> RB_BC_CONTROL_ACCUM_ALLOC_MASK_SHIFT)
+#define RB_BC_CONTROL_GET_LINEAR_PERFORMANCE_ENABLE(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_LINEAR_PERFORMANCE_ENABLE_MASK) >> RB_BC_CONTROL_LINEAR_PERFORMANCE_ENABLE_SHIFT)
+#define RB_BC_CONTROL_GET_ACCUM_DATA_FIFO_LIMIT(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_ACCUM_DATA_FIFO_LIMIT_MASK) >> RB_BC_CONTROL_ACCUM_DATA_FIFO_LIMIT_SHIFT)
+#define RB_BC_CONTROL_GET_MEM_EXPORT_TIMEOUT_SELECT(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_MEM_EXPORT_TIMEOUT_SELECT_MASK) >> RB_BC_CONTROL_MEM_EXPORT_TIMEOUT_SELECT_SHIFT)
+#define RB_BC_CONTROL_GET_MEM_EXPORT_LINEAR_MODE_ENABLE(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_MEM_EXPORT_LINEAR_MODE_ENABLE_MASK) >> RB_BC_CONTROL_MEM_EXPORT_LINEAR_MODE_ENABLE_SHIFT)
+#define RB_BC_CONTROL_GET_RESERVED9(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_RESERVED9_MASK) >> RB_BC_CONTROL_RESERVED9_SHIFT)
+#define RB_BC_CONTROL_GET_RESERVED10(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_RESERVED10_MASK) >> RB_BC_CONTROL_RESERVED10_SHIFT)
+
+#define RB_BC_CONTROL_SET_ACCUM_LINEAR_MODE_ENABLE(rb_bc_control_reg, accum_linear_mode_enable) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_ACCUM_LINEAR_MODE_ENABLE_MASK) | (accum_linear_mode_enable << RB_BC_CONTROL_ACCUM_LINEAR_MODE_ENABLE_SHIFT)
+#define RB_BC_CONTROL_SET_ACCUM_TIMEOUT_SELECT(rb_bc_control_reg, accum_timeout_select) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_ACCUM_TIMEOUT_SELECT_MASK) | (accum_timeout_select << RB_BC_CONTROL_ACCUM_TIMEOUT_SELECT_SHIFT)
+#define RB_BC_CONTROL_SET_DISABLE_EDRAM_CAM(rb_bc_control_reg, disable_edram_cam) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_DISABLE_EDRAM_CAM_MASK) | (disable_edram_cam << RB_BC_CONTROL_DISABLE_EDRAM_CAM_SHIFT)
+#define RB_BC_CONTROL_SET_DISABLE_EZ_FAST_CONTEXT_SWITCH(rb_bc_control_reg, disable_ez_fast_context_switch) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_DISABLE_EZ_FAST_CONTEXT_SWITCH_MASK) | (disable_ez_fast_context_switch << RB_BC_CONTROL_DISABLE_EZ_FAST_CONTEXT_SWITCH_SHIFT)
+#define RB_BC_CONTROL_SET_DISABLE_EZ_NULL_ZCMD_DROP(rb_bc_control_reg, disable_ez_null_zcmd_drop) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_DISABLE_EZ_NULL_ZCMD_DROP_MASK) | (disable_ez_null_zcmd_drop << RB_BC_CONTROL_DISABLE_EZ_NULL_ZCMD_DROP_SHIFT)
+#define RB_BC_CONTROL_SET_DISABLE_LZ_NULL_ZCMD_DROP(rb_bc_control_reg, disable_lz_null_zcmd_drop) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_DISABLE_LZ_NULL_ZCMD_DROP_MASK) | (disable_lz_null_zcmd_drop << RB_BC_CONTROL_DISABLE_LZ_NULL_ZCMD_DROP_SHIFT)
+#define RB_BC_CONTROL_SET_ENABLE_AZ_THROTTLE(rb_bc_control_reg, enable_az_throttle) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_ENABLE_AZ_THROTTLE_MASK) | (enable_az_throttle << RB_BC_CONTROL_ENABLE_AZ_THROTTLE_SHIFT)
+#define RB_BC_CONTROL_SET_AZ_THROTTLE_COUNT(rb_bc_control_reg, az_throttle_count) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_AZ_THROTTLE_COUNT_MASK) | (az_throttle_count << RB_BC_CONTROL_AZ_THROTTLE_COUNT_SHIFT)
+#define RB_BC_CONTROL_SET_ENABLE_CRC_UPDATE(rb_bc_control_reg, enable_crc_update) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_ENABLE_CRC_UPDATE_MASK) | (enable_crc_update << RB_BC_CONTROL_ENABLE_CRC_UPDATE_SHIFT)
+#define RB_BC_CONTROL_SET_CRC_MODE(rb_bc_control_reg, crc_mode) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_CRC_MODE_MASK) | (crc_mode << RB_BC_CONTROL_CRC_MODE_SHIFT)
+#define RB_BC_CONTROL_SET_DISABLE_SAMPLE_COUNTERS(rb_bc_control_reg, disable_sample_counters) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_DISABLE_SAMPLE_COUNTERS_MASK) | (disable_sample_counters << RB_BC_CONTROL_DISABLE_SAMPLE_COUNTERS_SHIFT)
+#define RB_BC_CONTROL_SET_DISABLE_ACCUM(rb_bc_control_reg, disable_accum) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_DISABLE_ACCUM_MASK) | (disable_accum << RB_BC_CONTROL_DISABLE_ACCUM_SHIFT)
+#define RB_BC_CONTROL_SET_ACCUM_ALLOC_MASK(rb_bc_control_reg, accum_alloc_mask) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_ACCUM_ALLOC_MASK_MASK) | (accum_alloc_mask << RB_BC_CONTROL_ACCUM_ALLOC_MASK_SHIFT)
+#define RB_BC_CONTROL_SET_LINEAR_PERFORMANCE_ENABLE(rb_bc_control_reg, linear_performance_enable) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_LINEAR_PERFORMANCE_ENABLE_MASK) | (linear_performance_enable << RB_BC_CONTROL_LINEAR_PERFORMANCE_ENABLE_SHIFT)
+#define RB_BC_CONTROL_SET_ACCUM_DATA_FIFO_LIMIT(rb_bc_control_reg, accum_data_fifo_limit) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_ACCUM_DATA_FIFO_LIMIT_MASK) | (accum_data_fifo_limit << RB_BC_CONTROL_ACCUM_DATA_FIFO_LIMIT_SHIFT)
+#define RB_BC_CONTROL_SET_MEM_EXPORT_TIMEOUT_SELECT(rb_bc_control_reg, mem_export_timeout_select) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_MEM_EXPORT_TIMEOUT_SELECT_MASK) | (mem_export_timeout_select << RB_BC_CONTROL_MEM_EXPORT_TIMEOUT_SELECT_SHIFT)
+#define RB_BC_CONTROL_SET_MEM_EXPORT_LINEAR_MODE_ENABLE(rb_bc_control_reg, mem_export_linear_mode_enable) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_MEM_EXPORT_LINEAR_MODE_ENABLE_MASK) | (mem_export_linear_mode_enable << RB_BC_CONTROL_MEM_EXPORT_LINEAR_MODE_ENABLE_SHIFT)
+#define RB_BC_CONTROL_SET_RESERVED9(rb_bc_control_reg, reserved9) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_RESERVED9_MASK) | (reserved9 << RB_BC_CONTROL_RESERVED9_SHIFT)
+#define RB_BC_CONTROL_SET_RESERVED10(rb_bc_control_reg, reserved10) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_RESERVED10_MASK) | (reserved10 << RB_BC_CONTROL_RESERVED10_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_bc_control_t {
+ unsigned int accum_linear_mode_enable : RB_BC_CONTROL_ACCUM_LINEAR_MODE_ENABLE_SIZE;
+ unsigned int accum_timeout_select : RB_BC_CONTROL_ACCUM_TIMEOUT_SELECT_SIZE;
+ unsigned int disable_edram_cam : RB_BC_CONTROL_DISABLE_EDRAM_CAM_SIZE;
+ unsigned int disable_ez_fast_context_switch : RB_BC_CONTROL_DISABLE_EZ_FAST_CONTEXT_SWITCH_SIZE;
+ unsigned int disable_ez_null_zcmd_drop : RB_BC_CONTROL_DISABLE_EZ_NULL_ZCMD_DROP_SIZE;
+ unsigned int disable_lz_null_zcmd_drop : RB_BC_CONTROL_DISABLE_LZ_NULL_ZCMD_DROP_SIZE;
+ unsigned int enable_az_throttle : RB_BC_CONTROL_ENABLE_AZ_THROTTLE_SIZE;
+ unsigned int az_throttle_count : RB_BC_CONTROL_AZ_THROTTLE_COUNT_SIZE;
+ unsigned int : 1;
+ unsigned int enable_crc_update : RB_BC_CONTROL_ENABLE_CRC_UPDATE_SIZE;
+ unsigned int crc_mode : RB_BC_CONTROL_CRC_MODE_SIZE;
+ unsigned int disable_sample_counters : RB_BC_CONTROL_DISABLE_SAMPLE_COUNTERS_SIZE;
+ unsigned int disable_accum : RB_BC_CONTROL_DISABLE_ACCUM_SIZE;
+ unsigned int accum_alloc_mask : RB_BC_CONTROL_ACCUM_ALLOC_MASK_SIZE;
+ unsigned int linear_performance_enable : RB_BC_CONTROL_LINEAR_PERFORMANCE_ENABLE_SIZE;
+ unsigned int accum_data_fifo_limit : RB_BC_CONTROL_ACCUM_DATA_FIFO_LIMIT_SIZE;
+ unsigned int mem_export_timeout_select : RB_BC_CONTROL_MEM_EXPORT_TIMEOUT_SELECT_SIZE;
+ unsigned int mem_export_linear_mode_enable : RB_BC_CONTROL_MEM_EXPORT_LINEAR_MODE_ENABLE_SIZE;
+ unsigned int reserved9 : RB_BC_CONTROL_RESERVED9_SIZE;
+ unsigned int reserved10 : RB_BC_CONTROL_RESERVED10_SIZE;
+ } rb_bc_control_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_bc_control_t {
+ unsigned int reserved10 : RB_BC_CONTROL_RESERVED10_SIZE;
+ unsigned int reserved9 : RB_BC_CONTROL_RESERVED9_SIZE;
+ unsigned int mem_export_linear_mode_enable : RB_BC_CONTROL_MEM_EXPORT_LINEAR_MODE_ENABLE_SIZE;
+ unsigned int mem_export_timeout_select : RB_BC_CONTROL_MEM_EXPORT_TIMEOUT_SELECT_SIZE;
+ unsigned int accum_data_fifo_limit : RB_BC_CONTROL_ACCUM_DATA_FIFO_LIMIT_SIZE;
+ unsigned int linear_performance_enable : RB_BC_CONTROL_LINEAR_PERFORMANCE_ENABLE_SIZE;
+ unsigned int accum_alloc_mask : RB_BC_CONTROL_ACCUM_ALLOC_MASK_SIZE;
+ unsigned int disable_accum : RB_BC_CONTROL_DISABLE_ACCUM_SIZE;
+ unsigned int disable_sample_counters : RB_BC_CONTROL_DISABLE_SAMPLE_COUNTERS_SIZE;
+ unsigned int crc_mode : RB_BC_CONTROL_CRC_MODE_SIZE;
+ unsigned int enable_crc_update : RB_BC_CONTROL_ENABLE_CRC_UPDATE_SIZE;
+ unsigned int : 1;
+ unsigned int az_throttle_count : RB_BC_CONTROL_AZ_THROTTLE_COUNT_SIZE;
+ unsigned int enable_az_throttle : RB_BC_CONTROL_ENABLE_AZ_THROTTLE_SIZE;
+ unsigned int disable_lz_null_zcmd_drop : RB_BC_CONTROL_DISABLE_LZ_NULL_ZCMD_DROP_SIZE;
+ unsigned int disable_ez_null_zcmd_drop : RB_BC_CONTROL_DISABLE_EZ_NULL_ZCMD_DROP_SIZE;
+ unsigned int disable_ez_fast_context_switch : RB_BC_CONTROL_DISABLE_EZ_FAST_CONTEXT_SWITCH_SIZE;
+ unsigned int disable_edram_cam : RB_BC_CONTROL_DISABLE_EDRAM_CAM_SIZE;
+ unsigned int accum_timeout_select : RB_BC_CONTROL_ACCUM_TIMEOUT_SELECT_SIZE;
+ unsigned int accum_linear_mode_enable : RB_BC_CONTROL_ACCUM_LINEAR_MODE_ENABLE_SIZE;
+ } rb_bc_control_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_bc_control_t f;
+} rb_bc_control_u;
+
+
+/*
+ * RB_EDRAM_INFO struct
+ */
+
+#define RB_EDRAM_INFO_EDRAM_SIZE_SIZE 4
+#define RB_EDRAM_INFO_EDRAM_MAPPING_MODE_SIZE 2
+#define RB_EDRAM_INFO_EDRAM_RANGE_SIZE 18
+
+#define RB_EDRAM_INFO_EDRAM_SIZE_SHIFT 0
+#define RB_EDRAM_INFO_EDRAM_MAPPING_MODE_SHIFT 4
+#define RB_EDRAM_INFO_EDRAM_RANGE_SHIFT 14
+
+#define RB_EDRAM_INFO_EDRAM_SIZE_MASK 0x0000000f
+#define RB_EDRAM_INFO_EDRAM_MAPPING_MODE_MASK 0x00000030
+#define RB_EDRAM_INFO_EDRAM_RANGE_MASK 0xffffc000
+
+#define RB_EDRAM_INFO_MASK \
+ (RB_EDRAM_INFO_EDRAM_SIZE_MASK | \
+ RB_EDRAM_INFO_EDRAM_MAPPING_MODE_MASK | \
+ RB_EDRAM_INFO_EDRAM_RANGE_MASK)
+
+#define RB_EDRAM_INFO(edram_size, edram_mapping_mode, edram_range) \
+ ((edram_size << RB_EDRAM_INFO_EDRAM_SIZE_SHIFT) | \
+ (edram_mapping_mode << RB_EDRAM_INFO_EDRAM_MAPPING_MODE_SHIFT) | \
+ (edram_range << RB_EDRAM_INFO_EDRAM_RANGE_SHIFT))
+
+#define RB_EDRAM_INFO_GET_EDRAM_SIZE(rb_edram_info) \
+ ((rb_edram_info & RB_EDRAM_INFO_EDRAM_SIZE_MASK) >> RB_EDRAM_INFO_EDRAM_SIZE_SHIFT)
+#define RB_EDRAM_INFO_GET_EDRAM_MAPPING_MODE(rb_edram_info) \
+ ((rb_edram_info & RB_EDRAM_INFO_EDRAM_MAPPING_MODE_MASK) >> RB_EDRAM_INFO_EDRAM_MAPPING_MODE_SHIFT)
+#define RB_EDRAM_INFO_GET_EDRAM_RANGE(rb_edram_info) \
+ ((rb_edram_info & RB_EDRAM_INFO_EDRAM_RANGE_MASK) >> RB_EDRAM_INFO_EDRAM_RANGE_SHIFT)
+
+#define RB_EDRAM_INFO_SET_EDRAM_SIZE(rb_edram_info_reg, edram_size) \
+ rb_edram_info_reg = (rb_edram_info_reg & ~RB_EDRAM_INFO_EDRAM_SIZE_MASK) | (edram_size << RB_EDRAM_INFO_EDRAM_SIZE_SHIFT)
+#define RB_EDRAM_INFO_SET_EDRAM_MAPPING_MODE(rb_edram_info_reg, edram_mapping_mode) \
+ rb_edram_info_reg = (rb_edram_info_reg & ~RB_EDRAM_INFO_EDRAM_MAPPING_MODE_MASK) | (edram_mapping_mode << RB_EDRAM_INFO_EDRAM_MAPPING_MODE_SHIFT)
+#define RB_EDRAM_INFO_SET_EDRAM_RANGE(rb_edram_info_reg, edram_range) \
+ rb_edram_info_reg = (rb_edram_info_reg & ~RB_EDRAM_INFO_EDRAM_RANGE_MASK) | (edram_range << RB_EDRAM_INFO_EDRAM_RANGE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_edram_info_t {
+ unsigned int edram_size : RB_EDRAM_INFO_EDRAM_SIZE_SIZE;
+ unsigned int edram_mapping_mode : RB_EDRAM_INFO_EDRAM_MAPPING_MODE_SIZE;
+ unsigned int : 8;
+ unsigned int edram_range : RB_EDRAM_INFO_EDRAM_RANGE_SIZE;
+ } rb_edram_info_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_edram_info_t {
+ unsigned int edram_range : RB_EDRAM_INFO_EDRAM_RANGE_SIZE;
+ unsigned int : 8;
+ unsigned int edram_mapping_mode : RB_EDRAM_INFO_EDRAM_MAPPING_MODE_SIZE;
+ unsigned int edram_size : RB_EDRAM_INFO_EDRAM_SIZE_SIZE;
+ } rb_edram_info_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_edram_info_t f;
+} rb_edram_info_u;
+
+
+/*
+ * RB_CRC_RD_PORT struct
+ */
+
+#define RB_CRC_RD_PORT_CRC_DATA_SIZE 32
+
+#define RB_CRC_RD_PORT_CRC_DATA_SHIFT 0
+
+#define RB_CRC_RD_PORT_CRC_DATA_MASK 0xffffffff
+
+#define RB_CRC_RD_PORT_MASK \
+ (RB_CRC_RD_PORT_CRC_DATA_MASK)
+
+#define RB_CRC_RD_PORT(crc_data) \
+ ((crc_data << RB_CRC_RD_PORT_CRC_DATA_SHIFT))
+
+#define RB_CRC_RD_PORT_GET_CRC_DATA(rb_crc_rd_port) \
+ ((rb_crc_rd_port & RB_CRC_RD_PORT_CRC_DATA_MASK) >> RB_CRC_RD_PORT_CRC_DATA_SHIFT)
+
+#define RB_CRC_RD_PORT_SET_CRC_DATA(rb_crc_rd_port_reg, crc_data) \
+ rb_crc_rd_port_reg = (rb_crc_rd_port_reg & ~RB_CRC_RD_PORT_CRC_DATA_MASK) | (crc_data << RB_CRC_RD_PORT_CRC_DATA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_crc_rd_port_t {
+ unsigned int crc_data : RB_CRC_RD_PORT_CRC_DATA_SIZE;
+ } rb_crc_rd_port_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_crc_rd_port_t {
+ unsigned int crc_data : RB_CRC_RD_PORT_CRC_DATA_SIZE;
+ } rb_crc_rd_port_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_crc_rd_port_t f;
+} rb_crc_rd_port_u;
+
+
+/*
+ * RB_CRC_CONTROL struct
+ */
+
+#define RB_CRC_CONTROL_CRC_RD_ADVANCE_SIZE 1
+
+#define RB_CRC_CONTROL_CRC_RD_ADVANCE_SHIFT 0
+
+#define RB_CRC_CONTROL_CRC_RD_ADVANCE_MASK 0x00000001
+
+#define RB_CRC_CONTROL_MASK \
+ (RB_CRC_CONTROL_CRC_RD_ADVANCE_MASK)
+
+#define RB_CRC_CONTROL(crc_rd_advance) \
+ ((crc_rd_advance << RB_CRC_CONTROL_CRC_RD_ADVANCE_SHIFT))
+
+#define RB_CRC_CONTROL_GET_CRC_RD_ADVANCE(rb_crc_control) \
+ ((rb_crc_control & RB_CRC_CONTROL_CRC_RD_ADVANCE_MASK) >> RB_CRC_CONTROL_CRC_RD_ADVANCE_SHIFT)
+
+#define RB_CRC_CONTROL_SET_CRC_RD_ADVANCE(rb_crc_control_reg, crc_rd_advance) \
+ rb_crc_control_reg = (rb_crc_control_reg & ~RB_CRC_CONTROL_CRC_RD_ADVANCE_MASK) | (crc_rd_advance << RB_CRC_CONTROL_CRC_RD_ADVANCE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_crc_control_t {
+ unsigned int crc_rd_advance : RB_CRC_CONTROL_CRC_RD_ADVANCE_SIZE;
+ unsigned int : 31;
+ } rb_crc_control_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_crc_control_t {
+ unsigned int : 31;
+ unsigned int crc_rd_advance : RB_CRC_CONTROL_CRC_RD_ADVANCE_SIZE;
+ } rb_crc_control_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_crc_control_t f;
+} rb_crc_control_u;
+
+
+/*
+ * RB_CRC_MASK struct
+ */
+
+#define RB_CRC_MASK_CRC_MASK_SIZE 32
+
+#define RB_CRC_MASK_CRC_MASK_SHIFT 0
+
+#define RB_CRC_MASK_CRC_MASK_MASK 0xffffffff
+
+#define RB_CRC_MASK_MASK \
+ (RB_CRC_MASK_CRC_MASK_MASK)
+
+#define RB_CRC_MASK(crc_mask) \
+ ((crc_mask << RB_CRC_MASK_CRC_MASK_SHIFT))
+
+#define RB_CRC_MASK_GET_CRC_MASK(rb_crc_mask) \
+ ((rb_crc_mask & RB_CRC_MASK_CRC_MASK_MASK) >> RB_CRC_MASK_CRC_MASK_SHIFT)
+
+#define RB_CRC_MASK_SET_CRC_MASK(rb_crc_mask_reg, crc_mask) \
+ rb_crc_mask_reg = (rb_crc_mask_reg & ~RB_CRC_MASK_CRC_MASK_MASK) | (crc_mask << RB_CRC_MASK_CRC_MASK_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_crc_mask_t {
+ unsigned int crc_mask : RB_CRC_MASK_CRC_MASK_SIZE;
+ } rb_crc_mask_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_crc_mask_t {
+ unsigned int crc_mask : RB_CRC_MASK_CRC_MASK_SIZE;
+ } rb_crc_mask_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_crc_mask_t f;
+} rb_crc_mask_u;
+
+
+/*
+ * RB_PERFCOUNTER0_SELECT struct
+ */
+
+#define RB_PERFCOUNTER0_SELECT_PERF_SEL_SIZE 8
+
+#define RB_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT 0
+
+#define RB_PERFCOUNTER0_SELECT_PERF_SEL_MASK 0x000000ff
+
+#define RB_PERFCOUNTER0_SELECT_MASK \
+ (RB_PERFCOUNTER0_SELECT_PERF_SEL_MASK)
+
+#define RB_PERFCOUNTER0_SELECT(perf_sel) \
+ ((perf_sel << RB_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT))
+
+#define RB_PERFCOUNTER0_SELECT_GET_PERF_SEL(rb_perfcounter0_select) \
+ ((rb_perfcounter0_select & RB_PERFCOUNTER0_SELECT_PERF_SEL_MASK) >> RB_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT)
+
+#define RB_PERFCOUNTER0_SELECT_SET_PERF_SEL(rb_perfcounter0_select_reg, perf_sel) \
+ rb_perfcounter0_select_reg = (rb_perfcounter0_select_reg & ~RB_PERFCOUNTER0_SELECT_PERF_SEL_MASK) | (perf_sel << RB_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_perfcounter0_select_t {
+ unsigned int perf_sel : RB_PERFCOUNTER0_SELECT_PERF_SEL_SIZE;
+ unsigned int : 24;
+ } rb_perfcounter0_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_perfcounter0_select_t {
+ unsigned int : 24;
+ unsigned int perf_sel : RB_PERFCOUNTER0_SELECT_PERF_SEL_SIZE;
+ } rb_perfcounter0_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_perfcounter0_select_t f;
+} rb_perfcounter0_select_u;
+
+
+/*
+ * RB_PERFCOUNTER0_LOW struct
+ */
+
+#define RB_PERFCOUNTER0_LOW_PERF_COUNT_SIZE 32
+
+#define RB_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT 0
+
+#define RB_PERFCOUNTER0_LOW_PERF_COUNT_MASK 0xffffffff
+
+#define RB_PERFCOUNTER0_LOW_MASK \
+ (RB_PERFCOUNTER0_LOW_PERF_COUNT_MASK)
+
+#define RB_PERFCOUNTER0_LOW(perf_count) \
+ ((perf_count << RB_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT))
+
+#define RB_PERFCOUNTER0_LOW_GET_PERF_COUNT(rb_perfcounter0_low) \
+ ((rb_perfcounter0_low & RB_PERFCOUNTER0_LOW_PERF_COUNT_MASK) >> RB_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT)
+
+#define RB_PERFCOUNTER0_LOW_SET_PERF_COUNT(rb_perfcounter0_low_reg, perf_count) \
+ rb_perfcounter0_low_reg = (rb_perfcounter0_low_reg & ~RB_PERFCOUNTER0_LOW_PERF_COUNT_MASK) | (perf_count << RB_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_perfcounter0_low_t {
+ unsigned int perf_count : RB_PERFCOUNTER0_LOW_PERF_COUNT_SIZE;
+ } rb_perfcounter0_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_perfcounter0_low_t {
+ unsigned int perf_count : RB_PERFCOUNTER0_LOW_PERF_COUNT_SIZE;
+ } rb_perfcounter0_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_perfcounter0_low_t f;
+} rb_perfcounter0_low_u;
+
+
+/*
+ * RB_PERFCOUNTER0_HI struct
+ */
+
+#define RB_PERFCOUNTER0_HI_PERF_COUNT_SIZE 16
+
+#define RB_PERFCOUNTER0_HI_PERF_COUNT_SHIFT 0
+
+#define RB_PERFCOUNTER0_HI_PERF_COUNT_MASK 0x0000ffff
+
+#define RB_PERFCOUNTER0_HI_MASK \
+ (RB_PERFCOUNTER0_HI_PERF_COUNT_MASK)
+
+#define RB_PERFCOUNTER0_HI(perf_count) \
+ ((perf_count << RB_PERFCOUNTER0_HI_PERF_COUNT_SHIFT))
+
+#define RB_PERFCOUNTER0_HI_GET_PERF_COUNT(rb_perfcounter0_hi) \
+ ((rb_perfcounter0_hi & RB_PERFCOUNTER0_HI_PERF_COUNT_MASK) >> RB_PERFCOUNTER0_HI_PERF_COUNT_SHIFT)
+
+#define RB_PERFCOUNTER0_HI_SET_PERF_COUNT(rb_perfcounter0_hi_reg, perf_count) \
+ rb_perfcounter0_hi_reg = (rb_perfcounter0_hi_reg & ~RB_PERFCOUNTER0_HI_PERF_COUNT_MASK) | (perf_count << RB_PERFCOUNTER0_HI_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_perfcounter0_hi_t {
+ unsigned int perf_count : RB_PERFCOUNTER0_HI_PERF_COUNT_SIZE;
+ unsigned int : 16;
+ } rb_perfcounter0_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_perfcounter0_hi_t {
+ unsigned int : 16;
+ unsigned int perf_count : RB_PERFCOUNTER0_HI_PERF_COUNT_SIZE;
+ } rb_perfcounter0_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_perfcounter0_hi_t f;
+} rb_perfcounter0_hi_u;
+
+
+/*
+ * RB_TOTAL_SAMPLES struct
+ */
+
+#define RB_TOTAL_SAMPLES_TOTAL_SAMPLES_SIZE 32
+
+#define RB_TOTAL_SAMPLES_TOTAL_SAMPLES_SHIFT 0
+
+#define RB_TOTAL_SAMPLES_TOTAL_SAMPLES_MASK 0xffffffff
+
+#define RB_TOTAL_SAMPLES_MASK \
+ (RB_TOTAL_SAMPLES_TOTAL_SAMPLES_MASK)
+
+#define RB_TOTAL_SAMPLES(total_samples) \
+ ((total_samples << RB_TOTAL_SAMPLES_TOTAL_SAMPLES_SHIFT))
+
+#define RB_TOTAL_SAMPLES_GET_TOTAL_SAMPLES(rb_total_samples) \
+ ((rb_total_samples & RB_TOTAL_SAMPLES_TOTAL_SAMPLES_MASK) >> RB_TOTAL_SAMPLES_TOTAL_SAMPLES_SHIFT)
+
+#define RB_TOTAL_SAMPLES_SET_TOTAL_SAMPLES(rb_total_samples_reg, total_samples) \
+ rb_total_samples_reg = (rb_total_samples_reg & ~RB_TOTAL_SAMPLES_TOTAL_SAMPLES_MASK) | (total_samples << RB_TOTAL_SAMPLES_TOTAL_SAMPLES_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_total_samples_t {
+ unsigned int total_samples : RB_TOTAL_SAMPLES_TOTAL_SAMPLES_SIZE;
+ } rb_total_samples_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_total_samples_t {
+ unsigned int total_samples : RB_TOTAL_SAMPLES_TOTAL_SAMPLES_SIZE;
+ } rb_total_samples_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_total_samples_t f;
+} rb_total_samples_u;
+
+
+/*
+ * RB_ZPASS_SAMPLES struct
+ */
+
+#define RB_ZPASS_SAMPLES_ZPASS_SAMPLES_SIZE 32
+
+#define RB_ZPASS_SAMPLES_ZPASS_SAMPLES_SHIFT 0
+
+#define RB_ZPASS_SAMPLES_ZPASS_SAMPLES_MASK 0xffffffff
+
+#define RB_ZPASS_SAMPLES_MASK \
+ (RB_ZPASS_SAMPLES_ZPASS_SAMPLES_MASK)
+
+#define RB_ZPASS_SAMPLES(zpass_samples) \
+ ((zpass_samples << RB_ZPASS_SAMPLES_ZPASS_SAMPLES_SHIFT))
+
+#define RB_ZPASS_SAMPLES_GET_ZPASS_SAMPLES(rb_zpass_samples) \
+ ((rb_zpass_samples & RB_ZPASS_SAMPLES_ZPASS_SAMPLES_MASK) >> RB_ZPASS_SAMPLES_ZPASS_SAMPLES_SHIFT)
+
+#define RB_ZPASS_SAMPLES_SET_ZPASS_SAMPLES(rb_zpass_samples_reg, zpass_samples) \
+ rb_zpass_samples_reg = (rb_zpass_samples_reg & ~RB_ZPASS_SAMPLES_ZPASS_SAMPLES_MASK) | (zpass_samples << RB_ZPASS_SAMPLES_ZPASS_SAMPLES_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_zpass_samples_t {
+ unsigned int zpass_samples : RB_ZPASS_SAMPLES_ZPASS_SAMPLES_SIZE;
+ } rb_zpass_samples_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_zpass_samples_t {
+ unsigned int zpass_samples : RB_ZPASS_SAMPLES_ZPASS_SAMPLES_SIZE;
+ } rb_zpass_samples_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_zpass_samples_t f;
+} rb_zpass_samples_u;
+
+
+/*
+ * RB_ZFAIL_SAMPLES struct
+ */
+
+#define RB_ZFAIL_SAMPLES_ZFAIL_SAMPLES_SIZE 32
+
+#define RB_ZFAIL_SAMPLES_ZFAIL_SAMPLES_SHIFT 0
+
+#define RB_ZFAIL_SAMPLES_ZFAIL_SAMPLES_MASK 0xffffffff
+
+#define RB_ZFAIL_SAMPLES_MASK \
+ (RB_ZFAIL_SAMPLES_ZFAIL_SAMPLES_MASK)
+
+#define RB_ZFAIL_SAMPLES(zfail_samples) \
+ ((zfail_samples << RB_ZFAIL_SAMPLES_ZFAIL_SAMPLES_SHIFT))
+
+#define RB_ZFAIL_SAMPLES_GET_ZFAIL_SAMPLES(rb_zfail_samples) \
+ ((rb_zfail_samples & RB_ZFAIL_SAMPLES_ZFAIL_SAMPLES_MASK) >> RB_ZFAIL_SAMPLES_ZFAIL_SAMPLES_SHIFT)
+
+#define RB_ZFAIL_SAMPLES_SET_ZFAIL_SAMPLES(rb_zfail_samples_reg, zfail_samples) \
+ rb_zfail_samples_reg = (rb_zfail_samples_reg & ~RB_ZFAIL_SAMPLES_ZFAIL_SAMPLES_MASK) | (zfail_samples << RB_ZFAIL_SAMPLES_ZFAIL_SAMPLES_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_zfail_samples_t {
+ unsigned int zfail_samples : RB_ZFAIL_SAMPLES_ZFAIL_SAMPLES_SIZE;
+ } rb_zfail_samples_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_zfail_samples_t {
+ unsigned int zfail_samples : RB_ZFAIL_SAMPLES_ZFAIL_SAMPLES_SIZE;
+ } rb_zfail_samples_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_zfail_samples_t f;
+} rb_zfail_samples_u;
+
+
+/*
+ * RB_SFAIL_SAMPLES struct
+ */
+
+#define RB_SFAIL_SAMPLES_SFAIL_SAMPLES_SIZE 32
+
+#define RB_SFAIL_SAMPLES_SFAIL_SAMPLES_SHIFT 0
+
+#define RB_SFAIL_SAMPLES_SFAIL_SAMPLES_MASK 0xffffffff
+
+#define RB_SFAIL_SAMPLES_MASK \
+ (RB_SFAIL_SAMPLES_SFAIL_SAMPLES_MASK)
+
+#define RB_SFAIL_SAMPLES(sfail_samples) \
+ ((sfail_samples << RB_SFAIL_SAMPLES_SFAIL_SAMPLES_SHIFT))
+
+#define RB_SFAIL_SAMPLES_GET_SFAIL_SAMPLES(rb_sfail_samples) \
+ ((rb_sfail_samples & RB_SFAIL_SAMPLES_SFAIL_SAMPLES_MASK) >> RB_SFAIL_SAMPLES_SFAIL_SAMPLES_SHIFT)
+
+#define RB_SFAIL_SAMPLES_SET_SFAIL_SAMPLES(rb_sfail_samples_reg, sfail_samples) \
+ rb_sfail_samples_reg = (rb_sfail_samples_reg & ~RB_SFAIL_SAMPLES_SFAIL_SAMPLES_MASK) | (sfail_samples << RB_SFAIL_SAMPLES_SFAIL_SAMPLES_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_sfail_samples_t {
+ unsigned int sfail_samples : RB_SFAIL_SAMPLES_SFAIL_SAMPLES_SIZE;
+ } rb_sfail_samples_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_sfail_samples_t {
+ unsigned int sfail_samples : RB_SFAIL_SAMPLES_SFAIL_SAMPLES_SIZE;
+ } rb_sfail_samples_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_sfail_samples_t f;
+} rb_sfail_samples_u;
+
+
+/*
+ * RB_DEBUG_0 struct
+ */
+
+#define RB_DEBUG_0_RDREQ_CTL_Z1_PRE_FULL_SIZE 1
+#define RB_DEBUG_0_RDREQ_CTL_Z0_PRE_FULL_SIZE 1
+#define RB_DEBUG_0_RDREQ_CTL_C1_PRE_FULL_SIZE 1
+#define RB_DEBUG_0_RDREQ_CTL_C0_PRE_FULL_SIZE 1
+#define RB_DEBUG_0_RDREQ_E1_ORDERING_FULL_SIZE 1
+#define RB_DEBUG_0_RDREQ_E0_ORDERING_FULL_SIZE 1
+#define RB_DEBUG_0_RDREQ_Z1_FULL_SIZE 1
+#define RB_DEBUG_0_RDREQ_Z0_FULL_SIZE 1
+#define RB_DEBUG_0_RDREQ_C1_FULL_SIZE 1
+#define RB_DEBUG_0_RDREQ_C0_FULL_SIZE 1
+#define RB_DEBUG_0_WRREQ_E1_MACRO_HI_FULL_SIZE 1
+#define RB_DEBUG_0_WRREQ_E1_MACRO_LO_FULL_SIZE 1
+#define RB_DEBUG_0_WRREQ_E0_MACRO_HI_FULL_SIZE 1
+#define RB_DEBUG_0_WRREQ_E0_MACRO_LO_FULL_SIZE 1
+#define RB_DEBUG_0_WRREQ_C_WE_HI_FULL_SIZE 1
+#define RB_DEBUG_0_WRREQ_C_WE_LO_FULL_SIZE 1
+#define RB_DEBUG_0_WRREQ_Z1_FULL_SIZE 1
+#define RB_DEBUG_0_WRREQ_Z0_FULL_SIZE 1
+#define RB_DEBUG_0_WRREQ_C1_FULL_SIZE 1
+#define RB_DEBUG_0_WRREQ_C0_FULL_SIZE 1
+#define RB_DEBUG_0_CMDFIFO_Z1_HOLD_FULL_SIZE 1
+#define RB_DEBUG_0_CMDFIFO_Z0_HOLD_FULL_SIZE 1
+#define RB_DEBUG_0_CMDFIFO_C1_HOLD_FULL_SIZE 1
+#define RB_DEBUG_0_CMDFIFO_C0_HOLD_FULL_SIZE 1
+#define RB_DEBUG_0_CMDFIFO_Z_ORDERING_FULL_SIZE 1
+#define RB_DEBUG_0_CMDFIFO_C_ORDERING_FULL_SIZE 1
+#define RB_DEBUG_0_C_SX_LAT_FULL_SIZE 1
+#define RB_DEBUG_0_C_SX_CMD_FULL_SIZE 1
+#define RB_DEBUG_0_C_EZ_TILE_FULL_SIZE 1
+#define RB_DEBUG_0_C_REQ_FULL_SIZE 1
+#define RB_DEBUG_0_C_MASK_FULL_SIZE 1
+#define RB_DEBUG_0_EZ_INFSAMP_FULL_SIZE 1
+
+#define RB_DEBUG_0_RDREQ_CTL_Z1_PRE_FULL_SHIFT 0
+#define RB_DEBUG_0_RDREQ_CTL_Z0_PRE_FULL_SHIFT 1
+#define RB_DEBUG_0_RDREQ_CTL_C1_PRE_FULL_SHIFT 2
+#define RB_DEBUG_0_RDREQ_CTL_C0_PRE_FULL_SHIFT 3
+#define RB_DEBUG_0_RDREQ_E1_ORDERING_FULL_SHIFT 4
+#define RB_DEBUG_0_RDREQ_E0_ORDERING_FULL_SHIFT 5
+#define RB_DEBUG_0_RDREQ_Z1_FULL_SHIFT 6
+#define RB_DEBUG_0_RDREQ_Z0_FULL_SHIFT 7
+#define RB_DEBUG_0_RDREQ_C1_FULL_SHIFT 8
+#define RB_DEBUG_0_RDREQ_C0_FULL_SHIFT 9
+#define RB_DEBUG_0_WRREQ_E1_MACRO_HI_FULL_SHIFT 10
+#define RB_DEBUG_0_WRREQ_E1_MACRO_LO_FULL_SHIFT 11
+#define RB_DEBUG_0_WRREQ_E0_MACRO_HI_FULL_SHIFT 12
+#define RB_DEBUG_0_WRREQ_E0_MACRO_LO_FULL_SHIFT 13
+#define RB_DEBUG_0_WRREQ_C_WE_HI_FULL_SHIFT 14
+#define RB_DEBUG_0_WRREQ_C_WE_LO_FULL_SHIFT 15
+#define RB_DEBUG_0_WRREQ_Z1_FULL_SHIFT 16
+#define RB_DEBUG_0_WRREQ_Z0_FULL_SHIFT 17
+#define RB_DEBUG_0_WRREQ_C1_FULL_SHIFT 18
+#define RB_DEBUG_0_WRREQ_C0_FULL_SHIFT 19
+#define RB_DEBUG_0_CMDFIFO_Z1_HOLD_FULL_SHIFT 20
+#define RB_DEBUG_0_CMDFIFO_Z0_HOLD_FULL_SHIFT 21
+#define RB_DEBUG_0_CMDFIFO_C1_HOLD_FULL_SHIFT 22
+#define RB_DEBUG_0_CMDFIFO_C0_HOLD_FULL_SHIFT 23
+#define RB_DEBUG_0_CMDFIFO_Z_ORDERING_FULL_SHIFT 24
+#define RB_DEBUG_0_CMDFIFO_C_ORDERING_FULL_SHIFT 25
+#define RB_DEBUG_0_C_SX_LAT_FULL_SHIFT 26
+#define RB_DEBUG_0_C_SX_CMD_FULL_SHIFT 27
+#define RB_DEBUG_0_C_EZ_TILE_FULL_SHIFT 28
+#define RB_DEBUG_0_C_REQ_FULL_SHIFT 29
+#define RB_DEBUG_0_C_MASK_FULL_SHIFT 30
+#define RB_DEBUG_0_EZ_INFSAMP_FULL_SHIFT 31
+
+#define RB_DEBUG_0_RDREQ_CTL_Z1_PRE_FULL_MASK 0x00000001
+#define RB_DEBUG_0_RDREQ_CTL_Z0_PRE_FULL_MASK 0x00000002
+#define RB_DEBUG_0_RDREQ_CTL_C1_PRE_FULL_MASK 0x00000004
+#define RB_DEBUG_0_RDREQ_CTL_C0_PRE_FULL_MASK 0x00000008
+#define RB_DEBUG_0_RDREQ_E1_ORDERING_FULL_MASK 0x00000010
+#define RB_DEBUG_0_RDREQ_E0_ORDERING_FULL_MASK 0x00000020
+#define RB_DEBUG_0_RDREQ_Z1_FULL_MASK 0x00000040
+#define RB_DEBUG_0_RDREQ_Z0_FULL_MASK 0x00000080
+#define RB_DEBUG_0_RDREQ_C1_FULL_MASK 0x00000100
+#define RB_DEBUG_0_RDREQ_C0_FULL_MASK 0x00000200
+#define RB_DEBUG_0_WRREQ_E1_MACRO_HI_FULL_MASK 0x00000400
+#define RB_DEBUG_0_WRREQ_E1_MACRO_LO_FULL_MASK 0x00000800
+#define RB_DEBUG_0_WRREQ_E0_MACRO_HI_FULL_MASK 0x00001000
+#define RB_DEBUG_0_WRREQ_E0_MACRO_LO_FULL_MASK 0x00002000
+#define RB_DEBUG_0_WRREQ_C_WE_HI_FULL_MASK 0x00004000
+#define RB_DEBUG_0_WRREQ_C_WE_LO_FULL_MASK 0x00008000
+#define RB_DEBUG_0_WRREQ_Z1_FULL_MASK 0x00010000
+#define RB_DEBUG_0_WRREQ_Z0_FULL_MASK 0x00020000
+#define RB_DEBUG_0_WRREQ_C1_FULL_MASK 0x00040000
+#define RB_DEBUG_0_WRREQ_C0_FULL_MASK 0x00080000
+#define RB_DEBUG_0_CMDFIFO_Z1_HOLD_FULL_MASK 0x00100000
+#define RB_DEBUG_0_CMDFIFO_Z0_HOLD_FULL_MASK 0x00200000
+#define RB_DEBUG_0_CMDFIFO_C1_HOLD_FULL_MASK 0x00400000
+#define RB_DEBUG_0_CMDFIFO_C0_HOLD_FULL_MASK 0x00800000
+#define RB_DEBUG_0_CMDFIFO_Z_ORDERING_FULL_MASK 0x01000000
+#define RB_DEBUG_0_CMDFIFO_C_ORDERING_FULL_MASK 0x02000000
+#define RB_DEBUG_0_C_SX_LAT_FULL_MASK 0x04000000
+#define RB_DEBUG_0_C_SX_CMD_FULL_MASK 0x08000000
+#define RB_DEBUG_0_C_EZ_TILE_FULL_MASK 0x10000000
+#define RB_DEBUG_0_C_REQ_FULL_MASK 0x20000000
+#define RB_DEBUG_0_C_MASK_FULL_MASK 0x40000000
+#define RB_DEBUG_0_EZ_INFSAMP_FULL_MASK 0x80000000
+
+#define RB_DEBUG_0_MASK \
+ (RB_DEBUG_0_RDREQ_CTL_Z1_PRE_FULL_MASK | \
+ RB_DEBUG_0_RDREQ_CTL_Z0_PRE_FULL_MASK | \
+ RB_DEBUG_0_RDREQ_CTL_C1_PRE_FULL_MASK | \
+ RB_DEBUG_0_RDREQ_CTL_C0_PRE_FULL_MASK | \
+ RB_DEBUG_0_RDREQ_E1_ORDERING_FULL_MASK | \
+ RB_DEBUG_0_RDREQ_E0_ORDERING_FULL_MASK | \
+ RB_DEBUG_0_RDREQ_Z1_FULL_MASK | \
+ RB_DEBUG_0_RDREQ_Z0_FULL_MASK | \
+ RB_DEBUG_0_RDREQ_C1_FULL_MASK | \
+ RB_DEBUG_0_RDREQ_C0_FULL_MASK | \
+ RB_DEBUG_0_WRREQ_E1_MACRO_HI_FULL_MASK | \
+ RB_DEBUG_0_WRREQ_E1_MACRO_LO_FULL_MASK | \
+ RB_DEBUG_0_WRREQ_E0_MACRO_HI_FULL_MASK | \
+ RB_DEBUG_0_WRREQ_E0_MACRO_LO_FULL_MASK | \
+ RB_DEBUG_0_WRREQ_C_WE_HI_FULL_MASK | \
+ RB_DEBUG_0_WRREQ_C_WE_LO_FULL_MASK | \
+ RB_DEBUG_0_WRREQ_Z1_FULL_MASK | \
+ RB_DEBUG_0_WRREQ_Z0_FULL_MASK | \
+ RB_DEBUG_0_WRREQ_C1_FULL_MASK | \
+ RB_DEBUG_0_WRREQ_C0_FULL_MASK | \
+ RB_DEBUG_0_CMDFIFO_Z1_HOLD_FULL_MASK | \
+ RB_DEBUG_0_CMDFIFO_Z0_HOLD_FULL_MASK | \
+ RB_DEBUG_0_CMDFIFO_C1_HOLD_FULL_MASK | \
+ RB_DEBUG_0_CMDFIFO_C0_HOLD_FULL_MASK | \
+ RB_DEBUG_0_CMDFIFO_Z_ORDERING_FULL_MASK | \
+ RB_DEBUG_0_CMDFIFO_C_ORDERING_FULL_MASK | \
+ RB_DEBUG_0_C_SX_LAT_FULL_MASK | \
+ RB_DEBUG_0_C_SX_CMD_FULL_MASK | \
+ RB_DEBUG_0_C_EZ_TILE_FULL_MASK | \
+ RB_DEBUG_0_C_REQ_FULL_MASK | \
+ RB_DEBUG_0_C_MASK_FULL_MASK | \
+ RB_DEBUG_0_EZ_INFSAMP_FULL_MASK)
+
+#define RB_DEBUG_0(rdreq_ctl_z1_pre_full, rdreq_ctl_z0_pre_full, rdreq_ctl_c1_pre_full, rdreq_ctl_c0_pre_full, rdreq_e1_ordering_full, rdreq_e0_ordering_full, rdreq_z1_full, rdreq_z0_full, rdreq_c1_full, rdreq_c0_full, wrreq_e1_macro_hi_full, wrreq_e1_macro_lo_full, wrreq_e0_macro_hi_full, wrreq_e0_macro_lo_full, wrreq_c_we_hi_full, wrreq_c_we_lo_full, wrreq_z1_full, wrreq_z0_full, wrreq_c1_full, wrreq_c0_full, cmdfifo_z1_hold_full, cmdfifo_z0_hold_full, cmdfifo_c1_hold_full, cmdfifo_c0_hold_full, cmdfifo_z_ordering_full, cmdfifo_c_ordering_full, c_sx_lat_full, c_sx_cmd_full, c_ez_tile_full, c_req_full, c_mask_full, ez_infsamp_full) \
+ ((rdreq_ctl_z1_pre_full << RB_DEBUG_0_RDREQ_CTL_Z1_PRE_FULL_SHIFT) | \
+ (rdreq_ctl_z0_pre_full << RB_DEBUG_0_RDREQ_CTL_Z0_PRE_FULL_SHIFT) | \
+ (rdreq_ctl_c1_pre_full << RB_DEBUG_0_RDREQ_CTL_C1_PRE_FULL_SHIFT) | \
+ (rdreq_ctl_c0_pre_full << RB_DEBUG_0_RDREQ_CTL_C0_PRE_FULL_SHIFT) | \
+ (rdreq_e1_ordering_full << RB_DEBUG_0_RDREQ_E1_ORDERING_FULL_SHIFT) | \
+ (rdreq_e0_ordering_full << RB_DEBUG_0_RDREQ_E0_ORDERING_FULL_SHIFT) | \
+ (rdreq_z1_full << RB_DEBUG_0_RDREQ_Z1_FULL_SHIFT) | \
+ (rdreq_z0_full << RB_DEBUG_0_RDREQ_Z0_FULL_SHIFT) | \
+ (rdreq_c1_full << RB_DEBUG_0_RDREQ_C1_FULL_SHIFT) | \
+ (rdreq_c0_full << RB_DEBUG_0_RDREQ_C0_FULL_SHIFT) | \
+ (wrreq_e1_macro_hi_full << RB_DEBUG_0_WRREQ_E1_MACRO_HI_FULL_SHIFT) | \
+ (wrreq_e1_macro_lo_full << RB_DEBUG_0_WRREQ_E1_MACRO_LO_FULL_SHIFT) | \
+ (wrreq_e0_macro_hi_full << RB_DEBUG_0_WRREQ_E0_MACRO_HI_FULL_SHIFT) | \
+ (wrreq_e0_macro_lo_full << RB_DEBUG_0_WRREQ_E0_MACRO_LO_FULL_SHIFT) | \
+ (wrreq_c_we_hi_full << RB_DEBUG_0_WRREQ_C_WE_HI_FULL_SHIFT) | \
+ (wrreq_c_we_lo_full << RB_DEBUG_0_WRREQ_C_WE_LO_FULL_SHIFT) | \
+ (wrreq_z1_full << RB_DEBUG_0_WRREQ_Z1_FULL_SHIFT) | \
+ (wrreq_z0_full << RB_DEBUG_0_WRREQ_Z0_FULL_SHIFT) | \
+ (wrreq_c1_full << RB_DEBUG_0_WRREQ_C1_FULL_SHIFT) | \
+ (wrreq_c0_full << RB_DEBUG_0_WRREQ_C0_FULL_SHIFT) | \
+ (cmdfifo_z1_hold_full << RB_DEBUG_0_CMDFIFO_Z1_HOLD_FULL_SHIFT) | \
+ (cmdfifo_z0_hold_full << RB_DEBUG_0_CMDFIFO_Z0_HOLD_FULL_SHIFT) | \
+ (cmdfifo_c1_hold_full << RB_DEBUG_0_CMDFIFO_C1_HOLD_FULL_SHIFT) | \
+ (cmdfifo_c0_hold_full << RB_DEBUG_0_CMDFIFO_C0_HOLD_FULL_SHIFT) | \
+ (cmdfifo_z_ordering_full << RB_DEBUG_0_CMDFIFO_Z_ORDERING_FULL_SHIFT) | \
+ (cmdfifo_c_ordering_full << RB_DEBUG_0_CMDFIFO_C_ORDERING_FULL_SHIFT) | \
+ (c_sx_lat_full << RB_DEBUG_0_C_SX_LAT_FULL_SHIFT) | \
+ (c_sx_cmd_full << RB_DEBUG_0_C_SX_CMD_FULL_SHIFT) | \
+ (c_ez_tile_full << RB_DEBUG_0_C_EZ_TILE_FULL_SHIFT) | \
+ (c_req_full << RB_DEBUG_0_C_REQ_FULL_SHIFT) | \
+ (c_mask_full << RB_DEBUG_0_C_MASK_FULL_SHIFT) | \
+ (ez_infsamp_full << RB_DEBUG_0_EZ_INFSAMP_FULL_SHIFT))
+
+#define RB_DEBUG_0_GET_RDREQ_CTL_Z1_PRE_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_RDREQ_CTL_Z1_PRE_FULL_MASK) >> RB_DEBUG_0_RDREQ_CTL_Z1_PRE_FULL_SHIFT)
+#define RB_DEBUG_0_GET_RDREQ_CTL_Z0_PRE_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_RDREQ_CTL_Z0_PRE_FULL_MASK) >> RB_DEBUG_0_RDREQ_CTL_Z0_PRE_FULL_SHIFT)
+#define RB_DEBUG_0_GET_RDREQ_CTL_C1_PRE_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_RDREQ_CTL_C1_PRE_FULL_MASK) >> RB_DEBUG_0_RDREQ_CTL_C1_PRE_FULL_SHIFT)
+#define RB_DEBUG_0_GET_RDREQ_CTL_C0_PRE_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_RDREQ_CTL_C0_PRE_FULL_MASK) >> RB_DEBUG_0_RDREQ_CTL_C0_PRE_FULL_SHIFT)
+#define RB_DEBUG_0_GET_RDREQ_E1_ORDERING_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_RDREQ_E1_ORDERING_FULL_MASK) >> RB_DEBUG_0_RDREQ_E1_ORDERING_FULL_SHIFT)
+#define RB_DEBUG_0_GET_RDREQ_E0_ORDERING_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_RDREQ_E0_ORDERING_FULL_MASK) >> RB_DEBUG_0_RDREQ_E0_ORDERING_FULL_SHIFT)
+#define RB_DEBUG_0_GET_RDREQ_Z1_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_RDREQ_Z1_FULL_MASK) >> RB_DEBUG_0_RDREQ_Z1_FULL_SHIFT)
+#define RB_DEBUG_0_GET_RDREQ_Z0_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_RDREQ_Z0_FULL_MASK) >> RB_DEBUG_0_RDREQ_Z0_FULL_SHIFT)
+#define RB_DEBUG_0_GET_RDREQ_C1_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_RDREQ_C1_FULL_MASK) >> RB_DEBUG_0_RDREQ_C1_FULL_SHIFT)
+#define RB_DEBUG_0_GET_RDREQ_C0_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_RDREQ_C0_FULL_MASK) >> RB_DEBUG_0_RDREQ_C0_FULL_SHIFT)
+#define RB_DEBUG_0_GET_WRREQ_E1_MACRO_HI_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_WRREQ_E1_MACRO_HI_FULL_MASK) >> RB_DEBUG_0_WRREQ_E1_MACRO_HI_FULL_SHIFT)
+#define RB_DEBUG_0_GET_WRREQ_E1_MACRO_LO_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_WRREQ_E1_MACRO_LO_FULL_MASK) >> RB_DEBUG_0_WRREQ_E1_MACRO_LO_FULL_SHIFT)
+#define RB_DEBUG_0_GET_WRREQ_E0_MACRO_HI_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_WRREQ_E0_MACRO_HI_FULL_MASK) >> RB_DEBUG_0_WRREQ_E0_MACRO_HI_FULL_SHIFT)
+#define RB_DEBUG_0_GET_WRREQ_E0_MACRO_LO_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_WRREQ_E0_MACRO_LO_FULL_MASK) >> RB_DEBUG_0_WRREQ_E0_MACRO_LO_FULL_SHIFT)
+#define RB_DEBUG_0_GET_WRREQ_C_WE_HI_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_WRREQ_C_WE_HI_FULL_MASK) >> RB_DEBUG_0_WRREQ_C_WE_HI_FULL_SHIFT)
+#define RB_DEBUG_0_GET_WRREQ_C_WE_LO_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_WRREQ_C_WE_LO_FULL_MASK) >> RB_DEBUG_0_WRREQ_C_WE_LO_FULL_SHIFT)
+#define RB_DEBUG_0_GET_WRREQ_Z1_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_WRREQ_Z1_FULL_MASK) >> RB_DEBUG_0_WRREQ_Z1_FULL_SHIFT)
+#define RB_DEBUG_0_GET_WRREQ_Z0_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_WRREQ_Z0_FULL_MASK) >> RB_DEBUG_0_WRREQ_Z0_FULL_SHIFT)
+#define RB_DEBUG_0_GET_WRREQ_C1_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_WRREQ_C1_FULL_MASK) >> RB_DEBUG_0_WRREQ_C1_FULL_SHIFT)
+#define RB_DEBUG_0_GET_WRREQ_C0_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_WRREQ_C0_FULL_MASK) >> RB_DEBUG_0_WRREQ_C0_FULL_SHIFT)
+#define RB_DEBUG_0_GET_CMDFIFO_Z1_HOLD_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_CMDFIFO_Z1_HOLD_FULL_MASK) >> RB_DEBUG_0_CMDFIFO_Z1_HOLD_FULL_SHIFT)
+#define RB_DEBUG_0_GET_CMDFIFO_Z0_HOLD_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_CMDFIFO_Z0_HOLD_FULL_MASK) >> RB_DEBUG_0_CMDFIFO_Z0_HOLD_FULL_SHIFT)
+#define RB_DEBUG_0_GET_CMDFIFO_C1_HOLD_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_CMDFIFO_C1_HOLD_FULL_MASK) >> RB_DEBUG_0_CMDFIFO_C1_HOLD_FULL_SHIFT)
+#define RB_DEBUG_0_GET_CMDFIFO_C0_HOLD_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_CMDFIFO_C0_HOLD_FULL_MASK) >> RB_DEBUG_0_CMDFIFO_C0_HOLD_FULL_SHIFT)
+#define RB_DEBUG_0_GET_CMDFIFO_Z_ORDERING_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_CMDFIFO_Z_ORDERING_FULL_MASK) >> RB_DEBUG_0_CMDFIFO_Z_ORDERING_FULL_SHIFT)
+#define RB_DEBUG_0_GET_CMDFIFO_C_ORDERING_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_CMDFIFO_C_ORDERING_FULL_MASK) >> RB_DEBUG_0_CMDFIFO_C_ORDERING_FULL_SHIFT)
+#define RB_DEBUG_0_GET_C_SX_LAT_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_C_SX_LAT_FULL_MASK) >> RB_DEBUG_0_C_SX_LAT_FULL_SHIFT)
+#define RB_DEBUG_0_GET_C_SX_CMD_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_C_SX_CMD_FULL_MASK) >> RB_DEBUG_0_C_SX_CMD_FULL_SHIFT)
+#define RB_DEBUG_0_GET_C_EZ_TILE_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_C_EZ_TILE_FULL_MASK) >> RB_DEBUG_0_C_EZ_TILE_FULL_SHIFT)
+#define RB_DEBUG_0_GET_C_REQ_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_C_REQ_FULL_MASK) >> RB_DEBUG_0_C_REQ_FULL_SHIFT)
+#define RB_DEBUG_0_GET_C_MASK_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_C_MASK_FULL_MASK) >> RB_DEBUG_0_C_MASK_FULL_SHIFT)
+#define RB_DEBUG_0_GET_EZ_INFSAMP_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_EZ_INFSAMP_FULL_MASK) >> RB_DEBUG_0_EZ_INFSAMP_FULL_SHIFT)
+
+#define RB_DEBUG_0_SET_RDREQ_CTL_Z1_PRE_FULL(rb_debug_0_reg, rdreq_ctl_z1_pre_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_RDREQ_CTL_Z1_PRE_FULL_MASK) | (rdreq_ctl_z1_pre_full << RB_DEBUG_0_RDREQ_CTL_Z1_PRE_FULL_SHIFT)
+#define RB_DEBUG_0_SET_RDREQ_CTL_Z0_PRE_FULL(rb_debug_0_reg, rdreq_ctl_z0_pre_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_RDREQ_CTL_Z0_PRE_FULL_MASK) | (rdreq_ctl_z0_pre_full << RB_DEBUG_0_RDREQ_CTL_Z0_PRE_FULL_SHIFT)
+#define RB_DEBUG_0_SET_RDREQ_CTL_C1_PRE_FULL(rb_debug_0_reg, rdreq_ctl_c1_pre_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_RDREQ_CTL_C1_PRE_FULL_MASK) | (rdreq_ctl_c1_pre_full << RB_DEBUG_0_RDREQ_CTL_C1_PRE_FULL_SHIFT)
+#define RB_DEBUG_0_SET_RDREQ_CTL_C0_PRE_FULL(rb_debug_0_reg, rdreq_ctl_c0_pre_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_RDREQ_CTL_C0_PRE_FULL_MASK) | (rdreq_ctl_c0_pre_full << RB_DEBUG_0_RDREQ_CTL_C0_PRE_FULL_SHIFT)
+#define RB_DEBUG_0_SET_RDREQ_E1_ORDERING_FULL(rb_debug_0_reg, rdreq_e1_ordering_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_RDREQ_E1_ORDERING_FULL_MASK) | (rdreq_e1_ordering_full << RB_DEBUG_0_RDREQ_E1_ORDERING_FULL_SHIFT)
+#define RB_DEBUG_0_SET_RDREQ_E0_ORDERING_FULL(rb_debug_0_reg, rdreq_e0_ordering_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_RDREQ_E0_ORDERING_FULL_MASK) | (rdreq_e0_ordering_full << RB_DEBUG_0_RDREQ_E0_ORDERING_FULL_SHIFT)
+#define RB_DEBUG_0_SET_RDREQ_Z1_FULL(rb_debug_0_reg, rdreq_z1_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_RDREQ_Z1_FULL_MASK) | (rdreq_z1_full << RB_DEBUG_0_RDREQ_Z1_FULL_SHIFT)
+#define RB_DEBUG_0_SET_RDREQ_Z0_FULL(rb_debug_0_reg, rdreq_z0_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_RDREQ_Z0_FULL_MASK) | (rdreq_z0_full << RB_DEBUG_0_RDREQ_Z0_FULL_SHIFT)
+#define RB_DEBUG_0_SET_RDREQ_C1_FULL(rb_debug_0_reg, rdreq_c1_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_RDREQ_C1_FULL_MASK) | (rdreq_c1_full << RB_DEBUG_0_RDREQ_C1_FULL_SHIFT)
+#define RB_DEBUG_0_SET_RDREQ_C0_FULL(rb_debug_0_reg, rdreq_c0_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_RDREQ_C0_FULL_MASK) | (rdreq_c0_full << RB_DEBUG_0_RDREQ_C0_FULL_SHIFT)
+#define RB_DEBUG_0_SET_WRREQ_E1_MACRO_HI_FULL(rb_debug_0_reg, wrreq_e1_macro_hi_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_WRREQ_E1_MACRO_HI_FULL_MASK) | (wrreq_e1_macro_hi_full << RB_DEBUG_0_WRREQ_E1_MACRO_HI_FULL_SHIFT)
+#define RB_DEBUG_0_SET_WRREQ_E1_MACRO_LO_FULL(rb_debug_0_reg, wrreq_e1_macro_lo_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_WRREQ_E1_MACRO_LO_FULL_MASK) | (wrreq_e1_macro_lo_full << RB_DEBUG_0_WRREQ_E1_MACRO_LO_FULL_SHIFT)
+#define RB_DEBUG_0_SET_WRREQ_E0_MACRO_HI_FULL(rb_debug_0_reg, wrreq_e0_macro_hi_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_WRREQ_E0_MACRO_HI_FULL_MASK) | (wrreq_e0_macro_hi_full << RB_DEBUG_0_WRREQ_E0_MACRO_HI_FULL_SHIFT)
+#define RB_DEBUG_0_SET_WRREQ_E0_MACRO_LO_FULL(rb_debug_0_reg, wrreq_e0_macro_lo_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_WRREQ_E0_MACRO_LO_FULL_MASK) | (wrreq_e0_macro_lo_full << RB_DEBUG_0_WRREQ_E0_MACRO_LO_FULL_SHIFT)
+#define RB_DEBUG_0_SET_WRREQ_C_WE_HI_FULL(rb_debug_0_reg, wrreq_c_we_hi_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_WRREQ_C_WE_HI_FULL_MASK) | (wrreq_c_we_hi_full << RB_DEBUG_0_WRREQ_C_WE_HI_FULL_SHIFT)
+#define RB_DEBUG_0_SET_WRREQ_C_WE_LO_FULL(rb_debug_0_reg, wrreq_c_we_lo_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_WRREQ_C_WE_LO_FULL_MASK) | (wrreq_c_we_lo_full << RB_DEBUG_0_WRREQ_C_WE_LO_FULL_SHIFT)
+#define RB_DEBUG_0_SET_WRREQ_Z1_FULL(rb_debug_0_reg, wrreq_z1_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_WRREQ_Z1_FULL_MASK) | (wrreq_z1_full << RB_DEBUG_0_WRREQ_Z1_FULL_SHIFT)
+#define RB_DEBUG_0_SET_WRREQ_Z0_FULL(rb_debug_0_reg, wrreq_z0_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_WRREQ_Z0_FULL_MASK) | (wrreq_z0_full << RB_DEBUG_0_WRREQ_Z0_FULL_SHIFT)
+#define RB_DEBUG_0_SET_WRREQ_C1_FULL(rb_debug_0_reg, wrreq_c1_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_WRREQ_C1_FULL_MASK) | (wrreq_c1_full << RB_DEBUG_0_WRREQ_C1_FULL_SHIFT)
+#define RB_DEBUG_0_SET_WRREQ_C0_FULL(rb_debug_0_reg, wrreq_c0_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_WRREQ_C0_FULL_MASK) | (wrreq_c0_full << RB_DEBUG_0_WRREQ_C0_FULL_SHIFT)
+#define RB_DEBUG_0_SET_CMDFIFO_Z1_HOLD_FULL(rb_debug_0_reg, cmdfifo_z1_hold_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_CMDFIFO_Z1_HOLD_FULL_MASK) | (cmdfifo_z1_hold_full << RB_DEBUG_0_CMDFIFO_Z1_HOLD_FULL_SHIFT)
+#define RB_DEBUG_0_SET_CMDFIFO_Z0_HOLD_FULL(rb_debug_0_reg, cmdfifo_z0_hold_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_CMDFIFO_Z0_HOLD_FULL_MASK) | (cmdfifo_z0_hold_full << RB_DEBUG_0_CMDFIFO_Z0_HOLD_FULL_SHIFT)
+#define RB_DEBUG_0_SET_CMDFIFO_C1_HOLD_FULL(rb_debug_0_reg, cmdfifo_c1_hold_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_CMDFIFO_C1_HOLD_FULL_MASK) | (cmdfifo_c1_hold_full << RB_DEBUG_0_CMDFIFO_C1_HOLD_FULL_SHIFT)
+#define RB_DEBUG_0_SET_CMDFIFO_C0_HOLD_FULL(rb_debug_0_reg, cmdfifo_c0_hold_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_CMDFIFO_C0_HOLD_FULL_MASK) | (cmdfifo_c0_hold_full << RB_DEBUG_0_CMDFIFO_C0_HOLD_FULL_SHIFT)
+#define RB_DEBUG_0_SET_CMDFIFO_Z_ORDERING_FULL(rb_debug_0_reg, cmdfifo_z_ordering_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_CMDFIFO_Z_ORDERING_FULL_MASK) | (cmdfifo_z_ordering_full << RB_DEBUG_0_CMDFIFO_Z_ORDERING_FULL_SHIFT)
+#define RB_DEBUG_0_SET_CMDFIFO_C_ORDERING_FULL(rb_debug_0_reg, cmdfifo_c_ordering_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_CMDFIFO_C_ORDERING_FULL_MASK) | (cmdfifo_c_ordering_full << RB_DEBUG_0_CMDFIFO_C_ORDERING_FULL_SHIFT)
+#define RB_DEBUG_0_SET_C_SX_LAT_FULL(rb_debug_0_reg, c_sx_lat_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_C_SX_LAT_FULL_MASK) | (c_sx_lat_full << RB_DEBUG_0_C_SX_LAT_FULL_SHIFT)
+#define RB_DEBUG_0_SET_C_SX_CMD_FULL(rb_debug_0_reg, c_sx_cmd_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_C_SX_CMD_FULL_MASK) | (c_sx_cmd_full << RB_DEBUG_0_C_SX_CMD_FULL_SHIFT)
+#define RB_DEBUG_0_SET_C_EZ_TILE_FULL(rb_debug_0_reg, c_ez_tile_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_C_EZ_TILE_FULL_MASK) | (c_ez_tile_full << RB_DEBUG_0_C_EZ_TILE_FULL_SHIFT)
+#define RB_DEBUG_0_SET_C_REQ_FULL(rb_debug_0_reg, c_req_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_C_REQ_FULL_MASK) | (c_req_full << RB_DEBUG_0_C_REQ_FULL_SHIFT)
+#define RB_DEBUG_0_SET_C_MASK_FULL(rb_debug_0_reg, c_mask_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_C_MASK_FULL_MASK) | (c_mask_full << RB_DEBUG_0_C_MASK_FULL_SHIFT)
+#define RB_DEBUG_0_SET_EZ_INFSAMP_FULL(rb_debug_0_reg, ez_infsamp_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_EZ_INFSAMP_FULL_MASK) | (ez_infsamp_full << RB_DEBUG_0_EZ_INFSAMP_FULL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_debug_0_t {
+ unsigned int rdreq_ctl_z1_pre_full : RB_DEBUG_0_RDREQ_CTL_Z1_PRE_FULL_SIZE;
+ unsigned int rdreq_ctl_z0_pre_full : RB_DEBUG_0_RDREQ_CTL_Z0_PRE_FULL_SIZE;
+ unsigned int rdreq_ctl_c1_pre_full : RB_DEBUG_0_RDREQ_CTL_C1_PRE_FULL_SIZE;
+ unsigned int rdreq_ctl_c0_pre_full : RB_DEBUG_0_RDREQ_CTL_C0_PRE_FULL_SIZE;
+ unsigned int rdreq_e1_ordering_full : RB_DEBUG_0_RDREQ_E1_ORDERING_FULL_SIZE;
+ unsigned int rdreq_e0_ordering_full : RB_DEBUG_0_RDREQ_E0_ORDERING_FULL_SIZE;
+ unsigned int rdreq_z1_full : RB_DEBUG_0_RDREQ_Z1_FULL_SIZE;
+ unsigned int rdreq_z0_full : RB_DEBUG_0_RDREQ_Z0_FULL_SIZE;
+ unsigned int rdreq_c1_full : RB_DEBUG_0_RDREQ_C1_FULL_SIZE;
+ unsigned int rdreq_c0_full : RB_DEBUG_0_RDREQ_C0_FULL_SIZE;
+ unsigned int wrreq_e1_macro_hi_full : RB_DEBUG_0_WRREQ_E1_MACRO_HI_FULL_SIZE;
+ unsigned int wrreq_e1_macro_lo_full : RB_DEBUG_0_WRREQ_E1_MACRO_LO_FULL_SIZE;
+ unsigned int wrreq_e0_macro_hi_full : RB_DEBUG_0_WRREQ_E0_MACRO_HI_FULL_SIZE;
+ unsigned int wrreq_e0_macro_lo_full : RB_DEBUG_0_WRREQ_E0_MACRO_LO_FULL_SIZE;
+ unsigned int wrreq_c_we_hi_full : RB_DEBUG_0_WRREQ_C_WE_HI_FULL_SIZE;
+ unsigned int wrreq_c_we_lo_full : RB_DEBUG_0_WRREQ_C_WE_LO_FULL_SIZE;
+ unsigned int wrreq_z1_full : RB_DEBUG_0_WRREQ_Z1_FULL_SIZE;
+ unsigned int wrreq_z0_full : RB_DEBUG_0_WRREQ_Z0_FULL_SIZE;
+ unsigned int wrreq_c1_full : RB_DEBUG_0_WRREQ_C1_FULL_SIZE;
+ unsigned int wrreq_c0_full : RB_DEBUG_0_WRREQ_C0_FULL_SIZE;
+ unsigned int cmdfifo_z1_hold_full : RB_DEBUG_0_CMDFIFO_Z1_HOLD_FULL_SIZE;
+ unsigned int cmdfifo_z0_hold_full : RB_DEBUG_0_CMDFIFO_Z0_HOLD_FULL_SIZE;
+ unsigned int cmdfifo_c1_hold_full : RB_DEBUG_0_CMDFIFO_C1_HOLD_FULL_SIZE;
+ unsigned int cmdfifo_c0_hold_full : RB_DEBUG_0_CMDFIFO_C0_HOLD_FULL_SIZE;
+ unsigned int cmdfifo_z_ordering_full : RB_DEBUG_0_CMDFIFO_Z_ORDERING_FULL_SIZE;
+ unsigned int cmdfifo_c_ordering_full : RB_DEBUG_0_CMDFIFO_C_ORDERING_FULL_SIZE;
+ unsigned int c_sx_lat_full : RB_DEBUG_0_C_SX_LAT_FULL_SIZE;
+ unsigned int c_sx_cmd_full : RB_DEBUG_0_C_SX_CMD_FULL_SIZE;
+ unsigned int c_ez_tile_full : RB_DEBUG_0_C_EZ_TILE_FULL_SIZE;
+ unsigned int c_req_full : RB_DEBUG_0_C_REQ_FULL_SIZE;
+ unsigned int c_mask_full : RB_DEBUG_0_C_MASK_FULL_SIZE;
+ unsigned int ez_infsamp_full : RB_DEBUG_0_EZ_INFSAMP_FULL_SIZE;
+ } rb_debug_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_debug_0_t {
+ unsigned int ez_infsamp_full : RB_DEBUG_0_EZ_INFSAMP_FULL_SIZE;
+ unsigned int c_mask_full : RB_DEBUG_0_C_MASK_FULL_SIZE;
+ unsigned int c_req_full : RB_DEBUG_0_C_REQ_FULL_SIZE;
+ unsigned int c_ez_tile_full : RB_DEBUG_0_C_EZ_TILE_FULL_SIZE;
+ unsigned int c_sx_cmd_full : RB_DEBUG_0_C_SX_CMD_FULL_SIZE;
+ unsigned int c_sx_lat_full : RB_DEBUG_0_C_SX_LAT_FULL_SIZE;
+ unsigned int cmdfifo_c_ordering_full : RB_DEBUG_0_CMDFIFO_C_ORDERING_FULL_SIZE;
+ unsigned int cmdfifo_z_ordering_full : RB_DEBUG_0_CMDFIFO_Z_ORDERING_FULL_SIZE;
+ unsigned int cmdfifo_c0_hold_full : RB_DEBUG_0_CMDFIFO_C0_HOLD_FULL_SIZE;
+ unsigned int cmdfifo_c1_hold_full : RB_DEBUG_0_CMDFIFO_C1_HOLD_FULL_SIZE;
+ unsigned int cmdfifo_z0_hold_full : RB_DEBUG_0_CMDFIFO_Z0_HOLD_FULL_SIZE;
+ unsigned int cmdfifo_z1_hold_full : RB_DEBUG_0_CMDFIFO_Z1_HOLD_FULL_SIZE;
+ unsigned int wrreq_c0_full : RB_DEBUG_0_WRREQ_C0_FULL_SIZE;
+ unsigned int wrreq_c1_full : RB_DEBUG_0_WRREQ_C1_FULL_SIZE;
+ unsigned int wrreq_z0_full : RB_DEBUG_0_WRREQ_Z0_FULL_SIZE;
+ unsigned int wrreq_z1_full : RB_DEBUG_0_WRREQ_Z1_FULL_SIZE;
+ unsigned int wrreq_c_we_lo_full : RB_DEBUG_0_WRREQ_C_WE_LO_FULL_SIZE;
+ unsigned int wrreq_c_we_hi_full : RB_DEBUG_0_WRREQ_C_WE_HI_FULL_SIZE;
+ unsigned int wrreq_e0_macro_lo_full : RB_DEBUG_0_WRREQ_E0_MACRO_LO_FULL_SIZE;
+ unsigned int wrreq_e0_macro_hi_full : RB_DEBUG_0_WRREQ_E0_MACRO_HI_FULL_SIZE;
+ unsigned int wrreq_e1_macro_lo_full : RB_DEBUG_0_WRREQ_E1_MACRO_LO_FULL_SIZE;
+ unsigned int wrreq_e1_macro_hi_full : RB_DEBUG_0_WRREQ_E1_MACRO_HI_FULL_SIZE;
+ unsigned int rdreq_c0_full : RB_DEBUG_0_RDREQ_C0_FULL_SIZE;
+ unsigned int rdreq_c1_full : RB_DEBUG_0_RDREQ_C1_FULL_SIZE;
+ unsigned int rdreq_z0_full : RB_DEBUG_0_RDREQ_Z0_FULL_SIZE;
+ unsigned int rdreq_z1_full : RB_DEBUG_0_RDREQ_Z1_FULL_SIZE;
+ unsigned int rdreq_e0_ordering_full : RB_DEBUG_0_RDREQ_E0_ORDERING_FULL_SIZE;
+ unsigned int rdreq_e1_ordering_full : RB_DEBUG_0_RDREQ_E1_ORDERING_FULL_SIZE;
+ unsigned int rdreq_ctl_c0_pre_full : RB_DEBUG_0_RDREQ_CTL_C0_PRE_FULL_SIZE;
+ unsigned int rdreq_ctl_c1_pre_full : RB_DEBUG_0_RDREQ_CTL_C1_PRE_FULL_SIZE;
+ unsigned int rdreq_ctl_z0_pre_full : RB_DEBUG_0_RDREQ_CTL_Z0_PRE_FULL_SIZE;
+ unsigned int rdreq_ctl_z1_pre_full : RB_DEBUG_0_RDREQ_CTL_Z1_PRE_FULL_SIZE;
+ } rb_debug_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_debug_0_t f;
+} rb_debug_0_u;
+
+
+/*
+ * RB_DEBUG_1 struct
+ */
+
+#define RB_DEBUG_1_RDREQ_Z1_CMD_EMPTY_SIZE 1
+#define RB_DEBUG_1_RDREQ_Z0_CMD_EMPTY_SIZE 1
+#define RB_DEBUG_1_RDREQ_C1_CMD_EMPTY_SIZE 1
+#define RB_DEBUG_1_RDREQ_C0_CMD_EMPTY_SIZE 1
+#define RB_DEBUG_1_RDREQ_E1_ORDERING_EMPTY_SIZE 1
+#define RB_DEBUG_1_RDREQ_E0_ORDERING_EMPTY_SIZE 1
+#define RB_DEBUG_1_RDREQ_Z1_EMPTY_SIZE 1
+#define RB_DEBUG_1_RDREQ_Z0_EMPTY_SIZE 1
+#define RB_DEBUG_1_RDREQ_C1_EMPTY_SIZE 1
+#define RB_DEBUG_1_RDREQ_C0_EMPTY_SIZE 1
+#define RB_DEBUG_1_WRREQ_E1_MACRO_HI_EMPTY_SIZE 1
+#define RB_DEBUG_1_WRREQ_E1_MACRO_LO_EMPTY_SIZE 1
+#define RB_DEBUG_1_WRREQ_E0_MACRO_HI_EMPTY_SIZE 1
+#define RB_DEBUG_1_WRREQ_E0_MACRO_LO_EMPTY_SIZE 1
+#define RB_DEBUG_1_WRREQ_C_WE_HI_EMPTY_SIZE 1
+#define RB_DEBUG_1_WRREQ_C_WE_LO_EMPTY_SIZE 1
+#define RB_DEBUG_1_WRREQ_Z1_EMPTY_SIZE 1
+#define RB_DEBUG_1_WRREQ_Z0_EMPTY_SIZE 1
+#define RB_DEBUG_1_WRREQ_C1_PRE_EMPTY_SIZE 1
+#define RB_DEBUG_1_WRREQ_C0_PRE_EMPTY_SIZE 1
+#define RB_DEBUG_1_CMDFIFO_Z1_HOLD_EMPTY_SIZE 1
+#define RB_DEBUG_1_CMDFIFO_Z0_HOLD_EMPTY_SIZE 1
+#define RB_DEBUG_1_CMDFIFO_C1_HOLD_EMPTY_SIZE 1
+#define RB_DEBUG_1_CMDFIFO_C0_HOLD_EMPTY_SIZE 1
+#define RB_DEBUG_1_CMDFIFO_Z_ORDERING_EMPTY_SIZE 1
+#define RB_DEBUG_1_CMDFIFO_C_ORDERING_EMPTY_SIZE 1
+#define RB_DEBUG_1_C_SX_LAT_EMPTY_SIZE 1
+#define RB_DEBUG_1_C_SX_CMD_EMPTY_SIZE 1
+#define RB_DEBUG_1_C_EZ_TILE_EMPTY_SIZE 1
+#define RB_DEBUG_1_C_REQ_EMPTY_SIZE 1
+#define RB_DEBUG_1_C_MASK_EMPTY_SIZE 1
+#define RB_DEBUG_1_EZ_INFSAMP_EMPTY_SIZE 1
+
+#define RB_DEBUG_1_RDREQ_Z1_CMD_EMPTY_SHIFT 0
+#define RB_DEBUG_1_RDREQ_Z0_CMD_EMPTY_SHIFT 1
+#define RB_DEBUG_1_RDREQ_C1_CMD_EMPTY_SHIFT 2
+#define RB_DEBUG_1_RDREQ_C0_CMD_EMPTY_SHIFT 3
+#define RB_DEBUG_1_RDREQ_E1_ORDERING_EMPTY_SHIFT 4
+#define RB_DEBUG_1_RDREQ_E0_ORDERING_EMPTY_SHIFT 5
+#define RB_DEBUG_1_RDREQ_Z1_EMPTY_SHIFT 6
+#define RB_DEBUG_1_RDREQ_Z0_EMPTY_SHIFT 7
+#define RB_DEBUG_1_RDREQ_C1_EMPTY_SHIFT 8
+#define RB_DEBUG_1_RDREQ_C0_EMPTY_SHIFT 9
+#define RB_DEBUG_1_WRREQ_E1_MACRO_HI_EMPTY_SHIFT 10
+#define RB_DEBUG_1_WRREQ_E1_MACRO_LO_EMPTY_SHIFT 11
+#define RB_DEBUG_1_WRREQ_E0_MACRO_HI_EMPTY_SHIFT 12
+#define RB_DEBUG_1_WRREQ_E0_MACRO_LO_EMPTY_SHIFT 13
+#define RB_DEBUG_1_WRREQ_C_WE_HI_EMPTY_SHIFT 14
+#define RB_DEBUG_1_WRREQ_C_WE_LO_EMPTY_SHIFT 15
+#define RB_DEBUG_1_WRREQ_Z1_EMPTY_SHIFT 16
+#define RB_DEBUG_1_WRREQ_Z0_EMPTY_SHIFT 17
+#define RB_DEBUG_1_WRREQ_C1_PRE_EMPTY_SHIFT 18
+#define RB_DEBUG_1_WRREQ_C0_PRE_EMPTY_SHIFT 19
+#define RB_DEBUG_1_CMDFIFO_Z1_HOLD_EMPTY_SHIFT 20
+#define RB_DEBUG_1_CMDFIFO_Z0_HOLD_EMPTY_SHIFT 21
+#define RB_DEBUG_1_CMDFIFO_C1_HOLD_EMPTY_SHIFT 22
+#define RB_DEBUG_1_CMDFIFO_C0_HOLD_EMPTY_SHIFT 23
+#define RB_DEBUG_1_CMDFIFO_Z_ORDERING_EMPTY_SHIFT 24
+#define RB_DEBUG_1_CMDFIFO_C_ORDERING_EMPTY_SHIFT 25
+#define RB_DEBUG_1_C_SX_LAT_EMPTY_SHIFT 26
+#define RB_DEBUG_1_C_SX_CMD_EMPTY_SHIFT 27
+#define RB_DEBUG_1_C_EZ_TILE_EMPTY_SHIFT 28
+#define RB_DEBUG_1_C_REQ_EMPTY_SHIFT 29
+#define RB_DEBUG_1_C_MASK_EMPTY_SHIFT 30
+#define RB_DEBUG_1_EZ_INFSAMP_EMPTY_SHIFT 31
+
+#define RB_DEBUG_1_RDREQ_Z1_CMD_EMPTY_MASK 0x00000001
+#define RB_DEBUG_1_RDREQ_Z0_CMD_EMPTY_MASK 0x00000002
+#define RB_DEBUG_1_RDREQ_C1_CMD_EMPTY_MASK 0x00000004
+#define RB_DEBUG_1_RDREQ_C0_CMD_EMPTY_MASK 0x00000008
+#define RB_DEBUG_1_RDREQ_E1_ORDERING_EMPTY_MASK 0x00000010
+#define RB_DEBUG_1_RDREQ_E0_ORDERING_EMPTY_MASK 0x00000020
+#define RB_DEBUG_1_RDREQ_Z1_EMPTY_MASK 0x00000040
+#define RB_DEBUG_1_RDREQ_Z0_EMPTY_MASK 0x00000080
+#define RB_DEBUG_1_RDREQ_C1_EMPTY_MASK 0x00000100
+#define RB_DEBUG_1_RDREQ_C0_EMPTY_MASK 0x00000200
+#define RB_DEBUG_1_WRREQ_E1_MACRO_HI_EMPTY_MASK 0x00000400
+#define RB_DEBUG_1_WRREQ_E1_MACRO_LO_EMPTY_MASK 0x00000800
+#define RB_DEBUG_1_WRREQ_E0_MACRO_HI_EMPTY_MASK 0x00001000
+#define RB_DEBUG_1_WRREQ_E0_MACRO_LO_EMPTY_MASK 0x00002000
+#define RB_DEBUG_1_WRREQ_C_WE_HI_EMPTY_MASK 0x00004000
+#define RB_DEBUG_1_WRREQ_C_WE_LO_EMPTY_MASK 0x00008000
+#define RB_DEBUG_1_WRREQ_Z1_EMPTY_MASK 0x00010000
+#define RB_DEBUG_1_WRREQ_Z0_EMPTY_MASK 0x00020000
+#define RB_DEBUG_1_WRREQ_C1_PRE_EMPTY_MASK 0x00040000
+#define RB_DEBUG_1_WRREQ_C0_PRE_EMPTY_MASK 0x00080000
+#define RB_DEBUG_1_CMDFIFO_Z1_HOLD_EMPTY_MASK 0x00100000
+#define RB_DEBUG_1_CMDFIFO_Z0_HOLD_EMPTY_MASK 0x00200000
+#define RB_DEBUG_1_CMDFIFO_C1_HOLD_EMPTY_MASK 0x00400000
+#define RB_DEBUG_1_CMDFIFO_C0_HOLD_EMPTY_MASK 0x00800000
+#define RB_DEBUG_1_CMDFIFO_Z_ORDERING_EMPTY_MASK 0x01000000
+#define RB_DEBUG_1_CMDFIFO_C_ORDERING_EMPTY_MASK 0x02000000
+#define RB_DEBUG_1_C_SX_LAT_EMPTY_MASK 0x04000000
+#define RB_DEBUG_1_C_SX_CMD_EMPTY_MASK 0x08000000
+#define RB_DEBUG_1_C_EZ_TILE_EMPTY_MASK 0x10000000
+#define RB_DEBUG_1_C_REQ_EMPTY_MASK 0x20000000
+#define RB_DEBUG_1_C_MASK_EMPTY_MASK 0x40000000
+#define RB_DEBUG_1_EZ_INFSAMP_EMPTY_MASK 0x80000000
+
+#define RB_DEBUG_1_MASK \
+ (RB_DEBUG_1_RDREQ_Z1_CMD_EMPTY_MASK | \
+ RB_DEBUG_1_RDREQ_Z0_CMD_EMPTY_MASK | \
+ RB_DEBUG_1_RDREQ_C1_CMD_EMPTY_MASK | \
+ RB_DEBUG_1_RDREQ_C0_CMD_EMPTY_MASK | \
+ RB_DEBUG_1_RDREQ_E1_ORDERING_EMPTY_MASK | \
+ RB_DEBUG_1_RDREQ_E0_ORDERING_EMPTY_MASK | \
+ RB_DEBUG_1_RDREQ_Z1_EMPTY_MASK | \
+ RB_DEBUG_1_RDREQ_Z0_EMPTY_MASK | \
+ RB_DEBUG_1_RDREQ_C1_EMPTY_MASK | \
+ RB_DEBUG_1_RDREQ_C0_EMPTY_MASK | \
+ RB_DEBUG_1_WRREQ_E1_MACRO_HI_EMPTY_MASK | \
+ RB_DEBUG_1_WRREQ_E1_MACRO_LO_EMPTY_MASK | \
+ RB_DEBUG_1_WRREQ_E0_MACRO_HI_EMPTY_MASK | \
+ RB_DEBUG_1_WRREQ_E0_MACRO_LO_EMPTY_MASK | \
+ RB_DEBUG_1_WRREQ_C_WE_HI_EMPTY_MASK | \
+ RB_DEBUG_1_WRREQ_C_WE_LO_EMPTY_MASK | \
+ RB_DEBUG_1_WRREQ_Z1_EMPTY_MASK | \
+ RB_DEBUG_1_WRREQ_Z0_EMPTY_MASK | \
+ RB_DEBUG_1_WRREQ_C1_PRE_EMPTY_MASK | \
+ RB_DEBUG_1_WRREQ_C0_PRE_EMPTY_MASK | \
+ RB_DEBUG_1_CMDFIFO_Z1_HOLD_EMPTY_MASK | \
+ RB_DEBUG_1_CMDFIFO_Z0_HOLD_EMPTY_MASK | \
+ RB_DEBUG_1_CMDFIFO_C1_HOLD_EMPTY_MASK | \
+ RB_DEBUG_1_CMDFIFO_C0_HOLD_EMPTY_MASK | \
+ RB_DEBUG_1_CMDFIFO_Z_ORDERING_EMPTY_MASK | \
+ RB_DEBUG_1_CMDFIFO_C_ORDERING_EMPTY_MASK | \
+ RB_DEBUG_1_C_SX_LAT_EMPTY_MASK | \
+ RB_DEBUG_1_C_SX_CMD_EMPTY_MASK | \
+ RB_DEBUG_1_C_EZ_TILE_EMPTY_MASK | \
+ RB_DEBUG_1_C_REQ_EMPTY_MASK | \
+ RB_DEBUG_1_C_MASK_EMPTY_MASK | \
+ RB_DEBUG_1_EZ_INFSAMP_EMPTY_MASK)
+
+#define RB_DEBUG_1(rdreq_z1_cmd_empty, rdreq_z0_cmd_empty, rdreq_c1_cmd_empty, rdreq_c0_cmd_empty, rdreq_e1_ordering_empty, rdreq_e0_ordering_empty, rdreq_z1_empty, rdreq_z0_empty, rdreq_c1_empty, rdreq_c0_empty, wrreq_e1_macro_hi_empty, wrreq_e1_macro_lo_empty, wrreq_e0_macro_hi_empty, wrreq_e0_macro_lo_empty, wrreq_c_we_hi_empty, wrreq_c_we_lo_empty, wrreq_z1_empty, wrreq_z0_empty, wrreq_c1_pre_empty, wrreq_c0_pre_empty, cmdfifo_z1_hold_empty, cmdfifo_z0_hold_empty, cmdfifo_c1_hold_empty, cmdfifo_c0_hold_empty, cmdfifo_z_ordering_empty, cmdfifo_c_ordering_empty, c_sx_lat_empty, c_sx_cmd_empty, c_ez_tile_empty, c_req_empty, c_mask_empty, ez_infsamp_empty) \
+ ((rdreq_z1_cmd_empty << RB_DEBUG_1_RDREQ_Z1_CMD_EMPTY_SHIFT) | \
+ (rdreq_z0_cmd_empty << RB_DEBUG_1_RDREQ_Z0_CMD_EMPTY_SHIFT) | \
+ (rdreq_c1_cmd_empty << RB_DEBUG_1_RDREQ_C1_CMD_EMPTY_SHIFT) | \
+ (rdreq_c0_cmd_empty << RB_DEBUG_1_RDREQ_C0_CMD_EMPTY_SHIFT) | \
+ (rdreq_e1_ordering_empty << RB_DEBUG_1_RDREQ_E1_ORDERING_EMPTY_SHIFT) | \
+ (rdreq_e0_ordering_empty << RB_DEBUG_1_RDREQ_E0_ORDERING_EMPTY_SHIFT) | \
+ (rdreq_z1_empty << RB_DEBUG_1_RDREQ_Z1_EMPTY_SHIFT) | \
+ (rdreq_z0_empty << RB_DEBUG_1_RDREQ_Z0_EMPTY_SHIFT) | \
+ (rdreq_c1_empty << RB_DEBUG_1_RDREQ_C1_EMPTY_SHIFT) | \
+ (rdreq_c0_empty << RB_DEBUG_1_RDREQ_C0_EMPTY_SHIFT) | \
+ (wrreq_e1_macro_hi_empty << RB_DEBUG_1_WRREQ_E1_MACRO_HI_EMPTY_SHIFT) | \
+ (wrreq_e1_macro_lo_empty << RB_DEBUG_1_WRREQ_E1_MACRO_LO_EMPTY_SHIFT) | \
+ (wrreq_e0_macro_hi_empty << RB_DEBUG_1_WRREQ_E0_MACRO_HI_EMPTY_SHIFT) | \
+ (wrreq_e0_macro_lo_empty << RB_DEBUG_1_WRREQ_E0_MACRO_LO_EMPTY_SHIFT) | \
+ (wrreq_c_we_hi_empty << RB_DEBUG_1_WRREQ_C_WE_HI_EMPTY_SHIFT) | \
+ (wrreq_c_we_lo_empty << RB_DEBUG_1_WRREQ_C_WE_LO_EMPTY_SHIFT) | \
+ (wrreq_z1_empty << RB_DEBUG_1_WRREQ_Z1_EMPTY_SHIFT) | \
+ (wrreq_z0_empty << RB_DEBUG_1_WRREQ_Z0_EMPTY_SHIFT) | \
+ (wrreq_c1_pre_empty << RB_DEBUG_1_WRREQ_C1_PRE_EMPTY_SHIFT) | \
+ (wrreq_c0_pre_empty << RB_DEBUG_1_WRREQ_C0_PRE_EMPTY_SHIFT) | \
+ (cmdfifo_z1_hold_empty << RB_DEBUG_1_CMDFIFO_Z1_HOLD_EMPTY_SHIFT) | \
+ (cmdfifo_z0_hold_empty << RB_DEBUG_1_CMDFIFO_Z0_HOLD_EMPTY_SHIFT) | \
+ (cmdfifo_c1_hold_empty << RB_DEBUG_1_CMDFIFO_C1_HOLD_EMPTY_SHIFT) | \
+ (cmdfifo_c0_hold_empty << RB_DEBUG_1_CMDFIFO_C0_HOLD_EMPTY_SHIFT) | \
+ (cmdfifo_z_ordering_empty << RB_DEBUG_1_CMDFIFO_Z_ORDERING_EMPTY_SHIFT) | \
+ (cmdfifo_c_ordering_empty << RB_DEBUG_1_CMDFIFO_C_ORDERING_EMPTY_SHIFT) | \
+ (c_sx_lat_empty << RB_DEBUG_1_C_SX_LAT_EMPTY_SHIFT) | \
+ (c_sx_cmd_empty << RB_DEBUG_1_C_SX_CMD_EMPTY_SHIFT) | \
+ (c_ez_tile_empty << RB_DEBUG_1_C_EZ_TILE_EMPTY_SHIFT) | \
+ (c_req_empty << RB_DEBUG_1_C_REQ_EMPTY_SHIFT) | \
+ (c_mask_empty << RB_DEBUG_1_C_MASK_EMPTY_SHIFT) | \
+ (ez_infsamp_empty << RB_DEBUG_1_EZ_INFSAMP_EMPTY_SHIFT))
+
+#define RB_DEBUG_1_GET_RDREQ_Z1_CMD_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_RDREQ_Z1_CMD_EMPTY_MASK) >> RB_DEBUG_1_RDREQ_Z1_CMD_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_RDREQ_Z0_CMD_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_RDREQ_Z0_CMD_EMPTY_MASK) >> RB_DEBUG_1_RDREQ_Z0_CMD_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_RDREQ_C1_CMD_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_RDREQ_C1_CMD_EMPTY_MASK) >> RB_DEBUG_1_RDREQ_C1_CMD_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_RDREQ_C0_CMD_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_RDREQ_C0_CMD_EMPTY_MASK) >> RB_DEBUG_1_RDREQ_C0_CMD_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_RDREQ_E1_ORDERING_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_RDREQ_E1_ORDERING_EMPTY_MASK) >> RB_DEBUG_1_RDREQ_E1_ORDERING_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_RDREQ_E0_ORDERING_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_RDREQ_E0_ORDERING_EMPTY_MASK) >> RB_DEBUG_1_RDREQ_E0_ORDERING_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_RDREQ_Z1_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_RDREQ_Z1_EMPTY_MASK) >> RB_DEBUG_1_RDREQ_Z1_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_RDREQ_Z0_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_RDREQ_Z0_EMPTY_MASK) >> RB_DEBUG_1_RDREQ_Z0_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_RDREQ_C1_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_RDREQ_C1_EMPTY_MASK) >> RB_DEBUG_1_RDREQ_C1_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_RDREQ_C0_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_RDREQ_C0_EMPTY_MASK) >> RB_DEBUG_1_RDREQ_C0_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_WRREQ_E1_MACRO_HI_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_WRREQ_E1_MACRO_HI_EMPTY_MASK) >> RB_DEBUG_1_WRREQ_E1_MACRO_HI_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_WRREQ_E1_MACRO_LO_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_WRREQ_E1_MACRO_LO_EMPTY_MASK) >> RB_DEBUG_1_WRREQ_E1_MACRO_LO_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_WRREQ_E0_MACRO_HI_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_WRREQ_E0_MACRO_HI_EMPTY_MASK) >> RB_DEBUG_1_WRREQ_E0_MACRO_HI_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_WRREQ_E0_MACRO_LO_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_WRREQ_E0_MACRO_LO_EMPTY_MASK) >> RB_DEBUG_1_WRREQ_E0_MACRO_LO_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_WRREQ_C_WE_HI_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_WRREQ_C_WE_HI_EMPTY_MASK) >> RB_DEBUG_1_WRREQ_C_WE_HI_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_WRREQ_C_WE_LO_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_WRREQ_C_WE_LO_EMPTY_MASK) >> RB_DEBUG_1_WRREQ_C_WE_LO_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_WRREQ_Z1_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_WRREQ_Z1_EMPTY_MASK) >> RB_DEBUG_1_WRREQ_Z1_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_WRREQ_Z0_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_WRREQ_Z0_EMPTY_MASK) >> RB_DEBUG_1_WRREQ_Z0_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_WRREQ_C1_PRE_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_WRREQ_C1_PRE_EMPTY_MASK) >> RB_DEBUG_1_WRREQ_C1_PRE_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_WRREQ_C0_PRE_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_WRREQ_C0_PRE_EMPTY_MASK) >> RB_DEBUG_1_WRREQ_C0_PRE_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_CMDFIFO_Z1_HOLD_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_CMDFIFO_Z1_HOLD_EMPTY_MASK) >> RB_DEBUG_1_CMDFIFO_Z1_HOLD_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_CMDFIFO_Z0_HOLD_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_CMDFIFO_Z0_HOLD_EMPTY_MASK) >> RB_DEBUG_1_CMDFIFO_Z0_HOLD_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_CMDFIFO_C1_HOLD_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_CMDFIFO_C1_HOLD_EMPTY_MASK) >> RB_DEBUG_1_CMDFIFO_C1_HOLD_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_CMDFIFO_C0_HOLD_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_CMDFIFO_C0_HOLD_EMPTY_MASK) >> RB_DEBUG_1_CMDFIFO_C0_HOLD_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_CMDFIFO_Z_ORDERING_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_CMDFIFO_Z_ORDERING_EMPTY_MASK) >> RB_DEBUG_1_CMDFIFO_Z_ORDERING_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_CMDFIFO_C_ORDERING_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_CMDFIFO_C_ORDERING_EMPTY_MASK) >> RB_DEBUG_1_CMDFIFO_C_ORDERING_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_C_SX_LAT_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_C_SX_LAT_EMPTY_MASK) >> RB_DEBUG_1_C_SX_LAT_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_C_SX_CMD_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_C_SX_CMD_EMPTY_MASK) >> RB_DEBUG_1_C_SX_CMD_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_C_EZ_TILE_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_C_EZ_TILE_EMPTY_MASK) >> RB_DEBUG_1_C_EZ_TILE_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_C_REQ_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_C_REQ_EMPTY_MASK) >> RB_DEBUG_1_C_REQ_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_C_MASK_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_C_MASK_EMPTY_MASK) >> RB_DEBUG_1_C_MASK_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_EZ_INFSAMP_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_EZ_INFSAMP_EMPTY_MASK) >> RB_DEBUG_1_EZ_INFSAMP_EMPTY_SHIFT)
+
+#define RB_DEBUG_1_SET_RDREQ_Z1_CMD_EMPTY(rb_debug_1_reg, rdreq_z1_cmd_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_RDREQ_Z1_CMD_EMPTY_MASK) | (rdreq_z1_cmd_empty << RB_DEBUG_1_RDREQ_Z1_CMD_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_RDREQ_Z0_CMD_EMPTY(rb_debug_1_reg, rdreq_z0_cmd_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_RDREQ_Z0_CMD_EMPTY_MASK) | (rdreq_z0_cmd_empty << RB_DEBUG_1_RDREQ_Z0_CMD_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_RDREQ_C1_CMD_EMPTY(rb_debug_1_reg, rdreq_c1_cmd_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_RDREQ_C1_CMD_EMPTY_MASK) | (rdreq_c1_cmd_empty << RB_DEBUG_1_RDREQ_C1_CMD_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_RDREQ_C0_CMD_EMPTY(rb_debug_1_reg, rdreq_c0_cmd_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_RDREQ_C0_CMD_EMPTY_MASK) | (rdreq_c0_cmd_empty << RB_DEBUG_1_RDREQ_C0_CMD_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_RDREQ_E1_ORDERING_EMPTY(rb_debug_1_reg, rdreq_e1_ordering_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_RDREQ_E1_ORDERING_EMPTY_MASK) | (rdreq_e1_ordering_empty << RB_DEBUG_1_RDREQ_E1_ORDERING_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_RDREQ_E0_ORDERING_EMPTY(rb_debug_1_reg, rdreq_e0_ordering_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_RDREQ_E0_ORDERING_EMPTY_MASK) | (rdreq_e0_ordering_empty << RB_DEBUG_1_RDREQ_E0_ORDERING_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_RDREQ_Z1_EMPTY(rb_debug_1_reg, rdreq_z1_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_RDREQ_Z1_EMPTY_MASK) | (rdreq_z1_empty << RB_DEBUG_1_RDREQ_Z1_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_RDREQ_Z0_EMPTY(rb_debug_1_reg, rdreq_z0_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_RDREQ_Z0_EMPTY_MASK) | (rdreq_z0_empty << RB_DEBUG_1_RDREQ_Z0_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_RDREQ_C1_EMPTY(rb_debug_1_reg, rdreq_c1_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_RDREQ_C1_EMPTY_MASK) | (rdreq_c1_empty << RB_DEBUG_1_RDREQ_C1_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_RDREQ_C0_EMPTY(rb_debug_1_reg, rdreq_c0_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_RDREQ_C0_EMPTY_MASK) | (rdreq_c0_empty << RB_DEBUG_1_RDREQ_C0_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_WRREQ_E1_MACRO_HI_EMPTY(rb_debug_1_reg, wrreq_e1_macro_hi_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_WRREQ_E1_MACRO_HI_EMPTY_MASK) | (wrreq_e1_macro_hi_empty << RB_DEBUG_1_WRREQ_E1_MACRO_HI_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_WRREQ_E1_MACRO_LO_EMPTY(rb_debug_1_reg, wrreq_e1_macro_lo_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_WRREQ_E1_MACRO_LO_EMPTY_MASK) | (wrreq_e1_macro_lo_empty << RB_DEBUG_1_WRREQ_E1_MACRO_LO_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_WRREQ_E0_MACRO_HI_EMPTY(rb_debug_1_reg, wrreq_e0_macro_hi_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_WRREQ_E0_MACRO_HI_EMPTY_MASK) | (wrreq_e0_macro_hi_empty << RB_DEBUG_1_WRREQ_E0_MACRO_HI_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_WRREQ_E0_MACRO_LO_EMPTY(rb_debug_1_reg, wrreq_e0_macro_lo_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_WRREQ_E0_MACRO_LO_EMPTY_MASK) | (wrreq_e0_macro_lo_empty << RB_DEBUG_1_WRREQ_E0_MACRO_LO_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_WRREQ_C_WE_HI_EMPTY(rb_debug_1_reg, wrreq_c_we_hi_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_WRREQ_C_WE_HI_EMPTY_MASK) | (wrreq_c_we_hi_empty << RB_DEBUG_1_WRREQ_C_WE_HI_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_WRREQ_C_WE_LO_EMPTY(rb_debug_1_reg, wrreq_c_we_lo_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_WRREQ_C_WE_LO_EMPTY_MASK) | (wrreq_c_we_lo_empty << RB_DEBUG_1_WRREQ_C_WE_LO_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_WRREQ_Z1_EMPTY(rb_debug_1_reg, wrreq_z1_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_WRREQ_Z1_EMPTY_MASK) | (wrreq_z1_empty << RB_DEBUG_1_WRREQ_Z1_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_WRREQ_Z0_EMPTY(rb_debug_1_reg, wrreq_z0_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_WRREQ_Z0_EMPTY_MASK) | (wrreq_z0_empty << RB_DEBUG_1_WRREQ_Z0_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_WRREQ_C1_PRE_EMPTY(rb_debug_1_reg, wrreq_c1_pre_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_WRREQ_C1_PRE_EMPTY_MASK) | (wrreq_c1_pre_empty << RB_DEBUG_1_WRREQ_C1_PRE_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_WRREQ_C0_PRE_EMPTY(rb_debug_1_reg, wrreq_c0_pre_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_WRREQ_C0_PRE_EMPTY_MASK) | (wrreq_c0_pre_empty << RB_DEBUG_1_WRREQ_C0_PRE_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_CMDFIFO_Z1_HOLD_EMPTY(rb_debug_1_reg, cmdfifo_z1_hold_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_CMDFIFO_Z1_HOLD_EMPTY_MASK) | (cmdfifo_z1_hold_empty << RB_DEBUG_1_CMDFIFO_Z1_HOLD_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_CMDFIFO_Z0_HOLD_EMPTY(rb_debug_1_reg, cmdfifo_z0_hold_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_CMDFIFO_Z0_HOLD_EMPTY_MASK) | (cmdfifo_z0_hold_empty << RB_DEBUG_1_CMDFIFO_Z0_HOLD_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_CMDFIFO_C1_HOLD_EMPTY(rb_debug_1_reg, cmdfifo_c1_hold_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_CMDFIFO_C1_HOLD_EMPTY_MASK) | (cmdfifo_c1_hold_empty << RB_DEBUG_1_CMDFIFO_C1_HOLD_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_CMDFIFO_C0_HOLD_EMPTY(rb_debug_1_reg, cmdfifo_c0_hold_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_CMDFIFO_C0_HOLD_EMPTY_MASK) | (cmdfifo_c0_hold_empty << RB_DEBUG_1_CMDFIFO_C0_HOLD_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_CMDFIFO_Z_ORDERING_EMPTY(rb_debug_1_reg, cmdfifo_z_ordering_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_CMDFIFO_Z_ORDERING_EMPTY_MASK) | (cmdfifo_z_ordering_empty << RB_DEBUG_1_CMDFIFO_Z_ORDERING_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_CMDFIFO_C_ORDERING_EMPTY(rb_debug_1_reg, cmdfifo_c_ordering_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_CMDFIFO_C_ORDERING_EMPTY_MASK) | (cmdfifo_c_ordering_empty << RB_DEBUG_1_CMDFIFO_C_ORDERING_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_C_SX_LAT_EMPTY(rb_debug_1_reg, c_sx_lat_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_C_SX_LAT_EMPTY_MASK) | (c_sx_lat_empty << RB_DEBUG_1_C_SX_LAT_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_C_SX_CMD_EMPTY(rb_debug_1_reg, c_sx_cmd_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_C_SX_CMD_EMPTY_MASK) | (c_sx_cmd_empty << RB_DEBUG_1_C_SX_CMD_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_C_EZ_TILE_EMPTY(rb_debug_1_reg, c_ez_tile_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_C_EZ_TILE_EMPTY_MASK) | (c_ez_tile_empty << RB_DEBUG_1_C_EZ_TILE_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_C_REQ_EMPTY(rb_debug_1_reg, c_req_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_C_REQ_EMPTY_MASK) | (c_req_empty << RB_DEBUG_1_C_REQ_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_C_MASK_EMPTY(rb_debug_1_reg, c_mask_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_C_MASK_EMPTY_MASK) | (c_mask_empty << RB_DEBUG_1_C_MASK_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_EZ_INFSAMP_EMPTY(rb_debug_1_reg, ez_infsamp_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_EZ_INFSAMP_EMPTY_MASK) | (ez_infsamp_empty << RB_DEBUG_1_EZ_INFSAMP_EMPTY_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_debug_1_t {
+ unsigned int rdreq_z1_cmd_empty : RB_DEBUG_1_RDREQ_Z1_CMD_EMPTY_SIZE;
+ unsigned int rdreq_z0_cmd_empty : RB_DEBUG_1_RDREQ_Z0_CMD_EMPTY_SIZE;
+ unsigned int rdreq_c1_cmd_empty : RB_DEBUG_1_RDREQ_C1_CMD_EMPTY_SIZE;
+ unsigned int rdreq_c0_cmd_empty : RB_DEBUG_1_RDREQ_C0_CMD_EMPTY_SIZE;
+ unsigned int rdreq_e1_ordering_empty : RB_DEBUG_1_RDREQ_E1_ORDERING_EMPTY_SIZE;
+ unsigned int rdreq_e0_ordering_empty : RB_DEBUG_1_RDREQ_E0_ORDERING_EMPTY_SIZE;
+ unsigned int rdreq_z1_empty : RB_DEBUG_1_RDREQ_Z1_EMPTY_SIZE;
+ unsigned int rdreq_z0_empty : RB_DEBUG_1_RDREQ_Z0_EMPTY_SIZE;
+ unsigned int rdreq_c1_empty : RB_DEBUG_1_RDREQ_C1_EMPTY_SIZE;
+ unsigned int rdreq_c0_empty : RB_DEBUG_1_RDREQ_C0_EMPTY_SIZE;
+ unsigned int wrreq_e1_macro_hi_empty : RB_DEBUG_1_WRREQ_E1_MACRO_HI_EMPTY_SIZE;
+ unsigned int wrreq_e1_macro_lo_empty : RB_DEBUG_1_WRREQ_E1_MACRO_LO_EMPTY_SIZE;
+ unsigned int wrreq_e0_macro_hi_empty : RB_DEBUG_1_WRREQ_E0_MACRO_HI_EMPTY_SIZE;
+ unsigned int wrreq_e0_macro_lo_empty : RB_DEBUG_1_WRREQ_E0_MACRO_LO_EMPTY_SIZE;
+ unsigned int wrreq_c_we_hi_empty : RB_DEBUG_1_WRREQ_C_WE_HI_EMPTY_SIZE;
+ unsigned int wrreq_c_we_lo_empty : RB_DEBUG_1_WRREQ_C_WE_LO_EMPTY_SIZE;
+ unsigned int wrreq_z1_empty : RB_DEBUG_1_WRREQ_Z1_EMPTY_SIZE;
+ unsigned int wrreq_z0_empty : RB_DEBUG_1_WRREQ_Z0_EMPTY_SIZE;
+ unsigned int wrreq_c1_pre_empty : RB_DEBUG_1_WRREQ_C1_PRE_EMPTY_SIZE;
+ unsigned int wrreq_c0_pre_empty : RB_DEBUG_1_WRREQ_C0_PRE_EMPTY_SIZE;
+ unsigned int cmdfifo_z1_hold_empty : RB_DEBUG_1_CMDFIFO_Z1_HOLD_EMPTY_SIZE;
+ unsigned int cmdfifo_z0_hold_empty : RB_DEBUG_1_CMDFIFO_Z0_HOLD_EMPTY_SIZE;
+ unsigned int cmdfifo_c1_hold_empty : RB_DEBUG_1_CMDFIFO_C1_HOLD_EMPTY_SIZE;
+ unsigned int cmdfifo_c0_hold_empty : RB_DEBUG_1_CMDFIFO_C0_HOLD_EMPTY_SIZE;
+ unsigned int cmdfifo_z_ordering_empty : RB_DEBUG_1_CMDFIFO_Z_ORDERING_EMPTY_SIZE;
+ unsigned int cmdfifo_c_ordering_empty : RB_DEBUG_1_CMDFIFO_C_ORDERING_EMPTY_SIZE;
+ unsigned int c_sx_lat_empty : RB_DEBUG_1_C_SX_LAT_EMPTY_SIZE;
+ unsigned int c_sx_cmd_empty : RB_DEBUG_1_C_SX_CMD_EMPTY_SIZE;
+ unsigned int c_ez_tile_empty : RB_DEBUG_1_C_EZ_TILE_EMPTY_SIZE;
+ unsigned int c_req_empty : RB_DEBUG_1_C_REQ_EMPTY_SIZE;
+ unsigned int c_mask_empty : RB_DEBUG_1_C_MASK_EMPTY_SIZE;
+ unsigned int ez_infsamp_empty : RB_DEBUG_1_EZ_INFSAMP_EMPTY_SIZE;
+ } rb_debug_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_debug_1_t {
+ unsigned int ez_infsamp_empty : RB_DEBUG_1_EZ_INFSAMP_EMPTY_SIZE;
+ unsigned int c_mask_empty : RB_DEBUG_1_C_MASK_EMPTY_SIZE;
+ unsigned int c_req_empty : RB_DEBUG_1_C_REQ_EMPTY_SIZE;
+ unsigned int c_ez_tile_empty : RB_DEBUG_1_C_EZ_TILE_EMPTY_SIZE;
+ unsigned int c_sx_cmd_empty : RB_DEBUG_1_C_SX_CMD_EMPTY_SIZE;
+ unsigned int c_sx_lat_empty : RB_DEBUG_1_C_SX_LAT_EMPTY_SIZE;
+ unsigned int cmdfifo_c_ordering_empty : RB_DEBUG_1_CMDFIFO_C_ORDERING_EMPTY_SIZE;
+ unsigned int cmdfifo_z_ordering_empty : RB_DEBUG_1_CMDFIFO_Z_ORDERING_EMPTY_SIZE;
+ unsigned int cmdfifo_c0_hold_empty : RB_DEBUG_1_CMDFIFO_C0_HOLD_EMPTY_SIZE;
+ unsigned int cmdfifo_c1_hold_empty : RB_DEBUG_1_CMDFIFO_C1_HOLD_EMPTY_SIZE;
+ unsigned int cmdfifo_z0_hold_empty : RB_DEBUG_1_CMDFIFO_Z0_HOLD_EMPTY_SIZE;
+ unsigned int cmdfifo_z1_hold_empty : RB_DEBUG_1_CMDFIFO_Z1_HOLD_EMPTY_SIZE;
+ unsigned int wrreq_c0_pre_empty : RB_DEBUG_1_WRREQ_C0_PRE_EMPTY_SIZE;
+ unsigned int wrreq_c1_pre_empty : RB_DEBUG_1_WRREQ_C1_PRE_EMPTY_SIZE;
+ unsigned int wrreq_z0_empty : RB_DEBUG_1_WRREQ_Z0_EMPTY_SIZE;
+ unsigned int wrreq_z1_empty : RB_DEBUG_1_WRREQ_Z1_EMPTY_SIZE;
+ unsigned int wrreq_c_we_lo_empty : RB_DEBUG_1_WRREQ_C_WE_LO_EMPTY_SIZE;
+ unsigned int wrreq_c_we_hi_empty : RB_DEBUG_1_WRREQ_C_WE_HI_EMPTY_SIZE;
+ unsigned int wrreq_e0_macro_lo_empty : RB_DEBUG_1_WRREQ_E0_MACRO_LO_EMPTY_SIZE;
+ unsigned int wrreq_e0_macro_hi_empty : RB_DEBUG_1_WRREQ_E0_MACRO_HI_EMPTY_SIZE;
+ unsigned int wrreq_e1_macro_lo_empty : RB_DEBUG_1_WRREQ_E1_MACRO_LO_EMPTY_SIZE;
+ unsigned int wrreq_e1_macro_hi_empty : RB_DEBUG_1_WRREQ_E1_MACRO_HI_EMPTY_SIZE;
+ unsigned int rdreq_c0_empty : RB_DEBUG_1_RDREQ_C0_EMPTY_SIZE;
+ unsigned int rdreq_c1_empty : RB_DEBUG_1_RDREQ_C1_EMPTY_SIZE;
+ unsigned int rdreq_z0_empty : RB_DEBUG_1_RDREQ_Z0_EMPTY_SIZE;
+ unsigned int rdreq_z1_empty : RB_DEBUG_1_RDREQ_Z1_EMPTY_SIZE;
+ unsigned int rdreq_e0_ordering_empty : RB_DEBUG_1_RDREQ_E0_ORDERING_EMPTY_SIZE;
+ unsigned int rdreq_e1_ordering_empty : RB_DEBUG_1_RDREQ_E1_ORDERING_EMPTY_SIZE;
+ unsigned int rdreq_c0_cmd_empty : RB_DEBUG_1_RDREQ_C0_CMD_EMPTY_SIZE;
+ unsigned int rdreq_c1_cmd_empty : RB_DEBUG_1_RDREQ_C1_CMD_EMPTY_SIZE;
+ unsigned int rdreq_z0_cmd_empty : RB_DEBUG_1_RDREQ_Z0_CMD_EMPTY_SIZE;
+ unsigned int rdreq_z1_cmd_empty : RB_DEBUG_1_RDREQ_Z1_CMD_EMPTY_SIZE;
+ } rb_debug_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_debug_1_t f;
+} rb_debug_1_u;
+
+
+/*
+ * RB_DEBUG_2 struct
+ */
+
+#define RB_DEBUG_2_TILE_FIFO_COUNT_SIZE 4
+#define RB_DEBUG_2_SX_LAT_FIFO_COUNT_SIZE 7
+#define RB_DEBUG_2_MEM_EXPORT_FLAG_SIZE 1
+#define RB_DEBUG_2_SYSMEM_BLEND_FLAG_SIZE 1
+#define RB_DEBUG_2_CURRENT_TILE_EVENT_SIZE 1
+#define RB_DEBUG_2_EZ_INFTILE_FULL_SIZE 1
+#define RB_DEBUG_2_EZ_MASK_LOWER_FULL_SIZE 1
+#define RB_DEBUG_2_EZ_MASK_UPPER_FULL_SIZE 1
+#define RB_DEBUG_2_Z0_MASK_FULL_SIZE 1
+#define RB_DEBUG_2_Z1_MASK_FULL_SIZE 1
+#define RB_DEBUG_2_Z0_REQ_FULL_SIZE 1
+#define RB_DEBUG_2_Z1_REQ_FULL_SIZE 1
+#define RB_DEBUG_2_Z_SAMP_FULL_SIZE 1
+#define RB_DEBUG_2_Z_TILE_FULL_SIZE 1
+#define RB_DEBUG_2_EZ_INFTILE_EMPTY_SIZE 1
+#define RB_DEBUG_2_EZ_MASK_LOWER_EMPTY_SIZE 1
+#define RB_DEBUG_2_EZ_MASK_UPPER_EMPTY_SIZE 1
+#define RB_DEBUG_2_Z0_MASK_EMPTY_SIZE 1
+#define RB_DEBUG_2_Z1_MASK_EMPTY_SIZE 1
+#define RB_DEBUG_2_Z0_REQ_EMPTY_SIZE 1
+#define RB_DEBUG_2_Z1_REQ_EMPTY_SIZE 1
+#define RB_DEBUG_2_Z_SAMP_EMPTY_SIZE 1
+#define RB_DEBUG_2_Z_TILE_EMPTY_SIZE 1
+
+#define RB_DEBUG_2_TILE_FIFO_COUNT_SHIFT 0
+#define RB_DEBUG_2_SX_LAT_FIFO_COUNT_SHIFT 4
+#define RB_DEBUG_2_MEM_EXPORT_FLAG_SHIFT 11
+#define RB_DEBUG_2_SYSMEM_BLEND_FLAG_SHIFT 12
+#define RB_DEBUG_2_CURRENT_TILE_EVENT_SHIFT 13
+#define RB_DEBUG_2_EZ_INFTILE_FULL_SHIFT 14
+#define RB_DEBUG_2_EZ_MASK_LOWER_FULL_SHIFT 15
+#define RB_DEBUG_2_EZ_MASK_UPPER_FULL_SHIFT 16
+#define RB_DEBUG_2_Z0_MASK_FULL_SHIFT 17
+#define RB_DEBUG_2_Z1_MASK_FULL_SHIFT 18
+#define RB_DEBUG_2_Z0_REQ_FULL_SHIFT 19
+#define RB_DEBUG_2_Z1_REQ_FULL_SHIFT 20
+#define RB_DEBUG_2_Z_SAMP_FULL_SHIFT 21
+#define RB_DEBUG_2_Z_TILE_FULL_SHIFT 22
+#define RB_DEBUG_2_EZ_INFTILE_EMPTY_SHIFT 23
+#define RB_DEBUG_2_EZ_MASK_LOWER_EMPTY_SHIFT 24
+#define RB_DEBUG_2_EZ_MASK_UPPER_EMPTY_SHIFT 25
+#define RB_DEBUG_2_Z0_MASK_EMPTY_SHIFT 26
+#define RB_DEBUG_2_Z1_MASK_EMPTY_SHIFT 27
+#define RB_DEBUG_2_Z0_REQ_EMPTY_SHIFT 28
+#define RB_DEBUG_2_Z1_REQ_EMPTY_SHIFT 29
+#define RB_DEBUG_2_Z_SAMP_EMPTY_SHIFT 30
+#define RB_DEBUG_2_Z_TILE_EMPTY_SHIFT 31
+
+#define RB_DEBUG_2_TILE_FIFO_COUNT_MASK 0x0000000f
+#define RB_DEBUG_2_SX_LAT_FIFO_COUNT_MASK 0x000007f0
+#define RB_DEBUG_2_MEM_EXPORT_FLAG_MASK 0x00000800
+#define RB_DEBUG_2_SYSMEM_BLEND_FLAG_MASK 0x00001000
+#define RB_DEBUG_2_CURRENT_TILE_EVENT_MASK 0x00002000
+#define RB_DEBUG_2_EZ_INFTILE_FULL_MASK 0x00004000
+#define RB_DEBUG_2_EZ_MASK_LOWER_FULL_MASK 0x00008000
+#define RB_DEBUG_2_EZ_MASK_UPPER_FULL_MASK 0x00010000
+#define RB_DEBUG_2_Z0_MASK_FULL_MASK 0x00020000
+#define RB_DEBUG_2_Z1_MASK_FULL_MASK 0x00040000
+#define RB_DEBUG_2_Z0_REQ_FULL_MASK 0x00080000
+#define RB_DEBUG_2_Z1_REQ_FULL_MASK 0x00100000
+#define RB_DEBUG_2_Z_SAMP_FULL_MASK 0x00200000
+#define RB_DEBUG_2_Z_TILE_FULL_MASK 0x00400000
+#define RB_DEBUG_2_EZ_INFTILE_EMPTY_MASK 0x00800000
+#define RB_DEBUG_2_EZ_MASK_LOWER_EMPTY_MASK 0x01000000
+#define RB_DEBUG_2_EZ_MASK_UPPER_EMPTY_MASK 0x02000000
+#define RB_DEBUG_2_Z0_MASK_EMPTY_MASK 0x04000000
+#define RB_DEBUG_2_Z1_MASK_EMPTY_MASK 0x08000000
+#define RB_DEBUG_2_Z0_REQ_EMPTY_MASK 0x10000000
+#define RB_DEBUG_2_Z1_REQ_EMPTY_MASK 0x20000000
+#define RB_DEBUG_2_Z_SAMP_EMPTY_MASK 0x40000000
+#define RB_DEBUG_2_Z_TILE_EMPTY_MASK 0x80000000
+
+#define RB_DEBUG_2_MASK \
+ (RB_DEBUG_2_TILE_FIFO_COUNT_MASK | \
+ RB_DEBUG_2_SX_LAT_FIFO_COUNT_MASK | \
+ RB_DEBUG_2_MEM_EXPORT_FLAG_MASK | \
+ RB_DEBUG_2_SYSMEM_BLEND_FLAG_MASK | \
+ RB_DEBUG_2_CURRENT_TILE_EVENT_MASK | \
+ RB_DEBUG_2_EZ_INFTILE_FULL_MASK | \
+ RB_DEBUG_2_EZ_MASK_LOWER_FULL_MASK | \
+ RB_DEBUG_2_EZ_MASK_UPPER_FULL_MASK | \
+ RB_DEBUG_2_Z0_MASK_FULL_MASK | \
+ RB_DEBUG_2_Z1_MASK_FULL_MASK | \
+ RB_DEBUG_2_Z0_REQ_FULL_MASK | \
+ RB_DEBUG_2_Z1_REQ_FULL_MASK | \
+ RB_DEBUG_2_Z_SAMP_FULL_MASK | \
+ RB_DEBUG_2_Z_TILE_FULL_MASK | \
+ RB_DEBUG_2_EZ_INFTILE_EMPTY_MASK | \
+ RB_DEBUG_2_EZ_MASK_LOWER_EMPTY_MASK | \
+ RB_DEBUG_2_EZ_MASK_UPPER_EMPTY_MASK | \
+ RB_DEBUG_2_Z0_MASK_EMPTY_MASK | \
+ RB_DEBUG_2_Z1_MASK_EMPTY_MASK | \
+ RB_DEBUG_2_Z0_REQ_EMPTY_MASK | \
+ RB_DEBUG_2_Z1_REQ_EMPTY_MASK | \
+ RB_DEBUG_2_Z_SAMP_EMPTY_MASK | \
+ RB_DEBUG_2_Z_TILE_EMPTY_MASK)
+
+#define RB_DEBUG_2(tile_fifo_count, sx_lat_fifo_count, mem_export_flag, sysmem_blend_flag, current_tile_event, ez_inftile_full, ez_mask_lower_full, ez_mask_upper_full, z0_mask_full, z1_mask_full, z0_req_full, z1_req_full, z_samp_full, z_tile_full, ez_inftile_empty, ez_mask_lower_empty, ez_mask_upper_empty, z0_mask_empty, z1_mask_empty, z0_req_empty, z1_req_empty, z_samp_empty, z_tile_empty) \
+ ((tile_fifo_count << RB_DEBUG_2_TILE_FIFO_COUNT_SHIFT) | \
+ (sx_lat_fifo_count << RB_DEBUG_2_SX_LAT_FIFO_COUNT_SHIFT) | \
+ (mem_export_flag << RB_DEBUG_2_MEM_EXPORT_FLAG_SHIFT) | \
+ (sysmem_blend_flag << RB_DEBUG_2_SYSMEM_BLEND_FLAG_SHIFT) | \
+ (current_tile_event << RB_DEBUG_2_CURRENT_TILE_EVENT_SHIFT) | \
+ (ez_inftile_full << RB_DEBUG_2_EZ_INFTILE_FULL_SHIFT) | \
+ (ez_mask_lower_full << RB_DEBUG_2_EZ_MASK_LOWER_FULL_SHIFT) | \
+ (ez_mask_upper_full << RB_DEBUG_2_EZ_MASK_UPPER_FULL_SHIFT) | \
+ (z0_mask_full << RB_DEBUG_2_Z0_MASK_FULL_SHIFT) | \
+ (z1_mask_full << RB_DEBUG_2_Z1_MASK_FULL_SHIFT) | \
+ (z0_req_full << RB_DEBUG_2_Z0_REQ_FULL_SHIFT) | \
+ (z1_req_full << RB_DEBUG_2_Z1_REQ_FULL_SHIFT) | \
+ (z_samp_full << RB_DEBUG_2_Z_SAMP_FULL_SHIFT) | \
+ (z_tile_full << RB_DEBUG_2_Z_TILE_FULL_SHIFT) | \
+ (ez_inftile_empty << RB_DEBUG_2_EZ_INFTILE_EMPTY_SHIFT) | \
+ (ez_mask_lower_empty << RB_DEBUG_2_EZ_MASK_LOWER_EMPTY_SHIFT) | \
+ (ez_mask_upper_empty << RB_DEBUG_2_EZ_MASK_UPPER_EMPTY_SHIFT) | \
+ (z0_mask_empty << RB_DEBUG_2_Z0_MASK_EMPTY_SHIFT) | \
+ (z1_mask_empty << RB_DEBUG_2_Z1_MASK_EMPTY_SHIFT) | \
+ (z0_req_empty << RB_DEBUG_2_Z0_REQ_EMPTY_SHIFT) | \
+ (z1_req_empty << RB_DEBUG_2_Z1_REQ_EMPTY_SHIFT) | \
+ (z_samp_empty << RB_DEBUG_2_Z_SAMP_EMPTY_SHIFT) | \
+ (z_tile_empty << RB_DEBUG_2_Z_TILE_EMPTY_SHIFT))
+
+#define RB_DEBUG_2_GET_TILE_FIFO_COUNT(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_TILE_FIFO_COUNT_MASK) >> RB_DEBUG_2_TILE_FIFO_COUNT_SHIFT)
+#define RB_DEBUG_2_GET_SX_LAT_FIFO_COUNT(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_SX_LAT_FIFO_COUNT_MASK) >> RB_DEBUG_2_SX_LAT_FIFO_COUNT_SHIFT)
+#define RB_DEBUG_2_GET_MEM_EXPORT_FLAG(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_MEM_EXPORT_FLAG_MASK) >> RB_DEBUG_2_MEM_EXPORT_FLAG_SHIFT)
+#define RB_DEBUG_2_GET_SYSMEM_BLEND_FLAG(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_SYSMEM_BLEND_FLAG_MASK) >> RB_DEBUG_2_SYSMEM_BLEND_FLAG_SHIFT)
+#define RB_DEBUG_2_GET_CURRENT_TILE_EVENT(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_CURRENT_TILE_EVENT_MASK) >> RB_DEBUG_2_CURRENT_TILE_EVENT_SHIFT)
+#define RB_DEBUG_2_GET_EZ_INFTILE_FULL(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_EZ_INFTILE_FULL_MASK) >> RB_DEBUG_2_EZ_INFTILE_FULL_SHIFT)
+#define RB_DEBUG_2_GET_EZ_MASK_LOWER_FULL(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_EZ_MASK_LOWER_FULL_MASK) >> RB_DEBUG_2_EZ_MASK_LOWER_FULL_SHIFT)
+#define RB_DEBUG_2_GET_EZ_MASK_UPPER_FULL(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_EZ_MASK_UPPER_FULL_MASK) >> RB_DEBUG_2_EZ_MASK_UPPER_FULL_SHIFT)
+#define RB_DEBUG_2_GET_Z0_MASK_FULL(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_Z0_MASK_FULL_MASK) >> RB_DEBUG_2_Z0_MASK_FULL_SHIFT)
+#define RB_DEBUG_2_GET_Z1_MASK_FULL(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_Z1_MASK_FULL_MASK) >> RB_DEBUG_2_Z1_MASK_FULL_SHIFT)
+#define RB_DEBUG_2_GET_Z0_REQ_FULL(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_Z0_REQ_FULL_MASK) >> RB_DEBUG_2_Z0_REQ_FULL_SHIFT)
+#define RB_DEBUG_2_GET_Z1_REQ_FULL(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_Z1_REQ_FULL_MASK) >> RB_DEBUG_2_Z1_REQ_FULL_SHIFT)
+#define RB_DEBUG_2_GET_Z_SAMP_FULL(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_Z_SAMP_FULL_MASK) >> RB_DEBUG_2_Z_SAMP_FULL_SHIFT)
+#define RB_DEBUG_2_GET_Z_TILE_FULL(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_Z_TILE_FULL_MASK) >> RB_DEBUG_2_Z_TILE_FULL_SHIFT)
+#define RB_DEBUG_2_GET_EZ_INFTILE_EMPTY(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_EZ_INFTILE_EMPTY_MASK) >> RB_DEBUG_2_EZ_INFTILE_EMPTY_SHIFT)
+#define RB_DEBUG_2_GET_EZ_MASK_LOWER_EMPTY(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_EZ_MASK_LOWER_EMPTY_MASK) >> RB_DEBUG_2_EZ_MASK_LOWER_EMPTY_SHIFT)
+#define RB_DEBUG_2_GET_EZ_MASK_UPPER_EMPTY(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_EZ_MASK_UPPER_EMPTY_MASK) >> RB_DEBUG_2_EZ_MASK_UPPER_EMPTY_SHIFT)
+#define RB_DEBUG_2_GET_Z0_MASK_EMPTY(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_Z0_MASK_EMPTY_MASK) >> RB_DEBUG_2_Z0_MASK_EMPTY_SHIFT)
+#define RB_DEBUG_2_GET_Z1_MASK_EMPTY(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_Z1_MASK_EMPTY_MASK) >> RB_DEBUG_2_Z1_MASK_EMPTY_SHIFT)
+#define RB_DEBUG_2_GET_Z0_REQ_EMPTY(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_Z0_REQ_EMPTY_MASK) >> RB_DEBUG_2_Z0_REQ_EMPTY_SHIFT)
+#define RB_DEBUG_2_GET_Z1_REQ_EMPTY(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_Z1_REQ_EMPTY_MASK) >> RB_DEBUG_2_Z1_REQ_EMPTY_SHIFT)
+#define RB_DEBUG_2_GET_Z_SAMP_EMPTY(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_Z_SAMP_EMPTY_MASK) >> RB_DEBUG_2_Z_SAMP_EMPTY_SHIFT)
+#define RB_DEBUG_2_GET_Z_TILE_EMPTY(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_Z_TILE_EMPTY_MASK) >> RB_DEBUG_2_Z_TILE_EMPTY_SHIFT)
+
+#define RB_DEBUG_2_SET_TILE_FIFO_COUNT(rb_debug_2_reg, tile_fifo_count) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_TILE_FIFO_COUNT_MASK) | (tile_fifo_count << RB_DEBUG_2_TILE_FIFO_COUNT_SHIFT)
+#define RB_DEBUG_2_SET_SX_LAT_FIFO_COUNT(rb_debug_2_reg, sx_lat_fifo_count) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_SX_LAT_FIFO_COUNT_MASK) | (sx_lat_fifo_count << RB_DEBUG_2_SX_LAT_FIFO_COUNT_SHIFT)
+#define RB_DEBUG_2_SET_MEM_EXPORT_FLAG(rb_debug_2_reg, mem_export_flag) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_MEM_EXPORT_FLAG_MASK) | (mem_export_flag << RB_DEBUG_2_MEM_EXPORT_FLAG_SHIFT)
+#define RB_DEBUG_2_SET_SYSMEM_BLEND_FLAG(rb_debug_2_reg, sysmem_blend_flag) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_SYSMEM_BLEND_FLAG_MASK) | (sysmem_blend_flag << RB_DEBUG_2_SYSMEM_BLEND_FLAG_SHIFT)
+#define RB_DEBUG_2_SET_CURRENT_TILE_EVENT(rb_debug_2_reg, current_tile_event) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_CURRENT_TILE_EVENT_MASK) | (current_tile_event << RB_DEBUG_2_CURRENT_TILE_EVENT_SHIFT)
+#define RB_DEBUG_2_SET_EZ_INFTILE_FULL(rb_debug_2_reg, ez_inftile_full) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_EZ_INFTILE_FULL_MASK) | (ez_inftile_full << RB_DEBUG_2_EZ_INFTILE_FULL_SHIFT)
+#define RB_DEBUG_2_SET_EZ_MASK_LOWER_FULL(rb_debug_2_reg, ez_mask_lower_full) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_EZ_MASK_LOWER_FULL_MASK) | (ez_mask_lower_full << RB_DEBUG_2_EZ_MASK_LOWER_FULL_SHIFT)
+#define RB_DEBUG_2_SET_EZ_MASK_UPPER_FULL(rb_debug_2_reg, ez_mask_upper_full) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_EZ_MASK_UPPER_FULL_MASK) | (ez_mask_upper_full << RB_DEBUG_2_EZ_MASK_UPPER_FULL_SHIFT)
+#define RB_DEBUG_2_SET_Z0_MASK_FULL(rb_debug_2_reg, z0_mask_full) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_Z0_MASK_FULL_MASK) | (z0_mask_full << RB_DEBUG_2_Z0_MASK_FULL_SHIFT)
+#define RB_DEBUG_2_SET_Z1_MASK_FULL(rb_debug_2_reg, z1_mask_full) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_Z1_MASK_FULL_MASK) | (z1_mask_full << RB_DEBUG_2_Z1_MASK_FULL_SHIFT)
+#define RB_DEBUG_2_SET_Z0_REQ_FULL(rb_debug_2_reg, z0_req_full) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_Z0_REQ_FULL_MASK) | (z0_req_full << RB_DEBUG_2_Z0_REQ_FULL_SHIFT)
+#define RB_DEBUG_2_SET_Z1_REQ_FULL(rb_debug_2_reg, z1_req_full) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_Z1_REQ_FULL_MASK) | (z1_req_full << RB_DEBUG_2_Z1_REQ_FULL_SHIFT)
+#define RB_DEBUG_2_SET_Z_SAMP_FULL(rb_debug_2_reg, z_samp_full) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_Z_SAMP_FULL_MASK) | (z_samp_full << RB_DEBUG_2_Z_SAMP_FULL_SHIFT)
+#define RB_DEBUG_2_SET_Z_TILE_FULL(rb_debug_2_reg, z_tile_full) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_Z_TILE_FULL_MASK) | (z_tile_full << RB_DEBUG_2_Z_TILE_FULL_SHIFT)
+#define RB_DEBUG_2_SET_EZ_INFTILE_EMPTY(rb_debug_2_reg, ez_inftile_empty) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_EZ_INFTILE_EMPTY_MASK) | (ez_inftile_empty << RB_DEBUG_2_EZ_INFTILE_EMPTY_SHIFT)
+#define RB_DEBUG_2_SET_EZ_MASK_LOWER_EMPTY(rb_debug_2_reg, ez_mask_lower_empty) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_EZ_MASK_LOWER_EMPTY_MASK) | (ez_mask_lower_empty << RB_DEBUG_2_EZ_MASK_LOWER_EMPTY_SHIFT)
+#define RB_DEBUG_2_SET_EZ_MASK_UPPER_EMPTY(rb_debug_2_reg, ez_mask_upper_empty) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_EZ_MASK_UPPER_EMPTY_MASK) | (ez_mask_upper_empty << RB_DEBUG_2_EZ_MASK_UPPER_EMPTY_SHIFT)
+#define RB_DEBUG_2_SET_Z0_MASK_EMPTY(rb_debug_2_reg, z0_mask_empty) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_Z0_MASK_EMPTY_MASK) | (z0_mask_empty << RB_DEBUG_2_Z0_MASK_EMPTY_SHIFT)
+#define RB_DEBUG_2_SET_Z1_MASK_EMPTY(rb_debug_2_reg, z1_mask_empty) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_Z1_MASK_EMPTY_MASK) | (z1_mask_empty << RB_DEBUG_2_Z1_MASK_EMPTY_SHIFT)
+#define RB_DEBUG_2_SET_Z0_REQ_EMPTY(rb_debug_2_reg, z0_req_empty) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_Z0_REQ_EMPTY_MASK) | (z0_req_empty << RB_DEBUG_2_Z0_REQ_EMPTY_SHIFT)
+#define RB_DEBUG_2_SET_Z1_REQ_EMPTY(rb_debug_2_reg, z1_req_empty) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_Z1_REQ_EMPTY_MASK) | (z1_req_empty << RB_DEBUG_2_Z1_REQ_EMPTY_SHIFT)
+#define RB_DEBUG_2_SET_Z_SAMP_EMPTY(rb_debug_2_reg, z_samp_empty) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_Z_SAMP_EMPTY_MASK) | (z_samp_empty << RB_DEBUG_2_Z_SAMP_EMPTY_SHIFT)
+#define RB_DEBUG_2_SET_Z_TILE_EMPTY(rb_debug_2_reg, z_tile_empty) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_Z_TILE_EMPTY_MASK) | (z_tile_empty << RB_DEBUG_2_Z_TILE_EMPTY_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_debug_2_t {
+ unsigned int tile_fifo_count : RB_DEBUG_2_TILE_FIFO_COUNT_SIZE;
+ unsigned int sx_lat_fifo_count : RB_DEBUG_2_SX_LAT_FIFO_COUNT_SIZE;
+ unsigned int mem_export_flag : RB_DEBUG_2_MEM_EXPORT_FLAG_SIZE;
+ unsigned int sysmem_blend_flag : RB_DEBUG_2_SYSMEM_BLEND_FLAG_SIZE;
+ unsigned int current_tile_event : RB_DEBUG_2_CURRENT_TILE_EVENT_SIZE;
+ unsigned int ez_inftile_full : RB_DEBUG_2_EZ_INFTILE_FULL_SIZE;
+ unsigned int ez_mask_lower_full : RB_DEBUG_2_EZ_MASK_LOWER_FULL_SIZE;
+ unsigned int ez_mask_upper_full : RB_DEBUG_2_EZ_MASK_UPPER_FULL_SIZE;
+ unsigned int z0_mask_full : RB_DEBUG_2_Z0_MASK_FULL_SIZE;
+ unsigned int z1_mask_full : RB_DEBUG_2_Z1_MASK_FULL_SIZE;
+ unsigned int z0_req_full : RB_DEBUG_2_Z0_REQ_FULL_SIZE;
+ unsigned int z1_req_full : RB_DEBUG_2_Z1_REQ_FULL_SIZE;
+ unsigned int z_samp_full : RB_DEBUG_2_Z_SAMP_FULL_SIZE;
+ unsigned int z_tile_full : RB_DEBUG_2_Z_TILE_FULL_SIZE;
+ unsigned int ez_inftile_empty : RB_DEBUG_2_EZ_INFTILE_EMPTY_SIZE;
+ unsigned int ez_mask_lower_empty : RB_DEBUG_2_EZ_MASK_LOWER_EMPTY_SIZE;
+ unsigned int ez_mask_upper_empty : RB_DEBUG_2_EZ_MASK_UPPER_EMPTY_SIZE;
+ unsigned int z0_mask_empty : RB_DEBUG_2_Z0_MASK_EMPTY_SIZE;
+ unsigned int z1_mask_empty : RB_DEBUG_2_Z1_MASK_EMPTY_SIZE;
+ unsigned int z0_req_empty : RB_DEBUG_2_Z0_REQ_EMPTY_SIZE;
+ unsigned int z1_req_empty : RB_DEBUG_2_Z1_REQ_EMPTY_SIZE;
+ unsigned int z_samp_empty : RB_DEBUG_2_Z_SAMP_EMPTY_SIZE;
+ unsigned int z_tile_empty : RB_DEBUG_2_Z_TILE_EMPTY_SIZE;
+ } rb_debug_2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_debug_2_t {
+ unsigned int z_tile_empty : RB_DEBUG_2_Z_TILE_EMPTY_SIZE;
+ unsigned int z_samp_empty : RB_DEBUG_2_Z_SAMP_EMPTY_SIZE;
+ unsigned int z1_req_empty : RB_DEBUG_2_Z1_REQ_EMPTY_SIZE;
+ unsigned int z0_req_empty : RB_DEBUG_2_Z0_REQ_EMPTY_SIZE;
+ unsigned int z1_mask_empty : RB_DEBUG_2_Z1_MASK_EMPTY_SIZE;
+ unsigned int z0_mask_empty : RB_DEBUG_2_Z0_MASK_EMPTY_SIZE;
+ unsigned int ez_mask_upper_empty : RB_DEBUG_2_EZ_MASK_UPPER_EMPTY_SIZE;
+ unsigned int ez_mask_lower_empty : RB_DEBUG_2_EZ_MASK_LOWER_EMPTY_SIZE;
+ unsigned int ez_inftile_empty : RB_DEBUG_2_EZ_INFTILE_EMPTY_SIZE;
+ unsigned int z_tile_full : RB_DEBUG_2_Z_TILE_FULL_SIZE;
+ unsigned int z_samp_full : RB_DEBUG_2_Z_SAMP_FULL_SIZE;
+ unsigned int z1_req_full : RB_DEBUG_2_Z1_REQ_FULL_SIZE;
+ unsigned int z0_req_full : RB_DEBUG_2_Z0_REQ_FULL_SIZE;
+ unsigned int z1_mask_full : RB_DEBUG_2_Z1_MASK_FULL_SIZE;
+ unsigned int z0_mask_full : RB_DEBUG_2_Z0_MASK_FULL_SIZE;
+ unsigned int ez_mask_upper_full : RB_DEBUG_2_EZ_MASK_UPPER_FULL_SIZE;
+ unsigned int ez_mask_lower_full : RB_DEBUG_2_EZ_MASK_LOWER_FULL_SIZE;
+ unsigned int ez_inftile_full : RB_DEBUG_2_EZ_INFTILE_FULL_SIZE;
+ unsigned int current_tile_event : RB_DEBUG_2_CURRENT_TILE_EVENT_SIZE;
+ unsigned int sysmem_blend_flag : RB_DEBUG_2_SYSMEM_BLEND_FLAG_SIZE;
+ unsigned int mem_export_flag : RB_DEBUG_2_MEM_EXPORT_FLAG_SIZE;
+ unsigned int sx_lat_fifo_count : RB_DEBUG_2_SX_LAT_FIFO_COUNT_SIZE;
+ unsigned int tile_fifo_count : RB_DEBUG_2_TILE_FIFO_COUNT_SIZE;
+ } rb_debug_2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_debug_2_t f;
+} rb_debug_2_u;
+
+
+/*
+ * RB_DEBUG_3 struct
+ */
+
+#define RB_DEBUG_3_ACCUM_VALID_SIZE 4
+#define RB_DEBUG_3_ACCUM_FLUSHING_SIZE 4
+#define RB_DEBUG_3_ACCUM_WRITE_CLEAN_COUNT_SIZE 6
+#define RB_DEBUG_3_ACCUM_INPUT_REG_VALID_SIZE 1
+#define RB_DEBUG_3_ACCUM_DATA_FIFO_CNT_SIZE 4
+#define RB_DEBUG_3_SHD_FULL_SIZE 1
+#define RB_DEBUG_3_SHD_EMPTY_SIZE 1
+#define RB_DEBUG_3_EZ_RETURN_LOWER_EMPTY_SIZE 1
+#define RB_DEBUG_3_EZ_RETURN_UPPER_EMPTY_SIZE 1
+#define RB_DEBUG_3_EZ_RETURN_LOWER_FULL_SIZE 1
+#define RB_DEBUG_3_EZ_RETURN_UPPER_FULL_SIZE 1
+#define RB_DEBUG_3_ZEXP_LOWER_EMPTY_SIZE 1
+#define RB_DEBUG_3_ZEXP_UPPER_EMPTY_SIZE 1
+#define RB_DEBUG_3_ZEXP_LOWER_FULL_SIZE 1
+#define RB_DEBUG_3_ZEXP_UPPER_FULL_SIZE 1
+
+#define RB_DEBUG_3_ACCUM_VALID_SHIFT 0
+#define RB_DEBUG_3_ACCUM_FLUSHING_SHIFT 4
+#define RB_DEBUG_3_ACCUM_WRITE_CLEAN_COUNT_SHIFT 8
+#define RB_DEBUG_3_ACCUM_INPUT_REG_VALID_SHIFT 14
+#define RB_DEBUG_3_ACCUM_DATA_FIFO_CNT_SHIFT 15
+#define RB_DEBUG_3_SHD_FULL_SHIFT 19
+#define RB_DEBUG_3_SHD_EMPTY_SHIFT 20
+#define RB_DEBUG_3_EZ_RETURN_LOWER_EMPTY_SHIFT 21
+#define RB_DEBUG_3_EZ_RETURN_UPPER_EMPTY_SHIFT 22
+#define RB_DEBUG_3_EZ_RETURN_LOWER_FULL_SHIFT 23
+#define RB_DEBUG_3_EZ_RETURN_UPPER_FULL_SHIFT 24
+#define RB_DEBUG_3_ZEXP_LOWER_EMPTY_SHIFT 25
+#define RB_DEBUG_3_ZEXP_UPPER_EMPTY_SHIFT 26
+#define RB_DEBUG_3_ZEXP_LOWER_FULL_SHIFT 27
+#define RB_DEBUG_3_ZEXP_UPPER_FULL_SHIFT 28
+
+#define RB_DEBUG_3_ACCUM_VALID_MASK 0x0000000f
+#define RB_DEBUG_3_ACCUM_FLUSHING_MASK 0x000000f0
+#define RB_DEBUG_3_ACCUM_WRITE_CLEAN_COUNT_MASK 0x00003f00
+#define RB_DEBUG_3_ACCUM_INPUT_REG_VALID_MASK 0x00004000
+#define RB_DEBUG_3_ACCUM_DATA_FIFO_CNT_MASK 0x00078000
+#define RB_DEBUG_3_SHD_FULL_MASK 0x00080000
+#define RB_DEBUG_3_SHD_EMPTY_MASK 0x00100000
+#define RB_DEBUG_3_EZ_RETURN_LOWER_EMPTY_MASK 0x00200000
+#define RB_DEBUG_3_EZ_RETURN_UPPER_EMPTY_MASK 0x00400000
+#define RB_DEBUG_3_EZ_RETURN_LOWER_FULL_MASK 0x00800000
+#define RB_DEBUG_3_EZ_RETURN_UPPER_FULL_MASK 0x01000000
+#define RB_DEBUG_3_ZEXP_LOWER_EMPTY_MASK 0x02000000
+#define RB_DEBUG_3_ZEXP_UPPER_EMPTY_MASK 0x04000000
+#define RB_DEBUG_3_ZEXP_LOWER_FULL_MASK 0x08000000
+#define RB_DEBUG_3_ZEXP_UPPER_FULL_MASK 0x10000000
+
+#define RB_DEBUG_3_MASK \
+ (RB_DEBUG_3_ACCUM_VALID_MASK | \
+ RB_DEBUG_3_ACCUM_FLUSHING_MASK | \
+ RB_DEBUG_3_ACCUM_WRITE_CLEAN_COUNT_MASK | \
+ RB_DEBUG_3_ACCUM_INPUT_REG_VALID_MASK | \
+ RB_DEBUG_3_ACCUM_DATA_FIFO_CNT_MASK | \
+ RB_DEBUG_3_SHD_FULL_MASK | \
+ RB_DEBUG_3_SHD_EMPTY_MASK | \
+ RB_DEBUG_3_EZ_RETURN_LOWER_EMPTY_MASK | \
+ RB_DEBUG_3_EZ_RETURN_UPPER_EMPTY_MASK | \
+ RB_DEBUG_3_EZ_RETURN_LOWER_FULL_MASK | \
+ RB_DEBUG_3_EZ_RETURN_UPPER_FULL_MASK | \
+ RB_DEBUG_3_ZEXP_LOWER_EMPTY_MASK | \
+ RB_DEBUG_3_ZEXP_UPPER_EMPTY_MASK | \
+ RB_DEBUG_3_ZEXP_LOWER_FULL_MASK | \
+ RB_DEBUG_3_ZEXP_UPPER_FULL_MASK)
+
+#define RB_DEBUG_3(accum_valid, accum_flushing, accum_write_clean_count, accum_input_reg_valid, accum_data_fifo_cnt, shd_full, shd_empty, ez_return_lower_empty, ez_return_upper_empty, ez_return_lower_full, ez_return_upper_full, zexp_lower_empty, zexp_upper_empty, zexp_lower_full, zexp_upper_full) \
+ ((accum_valid << RB_DEBUG_3_ACCUM_VALID_SHIFT) | \
+ (accum_flushing << RB_DEBUG_3_ACCUM_FLUSHING_SHIFT) | \
+ (accum_write_clean_count << RB_DEBUG_3_ACCUM_WRITE_CLEAN_COUNT_SHIFT) | \
+ (accum_input_reg_valid << RB_DEBUG_3_ACCUM_INPUT_REG_VALID_SHIFT) | \
+ (accum_data_fifo_cnt << RB_DEBUG_3_ACCUM_DATA_FIFO_CNT_SHIFT) | \
+ (shd_full << RB_DEBUG_3_SHD_FULL_SHIFT) | \
+ (shd_empty << RB_DEBUG_3_SHD_EMPTY_SHIFT) | \
+ (ez_return_lower_empty << RB_DEBUG_3_EZ_RETURN_LOWER_EMPTY_SHIFT) | \
+ (ez_return_upper_empty << RB_DEBUG_3_EZ_RETURN_UPPER_EMPTY_SHIFT) | \
+ (ez_return_lower_full << RB_DEBUG_3_EZ_RETURN_LOWER_FULL_SHIFT) | \
+ (ez_return_upper_full << RB_DEBUG_3_EZ_RETURN_UPPER_FULL_SHIFT) | \
+ (zexp_lower_empty << RB_DEBUG_3_ZEXP_LOWER_EMPTY_SHIFT) | \
+ (zexp_upper_empty << RB_DEBUG_3_ZEXP_UPPER_EMPTY_SHIFT) | \
+ (zexp_lower_full << RB_DEBUG_3_ZEXP_LOWER_FULL_SHIFT) | \
+ (zexp_upper_full << RB_DEBUG_3_ZEXP_UPPER_FULL_SHIFT))
+
+#define RB_DEBUG_3_GET_ACCUM_VALID(rb_debug_3) \
+ ((rb_debug_3 & RB_DEBUG_3_ACCUM_VALID_MASK) >> RB_DEBUG_3_ACCUM_VALID_SHIFT)
+#define RB_DEBUG_3_GET_ACCUM_FLUSHING(rb_debug_3) \
+ ((rb_debug_3 & RB_DEBUG_3_ACCUM_FLUSHING_MASK) >> RB_DEBUG_3_ACCUM_FLUSHING_SHIFT)
+#define RB_DEBUG_3_GET_ACCUM_WRITE_CLEAN_COUNT(rb_debug_3) \
+ ((rb_debug_3 & RB_DEBUG_3_ACCUM_WRITE_CLEAN_COUNT_MASK) >> RB_DEBUG_3_ACCUM_WRITE_CLEAN_COUNT_SHIFT)
+#define RB_DEBUG_3_GET_ACCUM_INPUT_REG_VALID(rb_debug_3) \
+ ((rb_debug_3 & RB_DEBUG_3_ACCUM_INPUT_REG_VALID_MASK) >> RB_DEBUG_3_ACCUM_INPUT_REG_VALID_SHIFT)
+#define RB_DEBUG_3_GET_ACCUM_DATA_FIFO_CNT(rb_debug_3) \
+ ((rb_debug_3 & RB_DEBUG_3_ACCUM_DATA_FIFO_CNT_MASK) >> RB_DEBUG_3_ACCUM_DATA_FIFO_CNT_SHIFT)
+#define RB_DEBUG_3_GET_SHD_FULL(rb_debug_3) \
+ ((rb_debug_3 & RB_DEBUG_3_SHD_FULL_MASK) >> RB_DEBUG_3_SHD_FULL_SHIFT)
+#define RB_DEBUG_3_GET_SHD_EMPTY(rb_debug_3) \
+ ((rb_debug_3 & RB_DEBUG_3_SHD_EMPTY_MASK) >> RB_DEBUG_3_SHD_EMPTY_SHIFT)
+#define RB_DEBUG_3_GET_EZ_RETURN_LOWER_EMPTY(rb_debug_3) \
+ ((rb_debug_3 & RB_DEBUG_3_EZ_RETURN_LOWER_EMPTY_MASK) >> RB_DEBUG_3_EZ_RETURN_LOWER_EMPTY_SHIFT)
+#define RB_DEBUG_3_GET_EZ_RETURN_UPPER_EMPTY(rb_debug_3) \
+ ((rb_debug_3 & RB_DEBUG_3_EZ_RETURN_UPPER_EMPTY_MASK) >> RB_DEBUG_3_EZ_RETURN_UPPER_EMPTY_SHIFT)
+#define RB_DEBUG_3_GET_EZ_RETURN_LOWER_FULL(rb_debug_3) \
+ ((rb_debug_3 & RB_DEBUG_3_EZ_RETURN_LOWER_FULL_MASK) >> RB_DEBUG_3_EZ_RETURN_LOWER_FULL_SHIFT)
+#define RB_DEBUG_3_GET_EZ_RETURN_UPPER_FULL(rb_debug_3) \
+ ((rb_debug_3 & RB_DEBUG_3_EZ_RETURN_UPPER_FULL_MASK) >> RB_DEBUG_3_EZ_RETURN_UPPER_FULL_SHIFT)
+#define RB_DEBUG_3_GET_ZEXP_LOWER_EMPTY(rb_debug_3) \
+ ((rb_debug_3 & RB_DEBUG_3_ZEXP_LOWER_EMPTY_MASK) >> RB_DEBUG_3_ZEXP_LOWER_EMPTY_SHIFT)
+#define RB_DEBUG_3_GET_ZEXP_UPPER_EMPTY(rb_debug_3) \
+ ((rb_debug_3 & RB_DEBUG_3_ZEXP_UPPER_EMPTY_MASK) >> RB_DEBUG_3_ZEXP_UPPER_EMPTY_SHIFT)
+#define RB_DEBUG_3_GET_ZEXP_LOWER_FULL(rb_debug_3) \
+ ((rb_debug_3 & RB_DEBUG_3_ZEXP_LOWER_FULL_MASK) >> RB_DEBUG_3_ZEXP_LOWER_FULL_SHIFT)
+#define RB_DEBUG_3_GET_ZEXP_UPPER_FULL(rb_debug_3) \
+ ((rb_debug_3 & RB_DEBUG_3_ZEXP_UPPER_FULL_MASK) >> RB_DEBUG_3_ZEXP_UPPER_FULL_SHIFT)
+
+#define RB_DEBUG_3_SET_ACCUM_VALID(rb_debug_3_reg, accum_valid) \
+ rb_debug_3_reg = (rb_debug_3_reg & ~RB_DEBUG_3_ACCUM_VALID_MASK) | (accum_valid << RB_DEBUG_3_ACCUM_VALID_SHIFT)
+#define RB_DEBUG_3_SET_ACCUM_FLUSHING(rb_debug_3_reg, accum_flushing) \
+ rb_debug_3_reg = (rb_debug_3_reg & ~RB_DEBUG_3_ACCUM_FLUSHING_MASK) | (accum_flushing << RB_DEBUG_3_ACCUM_FLUSHING_SHIFT)
+#define RB_DEBUG_3_SET_ACCUM_WRITE_CLEAN_COUNT(rb_debug_3_reg, accum_write_clean_count) \
+ rb_debug_3_reg = (rb_debug_3_reg & ~RB_DEBUG_3_ACCUM_WRITE_CLEAN_COUNT_MASK) | (accum_write_clean_count << RB_DEBUG_3_ACCUM_WRITE_CLEAN_COUNT_SHIFT)
+#define RB_DEBUG_3_SET_ACCUM_INPUT_REG_VALID(rb_debug_3_reg, accum_input_reg_valid) \
+ rb_debug_3_reg = (rb_debug_3_reg & ~RB_DEBUG_3_ACCUM_INPUT_REG_VALID_MASK) | (accum_input_reg_valid << RB_DEBUG_3_ACCUM_INPUT_REG_VALID_SHIFT)
+#define RB_DEBUG_3_SET_ACCUM_DATA_FIFO_CNT(rb_debug_3_reg, accum_data_fifo_cnt) \
+ rb_debug_3_reg = (rb_debug_3_reg & ~RB_DEBUG_3_ACCUM_DATA_FIFO_CNT_MASK) | (accum_data_fifo_cnt << RB_DEBUG_3_ACCUM_DATA_FIFO_CNT_SHIFT)
+#define RB_DEBUG_3_SET_SHD_FULL(rb_debug_3_reg, shd_full) \
+ rb_debug_3_reg = (rb_debug_3_reg & ~RB_DEBUG_3_SHD_FULL_MASK) | (shd_full << RB_DEBUG_3_SHD_FULL_SHIFT)
+#define RB_DEBUG_3_SET_SHD_EMPTY(rb_debug_3_reg, shd_empty) \
+ rb_debug_3_reg = (rb_debug_3_reg & ~RB_DEBUG_3_SHD_EMPTY_MASK) | (shd_empty << RB_DEBUG_3_SHD_EMPTY_SHIFT)
+#define RB_DEBUG_3_SET_EZ_RETURN_LOWER_EMPTY(rb_debug_3_reg, ez_return_lower_empty) \
+ rb_debug_3_reg = (rb_debug_3_reg & ~RB_DEBUG_3_EZ_RETURN_LOWER_EMPTY_MASK) | (ez_return_lower_empty << RB_DEBUG_3_EZ_RETURN_LOWER_EMPTY_SHIFT)
+#define RB_DEBUG_3_SET_EZ_RETURN_UPPER_EMPTY(rb_debug_3_reg, ez_return_upper_empty) \
+ rb_debug_3_reg = (rb_debug_3_reg & ~RB_DEBUG_3_EZ_RETURN_UPPER_EMPTY_MASK) | (ez_return_upper_empty << RB_DEBUG_3_EZ_RETURN_UPPER_EMPTY_SHIFT)
+#define RB_DEBUG_3_SET_EZ_RETURN_LOWER_FULL(rb_debug_3_reg, ez_return_lower_full) \
+ rb_debug_3_reg = (rb_debug_3_reg & ~RB_DEBUG_3_EZ_RETURN_LOWER_FULL_MASK) | (ez_return_lower_full << RB_DEBUG_3_EZ_RETURN_LOWER_FULL_SHIFT)
+#define RB_DEBUG_3_SET_EZ_RETURN_UPPER_FULL(rb_debug_3_reg, ez_return_upper_full) \
+ rb_debug_3_reg = (rb_debug_3_reg & ~RB_DEBUG_3_EZ_RETURN_UPPER_FULL_MASK) | (ez_return_upper_full << RB_DEBUG_3_EZ_RETURN_UPPER_FULL_SHIFT)
+#define RB_DEBUG_3_SET_ZEXP_LOWER_EMPTY(rb_debug_3_reg, zexp_lower_empty) \
+ rb_debug_3_reg = (rb_debug_3_reg & ~RB_DEBUG_3_ZEXP_LOWER_EMPTY_MASK) | (zexp_lower_empty << RB_DEBUG_3_ZEXP_LOWER_EMPTY_SHIFT)
+#define RB_DEBUG_3_SET_ZEXP_UPPER_EMPTY(rb_debug_3_reg, zexp_upper_empty) \
+ rb_debug_3_reg = (rb_debug_3_reg & ~RB_DEBUG_3_ZEXP_UPPER_EMPTY_MASK) | (zexp_upper_empty << RB_DEBUG_3_ZEXP_UPPER_EMPTY_SHIFT)
+#define RB_DEBUG_3_SET_ZEXP_LOWER_FULL(rb_debug_3_reg, zexp_lower_full) \
+ rb_debug_3_reg = (rb_debug_3_reg & ~RB_DEBUG_3_ZEXP_LOWER_FULL_MASK) | (zexp_lower_full << RB_DEBUG_3_ZEXP_LOWER_FULL_SHIFT)
+#define RB_DEBUG_3_SET_ZEXP_UPPER_FULL(rb_debug_3_reg, zexp_upper_full) \
+ rb_debug_3_reg = (rb_debug_3_reg & ~RB_DEBUG_3_ZEXP_UPPER_FULL_MASK) | (zexp_upper_full << RB_DEBUG_3_ZEXP_UPPER_FULL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_debug_3_t {
+ unsigned int accum_valid : RB_DEBUG_3_ACCUM_VALID_SIZE;
+ unsigned int accum_flushing : RB_DEBUG_3_ACCUM_FLUSHING_SIZE;
+ unsigned int accum_write_clean_count : RB_DEBUG_3_ACCUM_WRITE_CLEAN_COUNT_SIZE;
+ unsigned int accum_input_reg_valid : RB_DEBUG_3_ACCUM_INPUT_REG_VALID_SIZE;
+ unsigned int accum_data_fifo_cnt : RB_DEBUG_3_ACCUM_DATA_FIFO_CNT_SIZE;
+ unsigned int shd_full : RB_DEBUG_3_SHD_FULL_SIZE;
+ unsigned int shd_empty : RB_DEBUG_3_SHD_EMPTY_SIZE;
+ unsigned int ez_return_lower_empty : RB_DEBUG_3_EZ_RETURN_LOWER_EMPTY_SIZE;
+ unsigned int ez_return_upper_empty : RB_DEBUG_3_EZ_RETURN_UPPER_EMPTY_SIZE;
+ unsigned int ez_return_lower_full : RB_DEBUG_3_EZ_RETURN_LOWER_FULL_SIZE;
+ unsigned int ez_return_upper_full : RB_DEBUG_3_EZ_RETURN_UPPER_FULL_SIZE;
+ unsigned int zexp_lower_empty : RB_DEBUG_3_ZEXP_LOWER_EMPTY_SIZE;
+ unsigned int zexp_upper_empty : RB_DEBUG_3_ZEXP_UPPER_EMPTY_SIZE;
+ unsigned int zexp_lower_full : RB_DEBUG_3_ZEXP_LOWER_FULL_SIZE;
+ unsigned int zexp_upper_full : RB_DEBUG_3_ZEXP_UPPER_FULL_SIZE;
+ unsigned int : 3;
+ } rb_debug_3_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_debug_3_t {
+ unsigned int : 3;
+ unsigned int zexp_upper_full : RB_DEBUG_3_ZEXP_UPPER_FULL_SIZE;
+ unsigned int zexp_lower_full : RB_DEBUG_3_ZEXP_LOWER_FULL_SIZE;
+ unsigned int zexp_upper_empty : RB_DEBUG_3_ZEXP_UPPER_EMPTY_SIZE;
+ unsigned int zexp_lower_empty : RB_DEBUG_3_ZEXP_LOWER_EMPTY_SIZE;
+ unsigned int ez_return_upper_full : RB_DEBUG_3_EZ_RETURN_UPPER_FULL_SIZE;
+ unsigned int ez_return_lower_full : RB_DEBUG_3_EZ_RETURN_LOWER_FULL_SIZE;
+ unsigned int ez_return_upper_empty : RB_DEBUG_3_EZ_RETURN_UPPER_EMPTY_SIZE;
+ unsigned int ez_return_lower_empty : RB_DEBUG_3_EZ_RETURN_LOWER_EMPTY_SIZE;
+ unsigned int shd_empty : RB_DEBUG_3_SHD_EMPTY_SIZE;
+ unsigned int shd_full : RB_DEBUG_3_SHD_FULL_SIZE;
+ unsigned int accum_data_fifo_cnt : RB_DEBUG_3_ACCUM_DATA_FIFO_CNT_SIZE;
+ unsigned int accum_input_reg_valid : RB_DEBUG_3_ACCUM_INPUT_REG_VALID_SIZE;
+ unsigned int accum_write_clean_count : RB_DEBUG_3_ACCUM_WRITE_CLEAN_COUNT_SIZE;
+ unsigned int accum_flushing : RB_DEBUG_3_ACCUM_FLUSHING_SIZE;
+ unsigned int accum_valid : RB_DEBUG_3_ACCUM_VALID_SIZE;
+ } rb_debug_3_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_debug_3_t f;
+} rb_debug_3_u;
+
+
+/*
+ * RB_DEBUG_4 struct
+ */
+
+#define RB_DEBUG_4_GMEM_RD_ACCESS_FLAG_SIZE 1
+#define RB_DEBUG_4_GMEM_WR_ACCESS_FLAG_SIZE 1
+#define RB_DEBUG_4_SYSMEM_RD_ACCESS_FLAG_SIZE 1
+#define RB_DEBUG_4_SYSMEM_WR_ACCESS_FLAG_SIZE 1
+#define RB_DEBUG_4_ACCUM_DATA_FIFO_EMPTY_SIZE 1
+#define RB_DEBUG_4_ACCUM_ORDER_FIFO_EMPTY_SIZE 1
+#define RB_DEBUG_4_ACCUM_DATA_FIFO_FULL_SIZE 1
+#define RB_DEBUG_4_ACCUM_ORDER_FIFO_FULL_SIZE 1
+#define RB_DEBUG_4_SYSMEM_WRITE_COUNT_OVERFLOW_SIZE 1
+#define RB_DEBUG_4_CONTEXT_COUNT_DEBUG_SIZE 4
+
+#define RB_DEBUG_4_GMEM_RD_ACCESS_FLAG_SHIFT 0
+#define RB_DEBUG_4_GMEM_WR_ACCESS_FLAG_SHIFT 1
+#define RB_DEBUG_4_SYSMEM_RD_ACCESS_FLAG_SHIFT 2
+#define RB_DEBUG_4_SYSMEM_WR_ACCESS_FLAG_SHIFT 3
+#define RB_DEBUG_4_ACCUM_DATA_FIFO_EMPTY_SHIFT 4
+#define RB_DEBUG_4_ACCUM_ORDER_FIFO_EMPTY_SHIFT 5
+#define RB_DEBUG_4_ACCUM_DATA_FIFO_FULL_SHIFT 6
+#define RB_DEBUG_4_ACCUM_ORDER_FIFO_FULL_SHIFT 7
+#define RB_DEBUG_4_SYSMEM_WRITE_COUNT_OVERFLOW_SHIFT 8
+#define RB_DEBUG_4_CONTEXT_COUNT_DEBUG_SHIFT 9
+
+#define RB_DEBUG_4_GMEM_RD_ACCESS_FLAG_MASK 0x00000001
+#define RB_DEBUG_4_GMEM_WR_ACCESS_FLAG_MASK 0x00000002
+#define RB_DEBUG_4_SYSMEM_RD_ACCESS_FLAG_MASK 0x00000004
+#define RB_DEBUG_4_SYSMEM_WR_ACCESS_FLAG_MASK 0x00000008
+#define RB_DEBUG_4_ACCUM_DATA_FIFO_EMPTY_MASK 0x00000010
+#define RB_DEBUG_4_ACCUM_ORDER_FIFO_EMPTY_MASK 0x00000020
+#define RB_DEBUG_4_ACCUM_DATA_FIFO_FULL_MASK 0x00000040
+#define RB_DEBUG_4_ACCUM_ORDER_FIFO_FULL_MASK 0x00000080
+#define RB_DEBUG_4_SYSMEM_WRITE_COUNT_OVERFLOW_MASK 0x00000100
+#define RB_DEBUG_4_CONTEXT_COUNT_DEBUG_MASK 0x00001e00
+
+#define RB_DEBUG_4_MASK \
+ (RB_DEBUG_4_GMEM_RD_ACCESS_FLAG_MASK | \
+ RB_DEBUG_4_GMEM_WR_ACCESS_FLAG_MASK | \
+ RB_DEBUG_4_SYSMEM_RD_ACCESS_FLAG_MASK | \
+ RB_DEBUG_4_SYSMEM_WR_ACCESS_FLAG_MASK | \
+ RB_DEBUG_4_ACCUM_DATA_FIFO_EMPTY_MASK | \
+ RB_DEBUG_4_ACCUM_ORDER_FIFO_EMPTY_MASK | \
+ RB_DEBUG_4_ACCUM_DATA_FIFO_FULL_MASK | \
+ RB_DEBUG_4_ACCUM_ORDER_FIFO_FULL_MASK | \
+ RB_DEBUG_4_SYSMEM_WRITE_COUNT_OVERFLOW_MASK | \
+ RB_DEBUG_4_CONTEXT_COUNT_DEBUG_MASK)
+
+#define RB_DEBUG_4(gmem_rd_access_flag, gmem_wr_access_flag, sysmem_rd_access_flag, sysmem_wr_access_flag, accum_data_fifo_empty, accum_order_fifo_empty, accum_data_fifo_full, accum_order_fifo_full, sysmem_write_count_overflow, context_count_debug) \
+ ((gmem_rd_access_flag << RB_DEBUG_4_GMEM_RD_ACCESS_FLAG_SHIFT) | \
+ (gmem_wr_access_flag << RB_DEBUG_4_GMEM_WR_ACCESS_FLAG_SHIFT) | \
+ (sysmem_rd_access_flag << RB_DEBUG_4_SYSMEM_RD_ACCESS_FLAG_SHIFT) | \
+ (sysmem_wr_access_flag << RB_DEBUG_4_SYSMEM_WR_ACCESS_FLAG_SHIFT) | \
+ (accum_data_fifo_empty << RB_DEBUG_4_ACCUM_DATA_FIFO_EMPTY_SHIFT) | \
+ (accum_order_fifo_empty << RB_DEBUG_4_ACCUM_ORDER_FIFO_EMPTY_SHIFT) | \
+ (accum_data_fifo_full << RB_DEBUG_4_ACCUM_DATA_FIFO_FULL_SHIFT) | \
+ (accum_order_fifo_full << RB_DEBUG_4_ACCUM_ORDER_FIFO_FULL_SHIFT) | \
+ (sysmem_write_count_overflow << RB_DEBUG_4_SYSMEM_WRITE_COUNT_OVERFLOW_SHIFT) | \
+ (context_count_debug << RB_DEBUG_4_CONTEXT_COUNT_DEBUG_SHIFT))
+
+#define RB_DEBUG_4_GET_GMEM_RD_ACCESS_FLAG(rb_debug_4) \
+ ((rb_debug_4 & RB_DEBUG_4_GMEM_RD_ACCESS_FLAG_MASK) >> RB_DEBUG_4_GMEM_RD_ACCESS_FLAG_SHIFT)
+#define RB_DEBUG_4_GET_GMEM_WR_ACCESS_FLAG(rb_debug_4) \
+ ((rb_debug_4 & RB_DEBUG_4_GMEM_WR_ACCESS_FLAG_MASK) >> RB_DEBUG_4_GMEM_WR_ACCESS_FLAG_SHIFT)
+#define RB_DEBUG_4_GET_SYSMEM_RD_ACCESS_FLAG(rb_debug_4) \
+ ((rb_debug_4 & RB_DEBUG_4_SYSMEM_RD_ACCESS_FLAG_MASK) >> RB_DEBUG_4_SYSMEM_RD_ACCESS_FLAG_SHIFT)
+#define RB_DEBUG_4_GET_SYSMEM_WR_ACCESS_FLAG(rb_debug_4) \
+ ((rb_debug_4 & RB_DEBUG_4_SYSMEM_WR_ACCESS_FLAG_MASK) >> RB_DEBUG_4_SYSMEM_WR_ACCESS_FLAG_SHIFT)
+#define RB_DEBUG_4_GET_ACCUM_DATA_FIFO_EMPTY(rb_debug_4) \
+ ((rb_debug_4 & RB_DEBUG_4_ACCUM_DATA_FIFO_EMPTY_MASK) >> RB_DEBUG_4_ACCUM_DATA_FIFO_EMPTY_SHIFT)
+#define RB_DEBUG_4_GET_ACCUM_ORDER_FIFO_EMPTY(rb_debug_4) \
+ ((rb_debug_4 & RB_DEBUG_4_ACCUM_ORDER_FIFO_EMPTY_MASK) >> RB_DEBUG_4_ACCUM_ORDER_FIFO_EMPTY_SHIFT)
+#define RB_DEBUG_4_GET_ACCUM_DATA_FIFO_FULL(rb_debug_4) \
+ ((rb_debug_4 & RB_DEBUG_4_ACCUM_DATA_FIFO_FULL_MASK) >> RB_DEBUG_4_ACCUM_DATA_FIFO_FULL_SHIFT)
+#define RB_DEBUG_4_GET_ACCUM_ORDER_FIFO_FULL(rb_debug_4) \
+ ((rb_debug_4 & RB_DEBUG_4_ACCUM_ORDER_FIFO_FULL_MASK) >> RB_DEBUG_4_ACCUM_ORDER_FIFO_FULL_SHIFT)
+#define RB_DEBUG_4_GET_SYSMEM_WRITE_COUNT_OVERFLOW(rb_debug_4) \
+ ((rb_debug_4 & RB_DEBUG_4_SYSMEM_WRITE_COUNT_OVERFLOW_MASK) >> RB_DEBUG_4_SYSMEM_WRITE_COUNT_OVERFLOW_SHIFT)
+#define RB_DEBUG_4_GET_CONTEXT_COUNT_DEBUG(rb_debug_4) \
+ ((rb_debug_4 & RB_DEBUG_4_CONTEXT_COUNT_DEBUG_MASK) >> RB_DEBUG_4_CONTEXT_COUNT_DEBUG_SHIFT)
+
+#define RB_DEBUG_4_SET_GMEM_RD_ACCESS_FLAG(rb_debug_4_reg, gmem_rd_access_flag) \
+ rb_debug_4_reg = (rb_debug_4_reg & ~RB_DEBUG_4_GMEM_RD_ACCESS_FLAG_MASK) | (gmem_rd_access_flag << RB_DEBUG_4_GMEM_RD_ACCESS_FLAG_SHIFT)
+#define RB_DEBUG_4_SET_GMEM_WR_ACCESS_FLAG(rb_debug_4_reg, gmem_wr_access_flag) \
+ rb_debug_4_reg = (rb_debug_4_reg & ~RB_DEBUG_4_GMEM_WR_ACCESS_FLAG_MASK) | (gmem_wr_access_flag << RB_DEBUG_4_GMEM_WR_ACCESS_FLAG_SHIFT)
+#define RB_DEBUG_4_SET_SYSMEM_RD_ACCESS_FLAG(rb_debug_4_reg, sysmem_rd_access_flag) \
+ rb_debug_4_reg = (rb_debug_4_reg & ~RB_DEBUG_4_SYSMEM_RD_ACCESS_FLAG_MASK) | (sysmem_rd_access_flag << RB_DEBUG_4_SYSMEM_RD_ACCESS_FLAG_SHIFT)
+#define RB_DEBUG_4_SET_SYSMEM_WR_ACCESS_FLAG(rb_debug_4_reg, sysmem_wr_access_flag) \
+ rb_debug_4_reg = (rb_debug_4_reg & ~RB_DEBUG_4_SYSMEM_WR_ACCESS_FLAG_MASK) | (sysmem_wr_access_flag << RB_DEBUG_4_SYSMEM_WR_ACCESS_FLAG_SHIFT)
+#define RB_DEBUG_4_SET_ACCUM_DATA_FIFO_EMPTY(rb_debug_4_reg, accum_data_fifo_empty) \
+ rb_debug_4_reg = (rb_debug_4_reg & ~RB_DEBUG_4_ACCUM_DATA_FIFO_EMPTY_MASK) | (accum_data_fifo_empty << RB_DEBUG_4_ACCUM_DATA_FIFO_EMPTY_SHIFT)
+#define RB_DEBUG_4_SET_ACCUM_ORDER_FIFO_EMPTY(rb_debug_4_reg, accum_order_fifo_empty) \
+ rb_debug_4_reg = (rb_debug_4_reg & ~RB_DEBUG_4_ACCUM_ORDER_FIFO_EMPTY_MASK) | (accum_order_fifo_empty << RB_DEBUG_4_ACCUM_ORDER_FIFO_EMPTY_SHIFT)
+#define RB_DEBUG_4_SET_ACCUM_DATA_FIFO_FULL(rb_debug_4_reg, accum_data_fifo_full) \
+ rb_debug_4_reg = (rb_debug_4_reg & ~RB_DEBUG_4_ACCUM_DATA_FIFO_FULL_MASK) | (accum_data_fifo_full << RB_DEBUG_4_ACCUM_DATA_FIFO_FULL_SHIFT)
+#define RB_DEBUG_4_SET_ACCUM_ORDER_FIFO_FULL(rb_debug_4_reg, accum_order_fifo_full) \
+ rb_debug_4_reg = (rb_debug_4_reg & ~RB_DEBUG_4_ACCUM_ORDER_FIFO_FULL_MASK) | (accum_order_fifo_full << RB_DEBUG_4_ACCUM_ORDER_FIFO_FULL_SHIFT)
+#define RB_DEBUG_4_SET_SYSMEM_WRITE_COUNT_OVERFLOW(rb_debug_4_reg, sysmem_write_count_overflow) \
+ rb_debug_4_reg = (rb_debug_4_reg & ~RB_DEBUG_4_SYSMEM_WRITE_COUNT_OVERFLOW_MASK) | (sysmem_write_count_overflow << RB_DEBUG_4_SYSMEM_WRITE_COUNT_OVERFLOW_SHIFT)
+#define RB_DEBUG_4_SET_CONTEXT_COUNT_DEBUG(rb_debug_4_reg, context_count_debug) \
+ rb_debug_4_reg = (rb_debug_4_reg & ~RB_DEBUG_4_CONTEXT_COUNT_DEBUG_MASK) | (context_count_debug << RB_DEBUG_4_CONTEXT_COUNT_DEBUG_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_debug_4_t {
+ unsigned int gmem_rd_access_flag : RB_DEBUG_4_GMEM_RD_ACCESS_FLAG_SIZE;
+ unsigned int gmem_wr_access_flag : RB_DEBUG_4_GMEM_WR_ACCESS_FLAG_SIZE;
+ unsigned int sysmem_rd_access_flag : RB_DEBUG_4_SYSMEM_RD_ACCESS_FLAG_SIZE;
+ unsigned int sysmem_wr_access_flag : RB_DEBUG_4_SYSMEM_WR_ACCESS_FLAG_SIZE;
+ unsigned int accum_data_fifo_empty : RB_DEBUG_4_ACCUM_DATA_FIFO_EMPTY_SIZE;
+ unsigned int accum_order_fifo_empty : RB_DEBUG_4_ACCUM_ORDER_FIFO_EMPTY_SIZE;
+ unsigned int accum_data_fifo_full : RB_DEBUG_4_ACCUM_DATA_FIFO_FULL_SIZE;
+ unsigned int accum_order_fifo_full : RB_DEBUG_4_ACCUM_ORDER_FIFO_FULL_SIZE;
+ unsigned int sysmem_write_count_overflow : RB_DEBUG_4_SYSMEM_WRITE_COUNT_OVERFLOW_SIZE;
+ unsigned int context_count_debug : RB_DEBUG_4_CONTEXT_COUNT_DEBUG_SIZE;
+ unsigned int : 19;
+ } rb_debug_4_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_debug_4_t {
+ unsigned int : 19;
+ unsigned int context_count_debug : RB_DEBUG_4_CONTEXT_COUNT_DEBUG_SIZE;
+ unsigned int sysmem_write_count_overflow : RB_DEBUG_4_SYSMEM_WRITE_COUNT_OVERFLOW_SIZE;
+ unsigned int accum_order_fifo_full : RB_DEBUG_4_ACCUM_ORDER_FIFO_FULL_SIZE;
+ unsigned int accum_data_fifo_full : RB_DEBUG_4_ACCUM_DATA_FIFO_FULL_SIZE;
+ unsigned int accum_order_fifo_empty : RB_DEBUG_4_ACCUM_ORDER_FIFO_EMPTY_SIZE;
+ unsigned int accum_data_fifo_empty : RB_DEBUG_4_ACCUM_DATA_FIFO_EMPTY_SIZE;
+ unsigned int sysmem_wr_access_flag : RB_DEBUG_4_SYSMEM_WR_ACCESS_FLAG_SIZE;
+ unsigned int sysmem_rd_access_flag : RB_DEBUG_4_SYSMEM_RD_ACCESS_FLAG_SIZE;
+ unsigned int gmem_wr_access_flag : RB_DEBUG_4_GMEM_WR_ACCESS_FLAG_SIZE;
+ unsigned int gmem_rd_access_flag : RB_DEBUG_4_GMEM_RD_ACCESS_FLAG_SIZE;
+ } rb_debug_4_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_debug_4_t f;
+} rb_debug_4_u;
+
+
+/*
+ * RB_FLAG_CONTROL struct
+ */
+
+#define RB_FLAG_CONTROL_DEBUG_FLAG_CLEAR_SIZE 1
+
+#define RB_FLAG_CONTROL_DEBUG_FLAG_CLEAR_SHIFT 0
+
+#define RB_FLAG_CONTROL_DEBUG_FLAG_CLEAR_MASK 0x00000001
+
+#define RB_FLAG_CONTROL_MASK \
+ (RB_FLAG_CONTROL_DEBUG_FLAG_CLEAR_MASK)
+
+#define RB_FLAG_CONTROL(debug_flag_clear) \
+ ((debug_flag_clear << RB_FLAG_CONTROL_DEBUG_FLAG_CLEAR_SHIFT))
+
+#define RB_FLAG_CONTROL_GET_DEBUG_FLAG_CLEAR(rb_flag_control) \
+ ((rb_flag_control & RB_FLAG_CONTROL_DEBUG_FLAG_CLEAR_MASK) >> RB_FLAG_CONTROL_DEBUG_FLAG_CLEAR_SHIFT)
+
+#define RB_FLAG_CONTROL_SET_DEBUG_FLAG_CLEAR(rb_flag_control_reg, debug_flag_clear) \
+ rb_flag_control_reg = (rb_flag_control_reg & ~RB_FLAG_CONTROL_DEBUG_FLAG_CLEAR_MASK) | (debug_flag_clear << RB_FLAG_CONTROL_DEBUG_FLAG_CLEAR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_flag_control_t {
+ unsigned int debug_flag_clear : RB_FLAG_CONTROL_DEBUG_FLAG_CLEAR_SIZE;
+ unsigned int : 31;
+ } rb_flag_control_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_flag_control_t {
+ unsigned int : 31;
+ unsigned int debug_flag_clear : RB_FLAG_CONTROL_DEBUG_FLAG_CLEAR_SIZE;
+ } rb_flag_control_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_flag_control_t f;
+} rb_flag_control_u;
+
+
+/*
+ * BC_DUMMY_CRAYRB_ENUMS struct
+ */
+
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_FORMAT_SIZE 6
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_SWAP_SIZE 1
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_ARRAY_SIZE 2
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_ARRAY_SIZE 2
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_COLOR_FORMAT_SIZE 6
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_NUMBER_SIZE 3
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_FORMAT_SIZE 6
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_TILING_SIZE 1
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_ARRAY_SIZE 2
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_RB_COPY_DEST_INFO_NUMBER_SIZE 3
+
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_FORMAT_SHIFT 0
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_SWAP_SHIFT 6
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_ARRAY_SHIFT 7
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_ARRAY_SHIFT 9
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_COLOR_FORMAT_SHIFT 11
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_NUMBER_SHIFT 17
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_FORMAT_SHIFT 20
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_TILING_SHIFT 26
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_ARRAY_SHIFT 27
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_RB_COPY_DEST_INFO_NUMBER_SHIFT 29
+
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_FORMAT_MASK 0x0000003f
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_SWAP_MASK 0x00000040
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_ARRAY_MASK 0x00000180
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_ARRAY_MASK 0x00000600
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_COLOR_FORMAT_MASK 0x0001f800
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_NUMBER_MASK 0x000e0000
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_FORMAT_MASK 0x03f00000
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_TILING_MASK 0x04000000
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_ARRAY_MASK 0x18000000
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_RB_COPY_DEST_INFO_NUMBER_MASK 0xe0000000
+
+#define BC_DUMMY_CRAYRB_ENUMS_MASK \
+ (BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_FORMAT_MASK | \
+ BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_SWAP_MASK | \
+ BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_ARRAY_MASK | \
+ BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_ARRAY_MASK | \
+ BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_COLOR_FORMAT_MASK | \
+ BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_NUMBER_MASK | \
+ BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_FORMAT_MASK | \
+ BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_TILING_MASK | \
+ BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_ARRAY_MASK | \
+ BC_DUMMY_CRAYRB_ENUMS_DUMMY_RB_COPY_DEST_INFO_NUMBER_MASK)
+
+#define BC_DUMMY_CRAYRB_ENUMS(dummy_crayrb_depth_format, dummy_crayrb_surface_swap, dummy_crayrb_depth_array, dummy_crayrb_array, dummy_crayrb_color_format, dummy_crayrb_surface_number, dummy_crayrb_surface_format, dummy_crayrb_surface_tiling, dummy_crayrb_surface_array, dummy_rb_copy_dest_info_number) \
+ ((dummy_crayrb_depth_format << BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_FORMAT_SHIFT) | \
+ (dummy_crayrb_surface_swap << BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_SWAP_SHIFT) | \
+ (dummy_crayrb_depth_array << BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_ARRAY_SHIFT) | \
+ (dummy_crayrb_array << BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_ARRAY_SHIFT) | \
+ (dummy_crayrb_color_format << BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_COLOR_FORMAT_SHIFT) | \
+ (dummy_crayrb_surface_number << BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_NUMBER_SHIFT) | \
+ (dummy_crayrb_surface_format << BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_FORMAT_SHIFT) | \
+ (dummy_crayrb_surface_tiling << BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_TILING_SHIFT) | \
+ (dummy_crayrb_surface_array << BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_ARRAY_SHIFT) | \
+ (dummy_rb_copy_dest_info_number << BC_DUMMY_CRAYRB_ENUMS_DUMMY_RB_COPY_DEST_INFO_NUMBER_SHIFT))
+
+#define BC_DUMMY_CRAYRB_ENUMS_GET_DUMMY_CRAYRB_DEPTH_FORMAT(bc_dummy_crayrb_enums) \
+ ((bc_dummy_crayrb_enums & BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_FORMAT_MASK) >> BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_FORMAT_SHIFT)
+#define BC_DUMMY_CRAYRB_ENUMS_GET_DUMMY_CRAYRB_SURFACE_SWAP(bc_dummy_crayrb_enums) \
+ ((bc_dummy_crayrb_enums & BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_SWAP_MASK) >> BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_SWAP_SHIFT)
+#define BC_DUMMY_CRAYRB_ENUMS_GET_DUMMY_CRAYRB_DEPTH_ARRAY(bc_dummy_crayrb_enums) \
+ ((bc_dummy_crayrb_enums & BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_ARRAY_MASK) >> BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_ARRAY_SHIFT)
+#define BC_DUMMY_CRAYRB_ENUMS_GET_DUMMY_CRAYRB_ARRAY(bc_dummy_crayrb_enums) \
+ ((bc_dummy_crayrb_enums & BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_ARRAY_MASK) >> BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_ARRAY_SHIFT)
+#define BC_DUMMY_CRAYRB_ENUMS_GET_DUMMY_CRAYRB_COLOR_FORMAT(bc_dummy_crayrb_enums) \
+ ((bc_dummy_crayrb_enums & BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_COLOR_FORMAT_MASK) >> BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_COLOR_FORMAT_SHIFT)
+#define BC_DUMMY_CRAYRB_ENUMS_GET_DUMMY_CRAYRB_SURFACE_NUMBER(bc_dummy_crayrb_enums) \
+ ((bc_dummy_crayrb_enums & BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_NUMBER_MASK) >> BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_NUMBER_SHIFT)
+#define BC_DUMMY_CRAYRB_ENUMS_GET_DUMMY_CRAYRB_SURFACE_FORMAT(bc_dummy_crayrb_enums) \
+ ((bc_dummy_crayrb_enums & BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_FORMAT_MASK) >> BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_FORMAT_SHIFT)
+#define BC_DUMMY_CRAYRB_ENUMS_GET_DUMMY_CRAYRB_SURFACE_TILING(bc_dummy_crayrb_enums) \
+ ((bc_dummy_crayrb_enums & BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_TILING_MASK) >> BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_TILING_SHIFT)
+#define BC_DUMMY_CRAYRB_ENUMS_GET_DUMMY_CRAYRB_SURFACE_ARRAY(bc_dummy_crayrb_enums) \
+ ((bc_dummy_crayrb_enums & BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_ARRAY_MASK) >> BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_ARRAY_SHIFT)
+#define BC_DUMMY_CRAYRB_ENUMS_GET_DUMMY_RB_COPY_DEST_INFO_NUMBER(bc_dummy_crayrb_enums) \
+ ((bc_dummy_crayrb_enums & BC_DUMMY_CRAYRB_ENUMS_DUMMY_RB_COPY_DEST_INFO_NUMBER_MASK) >> BC_DUMMY_CRAYRB_ENUMS_DUMMY_RB_COPY_DEST_INFO_NUMBER_SHIFT)
+
+#define BC_DUMMY_CRAYRB_ENUMS_SET_DUMMY_CRAYRB_DEPTH_FORMAT(bc_dummy_crayrb_enums_reg, dummy_crayrb_depth_format) \
+ bc_dummy_crayrb_enums_reg = (bc_dummy_crayrb_enums_reg & ~BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_FORMAT_MASK) | (dummy_crayrb_depth_format << BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_FORMAT_SHIFT)
+#define BC_DUMMY_CRAYRB_ENUMS_SET_DUMMY_CRAYRB_SURFACE_SWAP(bc_dummy_crayrb_enums_reg, dummy_crayrb_surface_swap) \
+ bc_dummy_crayrb_enums_reg = (bc_dummy_crayrb_enums_reg & ~BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_SWAP_MASK) | (dummy_crayrb_surface_swap << BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_SWAP_SHIFT)
+#define BC_DUMMY_CRAYRB_ENUMS_SET_DUMMY_CRAYRB_DEPTH_ARRAY(bc_dummy_crayrb_enums_reg, dummy_crayrb_depth_array) \
+ bc_dummy_crayrb_enums_reg = (bc_dummy_crayrb_enums_reg & ~BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_ARRAY_MASK) | (dummy_crayrb_depth_array << BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_ARRAY_SHIFT)
+#define BC_DUMMY_CRAYRB_ENUMS_SET_DUMMY_CRAYRB_ARRAY(bc_dummy_crayrb_enums_reg, dummy_crayrb_array) \
+ bc_dummy_crayrb_enums_reg = (bc_dummy_crayrb_enums_reg & ~BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_ARRAY_MASK) | (dummy_crayrb_array << BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_ARRAY_SHIFT)
+#define BC_DUMMY_CRAYRB_ENUMS_SET_DUMMY_CRAYRB_COLOR_FORMAT(bc_dummy_crayrb_enums_reg, dummy_crayrb_color_format) \
+ bc_dummy_crayrb_enums_reg = (bc_dummy_crayrb_enums_reg & ~BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_COLOR_FORMAT_MASK) | (dummy_crayrb_color_format << BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_COLOR_FORMAT_SHIFT)
+#define BC_DUMMY_CRAYRB_ENUMS_SET_DUMMY_CRAYRB_SURFACE_NUMBER(bc_dummy_crayrb_enums_reg, dummy_crayrb_surface_number) \
+ bc_dummy_crayrb_enums_reg = (bc_dummy_crayrb_enums_reg & ~BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_NUMBER_MASK) | (dummy_crayrb_surface_number << BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_NUMBER_SHIFT)
+#define BC_DUMMY_CRAYRB_ENUMS_SET_DUMMY_CRAYRB_SURFACE_FORMAT(bc_dummy_crayrb_enums_reg, dummy_crayrb_surface_format) \
+ bc_dummy_crayrb_enums_reg = (bc_dummy_crayrb_enums_reg & ~BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_FORMAT_MASK) | (dummy_crayrb_surface_format << BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_FORMAT_SHIFT)
+#define BC_DUMMY_CRAYRB_ENUMS_SET_DUMMY_CRAYRB_SURFACE_TILING(bc_dummy_crayrb_enums_reg, dummy_crayrb_surface_tiling) \
+ bc_dummy_crayrb_enums_reg = (bc_dummy_crayrb_enums_reg & ~BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_TILING_MASK) | (dummy_crayrb_surface_tiling << BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_TILING_SHIFT)
+#define BC_DUMMY_CRAYRB_ENUMS_SET_DUMMY_CRAYRB_SURFACE_ARRAY(bc_dummy_crayrb_enums_reg, dummy_crayrb_surface_array) \
+ bc_dummy_crayrb_enums_reg = (bc_dummy_crayrb_enums_reg & ~BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_ARRAY_MASK) | (dummy_crayrb_surface_array << BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_ARRAY_SHIFT)
+#define BC_DUMMY_CRAYRB_ENUMS_SET_DUMMY_RB_COPY_DEST_INFO_NUMBER(bc_dummy_crayrb_enums_reg, dummy_rb_copy_dest_info_number) \
+ bc_dummy_crayrb_enums_reg = (bc_dummy_crayrb_enums_reg & ~BC_DUMMY_CRAYRB_ENUMS_DUMMY_RB_COPY_DEST_INFO_NUMBER_MASK) | (dummy_rb_copy_dest_info_number << BC_DUMMY_CRAYRB_ENUMS_DUMMY_RB_COPY_DEST_INFO_NUMBER_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _bc_dummy_crayrb_enums_t {
+ unsigned int dummy_crayrb_depth_format : BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_FORMAT_SIZE;
+ unsigned int dummy_crayrb_surface_swap : BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_SWAP_SIZE;
+ unsigned int dummy_crayrb_depth_array : BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_ARRAY_SIZE;
+ unsigned int dummy_crayrb_array : BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_ARRAY_SIZE;
+ unsigned int dummy_crayrb_color_format : BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_COLOR_FORMAT_SIZE;
+ unsigned int dummy_crayrb_surface_number : BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_NUMBER_SIZE;
+ unsigned int dummy_crayrb_surface_format : BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_FORMAT_SIZE;
+ unsigned int dummy_crayrb_surface_tiling : BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_TILING_SIZE;
+ unsigned int dummy_crayrb_surface_array : BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_ARRAY_SIZE;
+ unsigned int dummy_rb_copy_dest_info_number : BC_DUMMY_CRAYRB_ENUMS_DUMMY_RB_COPY_DEST_INFO_NUMBER_SIZE;
+ } bc_dummy_crayrb_enums_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _bc_dummy_crayrb_enums_t {
+ unsigned int dummy_rb_copy_dest_info_number : BC_DUMMY_CRAYRB_ENUMS_DUMMY_RB_COPY_DEST_INFO_NUMBER_SIZE;
+ unsigned int dummy_crayrb_surface_array : BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_ARRAY_SIZE;
+ unsigned int dummy_crayrb_surface_tiling : BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_TILING_SIZE;
+ unsigned int dummy_crayrb_surface_format : BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_FORMAT_SIZE;
+ unsigned int dummy_crayrb_surface_number : BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_NUMBER_SIZE;
+ unsigned int dummy_crayrb_color_format : BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_COLOR_FORMAT_SIZE;
+ unsigned int dummy_crayrb_array : BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_ARRAY_SIZE;
+ unsigned int dummy_crayrb_depth_array : BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_ARRAY_SIZE;
+ unsigned int dummy_crayrb_surface_swap : BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_SWAP_SIZE;
+ unsigned int dummy_crayrb_depth_format : BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_FORMAT_SIZE;
+ } bc_dummy_crayrb_enums_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ bc_dummy_crayrb_enums_t f;
+} bc_dummy_crayrb_enums_u;
+
+
+/*
+ * BC_DUMMY_CRAYRB_MOREENUMS struct
+ */
+
+#define BC_DUMMY_CRAYRB_MOREENUMS_DUMMY_CRAYRB_COLORARRAYX_SIZE 2
+
+#define BC_DUMMY_CRAYRB_MOREENUMS_DUMMY_CRAYRB_COLORARRAYX_SHIFT 0
+
+#define BC_DUMMY_CRAYRB_MOREENUMS_DUMMY_CRAYRB_COLORARRAYX_MASK 0x00000003
+
+#define BC_DUMMY_CRAYRB_MOREENUMS_MASK \
+ (BC_DUMMY_CRAYRB_MOREENUMS_DUMMY_CRAYRB_COLORARRAYX_MASK)
+
+#define BC_DUMMY_CRAYRB_MOREENUMS(dummy_crayrb_colorarrayx) \
+ ((dummy_crayrb_colorarrayx << BC_DUMMY_CRAYRB_MOREENUMS_DUMMY_CRAYRB_COLORARRAYX_SHIFT))
+
+#define BC_DUMMY_CRAYRB_MOREENUMS_GET_DUMMY_CRAYRB_COLORARRAYX(bc_dummy_crayrb_moreenums) \
+ ((bc_dummy_crayrb_moreenums & BC_DUMMY_CRAYRB_MOREENUMS_DUMMY_CRAYRB_COLORARRAYX_MASK) >> BC_DUMMY_CRAYRB_MOREENUMS_DUMMY_CRAYRB_COLORARRAYX_SHIFT)
+
+#define BC_DUMMY_CRAYRB_MOREENUMS_SET_DUMMY_CRAYRB_COLORARRAYX(bc_dummy_crayrb_moreenums_reg, dummy_crayrb_colorarrayx) \
+ bc_dummy_crayrb_moreenums_reg = (bc_dummy_crayrb_moreenums_reg & ~BC_DUMMY_CRAYRB_MOREENUMS_DUMMY_CRAYRB_COLORARRAYX_MASK) | (dummy_crayrb_colorarrayx << BC_DUMMY_CRAYRB_MOREENUMS_DUMMY_CRAYRB_COLORARRAYX_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _bc_dummy_crayrb_moreenums_t {
+ unsigned int dummy_crayrb_colorarrayx : BC_DUMMY_CRAYRB_MOREENUMS_DUMMY_CRAYRB_COLORARRAYX_SIZE;
+ unsigned int : 30;
+ } bc_dummy_crayrb_moreenums_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _bc_dummy_crayrb_moreenums_t {
+ unsigned int : 30;
+ unsigned int dummy_crayrb_colorarrayx : BC_DUMMY_CRAYRB_MOREENUMS_DUMMY_CRAYRB_COLORARRAYX_SIZE;
+ } bc_dummy_crayrb_moreenums_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ bc_dummy_crayrb_moreenums_t f;
+} bc_dummy_crayrb_moreenums_u;
+
+
+#endif
+
+
diff --git a/drivers/mxc/amd-gpu/include/reg/yamato/14/yamato_typedef.h b/drivers/mxc/amd-gpu/include/reg/yamato/14/yamato_typedef.h
new file mode 100644
index 000000000000..1feebebda054
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/reg/yamato/14/yamato_typedef.h
@@ -0,0 +1,540 @@
+/* Copyright (c) 2002,2007-2009, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#if !defined (_yamato_TYPEDEF_HEADER)
+#define _yamato_TYPEDEF_HEADER
+
+#include "yamato_registers.h"
+
+typedef union PA_CL_VPORT_XSCALE regPA_CL_VPORT_XSCALE;
+typedef union PA_CL_VPORT_XOFFSET regPA_CL_VPORT_XOFFSET;
+typedef union PA_CL_VPORT_YSCALE regPA_CL_VPORT_YSCALE;
+typedef union PA_CL_VPORT_YOFFSET regPA_CL_VPORT_YOFFSET;
+typedef union PA_CL_VPORT_ZSCALE regPA_CL_VPORT_ZSCALE;
+typedef union PA_CL_VPORT_ZOFFSET regPA_CL_VPORT_ZOFFSET;
+typedef union PA_CL_VTE_CNTL regPA_CL_VTE_CNTL;
+typedef union PA_CL_CLIP_CNTL regPA_CL_CLIP_CNTL;
+typedef union PA_CL_GB_VERT_CLIP_ADJ regPA_CL_GB_VERT_CLIP_ADJ;
+typedef union PA_CL_GB_VERT_DISC_ADJ regPA_CL_GB_VERT_DISC_ADJ;
+typedef union PA_CL_GB_HORZ_CLIP_ADJ regPA_CL_GB_HORZ_CLIP_ADJ;
+typedef union PA_CL_GB_HORZ_DISC_ADJ regPA_CL_GB_HORZ_DISC_ADJ;
+typedef union PA_CL_ENHANCE regPA_CL_ENHANCE;
+typedef union PA_SC_ENHANCE regPA_SC_ENHANCE;
+typedef union PA_SU_VTX_CNTL regPA_SU_VTX_CNTL;
+typedef union PA_SU_POINT_SIZE regPA_SU_POINT_SIZE;
+typedef union PA_SU_POINT_MINMAX regPA_SU_POINT_MINMAX;
+typedef union PA_SU_LINE_CNTL regPA_SU_LINE_CNTL;
+typedef union PA_SU_SC_MODE_CNTL regPA_SU_SC_MODE_CNTL;
+typedef union PA_SU_POLY_OFFSET_FRONT_SCALE regPA_SU_POLY_OFFSET_FRONT_SCALE;
+typedef union PA_SU_POLY_OFFSET_FRONT_OFFSET regPA_SU_POLY_OFFSET_FRONT_OFFSET;
+typedef union PA_SU_POLY_OFFSET_BACK_SCALE regPA_SU_POLY_OFFSET_BACK_SCALE;
+typedef union PA_SU_POLY_OFFSET_BACK_OFFSET regPA_SU_POLY_OFFSET_BACK_OFFSET;
+typedef union PA_SU_PERFCOUNTER0_SELECT regPA_SU_PERFCOUNTER0_SELECT;
+typedef union PA_SU_PERFCOUNTER1_SELECT regPA_SU_PERFCOUNTER1_SELECT;
+typedef union PA_SU_PERFCOUNTER2_SELECT regPA_SU_PERFCOUNTER2_SELECT;
+typedef union PA_SU_PERFCOUNTER3_SELECT regPA_SU_PERFCOUNTER3_SELECT;
+typedef union PA_SU_PERFCOUNTER0_LOW regPA_SU_PERFCOUNTER0_LOW;
+typedef union PA_SU_PERFCOUNTER0_HI regPA_SU_PERFCOUNTER0_HI;
+typedef union PA_SU_PERFCOUNTER1_LOW regPA_SU_PERFCOUNTER1_LOW;
+typedef union PA_SU_PERFCOUNTER1_HI regPA_SU_PERFCOUNTER1_HI;
+typedef union PA_SU_PERFCOUNTER2_LOW regPA_SU_PERFCOUNTER2_LOW;
+typedef union PA_SU_PERFCOUNTER2_HI regPA_SU_PERFCOUNTER2_HI;
+typedef union PA_SU_PERFCOUNTER3_LOW regPA_SU_PERFCOUNTER3_LOW;
+typedef union PA_SU_PERFCOUNTER3_HI regPA_SU_PERFCOUNTER3_HI;
+typedef union PA_SC_WINDOW_OFFSET regPA_SC_WINDOW_OFFSET;
+typedef union PA_SC_AA_CONFIG regPA_SC_AA_CONFIG;
+typedef union PA_SC_AA_MASK regPA_SC_AA_MASK;
+typedef union PA_SC_LINE_STIPPLE regPA_SC_LINE_STIPPLE;
+typedef union PA_SC_LINE_CNTL regPA_SC_LINE_CNTL;
+typedef union PA_SC_WINDOW_SCISSOR_TL regPA_SC_WINDOW_SCISSOR_TL;
+typedef union PA_SC_WINDOW_SCISSOR_BR regPA_SC_WINDOW_SCISSOR_BR;
+typedef union PA_SC_SCREEN_SCISSOR_TL regPA_SC_SCREEN_SCISSOR_TL;
+typedef union PA_SC_SCREEN_SCISSOR_BR regPA_SC_SCREEN_SCISSOR_BR;
+typedef union PA_SC_VIZ_QUERY regPA_SC_VIZ_QUERY;
+typedef union PA_SC_VIZ_QUERY_STATUS regPA_SC_VIZ_QUERY_STATUS;
+typedef union PA_SC_LINE_STIPPLE_STATE regPA_SC_LINE_STIPPLE_STATE;
+typedef union PA_SC_PERFCOUNTER0_SELECT regPA_SC_PERFCOUNTER0_SELECT;
+typedef union PA_SC_PERFCOUNTER0_LOW regPA_SC_PERFCOUNTER0_LOW;
+typedef union PA_SC_PERFCOUNTER0_HI regPA_SC_PERFCOUNTER0_HI;
+typedef union PA_CL_CNTL_STATUS regPA_CL_CNTL_STATUS;
+typedef union PA_SU_CNTL_STATUS regPA_SU_CNTL_STATUS;
+typedef union PA_SC_CNTL_STATUS regPA_SC_CNTL_STATUS;
+typedef union PA_SU_DEBUG_CNTL regPA_SU_DEBUG_CNTL;
+typedef union PA_SU_DEBUG_DATA regPA_SU_DEBUG_DATA;
+typedef union PA_SC_DEBUG_CNTL regPA_SC_DEBUG_CNTL;
+typedef union PA_SC_DEBUG_DATA regPA_SC_DEBUG_DATA;
+typedef union GFX_COPY_STATE regGFX_COPY_STATE;
+typedef union VGT_DRAW_INITIATOR regVGT_DRAW_INITIATOR;
+typedef union VGT_EVENT_INITIATOR regVGT_EVENT_INITIATOR;
+typedef union VGT_DMA_BASE regVGT_DMA_BASE;
+typedef union VGT_DMA_SIZE regVGT_DMA_SIZE;
+typedef union VGT_BIN_BASE regVGT_BIN_BASE;
+typedef union VGT_BIN_SIZE regVGT_BIN_SIZE;
+typedef union VGT_CURRENT_BIN_ID_MIN regVGT_CURRENT_BIN_ID_MIN;
+typedef union VGT_CURRENT_BIN_ID_MAX regVGT_CURRENT_BIN_ID_MAX;
+typedef union VGT_IMMED_DATA regVGT_IMMED_DATA;
+typedef union VGT_MAX_VTX_INDX regVGT_MAX_VTX_INDX;
+typedef union VGT_MIN_VTX_INDX regVGT_MIN_VTX_INDX;
+typedef union VGT_INDX_OFFSET regVGT_INDX_OFFSET;
+typedef union VGT_VERTEX_REUSE_BLOCK_CNTL regVGT_VERTEX_REUSE_BLOCK_CNTL;
+typedef union VGT_OUT_DEALLOC_CNTL regVGT_OUT_DEALLOC_CNTL;
+typedef union VGT_MULTI_PRIM_IB_RESET_INDX regVGT_MULTI_PRIM_IB_RESET_INDX;
+typedef union VGT_ENHANCE regVGT_ENHANCE;
+typedef union VGT_VTX_VECT_EJECT_REG regVGT_VTX_VECT_EJECT_REG;
+typedef union VGT_LAST_COPY_STATE regVGT_LAST_COPY_STATE;
+typedef union VGT_DEBUG_CNTL regVGT_DEBUG_CNTL;
+typedef union VGT_DEBUG_DATA regVGT_DEBUG_DATA;
+typedef union VGT_CNTL_STATUS regVGT_CNTL_STATUS;
+typedef union VGT_CRC_SQ_DATA regVGT_CRC_SQ_DATA;
+typedef union VGT_CRC_SQ_CTRL regVGT_CRC_SQ_CTRL;
+typedef union VGT_PERFCOUNTER0_SELECT regVGT_PERFCOUNTER0_SELECT;
+typedef union VGT_PERFCOUNTER1_SELECT regVGT_PERFCOUNTER1_SELECT;
+typedef union VGT_PERFCOUNTER2_SELECT regVGT_PERFCOUNTER2_SELECT;
+typedef union VGT_PERFCOUNTER3_SELECT regVGT_PERFCOUNTER3_SELECT;
+typedef union VGT_PERFCOUNTER0_LOW regVGT_PERFCOUNTER0_LOW;
+typedef union VGT_PERFCOUNTER1_LOW regVGT_PERFCOUNTER1_LOW;
+typedef union VGT_PERFCOUNTER2_LOW regVGT_PERFCOUNTER2_LOW;
+typedef union VGT_PERFCOUNTER3_LOW regVGT_PERFCOUNTER3_LOW;
+typedef union VGT_PERFCOUNTER0_HI regVGT_PERFCOUNTER0_HI;
+typedef union VGT_PERFCOUNTER1_HI regVGT_PERFCOUNTER1_HI;
+typedef union VGT_PERFCOUNTER2_HI regVGT_PERFCOUNTER2_HI;
+typedef union VGT_PERFCOUNTER3_HI regVGT_PERFCOUNTER3_HI;
+typedef union TC_CNTL_STATUS regTC_CNTL_STATUS;
+typedef union TCR_CHICKEN regTCR_CHICKEN;
+typedef union TCF_CHICKEN regTCF_CHICKEN;
+typedef union TCM_CHICKEN regTCM_CHICKEN;
+typedef union TCR_PERFCOUNTER0_SELECT regTCR_PERFCOUNTER0_SELECT;
+typedef union TCR_PERFCOUNTER1_SELECT regTCR_PERFCOUNTER1_SELECT;
+typedef union TCR_PERFCOUNTER0_HI regTCR_PERFCOUNTER0_HI;
+typedef union TCR_PERFCOUNTER1_HI regTCR_PERFCOUNTER1_HI;
+typedef union TCR_PERFCOUNTER0_LOW regTCR_PERFCOUNTER0_LOW;
+typedef union TCR_PERFCOUNTER1_LOW regTCR_PERFCOUNTER1_LOW;
+typedef union TP_TC_CLKGATE_CNTL regTP_TC_CLKGATE_CNTL;
+typedef union TPC_CNTL_STATUS regTPC_CNTL_STATUS;
+typedef union TPC_DEBUG0 regTPC_DEBUG0;
+typedef union TPC_DEBUG1 regTPC_DEBUG1;
+typedef union TPC_CHICKEN regTPC_CHICKEN;
+typedef union TP0_CNTL_STATUS regTP0_CNTL_STATUS;
+typedef union TP0_DEBUG regTP0_DEBUG;
+typedef union TP0_CHICKEN regTP0_CHICKEN;
+typedef union TP0_PERFCOUNTER0_SELECT regTP0_PERFCOUNTER0_SELECT;
+typedef union TP0_PERFCOUNTER0_HI regTP0_PERFCOUNTER0_HI;
+typedef union TP0_PERFCOUNTER0_LOW regTP0_PERFCOUNTER0_LOW;
+typedef union TP0_PERFCOUNTER1_SELECT regTP0_PERFCOUNTER1_SELECT;
+typedef union TP0_PERFCOUNTER1_HI regTP0_PERFCOUNTER1_HI;
+typedef union TP0_PERFCOUNTER1_LOW regTP0_PERFCOUNTER1_LOW;
+typedef union TCM_PERFCOUNTER0_SELECT regTCM_PERFCOUNTER0_SELECT;
+typedef union TCM_PERFCOUNTER1_SELECT regTCM_PERFCOUNTER1_SELECT;
+typedef union TCM_PERFCOUNTER0_HI regTCM_PERFCOUNTER0_HI;
+typedef union TCM_PERFCOUNTER1_HI regTCM_PERFCOUNTER1_HI;
+typedef union TCM_PERFCOUNTER0_LOW regTCM_PERFCOUNTER0_LOW;
+typedef union TCM_PERFCOUNTER1_LOW regTCM_PERFCOUNTER1_LOW;
+typedef union TCF_PERFCOUNTER0_SELECT regTCF_PERFCOUNTER0_SELECT;
+typedef union TCF_PERFCOUNTER1_SELECT regTCF_PERFCOUNTER1_SELECT;
+typedef union TCF_PERFCOUNTER2_SELECT regTCF_PERFCOUNTER2_SELECT;
+typedef union TCF_PERFCOUNTER3_SELECT regTCF_PERFCOUNTER3_SELECT;
+typedef union TCF_PERFCOUNTER4_SELECT regTCF_PERFCOUNTER4_SELECT;
+typedef union TCF_PERFCOUNTER5_SELECT regTCF_PERFCOUNTER5_SELECT;
+typedef union TCF_PERFCOUNTER6_SELECT regTCF_PERFCOUNTER6_SELECT;
+typedef union TCF_PERFCOUNTER7_SELECT regTCF_PERFCOUNTER7_SELECT;
+typedef union TCF_PERFCOUNTER8_SELECT regTCF_PERFCOUNTER8_SELECT;
+typedef union TCF_PERFCOUNTER9_SELECT regTCF_PERFCOUNTER9_SELECT;
+typedef union TCF_PERFCOUNTER10_SELECT regTCF_PERFCOUNTER10_SELECT;
+typedef union TCF_PERFCOUNTER11_SELECT regTCF_PERFCOUNTER11_SELECT;
+typedef union TCF_PERFCOUNTER0_HI regTCF_PERFCOUNTER0_HI;
+typedef union TCF_PERFCOUNTER1_HI regTCF_PERFCOUNTER1_HI;
+typedef union TCF_PERFCOUNTER2_HI regTCF_PERFCOUNTER2_HI;
+typedef union TCF_PERFCOUNTER3_HI regTCF_PERFCOUNTER3_HI;
+typedef union TCF_PERFCOUNTER4_HI regTCF_PERFCOUNTER4_HI;
+typedef union TCF_PERFCOUNTER5_HI regTCF_PERFCOUNTER5_HI;
+typedef union TCF_PERFCOUNTER6_HI regTCF_PERFCOUNTER6_HI;
+typedef union TCF_PERFCOUNTER7_HI regTCF_PERFCOUNTER7_HI;
+typedef union TCF_PERFCOUNTER8_HI regTCF_PERFCOUNTER8_HI;
+typedef union TCF_PERFCOUNTER9_HI regTCF_PERFCOUNTER9_HI;
+typedef union TCF_PERFCOUNTER10_HI regTCF_PERFCOUNTER10_HI;
+typedef union TCF_PERFCOUNTER11_HI regTCF_PERFCOUNTER11_HI;
+typedef union TCF_PERFCOUNTER0_LOW regTCF_PERFCOUNTER0_LOW;
+typedef union TCF_PERFCOUNTER1_LOW regTCF_PERFCOUNTER1_LOW;
+typedef union TCF_PERFCOUNTER2_LOW regTCF_PERFCOUNTER2_LOW;
+typedef union TCF_PERFCOUNTER3_LOW regTCF_PERFCOUNTER3_LOW;
+typedef union TCF_PERFCOUNTER4_LOW regTCF_PERFCOUNTER4_LOW;
+typedef union TCF_PERFCOUNTER5_LOW regTCF_PERFCOUNTER5_LOW;
+typedef union TCF_PERFCOUNTER6_LOW regTCF_PERFCOUNTER6_LOW;
+typedef union TCF_PERFCOUNTER7_LOW regTCF_PERFCOUNTER7_LOW;
+typedef union TCF_PERFCOUNTER8_LOW regTCF_PERFCOUNTER8_LOW;
+typedef union TCF_PERFCOUNTER9_LOW regTCF_PERFCOUNTER9_LOW;
+typedef union TCF_PERFCOUNTER10_LOW regTCF_PERFCOUNTER10_LOW;
+typedef union TCF_PERFCOUNTER11_LOW regTCF_PERFCOUNTER11_LOW;
+typedef union TCF_DEBUG regTCF_DEBUG;
+typedef union TCA_FIFO_DEBUG regTCA_FIFO_DEBUG;
+typedef union TCA_PROBE_DEBUG regTCA_PROBE_DEBUG;
+typedef union TCA_TPC_DEBUG regTCA_TPC_DEBUG;
+typedef union TCB_CORE_DEBUG regTCB_CORE_DEBUG;
+typedef union TCB_TAG0_DEBUG regTCB_TAG0_DEBUG;
+typedef union TCB_TAG1_DEBUG regTCB_TAG1_DEBUG;
+typedef union TCB_TAG2_DEBUG regTCB_TAG2_DEBUG;
+typedef union TCB_TAG3_DEBUG regTCB_TAG3_DEBUG;
+typedef union TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG regTCB_FETCH_GEN_SECTOR_WALKER0_DEBUG;
+typedef union TCB_FETCH_GEN_WALKER_DEBUG regTCB_FETCH_GEN_WALKER_DEBUG;
+typedef union TCB_FETCH_GEN_PIPE0_DEBUG regTCB_FETCH_GEN_PIPE0_DEBUG;
+typedef union TCD_INPUT0_DEBUG regTCD_INPUT0_DEBUG;
+typedef union TCD_DEGAMMA_DEBUG regTCD_DEGAMMA_DEBUG;
+typedef union TCD_DXTMUX_SCTARB_DEBUG regTCD_DXTMUX_SCTARB_DEBUG;
+typedef union TCD_DXTC_ARB_DEBUG regTCD_DXTC_ARB_DEBUG;
+typedef union TCD_STALLS_DEBUG regTCD_STALLS_DEBUG;
+typedef union TCO_STALLS_DEBUG regTCO_STALLS_DEBUG;
+typedef union TCO_QUAD0_DEBUG0 regTCO_QUAD0_DEBUG0;
+typedef union TCO_QUAD0_DEBUG1 regTCO_QUAD0_DEBUG1;
+typedef union SQ_GPR_MANAGEMENT regSQ_GPR_MANAGEMENT;
+typedef union SQ_FLOW_CONTROL regSQ_FLOW_CONTROL;
+typedef union SQ_INST_STORE_MANAGMENT regSQ_INST_STORE_MANAGMENT;
+typedef union SQ_RESOURCE_MANAGMENT regSQ_RESOURCE_MANAGMENT;
+typedef union SQ_EO_RT regSQ_EO_RT;
+typedef union SQ_DEBUG_MISC regSQ_DEBUG_MISC;
+typedef union SQ_ACTIVITY_METER_CNTL regSQ_ACTIVITY_METER_CNTL;
+typedef union SQ_ACTIVITY_METER_STATUS regSQ_ACTIVITY_METER_STATUS;
+typedef union SQ_INPUT_ARB_PRIORITY regSQ_INPUT_ARB_PRIORITY;
+typedef union SQ_THREAD_ARB_PRIORITY regSQ_THREAD_ARB_PRIORITY;
+typedef union SQ_DEBUG_INPUT_FSM regSQ_DEBUG_INPUT_FSM;
+typedef union SQ_DEBUG_CONST_MGR_FSM regSQ_DEBUG_CONST_MGR_FSM;
+typedef union SQ_DEBUG_TP_FSM regSQ_DEBUG_TP_FSM;
+typedef union SQ_DEBUG_FSM_ALU_0 regSQ_DEBUG_FSM_ALU_0;
+typedef union SQ_DEBUG_FSM_ALU_1 regSQ_DEBUG_FSM_ALU_1;
+typedef union SQ_DEBUG_EXP_ALLOC regSQ_DEBUG_EXP_ALLOC;
+typedef union SQ_DEBUG_PTR_BUFF regSQ_DEBUG_PTR_BUFF;
+typedef union SQ_DEBUG_GPR_VTX regSQ_DEBUG_GPR_VTX;
+typedef union SQ_DEBUG_GPR_PIX regSQ_DEBUG_GPR_PIX;
+typedef union SQ_DEBUG_TB_STATUS_SEL regSQ_DEBUG_TB_STATUS_SEL;
+typedef union SQ_DEBUG_VTX_TB_0 regSQ_DEBUG_VTX_TB_0;
+typedef union SQ_DEBUG_VTX_TB_1 regSQ_DEBUG_VTX_TB_1;
+typedef union SQ_DEBUG_VTX_TB_STATUS_REG regSQ_DEBUG_VTX_TB_STATUS_REG;
+typedef union SQ_DEBUG_VTX_TB_STATE_MEM regSQ_DEBUG_VTX_TB_STATE_MEM;
+typedef union SQ_DEBUG_PIX_TB_0 regSQ_DEBUG_PIX_TB_0;
+typedef union SQ_DEBUG_PIX_TB_STATUS_REG_0 regSQ_DEBUG_PIX_TB_STATUS_REG_0;
+typedef union SQ_DEBUG_PIX_TB_STATUS_REG_1 regSQ_DEBUG_PIX_TB_STATUS_REG_1;
+typedef union SQ_DEBUG_PIX_TB_STATUS_REG_2 regSQ_DEBUG_PIX_TB_STATUS_REG_2;
+typedef union SQ_DEBUG_PIX_TB_STATUS_REG_3 regSQ_DEBUG_PIX_TB_STATUS_REG_3;
+typedef union SQ_DEBUG_PIX_TB_STATE_MEM regSQ_DEBUG_PIX_TB_STATE_MEM;
+typedef union SQ_PERFCOUNTER0_SELECT regSQ_PERFCOUNTER0_SELECT;
+typedef union SQ_PERFCOUNTER1_SELECT regSQ_PERFCOUNTER1_SELECT;
+typedef union SQ_PERFCOUNTER2_SELECT regSQ_PERFCOUNTER2_SELECT;
+typedef union SQ_PERFCOUNTER3_SELECT regSQ_PERFCOUNTER3_SELECT;
+typedef union SQ_PERFCOUNTER0_LOW regSQ_PERFCOUNTER0_LOW;
+typedef union SQ_PERFCOUNTER0_HI regSQ_PERFCOUNTER0_HI;
+typedef union SQ_PERFCOUNTER1_LOW regSQ_PERFCOUNTER1_LOW;
+typedef union SQ_PERFCOUNTER1_HI regSQ_PERFCOUNTER1_HI;
+typedef union SQ_PERFCOUNTER2_LOW regSQ_PERFCOUNTER2_LOW;
+typedef union SQ_PERFCOUNTER2_HI regSQ_PERFCOUNTER2_HI;
+typedef union SQ_PERFCOUNTER3_LOW regSQ_PERFCOUNTER3_LOW;
+typedef union SQ_PERFCOUNTER3_HI regSQ_PERFCOUNTER3_HI;
+typedef union SX_PERFCOUNTER0_SELECT regSX_PERFCOUNTER0_SELECT;
+typedef union SX_PERFCOUNTER0_LOW regSX_PERFCOUNTER0_LOW;
+typedef union SX_PERFCOUNTER0_HI regSX_PERFCOUNTER0_HI;
+typedef union SQ_INSTRUCTION_ALU_0 regSQ_INSTRUCTION_ALU_0;
+typedef union SQ_INSTRUCTION_ALU_1 regSQ_INSTRUCTION_ALU_1;
+typedef union SQ_INSTRUCTION_ALU_2 regSQ_INSTRUCTION_ALU_2;
+typedef union SQ_INSTRUCTION_CF_EXEC_0 regSQ_INSTRUCTION_CF_EXEC_0;
+typedef union SQ_INSTRUCTION_CF_EXEC_1 regSQ_INSTRUCTION_CF_EXEC_1;
+typedef union SQ_INSTRUCTION_CF_EXEC_2 regSQ_INSTRUCTION_CF_EXEC_2;
+typedef union SQ_INSTRUCTION_CF_LOOP_0 regSQ_INSTRUCTION_CF_LOOP_0;
+typedef union SQ_INSTRUCTION_CF_LOOP_1 regSQ_INSTRUCTION_CF_LOOP_1;
+typedef union SQ_INSTRUCTION_CF_LOOP_2 regSQ_INSTRUCTION_CF_LOOP_2;
+typedef union SQ_INSTRUCTION_CF_JMP_CALL_0 regSQ_INSTRUCTION_CF_JMP_CALL_0;
+typedef union SQ_INSTRUCTION_CF_JMP_CALL_1 regSQ_INSTRUCTION_CF_JMP_CALL_1;
+typedef union SQ_INSTRUCTION_CF_JMP_CALL_2 regSQ_INSTRUCTION_CF_JMP_CALL_2;
+typedef union SQ_INSTRUCTION_CF_ALLOC_0 regSQ_INSTRUCTION_CF_ALLOC_0;
+typedef union SQ_INSTRUCTION_CF_ALLOC_1 regSQ_INSTRUCTION_CF_ALLOC_1;
+typedef union SQ_INSTRUCTION_CF_ALLOC_2 regSQ_INSTRUCTION_CF_ALLOC_2;
+typedef union SQ_INSTRUCTION_TFETCH_0 regSQ_INSTRUCTION_TFETCH_0;
+typedef union SQ_INSTRUCTION_TFETCH_1 regSQ_INSTRUCTION_TFETCH_1;
+typedef union SQ_INSTRUCTION_TFETCH_2 regSQ_INSTRUCTION_TFETCH_2;
+typedef union SQ_INSTRUCTION_VFETCH_0 regSQ_INSTRUCTION_VFETCH_0;
+typedef union SQ_INSTRUCTION_VFETCH_1 regSQ_INSTRUCTION_VFETCH_1;
+typedef union SQ_INSTRUCTION_VFETCH_2 regSQ_INSTRUCTION_VFETCH_2;
+typedef union SQ_CONSTANT_0 regSQ_CONSTANT_0;
+typedef union SQ_CONSTANT_1 regSQ_CONSTANT_1;
+typedef union SQ_CONSTANT_2 regSQ_CONSTANT_2;
+typedef union SQ_CONSTANT_3 regSQ_CONSTANT_3;
+typedef union SQ_FETCH_0 regSQ_FETCH_0;
+typedef union SQ_FETCH_1 regSQ_FETCH_1;
+typedef union SQ_FETCH_2 regSQ_FETCH_2;
+typedef union SQ_FETCH_3 regSQ_FETCH_3;
+typedef union SQ_FETCH_4 regSQ_FETCH_4;
+typedef union SQ_FETCH_5 regSQ_FETCH_5;
+typedef union SQ_CONSTANT_VFETCH_0 regSQ_CONSTANT_VFETCH_0;
+typedef union SQ_CONSTANT_VFETCH_1 regSQ_CONSTANT_VFETCH_1;
+typedef union SQ_CONSTANT_T2 regSQ_CONSTANT_T2;
+typedef union SQ_CONSTANT_T3 regSQ_CONSTANT_T3;
+typedef union SQ_CF_BOOLEANS regSQ_CF_BOOLEANS;
+typedef union SQ_CF_LOOP regSQ_CF_LOOP;
+typedef union SQ_CONSTANT_RT_0 regSQ_CONSTANT_RT_0;
+typedef union SQ_CONSTANT_RT_1 regSQ_CONSTANT_RT_1;
+typedef union SQ_CONSTANT_RT_2 regSQ_CONSTANT_RT_2;
+typedef union SQ_CONSTANT_RT_3 regSQ_CONSTANT_RT_3;
+typedef union SQ_FETCH_RT_0 regSQ_FETCH_RT_0;
+typedef union SQ_FETCH_RT_1 regSQ_FETCH_RT_1;
+typedef union SQ_FETCH_RT_2 regSQ_FETCH_RT_2;
+typedef union SQ_FETCH_RT_3 regSQ_FETCH_RT_3;
+typedef union SQ_FETCH_RT_4 regSQ_FETCH_RT_4;
+typedef union SQ_FETCH_RT_5 regSQ_FETCH_RT_5;
+typedef union SQ_CF_RT_BOOLEANS regSQ_CF_RT_BOOLEANS;
+typedef union SQ_CF_RT_LOOP regSQ_CF_RT_LOOP;
+typedef union SQ_VS_PROGRAM regSQ_VS_PROGRAM;
+typedef union SQ_PS_PROGRAM regSQ_PS_PROGRAM;
+typedef union SQ_CF_PROGRAM_SIZE regSQ_CF_PROGRAM_SIZE;
+typedef union SQ_INTERPOLATOR_CNTL regSQ_INTERPOLATOR_CNTL;
+typedef union SQ_PROGRAM_CNTL regSQ_PROGRAM_CNTL;
+typedef union SQ_WRAPPING_0 regSQ_WRAPPING_0;
+typedef union SQ_WRAPPING_1 regSQ_WRAPPING_1;
+typedef union SQ_VS_CONST regSQ_VS_CONST;
+typedef union SQ_PS_CONST regSQ_PS_CONST;
+typedef union SQ_CONTEXT_MISC regSQ_CONTEXT_MISC;
+typedef union SQ_CF_RD_BASE regSQ_CF_RD_BASE;
+typedef union SQ_DEBUG_MISC_0 regSQ_DEBUG_MISC_0;
+typedef union SQ_DEBUG_MISC_1 regSQ_DEBUG_MISC_1;
+typedef union MH_ARBITER_CONFIG regMH_ARBITER_CONFIG;
+typedef union MH_CLNT_AXI_ID_REUSE regMH_CLNT_AXI_ID_REUSE;
+typedef union MH_INTERRUPT_MASK regMH_INTERRUPT_MASK;
+typedef union MH_INTERRUPT_STATUS regMH_INTERRUPT_STATUS;
+typedef union MH_INTERRUPT_CLEAR regMH_INTERRUPT_CLEAR;
+typedef union MH_AXI_ERROR regMH_AXI_ERROR;
+typedef union MH_PERFCOUNTER0_SELECT regMH_PERFCOUNTER0_SELECT;
+typedef union MH_PERFCOUNTER1_SELECT regMH_PERFCOUNTER1_SELECT;
+typedef union MH_PERFCOUNTER0_CONFIG regMH_PERFCOUNTER0_CONFIG;
+typedef union MH_PERFCOUNTER1_CONFIG regMH_PERFCOUNTER1_CONFIG;
+typedef union MH_PERFCOUNTER0_LOW regMH_PERFCOUNTER0_LOW;
+typedef union MH_PERFCOUNTER1_LOW regMH_PERFCOUNTER1_LOW;
+typedef union MH_PERFCOUNTER0_HI regMH_PERFCOUNTER0_HI;
+typedef union MH_PERFCOUNTER1_HI regMH_PERFCOUNTER1_HI;
+typedef union MH_DEBUG_CTRL regMH_DEBUG_CTRL;
+typedef union MH_DEBUG_DATA regMH_DEBUG_DATA;
+typedef union MH_MMU_CONFIG regMH_MMU_CONFIG;
+typedef union MH_MMU_VA_RANGE regMH_MMU_VA_RANGE;
+typedef union MH_MMU_PT_BASE regMH_MMU_PT_BASE;
+typedef union MH_MMU_PAGE_FAULT regMH_MMU_PAGE_FAULT;
+typedef union MH_MMU_TRAN_ERROR regMH_MMU_TRAN_ERROR;
+typedef union MH_MMU_INVALIDATE regMH_MMU_INVALIDATE;
+typedef union MH_MMU_MPU_BASE regMH_MMU_MPU_BASE;
+typedef union MH_MMU_MPU_END regMH_MMU_MPU_END;
+typedef union WAIT_UNTIL regWAIT_UNTIL;
+typedef union RBBM_ISYNC_CNTL regRBBM_ISYNC_CNTL;
+typedef union RBBM_STATUS regRBBM_STATUS;
+typedef union RBBM_DSPLY regRBBM_DSPLY;
+typedef union RBBM_RENDER_LATEST regRBBM_RENDER_LATEST;
+typedef union RBBM_RTL_RELEASE regRBBM_RTL_RELEASE;
+typedef union RBBM_PATCH_RELEASE regRBBM_PATCH_RELEASE;
+typedef union RBBM_AUXILIARY_CONFIG regRBBM_AUXILIARY_CONFIG;
+typedef union RBBM_PERIPHID0 regRBBM_PERIPHID0;
+typedef union RBBM_PERIPHID1 regRBBM_PERIPHID1;
+typedef union RBBM_PERIPHID2 regRBBM_PERIPHID2;
+typedef union RBBM_PERIPHID3 regRBBM_PERIPHID3;
+typedef union RBBM_CNTL regRBBM_CNTL;
+typedef union RBBM_SKEW_CNTL regRBBM_SKEW_CNTL;
+typedef union RBBM_SOFT_RESET regRBBM_SOFT_RESET;
+typedef union RBBM_PM_OVERRIDE1 regRBBM_PM_OVERRIDE1;
+typedef union RBBM_PM_OVERRIDE2 regRBBM_PM_OVERRIDE2;
+typedef union GC_SYS_IDLE regGC_SYS_IDLE;
+typedef union NQWAIT_UNTIL regNQWAIT_UNTIL;
+typedef union RBBM_DEBUG regRBBM_DEBUG;
+typedef union RBBM_READ_ERROR regRBBM_READ_ERROR;
+typedef union RBBM_WAIT_IDLE_CLOCKS regRBBM_WAIT_IDLE_CLOCKS;
+typedef union RBBM_INT_CNTL regRBBM_INT_CNTL;
+typedef union RBBM_INT_STATUS regRBBM_INT_STATUS;
+typedef union RBBM_INT_ACK regRBBM_INT_ACK;
+typedef union MASTER_INT_SIGNAL regMASTER_INT_SIGNAL;
+typedef union RBBM_PERFCOUNTER1_SELECT regRBBM_PERFCOUNTER1_SELECT;
+typedef union RBBM_PERFCOUNTER1_LO regRBBM_PERFCOUNTER1_LO;
+typedef union RBBM_PERFCOUNTER1_HI regRBBM_PERFCOUNTER1_HI;
+typedef union CP_RB_BASE regCP_RB_BASE;
+typedef union CP_RB_CNTL regCP_RB_CNTL;
+typedef union CP_RB_RPTR_ADDR regCP_RB_RPTR_ADDR;
+typedef union CP_RB_RPTR regCP_RB_RPTR;
+typedef union CP_RB_RPTR_WR regCP_RB_RPTR_WR;
+typedef union CP_RB_WPTR regCP_RB_WPTR;
+typedef union CP_RB_WPTR_DELAY regCP_RB_WPTR_DELAY;
+typedef union CP_RB_WPTR_BASE regCP_RB_WPTR_BASE;
+typedef union CP_IB1_BASE regCP_IB1_BASE;
+typedef union CP_IB1_BUFSZ regCP_IB1_BUFSZ;
+typedef union CP_IB2_BASE regCP_IB2_BASE;
+typedef union CP_IB2_BUFSZ regCP_IB2_BUFSZ;
+typedef union CP_ST_BASE regCP_ST_BASE;
+typedef union CP_ST_BUFSZ regCP_ST_BUFSZ;
+typedef union CP_QUEUE_THRESHOLDS regCP_QUEUE_THRESHOLDS;
+typedef union CP_MEQ_THRESHOLDS regCP_MEQ_THRESHOLDS;
+typedef union CP_CSQ_AVAIL regCP_CSQ_AVAIL;
+typedef union CP_STQ_AVAIL regCP_STQ_AVAIL;
+typedef union CP_MEQ_AVAIL regCP_MEQ_AVAIL;
+typedef union CP_CSQ_RB_STAT regCP_CSQ_RB_STAT;
+typedef union CP_CSQ_IB1_STAT regCP_CSQ_IB1_STAT;
+typedef union CP_CSQ_IB2_STAT regCP_CSQ_IB2_STAT;
+typedef union CP_NON_PREFETCH_CNTRS regCP_NON_PREFETCH_CNTRS;
+typedef union CP_STQ_ST_STAT regCP_STQ_ST_STAT;
+typedef union CP_MEQ_STAT regCP_MEQ_STAT;
+typedef union CP_MIU_TAG_STAT regCP_MIU_TAG_STAT;
+typedef union CP_CMD_INDEX regCP_CMD_INDEX;
+typedef union CP_CMD_DATA regCP_CMD_DATA;
+typedef union CP_ME_CNTL regCP_ME_CNTL;
+typedef union CP_ME_STATUS regCP_ME_STATUS;
+typedef union CP_ME_RAM_WADDR regCP_ME_RAM_WADDR;
+typedef union CP_ME_RAM_RADDR regCP_ME_RAM_RADDR;
+typedef union CP_ME_RAM_DATA regCP_ME_RAM_DATA;
+typedef union CP_ME_RDADDR regCP_ME_RDADDR;
+typedef union CP_DEBUG regCP_DEBUG;
+typedef union SCRATCH_REG0 regSCRATCH_REG0;
+typedef union GUI_SCRATCH_REG0 regGUI_SCRATCH_REG0;
+typedef union SCRATCH_REG1 regSCRATCH_REG1;
+typedef union GUI_SCRATCH_REG1 regGUI_SCRATCH_REG1;
+typedef union SCRATCH_REG2 regSCRATCH_REG2;
+typedef union GUI_SCRATCH_REG2 regGUI_SCRATCH_REG2;
+typedef union SCRATCH_REG3 regSCRATCH_REG3;
+typedef union GUI_SCRATCH_REG3 regGUI_SCRATCH_REG3;
+typedef union SCRATCH_REG4 regSCRATCH_REG4;
+typedef union GUI_SCRATCH_REG4 regGUI_SCRATCH_REG4;
+typedef union SCRATCH_REG5 regSCRATCH_REG5;
+typedef union GUI_SCRATCH_REG5 regGUI_SCRATCH_REG5;
+typedef union SCRATCH_REG6 regSCRATCH_REG6;
+typedef union GUI_SCRATCH_REG6 regGUI_SCRATCH_REG6;
+typedef union SCRATCH_REG7 regSCRATCH_REG7;
+typedef union GUI_SCRATCH_REG7 regGUI_SCRATCH_REG7;
+typedef union SCRATCH_UMSK regSCRATCH_UMSK;
+typedef union SCRATCH_ADDR regSCRATCH_ADDR;
+typedef union CP_ME_VS_EVENT_SRC regCP_ME_VS_EVENT_SRC;
+typedef union CP_ME_VS_EVENT_ADDR regCP_ME_VS_EVENT_ADDR;
+typedef union CP_ME_VS_EVENT_DATA regCP_ME_VS_EVENT_DATA;
+typedef union CP_ME_VS_EVENT_ADDR_SWM regCP_ME_VS_EVENT_ADDR_SWM;
+typedef union CP_ME_VS_EVENT_DATA_SWM regCP_ME_VS_EVENT_DATA_SWM;
+typedef union CP_ME_PS_EVENT_SRC regCP_ME_PS_EVENT_SRC;
+typedef union CP_ME_PS_EVENT_ADDR regCP_ME_PS_EVENT_ADDR;
+typedef union CP_ME_PS_EVENT_DATA regCP_ME_PS_EVENT_DATA;
+typedef union CP_ME_PS_EVENT_ADDR_SWM regCP_ME_PS_EVENT_ADDR_SWM;
+typedef union CP_ME_PS_EVENT_DATA_SWM regCP_ME_PS_EVENT_DATA_SWM;
+typedef union CP_ME_CF_EVENT_SRC regCP_ME_CF_EVENT_SRC;
+typedef union CP_ME_CF_EVENT_ADDR regCP_ME_CF_EVENT_ADDR;
+typedef union CP_ME_CF_EVENT_DATA regCP_ME_CF_EVENT_DATA;
+typedef union CP_ME_NRT_ADDR regCP_ME_NRT_ADDR;
+typedef union CP_ME_NRT_DATA regCP_ME_NRT_DATA;
+typedef union CP_ME_VS_FETCH_DONE_SRC regCP_ME_VS_FETCH_DONE_SRC;
+typedef union CP_ME_VS_FETCH_DONE_ADDR regCP_ME_VS_FETCH_DONE_ADDR;
+typedef union CP_ME_VS_FETCH_DONE_DATA regCP_ME_VS_FETCH_DONE_DATA;
+typedef union CP_INT_CNTL regCP_INT_CNTL;
+typedef union CP_INT_STATUS regCP_INT_STATUS;
+typedef union CP_INT_ACK regCP_INT_ACK;
+typedef union CP_PFP_UCODE_ADDR regCP_PFP_UCODE_ADDR;
+typedef union CP_PFP_UCODE_DATA regCP_PFP_UCODE_DATA;
+typedef union CP_PERFMON_CNTL regCP_PERFMON_CNTL;
+typedef union CP_PERFCOUNTER_SELECT regCP_PERFCOUNTER_SELECT;
+typedef union CP_PERFCOUNTER_LO regCP_PERFCOUNTER_LO;
+typedef union CP_PERFCOUNTER_HI regCP_PERFCOUNTER_HI;
+typedef union CP_BIN_MASK_LO regCP_BIN_MASK_LO;
+typedef union CP_BIN_MASK_HI regCP_BIN_MASK_HI;
+typedef union CP_BIN_SELECT_LO regCP_BIN_SELECT_LO;
+typedef union CP_BIN_SELECT_HI regCP_BIN_SELECT_HI;
+typedef union CP_NV_FLAGS_0 regCP_NV_FLAGS_0;
+typedef union CP_NV_FLAGS_1 regCP_NV_FLAGS_1;
+typedef union CP_NV_FLAGS_2 regCP_NV_FLAGS_2;
+typedef union CP_NV_FLAGS_3 regCP_NV_FLAGS_3;
+typedef union CP_STATE_DEBUG_INDEX regCP_STATE_DEBUG_INDEX;
+typedef union CP_STATE_DEBUG_DATA regCP_STATE_DEBUG_DATA;
+typedef union CP_PROG_COUNTER regCP_PROG_COUNTER;
+typedef union CP_STAT regCP_STAT;
+typedef union BIOS_0_SCRATCH regBIOS_0_SCRATCH;
+typedef union BIOS_1_SCRATCH regBIOS_1_SCRATCH;
+typedef union BIOS_2_SCRATCH regBIOS_2_SCRATCH;
+typedef union BIOS_3_SCRATCH regBIOS_3_SCRATCH;
+typedef union BIOS_4_SCRATCH regBIOS_4_SCRATCH;
+typedef union BIOS_5_SCRATCH regBIOS_5_SCRATCH;
+typedef union BIOS_6_SCRATCH regBIOS_6_SCRATCH;
+typedef union BIOS_7_SCRATCH regBIOS_7_SCRATCH;
+typedef union BIOS_8_SCRATCH regBIOS_8_SCRATCH;
+typedef union BIOS_9_SCRATCH regBIOS_9_SCRATCH;
+typedef union BIOS_10_SCRATCH regBIOS_10_SCRATCH;
+typedef union BIOS_11_SCRATCH regBIOS_11_SCRATCH;
+typedef union BIOS_12_SCRATCH regBIOS_12_SCRATCH;
+typedef union BIOS_13_SCRATCH regBIOS_13_SCRATCH;
+typedef union BIOS_14_SCRATCH regBIOS_14_SCRATCH;
+typedef union BIOS_15_SCRATCH regBIOS_15_SCRATCH;
+typedef union COHER_SIZE_PM4 regCOHER_SIZE_PM4;
+typedef union COHER_BASE_PM4 regCOHER_BASE_PM4;
+typedef union COHER_STATUS_PM4 regCOHER_STATUS_PM4;
+typedef union COHER_SIZE_HOST regCOHER_SIZE_HOST;
+typedef union COHER_BASE_HOST regCOHER_BASE_HOST;
+typedef union COHER_STATUS_HOST regCOHER_STATUS_HOST;
+typedef union COHER_DEST_BASE_0 regCOHER_DEST_BASE_0;
+typedef union COHER_DEST_BASE_1 regCOHER_DEST_BASE_1;
+typedef union COHER_DEST_BASE_2 regCOHER_DEST_BASE_2;
+typedef union COHER_DEST_BASE_3 regCOHER_DEST_BASE_3;
+typedef union COHER_DEST_BASE_4 regCOHER_DEST_BASE_4;
+typedef union COHER_DEST_BASE_5 regCOHER_DEST_BASE_5;
+typedef union COHER_DEST_BASE_6 regCOHER_DEST_BASE_6;
+typedef union COHER_DEST_BASE_7 regCOHER_DEST_BASE_7;
+typedef union RB_SURFACE_INFO regRB_SURFACE_INFO;
+typedef union RB_COLOR_INFO regRB_COLOR_INFO;
+typedef union RB_DEPTH_INFO regRB_DEPTH_INFO;
+typedef union RB_STENCILREFMASK regRB_STENCILREFMASK;
+typedef union RB_ALPHA_REF regRB_ALPHA_REF;
+typedef union RB_COLOR_MASK regRB_COLOR_MASK;
+typedef union RB_BLEND_RED regRB_BLEND_RED;
+typedef union RB_BLEND_GREEN regRB_BLEND_GREEN;
+typedef union RB_BLEND_BLUE regRB_BLEND_BLUE;
+typedef union RB_BLEND_ALPHA regRB_BLEND_ALPHA;
+typedef union RB_FOG_COLOR regRB_FOG_COLOR;
+typedef union RB_STENCILREFMASK_BF regRB_STENCILREFMASK_BF;
+typedef union RB_DEPTHCONTROL regRB_DEPTHCONTROL;
+typedef union RB_BLENDCONTROL regRB_BLENDCONTROL;
+typedef union RB_COLORCONTROL regRB_COLORCONTROL;
+typedef union RB_MODECONTROL regRB_MODECONTROL;
+typedef union RB_COLOR_DEST_MASK regRB_COLOR_DEST_MASK;
+typedef union RB_COPY_CONTROL regRB_COPY_CONTROL;
+typedef union RB_COPY_DEST_BASE regRB_COPY_DEST_BASE;
+typedef union RB_COPY_DEST_PITCH regRB_COPY_DEST_PITCH;
+typedef union RB_COPY_DEST_INFO regRB_COPY_DEST_INFO;
+typedef union RB_COPY_DEST_PIXEL_OFFSET regRB_COPY_DEST_PIXEL_OFFSET;
+typedef union RB_DEPTH_CLEAR regRB_DEPTH_CLEAR;
+typedef union RB_SAMPLE_COUNT_CTL regRB_SAMPLE_COUNT_CTL;
+typedef union RB_SAMPLE_COUNT_ADDR regRB_SAMPLE_COUNT_ADDR;
+typedef union RB_BC_CONTROL regRB_BC_CONTROL;
+typedef union RB_EDRAM_INFO regRB_EDRAM_INFO;
+typedef union RB_CRC_RD_PORT regRB_CRC_RD_PORT;
+typedef union RB_CRC_CONTROL regRB_CRC_CONTROL;
+typedef union RB_CRC_MASK regRB_CRC_MASK;
+typedef union RB_PERFCOUNTER0_SELECT regRB_PERFCOUNTER0_SELECT;
+typedef union RB_PERFCOUNTER0_LOW regRB_PERFCOUNTER0_LOW;
+typedef union RB_PERFCOUNTER0_HI regRB_PERFCOUNTER0_HI;
+typedef union RB_TOTAL_SAMPLES regRB_TOTAL_SAMPLES;
+typedef union RB_ZPASS_SAMPLES regRB_ZPASS_SAMPLES;
+typedef union RB_ZFAIL_SAMPLES regRB_ZFAIL_SAMPLES;
+typedef union RB_SFAIL_SAMPLES regRB_SFAIL_SAMPLES;
+typedef union RB_DEBUG_0 regRB_DEBUG_0;
+typedef union RB_DEBUG_1 regRB_DEBUG_1;
+typedef union RB_DEBUG_2 regRB_DEBUG_2;
+typedef union RB_DEBUG_3 regRB_DEBUG_3;
+typedef union RB_DEBUG_4 regRB_DEBUG_4;
+typedef union RB_FLAG_CONTROL regRB_FLAG_CONTROL;
+typedef union BC_DUMMY_CRAYRB_ENUMS regBC_DUMMY_CRAYRB_ENUMS;
+typedef union BC_DUMMY_CRAYRB_MOREENUMS regBC_DUMMY_CRAYRB_MOREENUMS;
+#endif
diff --git a/drivers/mxc/amd-gpu/include/reg/yamato/22/yamato_enum.h b/drivers/mxc/amd-gpu/include/reg/yamato/22/yamato_enum.h
new file mode 100644
index 000000000000..15cfbebf2907
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/reg/yamato/22/yamato_enum.h
@@ -0,0 +1,1897 @@
+/* Copyright (c) 2002,2007-2009, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#if !defined (_yamato_ENUM_HEADER)
+#define _yamato_ENUM_HEADER
+
+
+
+#ifndef _DRIVER_BUILD
+#ifndef GL_ZERO
+#define GL__ZERO BLEND_ZERO
+#define GL__ONE BLEND_ONE
+#define GL__SRC_COLOR BLEND_SRC_COLOR
+#define GL__ONE_MINUS_SRC_COLOR BLEND_ONE_MINUS_SRC_COLOR
+#define GL__DST_COLOR BLEND_DST_COLOR
+#define GL__ONE_MINUS_DST_COLOR BLEND_ONE_MINUS_DST_COLOR
+#define GL__SRC_ALPHA BLEND_SRC_ALPHA
+#define GL__ONE_MINUS_SRC_ALPHA BLEND_ONE_MINUS_SRC_ALPHA
+#define GL__DST_ALPHA BLEND_DST_ALPHA
+#define GL__ONE_MINUS_DST_ALPHA BLEND_ONE_MINUS_DST_ALPHA
+#define GL__SRC_ALPHA_SATURATE BLEND_SRC_ALPHA_SATURATE
+#define GL__CONSTANT_COLOR BLEND_CONSTANT_COLOR
+#define GL__ONE_MINUS_CONSTANT_COLOR BLEND_ONE_MINUS_CONSTANT_COLOR
+#define GL__CONSTANT_ALPHA BLEND_CONSTANT_ALPHA
+#define GL__ONE_MINUS_CONSTANT_ALPHA BLEND_ONE_MINUS_CONSTANT_ALPHA
+#endif
+#endif
+
+/*******************************************************
+ * PA Enums
+ *******************************************************/
+#ifndef ENUMS_SU_PERFCNT_SELECT_H
+#define ENUMS_SU_PERFCNT_SELECT_H
+typedef enum SU_PERFCNT_SELECT {
+ PERF_PAPC_PASX_REQ = 0,
+ UNUSED1 = 1,
+ PERF_PAPC_PASX_FIRST_VECTOR = 2,
+ PERF_PAPC_PASX_SECOND_VECTOR = 3,
+ PERF_PAPC_PASX_FIRST_DEAD = 4,
+ PERF_PAPC_PASX_SECOND_DEAD = 5,
+ PERF_PAPC_PASX_VTX_KILL_DISCARD = 6,
+ PERF_PAPC_PASX_VTX_NAN_DISCARD = 7,
+ PERF_PAPC_PA_INPUT_PRIM = 8,
+ PERF_PAPC_PA_INPUT_NULL_PRIM = 9,
+ PERF_PAPC_PA_INPUT_EVENT_FLAG = 10,
+ PERF_PAPC_PA_INPUT_FIRST_PRIM_SLOT = 11,
+ PERF_PAPC_PA_INPUT_END_OF_PACKET = 12,
+ PERF_PAPC_CLPR_CULL_PRIM = 13,
+ UNUSED2 = 14,
+ PERF_PAPC_CLPR_VV_CULL_PRIM = 15,
+ UNUSED3 = 16,
+ PERF_PAPC_CLPR_VTX_KILL_CULL_PRIM = 17,
+ PERF_PAPC_CLPR_VTX_NAN_CULL_PRIM = 18,
+ PERF_PAPC_CLPR_CULL_TO_NULL_PRIM = 19,
+ UNUSED4 = 20,
+ PERF_PAPC_CLPR_VV_CLIP_PRIM = 21,
+ UNUSED5 = 22,
+ PERF_PAPC_CLPR_POINT_CLIP_CANDIDATE = 23,
+ PERF_PAPC_CLPR_CLIP_PLANE_CNT_1 = 24,
+ PERF_PAPC_CLPR_CLIP_PLANE_CNT_2 = 25,
+ PERF_PAPC_CLPR_CLIP_PLANE_CNT_3 = 26,
+ PERF_PAPC_CLPR_CLIP_PLANE_CNT_4 = 27,
+ PERF_PAPC_CLPR_CLIP_PLANE_CNT_5 = 28,
+ PERF_PAPC_CLPR_CLIP_PLANE_CNT_6 = 29,
+ PERF_PAPC_CLPR_CLIP_PLANE_NEAR = 30,
+ PERF_PAPC_CLPR_CLIP_PLANE_FAR = 31,
+ PERF_PAPC_CLPR_CLIP_PLANE_LEFT = 32,
+ PERF_PAPC_CLPR_CLIP_PLANE_RIGHT = 33,
+ PERF_PAPC_CLPR_CLIP_PLANE_TOP = 34,
+ PERF_PAPC_CLPR_CLIP_PLANE_BOTTOM = 35,
+ PERF_PAPC_CLSM_NULL_PRIM = 36,
+ PERF_PAPC_CLSM_TOTALLY_VISIBLE_PRIM = 37,
+ PERF_PAPC_CLSM_CLIP_PRIM = 38,
+ PERF_PAPC_CLSM_CULL_TO_NULL_PRIM = 39,
+ PERF_PAPC_CLSM_OUT_PRIM_CNT_1 = 40,
+ PERF_PAPC_CLSM_OUT_PRIM_CNT_2 = 41,
+ PERF_PAPC_CLSM_OUT_PRIM_CNT_3 = 42,
+ PERF_PAPC_CLSM_OUT_PRIM_CNT_4 = 43,
+ PERF_PAPC_CLSM_OUT_PRIM_CNT_5 = 44,
+ PERF_PAPC_CLSM_OUT_PRIM_CNT_6_7 = 45,
+ PERF_PAPC_CLSM_NON_TRIVIAL_CULL = 46,
+ PERF_PAPC_SU_INPUT_PRIM = 47,
+ PERF_PAPC_SU_INPUT_CLIP_PRIM = 48,
+ PERF_PAPC_SU_INPUT_NULL_PRIM = 49,
+ PERF_PAPC_SU_ZERO_AREA_CULL_PRIM = 50,
+ PERF_PAPC_SU_BACK_FACE_CULL_PRIM = 51,
+ PERF_PAPC_SU_FRONT_FACE_CULL_PRIM = 52,
+ PERF_PAPC_SU_POLYMODE_FACE_CULL = 53,
+ PERF_PAPC_SU_POLYMODE_BACK_CULL = 54,
+ PERF_PAPC_SU_POLYMODE_FRONT_CULL = 55,
+ PERF_PAPC_SU_POLYMODE_INVALID_FILL = 56,
+ PERF_PAPC_SU_OUTPUT_PRIM = 57,
+ PERF_PAPC_SU_OUTPUT_CLIP_PRIM = 58,
+ PERF_PAPC_SU_OUTPUT_NULL_PRIM = 59,
+ PERF_PAPC_SU_OUTPUT_EVENT_FLAG = 60,
+ PERF_PAPC_SU_OUTPUT_FIRST_PRIM_SLOT = 61,
+ PERF_PAPC_SU_OUTPUT_END_OF_PACKET = 62,
+ PERF_PAPC_SU_OUTPUT_POLYMODE_FACE = 63,
+ PERF_PAPC_SU_OUTPUT_POLYMODE_BACK = 64,
+ PERF_PAPC_SU_OUTPUT_POLYMODE_FRONT = 65,
+ PERF_PAPC_SU_OUT_CLIP_POLYMODE_FACE = 66,
+ PERF_PAPC_SU_OUT_CLIP_POLYMODE_BACK = 67,
+ PERF_PAPC_SU_OUT_CLIP_POLYMODE_FRONT = 68,
+ PERF_PAPC_PASX_REQ_IDLE = 69,
+ PERF_PAPC_PASX_REQ_BUSY = 70,
+ PERF_PAPC_PASX_REQ_STALLED = 71,
+ PERF_PAPC_PASX_REC_IDLE = 72,
+ PERF_PAPC_PASX_REC_BUSY = 73,
+ PERF_PAPC_PASX_REC_STARVED_SX = 74,
+ PERF_PAPC_PASX_REC_STALLED = 75,
+ PERF_PAPC_PASX_REC_STALLED_POS_MEM = 76,
+ PERF_PAPC_PASX_REC_STALLED_CCGSM_IN = 77,
+ PERF_PAPC_CCGSM_IDLE = 78,
+ PERF_PAPC_CCGSM_BUSY = 79,
+ PERF_PAPC_CCGSM_STALLED = 80,
+ PERF_PAPC_CLPRIM_IDLE = 81,
+ PERF_PAPC_CLPRIM_BUSY = 82,
+ PERF_PAPC_CLPRIM_STALLED = 83,
+ PERF_PAPC_CLPRIM_STARVED_CCGSM = 84,
+ PERF_PAPC_CLIPSM_IDLE = 85,
+ PERF_PAPC_CLIPSM_BUSY = 86,
+ PERF_PAPC_CLIPSM_WAIT_CLIP_VERT_ENGH = 87,
+ PERF_PAPC_CLIPSM_WAIT_HIGH_PRI_SEQ = 88,
+ PERF_PAPC_CLIPSM_WAIT_CLIPGA = 89,
+ PERF_PAPC_CLIPSM_WAIT_AVAIL_VTE_CLIP = 90,
+ PERF_PAPC_CLIPSM_WAIT_CLIP_OUTSM = 91,
+ PERF_PAPC_CLIPGA_IDLE = 92,
+ PERF_PAPC_CLIPGA_BUSY = 93,
+ PERF_PAPC_CLIPGA_STARVED_VTE_CLIP = 94,
+ PERF_PAPC_CLIPGA_STALLED = 95,
+ PERF_PAPC_CLIP_IDLE = 96,
+ PERF_PAPC_CLIP_BUSY = 97,
+ PERF_PAPC_SU_IDLE = 98,
+ PERF_PAPC_SU_BUSY = 99,
+ PERF_PAPC_SU_STARVED_CLIP = 100,
+ PERF_PAPC_SU_STALLED_SC = 101,
+ PERF_PAPC_SU_FACENESS_CULL = 102,
+} SU_PERFCNT_SELECT;
+#endif /*ENUMS_SU_PERFCNT_SELECT_H*/
+
+#ifndef ENUMS_SC_PERFCNT_SELECT_H
+#define ENUMS_SC_PERFCNT_SELECT_H
+typedef enum SC_PERFCNT_SELECT {
+ SC_SR_WINDOW_VALID = 0,
+ SC_CW_WINDOW_VALID = 1,
+ SC_QM_WINDOW_VALID = 2,
+ SC_FW_WINDOW_VALID = 3,
+ SC_EZ_WINDOW_VALID = 4,
+ SC_IT_WINDOW_VALID = 5,
+ SC_STARVED_BY_PA = 6,
+ SC_STALLED_BY_RB_TILE = 7,
+ SC_STALLED_BY_RB_SAMP = 8,
+ SC_STARVED_BY_RB_EZ = 9,
+ SC_STALLED_BY_SAMPLE_FF = 10,
+ SC_STALLED_BY_SQ = 11,
+ SC_STALLED_BY_SP = 12,
+ SC_TOTAL_NO_PRIMS = 13,
+ SC_NON_EMPTY_PRIMS = 14,
+ SC_NO_TILES_PASSING_QM = 15,
+ SC_NO_PIXELS_PRE_EZ = 16,
+ SC_NO_PIXELS_POST_EZ = 17,
+} SC_PERFCNT_SELECT;
+#endif /*ENUMS_SC_PERFCNT_SELECT_H*/
+
+/*******************************************************
+ * VGT Enums
+ *******************************************************/
+#ifndef ENUMS_VGT_DI_PRIM_TYPE_H
+#define ENUMS_VGT_DI_PRIM_TYPE_H
+typedef enum VGT_DI_PRIM_TYPE {
+ DI_PT_NONE = 0,
+ DI_PT_POINTLIST = 1,
+ DI_PT_LINELIST = 2,
+ DI_PT_LINESTRIP = 3,
+ DI_PT_TRILIST = 4,
+ DI_PT_TRIFAN = 5,
+ DI_PT_TRISTRIP = 6,
+ DI_PT_UNUSED_1 = 7,
+ DI_PT_RECTLIST = 8,
+ DI_PT_UNUSED_2 = 9,
+ DI_PT_UNUSED_3 = 10,
+ DI_PT_UNUSED_4 = 11,
+ DI_PT_UNUSED_5 = 12,
+ DI_PT_QUADLIST = 13,
+ DI_PT_QUADSTRIP = 14,
+ DI_PT_POLYGON = 15,
+ DI_PT_2D_COPY_RECT_LIST_V0 = 16,
+ DI_PT_2D_COPY_RECT_LIST_V1 = 17,
+ DI_PT_2D_COPY_RECT_LIST_V2 = 18,
+ DI_PT_2D_COPY_RECT_LIST_V3 = 19,
+ DI_PT_2D_FILL_RECT_LIST = 20,
+ DI_PT_2D_LINE_STRIP = 21,
+ DI_PT_2D_TRI_STRIP = 22,
+} VGT_DI_PRIM_TYPE;
+#endif /*ENUMS_VGT_DI_PRIM_TYPE_H*/
+
+#ifndef ENUMS_VGT_DI_SOURCE_SELECT_H
+#define ENUMS_VGT_DI_SOURCE_SELECT_H
+typedef enum VGT_DI_SOURCE_SELECT {
+ DI_SRC_SEL_DMA = 0,
+ DI_SRC_SEL_IMMEDIATE = 1,
+ DI_SRC_SEL_AUTO_INDEX = 2,
+ DI_SRC_SEL_RESERVED = 3
+} VGT_DI_SOURCE_SELECT;
+#endif /*ENUMS_VGT_DI_SOURCE_SELECT_H*/
+
+#ifndef ENUMS_VGT_DI_FACENESS_CULL_SELECT_H
+#define ENUMS_VGT_DI_FACENESS_CULL_SELECT_H
+typedef enum VGT_DI_FACENESS_CULL_SELECT {
+ DI_FACE_CULL_NONE = 0,
+ DI_FACE_CULL_FETCH = 1,
+ DI_FACE_BACKFACE_CULL = 2,
+ DI_FACE_FRONTFACE_CULL = 3
+} VGT_DI_FACENESS_CULL_SELECT;
+#endif /*ENUMS_VGT_DI_FACENESS_CULL_SELECT_H*/
+
+#ifndef ENUMS_VGT_DI_INDEX_SIZE_H
+#define ENUMS_VGT_DI_INDEX_SIZE_H
+typedef enum VGT_DI_INDEX_SIZE {
+ DI_INDEX_SIZE_16_BIT = 0,
+ DI_INDEX_SIZE_32_BIT = 1
+} VGT_DI_INDEX_SIZE;
+#endif /*ENUMS_VGT_DI_INDEX_SIZE_H*/
+
+#ifndef ENUMS_VGT_DI_SMALL_INDEX_H
+#define ENUMS_VGT_DI_SMALL_INDEX_H
+typedef enum VGT_DI_SMALL_INDEX {
+ DI_USE_INDEX_SIZE = 0,
+ DI_INDEX_SIZE_8_BIT = 1
+} VGT_DI_SMALL_INDEX;
+#endif /*ENUMS_VGT_DI_SMALL_INDEX_H*/
+
+#ifndef ENUMS_VGT_DI_PRE_FETCH_CULL_ENABLE_H
+#define ENUMS_VGT_DI_PRE_FETCH_CULL_ENABLE_H
+typedef enum VGT_DI_PRE_FETCH_CULL_ENABLE {
+ DISABLE_PRE_FETCH_CULL_ENABLE = 0,
+ PRE_FETCH_CULL_ENABLE = 1
+} VGT_DI_PRE_FETCH_CULL_ENABLE;
+#endif /*ENUMS_VGT_DI_PRE_FETCH_CULL_ENABLE_H*/
+
+#ifndef ENUMS_VGT_DI_GRP_CULL_ENABLE_H
+#define ENUMS_VGT_DI_GRP_CULL_ENABLE_H
+typedef enum VGT_DI_GRP_CULL_ENABLE {
+ DISABLE_GRP_CULL_ENABLE = 0,
+ GRP_CULL_ENABLE = 1
+} VGT_DI_GRP_CULL_ENABLE;
+#endif /*ENUMS_VGT_DI_GRP_CULL_ENABLE_H*/
+
+#ifndef ENUMS_VGT_EVENT_TYPE_H
+#define ENUMS_VGT_EVENT_TYPE_H
+typedef enum VGT_EVENT_TYPE {
+ VS_DEALLOC = 0,
+ PS_DEALLOC = 1,
+ VS_DONE_TS = 2,
+ PS_DONE_TS = 3,
+ CACHE_FLUSH_TS = 4,
+ CONTEXT_DONE = 5,
+ CACHE_FLUSH = 6,
+ VIZQUERY_START = 7,
+ VIZQUERY_END = 8,
+ SC_WAIT_WC = 9,
+ RST_PIX_CNT = 13,
+ RST_VTX_CNT = 14,
+ TILE_FLUSH = 15,
+ CACHE_FLUSH_AND_INV_TS_EVENT = 20,
+ ZPASS_DONE = 21,
+ CACHE_FLUSH_AND_INV_EVENT = 22,
+ PERFCOUNTER_START = 23,
+ PERFCOUNTER_STOP = 24,
+ VS_FETCH_DONE = 27,
+ FACENESS_FLUSH = 28,
+} VGT_EVENT_TYPE;
+#endif /*ENUMS_VGT_EVENT_TYPE_H*/
+
+#ifndef ENUMS_VGT_DMA_SWAP_MODE_H
+#define ENUMS_VGT_DMA_SWAP_MODE_H
+typedef enum VGT_DMA_SWAP_MODE {
+ VGT_DMA_SWAP_NONE = 0,
+ VGT_DMA_SWAP_16_BIT = 1,
+ VGT_DMA_SWAP_32_BIT = 2,
+ VGT_DMA_SWAP_WORD = 3
+} VGT_DMA_SWAP_MODE;
+#endif /*ENUMS_VGT_DMA_SWAP_MODE_H*/
+
+#ifndef ENUMS_VGT_PERFCOUNT_SELECT_H
+#define ENUMS_VGT_PERFCOUNT_SELECT_H
+typedef enum VGT_PERFCOUNT_SELECT {
+ VGT_SQ_EVENT_WINDOW_ACTIVE = 0,
+ VGT_SQ_SEND = 1,
+ VGT_SQ_STALLED = 2,
+ VGT_SQ_STARVED_BUSY = 3,
+ VGT_SQ_STARVED_IDLE = 4,
+ VGT_SQ_STATIC = 5,
+ VGT_PA_EVENT_WINDOW_ACTIVE = 6,
+ VGT_PA_CLIP_V_SEND = 7,
+ VGT_PA_CLIP_V_STALLED = 8,
+ VGT_PA_CLIP_V_STARVED_BUSY = 9,
+ VGT_PA_CLIP_V_STARVED_IDLE = 10,
+ VGT_PA_CLIP_V_STATIC = 11,
+ VGT_PA_CLIP_P_SEND = 12,
+ VGT_PA_CLIP_P_STALLED = 13,
+ VGT_PA_CLIP_P_STARVED_BUSY = 14,
+ VGT_PA_CLIP_P_STARVED_IDLE = 15,
+ VGT_PA_CLIP_P_STATIC = 16,
+ VGT_PA_CLIP_S_SEND = 17,
+ VGT_PA_CLIP_S_STALLED = 18,
+ VGT_PA_CLIP_S_STARVED_BUSY = 19,
+ VGT_PA_CLIP_S_STARVED_IDLE = 20,
+ VGT_PA_CLIP_S_STATIC = 21,
+ RBIU_FIFOS_EVENT_WINDOW_ACTIVE = 22,
+ RBIU_IMMED_DATA_FIFO_STARVED = 23,
+ RBIU_IMMED_DATA_FIFO_STALLED = 24,
+ RBIU_DMA_REQUEST_FIFO_STARVED = 25,
+ RBIU_DMA_REQUEST_FIFO_STALLED = 26,
+ RBIU_DRAW_INITIATOR_FIFO_STARVED = 27,
+ RBIU_DRAW_INITIATOR_FIFO_STALLED = 28,
+ BIN_PRIM_NEAR_CULL = 29,
+ BIN_PRIM_ZERO_CULL = 30,
+ BIN_PRIM_FAR_CULL = 31,
+ BIN_PRIM_BIN_CULL = 32,
+ BIN_PRIM_FACE_CULL = 33,
+ SPARE34 = 34,
+ SPARE35 = 35,
+ SPARE36 = 36,
+ SPARE37 = 37,
+ SPARE38 = 38,
+ SPARE39 = 39,
+ TE_SU_IN_VALID = 40,
+ TE_SU_IN_READ = 41,
+ TE_SU_IN_PRIM = 42,
+ TE_SU_IN_EOP = 43,
+ TE_SU_IN_NULL_PRIM = 44,
+ TE_WK_IN_VALID = 45,
+ TE_WK_IN_READ = 46,
+ TE_OUT_PRIM_VALID = 47,
+ TE_OUT_PRIM_READ = 48,
+} VGT_PERFCOUNT_SELECT;
+#endif /*ENUMS_VGT_PERFCOUNT_SELECT_H*/
+
+/*******************************************************
+ * TP Enums
+ *******************************************************/
+#ifndef ENUMS_TCR_PERFCOUNT_SELECT_H
+#define ENUMS_TCR_PERFCOUNT_SELECT_H
+typedef enum TCR_PERFCOUNT_SELECT {
+ DGMMPD_IPMUX0_STALL = 0,
+ reserved_46 = 1,
+ reserved_47 = 2,
+ reserved_48 = 3,
+ DGMMPD_IPMUX_ALL_STALL = 4,
+ OPMUX0_L2_WRITES = 5,
+ reserved_49 = 6,
+ reserved_50 = 7,
+ reserved_51 = 8,
+} TCR_PERFCOUNT_SELECT;
+#endif /*ENUMS_TCR_PERFCOUNT_SELECT_H*/
+
+#ifndef ENUMS_TP_PERFCOUNT_SELECT_H
+#define ENUMS_TP_PERFCOUNT_SELECT_H
+typedef enum TP_PERFCOUNT_SELECT {
+ POINT_QUADS = 0,
+ BILIN_QUADS = 1,
+ ANISO_QUADS = 2,
+ MIP_QUADS = 3,
+ VOL_QUADS = 4,
+ MIP_VOL_QUADS = 5,
+ MIP_ANISO_QUADS = 6,
+ VOL_ANISO_QUADS = 7,
+ ANISO_2_1_QUADS = 8,
+ ANISO_4_1_QUADS = 9,
+ ANISO_6_1_QUADS = 10,
+ ANISO_8_1_QUADS = 11,
+ ANISO_10_1_QUADS = 12,
+ ANISO_12_1_QUADS = 13,
+ ANISO_14_1_QUADS = 14,
+ ANISO_16_1_QUADS = 15,
+ MIP_VOL_ANISO_QUADS = 16,
+ ALIGN_2_QUADS = 17,
+ ALIGN_4_QUADS = 18,
+ PIX_0_QUAD = 19,
+ PIX_1_QUAD = 20,
+ PIX_2_QUAD = 21,
+ PIX_3_QUAD = 22,
+ PIX_4_QUAD = 23,
+ TP_MIPMAP_LOD0 = 24,
+ TP_MIPMAP_LOD1 = 25,
+ TP_MIPMAP_LOD2 = 26,
+ TP_MIPMAP_LOD3 = 27,
+ TP_MIPMAP_LOD4 = 28,
+ TP_MIPMAP_LOD5 = 29,
+ TP_MIPMAP_LOD6 = 30,
+ TP_MIPMAP_LOD7 = 31,
+ TP_MIPMAP_LOD8 = 32,
+ TP_MIPMAP_LOD9 = 33,
+ TP_MIPMAP_LOD10 = 34,
+ TP_MIPMAP_LOD11 = 35,
+ TP_MIPMAP_LOD12 = 36,
+ TP_MIPMAP_LOD13 = 37,
+ TP_MIPMAP_LOD14 = 38,
+} TP_PERFCOUNT_SELECT;
+#endif /*ENUMS_TP_PERFCOUNT_SELECT_H*/
+
+#ifndef ENUMS_TCM_PERFCOUNT_SELECT_H
+#define ENUMS_TCM_PERFCOUNT_SELECT_H
+typedef enum TCM_PERFCOUNT_SELECT {
+ QUAD0_RD_LAT_FIFO_EMPTY = 0,
+ reserved_01 = 1,
+ reserved_02 = 2,
+ QUAD0_RD_LAT_FIFO_4TH_FULL = 3,
+ QUAD0_RD_LAT_FIFO_HALF_FULL = 4,
+ QUAD0_RD_LAT_FIFO_FULL = 5,
+ QUAD0_RD_LAT_FIFO_LT_4TH_FULL = 6,
+ reserved_07 = 7,
+ reserved_08 = 8,
+ reserved_09 = 9,
+ reserved_10 = 10,
+ reserved_11 = 11,
+ reserved_12 = 12,
+ reserved_13 = 13,
+ reserved_14 = 14,
+ reserved_15 = 15,
+ reserved_16 = 16,
+ reserved_17 = 17,
+ reserved_18 = 18,
+ reserved_19 = 19,
+ reserved_20 = 20,
+ reserved_21 = 21,
+ reserved_22 = 22,
+ reserved_23 = 23,
+ reserved_24 = 24,
+ reserved_25 = 25,
+ reserved_26 = 26,
+ reserved_27 = 27,
+ READ_STARVED_QUAD0 = 28,
+ reserved_29 = 29,
+ reserved_30 = 30,
+ reserved_31 = 31,
+ READ_STARVED = 32,
+ READ_STALLED_QUAD0 = 33,
+ reserved_34 = 34,
+ reserved_35 = 35,
+ reserved_36 = 36,
+ READ_STALLED = 37,
+ VALID_READ_QUAD0 = 38,
+ reserved_39 = 39,
+ reserved_40 = 40,
+ reserved_41 = 41,
+ TC_TP_STARVED_QUAD0 = 42,
+ reserved_43 = 43,
+ reserved_44 = 44,
+ reserved_45 = 45,
+ TC_TP_STARVED = 46,
+} TCM_PERFCOUNT_SELECT;
+#endif /*ENUMS_TCM_PERFCOUNT_SELECT_H*/
+
+#ifndef ENUMS_TCF_PERFCOUNT_SELECT_H
+#define ENUMS_TCF_PERFCOUNT_SELECT_H
+typedef enum TCF_PERFCOUNT_SELECT {
+ VALID_CYCLES = 0,
+ SINGLE_PHASES = 1,
+ ANISO_PHASES = 2,
+ MIP_PHASES = 3,
+ VOL_PHASES = 4,
+ MIP_VOL_PHASES = 5,
+ MIP_ANISO_PHASES = 6,
+ VOL_ANISO_PHASES = 7,
+ ANISO_2_1_PHASES = 8,
+ ANISO_4_1_PHASES = 9,
+ ANISO_6_1_PHASES = 10,
+ ANISO_8_1_PHASES = 11,
+ ANISO_10_1_PHASES = 12,
+ ANISO_12_1_PHASES = 13,
+ ANISO_14_1_PHASES = 14,
+ ANISO_16_1_PHASES = 15,
+ MIP_VOL_ANISO_PHASES = 16,
+ ALIGN_2_PHASES = 17,
+ ALIGN_4_PHASES = 18,
+ TPC_BUSY = 19,
+ TPC_STALLED = 20,
+ TPC_STARVED = 21,
+ TPC_WORKING = 22,
+ TPC_WALKER_BUSY = 23,
+ TPC_WALKER_STALLED = 24,
+ TPC_WALKER_WORKING = 25,
+ TPC_ALIGNER_BUSY = 26,
+ TPC_ALIGNER_STALLED = 27,
+ TPC_ALIGNER_STALLED_BY_BLEND = 28,
+ TPC_ALIGNER_STALLED_BY_CACHE = 29,
+ TPC_ALIGNER_WORKING = 30,
+ TPC_BLEND_BUSY = 31,
+ TPC_BLEND_SYNC = 32,
+ TPC_BLEND_STARVED = 33,
+ TPC_BLEND_WORKING = 34,
+ OPCODE_0x00 = 35,
+ OPCODE_0x01 = 36,
+ OPCODE_0x04 = 37,
+ OPCODE_0x10 = 38,
+ OPCODE_0x11 = 39,
+ OPCODE_0x12 = 40,
+ OPCODE_0x13 = 41,
+ OPCODE_0x18 = 42,
+ OPCODE_0x19 = 43,
+ OPCODE_0x1A = 44,
+ OPCODE_OTHER = 45,
+ IN_FIFO_0_EMPTY = 56,
+ IN_FIFO_0_LT_HALF_FULL = 57,
+ IN_FIFO_0_HALF_FULL = 58,
+ IN_FIFO_0_FULL = 59,
+ IN_FIFO_TPC_EMPTY = 72,
+ IN_FIFO_TPC_LT_HALF_FULL = 73,
+ IN_FIFO_TPC_HALF_FULL = 74,
+ IN_FIFO_TPC_FULL = 75,
+ TPC_TC_XFC = 76,
+ TPC_TC_STATE = 77,
+ TC_STALL = 78,
+ QUAD0_TAPS = 79,
+ QUADS = 83,
+ TCA_SYNC_STALL = 84,
+ TAG_STALL = 85,
+ TCB_SYNC_STALL = 88,
+ TCA_VALID = 89,
+ PROBES_VALID = 90,
+ MISS_STALL = 91,
+ FETCH_FIFO_STALL = 92,
+ TCO_STALL = 93,
+ ANY_STALL = 94,
+ TAG_MISSES = 95,
+ TAG_HITS = 96,
+ SUB_TAG_MISSES = 97,
+ SET0_INVALIDATES = 98,
+ SET1_INVALIDATES = 99,
+ SET2_INVALIDATES = 100,
+ SET3_INVALIDATES = 101,
+ SET0_TAG_MISSES = 102,
+ SET1_TAG_MISSES = 103,
+ SET2_TAG_MISSES = 104,
+ SET3_TAG_MISSES = 105,
+ SET0_TAG_HITS = 106,
+ SET1_TAG_HITS = 107,
+ SET2_TAG_HITS = 108,
+ SET3_TAG_HITS = 109,
+ SET0_SUB_TAG_MISSES = 110,
+ SET1_SUB_TAG_MISSES = 111,
+ SET2_SUB_TAG_MISSES = 112,
+ SET3_SUB_TAG_MISSES = 113,
+ SET0_EVICT1 = 114,
+ SET0_EVICT2 = 115,
+ SET0_EVICT3 = 116,
+ SET0_EVICT4 = 117,
+ SET0_EVICT5 = 118,
+ SET0_EVICT6 = 119,
+ SET0_EVICT7 = 120,
+ SET0_EVICT8 = 121,
+ SET1_EVICT1 = 130,
+ SET1_EVICT2 = 131,
+ SET1_EVICT3 = 132,
+ SET1_EVICT4 = 133,
+ SET1_EVICT5 = 134,
+ SET1_EVICT6 = 135,
+ SET1_EVICT7 = 136,
+ SET1_EVICT8 = 137,
+ SET2_EVICT1 = 146,
+ SET2_EVICT2 = 147,
+ SET2_EVICT3 = 148,
+ SET2_EVICT4 = 149,
+ SET2_EVICT5 = 150,
+ SET2_EVICT6 = 151,
+ SET2_EVICT7 = 152,
+ SET2_EVICT8 = 153,
+ SET3_EVICT1 = 162,
+ SET3_EVICT2 = 163,
+ SET3_EVICT3 = 164,
+ SET3_EVICT4 = 165,
+ SET3_EVICT5 = 166,
+ SET3_EVICT6 = 167,
+ SET3_EVICT7 = 168,
+ SET3_EVICT8 = 169,
+ FF_EMPTY = 178,
+ FF_LT_HALF_FULL = 179,
+ FF_HALF_FULL = 180,
+ FF_FULL = 181,
+ FF_XFC = 182,
+ FF_STALLED = 183,
+ FG_MASKS = 184,
+ FG_LEFT_MASKS = 185,
+ FG_LEFT_MASK_STALLED = 186,
+ FG_LEFT_NOT_DONE_STALL = 187,
+ FG_LEFT_FG_STALL = 188,
+ FG_LEFT_SECTORS = 189,
+ FG0_REQUESTS = 195,
+ FG0_STALLED = 196,
+ MEM_REQ512 = 199,
+ MEM_REQ_SENT = 200,
+ MEM_LOCAL_READ_REQ = 202,
+ TC0_MH_STALLED = 203,
+} TCF_PERFCOUNT_SELECT;
+#endif /*ENUMS_TCF_PERFCOUNT_SELECT_H*/
+
+/*******************************************************
+ * TC Enums
+ *******************************************************/
+/*******************************************************
+ * SQ Enums
+ *******************************************************/
+#ifndef ENUMS_SQ_PERFCNT_SELECT_H
+#define ENUMS_SQ_PERFCNT_SELECT_H
+typedef enum SQ_PERFCNT_SELECT {
+ SQ_PIXEL_VECTORS_SUB = 0,
+ SQ_VERTEX_VECTORS_SUB = 1,
+ SQ_ALU0_ACTIVE_VTX_SIMD0 = 2,
+ SQ_ALU1_ACTIVE_VTX_SIMD0 = 3,
+ SQ_ALU0_ACTIVE_PIX_SIMD0 = 4,
+ SQ_ALU1_ACTIVE_PIX_SIMD0 = 5,
+ SQ_ALU0_ACTIVE_VTX_SIMD1 = 6,
+ SQ_ALU1_ACTIVE_VTX_SIMD1 = 7,
+ SQ_ALU0_ACTIVE_PIX_SIMD1 = 8,
+ SQ_ALU1_ACTIVE_PIX_SIMD1 = 9,
+ SQ_EXPORT_CYCLES = 10,
+ SQ_ALU_CST_WRITTEN = 11,
+ SQ_TEX_CST_WRITTEN = 12,
+ SQ_ALU_CST_STALL = 13,
+ SQ_ALU_TEX_STALL = 14,
+ SQ_INST_WRITTEN = 15,
+ SQ_BOOLEAN_WRITTEN = 16,
+ SQ_LOOPS_WRITTEN = 17,
+ SQ_PIXEL_SWAP_IN = 18,
+ SQ_PIXEL_SWAP_OUT = 19,
+ SQ_VERTEX_SWAP_IN = 20,
+ SQ_VERTEX_SWAP_OUT = 21,
+ SQ_ALU_VTX_INST_ISSUED = 22,
+ SQ_TEX_VTX_INST_ISSUED = 23,
+ SQ_VC_VTX_INST_ISSUED = 24,
+ SQ_CF_VTX_INST_ISSUED = 25,
+ SQ_ALU_PIX_INST_ISSUED = 26,
+ SQ_TEX_PIX_INST_ISSUED = 27,
+ SQ_VC_PIX_INST_ISSUED = 28,
+ SQ_CF_PIX_INST_ISSUED = 29,
+ SQ_ALU0_FIFO_EMPTY_SIMD0 = 30,
+ SQ_ALU1_FIFO_EMPTY_SIMD0 = 31,
+ SQ_ALU0_FIFO_EMPTY_SIMD1 = 32,
+ SQ_ALU1_FIFO_EMPTY_SIMD1 = 33,
+ SQ_ALU_NOPS = 34,
+ SQ_PRED_SKIP = 35,
+ SQ_SYNC_ALU_STALL_SIMD0_VTX = 36,
+ SQ_SYNC_ALU_STALL_SIMD1_VTX = 37,
+ SQ_SYNC_TEX_STALL_VTX = 38,
+ SQ_SYNC_VC_STALL_VTX = 39,
+ SQ_CONSTANTS_USED_SIMD0 = 40,
+ SQ_CONSTANTS_SENT_SP_SIMD0 = 41,
+ SQ_GPR_STALL_VTX = 42,
+ SQ_GPR_STALL_PIX = 43,
+ SQ_VTX_RS_STALL = 44,
+ SQ_PIX_RS_STALL = 45,
+ SQ_SX_PC_FULL = 46,
+ SQ_SX_EXP_BUFF_FULL = 47,
+ SQ_SX_POS_BUFF_FULL = 48,
+ SQ_INTERP_QUADS = 49,
+ SQ_INTERP_ACTIVE = 50,
+ SQ_IN_PIXEL_STALL = 51,
+ SQ_IN_VTX_STALL = 52,
+ SQ_VTX_CNT = 53,
+ SQ_VTX_VECTOR2 = 54,
+ SQ_VTX_VECTOR3 = 55,
+ SQ_VTX_VECTOR4 = 56,
+ SQ_PIXEL_VECTOR1 = 57,
+ SQ_PIXEL_VECTOR23 = 58,
+ SQ_PIXEL_VECTOR4 = 59,
+ SQ_CONSTANTS_USED_SIMD1 = 60,
+ SQ_CONSTANTS_SENT_SP_SIMD1 = 61,
+ SQ_SX_MEM_EXP_FULL = 62,
+ SQ_ALU0_ACTIVE_VTX_SIMD2 = 63,
+ SQ_ALU1_ACTIVE_VTX_SIMD2 = 64,
+ SQ_ALU0_ACTIVE_PIX_SIMD2 = 65,
+ SQ_ALU1_ACTIVE_PIX_SIMD2 = 66,
+ SQ_ALU0_ACTIVE_VTX_SIMD3 = 67,
+ SQ_PERFCOUNT_VTX_QUAL_TP_DONE = 68,
+ SQ_ALU0_ACTIVE_PIX_SIMD3 = 69,
+ SQ_PERFCOUNT_PIX_QUAL_TP_DONE = 70,
+ SQ_ALU0_FIFO_EMPTY_SIMD2 = 71,
+ SQ_ALU1_FIFO_EMPTY_SIMD2 = 72,
+ SQ_ALU0_FIFO_EMPTY_SIMD3 = 73,
+ SQ_ALU1_FIFO_EMPTY_SIMD3 = 74,
+ SQ_SYNC_ALU_STALL_SIMD2_VTX = 75,
+ SQ_PERFCOUNT_VTX_POP_THREAD = 76,
+ SQ_SYNC_ALU_STALL_SIMD0_PIX = 77,
+ SQ_SYNC_ALU_STALL_SIMD1_PIX = 78,
+ SQ_SYNC_ALU_STALL_SIMD2_PIX = 79,
+ SQ_PERFCOUNT_PIX_POP_THREAD = 80,
+ SQ_SYNC_TEX_STALL_PIX = 81,
+ SQ_SYNC_VC_STALL_PIX = 82,
+ SQ_CONSTANTS_USED_SIMD2 = 83,
+ SQ_CONSTANTS_SENT_SP_SIMD2 = 84,
+ SQ_PERFCOUNT_VTX_DEALLOC_ACK = 85,
+ SQ_PERFCOUNT_PIX_DEALLOC_ACK = 86,
+ SQ_ALU0_FIFO_FULL_SIMD0 = 87,
+ SQ_ALU1_FIFO_FULL_SIMD0 = 88,
+ SQ_ALU0_FIFO_FULL_SIMD1 = 89,
+ SQ_ALU1_FIFO_FULL_SIMD1 = 90,
+ SQ_ALU0_FIFO_FULL_SIMD2 = 91,
+ SQ_ALU1_FIFO_FULL_SIMD2 = 92,
+ SQ_ALU0_FIFO_FULL_SIMD3 = 93,
+ SQ_ALU1_FIFO_FULL_SIMD3 = 94,
+ VC_PERF_STATIC = 95,
+ VC_PERF_STALLED = 96,
+ VC_PERF_STARVED = 97,
+ VC_PERF_SEND = 98,
+ VC_PERF_ACTUAL_STARVED = 99,
+ PIXEL_THREAD_0_ACTIVE = 100,
+ VERTEX_THREAD_0_ACTIVE = 101,
+ PIXEL_THREAD_0_NUMBER = 102,
+ VERTEX_THREAD_0_NUMBER = 103,
+ VERTEX_EVENT_NUMBER = 104,
+ PIXEL_EVENT_NUMBER = 105,
+ PTRBUFF_EF_PUSH = 106,
+ PTRBUFF_EF_POP_EVENT = 107,
+ PTRBUFF_EF_POP_NEW_VTX = 108,
+ PTRBUFF_EF_POP_DEALLOC = 109,
+ PTRBUFF_EF_POP_PVECTOR = 110,
+ PTRBUFF_EF_POP_PVECTOR_X = 111,
+ PTRBUFF_EF_POP_PVECTOR_VNZ = 112,
+ PTRBUFF_PB_DEALLOC = 113,
+ PTRBUFF_PI_STATE_PPB_POP = 114,
+ PTRBUFF_PI_RTR = 115,
+ PTRBUFF_PI_READ_EN = 116,
+ PTRBUFF_PI_BUFF_SWAP = 117,
+ PTRBUFF_SQ_FREE_BUFF = 118,
+ PTRBUFF_SQ_DEC = 119,
+ PTRBUFF_SC_VALID_CNTL_EVENT = 120,
+ PTRBUFF_SC_VALID_IJ_XFER = 121,
+ PTRBUFF_SC_NEW_VECTOR_1_Q = 122,
+ PTRBUFF_QUAL_NEW_VECTOR = 123,
+ PTRBUFF_QUAL_EVENT = 124,
+ PTRBUFF_END_BUFFER = 125,
+ PTRBUFF_FILL_QUAD = 126,
+ VERTS_WRITTEN_SPI = 127,
+ TP_FETCH_INSTR_EXEC = 128,
+ TP_FETCH_INSTR_REQ = 129,
+ TP_DATA_RETURN = 130,
+ SPI_WRITE_CYCLES_SP = 131,
+ SPI_WRITES_SP = 132,
+ SP_ALU_INSTR_EXEC = 133,
+ SP_CONST_ADDR_TO_SQ = 134,
+ SP_PRED_KILLS_TO_SQ = 135,
+ SP_EXPORT_CYCLES_TO_SX = 136,
+ SP_EXPORTS_TO_SX = 137,
+ SQ_CYCLES_ELAPSED = 138,
+ SQ_TCFS_OPT_ALLOC_EXEC = 139,
+ SQ_TCFS_NO_OPT_ALLOC = 140,
+ SQ_ALU0_NO_OPT_ALLOC = 141,
+ SQ_ALU1_NO_OPT_ALLOC = 142,
+ SQ_TCFS_ARB_XFC_CNT = 143,
+ SQ_ALU0_ARB_XFC_CNT = 144,
+ SQ_ALU1_ARB_XFC_CNT = 145,
+ SQ_TCFS_CFS_UPDATE_CNT = 146,
+ SQ_ALU0_CFS_UPDATE_CNT = 147,
+ SQ_ALU1_CFS_UPDATE_CNT = 148,
+ SQ_VTX_PUSH_THREAD_CNT = 149,
+ SQ_VTX_POP_THREAD_CNT = 150,
+ SQ_PIX_PUSH_THREAD_CNT = 151,
+ SQ_PIX_POP_THREAD_CNT = 152,
+ SQ_PIX_TOTAL = 153,
+ SQ_PIX_KILLED = 154,
+} SQ_PERFCNT_SELECT;
+#endif /*ENUMS_SQ_PERFCNT_SELECT_H*/
+
+#ifndef ENUMS_SX_PERFCNT_SELECT_H
+#define ENUMS_SX_PERFCNT_SELECT_H
+typedef enum SX_PERFCNT_SELECT {
+ SX_EXPORT_VECTORS = 0,
+ SX_DUMMY_QUADS = 1,
+ SX_ALPHA_FAIL = 2,
+ SX_RB_QUAD_BUSY = 3,
+ SX_RB_COLOR_BUSY = 4,
+ SX_RB_QUAD_STALL = 5,
+ SX_RB_COLOR_STALL = 6,
+} SX_PERFCNT_SELECT;
+#endif /*ENUMS_SX_PERFCNT_SELECT_H*/
+
+#ifndef ENUMS_Abs_modifier_H
+#define ENUMS_Abs_modifier_H
+typedef enum Abs_modifier {
+ NO_ABS_MOD = 0,
+ ABS_MOD = 1
+} Abs_modifier;
+#endif /*ENUMS_Abs_modifier_H*/
+
+#ifndef ENUMS_Exporting_H
+#define ENUMS_Exporting_H
+typedef enum Exporting {
+ NOT_EXPORTING = 0,
+ EXPORTING = 1
+} Exporting;
+#endif /*ENUMS_Exporting_H*/
+
+#ifndef ENUMS_ScalarOpcode_H
+#define ENUMS_ScalarOpcode_H
+typedef enum ScalarOpcode {
+ ADDs = 0,
+ ADD_PREVs = 1,
+ MULs = 2,
+ MUL_PREVs = 3,
+ MUL_PREV2s = 4,
+ MAXs = 5,
+ MINs = 6,
+ SETEs = 7,
+ SETGTs = 8,
+ SETGTEs = 9,
+ SETNEs = 10,
+ FRACs = 11,
+ TRUNCs = 12,
+ FLOORs = 13,
+ EXP_IEEE = 14,
+ LOG_CLAMP = 15,
+ LOG_IEEE = 16,
+ RECIP_CLAMP = 17,
+ RECIP_FF = 18,
+ RECIP_IEEE = 19,
+ RECIPSQ_CLAMP = 20,
+ RECIPSQ_FF = 21,
+ RECIPSQ_IEEE = 22,
+ MOVAs = 23,
+ MOVA_FLOORs = 24,
+ SUBs = 25,
+ SUB_PREVs = 26,
+ PRED_SETEs = 27,
+ PRED_SETNEs = 28,
+ PRED_SETGTs = 29,
+ PRED_SETGTEs = 30,
+ PRED_SET_INVs = 31,
+ PRED_SET_POPs = 32,
+ PRED_SET_CLRs = 33,
+ PRED_SET_RESTOREs = 34,
+ KILLEs = 35,
+ KILLGTs = 36,
+ KILLGTEs = 37,
+ KILLNEs = 38,
+ KILLONEs = 39,
+ SQRT_IEEE = 40,
+ MUL_CONST_0 = 42,
+ MUL_CONST_1 = 43,
+ ADD_CONST_0 = 44,
+ ADD_CONST_1 = 45,
+ SUB_CONST_0 = 46,
+ SUB_CONST_1 = 47,
+ SIN = 48,
+ COS = 49,
+ RETAIN_PREV = 50,
+} ScalarOpcode;
+#endif /*ENUMS_ScalarOpcode_H*/
+
+#ifndef ENUMS_SwizzleType_H
+#define ENUMS_SwizzleType_H
+typedef enum SwizzleType {
+ NO_SWIZZLE = 0,
+ SHIFT_RIGHT_1 = 1,
+ SHIFT_RIGHT_2 = 2,
+ SHIFT_RIGHT_3 = 3
+} SwizzleType;
+#endif /*ENUMS_SwizzleType_H*/
+
+#ifndef ENUMS_InputModifier_H
+#define ENUMS_InputModifier_H
+typedef enum InputModifier {
+ NIL = 0,
+ NEGATE = 1
+} InputModifier;
+#endif /*ENUMS_InputModifier_H*/
+
+#ifndef ENUMS_PredicateSelect_H
+#define ENUMS_PredicateSelect_H
+typedef enum PredicateSelect {
+ NO_PREDICATION = 0,
+ PREDICATE_QUAD = 1,
+ PREDICATED_2 = 2,
+ PREDICATED_3 = 3
+} PredicateSelect;
+#endif /*ENUMS_PredicateSelect_H*/
+
+#ifndef ENUMS_OperandSelect1_H
+#define ENUMS_OperandSelect1_H
+typedef enum OperandSelect1 {
+ ABSOLUTE_REG = 0,
+ RELATIVE_REG = 1
+} OperandSelect1;
+#endif /*ENUMS_OperandSelect1_H*/
+
+#ifndef ENUMS_VectorOpcode_H
+#define ENUMS_VectorOpcode_H
+typedef enum VectorOpcode {
+ ADDv = 0,
+ MULv = 1,
+ MAXv = 2,
+ MINv = 3,
+ SETEv = 4,
+ SETGTv = 5,
+ SETGTEv = 6,
+ SETNEv = 7,
+ FRACv = 8,
+ TRUNCv = 9,
+ FLOORv = 10,
+ MULADDv = 11,
+ CNDEv = 12,
+ CNDGTEv = 13,
+ CNDGTv = 14,
+ DOT4v = 15,
+ DOT3v = 16,
+ DOT2ADDv = 17,
+ CUBEv = 18,
+ MAX4v = 19,
+ PRED_SETE_PUSHv = 20,
+ PRED_SETNE_PUSHv = 21,
+ PRED_SETGT_PUSHv = 22,
+ PRED_SETGTE_PUSHv = 23,
+ KILLEv = 24,
+ KILLGTv = 25,
+ KILLGTEv = 26,
+ KILLNEv = 27,
+ DSTv = 28,
+ MOVAv = 29,
+} VectorOpcode;
+#endif /*ENUMS_VectorOpcode_H*/
+
+#ifndef ENUMS_OperandSelect0_H
+#define ENUMS_OperandSelect0_H
+typedef enum OperandSelect0 {
+ CONSTANT = 0,
+ NON_CONSTANT = 1
+} OperandSelect0;
+#endif /*ENUMS_OperandSelect0_H*/
+
+#ifndef ENUMS_Ressource_type_H
+#define ENUMS_Ressource_type_H
+typedef enum Ressource_type {
+ ALU = 0,
+ TEXTURE = 1
+} Ressource_type;
+#endif /*ENUMS_Ressource_type_H*/
+
+#ifndef ENUMS_Instruction_serial_H
+#define ENUMS_Instruction_serial_H
+typedef enum Instruction_serial {
+ NOT_SERIAL = 0,
+ SERIAL = 1
+} Instruction_serial;
+#endif /*ENUMS_Instruction_serial_H*/
+
+#ifndef ENUMS_VC_type_H
+#define ENUMS_VC_type_H
+typedef enum VC_type {
+ ALU_TP_REQUEST = 0,
+ VC_REQUEST = 1
+} VC_type;
+#endif /*ENUMS_VC_type_H*/
+
+#ifndef ENUMS_Addressing_H
+#define ENUMS_Addressing_H
+typedef enum Addressing {
+ RELATIVE_ADDR = 0,
+ ABSOLUTE_ADDR = 1
+} Addressing;
+#endif /*ENUMS_Addressing_H*/
+
+#ifndef ENUMS_CFOpcode_H
+#define ENUMS_CFOpcode_H
+typedef enum CFOpcode {
+ NOP = 0,
+ EXECUTE = 1,
+ EXECUTE_END = 2,
+ COND_EXECUTE = 3,
+ COND_EXECUTE_END = 4,
+ COND_PRED_EXECUTE = 5,
+ COND_PRED_EXECUTE_END = 6,
+ LOOP_START = 7,
+ LOOP_END = 8,
+ COND_CALL = 9,
+ RETURN = 10,
+ COND_JMP = 11,
+ ALLOCATE = 12,
+ COND_EXECUTE_PRED_CLEAN = 13,
+ COND_EXECUTE_PRED_CLEAN_END = 14,
+ MARK_VS_FETCH_DONE = 15
+} CFOpcode;
+#endif /*ENUMS_CFOpcode_H*/
+
+#ifndef ENUMS_Allocation_type_H
+#define ENUMS_Allocation_type_H
+typedef enum Allocation_type {
+ SQ_NO_ALLOC = 0,
+ SQ_POSITION = 1,
+ SQ_PARAMETER_PIXEL = 2,
+ SQ_MEMORY = 3
+} Allocation_type;
+#endif /*ENUMS_Allocation_type_H*/
+
+#ifndef ENUMS_TexInstOpcode_H
+#define ENUMS_TexInstOpcode_H
+typedef enum TexInstOpcode {
+ TEX_INST_FETCH = 1,
+ TEX_INST_RESERVED_1 = 2,
+ TEX_INST_RESERVED_2 = 3,
+ TEX_INST_RESERVED_3 = 4,
+ TEX_INST_GET_BORDER_COLOR_FRAC = 16,
+ TEX_INST_GET_COMP_TEX_LOD = 17,
+ TEX_INST_GET_GRADIENTS = 18,
+ TEX_INST_GET_WEIGHTS = 19,
+ TEX_INST_SET_TEX_LOD = 24,
+ TEX_INST_SET_GRADIENTS_H = 25,
+ TEX_INST_SET_GRADIENTS_V = 26,
+ TEX_INST_RESERVED_4 = 27,
+} TexInstOpcode;
+#endif /*ENUMS_TexInstOpcode_H*/
+
+#ifndef ENUMS_Addressmode_H
+#define ENUMS_Addressmode_H
+typedef enum Addressmode {
+ LOGICAL = 0,
+ LOOP_RELATIVE = 1
+} Addressmode;
+#endif /*ENUMS_Addressmode_H*/
+
+#ifndef ENUMS_TexCoordDenorm_H
+#define ENUMS_TexCoordDenorm_H
+typedef enum TexCoordDenorm {
+ TEX_COORD_NORMALIZED = 0,
+ TEX_COORD_UNNORMALIZED = 1
+} TexCoordDenorm;
+#endif /*ENUMS_TexCoordDenorm_H*/
+
+#ifndef ENUMS_SrcSel_H
+#define ENUMS_SrcSel_H
+typedef enum SrcSel {
+ SRC_SEL_X = 0,
+ SRC_SEL_Y = 1,
+ SRC_SEL_Z = 2,
+ SRC_SEL_W = 3
+} SrcSel;
+#endif /*ENUMS_SrcSel_H*/
+
+#ifndef ENUMS_DstSel_H
+#define ENUMS_DstSel_H
+typedef enum DstSel {
+ DST_SEL_X = 0,
+ DST_SEL_Y = 1,
+ DST_SEL_Z = 2,
+ DST_SEL_W = 3,
+ DST_SEL_0 = 4,
+ DST_SEL_1 = 5,
+ DST_SEL_RSVD = 6,
+ DST_SEL_MASK = 7
+} DstSel;
+#endif /*ENUMS_DstSel_H*/
+
+#ifndef ENUMS_MagFilter_H
+#define ENUMS_MagFilter_H
+typedef enum MagFilter {
+ MAG_FILTER_POINT = 0,
+ MAG_FILTER_LINEAR = 1,
+ MAG_FILTER_RESERVED_0 = 2,
+ MAG_FILTER_USE_FETCH_CONST = 3
+} MagFilter;
+#endif /*ENUMS_MagFilter_H*/
+
+#ifndef ENUMS_MinFilter_H
+#define ENUMS_MinFilter_H
+typedef enum MinFilter {
+ MIN_FILTER_POINT = 0,
+ MIN_FILTER_LINEAR = 1,
+ MIN_FILTER_RESERVED_0 = 2,
+ MIN_FILTER_USE_FETCH_CONST = 3
+} MinFilter;
+#endif /*ENUMS_MinFilter_H*/
+
+#ifndef ENUMS_MipFilter_H
+#define ENUMS_MipFilter_H
+typedef enum MipFilter {
+ MIP_FILTER_POINT = 0,
+ MIP_FILTER_LINEAR = 1,
+ MIP_FILTER_BASEMAP = 2,
+ MIP_FILTER_USE_FETCH_CONST = 3
+} MipFilter;
+#endif /*ENUMS_MipFilter_H*/
+
+#ifndef ENUMS_AnisoFilter_H
+#define ENUMS_AnisoFilter_H
+typedef enum AnisoFilter {
+ ANISO_FILTER_DISABLED = 0,
+ ANISO_FILTER_MAX_1_1 = 1,
+ ANISO_FILTER_MAX_2_1 = 2,
+ ANISO_FILTER_MAX_4_1 = 3,
+ ANISO_FILTER_MAX_8_1 = 4,
+ ANISO_FILTER_MAX_16_1 = 5,
+ ANISO_FILTER_USE_FETCH_CONST = 7
+} AnisoFilter;
+#endif /*ENUMS_AnisoFilter_H*/
+
+#ifndef ENUMS_ArbitraryFilter_H
+#define ENUMS_ArbitraryFilter_H
+typedef enum ArbitraryFilter {
+ ARBITRARY_FILTER_2X4_SYM = 0,
+ ARBITRARY_FILTER_2X4_ASYM = 1,
+ ARBITRARY_FILTER_4X2_SYM = 2,
+ ARBITRARY_FILTER_4X2_ASYM = 3,
+ ARBITRARY_FILTER_4X4_SYM = 4,
+ ARBITRARY_FILTER_4X4_ASYM = 5,
+ ARBITRARY_FILTER_USE_FETCH_CONST = 7
+} ArbitraryFilter;
+#endif /*ENUMS_ArbitraryFilter_H*/
+
+#ifndef ENUMS_VolMagFilter_H
+#define ENUMS_VolMagFilter_H
+typedef enum VolMagFilter {
+ VOL_MAG_FILTER_POINT = 0,
+ VOL_MAG_FILTER_LINEAR = 1,
+ VOL_MAG_FILTER_USE_FETCH_CONST = 3
+} VolMagFilter;
+#endif /*ENUMS_VolMagFilter_H*/
+
+#ifndef ENUMS_VolMinFilter_H
+#define ENUMS_VolMinFilter_H
+typedef enum VolMinFilter {
+ VOL_MIN_FILTER_POINT = 0,
+ VOL_MIN_FILTER_LINEAR = 1,
+ VOL_MIN_FILTER_USE_FETCH_CONST = 3
+} VolMinFilter;
+#endif /*ENUMS_VolMinFilter_H*/
+
+#ifndef ENUMS_PredSelect_H
+#define ENUMS_PredSelect_H
+typedef enum PredSelect {
+ NOT_PREDICATED = 0,
+ PREDICATED = 1
+} PredSelect;
+#endif /*ENUMS_PredSelect_H*/
+
+#ifndef ENUMS_SampleLocation_H
+#define ENUMS_SampleLocation_H
+typedef enum SampleLocation {
+ SAMPLE_CENTROID = 0,
+ SAMPLE_CENTER = 1
+} SampleLocation;
+#endif /*ENUMS_SampleLocation_H*/
+
+#ifndef ENUMS_VertexMode_H
+#define ENUMS_VertexMode_H
+typedef enum VertexMode {
+ POSITION_1_VECTOR = 0,
+ POSITION_2_VECTORS_UNUSED = 1,
+ POSITION_2_VECTORS_SPRITE = 2,
+ POSITION_2_VECTORS_EDGE = 3,
+ POSITION_2_VECTORS_KILL = 4,
+ POSITION_2_VECTORS_SPRITE_KILL = 5,
+ POSITION_2_VECTORS_EDGE_KILL = 6,
+ MULTIPASS = 7
+} VertexMode;
+#endif /*ENUMS_VertexMode_H*/
+
+#ifndef ENUMS_Sample_Cntl_H
+#define ENUMS_Sample_Cntl_H
+typedef enum Sample_Cntl {
+ CENTROIDS_ONLY = 0,
+ CENTERS_ONLY = 1,
+ CENTROIDS_AND_CENTERS = 2,
+ UNDEF = 3
+} Sample_Cntl;
+#endif /*ENUMS_Sample_Cntl_H*/
+
+/*******************************************************
+ * SX Enums
+ *******************************************************/
+/*******************************************************
+ * MH Enums
+ *******************************************************/
+#ifndef ENUMS_MhPerfEncode_H
+#define ENUMS_MhPerfEncode_H
+typedef enum MhPerfEncode {
+ CP_R0_REQUESTS = 0,
+ CP_R1_REQUESTS = 1,
+ CP_R2_REQUESTS = 2,
+ CP_R3_REQUESTS = 3,
+ CP_R4_REQUESTS = 4,
+ CP_TOTAL_READ_REQUESTS = 5,
+ CP_TOTAL_WRITE_REQUESTS = 6,
+ CP_TOTAL_REQUESTS = 7,
+ CP_DATA_BYTES_WRITTEN = 8,
+ CP_WRITE_CLEAN_RESPONSES = 9,
+ CP_R0_READ_BURSTS_RECEIVED = 10,
+ CP_R1_READ_BURSTS_RECEIVED = 11,
+ CP_R2_READ_BURSTS_RECEIVED = 12,
+ CP_R3_READ_BURSTS_RECEIVED = 13,
+ CP_R4_READ_BURSTS_RECEIVED = 14,
+ CP_TOTAL_READ_BURSTS_RECEIVED = 15,
+ CP_R0_DATA_BEATS_READ = 16,
+ CP_R1_DATA_BEATS_READ = 17,
+ CP_R2_DATA_BEATS_READ = 18,
+ CP_R3_DATA_BEATS_READ = 19,
+ CP_R4_DATA_BEATS_READ = 20,
+ CP_TOTAL_DATA_BEATS_READ = 21,
+ VGT_R0_REQUESTS = 22,
+ VGT_R1_REQUESTS = 23,
+ VGT_TOTAL_REQUESTS = 24,
+ VGT_R0_READ_BURSTS_RECEIVED = 25,
+ VGT_R1_READ_BURSTS_RECEIVED = 26,
+ VGT_TOTAL_READ_BURSTS_RECEIVED = 27,
+ VGT_R0_DATA_BEATS_READ = 28,
+ VGT_R1_DATA_BEATS_READ = 29,
+ VGT_TOTAL_DATA_BEATS_READ = 30,
+ TC_TOTAL_REQUESTS = 31,
+ TC_ROQ_REQUESTS = 32,
+ TC_INFO_SENT = 33,
+ TC_READ_BURSTS_RECEIVED = 34,
+ TC_DATA_BEATS_READ = 35,
+ TCD_BURSTS_READ = 36,
+ RB_REQUESTS = 37,
+ RB_DATA_BYTES_WRITTEN = 38,
+ RB_WRITE_CLEAN_RESPONSES = 39,
+ AXI_READ_REQUESTS_ID_0 = 40,
+ AXI_READ_REQUESTS_ID_1 = 41,
+ AXI_READ_REQUESTS_ID_2 = 42,
+ AXI_READ_REQUESTS_ID_3 = 43,
+ AXI_READ_REQUESTS_ID_4 = 44,
+ AXI_READ_REQUESTS_ID_5 = 45,
+ AXI_READ_REQUESTS_ID_6 = 46,
+ AXI_READ_REQUESTS_ID_7 = 47,
+ AXI_TOTAL_READ_REQUESTS = 48,
+ AXI_WRITE_REQUESTS_ID_0 = 49,
+ AXI_WRITE_REQUESTS_ID_1 = 50,
+ AXI_WRITE_REQUESTS_ID_2 = 51,
+ AXI_WRITE_REQUESTS_ID_3 = 52,
+ AXI_WRITE_REQUESTS_ID_4 = 53,
+ AXI_WRITE_REQUESTS_ID_5 = 54,
+ AXI_WRITE_REQUESTS_ID_6 = 55,
+ AXI_WRITE_REQUESTS_ID_7 = 56,
+ AXI_TOTAL_WRITE_REQUESTS = 57,
+ AXI_TOTAL_REQUESTS_ID_0 = 58,
+ AXI_TOTAL_REQUESTS_ID_1 = 59,
+ AXI_TOTAL_REQUESTS_ID_2 = 60,
+ AXI_TOTAL_REQUESTS_ID_3 = 61,
+ AXI_TOTAL_REQUESTS_ID_4 = 62,
+ AXI_TOTAL_REQUESTS_ID_5 = 63,
+ AXI_TOTAL_REQUESTS_ID_6 = 64,
+ AXI_TOTAL_REQUESTS_ID_7 = 65,
+ AXI_TOTAL_REQUESTS = 66,
+ AXI_READ_CHANNEL_BURSTS_ID_0 = 67,
+ AXI_READ_CHANNEL_BURSTS_ID_1 = 68,
+ AXI_READ_CHANNEL_BURSTS_ID_2 = 69,
+ AXI_READ_CHANNEL_BURSTS_ID_3 = 70,
+ AXI_READ_CHANNEL_BURSTS_ID_4 = 71,
+ AXI_READ_CHANNEL_BURSTS_ID_5 = 72,
+ AXI_READ_CHANNEL_BURSTS_ID_6 = 73,
+ AXI_READ_CHANNEL_BURSTS_ID_7 = 74,
+ AXI_READ_CHANNEL_TOTAL_BURSTS = 75,
+ AXI_READ_CHANNEL_DATA_BEATS_READ_ID_0 = 76,
+ AXI_READ_CHANNEL_DATA_BEATS_READ_ID_1 = 77,
+ AXI_READ_CHANNEL_DATA_BEATS_READ_ID_2 = 78,
+ AXI_READ_CHANNEL_DATA_BEATS_READ_ID_3 = 79,
+ AXI_READ_CHANNEL_DATA_BEATS_READ_ID_4 = 80,
+ AXI_READ_CHANNEL_DATA_BEATS_READ_ID_5 = 81,
+ AXI_READ_CHANNEL_DATA_BEATS_READ_ID_6 = 82,
+ AXI_READ_CHANNEL_DATA_BEATS_READ_ID_7 = 83,
+ AXI_READ_CHANNEL_TOTAL_DATA_BEATS_READ = 84,
+ AXI_WRITE_CHANNEL_BURSTS_ID_0 = 85,
+ AXI_WRITE_CHANNEL_BURSTS_ID_1 = 86,
+ AXI_WRITE_CHANNEL_BURSTS_ID_2 = 87,
+ AXI_WRITE_CHANNEL_BURSTS_ID_3 = 88,
+ AXI_WRITE_CHANNEL_BURSTS_ID_4 = 89,
+ AXI_WRITE_CHANNEL_BURSTS_ID_5 = 90,
+ AXI_WRITE_CHANNEL_BURSTS_ID_6 = 91,
+ AXI_WRITE_CHANNEL_BURSTS_ID_7 = 92,
+ AXI_WRITE_CHANNEL_TOTAL_BURSTS = 93,
+ AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_0 = 94,
+ AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_1 = 95,
+ AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_2 = 96,
+ AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_3 = 97,
+ AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_4 = 98,
+ AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_5 = 99,
+ AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_6 = 100,
+ AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_7 = 101,
+ AXI_WRITE_CHANNEL_TOTAL_DATA_BYTES_WRITTEN = 102,
+ AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_0 = 103,
+ AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_1 = 104,
+ AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_2 = 105,
+ AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_3 = 106,
+ AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_4 = 107,
+ AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_5 = 108,
+ AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_6 = 109,
+ AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_7 = 110,
+ AXI_WRITE_RESPONSE_CHANNEL_TOTAL_RESPONSES = 111,
+ TOTAL_MMU_MISSES = 112,
+ MMU_READ_MISSES = 113,
+ MMU_WRITE_MISSES = 114,
+ TOTAL_MMU_HITS = 115,
+ MMU_READ_HITS = 116,
+ MMU_WRITE_HITS = 117,
+ SPLIT_MODE_TC_HITS = 118,
+ SPLIT_MODE_TC_MISSES = 119,
+ SPLIT_MODE_NON_TC_HITS = 120,
+ SPLIT_MODE_NON_TC_MISSES = 121,
+ STALL_AWAITING_TLB_MISS_FETCH = 122,
+ MMU_TLB_MISS_READ_BURSTS_RECEIVED = 123,
+ MMU_TLB_MISS_DATA_BEATS_READ = 124,
+ CP_CYCLES_HELD_OFF = 125,
+ VGT_CYCLES_HELD_OFF = 126,
+ TC_CYCLES_HELD_OFF = 127,
+ TC_ROQ_CYCLES_HELD_OFF = 128,
+ TC_CYCLES_HELD_OFF_TCD_FULL = 129,
+ RB_CYCLES_HELD_OFF = 130,
+ TOTAL_CYCLES_ANY_CLNT_HELD_OFF = 131,
+ TLB_MISS_CYCLES_HELD_OFF = 132,
+ AXI_READ_REQUEST_HELD_OFF = 133,
+ AXI_WRITE_REQUEST_HELD_OFF = 134,
+ AXI_REQUEST_HELD_OFF = 135,
+ AXI_REQUEST_HELD_OFF_INFLIGHT_LIMIT = 136,
+ AXI_WRITE_DATA_HELD_OFF = 137,
+ CP_SAME_PAGE_BANK_REQUESTS = 138,
+ VGT_SAME_PAGE_BANK_REQUESTS = 139,
+ TC_SAME_PAGE_BANK_REQUESTS = 140,
+ TC_ARB_HOLD_SAME_PAGE_BANK_REQUESTS = 141,
+ RB_SAME_PAGE_BANK_REQUESTS = 142,
+ TOTAL_SAME_PAGE_BANK_REQUESTS = 143,
+ CP_SAME_PAGE_BANK_REQUESTS_KILLED_FAIRNESS_LIMIT = 144,
+ VGT_SAME_PAGE_BANK_REQUESTS_KILLED_FAIRNESS_LIMIT = 145,
+ TC_SAME_PAGE_BANK_REQUESTS_KILLED_FAIRNESS_LIMIT = 146,
+ RB_SAME_PAGE_BANK_REQUESTS_KILLED_FAIRNESS_LIMIT = 147,
+ TOTAL_SAME_PAGE_BANK_KILLED_FAIRNESS_LIMIT = 148,
+ TOTAL_MH_READ_REQUESTS = 149,
+ TOTAL_MH_WRITE_REQUESTS = 150,
+ TOTAL_MH_REQUESTS = 151,
+ MH_BUSY = 152,
+ CP_NTH_ACCESS_SAME_PAGE_BANK_SEQUENCE = 153,
+ VGT_NTH_ACCESS_SAME_PAGE_BANK_SEQUENCE = 154,
+ TC_NTH_ACCESS_SAME_PAGE_BANK_SEQUENCE = 155,
+ RB_NTH_ACCESS_SAME_PAGE_BANK_SEQUENCE = 156,
+ TC_ROQ_N_VALID_ENTRIES = 157,
+ ARQ_N_ENTRIES = 158,
+ WDB_N_ENTRIES = 159,
+ MH_READ_LATENCY_OUTST_REQ_SUM = 160,
+ MC_READ_LATENCY_OUTST_REQ_SUM = 161,
+ MC_TOTAL_READ_REQUESTS = 162,
+ ELAPSED_CYCLES_MH_GATED_CLK = 163,
+ ELAPSED_CLK_CYCLES = 164,
+ CP_W_16B_REQUESTS = 165,
+ CP_W_32B_REQUESTS = 166,
+ TC_16B_REQUESTS = 167,
+ TC_32B_REQUESTS = 168,
+ PA_REQUESTS = 169,
+ PA_DATA_BYTES_WRITTEN = 170,
+ PA_WRITE_CLEAN_RESPONSES = 171,
+ PA_CYCLES_HELD_OFF = 172,
+ AXI_READ_REQUEST_DATA_BEATS_ID_0 = 173,
+ AXI_READ_REQUEST_DATA_BEATS_ID_1 = 174,
+ AXI_READ_REQUEST_DATA_BEATS_ID_2 = 175,
+ AXI_READ_REQUEST_DATA_BEATS_ID_3 = 176,
+ AXI_READ_REQUEST_DATA_BEATS_ID_4 = 177,
+ AXI_READ_REQUEST_DATA_BEATS_ID_5 = 178,
+ AXI_READ_REQUEST_DATA_BEATS_ID_6 = 179,
+ AXI_READ_REQUEST_DATA_BEATS_ID_7 = 180,
+ AXI_TOTAL_READ_REQUEST_DATA_BEATS = 181,
+} MhPerfEncode;
+#endif /*ENUMS_MhPerfEncode_H*/
+
+#ifndef ENUMS_MmuClntBeh_H
+#define ENUMS_MmuClntBeh_H
+typedef enum MmuClntBeh {
+ BEH_NEVR = 0,
+ BEH_TRAN_RNG = 1,
+ BEH_TRAN_FLT = 2,
+} MmuClntBeh;
+#endif /*ENUMS_MmuClntBeh_H*/
+
+/*******************************************************
+ * RBBM Enums
+ *******************************************************/
+#ifndef ENUMS_RBBM_PERFCOUNT1_SEL_H
+#define ENUMS_RBBM_PERFCOUNT1_SEL_H
+typedef enum RBBM_PERFCOUNT1_SEL {
+ RBBM1_COUNT = 0,
+ RBBM1_NRT_BUSY = 1,
+ RBBM1_RB_BUSY = 2,
+ RBBM1_SQ_CNTX0_BUSY = 3,
+ RBBM1_SQ_CNTX17_BUSY = 4,
+ RBBM1_VGT_BUSY = 5,
+ RBBM1_VGT_NODMA_BUSY = 6,
+ RBBM1_PA_BUSY = 7,
+ RBBM1_SC_CNTX_BUSY = 8,
+ RBBM1_TPC_BUSY = 9,
+ RBBM1_TC_BUSY = 10,
+ RBBM1_SX_BUSY = 11,
+ RBBM1_CP_COHER_BUSY = 12,
+ RBBM1_CP_NRT_BUSY = 13,
+ RBBM1_GFX_IDLE_STALL = 14,
+ RBBM1_INTERRUPT = 15,
+} RBBM_PERFCOUNT1_SEL;
+#endif /*ENUMS_RBBM_PERFCOUNT1_SEL_H*/
+
+/*******************************************************
+ * CP Enums
+ *******************************************************/
+#ifndef ENUMS_CP_PERFCOUNT_SEL_H
+#define ENUMS_CP_PERFCOUNT_SEL_H
+typedef enum CP_PERFCOUNT_SEL {
+ ALWAYS_COUNT = 0,
+ TRANS_FIFO_FULL = 1,
+ TRANS_FIFO_AF = 2,
+ RCIU_PFPTRANS_WAIT = 3,
+ Reserved_04 = 4,
+ Reserved_05 = 5,
+ RCIU_NRTTRANS_WAIT = 6,
+ Reserved_07 = 7,
+ CSF_NRT_READ_WAIT = 8,
+ CSF_I1_FIFO_FULL = 9,
+ CSF_I2_FIFO_FULL = 10,
+ CSF_ST_FIFO_FULL = 11,
+ Reserved_12 = 12,
+ CSF_RING_ROQ_FULL = 13,
+ CSF_I1_ROQ_FULL = 14,
+ CSF_I2_ROQ_FULL = 15,
+ CSF_ST_ROQ_FULL = 16,
+ Reserved_17 = 17,
+ MIU_TAG_MEM_FULL = 18,
+ MIU_WRITECLEAN = 19,
+ Reserved_20 = 20,
+ Reserved_21 = 21,
+ MIU_NRT_WRITE_STALLED = 22,
+ MIU_NRT_READ_STALLED = 23,
+ ME_WRITE_CONFIRM_FIFO_FULL = 24,
+ ME_VS_DEALLOC_FIFO_FULL = 25,
+ ME_PS_DEALLOC_FIFO_FULL = 26,
+ ME_REGS_VS_EVENT_FIFO_FULL = 27,
+ ME_REGS_PS_EVENT_FIFO_FULL = 28,
+ ME_REGS_CF_EVENT_FIFO_FULL = 29,
+ ME_MICRO_RB_STARVED = 30,
+ ME_MICRO_I1_STARVED = 31,
+ ME_MICRO_I2_STARVED = 32,
+ ME_MICRO_ST_STARVED = 33,
+ Reserved_34 = 34,
+ Reserved_35 = 35,
+ Reserved_36 = 36,
+ Reserved_37 = 37,
+ Reserved_38 = 38,
+ Reserved_39 = 39,
+ RCIU_RBBM_DWORD_SENT = 40,
+ ME_BUSY_CLOCKS = 41,
+ ME_WAIT_CONTEXT_AVAIL = 42,
+ PFP_TYPE0_PACKET = 43,
+ PFP_TYPE3_PACKET = 44,
+ CSF_RB_WPTR_NEQ_RPTR = 45,
+ CSF_I1_SIZE_NEQ_ZERO = 46,
+ CSF_I2_SIZE_NEQ_ZERO = 47,
+ CSF_RBI1I2_FETCHING = 48,
+ Reserved_49 = 49,
+ Reserved_50 = 50,
+ Reserved_51 = 51,
+ Reserved_52 = 52,
+ Reserved_53 = 53,
+ Reserved_54 = 54,
+ Reserved_55 = 55,
+ Reserved_56 = 56,
+ Reserved_57 = 57,
+ Reserved_58 = 58,
+ Reserved_59 = 59,
+ Reserved_60 = 60,
+ Reserved_61 = 61,
+ Reserved_62 = 62,
+ Reserved_63 = 63
+} CP_PERFCOUNT_SEL;
+#endif /*ENUMS_CP_PERFCOUNT_SEL_H*/
+
+/*******************************************************
+ * SC Enums
+ *******************************************************/
+/*******************************************************
+ * BC Enums
+ *******************************************************/
+#ifndef ENUMS_ColorformatX_H
+#define ENUMS_ColorformatX_H
+typedef enum ColorformatX {
+ COLORX_4_4_4_4 = 0,
+ COLORX_1_5_5_5 = 1,
+ COLORX_5_6_5 = 2,
+ COLORX_8 = 3,
+ COLORX_8_8 = 4,
+ COLORX_8_8_8_8 = 5,
+ COLORX_S8_8_8_8 = 6,
+ COLORX_16_FLOAT = 7,
+ COLORX_16_16_FLOAT = 8,
+ COLORX_16_16_16_16_FLOAT = 9,
+ COLORX_32_FLOAT = 10,
+ COLORX_32_32_FLOAT = 11,
+ COLORX_32_32_32_32_FLOAT = 12,
+ COLORX_2_3_3 = 13,
+ COLORX_8_8_8 = 14,
+} ColorformatX;
+#endif /*ENUMS_ColorformatX_H*/
+
+#ifndef ENUMS_DepthformatX_H
+#define ENUMS_DepthformatX_H
+typedef enum DepthformatX {
+ DEPTHX_16 = 0,
+ DEPTHX_24_8 = 1
+} DepthformatX;
+#endif /*ENUMS_DepthformatX_H*/
+
+#ifndef ENUMS_CompareFrag_H
+#define ENUMS_CompareFrag_H
+typedef enum CompareFrag {
+ FRAG_NEVER = 0,
+ FRAG_LESS = 1,
+ FRAG_EQUAL = 2,
+ FRAG_LEQUAL = 3,
+ FRAG_GREATER = 4,
+ FRAG_NOTEQUAL = 5,
+ FRAG_GEQUAL = 6,
+ FRAG_ALWAYS = 7
+} CompareFrag;
+#endif /*ENUMS_CompareFrag_H*/
+
+#ifndef ENUMS_CompareRef_H
+#define ENUMS_CompareRef_H
+typedef enum CompareRef {
+ REF_NEVER = 0,
+ REF_LESS = 1,
+ REF_EQUAL = 2,
+ REF_LEQUAL = 3,
+ REF_GREATER = 4,
+ REF_NOTEQUAL = 5,
+ REF_GEQUAL = 6,
+ REF_ALWAYS = 7
+} CompareRef;
+#endif /*ENUMS_CompareRef_H*/
+
+#ifndef ENUMS_StencilOp_H
+#define ENUMS_StencilOp_H
+typedef enum StencilOp {
+ STENCIL_KEEP = 0,
+ STENCIL_ZERO = 1,
+ STENCIL_REPLACE = 2,
+ STENCIL_INCR_CLAMP = 3,
+ STENCIL_DECR_CLAMP = 4,
+ STENCIL_INVERT = 5,
+ STENCIL_INCR_WRAP = 6,
+ STENCIL_DECR_WRAP = 7
+} StencilOp;
+#endif /*ENUMS_StencilOp_H*/
+
+#ifndef ENUMS_BlendOpX_H
+#define ENUMS_BlendOpX_H
+typedef enum BlendOpX {
+ BLENDX_ZERO = 0,
+ BLENDX_ONE = 1,
+ BLENDX_SRC_COLOR = 4,
+ BLENDX_ONE_MINUS_SRC_COLOR = 5,
+ BLENDX_SRC_ALPHA = 6,
+ BLENDX_ONE_MINUS_SRC_ALPHA = 7,
+ BLENDX_DST_COLOR = 8,
+ BLENDX_ONE_MINUS_DST_COLOR = 9,
+ BLENDX_DST_ALPHA = 10,
+ BLENDX_ONE_MINUS_DST_ALPHA = 11,
+ BLENDX_CONSTANT_COLOR = 12,
+ BLENDX_ONE_MINUS_CONSTANT_COLOR = 13,
+ BLENDX_CONSTANT_ALPHA = 14,
+ BLENDX_ONE_MINUS_CONSTANT_ALPHA = 15,
+ BLENDX_SRC_ALPHA_SATURATE = 16,
+} BlendOpX;
+#endif /*ENUMS_BlendOpX_H*/
+
+#ifndef ENUMS_CombFuncX_H
+#define ENUMS_CombFuncX_H
+typedef enum CombFuncX {
+ COMB_DST_PLUS_SRC = 0,
+ COMB_SRC_MINUS_DST = 1,
+ COMB_MIN_DST_SRC = 2,
+ COMB_MAX_DST_SRC = 3,
+ COMB_DST_MINUS_SRC = 4,
+ COMB_DST_PLUS_SRC_BIAS = 5,
+} CombFuncX;
+#endif /*ENUMS_CombFuncX_H*/
+
+#ifndef ENUMS_DitherModeX_H
+#define ENUMS_DitherModeX_H
+typedef enum DitherModeX {
+ DITHER_DISABLE = 0,
+ DITHER_ALWAYS = 1,
+ DITHER_IF_ALPHA_OFF = 2,
+} DitherModeX;
+#endif /*ENUMS_DitherModeX_H*/
+
+#ifndef ENUMS_DitherTypeX_H
+#define ENUMS_DitherTypeX_H
+typedef enum DitherTypeX {
+ DITHER_PIXEL = 0,
+ DITHER_SUBPIXEL = 1,
+} DitherTypeX;
+#endif /*ENUMS_DitherTypeX_H*/
+
+#ifndef ENUMS_EdramMode_H
+#define ENUMS_EdramMode_H
+typedef enum EdramMode {
+ EDRAM_NOP = 0,
+ COLOR_DEPTH = 4,
+ DEPTH_ONLY = 5,
+ EDRAM_COPY = 6,
+} EdramMode;
+#endif /*ENUMS_EdramMode_H*/
+
+#ifndef ENUMS_SurfaceEndian_H
+#define ENUMS_SurfaceEndian_H
+typedef enum SurfaceEndian {
+ ENDIAN_NONE = 0,
+ ENDIAN_8IN16 = 1,
+ ENDIAN_8IN32 = 2,
+ ENDIAN_16IN32 = 3,
+ ENDIAN_8IN64 = 4,
+ ENDIAN_8IN128 = 5,
+} SurfaceEndian;
+#endif /*ENUMS_SurfaceEndian_H*/
+
+#ifndef ENUMS_EdramSizeX_H
+#define ENUMS_EdramSizeX_H
+typedef enum EdramSizeX {
+ EDRAMSIZE_16KB = 0,
+ EDRAMSIZE_32KB = 1,
+ EDRAMSIZE_64KB = 2,
+ EDRAMSIZE_128KB = 3,
+ EDRAMSIZE_256KB = 4,
+ EDRAMSIZE_512KB = 5,
+ EDRAMSIZE_1MB = 6,
+ EDRAMSIZE_2MB = 7,
+ EDRAMSIZE_4MB = 8,
+ EDRAMSIZE_8MB = 9,
+ EDRAMSIZE_16MB = 10,
+} EdramSizeX;
+#endif /*ENUMS_EdramSizeX_H*/
+
+#ifndef ENUMS_RB_PERFCNT_SELECT_H
+#define ENUMS_RB_PERFCNT_SELECT_H
+typedef enum RB_PERFCNT_SELECT {
+ RBPERF_CNTX_BUSY = 0,
+ RBPERF_CNTX_BUSY_MAX = 1,
+ RBPERF_SX_QUAD_STARVED = 2,
+ RBPERF_SX_QUAD_STARVED_MAX = 3,
+ RBPERF_GA_GC_CH0_SYS_REQ = 4,
+ RBPERF_GA_GC_CH0_SYS_REQ_MAX = 5,
+ RBPERF_GA_GC_CH1_SYS_REQ = 6,
+ RBPERF_GA_GC_CH1_SYS_REQ_MAX = 7,
+ RBPERF_MH_STARVED = 8,
+ RBPERF_MH_STARVED_MAX = 9,
+ RBPERF_AZ_BC_COLOR_BUSY = 10,
+ RBPERF_AZ_BC_COLOR_BUSY_MAX = 11,
+ RBPERF_AZ_BC_Z_BUSY = 12,
+ RBPERF_AZ_BC_Z_BUSY_MAX = 13,
+ RBPERF_RB_SC_TILE_RTR_N = 14,
+ RBPERF_RB_SC_TILE_RTR_N_MAX = 15,
+ RBPERF_RB_SC_SAMP_RTR_N = 16,
+ RBPERF_RB_SC_SAMP_RTR_N_MAX = 17,
+ RBPERF_RB_SX_QUAD_RTR_N = 18,
+ RBPERF_RB_SX_QUAD_RTR_N_MAX = 19,
+ RBPERF_RB_SX_COLOR_RTR_N = 20,
+ RBPERF_RB_SX_COLOR_RTR_N_MAX = 21,
+ RBPERF_RB_SC_SAMP_LZ_BUSY = 22,
+ RBPERF_RB_SC_SAMP_LZ_BUSY_MAX = 23,
+ RBPERF_ZXP_STALL = 24,
+ RBPERF_ZXP_STALL_MAX = 25,
+ RBPERF_EVENT_PENDING = 26,
+ RBPERF_EVENT_PENDING_MAX = 27,
+ RBPERF_RB_MH_VALID = 28,
+ RBPERF_RB_MH_VALID_MAX = 29,
+ RBPERF_SX_RB_QUAD_SEND = 30,
+ RBPERF_SX_RB_COLOR_SEND = 31,
+ RBPERF_SC_RB_TILE_SEND = 32,
+ RBPERF_SC_RB_SAMPLE_SEND = 33,
+ RBPERF_SX_RB_MEM_EXPORT = 34,
+ RBPERF_SX_RB_QUAD_EVENT = 35,
+ RBPERF_SC_RB_TILE_EVENT_FILTERED = 36,
+ RBPERF_SC_RB_TILE_EVENT_ALL = 37,
+ RBPERF_RB_SC_EZ_SEND = 38,
+ RBPERF_RB_SX_INDEX_SEND = 39,
+ RBPERF_GMEM_INTFO_RD = 40,
+ RBPERF_GMEM_INTF1_RD = 41,
+ RBPERF_GMEM_INTFO_WR = 42,
+ RBPERF_GMEM_INTF1_WR = 43,
+ RBPERF_RB_CP_CONTEXT_DONE = 44,
+ RBPERF_RB_CP_CACHE_FLUSH = 45,
+ RBPERF_ZPASS_DONE = 46,
+ RBPERF_ZCMD_VALID = 47,
+ RBPERF_CCMD_VALID = 48,
+ RBPERF_ACCUM_GRANT = 49,
+ RBPERF_ACCUM_C0_GRANT = 50,
+ RBPERF_ACCUM_C1_GRANT = 51,
+ RBPERF_ACCUM_FULL_BE_WR = 52,
+ RBPERF_ACCUM_REQUEST_NO_GRANT = 53,
+ RBPERF_ACCUM_TIMEOUT_PULSE = 54,
+ RBPERF_ACCUM_LIN_TIMEOUT_PULSE = 55,
+ RBPERF_ACCUM_CAM_HIT_FLUSHING = 56,
+} RB_PERFCNT_SELECT;
+#endif /*ENUMS_RB_PERFCNT_SELECT_H*/
+
+#ifndef ENUMS_DepthFormat_H
+#define ENUMS_DepthFormat_H
+typedef enum DepthFormat {
+ DEPTH_24_8 = 22,
+ DEPTH_24_8_FLOAT = 23,
+ DEPTH_16 = 24,
+} DepthFormat;
+#endif /*ENUMS_DepthFormat_H*/
+
+#ifndef ENUMS_SurfaceSwap_H
+#define ENUMS_SurfaceSwap_H
+typedef enum SurfaceSwap {
+ SWAP_LOWRED = 0,
+ SWAP_LOWBLUE = 1
+} SurfaceSwap;
+#endif /*ENUMS_SurfaceSwap_H*/
+
+#ifndef ENUMS_DepthArray_H
+#define ENUMS_DepthArray_H
+typedef enum DepthArray {
+ ARRAY_2D_ALT_DEPTH = 0,
+ ARRAY_2D_DEPTH = 1,
+} DepthArray;
+#endif /*ENUMS_DepthArray_H*/
+
+#ifndef ENUMS_ColorArray_H
+#define ENUMS_ColorArray_H
+typedef enum ColorArray {
+ ARRAY_2D_ALT_COLOR = 0,
+ ARRAY_2D_COLOR = 1,
+ ARRAY_3D_SLICE_COLOR = 3
+} ColorArray;
+#endif /*ENUMS_ColorArray_H*/
+
+#ifndef ENUMS_ColorFormat_H
+#define ENUMS_ColorFormat_H
+typedef enum ColorFormat {
+ COLOR_8 = 2,
+ COLOR_1_5_5_5 = 3,
+ COLOR_5_6_5 = 4,
+ COLOR_6_5_5 = 5,
+ COLOR_8_8_8_8 = 6,
+ COLOR_2_10_10_10 = 7,
+ COLOR_8_A = 8,
+ COLOR_8_B = 9,
+ COLOR_8_8 = 10,
+ COLOR_8_8_8 = 11,
+ COLOR_8_8_8_8_A = 14,
+ COLOR_4_4_4_4 = 15,
+ COLOR_10_11_11 = 16,
+ COLOR_11_11_10 = 17,
+ COLOR_16 = 24,
+ COLOR_16_16 = 25,
+ COLOR_16_16_16_16 = 26,
+ COLOR_16_FLOAT = 30,
+ COLOR_16_16_FLOAT = 31,
+ COLOR_16_16_16_16_FLOAT = 32,
+ COLOR_32_FLOAT = 36,
+ COLOR_32_32_FLOAT = 37,
+ COLOR_32_32_32_32_FLOAT = 38,
+ COLOR_2_3_3 = 39,
+} ColorFormat;
+#endif /*ENUMS_ColorFormat_H*/
+
+#ifndef ENUMS_SurfaceNumber_H
+#define ENUMS_SurfaceNumber_H
+typedef enum SurfaceNumber {
+ NUMBER_UREPEAT = 0,
+ NUMBER_SREPEAT = 1,
+ NUMBER_UINTEGER = 2,
+ NUMBER_SINTEGER = 3,
+ NUMBER_GAMMA = 4,
+ NUMBER_FIXED = 5,
+ NUMBER_FLOAT = 7
+} SurfaceNumber;
+#endif /*ENUMS_SurfaceNumber_H*/
+
+#ifndef ENUMS_SurfaceFormat_H
+#define ENUMS_SurfaceFormat_H
+typedef enum SurfaceFormat {
+ FMT_1_REVERSE = 0,
+ FMT_1 = 1,
+ FMT_8 = 2,
+ FMT_1_5_5_5 = 3,
+ FMT_5_6_5 = 4,
+ FMT_6_5_5 = 5,
+ FMT_8_8_8_8 = 6,
+ FMT_2_10_10_10 = 7,
+ FMT_8_A = 8,
+ FMT_8_B = 9,
+ FMT_8_8 = 10,
+ FMT_Cr_Y1_Cb_Y0 = 11,
+ FMT_Y1_Cr_Y0_Cb = 12,
+ FMT_5_5_5_1 = 13,
+ FMT_8_8_8_8_A = 14,
+ FMT_4_4_4_4 = 15,
+ FMT_8_8_8 = 16,
+ FMT_DXT1 = 18,
+ FMT_DXT2_3 = 19,
+ FMT_DXT4_5 = 20,
+ FMT_10_10_10_2 = 21,
+ FMT_24_8 = 22,
+ FMT_16 = 24,
+ FMT_16_16 = 25,
+ FMT_16_16_16_16 = 26,
+ FMT_16_EXPAND = 27,
+ FMT_16_16_EXPAND = 28,
+ FMT_16_16_16_16_EXPAND = 29,
+ FMT_16_FLOAT = 30,
+ FMT_16_16_FLOAT = 31,
+ FMT_16_16_16_16_FLOAT = 32,
+ FMT_32 = 33,
+ FMT_32_32 = 34,
+ FMT_32_32_32_32 = 35,
+ FMT_32_FLOAT = 36,
+ FMT_32_32_FLOAT = 37,
+ FMT_32_32_32_32_FLOAT = 38,
+ FMT_ATI_TC_RGB = 39,
+ FMT_ATI_TC_RGBA = 40,
+ FMT_ATI_TC_555_565_RGB = 41,
+ FMT_ATI_TC_555_565_RGBA = 42,
+ FMT_ATI_TC_RGBA_INTERP = 43,
+ FMT_ATI_TC_555_565_RGBA_INTERP = 44,
+ FMT_ETC1_RGBA_INTERP = 46,
+ FMT_ETC1_RGB = 47,
+ FMT_ETC1_RGBA = 48,
+ FMT_DXN = 49,
+ FMT_2_3_3 = 51,
+ FMT_2_10_10_10_AS_16_16_16_16 = 54,
+ FMT_10_10_10_2_AS_16_16_16_16 = 55,
+ FMT_32_32_32_FLOAT = 57,
+ FMT_DXT3A = 58,
+ FMT_DXT5A = 59,
+ FMT_CTX1 = 60,
+} SurfaceFormat;
+#endif /*ENUMS_SurfaceFormat_H*/
+
+#ifndef ENUMS_SurfaceTiling_H
+#define ENUMS_SurfaceTiling_H
+typedef enum SurfaceTiling {
+ ARRAY_LINEAR = 0,
+ ARRAY_TILED = 1
+} SurfaceTiling;
+#endif /*ENUMS_SurfaceTiling_H*/
+
+#ifndef ENUMS_SurfaceArray_H
+#define ENUMS_SurfaceArray_H
+typedef enum SurfaceArray {
+ ARRAY_1D = 0,
+ ARRAY_2D = 1,
+ ARRAY_3D = 2,
+ ARRAY_3D_SLICE = 3
+} SurfaceArray;
+#endif /*ENUMS_SurfaceArray_H*/
+
+#ifndef ENUMS_SurfaceNumberX_H
+#define ENUMS_SurfaceNumberX_H
+typedef enum SurfaceNumberX {
+ NUMBERX_UREPEAT = 0,
+ NUMBERX_SREPEAT = 1,
+ NUMBERX_UINTEGER = 2,
+ NUMBERX_SINTEGER = 3,
+ NUMBERX_FLOAT = 7
+} SurfaceNumberX;
+#endif /*ENUMS_SurfaceNumberX_H*/
+
+#ifndef ENUMS_ColorArrayX_H
+#define ENUMS_ColorArrayX_H
+typedef enum ColorArrayX {
+ ARRAYX_2D_COLOR = 0,
+ ARRAYX_3D_SLICE_COLOR = 1,
+} ColorArrayX;
+#endif /*ENUMS_ColorArrayX_H*/
+
+#endif /*_yamato_ENUM_HEADER*/
+
diff --git a/drivers/mxc/amd-gpu/include/reg/yamato/22/yamato_genenum.h b/drivers/mxc/amd-gpu/include/reg/yamato/22/yamato_genenum.h
new file mode 100644
index 000000000000..87a454a1e38a
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/reg/yamato/22/yamato_genenum.h
@@ -0,0 +1,1703 @@
+/* Copyright (c) 2002,2007-2009, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+START_ENUMTYPE(SU_PERFCNT_SELECT)
+ GENERATE_ENUM(PERF_PAPC_PASX_REQ, 0)
+ GENERATE_ENUM(UNUSED1, 1)
+ GENERATE_ENUM(PERF_PAPC_PASX_FIRST_VECTOR, 2)
+ GENERATE_ENUM(PERF_PAPC_PASX_SECOND_VECTOR, 3)
+ GENERATE_ENUM(PERF_PAPC_PASX_FIRST_DEAD, 4)
+ GENERATE_ENUM(PERF_PAPC_PASX_SECOND_DEAD, 5)
+ GENERATE_ENUM(PERF_PAPC_PASX_VTX_KILL_DISCARD, 6)
+ GENERATE_ENUM(PERF_PAPC_PASX_VTX_NAN_DISCARD, 7)
+ GENERATE_ENUM(PERF_PAPC_PA_INPUT_PRIM, 8)
+ GENERATE_ENUM(PERF_PAPC_PA_INPUT_NULL_PRIM, 9)
+ GENERATE_ENUM(PERF_PAPC_PA_INPUT_EVENT_FLAG, 10)
+ GENERATE_ENUM(PERF_PAPC_PA_INPUT_FIRST_PRIM_SLOT, 11)
+ GENERATE_ENUM(PERF_PAPC_PA_INPUT_END_OF_PACKET, 12)
+ GENERATE_ENUM(PERF_PAPC_CLPR_CULL_PRIM, 13)
+ GENERATE_ENUM(UNUSED2, 14)
+ GENERATE_ENUM(PERF_PAPC_CLPR_VV_CULL_PRIM, 15)
+ GENERATE_ENUM(UNUSED3, 16)
+ GENERATE_ENUM(PERF_PAPC_CLPR_VTX_KILL_CULL_PRIM, 17)
+ GENERATE_ENUM(PERF_PAPC_CLPR_VTX_NAN_CULL_PRIM, 18)
+ GENERATE_ENUM(PERF_PAPC_CLPR_CULL_TO_NULL_PRIM, 19)
+ GENERATE_ENUM(UNUSED4, 20)
+ GENERATE_ENUM(PERF_PAPC_CLPR_VV_CLIP_PRIM, 21)
+ GENERATE_ENUM(UNUSED5, 22)
+ GENERATE_ENUM(PERF_PAPC_CLPR_POINT_CLIP_CANDIDATE, 23)
+ GENERATE_ENUM(PERF_PAPC_CLPR_CLIP_PLANE_CNT_1, 24)
+ GENERATE_ENUM(PERF_PAPC_CLPR_CLIP_PLANE_CNT_2, 25)
+ GENERATE_ENUM(PERF_PAPC_CLPR_CLIP_PLANE_CNT_3, 26)
+ GENERATE_ENUM(PERF_PAPC_CLPR_CLIP_PLANE_CNT_4, 27)
+ GENERATE_ENUM(PERF_PAPC_CLPR_CLIP_PLANE_CNT_5, 28)
+ GENERATE_ENUM(PERF_PAPC_CLPR_CLIP_PLANE_CNT_6, 29)
+ GENERATE_ENUM(PERF_PAPC_CLPR_CLIP_PLANE_NEAR, 30)
+ GENERATE_ENUM(PERF_PAPC_CLPR_CLIP_PLANE_FAR, 31)
+ GENERATE_ENUM(PERF_PAPC_CLPR_CLIP_PLANE_LEFT, 32)
+ GENERATE_ENUM(PERF_PAPC_CLPR_CLIP_PLANE_RIGHT, 33)
+ GENERATE_ENUM(PERF_PAPC_CLPR_CLIP_PLANE_TOP, 34)
+ GENERATE_ENUM(PERF_PAPC_CLPR_CLIP_PLANE_BOTTOM, 35)
+ GENERATE_ENUM(PERF_PAPC_CLSM_NULL_PRIM, 36)
+ GENERATE_ENUM(PERF_PAPC_CLSM_TOTALLY_VISIBLE_PRIM, 37)
+ GENERATE_ENUM(PERF_PAPC_CLSM_CLIP_PRIM, 38)
+ GENERATE_ENUM(PERF_PAPC_CLSM_CULL_TO_NULL_PRIM, 39)
+ GENERATE_ENUM(PERF_PAPC_CLSM_OUT_PRIM_CNT_1, 40)
+ GENERATE_ENUM(PERF_PAPC_CLSM_OUT_PRIM_CNT_2, 41)
+ GENERATE_ENUM(PERF_PAPC_CLSM_OUT_PRIM_CNT_3, 42)
+ GENERATE_ENUM(PERF_PAPC_CLSM_OUT_PRIM_CNT_4, 43)
+ GENERATE_ENUM(PERF_PAPC_CLSM_OUT_PRIM_CNT_5, 44)
+ GENERATE_ENUM(PERF_PAPC_CLSM_OUT_PRIM_CNT_6_7, 45)
+ GENERATE_ENUM(PERF_PAPC_CLSM_NON_TRIVIAL_CULL, 46)
+ GENERATE_ENUM(PERF_PAPC_SU_INPUT_PRIM, 47)
+ GENERATE_ENUM(PERF_PAPC_SU_INPUT_CLIP_PRIM, 48)
+ GENERATE_ENUM(PERF_PAPC_SU_INPUT_NULL_PRIM, 49)
+ GENERATE_ENUM(PERF_PAPC_SU_ZERO_AREA_CULL_PRIM, 50)
+ GENERATE_ENUM(PERF_PAPC_SU_BACK_FACE_CULL_PRIM, 51)
+ GENERATE_ENUM(PERF_PAPC_SU_FRONT_FACE_CULL_PRIM, 52)
+ GENERATE_ENUM(PERF_PAPC_SU_POLYMODE_FACE_CULL, 53)
+ GENERATE_ENUM(PERF_PAPC_SU_POLYMODE_BACK_CULL, 54)
+ GENERATE_ENUM(PERF_PAPC_SU_POLYMODE_FRONT_CULL, 55)
+ GENERATE_ENUM(PERF_PAPC_SU_POLYMODE_INVALID_FILL, 56)
+ GENERATE_ENUM(PERF_PAPC_SU_OUTPUT_PRIM, 57)
+ GENERATE_ENUM(PERF_PAPC_SU_OUTPUT_CLIP_PRIM, 58)
+ GENERATE_ENUM(PERF_PAPC_SU_OUTPUT_NULL_PRIM, 59)
+ GENERATE_ENUM(PERF_PAPC_SU_OUTPUT_EVENT_FLAG, 60)
+ GENERATE_ENUM(PERF_PAPC_SU_OUTPUT_FIRST_PRIM_SLOT, 61)
+ GENERATE_ENUM(PERF_PAPC_SU_OUTPUT_END_OF_PACKET, 62)
+ GENERATE_ENUM(PERF_PAPC_SU_OUTPUT_POLYMODE_FACE, 63)
+ GENERATE_ENUM(PERF_PAPC_SU_OUTPUT_POLYMODE_BACK, 64)
+ GENERATE_ENUM(PERF_PAPC_SU_OUTPUT_POLYMODE_FRONT, 65)
+ GENERATE_ENUM(PERF_PAPC_SU_OUT_CLIP_POLYMODE_FACE, 66)
+ GENERATE_ENUM(PERF_PAPC_SU_OUT_CLIP_POLYMODE_BACK, 67)
+ GENERATE_ENUM(PERF_PAPC_SU_OUT_CLIP_POLYMODE_FRONT, 68)
+ GENERATE_ENUM(PERF_PAPC_PASX_REQ_IDLE, 69)
+ GENERATE_ENUM(PERF_PAPC_PASX_REQ_BUSY, 70)
+ GENERATE_ENUM(PERF_PAPC_PASX_REQ_STALLED, 71)
+ GENERATE_ENUM(PERF_PAPC_PASX_REC_IDLE, 72)
+ GENERATE_ENUM(PERF_PAPC_PASX_REC_BUSY, 73)
+ GENERATE_ENUM(PERF_PAPC_PASX_REC_STARVED_SX, 74)
+ GENERATE_ENUM(PERF_PAPC_PASX_REC_STALLED, 75)
+ GENERATE_ENUM(PERF_PAPC_PASX_REC_STALLED_POS_MEM, 76)
+ GENERATE_ENUM(PERF_PAPC_PASX_REC_STALLED_CCGSM_IN, 77)
+ GENERATE_ENUM(PERF_PAPC_CCGSM_IDLE, 78)
+ GENERATE_ENUM(PERF_PAPC_CCGSM_BUSY, 79)
+ GENERATE_ENUM(PERF_PAPC_CCGSM_STALLED, 80)
+ GENERATE_ENUM(PERF_PAPC_CLPRIM_IDLE, 81)
+ GENERATE_ENUM(PERF_PAPC_CLPRIM_BUSY, 82)
+ GENERATE_ENUM(PERF_PAPC_CLPRIM_STALLED, 83)
+ GENERATE_ENUM(PERF_PAPC_CLPRIM_STARVED_CCGSM, 84)
+ GENERATE_ENUM(PERF_PAPC_CLIPSM_IDLE, 85)
+ GENERATE_ENUM(PERF_PAPC_CLIPSM_BUSY, 86)
+ GENERATE_ENUM(PERF_PAPC_CLIPSM_WAIT_CLIP_VERT_ENGH, 87)
+ GENERATE_ENUM(PERF_PAPC_CLIPSM_WAIT_HIGH_PRI_SEQ, 88)
+ GENERATE_ENUM(PERF_PAPC_CLIPSM_WAIT_CLIPGA, 89)
+ GENERATE_ENUM(PERF_PAPC_CLIPSM_WAIT_AVAIL_VTE_CLIP, 90)
+ GENERATE_ENUM(PERF_PAPC_CLIPSM_WAIT_CLIP_OUTSM, 91)
+ GENERATE_ENUM(PERF_PAPC_CLIPGA_IDLE, 92)
+ GENERATE_ENUM(PERF_PAPC_CLIPGA_BUSY, 93)
+ GENERATE_ENUM(PERF_PAPC_CLIPGA_STARVED_VTE_CLIP, 94)
+ GENERATE_ENUM(PERF_PAPC_CLIPGA_STALLED, 95)
+ GENERATE_ENUM(PERF_PAPC_CLIP_IDLE, 96)
+ GENERATE_ENUM(PERF_PAPC_CLIP_BUSY, 97)
+ GENERATE_ENUM(PERF_PAPC_SU_IDLE, 98)
+ GENERATE_ENUM(PERF_PAPC_SU_BUSY, 99)
+ GENERATE_ENUM(PERF_PAPC_SU_STARVED_CLIP, 100)
+ GENERATE_ENUM(PERF_PAPC_SU_STALLED_SC, 101)
+ GENERATE_ENUM(PERF_PAPC_SU_FACENESS_CULL, 102)
+END_ENUMTYPE(SU_PERFCNT_SELECT)
+
+START_ENUMTYPE(SC_PERFCNT_SELECT)
+ GENERATE_ENUM(SC_SR_WINDOW_VALID, 0)
+ GENERATE_ENUM(SC_CW_WINDOW_VALID, 1)
+ GENERATE_ENUM(SC_QM_WINDOW_VALID, 2)
+ GENERATE_ENUM(SC_FW_WINDOW_VALID, 3)
+ GENERATE_ENUM(SC_EZ_WINDOW_VALID, 4)
+ GENERATE_ENUM(SC_IT_WINDOW_VALID, 5)
+ GENERATE_ENUM(SC_STARVED_BY_PA, 6)
+ GENERATE_ENUM(SC_STALLED_BY_RB_TILE, 7)
+ GENERATE_ENUM(SC_STALLED_BY_RB_SAMP, 8)
+ GENERATE_ENUM(SC_STARVED_BY_RB_EZ, 9)
+ GENERATE_ENUM(SC_STALLED_BY_SAMPLE_FF, 10)
+ GENERATE_ENUM(SC_STALLED_BY_SQ, 11)
+ GENERATE_ENUM(SC_STALLED_BY_SP, 12)
+ GENERATE_ENUM(SC_TOTAL_NO_PRIMS, 13)
+ GENERATE_ENUM(SC_NON_EMPTY_PRIMS, 14)
+ GENERATE_ENUM(SC_NO_TILES_PASSING_QM, 15)
+ GENERATE_ENUM(SC_NO_PIXELS_PRE_EZ, 16)
+ GENERATE_ENUM(SC_NO_PIXELS_POST_EZ, 17)
+END_ENUMTYPE(SC_PERFCNT_SELECT)
+
+START_ENUMTYPE(VGT_DI_PRIM_TYPE)
+ GENERATE_ENUM(DI_PT_NONE, 0)
+ GENERATE_ENUM(DI_PT_POINTLIST, 1)
+ GENERATE_ENUM(DI_PT_LINELIST, 2)
+ GENERATE_ENUM(DI_PT_LINESTRIP, 3)
+ GENERATE_ENUM(DI_PT_TRILIST, 4)
+ GENERATE_ENUM(DI_PT_TRIFAN, 5)
+ GENERATE_ENUM(DI_PT_TRISTRIP, 6)
+ GENERATE_ENUM(DI_PT_UNUSED_1, 7)
+ GENERATE_ENUM(DI_PT_RECTLIST, 8)
+ GENERATE_ENUM(DI_PT_UNUSED_2, 9)
+ GENERATE_ENUM(DI_PT_UNUSED_3, 10)
+ GENERATE_ENUM(DI_PT_UNUSED_4, 11)
+ GENERATE_ENUM(DI_PT_UNUSED_5, 12)
+ GENERATE_ENUM(DI_PT_QUADLIST, 13)
+ GENERATE_ENUM(DI_PT_QUADSTRIP, 14)
+ GENERATE_ENUM(DI_PT_POLYGON, 15)
+ GENERATE_ENUM(DI_PT_2D_COPY_RECT_LIST_V0, 16)
+ GENERATE_ENUM(DI_PT_2D_COPY_RECT_LIST_V1, 17)
+ GENERATE_ENUM(DI_PT_2D_COPY_RECT_LIST_V2, 18)
+ GENERATE_ENUM(DI_PT_2D_COPY_RECT_LIST_V3, 19)
+ GENERATE_ENUM(DI_PT_2D_FILL_RECT_LIST, 20)
+ GENERATE_ENUM(DI_PT_2D_LINE_STRIP, 21)
+ GENERATE_ENUM(DI_PT_2D_TRI_STRIP, 22)
+END_ENUMTYPE(VGT_DI_PRIM_TYPE)
+
+START_ENUMTYPE(VGT_DI_SOURCE_SELECT)
+ GENERATE_ENUM(DI_SRC_SEL_DMA, 0)
+ GENERATE_ENUM(DI_SRC_SEL_IMMEDIATE, 1)
+ GENERATE_ENUM(DI_SRC_SEL_AUTO_INDEX, 2)
+ GENERATE_ENUM(DI_SRC_SEL_RESERVED, 3)
+END_ENUMTYPE(VGT_DI_SOURCE_SELECT)
+
+START_ENUMTYPE(VGT_DI_FACENESS_CULL_SELECT)
+ GENERATE_ENUM(DI_FACE_CULL_NONE, 0)
+ GENERATE_ENUM(DI_FACE_CULL_FETCH, 1)
+ GENERATE_ENUM(DI_FACE_BACKFACE_CULL, 2)
+ GENERATE_ENUM(DI_FACE_FRONTFACE_CULL, 3)
+END_ENUMTYPE(VGT_DI_FACENESS_CULL_SELECT)
+
+START_ENUMTYPE(VGT_DI_INDEX_SIZE)
+ GENERATE_ENUM(DI_INDEX_SIZE_16_BIT, 0)
+ GENERATE_ENUM(DI_INDEX_SIZE_32_BIT, 1)
+END_ENUMTYPE(VGT_DI_INDEX_SIZE)
+
+START_ENUMTYPE(VGT_DI_SMALL_INDEX)
+ GENERATE_ENUM(DI_USE_INDEX_SIZE, 0)
+ GENERATE_ENUM(DI_INDEX_SIZE_8_BIT, 1)
+END_ENUMTYPE(VGT_DI_SMALL_INDEX)
+
+START_ENUMTYPE(VGT_DI_PRE_FETCH_CULL_ENABLE)
+ GENERATE_ENUM(DISABLE_PRE_FETCH_CULL_ENABLE, 0)
+ GENERATE_ENUM(PRE_FETCH_CULL_ENABLE, 1)
+END_ENUMTYPE(VGT_DI_PRE_FETCH_CULL_ENABLE)
+
+START_ENUMTYPE(VGT_DI_GRP_CULL_ENABLE)
+ GENERATE_ENUM(DISABLE_GRP_CULL_ENABLE, 0)
+ GENERATE_ENUM(GRP_CULL_ENABLE, 1)
+END_ENUMTYPE(VGT_DI_GRP_CULL_ENABLE)
+
+START_ENUMTYPE(VGT_EVENT_TYPE)
+ GENERATE_ENUM(VS_DEALLOC, 0)
+ GENERATE_ENUM(PS_DEALLOC, 1)
+ GENERATE_ENUM(VS_DONE_TS, 2)
+ GENERATE_ENUM(PS_DONE_TS, 3)
+ GENERATE_ENUM(CACHE_FLUSH_TS, 4)
+ GENERATE_ENUM(CONTEXT_DONE, 5)
+ GENERATE_ENUM(CACHE_FLUSH, 6)
+ GENERATE_ENUM(VIZQUERY_START, 7)
+ GENERATE_ENUM(VIZQUERY_END, 8)
+ GENERATE_ENUM(SC_WAIT_WC, 9)
+ GENERATE_ENUM(RST_PIX_CNT, 13)
+ GENERATE_ENUM(RST_VTX_CNT, 14)
+ GENERATE_ENUM(TILE_FLUSH, 15)
+ GENERATE_ENUM(CACHE_FLUSH_AND_INV_TS_EVENT, 20)
+ GENERATE_ENUM(ZPASS_DONE, 21)
+ GENERATE_ENUM(CACHE_FLUSH_AND_INV_EVENT, 22)
+ GENERATE_ENUM(PERFCOUNTER_START, 23)
+ GENERATE_ENUM(PERFCOUNTER_STOP, 24)
+ GENERATE_ENUM(VS_FETCH_DONE, 27)
+ GENERATE_ENUM(FACENESS_FLUSH, 28)
+END_ENUMTYPE(VGT_EVENT_TYPE)
+
+START_ENUMTYPE(VGT_DMA_SWAP_MODE)
+ GENERATE_ENUM(VGT_DMA_SWAP_NONE, 0)
+ GENERATE_ENUM(VGT_DMA_SWAP_16_BIT, 1)
+ GENERATE_ENUM(VGT_DMA_SWAP_32_BIT, 2)
+ GENERATE_ENUM(VGT_DMA_SWAP_WORD, 3)
+END_ENUMTYPE(VGT_DMA_SWAP_MODE)
+
+START_ENUMTYPE(VGT_PERFCOUNT_SELECT)
+ GENERATE_ENUM(VGT_SQ_EVENT_WINDOW_ACTIVE, 0)
+ GENERATE_ENUM(VGT_SQ_SEND, 1)
+ GENERATE_ENUM(VGT_SQ_STALLED, 2)
+ GENERATE_ENUM(VGT_SQ_STARVED_BUSY, 3)
+ GENERATE_ENUM(VGT_SQ_STARVED_IDLE, 4)
+ GENERATE_ENUM(VGT_SQ_STATIC, 5)
+ GENERATE_ENUM(VGT_PA_EVENT_WINDOW_ACTIVE, 6)
+ GENERATE_ENUM(VGT_PA_CLIP_V_SEND, 7)
+ GENERATE_ENUM(VGT_PA_CLIP_V_STALLED, 8)
+ GENERATE_ENUM(VGT_PA_CLIP_V_STARVED_BUSY, 9)
+ GENERATE_ENUM(VGT_PA_CLIP_V_STARVED_IDLE, 10)
+ GENERATE_ENUM(VGT_PA_CLIP_V_STATIC, 11)
+ GENERATE_ENUM(VGT_PA_CLIP_P_SEND, 12)
+ GENERATE_ENUM(VGT_PA_CLIP_P_STALLED, 13)
+ GENERATE_ENUM(VGT_PA_CLIP_P_STARVED_BUSY, 14)
+ GENERATE_ENUM(VGT_PA_CLIP_P_STARVED_IDLE, 15)
+ GENERATE_ENUM(VGT_PA_CLIP_P_STATIC, 16)
+ GENERATE_ENUM(VGT_PA_CLIP_S_SEND, 17)
+ GENERATE_ENUM(VGT_PA_CLIP_S_STALLED, 18)
+ GENERATE_ENUM(VGT_PA_CLIP_S_STARVED_BUSY, 19)
+ GENERATE_ENUM(VGT_PA_CLIP_S_STARVED_IDLE, 20)
+ GENERATE_ENUM(VGT_PA_CLIP_S_STATIC, 21)
+ GENERATE_ENUM(RBIU_FIFOS_EVENT_WINDOW_ACTIVE, 22)
+ GENERATE_ENUM(RBIU_IMMED_DATA_FIFO_STARVED, 23)
+ GENERATE_ENUM(RBIU_IMMED_DATA_FIFO_STALLED, 24)
+ GENERATE_ENUM(RBIU_DMA_REQUEST_FIFO_STARVED, 25)
+ GENERATE_ENUM(RBIU_DMA_REQUEST_FIFO_STALLED, 26)
+ GENERATE_ENUM(RBIU_DRAW_INITIATOR_FIFO_STARVED, 27)
+ GENERATE_ENUM(RBIU_DRAW_INITIATOR_FIFO_STALLED, 28)
+ GENERATE_ENUM(BIN_PRIM_NEAR_CULL, 29)
+ GENERATE_ENUM(BIN_PRIM_ZERO_CULL, 30)
+ GENERATE_ENUM(BIN_PRIM_FAR_CULL, 31)
+ GENERATE_ENUM(BIN_PRIM_BIN_CULL, 32)
+ GENERATE_ENUM(BIN_PRIM_FACE_CULL, 33)
+ GENERATE_ENUM(SPARE34, 34)
+ GENERATE_ENUM(SPARE35, 35)
+ GENERATE_ENUM(SPARE36, 36)
+ GENERATE_ENUM(SPARE37, 37)
+ GENERATE_ENUM(SPARE38, 38)
+ GENERATE_ENUM(SPARE39, 39)
+ GENERATE_ENUM(TE_SU_IN_VALID, 40)
+ GENERATE_ENUM(TE_SU_IN_READ, 41)
+ GENERATE_ENUM(TE_SU_IN_PRIM, 42)
+ GENERATE_ENUM(TE_SU_IN_EOP, 43)
+ GENERATE_ENUM(TE_SU_IN_NULL_PRIM, 44)
+ GENERATE_ENUM(TE_WK_IN_VALID, 45)
+ GENERATE_ENUM(TE_WK_IN_READ, 46)
+ GENERATE_ENUM(TE_OUT_PRIM_VALID, 47)
+ GENERATE_ENUM(TE_OUT_PRIM_READ, 48)
+END_ENUMTYPE(VGT_PERFCOUNT_SELECT)
+
+START_ENUMTYPE(TCR_PERFCOUNT_SELECT)
+ GENERATE_ENUM(DGMMPD_IPMUX0_STALL, 0)
+ GENERATE_ENUM(reserved_46, 1)
+ GENERATE_ENUM(reserved_47, 2)
+ GENERATE_ENUM(reserved_48, 3)
+ GENERATE_ENUM(DGMMPD_IPMUX_ALL_STALL, 4)
+ GENERATE_ENUM(OPMUX0_L2_WRITES, 5)
+ GENERATE_ENUM(reserved_49, 6)
+ GENERATE_ENUM(reserved_50, 7)
+ GENERATE_ENUM(reserved_51, 8)
+END_ENUMTYPE(TCR_PERFCOUNT_SELECT)
+
+START_ENUMTYPE(TP_PERFCOUNT_SELECT)
+ GENERATE_ENUM(POINT_QUADS, 0)
+ GENERATE_ENUM(BILIN_QUADS, 1)
+ GENERATE_ENUM(ANISO_QUADS, 2)
+ GENERATE_ENUM(MIP_QUADS, 3)
+ GENERATE_ENUM(VOL_QUADS, 4)
+ GENERATE_ENUM(MIP_VOL_QUADS, 5)
+ GENERATE_ENUM(MIP_ANISO_QUADS, 6)
+ GENERATE_ENUM(VOL_ANISO_QUADS, 7)
+ GENERATE_ENUM(ANISO_2_1_QUADS, 8)
+ GENERATE_ENUM(ANISO_4_1_QUADS, 9)
+ GENERATE_ENUM(ANISO_6_1_QUADS, 10)
+ GENERATE_ENUM(ANISO_8_1_QUADS, 11)
+ GENERATE_ENUM(ANISO_10_1_QUADS, 12)
+ GENERATE_ENUM(ANISO_12_1_QUADS, 13)
+ GENERATE_ENUM(ANISO_14_1_QUADS, 14)
+ GENERATE_ENUM(ANISO_16_1_QUADS, 15)
+ GENERATE_ENUM(MIP_VOL_ANISO_QUADS, 16)
+ GENERATE_ENUM(ALIGN_2_QUADS, 17)
+ GENERATE_ENUM(ALIGN_4_QUADS, 18)
+ GENERATE_ENUM(PIX_0_QUAD, 19)
+ GENERATE_ENUM(PIX_1_QUAD, 20)
+ GENERATE_ENUM(PIX_2_QUAD, 21)
+ GENERATE_ENUM(PIX_3_QUAD, 22)
+ GENERATE_ENUM(PIX_4_QUAD, 23)
+ GENERATE_ENUM(TP_MIPMAP_LOD0, 24)
+ GENERATE_ENUM(TP_MIPMAP_LOD1, 25)
+ GENERATE_ENUM(TP_MIPMAP_LOD2, 26)
+ GENERATE_ENUM(TP_MIPMAP_LOD3, 27)
+ GENERATE_ENUM(TP_MIPMAP_LOD4, 28)
+ GENERATE_ENUM(TP_MIPMAP_LOD5, 29)
+ GENERATE_ENUM(TP_MIPMAP_LOD6, 30)
+ GENERATE_ENUM(TP_MIPMAP_LOD7, 31)
+ GENERATE_ENUM(TP_MIPMAP_LOD8, 32)
+ GENERATE_ENUM(TP_MIPMAP_LOD9, 33)
+ GENERATE_ENUM(TP_MIPMAP_LOD10, 34)
+ GENERATE_ENUM(TP_MIPMAP_LOD11, 35)
+ GENERATE_ENUM(TP_MIPMAP_LOD12, 36)
+ GENERATE_ENUM(TP_MIPMAP_LOD13, 37)
+ GENERATE_ENUM(TP_MIPMAP_LOD14, 38)
+END_ENUMTYPE(TP_PERFCOUNT_SELECT)
+
+START_ENUMTYPE(TCM_PERFCOUNT_SELECT)
+ GENERATE_ENUM(QUAD0_RD_LAT_FIFO_EMPTY, 0)
+ GENERATE_ENUM(reserved_01, 1)
+ GENERATE_ENUM(reserved_02, 2)
+ GENERATE_ENUM(QUAD0_RD_LAT_FIFO_4TH_FULL, 3)
+ GENERATE_ENUM(QUAD0_RD_LAT_FIFO_HALF_FULL, 4)
+ GENERATE_ENUM(QUAD0_RD_LAT_FIFO_FULL, 5)
+ GENERATE_ENUM(QUAD0_RD_LAT_FIFO_LT_4TH_FULL, 6)
+ GENERATE_ENUM(reserved_07, 7)
+ GENERATE_ENUM(reserved_08, 8)
+ GENERATE_ENUM(reserved_09, 9)
+ GENERATE_ENUM(reserved_10, 10)
+ GENERATE_ENUM(reserved_11, 11)
+ GENERATE_ENUM(reserved_12, 12)
+ GENERATE_ENUM(reserved_13, 13)
+ GENERATE_ENUM(reserved_14, 14)
+ GENERATE_ENUM(reserved_15, 15)
+ GENERATE_ENUM(reserved_16, 16)
+ GENERATE_ENUM(reserved_17, 17)
+ GENERATE_ENUM(reserved_18, 18)
+ GENERATE_ENUM(reserved_19, 19)
+ GENERATE_ENUM(reserved_20, 20)
+ GENERATE_ENUM(reserved_21, 21)
+ GENERATE_ENUM(reserved_22, 22)
+ GENERATE_ENUM(reserved_23, 23)
+ GENERATE_ENUM(reserved_24, 24)
+ GENERATE_ENUM(reserved_25, 25)
+ GENERATE_ENUM(reserved_26, 26)
+ GENERATE_ENUM(reserved_27, 27)
+ GENERATE_ENUM(READ_STARVED_QUAD0, 28)
+ GENERATE_ENUM(reserved_29, 29)
+ GENERATE_ENUM(reserved_30, 30)
+ GENERATE_ENUM(reserved_31, 31)
+ GENERATE_ENUM(READ_STARVED, 32)
+ GENERATE_ENUM(READ_STALLED_QUAD0, 33)
+ GENERATE_ENUM(reserved_34, 34)
+ GENERATE_ENUM(reserved_35, 35)
+ GENERATE_ENUM(reserved_36, 36)
+ GENERATE_ENUM(READ_STALLED, 37)
+ GENERATE_ENUM(VALID_READ_QUAD0, 38)
+ GENERATE_ENUM(reserved_39, 39)
+ GENERATE_ENUM(reserved_40, 40)
+ GENERATE_ENUM(reserved_41, 41)
+ GENERATE_ENUM(TC_TP_STARVED_QUAD0, 42)
+ GENERATE_ENUM(reserved_43, 43)
+ GENERATE_ENUM(reserved_44, 44)
+ GENERATE_ENUM(reserved_45, 45)
+ GENERATE_ENUM(TC_TP_STARVED, 46)
+END_ENUMTYPE(TCM_PERFCOUNT_SELECT)
+
+START_ENUMTYPE(TCF_PERFCOUNT_SELECT)
+ GENERATE_ENUM(VALID_CYCLES, 0)
+ GENERATE_ENUM(SINGLE_PHASES, 1)
+ GENERATE_ENUM(ANISO_PHASES, 2)
+ GENERATE_ENUM(MIP_PHASES, 3)
+ GENERATE_ENUM(VOL_PHASES, 4)
+ GENERATE_ENUM(MIP_VOL_PHASES, 5)
+ GENERATE_ENUM(MIP_ANISO_PHASES, 6)
+ GENERATE_ENUM(VOL_ANISO_PHASES, 7)
+ GENERATE_ENUM(ANISO_2_1_PHASES, 8)
+ GENERATE_ENUM(ANISO_4_1_PHASES, 9)
+ GENERATE_ENUM(ANISO_6_1_PHASES, 10)
+ GENERATE_ENUM(ANISO_8_1_PHASES, 11)
+ GENERATE_ENUM(ANISO_10_1_PHASES, 12)
+ GENERATE_ENUM(ANISO_12_1_PHASES, 13)
+ GENERATE_ENUM(ANISO_14_1_PHASES, 14)
+ GENERATE_ENUM(ANISO_16_1_PHASES, 15)
+ GENERATE_ENUM(MIP_VOL_ANISO_PHASES, 16)
+ GENERATE_ENUM(ALIGN_2_PHASES, 17)
+ GENERATE_ENUM(ALIGN_4_PHASES, 18)
+ GENERATE_ENUM(TPC_BUSY, 19)
+ GENERATE_ENUM(TPC_STALLED, 20)
+ GENERATE_ENUM(TPC_STARVED, 21)
+ GENERATE_ENUM(TPC_WORKING, 22)
+ GENERATE_ENUM(TPC_WALKER_BUSY, 23)
+ GENERATE_ENUM(TPC_WALKER_STALLED, 24)
+ GENERATE_ENUM(TPC_WALKER_WORKING, 25)
+ GENERATE_ENUM(TPC_ALIGNER_BUSY, 26)
+ GENERATE_ENUM(TPC_ALIGNER_STALLED, 27)
+ GENERATE_ENUM(TPC_ALIGNER_STALLED_BY_BLEND, 28)
+ GENERATE_ENUM(TPC_ALIGNER_STALLED_BY_CACHE, 29)
+ GENERATE_ENUM(TPC_ALIGNER_WORKING, 30)
+ GENERATE_ENUM(TPC_BLEND_BUSY, 31)
+ GENERATE_ENUM(TPC_BLEND_SYNC, 32)
+ GENERATE_ENUM(TPC_BLEND_STARVED, 33)
+ GENERATE_ENUM(TPC_BLEND_WORKING, 34)
+ GENERATE_ENUM(OPCODE_0x00, 35)
+ GENERATE_ENUM(OPCODE_0x01, 36)
+ GENERATE_ENUM(OPCODE_0x04, 37)
+ GENERATE_ENUM(OPCODE_0x10, 38)
+ GENERATE_ENUM(OPCODE_0x11, 39)
+ GENERATE_ENUM(OPCODE_0x12, 40)
+ GENERATE_ENUM(OPCODE_0x13, 41)
+ GENERATE_ENUM(OPCODE_0x18, 42)
+ GENERATE_ENUM(OPCODE_0x19, 43)
+ GENERATE_ENUM(OPCODE_0x1A, 44)
+ GENERATE_ENUM(OPCODE_OTHER, 45)
+ GENERATE_ENUM(IN_FIFO_0_EMPTY, 56)
+ GENERATE_ENUM(IN_FIFO_0_LT_HALF_FULL, 57)
+ GENERATE_ENUM(IN_FIFO_0_HALF_FULL, 58)
+ GENERATE_ENUM(IN_FIFO_0_FULL, 59)
+ GENERATE_ENUM(IN_FIFO_TPC_EMPTY, 72)
+ GENERATE_ENUM(IN_FIFO_TPC_LT_HALF_FULL, 73)
+ GENERATE_ENUM(IN_FIFO_TPC_HALF_FULL, 74)
+ GENERATE_ENUM(IN_FIFO_TPC_FULL, 75)
+ GENERATE_ENUM(TPC_TC_XFC, 76)
+ GENERATE_ENUM(TPC_TC_STATE, 77)
+ GENERATE_ENUM(TC_STALL, 78)
+ GENERATE_ENUM(QUAD0_TAPS, 79)
+ GENERATE_ENUM(QUADS, 83)
+ GENERATE_ENUM(TCA_SYNC_STALL, 84)
+ GENERATE_ENUM(TAG_STALL, 85)
+ GENERATE_ENUM(TCB_SYNC_STALL, 88)
+ GENERATE_ENUM(TCA_VALID, 89)
+ GENERATE_ENUM(PROBES_VALID, 90)
+ GENERATE_ENUM(MISS_STALL, 91)
+ GENERATE_ENUM(FETCH_FIFO_STALL, 92)
+ GENERATE_ENUM(TCO_STALL, 93)
+ GENERATE_ENUM(ANY_STALL, 94)
+ GENERATE_ENUM(TAG_MISSES, 95)
+ GENERATE_ENUM(TAG_HITS, 96)
+ GENERATE_ENUM(SUB_TAG_MISSES, 97)
+ GENERATE_ENUM(SET0_INVALIDATES, 98)
+ GENERATE_ENUM(SET1_INVALIDATES, 99)
+ GENERATE_ENUM(SET2_INVALIDATES, 100)
+ GENERATE_ENUM(SET3_INVALIDATES, 101)
+ GENERATE_ENUM(SET0_TAG_MISSES, 102)
+ GENERATE_ENUM(SET1_TAG_MISSES, 103)
+ GENERATE_ENUM(SET2_TAG_MISSES, 104)
+ GENERATE_ENUM(SET3_TAG_MISSES, 105)
+ GENERATE_ENUM(SET0_TAG_HITS, 106)
+ GENERATE_ENUM(SET1_TAG_HITS, 107)
+ GENERATE_ENUM(SET2_TAG_HITS, 108)
+ GENERATE_ENUM(SET3_TAG_HITS, 109)
+ GENERATE_ENUM(SET0_SUB_TAG_MISSES, 110)
+ GENERATE_ENUM(SET1_SUB_TAG_MISSES, 111)
+ GENERATE_ENUM(SET2_SUB_TAG_MISSES, 112)
+ GENERATE_ENUM(SET3_SUB_TAG_MISSES, 113)
+ GENERATE_ENUM(SET0_EVICT1, 114)
+ GENERATE_ENUM(SET0_EVICT2, 115)
+ GENERATE_ENUM(SET0_EVICT3, 116)
+ GENERATE_ENUM(SET0_EVICT4, 117)
+ GENERATE_ENUM(SET0_EVICT5, 118)
+ GENERATE_ENUM(SET0_EVICT6, 119)
+ GENERATE_ENUM(SET0_EVICT7, 120)
+ GENERATE_ENUM(SET0_EVICT8, 121)
+ GENERATE_ENUM(SET1_EVICT1, 130)
+ GENERATE_ENUM(SET1_EVICT2, 131)
+ GENERATE_ENUM(SET1_EVICT3, 132)
+ GENERATE_ENUM(SET1_EVICT4, 133)
+ GENERATE_ENUM(SET1_EVICT5, 134)
+ GENERATE_ENUM(SET1_EVICT6, 135)
+ GENERATE_ENUM(SET1_EVICT7, 136)
+ GENERATE_ENUM(SET1_EVICT8, 137)
+ GENERATE_ENUM(SET2_EVICT1, 146)
+ GENERATE_ENUM(SET2_EVICT2, 147)
+ GENERATE_ENUM(SET2_EVICT3, 148)
+ GENERATE_ENUM(SET2_EVICT4, 149)
+ GENERATE_ENUM(SET2_EVICT5, 150)
+ GENERATE_ENUM(SET2_EVICT6, 151)
+ GENERATE_ENUM(SET2_EVICT7, 152)
+ GENERATE_ENUM(SET2_EVICT8, 153)
+ GENERATE_ENUM(SET3_EVICT1, 162)
+ GENERATE_ENUM(SET3_EVICT2, 163)
+ GENERATE_ENUM(SET3_EVICT3, 164)
+ GENERATE_ENUM(SET3_EVICT4, 165)
+ GENERATE_ENUM(SET3_EVICT5, 166)
+ GENERATE_ENUM(SET3_EVICT6, 167)
+ GENERATE_ENUM(SET3_EVICT7, 168)
+ GENERATE_ENUM(SET3_EVICT8, 169)
+ GENERATE_ENUM(FF_EMPTY, 178)
+ GENERATE_ENUM(FF_LT_HALF_FULL, 179)
+ GENERATE_ENUM(FF_HALF_FULL, 180)
+ GENERATE_ENUM(FF_FULL, 181)
+ GENERATE_ENUM(FF_XFC, 182)
+ GENERATE_ENUM(FF_STALLED, 183)
+ GENERATE_ENUM(FG_MASKS, 184)
+ GENERATE_ENUM(FG_LEFT_MASKS, 185)
+ GENERATE_ENUM(FG_LEFT_MASK_STALLED, 186)
+ GENERATE_ENUM(FG_LEFT_NOT_DONE_STALL, 187)
+ GENERATE_ENUM(FG_LEFT_FG_STALL, 188)
+ GENERATE_ENUM(FG_LEFT_SECTORS, 189)
+ GENERATE_ENUM(FG0_REQUESTS, 195)
+ GENERATE_ENUM(FG0_STALLED, 196)
+ GENERATE_ENUM(MEM_REQ512, 199)
+ GENERATE_ENUM(MEM_REQ_SENT, 200)
+ GENERATE_ENUM(MEM_LOCAL_READ_REQ, 202)
+ GENERATE_ENUM(TC0_MH_STALLED, 203)
+END_ENUMTYPE(TCF_PERFCOUNT_SELECT)
+
+START_ENUMTYPE(SQ_PERFCNT_SELECT)
+ GENERATE_ENUM(SQ_PIXEL_VECTORS_SUB, 0)
+ GENERATE_ENUM(SQ_VERTEX_VECTORS_SUB, 1)
+ GENERATE_ENUM(SQ_ALU0_ACTIVE_VTX_SIMD0, 2)
+ GENERATE_ENUM(SQ_ALU1_ACTIVE_VTX_SIMD0, 3)
+ GENERATE_ENUM(SQ_ALU0_ACTIVE_PIX_SIMD0, 4)
+ GENERATE_ENUM(SQ_ALU1_ACTIVE_PIX_SIMD0, 5)
+ GENERATE_ENUM(SQ_ALU0_ACTIVE_VTX_SIMD1, 6)
+ GENERATE_ENUM(SQ_ALU1_ACTIVE_VTX_SIMD1, 7)
+ GENERATE_ENUM(SQ_ALU0_ACTIVE_PIX_SIMD1, 8)
+ GENERATE_ENUM(SQ_ALU1_ACTIVE_PIX_SIMD1, 9)
+ GENERATE_ENUM(SQ_EXPORT_CYCLES, 10)
+ GENERATE_ENUM(SQ_ALU_CST_WRITTEN, 11)
+ GENERATE_ENUM(SQ_TEX_CST_WRITTEN, 12)
+ GENERATE_ENUM(SQ_ALU_CST_STALL, 13)
+ GENERATE_ENUM(SQ_ALU_TEX_STALL, 14)
+ GENERATE_ENUM(SQ_INST_WRITTEN, 15)
+ GENERATE_ENUM(SQ_BOOLEAN_WRITTEN, 16)
+ GENERATE_ENUM(SQ_LOOPS_WRITTEN, 17)
+ GENERATE_ENUM(SQ_PIXEL_SWAP_IN, 18)
+ GENERATE_ENUM(SQ_PIXEL_SWAP_OUT, 19)
+ GENERATE_ENUM(SQ_VERTEX_SWAP_IN, 20)
+ GENERATE_ENUM(SQ_VERTEX_SWAP_OUT, 21)
+ GENERATE_ENUM(SQ_ALU_VTX_INST_ISSUED, 22)
+ GENERATE_ENUM(SQ_TEX_VTX_INST_ISSUED, 23)
+ GENERATE_ENUM(SQ_VC_VTX_INST_ISSUED, 24)
+ GENERATE_ENUM(SQ_CF_VTX_INST_ISSUED, 25)
+ GENERATE_ENUM(SQ_ALU_PIX_INST_ISSUED, 26)
+ GENERATE_ENUM(SQ_TEX_PIX_INST_ISSUED, 27)
+ GENERATE_ENUM(SQ_VC_PIX_INST_ISSUED, 28)
+ GENERATE_ENUM(SQ_CF_PIX_INST_ISSUED, 29)
+ GENERATE_ENUM(SQ_ALU0_FIFO_EMPTY_SIMD0, 30)
+ GENERATE_ENUM(SQ_ALU1_FIFO_EMPTY_SIMD0, 31)
+ GENERATE_ENUM(SQ_ALU0_FIFO_EMPTY_SIMD1, 32)
+ GENERATE_ENUM(SQ_ALU1_FIFO_EMPTY_SIMD1, 33)
+ GENERATE_ENUM(SQ_ALU_NOPS, 34)
+ GENERATE_ENUM(SQ_PRED_SKIP, 35)
+ GENERATE_ENUM(SQ_SYNC_ALU_STALL_SIMD0_VTX, 36)
+ GENERATE_ENUM(SQ_SYNC_ALU_STALL_SIMD1_VTX, 37)
+ GENERATE_ENUM(SQ_SYNC_TEX_STALL_VTX, 38)
+ GENERATE_ENUM(SQ_SYNC_VC_STALL_VTX, 39)
+ GENERATE_ENUM(SQ_CONSTANTS_USED_SIMD0, 40)
+ GENERATE_ENUM(SQ_CONSTANTS_SENT_SP_SIMD0, 41)
+ GENERATE_ENUM(SQ_GPR_STALL_VTX, 42)
+ GENERATE_ENUM(SQ_GPR_STALL_PIX, 43)
+ GENERATE_ENUM(SQ_VTX_RS_STALL, 44)
+ GENERATE_ENUM(SQ_PIX_RS_STALL, 45)
+ GENERATE_ENUM(SQ_SX_PC_FULL, 46)
+ GENERATE_ENUM(SQ_SX_EXP_BUFF_FULL, 47)
+ GENERATE_ENUM(SQ_SX_POS_BUFF_FULL, 48)
+ GENERATE_ENUM(SQ_INTERP_QUADS, 49)
+ GENERATE_ENUM(SQ_INTERP_ACTIVE, 50)
+ GENERATE_ENUM(SQ_IN_PIXEL_STALL, 51)
+ GENERATE_ENUM(SQ_IN_VTX_STALL, 52)
+ GENERATE_ENUM(SQ_VTX_CNT, 53)
+ GENERATE_ENUM(SQ_VTX_VECTOR2, 54)
+ GENERATE_ENUM(SQ_VTX_VECTOR3, 55)
+ GENERATE_ENUM(SQ_VTX_VECTOR4, 56)
+ GENERATE_ENUM(SQ_PIXEL_VECTOR1, 57)
+ GENERATE_ENUM(SQ_PIXEL_VECTOR23, 58)
+ GENERATE_ENUM(SQ_PIXEL_VECTOR4, 59)
+ GENERATE_ENUM(SQ_CONSTANTS_USED_SIMD1, 60)
+ GENERATE_ENUM(SQ_CONSTANTS_SENT_SP_SIMD1, 61)
+ GENERATE_ENUM(SQ_SX_MEM_EXP_FULL, 62)
+ GENERATE_ENUM(SQ_ALU0_ACTIVE_VTX_SIMD2, 63)
+ GENERATE_ENUM(SQ_ALU1_ACTIVE_VTX_SIMD2, 64)
+ GENERATE_ENUM(SQ_ALU0_ACTIVE_PIX_SIMD2, 65)
+ GENERATE_ENUM(SQ_ALU1_ACTIVE_PIX_SIMD2, 66)
+ GENERATE_ENUM(SQ_ALU0_ACTIVE_VTX_SIMD3, 67)
+ GENERATE_ENUM(SQ_PERFCOUNT_VTX_QUAL_TP_DONE, 68)
+ GENERATE_ENUM(SQ_ALU0_ACTIVE_PIX_SIMD3, 69)
+ GENERATE_ENUM(SQ_PERFCOUNT_PIX_QUAL_TP_DONE, 70)
+ GENERATE_ENUM(SQ_ALU0_FIFO_EMPTY_SIMD2, 71)
+ GENERATE_ENUM(SQ_ALU1_FIFO_EMPTY_SIMD2, 72)
+ GENERATE_ENUM(SQ_ALU0_FIFO_EMPTY_SIMD3, 73)
+ GENERATE_ENUM(SQ_ALU1_FIFO_EMPTY_SIMD3, 74)
+ GENERATE_ENUM(SQ_SYNC_ALU_STALL_SIMD2_VTX, 75)
+ GENERATE_ENUM(SQ_PERFCOUNT_VTX_POP_THREAD, 76)
+ GENERATE_ENUM(SQ_SYNC_ALU_STALL_SIMD0_PIX, 77)
+ GENERATE_ENUM(SQ_SYNC_ALU_STALL_SIMD1_PIX, 78)
+ GENERATE_ENUM(SQ_SYNC_ALU_STALL_SIMD2_PIX, 79)
+ GENERATE_ENUM(SQ_PERFCOUNT_PIX_POP_THREAD, 80)
+ GENERATE_ENUM(SQ_SYNC_TEX_STALL_PIX, 81)
+ GENERATE_ENUM(SQ_SYNC_VC_STALL_PIX, 82)
+ GENERATE_ENUM(SQ_CONSTANTS_USED_SIMD2, 83)
+ GENERATE_ENUM(SQ_CONSTANTS_SENT_SP_SIMD2, 84)
+ GENERATE_ENUM(SQ_PERFCOUNT_VTX_DEALLOC_ACK, 85)
+ GENERATE_ENUM(SQ_PERFCOUNT_PIX_DEALLOC_ACK, 86)
+ GENERATE_ENUM(SQ_ALU0_FIFO_FULL_SIMD0, 87)
+ GENERATE_ENUM(SQ_ALU1_FIFO_FULL_SIMD0, 88)
+ GENERATE_ENUM(SQ_ALU0_FIFO_FULL_SIMD1, 89)
+ GENERATE_ENUM(SQ_ALU1_FIFO_FULL_SIMD1, 90)
+ GENERATE_ENUM(SQ_ALU0_FIFO_FULL_SIMD2, 91)
+ GENERATE_ENUM(SQ_ALU1_FIFO_FULL_SIMD2, 92)
+ GENERATE_ENUM(SQ_ALU0_FIFO_FULL_SIMD3, 93)
+ GENERATE_ENUM(SQ_ALU1_FIFO_FULL_SIMD3, 94)
+ GENERATE_ENUM(VC_PERF_STATIC, 95)
+ GENERATE_ENUM(VC_PERF_STALLED, 96)
+ GENERATE_ENUM(VC_PERF_STARVED, 97)
+ GENERATE_ENUM(VC_PERF_SEND, 98)
+ GENERATE_ENUM(VC_PERF_ACTUAL_STARVED, 99)
+ GENERATE_ENUM(PIXEL_THREAD_0_ACTIVE, 100)
+ GENERATE_ENUM(VERTEX_THREAD_0_ACTIVE, 101)
+ GENERATE_ENUM(PIXEL_THREAD_0_NUMBER, 102)
+ GENERATE_ENUM(VERTEX_THREAD_0_NUMBER, 103)
+ GENERATE_ENUM(VERTEX_EVENT_NUMBER, 104)
+ GENERATE_ENUM(PIXEL_EVENT_NUMBER, 105)
+ GENERATE_ENUM(PTRBUFF_EF_PUSH, 106)
+ GENERATE_ENUM(PTRBUFF_EF_POP_EVENT, 107)
+ GENERATE_ENUM(PTRBUFF_EF_POP_NEW_VTX, 108)
+ GENERATE_ENUM(PTRBUFF_EF_POP_DEALLOC, 109)
+ GENERATE_ENUM(PTRBUFF_EF_POP_PVECTOR, 110)
+ GENERATE_ENUM(PTRBUFF_EF_POP_PVECTOR_X, 111)
+ GENERATE_ENUM(PTRBUFF_EF_POP_PVECTOR_VNZ, 112)
+ GENERATE_ENUM(PTRBUFF_PB_DEALLOC, 113)
+ GENERATE_ENUM(PTRBUFF_PI_STATE_PPB_POP, 114)
+ GENERATE_ENUM(PTRBUFF_PI_RTR, 115)
+ GENERATE_ENUM(PTRBUFF_PI_READ_EN, 116)
+ GENERATE_ENUM(PTRBUFF_PI_BUFF_SWAP, 117)
+ GENERATE_ENUM(PTRBUFF_SQ_FREE_BUFF, 118)
+ GENERATE_ENUM(PTRBUFF_SQ_DEC, 119)
+ GENERATE_ENUM(PTRBUFF_SC_VALID_CNTL_EVENT, 120)
+ GENERATE_ENUM(PTRBUFF_SC_VALID_IJ_XFER, 121)
+ GENERATE_ENUM(PTRBUFF_SC_NEW_VECTOR_1_Q, 122)
+ GENERATE_ENUM(PTRBUFF_QUAL_NEW_VECTOR, 123)
+ GENERATE_ENUM(PTRBUFF_QUAL_EVENT, 124)
+ GENERATE_ENUM(PTRBUFF_END_BUFFER, 125)
+ GENERATE_ENUM(PTRBUFF_FILL_QUAD, 126)
+ GENERATE_ENUM(VERTS_WRITTEN_SPI, 127)
+ GENERATE_ENUM(TP_FETCH_INSTR_EXEC, 128)
+ GENERATE_ENUM(TP_FETCH_INSTR_REQ, 129)
+ GENERATE_ENUM(TP_DATA_RETURN, 130)
+ GENERATE_ENUM(SPI_WRITE_CYCLES_SP, 131)
+ GENERATE_ENUM(SPI_WRITES_SP, 132)
+ GENERATE_ENUM(SP_ALU_INSTR_EXEC, 133)
+ GENERATE_ENUM(SP_CONST_ADDR_TO_SQ, 134)
+ GENERATE_ENUM(SP_PRED_KILLS_TO_SQ, 135)
+ GENERATE_ENUM(SP_EXPORT_CYCLES_TO_SX, 136)
+ GENERATE_ENUM(SP_EXPORTS_TO_SX, 137)
+ GENERATE_ENUM(SQ_CYCLES_ELAPSED, 138)
+ GENERATE_ENUM(SQ_TCFS_OPT_ALLOC_EXEC, 139)
+ GENERATE_ENUM(SQ_TCFS_NO_OPT_ALLOC, 140)
+ GENERATE_ENUM(SQ_ALU0_NO_OPT_ALLOC, 141)
+ GENERATE_ENUM(SQ_ALU1_NO_OPT_ALLOC, 142)
+ GENERATE_ENUM(SQ_TCFS_ARB_XFC_CNT, 143)
+ GENERATE_ENUM(SQ_ALU0_ARB_XFC_CNT, 144)
+ GENERATE_ENUM(SQ_ALU1_ARB_XFC_CNT, 145)
+ GENERATE_ENUM(SQ_TCFS_CFS_UPDATE_CNT, 146)
+ GENERATE_ENUM(SQ_ALU0_CFS_UPDATE_CNT, 147)
+ GENERATE_ENUM(SQ_ALU1_CFS_UPDATE_CNT, 148)
+ GENERATE_ENUM(SQ_VTX_PUSH_THREAD_CNT, 149)
+ GENERATE_ENUM(SQ_VTX_POP_THREAD_CNT, 150)
+ GENERATE_ENUM(SQ_PIX_PUSH_THREAD_CNT, 151)
+ GENERATE_ENUM(SQ_PIX_POP_THREAD_CNT, 152)
+ GENERATE_ENUM(SQ_PIX_TOTAL, 153)
+ GENERATE_ENUM(SQ_PIX_KILLED, 154)
+END_ENUMTYPE(SQ_PERFCNT_SELECT)
+
+START_ENUMTYPE(SX_PERFCNT_SELECT)
+ GENERATE_ENUM(SX_EXPORT_VECTORS, 0)
+ GENERATE_ENUM(SX_DUMMY_QUADS, 1)
+ GENERATE_ENUM(SX_ALPHA_FAIL, 2)
+ GENERATE_ENUM(SX_RB_QUAD_BUSY, 3)
+ GENERATE_ENUM(SX_RB_COLOR_BUSY, 4)
+ GENERATE_ENUM(SX_RB_QUAD_STALL, 5)
+ GENERATE_ENUM(SX_RB_COLOR_STALL, 6)
+END_ENUMTYPE(SX_PERFCNT_SELECT)
+
+START_ENUMTYPE(Abs_modifier)
+ GENERATE_ENUM(NO_ABS_MOD, 0)
+ GENERATE_ENUM(ABS_MOD, 1)
+END_ENUMTYPE(Abs_modifier)
+
+START_ENUMTYPE(Exporting)
+ GENERATE_ENUM(NOT_EXPORTING, 0)
+ GENERATE_ENUM(EXPORTING, 1)
+END_ENUMTYPE(Exporting)
+
+START_ENUMTYPE(ScalarOpcode)
+ GENERATE_ENUM(ADDs, 0)
+ GENERATE_ENUM(ADD_PREVs, 1)
+ GENERATE_ENUM(MULs, 2)
+ GENERATE_ENUM(MUL_PREVs, 3)
+ GENERATE_ENUM(MUL_PREV2s, 4)
+ GENERATE_ENUM(MAXs, 5)
+ GENERATE_ENUM(MINs, 6)
+ GENERATE_ENUM(SETEs, 7)
+ GENERATE_ENUM(SETGTs, 8)
+ GENERATE_ENUM(SETGTEs, 9)
+ GENERATE_ENUM(SETNEs, 10)
+ GENERATE_ENUM(FRACs, 11)
+ GENERATE_ENUM(TRUNCs, 12)
+ GENERATE_ENUM(FLOORs, 13)
+ GENERATE_ENUM(EXP_IEEE, 14)
+ GENERATE_ENUM(LOG_CLAMP, 15)
+ GENERATE_ENUM(LOG_IEEE, 16)
+ GENERATE_ENUM(RECIP_CLAMP, 17)
+ GENERATE_ENUM(RECIP_FF, 18)
+ GENERATE_ENUM(RECIP_IEEE, 19)
+ GENERATE_ENUM(RECIPSQ_CLAMP, 20)
+ GENERATE_ENUM(RECIPSQ_FF, 21)
+ GENERATE_ENUM(RECIPSQ_IEEE, 22)
+ GENERATE_ENUM(MOVAs, 23)
+ GENERATE_ENUM(MOVA_FLOORs, 24)
+ GENERATE_ENUM(SUBs, 25)
+ GENERATE_ENUM(SUB_PREVs, 26)
+ GENERATE_ENUM(PRED_SETEs, 27)
+ GENERATE_ENUM(PRED_SETNEs, 28)
+ GENERATE_ENUM(PRED_SETGTs, 29)
+ GENERATE_ENUM(PRED_SETGTEs, 30)
+ GENERATE_ENUM(PRED_SET_INVs, 31)
+ GENERATE_ENUM(PRED_SET_POPs, 32)
+ GENERATE_ENUM(PRED_SET_CLRs, 33)
+ GENERATE_ENUM(PRED_SET_RESTOREs, 34)
+ GENERATE_ENUM(KILLEs, 35)
+ GENERATE_ENUM(KILLGTs, 36)
+ GENERATE_ENUM(KILLGTEs, 37)
+ GENERATE_ENUM(KILLNEs, 38)
+ GENERATE_ENUM(KILLONEs, 39)
+ GENERATE_ENUM(SQRT_IEEE, 40)
+ GENERATE_ENUM(MUL_CONST_0, 42)
+ GENERATE_ENUM(MUL_CONST_1, 43)
+ GENERATE_ENUM(ADD_CONST_0, 44)
+ GENERATE_ENUM(ADD_CONST_1, 45)
+ GENERATE_ENUM(SUB_CONST_0, 46)
+ GENERATE_ENUM(SUB_CONST_1, 47)
+ GENERATE_ENUM(SIN, 48)
+ GENERATE_ENUM(COS, 49)
+ GENERATE_ENUM(RETAIN_PREV, 50)
+END_ENUMTYPE(ScalarOpcode)
+
+START_ENUMTYPE(SwizzleType)
+ GENERATE_ENUM(NO_SWIZZLE, 0)
+ GENERATE_ENUM(SHIFT_RIGHT_1, 1)
+ GENERATE_ENUM(SHIFT_RIGHT_2, 2)
+ GENERATE_ENUM(SHIFT_RIGHT_3, 3)
+END_ENUMTYPE(SwizzleType)
+
+START_ENUMTYPE(InputModifier)
+ GENERATE_ENUM(NIL, 0)
+ GENERATE_ENUM(NEGATE, 1)
+END_ENUMTYPE(InputModifier)
+
+START_ENUMTYPE(PredicateSelect)
+ GENERATE_ENUM(NO_PREDICATION, 0)
+ GENERATE_ENUM(PREDICATE_QUAD, 1)
+ GENERATE_ENUM(PREDICATED_2, 2)
+ GENERATE_ENUM(PREDICATED_3, 3)
+END_ENUMTYPE(PredicateSelect)
+
+START_ENUMTYPE(OperandSelect1)
+ GENERATE_ENUM(ABSOLUTE_REG, 0)
+ GENERATE_ENUM(RELATIVE_REG, 1)
+END_ENUMTYPE(OperandSelect1)
+
+START_ENUMTYPE(VectorOpcode)
+ GENERATE_ENUM(ADDv, 0)
+ GENERATE_ENUM(MULv, 1)
+ GENERATE_ENUM(MAXv, 2)
+ GENERATE_ENUM(MINv, 3)
+ GENERATE_ENUM(SETEv, 4)
+ GENERATE_ENUM(SETGTv, 5)
+ GENERATE_ENUM(SETGTEv, 6)
+ GENERATE_ENUM(SETNEv, 7)
+ GENERATE_ENUM(FRACv, 8)
+ GENERATE_ENUM(TRUNCv, 9)
+ GENERATE_ENUM(FLOORv, 10)
+ GENERATE_ENUM(MULADDv, 11)
+ GENERATE_ENUM(CNDEv, 12)
+ GENERATE_ENUM(CNDGTEv, 13)
+ GENERATE_ENUM(CNDGTv, 14)
+ GENERATE_ENUM(DOT4v, 15)
+ GENERATE_ENUM(DOT3v, 16)
+ GENERATE_ENUM(DOT2ADDv, 17)
+ GENERATE_ENUM(CUBEv, 18)
+ GENERATE_ENUM(MAX4v, 19)
+ GENERATE_ENUM(PRED_SETE_PUSHv, 20)
+ GENERATE_ENUM(PRED_SETNE_PUSHv, 21)
+ GENERATE_ENUM(PRED_SETGT_PUSHv, 22)
+ GENERATE_ENUM(PRED_SETGTE_PUSHv, 23)
+ GENERATE_ENUM(KILLEv, 24)
+ GENERATE_ENUM(KILLGTv, 25)
+ GENERATE_ENUM(KILLGTEv, 26)
+ GENERATE_ENUM(KILLNEv, 27)
+ GENERATE_ENUM(DSTv, 28)
+ GENERATE_ENUM(MOVAv, 29)
+END_ENUMTYPE(VectorOpcode)
+
+START_ENUMTYPE(OperandSelect0)
+ GENERATE_ENUM(CONSTANT, 0)
+ GENERATE_ENUM(NON_CONSTANT, 1)
+END_ENUMTYPE(OperandSelect0)
+
+START_ENUMTYPE(Ressource_type)
+ GENERATE_ENUM(ALU, 0)
+ GENERATE_ENUM(TEXTURE, 1)
+END_ENUMTYPE(Ressource_type)
+
+START_ENUMTYPE(Instruction_serial)
+ GENERATE_ENUM(NOT_SERIAL, 0)
+ GENERATE_ENUM(SERIAL, 1)
+END_ENUMTYPE(Instruction_serial)
+
+START_ENUMTYPE(VC_type)
+ GENERATE_ENUM(ALU_TP_REQUEST, 0)
+ GENERATE_ENUM(VC_REQUEST, 1)
+END_ENUMTYPE(VC_type)
+
+START_ENUMTYPE(Addressing)
+ GENERATE_ENUM(RELATIVE_ADDR, 0)
+ GENERATE_ENUM(ABSOLUTE_ADDR, 1)
+END_ENUMTYPE(Addressing)
+
+START_ENUMTYPE(CFOpcode)
+ GENERATE_ENUM(NOP, 0)
+ GENERATE_ENUM(EXECUTE, 1)
+ GENERATE_ENUM(EXECUTE_END, 2)
+ GENERATE_ENUM(COND_EXECUTE, 3)
+ GENERATE_ENUM(COND_EXECUTE_END, 4)
+ GENERATE_ENUM(COND_PRED_EXECUTE, 5)
+ GENERATE_ENUM(COND_PRED_EXECUTE_END, 6)
+ GENERATE_ENUM(LOOP_START, 7)
+ GENERATE_ENUM(LOOP_END, 8)
+ GENERATE_ENUM(COND_CALL, 9)
+ GENERATE_ENUM(RETURN, 10)
+ GENERATE_ENUM(COND_JMP, 11)
+ GENERATE_ENUM(ALLOCATE, 12)
+ GENERATE_ENUM(COND_EXECUTE_PRED_CLEAN, 13)
+ GENERATE_ENUM(COND_EXECUTE_PRED_CLEAN_END, 14)
+ GENERATE_ENUM(MARK_VS_FETCH_DONE, 15)
+END_ENUMTYPE(CFOpcode)
+
+START_ENUMTYPE(Allocation_type)
+ GENERATE_ENUM(SQ_NO_ALLOC, 0)
+ GENERATE_ENUM(SQ_POSITION, 1)
+ GENERATE_ENUM(SQ_PARAMETER_PIXEL, 2)
+ GENERATE_ENUM(SQ_MEMORY, 3)
+END_ENUMTYPE(Allocation_type)
+
+START_ENUMTYPE(TexInstOpcode)
+ GENERATE_ENUM(TEX_INST_FETCH, 1)
+ GENERATE_ENUM(TEX_INST_RESERVED_1, 2)
+ GENERATE_ENUM(TEX_INST_RESERVED_2, 3)
+ GENERATE_ENUM(TEX_INST_RESERVED_3, 4)
+ GENERATE_ENUM(TEX_INST_GET_BORDER_COLOR_FRAC, 16)
+ GENERATE_ENUM(TEX_INST_GET_COMP_TEX_LOD, 17)
+ GENERATE_ENUM(TEX_INST_GET_GRADIENTS, 18)
+ GENERATE_ENUM(TEX_INST_GET_WEIGHTS, 19)
+ GENERATE_ENUM(TEX_INST_SET_TEX_LOD, 24)
+ GENERATE_ENUM(TEX_INST_SET_GRADIENTS_H, 25)
+ GENERATE_ENUM(TEX_INST_SET_GRADIENTS_V, 26)
+ GENERATE_ENUM(TEX_INST_RESERVED_4, 27)
+END_ENUMTYPE(TexInstOpcode)
+
+START_ENUMTYPE(Addressmode)
+ GENERATE_ENUM(LOGICAL, 0)
+ GENERATE_ENUM(LOOP_RELATIVE, 1)
+END_ENUMTYPE(Addressmode)
+
+START_ENUMTYPE(TexCoordDenorm)
+ GENERATE_ENUM(TEX_COORD_NORMALIZED, 0)
+ GENERATE_ENUM(TEX_COORD_UNNORMALIZED, 1)
+END_ENUMTYPE(TexCoordDenorm)
+
+START_ENUMTYPE(SrcSel)
+ GENERATE_ENUM(SRC_SEL_X, 0)
+ GENERATE_ENUM(SRC_SEL_Y, 1)
+ GENERATE_ENUM(SRC_SEL_Z, 2)
+ GENERATE_ENUM(SRC_SEL_W, 3)
+END_ENUMTYPE(SrcSel)
+
+START_ENUMTYPE(DstSel)
+ GENERATE_ENUM(DST_SEL_X, 0)
+ GENERATE_ENUM(DST_SEL_Y, 1)
+ GENERATE_ENUM(DST_SEL_Z, 2)
+ GENERATE_ENUM(DST_SEL_W, 3)
+ GENERATE_ENUM(DST_SEL_0, 4)
+ GENERATE_ENUM(DST_SEL_1, 5)
+ GENERATE_ENUM(DST_SEL_RSVD, 6)
+ GENERATE_ENUM(DST_SEL_MASK, 7)
+END_ENUMTYPE(DstSel)
+
+START_ENUMTYPE(MagFilter)
+ GENERATE_ENUM(MAG_FILTER_POINT, 0)
+ GENERATE_ENUM(MAG_FILTER_LINEAR, 1)
+ GENERATE_ENUM(MAG_FILTER_RESERVED_0, 2)
+ GENERATE_ENUM(MAG_FILTER_USE_FETCH_CONST, 3)
+END_ENUMTYPE(MagFilter)
+
+START_ENUMTYPE(MinFilter)
+ GENERATE_ENUM(MIN_FILTER_POINT, 0)
+ GENERATE_ENUM(MIN_FILTER_LINEAR, 1)
+ GENERATE_ENUM(MIN_FILTER_RESERVED_0, 2)
+ GENERATE_ENUM(MIN_FILTER_USE_FETCH_CONST, 3)
+END_ENUMTYPE(MinFilter)
+
+START_ENUMTYPE(MipFilter)
+ GENERATE_ENUM(MIP_FILTER_POINT, 0)
+ GENERATE_ENUM(MIP_FILTER_LINEAR, 1)
+ GENERATE_ENUM(MIP_FILTER_BASEMAP, 2)
+ GENERATE_ENUM(MIP_FILTER_USE_FETCH_CONST, 3)
+END_ENUMTYPE(MipFilter)
+
+START_ENUMTYPE(AnisoFilter)
+ GENERATE_ENUM(ANISO_FILTER_DISABLED, 0)
+ GENERATE_ENUM(ANISO_FILTER_MAX_1_1, 1)
+ GENERATE_ENUM(ANISO_FILTER_MAX_2_1, 2)
+ GENERATE_ENUM(ANISO_FILTER_MAX_4_1, 3)
+ GENERATE_ENUM(ANISO_FILTER_MAX_8_1, 4)
+ GENERATE_ENUM(ANISO_FILTER_MAX_16_1, 5)
+ GENERATE_ENUM(ANISO_FILTER_USE_FETCH_CONST, 7)
+END_ENUMTYPE(AnisoFilter)
+
+START_ENUMTYPE(ArbitraryFilter)
+ GENERATE_ENUM(ARBITRARY_FILTER_2X4_SYM, 0)
+ GENERATE_ENUM(ARBITRARY_FILTER_2X4_ASYM, 1)
+ GENERATE_ENUM(ARBITRARY_FILTER_4X2_SYM, 2)
+ GENERATE_ENUM(ARBITRARY_FILTER_4X2_ASYM, 3)
+ GENERATE_ENUM(ARBITRARY_FILTER_4X4_SYM, 4)
+ GENERATE_ENUM(ARBITRARY_FILTER_4X4_ASYM, 5)
+ GENERATE_ENUM(ARBITRARY_FILTER_USE_FETCH_CONST, 7)
+END_ENUMTYPE(ArbitraryFilter)
+
+START_ENUMTYPE(VolMagFilter)
+ GENERATE_ENUM(VOL_MAG_FILTER_POINT, 0)
+ GENERATE_ENUM(VOL_MAG_FILTER_LINEAR, 1)
+ GENERATE_ENUM(VOL_MAG_FILTER_USE_FETCH_CONST, 3)
+END_ENUMTYPE(VolMagFilter)
+
+START_ENUMTYPE(VolMinFilter)
+ GENERATE_ENUM(VOL_MIN_FILTER_POINT, 0)
+ GENERATE_ENUM(VOL_MIN_FILTER_LINEAR, 1)
+ GENERATE_ENUM(VOL_MIN_FILTER_USE_FETCH_CONST, 3)
+END_ENUMTYPE(VolMinFilter)
+
+START_ENUMTYPE(PredSelect)
+ GENERATE_ENUM(NOT_PREDICATED, 0)
+ GENERATE_ENUM(PREDICATED, 1)
+END_ENUMTYPE(PredSelect)
+
+START_ENUMTYPE(SampleLocation)
+ GENERATE_ENUM(SAMPLE_CENTROID, 0)
+ GENERATE_ENUM(SAMPLE_CENTER, 1)
+END_ENUMTYPE(SampleLocation)
+
+START_ENUMTYPE(VertexMode)
+ GENERATE_ENUM(POSITION_1_VECTOR, 0)
+ GENERATE_ENUM(POSITION_2_VECTORS_UNUSED, 1)
+ GENERATE_ENUM(POSITION_2_VECTORS_SPRITE, 2)
+ GENERATE_ENUM(POSITION_2_VECTORS_EDGE, 3)
+ GENERATE_ENUM(POSITION_2_VECTORS_KILL, 4)
+ GENERATE_ENUM(POSITION_2_VECTORS_SPRITE_KILL, 5)
+ GENERATE_ENUM(POSITION_2_VECTORS_EDGE_KILL, 6)
+ GENERATE_ENUM(MULTIPASS, 7)
+END_ENUMTYPE(VertexMode)
+
+START_ENUMTYPE(Sample_Cntl)
+ GENERATE_ENUM(CENTROIDS_ONLY, 0)
+ GENERATE_ENUM(CENTERS_ONLY, 1)
+ GENERATE_ENUM(CENTROIDS_AND_CENTERS, 2)
+ GENERATE_ENUM(UNDEF, 3)
+END_ENUMTYPE(Sample_Cntl)
+
+START_ENUMTYPE(MhPerfEncode)
+ GENERATE_ENUM(CP_R0_REQUESTS, 0)
+ GENERATE_ENUM(CP_R1_REQUESTS, 1)
+ GENERATE_ENUM(CP_R2_REQUESTS, 2)
+ GENERATE_ENUM(CP_R3_REQUESTS, 3)
+ GENERATE_ENUM(CP_R4_REQUESTS, 4)
+ GENERATE_ENUM(CP_TOTAL_READ_REQUESTS, 5)
+ GENERATE_ENUM(CP_TOTAL_WRITE_REQUESTS, 6)
+ GENERATE_ENUM(CP_TOTAL_REQUESTS, 7)
+ GENERATE_ENUM(CP_DATA_BYTES_WRITTEN, 8)
+ GENERATE_ENUM(CP_WRITE_CLEAN_RESPONSES, 9)
+ GENERATE_ENUM(CP_R0_READ_BURSTS_RECEIVED, 10)
+ GENERATE_ENUM(CP_R1_READ_BURSTS_RECEIVED, 11)
+ GENERATE_ENUM(CP_R2_READ_BURSTS_RECEIVED, 12)
+ GENERATE_ENUM(CP_R3_READ_BURSTS_RECEIVED, 13)
+ GENERATE_ENUM(CP_R4_READ_BURSTS_RECEIVED, 14)
+ GENERATE_ENUM(CP_TOTAL_READ_BURSTS_RECEIVED, 15)
+ GENERATE_ENUM(CP_R0_DATA_BEATS_READ, 16)
+ GENERATE_ENUM(CP_R1_DATA_BEATS_READ, 17)
+ GENERATE_ENUM(CP_R2_DATA_BEATS_READ, 18)
+ GENERATE_ENUM(CP_R3_DATA_BEATS_READ, 19)
+ GENERATE_ENUM(CP_R4_DATA_BEATS_READ, 20)
+ GENERATE_ENUM(CP_TOTAL_DATA_BEATS_READ, 21)
+ GENERATE_ENUM(VGT_R0_REQUESTS, 22)
+ GENERATE_ENUM(VGT_R1_REQUESTS, 23)
+ GENERATE_ENUM(VGT_TOTAL_REQUESTS, 24)
+ GENERATE_ENUM(VGT_R0_READ_BURSTS_RECEIVED, 25)
+ GENERATE_ENUM(VGT_R1_READ_BURSTS_RECEIVED, 26)
+ GENERATE_ENUM(VGT_TOTAL_READ_BURSTS_RECEIVED, 27)
+ GENERATE_ENUM(VGT_R0_DATA_BEATS_READ, 28)
+ GENERATE_ENUM(VGT_R1_DATA_BEATS_READ, 29)
+ GENERATE_ENUM(VGT_TOTAL_DATA_BEATS_READ, 30)
+ GENERATE_ENUM(TC_TOTAL_REQUESTS, 31)
+ GENERATE_ENUM(TC_ROQ_REQUESTS, 32)
+ GENERATE_ENUM(TC_INFO_SENT, 33)
+ GENERATE_ENUM(TC_READ_BURSTS_RECEIVED, 34)
+ GENERATE_ENUM(TC_DATA_BEATS_READ, 35)
+ GENERATE_ENUM(TCD_BURSTS_READ, 36)
+ GENERATE_ENUM(RB_REQUESTS, 37)
+ GENERATE_ENUM(RB_DATA_BYTES_WRITTEN, 38)
+ GENERATE_ENUM(RB_WRITE_CLEAN_RESPONSES, 39)
+ GENERATE_ENUM(AXI_READ_REQUESTS_ID_0, 40)
+ GENERATE_ENUM(AXI_READ_REQUESTS_ID_1, 41)
+ GENERATE_ENUM(AXI_READ_REQUESTS_ID_2, 42)
+ GENERATE_ENUM(AXI_READ_REQUESTS_ID_3, 43)
+ GENERATE_ENUM(AXI_READ_REQUESTS_ID_4, 44)
+ GENERATE_ENUM(AXI_READ_REQUESTS_ID_5, 45)
+ GENERATE_ENUM(AXI_READ_REQUESTS_ID_6, 46)
+ GENERATE_ENUM(AXI_READ_REQUESTS_ID_7, 47)
+ GENERATE_ENUM(AXI_TOTAL_READ_REQUESTS, 48)
+ GENERATE_ENUM(AXI_WRITE_REQUESTS_ID_0, 49)
+ GENERATE_ENUM(AXI_WRITE_REQUESTS_ID_1, 50)
+ GENERATE_ENUM(AXI_WRITE_REQUESTS_ID_2, 51)
+ GENERATE_ENUM(AXI_WRITE_REQUESTS_ID_3, 52)
+ GENERATE_ENUM(AXI_WRITE_REQUESTS_ID_4, 53)
+ GENERATE_ENUM(AXI_WRITE_REQUESTS_ID_5, 54)
+ GENERATE_ENUM(AXI_WRITE_REQUESTS_ID_6, 55)
+ GENERATE_ENUM(AXI_WRITE_REQUESTS_ID_7, 56)
+ GENERATE_ENUM(AXI_TOTAL_WRITE_REQUESTS, 57)
+ GENERATE_ENUM(AXI_TOTAL_REQUESTS_ID_0, 58)
+ GENERATE_ENUM(AXI_TOTAL_REQUESTS_ID_1, 59)
+ GENERATE_ENUM(AXI_TOTAL_REQUESTS_ID_2, 60)
+ GENERATE_ENUM(AXI_TOTAL_REQUESTS_ID_3, 61)
+ GENERATE_ENUM(AXI_TOTAL_REQUESTS_ID_4, 62)
+ GENERATE_ENUM(AXI_TOTAL_REQUESTS_ID_5, 63)
+ GENERATE_ENUM(AXI_TOTAL_REQUESTS_ID_6, 64)
+ GENERATE_ENUM(AXI_TOTAL_REQUESTS_ID_7, 65)
+ GENERATE_ENUM(AXI_TOTAL_REQUESTS, 66)
+ GENERATE_ENUM(AXI_READ_CHANNEL_BURSTS_ID_0, 67)
+ GENERATE_ENUM(AXI_READ_CHANNEL_BURSTS_ID_1, 68)
+ GENERATE_ENUM(AXI_READ_CHANNEL_BURSTS_ID_2, 69)
+ GENERATE_ENUM(AXI_READ_CHANNEL_BURSTS_ID_3, 70)
+ GENERATE_ENUM(AXI_READ_CHANNEL_BURSTS_ID_4, 71)
+ GENERATE_ENUM(AXI_READ_CHANNEL_BURSTS_ID_5, 72)
+ GENERATE_ENUM(AXI_READ_CHANNEL_BURSTS_ID_6, 73)
+ GENERATE_ENUM(AXI_READ_CHANNEL_BURSTS_ID_7, 74)
+ GENERATE_ENUM(AXI_READ_CHANNEL_TOTAL_BURSTS, 75)
+ GENERATE_ENUM(AXI_READ_CHANNEL_DATA_BEATS_READ_ID_0, 76)
+ GENERATE_ENUM(AXI_READ_CHANNEL_DATA_BEATS_READ_ID_1, 77)
+ GENERATE_ENUM(AXI_READ_CHANNEL_DATA_BEATS_READ_ID_2, 78)
+ GENERATE_ENUM(AXI_READ_CHANNEL_DATA_BEATS_READ_ID_3, 79)
+ GENERATE_ENUM(AXI_READ_CHANNEL_DATA_BEATS_READ_ID_4, 80)
+ GENERATE_ENUM(AXI_READ_CHANNEL_DATA_BEATS_READ_ID_5, 81)
+ GENERATE_ENUM(AXI_READ_CHANNEL_DATA_BEATS_READ_ID_6, 82)
+ GENERATE_ENUM(AXI_READ_CHANNEL_DATA_BEATS_READ_ID_7, 83)
+ GENERATE_ENUM(AXI_READ_CHANNEL_TOTAL_DATA_BEATS_READ, 84)
+ GENERATE_ENUM(AXI_WRITE_CHANNEL_BURSTS_ID_0, 85)
+ GENERATE_ENUM(AXI_WRITE_CHANNEL_BURSTS_ID_1, 86)
+ GENERATE_ENUM(AXI_WRITE_CHANNEL_BURSTS_ID_2, 87)
+ GENERATE_ENUM(AXI_WRITE_CHANNEL_BURSTS_ID_3, 88)
+ GENERATE_ENUM(AXI_WRITE_CHANNEL_BURSTS_ID_4, 89)
+ GENERATE_ENUM(AXI_WRITE_CHANNEL_BURSTS_ID_5, 90)
+ GENERATE_ENUM(AXI_WRITE_CHANNEL_BURSTS_ID_6, 91)
+ GENERATE_ENUM(AXI_WRITE_CHANNEL_BURSTS_ID_7, 92)
+ GENERATE_ENUM(AXI_WRITE_CHANNEL_TOTAL_BURSTS, 93)
+ GENERATE_ENUM(AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_0, 94)
+ GENERATE_ENUM(AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_1, 95)
+ GENERATE_ENUM(AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_2, 96)
+ GENERATE_ENUM(AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_3, 97)
+ GENERATE_ENUM(AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_4, 98)
+ GENERATE_ENUM(AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_5, 99)
+ GENERATE_ENUM(AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_6, 100)
+ GENERATE_ENUM(AXI_WRITE_CHANNEL_DATA_BYTES_WRITTEN_ID_7, 101)
+ GENERATE_ENUM(AXI_WRITE_CHANNEL_TOTAL_DATA_BYTES_WRITTEN, 102)
+ GENERATE_ENUM(AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_0, 103)
+ GENERATE_ENUM(AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_1, 104)
+ GENERATE_ENUM(AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_2, 105)
+ GENERATE_ENUM(AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_3, 106)
+ GENERATE_ENUM(AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_4, 107)
+ GENERATE_ENUM(AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_5, 108)
+ GENERATE_ENUM(AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_6, 109)
+ GENERATE_ENUM(AXI_WRITE_RESPONSE_CHANNEL_RESPONSES_ID_7, 110)
+ GENERATE_ENUM(AXI_WRITE_RESPONSE_CHANNEL_TOTAL_RESPONSES, 111)
+ GENERATE_ENUM(TOTAL_MMU_MISSES, 112)
+ GENERATE_ENUM(MMU_READ_MISSES, 113)
+ GENERATE_ENUM(MMU_WRITE_MISSES, 114)
+ GENERATE_ENUM(TOTAL_MMU_HITS, 115)
+ GENERATE_ENUM(MMU_READ_HITS, 116)
+ GENERATE_ENUM(MMU_WRITE_HITS, 117)
+ GENERATE_ENUM(SPLIT_MODE_TC_HITS, 118)
+ GENERATE_ENUM(SPLIT_MODE_TC_MISSES, 119)
+ GENERATE_ENUM(SPLIT_MODE_NON_TC_HITS, 120)
+ GENERATE_ENUM(SPLIT_MODE_NON_TC_MISSES, 121)
+ GENERATE_ENUM(STALL_AWAITING_TLB_MISS_FETCH, 122)
+ GENERATE_ENUM(MMU_TLB_MISS_READ_BURSTS_RECEIVED, 123)
+ GENERATE_ENUM(MMU_TLB_MISS_DATA_BEATS_READ, 124)
+ GENERATE_ENUM(CP_CYCLES_HELD_OFF, 125)
+ GENERATE_ENUM(VGT_CYCLES_HELD_OFF, 126)
+ GENERATE_ENUM(TC_CYCLES_HELD_OFF, 127)
+ GENERATE_ENUM(TC_ROQ_CYCLES_HELD_OFF, 128)
+ GENERATE_ENUM(TC_CYCLES_HELD_OFF_TCD_FULL, 129)
+ GENERATE_ENUM(RB_CYCLES_HELD_OFF, 130)
+ GENERATE_ENUM(TOTAL_CYCLES_ANY_CLNT_HELD_OFF, 131)
+ GENERATE_ENUM(TLB_MISS_CYCLES_HELD_OFF, 132)
+ GENERATE_ENUM(AXI_READ_REQUEST_HELD_OFF, 133)
+ GENERATE_ENUM(AXI_WRITE_REQUEST_HELD_OFF, 134)
+ GENERATE_ENUM(AXI_REQUEST_HELD_OFF, 135)
+ GENERATE_ENUM(AXI_REQUEST_HELD_OFF_INFLIGHT_LIMIT, 136)
+ GENERATE_ENUM(AXI_WRITE_DATA_HELD_OFF, 137)
+ GENERATE_ENUM(CP_SAME_PAGE_BANK_REQUESTS, 138)
+ GENERATE_ENUM(VGT_SAME_PAGE_BANK_REQUESTS, 139)
+ GENERATE_ENUM(TC_SAME_PAGE_BANK_REQUESTS, 140)
+ GENERATE_ENUM(TC_ARB_HOLD_SAME_PAGE_BANK_REQUESTS, 141)
+ GENERATE_ENUM(RB_SAME_PAGE_BANK_REQUESTS, 142)
+ GENERATE_ENUM(TOTAL_SAME_PAGE_BANK_REQUESTS, 143)
+ GENERATE_ENUM(CP_SAME_PAGE_BANK_REQUESTS_KILLED_FAIRNESS_LIMIT, 144)
+ GENERATE_ENUM(VGT_SAME_PAGE_BANK_REQUESTS_KILLED_FAIRNESS_LIMIT, 145)
+ GENERATE_ENUM(TC_SAME_PAGE_BANK_REQUESTS_KILLED_FAIRNESS_LIMIT, 146)
+ GENERATE_ENUM(RB_SAME_PAGE_BANK_REQUESTS_KILLED_FAIRNESS_LIMIT, 147)
+ GENERATE_ENUM(TOTAL_SAME_PAGE_BANK_KILLED_FAIRNESS_LIMIT, 148)
+ GENERATE_ENUM(TOTAL_MH_READ_REQUESTS, 149)
+ GENERATE_ENUM(TOTAL_MH_WRITE_REQUESTS, 150)
+ GENERATE_ENUM(TOTAL_MH_REQUESTS, 151)
+ GENERATE_ENUM(MH_BUSY, 152)
+ GENERATE_ENUM(CP_NTH_ACCESS_SAME_PAGE_BANK_SEQUENCE, 153)
+ GENERATE_ENUM(VGT_NTH_ACCESS_SAME_PAGE_BANK_SEQUENCE, 154)
+ GENERATE_ENUM(TC_NTH_ACCESS_SAME_PAGE_BANK_SEQUENCE, 155)
+ GENERATE_ENUM(RB_NTH_ACCESS_SAME_PAGE_BANK_SEQUENCE, 156)
+ GENERATE_ENUM(TC_ROQ_N_VALID_ENTRIES, 157)
+ GENERATE_ENUM(ARQ_N_ENTRIES, 158)
+ GENERATE_ENUM(WDB_N_ENTRIES, 159)
+ GENERATE_ENUM(MH_READ_LATENCY_OUTST_REQ_SUM, 160)
+ GENERATE_ENUM(MC_READ_LATENCY_OUTST_REQ_SUM, 161)
+ GENERATE_ENUM(MC_TOTAL_READ_REQUESTS, 162)
+ GENERATE_ENUM(ELAPSED_CYCLES_MH_GATED_CLK, 163)
+ GENERATE_ENUM(ELAPSED_CLK_CYCLES, 164)
+ GENERATE_ENUM(CP_W_16B_REQUESTS, 165)
+ GENERATE_ENUM(CP_W_32B_REQUESTS, 166)
+ GENERATE_ENUM(TC_16B_REQUESTS, 167)
+ GENERATE_ENUM(TC_32B_REQUESTS, 168)
+ GENERATE_ENUM(PA_REQUESTS, 169)
+ GENERATE_ENUM(PA_DATA_BYTES_WRITTEN, 170)
+ GENERATE_ENUM(PA_WRITE_CLEAN_RESPONSES, 171)
+ GENERATE_ENUM(PA_CYCLES_HELD_OFF, 172)
+ GENERATE_ENUM(AXI_READ_REQUEST_DATA_BEATS_ID_0, 173)
+ GENERATE_ENUM(AXI_READ_REQUEST_DATA_BEATS_ID_1, 174)
+ GENERATE_ENUM(AXI_READ_REQUEST_DATA_BEATS_ID_2, 175)
+ GENERATE_ENUM(AXI_READ_REQUEST_DATA_BEATS_ID_3, 176)
+ GENERATE_ENUM(AXI_READ_REQUEST_DATA_BEATS_ID_4, 177)
+ GENERATE_ENUM(AXI_READ_REQUEST_DATA_BEATS_ID_5, 178)
+ GENERATE_ENUM(AXI_READ_REQUEST_DATA_BEATS_ID_6, 179)
+ GENERATE_ENUM(AXI_READ_REQUEST_DATA_BEATS_ID_7, 180)
+ GENERATE_ENUM(AXI_TOTAL_READ_REQUEST_DATA_BEATS, 181)
+END_ENUMTYPE(MhPerfEncode)
+
+START_ENUMTYPE(MmuClntBeh)
+ GENERATE_ENUM(BEH_NEVR, 0)
+ GENERATE_ENUM(BEH_TRAN_RNG, 1)
+ GENERATE_ENUM(BEH_TRAN_FLT, 2)
+END_ENUMTYPE(MmuClntBeh)
+
+START_ENUMTYPE(RBBM_PERFCOUNT1_SEL)
+ GENERATE_ENUM(RBBM1_COUNT, 0)
+ GENERATE_ENUM(RBBM1_NRT_BUSY, 1)
+ GENERATE_ENUM(RBBM1_RB_BUSY, 2)
+ GENERATE_ENUM(RBBM1_SQ_CNTX0_BUSY, 3)
+ GENERATE_ENUM(RBBM1_SQ_CNTX17_BUSY, 4)
+ GENERATE_ENUM(RBBM1_VGT_BUSY, 5)
+ GENERATE_ENUM(RBBM1_VGT_NODMA_BUSY, 6)
+ GENERATE_ENUM(RBBM1_PA_BUSY, 7)
+ GENERATE_ENUM(RBBM1_SC_CNTX_BUSY, 8)
+ GENERATE_ENUM(RBBM1_TPC_BUSY, 9)
+ GENERATE_ENUM(RBBM1_TC_BUSY, 10)
+ GENERATE_ENUM(RBBM1_SX_BUSY, 11)
+ GENERATE_ENUM(RBBM1_CP_COHER_BUSY, 12)
+ GENERATE_ENUM(RBBM1_CP_NRT_BUSY, 13)
+ GENERATE_ENUM(RBBM1_GFX_IDLE_STALL, 14)
+ GENERATE_ENUM(RBBM1_INTERRUPT, 15)
+END_ENUMTYPE(RBBM_PERFCOUNT1_SEL)
+
+START_ENUMTYPE(CP_PERFCOUNT_SEL)
+ GENERATE_ENUM(ALWAYS_COUNT, 0)
+ GENERATE_ENUM(TRANS_FIFO_FULL, 1)
+ GENERATE_ENUM(TRANS_FIFO_AF, 2)
+ GENERATE_ENUM(RCIU_PFPTRANS_WAIT, 3)
+ GENERATE_ENUM(Reserved_04, 4)
+ GENERATE_ENUM(Reserved_05, 5)
+ GENERATE_ENUM(RCIU_NRTTRANS_WAIT, 6)
+ GENERATE_ENUM(Reserved_07, 7)
+ GENERATE_ENUM(CSF_NRT_READ_WAIT, 8)
+ GENERATE_ENUM(CSF_I1_FIFO_FULL, 9)
+ GENERATE_ENUM(CSF_I2_FIFO_FULL, 10)
+ GENERATE_ENUM(CSF_ST_FIFO_FULL, 11)
+ GENERATE_ENUM(Reserved_12, 12)
+ GENERATE_ENUM(CSF_RING_ROQ_FULL, 13)
+ GENERATE_ENUM(CSF_I1_ROQ_FULL, 14)
+ GENERATE_ENUM(CSF_I2_ROQ_FULL, 15)
+ GENERATE_ENUM(CSF_ST_ROQ_FULL, 16)
+ GENERATE_ENUM(Reserved_17, 17)
+ GENERATE_ENUM(MIU_TAG_MEM_FULL, 18)
+ GENERATE_ENUM(MIU_WRITECLEAN, 19)
+ GENERATE_ENUM(Reserved_20, 20)
+ GENERATE_ENUM(Reserved_21, 21)
+ GENERATE_ENUM(MIU_NRT_WRITE_STALLED, 22)
+ GENERATE_ENUM(MIU_NRT_READ_STALLED, 23)
+ GENERATE_ENUM(ME_WRITE_CONFIRM_FIFO_FULL, 24)
+ GENERATE_ENUM(ME_VS_DEALLOC_FIFO_FULL, 25)
+ GENERATE_ENUM(ME_PS_DEALLOC_FIFO_FULL, 26)
+ GENERATE_ENUM(ME_REGS_VS_EVENT_FIFO_FULL, 27)
+ GENERATE_ENUM(ME_REGS_PS_EVENT_FIFO_FULL, 28)
+ GENERATE_ENUM(ME_REGS_CF_EVENT_FIFO_FULL, 29)
+ GENERATE_ENUM(ME_MICRO_RB_STARVED, 30)
+ GENERATE_ENUM(ME_MICRO_I1_STARVED, 31)
+ GENERATE_ENUM(ME_MICRO_I2_STARVED, 32)
+ GENERATE_ENUM(ME_MICRO_ST_STARVED, 33)
+ GENERATE_ENUM(Reserved_34, 34)
+ GENERATE_ENUM(Reserved_35, 35)
+ GENERATE_ENUM(Reserved_36, 36)
+ GENERATE_ENUM(Reserved_37, 37)
+ GENERATE_ENUM(Reserved_38, 38)
+ GENERATE_ENUM(Reserved_39, 39)
+ GENERATE_ENUM(RCIU_RBBM_DWORD_SENT, 40)
+ GENERATE_ENUM(ME_BUSY_CLOCKS, 41)
+ GENERATE_ENUM(ME_WAIT_CONTEXT_AVAIL, 42)
+ GENERATE_ENUM(PFP_TYPE0_PACKET, 43)
+ GENERATE_ENUM(PFP_TYPE3_PACKET, 44)
+ GENERATE_ENUM(CSF_RB_WPTR_NEQ_RPTR, 45)
+ GENERATE_ENUM(CSF_I1_SIZE_NEQ_ZERO, 46)
+ GENERATE_ENUM(CSF_I2_SIZE_NEQ_ZERO, 47)
+ GENERATE_ENUM(CSF_RBI1I2_FETCHING, 48)
+ GENERATE_ENUM(Reserved_49, 49)
+ GENERATE_ENUM(Reserved_50, 50)
+ GENERATE_ENUM(Reserved_51, 51)
+ GENERATE_ENUM(Reserved_52, 52)
+ GENERATE_ENUM(Reserved_53, 53)
+ GENERATE_ENUM(Reserved_54, 54)
+ GENERATE_ENUM(Reserved_55, 55)
+ GENERATE_ENUM(Reserved_56, 56)
+ GENERATE_ENUM(Reserved_57, 57)
+ GENERATE_ENUM(Reserved_58, 58)
+ GENERATE_ENUM(Reserved_59, 59)
+ GENERATE_ENUM(Reserved_60, 60)
+ GENERATE_ENUM(Reserved_61, 61)
+ GENERATE_ENUM(Reserved_62, 62)
+ GENERATE_ENUM(Reserved_63, 63)
+END_ENUMTYPE(CP_PERFCOUNT_SEL)
+
+START_ENUMTYPE(ColorformatX)
+ GENERATE_ENUM(COLORX_4_4_4_4, 0)
+ GENERATE_ENUM(COLORX_1_5_5_5, 1)
+ GENERATE_ENUM(COLORX_5_6_5, 2)
+ GENERATE_ENUM(COLORX_8, 3)
+ GENERATE_ENUM(COLORX_8_8, 4)
+ GENERATE_ENUM(COLORX_8_8_8_8, 5)
+ GENERATE_ENUM(COLORX_S8_8_8_8, 6)
+ GENERATE_ENUM(COLORX_16_FLOAT, 7)
+ GENERATE_ENUM(COLORX_16_16_FLOAT, 8)
+ GENERATE_ENUM(COLORX_16_16_16_16_FLOAT, 9)
+ GENERATE_ENUM(COLORX_32_FLOAT, 10)
+ GENERATE_ENUM(COLORX_32_32_FLOAT, 11)
+ GENERATE_ENUM(COLORX_32_32_32_32_FLOAT, 12)
+ GENERATE_ENUM(COLORX_2_3_3, 13)
+ GENERATE_ENUM(COLORX_8_8_8, 14)
+END_ENUMTYPE(ColorformatX)
+
+START_ENUMTYPE(DepthformatX)
+ GENERATE_ENUM(DEPTHX_16, 0)
+ GENERATE_ENUM(DEPTHX_24_8, 1)
+END_ENUMTYPE(DepthformatX)
+
+START_ENUMTYPE(CompareFrag)
+ GENERATE_ENUM(FRAG_NEVER, 0)
+ GENERATE_ENUM(FRAG_LESS, 1)
+ GENERATE_ENUM(FRAG_EQUAL, 2)
+ GENERATE_ENUM(FRAG_LEQUAL, 3)
+ GENERATE_ENUM(FRAG_GREATER, 4)
+ GENERATE_ENUM(FRAG_NOTEQUAL, 5)
+ GENERATE_ENUM(FRAG_GEQUAL, 6)
+ GENERATE_ENUM(FRAG_ALWAYS, 7)
+END_ENUMTYPE(CompareFrag)
+
+START_ENUMTYPE(CompareRef)
+ GENERATE_ENUM(REF_NEVER, 0)
+ GENERATE_ENUM(REF_LESS, 1)
+ GENERATE_ENUM(REF_EQUAL, 2)
+ GENERATE_ENUM(REF_LEQUAL, 3)
+ GENERATE_ENUM(REF_GREATER, 4)
+ GENERATE_ENUM(REF_NOTEQUAL, 5)
+ GENERATE_ENUM(REF_GEQUAL, 6)
+ GENERATE_ENUM(REF_ALWAYS, 7)
+END_ENUMTYPE(CompareRef)
+
+START_ENUMTYPE(StencilOp)
+ GENERATE_ENUM(STENCIL_KEEP, 0)
+ GENERATE_ENUM(STENCIL_ZERO, 1)
+ GENERATE_ENUM(STENCIL_REPLACE, 2)
+ GENERATE_ENUM(STENCIL_INCR_CLAMP, 3)
+ GENERATE_ENUM(STENCIL_DECR_CLAMP, 4)
+ GENERATE_ENUM(STENCIL_INVERT, 5)
+ GENERATE_ENUM(STENCIL_INCR_WRAP, 6)
+ GENERATE_ENUM(STENCIL_DECR_WRAP, 7)
+END_ENUMTYPE(StencilOp)
+
+START_ENUMTYPE(BlendOpX)
+ GENERATE_ENUM(BLENDX_ZERO, 0)
+ GENERATE_ENUM(BLENDX_ONE, 1)
+ GENERATE_ENUM(BLENDX_SRC_COLOR, 4)
+ GENERATE_ENUM(BLENDX_ONE_MINUS_SRC_COLOR, 5)
+ GENERATE_ENUM(BLENDX_SRC_ALPHA, 6)
+ GENERATE_ENUM(BLENDX_ONE_MINUS_SRC_ALPHA, 7)
+ GENERATE_ENUM(BLENDX_DST_COLOR, 8)
+ GENERATE_ENUM(BLENDX_ONE_MINUS_DST_COLOR, 9)
+ GENERATE_ENUM(BLENDX_DST_ALPHA, 10)
+ GENERATE_ENUM(BLENDX_ONE_MINUS_DST_ALPHA, 11)
+ GENERATE_ENUM(BLENDX_CONSTANT_COLOR, 12)
+ GENERATE_ENUM(BLENDX_ONE_MINUS_CONSTANT_COLOR, 13)
+ GENERATE_ENUM(BLENDX_CONSTANT_ALPHA, 14)
+ GENERATE_ENUM(BLENDX_ONE_MINUS_CONSTANT_ALPHA, 15)
+ GENERATE_ENUM(BLENDX_SRC_ALPHA_SATURATE, 16)
+END_ENUMTYPE(BlendOpX)
+
+START_ENUMTYPE(CombFuncX)
+ GENERATE_ENUM(COMB_DST_PLUS_SRC, 0)
+ GENERATE_ENUM(COMB_SRC_MINUS_DST, 1)
+ GENERATE_ENUM(COMB_MIN_DST_SRC, 2)
+ GENERATE_ENUM(COMB_MAX_DST_SRC, 3)
+ GENERATE_ENUM(COMB_DST_MINUS_SRC, 4)
+ GENERATE_ENUM(COMB_DST_PLUS_SRC_BIAS, 5)
+END_ENUMTYPE(CombFuncX)
+
+START_ENUMTYPE(DitherModeX)
+ GENERATE_ENUM(DITHER_DISABLE, 0)
+ GENERATE_ENUM(DITHER_ALWAYS, 1)
+ GENERATE_ENUM(DITHER_IF_ALPHA_OFF, 2)
+END_ENUMTYPE(DitherModeX)
+
+START_ENUMTYPE(DitherTypeX)
+ GENERATE_ENUM(DITHER_PIXEL, 0)
+ GENERATE_ENUM(DITHER_SUBPIXEL, 1)
+END_ENUMTYPE(DitherTypeX)
+
+START_ENUMTYPE(EdramMode)
+ GENERATE_ENUM(EDRAM_NOP, 0)
+ GENERATE_ENUM(COLOR_DEPTH, 4)
+ GENERATE_ENUM(DEPTH_ONLY, 5)
+ GENERATE_ENUM(EDRAM_COPY, 6)
+END_ENUMTYPE(EdramMode)
+
+START_ENUMTYPE(SurfaceEndian)
+ GENERATE_ENUM(ENDIAN_NONE, 0)
+ GENERATE_ENUM(ENDIAN_8IN16, 1)
+ GENERATE_ENUM(ENDIAN_8IN32, 2)
+ GENERATE_ENUM(ENDIAN_16IN32, 3)
+ GENERATE_ENUM(ENDIAN_8IN64, 4)
+ GENERATE_ENUM(ENDIAN_8IN128, 5)
+END_ENUMTYPE(SurfaceEndian)
+
+START_ENUMTYPE(EdramSizeX)
+ GENERATE_ENUM(EDRAMSIZE_16KB, 0)
+ GENERATE_ENUM(EDRAMSIZE_32KB, 1)
+ GENERATE_ENUM(EDRAMSIZE_64KB, 2)
+ GENERATE_ENUM(EDRAMSIZE_128KB, 3)
+ GENERATE_ENUM(EDRAMSIZE_256KB, 4)
+ GENERATE_ENUM(EDRAMSIZE_512KB, 5)
+ GENERATE_ENUM(EDRAMSIZE_1MB, 6)
+ GENERATE_ENUM(EDRAMSIZE_2MB, 7)
+ GENERATE_ENUM(EDRAMSIZE_4MB, 8)
+ GENERATE_ENUM(EDRAMSIZE_8MB, 9)
+ GENERATE_ENUM(EDRAMSIZE_16MB, 10)
+END_ENUMTYPE(EdramSizeX)
+
+START_ENUMTYPE(RB_PERFCNT_SELECT)
+ GENERATE_ENUM(RBPERF_CNTX_BUSY, 0)
+ GENERATE_ENUM(RBPERF_CNTX_BUSY_MAX, 1)
+ GENERATE_ENUM(RBPERF_SX_QUAD_STARVED, 2)
+ GENERATE_ENUM(RBPERF_SX_QUAD_STARVED_MAX, 3)
+ GENERATE_ENUM(RBPERF_GA_GC_CH0_SYS_REQ, 4)
+ GENERATE_ENUM(RBPERF_GA_GC_CH0_SYS_REQ_MAX, 5)
+ GENERATE_ENUM(RBPERF_GA_GC_CH1_SYS_REQ, 6)
+ GENERATE_ENUM(RBPERF_GA_GC_CH1_SYS_REQ_MAX, 7)
+ GENERATE_ENUM(RBPERF_MH_STARVED, 8)
+ GENERATE_ENUM(RBPERF_MH_STARVED_MAX, 9)
+ GENERATE_ENUM(RBPERF_AZ_BC_COLOR_BUSY, 10)
+ GENERATE_ENUM(RBPERF_AZ_BC_COLOR_BUSY_MAX, 11)
+ GENERATE_ENUM(RBPERF_AZ_BC_Z_BUSY, 12)
+ GENERATE_ENUM(RBPERF_AZ_BC_Z_BUSY_MAX, 13)
+ GENERATE_ENUM(RBPERF_RB_SC_TILE_RTR_N, 14)
+ GENERATE_ENUM(RBPERF_RB_SC_TILE_RTR_N_MAX, 15)
+ GENERATE_ENUM(RBPERF_RB_SC_SAMP_RTR_N, 16)
+ GENERATE_ENUM(RBPERF_RB_SC_SAMP_RTR_N_MAX, 17)
+ GENERATE_ENUM(RBPERF_RB_SX_QUAD_RTR_N, 18)
+ GENERATE_ENUM(RBPERF_RB_SX_QUAD_RTR_N_MAX, 19)
+ GENERATE_ENUM(RBPERF_RB_SX_COLOR_RTR_N, 20)
+ GENERATE_ENUM(RBPERF_RB_SX_COLOR_RTR_N_MAX, 21)
+ GENERATE_ENUM(RBPERF_RB_SC_SAMP_LZ_BUSY, 22)
+ GENERATE_ENUM(RBPERF_RB_SC_SAMP_LZ_BUSY_MAX, 23)
+ GENERATE_ENUM(RBPERF_ZXP_STALL, 24)
+ GENERATE_ENUM(RBPERF_ZXP_STALL_MAX, 25)
+ GENERATE_ENUM(RBPERF_EVENT_PENDING, 26)
+ GENERATE_ENUM(RBPERF_EVENT_PENDING_MAX, 27)
+ GENERATE_ENUM(RBPERF_RB_MH_VALID, 28)
+ GENERATE_ENUM(RBPERF_RB_MH_VALID_MAX, 29)
+ GENERATE_ENUM(RBPERF_SX_RB_QUAD_SEND, 30)
+ GENERATE_ENUM(RBPERF_SX_RB_COLOR_SEND, 31)
+ GENERATE_ENUM(RBPERF_SC_RB_TILE_SEND, 32)
+ GENERATE_ENUM(RBPERF_SC_RB_SAMPLE_SEND, 33)
+ GENERATE_ENUM(RBPERF_SX_RB_MEM_EXPORT, 34)
+ GENERATE_ENUM(RBPERF_SX_RB_QUAD_EVENT, 35)
+ GENERATE_ENUM(RBPERF_SC_RB_TILE_EVENT_FILTERED, 36)
+ GENERATE_ENUM(RBPERF_SC_RB_TILE_EVENT_ALL, 37)
+ GENERATE_ENUM(RBPERF_RB_SC_EZ_SEND, 38)
+ GENERATE_ENUM(RBPERF_RB_SX_INDEX_SEND, 39)
+ GENERATE_ENUM(RBPERF_GMEM_INTFO_RD, 40)
+ GENERATE_ENUM(RBPERF_GMEM_INTF1_RD, 41)
+ GENERATE_ENUM(RBPERF_GMEM_INTFO_WR, 42)
+ GENERATE_ENUM(RBPERF_GMEM_INTF1_WR, 43)
+ GENERATE_ENUM(RBPERF_RB_CP_CONTEXT_DONE, 44)
+ GENERATE_ENUM(RBPERF_RB_CP_CACHE_FLUSH, 45)
+ GENERATE_ENUM(RBPERF_ZPASS_DONE, 46)
+ GENERATE_ENUM(RBPERF_ZCMD_VALID, 47)
+ GENERATE_ENUM(RBPERF_CCMD_VALID, 48)
+ GENERATE_ENUM(RBPERF_ACCUM_GRANT, 49)
+ GENERATE_ENUM(RBPERF_ACCUM_C0_GRANT, 50)
+ GENERATE_ENUM(RBPERF_ACCUM_C1_GRANT, 51)
+ GENERATE_ENUM(RBPERF_ACCUM_FULL_BE_WR, 52)
+ GENERATE_ENUM(RBPERF_ACCUM_REQUEST_NO_GRANT, 53)
+ GENERATE_ENUM(RBPERF_ACCUM_TIMEOUT_PULSE, 54)
+ GENERATE_ENUM(RBPERF_ACCUM_LIN_TIMEOUT_PULSE, 55)
+ GENERATE_ENUM(RBPERF_ACCUM_CAM_HIT_FLUSHING, 56)
+END_ENUMTYPE(RB_PERFCNT_SELECT)
+
+START_ENUMTYPE(DepthFormat)
+ GENERATE_ENUM(DEPTH_24_8, 22)
+ GENERATE_ENUM(DEPTH_24_8_FLOAT, 23)
+ GENERATE_ENUM(DEPTH_16, 24)
+END_ENUMTYPE(DepthFormat)
+
+START_ENUMTYPE(SurfaceSwap)
+ GENERATE_ENUM(SWAP_LOWRED, 0)
+ GENERATE_ENUM(SWAP_LOWBLUE, 1)
+END_ENUMTYPE(SurfaceSwap)
+
+START_ENUMTYPE(DepthArray)
+ GENERATE_ENUM(ARRAY_2D_ALT_DEPTH, 0)
+ GENERATE_ENUM(ARRAY_2D_DEPTH, 1)
+END_ENUMTYPE(DepthArray)
+
+START_ENUMTYPE(ColorArray)
+ GENERATE_ENUM(ARRAY_2D_ALT_COLOR, 0)
+ GENERATE_ENUM(ARRAY_2D_COLOR, 1)
+ GENERATE_ENUM(ARRAY_3D_SLICE_COLOR, 3)
+END_ENUMTYPE(ColorArray)
+
+START_ENUMTYPE(ColorFormat)
+ GENERATE_ENUM(COLOR_8, 2)
+ GENERATE_ENUM(COLOR_1_5_5_5, 3)
+ GENERATE_ENUM(COLOR_5_6_5, 4)
+ GENERATE_ENUM(COLOR_6_5_5, 5)
+ GENERATE_ENUM(COLOR_8_8_8_8, 6)
+ GENERATE_ENUM(COLOR_2_10_10_10, 7)
+ GENERATE_ENUM(COLOR_8_A, 8)
+ GENERATE_ENUM(COLOR_8_B, 9)
+ GENERATE_ENUM(COLOR_8_8, 10)
+ GENERATE_ENUM(COLOR_8_8_8, 11)
+ GENERATE_ENUM(COLOR_8_8_8_8_A, 14)
+ GENERATE_ENUM(COLOR_4_4_4_4, 15)
+ GENERATE_ENUM(COLOR_10_11_11, 16)
+ GENERATE_ENUM(COLOR_11_11_10, 17)
+ GENERATE_ENUM(COLOR_16, 24)
+ GENERATE_ENUM(COLOR_16_16, 25)
+ GENERATE_ENUM(COLOR_16_16_16_16, 26)
+ GENERATE_ENUM(COLOR_16_FLOAT, 30)
+ GENERATE_ENUM(COLOR_16_16_FLOAT, 31)
+ GENERATE_ENUM(COLOR_16_16_16_16_FLOAT, 32)
+ GENERATE_ENUM(COLOR_32_FLOAT, 36)
+ GENERATE_ENUM(COLOR_32_32_FLOAT, 37)
+ GENERATE_ENUM(COLOR_32_32_32_32_FLOAT, 38)
+ GENERATE_ENUM(COLOR_2_3_3, 39)
+END_ENUMTYPE(ColorFormat)
+
+START_ENUMTYPE(SurfaceNumber)
+ GENERATE_ENUM(NUMBER_UREPEAT, 0)
+ GENERATE_ENUM(NUMBER_SREPEAT, 1)
+ GENERATE_ENUM(NUMBER_UINTEGER, 2)
+ GENERATE_ENUM(NUMBER_SINTEGER, 3)
+ GENERATE_ENUM(NUMBER_GAMMA, 4)
+ GENERATE_ENUM(NUMBER_FIXED, 5)
+ GENERATE_ENUM(NUMBER_FLOAT, 7)
+END_ENUMTYPE(SurfaceNumber)
+
+START_ENUMTYPE(SurfaceFormat)
+ GENERATE_ENUM(FMT_1_REVERSE, 0)
+ GENERATE_ENUM(FMT_1, 1)
+ GENERATE_ENUM(FMT_8, 2)
+ GENERATE_ENUM(FMT_1_5_5_5, 3)
+ GENERATE_ENUM(FMT_5_6_5, 4)
+ GENERATE_ENUM(FMT_6_5_5, 5)
+ GENERATE_ENUM(FMT_8_8_8_8, 6)
+ GENERATE_ENUM(FMT_2_10_10_10, 7)
+ GENERATE_ENUM(FMT_8_A, 8)
+ GENERATE_ENUM(FMT_8_B, 9)
+ GENERATE_ENUM(FMT_8_8, 10)
+ GENERATE_ENUM(FMT_Cr_Y1_Cb_Y0, 11)
+ GENERATE_ENUM(FMT_Y1_Cr_Y0_Cb, 12)
+ GENERATE_ENUM(FMT_5_5_5_1, 13)
+ GENERATE_ENUM(FMT_8_8_8_8_A, 14)
+ GENERATE_ENUM(FMT_4_4_4_4, 15)
+ GENERATE_ENUM(FMT_8_8_8, 16)
+ GENERATE_ENUM(FMT_DXT1, 18)
+ GENERATE_ENUM(FMT_DXT2_3, 19)
+ GENERATE_ENUM(FMT_DXT4_5, 20)
+ GENERATE_ENUM(FMT_10_10_10_2, 21)
+ GENERATE_ENUM(FMT_24_8, 22)
+ GENERATE_ENUM(FMT_16, 24)
+ GENERATE_ENUM(FMT_16_16, 25)
+ GENERATE_ENUM(FMT_16_16_16_16, 26)
+ GENERATE_ENUM(FMT_16_EXPAND, 27)
+ GENERATE_ENUM(FMT_16_16_EXPAND, 28)
+ GENERATE_ENUM(FMT_16_16_16_16_EXPAND, 29)
+ GENERATE_ENUM(FMT_16_FLOAT, 30)
+ GENERATE_ENUM(FMT_16_16_FLOAT, 31)
+ GENERATE_ENUM(FMT_16_16_16_16_FLOAT, 32)
+ GENERATE_ENUM(FMT_32, 33)
+ GENERATE_ENUM(FMT_32_32, 34)
+ GENERATE_ENUM(FMT_32_32_32_32, 35)
+ GENERATE_ENUM(FMT_32_FLOAT, 36)
+ GENERATE_ENUM(FMT_32_32_FLOAT, 37)
+ GENERATE_ENUM(FMT_32_32_32_32_FLOAT, 38)
+ GENERATE_ENUM(FMT_ATI_TC_RGB, 39)
+ GENERATE_ENUM(FMT_ATI_TC_RGBA, 40)
+ GENERATE_ENUM(FMT_ATI_TC_555_565_RGB, 41)
+ GENERATE_ENUM(FMT_ATI_TC_555_565_RGBA, 42)
+ GENERATE_ENUM(FMT_ATI_TC_RGBA_INTERP, 43)
+ GENERATE_ENUM(FMT_ATI_TC_555_565_RGBA_INTERP, 44)
+ GENERATE_ENUM(FMT_ETC1_RGBA_INTERP, 46)
+ GENERATE_ENUM(FMT_ETC1_RGB, 47)
+ GENERATE_ENUM(FMT_ETC1_RGBA, 48)
+ GENERATE_ENUM(FMT_DXN, 49)
+ GENERATE_ENUM(FMT_2_3_3, 51)
+ GENERATE_ENUM(FMT_2_10_10_10_AS_16_16_16_16, 54)
+ GENERATE_ENUM(FMT_10_10_10_2_AS_16_16_16_16, 55)
+ GENERATE_ENUM(FMT_32_32_32_FLOAT, 57)
+ GENERATE_ENUM(FMT_DXT3A, 58)
+ GENERATE_ENUM(FMT_DXT5A, 59)
+ GENERATE_ENUM(FMT_CTX1, 60)
+END_ENUMTYPE(SurfaceFormat)
+
+START_ENUMTYPE(SurfaceTiling)
+ GENERATE_ENUM(ARRAY_LINEAR, 0)
+ GENERATE_ENUM(ARRAY_TILED, 1)
+END_ENUMTYPE(SurfaceTiling)
+
+START_ENUMTYPE(SurfaceArray)
+ GENERATE_ENUM(ARRAY_1D, 0)
+ GENERATE_ENUM(ARRAY_2D, 1)
+ GENERATE_ENUM(ARRAY_3D, 2)
+ GENERATE_ENUM(ARRAY_3D_SLICE, 3)
+END_ENUMTYPE(SurfaceArray)
+
+START_ENUMTYPE(SurfaceNumberX)
+ GENERATE_ENUM(NUMBERX_UREPEAT, 0)
+ GENERATE_ENUM(NUMBERX_SREPEAT, 1)
+ GENERATE_ENUM(NUMBERX_UINTEGER, 2)
+ GENERATE_ENUM(NUMBERX_SINTEGER, 3)
+ GENERATE_ENUM(NUMBERX_FLOAT, 7)
+END_ENUMTYPE(SurfaceNumberX)
+
+START_ENUMTYPE(ColorArrayX)
+ GENERATE_ENUM(ARRAYX_2D_COLOR, 0)
+ GENERATE_ENUM(ARRAYX_3D_SLICE_COLOR, 1)
+END_ENUMTYPE(ColorArrayX)
+
+
+
+
+// **************************************************************************
+// These are ones that had to be added in addition to what's generated
+// by the autoreg (in CSIM)
+// **************************************************************************
+START_ENUMTYPE(DXClipSpaceDef)
+ GENERATE_ENUM(DXCLIP_OPENGL, 0)
+ GENERATE_ENUM(DXCLIP_DIRECTX, 1)
+END_ENUMTYPE(DXClipSpaceDef)
+
+START_ENUMTYPE(PixCenter)
+ GENERATE_ENUM(PIXCENTER_D3D, 0)
+ GENERATE_ENUM(PIXCENTER_OGL, 1)
+END_ENUMTYPE(PixCenter)
+
+START_ENUMTYPE(RoundMode)
+ GENERATE_ENUM(TRUNCATE, 0)
+ GENERATE_ENUM(ROUND, 1)
+ GENERATE_ENUM(ROUNDTOEVEN, 2)
+ GENERATE_ENUM(ROUNDTOODD, 3)
+END_ENUMTYPE(RoundMode)
+
+START_ENUMTYPE(QuantMode)
+ GENERATE_ENUM(ONE_SIXTEENTH, 0)
+ GENERATE_ENUM(ONE_EIGHTH, 1)
+ GENERATE_ENUM(ONE_QUARTER, 2)
+ GENERATE_ENUM(ONE_HALF, 3)
+ GENERATE_ENUM(ONE, 4)
+END_ENUMTYPE(QuantMode)
+
+START_ENUMTYPE(FrontFace)
+ GENERATE_ENUM(FRONT_CCW, 0)
+ GENERATE_ENUM(FRONT_CW, 1)
+END_ENUMTYPE(FrontFace)
+
+START_ENUMTYPE(PolyMode)
+ GENERATE_ENUM(DISABLED, 0)
+ GENERATE_ENUM(DUALMODE, 1)
+END_ENUMTYPE(PolyMode)
+
+START_ENUMTYPE(PType)
+ GENERATE_ENUM(DRAW_POINTS, 0)
+ GENERATE_ENUM(DRAW_LINES, 1)
+ GENERATE_ENUM(DRAW_TRIANGLES, 2)
+END_ENUMTYPE(PType)
+
+START_ENUMTYPE(MSAANumSamples)
+ GENERATE_ENUM(ONE, 0)
+ GENERATE_ENUM(TWO, 1)
+ GENERATE_ENUM(FOUR, 3)
+END_ENUMTYPE(MSAANumSamples)
+
+START_ENUMTYPE(PatternBitOrder)
+ GENERATE_ENUM(LITTLE, 0)
+ GENERATE_ENUM(BIG, 1)
+END_ENUMTYPE(PatternBitOrder)
+
+START_ENUMTYPE(AutoResetCntl)
+ GENERATE_ENUM(NEVER, 0)
+ GENERATE_ENUM(EACHPRIMITIVE, 1)
+ GENERATE_ENUM(EACHPACKET, 2)
+END_ENUMTYPE(AutoResetCntl)
+
+START_ENUMTYPE(ParamShade)
+ GENERATE_ENUM(FLAT, 0)
+ GENERATE_ENUM(GOURAUD, 1)
+END_ENUMTYPE(ParamShade)
+
+START_ENUMTYPE(SamplingPattern)
+ GENERATE_ENUM(CENTROID, 0)
+ GENERATE_ENUM(PIXCENTER, 1)
+END_ENUMTYPE(SamplingPattern)
+
+START_ENUMTYPE(MSAASamples)
+ GENERATE_ENUM(ONE, 0)
+ GENERATE_ENUM(TWO, 1)
+ GENERATE_ENUM(FOUR, 2)
+END_ENUMTYPE(MSAASamples)
+
+START_ENUMTYPE(CopySampleSelect)
+ GENERATE_ENUM(SAMPLE_0, 0)
+ GENERATE_ENUM(SAMPLE_1, 1)
+ GENERATE_ENUM(SAMPLE_2, 2)
+ GENERATE_ENUM(SAMPLE_3, 3)
+ GENERATE_ENUM(SAMPLE_01, 4)
+ GENERATE_ENUM(SAMPLE_23, 5)
+ GENERATE_ENUM(SAMPLE_0123, 6)
+END_ENUMTYPE(CopySampleSelect)
+
+
+#undef START_ENUMTYPE
+#undef GENERATE_ENUM
+#undef END_ENUMTYPE
+
+
diff --git a/drivers/mxc/amd-gpu/include/reg/yamato/22/yamato_genreg.h b/drivers/mxc/amd-gpu/include/reg/yamato/22/yamato_genreg.h
new file mode 100644
index 000000000000..d04379887b78
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/reg/yamato/22/yamato_genreg.h
@@ -0,0 +1,3405 @@
+/* Copyright (c) 2002,2007-2009, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+START_REGISTER(PA_CL_VPORT_XSCALE)
+ GENERATE_FIELD(VPORT_XSCALE, float)
+END_REGISTER(PA_CL_VPORT_XSCALE)
+
+START_REGISTER(PA_CL_VPORT_XOFFSET)
+ GENERATE_FIELD(VPORT_XOFFSET, float)
+END_REGISTER(PA_CL_VPORT_XOFFSET)
+
+START_REGISTER(PA_CL_VPORT_YSCALE)
+ GENERATE_FIELD(VPORT_YSCALE, float)
+END_REGISTER(PA_CL_VPORT_YSCALE)
+
+START_REGISTER(PA_CL_VPORT_YOFFSET)
+ GENERATE_FIELD(VPORT_YOFFSET, float)
+END_REGISTER(PA_CL_VPORT_YOFFSET)
+
+START_REGISTER(PA_CL_VPORT_ZSCALE)
+ GENERATE_FIELD(VPORT_ZSCALE, float)
+END_REGISTER(PA_CL_VPORT_ZSCALE)
+
+START_REGISTER(PA_CL_VPORT_ZOFFSET)
+ GENERATE_FIELD(VPORT_ZOFFSET, float)
+END_REGISTER(PA_CL_VPORT_ZOFFSET)
+
+START_REGISTER(PA_CL_VTE_CNTL)
+ GENERATE_FIELD(VPORT_X_SCALE_ENA, bool)
+ GENERATE_FIELD(VPORT_X_OFFSET_ENA, bool)
+ GENERATE_FIELD(VPORT_Y_SCALE_ENA, bool)
+ GENERATE_FIELD(VPORT_Y_OFFSET_ENA, bool)
+ GENERATE_FIELD(VPORT_Z_SCALE_ENA, bool)
+ GENERATE_FIELD(VPORT_Z_OFFSET_ENA, bool)
+ GENERATE_FIELD(VTX_XY_FMT, bool)
+ GENERATE_FIELD(VTX_Z_FMT, bool)
+ GENERATE_FIELD(VTX_W0_FMT, bool)
+ GENERATE_FIELD(PERFCOUNTER_REF, bool)
+END_REGISTER(PA_CL_VTE_CNTL)
+
+START_REGISTER(PA_CL_CLIP_CNTL)
+ GENERATE_FIELD(CLIP_DISABLE, bool)
+ GENERATE_FIELD(BOUNDARY_EDGE_FLAG_ENA, bool)
+ GENERATE_FIELD(DX_CLIP_SPACE_DEF, DXClipSpaceDef)
+ GENERATE_FIELD(DIS_CLIP_ERR_DETECT, bool)
+ GENERATE_FIELD(VTX_KILL_OR, bool)
+ GENERATE_FIELD(XY_NAN_RETAIN, bool)
+ GENERATE_FIELD(Z_NAN_RETAIN, bool)
+ GENERATE_FIELD(W_NAN_RETAIN, bool)
+END_REGISTER(PA_CL_CLIP_CNTL)
+
+START_REGISTER(PA_CL_GB_VERT_CLIP_ADJ)
+ GENERATE_FIELD(DATA_REGISTER, float)
+END_REGISTER(PA_CL_GB_VERT_CLIP_ADJ)
+
+START_REGISTER(PA_CL_GB_VERT_DISC_ADJ)
+ GENERATE_FIELD(DATA_REGISTER, float)
+END_REGISTER(PA_CL_GB_VERT_DISC_ADJ)
+
+START_REGISTER(PA_CL_GB_HORZ_CLIP_ADJ)
+ GENERATE_FIELD(DATA_REGISTER, float)
+END_REGISTER(PA_CL_GB_HORZ_CLIP_ADJ)
+
+START_REGISTER(PA_CL_GB_HORZ_DISC_ADJ)
+ GENERATE_FIELD(DATA_REGISTER, float)
+END_REGISTER(PA_CL_GB_HORZ_DISC_ADJ)
+
+START_REGISTER(PA_CL_ENHANCE)
+ GENERATE_FIELD(CLIP_VTX_REORDER_ENA, bool)
+ GENERATE_FIELD(ECO_SPARE3, int)
+ GENERATE_FIELD(ECO_SPARE2, int)
+ GENERATE_FIELD(ECO_SPARE1, int)
+ GENERATE_FIELD(ECO_SPARE0, int)
+END_REGISTER(PA_CL_ENHANCE)
+
+START_REGISTER(PA_SC_ENHANCE)
+ GENERATE_FIELD(ECO_SPARE3, int)
+ GENERATE_FIELD(ECO_SPARE2, int)
+ GENERATE_FIELD(ECO_SPARE1, int)
+ GENERATE_FIELD(ECO_SPARE0, int)
+END_REGISTER(PA_SC_ENHANCE)
+
+START_REGISTER(PA_SU_VTX_CNTL)
+ GENERATE_FIELD(PIX_CENTER, PixCenter)
+ GENERATE_FIELD(ROUND_MODE, RoundMode)
+ GENERATE_FIELD(QUANT_MODE, QuantMode)
+END_REGISTER(PA_SU_VTX_CNTL)
+
+START_REGISTER(PA_SU_POINT_SIZE)
+ GENERATE_FIELD(HEIGHT, fixed12_4)
+ GENERATE_FIELD(WIDTH, fixed12_4)
+END_REGISTER(PA_SU_POINT_SIZE)
+
+START_REGISTER(PA_SU_POINT_MINMAX)
+ GENERATE_FIELD(MIN_SIZE, fixed12_4)
+ GENERATE_FIELD(MAX_SIZE, fixed12_4)
+END_REGISTER(PA_SU_POINT_MINMAX)
+
+START_REGISTER(PA_SU_LINE_CNTL)
+ GENERATE_FIELD(WIDTH, fixed12_4)
+END_REGISTER(PA_SU_LINE_CNTL)
+
+START_REGISTER(PA_SU_FACE_DATA)
+ GENERATE_FIELD(BASE_ADDR, int)
+END_REGISTER(PA_SU_FACE_DATA)
+
+START_REGISTER(PA_SU_SC_MODE_CNTL)
+ GENERATE_FIELD(CULL_FRONT, bool)
+ GENERATE_FIELD(CULL_BACK, bool)
+ GENERATE_FIELD(FACE, FrontFace)
+ GENERATE_FIELD(POLY_MODE, PolyMode)
+ GENERATE_FIELD(POLYMODE_FRONT_PTYPE, PType)
+ GENERATE_FIELD(POLYMODE_BACK_PTYPE, PType)
+ GENERATE_FIELD(POLY_OFFSET_FRONT_ENABLE, bool)
+ GENERATE_FIELD(POLY_OFFSET_BACK_ENABLE, bool)
+ GENERATE_FIELD(POLY_OFFSET_PARA_ENABLE, bool)
+ GENERATE_FIELD(MSAA_ENABLE, bool)
+ GENERATE_FIELD(VTX_WINDOW_OFFSET_ENABLE, bool)
+ GENERATE_FIELD(LINE_STIPPLE_ENABLE, bool)
+ GENERATE_FIELD(PROVOKING_VTX_LAST, bool)
+ GENERATE_FIELD(PERSP_CORR_DIS, bool)
+ GENERATE_FIELD(MULTI_PRIM_IB_ENA, bool)
+ GENERATE_FIELD(QUAD_ORDER_ENABLE, bool)
+ GENERATE_FIELD(WAIT_RB_IDLE_ALL_TRI, bool)
+ GENERATE_FIELD(WAIT_RB_IDLE_FIRST_TRI_NEW_STATE, bool)
+ GENERATE_FIELD(CLAMPED_FACENESS, bool)
+ GENERATE_FIELD(ZERO_AREA_FACENESS, bool)
+ GENERATE_FIELD(FACE_KILL_ENABLE, bool)
+ GENERATE_FIELD(FACE_WRITE_ENABLE, bool)
+END_REGISTER(PA_SU_SC_MODE_CNTL)
+
+START_REGISTER(PA_SU_POLY_OFFSET_FRONT_SCALE)
+ GENERATE_FIELD(SCALE, float)
+END_REGISTER(PA_SU_POLY_OFFSET_FRONT_SCALE)
+
+START_REGISTER(PA_SU_POLY_OFFSET_FRONT_OFFSET)
+ GENERATE_FIELD(OFFSET, float)
+END_REGISTER(PA_SU_POLY_OFFSET_FRONT_OFFSET)
+
+START_REGISTER(PA_SU_POLY_OFFSET_BACK_SCALE)
+ GENERATE_FIELD(SCALE, float)
+END_REGISTER(PA_SU_POLY_OFFSET_BACK_SCALE)
+
+START_REGISTER(PA_SU_POLY_OFFSET_BACK_OFFSET)
+ GENERATE_FIELD(OFFSET, float)
+END_REGISTER(PA_SU_POLY_OFFSET_BACK_OFFSET)
+
+START_REGISTER(PA_SU_PERFCOUNTER0_SELECT)
+ GENERATE_FIELD(PERF_SEL, SU_PERFCNT_SELECT)
+END_REGISTER(PA_SU_PERFCOUNTER0_SELECT)
+
+START_REGISTER(PA_SU_PERFCOUNTER1_SELECT)
+ GENERATE_FIELD(PERF_SEL, int)
+END_REGISTER(PA_SU_PERFCOUNTER1_SELECT)
+
+START_REGISTER(PA_SU_PERFCOUNTER2_SELECT)
+ GENERATE_FIELD(PERF_SEL, int)
+END_REGISTER(PA_SU_PERFCOUNTER2_SELECT)
+
+START_REGISTER(PA_SU_PERFCOUNTER3_SELECT)
+ GENERATE_FIELD(PERF_SEL, int)
+END_REGISTER(PA_SU_PERFCOUNTER3_SELECT)
+
+START_REGISTER(PA_SU_PERFCOUNTER0_LOW)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(PA_SU_PERFCOUNTER0_LOW)
+
+START_REGISTER(PA_SU_PERFCOUNTER0_HI)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(PA_SU_PERFCOUNTER0_HI)
+
+START_REGISTER(PA_SU_PERFCOUNTER1_LOW)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(PA_SU_PERFCOUNTER1_LOW)
+
+START_REGISTER(PA_SU_PERFCOUNTER1_HI)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(PA_SU_PERFCOUNTER1_HI)
+
+START_REGISTER(PA_SU_PERFCOUNTER2_LOW)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(PA_SU_PERFCOUNTER2_LOW)
+
+START_REGISTER(PA_SU_PERFCOUNTER2_HI)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(PA_SU_PERFCOUNTER2_HI)
+
+START_REGISTER(PA_SU_PERFCOUNTER3_LOW)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(PA_SU_PERFCOUNTER3_LOW)
+
+START_REGISTER(PA_SU_PERFCOUNTER3_HI)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(PA_SU_PERFCOUNTER3_HI)
+
+START_REGISTER(PA_SC_WINDOW_OFFSET)
+ GENERATE_FIELD(WINDOW_X_OFFSET, signedint15)
+ GENERATE_FIELD(WINDOW_Y_OFFSET, signedint15)
+END_REGISTER(PA_SC_WINDOW_OFFSET)
+
+START_REGISTER(PA_SC_AA_CONFIG)
+ GENERATE_FIELD(MSAA_NUM_SAMPLES, MSAANumSamples)
+ GENERATE_FIELD(MAX_SAMPLE_DIST, int)
+END_REGISTER(PA_SC_AA_CONFIG)
+
+START_REGISTER(PA_SC_AA_MASK)
+ GENERATE_FIELD(AA_MASK, hex)
+END_REGISTER(PA_SC_AA_MASK)
+
+START_REGISTER(PA_SC_LINE_STIPPLE)
+ GENERATE_FIELD(LINE_PATTERN, hex)
+ GENERATE_FIELD(REPEAT_COUNT, intMinusOne)
+ GENERATE_FIELD(PATTERN_BIT_ORDER, PatternBitOrder)
+ GENERATE_FIELD(AUTO_RESET_CNTL, AutoResetCntl)
+END_REGISTER(PA_SC_LINE_STIPPLE)
+
+START_REGISTER(PA_SC_LINE_CNTL)
+ GENERATE_FIELD(BRES_CNTL, int)
+ GENERATE_FIELD(USE_BRES_CNTL, bool)
+ GENERATE_FIELD(EXPAND_LINE_WIDTH, bool)
+ GENERATE_FIELD(LAST_PIXEL, bool)
+END_REGISTER(PA_SC_LINE_CNTL)
+
+START_REGISTER(PA_SC_WINDOW_SCISSOR_TL)
+ GENERATE_FIELD(TL_X, int)
+ GENERATE_FIELD(TL_Y, int)
+ GENERATE_FIELD(WINDOW_OFFSET_DISABLE, bool)
+END_REGISTER(PA_SC_WINDOW_SCISSOR_TL)
+
+START_REGISTER(PA_SC_WINDOW_SCISSOR_BR)
+ GENERATE_FIELD(BR_X, int)
+ GENERATE_FIELD(BR_Y, int)
+END_REGISTER(PA_SC_WINDOW_SCISSOR_BR)
+
+START_REGISTER(PA_SC_SCREEN_SCISSOR_TL)
+ GENERATE_FIELD(TL_X, int)
+ GENERATE_FIELD(TL_Y, int)
+END_REGISTER(PA_SC_SCREEN_SCISSOR_TL)
+
+START_REGISTER(PA_SC_SCREEN_SCISSOR_BR)
+ GENERATE_FIELD(BR_X, int)
+ GENERATE_FIELD(BR_Y, int)
+END_REGISTER(PA_SC_SCREEN_SCISSOR_BR)
+
+START_REGISTER(PA_SC_VIZ_QUERY)
+ GENERATE_FIELD(VIZ_QUERY_ENA, bool)
+ GENERATE_FIELD(VIZ_QUERY_ID, int)
+ GENERATE_FIELD(KILL_PIX_POST_EARLY_Z, bool)
+END_REGISTER(PA_SC_VIZ_QUERY)
+
+START_REGISTER(PA_SC_VIZ_QUERY_STATUS)
+ GENERATE_FIELD(STATUS_BITS, hex)
+END_REGISTER(PA_SC_VIZ_QUERY_STATUS)
+
+START_REGISTER(PA_SC_LINE_STIPPLE_STATE)
+ GENERATE_FIELD(CURRENT_PTR, int)
+ GENERATE_FIELD(CURRENT_COUNT, int)
+END_REGISTER(PA_SC_LINE_STIPPLE_STATE)
+
+START_REGISTER(PA_SC_PERFCOUNTER0_SELECT)
+ GENERATE_FIELD(PERF_SEL, SC_PERFCNT_SELECT)
+END_REGISTER(PA_SC_PERFCOUNTER0_SELECT)
+
+START_REGISTER(PA_SC_PERFCOUNTER0_LOW)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(PA_SC_PERFCOUNTER0_LOW)
+
+START_REGISTER(PA_SC_PERFCOUNTER0_HI)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(PA_SC_PERFCOUNTER0_HI)
+
+START_REGISTER(PA_CL_CNTL_STATUS)
+ GENERATE_FIELD(CL_BUSY, int)
+END_REGISTER(PA_CL_CNTL_STATUS)
+
+START_REGISTER(PA_SU_CNTL_STATUS)
+ GENERATE_FIELD(SU_BUSY, int)
+END_REGISTER(PA_SU_CNTL_STATUS)
+
+START_REGISTER(PA_SC_CNTL_STATUS)
+ GENERATE_FIELD(SC_BUSY, int)
+END_REGISTER(PA_SC_CNTL_STATUS)
+
+START_REGISTER(PA_SU_DEBUG_CNTL)
+ GENERATE_FIELD(SU_DEBUG_INDX, int)
+END_REGISTER(PA_SU_DEBUG_CNTL)
+
+START_REGISTER(PA_SU_DEBUG_DATA)
+ GENERATE_FIELD(DATA, hex)
+END_REGISTER(PA_SU_DEBUG_DATA)
+
+START_REGISTER(PA_SC_DEBUG_CNTL)
+ GENERATE_FIELD(SC_DEBUG_INDX, int)
+END_REGISTER(PA_SC_DEBUG_CNTL)
+
+START_REGISTER(PA_SC_DEBUG_DATA)
+ GENERATE_FIELD(DATA, int)
+END_REGISTER(PA_SC_DEBUG_DATA)
+
+START_REGISTER(GFX_COPY_STATE)
+ GENERATE_FIELD(SRC_STATE_ID, int)
+END_REGISTER(GFX_COPY_STATE)
+
+START_REGISTER(VGT_DRAW_INITIATOR)
+ GENERATE_FIELD(PRIM_TYPE, VGT_DI_PRIM_TYPE)
+ GENERATE_FIELD(SOURCE_SELECT, VGT_DI_SOURCE_SELECT)
+ GENERATE_FIELD(FACENESS_CULL_SELECT, VGT_DI_FACENESS_CULL_SELECT)
+ GENERATE_FIELD(INDEX_SIZE, VGT_DI_INDEX_SIZE)
+ GENERATE_FIELD(NOT_EOP, bool)
+ GENERATE_FIELD(SMALL_INDEX, VGT_DI_SMALL_INDEX)
+ GENERATE_FIELD(PRE_FETCH_CULL_ENABLE, VGT_DI_PRE_FETCH_CULL_ENABLE)
+ GENERATE_FIELD(GRP_CULL_ENABLE, VGT_DI_GRP_CULL_ENABLE)
+ GENERATE_FIELD(NUM_INDICES, uint)
+END_REGISTER(VGT_DRAW_INITIATOR)
+
+START_REGISTER(VGT_EVENT_INITIATOR)
+ GENERATE_FIELD(EVENT_TYPE, VGT_EVENT_TYPE)
+END_REGISTER(VGT_EVENT_INITIATOR)
+
+START_REGISTER(VGT_DMA_BASE)
+ GENERATE_FIELD(BASE_ADDR, uint)
+END_REGISTER(VGT_DMA_BASE)
+
+START_REGISTER(VGT_DMA_SIZE)
+ GENERATE_FIELD(NUM_WORDS, uint)
+ GENERATE_FIELD(SWAP_MODE, VGT_DMA_SWAP_MODE)
+END_REGISTER(VGT_DMA_SIZE)
+
+START_REGISTER(VGT_BIN_BASE)
+ GENERATE_FIELD(BIN_BASE_ADDR, uint)
+END_REGISTER(VGT_BIN_BASE)
+
+START_REGISTER(VGT_BIN_SIZE)
+ GENERATE_FIELD(NUM_WORDS, uint)
+ GENERATE_FIELD(FACENESS_FETCH, int)
+ GENERATE_FIELD(FACENESS_RESET, int)
+END_REGISTER(VGT_BIN_SIZE)
+
+START_REGISTER(VGT_CURRENT_BIN_ID_MIN)
+ GENERATE_FIELD(COLUMN, int)
+ GENERATE_FIELD(ROW, int)
+ GENERATE_FIELD(GUARD_BAND, int)
+END_REGISTER(VGT_CURRENT_BIN_ID_MIN)
+
+START_REGISTER(VGT_CURRENT_BIN_ID_MAX)
+ GENERATE_FIELD(COLUMN, int)
+ GENERATE_FIELD(ROW, int)
+ GENERATE_FIELD(GUARD_BAND, int)
+END_REGISTER(VGT_CURRENT_BIN_ID_MAX)
+
+START_REGISTER(VGT_IMMED_DATA)
+ GENERATE_FIELD(DATA, hex)
+END_REGISTER(VGT_IMMED_DATA)
+
+START_REGISTER(VGT_MAX_VTX_INDX)
+ GENERATE_FIELD(MAX_INDX, int)
+END_REGISTER(VGT_MAX_VTX_INDX)
+
+START_REGISTER(VGT_MIN_VTX_INDX)
+ GENERATE_FIELD(MIN_INDX, int)
+END_REGISTER(VGT_MIN_VTX_INDX)
+
+START_REGISTER(VGT_INDX_OFFSET)
+ GENERATE_FIELD(INDX_OFFSET, int)
+END_REGISTER(VGT_INDX_OFFSET)
+
+START_REGISTER(VGT_VERTEX_REUSE_BLOCK_CNTL)
+ GENERATE_FIELD(VTX_REUSE_DEPTH, int)
+END_REGISTER(VGT_VERTEX_REUSE_BLOCK_CNTL)
+
+START_REGISTER(VGT_OUT_DEALLOC_CNTL)
+ GENERATE_FIELD(DEALLOC_DIST, int)
+END_REGISTER(VGT_OUT_DEALLOC_CNTL)
+
+START_REGISTER(VGT_MULTI_PRIM_IB_RESET_INDX)
+ GENERATE_FIELD(RESET_INDX, int)
+END_REGISTER(VGT_MULTI_PRIM_IB_RESET_INDX)
+
+START_REGISTER(VGT_ENHANCE)
+ GENERATE_FIELD(MISC, hex)
+END_REGISTER(VGT_ENHANCE)
+
+START_REGISTER(VGT_VTX_VECT_EJECT_REG)
+ GENERATE_FIELD(PRIM_COUNT, int)
+END_REGISTER(VGT_VTX_VECT_EJECT_REG)
+
+START_REGISTER(VGT_LAST_COPY_STATE)
+ GENERATE_FIELD(SRC_STATE_ID, int)
+ GENERATE_FIELD(DST_STATE_ID, int)
+END_REGISTER(VGT_LAST_COPY_STATE)
+
+START_REGISTER(VGT_DEBUG_CNTL)
+ GENERATE_FIELD(VGT_DEBUG_INDX, int)
+END_REGISTER(VGT_DEBUG_CNTL)
+
+START_REGISTER(VGT_DEBUG_DATA)
+ GENERATE_FIELD(DATA, hex)
+END_REGISTER(VGT_DEBUG_DATA)
+
+START_REGISTER(VGT_CNTL_STATUS)
+ GENERATE_FIELD(VGT_BUSY, int)
+ GENERATE_FIELD(VGT_DMA_BUSY, int)
+ GENERATE_FIELD(VGT_DMA_REQ_BUSY, int)
+ GENERATE_FIELD(VGT_GRP_BUSY, int)
+ GENERATE_FIELD(VGT_VR_BUSY, int)
+ GENERATE_FIELD(VGT_BIN_BUSY, int)
+ GENERATE_FIELD(VGT_PT_BUSY, int)
+ GENERATE_FIELD(VGT_OUT_BUSY, int)
+ GENERATE_FIELD(VGT_OUT_INDX_BUSY, int)
+END_REGISTER(VGT_CNTL_STATUS)
+
+START_REGISTER(VGT_CRC_SQ_DATA)
+ GENERATE_FIELD(CRC, hex)
+END_REGISTER(VGT_CRC_SQ_DATA)
+
+START_REGISTER(VGT_CRC_SQ_CTRL)
+ GENERATE_FIELD(CRC, hex)
+END_REGISTER(VGT_CRC_SQ_CTRL)
+
+START_REGISTER(VGT_PERFCOUNTER0_SELECT)
+ GENERATE_FIELD(PERF_SEL, VGT_PERFCOUNT_SELECT)
+END_REGISTER(VGT_PERFCOUNTER0_SELECT)
+
+START_REGISTER(VGT_PERFCOUNTER1_SELECT)
+ GENERATE_FIELD(PERF_SEL, VGT_PERFCOUNT_SELECT)
+END_REGISTER(VGT_PERFCOUNTER1_SELECT)
+
+START_REGISTER(VGT_PERFCOUNTER2_SELECT)
+ GENERATE_FIELD(PERF_SEL, VGT_PERFCOUNT_SELECT)
+END_REGISTER(VGT_PERFCOUNTER2_SELECT)
+
+START_REGISTER(VGT_PERFCOUNTER3_SELECT)
+ GENERATE_FIELD(PERF_SEL, VGT_PERFCOUNT_SELECT)
+END_REGISTER(VGT_PERFCOUNTER3_SELECT)
+
+START_REGISTER(VGT_PERFCOUNTER0_LOW)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(VGT_PERFCOUNTER0_LOW)
+
+START_REGISTER(VGT_PERFCOUNTER1_LOW)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(VGT_PERFCOUNTER1_LOW)
+
+START_REGISTER(VGT_PERFCOUNTER2_LOW)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(VGT_PERFCOUNTER2_LOW)
+
+START_REGISTER(VGT_PERFCOUNTER3_LOW)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(VGT_PERFCOUNTER3_LOW)
+
+START_REGISTER(VGT_PERFCOUNTER0_HI)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(VGT_PERFCOUNTER0_HI)
+
+START_REGISTER(VGT_PERFCOUNTER1_HI)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(VGT_PERFCOUNTER1_HI)
+
+START_REGISTER(VGT_PERFCOUNTER2_HI)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(VGT_PERFCOUNTER2_HI)
+
+START_REGISTER(VGT_PERFCOUNTER3_HI)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(VGT_PERFCOUNTER3_HI)
+
+START_REGISTER(TC_CNTL_STATUS)
+ GENERATE_FIELD(L2_INVALIDATE, int)
+ GENERATE_FIELD(TC_L2_HIT_MISS, int)
+ GENERATE_FIELD(TC_BUSY, int)
+END_REGISTER(TC_CNTL_STATUS)
+
+START_REGISTER(TCR_CHICKEN)
+ GENERATE_FIELD(SPARE, hex)
+END_REGISTER(TCR_CHICKEN)
+
+START_REGISTER(TCF_CHICKEN)
+ GENERATE_FIELD(SPARE, hex)
+END_REGISTER(TCF_CHICKEN)
+
+START_REGISTER(TCM_CHICKEN)
+ GENERATE_FIELD(TCO_READ_LATENCY_FIFO_PROG_DEPTH, int)
+ GENERATE_FIELD(ETC_COLOR_ENDIAN, int)
+ GENERATE_FIELD(SPARE, hex)
+END_REGISTER(TCM_CHICKEN)
+
+START_REGISTER(TCR_PERFCOUNTER0_SELECT)
+ GENERATE_FIELD(PERFCOUNTER_SELECT, TCR_PERFCOUNT_SELECT)
+END_REGISTER(TCR_PERFCOUNTER0_SELECT)
+
+START_REGISTER(TCR_PERFCOUNTER1_SELECT)
+ GENERATE_FIELD(PERFCOUNTER_SELECT, TCR_PERFCOUNT_SELECT)
+END_REGISTER(TCR_PERFCOUNTER1_SELECT)
+
+START_REGISTER(TCR_PERFCOUNTER0_HI)
+ GENERATE_FIELD(PERFCOUNTER_HI, int)
+END_REGISTER(TCR_PERFCOUNTER0_HI)
+
+START_REGISTER(TCR_PERFCOUNTER1_HI)
+ GENERATE_FIELD(PERFCOUNTER_HI, int)
+END_REGISTER(TCR_PERFCOUNTER1_HI)
+
+START_REGISTER(TCR_PERFCOUNTER0_LOW)
+ GENERATE_FIELD(PERFCOUNTER_LOW, int)
+END_REGISTER(TCR_PERFCOUNTER0_LOW)
+
+START_REGISTER(TCR_PERFCOUNTER1_LOW)
+ GENERATE_FIELD(PERFCOUNTER_LOW, int)
+END_REGISTER(TCR_PERFCOUNTER1_LOW)
+
+START_REGISTER(TP_TC_CLKGATE_CNTL)
+ GENERATE_FIELD(TP_BUSY_EXTEND, int)
+ GENERATE_FIELD(TC_BUSY_EXTEND, int)
+END_REGISTER(TP_TC_CLKGATE_CNTL)
+
+START_REGISTER(TPC_CNTL_STATUS)
+ GENERATE_FIELD(TPC_INPUT_BUSY, int)
+ GENERATE_FIELD(TPC_TC_FIFO_BUSY, int)
+ GENERATE_FIELD(TPC_STATE_FIFO_BUSY, int)
+ GENERATE_FIELD(TPC_FETCH_FIFO_BUSY, int)
+ GENERATE_FIELD(TPC_WALKER_PIPE_BUSY, int)
+ GENERATE_FIELD(TPC_WALK_FIFO_BUSY, int)
+ GENERATE_FIELD(TPC_WALKER_BUSY, int)
+ GENERATE_FIELD(TPC_ALIGNER_PIPE_BUSY, int)
+ GENERATE_FIELD(TPC_ALIGN_FIFO_BUSY, int)
+ GENERATE_FIELD(TPC_ALIGNER_BUSY, int)
+ GENERATE_FIELD(TPC_RR_FIFO_BUSY, int)
+ GENERATE_FIELD(TPC_BLEND_PIPE_BUSY, int)
+ GENERATE_FIELD(TPC_OUT_FIFO_BUSY, int)
+ GENERATE_FIELD(TPC_BLEND_BUSY, int)
+ GENERATE_FIELD(TF_TW_RTS, int)
+ GENERATE_FIELD(TF_TW_STATE_RTS, int)
+ GENERATE_FIELD(TF_TW_RTR, int)
+ GENERATE_FIELD(TW_TA_RTS, int)
+ GENERATE_FIELD(TW_TA_TT_RTS, int)
+ GENERATE_FIELD(TW_TA_LAST_RTS, int)
+ GENERATE_FIELD(TW_TA_RTR, int)
+ GENERATE_FIELD(TA_TB_RTS, int)
+ GENERATE_FIELD(TA_TB_TT_RTS, int)
+ GENERATE_FIELD(TA_TB_RTR, int)
+ GENERATE_FIELD(TA_TF_RTS, int)
+ GENERATE_FIELD(TA_TF_TC_FIFO_REN, int)
+ GENERATE_FIELD(TP_SQ_DEC, int)
+ GENERATE_FIELD(TPC_BUSY, int)
+END_REGISTER(TPC_CNTL_STATUS)
+
+START_REGISTER(TPC_DEBUG0)
+ GENERATE_FIELD(LOD_CNTL, int)
+ GENERATE_FIELD(IC_CTR, int)
+ GENERATE_FIELD(WALKER_CNTL, int)
+ GENERATE_FIELD(ALIGNER_CNTL, int)
+ GENERATE_FIELD(PREV_TC_STATE_VALID, int)
+ GENERATE_FIELD(WALKER_STATE, int)
+ GENERATE_FIELD(ALIGNER_STATE, int)
+ GENERATE_FIELD(REG_CLK_EN, int)
+ GENERATE_FIELD(TPC_CLK_EN, int)
+ GENERATE_FIELD(SQ_TP_WAKEUP, int)
+END_REGISTER(TPC_DEBUG0)
+
+START_REGISTER(TPC_DEBUG1)
+ GENERATE_FIELD(UNUSED, int)
+END_REGISTER(TPC_DEBUG1)
+
+START_REGISTER(TPC_CHICKEN)
+ GENERATE_FIELD(BLEND_PRECISION, int)
+ GENERATE_FIELD(SPARE, int)
+END_REGISTER(TPC_CHICKEN)
+
+START_REGISTER(TP0_CNTL_STATUS)
+ GENERATE_FIELD(TP_INPUT_BUSY, int)
+ GENERATE_FIELD(TP_LOD_BUSY, int)
+ GENERATE_FIELD(TP_LOD_FIFO_BUSY, int)
+ GENERATE_FIELD(TP_ADDR_BUSY, int)
+ GENERATE_FIELD(TP_ALIGN_FIFO_BUSY, int)
+ GENERATE_FIELD(TP_ALIGNER_BUSY, int)
+ GENERATE_FIELD(TP_TC_FIFO_BUSY, int)
+ GENERATE_FIELD(TP_RR_FIFO_BUSY, int)
+ GENERATE_FIELD(TP_FETCH_BUSY, int)
+ GENERATE_FIELD(TP_CH_BLEND_BUSY, int)
+ GENERATE_FIELD(TP_TT_BUSY, int)
+ GENERATE_FIELD(TP_HICOLOR_BUSY, int)
+ GENERATE_FIELD(TP_BLEND_BUSY, int)
+ GENERATE_FIELD(TP_OUT_FIFO_BUSY, int)
+ GENERATE_FIELD(TP_OUTPUT_BUSY, int)
+ GENERATE_FIELD(IN_LC_RTS, int)
+ GENERATE_FIELD(LC_LA_RTS, int)
+ GENERATE_FIELD(LA_FL_RTS, int)
+ GENERATE_FIELD(FL_TA_RTS, int)
+ GENERATE_FIELD(TA_FA_RTS, int)
+ GENERATE_FIELD(TA_FA_TT_RTS, int)
+ GENERATE_FIELD(FA_AL_RTS, int)
+ GENERATE_FIELD(FA_AL_TT_RTS, int)
+ GENERATE_FIELD(AL_TF_RTS, int)
+ GENERATE_FIELD(AL_TF_TT_RTS, int)
+ GENERATE_FIELD(TF_TB_RTS, int)
+ GENERATE_FIELD(TF_TB_TT_RTS, int)
+ GENERATE_FIELD(TB_TT_RTS, int)
+ GENERATE_FIELD(TB_TT_TT_RESET, int)
+ GENERATE_FIELD(TB_TO_RTS, int)
+ GENERATE_FIELD(TP_BUSY, int)
+END_REGISTER(TP0_CNTL_STATUS)
+
+START_REGISTER(TP0_DEBUG)
+ GENERATE_FIELD(Q_LOD_CNTL, int)
+ GENERATE_FIELD(Q_SQ_TP_WAKEUP, int)
+ GENERATE_FIELD(FL_TA_ADDRESSER_CNTL, int)
+ GENERATE_FIELD(REG_CLK_EN, int)
+ GENERATE_FIELD(PERF_CLK_EN, int)
+ GENERATE_FIELD(TP_CLK_EN, int)
+ GENERATE_FIELD(Q_WALKER_CNTL, int)
+ GENERATE_FIELD(Q_ALIGNER_CNTL, int)
+END_REGISTER(TP0_DEBUG)
+
+START_REGISTER(TP0_CHICKEN)
+ GENERATE_FIELD(TT_MODE, int)
+ GENERATE_FIELD(VFETCH_ADDRESS_MODE, int)
+ GENERATE_FIELD(SPARE, int)
+END_REGISTER(TP0_CHICKEN)
+
+START_REGISTER(TP0_PERFCOUNTER0_SELECT)
+ GENERATE_FIELD(PERFCOUNTER_SELECT, TP_PERFCOUNT_SELECT)
+END_REGISTER(TP0_PERFCOUNTER0_SELECT)
+
+START_REGISTER(TP0_PERFCOUNTER0_HI)
+ GENERATE_FIELD(PERFCOUNTER_HI, int)
+END_REGISTER(TP0_PERFCOUNTER0_HI)
+
+START_REGISTER(TP0_PERFCOUNTER0_LOW)
+ GENERATE_FIELD(PERFCOUNTER_LOW, int)
+END_REGISTER(TP0_PERFCOUNTER0_LOW)
+
+START_REGISTER(TP0_PERFCOUNTER1_SELECT)
+ GENERATE_FIELD(PERFCOUNTER_SELECT, int)
+END_REGISTER(TP0_PERFCOUNTER1_SELECT)
+
+START_REGISTER(TP0_PERFCOUNTER1_HI)
+ GENERATE_FIELD(PERFCOUNTER_HI, int)
+END_REGISTER(TP0_PERFCOUNTER1_HI)
+
+START_REGISTER(TP0_PERFCOUNTER1_LOW)
+ GENERATE_FIELD(PERFCOUNTER_LOW, int)
+END_REGISTER(TP0_PERFCOUNTER1_LOW)
+
+START_REGISTER(TCM_PERFCOUNTER0_SELECT)
+ GENERATE_FIELD(PERFCOUNTER_SELECT, TCM_PERFCOUNT_SELECT)
+END_REGISTER(TCM_PERFCOUNTER0_SELECT)
+
+START_REGISTER(TCM_PERFCOUNTER1_SELECT)
+ GENERATE_FIELD(PERFCOUNTER_SELECT, TCM_PERFCOUNT_SELECT)
+END_REGISTER(TCM_PERFCOUNTER1_SELECT)
+
+START_REGISTER(TCM_PERFCOUNTER0_HI)
+ GENERATE_FIELD(PERFCOUNTER_HI, int)
+END_REGISTER(TCM_PERFCOUNTER0_HI)
+
+START_REGISTER(TCM_PERFCOUNTER1_HI)
+ GENERATE_FIELD(PERFCOUNTER_HI, int)
+END_REGISTER(TCM_PERFCOUNTER1_HI)
+
+START_REGISTER(TCM_PERFCOUNTER0_LOW)
+ GENERATE_FIELD(PERFCOUNTER_LOW, int)
+END_REGISTER(TCM_PERFCOUNTER0_LOW)
+
+START_REGISTER(TCM_PERFCOUNTER1_LOW)
+ GENERATE_FIELD(PERFCOUNTER_LOW, int)
+END_REGISTER(TCM_PERFCOUNTER1_LOW)
+
+START_REGISTER(TCF_PERFCOUNTER0_SELECT)
+ GENERATE_FIELD(PERFCOUNTER_SELECT, TCF_PERFCOUNT_SELECT)
+END_REGISTER(TCF_PERFCOUNTER0_SELECT)
+
+START_REGISTER(TCF_PERFCOUNTER1_SELECT)
+ GENERATE_FIELD(PERFCOUNTER_SELECT, TCF_PERFCOUNT_SELECT)
+END_REGISTER(TCF_PERFCOUNTER1_SELECT)
+
+START_REGISTER(TCF_PERFCOUNTER2_SELECT)
+ GENERATE_FIELD(PERFCOUNTER_SELECT, TCF_PERFCOUNT_SELECT)
+END_REGISTER(TCF_PERFCOUNTER2_SELECT)
+
+START_REGISTER(TCF_PERFCOUNTER3_SELECT)
+ GENERATE_FIELD(PERFCOUNTER_SELECT, TCF_PERFCOUNT_SELECT)
+END_REGISTER(TCF_PERFCOUNTER3_SELECT)
+
+START_REGISTER(TCF_PERFCOUNTER4_SELECT)
+ GENERATE_FIELD(PERFCOUNTER_SELECT, TCF_PERFCOUNT_SELECT)
+END_REGISTER(TCF_PERFCOUNTER4_SELECT)
+
+START_REGISTER(TCF_PERFCOUNTER5_SELECT)
+ GENERATE_FIELD(PERFCOUNTER_SELECT, TCF_PERFCOUNT_SELECT)
+END_REGISTER(TCF_PERFCOUNTER5_SELECT)
+
+START_REGISTER(TCF_PERFCOUNTER6_SELECT)
+ GENERATE_FIELD(PERFCOUNTER_SELECT, TCF_PERFCOUNT_SELECT)
+END_REGISTER(TCF_PERFCOUNTER6_SELECT)
+
+START_REGISTER(TCF_PERFCOUNTER7_SELECT)
+ GENERATE_FIELD(PERFCOUNTER_SELECT, TCF_PERFCOUNT_SELECT)
+END_REGISTER(TCF_PERFCOUNTER7_SELECT)
+
+START_REGISTER(TCF_PERFCOUNTER8_SELECT)
+ GENERATE_FIELD(PERFCOUNTER_SELECT, TCF_PERFCOUNT_SELECT)
+END_REGISTER(TCF_PERFCOUNTER8_SELECT)
+
+START_REGISTER(TCF_PERFCOUNTER9_SELECT)
+ GENERATE_FIELD(PERFCOUNTER_SELECT, TCF_PERFCOUNT_SELECT)
+END_REGISTER(TCF_PERFCOUNTER9_SELECT)
+
+START_REGISTER(TCF_PERFCOUNTER10_SELECT)
+ GENERATE_FIELD(PERFCOUNTER_SELECT, TCF_PERFCOUNT_SELECT)
+END_REGISTER(TCF_PERFCOUNTER10_SELECT)
+
+START_REGISTER(TCF_PERFCOUNTER11_SELECT)
+ GENERATE_FIELD(PERFCOUNTER_SELECT, TCF_PERFCOUNT_SELECT)
+END_REGISTER(TCF_PERFCOUNTER11_SELECT)
+
+START_REGISTER(TCF_PERFCOUNTER0_HI)
+ GENERATE_FIELD(PERFCOUNTER_HI, int)
+END_REGISTER(TCF_PERFCOUNTER0_HI)
+
+START_REGISTER(TCF_PERFCOUNTER1_HI)
+ GENERATE_FIELD(PERFCOUNTER_HI, int)
+END_REGISTER(TCF_PERFCOUNTER1_HI)
+
+START_REGISTER(TCF_PERFCOUNTER2_HI)
+ GENERATE_FIELD(PERFCOUNTER_HI, int)
+END_REGISTER(TCF_PERFCOUNTER2_HI)
+
+START_REGISTER(TCF_PERFCOUNTER3_HI)
+ GENERATE_FIELD(PERFCOUNTER_HI, int)
+END_REGISTER(TCF_PERFCOUNTER3_HI)
+
+START_REGISTER(TCF_PERFCOUNTER4_HI)
+ GENERATE_FIELD(PERFCOUNTER_HI, int)
+END_REGISTER(TCF_PERFCOUNTER4_HI)
+
+START_REGISTER(TCF_PERFCOUNTER5_HI)
+ GENERATE_FIELD(PERFCOUNTER_HI, int)
+END_REGISTER(TCF_PERFCOUNTER5_HI)
+
+START_REGISTER(TCF_PERFCOUNTER6_HI)
+ GENERATE_FIELD(PERFCOUNTER_HI, int)
+END_REGISTER(TCF_PERFCOUNTER6_HI)
+
+START_REGISTER(TCF_PERFCOUNTER7_HI)
+ GENERATE_FIELD(PERFCOUNTER_HI, int)
+END_REGISTER(TCF_PERFCOUNTER7_HI)
+
+START_REGISTER(TCF_PERFCOUNTER8_HI)
+ GENERATE_FIELD(PERFCOUNTER_HI, int)
+END_REGISTER(TCF_PERFCOUNTER8_HI)
+
+START_REGISTER(TCF_PERFCOUNTER9_HI)
+ GENERATE_FIELD(PERFCOUNTER_HI, int)
+END_REGISTER(TCF_PERFCOUNTER9_HI)
+
+START_REGISTER(TCF_PERFCOUNTER10_HI)
+ GENERATE_FIELD(PERFCOUNTER_HI, int)
+END_REGISTER(TCF_PERFCOUNTER10_HI)
+
+START_REGISTER(TCF_PERFCOUNTER11_HI)
+ GENERATE_FIELD(PERFCOUNTER_HI, int)
+END_REGISTER(TCF_PERFCOUNTER11_HI)
+
+START_REGISTER(TCF_PERFCOUNTER0_LOW)
+ GENERATE_FIELD(PERFCOUNTER_LOW, int)
+END_REGISTER(TCF_PERFCOUNTER0_LOW)
+
+START_REGISTER(TCF_PERFCOUNTER1_LOW)
+ GENERATE_FIELD(PERFCOUNTER_LOW, int)
+END_REGISTER(TCF_PERFCOUNTER1_LOW)
+
+START_REGISTER(TCF_PERFCOUNTER2_LOW)
+ GENERATE_FIELD(PERFCOUNTER_LOW, int)
+END_REGISTER(TCF_PERFCOUNTER2_LOW)
+
+START_REGISTER(TCF_PERFCOUNTER3_LOW)
+ GENERATE_FIELD(PERFCOUNTER_LOW, int)
+END_REGISTER(TCF_PERFCOUNTER3_LOW)
+
+START_REGISTER(TCF_PERFCOUNTER4_LOW)
+ GENERATE_FIELD(PERFCOUNTER_LOW, int)
+END_REGISTER(TCF_PERFCOUNTER4_LOW)
+
+START_REGISTER(TCF_PERFCOUNTER5_LOW)
+ GENERATE_FIELD(PERFCOUNTER_LOW, int)
+END_REGISTER(TCF_PERFCOUNTER5_LOW)
+
+START_REGISTER(TCF_PERFCOUNTER6_LOW)
+ GENERATE_FIELD(PERFCOUNTER_LOW, int)
+END_REGISTER(TCF_PERFCOUNTER6_LOW)
+
+START_REGISTER(TCF_PERFCOUNTER7_LOW)
+ GENERATE_FIELD(PERFCOUNTER_LOW, int)
+END_REGISTER(TCF_PERFCOUNTER7_LOW)
+
+START_REGISTER(TCF_PERFCOUNTER8_LOW)
+ GENERATE_FIELD(PERFCOUNTER_LOW, int)
+END_REGISTER(TCF_PERFCOUNTER8_LOW)
+
+START_REGISTER(TCF_PERFCOUNTER9_LOW)
+ GENERATE_FIELD(PERFCOUNTER_LOW, int)
+END_REGISTER(TCF_PERFCOUNTER9_LOW)
+
+START_REGISTER(TCF_PERFCOUNTER10_LOW)
+ GENERATE_FIELD(PERFCOUNTER_LOW, int)
+END_REGISTER(TCF_PERFCOUNTER10_LOW)
+
+START_REGISTER(TCF_PERFCOUNTER11_LOW)
+ GENERATE_FIELD(PERFCOUNTER_LOW, int)
+END_REGISTER(TCF_PERFCOUNTER11_LOW)
+
+START_REGISTER(TCF_DEBUG)
+ GENERATE_FIELD(not_MH_TC_rtr, int)
+ GENERATE_FIELD(TC_MH_send, int)
+ GENERATE_FIELD(not_FG0_rtr, int)
+ GENERATE_FIELD(not_TCB_TCO_rtr, int)
+ GENERATE_FIELD(TCB_ff_stall, int)
+ GENERATE_FIELD(TCB_miss_stall, int)
+ GENERATE_FIELD(TCA_TCB_stall, int)
+ GENERATE_FIELD(PF0_stall, int)
+ GENERATE_FIELD(TP0_full, int)
+ GENERATE_FIELD(TPC_full, int)
+ GENERATE_FIELD(not_TPC_rtr, int)
+ GENERATE_FIELD(tca_state_rts, int)
+ GENERATE_FIELD(tca_rts, int)
+END_REGISTER(TCF_DEBUG)
+
+START_REGISTER(TCA_FIFO_DEBUG)
+ GENERATE_FIELD(tp0_full, int)
+ GENERATE_FIELD(tpc_full, int)
+ GENERATE_FIELD(load_tpc_fifo, int)
+ GENERATE_FIELD(load_tp_fifos, int)
+ GENERATE_FIELD(FW_full, int)
+ GENERATE_FIELD(not_FW_rtr0, int)
+ GENERATE_FIELD(FW_rts0, int)
+ GENERATE_FIELD(not_FW_tpc_rtr, int)
+ GENERATE_FIELD(FW_tpc_rts, int)
+END_REGISTER(TCA_FIFO_DEBUG)
+
+START_REGISTER(TCA_PROBE_DEBUG)
+ GENERATE_FIELD(ProbeFilter_stall, int)
+END_REGISTER(TCA_PROBE_DEBUG)
+
+START_REGISTER(TCA_TPC_DEBUG)
+ GENERATE_FIELD(captue_state_rts, int)
+ GENERATE_FIELD(capture_tca_rts, int)
+END_REGISTER(TCA_TPC_DEBUG)
+
+START_REGISTER(TCB_CORE_DEBUG)
+ GENERATE_FIELD(access512, int)
+ GENERATE_FIELD(tiled, int)
+ GENERATE_FIELD(opcode, int)
+ GENERATE_FIELD(format, int)
+ GENERATE_FIELD(sector_format, int)
+ GENERATE_FIELD(sector_format512, int)
+END_REGISTER(TCB_CORE_DEBUG)
+
+START_REGISTER(TCB_TAG0_DEBUG)
+ GENERATE_FIELD(mem_read_cycle, int)
+ GENERATE_FIELD(tag_access_cycle, int)
+ GENERATE_FIELD(miss_stall, int)
+ GENERATE_FIELD(num_feee_lines, int)
+ GENERATE_FIELD(max_misses, int)
+END_REGISTER(TCB_TAG0_DEBUG)
+
+START_REGISTER(TCB_TAG1_DEBUG)
+ GENERATE_FIELD(mem_read_cycle, int)
+ GENERATE_FIELD(tag_access_cycle, int)
+ GENERATE_FIELD(miss_stall, int)
+ GENERATE_FIELD(num_feee_lines, int)
+ GENERATE_FIELD(max_misses, int)
+END_REGISTER(TCB_TAG1_DEBUG)
+
+START_REGISTER(TCB_TAG2_DEBUG)
+ GENERATE_FIELD(mem_read_cycle, int)
+ GENERATE_FIELD(tag_access_cycle, int)
+ GENERATE_FIELD(miss_stall, int)
+ GENERATE_FIELD(num_feee_lines, int)
+ GENERATE_FIELD(max_misses, int)
+END_REGISTER(TCB_TAG2_DEBUG)
+
+START_REGISTER(TCB_TAG3_DEBUG)
+ GENERATE_FIELD(mem_read_cycle, int)
+ GENERATE_FIELD(tag_access_cycle, int)
+ GENERATE_FIELD(miss_stall, int)
+ GENERATE_FIELD(num_feee_lines, int)
+ GENERATE_FIELD(max_misses, int)
+END_REGISTER(TCB_TAG3_DEBUG)
+
+START_REGISTER(TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG)
+ GENERATE_FIELD(left_done, int)
+ GENERATE_FIELD(fg0_sends_left, int)
+ GENERATE_FIELD(one_sector_to_go_left_q, int)
+ GENERATE_FIELD(no_sectors_to_go, int)
+ GENERATE_FIELD(update_left, int)
+ GENERATE_FIELD(sector_mask_left_count_q, int)
+ GENERATE_FIELD(sector_mask_left_q, int)
+ GENERATE_FIELD(valid_left_q, int)
+END_REGISTER(TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG)
+
+START_REGISTER(TCB_FETCH_GEN_WALKER_DEBUG)
+ GENERATE_FIELD(quad_sel_left, int)
+ GENERATE_FIELD(set_sel_left, int)
+ GENERATE_FIELD(right_eq_left, int)
+ GENERATE_FIELD(ff_fg_type512, int)
+ GENERATE_FIELD(busy, int)
+ GENERATE_FIELD(setquads_to_send, int)
+END_REGISTER(TCB_FETCH_GEN_WALKER_DEBUG)
+
+START_REGISTER(TCB_FETCH_GEN_PIPE0_DEBUG)
+ GENERATE_FIELD(tc0_arb_rts, int)
+ GENERATE_FIELD(ga_out_rts, int)
+ GENERATE_FIELD(tc_arb_format, int)
+ GENERATE_FIELD(tc_arb_fmsopcode, int)
+ GENERATE_FIELD(tc_arb_request_type, int)
+ GENERATE_FIELD(busy, int)
+ GENERATE_FIELD(fgo_busy, int)
+ GENERATE_FIELD(ga_busy, int)
+ GENERATE_FIELD(mc_sel_q, int)
+ GENERATE_FIELD(valid_q, int)
+ GENERATE_FIELD(arb_RTR, int)
+END_REGISTER(TCB_FETCH_GEN_PIPE0_DEBUG)
+
+START_REGISTER(TCD_INPUT0_DEBUG)
+ GENERATE_FIELD(empty, int)
+ GENERATE_FIELD(full, int)
+ GENERATE_FIELD(valid_q1, int)
+ GENERATE_FIELD(cnt_q1, int)
+ GENERATE_FIELD(last_send_q1, int)
+ GENERATE_FIELD(ip_send, int)
+ GENERATE_FIELD(ipbuf_dxt_send, int)
+ GENERATE_FIELD(ipbuf_busy, int)
+END_REGISTER(TCD_INPUT0_DEBUG)
+
+START_REGISTER(TCD_DEGAMMA_DEBUG)
+ GENERATE_FIELD(dgmm_ftfconv_dgmmen, int)
+ GENERATE_FIELD(dgmm_ctrl_dgmm8, int)
+ GENERATE_FIELD(dgmm_ctrl_last_send, int)
+ GENERATE_FIELD(dgmm_ctrl_send, int)
+ GENERATE_FIELD(dgmm_stall, int)
+ GENERATE_FIELD(dgmm_pstate, int)
+END_REGISTER(TCD_DEGAMMA_DEBUG)
+
+START_REGISTER(TCD_DXTMUX_SCTARB_DEBUG)
+ GENERATE_FIELD(pstate, int)
+ GENERATE_FIELD(sctrmx_rtr, int)
+ GENERATE_FIELD(dxtc_rtr, int)
+ GENERATE_FIELD(sctrarb_multcyl_send, int)
+ GENERATE_FIELD(sctrmx0_sctrarb_rts, int)
+ GENERATE_FIELD(dxtc_sctrarb_send, int)
+ GENERATE_FIELD(dxtc_dgmmpd_last_send, int)
+ GENERATE_FIELD(dxtc_dgmmpd_send, int)
+ GENERATE_FIELD(dcmp_mux_send, int)
+END_REGISTER(TCD_DXTMUX_SCTARB_DEBUG)
+
+START_REGISTER(TCD_DXTC_ARB_DEBUG)
+ GENERATE_FIELD(n0_stall, int)
+ GENERATE_FIELD(pstate, int)
+ GENERATE_FIELD(arb_dcmp01_last_send, int)
+ GENERATE_FIELD(arb_dcmp01_cnt, int)
+ GENERATE_FIELD(arb_dcmp01_sector, int)
+ GENERATE_FIELD(arb_dcmp01_cacheline, int)
+ GENERATE_FIELD(arb_dcmp01_format, int)
+ GENERATE_FIELD(arb_dcmp01_send, int)
+ GENERATE_FIELD(n0_dxt2_4_types, int)
+END_REGISTER(TCD_DXTC_ARB_DEBUG)
+
+START_REGISTER(TCD_STALLS_DEBUG)
+ GENERATE_FIELD(not_multcyl_sctrarb_rtr, int)
+ GENERATE_FIELD(not_sctrmx0_sctrarb_rtr, int)
+ GENERATE_FIELD(not_dcmp0_arb_rtr, int)
+ GENERATE_FIELD(not_dgmmpd_dxtc_rtr, int)
+ GENERATE_FIELD(not_mux_dcmp_rtr, int)
+ GENERATE_FIELD(not_incoming_rtr, int)
+END_REGISTER(TCD_STALLS_DEBUG)
+
+START_REGISTER(TCO_STALLS_DEBUG)
+ GENERATE_FIELD(quad0_sg_crd_RTR, int)
+ GENERATE_FIELD(quad0_rl_sg_RTR, int)
+ GENERATE_FIELD(quad0_TCO_TCB_rtr_d, int)
+END_REGISTER(TCO_STALLS_DEBUG)
+
+START_REGISTER(TCO_QUAD0_DEBUG0)
+ GENERATE_FIELD(rl_sg_sector_format, int)
+ GENERATE_FIELD(rl_sg_end_of_sample, int)
+ GENERATE_FIELD(rl_sg_rtr, int)
+ GENERATE_FIELD(rl_sg_rts, int)
+ GENERATE_FIELD(sg_crd_end_of_sample, int)
+ GENERATE_FIELD(sg_crd_rtr, int)
+ GENERATE_FIELD(sg_crd_rts, int)
+ GENERATE_FIELD(stageN1_valid_q, int)
+ GENERATE_FIELD(read_cache_q, int)
+ GENERATE_FIELD(cache_read_RTR, int)
+ GENERATE_FIELD(all_sectors_written_set3, int)
+ GENERATE_FIELD(all_sectors_written_set2, int)
+ GENERATE_FIELD(all_sectors_written_set1, int)
+ GENERATE_FIELD(all_sectors_written_set0, int)
+ GENERATE_FIELD(busy, int)
+END_REGISTER(TCO_QUAD0_DEBUG0)
+
+START_REGISTER(TCO_QUAD0_DEBUG1)
+ GENERATE_FIELD(fifo_busy, int)
+ GENERATE_FIELD(empty, int)
+ GENERATE_FIELD(full, int)
+ GENERATE_FIELD(write_enable, int)
+ GENERATE_FIELD(fifo_write_ptr, int)
+ GENERATE_FIELD(fifo_read_ptr, int)
+ GENERATE_FIELD(cache_read_busy, int)
+ GENERATE_FIELD(latency_fifo_busy, int)
+ GENERATE_FIELD(input_quad_busy, int)
+ GENERATE_FIELD(tco_quad_pipe_busy, int)
+ GENERATE_FIELD(TCB_TCO_rtr_d, int)
+ GENERATE_FIELD(TCB_TCO_xfc_q, int)
+ GENERATE_FIELD(rl_sg_rtr, int)
+ GENERATE_FIELD(rl_sg_rts, int)
+ GENERATE_FIELD(sg_crd_rtr, int)
+ GENERATE_FIELD(sg_crd_rts, int)
+ GENERATE_FIELD(TCO_TCB_read_xfc, int)
+END_REGISTER(TCO_QUAD0_DEBUG1)
+
+START_REGISTER(SQ_GPR_MANAGEMENT)
+ GENERATE_FIELD(REG_DYNAMIC, int)
+ GENERATE_FIELD(REG_SIZE_PIX, int)
+ GENERATE_FIELD(REG_SIZE_VTX, int)
+END_REGISTER(SQ_GPR_MANAGEMENT)
+
+START_REGISTER(SQ_FLOW_CONTROL)
+ GENERATE_FIELD(INPUT_ARBITRATION_POLICY, int)
+ GENERATE_FIELD(ONE_THREAD, int)
+ GENERATE_FIELD(ONE_ALU, int)
+ GENERATE_FIELD(CF_WR_BASE, hex)
+ GENERATE_FIELD(NO_PV_PS, int)
+ GENERATE_FIELD(NO_LOOP_EXIT, int)
+ GENERATE_FIELD(NO_CEXEC_OPTIMIZE, int)
+ GENERATE_FIELD(TEXTURE_ARBITRATION_POLICY, int)
+ GENERATE_FIELD(VC_ARBITRATION_POLICY, int)
+ GENERATE_FIELD(ALU_ARBITRATION_POLICY, int)
+ GENERATE_FIELD(NO_ARB_EJECT, int)
+ GENERATE_FIELD(NO_CFS_EJECT, int)
+ GENERATE_FIELD(POS_EXP_PRIORITY, int)
+ GENERATE_FIELD(NO_EARLY_THREAD_TERMINATION, int)
+ GENERATE_FIELD(PS_PREFETCH_COLOR_ALLOC, int)
+END_REGISTER(SQ_FLOW_CONTROL)
+
+START_REGISTER(SQ_INST_STORE_MANAGMENT)
+ GENERATE_FIELD(INST_BASE_PIX, int)
+ GENERATE_FIELD(INST_BASE_VTX, int)
+END_REGISTER(SQ_INST_STORE_MANAGMENT)
+
+START_REGISTER(SQ_RESOURCE_MANAGMENT)
+ GENERATE_FIELD(VTX_THREAD_BUF_ENTRIES, int)
+ GENERATE_FIELD(PIX_THREAD_BUF_ENTRIES, int)
+ GENERATE_FIELD(EXPORT_BUF_ENTRIES, int)
+END_REGISTER(SQ_RESOURCE_MANAGMENT)
+
+START_REGISTER(SQ_EO_RT)
+ GENERATE_FIELD(EO_CONSTANTS_RT, int)
+ GENERATE_FIELD(EO_TSTATE_RT, int)
+END_REGISTER(SQ_EO_RT)
+
+START_REGISTER(SQ_DEBUG_MISC)
+ GENERATE_FIELD(DB_ALUCST_SIZE, int)
+ GENERATE_FIELD(DB_TSTATE_SIZE, int)
+ GENERATE_FIELD(DB_READ_CTX, int)
+ GENERATE_FIELD(RESERVED, int)
+ GENERATE_FIELD(DB_READ_MEMORY, int)
+ GENERATE_FIELD(DB_WEN_MEMORY_0, int)
+ GENERATE_FIELD(DB_WEN_MEMORY_1, int)
+ GENERATE_FIELD(DB_WEN_MEMORY_2, int)
+ GENERATE_FIELD(DB_WEN_MEMORY_3, int)
+END_REGISTER(SQ_DEBUG_MISC)
+
+START_REGISTER(SQ_ACTIVITY_METER_CNTL)
+ GENERATE_FIELD(TIMEBASE, int)
+ GENERATE_FIELD(THRESHOLD_LOW, int)
+ GENERATE_FIELD(THRESHOLD_HIGH, int)
+ GENERATE_FIELD(SPARE, int)
+END_REGISTER(SQ_ACTIVITY_METER_CNTL)
+
+START_REGISTER(SQ_ACTIVITY_METER_STATUS)
+ GENERATE_FIELD(PERCENT_BUSY, int)
+END_REGISTER(SQ_ACTIVITY_METER_STATUS)
+
+START_REGISTER(SQ_INPUT_ARB_PRIORITY)
+ GENERATE_FIELD(PC_AVAIL_WEIGHT, int)
+ GENERATE_FIELD(PC_AVAIL_SIGN, int)
+ GENERATE_FIELD(SX_AVAIL_WEIGHT, int)
+ GENERATE_FIELD(SX_AVAIL_SIGN, int)
+ GENERATE_FIELD(THRESHOLD, int)
+END_REGISTER(SQ_INPUT_ARB_PRIORITY)
+
+START_REGISTER(SQ_THREAD_ARB_PRIORITY)
+ GENERATE_FIELD(PC_AVAIL_WEIGHT, int)
+ GENERATE_FIELD(PC_AVAIL_SIGN, int)
+ GENERATE_FIELD(SX_AVAIL_WEIGHT, int)
+ GENERATE_FIELD(SX_AVAIL_SIGN, int)
+ GENERATE_FIELD(THRESHOLD, int)
+ GENERATE_FIELD(RESERVED, int)
+ GENERATE_FIELD(VS_PRIORITIZE_SERIAL, int)
+ GENERATE_FIELD(PS_PRIORITIZE_SERIAL, int)
+ GENERATE_FIELD(USE_SERIAL_COUNT_THRESHOLD, int)
+END_REGISTER(SQ_THREAD_ARB_PRIORITY)
+
+START_REGISTER(SQ_VS_WATCHDOG_TIMER)
+ GENERATE_FIELD(ENABLE, int)
+ GENERATE_FIELD(TIMEOUT_COUNT, int)
+END_REGISTER(SQ_VS_WATCHDOG_TIMER)
+
+START_REGISTER(SQ_PS_WATCHDOG_TIMER)
+ GENERATE_FIELD(ENABLE, int)
+ GENERATE_FIELD(TIMEOUT_COUNT, int)
+END_REGISTER(SQ_PS_WATCHDOG_TIMER)
+
+START_REGISTER(SQ_INT_CNTL)
+ GENERATE_FIELD(PS_WATCHDOG_MASK, int)
+ GENERATE_FIELD(VS_WATCHDOG_MASK, int)
+END_REGISTER(SQ_INT_CNTL)
+
+START_REGISTER(SQ_INT_STATUS)
+ GENERATE_FIELD(PS_WATCHDOG_TIMEOUT, int)
+ GENERATE_FIELD(VS_WATCHDOG_TIMEOUT, int)
+END_REGISTER(SQ_INT_STATUS)
+
+START_REGISTER(SQ_INT_ACK)
+ GENERATE_FIELD(PS_WATCHDOG_ACK, int)
+ GENERATE_FIELD(VS_WATCHDOG_ACK, int)
+END_REGISTER(SQ_INT_ACK)
+
+START_REGISTER(SQ_DEBUG_INPUT_FSM)
+ GENERATE_FIELD(VC_VSR_LD, int)
+ GENERATE_FIELD(RESERVED, int)
+ GENERATE_FIELD(VC_GPR_LD, int)
+ GENERATE_FIELD(PC_PISM, int)
+ GENERATE_FIELD(RESERVED1, int)
+ GENERATE_FIELD(PC_AS, int)
+ GENERATE_FIELD(PC_INTERP_CNT, int)
+ GENERATE_FIELD(PC_GPR_SIZE, int)
+END_REGISTER(SQ_DEBUG_INPUT_FSM)
+
+START_REGISTER(SQ_DEBUG_CONST_MGR_FSM)
+ GENERATE_FIELD(TEX_CONST_EVENT_STATE, int)
+ GENERATE_FIELD(RESERVED1, int)
+ GENERATE_FIELD(ALU_CONST_EVENT_STATE, int)
+ GENERATE_FIELD(RESERVED2, int)
+ GENERATE_FIELD(ALU_CONST_CNTX_VALID, int)
+ GENERATE_FIELD(TEX_CONST_CNTX_VALID, int)
+ GENERATE_FIELD(CNTX0_VTX_EVENT_DONE, int)
+ GENERATE_FIELD(CNTX0_PIX_EVENT_DONE, int)
+ GENERATE_FIELD(CNTX1_VTX_EVENT_DONE, int)
+ GENERATE_FIELD(CNTX1_PIX_EVENT_DONE, int)
+END_REGISTER(SQ_DEBUG_CONST_MGR_FSM)
+
+START_REGISTER(SQ_DEBUG_TP_FSM)
+ GENERATE_FIELD(EX_TP, int)
+ GENERATE_FIELD(RESERVED0, int)
+ GENERATE_FIELD(CF_TP, int)
+ GENERATE_FIELD(IF_TP, int)
+ GENERATE_FIELD(RESERVED1, int)
+ GENERATE_FIELD(TIS_TP, int)
+ GENERATE_FIELD(RESERVED2, int)
+ GENERATE_FIELD(GS_TP, int)
+ GENERATE_FIELD(RESERVED3, int)
+ GENERATE_FIELD(FCR_TP, int)
+ GENERATE_FIELD(RESERVED4, int)
+ GENERATE_FIELD(FCS_TP, int)
+ GENERATE_FIELD(RESERVED5, int)
+ GENERATE_FIELD(ARB_TR_TP, int)
+END_REGISTER(SQ_DEBUG_TP_FSM)
+
+START_REGISTER(SQ_DEBUG_FSM_ALU_0)
+ GENERATE_FIELD(EX_ALU_0, int)
+ GENERATE_FIELD(RESERVED0, int)
+ GENERATE_FIELD(CF_ALU_0, int)
+ GENERATE_FIELD(IF_ALU_0, int)
+ GENERATE_FIELD(RESERVED1, int)
+ GENERATE_FIELD(DU1_ALU_0, int)
+ GENERATE_FIELD(RESERVED2, int)
+ GENERATE_FIELD(DU0_ALU_0, int)
+ GENERATE_FIELD(RESERVED3, int)
+ GENERATE_FIELD(AIS_ALU_0, int)
+ GENERATE_FIELD(RESERVED4, int)
+ GENERATE_FIELD(ACS_ALU_0, int)
+ GENERATE_FIELD(RESERVED5, int)
+ GENERATE_FIELD(ARB_TR_ALU, int)
+END_REGISTER(SQ_DEBUG_FSM_ALU_0)
+
+START_REGISTER(SQ_DEBUG_FSM_ALU_1)
+ GENERATE_FIELD(EX_ALU_0, int)
+ GENERATE_FIELD(RESERVED0, int)
+ GENERATE_FIELD(CF_ALU_0, int)
+ GENERATE_FIELD(IF_ALU_0, int)
+ GENERATE_FIELD(RESERVED1, int)
+ GENERATE_FIELD(DU1_ALU_0, int)
+ GENERATE_FIELD(RESERVED2, int)
+ GENERATE_FIELD(DU0_ALU_0, int)
+ GENERATE_FIELD(RESERVED3, int)
+ GENERATE_FIELD(AIS_ALU_0, int)
+ GENERATE_FIELD(RESERVED4, int)
+ GENERATE_FIELD(ACS_ALU_0, int)
+ GENERATE_FIELD(RESERVED5, int)
+ GENERATE_FIELD(ARB_TR_ALU, int)
+END_REGISTER(SQ_DEBUG_FSM_ALU_1)
+
+START_REGISTER(SQ_DEBUG_EXP_ALLOC)
+ GENERATE_FIELD(POS_BUF_AVAIL, int)
+ GENERATE_FIELD(COLOR_BUF_AVAIL, int)
+ GENERATE_FIELD(EA_BUF_AVAIL, int)
+ GENERATE_FIELD(RESERVED, int)
+ GENERATE_FIELD(ALLOC_TBL_BUF_AVAIL, int)
+END_REGISTER(SQ_DEBUG_EXP_ALLOC)
+
+START_REGISTER(SQ_DEBUG_PTR_BUFF)
+ GENERATE_FIELD(END_OF_BUFFER, int)
+ GENERATE_FIELD(DEALLOC_CNT, int)
+ GENERATE_FIELD(QUAL_NEW_VECTOR, int)
+ GENERATE_FIELD(EVENT_CONTEXT_ID, int)
+ GENERATE_FIELD(SC_EVENT_ID, int)
+ GENERATE_FIELD(QUAL_EVENT, int)
+ GENERATE_FIELD(PRIM_TYPE_POLYGON, int)
+ GENERATE_FIELD(EF_EMPTY, int)
+ GENERATE_FIELD(VTX_SYNC_CNT, int)
+END_REGISTER(SQ_DEBUG_PTR_BUFF)
+
+START_REGISTER(SQ_DEBUG_GPR_VTX)
+ GENERATE_FIELD(VTX_TAIL_PTR, int)
+ GENERATE_FIELD(RESERVED, int)
+ GENERATE_FIELD(VTX_HEAD_PTR, int)
+ GENERATE_FIELD(RESERVED1, int)
+ GENERATE_FIELD(VTX_MAX, int)
+ GENERATE_FIELD(RESERVED2, int)
+ GENERATE_FIELD(VTX_FREE, int)
+END_REGISTER(SQ_DEBUG_GPR_VTX)
+
+START_REGISTER(SQ_DEBUG_GPR_PIX)
+ GENERATE_FIELD(PIX_TAIL_PTR, int)
+ GENERATE_FIELD(RESERVED, int)
+ GENERATE_FIELD(PIX_HEAD_PTR, int)
+ GENERATE_FIELD(RESERVED1, int)
+ GENERATE_FIELD(PIX_MAX, int)
+ GENERATE_FIELD(RESERVED2, int)
+ GENERATE_FIELD(PIX_FREE, int)
+END_REGISTER(SQ_DEBUG_GPR_PIX)
+
+START_REGISTER(SQ_DEBUG_TB_STATUS_SEL)
+ GENERATE_FIELD(VTX_TB_STATUS_REG_SEL, int)
+ GENERATE_FIELD(VTX_TB_STATE_MEM_DW_SEL, int)
+ GENERATE_FIELD(VTX_TB_STATE_MEM_RD_ADDR, int)
+ GENERATE_FIELD(VTX_TB_STATE_MEM_RD_EN, int)
+ GENERATE_FIELD(PIX_TB_STATE_MEM_RD_EN, int)
+ GENERATE_FIELD(DEBUG_BUS_TRIGGER_SEL, int)
+ GENERATE_FIELD(PIX_TB_STATUS_REG_SEL, int)
+ GENERATE_FIELD(PIX_TB_STATE_MEM_DW_SEL, int)
+ GENERATE_FIELD(PIX_TB_STATE_MEM_RD_ADDR, int)
+ GENERATE_FIELD(VC_THREAD_BUF_DLY, int)
+ GENERATE_FIELD(DISABLE_STRICT_CTX_SYNC, int)
+END_REGISTER(SQ_DEBUG_TB_STATUS_SEL)
+
+START_REGISTER(SQ_DEBUG_VTX_TB_0)
+ GENERATE_FIELD(VTX_HEAD_PTR_Q, int)
+ GENERATE_FIELD(TAIL_PTR_Q, int)
+ GENERATE_FIELD(FULL_CNT_Q, int)
+ GENERATE_FIELD(NXT_POS_ALLOC_CNT, int)
+ GENERATE_FIELD(NXT_PC_ALLOC_CNT, int)
+ GENERATE_FIELD(SX_EVENT_FULL, int)
+ GENERATE_FIELD(BUSY_Q, int)
+END_REGISTER(SQ_DEBUG_VTX_TB_0)
+
+START_REGISTER(SQ_DEBUG_VTX_TB_1)
+ GENERATE_FIELD(VS_DONE_PTR, int)
+END_REGISTER(SQ_DEBUG_VTX_TB_1)
+
+START_REGISTER(SQ_DEBUG_VTX_TB_STATUS_REG)
+ GENERATE_FIELD(VS_STATUS_REG, int)
+END_REGISTER(SQ_DEBUG_VTX_TB_STATUS_REG)
+
+START_REGISTER(SQ_DEBUG_VTX_TB_STATE_MEM)
+ GENERATE_FIELD(VS_STATE_MEM, int)
+END_REGISTER(SQ_DEBUG_VTX_TB_STATE_MEM)
+
+START_REGISTER(SQ_DEBUG_PIX_TB_0)
+ GENERATE_FIELD(PIX_HEAD_PTR, int)
+ GENERATE_FIELD(TAIL_PTR, int)
+ GENERATE_FIELD(FULL_CNT, int)
+ GENERATE_FIELD(NXT_PIX_ALLOC_CNT, int)
+ GENERATE_FIELD(NXT_PIX_EXP_CNT, int)
+ GENERATE_FIELD(BUSY, int)
+END_REGISTER(SQ_DEBUG_PIX_TB_0)
+
+START_REGISTER(SQ_DEBUG_PIX_TB_STATUS_REG_0)
+ GENERATE_FIELD(PIX_TB_STATUS_REG_0, int)
+END_REGISTER(SQ_DEBUG_PIX_TB_STATUS_REG_0)
+
+START_REGISTER(SQ_DEBUG_PIX_TB_STATUS_REG_1)
+ GENERATE_FIELD(PIX_TB_STATUS_REG_1, int)
+END_REGISTER(SQ_DEBUG_PIX_TB_STATUS_REG_1)
+
+START_REGISTER(SQ_DEBUG_PIX_TB_STATUS_REG_2)
+ GENERATE_FIELD(PIX_TB_STATUS_REG_2, int)
+END_REGISTER(SQ_DEBUG_PIX_TB_STATUS_REG_2)
+
+START_REGISTER(SQ_DEBUG_PIX_TB_STATUS_REG_3)
+ GENERATE_FIELD(PIX_TB_STATUS_REG_3, int)
+END_REGISTER(SQ_DEBUG_PIX_TB_STATUS_REG_3)
+
+START_REGISTER(SQ_DEBUG_PIX_TB_STATE_MEM)
+ GENERATE_FIELD(PIX_TB_STATE_MEM, int)
+END_REGISTER(SQ_DEBUG_PIX_TB_STATE_MEM)
+
+START_REGISTER(SQ_PERFCOUNTER0_SELECT)
+ GENERATE_FIELD(PERF_SEL, SQ_PERFCNT_SELECT)
+END_REGISTER(SQ_PERFCOUNTER0_SELECT)
+
+START_REGISTER(SQ_PERFCOUNTER1_SELECT)
+ GENERATE_FIELD(PERF_SEL, int)
+END_REGISTER(SQ_PERFCOUNTER1_SELECT)
+
+START_REGISTER(SQ_PERFCOUNTER2_SELECT)
+ GENERATE_FIELD(PERF_SEL, int)
+END_REGISTER(SQ_PERFCOUNTER2_SELECT)
+
+START_REGISTER(SQ_PERFCOUNTER3_SELECT)
+ GENERATE_FIELD(PERF_SEL, int)
+END_REGISTER(SQ_PERFCOUNTER3_SELECT)
+
+START_REGISTER(SQ_PERFCOUNTER0_LOW)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(SQ_PERFCOUNTER0_LOW)
+
+START_REGISTER(SQ_PERFCOUNTER0_HI)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(SQ_PERFCOUNTER0_HI)
+
+START_REGISTER(SQ_PERFCOUNTER1_LOW)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(SQ_PERFCOUNTER1_LOW)
+
+START_REGISTER(SQ_PERFCOUNTER1_HI)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(SQ_PERFCOUNTER1_HI)
+
+START_REGISTER(SQ_PERFCOUNTER2_LOW)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(SQ_PERFCOUNTER2_LOW)
+
+START_REGISTER(SQ_PERFCOUNTER2_HI)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(SQ_PERFCOUNTER2_HI)
+
+START_REGISTER(SQ_PERFCOUNTER3_LOW)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(SQ_PERFCOUNTER3_LOW)
+
+START_REGISTER(SQ_PERFCOUNTER3_HI)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(SQ_PERFCOUNTER3_HI)
+
+START_REGISTER(SX_PERFCOUNTER0_SELECT)
+ GENERATE_FIELD(PERF_SEL, SX_PERFCNT_SELECT)
+END_REGISTER(SX_PERFCOUNTER0_SELECT)
+
+START_REGISTER(SX_PERFCOUNTER0_LOW)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(SX_PERFCOUNTER0_LOW)
+
+START_REGISTER(SX_PERFCOUNTER0_HI)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(SX_PERFCOUNTER0_HI)
+
+START_REGISTER(SQ_INSTRUCTION_ALU_0)
+ GENERATE_FIELD(VECTOR_RESULT, int)
+ GENERATE_FIELD(VECTOR_DST_REL, Abs_modifier)
+ GENERATE_FIELD(LOW_PRECISION_16B_FP, int)
+ GENERATE_FIELD(SCALAR_RESULT, int)
+ GENERATE_FIELD(SCALAR_DST_REL, int)
+ GENERATE_FIELD(EXPORT_DATA, Exporting)
+ GENERATE_FIELD(VECTOR_WRT_MSK, int)
+ GENERATE_FIELD(SCALAR_WRT_MSK, int)
+ GENERATE_FIELD(VECTOR_CLAMP, int)
+ GENERATE_FIELD(SCALAR_CLAMP, int)
+ GENERATE_FIELD(SCALAR_OPCODE, ScalarOpcode)
+END_REGISTER(SQ_INSTRUCTION_ALU_0)
+
+START_REGISTER(SQ_INSTRUCTION_ALU_1)
+ GENERATE_FIELD(SRC_C_SWIZZLE_R, SwizzleType)
+ GENERATE_FIELD(SRC_C_SWIZZLE_G, SwizzleType)
+ GENERATE_FIELD(SRC_C_SWIZZLE_B, SwizzleType)
+ GENERATE_FIELD(SRC_C_SWIZZLE_A, SwizzleType)
+ GENERATE_FIELD(SRC_B_SWIZZLE_R, SwizzleType)
+ GENERATE_FIELD(SRC_B_SWIZZLE_G, SwizzleType)
+ GENERATE_FIELD(SRC_B_SWIZZLE_B, SwizzleType)
+ GENERATE_FIELD(SRC_B_SWIZZLE_A, SwizzleType)
+ GENERATE_FIELD(SRC_A_SWIZZLE_R, SwizzleType)
+ GENERATE_FIELD(SRC_A_SWIZZLE_G, SwizzleType)
+ GENERATE_FIELD(SRC_A_SWIZZLE_B, SwizzleType)
+ GENERATE_FIELD(SRC_A_SWIZZLE_A, SwizzleType)
+ GENERATE_FIELD(SRC_C_ARG_MOD, InputModifier)
+ GENERATE_FIELD(SRC_B_ARG_MOD, InputModifier)
+ GENERATE_FIELD(SRC_A_ARG_MOD, InputModifier)
+ GENERATE_FIELD(PRED_SELECT, PredicateSelect)
+ GENERATE_FIELD(RELATIVE_ADDR, int)
+ GENERATE_FIELD(CONST_1_REL_ABS, int)
+ GENERATE_FIELD(CONST_0_REL_ABS, int)
+END_REGISTER(SQ_INSTRUCTION_ALU_1)
+
+START_REGISTER(SQ_INSTRUCTION_ALU_2)
+ GENERATE_FIELD(SRC_C_REG_PTR, int)
+ GENERATE_FIELD(REG_SELECT_C, OperandSelect1)
+ GENERATE_FIELD(REG_ABS_MOD_C, Abs_modifier)
+ GENERATE_FIELD(SRC_B_REG_PTR, int)
+ GENERATE_FIELD(REG_SELECT_B, OperandSelect1)
+ GENERATE_FIELD(REG_ABS_MOD_B, Abs_modifier)
+ GENERATE_FIELD(SRC_A_REG_PTR, int)
+ GENERATE_FIELD(REG_SELECT_A, OperandSelect1)
+ GENERATE_FIELD(REG_ABS_MOD_A, Abs_modifier)
+ GENERATE_FIELD(VECTOR_OPCODE, VectorOpcode)
+ GENERATE_FIELD(SRC_C_SEL, OperandSelect0)
+ GENERATE_FIELD(SRC_B_SEL, OperandSelect0)
+ GENERATE_FIELD(SRC_A_SEL, OperandSelect0)
+END_REGISTER(SQ_INSTRUCTION_ALU_2)
+
+START_REGISTER(SQ_INSTRUCTION_CF_EXEC_0)
+ GENERATE_FIELD(ADDRESS, int)
+ GENERATE_FIELD(RESERVED, int)
+ GENERATE_FIELD(COUNT, int)
+ GENERATE_FIELD(YIELD, int)
+ GENERATE_FIELD(INST_TYPE_0, Ressource_type)
+ GENERATE_FIELD(INST_SERIAL_0, Instruction_serial)
+ GENERATE_FIELD(INST_TYPE_1, Ressource_type)
+ GENERATE_FIELD(INST_SERIAL_1, Instruction_serial)
+ GENERATE_FIELD(INST_TYPE_2, Ressource_type)
+ GENERATE_FIELD(INST_SERIAL_2, Instruction_serial)
+ GENERATE_FIELD(INST_TYPE_3, Ressource_type)
+ GENERATE_FIELD(INST_SERIAL_3, Instruction_serial)
+ GENERATE_FIELD(INST_TYPE_4, Ressource_type)
+ GENERATE_FIELD(INST_SERIAL_4, Instruction_serial)
+ GENERATE_FIELD(INST_TYPE_5, Ressource_type)
+ GENERATE_FIELD(INST_SERIAL_5, Instruction_serial)
+ GENERATE_FIELD(INST_VC_0, VC_type)
+ GENERATE_FIELD(INST_VC_1, VC_type)
+ GENERATE_FIELD(INST_VC_2, VC_type)
+ GENERATE_FIELD(INST_VC_3, VC_type)
+END_REGISTER(SQ_INSTRUCTION_CF_EXEC_0)
+
+START_REGISTER(SQ_INSTRUCTION_CF_EXEC_1)
+ GENERATE_FIELD(INST_VC_4, VC_type)
+ GENERATE_FIELD(INST_VC_5, VC_type)
+ GENERATE_FIELD(BOOL_ADDR, int)
+ GENERATE_FIELD(CONDITION, int)
+ GENERATE_FIELD(ADDRESS_MODE, Addressing)
+ GENERATE_FIELD(OPCODE, CFOpcode)
+ GENERATE_FIELD(ADDRESS, int)
+ GENERATE_FIELD(RESERVED, int)
+ GENERATE_FIELD(COUNT, int)
+ GENERATE_FIELD(YIELD, int)
+END_REGISTER(SQ_INSTRUCTION_CF_EXEC_1)
+
+START_REGISTER(SQ_INSTRUCTION_CF_EXEC_2)
+ GENERATE_FIELD(INST_TYPE_0, Ressource_type)
+ GENERATE_FIELD(INST_SERIAL_0, Instruction_serial)
+ GENERATE_FIELD(INST_TYPE_1, Ressource_type)
+ GENERATE_FIELD(INST_SERIAL_1, Instruction_serial)
+ GENERATE_FIELD(INST_TYPE_2, Ressource_type)
+ GENERATE_FIELD(INST_SERIAL_2, Instruction_serial)
+ GENERATE_FIELD(INST_TYPE_3, Ressource_type)
+ GENERATE_FIELD(INST_SERIAL_3, Instruction_serial)
+ GENERATE_FIELD(INST_TYPE_4, Ressource_type)
+ GENERATE_FIELD(INST_SERIAL_4, Instruction_serial)
+ GENERATE_FIELD(INST_TYPE_5, Ressource_type)
+ GENERATE_FIELD(INST_SERIAL_5, Instruction_serial)
+ GENERATE_FIELD(INST_VC_0, VC_type)
+ GENERATE_FIELD(INST_VC_1, VC_type)
+ GENERATE_FIELD(INST_VC_2, VC_type)
+ GENERATE_FIELD(INST_VC_3, VC_type)
+ GENERATE_FIELD(INST_VC_4, VC_type)
+ GENERATE_FIELD(INST_VC_5, VC_type)
+ GENERATE_FIELD(BOOL_ADDR, int)
+ GENERATE_FIELD(CONDITION, int)
+ GENERATE_FIELD(ADDRESS_MODE, Addressing)
+ GENERATE_FIELD(OPCODE, CFOpcode)
+END_REGISTER(SQ_INSTRUCTION_CF_EXEC_2)
+
+START_REGISTER(SQ_INSTRUCTION_CF_LOOP_0)
+ GENERATE_FIELD(ADDRESS, int)
+ GENERATE_FIELD(RESERVED_0, int)
+ GENERATE_FIELD(LOOP_ID, int)
+ GENERATE_FIELD(RESERVED_1, int)
+END_REGISTER(SQ_INSTRUCTION_CF_LOOP_0)
+
+START_REGISTER(SQ_INSTRUCTION_CF_LOOP_1)
+ GENERATE_FIELD(RESERVED_0, int)
+ GENERATE_FIELD(ADDRESS_MODE, Addressing)
+ GENERATE_FIELD(OPCODE, CFOpcode)
+ GENERATE_FIELD(ADDRESS, int)
+ GENERATE_FIELD(RESERVED_1, int)
+END_REGISTER(SQ_INSTRUCTION_CF_LOOP_1)
+
+START_REGISTER(SQ_INSTRUCTION_CF_LOOP_2)
+ GENERATE_FIELD(LOOP_ID, int)
+ GENERATE_FIELD(RESERVED, int)
+ GENERATE_FIELD(ADDRESS_MODE, Addressing)
+ GENERATE_FIELD(OPCODE, CFOpcode)
+END_REGISTER(SQ_INSTRUCTION_CF_LOOP_2)
+
+START_REGISTER(SQ_INSTRUCTION_CF_JMP_CALL_0)
+ GENERATE_FIELD(ADDRESS, int)
+ GENERATE_FIELD(RESERVED_0, int)
+ GENERATE_FIELD(FORCE_CALL, int)
+ GENERATE_FIELD(PREDICATED_JMP, int)
+ GENERATE_FIELD(RESERVED_1, int)
+END_REGISTER(SQ_INSTRUCTION_CF_JMP_CALL_0)
+
+START_REGISTER(SQ_INSTRUCTION_CF_JMP_CALL_1)
+ GENERATE_FIELD(RESERVED_0, int)
+ GENERATE_FIELD(DIRECTION, int)
+ GENERATE_FIELD(BOOL_ADDR, int)
+ GENERATE_FIELD(CONDITION, int)
+ GENERATE_FIELD(ADDRESS_MODE, Addressing)
+ GENERATE_FIELD(OPCODE, CFOpcode)
+ GENERATE_FIELD(ADDRESS, int)
+ GENERATE_FIELD(RESERVED_1, int)
+ GENERATE_FIELD(FORCE_CALL, int)
+ GENERATE_FIELD(RESERVED_2, int)
+END_REGISTER(SQ_INSTRUCTION_CF_JMP_CALL_1)
+
+START_REGISTER(SQ_INSTRUCTION_CF_JMP_CALL_2)
+ GENERATE_FIELD(RESERVED, int)
+ GENERATE_FIELD(DIRECTION, int)
+ GENERATE_FIELD(BOOL_ADDR, int)
+ GENERATE_FIELD(CONDITION, int)
+ GENERATE_FIELD(ADDRESS_MODE, Addressing)
+ GENERATE_FIELD(OPCODE, CFOpcode)
+END_REGISTER(SQ_INSTRUCTION_CF_JMP_CALL_2)
+
+START_REGISTER(SQ_INSTRUCTION_CF_ALLOC_0)
+ GENERATE_FIELD(SIZE, int)
+ GENERATE_FIELD(RESERVED, int)
+END_REGISTER(SQ_INSTRUCTION_CF_ALLOC_0)
+
+START_REGISTER(SQ_INSTRUCTION_CF_ALLOC_1)
+ GENERATE_FIELD(RESERVED_0, int)
+ GENERATE_FIELD(NO_SERIAL, int)
+ GENERATE_FIELD(BUFFER_SELECT, Allocation_type)
+ GENERATE_FIELD(ALLOC_MODE, int)
+ GENERATE_FIELD(OPCODE, CFOpcode)
+ GENERATE_FIELD(SIZE, int)
+ GENERATE_FIELD(RESERVED_1, int)
+END_REGISTER(SQ_INSTRUCTION_CF_ALLOC_1)
+
+START_REGISTER(SQ_INSTRUCTION_CF_ALLOC_2)
+ GENERATE_FIELD(RESERVED, int)
+ GENERATE_FIELD(NO_SERIAL, int)
+ GENERATE_FIELD(BUFFER_SELECT, Allocation_type)
+ GENERATE_FIELD(ALLOC_MODE, int)
+ GENERATE_FIELD(OPCODE, CFOpcode)
+END_REGISTER(SQ_INSTRUCTION_CF_ALLOC_2)
+
+START_REGISTER(SQ_INSTRUCTION_TFETCH_0)
+ GENERATE_FIELD(OPCODE, TexInstOpcode)
+ GENERATE_FIELD(SRC_GPR, int)
+ GENERATE_FIELD(SRC_GPR_AM, Addressmode)
+ GENERATE_FIELD(DST_GPR, int)
+ GENERATE_FIELD(DST_GPR_AM, Addressmode)
+ GENERATE_FIELD(FETCH_VALID_ONLY, int)
+ GENERATE_FIELD(CONST_INDEX, int)
+ GENERATE_FIELD(TX_COORD_DENORM, TexCoordDenorm)
+ GENERATE_FIELD(SRC_SEL_X, SrcSel)
+ GENERATE_FIELD(SRC_SEL_Y, SrcSel)
+ GENERATE_FIELD(SRC_SEL_Z, SrcSel)
+END_REGISTER(SQ_INSTRUCTION_TFETCH_0)
+
+START_REGISTER(SQ_INSTRUCTION_TFETCH_1)
+ GENERATE_FIELD(DST_SEL_X, DstSel)
+ GENERATE_FIELD(DST_SEL_Y, DstSel)
+ GENERATE_FIELD(DST_SEL_Z, DstSel)
+ GENERATE_FIELD(DST_SEL_W, DstSel)
+ GENERATE_FIELD(MAG_FILTER, MagFilter)
+ GENERATE_FIELD(MIN_FILTER, MinFilter)
+ GENERATE_FIELD(MIP_FILTER, MipFilter)
+ GENERATE_FIELD(ANISO_FILTER, AnisoFilter)
+ GENERATE_FIELD(ARBITRARY_FILTER, ArbitraryFilter)
+ GENERATE_FIELD(VOL_MAG_FILTER, VolMagFilter)
+ GENERATE_FIELD(VOL_MIN_FILTER, VolMinFilter)
+ GENERATE_FIELD(USE_COMP_LOD, int)
+ GENERATE_FIELD(USE_REG_LOD, int)
+ GENERATE_FIELD(PRED_SELECT, PredSelect)
+END_REGISTER(SQ_INSTRUCTION_TFETCH_1)
+
+START_REGISTER(SQ_INSTRUCTION_TFETCH_2)
+ GENERATE_FIELD(USE_REG_GRADIENTS, int)
+ GENERATE_FIELD(SAMPLE_LOCATION, SampleLocation)
+ GENERATE_FIELD(LOD_BIAS, int)
+ GENERATE_FIELD(UNUSED, int)
+ GENERATE_FIELD(OFFSET_X, int)
+ GENERATE_FIELD(OFFSET_Y, int)
+ GENERATE_FIELD(OFFSET_Z, int)
+ GENERATE_FIELD(PRED_CONDITION, int)
+END_REGISTER(SQ_INSTRUCTION_TFETCH_2)
+
+START_REGISTER(SQ_INSTRUCTION_VFETCH_0)
+ GENERATE_FIELD(OPCODE, int)
+ GENERATE_FIELD(SRC_GPR, int)
+ GENERATE_FIELD(SRC_GPR_AM, int)
+ GENERATE_FIELD(DST_GPR, int)
+ GENERATE_FIELD(DST_GPR_AM, int)
+ GENERATE_FIELD(MUST_BE_ONE, int)
+ GENERATE_FIELD(CONST_INDEX, int)
+ GENERATE_FIELD(CONST_INDEX_SEL, int)
+ GENERATE_FIELD(SRC_SEL, int)
+END_REGISTER(SQ_INSTRUCTION_VFETCH_0)
+
+START_REGISTER(SQ_INSTRUCTION_VFETCH_1)
+ GENERATE_FIELD(DST_SEL_X, int)
+ GENERATE_FIELD(DST_SEL_Y, int)
+ GENERATE_FIELD(DST_SEL_Z, int)
+ GENERATE_FIELD(DST_SEL_W, int)
+ GENERATE_FIELD(FORMAT_COMP_ALL, int)
+ GENERATE_FIELD(NUM_FORMAT_ALL, int)
+ GENERATE_FIELD(SIGNED_RF_MODE_ALL, int)
+ GENERATE_FIELD(DATA_FORMAT, int)
+ GENERATE_FIELD(EXP_ADJUST_ALL, int)
+ GENERATE_FIELD(PRED_SELECT, int)
+END_REGISTER(SQ_INSTRUCTION_VFETCH_1)
+
+START_REGISTER(SQ_INSTRUCTION_VFETCH_2)
+ GENERATE_FIELD(STRIDE, int)
+ GENERATE_FIELD(OFFSET, int)
+ GENERATE_FIELD(PRED_CONDITION, int)
+END_REGISTER(SQ_INSTRUCTION_VFETCH_2)
+
+START_REGISTER(SQ_CONSTANT_0)
+ GENERATE_FIELD(RED, float)
+END_REGISTER(SQ_CONSTANT_0)
+
+START_REGISTER(SQ_CONSTANT_1)
+ GENERATE_FIELD(GREEN, float)
+END_REGISTER(SQ_CONSTANT_1)
+
+START_REGISTER(SQ_CONSTANT_2)
+ GENERATE_FIELD(BLUE, float)
+END_REGISTER(SQ_CONSTANT_2)
+
+START_REGISTER(SQ_CONSTANT_3)
+ GENERATE_FIELD(ALPHA, float)
+END_REGISTER(SQ_CONSTANT_3)
+
+START_REGISTER(SQ_FETCH_0)
+ GENERATE_FIELD(VALUE, int)
+END_REGISTER(SQ_FETCH_0)
+
+START_REGISTER(SQ_FETCH_1)
+ GENERATE_FIELD(VALUE, int)
+END_REGISTER(SQ_FETCH_1)
+
+START_REGISTER(SQ_FETCH_2)
+ GENERATE_FIELD(VALUE, int)
+END_REGISTER(SQ_FETCH_2)
+
+START_REGISTER(SQ_FETCH_3)
+ GENERATE_FIELD(VALUE, int)
+END_REGISTER(SQ_FETCH_3)
+
+START_REGISTER(SQ_FETCH_4)
+ GENERATE_FIELD(VALUE, int)
+END_REGISTER(SQ_FETCH_4)
+
+START_REGISTER(SQ_FETCH_5)
+ GENERATE_FIELD(VALUE, int)
+END_REGISTER(SQ_FETCH_5)
+
+START_REGISTER(SQ_CONSTANT_VFETCH_0)
+ GENERATE_FIELD(TYPE, int)
+ GENERATE_FIELD(STATE, int)
+ GENERATE_FIELD(BASE_ADDRESS, hex)
+END_REGISTER(SQ_CONSTANT_VFETCH_0)
+
+START_REGISTER(SQ_CONSTANT_VFETCH_1)
+ GENERATE_FIELD(ENDIAN_SWAP, int)
+ GENERATE_FIELD(LIMIT_ADDRESS, hex)
+END_REGISTER(SQ_CONSTANT_VFETCH_1)
+
+START_REGISTER(SQ_CONSTANT_T2)
+ GENERATE_FIELD(VALUE, int)
+END_REGISTER(SQ_CONSTANT_T2)
+
+START_REGISTER(SQ_CONSTANT_T3)
+ GENERATE_FIELD(VALUE, int)
+END_REGISTER(SQ_CONSTANT_T3)
+
+START_REGISTER(SQ_CF_BOOLEANS)
+ GENERATE_FIELD(CF_BOOLEANS_0, int)
+ GENERATE_FIELD(CF_BOOLEANS_1, int)
+ GENERATE_FIELD(CF_BOOLEANS_2, int)
+ GENERATE_FIELD(CF_BOOLEANS_3, int)
+END_REGISTER(SQ_CF_BOOLEANS)
+
+START_REGISTER(SQ_CF_LOOP)
+ GENERATE_FIELD(CF_LOOP_COUNT, int)
+ GENERATE_FIELD(CF_LOOP_START, int)
+ GENERATE_FIELD(CF_LOOP_STEP, int)
+END_REGISTER(SQ_CF_LOOP)
+
+START_REGISTER(SQ_CONSTANT_RT_0)
+ GENERATE_FIELD(RED, float)
+END_REGISTER(SQ_CONSTANT_RT_0)
+
+START_REGISTER(SQ_CONSTANT_RT_1)
+ GENERATE_FIELD(GREEN, float)
+END_REGISTER(SQ_CONSTANT_RT_1)
+
+START_REGISTER(SQ_CONSTANT_RT_2)
+ GENERATE_FIELD(BLUE, float)
+END_REGISTER(SQ_CONSTANT_RT_2)
+
+START_REGISTER(SQ_CONSTANT_RT_3)
+ GENERATE_FIELD(ALPHA, float)
+END_REGISTER(SQ_CONSTANT_RT_3)
+
+START_REGISTER(SQ_FETCH_RT_0)
+ GENERATE_FIELD(VALUE, int)
+END_REGISTER(SQ_FETCH_RT_0)
+
+START_REGISTER(SQ_FETCH_RT_1)
+ GENERATE_FIELD(VALUE, int)
+END_REGISTER(SQ_FETCH_RT_1)
+
+START_REGISTER(SQ_FETCH_RT_2)
+ GENERATE_FIELD(VALUE, int)
+END_REGISTER(SQ_FETCH_RT_2)
+
+START_REGISTER(SQ_FETCH_RT_3)
+ GENERATE_FIELD(VALUE, int)
+END_REGISTER(SQ_FETCH_RT_3)
+
+START_REGISTER(SQ_FETCH_RT_4)
+ GENERATE_FIELD(VALUE, int)
+END_REGISTER(SQ_FETCH_RT_4)
+
+START_REGISTER(SQ_FETCH_RT_5)
+ GENERATE_FIELD(VALUE, int)
+END_REGISTER(SQ_FETCH_RT_5)
+
+START_REGISTER(SQ_CF_RT_BOOLEANS)
+ GENERATE_FIELD(CF_BOOLEANS_0, int)
+ GENERATE_FIELD(CF_BOOLEANS_1, int)
+ GENERATE_FIELD(CF_BOOLEANS_2, int)
+ GENERATE_FIELD(CF_BOOLEANS_3, int)
+END_REGISTER(SQ_CF_RT_BOOLEANS)
+
+START_REGISTER(SQ_CF_RT_LOOP)
+ GENERATE_FIELD(CF_LOOP_COUNT, int)
+ GENERATE_FIELD(CF_LOOP_START, int)
+ GENERATE_FIELD(CF_LOOP_STEP, int)
+END_REGISTER(SQ_CF_RT_LOOP)
+
+START_REGISTER(SQ_VS_PROGRAM)
+ GENERATE_FIELD(BASE, int)
+ GENERATE_FIELD(SIZE, int)
+END_REGISTER(SQ_VS_PROGRAM)
+
+START_REGISTER(SQ_PS_PROGRAM)
+ GENERATE_FIELD(BASE, int)
+ GENERATE_FIELD(SIZE, int)
+END_REGISTER(SQ_PS_PROGRAM)
+
+START_REGISTER(SQ_CF_PROGRAM_SIZE)
+ GENERATE_FIELD(VS_CF_SIZE, int)
+ GENERATE_FIELD(PS_CF_SIZE, int)
+END_REGISTER(SQ_CF_PROGRAM_SIZE)
+
+START_REGISTER(SQ_INTERPOLATOR_CNTL)
+ GENERATE_FIELD(PARAM_SHADE, ParamShade)
+ GENERATE_FIELD(SAMPLING_PATTERN, SamplingPattern)
+END_REGISTER(SQ_INTERPOLATOR_CNTL)
+
+START_REGISTER(SQ_PROGRAM_CNTL)
+ GENERATE_FIELD(VS_NUM_REG, intMinusOne)
+ GENERATE_FIELD(PS_NUM_REG, intMinusOne)
+ GENERATE_FIELD(VS_RESOURCE, int)
+ GENERATE_FIELD(PS_RESOURCE, int)
+ GENERATE_FIELD(PARAM_GEN, int)
+ GENERATE_FIELD(GEN_INDEX_PIX, int)
+ GENERATE_FIELD(VS_EXPORT_COUNT, intMinusOne)
+ GENERATE_FIELD(VS_EXPORT_MODE, VertexMode)
+ GENERATE_FIELD(PS_EXPORT_MODE, int)
+ GENERATE_FIELD(GEN_INDEX_VTX, int)
+END_REGISTER(SQ_PROGRAM_CNTL)
+
+START_REGISTER(SQ_WRAPPING_0)
+ GENERATE_FIELD(PARAM_WRAP_0, hex)
+ GENERATE_FIELD(PARAM_WRAP_1, hex)
+ GENERATE_FIELD(PARAM_WRAP_2, hex)
+ GENERATE_FIELD(PARAM_WRAP_3, hex)
+ GENERATE_FIELD(PARAM_WRAP_4, hex)
+ GENERATE_FIELD(PARAM_WRAP_5, hex)
+ GENERATE_FIELD(PARAM_WRAP_6, hex)
+ GENERATE_FIELD(PARAM_WRAP_7, hex)
+END_REGISTER(SQ_WRAPPING_0)
+
+START_REGISTER(SQ_WRAPPING_1)
+ GENERATE_FIELD(PARAM_WRAP_8, hex)
+ GENERATE_FIELD(PARAM_WRAP_9, hex)
+ GENERATE_FIELD(PARAM_WRAP_10, hex)
+ GENERATE_FIELD(PARAM_WRAP_11, hex)
+ GENERATE_FIELD(PARAM_WRAP_12, hex)
+ GENERATE_FIELD(PARAM_WRAP_13, hex)
+ GENERATE_FIELD(PARAM_WRAP_14, hex)
+ GENERATE_FIELD(PARAM_WRAP_15, hex)
+END_REGISTER(SQ_WRAPPING_1)
+
+START_REGISTER(SQ_VS_CONST)
+ GENERATE_FIELD(BASE, int)
+ GENERATE_FIELD(SIZE, int)
+END_REGISTER(SQ_VS_CONST)
+
+START_REGISTER(SQ_PS_CONST)
+ GENERATE_FIELD(BASE, int)
+ GENERATE_FIELD(SIZE, int)
+END_REGISTER(SQ_PS_CONST)
+
+START_REGISTER(SQ_CONTEXT_MISC)
+ GENERATE_FIELD(INST_PRED_OPTIMIZE, int)
+ GENERATE_FIELD(SC_OUTPUT_SCREEN_XY, int)
+ GENERATE_FIELD(SC_SAMPLE_CNTL, Sample_Cntl)
+ GENERATE_FIELD(PARAM_GEN_POS, int)
+ GENERATE_FIELD(PERFCOUNTER_REF, int)
+ GENERATE_FIELD(YEILD_OPTIMIZE, int)
+ GENERATE_FIELD(TX_CACHE_SEL, int)
+END_REGISTER(SQ_CONTEXT_MISC)
+
+START_REGISTER(SQ_CF_RD_BASE)
+ GENERATE_FIELD(RD_BASE, hex)
+END_REGISTER(SQ_CF_RD_BASE)
+
+START_REGISTER(SQ_DEBUG_MISC_0)
+ GENERATE_FIELD(DB_PROB_ON, int)
+ GENERATE_FIELD(DB_PROB_BREAK, int)
+ GENERATE_FIELD(DB_PROB_ADDR, int)
+ GENERATE_FIELD(DB_PROB_COUNT, int)
+END_REGISTER(SQ_DEBUG_MISC_0)
+
+START_REGISTER(SQ_DEBUG_MISC_1)
+ GENERATE_FIELD(DB_ON_PIX, int)
+ GENERATE_FIELD(DB_ON_VTX, int)
+ GENERATE_FIELD(DB_INST_COUNT, int)
+ GENERATE_FIELD(DB_BREAK_ADDR, int)
+END_REGISTER(SQ_DEBUG_MISC_1)
+
+START_REGISTER(MH_ARBITER_CONFIG)
+ GENERATE_FIELD(SAME_PAGE_LIMIT, int)
+ GENERATE_FIELD(SAME_PAGE_GRANULARITY, int)
+ GENERATE_FIELD(L1_ARB_ENABLE, bool)
+ GENERATE_FIELD(L1_ARB_HOLD_ENABLE, int)
+ GENERATE_FIELD(L2_ARB_CONTROL, int)
+ GENERATE_FIELD(PAGE_SIZE, int)
+ GENERATE_FIELD(TC_REORDER_ENABLE, bool)
+ GENERATE_FIELD(TC_ARB_HOLD_ENABLE, bool)
+ GENERATE_FIELD(IN_FLIGHT_LIMIT_ENABLE, bool)
+ GENERATE_FIELD(IN_FLIGHT_LIMIT, int)
+ GENERATE_FIELD(CP_CLNT_ENABLE, bool)
+ GENERATE_FIELD(VGT_CLNT_ENABLE, bool)
+ GENERATE_FIELD(TC_CLNT_ENABLE, bool)
+ GENERATE_FIELD(RB_CLNT_ENABLE, bool)
+ GENERATE_FIELD(PA_CLNT_ENABLE, bool)
+END_REGISTER(MH_ARBITER_CONFIG)
+
+START_REGISTER(MH_CLNT_AXI_ID_REUSE)
+ GENERATE_FIELD(CPw_ID, int)
+ GENERATE_FIELD(RESERVED1, int)
+ GENERATE_FIELD(RBw_ID, int)
+ GENERATE_FIELD(RESERVED2, int)
+ GENERATE_FIELD(MMUr_ID, int)
+ GENERATE_FIELD(RESERVED3, int)
+ GENERATE_FIELD(PAw_ID, int)
+END_REGISTER(MH_CLNT_AXI_ID_REUSE)
+
+START_REGISTER(MH_INTERRUPT_MASK)
+ GENERATE_FIELD(AXI_READ_ERROR, bool)
+ GENERATE_FIELD(AXI_WRITE_ERROR, bool)
+ GENERATE_FIELD(MMU_PAGE_FAULT, bool)
+END_REGISTER(MH_INTERRUPT_MASK)
+
+START_REGISTER(MH_INTERRUPT_STATUS)
+ GENERATE_FIELD(AXI_READ_ERROR, int)
+ GENERATE_FIELD(AXI_WRITE_ERROR, int)
+ GENERATE_FIELD(MMU_PAGE_FAULT, int)
+END_REGISTER(MH_INTERRUPT_STATUS)
+
+START_REGISTER(MH_INTERRUPT_CLEAR)
+ GENERATE_FIELD(AXI_READ_ERROR, int)
+ GENERATE_FIELD(AXI_WRITE_ERROR, int)
+ GENERATE_FIELD(MMU_PAGE_FAULT, int)
+END_REGISTER(MH_INTERRUPT_CLEAR)
+
+START_REGISTER(MH_AXI_ERROR)
+ GENERATE_FIELD(AXI_READ_ID, int)
+ GENERATE_FIELD(AXI_READ_ERROR, int)
+ GENERATE_FIELD(AXI_WRITE_ID, int)
+ GENERATE_FIELD(AXI_WRITE_ERROR, int)
+END_REGISTER(MH_AXI_ERROR)
+
+START_REGISTER(MH_PERFCOUNTER0_SELECT)
+ GENERATE_FIELD(PERF_SEL, MhPerfEncode)
+END_REGISTER(MH_PERFCOUNTER0_SELECT)
+
+START_REGISTER(MH_PERFCOUNTER1_SELECT)
+ GENERATE_FIELD(PERF_SEL, MhPerfEncode)
+END_REGISTER(MH_PERFCOUNTER1_SELECT)
+
+START_REGISTER(MH_PERFCOUNTER0_CONFIG)
+ GENERATE_FIELD(N_VALUE, int)
+END_REGISTER(MH_PERFCOUNTER0_CONFIG)
+
+START_REGISTER(MH_PERFCOUNTER1_CONFIG)
+ GENERATE_FIELD(N_VALUE, int)
+END_REGISTER(MH_PERFCOUNTER1_CONFIG)
+
+START_REGISTER(MH_PERFCOUNTER0_LOW)
+ GENERATE_FIELD(PERF_COUNTER_LOW, int)
+END_REGISTER(MH_PERFCOUNTER0_LOW)
+
+START_REGISTER(MH_PERFCOUNTER1_LOW)
+ GENERATE_FIELD(PERF_COUNTER_LOW, int)
+END_REGISTER(MH_PERFCOUNTER1_LOW)
+
+START_REGISTER(MH_PERFCOUNTER0_HI)
+ GENERATE_FIELD(PERF_COUNTER_HI, int)
+END_REGISTER(MH_PERFCOUNTER0_HI)
+
+START_REGISTER(MH_PERFCOUNTER1_HI)
+ GENERATE_FIELD(PERF_COUNTER_HI, int)
+END_REGISTER(MH_PERFCOUNTER1_HI)
+
+START_REGISTER(MH_DEBUG_CTRL)
+ GENERATE_FIELD(INDEX, int)
+END_REGISTER(MH_DEBUG_CTRL)
+
+START_REGISTER(MH_DEBUG_DATA)
+ GENERATE_FIELD(DATA, int)
+END_REGISTER(MH_DEBUG_DATA)
+
+START_REGISTER(MH_AXI_HALT_CONTROL)
+ GENERATE_FIELD(AXI_HALT, bool)
+END_REGISTER(MH_AXI_HALT_CONTROL)
+
+START_REGISTER(MH_MMU_CONFIG)
+ GENERATE_FIELD(MMU_ENABLE, bool)
+ GENERATE_FIELD(SPLIT_MODE_ENABLE, bool)
+ GENERATE_FIELD(RESERVED1, int)
+ GENERATE_FIELD(RB_W_CLNT_BEHAVIOR, MmuClntBeh)
+ GENERATE_FIELD(CP_W_CLNT_BEHAVIOR, MmuClntBeh)
+ GENERATE_FIELD(CP_R0_CLNT_BEHAVIOR, MmuClntBeh)
+ GENERATE_FIELD(CP_R1_CLNT_BEHAVIOR, MmuClntBeh)
+ GENERATE_FIELD(CP_R2_CLNT_BEHAVIOR, MmuClntBeh)
+ GENERATE_FIELD(CP_R3_CLNT_BEHAVIOR, MmuClntBeh)
+ GENERATE_FIELD(CP_R4_CLNT_BEHAVIOR, MmuClntBeh)
+ GENERATE_FIELD(VGT_R0_CLNT_BEHAVIOR, MmuClntBeh)
+ GENERATE_FIELD(VGT_R1_CLNT_BEHAVIOR, MmuClntBeh)
+ GENERATE_FIELD(TC_R_CLNT_BEHAVIOR, MmuClntBeh)
+ GENERATE_FIELD(PA_W_CLNT_BEHAVIOR, MmuClntBeh)
+END_REGISTER(MH_MMU_CONFIG)
+
+START_REGISTER(MH_MMU_VA_RANGE)
+ GENERATE_FIELD(NUM_64KB_REGIONS, int)
+ GENERATE_FIELD(VA_BASE, int)
+END_REGISTER(MH_MMU_VA_RANGE)
+
+START_REGISTER(MH_MMU_PT_BASE)
+ GENERATE_FIELD(PT_BASE, int)
+END_REGISTER(MH_MMU_PT_BASE)
+
+START_REGISTER(MH_MMU_PAGE_FAULT)
+ GENERATE_FIELD(PAGE_FAULT, int)
+ GENERATE_FIELD(OP_TYPE, int)
+ GENERATE_FIELD(CLNT_BEHAVIOR, MmuClntBeh)
+ GENERATE_FIELD(AXI_ID, int)
+ GENERATE_FIELD(RESERVED1, int)
+ GENERATE_FIELD(MPU_ADDRESS_OUT_OF_RANGE, int)
+ GENERATE_FIELD(ADDRESS_OUT_OF_RANGE, int)
+ GENERATE_FIELD(READ_PROTECTION_ERROR, int)
+ GENERATE_FIELD(WRITE_PROTECTION_ERROR, int)
+ GENERATE_FIELD(REQ_VA, int)
+END_REGISTER(MH_MMU_PAGE_FAULT)
+
+START_REGISTER(MH_MMU_TRAN_ERROR)
+ GENERATE_FIELD(TRAN_ERROR, int)
+END_REGISTER(MH_MMU_TRAN_ERROR)
+
+START_REGISTER(MH_MMU_INVALIDATE)
+ GENERATE_FIELD(INVALIDATE_ALL, int)
+ GENERATE_FIELD(INVALIDATE_TC, int)
+END_REGISTER(MH_MMU_INVALIDATE)
+
+START_REGISTER(MH_MMU_MPU_BASE)
+ GENERATE_FIELD(MPU_BASE, int)
+END_REGISTER(MH_MMU_MPU_BASE)
+
+START_REGISTER(MH_MMU_MPU_END)
+ GENERATE_FIELD(MPU_END, int)
+END_REGISTER(MH_MMU_MPU_END)
+
+START_REGISTER(WAIT_UNTIL)
+ GENERATE_FIELD(WAIT_RE_VSYNC, int)
+ GENERATE_FIELD(WAIT_FE_VSYNC, int)
+ GENERATE_FIELD(WAIT_VSYNC, int)
+ GENERATE_FIELD(WAIT_DSPLY_ID0, int)
+ GENERATE_FIELD(WAIT_DSPLY_ID1, int)
+ GENERATE_FIELD(WAIT_DSPLY_ID2, int)
+ GENERATE_FIELD(WAIT_CMDFIFO, int)
+ GENERATE_FIELD(WAIT_2D_IDLE, int)
+ GENERATE_FIELD(WAIT_3D_IDLE, int)
+ GENERATE_FIELD(WAIT_2D_IDLECLEAN, int)
+ GENERATE_FIELD(WAIT_3D_IDLECLEAN, int)
+ GENERATE_FIELD(CMDFIFO_ENTRIES, int)
+END_REGISTER(WAIT_UNTIL)
+
+START_REGISTER(RBBM_ISYNC_CNTL)
+ GENERATE_FIELD(ISYNC_WAIT_IDLEGUI, int)
+ GENERATE_FIELD(ISYNC_CPSCRATCH_IDLEGUI, int)
+END_REGISTER(RBBM_ISYNC_CNTL)
+
+START_REGISTER(RBBM_STATUS)
+ GENERATE_FIELD(CMDFIFO_AVAIL, int)
+ GENERATE_FIELD(TC_BUSY, int)
+ GENERATE_FIELD(HIRQ_PENDING, int)
+ GENERATE_FIELD(CPRQ_PENDING, int)
+ GENERATE_FIELD(CFRQ_PENDING, int)
+ GENERATE_FIELD(PFRQ_PENDING, int)
+ GENERATE_FIELD(VGT_BUSY_NO_DMA, int)
+ GENERATE_FIELD(RBBM_WU_BUSY, int)
+ GENERATE_FIELD(CP_NRT_BUSY, int)
+ GENERATE_FIELD(MH_BUSY, int)
+ GENERATE_FIELD(MH_COHERENCY_BUSY, int)
+ GENERATE_FIELD(SX_BUSY, int)
+ GENERATE_FIELD(TPC_BUSY, int)
+ GENERATE_FIELD(SC_CNTX_BUSY, int)
+ GENERATE_FIELD(PA_BUSY, int)
+ GENERATE_FIELD(VGT_BUSY, int)
+ GENERATE_FIELD(SQ_CNTX17_BUSY, int)
+ GENERATE_FIELD(SQ_CNTX0_BUSY, int)
+ GENERATE_FIELD(RB_CNTX_BUSY, int)
+ GENERATE_FIELD(GUI_ACTIVE, int)
+END_REGISTER(RBBM_STATUS)
+
+START_REGISTER(RBBM_DSPLY)
+ GENERATE_FIELD(SEL_DMI_ACTIVE_BUFID0, int)
+ GENERATE_FIELD(SEL_DMI_ACTIVE_BUFID1, int)
+ GENERATE_FIELD(SEL_DMI_ACTIVE_BUFID2, int)
+ GENERATE_FIELD(SEL_DMI_VSYNC_VALID, int)
+ GENERATE_FIELD(DMI_CH1_USE_BUFID0, int)
+ GENERATE_FIELD(DMI_CH1_USE_BUFID1, int)
+ GENERATE_FIELD(DMI_CH1_USE_BUFID2, int)
+ GENERATE_FIELD(DMI_CH1_SW_CNTL, int)
+ GENERATE_FIELD(DMI_CH1_NUM_BUFS, int)
+ GENERATE_FIELD(DMI_CH2_USE_BUFID0, int)
+ GENERATE_FIELD(DMI_CH2_USE_BUFID1, int)
+ GENERATE_FIELD(DMI_CH2_USE_BUFID2, int)
+ GENERATE_FIELD(DMI_CH2_SW_CNTL, int)
+ GENERATE_FIELD(DMI_CH2_NUM_BUFS, int)
+ GENERATE_FIELD(DMI_CHANNEL_SELECT, int)
+ GENERATE_FIELD(DMI_CH3_USE_BUFID0, int)
+ GENERATE_FIELD(DMI_CH3_USE_BUFID1, int)
+ GENERATE_FIELD(DMI_CH3_USE_BUFID2, int)
+ GENERATE_FIELD(DMI_CH3_SW_CNTL, int)
+ GENERATE_FIELD(DMI_CH3_NUM_BUFS, int)
+ GENERATE_FIELD(DMI_CH4_USE_BUFID0, int)
+ GENERATE_FIELD(DMI_CH4_USE_BUFID1, int)
+ GENERATE_FIELD(DMI_CH4_USE_BUFID2, int)
+ GENERATE_FIELD(DMI_CH4_SW_CNTL, int)
+ GENERATE_FIELD(DMI_CH4_NUM_BUFS, int)
+END_REGISTER(RBBM_DSPLY)
+
+START_REGISTER(RBBM_RENDER_LATEST)
+ GENERATE_FIELD(DMI_CH1_BUFFER_ID, int)
+ GENERATE_FIELD(DMI_CH2_BUFFER_ID, int)
+ GENERATE_FIELD(DMI_CH3_BUFFER_ID, int)
+ GENERATE_FIELD(DMI_CH4_BUFFER_ID, int)
+END_REGISTER(RBBM_RENDER_LATEST)
+
+START_REGISTER(RBBM_RTL_RELEASE)
+ GENERATE_FIELD(CHANGELIST, int)
+END_REGISTER(RBBM_RTL_RELEASE)
+
+START_REGISTER(RBBM_PATCH_RELEASE)
+ GENERATE_FIELD(PATCH_REVISION, int)
+ GENERATE_FIELD(PATCH_SELECTION, int)
+ GENERATE_FIELD(CUSTOMER_ID, int)
+END_REGISTER(RBBM_PATCH_RELEASE)
+
+START_REGISTER(RBBM_AUXILIARY_CONFIG)
+ GENERATE_FIELD(RESERVED, int)
+END_REGISTER(RBBM_AUXILIARY_CONFIG)
+
+START_REGISTER(RBBM_PERIPHID0)
+ GENERATE_FIELD(PARTNUMBER0, int)
+END_REGISTER(RBBM_PERIPHID0)
+
+START_REGISTER(RBBM_PERIPHID1)
+ GENERATE_FIELD(PARTNUMBER1, int)
+ GENERATE_FIELD(DESIGNER0, int)
+END_REGISTER(RBBM_PERIPHID1)
+
+START_REGISTER(RBBM_PERIPHID2)
+ GENERATE_FIELD(DESIGNER1, int)
+ GENERATE_FIELD(REVISION, int)
+END_REGISTER(RBBM_PERIPHID2)
+
+START_REGISTER(RBBM_PERIPHID3)
+ GENERATE_FIELD(RBBM_HOST_INTERFACE, int)
+ GENERATE_FIELD(GARB_SLAVE_INTERFACE, int)
+ GENERATE_FIELD(MH_INTERFACE, int)
+ GENERATE_FIELD(CONTINUATION, int)
+END_REGISTER(RBBM_PERIPHID3)
+
+START_REGISTER(RBBM_CNTL)
+ GENERATE_FIELD(READ_TIMEOUT, int)
+ GENERATE_FIELD(REGCLK_DEASSERT_TIME, int)
+END_REGISTER(RBBM_CNTL)
+
+START_REGISTER(RBBM_SKEW_CNTL)
+ GENERATE_FIELD(SKEW_TOP_THRESHOLD, int)
+ GENERATE_FIELD(SKEW_COUNT, int)
+END_REGISTER(RBBM_SKEW_CNTL)
+
+START_REGISTER(RBBM_SOFT_RESET)
+ GENERATE_FIELD(SOFT_RESET_CP, int)
+ GENERATE_FIELD(SOFT_RESET_PA, int)
+ GENERATE_FIELD(SOFT_RESET_MH, int)
+ GENERATE_FIELD(SOFT_RESET_BC, int)
+ GENERATE_FIELD(SOFT_RESET_SQ, int)
+ GENERATE_FIELD(SOFT_RESET_SX, int)
+ GENERATE_FIELD(SOFT_RESET_CIB, int)
+ GENERATE_FIELD(SOFT_RESET_SC, int)
+ GENERATE_FIELD(SOFT_RESET_VGT, int)
+END_REGISTER(RBBM_SOFT_RESET)
+
+START_REGISTER(RBBM_PM_OVERRIDE1)
+ GENERATE_FIELD(RBBM_AHBCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(SC_REG_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(SC_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(SP_TOP_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(SP_V0_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(SQ_REG_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(SQ_REG_FIFOS_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(SQ_CONST_MEM_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(SQ_SQ_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(SX_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(SX_REG_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(TCM_TCO_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(TCM_TCM_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(TCM_TCD_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(TCM_REG_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(TPC_TPC_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(TPC_REG_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(TCF_TCA_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(TCF_TCB_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(TCF_TCB_READ_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(TP_TP_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(TP_REG_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(CP_G_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(CP_REG_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(CP_G_REG_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(SPI_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(RB_REG_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(RB_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(MH_MH_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(MH_REG_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(MH_MMU_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(MH_TCROQ_SCLK_PM_OVERRIDE, int)
+END_REGISTER(RBBM_PM_OVERRIDE1)
+
+START_REGISTER(RBBM_PM_OVERRIDE2)
+ GENERATE_FIELD(PA_REG_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(PA_PA_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(PA_AG_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(VGT_REG_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(VGT_FIFOS_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(VGT_VGT_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(DEBUG_PERF_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(PERM_SCLK_PM_OVERRIDE, int)
+ GENERATE_FIELD(GC_GA_GMEM0_PM_OVERRIDE, int)
+ GENERATE_FIELD(GC_GA_GMEM1_PM_OVERRIDE, int)
+ GENERATE_FIELD(GC_GA_GMEM2_PM_OVERRIDE, int)
+ GENERATE_FIELD(GC_GA_GMEM3_PM_OVERRIDE, int)
+END_REGISTER(RBBM_PM_OVERRIDE2)
+
+START_REGISTER(GC_SYS_IDLE)
+ GENERATE_FIELD(GC_SYS_IDLE_DELAY, int)
+ GENERATE_FIELD(GC_SYS_WAIT_DMI_MASK, int)
+ GENERATE_FIELD(GC_SYS_URGENT_RAMP, int)
+ GENERATE_FIELD(GC_SYS_WAIT_DMI, int)
+ GENERATE_FIELD(GC_SYS_URGENT_RAMP_OVERRIDE, int)
+ GENERATE_FIELD(GC_SYS_WAIT_DMI_OVERRIDE, int)
+ GENERATE_FIELD(GC_SYS_IDLE_OVERRIDE, int)
+END_REGISTER(GC_SYS_IDLE)
+
+START_REGISTER(NQWAIT_UNTIL)
+ GENERATE_FIELD(WAIT_GUI_IDLE, int)
+END_REGISTER(NQWAIT_UNTIL)
+
+START_REGISTER(RBBM_DEBUG_OUT)
+ GENERATE_FIELD(DEBUG_BUS_OUT, int)
+END_REGISTER(RBBM_DEBUG_OUT)
+
+START_REGISTER(RBBM_DEBUG_CNTL)
+ GENERATE_FIELD(SUB_BLOCK_ADDR, int)
+ GENERATE_FIELD(SUB_BLOCK_SEL, int)
+ GENERATE_FIELD(SW_ENABLE, int)
+ GENERATE_FIELD(GPIO_SUB_BLOCK_ADDR, int)
+ GENERATE_FIELD(GPIO_SUB_BLOCK_SEL, int)
+ GENERATE_FIELD(GPIO_BYTE_LANE_ENB, int)
+END_REGISTER(RBBM_DEBUG_CNTL)
+
+START_REGISTER(RBBM_DEBUG)
+ GENERATE_FIELD(IGNORE_RTR, int)
+ GENERATE_FIELD(IGNORE_CP_SCHED_WU, int)
+ GENERATE_FIELD(IGNORE_CP_SCHED_ISYNC, int)
+ GENERATE_FIELD(IGNORE_CP_SCHED_NQ_HI, int)
+ GENERATE_FIELD(HYSTERESIS_NRT_GUI_ACTIVE, int)
+ GENERATE_FIELD(IGNORE_RTR_FOR_HI, int)
+ GENERATE_FIELD(IGNORE_CP_RBBM_NRTRTR_FOR_HI, int)
+ GENERATE_FIELD(IGNORE_VGT_RBBM_NRTRTR_FOR_HI, int)
+ GENERATE_FIELD(IGNORE_SQ_RBBM_NRTRTR_FOR_HI, int)
+ GENERATE_FIELD(CP_RBBM_NRTRTR, int)
+ GENERATE_FIELD(VGT_RBBM_NRTRTR, int)
+ GENERATE_FIELD(SQ_RBBM_NRTRTR, int)
+ GENERATE_FIELD(CLIENTS_FOR_NRT_RTR_FOR_HI, int)
+ GENERATE_FIELD(CLIENTS_FOR_NRT_RTR, int)
+ GENERATE_FIELD(IGNORE_SX_RBBM_BUSY, int)
+END_REGISTER(RBBM_DEBUG)
+
+START_REGISTER(RBBM_READ_ERROR)
+ GENERATE_FIELD(READ_ADDRESS, int)
+ GENERATE_FIELD(READ_REQUESTER, int)
+ GENERATE_FIELD(READ_ERROR, int)
+END_REGISTER(RBBM_READ_ERROR)
+
+START_REGISTER(RBBM_WAIT_IDLE_CLOCKS)
+ GENERATE_FIELD(WAIT_IDLE_CLOCKS_NRT, int)
+END_REGISTER(RBBM_WAIT_IDLE_CLOCKS)
+
+START_REGISTER(RBBM_INT_CNTL)
+ GENERATE_FIELD(RDERR_INT_MASK, int)
+ GENERATE_FIELD(DISPLAY_UPDATE_INT_MASK, int)
+ GENERATE_FIELD(GUI_IDLE_INT_MASK, int)
+END_REGISTER(RBBM_INT_CNTL)
+
+START_REGISTER(RBBM_INT_STATUS)
+ GENERATE_FIELD(RDERR_INT_STAT, int)
+ GENERATE_FIELD(DISPLAY_UPDATE_INT_STAT, int)
+ GENERATE_FIELD(GUI_IDLE_INT_STAT, int)
+END_REGISTER(RBBM_INT_STATUS)
+
+START_REGISTER(RBBM_INT_ACK)
+ GENERATE_FIELD(RDERR_INT_ACK, int)
+ GENERATE_FIELD(DISPLAY_UPDATE_INT_ACK, int)
+ GENERATE_FIELD(GUI_IDLE_INT_ACK, int)
+END_REGISTER(RBBM_INT_ACK)
+
+START_REGISTER(MASTER_INT_SIGNAL)
+ GENERATE_FIELD(MH_INT_STAT, int)
+ GENERATE_FIELD(SQ_INT_STAT, int)
+ GENERATE_FIELD(CP_INT_STAT, int)
+ GENERATE_FIELD(RBBM_INT_STAT, int)
+END_REGISTER(MASTER_INT_SIGNAL)
+
+START_REGISTER(RBBM_PERFCOUNTER1_SELECT)
+ GENERATE_FIELD(PERF_COUNT1_SEL, RBBM_PERFCOUNT1_SEL)
+END_REGISTER(RBBM_PERFCOUNTER1_SELECT)
+
+START_REGISTER(RBBM_PERFCOUNTER1_LO)
+ GENERATE_FIELD(PERF_COUNT1_LO, int)
+END_REGISTER(RBBM_PERFCOUNTER1_LO)
+
+START_REGISTER(RBBM_PERFCOUNTER1_HI)
+ GENERATE_FIELD(PERF_COUNT1_HI, int)
+END_REGISTER(RBBM_PERFCOUNTER1_HI)
+
+START_REGISTER(CP_RB_BASE)
+ GENERATE_FIELD(RB_BASE, int)
+END_REGISTER(CP_RB_BASE)
+
+START_REGISTER(CP_RB_CNTL)
+ GENERATE_FIELD(RB_BUFSZ, int)
+ GENERATE_FIELD(RB_BLKSZ, int)
+ GENERATE_FIELD(BUF_SWAP, int)
+ GENERATE_FIELD(RB_POLL_EN, int)
+ GENERATE_FIELD(RB_NO_UPDATE, int)
+ GENERATE_FIELD(RB_RPTR_WR_ENA, int)
+END_REGISTER(CP_RB_CNTL)
+
+START_REGISTER(CP_RB_RPTR_ADDR)
+ GENERATE_FIELD(RB_RPTR_SWAP, int)
+ GENERATE_FIELD(RB_RPTR_ADDR, int)
+END_REGISTER(CP_RB_RPTR_ADDR)
+
+START_REGISTER(CP_RB_RPTR)
+ GENERATE_FIELD(RB_RPTR, int)
+END_REGISTER(CP_RB_RPTR)
+
+START_REGISTER(CP_RB_RPTR_WR)
+ GENERATE_FIELD(RB_RPTR_WR, int)
+END_REGISTER(CP_RB_RPTR_WR)
+
+START_REGISTER(CP_RB_WPTR)
+ GENERATE_FIELD(RB_WPTR, int)
+END_REGISTER(CP_RB_WPTR)
+
+START_REGISTER(CP_RB_WPTR_DELAY)
+ GENERATE_FIELD(PRE_WRITE_TIMER, int)
+ GENERATE_FIELD(PRE_WRITE_LIMIT, int)
+END_REGISTER(CP_RB_WPTR_DELAY)
+
+START_REGISTER(CP_RB_WPTR_BASE)
+ GENERATE_FIELD(RB_WPTR_SWAP, int)
+ GENERATE_FIELD(RB_WPTR_BASE, int)
+END_REGISTER(CP_RB_WPTR_BASE)
+
+START_REGISTER(CP_IB1_BASE)
+ GENERATE_FIELD(IB1_BASE, int)
+END_REGISTER(CP_IB1_BASE)
+
+START_REGISTER(CP_IB1_BUFSZ)
+ GENERATE_FIELD(IB1_BUFSZ, int)
+END_REGISTER(CP_IB1_BUFSZ)
+
+START_REGISTER(CP_IB2_BASE)
+ GENERATE_FIELD(IB2_BASE, int)
+END_REGISTER(CP_IB2_BASE)
+
+START_REGISTER(CP_IB2_BUFSZ)
+ GENERATE_FIELD(IB2_BUFSZ, int)
+END_REGISTER(CP_IB2_BUFSZ)
+
+START_REGISTER(CP_ST_BASE)
+ GENERATE_FIELD(ST_BASE, int)
+END_REGISTER(CP_ST_BASE)
+
+START_REGISTER(CP_ST_BUFSZ)
+ GENERATE_FIELD(ST_BUFSZ, int)
+END_REGISTER(CP_ST_BUFSZ)
+
+START_REGISTER(CP_QUEUE_THRESHOLDS)
+ GENERATE_FIELD(CSQ_IB1_START, int)
+ GENERATE_FIELD(CSQ_IB2_START, int)
+ GENERATE_FIELD(CSQ_ST_START, int)
+END_REGISTER(CP_QUEUE_THRESHOLDS)
+
+START_REGISTER(CP_MEQ_THRESHOLDS)
+ GENERATE_FIELD(MEQ_END, int)
+ GENERATE_FIELD(ROQ_END, int)
+END_REGISTER(CP_MEQ_THRESHOLDS)
+
+START_REGISTER(CP_CSQ_AVAIL)
+ GENERATE_FIELD(CSQ_CNT_RING, int)
+ GENERATE_FIELD(CSQ_CNT_IB1, int)
+ GENERATE_FIELD(CSQ_CNT_IB2, int)
+END_REGISTER(CP_CSQ_AVAIL)
+
+START_REGISTER(CP_STQ_AVAIL)
+ GENERATE_FIELD(STQ_CNT_ST, int)
+END_REGISTER(CP_STQ_AVAIL)
+
+START_REGISTER(CP_MEQ_AVAIL)
+ GENERATE_FIELD(MEQ_CNT, int)
+END_REGISTER(CP_MEQ_AVAIL)
+
+START_REGISTER(CP_CSQ_RB_STAT)
+ GENERATE_FIELD(CSQ_RPTR_PRIMARY, int)
+ GENERATE_FIELD(CSQ_WPTR_PRIMARY, int)
+END_REGISTER(CP_CSQ_RB_STAT)
+
+START_REGISTER(CP_CSQ_IB1_STAT)
+ GENERATE_FIELD(CSQ_RPTR_INDIRECT1, int)
+ GENERATE_FIELD(CSQ_WPTR_INDIRECT1, int)
+END_REGISTER(CP_CSQ_IB1_STAT)
+
+START_REGISTER(CP_CSQ_IB2_STAT)
+ GENERATE_FIELD(CSQ_RPTR_INDIRECT2, int)
+ GENERATE_FIELD(CSQ_WPTR_INDIRECT2, int)
+END_REGISTER(CP_CSQ_IB2_STAT)
+
+START_REGISTER(CP_NON_PREFETCH_CNTRS)
+ GENERATE_FIELD(IB1_COUNTER, int)
+ GENERATE_FIELD(IB2_COUNTER, int)
+END_REGISTER(CP_NON_PREFETCH_CNTRS)
+
+START_REGISTER(CP_STQ_ST_STAT)
+ GENERATE_FIELD(STQ_RPTR_ST, int)
+ GENERATE_FIELD(STQ_WPTR_ST, int)
+END_REGISTER(CP_STQ_ST_STAT)
+
+START_REGISTER(CP_MEQ_STAT)
+ GENERATE_FIELD(MEQ_RPTR, int)
+ GENERATE_FIELD(MEQ_WPTR, int)
+END_REGISTER(CP_MEQ_STAT)
+
+START_REGISTER(CP_MIU_TAG_STAT)
+ GENERATE_FIELD(TAG_0_STAT, int)
+ GENERATE_FIELD(TAG_1_STAT, int)
+ GENERATE_FIELD(TAG_2_STAT, int)
+ GENERATE_FIELD(TAG_3_STAT, int)
+ GENERATE_FIELD(TAG_4_STAT, int)
+ GENERATE_FIELD(TAG_5_STAT, int)
+ GENERATE_FIELD(TAG_6_STAT, int)
+ GENERATE_FIELD(TAG_7_STAT, int)
+ GENERATE_FIELD(TAG_8_STAT, int)
+ GENERATE_FIELD(TAG_9_STAT, int)
+ GENERATE_FIELD(TAG_10_STAT, int)
+ GENERATE_FIELD(TAG_11_STAT, int)
+ GENERATE_FIELD(TAG_12_STAT, int)
+ GENERATE_FIELD(TAG_13_STAT, int)
+ GENERATE_FIELD(TAG_14_STAT, int)
+ GENERATE_FIELD(TAG_15_STAT, int)
+ GENERATE_FIELD(TAG_16_STAT, int)
+ GENERATE_FIELD(TAG_17_STAT, int)
+ GENERATE_FIELD(INVALID_RETURN_TAG, int)
+END_REGISTER(CP_MIU_TAG_STAT)
+
+START_REGISTER(CP_CMD_INDEX)
+ GENERATE_FIELD(CMD_INDEX, int)
+ GENERATE_FIELD(CMD_QUEUE_SEL, int)
+END_REGISTER(CP_CMD_INDEX)
+
+START_REGISTER(CP_CMD_DATA)
+ GENERATE_FIELD(CMD_DATA, int)
+END_REGISTER(CP_CMD_DATA)
+
+START_REGISTER(CP_ME_CNTL)
+ GENERATE_FIELD(ME_STATMUX, int)
+ GENERATE_FIELD(VTX_DEALLOC_FIFO_EMPTY, int)
+ GENERATE_FIELD(PIX_DEALLOC_FIFO_EMPTY, int)
+ GENERATE_FIELD(ME_HALT, int)
+ GENERATE_FIELD(ME_BUSY, int)
+ GENERATE_FIELD(PROG_CNT_SIZE, int)
+END_REGISTER(CP_ME_CNTL)
+
+START_REGISTER(CP_ME_STATUS)
+ GENERATE_FIELD(ME_DEBUG_DATA, int)
+END_REGISTER(CP_ME_STATUS)
+
+START_REGISTER(CP_ME_RAM_WADDR)
+ GENERATE_FIELD(ME_RAM_WADDR, int)
+END_REGISTER(CP_ME_RAM_WADDR)
+
+START_REGISTER(CP_ME_RAM_RADDR)
+ GENERATE_FIELD(ME_RAM_RADDR, int)
+END_REGISTER(CP_ME_RAM_RADDR)
+
+START_REGISTER(CP_ME_RAM_DATA)
+ GENERATE_FIELD(ME_RAM_DATA, int)
+END_REGISTER(CP_ME_RAM_DATA)
+
+START_REGISTER(CP_ME_RDADDR)
+ GENERATE_FIELD(ME_RDADDR, int)
+END_REGISTER(CP_ME_RDADDR)
+
+START_REGISTER(CP_DEBUG)
+ GENERATE_FIELD(CP_DEBUG_UNUSED_22_to_0, int)
+ GENERATE_FIELD(PREDICATE_DISABLE, int)
+ GENERATE_FIELD(PROG_END_PTR_ENABLE, int)
+ GENERATE_FIELD(MIU_128BIT_WRITE_ENABLE, int)
+ GENERATE_FIELD(PREFETCH_PASS_NOPS, int)
+ GENERATE_FIELD(DYNAMIC_CLK_DISABLE, int)
+ GENERATE_FIELD(PREFETCH_MATCH_DISABLE, int)
+ GENERATE_FIELD(SIMPLE_ME_FLOW_CONTROL, int)
+ GENERATE_FIELD(MIU_WRITE_PACK_DISABLE, int)
+END_REGISTER(CP_DEBUG)
+
+START_REGISTER(SCRATCH_REG0)
+ GENERATE_FIELD(SCRATCH_REG0, int)
+END_REGISTER(SCRATCH_REG0)
+
+START_REGISTER(SCRATCH_REG1)
+ GENERATE_FIELD(SCRATCH_REG1, int)
+END_REGISTER(SCRATCH_REG1)
+
+START_REGISTER(SCRATCH_REG2)
+ GENERATE_FIELD(SCRATCH_REG2, int)
+END_REGISTER(SCRATCH_REG2)
+
+START_REGISTER(SCRATCH_REG3)
+ GENERATE_FIELD(SCRATCH_REG3, int)
+END_REGISTER(SCRATCH_REG3)
+
+START_REGISTER(SCRATCH_REG4)
+ GENERATE_FIELD(SCRATCH_REG4, int)
+END_REGISTER(SCRATCH_REG4)
+
+START_REGISTER(SCRATCH_REG5)
+ GENERATE_FIELD(SCRATCH_REG5, int)
+END_REGISTER(SCRATCH_REG5)
+
+START_REGISTER(SCRATCH_REG6)
+ GENERATE_FIELD(SCRATCH_REG6, int)
+END_REGISTER(SCRATCH_REG6)
+
+START_REGISTER(SCRATCH_REG7)
+ GENERATE_FIELD(SCRATCH_REG7, int)
+END_REGISTER(SCRATCH_REG7)
+
+START_REGISTER(SCRATCH_UMSK)
+ GENERATE_FIELD(SCRATCH_UMSK, int)
+ GENERATE_FIELD(SCRATCH_SWAP, int)
+END_REGISTER(SCRATCH_UMSK)
+
+START_REGISTER(SCRATCH_ADDR)
+ GENERATE_FIELD(SCRATCH_ADDR, hex)
+END_REGISTER(SCRATCH_ADDR)
+
+START_REGISTER(CP_ME_VS_EVENT_SRC)
+ GENERATE_FIELD(VS_DONE_SWM, int)
+ GENERATE_FIELD(VS_DONE_CNTR, int)
+END_REGISTER(CP_ME_VS_EVENT_SRC)
+
+START_REGISTER(CP_ME_VS_EVENT_ADDR)
+ GENERATE_FIELD(VS_DONE_SWAP, int)
+ GENERATE_FIELD(VS_DONE_ADDR, int)
+END_REGISTER(CP_ME_VS_EVENT_ADDR)
+
+START_REGISTER(CP_ME_VS_EVENT_DATA)
+ GENERATE_FIELD(VS_DONE_DATA, int)
+END_REGISTER(CP_ME_VS_EVENT_DATA)
+
+START_REGISTER(CP_ME_VS_EVENT_ADDR_SWM)
+ GENERATE_FIELD(VS_DONE_SWAP_SWM, int)
+ GENERATE_FIELD(VS_DONE_ADDR_SWM, int)
+END_REGISTER(CP_ME_VS_EVENT_ADDR_SWM)
+
+START_REGISTER(CP_ME_VS_EVENT_DATA_SWM)
+ GENERATE_FIELD(VS_DONE_DATA_SWM, int)
+END_REGISTER(CP_ME_VS_EVENT_DATA_SWM)
+
+START_REGISTER(CP_ME_PS_EVENT_SRC)
+ GENERATE_FIELD(PS_DONE_SWM, int)
+ GENERATE_FIELD(PS_DONE_CNTR, int)
+END_REGISTER(CP_ME_PS_EVENT_SRC)
+
+START_REGISTER(CP_ME_PS_EVENT_ADDR)
+ GENERATE_FIELD(PS_DONE_SWAP, int)
+ GENERATE_FIELD(PS_DONE_ADDR, int)
+END_REGISTER(CP_ME_PS_EVENT_ADDR)
+
+START_REGISTER(CP_ME_PS_EVENT_DATA)
+ GENERATE_FIELD(PS_DONE_DATA, int)
+END_REGISTER(CP_ME_PS_EVENT_DATA)
+
+START_REGISTER(CP_ME_PS_EVENT_ADDR_SWM)
+ GENERATE_FIELD(PS_DONE_SWAP_SWM, int)
+ GENERATE_FIELD(PS_DONE_ADDR_SWM, int)
+END_REGISTER(CP_ME_PS_EVENT_ADDR_SWM)
+
+START_REGISTER(CP_ME_PS_EVENT_DATA_SWM)
+ GENERATE_FIELD(PS_DONE_DATA_SWM, int)
+END_REGISTER(CP_ME_PS_EVENT_DATA_SWM)
+
+START_REGISTER(CP_ME_CF_EVENT_SRC)
+ GENERATE_FIELD(CF_DONE_SRC, int)
+END_REGISTER(CP_ME_CF_EVENT_SRC)
+
+START_REGISTER(CP_ME_CF_EVENT_ADDR)
+ GENERATE_FIELD(CF_DONE_SWAP, int)
+ GENERATE_FIELD(CF_DONE_ADDR, int)
+END_REGISTER(CP_ME_CF_EVENT_ADDR)
+
+START_REGISTER(CP_ME_CF_EVENT_DATA)
+ GENERATE_FIELD(CF_DONE_DATA, int)
+END_REGISTER(CP_ME_CF_EVENT_DATA)
+
+START_REGISTER(CP_ME_NRT_ADDR)
+ GENERATE_FIELD(NRT_WRITE_SWAP, int)
+ GENERATE_FIELD(NRT_WRITE_ADDR, int)
+END_REGISTER(CP_ME_NRT_ADDR)
+
+START_REGISTER(CP_ME_NRT_DATA)
+ GENERATE_FIELD(NRT_WRITE_DATA, int)
+END_REGISTER(CP_ME_NRT_DATA)
+
+START_REGISTER(CP_ME_VS_FETCH_DONE_SRC)
+ GENERATE_FIELD(VS_FETCH_DONE_CNTR, int)
+END_REGISTER(CP_ME_VS_FETCH_DONE_SRC)
+
+START_REGISTER(CP_ME_VS_FETCH_DONE_ADDR)
+ GENERATE_FIELD(VS_FETCH_DONE_SWAP, int)
+ GENERATE_FIELD(VS_FETCH_DONE_ADDR, int)
+END_REGISTER(CP_ME_VS_FETCH_DONE_ADDR)
+
+START_REGISTER(CP_ME_VS_FETCH_DONE_DATA)
+ GENERATE_FIELD(VS_FETCH_DONE_DATA, int)
+END_REGISTER(CP_ME_VS_FETCH_DONE_DATA)
+
+START_REGISTER(CP_INT_CNTL)
+ GENERATE_FIELD(SW_INT_MASK, int)
+ GENERATE_FIELD(T0_PACKET_IN_IB_MASK, int)
+ GENERATE_FIELD(OPCODE_ERROR_MASK, int)
+ GENERATE_FIELD(PROTECTED_MODE_ERROR_MASK, int)
+ GENERATE_FIELD(RESERVED_BIT_ERROR_MASK, int)
+ GENERATE_FIELD(IB_ERROR_MASK, int)
+ GENERATE_FIELD(IB2_INT_MASK, int)
+ GENERATE_FIELD(IB1_INT_MASK, int)
+ GENERATE_FIELD(RB_INT_MASK, int)
+END_REGISTER(CP_INT_CNTL)
+
+START_REGISTER(CP_INT_STATUS)
+ GENERATE_FIELD(SW_INT_STAT, int)
+ GENERATE_FIELD(T0_PACKET_IN_IB_STAT, int)
+ GENERATE_FIELD(OPCODE_ERROR_STAT, int)
+ GENERATE_FIELD(PROTECTED_MODE_ERROR_STAT, int)
+ GENERATE_FIELD(RESERVED_BIT_ERROR_STAT, int)
+ GENERATE_FIELD(IB_ERROR_STAT, int)
+ GENERATE_FIELD(IB2_INT_STAT, int)
+ GENERATE_FIELD(IB1_INT_STAT, int)
+ GENERATE_FIELD(RB_INT_STAT, int)
+END_REGISTER(CP_INT_STATUS)
+
+START_REGISTER(CP_INT_ACK)
+ GENERATE_FIELD(SW_INT_ACK, int)
+ GENERATE_FIELD(T0_PACKET_IN_IB_ACK, int)
+ GENERATE_FIELD(OPCODE_ERROR_ACK, int)
+ GENERATE_FIELD(PROTECTED_MODE_ERROR_ACK, int)
+ GENERATE_FIELD(RESERVED_BIT_ERROR_ACK, int)
+ GENERATE_FIELD(IB_ERROR_ACK, int)
+ GENERATE_FIELD(IB2_INT_ACK, int)
+ GENERATE_FIELD(IB1_INT_ACK, int)
+ GENERATE_FIELD(RB_INT_ACK, int)
+END_REGISTER(CP_INT_ACK)
+
+START_REGISTER(CP_PFP_UCODE_ADDR)
+ GENERATE_FIELD(UCODE_ADDR, hex)
+END_REGISTER(CP_PFP_UCODE_ADDR)
+
+START_REGISTER(CP_PFP_UCODE_DATA)
+ GENERATE_FIELD(UCODE_DATA, hex)
+END_REGISTER(CP_PFP_UCODE_DATA)
+
+START_REGISTER(CP_PERFMON_CNTL)
+ GENERATE_FIELD(PERFMON_STATE, int)
+ GENERATE_FIELD(PERFMON_ENABLE_MODE, int)
+END_REGISTER(CP_PERFMON_CNTL)
+
+START_REGISTER(CP_PERFCOUNTER_SELECT)
+ GENERATE_FIELD(PERFCOUNT_SEL, CP_PERFCOUNT_SEL)
+END_REGISTER(CP_PERFCOUNTER_SELECT)
+
+START_REGISTER(CP_PERFCOUNTER_LO)
+ GENERATE_FIELD(PERFCOUNT_LO, int)
+END_REGISTER(CP_PERFCOUNTER_LO)
+
+START_REGISTER(CP_PERFCOUNTER_HI)
+ GENERATE_FIELD(PERFCOUNT_HI, int)
+END_REGISTER(CP_PERFCOUNTER_HI)
+
+START_REGISTER(CP_BIN_MASK_LO)
+ GENERATE_FIELD(BIN_MASK_LO, int)
+END_REGISTER(CP_BIN_MASK_LO)
+
+START_REGISTER(CP_BIN_MASK_HI)
+ GENERATE_FIELD(BIN_MASK_HI, int)
+END_REGISTER(CP_BIN_MASK_HI)
+
+START_REGISTER(CP_BIN_SELECT_LO)
+ GENERATE_FIELD(BIN_SELECT_LO, int)
+END_REGISTER(CP_BIN_SELECT_LO)
+
+START_REGISTER(CP_BIN_SELECT_HI)
+ GENERATE_FIELD(BIN_SELECT_HI, int)
+END_REGISTER(CP_BIN_SELECT_HI)
+
+START_REGISTER(CP_NV_FLAGS_0)
+ GENERATE_FIELD(DISCARD_0, int)
+ GENERATE_FIELD(END_RCVD_0, int)
+ GENERATE_FIELD(DISCARD_1, int)
+ GENERATE_FIELD(END_RCVD_1, int)
+ GENERATE_FIELD(DISCARD_2, int)
+ GENERATE_FIELD(END_RCVD_2, int)
+ GENERATE_FIELD(DISCARD_3, int)
+ GENERATE_FIELD(END_RCVD_3, int)
+ GENERATE_FIELD(DISCARD_4, int)
+ GENERATE_FIELD(END_RCVD_4, int)
+ GENERATE_FIELD(DISCARD_5, int)
+ GENERATE_FIELD(END_RCVD_5, int)
+ GENERATE_FIELD(DISCARD_6, int)
+ GENERATE_FIELD(END_RCVD_6, int)
+ GENERATE_FIELD(DISCARD_7, int)
+ GENERATE_FIELD(END_RCVD_7, int)
+ GENERATE_FIELD(DISCARD_8, int)
+ GENERATE_FIELD(END_RCVD_8, int)
+ GENERATE_FIELD(DISCARD_9, int)
+ GENERATE_FIELD(END_RCVD_9, int)
+ GENERATE_FIELD(DISCARD_10, int)
+ GENERATE_FIELD(END_RCVD_10, int)
+ GENERATE_FIELD(DISCARD_11, int)
+ GENERATE_FIELD(END_RCVD_11, int)
+ GENERATE_FIELD(DISCARD_12, int)
+ GENERATE_FIELD(END_RCVD_12, int)
+ GENERATE_FIELD(DISCARD_13, int)
+ GENERATE_FIELD(END_RCVD_13, int)
+ GENERATE_FIELD(DISCARD_14, int)
+ GENERATE_FIELD(END_RCVD_14, int)
+ GENERATE_FIELD(DISCARD_15, int)
+ GENERATE_FIELD(END_RCVD_15, int)
+END_REGISTER(CP_NV_FLAGS_0)
+
+START_REGISTER(CP_NV_FLAGS_1)
+ GENERATE_FIELD(DISCARD_16, int)
+ GENERATE_FIELD(END_RCVD_16, int)
+ GENERATE_FIELD(DISCARD_17, int)
+ GENERATE_FIELD(END_RCVD_17, int)
+ GENERATE_FIELD(DISCARD_18, int)
+ GENERATE_FIELD(END_RCVD_18, int)
+ GENERATE_FIELD(DISCARD_19, int)
+ GENERATE_FIELD(END_RCVD_19, int)
+ GENERATE_FIELD(DISCARD_20, int)
+ GENERATE_FIELD(END_RCVD_20, int)
+ GENERATE_FIELD(DISCARD_21, int)
+ GENERATE_FIELD(END_RCVD_21, int)
+ GENERATE_FIELD(DISCARD_22, int)
+ GENERATE_FIELD(END_RCVD_22, int)
+ GENERATE_FIELD(DISCARD_23, int)
+ GENERATE_FIELD(END_RCVD_23, int)
+ GENERATE_FIELD(DISCARD_24, int)
+ GENERATE_FIELD(END_RCVD_24, int)
+ GENERATE_FIELD(DISCARD_25, int)
+ GENERATE_FIELD(END_RCVD_25, int)
+ GENERATE_FIELD(DISCARD_26, int)
+ GENERATE_FIELD(END_RCVD_26, int)
+ GENERATE_FIELD(DISCARD_27, int)
+ GENERATE_FIELD(END_RCVD_27, int)
+ GENERATE_FIELD(DISCARD_28, int)
+ GENERATE_FIELD(END_RCVD_28, int)
+ GENERATE_FIELD(DISCARD_29, int)
+ GENERATE_FIELD(END_RCVD_29, int)
+ GENERATE_FIELD(DISCARD_30, int)
+ GENERATE_FIELD(END_RCVD_30, int)
+ GENERATE_FIELD(DISCARD_31, int)
+ GENERATE_FIELD(END_RCVD_31, int)
+END_REGISTER(CP_NV_FLAGS_1)
+
+START_REGISTER(CP_NV_FLAGS_2)
+ GENERATE_FIELD(DISCARD_32, int)
+ GENERATE_FIELD(END_RCVD_32, int)
+ GENERATE_FIELD(DISCARD_33, int)
+ GENERATE_FIELD(END_RCVD_33, int)
+ GENERATE_FIELD(DISCARD_34, int)
+ GENERATE_FIELD(END_RCVD_34, int)
+ GENERATE_FIELD(DISCARD_35, int)
+ GENERATE_FIELD(END_RCVD_35, int)
+ GENERATE_FIELD(DISCARD_36, int)
+ GENERATE_FIELD(END_RCVD_36, int)
+ GENERATE_FIELD(DISCARD_37, int)
+ GENERATE_FIELD(END_RCVD_37, int)
+ GENERATE_FIELD(DISCARD_38, int)
+ GENERATE_FIELD(END_RCVD_38, int)
+ GENERATE_FIELD(DISCARD_39, int)
+ GENERATE_FIELD(END_RCVD_39, int)
+ GENERATE_FIELD(DISCARD_40, int)
+ GENERATE_FIELD(END_RCVD_40, int)
+ GENERATE_FIELD(DISCARD_41, int)
+ GENERATE_FIELD(END_RCVD_41, int)
+ GENERATE_FIELD(DISCARD_42, int)
+ GENERATE_FIELD(END_RCVD_42, int)
+ GENERATE_FIELD(DISCARD_43, int)
+ GENERATE_FIELD(END_RCVD_43, int)
+ GENERATE_FIELD(DISCARD_44, int)
+ GENERATE_FIELD(END_RCVD_44, int)
+ GENERATE_FIELD(DISCARD_45, int)
+ GENERATE_FIELD(END_RCVD_45, int)
+ GENERATE_FIELD(DISCARD_46, int)
+ GENERATE_FIELD(END_RCVD_46, int)
+ GENERATE_FIELD(DISCARD_47, int)
+ GENERATE_FIELD(END_RCVD_47, int)
+END_REGISTER(CP_NV_FLAGS_2)
+
+START_REGISTER(CP_NV_FLAGS_3)
+ GENERATE_FIELD(DISCARD_48, int)
+ GENERATE_FIELD(END_RCVD_48, int)
+ GENERATE_FIELD(DISCARD_49, int)
+ GENERATE_FIELD(END_RCVD_49, int)
+ GENERATE_FIELD(DISCARD_50, int)
+ GENERATE_FIELD(END_RCVD_50, int)
+ GENERATE_FIELD(DISCARD_51, int)
+ GENERATE_FIELD(END_RCVD_51, int)
+ GENERATE_FIELD(DISCARD_52, int)
+ GENERATE_FIELD(END_RCVD_52, int)
+ GENERATE_FIELD(DISCARD_53, int)
+ GENERATE_FIELD(END_RCVD_53, int)
+ GENERATE_FIELD(DISCARD_54, int)
+ GENERATE_FIELD(END_RCVD_54, int)
+ GENERATE_FIELD(DISCARD_55, int)
+ GENERATE_FIELD(END_RCVD_55, int)
+ GENERATE_FIELD(DISCARD_56, int)
+ GENERATE_FIELD(END_RCVD_56, int)
+ GENERATE_FIELD(DISCARD_57, int)
+ GENERATE_FIELD(END_RCVD_57, int)
+ GENERATE_FIELD(DISCARD_58, int)
+ GENERATE_FIELD(END_RCVD_58, int)
+ GENERATE_FIELD(DISCARD_59, int)
+ GENERATE_FIELD(END_RCVD_59, int)
+ GENERATE_FIELD(DISCARD_60, int)
+ GENERATE_FIELD(END_RCVD_60, int)
+ GENERATE_FIELD(DISCARD_61, int)
+ GENERATE_FIELD(END_RCVD_61, int)
+ GENERATE_FIELD(DISCARD_62, int)
+ GENERATE_FIELD(END_RCVD_62, int)
+ GENERATE_FIELD(DISCARD_63, int)
+ GENERATE_FIELD(END_RCVD_63, int)
+END_REGISTER(CP_NV_FLAGS_3)
+
+START_REGISTER(CP_STATE_DEBUG_INDEX)
+ GENERATE_FIELD(STATE_DEBUG_INDEX, int)
+END_REGISTER(CP_STATE_DEBUG_INDEX)
+
+START_REGISTER(CP_STATE_DEBUG_DATA)
+ GENERATE_FIELD(STATE_DEBUG_DATA, int)
+END_REGISTER(CP_STATE_DEBUG_DATA)
+
+START_REGISTER(CP_PROG_COUNTER)
+ GENERATE_FIELD(COUNTER, int)
+END_REGISTER(CP_PROG_COUNTER)
+
+START_REGISTER(CP_STAT)
+ GENERATE_FIELD(MIU_WR_BUSY, int)
+ GENERATE_FIELD(MIU_RD_REQ_BUSY, int)
+ GENERATE_FIELD(MIU_RD_RETURN_BUSY, int)
+ GENERATE_FIELD(RBIU_BUSY, int)
+ GENERATE_FIELD(RCIU_BUSY, int)
+ GENERATE_FIELD(CSF_RING_BUSY, int)
+ GENERATE_FIELD(CSF_INDIRECTS_BUSY, int)
+ GENERATE_FIELD(CSF_INDIRECT2_BUSY, int)
+ GENERATE_FIELD(CSF_ST_BUSY, int)
+ GENERATE_FIELD(CSF_BUSY, int)
+ GENERATE_FIELD(RING_QUEUE_BUSY, int)
+ GENERATE_FIELD(INDIRECTS_QUEUE_BUSY, int)
+ GENERATE_FIELD(INDIRECT2_QUEUE_BUSY, int)
+ GENERATE_FIELD(ST_QUEUE_BUSY, int)
+ GENERATE_FIELD(PFP_BUSY, int)
+ GENERATE_FIELD(MEQ_RING_BUSY, int)
+ GENERATE_FIELD(MEQ_INDIRECTS_BUSY, int)
+ GENERATE_FIELD(MEQ_INDIRECT2_BUSY, int)
+ GENERATE_FIELD(MIU_WC_STALL, int)
+ GENERATE_FIELD(CP_NRT_BUSY, int)
+ GENERATE_FIELD(_3D_BUSY, int)
+ GENERATE_FIELD(ME_BUSY, int)
+ GENERATE_FIELD(ME_WC_BUSY, int)
+ GENERATE_FIELD(MIU_WC_TRACK_FIFO_EMPTY, int)
+ GENERATE_FIELD(CP_BUSY, int)
+END_REGISTER(CP_STAT)
+
+START_REGISTER(BIOS_0_SCRATCH)
+ GENERATE_FIELD(BIOS_SCRATCH, hex)
+END_REGISTER(BIOS_0_SCRATCH)
+
+START_REGISTER(BIOS_1_SCRATCH)
+ GENERATE_FIELD(BIOS_SCRATCH, hex)
+END_REGISTER(BIOS_1_SCRATCH)
+
+START_REGISTER(BIOS_2_SCRATCH)
+ GENERATE_FIELD(BIOS_SCRATCH, hex)
+END_REGISTER(BIOS_2_SCRATCH)
+
+START_REGISTER(BIOS_3_SCRATCH)
+ GENERATE_FIELD(BIOS_SCRATCH, hex)
+END_REGISTER(BIOS_3_SCRATCH)
+
+START_REGISTER(BIOS_4_SCRATCH)
+ GENERATE_FIELD(BIOS_SCRATCH, hex)
+END_REGISTER(BIOS_4_SCRATCH)
+
+START_REGISTER(BIOS_5_SCRATCH)
+ GENERATE_FIELD(BIOS_SCRATCH, hex)
+END_REGISTER(BIOS_5_SCRATCH)
+
+START_REGISTER(BIOS_6_SCRATCH)
+ GENERATE_FIELD(BIOS_SCRATCH, hex)
+END_REGISTER(BIOS_6_SCRATCH)
+
+START_REGISTER(BIOS_7_SCRATCH)
+ GENERATE_FIELD(BIOS_SCRATCH, hex)
+END_REGISTER(BIOS_7_SCRATCH)
+
+START_REGISTER(BIOS_8_SCRATCH)
+ GENERATE_FIELD(BIOS_SCRATCH, hex)
+END_REGISTER(BIOS_8_SCRATCH)
+
+START_REGISTER(BIOS_9_SCRATCH)
+ GENERATE_FIELD(BIOS_SCRATCH, hex)
+END_REGISTER(BIOS_9_SCRATCH)
+
+START_REGISTER(BIOS_10_SCRATCH)
+ GENERATE_FIELD(BIOS_SCRATCH, hex)
+END_REGISTER(BIOS_10_SCRATCH)
+
+START_REGISTER(BIOS_11_SCRATCH)
+ GENERATE_FIELD(BIOS_SCRATCH, hex)
+END_REGISTER(BIOS_11_SCRATCH)
+
+START_REGISTER(BIOS_12_SCRATCH)
+ GENERATE_FIELD(BIOS_SCRATCH, hex)
+END_REGISTER(BIOS_12_SCRATCH)
+
+START_REGISTER(BIOS_13_SCRATCH)
+ GENERATE_FIELD(BIOS_SCRATCH, hex)
+END_REGISTER(BIOS_13_SCRATCH)
+
+START_REGISTER(BIOS_14_SCRATCH)
+ GENERATE_FIELD(BIOS_SCRATCH, hex)
+END_REGISTER(BIOS_14_SCRATCH)
+
+START_REGISTER(BIOS_15_SCRATCH)
+ GENERATE_FIELD(BIOS_SCRATCH, hex)
+END_REGISTER(BIOS_15_SCRATCH)
+
+START_REGISTER(COHER_SIZE_PM4)
+ GENERATE_FIELD(SIZE, int)
+END_REGISTER(COHER_SIZE_PM4)
+
+START_REGISTER(COHER_BASE_PM4)
+ GENERATE_FIELD(BASE, int)
+END_REGISTER(COHER_BASE_PM4)
+
+START_REGISTER(COHER_STATUS_PM4)
+ GENERATE_FIELD(MATCHING_CONTEXTS, int)
+ GENERATE_FIELD(RB_COPY_DEST_BASE_ENA, int)
+ GENERATE_FIELD(DEST_BASE_0_ENA, int)
+ GENERATE_FIELD(DEST_BASE_1_ENA, int)
+ GENERATE_FIELD(DEST_BASE_2_ENA, int)
+ GENERATE_FIELD(DEST_BASE_3_ENA, int)
+ GENERATE_FIELD(DEST_BASE_4_ENA, int)
+ GENERATE_FIELD(DEST_BASE_5_ENA, int)
+ GENERATE_FIELD(DEST_BASE_6_ENA, int)
+ GENERATE_FIELD(DEST_BASE_7_ENA, int)
+ GENERATE_FIELD(RB_COLOR_INFO_ENA, int)
+ GENERATE_FIELD(TC_ACTION_ENA, int)
+ GENERATE_FIELD(STATUS, int)
+END_REGISTER(COHER_STATUS_PM4)
+
+START_REGISTER(COHER_SIZE_HOST)
+ GENERATE_FIELD(SIZE, int)
+END_REGISTER(COHER_SIZE_HOST)
+
+START_REGISTER(COHER_BASE_HOST)
+ GENERATE_FIELD(BASE, hex)
+END_REGISTER(COHER_BASE_HOST)
+
+START_REGISTER(COHER_STATUS_HOST)
+ GENERATE_FIELD(MATCHING_CONTEXTS, int)
+ GENERATE_FIELD(RB_COPY_DEST_BASE_ENA, int)
+ GENERATE_FIELD(DEST_BASE_0_ENA, int)
+ GENERATE_FIELD(DEST_BASE_1_ENA, int)
+ GENERATE_FIELD(DEST_BASE_2_ENA, int)
+ GENERATE_FIELD(DEST_BASE_3_ENA, int)
+ GENERATE_FIELD(DEST_BASE_4_ENA, int)
+ GENERATE_FIELD(DEST_BASE_5_ENA, int)
+ GENERATE_FIELD(DEST_BASE_6_ENA, int)
+ GENERATE_FIELD(DEST_BASE_7_ENA, int)
+ GENERATE_FIELD(RB_COLOR_INFO_ENA, int)
+ GENERATE_FIELD(TC_ACTION_ENA, int)
+ GENERATE_FIELD(STATUS, int)
+END_REGISTER(COHER_STATUS_HOST)
+
+START_REGISTER(COHER_DEST_BASE_0)
+ GENERATE_FIELD(DEST_BASE_0, hex)
+END_REGISTER(COHER_DEST_BASE_0)
+
+START_REGISTER(COHER_DEST_BASE_1)
+ GENERATE_FIELD(DEST_BASE_1, hex)
+END_REGISTER(COHER_DEST_BASE_1)
+
+START_REGISTER(COHER_DEST_BASE_2)
+ GENERATE_FIELD(DEST_BASE_2, hex)
+END_REGISTER(COHER_DEST_BASE_2)
+
+START_REGISTER(COHER_DEST_BASE_3)
+ GENERATE_FIELD(DEST_BASE_3, hex)
+END_REGISTER(COHER_DEST_BASE_3)
+
+START_REGISTER(COHER_DEST_BASE_4)
+ GENERATE_FIELD(DEST_BASE_4, hex)
+END_REGISTER(COHER_DEST_BASE_4)
+
+START_REGISTER(COHER_DEST_BASE_5)
+ GENERATE_FIELD(DEST_BASE_5, hex)
+END_REGISTER(COHER_DEST_BASE_5)
+
+START_REGISTER(COHER_DEST_BASE_6)
+ GENERATE_FIELD(DEST_BASE_6, hex)
+END_REGISTER(COHER_DEST_BASE_6)
+
+START_REGISTER(COHER_DEST_BASE_7)
+ GENERATE_FIELD(DEST_BASE_7, hex)
+END_REGISTER(COHER_DEST_BASE_7)
+
+START_REGISTER(RB_SURFACE_INFO)
+ GENERATE_FIELD(SURFACE_PITCH, uint)
+ GENERATE_FIELD(MSAA_SAMPLES, MSAASamples)
+END_REGISTER(RB_SURFACE_INFO)
+
+START_REGISTER(RB_COLOR_INFO)
+ GENERATE_FIELD(COLOR_FORMAT, ColorformatX)
+ GENERATE_FIELD(COLOR_ROUND_MODE, uint)
+ GENERATE_FIELD(COLOR_LINEAR, bool)
+ GENERATE_FIELD(COLOR_ENDIAN, uint)
+ GENERATE_FIELD(COLOR_SWAP, uint)
+ GENERATE_FIELD(COLOR_BASE, uint)
+END_REGISTER(RB_COLOR_INFO)
+
+START_REGISTER(RB_DEPTH_INFO)
+ GENERATE_FIELD(DEPTH_FORMAT, DepthformatX)
+ GENERATE_FIELD(DEPTH_BASE, uint)
+END_REGISTER(RB_DEPTH_INFO)
+
+START_REGISTER(RB_STENCILREFMASK)
+ GENERATE_FIELD(STENCILREF, hex)
+ GENERATE_FIELD(STENCILMASK, hex)
+ GENERATE_FIELD(STENCILWRITEMASK, hex)
+ GENERATE_FIELD(RESERVED0, bool)
+ GENERATE_FIELD(RESERVED1, bool)
+END_REGISTER(RB_STENCILREFMASK)
+
+START_REGISTER(RB_ALPHA_REF)
+ GENERATE_FIELD(ALPHA_REF, float)
+END_REGISTER(RB_ALPHA_REF)
+
+START_REGISTER(RB_COLOR_MASK)
+ GENERATE_FIELD(WRITE_RED, bool)
+ GENERATE_FIELD(WRITE_GREEN, bool)
+ GENERATE_FIELD(WRITE_BLUE, bool)
+ GENERATE_FIELD(WRITE_ALPHA, bool)
+ GENERATE_FIELD(RESERVED2, bool)
+ GENERATE_FIELD(RESERVED3, bool)
+END_REGISTER(RB_COLOR_MASK)
+
+START_REGISTER(RB_BLEND_RED)
+ GENERATE_FIELD(BLEND_RED, uint)
+END_REGISTER(RB_BLEND_RED)
+
+START_REGISTER(RB_BLEND_GREEN)
+ GENERATE_FIELD(BLEND_GREEN, uint)
+END_REGISTER(RB_BLEND_GREEN)
+
+START_REGISTER(RB_BLEND_BLUE)
+ GENERATE_FIELD(BLEND_BLUE, uint)
+END_REGISTER(RB_BLEND_BLUE)
+
+START_REGISTER(RB_BLEND_ALPHA)
+ GENERATE_FIELD(BLEND_ALPHA, uint)
+END_REGISTER(RB_BLEND_ALPHA)
+
+START_REGISTER(RB_FOG_COLOR)
+ GENERATE_FIELD(FOG_RED, uint)
+ GENERATE_FIELD(FOG_GREEN, uint)
+ GENERATE_FIELD(FOG_BLUE, uint)
+END_REGISTER(RB_FOG_COLOR)
+
+START_REGISTER(RB_STENCILREFMASK_BF)
+ GENERATE_FIELD(STENCILREF_BF, hex)
+ GENERATE_FIELD(STENCILMASK_BF, hex)
+ GENERATE_FIELD(STENCILWRITEMASK_BF, hex)
+ GENERATE_FIELD(RESERVED4, bool)
+ GENERATE_FIELD(RESERVED5, bool)
+END_REGISTER(RB_STENCILREFMASK_BF)
+
+START_REGISTER(RB_DEPTHCONTROL)
+ GENERATE_FIELD(STENCIL_ENABLE, bool)
+ GENERATE_FIELD(Z_ENABLE, bool)
+ GENERATE_FIELD(Z_WRITE_ENABLE, bool)
+ GENERATE_FIELD(EARLY_Z_ENABLE, bool)
+ GENERATE_FIELD(ZFUNC, CompareFrag)
+ GENERATE_FIELD(BACKFACE_ENABLE, bool)
+ GENERATE_FIELD(STENCILFUNC, CompareRef)
+ GENERATE_FIELD(STENCILFAIL, StencilOp)
+ GENERATE_FIELD(STENCILZPASS, StencilOp)
+ GENERATE_FIELD(STENCILZFAIL, StencilOp)
+ GENERATE_FIELD(STENCILFUNC_BF, CompareRef)
+ GENERATE_FIELD(STENCILFAIL_BF, StencilOp)
+ GENERATE_FIELD(STENCILZPASS_BF, StencilOp)
+ GENERATE_FIELD(STENCILZFAIL_BF, StencilOp)
+END_REGISTER(RB_DEPTHCONTROL)
+
+START_REGISTER(RB_BLENDCONTROL)
+ GENERATE_FIELD(COLOR_SRCBLEND, BlendOpX)
+ GENERATE_FIELD(COLOR_COMB_FCN, CombFuncX)
+ GENERATE_FIELD(COLOR_DESTBLEND, BlendOpX)
+ GENERATE_FIELD(ALPHA_SRCBLEND, BlendOpX)
+ GENERATE_FIELD(ALPHA_COMB_FCN, CombFuncX)
+ GENERATE_FIELD(ALPHA_DESTBLEND, BlendOpX)
+ GENERATE_FIELD(BLEND_FORCE_ENABLE, bool)
+ GENERATE_FIELD(BLEND_FORCE, bool)
+END_REGISTER(RB_BLENDCONTROL)
+
+START_REGISTER(RB_COLORCONTROL)
+ GENERATE_FIELD(ALPHA_FUNC, CompareRef)
+ GENERATE_FIELD(ALPHA_TEST_ENABLE, bool)
+ GENERATE_FIELD(ALPHA_TO_MASK_ENABLE, bool)
+ GENERATE_FIELD(BLEND_DISABLE, bool)
+ GENERATE_FIELD(FOG_ENABLE, bool)
+ GENERATE_FIELD(VS_EXPORTS_FOG, bool)
+ GENERATE_FIELD(ROP_CODE, uint)
+ GENERATE_FIELD(DITHER_MODE, DitherModeX)
+ GENERATE_FIELD(DITHER_TYPE, DitherTypeX)
+ GENERATE_FIELD(PIXEL_FOG, bool)
+ GENERATE_FIELD(ALPHA_TO_MASK_OFFSET0, hex)
+ GENERATE_FIELD(ALPHA_TO_MASK_OFFSET1, hex)
+ GENERATE_FIELD(ALPHA_TO_MASK_OFFSET2, hex)
+ GENERATE_FIELD(ALPHA_TO_MASK_OFFSET3, hex)
+END_REGISTER(RB_COLORCONTROL)
+
+START_REGISTER(RB_MODECONTROL)
+ GENERATE_FIELD(EDRAM_MODE, EdramMode)
+END_REGISTER(RB_MODECONTROL)
+
+START_REGISTER(RB_COLOR_DEST_MASK)
+ GENERATE_FIELD(COLOR_DEST_MASK, uint)
+END_REGISTER(RB_COLOR_DEST_MASK)
+
+START_REGISTER(RB_COPY_CONTROL)
+ GENERATE_FIELD(COPY_SAMPLE_SELECT, CopySampleSelect)
+ GENERATE_FIELD(DEPTH_CLEAR_ENABLE, bool)
+ GENERATE_FIELD(CLEAR_MASK, uint)
+END_REGISTER(RB_COPY_CONTROL)
+
+START_REGISTER(RB_COPY_DEST_BASE)
+ GENERATE_FIELD(COPY_DEST_BASE, uint)
+END_REGISTER(RB_COPY_DEST_BASE)
+
+START_REGISTER(RB_COPY_DEST_PITCH)
+ GENERATE_FIELD(COPY_DEST_PITCH, uint)
+END_REGISTER(RB_COPY_DEST_PITCH)
+
+START_REGISTER(RB_COPY_DEST_INFO)
+ GENERATE_FIELD(COPY_DEST_ENDIAN, SurfaceEndian)
+ GENERATE_FIELD(COPY_DEST_LINEAR, uint)
+ GENERATE_FIELD(COPY_DEST_FORMAT, ColorformatX)
+ GENERATE_FIELD(COPY_DEST_SWAP, uint)
+ GENERATE_FIELD(COPY_DEST_DITHER_MODE, DitherModeX)
+ GENERATE_FIELD(COPY_DEST_DITHER_TYPE, DitherTypeX)
+ GENERATE_FIELD(COPY_MASK_WRITE_RED, hex)
+ GENERATE_FIELD(COPY_MASK_WRITE_GREEN, hex)
+ GENERATE_FIELD(COPY_MASK_WRITE_BLUE, hex)
+ GENERATE_FIELD(COPY_MASK_WRITE_ALPHA, hex)
+END_REGISTER(RB_COPY_DEST_INFO)
+
+START_REGISTER(RB_COPY_DEST_PIXEL_OFFSET)
+ GENERATE_FIELD(OFFSET_X, uint)
+ GENERATE_FIELD(OFFSET_Y, uint)
+END_REGISTER(RB_COPY_DEST_PIXEL_OFFSET)
+
+START_REGISTER(RB_DEPTH_CLEAR)
+ GENERATE_FIELD(DEPTH_CLEAR, uint)
+END_REGISTER(RB_DEPTH_CLEAR)
+
+START_REGISTER(RB_SAMPLE_COUNT_CTL)
+ GENERATE_FIELD(RESET_SAMPLE_COUNT, bool)
+ GENERATE_FIELD(COPY_SAMPLE_COUNT, bool)
+END_REGISTER(RB_SAMPLE_COUNT_CTL)
+
+START_REGISTER(RB_SAMPLE_COUNT_ADDR)
+ GENERATE_FIELD(SAMPLE_COUNT_ADDR, uint)
+END_REGISTER(RB_SAMPLE_COUNT_ADDR)
+
+START_REGISTER(RB_BC_CONTROL)
+ GENERATE_FIELD(ACCUM_LINEAR_MODE_ENABLE, bool)
+ GENERATE_FIELD(ACCUM_TIMEOUT_SELECT, uint)
+ GENERATE_FIELD(DISABLE_EDRAM_CAM, bool)
+ GENERATE_FIELD(DISABLE_EZ_FAST_CONTEXT_SWITCH, bool)
+ GENERATE_FIELD(DISABLE_EZ_NULL_ZCMD_DROP, bool)
+ GENERATE_FIELD(DISABLE_LZ_NULL_ZCMD_DROP, bool)
+ GENERATE_FIELD(ENABLE_AZ_THROTTLE, bool)
+ GENERATE_FIELD(AZ_THROTTLE_COUNT, uint)
+ GENERATE_FIELD(ENABLE_CRC_UPDATE, bool)
+ GENERATE_FIELD(CRC_MODE, bool)
+ GENERATE_FIELD(DISABLE_SAMPLE_COUNTERS, bool)
+ GENERATE_FIELD(DISABLE_ACCUM, bool)
+ GENERATE_FIELD(ACCUM_ALLOC_MASK, uint)
+ GENERATE_FIELD(LINEAR_PERFORMANCE_ENABLE, bool)
+ GENERATE_FIELD(ACCUM_DATA_FIFO_LIMIT, bool)
+ GENERATE_FIELD(MEM_EXPORT_TIMEOUT_SELECT, int)
+ GENERATE_FIELD(MEM_EXPORT_LINEAR_MODE_ENABLE, bool)
+ GENERATE_FIELD(CRC_SYSTEM, bool)
+ GENERATE_FIELD(RESERVED6, bool)
+END_REGISTER(RB_BC_CONTROL)
+
+START_REGISTER(RB_EDRAM_INFO)
+ GENERATE_FIELD(EDRAM_SIZE, EdramSizeX)
+ GENERATE_FIELD(EDRAM_MAPPING_MODE, uint)
+ GENERATE_FIELD(EDRAM_RANGE, hex)
+END_REGISTER(RB_EDRAM_INFO)
+
+START_REGISTER(RB_CRC_RD_PORT)
+ GENERATE_FIELD(CRC_DATA, hex)
+END_REGISTER(RB_CRC_RD_PORT)
+
+START_REGISTER(RB_CRC_CONTROL)
+ GENERATE_FIELD(CRC_RD_ADVANCE, bool)
+END_REGISTER(RB_CRC_CONTROL)
+
+START_REGISTER(RB_CRC_MASK)
+ GENERATE_FIELD(CRC_MASK, hex)
+END_REGISTER(RB_CRC_MASK)
+
+START_REGISTER(RB_PERFCOUNTER0_SELECT)
+ GENERATE_FIELD(PERF_SEL, RB_PERFCNT_SELECT)
+END_REGISTER(RB_PERFCOUNTER0_SELECT)
+
+START_REGISTER(RB_PERFCOUNTER0_LOW)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(RB_PERFCOUNTER0_LOW)
+
+START_REGISTER(RB_PERFCOUNTER0_HI)
+ GENERATE_FIELD(PERF_COUNT, int)
+END_REGISTER(RB_PERFCOUNTER0_HI)
+
+START_REGISTER(RB_TOTAL_SAMPLES)
+ GENERATE_FIELD(TOTAL_SAMPLES, int)
+END_REGISTER(RB_TOTAL_SAMPLES)
+
+START_REGISTER(RB_ZPASS_SAMPLES)
+ GENERATE_FIELD(ZPASS_SAMPLES, int)
+END_REGISTER(RB_ZPASS_SAMPLES)
+
+START_REGISTER(RB_ZFAIL_SAMPLES)
+ GENERATE_FIELD(ZFAIL_SAMPLES, int)
+END_REGISTER(RB_ZFAIL_SAMPLES)
+
+START_REGISTER(RB_SFAIL_SAMPLES)
+ GENERATE_FIELD(SFAIL_SAMPLES, int)
+END_REGISTER(RB_SFAIL_SAMPLES)
+
+START_REGISTER(RB_DEBUG_0)
+ GENERATE_FIELD(RDREQ_CTL_Z1_PRE_FULL, bool)
+ GENERATE_FIELD(RDREQ_CTL_Z0_PRE_FULL, bool)
+ GENERATE_FIELD(RDREQ_CTL_C1_PRE_FULL, bool)
+ GENERATE_FIELD(RDREQ_CTL_C0_PRE_FULL, bool)
+ GENERATE_FIELD(RDREQ_E1_ORDERING_FULL, bool)
+ GENERATE_FIELD(RDREQ_E0_ORDERING_FULL, bool)
+ GENERATE_FIELD(RDREQ_Z1_FULL, bool)
+ GENERATE_FIELD(RDREQ_Z0_FULL, bool)
+ GENERATE_FIELD(RDREQ_C1_FULL, bool)
+ GENERATE_FIELD(RDREQ_C0_FULL, bool)
+ GENERATE_FIELD(WRREQ_E1_MACRO_HI_FULL, bool)
+ GENERATE_FIELD(WRREQ_E1_MACRO_LO_FULL, bool)
+ GENERATE_FIELD(WRREQ_E0_MACRO_HI_FULL, bool)
+ GENERATE_FIELD(WRREQ_E0_MACRO_LO_FULL, bool)
+ GENERATE_FIELD(WRREQ_C_WE_HI_FULL, bool)
+ GENERATE_FIELD(WRREQ_C_WE_LO_FULL, bool)
+ GENERATE_FIELD(WRREQ_Z1_FULL, bool)
+ GENERATE_FIELD(WRREQ_Z0_FULL, bool)
+ GENERATE_FIELD(WRREQ_C1_FULL, bool)
+ GENERATE_FIELD(WRREQ_C0_FULL, bool)
+ GENERATE_FIELD(CMDFIFO_Z1_HOLD_FULL, bool)
+ GENERATE_FIELD(CMDFIFO_Z0_HOLD_FULL, bool)
+ GENERATE_FIELD(CMDFIFO_C1_HOLD_FULL, bool)
+ GENERATE_FIELD(CMDFIFO_C0_HOLD_FULL, bool)
+ GENERATE_FIELD(CMDFIFO_Z_ORDERING_FULL, bool)
+ GENERATE_FIELD(CMDFIFO_C_ORDERING_FULL, bool)
+ GENERATE_FIELD(C_SX_LAT_FULL, bool)
+ GENERATE_FIELD(C_SX_CMD_FULL, bool)
+ GENERATE_FIELD(C_EZ_TILE_FULL, bool)
+ GENERATE_FIELD(C_REQ_FULL, bool)
+ GENERATE_FIELD(C_MASK_FULL, bool)
+ GENERATE_FIELD(EZ_INFSAMP_FULL, bool)
+END_REGISTER(RB_DEBUG_0)
+
+START_REGISTER(RB_DEBUG_1)
+ GENERATE_FIELD(RDREQ_Z1_CMD_EMPTY, bool)
+ GENERATE_FIELD(RDREQ_Z0_CMD_EMPTY, bool)
+ GENERATE_FIELD(RDREQ_C1_CMD_EMPTY, bool)
+ GENERATE_FIELD(RDREQ_C0_CMD_EMPTY, bool)
+ GENERATE_FIELD(RDREQ_E1_ORDERING_EMPTY, bool)
+ GENERATE_FIELD(RDREQ_E0_ORDERING_EMPTY, bool)
+ GENERATE_FIELD(RDREQ_Z1_EMPTY, bool)
+ GENERATE_FIELD(RDREQ_Z0_EMPTY, bool)
+ GENERATE_FIELD(RDREQ_C1_EMPTY, bool)
+ GENERATE_FIELD(RDREQ_C0_EMPTY, bool)
+ GENERATE_FIELD(WRREQ_E1_MACRO_HI_EMPTY, bool)
+ GENERATE_FIELD(WRREQ_E1_MACRO_LO_EMPTY, bool)
+ GENERATE_FIELD(WRREQ_E0_MACRO_HI_EMPTY, bool)
+ GENERATE_FIELD(WRREQ_E0_MACRO_LO_EMPTY, bool)
+ GENERATE_FIELD(WRREQ_C_WE_HI_EMPTY, bool)
+ GENERATE_FIELD(WRREQ_C_WE_LO_EMPTY, bool)
+ GENERATE_FIELD(WRREQ_Z1_EMPTY, bool)
+ GENERATE_FIELD(WRREQ_Z0_EMPTY, bool)
+ GENERATE_FIELD(WRREQ_C1_PRE_EMPTY, bool)
+ GENERATE_FIELD(WRREQ_C0_PRE_EMPTY, bool)
+ GENERATE_FIELD(CMDFIFO_Z1_HOLD_EMPTY, bool)
+ GENERATE_FIELD(CMDFIFO_Z0_HOLD_EMPTY, bool)
+ GENERATE_FIELD(CMDFIFO_C1_HOLD_EMPTY, bool)
+ GENERATE_FIELD(CMDFIFO_C0_HOLD_EMPTY, bool)
+ GENERATE_FIELD(CMDFIFO_Z_ORDERING_EMPTY, bool)
+ GENERATE_FIELD(CMDFIFO_C_ORDERING_EMPTY, bool)
+ GENERATE_FIELD(C_SX_LAT_EMPTY, bool)
+ GENERATE_FIELD(C_SX_CMD_EMPTY, bool)
+ GENERATE_FIELD(C_EZ_TILE_EMPTY, bool)
+ GENERATE_FIELD(C_REQ_EMPTY, bool)
+ GENERATE_FIELD(C_MASK_EMPTY, bool)
+ GENERATE_FIELD(EZ_INFSAMP_EMPTY, bool)
+END_REGISTER(RB_DEBUG_1)
+
+START_REGISTER(RB_DEBUG_2)
+ GENERATE_FIELD(TILE_FIFO_COUNT, bool)
+ GENERATE_FIELD(SX_LAT_FIFO_COUNT, bool)
+ GENERATE_FIELD(MEM_EXPORT_FLAG, bool)
+ GENERATE_FIELD(SYSMEM_BLEND_FLAG, bool)
+ GENERATE_FIELD(CURRENT_TILE_EVENT, bool)
+ GENERATE_FIELD(EZ_INFTILE_FULL, bool)
+ GENERATE_FIELD(EZ_MASK_LOWER_FULL, bool)
+ GENERATE_FIELD(EZ_MASK_UPPER_FULL, bool)
+ GENERATE_FIELD(Z0_MASK_FULL, bool)
+ GENERATE_FIELD(Z1_MASK_FULL, bool)
+ GENERATE_FIELD(Z0_REQ_FULL, bool)
+ GENERATE_FIELD(Z1_REQ_FULL, bool)
+ GENERATE_FIELD(Z_SAMP_FULL, bool)
+ GENERATE_FIELD(Z_TILE_FULL, bool)
+ GENERATE_FIELD(EZ_INFTILE_EMPTY, bool)
+ GENERATE_FIELD(EZ_MASK_LOWER_EMPTY, bool)
+ GENERATE_FIELD(EZ_MASK_UPPER_EMPTY, bool)
+ GENERATE_FIELD(Z0_MASK_EMPTY, bool)
+ GENERATE_FIELD(Z1_MASK_EMPTY, bool)
+ GENERATE_FIELD(Z0_REQ_EMPTY, bool)
+ GENERATE_FIELD(Z1_REQ_EMPTY, bool)
+ GENERATE_FIELD(Z_SAMP_EMPTY, bool)
+ GENERATE_FIELD(Z_TILE_EMPTY, bool)
+END_REGISTER(RB_DEBUG_2)
+
+START_REGISTER(RB_DEBUG_3)
+ GENERATE_FIELD(ACCUM_VALID, bool)
+ GENERATE_FIELD(ACCUM_FLUSHING, bool)
+ GENERATE_FIELD(ACCUM_WRITE_CLEAN_COUNT, bool)
+ GENERATE_FIELD(ACCUM_INPUT_REG_VALID, bool)
+ GENERATE_FIELD(ACCUM_DATA_FIFO_CNT, bool)
+ GENERATE_FIELD(SHD_FULL, bool)
+ GENERATE_FIELD(SHD_EMPTY, bool)
+ GENERATE_FIELD(EZ_RETURN_LOWER_EMPTY, bool)
+ GENERATE_FIELD(EZ_RETURN_UPPER_EMPTY, bool)
+ GENERATE_FIELD(EZ_RETURN_LOWER_FULL, bool)
+ GENERATE_FIELD(EZ_RETURN_UPPER_FULL, bool)
+ GENERATE_FIELD(ZEXP_LOWER_EMPTY, bool)
+ GENERATE_FIELD(ZEXP_UPPER_EMPTY, bool)
+ GENERATE_FIELD(ZEXP_LOWER_FULL, bool)
+ GENERATE_FIELD(ZEXP_UPPER_FULL, bool)
+END_REGISTER(RB_DEBUG_3)
+
+START_REGISTER(RB_DEBUG_4)
+ GENERATE_FIELD(GMEM_RD_ACCESS_FLAG, bool)
+ GENERATE_FIELD(GMEM_WR_ACCESS_FLAG, bool)
+ GENERATE_FIELD(SYSMEM_RD_ACCESS_FLAG, bool)
+ GENERATE_FIELD(SYSMEM_WR_ACCESS_FLAG, bool)
+ GENERATE_FIELD(ACCUM_DATA_FIFO_EMPTY, bool)
+ GENERATE_FIELD(ACCUM_ORDER_FIFO_EMPTY, bool)
+ GENERATE_FIELD(ACCUM_DATA_FIFO_FULL, bool)
+ GENERATE_FIELD(ACCUM_ORDER_FIFO_FULL, bool)
+ GENERATE_FIELD(SYSMEM_WRITE_COUNT_OVERFLOW, bool)
+ GENERATE_FIELD(CONTEXT_COUNT_DEBUG, bool)
+END_REGISTER(RB_DEBUG_4)
+
+START_REGISTER(RB_FLAG_CONTROL)
+ GENERATE_FIELD(DEBUG_FLAG_CLEAR, bool)
+END_REGISTER(RB_FLAG_CONTROL)
+
+START_REGISTER(RB_BC_SPARES)
+ GENERATE_FIELD(RESERVED, bool)
+END_REGISTER(RB_BC_SPARES)
+
+START_REGISTER(BC_DUMMY_CRAYRB_ENUMS)
+ GENERATE_FIELD(DUMMY_CRAYRB_DEPTH_FORMAT, DepthFormat)
+ GENERATE_FIELD(DUMMY_CRAYRB_SURFACE_SWAP, SurfaceSwap)
+ GENERATE_FIELD(DUMMY_CRAYRB_DEPTH_ARRAY, DepthArray)
+ GENERATE_FIELD(DUMMY_CRAYRB_ARRAY, ColorArray)
+ GENERATE_FIELD(DUMMY_CRAYRB_COLOR_FORMAT, ColorFormat)
+ GENERATE_FIELD(DUMMY_CRAYRB_SURFACE_NUMBER, SurfaceNumber)
+ GENERATE_FIELD(DUMMY_CRAYRB_SURFACE_FORMAT, SurfaceFormat)
+ GENERATE_FIELD(DUMMY_CRAYRB_SURFACE_TILING, SurfaceTiling)
+ GENERATE_FIELD(DUMMY_CRAYRB_SURFACE_ARRAY, SurfaceArray)
+ GENERATE_FIELD(DUMMY_RB_COPY_DEST_INFO_NUMBER, SurfaceNumberX)
+END_REGISTER(BC_DUMMY_CRAYRB_ENUMS)
+
+START_REGISTER(BC_DUMMY_CRAYRB_MOREENUMS)
+ GENERATE_FIELD(DUMMY_CRAYRB_COLORARRAYX, ColorArrayX)
+END_REGISTER(BC_DUMMY_CRAYRB_MOREENUMS)
+
diff --git a/drivers/mxc/amd-gpu/include/reg/yamato/22/yamato_ipt.h b/drivers/mxc/amd-gpu/include/reg/yamato/22/yamato_ipt.h
new file mode 100644
index 000000000000..0e32e421d0a3
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/reg/yamato/22/yamato_ipt.h
@@ -0,0 +1,95 @@
+/* Copyright (c) 2002,2007-2009, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef _R400IPT_H_
+#define _R400IPT_H_
+
+// Hand-generated list from Yamato_PM4_Spec.doc
+
+#define PM4_PACKET0_NOP 0x00000000 // Empty type-0 packet header
+#define PM4_PACKET1_NOP 0x40000000 // Empty type-1 packet header
+#define PM4_PACKET2_NOP 0x80000000 // Empty type-2 packet header (reserved)
+
+#define PM4_COUNT_SHIFT 16
+#define PM4_COUNT_MASK
+#define PM4_PACKET_COUNT(__x) ((((__x)-1) << PM4_COUNT_SHIFT) & 0x3fff0000)
+// Type 3 packet headers
+
+#define PM4_PACKET3_NOP 0xC0001000 // Do nothing.
+#define PM4_PACKET3_IB_PREFETCH_END 0xC0001700 // Internal Packet Used Only by CP
+#define PM4_PACKET3_SUBBLK_PREFETCH 0xC0001F00 // Internal Packet Used Only by CP
+
+#define PM4_PACKET3_INSTR_PREFETCH 0xC0002000 // Internal Packet Used Only by CP
+#define PM4_PACKET3_REG_RMW 0xC0002100 // Register Read-Modify-Write New for R400
+#define PM4_PACKET3_DRAW_INDX 0xC0002200 // Initiate fetch of index buffer New for R400
+#define PM4_PACKET3_VIZ_QUERY 0xC0002300 // Begin/End initiator for Viz Query extent processing New for R400
+#define PM4_PACKET3_SET_STATE 0xC0002500 // Fetch State Sub-Blocks and Initiate Shader Code DMAs New for R400
+#define PM4_PACKET3_WAIT_FOR_IDLE 0xC0002600 // Wait for the engine to be idle.
+#define PM4_PACKET3_IM_LOAD 0xC0002700 // Load Sequencer Instruction Memory for a Specific Shader New for R400
+#define PM4_PACKET3_IM_LOAD_IMMEDIATE 0xC0002B00 // Load Sequencer Instruction Memory for a Specific Shader New for R400
+#define PM4_PACKET3_SET_CONSTANT 0xC0002D00 // Load Constant Into Chip & Shadow to Memory New for R400
+#define PM4_PACKET3_LOAD_CONSTANT_CONTEXT 0xC0002E00 // Load All Constants from a Location in Memory New for R400
+#define PM4_PACKET3_LOAD_ALU_CONSTANT 0xC0002F00 // Load ALu constants from a location in memory - similar to SET_CONSTANT but tuned for performance when loading only ALU constants
+
+#define PM4_PACKET3_DRAW_INDX_BIN 0xC0003400 // Initiate fetch of index buffer and BIN info used for visibility test
+#define PM4_PACKET3_3D_DRAW_INDX_2_BIN 0xC0003500 // Draw using supplied indices and initiate fetch of BIN info for visibility test
+#define PM4_PACKET3_3D_DRAW_INDX_2 0xC0003600 // Draw primitives using vertex buf and Indices in this packet. Pkt does NOT contain vtx fmt
+#define PM4_PACKET3_INDIRECT_BUFFER_PFD 0xC0003700
+#define PM4_PACKET3_INVALIDATE_STATE 0xC0003B00 // Selective Invalidation of State Pointers New for R400
+#define PM4_PACKET3_WAIT_REG_MEM 0xC0003C00 // Wait Until a Register or Memory Location is a Specific Value. New for R400
+#define PM4_PACKET3_MEM_WRITE 0xC0003D00 // Write DWORD to Memory For Synchronization New for R400
+#define PM4_PACKET3_REG_TO_MEM 0xC0003E00 // Reads Register in Chip and Writes to Memory New for R400
+#define PM4_PACKET3_INDIRECT_BUFFER 0xC0003F00 // Indirect Buffer Dispatch - Pre-fetch parser uses this packet type in determining to pre-fetch the indirect buffer. Supported
+
+#define PM4_PACKET3_CP_INTERRUPT 0xC0004000 // Generate Interrupt from the Command Stream New for R400
+#define PM4_PACKET3_COND_EXEC 0xC0004400 // Conditional execution of a sequence of packets
+#define PM4_PACKET3_COND_WRITE 0xC0004500 // Conditional Write to Memory New for R400
+#define PM4_PACKET3_EVENT_WRITE 0xC0004600 // Generate An Event that Creates a Write to Memory when Completed New for R400
+#define PM4_PACKET3_INSTR_MATCH 0xC0004700 // Internal Packet Used Only by CP
+#define PM4_PACKET3_ME_INIT 0xC0004800 // Initialize CP's Micro Engine New for R400
+#define PM4_PACKET3_CONST_PREFETCH 0xC0004900 // Internal packet used only by CP
+#define PM4_PACKET3_MEM_WRITE_CNTR 0xC0004F00
+
+#define PM4_PACKET3_SET_BIN_MASK 0xC0005000 // Sets the 64-bit BIN_MASK register in the PFP
+#define PM4_PACKET3_SET_BIN_SELECT 0xC0005100 // Sets the 64-bit BIN_SELECT register in the PFP
+#define PM4_PACKET3_WAIT_REG_EQ 0xC0005200 // Wait until a register location is equal to a specific value
+#define PM4_PACKET3_WAIT_REG_GTE 0xC0005300 // Wait until a register location is greater than or equal to a specific value
+#define PM4_PACKET3_INCR_UPDT_STATE 0xC0005500 // Internal Packet Used Only by CP
+#define PM4_PACKET3_INCR_UPDT_CONST 0xC0005600 // Internal Packet Used Only by CP
+#define PM4_PACKET3_INCR_UPDT_INSTR 0xC0005700 // Internal Packet Used Only by CP
+#define PM4_PACKET3_EVENT_WRITE_SHD 0xC0005800 // Generate a VS|PS_Done Event.
+#define PM4_PACKET3_EVENT_WRITE_CFL 0xC0005900 // Generate a Cach Flush Done Event
+#define PM4_PACKET3_EVENT_WRITE_ZPD 0xC0005B00 // Generate a Cach Flush Done Event
+#define PM4_PACKET3_WAIT_UNTIL_READ 0xC0005C00 // Wait Until a Read completes.
+#define PM4_PACKET3_WAIT_IB_PFD_COMPLETE 0xC0005D00 // Wait Until all Base/Size writes from an IB_PFD packet have completed.
+#define PM4_PACKET3_CONTEXT_UPDATE 0xC0005E00 // Updates the current context if needed.
+
+ /****** New Opcodes For R400 (all decode values are TBD) ******/
+
+
+#endif // _R400IPT_H_
diff --git a/drivers/mxc/amd-gpu/include/reg/yamato/22/yamato_mask.h b/drivers/mxc/amd-gpu/include/reg/yamato/22/yamato_mask.h
new file mode 100644
index 000000000000..52ced9af774c
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/reg/yamato/22/yamato_mask.h
@@ -0,0 +1,5908 @@
+/* Copyright (c) 2002,2007-2009, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#if !defined (_yamato_MASK_HEADER)
+#define _yamato_MASK_HEADER
+
+// PA_CL_VPORT_XSCALE
+#define PA_CL_VPORT_XSCALE__VPORT_XSCALE_MASK 0xffffffffL
+
+// PA_CL_VPORT_XOFFSET
+#define PA_CL_VPORT_XOFFSET__VPORT_XOFFSET_MASK 0xffffffffL
+
+// PA_CL_VPORT_YSCALE
+#define PA_CL_VPORT_YSCALE__VPORT_YSCALE_MASK 0xffffffffL
+
+// PA_CL_VPORT_YOFFSET
+#define PA_CL_VPORT_YOFFSET__VPORT_YOFFSET_MASK 0xffffffffL
+
+// PA_CL_VPORT_ZSCALE
+#define PA_CL_VPORT_ZSCALE__VPORT_ZSCALE_MASK 0xffffffffL
+
+// PA_CL_VPORT_ZOFFSET
+#define PA_CL_VPORT_ZOFFSET__VPORT_ZOFFSET_MASK 0xffffffffL
+
+// PA_CL_VTE_CNTL
+#define PA_CL_VTE_CNTL__VPORT_X_SCALE_ENA_MASK 0x00000001L
+#define PA_CL_VTE_CNTL__VPORT_X_SCALE_ENA 0x00000001L
+#define PA_CL_VTE_CNTL__VPORT_X_OFFSET_ENA_MASK 0x00000002L
+#define PA_CL_VTE_CNTL__VPORT_X_OFFSET_ENA 0x00000002L
+#define PA_CL_VTE_CNTL__VPORT_Y_SCALE_ENA_MASK 0x00000004L
+#define PA_CL_VTE_CNTL__VPORT_Y_SCALE_ENA 0x00000004L
+#define PA_CL_VTE_CNTL__VPORT_Y_OFFSET_ENA_MASK 0x00000008L
+#define PA_CL_VTE_CNTL__VPORT_Y_OFFSET_ENA 0x00000008L
+#define PA_CL_VTE_CNTL__VPORT_Z_SCALE_ENA_MASK 0x00000010L
+#define PA_CL_VTE_CNTL__VPORT_Z_SCALE_ENA 0x00000010L
+#define PA_CL_VTE_CNTL__VPORT_Z_OFFSET_ENA_MASK 0x00000020L
+#define PA_CL_VTE_CNTL__VPORT_Z_OFFSET_ENA 0x00000020L
+#define PA_CL_VTE_CNTL__VTX_XY_FMT_MASK 0x00000100L
+#define PA_CL_VTE_CNTL__VTX_XY_FMT 0x00000100L
+#define PA_CL_VTE_CNTL__VTX_Z_FMT_MASK 0x00000200L
+#define PA_CL_VTE_CNTL__VTX_Z_FMT 0x00000200L
+#define PA_CL_VTE_CNTL__VTX_W0_FMT_MASK 0x00000400L
+#define PA_CL_VTE_CNTL__VTX_W0_FMT 0x00000400L
+#define PA_CL_VTE_CNTL__PERFCOUNTER_REF_MASK 0x00000800L
+#define PA_CL_VTE_CNTL__PERFCOUNTER_REF 0x00000800L
+
+// PA_CL_CLIP_CNTL
+#define PA_CL_CLIP_CNTL__CLIP_DISABLE_MASK 0x00010000L
+#define PA_CL_CLIP_CNTL__CLIP_DISABLE 0x00010000L
+#define PA_CL_CLIP_CNTL__BOUNDARY_EDGE_FLAG_ENA_MASK 0x00040000L
+#define PA_CL_CLIP_CNTL__BOUNDARY_EDGE_FLAG_ENA 0x00040000L
+#define PA_CL_CLIP_CNTL__DX_CLIP_SPACE_DEF_MASK 0x00080000L
+#define PA_CL_CLIP_CNTL__DX_CLIP_SPACE_DEF 0x00080000L
+#define PA_CL_CLIP_CNTL__DIS_CLIP_ERR_DETECT_MASK 0x00100000L
+#define PA_CL_CLIP_CNTL__DIS_CLIP_ERR_DETECT 0x00100000L
+#define PA_CL_CLIP_CNTL__VTX_KILL_OR_MASK 0x00200000L
+#define PA_CL_CLIP_CNTL__VTX_KILL_OR 0x00200000L
+#define PA_CL_CLIP_CNTL__XY_NAN_RETAIN_MASK 0x00400000L
+#define PA_CL_CLIP_CNTL__XY_NAN_RETAIN 0x00400000L
+#define PA_CL_CLIP_CNTL__Z_NAN_RETAIN_MASK 0x00800000L
+#define PA_CL_CLIP_CNTL__Z_NAN_RETAIN 0x00800000L
+#define PA_CL_CLIP_CNTL__W_NAN_RETAIN_MASK 0x01000000L
+#define PA_CL_CLIP_CNTL__W_NAN_RETAIN 0x01000000L
+
+// PA_CL_GB_VERT_CLIP_ADJ
+#define PA_CL_GB_VERT_CLIP_ADJ__DATA_REGISTER_MASK 0xffffffffL
+
+// PA_CL_GB_VERT_DISC_ADJ
+#define PA_CL_GB_VERT_DISC_ADJ__DATA_REGISTER_MASK 0xffffffffL
+
+// PA_CL_GB_HORZ_CLIP_ADJ
+#define PA_CL_GB_HORZ_CLIP_ADJ__DATA_REGISTER_MASK 0xffffffffL
+
+// PA_CL_GB_HORZ_DISC_ADJ
+#define PA_CL_GB_HORZ_DISC_ADJ__DATA_REGISTER_MASK 0xffffffffL
+
+// PA_CL_ENHANCE
+#define PA_CL_ENHANCE__CLIP_VTX_REORDER_ENA_MASK 0x00000001L
+#define PA_CL_ENHANCE__CLIP_VTX_REORDER_ENA 0x00000001L
+#define PA_CL_ENHANCE__ECO_SPARE3_MASK 0x10000000L
+#define PA_CL_ENHANCE__ECO_SPARE3 0x10000000L
+#define PA_CL_ENHANCE__ECO_SPARE2_MASK 0x20000000L
+#define PA_CL_ENHANCE__ECO_SPARE2 0x20000000L
+#define PA_CL_ENHANCE__ECO_SPARE1_MASK 0x40000000L
+#define PA_CL_ENHANCE__ECO_SPARE1 0x40000000L
+#define PA_CL_ENHANCE__ECO_SPARE0_MASK 0x80000000L
+#define PA_CL_ENHANCE__ECO_SPARE0 0x80000000L
+
+// PA_SC_ENHANCE
+#define PA_SC_ENHANCE__ECO_SPARE3_MASK 0x10000000L
+#define PA_SC_ENHANCE__ECO_SPARE3 0x10000000L
+#define PA_SC_ENHANCE__ECO_SPARE2_MASK 0x20000000L
+#define PA_SC_ENHANCE__ECO_SPARE2 0x20000000L
+#define PA_SC_ENHANCE__ECO_SPARE1_MASK 0x40000000L
+#define PA_SC_ENHANCE__ECO_SPARE1 0x40000000L
+#define PA_SC_ENHANCE__ECO_SPARE0_MASK 0x80000000L
+#define PA_SC_ENHANCE__ECO_SPARE0 0x80000000L
+
+// PA_SU_VTX_CNTL
+#define PA_SU_VTX_CNTL__PIX_CENTER_MASK 0x00000001L
+#define PA_SU_VTX_CNTL__PIX_CENTER 0x00000001L
+#define PA_SU_VTX_CNTL__ROUND_MODE_MASK 0x00000006L
+#define PA_SU_VTX_CNTL__QUANT_MODE_MASK 0x00000038L
+
+// PA_SU_POINT_SIZE
+#define PA_SU_POINT_SIZE__HEIGHT_MASK 0x0000ffffL
+#define PA_SU_POINT_SIZE__WIDTH_MASK 0xffff0000L
+
+// PA_SU_POINT_MINMAX
+#define PA_SU_POINT_MINMAX__MIN_SIZE_MASK 0x0000ffffL
+#define PA_SU_POINT_MINMAX__MAX_SIZE_MASK 0xffff0000L
+
+// PA_SU_LINE_CNTL
+#define PA_SU_LINE_CNTL__WIDTH_MASK 0x0000ffffL
+
+// PA_SU_FACE_DATA
+#define PA_SU_FACE_DATA__BASE_ADDR_MASK 0xffffffe0L
+
+// PA_SU_SC_MODE_CNTL
+#define PA_SU_SC_MODE_CNTL__CULL_FRONT_MASK 0x00000001L
+#define PA_SU_SC_MODE_CNTL__CULL_FRONT 0x00000001L
+#define PA_SU_SC_MODE_CNTL__CULL_BACK_MASK 0x00000002L
+#define PA_SU_SC_MODE_CNTL__CULL_BACK 0x00000002L
+#define PA_SU_SC_MODE_CNTL__FACE_MASK 0x00000004L
+#define PA_SU_SC_MODE_CNTL__FACE 0x00000004L
+#define PA_SU_SC_MODE_CNTL__POLY_MODE_MASK 0x00000018L
+#define PA_SU_SC_MODE_CNTL__POLYMODE_FRONT_PTYPE_MASK 0x000000e0L
+#define PA_SU_SC_MODE_CNTL__POLYMODE_BACK_PTYPE_MASK 0x00000700L
+#define PA_SU_SC_MODE_CNTL__POLY_OFFSET_FRONT_ENABLE_MASK 0x00000800L
+#define PA_SU_SC_MODE_CNTL__POLY_OFFSET_FRONT_ENABLE 0x00000800L
+#define PA_SU_SC_MODE_CNTL__POLY_OFFSET_BACK_ENABLE_MASK 0x00001000L
+#define PA_SU_SC_MODE_CNTL__POLY_OFFSET_BACK_ENABLE 0x00001000L
+#define PA_SU_SC_MODE_CNTL__POLY_OFFSET_PARA_ENABLE_MASK 0x00002000L
+#define PA_SU_SC_MODE_CNTL__POLY_OFFSET_PARA_ENABLE 0x00002000L
+#define PA_SU_SC_MODE_CNTL__MSAA_ENABLE_MASK 0x00008000L
+#define PA_SU_SC_MODE_CNTL__MSAA_ENABLE 0x00008000L
+#define PA_SU_SC_MODE_CNTL__VTX_WINDOW_OFFSET_ENABLE_MASK 0x00010000L
+#define PA_SU_SC_MODE_CNTL__VTX_WINDOW_OFFSET_ENABLE 0x00010000L
+#define PA_SU_SC_MODE_CNTL__LINE_STIPPLE_ENABLE_MASK 0x00040000L
+#define PA_SU_SC_MODE_CNTL__LINE_STIPPLE_ENABLE 0x00040000L
+#define PA_SU_SC_MODE_CNTL__PROVOKING_VTX_LAST_MASK 0x00080000L
+#define PA_SU_SC_MODE_CNTL__PROVOKING_VTX_LAST 0x00080000L
+#define PA_SU_SC_MODE_CNTL__PERSP_CORR_DIS_MASK 0x00100000L
+#define PA_SU_SC_MODE_CNTL__PERSP_CORR_DIS 0x00100000L
+#define PA_SU_SC_MODE_CNTL__MULTI_PRIM_IB_ENA_MASK 0x00200000L
+#define PA_SU_SC_MODE_CNTL__MULTI_PRIM_IB_ENA 0x00200000L
+#define PA_SU_SC_MODE_CNTL__QUAD_ORDER_ENABLE_MASK 0x00800000L
+#define PA_SU_SC_MODE_CNTL__QUAD_ORDER_ENABLE 0x00800000L
+#define PA_SU_SC_MODE_CNTL__WAIT_RB_IDLE_ALL_TRI_MASK 0x02000000L
+#define PA_SU_SC_MODE_CNTL__WAIT_RB_IDLE_ALL_TRI 0x02000000L
+#define PA_SU_SC_MODE_CNTL__WAIT_RB_IDLE_FIRST_TRI_NEW_STATE_MASK 0x04000000L
+#define PA_SU_SC_MODE_CNTL__WAIT_RB_IDLE_FIRST_TRI_NEW_STATE 0x04000000L
+#define PA_SU_SC_MODE_CNTL__CLAMPED_FACENESS_MASK 0x10000000L
+#define PA_SU_SC_MODE_CNTL__CLAMPED_FACENESS 0x10000000L
+#define PA_SU_SC_MODE_CNTL__ZERO_AREA_FACENESS_MASK 0x20000000L
+#define PA_SU_SC_MODE_CNTL__ZERO_AREA_FACENESS 0x20000000L
+#define PA_SU_SC_MODE_CNTL__FACE_KILL_ENABLE_MASK 0x40000000L
+#define PA_SU_SC_MODE_CNTL__FACE_KILL_ENABLE 0x40000000L
+#define PA_SU_SC_MODE_CNTL__FACE_WRITE_ENABLE_MASK 0x80000000L
+#define PA_SU_SC_MODE_CNTL__FACE_WRITE_ENABLE 0x80000000L
+
+// PA_SU_POLY_OFFSET_FRONT_SCALE
+#define PA_SU_POLY_OFFSET_FRONT_SCALE__SCALE_MASK 0xffffffffL
+
+// PA_SU_POLY_OFFSET_FRONT_OFFSET
+#define PA_SU_POLY_OFFSET_FRONT_OFFSET__OFFSET_MASK 0xffffffffL
+
+// PA_SU_POLY_OFFSET_BACK_SCALE
+#define PA_SU_POLY_OFFSET_BACK_SCALE__SCALE_MASK 0xffffffffL
+
+// PA_SU_POLY_OFFSET_BACK_OFFSET
+#define PA_SU_POLY_OFFSET_BACK_OFFSET__OFFSET_MASK 0xffffffffL
+
+// PA_SU_PERFCOUNTER0_SELECT
+#define PA_SU_PERFCOUNTER0_SELECT__PERF_SEL_MASK 0x000000ffL
+
+// PA_SU_PERFCOUNTER1_SELECT
+#define PA_SU_PERFCOUNTER1_SELECT__PERF_SEL_MASK 0x000000ffL
+
+// PA_SU_PERFCOUNTER2_SELECT
+#define PA_SU_PERFCOUNTER2_SELECT__PERF_SEL_MASK 0x000000ffL
+
+// PA_SU_PERFCOUNTER3_SELECT
+#define PA_SU_PERFCOUNTER3_SELECT__PERF_SEL_MASK 0x000000ffL
+
+// PA_SU_PERFCOUNTER0_LOW
+#define PA_SU_PERFCOUNTER0_LOW__PERF_COUNT_MASK 0xffffffffL
+
+// PA_SU_PERFCOUNTER0_HI
+#define PA_SU_PERFCOUNTER0_HI__PERF_COUNT_MASK 0x0000ffffL
+
+// PA_SU_PERFCOUNTER1_LOW
+#define PA_SU_PERFCOUNTER1_LOW__PERF_COUNT_MASK 0xffffffffL
+
+// PA_SU_PERFCOUNTER1_HI
+#define PA_SU_PERFCOUNTER1_HI__PERF_COUNT_MASK 0x0000ffffL
+
+// PA_SU_PERFCOUNTER2_LOW
+#define PA_SU_PERFCOUNTER2_LOW__PERF_COUNT_MASK 0xffffffffL
+
+// PA_SU_PERFCOUNTER2_HI
+#define PA_SU_PERFCOUNTER2_HI__PERF_COUNT_MASK 0x0000ffffL
+
+// PA_SU_PERFCOUNTER3_LOW
+#define PA_SU_PERFCOUNTER3_LOW__PERF_COUNT_MASK 0xffffffffL
+
+// PA_SU_PERFCOUNTER3_HI
+#define PA_SU_PERFCOUNTER3_HI__PERF_COUNT_MASK 0x0000ffffL
+
+// PA_SC_WINDOW_OFFSET
+#define PA_SC_WINDOW_OFFSET__WINDOW_X_OFFSET_MASK 0x00007fffL
+#define PA_SC_WINDOW_OFFSET__WINDOW_Y_OFFSET_MASK 0x7fff0000L
+
+// PA_SC_AA_CONFIG
+#define PA_SC_AA_CONFIG__MSAA_NUM_SAMPLES_MASK 0x00000007L
+#define PA_SC_AA_CONFIG__MAX_SAMPLE_DIST_MASK 0x0001e000L
+
+// PA_SC_AA_MASK
+#define PA_SC_AA_MASK__AA_MASK_MASK 0x0000ffffL
+
+// PA_SC_LINE_STIPPLE
+#define PA_SC_LINE_STIPPLE__LINE_PATTERN_MASK 0x0000ffffL
+#define PA_SC_LINE_STIPPLE__REPEAT_COUNT_MASK 0x00ff0000L
+#define PA_SC_LINE_STIPPLE__PATTERN_BIT_ORDER_MASK 0x10000000L
+#define PA_SC_LINE_STIPPLE__PATTERN_BIT_ORDER 0x10000000L
+#define PA_SC_LINE_STIPPLE__AUTO_RESET_CNTL_MASK 0x60000000L
+
+// PA_SC_LINE_CNTL
+#define PA_SC_LINE_CNTL__BRES_CNTL_MASK 0x000000ffL
+#define PA_SC_LINE_CNTL__USE_BRES_CNTL_MASK 0x00000100L
+#define PA_SC_LINE_CNTL__USE_BRES_CNTL 0x00000100L
+#define PA_SC_LINE_CNTL__EXPAND_LINE_WIDTH_MASK 0x00000200L
+#define PA_SC_LINE_CNTL__EXPAND_LINE_WIDTH 0x00000200L
+#define PA_SC_LINE_CNTL__LAST_PIXEL_MASK 0x00000400L
+#define PA_SC_LINE_CNTL__LAST_PIXEL 0x00000400L
+
+// PA_SC_WINDOW_SCISSOR_TL
+#define PA_SC_WINDOW_SCISSOR_TL__TL_X_MASK 0x00003fffL
+#define PA_SC_WINDOW_SCISSOR_TL__TL_Y_MASK 0x3fff0000L
+#define PA_SC_WINDOW_SCISSOR_TL__WINDOW_OFFSET_DISABLE_MASK 0x80000000L
+#define PA_SC_WINDOW_SCISSOR_TL__WINDOW_OFFSET_DISABLE 0x80000000L
+
+// PA_SC_WINDOW_SCISSOR_BR
+#define PA_SC_WINDOW_SCISSOR_BR__BR_X_MASK 0x00003fffL
+#define PA_SC_WINDOW_SCISSOR_BR__BR_Y_MASK 0x3fff0000L
+
+// PA_SC_SCREEN_SCISSOR_TL
+#define PA_SC_SCREEN_SCISSOR_TL__TL_X_MASK 0x00007fffL
+#define PA_SC_SCREEN_SCISSOR_TL__TL_Y_MASK 0x7fff0000L
+
+// PA_SC_SCREEN_SCISSOR_BR
+#define PA_SC_SCREEN_SCISSOR_BR__BR_X_MASK 0x00007fffL
+#define PA_SC_SCREEN_SCISSOR_BR__BR_Y_MASK 0x7fff0000L
+
+// PA_SC_VIZ_QUERY
+#define PA_SC_VIZ_QUERY__VIZ_QUERY_ENA_MASK 0x00000001L
+#define PA_SC_VIZ_QUERY__VIZ_QUERY_ENA 0x00000001L
+#define PA_SC_VIZ_QUERY__VIZ_QUERY_ID_MASK 0x0000003eL
+#define PA_SC_VIZ_QUERY__KILL_PIX_POST_EARLY_Z_MASK 0x00000080L
+#define PA_SC_VIZ_QUERY__KILL_PIX_POST_EARLY_Z 0x00000080L
+
+// PA_SC_VIZ_QUERY_STATUS
+#define PA_SC_VIZ_QUERY_STATUS__STATUS_BITS_MASK 0xffffffffL
+
+// PA_SC_LINE_STIPPLE_STATE
+#define PA_SC_LINE_STIPPLE_STATE__CURRENT_PTR_MASK 0x0000000fL
+#define PA_SC_LINE_STIPPLE_STATE__CURRENT_COUNT_MASK 0x0000ff00L
+
+// PA_SC_PERFCOUNTER0_SELECT
+#define PA_SC_PERFCOUNTER0_SELECT__PERF_SEL_MASK 0x000000ffL
+
+// PA_SC_PERFCOUNTER0_LOW
+#define PA_SC_PERFCOUNTER0_LOW__PERF_COUNT_MASK 0xffffffffL
+
+// PA_SC_PERFCOUNTER0_HI
+#define PA_SC_PERFCOUNTER0_HI__PERF_COUNT_MASK 0x0000ffffL
+
+// PA_CL_CNTL_STATUS
+#define PA_CL_CNTL_STATUS__CL_BUSY_MASK 0x80000000L
+#define PA_CL_CNTL_STATUS__CL_BUSY 0x80000000L
+
+// PA_SU_CNTL_STATUS
+#define PA_SU_CNTL_STATUS__SU_BUSY_MASK 0x80000000L
+#define PA_SU_CNTL_STATUS__SU_BUSY 0x80000000L
+
+// PA_SC_CNTL_STATUS
+#define PA_SC_CNTL_STATUS__SC_BUSY_MASK 0x80000000L
+#define PA_SC_CNTL_STATUS__SC_BUSY 0x80000000L
+
+// PA_SU_DEBUG_CNTL
+#define PA_SU_DEBUG_CNTL__SU_DEBUG_INDX_MASK 0x0000001fL
+
+// PA_SU_DEBUG_DATA
+#define PA_SU_DEBUG_DATA__DATA_MASK 0xffffffffL
+
+// CLIPPER_DEBUG_REG00
+#define CLIPPER_DEBUG_REG00__clip_ga_bc_fifo_write_MASK 0x00000001L
+#define CLIPPER_DEBUG_REG00__clip_ga_bc_fifo_write 0x00000001L
+#define CLIPPER_DEBUG_REG00__clip_ga_bc_fifo_full_MASK 0x00000002L
+#define CLIPPER_DEBUG_REG00__clip_ga_bc_fifo_full 0x00000002L
+#define CLIPPER_DEBUG_REG00__clip_to_ga_fifo_write_MASK 0x00000004L
+#define CLIPPER_DEBUG_REG00__clip_to_ga_fifo_write 0x00000004L
+#define CLIPPER_DEBUG_REG00__clip_to_ga_fifo_full_MASK 0x00000008L
+#define CLIPPER_DEBUG_REG00__clip_to_ga_fifo_full 0x00000008L
+#define CLIPPER_DEBUG_REG00__primic_to_clprim_fifo_empty_MASK 0x00000010L
+#define CLIPPER_DEBUG_REG00__primic_to_clprim_fifo_empty 0x00000010L
+#define CLIPPER_DEBUG_REG00__primic_to_clprim_fifo_full_MASK 0x00000020L
+#define CLIPPER_DEBUG_REG00__primic_to_clprim_fifo_full 0x00000020L
+#define CLIPPER_DEBUG_REG00__clip_to_outsm_fifo_empty_MASK 0x00000040L
+#define CLIPPER_DEBUG_REG00__clip_to_outsm_fifo_empty 0x00000040L
+#define CLIPPER_DEBUG_REG00__clip_to_outsm_fifo_full_MASK 0x00000080L
+#define CLIPPER_DEBUG_REG00__clip_to_outsm_fifo_full 0x00000080L
+#define CLIPPER_DEBUG_REG00__vgt_to_clipp_fifo_empty_MASK 0x00000100L
+#define CLIPPER_DEBUG_REG00__vgt_to_clipp_fifo_empty 0x00000100L
+#define CLIPPER_DEBUG_REG00__vgt_to_clipp_fifo_full_MASK 0x00000200L
+#define CLIPPER_DEBUG_REG00__vgt_to_clipp_fifo_full 0x00000200L
+#define CLIPPER_DEBUG_REG00__vgt_to_clips_fifo_empty_MASK 0x00000400L
+#define CLIPPER_DEBUG_REG00__vgt_to_clips_fifo_empty 0x00000400L
+#define CLIPPER_DEBUG_REG00__vgt_to_clips_fifo_full_MASK 0x00000800L
+#define CLIPPER_DEBUG_REG00__vgt_to_clips_fifo_full 0x00000800L
+#define CLIPPER_DEBUG_REG00__clipcode_fifo_fifo_empty_MASK 0x00001000L
+#define CLIPPER_DEBUG_REG00__clipcode_fifo_fifo_empty 0x00001000L
+#define CLIPPER_DEBUG_REG00__clipcode_fifo_full_MASK 0x00002000L
+#define CLIPPER_DEBUG_REG00__clipcode_fifo_full 0x00002000L
+#define CLIPPER_DEBUG_REG00__vte_out_clip_fifo_fifo_empty_MASK 0x00004000L
+#define CLIPPER_DEBUG_REG00__vte_out_clip_fifo_fifo_empty 0x00004000L
+#define CLIPPER_DEBUG_REG00__vte_out_clip_fifo_fifo_full_MASK 0x00008000L
+#define CLIPPER_DEBUG_REG00__vte_out_clip_fifo_fifo_full 0x00008000L
+#define CLIPPER_DEBUG_REG00__vte_out_orig_fifo_fifo_empty_MASK 0x00010000L
+#define CLIPPER_DEBUG_REG00__vte_out_orig_fifo_fifo_empty 0x00010000L
+#define CLIPPER_DEBUG_REG00__vte_out_orig_fifo_fifo_full_MASK 0x00020000L
+#define CLIPPER_DEBUG_REG00__vte_out_orig_fifo_fifo_full 0x00020000L
+#define CLIPPER_DEBUG_REG00__ccgen_to_clipcc_fifo_empty_MASK 0x00040000L
+#define CLIPPER_DEBUG_REG00__ccgen_to_clipcc_fifo_empty 0x00040000L
+#define CLIPPER_DEBUG_REG00__ccgen_to_clipcc_fifo_full_MASK 0x00080000L
+#define CLIPPER_DEBUG_REG00__ccgen_to_clipcc_fifo_full 0x00080000L
+#define CLIPPER_DEBUG_REG00__ALWAYS_ZERO_MASK 0xfff00000L
+
+// CLIPPER_DEBUG_REG01
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_end_of_packet_MASK 0x00000001L
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_end_of_packet 0x00000001L
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_first_prim_of_slot_MASK 0x00000002L
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_first_prim_of_slot 0x00000002L
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_deallocate_slot_MASK 0x0000001cL
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_clipped_prim_MASK 0x00000020L
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_clipped_prim 0x00000020L
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_null_primitive_MASK 0x00000040L
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_null_primitive 0x00000040L
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_vertex_store_indx_2_MASK 0x00000780L
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_vertex_store_indx_1_MASK 0x00007800L
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_vertex_store_indx_0_MASK 0x00078000L
+#define CLIPPER_DEBUG_REG01__clip_vert_vte_valid_MASK 0x00380000L
+#define CLIPPER_DEBUG_REG01__vte_out_clip_rd_vertex_store_indx_MASK 0x00c00000L
+#define CLIPPER_DEBUG_REG01__ALWAYS_ZERO_MASK 0xff000000L
+
+// CLIPPER_DEBUG_REG02
+#define CLIPPER_DEBUG_REG02__ALWAYS_ZERO1_MASK 0x001fffffL
+#define CLIPPER_DEBUG_REG02__clipsm0_clip_to_clipga_clip_to_outsm_cnt_MASK 0x00e00000L
+#define CLIPPER_DEBUG_REG02__ALWAYS_ZERO0_MASK 0x7f000000L
+#define CLIPPER_DEBUG_REG02__clipsm0_clprim_to_clip_prim_valid_MASK 0x80000000L
+#define CLIPPER_DEBUG_REG02__clipsm0_clprim_to_clip_prim_valid 0x80000000L
+
+// CLIPPER_DEBUG_REG03
+#define CLIPPER_DEBUG_REG03__ALWAYS_ZERO3_MASK 0x00000007L
+#define CLIPPER_DEBUG_REG03__clipsm0_clprim_to_clip_clip_primitive_MASK 0x00000008L
+#define CLIPPER_DEBUG_REG03__clipsm0_clprim_to_clip_clip_primitive 0x00000008L
+#define CLIPPER_DEBUG_REG03__ALWAYS_ZERO2_MASK 0x00000070L
+#define CLIPPER_DEBUG_REG03__clipsm0_clprim_to_clip_null_primitive_MASK 0x00000080L
+#define CLIPPER_DEBUG_REG03__clipsm0_clprim_to_clip_null_primitive 0x00000080L
+#define CLIPPER_DEBUG_REG03__ALWAYS_ZERO1_MASK 0x000fff00L
+#define CLIPPER_DEBUG_REG03__clipsm0_clprim_to_clip_clip_code_or_MASK 0x03f00000L
+#define CLIPPER_DEBUG_REG03__ALWAYS_ZERO0_MASK 0xfc000000L
+
+// CLIPPER_DEBUG_REG04
+#define CLIPPER_DEBUG_REG04__ALWAYS_ZERO2_MASK 0x00000007L
+#define CLIPPER_DEBUG_REG04__clipsm0_clprim_to_clip_first_prim_of_slot_MASK 0x00000008L
+#define CLIPPER_DEBUG_REG04__clipsm0_clprim_to_clip_first_prim_of_slot 0x00000008L
+#define CLIPPER_DEBUG_REG04__ALWAYS_ZERO1_MASK 0x00000070L
+#define CLIPPER_DEBUG_REG04__clipsm0_clprim_to_clip_event_MASK 0x00000080L
+#define CLIPPER_DEBUG_REG04__clipsm0_clprim_to_clip_event 0x00000080L
+#define CLIPPER_DEBUG_REG04__ALWAYS_ZERO0_MASK 0xffffff00L
+
+// CLIPPER_DEBUG_REG05
+#define CLIPPER_DEBUG_REG05__clipsm0_clprim_to_clip_state_var_indx_MASK 0x00000001L
+#define CLIPPER_DEBUG_REG05__clipsm0_clprim_to_clip_state_var_indx 0x00000001L
+#define CLIPPER_DEBUG_REG05__ALWAYS_ZERO3_MASK 0x00000006L
+#define CLIPPER_DEBUG_REG05__clipsm0_clprim_to_clip_deallocate_slot_MASK 0x00000038L
+#define CLIPPER_DEBUG_REG05__clipsm0_clprim_to_clip_event_id_MASK 0x00000fc0L
+#define CLIPPER_DEBUG_REG05__clipsm0_clprim_to_clip_vertex_store_indx_2_MASK 0x0000f000L
+#define CLIPPER_DEBUG_REG05__ALWAYS_ZERO2_MASK 0x00030000L
+#define CLIPPER_DEBUG_REG05__clipsm0_clprim_to_clip_vertex_store_indx_1_MASK 0x003c0000L
+#define CLIPPER_DEBUG_REG05__ALWAYS_ZERO1_MASK 0x00c00000L
+#define CLIPPER_DEBUG_REG05__clipsm0_clprim_to_clip_vertex_store_indx_0_MASK 0x0f000000L
+#define CLIPPER_DEBUG_REG05__ALWAYS_ZERO0_MASK 0xf0000000L
+
+// CLIPPER_DEBUG_REG09
+#define CLIPPER_DEBUG_REG09__clprim_in_back_event_MASK 0x00000001L
+#define CLIPPER_DEBUG_REG09__clprim_in_back_event 0x00000001L
+#define CLIPPER_DEBUG_REG09__outputclprimtoclip_null_primitive_MASK 0x00000002L
+#define CLIPPER_DEBUG_REG09__outputclprimtoclip_null_primitive 0x00000002L
+#define CLIPPER_DEBUG_REG09__clprim_in_back_vertex_store_indx_2_MASK 0x0000003cL
+#define CLIPPER_DEBUG_REG09__ALWAYS_ZERO2_MASK 0x000000c0L
+#define CLIPPER_DEBUG_REG09__clprim_in_back_vertex_store_indx_1_MASK 0x00000f00L
+#define CLIPPER_DEBUG_REG09__ALWAYS_ZERO1_MASK 0x00003000L
+#define CLIPPER_DEBUG_REG09__clprim_in_back_vertex_store_indx_0_MASK 0x0003c000L
+#define CLIPPER_DEBUG_REG09__ALWAYS_ZERO0_MASK 0x000c0000L
+#define CLIPPER_DEBUG_REG09__prim_back_valid_MASK 0x00100000L
+#define CLIPPER_DEBUG_REG09__prim_back_valid 0x00100000L
+#define CLIPPER_DEBUG_REG09__clip_priority_seq_indx_out_cnt_MASK 0x01e00000L
+#define CLIPPER_DEBUG_REG09__outsm_clr_rd_orig_vertices_MASK 0x06000000L
+#define CLIPPER_DEBUG_REG09__outsm_clr_rd_clipsm_wait_MASK 0x08000000L
+#define CLIPPER_DEBUG_REG09__outsm_clr_rd_clipsm_wait 0x08000000L
+#define CLIPPER_DEBUG_REG09__outsm_clr_fifo_empty_MASK 0x10000000L
+#define CLIPPER_DEBUG_REG09__outsm_clr_fifo_empty 0x10000000L
+#define CLIPPER_DEBUG_REG09__outsm_clr_fifo_full_MASK 0x20000000L
+#define CLIPPER_DEBUG_REG09__outsm_clr_fifo_full 0x20000000L
+#define CLIPPER_DEBUG_REG09__clip_priority_seq_indx_load_MASK 0xc0000000L
+
+// CLIPPER_DEBUG_REG10
+#define CLIPPER_DEBUG_REG10__primic_to_clprim_fifo_vertex_store_indx_2_MASK 0x0000000fL
+#define CLIPPER_DEBUG_REG10__ALWAYS_ZERO3_MASK 0x00000030L
+#define CLIPPER_DEBUG_REG10__primic_to_clprim_fifo_vertex_store_indx_1_MASK 0x000003c0L
+#define CLIPPER_DEBUG_REG10__ALWAYS_ZERO2_MASK 0x00000c00L
+#define CLIPPER_DEBUG_REG10__primic_to_clprim_fifo_vertex_store_indx_0_MASK 0x0000f000L
+#define CLIPPER_DEBUG_REG10__ALWAYS_ZERO1_MASK 0x00030000L
+#define CLIPPER_DEBUG_REG10__clprim_in_back_state_var_indx_MASK 0x00040000L
+#define CLIPPER_DEBUG_REG10__clprim_in_back_state_var_indx 0x00040000L
+#define CLIPPER_DEBUG_REG10__ALWAYS_ZERO0_MASK 0x00180000L
+#define CLIPPER_DEBUG_REG10__clprim_in_back_end_of_packet_MASK 0x00200000L
+#define CLIPPER_DEBUG_REG10__clprim_in_back_end_of_packet 0x00200000L
+#define CLIPPER_DEBUG_REG10__clprim_in_back_first_prim_of_slot_MASK 0x00400000L
+#define CLIPPER_DEBUG_REG10__clprim_in_back_first_prim_of_slot 0x00400000L
+#define CLIPPER_DEBUG_REG10__clprim_in_back_deallocate_slot_MASK 0x03800000L
+#define CLIPPER_DEBUG_REG10__clprim_in_back_event_id_MASK 0xfc000000L
+
+// CLIPPER_DEBUG_REG11
+#define CLIPPER_DEBUG_REG11__vertval_bits_vertex_vertex_store_msb_MASK 0x0000000fL
+#define CLIPPER_DEBUG_REG11__ALWAYS_ZERO_MASK 0xfffffff0L
+
+// CLIPPER_DEBUG_REG12
+#define CLIPPER_DEBUG_REG12__clip_priority_available_vte_out_clip_MASK 0x00000003L
+#define CLIPPER_DEBUG_REG12__ALWAYS_ZERO2_MASK 0x0000001cL
+#define CLIPPER_DEBUG_REG12__clip_vertex_fifo_empty_MASK 0x00000020L
+#define CLIPPER_DEBUG_REG12__clip_vertex_fifo_empty 0x00000020L
+#define CLIPPER_DEBUG_REG12__clip_priority_available_clip_verts_MASK 0x000007c0L
+#define CLIPPER_DEBUG_REG12__ALWAYS_ZERO1_MASK 0x00007800L
+#define CLIPPER_DEBUG_REG12__vertval_bits_vertex_cc_next_valid_MASK 0x00078000L
+#define CLIPPER_DEBUG_REG12__clipcc_vertex_store_indx_MASK 0x00180000L
+#define CLIPPER_DEBUG_REG12__primic_to_clprim_valid_MASK 0x00200000L
+#define CLIPPER_DEBUG_REG12__primic_to_clprim_valid 0x00200000L
+#define CLIPPER_DEBUG_REG12__ALWAYS_ZERO0_MASK 0xffc00000L
+
+// CLIPPER_DEBUG_REG13
+#define CLIPPER_DEBUG_REG13__sm0_clip_vert_cnt_MASK 0x0000000fL
+#define CLIPPER_DEBUG_REG13__sm0_prim_end_state_MASK 0x000007f0L
+#define CLIPPER_DEBUG_REG13__ALWAYS_ZERO1_MASK 0x00003800L
+#define CLIPPER_DEBUG_REG13__sm0_vertex_clip_cnt_MASK 0x0003c000L
+#define CLIPPER_DEBUG_REG13__sm0_inv_to_clip_data_valid_1_MASK 0x00040000L
+#define CLIPPER_DEBUG_REG13__sm0_inv_to_clip_data_valid_1 0x00040000L
+#define CLIPPER_DEBUG_REG13__sm0_inv_to_clip_data_valid_0_MASK 0x00080000L
+#define CLIPPER_DEBUG_REG13__sm0_inv_to_clip_data_valid_0 0x00080000L
+#define CLIPPER_DEBUG_REG13__sm0_current_state_MASK 0x07f00000L
+#define CLIPPER_DEBUG_REG13__ALWAYS_ZERO0_MASK 0xf8000000L
+
+// SXIFCCG_DEBUG_REG0
+#define SXIFCCG_DEBUG_REG0__nan_kill_flag_MASK 0x0000000fL
+#define SXIFCCG_DEBUG_REG0__position_address_MASK 0x00000070L
+#define SXIFCCG_DEBUG_REG0__ALWAYS_ZERO2_MASK 0x00000380L
+#define SXIFCCG_DEBUG_REG0__point_address_MASK 0x00001c00L
+#define SXIFCCG_DEBUG_REG0__ALWAYS_ZERO1_MASK 0x0000e000L
+#define SXIFCCG_DEBUG_REG0__sx_pending_rd_state_var_indx_MASK 0x00010000L
+#define SXIFCCG_DEBUG_REG0__sx_pending_rd_state_var_indx 0x00010000L
+#define SXIFCCG_DEBUG_REG0__ALWAYS_ZERO0_MASK 0x00060000L
+#define SXIFCCG_DEBUG_REG0__sx_pending_rd_req_mask_MASK 0x00780000L
+#define SXIFCCG_DEBUG_REG0__sx_pending_rd_pci_MASK 0x3f800000L
+#define SXIFCCG_DEBUG_REG0__sx_pending_rd_aux_inc_MASK 0x40000000L
+#define SXIFCCG_DEBUG_REG0__sx_pending_rd_aux_inc 0x40000000L
+#define SXIFCCG_DEBUG_REG0__sx_pending_rd_aux_sel_MASK 0x80000000L
+#define SXIFCCG_DEBUG_REG0__sx_pending_rd_aux_sel 0x80000000L
+
+// SXIFCCG_DEBUG_REG1
+#define SXIFCCG_DEBUG_REG1__ALWAYS_ZERO3_MASK 0x00000003L
+#define SXIFCCG_DEBUG_REG1__sx_to_pa_empty_MASK 0x0000000cL
+#define SXIFCCG_DEBUG_REG1__available_positions_MASK 0x00000070L
+#define SXIFCCG_DEBUG_REG1__ALWAYS_ZERO2_MASK 0x00000780L
+#define SXIFCCG_DEBUG_REG1__sx_pending_advance_MASK 0x00000800L
+#define SXIFCCG_DEBUG_REG1__sx_pending_advance 0x00000800L
+#define SXIFCCG_DEBUG_REG1__sx_receive_indx_MASK 0x00007000L
+#define SXIFCCG_DEBUG_REG1__statevar_bits_sxpa_aux_vector_MASK 0x00008000L
+#define SXIFCCG_DEBUG_REG1__statevar_bits_sxpa_aux_vector 0x00008000L
+#define SXIFCCG_DEBUG_REG1__ALWAYS_ZERO1_MASK 0x000f0000L
+#define SXIFCCG_DEBUG_REG1__aux_sel_MASK 0x00100000L
+#define SXIFCCG_DEBUG_REG1__aux_sel 0x00100000L
+#define SXIFCCG_DEBUG_REG1__ALWAYS_ZERO0_MASK 0x00600000L
+#define SXIFCCG_DEBUG_REG1__pasx_req_cnt_MASK 0x01800000L
+#define SXIFCCG_DEBUG_REG1__param_cache_base_MASK 0xfe000000L
+
+// SXIFCCG_DEBUG_REG2
+#define SXIFCCG_DEBUG_REG2__sx_sent_MASK 0x00000001L
+#define SXIFCCG_DEBUG_REG2__sx_sent 0x00000001L
+#define SXIFCCG_DEBUG_REG2__ALWAYS_ZERO3_MASK 0x00000002L
+#define SXIFCCG_DEBUG_REG2__ALWAYS_ZERO3 0x00000002L
+#define SXIFCCG_DEBUG_REG2__sx_aux_MASK 0x00000004L
+#define SXIFCCG_DEBUG_REG2__sx_aux 0x00000004L
+#define SXIFCCG_DEBUG_REG2__sx_request_indx_MASK 0x000001f8L
+#define SXIFCCG_DEBUG_REG2__req_active_verts_MASK 0x0000fe00L
+#define SXIFCCG_DEBUG_REG2__ALWAYS_ZERO2_MASK 0x00010000L
+#define SXIFCCG_DEBUG_REG2__ALWAYS_ZERO2 0x00010000L
+#define SXIFCCG_DEBUG_REG2__vgt_to_ccgen_state_var_indx_MASK 0x00020000L
+#define SXIFCCG_DEBUG_REG2__vgt_to_ccgen_state_var_indx 0x00020000L
+#define SXIFCCG_DEBUG_REG2__ALWAYS_ZERO1_MASK 0x000c0000L
+#define SXIFCCG_DEBUG_REG2__vgt_to_ccgen_active_verts_MASK 0x00300000L
+#define SXIFCCG_DEBUG_REG2__ALWAYS_ZERO0_MASK 0x03c00000L
+#define SXIFCCG_DEBUG_REG2__req_active_verts_loaded_MASK 0x04000000L
+#define SXIFCCG_DEBUG_REG2__req_active_verts_loaded 0x04000000L
+#define SXIFCCG_DEBUG_REG2__sx_pending_fifo_empty_MASK 0x08000000L
+#define SXIFCCG_DEBUG_REG2__sx_pending_fifo_empty 0x08000000L
+#define SXIFCCG_DEBUG_REG2__sx_pending_fifo_full_MASK 0x10000000L
+#define SXIFCCG_DEBUG_REG2__sx_pending_fifo_full 0x10000000L
+#define SXIFCCG_DEBUG_REG2__sx_pending_fifo_contents_MASK 0xe0000000L
+
+// SXIFCCG_DEBUG_REG3
+#define SXIFCCG_DEBUG_REG3__vertex_fifo_entriesavailable_MASK 0x0000000fL
+#define SXIFCCG_DEBUG_REG3__ALWAYS_ZERO3_MASK 0x00000010L
+#define SXIFCCG_DEBUG_REG3__ALWAYS_ZERO3 0x00000010L
+#define SXIFCCG_DEBUG_REG3__available_positions_MASK 0x000000e0L
+#define SXIFCCG_DEBUG_REG3__ALWAYS_ZERO2_MASK 0x00000f00L
+#define SXIFCCG_DEBUG_REG3__current_state_MASK 0x00003000L
+#define SXIFCCG_DEBUG_REG3__vertex_fifo_empty_MASK 0x00004000L
+#define SXIFCCG_DEBUG_REG3__vertex_fifo_empty 0x00004000L
+#define SXIFCCG_DEBUG_REG3__vertex_fifo_full_MASK 0x00008000L
+#define SXIFCCG_DEBUG_REG3__vertex_fifo_full 0x00008000L
+#define SXIFCCG_DEBUG_REG3__ALWAYS_ZERO1_MASK 0x00030000L
+#define SXIFCCG_DEBUG_REG3__sx0_receive_fifo_empty_MASK 0x00040000L
+#define SXIFCCG_DEBUG_REG3__sx0_receive_fifo_empty 0x00040000L
+#define SXIFCCG_DEBUG_REG3__sx0_receive_fifo_full_MASK 0x00080000L
+#define SXIFCCG_DEBUG_REG3__sx0_receive_fifo_full 0x00080000L
+#define SXIFCCG_DEBUG_REG3__vgt_to_ccgen_fifo_empty_MASK 0x00100000L
+#define SXIFCCG_DEBUG_REG3__vgt_to_ccgen_fifo_empty 0x00100000L
+#define SXIFCCG_DEBUG_REG3__vgt_to_ccgen_fifo_full_MASK 0x00200000L
+#define SXIFCCG_DEBUG_REG3__vgt_to_ccgen_fifo_full 0x00200000L
+#define SXIFCCG_DEBUG_REG3__ALWAYS_ZERO0_MASK 0xffc00000L
+
+// SETUP_DEBUG_REG0
+#define SETUP_DEBUG_REG0__su_cntl_state_MASK 0x0000001fL
+#define SETUP_DEBUG_REG0__pmode_state_MASK 0x000007e0L
+#define SETUP_DEBUG_REG0__ge_stallb_MASK 0x00000800L
+#define SETUP_DEBUG_REG0__ge_stallb 0x00000800L
+#define SETUP_DEBUG_REG0__geom_enable_MASK 0x00001000L
+#define SETUP_DEBUG_REG0__geom_enable 0x00001000L
+#define SETUP_DEBUG_REG0__su_clip_baryc_rtr_MASK 0x00002000L
+#define SETUP_DEBUG_REG0__su_clip_baryc_rtr 0x00002000L
+#define SETUP_DEBUG_REG0__su_clip_rtr_MASK 0x00004000L
+#define SETUP_DEBUG_REG0__su_clip_rtr 0x00004000L
+#define SETUP_DEBUG_REG0__pfifo_busy_MASK 0x00008000L
+#define SETUP_DEBUG_REG0__pfifo_busy 0x00008000L
+#define SETUP_DEBUG_REG0__su_cntl_busy_MASK 0x00010000L
+#define SETUP_DEBUG_REG0__su_cntl_busy 0x00010000L
+#define SETUP_DEBUG_REG0__geom_busy_MASK 0x00020000L
+#define SETUP_DEBUG_REG0__geom_busy 0x00020000L
+
+// SETUP_DEBUG_REG1
+#define SETUP_DEBUG_REG1__y_sort0_gated_17_4_MASK 0x00003fffL
+#define SETUP_DEBUG_REG1__x_sort0_gated_17_4_MASK 0x0fffc000L
+
+// SETUP_DEBUG_REG2
+#define SETUP_DEBUG_REG2__y_sort1_gated_17_4_MASK 0x00003fffL
+#define SETUP_DEBUG_REG2__x_sort1_gated_17_4_MASK 0x0fffc000L
+
+// SETUP_DEBUG_REG3
+#define SETUP_DEBUG_REG3__y_sort2_gated_17_4_MASK 0x00003fffL
+#define SETUP_DEBUG_REG3__x_sort2_gated_17_4_MASK 0x0fffc000L
+
+// SETUP_DEBUG_REG4
+#define SETUP_DEBUG_REG4__attr_indx_sort0_gated_MASK 0x000007ffL
+#define SETUP_DEBUG_REG4__null_prim_gated_MASK 0x00000800L
+#define SETUP_DEBUG_REG4__null_prim_gated 0x00000800L
+#define SETUP_DEBUG_REG4__backfacing_gated_MASK 0x00001000L
+#define SETUP_DEBUG_REG4__backfacing_gated 0x00001000L
+#define SETUP_DEBUG_REG4__st_indx_gated_MASK 0x0000e000L
+#define SETUP_DEBUG_REG4__clipped_gated_MASK 0x00010000L
+#define SETUP_DEBUG_REG4__clipped_gated 0x00010000L
+#define SETUP_DEBUG_REG4__dealloc_slot_gated_MASK 0x000e0000L
+#define SETUP_DEBUG_REG4__xmajor_gated_MASK 0x00100000L
+#define SETUP_DEBUG_REG4__xmajor_gated 0x00100000L
+#define SETUP_DEBUG_REG4__diamond_rule_gated_MASK 0x00600000L
+#define SETUP_DEBUG_REG4__type_gated_MASK 0x03800000L
+#define SETUP_DEBUG_REG4__fpov_gated_MASK 0x04000000L
+#define SETUP_DEBUG_REG4__fpov_gated 0x04000000L
+#define SETUP_DEBUG_REG4__pmode_prim_gated_MASK 0x08000000L
+#define SETUP_DEBUG_REG4__pmode_prim_gated 0x08000000L
+#define SETUP_DEBUG_REG4__event_gated_MASK 0x10000000L
+#define SETUP_DEBUG_REG4__event_gated 0x10000000L
+#define SETUP_DEBUG_REG4__eop_gated_MASK 0x20000000L
+#define SETUP_DEBUG_REG4__eop_gated 0x20000000L
+
+// SETUP_DEBUG_REG5
+#define SETUP_DEBUG_REG5__attr_indx_sort2_gated_MASK 0x000007ffL
+#define SETUP_DEBUG_REG5__attr_indx_sort1_gated_MASK 0x003ff800L
+#define SETUP_DEBUG_REG5__provoking_vtx_gated_MASK 0x00c00000L
+#define SETUP_DEBUG_REG5__event_id_gated_MASK 0x1f000000L
+
+// PA_SC_DEBUG_CNTL
+#define PA_SC_DEBUG_CNTL__SC_DEBUG_INDX_MASK 0x0000001fL
+
+// PA_SC_DEBUG_DATA
+#define PA_SC_DEBUG_DATA__DATA_MASK 0xffffffffL
+
+// SC_DEBUG_0
+#define SC_DEBUG_0__pa_freeze_b1_MASK 0x00000001L
+#define SC_DEBUG_0__pa_freeze_b1 0x00000001L
+#define SC_DEBUG_0__pa_sc_valid_MASK 0x00000002L
+#define SC_DEBUG_0__pa_sc_valid 0x00000002L
+#define SC_DEBUG_0__pa_sc_phase_MASK 0x0000001cL
+#define SC_DEBUG_0__cntx_cnt_MASK 0x00000fe0L
+#define SC_DEBUG_0__decr_cntx_cnt_MASK 0x00001000L
+#define SC_DEBUG_0__decr_cntx_cnt 0x00001000L
+#define SC_DEBUG_0__incr_cntx_cnt_MASK 0x00002000L
+#define SC_DEBUG_0__incr_cntx_cnt 0x00002000L
+#define SC_DEBUG_0__trigger_MASK 0x80000000L
+#define SC_DEBUG_0__trigger 0x80000000L
+
+// SC_DEBUG_1
+#define SC_DEBUG_1__em_state_MASK 0x00000007L
+#define SC_DEBUG_1__em1_data_ready_MASK 0x00000008L
+#define SC_DEBUG_1__em1_data_ready 0x00000008L
+#define SC_DEBUG_1__em2_data_ready_MASK 0x00000010L
+#define SC_DEBUG_1__em2_data_ready 0x00000010L
+#define SC_DEBUG_1__move_em1_to_em2_MASK 0x00000020L
+#define SC_DEBUG_1__move_em1_to_em2 0x00000020L
+#define SC_DEBUG_1__ef_data_ready_MASK 0x00000040L
+#define SC_DEBUG_1__ef_data_ready 0x00000040L
+#define SC_DEBUG_1__ef_state_MASK 0x00000180L
+#define SC_DEBUG_1__pipe_valid_MASK 0x00000200L
+#define SC_DEBUG_1__pipe_valid 0x00000200L
+#define SC_DEBUG_1__trigger_MASK 0x80000000L
+#define SC_DEBUG_1__trigger 0x80000000L
+
+// SC_DEBUG_2
+#define SC_DEBUG_2__rc_rtr_dly_MASK 0x00000001L
+#define SC_DEBUG_2__rc_rtr_dly 0x00000001L
+#define SC_DEBUG_2__qmask_ff_alm_full_d1_MASK 0x00000002L
+#define SC_DEBUG_2__qmask_ff_alm_full_d1 0x00000002L
+#define SC_DEBUG_2__pipe_freeze_b_MASK 0x00000008L
+#define SC_DEBUG_2__pipe_freeze_b 0x00000008L
+#define SC_DEBUG_2__prim_rts_MASK 0x00000010L
+#define SC_DEBUG_2__prim_rts 0x00000010L
+#define SC_DEBUG_2__next_prim_rts_dly_MASK 0x00000020L
+#define SC_DEBUG_2__next_prim_rts_dly 0x00000020L
+#define SC_DEBUG_2__next_prim_rtr_dly_MASK 0x00000040L
+#define SC_DEBUG_2__next_prim_rtr_dly 0x00000040L
+#define SC_DEBUG_2__pre_stage1_rts_d1_MASK 0x00000080L
+#define SC_DEBUG_2__pre_stage1_rts_d1 0x00000080L
+#define SC_DEBUG_2__stage0_rts_MASK 0x00000100L
+#define SC_DEBUG_2__stage0_rts 0x00000100L
+#define SC_DEBUG_2__phase_rts_dly_MASK 0x00000200L
+#define SC_DEBUG_2__phase_rts_dly 0x00000200L
+#define SC_DEBUG_2__end_of_prim_s1_dly_MASK 0x00008000L
+#define SC_DEBUG_2__end_of_prim_s1_dly 0x00008000L
+#define SC_DEBUG_2__pass_empty_prim_s1_MASK 0x00010000L
+#define SC_DEBUG_2__pass_empty_prim_s1 0x00010000L
+#define SC_DEBUG_2__event_id_s1_MASK 0x003e0000L
+#define SC_DEBUG_2__event_s1_MASK 0x00400000L
+#define SC_DEBUG_2__event_s1 0x00400000L
+#define SC_DEBUG_2__trigger_MASK 0x80000000L
+#define SC_DEBUG_2__trigger 0x80000000L
+
+// SC_DEBUG_3
+#define SC_DEBUG_3__x_curr_s1_MASK 0x000007ffL
+#define SC_DEBUG_3__y_curr_s1_MASK 0x003ff800L
+#define SC_DEBUG_3__trigger_MASK 0x80000000L
+#define SC_DEBUG_3__trigger 0x80000000L
+
+// SC_DEBUG_4
+#define SC_DEBUG_4__y_end_s1_MASK 0x00003fffL
+#define SC_DEBUG_4__y_start_s1_MASK 0x0fffc000L
+#define SC_DEBUG_4__y_dir_s1_MASK 0x10000000L
+#define SC_DEBUG_4__y_dir_s1 0x10000000L
+#define SC_DEBUG_4__trigger_MASK 0x80000000L
+#define SC_DEBUG_4__trigger 0x80000000L
+
+// SC_DEBUG_5
+#define SC_DEBUG_5__x_end_s1_MASK 0x00003fffL
+#define SC_DEBUG_5__x_start_s1_MASK 0x0fffc000L
+#define SC_DEBUG_5__x_dir_s1_MASK 0x10000000L
+#define SC_DEBUG_5__x_dir_s1 0x10000000L
+#define SC_DEBUG_5__trigger_MASK 0x80000000L
+#define SC_DEBUG_5__trigger 0x80000000L
+
+// SC_DEBUG_6
+#define SC_DEBUG_6__z_ff_empty_MASK 0x00000001L
+#define SC_DEBUG_6__z_ff_empty 0x00000001L
+#define SC_DEBUG_6__qmcntl_ff_empty_MASK 0x00000002L
+#define SC_DEBUG_6__qmcntl_ff_empty 0x00000002L
+#define SC_DEBUG_6__xy_ff_empty_MASK 0x00000004L
+#define SC_DEBUG_6__xy_ff_empty 0x00000004L
+#define SC_DEBUG_6__event_flag_MASK 0x00000008L
+#define SC_DEBUG_6__event_flag 0x00000008L
+#define SC_DEBUG_6__z_mask_needed_MASK 0x00000010L
+#define SC_DEBUG_6__z_mask_needed 0x00000010L
+#define SC_DEBUG_6__state_MASK 0x000000e0L
+#define SC_DEBUG_6__state_delayed_MASK 0x00000700L
+#define SC_DEBUG_6__data_valid_MASK 0x00000800L
+#define SC_DEBUG_6__data_valid 0x00000800L
+#define SC_DEBUG_6__data_valid_d_MASK 0x00001000L
+#define SC_DEBUG_6__data_valid_d 0x00001000L
+#define SC_DEBUG_6__tilex_delayed_MASK 0x003fe000L
+#define SC_DEBUG_6__tiley_delayed_MASK 0x7fc00000L
+#define SC_DEBUG_6__trigger_MASK 0x80000000L
+#define SC_DEBUG_6__trigger 0x80000000L
+
+// SC_DEBUG_7
+#define SC_DEBUG_7__event_flag_MASK 0x00000001L
+#define SC_DEBUG_7__event_flag 0x00000001L
+#define SC_DEBUG_7__deallocate_MASK 0x0000000eL
+#define SC_DEBUG_7__fposition_MASK 0x00000010L
+#define SC_DEBUG_7__fposition 0x00000010L
+#define SC_DEBUG_7__sr_prim_we_MASK 0x00000020L
+#define SC_DEBUG_7__sr_prim_we 0x00000020L
+#define SC_DEBUG_7__last_tile_MASK 0x00000040L
+#define SC_DEBUG_7__last_tile 0x00000040L
+#define SC_DEBUG_7__tile_ff_we_MASK 0x00000080L
+#define SC_DEBUG_7__tile_ff_we 0x00000080L
+#define SC_DEBUG_7__qs_data_valid_MASK 0x00000100L
+#define SC_DEBUG_7__qs_data_valid 0x00000100L
+#define SC_DEBUG_7__qs_q0_y_MASK 0x00000600L
+#define SC_DEBUG_7__qs_q0_x_MASK 0x00001800L
+#define SC_DEBUG_7__qs_q0_valid_MASK 0x00002000L
+#define SC_DEBUG_7__qs_q0_valid 0x00002000L
+#define SC_DEBUG_7__prim_ff_we_MASK 0x00004000L
+#define SC_DEBUG_7__prim_ff_we 0x00004000L
+#define SC_DEBUG_7__tile_ff_re_MASK 0x00008000L
+#define SC_DEBUG_7__tile_ff_re 0x00008000L
+#define SC_DEBUG_7__fw_prim_data_valid_MASK 0x00010000L
+#define SC_DEBUG_7__fw_prim_data_valid 0x00010000L
+#define SC_DEBUG_7__last_quad_of_tile_MASK 0x00020000L
+#define SC_DEBUG_7__last_quad_of_tile 0x00020000L
+#define SC_DEBUG_7__first_quad_of_tile_MASK 0x00040000L
+#define SC_DEBUG_7__first_quad_of_tile 0x00040000L
+#define SC_DEBUG_7__first_quad_of_prim_MASK 0x00080000L
+#define SC_DEBUG_7__first_quad_of_prim 0x00080000L
+#define SC_DEBUG_7__new_prim_MASK 0x00100000L
+#define SC_DEBUG_7__new_prim 0x00100000L
+#define SC_DEBUG_7__load_new_tile_data_MASK 0x00200000L
+#define SC_DEBUG_7__load_new_tile_data 0x00200000L
+#define SC_DEBUG_7__state_MASK 0x00c00000L
+#define SC_DEBUG_7__fifos_ready_MASK 0x01000000L
+#define SC_DEBUG_7__fifos_ready 0x01000000L
+#define SC_DEBUG_7__trigger_MASK 0x80000000L
+#define SC_DEBUG_7__trigger 0x80000000L
+
+// SC_DEBUG_8
+#define SC_DEBUG_8__sample_last_MASK 0x00000001L
+#define SC_DEBUG_8__sample_last 0x00000001L
+#define SC_DEBUG_8__sample_mask_MASK 0x0000001eL
+#define SC_DEBUG_8__sample_y_MASK 0x00000060L
+#define SC_DEBUG_8__sample_x_MASK 0x00000180L
+#define SC_DEBUG_8__sample_send_MASK 0x00000200L
+#define SC_DEBUG_8__sample_send 0x00000200L
+#define SC_DEBUG_8__next_cycle_MASK 0x00000c00L
+#define SC_DEBUG_8__ez_sample_ff_full_MASK 0x00001000L
+#define SC_DEBUG_8__ez_sample_ff_full 0x00001000L
+#define SC_DEBUG_8__rb_sc_samp_rtr_MASK 0x00002000L
+#define SC_DEBUG_8__rb_sc_samp_rtr 0x00002000L
+#define SC_DEBUG_8__num_samples_MASK 0x0000c000L
+#define SC_DEBUG_8__last_quad_of_tile_MASK 0x00010000L
+#define SC_DEBUG_8__last_quad_of_tile 0x00010000L
+#define SC_DEBUG_8__last_quad_of_prim_MASK 0x00020000L
+#define SC_DEBUG_8__last_quad_of_prim 0x00020000L
+#define SC_DEBUG_8__first_quad_of_prim_MASK 0x00040000L
+#define SC_DEBUG_8__first_quad_of_prim 0x00040000L
+#define SC_DEBUG_8__sample_we_MASK 0x00080000L
+#define SC_DEBUG_8__sample_we 0x00080000L
+#define SC_DEBUG_8__fposition_MASK 0x00100000L
+#define SC_DEBUG_8__fposition 0x00100000L
+#define SC_DEBUG_8__event_id_MASK 0x03e00000L
+#define SC_DEBUG_8__event_flag_MASK 0x04000000L
+#define SC_DEBUG_8__event_flag 0x04000000L
+#define SC_DEBUG_8__fw_prim_data_valid_MASK 0x08000000L
+#define SC_DEBUG_8__fw_prim_data_valid 0x08000000L
+#define SC_DEBUG_8__trigger_MASK 0x80000000L
+#define SC_DEBUG_8__trigger 0x80000000L
+
+// SC_DEBUG_9
+#define SC_DEBUG_9__rb_sc_send_MASK 0x00000001L
+#define SC_DEBUG_9__rb_sc_send 0x00000001L
+#define SC_DEBUG_9__rb_sc_ez_mask_MASK 0x0000001eL
+#define SC_DEBUG_9__fifo_data_ready_MASK 0x00000020L
+#define SC_DEBUG_9__fifo_data_ready 0x00000020L
+#define SC_DEBUG_9__early_z_enable_MASK 0x00000040L
+#define SC_DEBUG_9__early_z_enable 0x00000040L
+#define SC_DEBUG_9__mask_state_MASK 0x00000180L
+#define SC_DEBUG_9__next_ez_mask_MASK 0x01fffe00L
+#define SC_DEBUG_9__mask_ready_MASK 0x02000000L
+#define SC_DEBUG_9__mask_ready 0x02000000L
+#define SC_DEBUG_9__drop_sample_MASK 0x04000000L
+#define SC_DEBUG_9__drop_sample 0x04000000L
+#define SC_DEBUG_9__fetch_new_sample_data_MASK 0x08000000L
+#define SC_DEBUG_9__fetch_new_sample_data 0x08000000L
+#define SC_DEBUG_9__fetch_new_ez_sample_mask_MASK 0x10000000L
+#define SC_DEBUG_9__fetch_new_ez_sample_mask 0x10000000L
+#define SC_DEBUG_9__pkr_fetch_new_sample_data_MASK 0x20000000L
+#define SC_DEBUG_9__pkr_fetch_new_sample_data 0x20000000L
+#define SC_DEBUG_9__pkr_fetch_new_prim_data_MASK 0x40000000L
+#define SC_DEBUG_9__pkr_fetch_new_prim_data 0x40000000L
+#define SC_DEBUG_9__trigger_MASK 0x80000000L
+#define SC_DEBUG_9__trigger 0x80000000L
+
+// SC_DEBUG_10
+#define SC_DEBUG_10__combined_sample_mask_MASK 0x0000ffffL
+#define SC_DEBUG_10__trigger_MASK 0x80000000L
+#define SC_DEBUG_10__trigger 0x80000000L
+
+// SC_DEBUG_11
+#define SC_DEBUG_11__ez_sample_data_ready_MASK 0x00000001L
+#define SC_DEBUG_11__ez_sample_data_ready 0x00000001L
+#define SC_DEBUG_11__pkr_fetch_new_sample_data_MASK 0x00000002L
+#define SC_DEBUG_11__pkr_fetch_new_sample_data 0x00000002L
+#define SC_DEBUG_11__ez_prim_data_ready_MASK 0x00000004L
+#define SC_DEBUG_11__ez_prim_data_ready 0x00000004L
+#define SC_DEBUG_11__pkr_fetch_new_prim_data_MASK 0x00000008L
+#define SC_DEBUG_11__pkr_fetch_new_prim_data 0x00000008L
+#define SC_DEBUG_11__iterator_input_fz_MASK 0x00000010L
+#define SC_DEBUG_11__iterator_input_fz 0x00000010L
+#define SC_DEBUG_11__packer_send_quads_MASK 0x00000020L
+#define SC_DEBUG_11__packer_send_quads 0x00000020L
+#define SC_DEBUG_11__packer_send_cmd_MASK 0x00000040L
+#define SC_DEBUG_11__packer_send_cmd 0x00000040L
+#define SC_DEBUG_11__packer_send_event_MASK 0x00000080L
+#define SC_DEBUG_11__packer_send_event 0x00000080L
+#define SC_DEBUG_11__next_state_MASK 0x00000700L
+#define SC_DEBUG_11__state_MASK 0x00003800L
+#define SC_DEBUG_11__stall_MASK 0x00004000L
+#define SC_DEBUG_11__stall 0x00004000L
+#define SC_DEBUG_11__trigger_MASK 0x80000000L
+#define SC_DEBUG_11__trigger 0x80000000L
+
+// SC_DEBUG_12
+#define SC_DEBUG_12__SQ_iterator_free_buff_MASK 0x00000001L
+#define SC_DEBUG_12__SQ_iterator_free_buff 0x00000001L
+#define SC_DEBUG_12__event_id_MASK 0x0000003eL
+#define SC_DEBUG_12__event_flag_MASK 0x00000040L
+#define SC_DEBUG_12__event_flag 0x00000040L
+#define SC_DEBUG_12__itercmdfifo_busy_nc_dly_MASK 0x00000080L
+#define SC_DEBUG_12__itercmdfifo_busy_nc_dly 0x00000080L
+#define SC_DEBUG_12__itercmdfifo_full_MASK 0x00000100L
+#define SC_DEBUG_12__itercmdfifo_full 0x00000100L
+#define SC_DEBUG_12__itercmdfifo_empty_MASK 0x00000200L
+#define SC_DEBUG_12__itercmdfifo_empty 0x00000200L
+#define SC_DEBUG_12__iter_ds_one_clk_command_MASK 0x00000400L
+#define SC_DEBUG_12__iter_ds_one_clk_command 0x00000400L
+#define SC_DEBUG_12__iter_ds_end_of_prim0_MASK 0x00000800L
+#define SC_DEBUG_12__iter_ds_end_of_prim0 0x00000800L
+#define SC_DEBUG_12__iter_ds_end_of_vector_MASK 0x00001000L
+#define SC_DEBUG_12__iter_ds_end_of_vector 0x00001000L
+#define SC_DEBUG_12__iter_qdhit0_MASK 0x00002000L
+#define SC_DEBUG_12__iter_qdhit0 0x00002000L
+#define SC_DEBUG_12__bc_use_centers_reg_MASK 0x00004000L
+#define SC_DEBUG_12__bc_use_centers_reg 0x00004000L
+#define SC_DEBUG_12__bc_output_xy_reg_MASK 0x00008000L
+#define SC_DEBUG_12__bc_output_xy_reg 0x00008000L
+#define SC_DEBUG_12__iter_phase_out_MASK 0x00030000L
+#define SC_DEBUG_12__iter_phase_reg_MASK 0x000c0000L
+#define SC_DEBUG_12__iterator_SP_valid_MASK 0x00100000L
+#define SC_DEBUG_12__iterator_SP_valid 0x00100000L
+#define SC_DEBUG_12__eopv_reg_MASK 0x00200000L
+#define SC_DEBUG_12__eopv_reg 0x00200000L
+#define SC_DEBUG_12__one_clk_cmd_reg_MASK 0x00400000L
+#define SC_DEBUG_12__one_clk_cmd_reg 0x00400000L
+#define SC_DEBUG_12__iter_dx_end_of_prim_MASK 0x00800000L
+#define SC_DEBUG_12__iter_dx_end_of_prim 0x00800000L
+#define SC_DEBUG_12__trigger_MASK 0x80000000L
+#define SC_DEBUG_12__trigger 0x80000000L
+
+// GFX_COPY_STATE
+#define GFX_COPY_STATE__SRC_STATE_ID_MASK 0x00000001L
+#define GFX_COPY_STATE__SRC_STATE_ID 0x00000001L
+
+// VGT_DRAW_INITIATOR
+#define VGT_DRAW_INITIATOR__PRIM_TYPE_MASK 0x0000003fL
+#define VGT_DRAW_INITIATOR__SOURCE_SELECT_MASK 0x000000c0L
+#define VGT_DRAW_INITIATOR__FACENESS_CULL_SELECT_MASK 0x00000300L
+#define VGT_DRAW_INITIATOR__INDEX_SIZE_MASK 0x00000800L
+#define VGT_DRAW_INITIATOR__INDEX_SIZE 0x00000800L
+#define VGT_DRAW_INITIATOR__NOT_EOP_MASK 0x00001000L
+#define VGT_DRAW_INITIATOR__NOT_EOP 0x00001000L
+#define VGT_DRAW_INITIATOR__SMALL_INDEX_MASK 0x00002000L
+#define VGT_DRAW_INITIATOR__SMALL_INDEX 0x00002000L
+#define VGT_DRAW_INITIATOR__PRE_FETCH_CULL_ENABLE_MASK 0x00004000L
+#define VGT_DRAW_INITIATOR__PRE_FETCH_CULL_ENABLE 0x00004000L
+#define VGT_DRAW_INITIATOR__GRP_CULL_ENABLE_MASK 0x00008000L
+#define VGT_DRAW_INITIATOR__GRP_CULL_ENABLE 0x00008000L
+#define VGT_DRAW_INITIATOR__NUM_INDICES_MASK 0xffff0000L
+
+// VGT_EVENT_INITIATOR
+#define VGT_EVENT_INITIATOR__EVENT_TYPE_MASK 0x0000003fL
+
+// VGT_DMA_BASE
+#define VGT_DMA_BASE__BASE_ADDR_MASK 0xffffffffL
+
+// VGT_DMA_SIZE
+#define VGT_DMA_SIZE__NUM_WORDS_MASK 0x00ffffffL
+#define VGT_DMA_SIZE__SWAP_MODE_MASK 0xc0000000L
+
+// VGT_BIN_BASE
+#define VGT_BIN_BASE__BIN_BASE_ADDR_MASK 0xffffffffL
+
+// VGT_BIN_SIZE
+#define VGT_BIN_SIZE__NUM_WORDS_MASK 0x00ffffffL
+#define VGT_BIN_SIZE__FACENESS_FETCH_MASK 0x40000000L
+#define VGT_BIN_SIZE__FACENESS_FETCH 0x40000000L
+#define VGT_BIN_SIZE__FACENESS_RESET_MASK 0x80000000L
+#define VGT_BIN_SIZE__FACENESS_RESET 0x80000000L
+
+// VGT_CURRENT_BIN_ID_MIN
+#define VGT_CURRENT_BIN_ID_MIN__COLUMN_MASK 0x00000007L
+#define VGT_CURRENT_BIN_ID_MIN__ROW_MASK 0x00000038L
+#define VGT_CURRENT_BIN_ID_MIN__GUARD_BAND_MASK 0x000001c0L
+
+// VGT_CURRENT_BIN_ID_MAX
+#define VGT_CURRENT_BIN_ID_MAX__COLUMN_MASK 0x00000007L
+#define VGT_CURRENT_BIN_ID_MAX__ROW_MASK 0x00000038L
+#define VGT_CURRENT_BIN_ID_MAX__GUARD_BAND_MASK 0x000001c0L
+
+// VGT_IMMED_DATA
+#define VGT_IMMED_DATA__DATA_MASK 0xffffffffL
+
+// VGT_MAX_VTX_INDX
+#define VGT_MAX_VTX_INDX__MAX_INDX_MASK 0x00ffffffL
+
+// VGT_MIN_VTX_INDX
+#define VGT_MIN_VTX_INDX__MIN_INDX_MASK 0x00ffffffL
+
+// VGT_INDX_OFFSET
+#define VGT_INDX_OFFSET__INDX_OFFSET_MASK 0x00ffffffL
+
+// VGT_VERTEX_REUSE_BLOCK_CNTL
+#define VGT_VERTEX_REUSE_BLOCK_CNTL__VTX_REUSE_DEPTH_MASK 0x00000007L
+
+// VGT_OUT_DEALLOC_CNTL
+#define VGT_OUT_DEALLOC_CNTL__DEALLOC_DIST_MASK 0x00000003L
+
+// VGT_MULTI_PRIM_IB_RESET_INDX
+#define VGT_MULTI_PRIM_IB_RESET_INDX__RESET_INDX_MASK 0x00ffffffL
+
+// VGT_ENHANCE
+#define VGT_ENHANCE__MISC_MASK 0x0000ffffL
+
+// VGT_VTX_VECT_EJECT_REG
+#define VGT_VTX_VECT_EJECT_REG__PRIM_COUNT_MASK 0x0000001fL
+
+// VGT_LAST_COPY_STATE
+#define VGT_LAST_COPY_STATE__SRC_STATE_ID_MASK 0x00000001L
+#define VGT_LAST_COPY_STATE__SRC_STATE_ID 0x00000001L
+#define VGT_LAST_COPY_STATE__DST_STATE_ID_MASK 0x00010000L
+#define VGT_LAST_COPY_STATE__DST_STATE_ID 0x00010000L
+
+// VGT_DEBUG_CNTL
+#define VGT_DEBUG_CNTL__VGT_DEBUG_INDX_MASK 0x0000001fL
+
+// VGT_DEBUG_DATA
+#define VGT_DEBUG_DATA__DATA_MASK 0xffffffffL
+
+// VGT_CNTL_STATUS
+#define VGT_CNTL_STATUS__VGT_BUSY_MASK 0x00000001L
+#define VGT_CNTL_STATUS__VGT_BUSY 0x00000001L
+#define VGT_CNTL_STATUS__VGT_DMA_BUSY_MASK 0x00000002L
+#define VGT_CNTL_STATUS__VGT_DMA_BUSY 0x00000002L
+#define VGT_CNTL_STATUS__VGT_DMA_REQ_BUSY_MASK 0x00000004L
+#define VGT_CNTL_STATUS__VGT_DMA_REQ_BUSY 0x00000004L
+#define VGT_CNTL_STATUS__VGT_GRP_BUSY_MASK 0x00000008L
+#define VGT_CNTL_STATUS__VGT_GRP_BUSY 0x00000008L
+#define VGT_CNTL_STATUS__VGT_VR_BUSY_MASK 0x00000010L
+#define VGT_CNTL_STATUS__VGT_VR_BUSY 0x00000010L
+#define VGT_CNTL_STATUS__VGT_BIN_BUSY_MASK 0x00000020L
+#define VGT_CNTL_STATUS__VGT_BIN_BUSY 0x00000020L
+#define VGT_CNTL_STATUS__VGT_PT_BUSY_MASK 0x00000040L
+#define VGT_CNTL_STATUS__VGT_PT_BUSY 0x00000040L
+#define VGT_CNTL_STATUS__VGT_OUT_BUSY_MASK 0x00000080L
+#define VGT_CNTL_STATUS__VGT_OUT_BUSY 0x00000080L
+#define VGT_CNTL_STATUS__VGT_OUT_INDX_BUSY_MASK 0x00000100L
+#define VGT_CNTL_STATUS__VGT_OUT_INDX_BUSY 0x00000100L
+
+// VGT_DEBUG_REG0
+#define VGT_DEBUG_REG0__te_grp_busy_MASK 0x00000001L
+#define VGT_DEBUG_REG0__te_grp_busy 0x00000001L
+#define VGT_DEBUG_REG0__pt_grp_busy_MASK 0x00000002L
+#define VGT_DEBUG_REG0__pt_grp_busy 0x00000002L
+#define VGT_DEBUG_REG0__vr_grp_busy_MASK 0x00000004L
+#define VGT_DEBUG_REG0__vr_grp_busy 0x00000004L
+#define VGT_DEBUG_REG0__dma_request_busy_MASK 0x00000008L
+#define VGT_DEBUG_REG0__dma_request_busy 0x00000008L
+#define VGT_DEBUG_REG0__out_busy_MASK 0x00000010L
+#define VGT_DEBUG_REG0__out_busy 0x00000010L
+#define VGT_DEBUG_REG0__grp_backend_busy_MASK 0x00000020L
+#define VGT_DEBUG_REG0__grp_backend_busy 0x00000020L
+#define VGT_DEBUG_REG0__grp_busy_MASK 0x00000040L
+#define VGT_DEBUG_REG0__grp_busy 0x00000040L
+#define VGT_DEBUG_REG0__dma_busy_MASK 0x00000080L
+#define VGT_DEBUG_REG0__dma_busy 0x00000080L
+#define VGT_DEBUG_REG0__rbiu_dma_request_busy_MASK 0x00000100L
+#define VGT_DEBUG_REG0__rbiu_dma_request_busy 0x00000100L
+#define VGT_DEBUG_REG0__rbiu_busy_MASK 0x00000200L
+#define VGT_DEBUG_REG0__rbiu_busy 0x00000200L
+#define VGT_DEBUG_REG0__vgt_no_dma_busy_extended_MASK 0x00000400L
+#define VGT_DEBUG_REG0__vgt_no_dma_busy_extended 0x00000400L
+#define VGT_DEBUG_REG0__vgt_no_dma_busy_MASK 0x00000800L
+#define VGT_DEBUG_REG0__vgt_no_dma_busy 0x00000800L
+#define VGT_DEBUG_REG0__vgt_busy_extended_MASK 0x00001000L
+#define VGT_DEBUG_REG0__vgt_busy_extended 0x00001000L
+#define VGT_DEBUG_REG0__vgt_busy_MASK 0x00002000L
+#define VGT_DEBUG_REG0__vgt_busy 0x00002000L
+#define VGT_DEBUG_REG0__rbbm_skid_fifo_busy_out_MASK 0x00004000L
+#define VGT_DEBUG_REG0__rbbm_skid_fifo_busy_out 0x00004000L
+#define VGT_DEBUG_REG0__VGT_RBBM_no_dma_busy_MASK 0x00008000L
+#define VGT_DEBUG_REG0__VGT_RBBM_no_dma_busy 0x00008000L
+#define VGT_DEBUG_REG0__VGT_RBBM_busy_MASK 0x00010000L
+#define VGT_DEBUG_REG0__VGT_RBBM_busy 0x00010000L
+
+// VGT_DEBUG_REG1
+#define VGT_DEBUG_REG1__out_te_data_read_MASK 0x00000001L
+#define VGT_DEBUG_REG1__out_te_data_read 0x00000001L
+#define VGT_DEBUG_REG1__te_out_data_valid_MASK 0x00000002L
+#define VGT_DEBUG_REG1__te_out_data_valid 0x00000002L
+#define VGT_DEBUG_REG1__out_pt_prim_read_MASK 0x00000004L
+#define VGT_DEBUG_REG1__out_pt_prim_read 0x00000004L
+#define VGT_DEBUG_REG1__pt_out_prim_valid_MASK 0x00000008L
+#define VGT_DEBUG_REG1__pt_out_prim_valid 0x00000008L
+#define VGT_DEBUG_REG1__out_pt_data_read_MASK 0x00000010L
+#define VGT_DEBUG_REG1__out_pt_data_read 0x00000010L
+#define VGT_DEBUG_REG1__pt_out_indx_valid_MASK 0x00000020L
+#define VGT_DEBUG_REG1__pt_out_indx_valid 0x00000020L
+#define VGT_DEBUG_REG1__out_vr_prim_read_MASK 0x00000040L
+#define VGT_DEBUG_REG1__out_vr_prim_read 0x00000040L
+#define VGT_DEBUG_REG1__vr_out_prim_valid_MASK 0x00000080L
+#define VGT_DEBUG_REG1__vr_out_prim_valid 0x00000080L
+#define VGT_DEBUG_REG1__out_vr_indx_read_MASK 0x00000100L
+#define VGT_DEBUG_REG1__out_vr_indx_read 0x00000100L
+#define VGT_DEBUG_REG1__vr_out_indx_valid_MASK 0x00000200L
+#define VGT_DEBUG_REG1__vr_out_indx_valid 0x00000200L
+#define VGT_DEBUG_REG1__te_grp_read_MASK 0x00000400L
+#define VGT_DEBUG_REG1__te_grp_read 0x00000400L
+#define VGT_DEBUG_REG1__grp_te_valid_MASK 0x00000800L
+#define VGT_DEBUG_REG1__grp_te_valid 0x00000800L
+#define VGT_DEBUG_REG1__pt_grp_read_MASK 0x00001000L
+#define VGT_DEBUG_REG1__pt_grp_read 0x00001000L
+#define VGT_DEBUG_REG1__grp_pt_valid_MASK 0x00002000L
+#define VGT_DEBUG_REG1__grp_pt_valid 0x00002000L
+#define VGT_DEBUG_REG1__vr_grp_read_MASK 0x00004000L
+#define VGT_DEBUG_REG1__vr_grp_read 0x00004000L
+#define VGT_DEBUG_REG1__grp_vr_valid_MASK 0x00008000L
+#define VGT_DEBUG_REG1__grp_vr_valid 0x00008000L
+#define VGT_DEBUG_REG1__grp_dma_read_MASK 0x00010000L
+#define VGT_DEBUG_REG1__grp_dma_read 0x00010000L
+#define VGT_DEBUG_REG1__dma_grp_valid_MASK 0x00020000L
+#define VGT_DEBUG_REG1__dma_grp_valid 0x00020000L
+#define VGT_DEBUG_REG1__grp_rbiu_di_read_MASK 0x00040000L
+#define VGT_DEBUG_REG1__grp_rbiu_di_read 0x00040000L
+#define VGT_DEBUG_REG1__rbiu_grp_di_valid_MASK 0x00080000L
+#define VGT_DEBUG_REG1__rbiu_grp_di_valid 0x00080000L
+#define VGT_DEBUG_REG1__MH_VGT_rtr_MASK 0x00100000L
+#define VGT_DEBUG_REG1__MH_VGT_rtr 0x00100000L
+#define VGT_DEBUG_REG1__VGT_MH_send_MASK 0x00200000L
+#define VGT_DEBUG_REG1__VGT_MH_send 0x00200000L
+#define VGT_DEBUG_REG1__PA_VGT_clip_s_rtr_MASK 0x00400000L
+#define VGT_DEBUG_REG1__PA_VGT_clip_s_rtr 0x00400000L
+#define VGT_DEBUG_REG1__VGT_PA_clip_s_send_MASK 0x00800000L
+#define VGT_DEBUG_REG1__VGT_PA_clip_s_send 0x00800000L
+#define VGT_DEBUG_REG1__PA_VGT_clip_p_rtr_MASK 0x01000000L
+#define VGT_DEBUG_REG1__PA_VGT_clip_p_rtr 0x01000000L
+#define VGT_DEBUG_REG1__VGT_PA_clip_p_send_MASK 0x02000000L
+#define VGT_DEBUG_REG1__VGT_PA_clip_p_send 0x02000000L
+#define VGT_DEBUG_REG1__PA_VGT_clip_v_rtr_MASK 0x04000000L
+#define VGT_DEBUG_REG1__PA_VGT_clip_v_rtr 0x04000000L
+#define VGT_DEBUG_REG1__VGT_PA_clip_v_send_MASK 0x08000000L
+#define VGT_DEBUG_REG1__VGT_PA_clip_v_send 0x08000000L
+#define VGT_DEBUG_REG1__SQ_VGT_rtr_MASK 0x10000000L
+#define VGT_DEBUG_REG1__SQ_VGT_rtr 0x10000000L
+#define VGT_DEBUG_REG1__VGT_SQ_send_MASK 0x20000000L
+#define VGT_DEBUG_REG1__VGT_SQ_send 0x20000000L
+#define VGT_DEBUG_REG1__mh_vgt_tag_7_q_MASK 0x40000000L
+#define VGT_DEBUG_REG1__mh_vgt_tag_7_q 0x40000000L
+
+// VGT_DEBUG_REG3
+#define VGT_DEBUG_REG3__vgt_clk_en_MASK 0x00000001L
+#define VGT_DEBUG_REG3__vgt_clk_en 0x00000001L
+#define VGT_DEBUG_REG3__reg_fifos_clk_en_MASK 0x00000002L
+#define VGT_DEBUG_REG3__reg_fifos_clk_en 0x00000002L
+
+// VGT_DEBUG_REG6
+#define VGT_DEBUG_REG6__shifter_byte_count_q_MASK 0x0000001fL
+#define VGT_DEBUG_REG6__right_word_indx_q_MASK 0x000003e0L
+#define VGT_DEBUG_REG6__input_data_valid_MASK 0x00000400L
+#define VGT_DEBUG_REG6__input_data_valid 0x00000400L
+#define VGT_DEBUG_REG6__input_data_xfer_MASK 0x00000800L
+#define VGT_DEBUG_REG6__input_data_xfer 0x00000800L
+#define VGT_DEBUG_REG6__next_shift_is_vect_1_q_MASK 0x00001000L
+#define VGT_DEBUG_REG6__next_shift_is_vect_1_q 0x00001000L
+#define VGT_DEBUG_REG6__next_shift_is_vect_1_d_MASK 0x00002000L
+#define VGT_DEBUG_REG6__next_shift_is_vect_1_d 0x00002000L
+#define VGT_DEBUG_REG6__next_shift_is_vect_1_pre_d_MASK 0x00004000L
+#define VGT_DEBUG_REG6__next_shift_is_vect_1_pre_d 0x00004000L
+#define VGT_DEBUG_REG6__space_avail_from_shift_MASK 0x00008000L
+#define VGT_DEBUG_REG6__space_avail_from_shift 0x00008000L
+#define VGT_DEBUG_REG6__shifter_first_load_MASK 0x00010000L
+#define VGT_DEBUG_REG6__shifter_first_load 0x00010000L
+#define VGT_DEBUG_REG6__di_state_sel_q_MASK 0x00020000L
+#define VGT_DEBUG_REG6__di_state_sel_q 0x00020000L
+#define VGT_DEBUG_REG6__shifter_waiting_for_first_load_q_MASK 0x00040000L
+#define VGT_DEBUG_REG6__shifter_waiting_for_first_load_q 0x00040000L
+#define VGT_DEBUG_REG6__di_first_group_flag_q_MASK 0x00080000L
+#define VGT_DEBUG_REG6__di_first_group_flag_q 0x00080000L
+#define VGT_DEBUG_REG6__di_event_flag_q_MASK 0x00100000L
+#define VGT_DEBUG_REG6__di_event_flag_q 0x00100000L
+#define VGT_DEBUG_REG6__read_draw_initiator_MASK 0x00200000L
+#define VGT_DEBUG_REG6__read_draw_initiator 0x00200000L
+#define VGT_DEBUG_REG6__loading_di_requires_shifter_MASK 0x00400000L
+#define VGT_DEBUG_REG6__loading_di_requires_shifter 0x00400000L
+#define VGT_DEBUG_REG6__last_shift_of_packet_MASK 0x00800000L
+#define VGT_DEBUG_REG6__last_shift_of_packet 0x00800000L
+#define VGT_DEBUG_REG6__last_decr_of_packet_MASK 0x01000000L
+#define VGT_DEBUG_REG6__last_decr_of_packet 0x01000000L
+#define VGT_DEBUG_REG6__extract_vector_MASK 0x02000000L
+#define VGT_DEBUG_REG6__extract_vector 0x02000000L
+#define VGT_DEBUG_REG6__shift_vect_rtr_MASK 0x04000000L
+#define VGT_DEBUG_REG6__shift_vect_rtr 0x04000000L
+#define VGT_DEBUG_REG6__destination_rtr_MASK 0x08000000L
+#define VGT_DEBUG_REG6__destination_rtr 0x08000000L
+#define VGT_DEBUG_REG6__grp_trigger_MASK 0x10000000L
+#define VGT_DEBUG_REG6__grp_trigger 0x10000000L
+
+// VGT_DEBUG_REG7
+#define VGT_DEBUG_REG7__di_index_counter_q_MASK 0x0000ffffL
+#define VGT_DEBUG_REG7__shift_amount_no_extract_MASK 0x000f0000L
+#define VGT_DEBUG_REG7__shift_amount_extract_MASK 0x00f00000L
+#define VGT_DEBUG_REG7__di_prim_type_q_MASK 0x3f000000L
+#define VGT_DEBUG_REG7__current_source_sel_MASK 0xc0000000L
+
+// VGT_DEBUG_REG8
+#define VGT_DEBUG_REG8__current_source_sel_MASK 0x00000003L
+#define VGT_DEBUG_REG8__left_word_indx_q_MASK 0x0000007cL
+#define VGT_DEBUG_REG8__input_data_cnt_MASK 0x00000f80L
+#define VGT_DEBUG_REG8__input_data_lsw_MASK 0x0001f000L
+#define VGT_DEBUG_REG8__input_data_msw_MASK 0x003e0000L
+#define VGT_DEBUG_REG8__next_small_stride_shift_limit_q_MASK 0x07c00000L
+#define VGT_DEBUG_REG8__current_small_stride_shift_limit_q_MASK 0xf8000000L
+
+// VGT_DEBUG_REG9
+#define VGT_DEBUG_REG9__next_stride_q_MASK 0x0000001fL
+#define VGT_DEBUG_REG9__next_stride_d_MASK 0x000003e0L
+#define VGT_DEBUG_REG9__current_shift_q_MASK 0x00007c00L
+#define VGT_DEBUG_REG9__current_shift_d_MASK 0x000f8000L
+#define VGT_DEBUG_REG9__current_stride_q_MASK 0x01f00000L
+#define VGT_DEBUG_REG9__current_stride_d_MASK 0x3e000000L
+#define VGT_DEBUG_REG9__grp_trigger_MASK 0x40000000L
+#define VGT_DEBUG_REG9__grp_trigger 0x40000000L
+
+// VGT_DEBUG_REG10
+#define VGT_DEBUG_REG10__temp_derived_di_prim_type_t0_MASK 0x00000001L
+#define VGT_DEBUG_REG10__temp_derived_di_prim_type_t0 0x00000001L
+#define VGT_DEBUG_REG10__temp_derived_di_small_index_t0_MASK 0x00000002L
+#define VGT_DEBUG_REG10__temp_derived_di_small_index_t0 0x00000002L
+#define VGT_DEBUG_REG10__temp_derived_di_cull_enable_t0_MASK 0x00000004L
+#define VGT_DEBUG_REG10__temp_derived_di_cull_enable_t0 0x00000004L
+#define VGT_DEBUG_REG10__temp_derived_di_pre_fetch_cull_enable_t0_MASK 0x00000008L
+#define VGT_DEBUG_REG10__temp_derived_di_pre_fetch_cull_enable_t0 0x00000008L
+#define VGT_DEBUG_REG10__di_state_sel_q_MASK 0x00000010L
+#define VGT_DEBUG_REG10__di_state_sel_q 0x00000010L
+#define VGT_DEBUG_REG10__last_decr_of_packet_MASK 0x00000020L
+#define VGT_DEBUG_REG10__last_decr_of_packet 0x00000020L
+#define VGT_DEBUG_REG10__bin_valid_MASK 0x00000040L
+#define VGT_DEBUG_REG10__bin_valid 0x00000040L
+#define VGT_DEBUG_REG10__read_block_MASK 0x00000080L
+#define VGT_DEBUG_REG10__read_block 0x00000080L
+#define VGT_DEBUG_REG10__grp_bgrp_last_bit_read_MASK 0x00000100L
+#define VGT_DEBUG_REG10__grp_bgrp_last_bit_read 0x00000100L
+#define VGT_DEBUG_REG10__last_bit_enable_q_MASK 0x00000200L
+#define VGT_DEBUG_REG10__last_bit_enable_q 0x00000200L
+#define VGT_DEBUG_REG10__last_bit_end_di_q_MASK 0x00000400L
+#define VGT_DEBUG_REG10__last_bit_end_di_q 0x00000400L
+#define VGT_DEBUG_REG10__selected_data_MASK 0x0007f800L
+#define VGT_DEBUG_REG10__mask_input_data_MASK 0x07f80000L
+#define VGT_DEBUG_REG10__gap_q_MASK 0x08000000L
+#define VGT_DEBUG_REG10__gap_q 0x08000000L
+#define VGT_DEBUG_REG10__temp_mini_reset_z_MASK 0x10000000L
+#define VGT_DEBUG_REG10__temp_mini_reset_z 0x10000000L
+#define VGT_DEBUG_REG10__temp_mini_reset_y_MASK 0x20000000L
+#define VGT_DEBUG_REG10__temp_mini_reset_y 0x20000000L
+#define VGT_DEBUG_REG10__temp_mini_reset_x_MASK 0x40000000L
+#define VGT_DEBUG_REG10__temp_mini_reset_x 0x40000000L
+#define VGT_DEBUG_REG10__grp_trigger_MASK 0x80000000L
+#define VGT_DEBUG_REG10__grp_trigger 0x80000000L
+
+// VGT_DEBUG_REG12
+#define VGT_DEBUG_REG12__shifter_byte_count_q_MASK 0x0000001fL
+#define VGT_DEBUG_REG12__right_word_indx_q_MASK 0x000003e0L
+#define VGT_DEBUG_REG12__input_data_valid_MASK 0x00000400L
+#define VGT_DEBUG_REG12__input_data_valid 0x00000400L
+#define VGT_DEBUG_REG12__input_data_xfer_MASK 0x00000800L
+#define VGT_DEBUG_REG12__input_data_xfer 0x00000800L
+#define VGT_DEBUG_REG12__next_shift_is_vect_1_q_MASK 0x00001000L
+#define VGT_DEBUG_REG12__next_shift_is_vect_1_q 0x00001000L
+#define VGT_DEBUG_REG12__next_shift_is_vect_1_d_MASK 0x00002000L
+#define VGT_DEBUG_REG12__next_shift_is_vect_1_d 0x00002000L
+#define VGT_DEBUG_REG12__next_shift_is_vect_1_pre_d_MASK 0x00004000L
+#define VGT_DEBUG_REG12__next_shift_is_vect_1_pre_d 0x00004000L
+#define VGT_DEBUG_REG12__space_avail_from_shift_MASK 0x00008000L
+#define VGT_DEBUG_REG12__space_avail_from_shift 0x00008000L
+#define VGT_DEBUG_REG12__shifter_first_load_MASK 0x00010000L
+#define VGT_DEBUG_REG12__shifter_first_load 0x00010000L
+#define VGT_DEBUG_REG12__di_state_sel_q_MASK 0x00020000L
+#define VGT_DEBUG_REG12__di_state_sel_q 0x00020000L
+#define VGT_DEBUG_REG12__shifter_waiting_for_first_load_q_MASK 0x00040000L
+#define VGT_DEBUG_REG12__shifter_waiting_for_first_load_q 0x00040000L
+#define VGT_DEBUG_REG12__di_first_group_flag_q_MASK 0x00080000L
+#define VGT_DEBUG_REG12__di_first_group_flag_q 0x00080000L
+#define VGT_DEBUG_REG12__di_event_flag_q_MASK 0x00100000L
+#define VGT_DEBUG_REG12__di_event_flag_q 0x00100000L
+#define VGT_DEBUG_REG12__read_draw_initiator_MASK 0x00200000L
+#define VGT_DEBUG_REG12__read_draw_initiator 0x00200000L
+#define VGT_DEBUG_REG12__loading_di_requires_shifter_MASK 0x00400000L
+#define VGT_DEBUG_REG12__loading_di_requires_shifter 0x00400000L
+#define VGT_DEBUG_REG12__last_shift_of_packet_MASK 0x00800000L
+#define VGT_DEBUG_REG12__last_shift_of_packet 0x00800000L
+#define VGT_DEBUG_REG12__last_decr_of_packet_MASK 0x01000000L
+#define VGT_DEBUG_REG12__last_decr_of_packet 0x01000000L
+#define VGT_DEBUG_REG12__extract_vector_MASK 0x02000000L
+#define VGT_DEBUG_REG12__extract_vector 0x02000000L
+#define VGT_DEBUG_REG12__shift_vect_rtr_MASK 0x04000000L
+#define VGT_DEBUG_REG12__shift_vect_rtr 0x04000000L
+#define VGT_DEBUG_REG12__destination_rtr_MASK 0x08000000L
+#define VGT_DEBUG_REG12__destination_rtr 0x08000000L
+#define VGT_DEBUG_REG12__bgrp_trigger_MASK 0x10000000L
+#define VGT_DEBUG_REG12__bgrp_trigger 0x10000000L
+
+// VGT_DEBUG_REG13
+#define VGT_DEBUG_REG13__di_index_counter_q_MASK 0x0000ffffL
+#define VGT_DEBUG_REG13__shift_amount_no_extract_MASK 0x000f0000L
+#define VGT_DEBUG_REG13__shift_amount_extract_MASK 0x00f00000L
+#define VGT_DEBUG_REG13__di_prim_type_q_MASK 0x3f000000L
+#define VGT_DEBUG_REG13__current_source_sel_MASK 0xc0000000L
+
+// VGT_DEBUG_REG14
+#define VGT_DEBUG_REG14__current_source_sel_MASK 0x00000003L
+#define VGT_DEBUG_REG14__left_word_indx_q_MASK 0x0000007cL
+#define VGT_DEBUG_REG14__input_data_cnt_MASK 0x00000f80L
+#define VGT_DEBUG_REG14__input_data_lsw_MASK 0x0001f000L
+#define VGT_DEBUG_REG14__input_data_msw_MASK 0x003e0000L
+#define VGT_DEBUG_REG14__next_small_stride_shift_limit_q_MASK 0x07c00000L
+#define VGT_DEBUG_REG14__current_small_stride_shift_limit_q_MASK 0xf8000000L
+
+// VGT_DEBUG_REG15
+#define VGT_DEBUG_REG15__next_stride_q_MASK 0x0000001fL
+#define VGT_DEBUG_REG15__next_stride_d_MASK 0x000003e0L
+#define VGT_DEBUG_REG15__current_shift_q_MASK 0x00007c00L
+#define VGT_DEBUG_REG15__current_shift_d_MASK 0x000f8000L
+#define VGT_DEBUG_REG15__current_stride_q_MASK 0x01f00000L
+#define VGT_DEBUG_REG15__current_stride_d_MASK 0x3e000000L
+#define VGT_DEBUG_REG15__bgrp_trigger_MASK 0x40000000L
+#define VGT_DEBUG_REG15__bgrp_trigger 0x40000000L
+
+// VGT_DEBUG_REG16
+#define VGT_DEBUG_REG16__bgrp_cull_fetch_fifo_full_MASK 0x00000001L
+#define VGT_DEBUG_REG16__bgrp_cull_fetch_fifo_full 0x00000001L
+#define VGT_DEBUG_REG16__bgrp_cull_fetch_fifo_empty_MASK 0x00000002L
+#define VGT_DEBUG_REG16__bgrp_cull_fetch_fifo_empty 0x00000002L
+#define VGT_DEBUG_REG16__dma_bgrp_cull_fetch_read_MASK 0x00000004L
+#define VGT_DEBUG_REG16__dma_bgrp_cull_fetch_read 0x00000004L
+#define VGT_DEBUG_REG16__bgrp_cull_fetch_fifo_we_MASK 0x00000008L
+#define VGT_DEBUG_REG16__bgrp_cull_fetch_fifo_we 0x00000008L
+#define VGT_DEBUG_REG16__bgrp_byte_mask_fifo_full_MASK 0x00000010L
+#define VGT_DEBUG_REG16__bgrp_byte_mask_fifo_full 0x00000010L
+#define VGT_DEBUG_REG16__bgrp_byte_mask_fifo_empty_MASK 0x00000020L
+#define VGT_DEBUG_REG16__bgrp_byte_mask_fifo_empty 0x00000020L
+#define VGT_DEBUG_REG16__bgrp_byte_mask_fifo_re_q_MASK 0x00000040L
+#define VGT_DEBUG_REG16__bgrp_byte_mask_fifo_re_q 0x00000040L
+#define VGT_DEBUG_REG16__bgrp_byte_mask_fifo_we_MASK 0x00000080L
+#define VGT_DEBUG_REG16__bgrp_byte_mask_fifo_we 0x00000080L
+#define VGT_DEBUG_REG16__bgrp_dma_mask_kill_MASK 0x00000100L
+#define VGT_DEBUG_REG16__bgrp_dma_mask_kill 0x00000100L
+#define VGT_DEBUG_REG16__bgrp_grp_bin_valid_MASK 0x00000200L
+#define VGT_DEBUG_REG16__bgrp_grp_bin_valid 0x00000200L
+#define VGT_DEBUG_REG16__rst_last_bit_MASK 0x00000400L
+#define VGT_DEBUG_REG16__rst_last_bit 0x00000400L
+#define VGT_DEBUG_REG16__current_state_q_MASK 0x00000800L
+#define VGT_DEBUG_REG16__current_state_q 0x00000800L
+#define VGT_DEBUG_REG16__old_state_q_MASK 0x00001000L
+#define VGT_DEBUG_REG16__old_state_q 0x00001000L
+#define VGT_DEBUG_REG16__old_state_en_MASK 0x00002000L
+#define VGT_DEBUG_REG16__old_state_en 0x00002000L
+#define VGT_DEBUG_REG16__prev_last_bit_q_MASK 0x00004000L
+#define VGT_DEBUG_REG16__prev_last_bit_q 0x00004000L
+#define VGT_DEBUG_REG16__dbl_last_bit_q_MASK 0x00008000L
+#define VGT_DEBUG_REG16__dbl_last_bit_q 0x00008000L
+#define VGT_DEBUG_REG16__last_bit_block_q_MASK 0x00010000L
+#define VGT_DEBUG_REG16__last_bit_block_q 0x00010000L
+#define VGT_DEBUG_REG16__ast_bit_block2_q_MASK 0x00020000L
+#define VGT_DEBUG_REG16__ast_bit_block2_q 0x00020000L
+#define VGT_DEBUG_REG16__load_empty_reg_MASK 0x00040000L
+#define VGT_DEBUG_REG16__load_empty_reg 0x00040000L
+#define VGT_DEBUG_REG16__bgrp_grp_byte_mask_rdata_MASK 0x07f80000L
+#define VGT_DEBUG_REG16__dma_bgrp_dma_data_fifo_rptr_MASK 0x18000000L
+#define VGT_DEBUG_REG16__top_di_pre_fetch_cull_enable_MASK 0x20000000L
+#define VGT_DEBUG_REG16__top_di_pre_fetch_cull_enable 0x20000000L
+#define VGT_DEBUG_REG16__top_di_grp_cull_enable_q_MASK 0x40000000L
+#define VGT_DEBUG_REG16__top_di_grp_cull_enable_q 0x40000000L
+#define VGT_DEBUG_REG16__bgrp_trigger_MASK 0x80000000L
+#define VGT_DEBUG_REG16__bgrp_trigger 0x80000000L
+
+// VGT_DEBUG_REG17
+#define VGT_DEBUG_REG17__save_read_q_MASK 0x00000001L
+#define VGT_DEBUG_REG17__save_read_q 0x00000001L
+#define VGT_DEBUG_REG17__extend_read_q_MASK 0x00000002L
+#define VGT_DEBUG_REG17__extend_read_q 0x00000002L
+#define VGT_DEBUG_REG17__grp_indx_size_MASK 0x0000000cL
+#define VGT_DEBUG_REG17__cull_prim_true_MASK 0x00000010L
+#define VGT_DEBUG_REG17__cull_prim_true 0x00000010L
+#define VGT_DEBUG_REG17__reset_bit2_q_MASK 0x00000020L
+#define VGT_DEBUG_REG17__reset_bit2_q 0x00000020L
+#define VGT_DEBUG_REG17__reset_bit1_q_MASK 0x00000040L
+#define VGT_DEBUG_REG17__reset_bit1_q 0x00000040L
+#define VGT_DEBUG_REG17__first_reg_first_q_MASK 0x00000080L
+#define VGT_DEBUG_REG17__first_reg_first_q 0x00000080L
+#define VGT_DEBUG_REG17__check_second_reg_MASK 0x00000100L
+#define VGT_DEBUG_REG17__check_second_reg 0x00000100L
+#define VGT_DEBUG_REG17__check_first_reg_MASK 0x00000200L
+#define VGT_DEBUG_REG17__check_first_reg 0x00000200L
+#define VGT_DEBUG_REG17__bgrp_cull_fetch_fifo_wdata_MASK 0x00000400L
+#define VGT_DEBUG_REG17__bgrp_cull_fetch_fifo_wdata 0x00000400L
+#define VGT_DEBUG_REG17__save_cull_fetch_data2_q_MASK 0x00000800L
+#define VGT_DEBUG_REG17__save_cull_fetch_data2_q 0x00000800L
+#define VGT_DEBUG_REG17__save_cull_fetch_data1_q_MASK 0x00001000L
+#define VGT_DEBUG_REG17__save_cull_fetch_data1_q 0x00001000L
+#define VGT_DEBUG_REG17__save_byte_mask_data2_q_MASK 0x00002000L
+#define VGT_DEBUG_REG17__save_byte_mask_data2_q 0x00002000L
+#define VGT_DEBUG_REG17__save_byte_mask_data1_q_MASK 0x00004000L
+#define VGT_DEBUG_REG17__save_byte_mask_data1_q 0x00004000L
+#define VGT_DEBUG_REG17__to_second_reg_q_MASK 0x00008000L
+#define VGT_DEBUG_REG17__to_second_reg_q 0x00008000L
+#define VGT_DEBUG_REG17__roll_over_msk_q_MASK 0x00010000L
+#define VGT_DEBUG_REG17__roll_over_msk_q 0x00010000L
+#define VGT_DEBUG_REG17__max_msk_ptr_q_MASK 0x00fe0000L
+#define VGT_DEBUG_REG17__min_msk_ptr_q_MASK 0x7f000000L
+#define VGT_DEBUG_REG17__bgrp_trigger_MASK 0x80000000L
+#define VGT_DEBUG_REG17__bgrp_trigger 0x80000000L
+
+// VGT_DEBUG_REG18
+#define VGT_DEBUG_REG18__dma_data_fifo_mem_raddr_MASK 0x0000003fL
+#define VGT_DEBUG_REG18__dma_data_fifo_mem_waddr_MASK 0x00000fc0L
+#define VGT_DEBUG_REG18__dma_bgrp_byte_mask_fifo_re_MASK 0x00001000L
+#define VGT_DEBUG_REG18__dma_bgrp_byte_mask_fifo_re 0x00001000L
+#define VGT_DEBUG_REG18__dma_bgrp_dma_data_fifo_rptr_MASK 0x00006000L
+#define VGT_DEBUG_REG18__dma_mem_full_MASK 0x00008000L
+#define VGT_DEBUG_REG18__dma_mem_full 0x00008000L
+#define VGT_DEBUG_REG18__dma_ram_re_MASK 0x00010000L
+#define VGT_DEBUG_REG18__dma_ram_re 0x00010000L
+#define VGT_DEBUG_REG18__dma_ram_we_MASK 0x00020000L
+#define VGT_DEBUG_REG18__dma_ram_we 0x00020000L
+#define VGT_DEBUG_REG18__dma_mem_empty_MASK 0x00040000L
+#define VGT_DEBUG_REG18__dma_mem_empty 0x00040000L
+#define VGT_DEBUG_REG18__dma_data_fifo_mem_re_MASK 0x00080000L
+#define VGT_DEBUG_REG18__dma_data_fifo_mem_re 0x00080000L
+#define VGT_DEBUG_REG18__dma_data_fifo_mem_we_MASK 0x00100000L
+#define VGT_DEBUG_REG18__dma_data_fifo_mem_we 0x00100000L
+#define VGT_DEBUG_REG18__bin_mem_full_MASK 0x00200000L
+#define VGT_DEBUG_REG18__bin_mem_full 0x00200000L
+#define VGT_DEBUG_REG18__bin_ram_we_MASK 0x00400000L
+#define VGT_DEBUG_REG18__bin_ram_we 0x00400000L
+#define VGT_DEBUG_REG18__bin_ram_re_MASK 0x00800000L
+#define VGT_DEBUG_REG18__bin_ram_re 0x00800000L
+#define VGT_DEBUG_REG18__bin_mem_empty_MASK 0x01000000L
+#define VGT_DEBUG_REG18__bin_mem_empty 0x01000000L
+#define VGT_DEBUG_REG18__start_bin_req_MASK 0x02000000L
+#define VGT_DEBUG_REG18__start_bin_req 0x02000000L
+#define VGT_DEBUG_REG18__fetch_cull_not_used_MASK 0x04000000L
+#define VGT_DEBUG_REG18__fetch_cull_not_used 0x04000000L
+#define VGT_DEBUG_REG18__dma_req_xfer_MASK 0x08000000L
+#define VGT_DEBUG_REG18__dma_req_xfer 0x08000000L
+#define VGT_DEBUG_REG18__have_valid_bin_req_MASK 0x10000000L
+#define VGT_DEBUG_REG18__have_valid_bin_req 0x10000000L
+#define VGT_DEBUG_REG18__have_valid_dma_req_MASK 0x20000000L
+#define VGT_DEBUG_REG18__have_valid_dma_req 0x20000000L
+#define VGT_DEBUG_REG18__bgrp_dma_di_grp_cull_enable_MASK 0x40000000L
+#define VGT_DEBUG_REG18__bgrp_dma_di_grp_cull_enable 0x40000000L
+#define VGT_DEBUG_REG18__bgrp_dma_di_pre_fetch_cull_enable_MASK 0x80000000L
+#define VGT_DEBUG_REG18__bgrp_dma_di_pre_fetch_cull_enable 0x80000000L
+
+// VGT_DEBUG_REG20
+#define VGT_DEBUG_REG20__prim_side_indx_valid_MASK 0x00000001L
+#define VGT_DEBUG_REG20__prim_side_indx_valid 0x00000001L
+#define VGT_DEBUG_REG20__indx_side_fifo_empty_MASK 0x00000002L
+#define VGT_DEBUG_REG20__indx_side_fifo_empty 0x00000002L
+#define VGT_DEBUG_REG20__indx_side_fifo_re_MASK 0x00000004L
+#define VGT_DEBUG_REG20__indx_side_fifo_re 0x00000004L
+#define VGT_DEBUG_REG20__indx_side_fifo_we_MASK 0x00000008L
+#define VGT_DEBUG_REG20__indx_side_fifo_we 0x00000008L
+#define VGT_DEBUG_REG20__indx_side_fifo_full_MASK 0x00000010L
+#define VGT_DEBUG_REG20__indx_side_fifo_full 0x00000010L
+#define VGT_DEBUG_REG20__prim_buffer_empty_MASK 0x00000020L
+#define VGT_DEBUG_REG20__prim_buffer_empty 0x00000020L
+#define VGT_DEBUG_REG20__prim_buffer_re_MASK 0x00000040L
+#define VGT_DEBUG_REG20__prim_buffer_re 0x00000040L
+#define VGT_DEBUG_REG20__prim_buffer_we_MASK 0x00000080L
+#define VGT_DEBUG_REG20__prim_buffer_we 0x00000080L
+#define VGT_DEBUG_REG20__prim_buffer_full_MASK 0x00000100L
+#define VGT_DEBUG_REG20__prim_buffer_full 0x00000100L
+#define VGT_DEBUG_REG20__indx_buffer_empty_MASK 0x00000200L
+#define VGT_DEBUG_REG20__indx_buffer_empty 0x00000200L
+#define VGT_DEBUG_REG20__indx_buffer_re_MASK 0x00000400L
+#define VGT_DEBUG_REG20__indx_buffer_re 0x00000400L
+#define VGT_DEBUG_REG20__indx_buffer_we_MASK 0x00000800L
+#define VGT_DEBUG_REG20__indx_buffer_we 0x00000800L
+#define VGT_DEBUG_REG20__indx_buffer_full_MASK 0x00001000L
+#define VGT_DEBUG_REG20__indx_buffer_full 0x00001000L
+#define VGT_DEBUG_REG20__hold_prim_MASK 0x00002000L
+#define VGT_DEBUG_REG20__hold_prim 0x00002000L
+#define VGT_DEBUG_REG20__sent_cnt_MASK 0x0003c000L
+#define VGT_DEBUG_REG20__start_of_vtx_vector_MASK 0x00040000L
+#define VGT_DEBUG_REG20__start_of_vtx_vector 0x00040000L
+#define VGT_DEBUG_REG20__clip_s_pre_hold_prim_MASK 0x00080000L
+#define VGT_DEBUG_REG20__clip_s_pre_hold_prim 0x00080000L
+#define VGT_DEBUG_REG20__clip_p_pre_hold_prim_MASK 0x00100000L
+#define VGT_DEBUG_REG20__clip_p_pre_hold_prim 0x00100000L
+#define VGT_DEBUG_REG20__buffered_prim_type_event_MASK 0x03e00000L
+#define VGT_DEBUG_REG20__out_trigger_MASK 0x04000000L
+#define VGT_DEBUG_REG20__out_trigger 0x04000000L
+
+// VGT_DEBUG_REG21
+#define VGT_DEBUG_REG21__null_terminate_vtx_vector_MASK 0x00000001L
+#define VGT_DEBUG_REG21__null_terminate_vtx_vector 0x00000001L
+#define VGT_DEBUG_REG21__prim_end_of_vtx_vect_flags_MASK 0x0000000eL
+#define VGT_DEBUG_REG21__alloc_counter_q_MASK 0x00000070L
+#define VGT_DEBUG_REG21__curr_slot_in_vtx_vect_q_MASK 0x00000380L
+#define VGT_DEBUG_REG21__int_vtx_counter_q_MASK 0x00003c00L
+#define VGT_DEBUG_REG21__curr_dealloc_distance_q_MASK 0x0003c000L
+#define VGT_DEBUG_REG21__new_packet_q_MASK 0x00040000L
+#define VGT_DEBUG_REG21__new_packet_q 0x00040000L
+#define VGT_DEBUG_REG21__new_allocate_q_MASK 0x00080000L
+#define VGT_DEBUG_REG21__new_allocate_q 0x00080000L
+#define VGT_DEBUG_REG21__num_new_unique_rel_indx_MASK 0x00300000L
+#define VGT_DEBUG_REG21__inserted_null_prim_q_MASK 0x00400000L
+#define VGT_DEBUG_REG21__inserted_null_prim_q 0x00400000L
+#define VGT_DEBUG_REG21__insert_null_prim_MASK 0x00800000L
+#define VGT_DEBUG_REG21__insert_null_prim 0x00800000L
+#define VGT_DEBUG_REG21__buffered_prim_eop_mux_MASK 0x01000000L
+#define VGT_DEBUG_REG21__buffered_prim_eop_mux 0x01000000L
+#define VGT_DEBUG_REG21__prim_buffer_empty_mux_MASK 0x02000000L
+#define VGT_DEBUG_REG21__prim_buffer_empty_mux 0x02000000L
+#define VGT_DEBUG_REG21__buffered_thread_size_MASK 0x04000000L
+#define VGT_DEBUG_REG21__buffered_thread_size 0x04000000L
+#define VGT_DEBUG_REG21__out_trigger_MASK 0x80000000L
+#define VGT_DEBUG_REG21__out_trigger 0x80000000L
+
+// VGT_CRC_SQ_DATA
+#define VGT_CRC_SQ_DATA__CRC_MASK 0xffffffffL
+
+// VGT_CRC_SQ_CTRL
+#define VGT_CRC_SQ_CTRL__CRC_MASK 0xffffffffL
+
+// VGT_PERFCOUNTER0_SELECT
+#define VGT_PERFCOUNTER0_SELECT__PERF_SEL_MASK 0x000000ffL
+
+// VGT_PERFCOUNTER1_SELECT
+#define VGT_PERFCOUNTER1_SELECT__PERF_SEL_MASK 0x000000ffL
+
+// VGT_PERFCOUNTER2_SELECT
+#define VGT_PERFCOUNTER2_SELECT__PERF_SEL_MASK 0x000000ffL
+
+// VGT_PERFCOUNTER3_SELECT
+#define VGT_PERFCOUNTER3_SELECT__PERF_SEL_MASK 0x000000ffL
+
+// VGT_PERFCOUNTER0_LOW
+#define VGT_PERFCOUNTER0_LOW__PERF_COUNT_MASK 0xffffffffL
+
+// VGT_PERFCOUNTER1_LOW
+#define VGT_PERFCOUNTER1_LOW__PERF_COUNT_MASK 0xffffffffL
+
+// VGT_PERFCOUNTER2_LOW
+#define VGT_PERFCOUNTER2_LOW__PERF_COUNT_MASK 0xffffffffL
+
+// VGT_PERFCOUNTER3_LOW
+#define VGT_PERFCOUNTER3_LOW__PERF_COUNT_MASK 0xffffffffL
+
+// VGT_PERFCOUNTER0_HI
+#define VGT_PERFCOUNTER0_HI__PERF_COUNT_MASK 0x0000ffffL
+
+// VGT_PERFCOUNTER1_HI
+#define VGT_PERFCOUNTER1_HI__PERF_COUNT_MASK 0x0000ffffL
+
+// VGT_PERFCOUNTER2_HI
+#define VGT_PERFCOUNTER2_HI__PERF_COUNT_MASK 0x0000ffffL
+
+// VGT_PERFCOUNTER3_HI
+#define VGT_PERFCOUNTER3_HI__PERF_COUNT_MASK 0x0000ffffL
+
+// TC_CNTL_STATUS
+#define TC_CNTL_STATUS__L2_INVALIDATE_MASK 0x00000001L
+#define TC_CNTL_STATUS__L2_INVALIDATE 0x00000001L
+#define TC_CNTL_STATUS__TC_L2_HIT_MISS_MASK 0x000c0000L
+#define TC_CNTL_STATUS__TC_BUSY_MASK 0x80000000L
+#define TC_CNTL_STATUS__TC_BUSY 0x80000000L
+
+// TCR_CHICKEN
+#define TCR_CHICKEN__SPARE_MASK 0xffffffffL
+
+// TCF_CHICKEN
+#define TCF_CHICKEN__SPARE_MASK 0xffffffffL
+
+// TCM_CHICKEN
+#define TCM_CHICKEN__TCO_READ_LATENCY_FIFO_PROG_DEPTH_MASK 0x000000ffL
+#define TCM_CHICKEN__ETC_COLOR_ENDIAN_MASK 0x00000100L
+#define TCM_CHICKEN__ETC_COLOR_ENDIAN 0x00000100L
+#define TCM_CHICKEN__SPARE_MASK 0xfffffe00L
+
+// TCR_PERFCOUNTER0_SELECT
+#define TCR_PERFCOUNTER0_SELECT__PERFCOUNTER_SELECT_MASK 0x000000ffL
+
+// TCR_PERFCOUNTER1_SELECT
+#define TCR_PERFCOUNTER1_SELECT__PERFCOUNTER_SELECT_MASK 0x000000ffL
+
+// TCR_PERFCOUNTER0_HI
+#define TCR_PERFCOUNTER0_HI__PERFCOUNTER_HI_MASK 0x0000ffffL
+
+// TCR_PERFCOUNTER1_HI
+#define TCR_PERFCOUNTER1_HI__PERFCOUNTER_HI_MASK 0x0000ffffL
+
+// TCR_PERFCOUNTER0_LOW
+#define TCR_PERFCOUNTER0_LOW__PERFCOUNTER_LOW_MASK 0xffffffffL
+
+// TCR_PERFCOUNTER1_LOW
+#define TCR_PERFCOUNTER1_LOW__PERFCOUNTER_LOW_MASK 0xffffffffL
+
+// TP_TC_CLKGATE_CNTL
+#define TP_TC_CLKGATE_CNTL__TP_BUSY_EXTEND_MASK 0x00000007L
+#define TP_TC_CLKGATE_CNTL__TC_BUSY_EXTEND_MASK 0x00000038L
+
+// TPC_CNTL_STATUS
+#define TPC_CNTL_STATUS__TPC_INPUT_BUSY_MASK 0x00000001L
+#define TPC_CNTL_STATUS__TPC_INPUT_BUSY 0x00000001L
+#define TPC_CNTL_STATUS__TPC_TC_FIFO_BUSY_MASK 0x00000002L
+#define TPC_CNTL_STATUS__TPC_TC_FIFO_BUSY 0x00000002L
+#define TPC_CNTL_STATUS__TPC_STATE_FIFO_BUSY_MASK 0x00000004L
+#define TPC_CNTL_STATUS__TPC_STATE_FIFO_BUSY 0x00000004L
+#define TPC_CNTL_STATUS__TPC_FETCH_FIFO_BUSY_MASK 0x00000008L
+#define TPC_CNTL_STATUS__TPC_FETCH_FIFO_BUSY 0x00000008L
+#define TPC_CNTL_STATUS__TPC_WALKER_PIPE_BUSY_MASK 0x00000010L
+#define TPC_CNTL_STATUS__TPC_WALKER_PIPE_BUSY 0x00000010L
+#define TPC_CNTL_STATUS__TPC_WALK_FIFO_BUSY_MASK 0x00000020L
+#define TPC_CNTL_STATUS__TPC_WALK_FIFO_BUSY 0x00000020L
+#define TPC_CNTL_STATUS__TPC_WALKER_BUSY_MASK 0x00000040L
+#define TPC_CNTL_STATUS__TPC_WALKER_BUSY 0x00000040L
+#define TPC_CNTL_STATUS__TPC_ALIGNER_PIPE_BUSY_MASK 0x00000100L
+#define TPC_CNTL_STATUS__TPC_ALIGNER_PIPE_BUSY 0x00000100L
+#define TPC_CNTL_STATUS__TPC_ALIGN_FIFO_BUSY_MASK 0x00000200L
+#define TPC_CNTL_STATUS__TPC_ALIGN_FIFO_BUSY 0x00000200L
+#define TPC_CNTL_STATUS__TPC_ALIGNER_BUSY_MASK 0x00000400L
+#define TPC_CNTL_STATUS__TPC_ALIGNER_BUSY 0x00000400L
+#define TPC_CNTL_STATUS__TPC_RR_FIFO_BUSY_MASK 0x00001000L
+#define TPC_CNTL_STATUS__TPC_RR_FIFO_BUSY 0x00001000L
+#define TPC_CNTL_STATUS__TPC_BLEND_PIPE_BUSY_MASK 0x00002000L
+#define TPC_CNTL_STATUS__TPC_BLEND_PIPE_BUSY 0x00002000L
+#define TPC_CNTL_STATUS__TPC_OUT_FIFO_BUSY_MASK 0x00004000L
+#define TPC_CNTL_STATUS__TPC_OUT_FIFO_BUSY 0x00004000L
+#define TPC_CNTL_STATUS__TPC_BLEND_BUSY_MASK 0x00008000L
+#define TPC_CNTL_STATUS__TPC_BLEND_BUSY 0x00008000L
+#define TPC_CNTL_STATUS__TF_TW_RTS_MASK 0x00010000L
+#define TPC_CNTL_STATUS__TF_TW_RTS 0x00010000L
+#define TPC_CNTL_STATUS__TF_TW_STATE_RTS_MASK 0x00020000L
+#define TPC_CNTL_STATUS__TF_TW_STATE_RTS 0x00020000L
+#define TPC_CNTL_STATUS__TF_TW_RTR_MASK 0x00080000L
+#define TPC_CNTL_STATUS__TF_TW_RTR 0x00080000L
+#define TPC_CNTL_STATUS__TW_TA_RTS_MASK 0x00100000L
+#define TPC_CNTL_STATUS__TW_TA_RTS 0x00100000L
+#define TPC_CNTL_STATUS__TW_TA_TT_RTS_MASK 0x00200000L
+#define TPC_CNTL_STATUS__TW_TA_TT_RTS 0x00200000L
+#define TPC_CNTL_STATUS__TW_TA_LAST_RTS_MASK 0x00400000L
+#define TPC_CNTL_STATUS__TW_TA_LAST_RTS 0x00400000L
+#define TPC_CNTL_STATUS__TW_TA_RTR_MASK 0x00800000L
+#define TPC_CNTL_STATUS__TW_TA_RTR 0x00800000L
+#define TPC_CNTL_STATUS__TA_TB_RTS_MASK 0x01000000L
+#define TPC_CNTL_STATUS__TA_TB_RTS 0x01000000L
+#define TPC_CNTL_STATUS__TA_TB_TT_RTS_MASK 0x02000000L
+#define TPC_CNTL_STATUS__TA_TB_TT_RTS 0x02000000L
+#define TPC_CNTL_STATUS__TA_TB_RTR_MASK 0x08000000L
+#define TPC_CNTL_STATUS__TA_TB_RTR 0x08000000L
+#define TPC_CNTL_STATUS__TA_TF_RTS_MASK 0x10000000L
+#define TPC_CNTL_STATUS__TA_TF_RTS 0x10000000L
+#define TPC_CNTL_STATUS__TA_TF_TC_FIFO_REN_MASK 0x20000000L
+#define TPC_CNTL_STATUS__TA_TF_TC_FIFO_REN 0x20000000L
+#define TPC_CNTL_STATUS__TP_SQ_DEC_MASK 0x40000000L
+#define TPC_CNTL_STATUS__TP_SQ_DEC 0x40000000L
+#define TPC_CNTL_STATUS__TPC_BUSY_MASK 0x80000000L
+#define TPC_CNTL_STATUS__TPC_BUSY 0x80000000L
+
+// TPC_DEBUG0
+#define TPC_DEBUG0__LOD_CNTL_MASK 0x00000003L
+#define TPC_DEBUG0__IC_CTR_MASK 0x0000000cL
+#define TPC_DEBUG0__WALKER_CNTL_MASK 0x000000f0L
+#define TPC_DEBUG0__ALIGNER_CNTL_MASK 0x00000700L
+#define TPC_DEBUG0__PREV_TC_STATE_VALID_MASK 0x00001000L
+#define TPC_DEBUG0__PREV_TC_STATE_VALID 0x00001000L
+#define TPC_DEBUG0__WALKER_STATE_MASK 0x03ff0000L
+#define TPC_DEBUG0__ALIGNER_STATE_MASK 0x0c000000L
+#define TPC_DEBUG0__REG_CLK_EN_MASK 0x20000000L
+#define TPC_DEBUG0__REG_CLK_EN 0x20000000L
+#define TPC_DEBUG0__TPC_CLK_EN_MASK 0x40000000L
+#define TPC_DEBUG0__TPC_CLK_EN 0x40000000L
+#define TPC_DEBUG0__SQ_TP_WAKEUP_MASK 0x80000000L
+#define TPC_DEBUG0__SQ_TP_WAKEUP 0x80000000L
+
+// TPC_DEBUG1
+#define TPC_DEBUG1__UNUSED_MASK 0x00000001L
+#define TPC_DEBUG1__UNUSED 0x00000001L
+
+// TPC_CHICKEN
+#define TPC_CHICKEN__BLEND_PRECISION_MASK 0x00000001L
+#define TPC_CHICKEN__BLEND_PRECISION 0x00000001L
+#define TPC_CHICKEN__SPARE_MASK 0xfffffffeL
+
+// TP0_CNTL_STATUS
+#define TP0_CNTL_STATUS__TP_INPUT_BUSY_MASK 0x00000001L
+#define TP0_CNTL_STATUS__TP_INPUT_BUSY 0x00000001L
+#define TP0_CNTL_STATUS__TP_LOD_BUSY_MASK 0x00000002L
+#define TP0_CNTL_STATUS__TP_LOD_BUSY 0x00000002L
+#define TP0_CNTL_STATUS__TP_LOD_FIFO_BUSY_MASK 0x00000004L
+#define TP0_CNTL_STATUS__TP_LOD_FIFO_BUSY 0x00000004L
+#define TP0_CNTL_STATUS__TP_ADDR_BUSY_MASK 0x00000008L
+#define TP0_CNTL_STATUS__TP_ADDR_BUSY 0x00000008L
+#define TP0_CNTL_STATUS__TP_ALIGN_FIFO_BUSY_MASK 0x00000010L
+#define TP0_CNTL_STATUS__TP_ALIGN_FIFO_BUSY 0x00000010L
+#define TP0_CNTL_STATUS__TP_ALIGNER_BUSY_MASK 0x00000020L
+#define TP0_CNTL_STATUS__TP_ALIGNER_BUSY 0x00000020L
+#define TP0_CNTL_STATUS__TP_TC_FIFO_BUSY_MASK 0x00000040L
+#define TP0_CNTL_STATUS__TP_TC_FIFO_BUSY 0x00000040L
+#define TP0_CNTL_STATUS__TP_RR_FIFO_BUSY_MASK 0x00000080L
+#define TP0_CNTL_STATUS__TP_RR_FIFO_BUSY 0x00000080L
+#define TP0_CNTL_STATUS__TP_FETCH_BUSY_MASK 0x00000100L
+#define TP0_CNTL_STATUS__TP_FETCH_BUSY 0x00000100L
+#define TP0_CNTL_STATUS__TP_CH_BLEND_BUSY_MASK 0x00000200L
+#define TP0_CNTL_STATUS__TP_CH_BLEND_BUSY 0x00000200L
+#define TP0_CNTL_STATUS__TP_TT_BUSY_MASK 0x00000400L
+#define TP0_CNTL_STATUS__TP_TT_BUSY 0x00000400L
+#define TP0_CNTL_STATUS__TP_HICOLOR_BUSY_MASK 0x00000800L
+#define TP0_CNTL_STATUS__TP_HICOLOR_BUSY 0x00000800L
+#define TP0_CNTL_STATUS__TP_BLEND_BUSY_MASK 0x00001000L
+#define TP0_CNTL_STATUS__TP_BLEND_BUSY 0x00001000L
+#define TP0_CNTL_STATUS__TP_OUT_FIFO_BUSY_MASK 0x00002000L
+#define TP0_CNTL_STATUS__TP_OUT_FIFO_BUSY 0x00002000L
+#define TP0_CNTL_STATUS__TP_OUTPUT_BUSY_MASK 0x00004000L
+#define TP0_CNTL_STATUS__TP_OUTPUT_BUSY 0x00004000L
+#define TP0_CNTL_STATUS__IN_LC_RTS_MASK 0x00010000L
+#define TP0_CNTL_STATUS__IN_LC_RTS 0x00010000L
+#define TP0_CNTL_STATUS__LC_LA_RTS_MASK 0x00020000L
+#define TP0_CNTL_STATUS__LC_LA_RTS 0x00020000L
+#define TP0_CNTL_STATUS__LA_FL_RTS_MASK 0x00040000L
+#define TP0_CNTL_STATUS__LA_FL_RTS 0x00040000L
+#define TP0_CNTL_STATUS__FL_TA_RTS_MASK 0x00080000L
+#define TP0_CNTL_STATUS__FL_TA_RTS 0x00080000L
+#define TP0_CNTL_STATUS__TA_FA_RTS_MASK 0x00100000L
+#define TP0_CNTL_STATUS__TA_FA_RTS 0x00100000L
+#define TP0_CNTL_STATUS__TA_FA_TT_RTS_MASK 0x00200000L
+#define TP0_CNTL_STATUS__TA_FA_TT_RTS 0x00200000L
+#define TP0_CNTL_STATUS__FA_AL_RTS_MASK 0x00400000L
+#define TP0_CNTL_STATUS__FA_AL_RTS 0x00400000L
+#define TP0_CNTL_STATUS__FA_AL_TT_RTS_MASK 0x00800000L
+#define TP0_CNTL_STATUS__FA_AL_TT_RTS 0x00800000L
+#define TP0_CNTL_STATUS__AL_TF_RTS_MASK 0x01000000L
+#define TP0_CNTL_STATUS__AL_TF_RTS 0x01000000L
+#define TP0_CNTL_STATUS__AL_TF_TT_RTS_MASK 0x02000000L
+#define TP0_CNTL_STATUS__AL_TF_TT_RTS 0x02000000L
+#define TP0_CNTL_STATUS__TF_TB_RTS_MASK 0x04000000L
+#define TP0_CNTL_STATUS__TF_TB_RTS 0x04000000L
+#define TP0_CNTL_STATUS__TF_TB_TT_RTS_MASK 0x08000000L
+#define TP0_CNTL_STATUS__TF_TB_TT_RTS 0x08000000L
+#define TP0_CNTL_STATUS__TB_TT_RTS_MASK 0x10000000L
+#define TP0_CNTL_STATUS__TB_TT_RTS 0x10000000L
+#define TP0_CNTL_STATUS__TB_TT_TT_RESET_MASK 0x20000000L
+#define TP0_CNTL_STATUS__TB_TT_TT_RESET 0x20000000L
+#define TP0_CNTL_STATUS__TB_TO_RTS_MASK 0x40000000L
+#define TP0_CNTL_STATUS__TB_TO_RTS 0x40000000L
+#define TP0_CNTL_STATUS__TP_BUSY_MASK 0x80000000L
+#define TP0_CNTL_STATUS__TP_BUSY 0x80000000L
+
+// TP0_DEBUG
+#define TP0_DEBUG__Q_LOD_CNTL_MASK 0x00000003L
+#define TP0_DEBUG__Q_SQ_TP_WAKEUP_MASK 0x00000008L
+#define TP0_DEBUG__Q_SQ_TP_WAKEUP 0x00000008L
+#define TP0_DEBUG__FL_TA_ADDRESSER_CNTL_MASK 0x001ffff0L
+#define TP0_DEBUG__REG_CLK_EN_MASK 0x00200000L
+#define TP0_DEBUG__REG_CLK_EN 0x00200000L
+#define TP0_DEBUG__PERF_CLK_EN_MASK 0x00400000L
+#define TP0_DEBUG__PERF_CLK_EN 0x00400000L
+#define TP0_DEBUG__TP_CLK_EN_MASK 0x00800000L
+#define TP0_DEBUG__TP_CLK_EN 0x00800000L
+#define TP0_DEBUG__Q_WALKER_CNTL_MASK 0x0f000000L
+#define TP0_DEBUG__Q_ALIGNER_CNTL_MASK 0x70000000L
+
+// TP0_CHICKEN
+#define TP0_CHICKEN__TT_MODE_MASK 0x00000001L
+#define TP0_CHICKEN__TT_MODE 0x00000001L
+#define TP0_CHICKEN__VFETCH_ADDRESS_MODE_MASK 0x00000002L
+#define TP0_CHICKEN__VFETCH_ADDRESS_MODE 0x00000002L
+#define TP0_CHICKEN__SPARE_MASK 0xfffffffcL
+
+// TP0_PERFCOUNTER0_SELECT
+#define TP0_PERFCOUNTER0_SELECT__PERFCOUNTER_SELECT_MASK 0x000000ffL
+
+// TP0_PERFCOUNTER0_HI
+#define TP0_PERFCOUNTER0_HI__PERFCOUNTER_HI_MASK 0x0000ffffL
+
+// TP0_PERFCOUNTER0_LOW
+#define TP0_PERFCOUNTER0_LOW__PERFCOUNTER_LOW_MASK 0xffffffffL
+
+// TP0_PERFCOUNTER1_SELECT
+#define TP0_PERFCOUNTER1_SELECT__PERFCOUNTER_SELECT_MASK 0x000000ffL
+
+// TP0_PERFCOUNTER1_HI
+#define TP0_PERFCOUNTER1_HI__PERFCOUNTER_HI_MASK 0x0000ffffL
+
+// TP0_PERFCOUNTER1_LOW
+#define TP0_PERFCOUNTER1_LOW__PERFCOUNTER_LOW_MASK 0xffffffffL
+
+// TCM_PERFCOUNTER0_SELECT
+#define TCM_PERFCOUNTER0_SELECT__PERFCOUNTER_SELECT_MASK 0x000000ffL
+
+// TCM_PERFCOUNTER1_SELECT
+#define TCM_PERFCOUNTER1_SELECT__PERFCOUNTER_SELECT_MASK 0x000000ffL
+
+// TCM_PERFCOUNTER0_HI
+#define TCM_PERFCOUNTER0_HI__PERFCOUNTER_HI_MASK 0x0000ffffL
+
+// TCM_PERFCOUNTER1_HI
+#define TCM_PERFCOUNTER1_HI__PERFCOUNTER_HI_MASK 0x0000ffffL
+
+// TCM_PERFCOUNTER0_LOW
+#define TCM_PERFCOUNTER0_LOW__PERFCOUNTER_LOW_MASK 0xffffffffL
+
+// TCM_PERFCOUNTER1_LOW
+#define TCM_PERFCOUNTER1_LOW__PERFCOUNTER_LOW_MASK 0xffffffffL
+
+// TCF_PERFCOUNTER0_SELECT
+#define TCF_PERFCOUNTER0_SELECT__PERFCOUNTER_SELECT_MASK 0x000000ffL
+
+// TCF_PERFCOUNTER1_SELECT
+#define TCF_PERFCOUNTER1_SELECT__PERFCOUNTER_SELECT_MASK 0x000000ffL
+
+// TCF_PERFCOUNTER2_SELECT
+#define TCF_PERFCOUNTER2_SELECT__PERFCOUNTER_SELECT_MASK 0x000000ffL
+
+// TCF_PERFCOUNTER3_SELECT
+#define TCF_PERFCOUNTER3_SELECT__PERFCOUNTER_SELECT_MASK 0x000000ffL
+
+// TCF_PERFCOUNTER4_SELECT
+#define TCF_PERFCOUNTER4_SELECT__PERFCOUNTER_SELECT_MASK 0x000000ffL
+
+// TCF_PERFCOUNTER5_SELECT
+#define TCF_PERFCOUNTER5_SELECT__PERFCOUNTER_SELECT_MASK 0x000000ffL
+
+// TCF_PERFCOUNTER6_SELECT
+#define TCF_PERFCOUNTER6_SELECT__PERFCOUNTER_SELECT_MASK 0x000000ffL
+
+// TCF_PERFCOUNTER7_SELECT
+#define TCF_PERFCOUNTER7_SELECT__PERFCOUNTER_SELECT_MASK 0x000000ffL
+
+// TCF_PERFCOUNTER8_SELECT
+#define TCF_PERFCOUNTER8_SELECT__PERFCOUNTER_SELECT_MASK 0x000000ffL
+
+// TCF_PERFCOUNTER9_SELECT
+#define TCF_PERFCOUNTER9_SELECT__PERFCOUNTER_SELECT_MASK 0x000000ffL
+
+// TCF_PERFCOUNTER10_SELECT
+#define TCF_PERFCOUNTER10_SELECT__PERFCOUNTER_SELECT_MASK 0x000000ffL
+
+// TCF_PERFCOUNTER11_SELECT
+#define TCF_PERFCOUNTER11_SELECT__PERFCOUNTER_SELECT_MASK 0x000000ffL
+
+// TCF_PERFCOUNTER0_HI
+#define TCF_PERFCOUNTER0_HI__PERFCOUNTER_HI_MASK 0x0000ffffL
+
+// TCF_PERFCOUNTER1_HI
+#define TCF_PERFCOUNTER1_HI__PERFCOUNTER_HI_MASK 0x0000ffffL
+
+// TCF_PERFCOUNTER2_HI
+#define TCF_PERFCOUNTER2_HI__PERFCOUNTER_HI_MASK 0x0000ffffL
+
+// TCF_PERFCOUNTER3_HI
+#define TCF_PERFCOUNTER3_HI__PERFCOUNTER_HI_MASK 0x0000ffffL
+
+// TCF_PERFCOUNTER4_HI
+#define TCF_PERFCOUNTER4_HI__PERFCOUNTER_HI_MASK 0x0000ffffL
+
+// TCF_PERFCOUNTER5_HI
+#define TCF_PERFCOUNTER5_HI__PERFCOUNTER_HI_MASK 0x0000ffffL
+
+// TCF_PERFCOUNTER6_HI
+#define TCF_PERFCOUNTER6_HI__PERFCOUNTER_HI_MASK 0x0000ffffL
+
+// TCF_PERFCOUNTER7_HI
+#define TCF_PERFCOUNTER7_HI__PERFCOUNTER_HI_MASK 0x0000ffffL
+
+// TCF_PERFCOUNTER8_HI
+#define TCF_PERFCOUNTER8_HI__PERFCOUNTER_HI_MASK 0x0000ffffL
+
+// TCF_PERFCOUNTER9_HI
+#define TCF_PERFCOUNTER9_HI__PERFCOUNTER_HI_MASK 0x0000ffffL
+
+// TCF_PERFCOUNTER10_HI
+#define TCF_PERFCOUNTER10_HI__PERFCOUNTER_HI_MASK 0x0000ffffL
+
+// TCF_PERFCOUNTER11_HI
+#define TCF_PERFCOUNTER11_HI__PERFCOUNTER_HI_MASK 0x0000ffffL
+
+// TCF_PERFCOUNTER0_LOW
+#define TCF_PERFCOUNTER0_LOW__PERFCOUNTER_LOW_MASK 0xffffffffL
+
+// TCF_PERFCOUNTER1_LOW
+#define TCF_PERFCOUNTER1_LOW__PERFCOUNTER_LOW_MASK 0xffffffffL
+
+// TCF_PERFCOUNTER2_LOW
+#define TCF_PERFCOUNTER2_LOW__PERFCOUNTER_LOW_MASK 0xffffffffL
+
+// TCF_PERFCOUNTER3_LOW
+#define TCF_PERFCOUNTER3_LOW__PERFCOUNTER_LOW_MASK 0xffffffffL
+
+// TCF_PERFCOUNTER4_LOW
+#define TCF_PERFCOUNTER4_LOW__PERFCOUNTER_LOW_MASK 0xffffffffL
+
+// TCF_PERFCOUNTER5_LOW
+#define TCF_PERFCOUNTER5_LOW__PERFCOUNTER_LOW_MASK 0xffffffffL
+
+// TCF_PERFCOUNTER6_LOW
+#define TCF_PERFCOUNTER6_LOW__PERFCOUNTER_LOW_MASK 0xffffffffL
+
+// TCF_PERFCOUNTER7_LOW
+#define TCF_PERFCOUNTER7_LOW__PERFCOUNTER_LOW_MASK 0xffffffffL
+
+// TCF_PERFCOUNTER8_LOW
+#define TCF_PERFCOUNTER8_LOW__PERFCOUNTER_LOW_MASK 0xffffffffL
+
+// TCF_PERFCOUNTER9_LOW
+#define TCF_PERFCOUNTER9_LOW__PERFCOUNTER_LOW_MASK 0xffffffffL
+
+// TCF_PERFCOUNTER10_LOW
+#define TCF_PERFCOUNTER10_LOW__PERFCOUNTER_LOW_MASK 0xffffffffL
+
+// TCF_PERFCOUNTER11_LOW
+#define TCF_PERFCOUNTER11_LOW__PERFCOUNTER_LOW_MASK 0xffffffffL
+
+// TCF_DEBUG
+#define TCF_DEBUG__not_MH_TC_rtr_MASK 0x00000040L
+#define TCF_DEBUG__not_MH_TC_rtr 0x00000040L
+#define TCF_DEBUG__TC_MH_send_MASK 0x00000080L
+#define TCF_DEBUG__TC_MH_send 0x00000080L
+#define TCF_DEBUG__not_FG0_rtr_MASK 0x00000100L
+#define TCF_DEBUG__not_FG0_rtr 0x00000100L
+#define TCF_DEBUG__not_TCB_TCO_rtr_MASK 0x00001000L
+#define TCF_DEBUG__not_TCB_TCO_rtr 0x00001000L
+#define TCF_DEBUG__TCB_ff_stall_MASK 0x00002000L
+#define TCF_DEBUG__TCB_ff_stall 0x00002000L
+#define TCF_DEBUG__TCB_miss_stall_MASK 0x00004000L
+#define TCF_DEBUG__TCB_miss_stall 0x00004000L
+#define TCF_DEBUG__TCA_TCB_stall_MASK 0x00008000L
+#define TCF_DEBUG__TCA_TCB_stall 0x00008000L
+#define TCF_DEBUG__PF0_stall_MASK 0x00010000L
+#define TCF_DEBUG__PF0_stall 0x00010000L
+#define TCF_DEBUG__TP0_full_MASK 0x00100000L
+#define TCF_DEBUG__TP0_full 0x00100000L
+#define TCF_DEBUG__TPC_full_MASK 0x01000000L
+#define TCF_DEBUG__TPC_full 0x01000000L
+#define TCF_DEBUG__not_TPC_rtr_MASK 0x02000000L
+#define TCF_DEBUG__not_TPC_rtr 0x02000000L
+#define TCF_DEBUG__tca_state_rts_MASK 0x04000000L
+#define TCF_DEBUG__tca_state_rts 0x04000000L
+#define TCF_DEBUG__tca_rts_MASK 0x08000000L
+#define TCF_DEBUG__tca_rts 0x08000000L
+
+// TCA_FIFO_DEBUG
+#define TCA_FIFO_DEBUG__tp0_full_MASK 0x00000001L
+#define TCA_FIFO_DEBUG__tp0_full 0x00000001L
+#define TCA_FIFO_DEBUG__tpc_full_MASK 0x00000010L
+#define TCA_FIFO_DEBUG__tpc_full 0x00000010L
+#define TCA_FIFO_DEBUG__load_tpc_fifo_MASK 0x00000020L
+#define TCA_FIFO_DEBUG__load_tpc_fifo 0x00000020L
+#define TCA_FIFO_DEBUG__load_tp_fifos_MASK 0x00000040L
+#define TCA_FIFO_DEBUG__load_tp_fifos 0x00000040L
+#define TCA_FIFO_DEBUG__FW_full_MASK 0x00000080L
+#define TCA_FIFO_DEBUG__FW_full 0x00000080L
+#define TCA_FIFO_DEBUG__not_FW_rtr0_MASK 0x00000100L
+#define TCA_FIFO_DEBUG__not_FW_rtr0 0x00000100L
+#define TCA_FIFO_DEBUG__FW_rts0_MASK 0x00001000L
+#define TCA_FIFO_DEBUG__FW_rts0 0x00001000L
+#define TCA_FIFO_DEBUG__not_FW_tpc_rtr_MASK 0x00010000L
+#define TCA_FIFO_DEBUG__not_FW_tpc_rtr 0x00010000L
+#define TCA_FIFO_DEBUG__FW_tpc_rts_MASK 0x00020000L
+#define TCA_FIFO_DEBUG__FW_tpc_rts 0x00020000L
+
+// TCA_PROBE_DEBUG
+#define TCA_PROBE_DEBUG__ProbeFilter_stall_MASK 0x00000001L
+#define TCA_PROBE_DEBUG__ProbeFilter_stall 0x00000001L
+
+// TCA_TPC_DEBUG
+#define TCA_TPC_DEBUG__captue_state_rts_MASK 0x00001000L
+#define TCA_TPC_DEBUG__captue_state_rts 0x00001000L
+#define TCA_TPC_DEBUG__capture_tca_rts_MASK 0x00002000L
+#define TCA_TPC_DEBUG__capture_tca_rts 0x00002000L
+
+// TCB_CORE_DEBUG
+#define TCB_CORE_DEBUG__access512_MASK 0x00000001L
+#define TCB_CORE_DEBUG__access512 0x00000001L
+#define TCB_CORE_DEBUG__tiled_MASK 0x00000002L
+#define TCB_CORE_DEBUG__tiled 0x00000002L
+#define TCB_CORE_DEBUG__opcode_MASK 0x00000070L
+#define TCB_CORE_DEBUG__format_MASK 0x00003f00L
+#define TCB_CORE_DEBUG__sector_format_MASK 0x001f0000L
+#define TCB_CORE_DEBUG__sector_format512_MASK 0x07000000L
+
+// TCB_TAG0_DEBUG
+#define TCB_TAG0_DEBUG__mem_read_cycle_MASK 0x000003ffL
+#define TCB_TAG0_DEBUG__tag_access_cycle_MASK 0x001ff000L
+#define TCB_TAG0_DEBUG__miss_stall_MASK 0x00800000L
+#define TCB_TAG0_DEBUG__miss_stall 0x00800000L
+#define TCB_TAG0_DEBUG__num_feee_lines_MASK 0x1f000000L
+#define TCB_TAG0_DEBUG__max_misses_MASK 0xe0000000L
+
+// TCB_TAG1_DEBUG
+#define TCB_TAG1_DEBUG__mem_read_cycle_MASK 0x000003ffL
+#define TCB_TAG1_DEBUG__tag_access_cycle_MASK 0x001ff000L
+#define TCB_TAG1_DEBUG__miss_stall_MASK 0x00800000L
+#define TCB_TAG1_DEBUG__miss_stall 0x00800000L
+#define TCB_TAG1_DEBUG__num_feee_lines_MASK 0x1f000000L
+#define TCB_TAG1_DEBUG__max_misses_MASK 0xe0000000L
+
+// TCB_TAG2_DEBUG
+#define TCB_TAG2_DEBUG__mem_read_cycle_MASK 0x000003ffL
+#define TCB_TAG2_DEBUG__tag_access_cycle_MASK 0x001ff000L
+#define TCB_TAG2_DEBUG__miss_stall_MASK 0x00800000L
+#define TCB_TAG2_DEBUG__miss_stall 0x00800000L
+#define TCB_TAG2_DEBUG__num_feee_lines_MASK 0x1f000000L
+#define TCB_TAG2_DEBUG__max_misses_MASK 0xe0000000L
+
+// TCB_TAG3_DEBUG
+#define TCB_TAG3_DEBUG__mem_read_cycle_MASK 0x000003ffL
+#define TCB_TAG3_DEBUG__tag_access_cycle_MASK 0x001ff000L
+#define TCB_TAG3_DEBUG__miss_stall_MASK 0x00800000L
+#define TCB_TAG3_DEBUG__miss_stall 0x00800000L
+#define TCB_TAG3_DEBUG__num_feee_lines_MASK 0x1f000000L
+#define TCB_TAG3_DEBUG__max_misses_MASK 0xe0000000L
+
+// TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__left_done_MASK 0x00000001L
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__left_done 0x00000001L
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__fg0_sends_left_MASK 0x00000004L
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__fg0_sends_left 0x00000004L
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__one_sector_to_go_left_q_MASK 0x00000010L
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__one_sector_to_go_left_q 0x00000010L
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__no_sectors_to_go_MASK 0x00000020L
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__no_sectors_to_go 0x00000020L
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__update_left_MASK 0x00000040L
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__update_left 0x00000040L
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__sector_mask_left_count_q_MASK 0x00000f80L
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__sector_mask_left_q_MASK 0x0ffff000L
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__valid_left_q_MASK 0x10000000L
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__valid_left_q 0x10000000L
+
+// TCB_FETCH_GEN_WALKER_DEBUG
+#define TCB_FETCH_GEN_WALKER_DEBUG__quad_sel_left_MASK 0x00000030L
+#define TCB_FETCH_GEN_WALKER_DEBUG__set_sel_left_MASK 0x000000c0L
+#define TCB_FETCH_GEN_WALKER_DEBUG__right_eq_left_MASK 0x00000800L
+#define TCB_FETCH_GEN_WALKER_DEBUG__right_eq_left 0x00000800L
+#define TCB_FETCH_GEN_WALKER_DEBUG__ff_fg_type512_MASK 0x00007000L
+#define TCB_FETCH_GEN_WALKER_DEBUG__busy_MASK 0x00008000L
+#define TCB_FETCH_GEN_WALKER_DEBUG__busy 0x00008000L
+#define TCB_FETCH_GEN_WALKER_DEBUG__setquads_to_send_MASK 0x000f0000L
+
+// TCB_FETCH_GEN_PIPE0_DEBUG
+#define TCB_FETCH_GEN_PIPE0_DEBUG__tc0_arb_rts_MASK 0x00000001L
+#define TCB_FETCH_GEN_PIPE0_DEBUG__tc0_arb_rts 0x00000001L
+#define TCB_FETCH_GEN_PIPE0_DEBUG__ga_out_rts_MASK 0x00000004L
+#define TCB_FETCH_GEN_PIPE0_DEBUG__ga_out_rts 0x00000004L
+#define TCB_FETCH_GEN_PIPE0_DEBUG__tc_arb_format_MASK 0x0000fff0L
+#define TCB_FETCH_GEN_PIPE0_DEBUG__tc_arb_fmsopcode_MASK 0x001f0000L
+#define TCB_FETCH_GEN_PIPE0_DEBUG__tc_arb_request_type_MASK 0x00600000L
+#define TCB_FETCH_GEN_PIPE0_DEBUG__busy_MASK 0x00800000L
+#define TCB_FETCH_GEN_PIPE0_DEBUG__busy 0x00800000L
+#define TCB_FETCH_GEN_PIPE0_DEBUG__fgo_busy_MASK 0x01000000L
+#define TCB_FETCH_GEN_PIPE0_DEBUG__fgo_busy 0x01000000L
+#define TCB_FETCH_GEN_PIPE0_DEBUG__ga_busy_MASK 0x02000000L
+#define TCB_FETCH_GEN_PIPE0_DEBUG__ga_busy 0x02000000L
+#define TCB_FETCH_GEN_PIPE0_DEBUG__mc_sel_q_MASK 0x0c000000L
+#define TCB_FETCH_GEN_PIPE0_DEBUG__valid_q_MASK 0x10000000L
+#define TCB_FETCH_GEN_PIPE0_DEBUG__valid_q 0x10000000L
+#define TCB_FETCH_GEN_PIPE0_DEBUG__arb_RTR_MASK 0x40000000L
+#define TCB_FETCH_GEN_PIPE0_DEBUG__arb_RTR 0x40000000L
+
+// TCD_INPUT0_DEBUG
+#define TCD_INPUT0_DEBUG__empty_MASK 0x00010000L
+#define TCD_INPUT0_DEBUG__empty 0x00010000L
+#define TCD_INPUT0_DEBUG__full_MASK 0x00020000L
+#define TCD_INPUT0_DEBUG__full 0x00020000L
+#define TCD_INPUT0_DEBUG__valid_q1_MASK 0x00100000L
+#define TCD_INPUT0_DEBUG__valid_q1 0x00100000L
+#define TCD_INPUT0_DEBUG__cnt_q1_MASK 0x00600000L
+#define TCD_INPUT0_DEBUG__last_send_q1_MASK 0x00800000L
+#define TCD_INPUT0_DEBUG__last_send_q1 0x00800000L
+#define TCD_INPUT0_DEBUG__ip_send_MASK 0x01000000L
+#define TCD_INPUT0_DEBUG__ip_send 0x01000000L
+#define TCD_INPUT0_DEBUG__ipbuf_dxt_send_MASK 0x02000000L
+#define TCD_INPUT0_DEBUG__ipbuf_dxt_send 0x02000000L
+#define TCD_INPUT0_DEBUG__ipbuf_busy_MASK 0x04000000L
+#define TCD_INPUT0_DEBUG__ipbuf_busy 0x04000000L
+
+// TCD_DEGAMMA_DEBUG
+#define TCD_DEGAMMA_DEBUG__dgmm_ftfconv_dgmmen_MASK 0x00000003L
+#define TCD_DEGAMMA_DEBUG__dgmm_ctrl_dgmm8_MASK 0x00000004L
+#define TCD_DEGAMMA_DEBUG__dgmm_ctrl_dgmm8 0x00000004L
+#define TCD_DEGAMMA_DEBUG__dgmm_ctrl_last_send_MASK 0x00000008L
+#define TCD_DEGAMMA_DEBUG__dgmm_ctrl_last_send 0x00000008L
+#define TCD_DEGAMMA_DEBUG__dgmm_ctrl_send_MASK 0x00000010L
+#define TCD_DEGAMMA_DEBUG__dgmm_ctrl_send 0x00000010L
+#define TCD_DEGAMMA_DEBUG__dgmm_stall_MASK 0x00000020L
+#define TCD_DEGAMMA_DEBUG__dgmm_stall 0x00000020L
+#define TCD_DEGAMMA_DEBUG__dgmm_pstate_MASK 0x00000040L
+#define TCD_DEGAMMA_DEBUG__dgmm_pstate 0x00000040L
+
+// TCD_DXTMUX_SCTARB_DEBUG
+#define TCD_DXTMUX_SCTARB_DEBUG__pstate_MASK 0x00000200L
+#define TCD_DXTMUX_SCTARB_DEBUG__pstate 0x00000200L
+#define TCD_DXTMUX_SCTARB_DEBUG__sctrmx_rtr_MASK 0x00000400L
+#define TCD_DXTMUX_SCTARB_DEBUG__sctrmx_rtr 0x00000400L
+#define TCD_DXTMUX_SCTARB_DEBUG__dxtc_rtr_MASK 0x00000800L
+#define TCD_DXTMUX_SCTARB_DEBUG__dxtc_rtr 0x00000800L
+#define TCD_DXTMUX_SCTARB_DEBUG__sctrarb_multcyl_send_MASK 0x00008000L
+#define TCD_DXTMUX_SCTARB_DEBUG__sctrarb_multcyl_send 0x00008000L
+#define TCD_DXTMUX_SCTARB_DEBUG__sctrmx0_sctrarb_rts_MASK 0x00010000L
+#define TCD_DXTMUX_SCTARB_DEBUG__sctrmx0_sctrarb_rts 0x00010000L
+#define TCD_DXTMUX_SCTARB_DEBUG__dxtc_sctrarb_send_MASK 0x00100000L
+#define TCD_DXTMUX_SCTARB_DEBUG__dxtc_sctrarb_send 0x00100000L
+#define TCD_DXTMUX_SCTARB_DEBUG__dxtc_dgmmpd_last_send_MASK 0x08000000L
+#define TCD_DXTMUX_SCTARB_DEBUG__dxtc_dgmmpd_last_send 0x08000000L
+#define TCD_DXTMUX_SCTARB_DEBUG__dxtc_dgmmpd_send_MASK 0x10000000L
+#define TCD_DXTMUX_SCTARB_DEBUG__dxtc_dgmmpd_send 0x10000000L
+#define TCD_DXTMUX_SCTARB_DEBUG__dcmp_mux_send_MASK 0x20000000L
+#define TCD_DXTMUX_SCTARB_DEBUG__dcmp_mux_send 0x20000000L
+
+// TCD_DXTC_ARB_DEBUG
+#define TCD_DXTC_ARB_DEBUG__n0_stall_MASK 0x00000010L
+#define TCD_DXTC_ARB_DEBUG__n0_stall 0x00000010L
+#define TCD_DXTC_ARB_DEBUG__pstate_MASK 0x00000020L
+#define TCD_DXTC_ARB_DEBUG__pstate 0x00000020L
+#define TCD_DXTC_ARB_DEBUG__arb_dcmp01_last_send_MASK 0x00000040L
+#define TCD_DXTC_ARB_DEBUG__arb_dcmp01_last_send 0x00000040L
+#define TCD_DXTC_ARB_DEBUG__arb_dcmp01_cnt_MASK 0x00000180L
+#define TCD_DXTC_ARB_DEBUG__arb_dcmp01_sector_MASK 0x00000e00L
+#define TCD_DXTC_ARB_DEBUG__arb_dcmp01_cacheline_MASK 0x0003f000L
+#define TCD_DXTC_ARB_DEBUG__arb_dcmp01_format_MASK 0x3ffc0000L
+#define TCD_DXTC_ARB_DEBUG__arb_dcmp01_send_MASK 0x40000000L
+#define TCD_DXTC_ARB_DEBUG__arb_dcmp01_send 0x40000000L
+#define TCD_DXTC_ARB_DEBUG__n0_dxt2_4_types_MASK 0x80000000L
+#define TCD_DXTC_ARB_DEBUG__n0_dxt2_4_types 0x80000000L
+
+// TCD_STALLS_DEBUG
+#define TCD_STALLS_DEBUG__not_multcyl_sctrarb_rtr_MASK 0x00000400L
+#define TCD_STALLS_DEBUG__not_multcyl_sctrarb_rtr 0x00000400L
+#define TCD_STALLS_DEBUG__not_sctrmx0_sctrarb_rtr_MASK 0x00000800L
+#define TCD_STALLS_DEBUG__not_sctrmx0_sctrarb_rtr 0x00000800L
+#define TCD_STALLS_DEBUG__not_dcmp0_arb_rtr_MASK 0x00020000L
+#define TCD_STALLS_DEBUG__not_dcmp0_arb_rtr 0x00020000L
+#define TCD_STALLS_DEBUG__not_dgmmpd_dxtc_rtr_MASK 0x00040000L
+#define TCD_STALLS_DEBUG__not_dgmmpd_dxtc_rtr 0x00040000L
+#define TCD_STALLS_DEBUG__not_mux_dcmp_rtr_MASK 0x00080000L
+#define TCD_STALLS_DEBUG__not_mux_dcmp_rtr 0x00080000L
+#define TCD_STALLS_DEBUG__not_incoming_rtr_MASK 0x80000000L
+#define TCD_STALLS_DEBUG__not_incoming_rtr 0x80000000L
+
+// TCO_STALLS_DEBUG
+#define TCO_STALLS_DEBUG__quad0_sg_crd_RTR_MASK 0x00000020L
+#define TCO_STALLS_DEBUG__quad0_sg_crd_RTR 0x00000020L
+#define TCO_STALLS_DEBUG__quad0_rl_sg_RTR_MASK 0x00000040L
+#define TCO_STALLS_DEBUG__quad0_rl_sg_RTR 0x00000040L
+#define TCO_STALLS_DEBUG__quad0_TCO_TCB_rtr_d_MASK 0x00000080L
+#define TCO_STALLS_DEBUG__quad0_TCO_TCB_rtr_d 0x00000080L
+
+// TCO_QUAD0_DEBUG0
+#define TCO_QUAD0_DEBUG0__rl_sg_sector_format_MASK 0x000000ffL
+#define TCO_QUAD0_DEBUG0__rl_sg_end_of_sample_MASK 0x00000100L
+#define TCO_QUAD0_DEBUG0__rl_sg_end_of_sample 0x00000100L
+#define TCO_QUAD0_DEBUG0__rl_sg_rtr_MASK 0x00000200L
+#define TCO_QUAD0_DEBUG0__rl_sg_rtr 0x00000200L
+#define TCO_QUAD0_DEBUG0__rl_sg_rts_MASK 0x00000400L
+#define TCO_QUAD0_DEBUG0__rl_sg_rts 0x00000400L
+#define TCO_QUAD0_DEBUG0__sg_crd_end_of_sample_MASK 0x00000800L
+#define TCO_QUAD0_DEBUG0__sg_crd_end_of_sample 0x00000800L
+#define TCO_QUAD0_DEBUG0__sg_crd_rtr_MASK 0x00001000L
+#define TCO_QUAD0_DEBUG0__sg_crd_rtr 0x00001000L
+#define TCO_QUAD0_DEBUG0__sg_crd_rts_MASK 0x00002000L
+#define TCO_QUAD0_DEBUG0__sg_crd_rts 0x00002000L
+#define TCO_QUAD0_DEBUG0__stageN1_valid_q_MASK 0x00010000L
+#define TCO_QUAD0_DEBUG0__stageN1_valid_q 0x00010000L
+#define TCO_QUAD0_DEBUG0__read_cache_q_MASK 0x01000000L
+#define TCO_QUAD0_DEBUG0__read_cache_q 0x01000000L
+#define TCO_QUAD0_DEBUG0__cache_read_RTR_MASK 0x02000000L
+#define TCO_QUAD0_DEBUG0__cache_read_RTR 0x02000000L
+#define TCO_QUAD0_DEBUG0__all_sectors_written_set3_MASK 0x04000000L
+#define TCO_QUAD0_DEBUG0__all_sectors_written_set3 0x04000000L
+#define TCO_QUAD0_DEBUG0__all_sectors_written_set2_MASK 0x08000000L
+#define TCO_QUAD0_DEBUG0__all_sectors_written_set2 0x08000000L
+#define TCO_QUAD0_DEBUG0__all_sectors_written_set1_MASK 0x10000000L
+#define TCO_QUAD0_DEBUG0__all_sectors_written_set1 0x10000000L
+#define TCO_QUAD0_DEBUG0__all_sectors_written_set0_MASK 0x20000000L
+#define TCO_QUAD0_DEBUG0__all_sectors_written_set0 0x20000000L
+#define TCO_QUAD0_DEBUG0__busy_MASK 0x40000000L
+#define TCO_QUAD0_DEBUG0__busy 0x40000000L
+
+// TCO_QUAD0_DEBUG1
+#define TCO_QUAD0_DEBUG1__fifo_busy_MASK 0x00000001L
+#define TCO_QUAD0_DEBUG1__fifo_busy 0x00000001L
+#define TCO_QUAD0_DEBUG1__empty_MASK 0x00000002L
+#define TCO_QUAD0_DEBUG1__empty 0x00000002L
+#define TCO_QUAD0_DEBUG1__full_MASK 0x00000004L
+#define TCO_QUAD0_DEBUG1__full 0x00000004L
+#define TCO_QUAD0_DEBUG1__write_enable_MASK 0x00000008L
+#define TCO_QUAD0_DEBUG1__write_enable 0x00000008L
+#define TCO_QUAD0_DEBUG1__fifo_write_ptr_MASK 0x000007f0L
+#define TCO_QUAD0_DEBUG1__fifo_read_ptr_MASK 0x0003f800L
+#define TCO_QUAD0_DEBUG1__cache_read_busy_MASK 0x00100000L
+#define TCO_QUAD0_DEBUG1__cache_read_busy 0x00100000L
+#define TCO_QUAD0_DEBUG1__latency_fifo_busy_MASK 0x00200000L
+#define TCO_QUAD0_DEBUG1__latency_fifo_busy 0x00200000L
+#define TCO_QUAD0_DEBUG1__input_quad_busy_MASK 0x00400000L
+#define TCO_QUAD0_DEBUG1__input_quad_busy 0x00400000L
+#define TCO_QUAD0_DEBUG1__tco_quad_pipe_busy_MASK 0x00800000L
+#define TCO_QUAD0_DEBUG1__tco_quad_pipe_busy 0x00800000L
+#define TCO_QUAD0_DEBUG1__TCB_TCO_rtr_d_MASK 0x01000000L
+#define TCO_QUAD0_DEBUG1__TCB_TCO_rtr_d 0x01000000L
+#define TCO_QUAD0_DEBUG1__TCB_TCO_xfc_q_MASK 0x02000000L
+#define TCO_QUAD0_DEBUG1__TCB_TCO_xfc_q 0x02000000L
+#define TCO_QUAD0_DEBUG1__rl_sg_rtr_MASK 0x04000000L
+#define TCO_QUAD0_DEBUG1__rl_sg_rtr 0x04000000L
+#define TCO_QUAD0_DEBUG1__rl_sg_rts_MASK 0x08000000L
+#define TCO_QUAD0_DEBUG1__rl_sg_rts 0x08000000L
+#define TCO_QUAD0_DEBUG1__sg_crd_rtr_MASK 0x10000000L
+#define TCO_QUAD0_DEBUG1__sg_crd_rtr 0x10000000L
+#define TCO_QUAD0_DEBUG1__sg_crd_rts_MASK 0x20000000L
+#define TCO_QUAD0_DEBUG1__sg_crd_rts 0x20000000L
+#define TCO_QUAD0_DEBUG1__TCO_TCB_read_xfc_MASK 0x40000000L
+#define TCO_QUAD0_DEBUG1__TCO_TCB_read_xfc 0x40000000L
+
+// SQ_GPR_MANAGEMENT
+#define SQ_GPR_MANAGEMENT__REG_DYNAMIC_MASK 0x00000001L
+#define SQ_GPR_MANAGEMENT__REG_DYNAMIC 0x00000001L
+#define SQ_GPR_MANAGEMENT__REG_SIZE_PIX_MASK 0x000007f0L
+#define SQ_GPR_MANAGEMENT__REG_SIZE_VTX_MASK 0x0007f000L
+
+// SQ_FLOW_CONTROL
+#define SQ_FLOW_CONTROL__INPUT_ARBITRATION_POLICY_MASK 0x00000003L
+#define SQ_FLOW_CONTROL__ONE_THREAD_MASK 0x00000010L
+#define SQ_FLOW_CONTROL__ONE_THREAD 0x00000010L
+#define SQ_FLOW_CONTROL__ONE_ALU_MASK 0x00000100L
+#define SQ_FLOW_CONTROL__ONE_ALU 0x00000100L
+#define SQ_FLOW_CONTROL__CF_WR_BASE_MASK 0x0000f000L
+#define SQ_FLOW_CONTROL__NO_PV_PS_MASK 0x00010000L
+#define SQ_FLOW_CONTROL__NO_PV_PS 0x00010000L
+#define SQ_FLOW_CONTROL__NO_LOOP_EXIT_MASK 0x00020000L
+#define SQ_FLOW_CONTROL__NO_LOOP_EXIT 0x00020000L
+#define SQ_FLOW_CONTROL__NO_CEXEC_OPTIMIZE_MASK 0x00040000L
+#define SQ_FLOW_CONTROL__NO_CEXEC_OPTIMIZE 0x00040000L
+#define SQ_FLOW_CONTROL__TEXTURE_ARBITRATION_POLICY_MASK 0x00180000L
+#define SQ_FLOW_CONTROL__VC_ARBITRATION_POLICY_MASK 0x00200000L
+#define SQ_FLOW_CONTROL__VC_ARBITRATION_POLICY 0x00200000L
+#define SQ_FLOW_CONTROL__ALU_ARBITRATION_POLICY_MASK 0x00400000L
+#define SQ_FLOW_CONTROL__ALU_ARBITRATION_POLICY 0x00400000L
+#define SQ_FLOW_CONTROL__NO_ARB_EJECT_MASK 0x00800000L
+#define SQ_FLOW_CONTROL__NO_ARB_EJECT 0x00800000L
+#define SQ_FLOW_CONTROL__NO_CFS_EJECT_MASK 0x01000000L
+#define SQ_FLOW_CONTROL__NO_CFS_EJECT 0x01000000L
+#define SQ_FLOW_CONTROL__POS_EXP_PRIORITY_MASK 0x02000000L
+#define SQ_FLOW_CONTROL__POS_EXP_PRIORITY 0x02000000L
+#define SQ_FLOW_CONTROL__NO_EARLY_THREAD_TERMINATION_MASK 0x04000000L
+#define SQ_FLOW_CONTROL__NO_EARLY_THREAD_TERMINATION 0x04000000L
+#define SQ_FLOW_CONTROL__PS_PREFETCH_COLOR_ALLOC_MASK 0x08000000L
+#define SQ_FLOW_CONTROL__PS_PREFETCH_COLOR_ALLOC 0x08000000L
+
+// SQ_INST_STORE_MANAGMENT
+#define SQ_INST_STORE_MANAGMENT__INST_BASE_PIX_MASK 0x00000fffL
+#define SQ_INST_STORE_MANAGMENT__INST_BASE_VTX_MASK 0x0fff0000L
+
+// SQ_RESOURCE_MANAGMENT
+#define SQ_RESOURCE_MANAGMENT__VTX_THREAD_BUF_ENTRIES_MASK 0x000000ffL
+#define SQ_RESOURCE_MANAGMENT__PIX_THREAD_BUF_ENTRIES_MASK 0x0000ff00L
+#define SQ_RESOURCE_MANAGMENT__EXPORT_BUF_ENTRIES_MASK 0x01ff0000L
+
+// SQ_EO_RT
+#define SQ_EO_RT__EO_CONSTANTS_RT_MASK 0x000000ffL
+#define SQ_EO_RT__EO_TSTATE_RT_MASK 0x00ff0000L
+
+// SQ_DEBUG_MISC
+#define SQ_DEBUG_MISC__DB_ALUCST_SIZE_MASK 0x000007ffL
+#define SQ_DEBUG_MISC__DB_TSTATE_SIZE_MASK 0x000ff000L
+#define SQ_DEBUG_MISC__DB_READ_CTX_MASK 0x00100000L
+#define SQ_DEBUG_MISC__DB_READ_CTX 0x00100000L
+#define SQ_DEBUG_MISC__RESERVED_MASK 0x00600000L
+#define SQ_DEBUG_MISC__DB_READ_MEMORY_MASK 0x01800000L
+#define SQ_DEBUG_MISC__DB_WEN_MEMORY_0_MASK 0x02000000L
+#define SQ_DEBUG_MISC__DB_WEN_MEMORY_0 0x02000000L
+#define SQ_DEBUG_MISC__DB_WEN_MEMORY_1_MASK 0x04000000L
+#define SQ_DEBUG_MISC__DB_WEN_MEMORY_1 0x04000000L
+#define SQ_DEBUG_MISC__DB_WEN_MEMORY_2_MASK 0x08000000L
+#define SQ_DEBUG_MISC__DB_WEN_MEMORY_2 0x08000000L
+#define SQ_DEBUG_MISC__DB_WEN_MEMORY_3_MASK 0x10000000L
+#define SQ_DEBUG_MISC__DB_WEN_MEMORY_3 0x10000000L
+
+// SQ_ACTIVITY_METER_CNTL
+#define SQ_ACTIVITY_METER_CNTL__TIMEBASE_MASK 0x000000ffL
+#define SQ_ACTIVITY_METER_CNTL__THRESHOLD_LOW_MASK 0x0000ff00L
+#define SQ_ACTIVITY_METER_CNTL__THRESHOLD_HIGH_MASK 0x00ff0000L
+#define SQ_ACTIVITY_METER_CNTL__SPARE_MASK 0xff000000L
+
+// SQ_ACTIVITY_METER_STATUS
+#define SQ_ACTIVITY_METER_STATUS__PERCENT_BUSY_MASK 0x000000ffL
+
+// SQ_INPUT_ARB_PRIORITY
+#define SQ_INPUT_ARB_PRIORITY__PC_AVAIL_WEIGHT_MASK 0x00000007L
+#define SQ_INPUT_ARB_PRIORITY__PC_AVAIL_SIGN_MASK 0x00000008L
+#define SQ_INPUT_ARB_PRIORITY__PC_AVAIL_SIGN 0x00000008L
+#define SQ_INPUT_ARB_PRIORITY__SX_AVAIL_WEIGHT_MASK 0x00000070L
+#define SQ_INPUT_ARB_PRIORITY__SX_AVAIL_SIGN_MASK 0x00000080L
+#define SQ_INPUT_ARB_PRIORITY__SX_AVAIL_SIGN 0x00000080L
+#define SQ_INPUT_ARB_PRIORITY__THRESHOLD_MASK 0x0003ff00L
+
+// SQ_THREAD_ARB_PRIORITY
+#define SQ_THREAD_ARB_PRIORITY__PC_AVAIL_WEIGHT_MASK 0x00000007L
+#define SQ_THREAD_ARB_PRIORITY__PC_AVAIL_SIGN_MASK 0x00000008L
+#define SQ_THREAD_ARB_PRIORITY__PC_AVAIL_SIGN 0x00000008L
+#define SQ_THREAD_ARB_PRIORITY__SX_AVAIL_WEIGHT_MASK 0x00000070L
+#define SQ_THREAD_ARB_PRIORITY__SX_AVAIL_SIGN_MASK 0x00000080L
+#define SQ_THREAD_ARB_PRIORITY__SX_AVAIL_SIGN 0x00000080L
+#define SQ_THREAD_ARB_PRIORITY__THRESHOLD_MASK 0x0003ff00L
+#define SQ_THREAD_ARB_PRIORITY__RESERVED_MASK 0x000c0000L
+#define SQ_THREAD_ARB_PRIORITY__VS_PRIORITIZE_SERIAL_MASK 0x00100000L
+#define SQ_THREAD_ARB_PRIORITY__VS_PRIORITIZE_SERIAL 0x00100000L
+#define SQ_THREAD_ARB_PRIORITY__PS_PRIORITIZE_SERIAL_MASK 0x00200000L
+#define SQ_THREAD_ARB_PRIORITY__PS_PRIORITIZE_SERIAL 0x00200000L
+#define SQ_THREAD_ARB_PRIORITY__USE_SERIAL_COUNT_THRESHOLD_MASK 0x00400000L
+#define SQ_THREAD_ARB_PRIORITY__USE_SERIAL_COUNT_THRESHOLD 0x00400000L
+
+// SQ_VS_WATCHDOG_TIMER
+#define SQ_VS_WATCHDOG_TIMER__ENABLE_MASK 0x00000001L
+#define SQ_VS_WATCHDOG_TIMER__ENABLE 0x00000001L
+#define SQ_VS_WATCHDOG_TIMER__TIMEOUT_COUNT_MASK 0xfffffffeL
+
+// SQ_PS_WATCHDOG_TIMER
+#define SQ_PS_WATCHDOG_TIMER__ENABLE_MASK 0x00000001L
+#define SQ_PS_WATCHDOG_TIMER__ENABLE 0x00000001L
+#define SQ_PS_WATCHDOG_TIMER__TIMEOUT_COUNT_MASK 0xfffffffeL
+
+// SQ_INT_CNTL
+#define SQ_INT_CNTL__PS_WATCHDOG_MASK_MASK 0x00000001L
+#define SQ_INT_CNTL__PS_WATCHDOG_MASK 0x00000001L
+#define SQ_INT_CNTL__VS_WATCHDOG_MASK_MASK 0x00000002L
+#define SQ_INT_CNTL__VS_WATCHDOG_MASK 0x00000002L
+
+// SQ_INT_STATUS
+#define SQ_INT_STATUS__PS_WATCHDOG_TIMEOUT_MASK 0x00000001L
+#define SQ_INT_STATUS__PS_WATCHDOG_TIMEOUT 0x00000001L
+#define SQ_INT_STATUS__VS_WATCHDOG_TIMEOUT_MASK 0x00000002L
+#define SQ_INT_STATUS__VS_WATCHDOG_TIMEOUT 0x00000002L
+
+// SQ_INT_ACK
+#define SQ_INT_ACK__PS_WATCHDOG_ACK_MASK 0x00000001L
+#define SQ_INT_ACK__PS_WATCHDOG_ACK 0x00000001L
+#define SQ_INT_ACK__VS_WATCHDOG_ACK_MASK 0x00000002L
+#define SQ_INT_ACK__VS_WATCHDOG_ACK 0x00000002L
+
+// SQ_DEBUG_INPUT_FSM
+#define SQ_DEBUG_INPUT_FSM__VC_VSR_LD_MASK 0x00000007L
+#define SQ_DEBUG_INPUT_FSM__RESERVED_MASK 0x00000008L
+#define SQ_DEBUG_INPUT_FSM__RESERVED 0x00000008L
+#define SQ_DEBUG_INPUT_FSM__VC_GPR_LD_MASK 0x000000f0L
+#define SQ_DEBUG_INPUT_FSM__PC_PISM_MASK 0x00000700L
+#define SQ_DEBUG_INPUT_FSM__RESERVED1_MASK 0x00000800L
+#define SQ_DEBUG_INPUT_FSM__RESERVED1 0x00000800L
+#define SQ_DEBUG_INPUT_FSM__PC_AS_MASK 0x00007000L
+#define SQ_DEBUG_INPUT_FSM__PC_INTERP_CNT_MASK 0x000f8000L
+#define SQ_DEBUG_INPUT_FSM__PC_GPR_SIZE_MASK 0x0ff00000L
+
+// SQ_DEBUG_CONST_MGR_FSM
+#define SQ_DEBUG_CONST_MGR_FSM__TEX_CONST_EVENT_STATE_MASK 0x0000001fL
+#define SQ_DEBUG_CONST_MGR_FSM__RESERVED1_MASK 0x000000e0L
+#define SQ_DEBUG_CONST_MGR_FSM__ALU_CONST_EVENT_STATE_MASK 0x00001f00L
+#define SQ_DEBUG_CONST_MGR_FSM__RESERVED2_MASK 0x0000e000L
+#define SQ_DEBUG_CONST_MGR_FSM__ALU_CONST_CNTX_VALID_MASK 0x00030000L
+#define SQ_DEBUG_CONST_MGR_FSM__TEX_CONST_CNTX_VALID_MASK 0x000c0000L
+#define SQ_DEBUG_CONST_MGR_FSM__CNTX0_VTX_EVENT_DONE_MASK 0x00100000L
+#define SQ_DEBUG_CONST_MGR_FSM__CNTX0_VTX_EVENT_DONE 0x00100000L
+#define SQ_DEBUG_CONST_MGR_FSM__CNTX0_PIX_EVENT_DONE_MASK 0x00200000L
+#define SQ_DEBUG_CONST_MGR_FSM__CNTX0_PIX_EVENT_DONE 0x00200000L
+#define SQ_DEBUG_CONST_MGR_FSM__CNTX1_VTX_EVENT_DONE_MASK 0x00400000L
+#define SQ_DEBUG_CONST_MGR_FSM__CNTX1_VTX_EVENT_DONE 0x00400000L
+#define SQ_DEBUG_CONST_MGR_FSM__CNTX1_PIX_EVENT_DONE_MASK 0x00800000L
+#define SQ_DEBUG_CONST_MGR_FSM__CNTX1_PIX_EVENT_DONE 0x00800000L
+
+// SQ_DEBUG_TP_FSM
+#define SQ_DEBUG_TP_FSM__EX_TP_MASK 0x00000007L
+#define SQ_DEBUG_TP_FSM__RESERVED0_MASK 0x00000008L
+#define SQ_DEBUG_TP_FSM__RESERVED0 0x00000008L
+#define SQ_DEBUG_TP_FSM__CF_TP_MASK 0x000000f0L
+#define SQ_DEBUG_TP_FSM__IF_TP_MASK 0x00000700L
+#define SQ_DEBUG_TP_FSM__RESERVED1_MASK 0x00000800L
+#define SQ_DEBUG_TP_FSM__RESERVED1 0x00000800L
+#define SQ_DEBUG_TP_FSM__TIS_TP_MASK 0x00003000L
+#define SQ_DEBUG_TP_FSM__RESERVED2_MASK 0x0000c000L
+#define SQ_DEBUG_TP_FSM__GS_TP_MASK 0x00030000L
+#define SQ_DEBUG_TP_FSM__RESERVED3_MASK 0x000c0000L
+#define SQ_DEBUG_TP_FSM__FCR_TP_MASK 0x00300000L
+#define SQ_DEBUG_TP_FSM__RESERVED4_MASK 0x00c00000L
+#define SQ_DEBUG_TP_FSM__FCS_TP_MASK 0x03000000L
+#define SQ_DEBUG_TP_FSM__RESERVED5_MASK 0x0c000000L
+#define SQ_DEBUG_TP_FSM__ARB_TR_TP_MASK 0x70000000L
+
+// SQ_DEBUG_FSM_ALU_0
+#define SQ_DEBUG_FSM_ALU_0__EX_ALU_0_MASK 0x00000007L
+#define SQ_DEBUG_FSM_ALU_0__RESERVED0_MASK 0x00000008L
+#define SQ_DEBUG_FSM_ALU_0__RESERVED0 0x00000008L
+#define SQ_DEBUG_FSM_ALU_0__CF_ALU_0_MASK 0x000000f0L
+#define SQ_DEBUG_FSM_ALU_0__IF_ALU_0_MASK 0x00000700L
+#define SQ_DEBUG_FSM_ALU_0__RESERVED1_MASK 0x00000800L
+#define SQ_DEBUG_FSM_ALU_0__RESERVED1 0x00000800L
+#define SQ_DEBUG_FSM_ALU_0__DU1_ALU_0_MASK 0x00007000L
+#define SQ_DEBUG_FSM_ALU_0__RESERVED2_MASK 0x00008000L
+#define SQ_DEBUG_FSM_ALU_0__RESERVED2 0x00008000L
+#define SQ_DEBUG_FSM_ALU_0__DU0_ALU_0_MASK 0x00070000L
+#define SQ_DEBUG_FSM_ALU_0__RESERVED3_MASK 0x00080000L
+#define SQ_DEBUG_FSM_ALU_0__RESERVED3 0x00080000L
+#define SQ_DEBUG_FSM_ALU_0__AIS_ALU_0_MASK 0x00700000L
+#define SQ_DEBUG_FSM_ALU_0__RESERVED4_MASK 0x00800000L
+#define SQ_DEBUG_FSM_ALU_0__RESERVED4 0x00800000L
+#define SQ_DEBUG_FSM_ALU_0__ACS_ALU_0_MASK 0x07000000L
+#define SQ_DEBUG_FSM_ALU_0__RESERVED5_MASK 0x08000000L
+#define SQ_DEBUG_FSM_ALU_0__RESERVED5 0x08000000L
+#define SQ_DEBUG_FSM_ALU_0__ARB_TR_ALU_MASK 0x70000000L
+
+// SQ_DEBUG_FSM_ALU_1
+#define SQ_DEBUG_FSM_ALU_1__EX_ALU_0_MASK 0x00000007L
+#define SQ_DEBUG_FSM_ALU_1__RESERVED0_MASK 0x00000008L
+#define SQ_DEBUG_FSM_ALU_1__RESERVED0 0x00000008L
+#define SQ_DEBUG_FSM_ALU_1__CF_ALU_0_MASK 0x000000f0L
+#define SQ_DEBUG_FSM_ALU_1__IF_ALU_0_MASK 0x00000700L
+#define SQ_DEBUG_FSM_ALU_1__RESERVED1_MASK 0x00000800L
+#define SQ_DEBUG_FSM_ALU_1__RESERVED1 0x00000800L
+#define SQ_DEBUG_FSM_ALU_1__DU1_ALU_0_MASK 0x00007000L
+#define SQ_DEBUG_FSM_ALU_1__RESERVED2_MASK 0x00008000L
+#define SQ_DEBUG_FSM_ALU_1__RESERVED2 0x00008000L
+#define SQ_DEBUG_FSM_ALU_1__DU0_ALU_0_MASK 0x00070000L
+#define SQ_DEBUG_FSM_ALU_1__RESERVED3_MASK 0x00080000L
+#define SQ_DEBUG_FSM_ALU_1__RESERVED3 0x00080000L
+#define SQ_DEBUG_FSM_ALU_1__AIS_ALU_0_MASK 0x00700000L
+#define SQ_DEBUG_FSM_ALU_1__RESERVED4_MASK 0x00800000L
+#define SQ_DEBUG_FSM_ALU_1__RESERVED4 0x00800000L
+#define SQ_DEBUG_FSM_ALU_1__ACS_ALU_0_MASK 0x07000000L
+#define SQ_DEBUG_FSM_ALU_1__RESERVED5_MASK 0x08000000L
+#define SQ_DEBUG_FSM_ALU_1__RESERVED5 0x08000000L
+#define SQ_DEBUG_FSM_ALU_1__ARB_TR_ALU_MASK 0x70000000L
+
+// SQ_DEBUG_EXP_ALLOC
+#define SQ_DEBUG_EXP_ALLOC__POS_BUF_AVAIL_MASK 0x0000000fL
+#define SQ_DEBUG_EXP_ALLOC__COLOR_BUF_AVAIL_MASK 0x00000ff0L
+#define SQ_DEBUG_EXP_ALLOC__EA_BUF_AVAIL_MASK 0x00007000L
+#define SQ_DEBUG_EXP_ALLOC__RESERVED_MASK 0x00008000L
+#define SQ_DEBUG_EXP_ALLOC__RESERVED 0x00008000L
+#define SQ_DEBUG_EXP_ALLOC__ALLOC_TBL_BUF_AVAIL_MASK 0x003f0000L
+
+// SQ_DEBUG_PTR_BUFF
+#define SQ_DEBUG_PTR_BUFF__END_OF_BUFFER_MASK 0x00000001L
+#define SQ_DEBUG_PTR_BUFF__END_OF_BUFFER 0x00000001L
+#define SQ_DEBUG_PTR_BUFF__DEALLOC_CNT_MASK 0x0000001eL
+#define SQ_DEBUG_PTR_BUFF__QUAL_NEW_VECTOR_MASK 0x00000020L
+#define SQ_DEBUG_PTR_BUFF__QUAL_NEW_VECTOR 0x00000020L
+#define SQ_DEBUG_PTR_BUFF__EVENT_CONTEXT_ID_MASK 0x000001c0L
+#define SQ_DEBUG_PTR_BUFF__SC_EVENT_ID_MASK 0x00003e00L
+#define SQ_DEBUG_PTR_BUFF__QUAL_EVENT_MASK 0x00004000L
+#define SQ_DEBUG_PTR_BUFF__QUAL_EVENT 0x00004000L
+#define SQ_DEBUG_PTR_BUFF__PRIM_TYPE_POLYGON_MASK 0x00008000L
+#define SQ_DEBUG_PTR_BUFF__PRIM_TYPE_POLYGON 0x00008000L
+#define SQ_DEBUG_PTR_BUFF__EF_EMPTY_MASK 0x00010000L
+#define SQ_DEBUG_PTR_BUFF__EF_EMPTY 0x00010000L
+#define SQ_DEBUG_PTR_BUFF__VTX_SYNC_CNT_MASK 0x0ffe0000L
+
+// SQ_DEBUG_GPR_VTX
+#define SQ_DEBUG_GPR_VTX__VTX_TAIL_PTR_MASK 0x0000007fL
+#define SQ_DEBUG_GPR_VTX__RESERVED_MASK 0x00000080L
+#define SQ_DEBUG_GPR_VTX__RESERVED 0x00000080L
+#define SQ_DEBUG_GPR_VTX__VTX_HEAD_PTR_MASK 0x00007f00L
+#define SQ_DEBUG_GPR_VTX__RESERVED1_MASK 0x00008000L
+#define SQ_DEBUG_GPR_VTX__RESERVED1 0x00008000L
+#define SQ_DEBUG_GPR_VTX__VTX_MAX_MASK 0x007f0000L
+#define SQ_DEBUG_GPR_VTX__RESERVED2_MASK 0x00800000L
+#define SQ_DEBUG_GPR_VTX__RESERVED2 0x00800000L
+#define SQ_DEBUG_GPR_VTX__VTX_FREE_MASK 0x7f000000L
+
+// SQ_DEBUG_GPR_PIX
+#define SQ_DEBUG_GPR_PIX__PIX_TAIL_PTR_MASK 0x0000007fL
+#define SQ_DEBUG_GPR_PIX__RESERVED_MASK 0x00000080L
+#define SQ_DEBUG_GPR_PIX__RESERVED 0x00000080L
+#define SQ_DEBUG_GPR_PIX__PIX_HEAD_PTR_MASK 0x00007f00L
+#define SQ_DEBUG_GPR_PIX__RESERVED1_MASK 0x00008000L
+#define SQ_DEBUG_GPR_PIX__RESERVED1 0x00008000L
+#define SQ_DEBUG_GPR_PIX__PIX_MAX_MASK 0x007f0000L
+#define SQ_DEBUG_GPR_PIX__RESERVED2_MASK 0x00800000L
+#define SQ_DEBUG_GPR_PIX__RESERVED2 0x00800000L
+#define SQ_DEBUG_GPR_PIX__PIX_FREE_MASK 0x7f000000L
+
+// SQ_DEBUG_TB_STATUS_SEL
+#define SQ_DEBUG_TB_STATUS_SEL__VTX_TB_STATUS_REG_SEL_MASK 0x0000000fL
+#define SQ_DEBUG_TB_STATUS_SEL__VTX_TB_STATE_MEM_DW_SEL_MASK 0x00000070L
+#define SQ_DEBUG_TB_STATUS_SEL__VTX_TB_STATE_MEM_RD_ADDR_MASK 0x00000780L
+#define SQ_DEBUG_TB_STATUS_SEL__VTX_TB_STATE_MEM_RD_EN_MASK 0x00000800L
+#define SQ_DEBUG_TB_STATUS_SEL__VTX_TB_STATE_MEM_RD_EN 0x00000800L
+#define SQ_DEBUG_TB_STATUS_SEL__PIX_TB_STATE_MEM_RD_EN_MASK 0x00001000L
+#define SQ_DEBUG_TB_STATUS_SEL__PIX_TB_STATE_MEM_RD_EN 0x00001000L
+#define SQ_DEBUG_TB_STATUS_SEL__DEBUG_BUS_TRIGGER_SEL_MASK 0x0000c000L
+#define SQ_DEBUG_TB_STATUS_SEL__PIX_TB_STATUS_REG_SEL_MASK 0x000f0000L
+#define SQ_DEBUG_TB_STATUS_SEL__PIX_TB_STATE_MEM_DW_SEL_MASK 0x00700000L
+#define SQ_DEBUG_TB_STATUS_SEL__PIX_TB_STATE_MEM_RD_ADDR_MASK 0x1f800000L
+#define SQ_DEBUG_TB_STATUS_SEL__VC_THREAD_BUF_DLY_MASK 0x60000000L
+#define SQ_DEBUG_TB_STATUS_SEL__DISABLE_STRICT_CTX_SYNC_MASK 0x80000000L
+#define SQ_DEBUG_TB_STATUS_SEL__DISABLE_STRICT_CTX_SYNC 0x80000000L
+
+// SQ_DEBUG_VTX_TB_0
+#define SQ_DEBUG_VTX_TB_0__VTX_HEAD_PTR_Q_MASK 0x0000000fL
+#define SQ_DEBUG_VTX_TB_0__TAIL_PTR_Q_MASK 0x000000f0L
+#define SQ_DEBUG_VTX_TB_0__FULL_CNT_Q_MASK 0x00000f00L
+#define SQ_DEBUG_VTX_TB_0__NXT_POS_ALLOC_CNT_MASK 0x0000f000L
+#define SQ_DEBUG_VTX_TB_0__NXT_PC_ALLOC_CNT_MASK 0x000f0000L
+#define SQ_DEBUG_VTX_TB_0__SX_EVENT_FULL_MASK 0x00100000L
+#define SQ_DEBUG_VTX_TB_0__SX_EVENT_FULL 0x00100000L
+#define SQ_DEBUG_VTX_TB_0__BUSY_Q_MASK 0x00200000L
+#define SQ_DEBUG_VTX_TB_0__BUSY_Q 0x00200000L
+
+// SQ_DEBUG_VTX_TB_1
+#define SQ_DEBUG_VTX_TB_1__VS_DONE_PTR_MASK 0x0000ffffL
+
+// SQ_DEBUG_VTX_TB_STATUS_REG
+#define SQ_DEBUG_VTX_TB_STATUS_REG__VS_STATUS_REG_MASK 0xffffffffL
+
+// SQ_DEBUG_VTX_TB_STATE_MEM
+#define SQ_DEBUG_VTX_TB_STATE_MEM__VS_STATE_MEM_MASK 0xffffffffL
+
+// SQ_DEBUG_PIX_TB_0
+#define SQ_DEBUG_PIX_TB_0__PIX_HEAD_PTR_MASK 0x0000003fL
+#define SQ_DEBUG_PIX_TB_0__TAIL_PTR_MASK 0x00000fc0L
+#define SQ_DEBUG_PIX_TB_0__FULL_CNT_MASK 0x0007f000L
+#define SQ_DEBUG_PIX_TB_0__NXT_PIX_ALLOC_CNT_MASK 0x01f80000L
+#define SQ_DEBUG_PIX_TB_0__NXT_PIX_EXP_CNT_MASK 0x7e000000L
+#define SQ_DEBUG_PIX_TB_0__BUSY_MASK 0x80000000L
+#define SQ_DEBUG_PIX_TB_0__BUSY 0x80000000L
+
+// SQ_DEBUG_PIX_TB_STATUS_REG_0
+#define SQ_DEBUG_PIX_TB_STATUS_REG_0__PIX_TB_STATUS_REG_0_MASK 0xffffffffL
+
+// SQ_DEBUG_PIX_TB_STATUS_REG_1
+#define SQ_DEBUG_PIX_TB_STATUS_REG_1__PIX_TB_STATUS_REG_1_MASK 0xffffffffL
+
+// SQ_DEBUG_PIX_TB_STATUS_REG_2
+#define SQ_DEBUG_PIX_TB_STATUS_REG_2__PIX_TB_STATUS_REG_2_MASK 0xffffffffL
+
+// SQ_DEBUG_PIX_TB_STATUS_REG_3
+#define SQ_DEBUG_PIX_TB_STATUS_REG_3__PIX_TB_STATUS_REG_3_MASK 0xffffffffL
+
+// SQ_DEBUG_PIX_TB_STATE_MEM
+#define SQ_DEBUG_PIX_TB_STATE_MEM__PIX_TB_STATE_MEM_MASK 0xffffffffL
+
+// SQ_PERFCOUNTER0_SELECT
+#define SQ_PERFCOUNTER0_SELECT__PERF_SEL_MASK 0x000000ffL
+
+// SQ_PERFCOUNTER1_SELECT
+#define SQ_PERFCOUNTER1_SELECT__PERF_SEL_MASK 0x000000ffL
+
+// SQ_PERFCOUNTER2_SELECT
+#define SQ_PERFCOUNTER2_SELECT__PERF_SEL_MASK 0x000000ffL
+
+// SQ_PERFCOUNTER3_SELECT
+#define SQ_PERFCOUNTER3_SELECT__PERF_SEL_MASK 0x000000ffL
+
+// SQ_PERFCOUNTER0_LOW
+#define SQ_PERFCOUNTER0_LOW__PERF_COUNT_MASK 0xffffffffL
+
+// SQ_PERFCOUNTER0_HI
+#define SQ_PERFCOUNTER0_HI__PERF_COUNT_MASK 0x0000ffffL
+
+// SQ_PERFCOUNTER1_LOW
+#define SQ_PERFCOUNTER1_LOW__PERF_COUNT_MASK 0xffffffffL
+
+// SQ_PERFCOUNTER1_HI
+#define SQ_PERFCOUNTER1_HI__PERF_COUNT_MASK 0x0000ffffL
+
+// SQ_PERFCOUNTER2_LOW
+#define SQ_PERFCOUNTER2_LOW__PERF_COUNT_MASK 0xffffffffL
+
+// SQ_PERFCOUNTER2_HI
+#define SQ_PERFCOUNTER2_HI__PERF_COUNT_MASK 0x0000ffffL
+
+// SQ_PERFCOUNTER3_LOW
+#define SQ_PERFCOUNTER3_LOW__PERF_COUNT_MASK 0xffffffffL
+
+// SQ_PERFCOUNTER3_HI
+#define SQ_PERFCOUNTER3_HI__PERF_COUNT_MASK 0x0000ffffL
+
+// SX_PERFCOUNTER0_SELECT
+#define SX_PERFCOUNTER0_SELECT__PERF_SEL_MASK 0x000000ffL
+
+// SX_PERFCOUNTER0_LOW
+#define SX_PERFCOUNTER0_LOW__PERF_COUNT_MASK 0xffffffffL
+
+// SX_PERFCOUNTER0_HI
+#define SX_PERFCOUNTER0_HI__PERF_COUNT_MASK 0x0000ffffL
+
+// SQ_INSTRUCTION_ALU_0
+#define SQ_INSTRUCTION_ALU_0__VECTOR_RESULT_MASK 0x0000003fL
+#define SQ_INSTRUCTION_ALU_0__VECTOR_DST_REL_MASK 0x00000040L
+#define SQ_INSTRUCTION_ALU_0__VECTOR_DST_REL 0x00000040L
+#define SQ_INSTRUCTION_ALU_0__LOW_PRECISION_16B_FP_MASK 0x00000080L
+#define SQ_INSTRUCTION_ALU_0__LOW_PRECISION_16B_FP 0x00000080L
+#define SQ_INSTRUCTION_ALU_0__SCALAR_RESULT_MASK 0x00003f00L
+#define SQ_INSTRUCTION_ALU_0__SCALAR_DST_REL_MASK 0x00004000L
+#define SQ_INSTRUCTION_ALU_0__SCALAR_DST_REL 0x00004000L
+#define SQ_INSTRUCTION_ALU_0__EXPORT_DATA_MASK 0x00008000L
+#define SQ_INSTRUCTION_ALU_0__EXPORT_DATA 0x00008000L
+#define SQ_INSTRUCTION_ALU_0__VECTOR_WRT_MSK_MASK 0x000f0000L
+#define SQ_INSTRUCTION_ALU_0__SCALAR_WRT_MSK_MASK 0x00f00000L
+#define SQ_INSTRUCTION_ALU_0__VECTOR_CLAMP_MASK 0x01000000L
+#define SQ_INSTRUCTION_ALU_0__VECTOR_CLAMP 0x01000000L
+#define SQ_INSTRUCTION_ALU_0__SCALAR_CLAMP_MASK 0x02000000L
+#define SQ_INSTRUCTION_ALU_0__SCALAR_CLAMP 0x02000000L
+#define SQ_INSTRUCTION_ALU_0__SCALAR_OPCODE_MASK 0xfc000000L
+
+// SQ_INSTRUCTION_ALU_1
+#define SQ_INSTRUCTION_ALU_1__SRC_C_SWIZZLE_R_MASK 0x00000003L
+#define SQ_INSTRUCTION_ALU_1__SRC_C_SWIZZLE_G_MASK 0x0000000cL
+#define SQ_INSTRUCTION_ALU_1__SRC_C_SWIZZLE_B_MASK 0x00000030L
+#define SQ_INSTRUCTION_ALU_1__SRC_C_SWIZZLE_A_MASK 0x000000c0L
+#define SQ_INSTRUCTION_ALU_1__SRC_B_SWIZZLE_R_MASK 0x00000300L
+#define SQ_INSTRUCTION_ALU_1__SRC_B_SWIZZLE_G_MASK 0x00000c00L
+#define SQ_INSTRUCTION_ALU_1__SRC_B_SWIZZLE_B_MASK 0x00003000L
+#define SQ_INSTRUCTION_ALU_1__SRC_B_SWIZZLE_A_MASK 0x0000c000L
+#define SQ_INSTRUCTION_ALU_1__SRC_A_SWIZZLE_R_MASK 0x00030000L
+#define SQ_INSTRUCTION_ALU_1__SRC_A_SWIZZLE_G_MASK 0x000c0000L
+#define SQ_INSTRUCTION_ALU_1__SRC_A_SWIZZLE_B_MASK 0x00300000L
+#define SQ_INSTRUCTION_ALU_1__SRC_A_SWIZZLE_A_MASK 0x00c00000L
+#define SQ_INSTRUCTION_ALU_1__SRC_C_ARG_MOD_MASK 0x01000000L
+#define SQ_INSTRUCTION_ALU_1__SRC_C_ARG_MOD 0x01000000L
+#define SQ_INSTRUCTION_ALU_1__SRC_B_ARG_MOD_MASK 0x02000000L
+#define SQ_INSTRUCTION_ALU_1__SRC_B_ARG_MOD 0x02000000L
+#define SQ_INSTRUCTION_ALU_1__SRC_A_ARG_MOD_MASK 0x04000000L
+#define SQ_INSTRUCTION_ALU_1__SRC_A_ARG_MOD 0x04000000L
+#define SQ_INSTRUCTION_ALU_1__PRED_SELECT_MASK 0x18000000L
+#define SQ_INSTRUCTION_ALU_1__RELATIVE_ADDR_MASK 0x20000000L
+#define SQ_INSTRUCTION_ALU_1__RELATIVE_ADDR 0x20000000L
+#define SQ_INSTRUCTION_ALU_1__CONST_1_REL_ABS_MASK 0x40000000L
+#define SQ_INSTRUCTION_ALU_1__CONST_1_REL_ABS 0x40000000L
+#define SQ_INSTRUCTION_ALU_1__CONST_0_REL_ABS_MASK 0x80000000L
+#define SQ_INSTRUCTION_ALU_1__CONST_0_REL_ABS 0x80000000L
+
+// SQ_INSTRUCTION_ALU_2
+#define SQ_INSTRUCTION_ALU_2__SRC_C_REG_PTR_MASK 0x0000003fL
+#define SQ_INSTRUCTION_ALU_2__REG_SELECT_C_MASK 0x00000040L
+#define SQ_INSTRUCTION_ALU_2__REG_SELECT_C 0x00000040L
+#define SQ_INSTRUCTION_ALU_2__REG_ABS_MOD_C_MASK 0x00000080L
+#define SQ_INSTRUCTION_ALU_2__REG_ABS_MOD_C 0x00000080L
+#define SQ_INSTRUCTION_ALU_2__SRC_B_REG_PTR_MASK 0x00003f00L
+#define SQ_INSTRUCTION_ALU_2__REG_SELECT_B_MASK 0x00004000L
+#define SQ_INSTRUCTION_ALU_2__REG_SELECT_B 0x00004000L
+#define SQ_INSTRUCTION_ALU_2__REG_ABS_MOD_B_MASK 0x00008000L
+#define SQ_INSTRUCTION_ALU_2__REG_ABS_MOD_B 0x00008000L
+#define SQ_INSTRUCTION_ALU_2__SRC_A_REG_PTR_MASK 0x003f0000L
+#define SQ_INSTRUCTION_ALU_2__REG_SELECT_A_MASK 0x00400000L
+#define SQ_INSTRUCTION_ALU_2__REG_SELECT_A 0x00400000L
+#define SQ_INSTRUCTION_ALU_2__REG_ABS_MOD_A_MASK 0x00800000L
+#define SQ_INSTRUCTION_ALU_2__REG_ABS_MOD_A 0x00800000L
+#define SQ_INSTRUCTION_ALU_2__VECTOR_OPCODE_MASK 0x1f000000L
+#define SQ_INSTRUCTION_ALU_2__SRC_C_SEL_MASK 0x20000000L
+#define SQ_INSTRUCTION_ALU_2__SRC_C_SEL 0x20000000L
+#define SQ_INSTRUCTION_ALU_2__SRC_B_SEL_MASK 0x40000000L
+#define SQ_INSTRUCTION_ALU_2__SRC_B_SEL 0x40000000L
+#define SQ_INSTRUCTION_ALU_2__SRC_A_SEL_MASK 0x80000000L
+#define SQ_INSTRUCTION_ALU_2__SRC_A_SEL 0x80000000L
+
+// SQ_INSTRUCTION_CF_EXEC_0
+#define SQ_INSTRUCTION_CF_EXEC_0__ADDRESS_MASK 0x000001ffL
+#define SQ_INSTRUCTION_CF_EXEC_0__RESERVED_MASK 0x00000e00L
+#define SQ_INSTRUCTION_CF_EXEC_0__COUNT_MASK 0x00007000L
+#define SQ_INSTRUCTION_CF_EXEC_0__YIELD_MASK 0x00008000L
+#define SQ_INSTRUCTION_CF_EXEC_0__YIELD 0x00008000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_TYPE_0_MASK 0x00010000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_TYPE_0 0x00010000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_SERIAL_0_MASK 0x00020000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_SERIAL_0 0x00020000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_TYPE_1_MASK 0x00040000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_TYPE_1 0x00040000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_SERIAL_1_MASK 0x00080000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_SERIAL_1 0x00080000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_TYPE_2_MASK 0x00100000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_TYPE_2 0x00100000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_SERIAL_2_MASK 0x00200000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_SERIAL_2 0x00200000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_TYPE_3_MASK 0x00400000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_TYPE_3 0x00400000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_SERIAL_3_MASK 0x00800000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_SERIAL_3 0x00800000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_TYPE_4_MASK 0x01000000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_TYPE_4 0x01000000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_SERIAL_4_MASK 0x02000000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_SERIAL_4 0x02000000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_TYPE_5_MASK 0x04000000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_TYPE_5 0x04000000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_SERIAL_5_MASK 0x08000000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_SERIAL_5 0x08000000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_VC_0_MASK 0x10000000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_VC_0 0x10000000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_VC_1_MASK 0x20000000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_VC_1 0x20000000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_VC_2_MASK 0x40000000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_VC_2 0x40000000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_VC_3_MASK 0x80000000L
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_VC_3 0x80000000L
+
+// SQ_INSTRUCTION_CF_EXEC_1
+#define SQ_INSTRUCTION_CF_EXEC_1__INST_VC_4_MASK 0x00000001L
+#define SQ_INSTRUCTION_CF_EXEC_1__INST_VC_4 0x00000001L
+#define SQ_INSTRUCTION_CF_EXEC_1__INST_VC_5_MASK 0x00000002L
+#define SQ_INSTRUCTION_CF_EXEC_1__INST_VC_5 0x00000002L
+#define SQ_INSTRUCTION_CF_EXEC_1__BOOL_ADDR_MASK 0x000003fcL
+#define SQ_INSTRUCTION_CF_EXEC_1__CONDITION_MASK 0x00000400L
+#define SQ_INSTRUCTION_CF_EXEC_1__CONDITION 0x00000400L
+#define SQ_INSTRUCTION_CF_EXEC_1__ADDRESS_MODE_MASK 0x00000800L
+#define SQ_INSTRUCTION_CF_EXEC_1__ADDRESS_MODE 0x00000800L
+#define SQ_INSTRUCTION_CF_EXEC_1__OPCODE_MASK 0x0000f000L
+#define SQ_INSTRUCTION_CF_EXEC_1__ADDRESS_MASK 0x01ff0000L
+#define SQ_INSTRUCTION_CF_EXEC_1__RESERVED_MASK 0x0e000000L
+#define SQ_INSTRUCTION_CF_EXEC_1__COUNT_MASK 0x70000000L
+#define SQ_INSTRUCTION_CF_EXEC_1__YIELD_MASK 0x80000000L
+#define SQ_INSTRUCTION_CF_EXEC_1__YIELD 0x80000000L
+
+// SQ_INSTRUCTION_CF_EXEC_2
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_TYPE_0_MASK 0x00000001L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_TYPE_0 0x00000001L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_SERIAL_0_MASK 0x00000002L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_SERIAL_0 0x00000002L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_TYPE_1_MASK 0x00000004L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_TYPE_1 0x00000004L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_SERIAL_1_MASK 0x00000008L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_SERIAL_1 0x00000008L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_TYPE_2_MASK 0x00000010L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_TYPE_2 0x00000010L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_SERIAL_2_MASK 0x00000020L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_SERIAL_2 0x00000020L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_TYPE_3_MASK 0x00000040L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_TYPE_3 0x00000040L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_SERIAL_3_MASK 0x00000080L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_SERIAL_3 0x00000080L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_TYPE_4_MASK 0x00000100L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_TYPE_4 0x00000100L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_SERIAL_4_MASK 0x00000200L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_SERIAL_4 0x00000200L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_TYPE_5_MASK 0x00000400L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_TYPE_5 0x00000400L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_SERIAL_5_MASK 0x00000800L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_SERIAL_5 0x00000800L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_VC_0_MASK 0x00001000L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_VC_0 0x00001000L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_VC_1_MASK 0x00002000L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_VC_1 0x00002000L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_VC_2_MASK 0x00004000L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_VC_2 0x00004000L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_VC_3_MASK 0x00008000L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_VC_3 0x00008000L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_VC_4_MASK 0x00010000L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_VC_4 0x00010000L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_VC_5_MASK 0x00020000L
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_VC_5 0x00020000L
+#define SQ_INSTRUCTION_CF_EXEC_2__BOOL_ADDR_MASK 0x03fc0000L
+#define SQ_INSTRUCTION_CF_EXEC_2__CONDITION_MASK 0x04000000L
+#define SQ_INSTRUCTION_CF_EXEC_2__CONDITION 0x04000000L
+#define SQ_INSTRUCTION_CF_EXEC_2__ADDRESS_MODE_MASK 0x08000000L
+#define SQ_INSTRUCTION_CF_EXEC_2__ADDRESS_MODE 0x08000000L
+#define SQ_INSTRUCTION_CF_EXEC_2__OPCODE_MASK 0xf0000000L
+
+// SQ_INSTRUCTION_CF_LOOP_0
+#define SQ_INSTRUCTION_CF_LOOP_0__ADDRESS_MASK 0x000003ffL
+#define SQ_INSTRUCTION_CF_LOOP_0__RESERVED_0_MASK 0x0000fc00L
+#define SQ_INSTRUCTION_CF_LOOP_0__LOOP_ID_MASK 0x001f0000L
+#define SQ_INSTRUCTION_CF_LOOP_0__RESERVED_1_MASK 0xffe00000L
+
+// SQ_INSTRUCTION_CF_LOOP_1
+#define SQ_INSTRUCTION_CF_LOOP_1__RESERVED_0_MASK 0x000007ffL
+#define SQ_INSTRUCTION_CF_LOOP_1__ADDRESS_MODE_MASK 0x00000800L
+#define SQ_INSTRUCTION_CF_LOOP_1__ADDRESS_MODE 0x00000800L
+#define SQ_INSTRUCTION_CF_LOOP_1__OPCODE_MASK 0x0000f000L
+#define SQ_INSTRUCTION_CF_LOOP_1__ADDRESS_MASK 0x03ff0000L
+#define SQ_INSTRUCTION_CF_LOOP_1__RESERVED_1_MASK 0xfc000000L
+
+// SQ_INSTRUCTION_CF_LOOP_2
+#define SQ_INSTRUCTION_CF_LOOP_2__LOOP_ID_MASK 0x0000001fL
+#define SQ_INSTRUCTION_CF_LOOP_2__RESERVED_MASK 0x07ffffe0L
+#define SQ_INSTRUCTION_CF_LOOP_2__ADDRESS_MODE_MASK 0x08000000L
+#define SQ_INSTRUCTION_CF_LOOP_2__ADDRESS_MODE 0x08000000L
+#define SQ_INSTRUCTION_CF_LOOP_2__OPCODE_MASK 0xf0000000L
+
+// SQ_INSTRUCTION_CF_JMP_CALL_0
+#define SQ_INSTRUCTION_CF_JMP_CALL_0__ADDRESS_MASK 0x000003ffL
+#define SQ_INSTRUCTION_CF_JMP_CALL_0__RESERVED_0_MASK 0x00001c00L
+#define SQ_INSTRUCTION_CF_JMP_CALL_0__FORCE_CALL_MASK 0x00002000L
+#define SQ_INSTRUCTION_CF_JMP_CALL_0__FORCE_CALL 0x00002000L
+#define SQ_INSTRUCTION_CF_JMP_CALL_0__PREDICATED_JMP_MASK 0x00004000L
+#define SQ_INSTRUCTION_CF_JMP_CALL_0__PREDICATED_JMP 0x00004000L
+#define SQ_INSTRUCTION_CF_JMP_CALL_0__RESERVED_1_MASK 0xffff8000L
+
+// SQ_INSTRUCTION_CF_JMP_CALL_1
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__RESERVED_0_MASK 0x00000001L
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__RESERVED_0 0x00000001L
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__DIRECTION_MASK 0x00000002L
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__DIRECTION 0x00000002L
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__BOOL_ADDR_MASK 0x000003fcL
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__CONDITION_MASK 0x00000400L
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__CONDITION 0x00000400L
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__ADDRESS_MODE_MASK 0x00000800L
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__ADDRESS_MODE 0x00000800L
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__OPCODE_MASK 0x0000f000L
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__ADDRESS_MASK 0x03ff0000L
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__RESERVED_1_MASK 0x1c000000L
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__FORCE_CALL_MASK 0x20000000L
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__FORCE_CALL 0x20000000L
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__RESERVED_2_MASK 0xc0000000L
+
+// SQ_INSTRUCTION_CF_JMP_CALL_2
+#define SQ_INSTRUCTION_CF_JMP_CALL_2__RESERVED_MASK 0x0001ffffL
+#define SQ_INSTRUCTION_CF_JMP_CALL_2__DIRECTION_MASK 0x00020000L
+#define SQ_INSTRUCTION_CF_JMP_CALL_2__DIRECTION 0x00020000L
+#define SQ_INSTRUCTION_CF_JMP_CALL_2__BOOL_ADDR_MASK 0x03fc0000L
+#define SQ_INSTRUCTION_CF_JMP_CALL_2__CONDITION_MASK 0x04000000L
+#define SQ_INSTRUCTION_CF_JMP_CALL_2__CONDITION 0x04000000L
+#define SQ_INSTRUCTION_CF_JMP_CALL_2__ADDRESS_MODE_MASK 0x08000000L
+#define SQ_INSTRUCTION_CF_JMP_CALL_2__ADDRESS_MODE 0x08000000L
+#define SQ_INSTRUCTION_CF_JMP_CALL_2__OPCODE_MASK 0xf0000000L
+
+// SQ_INSTRUCTION_CF_ALLOC_0
+#define SQ_INSTRUCTION_CF_ALLOC_0__SIZE_MASK 0x0000000fL
+#define SQ_INSTRUCTION_CF_ALLOC_0__RESERVED_MASK 0xfffffff0L
+
+// SQ_INSTRUCTION_CF_ALLOC_1
+#define SQ_INSTRUCTION_CF_ALLOC_1__RESERVED_0_MASK 0x000000ffL
+#define SQ_INSTRUCTION_CF_ALLOC_1__NO_SERIAL_MASK 0x00000100L
+#define SQ_INSTRUCTION_CF_ALLOC_1__NO_SERIAL 0x00000100L
+#define SQ_INSTRUCTION_CF_ALLOC_1__BUFFER_SELECT_MASK 0x00000600L
+#define SQ_INSTRUCTION_CF_ALLOC_1__ALLOC_MODE_MASK 0x00000800L
+#define SQ_INSTRUCTION_CF_ALLOC_1__ALLOC_MODE 0x00000800L
+#define SQ_INSTRUCTION_CF_ALLOC_1__OPCODE_MASK 0x0000f000L
+#define SQ_INSTRUCTION_CF_ALLOC_1__SIZE_MASK 0x000f0000L
+#define SQ_INSTRUCTION_CF_ALLOC_1__RESERVED_1_MASK 0xfff00000L
+
+// SQ_INSTRUCTION_CF_ALLOC_2
+#define SQ_INSTRUCTION_CF_ALLOC_2__RESERVED_MASK 0x00ffffffL
+#define SQ_INSTRUCTION_CF_ALLOC_2__NO_SERIAL_MASK 0x01000000L
+#define SQ_INSTRUCTION_CF_ALLOC_2__NO_SERIAL 0x01000000L
+#define SQ_INSTRUCTION_CF_ALLOC_2__BUFFER_SELECT_MASK 0x06000000L
+#define SQ_INSTRUCTION_CF_ALLOC_2__ALLOC_MODE_MASK 0x08000000L
+#define SQ_INSTRUCTION_CF_ALLOC_2__ALLOC_MODE 0x08000000L
+#define SQ_INSTRUCTION_CF_ALLOC_2__OPCODE_MASK 0xf0000000L
+
+// SQ_INSTRUCTION_TFETCH_0
+#define SQ_INSTRUCTION_TFETCH_0__OPCODE_MASK 0x0000001fL
+#define SQ_INSTRUCTION_TFETCH_0__SRC_GPR_MASK 0x000007e0L
+#define SQ_INSTRUCTION_TFETCH_0__SRC_GPR_AM_MASK 0x00000800L
+#define SQ_INSTRUCTION_TFETCH_0__SRC_GPR_AM 0x00000800L
+#define SQ_INSTRUCTION_TFETCH_0__DST_GPR_MASK 0x0003f000L
+#define SQ_INSTRUCTION_TFETCH_0__DST_GPR_AM_MASK 0x00040000L
+#define SQ_INSTRUCTION_TFETCH_0__DST_GPR_AM 0x00040000L
+#define SQ_INSTRUCTION_TFETCH_0__FETCH_VALID_ONLY_MASK 0x00080000L
+#define SQ_INSTRUCTION_TFETCH_0__FETCH_VALID_ONLY 0x00080000L
+#define SQ_INSTRUCTION_TFETCH_0__CONST_INDEX_MASK 0x01f00000L
+#define SQ_INSTRUCTION_TFETCH_0__TX_COORD_DENORM_MASK 0x02000000L
+#define SQ_INSTRUCTION_TFETCH_0__TX_COORD_DENORM 0x02000000L
+#define SQ_INSTRUCTION_TFETCH_0__SRC_SEL_X_MASK 0x0c000000L
+#define SQ_INSTRUCTION_TFETCH_0__SRC_SEL_Y_MASK 0x30000000L
+#define SQ_INSTRUCTION_TFETCH_0__SRC_SEL_Z_MASK 0xc0000000L
+
+// SQ_INSTRUCTION_TFETCH_1
+#define SQ_INSTRUCTION_TFETCH_1__DST_SEL_X_MASK 0x00000007L
+#define SQ_INSTRUCTION_TFETCH_1__DST_SEL_Y_MASK 0x00000038L
+#define SQ_INSTRUCTION_TFETCH_1__DST_SEL_Z_MASK 0x000001c0L
+#define SQ_INSTRUCTION_TFETCH_1__DST_SEL_W_MASK 0x00000e00L
+#define SQ_INSTRUCTION_TFETCH_1__MAG_FILTER_MASK 0x00003000L
+#define SQ_INSTRUCTION_TFETCH_1__MIN_FILTER_MASK 0x0000c000L
+#define SQ_INSTRUCTION_TFETCH_1__MIP_FILTER_MASK 0x00030000L
+#define SQ_INSTRUCTION_TFETCH_1__ANISO_FILTER_MASK 0x001c0000L
+#define SQ_INSTRUCTION_TFETCH_1__ARBITRARY_FILTER_MASK 0x00e00000L
+#define SQ_INSTRUCTION_TFETCH_1__VOL_MAG_FILTER_MASK 0x03000000L
+#define SQ_INSTRUCTION_TFETCH_1__VOL_MIN_FILTER_MASK 0x0c000000L
+#define SQ_INSTRUCTION_TFETCH_1__USE_COMP_LOD_MASK 0x10000000L
+#define SQ_INSTRUCTION_TFETCH_1__USE_COMP_LOD 0x10000000L
+#define SQ_INSTRUCTION_TFETCH_1__USE_REG_LOD_MASK 0x60000000L
+#define SQ_INSTRUCTION_TFETCH_1__PRED_SELECT_MASK 0x80000000L
+#define SQ_INSTRUCTION_TFETCH_1__PRED_SELECT 0x80000000L
+
+// SQ_INSTRUCTION_TFETCH_2
+#define SQ_INSTRUCTION_TFETCH_2__USE_REG_GRADIENTS_MASK 0x00000001L
+#define SQ_INSTRUCTION_TFETCH_2__USE_REG_GRADIENTS 0x00000001L
+#define SQ_INSTRUCTION_TFETCH_2__SAMPLE_LOCATION_MASK 0x00000002L
+#define SQ_INSTRUCTION_TFETCH_2__SAMPLE_LOCATION 0x00000002L
+#define SQ_INSTRUCTION_TFETCH_2__LOD_BIAS_MASK 0x000001fcL
+#define SQ_INSTRUCTION_TFETCH_2__UNUSED_MASK 0x0000fe00L
+#define SQ_INSTRUCTION_TFETCH_2__OFFSET_X_MASK 0x001f0000L
+#define SQ_INSTRUCTION_TFETCH_2__OFFSET_Y_MASK 0x03e00000L
+#define SQ_INSTRUCTION_TFETCH_2__OFFSET_Z_MASK 0x7c000000L
+#define SQ_INSTRUCTION_TFETCH_2__PRED_CONDITION_MASK 0x80000000L
+#define SQ_INSTRUCTION_TFETCH_2__PRED_CONDITION 0x80000000L
+
+// SQ_INSTRUCTION_VFETCH_0
+#define SQ_INSTRUCTION_VFETCH_0__OPCODE_MASK 0x0000001fL
+#define SQ_INSTRUCTION_VFETCH_0__SRC_GPR_MASK 0x000007e0L
+#define SQ_INSTRUCTION_VFETCH_0__SRC_GPR_AM_MASK 0x00000800L
+#define SQ_INSTRUCTION_VFETCH_0__SRC_GPR_AM 0x00000800L
+#define SQ_INSTRUCTION_VFETCH_0__DST_GPR_MASK 0x0003f000L
+#define SQ_INSTRUCTION_VFETCH_0__DST_GPR_AM_MASK 0x00040000L
+#define SQ_INSTRUCTION_VFETCH_0__DST_GPR_AM 0x00040000L
+#define SQ_INSTRUCTION_VFETCH_0__MUST_BE_ONE_MASK 0x00080000L
+#define SQ_INSTRUCTION_VFETCH_0__MUST_BE_ONE 0x00080000L
+#define SQ_INSTRUCTION_VFETCH_0__CONST_INDEX_MASK 0x01f00000L
+#define SQ_INSTRUCTION_VFETCH_0__CONST_INDEX_SEL_MASK 0x06000000L
+#define SQ_INSTRUCTION_VFETCH_0__SRC_SEL_MASK 0xc0000000L
+
+// SQ_INSTRUCTION_VFETCH_1
+#define SQ_INSTRUCTION_VFETCH_1__DST_SEL_X_MASK 0x00000007L
+#define SQ_INSTRUCTION_VFETCH_1__DST_SEL_Y_MASK 0x00000038L
+#define SQ_INSTRUCTION_VFETCH_1__DST_SEL_Z_MASK 0x000001c0L
+#define SQ_INSTRUCTION_VFETCH_1__DST_SEL_W_MASK 0x00000e00L
+#define SQ_INSTRUCTION_VFETCH_1__FORMAT_COMP_ALL_MASK 0x00001000L
+#define SQ_INSTRUCTION_VFETCH_1__FORMAT_COMP_ALL 0x00001000L
+#define SQ_INSTRUCTION_VFETCH_1__NUM_FORMAT_ALL_MASK 0x00002000L
+#define SQ_INSTRUCTION_VFETCH_1__NUM_FORMAT_ALL 0x00002000L
+#define SQ_INSTRUCTION_VFETCH_1__SIGNED_RF_MODE_ALL_MASK 0x00004000L
+#define SQ_INSTRUCTION_VFETCH_1__SIGNED_RF_MODE_ALL 0x00004000L
+#define SQ_INSTRUCTION_VFETCH_1__DATA_FORMAT_MASK 0x003f0000L
+#define SQ_INSTRUCTION_VFETCH_1__EXP_ADJUST_ALL_MASK 0x3f800000L
+#define SQ_INSTRUCTION_VFETCH_1__PRED_SELECT_MASK 0x80000000L
+#define SQ_INSTRUCTION_VFETCH_1__PRED_SELECT 0x80000000L
+
+// SQ_INSTRUCTION_VFETCH_2
+#define SQ_INSTRUCTION_VFETCH_2__STRIDE_MASK 0x000000ffL
+#define SQ_INSTRUCTION_VFETCH_2__OFFSET_MASK 0x00ff0000L
+#define SQ_INSTRUCTION_VFETCH_2__PRED_CONDITION_MASK 0x80000000L
+#define SQ_INSTRUCTION_VFETCH_2__PRED_CONDITION 0x80000000L
+
+// SQ_CONSTANT_0
+#define SQ_CONSTANT_0__RED_MASK 0xffffffffL
+
+// SQ_CONSTANT_1
+#define SQ_CONSTANT_1__GREEN_MASK 0xffffffffL
+
+// SQ_CONSTANT_2
+#define SQ_CONSTANT_2__BLUE_MASK 0xffffffffL
+
+// SQ_CONSTANT_3
+#define SQ_CONSTANT_3__ALPHA_MASK 0xffffffffL
+
+// SQ_FETCH_0
+#define SQ_FETCH_0__VALUE_MASK 0xffffffffL
+
+// SQ_FETCH_1
+#define SQ_FETCH_1__VALUE_MASK 0xffffffffL
+
+// SQ_FETCH_2
+#define SQ_FETCH_2__VALUE_MASK 0xffffffffL
+
+// SQ_FETCH_3
+#define SQ_FETCH_3__VALUE_MASK 0xffffffffL
+
+// SQ_FETCH_4
+#define SQ_FETCH_4__VALUE_MASK 0xffffffffL
+
+// SQ_FETCH_5
+#define SQ_FETCH_5__VALUE_MASK 0xffffffffL
+
+// SQ_CONSTANT_VFETCH_0
+#define SQ_CONSTANT_VFETCH_0__TYPE_MASK 0x00000001L
+#define SQ_CONSTANT_VFETCH_0__TYPE 0x00000001L
+#define SQ_CONSTANT_VFETCH_0__STATE_MASK 0x00000002L
+#define SQ_CONSTANT_VFETCH_0__STATE 0x00000002L
+#define SQ_CONSTANT_VFETCH_0__BASE_ADDRESS_MASK 0xfffffffcL
+
+// SQ_CONSTANT_VFETCH_1
+#define SQ_CONSTANT_VFETCH_1__ENDIAN_SWAP_MASK 0x00000003L
+#define SQ_CONSTANT_VFETCH_1__LIMIT_ADDRESS_MASK 0xfffffffcL
+
+// SQ_CONSTANT_T2
+#define SQ_CONSTANT_T2__VALUE_MASK 0xffffffffL
+
+// SQ_CONSTANT_T3
+#define SQ_CONSTANT_T3__VALUE_MASK 0xffffffffL
+
+// SQ_CF_BOOLEANS
+#define SQ_CF_BOOLEANS__CF_BOOLEANS_0_MASK 0x000000ffL
+#define SQ_CF_BOOLEANS__CF_BOOLEANS_1_MASK 0x0000ff00L
+#define SQ_CF_BOOLEANS__CF_BOOLEANS_2_MASK 0x00ff0000L
+#define SQ_CF_BOOLEANS__CF_BOOLEANS_3_MASK 0xff000000L
+
+// SQ_CF_LOOP
+#define SQ_CF_LOOP__CF_LOOP_COUNT_MASK 0x000000ffL
+#define SQ_CF_LOOP__CF_LOOP_START_MASK 0x0000ff00L
+#define SQ_CF_LOOP__CF_LOOP_STEP_MASK 0x00ff0000L
+
+// SQ_CONSTANT_RT_0
+#define SQ_CONSTANT_RT_0__RED_MASK 0xffffffffL
+
+// SQ_CONSTANT_RT_1
+#define SQ_CONSTANT_RT_1__GREEN_MASK 0xffffffffL
+
+// SQ_CONSTANT_RT_2
+#define SQ_CONSTANT_RT_2__BLUE_MASK 0xffffffffL
+
+// SQ_CONSTANT_RT_3
+#define SQ_CONSTANT_RT_3__ALPHA_MASK 0xffffffffL
+
+// SQ_FETCH_RT_0
+#define SQ_FETCH_RT_0__VALUE_MASK 0xffffffffL
+
+// SQ_FETCH_RT_1
+#define SQ_FETCH_RT_1__VALUE_MASK 0xffffffffL
+
+// SQ_FETCH_RT_2
+#define SQ_FETCH_RT_2__VALUE_MASK 0xffffffffL
+
+// SQ_FETCH_RT_3
+#define SQ_FETCH_RT_3__VALUE_MASK 0xffffffffL
+
+// SQ_FETCH_RT_4
+#define SQ_FETCH_RT_4__VALUE_MASK 0xffffffffL
+
+// SQ_FETCH_RT_5
+#define SQ_FETCH_RT_5__VALUE_MASK 0xffffffffL
+
+// SQ_CF_RT_BOOLEANS
+#define SQ_CF_RT_BOOLEANS__CF_BOOLEANS_0_MASK 0x000000ffL
+#define SQ_CF_RT_BOOLEANS__CF_BOOLEANS_1_MASK 0x0000ff00L
+#define SQ_CF_RT_BOOLEANS__CF_BOOLEANS_2_MASK 0x00ff0000L
+#define SQ_CF_RT_BOOLEANS__CF_BOOLEANS_3_MASK 0xff000000L
+
+// SQ_CF_RT_LOOP
+#define SQ_CF_RT_LOOP__CF_LOOP_COUNT_MASK 0x000000ffL
+#define SQ_CF_RT_LOOP__CF_LOOP_START_MASK 0x0000ff00L
+#define SQ_CF_RT_LOOP__CF_LOOP_STEP_MASK 0x00ff0000L
+
+// SQ_VS_PROGRAM
+#define SQ_VS_PROGRAM__BASE_MASK 0x00000fffL
+#define SQ_VS_PROGRAM__SIZE_MASK 0x00fff000L
+
+// SQ_PS_PROGRAM
+#define SQ_PS_PROGRAM__BASE_MASK 0x00000fffL
+#define SQ_PS_PROGRAM__SIZE_MASK 0x00fff000L
+
+// SQ_CF_PROGRAM_SIZE
+#define SQ_CF_PROGRAM_SIZE__VS_CF_SIZE_MASK 0x000007ffL
+#define SQ_CF_PROGRAM_SIZE__PS_CF_SIZE_MASK 0x007ff000L
+
+// SQ_INTERPOLATOR_CNTL
+#define SQ_INTERPOLATOR_CNTL__PARAM_SHADE_MASK 0x0000ffffL
+#define SQ_INTERPOLATOR_CNTL__SAMPLING_PATTERN_MASK 0xffff0000L
+
+// SQ_PROGRAM_CNTL
+#define SQ_PROGRAM_CNTL__VS_NUM_REG_MASK 0x0000003fL
+#define SQ_PROGRAM_CNTL__PS_NUM_REG_MASK 0x00003f00L
+#define SQ_PROGRAM_CNTL__VS_RESOURCE_MASK 0x00010000L
+#define SQ_PROGRAM_CNTL__VS_RESOURCE 0x00010000L
+#define SQ_PROGRAM_CNTL__PS_RESOURCE_MASK 0x00020000L
+#define SQ_PROGRAM_CNTL__PS_RESOURCE 0x00020000L
+#define SQ_PROGRAM_CNTL__PARAM_GEN_MASK 0x00040000L
+#define SQ_PROGRAM_CNTL__PARAM_GEN 0x00040000L
+#define SQ_PROGRAM_CNTL__GEN_INDEX_PIX_MASK 0x00080000L
+#define SQ_PROGRAM_CNTL__GEN_INDEX_PIX 0x00080000L
+#define SQ_PROGRAM_CNTL__VS_EXPORT_COUNT_MASK 0x00f00000L
+#define SQ_PROGRAM_CNTL__VS_EXPORT_MODE_MASK 0x07000000L
+#define SQ_PROGRAM_CNTL__PS_EXPORT_MODE_MASK 0x78000000L
+#define SQ_PROGRAM_CNTL__GEN_INDEX_VTX_MASK 0x80000000L
+#define SQ_PROGRAM_CNTL__GEN_INDEX_VTX 0x80000000L
+
+// SQ_WRAPPING_0
+#define SQ_WRAPPING_0__PARAM_WRAP_0_MASK 0x0000000fL
+#define SQ_WRAPPING_0__PARAM_WRAP_1_MASK 0x000000f0L
+#define SQ_WRAPPING_0__PARAM_WRAP_2_MASK 0x00000f00L
+#define SQ_WRAPPING_0__PARAM_WRAP_3_MASK 0x0000f000L
+#define SQ_WRAPPING_0__PARAM_WRAP_4_MASK 0x000f0000L
+#define SQ_WRAPPING_0__PARAM_WRAP_5_MASK 0x00f00000L
+#define SQ_WRAPPING_0__PARAM_WRAP_6_MASK 0x0f000000L
+#define SQ_WRAPPING_0__PARAM_WRAP_7_MASK 0xf0000000L
+
+// SQ_WRAPPING_1
+#define SQ_WRAPPING_1__PARAM_WRAP_8_MASK 0x0000000fL
+#define SQ_WRAPPING_1__PARAM_WRAP_9_MASK 0x000000f0L
+#define SQ_WRAPPING_1__PARAM_WRAP_10_MASK 0x00000f00L
+#define SQ_WRAPPING_1__PARAM_WRAP_11_MASK 0x0000f000L
+#define SQ_WRAPPING_1__PARAM_WRAP_12_MASK 0x000f0000L
+#define SQ_WRAPPING_1__PARAM_WRAP_13_MASK 0x00f00000L
+#define SQ_WRAPPING_1__PARAM_WRAP_14_MASK 0x0f000000L
+#define SQ_WRAPPING_1__PARAM_WRAP_15_MASK 0xf0000000L
+
+// SQ_VS_CONST
+#define SQ_VS_CONST__BASE_MASK 0x000001ffL
+#define SQ_VS_CONST__SIZE_MASK 0x001ff000L
+
+// SQ_PS_CONST
+#define SQ_PS_CONST__BASE_MASK 0x000001ffL
+#define SQ_PS_CONST__SIZE_MASK 0x001ff000L
+
+// SQ_CONTEXT_MISC
+#define SQ_CONTEXT_MISC__INST_PRED_OPTIMIZE_MASK 0x00000001L
+#define SQ_CONTEXT_MISC__INST_PRED_OPTIMIZE 0x00000001L
+#define SQ_CONTEXT_MISC__SC_OUTPUT_SCREEN_XY_MASK 0x00000002L
+#define SQ_CONTEXT_MISC__SC_OUTPUT_SCREEN_XY 0x00000002L
+#define SQ_CONTEXT_MISC__SC_SAMPLE_CNTL_MASK 0x0000000cL
+#define SQ_CONTEXT_MISC__PARAM_GEN_POS_MASK 0x0000ff00L
+#define SQ_CONTEXT_MISC__PERFCOUNTER_REF_MASK 0x00010000L
+#define SQ_CONTEXT_MISC__PERFCOUNTER_REF 0x00010000L
+#define SQ_CONTEXT_MISC__YEILD_OPTIMIZE_MASK 0x00020000L
+#define SQ_CONTEXT_MISC__YEILD_OPTIMIZE 0x00020000L
+#define SQ_CONTEXT_MISC__TX_CACHE_SEL_MASK 0x00040000L
+#define SQ_CONTEXT_MISC__TX_CACHE_SEL 0x00040000L
+
+// SQ_CF_RD_BASE
+#define SQ_CF_RD_BASE__RD_BASE_MASK 0x00000007L
+
+// SQ_DEBUG_MISC_0
+#define SQ_DEBUG_MISC_0__DB_PROB_ON_MASK 0x00000001L
+#define SQ_DEBUG_MISC_0__DB_PROB_ON 0x00000001L
+#define SQ_DEBUG_MISC_0__DB_PROB_BREAK_MASK 0x00000010L
+#define SQ_DEBUG_MISC_0__DB_PROB_BREAK 0x00000010L
+#define SQ_DEBUG_MISC_0__DB_PROB_ADDR_MASK 0x0007ff00L
+#define SQ_DEBUG_MISC_0__DB_PROB_COUNT_MASK 0xff000000L
+
+// SQ_DEBUG_MISC_1
+#define SQ_DEBUG_MISC_1__DB_ON_PIX_MASK 0x00000001L
+#define SQ_DEBUG_MISC_1__DB_ON_PIX 0x00000001L
+#define SQ_DEBUG_MISC_1__DB_ON_VTX_MASK 0x00000002L
+#define SQ_DEBUG_MISC_1__DB_ON_VTX 0x00000002L
+#define SQ_DEBUG_MISC_1__DB_INST_COUNT_MASK 0x0000ff00L
+#define SQ_DEBUG_MISC_1__DB_BREAK_ADDR_MASK 0x07ff0000L
+
+// MH_ARBITER_CONFIG
+#define MH_ARBITER_CONFIG__SAME_PAGE_LIMIT_MASK 0x0000003fL
+#define MH_ARBITER_CONFIG__SAME_PAGE_GRANULARITY_MASK 0x00000040L
+#define MH_ARBITER_CONFIG__SAME_PAGE_GRANULARITY 0x00000040L
+#define MH_ARBITER_CONFIG__L1_ARB_ENABLE_MASK 0x00000080L
+#define MH_ARBITER_CONFIG__L1_ARB_ENABLE 0x00000080L
+#define MH_ARBITER_CONFIG__L1_ARB_HOLD_ENABLE_MASK 0x00000100L
+#define MH_ARBITER_CONFIG__L1_ARB_HOLD_ENABLE 0x00000100L
+#define MH_ARBITER_CONFIG__L2_ARB_CONTROL_MASK 0x00000200L
+#define MH_ARBITER_CONFIG__L2_ARB_CONTROL 0x00000200L
+#define MH_ARBITER_CONFIG__PAGE_SIZE_MASK 0x00001c00L
+#define MH_ARBITER_CONFIG__TC_REORDER_ENABLE_MASK 0x00002000L
+#define MH_ARBITER_CONFIG__TC_REORDER_ENABLE 0x00002000L
+#define MH_ARBITER_CONFIG__TC_ARB_HOLD_ENABLE_MASK 0x00004000L
+#define MH_ARBITER_CONFIG__TC_ARB_HOLD_ENABLE 0x00004000L
+#define MH_ARBITER_CONFIG__IN_FLIGHT_LIMIT_ENABLE_MASK 0x00008000L
+#define MH_ARBITER_CONFIG__IN_FLIGHT_LIMIT_ENABLE 0x00008000L
+#define MH_ARBITER_CONFIG__IN_FLIGHT_LIMIT_MASK 0x003f0000L
+#define MH_ARBITER_CONFIG__CP_CLNT_ENABLE_MASK 0x00400000L
+#define MH_ARBITER_CONFIG__CP_CLNT_ENABLE 0x00400000L
+#define MH_ARBITER_CONFIG__VGT_CLNT_ENABLE_MASK 0x00800000L
+#define MH_ARBITER_CONFIG__VGT_CLNT_ENABLE 0x00800000L
+#define MH_ARBITER_CONFIG__TC_CLNT_ENABLE_MASK 0x01000000L
+#define MH_ARBITER_CONFIG__TC_CLNT_ENABLE 0x01000000L
+#define MH_ARBITER_CONFIG__RB_CLNT_ENABLE_MASK 0x02000000L
+#define MH_ARBITER_CONFIG__RB_CLNT_ENABLE 0x02000000L
+#define MH_ARBITER_CONFIG__PA_CLNT_ENABLE_MASK 0x04000000L
+#define MH_ARBITER_CONFIG__PA_CLNT_ENABLE 0x04000000L
+
+// MH_CLNT_AXI_ID_REUSE
+#define MH_CLNT_AXI_ID_REUSE__CPw_ID_MASK 0x00000007L
+#define MH_CLNT_AXI_ID_REUSE__RESERVED1_MASK 0x00000008L
+#define MH_CLNT_AXI_ID_REUSE__RESERVED1 0x00000008L
+#define MH_CLNT_AXI_ID_REUSE__RBw_ID_MASK 0x00000070L
+#define MH_CLNT_AXI_ID_REUSE__RESERVED2_MASK 0x00000080L
+#define MH_CLNT_AXI_ID_REUSE__RESERVED2 0x00000080L
+#define MH_CLNT_AXI_ID_REUSE__MMUr_ID_MASK 0x00000700L
+#define MH_CLNT_AXI_ID_REUSE__RESERVED3_MASK 0x00000800L
+#define MH_CLNT_AXI_ID_REUSE__RESERVED3 0x00000800L
+#define MH_CLNT_AXI_ID_REUSE__PAw_ID_MASK 0x00007000L
+
+// MH_INTERRUPT_MASK
+#define MH_INTERRUPT_MASK__AXI_READ_ERROR_MASK 0x00000001L
+#define MH_INTERRUPT_MASK__AXI_READ_ERROR 0x00000001L
+#define MH_INTERRUPT_MASK__AXI_WRITE_ERROR_MASK 0x00000002L
+#define MH_INTERRUPT_MASK__AXI_WRITE_ERROR 0x00000002L
+#define MH_INTERRUPT_MASK__MMU_PAGE_FAULT_MASK 0x00000004L
+#define MH_INTERRUPT_MASK__MMU_PAGE_FAULT 0x00000004L
+
+// MH_INTERRUPT_STATUS
+#define MH_INTERRUPT_STATUS__AXI_READ_ERROR_MASK 0x00000001L
+#define MH_INTERRUPT_STATUS__AXI_READ_ERROR 0x00000001L
+#define MH_INTERRUPT_STATUS__AXI_WRITE_ERROR_MASK 0x00000002L
+#define MH_INTERRUPT_STATUS__AXI_WRITE_ERROR 0x00000002L
+#define MH_INTERRUPT_STATUS__MMU_PAGE_FAULT_MASK 0x00000004L
+#define MH_INTERRUPT_STATUS__MMU_PAGE_FAULT 0x00000004L
+
+// MH_INTERRUPT_CLEAR
+#define MH_INTERRUPT_CLEAR__AXI_READ_ERROR_MASK 0x00000001L
+#define MH_INTERRUPT_CLEAR__AXI_READ_ERROR 0x00000001L
+#define MH_INTERRUPT_CLEAR__AXI_WRITE_ERROR_MASK 0x00000002L
+#define MH_INTERRUPT_CLEAR__AXI_WRITE_ERROR 0x00000002L
+#define MH_INTERRUPT_CLEAR__MMU_PAGE_FAULT_MASK 0x00000004L
+#define MH_INTERRUPT_CLEAR__MMU_PAGE_FAULT 0x00000004L
+
+// MH_AXI_ERROR
+#define MH_AXI_ERROR__AXI_READ_ID_MASK 0x00000007L
+#define MH_AXI_ERROR__AXI_READ_ERROR_MASK 0x00000008L
+#define MH_AXI_ERROR__AXI_READ_ERROR 0x00000008L
+#define MH_AXI_ERROR__AXI_WRITE_ID_MASK 0x00000070L
+#define MH_AXI_ERROR__AXI_WRITE_ERROR_MASK 0x00000080L
+#define MH_AXI_ERROR__AXI_WRITE_ERROR 0x00000080L
+
+// MH_PERFCOUNTER0_SELECT
+#define MH_PERFCOUNTER0_SELECT__PERF_SEL_MASK 0x000000ffL
+
+// MH_PERFCOUNTER1_SELECT
+#define MH_PERFCOUNTER1_SELECT__PERF_SEL_MASK 0x000000ffL
+
+// MH_PERFCOUNTER0_CONFIG
+#define MH_PERFCOUNTER0_CONFIG__N_VALUE_MASK 0x000000ffL
+
+// MH_PERFCOUNTER1_CONFIG
+#define MH_PERFCOUNTER1_CONFIG__N_VALUE_MASK 0x000000ffL
+
+// MH_PERFCOUNTER0_LOW
+#define MH_PERFCOUNTER0_LOW__PERF_COUNTER_LOW_MASK 0xffffffffL
+
+// MH_PERFCOUNTER1_LOW
+#define MH_PERFCOUNTER1_LOW__PERF_COUNTER_LOW_MASK 0xffffffffL
+
+// MH_PERFCOUNTER0_HI
+#define MH_PERFCOUNTER0_HI__PERF_COUNTER_HI_MASK 0x0000ffffL
+
+// MH_PERFCOUNTER1_HI
+#define MH_PERFCOUNTER1_HI__PERF_COUNTER_HI_MASK 0x0000ffffL
+
+// MH_DEBUG_CTRL
+#define MH_DEBUG_CTRL__INDEX_MASK 0x0000003fL
+
+// MH_DEBUG_DATA
+#define MH_DEBUG_DATA__DATA_MASK 0xffffffffL
+
+// MH_AXI_HALT_CONTROL
+#define MH_AXI_HALT_CONTROL__AXI_HALT_MASK 0x00000001L
+#define MH_AXI_HALT_CONTROL__AXI_HALT 0x00000001L
+
+// MH_DEBUG_REG00
+#define MH_DEBUG_REG00__MH_BUSY_MASK 0x00000001L
+#define MH_DEBUG_REG00__MH_BUSY 0x00000001L
+#define MH_DEBUG_REG00__TRANS_OUTSTANDING_MASK 0x00000002L
+#define MH_DEBUG_REG00__TRANS_OUTSTANDING 0x00000002L
+#define MH_DEBUG_REG00__CP_REQUEST_MASK 0x00000004L
+#define MH_DEBUG_REG00__CP_REQUEST 0x00000004L
+#define MH_DEBUG_REG00__VGT_REQUEST_MASK 0x00000008L
+#define MH_DEBUG_REG00__VGT_REQUEST 0x00000008L
+#define MH_DEBUG_REG00__TC_REQUEST_MASK 0x00000010L
+#define MH_DEBUG_REG00__TC_REQUEST 0x00000010L
+#define MH_DEBUG_REG00__TC_CAM_EMPTY_MASK 0x00000020L
+#define MH_DEBUG_REG00__TC_CAM_EMPTY 0x00000020L
+#define MH_DEBUG_REG00__TC_CAM_FULL_MASK 0x00000040L
+#define MH_DEBUG_REG00__TC_CAM_FULL 0x00000040L
+#define MH_DEBUG_REG00__TCD_EMPTY_MASK 0x00000080L
+#define MH_DEBUG_REG00__TCD_EMPTY 0x00000080L
+#define MH_DEBUG_REG00__TCD_FULL_MASK 0x00000100L
+#define MH_DEBUG_REG00__TCD_FULL 0x00000100L
+#define MH_DEBUG_REG00__RB_REQUEST_MASK 0x00000200L
+#define MH_DEBUG_REG00__RB_REQUEST 0x00000200L
+#define MH_DEBUG_REG00__PA_REQUEST_MASK 0x00000400L
+#define MH_DEBUG_REG00__PA_REQUEST 0x00000400L
+#define MH_DEBUG_REG00__MH_CLK_EN_STATE_MASK 0x00000800L
+#define MH_DEBUG_REG00__MH_CLK_EN_STATE 0x00000800L
+#define MH_DEBUG_REG00__ARQ_EMPTY_MASK 0x00001000L
+#define MH_DEBUG_REG00__ARQ_EMPTY 0x00001000L
+#define MH_DEBUG_REG00__ARQ_FULL_MASK 0x00002000L
+#define MH_DEBUG_REG00__ARQ_FULL 0x00002000L
+#define MH_DEBUG_REG00__WDB_EMPTY_MASK 0x00004000L
+#define MH_DEBUG_REG00__WDB_EMPTY 0x00004000L
+#define MH_DEBUG_REG00__WDB_FULL_MASK 0x00008000L
+#define MH_DEBUG_REG00__WDB_FULL 0x00008000L
+#define MH_DEBUG_REG00__AXI_AVALID_MASK 0x00010000L
+#define MH_DEBUG_REG00__AXI_AVALID 0x00010000L
+#define MH_DEBUG_REG00__AXI_AREADY_MASK 0x00020000L
+#define MH_DEBUG_REG00__AXI_AREADY 0x00020000L
+#define MH_DEBUG_REG00__AXI_ARVALID_MASK 0x00040000L
+#define MH_DEBUG_REG00__AXI_ARVALID 0x00040000L
+#define MH_DEBUG_REG00__AXI_ARREADY_MASK 0x00080000L
+#define MH_DEBUG_REG00__AXI_ARREADY 0x00080000L
+#define MH_DEBUG_REG00__AXI_WVALID_MASK 0x00100000L
+#define MH_DEBUG_REG00__AXI_WVALID 0x00100000L
+#define MH_DEBUG_REG00__AXI_WREADY_MASK 0x00200000L
+#define MH_DEBUG_REG00__AXI_WREADY 0x00200000L
+#define MH_DEBUG_REG00__AXI_RVALID_MASK 0x00400000L
+#define MH_DEBUG_REG00__AXI_RVALID 0x00400000L
+#define MH_DEBUG_REG00__AXI_RREADY_MASK 0x00800000L
+#define MH_DEBUG_REG00__AXI_RREADY 0x00800000L
+#define MH_DEBUG_REG00__AXI_BVALID_MASK 0x01000000L
+#define MH_DEBUG_REG00__AXI_BVALID 0x01000000L
+#define MH_DEBUG_REG00__AXI_BREADY_MASK 0x02000000L
+#define MH_DEBUG_REG00__AXI_BREADY 0x02000000L
+#define MH_DEBUG_REG00__AXI_HALT_REQ_MASK 0x04000000L
+#define MH_DEBUG_REG00__AXI_HALT_REQ 0x04000000L
+#define MH_DEBUG_REG00__AXI_HALT_ACK_MASK 0x08000000L
+#define MH_DEBUG_REG00__AXI_HALT_ACK 0x08000000L
+#define MH_DEBUG_REG00__AXI_RDY_ENA_MASK 0x10000000L
+#define MH_DEBUG_REG00__AXI_RDY_ENA 0x10000000L
+
+// MH_DEBUG_REG01
+#define MH_DEBUG_REG01__CP_SEND_q_MASK 0x00000001L
+#define MH_DEBUG_REG01__CP_SEND_q 0x00000001L
+#define MH_DEBUG_REG01__CP_RTR_q_MASK 0x00000002L
+#define MH_DEBUG_REG01__CP_RTR_q 0x00000002L
+#define MH_DEBUG_REG01__CP_WRITE_q_MASK 0x00000004L
+#define MH_DEBUG_REG01__CP_WRITE_q 0x00000004L
+#define MH_DEBUG_REG01__CP_TAG_q_MASK 0x00000038L
+#define MH_DEBUG_REG01__CP_BLEN_q_MASK 0x00000040L
+#define MH_DEBUG_REG01__CP_BLEN_q 0x00000040L
+#define MH_DEBUG_REG01__VGT_SEND_q_MASK 0x00000080L
+#define MH_DEBUG_REG01__VGT_SEND_q 0x00000080L
+#define MH_DEBUG_REG01__VGT_RTR_q_MASK 0x00000100L
+#define MH_DEBUG_REG01__VGT_RTR_q 0x00000100L
+#define MH_DEBUG_REG01__VGT_TAG_q_MASK 0x00000200L
+#define MH_DEBUG_REG01__VGT_TAG_q 0x00000200L
+#define MH_DEBUG_REG01__TC_SEND_q_MASK 0x00000400L
+#define MH_DEBUG_REG01__TC_SEND_q 0x00000400L
+#define MH_DEBUG_REG01__TC_RTR_q_MASK 0x00000800L
+#define MH_DEBUG_REG01__TC_RTR_q 0x00000800L
+#define MH_DEBUG_REG01__TC_BLEN_q_MASK 0x00001000L
+#define MH_DEBUG_REG01__TC_BLEN_q 0x00001000L
+#define MH_DEBUG_REG01__TC_ROQ_SEND_q_MASK 0x00002000L
+#define MH_DEBUG_REG01__TC_ROQ_SEND_q 0x00002000L
+#define MH_DEBUG_REG01__TC_ROQ_RTR_q_MASK 0x00004000L
+#define MH_DEBUG_REG01__TC_ROQ_RTR_q 0x00004000L
+#define MH_DEBUG_REG01__TC_MH_written_MASK 0x00008000L
+#define MH_DEBUG_REG01__TC_MH_written 0x00008000L
+#define MH_DEBUG_REG01__RB_SEND_q_MASK 0x00010000L
+#define MH_DEBUG_REG01__RB_SEND_q 0x00010000L
+#define MH_DEBUG_REG01__RB_RTR_q_MASK 0x00020000L
+#define MH_DEBUG_REG01__RB_RTR_q 0x00020000L
+#define MH_DEBUG_REG01__PA_SEND_q_MASK 0x00040000L
+#define MH_DEBUG_REG01__PA_SEND_q 0x00040000L
+#define MH_DEBUG_REG01__PA_RTR_q_MASK 0x00080000L
+#define MH_DEBUG_REG01__PA_RTR_q 0x00080000L
+
+// MH_DEBUG_REG02
+#define MH_DEBUG_REG02__MH_CP_grb_send_MASK 0x00000001L
+#define MH_DEBUG_REG02__MH_CP_grb_send 0x00000001L
+#define MH_DEBUG_REG02__MH_VGT_grb_send_MASK 0x00000002L
+#define MH_DEBUG_REG02__MH_VGT_grb_send 0x00000002L
+#define MH_DEBUG_REG02__MH_TC_mcsend_MASK 0x00000004L
+#define MH_DEBUG_REG02__MH_TC_mcsend 0x00000004L
+#define MH_DEBUG_REG02__MH_CLNT_rlast_MASK 0x00000008L
+#define MH_DEBUG_REG02__MH_CLNT_rlast 0x00000008L
+#define MH_DEBUG_REG02__MH_CLNT_tag_MASK 0x00000070L
+#define MH_DEBUG_REG02__RDC_RID_MASK 0x00000380L
+#define MH_DEBUG_REG02__RDC_RRESP_MASK 0x00000c00L
+#define MH_DEBUG_REG02__MH_CP_writeclean_MASK 0x00001000L
+#define MH_DEBUG_REG02__MH_CP_writeclean 0x00001000L
+#define MH_DEBUG_REG02__MH_RB_writeclean_MASK 0x00002000L
+#define MH_DEBUG_REG02__MH_RB_writeclean 0x00002000L
+#define MH_DEBUG_REG02__MH_PA_writeclean_MASK 0x00004000L
+#define MH_DEBUG_REG02__MH_PA_writeclean 0x00004000L
+#define MH_DEBUG_REG02__BRC_BID_MASK 0x00038000L
+#define MH_DEBUG_REG02__BRC_BRESP_MASK 0x000c0000L
+
+// MH_DEBUG_REG03
+#define MH_DEBUG_REG03__MH_CLNT_data_31_0_MASK 0xffffffffL
+
+// MH_DEBUG_REG04
+#define MH_DEBUG_REG04__MH_CLNT_data_63_32_MASK 0xffffffffL
+
+// MH_DEBUG_REG05
+#define MH_DEBUG_REG05__CP_MH_send_MASK 0x00000001L
+#define MH_DEBUG_REG05__CP_MH_send 0x00000001L
+#define MH_DEBUG_REG05__CP_MH_write_MASK 0x00000002L
+#define MH_DEBUG_REG05__CP_MH_write 0x00000002L
+#define MH_DEBUG_REG05__CP_MH_tag_MASK 0x0000001cL
+#define MH_DEBUG_REG05__CP_MH_ad_31_5_MASK 0xffffffe0L
+
+// MH_DEBUG_REG06
+#define MH_DEBUG_REG06__CP_MH_data_31_0_MASK 0xffffffffL
+
+// MH_DEBUG_REG07
+#define MH_DEBUG_REG07__CP_MH_data_63_32_MASK 0xffffffffL
+
+// MH_DEBUG_REG08
+#define MH_DEBUG_REG08__CP_MH_be_MASK 0x000000ffL
+#define MH_DEBUG_REG08__RB_MH_be_MASK 0x0000ff00L
+#define MH_DEBUG_REG08__PA_MH_be_MASK 0x00ff0000L
+
+// MH_DEBUG_REG09
+#define MH_DEBUG_REG09__ALWAYS_ZERO_MASK 0x00000007L
+#define MH_DEBUG_REG09__VGT_MH_send_MASK 0x00000008L
+#define MH_DEBUG_REG09__VGT_MH_send 0x00000008L
+#define MH_DEBUG_REG09__VGT_MH_tagbe_MASK 0x00000010L
+#define MH_DEBUG_REG09__VGT_MH_tagbe 0x00000010L
+#define MH_DEBUG_REG09__VGT_MH_ad_31_5_MASK 0xffffffe0L
+
+// MH_DEBUG_REG10
+#define MH_DEBUG_REG10__ALWAYS_ZERO_MASK 0x00000003L
+#define MH_DEBUG_REG10__TC_MH_send_MASK 0x00000004L
+#define MH_DEBUG_REG10__TC_MH_send 0x00000004L
+#define MH_DEBUG_REG10__TC_MH_mask_MASK 0x00000018L
+#define MH_DEBUG_REG10__TC_MH_addr_31_5_MASK 0xffffffe0L
+
+// MH_DEBUG_REG11
+#define MH_DEBUG_REG11__TC_MH_info_MASK 0x01ffffffL
+#define MH_DEBUG_REG11__TC_MH_send_MASK 0x02000000L
+#define MH_DEBUG_REG11__TC_MH_send 0x02000000L
+
+// MH_DEBUG_REG12
+#define MH_DEBUG_REG12__MH_TC_mcinfo_MASK 0x01ffffffL
+#define MH_DEBUG_REG12__MH_TC_mcinfo_send_MASK 0x02000000L
+#define MH_DEBUG_REG12__MH_TC_mcinfo_send 0x02000000L
+#define MH_DEBUG_REG12__TC_MH_written_MASK 0x04000000L
+#define MH_DEBUG_REG12__TC_MH_written 0x04000000L
+
+// MH_DEBUG_REG13
+#define MH_DEBUG_REG13__ALWAYS_ZERO_MASK 0x00000003L
+#define MH_DEBUG_REG13__TC_ROQ_SEND_MASK 0x00000004L
+#define MH_DEBUG_REG13__TC_ROQ_SEND 0x00000004L
+#define MH_DEBUG_REG13__TC_ROQ_MASK_MASK 0x00000018L
+#define MH_DEBUG_REG13__TC_ROQ_ADDR_31_5_MASK 0xffffffe0L
+
+// MH_DEBUG_REG14
+#define MH_DEBUG_REG14__TC_ROQ_INFO_MASK 0x01ffffffL
+#define MH_DEBUG_REG14__TC_ROQ_SEND_MASK 0x02000000L
+#define MH_DEBUG_REG14__TC_ROQ_SEND 0x02000000L
+
+// MH_DEBUG_REG15
+#define MH_DEBUG_REG15__ALWAYS_ZERO_MASK 0x0000000fL
+#define MH_DEBUG_REG15__RB_MH_send_MASK 0x00000010L
+#define MH_DEBUG_REG15__RB_MH_send 0x00000010L
+#define MH_DEBUG_REG15__RB_MH_addr_31_5_MASK 0xffffffe0L
+
+// MH_DEBUG_REG16
+#define MH_DEBUG_REG16__RB_MH_data_31_0_MASK 0xffffffffL
+
+// MH_DEBUG_REG17
+#define MH_DEBUG_REG17__RB_MH_data_63_32_MASK 0xffffffffL
+
+// MH_DEBUG_REG18
+#define MH_DEBUG_REG18__ALWAYS_ZERO_MASK 0x0000000fL
+#define MH_DEBUG_REG18__PA_MH_send_MASK 0x00000010L
+#define MH_DEBUG_REG18__PA_MH_send 0x00000010L
+#define MH_DEBUG_REG18__PA_MH_addr_31_5_MASK 0xffffffe0L
+
+// MH_DEBUG_REG19
+#define MH_DEBUG_REG19__PA_MH_data_31_0_MASK 0xffffffffL
+
+// MH_DEBUG_REG20
+#define MH_DEBUG_REG20__PA_MH_data_63_32_MASK 0xffffffffL
+
+// MH_DEBUG_REG21
+#define MH_DEBUG_REG21__AVALID_q_MASK 0x00000001L
+#define MH_DEBUG_REG21__AVALID_q 0x00000001L
+#define MH_DEBUG_REG21__AREADY_q_MASK 0x00000002L
+#define MH_DEBUG_REG21__AREADY_q 0x00000002L
+#define MH_DEBUG_REG21__AID_q_MASK 0x0000001cL
+#define MH_DEBUG_REG21__ALEN_q_2_0_MASK 0x000000e0L
+#define MH_DEBUG_REG21__ARVALID_q_MASK 0x00000100L
+#define MH_DEBUG_REG21__ARVALID_q 0x00000100L
+#define MH_DEBUG_REG21__ARREADY_q_MASK 0x00000200L
+#define MH_DEBUG_REG21__ARREADY_q 0x00000200L
+#define MH_DEBUG_REG21__ARID_q_MASK 0x00001c00L
+#define MH_DEBUG_REG21__ARLEN_q_1_0_MASK 0x00006000L
+#define MH_DEBUG_REG21__RVALID_q_MASK 0x00008000L
+#define MH_DEBUG_REG21__RVALID_q 0x00008000L
+#define MH_DEBUG_REG21__RREADY_q_MASK 0x00010000L
+#define MH_DEBUG_REG21__RREADY_q 0x00010000L
+#define MH_DEBUG_REG21__RLAST_q_MASK 0x00020000L
+#define MH_DEBUG_REG21__RLAST_q 0x00020000L
+#define MH_DEBUG_REG21__RID_q_MASK 0x001c0000L
+#define MH_DEBUG_REG21__WVALID_q_MASK 0x00200000L
+#define MH_DEBUG_REG21__WVALID_q 0x00200000L
+#define MH_DEBUG_REG21__WREADY_q_MASK 0x00400000L
+#define MH_DEBUG_REG21__WREADY_q 0x00400000L
+#define MH_DEBUG_REG21__WLAST_q_MASK 0x00800000L
+#define MH_DEBUG_REG21__WLAST_q 0x00800000L
+#define MH_DEBUG_REG21__WID_q_MASK 0x07000000L
+#define MH_DEBUG_REG21__BVALID_q_MASK 0x08000000L
+#define MH_DEBUG_REG21__BVALID_q 0x08000000L
+#define MH_DEBUG_REG21__BREADY_q_MASK 0x10000000L
+#define MH_DEBUG_REG21__BREADY_q 0x10000000L
+#define MH_DEBUG_REG21__BID_q_MASK 0xe0000000L
+
+// MH_DEBUG_REG22
+#define MH_DEBUG_REG22__AVALID_q_MASK 0x00000001L
+#define MH_DEBUG_REG22__AVALID_q 0x00000001L
+#define MH_DEBUG_REG22__AREADY_q_MASK 0x00000002L
+#define MH_DEBUG_REG22__AREADY_q 0x00000002L
+#define MH_DEBUG_REG22__AID_q_MASK 0x0000001cL
+#define MH_DEBUG_REG22__ALEN_q_1_0_MASK 0x00000060L
+#define MH_DEBUG_REG22__ARVALID_q_MASK 0x00000080L
+#define MH_DEBUG_REG22__ARVALID_q 0x00000080L
+#define MH_DEBUG_REG22__ARREADY_q_MASK 0x00000100L
+#define MH_DEBUG_REG22__ARREADY_q 0x00000100L
+#define MH_DEBUG_REG22__ARID_q_MASK 0x00000e00L
+#define MH_DEBUG_REG22__ARLEN_q_1_1_MASK 0x00001000L
+#define MH_DEBUG_REG22__ARLEN_q_1_1 0x00001000L
+#define MH_DEBUG_REG22__WVALID_q_MASK 0x00002000L
+#define MH_DEBUG_REG22__WVALID_q 0x00002000L
+#define MH_DEBUG_REG22__WREADY_q_MASK 0x00004000L
+#define MH_DEBUG_REG22__WREADY_q 0x00004000L
+#define MH_DEBUG_REG22__WLAST_q_MASK 0x00008000L
+#define MH_DEBUG_REG22__WLAST_q 0x00008000L
+#define MH_DEBUG_REG22__WID_q_MASK 0x00070000L
+#define MH_DEBUG_REG22__WSTRB_q_MASK 0x07f80000L
+#define MH_DEBUG_REG22__BVALID_q_MASK 0x08000000L
+#define MH_DEBUG_REG22__BVALID_q 0x08000000L
+#define MH_DEBUG_REG22__BREADY_q_MASK 0x10000000L
+#define MH_DEBUG_REG22__BREADY_q 0x10000000L
+#define MH_DEBUG_REG22__BID_q_MASK 0xe0000000L
+
+// MH_DEBUG_REG23
+#define MH_DEBUG_REG23__ARC_CTRL_RE_q_MASK 0x00000001L
+#define MH_DEBUG_REG23__ARC_CTRL_RE_q 0x00000001L
+#define MH_DEBUG_REG23__CTRL_ARC_ID_MASK 0x0000000eL
+#define MH_DEBUG_REG23__CTRL_ARC_PAD_MASK 0xfffffff0L
+
+// MH_DEBUG_REG24
+#define MH_DEBUG_REG24__ALWAYS_ZERO_MASK 0x00000003L
+#define MH_DEBUG_REG24__REG_A_MASK 0x0000fffcL
+#define MH_DEBUG_REG24__REG_RE_MASK 0x00010000L
+#define MH_DEBUG_REG24__REG_RE 0x00010000L
+#define MH_DEBUG_REG24__REG_WE_MASK 0x00020000L
+#define MH_DEBUG_REG24__REG_WE 0x00020000L
+#define MH_DEBUG_REG24__BLOCK_RS_MASK 0x00040000L
+#define MH_DEBUG_REG24__BLOCK_RS 0x00040000L
+
+// MH_DEBUG_REG25
+#define MH_DEBUG_REG25__REG_WD_MASK 0xffffffffL
+
+// MH_DEBUG_REG26
+#define MH_DEBUG_REG26__MH_RBBM_busy_MASK 0x00000001L
+#define MH_DEBUG_REG26__MH_RBBM_busy 0x00000001L
+#define MH_DEBUG_REG26__MH_CIB_mh_clk_en_int_MASK 0x00000002L
+#define MH_DEBUG_REG26__MH_CIB_mh_clk_en_int 0x00000002L
+#define MH_DEBUG_REG26__MH_CIB_mmu_clk_en_int_MASK 0x00000004L
+#define MH_DEBUG_REG26__MH_CIB_mmu_clk_en_int 0x00000004L
+#define MH_DEBUG_REG26__MH_CIB_tcroq_clk_en_int_MASK 0x00000008L
+#define MH_DEBUG_REG26__MH_CIB_tcroq_clk_en_int 0x00000008L
+#define MH_DEBUG_REG26__GAT_CLK_ENA_MASK 0x00000010L
+#define MH_DEBUG_REG26__GAT_CLK_ENA 0x00000010L
+#define MH_DEBUG_REG26__RBBM_MH_clk_en_override_MASK 0x00000020L
+#define MH_DEBUG_REG26__RBBM_MH_clk_en_override 0x00000020L
+#define MH_DEBUG_REG26__CNT_q_MASK 0x00000fc0L
+#define MH_DEBUG_REG26__TCD_EMPTY_q_MASK 0x00001000L
+#define MH_DEBUG_REG26__TCD_EMPTY_q 0x00001000L
+#define MH_DEBUG_REG26__TC_ROQ_EMPTY_MASK 0x00002000L
+#define MH_DEBUG_REG26__TC_ROQ_EMPTY 0x00002000L
+#define MH_DEBUG_REG26__MH_BUSY_d_MASK 0x00004000L
+#define MH_DEBUG_REG26__MH_BUSY_d 0x00004000L
+#define MH_DEBUG_REG26__ANY_CLNT_BUSY_MASK 0x00008000L
+#define MH_DEBUG_REG26__ANY_CLNT_BUSY 0x00008000L
+#define MH_DEBUG_REG26__MH_MMU_INVALIDATE_INVALIDATE_ALL_MASK 0x00010000L
+#define MH_DEBUG_REG26__MH_MMU_INVALIDATE_INVALIDATE_ALL 0x00010000L
+#define MH_DEBUG_REG26__MH_MMU_INVALIDATE_INVALIDATE_TC_MASK 0x00020000L
+#define MH_DEBUG_REG26__MH_MMU_INVALIDATE_INVALIDATE_TC 0x00020000L
+#define MH_DEBUG_REG26__CP_SEND_q_MASK 0x00040000L
+#define MH_DEBUG_REG26__CP_SEND_q 0x00040000L
+#define MH_DEBUG_REG26__CP_RTR_q_MASK 0x00080000L
+#define MH_DEBUG_REG26__CP_RTR_q 0x00080000L
+#define MH_DEBUG_REG26__VGT_SEND_q_MASK 0x00100000L
+#define MH_DEBUG_REG26__VGT_SEND_q 0x00100000L
+#define MH_DEBUG_REG26__VGT_RTR_q_MASK 0x00200000L
+#define MH_DEBUG_REG26__VGT_RTR_q 0x00200000L
+#define MH_DEBUG_REG26__TC_ROQ_SEND_q_MASK 0x00400000L
+#define MH_DEBUG_REG26__TC_ROQ_SEND_q 0x00400000L
+#define MH_DEBUG_REG26__TC_ROQ_RTR_DBG_q_MASK 0x00800000L
+#define MH_DEBUG_REG26__TC_ROQ_RTR_DBG_q 0x00800000L
+#define MH_DEBUG_REG26__RB_SEND_q_MASK 0x01000000L
+#define MH_DEBUG_REG26__RB_SEND_q 0x01000000L
+#define MH_DEBUG_REG26__RB_RTR_q_MASK 0x02000000L
+#define MH_DEBUG_REG26__RB_RTR_q 0x02000000L
+#define MH_DEBUG_REG26__PA_SEND_q_MASK 0x04000000L
+#define MH_DEBUG_REG26__PA_SEND_q 0x04000000L
+#define MH_DEBUG_REG26__PA_RTR_q_MASK 0x08000000L
+#define MH_DEBUG_REG26__PA_RTR_q 0x08000000L
+#define MH_DEBUG_REG26__RDC_VALID_MASK 0x10000000L
+#define MH_DEBUG_REG26__RDC_VALID 0x10000000L
+#define MH_DEBUG_REG26__RDC_RLAST_MASK 0x20000000L
+#define MH_DEBUG_REG26__RDC_RLAST 0x20000000L
+#define MH_DEBUG_REG26__TLBMISS_VALID_MASK 0x40000000L
+#define MH_DEBUG_REG26__TLBMISS_VALID 0x40000000L
+#define MH_DEBUG_REG26__BRC_VALID_MASK 0x80000000L
+#define MH_DEBUG_REG26__BRC_VALID 0x80000000L
+
+// MH_DEBUG_REG27
+#define MH_DEBUG_REG27__EFF2_FP_WINNER_MASK 0x00000007L
+#define MH_DEBUG_REG27__EFF2_LRU_WINNER_out_MASK 0x00000038L
+#define MH_DEBUG_REG27__EFF1_WINNER_MASK 0x000001c0L
+#define MH_DEBUG_REG27__ARB_WINNER_MASK 0x00000e00L
+#define MH_DEBUG_REG27__ARB_WINNER_q_MASK 0x00007000L
+#define MH_DEBUG_REG27__EFF1_WIN_MASK 0x00008000L
+#define MH_DEBUG_REG27__EFF1_WIN 0x00008000L
+#define MH_DEBUG_REG27__KILL_EFF1_MASK 0x00010000L
+#define MH_DEBUG_REG27__KILL_EFF1 0x00010000L
+#define MH_DEBUG_REG27__ARB_HOLD_MASK 0x00020000L
+#define MH_DEBUG_REG27__ARB_HOLD 0x00020000L
+#define MH_DEBUG_REG27__ARB_RTR_q_MASK 0x00040000L
+#define MH_DEBUG_REG27__ARB_RTR_q 0x00040000L
+#define MH_DEBUG_REG27__CP_SEND_QUAL_MASK 0x00080000L
+#define MH_DEBUG_REG27__CP_SEND_QUAL 0x00080000L
+#define MH_DEBUG_REG27__VGT_SEND_QUAL_MASK 0x00100000L
+#define MH_DEBUG_REG27__VGT_SEND_QUAL 0x00100000L
+#define MH_DEBUG_REG27__TC_SEND_QUAL_MASK 0x00200000L
+#define MH_DEBUG_REG27__TC_SEND_QUAL 0x00200000L
+#define MH_DEBUG_REG27__TC_SEND_EFF1_QUAL_MASK 0x00400000L
+#define MH_DEBUG_REG27__TC_SEND_EFF1_QUAL 0x00400000L
+#define MH_DEBUG_REG27__RB_SEND_QUAL_MASK 0x00800000L
+#define MH_DEBUG_REG27__RB_SEND_QUAL 0x00800000L
+#define MH_DEBUG_REG27__PA_SEND_QUAL_MASK 0x01000000L
+#define MH_DEBUG_REG27__PA_SEND_QUAL 0x01000000L
+#define MH_DEBUG_REG27__ARB_QUAL_MASK 0x02000000L
+#define MH_DEBUG_REG27__ARB_QUAL 0x02000000L
+#define MH_DEBUG_REG27__CP_EFF1_REQ_MASK 0x04000000L
+#define MH_DEBUG_REG27__CP_EFF1_REQ 0x04000000L
+#define MH_DEBUG_REG27__VGT_EFF1_REQ_MASK 0x08000000L
+#define MH_DEBUG_REG27__VGT_EFF1_REQ 0x08000000L
+#define MH_DEBUG_REG27__TC_EFF1_REQ_MASK 0x10000000L
+#define MH_DEBUG_REG27__TC_EFF1_REQ 0x10000000L
+#define MH_DEBUG_REG27__RB_EFF1_REQ_MASK 0x20000000L
+#define MH_DEBUG_REG27__RB_EFF1_REQ 0x20000000L
+#define MH_DEBUG_REG27__TCD_NEARFULL_q_MASK 0x40000000L
+#define MH_DEBUG_REG27__TCD_NEARFULL_q 0x40000000L
+#define MH_DEBUG_REG27__TCHOLD_IP_q_MASK 0x80000000L
+#define MH_DEBUG_REG27__TCHOLD_IP_q 0x80000000L
+
+// MH_DEBUG_REG28
+#define MH_DEBUG_REG28__EFF1_WINNER_MASK 0x00000007L
+#define MH_DEBUG_REG28__ARB_WINNER_MASK 0x00000038L
+#define MH_DEBUG_REG28__CP_SEND_QUAL_MASK 0x00000040L
+#define MH_DEBUG_REG28__CP_SEND_QUAL 0x00000040L
+#define MH_DEBUG_REG28__VGT_SEND_QUAL_MASK 0x00000080L
+#define MH_DEBUG_REG28__VGT_SEND_QUAL 0x00000080L
+#define MH_DEBUG_REG28__TC_SEND_QUAL_MASK 0x00000100L
+#define MH_DEBUG_REG28__TC_SEND_QUAL 0x00000100L
+#define MH_DEBUG_REG28__TC_SEND_EFF1_QUAL_MASK 0x00000200L
+#define MH_DEBUG_REG28__TC_SEND_EFF1_QUAL 0x00000200L
+#define MH_DEBUG_REG28__RB_SEND_QUAL_MASK 0x00000400L
+#define MH_DEBUG_REG28__RB_SEND_QUAL 0x00000400L
+#define MH_DEBUG_REG28__ARB_QUAL_MASK 0x00000800L
+#define MH_DEBUG_REG28__ARB_QUAL 0x00000800L
+#define MH_DEBUG_REG28__CP_EFF1_REQ_MASK 0x00001000L
+#define MH_DEBUG_REG28__CP_EFF1_REQ 0x00001000L
+#define MH_DEBUG_REG28__VGT_EFF1_REQ_MASK 0x00002000L
+#define MH_DEBUG_REG28__VGT_EFF1_REQ 0x00002000L
+#define MH_DEBUG_REG28__TC_EFF1_REQ_MASK 0x00004000L
+#define MH_DEBUG_REG28__TC_EFF1_REQ 0x00004000L
+#define MH_DEBUG_REG28__RB_EFF1_REQ_MASK 0x00008000L
+#define MH_DEBUG_REG28__RB_EFF1_REQ 0x00008000L
+#define MH_DEBUG_REG28__EFF1_WIN_MASK 0x00010000L
+#define MH_DEBUG_REG28__EFF1_WIN 0x00010000L
+#define MH_DEBUG_REG28__KILL_EFF1_MASK 0x00020000L
+#define MH_DEBUG_REG28__KILL_EFF1 0x00020000L
+#define MH_DEBUG_REG28__TCD_NEARFULL_q_MASK 0x00040000L
+#define MH_DEBUG_REG28__TCD_NEARFULL_q 0x00040000L
+#define MH_DEBUG_REG28__TC_ARB_HOLD_MASK 0x00080000L
+#define MH_DEBUG_REG28__TC_ARB_HOLD 0x00080000L
+#define MH_DEBUG_REG28__ARB_HOLD_MASK 0x00100000L
+#define MH_DEBUG_REG28__ARB_HOLD 0x00100000L
+#define MH_DEBUG_REG28__ARB_RTR_q_MASK 0x00200000L
+#define MH_DEBUG_REG28__ARB_RTR_q 0x00200000L
+#define MH_DEBUG_REG28__SAME_PAGE_LIMIT_COUNT_q_MASK 0xffc00000L
+
+// MH_DEBUG_REG29
+#define MH_DEBUG_REG29__EFF2_LRU_WINNER_out_MASK 0x00000007L
+#define MH_DEBUG_REG29__LEAST_RECENT_INDEX_d_MASK 0x00000038L
+#define MH_DEBUG_REG29__LEAST_RECENT_d_MASK 0x000001c0L
+#define MH_DEBUG_REG29__UPDATE_RECENT_STACK_d_MASK 0x00000200L
+#define MH_DEBUG_REG29__UPDATE_RECENT_STACK_d 0x00000200L
+#define MH_DEBUG_REG29__ARB_HOLD_MASK 0x00000400L
+#define MH_DEBUG_REG29__ARB_HOLD 0x00000400L
+#define MH_DEBUG_REG29__ARB_RTR_q_MASK 0x00000800L
+#define MH_DEBUG_REG29__ARB_RTR_q 0x00000800L
+#define MH_DEBUG_REG29__CLNT_REQ_MASK 0x0001f000L
+#define MH_DEBUG_REG29__RECENT_d_0_MASK 0x000e0000L
+#define MH_DEBUG_REG29__RECENT_d_1_MASK 0x00700000L
+#define MH_DEBUG_REG29__RECENT_d_2_MASK 0x03800000L
+#define MH_DEBUG_REG29__RECENT_d_3_MASK 0x1c000000L
+#define MH_DEBUG_REG29__RECENT_d_4_MASK 0xe0000000L
+
+// MH_DEBUG_REG30
+#define MH_DEBUG_REG30__TC_ARB_HOLD_MASK 0x00000001L
+#define MH_DEBUG_REG30__TC_ARB_HOLD 0x00000001L
+#define MH_DEBUG_REG30__TC_NOROQ_SAME_ROW_BANK_MASK 0x00000002L
+#define MH_DEBUG_REG30__TC_NOROQ_SAME_ROW_BANK 0x00000002L
+#define MH_DEBUG_REG30__TC_ROQ_SAME_ROW_BANK_MASK 0x00000004L
+#define MH_DEBUG_REG30__TC_ROQ_SAME_ROW_BANK 0x00000004L
+#define MH_DEBUG_REG30__TCD_NEARFULL_q_MASK 0x00000008L
+#define MH_DEBUG_REG30__TCD_NEARFULL_q 0x00000008L
+#define MH_DEBUG_REG30__TCHOLD_IP_q_MASK 0x00000010L
+#define MH_DEBUG_REG30__TCHOLD_IP_q 0x00000010L
+#define MH_DEBUG_REG30__TCHOLD_CNT_q_MASK 0x000000e0L
+#define MH_DEBUG_REG30__MH_ARBITER_CONFIG_TC_REORDER_ENABLE_MASK 0x00000100L
+#define MH_DEBUG_REG30__MH_ARBITER_CONFIG_TC_REORDER_ENABLE 0x00000100L
+#define MH_DEBUG_REG30__TC_ROQ_RTR_DBG_q_MASK 0x00000200L
+#define MH_DEBUG_REG30__TC_ROQ_RTR_DBG_q 0x00000200L
+#define MH_DEBUG_REG30__TC_ROQ_SEND_q_MASK 0x00000400L
+#define MH_DEBUG_REG30__TC_ROQ_SEND_q 0x00000400L
+#define MH_DEBUG_REG30__TC_MH_written_MASK 0x00000800L
+#define MH_DEBUG_REG30__TC_MH_written 0x00000800L
+#define MH_DEBUG_REG30__TCD_FULLNESS_CNT_q_MASK 0x0007f000L
+#define MH_DEBUG_REG30__WBURST_ACTIVE_MASK 0x00080000L
+#define MH_DEBUG_REG30__WBURST_ACTIVE 0x00080000L
+#define MH_DEBUG_REG30__WLAST_q_MASK 0x00100000L
+#define MH_DEBUG_REG30__WLAST_q 0x00100000L
+#define MH_DEBUG_REG30__WBURST_IP_q_MASK 0x00200000L
+#define MH_DEBUG_REG30__WBURST_IP_q 0x00200000L
+#define MH_DEBUG_REG30__WBURST_CNT_q_MASK 0x01c00000L
+#define MH_DEBUG_REG30__CP_SEND_QUAL_MASK 0x02000000L
+#define MH_DEBUG_REG30__CP_SEND_QUAL 0x02000000L
+#define MH_DEBUG_REG30__CP_MH_write_MASK 0x04000000L
+#define MH_DEBUG_REG30__CP_MH_write 0x04000000L
+#define MH_DEBUG_REG30__RB_SEND_QUAL_MASK 0x08000000L
+#define MH_DEBUG_REG30__RB_SEND_QUAL 0x08000000L
+#define MH_DEBUG_REG30__PA_SEND_QUAL_MASK 0x10000000L
+#define MH_DEBUG_REG30__PA_SEND_QUAL 0x10000000L
+#define MH_DEBUG_REG30__ARB_WINNER_MASK 0xe0000000L
+
+// MH_DEBUG_REG31
+#define MH_DEBUG_REG31__RF_ARBITER_CONFIG_q_MASK 0x03ffffffL
+#define MH_DEBUG_REG31__MH_CLNT_AXI_ID_REUSE_MMUr_ID_MASK 0x1c000000L
+
+// MH_DEBUG_REG32
+#define MH_DEBUG_REG32__SAME_ROW_BANK_q_MASK 0x000000ffL
+#define MH_DEBUG_REG32__ROQ_MARK_q_MASK 0x0000ff00L
+#define MH_DEBUG_REG32__ROQ_VALID_q_MASK 0x00ff0000L
+#define MH_DEBUG_REG32__TC_MH_send_MASK 0x01000000L
+#define MH_DEBUG_REG32__TC_MH_send 0x01000000L
+#define MH_DEBUG_REG32__TC_ROQ_RTR_q_MASK 0x02000000L
+#define MH_DEBUG_REG32__TC_ROQ_RTR_q 0x02000000L
+#define MH_DEBUG_REG32__KILL_EFF1_MASK 0x04000000L
+#define MH_DEBUG_REG32__KILL_EFF1 0x04000000L
+#define MH_DEBUG_REG32__TC_ROQ_SAME_ROW_BANK_SEL_MASK 0x08000000L
+#define MH_DEBUG_REG32__TC_ROQ_SAME_ROW_BANK_SEL 0x08000000L
+#define MH_DEBUG_REG32__ANY_SAME_ROW_BANK_MASK 0x10000000L
+#define MH_DEBUG_REG32__ANY_SAME_ROW_BANK 0x10000000L
+#define MH_DEBUG_REG32__TC_EFF1_QUAL_MASK 0x20000000L
+#define MH_DEBUG_REG32__TC_EFF1_QUAL 0x20000000L
+#define MH_DEBUG_REG32__TC_ROQ_EMPTY_MASK 0x40000000L
+#define MH_DEBUG_REG32__TC_ROQ_EMPTY 0x40000000L
+#define MH_DEBUG_REG32__TC_ROQ_FULL_MASK 0x80000000L
+#define MH_DEBUG_REG32__TC_ROQ_FULL 0x80000000L
+
+// MH_DEBUG_REG33
+#define MH_DEBUG_REG33__SAME_ROW_BANK_q_MASK 0x000000ffL
+#define MH_DEBUG_REG33__ROQ_MARK_d_MASK 0x0000ff00L
+#define MH_DEBUG_REG33__ROQ_VALID_d_MASK 0x00ff0000L
+#define MH_DEBUG_REG33__TC_MH_send_MASK 0x01000000L
+#define MH_DEBUG_REG33__TC_MH_send 0x01000000L
+#define MH_DEBUG_REG33__TC_ROQ_RTR_q_MASK 0x02000000L
+#define MH_DEBUG_REG33__TC_ROQ_RTR_q 0x02000000L
+#define MH_DEBUG_REG33__KILL_EFF1_MASK 0x04000000L
+#define MH_DEBUG_REG33__KILL_EFF1 0x04000000L
+#define MH_DEBUG_REG33__TC_ROQ_SAME_ROW_BANK_SEL_MASK 0x08000000L
+#define MH_DEBUG_REG33__TC_ROQ_SAME_ROW_BANK_SEL 0x08000000L
+#define MH_DEBUG_REG33__ANY_SAME_ROW_BANK_MASK 0x10000000L
+#define MH_DEBUG_REG33__ANY_SAME_ROW_BANK 0x10000000L
+#define MH_DEBUG_REG33__TC_EFF1_QUAL_MASK 0x20000000L
+#define MH_DEBUG_REG33__TC_EFF1_QUAL 0x20000000L
+#define MH_DEBUG_REG33__TC_ROQ_EMPTY_MASK 0x40000000L
+#define MH_DEBUG_REG33__TC_ROQ_EMPTY 0x40000000L
+#define MH_DEBUG_REG33__TC_ROQ_FULL_MASK 0x80000000L
+#define MH_DEBUG_REG33__TC_ROQ_FULL 0x80000000L
+
+// MH_DEBUG_REG34
+#define MH_DEBUG_REG34__SAME_ROW_BANK_WIN_MASK 0x000000ffL
+#define MH_DEBUG_REG34__SAME_ROW_BANK_REQ_MASK 0x0000ff00L
+#define MH_DEBUG_REG34__NON_SAME_ROW_BANK_WIN_MASK 0x00ff0000L
+#define MH_DEBUG_REG34__NON_SAME_ROW_BANK_REQ_MASK 0xff000000L
+
+// MH_DEBUG_REG35
+#define MH_DEBUG_REG35__TC_MH_send_MASK 0x00000001L
+#define MH_DEBUG_REG35__TC_MH_send 0x00000001L
+#define MH_DEBUG_REG35__TC_ROQ_RTR_q_MASK 0x00000002L
+#define MH_DEBUG_REG35__TC_ROQ_RTR_q 0x00000002L
+#define MH_DEBUG_REG35__ROQ_MARK_q_0_MASK 0x00000004L
+#define MH_DEBUG_REG35__ROQ_MARK_q_0 0x00000004L
+#define MH_DEBUG_REG35__ROQ_VALID_q_0_MASK 0x00000008L
+#define MH_DEBUG_REG35__ROQ_VALID_q_0 0x00000008L
+#define MH_DEBUG_REG35__SAME_ROW_BANK_q_0_MASK 0x00000010L
+#define MH_DEBUG_REG35__SAME_ROW_BANK_q_0 0x00000010L
+#define MH_DEBUG_REG35__ROQ_ADDR_0_MASK 0xffffffe0L
+
+// MH_DEBUG_REG36
+#define MH_DEBUG_REG36__TC_MH_send_MASK 0x00000001L
+#define MH_DEBUG_REG36__TC_MH_send 0x00000001L
+#define MH_DEBUG_REG36__TC_ROQ_RTR_q_MASK 0x00000002L
+#define MH_DEBUG_REG36__TC_ROQ_RTR_q 0x00000002L
+#define MH_DEBUG_REG36__ROQ_MARK_q_1_MASK 0x00000004L
+#define MH_DEBUG_REG36__ROQ_MARK_q_1 0x00000004L
+#define MH_DEBUG_REG36__ROQ_VALID_q_1_MASK 0x00000008L
+#define MH_DEBUG_REG36__ROQ_VALID_q_1 0x00000008L
+#define MH_DEBUG_REG36__SAME_ROW_BANK_q_1_MASK 0x00000010L
+#define MH_DEBUG_REG36__SAME_ROW_BANK_q_1 0x00000010L
+#define MH_DEBUG_REG36__ROQ_ADDR_1_MASK 0xffffffe0L
+
+// MH_DEBUG_REG37
+#define MH_DEBUG_REG37__TC_MH_send_MASK 0x00000001L
+#define MH_DEBUG_REG37__TC_MH_send 0x00000001L
+#define MH_DEBUG_REG37__TC_ROQ_RTR_q_MASK 0x00000002L
+#define MH_DEBUG_REG37__TC_ROQ_RTR_q 0x00000002L
+#define MH_DEBUG_REG37__ROQ_MARK_q_2_MASK 0x00000004L
+#define MH_DEBUG_REG37__ROQ_MARK_q_2 0x00000004L
+#define MH_DEBUG_REG37__ROQ_VALID_q_2_MASK 0x00000008L
+#define MH_DEBUG_REG37__ROQ_VALID_q_2 0x00000008L
+#define MH_DEBUG_REG37__SAME_ROW_BANK_q_2_MASK 0x00000010L
+#define MH_DEBUG_REG37__SAME_ROW_BANK_q_2 0x00000010L
+#define MH_DEBUG_REG37__ROQ_ADDR_2_MASK 0xffffffe0L
+
+// MH_DEBUG_REG38
+#define MH_DEBUG_REG38__TC_MH_send_MASK 0x00000001L
+#define MH_DEBUG_REG38__TC_MH_send 0x00000001L
+#define MH_DEBUG_REG38__TC_ROQ_RTR_q_MASK 0x00000002L
+#define MH_DEBUG_REG38__TC_ROQ_RTR_q 0x00000002L
+#define MH_DEBUG_REG38__ROQ_MARK_q_3_MASK 0x00000004L
+#define MH_DEBUG_REG38__ROQ_MARK_q_3 0x00000004L
+#define MH_DEBUG_REG38__ROQ_VALID_q_3_MASK 0x00000008L
+#define MH_DEBUG_REG38__ROQ_VALID_q_3 0x00000008L
+#define MH_DEBUG_REG38__SAME_ROW_BANK_q_3_MASK 0x00000010L
+#define MH_DEBUG_REG38__SAME_ROW_BANK_q_3 0x00000010L
+#define MH_DEBUG_REG38__ROQ_ADDR_3_MASK 0xffffffe0L
+
+// MH_DEBUG_REG39
+#define MH_DEBUG_REG39__TC_MH_send_MASK 0x00000001L
+#define MH_DEBUG_REG39__TC_MH_send 0x00000001L
+#define MH_DEBUG_REG39__TC_ROQ_RTR_q_MASK 0x00000002L
+#define MH_DEBUG_REG39__TC_ROQ_RTR_q 0x00000002L
+#define MH_DEBUG_REG39__ROQ_MARK_q_4_MASK 0x00000004L
+#define MH_DEBUG_REG39__ROQ_MARK_q_4 0x00000004L
+#define MH_DEBUG_REG39__ROQ_VALID_q_4_MASK 0x00000008L
+#define MH_DEBUG_REG39__ROQ_VALID_q_4 0x00000008L
+#define MH_DEBUG_REG39__SAME_ROW_BANK_q_4_MASK 0x00000010L
+#define MH_DEBUG_REG39__SAME_ROW_BANK_q_4 0x00000010L
+#define MH_DEBUG_REG39__ROQ_ADDR_4_MASK 0xffffffe0L
+
+// MH_DEBUG_REG40
+#define MH_DEBUG_REG40__TC_MH_send_MASK 0x00000001L
+#define MH_DEBUG_REG40__TC_MH_send 0x00000001L
+#define MH_DEBUG_REG40__TC_ROQ_RTR_q_MASK 0x00000002L
+#define MH_DEBUG_REG40__TC_ROQ_RTR_q 0x00000002L
+#define MH_DEBUG_REG40__ROQ_MARK_q_5_MASK 0x00000004L
+#define MH_DEBUG_REG40__ROQ_MARK_q_5 0x00000004L
+#define MH_DEBUG_REG40__ROQ_VALID_q_5_MASK 0x00000008L
+#define MH_DEBUG_REG40__ROQ_VALID_q_5 0x00000008L
+#define MH_DEBUG_REG40__SAME_ROW_BANK_q_5_MASK 0x00000010L
+#define MH_DEBUG_REG40__SAME_ROW_BANK_q_5 0x00000010L
+#define MH_DEBUG_REG40__ROQ_ADDR_5_MASK 0xffffffe0L
+
+// MH_DEBUG_REG41
+#define MH_DEBUG_REG41__TC_MH_send_MASK 0x00000001L
+#define MH_DEBUG_REG41__TC_MH_send 0x00000001L
+#define MH_DEBUG_REG41__TC_ROQ_RTR_q_MASK 0x00000002L
+#define MH_DEBUG_REG41__TC_ROQ_RTR_q 0x00000002L
+#define MH_DEBUG_REG41__ROQ_MARK_q_6_MASK 0x00000004L
+#define MH_DEBUG_REG41__ROQ_MARK_q_6 0x00000004L
+#define MH_DEBUG_REG41__ROQ_VALID_q_6_MASK 0x00000008L
+#define MH_DEBUG_REG41__ROQ_VALID_q_6 0x00000008L
+#define MH_DEBUG_REG41__SAME_ROW_BANK_q_6_MASK 0x00000010L
+#define MH_DEBUG_REG41__SAME_ROW_BANK_q_6 0x00000010L
+#define MH_DEBUG_REG41__ROQ_ADDR_6_MASK 0xffffffe0L
+
+// MH_DEBUG_REG42
+#define MH_DEBUG_REG42__TC_MH_send_MASK 0x00000001L
+#define MH_DEBUG_REG42__TC_MH_send 0x00000001L
+#define MH_DEBUG_REG42__TC_ROQ_RTR_q_MASK 0x00000002L
+#define MH_DEBUG_REG42__TC_ROQ_RTR_q 0x00000002L
+#define MH_DEBUG_REG42__ROQ_MARK_q_7_MASK 0x00000004L
+#define MH_DEBUG_REG42__ROQ_MARK_q_7 0x00000004L
+#define MH_DEBUG_REG42__ROQ_VALID_q_7_MASK 0x00000008L
+#define MH_DEBUG_REG42__ROQ_VALID_q_7 0x00000008L
+#define MH_DEBUG_REG42__SAME_ROW_BANK_q_7_MASK 0x00000010L
+#define MH_DEBUG_REG42__SAME_ROW_BANK_q_7 0x00000010L
+#define MH_DEBUG_REG42__ROQ_ADDR_7_MASK 0xffffffe0L
+
+// MH_DEBUG_REG43
+#define MH_DEBUG_REG43__ARB_REG_WE_q_MASK 0x00000001L
+#define MH_DEBUG_REG43__ARB_REG_WE_q 0x00000001L
+#define MH_DEBUG_REG43__ARB_WE_MASK 0x00000002L
+#define MH_DEBUG_REG43__ARB_WE 0x00000002L
+#define MH_DEBUG_REG43__ARB_REG_VALID_q_MASK 0x00000004L
+#define MH_DEBUG_REG43__ARB_REG_VALID_q 0x00000004L
+#define MH_DEBUG_REG43__ARB_RTR_q_MASK 0x00000008L
+#define MH_DEBUG_REG43__ARB_RTR_q 0x00000008L
+#define MH_DEBUG_REG43__ARB_REG_RTR_MASK 0x00000010L
+#define MH_DEBUG_REG43__ARB_REG_RTR 0x00000010L
+#define MH_DEBUG_REG43__WDAT_BURST_RTR_MASK 0x00000020L
+#define MH_DEBUG_REG43__WDAT_BURST_RTR 0x00000020L
+#define MH_DEBUG_REG43__MMU_RTR_MASK 0x00000040L
+#define MH_DEBUG_REG43__MMU_RTR 0x00000040L
+#define MH_DEBUG_REG43__ARB_ID_q_MASK 0x00000380L
+#define MH_DEBUG_REG43__ARB_WRITE_q_MASK 0x00000400L
+#define MH_DEBUG_REG43__ARB_WRITE_q 0x00000400L
+#define MH_DEBUG_REG43__ARB_BLEN_q_MASK 0x00000800L
+#define MH_DEBUG_REG43__ARB_BLEN_q 0x00000800L
+#define MH_DEBUG_REG43__ARQ_CTRL_EMPTY_MASK 0x00001000L
+#define MH_DEBUG_REG43__ARQ_CTRL_EMPTY 0x00001000L
+#define MH_DEBUG_REG43__ARQ_FIFO_CNT_q_MASK 0x0000e000L
+#define MH_DEBUG_REG43__MMU_WE_MASK 0x00010000L
+#define MH_DEBUG_REG43__MMU_WE 0x00010000L
+#define MH_DEBUG_REG43__ARQ_RTR_MASK 0x00020000L
+#define MH_DEBUG_REG43__ARQ_RTR 0x00020000L
+#define MH_DEBUG_REG43__MMU_ID_MASK 0x001c0000L
+#define MH_DEBUG_REG43__MMU_WRITE_MASK 0x00200000L
+#define MH_DEBUG_REG43__MMU_WRITE 0x00200000L
+#define MH_DEBUG_REG43__MMU_BLEN_MASK 0x00400000L
+#define MH_DEBUG_REG43__MMU_BLEN 0x00400000L
+#define MH_DEBUG_REG43__WBURST_IP_q_MASK 0x00800000L
+#define MH_DEBUG_REG43__WBURST_IP_q 0x00800000L
+#define MH_DEBUG_REG43__WDAT_REG_WE_q_MASK 0x01000000L
+#define MH_DEBUG_REG43__WDAT_REG_WE_q 0x01000000L
+#define MH_DEBUG_REG43__WDB_WE_MASK 0x02000000L
+#define MH_DEBUG_REG43__WDB_WE 0x02000000L
+#define MH_DEBUG_REG43__WDB_RTR_SKID_4_MASK 0x04000000L
+#define MH_DEBUG_REG43__WDB_RTR_SKID_4 0x04000000L
+#define MH_DEBUG_REG43__WDB_RTR_SKID_3_MASK 0x08000000L
+#define MH_DEBUG_REG43__WDB_RTR_SKID_3 0x08000000L
+
+// MH_DEBUG_REG44
+#define MH_DEBUG_REG44__ARB_WE_MASK 0x00000001L
+#define MH_DEBUG_REG44__ARB_WE 0x00000001L
+#define MH_DEBUG_REG44__ARB_ID_q_MASK 0x0000000eL
+#define MH_DEBUG_REG44__ARB_VAD_q_MASK 0xfffffff0L
+
+// MH_DEBUG_REG45
+#define MH_DEBUG_REG45__MMU_WE_MASK 0x00000001L
+#define MH_DEBUG_REG45__MMU_WE 0x00000001L
+#define MH_DEBUG_REG45__MMU_ID_MASK 0x0000000eL
+#define MH_DEBUG_REG45__MMU_PAD_MASK 0xfffffff0L
+
+// MH_DEBUG_REG46
+#define MH_DEBUG_REG46__WDAT_REG_WE_q_MASK 0x00000001L
+#define MH_DEBUG_REG46__WDAT_REG_WE_q 0x00000001L
+#define MH_DEBUG_REG46__WDB_WE_MASK 0x00000002L
+#define MH_DEBUG_REG46__WDB_WE 0x00000002L
+#define MH_DEBUG_REG46__WDAT_REG_VALID_q_MASK 0x00000004L
+#define MH_DEBUG_REG46__WDAT_REG_VALID_q 0x00000004L
+#define MH_DEBUG_REG46__WDB_RTR_SKID_4_MASK 0x00000008L
+#define MH_DEBUG_REG46__WDB_RTR_SKID_4 0x00000008L
+#define MH_DEBUG_REG46__ARB_WSTRB_q_MASK 0x00000ff0L
+#define MH_DEBUG_REG46__ARB_WLAST_MASK 0x00001000L
+#define MH_DEBUG_REG46__ARB_WLAST 0x00001000L
+#define MH_DEBUG_REG46__WDB_CTRL_EMPTY_MASK 0x00002000L
+#define MH_DEBUG_REG46__WDB_CTRL_EMPTY 0x00002000L
+#define MH_DEBUG_REG46__WDB_FIFO_CNT_q_MASK 0x0007c000L
+#define MH_DEBUG_REG46__WDC_WDB_RE_q_MASK 0x00080000L
+#define MH_DEBUG_REG46__WDC_WDB_RE_q 0x00080000L
+#define MH_DEBUG_REG46__WDB_WDC_WID_MASK 0x00700000L
+#define MH_DEBUG_REG46__WDB_WDC_WLAST_MASK 0x00800000L
+#define MH_DEBUG_REG46__WDB_WDC_WLAST 0x00800000L
+#define MH_DEBUG_REG46__WDB_WDC_WSTRB_MASK 0xff000000L
+
+// MH_DEBUG_REG47
+#define MH_DEBUG_REG47__WDB_WDC_WDATA_31_0_MASK 0xffffffffL
+
+// MH_DEBUG_REG48
+#define MH_DEBUG_REG48__WDB_WDC_WDATA_63_32_MASK 0xffffffffL
+
+// MH_DEBUG_REG49
+#define MH_DEBUG_REG49__CTRL_ARC_EMPTY_MASK 0x00000001L
+#define MH_DEBUG_REG49__CTRL_ARC_EMPTY 0x00000001L
+#define MH_DEBUG_REG49__CTRL_RARC_EMPTY_MASK 0x00000002L
+#define MH_DEBUG_REG49__CTRL_RARC_EMPTY 0x00000002L
+#define MH_DEBUG_REG49__ARQ_CTRL_EMPTY_MASK 0x00000004L
+#define MH_DEBUG_REG49__ARQ_CTRL_EMPTY 0x00000004L
+#define MH_DEBUG_REG49__ARQ_CTRL_WRITE_MASK 0x00000008L
+#define MH_DEBUG_REG49__ARQ_CTRL_WRITE 0x00000008L
+#define MH_DEBUG_REG49__TLBMISS_CTRL_RTS_MASK 0x00000010L
+#define MH_DEBUG_REG49__TLBMISS_CTRL_RTS 0x00000010L
+#define MH_DEBUG_REG49__CTRL_TLBMISS_RE_q_MASK 0x00000020L
+#define MH_DEBUG_REG49__CTRL_TLBMISS_RE_q 0x00000020L
+#define MH_DEBUG_REG49__INFLT_LIMIT_q_MASK 0x00000040L
+#define MH_DEBUG_REG49__INFLT_LIMIT_q 0x00000040L
+#define MH_DEBUG_REG49__INFLT_LIMIT_CNT_q_MASK 0x00001f80L
+#define MH_DEBUG_REG49__ARC_CTRL_RE_q_MASK 0x00002000L
+#define MH_DEBUG_REG49__ARC_CTRL_RE_q 0x00002000L
+#define MH_DEBUG_REG49__RARC_CTRL_RE_q_MASK 0x00004000L
+#define MH_DEBUG_REG49__RARC_CTRL_RE_q 0x00004000L
+#define MH_DEBUG_REG49__RVALID_q_MASK 0x00008000L
+#define MH_DEBUG_REG49__RVALID_q 0x00008000L
+#define MH_DEBUG_REG49__RREADY_q_MASK 0x00010000L
+#define MH_DEBUG_REG49__RREADY_q 0x00010000L
+#define MH_DEBUG_REG49__RLAST_q_MASK 0x00020000L
+#define MH_DEBUG_REG49__RLAST_q 0x00020000L
+#define MH_DEBUG_REG49__BVALID_q_MASK 0x00040000L
+#define MH_DEBUG_REG49__BVALID_q 0x00040000L
+#define MH_DEBUG_REG49__BREADY_q_MASK 0x00080000L
+#define MH_DEBUG_REG49__BREADY_q 0x00080000L
+
+// MH_DEBUG_REG50
+#define MH_DEBUG_REG50__MH_CP_grb_send_MASK 0x00000001L
+#define MH_DEBUG_REG50__MH_CP_grb_send 0x00000001L
+#define MH_DEBUG_REG50__MH_VGT_grb_send_MASK 0x00000002L
+#define MH_DEBUG_REG50__MH_VGT_grb_send 0x00000002L
+#define MH_DEBUG_REG50__MH_TC_mcsend_MASK 0x00000004L
+#define MH_DEBUG_REG50__MH_TC_mcsend 0x00000004L
+#define MH_DEBUG_REG50__MH_TLBMISS_SEND_MASK 0x00000008L
+#define MH_DEBUG_REG50__MH_TLBMISS_SEND 0x00000008L
+#define MH_DEBUG_REG50__TLBMISS_VALID_MASK 0x00000010L
+#define MH_DEBUG_REG50__TLBMISS_VALID 0x00000010L
+#define MH_DEBUG_REG50__RDC_VALID_MASK 0x00000020L
+#define MH_DEBUG_REG50__RDC_VALID 0x00000020L
+#define MH_DEBUG_REG50__RDC_RID_MASK 0x000001c0L
+#define MH_DEBUG_REG50__RDC_RLAST_MASK 0x00000200L
+#define MH_DEBUG_REG50__RDC_RLAST 0x00000200L
+#define MH_DEBUG_REG50__RDC_RRESP_MASK 0x00000c00L
+#define MH_DEBUG_REG50__TLBMISS_CTRL_RTS_MASK 0x00001000L
+#define MH_DEBUG_REG50__TLBMISS_CTRL_RTS 0x00001000L
+#define MH_DEBUG_REG50__CTRL_TLBMISS_RE_q_MASK 0x00002000L
+#define MH_DEBUG_REG50__CTRL_TLBMISS_RE_q 0x00002000L
+#define MH_DEBUG_REG50__MMU_ID_REQUEST_q_MASK 0x00004000L
+#define MH_DEBUG_REG50__MMU_ID_REQUEST_q 0x00004000L
+#define MH_DEBUG_REG50__OUTSTANDING_MMUID_CNT_q_MASK 0x001f8000L
+#define MH_DEBUG_REG50__MMU_ID_RESPONSE_MASK 0x00200000L
+#define MH_DEBUG_REG50__MMU_ID_RESPONSE 0x00200000L
+#define MH_DEBUG_REG50__TLBMISS_RETURN_CNT_q_MASK 0x0fc00000L
+#define MH_DEBUG_REG50__CNT_HOLD_q1_MASK 0x10000000L
+#define MH_DEBUG_REG50__CNT_HOLD_q1 0x10000000L
+#define MH_DEBUG_REG50__MH_CLNT_AXI_ID_REUSE_MMUr_ID_MASK 0xe0000000L
+
+// MH_DEBUG_REG51
+#define MH_DEBUG_REG51__RF_MMU_PAGE_FAULT_MASK 0xffffffffL
+
+// MH_DEBUG_REG52
+#define MH_DEBUG_REG52__RF_MMU_CONFIG_q_1_to_0_MASK 0x00000003L
+#define MH_DEBUG_REG52__ARB_WE_MASK 0x00000004L
+#define MH_DEBUG_REG52__ARB_WE 0x00000004L
+#define MH_DEBUG_REG52__MMU_RTR_MASK 0x00000008L
+#define MH_DEBUG_REG52__MMU_RTR 0x00000008L
+#define MH_DEBUG_REG52__RF_MMU_CONFIG_q_25_to_4_MASK 0x03fffff0L
+#define MH_DEBUG_REG52__ARB_ID_q_MASK 0x1c000000L
+#define MH_DEBUG_REG52__ARB_WRITE_q_MASK 0x20000000L
+#define MH_DEBUG_REG52__ARB_WRITE_q 0x20000000L
+#define MH_DEBUG_REG52__client_behavior_q_MASK 0xc0000000L
+
+// MH_DEBUG_REG53
+#define MH_DEBUG_REG53__stage1_valid_MASK 0x00000001L
+#define MH_DEBUG_REG53__stage1_valid 0x00000001L
+#define MH_DEBUG_REG53__IGNORE_TAG_MISS_q_MASK 0x00000002L
+#define MH_DEBUG_REG53__IGNORE_TAG_MISS_q 0x00000002L
+#define MH_DEBUG_REG53__pa_in_mpu_range_MASK 0x00000004L
+#define MH_DEBUG_REG53__pa_in_mpu_range 0x00000004L
+#define MH_DEBUG_REG53__tag_match_q_MASK 0x00000008L
+#define MH_DEBUG_REG53__tag_match_q 0x00000008L
+#define MH_DEBUG_REG53__tag_miss_q_MASK 0x00000010L
+#define MH_DEBUG_REG53__tag_miss_q 0x00000010L
+#define MH_DEBUG_REG53__va_in_range_q_MASK 0x00000020L
+#define MH_DEBUG_REG53__va_in_range_q 0x00000020L
+#define MH_DEBUG_REG53__MMU_MISS_MASK 0x00000040L
+#define MH_DEBUG_REG53__MMU_MISS 0x00000040L
+#define MH_DEBUG_REG53__MMU_READ_MISS_MASK 0x00000080L
+#define MH_DEBUG_REG53__MMU_READ_MISS 0x00000080L
+#define MH_DEBUG_REG53__MMU_WRITE_MISS_MASK 0x00000100L
+#define MH_DEBUG_REG53__MMU_WRITE_MISS 0x00000100L
+#define MH_DEBUG_REG53__MMU_HIT_MASK 0x00000200L
+#define MH_DEBUG_REG53__MMU_HIT 0x00000200L
+#define MH_DEBUG_REG53__MMU_READ_HIT_MASK 0x00000400L
+#define MH_DEBUG_REG53__MMU_READ_HIT 0x00000400L
+#define MH_DEBUG_REG53__MMU_WRITE_HIT_MASK 0x00000800L
+#define MH_DEBUG_REG53__MMU_WRITE_HIT 0x00000800L
+#define MH_DEBUG_REG53__MMU_SPLIT_MODE_TC_MISS_MASK 0x00001000L
+#define MH_DEBUG_REG53__MMU_SPLIT_MODE_TC_MISS 0x00001000L
+#define MH_DEBUG_REG53__MMU_SPLIT_MODE_TC_HIT_MASK 0x00002000L
+#define MH_DEBUG_REG53__MMU_SPLIT_MODE_TC_HIT 0x00002000L
+#define MH_DEBUG_REG53__MMU_SPLIT_MODE_nonTC_MISS_MASK 0x00004000L
+#define MH_DEBUG_REG53__MMU_SPLIT_MODE_nonTC_MISS 0x00004000L
+#define MH_DEBUG_REG53__MMU_SPLIT_MODE_nonTC_HIT_MASK 0x00008000L
+#define MH_DEBUG_REG53__MMU_SPLIT_MODE_nonTC_HIT 0x00008000L
+#define MH_DEBUG_REG53__REQ_VA_OFFSET_q_MASK 0xffff0000L
+
+// MH_DEBUG_REG54
+#define MH_DEBUG_REG54__ARQ_RTR_MASK 0x00000001L
+#define MH_DEBUG_REG54__ARQ_RTR 0x00000001L
+#define MH_DEBUG_REG54__MMU_WE_MASK 0x00000002L
+#define MH_DEBUG_REG54__MMU_WE 0x00000002L
+#define MH_DEBUG_REG54__CTRL_TLBMISS_RE_q_MASK 0x00000004L
+#define MH_DEBUG_REG54__CTRL_TLBMISS_RE_q 0x00000004L
+#define MH_DEBUG_REG54__TLBMISS_CTRL_RTS_MASK 0x00000008L
+#define MH_DEBUG_REG54__TLBMISS_CTRL_RTS 0x00000008L
+#define MH_DEBUG_REG54__MH_TLBMISS_SEND_MASK 0x00000010L
+#define MH_DEBUG_REG54__MH_TLBMISS_SEND 0x00000010L
+#define MH_DEBUG_REG54__MMU_STALL_AWAITING_TLB_MISS_FETCH_MASK 0x00000020L
+#define MH_DEBUG_REG54__MMU_STALL_AWAITING_TLB_MISS_FETCH 0x00000020L
+#define MH_DEBUG_REG54__pa_in_mpu_range_MASK 0x00000040L
+#define MH_DEBUG_REG54__pa_in_mpu_range 0x00000040L
+#define MH_DEBUG_REG54__stage1_valid_MASK 0x00000080L
+#define MH_DEBUG_REG54__stage1_valid 0x00000080L
+#define MH_DEBUG_REG54__stage2_valid_MASK 0x00000100L
+#define MH_DEBUG_REG54__stage2_valid 0x00000100L
+#define MH_DEBUG_REG54__client_behavior_q_MASK 0x00000600L
+#define MH_DEBUG_REG54__IGNORE_TAG_MISS_q_MASK 0x00000800L
+#define MH_DEBUG_REG54__IGNORE_TAG_MISS_q 0x00000800L
+#define MH_DEBUG_REG54__tag_match_q_MASK 0x00001000L
+#define MH_DEBUG_REG54__tag_match_q 0x00001000L
+#define MH_DEBUG_REG54__tag_miss_q_MASK 0x00002000L
+#define MH_DEBUG_REG54__tag_miss_q 0x00002000L
+#define MH_DEBUG_REG54__va_in_range_q_MASK 0x00004000L
+#define MH_DEBUG_REG54__va_in_range_q 0x00004000L
+#define MH_DEBUG_REG54__PTE_FETCH_COMPLETE_q_MASK 0x00008000L
+#define MH_DEBUG_REG54__PTE_FETCH_COMPLETE_q 0x00008000L
+#define MH_DEBUG_REG54__TAG_valid_q_MASK 0xffff0000L
+
+// MH_DEBUG_REG55
+#define MH_DEBUG_REG55__TAG0_VA_MASK 0x00001fffL
+#define MH_DEBUG_REG55__TAG_valid_q_0_MASK 0x00002000L
+#define MH_DEBUG_REG55__TAG_valid_q_0 0x00002000L
+#define MH_DEBUG_REG55__ALWAYS_ZERO_MASK 0x0000c000L
+#define MH_DEBUG_REG55__TAG1_VA_MASK 0x1fff0000L
+#define MH_DEBUG_REG55__TAG_valid_q_1_MASK 0x20000000L
+#define MH_DEBUG_REG55__TAG_valid_q_1 0x20000000L
+
+// MH_DEBUG_REG56
+#define MH_DEBUG_REG56__TAG2_VA_MASK 0x00001fffL
+#define MH_DEBUG_REG56__TAG_valid_q_2_MASK 0x00002000L
+#define MH_DEBUG_REG56__TAG_valid_q_2 0x00002000L
+#define MH_DEBUG_REG56__ALWAYS_ZERO_MASK 0x0000c000L
+#define MH_DEBUG_REG56__TAG3_VA_MASK 0x1fff0000L
+#define MH_DEBUG_REG56__TAG_valid_q_3_MASK 0x20000000L
+#define MH_DEBUG_REG56__TAG_valid_q_3 0x20000000L
+
+// MH_DEBUG_REG57
+#define MH_DEBUG_REG57__TAG4_VA_MASK 0x00001fffL
+#define MH_DEBUG_REG57__TAG_valid_q_4_MASK 0x00002000L
+#define MH_DEBUG_REG57__TAG_valid_q_4 0x00002000L
+#define MH_DEBUG_REG57__ALWAYS_ZERO_MASK 0x0000c000L
+#define MH_DEBUG_REG57__TAG5_VA_MASK 0x1fff0000L
+#define MH_DEBUG_REG57__TAG_valid_q_5_MASK 0x20000000L
+#define MH_DEBUG_REG57__TAG_valid_q_5 0x20000000L
+
+// MH_DEBUG_REG58
+#define MH_DEBUG_REG58__TAG6_VA_MASK 0x00001fffL
+#define MH_DEBUG_REG58__TAG_valid_q_6_MASK 0x00002000L
+#define MH_DEBUG_REG58__TAG_valid_q_6 0x00002000L
+#define MH_DEBUG_REG58__ALWAYS_ZERO_MASK 0x0000c000L
+#define MH_DEBUG_REG58__TAG7_VA_MASK 0x1fff0000L
+#define MH_DEBUG_REG58__TAG_valid_q_7_MASK 0x20000000L
+#define MH_DEBUG_REG58__TAG_valid_q_7 0x20000000L
+
+// MH_DEBUG_REG59
+#define MH_DEBUG_REG59__TAG8_VA_MASK 0x00001fffL
+#define MH_DEBUG_REG59__TAG_valid_q_8_MASK 0x00002000L
+#define MH_DEBUG_REG59__TAG_valid_q_8 0x00002000L
+#define MH_DEBUG_REG59__ALWAYS_ZERO_MASK 0x0000c000L
+#define MH_DEBUG_REG59__TAG9_VA_MASK 0x1fff0000L
+#define MH_DEBUG_REG59__TAG_valid_q_9_MASK 0x20000000L
+#define MH_DEBUG_REG59__TAG_valid_q_9 0x20000000L
+
+// MH_DEBUG_REG60
+#define MH_DEBUG_REG60__TAG10_VA_MASK 0x00001fffL
+#define MH_DEBUG_REG60__TAG_valid_q_10_MASK 0x00002000L
+#define MH_DEBUG_REG60__TAG_valid_q_10 0x00002000L
+#define MH_DEBUG_REG60__ALWAYS_ZERO_MASK 0x0000c000L
+#define MH_DEBUG_REG60__TAG11_VA_MASK 0x1fff0000L
+#define MH_DEBUG_REG60__TAG_valid_q_11_MASK 0x20000000L
+#define MH_DEBUG_REG60__TAG_valid_q_11 0x20000000L
+
+// MH_DEBUG_REG61
+#define MH_DEBUG_REG61__TAG12_VA_MASK 0x00001fffL
+#define MH_DEBUG_REG61__TAG_valid_q_12_MASK 0x00002000L
+#define MH_DEBUG_REG61__TAG_valid_q_12 0x00002000L
+#define MH_DEBUG_REG61__ALWAYS_ZERO_MASK 0x0000c000L
+#define MH_DEBUG_REG61__TAG13_VA_MASK 0x1fff0000L
+#define MH_DEBUG_REG61__TAG_valid_q_13_MASK 0x20000000L
+#define MH_DEBUG_REG61__TAG_valid_q_13 0x20000000L
+
+// MH_DEBUG_REG62
+#define MH_DEBUG_REG62__TAG14_VA_MASK 0x00001fffL
+#define MH_DEBUG_REG62__TAG_valid_q_14_MASK 0x00002000L
+#define MH_DEBUG_REG62__TAG_valid_q_14 0x00002000L
+#define MH_DEBUG_REG62__ALWAYS_ZERO_MASK 0x0000c000L
+#define MH_DEBUG_REG62__TAG15_VA_MASK 0x1fff0000L
+#define MH_DEBUG_REG62__TAG_valid_q_15_MASK 0x20000000L
+#define MH_DEBUG_REG62__TAG_valid_q_15 0x20000000L
+
+// MH_DEBUG_REG63
+#define MH_DEBUG_REG63__MH_DBG_DEFAULT_MASK 0xffffffffL
+
+// MH_MMU_CONFIG
+#define MH_MMU_CONFIG__MMU_ENABLE_MASK 0x00000001L
+#define MH_MMU_CONFIG__MMU_ENABLE 0x00000001L
+#define MH_MMU_CONFIG__SPLIT_MODE_ENABLE_MASK 0x00000002L
+#define MH_MMU_CONFIG__SPLIT_MODE_ENABLE 0x00000002L
+#define MH_MMU_CONFIG__RESERVED1_MASK 0x0000000cL
+#define MH_MMU_CONFIG__RB_W_CLNT_BEHAVIOR_MASK 0x00000030L
+#define MH_MMU_CONFIG__CP_W_CLNT_BEHAVIOR_MASK 0x000000c0L
+#define MH_MMU_CONFIG__CP_R0_CLNT_BEHAVIOR_MASK 0x00000300L
+#define MH_MMU_CONFIG__CP_R1_CLNT_BEHAVIOR_MASK 0x00000c00L
+#define MH_MMU_CONFIG__CP_R2_CLNT_BEHAVIOR_MASK 0x00003000L
+#define MH_MMU_CONFIG__CP_R3_CLNT_BEHAVIOR_MASK 0x0000c000L
+#define MH_MMU_CONFIG__CP_R4_CLNT_BEHAVIOR_MASK 0x00030000L
+#define MH_MMU_CONFIG__VGT_R0_CLNT_BEHAVIOR_MASK 0x000c0000L
+#define MH_MMU_CONFIG__VGT_R1_CLNT_BEHAVIOR_MASK 0x00300000L
+#define MH_MMU_CONFIG__TC_R_CLNT_BEHAVIOR_MASK 0x00c00000L
+#define MH_MMU_CONFIG__PA_W_CLNT_BEHAVIOR_MASK 0x03000000L
+
+// MH_MMU_VA_RANGE
+#define MH_MMU_VA_RANGE__NUM_64KB_REGIONS_MASK 0x00000fffL
+#define MH_MMU_VA_RANGE__VA_BASE_MASK 0xfffff000L
+
+// MH_MMU_PT_BASE
+#define MH_MMU_PT_BASE__PT_BASE_MASK 0xfffff000L
+
+// MH_MMU_PAGE_FAULT
+#define MH_MMU_PAGE_FAULT__PAGE_FAULT_MASK 0x00000001L
+#define MH_MMU_PAGE_FAULT__PAGE_FAULT 0x00000001L
+#define MH_MMU_PAGE_FAULT__OP_TYPE_MASK 0x00000002L
+#define MH_MMU_PAGE_FAULT__OP_TYPE 0x00000002L
+#define MH_MMU_PAGE_FAULT__CLNT_BEHAVIOR_MASK 0x0000000cL
+#define MH_MMU_PAGE_FAULT__AXI_ID_MASK 0x00000070L
+#define MH_MMU_PAGE_FAULT__RESERVED1_MASK 0x00000080L
+#define MH_MMU_PAGE_FAULT__RESERVED1 0x00000080L
+#define MH_MMU_PAGE_FAULT__MPU_ADDRESS_OUT_OF_RANGE_MASK 0x00000100L
+#define MH_MMU_PAGE_FAULT__MPU_ADDRESS_OUT_OF_RANGE 0x00000100L
+#define MH_MMU_PAGE_FAULT__ADDRESS_OUT_OF_RANGE_MASK 0x00000200L
+#define MH_MMU_PAGE_FAULT__ADDRESS_OUT_OF_RANGE 0x00000200L
+#define MH_MMU_PAGE_FAULT__READ_PROTECTION_ERROR_MASK 0x00000400L
+#define MH_MMU_PAGE_FAULT__READ_PROTECTION_ERROR 0x00000400L
+#define MH_MMU_PAGE_FAULT__WRITE_PROTECTION_ERROR_MASK 0x00000800L
+#define MH_MMU_PAGE_FAULT__WRITE_PROTECTION_ERROR 0x00000800L
+#define MH_MMU_PAGE_FAULT__REQ_VA_MASK 0xfffff000L
+
+// MH_MMU_TRAN_ERROR
+#define MH_MMU_TRAN_ERROR__TRAN_ERROR_MASK 0xffffffe0L
+
+// MH_MMU_INVALIDATE
+#define MH_MMU_INVALIDATE__INVALIDATE_ALL_MASK 0x00000001L
+#define MH_MMU_INVALIDATE__INVALIDATE_ALL 0x00000001L
+#define MH_MMU_INVALIDATE__INVALIDATE_TC_MASK 0x00000002L
+#define MH_MMU_INVALIDATE__INVALIDATE_TC 0x00000002L
+
+// MH_MMU_MPU_BASE
+#define MH_MMU_MPU_BASE__MPU_BASE_MASK 0xfffff000L
+
+// MH_MMU_MPU_END
+#define MH_MMU_MPU_END__MPU_END_MASK 0xfffff000L
+
+// WAIT_UNTIL
+#define WAIT_UNTIL__WAIT_RE_VSYNC_MASK 0x00000002L
+#define WAIT_UNTIL__WAIT_RE_VSYNC 0x00000002L
+#define WAIT_UNTIL__WAIT_FE_VSYNC_MASK 0x00000004L
+#define WAIT_UNTIL__WAIT_FE_VSYNC 0x00000004L
+#define WAIT_UNTIL__WAIT_VSYNC_MASK 0x00000008L
+#define WAIT_UNTIL__WAIT_VSYNC 0x00000008L
+#define WAIT_UNTIL__WAIT_DSPLY_ID0_MASK 0x00000010L
+#define WAIT_UNTIL__WAIT_DSPLY_ID0 0x00000010L
+#define WAIT_UNTIL__WAIT_DSPLY_ID1_MASK 0x00000020L
+#define WAIT_UNTIL__WAIT_DSPLY_ID1 0x00000020L
+#define WAIT_UNTIL__WAIT_DSPLY_ID2_MASK 0x00000040L
+#define WAIT_UNTIL__WAIT_DSPLY_ID2 0x00000040L
+#define WAIT_UNTIL__WAIT_CMDFIFO_MASK 0x00000400L
+#define WAIT_UNTIL__WAIT_CMDFIFO 0x00000400L
+#define WAIT_UNTIL__WAIT_2D_IDLE_MASK 0x00004000L
+#define WAIT_UNTIL__WAIT_2D_IDLE 0x00004000L
+#define WAIT_UNTIL__WAIT_3D_IDLE_MASK 0x00008000L
+#define WAIT_UNTIL__WAIT_3D_IDLE 0x00008000L
+#define WAIT_UNTIL__WAIT_2D_IDLECLEAN_MASK 0x00010000L
+#define WAIT_UNTIL__WAIT_2D_IDLECLEAN 0x00010000L
+#define WAIT_UNTIL__WAIT_3D_IDLECLEAN_MASK 0x00020000L
+#define WAIT_UNTIL__WAIT_3D_IDLECLEAN 0x00020000L
+#define WAIT_UNTIL__CMDFIFO_ENTRIES_MASK 0x00f00000L
+
+// RBBM_ISYNC_CNTL
+#define RBBM_ISYNC_CNTL__ISYNC_WAIT_IDLEGUI_MASK 0x00000010L
+#define RBBM_ISYNC_CNTL__ISYNC_WAIT_IDLEGUI 0x00000010L
+#define RBBM_ISYNC_CNTL__ISYNC_CPSCRATCH_IDLEGUI_MASK 0x00000020L
+#define RBBM_ISYNC_CNTL__ISYNC_CPSCRATCH_IDLEGUI 0x00000020L
+
+// RBBM_STATUS
+#define RBBM_STATUS__CMDFIFO_AVAIL_MASK 0x0000001fL
+#define RBBM_STATUS__TC_BUSY_MASK 0x00000020L
+#define RBBM_STATUS__TC_BUSY 0x00000020L
+#define RBBM_STATUS__HIRQ_PENDING_MASK 0x00000100L
+#define RBBM_STATUS__HIRQ_PENDING 0x00000100L
+#define RBBM_STATUS__CPRQ_PENDING_MASK 0x00000200L
+#define RBBM_STATUS__CPRQ_PENDING 0x00000200L
+#define RBBM_STATUS__CFRQ_PENDING_MASK 0x00000400L
+#define RBBM_STATUS__CFRQ_PENDING 0x00000400L
+#define RBBM_STATUS__PFRQ_PENDING_MASK 0x00000800L
+#define RBBM_STATUS__PFRQ_PENDING 0x00000800L
+#define RBBM_STATUS__VGT_BUSY_NO_DMA_MASK 0x00001000L
+#define RBBM_STATUS__VGT_BUSY_NO_DMA 0x00001000L
+#define RBBM_STATUS__RBBM_WU_BUSY_MASK 0x00004000L
+#define RBBM_STATUS__RBBM_WU_BUSY 0x00004000L
+#define RBBM_STATUS__CP_NRT_BUSY_MASK 0x00010000L
+#define RBBM_STATUS__CP_NRT_BUSY 0x00010000L
+#define RBBM_STATUS__MH_BUSY_MASK 0x00040000L
+#define RBBM_STATUS__MH_BUSY 0x00040000L
+#define RBBM_STATUS__MH_COHERENCY_BUSY_MASK 0x00080000L
+#define RBBM_STATUS__MH_COHERENCY_BUSY 0x00080000L
+#define RBBM_STATUS__SX_BUSY_MASK 0x00200000L
+#define RBBM_STATUS__SX_BUSY 0x00200000L
+#define RBBM_STATUS__TPC_BUSY_MASK 0x00400000L
+#define RBBM_STATUS__TPC_BUSY 0x00400000L
+#define RBBM_STATUS__SC_CNTX_BUSY_MASK 0x01000000L
+#define RBBM_STATUS__SC_CNTX_BUSY 0x01000000L
+#define RBBM_STATUS__PA_BUSY_MASK 0x02000000L
+#define RBBM_STATUS__PA_BUSY 0x02000000L
+#define RBBM_STATUS__VGT_BUSY_MASK 0x04000000L
+#define RBBM_STATUS__VGT_BUSY 0x04000000L
+#define RBBM_STATUS__SQ_CNTX17_BUSY_MASK 0x08000000L
+#define RBBM_STATUS__SQ_CNTX17_BUSY 0x08000000L
+#define RBBM_STATUS__SQ_CNTX0_BUSY_MASK 0x10000000L
+#define RBBM_STATUS__SQ_CNTX0_BUSY 0x10000000L
+#define RBBM_STATUS__RB_CNTX_BUSY_MASK 0x40000000L
+#define RBBM_STATUS__RB_CNTX_BUSY 0x40000000L
+#define RBBM_STATUS__GUI_ACTIVE_MASK 0x80000000L
+#define RBBM_STATUS__GUI_ACTIVE 0x80000000L
+
+// RBBM_DSPLY
+#define RBBM_DSPLY__SEL_DMI_ACTIVE_BUFID0_MASK 0x00000001L
+#define RBBM_DSPLY__SEL_DMI_ACTIVE_BUFID0 0x00000001L
+#define RBBM_DSPLY__SEL_DMI_ACTIVE_BUFID1_MASK 0x00000002L
+#define RBBM_DSPLY__SEL_DMI_ACTIVE_BUFID1 0x00000002L
+#define RBBM_DSPLY__SEL_DMI_ACTIVE_BUFID2_MASK 0x00000004L
+#define RBBM_DSPLY__SEL_DMI_ACTIVE_BUFID2 0x00000004L
+#define RBBM_DSPLY__SEL_DMI_VSYNC_VALID_MASK 0x00000008L
+#define RBBM_DSPLY__SEL_DMI_VSYNC_VALID 0x00000008L
+#define RBBM_DSPLY__DMI_CH1_USE_BUFID0_MASK 0x00000010L
+#define RBBM_DSPLY__DMI_CH1_USE_BUFID0 0x00000010L
+#define RBBM_DSPLY__DMI_CH1_USE_BUFID1_MASK 0x00000020L
+#define RBBM_DSPLY__DMI_CH1_USE_BUFID1 0x00000020L
+#define RBBM_DSPLY__DMI_CH1_USE_BUFID2_MASK 0x00000040L
+#define RBBM_DSPLY__DMI_CH1_USE_BUFID2 0x00000040L
+#define RBBM_DSPLY__DMI_CH1_SW_CNTL_MASK 0x00000080L
+#define RBBM_DSPLY__DMI_CH1_SW_CNTL 0x00000080L
+#define RBBM_DSPLY__DMI_CH1_NUM_BUFS_MASK 0x00000300L
+#define RBBM_DSPLY__DMI_CH2_USE_BUFID0_MASK 0x00000400L
+#define RBBM_DSPLY__DMI_CH2_USE_BUFID0 0x00000400L
+#define RBBM_DSPLY__DMI_CH2_USE_BUFID1_MASK 0x00000800L
+#define RBBM_DSPLY__DMI_CH2_USE_BUFID1 0x00000800L
+#define RBBM_DSPLY__DMI_CH2_USE_BUFID2_MASK 0x00001000L
+#define RBBM_DSPLY__DMI_CH2_USE_BUFID2 0x00001000L
+#define RBBM_DSPLY__DMI_CH2_SW_CNTL_MASK 0x00002000L
+#define RBBM_DSPLY__DMI_CH2_SW_CNTL 0x00002000L
+#define RBBM_DSPLY__DMI_CH2_NUM_BUFS_MASK 0x0000c000L
+#define RBBM_DSPLY__DMI_CHANNEL_SELECT_MASK 0x00030000L
+#define RBBM_DSPLY__DMI_CH3_USE_BUFID0_MASK 0x00100000L
+#define RBBM_DSPLY__DMI_CH3_USE_BUFID0 0x00100000L
+#define RBBM_DSPLY__DMI_CH3_USE_BUFID1_MASK 0x00200000L
+#define RBBM_DSPLY__DMI_CH3_USE_BUFID1 0x00200000L
+#define RBBM_DSPLY__DMI_CH3_USE_BUFID2_MASK 0x00400000L
+#define RBBM_DSPLY__DMI_CH3_USE_BUFID2 0x00400000L
+#define RBBM_DSPLY__DMI_CH3_SW_CNTL_MASK 0x00800000L
+#define RBBM_DSPLY__DMI_CH3_SW_CNTL 0x00800000L
+#define RBBM_DSPLY__DMI_CH3_NUM_BUFS_MASK 0x03000000L
+#define RBBM_DSPLY__DMI_CH4_USE_BUFID0_MASK 0x04000000L
+#define RBBM_DSPLY__DMI_CH4_USE_BUFID0 0x04000000L
+#define RBBM_DSPLY__DMI_CH4_USE_BUFID1_MASK 0x08000000L
+#define RBBM_DSPLY__DMI_CH4_USE_BUFID1 0x08000000L
+#define RBBM_DSPLY__DMI_CH4_USE_BUFID2_MASK 0x10000000L
+#define RBBM_DSPLY__DMI_CH4_USE_BUFID2 0x10000000L
+#define RBBM_DSPLY__DMI_CH4_SW_CNTL_MASK 0x20000000L
+#define RBBM_DSPLY__DMI_CH4_SW_CNTL 0x20000000L
+#define RBBM_DSPLY__DMI_CH4_NUM_BUFS_MASK 0xc0000000L
+
+// RBBM_RENDER_LATEST
+#define RBBM_RENDER_LATEST__DMI_CH1_BUFFER_ID_MASK 0x00000003L
+#define RBBM_RENDER_LATEST__DMI_CH2_BUFFER_ID_MASK 0x00000300L
+#define RBBM_RENDER_LATEST__DMI_CH3_BUFFER_ID_MASK 0x00030000L
+#define RBBM_RENDER_LATEST__DMI_CH4_BUFFER_ID_MASK 0x03000000L
+
+// RBBM_RTL_RELEASE
+#define RBBM_RTL_RELEASE__CHANGELIST_MASK 0xffffffffL
+
+// RBBM_PATCH_RELEASE
+#define RBBM_PATCH_RELEASE__PATCH_REVISION_MASK 0x0000ffffL
+#define RBBM_PATCH_RELEASE__PATCH_SELECTION_MASK 0x00ff0000L
+#define RBBM_PATCH_RELEASE__CUSTOMER_ID_MASK 0xff000000L
+
+// RBBM_AUXILIARY_CONFIG
+#define RBBM_AUXILIARY_CONFIG__RESERVED_MASK 0xffffffffL
+
+// RBBM_PERIPHID0
+#define RBBM_PERIPHID0__PARTNUMBER0_MASK 0x000000ffL
+
+// RBBM_PERIPHID1
+#define RBBM_PERIPHID1__PARTNUMBER1_MASK 0x0000000fL
+#define RBBM_PERIPHID1__DESIGNER0_MASK 0x000000f0L
+
+// RBBM_PERIPHID2
+#define RBBM_PERIPHID2__DESIGNER1_MASK 0x0000000fL
+#define RBBM_PERIPHID2__REVISION_MASK 0x000000f0L
+
+// RBBM_PERIPHID3
+#define RBBM_PERIPHID3__RBBM_HOST_INTERFACE_MASK 0x00000003L
+#define RBBM_PERIPHID3__GARB_SLAVE_INTERFACE_MASK 0x0000000cL
+#define RBBM_PERIPHID3__MH_INTERFACE_MASK 0x00000030L
+#define RBBM_PERIPHID3__CONTINUATION_MASK 0x00000080L
+#define RBBM_PERIPHID3__CONTINUATION 0x00000080L
+
+// RBBM_CNTL
+#define RBBM_CNTL__READ_TIMEOUT_MASK 0x000000ffL
+#define RBBM_CNTL__REGCLK_DEASSERT_TIME_MASK 0x0001ff00L
+
+// RBBM_SKEW_CNTL
+#define RBBM_SKEW_CNTL__SKEW_TOP_THRESHOLD_MASK 0x0000001fL
+#define RBBM_SKEW_CNTL__SKEW_COUNT_MASK 0x000003e0L
+
+// RBBM_SOFT_RESET
+#define RBBM_SOFT_RESET__SOFT_RESET_CP_MASK 0x00000001L
+#define RBBM_SOFT_RESET__SOFT_RESET_CP 0x00000001L
+#define RBBM_SOFT_RESET__SOFT_RESET_PA_MASK 0x00000004L
+#define RBBM_SOFT_RESET__SOFT_RESET_PA 0x00000004L
+#define RBBM_SOFT_RESET__SOFT_RESET_MH_MASK 0x00000008L
+#define RBBM_SOFT_RESET__SOFT_RESET_MH 0x00000008L
+#define RBBM_SOFT_RESET__SOFT_RESET_BC_MASK 0x00000010L
+#define RBBM_SOFT_RESET__SOFT_RESET_BC 0x00000010L
+#define RBBM_SOFT_RESET__SOFT_RESET_SQ_MASK 0x00000020L
+#define RBBM_SOFT_RESET__SOFT_RESET_SQ 0x00000020L
+#define RBBM_SOFT_RESET__SOFT_RESET_SX_MASK 0x00000040L
+#define RBBM_SOFT_RESET__SOFT_RESET_SX 0x00000040L
+#define RBBM_SOFT_RESET__SOFT_RESET_CIB_MASK 0x00001000L
+#define RBBM_SOFT_RESET__SOFT_RESET_CIB 0x00001000L
+#define RBBM_SOFT_RESET__SOFT_RESET_SC_MASK 0x00008000L
+#define RBBM_SOFT_RESET__SOFT_RESET_SC 0x00008000L
+#define RBBM_SOFT_RESET__SOFT_RESET_VGT_MASK 0x00010000L
+#define RBBM_SOFT_RESET__SOFT_RESET_VGT 0x00010000L
+
+// RBBM_PM_OVERRIDE1
+#define RBBM_PM_OVERRIDE1__RBBM_AHBCLK_PM_OVERRIDE_MASK 0x00000001L
+#define RBBM_PM_OVERRIDE1__RBBM_AHBCLK_PM_OVERRIDE 0x00000001L
+#define RBBM_PM_OVERRIDE1__SC_REG_SCLK_PM_OVERRIDE_MASK 0x00000002L
+#define RBBM_PM_OVERRIDE1__SC_REG_SCLK_PM_OVERRIDE 0x00000002L
+#define RBBM_PM_OVERRIDE1__SC_SCLK_PM_OVERRIDE_MASK 0x00000004L
+#define RBBM_PM_OVERRIDE1__SC_SCLK_PM_OVERRIDE 0x00000004L
+#define RBBM_PM_OVERRIDE1__SP_TOP_SCLK_PM_OVERRIDE_MASK 0x00000008L
+#define RBBM_PM_OVERRIDE1__SP_TOP_SCLK_PM_OVERRIDE 0x00000008L
+#define RBBM_PM_OVERRIDE1__SP_V0_SCLK_PM_OVERRIDE_MASK 0x00000010L
+#define RBBM_PM_OVERRIDE1__SP_V0_SCLK_PM_OVERRIDE 0x00000010L
+#define RBBM_PM_OVERRIDE1__SQ_REG_SCLK_PM_OVERRIDE_MASK 0x00000020L
+#define RBBM_PM_OVERRIDE1__SQ_REG_SCLK_PM_OVERRIDE 0x00000020L
+#define RBBM_PM_OVERRIDE1__SQ_REG_FIFOS_SCLK_PM_OVERRIDE_MASK 0x00000040L
+#define RBBM_PM_OVERRIDE1__SQ_REG_FIFOS_SCLK_PM_OVERRIDE 0x00000040L
+#define RBBM_PM_OVERRIDE1__SQ_CONST_MEM_SCLK_PM_OVERRIDE_MASK 0x00000080L
+#define RBBM_PM_OVERRIDE1__SQ_CONST_MEM_SCLK_PM_OVERRIDE 0x00000080L
+#define RBBM_PM_OVERRIDE1__SQ_SQ_SCLK_PM_OVERRIDE_MASK 0x00000100L
+#define RBBM_PM_OVERRIDE1__SQ_SQ_SCLK_PM_OVERRIDE 0x00000100L
+#define RBBM_PM_OVERRIDE1__SX_SCLK_PM_OVERRIDE_MASK 0x00000200L
+#define RBBM_PM_OVERRIDE1__SX_SCLK_PM_OVERRIDE 0x00000200L
+#define RBBM_PM_OVERRIDE1__SX_REG_SCLK_PM_OVERRIDE_MASK 0x00000400L
+#define RBBM_PM_OVERRIDE1__SX_REG_SCLK_PM_OVERRIDE 0x00000400L
+#define RBBM_PM_OVERRIDE1__TCM_TCO_SCLK_PM_OVERRIDE_MASK 0x00000800L
+#define RBBM_PM_OVERRIDE1__TCM_TCO_SCLK_PM_OVERRIDE 0x00000800L
+#define RBBM_PM_OVERRIDE1__TCM_TCM_SCLK_PM_OVERRIDE_MASK 0x00001000L
+#define RBBM_PM_OVERRIDE1__TCM_TCM_SCLK_PM_OVERRIDE 0x00001000L
+#define RBBM_PM_OVERRIDE1__TCM_TCD_SCLK_PM_OVERRIDE_MASK 0x00002000L
+#define RBBM_PM_OVERRIDE1__TCM_TCD_SCLK_PM_OVERRIDE 0x00002000L
+#define RBBM_PM_OVERRIDE1__TCM_REG_SCLK_PM_OVERRIDE_MASK 0x00004000L
+#define RBBM_PM_OVERRIDE1__TCM_REG_SCLK_PM_OVERRIDE 0x00004000L
+#define RBBM_PM_OVERRIDE1__TPC_TPC_SCLK_PM_OVERRIDE_MASK 0x00008000L
+#define RBBM_PM_OVERRIDE1__TPC_TPC_SCLK_PM_OVERRIDE 0x00008000L
+#define RBBM_PM_OVERRIDE1__TPC_REG_SCLK_PM_OVERRIDE_MASK 0x00010000L
+#define RBBM_PM_OVERRIDE1__TPC_REG_SCLK_PM_OVERRIDE 0x00010000L
+#define RBBM_PM_OVERRIDE1__TCF_TCA_SCLK_PM_OVERRIDE_MASK 0x00020000L
+#define RBBM_PM_OVERRIDE1__TCF_TCA_SCLK_PM_OVERRIDE 0x00020000L
+#define RBBM_PM_OVERRIDE1__TCF_TCB_SCLK_PM_OVERRIDE_MASK 0x00040000L
+#define RBBM_PM_OVERRIDE1__TCF_TCB_SCLK_PM_OVERRIDE 0x00040000L
+#define RBBM_PM_OVERRIDE1__TCF_TCB_READ_SCLK_PM_OVERRIDE_MASK 0x00080000L
+#define RBBM_PM_OVERRIDE1__TCF_TCB_READ_SCLK_PM_OVERRIDE 0x00080000L
+#define RBBM_PM_OVERRIDE1__TP_TP_SCLK_PM_OVERRIDE_MASK 0x00100000L
+#define RBBM_PM_OVERRIDE1__TP_TP_SCLK_PM_OVERRIDE 0x00100000L
+#define RBBM_PM_OVERRIDE1__TP_REG_SCLK_PM_OVERRIDE_MASK 0x00200000L
+#define RBBM_PM_OVERRIDE1__TP_REG_SCLK_PM_OVERRIDE 0x00200000L
+#define RBBM_PM_OVERRIDE1__CP_G_SCLK_PM_OVERRIDE_MASK 0x00400000L
+#define RBBM_PM_OVERRIDE1__CP_G_SCLK_PM_OVERRIDE 0x00400000L
+#define RBBM_PM_OVERRIDE1__CP_REG_SCLK_PM_OVERRIDE_MASK 0x00800000L
+#define RBBM_PM_OVERRIDE1__CP_REG_SCLK_PM_OVERRIDE 0x00800000L
+#define RBBM_PM_OVERRIDE1__CP_G_REG_SCLK_PM_OVERRIDE_MASK 0x01000000L
+#define RBBM_PM_OVERRIDE1__CP_G_REG_SCLK_PM_OVERRIDE 0x01000000L
+#define RBBM_PM_OVERRIDE1__SPI_SCLK_PM_OVERRIDE_MASK 0x02000000L
+#define RBBM_PM_OVERRIDE1__SPI_SCLK_PM_OVERRIDE 0x02000000L
+#define RBBM_PM_OVERRIDE1__RB_REG_SCLK_PM_OVERRIDE_MASK 0x04000000L
+#define RBBM_PM_OVERRIDE1__RB_REG_SCLK_PM_OVERRIDE 0x04000000L
+#define RBBM_PM_OVERRIDE1__RB_SCLK_PM_OVERRIDE_MASK 0x08000000L
+#define RBBM_PM_OVERRIDE1__RB_SCLK_PM_OVERRIDE 0x08000000L
+#define RBBM_PM_OVERRIDE1__MH_MH_SCLK_PM_OVERRIDE_MASK 0x10000000L
+#define RBBM_PM_OVERRIDE1__MH_MH_SCLK_PM_OVERRIDE 0x10000000L
+#define RBBM_PM_OVERRIDE1__MH_REG_SCLK_PM_OVERRIDE_MASK 0x20000000L
+#define RBBM_PM_OVERRIDE1__MH_REG_SCLK_PM_OVERRIDE 0x20000000L
+#define RBBM_PM_OVERRIDE1__MH_MMU_SCLK_PM_OVERRIDE_MASK 0x40000000L
+#define RBBM_PM_OVERRIDE1__MH_MMU_SCLK_PM_OVERRIDE 0x40000000L
+#define RBBM_PM_OVERRIDE1__MH_TCROQ_SCLK_PM_OVERRIDE_MASK 0x80000000L
+#define RBBM_PM_OVERRIDE1__MH_TCROQ_SCLK_PM_OVERRIDE 0x80000000L
+
+// RBBM_PM_OVERRIDE2
+#define RBBM_PM_OVERRIDE2__PA_REG_SCLK_PM_OVERRIDE_MASK 0x00000001L
+#define RBBM_PM_OVERRIDE2__PA_REG_SCLK_PM_OVERRIDE 0x00000001L
+#define RBBM_PM_OVERRIDE2__PA_PA_SCLK_PM_OVERRIDE_MASK 0x00000002L
+#define RBBM_PM_OVERRIDE2__PA_PA_SCLK_PM_OVERRIDE 0x00000002L
+#define RBBM_PM_OVERRIDE2__PA_AG_SCLK_PM_OVERRIDE_MASK 0x00000004L
+#define RBBM_PM_OVERRIDE2__PA_AG_SCLK_PM_OVERRIDE 0x00000004L
+#define RBBM_PM_OVERRIDE2__VGT_REG_SCLK_PM_OVERRIDE_MASK 0x00000008L
+#define RBBM_PM_OVERRIDE2__VGT_REG_SCLK_PM_OVERRIDE 0x00000008L
+#define RBBM_PM_OVERRIDE2__VGT_FIFOS_SCLK_PM_OVERRIDE_MASK 0x00000010L
+#define RBBM_PM_OVERRIDE2__VGT_FIFOS_SCLK_PM_OVERRIDE 0x00000010L
+#define RBBM_PM_OVERRIDE2__VGT_VGT_SCLK_PM_OVERRIDE_MASK 0x00000020L
+#define RBBM_PM_OVERRIDE2__VGT_VGT_SCLK_PM_OVERRIDE 0x00000020L
+#define RBBM_PM_OVERRIDE2__DEBUG_PERF_SCLK_PM_OVERRIDE_MASK 0x00000040L
+#define RBBM_PM_OVERRIDE2__DEBUG_PERF_SCLK_PM_OVERRIDE 0x00000040L
+#define RBBM_PM_OVERRIDE2__PERM_SCLK_PM_OVERRIDE_MASK 0x00000080L
+#define RBBM_PM_OVERRIDE2__PERM_SCLK_PM_OVERRIDE 0x00000080L
+#define RBBM_PM_OVERRIDE2__GC_GA_GMEM0_PM_OVERRIDE_MASK 0x00000100L
+#define RBBM_PM_OVERRIDE2__GC_GA_GMEM0_PM_OVERRIDE 0x00000100L
+#define RBBM_PM_OVERRIDE2__GC_GA_GMEM1_PM_OVERRIDE_MASK 0x00000200L
+#define RBBM_PM_OVERRIDE2__GC_GA_GMEM1_PM_OVERRIDE 0x00000200L
+#define RBBM_PM_OVERRIDE2__GC_GA_GMEM2_PM_OVERRIDE_MASK 0x00000400L
+#define RBBM_PM_OVERRIDE2__GC_GA_GMEM2_PM_OVERRIDE 0x00000400L
+#define RBBM_PM_OVERRIDE2__GC_GA_GMEM3_PM_OVERRIDE_MASK 0x00000800L
+#define RBBM_PM_OVERRIDE2__GC_GA_GMEM3_PM_OVERRIDE 0x00000800L
+
+// GC_SYS_IDLE
+#define GC_SYS_IDLE__GC_SYS_IDLE_DELAY_MASK 0x0000ffffL
+#define GC_SYS_IDLE__GC_SYS_WAIT_DMI_MASK_MASK 0x003f0000L
+#define GC_SYS_IDLE__GC_SYS_URGENT_RAMP_MASK 0x01000000L
+#define GC_SYS_IDLE__GC_SYS_URGENT_RAMP 0x01000000L
+#define GC_SYS_IDLE__GC_SYS_WAIT_DMI_MASK 0x02000000L
+#define GC_SYS_IDLE__GC_SYS_WAIT_DMI 0x02000000L
+#define GC_SYS_IDLE__GC_SYS_URGENT_RAMP_OVERRIDE_MASK 0x20000000L
+#define GC_SYS_IDLE__GC_SYS_URGENT_RAMP_OVERRIDE 0x20000000L
+#define GC_SYS_IDLE__GC_SYS_WAIT_DMI_OVERRIDE_MASK 0x40000000L
+#define GC_SYS_IDLE__GC_SYS_WAIT_DMI_OVERRIDE 0x40000000L
+#define GC_SYS_IDLE__GC_SYS_IDLE_OVERRIDE_MASK 0x80000000L
+#define GC_SYS_IDLE__GC_SYS_IDLE_OVERRIDE 0x80000000L
+
+// NQWAIT_UNTIL
+#define NQWAIT_UNTIL__WAIT_GUI_IDLE_MASK 0x00000001L
+#define NQWAIT_UNTIL__WAIT_GUI_IDLE 0x00000001L
+
+// RBBM_DEBUG_OUT
+#define RBBM_DEBUG_OUT__DEBUG_BUS_OUT_MASK 0xffffffffL
+
+// RBBM_DEBUG_CNTL
+#define RBBM_DEBUG_CNTL__SUB_BLOCK_ADDR_MASK 0x0000003fL
+#define RBBM_DEBUG_CNTL__SUB_BLOCK_SEL_MASK 0x00000f00L
+#define RBBM_DEBUG_CNTL__SW_ENABLE_MASK 0x00001000L
+#define RBBM_DEBUG_CNTL__SW_ENABLE 0x00001000L
+#define RBBM_DEBUG_CNTL__GPIO_SUB_BLOCK_ADDR_MASK 0x003f0000L
+#define RBBM_DEBUG_CNTL__GPIO_SUB_BLOCK_SEL_MASK 0x0f000000L
+#define RBBM_DEBUG_CNTL__GPIO_BYTE_LANE_ENB_MASK 0xf0000000L
+
+// RBBM_DEBUG
+#define RBBM_DEBUG__IGNORE_RTR_MASK 0x00000002L
+#define RBBM_DEBUG__IGNORE_RTR 0x00000002L
+#define RBBM_DEBUG__IGNORE_CP_SCHED_WU_MASK 0x00000004L
+#define RBBM_DEBUG__IGNORE_CP_SCHED_WU 0x00000004L
+#define RBBM_DEBUG__IGNORE_CP_SCHED_ISYNC_MASK 0x00000008L
+#define RBBM_DEBUG__IGNORE_CP_SCHED_ISYNC 0x00000008L
+#define RBBM_DEBUG__IGNORE_CP_SCHED_NQ_HI_MASK 0x00000010L
+#define RBBM_DEBUG__IGNORE_CP_SCHED_NQ_HI 0x00000010L
+#define RBBM_DEBUG__HYSTERESIS_NRT_GUI_ACTIVE_MASK 0x00000f00L
+#define RBBM_DEBUG__IGNORE_RTR_FOR_HI_MASK 0x00010000L
+#define RBBM_DEBUG__IGNORE_RTR_FOR_HI 0x00010000L
+#define RBBM_DEBUG__IGNORE_CP_RBBM_NRTRTR_FOR_HI_MASK 0x00020000L
+#define RBBM_DEBUG__IGNORE_CP_RBBM_NRTRTR_FOR_HI 0x00020000L
+#define RBBM_DEBUG__IGNORE_VGT_RBBM_NRTRTR_FOR_HI_MASK 0x00040000L
+#define RBBM_DEBUG__IGNORE_VGT_RBBM_NRTRTR_FOR_HI 0x00040000L
+#define RBBM_DEBUG__IGNORE_SQ_RBBM_NRTRTR_FOR_HI_MASK 0x00080000L
+#define RBBM_DEBUG__IGNORE_SQ_RBBM_NRTRTR_FOR_HI 0x00080000L
+#define RBBM_DEBUG__CP_RBBM_NRTRTR_MASK 0x00100000L
+#define RBBM_DEBUG__CP_RBBM_NRTRTR 0x00100000L
+#define RBBM_DEBUG__VGT_RBBM_NRTRTR_MASK 0x00200000L
+#define RBBM_DEBUG__VGT_RBBM_NRTRTR 0x00200000L
+#define RBBM_DEBUG__SQ_RBBM_NRTRTR_MASK 0x00400000L
+#define RBBM_DEBUG__SQ_RBBM_NRTRTR 0x00400000L
+#define RBBM_DEBUG__CLIENTS_FOR_NRT_RTR_FOR_HI_MASK 0x00800000L
+#define RBBM_DEBUG__CLIENTS_FOR_NRT_RTR_FOR_HI 0x00800000L
+#define RBBM_DEBUG__CLIENTS_FOR_NRT_RTR_MASK 0x01000000L
+#define RBBM_DEBUG__CLIENTS_FOR_NRT_RTR 0x01000000L
+#define RBBM_DEBUG__IGNORE_SX_RBBM_BUSY_MASK 0x80000000L
+#define RBBM_DEBUG__IGNORE_SX_RBBM_BUSY 0x80000000L
+
+// RBBM_READ_ERROR
+#define RBBM_READ_ERROR__READ_ADDRESS_MASK 0x0001fffcL
+#define RBBM_READ_ERROR__READ_REQUESTER_MASK 0x40000000L
+#define RBBM_READ_ERROR__READ_REQUESTER 0x40000000L
+#define RBBM_READ_ERROR__READ_ERROR_MASK 0x80000000L
+#define RBBM_READ_ERROR__READ_ERROR 0x80000000L
+
+// RBBM_WAIT_IDLE_CLOCKS
+#define RBBM_WAIT_IDLE_CLOCKS__WAIT_IDLE_CLOCKS_NRT_MASK 0x000000ffL
+
+// RBBM_INT_CNTL
+#define RBBM_INT_CNTL__RDERR_INT_MASK_MASK 0x00000001L
+#define RBBM_INT_CNTL__RDERR_INT_MASK 0x00000001L
+#define RBBM_INT_CNTL__DISPLAY_UPDATE_INT_MASK_MASK 0x00000002L
+#define RBBM_INT_CNTL__DISPLAY_UPDATE_INT_MASK 0x00000002L
+#define RBBM_INT_CNTL__GUI_IDLE_INT_MASK_MASK 0x00080000L
+#define RBBM_INT_CNTL__GUI_IDLE_INT_MASK 0x00080000L
+
+// RBBM_INT_STATUS
+#define RBBM_INT_STATUS__RDERR_INT_STAT_MASK 0x00000001L
+#define RBBM_INT_STATUS__RDERR_INT_STAT 0x00000001L
+#define RBBM_INT_STATUS__DISPLAY_UPDATE_INT_STAT_MASK 0x00000002L
+#define RBBM_INT_STATUS__DISPLAY_UPDATE_INT_STAT 0x00000002L
+#define RBBM_INT_STATUS__GUI_IDLE_INT_STAT_MASK 0x00080000L
+#define RBBM_INT_STATUS__GUI_IDLE_INT_STAT 0x00080000L
+
+// RBBM_INT_ACK
+#define RBBM_INT_ACK__RDERR_INT_ACK_MASK 0x00000001L
+#define RBBM_INT_ACK__RDERR_INT_ACK 0x00000001L
+#define RBBM_INT_ACK__DISPLAY_UPDATE_INT_ACK_MASK 0x00000002L
+#define RBBM_INT_ACK__DISPLAY_UPDATE_INT_ACK 0x00000002L
+#define RBBM_INT_ACK__GUI_IDLE_INT_ACK_MASK 0x00080000L
+#define RBBM_INT_ACK__GUI_IDLE_INT_ACK 0x00080000L
+
+// MASTER_INT_SIGNAL
+#define MASTER_INT_SIGNAL__MH_INT_STAT_MASK 0x00000020L
+#define MASTER_INT_SIGNAL__MH_INT_STAT 0x00000020L
+#define MASTER_INT_SIGNAL__SQ_INT_STAT_MASK 0x04000000L
+#define MASTER_INT_SIGNAL__SQ_INT_STAT 0x04000000L
+#define MASTER_INT_SIGNAL__CP_INT_STAT_MASK 0x40000000L
+#define MASTER_INT_SIGNAL__CP_INT_STAT 0x40000000L
+#define MASTER_INT_SIGNAL__RBBM_INT_STAT_MASK 0x80000000L
+#define MASTER_INT_SIGNAL__RBBM_INT_STAT 0x80000000L
+
+// RBBM_PERFCOUNTER1_SELECT
+#define RBBM_PERFCOUNTER1_SELECT__PERF_COUNT1_SEL_MASK 0x0000003fL
+
+// RBBM_PERFCOUNTER1_LO
+#define RBBM_PERFCOUNTER1_LO__PERF_COUNT1_LO_MASK 0xffffffffL
+
+// RBBM_PERFCOUNTER1_HI
+#define RBBM_PERFCOUNTER1_HI__PERF_COUNT1_HI_MASK 0x0000ffffL
+
+// CP_RB_BASE
+#define CP_RB_BASE__RB_BASE_MASK 0xffffffe0L
+
+// CP_RB_CNTL
+#define CP_RB_CNTL__RB_BUFSZ_MASK 0x0000003fL
+#define CP_RB_CNTL__RB_BLKSZ_MASK 0x00003f00L
+#define CP_RB_CNTL__BUF_SWAP_MASK 0x00030000L
+#define CP_RB_CNTL__RB_POLL_EN_MASK 0x00100000L
+#define CP_RB_CNTL__RB_POLL_EN 0x00100000L
+#define CP_RB_CNTL__RB_NO_UPDATE_MASK 0x08000000L
+#define CP_RB_CNTL__RB_NO_UPDATE 0x08000000L
+#define CP_RB_CNTL__RB_RPTR_WR_ENA_MASK 0x80000000L
+#define CP_RB_CNTL__RB_RPTR_WR_ENA 0x80000000L
+
+// CP_RB_RPTR_ADDR
+#define CP_RB_RPTR_ADDR__RB_RPTR_SWAP_MASK 0x00000003L
+#define CP_RB_RPTR_ADDR__RB_RPTR_ADDR_MASK 0xfffffffcL
+
+// CP_RB_RPTR
+#define CP_RB_RPTR__RB_RPTR_MASK 0x000fffffL
+
+// CP_RB_RPTR_WR
+#define CP_RB_RPTR_WR__RB_RPTR_WR_MASK 0x000fffffL
+
+// CP_RB_WPTR
+#define CP_RB_WPTR__RB_WPTR_MASK 0x000fffffL
+
+// CP_RB_WPTR_DELAY
+#define CP_RB_WPTR_DELAY__PRE_WRITE_TIMER_MASK 0x0fffffffL
+#define CP_RB_WPTR_DELAY__PRE_WRITE_LIMIT_MASK 0xf0000000L
+
+// CP_RB_WPTR_BASE
+#define CP_RB_WPTR_BASE__RB_WPTR_SWAP_MASK 0x00000003L
+#define CP_RB_WPTR_BASE__RB_WPTR_BASE_MASK 0xfffffffcL
+
+// CP_IB1_BASE
+#define CP_IB1_BASE__IB1_BASE_MASK 0xfffffffcL
+
+// CP_IB1_BUFSZ
+#define CP_IB1_BUFSZ__IB1_BUFSZ_MASK 0x000fffffL
+
+// CP_IB2_BASE
+#define CP_IB2_BASE__IB2_BASE_MASK 0xfffffffcL
+
+// CP_IB2_BUFSZ
+#define CP_IB2_BUFSZ__IB2_BUFSZ_MASK 0x000fffffL
+
+// CP_ST_BASE
+#define CP_ST_BASE__ST_BASE_MASK 0xfffffffcL
+
+// CP_ST_BUFSZ
+#define CP_ST_BUFSZ__ST_BUFSZ_MASK 0x000fffffL
+
+// CP_QUEUE_THRESHOLDS
+#define CP_QUEUE_THRESHOLDS__CSQ_IB1_START_MASK 0x0000000fL
+#define CP_QUEUE_THRESHOLDS__CSQ_IB2_START_MASK 0x00000f00L
+#define CP_QUEUE_THRESHOLDS__CSQ_ST_START_MASK 0x000f0000L
+
+// CP_MEQ_THRESHOLDS
+#define CP_MEQ_THRESHOLDS__MEQ_END_MASK 0x001f0000L
+#define CP_MEQ_THRESHOLDS__ROQ_END_MASK 0x1f000000L
+
+// CP_CSQ_AVAIL
+#define CP_CSQ_AVAIL__CSQ_CNT_RING_MASK 0x0000007fL
+#define CP_CSQ_AVAIL__CSQ_CNT_IB1_MASK 0x00007f00L
+#define CP_CSQ_AVAIL__CSQ_CNT_IB2_MASK 0x007f0000L
+
+// CP_STQ_AVAIL
+#define CP_STQ_AVAIL__STQ_CNT_ST_MASK 0x0000007fL
+
+// CP_MEQ_AVAIL
+#define CP_MEQ_AVAIL__MEQ_CNT_MASK 0x0000001fL
+
+// CP_CSQ_RB_STAT
+#define CP_CSQ_RB_STAT__CSQ_RPTR_PRIMARY_MASK 0x0000007fL
+#define CP_CSQ_RB_STAT__CSQ_WPTR_PRIMARY_MASK 0x007f0000L
+
+// CP_CSQ_IB1_STAT
+#define CP_CSQ_IB1_STAT__CSQ_RPTR_INDIRECT1_MASK 0x0000007fL
+#define CP_CSQ_IB1_STAT__CSQ_WPTR_INDIRECT1_MASK 0x007f0000L
+
+// CP_CSQ_IB2_STAT
+#define CP_CSQ_IB2_STAT__CSQ_RPTR_INDIRECT2_MASK 0x0000007fL
+#define CP_CSQ_IB2_STAT__CSQ_WPTR_INDIRECT2_MASK 0x007f0000L
+
+// CP_NON_PREFETCH_CNTRS
+#define CP_NON_PREFETCH_CNTRS__IB1_COUNTER_MASK 0x00000007L
+#define CP_NON_PREFETCH_CNTRS__IB2_COUNTER_MASK 0x00000700L
+
+// CP_STQ_ST_STAT
+#define CP_STQ_ST_STAT__STQ_RPTR_ST_MASK 0x0000007fL
+#define CP_STQ_ST_STAT__STQ_WPTR_ST_MASK 0x007f0000L
+
+// CP_MEQ_STAT
+#define CP_MEQ_STAT__MEQ_RPTR_MASK 0x000003ffL
+#define CP_MEQ_STAT__MEQ_WPTR_MASK 0x03ff0000L
+
+// CP_MIU_TAG_STAT
+#define CP_MIU_TAG_STAT__TAG_0_STAT_MASK 0x00000001L
+#define CP_MIU_TAG_STAT__TAG_0_STAT 0x00000001L
+#define CP_MIU_TAG_STAT__TAG_1_STAT_MASK 0x00000002L
+#define CP_MIU_TAG_STAT__TAG_1_STAT 0x00000002L
+#define CP_MIU_TAG_STAT__TAG_2_STAT_MASK 0x00000004L
+#define CP_MIU_TAG_STAT__TAG_2_STAT 0x00000004L
+#define CP_MIU_TAG_STAT__TAG_3_STAT_MASK 0x00000008L
+#define CP_MIU_TAG_STAT__TAG_3_STAT 0x00000008L
+#define CP_MIU_TAG_STAT__TAG_4_STAT_MASK 0x00000010L
+#define CP_MIU_TAG_STAT__TAG_4_STAT 0x00000010L
+#define CP_MIU_TAG_STAT__TAG_5_STAT_MASK 0x00000020L
+#define CP_MIU_TAG_STAT__TAG_5_STAT 0x00000020L
+#define CP_MIU_TAG_STAT__TAG_6_STAT_MASK 0x00000040L
+#define CP_MIU_TAG_STAT__TAG_6_STAT 0x00000040L
+#define CP_MIU_TAG_STAT__TAG_7_STAT_MASK 0x00000080L
+#define CP_MIU_TAG_STAT__TAG_7_STAT 0x00000080L
+#define CP_MIU_TAG_STAT__TAG_8_STAT_MASK 0x00000100L
+#define CP_MIU_TAG_STAT__TAG_8_STAT 0x00000100L
+#define CP_MIU_TAG_STAT__TAG_9_STAT_MASK 0x00000200L
+#define CP_MIU_TAG_STAT__TAG_9_STAT 0x00000200L
+#define CP_MIU_TAG_STAT__TAG_10_STAT_MASK 0x00000400L
+#define CP_MIU_TAG_STAT__TAG_10_STAT 0x00000400L
+#define CP_MIU_TAG_STAT__TAG_11_STAT_MASK 0x00000800L
+#define CP_MIU_TAG_STAT__TAG_11_STAT 0x00000800L
+#define CP_MIU_TAG_STAT__TAG_12_STAT_MASK 0x00001000L
+#define CP_MIU_TAG_STAT__TAG_12_STAT 0x00001000L
+#define CP_MIU_TAG_STAT__TAG_13_STAT_MASK 0x00002000L
+#define CP_MIU_TAG_STAT__TAG_13_STAT 0x00002000L
+#define CP_MIU_TAG_STAT__TAG_14_STAT_MASK 0x00004000L
+#define CP_MIU_TAG_STAT__TAG_14_STAT 0x00004000L
+#define CP_MIU_TAG_STAT__TAG_15_STAT_MASK 0x00008000L
+#define CP_MIU_TAG_STAT__TAG_15_STAT 0x00008000L
+#define CP_MIU_TAG_STAT__TAG_16_STAT_MASK 0x00010000L
+#define CP_MIU_TAG_STAT__TAG_16_STAT 0x00010000L
+#define CP_MIU_TAG_STAT__TAG_17_STAT_MASK 0x00020000L
+#define CP_MIU_TAG_STAT__TAG_17_STAT 0x00020000L
+#define CP_MIU_TAG_STAT__INVALID_RETURN_TAG_MASK 0x80000000L
+#define CP_MIU_TAG_STAT__INVALID_RETURN_TAG 0x80000000L
+
+// CP_CMD_INDEX
+#define CP_CMD_INDEX__CMD_INDEX_MASK 0x0000007fL
+#define CP_CMD_INDEX__CMD_QUEUE_SEL_MASK 0x00030000L
+
+// CP_CMD_DATA
+#define CP_CMD_DATA__CMD_DATA_MASK 0xffffffffL
+
+// CP_ME_CNTL
+#define CP_ME_CNTL__ME_STATMUX_MASK 0x0000ffffL
+#define CP_ME_CNTL__VTX_DEALLOC_FIFO_EMPTY_MASK 0x02000000L
+#define CP_ME_CNTL__VTX_DEALLOC_FIFO_EMPTY 0x02000000L
+#define CP_ME_CNTL__PIX_DEALLOC_FIFO_EMPTY_MASK 0x04000000L
+#define CP_ME_CNTL__PIX_DEALLOC_FIFO_EMPTY 0x04000000L
+#define CP_ME_CNTL__ME_HALT_MASK 0x10000000L
+#define CP_ME_CNTL__ME_HALT 0x10000000L
+#define CP_ME_CNTL__ME_BUSY_MASK 0x20000000L
+#define CP_ME_CNTL__ME_BUSY 0x20000000L
+#define CP_ME_CNTL__PROG_CNT_SIZE_MASK 0x80000000L
+#define CP_ME_CNTL__PROG_CNT_SIZE 0x80000000L
+
+// CP_ME_STATUS
+#define CP_ME_STATUS__ME_DEBUG_DATA_MASK 0xffffffffL
+
+// CP_ME_RAM_WADDR
+#define CP_ME_RAM_WADDR__ME_RAM_WADDR_MASK 0x000003ffL
+
+// CP_ME_RAM_RADDR
+#define CP_ME_RAM_RADDR__ME_RAM_RADDR_MASK 0x000003ffL
+
+// CP_ME_RAM_DATA
+#define CP_ME_RAM_DATA__ME_RAM_DATA_MASK 0xffffffffL
+
+// CP_ME_RDADDR
+#define CP_ME_RDADDR__ME_RDADDR_MASK 0xffffffffL
+
+// CP_DEBUG
+#define CP_DEBUG__CP_DEBUG_UNUSED_22_to_0_MASK 0x007fffffL
+#define CP_DEBUG__PREDICATE_DISABLE_MASK 0x00800000L
+#define CP_DEBUG__PREDICATE_DISABLE 0x00800000L
+#define CP_DEBUG__PROG_END_PTR_ENABLE_MASK 0x01000000L
+#define CP_DEBUG__PROG_END_PTR_ENABLE 0x01000000L
+#define CP_DEBUG__MIU_128BIT_WRITE_ENABLE_MASK 0x02000000L
+#define CP_DEBUG__MIU_128BIT_WRITE_ENABLE 0x02000000L
+#define CP_DEBUG__PREFETCH_PASS_NOPS_MASK 0x04000000L
+#define CP_DEBUG__PREFETCH_PASS_NOPS 0x04000000L
+#define CP_DEBUG__DYNAMIC_CLK_DISABLE_MASK 0x08000000L
+#define CP_DEBUG__DYNAMIC_CLK_DISABLE 0x08000000L
+#define CP_DEBUG__PREFETCH_MATCH_DISABLE_MASK 0x10000000L
+#define CP_DEBUG__PREFETCH_MATCH_DISABLE 0x10000000L
+#define CP_DEBUG__SIMPLE_ME_FLOW_CONTROL_MASK 0x40000000L
+#define CP_DEBUG__SIMPLE_ME_FLOW_CONTROL 0x40000000L
+#define CP_DEBUG__MIU_WRITE_PACK_DISABLE_MASK 0x80000000L
+#define CP_DEBUG__MIU_WRITE_PACK_DISABLE 0x80000000L
+
+// SCRATCH_REG0
+#define SCRATCH_REG0__SCRATCH_REG0_MASK 0xffffffffL
+#define GUI_SCRATCH_REG0__SCRATCH_REG0_MASK 0xffffffffL
+
+// SCRATCH_REG1
+#define SCRATCH_REG1__SCRATCH_REG1_MASK 0xffffffffL
+#define GUI_SCRATCH_REG1__SCRATCH_REG1_MASK 0xffffffffL
+
+// SCRATCH_REG2
+#define SCRATCH_REG2__SCRATCH_REG2_MASK 0xffffffffL
+#define GUI_SCRATCH_REG2__SCRATCH_REG2_MASK 0xffffffffL
+
+// SCRATCH_REG3
+#define SCRATCH_REG3__SCRATCH_REG3_MASK 0xffffffffL
+#define GUI_SCRATCH_REG3__SCRATCH_REG3_MASK 0xffffffffL
+
+// SCRATCH_REG4
+#define SCRATCH_REG4__SCRATCH_REG4_MASK 0xffffffffL
+#define GUI_SCRATCH_REG4__SCRATCH_REG4_MASK 0xffffffffL
+
+// SCRATCH_REG5
+#define SCRATCH_REG5__SCRATCH_REG5_MASK 0xffffffffL
+#define GUI_SCRATCH_REG5__SCRATCH_REG5_MASK 0xffffffffL
+
+// SCRATCH_REG6
+#define SCRATCH_REG6__SCRATCH_REG6_MASK 0xffffffffL
+#define GUI_SCRATCH_REG6__SCRATCH_REG6_MASK 0xffffffffL
+
+// SCRATCH_REG7
+#define SCRATCH_REG7__SCRATCH_REG7_MASK 0xffffffffL
+#define GUI_SCRATCH_REG7__SCRATCH_REG7_MASK 0xffffffffL
+
+// SCRATCH_UMSK
+#define SCRATCH_UMSK__SCRATCH_UMSK_MASK 0x000000ffL
+#define SCRATCH_UMSK__SCRATCH_SWAP_MASK 0x00030000L
+
+// SCRATCH_ADDR
+#define SCRATCH_ADDR__SCRATCH_ADDR_MASK 0xffffffe0L
+
+// CP_ME_VS_EVENT_SRC
+#define CP_ME_VS_EVENT_SRC__VS_DONE_SWM_MASK 0x00000001L
+#define CP_ME_VS_EVENT_SRC__VS_DONE_SWM 0x00000001L
+#define CP_ME_VS_EVENT_SRC__VS_DONE_CNTR_MASK 0x00000002L
+#define CP_ME_VS_EVENT_SRC__VS_DONE_CNTR 0x00000002L
+
+// CP_ME_VS_EVENT_ADDR
+#define CP_ME_VS_EVENT_ADDR__VS_DONE_SWAP_MASK 0x00000003L
+#define CP_ME_VS_EVENT_ADDR__VS_DONE_ADDR_MASK 0xfffffffcL
+
+// CP_ME_VS_EVENT_DATA
+#define CP_ME_VS_EVENT_DATA__VS_DONE_DATA_MASK 0xffffffffL
+
+// CP_ME_VS_EVENT_ADDR_SWM
+#define CP_ME_VS_EVENT_ADDR_SWM__VS_DONE_SWAP_SWM_MASK 0x00000003L
+#define CP_ME_VS_EVENT_ADDR_SWM__VS_DONE_ADDR_SWM_MASK 0xfffffffcL
+
+// CP_ME_VS_EVENT_DATA_SWM
+#define CP_ME_VS_EVENT_DATA_SWM__VS_DONE_DATA_SWM_MASK 0xffffffffL
+
+// CP_ME_PS_EVENT_SRC
+#define CP_ME_PS_EVENT_SRC__PS_DONE_SWM_MASK 0x00000001L
+#define CP_ME_PS_EVENT_SRC__PS_DONE_SWM 0x00000001L
+#define CP_ME_PS_EVENT_SRC__PS_DONE_CNTR_MASK 0x00000002L
+#define CP_ME_PS_EVENT_SRC__PS_DONE_CNTR 0x00000002L
+
+// CP_ME_PS_EVENT_ADDR
+#define CP_ME_PS_EVENT_ADDR__PS_DONE_SWAP_MASK 0x00000003L
+#define CP_ME_PS_EVENT_ADDR__PS_DONE_ADDR_MASK 0xfffffffcL
+
+// CP_ME_PS_EVENT_DATA
+#define CP_ME_PS_EVENT_DATA__PS_DONE_DATA_MASK 0xffffffffL
+
+// CP_ME_PS_EVENT_ADDR_SWM
+#define CP_ME_PS_EVENT_ADDR_SWM__PS_DONE_SWAP_SWM_MASK 0x00000003L
+#define CP_ME_PS_EVENT_ADDR_SWM__PS_DONE_ADDR_SWM_MASK 0xfffffffcL
+
+// CP_ME_PS_EVENT_DATA_SWM
+#define CP_ME_PS_EVENT_DATA_SWM__PS_DONE_DATA_SWM_MASK 0xffffffffL
+
+// CP_ME_CF_EVENT_SRC
+#define CP_ME_CF_EVENT_SRC__CF_DONE_SRC_MASK 0x00000001L
+#define CP_ME_CF_EVENT_SRC__CF_DONE_SRC 0x00000001L
+
+// CP_ME_CF_EVENT_ADDR
+#define CP_ME_CF_EVENT_ADDR__CF_DONE_SWAP_MASK 0x00000003L
+#define CP_ME_CF_EVENT_ADDR__CF_DONE_ADDR_MASK 0xfffffffcL
+
+// CP_ME_CF_EVENT_DATA
+#define CP_ME_CF_EVENT_DATA__CF_DONE_DATA_MASK 0xffffffffL
+
+// CP_ME_NRT_ADDR
+#define CP_ME_NRT_ADDR__NRT_WRITE_SWAP_MASK 0x00000003L
+#define CP_ME_NRT_ADDR__NRT_WRITE_ADDR_MASK 0xfffffffcL
+
+// CP_ME_NRT_DATA
+#define CP_ME_NRT_DATA__NRT_WRITE_DATA_MASK 0xffffffffL
+
+// CP_ME_VS_FETCH_DONE_SRC
+#define CP_ME_VS_FETCH_DONE_SRC__VS_FETCH_DONE_CNTR_MASK 0x00000001L
+#define CP_ME_VS_FETCH_DONE_SRC__VS_FETCH_DONE_CNTR 0x00000001L
+
+// CP_ME_VS_FETCH_DONE_ADDR
+#define CP_ME_VS_FETCH_DONE_ADDR__VS_FETCH_DONE_SWAP_MASK 0x00000003L
+#define CP_ME_VS_FETCH_DONE_ADDR__VS_FETCH_DONE_ADDR_MASK 0xfffffffcL
+
+// CP_ME_VS_FETCH_DONE_DATA
+#define CP_ME_VS_FETCH_DONE_DATA__VS_FETCH_DONE_DATA_MASK 0xffffffffL
+
+// CP_INT_CNTL
+#define CP_INT_CNTL__SW_INT_MASK_MASK 0x00080000L
+#define CP_INT_CNTL__SW_INT_MASK 0x00080000L
+#define CP_INT_CNTL__T0_PACKET_IN_IB_MASK_MASK 0x00800000L
+#define CP_INT_CNTL__T0_PACKET_IN_IB_MASK 0x00800000L
+#define CP_INT_CNTL__OPCODE_ERROR_MASK_MASK 0x01000000L
+#define CP_INT_CNTL__OPCODE_ERROR_MASK 0x01000000L
+#define CP_INT_CNTL__PROTECTED_MODE_ERROR_MASK_MASK 0x02000000L
+#define CP_INT_CNTL__PROTECTED_MODE_ERROR_MASK 0x02000000L
+#define CP_INT_CNTL__RESERVED_BIT_ERROR_MASK_MASK 0x04000000L
+#define CP_INT_CNTL__RESERVED_BIT_ERROR_MASK 0x04000000L
+#define CP_INT_CNTL__IB_ERROR_MASK_MASK 0x08000000L
+#define CP_INT_CNTL__IB_ERROR_MASK 0x08000000L
+#define CP_INT_CNTL__IB2_INT_MASK_MASK 0x20000000L
+#define CP_INT_CNTL__IB2_INT_MASK 0x20000000L
+#define CP_INT_CNTL__IB1_INT_MASK_MASK 0x40000000L
+#define CP_INT_CNTL__IB1_INT_MASK 0x40000000L
+#define CP_INT_CNTL__RB_INT_MASK_MASK 0x80000000L
+#define CP_INT_CNTL__RB_INT_MASK 0x80000000L
+
+// CP_INT_STATUS
+#define CP_INT_STATUS__SW_INT_STAT_MASK 0x00080000L
+#define CP_INT_STATUS__SW_INT_STAT 0x00080000L
+#define CP_INT_STATUS__T0_PACKET_IN_IB_STAT_MASK 0x00800000L
+#define CP_INT_STATUS__T0_PACKET_IN_IB_STAT 0x00800000L
+#define CP_INT_STATUS__OPCODE_ERROR_STAT_MASK 0x01000000L
+#define CP_INT_STATUS__OPCODE_ERROR_STAT 0x01000000L
+#define CP_INT_STATUS__PROTECTED_MODE_ERROR_STAT_MASK 0x02000000L
+#define CP_INT_STATUS__PROTECTED_MODE_ERROR_STAT 0x02000000L
+#define CP_INT_STATUS__RESERVED_BIT_ERROR_STAT_MASK 0x04000000L
+#define CP_INT_STATUS__RESERVED_BIT_ERROR_STAT 0x04000000L
+#define CP_INT_STATUS__IB_ERROR_STAT_MASK 0x08000000L
+#define CP_INT_STATUS__IB_ERROR_STAT 0x08000000L
+#define CP_INT_STATUS__IB2_INT_STAT_MASK 0x20000000L
+#define CP_INT_STATUS__IB2_INT_STAT 0x20000000L
+#define CP_INT_STATUS__IB1_INT_STAT_MASK 0x40000000L
+#define CP_INT_STATUS__IB1_INT_STAT 0x40000000L
+#define CP_INT_STATUS__RB_INT_STAT_MASK 0x80000000L
+#define CP_INT_STATUS__RB_INT_STAT 0x80000000L
+
+// CP_INT_ACK
+#define CP_INT_ACK__SW_INT_ACK_MASK 0x00080000L
+#define CP_INT_ACK__SW_INT_ACK 0x00080000L
+#define CP_INT_ACK__T0_PACKET_IN_IB_ACK_MASK 0x00800000L
+#define CP_INT_ACK__T0_PACKET_IN_IB_ACK 0x00800000L
+#define CP_INT_ACK__OPCODE_ERROR_ACK_MASK 0x01000000L
+#define CP_INT_ACK__OPCODE_ERROR_ACK 0x01000000L
+#define CP_INT_ACK__PROTECTED_MODE_ERROR_ACK_MASK 0x02000000L
+#define CP_INT_ACK__PROTECTED_MODE_ERROR_ACK 0x02000000L
+#define CP_INT_ACK__RESERVED_BIT_ERROR_ACK_MASK 0x04000000L
+#define CP_INT_ACK__RESERVED_BIT_ERROR_ACK 0x04000000L
+#define CP_INT_ACK__IB_ERROR_ACK_MASK 0x08000000L
+#define CP_INT_ACK__IB_ERROR_ACK 0x08000000L
+#define CP_INT_ACK__IB2_INT_ACK_MASK 0x20000000L
+#define CP_INT_ACK__IB2_INT_ACK 0x20000000L
+#define CP_INT_ACK__IB1_INT_ACK_MASK 0x40000000L
+#define CP_INT_ACK__IB1_INT_ACK 0x40000000L
+#define CP_INT_ACK__RB_INT_ACK_MASK 0x80000000L
+#define CP_INT_ACK__RB_INT_ACK 0x80000000L
+
+// CP_PFP_UCODE_ADDR
+#define CP_PFP_UCODE_ADDR__UCODE_ADDR_MASK 0x000001ffL
+
+// CP_PFP_UCODE_DATA
+#define CP_PFP_UCODE_DATA__UCODE_DATA_MASK 0x00ffffffL
+
+// CP_PERFMON_CNTL
+#define CP_PERFMON_CNTL__PERFMON_STATE_MASK 0x0000000fL
+#define CP_PERFMON_CNTL__PERFMON_ENABLE_MODE_MASK 0x00000300L
+
+// CP_PERFCOUNTER_SELECT
+#define CP_PERFCOUNTER_SELECT__PERFCOUNT_SEL_MASK 0x0000003fL
+
+// CP_PERFCOUNTER_LO
+#define CP_PERFCOUNTER_LO__PERFCOUNT_LO_MASK 0xffffffffL
+
+// CP_PERFCOUNTER_HI
+#define CP_PERFCOUNTER_HI__PERFCOUNT_HI_MASK 0x0000ffffL
+
+// CP_BIN_MASK_LO
+#define CP_BIN_MASK_LO__BIN_MASK_LO_MASK 0xffffffffL
+
+// CP_BIN_MASK_HI
+#define CP_BIN_MASK_HI__BIN_MASK_HI_MASK 0xffffffffL
+
+// CP_BIN_SELECT_LO
+#define CP_BIN_SELECT_LO__BIN_SELECT_LO_MASK 0xffffffffL
+
+// CP_BIN_SELECT_HI
+#define CP_BIN_SELECT_HI__BIN_SELECT_HI_MASK 0xffffffffL
+
+// CP_NV_FLAGS_0
+#define CP_NV_FLAGS_0__DISCARD_0_MASK 0x00000001L
+#define CP_NV_FLAGS_0__DISCARD_0 0x00000001L
+#define CP_NV_FLAGS_0__END_RCVD_0_MASK 0x00000002L
+#define CP_NV_FLAGS_0__END_RCVD_0 0x00000002L
+#define CP_NV_FLAGS_0__DISCARD_1_MASK 0x00000004L
+#define CP_NV_FLAGS_0__DISCARD_1 0x00000004L
+#define CP_NV_FLAGS_0__END_RCVD_1_MASK 0x00000008L
+#define CP_NV_FLAGS_0__END_RCVD_1 0x00000008L
+#define CP_NV_FLAGS_0__DISCARD_2_MASK 0x00000010L
+#define CP_NV_FLAGS_0__DISCARD_2 0x00000010L
+#define CP_NV_FLAGS_0__END_RCVD_2_MASK 0x00000020L
+#define CP_NV_FLAGS_0__END_RCVD_2 0x00000020L
+#define CP_NV_FLAGS_0__DISCARD_3_MASK 0x00000040L
+#define CP_NV_FLAGS_0__DISCARD_3 0x00000040L
+#define CP_NV_FLAGS_0__END_RCVD_3_MASK 0x00000080L
+#define CP_NV_FLAGS_0__END_RCVD_3 0x00000080L
+#define CP_NV_FLAGS_0__DISCARD_4_MASK 0x00000100L
+#define CP_NV_FLAGS_0__DISCARD_4 0x00000100L
+#define CP_NV_FLAGS_0__END_RCVD_4_MASK 0x00000200L
+#define CP_NV_FLAGS_0__END_RCVD_4 0x00000200L
+#define CP_NV_FLAGS_0__DISCARD_5_MASK 0x00000400L
+#define CP_NV_FLAGS_0__DISCARD_5 0x00000400L
+#define CP_NV_FLAGS_0__END_RCVD_5_MASK 0x00000800L
+#define CP_NV_FLAGS_0__END_RCVD_5 0x00000800L
+#define CP_NV_FLAGS_0__DISCARD_6_MASK 0x00001000L
+#define CP_NV_FLAGS_0__DISCARD_6 0x00001000L
+#define CP_NV_FLAGS_0__END_RCVD_6_MASK 0x00002000L
+#define CP_NV_FLAGS_0__END_RCVD_6 0x00002000L
+#define CP_NV_FLAGS_0__DISCARD_7_MASK 0x00004000L
+#define CP_NV_FLAGS_0__DISCARD_7 0x00004000L
+#define CP_NV_FLAGS_0__END_RCVD_7_MASK 0x00008000L
+#define CP_NV_FLAGS_0__END_RCVD_7 0x00008000L
+#define CP_NV_FLAGS_0__DISCARD_8_MASK 0x00010000L
+#define CP_NV_FLAGS_0__DISCARD_8 0x00010000L
+#define CP_NV_FLAGS_0__END_RCVD_8_MASK 0x00020000L
+#define CP_NV_FLAGS_0__END_RCVD_8 0x00020000L
+#define CP_NV_FLAGS_0__DISCARD_9_MASK 0x00040000L
+#define CP_NV_FLAGS_0__DISCARD_9 0x00040000L
+#define CP_NV_FLAGS_0__END_RCVD_9_MASK 0x00080000L
+#define CP_NV_FLAGS_0__END_RCVD_9 0x00080000L
+#define CP_NV_FLAGS_0__DISCARD_10_MASK 0x00100000L
+#define CP_NV_FLAGS_0__DISCARD_10 0x00100000L
+#define CP_NV_FLAGS_0__END_RCVD_10_MASK 0x00200000L
+#define CP_NV_FLAGS_0__END_RCVD_10 0x00200000L
+#define CP_NV_FLAGS_0__DISCARD_11_MASK 0x00400000L
+#define CP_NV_FLAGS_0__DISCARD_11 0x00400000L
+#define CP_NV_FLAGS_0__END_RCVD_11_MASK 0x00800000L
+#define CP_NV_FLAGS_0__END_RCVD_11 0x00800000L
+#define CP_NV_FLAGS_0__DISCARD_12_MASK 0x01000000L
+#define CP_NV_FLAGS_0__DISCARD_12 0x01000000L
+#define CP_NV_FLAGS_0__END_RCVD_12_MASK 0x02000000L
+#define CP_NV_FLAGS_0__END_RCVD_12 0x02000000L
+#define CP_NV_FLAGS_0__DISCARD_13_MASK 0x04000000L
+#define CP_NV_FLAGS_0__DISCARD_13 0x04000000L
+#define CP_NV_FLAGS_0__END_RCVD_13_MASK 0x08000000L
+#define CP_NV_FLAGS_0__END_RCVD_13 0x08000000L
+#define CP_NV_FLAGS_0__DISCARD_14_MASK 0x10000000L
+#define CP_NV_FLAGS_0__DISCARD_14 0x10000000L
+#define CP_NV_FLAGS_0__END_RCVD_14_MASK 0x20000000L
+#define CP_NV_FLAGS_0__END_RCVD_14 0x20000000L
+#define CP_NV_FLAGS_0__DISCARD_15_MASK 0x40000000L
+#define CP_NV_FLAGS_0__DISCARD_15 0x40000000L
+#define CP_NV_FLAGS_0__END_RCVD_15_MASK 0x80000000L
+#define CP_NV_FLAGS_0__END_RCVD_15 0x80000000L
+
+// CP_NV_FLAGS_1
+#define CP_NV_FLAGS_1__DISCARD_16_MASK 0x00000001L
+#define CP_NV_FLAGS_1__DISCARD_16 0x00000001L
+#define CP_NV_FLAGS_1__END_RCVD_16_MASK 0x00000002L
+#define CP_NV_FLAGS_1__END_RCVD_16 0x00000002L
+#define CP_NV_FLAGS_1__DISCARD_17_MASK 0x00000004L
+#define CP_NV_FLAGS_1__DISCARD_17 0x00000004L
+#define CP_NV_FLAGS_1__END_RCVD_17_MASK 0x00000008L
+#define CP_NV_FLAGS_1__END_RCVD_17 0x00000008L
+#define CP_NV_FLAGS_1__DISCARD_18_MASK 0x00000010L
+#define CP_NV_FLAGS_1__DISCARD_18 0x00000010L
+#define CP_NV_FLAGS_1__END_RCVD_18_MASK 0x00000020L
+#define CP_NV_FLAGS_1__END_RCVD_18 0x00000020L
+#define CP_NV_FLAGS_1__DISCARD_19_MASK 0x00000040L
+#define CP_NV_FLAGS_1__DISCARD_19 0x00000040L
+#define CP_NV_FLAGS_1__END_RCVD_19_MASK 0x00000080L
+#define CP_NV_FLAGS_1__END_RCVD_19 0x00000080L
+#define CP_NV_FLAGS_1__DISCARD_20_MASK 0x00000100L
+#define CP_NV_FLAGS_1__DISCARD_20 0x00000100L
+#define CP_NV_FLAGS_1__END_RCVD_20_MASK 0x00000200L
+#define CP_NV_FLAGS_1__END_RCVD_20 0x00000200L
+#define CP_NV_FLAGS_1__DISCARD_21_MASK 0x00000400L
+#define CP_NV_FLAGS_1__DISCARD_21 0x00000400L
+#define CP_NV_FLAGS_1__END_RCVD_21_MASK 0x00000800L
+#define CP_NV_FLAGS_1__END_RCVD_21 0x00000800L
+#define CP_NV_FLAGS_1__DISCARD_22_MASK 0x00001000L
+#define CP_NV_FLAGS_1__DISCARD_22 0x00001000L
+#define CP_NV_FLAGS_1__END_RCVD_22_MASK 0x00002000L
+#define CP_NV_FLAGS_1__END_RCVD_22 0x00002000L
+#define CP_NV_FLAGS_1__DISCARD_23_MASK 0x00004000L
+#define CP_NV_FLAGS_1__DISCARD_23 0x00004000L
+#define CP_NV_FLAGS_1__END_RCVD_23_MASK 0x00008000L
+#define CP_NV_FLAGS_1__END_RCVD_23 0x00008000L
+#define CP_NV_FLAGS_1__DISCARD_24_MASK 0x00010000L
+#define CP_NV_FLAGS_1__DISCARD_24 0x00010000L
+#define CP_NV_FLAGS_1__END_RCVD_24_MASK 0x00020000L
+#define CP_NV_FLAGS_1__END_RCVD_24 0x00020000L
+#define CP_NV_FLAGS_1__DISCARD_25_MASK 0x00040000L
+#define CP_NV_FLAGS_1__DISCARD_25 0x00040000L
+#define CP_NV_FLAGS_1__END_RCVD_25_MASK 0x00080000L
+#define CP_NV_FLAGS_1__END_RCVD_25 0x00080000L
+#define CP_NV_FLAGS_1__DISCARD_26_MASK 0x00100000L
+#define CP_NV_FLAGS_1__DISCARD_26 0x00100000L
+#define CP_NV_FLAGS_1__END_RCVD_26_MASK 0x00200000L
+#define CP_NV_FLAGS_1__END_RCVD_26 0x00200000L
+#define CP_NV_FLAGS_1__DISCARD_27_MASK 0x00400000L
+#define CP_NV_FLAGS_1__DISCARD_27 0x00400000L
+#define CP_NV_FLAGS_1__END_RCVD_27_MASK 0x00800000L
+#define CP_NV_FLAGS_1__END_RCVD_27 0x00800000L
+#define CP_NV_FLAGS_1__DISCARD_28_MASK 0x01000000L
+#define CP_NV_FLAGS_1__DISCARD_28 0x01000000L
+#define CP_NV_FLAGS_1__END_RCVD_28_MASK 0x02000000L
+#define CP_NV_FLAGS_1__END_RCVD_28 0x02000000L
+#define CP_NV_FLAGS_1__DISCARD_29_MASK 0x04000000L
+#define CP_NV_FLAGS_1__DISCARD_29 0x04000000L
+#define CP_NV_FLAGS_1__END_RCVD_29_MASK 0x08000000L
+#define CP_NV_FLAGS_1__END_RCVD_29 0x08000000L
+#define CP_NV_FLAGS_1__DISCARD_30_MASK 0x10000000L
+#define CP_NV_FLAGS_1__DISCARD_30 0x10000000L
+#define CP_NV_FLAGS_1__END_RCVD_30_MASK 0x20000000L
+#define CP_NV_FLAGS_1__END_RCVD_30 0x20000000L
+#define CP_NV_FLAGS_1__DISCARD_31_MASK 0x40000000L
+#define CP_NV_FLAGS_1__DISCARD_31 0x40000000L
+#define CP_NV_FLAGS_1__END_RCVD_31_MASK 0x80000000L
+#define CP_NV_FLAGS_1__END_RCVD_31 0x80000000L
+
+// CP_NV_FLAGS_2
+#define CP_NV_FLAGS_2__DISCARD_32_MASK 0x00000001L
+#define CP_NV_FLAGS_2__DISCARD_32 0x00000001L
+#define CP_NV_FLAGS_2__END_RCVD_32_MASK 0x00000002L
+#define CP_NV_FLAGS_2__END_RCVD_32 0x00000002L
+#define CP_NV_FLAGS_2__DISCARD_33_MASK 0x00000004L
+#define CP_NV_FLAGS_2__DISCARD_33 0x00000004L
+#define CP_NV_FLAGS_2__END_RCVD_33_MASK 0x00000008L
+#define CP_NV_FLAGS_2__END_RCVD_33 0x00000008L
+#define CP_NV_FLAGS_2__DISCARD_34_MASK 0x00000010L
+#define CP_NV_FLAGS_2__DISCARD_34 0x00000010L
+#define CP_NV_FLAGS_2__END_RCVD_34_MASK 0x00000020L
+#define CP_NV_FLAGS_2__END_RCVD_34 0x00000020L
+#define CP_NV_FLAGS_2__DISCARD_35_MASK 0x00000040L
+#define CP_NV_FLAGS_2__DISCARD_35 0x00000040L
+#define CP_NV_FLAGS_2__END_RCVD_35_MASK 0x00000080L
+#define CP_NV_FLAGS_2__END_RCVD_35 0x00000080L
+#define CP_NV_FLAGS_2__DISCARD_36_MASK 0x00000100L
+#define CP_NV_FLAGS_2__DISCARD_36 0x00000100L
+#define CP_NV_FLAGS_2__END_RCVD_36_MASK 0x00000200L
+#define CP_NV_FLAGS_2__END_RCVD_36 0x00000200L
+#define CP_NV_FLAGS_2__DISCARD_37_MASK 0x00000400L
+#define CP_NV_FLAGS_2__DISCARD_37 0x00000400L
+#define CP_NV_FLAGS_2__END_RCVD_37_MASK 0x00000800L
+#define CP_NV_FLAGS_2__END_RCVD_37 0x00000800L
+#define CP_NV_FLAGS_2__DISCARD_38_MASK 0x00001000L
+#define CP_NV_FLAGS_2__DISCARD_38 0x00001000L
+#define CP_NV_FLAGS_2__END_RCVD_38_MASK 0x00002000L
+#define CP_NV_FLAGS_2__END_RCVD_38 0x00002000L
+#define CP_NV_FLAGS_2__DISCARD_39_MASK 0x00004000L
+#define CP_NV_FLAGS_2__DISCARD_39 0x00004000L
+#define CP_NV_FLAGS_2__END_RCVD_39_MASK 0x00008000L
+#define CP_NV_FLAGS_2__END_RCVD_39 0x00008000L
+#define CP_NV_FLAGS_2__DISCARD_40_MASK 0x00010000L
+#define CP_NV_FLAGS_2__DISCARD_40 0x00010000L
+#define CP_NV_FLAGS_2__END_RCVD_40_MASK 0x00020000L
+#define CP_NV_FLAGS_2__END_RCVD_40 0x00020000L
+#define CP_NV_FLAGS_2__DISCARD_41_MASK 0x00040000L
+#define CP_NV_FLAGS_2__DISCARD_41 0x00040000L
+#define CP_NV_FLAGS_2__END_RCVD_41_MASK 0x00080000L
+#define CP_NV_FLAGS_2__END_RCVD_41 0x00080000L
+#define CP_NV_FLAGS_2__DISCARD_42_MASK 0x00100000L
+#define CP_NV_FLAGS_2__DISCARD_42 0x00100000L
+#define CP_NV_FLAGS_2__END_RCVD_42_MASK 0x00200000L
+#define CP_NV_FLAGS_2__END_RCVD_42 0x00200000L
+#define CP_NV_FLAGS_2__DISCARD_43_MASK 0x00400000L
+#define CP_NV_FLAGS_2__DISCARD_43 0x00400000L
+#define CP_NV_FLAGS_2__END_RCVD_43_MASK 0x00800000L
+#define CP_NV_FLAGS_2__END_RCVD_43 0x00800000L
+#define CP_NV_FLAGS_2__DISCARD_44_MASK 0x01000000L
+#define CP_NV_FLAGS_2__DISCARD_44 0x01000000L
+#define CP_NV_FLAGS_2__END_RCVD_44_MASK 0x02000000L
+#define CP_NV_FLAGS_2__END_RCVD_44 0x02000000L
+#define CP_NV_FLAGS_2__DISCARD_45_MASK 0x04000000L
+#define CP_NV_FLAGS_2__DISCARD_45 0x04000000L
+#define CP_NV_FLAGS_2__END_RCVD_45_MASK 0x08000000L
+#define CP_NV_FLAGS_2__END_RCVD_45 0x08000000L
+#define CP_NV_FLAGS_2__DISCARD_46_MASK 0x10000000L
+#define CP_NV_FLAGS_2__DISCARD_46 0x10000000L
+#define CP_NV_FLAGS_2__END_RCVD_46_MASK 0x20000000L
+#define CP_NV_FLAGS_2__END_RCVD_46 0x20000000L
+#define CP_NV_FLAGS_2__DISCARD_47_MASK 0x40000000L
+#define CP_NV_FLAGS_2__DISCARD_47 0x40000000L
+#define CP_NV_FLAGS_2__END_RCVD_47_MASK 0x80000000L
+#define CP_NV_FLAGS_2__END_RCVD_47 0x80000000L
+
+// CP_NV_FLAGS_3
+#define CP_NV_FLAGS_3__DISCARD_48_MASK 0x00000001L
+#define CP_NV_FLAGS_3__DISCARD_48 0x00000001L
+#define CP_NV_FLAGS_3__END_RCVD_48_MASK 0x00000002L
+#define CP_NV_FLAGS_3__END_RCVD_48 0x00000002L
+#define CP_NV_FLAGS_3__DISCARD_49_MASK 0x00000004L
+#define CP_NV_FLAGS_3__DISCARD_49 0x00000004L
+#define CP_NV_FLAGS_3__END_RCVD_49_MASK 0x00000008L
+#define CP_NV_FLAGS_3__END_RCVD_49 0x00000008L
+#define CP_NV_FLAGS_3__DISCARD_50_MASK 0x00000010L
+#define CP_NV_FLAGS_3__DISCARD_50 0x00000010L
+#define CP_NV_FLAGS_3__END_RCVD_50_MASK 0x00000020L
+#define CP_NV_FLAGS_3__END_RCVD_50 0x00000020L
+#define CP_NV_FLAGS_3__DISCARD_51_MASK 0x00000040L
+#define CP_NV_FLAGS_3__DISCARD_51 0x00000040L
+#define CP_NV_FLAGS_3__END_RCVD_51_MASK 0x00000080L
+#define CP_NV_FLAGS_3__END_RCVD_51 0x00000080L
+#define CP_NV_FLAGS_3__DISCARD_52_MASK 0x00000100L
+#define CP_NV_FLAGS_3__DISCARD_52 0x00000100L
+#define CP_NV_FLAGS_3__END_RCVD_52_MASK 0x00000200L
+#define CP_NV_FLAGS_3__END_RCVD_52 0x00000200L
+#define CP_NV_FLAGS_3__DISCARD_53_MASK 0x00000400L
+#define CP_NV_FLAGS_3__DISCARD_53 0x00000400L
+#define CP_NV_FLAGS_3__END_RCVD_53_MASK 0x00000800L
+#define CP_NV_FLAGS_3__END_RCVD_53 0x00000800L
+#define CP_NV_FLAGS_3__DISCARD_54_MASK 0x00001000L
+#define CP_NV_FLAGS_3__DISCARD_54 0x00001000L
+#define CP_NV_FLAGS_3__END_RCVD_54_MASK 0x00002000L
+#define CP_NV_FLAGS_3__END_RCVD_54 0x00002000L
+#define CP_NV_FLAGS_3__DISCARD_55_MASK 0x00004000L
+#define CP_NV_FLAGS_3__DISCARD_55 0x00004000L
+#define CP_NV_FLAGS_3__END_RCVD_55_MASK 0x00008000L
+#define CP_NV_FLAGS_3__END_RCVD_55 0x00008000L
+#define CP_NV_FLAGS_3__DISCARD_56_MASK 0x00010000L
+#define CP_NV_FLAGS_3__DISCARD_56 0x00010000L
+#define CP_NV_FLAGS_3__END_RCVD_56_MASK 0x00020000L
+#define CP_NV_FLAGS_3__END_RCVD_56 0x00020000L
+#define CP_NV_FLAGS_3__DISCARD_57_MASK 0x00040000L
+#define CP_NV_FLAGS_3__DISCARD_57 0x00040000L
+#define CP_NV_FLAGS_3__END_RCVD_57_MASK 0x00080000L
+#define CP_NV_FLAGS_3__END_RCVD_57 0x00080000L
+#define CP_NV_FLAGS_3__DISCARD_58_MASK 0x00100000L
+#define CP_NV_FLAGS_3__DISCARD_58 0x00100000L
+#define CP_NV_FLAGS_3__END_RCVD_58_MASK 0x00200000L
+#define CP_NV_FLAGS_3__END_RCVD_58 0x00200000L
+#define CP_NV_FLAGS_3__DISCARD_59_MASK 0x00400000L
+#define CP_NV_FLAGS_3__DISCARD_59 0x00400000L
+#define CP_NV_FLAGS_3__END_RCVD_59_MASK 0x00800000L
+#define CP_NV_FLAGS_3__END_RCVD_59 0x00800000L
+#define CP_NV_FLAGS_3__DISCARD_60_MASK 0x01000000L
+#define CP_NV_FLAGS_3__DISCARD_60 0x01000000L
+#define CP_NV_FLAGS_3__END_RCVD_60_MASK 0x02000000L
+#define CP_NV_FLAGS_3__END_RCVD_60 0x02000000L
+#define CP_NV_FLAGS_3__DISCARD_61_MASK 0x04000000L
+#define CP_NV_FLAGS_3__DISCARD_61 0x04000000L
+#define CP_NV_FLAGS_3__END_RCVD_61_MASK 0x08000000L
+#define CP_NV_FLAGS_3__END_RCVD_61 0x08000000L
+#define CP_NV_FLAGS_3__DISCARD_62_MASK 0x10000000L
+#define CP_NV_FLAGS_3__DISCARD_62 0x10000000L
+#define CP_NV_FLAGS_3__END_RCVD_62_MASK 0x20000000L
+#define CP_NV_FLAGS_3__END_RCVD_62 0x20000000L
+#define CP_NV_FLAGS_3__DISCARD_63_MASK 0x40000000L
+#define CP_NV_FLAGS_3__DISCARD_63 0x40000000L
+#define CP_NV_FLAGS_3__END_RCVD_63_MASK 0x80000000L
+#define CP_NV_FLAGS_3__END_RCVD_63 0x80000000L
+
+// CP_STATE_DEBUG_INDEX
+#define CP_STATE_DEBUG_INDEX__STATE_DEBUG_INDEX_MASK 0x0000001fL
+
+// CP_STATE_DEBUG_DATA
+#define CP_STATE_DEBUG_DATA__STATE_DEBUG_DATA_MASK 0xffffffffL
+
+// CP_PROG_COUNTER
+#define CP_PROG_COUNTER__COUNTER_MASK 0xffffffffL
+
+// CP_STAT
+#define CP_STAT__MIU_WR_BUSY_MASK 0x00000001L
+#define CP_STAT__MIU_WR_BUSY 0x00000001L
+#define CP_STAT__MIU_RD_REQ_BUSY_MASK 0x00000002L
+#define CP_STAT__MIU_RD_REQ_BUSY 0x00000002L
+#define CP_STAT__MIU_RD_RETURN_BUSY_MASK 0x00000004L
+#define CP_STAT__MIU_RD_RETURN_BUSY 0x00000004L
+#define CP_STAT__RBIU_BUSY_MASK 0x00000008L
+#define CP_STAT__RBIU_BUSY 0x00000008L
+#define CP_STAT__RCIU_BUSY_MASK 0x00000010L
+#define CP_STAT__RCIU_BUSY 0x00000010L
+#define CP_STAT__CSF_RING_BUSY_MASK 0x00000020L
+#define CP_STAT__CSF_RING_BUSY 0x00000020L
+#define CP_STAT__CSF_INDIRECTS_BUSY_MASK 0x00000040L
+#define CP_STAT__CSF_INDIRECTS_BUSY 0x00000040L
+#define CP_STAT__CSF_INDIRECT2_BUSY_MASK 0x00000080L
+#define CP_STAT__CSF_INDIRECT2_BUSY 0x00000080L
+#define CP_STAT__CSF_ST_BUSY_MASK 0x00000200L
+#define CP_STAT__CSF_ST_BUSY 0x00000200L
+#define CP_STAT__CSF_BUSY_MASK 0x00000400L
+#define CP_STAT__CSF_BUSY 0x00000400L
+#define CP_STAT__RING_QUEUE_BUSY_MASK 0x00000800L
+#define CP_STAT__RING_QUEUE_BUSY 0x00000800L
+#define CP_STAT__INDIRECTS_QUEUE_BUSY_MASK 0x00001000L
+#define CP_STAT__INDIRECTS_QUEUE_BUSY 0x00001000L
+#define CP_STAT__INDIRECT2_QUEUE_BUSY_MASK 0x00002000L
+#define CP_STAT__INDIRECT2_QUEUE_BUSY 0x00002000L
+#define CP_STAT__ST_QUEUE_BUSY_MASK 0x00010000L
+#define CP_STAT__ST_QUEUE_BUSY 0x00010000L
+#define CP_STAT__PFP_BUSY_MASK 0x00020000L
+#define CP_STAT__PFP_BUSY 0x00020000L
+#define CP_STAT__MEQ_RING_BUSY_MASK 0x00040000L
+#define CP_STAT__MEQ_RING_BUSY 0x00040000L
+#define CP_STAT__MEQ_INDIRECTS_BUSY_MASK 0x00080000L
+#define CP_STAT__MEQ_INDIRECTS_BUSY 0x00080000L
+#define CP_STAT__MEQ_INDIRECT2_BUSY_MASK 0x00100000L
+#define CP_STAT__MEQ_INDIRECT2_BUSY 0x00100000L
+#define CP_STAT__MIU_WC_STALL_MASK 0x00200000L
+#define CP_STAT__MIU_WC_STALL 0x00200000L
+#define CP_STAT__CP_NRT_BUSY_MASK 0x00400000L
+#define CP_STAT__CP_NRT_BUSY 0x00400000L
+#define CP_STAT___3D_BUSY_MASK 0x00800000L
+#define CP_STAT___3D_BUSY 0x00800000L
+#define CP_STAT__ME_BUSY_MASK 0x04000000L
+#define CP_STAT__ME_BUSY 0x04000000L
+#define CP_STAT__ME_WC_BUSY_MASK 0x20000000L
+#define CP_STAT__ME_WC_BUSY 0x20000000L
+#define CP_STAT__MIU_WC_TRACK_FIFO_EMPTY_MASK 0x40000000L
+#define CP_STAT__MIU_WC_TRACK_FIFO_EMPTY 0x40000000L
+#define CP_STAT__CP_BUSY_MASK 0x80000000L
+#define CP_STAT__CP_BUSY 0x80000000L
+
+// BIOS_0_SCRATCH
+#define BIOS_0_SCRATCH__BIOS_SCRATCH_MASK 0xffffffffL
+
+// BIOS_1_SCRATCH
+#define BIOS_1_SCRATCH__BIOS_SCRATCH_MASK 0xffffffffL
+
+// BIOS_2_SCRATCH
+#define BIOS_2_SCRATCH__BIOS_SCRATCH_MASK 0xffffffffL
+
+// BIOS_3_SCRATCH
+#define BIOS_3_SCRATCH__BIOS_SCRATCH_MASK 0xffffffffL
+
+// BIOS_4_SCRATCH
+#define BIOS_4_SCRATCH__BIOS_SCRATCH_MASK 0xffffffffL
+
+// BIOS_5_SCRATCH
+#define BIOS_5_SCRATCH__BIOS_SCRATCH_MASK 0xffffffffL
+
+// BIOS_6_SCRATCH
+#define BIOS_6_SCRATCH__BIOS_SCRATCH_MASK 0xffffffffL
+
+// BIOS_7_SCRATCH
+#define BIOS_7_SCRATCH__BIOS_SCRATCH_MASK 0xffffffffL
+
+// BIOS_8_SCRATCH
+#define BIOS_8_SCRATCH__BIOS_SCRATCH_MASK 0xffffffffL
+
+// BIOS_9_SCRATCH
+#define BIOS_9_SCRATCH__BIOS_SCRATCH_MASK 0xffffffffL
+
+// BIOS_10_SCRATCH
+#define BIOS_10_SCRATCH__BIOS_SCRATCH_MASK 0xffffffffL
+
+// BIOS_11_SCRATCH
+#define BIOS_11_SCRATCH__BIOS_SCRATCH_MASK 0xffffffffL
+
+// BIOS_12_SCRATCH
+#define BIOS_12_SCRATCH__BIOS_SCRATCH_MASK 0xffffffffL
+
+// BIOS_13_SCRATCH
+#define BIOS_13_SCRATCH__BIOS_SCRATCH_MASK 0xffffffffL
+
+// BIOS_14_SCRATCH
+#define BIOS_14_SCRATCH__BIOS_SCRATCH_MASK 0xffffffffL
+
+// BIOS_15_SCRATCH
+#define BIOS_15_SCRATCH__BIOS_SCRATCH_MASK 0xffffffffL
+
+// COHER_SIZE_PM4
+#define COHER_SIZE_PM4__SIZE_MASK 0xffffffffL
+
+// COHER_BASE_PM4
+#define COHER_BASE_PM4__BASE_MASK 0xffffffffL
+
+// COHER_STATUS_PM4
+#define COHER_STATUS_PM4__MATCHING_CONTEXTS_MASK 0x000000ffL
+#define COHER_STATUS_PM4__RB_COPY_DEST_BASE_ENA_MASK 0x00000100L
+#define COHER_STATUS_PM4__RB_COPY_DEST_BASE_ENA 0x00000100L
+#define COHER_STATUS_PM4__DEST_BASE_0_ENA_MASK 0x00000200L
+#define COHER_STATUS_PM4__DEST_BASE_0_ENA 0x00000200L
+#define COHER_STATUS_PM4__DEST_BASE_1_ENA_MASK 0x00000400L
+#define COHER_STATUS_PM4__DEST_BASE_1_ENA 0x00000400L
+#define COHER_STATUS_PM4__DEST_BASE_2_ENA_MASK 0x00000800L
+#define COHER_STATUS_PM4__DEST_BASE_2_ENA 0x00000800L
+#define COHER_STATUS_PM4__DEST_BASE_3_ENA_MASK 0x00001000L
+#define COHER_STATUS_PM4__DEST_BASE_3_ENA 0x00001000L
+#define COHER_STATUS_PM4__DEST_BASE_4_ENA_MASK 0x00002000L
+#define COHER_STATUS_PM4__DEST_BASE_4_ENA 0x00002000L
+#define COHER_STATUS_PM4__DEST_BASE_5_ENA_MASK 0x00004000L
+#define COHER_STATUS_PM4__DEST_BASE_5_ENA 0x00004000L
+#define COHER_STATUS_PM4__DEST_BASE_6_ENA_MASK 0x00008000L
+#define COHER_STATUS_PM4__DEST_BASE_6_ENA 0x00008000L
+#define COHER_STATUS_PM4__DEST_BASE_7_ENA_MASK 0x00010000L
+#define COHER_STATUS_PM4__DEST_BASE_7_ENA 0x00010000L
+#define COHER_STATUS_PM4__RB_COLOR_INFO_ENA_MASK 0x00020000L
+#define COHER_STATUS_PM4__RB_COLOR_INFO_ENA 0x00020000L
+#define COHER_STATUS_PM4__TC_ACTION_ENA_MASK 0x02000000L
+#define COHER_STATUS_PM4__TC_ACTION_ENA 0x02000000L
+#define COHER_STATUS_PM4__STATUS_MASK 0x80000000L
+#define COHER_STATUS_PM4__STATUS 0x80000000L
+
+// COHER_SIZE_HOST
+#define COHER_SIZE_HOST__SIZE_MASK 0xffffffffL
+
+// COHER_BASE_HOST
+#define COHER_BASE_HOST__BASE_MASK 0xffffffffL
+
+// COHER_STATUS_HOST
+#define COHER_STATUS_HOST__MATCHING_CONTEXTS_MASK 0x000000ffL
+#define COHER_STATUS_HOST__RB_COPY_DEST_BASE_ENA_MASK 0x00000100L
+#define COHER_STATUS_HOST__RB_COPY_DEST_BASE_ENA 0x00000100L
+#define COHER_STATUS_HOST__DEST_BASE_0_ENA_MASK 0x00000200L
+#define COHER_STATUS_HOST__DEST_BASE_0_ENA 0x00000200L
+#define COHER_STATUS_HOST__DEST_BASE_1_ENA_MASK 0x00000400L
+#define COHER_STATUS_HOST__DEST_BASE_1_ENA 0x00000400L
+#define COHER_STATUS_HOST__DEST_BASE_2_ENA_MASK 0x00000800L
+#define COHER_STATUS_HOST__DEST_BASE_2_ENA 0x00000800L
+#define COHER_STATUS_HOST__DEST_BASE_3_ENA_MASK 0x00001000L
+#define COHER_STATUS_HOST__DEST_BASE_3_ENA 0x00001000L
+#define COHER_STATUS_HOST__DEST_BASE_4_ENA_MASK 0x00002000L
+#define COHER_STATUS_HOST__DEST_BASE_4_ENA 0x00002000L
+#define COHER_STATUS_HOST__DEST_BASE_5_ENA_MASK 0x00004000L
+#define COHER_STATUS_HOST__DEST_BASE_5_ENA 0x00004000L
+#define COHER_STATUS_HOST__DEST_BASE_6_ENA_MASK 0x00008000L
+#define COHER_STATUS_HOST__DEST_BASE_6_ENA 0x00008000L
+#define COHER_STATUS_HOST__DEST_BASE_7_ENA_MASK 0x00010000L
+#define COHER_STATUS_HOST__DEST_BASE_7_ENA 0x00010000L
+#define COHER_STATUS_HOST__RB_COLOR_INFO_ENA_MASK 0x00020000L
+#define COHER_STATUS_HOST__RB_COLOR_INFO_ENA 0x00020000L
+#define COHER_STATUS_HOST__TC_ACTION_ENA_MASK 0x02000000L
+#define COHER_STATUS_HOST__TC_ACTION_ENA 0x02000000L
+#define COHER_STATUS_HOST__STATUS_MASK 0x80000000L
+#define COHER_STATUS_HOST__STATUS 0x80000000L
+
+// COHER_DEST_BASE_0
+#define COHER_DEST_BASE_0__DEST_BASE_0_MASK 0xfffff000L
+
+// COHER_DEST_BASE_1
+#define COHER_DEST_BASE_1__DEST_BASE_1_MASK 0xfffff000L
+
+// COHER_DEST_BASE_2
+#define COHER_DEST_BASE_2__DEST_BASE_2_MASK 0xfffff000L
+
+// COHER_DEST_BASE_3
+#define COHER_DEST_BASE_3__DEST_BASE_3_MASK 0xfffff000L
+
+// COHER_DEST_BASE_4
+#define COHER_DEST_BASE_4__DEST_BASE_4_MASK 0xfffff000L
+
+// COHER_DEST_BASE_5
+#define COHER_DEST_BASE_5__DEST_BASE_5_MASK 0xfffff000L
+
+// COHER_DEST_BASE_6
+#define COHER_DEST_BASE_6__DEST_BASE_6_MASK 0xfffff000L
+
+// COHER_DEST_BASE_7
+#define COHER_DEST_BASE_7__DEST_BASE_7_MASK 0xfffff000L
+
+// RB_SURFACE_INFO
+#define RB_SURFACE_INFO__SURFACE_PITCH_MASK 0x00003fffL
+#define RB_SURFACE_INFO__MSAA_SAMPLES_MASK 0x0000c000L
+
+// RB_COLOR_INFO
+#define RB_COLOR_INFO__COLOR_FORMAT_MASK 0x0000000fL
+#define RB_COLOR_INFO__COLOR_ROUND_MODE_MASK 0x00000030L
+#define RB_COLOR_INFO__COLOR_LINEAR_MASK 0x00000040L
+#define RB_COLOR_INFO__COLOR_LINEAR 0x00000040L
+#define RB_COLOR_INFO__COLOR_ENDIAN_MASK 0x00000180L
+#define RB_COLOR_INFO__COLOR_SWAP_MASK 0x00000600L
+#define RB_COLOR_INFO__COLOR_BASE_MASK 0xfffff000L
+
+// RB_DEPTH_INFO
+#define RB_DEPTH_INFO__DEPTH_FORMAT_MASK 0x00000001L
+#define RB_DEPTH_INFO__DEPTH_FORMAT 0x00000001L
+#define RB_DEPTH_INFO__DEPTH_BASE_MASK 0xfffff000L
+
+// RB_STENCILREFMASK
+#define RB_STENCILREFMASK__STENCILREF_MASK 0x000000ffL
+#define RB_STENCILREFMASK__STENCILMASK_MASK 0x0000ff00L
+#define RB_STENCILREFMASK__STENCILWRITEMASK_MASK 0x00ff0000L
+#define RB_STENCILREFMASK__RESERVED0_MASK 0x01000000L
+#define RB_STENCILREFMASK__RESERVED0 0x01000000L
+#define RB_STENCILREFMASK__RESERVED1_MASK 0x02000000L
+#define RB_STENCILREFMASK__RESERVED1 0x02000000L
+
+// RB_ALPHA_REF
+#define RB_ALPHA_REF__ALPHA_REF_MASK 0xffffffffL
+
+// RB_COLOR_MASK
+#define RB_COLOR_MASK__WRITE_RED_MASK 0x00000001L
+#define RB_COLOR_MASK__WRITE_RED 0x00000001L
+#define RB_COLOR_MASK__WRITE_GREEN_MASK 0x00000002L
+#define RB_COLOR_MASK__WRITE_GREEN 0x00000002L
+#define RB_COLOR_MASK__WRITE_BLUE_MASK 0x00000004L
+#define RB_COLOR_MASK__WRITE_BLUE 0x00000004L
+#define RB_COLOR_MASK__WRITE_ALPHA_MASK 0x00000008L
+#define RB_COLOR_MASK__WRITE_ALPHA 0x00000008L
+#define RB_COLOR_MASK__RESERVED2_MASK 0x00000010L
+#define RB_COLOR_MASK__RESERVED2 0x00000010L
+#define RB_COLOR_MASK__RESERVED3_MASK 0x00000020L
+#define RB_COLOR_MASK__RESERVED3 0x00000020L
+
+// RB_BLEND_RED
+#define RB_BLEND_RED__BLEND_RED_MASK 0x000000ffL
+
+// RB_BLEND_GREEN
+#define RB_BLEND_GREEN__BLEND_GREEN_MASK 0x000000ffL
+
+// RB_BLEND_BLUE
+#define RB_BLEND_BLUE__BLEND_BLUE_MASK 0x000000ffL
+
+// RB_BLEND_ALPHA
+#define RB_BLEND_ALPHA__BLEND_ALPHA_MASK 0x000000ffL
+
+// RB_FOG_COLOR
+#define RB_FOG_COLOR__FOG_RED_MASK 0x000000ffL
+#define RB_FOG_COLOR__FOG_GREEN_MASK 0x0000ff00L
+#define RB_FOG_COLOR__FOG_BLUE_MASK 0x00ff0000L
+
+// RB_STENCILREFMASK_BF
+#define RB_STENCILREFMASK_BF__STENCILREF_BF_MASK 0x000000ffL
+#define RB_STENCILREFMASK_BF__STENCILMASK_BF_MASK 0x0000ff00L
+#define RB_STENCILREFMASK_BF__STENCILWRITEMASK_BF_MASK 0x00ff0000L
+#define RB_STENCILREFMASK_BF__RESERVED4_MASK 0x01000000L
+#define RB_STENCILREFMASK_BF__RESERVED4 0x01000000L
+#define RB_STENCILREFMASK_BF__RESERVED5_MASK 0x02000000L
+#define RB_STENCILREFMASK_BF__RESERVED5 0x02000000L
+
+// RB_DEPTHCONTROL
+#define RB_DEPTHCONTROL__STENCIL_ENABLE_MASK 0x00000001L
+#define RB_DEPTHCONTROL__STENCIL_ENABLE 0x00000001L
+#define RB_DEPTHCONTROL__Z_ENABLE_MASK 0x00000002L
+#define RB_DEPTHCONTROL__Z_ENABLE 0x00000002L
+#define RB_DEPTHCONTROL__Z_WRITE_ENABLE_MASK 0x00000004L
+#define RB_DEPTHCONTROL__Z_WRITE_ENABLE 0x00000004L
+#define RB_DEPTHCONTROL__EARLY_Z_ENABLE_MASK 0x00000008L
+#define RB_DEPTHCONTROL__EARLY_Z_ENABLE 0x00000008L
+#define RB_DEPTHCONTROL__ZFUNC_MASK 0x00000070L
+#define RB_DEPTHCONTROL__BACKFACE_ENABLE_MASK 0x00000080L
+#define RB_DEPTHCONTROL__BACKFACE_ENABLE 0x00000080L
+#define RB_DEPTHCONTROL__STENCILFUNC_MASK 0x00000700L
+#define RB_DEPTHCONTROL__STENCILFAIL_MASK 0x00003800L
+#define RB_DEPTHCONTROL__STENCILZPASS_MASK 0x0001c000L
+#define RB_DEPTHCONTROL__STENCILZFAIL_MASK 0x000e0000L
+#define RB_DEPTHCONTROL__STENCILFUNC_BF_MASK 0x00700000L
+#define RB_DEPTHCONTROL__STENCILFAIL_BF_MASK 0x03800000L
+#define RB_DEPTHCONTROL__STENCILZPASS_BF_MASK 0x1c000000L
+#define RB_DEPTHCONTROL__STENCILZFAIL_BF_MASK 0xe0000000L
+
+// RB_BLENDCONTROL
+#define RB_BLENDCONTROL__COLOR_SRCBLEND_MASK 0x0000001fL
+#define RB_BLENDCONTROL__COLOR_COMB_FCN_MASK 0x000000e0L
+#define RB_BLENDCONTROL__COLOR_DESTBLEND_MASK 0x00001f00L
+#define RB_BLENDCONTROL__ALPHA_SRCBLEND_MASK 0x001f0000L
+#define RB_BLENDCONTROL__ALPHA_COMB_FCN_MASK 0x00e00000L
+#define RB_BLENDCONTROL__ALPHA_DESTBLEND_MASK 0x1f000000L
+#define RB_BLENDCONTROL__BLEND_FORCE_ENABLE_MASK 0x20000000L
+#define RB_BLENDCONTROL__BLEND_FORCE_ENABLE 0x20000000L
+#define RB_BLENDCONTROL__BLEND_FORCE_MASK 0x40000000L
+#define RB_BLENDCONTROL__BLEND_FORCE 0x40000000L
+
+// RB_COLORCONTROL
+#define RB_COLORCONTROL__ALPHA_FUNC_MASK 0x00000007L
+#define RB_COLORCONTROL__ALPHA_TEST_ENABLE_MASK 0x00000008L
+#define RB_COLORCONTROL__ALPHA_TEST_ENABLE 0x00000008L
+#define RB_COLORCONTROL__ALPHA_TO_MASK_ENABLE_MASK 0x00000010L
+#define RB_COLORCONTROL__ALPHA_TO_MASK_ENABLE 0x00000010L
+#define RB_COLORCONTROL__BLEND_DISABLE_MASK 0x00000020L
+#define RB_COLORCONTROL__BLEND_DISABLE 0x00000020L
+#define RB_COLORCONTROL__FOG_ENABLE_MASK 0x00000040L
+#define RB_COLORCONTROL__FOG_ENABLE 0x00000040L
+#define RB_COLORCONTROL__VS_EXPORTS_FOG_MASK 0x00000080L
+#define RB_COLORCONTROL__VS_EXPORTS_FOG 0x00000080L
+#define RB_COLORCONTROL__ROP_CODE_MASK 0x00000f00L
+#define RB_COLORCONTROL__DITHER_MODE_MASK 0x00003000L
+#define RB_COLORCONTROL__DITHER_TYPE_MASK 0x0000c000L
+#define RB_COLORCONTROL__PIXEL_FOG_MASK 0x00010000L
+#define RB_COLORCONTROL__PIXEL_FOG 0x00010000L
+#define RB_COLORCONTROL__ALPHA_TO_MASK_OFFSET0_MASK 0x03000000L
+#define RB_COLORCONTROL__ALPHA_TO_MASK_OFFSET1_MASK 0x0c000000L
+#define RB_COLORCONTROL__ALPHA_TO_MASK_OFFSET2_MASK 0x30000000L
+#define RB_COLORCONTROL__ALPHA_TO_MASK_OFFSET3_MASK 0xc0000000L
+
+// RB_MODECONTROL
+#define RB_MODECONTROL__EDRAM_MODE_MASK 0x00000007L
+
+// RB_COLOR_DEST_MASK
+#define RB_COLOR_DEST_MASK__COLOR_DEST_MASK_MASK 0xffffffffL
+
+// RB_COPY_CONTROL
+#define RB_COPY_CONTROL__COPY_SAMPLE_SELECT_MASK 0x00000007L
+#define RB_COPY_CONTROL__DEPTH_CLEAR_ENABLE_MASK 0x00000008L
+#define RB_COPY_CONTROL__DEPTH_CLEAR_ENABLE 0x00000008L
+#define RB_COPY_CONTROL__CLEAR_MASK_MASK 0x000000f0L
+
+// RB_COPY_DEST_BASE
+#define RB_COPY_DEST_BASE__COPY_DEST_BASE_MASK 0xfffff000L
+
+// RB_COPY_DEST_PITCH
+#define RB_COPY_DEST_PITCH__COPY_DEST_PITCH_MASK 0x000001ffL
+
+// RB_COPY_DEST_INFO
+#define RB_COPY_DEST_INFO__COPY_DEST_ENDIAN_MASK 0x00000007L
+#define RB_COPY_DEST_INFO__COPY_DEST_LINEAR_MASK 0x00000008L
+#define RB_COPY_DEST_INFO__COPY_DEST_LINEAR 0x00000008L
+#define RB_COPY_DEST_INFO__COPY_DEST_FORMAT_MASK 0x000000f0L
+#define RB_COPY_DEST_INFO__COPY_DEST_SWAP_MASK 0x00000300L
+#define RB_COPY_DEST_INFO__COPY_DEST_DITHER_MODE_MASK 0x00000c00L
+#define RB_COPY_DEST_INFO__COPY_DEST_DITHER_TYPE_MASK 0x00003000L
+#define RB_COPY_DEST_INFO__COPY_MASK_WRITE_RED_MASK 0x00004000L
+#define RB_COPY_DEST_INFO__COPY_MASK_WRITE_RED 0x00004000L
+#define RB_COPY_DEST_INFO__COPY_MASK_WRITE_GREEN_MASK 0x00008000L
+#define RB_COPY_DEST_INFO__COPY_MASK_WRITE_GREEN 0x00008000L
+#define RB_COPY_DEST_INFO__COPY_MASK_WRITE_BLUE_MASK 0x00010000L
+#define RB_COPY_DEST_INFO__COPY_MASK_WRITE_BLUE 0x00010000L
+#define RB_COPY_DEST_INFO__COPY_MASK_WRITE_ALPHA_MASK 0x00020000L
+#define RB_COPY_DEST_INFO__COPY_MASK_WRITE_ALPHA 0x00020000L
+
+// RB_COPY_DEST_PIXEL_OFFSET
+#define RB_COPY_DEST_PIXEL_OFFSET__OFFSET_X_MASK 0x00001fffL
+#define RB_COPY_DEST_PIXEL_OFFSET__OFFSET_Y_MASK 0x03ffe000L
+
+// RB_DEPTH_CLEAR
+#define RB_DEPTH_CLEAR__DEPTH_CLEAR_MASK 0xffffffffL
+
+// RB_SAMPLE_COUNT_CTL
+#define RB_SAMPLE_COUNT_CTL__RESET_SAMPLE_COUNT_MASK 0x00000001L
+#define RB_SAMPLE_COUNT_CTL__RESET_SAMPLE_COUNT 0x00000001L
+#define RB_SAMPLE_COUNT_CTL__COPY_SAMPLE_COUNT_MASK 0x00000002L
+#define RB_SAMPLE_COUNT_CTL__COPY_SAMPLE_COUNT 0x00000002L
+
+// RB_SAMPLE_COUNT_ADDR
+#define RB_SAMPLE_COUNT_ADDR__SAMPLE_COUNT_ADDR_MASK 0xffffffffL
+
+// RB_BC_CONTROL
+#define RB_BC_CONTROL__ACCUM_LINEAR_MODE_ENABLE_MASK 0x00000001L
+#define RB_BC_CONTROL__ACCUM_LINEAR_MODE_ENABLE 0x00000001L
+#define RB_BC_CONTROL__ACCUM_TIMEOUT_SELECT_MASK 0x00000006L
+#define RB_BC_CONTROL__DISABLE_EDRAM_CAM_MASK 0x00000008L
+#define RB_BC_CONTROL__DISABLE_EDRAM_CAM 0x00000008L
+#define RB_BC_CONTROL__DISABLE_EZ_FAST_CONTEXT_SWITCH_MASK 0x00000010L
+#define RB_BC_CONTROL__DISABLE_EZ_FAST_CONTEXT_SWITCH 0x00000010L
+#define RB_BC_CONTROL__DISABLE_EZ_NULL_ZCMD_DROP_MASK 0x00000020L
+#define RB_BC_CONTROL__DISABLE_EZ_NULL_ZCMD_DROP 0x00000020L
+#define RB_BC_CONTROL__DISABLE_LZ_NULL_ZCMD_DROP_MASK 0x00000040L
+#define RB_BC_CONTROL__DISABLE_LZ_NULL_ZCMD_DROP 0x00000040L
+#define RB_BC_CONTROL__ENABLE_AZ_THROTTLE_MASK 0x00000080L
+#define RB_BC_CONTROL__ENABLE_AZ_THROTTLE 0x00000080L
+#define RB_BC_CONTROL__AZ_THROTTLE_COUNT_MASK 0x00001f00L
+#define RB_BC_CONTROL__ENABLE_CRC_UPDATE_MASK 0x00004000L
+#define RB_BC_CONTROL__ENABLE_CRC_UPDATE 0x00004000L
+#define RB_BC_CONTROL__CRC_MODE_MASK 0x00008000L
+#define RB_BC_CONTROL__CRC_MODE 0x00008000L
+#define RB_BC_CONTROL__DISABLE_SAMPLE_COUNTERS_MASK 0x00010000L
+#define RB_BC_CONTROL__DISABLE_SAMPLE_COUNTERS 0x00010000L
+#define RB_BC_CONTROL__DISABLE_ACCUM_MASK 0x00020000L
+#define RB_BC_CONTROL__DISABLE_ACCUM 0x00020000L
+#define RB_BC_CONTROL__ACCUM_ALLOC_MASK_MASK 0x003c0000L
+#define RB_BC_CONTROL__LINEAR_PERFORMANCE_ENABLE_MASK 0x00400000L
+#define RB_BC_CONTROL__LINEAR_PERFORMANCE_ENABLE 0x00400000L
+#define RB_BC_CONTROL__ACCUM_DATA_FIFO_LIMIT_MASK 0x07800000L
+#define RB_BC_CONTROL__MEM_EXPORT_TIMEOUT_SELECT_MASK 0x18000000L
+#define RB_BC_CONTROL__MEM_EXPORT_LINEAR_MODE_ENABLE_MASK 0x20000000L
+#define RB_BC_CONTROL__MEM_EXPORT_LINEAR_MODE_ENABLE 0x20000000L
+#define RB_BC_CONTROL__CRC_SYSTEM_MASK 0x40000000L
+#define RB_BC_CONTROL__CRC_SYSTEM 0x40000000L
+#define RB_BC_CONTROL__RESERVED6_MASK 0x80000000L
+#define RB_BC_CONTROL__RESERVED6 0x80000000L
+
+// RB_EDRAM_INFO
+#define RB_EDRAM_INFO__EDRAM_SIZE_MASK 0x0000000fL
+#define RB_EDRAM_INFO__EDRAM_MAPPING_MODE_MASK 0x00000030L
+#define RB_EDRAM_INFO__EDRAM_RANGE_MASK 0xffffc000L
+
+// RB_CRC_RD_PORT
+#define RB_CRC_RD_PORT__CRC_DATA_MASK 0xffffffffL
+
+// RB_CRC_CONTROL
+#define RB_CRC_CONTROL__CRC_RD_ADVANCE_MASK 0x00000001L
+#define RB_CRC_CONTROL__CRC_RD_ADVANCE 0x00000001L
+
+// RB_CRC_MASK
+#define RB_CRC_MASK__CRC_MASK_MASK 0xffffffffL
+
+// RB_PERFCOUNTER0_SELECT
+#define RB_PERFCOUNTER0_SELECT__PERF_SEL_MASK 0x000000ffL
+
+// RB_PERFCOUNTER0_LOW
+#define RB_PERFCOUNTER0_LOW__PERF_COUNT_MASK 0xffffffffL
+
+// RB_PERFCOUNTER0_HI
+#define RB_PERFCOUNTER0_HI__PERF_COUNT_MASK 0x0000ffffL
+
+// RB_TOTAL_SAMPLES
+#define RB_TOTAL_SAMPLES__TOTAL_SAMPLES_MASK 0xffffffffL
+
+// RB_ZPASS_SAMPLES
+#define RB_ZPASS_SAMPLES__ZPASS_SAMPLES_MASK 0xffffffffL
+
+// RB_ZFAIL_SAMPLES
+#define RB_ZFAIL_SAMPLES__ZFAIL_SAMPLES_MASK 0xffffffffL
+
+// RB_SFAIL_SAMPLES
+#define RB_SFAIL_SAMPLES__SFAIL_SAMPLES_MASK 0xffffffffL
+
+// RB_DEBUG_0
+#define RB_DEBUG_0__RDREQ_CTL_Z1_PRE_FULL_MASK 0x00000001L
+#define RB_DEBUG_0__RDREQ_CTL_Z1_PRE_FULL 0x00000001L
+#define RB_DEBUG_0__RDREQ_CTL_Z0_PRE_FULL_MASK 0x00000002L
+#define RB_DEBUG_0__RDREQ_CTL_Z0_PRE_FULL 0x00000002L
+#define RB_DEBUG_0__RDREQ_CTL_C1_PRE_FULL_MASK 0x00000004L
+#define RB_DEBUG_0__RDREQ_CTL_C1_PRE_FULL 0x00000004L
+#define RB_DEBUG_0__RDREQ_CTL_C0_PRE_FULL_MASK 0x00000008L
+#define RB_DEBUG_0__RDREQ_CTL_C0_PRE_FULL 0x00000008L
+#define RB_DEBUG_0__RDREQ_E1_ORDERING_FULL_MASK 0x00000010L
+#define RB_DEBUG_0__RDREQ_E1_ORDERING_FULL 0x00000010L
+#define RB_DEBUG_0__RDREQ_E0_ORDERING_FULL_MASK 0x00000020L
+#define RB_DEBUG_0__RDREQ_E0_ORDERING_FULL 0x00000020L
+#define RB_DEBUG_0__RDREQ_Z1_FULL_MASK 0x00000040L
+#define RB_DEBUG_0__RDREQ_Z1_FULL 0x00000040L
+#define RB_DEBUG_0__RDREQ_Z0_FULL_MASK 0x00000080L
+#define RB_DEBUG_0__RDREQ_Z0_FULL 0x00000080L
+#define RB_DEBUG_0__RDREQ_C1_FULL_MASK 0x00000100L
+#define RB_DEBUG_0__RDREQ_C1_FULL 0x00000100L
+#define RB_DEBUG_0__RDREQ_C0_FULL_MASK 0x00000200L
+#define RB_DEBUG_0__RDREQ_C0_FULL 0x00000200L
+#define RB_DEBUG_0__WRREQ_E1_MACRO_HI_FULL_MASK 0x00000400L
+#define RB_DEBUG_0__WRREQ_E1_MACRO_HI_FULL 0x00000400L
+#define RB_DEBUG_0__WRREQ_E1_MACRO_LO_FULL_MASK 0x00000800L
+#define RB_DEBUG_0__WRREQ_E1_MACRO_LO_FULL 0x00000800L
+#define RB_DEBUG_0__WRREQ_E0_MACRO_HI_FULL_MASK 0x00001000L
+#define RB_DEBUG_0__WRREQ_E0_MACRO_HI_FULL 0x00001000L
+#define RB_DEBUG_0__WRREQ_E0_MACRO_LO_FULL_MASK 0x00002000L
+#define RB_DEBUG_0__WRREQ_E0_MACRO_LO_FULL 0x00002000L
+#define RB_DEBUG_0__WRREQ_C_WE_HI_FULL_MASK 0x00004000L
+#define RB_DEBUG_0__WRREQ_C_WE_HI_FULL 0x00004000L
+#define RB_DEBUG_0__WRREQ_C_WE_LO_FULL_MASK 0x00008000L
+#define RB_DEBUG_0__WRREQ_C_WE_LO_FULL 0x00008000L
+#define RB_DEBUG_0__WRREQ_Z1_FULL_MASK 0x00010000L
+#define RB_DEBUG_0__WRREQ_Z1_FULL 0x00010000L
+#define RB_DEBUG_0__WRREQ_Z0_FULL_MASK 0x00020000L
+#define RB_DEBUG_0__WRREQ_Z0_FULL 0x00020000L
+#define RB_DEBUG_0__WRREQ_C1_FULL_MASK 0x00040000L
+#define RB_DEBUG_0__WRREQ_C1_FULL 0x00040000L
+#define RB_DEBUG_0__WRREQ_C0_FULL_MASK 0x00080000L
+#define RB_DEBUG_0__WRREQ_C0_FULL 0x00080000L
+#define RB_DEBUG_0__CMDFIFO_Z1_HOLD_FULL_MASK 0x00100000L
+#define RB_DEBUG_0__CMDFIFO_Z1_HOLD_FULL 0x00100000L
+#define RB_DEBUG_0__CMDFIFO_Z0_HOLD_FULL_MASK 0x00200000L
+#define RB_DEBUG_0__CMDFIFO_Z0_HOLD_FULL 0x00200000L
+#define RB_DEBUG_0__CMDFIFO_C1_HOLD_FULL_MASK 0x00400000L
+#define RB_DEBUG_0__CMDFIFO_C1_HOLD_FULL 0x00400000L
+#define RB_DEBUG_0__CMDFIFO_C0_HOLD_FULL_MASK 0x00800000L
+#define RB_DEBUG_0__CMDFIFO_C0_HOLD_FULL 0x00800000L
+#define RB_DEBUG_0__CMDFIFO_Z_ORDERING_FULL_MASK 0x01000000L
+#define RB_DEBUG_0__CMDFIFO_Z_ORDERING_FULL 0x01000000L
+#define RB_DEBUG_0__CMDFIFO_C_ORDERING_FULL_MASK 0x02000000L
+#define RB_DEBUG_0__CMDFIFO_C_ORDERING_FULL 0x02000000L
+#define RB_DEBUG_0__C_SX_LAT_FULL_MASK 0x04000000L
+#define RB_DEBUG_0__C_SX_LAT_FULL 0x04000000L
+#define RB_DEBUG_0__C_SX_CMD_FULL_MASK 0x08000000L
+#define RB_DEBUG_0__C_SX_CMD_FULL 0x08000000L
+#define RB_DEBUG_0__C_EZ_TILE_FULL_MASK 0x10000000L
+#define RB_DEBUG_0__C_EZ_TILE_FULL 0x10000000L
+#define RB_DEBUG_0__C_REQ_FULL_MASK 0x20000000L
+#define RB_DEBUG_0__C_REQ_FULL 0x20000000L
+#define RB_DEBUG_0__C_MASK_FULL_MASK 0x40000000L
+#define RB_DEBUG_0__C_MASK_FULL 0x40000000L
+#define RB_DEBUG_0__EZ_INFSAMP_FULL_MASK 0x80000000L
+#define RB_DEBUG_0__EZ_INFSAMP_FULL 0x80000000L
+
+// RB_DEBUG_1
+#define RB_DEBUG_1__RDREQ_Z1_CMD_EMPTY_MASK 0x00000001L
+#define RB_DEBUG_1__RDREQ_Z1_CMD_EMPTY 0x00000001L
+#define RB_DEBUG_1__RDREQ_Z0_CMD_EMPTY_MASK 0x00000002L
+#define RB_DEBUG_1__RDREQ_Z0_CMD_EMPTY 0x00000002L
+#define RB_DEBUG_1__RDREQ_C1_CMD_EMPTY_MASK 0x00000004L
+#define RB_DEBUG_1__RDREQ_C1_CMD_EMPTY 0x00000004L
+#define RB_DEBUG_1__RDREQ_C0_CMD_EMPTY_MASK 0x00000008L
+#define RB_DEBUG_1__RDREQ_C0_CMD_EMPTY 0x00000008L
+#define RB_DEBUG_1__RDREQ_E1_ORDERING_EMPTY_MASK 0x00000010L
+#define RB_DEBUG_1__RDREQ_E1_ORDERING_EMPTY 0x00000010L
+#define RB_DEBUG_1__RDREQ_E0_ORDERING_EMPTY_MASK 0x00000020L
+#define RB_DEBUG_1__RDREQ_E0_ORDERING_EMPTY 0x00000020L
+#define RB_DEBUG_1__RDREQ_Z1_EMPTY_MASK 0x00000040L
+#define RB_DEBUG_1__RDREQ_Z1_EMPTY 0x00000040L
+#define RB_DEBUG_1__RDREQ_Z0_EMPTY_MASK 0x00000080L
+#define RB_DEBUG_1__RDREQ_Z0_EMPTY 0x00000080L
+#define RB_DEBUG_1__RDREQ_C1_EMPTY_MASK 0x00000100L
+#define RB_DEBUG_1__RDREQ_C1_EMPTY 0x00000100L
+#define RB_DEBUG_1__RDREQ_C0_EMPTY_MASK 0x00000200L
+#define RB_DEBUG_1__RDREQ_C0_EMPTY 0x00000200L
+#define RB_DEBUG_1__WRREQ_E1_MACRO_HI_EMPTY_MASK 0x00000400L
+#define RB_DEBUG_1__WRREQ_E1_MACRO_HI_EMPTY 0x00000400L
+#define RB_DEBUG_1__WRREQ_E1_MACRO_LO_EMPTY_MASK 0x00000800L
+#define RB_DEBUG_1__WRREQ_E1_MACRO_LO_EMPTY 0x00000800L
+#define RB_DEBUG_1__WRREQ_E0_MACRO_HI_EMPTY_MASK 0x00001000L
+#define RB_DEBUG_1__WRREQ_E0_MACRO_HI_EMPTY 0x00001000L
+#define RB_DEBUG_1__WRREQ_E0_MACRO_LO_EMPTY_MASK 0x00002000L
+#define RB_DEBUG_1__WRREQ_E0_MACRO_LO_EMPTY 0x00002000L
+#define RB_DEBUG_1__WRREQ_C_WE_HI_EMPTY_MASK 0x00004000L
+#define RB_DEBUG_1__WRREQ_C_WE_HI_EMPTY 0x00004000L
+#define RB_DEBUG_1__WRREQ_C_WE_LO_EMPTY_MASK 0x00008000L
+#define RB_DEBUG_1__WRREQ_C_WE_LO_EMPTY 0x00008000L
+#define RB_DEBUG_1__WRREQ_Z1_EMPTY_MASK 0x00010000L
+#define RB_DEBUG_1__WRREQ_Z1_EMPTY 0x00010000L
+#define RB_DEBUG_1__WRREQ_Z0_EMPTY_MASK 0x00020000L
+#define RB_DEBUG_1__WRREQ_Z0_EMPTY 0x00020000L
+#define RB_DEBUG_1__WRREQ_C1_PRE_EMPTY_MASK 0x00040000L
+#define RB_DEBUG_1__WRREQ_C1_PRE_EMPTY 0x00040000L
+#define RB_DEBUG_1__WRREQ_C0_PRE_EMPTY_MASK 0x00080000L
+#define RB_DEBUG_1__WRREQ_C0_PRE_EMPTY 0x00080000L
+#define RB_DEBUG_1__CMDFIFO_Z1_HOLD_EMPTY_MASK 0x00100000L
+#define RB_DEBUG_1__CMDFIFO_Z1_HOLD_EMPTY 0x00100000L
+#define RB_DEBUG_1__CMDFIFO_Z0_HOLD_EMPTY_MASK 0x00200000L
+#define RB_DEBUG_1__CMDFIFO_Z0_HOLD_EMPTY 0x00200000L
+#define RB_DEBUG_1__CMDFIFO_C1_HOLD_EMPTY_MASK 0x00400000L
+#define RB_DEBUG_1__CMDFIFO_C1_HOLD_EMPTY 0x00400000L
+#define RB_DEBUG_1__CMDFIFO_C0_HOLD_EMPTY_MASK 0x00800000L
+#define RB_DEBUG_1__CMDFIFO_C0_HOLD_EMPTY 0x00800000L
+#define RB_DEBUG_1__CMDFIFO_Z_ORDERING_EMPTY_MASK 0x01000000L
+#define RB_DEBUG_1__CMDFIFO_Z_ORDERING_EMPTY 0x01000000L
+#define RB_DEBUG_1__CMDFIFO_C_ORDERING_EMPTY_MASK 0x02000000L
+#define RB_DEBUG_1__CMDFIFO_C_ORDERING_EMPTY 0x02000000L
+#define RB_DEBUG_1__C_SX_LAT_EMPTY_MASK 0x04000000L
+#define RB_DEBUG_1__C_SX_LAT_EMPTY 0x04000000L
+#define RB_DEBUG_1__C_SX_CMD_EMPTY_MASK 0x08000000L
+#define RB_DEBUG_1__C_SX_CMD_EMPTY 0x08000000L
+#define RB_DEBUG_1__C_EZ_TILE_EMPTY_MASK 0x10000000L
+#define RB_DEBUG_1__C_EZ_TILE_EMPTY 0x10000000L
+#define RB_DEBUG_1__C_REQ_EMPTY_MASK 0x20000000L
+#define RB_DEBUG_1__C_REQ_EMPTY 0x20000000L
+#define RB_DEBUG_1__C_MASK_EMPTY_MASK 0x40000000L
+#define RB_DEBUG_1__C_MASK_EMPTY 0x40000000L
+#define RB_DEBUG_1__EZ_INFSAMP_EMPTY_MASK 0x80000000L
+#define RB_DEBUG_1__EZ_INFSAMP_EMPTY 0x80000000L
+
+// RB_DEBUG_2
+#define RB_DEBUG_2__TILE_FIFO_COUNT_MASK 0x0000000fL
+#define RB_DEBUG_2__SX_LAT_FIFO_COUNT_MASK 0x000007f0L
+#define RB_DEBUG_2__MEM_EXPORT_FLAG_MASK 0x00000800L
+#define RB_DEBUG_2__MEM_EXPORT_FLAG 0x00000800L
+#define RB_DEBUG_2__SYSMEM_BLEND_FLAG_MASK 0x00001000L
+#define RB_DEBUG_2__SYSMEM_BLEND_FLAG 0x00001000L
+#define RB_DEBUG_2__CURRENT_TILE_EVENT_MASK 0x00002000L
+#define RB_DEBUG_2__CURRENT_TILE_EVENT 0x00002000L
+#define RB_DEBUG_2__EZ_INFTILE_FULL_MASK 0x00004000L
+#define RB_DEBUG_2__EZ_INFTILE_FULL 0x00004000L
+#define RB_DEBUG_2__EZ_MASK_LOWER_FULL_MASK 0x00008000L
+#define RB_DEBUG_2__EZ_MASK_LOWER_FULL 0x00008000L
+#define RB_DEBUG_2__EZ_MASK_UPPER_FULL_MASK 0x00010000L
+#define RB_DEBUG_2__EZ_MASK_UPPER_FULL 0x00010000L
+#define RB_DEBUG_2__Z0_MASK_FULL_MASK 0x00020000L
+#define RB_DEBUG_2__Z0_MASK_FULL 0x00020000L
+#define RB_DEBUG_2__Z1_MASK_FULL_MASK 0x00040000L
+#define RB_DEBUG_2__Z1_MASK_FULL 0x00040000L
+#define RB_DEBUG_2__Z0_REQ_FULL_MASK 0x00080000L
+#define RB_DEBUG_2__Z0_REQ_FULL 0x00080000L
+#define RB_DEBUG_2__Z1_REQ_FULL_MASK 0x00100000L
+#define RB_DEBUG_2__Z1_REQ_FULL 0x00100000L
+#define RB_DEBUG_2__Z_SAMP_FULL_MASK 0x00200000L
+#define RB_DEBUG_2__Z_SAMP_FULL 0x00200000L
+#define RB_DEBUG_2__Z_TILE_FULL_MASK 0x00400000L
+#define RB_DEBUG_2__Z_TILE_FULL 0x00400000L
+#define RB_DEBUG_2__EZ_INFTILE_EMPTY_MASK 0x00800000L
+#define RB_DEBUG_2__EZ_INFTILE_EMPTY 0x00800000L
+#define RB_DEBUG_2__EZ_MASK_LOWER_EMPTY_MASK 0x01000000L
+#define RB_DEBUG_2__EZ_MASK_LOWER_EMPTY 0x01000000L
+#define RB_DEBUG_2__EZ_MASK_UPPER_EMPTY_MASK 0x02000000L
+#define RB_DEBUG_2__EZ_MASK_UPPER_EMPTY 0x02000000L
+#define RB_DEBUG_2__Z0_MASK_EMPTY_MASK 0x04000000L
+#define RB_DEBUG_2__Z0_MASK_EMPTY 0x04000000L
+#define RB_DEBUG_2__Z1_MASK_EMPTY_MASK 0x08000000L
+#define RB_DEBUG_2__Z1_MASK_EMPTY 0x08000000L
+#define RB_DEBUG_2__Z0_REQ_EMPTY_MASK 0x10000000L
+#define RB_DEBUG_2__Z0_REQ_EMPTY 0x10000000L
+#define RB_DEBUG_2__Z1_REQ_EMPTY_MASK 0x20000000L
+#define RB_DEBUG_2__Z1_REQ_EMPTY 0x20000000L
+#define RB_DEBUG_2__Z_SAMP_EMPTY_MASK 0x40000000L
+#define RB_DEBUG_2__Z_SAMP_EMPTY 0x40000000L
+#define RB_DEBUG_2__Z_TILE_EMPTY_MASK 0x80000000L
+#define RB_DEBUG_2__Z_TILE_EMPTY 0x80000000L
+
+// RB_DEBUG_3
+#define RB_DEBUG_3__ACCUM_VALID_MASK 0x0000000fL
+#define RB_DEBUG_3__ACCUM_FLUSHING_MASK 0x000000f0L
+#define RB_DEBUG_3__ACCUM_WRITE_CLEAN_COUNT_MASK 0x00003f00L
+#define RB_DEBUG_3__ACCUM_INPUT_REG_VALID_MASK 0x00004000L
+#define RB_DEBUG_3__ACCUM_INPUT_REG_VALID 0x00004000L
+#define RB_DEBUG_3__ACCUM_DATA_FIFO_CNT_MASK 0x00078000L
+#define RB_DEBUG_3__SHD_FULL_MASK 0x00080000L
+#define RB_DEBUG_3__SHD_FULL 0x00080000L
+#define RB_DEBUG_3__SHD_EMPTY_MASK 0x00100000L
+#define RB_DEBUG_3__SHD_EMPTY 0x00100000L
+#define RB_DEBUG_3__EZ_RETURN_LOWER_EMPTY_MASK 0x00200000L
+#define RB_DEBUG_3__EZ_RETURN_LOWER_EMPTY 0x00200000L
+#define RB_DEBUG_3__EZ_RETURN_UPPER_EMPTY_MASK 0x00400000L
+#define RB_DEBUG_3__EZ_RETURN_UPPER_EMPTY 0x00400000L
+#define RB_DEBUG_3__EZ_RETURN_LOWER_FULL_MASK 0x00800000L
+#define RB_DEBUG_3__EZ_RETURN_LOWER_FULL 0x00800000L
+#define RB_DEBUG_3__EZ_RETURN_UPPER_FULL_MASK 0x01000000L
+#define RB_DEBUG_3__EZ_RETURN_UPPER_FULL 0x01000000L
+#define RB_DEBUG_3__ZEXP_LOWER_EMPTY_MASK 0x02000000L
+#define RB_DEBUG_3__ZEXP_LOWER_EMPTY 0x02000000L
+#define RB_DEBUG_3__ZEXP_UPPER_EMPTY_MASK 0x04000000L
+#define RB_DEBUG_3__ZEXP_UPPER_EMPTY 0x04000000L
+#define RB_DEBUG_3__ZEXP_LOWER_FULL_MASK 0x08000000L
+#define RB_DEBUG_3__ZEXP_LOWER_FULL 0x08000000L
+#define RB_DEBUG_3__ZEXP_UPPER_FULL_MASK 0x10000000L
+#define RB_DEBUG_3__ZEXP_UPPER_FULL 0x10000000L
+
+// RB_DEBUG_4
+#define RB_DEBUG_4__GMEM_RD_ACCESS_FLAG_MASK 0x00000001L
+#define RB_DEBUG_4__GMEM_RD_ACCESS_FLAG 0x00000001L
+#define RB_DEBUG_4__GMEM_WR_ACCESS_FLAG_MASK 0x00000002L
+#define RB_DEBUG_4__GMEM_WR_ACCESS_FLAG 0x00000002L
+#define RB_DEBUG_4__SYSMEM_RD_ACCESS_FLAG_MASK 0x00000004L
+#define RB_DEBUG_4__SYSMEM_RD_ACCESS_FLAG 0x00000004L
+#define RB_DEBUG_4__SYSMEM_WR_ACCESS_FLAG_MASK 0x00000008L
+#define RB_DEBUG_4__SYSMEM_WR_ACCESS_FLAG 0x00000008L
+#define RB_DEBUG_4__ACCUM_DATA_FIFO_EMPTY_MASK 0x00000010L
+#define RB_DEBUG_4__ACCUM_DATA_FIFO_EMPTY 0x00000010L
+#define RB_DEBUG_4__ACCUM_ORDER_FIFO_EMPTY_MASK 0x00000020L
+#define RB_DEBUG_4__ACCUM_ORDER_FIFO_EMPTY 0x00000020L
+#define RB_DEBUG_4__ACCUM_DATA_FIFO_FULL_MASK 0x00000040L
+#define RB_DEBUG_4__ACCUM_DATA_FIFO_FULL 0x00000040L
+#define RB_DEBUG_4__ACCUM_ORDER_FIFO_FULL_MASK 0x00000080L
+#define RB_DEBUG_4__ACCUM_ORDER_FIFO_FULL 0x00000080L
+#define RB_DEBUG_4__SYSMEM_WRITE_COUNT_OVERFLOW_MASK 0x00000100L
+#define RB_DEBUG_4__SYSMEM_WRITE_COUNT_OVERFLOW 0x00000100L
+#define RB_DEBUG_4__CONTEXT_COUNT_DEBUG_MASK 0x00001e00L
+
+// RB_FLAG_CONTROL
+#define RB_FLAG_CONTROL__DEBUG_FLAG_CLEAR_MASK 0x00000001L
+#define RB_FLAG_CONTROL__DEBUG_FLAG_CLEAR 0x00000001L
+
+// RB_BC_SPARES
+#define RB_BC_SPARES__RESERVED_MASK 0xffffffffL
+
+// BC_DUMMY_CRAYRB_ENUMS
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_DEPTH_FORMAT_MASK 0x0000003fL
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_SURFACE_SWAP_MASK 0x00000040L
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_SURFACE_SWAP 0x00000040L
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_DEPTH_ARRAY_MASK 0x00000180L
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_ARRAY_MASK 0x00000600L
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_COLOR_FORMAT_MASK 0x0001f800L
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_SURFACE_NUMBER_MASK 0x000e0000L
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_SURFACE_FORMAT_MASK 0x03f00000L
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_SURFACE_TILING_MASK 0x04000000L
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_SURFACE_TILING 0x04000000L
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_SURFACE_ARRAY_MASK 0x18000000L
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_RB_COPY_DEST_INFO_NUMBER_MASK 0xe0000000L
+
+// BC_DUMMY_CRAYRB_MOREENUMS
+#define BC_DUMMY_CRAYRB_MOREENUMS__DUMMY_CRAYRB_COLORARRAYX_MASK 0x00000003L
+
+#endif
diff --git a/drivers/mxc/amd-gpu/include/reg/yamato/22/yamato_offset.h b/drivers/mxc/amd-gpu/include/reg/yamato/22/yamato_offset.h
new file mode 100644
index 000000000000..83be5f82ed8c
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/reg/yamato/22/yamato_offset.h
@@ -0,0 +1,591 @@
+/* Copyright (c) 2002,2007-2009, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef _yamato_OFFSET_HEADER
+#define _yamato_OFFSET_HEADER
+
+
+// Registers from PA block
+
+#define mmPA_CL_VPORT_XSCALE 0x210F
+#define mmPA_CL_VPORT_XOFFSET 0x2110
+#define mmPA_CL_VPORT_YSCALE 0x2111
+#define mmPA_CL_VPORT_YOFFSET 0x2112
+#define mmPA_CL_VPORT_ZSCALE 0x2113
+#define mmPA_CL_VPORT_ZOFFSET 0x2114
+#define mmPA_CL_VTE_CNTL 0x2206
+#define mmPA_CL_CLIP_CNTL 0x2204
+#define mmPA_CL_GB_VERT_CLIP_ADJ 0x2303
+#define mmPA_CL_GB_VERT_DISC_ADJ 0x2304
+#define mmPA_CL_GB_HORZ_CLIP_ADJ 0x2305
+#define mmPA_CL_GB_HORZ_DISC_ADJ 0x2306
+#define mmPA_CL_ENHANCE 0x0C85
+#define mmPA_SC_ENHANCE 0x0CA5
+#define mmPA_SU_VTX_CNTL 0x2302
+#define mmPA_SU_POINT_SIZE 0x2280
+#define mmPA_SU_POINT_MINMAX 0x2281
+#define mmPA_SU_LINE_CNTL 0x2282
+#define mmPA_SU_FACE_DATA 0x0C86
+#define mmPA_SU_SC_MODE_CNTL 0x2205
+#define mmPA_SU_POLY_OFFSET_FRONT_SCALE 0x2380
+#define mmPA_SU_POLY_OFFSET_FRONT_OFFSET 0x2381
+#define mmPA_SU_POLY_OFFSET_BACK_SCALE 0x2382
+#define mmPA_SU_POLY_OFFSET_BACK_OFFSET 0x2383
+#define mmPA_SU_PERFCOUNTER0_SELECT 0x0C88
+#define mmPA_SU_PERFCOUNTER1_SELECT 0x0C89
+#define mmPA_SU_PERFCOUNTER2_SELECT 0x0C8A
+#define mmPA_SU_PERFCOUNTER3_SELECT 0x0C8B
+#define mmPA_SU_PERFCOUNTER0_LOW 0x0C8C
+#define mmPA_SU_PERFCOUNTER0_HI 0x0C8D
+#define mmPA_SU_PERFCOUNTER1_LOW 0x0C8E
+#define mmPA_SU_PERFCOUNTER1_HI 0x0C8F
+#define mmPA_SU_PERFCOUNTER2_LOW 0x0C90
+#define mmPA_SU_PERFCOUNTER2_HI 0x0C91
+#define mmPA_SU_PERFCOUNTER3_LOW 0x0C92
+#define mmPA_SU_PERFCOUNTER3_HI 0x0C93
+#define mmPA_SC_WINDOW_OFFSET 0x2080
+#define mmPA_SC_AA_CONFIG 0x2301
+#define mmPA_SC_AA_MASK 0x2312
+#define mmPA_SC_LINE_STIPPLE 0x2283
+#define mmPA_SC_LINE_CNTL 0x2300
+#define mmPA_SC_WINDOW_SCISSOR_TL 0x2081
+#define mmPA_SC_WINDOW_SCISSOR_BR 0x2082
+#define mmPA_SC_SCREEN_SCISSOR_TL 0x200E
+#define mmPA_SC_SCREEN_SCISSOR_BR 0x200F
+#define mmPA_SC_VIZ_QUERY 0x2293
+#define mmPA_SC_VIZ_QUERY_STATUS 0x0C44
+#define mmPA_SC_LINE_STIPPLE_STATE 0x0C40
+#define mmPA_SC_PERFCOUNTER0_SELECT 0x0C98
+#define mmPA_SC_PERFCOUNTER0_LOW 0x0C99
+#define mmPA_SC_PERFCOUNTER0_HI 0x0C9A
+#define mmPA_CL_CNTL_STATUS 0x0C84
+#define mmPA_SU_CNTL_STATUS 0x0C94
+#define mmPA_SC_CNTL_STATUS 0x0CA4
+#define mmPA_SU_DEBUG_CNTL 0x0C80
+#define mmPA_SU_DEBUG_DATA 0x0C81
+#define mmPA_SC_DEBUG_CNTL 0x0C82
+#define mmPA_SC_DEBUG_DATA 0x0C83
+
+
+// Registers from VGT block
+
+#define mmGFX_COPY_STATE 0x21F4
+#define mmVGT_DRAW_INITIATOR 0x21FC
+#define mmVGT_EVENT_INITIATOR 0x21F9
+#define mmVGT_DMA_BASE 0x21FA
+#define mmVGT_DMA_SIZE 0x21FB
+#define mmVGT_BIN_BASE 0x21FE
+#define mmVGT_BIN_SIZE 0x21FF
+#define mmVGT_CURRENT_BIN_ID_MIN 0x2207
+#define mmVGT_CURRENT_BIN_ID_MAX 0x2203
+#define mmVGT_IMMED_DATA 0x21FD
+#define mmVGT_MAX_VTX_INDX 0x2100
+#define mmVGT_MIN_VTX_INDX 0x2101
+#define mmVGT_INDX_OFFSET 0x2102
+#define mmVGT_VERTEX_REUSE_BLOCK_CNTL 0x2316
+#define mmVGT_OUT_DEALLOC_CNTL 0x2317
+#define mmVGT_MULTI_PRIM_IB_RESET_INDX 0x2103
+#define mmVGT_ENHANCE 0x2294
+#define mmVGT_VTX_VECT_EJECT_REG 0x0C2C
+#define mmVGT_LAST_COPY_STATE 0x0C30
+#define mmVGT_DEBUG_CNTL 0x0C38
+#define mmVGT_DEBUG_DATA 0x0C39
+#define mmVGT_CNTL_STATUS 0x0C3C
+#define mmVGT_CRC_SQ_DATA 0x0C3A
+#define mmVGT_CRC_SQ_CTRL 0x0C3B
+#define mmVGT_PERFCOUNTER0_SELECT 0x0C48
+#define mmVGT_PERFCOUNTER1_SELECT 0x0C49
+#define mmVGT_PERFCOUNTER2_SELECT 0x0C4A
+#define mmVGT_PERFCOUNTER3_SELECT 0x0C4B
+#define mmVGT_PERFCOUNTER0_LOW 0x0C4C
+#define mmVGT_PERFCOUNTER1_LOW 0x0C4E
+#define mmVGT_PERFCOUNTER2_LOW 0x0C50
+#define mmVGT_PERFCOUNTER3_LOW 0x0C52
+#define mmVGT_PERFCOUNTER0_HI 0x0C4D
+#define mmVGT_PERFCOUNTER1_HI 0x0C4F
+#define mmVGT_PERFCOUNTER2_HI 0x0C51
+#define mmVGT_PERFCOUNTER3_HI 0x0C53
+
+
+// Registers from TP block
+
+#define mmTC_CNTL_STATUS 0x0E00
+#define mmTCR_CHICKEN 0x0E02
+#define mmTCF_CHICKEN 0x0E03
+#define mmTCM_CHICKEN 0x0E04
+#define mmTCR_PERFCOUNTER0_SELECT 0x0E05
+#define mmTCR_PERFCOUNTER1_SELECT 0x0E08
+#define mmTCR_PERFCOUNTER0_HI 0x0E06
+#define mmTCR_PERFCOUNTER1_HI 0x0E09
+#define mmTCR_PERFCOUNTER0_LOW 0x0E07
+#define mmTCR_PERFCOUNTER1_LOW 0x0E0A
+#define mmTP_TC_CLKGATE_CNTL 0x0E17
+#define mmTPC_CNTL_STATUS 0x0E18
+#define mmTPC_DEBUG0 0x0E19
+#define mmTPC_DEBUG1 0x0E1A
+#define mmTPC_CHICKEN 0x0E1B
+#define mmTP0_CNTL_STATUS 0x0E1C
+#define mmTP0_DEBUG 0x0E1D
+#define mmTP0_CHICKEN 0x0E1E
+#define mmTP0_PERFCOUNTER0_SELECT 0x0E1F
+#define mmTP0_PERFCOUNTER0_HI 0x0E20
+#define mmTP0_PERFCOUNTER0_LOW 0x0E21
+#define mmTP0_PERFCOUNTER1_SELECT 0x0E22
+#define mmTP0_PERFCOUNTER1_HI 0x0E23
+#define mmTP0_PERFCOUNTER1_LOW 0x0E24
+#define mmTCM_PERFCOUNTER0_SELECT 0x0E54
+#define mmTCM_PERFCOUNTER1_SELECT 0x0E57
+#define mmTCM_PERFCOUNTER0_HI 0x0E55
+#define mmTCM_PERFCOUNTER1_HI 0x0E58
+#define mmTCM_PERFCOUNTER0_LOW 0x0E56
+#define mmTCM_PERFCOUNTER1_LOW 0x0E59
+#define mmTCF_PERFCOUNTER0_SELECT 0x0E5A
+#define mmTCF_PERFCOUNTER1_SELECT 0x0E5D
+#define mmTCF_PERFCOUNTER2_SELECT 0x0E60
+#define mmTCF_PERFCOUNTER3_SELECT 0x0E63
+#define mmTCF_PERFCOUNTER4_SELECT 0x0E66
+#define mmTCF_PERFCOUNTER5_SELECT 0x0E69
+#define mmTCF_PERFCOUNTER6_SELECT 0x0E6C
+#define mmTCF_PERFCOUNTER7_SELECT 0x0E6F
+#define mmTCF_PERFCOUNTER8_SELECT 0x0E72
+#define mmTCF_PERFCOUNTER9_SELECT 0x0E75
+#define mmTCF_PERFCOUNTER10_SELECT 0x0E78
+#define mmTCF_PERFCOUNTER11_SELECT 0x0E7B
+#define mmTCF_PERFCOUNTER0_HI 0x0E5B
+#define mmTCF_PERFCOUNTER1_HI 0x0E5E
+#define mmTCF_PERFCOUNTER2_HI 0x0E61
+#define mmTCF_PERFCOUNTER3_HI 0x0E64
+#define mmTCF_PERFCOUNTER4_HI 0x0E67
+#define mmTCF_PERFCOUNTER5_HI 0x0E6A
+#define mmTCF_PERFCOUNTER6_HI 0x0E6D
+#define mmTCF_PERFCOUNTER7_HI 0x0E70
+#define mmTCF_PERFCOUNTER8_HI 0x0E73
+#define mmTCF_PERFCOUNTER9_HI 0x0E76
+#define mmTCF_PERFCOUNTER10_HI 0x0E79
+#define mmTCF_PERFCOUNTER11_HI 0x0E7C
+#define mmTCF_PERFCOUNTER0_LOW 0x0E5C
+#define mmTCF_PERFCOUNTER1_LOW 0x0E5F
+#define mmTCF_PERFCOUNTER2_LOW 0x0E62
+#define mmTCF_PERFCOUNTER3_LOW 0x0E65
+#define mmTCF_PERFCOUNTER4_LOW 0x0E68
+#define mmTCF_PERFCOUNTER5_LOW 0x0E6B
+#define mmTCF_PERFCOUNTER6_LOW 0x0E6E
+#define mmTCF_PERFCOUNTER7_LOW 0x0E71
+#define mmTCF_PERFCOUNTER8_LOW 0x0E74
+#define mmTCF_PERFCOUNTER9_LOW 0x0E77
+#define mmTCF_PERFCOUNTER10_LOW 0x0E7A
+#define mmTCF_PERFCOUNTER11_LOW 0x0E7D
+#define mmTCF_DEBUG 0x0EC0
+#define mmTCA_FIFO_DEBUG 0x0EC1
+#define mmTCA_PROBE_DEBUG 0x0EC2
+#define mmTCA_TPC_DEBUG 0x0EC3
+#define mmTCB_CORE_DEBUG 0x0EC4
+#define mmTCB_TAG0_DEBUG 0x0EC5
+#define mmTCB_TAG1_DEBUG 0x0EC6
+#define mmTCB_TAG2_DEBUG 0x0EC7
+#define mmTCB_TAG3_DEBUG 0x0EC8
+#define mmTCB_FETCH_GEN_SECTOR_WALKER0_DEBUG 0x0EC9
+#define mmTCB_FETCH_GEN_WALKER_DEBUG 0x0ECB
+#define mmTCB_FETCH_GEN_PIPE0_DEBUG 0x0ECC
+#define mmTCD_INPUT0_DEBUG 0x0ED0
+#define mmTCD_DEGAMMA_DEBUG 0x0ED4
+#define mmTCD_DXTMUX_SCTARB_DEBUG 0x0ED5
+#define mmTCD_DXTC_ARB_DEBUG 0x0ED6
+#define mmTCD_STALLS_DEBUG 0x0ED7
+#define mmTCO_STALLS_DEBUG 0x0EE0
+#define mmTCO_QUAD0_DEBUG0 0x0EE1
+#define mmTCO_QUAD0_DEBUG1 0x0EE2
+
+
+// Registers from TC block
+
+
+
+// Registers from SQ block
+
+#define mmSQ_GPR_MANAGEMENT 0x0D00
+#define mmSQ_FLOW_CONTROL 0x0D01
+#define mmSQ_INST_STORE_MANAGMENT 0x0D02
+#define mmSQ_RESOURCE_MANAGMENT 0x0D03
+#define mmSQ_EO_RT 0x0D04
+#define mmSQ_DEBUG_MISC 0x0D05
+#define mmSQ_ACTIVITY_METER_CNTL 0x0D06
+#define mmSQ_ACTIVITY_METER_STATUS 0x0D07
+#define mmSQ_INPUT_ARB_PRIORITY 0x0D08
+#define mmSQ_THREAD_ARB_PRIORITY 0x0D09
+#define mmSQ_VS_WATCHDOG_TIMER 0x0D0A
+#define mmSQ_PS_WATCHDOG_TIMER 0x0D0B
+#define mmSQ_INT_CNTL 0x0D34
+#define mmSQ_INT_STATUS 0x0D35
+#define mmSQ_INT_ACK 0x0D36
+#define mmSQ_DEBUG_INPUT_FSM 0x0DAE
+#define mmSQ_DEBUG_CONST_MGR_FSM 0x0DAF
+#define mmSQ_DEBUG_TP_FSM 0x0DB0
+#define mmSQ_DEBUG_FSM_ALU_0 0x0DB1
+#define mmSQ_DEBUG_FSM_ALU_1 0x0DB2
+#define mmSQ_DEBUG_EXP_ALLOC 0x0DB3
+#define mmSQ_DEBUG_PTR_BUFF 0x0DB4
+#define mmSQ_DEBUG_GPR_VTX 0x0DB5
+#define mmSQ_DEBUG_GPR_PIX 0x0DB6
+#define mmSQ_DEBUG_TB_STATUS_SEL 0x0DB7
+#define mmSQ_DEBUG_VTX_TB_0 0x0DB8
+#define mmSQ_DEBUG_VTX_TB_1 0x0DB9
+#define mmSQ_DEBUG_VTX_TB_STATUS_REG 0x0DBA
+#define mmSQ_DEBUG_VTX_TB_STATE_MEM 0x0DBB
+#define mmSQ_DEBUG_PIX_TB_0 0x0DBC
+#define mmSQ_DEBUG_PIX_TB_STATUS_REG_0 0x0DBD
+#define mmSQ_DEBUG_PIX_TB_STATUS_REG_1 0x0DBE
+#define mmSQ_DEBUG_PIX_TB_STATUS_REG_2 0x0DBF
+#define mmSQ_DEBUG_PIX_TB_STATUS_REG_3 0x0DC0
+#define mmSQ_DEBUG_PIX_TB_STATE_MEM 0x0DC1
+#define mmSQ_PERFCOUNTER0_SELECT 0x0DC8
+#define mmSQ_PERFCOUNTER1_SELECT 0x0DC9
+#define mmSQ_PERFCOUNTER2_SELECT 0x0DCA
+#define mmSQ_PERFCOUNTER3_SELECT 0x0DCB
+#define mmSQ_PERFCOUNTER0_LOW 0x0DCC
+#define mmSQ_PERFCOUNTER0_HI 0x0DCD
+#define mmSQ_PERFCOUNTER1_LOW 0x0DCE
+#define mmSQ_PERFCOUNTER1_HI 0x0DCF
+#define mmSQ_PERFCOUNTER2_LOW 0x0DD0
+#define mmSQ_PERFCOUNTER2_HI 0x0DD1
+#define mmSQ_PERFCOUNTER3_LOW 0x0DD2
+#define mmSQ_PERFCOUNTER3_HI 0x0DD3
+#define mmSX_PERFCOUNTER0_SELECT 0x0DD4
+#define mmSX_PERFCOUNTER0_LOW 0x0DD8
+#define mmSX_PERFCOUNTER0_HI 0x0DD9
+#define mmSQ_INSTRUCTION_ALU_0 0x5000
+#define mmSQ_INSTRUCTION_ALU_1 0x5001
+#define mmSQ_INSTRUCTION_ALU_2 0x5002
+#define mmSQ_INSTRUCTION_CF_EXEC_0 0x5080
+#define mmSQ_INSTRUCTION_CF_EXEC_1 0x5081
+#define mmSQ_INSTRUCTION_CF_EXEC_2 0x5082
+#define mmSQ_INSTRUCTION_CF_LOOP_0 0x5083
+#define mmSQ_INSTRUCTION_CF_LOOP_1 0x5084
+#define mmSQ_INSTRUCTION_CF_LOOP_2 0x5085
+#define mmSQ_INSTRUCTION_CF_JMP_CALL_0 0x5086
+#define mmSQ_INSTRUCTION_CF_JMP_CALL_1 0x5087
+#define mmSQ_INSTRUCTION_CF_JMP_CALL_2 0x5088
+#define mmSQ_INSTRUCTION_CF_ALLOC_0 0x5089
+#define mmSQ_INSTRUCTION_CF_ALLOC_1 0x508A
+#define mmSQ_INSTRUCTION_CF_ALLOC_2 0x508B
+#define mmSQ_INSTRUCTION_TFETCH_0 0x5043
+#define mmSQ_INSTRUCTION_TFETCH_1 0x5044
+#define mmSQ_INSTRUCTION_TFETCH_2 0x5045
+#define mmSQ_INSTRUCTION_VFETCH_0 0x5040
+#define mmSQ_INSTRUCTION_VFETCH_1 0x5041
+#define mmSQ_INSTRUCTION_VFETCH_2 0x5042
+#define mmSQ_CONSTANT_0 0x4000
+#define mmSQ_CONSTANT_1 0x4001
+#define mmSQ_CONSTANT_2 0x4002
+#define mmSQ_CONSTANT_3 0x4003
+#define mmSQ_FETCH_0 0x4800
+#define mmSQ_FETCH_1 0x4801
+#define mmSQ_FETCH_2 0x4802
+#define mmSQ_FETCH_3 0x4803
+#define mmSQ_FETCH_4 0x4804
+#define mmSQ_FETCH_5 0x4805
+#define mmSQ_CONSTANT_VFETCH_0 0x4806
+#define mmSQ_CONSTANT_VFETCH_1 0x4808
+#define mmSQ_CONSTANT_T2 0x480C
+#define mmSQ_CONSTANT_T3 0x4812
+#define mmSQ_CF_BOOLEANS 0x4900
+#define mmSQ_CF_LOOP 0x4908
+#define mmSQ_CONSTANT_RT_0 0x4940
+#define mmSQ_CONSTANT_RT_1 0x4941
+#define mmSQ_CONSTANT_RT_2 0x4942
+#define mmSQ_CONSTANT_RT_3 0x4943
+#define mmSQ_FETCH_RT_0 0x4D40
+#define mmSQ_FETCH_RT_1 0x4D41
+#define mmSQ_FETCH_RT_2 0x4D42
+#define mmSQ_FETCH_RT_3 0x4D43
+#define mmSQ_FETCH_RT_4 0x4D44
+#define mmSQ_FETCH_RT_5 0x4D45
+#define mmSQ_CF_RT_BOOLEANS 0x4E00
+#define mmSQ_CF_RT_LOOP 0x4E14
+#define mmSQ_VS_PROGRAM 0x21F7
+#define mmSQ_PS_PROGRAM 0x21F6
+#define mmSQ_CF_PROGRAM_SIZE 0x2315
+#define mmSQ_INTERPOLATOR_CNTL 0x2182
+#define mmSQ_PROGRAM_CNTL 0x2180
+#define mmSQ_WRAPPING_0 0x2183
+#define mmSQ_WRAPPING_1 0x2184
+#define mmSQ_VS_CONST 0x2307
+#define mmSQ_PS_CONST 0x2308
+#define mmSQ_CONTEXT_MISC 0x2181
+#define mmSQ_CF_RD_BASE 0x21F5
+#define mmSQ_DEBUG_MISC_0 0x2309
+#define mmSQ_DEBUG_MISC_1 0x230A
+
+
+// Registers from SX block
+
+
+
+// Registers from MH block
+
+#define mmMH_ARBITER_CONFIG 0x0A40
+#define mmMH_CLNT_AXI_ID_REUSE 0x0A41
+#define mmMH_INTERRUPT_MASK 0x0A42
+#define mmMH_INTERRUPT_STATUS 0x0A43
+#define mmMH_INTERRUPT_CLEAR 0x0A44
+#define mmMH_AXI_ERROR 0x0A45
+#define mmMH_PERFCOUNTER0_SELECT 0x0A46
+#define mmMH_PERFCOUNTER1_SELECT 0x0A4A
+#define mmMH_PERFCOUNTER0_CONFIG 0x0A47
+#define mmMH_PERFCOUNTER1_CONFIG 0x0A4B
+#define mmMH_PERFCOUNTER0_LOW 0x0A48
+#define mmMH_PERFCOUNTER1_LOW 0x0A4C
+#define mmMH_PERFCOUNTER0_HI 0x0A49
+#define mmMH_PERFCOUNTER1_HI 0x0A4D
+#define mmMH_DEBUG_CTRL 0x0A4E
+#define mmMH_DEBUG_DATA 0x0A4F
+#define mmMH_AXI_HALT_CONTROL 0x0A50
+#define mmMH_MMU_CONFIG 0x0040
+#define mmMH_MMU_VA_RANGE 0x0041
+#define mmMH_MMU_PT_BASE 0x0042
+#define mmMH_MMU_PAGE_FAULT 0x0043
+#define mmMH_MMU_TRAN_ERROR 0x0044
+#define mmMH_MMU_INVALIDATE 0x0045
+#define mmMH_MMU_MPU_BASE 0x0046
+#define mmMH_MMU_MPU_END 0x0047
+
+
+// Registers from RBBM block
+
+#define mmWAIT_UNTIL 0x05C8
+#define mmRBBM_ISYNC_CNTL 0x05C9
+#define mmRBBM_STATUS 0x05D0
+#define mmRBBM_DSPLY 0x0391
+#define mmRBBM_RENDER_LATEST 0x0392
+#define mmRBBM_RTL_RELEASE 0x0000
+#define mmRBBM_PATCH_RELEASE 0x0001
+#define mmRBBM_AUXILIARY_CONFIG 0x0002
+#define mmRBBM_PERIPHID0 0x03F8
+#define mmRBBM_PERIPHID1 0x03F9
+#define mmRBBM_PERIPHID2 0x03FA
+#define mmRBBM_PERIPHID3 0x03FB
+#define mmRBBM_CNTL 0x003B
+#define mmRBBM_SKEW_CNTL 0x003D
+#define mmRBBM_SOFT_RESET 0x003C
+#define mmRBBM_PM_OVERRIDE1 0x039C
+#define mmRBBM_PM_OVERRIDE2 0x039D
+#define mmGC_SYS_IDLE 0x039E
+#define mmNQWAIT_UNTIL 0x0394
+#define mmRBBM_DEBUG_OUT 0x03A0
+#define mmRBBM_DEBUG_CNTL 0x03A1
+#define mmRBBM_DEBUG 0x039B
+#define mmRBBM_READ_ERROR 0x03B3
+#define mmRBBM_WAIT_IDLE_CLOCKS 0x03B2
+#define mmRBBM_INT_CNTL 0x03B4
+#define mmRBBM_INT_STATUS 0x03B5
+#define mmRBBM_INT_ACK 0x03B6
+#define mmMASTER_INT_SIGNAL 0x03B7
+#define mmRBBM_PERFCOUNTER1_SELECT 0x0395
+#define mmRBBM_PERFCOUNTER1_LO 0x0397
+#define mmRBBM_PERFCOUNTER1_HI 0x0398
+
+
+// Registers from CP block
+
+#define mmCP_RB_BASE 0x01C0
+#define mmCP_RB_CNTL 0x01C1
+#define mmCP_RB_RPTR_ADDR 0x01C3
+#define mmCP_RB_RPTR 0x01C4
+#define mmCP_RB_RPTR_WR 0x01C7
+#define mmCP_RB_WPTR 0x01C5
+#define mmCP_RB_WPTR_DELAY 0x01C6
+#define mmCP_RB_WPTR_BASE 0x01C8
+#define mmCP_IB1_BASE 0x0458
+#define mmCP_IB1_BUFSZ 0x0459
+#define mmCP_IB2_BASE 0x045A
+#define mmCP_IB2_BUFSZ 0x045B
+#define mmCP_ST_BASE 0x044D
+#define mmCP_ST_BUFSZ 0x044E
+#define mmCP_QUEUE_THRESHOLDS 0x01D5
+#define mmCP_MEQ_THRESHOLDS 0x01D6
+#define mmCP_CSQ_AVAIL 0x01D7
+#define mmCP_STQ_AVAIL 0x01D8
+#define mmCP_MEQ_AVAIL 0x01D9
+#define mmCP_CSQ_RB_STAT 0x01FD
+#define mmCP_CSQ_IB1_STAT 0x01FE
+#define mmCP_CSQ_IB2_STAT 0x01FF
+#define mmCP_NON_PREFETCH_CNTRS 0x0440
+#define mmCP_STQ_ST_STAT 0x0443
+#define mmCP_MEQ_STAT 0x044F
+#define mmCP_MIU_TAG_STAT 0x0452
+#define mmCP_CMD_INDEX 0x01DA
+#define mmCP_CMD_DATA 0x01DB
+#define mmCP_ME_CNTL 0x01F6
+#define mmCP_ME_STATUS 0x01F7
+#define mmCP_ME_RAM_WADDR 0x01F8
+#define mmCP_ME_RAM_RADDR 0x01F9
+#define mmCP_ME_RAM_DATA 0x01FA
+#define mmCP_ME_RDADDR 0x01EA
+#define mmCP_DEBUG 0x01FC
+#define mmSCRATCH_REG0 0x0578
+#define mmGUI_SCRATCH_REG0 0x0578
+#define mmSCRATCH_REG1 0x0579
+#define mmGUI_SCRATCH_REG1 0x0579
+#define mmSCRATCH_REG2 0x057A
+#define mmGUI_SCRATCH_REG2 0x057A
+#define mmSCRATCH_REG3 0x057B
+#define mmGUI_SCRATCH_REG3 0x057B
+#define mmSCRATCH_REG4 0x057C
+#define mmGUI_SCRATCH_REG4 0x057C
+#define mmSCRATCH_REG5 0x057D
+#define mmGUI_SCRATCH_REG5 0x057D
+#define mmSCRATCH_REG6 0x057E
+#define mmGUI_SCRATCH_REG6 0x057E
+#define mmSCRATCH_REG7 0x057F
+#define mmGUI_SCRATCH_REG7 0x057F
+#define mmSCRATCH_UMSK 0x01DC
+#define mmSCRATCH_ADDR 0x01DD
+#define mmCP_ME_VS_EVENT_SRC 0x0600
+#define mmCP_ME_VS_EVENT_ADDR 0x0601
+#define mmCP_ME_VS_EVENT_DATA 0x0602
+#define mmCP_ME_VS_EVENT_ADDR_SWM 0x0603
+#define mmCP_ME_VS_EVENT_DATA_SWM 0x0604
+#define mmCP_ME_PS_EVENT_SRC 0x0605
+#define mmCP_ME_PS_EVENT_ADDR 0x0606
+#define mmCP_ME_PS_EVENT_DATA 0x0607
+#define mmCP_ME_PS_EVENT_ADDR_SWM 0x0608
+#define mmCP_ME_PS_EVENT_DATA_SWM 0x0609
+#define mmCP_ME_CF_EVENT_SRC 0x060A
+#define mmCP_ME_CF_EVENT_ADDR 0x060B
+#define mmCP_ME_CF_EVENT_DATA 0x060C
+#define mmCP_ME_NRT_ADDR 0x060D
+#define mmCP_ME_NRT_DATA 0x060E
+#define mmCP_ME_VS_FETCH_DONE_SRC 0x0612
+#define mmCP_ME_VS_FETCH_DONE_ADDR 0x0613
+#define mmCP_ME_VS_FETCH_DONE_DATA 0x0614
+#define mmCP_INT_CNTL 0x01F2
+#define mmCP_INT_STATUS 0x01F3
+#define mmCP_INT_ACK 0x01F4
+#define mmCP_PFP_UCODE_ADDR 0x00C0
+#define mmCP_PFP_UCODE_DATA 0x00C1
+#define mmCP_PERFMON_CNTL 0x0444
+#define mmCP_PERFCOUNTER_SELECT 0x0445
+#define mmCP_PERFCOUNTER_LO 0x0446
+#define mmCP_PERFCOUNTER_HI 0x0447
+#define mmCP_BIN_MASK_LO 0x0454
+#define mmCP_BIN_MASK_HI 0x0455
+#define mmCP_BIN_SELECT_LO 0x0456
+#define mmCP_BIN_SELECT_HI 0x0457
+#define mmCP_NV_FLAGS_0 0x01EE
+#define mmCP_NV_FLAGS_1 0x01EF
+#define mmCP_NV_FLAGS_2 0x01F0
+#define mmCP_NV_FLAGS_3 0x01F1
+#define mmCP_STATE_DEBUG_INDEX 0x01EC
+#define mmCP_STATE_DEBUG_DATA 0x01ED
+#define mmCP_PROG_COUNTER 0x044B
+#define mmCP_STAT 0x047F
+#define mmBIOS_0_SCRATCH 0x0004
+#define mmBIOS_1_SCRATCH 0x0005
+#define mmBIOS_2_SCRATCH 0x0006
+#define mmBIOS_3_SCRATCH 0x0007
+#define mmBIOS_4_SCRATCH 0x0008
+#define mmBIOS_5_SCRATCH 0x0009
+#define mmBIOS_6_SCRATCH 0x000A
+#define mmBIOS_7_SCRATCH 0x000B
+#define mmBIOS_8_SCRATCH 0x0580
+#define mmBIOS_9_SCRATCH 0x0581
+#define mmBIOS_10_SCRATCH 0x0582
+#define mmBIOS_11_SCRATCH 0x0583
+#define mmBIOS_12_SCRATCH 0x0584
+#define mmBIOS_13_SCRATCH 0x0585
+#define mmBIOS_14_SCRATCH 0x0586
+#define mmBIOS_15_SCRATCH 0x0587
+#define mmCOHER_SIZE_PM4 0x0A29
+#define mmCOHER_BASE_PM4 0x0A2A
+#define mmCOHER_STATUS_PM4 0x0A2B
+#define mmCOHER_SIZE_HOST 0x0A2F
+#define mmCOHER_BASE_HOST 0x0A30
+#define mmCOHER_STATUS_HOST 0x0A31
+#define mmCOHER_DEST_BASE_0 0x2006
+#define mmCOHER_DEST_BASE_1 0x2007
+#define mmCOHER_DEST_BASE_2 0x2008
+#define mmCOHER_DEST_BASE_3 0x2009
+#define mmCOHER_DEST_BASE_4 0x200A
+#define mmCOHER_DEST_BASE_5 0x200B
+#define mmCOHER_DEST_BASE_6 0x200C
+#define mmCOHER_DEST_BASE_7 0x200D
+
+
+// Registers from SC block
+
+
+
+// Registers from BC block
+
+#define mmRB_SURFACE_INFO 0x2000
+#define mmRB_COLOR_INFO 0x2001
+#define mmRB_DEPTH_INFO 0x2002
+#define mmRB_STENCILREFMASK 0x210D
+#define mmRB_ALPHA_REF 0x210E
+#define mmRB_COLOR_MASK 0x2104
+#define mmRB_BLEND_RED 0x2105
+#define mmRB_BLEND_GREEN 0x2106
+#define mmRB_BLEND_BLUE 0x2107
+#define mmRB_BLEND_ALPHA 0x2108
+#define mmRB_FOG_COLOR 0x2109
+#define mmRB_STENCILREFMASK_BF 0x210C
+#define mmRB_DEPTHCONTROL 0x2200
+#define mmRB_BLENDCONTROL 0x2201
+#define mmRB_COLORCONTROL 0x2202
+#define mmRB_MODECONTROL 0x2208
+#define mmRB_COLOR_DEST_MASK 0x2326
+#define mmRB_COPY_CONTROL 0x2318
+#define mmRB_COPY_DEST_BASE 0x2319
+#define mmRB_COPY_DEST_PITCH 0x231A
+#define mmRB_COPY_DEST_INFO 0x231B
+#define mmRB_COPY_DEST_PIXEL_OFFSET 0x231C
+#define mmRB_DEPTH_CLEAR 0x231D
+#define mmRB_SAMPLE_COUNT_CTL 0x2324
+#define mmRB_SAMPLE_COUNT_ADDR 0x2325
+#define mmRB_BC_CONTROL 0x0F01
+#define mmRB_EDRAM_INFO 0x0F02
+#define mmRB_CRC_RD_PORT 0x0F0C
+#define mmRB_CRC_CONTROL 0x0F0D
+#define mmRB_CRC_MASK 0x0F0E
+#define mmRB_PERFCOUNTER0_SELECT 0x0F04
+#define mmRB_PERFCOUNTER0_LOW 0x0F08
+#define mmRB_PERFCOUNTER0_HI 0x0F09
+#define mmRB_TOTAL_SAMPLES 0x0F0F
+#define mmRB_ZPASS_SAMPLES 0x0F10
+#define mmRB_ZFAIL_SAMPLES 0x0F11
+#define mmRB_SFAIL_SAMPLES 0x0F12
+#define mmRB_DEBUG_0 0x0F26
+#define mmRB_DEBUG_1 0x0F27
+#define mmRB_DEBUG_2 0x0F28
+#define mmRB_DEBUG_3 0x0F29
+#define mmRB_DEBUG_4 0x0F2A
+#define mmRB_FLAG_CONTROL 0x0F2B
+#define mmRB_BC_SPARES 0x0F2C
+#define mmBC_DUMMY_CRAYRB_ENUMS 0x0F15
+#define mmBC_DUMMY_CRAYRB_MOREENUMS 0x0F16
+#endif
diff --git a/drivers/mxc/amd-gpu/include/reg/yamato/22/yamato_random.h b/drivers/mxc/amd-gpu/include/reg/yamato/22/yamato_random.h
new file mode 100644
index 000000000000..17379dcfa0e7
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/reg/yamato/22/yamato_random.h
@@ -0,0 +1,223 @@
+/* Copyright (c) 2002,2007-2009, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#if !defined (_yamato_RANDOM_HEADER)
+#define _yamato_RANDOM_HEADER
+
+/*************************************************************
+ * THIS FILE IS AUTOMATICALLY CREATED. DO NOT EDIT THIS FILE.
+ *************************************************************/
+/*******************************************************
+ * PA Enums
+ *******************************************************/
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<SU_PERFCNT_SELECT>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<SC_PERFCNT_SELECT>;
+
+/*******************************************************
+ * VGT Enums
+ *******************************************************/
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<VGT_DI_PRIM_TYPE>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<VGT_DI_SOURCE_SELECT>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<VGT_DI_FACENESS_CULL_SELECT>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<VGT_DI_INDEX_SIZE>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<VGT_DI_SMALL_INDEX>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<VGT_DI_PRE_FETCH_CULL_ENABLE>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<VGT_DI_GRP_CULL_ENABLE>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<VGT_EVENT_TYPE>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<VGT_DMA_SWAP_MODE>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<VGT_PERFCOUNT_SELECT>;
+
+/*******************************************************
+ * TP Enums
+ *******************************************************/
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<TCR_PERFCOUNT_SELECT>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<TP_PERFCOUNT_SELECT>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<TCM_PERFCOUNT_SELECT>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<TCF_PERFCOUNT_SELECT>;
+
+/*******************************************************
+ * TC Enums
+ *******************************************************/
+/*******************************************************
+ * SQ Enums
+ *******************************************************/
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<SQ_PERFCNT_SELECT>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<SX_PERFCNT_SELECT>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<Abs_modifier>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<Exporting>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<ScalarOpcode>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<SwizzleType>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<InputModifier>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<PredicateSelect>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<OperandSelect1>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<VectorOpcode>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<OperandSelect0>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<Ressource_type>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<Instruction_serial>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<VC_type>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<Addressing>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<CFOpcode>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<Allocation_type>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<TexInstOpcode>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<Addressmode>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<TexCoordDenorm>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<SrcSel>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<DstSel>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<MagFilter>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<MinFilter>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<MipFilter>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<AnisoFilter>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<ArbitraryFilter>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<VolMagFilter>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<VolMinFilter>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<PredSelect>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<SampleLocation>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<VertexMode>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<Sample_Cntl>;
+
+/*******************************************************
+ * SX Enums
+ *******************************************************/
+/*******************************************************
+ * MH Enums
+ *******************************************************/
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<MhPerfEncode>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<MmuClntBeh>;
+
+/*******************************************************
+ * RBBM Enums
+ *******************************************************/
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<RBBM_PERFCOUNT1_SEL>;
+
+/*******************************************************
+ * CP Enums
+ *******************************************************/
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<CP_PERFCOUNT_SEL>;
+
+/*******************************************************
+ * SC Enums
+ *******************************************************/
+/*******************************************************
+ * BC Enums
+ *******************************************************/
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<ColorformatX>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<DepthformatX>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<CompareFrag>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<CompareRef>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<StencilOp>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<BlendOpX>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<CombFuncX>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<DitherModeX>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<DitherTypeX>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<EdramMode>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<SurfaceEndian>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<EdramSizeX>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<RB_PERFCNT_SELECT>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<DepthFormat>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<SurfaceSwap>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<DepthArray>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<ColorArray>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<ColorFormat>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<SurfaceNumber>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<SurfaceFormat>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<SurfaceTiling>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<SurfaceArray>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<SurfaceNumberX>;
+
+template class DllImportExport_RANDOM RANDOM_TEMPLATE_ENUM<ColorArrayX>;
+
+#endif /*_yamato_RANDOM_HEADER*/
+
diff --git a/drivers/mxc/amd-gpu/include/reg/yamato/22/yamato_registers.h b/drivers/mxc/amd-gpu/include/reg/yamato/22/yamato_registers.h
new file mode 100644
index 000000000000..bcc28f133b08
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/reg/yamato/22/yamato_registers.h
@@ -0,0 +1,14280 @@
+/* Copyright (c) 2002,2007-2009, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#if !defined (_yamato_REG_HEADER)
+#define _yamato_REG_HEADER
+
+ union PA_CL_VPORT_XSCALE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VPORT_XSCALE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VPORT_XSCALE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_CL_VPORT_XOFFSET {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VPORT_XOFFSET : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VPORT_XOFFSET : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_CL_VPORT_YSCALE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VPORT_YSCALE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VPORT_YSCALE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_CL_VPORT_YOFFSET {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VPORT_YOFFSET : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VPORT_YOFFSET : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_CL_VPORT_ZSCALE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VPORT_ZSCALE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VPORT_ZSCALE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_CL_VPORT_ZOFFSET {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VPORT_ZOFFSET : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VPORT_ZOFFSET : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_CL_VTE_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VPORT_X_SCALE_ENA : 1;
+ unsigned int VPORT_X_OFFSET_ENA : 1;
+ unsigned int VPORT_Y_SCALE_ENA : 1;
+ unsigned int VPORT_Y_OFFSET_ENA : 1;
+ unsigned int VPORT_Z_SCALE_ENA : 1;
+ unsigned int VPORT_Z_OFFSET_ENA : 1;
+ unsigned int : 2;
+ unsigned int VTX_XY_FMT : 1;
+ unsigned int VTX_Z_FMT : 1;
+ unsigned int VTX_W0_FMT : 1;
+ unsigned int PERFCOUNTER_REF : 1;
+ unsigned int : 20;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 20;
+ unsigned int PERFCOUNTER_REF : 1;
+ unsigned int VTX_W0_FMT : 1;
+ unsigned int VTX_Z_FMT : 1;
+ unsigned int VTX_XY_FMT : 1;
+ unsigned int : 2;
+ unsigned int VPORT_Z_OFFSET_ENA : 1;
+ unsigned int VPORT_Z_SCALE_ENA : 1;
+ unsigned int VPORT_Y_OFFSET_ENA : 1;
+ unsigned int VPORT_Y_SCALE_ENA : 1;
+ unsigned int VPORT_X_OFFSET_ENA : 1;
+ unsigned int VPORT_X_SCALE_ENA : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_CL_CLIP_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 16;
+ unsigned int CLIP_DISABLE : 1;
+ unsigned int : 1;
+ unsigned int BOUNDARY_EDGE_FLAG_ENA : 1;
+ unsigned int DX_CLIP_SPACE_DEF : 1;
+ unsigned int DIS_CLIP_ERR_DETECT : 1;
+ unsigned int VTX_KILL_OR : 1;
+ unsigned int XY_NAN_RETAIN : 1;
+ unsigned int Z_NAN_RETAIN : 1;
+ unsigned int W_NAN_RETAIN : 1;
+ unsigned int : 7;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 7;
+ unsigned int W_NAN_RETAIN : 1;
+ unsigned int Z_NAN_RETAIN : 1;
+ unsigned int XY_NAN_RETAIN : 1;
+ unsigned int VTX_KILL_OR : 1;
+ unsigned int DIS_CLIP_ERR_DETECT : 1;
+ unsigned int DX_CLIP_SPACE_DEF : 1;
+ unsigned int BOUNDARY_EDGE_FLAG_ENA : 1;
+ unsigned int : 1;
+ unsigned int CLIP_DISABLE : 1;
+ unsigned int : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_CL_GB_VERT_CLIP_ADJ {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DATA_REGISTER : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int DATA_REGISTER : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_CL_GB_VERT_DISC_ADJ {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DATA_REGISTER : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int DATA_REGISTER : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_CL_GB_HORZ_CLIP_ADJ {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DATA_REGISTER : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int DATA_REGISTER : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_CL_GB_HORZ_DISC_ADJ {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DATA_REGISTER : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int DATA_REGISTER : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_CL_ENHANCE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CLIP_VTX_REORDER_ENA : 1;
+ unsigned int : 27;
+ unsigned int ECO_SPARE3 : 1;
+ unsigned int ECO_SPARE2 : 1;
+ unsigned int ECO_SPARE1 : 1;
+ unsigned int ECO_SPARE0 : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int ECO_SPARE0 : 1;
+ unsigned int ECO_SPARE1 : 1;
+ unsigned int ECO_SPARE2 : 1;
+ unsigned int ECO_SPARE3 : 1;
+ unsigned int : 27;
+ unsigned int CLIP_VTX_REORDER_ENA : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_ENHANCE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 28;
+ unsigned int ECO_SPARE3 : 1;
+ unsigned int ECO_SPARE2 : 1;
+ unsigned int ECO_SPARE1 : 1;
+ unsigned int ECO_SPARE0 : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int ECO_SPARE0 : 1;
+ unsigned int ECO_SPARE1 : 1;
+ unsigned int ECO_SPARE2 : 1;
+ unsigned int ECO_SPARE3 : 1;
+ unsigned int : 28;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_VTX_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PIX_CENTER : 1;
+ unsigned int ROUND_MODE : 2;
+ unsigned int QUANT_MODE : 3;
+ unsigned int : 26;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 26;
+ unsigned int QUANT_MODE : 3;
+ unsigned int ROUND_MODE : 2;
+ unsigned int PIX_CENTER : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_POINT_SIZE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int HEIGHT : 16;
+ unsigned int WIDTH : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int WIDTH : 16;
+ unsigned int HEIGHT : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_POINT_MINMAX {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MIN_SIZE : 16;
+ unsigned int MAX_SIZE : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int MAX_SIZE : 16;
+ unsigned int MIN_SIZE : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_LINE_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int WIDTH : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int WIDTH : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_FACE_DATA {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 5;
+ unsigned int BASE_ADDR : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int BASE_ADDR : 27;
+ unsigned int : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_SC_MODE_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CULL_FRONT : 1;
+ unsigned int CULL_BACK : 1;
+ unsigned int FACE : 1;
+ unsigned int POLY_MODE : 2;
+ unsigned int POLYMODE_FRONT_PTYPE : 3;
+ unsigned int POLYMODE_BACK_PTYPE : 3;
+ unsigned int POLY_OFFSET_FRONT_ENABLE : 1;
+ unsigned int POLY_OFFSET_BACK_ENABLE : 1;
+ unsigned int POLY_OFFSET_PARA_ENABLE : 1;
+ unsigned int : 1;
+ unsigned int MSAA_ENABLE : 1;
+ unsigned int VTX_WINDOW_OFFSET_ENABLE : 1;
+ unsigned int : 1;
+ unsigned int LINE_STIPPLE_ENABLE : 1;
+ unsigned int PROVOKING_VTX_LAST : 1;
+ unsigned int PERSP_CORR_DIS : 1;
+ unsigned int MULTI_PRIM_IB_ENA : 1;
+ unsigned int : 1;
+ unsigned int QUAD_ORDER_ENABLE : 1;
+ unsigned int : 1;
+ unsigned int WAIT_RB_IDLE_ALL_TRI : 1;
+ unsigned int WAIT_RB_IDLE_FIRST_TRI_NEW_STATE : 1;
+ unsigned int : 1;
+ unsigned int CLAMPED_FACENESS : 1;
+ unsigned int ZERO_AREA_FACENESS : 1;
+ unsigned int FACE_KILL_ENABLE : 1;
+ unsigned int FACE_WRITE_ENABLE : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int FACE_WRITE_ENABLE : 1;
+ unsigned int FACE_KILL_ENABLE : 1;
+ unsigned int ZERO_AREA_FACENESS : 1;
+ unsigned int CLAMPED_FACENESS : 1;
+ unsigned int : 1;
+ unsigned int WAIT_RB_IDLE_FIRST_TRI_NEW_STATE : 1;
+ unsigned int WAIT_RB_IDLE_ALL_TRI : 1;
+ unsigned int : 1;
+ unsigned int QUAD_ORDER_ENABLE : 1;
+ unsigned int : 1;
+ unsigned int MULTI_PRIM_IB_ENA : 1;
+ unsigned int PERSP_CORR_DIS : 1;
+ unsigned int PROVOKING_VTX_LAST : 1;
+ unsigned int LINE_STIPPLE_ENABLE : 1;
+ unsigned int : 1;
+ unsigned int VTX_WINDOW_OFFSET_ENABLE : 1;
+ unsigned int MSAA_ENABLE : 1;
+ unsigned int : 1;
+ unsigned int POLY_OFFSET_PARA_ENABLE : 1;
+ unsigned int POLY_OFFSET_BACK_ENABLE : 1;
+ unsigned int POLY_OFFSET_FRONT_ENABLE : 1;
+ unsigned int POLYMODE_BACK_PTYPE : 3;
+ unsigned int POLYMODE_FRONT_PTYPE : 3;
+ unsigned int POLY_MODE : 2;
+ unsigned int FACE : 1;
+ unsigned int CULL_BACK : 1;
+ unsigned int CULL_FRONT : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_POLY_OFFSET_FRONT_SCALE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SCALE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int SCALE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_POLY_OFFSET_FRONT_OFFSET {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int OFFSET : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int OFFSET : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_POLY_OFFSET_BACK_SCALE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SCALE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int SCALE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_POLY_OFFSET_BACK_OFFSET {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int OFFSET : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int OFFSET : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_PERFCOUNTER0_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_SEL : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERF_SEL : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_PERFCOUNTER1_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_SEL : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERF_SEL : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_PERFCOUNTER2_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_SEL : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERF_SEL : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_PERFCOUNTER3_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_SEL : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERF_SEL : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_PERFCOUNTER0_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERF_COUNT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_PERFCOUNTER0_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERF_COUNT : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_PERFCOUNTER1_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERF_COUNT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_PERFCOUNTER1_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERF_COUNT : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_PERFCOUNTER2_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERF_COUNT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_PERFCOUNTER2_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERF_COUNT : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_PERFCOUNTER3_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERF_COUNT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_PERFCOUNTER3_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERF_COUNT : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_WINDOW_OFFSET {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int WINDOW_X_OFFSET : 15;
+ unsigned int : 1;
+ unsigned int WINDOW_Y_OFFSET : 15;
+ unsigned int : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 1;
+ unsigned int WINDOW_Y_OFFSET : 15;
+ unsigned int : 1;
+ unsigned int WINDOW_X_OFFSET : 15;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_AA_CONFIG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MSAA_NUM_SAMPLES : 3;
+ unsigned int : 10;
+ unsigned int MAX_SAMPLE_DIST : 4;
+ unsigned int : 15;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 15;
+ unsigned int MAX_SAMPLE_DIST : 4;
+ unsigned int : 10;
+ unsigned int MSAA_NUM_SAMPLES : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_AA_MASK {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int AA_MASK : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int AA_MASK : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_LINE_STIPPLE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int LINE_PATTERN : 16;
+ unsigned int REPEAT_COUNT : 8;
+ unsigned int : 4;
+ unsigned int PATTERN_BIT_ORDER : 1;
+ unsigned int AUTO_RESET_CNTL : 2;
+ unsigned int : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 1;
+ unsigned int AUTO_RESET_CNTL : 2;
+ unsigned int PATTERN_BIT_ORDER : 1;
+ unsigned int : 4;
+ unsigned int REPEAT_COUNT : 8;
+ unsigned int LINE_PATTERN : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_LINE_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BRES_CNTL : 8;
+ unsigned int USE_BRES_CNTL : 1;
+ unsigned int EXPAND_LINE_WIDTH : 1;
+ unsigned int LAST_PIXEL : 1;
+ unsigned int : 21;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 21;
+ unsigned int LAST_PIXEL : 1;
+ unsigned int EXPAND_LINE_WIDTH : 1;
+ unsigned int USE_BRES_CNTL : 1;
+ unsigned int BRES_CNTL : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_WINDOW_SCISSOR_TL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TL_X : 14;
+ unsigned int : 2;
+ unsigned int TL_Y : 14;
+ unsigned int : 1;
+ unsigned int WINDOW_OFFSET_DISABLE : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int WINDOW_OFFSET_DISABLE : 1;
+ unsigned int : 1;
+ unsigned int TL_Y : 14;
+ unsigned int : 2;
+ unsigned int TL_X : 14;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_WINDOW_SCISSOR_BR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BR_X : 14;
+ unsigned int : 2;
+ unsigned int BR_Y : 14;
+ unsigned int : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 2;
+ unsigned int BR_Y : 14;
+ unsigned int : 2;
+ unsigned int BR_X : 14;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_SCREEN_SCISSOR_TL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TL_X : 15;
+ unsigned int : 1;
+ unsigned int TL_Y : 15;
+ unsigned int : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 1;
+ unsigned int TL_Y : 15;
+ unsigned int : 1;
+ unsigned int TL_X : 15;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_SCREEN_SCISSOR_BR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BR_X : 15;
+ unsigned int : 1;
+ unsigned int BR_Y : 15;
+ unsigned int : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 1;
+ unsigned int BR_Y : 15;
+ unsigned int : 1;
+ unsigned int BR_X : 15;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_VIZ_QUERY {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VIZ_QUERY_ENA : 1;
+ unsigned int VIZ_QUERY_ID : 5;
+ unsigned int : 1;
+ unsigned int KILL_PIX_POST_EARLY_Z : 1;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int KILL_PIX_POST_EARLY_Z : 1;
+ unsigned int : 1;
+ unsigned int VIZ_QUERY_ID : 5;
+ unsigned int VIZ_QUERY_ENA : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_VIZ_QUERY_STATUS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int STATUS_BITS : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int STATUS_BITS : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_LINE_STIPPLE_STATE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CURRENT_PTR : 4;
+ unsigned int : 4;
+ unsigned int CURRENT_COUNT : 8;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int CURRENT_COUNT : 8;
+ unsigned int : 4;
+ unsigned int CURRENT_PTR : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_PERFCOUNTER0_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_SEL : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERF_SEL : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_PERFCOUNTER0_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERF_COUNT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_PERFCOUNTER0_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERF_COUNT : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_CL_CNTL_STATUS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 31;
+ unsigned int CL_BUSY : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int CL_BUSY : 1;
+ unsigned int : 31;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_CNTL_STATUS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 31;
+ unsigned int SU_BUSY : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int SU_BUSY : 1;
+ unsigned int : 31;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_CNTL_STATUS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 31;
+ unsigned int SC_BUSY : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int SC_BUSY : 1;
+ unsigned int : 31;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_DEBUG_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SU_DEBUG_INDX : 5;
+ unsigned int : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 27;
+ unsigned int SU_DEBUG_INDX : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SU_DEBUG_DATA {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DATA : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int DATA : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CLIPPER_DEBUG_REG00 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int clip_ga_bc_fifo_write : 1;
+ unsigned int clip_ga_bc_fifo_full : 1;
+ unsigned int clip_to_ga_fifo_write : 1;
+ unsigned int clip_to_ga_fifo_full : 1;
+ unsigned int primic_to_clprim_fifo_empty : 1;
+ unsigned int primic_to_clprim_fifo_full : 1;
+ unsigned int clip_to_outsm_fifo_empty : 1;
+ unsigned int clip_to_outsm_fifo_full : 1;
+ unsigned int vgt_to_clipp_fifo_empty : 1;
+ unsigned int vgt_to_clipp_fifo_full : 1;
+ unsigned int vgt_to_clips_fifo_empty : 1;
+ unsigned int vgt_to_clips_fifo_full : 1;
+ unsigned int clipcode_fifo_fifo_empty : 1;
+ unsigned int clipcode_fifo_full : 1;
+ unsigned int vte_out_clip_fifo_fifo_empty : 1;
+ unsigned int vte_out_clip_fifo_fifo_full : 1;
+ unsigned int vte_out_orig_fifo_fifo_empty : 1;
+ unsigned int vte_out_orig_fifo_fifo_full : 1;
+ unsigned int ccgen_to_clipcc_fifo_empty : 1;
+ unsigned int ccgen_to_clipcc_fifo_full : 1;
+ unsigned int ALWAYS_ZERO : 12;
+#else /* !defined(qLittleEndian) */
+ unsigned int ALWAYS_ZERO : 12;
+ unsigned int ccgen_to_clipcc_fifo_full : 1;
+ unsigned int ccgen_to_clipcc_fifo_empty : 1;
+ unsigned int vte_out_orig_fifo_fifo_full : 1;
+ unsigned int vte_out_orig_fifo_fifo_empty : 1;
+ unsigned int vte_out_clip_fifo_fifo_full : 1;
+ unsigned int vte_out_clip_fifo_fifo_empty : 1;
+ unsigned int clipcode_fifo_full : 1;
+ unsigned int clipcode_fifo_fifo_empty : 1;
+ unsigned int vgt_to_clips_fifo_full : 1;
+ unsigned int vgt_to_clips_fifo_empty : 1;
+ unsigned int vgt_to_clipp_fifo_full : 1;
+ unsigned int vgt_to_clipp_fifo_empty : 1;
+ unsigned int clip_to_outsm_fifo_full : 1;
+ unsigned int clip_to_outsm_fifo_empty : 1;
+ unsigned int primic_to_clprim_fifo_full : 1;
+ unsigned int primic_to_clprim_fifo_empty : 1;
+ unsigned int clip_to_ga_fifo_full : 1;
+ unsigned int clip_to_ga_fifo_write : 1;
+ unsigned int clip_ga_bc_fifo_full : 1;
+ unsigned int clip_ga_bc_fifo_write : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CLIPPER_DEBUG_REG01 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int clip_to_outsm_end_of_packet : 1;
+ unsigned int clip_to_outsm_first_prim_of_slot : 1;
+ unsigned int clip_to_outsm_deallocate_slot : 3;
+ unsigned int clip_to_outsm_clipped_prim : 1;
+ unsigned int clip_to_outsm_null_primitive : 1;
+ unsigned int clip_to_outsm_vertex_store_indx_2 : 4;
+ unsigned int clip_to_outsm_vertex_store_indx_1 : 4;
+ unsigned int clip_to_outsm_vertex_store_indx_0 : 4;
+ unsigned int clip_vert_vte_valid : 3;
+ unsigned int vte_out_clip_rd_vertex_store_indx : 2;
+ unsigned int ALWAYS_ZERO : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int ALWAYS_ZERO : 8;
+ unsigned int vte_out_clip_rd_vertex_store_indx : 2;
+ unsigned int clip_vert_vte_valid : 3;
+ unsigned int clip_to_outsm_vertex_store_indx_0 : 4;
+ unsigned int clip_to_outsm_vertex_store_indx_1 : 4;
+ unsigned int clip_to_outsm_vertex_store_indx_2 : 4;
+ unsigned int clip_to_outsm_null_primitive : 1;
+ unsigned int clip_to_outsm_clipped_prim : 1;
+ unsigned int clip_to_outsm_deallocate_slot : 3;
+ unsigned int clip_to_outsm_first_prim_of_slot : 1;
+ unsigned int clip_to_outsm_end_of_packet : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CLIPPER_DEBUG_REG02 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ALWAYS_ZERO1 : 21;
+ unsigned int clipsm0_clip_to_clipga_clip_to_outsm_cnt : 3;
+ unsigned int ALWAYS_ZERO0 : 7;
+ unsigned int clipsm0_clprim_to_clip_prim_valid : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int clipsm0_clprim_to_clip_prim_valid : 1;
+ unsigned int ALWAYS_ZERO0 : 7;
+ unsigned int clipsm0_clip_to_clipga_clip_to_outsm_cnt : 3;
+ unsigned int ALWAYS_ZERO1 : 21;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CLIPPER_DEBUG_REG03 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ALWAYS_ZERO3 : 3;
+ unsigned int clipsm0_clprim_to_clip_clip_primitive : 1;
+ unsigned int ALWAYS_ZERO2 : 3;
+ unsigned int clipsm0_clprim_to_clip_null_primitive : 1;
+ unsigned int ALWAYS_ZERO1 : 12;
+ unsigned int clipsm0_clprim_to_clip_clip_code_or : 6;
+ unsigned int ALWAYS_ZERO0 : 6;
+#else /* !defined(qLittleEndian) */
+ unsigned int ALWAYS_ZERO0 : 6;
+ unsigned int clipsm0_clprim_to_clip_clip_code_or : 6;
+ unsigned int ALWAYS_ZERO1 : 12;
+ unsigned int clipsm0_clprim_to_clip_null_primitive : 1;
+ unsigned int ALWAYS_ZERO2 : 3;
+ unsigned int clipsm0_clprim_to_clip_clip_primitive : 1;
+ unsigned int ALWAYS_ZERO3 : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CLIPPER_DEBUG_REG04 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ALWAYS_ZERO2 : 3;
+ unsigned int clipsm0_clprim_to_clip_first_prim_of_slot : 1;
+ unsigned int ALWAYS_ZERO1 : 3;
+ unsigned int clipsm0_clprim_to_clip_event : 1;
+ unsigned int ALWAYS_ZERO0 : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int ALWAYS_ZERO0 : 24;
+ unsigned int clipsm0_clprim_to_clip_event : 1;
+ unsigned int ALWAYS_ZERO1 : 3;
+ unsigned int clipsm0_clprim_to_clip_first_prim_of_slot : 1;
+ unsigned int ALWAYS_ZERO2 : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CLIPPER_DEBUG_REG05 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int clipsm0_clprim_to_clip_state_var_indx : 1;
+ unsigned int ALWAYS_ZERO3 : 2;
+ unsigned int clipsm0_clprim_to_clip_deallocate_slot : 3;
+ unsigned int clipsm0_clprim_to_clip_event_id : 6;
+ unsigned int clipsm0_clprim_to_clip_vertex_store_indx_2 : 4;
+ unsigned int ALWAYS_ZERO2 : 2;
+ unsigned int clipsm0_clprim_to_clip_vertex_store_indx_1 : 4;
+ unsigned int ALWAYS_ZERO1 : 2;
+ unsigned int clipsm0_clprim_to_clip_vertex_store_indx_0 : 4;
+ unsigned int ALWAYS_ZERO0 : 4;
+#else /* !defined(qLittleEndian) */
+ unsigned int ALWAYS_ZERO0 : 4;
+ unsigned int clipsm0_clprim_to_clip_vertex_store_indx_0 : 4;
+ unsigned int ALWAYS_ZERO1 : 2;
+ unsigned int clipsm0_clprim_to_clip_vertex_store_indx_1 : 4;
+ unsigned int ALWAYS_ZERO2 : 2;
+ unsigned int clipsm0_clprim_to_clip_vertex_store_indx_2 : 4;
+ unsigned int clipsm0_clprim_to_clip_event_id : 6;
+ unsigned int clipsm0_clprim_to_clip_deallocate_slot : 3;
+ unsigned int ALWAYS_ZERO3 : 2;
+ unsigned int clipsm0_clprim_to_clip_state_var_indx : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CLIPPER_DEBUG_REG09 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int clprim_in_back_event : 1;
+ unsigned int outputclprimtoclip_null_primitive : 1;
+ unsigned int clprim_in_back_vertex_store_indx_2 : 4;
+ unsigned int ALWAYS_ZERO2 : 2;
+ unsigned int clprim_in_back_vertex_store_indx_1 : 4;
+ unsigned int ALWAYS_ZERO1 : 2;
+ unsigned int clprim_in_back_vertex_store_indx_0 : 4;
+ unsigned int ALWAYS_ZERO0 : 2;
+ unsigned int prim_back_valid : 1;
+ unsigned int clip_priority_seq_indx_out_cnt : 4;
+ unsigned int outsm_clr_rd_orig_vertices : 2;
+ unsigned int outsm_clr_rd_clipsm_wait : 1;
+ unsigned int outsm_clr_fifo_empty : 1;
+ unsigned int outsm_clr_fifo_full : 1;
+ unsigned int clip_priority_seq_indx_load : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int clip_priority_seq_indx_load : 2;
+ unsigned int outsm_clr_fifo_full : 1;
+ unsigned int outsm_clr_fifo_empty : 1;
+ unsigned int outsm_clr_rd_clipsm_wait : 1;
+ unsigned int outsm_clr_rd_orig_vertices : 2;
+ unsigned int clip_priority_seq_indx_out_cnt : 4;
+ unsigned int prim_back_valid : 1;
+ unsigned int ALWAYS_ZERO0 : 2;
+ unsigned int clprim_in_back_vertex_store_indx_0 : 4;
+ unsigned int ALWAYS_ZERO1 : 2;
+ unsigned int clprim_in_back_vertex_store_indx_1 : 4;
+ unsigned int ALWAYS_ZERO2 : 2;
+ unsigned int clprim_in_back_vertex_store_indx_2 : 4;
+ unsigned int outputclprimtoclip_null_primitive : 1;
+ unsigned int clprim_in_back_event : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CLIPPER_DEBUG_REG10 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int primic_to_clprim_fifo_vertex_store_indx_2 : 4;
+ unsigned int ALWAYS_ZERO3 : 2;
+ unsigned int primic_to_clprim_fifo_vertex_store_indx_1 : 4;
+ unsigned int ALWAYS_ZERO2 : 2;
+ unsigned int primic_to_clprim_fifo_vertex_store_indx_0 : 4;
+ unsigned int ALWAYS_ZERO1 : 2;
+ unsigned int clprim_in_back_state_var_indx : 1;
+ unsigned int ALWAYS_ZERO0 : 2;
+ unsigned int clprim_in_back_end_of_packet : 1;
+ unsigned int clprim_in_back_first_prim_of_slot : 1;
+ unsigned int clprim_in_back_deallocate_slot : 3;
+ unsigned int clprim_in_back_event_id : 6;
+#else /* !defined(qLittleEndian) */
+ unsigned int clprim_in_back_event_id : 6;
+ unsigned int clprim_in_back_deallocate_slot : 3;
+ unsigned int clprim_in_back_first_prim_of_slot : 1;
+ unsigned int clprim_in_back_end_of_packet : 1;
+ unsigned int ALWAYS_ZERO0 : 2;
+ unsigned int clprim_in_back_state_var_indx : 1;
+ unsigned int ALWAYS_ZERO1 : 2;
+ unsigned int primic_to_clprim_fifo_vertex_store_indx_0 : 4;
+ unsigned int ALWAYS_ZERO2 : 2;
+ unsigned int primic_to_clprim_fifo_vertex_store_indx_1 : 4;
+ unsigned int ALWAYS_ZERO3 : 2;
+ unsigned int primic_to_clprim_fifo_vertex_store_indx_2 : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CLIPPER_DEBUG_REG11 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int vertval_bits_vertex_vertex_store_msb : 4;
+ unsigned int ALWAYS_ZERO : 28;
+#else /* !defined(qLittleEndian) */
+ unsigned int ALWAYS_ZERO : 28;
+ unsigned int vertval_bits_vertex_vertex_store_msb : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CLIPPER_DEBUG_REG12 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int clip_priority_available_vte_out_clip : 2;
+ unsigned int ALWAYS_ZERO2 : 3;
+ unsigned int clip_vertex_fifo_empty : 1;
+ unsigned int clip_priority_available_clip_verts : 5;
+ unsigned int ALWAYS_ZERO1 : 4;
+ unsigned int vertval_bits_vertex_cc_next_valid : 4;
+ unsigned int clipcc_vertex_store_indx : 2;
+ unsigned int primic_to_clprim_valid : 1;
+ unsigned int ALWAYS_ZERO0 : 10;
+#else /* !defined(qLittleEndian) */
+ unsigned int ALWAYS_ZERO0 : 10;
+ unsigned int primic_to_clprim_valid : 1;
+ unsigned int clipcc_vertex_store_indx : 2;
+ unsigned int vertval_bits_vertex_cc_next_valid : 4;
+ unsigned int ALWAYS_ZERO1 : 4;
+ unsigned int clip_priority_available_clip_verts : 5;
+ unsigned int clip_vertex_fifo_empty : 1;
+ unsigned int ALWAYS_ZERO2 : 3;
+ unsigned int clip_priority_available_vte_out_clip : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CLIPPER_DEBUG_REG13 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int sm0_clip_vert_cnt : 4;
+ unsigned int sm0_prim_end_state : 7;
+ unsigned int ALWAYS_ZERO1 : 3;
+ unsigned int sm0_vertex_clip_cnt : 4;
+ unsigned int sm0_inv_to_clip_data_valid_1 : 1;
+ unsigned int sm0_inv_to_clip_data_valid_0 : 1;
+ unsigned int sm0_current_state : 7;
+ unsigned int ALWAYS_ZERO0 : 5;
+#else /* !defined(qLittleEndian) */
+ unsigned int ALWAYS_ZERO0 : 5;
+ unsigned int sm0_current_state : 7;
+ unsigned int sm0_inv_to_clip_data_valid_0 : 1;
+ unsigned int sm0_inv_to_clip_data_valid_1 : 1;
+ unsigned int sm0_vertex_clip_cnt : 4;
+ unsigned int ALWAYS_ZERO1 : 3;
+ unsigned int sm0_prim_end_state : 7;
+ unsigned int sm0_clip_vert_cnt : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SXIFCCG_DEBUG_REG0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int nan_kill_flag : 4;
+ unsigned int position_address : 3;
+ unsigned int ALWAYS_ZERO2 : 3;
+ unsigned int point_address : 3;
+ unsigned int ALWAYS_ZERO1 : 3;
+ unsigned int sx_pending_rd_state_var_indx : 1;
+ unsigned int ALWAYS_ZERO0 : 2;
+ unsigned int sx_pending_rd_req_mask : 4;
+ unsigned int sx_pending_rd_pci : 7;
+ unsigned int sx_pending_rd_aux_inc : 1;
+ unsigned int sx_pending_rd_aux_sel : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int sx_pending_rd_aux_sel : 1;
+ unsigned int sx_pending_rd_aux_inc : 1;
+ unsigned int sx_pending_rd_pci : 7;
+ unsigned int sx_pending_rd_req_mask : 4;
+ unsigned int ALWAYS_ZERO0 : 2;
+ unsigned int sx_pending_rd_state_var_indx : 1;
+ unsigned int ALWAYS_ZERO1 : 3;
+ unsigned int point_address : 3;
+ unsigned int ALWAYS_ZERO2 : 3;
+ unsigned int position_address : 3;
+ unsigned int nan_kill_flag : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SXIFCCG_DEBUG_REG1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ALWAYS_ZERO3 : 2;
+ unsigned int sx_to_pa_empty : 2;
+ unsigned int available_positions : 3;
+ unsigned int ALWAYS_ZERO2 : 4;
+ unsigned int sx_pending_advance : 1;
+ unsigned int sx_receive_indx : 3;
+ unsigned int statevar_bits_sxpa_aux_vector : 1;
+ unsigned int ALWAYS_ZERO1 : 4;
+ unsigned int aux_sel : 1;
+ unsigned int ALWAYS_ZERO0 : 2;
+ unsigned int pasx_req_cnt : 2;
+ unsigned int param_cache_base : 7;
+#else /* !defined(qLittleEndian) */
+ unsigned int param_cache_base : 7;
+ unsigned int pasx_req_cnt : 2;
+ unsigned int ALWAYS_ZERO0 : 2;
+ unsigned int aux_sel : 1;
+ unsigned int ALWAYS_ZERO1 : 4;
+ unsigned int statevar_bits_sxpa_aux_vector : 1;
+ unsigned int sx_receive_indx : 3;
+ unsigned int sx_pending_advance : 1;
+ unsigned int ALWAYS_ZERO2 : 4;
+ unsigned int available_positions : 3;
+ unsigned int sx_to_pa_empty : 2;
+ unsigned int ALWAYS_ZERO3 : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SXIFCCG_DEBUG_REG2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int sx_sent : 1;
+ unsigned int ALWAYS_ZERO3 : 1;
+ unsigned int sx_aux : 1;
+ unsigned int sx_request_indx : 6;
+ unsigned int req_active_verts : 7;
+ unsigned int ALWAYS_ZERO2 : 1;
+ unsigned int vgt_to_ccgen_state_var_indx : 1;
+ unsigned int ALWAYS_ZERO1 : 2;
+ unsigned int vgt_to_ccgen_active_verts : 2;
+ unsigned int ALWAYS_ZERO0 : 4;
+ unsigned int req_active_verts_loaded : 1;
+ unsigned int sx_pending_fifo_empty : 1;
+ unsigned int sx_pending_fifo_full : 1;
+ unsigned int sx_pending_fifo_contents : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int sx_pending_fifo_contents : 3;
+ unsigned int sx_pending_fifo_full : 1;
+ unsigned int sx_pending_fifo_empty : 1;
+ unsigned int req_active_verts_loaded : 1;
+ unsigned int ALWAYS_ZERO0 : 4;
+ unsigned int vgt_to_ccgen_active_verts : 2;
+ unsigned int ALWAYS_ZERO1 : 2;
+ unsigned int vgt_to_ccgen_state_var_indx : 1;
+ unsigned int ALWAYS_ZERO2 : 1;
+ unsigned int req_active_verts : 7;
+ unsigned int sx_request_indx : 6;
+ unsigned int sx_aux : 1;
+ unsigned int ALWAYS_ZERO3 : 1;
+ unsigned int sx_sent : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SXIFCCG_DEBUG_REG3 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int vertex_fifo_entriesavailable : 4;
+ unsigned int ALWAYS_ZERO3 : 1;
+ unsigned int available_positions : 3;
+ unsigned int ALWAYS_ZERO2 : 4;
+ unsigned int current_state : 2;
+ unsigned int vertex_fifo_empty : 1;
+ unsigned int vertex_fifo_full : 1;
+ unsigned int ALWAYS_ZERO1 : 2;
+ unsigned int sx0_receive_fifo_empty : 1;
+ unsigned int sx0_receive_fifo_full : 1;
+ unsigned int vgt_to_ccgen_fifo_empty : 1;
+ unsigned int vgt_to_ccgen_fifo_full : 1;
+ unsigned int ALWAYS_ZERO0 : 10;
+#else /* !defined(qLittleEndian) */
+ unsigned int ALWAYS_ZERO0 : 10;
+ unsigned int vgt_to_ccgen_fifo_full : 1;
+ unsigned int vgt_to_ccgen_fifo_empty : 1;
+ unsigned int sx0_receive_fifo_full : 1;
+ unsigned int sx0_receive_fifo_empty : 1;
+ unsigned int ALWAYS_ZERO1 : 2;
+ unsigned int vertex_fifo_full : 1;
+ unsigned int vertex_fifo_empty : 1;
+ unsigned int current_state : 2;
+ unsigned int ALWAYS_ZERO2 : 4;
+ unsigned int available_positions : 3;
+ unsigned int ALWAYS_ZERO3 : 1;
+ unsigned int vertex_fifo_entriesavailable : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SETUP_DEBUG_REG0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int su_cntl_state : 5;
+ unsigned int pmode_state : 6;
+ unsigned int ge_stallb : 1;
+ unsigned int geom_enable : 1;
+ unsigned int su_clip_baryc_rtr : 1;
+ unsigned int su_clip_rtr : 1;
+ unsigned int pfifo_busy : 1;
+ unsigned int su_cntl_busy : 1;
+ unsigned int geom_busy : 1;
+ unsigned int : 14;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 14;
+ unsigned int geom_busy : 1;
+ unsigned int su_cntl_busy : 1;
+ unsigned int pfifo_busy : 1;
+ unsigned int su_clip_rtr : 1;
+ unsigned int su_clip_baryc_rtr : 1;
+ unsigned int geom_enable : 1;
+ unsigned int ge_stallb : 1;
+ unsigned int pmode_state : 6;
+ unsigned int su_cntl_state : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SETUP_DEBUG_REG1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int y_sort0_gated_17_4 : 14;
+ unsigned int x_sort0_gated_17_4 : 14;
+ unsigned int : 4;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 4;
+ unsigned int x_sort0_gated_17_4 : 14;
+ unsigned int y_sort0_gated_17_4 : 14;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SETUP_DEBUG_REG2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int y_sort1_gated_17_4 : 14;
+ unsigned int x_sort1_gated_17_4 : 14;
+ unsigned int : 4;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 4;
+ unsigned int x_sort1_gated_17_4 : 14;
+ unsigned int y_sort1_gated_17_4 : 14;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SETUP_DEBUG_REG3 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int y_sort2_gated_17_4 : 14;
+ unsigned int x_sort2_gated_17_4 : 14;
+ unsigned int : 4;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 4;
+ unsigned int x_sort2_gated_17_4 : 14;
+ unsigned int y_sort2_gated_17_4 : 14;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SETUP_DEBUG_REG4 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int attr_indx_sort0_gated : 11;
+ unsigned int null_prim_gated : 1;
+ unsigned int backfacing_gated : 1;
+ unsigned int st_indx_gated : 3;
+ unsigned int clipped_gated : 1;
+ unsigned int dealloc_slot_gated : 3;
+ unsigned int xmajor_gated : 1;
+ unsigned int diamond_rule_gated : 2;
+ unsigned int type_gated : 3;
+ unsigned int fpov_gated : 1;
+ unsigned int pmode_prim_gated : 1;
+ unsigned int event_gated : 1;
+ unsigned int eop_gated : 1;
+ unsigned int : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 2;
+ unsigned int eop_gated : 1;
+ unsigned int event_gated : 1;
+ unsigned int pmode_prim_gated : 1;
+ unsigned int fpov_gated : 1;
+ unsigned int type_gated : 3;
+ unsigned int diamond_rule_gated : 2;
+ unsigned int xmajor_gated : 1;
+ unsigned int dealloc_slot_gated : 3;
+ unsigned int clipped_gated : 1;
+ unsigned int st_indx_gated : 3;
+ unsigned int backfacing_gated : 1;
+ unsigned int null_prim_gated : 1;
+ unsigned int attr_indx_sort0_gated : 11;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SETUP_DEBUG_REG5 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int attr_indx_sort2_gated : 11;
+ unsigned int attr_indx_sort1_gated : 11;
+ unsigned int provoking_vtx_gated : 2;
+ unsigned int event_id_gated : 5;
+ unsigned int : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 3;
+ unsigned int event_id_gated : 5;
+ unsigned int provoking_vtx_gated : 2;
+ unsigned int attr_indx_sort1_gated : 11;
+ unsigned int attr_indx_sort2_gated : 11;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_DEBUG_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SC_DEBUG_INDX : 5;
+ unsigned int : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 27;
+ unsigned int SC_DEBUG_INDX : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union PA_SC_DEBUG_DATA {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DATA : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int DATA : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SC_DEBUG_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int pa_freeze_b1 : 1;
+ unsigned int pa_sc_valid : 1;
+ unsigned int pa_sc_phase : 3;
+ unsigned int cntx_cnt : 7;
+ unsigned int decr_cntx_cnt : 1;
+ unsigned int incr_cntx_cnt : 1;
+ unsigned int : 17;
+ unsigned int trigger : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int trigger : 1;
+ unsigned int : 17;
+ unsigned int incr_cntx_cnt : 1;
+ unsigned int decr_cntx_cnt : 1;
+ unsigned int cntx_cnt : 7;
+ unsigned int pa_sc_phase : 3;
+ unsigned int pa_sc_valid : 1;
+ unsigned int pa_freeze_b1 : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SC_DEBUG_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int em_state : 3;
+ unsigned int em1_data_ready : 1;
+ unsigned int em2_data_ready : 1;
+ unsigned int move_em1_to_em2 : 1;
+ unsigned int ef_data_ready : 1;
+ unsigned int ef_state : 2;
+ unsigned int pipe_valid : 1;
+ unsigned int : 21;
+ unsigned int trigger : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int trigger : 1;
+ unsigned int : 21;
+ unsigned int pipe_valid : 1;
+ unsigned int ef_state : 2;
+ unsigned int ef_data_ready : 1;
+ unsigned int move_em1_to_em2 : 1;
+ unsigned int em2_data_ready : 1;
+ unsigned int em1_data_ready : 1;
+ unsigned int em_state : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SC_DEBUG_2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int rc_rtr_dly : 1;
+ unsigned int qmask_ff_alm_full_d1 : 1;
+ unsigned int : 1;
+ unsigned int pipe_freeze_b : 1;
+ unsigned int prim_rts : 1;
+ unsigned int next_prim_rts_dly : 1;
+ unsigned int next_prim_rtr_dly : 1;
+ unsigned int pre_stage1_rts_d1 : 1;
+ unsigned int stage0_rts : 1;
+ unsigned int phase_rts_dly : 1;
+ unsigned int : 5;
+ unsigned int end_of_prim_s1_dly : 1;
+ unsigned int pass_empty_prim_s1 : 1;
+ unsigned int event_id_s1 : 5;
+ unsigned int event_s1 : 1;
+ unsigned int : 8;
+ unsigned int trigger : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int trigger : 1;
+ unsigned int : 8;
+ unsigned int event_s1 : 1;
+ unsigned int event_id_s1 : 5;
+ unsigned int pass_empty_prim_s1 : 1;
+ unsigned int end_of_prim_s1_dly : 1;
+ unsigned int : 5;
+ unsigned int phase_rts_dly : 1;
+ unsigned int stage0_rts : 1;
+ unsigned int pre_stage1_rts_d1 : 1;
+ unsigned int next_prim_rtr_dly : 1;
+ unsigned int next_prim_rts_dly : 1;
+ unsigned int prim_rts : 1;
+ unsigned int pipe_freeze_b : 1;
+ unsigned int : 1;
+ unsigned int qmask_ff_alm_full_d1 : 1;
+ unsigned int rc_rtr_dly : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SC_DEBUG_3 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int x_curr_s1 : 11;
+ unsigned int y_curr_s1 : 11;
+ unsigned int : 9;
+ unsigned int trigger : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int trigger : 1;
+ unsigned int : 9;
+ unsigned int y_curr_s1 : 11;
+ unsigned int x_curr_s1 : 11;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SC_DEBUG_4 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int y_end_s1 : 14;
+ unsigned int y_start_s1 : 14;
+ unsigned int y_dir_s1 : 1;
+ unsigned int : 2;
+ unsigned int trigger : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int trigger : 1;
+ unsigned int : 2;
+ unsigned int y_dir_s1 : 1;
+ unsigned int y_start_s1 : 14;
+ unsigned int y_end_s1 : 14;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SC_DEBUG_5 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int x_end_s1 : 14;
+ unsigned int x_start_s1 : 14;
+ unsigned int x_dir_s1 : 1;
+ unsigned int : 2;
+ unsigned int trigger : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int trigger : 1;
+ unsigned int : 2;
+ unsigned int x_dir_s1 : 1;
+ unsigned int x_start_s1 : 14;
+ unsigned int x_end_s1 : 14;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SC_DEBUG_6 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int z_ff_empty : 1;
+ unsigned int qmcntl_ff_empty : 1;
+ unsigned int xy_ff_empty : 1;
+ unsigned int event_flag : 1;
+ unsigned int z_mask_needed : 1;
+ unsigned int state : 3;
+ unsigned int state_delayed : 3;
+ unsigned int data_valid : 1;
+ unsigned int data_valid_d : 1;
+ unsigned int tilex_delayed : 9;
+ unsigned int tiley_delayed : 9;
+ unsigned int trigger : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int trigger : 1;
+ unsigned int tiley_delayed : 9;
+ unsigned int tilex_delayed : 9;
+ unsigned int data_valid_d : 1;
+ unsigned int data_valid : 1;
+ unsigned int state_delayed : 3;
+ unsigned int state : 3;
+ unsigned int z_mask_needed : 1;
+ unsigned int event_flag : 1;
+ unsigned int xy_ff_empty : 1;
+ unsigned int qmcntl_ff_empty : 1;
+ unsigned int z_ff_empty : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SC_DEBUG_7 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int event_flag : 1;
+ unsigned int deallocate : 3;
+ unsigned int fposition : 1;
+ unsigned int sr_prim_we : 1;
+ unsigned int last_tile : 1;
+ unsigned int tile_ff_we : 1;
+ unsigned int qs_data_valid : 1;
+ unsigned int qs_q0_y : 2;
+ unsigned int qs_q0_x : 2;
+ unsigned int qs_q0_valid : 1;
+ unsigned int prim_ff_we : 1;
+ unsigned int tile_ff_re : 1;
+ unsigned int fw_prim_data_valid : 1;
+ unsigned int last_quad_of_tile : 1;
+ unsigned int first_quad_of_tile : 1;
+ unsigned int first_quad_of_prim : 1;
+ unsigned int new_prim : 1;
+ unsigned int load_new_tile_data : 1;
+ unsigned int state : 2;
+ unsigned int fifos_ready : 1;
+ unsigned int : 6;
+ unsigned int trigger : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int trigger : 1;
+ unsigned int : 6;
+ unsigned int fifos_ready : 1;
+ unsigned int state : 2;
+ unsigned int load_new_tile_data : 1;
+ unsigned int new_prim : 1;
+ unsigned int first_quad_of_prim : 1;
+ unsigned int first_quad_of_tile : 1;
+ unsigned int last_quad_of_tile : 1;
+ unsigned int fw_prim_data_valid : 1;
+ unsigned int tile_ff_re : 1;
+ unsigned int prim_ff_we : 1;
+ unsigned int qs_q0_valid : 1;
+ unsigned int qs_q0_x : 2;
+ unsigned int qs_q0_y : 2;
+ unsigned int qs_data_valid : 1;
+ unsigned int tile_ff_we : 1;
+ unsigned int last_tile : 1;
+ unsigned int sr_prim_we : 1;
+ unsigned int fposition : 1;
+ unsigned int deallocate : 3;
+ unsigned int event_flag : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SC_DEBUG_8 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int sample_last : 1;
+ unsigned int sample_mask : 4;
+ unsigned int sample_y : 2;
+ unsigned int sample_x : 2;
+ unsigned int sample_send : 1;
+ unsigned int next_cycle : 2;
+ unsigned int ez_sample_ff_full : 1;
+ unsigned int rb_sc_samp_rtr : 1;
+ unsigned int num_samples : 2;
+ unsigned int last_quad_of_tile : 1;
+ unsigned int last_quad_of_prim : 1;
+ unsigned int first_quad_of_prim : 1;
+ unsigned int sample_we : 1;
+ unsigned int fposition : 1;
+ unsigned int event_id : 5;
+ unsigned int event_flag : 1;
+ unsigned int fw_prim_data_valid : 1;
+ unsigned int : 3;
+ unsigned int trigger : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int trigger : 1;
+ unsigned int : 3;
+ unsigned int fw_prim_data_valid : 1;
+ unsigned int event_flag : 1;
+ unsigned int event_id : 5;
+ unsigned int fposition : 1;
+ unsigned int sample_we : 1;
+ unsigned int first_quad_of_prim : 1;
+ unsigned int last_quad_of_prim : 1;
+ unsigned int last_quad_of_tile : 1;
+ unsigned int num_samples : 2;
+ unsigned int rb_sc_samp_rtr : 1;
+ unsigned int ez_sample_ff_full : 1;
+ unsigned int next_cycle : 2;
+ unsigned int sample_send : 1;
+ unsigned int sample_x : 2;
+ unsigned int sample_y : 2;
+ unsigned int sample_mask : 4;
+ unsigned int sample_last : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SC_DEBUG_9 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int rb_sc_send : 1;
+ unsigned int rb_sc_ez_mask : 4;
+ unsigned int fifo_data_ready : 1;
+ unsigned int early_z_enable : 1;
+ unsigned int mask_state : 2;
+ unsigned int next_ez_mask : 16;
+ unsigned int mask_ready : 1;
+ unsigned int drop_sample : 1;
+ unsigned int fetch_new_sample_data : 1;
+ unsigned int fetch_new_ez_sample_mask : 1;
+ unsigned int pkr_fetch_new_sample_data : 1;
+ unsigned int pkr_fetch_new_prim_data : 1;
+ unsigned int trigger : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int trigger : 1;
+ unsigned int pkr_fetch_new_prim_data : 1;
+ unsigned int pkr_fetch_new_sample_data : 1;
+ unsigned int fetch_new_ez_sample_mask : 1;
+ unsigned int fetch_new_sample_data : 1;
+ unsigned int drop_sample : 1;
+ unsigned int mask_ready : 1;
+ unsigned int next_ez_mask : 16;
+ unsigned int mask_state : 2;
+ unsigned int early_z_enable : 1;
+ unsigned int fifo_data_ready : 1;
+ unsigned int rb_sc_ez_mask : 4;
+ unsigned int rb_sc_send : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SC_DEBUG_10 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int combined_sample_mask : 16;
+ unsigned int : 15;
+ unsigned int trigger : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int trigger : 1;
+ unsigned int : 15;
+ unsigned int combined_sample_mask : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SC_DEBUG_11 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ez_sample_data_ready : 1;
+ unsigned int pkr_fetch_new_sample_data : 1;
+ unsigned int ez_prim_data_ready : 1;
+ unsigned int pkr_fetch_new_prim_data : 1;
+ unsigned int iterator_input_fz : 1;
+ unsigned int packer_send_quads : 1;
+ unsigned int packer_send_cmd : 1;
+ unsigned int packer_send_event : 1;
+ unsigned int next_state : 3;
+ unsigned int state : 3;
+ unsigned int stall : 1;
+ unsigned int : 16;
+ unsigned int trigger : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int trigger : 1;
+ unsigned int : 16;
+ unsigned int stall : 1;
+ unsigned int state : 3;
+ unsigned int next_state : 3;
+ unsigned int packer_send_event : 1;
+ unsigned int packer_send_cmd : 1;
+ unsigned int packer_send_quads : 1;
+ unsigned int iterator_input_fz : 1;
+ unsigned int pkr_fetch_new_prim_data : 1;
+ unsigned int ez_prim_data_ready : 1;
+ unsigned int pkr_fetch_new_sample_data : 1;
+ unsigned int ez_sample_data_ready : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SC_DEBUG_12 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SQ_iterator_free_buff : 1;
+ unsigned int event_id : 5;
+ unsigned int event_flag : 1;
+ unsigned int itercmdfifo_busy_nc_dly : 1;
+ unsigned int itercmdfifo_full : 1;
+ unsigned int itercmdfifo_empty : 1;
+ unsigned int iter_ds_one_clk_command : 1;
+ unsigned int iter_ds_end_of_prim0 : 1;
+ unsigned int iter_ds_end_of_vector : 1;
+ unsigned int iter_qdhit0 : 1;
+ unsigned int bc_use_centers_reg : 1;
+ unsigned int bc_output_xy_reg : 1;
+ unsigned int iter_phase_out : 2;
+ unsigned int iter_phase_reg : 2;
+ unsigned int iterator_SP_valid : 1;
+ unsigned int eopv_reg : 1;
+ unsigned int one_clk_cmd_reg : 1;
+ unsigned int iter_dx_end_of_prim : 1;
+ unsigned int : 7;
+ unsigned int trigger : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int trigger : 1;
+ unsigned int : 7;
+ unsigned int iter_dx_end_of_prim : 1;
+ unsigned int one_clk_cmd_reg : 1;
+ unsigned int eopv_reg : 1;
+ unsigned int iterator_SP_valid : 1;
+ unsigned int iter_phase_reg : 2;
+ unsigned int iter_phase_out : 2;
+ unsigned int bc_output_xy_reg : 1;
+ unsigned int bc_use_centers_reg : 1;
+ unsigned int iter_qdhit0 : 1;
+ unsigned int iter_ds_end_of_vector : 1;
+ unsigned int iter_ds_end_of_prim0 : 1;
+ unsigned int iter_ds_one_clk_command : 1;
+ unsigned int itercmdfifo_empty : 1;
+ unsigned int itercmdfifo_full : 1;
+ unsigned int itercmdfifo_busy_nc_dly : 1;
+ unsigned int event_flag : 1;
+ unsigned int event_id : 5;
+ unsigned int SQ_iterator_free_buff : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union GFX_COPY_STATE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SRC_STATE_ID : 1;
+ unsigned int : 31;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 31;
+ unsigned int SRC_STATE_ID : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DRAW_INITIATOR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PRIM_TYPE : 6;
+ unsigned int SOURCE_SELECT : 2;
+ unsigned int FACENESS_CULL_SELECT : 2;
+ unsigned int : 1;
+ unsigned int INDEX_SIZE : 1;
+ unsigned int NOT_EOP : 1;
+ unsigned int SMALL_INDEX : 1;
+ unsigned int PRE_FETCH_CULL_ENABLE : 1;
+ unsigned int GRP_CULL_ENABLE : 1;
+ unsigned int NUM_INDICES : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int NUM_INDICES : 16;
+ unsigned int GRP_CULL_ENABLE : 1;
+ unsigned int PRE_FETCH_CULL_ENABLE : 1;
+ unsigned int SMALL_INDEX : 1;
+ unsigned int NOT_EOP : 1;
+ unsigned int INDEX_SIZE : 1;
+ unsigned int : 1;
+ unsigned int FACENESS_CULL_SELECT : 2;
+ unsigned int SOURCE_SELECT : 2;
+ unsigned int PRIM_TYPE : 6;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_EVENT_INITIATOR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int EVENT_TYPE : 6;
+ unsigned int : 26;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 26;
+ unsigned int EVENT_TYPE : 6;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DMA_BASE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BASE_ADDR : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BASE_ADDR : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DMA_SIZE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int NUM_WORDS : 24;
+ unsigned int : 6;
+ unsigned int SWAP_MODE : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int SWAP_MODE : 2;
+ unsigned int : 6;
+ unsigned int NUM_WORDS : 24;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_BIN_BASE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIN_BASE_ADDR : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIN_BASE_ADDR : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_BIN_SIZE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int NUM_WORDS : 24;
+ unsigned int : 6;
+ unsigned int FACENESS_FETCH : 1;
+ unsigned int FACENESS_RESET : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int FACENESS_RESET : 1;
+ unsigned int FACENESS_FETCH : 1;
+ unsigned int : 6;
+ unsigned int NUM_WORDS : 24;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_CURRENT_BIN_ID_MIN {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int COLUMN : 3;
+ unsigned int ROW : 3;
+ unsigned int GUARD_BAND : 3;
+ unsigned int : 23;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 23;
+ unsigned int GUARD_BAND : 3;
+ unsigned int ROW : 3;
+ unsigned int COLUMN : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_CURRENT_BIN_ID_MAX {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int COLUMN : 3;
+ unsigned int ROW : 3;
+ unsigned int GUARD_BAND : 3;
+ unsigned int : 23;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 23;
+ unsigned int GUARD_BAND : 3;
+ unsigned int ROW : 3;
+ unsigned int COLUMN : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_IMMED_DATA {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DATA : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int DATA : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_MAX_VTX_INDX {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MAX_INDX : 24;
+ unsigned int : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 8;
+ unsigned int MAX_INDX : 24;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_MIN_VTX_INDX {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MIN_INDX : 24;
+ unsigned int : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 8;
+ unsigned int MIN_INDX : 24;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_INDX_OFFSET {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int INDX_OFFSET : 24;
+ unsigned int : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 8;
+ unsigned int INDX_OFFSET : 24;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_VERTEX_REUSE_BLOCK_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VTX_REUSE_DEPTH : 3;
+ unsigned int : 29;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 29;
+ unsigned int VTX_REUSE_DEPTH : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_OUT_DEALLOC_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DEALLOC_DIST : 2;
+ unsigned int : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 30;
+ unsigned int DEALLOC_DIST : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_MULTI_PRIM_IB_RESET_INDX {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RESET_INDX : 24;
+ unsigned int : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 8;
+ unsigned int RESET_INDX : 24;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_ENHANCE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MISC : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int MISC : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_VTX_VECT_EJECT_REG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PRIM_COUNT : 5;
+ unsigned int : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 27;
+ unsigned int PRIM_COUNT : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_LAST_COPY_STATE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SRC_STATE_ID : 1;
+ unsigned int : 15;
+ unsigned int DST_STATE_ID : 1;
+ unsigned int : 15;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 15;
+ unsigned int DST_STATE_ID : 1;
+ unsigned int : 15;
+ unsigned int SRC_STATE_ID : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VGT_DEBUG_INDX : 5;
+ unsigned int : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 27;
+ unsigned int VGT_DEBUG_INDX : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_DATA {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DATA : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int DATA : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_CNTL_STATUS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VGT_BUSY : 1;
+ unsigned int VGT_DMA_BUSY : 1;
+ unsigned int VGT_DMA_REQ_BUSY : 1;
+ unsigned int VGT_GRP_BUSY : 1;
+ unsigned int VGT_VR_BUSY : 1;
+ unsigned int VGT_BIN_BUSY : 1;
+ unsigned int VGT_PT_BUSY : 1;
+ unsigned int VGT_OUT_BUSY : 1;
+ unsigned int VGT_OUT_INDX_BUSY : 1;
+ unsigned int : 23;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 23;
+ unsigned int VGT_OUT_INDX_BUSY : 1;
+ unsigned int VGT_OUT_BUSY : 1;
+ unsigned int VGT_PT_BUSY : 1;
+ unsigned int VGT_BIN_BUSY : 1;
+ unsigned int VGT_VR_BUSY : 1;
+ unsigned int VGT_GRP_BUSY : 1;
+ unsigned int VGT_DMA_REQ_BUSY : 1;
+ unsigned int VGT_DMA_BUSY : 1;
+ unsigned int VGT_BUSY : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_REG0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int te_grp_busy : 1;
+ unsigned int pt_grp_busy : 1;
+ unsigned int vr_grp_busy : 1;
+ unsigned int dma_request_busy : 1;
+ unsigned int out_busy : 1;
+ unsigned int grp_backend_busy : 1;
+ unsigned int grp_busy : 1;
+ unsigned int dma_busy : 1;
+ unsigned int rbiu_dma_request_busy : 1;
+ unsigned int rbiu_busy : 1;
+ unsigned int vgt_no_dma_busy_extended : 1;
+ unsigned int vgt_no_dma_busy : 1;
+ unsigned int vgt_busy_extended : 1;
+ unsigned int vgt_busy : 1;
+ unsigned int rbbm_skid_fifo_busy_out : 1;
+ unsigned int VGT_RBBM_no_dma_busy : 1;
+ unsigned int VGT_RBBM_busy : 1;
+ unsigned int : 15;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 15;
+ unsigned int VGT_RBBM_busy : 1;
+ unsigned int VGT_RBBM_no_dma_busy : 1;
+ unsigned int rbbm_skid_fifo_busy_out : 1;
+ unsigned int vgt_busy : 1;
+ unsigned int vgt_busy_extended : 1;
+ unsigned int vgt_no_dma_busy : 1;
+ unsigned int vgt_no_dma_busy_extended : 1;
+ unsigned int rbiu_busy : 1;
+ unsigned int rbiu_dma_request_busy : 1;
+ unsigned int dma_busy : 1;
+ unsigned int grp_busy : 1;
+ unsigned int grp_backend_busy : 1;
+ unsigned int out_busy : 1;
+ unsigned int dma_request_busy : 1;
+ unsigned int vr_grp_busy : 1;
+ unsigned int pt_grp_busy : 1;
+ unsigned int te_grp_busy : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_REG1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int out_te_data_read : 1;
+ unsigned int te_out_data_valid : 1;
+ unsigned int out_pt_prim_read : 1;
+ unsigned int pt_out_prim_valid : 1;
+ unsigned int out_pt_data_read : 1;
+ unsigned int pt_out_indx_valid : 1;
+ unsigned int out_vr_prim_read : 1;
+ unsigned int vr_out_prim_valid : 1;
+ unsigned int out_vr_indx_read : 1;
+ unsigned int vr_out_indx_valid : 1;
+ unsigned int te_grp_read : 1;
+ unsigned int grp_te_valid : 1;
+ unsigned int pt_grp_read : 1;
+ unsigned int grp_pt_valid : 1;
+ unsigned int vr_grp_read : 1;
+ unsigned int grp_vr_valid : 1;
+ unsigned int grp_dma_read : 1;
+ unsigned int dma_grp_valid : 1;
+ unsigned int grp_rbiu_di_read : 1;
+ unsigned int rbiu_grp_di_valid : 1;
+ unsigned int MH_VGT_rtr : 1;
+ unsigned int VGT_MH_send : 1;
+ unsigned int PA_VGT_clip_s_rtr : 1;
+ unsigned int VGT_PA_clip_s_send : 1;
+ unsigned int PA_VGT_clip_p_rtr : 1;
+ unsigned int VGT_PA_clip_p_send : 1;
+ unsigned int PA_VGT_clip_v_rtr : 1;
+ unsigned int VGT_PA_clip_v_send : 1;
+ unsigned int SQ_VGT_rtr : 1;
+ unsigned int VGT_SQ_send : 1;
+ unsigned int mh_vgt_tag_7_q : 1;
+ unsigned int : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 1;
+ unsigned int mh_vgt_tag_7_q : 1;
+ unsigned int VGT_SQ_send : 1;
+ unsigned int SQ_VGT_rtr : 1;
+ unsigned int VGT_PA_clip_v_send : 1;
+ unsigned int PA_VGT_clip_v_rtr : 1;
+ unsigned int VGT_PA_clip_p_send : 1;
+ unsigned int PA_VGT_clip_p_rtr : 1;
+ unsigned int VGT_PA_clip_s_send : 1;
+ unsigned int PA_VGT_clip_s_rtr : 1;
+ unsigned int VGT_MH_send : 1;
+ unsigned int MH_VGT_rtr : 1;
+ unsigned int rbiu_grp_di_valid : 1;
+ unsigned int grp_rbiu_di_read : 1;
+ unsigned int dma_grp_valid : 1;
+ unsigned int grp_dma_read : 1;
+ unsigned int grp_vr_valid : 1;
+ unsigned int vr_grp_read : 1;
+ unsigned int grp_pt_valid : 1;
+ unsigned int pt_grp_read : 1;
+ unsigned int grp_te_valid : 1;
+ unsigned int te_grp_read : 1;
+ unsigned int vr_out_indx_valid : 1;
+ unsigned int out_vr_indx_read : 1;
+ unsigned int vr_out_prim_valid : 1;
+ unsigned int out_vr_prim_read : 1;
+ unsigned int pt_out_indx_valid : 1;
+ unsigned int out_pt_data_read : 1;
+ unsigned int pt_out_prim_valid : 1;
+ unsigned int out_pt_prim_read : 1;
+ unsigned int te_out_data_valid : 1;
+ unsigned int out_te_data_read : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_REG3 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int vgt_clk_en : 1;
+ unsigned int reg_fifos_clk_en : 1;
+ unsigned int : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 30;
+ unsigned int reg_fifos_clk_en : 1;
+ unsigned int vgt_clk_en : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_REG6 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int shifter_byte_count_q : 5;
+ unsigned int right_word_indx_q : 5;
+ unsigned int input_data_valid : 1;
+ unsigned int input_data_xfer : 1;
+ unsigned int next_shift_is_vect_1_q : 1;
+ unsigned int next_shift_is_vect_1_d : 1;
+ unsigned int next_shift_is_vect_1_pre_d : 1;
+ unsigned int space_avail_from_shift : 1;
+ unsigned int shifter_first_load : 1;
+ unsigned int di_state_sel_q : 1;
+ unsigned int shifter_waiting_for_first_load_q : 1;
+ unsigned int di_first_group_flag_q : 1;
+ unsigned int di_event_flag_q : 1;
+ unsigned int read_draw_initiator : 1;
+ unsigned int loading_di_requires_shifter : 1;
+ unsigned int last_shift_of_packet : 1;
+ unsigned int last_decr_of_packet : 1;
+ unsigned int extract_vector : 1;
+ unsigned int shift_vect_rtr : 1;
+ unsigned int destination_rtr : 1;
+ unsigned int grp_trigger : 1;
+ unsigned int : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 3;
+ unsigned int grp_trigger : 1;
+ unsigned int destination_rtr : 1;
+ unsigned int shift_vect_rtr : 1;
+ unsigned int extract_vector : 1;
+ unsigned int last_decr_of_packet : 1;
+ unsigned int last_shift_of_packet : 1;
+ unsigned int loading_di_requires_shifter : 1;
+ unsigned int read_draw_initiator : 1;
+ unsigned int di_event_flag_q : 1;
+ unsigned int di_first_group_flag_q : 1;
+ unsigned int shifter_waiting_for_first_load_q : 1;
+ unsigned int di_state_sel_q : 1;
+ unsigned int shifter_first_load : 1;
+ unsigned int space_avail_from_shift : 1;
+ unsigned int next_shift_is_vect_1_pre_d : 1;
+ unsigned int next_shift_is_vect_1_d : 1;
+ unsigned int next_shift_is_vect_1_q : 1;
+ unsigned int input_data_xfer : 1;
+ unsigned int input_data_valid : 1;
+ unsigned int right_word_indx_q : 5;
+ unsigned int shifter_byte_count_q : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_REG7 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int di_index_counter_q : 16;
+ unsigned int shift_amount_no_extract : 4;
+ unsigned int shift_amount_extract : 4;
+ unsigned int di_prim_type_q : 6;
+ unsigned int current_source_sel : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int current_source_sel : 2;
+ unsigned int di_prim_type_q : 6;
+ unsigned int shift_amount_extract : 4;
+ unsigned int shift_amount_no_extract : 4;
+ unsigned int di_index_counter_q : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_REG8 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int current_source_sel : 2;
+ unsigned int left_word_indx_q : 5;
+ unsigned int input_data_cnt : 5;
+ unsigned int input_data_lsw : 5;
+ unsigned int input_data_msw : 5;
+ unsigned int next_small_stride_shift_limit_q : 5;
+ unsigned int current_small_stride_shift_limit_q : 5;
+#else /* !defined(qLittleEndian) */
+ unsigned int current_small_stride_shift_limit_q : 5;
+ unsigned int next_small_stride_shift_limit_q : 5;
+ unsigned int input_data_msw : 5;
+ unsigned int input_data_lsw : 5;
+ unsigned int input_data_cnt : 5;
+ unsigned int left_word_indx_q : 5;
+ unsigned int current_source_sel : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_REG9 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int next_stride_q : 5;
+ unsigned int next_stride_d : 5;
+ unsigned int current_shift_q : 5;
+ unsigned int current_shift_d : 5;
+ unsigned int current_stride_q : 5;
+ unsigned int current_stride_d : 5;
+ unsigned int grp_trigger : 1;
+ unsigned int : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 1;
+ unsigned int grp_trigger : 1;
+ unsigned int current_stride_d : 5;
+ unsigned int current_stride_q : 5;
+ unsigned int current_shift_d : 5;
+ unsigned int current_shift_q : 5;
+ unsigned int next_stride_d : 5;
+ unsigned int next_stride_q : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_REG10 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int temp_derived_di_prim_type_t0 : 1;
+ unsigned int temp_derived_di_small_index_t0 : 1;
+ unsigned int temp_derived_di_cull_enable_t0 : 1;
+ unsigned int temp_derived_di_pre_fetch_cull_enable_t0 : 1;
+ unsigned int di_state_sel_q : 1;
+ unsigned int last_decr_of_packet : 1;
+ unsigned int bin_valid : 1;
+ unsigned int read_block : 1;
+ unsigned int grp_bgrp_last_bit_read : 1;
+ unsigned int last_bit_enable_q : 1;
+ unsigned int last_bit_end_di_q : 1;
+ unsigned int selected_data : 8;
+ unsigned int mask_input_data : 8;
+ unsigned int gap_q : 1;
+ unsigned int temp_mini_reset_z : 1;
+ unsigned int temp_mini_reset_y : 1;
+ unsigned int temp_mini_reset_x : 1;
+ unsigned int grp_trigger : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int grp_trigger : 1;
+ unsigned int temp_mini_reset_x : 1;
+ unsigned int temp_mini_reset_y : 1;
+ unsigned int temp_mini_reset_z : 1;
+ unsigned int gap_q : 1;
+ unsigned int mask_input_data : 8;
+ unsigned int selected_data : 8;
+ unsigned int last_bit_end_di_q : 1;
+ unsigned int last_bit_enable_q : 1;
+ unsigned int grp_bgrp_last_bit_read : 1;
+ unsigned int read_block : 1;
+ unsigned int bin_valid : 1;
+ unsigned int last_decr_of_packet : 1;
+ unsigned int di_state_sel_q : 1;
+ unsigned int temp_derived_di_pre_fetch_cull_enable_t0 : 1;
+ unsigned int temp_derived_di_cull_enable_t0 : 1;
+ unsigned int temp_derived_di_small_index_t0 : 1;
+ unsigned int temp_derived_di_prim_type_t0 : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_REG12 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int shifter_byte_count_q : 5;
+ unsigned int right_word_indx_q : 5;
+ unsigned int input_data_valid : 1;
+ unsigned int input_data_xfer : 1;
+ unsigned int next_shift_is_vect_1_q : 1;
+ unsigned int next_shift_is_vect_1_d : 1;
+ unsigned int next_shift_is_vect_1_pre_d : 1;
+ unsigned int space_avail_from_shift : 1;
+ unsigned int shifter_first_load : 1;
+ unsigned int di_state_sel_q : 1;
+ unsigned int shifter_waiting_for_first_load_q : 1;
+ unsigned int di_first_group_flag_q : 1;
+ unsigned int di_event_flag_q : 1;
+ unsigned int read_draw_initiator : 1;
+ unsigned int loading_di_requires_shifter : 1;
+ unsigned int last_shift_of_packet : 1;
+ unsigned int last_decr_of_packet : 1;
+ unsigned int extract_vector : 1;
+ unsigned int shift_vect_rtr : 1;
+ unsigned int destination_rtr : 1;
+ unsigned int bgrp_trigger : 1;
+ unsigned int : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 3;
+ unsigned int bgrp_trigger : 1;
+ unsigned int destination_rtr : 1;
+ unsigned int shift_vect_rtr : 1;
+ unsigned int extract_vector : 1;
+ unsigned int last_decr_of_packet : 1;
+ unsigned int last_shift_of_packet : 1;
+ unsigned int loading_di_requires_shifter : 1;
+ unsigned int read_draw_initiator : 1;
+ unsigned int di_event_flag_q : 1;
+ unsigned int di_first_group_flag_q : 1;
+ unsigned int shifter_waiting_for_first_load_q : 1;
+ unsigned int di_state_sel_q : 1;
+ unsigned int shifter_first_load : 1;
+ unsigned int space_avail_from_shift : 1;
+ unsigned int next_shift_is_vect_1_pre_d : 1;
+ unsigned int next_shift_is_vect_1_d : 1;
+ unsigned int next_shift_is_vect_1_q : 1;
+ unsigned int input_data_xfer : 1;
+ unsigned int input_data_valid : 1;
+ unsigned int right_word_indx_q : 5;
+ unsigned int shifter_byte_count_q : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_REG13 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int di_index_counter_q : 16;
+ unsigned int shift_amount_no_extract : 4;
+ unsigned int shift_amount_extract : 4;
+ unsigned int di_prim_type_q : 6;
+ unsigned int current_source_sel : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int current_source_sel : 2;
+ unsigned int di_prim_type_q : 6;
+ unsigned int shift_amount_extract : 4;
+ unsigned int shift_amount_no_extract : 4;
+ unsigned int di_index_counter_q : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_REG14 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int current_source_sel : 2;
+ unsigned int left_word_indx_q : 5;
+ unsigned int input_data_cnt : 5;
+ unsigned int input_data_lsw : 5;
+ unsigned int input_data_msw : 5;
+ unsigned int next_small_stride_shift_limit_q : 5;
+ unsigned int current_small_stride_shift_limit_q : 5;
+#else /* !defined(qLittleEndian) */
+ unsigned int current_small_stride_shift_limit_q : 5;
+ unsigned int next_small_stride_shift_limit_q : 5;
+ unsigned int input_data_msw : 5;
+ unsigned int input_data_lsw : 5;
+ unsigned int input_data_cnt : 5;
+ unsigned int left_word_indx_q : 5;
+ unsigned int current_source_sel : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_REG15 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int next_stride_q : 5;
+ unsigned int next_stride_d : 5;
+ unsigned int current_shift_q : 5;
+ unsigned int current_shift_d : 5;
+ unsigned int current_stride_q : 5;
+ unsigned int current_stride_d : 5;
+ unsigned int bgrp_trigger : 1;
+ unsigned int : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 1;
+ unsigned int bgrp_trigger : 1;
+ unsigned int current_stride_d : 5;
+ unsigned int current_stride_q : 5;
+ unsigned int current_shift_d : 5;
+ unsigned int current_shift_q : 5;
+ unsigned int next_stride_d : 5;
+ unsigned int next_stride_q : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_REG16 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int bgrp_cull_fetch_fifo_full : 1;
+ unsigned int bgrp_cull_fetch_fifo_empty : 1;
+ unsigned int dma_bgrp_cull_fetch_read : 1;
+ unsigned int bgrp_cull_fetch_fifo_we : 1;
+ unsigned int bgrp_byte_mask_fifo_full : 1;
+ unsigned int bgrp_byte_mask_fifo_empty : 1;
+ unsigned int bgrp_byte_mask_fifo_re_q : 1;
+ unsigned int bgrp_byte_mask_fifo_we : 1;
+ unsigned int bgrp_dma_mask_kill : 1;
+ unsigned int bgrp_grp_bin_valid : 1;
+ unsigned int rst_last_bit : 1;
+ unsigned int current_state_q : 1;
+ unsigned int old_state_q : 1;
+ unsigned int old_state_en : 1;
+ unsigned int prev_last_bit_q : 1;
+ unsigned int dbl_last_bit_q : 1;
+ unsigned int last_bit_block_q : 1;
+ unsigned int ast_bit_block2_q : 1;
+ unsigned int load_empty_reg : 1;
+ unsigned int bgrp_grp_byte_mask_rdata : 8;
+ unsigned int dma_bgrp_dma_data_fifo_rptr : 2;
+ unsigned int top_di_pre_fetch_cull_enable : 1;
+ unsigned int top_di_grp_cull_enable_q : 1;
+ unsigned int bgrp_trigger : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int bgrp_trigger : 1;
+ unsigned int top_di_grp_cull_enable_q : 1;
+ unsigned int top_di_pre_fetch_cull_enable : 1;
+ unsigned int dma_bgrp_dma_data_fifo_rptr : 2;
+ unsigned int bgrp_grp_byte_mask_rdata : 8;
+ unsigned int load_empty_reg : 1;
+ unsigned int ast_bit_block2_q : 1;
+ unsigned int last_bit_block_q : 1;
+ unsigned int dbl_last_bit_q : 1;
+ unsigned int prev_last_bit_q : 1;
+ unsigned int old_state_en : 1;
+ unsigned int old_state_q : 1;
+ unsigned int current_state_q : 1;
+ unsigned int rst_last_bit : 1;
+ unsigned int bgrp_grp_bin_valid : 1;
+ unsigned int bgrp_dma_mask_kill : 1;
+ unsigned int bgrp_byte_mask_fifo_we : 1;
+ unsigned int bgrp_byte_mask_fifo_re_q : 1;
+ unsigned int bgrp_byte_mask_fifo_empty : 1;
+ unsigned int bgrp_byte_mask_fifo_full : 1;
+ unsigned int bgrp_cull_fetch_fifo_we : 1;
+ unsigned int dma_bgrp_cull_fetch_read : 1;
+ unsigned int bgrp_cull_fetch_fifo_empty : 1;
+ unsigned int bgrp_cull_fetch_fifo_full : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_REG17 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int save_read_q : 1;
+ unsigned int extend_read_q : 1;
+ unsigned int grp_indx_size : 2;
+ unsigned int cull_prim_true : 1;
+ unsigned int reset_bit2_q : 1;
+ unsigned int reset_bit1_q : 1;
+ unsigned int first_reg_first_q : 1;
+ unsigned int check_second_reg : 1;
+ unsigned int check_first_reg : 1;
+ unsigned int bgrp_cull_fetch_fifo_wdata : 1;
+ unsigned int save_cull_fetch_data2_q : 1;
+ unsigned int save_cull_fetch_data1_q : 1;
+ unsigned int save_byte_mask_data2_q : 1;
+ unsigned int save_byte_mask_data1_q : 1;
+ unsigned int to_second_reg_q : 1;
+ unsigned int roll_over_msk_q : 1;
+ unsigned int max_msk_ptr_q : 7;
+ unsigned int min_msk_ptr_q : 7;
+ unsigned int bgrp_trigger : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int bgrp_trigger : 1;
+ unsigned int min_msk_ptr_q : 7;
+ unsigned int max_msk_ptr_q : 7;
+ unsigned int roll_over_msk_q : 1;
+ unsigned int to_second_reg_q : 1;
+ unsigned int save_byte_mask_data1_q : 1;
+ unsigned int save_byte_mask_data2_q : 1;
+ unsigned int save_cull_fetch_data1_q : 1;
+ unsigned int save_cull_fetch_data2_q : 1;
+ unsigned int bgrp_cull_fetch_fifo_wdata : 1;
+ unsigned int check_first_reg : 1;
+ unsigned int check_second_reg : 1;
+ unsigned int first_reg_first_q : 1;
+ unsigned int reset_bit1_q : 1;
+ unsigned int reset_bit2_q : 1;
+ unsigned int cull_prim_true : 1;
+ unsigned int grp_indx_size : 2;
+ unsigned int extend_read_q : 1;
+ unsigned int save_read_q : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_REG18 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int dma_data_fifo_mem_raddr : 6;
+ unsigned int dma_data_fifo_mem_waddr : 6;
+ unsigned int dma_bgrp_byte_mask_fifo_re : 1;
+ unsigned int dma_bgrp_dma_data_fifo_rptr : 2;
+ unsigned int dma_mem_full : 1;
+ unsigned int dma_ram_re : 1;
+ unsigned int dma_ram_we : 1;
+ unsigned int dma_mem_empty : 1;
+ unsigned int dma_data_fifo_mem_re : 1;
+ unsigned int dma_data_fifo_mem_we : 1;
+ unsigned int bin_mem_full : 1;
+ unsigned int bin_ram_we : 1;
+ unsigned int bin_ram_re : 1;
+ unsigned int bin_mem_empty : 1;
+ unsigned int start_bin_req : 1;
+ unsigned int fetch_cull_not_used : 1;
+ unsigned int dma_req_xfer : 1;
+ unsigned int have_valid_bin_req : 1;
+ unsigned int have_valid_dma_req : 1;
+ unsigned int bgrp_dma_di_grp_cull_enable : 1;
+ unsigned int bgrp_dma_di_pre_fetch_cull_enable : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int bgrp_dma_di_pre_fetch_cull_enable : 1;
+ unsigned int bgrp_dma_di_grp_cull_enable : 1;
+ unsigned int have_valid_dma_req : 1;
+ unsigned int have_valid_bin_req : 1;
+ unsigned int dma_req_xfer : 1;
+ unsigned int fetch_cull_not_used : 1;
+ unsigned int start_bin_req : 1;
+ unsigned int bin_mem_empty : 1;
+ unsigned int bin_ram_re : 1;
+ unsigned int bin_ram_we : 1;
+ unsigned int bin_mem_full : 1;
+ unsigned int dma_data_fifo_mem_we : 1;
+ unsigned int dma_data_fifo_mem_re : 1;
+ unsigned int dma_mem_empty : 1;
+ unsigned int dma_ram_we : 1;
+ unsigned int dma_ram_re : 1;
+ unsigned int dma_mem_full : 1;
+ unsigned int dma_bgrp_dma_data_fifo_rptr : 2;
+ unsigned int dma_bgrp_byte_mask_fifo_re : 1;
+ unsigned int dma_data_fifo_mem_waddr : 6;
+ unsigned int dma_data_fifo_mem_raddr : 6;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_REG20 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int prim_side_indx_valid : 1;
+ unsigned int indx_side_fifo_empty : 1;
+ unsigned int indx_side_fifo_re : 1;
+ unsigned int indx_side_fifo_we : 1;
+ unsigned int indx_side_fifo_full : 1;
+ unsigned int prim_buffer_empty : 1;
+ unsigned int prim_buffer_re : 1;
+ unsigned int prim_buffer_we : 1;
+ unsigned int prim_buffer_full : 1;
+ unsigned int indx_buffer_empty : 1;
+ unsigned int indx_buffer_re : 1;
+ unsigned int indx_buffer_we : 1;
+ unsigned int indx_buffer_full : 1;
+ unsigned int hold_prim : 1;
+ unsigned int sent_cnt : 4;
+ unsigned int start_of_vtx_vector : 1;
+ unsigned int clip_s_pre_hold_prim : 1;
+ unsigned int clip_p_pre_hold_prim : 1;
+ unsigned int buffered_prim_type_event : 5;
+ unsigned int out_trigger : 1;
+ unsigned int : 5;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 5;
+ unsigned int out_trigger : 1;
+ unsigned int buffered_prim_type_event : 5;
+ unsigned int clip_p_pre_hold_prim : 1;
+ unsigned int clip_s_pre_hold_prim : 1;
+ unsigned int start_of_vtx_vector : 1;
+ unsigned int sent_cnt : 4;
+ unsigned int hold_prim : 1;
+ unsigned int indx_buffer_full : 1;
+ unsigned int indx_buffer_we : 1;
+ unsigned int indx_buffer_re : 1;
+ unsigned int indx_buffer_empty : 1;
+ unsigned int prim_buffer_full : 1;
+ unsigned int prim_buffer_we : 1;
+ unsigned int prim_buffer_re : 1;
+ unsigned int prim_buffer_empty : 1;
+ unsigned int indx_side_fifo_full : 1;
+ unsigned int indx_side_fifo_we : 1;
+ unsigned int indx_side_fifo_re : 1;
+ unsigned int indx_side_fifo_empty : 1;
+ unsigned int prim_side_indx_valid : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_DEBUG_REG21 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int null_terminate_vtx_vector : 1;
+ unsigned int prim_end_of_vtx_vect_flags : 3;
+ unsigned int alloc_counter_q : 3;
+ unsigned int curr_slot_in_vtx_vect_q : 3;
+ unsigned int int_vtx_counter_q : 4;
+ unsigned int curr_dealloc_distance_q : 4;
+ unsigned int new_packet_q : 1;
+ unsigned int new_allocate_q : 1;
+ unsigned int num_new_unique_rel_indx : 2;
+ unsigned int inserted_null_prim_q : 1;
+ unsigned int insert_null_prim : 1;
+ unsigned int buffered_prim_eop_mux : 1;
+ unsigned int prim_buffer_empty_mux : 1;
+ unsigned int buffered_thread_size : 1;
+ unsigned int : 4;
+ unsigned int out_trigger : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int out_trigger : 1;
+ unsigned int : 4;
+ unsigned int buffered_thread_size : 1;
+ unsigned int prim_buffer_empty_mux : 1;
+ unsigned int buffered_prim_eop_mux : 1;
+ unsigned int insert_null_prim : 1;
+ unsigned int inserted_null_prim_q : 1;
+ unsigned int num_new_unique_rel_indx : 2;
+ unsigned int new_allocate_q : 1;
+ unsigned int new_packet_q : 1;
+ unsigned int curr_dealloc_distance_q : 4;
+ unsigned int int_vtx_counter_q : 4;
+ unsigned int curr_slot_in_vtx_vect_q : 3;
+ unsigned int alloc_counter_q : 3;
+ unsigned int prim_end_of_vtx_vect_flags : 3;
+ unsigned int null_terminate_vtx_vector : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_CRC_SQ_DATA {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CRC : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int CRC : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_CRC_SQ_CTRL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CRC : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int CRC : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_PERFCOUNTER0_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_SEL : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERF_SEL : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_PERFCOUNTER1_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_SEL : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERF_SEL : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_PERFCOUNTER2_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_SEL : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERF_SEL : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_PERFCOUNTER3_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_SEL : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERF_SEL : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_PERFCOUNTER0_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERF_COUNT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_PERFCOUNTER1_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERF_COUNT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_PERFCOUNTER2_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERF_COUNT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_PERFCOUNTER3_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERF_COUNT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_PERFCOUNTER0_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERF_COUNT : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_PERFCOUNTER1_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERF_COUNT : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_PERFCOUNTER2_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERF_COUNT : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union VGT_PERFCOUNTER3_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERF_COUNT : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TC_CNTL_STATUS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int L2_INVALIDATE : 1;
+ unsigned int : 17;
+ unsigned int TC_L2_HIT_MISS : 2;
+ unsigned int : 11;
+ unsigned int TC_BUSY : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int TC_BUSY : 1;
+ unsigned int : 11;
+ unsigned int TC_L2_HIT_MISS : 2;
+ unsigned int : 17;
+ unsigned int L2_INVALIDATE : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCR_CHICKEN {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SPARE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int SPARE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_CHICKEN {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SPARE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int SPARE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCM_CHICKEN {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TCO_READ_LATENCY_FIFO_PROG_DEPTH : 8;
+ unsigned int ETC_COLOR_ENDIAN : 1;
+ unsigned int SPARE : 23;
+#else /* !defined(qLittleEndian) */
+ unsigned int SPARE : 23;
+ unsigned int ETC_COLOR_ENDIAN : 1;
+ unsigned int TCO_READ_LATENCY_FIFO_PROG_DEPTH : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCR_PERFCOUNTER0_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_SELECT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERFCOUNTER_SELECT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCR_PERFCOUNTER1_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_SELECT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERFCOUNTER_SELECT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCR_PERFCOUNTER0_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCR_PERFCOUNTER1_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCR_PERFCOUNTER0_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCR_PERFCOUNTER1_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TP_TC_CLKGATE_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TP_BUSY_EXTEND : 3;
+ unsigned int TC_BUSY_EXTEND : 3;
+ unsigned int : 26;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 26;
+ unsigned int TC_BUSY_EXTEND : 3;
+ unsigned int TP_BUSY_EXTEND : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TPC_CNTL_STATUS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TPC_INPUT_BUSY : 1;
+ unsigned int TPC_TC_FIFO_BUSY : 1;
+ unsigned int TPC_STATE_FIFO_BUSY : 1;
+ unsigned int TPC_FETCH_FIFO_BUSY : 1;
+ unsigned int TPC_WALKER_PIPE_BUSY : 1;
+ unsigned int TPC_WALK_FIFO_BUSY : 1;
+ unsigned int TPC_WALKER_BUSY : 1;
+ unsigned int : 1;
+ unsigned int TPC_ALIGNER_PIPE_BUSY : 1;
+ unsigned int TPC_ALIGN_FIFO_BUSY : 1;
+ unsigned int TPC_ALIGNER_BUSY : 1;
+ unsigned int : 1;
+ unsigned int TPC_RR_FIFO_BUSY : 1;
+ unsigned int TPC_BLEND_PIPE_BUSY : 1;
+ unsigned int TPC_OUT_FIFO_BUSY : 1;
+ unsigned int TPC_BLEND_BUSY : 1;
+ unsigned int TF_TW_RTS : 1;
+ unsigned int TF_TW_STATE_RTS : 1;
+ unsigned int : 1;
+ unsigned int TF_TW_RTR : 1;
+ unsigned int TW_TA_RTS : 1;
+ unsigned int TW_TA_TT_RTS : 1;
+ unsigned int TW_TA_LAST_RTS : 1;
+ unsigned int TW_TA_RTR : 1;
+ unsigned int TA_TB_RTS : 1;
+ unsigned int TA_TB_TT_RTS : 1;
+ unsigned int : 1;
+ unsigned int TA_TB_RTR : 1;
+ unsigned int TA_TF_RTS : 1;
+ unsigned int TA_TF_TC_FIFO_REN : 1;
+ unsigned int TP_SQ_DEC : 1;
+ unsigned int TPC_BUSY : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int TPC_BUSY : 1;
+ unsigned int TP_SQ_DEC : 1;
+ unsigned int TA_TF_TC_FIFO_REN : 1;
+ unsigned int TA_TF_RTS : 1;
+ unsigned int TA_TB_RTR : 1;
+ unsigned int : 1;
+ unsigned int TA_TB_TT_RTS : 1;
+ unsigned int TA_TB_RTS : 1;
+ unsigned int TW_TA_RTR : 1;
+ unsigned int TW_TA_LAST_RTS : 1;
+ unsigned int TW_TA_TT_RTS : 1;
+ unsigned int TW_TA_RTS : 1;
+ unsigned int TF_TW_RTR : 1;
+ unsigned int : 1;
+ unsigned int TF_TW_STATE_RTS : 1;
+ unsigned int TF_TW_RTS : 1;
+ unsigned int TPC_BLEND_BUSY : 1;
+ unsigned int TPC_OUT_FIFO_BUSY : 1;
+ unsigned int TPC_BLEND_PIPE_BUSY : 1;
+ unsigned int TPC_RR_FIFO_BUSY : 1;
+ unsigned int : 1;
+ unsigned int TPC_ALIGNER_BUSY : 1;
+ unsigned int TPC_ALIGN_FIFO_BUSY : 1;
+ unsigned int TPC_ALIGNER_PIPE_BUSY : 1;
+ unsigned int : 1;
+ unsigned int TPC_WALKER_BUSY : 1;
+ unsigned int TPC_WALK_FIFO_BUSY : 1;
+ unsigned int TPC_WALKER_PIPE_BUSY : 1;
+ unsigned int TPC_FETCH_FIFO_BUSY : 1;
+ unsigned int TPC_STATE_FIFO_BUSY : 1;
+ unsigned int TPC_TC_FIFO_BUSY : 1;
+ unsigned int TPC_INPUT_BUSY : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TPC_DEBUG0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int LOD_CNTL : 2;
+ unsigned int IC_CTR : 2;
+ unsigned int WALKER_CNTL : 4;
+ unsigned int ALIGNER_CNTL : 3;
+ unsigned int : 1;
+ unsigned int PREV_TC_STATE_VALID : 1;
+ unsigned int : 3;
+ unsigned int WALKER_STATE : 10;
+ unsigned int ALIGNER_STATE : 2;
+ unsigned int : 1;
+ unsigned int REG_CLK_EN : 1;
+ unsigned int TPC_CLK_EN : 1;
+ unsigned int SQ_TP_WAKEUP : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int SQ_TP_WAKEUP : 1;
+ unsigned int TPC_CLK_EN : 1;
+ unsigned int REG_CLK_EN : 1;
+ unsigned int : 1;
+ unsigned int ALIGNER_STATE : 2;
+ unsigned int WALKER_STATE : 10;
+ unsigned int : 3;
+ unsigned int PREV_TC_STATE_VALID : 1;
+ unsigned int : 1;
+ unsigned int ALIGNER_CNTL : 3;
+ unsigned int WALKER_CNTL : 4;
+ unsigned int IC_CTR : 2;
+ unsigned int LOD_CNTL : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TPC_DEBUG1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int UNUSED : 1;
+ unsigned int : 31;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 31;
+ unsigned int UNUSED : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TPC_CHICKEN {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BLEND_PRECISION : 1;
+ unsigned int SPARE : 31;
+#else /* !defined(qLittleEndian) */
+ unsigned int SPARE : 31;
+ unsigned int BLEND_PRECISION : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TP0_CNTL_STATUS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TP_INPUT_BUSY : 1;
+ unsigned int TP_LOD_BUSY : 1;
+ unsigned int TP_LOD_FIFO_BUSY : 1;
+ unsigned int TP_ADDR_BUSY : 1;
+ unsigned int TP_ALIGN_FIFO_BUSY : 1;
+ unsigned int TP_ALIGNER_BUSY : 1;
+ unsigned int TP_TC_FIFO_BUSY : 1;
+ unsigned int TP_RR_FIFO_BUSY : 1;
+ unsigned int TP_FETCH_BUSY : 1;
+ unsigned int TP_CH_BLEND_BUSY : 1;
+ unsigned int TP_TT_BUSY : 1;
+ unsigned int TP_HICOLOR_BUSY : 1;
+ unsigned int TP_BLEND_BUSY : 1;
+ unsigned int TP_OUT_FIFO_BUSY : 1;
+ unsigned int TP_OUTPUT_BUSY : 1;
+ unsigned int : 1;
+ unsigned int IN_LC_RTS : 1;
+ unsigned int LC_LA_RTS : 1;
+ unsigned int LA_FL_RTS : 1;
+ unsigned int FL_TA_RTS : 1;
+ unsigned int TA_FA_RTS : 1;
+ unsigned int TA_FA_TT_RTS : 1;
+ unsigned int FA_AL_RTS : 1;
+ unsigned int FA_AL_TT_RTS : 1;
+ unsigned int AL_TF_RTS : 1;
+ unsigned int AL_TF_TT_RTS : 1;
+ unsigned int TF_TB_RTS : 1;
+ unsigned int TF_TB_TT_RTS : 1;
+ unsigned int TB_TT_RTS : 1;
+ unsigned int TB_TT_TT_RESET : 1;
+ unsigned int TB_TO_RTS : 1;
+ unsigned int TP_BUSY : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int TP_BUSY : 1;
+ unsigned int TB_TO_RTS : 1;
+ unsigned int TB_TT_TT_RESET : 1;
+ unsigned int TB_TT_RTS : 1;
+ unsigned int TF_TB_TT_RTS : 1;
+ unsigned int TF_TB_RTS : 1;
+ unsigned int AL_TF_TT_RTS : 1;
+ unsigned int AL_TF_RTS : 1;
+ unsigned int FA_AL_TT_RTS : 1;
+ unsigned int FA_AL_RTS : 1;
+ unsigned int TA_FA_TT_RTS : 1;
+ unsigned int TA_FA_RTS : 1;
+ unsigned int FL_TA_RTS : 1;
+ unsigned int LA_FL_RTS : 1;
+ unsigned int LC_LA_RTS : 1;
+ unsigned int IN_LC_RTS : 1;
+ unsigned int : 1;
+ unsigned int TP_OUTPUT_BUSY : 1;
+ unsigned int TP_OUT_FIFO_BUSY : 1;
+ unsigned int TP_BLEND_BUSY : 1;
+ unsigned int TP_HICOLOR_BUSY : 1;
+ unsigned int TP_TT_BUSY : 1;
+ unsigned int TP_CH_BLEND_BUSY : 1;
+ unsigned int TP_FETCH_BUSY : 1;
+ unsigned int TP_RR_FIFO_BUSY : 1;
+ unsigned int TP_TC_FIFO_BUSY : 1;
+ unsigned int TP_ALIGNER_BUSY : 1;
+ unsigned int TP_ALIGN_FIFO_BUSY : 1;
+ unsigned int TP_ADDR_BUSY : 1;
+ unsigned int TP_LOD_FIFO_BUSY : 1;
+ unsigned int TP_LOD_BUSY : 1;
+ unsigned int TP_INPUT_BUSY : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TP0_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int Q_LOD_CNTL : 2;
+ unsigned int : 1;
+ unsigned int Q_SQ_TP_WAKEUP : 1;
+ unsigned int FL_TA_ADDRESSER_CNTL : 17;
+ unsigned int REG_CLK_EN : 1;
+ unsigned int PERF_CLK_EN : 1;
+ unsigned int TP_CLK_EN : 1;
+ unsigned int Q_WALKER_CNTL : 4;
+ unsigned int Q_ALIGNER_CNTL : 3;
+ unsigned int : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 1;
+ unsigned int Q_ALIGNER_CNTL : 3;
+ unsigned int Q_WALKER_CNTL : 4;
+ unsigned int TP_CLK_EN : 1;
+ unsigned int PERF_CLK_EN : 1;
+ unsigned int REG_CLK_EN : 1;
+ unsigned int FL_TA_ADDRESSER_CNTL : 17;
+ unsigned int Q_SQ_TP_WAKEUP : 1;
+ unsigned int : 1;
+ unsigned int Q_LOD_CNTL : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TP0_CHICKEN {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TT_MODE : 1;
+ unsigned int VFETCH_ADDRESS_MODE : 1;
+ unsigned int SPARE : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int SPARE : 30;
+ unsigned int VFETCH_ADDRESS_MODE : 1;
+ unsigned int TT_MODE : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TP0_PERFCOUNTER0_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_SELECT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERFCOUNTER_SELECT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TP0_PERFCOUNTER0_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TP0_PERFCOUNTER0_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TP0_PERFCOUNTER1_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_SELECT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERFCOUNTER_SELECT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TP0_PERFCOUNTER1_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TP0_PERFCOUNTER1_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCM_PERFCOUNTER0_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_SELECT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERFCOUNTER_SELECT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCM_PERFCOUNTER1_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_SELECT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERFCOUNTER_SELECT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCM_PERFCOUNTER0_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCM_PERFCOUNTER1_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCM_PERFCOUNTER0_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCM_PERFCOUNTER1_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER0_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_SELECT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERFCOUNTER_SELECT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER1_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_SELECT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERFCOUNTER_SELECT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER2_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_SELECT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERFCOUNTER_SELECT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER3_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_SELECT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERFCOUNTER_SELECT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER4_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_SELECT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERFCOUNTER_SELECT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER5_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_SELECT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERFCOUNTER_SELECT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER6_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_SELECT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERFCOUNTER_SELECT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER7_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_SELECT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERFCOUNTER_SELECT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER8_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_SELECT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERFCOUNTER_SELECT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER9_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_SELECT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERFCOUNTER_SELECT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER10_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_SELECT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERFCOUNTER_SELECT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER11_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_SELECT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERFCOUNTER_SELECT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER0_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER1_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER2_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER3_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER4_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER5_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER6_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER7_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER8_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER9_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER10_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER11_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER0_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER1_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER2_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER3_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER4_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER5_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER6_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER7_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER8_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER9_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER10_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_PERFCOUNTER11_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCF_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 6;
+ unsigned int not_MH_TC_rtr : 1;
+ unsigned int TC_MH_send : 1;
+ unsigned int not_FG0_rtr : 1;
+ unsigned int : 3;
+ unsigned int not_TCB_TCO_rtr : 1;
+ unsigned int TCB_ff_stall : 1;
+ unsigned int TCB_miss_stall : 1;
+ unsigned int TCA_TCB_stall : 1;
+ unsigned int PF0_stall : 1;
+ unsigned int : 3;
+ unsigned int TP0_full : 1;
+ unsigned int : 3;
+ unsigned int TPC_full : 1;
+ unsigned int not_TPC_rtr : 1;
+ unsigned int tca_state_rts : 1;
+ unsigned int tca_rts : 1;
+ unsigned int : 4;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 4;
+ unsigned int tca_rts : 1;
+ unsigned int tca_state_rts : 1;
+ unsigned int not_TPC_rtr : 1;
+ unsigned int TPC_full : 1;
+ unsigned int : 3;
+ unsigned int TP0_full : 1;
+ unsigned int : 3;
+ unsigned int PF0_stall : 1;
+ unsigned int TCA_TCB_stall : 1;
+ unsigned int TCB_miss_stall : 1;
+ unsigned int TCB_ff_stall : 1;
+ unsigned int not_TCB_TCO_rtr : 1;
+ unsigned int : 3;
+ unsigned int not_FG0_rtr : 1;
+ unsigned int TC_MH_send : 1;
+ unsigned int not_MH_TC_rtr : 1;
+ unsigned int : 6;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCA_FIFO_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int tp0_full : 1;
+ unsigned int : 3;
+ unsigned int tpc_full : 1;
+ unsigned int load_tpc_fifo : 1;
+ unsigned int load_tp_fifos : 1;
+ unsigned int FW_full : 1;
+ unsigned int not_FW_rtr0 : 1;
+ unsigned int : 3;
+ unsigned int FW_rts0 : 1;
+ unsigned int : 3;
+ unsigned int not_FW_tpc_rtr : 1;
+ unsigned int FW_tpc_rts : 1;
+ unsigned int : 14;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 14;
+ unsigned int FW_tpc_rts : 1;
+ unsigned int not_FW_tpc_rtr : 1;
+ unsigned int : 3;
+ unsigned int FW_rts0 : 1;
+ unsigned int : 3;
+ unsigned int not_FW_rtr0 : 1;
+ unsigned int FW_full : 1;
+ unsigned int load_tp_fifos : 1;
+ unsigned int load_tpc_fifo : 1;
+ unsigned int tpc_full : 1;
+ unsigned int : 3;
+ unsigned int tp0_full : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCA_PROBE_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ProbeFilter_stall : 1;
+ unsigned int : 31;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 31;
+ unsigned int ProbeFilter_stall : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCA_TPC_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 12;
+ unsigned int captue_state_rts : 1;
+ unsigned int capture_tca_rts : 1;
+ unsigned int : 18;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 18;
+ unsigned int capture_tca_rts : 1;
+ unsigned int captue_state_rts : 1;
+ unsigned int : 12;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCB_CORE_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int access512 : 1;
+ unsigned int tiled : 1;
+ unsigned int : 2;
+ unsigned int opcode : 3;
+ unsigned int : 1;
+ unsigned int format : 6;
+ unsigned int : 2;
+ unsigned int sector_format : 5;
+ unsigned int : 3;
+ unsigned int sector_format512 : 3;
+ unsigned int : 5;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 5;
+ unsigned int sector_format512 : 3;
+ unsigned int : 3;
+ unsigned int sector_format : 5;
+ unsigned int : 2;
+ unsigned int format : 6;
+ unsigned int : 1;
+ unsigned int opcode : 3;
+ unsigned int : 2;
+ unsigned int tiled : 1;
+ unsigned int access512 : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCB_TAG0_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int mem_read_cycle : 10;
+ unsigned int : 2;
+ unsigned int tag_access_cycle : 9;
+ unsigned int : 2;
+ unsigned int miss_stall : 1;
+ unsigned int num_feee_lines : 5;
+ unsigned int max_misses : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int max_misses : 3;
+ unsigned int num_feee_lines : 5;
+ unsigned int miss_stall : 1;
+ unsigned int : 2;
+ unsigned int tag_access_cycle : 9;
+ unsigned int : 2;
+ unsigned int mem_read_cycle : 10;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCB_TAG1_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int mem_read_cycle : 10;
+ unsigned int : 2;
+ unsigned int tag_access_cycle : 9;
+ unsigned int : 2;
+ unsigned int miss_stall : 1;
+ unsigned int num_feee_lines : 5;
+ unsigned int max_misses : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int max_misses : 3;
+ unsigned int num_feee_lines : 5;
+ unsigned int miss_stall : 1;
+ unsigned int : 2;
+ unsigned int tag_access_cycle : 9;
+ unsigned int : 2;
+ unsigned int mem_read_cycle : 10;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCB_TAG2_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int mem_read_cycle : 10;
+ unsigned int : 2;
+ unsigned int tag_access_cycle : 9;
+ unsigned int : 2;
+ unsigned int miss_stall : 1;
+ unsigned int num_feee_lines : 5;
+ unsigned int max_misses : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int max_misses : 3;
+ unsigned int num_feee_lines : 5;
+ unsigned int miss_stall : 1;
+ unsigned int : 2;
+ unsigned int tag_access_cycle : 9;
+ unsigned int : 2;
+ unsigned int mem_read_cycle : 10;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCB_TAG3_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int mem_read_cycle : 10;
+ unsigned int : 2;
+ unsigned int tag_access_cycle : 9;
+ unsigned int : 2;
+ unsigned int miss_stall : 1;
+ unsigned int num_feee_lines : 5;
+ unsigned int max_misses : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int max_misses : 3;
+ unsigned int num_feee_lines : 5;
+ unsigned int miss_stall : 1;
+ unsigned int : 2;
+ unsigned int tag_access_cycle : 9;
+ unsigned int : 2;
+ unsigned int mem_read_cycle : 10;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int left_done : 1;
+ unsigned int : 1;
+ unsigned int fg0_sends_left : 1;
+ unsigned int : 1;
+ unsigned int one_sector_to_go_left_q : 1;
+ unsigned int no_sectors_to_go : 1;
+ unsigned int update_left : 1;
+ unsigned int sector_mask_left_count_q : 5;
+ unsigned int sector_mask_left_q : 16;
+ unsigned int valid_left_q : 1;
+ unsigned int : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 3;
+ unsigned int valid_left_q : 1;
+ unsigned int sector_mask_left_q : 16;
+ unsigned int sector_mask_left_count_q : 5;
+ unsigned int update_left : 1;
+ unsigned int no_sectors_to_go : 1;
+ unsigned int one_sector_to_go_left_q : 1;
+ unsigned int : 1;
+ unsigned int fg0_sends_left : 1;
+ unsigned int : 1;
+ unsigned int left_done : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCB_FETCH_GEN_WALKER_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 4;
+ unsigned int quad_sel_left : 2;
+ unsigned int set_sel_left : 2;
+ unsigned int : 3;
+ unsigned int right_eq_left : 1;
+ unsigned int ff_fg_type512 : 3;
+ unsigned int busy : 1;
+ unsigned int setquads_to_send : 4;
+ unsigned int : 12;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 12;
+ unsigned int setquads_to_send : 4;
+ unsigned int busy : 1;
+ unsigned int ff_fg_type512 : 3;
+ unsigned int right_eq_left : 1;
+ unsigned int : 3;
+ unsigned int set_sel_left : 2;
+ unsigned int quad_sel_left : 2;
+ unsigned int : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCB_FETCH_GEN_PIPE0_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int tc0_arb_rts : 1;
+ unsigned int : 1;
+ unsigned int ga_out_rts : 1;
+ unsigned int : 1;
+ unsigned int tc_arb_format : 12;
+ unsigned int tc_arb_fmsopcode : 5;
+ unsigned int tc_arb_request_type : 2;
+ unsigned int busy : 1;
+ unsigned int fgo_busy : 1;
+ unsigned int ga_busy : 1;
+ unsigned int mc_sel_q : 2;
+ unsigned int valid_q : 1;
+ unsigned int : 1;
+ unsigned int arb_RTR : 1;
+ unsigned int : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 1;
+ unsigned int arb_RTR : 1;
+ unsigned int : 1;
+ unsigned int valid_q : 1;
+ unsigned int mc_sel_q : 2;
+ unsigned int ga_busy : 1;
+ unsigned int fgo_busy : 1;
+ unsigned int busy : 1;
+ unsigned int tc_arb_request_type : 2;
+ unsigned int tc_arb_fmsopcode : 5;
+ unsigned int tc_arb_format : 12;
+ unsigned int : 1;
+ unsigned int ga_out_rts : 1;
+ unsigned int : 1;
+ unsigned int tc0_arb_rts : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCD_INPUT0_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 16;
+ unsigned int empty : 1;
+ unsigned int full : 1;
+ unsigned int : 2;
+ unsigned int valid_q1 : 1;
+ unsigned int cnt_q1 : 2;
+ unsigned int last_send_q1 : 1;
+ unsigned int ip_send : 1;
+ unsigned int ipbuf_dxt_send : 1;
+ unsigned int ipbuf_busy : 1;
+ unsigned int : 5;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 5;
+ unsigned int ipbuf_busy : 1;
+ unsigned int ipbuf_dxt_send : 1;
+ unsigned int ip_send : 1;
+ unsigned int last_send_q1 : 1;
+ unsigned int cnt_q1 : 2;
+ unsigned int valid_q1 : 1;
+ unsigned int : 2;
+ unsigned int full : 1;
+ unsigned int empty : 1;
+ unsigned int : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCD_DEGAMMA_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int dgmm_ftfconv_dgmmen : 2;
+ unsigned int dgmm_ctrl_dgmm8 : 1;
+ unsigned int dgmm_ctrl_last_send : 1;
+ unsigned int dgmm_ctrl_send : 1;
+ unsigned int dgmm_stall : 1;
+ unsigned int dgmm_pstate : 1;
+ unsigned int : 25;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 25;
+ unsigned int dgmm_pstate : 1;
+ unsigned int dgmm_stall : 1;
+ unsigned int dgmm_ctrl_send : 1;
+ unsigned int dgmm_ctrl_last_send : 1;
+ unsigned int dgmm_ctrl_dgmm8 : 1;
+ unsigned int dgmm_ftfconv_dgmmen : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCD_DXTMUX_SCTARB_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 9;
+ unsigned int pstate : 1;
+ unsigned int sctrmx_rtr : 1;
+ unsigned int dxtc_rtr : 1;
+ unsigned int : 3;
+ unsigned int sctrarb_multcyl_send : 1;
+ unsigned int sctrmx0_sctrarb_rts : 1;
+ unsigned int : 3;
+ unsigned int dxtc_sctrarb_send : 1;
+ unsigned int : 6;
+ unsigned int dxtc_dgmmpd_last_send : 1;
+ unsigned int dxtc_dgmmpd_send : 1;
+ unsigned int dcmp_mux_send : 1;
+ unsigned int : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 2;
+ unsigned int dcmp_mux_send : 1;
+ unsigned int dxtc_dgmmpd_send : 1;
+ unsigned int dxtc_dgmmpd_last_send : 1;
+ unsigned int : 6;
+ unsigned int dxtc_sctrarb_send : 1;
+ unsigned int : 3;
+ unsigned int sctrmx0_sctrarb_rts : 1;
+ unsigned int sctrarb_multcyl_send : 1;
+ unsigned int : 3;
+ unsigned int dxtc_rtr : 1;
+ unsigned int sctrmx_rtr : 1;
+ unsigned int pstate : 1;
+ unsigned int : 9;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCD_DXTC_ARB_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 4;
+ unsigned int n0_stall : 1;
+ unsigned int pstate : 1;
+ unsigned int arb_dcmp01_last_send : 1;
+ unsigned int arb_dcmp01_cnt : 2;
+ unsigned int arb_dcmp01_sector : 3;
+ unsigned int arb_dcmp01_cacheline : 6;
+ unsigned int arb_dcmp01_format : 12;
+ unsigned int arb_dcmp01_send : 1;
+ unsigned int n0_dxt2_4_types : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int n0_dxt2_4_types : 1;
+ unsigned int arb_dcmp01_send : 1;
+ unsigned int arb_dcmp01_format : 12;
+ unsigned int arb_dcmp01_cacheline : 6;
+ unsigned int arb_dcmp01_sector : 3;
+ unsigned int arb_dcmp01_cnt : 2;
+ unsigned int arb_dcmp01_last_send : 1;
+ unsigned int pstate : 1;
+ unsigned int n0_stall : 1;
+ unsigned int : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCD_STALLS_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 10;
+ unsigned int not_multcyl_sctrarb_rtr : 1;
+ unsigned int not_sctrmx0_sctrarb_rtr : 1;
+ unsigned int : 5;
+ unsigned int not_dcmp0_arb_rtr : 1;
+ unsigned int not_dgmmpd_dxtc_rtr : 1;
+ unsigned int not_mux_dcmp_rtr : 1;
+ unsigned int : 11;
+ unsigned int not_incoming_rtr : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int not_incoming_rtr : 1;
+ unsigned int : 11;
+ unsigned int not_mux_dcmp_rtr : 1;
+ unsigned int not_dgmmpd_dxtc_rtr : 1;
+ unsigned int not_dcmp0_arb_rtr : 1;
+ unsigned int : 5;
+ unsigned int not_sctrmx0_sctrarb_rtr : 1;
+ unsigned int not_multcyl_sctrarb_rtr : 1;
+ unsigned int : 10;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCO_STALLS_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 5;
+ unsigned int quad0_sg_crd_RTR : 1;
+ unsigned int quad0_rl_sg_RTR : 1;
+ unsigned int quad0_TCO_TCB_rtr_d : 1;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int quad0_TCO_TCB_rtr_d : 1;
+ unsigned int quad0_rl_sg_RTR : 1;
+ unsigned int quad0_sg_crd_RTR : 1;
+ unsigned int : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCO_QUAD0_DEBUG0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int rl_sg_sector_format : 8;
+ unsigned int rl_sg_end_of_sample : 1;
+ unsigned int rl_sg_rtr : 1;
+ unsigned int rl_sg_rts : 1;
+ unsigned int sg_crd_end_of_sample : 1;
+ unsigned int sg_crd_rtr : 1;
+ unsigned int sg_crd_rts : 1;
+ unsigned int : 2;
+ unsigned int stageN1_valid_q : 1;
+ unsigned int : 7;
+ unsigned int read_cache_q : 1;
+ unsigned int cache_read_RTR : 1;
+ unsigned int all_sectors_written_set3 : 1;
+ unsigned int all_sectors_written_set2 : 1;
+ unsigned int all_sectors_written_set1 : 1;
+ unsigned int all_sectors_written_set0 : 1;
+ unsigned int busy : 1;
+ unsigned int : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 1;
+ unsigned int busy : 1;
+ unsigned int all_sectors_written_set0 : 1;
+ unsigned int all_sectors_written_set1 : 1;
+ unsigned int all_sectors_written_set2 : 1;
+ unsigned int all_sectors_written_set3 : 1;
+ unsigned int cache_read_RTR : 1;
+ unsigned int read_cache_q : 1;
+ unsigned int : 7;
+ unsigned int stageN1_valid_q : 1;
+ unsigned int : 2;
+ unsigned int sg_crd_rts : 1;
+ unsigned int sg_crd_rtr : 1;
+ unsigned int sg_crd_end_of_sample : 1;
+ unsigned int rl_sg_rts : 1;
+ unsigned int rl_sg_rtr : 1;
+ unsigned int rl_sg_end_of_sample : 1;
+ unsigned int rl_sg_sector_format : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union TCO_QUAD0_DEBUG1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int fifo_busy : 1;
+ unsigned int empty : 1;
+ unsigned int full : 1;
+ unsigned int write_enable : 1;
+ unsigned int fifo_write_ptr : 7;
+ unsigned int fifo_read_ptr : 7;
+ unsigned int : 2;
+ unsigned int cache_read_busy : 1;
+ unsigned int latency_fifo_busy : 1;
+ unsigned int input_quad_busy : 1;
+ unsigned int tco_quad_pipe_busy : 1;
+ unsigned int TCB_TCO_rtr_d : 1;
+ unsigned int TCB_TCO_xfc_q : 1;
+ unsigned int rl_sg_rtr : 1;
+ unsigned int rl_sg_rts : 1;
+ unsigned int sg_crd_rtr : 1;
+ unsigned int sg_crd_rts : 1;
+ unsigned int TCO_TCB_read_xfc : 1;
+ unsigned int : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 1;
+ unsigned int TCO_TCB_read_xfc : 1;
+ unsigned int sg_crd_rts : 1;
+ unsigned int sg_crd_rtr : 1;
+ unsigned int rl_sg_rts : 1;
+ unsigned int rl_sg_rtr : 1;
+ unsigned int TCB_TCO_xfc_q : 1;
+ unsigned int TCB_TCO_rtr_d : 1;
+ unsigned int tco_quad_pipe_busy : 1;
+ unsigned int input_quad_busy : 1;
+ unsigned int latency_fifo_busy : 1;
+ unsigned int cache_read_busy : 1;
+ unsigned int : 2;
+ unsigned int fifo_read_ptr : 7;
+ unsigned int fifo_write_ptr : 7;
+ unsigned int write_enable : 1;
+ unsigned int full : 1;
+ unsigned int empty : 1;
+ unsigned int fifo_busy : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_GPR_MANAGEMENT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int REG_DYNAMIC : 1;
+ unsigned int : 3;
+ unsigned int REG_SIZE_PIX : 7;
+ unsigned int : 1;
+ unsigned int REG_SIZE_VTX : 7;
+ unsigned int : 13;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 13;
+ unsigned int REG_SIZE_VTX : 7;
+ unsigned int : 1;
+ unsigned int REG_SIZE_PIX : 7;
+ unsigned int : 3;
+ unsigned int REG_DYNAMIC : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_FLOW_CONTROL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int INPUT_ARBITRATION_POLICY : 2;
+ unsigned int : 2;
+ unsigned int ONE_THREAD : 1;
+ unsigned int : 3;
+ unsigned int ONE_ALU : 1;
+ unsigned int : 3;
+ unsigned int CF_WR_BASE : 4;
+ unsigned int NO_PV_PS : 1;
+ unsigned int NO_LOOP_EXIT : 1;
+ unsigned int NO_CEXEC_OPTIMIZE : 1;
+ unsigned int TEXTURE_ARBITRATION_POLICY : 2;
+ unsigned int VC_ARBITRATION_POLICY : 1;
+ unsigned int ALU_ARBITRATION_POLICY : 1;
+ unsigned int NO_ARB_EJECT : 1;
+ unsigned int NO_CFS_EJECT : 1;
+ unsigned int POS_EXP_PRIORITY : 1;
+ unsigned int NO_EARLY_THREAD_TERMINATION : 1;
+ unsigned int PS_PREFETCH_COLOR_ALLOC : 1;
+ unsigned int : 4;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 4;
+ unsigned int PS_PREFETCH_COLOR_ALLOC : 1;
+ unsigned int NO_EARLY_THREAD_TERMINATION : 1;
+ unsigned int POS_EXP_PRIORITY : 1;
+ unsigned int NO_CFS_EJECT : 1;
+ unsigned int NO_ARB_EJECT : 1;
+ unsigned int ALU_ARBITRATION_POLICY : 1;
+ unsigned int VC_ARBITRATION_POLICY : 1;
+ unsigned int TEXTURE_ARBITRATION_POLICY : 2;
+ unsigned int NO_CEXEC_OPTIMIZE : 1;
+ unsigned int NO_LOOP_EXIT : 1;
+ unsigned int NO_PV_PS : 1;
+ unsigned int CF_WR_BASE : 4;
+ unsigned int : 3;
+ unsigned int ONE_ALU : 1;
+ unsigned int : 3;
+ unsigned int ONE_THREAD : 1;
+ unsigned int : 2;
+ unsigned int INPUT_ARBITRATION_POLICY : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INST_STORE_MANAGMENT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int INST_BASE_PIX : 12;
+ unsigned int : 4;
+ unsigned int INST_BASE_VTX : 12;
+ unsigned int : 4;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 4;
+ unsigned int INST_BASE_VTX : 12;
+ unsigned int : 4;
+ unsigned int INST_BASE_PIX : 12;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_RESOURCE_MANAGMENT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VTX_THREAD_BUF_ENTRIES : 8;
+ unsigned int PIX_THREAD_BUF_ENTRIES : 8;
+ unsigned int EXPORT_BUF_ENTRIES : 9;
+ unsigned int : 7;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 7;
+ unsigned int EXPORT_BUF_ENTRIES : 9;
+ unsigned int PIX_THREAD_BUF_ENTRIES : 8;
+ unsigned int VTX_THREAD_BUF_ENTRIES : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_EO_RT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int EO_CONSTANTS_RT : 8;
+ unsigned int : 8;
+ unsigned int EO_TSTATE_RT : 8;
+ unsigned int : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 8;
+ unsigned int EO_TSTATE_RT : 8;
+ unsigned int : 8;
+ unsigned int EO_CONSTANTS_RT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_MISC {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DB_ALUCST_SIZE : 11;
+ unsigned int : 1;
+ unsigned int DB_TSTATE_SIZE : 8;
+ unsigned int DB_READ_CTX : 1;
+ unsigned int RESERVED : 2;
+ unsigned int DB_READ_MEMORY : 2;
+ unsigned int DB_WEN_MEMORY_0 : 1;
+ unsigned int DB_WEN_MEMORY_1 : 1;
+ unsigned int DB_WEN_MEMORY_2 : 1;
+ unsigned int DB_WEN_MEMORY_3 : 1;
+ unsigned int : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 3;
+ unsigned int DB_WEN_MEMORY_3 : 1;
+ unsigned int DB_WEN_MEMORY_2 : 1;
+ unsigned int DB_WEN_MEMORY_1 : 1;
+ unsigned int DB_WEN_MEMORY_0 : 1;
+ unsigned int DB_READ_MEMORY : 2;
+ unsigned int RESERVED : 2;
+ unsigned int DB_READ_CTX : 1;
+ unsigned int DB_TSTATE_SIZE : 8;
+ unsigned int : 1;
+ unsigned int DB_ALUCST_SIZE : 11;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_ACTIVITY_METER_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TIMEBASE : 8;
+ unsigned int THRESHOLD_LOW : 8;
+ unsigned int THRESHOLD_HIGH : 8;
+ unsigned int SPARE : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int SPARE : 8;
+ unsigned int THRESHOLD_HIGH : 8;
+ unsigned int THRESHOLD_LOW : 8;
+ unsigned int TIMEBASE : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_ACTIVITY_METER_STATUS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERCENT_BUSY : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERCENT_BUSY : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INPUT_ARB_PRIORITY {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PC_AVAIL_WEIGHT : 3;
+ unsigned int PC_AVAIL_SIGN : 1;
+ unsigned int SX_AVAIL_WEIGHT : 3;
+ unsigned int SX_AVAIL_SIGN : 1;
+ unsigned int THRESHOLD : 10;
+ unsigned int : 14;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 14;
+ unsigned int THRESHOLD : 10;
+ unsigned int SX_AVAIL_SIGN : 1;
+ unsigned int SX_AVAIL_WEIGHT : 3;
+ unsigned int PC_AVAIL_SIGN : 1;
+ unsigned int PC_AVAIL_WEIGHT : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_THREAD_ARB_PRIORITY {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PC_AVAIL_WEIGHT : 3;
+ unsigned int PC_AVAIL_SIGN : 1;
+ unsigned int SX_AVAIL_WEIGHT : 3;
+ unsigned int SX_AVAIL_SIGN : 1;
+ unsigned int THRESHOLD : 10;
+ unsigned int RESERVED : 2;
+ unsigned int VS_PRIORITIZE_SERIAL : 1;
+ unsigned int PS_PRIORITIZE_SERIAL : 1;
+ unsigned int USE_SERIAL_COUNT_THRESHOLD : 1;
+ unsigned int : 9;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 9;
+ unsigned int USE_SERIAL_COUNT_THRESHOLD : 1;
+ unsigned int PS_PRIORITIZE_SERIAL : 1;
+ unsigned int VS_PRIORITIZE_SERIAL : 1;
+ unsigned int RESERVED : 2;
+ unsigned int THRESHOLD : 10;
+ unsigned int SX_AVAIL_SIGN : 1;
+ unsigned int SX_AVAIL_WEIGHT : 3;
+ unsigned int PC_AVAIL_SIGN : 1;
+ unsigned int PC_AVAIL_WEIGHT : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_VS_WATCHDOG_TIMER {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ENABLE : 1;
+ unsigned int TIMEOUT_COUNT : 31;
+#else /* !defined(qLittleEndian) */
+ unsigned int TIMEOUT_COUNT : 31;
+ unsigned int ENABLE : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_PS_WATCHDOG_TIMER {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ENABLE : 1;
+ unsigned int TIMEOUT_COUNT : 31;
+#else /* !defined(qLittleEndian) */
+ unsigned int TIMEOUT_COUNT : 31;
+ unsigned int ENABLE : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INT_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PS_WATCHDOG_MASK : 1;
+ unsigned int VS_WATCHDOG_MASK : 1;
+ unsigned int : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 30;
+ unsigned int VS_WATCHDOG_MASK : 1;
+ unsigned int PS_WATCHDOG_MASK : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INT_STATUS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PS_WATCHDOG_TIMEOUT : 1;
+ unsigned int VS_WATCHDOG_TIMEOUT : 1;
+ unsigned int : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 30;
+ unsigned int VS_WATCHDOG_TIMEOUT : 1;
+ unsigned int PS_WATCHDOG_TIMEOUT : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INT_ACK {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PS_WATCHDOG_ACK : 1;
+ unsigned int VS_WATCHDOG_ACK : 1;
+ unsigned int : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 30;
+ unsigned int VS_WATCHDOG_ACK : 1;
+ unsigned int PS_WATCHDOG_ACK : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_INPUT_FSM {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VC_VSR_LD : 3;
+ unsigned int RESERVED : 1;
+ unsigned int VC_GPR_LD : 4;
+ unsigned int PC_PISM : 3;
+ unsigned int RESERVED1 : 1;
+ unsigned int PC_AS : 3;
+ unsigned int PC_INTERP_CNT : 5;
+ unsigned int PC_GPR_SIZE : 8;
+ unsigned int : 4;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 4;
+ unsigned int PC_GPR_SIZE : 8;
+ unsigned int PC_INTERP_CNT : 5;
+ unsigned int PC_AS : 3;
+ unsigned int RESERVED1 : 1;
+ unsigned int PC_PISM : 3;
+ unsigned int VC_GPR_LD : 4;
+ unsigned int RESERVED : 1;
+ unsigned int VC_VSR_LD : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_CONST_MGR_FSM {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TEX_CONST_EVENT_STATE : 5;
+ unsigned int RESERVED1 : 3;
+ unsigned int ALU_CONST_EVENT_STATE : 5;
+ unsigned int RESERVED2 : 3;
+ unsigned int ALU_CONST_CNTX_VALID : 2;
+ unsigned int TEX_CONST_CNTX_VALID : 2;
+ unsigned int CNTX0_VTX_EVENT_DONE : 1;
+ unsigned int CNTX0_PIX_EVENT_DONE : 1;
+ unsigned int CNTX1_VTX_EVENT_DONE : 1;
+ unsigned int CNTX1_PIX_EVENT_DONE : 1;
+ unsigned int : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 8;
+ unsigned int CNTX1_PIX_EVENT_DONE : 1;
+ unsigned int CNTX1_VTX_EVENT_DONE : 1;
+ unsigned int CNTX0_PIX_EVENT_DONE : 1;
+ unsigned int CNTX0_VTX_EVENT_DONE : 1;
+ unsigned int TEX_CONST_CNTX_VALID : 2;
+ unsigned int ALU_CONST_CNTX_VALID : 2;
+ unsigned int RESERVED2 : 3;
+ unsigned int ALU_CONST_EVENT_STATE : 5;
+ unsigned int RESERVED1 : 3;
+ unsigned int TEX_CONST_EVENT_STATE : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_TP_FSM {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int EX_TP : 3;
+ unsigned int RESERVED0 : 1;
+ unsigned int CF_TP : 4;
+ unsigned int IF_TP : 3;
+ unsigned int RESERVED1 : 1;
+ unsigned int TIS_TP : 2;
+ unsigned int RESERVED2 : 2;
+ unsigned int GS_TP : 2;
+ unsigned int RESERVED3 : 2;
+ unsigned int FCR_TP : 2;
+ unsigned int RESERVED4 : 2;
+ unsigned int FCS_TP : 2;
+ unsigned int RESERVED5 : 2;
+ unsigned int ARB_TR_TP : 3;
+ unsigned int : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 1;
+ unsigned int ARB_TR_TP : 3;
+ unsigned int RESERVED5 : 2;
+ unsigned int FCS_TP : 2;
+ unsigned int RESERVED4 : 2;
+ unsigned int FCR_TP : 2;
+ unsigned int RESERVED3 : 2;
+ unsigned int GS_TP : 2;
+ unsigned int RESERVED2 : 2;
+ unsigned int TIS_TP : 2;
+ unsigned int RESERVED1 : 1;
+ unsigned int IF_TP : 3;
+ unsigned int CF_TP : 4;
+ unsigned int RESERVED0 : 1;
+ unsigned int EX_TP : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_FSM_ALU_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int EX_ALU_0 : 3;
+ unsigned int RESERVED0 : 1;
+ unsigned int CF_ALU_0 : 4;
+ unsigned int IF_ALU_0 : 3;
+ unsigned int RESERVED1 : 1;
+ unsigned int DU1_ALU_0 : 3;
+ unsigned int RESERVED2 : 1;
+ unsigned int DU0_ALU_0 : 3;
+ unsigned int RESERVED3 : 1;
+ unsigned int AIS_ALU_0 : 3;
+ unsigned int RESERVED4 : 1;
+ unsigned int ACS_ALU_0 : 3;
+ unsigned int RESERVED5 : 1;
+ unsigned int ARB_TR_ALU : 3;
+ unsigned int : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 1;
+ unsigned int ARB_TR_ALU : 3;
+ unsigned int RESERVED5 : 1;
+ unsigned int ACS_ALU_0 : 3;
+ unsigned int RESERVED4 : 1;
+ unsigned int AIS_ALU_0 : 3;
+ unsigned int RESERVED3 : 1;
+ unsigned int DU0_ALU_0 : 3;
+ unsigned int RESERVED2 : 1;
+ unsigned int DU1_ALU_0 : 3;
+ unsigned int RESERVED1 : 1;
+ unsigned int IF_ALU_0 : 3;
+ unsigned int CF_ALU_0 : 4;
+ unsigned int RESERVED0 : 1;
+ unsigned int EX_ALU_0 : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_FSM_ALU_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int EX_ALU_0 : 3;
+ unsigned int RESERVED0 : 1;
+ unsigned int CF_ALU_0 : 4;
+ unsigned int IF_ALU_0 : 3;
+ unsigned int RESERVED1 : 1;
+ unsigned int DU1_ALU_0 : 3;
+ unsigned int RESERVED2 : 1;
+ unsigned int DU0_ALU_0 : 3;
+ unsigned int RESERVED3 : 1;
+ unsigned int AIS_ALU_0 : 3;
+ unsigned int RESERVED4 : 1;
+ unsigned int ACS_ALU_0 : 3;
+ unsigned int RESERVED5 : 1;
+ unsigned int ARB_TR_ALU : 3;
+ unsigned int : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 1;
+ unsigned int ARB_TR_ALU : 3;
+ unsigned int RESERVED5 : 1;
+ unsigned int ACS_ALU_0 : 3;
+ unsigned int RESERVED4 : 1;
+ unsigned int AIS_ALU_0 : 3;
+ unsigned int RESERVED3 : 1;
+ unsigned int DU0_ALU_0 : 3;
+ unsigned int RESERVED2 : 1;
+ unsigned int DU1_ALU_0 : 3;
+ unsigned int RESERVED1 : 1;
+ unsigned int IF_ALU_0 : 3;
+ unsigned int CF_ALU_0 : 4;
+ unsigned int RESERVED0 : 1;
+ unsigned int EX_ALU_0 : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_EXP_ALLOC {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int POS_BUF_AVAIL : 4;
+ unsigned int COLOR_BUF_AVAIL : 8;
+ unsigned int EA_BUF_AVAIL : 3;
+ unsigned int RESERVED : 1;
+ unsigned int ALLOC_TBL_BUF_AVAIL : 6;
+ unsigned int : 10;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 10;
+ unsigned int ALLOC_TBL_BUF_AVAIL : 6;
+ unsigned int RESERVED : 1;
+ unsigned int EA_BUF_AVAIL : 3;
+ unsigned int COLOR_BUF_AVAIL : 8;
+ unsigned int POS_BUF_AVAIL : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_PTR_BUFF {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int END_OF_BUFFER : 1;
+ unsigned int DEALLOC_CNT : 4;
+ unsigned int QUAL_NEW_VECTOR : 1;
+ unsigned int EVENT_CONTEXT_ID : 3;
+ unsigned int SC_EVENT_ID : 5;
+ unsigned int QUAL_EVENT : 1;
+ unsigned int PRIM_TYPE_POLYGON : 1;
+ unsigned int EF_EMPTY : 1;
+ unsigned int VTX_SYNC_CNT : 11;
+ unsigned int : 4;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 4;
+ unsigned int VTX_SYNC_CNT : 11;
+ unsigned int EF_EMPTY : 1;
+ unsigned int PRIM_TYPE_POLYGON : 1;
+ unsigned int QUAL_EVENT : 1;
+ unsigned int SC_EVENT_ID : 5;
+ unsigned int EVENT_CONTEXT_ID : 3;
+ unsigned int QUAL_NEW_VECTOR : 1;
+ unsigned int DEALLOC_CNT : 4;
+ unsigned int END_OF_BUFFER : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_GPR_VTX {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VTX_TAIL_PTR : 7;
+ unsigned int RESERVED : 1;
+ unsigned int VTX_HEAD_PTR : 7;
+ unsigned int RESERVED1 : 1;
+ unsigned int VTX_MAX : 7;
+ unsigned int RESERVED2 : 1;
+ unsigned int VTX_FREE : 7;
+ unsigned int : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 1;
+ unsigned int VTX_FREE : 7;
+ unsigned int RESERVED2 : 1;
+ unsigned int VTX_MAX : 7;
+ unsigned int RESERVED1 : 1;
+ unsigned int VTX_HEAD_PTR : 7;
+ unsigned int RESERVED : 1;
+ unsigned int VTX_TAIL_PTR : 7;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_GPR_PIX {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PIX_TAIL_PTR : 7;
+ unsigned int RESERVED : 1;
+ unsigned int PIX_HEAD_PTR : 7;
+ unsigned int RESERVED1 : 1;
+ unsigned int PIX_MAX : 7;
+ unsigned int RESERVED2 : 1;
+ unsigned int PIX_FREE : 7;
+ unsigned int : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 1;
+ unsigned int PIX_FREE : 7;
+ unsigned int RESERVED2 : 1;
+ unsigned int PIX_MAX : 7;
+ unsigned int RESERVED1 : 1;
+ unsigned int PIX_HEAD_PTR : 7;
+ unsigned int RESERVED : 1;
+ unsigned int PIX_TAIL_PTR : 7;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_TB_STATUS_SEL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VTX_TB_STATUS_REG_SEL : 4;
+ unsigned int VTX_TB_STATE_MEM_DW_SEL : 3;
+ unsigned int VTX_TB_STATE_MEM_RD_ADDR : 4;
+ unsigned int VTX_TB_STATE_MEM_RD_EN : 1;
+ unsigned int PIX_TB_STATE_MEM_RD_EN : 1;
+ unsigned int : 1;
+ unsigned int DEBUG_BUS_TRIGGER_SEL : 2;
+ unsigned int PIX_TB_STATUS_REG_SEL : 4;
+ unsigned int PIX_TB_STATE_MEM_DW_SEL : 3;
+ unsigned int PIX_TB_STATE_MEM_RD_ADDR : 6;
+ unsigned int VC_THREAD_BUF_DLY : 2;
+ unsigned int DISABLE_STRICT_CTX_SYNC : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int DISABLE_STRICT_CTX_SYNC : 1;
+ unsigned int VC_THREAD_BUF_DLY : 2;
+ unsigned int PIX_TB_STATE_MEM_RD_ADDR : 6;
+ unsigned int PIX_TB_STATE_MEM_DW_SEL : 3;
+ unsigned int PIX_TB_STATUS_REG_SEL : 4;
+ unsigned int DEBUG_BUS_TRIGGER_SEL : 2;
+ unsigned int : 1;
+ unsigned int PIX_TB_STATE_MEM_RD_EN : 1;
+ unsigned int VTX_TB_STATE_MEM_RD_EN : 1;
+ unsigned int VTX_TB_STATE_MEM_RD_ADDR : 4;
+ unsigned int VTX_TB_STATE_MEM_DW_SEL : 3;
+ unsigned int VTX_TB_STATUS_REG_SEL : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_VTX_TB_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VTX_HEAD_PTR_Q : 4;
+ unsigned int TAIL_PTR_Q : 4;
+ unsigned int FULL_CNT_Q : 4;
+ unsigned int NXT_POS_ALLOC_CNT : 4;
+ unsigned int NXT_PC_ALLOC_CNT : 4;
+ unsigned int SX_EVENT_FULL : 1;
+ unsigned int BUSY_Q : 1;
+ unsigned int : 10;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 10;
+ unsigned int BUSY_Q : 1;
+ unsigned int SX_EVENT_FULL : 1;
+ unsigned int NXT_PC_ALLOC_CNT : 4;
+ unsigned int NXT_POS_ALLOC_CNT : 4;
+ unsigned int FULL_CNT_Q : 4;
+ unsigned int TAIL_PTR_Q : 4;
+ unsigned int VTX_HEAD_PTR_Q : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_VTX_TB_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VS_DONE_PTR : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int VS_DONE_PTR : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_VTX_TB_STATUS_REG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VS_STATUS_REG : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VS_STATUS_REG : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_VTX_TB_STATE_MEM {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VS_STATE_MEM : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VS_STATE_MEM : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_PIX_TB_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PIX_HEAD_PTR : 6;
+ unsigned int TAIL_PTR : 6;
+ unsigned int FULL_CNT : 7;
+ unsigned int NXT_PIX_ALLOC_CNT : 6;
+ unsigned int NXT_PIX_EXP_CNT : 6;
+ unsigned int BUSY : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int BUSY : 1;
+ unsigned int NXT_PIX_EXP_CNT : 6;
+ unsigned int NXT_PIX_ALLOC_CNT : 6;
+ unsigned int FULL_CNT : 7;
+ unsigned int TAIL_PTR : 6;
+ unsigned int PIX_HEAD_PTR : 6;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_PIX_TB_STATUS_REG_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PIX_TB_STATUS_REG_0 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PIX_TB_STATUS_REG_0 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_PIX_TB_STATUS_REG_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PIX_TB_STATUS_REG_1 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PIX_TB_STATUS_REG_1 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_PIX_TB_STATUS_REG_2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PIX_TB_STATUS_REG_2 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PIX_TB_STATUS_REG_2 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_PIX_TB_STATUS_REG_3 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PIX_TB_STATUS_REG_3 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PIX_TB_STATUS_REG_3 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_PIX_TB_STATE_MEM {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PIX_TB_STATE_MEM : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PIX_TB_STATE_MEM : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_PERFCOUNTER0_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_SEL : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERF_SEL : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_PERFCOUNTER1_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_SEL : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERF_SEL : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_PERFCOUNTER2_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_SEL : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERF_SEL : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_PERFCOUNTER3_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_SEL : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERF_SEL : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_PERFCOUNTER0_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERF_COUNT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_PERFCOUNTER0_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERF_COUNT : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_PERFCOUNTER1_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERF_COUNT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_PERFCOUNTER1_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERF_COUNT : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_PERFCOUNTER2_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERF_COUNT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_PERFCOUNTER2_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERF_COUNT : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_PERFCOUNTER3_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERF_COUNT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_PERFCOUNTER3_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERF_COUNT : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SX_PERFCOUNTER0_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_SEL : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERF_SEL : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SX_PERFCOUNTER0_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERF_COUNT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SX_PERFCOUNTER0_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERF_COUNT : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_ALU_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VECTOR_RESULT : 6;
+ unsigned int VECTOR_DST_REL : 1;
+ unsigned int LOW_PRECISION_16B_FP : 1;
+ unsigned int SCALAR_RESULT : 6;
+ unsigned int SCALAR_DST_REL : 1;
+ unsigned int EXPORT_DATA : 1;
+ unsigned int VECTOR_WRT_MSK : 4;
+ unsigned int SCALAR_WRT_MSK : 4;
+ unsigned int VECTOR_CLAMP : 1;
+ unsigned int SCALAR_CLAMP : 1;
+ unsigned int SCALAR_OPCODE : 6;
+#else /* !defined(qLittleEndian) */
+ unsigned int SCALAR_OPCODE : 6;
+ unsigned int SCALAR_CLAMP : 1;
+ unsigned int VECTOR_CLAMP : 1;
+ unsigned int SCALAR_WRT_MSK : 4;
+ unsigned int VECTOR_WRT_MSK : 4;
+ unsigned int EXPORT_DATA : 1;
+ unsigned int SCALAR_DST_REL : 1;
+ unsigned int SCALAR_RESULT : 6;
+ unsigned int LOW_PRECISION_16B_FP : 1;
+ unsigned int VECTOR_DST_REL : 1;
+ unsigned int VECTOR_RESULT : 6;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_ALU_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SRC_C_SWIZZLE_R : 2;
+ unsigned int SRC_C_SWIZZLE_G : 2;
+ unsigned int SRC_C_SWIZZLE_B : 2;
+ unsigned int SRC_C_SWIZZLE_A : 2;
+ unsigned int SRC_B_SWIZZLE_R : 2;
+ unsigned int SRC_B_SWIZZLE_G : 2;
+ unsigned int SRC_B_SWIZZLE_B : 2;
+ unsigned int SRC_B_SWIZZLE_A : 2;
+ unsigned int SRC_A_SWIZZLE_R : 2;
+ unsigned int SRC_A_SWIZZLE_G : 2;
+ unsigned int SRC_A_SWIZZLE_B : 2;
+ unsigned int SRC_A_SWIZZLE_A : 2;
+ unsigned int SRC_C_ARG_MOD : 1;
+ unsigned int SRC_B_ARG_MOD : 1;
+ unsigned int SRC_A_ARG_MOD : 1;
+ unsigned int PRED_SELECT : 2;
+ unsigned int RELATIVE_ADDR : 1;
+ unsigned int CONST_1_REL_ABS : 1;
+ unsigned int CONST_0_REL_ABS : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int CONST_0_REL_ABS : 1;
+ unsigned int CONST_1_REL_ABS : 1;
+ unsigned int RELATIVE_ADDR : 1;
+ unsigned int PRED_SELECT : 2;
+ unsigned int SRC_A_ARG_MOD : 1;
+ unsigned int SRC_B_ARG_MOD : 1;
+ unsigned int SRC_C_ARG_MOD : 1;
+ unsigned int SRC_A_SWIZZLE_A : 2;
+ unsigned int SRC_A_SWIZZLE_B : 2;
+ unsigned int SRC_A_SWIZZLE_G : 2;
+ unsigned int SRC_A_SWIZZLE_R : 2;
+ unsigned int SRC_B_SWIZZLE_A : 2;
+ unsigned int SRC_B_SWIZZLE_B : 2;
+ unsigned int SRC_B_SWIZZLE_G : 2;
+ unsigned int SRC_B_SWIZZLE_R : 2;
+ unsigned int SRC_C_SWIZZLE_A : 2;
+ unsigned int SRC_C_SWIZZLE_B : 2;
+ unsigned int SRC_C_SWIZZLE_G : 2;
+ unsigned int SRC_C_SWIZZLE_R : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_ALU_2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SRC_C_REG_PTR : 6;
+ unsigned int REG_SELECT_C : 1;
+ unsigned int REG_ABS_MOD_C : 1;
+ unsigned int SRC_B_REG_PTR : 6;
+ unsigned int REG_SELECT_B : 1;
+ unsigned int REG_ABS_MOD_B : 1;
+ unsigned int SRC_A_REG_PTR : 6;
+ unsigned int REG_SELECT_A : 1;
+ unsigned int REG_ABS_MOD_A : 1;
+ unsigned int VECTOR_OPCODE : 5;
+ unsigned int SRC_C_SEL : 1;
+ unsigned int SRC_B_SEL : 1;
+ unsigned int SRC_A_SEL : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int SRC_A_SEL : 1;
+ unsigned int SRC_B_SEL : 1;
+ unsigned int SRC_C_SEL : 1;
+ unsigned int VECTOR_OPCODE : 5;
+ unsigned int REG_ABS_MOD_A : 1;
+ unsigned int REG_SELECT_A : 1;
+ unsigned int SRC_A_REG_PTR : 6;
+ unsigned int REG_ABS_MOD_B : 1;
+ unsigned int REG_SELECT_B : 1;
+ unsigned int SRC_B_REG_PTR : 6;
+ unsigned int REG_ABS_MOD_C : 1;
+ unsigned int REG_SELECT_C : 1;
+ unsigned int SRC_C_REG_PTR : 6;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_CF_EXEC_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ADDRESS : 9;
+ unsigned int RESERVED : 3;
+ unsigned int COUNT : 3;
+ unsigned int YIELD : 1;
+ unsigned int INST_TYPE_0 : 1;
+ unsigned int INST_SERIAL_0 : 1;
+ unsigned int INST_TYPE_1 : 1;
+ unsigned int INST_SERIAL_1 : 1;
+ unsigned int INST_TYPE_2 : 1;
+ unsigned int INST_SERIAL_2 : 1;
+ unsigned int INST_TYPE_3 : 1;
+ unsigned int INST_SERIAL_3 : 1;
+ unsigned int INST_TYPE_4 : 1;
+ unsigned int INST_SERIAL_4 : 1;
+ unsigned int INST_TYPE_5 : 1;
+ unsigned int INST_SERIAL_5 : 1;
+ unsigned int INST_VC_0 : 1;
+ unsigned int INST_VC_1 : 1;
+ unsigned int INST_VC_2 : 1;
+ unsigned int INST_VC_3 : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int INST_VC_3 : 1;
+ unsigned int INST_VC_2 : 1;
+ unsigned int INST_VC_1 : 1;
+ unsigned int INST_VC_0 : 1;
+ unsigned int INST_SERIAL_5 : 1;
+ unsigned int INST_TYPE_5 : 1;
+ unsigned int INST_SERIAL_4 : 1;
+ unsigned int INST_TYPE_4 : 1;
+ unsigned int INST_SERIAL_3 : 1;
+ unsigned int INST_TYPE_3 : 1;
+ unsigned int INST_SERIAL_2 : 1;
+ unsigned int INST_TYPE_2 : 1;
+ unsigned int INST_SERIAL_1 : 1;
+ unsigned int INST_TYPE_1 : 1;
+ unsigned int INST_SERIAL_0 : 1;
+ unsigned int INST_TYPE_0 : 1;
+ unsigned int YIELD : 1;
+ unsigned int COUNT : 3;
+ unsigned int RESERVED : 3;
+ unsigned int ADDRESS : 9;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_CF_EXEC_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int INST_VC_4 : 1;
+ unsigned int INST_VC_5 : 1;
+ unsigned int BOOL_ADDR : 8;
+ unsigned int CONDITION : 1;
+ unsigned int ADDRESS_MODE : 1;
+ unsigned int OPCODE : 4;
+ unsigned int ADDRESS : 9;
+ unsigned int RESERVED : 3;
+ unsigned int COUNT : 3;
+ unsigned int YIELD : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int YIELD : 1;
+ unsigned int COUNT : 3;
+ unsigned int RESERVED : 3;
+ unsigned int ADDRESS : 9;
+ unsigned int OPCODE : 4;
+ unsigned int ADDRESS_MODE : 1;
+ unsigned int CONDITION : 1;
+ unsigned int BOOL_ADDR : 8;
+ unsigned int INST_VC_5 : 1;
+ unsigned int INST_VC_4 : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_CF_EXEC_2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int INST_TYPE_0 : 1;
+ unsigned int INST_SERIAL_0 : 1;
+ unsigned int INST_TYPE_1 : 1;
+ unsigned int INST_SERIAL_1 : 1;
+ unsigned int INST_TYPE_2 : 1;
+ unsigned int INST_SERIAL_2 : 1;
+ unsigned int INST_TYPE_3 : 1;
+ unsigned int INST_SERIAL_3 : 1;
+ unsigned int INST_TYPE_4 : 1;
+ unsigned int INST_SERIAL_4 : 1;
+ unsigned int INST_TYPE_5 : 1;
+ unsigned int INST_SERIAL_5 : 1;
+ unsigned int INST_VC_0 : 1;
+ unsigned int INST_VC_1 : 1;
+ unsigned int INST_VC_2 : 1;
+ unsigned int INST_VC_3 : 1;
+ unsigned int INST_VC_4 : 1;
+ unsigned int INST_VC_5 : 1;
+ unsigned int BOOL_ADDR : 8;
+ unsigned int CONDITION : 1;
+ unsigned int ADDRESS_MODE : 1;
+ unsigned int OPCODE : 4;
+#else /* !defined(qLittleEndian) */
+ unsigned int OPCODE : 4;
+ unsigned int ADDRESS_MODE : 1;
+ unsigned int CONDITION : 1;
+ unsigned int BOOL_ADDR : 8;
+ unsigned int INST_VC_5 : 1;
+ unsigned int INST_VC_4 : 1;
+ unsigned int INST_VC_3 : 1;
+ unsigned int INST_VC_2 : 1;
+ unsigned int INST_VC_1 : 1;
+ unsigned int INST_VC_0 : 1;
+ unsigned int INST_SERIAL_5 : 1;
+ unsigned int INST_TYPE_5 : 1;
+ unsigned int INST_SERIAL_4 : 1;
+ unsigned int INST_TYPE_4 : 1;
+ unsigned int INST_SERIAL_3 : 1;
+ unsigned int INST_TYPE_3 : 1;
+ unsigned int INST_SERIAL_2 : 1;
+ unsigned int INST_TYPE_2 : 1;
+ unsigned int INST_SERIAL_1 : 1;
+ unsigned int INST_TYPE_1 : 1;
+ unsigned int INST_SERIAL_0 : 1;
+ unsigned int INST_TYPE_0 : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_CF_LOOP_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ADDRESS : 10;
+ unsigned int RESERVED_0 : 6;
+ unsigned int LOOP_ID : 5;
+ unsigned int RESERVED_1 : 11;
+#else /* !defined(qLittleEndian) */
+ unsigned int RESERVED_1 : 11;
+ unsigned int LOOP_ID : 5;
+ unsigned int RESERVED_0 : 6;
+ unsigned int ADDRESS : 10;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_CF_LOOP_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RESERVED_0 : 11;
+ unsigned int ADDRESS_MODE : 1;
+ unsigned int OPCODE : 4;
+ unsigned int ADDRESS : 10;
+ unsigned int RESERVED_1 : 6;
+#else /* !defined(qLittleEndian) */
+ unsigned int RESERVED_1 : 6;
+ unsigned int ADDRESS : 10;
+ unsigned int OPCODE : 4;
+ unsigned int ADDRESS_MODE : 1;
+ unsigned int RESERVED_0 : 11;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_CF_LOOP_2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int LOOP_ID : 5;
+ unsigned int RESERVED : 22;
+ unsigned int ADDRESS_MODE : 1;
+ unsigned int OPCODE : 4;
+#else /* !defined(qLittleEndian) */
+ unsigned int OPCODE : 4;
+ unsigned int ADDRESS_MODE : 1;
+ unsigned int RESERVED : 22;
+ unsigned int LOOP_ID : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_CF_JMP_CALL_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ADDRESS : 10;
+ unsigned int RESERVED_0 : 3;
+ unsigned int FORCE_CALL : 1;
+ unsigned int PREDICATED_JMP : 1;
+ unsigned int RESERVED_1 : 17;
+#else /* !defined(qLittleEndian) */
+ unsigned int RESERVED_1 : 17;
+ unsigned int PREDICATED_JMP : 1;
+ unsigned int FORCE_CALL : 1;
+ unsigned int RESERVED_0 : 3;
+ unsigned int ADDRESS : 10;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_CF_JMP_CALL_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RESERVED_0 : 1;
+ unsigned int DIRECTION : 1;
+ unsigned int BOOL_ADDR : 8;
+ unsigned int CONDITION : 1;
+ unsigned int ADDRESS_MODE : 1;
+ unsigned int OPCODE : 4;
+ unsigned int ADDRESS : 10;
+ unsigned int RESERVED_1 : 3;
+ unsigned int FORCE_CALL : 1;
+ unsigned int RESERVED_2 : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int RESERVED_2 : 2;
+ unsigned int FORCE_CALL : 1;
+ unsigned int RESERVED_1 : 3;
+ unsigned int ADDRESS : 10;
+ unsigned int OPCODE : 4;
+ unsigned int ADDRESS_MODE : 1;
+ unsigned int CONDITION : 1;
+ unsigned int BOOL_ADDR : 8;
+ unsigned int DIRECTION : 1;
+ unsigned int RESERVED_0 : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_CF_JMP_CALL_2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RESERVED : 17;
+ unsigned int DIRECTION : 1;
+ unsigned int BOOL_ADDR : 8;
+ unsigned int CONDITION : 1;
+ unsigned int ADDRESS_MODE : 1;
+ unsigned int OPCODE : 4;
+#else /* !defined(qLittleEndian) */
+ unsigned int OPCODE : 4;
+ unsigned int ADDRESS_MODE : 1;
+ unsigned int CONDITION : 1;
+ unsigned int BOOL_ADDR : 8;
+ unsigned int DIRECTION : 1;
+ unsigned int RESERVED : 17;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_CF_ALLOC_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SIZE : 4;
+ unsigned int RESERVED : 28;
+#else /* !defined(qLittleEndian) */
+ unsigned int RESERVED : 28;
+ unsigned int SIZE : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_CF_ALLOC_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RESERVED_0 : 8;
+ unsigned int NO_SERIAL : 1;
+ unsigned int BUFFER_SELECT : 2;
+ unsigned int ALLOC_MODE : 1;
+ unsigned int OPCODE : 4;
+ unsigned int SIZE : 4;
+ unsigned int RESERVED_1 : 12;
+#else /* !defined(qLittleEndian) */
+ unsigned int RESERVED_1 : 12;
+ unsigned int SIZE : 4;
+ unsigned int OPCODE : 4;
+ unsigned int ALLOC_MODE : 1;
+ unsigned int BUFFER_SELECT : 2;
+ unsigned int NO_SERIAL : 1;
+ unsigned int RESERVED_0 : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_CF_ALLOC_2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RESERVED : 24;
+ unsigned int NO_SERIAL : 1;
+ unsigned int BUFFER_SELECT : 2;
+ unsigned int ALLOC_MODE : 1;
+ unsigned int OPCODE : 4;
+#else /* !defined(qLittleEndian) */
+ unsigned int OPCODE : 4;
+ unsigned int ALLOC_MODE : 1;
+ unsigned int BUFFER_SELECT : 2;
+ unsigned int NO_SERIAL : 1;
+ unsigned int RESERVED : 24;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_TFETCH_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int OPCODE : 5;
+ unsigned int SRC_GPR : 6;
+ unsigned int SRC_GPR_AM : 1;
+ unsigned int DST_GPR : 6;
+ unsigned int DST_GPR_AM : 1;
+ unsigned int FETCH_VALID_ONLY : 1;
+ unsigned int CONST_INDEX : 5;
+ unsigned int TX_COORD_DENORM : 1;
+ unsigned int SRC_SEL_X : 2;
+ unsigned int SRC_SEL_Y : 2;
+ unsigned int SRC_SEL_Z : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int SRC_SEL_Z : 2;
+ unsigned int SRC_SEL_Y : 2;
+ unsigned int SRC_SEL_X : 2;
+ unsigned int TX_COORD_DENORM : 1;
+ unsigned int CONST_INDEX : 5;
+ unsigned int FETCH_VALID_ONLY : 1;
+ unsigned int DST_GPR_AM : 1;
+ unsigned int DST_GPR : 6;
+ unsigned int SRC_GPR_AM : 1;
+ unsigned int SRC_GPR : 6;
+ unsigned int OPCODE : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_TFETCH_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DST_SEL_X : 3;
+ unsigned int DST_SEL_Y : 3;
+ unsigned int DST_SEL_Z : 3;
+ unsigned int DST_SEL_W : 3;
+ unsigned int MAG_FILTER : 2;
+ unsigned int MIN_FILTER : 2;
+ unsigned int MIP_FILTER : 2;
+ unsigned int ANISO_FILTER : 3;
+ unsigned int ARBITRARY_FILTER : 3;
+ unsigned int VOL_MAG_FILTER : 2;
+ unsigned int VOL_MIN_FILTER : 2;
+ unsigned int USE_COMP_LOD : 1;
+ unsigned int USE_REG_LOD : 2;
+ unsigned int PRED_SELECT : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int PRED_SELECT : 1;
+ unsigned int USE_REG_LOD : 2;
+ unsigned int USE_COMP_LOD : 1;
+ unsigned int VOL_MIN_FILTER : 2;
+ unsigned int VOL_MAG_FILTER : 2;
+ unsigned int ARBITRARY_FILTER : 3;
+ unsigned int ANISO_FILTER : 3;
+ unsigned int MIP_FILTER : 2;
+ unsigned int MIN_FILTER : 2;
+ unsigned int MAG_FILTER : 2;
+ unsigned int DST_SEL_W : 3;
+ unsigned int DST_SEL_Z : 3;
+ unsigned int DST_SEL_Y : 3;
+ unsigned int DST_SEL_X : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_TFETCH_2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int USE_REG_GRADIENTS : 1;
+ unsigned int SAMPLE_LOCATION : 1;
+ unsigned int LOD_BIAS : 7;
+ unsigned int UNUSED : 7;
+ unsigned int OFFSET_X : 5;
+ unsigned int OFFSET_Y : 5;
+ unsigned int OFFSET_Z : 5;
+ unsigned int PRED_CONDITION : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int PRED_CONDITION : 1;
+ unsigned int OFFSET_Z : 5;
+ unsigned int OFFSET_Y : 5;
+ unsigned int OFFSET_X : 5;
+ unsigned int UNUSED : 7;
+ unsigned int LOD_BIAS : 7;
+ unsigned int SAMPLE_LOCATION : 1;
+ unsigned int USE_REG_GRADIENTS : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_VFETCH_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int OPCODE : 5;
+ unsigned int SRC_GPR : 6;
+ unsigned int SRC_GPR_AM : 1;
+ unsigned int DST_GPR : 6;
+ unsigned int DST_GPR_AM : 1;
+ unsigned int MUST_BE_ONE : 1;
+ unsigned int CONST_INDEX : 5;
+ unsigned int CONST_INDEX_SEL : 2;
+ unsigned int : 3;
+ unsigned int SRC_SEL : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int SRC_SEL : 2;
+ unsigned int : 3;
+ unsigned int CONST_INDEX_SEL : 2;
+ unsigned int CONST_INDEX : 5;
+ unsigned int MUST_BE_ONE : 1;
+ unsigned int DST_GPR_AM : 1;
+ unsigned int DST_GPR : 6;
+ unsigned int SRC_GPR_AM : 1;
+ unsigned int SRC_GPR : 6;
+ unsigned int OPCODE : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_VFETCH_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DST_SEL_X : 3;
+ unsigned int DST_SEL_Y : 3;
+ unsigned int DST_SEL_Z : 3;
+ unsigned int DST_SEL_W : 3;
+ unsigned int FORMAT_COMP_ALL : 1;
+ unsigned int NUM_FORMAT_ALL : 1;
+ unsigned int SIGNED_RF_MODE_ALL : 1;
+ unsigned int : 1;
+ unsigned int DATA_FORMAT : 6;
+ unsigned int : 1;
+ unsigned int EXP_ADJUST_ALL : 7;
+ unsigned int : 1;
+ unsigned int PRED_SELECT : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int PRED_SELECT : 1;
+ unsigned int : 1;
+ unsigned int EXP_ADJUST_ALL : 7;
+ unsigned int : 1;
+ unsigned int DATA_FORMAT : 6;
+ unsigned int : 1;
+ unsigned int SIGNED_RF_MODE_ALL : 1;
+ unsigned int NUM_FORMAT_ALL : 1;
+ unsigned int FORMAT_COMP_ALL : 1;
+ unsigned int DST_SEL_W : 3;
+ unsigned int DST_SEL_Z : 3;
+ unsigned int DST_SEL_Y : 3;
+ unsigned int DST_SEL_X : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INSTRUCTION_VFETCH_2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int STRIDE : 8;
+ unsigned int : 8;
+ unsigned int OFFSET : 8;
+ unsigned int : 7;
+ unsigned int PRED_CONDITION : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int PRED_CONDITION : 1;
+ unsigned int : 7;
+ unsigned int OFFSET : 8;
+ unsigned int : 8;
+ unsigned int STRIDE : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CONSTANT_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RED : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int RED : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CONSTANT_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int GREEN : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int GREEN : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CONSTANT_2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BLUE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BLUE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CONSTANT_3 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ALPHA : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int ALPHA : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_FETCH_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VALUE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VALUE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_FETCH_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VALUE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VALUE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_FETCH_2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VALUE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VALUE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_FETCH_3 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VALUE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VALUE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_FETCH_4 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VALUE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VALUE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_FETCH_5 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VALUE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VALUE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CONSTANT_VFETCH_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TYPE : 1;
+ unsigned int STATE : 1;
+ unsigned int BASE_ADDRESS : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int BASE_ADDRESS : 30;
+ unsigned int STATE : 1;
+ unsigned int TYPE : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CONSTANT_VFETCH_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ENDIAN_SWAP : 2;
+ unsigned int LIMIT_ADDRESS : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int LIMIT_ADDRESS : 30;
+ unsigned int ENDIAN_SWAP : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CONSTANT_T2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VALUE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VALUE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CONSTANT_T3 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VALUE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VALUE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CF_BOOLEANS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CF_BOOLEANS_0 : 8;
+ unsigned int CF_BOOLEANS_1 : 8;
+ unsigned int CF_BOOLEANS_2 : 8;
+ unsigned int CF_BOOLEANS_3 : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int CF_BOOLEANS_3 : 8;
+ unsigned int CF_BOOLEANS_2 : 8;
+ unsigned int CF_BOOLEANS_1 : 8;
+ unsigned int CF_BOOLEANS_0 : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CF_LOOP {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CF_LOOP_COUNT : 8;
+ unsigned int CF_LOOP_START : 8;
+ unsigned int CF_LOOP_STEP : 8;
+ unsigned int : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 8;
+ unsigned int CF_LOOP_STEP : 8;
+ unsigned int CF_LOOP_START : 8;
+ unsigned int CF_LOOP_COUNT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CONSTANT_RT_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RED : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int RED : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CONSTANT_RT_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int GREEN : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int GREEN : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CONSTANT_RT_2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BLUE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BLUE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CONSTANT_RT_3 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ALPHA : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int ALPHA : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_FETCH_RT_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VALUE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VALUE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_FETCH_RT_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VALUE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VALUE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_FETCH_RT_2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VALUE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VALUE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_FETCH_RT_3 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VALUE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VALUE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_FETCH_RT_4 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VALUE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VALUE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_FETCH_RT_5 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VALUE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VALUE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CF_RT_BOOLEANS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CF_BOOLEANS_0 : 8;
+ unsigned int CF_BOOLEANS_1 : 8;
+ unsigned int CF_BOOLEANS_2 : 8;
+ unsigned int CF_BOOLEANS_3 : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int CF_BOOLEANS_3 : 8;
+ unsigned int CF_BOOLEANS_2 : 8;
+ unsigned int CF_BOOLEANS_1 : 8;
+ unsigned int CF_BOOLEANS_0 : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CF_RT_LOOP {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CF_LOOP_COUNT : 8;
+ unsigned int CF_LOOP_START : 8;
+ unsigned int CF_LOOP_STEP : 8;
+ unsigned int : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 8;
+ unsigned int CF_LOOP_STEP : 8;
+ unsigned int CF_LOOP_START : 8;
+ unsigned int CF_LOOP_COUNT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_VS_PROGRAM {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BASE : 12;
+ unsigned int SIZE : 12;
+ unsigned int : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 8;
+ unsigned int SIZE : 12;
+ unsigned int BASE : 12;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_PS_PROGRAM {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BASE : 12;
+ unsigned int SIZE : 12;
+ unsigned int : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 8;
+ unsigned int SIZE : 12;
+ unsigned int BASE : 12;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CF_PROGRAM_SIZE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VS_CF_SIZE : 11;
+ unsigned int : 1;
+ unsigned int PS_CF_SIZE : 11;
+ unsigned int : 9;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 9;
+ unsigned int PS_CF_SIZE : 11;
+ unsigned int : 1;
+ unsigned int VS_CF_SIZE : 11;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_INTERPOLATOR_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PARAM_SHADE : 16;
+ unsigned int SAMPLING_PATTERN : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int SAMPLING_PATTERN : 16;
+ unsigned int PARAM_SHADE : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_PROGRAM_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VS_NUM_REG : 6;
+ unsigned int : 2;
+ unsigned int PS_NUM_REG : 6;
+ unsigned int : 2;
+ unsigned int VS_RESOURCE : 1;
+ unsigned int PS_RESOURCE : 1;
+ unsigned int PARAM_GEN : 1;
+ unsigned int GEN_INDEX_PIX : 1;
+ unsigned int VS_EXPORT_COUNT : 4;
+ unsigned int VS_EXPORT_MODE : 3;
+ unsigned int PS_EXPORT_MODE : 4;
+ unsigned int GEN_INDEX_VTX : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int GEN_INDEX_VTX : 1;
+ unsigned int PS_EXPORT_MODE : 4;
+ unsigned int VS_EXPORT_MODE : 3;
+ unsigned int VS_EXPORT_COUNT : 4;
+ unsigned int GEN_INDEX_PIX : 1;
+ unsigned int PARAM_GEN : 1;
+ unsigned int PS_RESOURCE : 1;
+ unsigned int VS_RESOURCE : 1;
+ unsigned int : 2;
+ unsigned int PS_NUM_REG : 6;
+ unsigned int : 2;
+ unsigned int VS_NUM_REG : 6;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_WRAPPING_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PARAM_WRAP_0 : 4;
+ unsigned int PARAM_WRAP_1 : 4;
+ unsigned int PARAM_WRAP_2 : 4;
+ unsigned int PARAM_WRAP_3 : 4;
+ unsigned int PARAM_WRAP_4 : 4;
+ unsigned int PARAM_WRAP_5 : 4;
+ unsigned int PARAM_WRAP_6 : 4;
+ unsigned int PARAM_WRAP_7 : 4;
+#else /* !defined(qLittleEndian) */
+ unsigned int PARAM_WRAP_7 : 4;
+ unsigned int PARAM_WRAP_6 : 4;
+ unsigned int PARAM_WRAP_5 : 4;
+ unsigned int PARAM_WRAP_4 : 4;
+ unsigned int PARAM_WRAP_3 : 4;
+ unsigned int PARAM_WRAP_2 : 4;
+ unsigned int PARAM_WRAP_1 : 4;
+ unsigned int PARAM_WRAP_0 : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_WRAPPING_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PARAM_WRAP_8 : 4;
+ unsigned int PARAM_WRAP_9 : 4;
+ unsigned int PARAM_WRAP_10 : 4;
+ unsigned int PARAM_WRAP_11 : 4;
+ unsigned int PARAM_WRAP_12 : 4;
+ unsigned int PARAM_WRAP_13 : 4;
+ unsigned int PARAM_WRAP_14 : 4;
+ unsigned int PARAM_WRAP_15 : 4;
+#else /* !defined(qLittleEndian) */
+ unsigned int PARAM_WRAP_15 : 4;
+ unsigned int PARAM_WRAP_14 : 4;
+ unsigned int PARAM_WRAP_13 : 4;
+ unsigned int PARAM_WRAP_12 : 4;
+ unsigned int PARAM_WRAP_11 : 4;
+ unsigned int PARAM_WRAP_10 : 4;
+ unsigned int PARAM_WRAP_9 : 4;
+ unsigned int PARAM_WRAP_8 : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_VS_CONST {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BASE : 9;
+ unsigned int : 3;
+ unsigned int SIZE : 9;
+ unsigned int : 11;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 11;
+ unsigned int SIZE : 9;
+ unsigned int : 3;
+ unsigned int BASE : 9;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_PS_CONST {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BASE : 9;
+ unsigned int : 3;
+ unsigned int SIZE : 9;
+ unsigned int : 11;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 11;
+ unsigned int SIZE : 9;
+ unsigned int : 3;
+ unsigned int BASE : 9;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CONTEXT_MISC {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int INST_PRED_OPTIMIZE : 1;
+ unsigned int SC_OUTPUT_SCREEN_XY : 1;
+ unsigned int SC_SAMPLE_CNTL : 2;
+ unsigned int : 4;
+ unsigned int PARAM_GEN_POS : 8;
+ unsigned int PERFCOUNTER_REF : 1;
+ unsigned int YEILD_OPTIMIZE : 1;
+ unsigned int TX_CACHE_SEL : 1;
+ unsigned int : 13;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 13;
+ unsigned int TX_CACHE_SEL : 1;
+ unsigned int YEILD_OPTIMIZE : 1;
+ unsigned int PERFCOUNTER_REF : 1;
+ unsigned int PARAM_GEN_POS : 8;
+ unsigned int : 4;
+ unsigned int SC_SAMPLE_CNTL : 2;
+ unsigned int SC_OUTPUT_SCREEN_XY : 1;
+ unsigned int INST_PRED_OPTIMIZE : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_CF_RD_BASE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RD_BASE : 3;
+ unsigned int : 29;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 29;
+ unsigned int RD_BASE : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_MISC_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DB_PROB_ON : 1;
+ unsigned int : 3;
+ unsigned int DB_PROB_BREAK : 1;
+ unsigned int : 3;
+ unsigned int DB_PROB_ADDR : 11;
+ unsigned int : 5;
+ unsigned int DB_PROB_COUNT : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int DB_PROB_COUNT : 8;
+ unsigned int : 5;
+ unsigned int DB_PROB_ADDR : 11;
+ unsigned int : 3;
+ unsigned int DB_PROB_BREAK : 1;
+ unsigned int : 3;
+ unsigned int DB_PROB_ON : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SQ_DEBUG_MISC_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DB_ON_PIX : 1;
+ unsigned int DB_ON_VTX : 1;
+ unsigned int : 6;
+ unsigned int DB_INST_COUNT : 8;
+ unsigned int DB_BREAK_ADDR : 11;
+ unsigned int : 5;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 5;
+ unsigned int DB_BREAK_ADDR : 11;
+ unsigned int DB_INST_COUNT : 8;
+ unsigned int : 6;
+ unsigned int DB_ON_VTX : 1;
+ unsigned int DB_ON_PIX : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_ARBITER_CONFIG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SAME_PAGE_LIMIT : 6;
+ unsigned int SAME_PAGE_GRANULARITY : 1;
+ unsigned int L1_ARB_ENABLE : 1;
+ unsigned int L1_ARB_HOLD_ENABLE : 1;
+ unsigned int L2_ARB_CONTROL : 1;
+ unsigned int PAGE_SIZE : 3;
+ unsigned int TC_REORDER_ENABLE : 1;
+ unsigned int TC_ARB_HOLD_ENABLE : 1;
+ unsigned int IN_FLIGHT_LIMIT_ENABLE : 1;
+ unsigned int IN_FLIGHT_LIMIT : 6;
+ unsigned int CP_CLNT_ENABLE : 1;
+ unsigned int VGT_CLNT_ENABLE : 1;
+ unsigned int TC_CLNT_ENABLE : 1;
+ unsigned int RB_CLNT_ENABLE : 1;
+ unsigned int PA_CLNT_ENABLE : 1;
+ unsigned int : 5;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 5;
+ unsigned int PA_CLNT_ENABLE : 1;
+ unsigned int RB_CLNT_ENABLE : 1;
+ unsigned int TC_CLNT_ENABLE : 1;
+ unsigned int VGT_CLNT_ENABLE : 1;
+ unsigned int CP_CLNT_ENABLE : 1;
+ unsigned int IN_FLIGHT_LIMIT : 6;
+ unsigned int IN_FLIGHT_LIMIT_ENABLE : 1;
+ unsigned int TC_ARB_HOLD_ENABLE : 1;
+ unsigned int TC_REORDER_ENABLE : 1;
+ unsigned int PAGE_SIZE : 3;
+ unsigned int L2_ARB_CONTROL : 1;
+ unsigned int L1_ARB_HOLD_ENABLE : 1;
+ unsigned int L1_ARB_ENABLE : 1;
+ unsigned int SAME_PAGE_GRANULARITY : 1;
+ unsigned int SAME_PAGE_LIMIT : 6;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_CLNT_AXI_ID_REUSE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CPw_ID : 3;
+ unsigned int RESERVED1 : 1;
+ unsigned int RBw_ID : 3;
+ unsigned int RESERVED2 : 1;
+ unsigned int MMUr_ID : 3;
+ unsigned int RESERVED3 : 1;
+ unsigned int PAw_ID : 3;
+ unsigned int : 17;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 17;
+ unsigned int PAw_ID : 3;
+ unsigned int RESERVED3 : 1;
+ unsigned int MMUr_ID : 3;
+ unsigned int RESERVED2 : 1;
+ unsigned int RBw_ID : 3;
+ unsigned int RESERVED1 : 1;
+ unsigned int CPw_ID : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_INTERRUPT_MASK {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int AXI_READ_ERROR : 1;
+ unsigned int AXI_WRITE_ERROR : 1;
+ unsigned int MMU_PAGE_FAULT : 1;
+ unsigned int : 29;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 29;
+ unsigned int MMU_PAGE_FAULT : 1;
+ unsigned int AXI_WRITE_ERROR : 1;
+ unsigned int AXI_READ_ERROR : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_INTERRUPT_STATUS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int AXI_READ_ERROR : 1;
+ unsigned int AXI_WRITE_ERROR : 1;
+ unsigned int MMU_PAGE_FAULT : 1;
+ unsigned int : 29;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 29;
+ unsigned int MMU_PAGE_FAULT : 1;
+ unsigned int AXI_WRITE_ERROR : 1;
+ unsigned int AXI_READ_ERROR : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_INTERRUPT_CLEAR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int AXI_READ_ERROR : 1;
+ unsigned int AXI_WRITE_ERROR : 1;
+ unsigned int MMU_PAGE_FAULT : 1;
+ unsigned int : 29;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 29;
+ unsigned int MMU_PAGE_FAULT : 1;
+ unsigned int AXI_WRITE_ERROR : 1;
+ unsigned int AXI_READ_ERROR : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_AXI_ERROR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int AXI_READ_ID : 3;
+ unsigned int AXI_READ_ERROR : 1;
+ unsigned int AXI_WRITE_ID : 3;
+ unsigned int AXI_WRITE_ERROR : 1;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int AXI_WRITE_ERROR : 1;
+ unsigned int AXI_WRITE_ID : 3;
+ unsigned int AXI_READ_ERROR : 1;
+ unsigned int AXI_READ_ID : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_PERFCOUNTER0_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_SEL : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERF_SEL : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_PERFCOUNTER1_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_SEL : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERF_SEL : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_PERFCOUNTER0_CONFIG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int N_VALUE : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int N_VALUE : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_PERFCOUNTER1_CONFIG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int N_VALUE : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int N_VALUE : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_PERFCOUNTER0_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERF_COUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_PERFCOUNTER1_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNTER_LOW : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERF_COUNTER_LOW : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_PERFCOUNTER0_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERF_COUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_PERFCOUNTER1_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNTER_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERF_COUNTER_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_CTRL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int INDEX : 6;
+ unsigned int : 26;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 26;
+ unsigned int INDEX : 6;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_DATA {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DATA : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int DATA : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_AXI_HALT_CONTROL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int AXI_HALT : 1;
+ unsigned int : 31;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 31;
+ unsigned int AXI_HALT : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG00 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MH_BUSY : 1;
+ unsigned int TRANS_OUTSTANDING : 1;
+ unsigned int CP_REQUEST : 1;
+ unsigned int VGT_REQUEST : 1;
+ unsigned int TC_REQUEST : 1;
+ unsigned int TC_CAM_EMPTY : 1;
+ unsigned int TC_CAM_FULL : 1;
+ unsigned int TCD_EMPTY : 1;
+ unsigned int TCD_FULL : 1;
+ unsigned int RB_REQUEST : 1;
+ unsigned int PA_REQUEST : 1;
+ unsigned int MH_CLK_EN_STATE : 1;
+ unsigned int ARQ_EMPTY : 1;
+ unsigned int ARQ_FULL : 1;
+ unsigned int WDB_EMPTY : 1;
+ unsigned int WDB_FULL : 1;
+ unsigned int AXI_AVALID : 1;
+ unsigned int AXI_AREADY : 1;
+ unsigned int AXI_ARVALID : 1;
+ unsigned int AXI_ARREADY : 1;
+ unsigned int AXI_WVALID : 1;
+ unsigned int AXI_WREADY : 1;
+ unsigned int AXI_RVALID : 1;
+ unsigned int AXI_RREADY : 1;
+ unsigned int AXI_BVALID : 1;
+ unsigned int AXI_BREADY : 1;
+ unsigned int AXI_HALT_REQ : 1;
+ unsigned int AXI_HALT_ACK : 1;
+ unsigned int AXI_RDY_ENA : 1;
+ unsigned int : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 3;
+ unsigned int AXI_RDY_ENA : 1;
+ unsigned int AXI_HALT_ACK : 1;
+ unsigned int AXI_HALT_REQ : 1;
+ unsigned int AXI_BREADY : 1;
+ unsigned int AXI_BVALID : 1;
+ unsigned int AXI_RREADY : 1;
+ unsigned int AXI_RVALID : 1;
+ unsigned int AXI_WREADY : 1;
+ unsigned int AXI_WVALID : 1;
+ unsigned int AXI_ARREADY : 1;
+ unsigned int AXI_ARVALID : 1;
+ unsigned int AXI_AREADY : 1;
+ unsigned int AXI_AVALID : 1;
+ unsigned int WDB_FULL : 1;
+ unsigned int WDB_EMPTY : 1;
+ unsigned int ARQ_FULL : 1;
+ unsigned int ARQ_EMPTY : 1;
+ unsigned int MH_CLK_EN_STATE : 1;
+ unsigned int PA_REQUEST : 1;
+ unsigned int RB_REQUEST : 1;
+ unsigned int TCD_FULL : 1;
+ unsigned int TCD_EMPTY : 1;
+ unsigned int TC_CAM_FULL : 1;
+ unsigned int TC_CAM_EMPTY : 1;
+ unsigned int TC_REQUEST : 1;
+ unsigned int VGT_REQUEST : 1;
+ unsigned int CP_REQUEST : 1;
+ unsigned int TRANS_OUTSTANDING : 1;
+ unsigned int MH_BUSY : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG01 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CP_SEND_q : 1;
+ unsigned int CP_RTR_q : 1;
+ unsigned int CP_WRITE_q : 1;
+ unsigned int CP_TAG_q : 3;
+ unsigned int CP_BLEN_q : 1;
+ unsigned int VGT_SEND_q : 1;
+ unsigned int VGT_RTR_q : 1;
+ unsigned int VGT_TAG_q : 1;
+ unsigned int TC_SEND_q : 1;
+ unsigned int TC_RTR_q : 1;
+ unsigned int TC_BLEN_q : 1;
+ unsigned int TC_ROQ_SEND_q : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int TC_MH_written : 1;
+ unsigned int RB_SEND_q : 1;
+ unsigned int RB_RTR_q : 1;
+ unsigned int PA_SEND_q : 1;
+ unsigned int PA_RTR_q : 1;
+ unsigned int : 12;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 12;
+ unsigned int PA_RTR_q : 1;
+ unsigned int PA_SEND_q : 1;
+ unsigned int RB_RTR_q : 1;
+ unsigned int RB_SEND_q : 1;
+ unsigned int TC_MH_written : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int TC_ROQ_SEND_q : 1;
+ unsigned int TC_BLEN_q : 1;
+ unsigned int TC_RTR_q : 1;
+ unsigned int TC_SEND_q : 1;
+ unsigned int VGT_TAG_q : 1;
+ unsigned int VGT_RTR_q : 1;
+ unsigned int VGT_SEND_q : 1;
+ unsigned int CP_BLEN_q : 1;
+ unsigned int CP_TAG_q : 3;
+ unsigned int CP_WRITE_q : 1;
+ unsigned int CP_RTR_q : 1;
+ unsigned int CP_SEND_q : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG02 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MH_CP_grb_send : 1;
+ unsigned int MH_VGT_grb_send : 1;
+ unsigned int MH_TC_mcsend : 1;
+ unsigned int MH_CLNT_rlast : 1;
+ unsigned int MH_CLNT_tag : 3;
+ unsigned int RDC_RID : 3;
+ unsigned int RDC_RRESP : 2;
+ unsigned int MH_CP_writeclean : 1;
+ unsigned int MH_RB_writeclean : 1;
+ unsigned int MH_PA_writeclean : 1;
+ unsigned int BRC_BID : 3;
+ unsigned int BRC_BRESP : 2;
+ unsigned int : 12;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 12;
+ unsigned int BRC_BRESP : 2;
+ unsigned int BRC_BID : 3;
+ unsigned int MH_PA_writeclean : 1;
+ unsigned int MH_RB_writeclean : 1;
+ unsigned int MH_CP_writeclean : 1;
+ unsigned int RDC_RRESP : 2;
+ unsigned int RDC_RID : 3;
+ unsigned int MH_CLNT_tag : 3;
+ unsigned int MH_CLNT_rlast : 1;
+ unsigned int MH_TC_mcsend : 1;
+ unsigned int MH_VGT_grb_send : 1;
+ unsigned int MH_CP_grb_send : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG03 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MH_CLNT_data_31_0 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int MH_CLNT_data_31_0 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG04 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MH_CLNT_data_63_32 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int MH_CLNT_data_63_32 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG05 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CP_MH_send : 1;
+ unsigned int CP_MH_write : 1;
+ unsigned int CP_MH_tag : 3;
+ unsigned int CP_MH_ad_31_5 : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int CP_MH_ad_31_5 : 27;
+ unsigned int CP_MH_tag : 3;
+ unsigned int CP_MH_write : 1;
+ unsigned int CP_MH_send : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG06 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CP_MH_data_31_0 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int CP_MH_data_31_0 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG07 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CP_MH_data_63_32 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int CP_MH_data_63_32 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG08 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CP_MH_be : 8;
+ unsigned int RB_MH_be : 8;
+ unsigned int PA_MH_be : 8;
+ unsigned int : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 8;
+ unsigned int PA_MH_be : 8;
+ unsigned int RB_MH_be : 8;
+ unsigned int CP_MH_be : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG09 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ALWAYS_ZERO : 3;
+ unsigned int VGT_MH_send : 1;
+ unsigned int VGT_MH_tagbe : 1;
+ unsigned int VGT_MH_ad_31_5 : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int VGT_MH_ad_31_5 : 27;
+ unsigned int VGT_MH_tagbe : 1;
+ unsigned int VGT_MH_send : 1;
+ unsigned int ALWAYS_ZERO : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG10 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int TC_MH_send : 1;
+ unsigned int TC_MH_mask : 2;
+ unsigned int TC_MH_addr_31_5 : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int TC_MH_addr_31_5 : 27;
+ unsigned int TC_MH_mask : 2;
+ unsigned int TC_MH_send : 1;
+ unsigned int ALWAYS_ZERO : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG11 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TC_MH_info : 25;
+ unsigned int TC_MH_send : 1;
+ unsigned int : 6;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 6;
+ unsigned int TC_MH_send : 1;
+ unsigned int TC_MH_info : 25;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG12 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MH_TC_mcinfo : 25;
+ unsigned int MH_TC_mcinfo_send : 1;
+ unsigned int TC_MH_written : 1;
+ unsigned int : 5;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 5;
+ unsigned int TC_MH_written : 1;
+ unsigned int MH_TC_mcinfo_send : 1;
+ unsigned int MH_TC_mcinfo : 25;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG13 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int TC_ROQ_SEND : 1;
+ unsigned int TC_ROQ_MASK : 2;
+ unsigned int TC_ROQ_ADDR_31_5 : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int TC_ROQ_ADDR_31_5 : 27;
+ unsigned int TC_ROQ_MASK : 2;
+ unsigned int TC_ROQ_SEND : 1;
+ unsigned int ALWAYS_ZERO : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG14 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TC_ROQ_INFO : 25;
+ unsigned int TC_ROQ_SEND : 1;
+ unsigned int : 6;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 6;
+ unsigned int TC_ROQ_SEND : 1;
+ unsigned int TC_ROQ_INFO : 25;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG15 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ALWAYS_ZERO : 4;
+ unsigned int RB_MH_send : 1;
+ unsigned int RB_MH_addr_31_5 : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int RB_MH_addr_31_5 : 27;
+ unsigned int RB_MH_send : 1;
+ unsigned int ALWAYS_ZERO : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG16 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RB_MH_data_31_0 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int RB_MH_data_31_0 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG17 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RB_MH_data_63_32 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int RB_MH_data_63_32 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG18 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ALWAYS_ZERO : 4;
+ unsigned int PA_MH_send : 1;
+ unsigned int PA_MH_addr_31_5 : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int PA_MH_addr_31_5 : 27;
+ unsigned int PA_MH_send : 1;
+ unsigned int ALWAYS_ZERO : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG19 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PA_MH_data_31_0 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PA_MH_data_31_0 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG20 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PA_MH_data_63_32 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PA_MH_data_63_32 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG21 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int AVALID_q : 1;
+ unsigned int AREADY_q : 1;
+ unsigned int AID_q : 3;
+ unsigned int ALEN_q_2_0 : 3;
+ unsigned int ARVALID_q : 1;
+ unsigned int ARREADY_q : 1;
+ unsigned int ARID_q : 3;
+ unsigned int ARLEN_q_1_0 : 2;
+ unsigned int RVALID_q : 1;
+ unsigned int RREADY_q : 1;
+ unsigned int RLAST_q : 1;
+ unsigned int RID_q : 3;
+ unsigned int WVALID_q : 1;
+ unsigned int WREADY_q : 1;
+ unsigned int WLAST_q : 1;
+ unsigned int WID_q : 3;
+ unsigned int BVALID_q : 1;
+ unsigned int BREADY_q : 1;
+ unsigned int BID_q : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int BID_q : 3;
+ unsigned int BREADY_q : 1;
+ unsigned int BVALID_q : 1;
+ unsigned int WID_q : 3;
+ unsigned int WLAST_q : 1;
+ unsigned int WREADY_q : 1;
+ unsigned int WVALID_q : 1;
+ unsigned int RID_q : 3;
+ unsigned int RLAST_q : 1;
+ unsigned int RREADY_q : 1;
+ unsigned int RVALID_q : 1;
+ unsigned int ARLEN_q_1_0 : 2;
+ unsigned int ARID_q : 3;
+ unsigned int ARREADY_q : 1;
+ unsigned int ARVALID_q : 1;
+ unsigned int ALEN_q_2_0 : 3;
+ unsigned int AID_q : 3;
+ unsigned int AREADY_q : 1;
+ unsigned int AVALID_q : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG22 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int AVALID_q : 1;
+ unsigned int AREADY_q : 1;
+ unsigned int AID_q : 3;
+ unsigned int ALEN_q_1_0 : 2;
+ unsigned int ARVALID_q : 1;
+ unsigned int ARREADY_q : 1;
+ unsigned int ARID_q : 3;
+ unsigned int ARLEN_q_1_1 : 1;
+ unsigned int WVALID_q : 1;
+ unsigned int WREADY_q : 1;
+ unsigned int WLAST_q : 1;
+ unsigned int WID_q : 3;
+ unsigned int WSTRB_q : 8;
+ unsigned int BVALID_q : 1;
+ unsigned int BREADY_q : 1;
+ unsigned int BID_q : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int BID_q : 3;
+ unsigned int BREADY_q : 1;
+ unsigned int BVALID_q : 1;
+ unsigned int WSTRB_q : 8;
+ unsigned int WID_q : 3;
+ unsigned int WLAST_q : 1;
+ unsigned int WREADY_q : 1;
+ unsigned int WVALID_q : 1;
+ unsigned int ARLEN_q_1_1 : 1;
+ unsigned int ARID_q : 3;
+ unsigned int ARREADY_q : 1;
+ unsigned int ARVALID_q : 1;
+ unsigned int ALEN_q_1_0 : 2;
+ unsigned int AID_q : 3;
+ unsigned int AREADY_q : 1;
+ unsigned int AVALID_q : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG23 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ARC_CTRL_RE_q : 1;
+ unsigned int CTRL_ARC_ID : 3;
+ unsigned int CTRL_ARC_PAD : 28;
+#else /* !defined(qLittleEndian) */
+ unsigned int CTRL_ARC_PAD : 28;
+ unsigned int CTRL_ARC_ID : 3;
+ unsigned int ARC_CTRL_RE_q : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG24 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int REG_A : 14;
+ unsigned int REG_RE : 1;
+ unsigned int REG_WE : 1;
+ unsigned int BLOCK_RS : 1;
+ unsigned int : 13;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 13;
+ unsigned int BLOCK_RS : 1;
+ unsigned int REG_WE : 1;
+ unsigned int REG_RE : 1;
+ unsigned int REG_A : 14;
+ unsigned int ALWAYS_ZERO : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG25 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int REG_WD : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int REG_WD : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG26 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MH_RBBM_busy : 1;
+ unsigned int MH_CIB_mh_clk_en_int : 1;
+ unsigned int MH_CIB_mmu_clk_en_int : 1;
+ unsigned int MH_CIB_tcroq_clk_en_int : 1;
+ unsigned int GAT_CLK_ENA : 1;
+ unsigned int RBBM_MH_clk_en_override : 1;
+ unsigned int CNT_q : 6;
+ unsigned int TCD_EMPTY_q : 1;
+ unsigned int TC_ROQ_EMPTY : 1;
+ unsigned int MH_BUSY_d : 1;
+ unsigned int ANY_CLNT_BUSY : 1;
+ unsigned int MH_MMU_INVALIDATE_INVALIDATE_ALL : 1;
+ unsigned int MH_MMU_INVALIDATE_INVALIDATE_TC : 1;
+ unsigned int CP_SEND_q : 1;
+ unsigned int CP_RTR_q : 1;
+ unsigned int VGT_SEND_q : 1;
+ unsigned int VGT_RTR_q : 1;
+ unsigned int TC_ROQ_SEND_q : 1;
+ unsigned int TC_ROQ_RTR_DBG_q : 1;
+ unsigned int RB_SEND_q : 1;
+ unsigned int RB_RTR_q : 1;
+ unsigned int PA_SEND_q : 1;
+ unsigned int PA_RTR_q : 1;
+ unsigned int RDC_VALID : 1;
+ unsigned int RDC_RLAST : 1;
+ unsigned int TLBMISS_VALID : 1;
+ unsigned int BRC_VALID : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int BRC_VALID : 1;
+ unsigned int TLBMISS_VALID : 1;
+ unsigned int RDC_RLAST : 1;
+ unsigned int RDC_VALID : 1;
+ unsigned int PA_RTR_q : 1;
+ unsigned int PA_SEND_q : 1;
+ unsigned int RB_RTR_q : 1;
+ unsigned int RB_SEND_q : 1;
+ unsigned int TC_ROQ_RTR_DBG_q : 1;
+ unsigned int TC_ROQ_SEND_q : 1;
+ unsigned int VGT_RTR_q : 1;
+ unsigned int VGT_SEND_q : 1;
+ unsigned int CP_RTR_q : 1;
+ unsigned int CP_SEND_q : 1;
+ unsigned int MH_MMU_INVALIDATE_INVALIDATE_TC : 1;
+ unsigned int MH_MMU_INVALIDATE_INVALIDATE_ALL : 1;
+ unsigned int ANY_CLNT_BUSY : 1;
+ unsigned int MH_BUSY_d : 1;
+ unsigned int TC_ROQ_EMPTY : 1;
+ unsigned int TCD_EMPTY_q : 1;
+ unsigned int CNT_q : 6;
+ unsigned int RBBM_MH_clk_en_override : 1;
+ unsigned int GAT_CLK_ENA : 1;
+ unsigned int MH_CIB_tcroq_clk_en_int : 1;
+ unsigned int MH_CIB_mmu_clk_en_int : 1;
+ unsigned int MH_CIB_mh_clk_en_int : 1;
+ unsigned int MH_RBBM_busy : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG27 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int EFF2_FP_WINNER : 3;
+ unsigned int EFF2_LRU_WINNER_out : 3;
+ unsigned int EFF1_WINNER : 3;
+ unsigned int ARB_WINNER : 3;
+ unsigned int ARB_WINNER_q : 3;
+ unsigned int EFF1_WIN : 1;
+ unsigned int KILL_EFF1 : 1;
+ unsigned int ARB_HOLD : 1;
+ unsigned int ARB_RTR_q : 1;
+ unsigned int CP_SEND_QUAL : 1;
+ unsigned int VGT_SEND_QUAL : 1;
+ unsigned int TC_SEND_QUAL : 1;
+ unsigned int TC_SEND_EFF1_QUAL : 1;
+ unsigned int RB_SEND_QUAL : 1;
+ unsigned int PA_SEND_QUAL : 1;
+ unsigned int ARB_QUAL : 1;
+ unsigned int CP_EFF1_REQ : 1;
+ unsigned int VGT_EFF1_REQ : 1;
+ unsigned int TC_EFF1_REQ : 1;
+ unsigned int RB_EFF1_REQ : 1;
+ unsigned int TCD_NEARFULL_q : 1;
+ unsigned int TCHOLD_IP_q : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int TCHOLD_IP_q : 1;
+ unsigned int TCD_NEARFULL_q : 1;
+ unsigned int RB_EFF1_REQ : 1;
+ unsigned int TC_EFF1_REQ : 1;
+ unsigned int VGT_EFF1_REQ : 1;
+ unsigned int CP_EFF1_REQ : 1;
+ unsigned int ARB_QUAL : 1;
+ unsigned int PA_SEND_QUAL : 1;
+ unsigned int RB_SEND_QUAL : 1;
+ unsigned int TC_SEND_EFF1_QUAL : 1;
+ unsigned int TC_SEND_QUAL : 1;
+ unsigned int VGT_SEND_QUAL : 1;
+ unsigned int CP_SEND_QUAL : 1;
+ unsigned int ARB_RTR_q : 1;
+ unsigned int ARB_HOLD : 1;
+ unsigned int KILL_EFF1 : 1;
+ unsigned int EFF1_WIN : 1;
+ unsigned int ARB_WINNER_q : 3;
+ unsigned int ARB_WINNER : 3;
+ unsigned int EFF1_WINNER : 3;
+ unsigned int EFF2_LRU_WINNER_out : 3;
+ unsigned int EFF2_FP_WINNER : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG28 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int EFF1_WINNER : 3;
+ unsigned int ARB_WINNER : 3;
+ unsigned int CP_SEND_QUAL : 1;
+ unsigned int VGT_SEND_QUAL : 1;
+ unsigned int TC_SEND_QUAL : 1;
+ unsigned int TC_SEND_EFF1_QUAL : 1;
+ unsigned int RB_SEND_QUAL : 1;
+ unsigned int ARB_QUAL : 1;
+ unsigned int CP_EFF1_REQ : 1;
+ unsigned int VGT_EFF1_REQ : 1;
+ unsigned int TC_EFF1_REQ : 1;
+ unsigned int RB_EFF1_REQ : 1;
+ unsigned int EFF1_WIN : 1;
+ unsigned int KILL_EFF1 : 1;
+ unsigned int TCD_NEARFULL_q : 1;
+ unsigned int TC_ARB_HOLD : 1;
+ unsigned int ARB_HOLD : 1;
+ unsigned int ARB_RTR_q : 1;
+ unsigned int SAME_PAGE_LIMIT_COUNT_q : 10;
+#else /* !defined(qLittleEndian) */
+ unsigned int SAME_PAGE_LIMIT_COUNT_q : 10;
+ unsigned int ARB_RTR_q : 1;
+ unsigned int ARB_HOLD : 1;
+ unsigned int TC_ARB_HOLD : 1;
+ unsigned int TCD_NEARFULL_q : 1;
+ unsigned int KILL_EFF1 : 1;
+ unsigned int EFF1_WIN : 1;
+ unsigned int RB_EFF1_REQ : 1;
+ unsigned int TC_EFF1_REQ : 1;
+ unsigned int VGT_EFF1_REQ : 1;
+ unsigned int CP_EFF1_REQ : 1;
+ unsigned int ARB_QUAL : 1;
+ unsigned int RB_SEND_QUAL : 1;
+ unsigned int TC_SEND_EFF1_QUAL : 1;
+ unsigned int TC_SEND_QUAL : 1;
+ unsigned int VGT_SEND_QUAL : 1;
+ unsigned int CP_SEND_QUAL : 1;
+ unsigned int ARB_WINNER : 3;
+ unsigned int EFF1_WINNER : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG29 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int EFF2_LRU_WINNER_out : 3;
+ unsigned int LEAST_RECENT_INDEX_d : 3;
+ unsigned int LEAST_RECENT_d : 3;
+ unsigned int UPDATE_RECENT_STACK_d : 1;
+ unsigned int ARB_HOLD : 1;
+ unsigned int ARB_RTR_q : 1;
+ unsigned int CLNT_REQ : 5;
+ unsigned int RECENT_d_0 : 3;
+ unsigned int RECENT_d_1 : 3;
+ unsigned int RECENT_d_2 : 3;
+ unsigned int RECENT_d_3 : 3;
+ unsigned int RECENT_d_4 : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int RECENT_d_4 : 3;
+ unsigned int RECENT_d_3 : 3;
+ unsigned int RECENT_d_2 : 3;
+ unsigned int RECENT_d_1 : 3;
+ unsigned int RECENT_d_0 : 3;
+ unsigned int CLNT_REQ : 5;
+ unsigned int ARB_RTR_q : 1;
+ unsigned int ARB_HOLD : 1;
+ unsigned int UPDATE_RECENT_STACK_d : 1;
+ unsigned int LEAST_RECENT_d : 3;
+ unsigned int LEAST_RECENT_INDEX_d : 3;
+ unsigned int EFF2_LRU_WINNER_out : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG30 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TC_ARB_HOLD : 1;
+ unsigned int TC_NOROQ_SAME_ROW_BANK : 1;
+ unsigned int TC_ROQ_SAME_ROW_BANK : 1;
+ unsigned int TCD_NEARFULL_q : 1;
+ unsigned int TCHOLD_IP_q : 1;
+ unsigned int TCHOLD_CNT_q : 3;
+ unsigned int MH_ARBITER_CONFIG_TC_REORDER_ENABLE : 1;
+ unsigned int TC_ROQ_RTR_DBG_q : 1;
+ unsigned int TC_ROQ_SEND_q : 1;
+ unsigned int TC_MH_written : 1;
+ unsigned int TCD_FULLNESS_CNT_q : 7;
+ unsigned int WBURST_ACTIVE : 1;
+ unsigned int WLAST_q : 1;
+ unsigned int WBURST_IP_q : 1;
+ unsigned int WBURST_CNT_q : 3;
+ unsigned int CP_SEND_QUAL : 1;
+ unsigned int CP_MH_write : 1;
+ unsigned int RB_SEND_QUAL : 1;
+ unsigned int PA_SEND_QUAL : 1;
+ unsigned int ARB_WINNER : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int ARB_WINNER : 3;
+ unsigned int PA_SEND_QUAL : 1;
+ unsigned int RB_SEND_QUAL : 1;
+ unsigned int CP_MH_write : 1;
+ unsigned int CP_SEND_QUAL : 1;
+ unsigned int WBURST_CNT_q : 3;
+ unsigned int WBURST_IP_q : 1;
+ unsigned int WLAST_q : 1;
+ unsigned int WBURST_ACTIVE : 1;
+ unsigned int TCD_FULLNESS_CNT_q : 7;
+ unsigned int TC_MH_written : 1;
+ unsigned int TC_ROQ_SEND_q : 1;
+ unsigned int TC_ROQ_RTR_DBG_q : 1;
+ unsigned int MH_ARBITER_CONFIG_TC_REORDER_ENABLE : 1;
+ unsigned int TCHOLD_CNT_q : 3;
+ unsigned int TCHOLD_IP_q : 1;
+ unsigned int TCD_NEARFULL_q : 1;
+ unsigned int TC_ROQ_SAME_ROW_BANK : 1;
+ unsigned int TC_NOROQ_SAME_ROW_BANK : 1;
+ unsigned int TC_ARB_HOLD : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG31 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RF_ARBITER_CONFIG_q : 26;
+ unsigned int MH_CLNT_AXI_ID_REUSE_MMUr_ID : 3;
+ unsigned int : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 3;
+ unsigned int MH_CLNT_AXI_ID_REUSE_MMUr_ID : 3;
+ unsigned int RF_ARBITER_CONFIG_q : 26;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG32 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SAME_ROW_BANK_q : 8;
+ unsigned int ROQ_MARK_q : 8;
+ unsigned int ROQ_VALID_q : 8;
+ unsigned int TC_MH_send : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int KILL_EFF1 : 1;
+ unsigned int TC_ROQ_SAME_ROW_BANK_SEL : 1;
+ unsigned int ANY_SAME_ROW_BANK : 1;
+ unsigned int TC_EFF1_QUAL : 1;
+ unsigned int TC_ROQ_EMPTY : 1;
+ unsigned int TC_ROQ_FULL : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int TC_ROQ_FULL : 1;
+ unsigned int TC_ROQ_EMPTY : 1;
+ unsigned int TC_EFF1_QUAL : 1;
+ unsigned int ANY_SAME_ROW_BANK : 1;
+ unsigned int TC_ROQ_SAME_ROW_BANK_SEL : 1;
+ unsigned int KILL_EFF1 : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int TC_MH_send : 1;
+ unsigned int ROQ_VALID_q : 8;
+ unsigned int ROQ_MARK_q : 8;
+ unsigned int SAME_ROW_BANK_q : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG33 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SAME_ROW_BANK_q : 8;
+ unsigned int ROQ_MARK_d : 8;
+ unsigned int ROQ_VALID_d : 8;
+ unsigned int TC_MH_send : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int KILL_EFF1 : 1;
+ unsigned int TC_ROQ_SAME_ROW_BANK_SEL : 1;
+ unsigned int ANY_SAME_ROW_BANK : 1;
+ unsigned int TC_EFF1_QUAL : 1;
+ unsigned int TC_ROQ_EMPTY : 1;
+ unsigned int TC_ROQ_FULL : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int TC_ROQ_FULL : 1;
+ unsigned int TC_ROQ_EMPTY : 1;
+ unsigned int TC_EFF1_QUAL : 1;
+ unsigned int ANY_SAME_ROW_BANK : 1;
+ unsigned int TC_ROQ_SAME_ROW_BANK_SEL : 1;
+ unsigned int KILL_EFF1 : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int TC_MH_send : 1;
+ unsigned int ROQ_VALID_d : 8;
+ unsigned int ROQ_MARK_d : 8;
+ unsigned int SAME_ROW_BANK_q : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG34 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SAME_ROW_BANK_WIN : 8;
+ unsigned int SAME_ROW_BANK_REQ : 8;
+ unsigned int NON_SAME_ROW_BANK_WIN : 8;
+ unsigned int NON_SAME_ROW_BANK_REQ : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int NON_SAME_ROW_BANK_REQ : 8;
+ unsigned int NON_SAME_ROW_BANK_WIN : 8;
+ unsigned int SAME_ROW_BANK_REQ : 8;
+ unsigned int SAME_ROW_BANK_WIN : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG35 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TC_MH_send : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int ROQ_MARK_q_0 : 1;
+ unsigned int ROQ_VALID_q_0 : 1;
+ unsigned int SAME_ROW_BANK_q_0 : 1;
+ unsigned int ROQ_ADDR_0 : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int ROQ_ADDR_0 : 27;
+ unsigned int SAME_ROW_BANK_q_0 : 1;
+ unsigned int ROQ_VALID_q_0 : 1;
+ unsigned int ROQ_MARK_q_0 : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int TC_MH_send : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG36 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TC_MH_send : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int ROQ_MARK_q_1 : 1;
+ unsigned int ROQ_VALID_q_1 : 1;
+ unsigned int SAME_ROW_BANK_q_1 : 1;
+ unsigned int ROQ_ADDR_1 : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int ROQ_ADDR_1 : 27;
+ unsigned int SAME_ROW_BANK_q_1 : 1;
+ unsigned int ROQ_VALID_q_1 : 1;
+ unsigned int ROQ_MARK_q_1 : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int TC_MH_send : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG37 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TC_MH_send : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int ROQ_MARK_q_2 : 1;
+ unsigned int ROQ_VALID_q_2 : 1;
+ unsigned int SAME_ROW_BANK_q_2 : 1;
+ unsigned int ROQ_ADDR_2 : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int ROQ_ADDR_2 : 27;
+ unsigned int SAME_ROW_BANK_q_2 : 1;
+ unsigned int ROQ_VALID_q_2 : 1;
+ unsigned int ROQ_MARK_q_2 : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int TC_MH_send : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG38 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TC_MH_send : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int ROQ_MARK_q_3 : 1;
+ unsigned int ROQ_VALID_q_3 : 1;
+ unsigned int SAME_ROW_BANK_q_3 : 1;
+ unsigned int ROQ_ADDR_3 : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int ROQ_ADDR_3 : 27;
+ unsigned int SAME_ROW_BANK_q_3 : 1;
+ unsigned int ROQ_VALID_q_3 : 1;
+ unsigned int ROQ_MARK_q_3 : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int TC_MH_send : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG39 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TC_MH_send : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int ROQ_MARK_q_4 : 1;
+ unsigned int ROQ_VALID_q_4 : 1;
+ unsigned int SAME_ROW_BANK_q_4 : 1;
+ unsigned int ROQ_ADDR_4 : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int ROQ_ADDR_4 : 27;
+ unsigned int SAME_ROW_BANK_q_4 : 1;
+ unsigned int ROQ_VALID_q_4 : 1;
+ unsigned int ROQ_MARK_q_4 : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int TC_MH_send : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG40 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TC_MH_send : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int ROQ_MARK_q_5 : 1;
+ unsigned int ROQ_VALID_q_5 : 1;
+ unsigned int SAME_ROW_BANK_q_5 : 1;
+ unsigned int ROQ_ADDR_5 : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int ROQ_ADDR_5 : 27;
+ unsigned int SAME_ROW_BANK_q_5 : 1;
+ unsigned int ROQ_VALID_q_5 : 1;
+ unsigned int ROQ_MARK_q_5 : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int TC_MH_send : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG41 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TC_MH_send : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int ROQ_MARK_q_6 : 1;
+ unsigned int ROQ_VALID_q_6 : 1;
+ unsigned int SAME_ROW_BANK_q_6 : 1;
+ unsigned int ROQ_ADDR_6 : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int ROQ_ADDR_6 : 27;
+ unsigned int SAME_ROW_BANK_q_6 : 1;
+ unsigned int ROQ_VALID_q_6 : 1;
+ unsigned int ROQ_MARK_q_6 : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int TC_MH_send : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG42 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TC_MH_send : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int ROQ_MARK_q_7 : 1;
+ unsigned int ROQ_VALID_q_7 : 1;
+ unsigned int SAME_ROW_BANK_q_7 : 1;
+ unsigned int ROQ_ADDR_7 : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int ROQ_ADDR_7 : 27;
+ unsigned int SAME_ROW_BANK_q_7 : 1;
+ unsigned int ROQ_VALID_q_7 : 1;
+ unsigned int ROQ_MARK_q_7 : 1;
+ unsigned int TC_ROQ_RTR_q : 1;
+ unsigned int TC_MH_send : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG43 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ARB_REG_WE_q : 1;
+ unsigned int ARB_WE : 1;
+ unsigned int ARB_REG_VALID_q : 1;
+ unsigned int ARB_RTR_q : 1;
+ unsigned int ARB_REG_RTR : 1;
+ unsigned int WDAT_BURST_RTR : 1;
+ unsigned int MMU_RTR : 1;
+ unsigned int ARB_ID_q : 3;
+ unsigned int ARB_WRITE_q : 1;
+ unsigned int ARB_BLEN_q : 1;
+ unsigned int ARQ_CTRL_EMPTY : 1;
+ unsigned int ARQ_FIFO_CNT_q : 3;
+ unsigned int MMU_WE : 1;
+ unsigned int ARQ_RTR : 1;
+ unsigned int MMU_ID : 3;
+ unsigned int MMU_WRITE : 1;
+ unsigned int MMU_BLEN : 1;
+ unsigned int WBURST_IP_q : 1;
+ unsigned int WDAT_REG_WE_q : 1;
+ unsigned int WDB_WE : 1;
+ unsigned int WDB_RTR_SKID_4 : 1;
+ unsigned int WDB_RTR_SKID_3 : 1;
+ unsigned int : 4;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 4;
+ unsigned int WDB_RTR_SKID_3 : 1;
+ unsigned int WDB_RTR_SKID_4 : 1;
+ unsigned int WDB_WE : 1;
+ unsigned int WDAT_REG_WE_q : 1;
+ unsigned int WBURST_IP_q : 1;
+ unsigned int MMU_BLEN : 1;
+ unsigned int MMU_WRITE : 1;
+ unsigned int MMU_ID : 3;
+ unsigned int ARQ_RTR : 1;
+ unsigned int MMU_WE : 1;
+ unsigned int ARQ_FIFO_CNT_q : 3;
+ unsigned int ARQ_CTRL_EMPTY : 1;
+ unsigned int ARB_BLEN_q : 1;
+ unsigned int ARB_WRITE_q : 1;
+ unsigned int ARB_ID_q : 3;
+ unsigned int MMU_RTR : 1;
+ unsigned int WDAT_BURST_RTR : 1;
+ unsigned int ARB_REG_RTR : 1;
+ unsigned int ARB_RTR_q : 1;
+ unsigned int ARB_REG_VALID_q : 1;
+ unsigned int ARB_WE : 1;
+ unsigned int ARB_REG_WE_q : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG44 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ARB_WE : 1;
+ unsigned int ARB_ID_q : 3;
+ unsigned int ARB_VAD_q : 28;
+#else /* !defined(qLittleEndian) */
+ unsigned int ARB_VAD_q : 28;
+ unsigned int ARB_ID_q : 3;
+ unsigned int ARB_WE : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG45 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MMU_WE : 1;
+ unsigned int MMU_ID : 3;
+ unsigned int MMU_PAD : 28;
+#else /* !defined(qLittleEndian) */
+ unsigned int MMU_PAD : 28;
+ unsigned int MMU_ID : 3;
+ unsigned int MMU_WE : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG46 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int WDAT_REG_WE_q : 1;
+ unsigned int WDB_WE : 1;
+ unsigned int WDAT_REG_VALID_q : 1;
+ unsigned int WDB_RTR_SKID_4 : 1;
+ unsigned int ARB_WSTRB_q : 8;
+ unsigned int ARB_WLAST : 1;
+ unsigned int WDB_CTRL_EMPTY : 1;
+ unsigned int WDB_FIFO_CNT_q : 5;
+ unsigned int WDC_WDB_RE_q : 1;
+ unsigned int WDB_WDC_WID : 3;
+ unsigned int WDB_WDC_WLAST : 1;
+ unsigned int WDB_WDC_WSTRB : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int WDB_WDC_WSTRB : 8;
+ unsigned int WDB_WDC_WLAST : 1;
+ unsigned int WDB_WDC_WID : 3;
+ unsigned int WDC_WDB_RE_q : 1;
+ unsigned int WDB_FIFO_CNT_q : 5;
+ unsigned int WDB_CTRL_EMPTY : 1;
+ unsigned int ARB_WLAST : 1;
+ unsigned int ARB_WSTRB_q : 8;
+ unsigned int WDB_RTR_SKID_4 : 1;
+ unsigned int WDAT_REG_VALID_q : 1;
+ unsigned int WDB_WE : 1;
+ unsigned int WDAT_REG_WE_q : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG47 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int WDB_WDC_WDATA_31_0 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int WDB_WDC_WDATA_31_0 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG48 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int WDB_WDC_WDATA_63_32 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int WDB_WDC_WDATA_63_32 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG49 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CTRL_ARC_EMPTY : 1;
+ unsigned int CTRL_RARC_EMPTY : 1;
+ unsigned int ARQ_CTRL_EMPTY : 1;
+ unsigned int ARQ_CTRL_WRITE : 1;
+ unsigned int TLBMISS_CTRL_RTS : 1;
+ unsigned int CTRL_TLBMISS_RE_q : 1;
+ unsigned int INFLT_LIMIT_q : 1;
+ unsigned int INFLT_LIMIT_CNT_q : 6;
+ unsigned int ARC_CTRL_RE_q : 1;
+ unsigned int RARC_CTRL_RE_q : 1;
+ unsigned int RVALID_q : 1;
+ unsigned int RREADY_q : 1;
+ unsigned int RLAST_q : 1;
+ unsigned int BVALID_q : 1;
+ unsigned int BREADY_q : 1;
+ unsigned int : 12;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 12;
+ unsigned int BREADY_q : 1;
+ unsigned int BVALID_q : 1;
+ unsigned int RLAST_q : 1;
+ unsigned int RREADY_q : 1;
+ unsigned int RVALID_q : 1;
+ unsigned int RARC_CTRL_RE_q : 1;
+ unsigned int ARC_CTRL_RE_q : 1;
+ unsigned int INFLT_LIMIT_CNT_q : 6;
+ unsigned int INFLT_LIMIT_q : 1;
+ unsigned int CTRL_TLBMISS_RE_q : 1;
+ unsigned int TLBMISS_CTRL_RTS : 1;
+ unsigned int ARQ_CTRL_WRITE : 1;
+ unsigned int ARQ_CTRL_EMPTY : 1;
+ unsigned int CTRL_RARC_EMPTY : 1;
+ unsigned int CTRL_ARC_EMPTY : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG50 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MH_CP_grb_send : 1;
+ unsigned int MH_VGT_grb_send : 1;
+ unsigned int MH_TC_mcsend : 1;
+ unsigned int MH_TLBMISS_SEND : 1;
+ unsigned int TLBMISS_VALID : 1;
+ unsigned int RDC_VALID : 1;
+ unsigned int RDC_RID : 3;
+ unsigned int RDC_RLAST : 1;
+ unsigned int RDC_RRESP : 2;
+ unsigned int TLBMISS_CTRL_RTS : 1;
+ unsigned int CTRL_TLBMISS_RE_q : 1;
+ unsigned int MMU_ID_REQUEST_q : 1;
+ unsigned int OUTSTANDING_MMUID_CNT_q : 6;
+ unsigned int MMU_ID_RESPONSE : 1;
+ unsigned int TLBMISS_RETURN_CNT_q : 6;
+ unsigned int CNT_HOLD_q1 : 1;
+ unsigned int MH_CLNT_AXI_ID_REUSE_MMUr_ID : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int MH_CLNT_AXI_ID_REUSE_MMUr_ID : 3;
+ unsigned int CNT_HOLD_q1 : 1;
+ unsigned int TLBMISS_RETURN_CNT_q : 6;
+ unsigned int MMU_ID_RESPONSE : 1;
+ unsigned int OUTSTANDING_MMUID_CNT_q : 6;
+ unsigned int MMU_ID_REQUEST_q : 1;
+ unsigned int CTRL_TLBMISS_RE_q : 1;
+ unsigned int TLBMISS_CTRL_RTS : 1;
+ unsigned int RDC_RRESP : 2;
+ unsigned int RDC_RLAST : 1;
+ unsigned int RDC_RID : 3;
+ unsigned int RDC_VALID : 1;
+ unsigned int TLBMISS_VALID : 1;
+ unsigned int MH_TLBMISS_SEND : 1;
+ unsigned int MH_TC_mcsend : 1;
+ unsigned int MH_VGT_grb_send : 1;
+ unsigned int MH_CP_grb_send : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG51 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RF_MMU_PAGE_FAULT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int RF_MMU_PAGE_FAULT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG52 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RF_MMU_CONFIG_q_1_to_0 : 2;
+ unsigned int ARB_WE : 1;
+ unsigned int MMU_RTR : 1;
+ unsigned int RF_MMU_CONFIG_q_25_to_4 : 22;
+ unsigned int ARB_ID_q : 3;
+ unsigned int ARB_WRITE_q : 1;
+ unsigned int client_behavior_q : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int client_behavior_q : 2;
+ unsigned int ARB_WRITE_q : 1;
+ unsigned int ARB_ID_q : 3;
+ unsigned int RF_MMU_CONFIG_q_25_to_4 : 22;
+ unsigned int MMU_RTR : 1;
+ unsigned int ARB_WE : 1;
+ unsigned int RF_MMU_CONFIG_q_1_to_0 : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG53 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int stage1_valid : 1;
+ unsigned int IGNORE_TAG_MISS_q : 1;
+ unsigned int pa_in_mpu_range : 1;
+ unsigned int tag_match_q : 1;
+ unsigned int tag_miss_q : 1;
+ unsigned int va_in_range_q : 1;
+ unsigned int MMU_MISS : 1;
+ unsigned int MMU_READ_MISS : 1;
+ unsigned int MMU_WRITE_MISS : 1;
+ unsigned int MMU_HIT : 1;
+ unsigned int MMU_READ_HIT : 1;
+ unsigned int MMU_WRITE_HIT : 1;
+ unsigned int MMU_SPLIT_MODE_TC_MISS : 1;
+ unsigned int MMU_SPLIT_MODE_TC_HIT : 1;
+ unsigned int MMU_SPLIT_MODE_nonTC_MISS : 1;
+ unsigned int MMU_SPLIT_MODE_nonTC_HIT : 1;
+ unsigned int REQ_VA_OFFSET_q : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int REQ_VA_OFFSET_q : 16;
+ unsigned int MMU_SPLIT_MODE_nonTC_HIT : 1;
+ unsigned int MMU_SPLIT_MODE_nonTC_MISS : 1;
+ unsigned int MMU_SPLIT_MODE_TC_HIT : 1;
+ unsigned int MMU_SPLIT_MODE_TC_MISS : 1;
+ unsigned int MMU_WRITE_HIT : 1;
+ unsigned int MMU_READ_HIT : 1;
+ unsigned int MMU_HIT : 1;
+ unsigned int MMU_WRITE_MISS : 1;
+ unsigned int MMU_READ_MISS : 1;
+ unsigned int MMU_MISS : 1;
+ unsigned int va_in_range_q : 1;
+ unsigned int tag_miss_q : 1;
+ unsigned int tag_match_q : 1;
+ unsigned int pa_in_mpu_range : 1;
+ unsigned int IGNORE_TAG_MISS_q : 1;
+ unsigned int stage1_valid : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG54 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ARQ_RTR : 1;
+ unsigned int MMU_WE : 1;
+ unsigned int CTRL_TLBMISS_RE_q : 1;
+ unsigned int TLBMISS_CTRL_RTS : 1;
+ unsigned int MH_TLBMISS_SEND : 1;
+ unsigned int MMU_STALL_AWAITING_TLB_MISS_FETCH : 1;
+ unsigned int pa_in_mpu_range : 1;
+ unsigned int stage1_valid : 1;
+ unsigned int stage2_valid : 1;
+ unsigned int client_behavior_q : 2;
+ unsigned int IGNORE_TAG_MISS_q : 1;
+ unsigned int tag_match_q : 1;
+ unsigned int tag_miss_q : 1;
+ unsigned int va_in_range_q : 1;
+ unsigned int PTE_FETCH_COMPLETE_q : 1;
+ unsigned int TAG_valid_q : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int TAG_valid_q : 16;
+ unsigned int PTE_FETCH_COMPLETE_q : 1;
+ unsigned int va_in_range_q : 1;
+ unsigned int tag_miss_q : 1;
+ unsigned int tag_match_q : 1;
+ unsigned int IGNORE_TAG_MISS_q : 1;
+ unsigned int client_behavior_q : 2;
+ unsigned int stage2_valid : 1;
+ unsigned int stage1_valid : 1;
+ unsigned int pa_in_mpu_range : 1;
+ unsigned int MMU_STALL_AWAITING_TLB_MISS_FETCH : 1;
+ unsigned int MH_TLBMISS_SEND : 1;
+ unsigned int TLBMISS_CTRL_RTS : 1;
+ unsigned int CTRL_TLBMISS_RE_q : 1;
+ unsigned int MMU_WE : 1;
+ unsigned int ARQ_RTR : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG55 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TAG0_VA : 13;
+ unsigned int TAG_valid_q_0 : 1;
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int TAG1_VA : 13;
+ unsigned int TAG_valid_q_1 : 1;
+ unsigned int : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 2;
+ unsigned int TAG_valid_q_1 : 1;
+ unsigned int TAG1_VA : 13;
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int TAG_valid_q_0 : 1;
+ unsigned int TAG0_VA : 13;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG56 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TAG2_VA : 13;
+ unsigned int TAG_valid_q_2 : 1;
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int TAG3_VA : 13;
+ unsigned int TAG_valid_q_3 : 1;
+ unsigned int : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 2;
+ unsigned int TAG_valid_q_3 : 1;
+ unsigned int TAG3_VA : 13;
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int TAG_valid_q_2 : 1;
+ unsigned int TAG2_VA : 13;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG57 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TAG4_VA : 13;
+ unsigned int TAG_valid_q_4 : 1;
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int TAG5_VA : 13;
+ unsigned int TAG_valid_q_5 : 1;
+ unsigned int : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 2;
+ unsigned int TAG_valid_q_5 : 1;
+ unsigned int TAG5_VA : 13;
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int TAG_valid_q_4 : 1;
+ unsigned int TAG4_VA : 13;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG58 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TAG6_VA : 13;
+ unsigned int TAG_valid_q_6 : 1;
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int TAG7_VA : 13;
+ unsigned int TAG_valid_q_7 : 1;
+ unsigned int : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 2;
+ unsigned int TAG_valid_q_7 : 1;
+ unsigned int TAG7_VA : 13;
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int TAG_valid_q_6 : 1;
+ unsigned int TAG6_VA : 13;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG59 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TAG8_VA : 13;
+ unsigned int TAG_valid_q_8 : 1;
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int TAG9_VA : 13;
+ unsigned int TAG_valid_q_9 : 1;
+ unsigned int : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 2;
+ unsigned int TAG_valid_q_9 : 1;
+ unsigned int TAG9_VA : 13;
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int TAG_valid_q_8 : 1;
+ unsigned int TAG8_VA : 13;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG60 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TAG10_VA : 13;
+ unsigned int TAG_valid_q_10 : 1;
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int TAG11_VA : 13;
+ unsigned int TAG_valid_q_11 : 1;
+ unsigned int : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 2;
+ unsigned int TAG_valid_q_11 : 1;
+ unsigned int TAG11_VA : 13;
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int TAG_valid_q_10 : 1;
+ unsigned int TAG10_VA : 13;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG61 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TAG12_VA : 13;
+ unsigned int TAG_valid_q_12 : 1;
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int TAG13_VA : 13;
+ unsigned int TAG_valid_q_13 : 1;
+ unsigned int : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 2;
+ unsigned int TAG_valid_q_13 : 1;
+ unsigned int TAG13_VA : 13;
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int TAG_valid_q_12 : 1;
+ unsigned int TAG12_VA : 13;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG62 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TAG14_VA : 13;
+ unsigned int TAG_valid_q_14 : 1;
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int TAG15_VA : 13;
+ unsigned int TAG_valid_q_15 : 1;
+ unsigned int : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 2;
+ unsigned int TAG_valid_q_15 : 1;
+ unsigned int TAG15_VA : 13;
+ unsigned int ALWAYS_ZERO : 2;
+ unsigned int TAG_valid_q_14 : 1;
+ unsigned int TAG14_VA : 13;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_DEBUG_REG63 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MH_DBG_DEFAULT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int MH_DBG_DEFAULT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_MMU_CONFIG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MMU_ENABLE : 1;
+ unsigned int SPLIT_MODE_ENABLE : 1;
+ unsigned int RESERVED1 : 2;
+ unsigned int RB_W_CLNT_BEHAVIOR : 2;
+ unsigned int CP_W_CLNT_BEHAVIOR : 2;
+ unsigned int CP_R0_CLNT_BEHAVIOR : 2;
+ unsigned int CP_R1_CLNT_BEHAVIOR : 2;
+ unsigned int CP_R2_CLNT_BEHAVIOR : 2;
+ unsigned int CP_R3_CLNT_BEHAVIOR : 2;
+ unsigned int CP_R4_CLNT_BEHAVIOR : 2;
+ unsigned int VGT_R0_CLNT_BEHAVIOR : 2;
+ unsigned int VGT_R1_CLNT_BEHAVIOR : 2;
+ unsigned int TC_R_CLNT_BEHAVIOR : 2;
+ unsigned int PA_W_CLNT_BEHAVIOR : 2;
+ unsigned int : 6;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 6;
+ unsigned int PA_W_CLNT_BEHAVIOR : 2;
+ unsigned int TC_R_CLNT_BEHAVIOR : 2;
+ unsigned int VGT_R1_CLNT_BEHAVIOR : 2;
+ unsigned int VGT_R0_CLNT_BEHAVIOR : 2;
+ unsigned int CP_R4_CLNT_BEHAVIOR : 2;
+ unsigned int CP_R3_CLNT_BEHAVIOR : 2;
+ unsigned int CP_R2_CLNT_BEHAVIOR : 2;
+ unsigned int CP_R1_CLNT_BEHAVIOR : 2;
+ unsigned int CP_R0_CLNT_BEHAVIOR : 2;
+ unsigned int CP_W_CLNT_BEHAVIOR : 2;
+ unsigned int RB_W_CLNT_BEHAVIOR : 2;
+ unsigned int RESERVED1 : 2;
+ unsigned int SPLIT_MODE_ENABLE : 1;
+ unsigned int MMU_ENABLE : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_MMU_VA_RANGE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int NUM_64KB_REGIONS : 12;
+ unsigned int VA_BASE : 20;
+#else /* !defined(qLittleEndian) */
+ unsigned int VA_BASE : 20;
+ unsigned int NUM_64KB_REGIONS : 12;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_MMU_PT_BASE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 12;
+ unsigned int PT_BASE : 20;
+#else /* !defined(qLittleEndian) */
+ unsigned int PT_BASE : 20;
+ unsigned int : 12;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_MMU_PAGE_FAULT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PAGE_FAULT : 1;
+ unsigned int OP_TYPE : 1;
+ unsigned int CLNT_BEHAVIOR : 2;
+ unsigned int AXI_ID : 3;
+ unsigned int RESERVED1 : 1;
+ unsigned int MPU_ADDRESS_OUT_OF_RANGE : 1;
+ unsigned int ADDRESS_OUT_OF_RANGE : 1;
+ unsigned int READ_PROTECTION_ERROR : 1;
+ unsigned int WRITE_PROTECTION_ERROR : 1;
+ unsigned int REQ_VA : 20;
+#else /* !defined(qLittleEndian) */
+ unsigned int REQ_VA : 20;
+ unsigned int WRITE_PROTECTION_ERROR : 1;
+ unsigned int READ_PROTECTION_ERROR : 1;
+ unsigned int ADDRESS_OUT_OF_RANGE : 1;
+ unsigned int MPU_ADDRESS_OUT_OF_RANGE : 1;
+ unsigned int RESERVED1 : 1;
+ unsigned int AXI_ID : 3;
+ unsigned int CLNT_BEHAVIOR : 2;
+ unsigned int OP_TYPE : 1;
+ unsigned int PAGE_FAULT : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_MMU_TRAN_ERROR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 5;
+ unsigned int TRAN_ERROR : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int TRAN_ERROR : 27;
+ unsigned int : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_MMU_INVALIDATE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int INVALIDATE_ALL : 1;
+ unsigned int INVALIDATE_TC : 1;
+ unsigned int : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 30;
+ unsigned int INVALIDATE_TC : 1;
+ unsigned int INVALIDATE_ALL : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_MMU_MPU_BASE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 12;
+ unsigned int MPU_BASE : 20;
+#else /* !defined(qLittleEndian) */
+ unsigned int MPU_BASE : 20;
+ unsigned int : 12;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MH_MMU_MPU_END {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 12;
+ unsigned int MPU_END : 20;
+#else /* !defined(qLittleEndian) */
+ unsigned int MPU_END : 20;
+ unsigned int : 12;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union WAIT_UNTIL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 1;
+ unsigned int WAIT_RE_VSYNC : 1;
+ unsigned int WAIT_FE_VSYNC : 1;
+ unsigned int WAIT_VSYNC : 1;
+ unsigned int WAIT_DSPLY_ID0 : 1;
+ unsigned int WAIT_DSPLY_ID1 : 1;
+ unsigned int WAIT_DSPLY_ID2 : 1;
+ unsigned int : 3;
+ unsigned int WAIT_CMDFIFO : 1;
+ unsigned int : 3;
+ unsigned int WAIT_2D_IDLE : 1;
+ unsigned int WAIT_3D_IDLE : 1;
+ unsigned int WAIT_2D_IDLECLEAN : 1;
+ unsigned int WAIT_3D_IDLECLEAN : 1;
+ unsigned int : 2;
+ unsigned int CMDFIFO_ENTRIES : 4;
+ unsigned int : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 8;
+ unsigned int CMDFIFO_ENTRIES : 4;
+ unsigned int : 2;
+ unsigned int WAIT_3D_IDLECLEAN : 1;
+ unsigned int WAIT_2D_IDLECLEAN : 1;
+ unsigned int WAIT_3D_IDLE : 1;
+ unsigned int WAIT_2D_IDLE : 1;
+ unsigned int : 3;
+ unsigned int WAIT_CMDFIFO : 1;
+ unsigned int : 3;
+ unsigned int WAIT_DSPLY_ID2 : 1;
+ unsigned int WAIT_DSPLY_ID1 : 1;
+ unsigned int WAIT_DSPLY_ID0 : 1;
+ unsigned int WAIT_VSYNC : 1;
+ unsigned int WAIT_FE_VSYNC : 1;
+ unsigned int WAIT_RE_VSYNC : 1;
+ unsigned int : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_ISYNC_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 4;
+ unsigned int ISYNC_WAIT_IDLEGUI : 1;
+ unsigned int ISYNC_CPSCRATCH_IDLEGUI : 1;
+ unsigned int : 26;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 26;
+ unsigned int ISYNC_CPSCRATCH_IDLEGUI : 1;
+ unsigned int ISYNC_WAIT_IDLEGUI : 1;
+ unsigned int : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_STATUS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CMDFIFO_AVAIL : 5;
+ unsigned int TC_BUSY : 1;
+ unsigned int : 2;
+ unsigned int HIRQ_PENDING : 1;
+ unsigned int CPRQ_PENDING : 1;
+ unsigned int CFRQ_PENDING : 1;
+ unsigned int PFRQ_PENDING : 1;
+ unsigned int VGT_BUSY_NO_DMA : 1;
+ unsigned int : 1;
+ unsigned int RBBM_WU_BUSY : 1;
+ unsigned int : 1;
+ unsigned int CP_NRT_BUSY : 1;
+ unsigned int : 1;
+ unsigned int MH_BUSY : 1;
+ unsigned int MH_COHERENCY_BUSY : 1;
+ unsigned int : 1;
+ unsigned int SX_BUSY : 1;
+ unsigned int TPC_BUSY : 1;
+ unsigned int : 1;
+ unsigned int SC_CNTX_BUSY : 1;
+ unsigned int PA_BUSY : 1;
+ unsigned int VGT_BUSY : 1;
+ unsigned int SQ_CNTX17_BUSY : 1;
+ unsigned int SQ_CNTX0_BUSY : 1;
+ unsigned int : 1;
+ unsigned int RB_CNTX_BUSY : 1;
+ unsigned int GUI_ACTIVE : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int GUI_ACTIVE : 1;
+ unsigned int RB_CNTX_BUSY : 1;
+ unsigned int : 1;
+ unsigned int SQ_CNTX0_BUSY : 1;
+ unsigned int SQ_CNTX17_BUSY : 1;
+ unsigned int VGT_BUSY : 1;
+ unsigned int PA_BUSY : 1;
+ unsigned int SC_CNTX_BUSY : 1;
+ unsigned int : 1;
+ unsigned int TPC_BUSY : 1;
+ unsigned int SX_BUSY : 1;
+ unsigned int : 1;
+ unsigned int MH_COHERENCY_BUSY : 1;
+ unsigned int MH_BUSY : 1;
+ unsigned int : 1;
+ unsigned int CP_NRT_BUSY : 1;
+ unsigned int : 1;
+ unsigned int RBBM_WU_BUSY : 1;
+ unsigned int : 1;
+ unsigned int VGT_BUSY_NO_DMA : 1;
+ unsigned int PFRQ_PENDING : 1;
+ unsigned int CFRQ_PENDING : 1;
+ unsigned int CPRQ_PENDING : 1;
+ unsigned int HIRQ_PENDING : 1;
+ unsigned int : 2;
+ unsigned int TC_BUSY : 1;
+ unsigned int CMDFIFO_AVAIL : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_DSPLY {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SEL_DMI_ACTIVE_BUFID0 : 1;
+ unsigned int SEL_DMI_ACTIVE_BUFID1 : 1;
+ unsigned int SEL_DMI_ACTIVE_BUFID2 : 1;
+ unsigned int SEL_DMI_VSYNC_VALID : 1;
+ unsigned int DMI_CH1_USE_BUFID0 : 1;
+ unsigned int DMI_CH1_USE_BUFID1 : 1;
+ unsigned int DMI_CH1_USE_BUFID2 : 1;
+ unsigned int DMI_CH1_SW_CNTL : 1;
+ unsigned int DMI_CH1_NUM_BUFS : 2;
+ unsigned int DMI_CH2_USE_BUFID0 : 1;
+ unsigned int DMI_CH2_USE_BUFID1 : 1;
+ unsigned int DMI_CH2_USE_BUFID2 : 1;
+ unsigned int DMI_CH2_SW_CNTL : 1;
+ unsigned int DMI_CH2_NUM_BUFS : 2;
+ unsigned int DMI_CHANNEL_SELECT : 2;
+ unsigned int : 2;
+ unsigned int DMI_CH3_USE_BUFID0 : 1;
+ unsigned int DMI_CH3_USE_BUFID1 : 1;
+ unsigned int DMI_CH3_USE_BUFID2 : 1;
+ unsigned int DMI_CH3_SW_CNTL : 1;
+ unsigned int DMI_CH3_NUM_BUFS : 2;
+ unsigned int DMI_CH4_USE_BUFID0 : 1;
+ unsigned int DMI_CH4_USE_BUFID1 : 1;
+ unsigned int DMI_CH4_USE_BUFID2 : 1;
+ unsigned int DMI_CH4_SW_CNTL : 1;
+ unsigned int DMI_CH4_NUM_BUFS : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int DMI_CH4_NUM_BUFS : 2;
+ unsigned int DMI_CH4_SW_CNTL : 1;
+ unsigned int DMI_CH4_USE_BUFID2 : 1;
+ unsigned int DMI_CH4_USE_BUFID1 : 1;
+ unsigned int DMI_CH4_USE_BUFID0 : 1;
+ unsigned int DMI_CH3_NUM_BUFS : 2;
+ unsigned int DMI_CH3_SW_CNTL : 1;
+ unsigned int DMI_CH3_USE_BUFID2 : 1;
+ unsigned int DMI_CH3_USE_BUFID1 : 1;
+ unsigned int DMI_CH3_USE_BUFID0 : 1;
+ unsigned int : 2;
+ unsigned int DMI_CHANNEL_SELECT : 2;
+ unsigned int DMI_CH2_NUM_BUFS : 2;
+ unsigned int DMI_CH2_SW_CNTL : 1;
+ unsigned int DMI_CH2_USE_BUFID2 : 1;
+ unsigned int DMI_CH2_USE_BUFID1 : 1;
+ unsigned int DMI_CH2_USE_BUFID0 : 1;
+ unsigned int DMI_CH1_NUM_BUFS : 2;
+ unsigned int DMI_CH1_SW_CNTL : 1;
+ unsigned int DMI_CH1_USE_BUFID2 : 1;
+ unsigned int DMI_CH1_USE_BUFID1 : 1;
+ unsigned int DMI_CH1_USE_BUFID0 : 1;
+ unsigned int SEL_DMI_VSYNC_VALID : 1;
+ unsigned int SEL_DMI_ACTIVE_BUFID2 : 1;
+ unsigned int SEL_DMI_ACTIVE_BUFID1 : 1;
+ unsigned int SEL_DMI_ACTIVE_BUFID0 : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_RENDER_LATEST {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DMI_CH1_BUFFER_ID : 2;
+ unsigned int : 6;
+ unsigned int DMI_CH2_BUFFER_ID : 2;
+ unsigned int : 6;
+ unsigned int DMI_CH3_BUFFER_ID : 2;
+ unsigned int : 6;
+ unsigned int DMI_CH4_BUFFER_ID : 2;
+ unsigned int : 6;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 6;
+ unsigned int DMI_CH4_BUFFER_ID : 2;
+ unsigned int : 6;
+ unsigned int DMI_CH3_BUFFER_ID : 2;
+ unsigned int : 6;
+ unsigned int DMI_CH2_BUFFER_ID : 2;
+ unsigned int : 6;
+ unsigned int DMI_CH1_BUFFER_ID : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_RTL_RELEASE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CHANGELIST : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int CHANGELIST : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_PATCH_RELEASE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PATCH_REVISION : 16;
+ unsigned int PATCH_SELECTION : 8;
+ unsigned int CUSTOMER_ID : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int CUSTOMER_ID : 8;
+ unsigned int PATCH_SELECTION : 8;
+ unsigned int PATCH_REVISION : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_AUXILIARY_CONFIG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RESERVED : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int RESERVED : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_PERIPHID0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PARTNUMBER0 : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PARTNUMBER0 : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_PERIPHID1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PARTNUMBER1 : 4;
+ unsigned int DESIGNER0 : 4;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int DESIGNER0 : 4;
+ unsigned int PARTNUMBER1 : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_PERIPHID2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DESIGNER1 : 4;
+ unsigned int REVISION : 4;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int REVISION : 4;
+ unsigned int DESIGNER1 : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_PERIPHID3 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RBBM_HOST_INTERFACE : 2;
+ unsigned int GARB_SLAVE_INTERFACE : 2;
+ unsigned int MH_INTERFACE : 2;
+ unsigned int : 1;
+ unsigned int CONTINUATION : 1;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int CONTINUATION : 1;
+ unsigned int : 1;
+ unsigned int MH_INTERFACE : 2;
+ unsigned int GARB_SLAVE_INTERFACE : 2;
+ unsigned int RBBM_HOST_INTERFACE : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int READ_TIMEOUT : 8;
+ unsigned int REGCLK_DEASSERT_TIME : 9;
+ unsigned int : 15;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 15;
+ unsigned int REGCLK_DEASSERT_TIME : 9;
+ unsigned int READ_TIMEOUT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_SKEW_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SKEW_TOP_THRESHOLD : 5;
+ unsigned int SKEW_COUNT : 5;
+ unsigned int : 22;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 22;
+ unsigned int SKEW_COUNT : 5;
+ unsigned int SKEW_TOP_THRESHOLD : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_SOFT_RESET {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SOFT_RESET_CP : 1;
+ unsigned int : 1;
+ unsigned int SOFT_RESET_PA : 1;
+ unsigned int SOFT_RESET_MH : 1;
+ unsigned int SOFT_RESET_BC : 1;
+ unsigned int SOFT_RESET_SQ : 1;
+ unsigned int SOFT_RESET_SX : 1;
+ unsigned int : 5;
+ unsigned int SOFT_RESET_CIB : 1;
+ unsigned int : 2;
+ unsigned int SOFT_RESET_SC : 1;
+ unsigned int SOFT_RESET_VGT : 1;
+ unsigned int : 15;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 15;
+ unsigned int SOFT_RESET_VGT : 1;
+ unsigned int SOFT_RESET_SC : 1;
+ unsigned int : 2;
+ unsigned int SOFT_RESET_CIB : 1;
+ unsigned int : 5;
+ unsigned int SOFT_RESET_SX : 1;
+ unsigned int SOFT_RESET_SQ : 1;
+ unsigned int SOFT_RESET_BC : 1;
+ unsigned int SOFT_RESET_MH : 1;
+ unsigned int SOFT_RESET_PA : 1;
+ unsigned int : 1;
+ unsigned int SOFT_RESET_CP : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_PM_OVERRIDE1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RBBM_AHBCLK_PM_OVERRIDE : 1;
+ unsigned int SC_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int SC_SCLK_PM_OVERRIDE : 1;
+ unsigned int SP_TOP_SCLK_PM_OVERRIDE : 1;
+ unsigned int SP_V0_SCLK_PM_OVERRIDE : 1;
+ unsigned int SQ_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int SQ_REG_FIFOS_SCLK_PM_OVERRIDE : 1;
+ unsigned int SQ_CONST_MEM_SCLK_PM_OVERRIDE : 1;
+ unsigned int SQ_SQ_SCLK_PM_OVERRIDE : 1;
+ unsigned int SX_SCLK_PM_OVERRIDE : 1;
+ unsigned int SX_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int TCM_TCO_SCLK_PM_OVERRIDE : 1;
+ unsigned int TCM_TCM_SCLK_PM_OVERRIDE : 1;
+ unsigned int TCM_TCD_SCLK_PM_OVERRIDE : 1;
+ unsigned int TCM_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int TPC_TPC_SCLK_PM_OVERRIDE : 1;
+ unsigned int TPC_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int TCF_TCA_SCLK_PM_OVERRIDE : 1;
+ unsigned int TCF_TCB_SCLK_PM_OVERRIDE : 1;
+ unsigned int TCF_TCB_READ_SCLK_PM_OVERRIDE : 1;
+ unsigned int TP_TP_SCLK_PM_OVERRIDE : 1;
+ unsigned int TP_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int CP_G_SCLK_PM_OVERRIDE : 1;
+ unsigned int CP_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int CP_G_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int SPI_SCLK_PM_OVERRIDE : 1;
+ unsigned int RB_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int RB_SCLK_PM_OVERRIDE : 1;
+ unsigned int MH_MH_SCLK_PM_OVERRIDE : 1;
+ unsigned int MH_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int MH_MMU_SCLK_PM_OVERRIDE : 1;
+ unsigned int MH_TCROQ_SCLK_PM_OVERRIDE : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int MH_TCROQ_SCLK_PM_OVERRIDE : 1;
+ unsigned int MH_MMU_SCLK_PM_OVERRIDE : 1;
+ unsigned int MH_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int MH_MH_SCLK_PM_OVERRIDE : 1;
+ unsigned int RB_SCLK_PM_OVERRIDE : 1;
+ unsigned int RB_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int SPI_SCLK_PM_OVERRIDE : 1;
+ unsigned int CP_G_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int CP_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int CP_G_SCLK_PM_OVERRIDE : 1;
+ unsigned int TP_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int TP_TP_SCLK_PM_OVERRIDE : 1;
+ unsigned int TCF_TCB_READ_SCLK_PM_OVERRIDE : 1;
+ unsigned int TCF_TCB_SCLK_PM_OVERRIDE : 1;
+ unsigned int TCF_TCA_SCLK_PM_OVERRIDE : 1;
+ unsigned int TPC_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int TPC_TPC_SCLK_PM_OVERRIDE : 1;
+ unsigned int TCM_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int TCM_TCD_SCLK_PM_OVERRIDE : 1;
+ unsigned int TCM_TCM_SCLK_PM_OVERRIDE : 1;
+ unsigned int TCM_TCO_SCLK_PM_OVERRIDE : 1;
+ unsigned int SX_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int SX_SCLK_PM_OVERRIDE : 1;
+ unsigned int SQ_SQ_SCLK_PM_OVERRIDE : 1;
+ unsigned int SQ_CONST_MEM_SCLK_PM_OVERRIDE : 1;
+ unsigned int SQ_REG_FIFOS_SCLK_PM_OVERRIDE : 1;
+ unsigned int SQ_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int SP_V0_SCLK_PM_OVERRIDE : 1;
+ unsigned int SP_TOP_SCLK_PM_OVERRIDE : 1;
+ unsigned int SC_SCLK_PM_OVERRIDE : 1;
+ unsigned int SC_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int RBBM_AHBCLK_PM_OVERRIDE : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_PM_OVERRIDE2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PA_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int PA_PA_SCLK_PM_OVERRIDE : 1;
+ unsigned int PA_AG_SCLK_PM_OVERRIDE : 1;
+ unsigned int VGT_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int VGT_FIFOS_SCLK_PM_OVERRIDE : 1;
+ unsigned int VGT_VGT_SCLK_PM_OVERRIDE : 1;
+ unsigned int DEBUG_PERF_SCLK_PM_OVERRIDE : 1;
+ unsigned int PERM_SCLK_PM_OVERRIDE : 1;
+ unsigned int GC_GA_GMEM0_PM_OVERRIDE : 1;
+ unsigned int GC_GA_GMEM1_PM_OVERRIDE : 1;
+ unsigned int GC_GA_GMEM2_PM_OVERRIDE : 1;
+ unsigned int GC_GA_GMEM3_PM_OVERRIDE : 1;
+ unsigned int : 20;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 20;
+ unsigned int GC_GA_GMEM3_PM_OVERRIDE : 1;
+ unsigned int GC_GA_GMEM2_PM_OVERRIDE : 1;
+ unsigned int GC_GA_GMEM1_PM_OVERRIDE : 1;
+ unsigned int GC_GA_GMEM0_PM_OVERRIDE : 1;
+ unsigned int PERM_SCLK_PM_OVERRIDE : 1;
+ unsigned int DEBUG_PERF_SCLK_PM_OVERRIDE : 1;
+ unsigned int VGT_VGT_SCLK_PM_OVERRIDE : 1;
+ unsigned int VGT_FIFOS_SCLK_PM_OVERRIDE : 1;
+ unsigned int VGT_REG_SCLK_PM_OVERRIDE : 1;
+ unsigned int PA_AG_SCLK_PM_OVERRIDE : 1;
+ unsigned int PA_PA_SCLK_PM_OVERRIDE : 1;
+ unsigned int PA_REG_SCLK_PM_OVERRIDE : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union GC_SYS_IDLE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int GC_SYS_IDLE_DELAY : 16;
+ unsigned int GC_SYS_WAIT_DMI_MASK : 6;
+ unsigned int : 2;
+ unsigned int GC_SYS_URGENT_RAMP : 1;
+ unsigned int GC_SYS_WAIT_DMI : 1;
+ unsigned int : 3;
+ unsigned int GC_SYS_URGENT_RAMP_OVERRIDE : 1;
+ unsigned int GC_SYS_WAIT_DMI_OVERRIDE : 1;
+ unsigned int GC_SYS_IDLE_OVERRIDE : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int GC_SYS_IDLE_OVERRIDE : 1;
+ unsigned int GC_SYS_WAIT_DMI_OVERRIDE : 1;
+ unsigned int GC_SYS_URGENT_RAMP_OVERRIDE : 1;
+ unsigned int : 3;
+ unsigned int GC_SYS_WAIT_DMI : 1;
+ unsigned int GC_SYS_URGENT_RAMP : 1;
+ unsigned int : 2;
+ unsigned int GC_SYS_WAIT_DMI_MASK : 6;
+ unsigned int GC_SYS_IDLE_DELAY : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union NQWAIT_UNTIL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int WAIT_GUI_IDLE : 1;
+ unsigned int : 31;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 31;
+ unsigned int WAIT_GUI_IDLE : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_DEBUG_OUT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DEBUG_BUS_OUT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int DEBUG_BUS_OUT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_DEBUG_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SUB_BLOCK_ADDR : 6;
+ unsigned int : 2;
+ unsigned int SUB_BLOCK_SEL : 4;
+ unsigned int SW_ENABLE : 1;
+ unsigned int : 3;
+ unsigned int GPIO_SUB_BLOCK_ADDR : 6;
+ unsigned int : 2;
+ unsigned int GPIO_SUB_BLOCK_SEL : 4;
+ unsigned int GPIO_BYTE_LANE_ENB : 4;
+#else /* !defined(qLittleEndian) */
+ unsigned int GPIO_BYTE_LANE_ENB : 4;
+ unsigned int GPIO_SUB_BLOCK_SEL : 4;
+ unsigned int : 2;
+ unsigned int GPIO_SUB_BLOCK_ADDR : 6;
+ unsigned int : 3;
+ unsigned int SW_ENABLE : 1;
+ unsigned int SUB_BLOCK_SEL : 4;
+ unsigned int : 2;
+ unsigned int SUB_BLOCK_ADDR : 6;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 1;
+ unsigned int IGNORE_RTR : 1;
+ unsigned int IGNORE_CP_SCHED_WU : 1;
+ unsigned int IGNORE_CP_SCHED_ISYNC : 1;
+ unsigned int IGNORE_CP_SCHED_NQ_HI : 1;
+ unsigned int : 3;
+ unsigned int HYSTERESIS_NRT_GUI_ACTIVE : 4;
+ unsigned int : 4;
+ unsigned int IGNORE_RTR_FOR_HI : 1;
+ unsigned int IGNORE_CP_RBBM_NRTRTR_FOR_HI : 1;
+ unsigned int IGNORE_VGT_RBBM_NRTRTR_FOR_HI : 1;
+ unsigned int IGNORE_SQ_RBBM_NRTRTR_FOR_HI : 1;
+ unsigned int CP_RBBM_NRTRTR : 1;
+ unsigned int VGT_RBBM_NRTRTR : 1;
+ unsigned int SQ_RBBM_NRTRTR : 1;
+ unsigned int CLIENTS_FOR_NRT_RTR_FOR_HI : 1;
+ unsigned int CLIENTS_FOR_NRT_RTR : 1;
+ unsigned int : 6;
+ unsigned int IGNORE_SX_RBBM_BUSY : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int IGNORE_SX_RBBM_BUSY : 1;
+ unsigned int : 6;
+ unsigned int CLIENTS_FOR_NRT_RTR : 1;
+ unsigned int CLIENTS_FOR_NRT_RTR_FOR_HI : 1;
+ unsigned int SQ_RBBM_NRTRTR : 1;
+ unsigned int VGT_RBBM_NRTRTR : 1;
+ unsigned int CP_RBBM_NRTRTR : 1;
+ unsigned int IGNORE_SQ_RBBM_NRTRTR_FOR_HI : 1;
+ unsigned int IGNORE_VGT_RBBM_NRTRTR_FOR_HI : 1;
+ unsigned int IGNORE_CP_RBBM_NRTRTR_FOR_HI : 1;
+ unsigned int IGNORE_RTR_FOR_HI : 1;
+ unsigned int : 4;
+ unsigned int HYSTERESIS_NRT_GUI_ACTIVE : 4;
+ unsigned int : 3;
+ unsigned int IGNORE_CP_SCHED_NQ_HI : 1;
+ unsigned int IGNORE_CP_SCHED_ISYNC : 1;
+ unsigned int IGNORE_CP_SCHED_WU : 1;
+ unsigned int IGNORE_RTR : 1;
+ unsigned int : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_READ_ERROR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 2;
+ unsigned int READ_ADDRESS : 15;
+ unsigned int : 13;
+ unsigned int READ_REQUESTER : 1;
+ unsigned int READ_ERROR : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int READ_ERROR : 1;
+ unsigned int READ_REQUESTER : 1;
+ unsigned int : 13;
+ unsigned int READ_ADDRESS : 15;
+ unsigned int : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_WAIT_IDLE_CLOCKS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int WAIT_IDLE_CLOCKS_NRT : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int WAIT_IDLE_CLOCKS_NRT : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_INT_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RDERR_INT_MASK : 1;
+ unsigned int DISPLAY_UPDATE_INT_MASK : 1;
+ unsigned int : 17;
+ unsigned int GUI_IDLE_INT_MASK : 1;
+ unsigned int : 12;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 12;
+ unsigned int GUI_IDLE_INT_MASK : 1;
+ unsigned int : 17;
+ unsigned int DISPLAY_UPDATE_INT_MASK : 1;
+ unsigned int RDERR_INT_MASK : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_INT_STATUS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RDERR_INT_STAT : 1;
+ unsigned int DISPLAY_UPDATE_INT_STAT : 1;
+ unsigned int : 17;
+ unsigned int GUI_IDLE_INT_STAT : 1;
+ unsigned int : 12;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 12;
+ unsigned int GUI_IDLE_INT_STAT : 1;
+ unsigned int : 17;
+ unsigned int DISPLAY_UPDATE_INT_STAT : 1;
+ unsigned int RDERR_INT_STAT : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_INT_ACK {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RDERR_INT_ACK : 1;
+ unsigned int DISPLAY_UPDATE_INT_ACK : 1;
+ unsigned int : 17;
+ unsigned int GUI_IDLE_INT_ACK : 1;
+ unsigned int : 12;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 12;
+ unsigned int GUI_IDLE_INT_ACK : 1;
+ unsigned int : 17;
+ unsigned int DISPLAY_UPDATE_INT_ACK : 1;
+ unsigned int RDERR_INT_ACK : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union MASTER_INT_SIGNAL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 5;
+ unsigned int MH_INT_STAT : 1;
+ unsigned int : 20;
+ unsigned int SQ_INT_STAT : 1;
+ unsigned int : 3;
+ unsigned int CP_INT_STAT : 1;
+ unsigned int RBBM_INT_STAT : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int RBBM_INT_STAT : 1;
+ unsigned int CP_INT_STAT : 1;
+ unsigned int : 3;
+ unsigned int SQ_INT_STAT : 1;
+ unsigned int : 20;
+ unsigned int MH_INT_STAT : 1;
+ unsigned int : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_PERFCOUNTER1_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT1_SEL : 6;
+ unsigned int : 26;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 26;
+ unsigned int PERF_COUNT1_SEL : 6;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_PERFCOUNTER1_LO {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT1_LO : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERF_COUNT1_LO : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RBBM_PERFCOUNTER1_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT1_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERF_COUNT1_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_RB_BASE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 5;
+ unsigned int RB_BASE : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int RB_BASE : 27;
+ unsigned int : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_RB_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RB_BUFSZ : 6;
+ unsigned int : 2;
+ unsigned int RB_BLKSZ : 6;
+ unsigned int : 2;
+ unsigned int BUF_SWAP : 2;
+ unsigned int : 2;
+ unsigned int RB_POLL_EN : 1;
+ unsigned int : 6;
+ unsigned int RB_NO_UPDATE : 1;
+ unsigned int : 3;
+ unsigned int RB_RPTR_WR_ENA : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int RB_RPTR_WR_ENA : 1;
+ unsigned int : 3;
+ unsigned int RB_NO_UPDATE : 1;
+ unsigned int : 6;
+ unsigned int RB_POLL_EN : 1;
+ unsigned int : 2;
+ unsigned int BUF_SWAP : 2;
+ unsigned int : 2;
+ unsigned int RB_BLKSZ : 6;
+ unsigned int : 2;
+ unsigned int RB_BUFSZ : 6;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_RB_RPTR_ADDR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RB_RPTR_SWAP : 2;
+ unsigned int RB_RPTR_ADDR : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int RB_RPTR_ADDR : 30;
+ unsigned int RB_RPTR_SWAP : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_RB_RPTR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RB_RPTR : 20;
+ unsigned int : 12;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 12;
+ unsigned int RB_RPTR : 20;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_RB_RPTR_WR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RB_RPTR_WR : 20;
+ unsigned int : 12;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 12;
+ unsigned int RB_RPTR_WR : 20;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_RB_WPTR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RB_WPTR : 20;
+ unsigned int : 12;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 12;
+ unsigned int RB_WPTR : 20;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_RB_WPTR_DELAY {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PRE_WRITE_TIMER : 28;
+ unsigned int PRE_WRITE_LIMIT : 4;
+#else /* !defined(qLittleEndian) */
+ unsigned int PRE_WRITE_LIMIT : 4;
+ unsigned int PRE_WRITE_TIMER : 28;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_RB_WPTR_BASE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RB_WPTR_SWAP : 2;
+ unsigned int RB_WPTR_BASE : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int RB_WPTR_BASE : 30;
+ unsigned int RB_WPTR_SWAP : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_IB1_BASE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 2;
+ unsigned int IB1_BASE : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int IB1_BASE : 30;
+ unsigned int : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_IB1_BUFSZ {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int IB1_BUFSZ : 20;
+ unsigned int : 12;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 12;
+ unsigned int IB1_BUFSZ : 20;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_IB2_BASE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 2;
+ unsigned int IB2_BASE : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int IB2_BASE : 30;
+ unsigned int : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_IB2_BUFSZ {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int IB2_BUFSZ : 20;
+ unsigned int : 12;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 12;
+ unsigned int IB2_BUFSZ : 20;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ST_BASE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 2;
+ unsigned int ST_BASE : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int ST_BASE : 30;
+ unsigned int : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ST_BUFSZ {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ST_BUFSZ : 20;
+ unsigned int : 12;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 12;
+ unsigned int ST_BUFSZ : 20;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_QUEUE_THRESHOLDS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CSQ_IB1_START : 4;
+ unsigned int : 4;
+ unsigned int CSQ_IB2_START : 4;
+ unsigned int : 4;
+ unsigned int CSQ_ST_START : 4;
+ unsigned int : 12;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 12;
+ unsigned int CSQ_ST_START : 4;
+ unsigned int : 4;
+ unsigned int CSQ_IB2_START : 4;
+ unsigned int : 4;
+ unsigned int CSQ_IB1_START : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_MEQ_THRESHOLDS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 16;
+ unsigned int MEQ_END : 5;
+ unsigned int : 3;
+ unsigned int ROQ_END : 5;
+ unsigned int : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 3;
+ unsigned int ROQ_END : 5;
+ unsigned int : 3;
+ unsigned int MEQ_END : 5;
+ unsigned int : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_CSQ_AVAIL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CSQ_CNT_RING : 7;
+ unsigned int : 1;
+ unsigned int CSQ_CNT_IB1 : 7;
+ unsigned int : 1;
+ unsigned int CSQ_CNT_IB2 : 7;
+ unsigned int : 9;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 9;
+ unsigned int CSQ_CNT_IB2 : 7;
+ unsigned int : 1;
+ unsigned int CSQ_CNT_IB1 : 7;
+ unsigned int : 1;
+ unsigned int CSQ_CNT_RING : 7;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_STQ_AVAIL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int STQ_CNT_ST : 7;
+ unsigned int : 25;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 25;
+ unsigned int STQ_CNT_ST : 7;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_MEQ_AVAIL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MEQ_CNT : 5;
+ unsigned int : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 27;
+ unsigned int MEQ_CNT : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_CSQ_RB_STAT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CSQ_RPTR_PRIMARY : 7;
+ unsigned int : 9;
+ unsigned int CSQ_WPTR_PRIMARY : 7;
+ unsigned int : 9;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 9;
+ unsigned int CSQ_WPTR_PRIMARY : 7;
+ unsigned int : 9;
+ unsigned int CSQ_RPTR_PRIMARY : 7;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_CSQ_IB1_STAT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CSQ_RPTR_INDIRECT1 : 7;
+ unsigned int : 9;
+ unsigned int CSQ_WPTR_INDIRECT1 : 7;
+ unsigned int : 9;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 9;
+ unsigned int CSQ_WPTR_INDIRECT1 : 7;
+ unsigned int : 9;
+ unsigned int CSQ_RPTR_INDIRECT1 : 7;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_CSQ_IB2_STAT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CSQ_RPTR_INDIRECT2 : 7;
+ unsigned int : 9;
+ unsigned int CSQ_WPTR_INDIRECT2 : 7;
+ unsigned int : 9;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 9;
+ unsigned int CSQ_WPTR_INDIRECT2 : 7;
+ unsigned int : 9;
+ unsigned int CSQ_RPTR_INDIRECT2 : 7;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_NON_PREFETCH_CNTRS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int IB1_COUNTER : 3;
+ unsigned int : 5;
+ unsigned int IB2_COUNTER : 3;
+ unsigned int : 21;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 21;
+ unsigned int IB2_COUNTER : 3;
+ unsigned int : 5;
+ unsigned int IB1_COUNTER : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_STQ_ST_STAT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int STQ_RPTR_ST : 7;
+ unsigned int : 9;
+ unsigned int STQ_WPTR_ST : 7;
+ unsigned int : 9;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 9;
+ unsigned int STQ_WPTR_ST : 7;
+ unsigned int : 9;
+ unsigned int STQ_RPTR_ST : 7;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_MEQ_STAT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MEQ_RPTR : 10;
+ unsigned int : 6;
+ unsigned int MEQ_WPTR : 10;
+ unsigned int : 6;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 6;
+ unsigned int MEQ_WPTR : 10;
+ unsigned int : 6;
+ unsigned int MEQ_RPTR : 10;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_MIU_TAG_STAT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TAG_0_STAT : 1;
+ unsigned int TAG_1_STAT : 1;
+ unsigned int TAG_2_STAT : 1;
+ unsigned int TAG_3_STAT : 1;
+ unsigned int TAG_4_STAT : 1;
+ unsigned int TAG_5_STAT : 1;
+ unsigned int TAG_6_STAT : 1;
+ unsigned int TAG_7_STAT : 1;
+ unsigned int TAG_8_STAT : 1;
+ unsigned int TAG_9_STAT : 1;
+ unsigned int TAG_10_STAT : 1;
+ unsigned int TAG_11_STAT : 1;
+ unsigned int TAG_12_STAT : 1;
+ unsigned int TAG_13_STAT : 1;
+ unsigned int TAG_14_STAT : 1;
+ unsigned int TAG_15_STAT : 1;
+ unsigned int TAG_16_STAT : 1;
+ unsigned int TAG_17_STAT : 1;
+ unsigned int : 13;
+ unsigned int INVALID_RETURN_TAG : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int INVALID_RETURN_TAG : 1;
+ unsigned int : 13;
+ unsigned int TAG_17_STAT : 1;
+ unsigned int TAG_16_STAT : 1;
+ unsigned int TAG_15_STAT : 1;
+ unsigned int TAG_14_STAT : 1;
+ unsigned int TAG_13_STAT : 1;
+ unsigned int TAG_12_STAT : 1;
+ unsigned int TAG_11_STAT : 1;
+ unsigned int TAG_10_STAT : 1;
+ unsigned int TAG_9_STAT : 1;
+ unsigned int TAG_8_STAT : 1;
+ unsigned int TAG_7_STAT : 1;
+ unsigned int TAG_6_STAT : 1;
+ unsigned int TAG_5_STAT : 1;
+ unsigned int TAG_4_STAT : 1;
+ unsigned int TAG_3_STAT : 1;
+ unsigned int TAG_2_STAT : 1;
+ unsigned int TAG_1_STAT : 1;
+ unsigned int TAG_0_STAT : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_CMD_INDEX {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CMD_INDEX : 7;
+ unsigned int : 9;
+ unsigned int CMD_QUEUE_SEL : 2;
+ unsigned int : 14;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 14;
+ unsigned int CMD_QUEUE_SEL : 2;
+ unsigned int : 9;
+ unsigned int CMD_INDEX : 7;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_CMD_DATA {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CMD_DATA : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int CMD_DATA : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ME_STATMUX : 16;
+ unsigned int : 9;
+ unsigned int VTX_DEALLOC_FIFO_EMPTY : 1;
+ unsigned int PIX_DEALLOC_FIFO_EMPTY : 1;
+ unsigned int : 1;
+ unsigned int ME_HALT : 1;
+ unsigned int ME_BUSY : 1;
+ unsigned int : 1;
+ unsigned int PROG_CNT_SIZE : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int PROG_CNT_SIZE : 1;
+ unsigned int : 1;
+ unsigned int ME_BUSY : 1;
+ unsigned int ME_HALT : 1;
+ unsigned int : 1;
+ unsigned int PIX_DEALLOC_FIFO_EMPTY : 1;
+ unsigned int VTX_DEALLOC_FIFO_EMPTY : 1;
+ unsigned int : 9;
+ unsigned int ME_STATMUX : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_STATUS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ME_DEBUG_DATA : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int ME_DEBUG_DATA : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_RAM_WADDR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ME_RAM_WADDR : 10;
+ unsigned int : 22;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 22;
+ unsigned int ME_RAM_WADDR : 10;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_RAM_RADDR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ME_RAM_RADDR : 10;
+ unsigned int : 22;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 22;
+ unsigned int ME_RAM_RADDR : 10;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_RAM_DATA {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ME_RAM_DATA : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int ME_RAM_DATA : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_RDADDR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ME_RDADDR : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int ME_RDADDR : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_DEBUG {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CP_DEBUG_UNUSED_22_to_0 : 23;
+ unsigned int PREDICATE_DISABLE : 1;
+ unsigned int PROG_END_PTR_ENABLE : 1;
+ unsigned int MIU_128BIT_WRITE_ENABLE : 1;
+ unsigned int PREFETCH_PASS_NOPS : 1;
+ unsigned int DYNAMIC_CLK_DISABLE : 1;
+ unsigned int PREFETCH_MATCH_DISABLE : 1;
+ unsigned int : 1;
+ unsigned int SIMPLE_ME_FLOW_CONTROL : 1;
+ unsigned int MIU_WRITE_PACK_DISABLE : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int MIU_WRITE_PACK_DISABLE : 1;
+ unsigned int SIMPLE_ME_FLOW_CONTROL : 1;
+ unsigned int : 1;
+ unsigned int PREFETCH_MATCH_DISABLE : 1;
+ unsigned int DYNAMIC_CLK_DISABLE : 1;
+ unsigned int PREFETCH_PASS_NOPS : 1;
+ unsigned int MIU_128BIT_WRITE_ENABLE : 1;
+ unsigned int PROG_END_PTR_ENABLE : 1;
+ unsigned int PREDICATE_DISABLE : 1;
+ unsigned int CP_DEBUG_UNUSED_22_to_0 : 23;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SCRATCH_REG0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SCRATCH_REG0 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int SCRATCH_REG0 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SCRATCH_REG1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SCRATCH_REG1 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int SCRATCH_REG1 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SCRATCH_REG2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SCRATCH_REG2 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int SCRATCH_REG2 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SCRATCH_REG3 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SCRATCH_REG3 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int SCRATCH_REG3 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SCRATCH_REG4 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SCRATCH_REG4 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int SCRATCH_REG4 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SCRATCH_REG5 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SCRATCH_REG5 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int SCRATCH_REG5 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SCRATCH_REG6 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SCRATCH_REG6 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int SCRATCH_REG6 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SCRATCH_REG7 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SCRATCH_REG7 : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int SCRATCH_REG7 : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SCRATCH_UMSK {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SCRATCH_UMSK : 8;
+ unsigned int : 8;
+ unsigned int SCRATCH_SWAP : 2;
+ unsigned int : 14;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 14;
+ unsigned int SCRATCH_SWAP : 2;
+ unsigned int : 8;
+ unsigned int SCRATCH_UMSK : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union SCRATCH_ADDR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 5;
+ unsigned int SCRATCH_ADDR : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int SCRATCH_ADDR : 27;
+ unsigned int : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_VS_EVENT_SRC {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VS_DONE_SWM : 1;
+ unsigned int VS_DONE_CNTR : 1;
+ unsigned int : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 30;
+ unsigned int VS_DONE_CNTR : 1;
+ unsigned int VS_DONE_SWM : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_VS_EVENT_ADDR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VS_DONE_SWAP : 2;
+ unsigned int VS_DONE_ADDR : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int VS_DONE_ADDR : 30;
+ unsigned int VS_DONE_SWAP : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_VS_EVENT_DATA {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VS_DONE_DATA : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VS_DONE_DATA : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_VS_EVENT_ADDR_SWM {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VS_DONE_SWAP_SWM : 2;
+ unsigned int VS_DONE_ADDR_SWM : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int VS_DONE_ADDR_SWM : 30;
+ unsigned int VS_DONE_SWAP_SWM : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_VS_EVENT_DATA_SWM {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VS_DONE_DATA_SWM : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VS_DONE_DATA_SWM : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_PS_EVENT_SRC {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PS_DONE_SWM : 1;
+ unsigned int PS_DONE_CNTR : 1;
+ unsigned int : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 30;
+ unsigned int PS_DONE_CNTR : 1;
+ unsigned int PS_DONE_SWM : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_PS_EVENT_ADDR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PS_DONE_SWAP : 2;
+ unsigned int PS_DONE_ADDR : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int PS_DONE_ADDR : 30;
+ unsigned int PS_DONE_SWAP : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_PS_EVENT_DATA {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PS_DONE_DATA : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PS_DONE_DATA : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_PS_EVENT_ADDR_SWM {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PS_DONE_SWAP_SWM : 2;
+ unsigned int PS_DONE_ADDR_SWM : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int PS_DONE_ADDR_SWM : 30;
+ unsigned int PS_DONE_SWAP_SWM : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_PS_EVENT_DATA_SWM {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PS_DONE_DATA_SWM : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PS_DONE_DATA_SWM : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_CF_EVENT_SRC {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CF_DONE_SRC : 1;
+ unsigned int : 31;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 31;
+ unsigned int CF_DONE_SRC : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_CF_EVENT_ADDR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CF_DONE_SWAP : 2;
+ unsigned int CF_DONE_ADDR : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int CF_DONE_ADDR : 30;
+ unsigned int CF_DONE_SWAP : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_CF_EVENT_DATA {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CF_DONE_DATA : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int CF_DONE_DATA : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_NRT_ADDR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int NRT_WRITE_SWAP : 2;
+ unsigned int NRT_WRITE_ADDR : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int NRT_WRITE_ADDR : 30;
+ unsigned int NRT_WRITE_SWAP : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_NRT_DATA {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int NRT_WRITE_DATA : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int NRT_WRITE_DATA : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_VS_FETCH_DONE_SRC {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VS_FETCH_DONE_CNTR : 1;
+ unsigned int : 31;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 31;
+ unsigned int VS_FETCH_DONE_CNTR : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_VS_FETCH_DONE_ADDR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VS_FETCH_DONE_SWAP : 2;
+ unsigned int VS_FETCH_DONE_ADDR : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int VS_FETCH_DONE_ADDR : 30;
+ unsigned int VS_FETCH_DONE_SWAP : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_ME_VS_FETCH_DONE_DATA {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int VS_FETCH_DONE_DATA : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int VS_FETCH_DONE_DATA : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_INT_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 19;
+ unsigned int SW_INT_MASK : 1;
+ unsigned int : 3;
+ unsigned int T0_PACKET_IN_IB_MASK : 1;
+ unsigned int OPCODE_ERROR_MASK : 1;
+ unsigned int PROTECTED_MODE_ERROR_MASK : 1;
+ unsigned int RESERVED_BIT_ERROR_MASK : 1;
+ unsigned int IB_ERROR_MASK : 1;
+ unsigned int : 1;
+ unsigned int IB2_INT_MASK : 1;
+ unsigned int IB1_INT_MASK : 1;
+ unsigned int RB_INT_MASK : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int RB_INT_MASK : 1;
+ unsigned int IB1_INT_MASK : 1;
+ unsigned int IB2_INT_MASK : 1;
+ unsigned int : 1;
+ unsigned int IB_ERROR_MASK : 1;
+ unsigned int RESERVED_BIT_ERROR_MASK : 1;
+ unsigned int PROTECTED_MODE_ERROR_MASK : 1;
+ unsigned int OPCODE_ERROR_MASK : 1;
+ unsigned int T0_PACKET_IN_IB_MASK : 1;
+ unsigned int : 3;
+ unsigned int SW_INT_MASK : 1;
+ unsigned int : 19;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_INT_STATUS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 19;
+ unsigned int SW_INT_STAT : 1;
+ unsigned int : 3;
+ unsigned int T0_PACKET_IN_IB_STAT : 1;
+ unsigned int OPCODE_ERROR_STAT : 1;
+ unsigned int PROTECTED_MODE_ERROR_STAT : 1;
+ unsigned int RESERVED_BIT_ERROR_STAT : 1;
+ unsigned int IB_ERROR_STAT : 1;
+ unsigned int : 1;
+ unsigned int IB2_INT_STAT : 1;
+ unsigned int IB1_INT_STAT : 1;
+ unsigned int RB_INT_STAT : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int RB_INT_STAT : 1;
+ unsigned int IB1_INT_STAT : 1;
+ unsigned int IB2_INT_STAT : 1;
+ unsigned int : 1;
+ unsigned int IB_ERROR_STAT : 1;
+ unsigned int RESERVED_BIT_ERROR_STAT : 1;
+ unsigned int PROTECTED_MODE_ERROR_STAT : 1;
+ unsigned int OPCODE_ERROR_STAT : 1;
+ unsigned int T0_PACKET_IN_IB_STAT : 1;
+ unsigned int : 3;
+ unsigned int SW_INT_STAT : 1;
+ unsigned int : 19;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_INT_ACK {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 19;
+ unsigned int SW_INT_ACK : 1;
+ unsigned int : 3;
+ unsigned int T0_PACKET_IN_IB_ACK : 1;
+ unsigned int OPCODE_ERROR_ACK : 1;
+ unsigned int PROTECTED_MODE_ERROR_ACK : 1;
+ unsigned int RESERVED_BIT_ERROR_ACK : 1;
+ unsigned int IB_ERROR_ACK : 1;
+ unsigned int : 1;
+ unsigned int IB2_INT_ACK : 1;
+ unsigned int IB1_INT_ACK : 1;
+ unsigned int RB_INT_ACK : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int RB_INT_ACK : 1;
+ unsigned int IB1_INT_ACK : 1;
+ unsigned int IB2_INT_ACK : 1;
+ unsigned int : 1;
+ unsigned int IB_ERROR_ACK : 1;
+ unsigned int RESERVED_BIT_ERROR_ACK : 1;
+ unsigned int PROTECTED_MODE_ERROR_ACK : 1;
+ unsigned int OPCODE_ERROR_ACK : 1;
+ unsigned int T0_PACKET_IN_IB_ACK : 1;
+ unsigned int : 3;
+ unsigned int SW_INT_ACK : 1;
+ unsigned int : 19;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_PFP_UCODE_ADDR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int UCODE_ADDR : 9;
+ unsigned int : 23;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 23;
+ unsigned int UCODE_ADDR : 9;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_PFP_UCODE_DATA {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int UCODE_DATA : 24;
+ unsigned int : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 8;
+ unsigned int UCODE_DATA : 24;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_PERFMON_CNTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFMON_STATE : 4;
+ unsigned int : 4;
+ unsigned int PERFMON_ENABLE_MODE : 2;
+ unsigned int : 22;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 22;
+ unsigned int PERFMON_ENABLE_MODE : 2;
+ unsigned int : 4;
+ unsigned int PERFMON_STATE : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_PERFCOUNTER_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNT_SEL : 6;
+ unsigned int : 26;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 26;
+ unsigned int PERFCOUNT_SEL : 6;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_PERFCOUNTER_LO {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNT_LO : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERFCOUNT_LO : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_PERFCOUNTER_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERFCOUNT_HI : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERFCOUNT_HI : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_BIN_MASK_LO {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIN_MASK_LO : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIN_MASK_LO : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_BIN_MASK_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIN_MASK_HI : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIN_MASK_HI : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_BIN_SELECT_LO {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIN_SELECT_LO : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIN_SELECT_LO : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_BIN_SELECT_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIN_SELECT_HI : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIN_SELECT_HI : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_NV_FLAGS_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DISCARD_0 : 1;
+ unsigned int END_RCVD_0 : 1;
+ unsigned int DISCARD_1 : 1;
+ unsigned int END_RCVD_1 : 1;
+ unsigned int DISCARD_2 : 1;
+ unsigned int END_RCVD_2 : 1;
+ unsigned int DISCARD_3 : 1;
+ unsigned int END_RCVD_3 : 1;
+ unsigned int DISCARD_4 : 1;
+ unsigned int END_RCVD_4 : 1;
+ unsigned int DISCARD_5 : 1;
+ unsigned int END_RCVD_5 : 1;
+ unsigned int DISCARD_6 : 1;
+ unsigned int END_RCVD_6 : 1;
+ unsigned int DISCARD_7 : 1;
+ unsigned int END_RCVD_7 : 1;
+ unsigned int DISCARD_8 : 1;
+ unsigned int END_RCVD_8 : 1;
+ unsigned int DISCARD_9 : 1;
+ unsigned int END_RCVD_9 : 1;
+ unsigned int DISCARD_10 : 1;
+ unsigned int END_RCVD_10 : 1;
+ unsigned int DISCARD_11 : 1;
+ unsigned int END_RCVD_11 : 1;
+ unsigned int DISCARD_12 : 1;
+ unsigned int END_RCVD_12 : 1;
+ unsigned int DISCARD_13 : 1;
+ unsigned int END_RCVD_13 : 1;
+ unsigned int DISCARD_14 : 1;
+ unsigned int END_RCVD_14 : 1;
+ unsigned int DISCARD_15 : 1;
+ unsigned int END_RCVD_15 : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int END_RCVD_15 : 1;
+ unsigned int DISCARD_15 : 1;
+ unsigned int END_RCVD_14 : 1;
+ unsigned int DISCARD_14 : 1;
+ unsigned int END_RCVD_13 : 1;
+ unsigned int DISCARD_13 : 1;
+ unsigned int END_RCVD_12 : 1;
+ unsigned int DISCARD_12 : 1;
+ unsigned int END_RCVD_11 : 1;
+ unsigned int DISCARD_11 : 1;
+ unsigned int END_RCVD_10 : 1;
+ unsigned int DISCARD_10 : 1;
+ unsigned int END_RCVD_9 : 1;
+ unsigned int DISCARD_9 : 1;
+ unsigned int END_RCVD_8 : 1;
+ unsigned int DISCARD_8 : 1;
+ unsigned int END_RCVD_7 : 1;
+ unsigned int DISCARD_7 : 1;
+ unsigned int END_RCVD_6 : 1;
+ unsigned int DISCARD_6 : 1;
+ unsigned int END_RCVD_5 : 1;
+ unsigned int DISCARD_5 : 1;
+ unsigned int END_RCVD_4 : 1;
+ unsigned int DISCARD_4 : 1;
+ unsigned int END_RCVD_3 : 1;
+ unsigned int DISCARD_3 : 1;
+ unsigned int END_RCVD_2 : 1;
+ unsigned int DISCARD_2 : 1;
+ unsigned int END_RCVD_1 : 1;
+ unsigned int DISCARD_1 : 1;
+ unsigned int END_RCVD_0 : 1;
+ unsigned int DISCARD_0 : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_NV_FLAGS_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DISCARD_16 : 1;
+ unsigned int END_RCVD_16 : 1;
+ unsigned int DISCARD_17 : 1;
+ unsigned int END_RCVD_17 : 1;
+ unsigned int DISCARD_18 : 1;
+ unsigned int END_RCVD_18 : 1;
+ unsigned int DISCARD_19 : 1;
+ unsigned int END_RCVD_19 : 1;
+ unsigned int DISCARD_20 : 1;
+ unsigned int END_RCVD_20 : 1;
+ unsigned int DISCARD_21 : 1;
+ unsigned int END_RCVD_21 : 1;
+ unsigned int DISCARD_22 : 1;
+ unsigned int END_RCVD_22 : 1;
+ unsigned int DISCARD_23 : 1;
+ unsigned int END_RCVD_23 : 1;
+ unsigned int DISCARD_24 : 1;
+ unsigned int END_RCVD_24 : 1;
+ unsigned int DISCARD_25 : 1;
+ unsigned int END_RCVD_25 : 1;
+ unsigned int DISCARD_26 : 1;
+ unsigned int END_RCVD_26 : 1;
+ unsigned int DISCARD_27 : 1;
+ unsigned int END_RCVD_27 : 1;
+ unsigned int DISCARD_28 : 1;
+ unsigned int END_RCVD_28 : 1;
+ unsigned int DISCARD_29 : 1;
+ unsigned int END_RCVD_29 : 1;
+ unsigned int DISCARD_30 : 1;
+ unsigned int END_RCVD_30 : 1;
+ unsigned int DISCARD_31 : 1;
+ unsigned int END_RCVD_31 : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int END_RCVD_31 : 1;
+ unsigned int DISCARD_31 : 1;
+ unsigned int END_RCVD_30 : 1;
+ unsigned int DISCARD_30 : 1;
+ unsigned int END_RCVD_29 : 1;
+ unsigned int DISCARD_29 : 1;
+ unsigned int END_RCVD_28 : 1;
+ unsigned int DISCARD_28 : 1;
+ unsigned int END_RCVD_27 : 1;
+ unsigned int DISCARD_27 : 1;
+ unsigned int END_RCVD_26 : 1;
+ unsigned int DISCARD_26 : 1;
+ unsigned int END_RCVD_25 : 1;
+ unsigned int DISCARD_25 : 1;
+ unsigned int END_RCVD_24 : 1;
+ unsigned int DISCARD_24 : 1;
+ unsigned int END_RCVD_23 : 1;
+ unsigned int DISCARD_23 : 1;
+ unsigned int END_RCVD_22 : 1;
+ unsigned int DISCARD_22 : 1;
+ unsigned int END_RCVD_21 : 1;
+ unsigned int DISCARD_21 : 1;
+ unsigned int END_RCVD_20 : 1;
+ unsigned int DISCARD_20 : 1;
+ unsigned int END_RCVD_19 : 1;
+ unsigned int DISCARD_19 : 1;
+ unsigned int END_RCVD_18 : 1;
+ unsigned int DISCARD_18 : 1;
+ unsigned int END_RCVD_17 : 1;
+ unsigned int DISCARD_17 : 1;
+ unsigned int END_RCVD_16 : 1;
+ unsigned int DISCARD_16 : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_NV_FLAGS_2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DISCARD_32 : 1;
+ unsigned int END_RCVD_32 : 1;
+ unsigned int DISCARD_33 : 1;
+ unsigned int END_RCVD_33 : 1;
+ unsigned int DISCARD_34 : 1;
+ unsigned int END_RCVD_34 : 1;
+ unsigned int DISCARD_35 : 1;
+ unsigned int END_RCVD_35 : 1;
+ unsigned int DISCARD_36 : 1;
+ unsigned int END_RCVD_36 : 1;
+ unsigned int DISCARD_37 : 1;
+ unsigned int END_RCVD_37 : 1;
+ unsigned int DISCARD_38 : 1;
+ unsigned int END_RCVD_38 : 1;
+ unsigned int DISCARD_39 : 1;
+ unsigned int END_RCVD_39 : 1;
+ unsigned int DISCARD_40 : 1;
+ unsigned int END_RCVD_40 : 1;
+ unsigned int DISCARD_41 : 1;
+ unsigned int END_RCVD_41 : 1;
+ unsigned int DISCARD_42 : 1;
+ unsigned int END_RCVD_42 : 1;
+ unsigned int DISCARD_43 : 1;
+ unsigned int END_RCVD_43 : 1;
+ unsigned int DISCARD_44 : 1;
+ unsigned int END_RCVD_44 : 1;
+ unsigned int DISCARD_45 : 1;
+ unsigned int END_RCVD_45 : 1;
+ unsigned int DISCARD_46 : 1;
+ unsigned int END_RCVD_46 : 1;
+ unsigned int DISCARD_47 : 1;
+ unsigned int END_RCVD_47 : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int END_RCVD_47 : 1;
+ unsigned int DISCARD_47 : 1;
+ unsigned int END_RCVD_46 : 1;
+ unsigned int DISCARD_46 : 1;
+ unsigned int END_RCVD_45 : 1;
+ unsigned int DISCARD_45 : 1;
+ unsigned int END_RCVD_44 : 1;
+ unsigned int DISCARD_44 : 1;
+ unsigned int END_RCVD_43 : 1;
+ unsigned int DISCARD_43 : 1;
+ unsigned int END_RCVD_42 : 1;
+ unsigned int DISCARD_42 : 1;
+ unsigned int END_RCVD_41 : 1;
+ unsigned int DISCARD_41 : 1;
+ unsigned int END_RCVD_40 : 1;
+ unsigned int DISCARD_40 : 1;
+ unsigned int END_RCVD_39 : 1;
+ unsigned int DISCARD_39 : 1;
+ unsigned int END_RCVD_38 : 1;
+ unsigned int DISCARD_38 : 1;
+ unsigned int END_RCVD_37 : 1;
+ unsigned int DISCARD_37 : 1;
+ unsigned int END_RCVD_36 : 1;
+ unsigned int DISCARD_36 : 1;
+ unsigned int END_RCVD_35 : 1;
+ unsigned int DISCARD_35 : 1;
+ unsigned int END_RCVD_34 : 1;
+ unsigned int DISCARD_34 : 1;
+ unsigned int END_RCVD_33 : 1;
+ unsigned int DISCARD_33 : 1;
+ unsigned int END_RCVD_32 : 1;
+ unsigned int DISCARD_32 : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_NV_FLAGS_3 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DISCARD_48 : 1;
+ unsigned int END_RCVD_48 : 1;
+ unsigned int DISCARD_49 : 1;
+ unsigned int END_RCVD_49 : 1;
+ unsigned int DISCARD_50 : 1;
+ unsigned int END_RCVD_50 : 1;
+ unsigned int DISCARD_51 : 1;
+ unsigned int END_RCVD_51 : 1;
+ unsigned int DISCARD_52 : 1;
+ unsigned int END_RCVD_52 : 1;
+ unsigned int DISCARD_53 : 1;
+ unsigned int END_RCVD_53 : 1;
+ unsigned int DISCARD_54 : 1;
+ unsigned int END_RCVD_54 : 1;
+ unsigned int DISCARD_55 : 1;
+ unsigned int END_RCVD_55 : 1;
+ unsigned int DISCARD_56 : 1;
+ unsigned int END_RCVD_56 : 1;
+ unsigned int DISCARD_57 : 1;
+ unsigned int END_RCVD_57 : 1;
+ unsigned int DISCARD_58 : 1;
+ unsigned int END_RCVD_58 : 1;
+ unsigned int DISCARD_59 : 1;
+ unsigned int END_RCVD_59 : 1;
+ unsigned int DISCARD_60 : 1;
+ unsigned int END_RCVD_60 : 1;
+ unsigned int DISCARD_61 : 1;
+ unsigned int END_RCVD_61 : 1;
+ unsigned int DISCARD_62 : 1;
+ unsigned int END_RCVD_62 : 1;
+ unsigned int DISCARD_63 : 1;
+ unsigned int END_RCVD_63 : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int END_RCVD_63 : 1;
+ unsigned int DISCARD_63 : 1;
+ unsigned int END_RCVD_62 : 1;
+ unsigned int DISCARD_62 : 1;
+ unsigned int END_RCVD_61 : 1;
+ unsigned int DISCARD_61 : 1;
+ unsigned int END_RCVD_60 : 1;
+ unsigned int DISCARD_60 : 1;
+ unsigned int END_RCVD_59 : 1;
+ unsigned int DISCARD_59 : 1;
+ unsigned int END_RCVD_58 : 1;
+ unsigned int DISCARD_58 : 1;
+ unsigned int END_RCVD_57 : 1;
+ unsigned int DISCARD_57 : 1;
+ unsigned int END_RCVD_56 : 1;
+ unsigned int DISCARD_56 : 1;
+ unsigned int END_RCVD_55 : 1;
+ unsigned int DISCARD_55 : 1;
+ unsigned int END_RCVD_54 : 1;
+ unsigned int DISCARD_54 : 1;
+ unsigned int END_RCVD_53 : 1;
+ unsigned int DISCARD_53 : 1;
+ unsigned int END_RCVD_52 : 1;
+ unsigned int DISCARD_52 : 1;
+ unsigned int END_RCVD_51 : 1;
+ unsigned int DISCARD_51 : 1;
+ unsigned int END_RCVD_50 : 1;
+ unsigned int DISCARD_50 : 1;
+ unsigned int END_RCVD_49 : 1;
+ unsigned int DISCARD_49 : 1;
+ unsigned int END_RCVD_48 : 1;
+ unsigned int DISCARD_48 : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_STATE_DEBUG_INDEX {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int STATE_DEBUG_INDEX : 5;
+ unsigned int : 27;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 27;
+ unsigned int STATE_DEBUG_INDEX : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_STATE_DEBUG_DATA {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int STATE_DEBUG_DATA : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int STATE_DEBUG_DATA : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_PROG_COUNTER {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int COUNTER : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int COUNTER : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union CP_STAT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MIU_WR_BUSY : 1;
+ unsigned int MIU_RD_REQ_BUSY : 1;
+ unsigned int MIU_RD_RETURN_BUSY : 1;
+ unsigned int RBIU_BUSY : 1;
+ unsigned int RCIU_BUSY : 1;
+ unsigned int CSF_RING_BUSY : 1;
+ unsigned int CSF_INDIRECTS_BUSY : 1;
+ unsigned int CSF_INDIRECT2_BUSY : 1;
+ unsigned int : 1;
+ unsigned int CSF_ST_BUSY : 1;
+ unsigned int CSF_BUSY : 1;
+ unsigned int RING_QUEUE_BUSY : 1;
+ unsigned int INDIRECTS_QUEUE_BUSY : 1;
+ unsigned int INDIRECT2_QUEUE_BUSY : 1;
+ unsigned int : 2;
+ unsigned int ST_QUEUE_BUSY : 1;
+ unsigned int PFP_BUSY : 1;
+ unsigned int MEQ_RING_BUSY : 1;
+ unsigned int MEQ_INDIRECTS_BUSY : 1;
+ unsigned int MEQ_INDIRECT2_BUSY : 1;
+ unsigned int MIU_WC_STALL : 1;
+ unsigned int CP_NRT_BUSY : 1;
+ unsigned int _3D_BUSY : 1;
+ unsigned int : 2;
+ unsigned int ME_BUSY : 1;
+ unsigned int : 2;
+ unsigned int ME_WC_BUSY : 1;
+ unsigned int MIU_WC_TRACK_FIFO_EMPTY : 1;
+ unsigned int CP_BUSY : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int CP_BUSY : 1;
+ unsigned int MIU_WC_TRACK_FIFO_EMPTY : 1;
+ unsigned int ME_WC_BUSY : 1;
+ unsigned int : 2;
+ unsigned int ME_BUSY : 1;
+ unsigned int : 2;
+ unsigned int _3D_BUSY : 1;
+ unsigned int CP_NRT_BUSY : 1;
+ unsigned int MIU_WC_STALL : 1;
+ unsigned int MEQ_INDIRECT2_BUSY : 1;
+ unsigned int MEQ_INDIRECTS_BUSY : 1;
+ unsigned int MEQ_RING_BUSY : 1;
+ unsigned int PFP_BUSY : 1;
+ unsigned int ST_QUEUE_BUSY : 1;
+ unsigned int : 2;
+ unsigned int INDIRECT2_QUEUE_BUSY : 1;
+ unsigned int INDIRECTS_QUEUE_BUSY : 1;
+ unsigned int RING_QUEUE_BUSY : 1;
+ unsigned int CSF_BUSY : 1;
+ unsigned int CSF_ST_BUSY : 1;
+ unsigned int : 1;
+ unsigned int CSF_INDIRECT2_BUSY : 1;
+ unsigned int CSF_INDIRECTS_BUSY : 1;
+ unsigned int CSF_RING_BUSY : 1;
+ unsigned int RCIU_BUSY : 1;
+ unsigned int RBIU_BUSY : 1;
+ unsigned int MIU_RD_RETURN_BUSY : 1;
+ unsigned int MIU_RD_REQ_BUSY : 1;
+ unsigned int MIU_WR_BUSY : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union BIOS_0_SCRATCH {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIOS_SCRATCH : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIOS_SCRATCH : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union BIOS_1_SCRATCH {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIOS_SCRATCH : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIOS_SCRATCH : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union BIOS_2_SCRATCH {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIOS_SCRATCH : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIOS_SCRATCH : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union BIOS_3_SCRATCH {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIOS_SCRATCH : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIOS_SCRATCH : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union BIOS_4_SCRATCH {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIOS_SCRATCH : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIOS_SCRATCH : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union BIOS_5_SCRATCH {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIOS_SCRATCH : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIOS_SCRATCH : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union BIOS_6_SCRATCH {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIOS_SCRATCH : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIOS_SCRATCH : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union BIOS_7_SCRATCH {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIOS_SCRATCH : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIOS_SCRATCH : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union BIOS_8_SCRATCH {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIOS_SCRATCH : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIOS_SCRATCH : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union BIOS_9_SCRATCH {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIOS_SCRATCH : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIOS_SCRATCH : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union BIOS_10_SCRATCH {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIOS_SCRATCH : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIOS_SCRATCH : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union BIOS_11_SCRATCH {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIOS_SCRATCH : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIOS_SCRATCH : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union BIOS_12_SCRATCH {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIOS_SCRATCH : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIOS_SCRATCH : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union BIOS_13_SCRATCH {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIOS_SCRATCH : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIOS_SCRATCH : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union BIOS_14_SCRATCH {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIOS_SCRATCH : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIOS_SCRATCH : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union BIOS_15_SCRATCH {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BIOS_SCRATCH : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BIOS_SCRATCH : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union COHER_SIZE_PM4 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SIZE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int SIZE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union COHER_BASE_PM4 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BASE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BASE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union COHER_STATUS_PM4 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MATCHING_CONTEXTS : 8;
+ unsigned int RB_COPY_DEST_BASE_ENA : 1;
+ unsigned int DEST_BASE_0_ENA : 1;
+ unsigned int DEST_BASE_1_ENA : 1;
+ unsigned int DEST_BASE_2_ENA : 1;
+ unsigned int DEST_BASE_3_ENA : 1;
+ unsigned int DEST_BASE_4_ENA : 1;
+ unsigned int DEST_BASE_5_ENA : 1;
+ unsigned int DEST_BASE_6_ENA : 1;
+ unsigned int DEST_BASE_7_ENA : 1;
+ unsigned int RB_COLOR_INFO_ENA : 1;
+ unsigned int : 7;
+ unsigned int TC_ACTION_ENA : 1;
+ unsigned int : 5;
+ unsigned int STATUS : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int STATUS : 1;
+ unsigned int : 5;
+ unsigned int TC_ACTION_ENA : 1;
+ unsigned int : 7;
+ unsigned int RB_COLOR_INFO_ENA : 1;
+ unsigned int DEST_BASE_7_ENA : 1;
+ unsigned int DEST_BASE_6_ENA : 1;
+ unsigned int DEST_BASE_5_ENA : 1;
+ unsigned int DEST_BASE_4_ENA : 1;
+ unsigned int DEST_BASE_3_ENA : 1;
+ unsigned int DEST_BASE_2_ENA : 1;
+ unsigned int DEST_BASE_1_ENA : 1;
+ unsigned int DEST_BASE_0_ENA : 1;
+ unsigned int RB_COPY_DEST_BASE_ENA : 1;
+ unsigned int MATCHING_CONTEXTS : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union COHER_SIZE_HOST {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SIZE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int SIZE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union COHER_BASE_HOST {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BASE : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int BASE : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union COHER_STATUS_HOST {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int MATCHING_CONTEXTS : 8;
+ unsigned int RB_COPY_DEST_BASE_ENA : 1;
+ unsigned int DEST_BASE_0_ENA : 1;
+ unsigned int DEST_BASE_1_ENA : 1;
+ unsigned int DEST_BASE_2_ENA : 1;
+ unsigned int DEST_BASE_3_ENA : 1;
+ unsigned int DEST_BASE_4_ENA : 1;
+ unsigned int DEST_BASE_5_ENA : 1;
+ unsigned int DEST_BASE_6_ENA : 1;
+ unsigned int DEST_BASE_7_ENA : 1;
+ unsigned int RB_COLOR_INFO_ENA : 1;
+ unsigned int : 7;
+ unsigned int TC_ACTION_ENA : 1;
+ unsigned int : 5;
+ unsigned int STATUS : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int STATUS : 1;
+ unsigned int : 5;
+ unsigned int TC_ACTION_ENA : 1;
+ unsigned int : 7;
+ unsigned int RB_COLOR_INFO_ENA : 1;
+ unsigned int DEST_BASE_7_ENA : 1;
+ unsigned int DEST_BASE_6_ENA : 1;
+ unsigned int DEST_BASE_5_ENA : 1;
+ unsigned int DEST_BASE_4_ENA : 1;
+ unsigned int DEST_BASE_3_ENA : 1;
+ unsigned int DEST_BASE_2_ENA : 1;
+ unsigned int DEST_BASE_1_ENA : 1;
+ unsigned int DEST_BASE_0_ENA : 1;
+ unsigned int RB_COPY_DEST_BASE_ENA : 1;
+ unsigned int MATCHING_CONTEXTS : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union COHER_DEST_BASE_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 12;
+ unsigned int DEST_BASE_0 : 20;
+#else /* !defined(qLittleEndian) */
+ unsigned int DEST_BASE_0 : 20;
+ unsigned int : 12;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union COHER_DEST_BASE_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 12;
+ unsigned int DEST_BASE_1 : 20;
+#else /* !defined(qLittleEndian) */
+ unsigned int DEST_BASE_1 : 20;
+ unsigned int : 12;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union COHER_DEST_BASE_2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 12;
+ unsigned int DEST_BASE_2 : 20;
+#else /* !defined(qLittleEndian) */
+ unsigned int DEST_BASE_2 : 20;
+ unsigned int : 12;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union COHER_DEST_BASE_3 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 12;
+ unsigned int DEST_BASE_3 : 20;
+#else /* !defined(qLittleEndian) */
+ unsigned int DEST_BASE_3 : 20;
+ unsigned int : 12;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union COHER_DEST_BASE_4 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 12;
+ unsigned int DEST_BASE_4 : 20;
+#else /* !defined(qLittleEndian) */
+ unsigned int DEST_BASE_4 : 20;
+ unsigned int : 12;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union COHER_DEST_BASE_5 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 12;
+ unsigned int DEST_BASE_5 : 20;
+#else /* !defined(qLittleEndian) */
+ unsigned int DEST_BASE_5 : 20;
+ unsigned int : 12;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union COHER_DEST_BASE_6 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 12;
+ unsigned int DEST_BASE_6 : 20;
+#else /* !defined(qLittleEndian) */
+ unsigned int DEST_BASE_6 : 20;
+ unsigned int : 12;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union COHER_DEST_BASE_7 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 12;
+ unsigned int DEST_BASE_7 : 20;
+#else /* !defined(qLittleEndian) */
+ unsigned int DEST_BASE_7 : 20;
+ unsigned int : 12;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_SURFACE_INFO {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SURFACE_PITCH : 14;
+ unsigned int MSAA_SAMPLES : 2;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int MSAA_SAMPLES : 2;
+ unsigned int SURFACE_PITCH : 14;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_COLOR_INFO {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int COLOR_FORMAT : 4;
+ unsigned int COLOR_ROUND_MODE : 2;
+ unsigned int COLOR_LINEAR : 1;
+ unsigned int COLOR_ENDIAN : 2;
+ unsigned int COLOR_SWAP : 2;
+ unsigned int : 1;
+ unsigned int COLOR_BASE : 20;
+#else /* !defined(qLittleEndian) */
+ unsigned int COLOR_BASE : 20;
+ unsigned int : 1;
+ unsigned int COLOR_SWAP : 2;
+ unsigned int COLOR_ENDIAN : 2;
+ unsigned int COLOR_LINEAR : 1;
+ unsigned int COLOR_ROUND_MODE : 2;
+ unsigned int COLOR_FORMAT : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_DEPTH_INFO {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DEPTH_FORMAT : 1;
+ unsigned int : 11;
+ unsigned int DEPTH_BASE : 20;
+#else /* !defined(qLittleEndian) */
+ unsigned int DEPTH_BASE : 20;
+ unsigned int : 11;
+ unsigned int DEPTH_FORMAT : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_STENCILREFMASK {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int STENCILREF : 8;
+ unsigned int STENCILMASK : 8;
+ unsigned int STENCILWRITEMASK : 8;
+ unsigned int RESERVED0 : 1;
+ unsigned int RESERVED1 : 1;
+ unsigned int : 6;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 6;
+ unsigned int RESERVED1 : 1;
+ unsigned int RESERVED0 : 1;
+ unsigned int STENCILWRITEMASK : 8;
+ unsigned int STENCILMASK : 8;
+ unsigned int STENCILREF : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_ALPHA_REF {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ALPHA_REF : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int ALPHA_REF : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_COLOR_MASK {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int WRITE_RED : 1;
+ unsigned int WRITE_GREEN : 1;
+ unsigned int WRITE_BLUE : 1;
+ unsigned int WRITE_ALPHA : 1;
+ unsigned int RESERVED2 : 1;
+ unsigned int RESERVED3 : 1;
+ unsigned int : 26;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 26;
+ unsigned int RESERVED3 : 1;
+ unsigned int RESERVED2 : 1;
+ unsigned int WRITE_ALPHA : 1;
+ unsigned int WRITE_BLUE : 1;
+ unsigned int WRITE_GREEN : 1;
+ unsigned int WRITE_RED : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_BLEND_RED {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BLEND_RED : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int BLEND_RED : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_BLEND_GREEN {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BLEND_GREEN : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int BLEND_GREEN : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_BLEND_BLUE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BLEND_BLUE : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int BLEND_BLUE : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_BLEND_ALPHA {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int BLEND_ALPHA : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int BLEND_ALPHA : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_FOG_COLOR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int FOG_RED : 8;
+ unsigned int FOG_GREEN : 8;
+ unsigned int FOG_BLUE : 8;
+ unsigned int : 8;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 8;
+ unsigned int FOG_BLUE : 8;
+ unsigned int FOG_GREEN : 8;
+ unsigned int FOG_RED : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_STENCILREFMASK_BF {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int STENCILREF_BF : 8;
+ unsigned int STENCILMASK_BF : 8;
+ unsigned int STENCILWRITEMASK_BF : 8;
+ unsigned int RESERVED4 : 1;
+ unsigned int RESERVED5 : 1;
+ unsigned int : 6;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 6;
+ unsigned int RESERVED5 : 1;
+ unsigned int RESERVED4 : 1;
+ unsigned int STENCILWRITEMASK_BF : 8;
+ unsigned int STENCILMASK_BF : 8;
+ unsigned int STENCILREF_BF : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_DEPTHCONTROL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int STENCIL_ENABLE : 1;
+ unsigned int Z_ENABLE : 1;
+ unsigned int Z_WRITE_ENABLE : 1;
+ unsigned int EARLY_Z_ENABLE : 1;
+ unsigned int ZFUNC : 3;
+ unsigned int BACKFACE_ENABLE : 1;
+ unsigned int STENCILFUNC : 3;
+ unsigned int STENCILFAIL : 3;
+ unsigned int STENCILZPASS : 3;
+ unsigned int STENCILZFAIL : 3;
+ unsigned int STENCILFUNC_BF : 3;
+ unsigned int STENCILFAIL_BF : 3;
+ unsigned int STENCILZPASS_BF : 3;
+ unsigned int STENCILZFAIL_BF : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int STENCILZFAIL_BF : 3;
+ unsigned int STENCILZPASS_BF : 3;
+ unsigned int STENCILFAIL_BF : 3;
+ unsigned int STENCILFUNC_BF : 3;
+ unsigned int STENCILZFAIL : 3;
+ unsigned int STENCILZPASS : 3;
+ unsigned int STENCILFAIL : 3;
+ unsigned int STENCILFUNC : 3;
+ unsigned int BACKFACE_ENABLE : 1;
+ unsigned int ZFUNC : 3;
+ unsigned int EARLY_Z_ENABLE : 1;
+ unsigned int Z_WRITE_ENABLE : 1;
+ unsigned int Z_ENABLE : 1;
+ unsigned int STENCIL_ENABLE : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_BLENDCONTROL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int COLOR_SRCBLEND : 5;
+ unsigned int COLOR_COMB_FCN : 3;
+ unsigned int COLOR_DESTBLEND : 5;
+ unsigned int : 3;
+ unsigned int ALPHA_SRCBLEND : 5;
+ unsigned int ALPHA_COMB_FCN : 3;
+ unsigned int ALPHA_DESTBLEND : 5;
+ unsigned int BLEND_FORCE_ENABLE : 1;
+ unsigned int BLEND_FORCE : 1;
+ unsigned int : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 1;
+ unsigned int BLEND_FORCE : 1;
+ unsigned int BLEND_FORCE_ENABLE : 1;
+ unsigned int ALPHA_DESTBLEND : 5;
+ unsigned int ALPHA_COMB_FCN : 3;
+ unsigned int ALPHA_SRCBLEND : 5;
+ unsigned int : 3;
+ unsigned int COLOR_DESTBLEND : 5;
+ unsigned int COLOR_COMB_FCN : 3;
+ unsigned int COLOR_SRCBLEND : 5;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_COLORCONTROL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ALPHA_FUNC : 3;
+ unsigned int ALPHA_TEST_ENABLE : 1;
+ unsigned int ALPHA_TO_MASK_ENABLE : 1;
+ unsigned int BLEND_DISABLE : 1;
+ unsigned int FOG_ENABLE : 1;
+ unsigned int VS_EXPORTS_FOG : 1;
+ unsigned int ROP_CODE : 4;
+ unsigned int DITHER_MODE : 2;
+ unsigned int DITHER_TYPE : 2;
+ unsigned int PIXEL_FOG : 1;
+ unsigned int : 7;
+ unsigned int ALPHA_TO_MASK_OFFSET0 : 2;
+ unsigned int ALPHA_TO_MASK_OFFSET1 : 2;
+ unsigned int ALPHA_TO_MASK_OFFSET2 : 2;
+ unsigned int ALPHA_TO_MASK_OFFSET3 : 2;
+#else /* !defined(qLittleEndian) */
+ unsigned int ALPHA_TO_MASK_OFFSET3 : 2;
+ unsigned int ALPHA_TO_MASK_OFFSET2 : 2;
+ unsigned int ALPHA_TO_MASK_OFFSET1 : 2;
+ unsigned int ALPHA_TO_MASK_OFFSET0 : 2;
+ unsigned int : 7;
+ unsigned int PIXEL_FOG : 1;
+ unsigned int DITHER_TYPE : 2;
+ unsigned int DITHER_MODE : 2;
+ unsigned int ROP_CODE : 4;
+ unsigned int VS_EXPORTS_FOG : 1;
+ unsigned int FOG_ENABLE : 1;
+ unsigned int BLEND_DISABLE : 1;
+ unsigned int ALPHA_TO_MASK_ENABLE : 1;
+ unsigned int ALPHA_TEST_ENABLE : 1;
+ unsigned int ALPHA_FUNC : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_MODECONTROL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int EDRAM_MODE : 3;
+ unsigned int : 29;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 29;
+ unsigned int EDRAM_MODE : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_COLOR_DEST_MASK {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int COLOR_DEST_MASK : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int COLOR_DEST_MASK : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_COPY_CONTROL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int COPY_SAMPLE_SELECT : 3;
+ unsigned int DEPTH_CLEAR_ENABLE : 1;
+ unsigned int CLEAR_MASK : 4;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int CLEAR_MASK : 4;
+ unsigned int DEPTH_CLEAR_ENABLE : 1;
+ unsigned int COPY_SAMPLE_SELECT : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_COPY_DEST_BASE {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int : 12;
+ unsigned int COPY_DEST_BASE : 20;
+#else /* !defined(qLittleEndian) */
+ unsigned int COPY_DEST_BASE : 20;
+ unsigned int : 12;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_COPY_DEST_PITCH {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int COPY_DEST_PITCH : 9;
+ unsigned int : 23;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 23;
+ unsigned int COPY_DEST_PITCH : 9;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_COPY_DEST_INFO {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int COPY_DEST_ENDIAN : 3;
+ unsigned int COPY_DEST_LINEAR : 1;
+ unsigned int COPY_DEST_FORMAT : 4;
+ unsigned int COPY_DEST_SWAP : 2;
+ unsigned int COPY_DEST_DITHER_MODE : 2;
+ unsigned int COPY_DEST_DITHER_TYPE : 2;
+ unsigned int COPY_MASK_WRITE_RED : 1;
+ unsigned int COPY_MASK_WRITE_GREEN : 1;
+ unsigned int COPY_MASK_WRITE_BLUE : 1;
+ unsigned int COPY_MASK_WRITE_ALPHA : 1;
+ unsigned int : 14;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 14;
+ unsigned int COPY_MASK_WRITE_ALPHA : 1;
+ unsigned int COPY_MASK_WRITE_BLUE : 1;
+ unsigned int COPY_MASK_WRITE_GREEN : 1;
+ unsigned int COPY_MASK_WRITE_RED : 1;
+ unsigned int COPY_DEST_DITHER_TYPE : 2;
+ unsigned int COPY_DEST_DITHER_MODE : 2;
+ unsigned int COPY_DEST_SWAP : 2;
+ unsigned int COPY_DEST_FORMAT : 4;
+ unsigned int COPY_DEST_LINEAR : 1;
+ unsigned int COPY_DEST_ENDIAN : 3;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_COPY_DEST_PIXEL_OFFSET {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int OFFSET_X : 13;
+ unsigned int OFFSET_Y : 13;
+ unsigned int : 6;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 6;
+ unsigned int OFFSET_Y : 13;
+ unsigned int OFFSET_X : 13;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_DEPTH_CLEAR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DEPTH_CLEAR : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int DEPTH_CLEAR : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_SAMPLE_COUNT_CTL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RESET_SAMPLE_COUNT : 1;
+ unsigned int COPY_SAMPLE_COUNT : 1;
+ unsigned int : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 30;
+ unsigned int COPY_SAMPLE_COUNT : 1;
+ unsigned int RESET_SAMPLE_COUNT : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_SAMPLE_COUNT_ADDR {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SAMPLE_COUNT_ADDR : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int SAMPLE_COUNT_ADDR : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_BC_CONTROL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ACCUM_LINEAR_MODE_ENABLE : 1;
+ unsigned int ACCUM_TIMEOUT_SELECT : 2;
+ unsigned int DISABLE_EDRAM_CAM : 1;
+ unsigned int DISABLE_EZ_FAST_CONTEXT_SWITCH : 1;
+ unsigned int DISABLE_EZ_NULL_ZCMD_DROP : 1;
+ unsigned int DISABLE_LZ_NULL_ZCMD_DROP : 1;
+ unsigned int ENABLE_AZ_THROTTLE : 1;
+ unsigned int AZ_THROTTLE_COUNT : 5;
+ unsigned int : 1;
+ unsigned int ENABLE_CRC_UPDATE : 1;
+ unsigned int CRC_MODE : 1;
+ unsigned int DISABLE_SAMPLE_COUNTERS : 1;
+ unsigned int DISABLE_ACCUM : 1;
+ unsigned int ACCUM_ALLOC_MASK : 4;
+ unsigned int LINEAR_PERFORMANCE_ENABLE : 1;
+ unsigned int ACCUM_DATA_FIFO_LIMIT : 4;
+ unsigned int MEM_EXPORT_TIMEOUT_SELECT : 2;
+ unsigned int MEM_EXPORT_LINEAR_MODE_ENABLE : 1;
+ unsigned int CRC_SYSTEM : 1;
+ unsigned int RESERVED6 : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int RESERVED6 : 1;
+ unsigned int CRC_SYSTEM : 1;
+ unsigned int MEM_EXPORT_LINEAR_MODE_ENABLE : 1;
+ unsigned int MEM_EXPORT_TIMEOUT_SELECT : 2;
+ unsigned int ACCUM_DATA_FIFO_LIMIT : 4;
+ unsigned int LINEAR_PERFORMANCE_ENABLE : 1;
+ unsigned int ACCUM_ALLOC_MASK : 4;
+ unsigned int DISABLE_ACCUM : 1;
+ unsigned int DISABLE_SAMPLE_COUNTERS : 1;
+ unsigned int CRC_MODE : 1;
+ unsigned int ENABLE_CRC_UPDATE : 1;
+ unsigned int : 1;
+ unsigned int AZ_THROTTLE_COUNT : 5;
+ unsigned int ENABLE_AZ_THROTTLE : 1;
+ unsigned int DISABLE_LZ_NULL_ZCMD_DROP : 1;
+ unsigned int DISABLE_EZ_NULL_ZCMD_DROP : 1;
+ unsigned int DISABLE_EZ_FAST_CONTEXT_SWITCH : 1;
+ unsigned int DISABLE_EDRAM_CAM : 1;
+ unsigned int ACCUM_TIMEOUT_SELECT : 2;
+ unsigned int ACCUM_LINEAR_MODE_ENABLE : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_EDRAM_INFO {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int EDRAM_SIZE : 4;
+ unsigned int EDRAM_MAPPING_MODE : 2;
+ unsigned int : 8;
+ unsigned int EDRAM_RANGE : 18;
+#else /* !defined(qLittleEndian) */
+ unsigned int EDRAM_RANGE : 18;
+ unsigned int : 8;
+ unsigned int EDRAM_MAPPING_MODE : 2;
+ unsigned int EDRAM_SIZE : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_CRC_RD_PORT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CRC_DATA : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int CRC_DATA : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_CRC_CONTROL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CRC_RD_ADVANCE : 1;
+ unsigned int : 31;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 31;
+ unsigned int CRC_RD_ADVANCE : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_CRC_MASK {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int CRC_MASK : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int CRC_MASK : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_PERFCOUNTER0_SELECT {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_SEL : 8;
+ unsigned int : 24;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 24;
+ unsigned int PERF_SEL : 8;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_PERFCOUNTER0_LOW {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int PERF_COUNT : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_PERFCOUNTER0_HI {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int PERF_COUNT : 16;
+ unsigned int : 16;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 16;
+ unsigned int PERF_COUNT : 16;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_TOTAL_SAMPLES {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TOTAL_SAMPLES : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int TOTAL_SAMPLES : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_ZPASS_SAMPLES {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ZPASS_SAMPLES : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int ZPASS_SAMPLES : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_ZFAIL_SAMPLES {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ZFAIL_SAMPLES : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int ZFAIL_SAMPLES : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_SFAIL_SAMPLES {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int SFAIL_SAMPLES : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int SFAIL_SAMPLES : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_DEBUG_0 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RDREQ_CTL_Z1_PRE_FULL : 1;
+ unsigned int RDREQ_CTL_Z0_PRE_FULL : 1;
+ unsigned int RDREQ_CTL_C1_PRE_FULL : 1;
+ unsigned int RDREQ_CTL_C0_PRE_FULL : 1;
+ unsigned int RDREQ_E1_ORDERING_FULL : 1;
+ unsigned int RDREQ_E0_ORDERING_FULL : 1;
+ unsigned int RDREQ_Z1_FULL : 1;
+ unsigned int RDREQ_Z0_FULL : 1;
+ unsigned int RDREQ_C1_FULL : 1;
+ unsigned int RDREQ_C0_FULL : 1;
+ unsigned int WRREQ_E1_MACRO_HI_FULL : 1;
+ unsigned int WRREQ_E1_MACRO_LO_FULL : 1;
+ unsigned int WRREQ_E0_MACRO_HI_FULL : 1;
+ unsigned int WRREQ_E0_MACRO_LO_FULL : 1;
+ unsigned int WRREQ_C_WE_HI_FULL : 1;
+ unsigned int WRREQ_C_WE_LO_FULL : 1;
+ unsigned int WRREQ_Z1_FULL : 1;
+ unsigned int WRREQ_Z0_FULL : 1;
+ unsigned int WRREQ_C1_FULL : 1;
+ unsigned int WRREQ_C0_FULL : 1;
+ unsigned int CMDFIFO_Z1_HOLD_FULL : 1;
+ unsigned int CMDFIFO_Z0_HOLD_FULL : 1;
+ unsigned int CMDFIFO_C1_HOLD_FULL : 1;
+ unsigned int CMDFIFO_C0_HOLD_FULL : 1;
+ unsigned int CMDFIFO_Z_ORDERING_FULL : 1;
+ unsigned int CMDFIFO_C_ORDERING_FULL : 1;
+ unsigned int C_SX_LAT_FULL : 1;
+ unsigned int C_SX_CMD_FULL : 1;
+ unsigned int C_EZ_TILE_FULL : 1;
+ unsigned int C_REQ_FULL : 1;
+ unsigned int C_MASK_FULL : 1;
+ unsigned int EZ_INFSAMP_FULL : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int EZ_INFSAMP_FULL : 1;
+ unsigned int C_MASK_FULL : 1;
+ unsigned int C_REQ_FULL : 1;
+ unsigned int C_EZ_TILE_FULL : 1;
+ unsigned int C_SX_CMD_FULL : 1;
+ unsigned int C_SX_LAT_FULL : 1;
+ unsigned int CMDFIFO_C_ORDERING_FULL : 1;
+ unsigned int CMDFIFO_Z_ORDERING_FULL : 1;
+ unsigned int CMDFIFO_C0_HOLD_FULL : 1;
+ unsigned int CMDFIFO_C1_HOLD_FULL : 1;
+ unsigned int CMDFIFO_Z0_HOLD_FULL : 1;
+ unsigned int CMDFIFO_Z1_HOLD_FULL : 1;
+ unsigned int WRREQ_C0_FULL : 1;
+ unsigned int WRREQ_C1_FULL : 1;
+ unsigned int WRREQ_Z0_FULL : 1;
+ unsigned int WRREQ_Z1_FULL : 1;
+ unsigned int WRREQ_C_WE_LO_FULL : 1;
+ unsigned int WRREQ_C_WE_HI_FULL : 1;
+ unsigned int WRREQ_E0_MACRO_LO_FULL : 1;
+ unsigned int WRREQ_E0_MACRO_HI_FULL : 1;
+ unsigned int WRREQ_E1_MACRO_LO_FULL : 1;
+ unsigned int WRREQ_E1_MACRO_HI_FULL : 1;
+ unsigned int RDREQ_C0_FULL : 1;
+ unsigned int RDREQ_C1_FULL : 1;
+ unsigned int RDREQ_Z0_FULL : 1;
+ unsigned int RDREQ_Z1_FULL : 1;
+ unsigned int RDREQ_E0_ORDERING_FULL : 1;
+ unsigned int RDREQ_E1_ORDERING_FULL : 1;
+ unsigned int RDREQ_CTL_C0_PRE_FULL : 1;
+ unsigned int RDREQ_CTL_C1_PRE_FULL : 1;
+ unsigned int RDREQ_CTL_Z0_PRE_FULL : 1;
+ unsigned int RDREQ_CTL_Z1_PRE_FULL : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_DEBUG_1 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RDREQ_Z1_CMD_EMPTY : 1;
+ unsigned int RDREQ_Z0_CMD_EMPTY : 1;
+ unsigned int RDREQ_C1_CMD_EMPTY : 1;
+ unsigned int RDREQ_C0_CMD_EMPTY : 1;
+ unsigned int RDREQ_E1_ORDERING_EMPTY : 1;
+ unsigned int RDREQ_E0_ORDERING_EMPTY : 1;
+ unsigned int RDREQ_Z1_EMPTY : 1;
+ unsigned int RDREQ_Z0_EMPTY : 1;
+ unsigned int RDREQ_C1_EMPTY : 1;
+ unsigned int RDREQ_C0_EMPTY : 1;
+ unsigned int WRREQ_E1_MACRO_HI_EMPTY : 1;
+ unsigned int WRREQ_E1_MACRO_LO_EMPTY : 1;
+ unsigned int WRREQ_E0_MACRO_HI_EMPTY : 1;
+ unsigned int WRREQ_E0_MACRO_LO_EMPTY : 1;
+ unsigned int WRREQ_C_WE_HI_EMPTY : 1;
+ unsigned int WRREQ_C_WE_LO_EMPTY : 1;
+ unsigned int WRREQ_Z1_EMPTY : 1;
+ unsigned int WRREQ_Z0_EMPTY : 1;
+ unsigned int WRREQ_C1_PRE_EMPTY : 1;
+ unsigned int WRREQ_C0_PRE_EMPTY : 1;
+ unsigned int CMDFIFO_Z1_HOLD_EMPTY : 1;
+ unsigned int CMDFIFO_Z0_HOLD_EMPTY : 1;
+ unsigned int CMDFIFO_C1_HOLD_EMPTY : 1;
+ unsigned int CMDFIFO_C0_HOLD_EMPTY : 1;
+ unsigned int CMDFIFO_Z_ORDERING_EMPTY : 1;
+ unsigned int CMDFIFO_C_ORDERING_EMPTY : 1;
+ unsigned int C_SX_LAT_EMPTY : 1;
+ unsigned int C_SX_CMD_EMPTY : 1;
+ unsigned int C_EZ_TILE_EMPTY : 1;
+ unsigned int C_REQ_EMPTY : 1;
+ unsigned int C_MASK_EMPTY : 1;
+ unsigned int EZ_INFSAMP_EMPTY : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int EZ_INFSAMP_EMPTY : 1;
+ unsigned int C_MASK_EMPTY : 1;
+ unsigned int C_REQ_EMPTY : 1;
+ unsigned int C_EZ_TILE_EMPTY : 1;
+ unsigned int C_SX_CMD_EMPTY : 1;
+ unsigned int C_SX_LAT_EMPTY : 1;
+ unsigned int CMDFIFO_C_ORDERING_EMPTY : 1;
+ unsigned int CMDFIFO_Z_ORDERING_EMPTY : 1;
+ unsigned int CMDFIFO_C0_HOLD_EMPTY : 1;
+ unsigned int CMDFIFO_C1_HOLD_EMPTY : 1;
+ unsigned int CMDFIFO_Z0_HOLD_EMPTY : 1;
+ unsigned int CMDFIFO_Z1_HOLD_EMPTY : 1;
+ unsigned int WRREQ_C0_PRE_EMPTY : 1;
+ unsigned int WRREQ_C1_PRE_EMPTY : 1;
+ unsigned int WRREQ_Z0_EMPTY : 1;
+ unsigned int WRREQ_Z1_EMPTY : 1;
+ unsigned int WRREQ_C_WE_LO_EMPTY : 1;
+ unsigned int WRREQ_C_WE_HI_EMPTY : 1;
+ unsigned int WRREQ_E0_MACRO_LO_EMPTY : 1;
+ unsigned int WRREQ_E0_MACRO_HI_EMPTY : 1;
+ unsigned int WRREQ_E1_MACRO_LO_EMPTY : 1;
+ unsigned int WRREQ_E1_MACRO_HI_EMPTY : 1;
+ unsigned int RDREQ_C0_EMPTY : 1;
+ unsigned int RDREQ_C1_EMPTY : 1;
+ unsigned int RDREQ_Z0_EMPTY : 1;
+ unsigned int RDREQ_Z1_EMPTY : 1;
+ unsigned int RDREQ_E0_ORDERING_EMPTY : 1;
+ unsigned int RDREQ_E1_ORDERING_EMPTY : 1;
+ unsigned int RDREQ_C0_CMD_EMPTY : 1;
+ unsigned int RDREQ_C1_CMD_EMPTY : 1;
+ unsigned int RDREQ_Z0_CMD_EMPTY : 1;
+ unsigned int RDREQ_Z1_CMD_EMPTY : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_DEBUG_2 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int TILE_FIFO_COUNT : 4;
+ unsigned int SX_LAT_FIFO_COUNT : 7;
+ unsigned int MEM_EXPORT_FLAG : 1;
+ unsigned int SYSMEM_BLEND_FLAG : 1;
+ unsigned int CURRENT_TILE_EVENT : 1;
+ unsigned int EZ_INFTILE_FULL : 1;
+ unsigned int EZ_MASK_LOWER_FULL : 1;
+ unsigned int EZ_MASK_UPPER_FULL : 1;
+ unsigned int Z0_MASK_FULL : 1;
+ unsigned int Z1_MASK_FULL : 1;
+ unsigned int Z0_REQ_FULL : 1;
+ unsigned int Z1_REQ_FULL : 1;
+ unsigned int Z_SAMP_FULL : 1;
+ unsigned int Z_TILE_FULL : 1;
+ unsigned int EZ_INFTILE_EMPTY : 1;
+ unsigned int EZ_MASK_LOWER_EMPTY : 1;
+ unsigned int EZ_MASK_UPPER_EMPTY : 1;
+ unsigned int Z0_MASK_EMPTY : 1;
+ unsigned int Z1_MASK_EMPTY : 1;
+ unsigned int Z0_REQ_EMPTY : 1;
+ unsigned int Z1_REQ_EMPTY : 1;
+ unsigned int Z_SAMP_EMPTY : 1;
+ unsigned int Z_TILE_EMPTY : 1;
+#else /* !defined(qLittleEndian) */
+ unsigned int Z_TILE_EMPTY : 1;
+ unsigned int Z_SAMP_EMPTY : 1;
+ unsigned int Z1_REQ_EMPTY : 1;
+ unsigned int Z0_REQ_EMPTY : 1;
+ unsigned int Z1_MASK_EMPTY : 1;
+ unsigned int Z0_MASK_EMPTY : 1;
+ unsigned int EZ_MASK_UPPER_EMPTY : 1;
+ unsigned int EZ_MASK_LOWER_EMPTY : 1;
+ unsigned int EZ_INFTILE_EMPTY : 1;
+ unsigned int Z_TILE_FULL : 1;
+ unsigned int Z_SAMP_FULL : 1;
+ unsigned int Z1_REQ_FULL : 1;
+ unsigned int Z0_REQ_FULL : 1;
+ unsigned int Z1_MASK_FULL : 1;
+ unsigned int Z0_MASK_FULL : 1;
+ unsigned int EZ_MASK_UPPER_FULL : 1;
+ unsigned int EZ_MASK_LOWER_FULL : 1;
+ unsigned int EZ_INFTILE_FULL : 1;
+ unsigned int CURRENT_TILE_EVENT : 1;
+ unsigned int SYSMEM_BLEND_FLAG : 1;
+ unsigned int MEM_EXPORT_FLAG : 1;
+ unsigned int SX_LAT_FIFO_COUNT : 7;
+ unsigned int TILE_FIFO_COUNT : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_DEBUG_3 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int ACCUM_VALID : 4;
+ unsigned int ACCUM_FLUSHING : 4;
+ unsigned int ACCUM_WRITE_CLEAN_COUNT : 6;
+ unsigned int ACCUM_INPUT_REG_VALID : 1;
+ unsigned int ACCUM_DATA_FIFO_CNT : 4;
+ unsigned int SHD_FULL : 1;
+ unsigned int SHD_EMPTY : 1;
+ unsigned int EZ_RETURN_LOWER_EMPTY : 1;
+ unsigned int EZ_RETURN_UPPER_EMPTY : 1;
+ unsigned int EZ_RETURN_LOWER_FULL : 1;
+ unsigned int EZ_RETURN_UPPER_FULL : 1;
+ unsigned int ZEXP_LOWER_EMPTY : 1;
+ unsigned int ZEXP_UPPER_EMPTY : 1;
+ unsigned int ZEXP_LOWER_FULL : 1;
+ unsigned int ZEXP_UPPER_FULL : 1;
+ unsigned int : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 3;
+ unsigned int ZEXP_UPPER_FULL : 1;
+ unsigned int ZEXP_LOWER_FULL : 1;
+ unsigned int ZEXP_UPPER_EMPTY : 1;
+ unsigned int ZEXP_LOWER_EMPTY : 1;
+ unsigned int EZ_RETURN_UPPER_FULL : 1;
+ unsigned int EZ_RETURN_LOWER_FULL : 1;
+ unsigned int EZ_RETURN_UPPER_EMPTY : 1;
+ unsigned int EZ_RETURN_LOWER_EMPTY : 1;
+ unsigned int SHD_EMPTY : 1;
+ unsigned int SHD_FULL : 1;
+ unsigned int ACCUM_DATA_FIFO_CNT : 4;
+ unsigned int ACCUM_INPUT_REG_VALID : 1;
+ unsigned int ACCUM_WRITE_CLEAN_COUNT : 6;
+ unsigned int ACCUM_FLUSHING : 4;
+ unsigned int ACCUM_VALID : 4;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_DEBUG_4 {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int GMEM_RD_ACCESS_FLAG : 1;
+ unsigned int GMEM_WR_ACCESS_FLAG : 1;
+ unsigned int SYSMEM_RD_ACCESS_FLAG : 1;
+ unsigned int SYSMEM_WR_ACCESS_FLAG : 1;
+ unsigned int ACCUM_DATA_FIFO_EMPTY : 1;
+ unsigned int ACCUM_ORDER_FIFO_EMPTY : 1;
+ unsigned int ACCUM_DATA_FIFO_FULL : 1;
+ unsigned int ACCUM_ORDER_FIFO_FULL : 1;
+ unsigned int SYSMEM_WRITE_COUNT_OVERFLOW : 1;
+ unsigned int CONTEXT_COUNT_DEBUG : 4;
+ unsigned int : 19;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 19;
+ unsigned int CONTEXT_COUNT_DEBUG : 4;
+ unsigned int SYSMEM_WRITE_COUNT_OVERFLOW : 1;
+ unsigned int ACCUM_ORDER_FIFO_FULL : 1;
+ unsigned int ACCUM_DATA_FIFO_FULL : 1;
+ unsigned int ACCUM_ORDER_FIFO_EMPTY : 1;
+ unsigned int ACCUM_DATA_FIFO_EMPTY : 1;
+ unsigned int SYSMEM_WR_ACCESS_FLAG : 1;
+ unsigned int SYSMEM_RD_ACCESS_FLAG : 1;
+ unsigned int GMEM_WR_ACCESS_FLAG : 1;
+ unsigned int GMEM_RD_ACCESS_FLAG : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_FLAG_CONTROL {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DEBUG_FLAG_CLEAR : 1;
+ unsigned int : 31;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 31;
+ unsigned int DEBUG_FLAG_CLEAR : 1;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union RB_BC_SPARES {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int RESERVED : 32;
+#else /* !defined(qLittleEndian) */
+ unsigned int RESERVED : 32;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union BC_DUMMY_CRAYRB_ENUMS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DUMMY_CRAYRB_DEPTH_FORMAT : 6;
+ unsigned int DUMMY_CRAYRB_SURFACE_SWAP : 1;
+ unsigned int DUMMY_CRAYRB_DEPTH_ARRAY : 2;
+ unsigned int DUMMY_CRAYRB_ARRAY : 2;
+ unsigned int DUMMY_CRAYRB_COLOR_FORMAT : 6;
+ unsigned int DUMMY_CRAYRB_SURFACE_NUMBER : 3;
+ unsigned int DUMMY_CRAYRB_SURFACE_FORMAT : 6;
+ unsigned int DUMMY_CRAYRB_SURFACE_TILING : 1;
+ unsigned int DUMMY_CRAYRB_SURFACE_ARRAY : 2;
+ unsigned int DUMMY_RB_COPY_DEST_INFO_NUMBER : 3;
+#else /* !defined(qLittleEndian) */
+ unsigned int DUMMY_RB_COPY_DEST_INFO_NUMBER : 3;
+ unsigned int DUMMY_CRAYRB_SURFACE_ARRAY : 2;
+ unsigned int DUMMY_CRAYRB_SURFACE_TILING : 1;
+ unsigned int DUMMY_CRAYRB_SURFACE_FORMAT : 6;
+ unsigned int DUMMY_CRAYRB_SURFACE_NUMBER : 3;
+ unsigned int DUMMY_CRAYRB_COLOR_FORMAT : 6;
+ unsigned int DUMMY_CRAYRB_ARRAY : 2;
+ unsigned int DUMMY_CRAYRB_DEPTH_ARRAY : 2;
+ unsigned int DUMMY_CRAYRB_SURFACE_SWAP : 1;
+ unsigned int DUMMY_CRAYRB_DEPTH_FORMAT : 6;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+ union BC_DUMMY_CRAYRB_MOREENUMS {
+ struct {
+#if defined(qLittleEndian)
+ unsigned int DUMMY_CRAYRB_COLORARRAYX : 2;
+ unsigned int : 30;
+#else /* !defined(qLittleEndian) */
+ unsigned int : 30;
+ unsigned int DUMMY_CRAYRB_COLORARRAYX : 2;
+#endif /* defined(qLittleEndian) */
+ } bitfields, bits;
+ unsigned int u32All;
+ signed int i32All;
+ float f32All;
+ };
+
+
+#endif
diff --git a/drivers/mxc/amd-gpu/include/reg/yamato/22/yamato_shift.h b/drivers/mxc/amd-gpu/include/reg/yamato/22/yamato_shift.h
new file mode 100644
index 000000000000..69677996b133
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/reg/yamato/22/yamato_shift.h
@@ -0,0 +1,4184 @@
+/* Copyright (c) 2002,2007-2009, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#if !defined (_yamato_SHIFT_HEADER)
+#define _yamato_SHIFT_HEADER
+
+// PA_CL_VPORT_XSCALE
+#define PA_CL_VPORT_XSCALE__VPORT_XSCALE__SHIFT 0x00000000
+
+// PA_CL_VPORT_XOFFSET
+#define PA_CL_VPORT_XOFFSET__VPORT_XOFFSET__SHIFT 0x00000000
+
+// PA_CL_VPORT_YSCALE
+#define PA_CL_VPORT_YSCALE__VPORT_YSCALE__SHIFT 0x00000000
+
+// PA_CL_VPORT_YOFFSET
+#define PA_CL_VPORT_YOFFSET__VPORT_YOFFSET__SHIFT 0x00000000
+
+// PA_CL_VPORT_ZSCALE
+#define PA_CL_VPORT_ZSCALE__VPORT_ZSCALE__SHIFT 0x00000000
+
+// PA_CL_VPORT_ZOFFSET
+#define PA_CL_VPORT_ZOFFSET__VPORT_ZOFFSET__SHIFT 0x00000000
+
+// PA_CL_VTE_CNTL
+#define PA_CL_VTE_CNTL__VPORT_X_SCALE_ENA__SHIFT 0x00000000
+#define PA_CL_VTE_CNTL__VPORT_X_OFFSET_ENA__SHIFT 0x00000001
+#define PA_CL_VTE_CNTL__VPORT_Y_SCALE_ENA__SHIFT 0x00000002
+#define PA_CL_VTE_CNTL__VPORT_Y_OFFSET_ENA__SHIFT 0x00000003
+#define PA_CL_VTE_CNTL__VPORT_Z_SCALE_ENA__SHIFT 0x00000004
+#define PA_CL_VTE_CNTL__VPORT_Z_OFFSET_ENA__SHIFT 0x00000005
+#define PA_CL_VTE_CNTL__VTX_XY_FMT__SHIFT 0x00000008
+#define PA_CL_VTE_CNTL__VTX_Z_FMT__SHIFT 0x00000009
+#define PA_CL_VTE_CNTL__VTX_W0_FMT__SHIFT 0x0000000a
+#define PA_CL_VTE_CNTL__PERFCOUNTER_REF__SHIFT 0x0000000b
+
+// PA_CL_CLIP_CNTL
+#define PA_CL_CLIP_CNTL__CLIP_DISABLE__SHIFT 0x00000010
+#define PA_CL_CLIP_CNTL__BOUNDARY_EDGE_FLAG_ENA__SHIFT 0x00000012
+#define PA_CL_CLIP_CNTL__DX_CLIP_SPACE_DEF__SHIFT 0x00000013
+#define PA_CL_CLIP_CNTL__DIS_CLIP_ERR_DETECT__SHIFT 0x00000014
+#define PA_CL_CLIP_CNTL__VTX_KILL_OR__SHIFT 0x00000015
+#define PA_CL_CLIP_CNTL__XY_NAN_RETAIN__SHIFT 0x00000016
+#define PA_CL_CLIP_CNTL__Z_NAN_RETAIN__SHIFT 0x00000017
+#define PA_CL_CLIP_CNTL__W_NAN_RETAIN__SHIFT 0x00000018
+
+// PA_CL_GB_VERT_CLIP_ADJ
+#define PA_CL_GB_VERT_CLIP_ADJ__DATA_REGISTER__SHIFT 0x00000000
+
+// PA_CL_GB_VERT_DISC_ADJ
+#define PA_CL_GB_VERT_DISC_ADJ__DATA_REGISTER__SHIFT 0x00000000
+
+// PA_CL_GB_HORZ_CLIP_ADJ
+#define PA_CL_GB_HORZ_CLIP_ADJ__DATA_REGISTER__SHIFT 0x00000000
+
+// PA_CL_GB_HORZ_DISC_ADJ
+#define PA_CL_GB_HORZ_DISC_ADJ__DATA_REGISTER__SHIFT 0x00000000
+
+// PA_CL_ENHANCE
+#define PA_CL_ENHANCE__CLIP_VTX_REORDER_ENA__SHIFT 0x00000000
+#define PA_CL_ENHANCE__ECO_SPARE3__SHIFT 0x0000001c
+#define PA_CL_ENHANCE__ECO_SPARE2__SHIFT 0x0000001d
+#define PA_CL_ENHANCE__ECO_SPARE1__SHIFT 0x0000001e
+#define PA_CL_ENHANCE__ECO_SPARE0__SHIFT 0x0000001f
+
+// PA_SC_ENHANCE
+#define PA_SC_ENHANCE__ECO_SPARE3__SHIFT 0x0000001c
+#define PA_SC_ENHANCE__ECO_SPARE2__SHIFT 0x0000001d
+#define PA_SC_ENHANCE__ECO_SPARE1__SHIFT 0x0000001e
+#define PA_SC_ENHANCE__ECO_SPARE0__SHIFT 0x0000001f
+
+// PA_SU_VTX_CNTL
+#define PA_SU_VTX_CNTL__PIX_CENTER__SHIFT 0x00000000
+#define PA_SU_VTX_CNTL__ROUND_MODE__SHIFT 0x00000001
+#define PA_SU_VTX_CNTL__QUANT_MODE__SHIFT 0x00000003
+
+// PA_SU_POINT_SIZE
+#define PA_SU_POINT_SIZE__HEIGHT__SHIFT 0x00000000
+#define PA_SU_POINT_SIZE__WIDTH__SHIFT 0x00000010
+
+// PA_SU_POINT_MINMAX
+#define PA_SU_POINT_MINMAX__MIN_SIZE__SHIFT 0x00000000
+#define PA_SU_POINT_MINMAX__MAX_SIZE__SHIFT 0x00000010
+
+// PA_SU_LINE_CNTL
+#define PA_SU_LINE_CNTL__WIDTH__SHIFT 0x00000000
+
+// PA_SU_FACE_DATA
+#define PA_SU_FACE_DATA__BASE_ADDR__SHIFT 0x00000005
+
+// PA_SU_SC_MODE_CNTL
+#define PA_SU_SC_MODE_CNTL__CULL_FRONT__SHIFT 0x00000000
+#define PA_SU_SC_MODE_CNTL__CULL_BACK__SHIFT 0x00000001
+#define PA_SU_SC_MODE_CNTL__FACE__SHIFT 0x00000002
+#define PA_SU_SC_MODE_CNTL__POLY_MODE__SHIFT 0x00000003
+#define PA_SU_SC_MODE_CNTL__POLYMODE_FRONT_PTYPE__SHIFT 0x00000005
+#define PA_SU_SC_MODE_CNTL__POLYMODE_BACK_PTYPE__SHIFT 0x00000008
+#define PA_SU_SC_MODE_CNTL__POLY_OFFSET_FRONT_ENABLE__SHIFT 0x0000000b
+#define PA_SU_SC_MODE_CNTL__POLY_OFFSET_BACK_ENABLE__SHIFT 0x0000000c
+#define PA_SU_SC_MODE_CNTL__POLY_OFFSET_PARA_ENABLE__SHIFT 0x0000000d
+#define PA_SU_SC_MODE_CNTL__MSAA_ENABLE__SHIFT 0x0000000f
+#define PA_SU_SC_MODE_CNTL__VTX_WINDOW_OFFSET_ENABLE__SHIFT 0x00000010
+#define PA_SU_SC_MODE_CNTL__LINE_STIPPLE_ENABLE__SHIFT 0x00000012
+#define PA_SU_SC_MODE_CNTL__PROVOKING_VTX_LAST__SHIFT 0x00000013
+#define PA_SU_SC_MODE_CNTL__PERSP_CORR_DIS__SHIFT 0x00000014
+#define PA_SU_SC_MODE_CNTL__MULTI_PRIM_IB_ENA__SHIFT 0x00000015
+#define PA_SU_SC_MODE_CNTL__QUAD_ORDER_ENABLE__SHIFT 0x00000017
+#define PA_SU_SC_MODE_CNTL__WAIT_RB_IDLE_ALL_TRI__SHIFT 0x00000019
+#define PA_SU_SC_MODE_CNTL__WAIT_RB_IDLE_FIRST_TRI_NEW_STATE__SHIFT 0x0000001a
+#define PA_SU_SC_MODE_CNTL__CLAMPED_FACENESS__SHIFT 0x0000001c
+#define PA_SU_SC_MODE_CNTL__ZERO_AREA_FACENESS__SHIFT 0x0000001d
+#define PA_SU_SC_MODE_CNTL__FACE_KILL_ENABLE__SHIFT 0x0000001e
+#define PA_SU_SC_MODE_CNTL__FACE_WRITE_ENABLE__SHIFT 0x0000001f
+
+// PA_SU_POLY_OFFSET_FRONT_SCALE
+#define PA_SU_POLY_OFFSET_FRONT_SCALE__SCALE__SHIFT 0x00000000
+
+// PA_SU_POLY_OFFSET_FRONT_OFFSET
+#define PA_SU_POLY_OFFSET_FRONT_OFFSET__OFFSET__SHIFT 0x00000000
+
+// PA_SU_POLY_OFFSET_BACK_SCALE
+#define PA_SU_POLY_OFFSET_BACK_SCALE__SCALE__SHIFT 0x00000000
+
+// PA_SU_POLY_OFFSET_BACK_OFFSET
+#define PA_SU_POLY_OFFSET_BACK_OFFSET__OFFSET__SHIFT 0x00000000
+
+// PA_SU_PERFCOUNTER0_SELECT
+#define PA_SU_PERFCOUNTER0_SELECT__PERF_SEL__SHIFT 0x00000000
+
+// PA_SU_PERFCOUNTER1_SELECT
+#define PA_SU_PERFCOUNTER1_SELECT__PERF_SEL__SHIFT 0x00000000
+
+// PA_SU_PERFCOUNTER2_SELECT
+#define PA_SU_PERFCOUNTER2_SELECT__PERF_SEL__SHIFT 0x00000000
+
+// PA_SU_PERFCOUNTER3_SELECT
+#define PA_SU_PERFCOUNTER3_SELECT__PERF_SEL__SHIFT 0x00000000
+
+// PA_SU_PERFCOUNTER0_LOW
+#define PA_SU_PERFCOUNTER0_LOW__PERF_COUNT__SHIFT 0x00000000
+
+// PA_SU_PERFCOUNTER0_HI
+#define PA_SU_PERFCOUNTER0_HI__PERF_COUNT__SHIFT 0x00000000
+
+// PA_SU_PERFCOUNTER1_LOW
+#define PA_SU_PERFCOUNTER1_LOW__PERF_COUNT__SHIFT 0x00000000
+
+// PA_SU_PERFCOUNTER1_HI
+#define PA_SU_PERFCOUNTER1_HI__PERF_COUNT__SHIFT 0x00000000
+
+// PA_SU_PERFCOUNTER2_LOW
+#define PA_SU_PERFCOUNTER2_LOW__PERF_COUNT__SHIFT 0x00000000
+
+// PA_SU_PERFCOUNTER2_HI
+#define PA_SU_PERFCOUNTER2_HI__PERF_COUNT__SHIFT 0x00000000
+
+// PA_SU_PERFCOUNTER3_LOW
+#define PA_SU_PERFCOUNTER3_LOW__PERF_COUNT__SHIFT 0x00000000
+
+// PA_SU_PERFCOUNTER3_HI
+#define PA_SU_PERFCOUNTER3_HI__PERF_COUNT__SHIFT 0x00000000
+
+// PA_SC_WINDOW_OFFSET
+#define PA_SC_WINDOW_OFFSET__WINDOW_X_OFFSET__SHIFT 0x00000000
+#define PA_SC_WINDOW_OFFSET__WINDOW_Y_OFFSET__SHIFT 0x00000010
+
+// PA_SC_AA_CONFIG
+#define PA_SC_AA_CONFIG__MSAA_NUM_SAMPLES__SHIFT 0x00000000
+#define PA_SC_AA_CONFIG__MAX_SAMPLE_DIST__SHIFT 0x0000000d
+
+// PA_SC_AA_MASK
+#define PA_SC_AA_MASK__AA_MASK__SHIFT 0x00000000
+
+// PA_SC_LINE_STIPPLE
+#define PA_SC_LINE_STIPPLE__LINE_PATTERN__SHIFT 0x00000000
+#define PA_SC_LINE_STIPPLE__REPEAT_COUNT__SHIFT 0x00000010
+#define PA_SC_LINE_STIPPLE__PATTERN_BIT_ORDER__SHIFT 0x0000001c
+#define PA_SC_LINE_STIPPLE__AUTO_RESET_CNTL__SHIFT 0x0000001d
+
+// PA_SC_LINE_CNTL
+#define PA_SC_LINE_CNTL__BRES_CNTL__SHIFT 0x00000000
+#define PA_SC_LINE_CNTL__USE_BRES_CNTL__SHIFT 0x00000008
+#define PA_SC_LINE_CNTL__EXPAND_LINE_WIDTH__SHIFT 0x00000009
+#define PA_SC_LINE_CNTL__LAST_PIXEL__SHIFT 0x0000000a
+
+// PA_SC_WINDOW_SCISSOR_TL
+#define PA_SC_WINDOW_SCISSOR_TL__TL_X__SHIFT 0x00000000
+#define PA_SC_WINDOW_SCISSOR_TL__TL_Y__SHIFT 0x00000010
+#define PA_SC_WINDOW_SCISSOR_TL__WINDOW_OFFSET_DISABLE__SHIFT 0x0000001f
+
+// PA_SC_WINDOW_SCISSOR_BR
+#define PA_SC_WINDOW_SCISSOR_BR__BR_X__SHIFT 0x00000000
+#define PA_SC_WINDOW_SCISSOR_BR__BR_Y__SHIFT 0x00000010
+
+// PA_SC_SCREEN_SCISSOR_TL
+#define PA_SC_SCREEN_SCISSOR_TL__TL_X__SHIFT 0x00000000
+#define PA_SC_SCREEN_SCISSOR_TL__TL_Y__SHIFT 0x00000010
+
+// PA_SC_SCREEN_SCISSOR_BR
+#define PA_SC_SCREEN_SCISSOR_BR__BR_X__SHIFT 0x00000000
+#define PA_SC_SCREEN_SCISSOR_BR__BR_Y__SHIFT 0x00000010
+
+// PA_SC_VIZ_QUERY
+#define PA_SC_VIZ_QUERY__VIZ_QUERY_ENA__SHIFT 0x00000000
+#define PA_SC_VIZ_QUERY__VIZ_QUERY_ID__SHIFT 0x00000001
+#define PA_SC_VIZ_QUERY__KILL_PIX_POST_EARLY_Z__SHIFT 0x00000007
+
+// PA_SC_VIZ_QUERY_STATUS
+#define PA_SC_VIZ_QUERY_STATUS__STATUS_BITS__SHIFT 0x00000000
+
+// PA_SC_LINE_STIPPLE_STATE
+#define PA_SC_LINE_STIPPLE_STATE__CURRENT_PTR__SHIFT 0x00000000
+#define PA_SC_LINE_STIPPLE_STATE__CURRENT_COUNT__SHIFT 0x00000008
+
+// PA_SC_PERFCOUNTER0_SELECT
+#define PA_SC_PERFCOUNTER0_SELECT__PERF_SEL__SHIFT 0x00000000
+
+// PA_SC_PERFCOUNTER0_LOW
+#define PA_SC_PERFCOUNTER0_LOW__PERF_COUNT__SHIFT 0x00000000
+
+// PA_SC_PERFCOUNTER0_HI
+#define PA_SC_PERFCOUNTER0_HI__PERF_COUNT__SHIFT 0x00000000
+
+// PA_CL_CNTL_STATUS
+#define PA_CL_CNTL_STATUS__CL_BUSY__SHIFT 0x0000001f
+
+// PA_SU_CNTL_STATUS
+#define PA_SU_CNTL_STATUS__SU_BUSY__SHIFT 0x0000001f
+
+// PA_SC_CNTL_STATUS
+#define PA_SC_CNTL_STATUS__SC_BUSY__SHIFT 0x0000001f
+
+// PA_SU_DEBUG_CNTL
+#define PA_SU_DEBUG_CNTL__SU_DEBUG_INDX__SHIFT 0x00000000
+
+// PA_SU_DEBUG_DATA
+#define PA_SU_DEBUG_DATA__DATA__SHIFT 0x00000000
+
+// CLIPPER_DEBUG_REG00
+#define CLIPPER_DEBUG_REG00__clip_ga_bc_fifo_write__SHIFT 0x00000000
+#define CLIPPER_DEBUG_REG00__clip_ga_bc_fifo_full__SHIFT 0x00000001
+#define CLIPPER_DEBUG_REG00__clip_to_ga_fifo_write__SHIFT 0x00000002
+#define CLIPPER_DEBUG_REG00__clip_to_ga_fifo_full__SHIFT 0x00000003
+#define CLIPPER_DEBUG_REG00__primic_to_clprim_fifo_empty__SHIFT 0x00000004
+#define CLIPPER_DEBUG_REG00__primic_to_clprim_fifo_full__SHIFT 0x00000005
+#define CLIPPER_DEBUG_REG00__clip_to_outsm_fifo_empty__SHIFT 0x00000006
+#define CLIPPER_DEBUG_REG00__clip_to_outsm_fifo_full__SHIFT 0x00000007
+#define CLIPPER_DEBUG_REG00__vgt_to_clipp_fifo_empty__SHIFT 0x00000008
+#define CLIPPER_DEBUG_REG00__vgt_to_clipp_fifo_full__SHIFT 0x00000009
+#define CLIPPER_DEBUG_REG00__vgt_to_clips_fifo_empty__SHIFT 0x0000000a
+#define CLIPPER_DEBUG_REG00__vgt_to_clips_fifo_full__SHIFT 0x0000000b
+#define CLIPPER_DEBUG_REG00__clipcode_fifo_fifo_empty__SHIFT 0x0000000c
+#define CLIPPER_DEBUG_REG00__clipcode_fifo_full__SHIFT 0x0000000d
+#define CLIPPER_DEBUG_REG00__vte_out_clip_fifo_fifo_empty__SHIFT 0x0000000e
+#define CLIPPER_DEBUG_REG00__vte_out_clip_fifo_fifo_full__SHIFT 0x0000000f
+#define CLIPPER_DEBUG_REG00__vte_out_orig_fifo_fifo_empty__SHIFT 0x00000010
+#define CLIPPER_DEBUG_REG00__vte_out_orig_fifo_fifo_full__SHIFT 0x00000011
+#define CLIPPER_DEBUG_REG00__ccgen_to_clipcc_fifo_empty__SHIFT 0x00000012
+#define CLIPPER_DEBUG_REG00__ccgen_to_clipcc_fifo_full__SHIFT 0x00000013
+#define CLIPPER_DEBUG_REG00__ALWAYS_ZERO__SHIFT 0x00000014
+
+// CLIPPER_DEBUG_REG01
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_end_of_packet__SHIFT 0x00000000
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_first_prim_of_slot__SHIFT 0x00000001
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_deallocate_slot__SHIFT 0x00000002
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_clipped_prim__SHIFT 0x00000005
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_null_primitive__SHIFT 0x00000006
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_vertex_store_indx_2__SHIFT 0x00000007
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_vertex_store_indx_1__SHIFT 0x0000000b
+#define CLIPPER_DEBUG_REG01__clip_to_outsm_vertex_store_indx_0__SHIFT 0x0000000f
+#define CLIPPER_DEBUG_REG01__clip_vert_vte_valid__SHIFT 0x00000013
+#define CLIPPER_DEBUG_REG01__vte_out_clip_rd_vertex_store_indx__SHIFT 0x00000016
+#define CLIPPER_DEBUG_REG01__ALWAYS_ZERO__SHIFT 0x00000018
+
+// CLIPPER_DEBUG_REG02
+#define CLIPPER_DEBUG_REG02__ALWAYS_ZERO1__SHIFT 0x00000000
+#define CLIPPER_DEBUG_REG02__clipsm0_clip_to_clipga_clip_to_outsm_cnt__SHIFT 0x00000015
+#define CLIPPER_DEBUG_REG02__ALWAYS_ZERO0__SHIFT 0x00000018
+#define CLIPPER_DEBUG_REG02__clipsm0_clprim_to_clip_prim_valid__SHIFT 0x0000001f
+
+// CLIPPER_DEBUG_REG03
+#define CLIPPER_DEBUG_REG03__ALWAYS_ZERO3__SHIFT 0x00000000
+#define CLIPPER_DEBUG_REG03__clipsm0_clprim_to_clip_clip_primitive__SHIFT 0x00000003
+#define CLIPPER_DEBUG_REG03__ALWAYS_ZERO2__SHIFT 0x00000004
+#define CLIPPER_DEBUG_REG03__clipsm0_clprim_to_clip_null_primitive__SHIFT 0x00000007
+#define CLIPPER_DEBUG_REG03__ALWAYS_ZERO1__SHIFT 0x00000008
+#define CLIPPER_DEBUG_REG03__clipsm0_clprim_to_clip_clip_code_or__SHIFT 0x00000014
+#define CLIPPER_DEBUG_REG03__ALWAYS_ZERO0__SHIFT 0x0000001a
+
+// CLIPPER_DEBUG_REG04
+#define CLIPPER_DEBUG_REG04__ALWAYS_ZERO2__SHIFT 0x00000000
+#define CLIPPER_DEBUG_REG04__clipsm0_clprim_to_clip_first_prim_of_slot__SHIFT 0x00000003
+#define CLIPPER_DEBUG_REG04__ALWAYS_ZERO1__SHIFT 0x00000004
+#define CLIPPER_DEBUG_REG04__clipsm0_clprim_to_clip_event__SHIFT 0x00000007
+#define CLIPPER_DEBUG_REG04__ALWAYS_ZERO0__SHIFT 0x00000008
+
+// CLIPPER_DEBUG_REG05
+#define CLIPPER_DEBUG_REG05__clipsm0_clprim_to_clip_state_var_indx__SHIFT 0x00000000
+#define CLIPPER_DEBUG_REG05__ALWAYS_ZERO3__SHIFT 0x00000001
+#define CLIPPER_DEBUG_REG05__clipsm0_clprim_to_clip_deallocate_slot__SHIFT 0x00000003
+#define CLIPPER_DEBUG_REG05__clipsm0_clprim_to_clip_event_id__SHIFT 0x00000006
+#define CLIPPER_DEBUG_REG05__clipsm0_clprim_to_clip_vertex_store_indx_2__SHIFT 0x0000000c
+#define CLIPPER_DEBUG_REG05__ALWAYS_ZERO2__SHIFT 0x00000010
+#define CLIPPER_DEBUG_REG05__clipsm0_clprim_to_clip_vertex_store_indx_1__SHIFT 0x00000012
+#define CLIPPER_DEBUG_REG05__ALWAYS_ZERO1__SHIFT 0x00000016
+#define CLIPPER_DEBUG_REG05__clipsm0_clprim_to_clip_vertex_store_indx_0__SHIFT 0x00000018
+#define CLIPPER_DEBUG_REG05__ALWAYS_ZERO0__SHIFT 0x0000001c
+
+// CLIPPER_DEBUG_REG09
+#define CLIPPER_DEBUG_REG09__clprim_in_back_event__SHIFT 0x00000000
+#define CLIPPER_DEBUG_REG09__outputclprimtoclip_null_primitive__SHIFT 0x00000001
+#define CLIPPER_DEBUG_REG09__clprim_in_back_vertex_store_indx_2__SHIFT 0x00000002
+#define CLIPPER_DEBUG_REG09__ALWAYS_ZERO2__SHIFT 0x00000006
+#define CLIPPER_DEBUG_REG09__clprim_in_back_vertex_store_indx_1__SHIFT 0x00000008
+#define CLIPPER_DEBUG_REG09__ALWAYS_ZERO1__SHIFT 0x0000000c
+#define CLIPPER_DEBUG_REG09__clprim_in_back_vertex_store_indx_0__SHIFT 0x0000000e
+#define CLIPPER_DEBUG_REG09__ALWAYS_ZERO0__SHIFT 0x00000012
+#define CLIPPER_DEBUG_REG09__prim_back_valid__SHIFT 0x00000014
+#define CLIPPER_DEBUG_REG09__clip_priority_seq_indx_out_cnt__SHIFT 0x00000015
+#define CLIPPER_DEBUG_REG09__outsm_clr_rd_orig_vertices__SHIFT 0x00000019
+#define CLIPPER_DEBUG_REG09__outsm_clr_rd_clipsm_wait__SHIFT 0x0000001b
+#define CLIPPER_DEBUG_REG09__outsm_clr_fifo_empty__SHIFT 0x0000001c
+#define CLIPPER_DEBUG_REG09__outsm_clr_fifo_full__SHIFT 0x0000001d
+#define CLIPPER_DEBUG_REG09__clip_priority_seq_indx_load__SHIFT 0x0000001e
+
+// CLIPPER_DEBUG_REG10
+#define CLIPPER_DEBUG_REG10__primic_to_clprim_fifo_vertex_store_indx_2__SHIFT 0x00000000
+#define CLIPPER_DEBUG_REG10__ALWAYS_ZERO3__SHIFT 0x00000004
+#define CLIPPER_DEBUG_REG10__primic_to_clprim_fifo_vertex_store_indx_1__SHIFT 0x00000006
+#define CLIPPER_DEBUG_REG10__ALWAYS_ZERO2__SHIFT 0x0000000a
+#define CLIPPER_DEBUG_REG10__primic_to_clprim_fifo_vertex_store_indx_0__SHIFT 0x0000000c
+#define CLIPPER_DEBUG_REG10__ALWAYS_ZERO1__SHIFT 0x00000010
+#define CLIPPER_DEBUG_REG10__clprim_in_back_state_var_indx__SHIFT 0x00000012
+#define CLIPPER_DEBUG_REG10__ALWAYS_ZERO0__SHIFT 0x00000013
+#define CLIPPER_DEBUG_REG10__clprim_in_back_end_of_packet__SHIFT 0x00000015
+#define CLIPPER_DEBUG_REG10__clprim_in_back_first_prim_of_slot__SHIFT 0x00000016
+#define CLIPPER_DEBUG_REG10__clprim_in_back_deallocate_slot__SHIFT 0x00000017
+#define CLIPPER_DEBUG_REG10__clprim_in_back_event_id__SHIFT 0x0000001a
+
+// CLIPPER_DEBUG_REG11
+#define CLIPPER_DEBUG_REG11__vertval_bits_vertex_vertex_store_msb__SHIFT 0x00000000
+#define CLIPPER_DEBUG_REG11__ALWAYS_ZERO__SHIFT 0x00000004
+
+// CLIPPER_DEBUG_REG12
+#define CLIPPER_DEBUG_REG12__clip_priority_available_vte_out_clip__SHIFT 0x00000000
+#define CLIPPER_DEBUG_REG12__ALWAYS_ZERO2__SHIFT 0x00000002
+#define CLIPPER_DEBUG_REG12__clip_vertex_fifo_empty__SHIFT 0x00000005
+#define CLIPPER_DEBUG_REG12__clip_priority_available_clip_verts__SHIFT 0x00000006
+#define CLIPPER_DEBUG_REG12__ALWAYS_ZERO1__SHIFT 0x0000000b
+#define CLIPPER_DEBUG_REG12__vertval_bits_vertex_cc_next_valid__SHIFT 0x0000000f
+#define CLIPPER_DEBUG_REG12__clipcc_vertex_store_indx__SHIFT 0x00000013
+#define CLIPPER_DEBUG_REG12__primic_to_clprim_valid__SHIFT 0x00000015
+#define CLIPPER_DEBUG_REG12__ALWAYS_ZERO0__SHIFT 0x00000016
+
+// CLIPPER_DEBUG_REG13
+#define CLIPPER_DEBUG_REG13__sm0_clip_vert_cnt__SHIFT 0x00000000
+#define CLIPPER_DEBUG_REG13__sm0_prim_end_state__SHIFT 0x00000004
+#define CLIPPER_DEBUG_REG13__ALWAYS_ZERO1__SHIFT 0x0000000b
+#define CLIPPER_DEBUG_REG13__sm0_vertex_clip_cnt__SHIFT 0x0000000e
+#define CLIPPER_DEBUG_REG13__sm0_inv_to_clip_data_valid_1__SHIFT 0x00000012
+#define CLIPPER_DEBUG_REG13__sm0_inv_to_clip_data_valid_0__SHIFT 0x00000013
+#define CLIPPER_DEBUG_REG13__sm0_current_state__SHIFT 0x00000014
+#define CLIPPER_DEBUG_REG13__ALWAYS_ZERO0__SHIFT 0x0000001b
+
+// SXIFCCG_DEBUG_REG0
+#define SXIFCCG_DEBUG_REG0__nan_kill_flag__SHIFT 0x00000000
+#define SXIFCCG_DEBUG_REG0__position_address__SHIFT 0x00000004
+#define SXIFCCG_DEBUG_REG0__ALWAYS_ZERO2__SHIFT 0x00000007
+#define SXIFCCG_DEBUG_REG0__point_address__SHIFT 0x0000000a
+#define SXIFCCG_DEBUG_REG0__ALWAYS_ZERO1__SHIFT 0x0000000d
+#define SXIFCCG_DEBUG_REG0__sx_pending_rd_state_var_indx__SHIFT 0x00000010
+#define SXIFCCG_DEBUG_REG0__ALWAYS_ZERO0__SHIFT 0x00000011
+#define SXIFCCG_DEBUG_REG0__sx_pending_rd_req_mask__SHIFT 0x00000013
+#define SXIFCCG_DEBUG_REG0__sx_pending_rd_pci__SHIFT 0x00000017
+#define SXIFCCG_DEBUG_REG0__sx_pending_rd_aux_inc__SHIFT 0x0000001e
+#define SXIFCCG_DEBUG_REG0__sx_pending_rd_aux_sel__SHIFT 0x0000001f
+
+// SXIFCCG_DEBUG_REG1
+#define SXIFCCG_DEBUG_REG1__ALWAYS_ZERO3__SHIFT 0x00000000
+#define SXIFCCG_DEBUG_REG1__sx_to_pa_empty__SHIFT 0x00000002
+#define SXIFCCG_DEBUG_REG1__available_positions__SHIFT 0x00000004
+#define SXIFCCG_DEBUG_REG1__ALWAYS_ZERO2__SHIFT 0x00000007
+#define SXIFCCG_DEBUG_REG1__sx_pending_advance__SHIFT 0x0000000b
+#define SXIFCCG_DEBUG_REG1__sx_receive_indx__SHIFT 0x0000000c
+#define SXIFCCG_DEBUG_REG1__statevar_bits_sxpa_aux_vector__SHIFT 0x0000000f
+#define SXIFCCG_DEBUG_REG1__ALWAYS_ZERO1__SHIFT 0x00000010
+#define SXIFCCG_DEBUG_REG1__aux_sel__SHIFT 0x00000014
+#define SXIFCCG_DEBUG_REG1__ALWAYS_ZERO0__SHIFT 0x00000015
+#define SXIFCCG_DEBUG_REG1__pasx_req_cnt__SHIFT 0x00000017
+#define SXIFCCG_DEBUG_REG1__param_cache_base__SHIFT 0x00000019
+
+// SXIFCCG_DEBUG_REG2
+#define SXIFCCG_DEBUG_REG2__sx_sent__SHIFT 0x00000000
+#define SXIFCCG_DEBUG_REG2__ALWAYS_ZERO3__SHIFT 0x00000001
+#define SXIFCCG_DEBUG_REG2__sx_aux__SHIFT 0x00000002
+#define SXIFCCG_DEBUG_REG2__sx_request_indx__SHIFT 0x00000003
+#define SXIFCCG_DEBUG_REG2__req_active_verts__SHIFT 0x00000009
+#define SXIFCCG_DEBUG_REG2__ALWAYS_ZERO2__SHIFT 0x00000010
+#define SXIFCCG_DEBUG_REG2__vgt_to_ccgen_state_var_indx__SHIFT 0x00000011
+#define SXIFCCG_DEBUG_REG2__ALWAYS_ZERO1__SHIFT 0x00000012
+#define SXIFCCG_DEBUG_REG2__vgt_to_ccgen_active_verts__SHIFT 0x00000014
+#define SXIFCCG_DEBUG_REG2__ALWAYS_ZERO0__SHIFT 0x00000016
+#define SXIFCCG_DEBUG_REG2__req_active_verts_loaded__SHIFT 0x0000001a
+#define SXIFCCG_DEBUG_REG2__sx_pending_fifo_empty__SHIFT 0x0000001b
+#define SXIFCCG_DEBUG_REG2__sx_pending_fifo_full__SHIFT 0x0000001c
+#define SXIFCCG_DEBUG_REG2__sx_pending_fifo_contents__SHIFT 0x0000001d
+
+// SXIFCCG_DEBUG_REG3
+#define SXIFCCG_DEBUG_REG3__vertex_fifo_entriesavailable__SHIFT 0x00000000
+#define SXIFCCG_DEBUG_REG3__ALWAYS_ZERO3__SHIFT 0x00000004
+#define SXIFCCG_DEBUG_REG3__available_positions__SHIFT 0x00000005
+#define SXIFCCG_DEBUG_REG3__ALWAYS_ZERO2__SHIFT 0x00000008
+#define SXIFCCG_DEBUG_REG3__current_state__SHIFT 0x0000000c
+#define SXIFCCG_DEBUG_REG3__vertex_fifo_empty__SHIFT 0x0000000e
+#define SXIFCCG_DEBUG_REG3__vertex_fifo_full__SHIFT 0x0000000f
+#define SXIFCCG_DEBUG_REG3__ALWAYS_ZERO1__SHIFT 0x00000010
+#define SXIFCCG_DEBUG_REG3__sx0_receive_fifo_empty__SHIFT 0x00000012
+#define SXIFCCG_DEBUG_REG3__sx0_receive_fifo_full__SHIFT 0x00000013
+#define SXIFCCG_DEBUG_REG3__vgt_to_ccgen_fifo_empty__SHIFT 0x00000014
+#define SXIFCCG_DEBUG_REG3__vgt_to_ccgen_fifo_full__SHIFT 0x00000015
+#define SXIFCCG_DEBUG_REG3__ALWAYS_ZERO0__SHIFT 0x00000016
+
+// SETUP_DEBUG_REG0
+#define SETUP_DEBUG_REG0__su_cntl_state__SHIFT 0x00000000
+#define SETUP_DEBUG_REG0__pmode_state__SHIFT 0x00000005
+#define SETUP_DEBUG_REG0__ge_stallb__SHIFT 0x0000000b
+#define SETUP_DEBUG_REG0__geom_enable__SHIFT 0x0000000c
+#define SETUP_DEBUG_REG0__su_clip_baryc_rtr__SHIFT 0x0000000d
+#define SETUP_DEBUG_REG0__su_clip_rtr__SHIFT 0x0000000e
+#define SETUP_DEBUG_REG0__pfifo_busy__SHIFT 0x0000000f
+#define SETUP_DEBUG_REG0__su_cntl_busy__SHIFT 0x00000010
+#define SETUP_DEBUG_REG0__geom_busy__SHIFT 0x00000011
+
+// SETUP_DEBUG_REG1
+#define SETUP_DEBUG_REG1__y_sort0_gated_17_4__SHIFT 0x00000000
+#define SETUP_DEBUG_REG1__x_sort0_gated_17_4__SHIFT 0x0000000e
+
+// SETUP_DEBUG_REG2
+#define SETUP_DEBUG_REG2__y_sort1_gated_17_4__SHIFT 0x00000000
+#define SETUP_DEBUG_REG2__x_sort1_gated_17_4__SHIFT 0x0000000e
+
+// SETUP_DEBUG_REG3
+#define SETUP_DEBUG_REG3__y_sort2_gated_17_4__SHIFT 0x00000000
+#define SETUP_DEBUG_REG3__x_sort2_gated_17_4__SHIFT 0x0000000e
+
+// SETUP_DEBUG_REG4
+#define SETUP_DEBUG_REG4__attr_indx_sort0_gated__SHIFT 0x00000000
+#define SETUP_DEBUG_REG4__null_prim_gated__SHIFT 0x0000000b
+#define SETUP_DEBUG_REG4__backfacing_gated__SHIFT 0x0000000c
+#define SETUP_DEBUG_REG4__st_indx_gated__SHIFT 0x0000000d
+#define SETUP_DEBUG_REG4__clipped_gated__SHIFT 0x00000010
+#define SETUP_DEBUG_REG4__dealloc_slot_gated__SHIFT 0x00000011
+#define SETUP_DEBUG_REG4__xmajor_gated__SHIFT 0x00000014
+#define SETUP_DEBUG_REG4__diamond_rule_gated__SHIFT 0x00000015
+#define SETUP_DEBUG_REG4__type_gated__SHIFT 0x00000017
+#define SETUP_DEBUG_REG4__fpov_gated__SHIFT 0x0000001a
+#define SETUP_DEBUG_REG4__pmode_prim_gated__SHIFT 0x0000001b
+#define SETUP_DEBUG_REG4__event_gated__SHIFT 0x0000001c
+#define SETUP_DEBUG_REG4__eop_gated__SHIFT 0x0000001d
+
+// SETUP_DEBUG_REG5
+#define SETUP_DEBUG_REG5__attr_indx_sort2_gated__SHIFT 0x00000000
+#define SETUP_DEBUG_REG5__attr_indx_sort1_gated__SHIFT 0x0000000b
+#define SETUP_DEBUG_REG5__provoking_vtx_gated__SHIFT 0x00000016
+#define SETUP_DEBUG_REG5__event_id_gated__SHIFT 0x00000018
+
+// PA_SC_DEBUG_CNTL
+#define PA_SC_DEBUG_CNTL__SC_DEBUG_INDX__SHIFT 0x00000000
+
+// PA_SC_DEBUG_DATA
+#define PA_SC_DEBUG_DATA__DATA__SHIFT 0x00000000
+
+// SC_DEBUG_0
+#define SC_DEBUG_0__pa_freeze_b1__SHIFT 0x00000000
+#define SC_DEBUG_0__pa_sc_valid__SHIFT 0x00000001
+#define SC_DEBUG_0__pa_sc_phase__SHIFT 0x00000002
+#define SC_DEBUG_0__cntx_cnt__SHIFT 0x00000005
+#define SC_DEBUG_0__decr_cntx_cnt__SHIFT 0x0000000c
+#define SC_DEBUG_0__incr_cntx_cnt__SHIFT 0x0000000d
+#define SC_DEBUG_0__trigger__SHIFT 0x0000001f
+
+// SC_DEBUG_1
+#define SC_DEBUG_1__em_state__SHIFT 0x00000000
+#define SC_DEBUG_1__em1_data_ready__SHIFT 0x00000003
+#define SC_DEBUG_1__em2_data_ready__SHIFT 0x00000004
+#define SC_DEBUG_1__move_em1_to_em2__SHIFT 0x00000005
+#define SC_DEBUG_1__ef_data_ready__SHIFT 0x00000006
+#define SC_DEBUG_1__ef_state__SHIFT 0x00000007
+#define SC_DEBUG_1__pipe_valid__SHIFT 0x00000009
+#define SC_DEBUG_1__trigger__SHIFT 0x0000001f
+
+// SC_DEBUG_2
+#define SC_DEBUG_2__rc_rtr_dly__SHIFT 0x00000000
+#define SC_DEBUG_2__qmask_ff_alm_full_d1__SHIFT 0x00000001
+#define SC_DEBUG_2__pipe_freeze_b__SHIFT 0x00000003
+#define SC_DEBUG_2__prim_rts__SHIFT 0x00000004
+#define SC_DEBUG_2__next_prim_rts_dly__SHIFT 0x00000005
+#define SC_DEBUG_2__next_prim_rtr_dly__SHIFT 0x00000006
+#define SC_DEBUG_2__pre_stage1_rts_d1__SHIFT 0x00000007
+#define SC_DEBUG_2__stage0_rts__SHIFT 0x00000008
+#define SC_DEBUG_2__phase_rts_dly__SHIFT 0x00000009
+#define SC_DEBUG_2__end_of_prim_s1_dly__SHIFT 0x0000000f
+#define SC_DEBUG_2__pass_empty_prim_s1__SHIFT 0x00000010
+#define SC_DEBUG_2__event_id_s1__SHIFT 0x00000011
+#define SC_DEBUG_2__event_s1__SHIFT 0x00000016
+#define SC_DEBUG_2__trigger__SHIFT 0x0000001f
+
+// SC_DEBUG_3
+#define SC_DEBUG_3__x_curr_s1__SHIFT 0x00000000
+#define SC_DEBUG_3__y_curr_s1__SHIFT 0x0000000b
+#define SC_DEBUG_3__trigger__SHIFT 0x0000001f
+
+// SC_DEBUG_4
+#define SC_DEBUG_4__y_end_s1__SHIFT 0x00000000
+#define SC_DEBUG_4__y_start_s1__SHIFT 0x0000000e
+#define SC_DEBUG_4__y_dir_s1__SHIFT 0x0000001c
+#define SC_DEBUG_4__trigger__SHIFT 0x0000001f
+
+// SC_DEBUG_5
+#define SC_DEBUG_5__x_end_s1__SHIFT 0x00000000
+#define SC_DEBUG_5__x_start_s1__SHIFT 0x0000000e
+#define SC_DEBUG_5__x_dir_s1__SHIFT 0x0000001c
+#define SC_DEBUG_5__trigger__SHIFT 0x0000001f
+
+// SC_DEBUG_6
+#define SC_DEBUG_6__z_ff_empty__SHIFT 0x00000000
+#define SC_DEBUG_6__qmcntl_ff_empty__SHIFT 0x00000001
+#define SC_DEBUG_6__xy_ff_empty__SHIFT 0x00000002
+#define SC_DEBUG_6__event_flag__SHIFT 0x00000003
+#define SC_DEBUG_6__z_mask_needed__SHIFT 0x00000004
+#define SC_DEBUG_6__state__SHIFT 0x00000005
+#define SC_DEBUG_6__state_delayed__SHIFT 0x00000008
+#define SC_DEBUG_6__data_valid__SHIFT 0x0000000b
+#define SC_DEBUG_6__data_valid_d__SHIFT 0x0000000c
+#define SC_DEBUG_6__tilex_delayed__SHIFT 0x0000000d
+#define SC_DEBUG_6__tiley_delayed__SHIFT 0x00000016
+#define SC_DEBUG_6__trigger__SHIFT 0x0000001f
+
+// SC_DEBUG_7
+#define SC_DEBUG_7__event_flag__SHIFT 0x00000000
+#define SC_DEBUG_7__deallocate__SHIFT 0x00000001
+#define SC_DEBUG_7__fposition__SHIFT 0x00000004
+#define SC_DEBUG_7__sr_prim_we__SHIFT 0x00000005
+#define SC_DEBUG_7__last_tile__SHIFT 0x00000006
+#define SC_DEBUG_7__tile_ff_we__SHIFT 0x00000007
+#define SC_DEBUG_7__qs_data_valid__SHIFT 0x00000008
+#define SC_DEBUG_7__qs_q0_y__SHIFT 0x00000009
+#define SC_DEBUG_7__qs_q0_x__SHIFT 0x0000000b
+#define SC_DEBUG_7__qs_q0_valid__SHIFT 0x0000000d
+#define SC_DEBUG_7__prim_ff_we__SHIFT 0x0000000e
+#define SC_DEBUG_7__tile_ff_re__SHIFT 0x0000000f
+#define SC_DEBUG_7__fw_prim_data_valid__SHIFT 0x00000010
+#define SC_DEBUG_7__last_quad_of_tile__SHIFT 0x00000011
+#define SC_DEBUG_7__first_quad_of_tile__SHIFT 0x00000012
+#define SC_DEBUG_7__first_quad_of_prim__SHIFT 0x00000013
+#define SC_DEBUG_7__new_prim__SHIFT 0x00000014
+#define SC_DEBUG_7__load_new_tile_data__SHIFT 0x00000015
+#define SC_DEBUG_7__state__SHIFT 0x00000016
+#define SC_DEBUG_7__fifos_ready__SHIFT 0x00000018
+#define SC_DEBUG_7__trigger__SHIFT 0x0000001f
+
+// SC_DEBUG_8
+#define SC_DEBUG_8__sample_last__SHIFT 0x00000000
+#define SC_DEBUG_8__sample_mask__SHIFT 0x00000001
+#define SC_DEBUG_8__sample_y__SHIFT 0x00000005
+#define SC_DEBUG_8__sample_x__SHIFT 0x00000007
+#define SC_DEBUG_8__sample_send__SHIFT 0x00000009
+#define SC_DEBUG_8__next_cycle__SHIFT 0x0000000a
+#define SC_DEBUG_8__ez_sample_ff_full__SHIFT 0x0000000c
+#define SC_DEBUG_8__rb_sc_samp_rtr__SHIFT 0x0000000d
+#define SC_DEBUG_8__num_samples__SHIFT 0x0000000e
+#define SC_DEBUG_8__last_quad_of_tile__SHIFT 0x00000010
+#define SC_DEBUG_8__last_quad_of_prim__SHIFT 0x00000011
+#define SC_DEBUG_8__first_quad_of_prim__SHIFT 0x00000012
+#define SC_DEBUG_8__sample_we__SHIFT 0x00000013
+#define SC_DEBUG_8__fposition__SHIFT 0x00000014
+#define SC_DEBUG_8__event_id__SHIFT 0x00000015
+#define SC_DEBUG_8__event_flag__SHIFT 0x0000001a
+#define SC_DEBUG_8__fw_prim_data_valid__SHIFT 0x0000001b
+#define SC_DEBUG_8__trigger__SHIFT 0x0000001f
+
+// SC_DEBUG_9
+#define SC_DEBUG_9__rb_sc_send__SHIFT 0x00000000
+#define SC_DEBUG_9__rb_sc_ez_mask__SHIFT 0x00000001
+#define SC_DEBUG_9__fifo_data_ready__SHIFT 0x00000005
+#define SC_DEBUG_9__early_z_enable__SHIFT 0x00000006
+#define SC_DEBUG_9__mask_state__SHIFT 0x00000007
+#define SC_DEBUG_9__next_ez_mask__SHIFT 0x00000009
+#define SC_DEBUG_9__mask_ready__SHIFT 0x00000019
+#define SC_DEBUG_9__drop_sample__SHIFT 0x0000001a
+#define SC_DEBUG_9__fetch_new_sample_data__SHIFT 0x0000001b
+#define SC_DEBUG_9__fetch_new_ez_sample_mask__SHIFT 0x0000001c
+#define SC_DEBUG_9__pkr_fetch_new_sample_data__SHIFT 0x0000001d
+#define SC_DEBUG_9__pkr_fetch_new_prim_data__SHIFT 0x0000001e
+#define SC_DEBUG_9__trigger__SHIFT 0x0000001f
+
+// SC_DEBUG_10
+#define SC_DEBUG_10__combined_sample_mask__SHIFT 0x00000000
+#define SC_DEBUG_10__trigger__SHIFT 0x0000001f
+
+// SC_DEBUG_11
+#define SC_DEBUG_11__ez_sample_data_ready__SHIFT 0x00000000
+#define SC_DEBUG_11__pkr_fetch_new_sample_data__SHIFT 0x00000001
+#define SC_DEBUG_11__ez_prim_data_ready__SHIFT 0x00000002
+#define SC_DEBUG_11__pkr_fetch_new_prim_data__SHIFT 0x00000003
+#define SC_DEBUG_11__iterator_input_fz__SHIFT 0x00000004
+#define SC_DEBUG_11__packer_send_quads__SHIFT 0x00000005
+#define SC_DEBUG_11__packer_send_cmd__SHIFT 0x00000006
+#define SC_DEBUG_11__packer_send_event__SHIFT 0x00000007
+#define SC_DEBUG_11__next_state__SHIFT 0x00000008
+#define SC_DEBUG_11__state__SHIFT 0x0000000b
+#define SC_DEBUG_11__stall__SHIFT 0x0000000e
+#define SC_DEBUG_11__trigger__SHIFT 0x0000001f
+
+// SC_DEBUG_12
+#define SC_DEBUG_12__SQ_iterator_free_buff__SHIFT 0x00000000
+#define SC_DEBUG_12__event_id__SHIFT 0x00000001
+#define SC_DEBUG_12__event_flag__SHIFT 0x00000006
+#define SC_DEBUG_12__itercmdfifo_busy_nc_dly__SHIFT 0x00000007
+#define SC_DEBUG_12__itercmdfifo_full__SHIFT 0x00000008
+#define SC_DEBUG_12__itercmdfifo_empty__SHIFT 0x00000009
+#define SC_DEBUG_12__iter_ds_one_clk_command__SHIFT 0x0000000a
+#define SC_DEBUG_12__iter_ds_end_of_prim0__SHIFT 0x0000000b
+#define SC_DEBUG_12__iter_ds_end_of_vector__SHIFT 0x0000000c
+#define SC_DEBUG_12__iter_qdhit0__SHIFT 0x0000000d
+#define SC_DEBUG_12__bc_use_centers_reg__SHIFT 0x0000000e
+#define SC_DEBUG_12__bc_output_xy_reg__SHIFT 0x0000000f
+#define SC_DEBUG_12__iter_phase_out__SHIFT 0x00000010
+#define SC_DEBUG_12__iter_phase_reg__SHIFT 0x00000012
+#define SC_DEBUG_12__iterator_SP_valid__SHIFT 0x00000014
+#define SC_DEBUG_12__eopv_reg__SHIFT 0x00000015
+#define SC_DEBUG_12__one_clk_cmd_reg__SHIFT 0x00000016
+#define SC_DEBUG_12__iter_dx_end_of_prim__SHIFT 0x00000017
+#define SC_DEBUG_12__trigger__SHIFT 0x0000001f
+
+// GFX_COPY_STATE
+#define GFX_COPY_STATE__SRC_STATE_ID__SHIFT 0x00000000
+
+// VGT_DRAW_INITIATOR
+#define VGT_DRAW_INITIATOR__PRIM_TYPE__SHIFT 0x00000000
+#define VGT_DRAW_INITIATOR__SOURCE_SELECT__SHIFT 0x00000006
+#define VGT_DRAW_INITIATOR__FACENESS_CULL_SELECT__SHIFT 0x00000008
+#define VGT_DRAW_INITIATOR__INDEX_SIZE__SHIFT 0x0000000b
+#define VGT_DRAW_INITIATOR__NOT_EOP__SHIFT 0x0000000c
+#define VGT_DRAW_INITIATOR__SMALL_INDEX__SHIFT 0x0000000d
+#define VGT_DRAW_INITIATOR__PRE_FETCH_CULL_ENABLE__SHIFT 0x0000000e
+#define VGT_DRAW_INITIATOR__GRP_CULL_ENABLE__SHIFT 0x0000000f
+#define VGT_DRAW_INITIATOR__NUM_INDICES__SHIFT 0x00000010
+
+// VGT_EVENT_INITIATOR
+#define VGT_EVENT_INITIATOR__EVENT_TYPE__SHIFT 0x00000000
+
+// VGT_DMA_BASE
+#define VGT_DMA_BASE__BASE_ADDR__SHIFT 0x00000000
+
+// VGT_DMA_SIZE
+#define VGT_DMA_SIZE__NUM_WORDS__SHIFT 0x00000000
+#define VGT_DMA_SIZE__SWAP_MODE__SHIFT 0x0000001e
+
+// VGT_BIN_BASE
+#define VGT_BIN_BASE__BIN_BASE_ADDR__SHIFT 0x00000000
+
+// VGT_BIN_SIZE
+#define VGT_BIN_SIZE__NUM_WORDS__SHIFT 0x00000000
+#define VGT_BIN_SIZE__FACENESS_FETCH__SHIFT 0x0000001e
+#define VGT_BIN_SIZE__FACENESS_RESET__SHIFT 0x0000001f
+
+// VGT_CURRENT_BIN_ID_MIN
+#define VGT_CURRENT_BIN_ID_MIN__COLUMN__SHIFT 0x00000000
+#define VGT_CURRENT_BIN_ID_MIN__ROW__SHIFT 0x00000003
+#define VGT_CURRENT_BIN_ID_MIN__GUARD_BAND__SHIFT 0x00000006
+
+// VGT_CURRENT_BIN_ID_MAX
+#define VGT_CURRENT_BIN_ID_MAX__COLUMN__SHIFT 0x00000000
+#define VGT_CURRENT_BIN_ID_MAX__ROW__SHIFT 0x00000003
+#define VGT_CURRENT_BIN_ID_MAX__GUARD_BAND__SHIFT 0x00000006
+
+// VGT_IMMED_DATA
+#define VGT_IMMED_DATA__DATA__SHIFT 0x00000000
+
+// VGT_MAX_VTX_INDX
+#define VGT_MAX_VTX_INDX__MAX_INDX__SHIFT 0x00000000
+
+// VGT_MIN_VTX_INDX
+#define VGT_MIN_VTX_INDX__MIN_INDX__SHIFT 0x00000000
+
+// VGT_INDX_OFFSET
+#define VGT_INDX_OFFSET__INDX_OFFSET__SHIFT 0x00000000
+
+// VGT_VERTEX_REUSE_BLOCK_CNTL
+#define VGT_VERTEX_REUSE_BLOCK_CNTL__VTX_REUSE_DEPTH__SHIFT 0x00000000
+
+// VGT_OUT_DEALLOC_CNTL
+#define VGT_OUT_DEALLOC_CNTL__DEALLOC_DIST__SHIFT 0x00000000
+
+// VGT_MULTI_PRIM_IB_RESET_INDX
+#define VGT_MULTI_PRIM_IB_RESET_INDX__RESET_INDX__SHIFT 0x00000000
+
+// VGT_ENHANCE
+#define VGT_ENHANCE__MISC__SHIFT 0x00000000
+
+// VGT_VTX_VECT_EJECT_REG
+#define VGT_VTX_VECT_EJECT_REG__PRIM_COUNT__SHIFT 0x00000000
+
+// VGT_LAST_COPY_STATE
+#define VGT_LAST_COPY_STATE__SRC_STATE_ID__SHIFT 0x00000000
+#define VGT_LAST_COPY_STATE__DST_STATE_ID__SHIFT 0x00000010
+
+// VGT_DEBUG_CNTL
+#define VGT_DEBUG_CNTL__VGT_DEBUG_INDX__SHIFT 0x00000000
+
+// VGT_DEBUG_DATA
+#define VGT_DEBUG_DATA__DATA__SHIFT 0x00000000
+
+// VGT_CNTL_STATUS
+#define VGT_CNTL_STATUS__VGT_BUSY__SHIFT 0x00000000
+#define VGT_CNTL_STATUS__VGT_DMA_BUSY__SHIFT 0x00000001
+#define VGT_CNTL_STATUS__VGT_DMA_REQ_BUSY__SHIFT 0x00000002
+#define VGT_CNTL_STATUS__VGT_GRP_BUSY__SHIFT 0x00000003
+#define VGT_CNTL_STATUS__VGT_VR_BUSY__SHIFT 0x00000004
+#define VGT_CNTL_STATUS__VGT_BIN_BUSY__SHIFT 0x00000005
+#define VGT_CNTL_STATUS__VGT_PT_BUSY__SHIFT 0x00000006
+#define VGT_CNTL_STATUS__VGT_OUT_BUSY__SHIFT 0x00000007
+#define VGT_CNTL_STATUS__VGT_OUT_INDX_BUSY__SHIFT 0x00000008
+
+// VGT_DEBUG_REG0
+#define VGT_DEBUG_REG0__te_grp_busy__SHIFT 0x00000000
+#define VGT_DEBUG_REG0__pt_grp_busy__SHIFT 0x00000001
+#define VGT_DEBUG_REG0__vr_grp_busy__SHIFT 0x00000002
+#define VGT_DEBUG_REG0__dma_request_busy__SHIFT 0x00000003
+#define VGT_DEBUG_REG0__out_busy__SHIFT 0x00000004
+#define VGT_DEBUG_REG0__grp_backend_busy__SHIFT 0x00000005
+#define VGT_DEBUG_REG0__grp_busy__SHIFT 0x00000006
+#define VGT_DEBUG_REG0__dma_busy__SHIFT 0x00000007
+#define VGT_DEBUG_REG0__rbiu_dma_request_busy__SHIFT 0x00000008
+#define VGT_DEBUG_REG0__rbiu_busy__SHIFT 0x00000009
+#define VGT_DEBUG_REG0__vgt_no_dma_busy_extended__SHIFT 0x0000000a
+#define VGT_DEBUG_REG0__vgt_no_dma_busy__SHIFT 0x0000000b
+#define VGT_DEBUG_REG0__vgt_busy_extended__SHIFT 0x0000000c
+#define VGT_DEBUG_REG0__vgt_busy__SHIFT 0x0000000d
+#define VGT_DEBUG_REG0__rbbm_skid_fifo_busy_out__SHIFT 0x0000000e
+#define VGT_DEBUG_REG0__VGT_RBBM_no_dma_busy__SHIFT 0x0000000f
+#define VGT_DEBUG_REG0__VGT_RBBM_busy__SHIFT 0x00000010
+
+// VGT_DEBUG_REG1
+#define VGT_DEBUG_REG1__out_te_data_read__SHIFT 0x00000000
+#define VGT_DEBUG_REG1__te_out_data_valid__SHIFT 0x00000001
+#define VGT_DEBUG_REG1__out_pt_prim_read__SHIFT 0x00000002
+#define VGT_DEBUG_REG1__pt_out_prim_valid__SHIFT 0x00000003
+#define VGT_DEBUG_REG1__out_pt_data_read__SHIFT 0x00000004
+#define VGT_DEBUG_REG1__pt_out_indx_valid__SHIFT 0x00000005
+#define VGT_DEBUG_REG1__out_vr_prim_read__SHIFT 0x00000006
+#define VGT_DEBUG_REG1__vr_out_prim_valid__SHIFT 0x00000007
+#define VGT_DEBUG_REG1__out_vr_indx_read__SHIFT 0x00000008
+#define VGT_DEBUG_REG1__vr_out_indx_valid__SHIFT 0x00000009
+#define VGT_DEBUG_REG1__te_grp_read__SHIFT 0x0000000a
+#define VGT_DEBUG_REG1__grp_te_valid__SHIFT 0x0000000b
+#define VGT_DEBUG_REG1__pt_grp_read__SHIFT 0x0000000c
+#define VGT_DEBUG_REG1__grp_pt_valid__SHIFT 0x0000000d
+#define VGT_DEBUG_REG1__vr_grp_read__SHIFT 0x0000000e
+#define VGT_DEBUG_REG1__grp_vr_valid__SHIFT 0x0000000f
+#define VGT_DEBUG_REG1__grp_dma_read__SHIFT 0x00000010
+#define VGT_DEBUG_REG1__dma_grp_valid__SHIFT 0x00000011
+#define VGT_DEBUG_REG1__grp_rbiu_di_read__SHIFT 0x00000012
+#define VGT_DEBUG_REG1__rbiu_grp_di_valid__SHIFT 0x00000013
+#define VGT_DEBUG_REG1__MH_VGT_rtr__SHIFT 0x00000014
+#define VGT_DEBUG_REG1__VGT_MH_send__SHIFT 0x00000015
+#define VGT_DEBUG_REG1__PA_VGT_clip_s_rtr__SHIFT 0x00000016
+#define VGT_DEBUG_REG1__VGT_PA_clip_s_send__SHIFT 0x00000017
+#define VGT_DEBUG_REG1__PA_VGT_clip_p_rtr__SHIFT 0x00000018
+#define VGT_DEBUG_REG1__VGT_PA_clip_p_send__SHIFT 0x00000019
+#define VGT_DEBUG_REG1__PA_VGT_clip_v_rtr__SHIFT 0x0000001a
+#define VGT_DEBUG_REG1__VGT_PA_clip_v_send__SHIFT 0x0000001b
+#define VGT_DEBUG_REG1__SQ_VGT_rtr__SHIFT 0x0000001c
+#define VGT_DEBUG_REG1__VGT_SQ_send__SHIFT 0x0000001d
+#define VGT_DEBUG_REG1__mh_vgt_tag_7_q__SHIFT 0x0000001e
+
+// VGT_DEBUG_REG3
+#define VGT_DEBUG_REG3__vgt_clk_en__SHIFT 0x00000000
+#define VGT_DEBUG_REG3__reg_fifos_clk_en__SHIFT 0x00000001
+
+// VGT_DEBUG_REG6
+#define VGT_DEBUG_REG6__shifter_byte_count_q__SHIFT 0x00000000
+#define VGT_DEBUG_REG6__right_word_indx_q__SHIFT 0x00000005
+#define VGT_DEBUG_REG6__input_data_valid__SHIFT 0x0000000a
+#define VGT_DEBUG_REG6__input_data_xfer__SHIFT 0x0000000b
+#define VGT_DEBUG_REG6__next_shift_is_vect_1_q__SHIFT 0x0000000c
+#define VGT_DEBUG_REG6__next_shift_is_vect_1_d__SHIFT 0x0000000d
+#define VGT_DEBUG_REG6__next_shift_is_vect_1_pre_d__SHIFT 0x0000000e
+#define VGT_DEBUG_REG6__space_avail_from_shift__SHIFT 0x0000000f
+#define VGT_DEBUG_REG6__shifter_first_load__SHIFT 0x00000010
+#define VGT_DEBUG_REG6__di_state_sel_q__SHIFT 0x00000011
+#define VGT_DEBUG_REG6__shifter_waiting_for_first_load_q__SHIFT 0x00000012
+#define VGT_DEBUG_REG6__di_first_group_flag_q__SHIFT 0x00000013
+#define VGT_DEBUG_REG6__di_event_flag_q__SHIFT 0x00000014
+#define VGT_DEBUG_REG6__read_draw_initiator__SHIFT 0x00000015
+#define VGT_DEBUG_REG6__loading_di_requires_shifter__SHIFT 0x00000016
+#define VGT_DEBUG_REG6__last_shift_of_packet__SHIFT 0x00000017
+#define VGT_DEBUG_REG6__last_decr_of_packet__SHIFT 0x00000018
+#define VGT_DEBUG_REG6__extract_vector__SHIFT 0x00000019
+#define VGT_DEBUG_REG6__shift_vect_rtr__SHIFT 0x0000001a
+#define VGT_DEBUG_REG6__destination_rtr__SHIFT 0x0000001b
+#define VGT_DEBUG_REG6__grp_trigger__SHIFT 0x0000001c
+
+// VGT_DEBUG_REG7
+#define VGT_DEBUG_REG7__di_index_counter_q__SHIFT 0x00000000
+#define VGT_DEBUG_REG7__shift_amount_no_extract__SHIFT 0x00000010
+#define VGT_DEBUG_REG7__shift_amount_extract__SHIFT 0x00000014
+#define VGT_DEBUG_REG7__di_prim_type_q__SHIFT 0x00000018
+#define VGT_DEBUG_REG7__current_source_sel__SHIFT 0x0000001e
+
+// VGT_DEBUG_REG8
+#define VGT_DEBUG_REG8__current_source_sel__SHIFT 0x00000000
+#define VGT_DEBUG_REG8__left_word_indx_q__SHIFT 0x00000002
+#define VGT_DEBUG_REG8__input_data_cnt__SHIFT 0x00000007
+#define VGT_DEBUG_REG8__input_data_lsw__SHIFT 0x0000000c
+#define VGT_DEBUG_REG8__input_data_msw__SHIFT 0x00000011
+#define VGT_DEBUG_REG8__next_small_stride_shift_limit_q__SHIFT 0x00000016
+#define VGT_DEBUG_REG8__current_small_stride_shift_limit_q__SHIFT 0x0000001b
+
+// VGT_DEBUG_REG9
+#define VGT_DEBUG_REG9__next_stride_q__SHIFT 0x00000000
+#define VGT_DEBUG_REG9__next_stride_d__SHIFT 0x00000005
+#define VGT_DEBUG_REG9__current_shift_q__SHIFT 0x0000000a
+#define VGT_DEBUG_REG9__current_shift_d__SHIFT 0x0000000f
+#define VGT_DEBUG_REG9__current_stride_q__SHIFT 0x00000014
+#define VGT_DEBUG_REG9__current_stride_d__SHIFT 0x00000019
+#define VGT_DEBUG_REG9__grp_trigger__SHIFT 0x0000001e
+
+// VGT_DEBUG_REG10
+#define VGT_DEBUG_REG10__temp_derived_di_prim_type_t0__SHIFT 0x00000000
+#define VGT_DEBUG_REG10__temp_derived_di_small_index_t0__SHIFT 0x00000001
+#define VGT_DEBUG_REG10__temp_derived_di_cull_enable_t0__SHIFT 0x00000002
+#define VGT_DEBUG_REG10__temp_derived_di_pre_fetch_cull_enable_t0__SHIFT 0x00000003
+#define VGT_DEBUG_REG10__di_state_sel_q__SHIFT 0x00000004
+#define VGT_DEBUG_REG10__last_decr_of_packet__SHIFT 0x00000005
+#define VGT_DEBUG_REG10__bin_valid__SHIFT 0x00000006
+#define VGT_DEBUG_REG10__read_block__SHIFT 0x00000007
+#define VGT_DEBUG_REG10__grp_bgrp_last_bit_read__SHIFT 0x00000008
+#define VGT_DEBUG_REG10__last_bit_enable_q__SHIFT 0x00000009
+#define VGT_DEBUG_REG10__last_bit_end_di_q__SHIFT 0x0000000a
+#define VGT_DEBUG_REG10__selected_data__SHIFT 0x0000000b
+#define VGT_DEBUG_REG10__mask_input_data__SHIFT 0x00000013
+#define VGT_DEBUG_REG10__gap_q__SHIFT 0x0000001b
+#define VGT_DEBUG_REG10__temp_mini_reset_z__SHIFT 0x0000001c
+#define VGT_DEBUG_REG10__temp_mini_reset_y__SHIFT 0x0000001d
+#define VGT_DEBUG_REG10__temp_mini_reset_x__SHIFT 0x0000001e
+#define VGT_DEBUG_REG10__grp_trigger__SHIFT 0x0000001f
+
+// VGT_DEBUG_REG12
+#define VGT_DEBUG_REG12__shifter_byte_count_q__SHIFT 0x00000000
+#define VGT_DEBUG_REG12__right_word_indx_q__SHIFT 0x00000005
+#define VGT_DEBUG_REG12__input_data_valid__SHIFT 0x0000000a
+#define VGT_DEBUG_REG12__input_data_xfer__SHIFT 0x0000000b
+#define VGT_DEBUG_REG12__next_shift_is_vect_1_q__SHIFT 0x0000000c
+#define VGT_DEBUG_REG12__next_shift_is_vect_1_d__SHIFT 0x0000000d
+#define VGT_DEBUG_REG12__next_shift_is_vect_1_pre_d__SHIFT 0x0000000e
+#define VGT_DEBUG_REG12__space_avail_from_shift__SHIFT 0x0000000f
+#define VGT_DEBUG_REG12__shifter_first_load__SHIFT 0x00000010
+#define VGT_DEBUG_REG12__di_state_sel_q__SHIFT 0x00000011
+#define VGT_DEBUG_REG12__shifter_waiting_for_first_load_q__SHIFT 0x00000012
+#define VGT_DEBUG_REG12__di_first_group_flag_q__SHIFT 0x00000013
+#define VGT_DEBUG_REG12__di_event_flag_q__SHIFT 0x00000014
+#define VGT_DEBUG_REG12__read_draw_initiator__SHIFT 0x00000015
+#define VGT_DEBUG_REG12__loading_di_requires_shifter__SHIFT 0x00000016
+#define VGT_DEBUG_REG12__last_shift_of_packet__SHIFT 0x00000017
+#define VGT_DEBUG_REG12__last_decr_of_packet__SHIFT 0x00000018
+#define VGT_DEBUG_REG12__extract_vector__SHIFT 0x00000019
+#define VGT_DEBUG_REG12__shift_vect_rtr__SHIFT 0x0000001a
+#define VGT_DEBUG_REG12__destination_rtr__SHIFT 0x0000001b
+#define VGT_DEBUG_REG12__bgrp_trigger__SHIFT 0x0000001c
+
+// VGT_DEBUG_REG13
+#define VGT_DEBUG_REG13__di_index_counter_q__SHIFT 0x00000000
+#define VGT_DEBUG_REG13__shift_amount_no_extract__SHIFT 0x00000010
+#define VGT_DEBUG_REG13__shift_amount_extract__SHIFT 0x00000014
+#define VGT_DEBUG_REG13__di_prim_type_q__SHIFT 0x00000018
+#define VGT_DEBUG_REG13__current_source_sel__SHIFT 0x0000001e
+
+// VGT_DEBUG_REG14
+#define VGT_DEBUG_REG14__current_source_sel__SHIFT 0x00000000
+#define VGT_DEBUG_REG14__left_word_indx_q__SHIFT 0x00000002
+#define VGT_DEBUG_REG14__input_data_cnt__SHIFT 0x00000007
+#define VGT_DEBUG_REG14__input_data_lsw__SHIFT 0x0000000c
+#define VGT_DEBUG_REG14__input_data_msw__SHIFT 0x00000011
+#define VGT_DEBUG_REG14__next_small_stride_shift_limit_q__SHIFT 0x00000016
+#define VGT_DEBUG_REG14__current_small_stride_shift_limit_q__SHIFT 0x0000001b
+
+// VGT_DEBUG_REG15
+#define VGT_DEBUG_REG15__next_stride_q__SHIFT 0x00000000
+#define VGT_DEBUG_REG15__next_stride_d__SHIFT 0x00000005
+#define VGT_DEBUG_REG15__current_shift_q__SHIFT 0x0000000a
+#define VGT_DEBUG_REG15__current_shift_d__SHIFT 0x0000000f
+#define VGT_DEBUG_REG15__current_stride_q__SHIFT 0x00000014
+#define VGT_DEBUG_REG15__current_stride_d__SHIFT 0x00000019
+#define VGT_DEBUG_REG15__bgrp_trigger__SHIFT 0x0000001e
+
+// VGT_DEBUG_REG16
+#define VGT_DEBUG_REG16__bgrp_cull_fetch_fifo_full__SHIFT 0x00000000
+#define VGT_DEBUG_REG16__bgrp_cull_fetch_fifo_empty__SHIFT 0x00000001
+#define VGT_DEBUG_REG16__dma_bgrp_cull_fetch_read__SHIFT 0x00000002
+#define VGT_DEBUG_REG16__bgrp_cull_fetch_fifo_we__SHIFT 0x00000003
+#define VGT_DEBUG_REG16__bgrp_byte_mask_fifo_full__SHIFT 0x00000004
+#define VGT_DEBUG_REG16__bgrp_byte_mask_fifo_empty__SHIFT 0x00000005
+#define VGT_DEBUG_REG16__bgrp_byte_mask_fifo_re_q__SHIFT 0x00000006
+#define VGT_DEBUG_REG16__bgrp_byte_mask_fifo_we__SHIFT 0x00000007
+#define VGT_DEBUG_REG16__bgrp_dma_mask_kill__SHIFT 0x00000008
+#define VGT_DEBUG_REG16__bgrp_grp_bin_valid__SHIFT 0x00000009
+#define VGT_DEBUG_REG16__rst_last_bit__SHIFT 0x0000000a
+#define VGT_DEBUG_REG16__current_state_q__SHIFT 0x0000000b
+#define VGT_DEBUG_REG16__old_state_q__SHIFT 0x0000000c
+#define VGT_DEBUG_REG16__old_state_en__SHIFT 0x0000000d
+#define VGT_DEBUG_REG16__prev_last_bit_q__SHIFT 0x0000000e
+#define VGT_DEBUG_REG16__dbl_last_bit_q__SHIFT 0x0000000f
+#define VGT_DEBUG_REG16__last_bit_block_q__SHIFT 0x00000010
+#define VGT_DEBUG_REG16__ast_bit_block2_q__SHIFT 0x00000011
+#define VGT_DEBUG_REG16__load_empty_reg__SHIFT 0x00000012
+#define VGT_DEBUG_REG16__bgrp_grp_byte_mask_rdata__SHIFT 0x00000013
+#define VGT_DEBUG_REG16__dma_bgrp_dma_data_fifo_rptr__SHIFT 0x0000001b
+#define VGT_DEBUG_REG16__top_di_pre_fetch_cull_enable__SHIFT 0x0000001d
+#define VGT_DEBUG_REG16__top_di_grp_cull_enable_q__SHIFT 0x0000001e
+#define VGT_DEBUG_REG16__bgrp_trigger__SHIFT 0x0000001f
+
+// VGT_DEBUG_REG17
+#define VGT_DEBUG_REG17__save_read_q__SHIFT 0x00000000
+#define VGT_DEBUG_REG17__extend_read_q__SHIFT 0x00000001
+#define VGT_DEBUG_REG17__grp_indx_size__SHIFT 0x00000002
+#define VGT_DEBUG_REG17__cull_prim_true__SHIFT 0x00000004
+#define VGT_DEBUG_REG17__reset_bit2_q__SHIFT 0x00000005
+#define VGT_DEBUG_REG17__reset_bit1_q__SHIFT 0x00000006
+#define VGT_DEBUG_REG17__first_reg_first_q__SHIFT 0x00000007
+#define VGT_DEBUG_REG17__check_second_reg__SHIFT 0x00000008
+#define VGT_DEBUG_REG17__check_first_reg__SHIFT 0x00000009
+#define VGT_DEBUG_REG17__bgrp_cull_fetch_fifo_wdata__SHIFT 0x0000000a
+#define VGT_DEBUG_REG17__save_cull_fetch_data2_q__SHIFT 0x0000000b
+#define VGT_DEBUG_REG17__save_cull_fetch_data1_q__SHIFT 0x0000000c
+#define VGT_DEBUG_REG17__save_byte_mask_data2_q__SHIFT 0x0000000d
+#define VGT_DEBUG_REG17__save_byte_mask_data1_q__SHIFT 0x0000000e
+#define VGT_DEBUG_REG17__to_second_reg_q__SHIFT 0x0000000f
+#define VGT_DEBUG_REG17__roll_over_msk_q__SHIFT 0x00000010
+#define VGT_DEBUG_REG17__max_msk_ptr_q__SHIFT 0x00000011
+#define VGT_DEBUG_REG17__min_msk_ptr_q__SHIFT 0x00000018
+#define VGT_DEBUG_REG17__bgrp_trigger__SHIFT 0x0000001f
+
+// VGT_DEBUG_REG18
+#define VGT_DEBUG_REG18__dma_data_fifo_mem_raddr__SHIFT 0x00000000
+#define VGT_DEBUG_REG18__dma_data_fifo_mem_waddr__SHIFT 0x00000006
+#define VGT_DEBUG_REG18__dma_bgrp_byte_mask_fifo_re__SHIFT 0x0000000c
+#define VGT_DEBUG_REG18__dma_bgrp_dma_data_fifo_rptr__SHIFT 0x0000000d
+#define VGT_DEBUG_REG18__dma_mem_full__SHIFT 0x0000000f
+#define VGT_DEBUG_REG18__dma_ram_re__SHIFT 0x00000010
+#define VGT_DEBUG_REG18__dma_ram_we__SHIFT 0x00000011
+#define VGT_DEBUG_REG18__dma_mem_empty__SHIFT 0x00000012
+#define VGT_DEBUG_REG18__dma_data_fifo_mem_re__SHIFT 0x00000013
+#define VGT_DEBUG_REG18__dma_data_fifo_mem_we__SHIFT 0x00000014
+#define VGT_DEBUG_REG18__bin_mem_full__SHIFT 0x00000015
+#define VGT_DEBUG_REG18__bin_ram_we__SHIFT 0x00000016
+#define VGT_DEBUG_REG18__bin_ram_re__SHIFT 0x00000017
+#define VGT_DEBUG_REG18__bin_mem_empty__SHIFT 0x00000018
+#define VGT_DEBUG_REG18__start_bin_req__SHIFT 0x00000019
+#define VGT_DEBUG_REG18__fetch_cull_not_used__SHIFT 0x0000001a
+#define VGT_DEBUG_REG18__dma_req_xfer__SHIFT 0x0000001b
+#define VGT_DEBUG_REG18__have_valid_bin_req__SHIFT 0x0000001c
+#define VGT_DEBUG_REG18__have_valid_dma_req__SHIFT 0x0000001d
+#define VGT_DEBUG_REG18__bgrp_dma_di_grp_cull_enable__SHIFT 0x0000001e
+#define VGT_DEBUG_REG18__bgrp_dma_di_pre_fetch_cull_enable__SHIFT 0x0000001f
+
+// VGT_DEBUG_REG20
+#define VGT_DEBUG_REG20__prim_side_indx_valid__SHIFT 0x00000000
+#define VGT_DEBUG_REG20__indx_side_fifo_empty__SHIFT 0x00000001
+#define VGT_DEBUG_REG20__indx_side_fifo_re__SHIFT 0x00000002
+#define VGT_DEBUG_REG20__indx_side_fifo_we__SHIFT 0x00000003
+#define VGT_DEBUG_REG20__indx_side_fifo_full__SHIFT 0x00000004
+#define VGT_DEBUG_REG20__prim_buffer_empty__SHIFT 0x00000005
+#define VGT_DEBUG_REG20__prim_buffer_re__SHIFT 0x00000006
+#define VGT_DEBUG_REG20__prim_buffer_we__SHIFT 0x00000007
+#define VGT_DEBUG_REG20__prim_buffer_full__SHIFT 0x00000008
+#define VGT_DEBUG_REG20__indx_buffer_empty__SHIFT 0x00000009
+#define VGT_DEBUG_REG20__indx_buffer_re__SHIFT 0x0000000a
+#define VGT_DEBUG_REG20__indx_buffer_we__SHIFT 0x0000000b
+#define VGT_DEBUG_REG20__indx_buffer_full__SHIFT 0x0000000c
+#define VGT_DEBUG_REG20__hold_prim__SHIFT 0x0000000d
+#define VGT_DEBUG_REG20__sent_cnt__SHIFT 0x0000000e
+#define VGT_DEBUG_REG20__start_of_vtx_vector__SHIFT 0x00000012
+#define VGT_DEBUG_REG20__clip_s_pre_hold_prim__SHIFT 0x00000013
+#define VGT_DEBUG_REG20__clip_p_pre_hold_prim__SHIFT 0x00000014
+#define VGT_DEBUG_REG20__buffered_prim_type_event__SHIFT 0x00000015
+#define VGT_DEBUG_REG20__out_trigger__SHIFT 0x0000001a
+
+// VGT_DEBUG_REG21
+#define VGT_DEBUG_REG21__null_terminate_vtx_vector__SHIFT 0x00000000
+#define VGT_DEBUG_REG21__prim_end_of_vtx_vect_flags__SHIFT 0x00000001
+#define VGT_DEBUG_REG21__alloc_counter_q__SHIFT 0x00000004
+#define VGT_DEBUG_REG21__curr_slot_in_vtx_vect_q__SHIFT 0x00000007
+#define VGT_DEBUG_REG21__int_vtx_counter_q__SHIFT 0x0000000a
+#define VGT_DEBUG_REG21__curr_dealloc_distance_q__SHIFT 0x0000000e
+#define VGT_DEBUG_REG21__new_packet_q__SHIFT 0x00000012
+#define VGT_DEBUG_REG21__new_allocate_q__SHIFT 0x00000013
+#define VGT_DEBUG_REG21__num_new_unique_rel_indx__SHIFT 0x00000014
+#define VGT_DEBUG_REG21__inserted_null_prim_q__SHIFT 0x00000016
+#define VGT_DEBUG_REG21__insert_null_prim__SHIFT 0x00000017
+#define VGT_DEBUG_REG21__buffered_prim_eop_mux__SHIFT 0x00000018
+#define VGT_DEBUG_REG21__prim_buffer_empty_mux__SHIFT 0x00000019
+#define VGT_DEBUG_REG21__buffered_thread_size__SHIFT 0x0000001a
+#define VGT_DEBUG_REG21__out_trigger__SHIFT 0x0000001f
+
+// VGT_CRC_SQ_DATA
+#define VGT_CRC_SQ_DATA__CRC__SHIFT 0x00000000
+
+// VGT_CRC_SQ_CTRL
+#define VGT_CRC_SQ_CTRL__CRC__SHIFT 0x00000000
+
+// VGT_PERFCOUNTER0_SELECT
+#define VGT_PERFCOUNTER0_SELECT__PERF_SEL__SHIFT 0x00000000
+
+// VGT_PERFCOUNTER1_SELECT
+#define VGT_PERFCOUNTER1_SELECT__PERF_SEL__SHIFT 0x00000000
+
+// VGT_PERFCOUNTER2_SELECT
+#define VGT_PERFCOUNTER2_SELECT__PERF_SEL__SHIFT 0x00000000
+
+// VGT_PERFCOUNTER3_SELECT
+#define VGT_PERFCOUNTER3_SELECT__PERF_SEL__SHIFT 0x00000000
+
+// VGT_PERFCOUNTER0_LOW
+#define VGT_PERFCOUNTER0_LOW__PERF_COUNT__SHIFT 0x00000000
+
+// VGT_PERFCOUNTER1_LOW
+#define VGT_PERFCOUNTER1_LOW__PERF_COUNT__SHIFT 0x00000000
+
+// VGT_PERFCOUNTER2_LOW
+#define VGT_PERFCOUNTER2_LOW__PERF_COUNT__SHIFT 0x00000000
+
+// VGT_PERFCOUNTER3_LOW
+#define VGT_PERFCOUNTER3_LOW__PERF_COUNT__SHIFT 0x00000000
+
+// VGT_PERFCOUNTER0_HI
+#define VGT_PERFCOUNTER0_HI__PERF_COUNT__SHIFT 0x00000000
+
+// VGT_PERFCOUNTER1_HI
+#define VGT_PERFCOUNTER1_HI__PERF_COUNT__SHIFT 0x00000000
+
+// VGT_PERFCOUNTER2_HI
+#define VGT_PERFCOUNTER2_HI__PERF_COUNT__SHIFT 0x00000000
+
+// VGT_PERFCOUNTER3_HI
+#define VGT_PERFCOUNTER3_HI__PERF_COUNT__SHIFT 0x00000000
+
+// TC_CNTL_STATUS
+#define TC_CNTL_STATUS__L2_INVALIDATE__SHIFT 0x00000000
+#define TC_CNTL_STATUS__TC_L2_HIT_MISS__SHIFT 0x00000012
+#define TC_CNTL_STATUS__TC_BUSY__SHIFT 0x0000001f
+
+// TCR_CHICKEN
+#define TCR_CHICKEN__SPARE__SHIFT 0x00000000
+
+// TCF_CHICKEN
+#define TCF_CHICKEN__SPARE__SHIFT 0x00000000
+
+// TCM_CHICKEN
+#define TCM_CHICKEN__TCO_READ_LATENCY_FIFO_PROG_DEPTH__SHIFT 0x00000000
+#define TCM_CHICKEN__ETC_COLOR_ENDIAN__SHIFT 0x00000008
+#define TCM_CHICKEN__SPARE__SHIFT 0x00000009
+
+// TCR_PERFCOUNTER0_SELECT
+#define TCR_PERFCOUNTER0_SELECT__PERFCOUNTER_SELECT__SHIFT 0x00000000
+
+// TCR_PERFCOUNTER1_SELECT
+#define TCR_PERFCOUNTER1_SELECT__PERFCOUNTER_SELECT__SHIFT 0x00000000
+
+// TCR_PERFCOUNTER0_HI
+#define TCR_PERFCOUNTER0_HI__PERFCOUNTER_HI__SHIFT 0x00000000
+
+// TCR_PERFCOUNTER1_HI
+#define TCR_PERFCOUNTER1_HI__PERFCOUNTER_HI__SHIFT 0x00000000
+
+// TCR_PERFCOUNTER0_LOW
+#define TCR_PERFCOUNTER0_LOW__PERFCOUNTER_LOW__SHIFT 0x00000000
+
+// TCR_PERFCOUNTER1_LOW
+#define TCR_PERFCOUNTER1_LOW__PERFCOUNTER_LOW__SHIFT 0x00000000
+
+// TP_TC_CLKGATE_CNTL
+#define TP_TC_CLKGATE_CNTL__TP_BUSY_EXTEND__SHIFT 0x00000000
+#define TP_TC_CLKGATE_CNTL__TC_BUSY_EXTEND__SHIFT 0x00000003
+
+// TPC_CNTL_STATUS
+#define TPC_CNTL_STATUS__TPC_INPUT_BUSY__SHIFT 0x00000000
+#define TPC_CNTL_STATUS__TPC_TC_FIFO_BUSY__SHIFT 0x00000001
+#define TPC_CNTL_STATUS__TPC_STATE_FIFO_BUSY__SHIFT 0x00000002
+#define TPC_CNTL_STATUS__TPC_FETCH_FIFO_BUSY__SHIFT 0x00000003
+#define TPC_CNTL_STATUS__TPC_WALKER_PIPE_BUSY__SHIFT 0x00000004
+#define TPC_CNTL_STATUS__TPC_WALK_FIFO_BUSY__SHIFT 0x00000005
+#define TPC_CNTL_STATUS__TPC_WALKER_BUSY__SHIFT 0x00000006
+#define TPC_CNTL_STATUS__TPC_ALIGNER_PIPE_BUSY__SHIFT 0x00000008
+#define TPC_CNTL_STATUS__TPC_ALIGN_FIFO_BUSY__SHIFT 0x00000009
+#define TPC_CNTL_STATUS__TPC_ALIGNER_BUSY__SHIFT 0x0000000a
+#define TPC_CNTL_STATUS__TPC_RR_FIFO_BUSY__SHIFT 0x0000000c
+#define TPC_CNTL_STATUS__TPC_BLEND_PIPE_BUSY__SHIFT 0x0000000d
+#define TPC_CNTL_STATUS__TPC_OUT_FIFO_BUSY__SHIFT 0x0000000e
+#define TPC_CNTL_STATUS__TPC_BLEND_BUSY__SHIFT 0x0000000f
+#define TPC_CNTL_STATUS__TF_TW_RTS__SHIFT 0x00000010
+#define TPC_CNTL_STATUS__TF_TW_STATE_RTS__SHIFT 0x00000011
+#define TPC_CNTL_STATUS__TF_TW_RTR__SHIFT 0x00000013
+#define TPC_CNTL_STATUS__TW_TA_RTS__SHIFT 0x00000014
+#define TPC_CNTL_STATUS__TW_TA_TT_RTS__SHIFT 0x00000015
+#define TPC_CNTL_STATUS__TW_TA_LAST_RTS__SHIFT 0x00000016
+#define TPC_CNTL_STATUS__TW_TA_RTR__SHIFT 0x00000017
+#define TPC_CNTL_STATUS__TA_TB_RTS__SHIFT 0x00000018
+#define TPC_CNTL_STATUS__TA_TB_TT_RTS__SHIFT 0x00000019
+#define TPC_CNTL_STATUS__TA_TB_RTR__SHIFT 0x0000001b
+#define TPC_CNTL_STATUS__TA_TF_RTS__SHIFT 0x0000001c
+#define TPC_CNTL_STATUS__TA_TF_TC_FIFO_REN__SHIFT 0x0000001d
+#define TPC_CNTL_STATUS__TP_SQ_DEC__SHIFT 0x0000001e
+#define TPC_CNTL_STATUS__TPC_BUSY__SHIFT 0x0000001f
+
+// TPC_DEBUG0
+#define TPC_DEBUG0__LOD_CNTL__SHIFT 0x00000000
+#define TPC_DEBUG0__IC_CTR__SHIFT 0x00000002
+#define TPC_DEBUG0__WALKER_CNTL__SHIFT 0x00000004
+#define TPC_DEBUG0__ALIGNER_CNTL__SHIFT 0x00000008
+#define TPC_DEBUG0__PREV_TC_STATE_VALID__SHIFT 0x0000000c
+#define TPC_DEBUG0__WALKER_STATE__SHIFT 0x00000010
+#define TPC_DEBUG0__ALIGNER_STATE__SHIFT 0x0000001a
+#define TPC_DEBUG0__REG_CLK_EN__SHIFT 0x0000001d
+#define TPC_DEBUG0__TPC_CLK_EN__SHIFT 0x0000001e
+#define TPC_DEBUG0__SQ_TP_WAKEUP__SHIFT 0x0000001f
+
+// TPC_DEBUG1
+#define TPC_DEBUG1__UNUSED__SHIFT 0x00000000
+
+// TPC_CHICKEN
+#define TPC_CHICKEN__BLEND_PRECISION__SHIFT 0x00000000
+#define TPC_CHICKEN__SPARE__SHIFT 0x00000001
+
+// TP0_CNTL_STATUS
+#define TP0_CNTL_STATUS__TP_INPUT_BUSY__SHIFT 0x00000000
+#define TP0_CNTL_STATUS__TP_LOD_BUSY__SHIFT 0x00000001
+#define TP0_CNTL_STATUS__TP_LOD_FIFO_BUSY__SHIFT 0x00000002
+#define TP0_CNTL_STATUS__TP_ADDR_BUSY__SHIFT 0x00000003
+#define TP0_CNTL_STATUS__TP_ALIGN_FIFO_BUSY__SHIFT 0x00000004
+#define TP0_CNTL_STATUS__TP_ALIGNER_BUSY__SHIFT 0x00000005
+#define TP0_CNTL_STATUS__TP_TC_FIFO_BUSY__SHIFT 0x00000006
+#define TP0_CNTL_STATUS__TP_RR_FIFO_BUSY__SHIFT 0x00000007
+#define TP0_CNTL_STATUS__TP_FETCH_BUSY__SHIFT 0x00000008
+#define TP0_CNTL_STATUS__TP_CH_BLEND_BUSY__SHIFT 0x00000009
+#define TP0_CNTL_STATUS__TP_TT_BUSY__SHIFT 0x0000000a
+#define TP0_CNTL_STATUS__TP_HICOLOR_BUSY__SHIFT 0x0000000b
+#define TP0_CNTL_STATUS__TP_BLEND_BUSY__SHIFT 0x0000000c
+#define TP0_CNTL_STATUS__TP_OUT_FIFO_BUSY__SHIFT 0x0000000d
+#define TP0_CNTL_STATUS__TP_OUTPUT_BUSY__SHIFT 0x0000000e
+#define TP0_CNTL_STATUS__IN_LC_RTS__SHIFT 0x00000010
+#define TP0_CNTL_STATUS__LC_LA_RTS__SHIFT 0x00000011
+#define TP0_CNTL_STATUS__LA_FL_RTS__SHIFT 0x00000012
+#define TP0_CNTL_STATUS__FL_TA_RTS__SHIFT 0x00000013
+#define TP0_CNTL_STATUS__TA_FA_RTS__SHIFT 0x00000014
+#define TP0_CNTL_STATUS__TA_FA_TT_RTS__SHIFT 0x00000015
+#define TP0_CNTL_STATUS__FA_AL_RTS__SHIFT 0x00000016
+#define TP0_CNTL_STATUS__FA_AL_TT_RTS__SHIFT 0x00000017
+#define TP0_CNTL_STATUS__AL_TF_RTS__SHIFT 0x00000018
+#define TP0_CNTL_STATUS__AL_TF_TT_RTS__SHIFT 0x00000019
+#define TP0_CNTL_STATUS__TF_TB_RTS__SHIFT 0x0000001a
+#define TP0_CNTL_STATUS__TF_TB_TT_RTS__SHIFT 0x0000001b
+#define TP0_CNTL_STATUS__TB_TT_RTS__SHIFT 0x0000001c
+#define TP0_CNTL_STATUS__TB_TT_TT_RESET__SHIFT 0x0000001d
+#define TP0_CNTL_STATUS__TB_TO_RTS__SHIFT 0x0000001e
+#define TP0_CNTL_STATUS__TP_BUSY__SHIFT 0x0000001f
+
+// TP0_DEBUG
+#define TP0_DEBUG__Q_LOD_CNTL__SHIFT 0x00000000
+#define TP0_DEBUG__Q_SQ_TP_WAKEUP__SHIFT 0x00000003
+#define TP0_DEBUG__FL_TA_ADDRESSER_CNTL__SHIFT 0x00000004
+#define TP0_DEBUG__REG_CLK_EN__SHIFT 0x00000015
+#define TP0_DEBUG__PERF_CLK_EN__SHIFT 0x00000016
+#define TP0_DEBUG__TP_CLK_EN__SHIFT 0x00000017
+#define TP0_DEBUG__Q_WALKER_CNTL__SHIFT 0x00000018
+#define TP0_DEBUG__Q_ALIGNER_CNTL__SHIFT 0x0000001c
+
+// TP0_CHICKEN
+#define TP0_CHICKEN__TT_MODE__SHIFT 0x00000000
+#define TP0_CHICKEN__VFETCH_ADDRESS_MODE__SHIFT 0x00000001
+#define TP0_CHICKEN__SPARE__SHIFT 0x00000002
+
+// TP0_PERFCOUNTER0_SELECT
+#define TP0_PERFCOUNTER0_SELECT__PERFCOUNTER_SELECT__SHIFT 0x00000000
+
+// TP0_PERFCOUNTER0_HI
+#define TP0_PERFCOUNTER0_HI__PERFCOUNTER_HI__SHIFT 0x00000000
+
+// TP0_PERFCOUNTER0_LOW
+#define TP0_PERFCOUNTER0_LOW__PERFCOUNTER_LOW__SHIFT 0x00000000
+
+// TP0_PERFCOUNTER1_SELECT
+#define TP0_PERFCOUNTER1_SELECT__PERFCOUNTER_SELECT__SHIFT 0x00000000
+
+// TP0_PERFCOUNTER1_HI
+#define TP0_PERFCOUNTER1_HI__PERFCOUNTER_HI__SHIFT 0x00000000
+
+// TP0_PERFCOUNTER1_LOW
+#define TP0_PERFCOUNTER1_LOW__PERFCOUNTER_LOW__SHIFT 0x00000000
+
+// TCM_PERFCOUNTER0_SELECT
+#define TCM_PERFCOUNTER0_SELECT__PERFCOUNTER_SELECT__SHIFT 0x00000000
+
+// TCM_PERFCOUNTER1_SELECT
+#define TCM_PERFCOUNTER1_SELECT__PERFCOUNTER_SELECT__SHIFT 0x00000000
+
+// TCM_PERFCOUNTER0_HI
+#define TCM_PERFCOUNTER0_HI__PERFCOUNTER_HI__SHIFT 0x00000000
+
+// TCM_PERFCOUNTER1_HI
+#define TCM_PERFCOUNTER1_HI__PERFCOUNTER_HI__SHIFT 0x00000000
+
+// TCM_PERFCOUNTER0_LOW
+#define TCM_PERFCOUNTER0_LOW__PERFCOUNTER_LOW__SHIFT 0x00000000
+
+// TCM_PERFCOUNTER1_LOW
+#define TCM_PERFCOUNTER1_LOW__PERFCOUNTER_LOW__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER0_SELECT
+#define TCF_PERFCOUNTER0_SELECT__PERFCOUNTER_SELECT__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER1_SELECT
+#define TCF_PERFCOUNTER1_SELECT__PERFCOUNTER_SELECT__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER2_SELECT
+#define TCF_PERFCOUNTER2_SELECT__PERFCOUNTER_SELECT__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER3_SELECT
+#define TCF_PERFCOUNTER3_SELECT__PERFCOUNTER_SELECT__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER4_SELECT
+#define TCF_PERFCOUNTER4_SELECT__PERFCOUNTER_SELECT__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER5_SELECT
+#define TCF_PERFCOUNTER5_SELECT__PERFCOUNTER_SELECT__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER6_SELECT
+#define TCF_PERFCOUNTER6_SELECT__PERFCOUNTER_SELECT__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER7_SELECT
+#define TCF_PERFCOUNTER7_SELECT__PERFCOUNTER_SELECT__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER8_SELECT
+#define TCF_PERFCOUNTER8_SELECT__PERFCOUNTER_SELECT__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER9_SELECT
+#define TCF_PERFCOUNTER9_SELECT__PERFCOUNTER_SELECT__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER10_SELECT
+#define TCF_PERFCOUNTER10_SELECT__PERFCOUNTER_SELECT__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER11_SELECT
+#define TCF_PERFCOUNTER11_SELECT__PERFCOUNTER_SELECT__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER0_HI
+#define TCF_PERFCOUNTER0_HI__PERFCOUNTER_HI__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER1_HI
+#define TCF_PERFCOUNTER1_HI__PERFCOUNTER_HI__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER2_HI
+#define TCF_PERFCOUNTER2_HI__PERFCOUNTER_HI__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER3_HI
+#define TCF_PERFCOUNTER3_HI__PERFCOUNTER_HI__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER4_HI
+#define TCF_PERFCOUNTER4_HI__PERFCOUNTER_HI__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER5_HI
+#define TCF_PERFCOUNTER5_HI__PERFCOUNTER_HI__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER6_HI
+#define TCF_PERFCOUNTER6_HI__PERFCOUNTER_HI__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER7_HI
+#define TCF_PERFCOUNTER7_HI__PERFCOUNTER_HI__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER8_HI
+#define TCF_PERFCOUNTER8_HI__PERFCOUNTER_HI__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER9_HI
+#define TCF_PERFCOUNTER9_HI__PERFCOUNTER_HI__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER10_HI
+#define TCF_PERFCOUNTER10_HI__PERFCOUNTER_HI__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER11_HI
+#define TCF_PERFCOUNTER11_HI__PERFCOUNTER_HI__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER0_LOW
+#define TCF_PERFCOUNTER0_LOW__PERFCOUNTER_LOW__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER1_LOW
+#define TCF_PERFCOUNTER1_LOW__PERFCOUNTER_LOW__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER2_LOW
+#define TCF_PERFCOUNTER2_LOW__PERFCOUNTER_LOW__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER3_LOW
+#define TCF_PERFCOUNTER3_LOW__PERFCOUNTER_LOW__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER4_LOW
+#define TCF_PERFCOUNTER4_LOW__PERFCOUNTER_LOW__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER5_LOW
+#define TCF_PERFCOUNTER5_LOW__PERFCOUNTER_LOW__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER6_LOW
+#define TCF_PERFCOUNTER6_LOW__PERFCOUNTER_LOW__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER7_LOW
+#define TCF_PERFCOUNTER7_LOW__PERFCOUNTER_LOW__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER8_LOW
+#define TCF_PERFCOUNTER8_LOW__PERFCOUNTER_LOW__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER9_LOW
+#define TCF_PERFCOUNTER9_LOW__PERFCOUNTER_LOW__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER10_LOW
+#define TCF_PERFCOUNTER10_LOW__PERFCOUNTER_LOW__SHIFT 0x00000000
+
+// TCF_PERFCOUNTER11_LOW
+#define TCF_PERFCOUNTER11_LOW__PERFCOUNTER_LOW__SHIFT 0x00000000
+
+// TCF_DEBUG
+#define TCF_DEBUG__not_MH_TC_rtr__SHIFT 0x00000006
+#define TCF_DEBUG__TC_MH_send__SHIFT 0x00000007
+#define TCF_DEBUG__not_FG0_rtr__SHIFT 0x00000008
+#define TCF_DEBUG__not_TCB_TCO_rtr__SHIFT 0x0000000c
+#define TCF_DEBUG__TCB_ff_stall__SHIFT 0x0000000d
+#define TCF_DEBUG__TCB_miss_stall__SHIFT 0x0000000e
+#define TCF_DEBUG__TCA_TCB_stall__SHIFT 0x0000000f
+#define TCF_DEBUG__PF0_stall__SHIFT 0x00000010
+#define TCF_DEBUG__TP0_full__SHIFT 0x00000014
+#define TCF_DEBUG__TPC_full__SHIFT 0x00000018
+#define TCF_DEBUG__not_TPC_rtr__SHIFT 0x00000019
+#define TCF_DEBUG__tca_state_rts__SHIFT 0x0000001a
+#define TCF_DEBUG__tca_rts__SHIFT 0x0000001b
+
+// TCA_FIFO_DEBUG
+#define TCA_FIFO_DEBUG__tp0_full__SHIFT 0x00000000
+#define TCA_FIFO_DEBUG__tpc_full__SHIFT 0x00000004
+#define TCA_FIFO_DEBUG__load_tpc_fifo__SHIFT 0x00000005
+#define TCA_FIFO_DEBUG__load_tp_fifos__SHIFT 0x00000006
+#define TCA_FIFO_DEBUG__FW_full__SHIFT 0x00000007
+#define TCA_FIFO_DEBUG__not_FW_rtr0__SHIFT 0x00000008
+#define TCA_FIFO_DEBUG__FW_rts0__SHIFT 0x0000000c
+#define TCA_FIFO_DEBUG__not_FW_tpc_rtr__SHIFT 0x00000010
+#define TCA_FIFO_DEBUG__FW_tpc_rts__SHIFT 0x00000011
+
+// TCA_PROBE_DEBUG
+#define TCA_PROBE_DEBUG__ProbeFilter_stall__SHIFT 0x00000000
+
+// TCA_TPC_DEBUG
+#define TCA_TPC_DEBUG__captue_state_rts__SHIFT 0x0000000c
+#define TCA_TPC_DEBUG__capture_tca_rts__SHIFT 0x0000000d
+
+// TCB_CORE_DEBUG
+#define TCB_CORE_DEBUG__access512__SHIFT 0x00000000
+#define TCB_CORE_DEBUG__tiled__SHIFT 0x00000001
+#define TCB_CORE_DEBUG__opcode__SHIFT 0x00000004
+#define TCB_CORE_DEBUG__format__SHIFT 0x00000008
+#define TCB_CORE_DEBUG__sector_format__SHIFT 0x00000010
+#define TCB_CORE_DEBUG__sector_format512__SHIFT 0x00000018
+
+// TCB_TAG0_DEBUG
+#define TCB_TAG0_DEBUG__mem_read_cycle__SHIFT 0x00000000
+#define TCB_TAG0_DEBUG__tag_access_cycle__SHIFT 0x0000000c
+#define TCB_TAG0_DEBUG__miss_stall__SHIFT 0x00000017
+#define TCB_TAG0_DEBUG__num_feee_lines__SHIFT 0x00000018
+#define TCB_TAG0_DEBUG__max_misses__SHIFT 0x0000001d
+
+// TCB_TAG1_DEBUG
+#define TCB_TAG1_DEBUG__mem_read_cycle__SHIFT 0x00000000
+#define TCB_TAG1_DEBUG__tag_access_cycle__SHIFT 0x0000000c
+#define TCB_TAG1_DEBUG__miss_stall__SHIFT 0x00000017
+#define TCB_TAG1_DEBUG__num_feee_lines__SHIFT 0x00000018
+#define TCB_TAG1_DEBUG__max_misses__SHIFT 0x0000001d
+
+// TCB_TAG2_DEBUG
+#define TCB_TAG2_DEBUG__mem_read_cycle__SHIFT 0x00000000
+#define TCB_TAG2_DEBUG__tag_access_cycle__SHIFT 0x0000000c
+#define TCB_TAG2_DEBUG__miss_stall__SHIFT 0x00000017
+#define TCB_TAG2_DEBUG__num_feee_lines__SHIFT 0x00000018
+#define TCB_TAG2_DEBUG__max_misses__SHIFT 0x0000001d
+
+// TCB_TAG3_DEBUG
+#define TCB_TAG3_DEBUG__mem_read_cycle__SHIFT 0x00000000
+#define TCB_TAG3_DEBUG__tag_access_cycle__SHIFT 0x0000000c
+#define TCB_TAG3_DEBUG__miss_stall__SHIFT 0x00000017
+#define TCB_TAG3_DEBUG__num_feee_lines__SHIFT 0x00000018
+#define TCB_TAG3_DEBUG__max_misses__SHIFT 0x0000001d
+
+// TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__left_done__SHIFT 0x00000000
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__fg0_sends_left__SHIFT 0x00000002
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__one_sector_to_go_left_q__SHIFT 0x00000004
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__no_sectors_to_go__SHIFT 0x00000005
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__update_left__SHIFT 0x00000006
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__sector_mask_left_count_q__SHIFT 0x00000007
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__sector_mask_left_q__SHIFT 0x0000000c
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG__valid_left_q__SHIFT 0x0000001c
+
+// TCB_FETCH_GEN_WALKER_DEBUG
+#define TCB_FETCH_GEN_WALKER_DEBUG__quad_sel_left__SHIFT 0x00000004
+#define TCB_FETCH_GEN_WALKER_DEBUG__set_sel_left__SHIFT 0x00000006
+#define TCB_FETCH_GEN_WALKER_DEBUG__right_eq_left__SHIFT 0x0000000b
+#define TCB_FETCH_GEN_WALKER_DEBUG__ff_fg_type512__SHIFT 0x0000000c
+#define TCB_FETCH_GEN_WALKER_DEBUG__busy__SHIFT 0x0000000f
+#define TCB_FETCH_GEN_WALKER_DEBUG__setquads_to_send__SHIFT 0x00000010
+
+// TCB_FETCH_GEN_PIPE0_DEBUG
+#define TCB_FETCH_GEN_PIPE0_DEBUG__tc0_arb_rts__SHIFT 0x00000000
+#define TCB_FETCH_GEN_PIPE0_DEBUG__ga_out_rts__SHIFT 0x00000002
+#define TCB_FETCH_GEN_PIPE0_DEBUG__tc_arb_format__SHIFT 0x00000004
+#define TCB_FETCH_GEN_PIPE0_DEBUG__tc_arb_fmsopcode__SHIFT 0x00000010
+#define TCB_FETCH_GEN_PIPE0_DEBUG__tc_arb_request_type__SHIFT 0x00000015
+#define TCB_FETCH_GEN_PIPE0_DEBUG__busy__SHIFT 0x00000017
+#define TCB_FETCH_GEN_PIPE0_DEBUG__fgo_busy__SHIFT 0x00000018
+#define TCB_FETCH_GEN_PIPE0_DEBUG__ga_busy__SHIFT 0x00000019
+#define TCB_FETCH_GEN_PIPE0_DEBUG__mc_sel_q__SHIFT 0x0000001a
+#define TCB_FETCH_GEN_PIPE0_DEBUG__valid_q__SHIFT 0x0000001c
+#define TCB_FETCH_GEN_PIPE0_DEBUG__arb_RTR__SHIFT 0x0000001e
+
+// TCD_INPUT0_DEBUG
+#define TCD_INPUT0_DEBUG__empty__SHIFT 0x00000010
+#define TCD_INPUT0_DEBUG__full__SHIFT 0x00000011
+#define TCD_INPUT0_DEBUG__valid_q1__SHIFT 0x00000014
+#define TCD_INPUT0_DEBUG__cnt_q1__SHIFT 0x00000015
+#define TCD_INPUT0_DEBUG__last_send_q1__SHIFT 0x00000017
+#define TCD_INPUT0_DEBUG__ip_send__SHIFT 0x00000018
+#define TCD_INPUT0_DEBUG__ipbuf_dxt_send__SHIFT 0x00000019
+#define TCD_INPUT0_DEBUG__ipbuf_busy__SHIFT 0x0000001a
+
+// TCD_DEGAMMA_DEBUG
+#define TCD_DEGAMMA_DEBUG__dgmm_ftfconv_dgmmen__SHIFT 0x00000000
+#define TCD_DEGAMMA_DEBUG__dgmm_ctrl_dgmm8__SHIFT 0x00000002
+#define TCD_DEGAMMA_DEBUG__dgmm_ctrl_last_send__SHIFT 0x00000003
+#define TCD_DEGAMMA_DEBUG__dgmm_ctrl_send__SHIFT 0x00000004
+#define TCD_DEGAMMA_DEBUG__dgmm_stall__SHIFT 0x00000005
+#define TCD_DEGAMMA_DEBUG__dgmm_pstate__SHIFT 0x00000006
+
+// TCD_DXTMUX_SCTARB_DEBUG
+#define TCD_DXTMUX_SCTARB_DEBUG__pstate__SHIFT 0x00000009
+#define TCD_DXTMUX_SCTARB_DEBUG__sctrmx_rtr__SHIFT 0x0000000a
+#define TCD_DXTMUX_SCTARB_DEBUG__dxtc_rtr__SHIFT 0x0000000b
+#define TCD_DXTMUX_SCTARB_DEBUG__sctrarb_multcyl_send__SHIFT 0x0000000f
+#define TCD_DXTMUX_SCTARB_DEBUG__sctrmx0_sctrarb_rts__SHIFT 0x00000010
+#define TCD_DXTMUX_SCTARB_DEBUG__dxtc_sctrarb_send__SHIFT 0x00000014
+#define TCD_DXTMUX_SCTARB_DEBUG__dxtc_dgmmpd_last_send__SHIFT 0x0000001b
+#define TCD_DXTMUX_SCTARB_DEBUG__dxtc_dgmmpd_send__SHIFT 0x0000001c
+#define TCD_DXTMUX_SCTARB_DEBUG__dcmp_mux_send__SHIFT 0x0000001d
+
+// TCD_DXTC_ARB_DEBUG
+#define TCD_DXTC_ARB_DEBUG__n0_stall__SHIFT 0x00000004
+#define TCD_DXTC_ARB_DEBUG__pstate__SHIFT 0x00000005
+#define TCD_DXTC_ARB_DEBUG__arb_dcmp01_last_send__SHIFT 0x00000006
+#define TCD_DXTC_ARB_DEBUG__arb_dcmp01_cnt__SHIFT 0x00000007
+#define TCD_DXTC_ARB_DEBUG__arb_dcmp01_sector__SHIFT 0x00000009
+#define TCD_DXTC_ARB_DEBUG__arb_dcmp01_cacheline__SHIFT 0x0000000c
+#define TCD_DXTC_ARB_DEBUG__arb_dcmp01_format__SHIFT 0x00000012
+#define TCD_DXTC_ARB_DEBUG__arb_dcmp01_send__SHIFT 0x0000001e
+#define TCD_DXTC_ARB_DEBUG__n0_dxt2_4_types__SHIFT 0x0000001f
+
+// TCD_STALLS_DEBUG
+#define TCD_STALLS_DEBUG__not_multcyl_sctrarb_rtr__SHIFT 0x0000000a
+#define TCD_STALLS_DEBUG__not_sctrmx0_sctrarb_rtr__SHIFT 0x0000000b
+#define TCD_STALLS_DEBUG__not_dcmp0_arb_rtr__SHIFT 0x00000011
+#define TCD_STALLS_DEBUG__not_dgmmpd_dxtc_rtr__SHIFT 0x00000012
+#define TCD_STALLS_DEBUG__not_mux_dcmp_rtr__SHIFT 0x00000013
+#define TCD_STALLS_DEBUG__not_incoming_rtr__SHIFT 0x0000001f
+
+// TCO_STALLS_DEBUG
+#define TCO_STALLS_DEBUG__quad0_sg_crd_RTR__SHIFT 0x00000005
+#define TCO_STALLS_DEBUG__quad0_rl_sg_RTR__SHIFT 0x00000006
+#define TCO_STALLS_DEBUG__quad0_TCO_TCB_rtr_d__SHIFT 0x00000007
+
+// TCO_QUAD0_DEBUG0
+#define TCO_QUAD0_DEBUG0__rl_sg_sector_format__SHIFT 0x00000000
+#define TCO_QUAD0_DEBUG0__rl_sg_end_of_sample__SHIFT 0x00000008
+#define TCO_QUAD0_DEBUG0__rl_sg_rtr__SHIFT 0x00000009
+#define TCO_QUAD0_DEBUG0__rl_sg_rts__SHIFT 0x0000000a
+#define TCO_QUAD0_DEBUG0__sg_crd_end_of_sample__SHIFT 0x0000000b
+#define TCO_QUAD0_DEBUG0__sg_crd_rtr__SHIFT 0x0000000c
+#define TCO_QUAD0_DEBUG0__sg_crd_rts__SHIFT 0x0000000d
+#define TCO_QUAD0_DEBUG0__stageN1_valid_q__SHIFT 0x00000010
+#define TCO_QUAD0_DEBUG0__read_cache_q__SHIFT 0x00000018
+#define TCO_QUAD0_DEBUG0__cache_read_RTR__SHIFT 0x00000019
+#define TCO_QUAD0_DEBUG0__all_sectors_written_set3__SHIFT 0x0000001a
+#define TCO_QUAD0_DEBUG0__all_sectors_written_set2__SHIFT 0x0000001b
+#define TCO_QUAD0_DEBUG0__all_sectors_written_set1__SHIFT 0x0000001c
+#define TCO_QUAD0_DEBUG0__all_sectors_written_set0__SHIFT 0x0000001d
+#define TCO_QUAD0_DEBUG0__busy__SHIFT 0x0000001e
+
+// TCO_QUAD0_DEBUG1
+#define TCO_QUAD0_DEBUG1__fifo_busy__SHIFT 0x00000000
+#define TCO_QUAD0_DEBUG1__empty__SHIFT 0x00000001
+#define TCO_QUAD0_DEBUG1__full__SHIFT 0x00000002
+#define TCO_QUAD0_DEBUG1__write_enable__SHIFT 0x00000003
+#define TCO_QUAD0_DEBUG1__fifo_write_ptr__SHIFT 0x00000004
+#define TCO_QUAD0_DEBUG1__fifo_read_ptr__SHIFT 0x0000000b
+#define TCO_QUAD0_DEBUG1__cache_read_busy__SHIFT 0x00000014
+#define TCO_QUAD0_DEBUG1__latency_fifo_busy__SHIFT 0x00000015
+#define TCO_QUAD0_DEBUG1__input_quad_busy__SHIFT 0x00000016
+#define TCO_QUAD0_DEBUG1__tco_quad_pipe_busy__SHIFT 0x00000017
+#define TCO_QUAD0_DEBUG1__TCB_TCO_rtr_d__SHIFT 0x00000018
+#define TCO_QUAD0_DEBUG1__TCB_TCO_xfc_q__SHIFT 0x00000019
+#define TCO_QUAD0_DEBUG1__rl_sg_rtr__SHIFT 0x0000001a
+#define TCO_QUAD0_DEBUG1__rl_sg_rts__SHIFT 0x0000001b
+#define TCO_QUAD0_DEBUG1__sg_crd_rtr__SHIFT 0x0000001c
+#define TCO_QUAD0_DEBUG1__sg_crd_rts__SHIFT 0x0000001d
+#define TCO_QUAD0_DEBUG1__TCO_TCB_read_xfc__SHIFT 0x0000001e
+
+// SQ_GPR_MANAGEMENT
+#define SQ_GPR_MANAGEMENT__REG_DYNAMIC__SHIFT 0x00000000
+#define SQ_GPR_MANAGEMENT__REG_SIZE_PIX__SHIFT 0x00000004
+#define SQ_GPR_MANAGEMENT__REG_SIZE_VTX__SHIFT 0x0000000c
+
+// SQ_FLOW_CONTROL
+#define SQ_FLOW_CONTROL__INPUT_ARBITRATION_POLICY__SHIFT 0x00000000
+#define SQ_FLOW_CONTROL__ONE_THREAD__SHIFT 0x00000004
+#define SQ_FLOW_CONTROL__ONE_ALU__SHIFT 0x00000008
+#define SQ_FLOW_CONTROL__CF_WR_BASE__SHIFT 0x0000000c
+#define SQ_FLOW_CONTROL__NO_PV_PS__SHIFT 0x00000010
+#define SQ_FLOW_CONTROL__NO_LOOP_EXIT__SHIFT 0x00000011
+#define SQ_FLOW_CONTROL__NO_CEXEC_OPTIMIZE__SHIFT 0x00000012
+#define SQ_FLOW_CONTROL__TEXTURE_ARBITRATION_POLICY__SHIFT 0x00000013
+#define SQ_FLOW_CONTROL__VC_ARBITRATION_POLICY__SHIFT 0x00000015
+#define SQ_FLOW_CONTROL__ALU_ARBITRATION_POLICY__SHIFT 0x00000016
+#define SQ_FLOW_CONTROL__NO_ARB_EJECT__SHIFT 0x00000017
+#define SQ_FLOW_CONTROL__NO_CFS_EJECT__SHIFT 0x00000018
+#define SQ_FLOW_CONTROL__POS_EXP_PRIORITY__SHIFT 0x00000019
+#define SQ_FLOW_CONTROL__NO_EARLY_THREAD_TERMINATION__SHIFT 0x0000001a
+#define SQ_FLOW_CONTROL__PS_PREFETCH_COLOR_ALLOC__SHIFT 0x0000001b
+
+// SQ_INST_STORE_MANAGMENT
+#define SQ_INST_STORE_MANAGMENT__INST_BASE_PIX__SHIFT 0x00000000
+#define SQ_INST_STORE_MANAGMENT__INST_BASE_VTX__SHIFT 0x00000010
+
+// SQ_RESOURCE_MANAGMENT
+#define SQ_RESOURCE_MANAGMENT__VTX_THREAD_BUF_ENTRIES__SHIFT 0x00000000
+#define SQ_RESOURCE_MANAGMENT__PIX_THREAD_BUF_ENTRIES__SHIFT 0x00000008
+#define SQ_RESOURCE_MANAGMENT__EXPORT_BUF_ENTRIES__SHIFT 0x00000010
+
+// SQ_EO_RT
+#define SQ_EO_RT__EO_CONSTANTS_RT__SHIFT 0x00000000
+#define SQ_EO_RT__EO_TSTATE_RT__SHIFT 0x00000010
+
+// SQ_DEBUG_MISC
+#define SQ_DEBUG_MISC__DB_ALUCST_SIZE__SHIFT 0x00000000
+#define SQ_DEBUG_MISC__DB_TSTATE_SIZE__SHIFT 0x0000000c
+#define SQ_DEBUG_MISC__DB_READ_CTX__SHIFT 0x00000014
+#define SQ_DEBUG_MISC__RESERVED__SHIFT 0x00000015
+#define SQ_DEBUG_MISC__DB_READ_MEMORY__SHIFT 0x00000017
+#define SQ_DEBUG_MISC__DB_WEN_MEMORY_0__SHIFT 0x00000019
+#define SQ_DEBUG_MISC__DB_WEN_MEMORY_1__SHIFT 0x0000001a
+#define SQ_DEBUG_MISC__DB_WEN_MEMORY_2__SHIFT 0x0000001b
+#define SQ_DEBUG_MISC__DB_WEN_MEMORY_3__SHIFT 0x0000001c
+
+// SQ_ACTIVITY_METER_CNTL
+#define SQ_ACTIVITY_METER_CNTL__TIMEBASE__SHIFT 0x00000000
+#define SQ_ACTIVITY_METER_CNTL__THRESHOLD_LOW__SHIFT 0x00000008
+#define SQ_ACTIVITY_METER_CNTL__THRESHOLD_HIGH__SHIFT 0x00000010
+#define SQ_ACTIVITY_METER_CNTL__SPARE__SHIFT 0x00000018
+
+// SQ_ACTIVITY_METER_STATUS
+#define SQ_ACTIVITY_METER_STATUS__PERCENT_BUSY__SHIFT 0x00000000
+
+// SQ_INPUT_ARB_PRIORITY
+#define SQ_INPUT_ARB_PRIORITY__PC_AVAIL_WEIGHT__SHIFT 0x00000000
+#define SQ_INPUT_ARB_PRIORITY__PC_AVAIL_SIGN__SHIFT 0x00000003
+#define SQ_INPUT_ARB_PRIORITY__SX_AVAIL_WEIGHT__SHIFT 0x00000004
+#define SQ_INPUT_ARB_PRIORITY__SX_AVAIL_SIGN__SHIFT 0x00000007
+#define SQ_INPUT_ARB_PRIORITY__THRESHOLD__SHIFT 0x00000008
+
+// SQ_THREAD_ARB_PRIORITY
+#define SQ_THREAD_ARB_PRIORITY__PC_AVAIL_WEIGHT__SHIFT 0x00000000
+#define SQ_THREAD_ARB_PRIORITY__PC_AVAIL_SIGN__SHIFT 0x00000003
+#define SQ_THREAD_ARB_PRIORITY__SX_AVAIL_WEIGHT__SHIFT 0x00000004
+#define SQ_THREAD_ARB_PRIORITY__SX_AVAIL_SIGN__SHIFT 0x00000007
+#define SQ_THREAD_ARB_PRIORITY__THRESHOLD__SHIFT 0x00000008
+#define SQ_THREAD_ARB_PRIORITY__RESERVED__SHIFT 0x00000012
+#define SQ_THREAD_ARB_PRIORITY__VS_PRIORITIZE_SERIAL__SHIFT 0x00000014
+#define SQ_THREAD_ARB_PRIORITY__PS_PRIORITIZE_SERIAL__SHIFT 0x00000015
+#define SQ_THREAD_ARB_PRIORITY__USE_SERIAL_COUNT_THRESHOLD__SHIFT 0x00000016
+
+// SQ_VS_WATCHDOG_TIMER
+#define SQ_VS_WATCHDOG_TIMER__ENABLE__SHIFT 0x00000000
+#define SQ_VS_WATCHDOG_TIMER__TIMEOUT_COUNT__SHIFT 0x00000001
+
+// SQ_PS_WATCHDOG_TIMER
+#define SQ_PS_WATCHDOG_TIMER__ENABLE__SHIFT 0x00000000
+#define SQ_PS_WATCHDOG_TIMER__TIMEOUT_COUNT__SHIFT 0x00000001
+
+// SQ_INT_CNTL
+#define SQ_INT_CNTL__PS_WATCHDOG_MASK__SHIFT 0x00000000
+#define SQ_INT_CNTL__VS_WATCHDOG_MASK__SHIFT 0x00000001
+
+// SQ_INT_STATUS
+#define SQ_INT_STATUS__PS_WATCHDOG_TIMEOUT__SHIFT 0x00000000
+#define SQ_INT_STATUS__VS_WATCHDOG_TIMEOUT__SHIFT 0x00000001
+
+// SQ_INT_ACK
+#define SQ_INT_ACK__PS_WATCHDOG_ACK__SHIFT 0x00000000
+#define SQ_INT_ACK__VS_WATCHDOG_ACK__SHIFT 0x00000001
+
+// SQ_DEBUG_INPUT_FSM
+#define SQ_DEBUG_INPUT_FSM__VC_VSR_LD__SHIFT 0x00000000
+#define SQ_DEBUG_INPUT_FSM__RESERVED__SHIFT 0x00000003
+#define SQ_DEBUG_INPUT_FSM__VC_GPR_LD__SHIFT 0x00000004
+#define SQ_DEBUG_INPUT_FSM__PC_PISM__SHIFT 0x00000008
+#define SQ_DEBUG_INPUT_FSM__RESERVED1__SHIFT 0x0000000b
+#define SQ_DEBUG_INPUT_FSM__PC_AS__SHIFT 0x0000000c
+#define SQ_DEBUG_INPUT_FSM__PC_INTERP_CNT__SHIFT 0x0000000f
+#define SQ_DEBUG_INPUT_FSM__PC_GPR_SIZE__SHIFT 0x00000014
+
+// SQ_DEBUG_CONST_MGR_FSM
+#define SQ_DEBUG_CONST_MGR_FSM__TEX_CONST_EVENT_STATE__SHIFT 0x00000000
+#define SQ_DEBUG_CONST_MGR_FSM__RESERVED1__SHIFT 0x00000005
+#define SQ_DEBUG_CONST_MGR_FSM__ALU_CONST_EVENT_STATE__SHIFT 0x00000008
+#define SQ_DEBUG_CONST_MGR_FSM__RESERVED2__SHIFT 0x0000000d
+#define SQ_DEBUG_CONST_MGR_FSM__ALU_CONST_CNTX_VALID__SHIFT 0x00000010
+#define SQ_DEBUG_CONST_MGR_FSM__TEX_CONST_CNTX_VALID__SHIFT 0x00000012
+#define SQ_DEBUG_CONST_MGR_FSM__CNTX0_VTX_EVENT_DONE__SHIFT 0x00000014
+#define SQ_DEBUG_CONST_MGR_FSM__CNTX0_PIX_EVENT_DONE__SHIFT 0x00000015
+#define SQ_DEBUG_CONST_MGR_FSM__CNTX1_VTX_EVENT_DONE__SHIFT 0x00000016
+#define SQ_DEBUG_CONST_MGR_FSM__CNTX1_PIX_EVENT_DONE__SHIFT 0x00000017
+
+// SQ_DEBUG_TP_FSM
+#define SQ_DEBUG_TP_FSM__EX_TP__SHIFT 0x00000000
+#define SQ_DEBUG_TP_FSM__RESERVED0__SHIFT 0x00000003
+#define SQ_DEBUG_TP_FSM__CF_TP__SHIFT 0x00000004
+#define SQ_DEBUG_TP_FSM__IF_TP__SHIFT 0x00000008
+#define SQ_DEBUG_TP_FSM__RESERVED1__SHIFT 0x0000000b
+#define SQ_DEBUG_TP_FSM__TIS_TP__SHIFT 0x0000000c
+#define SQ_DEBUG_TP_FSM__RESERVED2__SHIFT 0x0000000e
+#define SQ_DEBUG_TP_FSM__GS_TP__SHIFT 0x00000010
+#define SQ_DEBUG_TP_FSM__RESERVED3__SHIFT 0x00000012
+#define SQ_DEBUG_TP_FSM__FCR_TP__SHIFT 0x00000014
+#define SQ_DEBUG_TP_FSM__RESERVED4__SHIFT 0x00000016
+#define SQ_DEBUG_TP_FSM__FCS_TP__SHIFT 0x00000018
+#define SQ_DEBUG_TP_FSM__RESERVED5__SHIFT 0x0000001a
+#define SQ_DEBUG_TP_FSM__ARB_TR_TP__SHIFT 0x0000001c
+
+// SQ_DEBUG_FSM_ALU_0
+#define SQ_DEBUG_FSM_ALU_0__EX_ALU_0__SHIFT 0x00000000
+#define SQ_DEBUG_FSM_ALU_0__RESERVED0__SHIFT 0x00000003
+#define SQ_DEBUG_FSM_ALU_0__CF_ALU_0__SHIFT 0x00000004
+#define SQ_DEBUG_FSM_ALU_0__IF_ALU_0__SHIFT 0x00000008
+#define SQ_DEBUG_FSM_ALU_0__RESERVED1__SHIFT 0x0000000b
+#define SQ_DEBUG_FSM_ALU_0__DU1_ALU_0__SHIFT 0x0000000c
+#define SQ_DEBUG_FSM_ALU_0__RESERVED2__SHIFT 0x0000000f
+#define SQ_DEBUG_FSM_ALU_0__DU0_ALU_0__SHIFT 0x00000010
+#define SQ_DEBUG_FSM_ALU_0__RESERVED3__SHIFT 0x00000013
+#define SQ_DEBUG_FSM_ALU_0__AIS_ALU_0__SHIFT 0x00000014
+#define SQ_DEBUG_FSM_ALU_0__RESERVED4__SHIFT 0x00000017
+#define SQ_DEBUG_FSM_ALU_0__ACS_ALU_0__SHIFT 0x00000018
+#define SQ_DEBUG_FSM_ALU_0__RESERVED5__SHIFT 0x0000001b
+#define SQ_DEBUG_FSM_ALU_0__ARB_TR_ALU__SHIFT 0x0000001c
+
+// SQ_DEBUG_FSM_ALU_1
+#define SQ_DEBUG_FSM_ALU_1__EX_ALU_0__SHIFT 0x00000000
+#define SQ_DEBUG_FSM_ALU_1__RESERVED0__SHIFT 0x00000003
+#define SQ_DEBUG_FSM_ALU_1__CF_ALU_0__SHIFT 0x00000004
+#define SQ_DEBUG_FSM_ALU_1__IF_ALU_0__SHIFT 0x00000008
+#define SQ_DEBUG_FSM_ALU_1__RESERVED1__SHIFT 0x0000000b
+#define SQ_DEBUG_FSM_ALU_1__DU1_ALU_0__SHIFT 0x0000000c
+#define SQ_DEBUG_FSM_ALU_1__RESERVED2__SHIFT 0x0000000f
+#define SQ_DEBUG_FSM_ALU_1__DU0_ALU_0__SHIFT 0x00000010
+#define SQ_DEBUG_FSM_ALU_1__RESERVED3__SHIFT 0x00000013
+#define SQ_DEBUG_FSM_ALU_1__AIS_ALU_0__SHIFT 0x00000014
+#define SQ_DEBUG_FSM_ALU_1__RESERVED4__SHIFT 0x00000017
+#define SQ_DEBUG_FSM_ALU_1__ACS_ALU_0__SHIFT 0x00000018
+#define SQ_DEBUG_FSM_ALU_1__RESERVED5__SHIFT 0x0000001b
+#define SQ_DEBUG_FSM_ALU_1__ARB_TR_ALU__SHIFT 0x0000001c
+
+// SQ_DEBUG_EXP_ALLOC
+#define SQ_DEBUG_EXP_ALLOC__POS_BUF_AVAIL__SHIFT 0x00000000
+#define SQ_DEBUG_EXP_ALLOC__COLOR_BUF_AVAIL__SHIFT 0x00000004
+#define SQ_DEBUG_EXP_ALLOC__EA_BUF_AVAIL__SHIFT 0x0000000c
+#define SQ_DEBUG_EXP_ALLOC__RESERVED__SHIFT 0x0000000f
+#define SQ_DEBUG_EXP_ALLOC__ALLOC_TBL_BUF_AVAIL__SHIFT 0x00000010
+
+// SQ_DEBUG_PTR_BUFF
+#define SQ_DEBUG_PTR_BUFF__END_OF_BUFFER__SHIFT 0x00000000
+#define SQ_DEBUG_PTR_BUFF__DEALLOC_CNT__SHIFT 0x00000001
+#define SQ_DEBUG_PTR_BUFF__QUAL_NEW_VECTOR__SHIFT 0x00000005
+#define SQ_DEBUG_PTR_BUFF__EVENT_CONTEXT_ID__SHIFT 0x00000006
+#define SQ_DEBUG_PTR_BUFF__SC_EVENT_ID__SHIFT 0x00000009
+#define SQ_DEBUG_PTR_BUFF__QUAL_EVENT__SHIFT 0x0000000e
+#define SQ_DEBUG_PTR_BUFF__PRIM_TYPE_POLYGON__SHIFT 0x0000000f
+#define SQ_DEBUG_PTR_BUFF__EF_EMPTY__SHIFT 0x00000010
+#define SQ_DEBUG_PTR_BUFF__VTX_SYNC_CNT__SHIFT 0x00000011
+
+// SQ_DEBUG_GPR_VTX
+#define SQ_DEBUG_GPR_VTX__VTX_TAIL_PTR__SHIFT 0x00000000
+#define SQ_DEBUG_GPR_VTX__RESERVED__SHIFT 0x00000007
+#define SQ_DEBUG_GPR_VTX__VTX_HEAD_PTR__SHIFT 0x00000008
+#define SQ_DEBUG_GPR_VTX__RESERVED1__SHIFT 0x0000000f
+#define SQ_DEBUG_GPR_VTX__VTX_MAX__SHIFT 0x00000010
+#define SQ_DEBUG_GPR_VTX__RESERVED2__SHIFT 0x00000017
+#define SQ_DEBUG_GPR_VTX__VTX_FREE__SHIFT 0x00000018
+
+// SQ_DEBUG_GPR_PIX
+#define SQ_DEBUG_GPR_PIX__PIX_TAIL_PTR__SHIFT 0x00000000
+#define SQ_DEBUG_GPR_PIX__RESERVED__SHIFT 0x00000007
+#define SQ_DEBUG_GPR_PIX__PIX_HEAD_PTR__SHIFT 0x00000008
+#define SQ_DEBUG_GPR_PIX__RESERVED1__SHIFT 0x0000000f
+#define SQ_DEBUG_GPR_PIX__PIX_MAX__SHIFT 0x00000010
+#define SQ_DEBUG_GPR_PIX__RESERVED2__SHIFT 0x00000017
+#define SQ_DEBUG_GPR_PIX__PIX_FREE__SHIFT 0x00000018
+
+// SQ_DEBUG_TB_STATUS_SEL
+#define SQ_DEBUG_TB_STATUS_SEL__VTX_TB_STATUS_REG_SEL__SHIFT 0x00000000
+#define SQ_DEBUG_TB_STATUS_SEL__VTX_TB_STATE_MEM_DW_SEL__SHIFT 0x00000004
+#define SQ_DEBUG_TB_STATUS_SEL__VTX_TB_STATE_MEM_RD_ADDR__SHIFT 0x00000007
+#define SQ_DEBUG_TB_STATUS_SEL__VTX_TB_STATE_MEM_RD_EN__SHIFT 0x0000000b
+#define SQ_DEBUG_TB_STATUS_SEL__PIX_TB_STATE_MEM_RD_EN__SHIFT 0x0000000c
+#define SQ_DEBUG_TB_STATUS_SEL__DEBUG_BUS_TRIGGER_SEL__SHIFT 0x0000000e
+#define SQ_DEBUG_TB_STATUS_SEL__PIX_TB_STATUS_REG_SEL__SHIFT 0x00000010
+#define SQ_DEBUG_TB_STATUS_SEL__PIX_TB_STATE_MEM_DW_SEL__SHIFT 0x00000014
+#define SQ_DEBUG_TB_STATUS_SEL__PIX_TB_STATE_MEM_RD_ADDR__SHIFT 0x00000017
+#define SQ_DEBUG_TB_STATUS_SEL__VC_THREAD_BUF_DLY__SHIFT 0x0000001d
+#define SQ_DEBUG_TB_STATUS_SEL__DISABLE_STRICT_CTX_SYNC__SHIFT 0x0000001f
+
+// SQ_DEBUG_VTX_TB_0
+#define SQ_DEBUG_VTX_TB_0__VTX_HEAD_PTR_Q__SHIFT 0x00000000
+#define SQ_DEBUG_VTX_TB_0__TAIL_PTR_Q__SHIFT 0x00000004
+#define SQ_DEBUG_VTX_TB_0__FULL_CNT_Q__SHIFT 0x00000008
+#define SQ_DEBUG_VTX_TB_0__NXT_POS_ALLOC_CNT__SHIFT 0x0000000c
+#define SQ_DEBUG_VTX_TB_0__NXT_PC_ALLOC_CNT__SHIFT 0x00000010
+#define SQ_DEBUG_VTX_TB_0__SX_EVENT_FULL__SHIFT 0x00000014
+#define SQ_DEBUG_VTX_TB_0__BUSY_Q__SHIFT 0x00000015
+
+// SQ_DEBUG_VTX_TB_1
+#define SQ_DEBUG_VTX_TB_1__VS_DONE_PTR__SHIFT 0x00000000
+
+// SQ_DEBUG_VTX_TB_STATUS_REG
+#define SQ_DEBUG_VTX_TB_STATUS_REG__VS_STATUS_REG__SHIFT 0x00000000
+
+// SQ_DEBUG_VTX_TB_STATE_MEM
+#define SQ_DEBUG_VTX_TB_STATE_MEM__VS_STATE_MEM__SHIFT 0x00000000
+
+// SQ_DEBUG_PIX_TB_0
+#define SQ_DEBUG_PIX_TB_0__PIX_HEAD_PTR__SHIFT 0x00000000
+#define SQ_DEBUG_PIX_TB_0__TAIL_PTR__SHIFT 0x00000006
+#define SQ_DEBUG_PIX_TB_0__FULL_CNT__SHIFT 0x0000000c
+#define SQ_DEBUG_PIX_TB_0__NXT_PIX_ALLOC_CNT__SHIFT 0x00000013
+#define SQ_DEBUG_PIX_TB_0__NXT_PIX_EXP_CNT__SHIFT 0x00000019
+#define SQ_DEBUG_PIX_TB_0__BUSY__SHIFT 0x0000001f
+
+// SQ_DEBUG_PIX_TB_STATUS_REG_0
+#define SQ_DEBUG_PIX_TB_STATUS_REG_0__PIX_TB_STATUS_REG_0__SHIFT 0x00000000
+
+// SQ_DEBUG_PIX_TB_STATUS_REG_1
+#define SQ_DEBUG_PIX_TB_STATUS_REG_1__PIX_TB_STATUS_REG_1__SHIFT 0x00000000
+
+// SQ_DEBUG_PIX_TB_STATUS_REG_2
+#define SQ_DEBUG_PIX_TB_STATUS_REG_2__PIX_TB_STATUS_REG_2__SHIFT 0x00000000
+
+// SQ_DEBUG_PIX_TB_STATUS_REG_3
+#define SQ_DEBUG_PIX_TB_STATUS_REG_3__PIX_TB_STATUS_REG_3__SHIFT 0x00000000
+
+// SQ_DEBUG_PIX_TB_STATE_MEM
+#define SQ_DEBUG_PIX_TB_STATE_MEM__PIX_TB_STATE_MEM__SHIFT 0x00000000
+
+// SQ_PERFCOUNTER0_SELECT
+#define SQ_PERFCOUNTER0_SELECT__PERF_SEL__SHIFT 0x00000000
+
+// SQ_PERFCOUNTER1_SELECT
+#define SQ_PERFCOUNTER1_SELECT__PERF_SEL__SHIFT 0x00000000
+
+// SQ_PERFCOUNTER2_SELECT
+#define SQ_PERFCOUNTER2_SELECT__PERF_SEL__SHIFT 0x00000000
+
+// SQ_PERFCOUNTER3_SELECT
+#define SQ_PERFCOUNTER3_SELECT__PERF_SEL__SHIFT 0x00000000
+
+// SQ_PERFCOUNTER0_LOW
+#define SQ_PERFCOUNTER0_LOW__PERF_COUNT__SHIFT 0x00000000
+
+// SQ_PERFCOUNTER0_HI
+#define SQ_PERFCOUNTER0_HI__PERF_COUNT__SHIFT 0x00000000
+
+// SQ_PERFCOUNTER1_LOW
+#define SQ_PERFCOUNTER1_LOW__PERF_COUNT__SHIFT 0x00000000
+
+// SQ_PERFCOUNTER1_HI
+#define SQ_PERFCOUNTER1_HI__PERF_COUNT__SHIFT 0x00000000
+
+// SQ_PERFCOUNTER2_LOW
+#define SQ_PERFCOUNTER2_LOW__PERF_COUNT__SHIFT 0x00000000
+
+// SQ_PERFCOUNTER2_HI
+#define SQ_PERFCOUNTER2_HI__PERF_COUNT__SHIFT 0x00000000
+
+// SQ_PERFCOUNTER3_LOW
+#define SQ_PERFCOUNTER3_LOW__PERF_COUNT__SHIFT 0x00000000
+
+// SQ_PERFCOUNTER3_HI
+#define SQ_PERFCOUNTER3_HI__PERF_COUNT__SHIFT 0x00000000
+
+// SX_PERFCOUNTER0_SELECT
+#define SX_PERFCOUNTER0_SELECT__PERF_SEL__SHIFT 0x00000000
+
+// SX_PERFCOUNTER0_LOW
+#define SX_PERFCOUNTER0_LOW__PERF_COUNT__SHIFT 0x00000000
+
+// SX_PERFCOUNTER0_HI
+#define SX_PERFCOUNTER0_HI__PERF_COUNT__SHIFT 0x00000000
+
+// SQ_INSTRUCTION_ALU_0
+#define SQ_INSTRUCTION_ALU_0__VECTOR_RESULT__SHIFT 0x00000000
+#define SQ_INSTRUCTION_ALU_0__VECTOR_DST_REL__SHIFT 0x00000006
+#define SQ_INSTRUCTION_ALU_0__LOW_PRECISION_16B_FP__SHIFT 0x00000007
+#define SQ_INSTRUCTION_ALU_0__SCALAR_RESULT__SHIFT 0x00000008
+#define SQ_INSTRUCTION_ALU_0__SCALAR_DST_REL__SHIFT 0x0000000e
+#define SQ_INSTRUCTION_ALU_0__EXPORT_DATA__SHIFT 0x0000000f
+#define SQ_INSTRUCTION_ALU_0__VECTOR_WRT_MSK__SHIFT 0x00000010
+#define SQ_INSTRUCTION_ALU_0__SCALAR_WRT_MSK__SHIFT 0x00000014
+#define SQ_INSTRUCTION_ALU_0__VECTOR_CLAMP__SHIFT 0x00000018
+#define SQ_INSTRUCTION_ALU_0__SCALAR_CLAMP__SHIFT 0x00000019
+#define SQ_INSTRUCTION_ALU_0__SCALAR_OPCODE__SHIFT 0x0000001a
+
+// SQ_INSTRUCTION_ALU_1
+#define SQ_INSTRUCTION_ALU_1__SRC_C_SWIZZLE_R__SHIFT 0x00000000
+#define SQ_INSTRUCTION_ALU_1__SRC_C_SWIZZLE_G__SHIFT 0x00000002
+#define SQ_INSTRUCTION_ALU_1__SRC_C_SWIZZLE_B__SHIFT 0x00000004
+#define SQ_INSTRUCTION_ALU_1__SRC_C_SWIZZLE_A__SHIFT 0x00000006
+#define SQ_INSTRUCTION_ALU_1__SRC_B_SWIZZLE_R__SHIFT 0x00000008
+#define SQ_INSTRUCTION_ALU_1__SRC_B_SWIZZLE_G__SHIFT 0x0000000a
+#define SQ_INSTRUCTION_ALU_1__SRC_B_SWIZZLE_B__SHIFT 0x0000000c
+#define SQ_INSTRUCTION_ALU_1__SRC_B_SWIZZLE_A__SHIFT 0x0000000e
+#define SQ_INSTRUCTION_ALU_1__SRC_A_SWIZZLE_R__SHIFT 0x00000010
+#define SQ_INSTRUCTION_ALU_1__SRC_A_SWIZZLE_G__SHIFT 0x00000012
+#define SQ_INSTRUCTION_ALU_1__SRC_A_SWIZZLE_B__SHIFT 0x00000014
+#define SQ_INSTRUCTION_ALU_1__SRC_A_SWIZZLE_A__SHIFT 0x00000016
+#define SQ_INSTRUCTION_ALU_1__SRC_C_ARG_MOD__SHIFT 0x00000018
+#define SQ_INSTRUCTION_ALU_1__SRC_B_ARG_MOD__SHIFT 0x00000019
+#define SQ_INSTRUCTION_ALU_1__SRC_A_ARG_MOD__SHIFT 0x0000001a
+#define SQ_INSTRUCTION_ALU_1__PRED_SELECT__SHIFT 0x0000001b
+#define SQ_INSTRUCTION_ALU_1__RELATIVE_ADDR__SHIFT 0x0000001d
+#define SQ_INSTRUCTION_ALU_1__CONST_1_REL_ABS__SHIFT 0x0000001e
+#define SQ_INSTRUCTION_ALU_1__CONST_0_REL_ABS__SHIFT 0x0000001f
+
+// SQ_INSTRUCTION_ALU_2
+#define SQ_INSTRUCTION_ALU_2__SRC_C_REG_PTR__SHIFT 0x00000000
+#define SQ_INSTRUCTION_ALU_2__REG_SELECT_C__SHIFT 0x00000006
+#define SQ_INSTRUCTION_ALU_2__REG_ABS_MOD_C__SHIFT 0x00000007
+#define SQ_INSTRUCTION_ALU_2__SRC_B_REG_PTR__SHIFT 0x00000008
+#define SQ_INSTRUCTION_ALU_2__REG_SELECT_B__SHIFT 0x0000000e
+#define SQ_INSTRUCTION_ALU_2__REG_ABS_MOD_B__SHIFT 0x0000000f
+#define SQ_INSTRUCTION_ALU_2__SRC_A_REG_PTR__SHIFT 0x00000010
+#define SQ_INSTRUCTION_ALU_2__REG_SELECT_A__SHIFT 0x00000016
+#define SQ_INSTRUCTION_ALU_2__REG_ABS_MOD_A__SHIFT 0x00000017
+#define SQ_INSTRUCTION_ALU_2__VECTOR_OPCODE__SHIFT 0x00000018
+#define SQ_INSTRUCTION_ALU_2__SRC_C_SEL__SHIFT 0x0000001d
+#define SQ_INSTRUCTION_ALU_2__SRC_B_SEL__SHIFT 0x0000001e
+#define SQ_INSTRUCTION_ALU_2__SRC_A_SEL__SHIFT 0x0000001f
+
+// SQ_INSTRUCTION_CF_EXEC_0
+#define SQ_INSTRUCTION_CF_EXEC_0__ADDRESS__SHIFT 0x00000000
+#define SQ_INSTRUCTION_CF_EXEC_0__RESERVED__SHIFT 0x00000009
+#define SQ_INSTRUCTION_CF_EXEC_0__COUNT__SHIFT 0x0000000c
+#define SQ_INSTRUCTION_CF_EXEC_0__YIELD__SHIFT 0x0000000f
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_TYPE_0__SHIFT 0x00000010
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_SERIAL_0__SHIFT 0x00000011
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_TYPE_1__SHIFT 0x00000012
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_SERIAL_1__SHIFT 0x00000013
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_TYPE_2__SHIFT 0x00000014
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_SERIAL_2__SHIFT 0x00000015
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_TYPE_3__SHIFT 0x00000016
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_SERIAL_3__SHIFT 0x00000017
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_TYPE_4__SHIFT 0x00000018
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_SERIAL_4__SHIFT 0x00000019
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_TYPE_5__SHIFT 0x0000001a
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_SERIAL_5__SHIFT 0x0000001b
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_VC_0__SHIFT 0x0000001c
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_VC_1__SHIFT 0x0000001d
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_VC_2__SHIFT 0x0000001e
+#define SQ_INSTRUCTION_CF_EXEC_0__INST_VC_3__SHIFT 0x0000001f
+
+// SQ_INSTRUCTION_CF_EXEC_1
+#define SQ_INSTRUCTION_CF_EXEC_1__INST_VC_4__SHIFT 0x00000000
+#define SQ_INSTRUCTION_CF_EXEC_1__INST_VC_5__SHIFT 0x00000001
+#define SQ_INSTRUCTION_CF_EXEC_1__BOOL_ADDR__SHIFT 0x00000002
+#define SQ_INSTRUCTION_CF_EXEC_1__CONDITION__SHIFT 0x0000000a
+#define SQ_INSTRUCTION_CF_EXEC_1__ADDRESS_MODE__SHIFT 0x0000000b
+#define SQ_INSTRUCTION_CF_EXEC_1__OPCODE__SHIFT 0x0000000c
+#define SQ_INSTRUCTION_CF_EXEC_1__ADDRESS__SHIFT 0x00000010
+#define SQ_INSTRUCTION_CF_EXEC_1__RESERVED__SHIFT 0x00000019
+#define SQ_INSTRUCTION_CF_EXEC_1__COUNT__SHIFT 0x0000001c
+#define SQ_INSTRUCTION_CF_EXEC_1__YIELD__SHIFT 0x0000001f
+
+// SQ_INSTRUCTION_CF_EXEC_2
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_TYPE_0__SHIFT 0x00000000
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_SERIAL_0__SHIFT 0x00000001
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_TYPE_1__SHIFT 0x00000002
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_SERIAL_1__SHIFT 0x00000003
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_TYPE_2__SHIFT 0x00000004
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_SERIAL_2__SHIFT 0x00000005
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_TYPE_3__SHIFT 0x00000006
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_SERIAL_3__SHIFT 0x00000007
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_TYPE_4__SHIFT 0x00000008
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_SERIAL_4__SHIFT 0x00000009
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_TYPE_5__SHIFT 0x0000000a
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_SERIAL_5__SHIFT 0x0000000b
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_VC_0__SHIFT 0x0000000c
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_VC_1__SHIFT 0x0000000d
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_VC_2__SHIFT 0x0000000e
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_VC_3__SHIFT 0x0000000f
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_VC_4__SHIFT 0x00000010
+#define SQ_INSTRUCTION_CF_EXEC_2__INST_VC_5__SHIFT 0x00000011
+#define SQ_INSTRUCTION_CF_EXEC_2__BOOL_ADDR__SHIFT 0x00000012
+#define SQ_INSTRUCTION_CF_EXEC_2__CONDITION__SHIFT 0x0000001a
+#define SQ_INSTRUCTION_CF_EXEC_2__ADDRESS_MODE__SHIFT 0x0000001b
+#define SQ_INSTRUCTION_CF_EXEC_2__OPCODE__SHIFT 0x0000001c
+
+// SQ_INSTRUCTION_CF_LOOP_0
+#define SQ_INSTRUCTION_CF_LOOP_0__ADDRESS__SHIFT 0x00000000
+#define SQ_INSTRUCTION_CF_LOOP_0__RESERVED_0__SHIFT 0x0000000a
+#define SQ_INSTRUCTION_CF_LOOP_0__LOOP_ID__SHIFT 0x00000010
+#define SQ_INSTRUCTION_CF_LOOP_0__RESERVED_1__SHIFT 0x00000015
+
+// SQ_INSTRUCTION_CF_LOOP_1
+#define SQ_INSTRUCTION_CF_LOOP_1__RESERVED_0__SHIFT 0x00000000
+#define SQ_INSTRUCTION_CF_LOOP_1__ADDRESS_MODE__SHIFT 0x0000000b
+#define SQ_INSTRUCTION_CF_LOOP_1__OPCODE__SHIFT 0x0000000c
+#define SQ_INSTRUCTION_CF_LOOP_1__ADDRESS__SHIFT 0x00000010
+#define SQ_INSTRUCTION_CF_LOOP_1__RESERVED_1__SHIFT 0x0000001a
+
+// SQ_INSTRUCTION_CF_LOOP_2
+#define SQ_INSTRUCTION_CF_LOOP_2__LOOP_ID__SHIFT 0x00000000
+#define SQ_INSTRUCTION_CF_LOOP_2__RESERVED__SHIFT 0x00000005
+#define SQ_INSTRUCTION_CF_LOOP_2__ADDRESS_MODE__SHIFT 0x0000001b
+#define SQ_INSTRUCTION_CF_LOOP_2__OPCODE__SHIFT 0x0000001c
+
+// SQ_INSTRUCTION_CF_JMP_CALL_0
+#define SQ_INSTRUCTION_CF_JMP_CALL_0__ADDRESS__SHIFT 0x00000000
+#define SQ_INSTRUCTION_CF_JMP_CALL_0__RESERVED_0__SHIFT 0x0000000a
+#define SQ_INSTRUCTION_CF_JMP_CALL_0__FORCE_CALL__SHIFT 0x0000000d
+#define SQ_INSTRUCTION_CF_JMP_CALL_0__PREDICATED_JMP__SHIFT 0x0000000e
+#define SQ_INSTRUCTION_CF_JMP_CALL_0__RESERVED_1__SHIFT 0x0000000f
+
+// SQ_INSTRUCTION_CF_JMP_CALL_1
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__RESERVED_0__SHIFT 0x00000000
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__DIRECTION__SHIFT 0x00000001
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__BOOL_ADDR__SHIFT 0x00000002
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__CONDITION__SHIFT 0x0000000a
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__ADDRESS_MODE__SHIFT 0x0000000b
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__OPCODE__SHIFT 0x0000000c
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__ADDRESS__SHIFT 0x00000010
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__RESERVED_1__SHIFT 0x0000001a
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__FORCE_CALL__SHIFT 0x0000001d
+#define SQ_INSTRUCTION_CF_JMP_CALL_1__RESERVED_2__SHIFT 0x0000001e
+
+// SQ_INSTRUCTION_CF_JMP_CALL_2
+#define SQ_INSTRUCTION_CF_JMP_CALL_2__RESERVED__SHIFT 0x00000000
+#define SQ_INSTRUCTION_CF_JMP_CALL_2__DIRECTION__SHIFT 0x00000011
+#define SQ_INSTRUCTION_CF_JMP_CALL_2__BOOL_ADDR__SHIFT 0x00000012
+#define SQ_INSTRUCTION_CF_JMP_CALL_2__CONDITION__SHIFT 0x0000001a
+#define SQ_INSTRUCTION_CF_JMP_CALL_2__ADDRESS_MODE__SHIFT 0x0000001b
+#define SQ_INSTRUCTION_CF_JMP_CALL_2__OPCODE__SHIFT 0x0000001c
+
+// SQ_INSTRUCTION_CF_ALLOC_0
+#define SQ_INSTRUCTION_CF_ALLOC_0__SIZE__SHIFT 0x00000000
+#define SQ_INSTRUCTION_CF_ALLOC_0__RESERVED__SHIFT 0x00000004
+
+// SQ_INSTRUCTION_CF_ALLOC_1
+#define SQ_INSTRUCTION_CF_ALLOC_1__RESERVED_0__SHIFT 0x00000000
+#define SQ_INSTRUCTION_CF_ALLOC_1__NO_SERIAL__SHIFT 0x00000008
+#define SQ_INSTRUCTION_CF_ALLOC_1__BUFFER_SELECT__SHIFT 0x00000009
+#define SQ_INSTRUCTION_CF_ALLOC_1__ALLOC_MODE__SHIFT 0x0000000b
+#define SQ_INSTRUCTION_CF_ALLOC_1__OPCODE__SHIFT 0x0000000c
+#define SQ_INSTRUCTION_CF_ALLOC_1__SIZE__SHIFT 0x00000010
+#define SQ_INSTRUCTION_CF_ALLOC_1__RESERVED_1__SHIFT 0x00000014
+
+// SQ_INSTRUCTION_CF_ALLOC_2
+#define SQ_INSTRUCTION_CF_ALLOC_2__RESERVED__SHIFT 0x00000000
+#define SQ_INSTRUCTION_CF_ALLOC_2__NO_SERIAL__SHIFT 0x00000018
+#define SQ_INSTRUCTION_CF_ALLOC_2__BUFFER_SELECT__SHIFT 0x00000019
+#define SQ_INSTRUCTION_CF_ALLOC_2__ALLOC_MODE__SHIFT 0x0000001b
+#define SQ_INSTRUCTION_CF_ALLOC_2__OPCODE__SHIFT 0x0000001c
+
+// SQ_INSTRUCTION_TFETCH_0
+#define SQ_INSTRUCTION_TFETCH_0__OPCODE__SHIFT 0x00000000
+#define SQ_INSTRUCTION_TFETCH_0__SRC_GPR__SHIFT 0x00000005
+#define SQ_INSTRUCTION_TFETCH_0__SRC_GPR_AM__SHIFT 0x0000000b
+#define SQ_INSTRUCTION_TFETCH_0__DST_GPR__SHIFT 0x0000000c
+#define SQ_INSTRUCTION_TFETCH_0__DST_GPR_AM__SHIFT 0x00000012
+#define SQ_INSTRUCTION_TFETCH_0__FETCH_VALID_ONLY__SHIFT 0x00000013
+#define SQ_INSTRUCTION_TFETCH_0__CONST_INDEX__SHIFT 0x00000014
+#define SQ_INSTRUCTION_TFETCH_0__TX_COORD_DENORM__SHIFT 0x00000019
+#define SQ_INSTRUCTION_TFETCH_0__SRC_SEL_X__SHIFT 0x0000001a
+#define SQ_INSTRUCTION_TFETCH_0__SRC_SEL_Y__SHIFT 0x0000001c
+#define SQ_INSTRUCTION_TFETCH_0__SRC_SEL_Z__SHIFT 0x0000001e
+
+// SQ_INSTRUCTION_TFETCH_1
+#define SQ_INSTRUCTION_TFETCH_1__DST_SEL_X__SHIFT 0x00000000
+#define SQ_INSTRUCTION_TFETCH_1__DST_SEL_Y__SHIFT 0x00000003
+#define SQ_INSTRUCTION_TFETCH_1__DST_SEL_Z__SHIFT 0x00000006
+#define SQ_INSTRUCTION_TFETCH_1__DST_SEL_W__SHIFT 0x00000009
+#define SQ_INSTRUCTION_TFETCH_1__MAG_FILTER__SHIFT 0x0000000c
+#define SQ_INSTRUCTION_TFETCH_1__MIN_FILTER__SHIFT 0x0000000e
+#define SQ_INSTRUCTION_TFETCH_1__MIP_FILTER__SHIFT 0x00000010
+#define SQ_INSTRUCTION_TFETCH_1__ANISO_FILTER__SHIFT 0x00000012
+#define SQ_INSTRUCTION_TFETCH_1__ARBITRARY_FILTER__SHIFT 0x00000015
+#define SQ_INSTRUCTION_TFETCH_1__VOL_MAG_FILTER__SHIFT 0x00000018
+#define SQ_INSTRUCTION_TFETCH_1__VOL_MIN_FILTER__SHIFT 0x0000001a
+#define SQ_INSTRUCTION_TFETCH_1__USE_COMP_LOD__SHIFT 0x0000001c
+#define SQ_INSTRUCTION_TFETCH_1__USE_REG_LOD__SHIFT 0x0000001d
+#define SQ_INSTRUCTION_TFETCH_1__PRED_SELECT__SHIFT 0x0000001f
+
+// SQ_INSTRUCTION_TFETCH_2
+#define SQ_INSTRUCTION_TFETCH_2__USE_REG_GRADIENTS__SHIFT 0x00000000
+#define SQ_INSTRUCTION_TFETCH_2__SAMPLE_LOCATION__SHIFT 0x00000001
+#define SQ_INSTRUCTION_TFETCH_2__LOD_BIAS__SHIFT 0x00000002
+#define SQ_INSTRUCTION_TFETCH_2__UNUSED__SHIFT 0x00000009
+#define SQ_INSTRUCTION_TFETCH_2__OFFSET_X__SHIFT 0x00000010
+#define SQ_INSTRUCTION_TFETCH_2__OFFSET_Y__SHIFT 0x00000015
+#define SQ_INSTRUCTION_TFETCH_2__OFFSET_Z__SHIFT 0x0000001a
+#define SQ_INSTRUCTION_TFETCH_2__PRED_CONDITION__SHIFT 0x0000001f
+
+// SQ_INSTRUCTION_VFETCH_0
+#define SQ_INSTRUCTION_VFETCH_0__OPCODE__SHIFT 0x00000000
+#define SQ_INSTRUCTION_VFETCH_0__SRC_GPR__SHIFT 0x00000005
+#define SQ_INSTRUCTION_VFETCH_0__SRC_GPR_AM__SHIFT 0x0000000b
+#define SQ_INSTRUCTION_VFETCH_0__DST_GPR__SHIFT 0x0000000c
+#define SQ_INSTRUCTION_VFETCH_0__DST_GPR_AM__SHIFT 0x00000012
+#define SQ_INSTRUCTION_VFETCH_0__MUST_BE_ONE__SHIFT 0x00000013
+#define SQ_INSTRUCTION_VFETCH_0__CONST_INDEX__SHIFT 0x00000014
+#define SQ_INSTRUCTION_VFETCH_0__CONST_INDEX_SEL__SHIFT 0x00000019
+#define SQ_INSTRUCTION_VFETCH_0__SRC_SEL__SHIFT 0x0000001e
+
+// SQ_INSTRUCTION_VFETCH_1
+#define SQ_INSTRUCTION_VFETCH_1__DST_SEL_X__SHIFT 0x00000000
+#define SQ_INSTRUCTION_VFETCH_1__DST_SEL_Y__SHIFT 0x00000003
+#define SQ_INSTRUCTION_VFETCH_1__DST_SEL_Z__SHIFT 0x00000006
+#define SQ_INSTRUCTION_VFETCH_1__DST_SEL_W__SHIFT 0x00000009
+#define SQ_INSTRUCTION_VFETCH_1__FORMAT_COMP_ALL__SHIFT 0x0000000c
+#define SQ_INSTRUCTION_VFETCH_1__NUM_FORMAT_ALL__SHIFT 0x0000000d
+#define SQ_INSTRUCTION_VFETCH_1__SIGNED_RF_MODE_ALL__SHIFT 0x0000000e
+#define SQ_INSTRUCTION_VFETCH_1__DATA_FORMAT__SHIFT 0x00000010
+#define SQ_INSTRUCTION_VFETCH_1__EXP_ADJUST_ALL__SHIFT 0x00000017
+#define SQ_INSTRUCTION_VFETCH_1__PRED_SELECT__SHIFT 0x0000001f
+
+// SQ_INSTRUCTION_VFETCH_2
+#define SQ_INSTRUCTION_VFETCH_2__STRIDE__SHIFT 0x00000000
+#define SQ_INSTRUCTION_VFETCH_2__OFFSET__SHIFT 0x00000010
+#define SQ_INSTRUCTION_VFETCH_2__PRED_CONDITION__SHIFT 0x0000001f
+
+// SQ_CONSTANT_0
+#define SQ_CONSTANT_0__RED__SHIFT 0x00000000
+
+// SQ_CONSTANT_1
+#define SQ_CONSTANT_1__GREEN__SHIFT 0x00000000
+
+// SQ_CONSTANT_2
+#define SQ_CONSTANT_2__BLUE__SHIFT 0x00000000
+
+// SQ_CONSTANT_3
+#define SQ_CONSTANT_3__ALPHA__SHIFT 0x00000000
+
+// SQ_FETCH_0
+#define SQ_FETCH_0__VALUE__SHIFT 0x00000000
+
+// SQ_FETCH_1
+#define SQ_FETCH_1__VALUE__SHIFT 0x00000000
+
+// SQ_FETCH_2
+#define SQ_FETCH_2__VALUE__SHIFT 0x00000000
+
+// SQ_FETCH_3
+#define SQ_FETCH_3__VALUE__SHIFT 0x00000000
+
+// SQ_FETCH_4
+#define SQ_FETCH_4__VALUE__SHIFT 0x00000000
+
+// SQ_FETCH_5
+#define SQ_FETCH_5__VALUE__SHIFT 0x00000000
+
+// SQ_CONSTANT_VFETCH_0
+#define SQ_CONSTANT_VFETCH_0__TYPE__SHIFT 0x00000000
+#define SQ_CONSTANT_VFETCH_0__STATE__SHIFT 0x00000001
+#define SQ_CONSTANT_VFETCH_0__BASE_ADDRESS__SHIFT 0x00000002
+
+// SQ_CONSTANT_VFETCH_1
+#define SQ_CONSTANT_VFETCH_1__ENDIAN_SWAP__SHIFT 0x00000000
+#define SQ_CONSTANT_VFETCH_1__LIMIT_ADDRESS__SHIFT 0x00000002
+
+// SQ_CONSTANT_T2
+#define SQ_CONSTANT_T2__VALUE__SHIFT 0x00000000
+
+// SQ_CONSTANT_T3
+#define SQ_CONSTANT_T3__VALUE__SHIFT 0x00000000
+
+// SQ_CF_BOOLEANS
+#define SQ_CF_BOOLEANS__CF_BOOLEANS_0__SHIFT 0x00000000
+#define SQ_CF_BOOLEANS__CF_BOOLEANS_1__SHIFT 0x00000008
+#define SQ_CF_BOOLEANS__CF_BOOLEANS_2__SHIFT 0x00000010
+#define SQ_CF_BOOLEANS__CF_BOOLEANS_3__SHIFT 0x00000018
+
+// SQ_CF_LOOP
+#define SQ_CF_LOOP__CF_LOOP_COUNT__SHIFT 0x00000000
+#define SQ_CF_LOOP__CF_LOOP_START__SHIFT 0x00000008
+#define SQ_CF_LOOP__CF_LOOP_STEP__SHIFT 0x00000010
+
+// SQ_CONSTANT_RT_0
+#define SQ_CONSTANT_RT_0__RED__SHIFT 0x00000000
+
+// SQ_CONSTANT_RT_1
+#define SQ_CONSTANT_RT_1__GREEN__SHIFT 0x00000000
+
+// SQ_CONSTANT_RT_2
+#define SQ_CONSTANT_RT_2__BLUE__SHIFT 0x00000000
+
+// SQ_CONSTANT_RT_3
+#define SQ_CONSTANT_RT_3__ALPHA__SHIFT 0x00000000
+
+// SQ_FETCH_RT_0
+#define SQ_FETCH_RT_0__VALUE__SHIFT 0x00000000
+
+// SQ_FETCH_RT_1
+#define SQ_FETCH_RT_1__VALUE__SHIFT 0x00000000
+
+// SQ_FETCH_RT_2
+#define SQ_FETCH_RT_2__VALUE__SHIFT 0x00000000
+
+// SQ_FETCH_RT_3
+#define SQ_FETCH_RT_3__VALUE__SHIFT 0x00000000
+
+// SQ_FETCH_RT_4
+#define SQ_FETCH_RT_4__VALUE__SHIFT 0x00000000
+
+// SQ_FETCH_RT_5
+#define SQ_FETCH_RT_5__VALUE__SHIFT 0x00000000
+
+// SQ_CF_RT_BOOLEANS
+#define SQ_CF_RT_BOOLEANS__CF_BOOLEANS_0__SHIFT 0x00000000
+#define SQ_CF_RT_BOOLEANS__CF_BOOLEANS_1__SHIFT 0x00000008
+#define SQ_CF_RT_BOOLEANS__CF_BOOLEANS_2__SHIFT 0x00000010
+#define SQ_CF_RT_BOOLEANS__CF_BOOLEANS_3__SHIFT 0x00000018
+
+// SQ_CF_RT_LOOP
+#define SQ_CF_RT_LOOP__CF_LOOP_COUNT__SHIFT 0x00000000
+#define SQ_CF_RT_LOOP__CF_LOOP_START__SHIFT 0x00000008
+#define SQ_CF_RT_LOOP__CF_LOOP_STEP__SHIFT 0x00000010
+
+// SQ_VS_PROGRAM
+#define SQ_VS_PROGRAM__BASE__SHIFT 0x00000000
+#define SQ_VS_PROGRAM__SIZE__SHIFT 0x0000000c
+
+// SQ_PS_PROGRAM
+#define SQ_PS_PROGRAM__BASE__SHIFT 0x00000000
+#define SQ_PS_PROGRAM__SIZE__SHIFT 0x0000000c
+
+// SQ_CF_PROGRAM_SIZE
+#define SQ_CF_PROGRAM_SIZE__VS_CF_SIZE__SHIFT 0x00000000
+#define SQ_CF_PROGRAM_SIZE__PS_CF_SIZE__SHIFT 0x0000000c
+
+// SQ_INTERPOLATOR_CNTL
+#define SQ_INTERPOLATOR_CNTL__PARAM_SHADE__SHIFT 0x00000000
+#define SQ_INTERPOLATOR_CNTL__SAMPLING_PATTERN__SHIFT 0x00000010
+
+// SQ_PROGRAM_CNTL
+#define SQ_PROGRAM_CNTL__VS_NUM_REG__SHIFT 0x00000000
+#define SQ_PROGRAM_CNTL__PS_NUM_REG__SHIFT 0x00000008
+#define SQ_PROGRAM_CNTL__VS_RESOURCE__SHIFT 0x00000010
+#define SQ_PROGRAM_CNTL__PS_RESOURCE__SHIFT 0x00000011
+#define SQ_PROGRAM_CNTL__PARAM_GEN__SHIFT 0x00000012
+#define SQ_PROGRAM_CNTL__GEN_INDEX_PIX__SHIFT 0x00000013
+#define SQ_PROGRAM_CNTL__VS_EXPORT_COUNT__SHIFT 0x00000014
+#define SQ_PROGRAM_CNTL__VS_EXPORT_MODE__SHIFT 0x00000018
+#define SQ_PROGRAM_CNTL__PS_EXPORT_MODE__SHIFT 0x0000001b
+#define SQ_PROGRAM_CNTL__GEN_INDEX_VTX__SHIFT 0x0000001f
+
+// SQ_WRAPPING_0
+#define SQ_WRAPPING_0__PARAM_WRAP_0__SHIFT 0x00000000
+#define SQ_WRAPPING_0__PARAM_WRAP_1__SHIFT 0x00000004
+#define SQ_WRAPPING_0__PARAM_WRAP_2__SHIFT 0x00000008
+#define SQ_WRAPPING_0__PARAM_WRAP_3__SHIFT 0x0000000c
+#define SQ_WRAPPING_0__PARAM_WRAP_4__SHIFT 0x00000010
+#define SQ_WRAPPING_0__PARAM_WRAP_5__SHIFT 0x00000014
+#define SQ_WRAPPING_0__PARAM_WRAP_6__SHIFT 0x00000018
+#define SQ_WRAPPING_0__PARAM_WRAP_7__SHIFT 0x0000001c
+
+// SQ_WRAPPING_1
+#define SQ_WRAPPING_1__PARAM_WRAP_8__SHIFT 0x00000000
+#define SQ_WRAPPING_1__PARAM_WRAP_9__SHIFT 0x00000004
+#define SQ_WRAPPING_1__PARAM_WRAP_10__SHIFT 0x00000008
+#define SQ_WRAPPING_1__PARAM_WRAP_11__SHIFT 0x0000000c
+#define SQ_WRAPPING_1__PARAM_WRAP_12__SHIFT 0x00000010
+#define SQ_WRAPPING_1__PARAM_WRAP_13__SHIFT 0x00000014
+#define SQ_WRAPPING_1__PARAM_WRAP_14__SHIFT 0x00000018
+#define SQ_WRAPPING_1__PARAM_WRAP_15__SHIFT 0x0000001c
+
+// SQ_VS_CONST
+#define SQ_VS_CONST__BASE__SHIFT 0x00000000
+#define SQ_VS_CONST__SIZE__SHIFT 0x0000000c
+
+// SQ_PS_CONST
+#define SQ_PS_CONST__BASE__SHIFT 0x00000000
+#define SQ_PS_CONST__SIZE__SHIFT 0x0000000c
+
+// SQ_CONTEXT_MISC
+#define SQ_CONTEXT_MISC__INST_PRED_OPTIMIZE__SHIFT 0x00000000
+#define SQ_CONTEXT_MISC__SC_OUTPUT_SCREEN_XY__SHIFT 0x00000001
+#define SQ_CONTEXT_MISC__SC_SAMPLE_CNTL__SHIFT 0x00000002
+#define SQ_CONTEXT_MISC__PARAM_GEN_POS__SHIFT 0x00000008
+#define SQ_CONTEXT_MISC__PERFCOUNTER_REF__SHIFT 0x00000010
+#define SQ_CONTEXT_MISC__YEILD_OPTIMIZE__SHIFT 0x00000011
+#define SQ_CONTEXT_MISC__TX_CACHE_SEL__SHIFT 0x00000012
+
+// SQ_CF_RD_BASE
+#define SQ_CF_RD_BASE__RD_BASE__SHIFT 0x00000000
+
+// SQ_DEBUG_MISC_0
+#define SQ_DEBUG_MISC_0__DB_PROB_ON__SHIFT 0x00000000
+#define SQ_DEBUG_MISC_0__DB_PROB_BREAK__SHIFT 0x00000004
+#define SQ_DEBUG_MISC_0__DB_PROB_ADDR__SHIFT 0x00000008
+#define SQ_DEBUG_MISC_0__DB_PROB_COUNT__SHIFT 0x00000018
+
+// SQ_DEBUG_MISC_1
+#define SQ_DEBUG_MISC_1__DB_ON_PIX__SHIFT 0x00000000
+#define SQ_DEBUG_MISC_1__DB_ON_VTX__SHIFT 0x00000001
+#define SQ_DEBUG_MISC_1__DB_INST_COUNT__SHIFT 0x00000008
+#define SQ_DEBUG_MISC_1__DB_BREAK_ADDR__SHIFT 0x00000010
+
+// MH_ARBITER_CONFIG
+#define MH_ARBITER_CONFIG__SAME_PAGE_LIMIT__SHIFT 0x00000000
+#define MH_ARBITER_CONFIG__SAME_PAGE_GRANULARITY__SHIFT 0x00000006
+#define MH_ARBITER_CONFIG__L1_ARB_ENABLE__SHIFT 0x00000007
+#define MH_ARBITER_CONFIG__L1_ARB_HOLD_ENABLE__SHIFT 0x00000008
+#define MH_ARBITER_CONFIG__L2_ARB_CONTROL__SHIFT 0x00000009
+#define MH_ARBITER_CONFIG__PAGE_SIZE__SHIFT 0x0000000a
+#define MH_ARBITER_CONFIG__TC_REORDER_ENABLE__SHIFT 0x0000000d
+#define MH_ARBITER_CONFIG__TC_ARB_HOLD_ENABLE__SHIFT 0x0000000e
+#define MH_ARBITER_CONFIG__IN_FLIGHT_LIMIT_ENABLE__SHIFT 0x0000000f
+#define MH_ARBITER_CONFIG__IN_FLIGHT_LIMIT__SHIFT 0x00000010
+#define MH_ARBITER_CONFIG__CP_CLNT_ENABLE__SHIFT 0x00000016
+#define MH_ARBITER_CONFIG__VGT_CLNT_ENABLE__SHIFT 0x00000017
+#define MH_ARBITER_CONFIG__TC_CLNT_ENABLE__SHIFT 0x00000018
+#define MH_ARBITER_CONFIG__RB_CLNT_ENABLE__SHIFT 0x00000019
+#define MH_ARBITER_CONFIG__PA_CLNT_ENABLE__SHIFT 0x0000001a
+
+// MH_CLNT_AXI_ID_REUSE
+#define MH_CLNT_AXI_ID_REUSE__CPw_ID__SHIFT 0x00000000
+#define MH_CLNT_AXI_ID_REUSE__RESERVED1__SHIFT 0x00000003
+#define MH_CLNT_AXI_ID_REUSE__RBw_ID__SHIFT 0x00000004
+#define MH_CLNT_AXI_ID_REUSE__RESERVED2__SHIFT 0x00000007
+#define MH_CLNT_AXI_ID_REUSE__MMUr_ID__SHIFT 0x00000008
+#define MH_CLNT_AXI_ID_REUSE__RESERVED3__SHIFT 0x0000000b
+#define MH_CLNT_AXI_ID_REUSE__PAw_ID__SHIFT 0x0000000c
+
+// MH_INTERRUPT_MASK
+#define MH_INTERRUPT_MASK__AXI_READ_ERROR__SHIFT 0x00000000
+#define MH_INTERRUPT_MASK__AXI_WRITE_ERROR__SHIFT 0x00000001
+#define MH_INTERRUPT_MASK__MMU_PAGE_FAULT__SHIFT 0x00000002
+
+// MH_INTERRUPT_STATUS
+#define MH_INTERRUPT_STATUS__AXI_READ_ERROR__SHIFT 0x00000000
+#define MH_INTERRUPT_STATUS__AXI_WRITE_ERROR__SHIFT 0x00000001
+#define MH_INTERRUPT_STATUS__MMU_PAGE_FAULT__SHIFT 0x00000002
+
+// MH_INTERRUPT_CLEAR
+#define MH_INTERRUPT_CLEAR__AXI_READ_ERROR__SHIFT 0x00000000
+#define MH_INTERRUPT_CLEAR__AXI_WRITE_ERROR__SHIFT 0x00000001
+#define MH_INTERRUPT_CLEAR__MMU_PAGE_FAULT__SHIFT 0x00000002
+
+// MH_AXI_ERROR
+#define MH_AXI_ERROR__AXI_READ_ID__SHIFT 0x00000000
+#define MH_AXI_ERROR__AXI_READ_ERROR__SHIFT 0x00000003
+#define MH_AXI_ERROR__AXI_WRITE_ID__SHIFT 0x00000004
+#define MH_AXI_ERROR__AXI_WRITE_ERROR__SHIFT 0x00000007
+
+// MH_PERFCOUNTER0_SELECT
+#define MH_PERFCOUNTER0_SELECT__PERF_SEL__SHIFT 0x00000000
+
+// MH_PERFCOUNTER1_SELECT
+#define MH_PERFCOUNTER1_SELECT__PERF_SEL__SHIFT 0x00000000
+
+// MH_PERFCOUNTER0_CONFIG
+#define MH_PERFCOUNTER0_CONFIG__N_VALUE__SHIFT 0x00000000
+
+// MH_PERFCOUNTER1_CONFIG
+#define MH_PERFCOUNTER1_CONFIG__N_VALUE__SHIFT 0x00000000
+
+// MH_PERFCOUNTER0_LOW
+#define MH_PERFCOUNTER0_LOW__PERF_COUNTER_LOW__SHIFT 0x00000000
+
+// MH_PERFCOUNTER1_LOW
+#define MH_PERFCOUNTER1_LOW__PERF_COUNTER_LOW__SHIFT 0x00000000
+
+// MH_PERFCOUNTER0_HI
+#define MH_PERFCOUNTER0_HI__PERF_COUNTER_HI__SHIFT 0x00000000
+
+// MH_PERFCOUNTER1_HI
+#define MH_PERFCOUNTER1_HI__PERF_COUNTER_HI__SHIFT 0x00000000
+
+// MH_DEBUG_CTRL
+#define MH_DEBUG_CTRL__INDEX__SHIFT 0x00000000
+
+// MH_DEBUG_DATA
+#define MH_DEBUG_DATA__DATA__SHIFT 0x00000000
+
+// MH_AXI_HALT_CONTROL
+#define MH_AXI_HALT_CONTROL__AXI_HALT__SHIFT 0x00000000
+
+// MH_DEBUG_REG00
+#define MH_DEBUG_REG00__MH_BUSY__SHIFT 0x00000000
+#define MH_DEBUG_REG00__TRANS_OUTSTANDING__SHIFT 0x00000001
+#define MH_DEBUG_REG00__CP_REQUEST__SHIFT 0x00000002
+#define MH_DEBUG_REG00__VGT_REQUEST__SHIFT 0x00000003
+#define MH_DEBUG_REG00__TC_REQUEST__SHIFT 0x00000004
+#define MH_DEBUG_REG00__TC_CAM_EMPTY__SHIFT 0x00000005
+#define MH_DEBUG_REG00__TC_CAM_FULL__SHIFT 0x00000006
+#define MH_DEBUG_REG00__TCD_EMPTY__SHIFT 0x00000007
+#define MH_DEBUG_REG00__TCD_FULL__SHIFT 0x00000008
+#define MH_DEBUG_REG00__RB_REQUEST__SHIFT 0x00000009
+#define MH_DEBUG_REG00__PA_REQUEST__SHIFT 0x0000000a
+#define MH_DEBUG_REG00__MH_CLK_EN_STATE__SHIFT 0x0000000b
+#define MH_DEBUG_REG00__ARQ_EMPTY__SHIFT 0x0000000c
+#define MH_DEBUG_REG00__ARQ_FULL__SHIFT 0x0000000d
+#define MH_DEBUG_REG00__WDB_EMPTY__SHIFT 0x0000000e
+#define MH_DEBUG_REG00__WDB_FULL__SHIFT 0x0000000f
+#define MH_DEBUG_REG00__AXI_AVALID__SHIFT 0x00000010
+#define MH_DEBUG_REG00__AXI_AREADY__SHIFT 0x00000011
+#define MH_DEBUG_REG00__AXI_ARVALID__SHIFT 0x00000012
+#define MH_DEBUG_REG00__AXI_ARREADY__SHIFT 0x00000013
+#define MH_DEBUG_REG00__AXI_WVALID__SHIFT 0x00000014
+#define MH_DEBUG_REG00__AXI_WREADY__SHIFT 0x00000015
+#define MH_DEBUG_REG00__AXI_RVALID__SHIFT 0x00000016
+#define MH_DEBUG_REG00__AXI_RREADY__SHIFT 0x00000017
+#define MH_DEBUG_REG00__AXI_BVALID__SHIFT 0x00000018
+#define MH_DEBUG_REG00__AXI_BREADY__SHIFT 0x00000019
+#define MH_DEBUG_REG00__AXI_HALT_REQ__SHIFT 0x0000001a
+#define MH_DEBUG_REG00__AXI_HALT_ACK__SHIFT 0x0000001b
+#define MH_DEBUG_REG00__AXI_RDY_ENA__SHIFT 0x0000001c
+
+// MH_DEBUG_REG01
+#define MH_DEBUG_REG01__CP_SEND_q__SHIFT 0x00000000
+#define MH_DEBUG_REG01__CP_RTR_q__SHIFT 0x00000001
+#define MH_DEBUG_REG01__CP_WRITE_q__SHIFT 0x00000002
+#define MH_DEBUG_REG01__CP_TAG_q__SHIFT 0x00000003
+#define MH_DEBUG_REG01__CP_BLEN_q__SHIFT 0x00000006
+#define MH_DEBUG_REG01__VGT_SEND_q__SHIFT 0x00000007
+#define MH_DEBUG_REG01__VGT_RTR_q__SHIFT 0x00000008
+#define MH_DEBUG_REG01__VGT_TAG_q__SHIFT 0x00000009
+#define MH_DEBUG_REG01__TC_SEND_q__SHIFT 0x0000000a
+#define MH_DEBUG_REG01__TC_RTR_q__SHIFT 0x0000000b
+#define MH_DEBUG_REG01__TC_BLEN_q__SHIFT 0x0000000c
+#define MH_DEBUG_REG01__TC_ROQ_SEND_q__SHIFT 0x0000000d
+#define MH_DEBUG_REG01__TC_ROQ_RTR_q__SHIFT 0x0000000e
+#define MH_DEBUG_REG01__TC_MH_written__SHIFT 0x0000000f
+#define MH_DEBUG_REG01__RB_SEND_q__SHIFT 0x00000010
+#define MH_DEBUG_REG01__RB_RTR_q__SHIFT 0x00000011
+#define MH_DEBUG_REG01__PA_SEND_q__SHIFT 0x00000012
+#define MH_DEBUG_REG01__PA_RTR_q__SHIFT 0x00000013
+
+// MH_DEBUG_REG02
+#define MH_DEBUG_REG02__MH_CP_grb_send__SHIFT 0x00000000
+#define MH_DEBUG_REG02__MH_VGT_grb_send__SHIFT 0x00000001
+#define MH_DEBUG_REG02__MH_TC_mcsend__SHIFT 0x00000002
+#define MH_DEBUG_REG02__MH_CLNT_rlast__SHIFT 0x00000003
+#define MH_DEBUG_REG02__MH_CLNT_tag__SHIFT 0x00000004
+#define MH_DEBUG_REG02__RDC_RID__SHIFT 0x00000007
+#define MH_DEBUG_REG02__RDC_RRESP__SHIFT 0x0000000a
+#define MH_DEBUG_REG02__MH_CP_writeclean__SHIFT 0x0000000c
+#define MH_DEBUG_REG02__MH_RB_writeclean__SHIFT 0x0000000d
+#define MH_DEBUG_REG02__MH_PA_writeclean__SHIFT 0x0000000e
+#define MH_DEBUG_REG02__BRC_BID__SHIFT 0x0000000f
+#define MH_DEBUG_REG02__BRC_BRESP__SHIFT 0x00000012
+
+// MH_DEBUG_REG03
+#define MH_DEBUG_REG03__MH_CLNT_data_31_0__SHIFT 0x00000000
+
+// MH_DEBUG_REG04
+#define MH_DEBUG_REG04__MH_CLNT_data_63_32__SHIFT 0x00000000
+
+// MH_DEBUG_REG05
+#define MH_DEBUG_REG05__CP_MH_send__SHIFT 0x00000000
+#define MH_DEBUG_REG05__CP_MH_write__SHIFT 0x00000001
+#define MH_DEBUG_REG05__CP_MH_tag__SHIFT 0x00000002
+#define MH_DEBUG_REG05__CP_MH_ad_31_5__SHIFT 0x00000005
+
+// MH_DEBUG_REG06
+#define MH_DEBUG_REG06__CP_MH_data_31_0__SHIFT 0x00000000
+
+// MH_DEBUG_REG07
+#define MH_DEBUG_REG07__CP_MH_data_63_32__SHIFT 0x00000000
+
+// MH_DEBUG_REG08
+#define MH_DEBUG_REG08__CP_MH_be__SHIFT 0x00000000
+#define MH_DEBUG_REG08__RB_MH_be__SHIFT 0x00000008
+#define MH_DEBUG_REG08__PA_MH_be__SHIFT 0x00000010
+
+// MH_DEBUG_REG09
+#define MH_DEBUG_REG09__ALWAYS_ZERO__SHIFT 0x00000000
+#define MH_DEBUG_REG09__VGT_MH_send__SHIFT 0x00000003
+#define MH_DEBUG_REG09__VGT_MH_tagbe__SHIFT 0x00000004
+#define MH_DEBUG_REG09__VGT_MH_ad_31_5__SHIFT 0x00000005
+
+// MH_DEBUG_REG10
+#define MH_DEBUG_REG10__ALWAYS_ZERO__SHIFT 0x00000000
+#define MH_DEBUG_REG10__TC_MH_send__SHIFT 0x00000002
+#define MH_DEBUG_REG10__TC_MH_mask__SHIFT 0x00000003
+#define MH_DEBUG_REG10__TC_MH_addr_31_5__SHIFT 0x00000005
+
+// MH_DEBUG_REG11
+#define MH_DEBUG_REG11__TC_MH_info__SHIFT 0x00000000
+#define MH_DEBUG_REG11__TC_MH_send__SHIFT 0x00000019
+
+// MH_DEBUG_REG12
+#define MH_DEBUG_REG12__MH_TC_mcinfo__SHIFT 0x00000000
+#define MH_DEBUG_REG12__MH_TC_mcinfo_send__SHIFT 0x00000019
+#define MH_DEBUG_REG12__TC_MH_written__SHIFT 0x0000001a
+
+// MH_DEBUG_REG13
+#define MH_DEBUG_REG13__ALWAYS_ZERO__SHIFT 0x00000000
+#define MH_DEBUG_REG13__TC_ROQ_SEND__SHIFT 0x00000002
+#define MH_DEBUG_REG13__TC_ROQ_MASK__SHIFT 0x00000003
+#define MH_DEBUG_REG13__TC_ROQ_ADDR_31_5__SHIFT 0x00000005
+
+// MH_DEBUG_REG14
+#define MH_DEBUG_REG14__TC_ROQ_INFO__SHIFT 0x00000000
+#define MH_DEBUG_REG14__TC_ROQ_SEND__SHIFT 0x00000019
+
+// MH_DEBUG_REG15
+#define MH_DEBUG_REG15__ALWAYS_ZERO__SHIFT 0x00000000
+#define MH_DEBUG_REG15__RB_MH_send__SHIFT 0x00000004
+#define MH_DEBUG_REG15__RB_MH_addr_31_5__SHIFT 0x00000005
+
+// MH_DEBUG_REG16
+#define MH_DEBUG_REG16__RB_MH_data_31_0__SHIFT 0x00000000
+
+// MH_DEBUG_REG17
+#define MH_DEBUG_REG17__RB_MH_data_63_32__SHIFT 0x00000000
+
+// MH_DEBUG_REG18
+#define MH_DEBUG_REG18__ALWAYS_ZERO__SHIFT 0x00000000
+#define MH_DEBUG_REG18__PA_MH_send__SHIFT 0x00000004
+#define MH_DEBUG_REG18__PA_MH_addr_31_5__SHIFT 0x00000005
+
+// MH_DEBUG_REG19
+#define MH_DEBUG_REG19__PA_MH_data_31_0__SHIFT 0x00000000
+
+// MH_DEBUG_REG20
+#define MH_DEBUG_REG20__PA_MH_data_63_32__SHIFT 0x00000000
+
+// MH_DEBUG_REG21
+#define MH_DEBUG_REG21__AVALID_q__SHIFT 0x00000000
+#define MH_DEBUG_REG21__AREADY_q__SHIFT 0x00000001
+#define MH_DEBUG_REG21__AID_q__SHIFT 0x00000002
+#define MH_DEBUG_REG21__ALEN_q_2_0__SHIFT 0x00000005
+#define MH_DEBUG_REG21__ARVALID_q__SHIFT 0x00000008
+#define MH_DEBUG_REG21__ARREADY_q__SHIFT 0x00000009
+#define MH_DEBUG_REG21__ARID_q__SHIFT 0x0000000a
+#define MH_DEBUG_REG21__ARLEN_q_1_0__SHIFT 0x0000000d
+#define MH_DEBUG_REG21__RVALID_q__SHIFT 0x0000000f
+#define MH_DEBUG_REG21__RREADY_q__SHIFT 0x00000010
+#define MH_DEBUG_REG21__RLAST_q__SHIFT 0x00000011
+#define MH_DEBUG_REG21__RID_q__SHIFT 0x00000012
+#define MH_DEBUG_REG21__WVALID_q__SHIFT 0x00000015
+#define MH_DEBUG_REG21__WREADY_q__SHIFT 0x00000016
+#define MH_DEBUG_REG21__WLAST_q__SHIFT 0x00000017
+#define MH_DEBUG_REG21__WID_q__SHIFT 0x00000018
+#define MH_DEBUG_REG21__BVALID_q__SHIFT 0x0000001b
+#define MH_DEBUG_REG21__BREADY_q__SHIFT 0x0000001c
+#define MH_DEBUG_REG21__BID_q__SHIFT 0x0000001d
+
+// MH_DEBUG_REG22
+#define MH_DEBUG_REG22__AVALID_q__SHIFT 0x00000000
+#define MH_DEBUG_REG22__AREADY_q__SHIFT 0x00000001
+#define MH_DEBUG_REG22__AID_q__SHIFT 0x00000002
+#define MH_DEBUG_REG22__ALEN_q_1_0__SHIFT 0x00000005
+#define MH_DEBUG_REG22__ARVALID_q__SHIFT 0x00000007
+#define MH_DEBUG_REG22__ARREADY_q__SHIFT 0x00000008
+#define MH_DEBUG_REG22__ARID_q__SHIFT 0x00000009
+#define MH_DEBUG_REG22__ARLEN_q_1_1__SHIFT 0x0000000c
+#define MH_DEBUG_REG22__WVALID_q__SHIFT 0x0000000d
+#define MH_DEBUG_REG22__WREADY_q__SHIFT 0x0000000e
+#define MH_DEBUG_REG22__WLAST_q__SHIFT 0x0000000f
+#define MH_DEBUG_REG22__WID_q__SHIFT 0x00000010
+#define MH_DEBUG_REG22__WSTRB_q__SHIFT 0x00000013
+#define MH_DEBUG_REG22__BVALID_q__SHIFT 0x0000001b
+#define MH_DEBUG_REG22__BREADY_q__SHIFT 0x0000001c
+#define MH_DEBUG_REG22__BID_q__SHIFT 0x0000001d
+
+// MH_DEBUG_REG23
+#define MH_DEBUG_REG23__ARC_CTRL_RE_q__SHIFT 0x00000000
+#define MH_DEBUG_REG23__CTRL_ARC_ID__SHIFT 0x00000001
+#define MH_DEBUG_REG23__CTRL_ARC_PAD__SHIFT 0x00000004
+
+// MH_DEBUG_REG24
+#define MH_DEBUG_REG24__ALWAYS_ZERO__SHIFT 0x00000000
+#define MH_DEBUG_REG24__REG_A__SHIFT 0x00000002
+#define MH_DEBUG_REG24__REG_RE__SHIFT 0x00000010
+#define MH_DEBUG_REG24__REG_WE__SHIFT 0x00000011
+#define MH_DEBUG_REG24__BLOCK_RS__SHIFT 0x00000012
+
+// MH_DEBUG_REG25
+#define MH_DEBUG_REG25__REG_WD__SHIFT 0x00000000
+
+// MH_DEBUG_REG26
+#define MH_DEBUG_REG26__MH_RBBM_busy__SHIFT 0x00000000
+#define MH_DEBUG_REG26__MH_CIB_mh_clk_en_int__SHIFT 0x00000001
+#define MH_DEBUG_REG26__MH_CIB_mmu_clk_en_int__SHIFT 0x00000002
+#define MH_DEBUG_REG26__MH_CIB_tcroq_clk_en_int__SHIFT 0x00000003
+#define MH_DEBUG_REG26__GAT_CLK_ENA__SHIFT 0x00000004
+#define MH_DEBUG_REG26__RBBM_MH_clk_en_override__SHIFT 0x00000005
+#define MH_DEBUG_REG26__CNT_q__SHIFT 0x00000006
+#define MH_DEBUG_REG26__TCD_EMPTY_q__SHIFT 0x0000000c
+#define MH_DEBUG_REG26__TC_ROQ_EMPTY__SHIFT 0x0000000d
+#define MH_DEBUG_REG26__MH_BUSY_d__SHIFT 0x0000000e
+#define MH_DEBUG_REG26__ANY_CLNT_BUSY__SHIFT 0x0000000f
+#define MH_DEBUG_REG26__MH_MMU_INVALIDATE_INVALIDATE_ALL__SHIFT 0x00000010
+#define MH_DEBUG_REG26__MH_MMU_INVALIDATE_INVALIDATE_TC__SHIFT 0x00000011
+#define MH_DEBUG_REG26__CP_SEND_q__SHIFT 0x00000012
+#define MH_DEBUG_REG26__CP_RTR_q__SHIFT 0x00000013
+#define MH_DEBUG_REG26__VGT_SEND_q__SHIFT 0x00000014
+#define MH_DEBUG_REG26__VGT_RTR_q__SHIFT 0x00000015
+#define MH_DEBUG_REG26__TC_ROQ_SEND_q__SHIFT 0x00000016
+#define MH_DEBUG_REG26__TC_ROQ_RTR_DBG_q__SHIFT 0x00000017
+#define MH_DEBUG_REG26__RB_SEND_q__SHIFT 0x00000018
+#define MH_DEBUG_REG26__RB_RTR_q__SHIFT 0x00000019
+#define MH_DEBUG_REG26__PA_SEND_q__SHIFT 0x0000001a
+#define MH_DEBUG_REG26__PA_RTR_q__SHIFT 0x0000001b
+#define MH_DEBUG_REG26__RDC_VALID__SHIFT 0x0000001c
+#define MH_DEBUG_REG26__RDC_RLAST__SHIFT 0x0000001d
+#define MH_DEBUG_REG26__TLBMISS_VALID__SHIFT 0x0000001e
+#define MH_DEBUG_REG26__BRC_VALID__SHIFT 0x0000001f
+
+// MH_DEBUG_REG27
+#define MH_DEBUG_REG27__EFF2_FP_WINNER__SHIFT 0x00000000
+#define MH_DEBUG_REG27__EFF2_LRU_WINNER_out__SHIFT 0x00000003
+#define MH_DEBUG_REG27__EFF1_WINNER__SHIFT 0x00000006
+#define MH_DEBUG_REG27__ARB_WINNER__SHIFT 0x00000009
+#define MH_DEBUG_REG27__ARB_WINNER_q__SHIFT 0x0000000c
+#define MH_DEBUG_REG27__EFF1_WIN__SHIFT 0x0000000f
+#define MH_DEBUG_REG27__KILL_EFF1__SHIFT 0x00000010
+#define MH_DEBUG_REG27__ARB_HOLD__SHIFT 0x00000011
+#define MH_DEBUG_REG27__ARB_RTR_q__SHIFT 0x00000012
+#define MH_DEBUG_REG27__CP_SEND_QUAL__SHIFT 0x00000013
+#define MH_DEBUG_REG27__VGT_SEND_QUAL__SHIFT 0x00000014
+#define MH_DEBUG_REG27__TC_SEND_QUAL__SHIFT 0x00000015
+#define MH_DEBUG_REG27__TC_SEND_EFF1_QUAL__SHIFT 0x00000016
+#define MH_DEBUG_REG27__RB_SEND_QUAL__SHIFT 0x00000017
+#define MH_DEBUG_REG27__PA_SEND_QUAL__SHIFT 0x00000018
+#define MH_DEBUG_REG27__ARB_QUAL__SHIFT 0x00000019
+#define MH_DEBUG_REG27__CP_EFF1_REQ__SHIFT 0x0000001a
+#define MH_DEBUG_REG27__VGT_EFF1_REQ__SHIFT 0x0000001b
+#define MH_DEBUG_REG27__TC_EFF1_REQ__SHIFT 0x0000001c
+#define MH_DEBUG_REG27__RB_EFF1_REQ__SHIFT 0x0000001d
+#define MH_DEBUG_REG27__TCD_NEARFULL_q__SHIFT 0x0000001e
+#define MH_DEBUG_REG27__TCHOLD_IP_q__SHIFT 0x0000001f
+
+// MH_DEBUG_REG28
+#define MH_DEBUG_REG28__EFF1_WINNER__SHIFT 0x00000000
+#define MH_DEBUG_REG28__ARB_WINNER__SHIFT 0x00000003
+#define MH_DEBUG_REG28__CP_SEND_QUAL__SHIFT 0x00000006
+#define MH_DEBUG_REG28__VGT_SEND_QUAL__SHIFT 0x00000007
+#define MH_DEBUG_REG28__TC_SEND_QUAL__SHIFT 0x00000008
+#define MH_DEBUG_REG28__TC_SEND_EFF1_QUAL__SHIFT 0x00000009
+#define MH_DEBUG_REG28__RB_SEND_QUAL__SHIFT 0x0000000a
+#define MH_DEBUG_REG28__ARB_QUAL__SHIFT 0x0000000b
+#define MH_DEBUG_REG28__CP_EFF1_REQ__SHIFT 0x0000000c
+#define MH_DEBUG_REG28__VGT_EFF1_REQ__SHIFT 0x0000000d
+#define MH_DEBUG_REG28__TC_EFF1_REQ__SHIFT 0x0000000e
+#define MH_DEBUG_REG28__RB_EFF1_REQ__SHIFT 0x0000000f
+#define MH_DEBUG_REG28__EFF1_WIN__SHIFT 0x00000010
+#define MH_DEBUG_REG28__KILL_EFF1__SHIFT 0x00000011
+#define MH_DEBUG_REG28__TCD_NEARFULL_q__SHIFT 0x00000012
+#define MH_DEBUG_REG28__TC_ARB_HOLD__SHIFT 0x00000013
+#define MH_DEBUG_REG28__ARB_HOLD__SHIFT 0x00000014
+#define MH_DEBUG_REG28__ARB_RTR_q__SHIFT 0x00000015
+#define MH_DEBUG_REG28__SAME_PAGE_LIMIT_COUNT_q__SHIFT 0x00000016
+
+// MH_DEBUG_REG29
+#define MH_DEBUG_REG29__EFF2_LRU_WINNER_out__SHIFT 0x00000000
+#define MH_DEBUG_REG29__LEAST_RECENT_INDEX_d__SHIFT 0x00000003
+#define MH_DEBUG_REG29__LEAST_RECENT_d__SHIFT 0x00000006
+#define MH_DEBUG_REG29__UPDATE_RECENT_STACK_d__SHIFT 0x00000009
+#define MH_DEBUG_REG29__ARB_HOLD__SHIFT 0x0000000a
+#define MH_DEBUG_REG29__ARB_RTR_q__SHIFT 0x0000000b
+#define MH_DEBUG_REG29__CLNT_REQ__SHIFT 0x0000000c
+#define MH_DEBUG_REG29__RECENT_d_0__SHIFT 0x00000011
+#define MH_DEBUG_REG29__RECENT_d_1__SHIFT 0x00000014
+#define MH_DEBUG_REG29__RECENT_d_2__SHIFT 0x00000017
+#define MH_DEBUG_REG29__RECENT_d_3__SHIFT 0x0000001a
+#define MH_DEBUG_REG29__RECENT_d_4__SHIFT 0x0000001d
+
+// MH_DEBUG_REG30
+#define MH_DEBUG_REG30__TC_ARB_HOLD__SHIFT 0x00000000
+#define MH_DEBUG_REG30__TC_NOROQ_SAME_ROW_BANK__SHIFT 0x00000001
+#define MH_DEBUG_REG30__TC_ROQ_SAME_ROW_BANK__SHIFT 0x00000002
+#define MH_DEBUG_REG30__TCD_NEARFULL_q__SHIFT 0x00000003
+#define MH_DEBUG_REG30__TCHOLD_IP_q__SHIFT 0x00000004
+#define MH_DEBUG_REG30__TCHOLD_CNT_q__SHIFT 0x00000005
+#define MH_DEBUG_REG30__MH_ARBITER_CONFIG_TC_REORDER_ENABLE__SHIFT 0x00000008
+#define MH_DEBUG_REG30__TC_ROQ_RTR_DBG_q__SHIFT 0x00000009
+#define MH_DEBUG_REG30__TC_ROQ_SEND_q__SHIFT 0x0000000a
+#define MH_DEBUG_REG30__TC_MH_written__SHIFT 0x0000000b
+#define MH_DEBUG_REG30__TCD_FULLNESS_CNT_q__SHIFT 0x0000000c
+#define MH_DEBUG_REG30__WBURST_ACTIVE__SHIFT 0x00000013
+#define MH_DEBUG_REG30__WLAST_q__SHIFT 0x00000014
+#define MH_DEBUG_REG30__WBURST_IP_q__SHIFT 0x00000015
+#define MH_DEBUG_REG30__WBURST_CNT_q__SHIFT 0x00000016
+#define MH_DEBUG_REG30__CP_SEND_QUAL__SHIFT 0x00000019
+#define MH_DEBUG_REG30__CP_MH_write__SHIFT 0x0000001a
+#define MH_DEBUG_REG30__RB_SEND_QUAL__SHIFT 0x0000001b
+#define MH_DEBUG_REG30__PA_SEND_QUAL__SHIFT 0x0000001c
+#define MH_DEBUG_REG30__ARB_WINNER__SHIFT 0x0000001d
+
+// MH_DEBUG_REG31
+#define MH_DEBUG_REG31__RF_ARBITER_CONFIG_q__SHIFT 0x00000000
+#define MH_DEBUG_REG31__MH_CLNT_AXI_ID_REUSE_MMUr_ID__SHIFT 0x0000001a
+
+// MH_DEBUG_REG32
+#define MH_DEBUG_REG32__SAME_ROW_BANK_q__SHIFT 0x00000000
+#define MH_DEBUG_REG32__ROQ_MARK_q__SHIFT 0x00000008
+#define MH_DEBUG_REG32__ROQ_VALID_q__SHIFT 0x00000010
+#define MH_DEBUG_REG32__TC_MH_send__SHIFT 0x00000018
+#define MH_DEBUG_REG32__TC_ROQ_RTR_q__SHIFT 0x00000019
+#define MH_DEBUG_REG32__KILL_EFF1__SHIFT 0x0000001a
+#define MH_DEBUG_REG32__TC_ROQ_SAME_ROW_BANK_SEL__SHIFT 0x0000001b
+#define MH_DEBUG_REG32__ANY_SAME_ROW_BANK__SHIFT 0x0000001c
+#define MH_DEBUG_REG32__TC_EFF1_QUAL__SHIFT 0x0000001d
+#define MH_DEBUG_REG32__TC_ROQ_EMPTY__SHIFT 0x0000001e
+#define MH_DEBUG_REG32__TC_ROQ_FULL__SHIFT 0x0000001f
+
+// MH_DEBUG_REG33
+#define MH_DEBUG_REG33__SAME_ROW_BANK_q__SHIFT 0x00000000
+#define MH_DEBUG_REG33__ROQ_MARK_d__SHIFT 0x00000008
+#define MH_DEBUG_REG33__ROQ_VALID_d__SHIFT 0x00000010
+#define MH_DEBUG_REG33__TC_MH_send__SHIFT 0x00000018
+#define MH_DEBUG_REG33__TC_ROQ_RTR_q__SHIFT 0x00000019
+#define MH_DEBUG_REG33__KILL_EFF1__SHIFT 0x0000001a
+#define MH_DEBUG_REG33__TC_ROQ_SAME_ROW_BANK_SEL__SHIFT 0x0000001b
+#define MH_DEBUG_REG33__ANY_SAME_ROW_BANK__SHIFT 0x0000001c
+#define MH_DEBUG_REG33__TC_EFF1_QUAL__SHIFT 0x0000001d
+#define MH_DEBUG_REG33__TC_ROQ_EMPTY__SHIFT 0x0000001e
+#define MH_DEBUG_REG33__TC_ROQ_FULL__SHIFT 0x0000001f
+
+// MH_DEBUG_REG34
+#define MH_DEBUG_REG34__SAME_ROW_BANK_WIN__SHIFT 0x00000000
+#define MH_DEBUG_REG34__SAME_ROW_BANK_REQ__SHIFT 0x00000008
+#define MH_DEBUG_REG34__NON_SAME_ROW_BANK_WIN__SHIFT 0x00000010
+#define MH_DEBUG_REG34__NON_SAME_ROW_BANK_REQ__SHIFT 0x00000018
+
+// MH_DEBUG_REG35
+#define MH_DEBUG_REG35__TC_MH_send__SHIFT 0x00000000
+#define MH_DEBUG_REG35__TC_ROQ_RTR_q__SHIFT 0x00000001
+#define MH_DEBUG_REG35__ROQ_MARK_q_0__SHIFT 0x00000002
+#define MH_DEBUG_REG35__ROQ_VALID_q_0__SHIFT 0x00000003
+#define MH_DEBUG_REG35__SAME_ROW_BANK_q_0__SHIFT 0x00000004
+#define MH_DEBUG_REG35__ROQ_ADDR_0__SHIFT 0x00000005
+
+// MH_DEBUG_REG36
+#define MH_DEBUG_REG36__TC_MH_send__SHIFT 0x00000000
+#define MH_DEBUG_REG36__TC_ROQ_RTR_q__SHIFT 0x00000001
+#define MH_DEBUG_REG36__ROQ_MARK_q_1__SHIFT 0x00000002
+#define MH_DEBUG_REG36__ROQ_VALID_q_1__SHIFT 0x00000003
+#define MH_DEBUG_REG36__SAME_ROW_BANK_q_1__SHIFT 0x00000004
+#define MH_DEBUG_REG36__ROQ_ADDR_1__SHIFT 0x00000005
+
+// MH_DEBUG_REG37
+#define MH_DEBUG_REG37__TC_MH_send__SHIFT 0x00000000
+#define MH_DEBUG_REG37__TC_ROQ_RTR_q__SHIFT 0x00000001
+#define MH_DEBUG_REG37__ROQ_MARK_q_2__SHIFT 0x00000002
+#define MH_DEBUG_REG37__ROQ_VALID_q_2__SHIFT 0x00000003
+#define MH_DEBUG_REG37__SAME_ROW_BANK_q_2__SHIFT 0x00000004
+#define MH_DEBUG_REG37__ROQ_ADDR_2__SHIFT 0x00000005
+
+// MH_DEBUG_REG38
+#define MH_DEBUG_REG38__TC_MH_send__SHIFT 0x00000000
+#define MH_DEBUG_REG38__TC_ROQ_RTR_q__SHIFT 0x00000001
+#define MH_DEBUG_REG38__ROQ_MARK_q_3__SHIFT 0x00000002
+#define MH_DEBUG_REG38__ROQ_VALID_q_3__SHIFT 0x00000003
+#define MH_DEBUG_REG38__SAME_ROW_BANK_q_3__SHIFT 0x00000004
+#define MH_DEBUG_REG38__ROQ_ADDR_3__SHIFT 0x00000005
+
+// MH_DEBUG_REG39
+#define MH_DEBUG_REG39__TC_MH_send__SHIFT 0x00000000
+#define MH_DEBUG_REG39__TC_ROQ_RTR_q__SHIFT 0x00000001
+#define MH_DEBUG_REG39__ROQ_MARK_q_4__SHIFT 0x00000002
+#define MH_DEBUG_REG39__ROQ_VALID_q_4__SHIFT 0x00000003
+#define MH_DEBUG_REG39__SAME_ROW_BANK_q_4__SHIFT 0x00000004
+#define MH_DEBUG_REG39__ROQ_ADDR_4__SHIFT 0x00000005
+
+// MH_DEBUG_REG40
+#define MH_DEBUG_REG40__TC_MH_send__SHIFT 0x00000000
+#define MH_DEBUG_REG40__TC_ROQ_RTR_q__SHIFT 0x00000001
+#define MH_DEBUG_REG40__ROQ_MARK_q_5__SHIFT 0x00000002
+#define MH_DEBUG_REG40__ROQ_VALID_q_5__SHIFT 0x00000003
+#define MH_DEBUG_REG40__SAME_ROW_BANK_q_5__SHIFT 0x00000004
+#define MH_DEBUG_REG40__ROQ_ADDR_5__SHIFT 0x00000005
+
+// MH_DEBUG_REG41
+#define MH_DEBUG_REG41__TC_MH_send__SHIFT 0x00000000
+#define MH_DEBUG_REG41__TC_ROQ_RTR_q__SHIFT 0x00000001
+#define MH_DEBUG_REG41__ROQ_MARK_q_6__SHIFT 0x00000002
+#define MH_DEBUG_REG41__ROQ_VALID_q_6__SHIFT 0x00000003
+#define MH_DEBUG_REG41__SAME_ROW_BANK_q_6__SHIFT 0x00000004
+#define MH_DEBUG_REG41__ROQ_ADDR_6__SHIFT 0x00000005
+
+// MH_DEBUG_REG42
+#define MH_DEBUG_REG42__TC_MH_send__SHIFT 0x00000000
+#define MH_DEBUG_REG42__TC_ROQ_RTR_q__SHIFT 0x00000001
+#define MH_DEBUG_REG42__ROQ_MARK_q_7__SHIFT 0x00000002
+#define MH_DEBUG_REG42__ROQ_VALID_q_7__SHIFT 0x00000003
+#define MH_DEBUG_REG42__SAME_ROW_BANK_q_7__SHIFT 0x00000004
+#define MH_DEBUG_REG42__ROQ_ADDR_7__SHIFT 0x00000005
+
+// MH_DEBUG_REG43
+#define MH_DEBUG_REG43__ARB_REG_WE_q__SHIFT 0x00000000
+#define MH_DEBUG_REG43__ARB_WE__SHIFT 0x00000001
+#define MH_DEBUG_REG43__ARB_REG_VALID_q__SHIFT 0x00000002
+#define MH_DEBUG_REG43__ARB_RTR_q__SHIFT 0x00000003
+#define MH_DEBUG_REG43__ARB_REG_RTR__SHIFT 0x00000004
+#define MH_DEBUG_REG43__WDAT_BURST_RTR__SHIFT 0x00000005
+#define MH_DEBUG_REG43__MMU_RTR__SHIFT 0x00000006
+#define MH_DEBUG_REG43__ARB_ID_q__SHIFT 0x00000007
+#define MH_DEBUG_REG43__ARB_WRITE_q__SHIFT 0x0000000a
+#define MH_DEBUG_REG43__ARB_BLEN_q__SHIFT 0x0000000b
+#define MH_DEBUG_REG43__ARQ_CTRL_EMPTY__SHIFT 0x0000000c
+#define MH_DEBUG_REG43__ARQ_FIFO_CNT_q__SHIFT 0x0000000d
+#define MH_DEBUG_REG43__MMU_WE__SHIFT 0x00000010
+#define MH_DEBUG_REG43__ARQ_RTR__SHIFT 0x00000011
+#define MH_DEBUG_REG43__MMU_ID__SHIFT 0x00000012
+#define MH_DEBUG_REG43__MMU_WRITE__SHIFT 0x00000015
+#define MH_DEBUG_REG43__MMU_BLEN__SHIFT 0x00000016
+#define MH_DEBUG_REG43__WBURST_IP_q__SHIFT 0x00000017
+#define MH_DEBUG_REG43__WDAT_REG_WE_q__SHIFT 0x00000018
+#define MH_DEBUG_REG43__WDB_WE__SHIFT 0x00000019
+#define MH_DEBUG_REG43__WDB_RTR_SKID_4__SHIFT 0x0000001a
+#define MH_DEBUG_REG43__WDB_RTR_SKID_3__SHIFT 0x0000001b
+
+// MH_DEBUG_REG44
+#define MH_DEBUG_REG44__ARB_WE__SHIFT 0x00000000
+#define MH_DEBUG_REG44__ARB_ID_q__SHIFT 0x00000001
+#define MH_DEBUG_REG44__ARB_VAD_q__SHIFT 0x00000004
+
+// MH_DEBUG_REG45
+#define MH_DEBUG_REG45__MMU_WE__SHIFT 0x00000000
+#define MH_DEBUG_REG45__MMU_ID__SHIFT 0x00000001
+#define MH_DEBUG_REG45__MMU_PAD__SHIFT 0x00000004
+
+// MH_DEBUG_REG46
+#define MH_DEBUG_REG46__WDAT_REG_WE_q__SHIFT 0x00000000
+#define MH_DEBUG_REG46__WDB_WE__SHIFT 0x00000001
+#define MH_DEBUG_REG46__WDAT_REG_VALID_q__SHIFT 0x00000002
+#define MH_DEBUG_REG46__WDB_RTR_SKID_4__SHIFT 0x00000003
+#define MH_DEBUG_REG46__ARB_WSTRB_q__SHIFT 0x00000004
+#define MH_DEBUG_REG46__ARB_WLAST__SHIFT 0x0000000c
+#define MH_DEBUG_REG46__WDB_CTRL_EMPTY__SHIFT 0x0000000d
+#define MH_DEBUG_REG46__WDB_FIFO_CNT_q__SHIFT 0x0000000e
+#define MH_DEBUG_REG46__WDC_WDB_RE_q__SHIFT 0x00000013
+#define MH_DEBUG_REG46__WDB_WDC_WID__SHIFT 0x00000014
+#define MH_DEBUG_REG46__WDB_WDC_WLAST__SHIFT 0x00000017
+#define MH_DEBUG_REG46__WDB_WDC_WSTRB__SHIFT 0x00000018
+
+// MH_DEBUG_REG47
+#define MH_DEBUG_REG47__WDB_WDC_WDATA_31_0__SHIFT 0x00000000
+
+// MH_DEBUG_REG48
+#define MH_DEBUG_REG48__WDB_WDC_WDATA_63_32__SHIFT 0x00000000
+
+// MH_DEBUG_REG49
+#define MH_DEBUG_REG49__CTRL_ARC_EMPTY__SHIFT 0x00000000
+#define MH_DEBUG_REG49__CTRL_RARC_EMPTY__SHIFT 0x00000001
+#define MH_DEBUG_REG49__ARQ_CTRL_EMPTY__SHIFT 0x00000002
+#define MH_DEBUG_REG49__ARQ_CTRL_WRITE__SHIFT 0x00000003
+#define MH_DEBUG_REG49__TLBMISS_CTRL_RTS__SHIFT 0x00000004
+#define MH_DEBUG_REG49__CTRL_TLBMISS_RE_q__SHIFT 0x00000005
+#define MH_DEBUG_REG49__INFLT_LIMIT_q__SHIFT 0x00000006
+#define MH_DEBUG_REG49__INFLT_LIMIT_CNT_q__SHIFT 0x00000007
+#define MH_DEBUG_REG49__ARC_CTRL_RE_q__SHIFT 0x0000000d
+#define MH_DEBUG_REG49__RARC_CTRL_RE_q__SHIFT 0x0000000e
+#define MH_DEBUG_REG49__RVALID_q__SHIFT 0x0000000f
+#define MH_DEBUG_REG49__RREADY_q__SHIFT 0x00000010
+#define MH_DEBUG_REG49__RLAST_q__SHIFT 0x00000011
+#define MH_DEBUG_REG49__BVALID_q__SHIFT 0x00000012
+#define MH_DEBUG_REG49__BREADY_q__SHIFT 0x00000013
+
+// MH_DEBUG_REG50
+#define MH_DEBUG_REG50__MH_CP_grb_send__SHIFT 0x00000000
+#define MH_DEBUG_REG50__MH_VGT_grb_send__SHIFT 0x00000001
+#define MH_DEBUG_REG50__MH_TC_mcsend__SHIFT 0x00000002
+#define MH_DEBUG_REG50__MH_TLBMISS_SEND__SHIFT 0x00000003
+#define MH_DEBUG_REG50__TLBMISS_VALID__SHIFT 0x00000004
+#define MH_DEBUG_REG50__RDC_VALID__SHIFT 0x00000005
+#define MH_DEBUG_REG50__RDC_RID__SHIFT 0x00000006
+#define MH_DEBUG_REG50__RDC_RLAST__SHIFT 0x00000009
+#define MH_DEBUG_REG50__RDC_RRESP__SHIFT 0x0000000a
+#define MH_DEBUG_REG50__TLBMISS_CTRL_RTS__SHIFT 0x0000000c
+#define MH_DEBUG_REG50__CTRL_TLBMISS_RE_q__SHIFT 0x0000000d
+#define MH_DEBUG_REG50__MMU_ID_REQUEST_q__SHIFT 0x0000000e
+#define MH_DEBUG_REG50__OUTSTANDING_MMUID_CNT_q__SHIFT 0x0000000f
+#define MH_DEBUG_REG50__MMU_ID_RESPONSE__SHIFT 0x00000015
+#define MH_DEBUG_REG50__TLBMISS_RETURN_CNT_q__SHIFT 0x00000016
+#define MH_DEBUG_REG50__CNT_HOLD_q1__SHIFT 0x0000001c
+#define MH_DEBUG_REG50__MH_CLNT_AXI_ID_REUSE_MMUr_ID__SHIFT 0x0000001d
+
+// MH_DEBUG_REG51
+#define MH_DEBUG_REG51__RF_MMU_PAGE_FAULT__SHIFT 0x00000000
+
+// MH_DEBUG_REG52
+#define MH_DEBUG_REG52__RF_MMU_CONFIG_q_1_to_0__SHIFT 0x00000000
+#define MH_DEBUG_REG52__ARB_WE__SHIFT 0x00000002
+#define MH_DEBUG_REG52__MMU_RTR__SHIFT 0x00000003
+#define MH_DEBUG_REG52__RF_MMU_CONFIG_q_25_to_4__SHIFT 0x00000004
+#define MH_DEBUG_REG52__ARB_ID_q__SHIFT 0x0000001a
+#define MH_DEBUG_REG52__ARB_WRITE_q__SHIFT 0x0000001d
+#define MH_DEBUG_REG52__client_behavior_q__SHIFT 0x0000001e
+
+// MH_DEBUG_REG53
+#define MH_DEBUG_REG53__stage1_valid__SHIFT 0x00000000
+#define MH_DEBUG_REG53__IGNORE_TAG_MISS_q__SHIFT 0x00000001
+#define MH_DEBUG_REG53__pa_in_mpu_range__SHIFT 0x00000002
+#define MH_DEBUG_REG53__tag_match_q__SHIFT 0x00000003
+#define MH_DEBUG_REG53__tag_miss_q__SHIFT 0x00000004
+#define MH_DEBUG_REG53__va_in_range_q__SHIFT 0x00000005
+#define MH_DEBUG_REG53__MMU_MISS__SHIFT 0x00000006
+#define MH_DEBUG_REG53__MMU_READ_MISS__SHIFT 0x00000007
+#define MH_DEBUG_REG53__MMU_WRITE_MISS__SHIFT 0x00000008
+#define MH_DEBUG_REG53__MMU_HIT__SHIFT 0x00000009
+#define MH_DEBUG_REG53__MMU_READ_HIT__SHIFT 0x0000000a
+#define MH_DEBUG_REG53__MMU_WRITE_HIT__SHIFT 0x0000000b
+#define MH_DEBUG_REG53__MMU_SPLIT_MODE_TC_MISS__SHIFT 0x0000000c
+#define MH_DEBUG_REG53__MMU_SPLIT_MODE_TC_HIT__SHIFT 0x0000000d
+#define MH_DEBUG_REG53__MMU_SPLIT_MODE_nonTC_MISS__SHIFT 0x0000000e
+#define MH_DEBUG_REG53__MMU_SPLIT_MODE_nonTC_HIT__SHIFT 0x0000000f
+#define MH_DEBUG_REG53__REQ_VA_OFFSET_q__SHIFT 0x00000010
+
+// MH_DEBUG_REG54
+#define MH_DEBUG_REG54__ARQ_RTR__SHIFT 0x00000000
+#define MH_DEBUG_REG54__MMU_WE__SHIFT 0x00000001
+#define MH_DEBUG_REG54__CTRL_TLBMISS_RE_q__SHIFT 0x00000002
+#define MH_DEBUG_REG54__TLBMISS_CTRL_RTS__SHIFT 0x00000003
+#define MH_DEBUG_REG54__MH_TLBMISS_SEND__SHIFT 0x00000004
+#define MH_DEBUG_REG54__MMU_STALL_AWAITING_TLB_MISS_FETCH__SHIFT 0x00000005
+#define MH_DEBUG_REG54__pa_in_mpu_range__SHIFT 0x00000006
+#define MH_DEBUG_REG54__stage1_valid__SHIFT 0x00000007
+#define MH_DEBUG_REG54__stage2_valid__SHIFT 0x00000008
+#define MH_DEBUG_REG54__client_behavior_q__SHIFT 0x00000009
+#define MH_DEBUG_REG54__IGNORE_TAG_MISS_q__SHIFT 0x0000000b
+#define MH_DEBUG_REG54__tag_match_q__SHIFT 0x0000000c
+#define MH_DEBUG_REG54__tag_miss_q__SHIFT 0x0000000d
+#define MH_DEBUG_REG54__va_in_range_q__SHIFT 0x0000000e
+#define MH_DEBUG_REG54__PTE_FETCH_COMPLETE_q__SHIFT 0x0000000f
+#define MH_DEBUG_REG54__TAG_valid_q__SHIFT 0x00000010
+
+// MH_DEBUG_REG55
+#define MH_DEBUG_REG55__TAG0_VA__SHIFT 0x00000000
+#define MH_DEBUG_REG55__TAG_valid_q_0__SHIFT 0x0000000d
+#define MH_DEBUG_REG55__ALWAYS_ZERO__SHIFT 0x0000000e
+#define MH_DEBUG_REG55__TAG1_VA__SHIFT 0x00000010
+#define MH_DEBUG_REG55__TAG_valid_q_1__SHIFT 0x0000001d
+
+// MH_DEBUG_REG56
+#define MH_DEBUG_REG56__TAG2_VA__SHIFT 0x00000000
+#define MH_DEBUG_REG56__TAG_valid_q_2__SHIFT 0x0000000d
+#define MH_DEBUG_REG56__ALWAYS_ZERO__SHIFT 0x0000000e
+#define MH_DEBUG_REG56__TAG3_VA__SHIFT 0x00000010
+#define MH_DEBUG_REG56__TAG_valid_q_3__SHIFT 0x0000001d
+
+// MH_DEBUG_REG57
+#define MH_DEBUG_REG57__TAG4_VA__SHIFT 0x00000000
+#define MH_DEBUG_REG57__TAG_valid_q_4__SHIFT 0x0000000d
+#define MH_DEBUG_REG57__ALWAYS_ZERO__SHIFT 0x0000000e
+#define MH_DEBUG_REG57__TAG5_VA__SHIFT 0x00000010
+#define MH_DEBUG_REG57__TAG_valid_q_5__SHIFT 0x0000001d
+
+// MH_DEBUG_REG58
+#define MH_DEBUG_REG58__TAG6_VA__SHIFT 0x00000000
+#define MH_DEBUG_REG58__TAG_valid_q_6__SHIFT 0x0000000d
+#define MH_DEBUG_REG58__ALWAYS_ZERO__SHIFT 0x0000000e
+#define MH_DEBUG_REG58__TAG7_VA__SHIFT 0x00000010
+#define MH_DEBUG_REG58__TAG_valid_q_7__SHIFT 0x0000001d
+
+// MH_DEBUG_REG59
+#define MH_DEBUG_REG59__TAG8_VA__SHIFT 0x00000000
+#define MH_DEBUG_REG59__TAG_valid_q_8__SHIFT 0x0000000d
+#define MH_DEBUG_REG59__ALWAYS_ZERO__SHIFT 0x0000000e
+#define MH_DEBUG_REG59__TAG9_VA__SHIFT 0x00000010
+#define MH_DEBUG_REG59__TAG_valid_q_9__SHIFT 0x0000001d
+
+// MH_DEBUG_REG60
+#define MH_DEBUG_REG60__TAG10_VA__SHIFT 0x00000000
+#define MH_DEBUG_REG60__TAG_valid_q_10__SHIFT 0x0000000d
+#define MH_DEBUG_REG60__ALWAYS_ZERO__SHIFT 0x0000000e
+#define MH_DEBUG_REG60__TAG11_VA__SHIFT 0x00000010
+#define MH_DEBUG_REG60__TAG_valid_q_11__SHIFT 0x0000001d
+
+// MH_DEBUG_REG61
+#define MH_DEBUG_REG61__TAG12_VA__SHIFT 0x00000000
+#define MH_DEBUG_REG61__TAG_valid_q_12__SHIFT 0x0000000d
+#define MH_DEBUG_REG61__ALWAYS_ZERO__SHIFT 0x0000000e
+#define MH_DEBUG_REG61__TAG13_VA__SHIFT 0x00000010
+#define MH_DEBUG_REG61__TAG_valid_q_13__SHIFT 0x0000001d
+
+// MH_DEBUG_REG62
+#define MH_DEBUG_REG62__TAG14_VA__SHIFT 0x00000000
+#define MH_DEBUG_REG62__TAG_valid_q_14__SHIFT 0x0000000d
+#define MH_DEBUG_REG62__ALWAYS_ZERO__SHIFT 0x0000000e
+#define MH_DEBUG_REG62__TAG15_VA__SHIFT 0x00000010
+#define MH_DEBUG_REG62__TAG_valid_q_15__SHIFT 0x0000001d
+
+// MH_DEBUG_REG63
+#define MH_DEBUG_REG63__MH_DBG_DEFAULT__SHIFT 0x00000000
+
+// MH_MMU_CONFIG
+#define MH_MMU_CONFIG__MMU_ENABLE__SHIFT 0x00000000
+#define MH_MMU_CONFIG__SPLIT_MODE_ENABLE__SHIFT 0x00000001
+#define MH_MMU_CONFIG__RESERVED1__SHIFT 0x00000002
+#define MH_MMU_CONFIG__RB_W_CLNT_BEHAVIOR__SHIFT 0x00000004
+#define MH_MMU_CONFIG__CP_W_CLNT_BEHAVIOR__SHIFT 0x00000006
+#define MH_MMU_CONFIG__CP_R0_CLNT_BEHAVIOR__SHIFT 0x00000008
+#define MH_MMU_CONFIG__CP_R1_CLNT_BEHAVIOR__SHIFT 0x0000000a
+#define MH_MMU_CONFIG__CP_R2_CLNT_BEHAVIOR__SHIFT 0x0000000c
+#define MH_MMU_CONFIG__CP_R3_CLNT_BEHAVIOR__SHIFT 0x0000000e
+#define MH_MMU_CONFIG__CP_R4_CLNT_BEHAVIOR__SHIFT 0x00000010
+#define MH_MMU_CONFIG__VGT_R0_CLNT_BEHAVIOR__SHIFT 0x00000012
+#define MH_MMU_CONFIG__VGT_R1_CLNT_BEHAVIOR__SHIFT 0x00000014
+#define MH_MMU_CONFIG__TC_R_CLNT_BEHAVIOR__SHIFT 0x00000016
+#define MH_MMU_CONFIG__PA_W_CLNT_BEHAVIOR__SHIFT 0x00000018
+
+// MH_MMU_VA_RANGE
+#define MH_MMU_VA_RANGE__NUM_64KB_REGIONS__SHIFT 0x00000000
+#define MH_MMU_VA_RANGE__VA_BASE__SHIFT 0x0000000c
+
+// MH_MMU_PT_BASE
+#define MH_MMU_PT_BASE__PT_BASE__SHIFT 0x0000000c
+
+// MH_MMU_PAGE_FAULT
+#define MH_MMU_PAGE_FAULT__PAGE_FAULT__SHIFT 0x00000000
+#define MH_MMU_PAGE_FAULT__OP_TYPE__SHIFT 0x00000001
+#define MH_MMU_PAGE_FAULT__CLNT_BEHAVIOR__SHIFT 0x00000002
+#define MH_MMU_PAGE_FAULT__AXI_ID__SHIFT 0x00000004
+#define MH_MMU_PAGE_FAULT__RESERVED1__SHIFT 0x00000007
+#define MH_MMU_PAGE_FAULT__MPU_ADDRESS_OUT_OF_RANGE__SHIFT 0x00000008
+#define MH_MMU_PAGE_FAULT__ADDRESS_OUT_OF_RANGE__SHIFT 0x00000009
+#define MH_MMU_PAGE_FAULT__READ_PROTECTION_ERROR__SHIFT 0x0000000a
+#define MH_MMU_PAGE_FAULT__WRITE_PROTECTION_ERROR__SHIFT 0x0000000b
+#define MH_MMU_PAGE_FAULT__REQ_VA__SHIFT 0x0000000c
+
+// MH_MMU_TRAN_ERROR
+#define MH_MMU_TRAN_ERROR__TRAN_ERROR__SHIFT 0x00000005
+
+// MH_MMU_INVALIDATE
+#define MH_MMU_INVALIDATE__INVALIDATE_ALL__SHIFT 0x00000000
+#define MH_MMU_INVALIDATE__INVALIDATE_TC__SHIFT 0x00000001
+
+// MH_MMU_MPU_BASE
+#define MH_MMU_MPU_BASE__MPU_BASE__SHIFT 0x0000000c
+
+// MH_MMU_MPU_END
+#define MH_MMU_MPU_END__MPU_END__SHIFT 0x0000000c
+
+// WAIT_UNTIL
+#define WAIT_UNTIL__WAIT_RE_VSYNC__SHIFT 0x00000001
+#define WAIT_UNTIL__WAIT_FE_VSYNC__SHIFT 0x00000002
+#define WAIT_UNTIL__WAIT_VSYNC__SHIFT 0x00000003
+#define WAIT_UNTIL__WAIT_DSPLY_ID0__SHIFT 0x00000004
+#define WAIT_UNTIL__WAIT_DSPLY_ID1__SHIFT 0x00000005
+#define WAIT_UNTIL__WAIT_DSPLY_ID2__SHIFT 0x00000006
+#define WAIT_UNTIL__WAIT_CMDFIFO__SHIFT 0x0000000a
+#define WAIT_UNTIL__WAIT_2D_IDLE__SHIFT 0x0000000e
+#define WAIT_UNTIL__WAIT_3D_IDLE__SHIFT 0x0000000f
+#define WAIT_UNTIL__WAIT_2D_IDLECLEAN__SHIFT 0x00000010
+#define WAIT_UNTIL__WAIT_3D_IDLECLEAN__SHIFT 0x00000011
+#define WAIT_UNTIL__CMDFIFO_ENTRIES__SHIFT 0x00000014
+
+// RBBM_ISYNC_CNTL
+#define RBBM_ISYNC_CNTL__ISYNC_WAIT_IDLEGUI__SHIFT 0x00000004
+#define RBBM_ISYNC_CNTL__ISYNC_CPSCRATCH_IDLEGUI__SHIFT 0x00000005
+
+// RBBM_STATUS
+#define RBBM_STATUS__CMDFIFO_AVAIL__SHIFT 0x00000000
+#define RBBM_STATUS__TC_BUSY__SHIFT 0x00000005
+#define RBBM_STATUS__HIRQ_PENDING__SHIFT 0x00000008
+#define RBBM_STATUS__CPRQ_PENDING__SHIFT 0x00000009
+#define RBBM_STATUS__CFRQ_PENDING__SHIFT 0x0000000a
+#define RBBM_STATUS__PFRQ_PENDING__SHIFT 0x0000000b
+#define RBBM_STATUS__VGT_BUSY_NO_DMA__SHIFT 0x0000000c
+#define RBBM_STATUS__RBBM_WU_BUSY__SHIFT 0x0000000e
+#define RBBM_STATUS__CP_NRT_BUSY__SHIFT 0x00000010
+#define RBBM_STATUS__MH_BUSY__SHIFT 0x00000012
+#define RBBM_STATUS__MH_COHERENCY_BUSY__SHIFT 0x00000013
+#define RBBM_STATUS__SX_BUSY__SHIFT 0x00000015
+#define RBBM_STATUS__TPC_BUSY__SHIFT 0x00000016
+#define RBBM_STATUS__SC_CNTX_BUSY__SHIFT 0x00000018
+#define RBBM_STATUS__PA_BUSY__SHIFT 0x00000019
+#define RBBM_STATUS__VGT_BUSY__SHIFT 0x0000001a
+#define RBBM_STATUS__SQ_CNTX17_BUSY__SHIFT 0x0000001b
+#define RBBM_STATUS__SQ_CNTX0_BUSY__SHIFT 0x0000001c
+#define RBBM_STATUS__RB_CNTX_BUSY__SHIFT 0x0000001e
+#define RBBM_STATUS__GUI_ACTIVE__SHIFT 0x0000001f
+
+// RBBM_DSPLY
+#define RBBM_DSPLY__SEL_DMI_ACTIVE_BUFID0__SHIFT 0x00000000
+#define RBBM_DSPLY__SEL_DMI_ACTIVE_BUFID1__SHIFT 0x00000001
+#define RBBM_DSPLY__SEL_DMI_ACTIVE_BUFID2__SHIFT 0x00000002
+#define RBBM_DSPLY__SEL_DMI_VSYNC_VALID__SHIFT 0x00000003
+#define RBBM_DSPLY__DMI_CH1_USE_BUFID0__SHIFT 0x00000004
+#define RBBM_DSPLY__DMI_CH1_USE_BUFID1__SHIFT 0x00000005
+#define RBBM_DSPLY__DMI_CH1_USE_BUFID2__SHIFT 0x00000006
+#define RBBM_DSPLY__DMI_CH1_SW_CNTL__SHIFT 0x00000007
+#define RBBM_DSPLY__DMI_CH1_NUM_BUFS__SHIFT 0x00000008
+#define RBBM_DSPLY__DMI_CH2_USE_BUFID0__SHIFT 0x0000000a
+#define RBBM_DSPLY__DMI_CH2_USE_BUFID1__SHIFT 0x0000000b
+#define RBBM_DSPLY__DMI_CH2_USE_BUFID2__SHIFT 0x0000000c
+#define RBBM_DSPLY__DMI_CH2_SW_CNTL__SHIFT 0x0000000d
+#define RBBM_DSPLY__DMI_CH2_NUM_BUFS__SHIFT 0x0000000e
+#define RBBM_DSPLY__DMI_CHANNEL_SELECT__SHIFT 0x00000010
+#define RBBM_DSPLY__DMI_CH3_USE_BUFID0__SHIFT 0x00000014
+#define RBBM_DSPLY__DMI_CH3_USE_BUFID1__SHIFT 0x00000015
+#define RBBM_DSPLY__DMI_CH3_USE_BUFID2__SHIFT 0x00000016
+#define RBBM_DSPLY__DMI_CH3_SW_CNTL__SHIFT 0x00000017
+#define RBBM_DSPLY__DMI_CH3_NUM_BUFS__SHIFT 0x00000018
+#define RBBM_DSPLY__DMI_CH4_USE_BUFID0__SHIFT 0x0000001a
+#define RBBM_DSPLY__DMI_CH4_USE_BUFID1__SHIFT 0x0000001b
+#define RBBM_DSPLY__DMI_CH4_USE_BUFID2__SHIFT 0x0000001c
+#define RBBM_DSPLY__DMI_CH4_SW_CNTL__SHIFT 0x0000001d
+#define RBBM_DSPLY__DMI_CH4_NUM_BUFS__SHIFT 0x0000001e
+
+// RBBM_RENDER_LATEST
+#define RBBM_RENDER_LATEST__DMI_CH1_BUFFER_ID__SHIFT 0x00000000
+#define RBBM_RENDER_LATEST__DMI_CH2_BUFFER_ID__SHIFT 0x00000008
+#define RBBM_RENDER_LATEST__DMI_CH3_BUFFER_ID__SHIFT 0x00000010
+#define RBBM_RENDER_LATEST__DMI_CH4_BUFFER_ID__SHIFT 0x00000018
+
+// RBBM_RTL_RELEASE
+#define RBBM_RTL_RELEASE__CHANGELIST__SHIFT 0x00000000
+
+// RBBM_PATCH_RELEASE
+#define RBBM_PATCH_RELEASE__PATCH_REVISION__SHIFT 0x00000000
+#define RBBM_PATCH_RELEASE__PATCH_SELECTION__SHIFT 0x00000010
+#define RBBM_PATCH_RELEASE__CUSTOMER_ID__SHIFT 0x00000018
+
+// RBBM_AUXILIARY_CONFIG
+#define RBBM_AUXILIARY_CONFIG__RESERVED__SHIFT 0x00000000
+
+// RBBM_PERIPHID0
+#define RBBM_PERIPHID0__PARTNUMBER0__SHIFT 0x00000000
+
+// RBBM_PERIPHID1
+#define RBBM_PERIPHID1__PARTNUMBER1__SHIFT 0x00000000
+#define RBBM_PERIPHID1__DESIGNER0__SHIFT 0x00000004
+
+// RBBM_PERIPHID2
+#define RBBM_PERIPHID2__DESIGNER1__SHIFT 0x00000000
+#define RBBM_PERIPHID2__REVISION__SHIFT 0x00000004
+
+// RBBM_PERIPHID3
+#define RBBM_PERIPHID3__RBBM_HOST_INTERFACE__SHIFT 0x00000000
+#define RBBM_PERIPHID3__GARB_SLAVE_INTERFACE__SHIFT 0x00000002
+#define RBBM_PERIPHID3__MH_INTERFACE__SHIFT 0x00000004
+#define RBBM_PERIPHID3__CONTINUATION__SHIFT 0x00000007
+
+// RBBM_CNTL
+#define RBBM_CNTL__READ_TIMEOUT__SHIFT 0x00000000
+#define RBBM_CNTL__REGCLK_DEASSERT_TIME__SHIFT 0x00000008
+
+// RBBM_SKEW_CNTL
+#define RBBM_SKEW_CNTL__SKEW_TOP_THRESHOLD__SHIFT 0x00000000
+#define RBBM_SKEW_CNTL__SKEW_COUNT__SHIFT 0x00000005
+
+// RBBM_SOFT_RESET
+#define RBBM_SOFT_RESET__SOFT_RESET_CP__SHIFT 0x00000000
+#define RBBM_SOFT_RESET__SOFT_RESET_PA__SHIFT 0x00000002
+#define RBBM_SOFT_RESET__SOFT_RESET_MH__SHIFT 0x00000003
+#define RBBM_SOFT_RESET__SOFT_RESET_BC__SHIFT 0x00000004
+#define RBBM_SOFT_RESET__SOFT_RESET_SQ__SHIFT 0x00000005
+#define RBBM_SOFT_RESET__SOFT_RESET_SX__SHIFT 0x00000006
+#define RBBM_SOFT_RESET__SOFT_RESET_CIB__SHIFT 0x0000000c
+#define RBBM_SOFT_RESET__SOFT_RESET_SC__SHIFT 0x0000000f
+#define RBBM_SOFT_RESET__SOFT_RESET_VGT__SHIFT 0x00000010
+
+// RBBM_PM_OVERRIDE1
+#define RBBM_PM_OVERRIDE1__RBBM_AHBCLK_PM_OVERRIDE__SHIFT 0x00000000
+#define RBBM_PM_OVERRIDE1__SC_REG_SCLK_PM_OVERRIDE__SHIFT 0x00000001
+#define RBBM_PM_OVERRIDE1__SC_SCLK_PM_OVERRIDE__SHIFT 0x00000002
+#define RBBM_PM_OVERRIDE1__SP_TOP_SCLK_PM_OVERRIDE__SHIFT 0x00000003
+#define RBBM_PM_OVERRIDE1__SP_V0_SCLK_PM_OVERRIDE__SHIFT 0x00000004
+#define RBBM_PM_OVERRIDE1__SQ_REG_SCLK_PM_OVERRIDE__SHIFT 0x00000005
+#define RBBM_PM_OVERRIDE1__SQ_REG_FIFOS_SCLK_PM_OVERRIDE__SHIFT 0x00000006
+#define RBBM_PM_OVERRIDE1__SQ_CONST_MEM_SCLK_PM_OVERRIDE__SHIFT 0x00000007
+#define RBBM_PM_OVERRIDE1__SQ_SQ_SCLK_PM_OVERRIDE__SHIFT 0x00000008
+#define RBBM_PM_OVERRIDE1__SX_SCLK_PM_OVERRIDE__SHIFT 0x00000009
+#define RBBM_PM_OVERRIDE1__SX_REG_SCLK_PM_OVERRIDE__SHIFT 0x0000000a
+#define RBBM_PM_OVERRIDE1__TCM_TCO_SCLK_PM_OVERRIDE__SHIFT 0x0000000b
+#define RBBM_PM_OVERRIDE1__TCM_TCM_SCLK_PM_OVERRIDE__SHIFT 0x0000000c
+#define RBBM_PM_OVERRIDE1__TCM_TCD_SCLK_PM_OVERRIDE__SHIFT 0x0000000d
+#define RBBM_PM_OVERRIDE1__TCM_REG_SCLK_PM_OVERRIDE__SHIFT 0x0000000e
+#define RBBM_PM_OVERRIDE1__TPC_TPC_SCLK_PM_OVERRIDE__SHIFT 0x0000000f
+#define RBBM_PM_OVERRIDE1__TPC_REG_SCLK_PM_OVERRIDE__SHIFT 0x00000010
+#define RBBM_PM_OVERRIDE1__TCF_TCA_SCLK_PM_OVERRIDE__SHIFT 0x00000011
+#define RBBM_PM_OVERRIDE1__TCF_TCB_SCLK_PM_OVERRIDE__SHIFT 0x00000012
+#define RBBM_PM_OVERRIDE1__TCF_TCB_READ_SCLK_PM_OVERRIDE__SHIFT 0x00000013
+#define RBBM_PM_OVERRIDE1__TP_TP_SCLK_PM_OVERRIDE__SHIFT 0x00000014
+#define RBBM_PM_OVERRIDE1__TP_REG_SCLK_PM_OVERRIDE__SHIFT 0x00000015
+#define RBBM_PM_OVERRIDE1__CP_G_SCLK_PM_OVERRIDE__SHIFT 0x00000016
+#define RBBM_PM_OVERRIDE1__CP_REG_SCLK_PM_OVERRIDE__SHIFT 0x00000017
+#define RBBM_PM_OVERRIDE1__CP_G_REG_SCLK_PM_OVERRIDE__SHIFT 0x00000018
+#define RBBM_PM_OVERRIDE1__SPI_SCLK_PM_OVERRIDE__SHIFT 0x00000019
+#define RBBM_PM_OVERRIDE1__RB_REG_SCLK_PM_OVERRIDE__SHIFT 0x0000001a
+#define RBBM_PM_OVERRIDE1__RB_SCLK_PM_OVERRIDE__SHIFT 0x0000001b
+#define RBBM_PM_OVERRIDE1__MH_MH_SCLK_PM_OVERRIDE__SHIFT 0x0000001c
+#define RBBM_PM_OVERRIDE1__MH_REG_SCLK_PM_OVERRIDE__SHIFT 0x0000001d
+#define RBBM_PM_OVERRIDE1__MH_MMU_SCLK_PM_OVERRIDE__SHIFT 0x0000001e
+#define RBBM_PM_OVERRIDE1__MH_TCROQ_SCLK_PM_OVERRIDE__SHIFT 0x0000001f
+
+// RBBM_PM_OVERRIDE2
+#define RBBM_PM_OVERRIDE2__PA_REG_SCLK_PM_OVERRIDE__SHIFT 0x00000000
+#define RBBM_PM_OVERRIDE2__PA_PA_SCLK_PM_OVERRIDE__SHIFT 0x00000001
+#define RBBM_PM_OVERRIDE2__PA_AG_SCLK_PM_OVERRIDE__SHIFT 0x00000002
+#define RBBM_PM_OVERRIDE2__VGT_REG_SCLK_PM_OVERRIDE__SHIFT 0x00000003
+#define RBBM_PM_OVERRIDE2__VGT_FIFOS_SCLK_PM_OVERRIDE__SHIFT 0x00000004
+#define RBBM_PM_OVERRIDE2__VGT_VGT_SCLK_PM_OVERRIDE__SHIFT 0x00000005
+#define RBBM_PM_OVERRIDE2__DEBUG_PERF_SCLK_PM_OVERRIDE__SHIFT 0x00000006
+#define RBBM_PM_OVERRIDE2__PERM_SCLK_PM_OVERRIDE__SHIFT 0x00000007
+#define RBBM_PM_OVERRIDE2__GC_GA_GMEM0_PM_OVERRIDE__SHIFT 0x00000008
+#define RBBM_PM_OVERRIDE2__GC_GA_GMEM1_PM_OVERRIDE__SHIFT 0x00000009
+#define RBBM_PM_OVERRIDE2__GC_GA_GMEM2_PM_OVERRIDE__SHIFT 0x0000000a
+#define RBBM_PM_OVERRIDE2__GC_GA_GMEM3_PM_OVERRIDE__SHIFT 0x0000000b
+
+// GC_SYS_IDLE
+#define GC_SYS_IDLE__GC_SYS_IDLE_DELAY__SHIFT 0x00000000
+#define GC_SYS_IDLE__GC_SYS_WAIT_DMI_MASK__SHIFT 0x00000010
+#define GC_SYS_IDLE__GC_SYS_URGENT_RAMP__SHIFT 0x00000018
+#define GC_SYS_IDLE__GC_SYS_WAIT_DMI__SHIFT 0x00000019
+#define GC_SYS_IDLE__GC_SYS_URGENT_RAMP_OVERRIDE__SHIFT 0x0000001d
+#define GC_SYS_IDLE__GC_SYS_WAIT_DMI_OVERRIDE__SHIFT 0x0000001e
+#define GC_SYS_IDLE__GC_SYS_IDLE_OVERRIDE__SHIFT 0x0000001f
+
+// NQWAIT_UNTIL
+#define NQWAIT_UNTIL__WAIT_GUI_IDLE__SHIFT 0x00000000
+
+// RBBM_DEBUG_OUT
+#define RBBM_DEBUG_OUT__DEBUG_BUS_OUT__SHIFT 0x00000000
+
+// RBBM_DEBUG_CNTL
+#define RBBM_DEBUG_CNTL__SUB_BLOCK_ADDR__SHIFT 0x00000000
+#define RBBM_DEBUG_CNTL__SUB_BLOCK_SEL__SHIFT 0x00000008
+#define RBBM_DEBUG_CNTL__SW_ENABLE__SHIFT 0x0000000c
+#define RBBM_DEBUG_CNTL__GPIO_SUB_BLOCK_ADDR__SHIFT 0x00000010
+#define RBBM_DEBUG_CNTL__GPIO_SUB_BLOCK_SEL__SHIFT 0x00000018
+#define RBBM_DEBUG_CNTL__GPIO_BYTE_LANE_ENB__SHIFT 0x0000001c
+
+// RBBM_DEBUG
+#define RBBM_DEBUG__IGNORE_RTR__SHIFT 0x00000001
+#define RBBM_DEBUG__IGNORE_CP_SCHED_WU__SHIFT 0x00000002
+#define RBBM_DEBUG__IGNORE_CP_SCHED_ISYNC__SHIFT 0x00000003
+#define RBBM_DEBUG__IGNORE_CP_SCHED_NQ_HI__SHIFT 0x00000004
+#define RBBM_DEBUG__HYSTERESIS_NRT_GUI_ACTIVE__SHIFT 0x00000008
+#define RBBM_DEBUG__IGNORE_RTR_FOR_HI__SHIFT 0x00000010
+#define RBBM_DEBUG__IGNORE_CP_RBBM_NRTRTR_FOR_HI__SHIFT 0x00000011
+#define RBBM_DEBUG__IGNORE_VGT_RBBM_NRTRTR_FOR_HI__SHIFT 0x00000012
+#define RBBM_DEBUG__IGNORE_SQ_RBBM_NRTRTR_FOR_HI__SHIFT 0x00000013
+#define RBBM_DEBUG__CP_RBBM_NRTRTR__SHIFT 0x00000014
+#define RBBM_DEBUG__VGT_RBBM_NRTRTR__SHIFT 0x00000015
+#define RBBM_DEBUG__SQ_RBBM_NRTRTR__SHIFT 0x00000016
+#define RBBM_DEBUG__CLIENTS_FOR_NRT_RTR_FOR_HI__SHIFT 0x00000017
+#define RBBM_DEBUG__CLIENTS_FOR_NRT_RTR__SHIFT 0x00000018
+#define RBBM_DEBUG__IGNORE_SX_RBBM_BUSY__SHIFT 0x0000001f
+
+// RBBM_READ_ERROR
+#define RBBM_READ_ERROR__READ_ADDRESS__SHIFT 0x00000002
+#define RBBM_READ_ERROR__READ_REQUESTER__SHIFT 0x0000001e
+#define RBBM_READ_ERROR__READ_ERROR__SHIFT 0x0000001f
+
+// RBBM_WAIT_IDLE_CLOCKS
+#define RBBM_WAIT_IDLE_CLOCKS__WAIT_IDLE_CLOCKS_NRT__SHIFT 0x00000000
+
+// RBBM_INT_CNTL
+#define RBBM_INT_CNTL__RDERR_INT_MASK__SHIFT 0x00000000
+#define RBBM_INT_CNTL__DISPLAY_UPDATE_INT_MASK__SHIFT 0x00000001
+#define RBBM_INT_CNTL__GUI_IDLE_INT_MASK__SHIFT 0x00000013
+
+// RBBM_INT_STATUS
+#define RBBM_INT_STATUS__RDERR_INT_STAT__SHIFT 0x00000000
+#define RBBM_INT_STATUS__DISPLAY_UPDATE_INT_STAT__SHIFT 0x00000001
+#define RBBM_INT_STATUS__GUI_IDLE_INT_STAT__SHIFT 0x00000013
+
+// RBBM_INT_ACK
+#define RBBM_INT_ACK__RDERR_INT_ACK__SHIFT 0x00000000
+#define RBBM_INT_ACK__DISPLAY_UPDATE_INT_ACK__SHIFT 0x00000001
+#define RBBM_INT_ACK__GUI_IDLE_INT_ACK__SHIFT 0x00000013
+
+// MASTER_INT_SIGNAL
+#define MASTER_INT_SIGNAL__MH_INT_STAT__SHIFT 0x00000005
+#define MASTER_INT_SIGNAL__SQ_INT_STAT__SHIFT 0x0000001a
+#define MASTER_INT_SIGNAL__CP_INT_STAT__SHIFT 0x0000001e
+#define MASTER_INT_SIGNAL__RBBM_INT_STAT__SHIFT 0x0000001f
+
+// RBBM_PERFCOUNTER1_SELECT
+#define RBBM_PERFCOUNTER1_SELECT__PERF_COUNT1_SEL__SHIFT 0x00000000
+
+// RBBM_PERFCOUNTER1_LO
+#define RBBM_PERFCOUNTER1_LO__PERF_COUNT1_LO__SHIFT 0x00000000
+
+// RBBM_PERFCOUNTER1_HI
+#define RBBM_PERFCOUNTER1_HI__PERF_COUNT1_HI__SHIFT 0x00000000
+
+// CP_RB_BASE
+#define CP_RB_BASE__RB_BASE__SHIFT 0x00000005
+
+// CP_RB_CNTL
+#define CP_RB_CNTL__RB_BUFSZ__SHIFT 0x00000000
+#define CP_RB_CNTL__RB_BLKSZ__SHIFT 0x00000008
+#define CP_RB_CNTL__BUF_SWAP__SHIFT 0x00000010
+#define CP_RB_CNTL__RB_POLL_EN__SHIFT 0x00000014
+#define CP_RB_CNTL__RB_NO_UPDATE__SHIFT 0x0000001b
+#define CP_RB_CNTL__RB_RPTR_WR_ENA__SHIFT 0x0000001f
+
+// CP_RB_RPTR_ADDR
+#define CP_RB_RPTR_ADDR__RB_RPTR_SWAP__SHIFT 0x00000000
+#define CP_RB_RPTR_ADDR__RB_RPTR_ADDR__SHIFT 0x00000002
+
+// CP_RB_RPTR
+#define CP_RB_RPTR__RB_RPTR__SHIFT 0x00000000
+
+// CP_RB_RPTR_WR
+#define CP_RB_RPTR_WR__RB_RPTR_WR__SHIFT 0x00000000
+
+// CP_RB_WPTR
+#define CP_RB_WPTR__RB_WPTR__SHIFT 0x00000000
+
+// CP_RB_WPTR_DELAY
+#define CP_RB_WPTR_DELAY__PRE_WRITE_TIMER__SHIFT 0x00000000
+#define CP_RB_WPTR_DELAY__PRE_WRITE_LIMIT__SHIFT 0x0000001c
+
+// CP_RB_WPTR_BASE
+#define CP_RB_WPTR_BASE__RB_WPTR_SWAP__SHIFT 0x00000000
+#define CP_RB_WPTR_BASE__RB_WPTR_BASE__SHIFT 0x00000002
+
+// CP_IB1_BASE
+#define CP_IB1_BASE__IB1_BASE__SHIFT 0x00000002
+
+// CP_IB1_BUFSZ
+#define CP_IB1_BUFSZ__IB1_BUFSZ__SHIFT 0x00000000
+
+// CP_IB2_BASE
+#define CP_IB2_BASE__IB2_BASE__SHIFT 0x00000002
+
+// CP_IB2_BUFSZ
+#define CP_IB2_BUFSZ__IB2_BUFSZ__SHIFT 0x00000000
+
+// CP_ST_BASE
+#define CP_ST_BASE__ST_BASE__SHIFT 0x00000002
+
+// CP_ST_BUFSZ
+#define CP_ST_BUFSZ__ST_BUFSZ__SHIFT 0x00000000
+
+// CP_QUEUE_THRESHOLDS
+#define CP_QUEUE_THRESHOLDS__CSQ_IB1_START__SHIFT 0x00000000
+#define CP_QUEUE_THRESHOLDS__CSQ_IB2_START__SHIFT 0x00000008
+#define CP_QUEUE_THRESHOLDS__CSQ_ST_START__SHIFT 0x00000010
+
+// CP_MEQ_THRESHOLDS
+#define CP_MEQ_THRESHOLDS__MEQ_END__SHIFT 0x00000010
+#define CP_MEQ_THRESHOLDS__ROQ_END__SHIFT 0x00000018
+
+// CP_CSQ_AVAIL
+#define CP_CSQ_AVAIL__CSQ_CNT_RING__SHIFT 0x00000000
+#define CP_CSQ_AVAIL__CSQ_CNT_IB1__SHIFT 0x00000008
+#define CP_CSQ_AVAIL__CSQ_CNT_IB2__SHIFT 0x00000010
+
+// CP_STQ_AVAIL
+#define CP_STQ_AVAIL__STQ_CNT_ST__SHIFT 0x00000000
+
+// CP_MEQ_AVAIL
+#define CP_MEQ_AVAIL__MEQ_CNT__SHIFT 0x00000000
+
+// CP_CSQ_RB_STAT
+#define CP_CSQ_RB_STAT__CSQ_RPTR_PRIMARY__SHIFT 0x00000000
+#define CP_CSQ_RB_STAT__CSQ_WPTR_PRIMARY__SHIFT 0x00000010
+
+// CP_CSQ_IB1_STAT
+#define CP_CSQ_IB1_STAT__CSQ_RPTR_INDIRECT1__SHIFT 0x00000000
+#define CP_CSQ_IB1_STAT__CSQ_WPTR_INDIRECT1__SHIFT 0x00000010
+
+// CP_CSQ_IB2_STAT
+#define CP_CSQ_IB2_STAT__CSQ_RPTR_INDIRECT2__SHIFT 0x00000000
+#define CP_CSQ_IB2_STAT__CSQ_WPTR_INDIRECT2__SHIFT 0x00000010
+
+// CP_NON_PREFETCH_CNTRS
+#define CP_NON_PREFETCH_CNTRS__IB1_COUNTER__SHIFT 0x00000000
+#define CP_NON_PREFETCH_CNTRS__IB2_COUNTER__SHIFT 0x00000008
+
+// CP_STQ_ST_STAT
+#define CP_STQ_ST_STAT__STQ_RPTR_ST__SHIFT 0x00000000
+#define CP_STQ_ST_STAT__STQ_WPTR_ST__SHIFT 0x00000010
+
+// CP_MEQ_STAT
+#define CP_MEQ_STAT__MEQ_RPTR__SHIFT 0x00000000
+#define CP_MEQ_STAT__MEQ_WPTR__SHIFT 0x00000010
+
+// CP_MIU_TAG_STAT
+#define CP_MIU_TAG_STAT__TAG_0_STAT__SHIFT 0x00000000
+#define CP_MIU_TAG_STAT__TAG_1_STAT__SHIFT 0x00000001
+#define CP_MIU_TAG_STAT__TAG_2_STAT__SHIFT 0x00000002
+#define CP_MIU_TAG_STAT__TAG_3_STAT__SHIFT 0x00000003
+#define CP_MIU_TAG_STAT__TAG_4_STAT__SHIFT 0x00000004
+#define CP_MIU_TAG_STAT__TAG_5_STAT__SHIFT 0x00000005
+#define CP_MIU_TAG_STAT__TAG_6_STAT__SHIFT 0x00000006
+#define CP_MIU_TAG_STAT__TAG_7_STAT__SHIFT 0x00000007
+#define CP_MIU_TAG_STAT__TAG_8_STAT__SHIFT 0x00000008
+#define CP_MIU_TAG_STAT__TAG_9_STAT__SHIFT 0x00000009
+#define CP_MIU_TAG_STAT__TAG_10_STAT__SHIFT 0x0000000a
+#define CP_MIU_TAG_STAT__TAG_11_STAT__SHIFT 0x0000000b
+#define CP_MIU_TAG_STAT__TAG_12_STAT__SHIFT 0x0000000c
+#define CP_MIU_TAG_STAT__TAG_13_STAT__SHIFT 0x0000000d
+#define CP_MIU_TAG_STAT__TAG_14_STAT__SHIFT 0x0000000e
+#define CP_MIU_TAG_STAT__TAG_15_STAT__SHIFT 0x0000000f
+#define CP_MIU_TAG_STAT__TAG_16_STAT__SHIFT 0x00000010
+#define CP_MIU_TAG_STAT__TAG_17_STAT__SHIFT 0x00000011
+#define CP_MIU_TAG_STAT__INVALID_RETURN_TAG__SHIFT 0x0000001f
+
+// CP_CMD_INDEX
+#define CP_CMD_INDEX__CMD_INDEX__SHIFT 0x00000000
+#define CP_CMD_INDEX__CMD_QUEUE_SEL__SHIFT 0x00000010
+
+// CP_CMD_DATA
+#define CP_CMD_DATA__CMD_DATA__SHIFT 0x00000000
+
+// CP_ME_CNTL
+#define CP_ME_CNTL__ME_STATMUX__SHIFT 0x00000000
+#define CP_ME_CNTL__VTX_DEALLOC_FIFO_EMPTY__SHIFT 0x00000019
+#define CP_ME_CNTL__PIX_DEALLOC_FIFO_EMPTY__SHIFT 0x0000001a
+#define CP_ME_CNTL__ME_HALT__SHIFT 0x0000001c
+#define CP_ME_CNTL__ME_BUSY__SHIFT 0x0000001d
+#define CP_ME_CNTL__PROG_CNT_SIZE__SHIFT 0x0000001f
+
+// CP_ME_STATUS
+#define CP_ME_STATUS__ME_DEBUG_DATA__SHIFT 0x00000000
+
+// CP_ME_RAM_WADDR
+#define CP_ME_RAM_WADDR__ME_RAM_WADDR__SHIFT 0x00000000
+
+// CP_ME_RAM_RADDR
+#define CP_ME_RAM_RADDR__ME_RAM_RADDR__SHIFT 0x00000000
+
+// CP_ME_RAM_DATA
+#define CP_ME_RAM_DATA__ME_RAM_DATA__SHIFT 0x00000000
+
+// CP_ME_RDADDR
+#define CP_ME_RDADDR__ME_RDADDR__SHIFT 0x00000000
+
+// CP_DEBUG
+#define CP_DEBUG__CP_DEBUG_UNUSED_22_to_0__SHIFT 0x00000000
+#define CP_DEBUG__PREDICATE_DISABLE__SHIFT 0x00000017
+#define CP_DEBUG__PROG_END_PTR_ENABLE__SHIFT 0x00000018
+#define CP_DEBUG__MIU_128BIT_WRITE_ENABLE__SHIFT 0x00000019
+#define CP_DEBUG__PREFETCH_PASS_NOPS__SHIFT 0x0000001a
+#define CP_DEBUG__DYNAMIC_CLK_DISABLE__SHIFT 0x0000001b
+#define CP_DEBUG__PREFETCH_MATCH_DISABLE__SHIFT 0x0000001c
+#define CP_DEBUG__SIMPLE_ME_FLOW_CONTROL__SHIFT 0x0000001e
+#define CP_DEBUG__MIU_WRITE_PACK_DISABLE__SHIFT 0x0000001f
+
+// SCRATCH_REG0
+#define SCRATCH_REG0__SCRATCH_REG0__SHIFT 0x00000000
+#define GUI_SCRATCH_REG0__SCRATCH_REG0__SHIFT 0x00000000
+
+// SCRATCH_REG1
+#define SCRATCH_REG1__SCRATCH_REG1__SHIFT 0x00000000
+#define GUI_SCRATCH_REG1__SCRATCH_REG1__SHIFT 0x00000000
+
+// SCRATCH_REG2
+#define SCRATCH_REG2__SCRATCH_REG2__SHIFT 0x00000000
+#define GUI_SCRATCH_REG2__SCRATCH_REG2__SHIFT 0x00000000
+
+// SCRATCH_REG3
+#define SCRATCH_REG3__SCRATCH_REG3__SHIFT 0x00000000
+#define GUI_SCRATCH_REG3__SCRATCH_REG3__SHIFT 0x00000000
+
+// SCRATCH_REG4
+#define SCRATCH_REG4__SCRATCH_REG4__SHIFT 0x00000000
+#define GUI_SCRATCH_REG4__SCRATCH_REG4__SHIFT 0x00000000
+
+// SCRATCH_REG5
+#define SCRATCH_REG5__SCRATCH_REG5__SHIFT 0x00000000
+#define GUI_SCRATCH_REG5__SCRATCH_REG5__SHIFT 0x00000000
+
+// SCRATCH_REG6
+#define SCRATCH_REG6__SCRATCH_REG6__SHIFT 0x00000000
+#define GUI_SCRATCH_REG6__SCRATCH_REG6__SHIFT 0x00000000
+
+// SCRATCH_REG7
+#define SCRATCH_REG7__SCRATCH_REG7__SHIFT 0x00000000
+#define GUI_SCRATCH_REG7__SCRATCH_REG7__SHIFT 0x00000000
+
+// SCRATCH_UMSK
+#define SCRATCH_UMSK__SCRATCH_UMSK__SHIFT 0x00000000
+#define SCRATCH_UMSK__SCRATCH_SWAP__SHIFT 0x00000010
+
+// SCRATCH_ADDR
+#define SCRATCH_ADDR__SCRATCH_ADDR__SHIFT 0x00000005
+
+// CP_ME_VS_EVENT_SRC
+#define CP_ME_VS_EVENT_SRC__VS_DONE_SWM__SHIFT 0x00000000
+#define CP_ME_VS_EVENT_SRC__VS_DONE_CNTR__SHIFT 0x00000001
+
+// CP_ME_VS_EVENT_ADDR
+#define CP_ME_VS_EVENT_ADDR__VS_DONE_SWAP__SHIFT 0x00000000
+#define CP_ME_VS_EVENT_ADDR__VS_DONE_ADDR__SHIFT 0x00000002
+
+// CP_ME_VS_EVENT_DATA
+#define CP_ME_VS_EVENT_DATA__VS_DONE_DATA__SHIFT 0x00000000
+
+// CP_ME_VS_EVENT_ADDR_SWM
+#define CP_ME_VS_EVENT_ADDR_SWM__VS_DONE_SWAP_SWM__SHIFT 0x00000000
+#define CP_ME_VS_EVENT_ADDR_SWM__VS_DONE_ADDR_SWM__SHIFT 0x00000002
+
+// CP_ME_VS_EVENT_DATA_SWM
+#define CP_ME_VS_EVENT_DATA_SWM__VS_DONE_DATA_SWM__SHIFT 0x00000000
+
+// CP_ME_PS_EVENT_SRC
+#define CP_ME_PS_EVENT_SRC__PS_DONE_SWM__SHIFT 0x00000000
+#define CP_ME_PS_EVENT_SRC__PS_DONE_CNTR__SHIFT 0x00000001
+
+// CP_ME_PS_EVENT_ADDR
+#define CP_ME_PS_EVENT_ADDR__PS_DONE_SWAP__SHIFT 0x00000000
+#define CP_ME_PS_EVENT_ADDR__PS_DONE_ADDR__SHIFT 0x00000002
+
+// CP_ME_PS_EVENT_DATA
+#define CP_ME_PS_EVENT_DATA__PS_DONE_DATA__SHIFT 0x00000000
+
+// CP_ME_PS_EVENT_ADDR_SWM
+#define CP_ME_PS_EVENT_ADDR_SWM__PS_DONE_SWAP_SWM__SHIFT 0x00000000
+#define CP_ME_PS_EVENT_ADDR_SWM__PS_DONE_ADDR_SWM__SHIFT 0x00000002
+
+// CP_ME_PS_EVENT_DATA_SWM
+#define CP_ME_PS_EVENT_DATA_SWM__PS_DONE_DATA_SWM__SHIFT 0x00000000
+
+// CP_ME_CF_EVENT_SRC
+#define CP_ME_CF_EVENT_SRC__CF_DONE_SRC__SHIFT 0x00000000
+
+// CP_ME_CF_EVENT_ADDR
+#define CP_ME_CF_EVENT_ADDR__CF_DONE_SWAP__SHIFT 0x00000000
+#define CP_ME_CF_EVENT_ADDR__CF_DONE_ADDR__SHIFT 0x00000002
+
+// CP_ME_CF_EVENT_DATA
+#define CP_ME_CF_EVENT_DATA__CF_DONE_DATA__SHIFT 0x00000000
+
+// CP_ME_NRT_ADDR
+#define CP_ME_NRT_ADDR__NRT_WRITE_SWAP__SHIFT 0x00000000
+#define CP_ME_NRT_ADDR__NRT_WRITE_ADDR__SHIFT 0x00000002
+
+// CP_ME_NRT_DATA
+#define CP_ME_NRT_DATA__NRT_WRITE_DATA__SHIFT 0x00000000
+
+// CP_ME_VS_FETCH_DONE_SRC
+#define CP_ME_VS_FETCH_DONE_SRC__VS_FETCH_DONE_CNTR__SHIFT 0x00000000
+
+// CP_ME_VS_FETCH_DONE_ADDR
+#define CP_ME_VS_FETCH_DONE_ADDR__VS_FETCH_DONE_SWAP__SHIFT 0x00000000
+#define CP_ME_VS_FETCH_DONE_ADDR__VS_FETCH_DONE_ADDR__SHIFT 0x00000002
+
+// CP_ME_VS_FETCH_DONE_DATA
+#define CP_ME_VS_FETCH_DONE_DATA__VS_FETCH_DONE_DATA__SHIFT 0x00000000
+
+// CP_INT_CNTL
+#define CP_INT_CNTL__SW_INT_MASK__SHIFT 0x00000013
+#define CP_INT_CNTL__T0_PACKET_IN_IB_MASK__SHIFT 0x00000017
+#define CP_INT_CNTL__OPCODE_ERROR_MASK__SHIFT 0x00000018
+#define CP_INT_CNTL__PROTECTED_MODE_ERROR_MASK__SHIFT 0x00000019
+#define CP_INT_CNTL__RESERVED_BIT_ERROR_MASK__SHIFT 0x0000001a
+#define CP_INT_CNTL__IB_ERROR_MASK__SHIFT 0x0000001b
+#define CP_INT_CNTL__IB2_INT_MASK__SHIFT 0x0000001d
+#define CP_INT_CNTL__IB1_INT_MASK__SHIFT 0x0000001e
+#define CP_INT_CNTL__RB_INT_MASK__SHIFT 0x0000001f
+
+// CP_INT_STATUS
+#define CP_INT_STATUS__SW_INT_STAT__SHIFT 0x00000013
+#define CP_INT_STATUS__T0_PACKET_IN_IB_STAT__SHIFT 0x00000017
+#define CP_INT_STATUS__OPCODE_ERROR_STAT__SHIFT 0x00000018
+#define CP_INT_STATUS__PROTECTED_MODE_ERROR_STAT__SHIFT 0x00000019
+#define CP_INT_STATUS__RESERVED_BIT_ERROR_STAT__SHIFT 0x0000001a
+#define CP_INT_STATUS__IB_ERROR_STAT__SHIFT 0x0000001b
+#define CP_INT_STATUS__IB2_INT_STAT__SHIFT 0x0000001d
+#define CP_INT_STATUS__IB1_INT_STAT__SHIFT 0x0000001e
+#define CP_INT_STATUS__RB_INT_STAT__SHIFT 0x0000001f
+
+// CP_INT_ACK
+#define CP_INT_ACK__SW_INT_ACK__SHIFT 0x00000013
+#define CP_INT_ACK__T0_PACKET_IN_IB_ACK__SHIFT 0x00000017
+#define CP_INT_ACK__OPCODE_ERROR_ACK__SHIFT 0x00000018
+#define CP_INT_ACK__PROTECTED_MODE_ERROR_ACK__SHIFT 0x00000019
+#define CP_INT_ACK__RESERVED_BIT_ERROR_ACK__SHIFT 0x0000001a
+#define CP_INT_ACK__IB_ERROR_ACK__SHIFT 0x0000001b
+#define CP_INT_ACK__IB2_INT_ACK__SHIFT 0x0000001d
+#define CP_INT_ACK__IB1_INT_ACK__SHIFT 0x0000001e
+#define CP_INT_ACK__RB_INT_ACK__SHIFT 0x0000001f
+
+// CP_PFP_UCODE_ADDR
+#define CP_PFP_UCODE_ADDR__UCODE_ADDR__SHIFT 0x00000000
+
+// CP_PFP_UCODE_DATA
+#define CP_PFP_UCODE_DATA__UCODE_DATA__SHIFT 0x00000000
+
+// CP_PERFMON_CNTL
+#define CP_PERFMON_CNTL__PERFMON_STATE__SHIFT 0x00000000
+#define CP_PERFMON_CNTL__PERFMON_ENABLE_MODE__SHIFT 0x00000008
+
+// CP_PERFCOUNTER_SELECT
+#define CP_PERFCOUNTER_SELECT__PERFCOUNT_SEL__SHIFT 0x00000000
+
+// CP_PERFCOUNTER_LO
+#define CP_PERFCOUNTER_LO__PERFCOUNT_LO__SHIFT 0x00000000
+
+// CP_PERFCOUNTER_HI
+#define CP_PERFCOUNTER_HI__PERFCOUNT_HI__SHIFT 0x00000000
+
+// CP_BIN_MASK_LO
+#define CP_BIN_MASK_LO__BIN_MASK_LO__SHIFT 0x00000000
+
+// CP_BIN_MASK_HI
+#define CP_BIN_MASK_HI__BIN_MASK_HI__SHIFT 0x00000000
+
+// CP_BIN_SELECT_LO
+#define CP_BIN_SELECT_LO__BIN_SELECT_LO__SHIFT 0x00000000
+
+// CP_BIN_SELECT_HI
+#define CP_BIN_SELECT_HI__BIN_SELECT_HI__SHIFT 0x00000000
+
+// CP_NV_FLAGS_0
+#define CP_NV_FLAGS_0__DISCARD_0__SHIFT 0x00000000
+#define CP_NV_FLAGS_0__END_RCVD_0__SHIFT 0x00000001
+#define CP_NV_FLAGS_0__DISCARD_1__SHIFT 0x00000002
+#define CP_NV_FLAGS_0__END_RCVD_1__SHIFT 0x00000003
+#define CP_NV_FLAGS_0__DISCARD_2__SHIFT 0x00000004
+#define CP_NV_FLAGS_0__END_RCVD_2__SHIFT 0x00000005
+#define CP_NV_FLAGS_0__DISCARD_3__SHIFT 0x00000006
+#define CP_NV_FLAGS_0__END_RCVD_3__SHIFT 0x00000007
+#define CP_NV_FLAGS_0__DISCARD_4__SHIFT 0x00000008
+#define CP_NV_FLAGS_0__END_RCVD_4__SHIFT 0x00000009
+#define CP_NV_FLAGS_0__DISCARD_5__SHIFT 0x0000000a
+#define CP_NV_FLAGS_0__END_RCVD_5__SHIFT 0x0000000b
+#define CP_NV_FLAGS_0__DISCARD_6__SHIFT 0x0000000c
+#define CP_NV_FLAGS_0__END_RCVD_6__SHIFT 0x0000000d
+#define CP_NV_FLAGS_0__DISCARD_7__SHIFT 0x0000000e
+#define CP_NV_FLAGS_0__END_RCVD_7__SHIFT 0x0000000f
+#define CP_NV_FLAGS_0__DISCARD_8__SHIFT 0x00000010
+#define CP_NV_FLAGS_0__END_RCVD_8__SHIFT 0x00000011
+#define CP_NV_FLAGS_0__DISCARD_9__SHIFT 0x00000012
+#define CP_NV_FLAGS_0__END_RCVD_9__SHIFT 0x00000013
+#define CP_NV_FLAGS_0__DISCARD_10__SHIFT 0x00000014
+#define CP_NV_FLAGS_0__END_RCVD_10__SHIFT 0x00000015
+#define CP_NV_FLAGS_0__DISCARD_11__SHIFT 0x00000016
+#define CP_NV_FLAGS_0__END_RCVD_11__SHIFT 0x00000017
+#define CP_NV_FLAGS_0__DISCARD_12__SHIFT 0x00000018
+#define CP_NV_FLAGS_0__END_RCVD_12__SHIFT 0x00000019
+#define CP_NV_FLAGS_0__DISCARD_13__SHIFT 0x0000001a
+#define CP_NV_FLAGS_0__END_RCVD_13__SHIFT 0x0000001b
+#define CP_NV_FLAGS_0__DISCARD_14__SHIFT 0x0000001c
+#define CP_NV_FLAGS_0__END_RCVD_14__SHIFT 0x0000001d
+#define CP_NV_FLAGS_0__DISCARD_15__SHIFT 0x0000001e
+#define CP_NV_FLAGS_0__END_RCVD_15__SHIFT 0x0000001f
+
+// CP_NV_FLAGS_1
+#define CP_NV_FLAGS_1__DISCARD_16__SHIFT 0x00000000
+#define CP_NV_FLAGS_1__END_RCVD_16__SHIFT 0x00000001
+#define CP_NV_FLAGS_1__DISCARD_17__SHIFT 0x00000002
+#define CP_NV_FLAGS_1__END_RCVD_17__SHIFT 0x00000003
+#define CP_NV_FLAGS_1__DISCARD_18__SHIFT 0x00000004
+#define CP_NV_FLAGS_1__END_RCVD_18__SHIFT 0x00000005
+#define CP_NV_FLAGS_1__DISCARD_19__SHIFT 0x00000006
+#define CP_NV_FLAGS_1__END_RCVD_19__SHIFT 0x00000007
+#define CP_NV_FLAGS_1__DISCARD_20__SHIFT 0x00000008
+#define CP_NV_FLAGS_1__END_RCVD_20__SHIFT 0x00000009
+#define CP_NV_FLAGS_1__DISCARD_21__SHIFT 0x0000000a
+#define CP_NV_FLAGS_1__END_RCVD_21__SHIFT 0x0000000b
+#define CP_NV_FLAGS_1__DISCARD_22__SHIFT 0x0000000c
+#define CP_NV_FLAGS_1__END_RCVD_22__SHIFT 0x0000000d
+#define CP_NV_FLAGS_1__DISCARD_23__SHIFT 0x0000000e
+#define CP_NV_FLAGS_1__END_RCVD_23__SHIFT 0x0000000f
+#define CP_NV_FLAGS_1__DISCARD_24__SHIFT 0x00000010
+#define CP_NV_FLAGS_1__END_RCVD_24__SHIFT 0x00000011
+#define CP_NV_FLAGS_1__DISCARD_25__SHIFT 0x00000012
+#define CP_NV_FLAGS_1__END_RCVD_25__SHIFT 0x00000013
+#define CP_NV_FLAGS_1__DISCARD_26__SHIFT 0x00000014
+#define CP_NV_FLAGS_1__END_RCVD_26__SHIFT 0x00000015
+#define CP_NV_FLAGS_1__DISCARD_27__SHIFT 0x00000016
+#define CP_NV_FLAGS_1__END_RCVD_27__SHIFT 0x00000017
+#define CP_NV_FLAGS_1__DISCARD_28__SHIFT 0x00000018
+#define CP_NV_FLAGS_1__END_RCVD_28__SHIFT 0x00000019
+#define CP_NV_FLAGS_1__DISCARD_29__SHIFT 0x0000001a
+#define CP_NV_FLAGS_1__END_RCVD_29__SHIFT 0x0000001b
+#define CP_NV_FLAGS_1__DISCARD_30__SHIFT 0x0000001c
+#define CP_NV_FLAGS_1__END_RCVD_30__SHIFT 0x0000001d
+#define CP_NV_FLAGS_1__DISCARD_31__SHIFT 0x0000001e
+#define CP_NV_FLAGS_1__END_RCVD_31__SHIFT 0x0000001f
+
+// CP_NV_FLAGS_2
+#define CP_NV_FLAGS_2__DISCARD_32__SHIFT 0x00000000
+#define CP_NV_FLAGS_2__END_RCVD_32__SHIFT 0x00000001
+#define CP_NV_FLAGS_2__DISCARD_33__SHIFT 0x00000002
+#define CP_NV_FLAGS_2__END_RCVD_33__SHIFT 0x00000003
+#define CP_NV_FLAGS_2__DISCARD_34__SHIFT 0x00000004
+#define CP_NV_FLAGS_2__END_RCVD_34__SHIFT 0x00000005
+#define CP_NV_FLAGS_2__DISCARD_35__SHIFT 0x00000006
+#define CP_NV_FLAGS_2__END_RCVD_35__SHIFT 0x00000007
+#define CP_NV_FLAGS_2__DISCARD_36__SHIFT 0x00000008
+#define CP_NV_FLAGS_2__END_RCVD_36__SHIFT 0x00000009
+#define CP_NV_FLAGS_2__DISCARD_37__SHIFT 0x0000000a
+#define CP_NV_FLAGS_2__END_RCVD_37__SHIFT 0x0000000b
+#define CP_NV_FLAGS_2__DISCARD_38__SHIFT 0x0000000c
+#define CP_NV_FLAGS_2__END_RCVD_38__SHIFT 0x0000000d
+#define CP_NV_FLAGS_2__DISCARD_39__SHIFT 0x0000000e
+#define CP_NV_FLAGS_2__END_RCVD_39__SHIFT 0x0000000f
+#define CP_NV_FLAGS_2__DISCARD_40__SHIFT 0x00000010
+#define CP_NV_FLAGS_2__END_RCVD_40__SHIFT 0x00000011
+#define CP_NV_FLAGS_2__DISCARD_41__SHIFT 0x00000012
+#define CP_NV_FLAGS_2__END_RCVD_41__SHIFT 0x00000013
+#define CP_NV_FLAGS_2__DISCARD_42__SHIFT 0x00000014
+#define CP_NV_FLAGS_2__END_RCVD_42__SHIFT 0x00000015
+#define CP_NV_FLAGS_2__DISCARD_43__SHIFT 0x00000016
+#define CP_NV_FLAGS_2__END_RCVD_43__SHIFT 0x00000017
+#define CP_NV_FLAGS_2__DISCARD_44__SHIFT 0x00000018
+#define CP_NV_FLAGS_2__END_RCVD_44__SHIFT 0x00000019
+#define CP_NV_FLAGS_2__DISCARD_45__SHIFT 0x0000001a
+#define CP_NV_FLAGS_2__END_RCVD_45__SHIFT 0x0000001b
+#define CP_NV_FLAGS_2__DISCARD_46__SHIFT 0x0000001c
+#define CP_NV_FLAGS_2__END_RCVD_46__SHIFT 0x0000001d
+#define CP_NV_FLAGS_2__DISCARD_47__SHIFT 0x0000001e
+#define CP_NV_FLAGS_2__END_RCVD_47__SHIFT 0x0000001f
+
+// CP_NV_FLAGS_3
+#define CP_NV_FLAGS_3__DISCARD_48__SHIFT 0x00000000
+#define CP_NV_FLAGS_3__END_RCVD_48__SHIFT 0x00000001
+#define CP_NV_FLAGS_3__DISCARD_49__SHIFT 0x00000002
+#define CP_NV_FLAGS_3__END_RCVD_49__SHIFT 0x00000003
+#define CP_NV_FLAGS_3__DISCARD_50__SHIFT 0x00000004
+#define CP_NV_FLAGS_3__END_RCVD_50__SHIFT 0x00000005
+#define CP_NV_FLAGS_3__DISCARD_51__SHIFT 0x00000006
+#define CP_NV_FLAGS_3__END_RCVD_51__SHIFT 0x00000007
+#define CP_NV_FLAGS_3__DISCARD_52__SHIFT 0x00000008
+#define CP_NV_FLAGS_3__END_RCVD_52__SHIFT 0x00000009
+#define CP_NV_FLAGS_3__DISCARD_53__SHIFT 0x0000000a
+#define CP_NV_FLAGS_3__END_RCVD_53__SHIFT 0x0000000b
+#define CP_NV_FLAGS_3__DISCARD_54__SHIFT 0x0000000c
+#define CP_NV_FLAGS_3__END_RCVD_54__SHIFT 0x0000000d
+#define CP_NV_FLAGS_3__DISCARD_55__SHIFT 0x0000000e
+#define CP_NV_FLAGS_3__END_RCVD_55__SHIFT 0x0000000f
+#define CP_NV_FLAGS_3__DISCARD_56__SHIFT 0x00000010
+#define CP_NV_FLAGS_3__END_RCVD_56__SHIFT 0x00000011
+#define CP_NV_FLAGS_3__DISCARD_57__SHIFT 0x00000012
+#define CP_NV_FLAGS_3__END_RCVD_57__SHIFT 0x00000013
+#define CP_NV_FLAGS_3__DISCARD_58__SHIFT 0x00000014
+#define CP_NV_FLAGS_3__END_RCVD_58__SHIFT 0x00000015
+#define CP_NV_FLAGS_3__DISCARD_59__SHIFT 0x00000016
+#define CP_NV_FLAGS_3__END_RCVD_59__SHIFT 0x00000017
+#define CP_NV_FLAGS_3__DISCARD_60__SHIFT 0x00000018
+#define CP_NV_FLAGS_3__END_RCVD_60__SHIFT 0x00000019
+#define CP_NV_FLAGS_3__DISCARD_61__SHIFT 0x0000001a
+#define CP_NV_FLAGS_3__END_RCVD_61__SHIFT 0x0000001b
+#define CP_NV_FLAGS_3__DISCARD_62__SHIFT 0x0000001c
+#define CP_NV_FLAGS_3__END_RCVD_62__SHIFT 0x0000001d
+#define CP_NV_FLAGS_3__DISCARD_63__SHIFT 0x0000001e
+#define CP_NV_FLAGS_3__END_RCVD_63__SHIFT 0x0000001f
+
+// CP_STATE_DEBUG_INDEX
+#define CP_STATE_DEBUG_INDEX__STATE_DEBUG_INDEX__SHIFT 0x00000000
+
+// CP_STATE_DEBUG_DATA
+#define CP_STATE_DEBUG_DATA__STATE_DEBUG_DATA__SHIFT 0x00000000
+
+// CP_PROG_COUNTER
+#define CP_PROG_COUNTER__COUNTER__SHIFT 0x00000000
+
+// CP_STAT
+#define CP_STAT__MIU_WR_BUSY__SHIFT 0x00000000
+#define CP_STAT__MIU_RD_REQ_BUSY__SHIFT 0x00000001
+#define CP_STAT__MIU_RD_RETURN_BUSY__SHIFT 0x00000002
+#define CP_STAT__RBIU_BUSY__SHIFT 0x00000003
+#define CP_STAT__RCIU_BUSY__SHIFT 0x00000004
+#define CP_STAT__CSF_RING_BUSY__SHIFT 0x00000005
+#define CP_STAT__CSF_INDIRECTS_BUSY__SHIFT 0x00000006
+#define CP_STAT__CSF_INDIRECT2_BUSY__SHIFT 0x00000007
+#define CP_STAT__CSF_ST_BUSY__SHIFT 0x00000009
+#define CP_STAT__CSF_BUSY__SHIFT 0x0000000a
+#define CP_STAT__RING_QUEUE_BUSY__SHIFT 0x0000000b
+#define CP_STAT__INDIRECTS_QUEUE_BUSY__SHIFT 0x0000000c
+#define CP_STAT__INDIRECT2_QUEUE_BUSY__SHIFT 0x0000000d
+#define CP_STAT__ST_QUEUE_BUSY__SHIFT 0x00000010
+#define CP_STAT__PFP_BUSY__SHIFT 0x00000011
+#define CP_STAT__MEQ_RING_BUSY__SHIFT 0x00000012
+#define CP_STAT__MEQ_INDIRECTS_BUSY__SHIFT 0x00000013
+#define CP_STAT__MEQ_INDIRECT2_BUSY__SHIFT 0x00000014
+#define CP_STAT__MIU_WC_STALL__SHIFT 0x00000015
+#define CP_STAT__CP_NRT_BUSY__SHIFT 0x00000016
+#define CP_STAT___3D_BUSY__SHIFT 0x00000017
+#define CP_STAT__ME_BUSY__SHIFT 0x0000001a
+#define CP_STAT__ME_WC_BUSY__SHIFT 0x0000001d
+#define CP_STAT__MIU_WC_TRACK_FIFO_EMPTY__SHIFT 0x0000001e
+#define CP_STAT__CP_BUSY__SHIFT 0x0000001f
+
+// BIOS_0_SCRATCH
+#define BIOS_0_SCRATCH__BIOS_SCRATCH__SHIFT 0x00000000
+
+// BIOS_1_SCRATCH
+#define BIOS_1_SCRATCH__BIOS_SCRATCH__SHIFT 0x00000000
+
+// BIOS_2_SCRATCH
+#define BIOS_2_SCRATCH__BIOS_SCRATCH__SHIFT 0x00000000
+
+// BIOS_3_SCRATCH
+#define BIOS_3_SCRATCH__BIOS_SCRATCH__SHIFT 0x00000000
+
+// BIOS_4_SCRATCH
+#define BIOS_4_SCRATCH__BIOS_SCRATCH__SHIFT 0x00000000
+
+// BIOS_5_SCRATCH
+#define BIOS_5_SCRATCH__BIOS_SCRATCH__SHIFT 0x00000000
+
+// BIOS_6_SCRATCH
+#define BIOS_6_SCRATCH__BIOS_SCRATCH__SHIFT 0x00000000
+
+// BIOS_7_SCRATCH
+#define BIOS_7_SCRATCH__BIOS_SCRATCH__SHIFT 0x00000000
+
+// BIOS_8_SCRATCH
+#define BIOS_8_SCRATCH__BIOS_SCRATCH__SHIFT 0x00000000
+
+// BIOS_9_SCRATCH
+#define BIOS_9_SCRATCH__BIOS_SCRATCH__SHIFT 0x00000000
+
+// BIOS_10_SCRATCH
+#define BIOS_10_SCRATCH__BIOS_SCRATCH__SHIFT 0x00000000
+
+// BIOS_11_SCRATCH
+#define BIOS_11_SCRATCH__BIOS_SCRATCH__SHIFT 0x00000000
+
+// BIOS_12_SCRATCH
+#define BIOS_12_SCRATCH__BIOS_SCRATCH__SHIFT 0x00000000
+
+// BIOS_13_SCRATCH
+#define BIOS_13_SCRATCH__BIOS_SCRATCH__SHIFT 0x00000000
+
+// BIOS_14_SCRATCH
+#define BIOS_14_SCRATCH__BIOS_SCRATCH__SHIFT 0x00000000
+
+// BIOS_15_SCRATCH
+#define BIOS_15_SCRATCH__BIOS_SCRATCH__SHIFT 0x00000000
+
+// COHER_SIZE_PM4
+#define COHER_SIZE_PM4__SIZE__SHIFT 0x00000000
+
+// COHER_BASE_PM4
+#define COHER_BASE_PM4__BASE__SHIFT 0x00000000
+
+// COHER_STATUS_PM4
+#define COHER_STATUS_PM4__MATCHING_CONTEXTS__SHIFT 0x00000000
+#define COHER_STATUS_PM4__RB_COPY_DEST_BASE_ENA__SHIFT 0x00000008
+#define COHER_STATUS_PM4__DEST_BASE_0_ENA__SHIFT 0x00000009
+#define COHER_STATUS_PM4__DEST_BASE_1_ENA__SHIFT 0x0000000a
+#define COHER_STATUS_PM4__DEST_BASE_2_ENA__SHIFT 0x0000000b
+#define COHER_STATUS_PM4__DEST_BASE_3_ENA__SHIFT 0x0000000c
+#define COHER_STATUS_PM4__DEST_BASE_4_ENA__SHIFT 0x0000000d
+#define COHER_STATUS_PM4__DEST_BASE_5_ENA__SHIFT 0x0000000e
+#define COHER_STATUS_PM4__DEST_BASE_6_ENA__SHIFT 0x0000000f
+#define COHER_STATUS_PM4__DEST_BASE_7_ENA__SHIFT 0x00000010
+#define COHER_STATUS_PM4__RB_COLOR_INFO_ENA__SHIFT 0x00000011
+#define COHER_STATUS_PM4__TC_ACTION_ENA__SHIFT 0x00000019
+#define COHER_STATUS_PM4__STATUS__SHIFT 0x0000001f
+
+// COHER_SIZE_HOST
+#define COHER_SIZE_HOST__SIZE__SHIFT 0x00000000
+
+// COHER_BASE_HOST
+#define COHER_BASE_HOST__BASE__SHIFT 0x00000000
+
+// COHER_STATUS_HOST
+#define COHER_STATUS_HOST__MATCHING_CONTEXTS__SHIFT 0x00000000
+#define COHER_STATUS_HOST__RB_COPY_DEST_BASE_ENA__SHIFT 0x00000008
+#define COHER_STATUS_HOST__DEST_BASE_0_ENA__SHIFT 0x00000009
+#define COHER_STATUS_HOST__DEST_BASE_1_ENA__SHIFT 0x0000000a
+#define COHER_STATUS_HOST__DEST_BASE_2_ENA__SHIFT 0x0000000b
+#define COHER_STATUS_HOST__DEST_BASE_3_ENA__SHIFT 0x0000000c
+#define COHER_STATUS_HOST__DEST_BASE_4_ENA__SHIFT 0x0000000d
+#define COHER_STATUS_HOST__DEST_BASE_5_ENA__SHIFT 0x0000000e
+#define COHER_STATUS_HOST__DEST_BASE_6_ENA__SHIFT 0x0000000f
+#define COHER_STATUS_HOST__DEST_BASE_7_ENA__SHIFT 0x00000010
+#define COHER_STATUS_HOST__RB_COLOR_INFO_ENA__SHIFT 0x00000011
+#define COHER_STATUS_HOST__TC_ACTION_ENA__SHIFT 0x00000019
+#define COHER_STATUS_HOST__STATUS__SHIFT 0x0000001f
+
+// COHER_DEST_BASE_0
+#define COHER_DEST_BASE_0__DEST_BASE_0__SHIFT 0x0000000c
+
+// COHER_DEST_BASE_1
+#define COHER_DEST_BASE_1__DEST_BASE_1__SHIFT 0x0000000c
+
+// COHER_DEST_BASE_2
+#define COHER_DEST_BASE_2__DEST_BASE_2__SHIFT 0x0000000c
+
+// COHER_DEST_BASE_3
+#define COHER_DEST_BASE_3__DEST_BASE_3__SHIFT 0x0000000c
+
+// COHER_DEST_BASE_4
+#define COHER_DEST_BASE_4__DEST_BASE_4__SHIFT 0x0000000c
+
+// COHER_DEST_BASE_5
+#define COHER_DEST_BASE_5__DEST_BASE_5__SHIFT 0x0000000c
+
+// COHER_DEST_BASE_6
+#define COHER_DEST_BASE_6__DEST_BASE_6__SHIFT 0x0000000c
+
+// COHER_DEST_BASE_7
+#define COHER_DEST_BASE_7__DEST_BASE_7__SHIFT 0x0000000c
+
+// RB_SURFACE_INFO
+#define RB_SURFACE_INFO__SURFACE_PITCH__SHIFT 0x00000000
+#define RB_SURFACE_INFO__MSAA_SAMPLES__SHIFT 0x0000000e
+
+// RB_COLOR_INFO
+#define RB_COLOR_INFO__COLOR_FORMAT__SHIFT 0x00000000
+#define RB_COLOR_INFO__COLOR_ROUND_MODE__SHIFT 0x00000004
+#define RB_COLOR_INFO__COLOR_LINEAR__SHIFT 0x00000006
+#define RB_COLOR_INFO__COLOR_ENDIAN__SHIFT 0x00000007
+#define RB_COLOR_INFO__COLOR_SWAP__SHIFT 0x00000009
+#define RB_COLOR_INFO__COLOR_BASE__SHIFT 0x0000000c
+
+// RB_DEPTH_INFO
+#define RB_DEPTH_INFO__DEPTH_FORMAT__SHIFT 0x00000000
+#define RB_DEPTH_INFO__DEPTH_BASE__SHIFT 0x0000000c
+
+// RB_STENCILREFMASK
+#define RB_STENCILREFMASK__STENCILREF__SHIFT 0x00000000
+#define RB_STENCILREFMASK__STENCILMASK__SHIFT 0x00000008
+#define RB_STENCILREFMASK__STENCILWRITEMASK__SHIFT 0x00000010
+#define RB_STENCILREFMASK__RESERVED0__SHIFT 0x00000018
+#define RB_STENCILREFMASK__RESERVED1__SHIFT 0x00000019
+
+// RB_ALPHA_REF
+#define RB_ALPHA_REF__ALPHA_REF__SHIFT 0x00000000
+
+// RB_COLOR_MASK
+#define RB_COLOR_MASK__WRITE_RED__SHIFT 0x00000000
+#define RB_COLOR_MASK__WRITE_GREEN__SHIFT 0x00000001
+#define RB_COLOR_MASK__WRITE_BLUE__SHIFT 0x00000002
+#define RB_COLOR_MASK__WRITE_ALPHA__SHIFT 0x00000003
+#define RB_COLOR_MASK__RESERVED2__SHIFT 0x00000004
+#define RB_COLOR_MASK__RESERVED3__SHIFT 0x00000005
+
+// RB_BLEND_RED
+#define RB_BLEND_RED__BLEND_RED__SHIFT 0x00000000
+
+// RB_BLEND_GREEN
+#define RB_BLEND_GREEN__BLEND_GREEN__SHIFT 0x00000000
+
+// RB_BLEND_BLUE
+#define RB_BLEND_BLUE__BLEND_BLUE__SHIFT 0x00000000
+
+// RB_BLEND_ALPHA
+#define RB_BLEND_ALPHA__BLEND_ALPHA__SHIFT 0x00000000
+
+// RB_FOG_COLOR
+#define RB_FOG_COLOR__FOG_RED__SHIFT 0x00000000
+#define RB_FOG_COLOR__FOG_GREEN__SHIFT 0x00000008
+#define RB_FOG_COLOR__FOG_BLUE__SHIFT 0x00000010
+
+// RB_STENCILREFMASK_BF
+#define RB_STENCILREFMASK_BF__STENCILREF_BF__SHIFT 0x00000000
+#define RB_STENCILREFMASK_BF__STENCILMASK_BF__SHIFT 0x00000008
+#define RB_STENCILREFMASK_BF__STENCILWRITEMASK_BF__SHIFT 0x00000010
+#define RB_STENCILREFMASK_BF__RESERVED4__SHIFT 0x00000018
+#define RB_STENCILREFMASK_BF__RESERVED5__SHIFT 0x00000019
+
+// RB_DEPTHCONTROL
+#define RB_DEPTHCONTROL__STENCIL_ENABLE__SHIFT 0x00000000
+#define RB_DEPTHCONTROL__Z_ENABLE__SHIFT 0x00000001
+#define RB_DEPTHCONTROL__Z_WRITE_ENABLE__SHIFT 0x00000002
+#define RB_DEPTHCONTROL__EARLY_Z_ENABLE__SHIFT 0x00000003
+#define RB_DEPTHCONTROL__ZFUNC__SHIFT 0x00000004
+#define RB_DEPTHCONTROL__BACKFACE_ENABLE__SHIFT 0x00000007
+#define RB_DEPTHCONTROL__STENCILFUNC__SHIFT 0x00000008
+#define RB_DEPTHCONTROL__STENCILFAIL__SHIFT 0x0000000b
+#define RB_DEPTHCONTROL__STENCILZPASS__SHIFT 0x0000000e
+#define RB_DEPTHCONTROL__STENCILZFAIL__SHIFT 0x00000011
+#define RB_DEPTHCONTROL__STENCILFUNC_BF__SHIFT 0x00000014
+#define RB_DEPTHCONTROL__STENCILFAIL_BF__SHIFT 0x00000017
+#define RB_DEPTHCONTROL__STENCILZPASS_BF__SHIFT 0x0000001a
+#define RB_DEPTHCONTROL__STENCILZFAIL_BF__SHIFT 0x0000001d
+
+// RB_BLENDCONTROL
+#define RB_BLENDCONTROL__COLOR_SRCBLEND__SHIFT 0x00000000
+#define RB_BLENDCONTROL__COLOR_COMB_FCN__SHIFT 0x00000005
+#define RB_BLENDCONTROL__COLOR_DESTBLEND__SHIFT 0x00000008
+#define RB_BLENDCONTROL__ALPHA_SRCBLEND__SHIFT 0x00000010
+#define RB_BLENDCONTROL__ALPHA_COMB_FCN__SHIFT 0x00000015
+#define RB_BLENDCONTROL__ALPHA_DESTBLEND__SHIFT 0x00000018
+#define RB_BLENDCONTROL__BLEND_FORCE_ENABLE__SHIFT 0x0000001d
+#define RB_BLENDCONTROL__BLEND_FORCE__SHIFT 0x0000001e
+
+// RB_COLORCONTROL
+#define RB_COLORCONTROL__ALPHA_FUNC__SHIFT 0x00000000
+#define RB_COLORCONTROL__ALPHA_TEST_ENABLE__SHIFT 0x00000003
+#define RB_COLORCONTROL__ALPHA_TO_MASK_ENABLE__SHIFT 0x00000004
+#define RB_COLORCONTROL__BLEND_DISABLE__SHIFT 0x00000005
+#define RB_COLORCONTROL__FOG_ENABLE__SHIFT 0x00000006
+#define RB_COLORCONTROL__VS_EXPORTS_FOG__SHIFT 0x00000007
+#define RB_COLORCONTROL__ROP_CODE__SHIFT 0x00000008
+#define RB_COLORCONTROL__DITHER_MODE__SHIFT 0x0000000c
+#define RB_COLORCONTROL__DITHER_TYPE__SHIFT 0x0000000e
+#define RB_COLORCONTROL__PIXEL_FOG__SHIFT 0x00000010
+#define RB_COLORCONTROL__ALPHA_TO_MASK_OFFSET0__SHIFT 0x00000018
+#define RB_COLORCONTROL__ALPHA_TO_MASK_OFFSET1__SHIFT 0x0000001a
+#define RB_COLORCONTROL__ALPHA_TO_MASK_OFFSET2__SHIFT 0x0000001c
+#define RB_COLORCONTROL__ALPHA_TO_MASK_OFFSET3__SHIFT 0x0000001e
+
+// RB_MODECONTROL
+#define RB_MODECONTROL__EDRAM_MODE__SHIFT 0x00000000
+
+// RB_COLOR_DEST_MASK
+#define RB_COLOR_DEST_MASK__COLOR_DEST_MASK__SHIFT 0x00000000
+
+// RB_COPY_CONTROL
+#define RB_COPY_CONTROL__COPY_SAMPLE_SELECT__SHIFT 0x00000000
+#define RB_COPY_CONTROL__DEPTH_CLEAR_ENABLE__SHIFT 0x00000003
+#define RB_COPY_CONTROL__CLEAR_MASK__SHIFT 0x00000004
+
+// RB_COPY_DEST_BASE
+#define RB_COPY_DEST_BASE__COPY_DEST_BASE__SHIFT 0x0000000c
+
+// RB_COPY_DEST_PITCH
+#define RB_COPY_DEST_PITCH__COPY_DEST_PITCH__SHIFT 0x00000000
+
+// RB_COPY_DEST_INFO
+#define RB_COPY_DEST_INFO__COPY_DEST_ENDIAN__SHIFT 0x00000000
+#define RB_COPY_DEST_INFO__COPY_DEST_LINEAR__SHIFT 0x00000003
+#define RB_COPY_DEST_INFO__COPY_DEST_FORMAT__SHIFT 0x00000004
+#define RB_COPY_DEST_INFO__COPY_DEST_SWAP__SHIFT 0x00000008
+#define RB_COPY_DEST_INFO__COPY_DEST_DITHER_MODE__SHIFT 0x0000000a
+#define RB_COPY_DEST_INFO__COPY_DEST_DITHER_TYPE__SHIFT 0x0000000c
+#define RB_COPY_DEST_INFO__COPY_MASK_WRITE_RED__SHIFT 0x0000000e
+#define RB_COPY_DEST_INFO__COPY_MASK_WRITE_GREEN__SHIFT 0x0000000f
+#define RB_COPY_DEST_INFO__COPY_MASK_WRITE_BLUE__SHIFT 0x00000010
+#define RB_COPY_DEST_INFO__COPY_MASK_WRITE_ALPHA__SHIFT 0x00000011
+
+// RB_COPY_DEST_PIXEL_OFFSET
+#define RB_COPY_DEST_PIXEL_OFFSET__OFFSET_X__SHIFT 0x00000000
+#define RB_COPY_DEST_PIXEL_OFFSET__OFFSET_Y__SHIFT 0x0000000d
+
+// RB_DEPTH_CLEAR
+#define RB_DEPTH_CLEAR__DEPTH_CLEAR__SHIFT 0x00000000
+
+// RB_SAMPLE_COUNT_CTL
+#define RB_SAMPLE_COUNT_CTL__RESET_SAMPLE_COUNT__SHIFT 0x00000000
+#define RB_SAMPLE_COUNT_CTL__COPY_SAMPLE_COUNT__SHIFT 0x00000001
+
+// RB_SAMPLE_COUNT_ADDR
+#define RB_SAMPLE_COUNT_ADDR__SAMPLE_COUNT_ADDR__SHIFT 0x00000000
+
+// RB_BC_CONTROL
+#define RB_BC_CONTROL__ACCUM_LINEAR_MODE_ENABLE__SHIFT 0x00000000
+#define RB_BC_CONTROL__ACCUM_TIMEOUT_SELECT__SHIFT 0x00000001
+#define RB_BC_CONTROL__DISABLE_EDRAM_CAM__SHIFT 0x00000003
+#define RB_BC_CONTROL__DISABLE_EZ_FAST_CONTEXT_SWITCH__SHIFT 0x00000004
+#define RB_BC_CONTROL__DISABLE_EZ_NULL_ZCMD_DROP__SHIFT 0x00000005
+#define RB_BC_CONTROL__DISABLE_LZ_NULL_ZCMD_DROP__SHIFT 0x00000006
+#define RB_BC_CONTROL__ENABLE_AZ_THROTTLE__SHIFT 0x00000007
+#define RB_BC_CONTROL__AZ_THROTTLE_COUNT__SHIFT 0x00000008
+#define RB_BC_CONTROL__ENABLE_CRC_UPDATE__SHIFT 0x0000000e
+#define RB_BC_CONTROL__CRC_MODE__SHIFT 0x0000000f
+#define RB_BC_CONTROL__DISABLE_SAMPLE_COUNTERS__SHIFT 0x00000010
+#define RB_BC_CONTROL__DISABLE_ACCUM__SHIFT 0x00000011
+#define RB_BC_CONTROL__ACCUM_ALLOC_MASK__SHIFT 0x00000012
+#define RB_BC_CONTROL__LINEAR_PERFORMANCE_ENABLE__SHIFT 0x00000016
+#define RB_BC_CONTROL__ACCUM_DATA_FIFO_LIMIT__SHIFT 0x00000017
+#define RB_BC_CONTROL__MEM_EXPORT_TIMEOUT_SELECT__SHIFT 0x0000001b
+#define RB_BC_CONTROL__MEM_EXPORT_LINEAR_MODE_ENABLE__SHIFT 0x0000001d
+#define RB_BC_CONTROL__CRC_SYSTEM__SHIFT 0x0000001e
+#define RB_BC_CONTROL__RESERVED6__SHIFT 0x0000001f
+
+// RB_EDRAM_INFO
+#define RB_EDRAM_INFO__EDRAM_SIZE__SHIFT 0x00000000
+#define RB_EDRAM_INFO__EDRAM_MAPPING_MODE__SHIFT 0x00000004
+#define RB_EDRAM_INFO__EDRAM_RANGE__SHIFT 0x0000000e
+
+// RB_CRC_RD_PORT
+#define RB_CRC_RD_PORT__CRC_DATA__SHIFT 0x00000000
+
+// RB_CRC_CONTROL
+#define RB_CRC_CONTROL__CRC_RD_ADVANCE__SHIFT 0x00000000
+
+// RB_CRC_MASK
+#define RB_CRC_MASK__CRC_MASK__SHIFT 0x00000000
+
+// RB_PERFCOUNTER0_SELECT
+#define RB_PERFCOUNTER0_SELECT__PERF_SEL__SHIFT 0x00000000
+
+// RB_PERFCOUNTER0_LOW
+#define RB_PERFCOUNTER0_LOW__PERF_COUNT__SHIFT 0x00000000
+
+// RB_PERFCOUNTER0_HI
+#define RB_PERFCOUNTER0_HI__PERF_COUNT__SHIFT 0x00000000
+
+// RB_TOTAL_SAMPLES
+#define RB_TOTAL_SAMPLES__TOTAL_SAMPLES__SHIFT 0x00000000
+
+// RB_ZPASS_SAMPLES
+#define RB_ZPASS_SAMPLES__ZPASS_SAMPLES__SHIFT 0x00000000
+
+// RB_ZFAIL_SAMPLES
+#define RB_ZFAIL_SAMPLES__ZFAIL_SAMPLES__SHIFT 0x00000000
+
+// RB_SFAIL_SAMPLES
+#define RB_SFAIL_SAMPLES__SFAIL_SAMPLES__SHIFT 0x00000000
+
+// RB_DEBUG_0
+#define RB_DEBUG_0__RDREQ_CTL_Z1_PRE_FULL__SHIFT 0x00000000
+#define RB_DEBUG_0__RDREQ_CTL_Z0_PRE_FULL__SHIFT 0x00000001
+#define RB_DEBUG_0__RDREQ_CTL_C1_PRE_FULL__SHIFT 0x00000002
+#define RB_DEBUG_0__RDREQ_CTL_C0_PRE_FULL__SHIFT 0x00000003
+#define RB_DEBUG_0__RDREQ_E1_ORDERING_FULL__SHIFT 0x00000004
+#define RB_DEBUG_0__RDREQ_E0_ORDERING_FULL__SHIFT 0x00000005
+#define RB_DEBUG_0__RDREQ_Z1_FULL__SHIFT 0x00000006
+#define RB_DEBUG_0__RDREQ_Z0_FULL__SHIFT 0x00000007
+#define RB_DEBUG_0__RDREQ_C1_FULL__SHIFT 0x00000008
+#define RB_DEBUG_0__RDREQ_C0_FULL__SHIFT 0x00000009
+#define RB_DEBUG_0__WRREQ_E1_MACRO_HI_FULL__SHIFT 0x0000000a
+#define RB_DEBUG_0__WRREQ_E1_MACRO_LO_FULL__SHIFT 0x0000000b
+#define RB_DEBUG_0__WRREQ_E0_MACRO_HI_FULL__SHIFT 0x0000000c
+#define RB_DEBUG_0__WRREQ_E0_MACRO_LO_FULL__SHIFT 0x0000000d
+#define RB_DEBUG_0__WRREQ_C_WE_HI_FULL__SHIFT 0x0000000e
+#define RB_DEBUG_0__WRREQ_C_WE_LO_FULL__SHIFT 0x0000000f
+#define RB_DEBUG_0__WRREQ_Z1_FULL__SHIFT 0x00000010
+#define RB_DEBUG_0__WRREQ_Z0_FULL__SHIFT 0x00000011
+#define RB_DEBUG_0__WRREQ_C1_FULL__SHIFT 0x00000012
+#define RB_DEBUG_0__WRREQ_C0_FULL__SHIFT 0x00000013
+#define RB_DEBUG_0__CMDFIFO_Z1_HOLD_FULL__SHIFT 0x00000014
+#define RB_DEBUG_0__CMDFIFO_Z0_HOLD_FULL__SHIFT 0x00000015
+#define RB_DEBUG_0__CMDFIFO_C1_HOLD_FULL__SHIFT 0x00000016
+#define RB_DEBUG_0__CMDFIFO_C0_HOLD_FULL__SHIFT 0x00000017
+#define RB_DEBUG_0__CMDFIFO_Z_ORDERING_FULL__SHIFT 0x00000018
+#define RB_DEBUG_0__CMDFIFO_C_ORDERING_FULL__SHIFT 0x00000019
+#define RB_DEBUG_0__C_SX_LAT_FULL__SHIFT 0x0000001a
+#define RB_DEBUG_0__C_SX_CMD_FULL__SHIFT 0x0000001b
+#define RB_DEBUG_0__C_EZ_TILE_FULL__SHIFT 0x0000001c
+#define RB_DEBUG_0__C_REQ_FULL__SHIFT 0x0000001d
+#define RB_DEBUG_0__C_MASK_FULL__SHIFT 0x0000001e
+#define RB_DEBUG_0__EZ_INFSAMP_FULL__SHIFT 0x0000001f
+
+// RB_DEBUG_1
+#define RB_DEBUG_1__RDREQ_Z1_CMD_EMPTY__SHIFT 0x00000000
+#define RB_DEBUG_1__RDREQ_Z0_CMD_EMPTY__SHIFT 0x00000001
+#define RB_DEBUG_1__RDREQ_C1_CMD_EMPTY__SHIFT 0x00000002
+#define RB_DEBUG_1__RDREQ_C0_CMD_EMPTY__SHIFT 0x00000003
+#define RB_DEBUG_1__RDREQ_E1_ORDERING_EMPTY__SHIFT 0x00000004
+#define RB_DEBUG_1__RDREQ_E0_ORDERING_EMPTY__SHIFT 0x00000005
+#define RB_DEBUG_1__RDREQ_Z1_EMPTY__SHIFT 0x00000006
+#define RB_DEBUG_1__RDREQ_Z0_EMPTY__SHIFT 0x00000007
+#define RB_DEBUG_1__RDREQ_C1_EMPTY__SHIFT 0x00000008
+#define RB_DEBUG_1__RDREQ_C0_EMPTY__SHIFT 0x00000009
+#define RB_DEBUG_1__WRREQ_E1_MACRO_HI_EMPTY__SHIFT 0x0000000a
+#define RB_DEBUG_1__WRREQ_E1_MACRO_LO_EMPTY__SHIFT 0x0000000b
+#define RB_DEBUG_1__WRREQ_E0_MACRO_HI_EMPTY__SHIFT 0x0000000c
+#define RB_DEBUG_1__WRREQ_E0_MACRO_LO_EMPTY__SHIFT 0x0000000d
+#define RB_DEBUG_1__WRREQ_C_WE_HI_EMPTY__SHIFT 0x0000000e
+#define RB_DEBUG_1__WRREQ_C_WE_LO_EMPTY__SHIFT 0x0000000f
+#define RB_DEBUG_1__WRREQ_Z1_EMPTY__SHIFT 0x00000010
+#define RB_DEBUG_1__WRREQ_Z0_EMPTY__SHIFT 0x00000011
+#define RB_DEBUG_1__WRREQ_C1_PRE_EMPTY__SHIFT 0x00000012
+#define RB_DEBUG_1__WRREQ_C0_PRE_EMPTY__SHIFT 0x00000013
+#define RB_DEBUG_1__CMDFIFO_Z1_HOLD_EMPTY__SHIFT 0x00000014
+#define RB_DEBUG_1__CMDFIFO_Z0_HOLD_EMPTY__SHIFT 0x00000015
+#define RB_DEBUG_1__CMDFIFO_C1_HOLD_EMPTY__SHIFT 0x00000016
+#define RB_DEBUG_1__CMDFIFO_C0_HOLD_EMPTY__SHIFT 0x00000017
+#define RB_DEBUG_1__CMDFIFO_Z_ORDERING_EMPTY__SHIFT 0x00000018
+#define RB_DEBUG_1__CMDFIFO_C_ORDERING_EMPTY__SHIFT 0x00000019
+#define RB_DEBUG_1__C_SX_LAT_EMPTY__SHIFT 0x0000001a
+#define RB_DEBUG_1__C_SX_CMD_EMPTY__SHIFT 0x0000001b
+#define RB_DEBUG_1__C_EZ_TILE_EMPTY__SHIFT 0x0000001c
+#define RB_DEBUG_1__C_REQ_EMPTY__SHIFT 0x0000001d
+#define RB_DEBUG_1__C_MASK_EMPTY__SHIFT 0x0000001e
+#define RB_DEBUG_1__EZ_INFSAMP_EMPTY__SHIFT 0x0000001f
+
+// RB_DEBUG_2
+#define RB_DEBUG_2__TILE_FIFO_COUNT__SHIFT 0x00000000
+#define RB_DEBUG_2__SX_LAT_FIFO_COUNT__SHIFT 0x00000004
+#define RB_DEBUG_2__MEM_EXPORT_FLAG__SHIFT 0x0000000b
+#define RB_DEBUG_2__SYSMEM_BLEND_FLAG__SHIFT 0x0000000c
+#define RB_DEBUG_2__CURRENT_TILE_EVENT__SHIFT 0x0000000d
+#define RB_DEBUG_2__EZ_INFTILE_FULL__SHIFT 0x0000000e
+#define RB_DEBUG_2__EZ_MASK_LOWER_FULL__SHIFT 0x0000000f
+#define RB_DEBUG_2__EZ_MASK_UPPER_FULL__SHIFT 0x00000010
+#define RB_DEBUG_2__Z0_MASK_FULL__SHIFT 0x00000011
+#define RB_DEBUG_2__Z1_MASK_FULL__SHIFT 0x00000012
+#define RB_DEBUG_2__Z0_REQ_FULL__SHIFT 0x00000013
+#define RB_DEBUG_2__Z1_REQ_FULL__SHIFT 0x00000014
+#define RB_DEBUG_2__Z_SAMP_FULL__SHIFT 0x00000015
+#define RB_DEBUG_2__Z_TILE_FULL__SHIFT 0x00000016
+#define RB_DEBUG_2__EZ_INFTILE_EMPTY__SHIFT 0x00000017
+#define RB_DEBUG_2__EZ_MASK_LOWER_EMPTY__SHIFT 0x00000018
+#define RB_DEBUG_2__EZ_MASK_UPPER_EMPTY__SHIFT 0x00000019
+#define RB_DEBUG_2__Z0_MASK_EMPTY__SHIFT 0x0000001a
+#define RB_DEBUG_2__Z1_MASK_EMPTY__SHIFT 0x0000001b
+#define RB_DEBUG_2__Z0_REQ_EMPTY__SHIFT 0x0000001c
+#define RB_DEBUG_2__Z1_REQ_EMPTY__SHIFT 0x0000001d
+#define RB_DEBUG_2__Z_SAMP_EMPTY__SHIFT 0x0000001e
+#define RB_DEBUG_2__Z_TILE_EMPTY__SHIFT 0x0000001f
+
+// RB_DEBUG_3
+#define RB_DEBUG_3__ACCUM_VALID__SHIFT 0x00000000
+#define RB_DEBUG_3__ACCUM_FLUSHING__SHIFT 0x00000004
+#define RB_DEBUG_3__ACCUM_WRITE_CLEAN_COUNT__SHIFT 0x00000008
+#define RB_DEBUG_3__ACCUM_INPUT_REG_VALID__SHIFT 0x0000000e
+#define RB_DEBUG_3__ACCUM_DATA_FIFO_CNT__SHIFT 0x0000000f
+#define RB_DEBUG_3__SHD_FULL__SHIFT 0x00000013
+#define RB_DEBUG_3__SHD_EMPTY__SHIFT 0x00000014
+#define RB_DEBUG_3__EZ_RETURN_LOWER_EMPTY__SHIFT 0x00000015
+#define RB_DEBUG_3__EZ_RETURN_UPPER_EMPTY__SHIFT 0x00000016
+#define RB_DEBUG_3__EZ_RETURN_LOWER_FULL__SHIFT 0x00000017
+#define RB_DEBUG_3__EZ_RETURN_UPPER_FULL__SHIFT 0x00000018
+#define RB_DEBUG_3__ZEXP_LOWER_EMPTY__SHIFT 0x00000019
+#define RB_DEBUG_3__ZEXP_UPPER_EMPTY__SHIFT 0x0000001a
+#define RB_DEBUG_3__ZEXP_LOWER_FULL__SHIFT 0x0000001b
+#define RB_DEBUG_3__ZEXP_UPPER_FULL__SHIFT 0x0000001c
+
+// RB_DEBUG_4
+#define RB_DEBUG_4__GMEM_RD_ACCESS_FLAG__SHIFT 0x00000000
+#define RB_DEBUG_4__GMEM_WR_ACCESS_FLAG__SHIFT 0x00000001
+#define RB_DEBUG_4__SYSMEM_RD_ACCESS_FLAG__SHIFT 0x00000002
+#define RB_DEBUG_4__SYSMEM_WR_ACCESS_FLAG__SHIFT 0x00000003
+#define RB_DEBUG_4__ACCUM_DATA_FIFO_EMPTY__SHIFT 0x00000004
+#define RB_DEBUG_4__ACCUM_ORDER_FIFO_EMPTY__SHIFT 0x00000005
+#define RB_DEBUG_4__ACCUM_DATA_FIFO_FULL__SHIFT 0x00000006
+#define RB_DEBUG_4__ACCUM_ORDER_FIFO_FULL__SHIFT 0x00000007
+#define RB_DEBUG_4__SYSMEM_WRITE_COUNT_OVERFLOW__SHIFT 0x00000008
+#define RB_DEBUG_4__CONTEXT_COUNT_DEBUG__SHIFT 0x00000009
+
+// RB_FLAG_CONTROL
+#define RB_FLAG_CONTROL__DEBUG_FLAG_CLEAR__SHIFT 0x00000000
+
+// RB_BC_SPARES
+#define RB_BC_SPARES__RESERVED__SHIFT 0x00000000
+
+// BC_DUMMY_CRAYRB_ENUMS
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_DEPTH_FORMAT__SHIFT 0x00000000
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_SURFACE_SWAP__SHIFT 0x00000006
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_DEPTH_ARRAY__SHIFT 0x00000007
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_ARRAY__SHIFT 0x00000009
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_COLOR_FORMAT__SHIFT 0x0000000b
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_SURFACE_NUMBER__SHIFT 0x00000011
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_SURFACE_FORMAT__SHIFT 0x00000014
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_SURFACE_TILING__SHIFT 0x0000001a
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_CRAYRB_SURFACE_ARRAY__SHIFT 0x0000001b
+#define BC_DUMMY_CRAYRB_ENUMS__DUMMY_RB_COPY_DEST_INFO_NUMBER__SHIFT 0x0000001d
+
+// BC_DUMMY_CRAYRB_MOREENUMS
+#define BC_DUMMY_CRAYRB_MOREENUMS__DUMMY_CRAYRB_COLORARRAYX__SHIFT 0x00000000
+
+#endif
diff --git a/drivers/mxc/amd-gpu/include/reg/yamato/22/yamato_struct.h b/drivers/mxc/amd-gpu/include/reg/yamato/22/yamato_struct.h
new file mode 100644
index 000000000000..21de35591e7d
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/reg/yamato/22/yamato_struct.h
@@ -0,0 +1,52433 @@
+/* Copyright (c) 2002,2007-2009, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#if !defined (_CP_FIDDLE_H)
+#define _CP_FIDDLE_H
+
+
+/*******************************************************
+ * Enums
+ *******************************************************/
+
+
+/*******************************************************
+ * Values
+ *******************************************************/
+
+
+/*******************************************************
+ * Structures
+ *******************************************************/
+
+/*
+ * CP_RB_BASE struct
+ */
+
+#define CP_RB_BASE_RB_BASE_SIZE 27
+
+#define CP_RB_BASE_RB_BASE_SHIFT 5
+
+#define CP_RB_BASE_RB_BASE_MASK 0xffffffe0
+
+#define CP_RB_BASE_MASK \
+ (CP_RB_BASE_RB_BASE_MASK)
+
+#define CP_RB_BASE(rb_base) \
+ ((rb_base << CP_RB_BASE_RB_BASE_SHIFT))
+
+#define CP_RB_BASE_GET_RB_BASE(cp_rb_base) \
+ ((cp_rb_base & CP_RB_BASE_RB_BASE_MASK) >> CP_RB_BASE_RB_BASE_SHIFT)
+
+#define CP_RB_BASE_SET_RB_BASE(cp_rb_base_reg, rb_base) \
+ cp_rb_base_reg = (cp_rb_base_reg & ~CP_RB_BASE_RB_BASE_MASK) | (rb_base << CP_RB_BASE_RB_BASE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_rb_base_t {
+ unsigned int : 5;
+ unsigned int rb_base : CP_RB_BASE_RB_BASE_SIZE;
+ } cp_rb_base_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_rb_base_t {
+ unsigned int rb_base : CP_RB_BASE_RB_BASE_SIZE;
+ unsigned int : 5;
+ } cp_rb_base_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_rb_base_t f;
+} cp_rb_base_u;
+
+
+/*
+ * CP_RB_CNTL struct
+ */
+
+#define CP_RB_CNTL_RB_BUFSZ_SIZE 6
+#define CP_RB_CNTL_RB_BLKSZ_SIZE 6
+#define CP_RB_CNTL_BUF_SWAP_SIZE 2
+#define CP_RB_CNTL_RB_POLL_EN_SIZE 1
+#define CP_RB_CNTL_RB_NO_UPDATE_SIZE 1
+#define CP_RB_CNTL_RB_RPTR_WR_ENA_SIZE 1
+
+#define CP_RB_CNTL_RB_BUFSZ_SHIFT 0
+#define CP_RB_CNTL_RB_BLKSZ_SHIFT 8
+#define CP_RB_CNTL_BUF_SWAP_SHIFT 16
+#define CP_RB_CNTL_RB_POLL_EN_SHIFT 20
+#define CP_RB_CNTL_RB_NO_UPDATE_SHIFT 27
+#define CP_RB_CNTL_RB_RPTR_WR_ENA_SHIFT 31
+
+#define CP_RB_CNTL_RB_BUFSZ_MASK 0x0000003f
+#define CP_RB_CNTL_RB_BLKSZ_MASK 0x00003f00
+#define CP_RB_CNTL_BUF_SWAP_MASK 0x00030000
+#define CP_RB_CNTL_RB_POLL_EN_MASK 0x00100000
+#define CP_RB_CNTL_RB_NO_UPDATE_MASK 0x08000000
+#define CP_RB_CNTL_RB_RPTR_WR_ENA_MASK 0x80000000
+
+#define CP_RB_CNTL_MASK \
+ (CP_RB_CNTL_RB_BUFSZ_MASK | \
+ CP_RB_CNTL_RB_BLKSZ_MASK | \
+ CP_RB_CNTL_BUF_SWAP_MASK | \
+ CP_RB_CNTL_RB_POLL_EN_MASK | \
+ CP_RB_CNTL_RB_NO_UPDATE_MASK | \
+ CP_RB_CNTL_RB_RPTR_WR_ENA_MASK)
+
+#define CP_RB_CNTL(rb_bufsz, rb_blksz, buf_swap, rb_poll_en, rb_no_update, rb_rptr_wr_ena) \
+ ((rb_bufsz << CP_RB_CNTL_RB_BUFSZ_SHIFT) | \
+ (rb_blksz << CP_RB_CNTL_RB_BLKSZ_SHIFT) | \
+ (buf_swap << CP_RB_CNTL_BUF_SWAP_SHIFT) | \
+ (rb_poll_en << CP_RB_CNTL_RB_POLL_EN_SHIFT) | \
+ (rb_no_update << CP_RB_CNTL_RB_NO_UPDATE_SHIFT) | \
+ (rb_rptr_wr_ena << CP_RB_CNTL_RB_RPTR_WR_ENA_SHIFT))
+
+#define CP_RB_CNTL_GET_RB_BUFSZ(cp_rb_cntl) \
+ ((cp_rb_cntl & CP_RB_CNTL_RB_BUFSZ_MASK) >> CP_RB_CNTL_RB_BUFSZ_SHIFT)
+#define CP_RB_CNTL_GET_RB_BLKSZ(cp_rb_cntl) \
+ ((cp_rb_cntl & CP_RB_CNTL_RB_BLKSZ_MASK) >> CP_RB_CNTL_RB_BLKSZ_SHIFT)
+#define CP_RB_CNTL_GET_BUF_SWAP(cp_rb_cntl) \
+ ((cp_rb_cntl & CP_RB_CNTL_BUF_SWAP_MASK) >> CP_RB_CNTL_BUF_SWAP_SHIFT)
+#define CP_RB_CNTL_GET_RB_POLL_EN(cp_rb_cntl) \
+ ((cp_rb_cntl & CP_RB_CNTL_RB_POLL_EN_MASK) >> CP_RB_CNTL_RB_POLL_EN_SHIFT)
+#define CP_RB_CNTL_GET_RB_NO_UPDATE(cp_rb_cntl) \
+ ((cp_rb_cntl & CP_RB_CNTL_RB_NO_UPDATE_MASK) >> CP_RB_CNTL_RB_NO_UPDATE_SHIFT)
+#define CP_RB_CNTL_GET_RB_RPTR_WR_ENA(cp_rb_cntl) \
+ ((cp_rb_cntl & CP_RB_CNTL_RB_RPTR_WR_ENA_MASK) >> CP_RB_CNTL_RB_RPTR_WR_ENA_SHIFT)
+
+#define CP_RB_CNTL_SET_RB_BUFSZ(cp_rb_cntl_reg, rb_bufsz) \
+ cp_rb_cntl_reg = (cp_rb_cntl_reg & ~CP_RB_CNTL_RB_BUFSZ_MASK) | (rb_bufsz << CP_RB_CNTL_RB_BUFSZ_SHIFT)
+#define CP_RB_CNTL_SET_RB_BLKSZ(cp_rb_cntl_reg, rb_blksz) \
+ cp_rb_cntl_reg = (cp_rb_cntl_reg & ~CP_RB_CNTL_RB_BLKSZ_MASK) | (rb_blksz << CP_RB_CNTL_RB_BLKSZ_SHIFT)
+#define CP_RB_CNTL_SET_BUF_SWAP(cp_rb_cntl_reg, buf_swap) \
+ cp_rb_cntl_reg = (cp_rb_cntl_reg & ~CP_RB_CNTL_BUF_SWAP_MASK) | (buf_swap << CP_RB_CNTL_BUF_SWAP_SHIFT)
+#define CP_RB_CNTL_SET_RB_POLL_EN(cp_rb_cntl_reg, rb_poll_en) \
+ cp_rb_cntl_reg = (cp_rb_cntl_reg & ~CP_RB_CNTL_RB_POLL_EN_MASK) | (rb_poll_en << CP_RB_CNTL_RB_POLL_EN_SHIFT)
+#define CP_RB_CNTL_SET_RB_NO_UPDATE(cp_rb_cntl_reg, rb_no_update) \
+ cp_rb_cntl_reg = (cp_rb_cntl_reg & ~CP_RB_CNTL_RB_NO_UPDATE_MASK) | (rb_no_update << CP_RB_CNTL_RB_NO_UPDATE_SHIFT)
+#define CP_RB_CNTL_SET_RB_RPTR_WR_ENA(cp_rb_cntl_reg, rb_rptr_wr_ena) \
+ cp_rb_cntl_reg = (cp_rb_cntl_reg & ~CP_RB_CNTL_RB_RPTR_WR_ENA_MASK) | (rb_rptr_wr_ena << CP_RB_CNTL_RB_RPTR_WR_ENA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_rb_cntl_t {
+ unsigned int rb_bufsz : CP_RB_CNTL_RB_BUFSZ_SIZE;
+ unsigned int : 2;
+ unsigned int rb_blksz : CP_RB_CNTL_RB_BLKSZ_SIZE;
+ unsigned int : 2;
+ unsigned int buf_swap : CP_RB_CNTL_BUF_SWAP_SIZE;
+ unsigned int : 2;
+ unsigned int rb_poll_en : CP_RB_CNTL_RB_POLL_EN_SIZE;
+ unsigned int : 6;
+ unsigned int rb_no_update : CP_RB_CNTL_RB_NO_UPDATE_SIZE;
+ unsigned int : 3;
+ unsigned int rb_rptr_wr_ena : CP_RB_CNTL_RB_RPTR_WR_ENA_SIZE;
+ } cp_rb_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_rb_cntl_t {
+ unsigned int rb_rptr_wr_ena : CP_RB_CNTL_RB_RPTR_WR_ENA_SIZE;
+ unsigned int : 3;
+ unsigned int rb_no_update : CP_RB_CNTL_RB_NO_UPDATE_SIZE;
+ unsigned int : 6;
+ unsigned int rb_poll_en : CP_RB_CNTL_RB_POLL_EN_SIZE;
+ unsigned int : 2;
+ unsigned int buf_swap : CP_RB_CNTL_BUF_SWAP_SIZE;
+ unsigned int : 2;
+ unsigned int rb_blksz : CP_RB_CNTL_RB_BLKSZ_SIZE;
+ unsigned int : 2;
+ unsigned int rb_bufsz : CP_RB_CNTL_RB_BUFSZ_SIZE;
+ } cp_rb_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_rb_cntl_t f;
+} cp_rb_cntl_u;
+
+
+/*
+ * CP_RB_RPTR_ADDR struct
+ */
+
+#define CP_RB_RPTR_ADDR_RB_RPTR_SWAP_SIZE 2
+#define CP_RB_RPTR_ADDR_RB_RPTR_ADDR_SIZE 30
+
+#define CP_RB_RPTR_ADDR_RB_RPTR_SWAP_SHIFT 0
+#define CP_RB_RPTR_ADDR_RB_RPTR_ADDR_SHIFT 2
+
+#define CP_RB_RPTR_ADDR_RB_RPTR_SWAP_MASK 0x00000003
+#define CP_RB_RPTR_ADDR_RB_RPTR_ADDR_MASK 0xfffffffc
+
+#define CP_RB_RPTR_ADDR_MASK \
+ (CP_RB_RPTR_ADDR_RB_RPTR_SWAP_MASK | \
+ CP_RB_RPTR_ADDR_RB_RPTR_ADDR_MASK)
+
+#define CP_RB_RPTR_ADDR(rb_rptr_swap, rb_rptr_addr) \
+ ((rb_rptr_swap << CP_RB_RPTR_ADDR_RB_RPTR_SWAP_SHIFT) | \
+ (rb_rptr_addr << CP_RB_RPTR_ADDR_RB_RPTR_ADDR_SHIFT))
+
+#define CP_RB_RPTR_ADDR_GET_RB_RPTR_SWAP(cp_rb_rptr_addr) \
+ ((cp_rb_rptr_addr & CP_RB_RPTR_ADDR_RB_RPTR_SWAP_MASK) >> CP_RB_RPTR_ADDR_RB_RPTR_SWAP_SHIFT)
+#define CP_RB_RPTR_ADDR_GET_RB_RPTR_ADDR(cp_rb_rptr_addr) \
+ ((cp_rb_rptr_addr & CP_RB_RPTR_ADDR_RB_RPTR_ADDR_MASK) >> CP_RB_RPTR_ADDR_RB_RPTR_ADDR_SHIFT)
+
+#define CP_RB_RPTR_ADDR_SET_RB_RPTR_SWAP(cp_rb_rptr_addr_reg, rb_rptr_swap) \
+ cp_rb_rptr_addr_reg = (cp_rb_rptr_addr_reg & ~CP_RB_RPTR_ADDR_RB_RPTR_SWAP_MASK) | (rb_rptr_swap << CP_RB_RPTR_ADDR_RB_RPTR_SWAP_SHIFT)
+#define CP_RB_RPTR_ADDR_SET_RB_RPTR_ADDR(cp_rb_rptr_addr_reg, rb_rptr_addr) \
+ cp_rb_rptr_addr_reg = (cp_rb_rptr_addr_reg & ~CP_RB_RPTR_ADDR_RB_RPTR_ADDR_MASK) | (rb_rptr_addr << CP_RB_RPTR_ADDR_RB_RPTR_ADDR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_rb_rptr_addr_t {
+ unsigned int rb_rptr_swap : CP_RB_RPTR_ADDR_RB_RPTR_SWAP_SIZE;
+ unsigned int rb_rptr_addr : CP_RB_RPTR_ADDR_RB_RPTR_ADDR_SIZE;
+ } cp_rb_rptr_addr_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_rb_rptr_addr_t {
+ unsigned int rb_rptr_addr : CP_RB_RPTR_ADDR_RB_RPTR_ADDR_SIZE;
+ unsigned int rb_rptr_swap : CP_RB_RPTR_ADDR_RB_RPTR_SWAP_SIZE;
+ } cp_rb_rptr_addr_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_rb_rptr_addr_t f;
+} cp_rb_rptr_addr_u;
+
+
+/*
+ * CP_RB_RPTR struct
+ */
+
+#define CP_RB_RPTR_RB_RPTR_SIZE 20
+
+#define CP_RB_RPTR_RB_RPTR_SHIFT 0
+
+#define CP_RB_RPTR_RB_RPTR_MASK 0x000fffff
+
+#define CP_RB_RPTR_MASK \
+ (CP_RB_RPTR_RB_RPTR_MASK)
+
+#define CP_RB_RPTR(rb_rptr) \
+ ((rb_rptr << CP_RB_RPTR_RB_RPTR_SHIFT))
+
+#define CP_RB_RPTR_GET_RB_RPTR(cp_rb_rptr) \
+ ((cp_rb_rptr & CP_RB_RPTR_RB_RPTR_MASK) >> CP_RB_RPTR_RB_RPTR_SHIFT)
+
+#define CP_RB_RPTR_SET_RB_RPTR(cp_rb_rptr_reg, rb_rptr) \
+ cp_rb_rptr_reg = (cp_rb_rptr_reg & ~CP_RB_RPTR_RB_RPTR_MASK) | (rb_rptr << CP_RB_RPTR_RB_RPTR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_rb_rptr_t {
+ unsigned int rb_rptr : CP_RB_RPTR_RB_RPTR_SIZE;
+ unsigned int : 12;
+ } cp_rb_rptr_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_rb_rptr_t {
+ unsigned int : 12;
+ unsigned int rb_rptr : CP_RB_RPTR_RB_RPTR_SIZE;
+ } cp_rb_rptr_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_rb_rptr_t f;
+} cp_rb_rptr_u;
+
+
+/*
+ * CP_RB_RPTR_WR struct
+ */
+
+#define CP_RB_RPTR_WR_RB_RPTR_WR_SIZE 20
+
+#define CP_RB_RPTR_WR_RB_RPTR_WR_SHIFT 0
+
+#define CP_RB_RPTR_WR_RB_RPTR_WR_MASK 0x000fffff
+
+#define CP_RB_RPTR_WR_MASK \
+ (CP_RB_RPTR_WR_RB_RPTR_WR_MASK)
+
+#define CP_RB_RPTR_WR(rb_rptr_wr) \
+ ((rb_rptr_wr << CP_RB_RPTR_WR_RB_RPTR_WR_SHIFT))
+
+#define CP_RB_RPTR_WR_GET_RB_RPTR_WR(cp_rb_rptr_wr) \
+ ((cp_rb_rptr_wr & CP_RB_RPTR_WR_RB_RPTR_WR_MASK) >> CP_RB_RPTR_WR_RB_RPTR_WR_SHIFT)
+
+#define CP_RB_RPTR_WR_SET_RB_RPTR_WR(cp_rb_rptr_wr_reg, rb_rptr_wr) \
+ cp_rb_rptr_wr_reg = (cp_rb_rptr_wr_reg & ~CP_RB_RPTR_WR_RB_RPTR_WR_MASK) | (rb_rptr_wr << CP_RB_RPTR_WR_RB_RPTR_WR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_rb_rptr_wr_t {
+ unsigned int rb_rptr_wr : CP_RB_RPTR_WR_RB_RPTR_WR_SIZE;
+ unsigned int : 12;
+ } cp_rb_rptr_wr_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_rb_rptr_wr_t {
+ unsigned int : 12;
+ unsigned int rb_rptr_wr : CP_RB_RPTR_WR_RB_RPTR_WR_SIZE;
+ } cp_rb_rptr_wr_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_rb_rptr_wr_t f;
+} cp_rb_rptr_wr_u;
+
+
+/*
+ * CP_RB_WPTR struct
+ */
+
+#define CP_RB_WPTR_RB_WPTR_SIZE 20
+
+#define CP_RB_WPTR_RB_WPTR_SHIFT 0
+
+#define CP_RB_WPTR_RB_WPTR_MASK 0x000fffff
+
+#define CP_RB_WPTR_MASK \
+ (CP_RB_WPTR_RB_WPTR_MASK)
+
+#define CP_RB_WPTR(rb_wptr) \
+ ((rb_wptr << CP_RB_WPTR_RB_WPTR_SHIFT))
+
+#define CP_RB_WPTR_GET_RB_WPTR(cp_rb_wptr) \
+ ((cp_rb_wptr & CP_RB_WPTR_RB_WPTR_MASK) >> CP_RB_WPTR_RB_WPTR_SHIFT)
+
+#define CP_RB_WPTR_SET_RB_WPTR(cp_rb_wptr_reg, rb_wptr) \
+ cp_rb_wptr_reg = (cp_rb_wptr_reg & ~CP_RB_WPTR_RB_WPTR_MASK) | (rb_wptr << CP_RB_WPTR_RB_WPTR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_rb_wptr_t {
+ unsigned int rb_wptr : CP_RB_WPTR_RB_WPTR_SIZE;
+ unsigned int : 12;
+ } cp_rb_wptr_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_rb_wptr_t {
+ unsigned int : 12;
+ unsigned int rb_wptr : CP_RB_WPTR_RB_WPTR_SIZE;
+ } cp_rb_wptr_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_rb_wptr_t f;
+} cp_rb_wptr_u;
+
+
+/*
+ * CP_RB_WPTR_DELAY struct
+ */
+
+#define CP_RB_WPTR_DELAY_PRE_WRITE_TIMER_SIZE 28
+#define CP_RB_WPTR_DELAY_PRE_WRITE_LIMIT_SIZE 4
+
+#define CP_RB_WPTR_DELAY_PRE_WRITE_TIMER_SHIFT 0
+#define CP_RB_WPTR_DELAY_PRE_WRITE_LIMIT_SHIFT 28
+
+#define CP_RB_WPTR_DELAY_PRE_WRITE_TIMER_MASK 0x0fffffff
+#define CP_RB_WPTR_DELAY_PRE_WRITE_LIMIT_MASK 0xf0000000
+
+#define CP_RB_WPTR_DELAY_MASK \
+ (CP_RB_WPTR_DELAY_PRE_WRITE_TIMER_MASK | \
+ CP_RB_WPTR_DELAY_PRE_WRITE_LIMIT_MASK)
+
+#define CP_RB_WPTR_DELAY(pre_write_timer, pre_write_limit) \
+ ((pre_write_timer << CP_RB_WPTR_DELAY_PRE_WRITE_TIMER_SHIFT) | \
+ (pre_write_limit << CP_RB_WPTR_DELAY_PRE_WRITE_LIMIT_SHIFT))
+
+#define CP_RB_WPTR_DELAY_GET_PRE_WRITE_TIMER(cp_rb_wptr_delay) \
+ ((cp_rb_wptr_delay & CP_RB_WPTR_DELAY_PRE_WRITE_TIMER_MASK) >> CP_RB_WPTR_DELAY_PRE_WRITE_TIMER_SHIFT)
+#define CP_RB_WPTR_DELAY_GET_PRE_WRITE_LIMIT(cp_rb_wptr_delay) \
+ ((cp_rb_wptr_delay & CP_RB_WPTR_DELAY_PRE_WRITE_LIMIT_MASK) >> CP_RB_WPTR_DELAY_PRE_WRITE_LIMIT_SHIFT)
+
+#define CP_RB_WPTR_DELAY_SET_PRE_WRITE_TIMER(cp_rb_wptr_delay_reg, pre_write_timer) \
+ cp_rb_wptr_delay_reg = (cp_rb_wptr_delay_reg & ~CP_RB_WPTR_DELAY_PRE_WRITE_TIMER_MASK) | (pre_write_timer << CP_RB_WPTR_DELAY_PRE_WRITE_TIMER_SHIFT)
+#define CP_RB_WPTR_DELAY_SET_PRE_WRITE_LIMIT(cp_rb_wptr_delay_reg, pre_write_limit) \
+ cp_rb_wptr_delay_reg = (cp_rb_wptr_delay_reg & ~CP_RB_WPTR_DELAY_PRE_WRITE_LIMIT_MASK) | (pre_write_limit << CP_RB_WPTR_DELAY_PRE_WRITE_LIMIT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_rb_wptr_delay_t {
+ unsigned int pre_write_timer : CP_RB_WPTR_DELAY_PRE_WRITE_TIMER_SIZE;
+ unsigned int pre_write_limit : CP_RB_WPTR_DELAY_PRE_WRITE_LIMIT_SIZE;
+ } cp_rb_wptr_delay_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_rb_wptr_delay_t {
+ unsigned int pre_write_limit : CP_RB_WPTR_DELAY_PRE_WRITE_LIMIT_SIZE;
+ unsigned int pre_write_timer : CP_RB_WPTR_DELAY_PRE_WRITE_TIMER_SIZE;
+ } cp_rb_wptr_delay_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_rb_wptr_delay_t f;
+} cp_rb_wptr_delay_u;
+
+
+/*
+ * CP_RB_WPTR_BASE struct
+ */
+
+#define CP_RB_WPTR_BASE_RB_WPTR_SWAP_SIZE 2
+#define CP_RB_WPTR_BASE_RB_WPTR_BASE_SIZE 30
+
+#define CP_RB_WPTR_BASE_RB_WPTR_SWAP_SHIFT 0
+#define CP_RB_WPTR_BASE_RB_WPTR_BASE_SHIFT 2
+
+#define CP_RB_WPTR_BASE_RB_WPTR_SWAP_MASK 0x00000003
+#define CP_RB_WPTR_BASE_RB_WPTR_BASE_MASK 0xfffffffc
+
+#define CP_RB_WPTR_BASE_MASK \
+ (CP_RB_WPTR_BASE_RB_WPTR_SWAP_MASK | \
+ CP_RB_WPTR_BASE_RB_WPTR_BASE_MASK)
+
+#define CP_RB_WPTR_BASE(rb_wptr_swap, rb_wptr_base) \
+ ((rb_wptr_swap << CP_RB_WPTR_BASE_RB_WPTR_SWAP_SHIFT) | \
+ (rb_wptr_base << CP_RB_WPTR_BASE_RB_WPTR_BASE_SHIFT))
+
+#define CP_RB_WPTR_BASE_GET_RB_WPTR_SWAP(cp_rb_wptr_base) \
+ ((cp_rb_wptr_base & CP_RB_WPTR_BASE_RB_WPTR_SWAP_MASK) >> CP_RB_WPTR_BASE_RB_WPTR_SWAP_SHIFT)
+#define CP_RB_WPTR_BASE_GET_RB_WPTR_BASE(cp_rb_wptr_base) \
+ ((cp_rb_wptr_base & CP_RB_WPTR_BASE_RB_WPTR_BASE_MASK) >> CP_RB_WPTR_BASE_RB_WPTR_BASE_SHIFT)
+
+#define CP_RB_WPTR_BASE_SET_RB_WPTR_SWAP(cp_rb_wptr_base_reg, rb_wptr_swap) \
+ cp_rb_wptr_base_reg = (cp_rb_wptr_base_reg & ~CP_RB_WPTR_BASE_RB_WPTR_SWAP_MASK) | (rb_wptr_swap << CP_RB_WPTR_BASE_RB_WPTR_SWAP_SHIFT)
+#define CP_RB_WPTR_BASE_SET_RB_WPTR_BASE(cp_rb_wptr_base_reg, rb_wptr_base) \
+ cp_rb_wptr_base_reg = (cp_rb_wptr_base_reg & ~CP_RB_WPTR_BASE_RB_WPTR_BASE_MASK) | (rb_wptr_base << CP_RB_WPTR_BASE_RB_WPTR_BASE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_rb_wptr_base_t {
+ unsigned int rb_wptr_swap : CP_RB_WPTR_BASE_RB_WPTR_SWAP_SIZE;
+ unsigned int rb_wptr_base : CP_RB_WPTR_BASE_RB_WPTR_BASE_SIZE;
+ } cp_rb_wptr_base_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_rb_wptr_base_t {
+ unsigned int rb_wptr_base : CP_RB_WPTR_BASE_RB_WPTR_BASE_SIZE;
+ unsigned int rb_wptr_swap : CP_RB_WPTR_BASE_RB_WPTR_SWAP_SIZE;
+ } cp_rb_wptr_base_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_rb_wptr_base_t f;
+} cp_rb_wptr_base_u;
+
+
+/*
+ * CP_IB1_BASE struct
+ */
+
+#define CP_IB1_BASE_IB1_BASE_SIZE 30
+
+#define CP_IB1_BASE_IB1_BASE_SHIFT 2
+
+#define CP_IB1_BASE_IB1_BASE_MASK 0xfffffffc
+
+#define CP_IB1_BASE_MASK \
+ (CP_IB1_BASE_IB1_BASE_MASK)
+
+#define CP_IB1_BASE(ib1_base) \
+ ((ib1_base << CP_IB1_BASE_IB1_BASE_SHIFT))
+
+#define CP_IB1_BASE_GET_IB1_BASE(cp_ib1_base) \
+ ((cp_ib1_base & CP_IB1_BASE_IB1_BASE_MASK) >> CP_IB1_BASE_IB1_BASE_SHIFT)
+
+#define CP_IB1_BASE_SET_IB1_BASE(cp_ib1_base_reg, ib1_base) \
+ cp_ib1_base_reg = (cp_ib1_base_reg & ~CP_IB1_BASE_IB1_BASE_MASK) | (ib1_base << CP_IB1_BASE_IB1_BASE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_ib1_base_t {
+ unsigned int : 2;
+ unsigned int ib1_base : CP_IB1_BASE_IB1_BASE_SIZE;
+ } cp_ib1_base_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_ib1_base_t {
+ unsigned int ib1_base : CP_IB1_BASE_IB1_BASE_SIZE;
+ unsigned int : 2;
+ } cp_ib1_base_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_ib1_base_t f;
+} cp_ib1_base_u;
+
+
+/*
+ * CP_IB1_BUFSZ struct
+ */
+
+#define CP_IB1_BUFSZ_IB1_BUFSZ_SIZE 20
+
+#define CP_IB1_BUFSZ_IB1_BUFSZ_SHIFT 0
+
+#define CP_IB1_BUFSZ_IB1_BUFSZ_MASK 0x000fffff
+
+#define CP_IB1_BUFSZ_MASK \
+ (CP_IB1_BUFSZ_IB1_BUFSZ_MASK)
+
+#define CP_IB1_BUFSZ(ib1_bufsz) \
+ ((ib1_bufsz << CP_IB1_BUFSZ_IB1_BUFSZ_SHIFT))
+
+#define CP_IB1_BUFSZ_GET_IB1_BUFSZ(cp_ib1_bufsz) \
+ ((cp_ib1_bufsz & CP_IB1_BUFSZ_IB1_BUFSZ_MASK) >> CP_IB1_BUFSZ_IB1_BUFSZ_SHIFT)
+
+#define CP_IB1_BUFSZ_SET_IB1_BUFSZ(cp_ib1_bufsz_reg, ib1_bufsz) \
+ cp_ib1_bufsz_reg = (cp_ib1_bufsz_reg & ~CP_IB1_BUFSZ_IB1_BUFSZ_MASK) | (ib1_bufsz << CP_IB1_BUFSZ_IB1_BUFSZ_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_ib1_bufsz_t {
+ unsigned int ib1_bufsz : CP_IB1_BUFSZ_IB1_BUFSZ_SIZE;
+ unsigned int : 12;
+ } cp_ib1_bufsz_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_ib1_bufsz_t {
+ unsigned int : 12;
+ unsigned int ib1_bufsz : CP_IB1_BUFSZ_IB1_BUFSZ_SIZE;
+ } cp_ib1_bufsz_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_ib1_bufsz_t f;
+} cp_ib1_bufsz_u;
+
+
+/*
+ * CP_IB2_BASE struct
+ */
+
+#define CP_IB2_BASE_IB2_BASE_SIZE 30
+
+#define CP_IB2_BASE_IB2_BASE_SHIFT 2
+
+#define CP_IB2_BASE_IB2_BASE_MASK 0xfffffffc
+
+#define CP_IB2_BASE_MASK \
+ (CP_IB2_BASE_IB2_BASE_MASK)
+
+#define CP_IB2_BASE(ib2_base) \
+ ((ib2_base << CP_IB2_BASE_IB2_BASE_SHIFT))
+
+#define CP_IB2_BASE_GET_IB2_BASE(cp_ib2_base) \
+ ((cp_ib2_base & CP_IB2_BASE_IB2_BASE_MASK) >> CP_IB2_BASE_IB2_BASE_SHIFT)
+
+#define CP_IB2_BASE_SET_IB2_BASE(cp_ib2_base_reg, ib2_base) \
+ cp_ib2_base_reg = (cp_ib2_base_reg & ~CP_IB2_BASE_IB2_BASE_MASK) | (ib2_base << CP_IB2_BASE_IB2_BASE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_ib2_base_t {
+ unsigned int : 2;
+ unsigned int ib2_base : CP_IB2_BASE_IB2_BASE_SIZE;
+ } cp_ib2_base_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_ib2_base_t {
+ unsigned int ib2_base : CP_IB2_BASE_IB2_BASE_SIZE;
+ unsigned int : 2;
+ } cp_ib2_base_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_ib2_base_t f;
+} cp_ib2_base_u;
+
+
+/*
+ * CP_IB2_BUFSZ struct
+ */
+
+#define CP_IB2_BUFSZ_IB2_BUFSZ_SIZE 20
+
+#define CP_IB2_BUFSZ_IB2_BUFSZ_SHIFT 0
+
+#define CP_IB2_BUFSZ_IB2_BUFSZ_MASK 0x000fffff
+
+#define CP_IB2_BUFSZ_MASK \
+ (CP_IB2_BUFSZ_IB2_BUFSZ_MASK)
+
+#define CP_IB2_BUFSZ(ib2_bufsz) \
+ ((ib2_bufsz << CP_IB2_BUFSZ_IB2_BUFSZ_SHIFT))
+
+#define CP_IB2_BUFSZ_GET_IB2_BUFSZ(cp_ib2_bufsz) \
+ ((cp_ib2_bufsz & CP_IB2_BUFSZ_IB2_BUFSZ_MASK) >> CP_IB2_BUFSZ_IB2_BUFSZ_SHIFT)
+
+#define CP_IB2_BUFSZ_SET_IB2_BUFSZ(cp_ib2_bufsz_reg, ib2_bufsz) \
+ cp_ib2_bufsz_reg = (cp_ib2_bufsz_reg & ~CP_IB2_BUFSZ_IB2_BUFSZ_MASK) | (ib2_bufsz << CP_IB2_BUFSZ_IB2_BUFSZ_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_ib2_bufsz_t {
+ unsigned int ib2_bufsz : CP_IB2_BUFSZ_IB2_BUFSZ_SIZE;
+ unsigned int : 12;
+ } cp_ib2_bufsz_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_ib2_bufsz_t {
+ unsigned int : 12;
+ unsigned int ib2_bufsz : CP_IB2_BUFSZ_IB2_BUFSZ_SIZE;
+ } cp_ib2_bufsz_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_ib2_bufsz_t f;
+} cp_ib2_bufsz_u;
+
+
+/*
+ * CP_ST_BASE struct
+ */
+
+#define CP_ST_BASE_ST_BASE_SIZE 30
+
+#define CP_ST_BASE_ST_BASE_SHIFT 2
+
+#define CP_ST_BASE_ST_BASE_MASK 0xfffffffc
+
+#define CP_ST_BASE_MASK \
+ (CP_ST_BASE_ST_BASE_MASK)
+
+#define CP_ST_BASE(st_base) \
+ ((st_base << CP_ST_BASE_ST_BASE_SHIFT))
+
+#define CP_ST_BASE_GET_ST_BASE(cp_st_base) \
+ ((cp_st_base & CP_ST_BASE_ST_BASE_MASK) >> CP_ST_BASE_ST_BASE_SHIFT)
+
+#define CP_ST_BASE_SET_ST_BASE(cp_st_base_reg, st_base) \
+ cp_st_base_reg = (cp_st_base_reg & ~CP_ST_BASE_ST_BASE_MASK) | (st_base << CP_ST_BASE_ST_BASE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_st_base_t {
+ unsigned int : 2;
+ unsigned int st_base : CP_ST_BASE_ST_BASE_SIZE;
+ } cp_st_base_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_st_base_t {
+ unsigned int st_base : CP_ST_BASE_ST_BASE_SIZE;
+ unsigned int : 2;
+ } cp_st_base_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_st_base_t f;
+} cp_st_base_u;
+
+
+/*
+ * CP_ST_BUFSZ struct
+ */
+
+#define CP_ST_BUFSZ_ST_BUFSZ_SIZE 20
+
+#define CP_ST_BUFSZ_ST_BUFSZ_SHIFT 0
+
+#define CP_ST_BUFSZ_ST_BUFSZ_MASK 0x000fffff
+
+#define CP_ST_BUFSZ_MASK \
+ (CP_ST_BUFSZ_ST_BUFSZ_MASK)
+
+#define CP_ST_BUFSZ(st_bufsz) \
+ ((st_bufsz << CP_ST_BUFSZ_ST_BUFSZ_SHIFT))
+
+#define CP_ST_BUFSZ_GET_ST_BUFSZ(cp_st_bufsz) \
+ ((cp_st_bufsz & CP_ST_BUFSZ_ST_BUFSZ_MASK) >> CP_ST_BUFSZ_ST_BUFSZ_SHIFT)
+
+#define CP_ST_BUFSZ_SET_ST_BUFSZ(cp_st_bufsz_reg, st_bufsz) \
+ cp_st_bufsz_reg = (cp_st_bufsz_reg & ~CP_ST_BUFSZ_ST_BUFSZ_MASK) | (st_bufsz << CP_ST_BUFSZ_ST_BUFSZ_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_st_bufsz_t {
+ unsigned int st_bufsz : CP_ST_BUFSZ_ST_BUFSZ_SIZE;
+ unsigned int : 12;
+ } cp_st_bufsz_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_st_bufsz_t {
+ unsigned int : 12;
+ unsigned int st_bufsz : CP_ST_BUFSZ_ST_BUFSZ_SIZE;
+ } cp_st_bufsz_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_st_bufsz_t f;
+} cp_st_bufsz_u;
+
+
+/*
+ * CP_QUEUE_THRESHOLDS struct
+ */
+
+#define CP_QUEUE_THRESHOLDS_CSQ_IB1_START_SIZE 4
+#define CP_QUEUE_THRESHOLDS_CSQ_IB2_START_SIZE 4
+#define CP_QUEUE_THRESHOLDS_CSQ_ST_START_SIZE 4
+
+#define CP_QUEUE_THRESHOLDS_CSQ_IB1_START_SHIFT 0
+#define CP_QUEUE_THRESHOLDS_CSQ_IB2_START_SHIFT 8
+#define CP_QUEUE_THRESHOLDS_CSQ_ST_START_SHIFT 16
+
+#define CP_QUEUE_THRESHOLDS_CSQ_IB1_START_MASK 0x0000000f
+#define CP_QUEUE_THRESHOLDS_CSQ_IB2_START_MASK 0x00000f00
+#define CP_QUEUE_THRESHOLDS_CSQ_ST_START_MASK 0x000f0000
+
+#define CP_QUEUE_THRESHOLDS_MASK \
+ (CP_QUEUE_THRESHOLDS_CSQ_IB1_START_MASK | \
+ CP_QUEUE_THRESHOLDS_CSQ_IB2_START_MASK | \
+ CP_QUEUE_THRESHOLDS_CSQ_ST_START_MASK)
+
+#define CP_QUEUE_THRESHOLDS(csq_ib1_start, csq_ib2_start, csq_st_start) \
+ ((csq_ib1_start << CP_QUEUE_THRESHOLDS_CSQ_IB1_START_SHIFT) | \
+ (csq_ib2_start << CP_QUEUE_THRESHOLDS_CSQ_IB2_START_SHIFT) | \
+ (csq_st_start << CP_QUEUE_THRESHOLDS_CSQ_ST_START_SHIFT))
+
+#define CP_QUEUE_THRESHOLDS_GET_CSQ_IB1_START(cp_queue_thresholds) \
+ ((cp_queue_thresholds & CP_QUEUE_THRESHOLDS_CSQ_IB1_START_MASK) >> CP_QUEUE_THRESHOLDS_CSQ_IB1_START_SHIFT)
+#define CP_QUEUE_THRESHOLDS_GET_CSQ_IB2_START(cp_queue_thresholds) \
+ ((cp_queue_thresholds & CP_QUEUE_THRESHOLDS_CSQ_IB2_START_MASK) >> CP_QUEUE_THRESHOLDS_CSQ_IB2_START_SHIFT)
+#define CP_QUEUE_THRESHOLDS_GET_CSQ_ST_START(cp_queue_thresholds) \
+ ((cp_queue_thresholds & CP_QUEUE_THRESHOLDS_CSQ_ST_START_MASK) >> CP_QUEUE_THRESHOLDS_CSQ_ST_START_SHIFT)
+
+#define CP_QUEUE_THRESHOLDS_SET_CSQ_IB1_START(cp_queue_thresholds_reg, csq_ib1_start) \
+ cp_queue_thresholds_reg = (cp_queue_thresholds_reg & ~CP_QUEUE_THRESHOLDS_CSQ_IB1_START_MASK) | (csq_ib1_start << CP_QUEUE_THRESHOLDS_CSQ_IB1_START_SHIFT)
+#define CP_QUEUE_THRESHOLDS_SET_CSQ_IB2_START(cp_queue_thresholds_reg, csq_ib2_start) \
+ cp_queue_thresholds_reg = (cp_queue_thresholds_reg & ~CP_QUEUE_THRESHOLDS_CSQ_IB2_START_MASK) | (csq_ib2_start << CP_QUEUE_THRESHOLDS_CSQ_IB2_START_SHIFT)
+#define CP_QUEUE_THRESHOLDS_SET_CSQ_ST_START(cp_queue_thresholds_reg, csq_st_start) \
+ cp_queue_thresholds_reg = (cp_queue_thresholds_reg & ~CP_QUEUE_THRESHOLDS_CSQ_ST_START_MASK) | (csq_st_start << CP_QUEUE_THRESHOLDS_CSQ_ST_START_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_queue_thresholds_t {
+ unsigned int csq_ib1_start : CP_QUEUE_THRESHOLDS_CSQ_IB1_START_SIZE;
+ unsigned int : 4;
+ unsigned int csq_ib2_start : CP_QUEUE_THRESHOLDS_CSQ_IB2_START_SIZE;
+ unsigned int : 4;
+ unsigned int csq_st_start : CP_QUEUE_THRESHOLDS_CSQ_ST_START_SIZE;
+ unsigned int : 12;
+ } cp_queue_thresholds_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_queue_thresholds_t {
+ unsigned int : 12;
+ unsigned int csq_st_start : CP_QUEUE_THRESHOLDS_CSQ_ST_START_SIZE;
+ unsigned int : 4;
+ unsigned int csq_ib2_start : CP_QUEUE_THRESHOLDS_CSQ_IB2_START_SIZE;
+ unsigned int : 4;
+ unsigned int csq_ib1_start : CP_QUEUE_THRESHOLDS_CSQ_IB1_START_SIZE;
+ } cp_queue_thresholds_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_queue_thresholds_t f;
+} cp_queue_thresholds_u;
+
+
+/*
+ * CP_MEQ_THRESHOLDS struct
+ */
+
+#define CP_MEQ_THRESHOLDS_MEQ_END_SIZE 5
+#define CP_MEQ_THRESHOLDS_ROQ_END_SIZE 5
+
+#define CP_MEQ_THRESHOLDS_MEQ_END_SHIFT 16
+#define CP_MEQ_THRESHOLDS_ROQ_END_SHIFT 24
+
+#define CP_MEQ_THRESHOLDS_MEQ_END_MASK 0x001f0000
+#define CP_MEQ_THRESHOLDS_ROQ_END_MASK 0x1f000000
+
+#define CP_MEQ_THRESHOLDS_MASK \
+ (CP_MEQ_THRESHOLDS_MEQ_END_MASK | \
+ CP_MEQ_THRESHOLDS_ROQ_END_MASK)
+
+#define CP_MEQ_THRESHOLDS(meq_end, roq_end) \
+ ((meq_end << CP_MEQ_THRESHOLDS_MEQ_END_SHIFT) | \
+ (roq_end << CP_MEQ_THRESHOLDS_ROQ_END_SHIFT))
+
+#define CP_MEQ_THRESHOLDS_GET_MEQ_END(cp_meq_thresholds) \
+ ((cp_meq_thresholds & CP_MEQ_THRESHOLDS_MEQ_END_MASK) >> CP_MEQ_THRESHOLDS_MEQ_END_SHIFT)
+#define CP_MEQ_THRESHOLDS_GET_ROQ_END(cp_meq_thresholds) \
+ ((cp_meq_thresholds & CP_MEQ_THRESHOLDS_ROQ_END_MASK) >> CP_MEQ_THRESHOLDS_ROQ_END_SHIFT)
+
+#define CP_MEQ_THRESHOLDS_SET_MEQ_END(cp_meq_thresholds_reg, meq_end) \
+ cp_meq_thresholds_reg = (cp_meq_thresholds_reg & ~CP_MEQ_THRESHOLDS_MEQ_END_MASK) | (meq_end << CP_MEQ_THRESHOLDS_MEQ_END_SHIFT)
+#define CP_MEQ_THRESHOLDS_SET_ROQ_END(cp_meq_thresholds_reg, roq_end) \
+ cp_meq_thresholds_reg = (cp_meq_thresholds_reg & ~CP_MEQ_THRESHOLDS_ROQ_END_MASK) | (roq_end << CP_MEQ_THRESHOLDS_ROQ_END_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_meq_thresholds_t {
+ unsigned int : 16;
+ unsigned int meq_end : CP_MEQ_THRESHOLDS_MEQ_END_SIZE;
+ unsigned int : 3;
+ unsigned int roq_end : CP_MEQ_THRESHOLDS_ROQ_END_SIZE;
+ unsigned int : 3;
+ } cp_meq_thresholds_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_meq_thresholds_t {
+ unsigned int : 3;
+ unsigned int roq_end : CP_MEQ_THRESHOLDS_ROQ_END_SIZE;
+ unsigned int : 3;
+ unsigned int meq_end : CP_MEQ_THRESHOLDS_MEQ_END_SIZE;
+ unsigned int : 16;
+ } cp_meq_thresholds_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_meq_thresholds_t f;
+} cp_meq_thresholds_u;
+
+
+/*
+ * CP_CSQ_AVAIL struct
+ */
+
+#define CP_CSQ_AVAIL_CSQ_CNT_RING_SIZE 7
+#define CP_CSQ_AVAIL_CSQ_CNT_IB1_SIZE 7
+#define CP_CSQ_AVAIL_CSQ_CNT_IB2_SIZE 7
+
+#define CP_CSQ_AVAIL_CSQ_CNT_RING_SHIFT 0
+#define CP_CSQ_AVAIL_CSQ_CNT_IB1_SHIFT 8
+#define CP_CSQ_AVAIL_CSQ_CNT_IB2_SHIFT 16
+
+#define CP_CSQ_AVAIL_CSQ_CNT_RING_MASK 0x0000007f
+#define CP_CSQ_AVAIL_CSQ_CNT_IB1_MASK 0x00007f00
+#define CP_CSQ_AVAIL_CSQ_CNT_IB2_MASK 0x007f0000
+
+#define CP_CSQ_AVAIL_MASK \
+ (CP_CSQ_AVAIL_CSQ_CNT_RING_MASK | \
+ CP_CSQ_AVAIL_CSQ_CNT_IB1_MASK | \
+ CP_CSQ_AVAIL_CSQ_CNT_IB2_MASK)
+
+#define CP_CSQ_AVAIL(csq_cnt_ring, csq_cnt_ib1, csq_cnt_ib2) \
+ ((csq_cnt_ring << CP_CSQ_AVAIL_CSQ_CNT_RING_SHIFT) | \
+ (csq_cnt_ib1 << CP_CSQ_AVAIL_CSQ_CNT_IB1_SHIFT) | \
+ (csq_cnt_ib2 << CP_CSQ_AVAIL_CSQ_CNT_IB2_SHIFT))
+
+#define CP_CSQ_AVAIL_GET_CSQ_CNT_RING(cp_csq_avail) \
+ ((cp_csq_avail & CP_CSQ_AVAIL_CSQ_CNT_RING_MASK) >> CP_CSQ_AVAIL_CSQ_CNT_RING_SHIFT)
+#define CP_CSQ_AVAIL_GET_CSQ_CNT_IB1(cp_csq_avail) \
+ ((cp_csq_avail & CP_CSQ_AVAIL_CSQ_CNT_IB1_MASK) >> CP_CSQ_AVAIL_CSQ_CNT_IB1_SHIFT)
+#define CP_CSQ_AVAIL_GET_CSQ_CNT_IB2(cp_csq_avail) \
+ ((cp_csq_avail & CP_CSQ_AVAIL_CSQ_CNT_IB2_MASK) >> CP_CSQ_AVAIL_CSQ_CNT_IB2_SHIFT)
+
+#define CP_CSQ_AVAIL_SET_CSQ_CNT_RING(cp_csq_avail_reg, csq_cnt_ring) \
+ cp_csq_avail_reg = (cp_csq_avail_reg & ~CP_CSQ_AVAIL_CSQ_CNT_RING_MASK) | (csq_cnt_ring << CP_CSQ_AVAIL_CSQ_CNT_RING_SHIFT)
+#define CP_CSQ_AVAIL_SET_CSQ_CNT_IB1(cp_csq_avail_reg, csq_cnt_ib1) \
+ cp_csq_avail_reg = (cp_csq_avail_reg & ~CP_CSQ_AVAIL_CSQ_CNT_IB1_MASK) | (csq_cnt_ib1 << CP_CSQ_AVAIL_CSQ_CNT_IB1_SHIFT)
+#define CP_CSQ_AVAIL_SET_CSQ_CNT_IB2(cp_csq_avail_reg, csq_cnt_ib2) \
+ cp_csq_avail_reg = (cp_csq_avail_reg & ~CP_CSQ_AVAIL_CSQ_CNT_IB2_MASK) | (csq_cnt_ib2 << CP_CSQ_AVAIL_CSQ_CNT_IB2_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_csq_avail_t {
+ unsigned int csq_cnt_ring : CP_CSQ_AVAIL_CSQ_CNT_RING_SIZE;
+ unsigned int : 1;
+ unsigned int csq_cnt_ib1 : CP_CSQ_AVAIL_CSQ_CNT_IB1_SIZE;
+ unsigned int : 1;
+ unsigned int csq_cnt_ib2 : CP_CSQ_AVAIL_CSQ_CNT_IB2_SIZE;
+ unsigned int : 9;
+ } cp_csq_avail_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_csq_avail_t {
+ unsigned int : 9;
+ unsigned int csq_cnt_ib2 : CP_CSQ_AVAIL_CSQ_CNT_IB2_SIZE;
+ unsigned int : 1;
+ unsigned int csq_cnt_ib1 : CP_CSQ_AVAIL_CSQ_CNT_IB1_SIZE;
+ unsigned int : 1;
+ unsigned int csq_cnt_ring : CP_CSQ_AVAIL_CSQ_CNT_RING_SIZE;
+ } cp_csq_avail_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_csq_avail_t f;
+} cp_csq_avail_u;
+
+
+/*
+ * CP_STQ_AVAIL struct
+ */
+
+#define CP_STQ_AVAIL_STQ_CNT_ST_SIZE 7
+
+#define CP_STQ_AVAIL_STQ_CNT_ST_SHIFT 0
+
+#define CP_STQ_AVAIL_STQ_CNT_ST_MASK 0x0000007f
+
+#define CP_STQ_AVAIL_MASK \
+ (CP_STQ_AVAIL_STQ_CNT_ST_MASK)
+
+#define CP_STQ_AVAIL(stq_cnt_st) \
+ ((stq_cnt_st << CP_STQ_AVAIL_STQ_CNT_ST_SHIFT))
+
+#define CP_STQ_AVAIL_GET_STQ_CNT_ST(cp_stq_avail) \
+ ((cp_stq_avail & CP_STQ_AVAIL_STQ_CNT_ST_MASK) >> CP_STQ_AVAIL_STQ_CNT_ST_SHIFT)
+
+#define CP_STQ_AVAIL_SET_STQ_CNT_ST(cp_stq_avail_reg, stq_cnt_st) \
+ cp_stq_avail_reg = (cp_stq_avail_reg & ~CP_STQ_AVAIL_STQ_CNT_ST_MASK) | (stq_cnt_st << CP_STQ_AVAIL_STQ_CNT_ST_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_stq_avail_t {
+ unsigned int stq_cnt_st : CP_STQ_AVAIL_STQ_CNT_ST_SIZE;
+ unsigned int : 25;
+ } cp_stq_avail_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_stq_avail_t {
+ unsigned int : 25;
+ unsigned int stq_cnt_st : CP_STQ_AVAIL_STQ_CNT_ST_SIZE;
+ } cp_stq_avail_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_stq_avail_t f;
+} cp_stq_avail_u;
+
+
+/*
+ * CP_MEQ_AVAIL struct
+ */
+
+#define CP_MEQ_AVAIL_MEQ_CNT_SIZE 5
+
+#define CP_MEQ_AVAIL_MEQ_CNT_SHIFT 0
+
+#define CP_MEQ_AVAIL_MEQ_CNT_MASK 0x0000001f
+
+#define CP_MEQ_AVAIL_MASK \
+ (CP_MEQ_AVAIL_MEQ_CNT_MASK)
+
+#define CP_MEQ_AVAIL(meq_cnt) \
+ ((meq_cnt << CP_MEQ_AVAIL_MEQ_CNT_SHIFT))
+
+#define CP_MEQ_AVAIL_GET_MEQ_CNT(cp_meq_avail) \
+ ((cp_meq_avail & CP_MEQ_AVAIL_MEQ_CNT_MASK) >> CP_MEQ_AVAIL_MEQ_CNT_SHIFT)
+
+#define CP_MEQ_AVAIL_SET_MEQ_CNT(cp_meq_avail_reg, meq_cnt) \
+ cp_meq_avail_reg = (cp_meq_avail_reg & ~CP_MEQ_AVAIL_MEQ_CNT_MASK) | (meq_cnt << CP_MEQ_AVAIL_MEQ_CNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_meq_avail_t {
+ unsigned int meq_cnt : CP_MEQ_AVAIL_MEQ_CNT_SIZE;
+ unsigned int : 27;
+ } cp_meq_avail_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_meq_avail_t {
+ unsigned int : 27;
+ unsigned int meq_cnt : CP_MEQ_AVAIL_MEQ_CNT_SIZE;
+ } cp_meq_avail_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_meq_avail_t f;
+} cp_meq_avail_u;
+
+
+/*
+ * CP_CSQ_RB_STAT struct
+ */
+
+#define CP_CSQ_RB_STAT_CSQ_RPTR_PRIMARY_SIZE 7
+#define CP_CSQ_RB_STAT_CSQ_WPTR_PRIMARY_SIZE 7
+
+#define CP_CSQ_RB_STAT_CSQ_RPTR_PRIMARY_SHIFT 0
+#define CP_CSQ_RB_STAT_CSQ_WPTR_PRIMARY_SHIFT 16
+
+#define CP_CSQ_RB_STAT_CSQ_RPTR_PRIMARY_MASK 0x0000007f
+#define CP_CSQ_RB_STAT_CSQ_WPTR_PRIMARY_MASK 0x007f0000
+
+#define CP_CSQ_RB_STAT_MASK \
+ (CP_CSQ_RB_STAT_CSQ_RPTR_PRIMARY_MASK | \
+ CP_CSQ_RB_STAT_CSQ_WPTR_PRIMARY_MASK)
+
+#define CP_CSQ_RB_STAT(csq_rptr_primary, csq_wptr_primary) \
+ ((csq_rptr_primary << CP_CSQ_RB_STAT_CSQ_RPTR_PRIMARY_SHIFT) | \
+ (csq_wptr_primary << CP_CSQ_RB_STAT_CSQ_WPTR_PRIMARY_SHIFT))
+
+#define CP_CSQ_RB_STAT_GET_CSQ_RPTR_PRIMARY(cp_csq_rb_stat) \
+ ((cp_csq_rb_stat & CP_CSQ_RB_STAT_CSQ_RPTR_PRIMARY_MASK) >> CP_CSQ_RB_STAT_CSQ_RPTR_PRIMARY_SHIFT)
+#define CP_CSQ_RB_STAT_GET_CSQ_WPTR_PRIMARY(cp_csq_rb_stat) \
+ ((cp_csq_rb_stat & CP_CSQ_RB_STAT_CSQ_WPTR_PRIMARY_MASK) >> CP_CSQ_RB_STAT_CSQ_WPTR_PRIMARY_SHIFT)
+
+#define CP_CSQ_RB_STAT_SET_CSQ_RPTR_PRIMARY(cp_csq_rb_stat_reg, csq_rptr_primary) \
+ cp_csq_rb_stat_reg = (cp_csq_rb_stat_reg & ~CP_CSQ_RB_STAT_CSQ_RPTR_PRIMARY_MASK) | (csq_rptr_primary << CP_CSQ_RB_STAT_CSQ_RPTR_PRIMARY_SHIFT)
+#define CP_CSQ_RB_STAT_SET_CSQ_WPTR_PRIMARY(cp_csq_rb_stat_reg, csq_wptr_primary) \
+ cp_csq_rb_stat_reg = (cp_csq_rb_stat_reg & ~CP_CSQ_RB_STAT_CSQ_WPTR_PRIMARY_MASK) | (csq_wptr_primary << CP_CSQ_RB_STAT_CSQ_WPTR_PRIMARY_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_csq_rb_stat_t {
+ unsigned int csq_rptr_primary : CP_CSQ_RB_STAT_CSQ_RPTR_PRIMARY_SIZE;
+ unsigned int : 9;
+ unsigned int csq_wptr_primary : CP_CSQ_RB_STAT_CSQ_WPTR_PRIMARY_SIZE;
+ unsigned int : 9;
+ } cp_csq_rb_stat_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_csq_rb_stat_t {
+ unsigned int : 9;
+ unsigned int csq_wptr_primary : CP_CSQ_RB_STAT_CSQ_WPTR_PRIMARY_SIZE;
+ unsigned int : 9;
+ unsigned int csq_rptr_primary : CP_CSQ_RB_STAT_CSQ_RPTR_PRIMARY_SIZE;
+ } cp_csq_rb_stat_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_csq_rb_stat_t f;
+} cp_csq_rb_stat_u;
+
+
+/*
+ * CP_CSQ_IB1_STAT struct
+ */
+
+#define CP_CSQ_IB1_STAT_CSQ_RPTR_INDIRECT1_SIZE 7
+#define CP_CSQ_IB1_STAT_CSQ_WPTR_INDIRECT1_SIZE 7
+
+#define CP_CSQ_IB1_STAT_CSQ_RPTR_INDIRECT1_SHIFT 0
+#define CP_CSQ_IB1_STAT_CSQ_WPTR_INDIRECT1_SHIFT 16
+
+#define CP_CSQ_IB1_STAT_CSQ_RPTR_INDIRECT1_MASK 0x0000007f
+#define CP_CSQ_IB1_STAT_CSQ_WPTR_INDIRECT1_MASK 0x007f0000
+
+#define CP_CSQ_IB1_STAT_MASK \
+ (CP_CSQ_IB1_STAT_CSQ_RPTR_INDIRECT1_MASK | \
+ CP_CSQ_IB1_STAT_CSQ_WPTR_INDIRECT1_MASK)
+
+#define CP_CSQ_IB1_STAT(csq_rptr_indirect1, csq_wptr_indirect1) \
+ ((csq_rptr_indirect1 << CP_CSQ_IB1_STAT_CSQ_RPTR_INDIRECT1_SHIFT) | \
+ (csq_wptr_indirect1 << CP_CSQ_IB1_STAT_CSQ_WPTR_INDIRECT1_SHIFT))
+
+#define CP_CSQ_IB1_STAT_GET_CSQ_RPTR_INDIRECT1(cp_csq_ib1_stat) \
+ ((cp_csq_ib1_stat & CP_CSQ_IB1_STAT_CSQ_RPTR_INDIRECT1_MASK) >> CP_CSQ_IB1_STAT_CSQ_RPTR_INDIRECT1_SHIFT)
+#define CP_CSQ_IB1_STAT_GET_CSQ_WPTR_INDIRECT1(cp_csq_ib1_stat) \
+ ((cp_csq_ib1_stat & CP_CSQ_IB1_STAT_CSQ_WPTR_INDIRECT1_MASK) >> CP_CSQ_IB1_STAT_CSQ_WPTR_INDIRECT1_SHIFT)
+
+#define CP_CSQ_IB1_STAT_SET_CSQ_RPTR_INDIRECT1(cp_csq_ib1_stat_reg, csq_rptr_indirect1) \
+ cp_csq_ib1_stat_reg = (cp_csq_ib1_stat_reg & ~CP_CSQ_IB1_STAT_CSQ_RPTR_INDIRECT1_MASK) | (csq_rptr_indirect1 << CP_CSQ_IB1_STAT_CSQ_RPTR_INDIRECT1_SHIFT)
+#define CP_CSQ_IB1_STAT_SET_CSQ_WPTR_INDIRECT1(cp_csq_ib1_stat_reg, csq_wptr_indirect1) \
+ cp_csq_ib1_stat_reg = (cp_csq_ib1_stat_reg & ~CP_CSQ_IB1_STAT_CSQ_WPTR_INDIRECT1_MASK) | (csq_wptr_indirect1 << CP_CSQ_IB1_STAT_CSQ_WPTR_INDIRECT1_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_csq_ib1_stat_t {
+ unsigned int csq_rptr_indirect1 : CP_CSQ_IB1_STAT_CSQ_RPTR_INDIRECT1_SIZE;
+ unsigned int : 9;
+ unsigned int csq_wptr_indirect1 : CP_CSQ_IB1_STAT_CSQ_WPTR_INDIRECT1_SIZE;
+ unsigned int : 9;
+ } cp_csq_ib1_stat_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_csq_ib1_stat_t {
+ unsigned int : 9;
+ unsigned int csq_wptr_indirect1 : CP_CSQ_IB1_STAT_CSQ_WPTR_INDIRECT1_SIZE;
+ unsigned int : 9;
+ unsigned int csq_rptr_indirect1 : CP_CSQ_IB1_STAT_CSQ_RPTR_INDIRECT1_SIZE;
+ } cp_csq_ib1_stat_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_csq_ib1_stat_t f;
+} cp_csq_ib1_stat_u;
+
+
+/*
+ * CP_CSQ_IB2_STAT struct
+ */
+
+#define CP_CSQ_IB2_STAT_CSQ_RPTR_INDIRECT2_SIZE 7
+#define CP_CSQ_IB2_STAT_CSQ_WPTR_INDIRECT2_SIZE 7
+
+#define CP_CSQ_IB2_STAT_CSQ_RPTR_INDIRECT2_SHIFT 0
+#define CP_CSQ_IB2_STAT_CSQ_WPTR_INDIRECT2_SHIFT 16
+
+#define CP_CSQ_IB2_STAT_CSQ_RPTR_INDIRECT2_MASK 0x0000007f
+#define CP_CSQ_IB2_STAT_CSQ_WPTR_INDIRECT2_MASK 0x007f0000
+
+#define CP_CSQ_IB2_STAT_MASK \
+ (CP_CSQ_IB2_STAT_CSQ_RPTR_INDIRECT2_MASK | \
+ CP_CSQ_IB2_STAT_CSQ_WPTR_INDIRECT2_MASK)
+
+#define CP_CSQ_IB2_STAT(csq_rptr_indirect2, csq_wptr_indirect2) \
+ ((csq_rptr_indirect2 << CP_CSQ_IB2_STAT_CSQ_RPTR_INDIRECT2_SHIFT) | \
+ (csq_wptr_indirect2 << CP_CSQ_IB2_STAT_CSQ_WPTR_INDIRECT2_SHIFT))
+
+#define CP_CSQ_IB2_STAT_GET_CSQ_RPTR_INDIRECT2(cp_csq_ib2_stat) \
+ ((cp_csq_ib2_stat & CP_CSQ_IB2_STAT_CSQ_RPTR_INDIRECT2_MASK) >> CP_CSQ_IB2_STAT_CSQ_RPTR_INDIRECT2_SHIFT)
+#define CP_CSQ_IB2_STAT_GET_CSQ_WPTR_INDIRECT2(cp_csq_ib2_stat) \
+ ((cp_csq_ib2_stat & CP_CSQ_IB2_STAT_CSQ_WPTR_INDIRECT2_MASK) >> CP_CSQ_IB2_STAT_CSQ_WPTR_INDIRECT2_SHIFT)
+
+#define CP_CSQ_IB2_STAT_SET_CSQ_RPTR_INDIRECT2(cp_csq_ib2_stat_reg, csq_rptr_indirect2) \
+ cp_csq_ib2_stat_reg = (cp_csq_ib2_stat_reg & ~CP_CSQ_IB2_STAT_CSQ_RPTR_INDIRECT2_MASK) | (csq_rptr_indirect2 << CP_CSQ_IB2_STAT_CSQ_RPTR_INDIRECT2_SHIFT)
+#define CP_CSQ_IB2_STAT_SET_CSQ_WPTR_INDIRECT2(cp_csq_ib2_stat_reg, csq_wptr_indirect2) \
+ cp_csq_ib2_stat_reg = (cp_csq_ib2_stat_reg & ~CP_CSQ_IB2_STAT_CSQ_WPTR_INDIRECT2_MASK) | (csq_wptr_indirect2 << CP_CSQ_IB2_STAT_CSQ_WPTR_INDIRECT2_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_csq_ib2_stat_t {
+ unsigned int csq_rptr_indirect2 : CP_CSQ_IB2_STAT_CSQ_RPTR_INDIRECT2_SIZE;
+ unsigned int : 9;
+ unsigned int csq_wptr_indirect2 : CP_CSQ_IB2_STAT_CSQ_WPTR_INDIRECT2_SIZE;
+ unsigned int : 9;
+ } cp_csq_ib2_stat_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_csq_ib2_stat_t {
+ unsigned int : 9;
+ unsigned int csq_wptr_indirect2 : CP_CSQ_IB2_STAT_CSQ_WPTR_INDIRECT2_SIZE;
+ unsigned int : 9;
+ unsigned int csq_rptr_indirect2 : CP_CSQ_IB2_STAT_CSQ_RPTR_INDIRECT2_SIZE;
+ } cp_csq_ib2_stat_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_csq_ib2_stat_t f;
+} cp_csq_ib2_stat_u;
+
+
+/*
+ * CP_NON_PREFETCH_CNTRS struct
+ */
+
+#define CP_NON_PREFETCH_CNTRS_IB1_COUNTER_SIZE 3
+#define CP_NON_PREFETCH_CNTRS_IB2_COUNTER_SIZE 3
+
+#define CP_NON_PREFETCH_CNTRS_IB1_COUNTER_SHIFT 0
+#define CP_NON_PREFETCH_CNTRS_IB2_COUNTER_SHIFT 8
+
+#define CP_NON_PREFETCH_CNTRS_IB1_COUNTER_MASK 0x00000007
+#define CP_NON_PREFETCH_CNTRS_IB2_COUNTER_MASK 0x00000700
+
+#define CP_NON_PREFETCH_CNTRS_MASK \
+ (CP_NON_PREFETCH_CNTRS_IB1_COUNTER_MASK | \
+ CP_NON_PREFETCH_CNTRS_IB2_COUNTER_MASK)
+
+#define CP_NON_PREFETCH_CNTRS(ib1_counter, ib2_counter) \
+ ((ib1_counter << CP_NON_PREFETCH_CNTRS_IB1_COUNTER_SHIFT) | \
+ (ib2_counter << CP_NON_PREFETCH_CNTRS_IB2_COUNTER_SHIFT))
+
+#define CP_NON_PREFETCH_CNTRS_GET_IB1_COUNTER(cp_non_prefetch_cntrs) \
+ ((cp_non_prefetch_cntrs & CP_NON_PREFETCH_CNTRS_IB1_COUNTER_MASK) >> CP_NON_PREFETCH_CNTRS_IB1_COUNTER_SHIFT)
+#define CP_NON_PREFETCH_CNTRS_GET_IB2_COUNTER(cp_non_prefetch_cntrs) \
+ ((cp_non_prefetch_cntrs & CP_NON_PREFETCH_CNTRS_IB2_COUNTER_MASK) >> CP_NON_PREFETCH_CNTRS_IB2_COUNTER_SHIFT)
+
+#define CP_NON_PREFETCH_CNTRS_SET_IB1_COUNTER(cp_non_prefetch_cntrs_reg, ib1_counter) \
+ cp_non_prefetch_cntrs_reg = (cp_non_prefetch_cntrs_reg & ~CP_NON_PREFETCH_CNTRS_IB1_COUNTER_MASK) | (ib1_counter << CP_NON_PREFETCH_CNTRS_IB1_COUNTER_SHIFT)
+#define CP_NON_PREFETCH_CNTRS_SET_IB2_COUNTER(cp_non_prefetch_cntrs_reg, ib2_counter) \
+ cp_non_prefetch_cntrs_reg = (cp_non_prefetch_cntrs_reg & ~CP_NON_PREFETCH_CNTRS_IB2_COUNTER_MASK) | (ib2_counter << CP_NON_PREFETCH_CNTRS_IB2_COUNTER_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_non_prefetch_cntrs_t {
+ unsigned int ib1_counter : CP_NON_PREFETCH_CNTRS_IB1_COUNTER_SIZE;
+ unsigned int : 5;
+ unsigned int ib2_counter : CP_NON_PREFETCH_CNTRS_IB2_COUNTER_SIZE;
+ unsigned int : 21;
+ } cp_non_prefetch_cntrs_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_non_prefetch_cntrs_t {
+ unsigned int : 21;
+ unsigned int ib2_counter : CP_NON_PREFETCH_CNTRS_IB2_COUNTER_SIZE;
+ unsigned int : 5;
+ unsigned int ib1_counter : CP_NON_PREFETCH_CNTRS_IB1_COUNTER_SIZE;
+ } cp_non_prefetch_cntrs_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_non_prefetch_cntrs_t f;
+} cp_non_prefetch_cntrs_u;
+
+
+/*
+ * CP_STQ_ST_STAT struct
+ */
+
+#define CP_STQ_ST_STAT_STQ_RPTR_ST_SIZE 7
+#define CP_STQ_ST_STAT_STQ_WPTR_ST_SIZE 7
+
+#define CP_STQ_ST_STAT_STQ_RPTR_ST_SHIFT 0
+#define CP_STQ_ST_STAT_STQ_WPTR_ST_SHIFT 16
+
+#define CP_STQ_ST_STAT_STQ_RPTR_ST_MASK 0x0000007f
+#define CP_STQ_ST_STAT_STQ_WPTR_ST_MASK 0x007f0000
+
+#define CP_STQ_ST_STAT_MASK \
+ (CP_STQ_ST_STAT_STQ_RPTR_ST_MASK | \
+ CP_STQ_ST_STAT_STQ_WPTR_ST_MASK)
+
+#define CP_STQ_ST_STAT(stq_rptr_st, stq_wptr_st) \
+ ((stq_rptr_st << CP_STQ_ST_STAT_STQ_RPTR_ST_SHIFT) | \
+ (stq_wptr_st << CP_STQ_ST_STAT_STQ_WPTR_ST_SHIFT))
+
+#define CP_STQ_ST_STAT_GET_STQ_RPTR_ST(cp_stq_st_stat) \
+ ((cp_stq_st_stat & CP_STQ_ST_STAT_STQ_RPTR_ST_MASK) >> CP_STQ_ST_STAT_STQ_RPTR_ST_SHIFT)
+#define CP_STQ_ST_STAT_GET_STQ_WPTR_ST(cp_stq_st_stat) \
+ ((cp_stq_st_stat & CP_STQ_ST_STAT_STQ_WPTR_ST_MASK) >> CP_STQ_ST_STAT_STQ_WPTR_ST_SHIFT)
+
+#define CP_STQ_ST_STAT_SET_STQ_RPTR_ST(cp_stq_st_stat_reg, stq_rptr_st) \
+ cp_stq_st_stat_reg = (cp_stq_st_stat_reg & ~CP_STQ_ST_STAT_STQ_RPTR_ST_MASK) | (stq_rptr_st << CP_STQ_ST_STAT_STQ_RPTR_ST_SHIFT)
+#define CP_STQ_ST_STAT_SET_STQ_WPTR_ST(cp_stq_st_stat_reg, stq_wptr_st) \
+ cp_stq_st_stat_reg = (cp_stq_st_stat_reg & ~CP_STQ_ST_STAT_STQ_WPTR_ST_MASK) | (stq_wptr_st << CP_STQ_ST_STAT_STQ_WPTR_ST_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_stq_st_stat_t {
+ unsigned int stq_rptr_st : CP_STQ_ST_STAT_STQ_RPTR_ST_SIZE;
+ unsigned int : 9;
+ unsigned int stq_wptr_st : CP_STQ_ST_STAT_STQ_WPTR_ST_SIZE;
+ unsigned int : 9;
+ } cp_stq_st_stat_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_stq_st_stat_t {
+ unsigned int : 9;
+ unsigned int stq_wptr_st : CP_STQ_ST_STAT_STQ_WPTR_ST_SIZE;
+ unsigned int : 9;
+ unsigned int stq_rptr_st : CP_STQ_ST_STAT_STQ_RPTR_ST_SIZE;
+ } cp_stq_st_stat_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_stq_st_stat_t f;
+} cp_stq_st_stat_u;
+
+
+/*
+ * CP_MEQ_STAT struct
+ */
+
+#define CP_MEQ_STAT_MEQ_RPTR_SIZE 10
+#define CP_MEQ_STAT_MEQ_WPTR_SIZE 10
+
+#define CP_MEQ_STAT_MEQ_RPTR_SHIFT 0
+#define CP_MEQ_STAT_MEQ_WPTR_SHIFT 16
+
+#define CP_MEQ_STAT_MEQ_RPTR_MASK 0x000003ff
+#define CP_MEQ_STAT_MEQ_WPTR_MASK 0x03ff0000
+
+#define CP_MEQ_STAT_MASK \
+ (CP_MEQ_STAT_MEQ_RPTR_MASK | \
+ CP_MEQ_STAT_MEQ_WPTR_MASK)
+
+#define CP_MEQ_STAT(meq_rptr, meq_wptr) \
+ ((meq_rptr << CP_MEQ_STAT_MEQ_RPTR_SHIFT) | \
+ (meq_wptr << CP_MEQ_STAT_MEQ_WPTR_SHIFT))
+
+#define CP_MEQ_STAT_GET_MEQ_RPTR(cp_meq_stat) \
+ ((cp_meq_stat & CP_MEQ_STAT_MEQ_RPTR_MASK) >> CP_MEQ_STAT_MEQ_RPTR_SHIFT)
+#define CP_MEQ_STAT_GET_MEQ_WPTR(cp_meq_stat) \
+ ((cp_meq_stat & CP_MEQ_STAT_MEQ_WPTR_MASK) >> CP_MEQ_STAT_MEQ_WPTR_SHIFT)
+
+#define CP_MEQ_STAT_SET_MEQ_RPTR(cp_meq_stat_reg, meq_rptr) \
+ cp_meq_stat_reg = (cp_meq_stat_reg & ~CP_MEQ_STAT_MEQ_RPTR_MASK) | (meq_rptr << CP_MEQ_STAT_MEQ_RPTR_SHIFT)
+#define CP_MEQ_STAT_SET_MEQ_WPTR(cp_meq_stat_reg, meq_wptr) \
+ cp_meq_stat_reg = (cp_meq_stat_reg & ~CP_MEQ_STAT_MEQ_WPTR_MASK) | (meq_wptr << CP_MEQ_STAT_MEQ_WPTR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_meq_stat_t {
+ unsigned int meq_rptr : CP_MEQ_STAT_MEQ_RPTR_SIZE;
+ unsigned int : 6;
+ unsigned int meq_wptr : CP_MEQ_STAT_MEQ_WPTR_SIZE;
+ unsigned int : 6;
+ } cp_meq_stat_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_meq_stat_t {
+ unsigned int : 6;
+ unsigned int meq_wptr : CP_MEQ_STAT_MEQ_WPTR_SIZE;
+ unsigned int : 6;
+ unsigned int meq_rptr : CP_MEQ_STAT_MEQ_RPTR_SIZE;
+ } cp_meq_stat_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_meq_stat_t f;
+} cp_meq_stat_u;
+
+
+/*
+ * CP_MIU_TAG_STAT struct
+ */
+
+#define CP_MIU_TAG_STAT_TAG_0_STAT_SIZE 1
+#define CP_MIU_TAG_STAT_TAG_1_STAT_SIZE 1
+#define CP_MIU_TAG_STAT_TAG_2_STAT_SIZE 1
+#define CP_MIU_TAG_STAT_TAG_3_STAT_SIZE 1
+#define CP_MIU_TAG_STAT_TAG_4_STAT_SIZE 1
+#define CP_MIU_TAG_STAT_TAG_5_STAT_SIZE 1
+#define CP_MIU_TAG_STAT_TAG_6_STAT_SIZE 1
+#define CP_MIU_TAG_STAT_TAG_7_STAT_SIZE 1
+#define CP_MIU_TAG_STAT_TAG_8_STAT_SIZE 1
+#define CP_MIU_TAG_STAT_TAG_9_STAT_SIZE 1
+#define CP_MIU_TAG_STAT_TAG_10_STAT_SIZE 1
+#define CP_MIU_TAG_STAT_TAG_11_STAT_SIZE 1
+#define CP_MIU_TAG_STAT_TAG_12_STAT_SIZE 1
+#define CP_MIU_TAG_STAT_TAG_13_STAT_SIZE 1
+#define CP_MIU_TAG_STAT_TAG_14_STAT_SIZE 1
+#define CP_MIU_TAG_STAT_TAG_15_STAT_SIZE 1
+#define CP_MIU_TAG_STAT_TAG_16_STAT_SIZE 1
+#define CP_MIU_TAG_STAT_TAG_17_STAT_SIZE 1
+#define CP_MIU_TAG_STAT_INVALID_RETURN_TAG_SIZE 1
+
+#define CP_MIU_TAG_STAT_TAG_0_STAT_SHIFT 0
+#define CP_MIU_TAG_STAT_TAG_1_STAT_SHIFT 1
+#define CP_MIU_TAG_STAT_TAG_2_STAT_SHIFT 2
+#define CP_MIU_TAG_STAT_TAG_3_STAT_SHIFT 3
+#define CP_MIU_TAG_STAT_TAG_4_STAT_SHIFT 4
+#define CP_MIU_TAG_STAT_TAG_5_STAT_SHIFT 5
+#define CP_MIU_TAG_STAT_TAG_6_STAT_SHIFT 6
+#define CP_MIU_TAG_STAT_TAG_7_STAT_SHIFT 7
+#define CP_MIU_TAG_STAT_TAG_8_STAT_SHIFT 8
+#define CP_MIU_TAG_STAT_TAG_9_STAT_SHIFT 9
+#define CP_MIU_TAG_STAT_TAG_10_STAT_SHIFT 10
+#define CP_MIU_TAG_STAT_TAG_11_STAT_SHIFT 11
+#define CP_MIU_TAG_STAT_TAG_12_STAT_SHIFT 12
+#define CP_MIU_TAG_STAT_TAG_13_STAT_SHIFT 13
+#define CP_MIU_TAG_STAT_TAG_14_STAT_SHIFT 14
+#define CP_MIU_TAG_STAT_TAG_15_STAT_SHIFT 15
+#define CP_MIU_TAG_STAT_TAG_16_STAT_SHIFT 16
+#define CP_MIU_TAG_STAT_TAG_17_STAT_SHIFT 17
+#define CP_MIU_TAG_STAT_INVALID_RETURN_TAG_SHIFT 31
+
+#define CP_MIU_TAG_STAT_TAG_0_STAT_MASK 0x00000001
+#define CP_MIU_TAG_STAT_TAG_1_STAT_MASK 0x00000002
+#define CP_MIU_TAG_STAT_TAG_2_STAT_MASK 0x00000004
+#define CP_MIU_TAG_STAT_TAG_3_STAT_MASK 0x00000008
+#define CP_MIU_TAG_STAT_TAG_4_STAT_MASK 0x00000010
+#define CP_MIU_TAG_STAT_TAG_5_STAT_MASK 0x00000020
+#define CP_MIU_TAG_STAT_TAG_6_STAT_MASK 0x00000040
+#define CP_MIU_TAG_STAT_TAG_7_STAT_MASK 0x00000080
+#define CP_MIU_TAG_STAT_TAG_8_STAT_MASK 0x00000100
+#define CP_MIU_TAG_STAT_TAG_9_STAT_MASK 0x00000200
+#define CP_MIU_TAG_STAT_TAG_10_STAT_MASK 0x00000400
+#define CP_MIU_TAG_STAT_TAG_11_STAT_MASK 0x00000800
+#define CP_MIU_TAG_STAT_TAG_12_STAT_MASK 0x00001000
+#define CP_MIU_TAG_STAT_TAG_13_STAT_MASK 0x00002000
+#define CP_MIU_TAG_STAT_TAG_14_STAT_MASK 0x00004000
+#define CP_MIU_TAG_STAT_TAG_15_STAT_MASK 0x00008000
+#define CP_MIU_TAG_STAT_TAG_16_STAT_MASK 0x00010000
+#define CP_MIU_TAG_STAT_TAG_17_STAT_MASK 0x00020000
+#define CP_MIU_TAG_STAT_INVALID_RETURN_TAG_MASK 0x80000000
+
+#define CP_MIU_TAG_STAT_MASK \
+ (CP_MIU_TAG_STAT_TAG_0_STAT_MASK | \
+ CP_MIU_TAG_STAT_TAG_1_STAT_MASK | \
+ CP_MIU_TAG_STAT_TAG_2_STAT_MASK | \
+ CP_MIU_TAG_STAT_TAG_3_STAT_MASK | \
+ CP_MIU_TAG_STAT_TAG_4_STAT_MASK | \
+ CP_MIU_TAG_STAT_TAG_5_STAT_MASK | \
+ CP_MIU_TAG_STAT_TAG_6_STAT_MASK | \
+ CP_MIU_TAG_STAT_TAG_7_STAT_MASK | \
+ CP_MIU_TAG_STAT_TAG_8_STAT_MASK | \
+ CP_MIU_TAG_STAT_TAG_9_STAT_MASK | \
+ CP_MIU_TAG_STAT_TAG_10_STAT_MASK | \
+ CP_MIU_TAG_STAT_TAG_11_STAT_MASK | \
+ CP_MIU_TAG_STAT_TAG_12_STAT_MASK | \
+ CP_MIU_TAG_STAT_TAG_13_STAT_MASK | \
+ CP_MIU_TAG_STAT_TAG_14_STAT_MASK | \
+ CP_MIU_TAG_STAT_TAG_15_STAT_MASK | \
+ CP_MIU_TAG_STAT_TAG_16_STAT_MASK | \
+ CP_MIU_TAG_STAT_TAG_17_STAT_MASK | \
+ CP_MIU_TAG_STAT_INVALID_RETURN_TAG_MASK)
+
+#define CP_MIU_TAG_STAT(tag_0_stat, tag_1_stat, tag_2_stat, tag_3_stat, tag_4_stat, tag_5_stat, tag_6_stat, tag_7_stat, tag_8_stat, tag_9_stat, tag_10_stat, tag_11_stat, tag_12_stat, tag_13_stat, tag_14_stat, tag_15_stat, tag_16_stat, tag_17_stat, invalid_return_tag) \
+ ((tag_0_stat << CP_MIU_TAG_STAT_TAG_0_STAT_SHIFT) | \
+ (tag_1_stat << CP_MIU_TAG_STAT_TAG_1_STAT_SHIFT) | \
+ (tag_2_stat << CP_MIU_TAG_STAT_TAG_2_STAT_SHIFT) | \
+ (tag_3_stat << CP_MIU_TAG_STAT_TAG_3_STAT_SHIFT) | \
+ (tag_4_stat << CP_MIU_TAG_STAT_TAG_4_STAT_SHIFT) | \
+ (tag_5_stat << CP_MIU_TAG_STAT_TAG_5_STAT_SHIFT) | \
+ (tag_6_stat << CP_MIU_TAG_STAT_TAG_6_STAT_SHIFT) | \
+ (tag_7_stat << CP_MIU_TAG_STAT_TAG_7_STAT_SHIFT) | \
+ (tag_8_stat << CP_MIU_TAG_STAT_TAG_8_STAT_SHIFT) | \
+ (tag_9_stat << CP_MIU_TAG_STAT_TAG_9_STAT_SHIFT) | \
+ (tag_10_stat << CP_MIU_TAG_STAT_TAG_10_STAT_SHIFT) | \
+ (tag_11_stat << CP_MIU_TAG_STAT_TAG_11_STAT_SHIFT) | \
+ (tag_12_stat << CP_MIU_TAG_STAT_TAG_12_STAT_SHIFT) | \
+ (tag_13_stat << CP_MIU_TAG_STAT_TAG_13_STAT_SHIFT) | \
+ (tag_14_stat << CP_MIU_TAG_STAT_TAG_14_STAT_SHIFT) | \
+ (tag_15_stat << CP_MIU_TAG_STAT_TAG_15_STAT_SHIFT) | \
+ (tag_16_stat << CP_MIU_TAG_STAT_TAG_16_STAT_SHIFT) | \
+ (tag_17_stat << CP_MIU_TAG_STAT_TAG_17_STAT_SHIFT) | \
+ (invalid_return_tag << CP_MIU_TAG_STAT_INVALID_RETURN_TAG_SHIFT))
+
+#define CP_MIU_TAG_STAT_GET_TAG_0_STAT(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_TAG_0_STAT_MASK) >> CP_MIU_TAG_STAT_TAG_0_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_GET_TAG_1_STAT(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_TAG_1_STAT_MASK) >> CP_MIU_TAG_STAT_TAG_1_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_GET_TAG_2_STAT(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_TAG_2_STAT_MASK) >> CP_MIU_TAG_STAT_TAG_2_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_GET_TAG_3_STAT(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_TAG_3_STAT_MASK) >> CP_MIU_TAG_STAT_TAG_3_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_GET_TAG_4_STAT(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_TAG_4_STAT_MASK) >> CP_MIU_TAG_STAT_TAG_4_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_GET_TAG_5_STAT(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_TAG_5_STAT_MASK) >> CP_MIU_TAG_STAT_TAG_5_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_GET_TAG_6_STAT(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_TAG_6_STAT_MASK) >> CP_MIU_TAG_STAT_TAG_6_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_GET_TAG_7_STAT(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_TAG_7_STAT_MASK) >> CP_MIU_TAG_STAT_TAG_7_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_GET_TAG_8_STAT(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_TAG_8_STAT_MASK) >> CP_MIU_TAG_STAT_TAG_8_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_GET_TAG_9_STAT(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_TAG_9_STAT_MASK) >> CP_MIU_TAG_STAT_TAG_9_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_GET_TAG_10_STAT(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_TAG_10_STAT_MASK) >> CP_MIU_TAG_STAT_TAG_10_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_GET_TAG_11_STAT(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_TAG_11_STAT_MASK) >> CP_MIU_TAG_STAT_TAG_11_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_GET_TAG_12_STAT(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_TAG_12_STAT_MASK) >> CP_MIU_TAG_STAT_TAG_12_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_GET_TAG_13_STAT(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_TAG_13_STAT_MASK) >> CP_MIU_TAG_STAT_TAG_13_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_GET_TAG_14_STAT(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_TAG_14_STAT_MASK) >> CP_MIU_TAG_STAT_TAG_14_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_GET_TAG_15_STAT(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_TAG_15_STAT_MASK) >> CP_MIU_TAG_STAT_TAG_15_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_GET_TAG_16_STAT(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_TAG_16_STAT_MASK) >> CP_MIU_TAG_STAT_TAG_16_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_GET_TAG_17_STAT(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_TAG_17_STAT_MASK) >> CP_MIU_TAG_STAT_TAG_17_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_GET_INVALID_RETURN_TAG(cp_miu_tag_stat) \
+ ((cp_miu_tag_stat & CP_MIU_TAG_STAT_INVALID_RETURN_TAG_MASK) >> CP_MIU_TAG_STAT_INVALID_RETURN_TAG_SHIFT)
+
+#define CP_MIU_TAG_STAT_SET_TAG_0_STAT(cp_miu_tag_stat_reg, tag_0_stat) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_TAG_0_STAT_MASK) | (tag_0_stat << CP_MIU_TAG_STAT_TAG_0_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_SET_TAG_1_STAT(cp_miu_tag_stat_reg, tag_1_stat) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_TAG_1_STAT_MASK) | (tag_1_stat << CP_MIU_TAG_STAT_TAG_1_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_SET_TAG_2_STAT(cp_miu_tag_stat_reg, tag_2_stat) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_TAG_2_STAT_MASK) | (tag_2_stat << CP_MIU_TAG_STAT_TAG_2_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_SET_TAG_3_STAT(cp_miu_tag_stat_reg, tag_3_stat) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_TAG_3_STAT_MASK) | (tag_3_stat << CP_MIU_TAG_STAT_TAG_3_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_SET_TAG_4_STAT(cp_miu_tag_stat_reg, tag_4_stat) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_TAG_4_STAT_MASK) | (tag_4_stat << CP_MIU_TAG_STAT_TAG_4_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_SET_TAG_5_STAT(cp_miu_tag_stat_reg, tag_5_stat) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_TAG_5_STAT_MASK) | (tag_5_stat << CP_MIU_TAG_STAT_TAG_5_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_SET_TAG_6_STAT(cp_miu_tag_stat_reg, tag_6_stat) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_TAG_6_STAT_MASK) | (tag_6_stat << CP_MIU_TAG_STAT_TAG_6_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_SET_TAG_7_STAT(cp_miu_tag_stat_reg, tag_7_stat) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_TAG_7_STAT_MASK) | (tag_7_stat << CP_MIU_TAG_STAT_TAG_7_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_SET_TAG_8_STAT(cp_miu_tag_stat_reg, tag_8_stat) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_TAG_8_STAT_MASK) | (tag_8_stat << CP_MIU_TAG_STAT_TAG_8_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_SET_TAG_9_STAT(cp_miu_tag_stat_reg, tag_9_stat) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_TAG_9_STAT_MASK) | (tag_9_stat << CP_MIU_TAG_STAT_TAG_9_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_SET_TAG_10_STAT(cp_miu_tag_stat_reg, tag_10_stat) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_TAG_10_STAT_MASK) | (tag_10_stat << CP_MIU_TAG_STAT_TAG_10_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_SET_TAG_11_STAT(cp_miu_tag_stat_reg, tag_11_stat) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_TAG_11_STAT_MASK) | (tag_11_stat << CP_MIU_TAG_STAT_TAG_11_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_SET_TAG_12_STAT(cp_miu_tag_stat_reg, tag_12_stat) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_TAG_12_STAT_MASK) | (tag_12_stat << CP_MIU_TAG_STAT_TAG_12_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_SET_TAG_13_STAT(cp_miu_tag_stat_reg, tag_13_stat) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_TAG_13_STAT_MASK) | (tag_13_stat << CP_MIU_TAG_STAT_TAG_13_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_SET_TAG_14_STAT(cp_miu_tag_stat_reg, tag_14_stat) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_TAG_14_STAT_MASK) | (tag_14_stat << CP_MIU_TAG_STAT_TAG_14_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_SET_TAG_15_STAT(cp_miu_tag_stat_reg, tag_15_stat) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_TAG_15_STAT_MASK) | (tag_15_stat << CP_MIU_TAG_STAT_TAG_15_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_SET_TAG_16_STAT(cp_miu_tag_stat_reg, tag_16_stat) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_TAG_16_STAT_MASK) | (tag_16_stat << CP_MIU_TAG_STAT_TAG_16_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_SET_TAG_17_STAT(cp_miu_tag_stat_reg, tag_17_stat) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_TAG_17_STAT_MASK) | (tag_17_stat << CP_MIU_TAG_STAT_TAG_17_STAT_SHIFT)
+#define CP_MIU_TAG_STAT_SET_INVALID_RETURN_TAG(cp_miu_tag_stat_reg, invalid_return_tag) \
+ cp_miu_tag_stat_reg = (cp_miu_tag_stat_reg & ~CP_MIU_TAG_STAT_INVALID_RETURN_TAG_MASK) | (invalid_return_tag << CP_MIU_TAG_STAT_INVALID_RETURN_TAG_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_miu_tag_stat_t {
+ unsigned int tag_0_stat : CP_MIU_TAG_STAT_TAG_0_STAT_SIZE;
+ unsigned int tag_1_stat : CP_MIU_TAG_STAT_TAG_1_STAT_SIZE;
+ unsigned int tag_2_stat : CP_MIU_TAG_STAT_TAG_2_STAT_SIZE;
+ unsigned int tag_3_stat : CP_MIU_TAG_STAT_TAG_3_STAT_SIZE;
+ unsigned int tag_4_stat : CP_MIU_TAG_STAT_TAG_4_STAT_SIZE;
+ unsigned int tag_5_stat : CP_MIU_TAG_STAT_TAG_5_STAT_SIZE;
+ unsigned int tag_6_stat : CP_MIU_TAG_STAT_TAG_6_STAT_SIZE;
+ unsigned int tag_7_stat : CP_MIU_TAG_STAT_TAG_7_STAT_SIZE;
+ unsigned int tag_8_stat : CP_MIU_TAG_STAT_TAG_8_STAT_SIZE;
+ unsigned int tag_9_stat : CP_MIU_TAG_STAT_TAG_9_STAT_SIZE;
+ unsigned int tag_10_stat : CP_MIU_TAG_STAT_TAG_10_STAT_SIZE;
+ unsigned int tag_11_stat : CP_MIU_TAG_STAT_TAG_11_STAT_SIZE;
+ unsigned int tag_12_stat : CP_MIU_TAG_STAT_TAG_12_STAT_SIZE;
+ unsigned int tag_13_stat : CP_MIU_TAG_STAT_TAG_13_STAT_SIZE;
+ unsigned int tag_14_stat : CP_MIU_TAG_STAT_TAG_14_STAT_SIZE;
+ unsigned int tag_15_stat : CP_MIU_TAG_STAT_TAG_15_STAT_SIZE;
+ unsigned int tag_16_stat : CP_MIU_TAG_STAT_TAG_16_STAT_SIZE;
+ unsigned int tag_17_stat : CP_MIU_TAG_STAT_TAG_17_STAT_SIZE;
+ unsigned int : 13;
+ unsigned int invalid_return_tag : CP_MIU_TAG_STAT_INVALID_RETURN_TAG_SIZE;
+ } cp_miu_tag_stat_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_miu_tag_stat_t {
+ unsigned int invalid_return_tag : CP_MIU_TAG_STAT_INVALID_RETURN_TAG_SIZE;
+ unsigned int : 13;
+ unsigned int tag_17_stat : CP_MIU_TAG_STAT_TAG_17_STAT_SIZE;
+ unsigned int tag_16_stat : CP_MIU_TAG_STAT_TAG_16_STAT_SIZE;
+ unsigned int tag_15_stat : CP_MIU_TAG_STAT_TAG_15_STAT_SIZE;
+ unsigned int tag_14_stat : CP_MIU_TAG_STAT_TAG_14_STAT_SIZE;
+ unsigned int tag_13_stat : CP_MIU_TAG_STAT_TAG_13_STAT_SIZE;
+ unsigned int tag_12_stat : CP_MIU_TAG_STAT_TAG_12_STAT_SIZE;
+ unsigned int tag_11_stat : CP_MIU_TAG_STAT_TAG_11_STAT_SIZE;
+ unsigned int tag_10_stat : CP_MIU_TAG_STAT_TAG_10_STAT_SIZE;
+ unsigned int tag_9_stat : CP_MIU_TAG_STAT_TAG_9_STAT_SIZE;
+ unsigned int tag_8_stat : CP_MIU_TAG_STAT_TAG_8_STAT_SIZE;
+ unsigned int tag_7_stat : CP_MIU_TAG_STAT_TAG_7_STAT_SIZE;
+ unsigned int tag_6_stat : CP_MIU_TAG_STAT_TAG_6_STAT_SIZE;
+ unsigned int tag_5_stat : CP_MIU_TAG_STAT_TAG_5_STAT_SIZE;
+ unsigned int tag_4_stat : CP_MIU_TAG_STAT_TAG_4_STAT_SIZE;
+ unsigned int tag_3_stat : CP_MIU_TAG_STAT_TAG_3_STAT_SIZE;
+ unsigned int tag_2_stat : CP_MIU_TAG_STAT_TAG_2_STAT_SIZE;
+ unsigned int tag_1_stat : CP_MIU_TAG_STAT_TAG_1_STAT_SIZE;
+ unsigned int tag_0_stat : CP_MIU_TAG_STAT_TAG_0_STAT_SIZE;
+ } cp_miu_tag_stat_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_miu_tag_stat_t f;
+} cp_miu_tag_stat_u;
+
+
+/*
+ * CP_CMD_INDEX struct
+ */
+
+#define CP_CMD_INDEX_CMD_INDEX_SIZE 7
+#define CP_CMD_INDEX_CMD_QUEUE_SEL_SIZE 2
+
+#define CP_CMD_INDEX_CMD_INDEX_SHIFT 0
+#define CP_CMD_INDEX_CMD_QUEUE_SEL_SHIFT 16
+
+#define CP_CMD_INDEX_CMD_INDEX_MASK 0x0000007f
+#define CP_CMD_INDEX_CMD_QUEUE_SEL_MASK 0x00030000
+
+#define CP_CMD_INDEX_MASK \
+ (CP_CMD_INDEX_CMD_INDEX_MASK | \
+ CP_CMD_INDEX_CMD_QUEUE_SEL_MASK)
+
+#define CP_CMD_INDEX(cmd_index, cmd_queue_sel) \
+ ((cmd_index << CP_CMD_INDEX_CMD_INDEX_SHIFT) | \
+ (cmd_queue_sel << CP_CMD_INDEX_CMD_QUEUE_SEL_SHIFT))
+
+#define CP_CMD_INDEX_GET_CMD_INDEX(cp_cmd_index) \
+ ((cp_cmd_index & CP_CMD_INDEX_CMD_INDEX_MASK) >> CP_CMD_INDEX_CMD_INDEX_SHIFT)
+#define CP_CMD_INDEX_GET_CMD_QUEUE_SEL(cp_cmd_index) \
+ ((cp_cmd_index & CP_CMD_INDEX_CMD_QUEUE_SEL_MASK) >> CP_CMD_INDEX_CMD_QUEUE_SEL_SHIFT)
+
+#define CP_CMD_INDEX_SET_CMD_INDEX(cp_cmd_index_reg, cmd_index) \
+ cp_cmd_index_reg = (cp_cmd_index_reg & ~CP_CMD_INDEX_CMD_INDEX_MASK) | (cmd_index << CP_CMD_INDEX_CMD_INDEX_SHIFT)
+#define CP_CMD_INDEX_SET_CMD_QUEUE_SEL(cp_cmd_index_reg, cmd_queue_sel) \
+ cp_cmd_index_reg = (cp_cmd_index_reg & ~CP_CMD_INDEX_CMD_QUEUE_SEL_MASK) | (cmd_queue_sel << CP_CMD_INDEX_CMD_QUEUE_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_cmd_index_t {
+ unsigned int cmd_index : CP_CMD_INDEX_CMD_INDEX_SIZE;
+ unsigned int : 9;
+ unsigned int cmd_queue_sel : CP_CMD_INDEX_CMD_QUEUE_SEL_SIZE;
+ unsigned int : 14;
+ } cp_cmd_index_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_cmd_index_t {
+ unsigned int : 14;
+ unsigned int cmd_queue_sel : CP_CMD_INDEX_CMD_QUEUE_SEL_SIZE;
+ unsigned int : 9;
+ unsigned int cmd_index : CP_CMD_INDEX_CMD_INDEX_SIZE;
+ } cp_cmd_index_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_cmd_index_t f;
+} cp_cmd_index_u;
+
+
+/*
+ * CP_CMD_DATA struct
+ */
+
+#define CP_CMD_DATA_CMD_DATA_SIZE 32
+
+#define CP_CMD_DATA_CMD_DATA_SHIFT 0
+
+#define CP_CMD_DATA_CMD_DATA_MASK 0xffffffff
+
+#define CP_CMD_DATA_MASK \
+ (CP_CMD_DATA_CMD_DATA_MASK)
+
+#define CP_CMD_DATA(cmd_data) \
+ ((cmd_data << CP_CMD_DATA_CMD_DATA_SHIFT))
+
+#define CP_CMD_DATA_GET_CMD_DATA(cp_cmd_data) \
+ ((cp_cmd_data & CP_CMD_DATA_CMD_DATA_MASK) >> CP_CMD_DATA_CMD_DATA_SHIFT)
+
+#define CP_CMD_DATA_SET_CMD_DATA(cp_cmd_data_reg, cmd_data) \
+ cp_cmd_data_reg = (cp_cmd_data_reg & ~CP_CMD_DATA_CMD_DATA_MASK) | (cmd_data << CP_CMD_DATA_CMD_DATA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_cmd_data_t {
+ unsigned int cmd_data : CP_CMD_DATA_CMD_DATA_SIZE;
+ } cp_cmd_data_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_cmd_data_t {
+ unsigned int cmd_data : CP_CMD_DATA_CMD_DATA_SIZE;
+ } cp_cmd_data_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_cmd_data_t f;
+} cp_cmd_data_u;
+
+
+/*
+ * CP_ME_CNTL struct
+ */
+
+#define CP_ME_CNTL_ME_STATMUX_SIZE 16
+#define CP_ME_CNTL_VTX_DEALLOC_FIFO_EMPTY_SIZE 1
+#define CP_ME_CNTL_PIX_DEALLOC_FIFO_EMPTY_SIZE 1
+#define CP_ME_CNTL_ME_HALT_SIZE 1
+#define CP_ME_CNTL_ME_BUSY_SIZE 1
+#define CP_ME_CNTL_PROG_CNT_SIZE_SIZE 1
+
+#define CP_ME_CNTL_ME_STATMUX_SHIFT 0
+#define CP_ME_CNTL_VTX_DEALLOC_FIFO_EMPTY_SHIFT 25
+#define CP_ME_CNTL_PIX_DEALLOC_FIFO_EMPTY_SHIFT 26
+#define CP_ME_CNTL_ME_HALT_SHIFT 28
+#define CP_ME_CNTL_ME_BUSY_SHIFT 29
+#define CP_ME_CNTL_PROG_CNT_SIZE_SHIFT 31
+
+#define CP_ME_CNTL_ME_STATMUX_MASK 0x0000ffff
+#define CP_ME_CNTL_VTX_DEALLOC_FIFO_EMPTY_MASK 0x02000000
+#define CP_ME_CNTL_PIX_DEALLOC_FIFO_EMPTY_MASK 0x04000000
+#define CP_ME_CNTL_ME_HALT_MASK 0x10000000
+#define CP_ME_CNTL_ME_BUSY_MASK 0x20000000
+#define CP_ME_CNTL_PROG_CNT_SIZE_MASK 0x80000000
+
+#define CP_ME_CNTL_MASK \
+ (CP_ME_CNTL_ME_STATMUX_MASK | \
+ CP_ME_CNTL_VTX_DEALLOC_FIFO_EMPTY_MASK | \
+ CP_ME_CNTL_PIX_DEALLOC_FIFO_EMPTY_MASK | \
+ CP_ME_CNTL_ME_HALT_MASK | \
+ CP_ME_CNTL_ME_BUSY_MASK | \
+ CP_ME_CNTL_PROG_CNT_SIZE_MASK)
+
+#define CP_ME_CNTL(me_statmux, vtx_dealloc_fifo_empty, pix_dealloc_fifo_empty, me_halt, me_busy, prog_cnt_size) \
+ ((me_statmux << CP_ME_CNTL_ME_STATMUX_SHIFT) | \
+ (vtx_dealloc_fifo_empty << CP_ME_CNTL_VTX_DEALLOC_FIFO_EMPTY_SHIFT) | \
+ (pix_dealloc_fifo_empty << CP_ME_CNTL_PIX_DEALLOC_FIFO_EMPTY_SHIFT) | \
+ (me_halt << CP_ME_CNTL_ME_HALT_SHIFT) | \
+ (me_busy << CP_ME_CNTL_ME_BUSY_SHIFT) | \
+ (prog_cnt_size << CP_ME_CNTL_PROG_CNT_SIZE_SHIFT))
+
+#define CP_ME_CNTL_GET_ME_STATMUX(cp_me_cntl) \
+ ((cp_me_cntl & CP_ME_CNTL_ME_STATMUX_MASK) >> CP_ME_CNTL_ME_STATMUX_SHIFT)
+#define CP_ME_CNTL_GET_VTX_DEALLOC_FIFO_EMPTY(cp_me_cntl) \
+ ((cp_me_cntl & CP_ME_CNTL_VTX_DEALLOC_FIFO_EMPTY_MASK) >> CP_ME_CNTL_VTX_DEALLOC_FIFO_EMPTY_SHIFT)
+#define CP_ME_CNTL_GET_PIX_DEALLOC_FIFO_EMPTY(cp_me_cntl) \
+ ((cp_me_cntl & CP_ME_CNTL_PIX_DEALLOC_FIFO_EMPTY_MASK) >> CP_ME_CNTL_PIX_DEALLOC_FIFO_EMPTY_SHIFT)
+#define CP_ME_CNTL_GET_ME_HALT(cp_me_cntl) \
+ ((cp_me_cntl & CP_ME_CNTL_ME_HALT_MASK) >> CP_ME_CNTL_ME_HALT_SHIFT)
+#define CP_ME_CNTL_GET_ME_BUSY(cp_me_cntl) \
+ ((cp_me_cntl & CP_ME_CNTL_ME_BUSY_MASK) >> CP_ME_CNTL_ME_BUSY_SHIFT)
+#define CP_ME_CNTL_GET_PROG_CNT_SIZE(cp_me_cntl) \
+ ((cp_me_cntl & CP_ME_CNTL_PROG_CNT_SIZE_MASK) >> CP_ME_CNTL_PROG_CNT_SIZE_SHIFT)
+
+#define CP_ME_CNTL_SET_ME_STATMUX(cp_me_cntl_reg, me_statmux) \
+ cp_me_cntl_reg = (cp_me_cntl_reg & ~CP_ME_CNTL_ME_STATMUX_MASK) | (me_statmux << CP_ME_CNTL_ME_STATMUX_SHIFT)
+#define CP_ME_CNTL_SET_VTX_DEALLOC_FIFO_EMPTY(cp_me_cntl_reg, vtx_dealloc_fifo_empty) \
+ cp_me_cntl_reg = (cp_me_cntl_reg & ~CP_ME_CNTL_VTX_DEALLOC_FIFO_EMPTY_MASK) | (vtx_dealloc_fifo_empty << CP_ME_CNTL_VTX_DEALLOC_FIFO_EMPTY_SHIFT)
+#define CP_ME_CNTL_SET_PIX_DEALLOC_FIFO_EMPTY(cp_me_cntl_reg, pix_dealloc_fifo_empty) \
+ cp_me_cntl_reg = (cp_me_cntl_reg & ~CP_ME_CNTL_PIX_DEALLOC_FIFO_EMPTY_MASK) | (pix_dealloc_fifo_empty << CP_ME_CNTL_PIX_DEALLOC_FIFO_EMPTY_SHIFT)
+#define CP_ME_CNTL_SET_ME_HALT(cp_me_cntl_reg, me_halt) \
+ cp_me_cntl_reg = (cp_me_cntl_reg & ~CP_ME_CNTL_ME_HALT_MASK) | (me_halt << CP_ME_CNTL_ME_HALT_SHIFT)
+#define CP_ME_CNTL_SET_ME_BUSY(cp_me_cntl_reg, me_busy) \
+ cp_me_cntl_reg = (cp_me_cntl_reg & ~CP_ME_CNTL_ME_BUSY_MASK) | (me_busy << CP_ME_CNTL_ME_BUSY_SHIFT)
+#define CP_ME_CNTL_SET_PROG_CNT_SIZE(cp_me_cntl_reg, prog_cnt_size) \
+ cp_me_cntl_reg = (cp_me_cntl_reg & ~CP_ME_CNTL_PROG_CNT_SIZE_MASK) | (prog_cnt_size << CP_ME_CNTL_PROG_CNT_SIZE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_cntl_t {
+ unsigned int me_statmux : CP_ME_CNTL_ME_STATMUX_SIZE;
+ unsigned int : 9;
+ unsigned int vtx_dealloc_fifo_empty : CP_ME_CNTL_VTX_DEALLOC_FIFO_EMPTY_SIZE;
+ unsigned int pix_dealloc_fifo_empty : CP_ME_CNTL_PIX_DEALLOC_FIFO_EMPTY_SIZE;
+ unsigned int : 1;
+ unsigned int me_halt : CP_ME_CNTL_ME_HALT_SIZE;
+ unsigned int me_busy : CP_ME_CNTL_ME_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int prog_cnt_size : CP_ME_CNTL_PROG_CNT_SIZE_SIZE;
+ } cp_me_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_cntl_t {
+ unsigned int prog_cnt_size : CP_ME_CNTL_PROG_CNT_SIZE_SIZE;
+ unsigned int : 1;
+ unsigned int me_busy : CP_ME_CNTL_ME_BUSY_SIZE;
+ unsigned int me_halt : CP_ME_CNTL_ME_HALT_SIZE;
+ unsigned int : 1;
+ unsigned int pix_dealloc_fifo_empty : CP_ME_CNTL_PIX_DEALLOC_FIFO_EMPTY_SIZE;
+ unsigned int vtx_dealloc_fifo_empty : CP_ME_CNTL_VTX_DEALLOC_FIFO_EMPTY_SIZE;
+ unsigned int : 9;
+ unsigned int me_statmux : CP_ME_CNTL_ME_STATMUX_SIZE;
+ } cp_me_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_cntl_t f;
+} cp_me_cntl_u;
+
+
+/*
+ * CP_ME_STATUS struct
+ */
+
+#define CP_ME_STATUS_ME_DEBUG_DATA_SIZE 32
+
+#define CP_ME_STATUS_ME_DEBUG_DATA_SHIFT 0
+
+#define CP_ME_STATUS_ME_DEBUG_DATA_MASK 0xffffffff
+
+#define CP_ME_STATUS_MASK \
+ (CP_ME_STATUS_ME_DEBUG_DATA_MASK)
+
+#define CP_ME_STATUS(me_debug_data) \
+ ((me_debug_data << CP_ME_STATUS_ME_DEBUG_DATA_SHIFT))
+
+#define CP_ME_STATUS_GET_ME_DEBUG_DATA(cp_me_status) \
+ ((cp_me_status & CP_ME_STATUS_ME_DEBUG_DATA_MASK) >> CP_ME_STATUS_ME_DEBUG_DATA_SHIFT)
+
+#define CP_ME_STATUS_SET_ME_DEBUG_DATA(cp_me_status_reg, me_debug_data) \
+ cp_me_status_reg = (cp_me_status_reg & ~CP_ME_STATUS_ME_DEBUG_DATA_MASK) | (me_debug_data << CP_ME_STATUS_ME_DEBUG_DATA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_status_t {
+ unsigned int me_debug_data : CP_ME_STATUS_ME_DEBUG_DATA_SIZE;
+ } cp_me_status_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_status_t {
+ unsigned int me_debug_data : CP_ME_STATUS_ME_DEBUG_DATA_SIZE;
+ } cp_me_status_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_status_t f;
+} cp_me_status_u;
+
+
+/*
+ * CP_ME_RAM_WADDR struct
+ */
+
+#define CP_ME_RAM_WADDR_ME_RAM_WADDR_SIZE 10
+
+#define CP_ME_RAM_WADDR_ME_RAM_WADDR_SHIFT 0
+
+#define CP_ME_RAM_WADDR_ME_RAM_WADDR_MASK 0x000003ff
+
+#define CP_ME_RAM_WADDR_MASK \
+ (CP_ME_RAM_WADDR_ME_RAM_WADDR_MASK)
+
+#define CP_ME_RAM_WADDR(me_ram_waddr) \
+ ((me_ram_waddr << CP_ME_RAM_WADDR_ME_RAM_WADDR_SHIFT))
+
+#define CP_ME_RAM_WADDR_GET_ME_RAM_WADDR(cp_me_ram_waddr) \
+ ((cp_me_ram_waddr & CP_ME_RAM_WADDR_ME_RAM_WADDR_MASK) >> CP_ME_RAM_WADDR_ME_RAM_WADDR_SHIFT)
+
+#define CP_ME_RAM_WADDR_SET_ME_RAM_WADDR(cp_me_ram_waddr_reg, me_ram_waddr) \
+ cp_me_ram_waddr_reg = (cp_me_ram_waddr_reg & ~CP_ME_RAM_WADDR_ME_RAM_WADDR_MASK) | (me_ram_waddr << CP_ME_RAM_WADDR_ME_RAM_WADDR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_ram_waddr_t {
+ unsigned int me_ram_waddr : CP_ME_RAM_WADDR_ME_RAM_WADDR_SIZE;
+ unsigned int : 22;
+ } cp_me_ram_waddr_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_ram_waddr_t {
+ unsigned int : 22;
+ unsigned int me_ram_waddr : CP_ME_RAM_WADDR_ME_RAM_WADDR_SIZE;
+ } cp_me_ram_waddr_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_ram_waddr_t f;
+} cp_me_ram_waddr_u;
+
+
+/*
+ * CP_ME_RAM_RADDR struct
+ */
+
+#define CP_ME_RAM_RADDR_ME_RAM_RADDR_SIZE 10
+
+#define CP_ME_RAM_RADDR_ME_RAM_RADDR_SHIFT 0
+
+#define CP_ME_RAM_RADDR_ME_RAM_RADDR_MASK 0x000003ff
+
+#define CP_ME_RAM_RADDR_MASK \
+ (CP_ME_RAM_RADDR_ME_RAM_RADDR_MASK)
+
+#define CP_ME_RAM_RADDR(me_ram_raddr) \
+ ((me_ram_raddr << CP_ME_RAM_RADDR_ME_RAM_RADDR_SHIFT))
+
+#define CP_ME_RAM_RADDR_GET_ME_RAM_RADDR(cp_me_ram_raddr) \
+ ((cp_me_ram_raddr & CP_ME_RAM_RADDR_ME_RAM_RADDR_MASK) >> CP_ME_RAM_RADDR_ME_RAM_RADDR_SHIFT)
+
+#define CP_ME_RAM_RADDR_SET_ME_RAM_RADDR(cp_me_ram_raddr_reg, me_ram_raddr) \
+ cp_me_ram_raddr_reg = (cp_me_ram_raddr_reg & ~CP_ME_RAM_RADDR_ME_RAM_RADDR_MASK) | (me_ram_raddr << CP_ME_RAM_RADDR_ME_RAM_RADDR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_ram_raddr_t {
+ unsigned int me_ram_raddr : CP_ME_RAM_RADDR_ME_RAM_RADDR_SIZE;
+ unsigned int : 22;
+ } cp_me_ram_raddr_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_ram_raddr_t {
+ unsigned int : 22;
+ unsigned int me_ram_raddr : CP_ME_RAM_RADDR_ME_RAM_RADDR_SIZE;
+ } cp_me_ram_raddr_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_ram_raddr_t f;
+} cp_me_ram_raddr_u;
+
+
+/*
+ * CP_ME_RAM_DATA struct
+ */
+
+#define CP_ME_RAM_DATA_ME_RAM_DATA_SIZE 32
+
+#define CP_ME_RAM_DATA_ME_RAM_DATA_SHIFT 0
+
+#define CP_ME_RAM_DATA_ME_RAM_DATA_MASK 0xffffffff
+
+#define CP_ME_RAM_DATA_MASK \
+ (CP_ME_RAM_DATA_ME_RAM_DATA_MASK)
+
+#define CP_ME_RAM_DATA(me_ram_data) \
+ ((me_ram_data << CP_ME_RAM_DATA_ME_RAM_DATA_SHIFT))
+
+#define CP_ME_RAM_DATA_GET_ME_RAM_DATA(cp_me_ram_data) \
+ ((cp_me_ram_data & CP_ME_RAM_DATA_ME_RAM_DATA_MASK) >> CP_ME_RAM_DATA_ME_RAM_DATA_SHIFT)
+
+#define CP_ME_RAM_DATA_SET_ME_RAM_DATA(cp_me_ram_data_reg, me_ram_data) \
+ cp_me_ram_data_reg = (cp_me_ram_data_reg & ~CP_ME_RAM_DATA_ME_RAM_DATA_MASK) | (me_ram_data << CP_ME_RAM_DATA_ME_RAM_DATA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_ram_data_t {
+ unsigned int me_ram_data : CP_ME_RAM_DATA_ME_RAM_DATA_SIZE;
+ } cp_me_ram_data_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_ram_data_t {
+ unsigned int me_ram_data : CP_ME_RAM_DATA_ME_RAM_DATA_SIZE;
+ } cp_me_ram_data_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_ram_data_t f;
+} cp_me_ram_data_u;
+
+
+/*
+ * CP_ME_RDADDR struct
+ */
+
+#define CP_ME_RDADDR_ME_RDADDR_SIZE 32
+
+#define CP_ME_RDADDR_ME_RDADDR_SHIFT 0
+
+#define CP_ME_RDADDR_ME_RDADDR_MASK 0xffffffff
+
+#define CP_ME_RDADDR_MASK \
+ (CP_ME_RDADDR_ME_RDADDR_MASK)
+
+#define CP_ME_RDADDR(me_rdaddr) \
+ ((me_rdaddr << CP_ME_RDADDR_ME_RDADDR_SHIFT))
+
+#define CP_ME_RDADDR_GET_ME_RDADDR(cp_me_rdaddr) \
+ ((cp_me_rdaddr & CP_ME_RDADDR_ME_RDADDR_MASK) >> CP_ME_RDADDR_ME_RDADDR_SHIFT)
+
+#define CP_ME_RDADDR_SET_ME_RDADDR(cp_me_rdaddr_reg, me_rdaddr) \
+ cp_me_rdaddr_reg = (cp_me_rdaddr_reg & ~CP_ME_RDADDR_ME_RDADDR_MASK) | (me_rdaddr << CP_ME_RDADDR_ME_RDADDR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_rdaddr_t {
+ unsigned int me_rdaddr : CP_ME_RDADDR_ME_RDADDR_SIZE;
+ } cp_me_rdaddr_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_rdaddr_t {
+ unsigned int me_rdaddr : CP_ME_RDADDR_ME_RDADDR_SIZE;
+ } cp_me_rdaddr_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_rdaddr_t f;
+} cp_me_rdaddr_u;
+
+
+/*
+ * CP_DEBUG struct
+ */
+
+#define CP_DEBUG_CP_DEBUG_UNUSED_22_to_0_SIZE 23
+#define CP_DEBUG_PREDICATE_DISABLE_SIZE 1
+#define CP_DEBUG_PROG_END_PTR_ENABLE_SIZE 1
+#define CP_DEBUG_MIU_128BIT_WRITE_ENABLE_SIZE 1
+#define CP_DEBUG_PREFETCH_PASS_NOPS_SIZE 1
+#define CP_DEBUG_DYNAMIC_CLK_DISABLE_SIZE 1
+#define CP_DEBUG_PREFETCH_MATCH_DISABLE_SIZE 1
+#define CP_DEBUG_SIMPLE_ME_FLOW_CONTROL_SIZE 1
+#define CP_DEBUG_MIU_WRITE_PACK_DISABLE_SIZE 1
+
+#define CP_DEBUG_CP_DEBUG_UNUSED_22_to_0_SHIFT 0
+#define CP_DEBUG_PREDICATE_DISABLE_SHIFT 23
+#define CP_DEBUG_PROG_END_PTR_ENABLE_SHIFT 24
+#define CP_DEBUG_MIU_128BIT_WRITE_ENABLE_SHIFT 25
+#define CP_DEBUG_PREFETCH_PASS_NOPS_SHIFT 26
+#define CP_DEBUG_DYNAMIC_CLK_DISABLE_SHIFT 27
+#define CP_DEBUG_PREFETCH_MATCH_DISABLE_SHIFT 28
+#define CP_DEBUG_SIMPLE_ME_FLOW_CONTROL_SHIFT 30
+#define CP_DEBUG_MIU_WRITE_PACK_DISABLE_SHIFT 31
+
+#define CP_DEBUG_CP_DEBUG_UNUSED_22_to_0_MASK 0x007fffff
+#define CP_DEBUG_PREDICATE_DISABLE_MASK 0x00800000
+#define CP_DEBUG_PROG_END_PTR_ENABLE_MASK 0x01000000
+#define CP_DEBUG_MIU_128BIT_WRITE_ENABLE_MASK 0x02000000
+#define CP_DEBUG_PREFETCH_PASS_NOPS_MASK 0x04000000
+#define CP_DEBUG_DYNAMIC_CLK_DISABLE_MASK 0x08000000
+#define CP_DEBUG_PREFETCH_MATCH_DISABLE_MASK 0x10000000
+#define CP_DEBUG_SIMPLE_ME_FLOW_CONTROL_MASK 0x40000000
+#define CP_DEBUG_MIU_WRITE_PACK_DISABLE_MASK 0x80000000
+
+#define CP_DEBUG_MASK \
+ (CP_DEBUG_CP_DEBUG_UNUSED_22_to_0_MASK | \
+ CP_DEBUG_PREDICATE_DISABLE_MASK | \
+ CP_DEBUG_PROG_END_PTR_ENABLE_MASK | \
+ CP_DEBUG_MIU_128BIT_WRITE_ENABLE_MASK | \
+ CP_DEBUG_PREFETCH_PASS_NOPS_MASK | \
+ CP_DEBUG_DYNAMIC_CLK_DISABLE_MASK | \
+ CP_DEBUG_PREFETCH_MATCH_DISABLE_MASK | \
+ CP_DEBUG_SIMPLE_ME_FLOW_CONTROL_MASK | \
+ CP_DEBUG_MIU_WRITE_PACK_DISABLE_MASK)
+
+#define CP_DEBUG(cp_debug_unused_22_to_0, predicate_disable, prog_end_ptr_enable, miu_128bit_write_enable, prefetch_pass_nops, dynamic_clk_disable, prefetch_match_disable, simple_me_flow_control, miu_write_pack_disable) \
+ ((cp_debug_unused_22_to_0 << CP_DEBUG_CP_DEBUG_UNUSED_22_to_0_SHIFT) | \
+ (predicate_disable << CP_DEBUG_PREDICATE_DISABLE_SHIFT) | \
+ (prog_end_ptr_enable << CP_DEBUG_PROG_END_PTR_ENABLE_SHIFT) | \
+ (miu_128bit_write_enable << CP_DEBUG_MIU_128BIT_WRITE_ENABLE_SHIFT) | \
+ (prefetch_pass_nops << CP_DEBUG_PREFETCH_PASS_NOPS_SHIFT) | \
+ (dynamic_clk_disable << CP_DEBUG_DYNAMIC_CLK_DISABLE_SHIFT) | \
+ (prefetch_match_disable << CP_DEBUG_PREFETCH_MATCH_DISABLE_SHIFT) | \
+ (simple_me_flow_control << CP_DEBUG_SIMPLE_ME_FLOW_CONTROL_SHIFT) | \
+ (miu_write_pack_disable << CP_DEBUG_MIU_WRITE_PACK_DISABLE_SHIFT))
+
+#define CP_DEBUG_GET_CP_DEBUG_UNUSED_22_to_0(cp_debug) \
+ ((cp_debug & CP_DEBUG_CP_DEBUG_UNUSED_22_to_0_MASK) >> CP_DEBUG_CP_DEBUG_UNUSED_22_to_0_SHIFT)
+#define CP_DEBUG_GET_PREDICATE_DISABLE(cp_debug) \
+ ((cp_debug & CP_DEBUG_PREDICATE_DISABLE_MASK) >> CP_DEBUG_PREDICATE_DISABLE_SHIFT)
+#define CP_DEBUG_GET_PROG_END_PTR_ENABLE(cp_debug) \
+ ((cp_debug & CP_DEBUG_PROG_END_PTR_ENABLE_MASK) >> CP_DEBUG_PROG_END_PTR_ENABLE_SHIFT)
+#define CP_DEBUG_GET_MIU_128BIT_WRITE_ENABLE(cp_debug) \
+ ((cp_debug & CP_DEBUG_MIU_128BIT_WRITE_ENABLE_MASK) >> CP_DEBUG_MIU_128BIT_WRITE_ENABLE_SHIFT)
+#define CP_DEBUG_GET_PREFETCH_PASS_NOPS(cp_debug) \
+ ((cp_debug & CP_DEBUG_PREFETCH_PASS_NOPS_MASK) >> CP_DEBUG_PREFETCH_PASS_NOPS_SHIFT)
+#define CP_DEBUG_GET_DYNAMIC_CLK_DISABLE(cp_debug) \
+ ((cp_debug & CP_DEBUG_DYNAMIC_CLK_DISABLE_MASK) >> CP_DEBUG_DYNAMIC_CLK_DISABLE_SHIFT)
+#define CP_DEBUG_GET_PREFETCH_MATCH_DISABLE(cp_debug) \
+ ((cp_debug & CP_DEBUG_PREFETCH_MATCH_DISABLE_MASK) >> CP_DEBUG_PREFETCH_MATCH_DISABLE_SHIFT)
+#define CP_DEBUG_GET_SIMPLE_ME_FLOW_CONTROL(cp_debug) \
+ ((cp_debug & CP_DEBUG_SIMPLE_ME_FLOW_CONTROL_MASK) >> CP_DEBUG_SIMPLE_ME_FLOW_CONTROL_SHIFT)
+#define CP_DEBUG_GET_MIU_WRITE_PACK_DISABLE(cp_debug) \
+ ((cp_debug & CP_DEBUG_MIU_WRITE_PACK_DISABLE_MASK) >> CP_DEBUG_MIU_WRITE_PACK_DISABLE_SHIFT)
+
+#define CP_DEBUG_SET_CP_DEBUG_UNUSED_22_to_0(cp_debug_reg, cp_debug_unused_22_to_0) \
+ cp_debug_reg = (cp_debug_reg & ~CP_DEBUG_CP_DEBUG_UNUSED_22_to_0_MASK) | (cp_debug_unused_22_to_0 << CP_DEBUG_CP_DEBUG_UNUSED_22_to_0_SHIFT)
+#define CP_DEBUG_SET_PREDICATE_DISABLE(cp_debug_reg, predicate_disable) \
+ cp_debug_reg = (cp_debug_reg & ~CP_DEBUG_PREDICATE_DISABLE_MASK) | (predicate_disable << CP_DEBUG_PREDICATE_DISABLE_SHIFT)
+#define CP_DEBUG_SET_PROG_END_PTR_ENABLE(cp_debug_reg, prog_end_ptr_enable) \
+ cp_debug_reg = (cp_debug_reg & ~CP_DEBUG_PROG_END_PTR_ENABLE_MASK) | (prog_end_ptr_enable << CP_DEBUG_PROG_END_PTR_ENABLE_SHIFT)
+#define CP_DEBUG_SET_MIU_128BIT_WRITE_ENABLE(cp_debug_reg, miu_128bit_write_enable) \
+ cp_debug_reg = (cp_debug_reg & ~CP_DEBUG_MIU_128BIT_WRITE_ENABLE_MASK) | (miu_128bit_write_enable << CP_DEBUG_MIU_128BIT_WRITE_ENABLE_SHIFT)
+#define CP_DEBUG_SET_PREFETCH_PASS_NOPS(cp_debug_reg, prefetch_pass_nops) \
+ cp_debug_reg = (cp_debug_reg & ~CP_DEBUG_PREFETCH_PASS_NOPS_MASK) | (prefetch_pass_nops << CP_DEBUG_PREFETCH_PASS_NOPS_SHIFT)
+#define CP_DEBUG_SET_DYNAMIC_CLK_DISABLE(cp_debug_reg, dynamic_clk_disable) \
+ cp_debug_reg = (cp_debug_reg & ~CP_DEBUG_DYNAMIC_CLK_DISABLE_MASK) | (dynamic_clk_disable << CP_DEBUG_DYNAMIC_CLK_DISABLE_SHIFT)
+#define CP_DEBUG_SET_PREFETCH_MATCH_DISABLE(cp_debug_reg, prefetch_match_disable) \
+ cp_debug_reg = (cp_debug_reg & ~CP_DEBUG_PREFETCH_MATCH_DISABLE_MASK) | (prefetch_match_disable << CP_DEBUG_PREFETCH_MATCH_DISABLE_SHIFT)
+#define CP_DEBUG_SET_SIMPLE_ME_FLOW_CONTROL(cp_debug_reg, simple_me_flow_control) \
+ cp_debug_reg = (cp_debug_reg & ~CP_DEBUG_SIMPLE_ME_FLOW_CONTROL_MASK) | (simple_me_flow_control << CP_DEBUG_SIMPLE_ME_FLOW_CONTROL_SHIFT)
+#define CP_DEBUG_SET_MIU_WRITE_PACK_DISABLE(cp_debug_reg, miu_write_pack_disable) \
+ cp_debug_reg = (cp_debug_reg & ~CP_DEBUG_MIU_WRITE_PACK_DISABLE_MASK) | (miu_write_pack_disable << CP_DEBUG_MIU_WRITE_PACK_DISABLE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_debug_t {
+ unsigned int cp_debug_unused_22_to_0 : CP_DEBUG_CP_DEBUG_UNUSED_22_to_0_SIZE;
+ unsigned int predicate_disable : CP_DEBUG_PREDICATE_DISABLE_SIZE;
+ unsigned int prog_end_ptr_enable : CP_DEBUG_PROG_END_PTR_ENABLE_SIZE;
+ unsigned int miu_128bit_write_enable : CP_DEBUG_MIU_128BIT_WRITE_ENABLE_SIZE;
+ unsigned int prefetch_pass_nops : CP_DEBUG_PREFETCH_PASS_NOPS_SIZE;
+ unsigned int dynamic_clk_disable : CP_DEBUG_DYNAMIC_CLK_DISABLE_SIZE;
+ unsigned int prefetch_match_disable : CP_DEBUG_PREFETCH_MATCH_DISABLE_SIZE;
+ unsigned int : 1;
+ unsigned int simple_me_flow_control : CP_DEBUG_SIMPLE_ME_FLOW_CONTROL_SIZE;
+ unsigned int miu_write_pack_disable : CP_DEBUG_MIU_WRITE_PACK_DISABLE_SIZE;
+ } cp_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_debug_t {
+ unsigned int miu_write_pack_disable : CP_DEBUG_MIU_WRITE_PACK_DISABLE_SIZE;
+ unsigned int simple_me_flow_control : CP_DEBUG_SIMPLE_ME_FLOW_CONTROL_SIZE;
+ unsigned int : 1;
+ unsigned int prefetch_match_disable : CP_DEBUG_PREFETCH_MATCH_DISABLE_SIZE;
+ unsigned int dynamic_clk_disable : CP_DEBUG_DYNAMIC_CLK_DISABLE_SIZE;
+ unsigned int prefetch_pass_nops : CP_DEBUG_PREFETCH_PASS_NOPS_SIZE;
+ unsigned int miu_128bit_write_enable : CP_DEBUG_MIU_128BIT_WRITE_ENABLE_SIZE;
+ unsigned int prog_end_ptr_enable : CP_DEBUG_PROG_END_PTR_ENABLE_SIZE;
+ unsigned int predicate_disable : CP_DEBUG_PREDICATE_DISABLE_SIZE;
+ unsigned int cp_debug_unused_22_to_0 : CP_DEBUG_CP_DEBUG_UNUSED_22_to_0_SIZE;
+ } cp_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_debug_t f;
+} cp_debug_u;
+
+
+/*
+ * SCRATCH_REG0 struct
+ */
+
+#define SCRATCH_REG0_SCRATCH_REG0_SIZE 32
+
+#define SCRATCH_REG0_SCRATCH_REG0_SHIFT 0
+
+#define SCRATCH_REG0_SCRATCH_REG0_MASK 0xffffffff
+
+#define SCRATCH_REG0_MASK \
+ (SCRATCH_REG0_SCRATCH_REG0_MASK)
+
+#define SCRATCH_REG0(scratch_reg0) \
+ ((scratch_reg0 << SCRATCH_REG0_SCRATCH_REG0_SHIFT))
+
+#define SCRATCH_REG0_GET_SCRATCH_REG0(scratch_reg0) \
+ ((scratch_reg0 & SCRATCH_REG0_SCRATCH_REG0_MASK) >> SCRATCH_REG0_SCRATCH_REG0_SHIFT)
+
+#define SCRATCH_REG0_SET_SCRATCH_REG0(scratch_reg0_reg, scratch_reg0) \
+ scratch_reg0_reg = (scratch_reg0_reg & ~SCRATCH_REG0_SCRATCH_REG0_MASK) | (scratch_reg0 << SCRATCH_REG0_SCRATCH_REG0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _scratch_reg0_t {
+ unsigned int scratch_reg0 : SCRATCH_REG0_SCRATCH_REG0_SIZE;
+ } scratch_reg0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _scratch_reg0_t {
+ unsigned int scratch_reg0 : SCRATCH_REG0_SCRATCH_REG0_SIZE;
+ } scratch_reg0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ scratch_reg0_t f;
+} scratch_reg0_u;
+
+
+/*
+ * SCRATCH_REG1 struct
+ */
+
+#define SCRATCH_REG1_SCRATCH_REG1_SIZE 32
+
+#define SCRATCH_REG1_SCRATCH_REG1_SHIFT 0
+
+#define SCRATCH_REG1_SCRATCH_REG1_MASK 0xffffffff
+
+#define SCRATCH_REG1_MASK \
+ (SCRATCH_REG1_SCRATCH_REG1_MASK)
+
+#define SCRATCH_REG1(scratch_reg1) \
+ ((scratch_reg1 << SCRATCH_REG1_SCRATCH_REG1_SHIFT))
+
+#define SCRATCH_REG1_GET_SCRATCH_REG1(scratch_reg1) \
+ ((scratch_reg1 & SCRATCH_REG1_SCRATCH_REG1_MASK) >> SCRATCH_REG1_SCRATCH_REG1_SHIFT)
+
+#define SCRATCH_REG1_SET_SCRATCH_REG1(scratch_reg1_reg, scratch_reg1) \
+ scratch_reg1_reg = (scratch_reg1_reg & ~SCRATCH_REG1_SCRATCH_REG1_MASK) | (scratch_reg1 << SCRATCH_REG1_SCRATCH_REG1_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _scratch_reg1_t {
+ unsigned int scratch_reg1 : SCRATCH_REG1_SCRATCH_REG1_SIZE;
+ } scratch_reg1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _scratch_reg1_t {
+ unsigned int scratch_reg1 : SCRATCH_REG1_SCRATCH_REG1_SIZE;
+ } scratch_reg1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ scratch_reg1_t f;
+} scratch_reg1_u;
+
+
+/*
+ * SCRATCH_REG2 struct
+ */
+
+#define SCRATCH_REG2_SCRATCH_REG2_SIZE 32
+
+#define SCRATCH_REG2_SCRATCH_REG2_SHIFT 0
+
+#define SCRATCH_REG2_SCRATCH_REG2_MASK 0xffffffff
+
+#define SCRATCH_REG2_MASK \
+ (SCRATCH_REG2_SCRATCH_REG2_MASK)
+
+#define SCRATCH_REG2(scratch_reg2) \
+ ((scratch_reg2 << SCRATCH_REG2_SCRATCH_REG2_SHIFT))
+
+#define SCRATCH_REG2_GET_SCRATCH_REG2(scratch_reg2) \
+ ((scratch_reg2 & SCRATCH_REG2_SCRATCH_REG2_MASK) >> SCRATCH_REG2_SCRATCH_REG2_SHIFT)
+
+#define SCRATCH_REG2_SET_SCRATCH_REG2(scratch_reg2_reg, scratch_reg2) \
+ scratch_reg2_reg = (scratch_reg2_reg & ~SCRATCH_REG2_SCRATCH_REG2_MASK) | (scratch_reg2 << SCRATCH_REG2_SCRATCH_REG2_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _scratch_reg2_t {
+ unsigned int scratch_reg2 : SCRATCH_REG2_SCRATCH_REG2_SIZE;
+ } scratch_reg2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _scratch_reg2_t {
+ unsigned int scratch_reg2 : SCRATCH_REG2_SCRATCH_REG2_SIZE;
+ } scratch_reg2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ scratch_reg2_t f;
+} scratch_reg2_u;
+
+
+/*
+ * SCRATCH_REG3 struct
+ */
+
+#define SCRATCH_REG3_SCRATCH_REG3_SIZE 32
+
+#define SCRATCH_REG3_SCRATCH_REG3_SHIFT 0
+
+#define SCRATCH_REG3_SCRATCH_REG3_MASK 0xffffffff
+
+#define SCRATCH_REG3_MASK \
+ (SCRATCH_REG3_SCRATCH_REG3_MASK)
+
+#define SCRATCH_REG3(scratch_reg3) \
+ ((scratch_reg3 << SCRATCH_REG3_SCRATCH_REG3_SHIFT))
+
+#define SCRATCH_REG3_GET_SCRATCH_REG3(scratch_reg3) \
+ ((scratch_reg3 & SCRATCH_REG3_SCRATCH_REG3_MASK) >> SCRATCH_REG3_SCRATCH_REG3_SHIFT)
+
+#define SCRATCH_REG3_SET_SCRATCH_REG3(scratch_reg3_reg, scratch_reg3) \
+ scratch_reg3_reg = (scratch_reg3_reg & ~SCRATCH_REG3_SCRATCH_REG3_MASK) | (scratch_reg3 << SCRATCH_REG3_SCRATCH_REG3_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _scratch_reg3_t {
+ unsigned int scratch_reg3 : SCRATCH_REG3_SCRATCH_REG3_SIZE;
+ } scratch_reg3_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _scratch_reg3_t {
+ unsigned int scratch_reg3 : SCRATCH_REG3_SCRATCH_REG3_SIZE;
+ } scratch_reg3_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ scratch_reg3_t f;
+} scratch_reg3_u;
+
+
+/*
+ * SCRATCH_REG4 struct
+ */
+
+#define SCRATCH_REG4_SCRATCH_REG4_SIZE 32
+
+#define SCRATCH_REG4_SCRATCH_REG4_SHIFT 0
+
+#define SCRATCH_REG4_SCRATCH_REG4_MASK 0xffffffff
+
+#define SCRATCH_REG4_MASK \
+ (SCRATCH_REG4_SCRATCH_REG4_MASK)
+
+#define SCRATCH_REG4(scratch_reg4) \
+ ((scratch_reg4 << SCRATCH_REG4_SCRATCH_REG4_SHIFT))
+
+#define SCRATCH_REG4_GET_SCRATCH_REG4(scratch_reg4) \
+ ((scratch_reg4 & SCRATCH_REG4_SCRATCH_REG4_MASK) >> SCRATCH_REG4_SCRATCH_REG4_SHIFT)
+
+#define SCRATCH_REG4_SET_SCRATCH_REG4(scratch_reg4_reg, scratch_reg4) \
+ scratch_reg4_reg = (scratch_reg4_reg & ~SCRATCH_REG4_SCRATCH_REG4_MASK) | (scratch_reg4 << SCRATCH_REG4_SCRATCH_REG4_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _scratch_reg4_t {
+ unsigned int scratch_reg4 : SCRATCH_REG4_SCRATCH_REG4_SIZE;
+ } scratch_reg4_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _scratch_reg4_t {
+ unsigned int scratch_reg4 : SCRATCH_REG4_SCRATCH_REG4_SIZE;
+ } scratch_reg4_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ scratch_reg4_t f;
+} scratch_reg4_u;
+
+
+/*
+ * SCRATCH_REG5 struct
+ */
+
+#define SCRATCH_REG5_SCRATCH_REG5_SIZE 32
+
+#define SCRATCH_REG5_SCRATCH_REG5_SHIFT 0
+
+#define SCRATCH_REG5_SCRATCH_REG5_MASK 0xffffffff
+
+#define SCRATCH_REG5_MASK \
+ (SCRATCH_REG5_SCRATCH_REG5_MASK)
+
+#define SCRATCH_REG5(scratch_reg5) \
+ ((scratch_reg5 << SCRATCH_REG5_SCRATCH_REG5_SHIFT))
+
+#define SCRATCH_REG5_GET_SCRATCH_REG5(scratch_reg5) \
+ ((scratch_reg5 & SCRATCH_REG5_SCRATCH_REG5_MASK) >> SCRATCH_REG5_SCRATCH_REG5_SHIFT)
+
+#define SCRATCH_REG5_SET_SCRATCH_REG5(scratch_reg5_reg, scratch_reg5) \
+ scratch_reg5_reg = (scratch_reg5_reg & ~SCRATCH_REG5_SCRATCH_REG5_MASK) | (scratch_reg5 << SCRATCH_REG5_SCRATCH_REG5_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _scratch_reg5_t {
+ unsigned int scratch_reg5 : SCRATCH_REG5_SCRATCH_REG5_SIZE;
+ } scratch_reg5_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _scratch_reg5_t {
+ unsigned int scratch_reg5 : SCRATCH_REG5_SCRATCH_REG5_SIZE;
+ } scratch_reg5_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ scratch_reg5_t f;
+} scratch_reg5_u;
+
+
+/*
+ * SCRATCH_REG6 struct
+ */
+
+#define SCRATCH_REG6_SCRATCH_REG6_SIZE 32
+
+#define SCRATCH_REG6_SCRATCH_REG6_SHIFT 0
+
+#define SCRATCH_REG6_SCRATCH_REG6_MASK 0xffffffff
+
+#define SCRATCH_REG6_MASK \
+ (SCRATCH_REG6_SCRATCH_REG6_MASK)
+
+#define SCRATCH_REG6(scratch_reg6) \
+ ((scratch_reg6 << SCRATCH_REG6_SCRATCH_REG6_SHIFT))
+
+#define SCRATCH_REG6_GET_SCRATCH_REG6(scratch_reg6) \
+ ((scratch_reg6 & SCRATCH_REG6_SCRATCH_REG6_MASK) >> SCRATCH_REG6_SCRATCH_REG6_SHIFT)
+
+#define SCRATCH_REG6_SET_SCRATCH_REG6(scratch_reg6_reg, scratch_reg6) \
+ scratch_reg6_reg = (scratch_reg6_reg & ~SCRATCH_REG6_SCRATCH_REG6_MASK) | (scratch_reg6 << SCRATCH_REG6_SCRATCH_REG6_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _scratch_reg6_t {
+ unsigned int scratch_reg6 : SCRATCH_REG6_SCRATCH_REG6_SIZE;
+ } scratch_reg6_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _scratch_reg6_t {
+ unsigned int scratch_reg6 : SCRATCH_REG6_SCRATCH_REG6_SIZE;
+ } scratch_reg6_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ scratch_reg6_t f;
+} scratch_reg6_u;
+
+
+/*
+ * SCRATCH_REG7 struct
+ */
+
+#define SCRATCH_REG7_SCRATCH_REG7_SIZE 32
+
+#define SCRATCH_REG7_SCRATCH_REG7_SHIFT 0
+
+#define SCRATCH_REG7_SCRATCH_REG7_MASK 0xffffffff
+
+#define SCRATCH_REG7_MASK \
+ (SCRATCH_REG7_SCRATCH_REG7_MASK)
+
+#define SCRATCH_REG7(scratch_reg7) \
+ ((scratch_reg7 << SCRATCH_REG7_SCRATCH_REG7_SHIFT))
+
+#define SCRATCH_REG7_GET_SCRATCH_REG7(scratch_reg7) \
+ ((scratch_reg7 & SCRATCH_REG7_SCRATCH_REG7_MASK) >> SCRATCH_REG7_SCRATCH_REG7_SHIFT)
+
+#define SCRATCH_REG7_SET_SCRATCH_REG7(scratch_reg7_reg, scratch_reg7) \
+ scratch_reg7_reg = (scratch_reg7_reg & ~SCRATCH_REG7_SCRATCH_REG7_MASK) | (scratch_reg7 << SCRATCH_REG7_SCRATCH_REG7_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _scratch_reg7_t {
+ unsigned int scratch_reg7 : SCRATCH_REG7_SCRATCH_REG7_SIZE;
+ } scratch_reg7_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _scratch_reg7_t {
+ unsigned int scratch_reg7 : SCRATCH_REG7_SCRATCH_REG7_SIZE;
+ } scratch_reg7_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ scratch_reg7_t f;
+} scratch_reg7_u;
+
+
+/*
+ * SCRATCH_UMSK struct
+ */
+
+#define SCRATCH_UMSK_SCRATCH_UMSK_SIZE 8
+#define SCRATCH_UMSK_SCRATCH_SWAP_SIZE 2
+
+#define SCRATCH_UMSK_SCRATCH_UMSK_SHIFT 0
+#define SCRATCH_UMSK_SCRATCH_SWAP_SHIFT 16
+
+#define SCRATCH_UMSK_SCRATCH_UMSK_MASK 0x000000ff
+#define SCRATCH_UMSK_SCRATCH_SWAP_MASK 0x00030000
+
+#define SCRATCH_UMSK_MASK \
+ (SCRATCH_UMSK_SCRATCH_UMSK_MASK | \
+ SCRATCH_UMSK_SCRATCH_SWAP_MASK)
+
+#define SCRATCH_UMSK(scratch_umsk, scratch_swap) \
+ ((scratch_umsk << SCRATCH_UMSK_SCRATCH_UMSK_SHIFT) | \
+ (scratch_swap << SCRATCH_UMSK_SCRATCH_SWAP_SHIFT))
+
+#define SCRATCH_UMSK_GET_SCRATCH_UMSK(scratch_umsk) \
+ ((scratch_umsk & SCRATCH_UMSK_SCRATCH_UMSK_MASK) >> SCRATCH_UMSK_SCRATCH_UMSK_SHIFT)
+#define SCRATCH_UMSK_GET_SCRATCH_SWAP(scratch_umsk) \
+ ((scratch_umsk & SCRATCH_UMSK_SCRATCH_SWAP_MASK) >> SCRATCH_UMSK_SCRATCH_SWAP_SHIFT)
+
+#define SCRATCH_UMSK_SET_SCRATCH_UMSK(scratch_umsk_reg, scratch_umsk) \
+ scratch_umsk_reg = (scratch_umsk_reg & ~SCRATCH_UMSK_SCRATCH_UMSK_MASK) | (scratch_umsk << SCRATCH_UMSK_SCRATCH_UMSK_SHIFT)
+#define SCRATCH_UMSK_SET_SCRATCH_SWAP(scratch_umsk_reg, scratch_swap) \
+ scratch_umsk_reg = (scratch_umsk_reg & ~SCRATCH_UMSK_SCRATCH_SWAP_MASK) | (scratch_swap << SCRATCH_UMSK_SCRATCH_SWAP_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _scratch_umsk_t {
+ unsigned int scratch_umsk : SCRATCH_UMSK_SCRATCH_UMSK_SIZE;
+ unsigned int : 8;
+ unsigned int scratch_swap : SCRATCH_UMSK_SCRATCH_SWAP_SIZE;
+ unsigned int : 14;
+ } scratch_umsk_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _scratch_umsk_t {
+ unsigned int : 14;
+ unsigned int scratch_swap : SCRATCH_UMSK_SCRATCH_SWAP_SIZE;
+ unsigned int : 8;
+ unsigned int scratch_umsk : SCRATCH_UMSK_SCRATCH_UMSK_SIZE;
+ } scratch_umsk_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ scratch_umsk_t f;
+} scratch_umsk_u;
+
+
+/*
+ * SCRATCH_ADDR struct
+ */
+
+#define SCRATCH_ADDR_SCRATCH_ADDR_SIZE 27
+
+#define SCRATCH_ADDR_SCRATCH_ADDR_SHIFT 5
+
+#define SCRATCH_ADDR_SCRATCH_ADDR_MASK 0xffffffe0
+
+#define SCRATCH_ADDR_MASK \
+ (SCRATCH_ADDR_SCRATCH_ADDR_MASK)
+
+#define SCRATCH_ADDR(scratch_addr) \
+ ((scratch_addr << SCRATCH_ADDR_SCRATCH_ADDR_SHIFT))
+
+#define SCRATCH_ADDR_GET_SCRATCH_ADDR(scratch_addr) \
+ ((scratch_addr & SCRATCH_ADDR_SCRATCH_ADDR_MASK) >> SCRATCH_ADDR_SCRATCH_ADDR_SHIFT)
+
+#define SCRATCH_ADDR_SET_SCRATCH_ADDR(scratch_addr_reg, scratch_addr) \
+ scratch_addr_reg = (scratch_addr_reg & ~SCRATCH_ADDR_SCRATCH_ADDR_MASK) | (scratch_addr << SCRATCH_ADDR_SCRATCH_ADDR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _scratch_addr_t {
+ unsigned int : 5;
+ unsigned int scratch_addr : SCRATCH_ADDR_SCRATCH_ADDR_SIZE;
+ } scratch_addr_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _scratch_addr_t {
+ unsigned int scratch_addr : SCRATCH_ADDR_SCRATCH_ADDR_SIZE;
+ unsigned int : 5;
+ } scratch_addr_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ scratch_addr_t f;
+} scratch_addr_u;
+
+
+/*
+ * CP_ME_VS_EVENT_SRC struct
+ */
+
+#define CP_ME_VS_EVENT_SRC_VS_DONE_SWM_SIZE 1
+#define CP_ME_VS_EVENT_SRC_VS_DONE_CNTR_SIZE 1
+
+#define CP_ME_VS_EVENT_SRC_VS_DONE_SWM_SHIFT 0
+#define CP_ME_VS_EVENT_SRC_VS_DONE_CNTR_SHIFT 1
+
+#define CP_ME_VS_EVENT_SRC_VS_DONE_SWM_MASK 0x00000001
+#define CP_ME_VS_EVENT_SRC_VS_DONE_CNTR_MASK 0x00000002
+
+#define CP_ME_VS_EVENT_SRC_MASK \
+ (CP_ME_VS_EVENT_SRC_VS_DONE_SWM_MASK | \
+ CP_ME_VS_EVENT_SRC_VS_DONE_CNTR_MASK)
+
+#define CP_ME_VS_EVENT_SRC(vs_done_swm, vs_done_cntr) \
+ ((vs_done_swm << CP_ME_VS_EVENT_SRC_VS_DONE_SWM_SHIFT) | \
+ (vs_done_cntr << CP_ME_VS_EVENT_SRC_VS_DONE_CNTR_SHIFT))
+
+#define CP_ME_VS_EVENT_SRC_GET_VS_DONE_SWM(cp_me_vs_event_src) \
+ ((cp_me_vs_event_src & CP_ME_VS_EVENT_SRC_VS_DONE_SWM_MASK) >> CP_ME_VS_EVENT_SRC_VS_DONE_SWM_SHIFT)
+#define CP_ME_VS_EVENT_SRC_GET_VS_DONE_CNTR(cp_me_vs_event_src) \
+ ((cp_me_vs_event_src & CP_ME_VS_EVENT_SRC_VS_DONE_CNTR_MASK) >> CP_ME_VS_EVENT_SRC_VS_DONE_CNTR_SHIFT)
+
+#define CP_ME_VS_EVENT_SRC_SET_VS_DONE_SWM(cp_me_vs_event_src_reg, vs_done_swm) \
+ cp_me_vs_event_src_reg = (cp_me_vs_event_src_reg & ~CP_ME_VS_EVENT_SRC_VS_DONE_SWM_MASK) | (vs_done_swm << CP_ME_VS_EVENT_SRC_VS_DONE_SWM_SHIFT)
+#define CP_ME_VS_EVENT_SRC_SET_VS_DONE_CNTR(cp_me_vs_event_src_reg, vs_done_cntr) \
+ cp_me_vs_event_src_reg = (cp_me_vs_event_src_reg & ~CP_ME_VS_EVENT_SRC_VS_DONE_CNTR_MASK) | (vs_done_cntr << CP_ME_VS_EVENT_SRC_VS_DONE_CNTR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_vs_event_src_t {
+ unsigned int vs_done_swm : CP_ME_VS_EVENT_SRC_VS_DONE_SWM_SIZE;
+ unsigned int vs_done_cntr : CP_ME_VS_EVENT_SRC_VS_DONE_CNTR_SIZE;
+ unsigned int : 30;
+ } cp_me_vs_event_src_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_vs_event_src_t {
+ unsigned int : 30;
+ unsigned int vs_done_cntr : CP_ME_VS_EVENT_SRC_VS_DONE_CNTR_SIZE;
+ unsigned int vs_done_swm : CP_ME_VS_EVENT_SRC_VS_DONE_SWM_SIZE;
+ } cp_me_vs_event_src_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_vs_event_src_t f;
+} cp_me_vs_event_src_u;
+
+
+/*
+ * CP_ME_VS_EVENT_ADDR struct
+ */
+
+#define CP_ME_VS_EVENT_ADDR_VS_DONE_SWAP_SIZE 2
+#define CP_ME_VS_EVENT_ADDR_VS_DONE_ADDR_SIZE 30
+
+#define CP_ME_VS_EVENT_ADDR_VS_DONE_SWAP_SHIFT 0
+#define CP_ME_VS_EVENT_ADDR_VS_DONE_ADDR_SHIFT 2
+
+#define CP_ME_VS_EVENT_ADDR_VS_DONE_SWAP_MASK 0x00000003
+#define CP_ME_VS_EVENT_ADDR_VS_DONE_ADDR_MASK 0xfffffffc
+
+#define CP_ME_VS_EVENT_ADDR_MASK \
+ (CP_ME_VS_EVENT_ADDR_VS_DONE_SWAP_MASK | \
+ CP_ME_VS_EVENT_ADDR_VS_DONE_ADDR_MASK)
+
+#define CP_ME_VS_EVENT_ADDR(vs_done_swap, vs_done_addr) \
+ ((vs_done_swap << CP_ME_VS_EVENT_ADDR_VS_DONE_SWAP_SHIFT) | \
+ (vs_done_addr << CP_ME_VS_EVENT_ADDR_VS_DONE_ADDR_SHIFT))
+
+#define CP_ME_VS_EVENT_ADDR_GET_VS_DONE_SWAP(cp_me_vs_event_addr) \
+ ((cp_me_vs_event_addr & CP_ME_VS_EVENT_ADDR_VS_DONE_SWAP_MASK) >> CP_ME_VS_EVENT_ADDR_VS_DONE_SWAP_SHIFT)
+#define CP_ME_VS_EVENT_ADDR_GET_VS_DONE_ADDR(cp_me_vs_event_addr) \
+ ((cp_me_vs_event_addr & CP_ME_VS_EVENT_ADDR_VS_DONE_ADDR_MASK) >> CP_ME_VS_EVENT_ADDR_VS_DONE_ADDR_SHIFT)
+
+#define CP_ME_VS_EVENT_ADDR_SET_VS_DONE_SWAP(cp_me_vs_event_addr_reg, vs_done_swap) \
+ cp_me_vs_event_addr_reg = (cp_me_vs_event_addr_reg & ~CP_ME_VS_EVENT_ADDR_VS_DONE_SWAP_MASK) | (vs_done_swap << CP_ME_VS_EVENT_ADDR_VS_DONE_SWAP_SHIFT)
+#define CP_ME_VS_EVENT_ADDR_SET_VS_DONE_ADDR(cp_me_vs_event_addr_reg, vs_done_addr) \
+ cp_me_vs_event_addr_reg = (cp_me_vs_event_addr_reg & ~CP_ME_VS_EVENT_ADDR_VS_DONE_ADDR_MASK) | (vs_done_addr << CP_ME_VS_EVENT_ADDR_VS_DONE_ADDR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_vs_event_addr_t {
+ unsigned int vs_done_swap : CP_ME_VS_EVENT_ADDR_VS_DONE_SWAP_SIZE;
+ unsigned int vs_done_addr : CP_ME_VS_EVENT_ADDR_VS_DONE_ADDR_SIZE;
+ } cp_me_vs_event_addr_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_vs_event_addr_t {
+ unsigned int vs_done_addr : CP_ME_VS_EVENT_ADDR_VS_DONE_ADDR_SIZE;
+ unsigned int vs_done_swap : CP_ME_VS_EVENT_ADDR_VS_DONE_SWAP_SIZE;
+ } cp_me_vs_event_addr_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_vs_event_addr_t f;
+} cp_me_vs_event_addr_u;
+
+
+/*
+ * CP_ME_VS_EVENT_DATA struct
+ */
+
+#define CP_ME_VS_EVENT_DATA_VS_DONE_DATA_SIZE 32
+
+#define CP_ME_VS_EVENT_DATA_VS_DONE_DATA_SHIFT 0
+
+#define CP_ME_VS_EVENT_DATA_VS_DONE_DATA_MASK 0xffffffff
+
+#define CP_ME_VS_EVENT_DATA_MASK \
+ (CP_ME_VS_EVENT_DATA_VS_DONE_DATA_MASK)
+
+#define CP_ME_VS_EVENT_DATA(vs_done_data) \
+ ((vs_done_data << CP_ME_VS_EVENT_DATA_VS_DONE_DATA_SHIFT))
+
+#define CP_ME_VS_EVENT_DATA_GET_VS_DONE_DATA(cp_me_vs_event_data) \
+ ((cp_me_vs_event_data & CP_ME_VS_EVENT_DATA_VS_DONE_DATA_MASK) >> CP_ME_VS_EVENT_DATA_VS_DONE_DATA_SHIFT)
+
+#define CP_ME_VS_EVENT_DATA_SET_VS_DONE_DATA(cp_me_vs_event_data_reg, vs_done_data) \
+ cp_me_vs_event_data_reg = (cp_me_vs_event_data_reg & ~CP_ME_VS_EVENT_DATA_VS_DONE_DATA_MASK) | (vs_done_data << CP_ME_VS_EVENT_DATA_VS_DONE_DATA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_vs_event_data_t {
+ unsigned int vs_done_data : CP_ME_VS_EVENT_DATA_VS_DONE_DATA_SIZE;
+ } cp_me_vs_event_data_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_vs_event_data_t {
+ unsigned int vs_done_data : CP_ME_VS_EVENT_DATA_VS_DONE_DATA_SIZE;
+ } cp_me_vs_event_data_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_vs_event_data_t f;
+} cp_me_vs_event_data_u;
+
+
+/*
+ * CP_ME_VS_EVENT_ADDR_SWM struct
+ */
+
+#define CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_SWAP_SWM_SIZE 2
+#define CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_ADDR_SWM_SIZE 30
+
+#define CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_SWAP_SWM_SHIFT 0
+#define CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_ADDR_SWM_SHIFT 2
+
+#define CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_SWAP_SWM_MASK 0x00000003
+#define CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_ADDR_SWM_MASK 0xfffffffc
+
+#define CP_ME_VS_EVENT_ADDR_SWM_MASK \
+ (CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_SWAP_SWM_MASK | \
+ CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_ADDR_SWM_MASK)
+
+#define CP_ME_VS_EVENT_ADDR_SWM(vs_done_swap_swm, vs_done_addr_swm) \
+ ((vs_done_swap_swm << CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_SWAP_SWM_SHIFT) | \
+ (vs_done_addr_swm << CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_ADDR_SWM_SHIFT))
+
+#define CP_ME_VS_EVENT_ADDR_SWM_GET_VS_DONE_SWAP_SWM(cp_me_vs_event_addr_swm) \
+ ((cp_me_vs_event_addr_swm & CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_SWAP_SWM_MASK) >> CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_SWAP_SWM_SHIFT)
+#define CP_ME_VS_EVENT_ADDR_SWM_GET_VS_DONE_ADDR_SWM(cp_me_vs_event_addr_swm) \
+ ((cp_me_vs_event_addr_swm & CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_ADDR_SWM_MASK) >> CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_ADDR_SWM_SHIFT)
+
+#define CP_ME_VS_EVENT_ADDR_SWM_SET_VS_DONE_SWAP_SWM(cp_me_vs_event_addr_swm_reg, vs_done_swap_swm) \
+ cp_me_vs_event_addr_swm_reg = (cp_me_vs_event_addr_swm_reg & ~CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_SWAP_SWM_MASK) | (vs_done_swap_swm << CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_SWAP_SWM_SHIFT)
+#define CP_ME_VS_EVENT_ADDR_SWM_SET_VS_DONE_ADDR_SWM(cp_me_vs_event_addr_swm_reg, vs_done_addr_swm) \
+ cp_me_vs_event_addr_swm_reg = (cp_me_vs_event_addr_swm_reg & ~CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_ADDR_SWM_MASK) | (vs_done_addr_swm << CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_ADDR_SWM_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_vs_event_addr_swm_t {
+ unsigned int vs_done_swap_swm : CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_SWAP_SWM_SIZE;
+ unsigned int vs_done_addr_swm : CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_ADDR_SWM_SIZE;
+ } cp_me_vs_event_addr_swm_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_vs_event_addr_swm_t {
+ unsigned int vs_done_addr_swm : CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_ADDR_SWM_SIZE;
+ unsigned int vs_done_swap_swm : CP_ME_VS_EVENT_ADDR_SWM_VS_DONE_SWAP_SWM_SIZE;
+ } cp_me_vs_event_addr_swm_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_vs_event_addr_swm_t f;
+} cp_me_vs_event_addr_swm_u;
+
+
+/*
+ * CP_ME_VS_EVENT_DATA_SWM struct
+ */
+
+#define CP_ME_VS_EVENT_DATA_SWM_VS_DONE_DATA_SWM_SIZE 32
+
+#define CP_ME_VS_EVENT_DATA_SWM_VS_DONE_DATA_SWM_SHIFT 0
+
+#define CP_ME_VS_EVENT_DATA_SWM_VS_DONE_DATA_SWM_MASK 0xffffffff
+
+#define CP_ME_VS_EVENT_DATA_SWM_MASK \
+ (CP_ME_VS_EVENT_DATA_SWM_VS_DONE_DATA_SWM_MASK)
+
+#define CP_ME_VS_EVENT_DATA_SWM(vs_done_data_swm) \
+ ((vs_done_data_swm << CP_ME_VS_EVENT_DATA_SWM_VS_DONE_DATA_SWM_SHIFT))
+
+#define CP_ME_VS_EVENT_DATA_SWM_GET_VS_DONE_DATA_SWM(cp_me_vs_event_data_swm) \
+ ((cp_me_vs_event_data_swm & CP_ME_VS_EVENT_DATA_SWM_VS_DONE_DATA_SWM_MASK) >> CP_ME_VS_EVENT_DATA_SWM_VS_DONE_DATA_SWM_SHIFT)
+
+#define CP_ME_VS_EVENT_DATA_SWM_SET_VS_DONE_DATA_SWM(cp_me_vs_event_data_swm_reg, vs_done_data_swm) \
+ cp_me_vs_event_data_swm_reg = (cp_me_vs_event_data_swm_reg & ~CP_ME_VS_EVENT_DATA_SWM_VS_DONE_DATA_SWM_MASK) | (vs_done_data_swm << CP_ME_VS_EVENT_DATA_SWM_VS_DONE_DATA_SWM_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_vs_event_data_swm_t {
+ unsigned int vs_done_data_swm : CP_ME_VS_EVENT_DATA_SWM_VS_DONE_DATA_SWM_SIZE;
+ } cp_me_vs_event_data_swm_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_vs_event_data_swm_t {
+ unsigned int vs_done_data_swm : CP_ME_VS_EVENT_DATA_SWM_VS_DONE_DATA_SWM_SIZE;
+ } cp_me_vs_event_data_swm_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_vs_event_data_swm_t f;
+} cp_me_vs_event_data_swm_u;
+
+
+/*
+ * CP_ME_PS_EVENT_SRC struct
+ */
+
+#define CP_ME_PS_EVENT_SRC_PS_DONE_SWM_SIZE 1
+#define CP_ME_PS_EVENT_SRC_PS_DONE_CNTR_SIZE 1
+
+#define CP_ME_PS_EVENT_SRC_PS_DONE_SWM_SHIFT 0
+#define CP_ME_PS_EVENT_SRC_PS_DONE_CNTR_SHIFT 1
+
+#define CP_ME_PS_EVENT_SRC_PS_DONE_SWM_MASK 0x00000001
+#define CP_ME_PS_EVENT_SRC_PS_DONE_CNTR_MASK 0x00000002
+
+#define CP_ME_PS_EVENT_SRC_MASK \
+ (CP_ME_PS_EVENT_SRC_PS_DONE_SWM_MASK | \
+ CP_ME_PS_EVENT_SRC_PS_DONE_CNTR_MASK)
+
+#define CP_ME_PS_EVENT_SRC(ps_done_swm, ps_done_cntr) \
+ ((ps_done_swm << CP_ME_PS_EVENT_SRC_PS_DONE_SWM_SHIFT) | \
+ (ps_done_cntr << CP_ME_PS_EVENT_SRC_PS_DONE_CNTR_SHIFT))
+
+#define CP_ME_PS_EVENT_SRC_GET_PS_DONE_SWM(cp_me_ps_event_src) \
+ ((cp_me_ps_event_src & CP_ME_PS_EVENT_SRC_PS_DONE_SWM_MASK) >> CP_ME_PS_EVENT_SRC_PS_DONE_SWM_SHIFT)
+#define CP_ME_PS_EVENT_SRC_GET_PS_DONE_CNTR(cp_me_ps_event_src) \
+ ((cp_me_ps_event_src & CP_ME_PS_EVENT_SRC_PS_DONE_CNTR_MASK) >> CP_ME_PS_EVENT_SRC_PS_DONE_CNTR_SHIFT)
+
+#define CP_ME_PS_EVENT_SRC_SET_PS_DONE_SWM(cp_me_ps_event_src_reg, ps_done_swm) \
+ cp_me_ps_event_src_reg = (cp_me_ps_event_src_reg & ~CP_ME_PS_EVENT_SRC_PS_DONE_SWM_MASK) | (ps_done_swm << CP_ME_PS_EVENT_SRC_PS_DONE_SWM_SHIFT)
+#define CP_ME_PS_EVENT_SRC_SET_PS_DONE_CNTR(cp_me_ps_event_src_reg, ps_done_cntr) \
+ cp_me_ps_event_src_reg = (cp_me_ps_event_src_reg & ~CP_ME_PS_EVENT_SRC_PS_DONE_CNTR_MASK) | (ps_done_cntr << CP_ME_PS_EVENT_SRC_PS_DONE_CNTR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_ps_event_src_t {
+ unsigned int ps_done_swm : CP_ME_PS_EVENT_SRC_PS_DONE_SWM_SIZE;
+ unsigned int ps_done_cntr : CP_ME_PS_EVENT_SRC_PS_DONE_CNTR_SIZE;
+ unsigned int : 30;
+ } cp_me_ps_event_src_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_ps_event_src_t {
+ unsigned int : 30;
+ unsigned int ps_done_cntr : CP_ME_PS_EVENT_SRC_PS_DONE_CNTR_SIZE;
+ unsigned int ps_done_swm : CP_ME_PS_EVENT_SRC_PS_DONE_SWM_SIZE;
+ } cp_me_ps_event_src_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_ps_event_src_t f;
+} cp_me_ps_event_src_u;
+
+
+/*
+ * CP_ME_PS_EVENT_ADDR struct
+ */
+
+#define CP_ME_PS_EVENT_ADDR_PS_DONE_SWAP_SIZE 2
+#define CP_ME_PS_EVENT_ADDR_PS_DONE_ADDR_SIZE 30
+
+#define CP_ME_PS_EVENT_ADDR_PS_DONE_SWAP_SHIFT 0
+#define CP_ME_PS_EVENT_ADDR_PS_DONE_ADDR_SHIFT 2
+
+#define CP_ME_PS_EVENT_ADDR_PS_DONE_SWAP_MASK 0x00000003
+#define CP_ME_PS_EVENT_ADDR_PS_DONE_ADDR_MASK 0xfffffffc
+
+#define CP_ME_PS_EVENT_ADDR_MASK \
+ (CP_ME_PS_EVENT_ADDR_PS_DONE_SWAP_MASK | \
+ CP_ME_PS_EVENT_ADDR_PS_DONE_ADDR_MASK)
+
+#define CP_ME_PS_EVENT_ADDR(ps_done_swap, ps_done_addr) \
+ ((ps_done_swap << CP_ME_PS_EVENT_ADDR_PS_DONE_SWAP_SHIFT) | \
+ (ps_done_addr << CP_ME_PS_EVENT_ADDR_PS_DONE_ADDR_SHIFT))
+
+#define CP_ME_PS_EVENT_ADDR_GET_PS_DONE_SWAP(cp_me_ps_event_addr) \
+ ((cp_me_ps_event_addr & CP_ME_PS_EVENT_ADDR_PS_DONE_SWAP_MASK) >> CP_ME_PS_EVENT_ADDR_PS_DONE_SWAP_SHIFT)
+#define CP_ME_PS_EVENT_ADDR_GET_PS_DONE_ADDR(cp_me_ps_event_addr) \
+ ((cp_me_ps_event_addr & CP_ME_PS_EVENT_ADDR_PS_DONE_ADDR_MASK) >> CP_ME_PS_EVENT_ADDR_PS_DONE_ADDR_SHIFT)
+
+#define CP_ME_PS_EVENT_ADDR_SET_PS_DONE_SWAP(cp_me_ps_event_addr_reg, ps_done_swap) \
+ cp_me_ps_event_addr_reg = (cp_me_ps_event_addr_reg & ~CP_ME_PS_EVENT_ADDR_PS_DONE_SWAP_MASK) | (ps_done_swap << CP_ME_PS_EVENT_ADDR_PS_DONE_SWAP_SHIFT)
+#define CP_ME_PS_EVENT_ADDR_SET_PS_DONE_ADDR(cp_me_ps_event_addr_reg, ps_done_addr) \
+ cp_me_ps_event_addr_reg = (cp_me_ps_event_addr_reg & ~CP_ME_PS_EVENT_ADDR_PS_DONE_ADDR_MASK) | (ps_done_addr << CP_ME_PS_EVENT_ADDR_PS_DONE_ADDR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_ps_event_addr_t {
+ unsigned int ps_done_swap : CP_ME_PS_EVENT_ADDR_PS_DONE_SWAP_SIZE;
+ unsigned int ps_done_addr : CP_ME_PS_EVENT_ADDR_PS_DONE_ADDR_SIZE;
+ } cp_me_ps_event_addr_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_ps_event_addr_t {
+ unsigned int ps_done_addr : CP_ME_PS_EVENT_ADDR_PS_DONE_ADDR_SIZE;
+ unsigned int ps_done_swap : CP_ME_PS_EVENT_ADDR_PS_DONE_SWAP_SIZE;
+ } cp_me_ps_event_addr_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_ps_event_addr_t f;
+} cp_me_ps_event_addr_u;
+
+
+/*
+ * CP_ME_PS_EVENT_DATA struct
+ */
+
+#define CP_ME_PS_EVENT_DATA_PS_DONE_DATA_SIZE 32
+
+#define CP_ME_PS_EVENT_DATA_PS_DONE_DATA_SHIFT 0
+
+#define CP_ME_PS_EVENT_DATA_PS_DONE_DATA_MASK 0xffffffff
+
+#define CP_ME_PS_EVENT_DATA_MASK \
+ (CP_ME_PS_EVENT_DATA_PS_DONE_DATA_MASK)
+
+#define CP_ME_PS_EVENT_DATA(ps_done_data) \
+ ((ps_done_data << CP_ME_PS_EVENT_DATA_PS_DONE_DATA_SHIFT))
+
+#define CP_ME_PS_EVENT_DATA_GET_PS_DONE_DATA(cp_me_ps_event_data) \
+ ((cp_me_ps_event_data & CP_ME_PS_EVENT_DATA_PS_DONE_DATA_MASK) >> CP_ME_PS_EVENT_DATA_PS_DONE_DATA_SHIFT)
+
+#define CP_ME_PS_EVENT_DATA_SET_PS_DONE_DATA(cp_me_ps_event_data_reg, ps_done_data) \
+ cp_me_ps_event_data_reg = (cp_me_ps_event_data_reg & ~CP_ME_PS_EVENT_DATA_PS_DONE_DATA_MASK) | (ps_done_data << CP_ME_PS_EVENT_DATA_PS_DONE_DATA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_ps_event_data_t {
+ unsigned int ps_done_data : CP_ME_PS_EVENT_DATA_PS_DONE_DATA_SIZE;
+ } cp_me_ps_event_data_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_ps_event_data_t {
+ unsigned int ps_done_data : CP_ME_PS_EVENT_DATA_PS_DONE_DATA_SIZE;
+ } cp_me_ps_event_data_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_ps_event_data_t f;
+} cp_me_ps_event_data_u;
+
+
+/*
+ * CP_ME_PS_EVENT_ADDR_SWM struct
+ */
+
+#define CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_SWAP_SWM_SIZE 2
+#define CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_ADDR_SWM_SIZE 30
+
+#define CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_SWAP_SWM_SHIFT 0
+#define CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_ADDR_SWM_SHIFT 2
+
+#define CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_SWAP_SWM_MASK 0x00000003
+#define CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_ADDR_SWM_MASK 0xfffffffc
+
+#define CP_ME_PS_EVENT_ADDR_SWM_MASK \
+ (CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_SWAP_SWM_MASK | \
+ CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_ADDR_SWM_MASK)
+
+#define CP_ME_PS_EVENT_ADDR_SWM(ps_done_swap_swm, ps_done_addr_swm) \
+ ((ps_done_swap_swm << CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_SWAP_SWM_SHIFT) | \
+ (ps_done_addr_swm << CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_ADDR_SWM_SHIFT))
+
+#define CP_ME_PS_EVENT_ADDR_SWM_GET_PS_DONE_SWAP_SWM(cp_me_ps_event_addr_swm) \
+ ((cp_me_ps_event_addr_swm & CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_SWAP_SWM_MASK) >> CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_SWAP_SWM_SHIFT)
+#define CP_ME_PS_EVENT_ADDR_SWM_GET_PS_DONE_ADDR_SWM(cp_me_ps_event_addr_swm) \
+ ((cp_me_ps_event_addr_swm & CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_ADDR_SWM_MASK) >> CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_ADDR_SWM_SHIFT)
+
+#define CP_ME_PS_EVENT_ADDR_SWM_SET_PS_DONE_SWAP_SWM(cp_me_ps_event_addr_swm_reg, ps_done_swap_swm) \
+ cp_me_ps_event_addr_swm_reg = (cp_me_ps_event_addr_swm_reg & ~CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_SWAP_SWM_MASK) | (ps_done_swap_swm << CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_SWAP_SWM_SHIFT)
+#define CP_ME_PS_EVENT_ADDR_SWM_SET_PS_DONE_ADDR_SWM(cp_me_ps_event_addr_swm_reg, ps_done_addr_swm) \
+ cp_me_ps_event_addr_swm_reg = (cp_me_ps_event_addr_swm_reg & ~CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_ADDR_SWM_MASK) | (ps_done_addr_swm << CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_ADDR_SWM_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_ps_event_addr_swm_t {
+ unsigned int ps_done_swap_swm : CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_SWAP_SWM_SIZE;
+ unsigned int ps_done_addr_swm : CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_ADDR_SWM_SIZE;
+ } cp_me_ps_event_addr_swm_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_ps_event_addr_swm_t {
+ unsigned int ps_done_addr_swm : CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_ADDR_SWM_SIZE;
+ unsigned int ps_done_swap_swm : CP_ME_PS_EVENT_ADDR_SWM_PS_DONE_SWAP_SWM_SIZE;
+ } cp_me_ps_event_addr_swm_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_ps_event_addr_swm_t f;
+} cp_me_ps_event_addr_swm_u;
+
+
+/*
+ * CP_ME_PS_EVENT_DATA_SWM struct
+ */
+
+#define CP_ME_PS_EVENT_DATA_SWM_PS_DONE_DATA_SWM_SIZE 32
+
+#define CP_ME_PS_EVENT_DATA_SWM_PS_DONE_DATA_SWM_SHIFT 0
+
+#define CP_ME_PS_EVENT_DATA_SWM_PS_DONE_DATA_SWM_MASK 0xffffffff
+
+#define CP_ME_PS_EVENT_DATA_SWM_MASK \
+ (CP_ME_PS_EVENT_DATA_SWM_PS_DONE_DATA_SWM_MASK)
+
+#define CP_ME_PS_EVENT_DATA_SWM(ps_done_data_swm) \
+ ((ps_done_data_swm << CP_ME_PS_EVENT_DATA_SWM_PS_DONE_DATA_SWM_SHIFT))
+
+#define CP_ME_PS_EVENT_DATA_SWM_GET_PS_DONE_DATA_SWM(cp_me_ps_event_data_swm) \
+ ((cp_me_ps_event_data_swm & CP_ME_PS_EVENT_DATA_SWM_PS_DONE_DATA_SWM_MASK) >> CP_ME_PS_EVENT_DATA_SWM_PS_DONE_DATA_SWM_SHIFT)
+
+#define CP_ME_PS_EVENT_DATA_SWM_SET_PS_DONE_DATA_SWM(cp_me_ps_event_data_swm_reg, ps_done_data_swm) \
+ cp_me_ps_event_data_swm_reg = (cp_me_ps_event_data_swm_reg & ~CP_ME_PS_EVENT_DATA_SWM_PS_DONE_DATA_SWM_MASK) | (ps_done_data_swm << CP_ME_PS_EVENT_DATA_SWM_PS_DONE_DATA_SWM_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_ps_event_data_swm_t {
+ unsigned int ps_done_data_swm : CP_ME_PS_EVENT_DATA_SWM_PS_DONE_DATA_SWM_SIZE;
+ } cp_me_ps_event_data_swm_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_ps_event_data_swm_t {
+ unsigned int ps_done_data_swm : CP_ME_PS_EVENT_DATA_SWM_PS_DONE_DATA_SWM_SIZE;
+ } cp_me_ps_event_data_swm_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_ps_event_data_swm_t f;
+} cp_me_ps_event_data_swm_u;
+
+
+/*
+ * CP_ME_CF_EVENT_SRC struct
+ */
+
+#define CP_ME_CF_EVENT_SRC_CF_DONE_SRC_SIZE 1
+
+#define CP_ME_CF_EVENT_SRC_CF_DONE_SRC_SHIFT 0
+
+#define CP_ME_CF_EVENT_SRC_CF_DONE_SRC_MASK 0x00000001
+
+#define CP_ME_CF_EVENT_SRC_MASK \
+ (CP_ME_CF_EVENT_SRC_CF_DONE_SRC_MASK)
+
+#define CP_ME_CF_EVENT_SRC(cf_done_src) \
+ ((cf_done_src << CP_ME_CF_EVENT_SRC_CF_DONE_SRC_SHIFT))
+
+#define CP_ME_CF_EVENT_SRC_GET_CF_DONE_SRC(cp_me_cf_event_src) \
+ ((cp_me_cf_event_src & CP_ME_CF_EVENT_SRC_CF_DONE_SRC_MASK) >> CP_ME_CF_EVENT_SRC_CF_DONE_SRC_SHIFT)
+
+#define CP_ME_CF_EVENT_SRC_SET_CF_DONE_SRC(cp_me_cf_event_src_reg, cf_done_src) \
+ cp_me_cf_event_src_reg = (cp_me_cf_event_src_reg & ~CP_ME_CF_EVENT_SRC_CF_DONE_SRC_MASK) | (cf_done_src << CP_ME_CF_EVENT_SRC_CF_DONE_SRC_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_cf_event_src_t {
+ unsigned int cf_done_src : CP_ME_CF_EVENT_SRC_CF_DONE_SRC_SIZE;
+ unsigned int : 31;
+ } cp_me_cf_event_src_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_cf_event_src_t {
+ unsigned int : 31;
+ unsigned int cf_done_src : CP_ME_CF_EVENT_SRC_CF_DONE_SRC_SIZE;
+ } cp_me_cf_event_src_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_cf_event_src_t f;
+} cp_me_cf_event_src_u;
+
+
+/*
+ * CP_ME_CF_EVENT_ADDR struct
+ */
+
+#define CP_ME_CF_EVENT_ADDR_CF_DONE_SWAP_SIZE 2
+#define CP_ME_CF_EVENT_ADDR_CF_DONE_ADDR_SIZE 30
+
+#define CP_ME_CF_EVENT_ADDR_CF_DONE_SWAP_SHIFT 0
+#define CP_ME_CF_EVENT_ADDR_CF_DONE_ADDR_SHIFT 2
+
+#define CP_ME_CF_EVENT_ADDR_CF_DONE_SWAP_MASK 0x00000003
+#define CP_ME_CF_EVENT_ADDR_CF_DONE_ADDR_MASK 0xfffffffc
+
+#define CP_ME_CF_EVENT_ADDR_MASK \
+ (CP_ME_CF_EVENT_ADDR_CF_DONE_SWAP_MASK | \
+ CP_ME_CF_EVENT_ADDR_CF_DONE_ADDR_MASK)
+
+#define CP_ME_CF_EVENT_ADDR(cf_done_swap, cf_done_addr) \
+ ((cf_done_swap << CP_ME_CF_EVENT_ADDR_CF_DONE_SWAP_SHIFT) | \
+ (cf_done_addr << CP_ME_CF_EVENT_ADDR_CF_DONE_ADDR_SHIFT))
+
+#define CP_ME_CF_EVENT_ADDR_GET_CF_DONE_SWAP(cp_me_cf_event_addr) \
+ ((cp_me_cf_event_addr & CP_ME_CF_EVENT_ADDR_CF_DONE_SWAP_MASK) >> CP_ME_CF_EVENT_ADDR_CF_DONE_SWAP_SHIFT)
+#define CP_ME_CF_EVENT_ADDR_GET_CF_DONE_ADDR(cp_me_cf_event_addr) \
+ ((cp_me_cf_event_addr & CP_ME_CF_EVENT_ADDR_CF_DONE_ADDR_MASK) >> CP_ME_CF_EVENT_ADDR_CF_DONE_ADDR_SHIFT)
+
+#define CP_ME_CF_EVENT_ADDR_SET_CF_DONE_SWAP(cp_me_cf_event_addr_reg, cf_done_swap) \
+ cp_me_cf_event_addr_reg = (cp_me_cf_event_addr_reg & ~CP_ME_CF_EVENT_ADDR_CF_DONE_SWAP_MASK) | (cf_done_swap << CP_ME_CF_EVENT_ADDR_CF_DONE_SWAP_SHIFT)
+#define CP_ME_CF_EVENT_ADDR_SET_CF_DONE_ADDR(cp_me_cf_event_addr_reg, cf_done_addr) \
+ cp_me_cf_event_addr_reg = (cp_me_cf_event_addr_reg & ~CP_ME_CF_EVENT_ADDR_CF_DONE_ADDR_MASK) | (cf_done_addr << CP_ME_CF_EVENT_ADDR_CF_DONE_ADDR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_cf_event_addr_t {
+ unsigned int cf_done_swap : CP_ME_CF_EVENT_ADDR_CF_DONE_SWAP_SIZE;
+ unsigned int cf_done_addr : CP_ME_CF_EVENT_ADDR_CF_DONE_ADDR_SIZE;
+ } cp_me_cf_event_addr_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_cf_event_addr_t {
+ unsigned int cf_done_addr : CP_ME_CF_EVENT_ADDR_CF_DONE_ADDR_SIZE;
+ unsigned int cf_done_swap : CP_ME_CF_EVENT_ADDR_CF_DONE_SWAP_SIZE;
+ } cp_me_cf_event_addr_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_cf_event_addr_t f;
+} cp_me_cf_event_addr_u;
+
+
+/*
+ * CP_ME_CF_EVENT_DATA struct
+ */
+
+#define CP_ME_CF_EVENT_DATA_CF_DONE_DATA_SIZE 32
+
+#define CP_ME_CF_EVENT_DATA_CF_DONE_DATA_SHIFT 0
+
+#define CP_ME_CF_EVENT_DATA_CF_DONE_DATA_MASK 0xffffffff
+
+#define CP_ME_CF_EVENT_DATA_MASK \
+ (CP_ME_CF_EVENT_DATA_CF_DONE_DATA_MASK)
+
+#define CP_ME_CF_EVENT_DATA(cf_done_data) \
+ ((cf_done_data << CP_ME_CF_EVENT_DATA_CF_DONE_DATA_SHIFT))
+
+#define CP_ME_CF_EVENT_DATA_GET_CF_DONE_DATA(cp_me_cf_event_data) \
+ ((cp_me_cf_event_data & CP_ME_CF_EVENT_DATA_CF_DONE_DATA_MASK) >> CP_ME_CF_EVENT_DATA_CF_DONE_DATA_SHIFT)
+
+#define CP_ME_CF_EVENT_DATA_SET_CF_DONE_DATA(cp_me_cf_event_data_reg, cf_done_data) \
+ cp_me_cf_event_data_reg = (cp_me_cf_event_data_reg & ~CP_ME_CF_EVENT_DATA_CF_DONE_DATA_MASK) | (cf_done_data << CP_ME_CF_EVENT_DATA_CF_DONE_DATA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_cf_event_data_t {
+ unsigned int cf_done_data : CP_ME_CF_EVENT_DATA_CF_DONE_DATA_SIZE;
+ } cp_me_cf_event_data_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_cf_event_data_t {
+ unsigned int cf_done_data : CP_ME_CF_EVENT_DATA_CF_DONE_DATA_SIZE;
+ } cp_me_cf_event_data_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_cf_event_data_t f;
+} cp_me_cf_event_data_u;
+
+
+/*
+ * CP_ME_NRT_ADDR struct
+ */
+
+#define CP_ME_NRT_ADDR_NRT_WRITE_SWAP_SIZE 2
+#define CP_ME_NRT_ADDR_NRT_WRITE_ADDR_SIZE 30
+
+#define CP_ME_NRT_ADDR_NRT_WRITE_SWAP_SHIFT 0
+#define CP_ME_NRT_ADDR_NRT_WRITE_ADDR_SHIFT 2
+
+#define CP_ME_NRT_ADDR_NRT_WRITE_SWAP_MASK 0x00000003
+#define CP_ME_NRT_ADDR_NRT_WRITE_ADDR_MASK 0xfffffffc
+
+#define CP_ME_NRT_ADDR_MASK \
+ (CP_ME_NRT_ADDR_NRT_WRITE_SWAP_MASK | \
+ CP_ME_NRT_ADDR_NRT_WRITE_ADDR_MASK)
+
+#define CP_ME_NRT_ADDR(nrt_write_swap, nrt_write_addr) \
+ ((nrt_write_swap << CP_ME_NRT_ADDR_NRT_WRITE_SWAP_SHIFT) | \
+ (nrt_write_addr << CP_ME_NRT_ADDR_NRT_WRITE_ADDR_SHIFT))
+
+#define CP_ME_NRT_ADDR_GET_NRT_WRITE_SWAP(cp_me_nrt_addr) \
+ ((cp_me_nrt_addr & CP_ME_NRT_ADDR_NRT_WRITE_SWAP_MASK) >> CP_ME_NRT_ADDR_NRT_WRITE_SWAP_SHIFT)
+#define CP_ME_NRT_ADDR_GET_NRT_WRITE_ADDR(cp_me_nrt_addr) \
+ ((cp_me_nrt_addr & CP_ME_NRT_ADDR_NRT_WRITE_ADDR_MASK) >> CP_ME_NRT_ADDR_NRT_WRITE_ADDR_SHIFT)
+
+#define CP_ME_NRT_ADDR_SET_NRT_WRITE_SWAP(cp_me_nrt_addr_reg, nrt_write_swap) \
+ cp_me_nrt_addr_reg = (cp_me_nrt_addr_reg & ~CP_ME_NRT_ADDR_NRT_WRITE_SWAP_MASK) | (nrt_write_swap << CP_ME_NRT_ADDR_NRT_WRITE_SWAP_SHIFT)
+#define CP_ME_NRT_ADDR_SET_NRT_WRITE_ADDR(cp_me_nrt_addr_reg, nrt_write_addr) \
+ cp_me_nrt_addr_reg = (cp_me_nrt_addr_reg & ~CP_ME_NRT_ADDR_NRT_WRITE_ADDR_MASK) | (nrt_write_addr << CP_ME_NRT_ADDR_NRT_WRITE_ADDR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_nrt_addr_t {
+ unsigned int nrt_write_swap : CP_ME_NRT_ADDR_NRT_WRITE_SWAP_SIZE;
+ unsigned int nrt_write_addr : CP_ME_NRT_ADDR_NRT_WRITE_ADDR_SIZE;
+ } cp_me_nrt_addr_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_nrt_addr_t {
+ unsigned int nrt_write_addr : CP_ME_NRT_ADDR_NRT_WRITE_ADDR_SIZE;
+ unsigned int nrt_write_swap : CP_ME_NRT_ADDR_NRT_WRITE_SWAP_SIZE;
+ } cp_me_nrt_addr_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_nrt_addr_t f;
+} cp_me_nrt_addr_u;
+
+
+/*
+ * CP_ME_NRT_DATA struct
+ */
+
+#define CP_ME_NRT_DATA_NRT_WRITE_DATA_SIZE 32
+
+#define CP_ME_NRT_DATA_NRT_WRITE_DATA_SHIFT 0
+
+#define CP_ME_NRT_DATA_NRT_WRITE_DATA_MASK 0xffffffff
+
+#define CP_ME_NRT_DATA_MASK \
+ (CP_ME_NRT_DATA_NRT_WRITE_DATA_MASK)
+
+#define CP_ME_NRT_DATA(nrt_write_data) \
+ ((nrt_write_data << CP_ME_NRT_DATA_NRT_WRITE_DATA_SHIFT))
+
+#define CP_ME_NRT_DATA_GET_NRT_WRITE_DATA(cp_me_nrt_data) \
+ ((cp_me_nrt_data & CP_ME_NRT_DATA_NRT_WRITE_DATA_MASK) >> CP_ME_NRT_DATA_NRT_WRITE_DATA_SHIFT)
+
+#define CP_ME_NRT_DATA_SET_NRT_WRITE_DATA(cp_me_nrt_data_reg, nrt_write_data) \
+ cp_me_nrt_data_reg = (cp_me_nrt_data_reg & ~CP_ME_NRT_DATA_NRT_WRITE_DATA_MASK) | (nrt_write_data << CP_ME_NRT_DATA_NRT_WRITE_DATA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_nrt_data_t {
+ unsigned int nrt_write_data : CP_ME_NRT_DATA_NRT_WRITE_DATA_SIZE;
+ } cp_me_nrt_data_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_nrt_data_t {
+ unsigned int nrt_write_data : CP_ME_NRT_DATA_NRT_WRITE_DATA_SIZE;
+ } cp_me_nrt_data_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_nrt_data_t f;
+} cp_me_nrt_data_u;
+
+
+/*
+ * CP_ME_VS_FETCH_DONE_SRC struct
+ */
+
+#define CP_ME_VS_FETCH_DONE_SRC_VS_FETCH_DONE_CNTR_SIZE 1
+
+#define CP_ME_VS_FETCH_DONE_SRC_VS_FETCH_DONE_CNTR_SHIFT 0
+
+#define CP_ME_VS_FETCH_DONE_SRC_VS_FETCH_DONE_CNTR_MASK 0x00000001
+
+#define CP_ME_VS_FETCH_DONE_SRC_MASK \
+ (CP_ME_VS_FETCH_DONE_SRC_VS_FETCH_DONE_CNTR_MASK)
+
+#define CP_ME_VS_FETCH_DONE_SRC(vs_fetch_done_cntr) \
+ ((vs_fetch_done_cntr << CP_ME_VS_FETCH_DONE_SRC_VS_FETCH_DONE_CNTR_SHIFT))
+
+#define CP_ME_VS_FETCH_DONE_SRC_GET_VS_FETCH_DONE_CNTR(cp_me_vs_fetch_done_src) \
+ ((cp_me_vs_fetch_done_src & CP_ME_VS_FETCH_DONE_SRC_VS_FETCH_DONE_CNTR_MASK) >> CP_ME_VS_FETCH_DONE_SRC_VS_FETCH_DONE_CNTR_SHIFT)
+
+#define CP_ME_VS_FETCH_DONE_SRC_SET_VS_FETCH_DONE_CNTR(cp_me_vs_fetch_done_src_reg, vs_fetch_done_cntr) \
+ cp_me_vs_fetch_done_src_reg = (cp_me_vs_fetch_done_src_reg & ~CP_ME_VS_FETCH_DONE_SRC_VS_FETCH_DONE_CNTR_MASK) | (vs_fetch_done_cntr << CP_ME_VS_FETCH_DONE_SRC_VS_FETCH_DONE_CNTR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_vs_fetch_done_src_t {
+ unsigned int vs_fetch_done_cntr : CP_ME_VS_FETCH_DONE_SRC_VS_FETCH_DONE_CNTR_SIZE;
+ unsigned int : 31;
+ } cp_me_vs_fetch_done_src_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_vs_fetch_done_src_t {
+ unsigned int : 31;
+ unsigned int vs_fetch_done_cntr : CP_ME_VS_FETCH_DONE_SRC_VS_FETCH_DONE_CNTR_SIZE;
+ } cp_me_vs_fetch_done_src_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_vs_fetch_done_src_t f;
+} cp_me_vs_fetch_done_src_u;
+
+
+/*
+ * CP_ME_VS_FETCH_DONE_ADDR struct
+ */
+
+#define CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_SWAP_SIZE 2
+#define CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_ADDR_SIZE 30
+
+#define CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_SWAP_SHIFT 0
+#define CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_ADDR_SHIFT 2
+
+#define CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_SWAP_MASK 0x00000003
+#define CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_ADDR_MASK 0xfffffffc
+
+#define CP_ME_VS_FETCH_DONE_ADDR_MASK \
+ (CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_SWAP_MASK | \
+ CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_ADDR_MASK)
+
+#define CP_ME_VS_FETCH_DONE_ADDR(vs_fetch_done_swap, vs_fetch_done_addr) \
+ ((vs_fetch_done_swap << CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_SWAP_SHIFT) | \
+ (vs_fetch_done_addr << CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_ADDR_SHIFT))
+
+#define CP_ME_VS_FETCH_DONE_ADDR_GET_VS_FETCH_DONE_SWAP(cp_me_vs_fetch_done_addr) \
+ ((cp_me_vs_fetch_done_addr & CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_SWAP_MASK) >> CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_SWAP_SHIFT)
+#define CP_ME_VS_FETCH_DONE_ADDR_GET_VS_FETCH_DONE_ADDR(cp_me_vs_fetch_done_addr) \
+ ((cp_me_vs_fetch_done_addr & CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_ADDR_MASK) >> CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_ADDR_SHIFT)
+
+#define CP_ME_VS_FETCH_DONE_ADDR_SET_VS_FETCH_DONE_SWAP(cp_me_vs_fetch_done_addr_reg, vs_fetch_done_swap) \
+ cp_me_vs_fetch_done_addr_reg = (cp_me_vs_fetch_done_addr_reg & ~CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_SWAP_MASK) | (vs_fetch_done_swap << CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_SWAP_SHIFT)
+#define CP_ME_VS_FETCH_DONE_ADDR_SET_VS_FETCH_DONE_ADDR(cp_me_vs_fetch_done_addr_reg, vs_fetch_done_addr) \
+ cp_me_vs_fetch_done_addr_reg = (cp_me_vs_fetch_done_addr_reg & ~CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_ADDR_MASK) | (vs_fetch_done_addr << CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_ADDR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_vs_fetch_done_addr_t {
+ unsigned int vs_fetch_done_swap : CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_SWAP_SIZE;
+ unsigned int vs_fetch_done_addr : CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_ADDR_SIZE;
+ } cp_me_vs_fetch_done_addr_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_vs_fetch_done_addr_t {
+ unsigned int vs_fetch_done_addr : CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_ADDR_SIZE;
+ unsigned int vs_fetch_done_swap : CP_ME_VS_FETCH_DONE_ADDR_VS_FETCH_DONE_SWAP_SIZE;
+ } cp_me_vs_fetch_done_addr_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_vs_fetch_done_addr_t f;
+} cp_me_vs_fetch_done_addr_u;
+
+
+/*
+ * CP_ME_VS_FETCH_DONE_DATA struct
+ */
+
+#define CP_ME_VS_FETCH_DONE_DATA_VS_FETCH_DONE_DATA_SIZE 32
+
+#define CP_ME_VS_FETCH_DONE_DATA_VS_FETCH_DONE_DATA_SHIFT 0
+
+#define CP_ME_VS_FETCH_DONE_DATA_VS_FETCH_DONE_DATA_MASK 0xffffffff
+
+#define CP_ME_VS_FETCH_DONE_DATA_MASK \
+ (CP_ME_VS_FETCH_DONE_DATA_VS_FETCH_DONE_DATA_MASK)
+
+#define CP_ME_VS_FETCH_DONE_DATA(vs_fetch_done_data) \
+ ((vs_fetch_done_data << CP_ME_VS_FETCH_DONE_DATA_VS_FETCH_DONE_DATA_SHIFT))
+
+#define CP_ME_VS_FETCH_DONE_DATA_GET_VS_FETCH_DONE_DATA(cp_me_vs_fetch_done_data) \
+ ((cp_me_vs_fetch_done_data & CP_ME_VS_FETCH_DONE_DATA_VS_FETCH_DONE_DATA_MASK) >> CP_ME_VS_FETCH_DONE_DATA_VS_FETCH_DONE_DATA_SHIFT)
+
+#define CP_ME_VS_FETCH_DONE_DATA_SET_VS_FETCH_DONE_DATA(cp_me_vs_fetch_done_data_reg, vs_fetch_done_data) \
+ cp_me_vs_fetch_done_data_reg = (cp_me_vs_fetch_done_data_reg & ~CP_ME_VS_FETCH_DONE_DATA_VS_FETCH_DONE_DATA_MASK) | (vs_fetch_done_data << CP_ME_VS_FETCH_DONE_DATA_VS_FETCH_DONE_DATA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_me_vs_fetch_done_data_t {
+ unsigned int vs_fetch_done_data : CP_ME_VS_FETCH_DONE_DATA_VS_FETCH_DONE_DATA_SIZE;
+ } cp_me_vs_fetch_done_data_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_me_vs_fetch_done_data_t {
+ unsigned int vs_fetch_done_data : CP_ME_VS_FETCH_DONE_DATA_VS_FETCH_DONE_DATA_SIZE;
+ } cp_me_vs_fetch_done_data_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_me_vs_fetch_done_data_t f;
+} cp_me_vs_fetch_done_data_u;
+
+
+/*
+ * CP_INT_CNTL struct
+ */
+
+#define CP_INT_CNTL_SW_INT_MASK_SIZE 1
+#define CP_INT_CNTL_T0_PACKET_IN_IB_MASK_SIZE 1
+#define CP_INT_CNTL_OPCODE_ERROR_MASK_SIZE 1
+#define CP_INT_CNTL_PROTECTED_MODE_ERROR_MASK_SIZE 1
+#define CP_INT_CNTL_RESERVED_BIT_ERROR_MASK_SIZE 1
+#define CP_INT_CNTL_IB_ERROR_MASK_SIZE 1
+#define CP_INT_CNTL_IB2_INT_MASK_SIZE 1
+#define CP_INT_CNTL_IB1_INT_MASK_SIZE 1
+#define CP_INT_CNTL_RB_INT_MASK_SIZE 1
+
+#define CP_INT_CNTL_SW_INT_MASK_SHIFT 19
+#define CP_INT_CNTL_T0_PACKET_IN_IB_MASK_SHIFT 23
+#define CP_INT_CNTL_OPCODE_ERROR_MASK_SHIFT 24
+#define CP_INT_CNTL_PROTECTED_MODE_ERROR_MASK_SHIFT 25
+#define CP_INT_CNTL_RESERVED_BIT_ERROR_MASK_SHIFT 26
+#define CP_INT_CNTL_IB_ERROR_MASK_SHIFT 27
+#define CP_INT_CNTL_IB2_INT_MASK_SHIFT 29
+#define CP_INT_CNTL_IB1_INT_MASK_SHIFT 30
+#define CP_INT_CNTL_RB_INT_MASK_SHIFT 31
+
+#define CP_INT_CNTL_SW_INT_MASK_MASK 0x00080000
+#define CP_INT_CNTL_T0_PACKET_IN_IB_MASK_MASK 0x00800000
+#define CP_INT_CNTL_OPCODE_ERROR_MASK_MASK 0x01000000
+#define CP_INT_CNTL_PROTECTED_MODE_ERROR_MASK_MASK 0x02000000
+#define CP_INT_CNTL_RESERVED_BIT_ERROR_MASK_MASK 0x04000000
+#define CP_INT_CNTL_IB_ERROR_MASK_MASK 0x08000000
+#define CP_INT_CNTL_IB2_INT_MASK_MASK 0x20000000
+#define CP_INT_CNTL_IB1_INT_MASK_MASK 0x40000000
+#define CP_INT_CNTL_RB_INT_MASK_MASK 0x80000000
+
+#define CP_INT_CNTL_MASK \
+ (CP_INT_CNTL_SW_INT_MASK_MASK | \
+ CP_INT_CNTL_T0_PACKET_IN_IB_MASK_MASK | \
+ CP_INT_CNTL_OPCODE_ERROR_MASK_MASK | \
+ CP_INT_CNTL_PROTECTED_MODE_ERROR_MASK_MASK | \
+ CP_INT_CNTL_RESERVED_BIT_ERROR_MASK_MASK | \
+ CP_INT_CNTL_IB_ERROR_MASK_MASK | \
+ CP_INT_CNTL_IB2_INT_MASK_MASK | \
+ CP_INT_CNTL_IB1_INT_MASK_MASK | \
+ CP_INT_CNTL_RB_INT_MASK_MASK)
+
+#define CP_INT_CNTL(sw_int_mask, t0_packet_in_ib_mask, opcode_error_mask, protected_mode_error_mask, reserved_bit_error_mask, ib_error_mask, ib2_int_mask, ib1_int_mask, rb_int_mask) \
+ ((sw_int_mask << CP_INT_CNTL_SW_INT_MASK_SHIFT) | \
+ (t0_packet_in_ib_mask << CP_INT_CNTL_T0_PACKET_IN_IB_MASK_SHIFT) | \
+ (opcode_error_mask << CP_INT_CNTL_OPCODE_ERROR_MASK_SHIFT) | \
+ (protected_mode_error_mask << CP_INT_CNTL_PROTECTED_MODE_ERROR_MASK_SHIFT) | \
+ (reserved_bit_error_mask << CP_INT_CNTL_RESERVED_BIT_ERROR_MASK_SHIFT) | \
+ (ib_error_mask << CP_INT_CNTL_IB_ERROR_MASK_SHIFT) | \
+ (ib2_int_mask << CP_INT_CNTL_IB2_INT_MASK_SHIFT) | \
+ (ib1_int_mask << CP_INT_CNTL_IB1_INT_MASK_SHIFT) | \
+ (rb_int_mask << CP_INT_CNTL_RB_INT_MASK_SHIFT))
+
+#define CP_INT_CNTL_GET_SW_INT_MASK(cp_int_cntl) \
+ ((cp_int_cntl & CP_INT_CNTL_SW_INT_MASK_MASK) >> CP_INT_CNTL_SW_INT_MASK_SHIFT)
+#define CP_INT_CNTL_GET_T0_PACKET_IN_IB_MASK(cp_int_cntl) \
+ ((cp_int_cntl & CP_INT_CNTL_T0_PACKET_IN_IB_MASK_MASK) >> CP_INT_CNTL_T0_PACKET_IN_IB_MASK_SHIFT)
+#define CP_INT_CNTL_GET_OPCODE_ERROR_MASK(cp_int_cntl) \
+ ((cp_int_cntl & CP_INT_CNTL_OPCODE_ERROR_MASK_MASK) >> CP_INT_CNTL_OPCODE_ERROR_MASK_SHIFT)
+#define CP_INT_CNTL_GET_PROTECTED_MODE_ERROR_MASK(cp_int_cntl) \
+ ((cp_int_cntl & CP_INT_CNTL_PROTECTED_MODE_ERROR_MASK_MASK) >> CP_INT_CNTL_PROTECTED_MODE_ERROR_MASK_SHIFT)
+#define CP_INT_CNTL_GET_RESERVED_BIT_ERROR_MASK(cp_int_cntl) \
+ ((cp_int_cntl & CP_INT_CNTL_RESERVED_BIT_ERROR_MASK_MASK) >> CP_INT_CNTL_RESERVED_BIT_ERROR_MASK_SHIFT)
+#define CP_INT_CNTL_GET_IB_ERROR_MASK(cp_int_cntl) \
+ ((cp_int_cntl & CP_INT_CNTL_IB_ERROR_MASK_MASK) >> CP_INT_CNTL_IB_ERROR_MASK_SHIFT)
+#define CP_INT_CNTL_GET_IB2_INT_MASK(cp_int_cntl) \
+ ((cp_int_cntl & CP_INT_CNTL_IB2_INT_MASK_MASK) >> CP_INT_CNTL_IB2_INT_MASK_SHIFT)
+#define CP_INT_CNTL_GET_IB1_INT_MASK(cp_int_cntl) \
+ ((cp_int_cntl & CP_INT_CNTL_IB1_INT_MASK_MASK) >> CP_INT_CNTL_IB1_INT_MASK_SHIFT)
+#define CP_INT_CNTL_GET_RB_INT_MASK(cp_int_cntl) \
+ ((cp_int_cntl & CP_INT_CNTL_RB_INT_MASK_MASK) >> CP_INT_CNTL_RB_INT_MASK_SHIFT)
+
+#define CP_INT_CNTL_SET_SW_INT_MASK(cp_int_cntl_reg, sw_int_mask) \
+ cp_int_cntl_reg = (cp_int_cntl_reg & ~CP_INT_CNTL_SW_INT_MASK_MASK) | (sw_int_mask << CP_INT_CNTL_SW_INT_MASK_SHIFT)
+#define CP_INT_CNTL_SET_T0_PACKET_IN_IB_MASK(cp_int_cntl_reg, t0_packet_in_ib_mask) \
+ cp_int_cntl_reg = (cp_int_cntl_reg & ~CP_INT_CNTL_T0_PACKET_IN_IB_MASK_MASK) | (t0_packet_in_ib_mask << CP_INT_CNTL_T0_PACKET_IN_IB_MASK_SHIFT)
+#define CP_INT_CNTL_SET_OPCODE_ERROR_MASK(cp_int_cntl_reg, opcode_error_mask) \
+ cp_int_cntl_reg = (cp_int_cntl_reg & ~CP_INT_CNTL_OPCODE_ERROR_MASK_MASK) | (opcode_error_mask << CP_INT_CNTL_OPCODE_ERROR_MASK_SHIFT)
+#define CP_INT_CNTL_SET_PROTECTED_MODE_ERROR_MASK(cp_int_cntl_reg, protected_mode_error_mask) \
+ cp_int_cntl_reg = (cp_int_cntl_reg & ~CP_INT_CNTL_PROTECTED_MODE_ERROR_MASK_MASK) | (protected_mode_error_mask << CP_INT_CNTL_PROTECTED_MODE_ERROR_MASK_SHIFT)
+#define CP_INT_CNTL_SET_RESERVED_BIT_ERROR_MASK(cp_int_cntl_reg, reserved_bit_error_mask) \
+ cp_int_cntl_reg = (cp_int_cntl_reg & ~CP_INT_CNTL_RESERVED_BIT_ERROR_MASK_MASK) | (reserved_bit_error_mask << CP_INT_CNTL_RESERVED_BIT_ERROR_MASK_SHIFT)
+#define CP_INT_CNTL_SET_IB_ERROR_MASK(cp_int_cntl_reg, ib_error_mask) \
+ cp_int_cntl_reg = (cp_int_cntl_reg & ~CP_INT_CNTL_IB_ERROR_MASK_MASK) | (ib_error_mask << CP_INT_CNTL_IB_ERROR_MASK_SHIFT)
+#define CP_INT_CNTL_SET_IB2_INT_MASK(cp_int_cntl_reg, ib2_int_mask) \
+ cp_int_cntl_reg = (cp_int_cntl_reg & ~CP_INT_CNTL_IB2_INT_MASK_MASK) | (ib2_int_mask << CP_INT_CNTL_IB2_INT_MASK_SHIFT)
+#define CP_INT_CNTL_SET_IB1_INT_MASK(cp_int_cntl_reg, ib1_int_mask) \
+ cp_int_cntl_reg = (cp_int_cntl_reg & ~CP_INT_CNTL_IB1_INT_MASK_MASK) | (ib1_int_mask << CP_INT_CNTL_IB1_INT_MASK_SHIFT)
+#define CP_INT_CNTL_SET_RB_INT_MASK(cp_int_cntl_reg, rb_int_mask) \
+ cp_int_cntl_reg = (cp_int_cntl_reg & ~CP_INT_CNTL_RB_INT_MASK_MASK) | (rb_int_mask << CP_INT_CNTL_RB_INT_MASK_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_int_cntl_t {
+ unsigned int : 19;
+ unsigned int sw_int_mask : CP_INT_CNTL_SW_INT_MASK_SIZE;
+ unsigned int : 3;
+ unsigned int t0_packet_in_ib_mask : CP_INT_CNTL_T0_PACKET_IN_IB_MASK_SIZE;
+ unsigned int opcode_error_mask : CP_INT_CNTL_OPCODE_ERROR_MASK_SIZE;
+ unsigned int protected_mode_error_mask : CP_INT_CNTL_PROTECTED_MODE_ERROR_MASK_SIZE;
+ unsigned int reserved_bit_error_mask : CP_INT_CNTL_RESERVED_BIT_ERROR_MASK_SIZE;
+ unsigned int ib_error_mask : CP_INT_CNTL_IB_ERROR_MASK_SIZE;
+ unsigned int : 1;
+ unsigned int ib2_int_mask : CP_INT_CNTL_IB2_INT_MASK_SIZE;
+ unsigned int ib1_int_mask : CP_INT_CNTL_IB1_INT_MASK_SIZE;
+ unsigned int rb_int_mask : CP_INT_CNTL_RB_INT_MASK_SIZE;
+ } cp_int_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_int_cntl_t {
+ unsigned int rb_int_mask : CP_INT_CNTL_RB_INT_MASK_SIZE;
+ unsigned int ib1_int_mask : CP_INT_CNTL_IB1_INT_MASK_SIZE;
+ unsigned int ib2_int_mask : CP_INT_CNTL_IB2_INT_MASK_SIZE;
+ unsigned int : 1;
+ unsigned int ib_error_mask : CP_INT_CNTL_IB_ERROR_MASK_SIZE;
+ unsigned int reserved_bit_error_mask : CP_INT_CNTL_RESERVED_BIT_ERROR_MASK_SIZE;
+ unsigned int protected_mode_error_mask : CP_INT_CNTL_PROTECTED_MODE_ERROR_MASK_SIZE;
+ unsigned int opcode_error_mask : CP_INT_CNTL_OPCODE_ERROR_MASK_SIZE;
+ unsigned int t0_packet_in_ib_mask : CP_INT_CNTL_T0_PACKET_IN_IB_MASK_SIZE;
+ unsigned int : 3;
+ unsigned int sw_int_mask : CP_INT_CNTL_SW_INT_MASK_SIZE;
+ unsigned int : 19;
+ } cp_int_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_int_cntl_t f;
+} cp_int_cntl_u;
+
+
+/*
+ * CP_INT_STATUS struct
+ */
+
+#define CP_INT_STATUS_SW_INT_STAT_SIZE 1
+#define CP_INT_STATUS_T0_PACKET_IN_IB_STAT_SIZE 1
+#define CP_INT_STATUS_OPCODE_ERROR_STAT_SIZE 1
+#define CP_INT_STATUS_PROTECTED_MODE_ERROR_STAT_SIZE 1
+#define CP_INT_STATUS_RESERVED_BIT_ERROR_STAT_SIZE 1
+#define CP_INT_STATUS_IB_ERROR_STAT_SIZE 1
+#define CP_INT_STATUS_IB2_INT_STAT_SIZE 1
+#define CP_INT_STATUS_IB1_INT_STAT_SIZE 1
+#define CP_INT_STATUS_RB_INT_STAT_SIZE 1
+
+#define CP_INT_STATUS_SW_INT_STAT_SHIFT 19
+#define CP_INT_STATUS_T0_PACKET_IN_IB_STAT_SHIFT 23
+#define CP_INT_STATUS_OPCODE_ERROR_STAT_SHIFT 24
+#define CP_INT_STATUS_PROTECTED_MODE_ERROR_STAT_SHIFT 25
+#define CP_INT_STATUS_RESERVED_BIT_ERROR_STAT_SHIFT 26
+#define CP_INT_STATUS_IB_ERROR_STAT_SHIFT 27
+#define CP_INT_STATUS_IB2_INT_STAT_SHIFT 29
+#define CP_INT_STATUS_IB1_INT_STAT_SHIFT 30
+#define CP_INT_STATUS_RB_INT_STAT_SHIFT 31
+
+#define CP_INT_STATUS_SW_INT_STAT_MASK 0x00080000
+#define CP_INT_STATUS_T0_PACKET_IN_IB_STAT_MASK 0x00800000
+#define CP_INT_STATUS_OPCODE_ERROR_STAT_MASK 0x01000000
+#define CP_INT_STATUS_PROTECTED_MODE_ERROR_STAT_MASK 0x02000000
+#define CP_INT_STATUS_RESERVED_BIT_ERROR_STAT_MASK 0x04000000
+#define CP_INT_STATUS_IB_ERROR_STAT_MASK 0x08000000
+#define CP_INT_STATUS_IB2_INT_STAT_MASK 0x20000000
+#define CP_INT_STATUS_IB1_INT_STAT_MASK 0x40000000
+#define CP_INT_STATUS_RB_INT_STAT_MASK 0x80000000
+
+#define CP_INT_STATUS_MASK \
+ (CP_INT_STATUS_SW_INT_STAT_MASK | \
+ CP_INT_STATUS_T0_PACKET_IN_IB_STAT_MASK | \
+ CP_INT_STATUS_OPCODE_ERROR_STAT_MASK | \
+ CP_INT_STATUS_PROTECTED_MODE_ERROR_STAT_MASK | \
+ CP_INT_STATUS_RESERVED_BIT_ERROR_STAT_MASK | \
+ CP_INT_STATUS_IB_ERROR_STAT_MASK | \
+ CP_INT_STATUS_IB2_INT_STAT_MASK | \
+ CP_INT_STATUS_IB1_INT_STAT_MASK | \
+ CP_INT_STATUS_RB_INT_STAT_MASK)
+
+#define CP_INT_STATUS(sw_int_stat, t0_packet_in_ib_stat, opcode_error_stat, protected_mode_error_stat, reserved_bit_error_stat, ib_error_stat, ib2_int_stat, ib1_int_stat, rb_int_stat) \
+ ((sw_int_stat << CP_INT_STATUS_SW_INT_STAT_SHIFT) | \
+ (t0_packet_in_ib_stat << CP_INT_STATUS_T0_PACKET_IN_IB_STAT_SHIFT) | \
+ (opcode_error_stat << CP_INT_STATUS_OPCODE_ERROR_STAT_SHIFT) | \
+ (protected_mode_error_stat << CP_INT_STATUS_PROTECTED_MODE_ERROR_STAT_SHIFT) | \
+ (reserved_bit_error_stat << CP_INT_STATUS_RESERVED_BIT_ERROR_STAT_SHIFT) | \
+ (ib_error_stat << CP_INT_STATUS_IB_ERROR_STAT_SHIFT) | \
+ (ib2_int_stat << CP_INT_STATUS_IB2_INT_STAT_SHIFT) | \
+ (ib1_int_stat << CP_INT_STATUS_IB1_INT_STAT_SHIFT) | \
+ (rb_int_stat << CP_INT_STATUS_RB_INT_STAT_SHIFT))
+
+#define CP_INT_STATUS_GET_SW_INT_STAT(cp_int_status) \
+ ((cp_int_status & CP_INT_STATUS_SW_INT_STAT_MASK) >> CP_INT_STATUS_SW_INT_STAT_SHIFT)
+#define CP_INT_STATUS_GET_T0_PACKET_IN_IB_STAT(cp_int_status) \
+ ((cp_int_status & CP_INT_STATUS_T0_PACKET_IN_IB_STAT_MASK) >> CP_INT_STATUS_T0_PACKET_IN_IB_STAT_SHIFT)
+#define CP_INT_STATUS_GET_OPCODE_ERROR_STAT(cp_int_status) \
+ ((cp_int_status & CP_INT_STATUS_OPCODE_ERROR_STAT_MASK) >> CP_INT_STATUS_OPCODE_ERROR_STAT_SHIFT)
+#define CP_INT_STATUS_GET_PROTECTED_MODE_ERROR_STAT(cp_int_status) \
+ ((cp_int_status & CP_INT_STATUS_PROTECTED_MODE_ERROR_STAT_MASK) >> CP_INT_STATUS_PROTECTED_MODE_ERROR_STAT_SHIFT)
+#define CP_INT_STATUS_GET_RESERVED_BIT_ERROR_STAT(cp_int_status) \
+ ((cp_int_status & CP_INT_STATUS_RESERVED_BIT_ERROR_STAT_MASK) >> CP_INT_STATUS_RESERVED_BIT_ERROR_STAT_SHIFT)
+#define CP_INT_STATUS_GET_IB_ERROR_STAT(cp_int_status) \
+ ((cp_int_status & CP_INT_STATUS_IB_ERROR_STAT_MASK) >> CP_INT_STATUS_IB_ERROR_STAT_SHIFT)
+#define CP_INT_STATUS_GET_IB2_INT_STAT(cp_int_status) \
+ ((cp_int_status & CP_INT_STATUS_IB2_INT_STAT_MASK) >> CP_INT_STATUS_IB2_INT_STAT_SHIFT)
+#define CP_INT_STATUS_GET_IB1_INT_STAT(cp_int_status) \
+ ((cp_int_status & CP_INT_STATUS_IB1_INT_STAT_MASK) >> CP_INT_STATUS_IB1_INT_STAT_SHIFT)
+#define CP_INT_STATUS_GET_RB_INT_STAT(cp_int_status) \
+ ((cp_int_status & CP_INT_STATUS_RB_INT_STAT_MASK) >> CP_INT_STATUS_RB_INT_STAT_SHIFT)
+
+#define CP_INT_STATUS_SET_SW_INT_STAT(cp_int_status_reg, sw_int_stat) \
+ cp_int_status_reg = (cp_int_status_reg & ~CP_INT_STATUS_SW_INT_STAT_MASK) | (sw_int_stat << CP_INT_STATUS_SW_INT_STAT_SHIFT)
+#define CP_INT_STATUS_SET_T0_PACKET_IN_IB_STAT(cp_int_status_reg, t0_packet_in_ib_stat) \
+ cp_int_status_reg = (cp_int_status_reg & ~CP_INT_STATUS_T0_PACKET_IN_IB_STAT_MASK) | (t0_packet_in_ib_stat << CP_INT_STATUS_T0_PACKET_IN_IB_STAT_SHIFT)
+#define CP_INT_STATUS_SET_OPCODE_ERROR_STAT(cp_int_status_reg, opcode_error_stat) \
+ cp_int_status_reg = (cp_int_status_reg & ~CP_INT_STATUS_OPCODE_ERROR_STAT_MASK) | (opcode_error_stat << CP_INT_STATUS_OPCODE_ERROR_STAT_SHIFT)
+#define CP_INT_STATUS_SET_PROTECTED_MODE_ERROR_STAT(cp_int_status_reg, protected_mode_error_stat) \
+ cp_int_status_reg = (cp_int_status_reg & ~CP_INT_STATUS_PROTECTED_MODE_ERROR_STAT_MASK) | (protected_mode_error_stat << CP_INT_STATUS_PROTECTED_MODE_ERROR_STAT_SHIFT)
+#define CP_INT_STATUS_SET_RESERVED_BIT_ERROR_STAT(cp_int_status_reg, reserved_bit_error_stat) \
+ cp_int_status_reg = (cp_int_status_reg & ~CP_INT_STATUS_RESERVED_BIT_ERROR_STAT_MASK) | (reserved_bit_error_stat << CP_INT_STATUS_RESERVED_BIT_ERROR_STAT_SHIFT)
+#define CP_INT_STATUS_SET_IB_ERROR_STAT(cp_int_status_reg, ib_error_stat) \
+ cp_int_status_reg = (cp_int_status_reg & ~CP_INT_STATUS_IB_ERROR_STAT_MASK) | (ib_error_stat << CP_INT_STATUS_IB_ERROR_STAT_SHIFT)
+#define CP_INT_STATUS_SET_IB2_INT_STAT(cp_int_status_reg, ib2_int_stat) \
+ cp_int_status_reg = (cp_int_status_reg & ~CP_INT_STATUS_IB2_INT_STAT_MASK) | (ib2_int_stat << CP_INT_STATUS_IB2_INT_STAT_SHIFT)
+#define CP_INT_STATUS_SET_IB1_INT_STAT(cp_int_status_reg, ib1_int_stat) \
+ cp_int_status_reg = (cp_int_status_reg & ~CP_INT_STATUS_IB1_INT_STAT_MASK) | (ib1_int_stat << CP_INT_STATUS_IB1_INT_STAT_SHIFT)
+#define CP_INT_STATUS_SET_RB_INT_STAT(cp_int_status_reg, rb_int_stat) \
+ cp_int_status_reg = (cp_int_status_reg & ~CP_INT_STATUS_RB_INT_STAT_MASK) | (rb_int_stat << CP_INT_STATUS_RB_INT_STAT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_int_status_t {
+ unsigned int : 19;
+ unsigned int sw_int_stat : CP_INT_STATUS_SW_INT_STAT_SIZE;
+ unsigned int : 3;
+ unsigned int t0_packet_in_ib_stat : CP_INT_STATUS_T0_PACKET_IN_IB_STAT_SIZE;
+ unsigned int opcode_error_stat : CP_INT_STATUS_OPCODE_ERROR_STAT_SIZE;
+ unsigned int protected_mode_error_stat : CP_INT_STATUS_PROTECTED_MODE_ERROR_STAT_SIZE;
+ unsigned int reserved_bit_error_stat : CP_INT_STATUS_RESERVED_BIT_ERROR_STAT_SIZE;
+ unsigned int ib_error_stat : CP_INT_STATUS_IB_ERROR_STAT_SIZE;
+ unsigned int : 1;
+ unsigned int ib2_int_stat : CP_INT_STATUS_IB2_INT_STAT_SIZE;
+ unsigned int ib1_int_stat : CP_INT_STATUS_IB1_INT_STAT_SIZE;
+ unsigned int rb_int_stat : CP_INT_STATUS_RB_INT_STAT_SIZE;
+ } cp_int_status_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_int_status_t {
+ unsigned int rb_int_stat : CP_INT_STATUS_RB_INT_STAT_SIZE;
+ unsigned int ib1_int_stat : CP_INT_STATUS_IB1_INT_STAT_SIZE;
+ unsigned int ib2_int_stat : CP_INT_STATUS_IB2_INT_STAT_SIZE;
+ unsigned int : 1;
+ unsigned int ib_error_stat : CP_INT_STATUS_IB_ERROR_STAT_SIZE;
+ unsigned int reserved_bit_error_stat : CP_INT_STATUS_RESERVED_BIT_ERROR_STAT_SIZE;
+ unsigned int protected_mode_error_stat : CP_INT_STATUS_PROTECTED_MODE_ERROR_STAT_SIZE;
+ unsigned int opcode_error_stat : CP_INT_STATUS_OPCODE_ERROR_STAT_SIZE;
+ unsigned int t0_packet_in_ib_stat : CP_INT_STATUS_T0_PACKET_IN_IB_STAT_SIZE;
+ unsigned int : 3;
+ unsigned int sw_int_stat : CP_INT_STATUS_SW_INT_STAT_SIZE;
+ unsigned int : 19;
+ } cp_int_status_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_int_status_t f;
+} cp_int_status_u;
+
+
+/*
+ * CP_INT_ACK struct
+ */
+
+#define CP_INT_ACK_SW_INT_ACK_SIZE 1
+#define CP_INT_ACK_T0_PACKET_IN_IB_ACK_SIZE 1
+#define CP_INT_ACK_OPCODE_ERROR_ACK_SIZE 1
+#define CP_INT_ACK_PROTECTED_MODE_ERROR_ACK_SIZE 1
+#define CP_INT_ACK_RESERVED_BIT_ERROR_ACK_SIZE 1
+#define CP_INT_ACK_IB_ERROR_ACK_SIZE 1
+#define CP_INT_ACK_IB2_INT_ACK_SIZE 1
+#define CP_INT_ACK_IB1_INT_ACK_SIZE 1
+#define CP_INT_ACK_RB_INT_ACK_SIZE 1
+
+#define CP_INT_ACK_SW_INT_ACK_SHIFT 19
+#define CP_INT_ACK_T0_PACKET_IN_IB_ACK_SHIFT 23
+#define CP_INT_ACK_OPCODE_ERROR_ACK_SHIFT 24
+#define CP_INT_ACK_PROTECTED_MODE_ERROR_ACK_SHIFT 25
+#define CP_INT_ACK_RESERVED_BIT_ERROR_ACK_SHIFT 26
+#define CP_INT_ACK_IB_ERROR_ACK_SHIFT 27
+#define CP_INT_ACK_IB2_INT_ACK_SHIFT 29
+#define CP_INT_ACK_IB1_INT_ACK_SHIFT 30
+#define CP_INT_ACK_RB_INT_ACK_SHIFT 31
+
+#define CP_INT_ACK_SW_INT_ACK_MASK 0x00080000
+#define CP_INT_ACK_T0_PACKET_IN_IB_ACK_MASK 0x00800000
+#define CP_INT_ACK_OPCODE_ERROR_ACK_MASK 0x01000000
+#define CP_INT_ACK_PROTECTED_MODE_ERROR_ACK_MASK 0x02000000
+#define CP_INT_ACK_RESERVED_BIT_ERROR_ACK_MASK 0x04000000
+#define CP_INT_ACK_IB_ERROR_ACK_MASK 0x08000000
+#define CP_INT_ACK_IB2_INT_ACK_MASK 0x20000000
+#define CP_INT_ACK_IB1_INT_ACK_MASK 0x40000000
+#define CP_INT_ACK_RB_INT_ACK_MASK 0x80000000
+
+#define CP_INT_ACK_MASK \
+ (CP_INT_ACK_SW_INT_ACK_MASK | \
+ CP_INT_ACK_T0_PACKET_IN_IB_ACK_MASK | \
+ CP_INT_ACK_OPCODE_ERROR_ACK_MASK | \
+ CP_INT_ACK_PROTECTED_MODE_ERROR_ACK_MASK | \
+ CP_INT_ACK_RESERVED_BIT_ERROR_ACK_MASK | \
+ CP_INT_ACK_IB_ERROR_ACK_MASK | \
+ CP_INT_ACK_IB2_INT_ACK_MASK | \
+ CP_INT_ACK_IB1_INT_ACK_MASK | \
+ CP_INT_ACK_RB_INT_ACK_MASK)
+
+#define CP_INT_ACK(sw_int_ack, t0_packet_in_ib_ack, opcode_error_ack, protected_mode_error_ack, reserved_bit_error_ack, ib_error_ack, ib2_int_ack, ib1_int_ack, rb_int_ack) \
+ ((sw_int_ack << CP_INT_ACK_SW_INT_ACK_SHIFT) | \
+ (t0_packet_in_ib_ack << CP_INT_ACK_T0_PACKET_IN_IB_ACK_SHIFT) | \
+ (opcode_error_ack << CP_INT_ACK_OPCODE_ERROR_ACK_SHIFT) | \
+ (protected_mode_error_ack << CP_INT_ACK_PROTECTED_MODE_ERROR_ACK_SHIFT) | \
+ (reserved_bit_error_ack << CP_INT_ACK_RESERVED_BIT_ERROR_ACK_SHIFT) | \
+ (ib_error_ack << CP_INT_ACK_IB_ERROR_ACK_SHIFT) | \
+ (ib2_int_ack << CP_INT_ACK_IB2_INT_ACK_SHIFT) | \
+ (ib1_int_ack << CP_INT_ACK_IB1_INT_ACK_SHIFT) | \
+ (rb_int_ack << CP_INT_ACK_RB_INT_ACK_SHIFT))
+
+#define CP_INT_ACK_GET_SW_INT_ACK(cp_int_ack) \
+ ((cp_int_ack & CP_INT_ACK_SW_INT_ACK_MASK) >> CP_INT_ACK_SW_INT_ACK_SHIFT)
+#define CP_INT_ACK_GET_T0_PACKET_IN_IB_ACK(cp_int_ack) \
+ ((cp_int_ack & CP_INT_ACK_T0_PACKET_IN_IB_ACK_MASK) >> CP_INT_ACK_T0_PACKET_IN_IB_ACK_SHIFT)
+#define CP_INT_ACK_GET_OPCODE_ERROR_ACK(cp_int_ack) \
+ ((cp_int_ack & CP_INT_ACK_OPCODE_ERROR_ACK_MASK) >> CP_INT_ACK_OPCODE_ERROR_ACK_SHIFT)
+#define CP_INT_ACK_GET_PROTECTED_MODE_ERROR_ACK(cp_int_ack) \
+ ((cp_int_ack & CP_INT_ACK_PROTECTED_MODE_ERROR_ACK_MASK) >> CP_INT_ACK_PROTECTED_MODE_ERROR_ACK_SHIFT)
+#define CP_INT_ACK_GET_RESERVED_BIT_ERROR_ACK(cp_int_ack) \
+ ((cp_int_ack & CP_INT_ACK_RESERVED_BIT_ERROR_ACK_MASK) >> CP_INT_ACK_RESERVED_BIT_ERROR_ACK_SHIFT)
+#define CP_INT_ACK_GET_IB_ERROR_ACK(cp_int_ack) \
+ ((cp_int_ack & CP_INT_ACK_IB_ERROR_ACK_MASK) >> CP_INT_ACK_IB_ERROR_ACK_SHIFT)
+#define CP_INT_ACK_GET_IB2_INT_ACK(cp_int_ack) \
+ ((cp_int_ack & CP_INT_ACK_IB2_INT_ACK_MASK) >> CP_INT_ACK_IB2_INT_ACK_SHIFT)
+#define CP_INT_ACK_GET_IB1_INT_ACK(cp_int_ack) \
+ ((cp_int_ack & CP_INT_ACK_IB1_INT_ACK_MASK) >> CP_INT_ACK_IB1_INT_ACK_SHIFT)
+#define CP_INT_ACK_GET_RB_INT_ACK(cp_int_ack) \
+ ((cp_int_ack & CP_INT_ACK_RB_INT_ACK_MASK) >> CP_INT_ACK_RB_INT_ACK_SHIFT)
+
+#define CP_INT_ACK_SET_SW_INT_ACK(cp_int_ack_reg, sw_int_ack) \
+ cp_int_ack_reg = (cp_int_ack_reg & ~CP_INT_ACK_SW_INT_ACK_MASK) | (sw_int_ack << CP_INT_ACK_SW_INT_ACK_SHIFT)
+#define CP_INT_ACK_SET_T0_PACKET_IN_IB_ACK(cp_int_ack_reg, t0_packet_in_ib_ack) \
+ cp_int_ack_reg = (cp_int_ack_reg & ~CP_INT_ACK_T0_PACKET_IN_IB_ACK_MASK) | (t0_packet_in_ib_ack << CP_INT_ACK_T0_PACKET_IN_IB_ACK_SHIFT)
+#define CP_INT_ACK_SET_OPCODE_ERROR_ACK(cp_int_ack_reg, opcode_error_ack) \
+ cp_int_ack_reg = (cp_int_ack_reg & ~CP_INT_ACK_OPCODE_ERROR_ACK_MASK) | (opcode_error_ack << CP_INT_ACK_OPCODE_ERROR_ACK_SHIFT)
+#define CP_INT_ACK_SET_PROTECTED_MODE_ERROR_ACK(cp_int_ack_reg, protected_mode_error_ack) \
+ cp_int_ack_reg = (cp_int_ack_reg & ~CP_INT_ACK_PROTECTED_MODE_ERROR_ACK_MASK) | (protected_mode_error_ack << CP_INT_ACK_PROTECTED_MODE_ERROR_ACK_SHIFT)
+#define CP_INT_ACK_SET_RESERVED_BIT_ERROR_ACK(cp_int_ack_reg, reserved_bit_error_ack) \
+ cp_int_ack_reg = (cp_int_ack_reg & ~CP_INT_ACK_RESERVED_BIT_ERROR_ACK_MASK) | (reserved_bit_error_ack << CP_INT_ACK_RESERVED_BIT_ERROR_ACK_SHIFT)
+#define CP_INT_ACK_SET_IB_ERROR_ACK(cp_int_ack_reg, ib_error_ack) \
+ cp_int_ack_reg = (cp_int_ack_reg & ~CP_INT_ACK_IB_ERROR_ACK_MASK) | (ib_error_ack << CP_INT_ACK_IB_ERROR_ACK_SHIFT)
+#define CP_INT_ACK_SET_IB2_INT_ACK(cp_int_ack_reg, ib2_int_ack) \
+ cp_int_ack_reg = (cp_int_ack_reg & ~CP_INT_ACK_IB2_INT_ACK_MASK) | (ib2_int_ack << CP_INT_ACK_IB2_INT_ACK_SHIFT)
+#define CP_INT_ACK_SET_IB1_INT_ACK(cp_int_ack_reg, ib1_int_ack) \
+ cp_int_ack_reg = (cp_int_ack_reg & ~CP_INT_ACK_IB1_INT_ACK_MASK) | (ib1_int_ack << CP_INT_ACK_IB1_INT_ACK_SHIFT)
+#define CP_INT_ACK_SET_RB_INT_ACK(cp_int_ack_reg, rb_int_ack) \
+ cp_int_ack_reg = (cp_int_ack_reg & ~CP_INT_ACK_RB_INT_ACK_MASK) | (rb_int_ack << CP_INT_ACK_RB_INT_ACK_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_int_ack_t {
+ unsigned int : 19;
+ unsigned int sw_int_ack : CP_INT_ACK_SW_INT_ACK_SIZE;
+ unsigned int : 3;
+ unsigned int t0_packet_in_ib_ack : CP_INT_ACK_T0_PACKET_IN_IB_ACK_SIZE;
+ unsigned int opcode_error_ack : CP_INT_ACK_OPCODE_ERROR_ACK_SIZE;
+ unsigned int protected_mode_error_ack : CP_INT_ACK_PROTECTED_MODE_ERROR_ACK_SIZE;
+ unsigned int reserved_bit_error_ack : CP_INT_ACK_RESERVED_BIT_ERROR_ACK_SIZE;
+ unsigned int ib_error_ack : CP_INT_ACK_IB_ERROR_ACK_SIZE;
+ unsigned int : 1;
+ unsigned int ib2_int_ack : CP_INT_ACK_IB2_INT_ACK_SIZE;
+ unsigned int ib1_int_ack : CP_INT_ACK_IB1_INT_ACK_SIZE;
+ unsigned int rb_int_ack : CP_INT_ACK_RB_INT_ACK_SIZE;
+ } cp_int_ack_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_int_ack_t {
+ unsigned int rb_int_ack : CP_INT_ACK_RB_INT_ACK_SIZE;
+ unsigned int ib1_int_ack : CP_INT_ACK_IB1_INT_ACK_SIZE;
+ unsigned int ib2_int_ack : CP_INT_ACK_IB2_INT_ACK_SIZE;
+ unsigned int : 1;
+ unsigned int ib_error_ack : CP_INT_ACK_IB_ERROR_ACK_SIZE;
+ unsigned int reserved_bit_error_ack : CP_INT_ACK_RESERVED_BIT_ERROR_ACK_SIZE;
+ unsigned int protected_mode_error_ack : CP_INT_ACK_PROTECTED_MODE_ERROR_ACK_SIZE;
+ unsigned int opcode_error_ack : CP_INT_ACK_OPCODE_ERROR_ACK_SIZE;
+ unsigned int t0_packet_in_ib_ack : CP_INT_ACK_T0_PACKET_IN_IB_ACK_SIZE;
+ unsigned int : 3;
+ unsigned int sw_int_ack : CP_INT_ACK_SW_INT_ACK_SIZE;
+ unsigned int : 19;
+ } cp_int_ack_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_int_ack_t f;
+} cp_int_ack_u;
+
+
+/*
+ * CP_PFP_UCODE_ADDR struct
+ */
+
+#define CP_PFP_UCODE_ADDR_UCODE_ADDR_SIZE 9
+
+#define CP_PFP_UCODE_ADDR_UCODE_ADDR_SHIFT 0
+
+#define CP_PFP_UCODE_ADDR_UCODE_ADDR_MASK 0x000001ff
+
+#define CP_PFP_UCODE_ADDR_MASK \
+ (CP_PFP_UCODE_ADDR_UCODE_ADDR_MASK)
+
+#define CP_PFP_UCODE_ADDR(ucode_addr) \
+ ((ucode_addr << CP_PFP_UCODE_ADDR_UCODE_ADDR_SHIFT))
+
+#define CP_PFP_UCODE_ADDR_GET_UCODE_ADDR(cp_pfp_ucode_addr) \
+ ((cp_pfp_ucode_addr & CP_PFP_UCODE_ADDR_UCODE_ADDR_MASK) >> CP_PFP_UCODE_ADDR_UCODE_ADDR_SHIFT)
+
+#define CP_PFP_UCODE_ADDR_SET_UCODE_ADDR(cp_pfp_ucode_addr_reg, ucode_addr) \
+ cp_pfp_ucode_addr_reg = (cp_pfp_ucode_addr_reg & ~CP_PFP_UCODE_ADDR_UCODE_ADDR_MASK) | (ucode_addr << CP_PFP_UCODE_ADDR_UCODE_ADDR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_pfp_ucode_addr_t {
+ unsigned int ucode_addr : CP_PFP_UCODE_ADDR_UCODE_ADDR_SIZE;
+ unsigned int : 23;
+ } cp_pfp_ucode_addr_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_pfp_ucode_addr_t {
+ unsigned int : 23;
+ unsigned int ucode_addr : CP_PFP_UCODE_ADDR_UCODE_ADDR_SIZE;
+ } cp_pfp_ucode_addr_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_pfp_ucode_addr_t f;
+} cp_pfp_ucode_addr_u;
+
+
+/*
+ * CP_PFP_UCODE_DATA struct
+ */
+
+#define CP_PFP_UCODE_DATA_UCODE_DATA_SIZE 24
+
+#define CP_PFP_UCODE_DATA_UCODE_DATA_SHIFT 0
+
+#define CP_PFP_UCODE_DATA_UCODE_DATA_MASK 0x00ffffff
+
+#define CP_PFP_UCODE_DATA_MASK \
+ (CP_PFP_UCODE_DATA_UCODE_DATA_MASK)
+
+#define CP_PFP_UCODE_DATA(ucode_data) \
+ ((ucode_data << CP_PFP_UCODE_DATA_UCODE_DATA_SHIFT))
+
+#define CP_PFP_UCODE_DATA_GET_UCODE_DATA(cp_pfp_ucode_data) \
+ ((cp_pfp_ucode_data & CP_PFP_UCODE_DATA_UCODE_DATA_MASK) >> CP_PFP_UCODE_DATA_UCODE_DATA_SHIFT)
+
+#define CP_PFP_UCODE_DATA_SET_UCODE_DATA(cp_pfp_ucode_data_reg, ucode_data) \
+ cp_pfp_ucode_data_reg = (cp_pfp_ucode_data_reg & ~CP_PFP_UCODE_DATA_UCODE_DATA_MASK) | (ucode_data << CP_PFP_UCODE_DATA_UCODE_DATA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_pfp_ucode_data_t {
+ unsigned int ucode_data : CP_PFP_UCODE_DATA_UCODE_DATA_SIZE;
+ unsigned int : 8;
+ } cp_pfp_ucode_data_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_pfp_ucode_data_t {
+ unsigned int : 8;
+ unsigned int ucode_data : CP_PFP_UCODE_DATA_UCODE_DATA_SIZE;
+ } cp_pfp_ucode_data_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_pfp_ucode_data_t f;
+} cp_pfp_ucode_data_u;
+
+
+/*
+ * CP_PERFMON_CNTL struct
+ */
+
+#define CP_PERFMON_CNTL_PERFMON_STATE_SIZE 4
+#define CP_PERFMON_CNTL_PERFMON_ENABLE_MODE_SIZE 2
+
+#define CP_PERFMON_CNTL_PERFMON_STATE_SHIFT 0
+#define CP_PERFMON_CNTL_PERFMON_ENABLE_MODE_SHIFT 8
+
+#define CP_PERFMON_CNTL_PERFMON_STATE_MASK 0x0000000f
+#define CP_PERFMON_CNTL_PERFMON_ENABLE_MODE_MASK 0x00000300
+
+#define CP_PERFMON_CNTL_MASK \
+ (CP_PERFMON_CNTL_PERFMON_STATE_MASK | \
+ CP_PERFMON_CNTL_PERFMON_ENABLE_MODE_MASK)
+
+#define CP_PERFMON_CNTL(perfmon_state, perfmon_enable_mode) \
+ ((perfmon_state << CP_PERFMON_CNTL_PERFMON_STATE_SHIFT) | \
+ (perfmon_enable_mode << CP_PERFMON_CNTL_PERFMON_ENABLE_MODE_SHIFT))
+
+#define CP_PERFMON_CNTL_GET_PERFMON_STATE(cp_perfmon_cntl) \
+ ((cp_perfmon_cntl & CP_PERFMON_CNTL_PERFMON_STATE_MASK) >> CP_PERFMON_CNTL_PERFMON_STATE_SHIFT)
+#define CP_PERFMON_CNTL_GET_PERFMON_ENABLE_MODE(cp_perfmon_cntl) \
+ ((cp_perfmon_cntl & CP_PERFMON_CNTL_PERFMON_ENABLE_MODE_MASK) >> CP_PERFMON_CNTL_PERFMON_ENABLE_MODE_SHIFT)
+
+#define CP_PERFMON_CNTL_SET_PERFMON_STATE(cp_perfmon_cntl_reg, perfmon_state) \
+ cp_perfmon_cntl_reg = (cp_perfmon_cntl_reg & ~CP_PERFMON_CNTL_PERFMON_STATE_MASK) | (perfmon_state << CP_PERFMON_CNTL_PERFMON_STATE_SHIFT)
+#define CP_PERFMON_CNTL_SET_PERFMON_ENABLE_MODE(cp_perfmon_cntl_reg, perfmon_enable_mode) \
+ cp_perfmon_cntl_reg = (cp_perfmon_cntl_reg & ~CP_PERFMON_CNTL_PERFMON_ENABLE_MODE_MASK) | (perfmon_enable_mode << CP_PERFMON_CNTL_PERFMON_ENABLE_MODE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_perfmon_cntl_t {
+ unsigned int perfmon_state : CP_PERFMON_CNTL_PERFMON_STATE_SIZE;
+ unsigned int : 4;
+ unsigned int perfmon_enable_mode : CP_PERFMON_CNTL_PERFMON_ENABLE_MODE_SIZE;
+ unsigned int : 22;
+ } cp_perfmon_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_perfmon_cntl_t {
+ unsigned int : 22;
+ unsigned int perfmon_enable_mode : CP_PERFMON_CNTL_PERFMON_ENABLE_MODE_SIZE;
+ unsigned int : 4;
+ unsigned int perfmon_state : CP_PERFMON_CNTL_PERFMON_STATE_SIZE;
+ } cp_perfmon_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_perfmon_cntl_t f;
+} cp_perfmon_cntl_u;
+
+
+/*
+ * CP_PERFCOUNTER_SELECT struct
+ */
+
+#define CP_PERFCOUNTER_SELECT_PERFCOUNT_SEL_SIZE 6
+
+#define CP_PERFCOUNTER_SELECT_PERFCOUNT_SEL_SHIFT 0
+
+#define CP_PERFCOUNTER_SELECT_PERFCOUNT_SEL_MASK 0x0000003f
+
+#define CP_PERFCOUNTER_SELECT_MASK \
+ (CP_PERFCOUNTER_SELECT_PERFCOUNT_SEL_MASK)
+
+#define CP_PERFCOUNTER_SELECT(perfcount_sel) \
+ ((perfcount_sel << CP_PERFCOUNTER_SELECT_PERFCOUNT_SEL_SHIFT))
+
+#define CP_PERFCOUNTER_SELECT_GET_PERFCOUNT_SEL(cp_perfcounter_select) \
+ ((cp_perfcounter_select & CP_PERFCOUNTER_SELECT_PERFCOUNT_SEL_MASK) >> CP_PERFCOUNTER_SELECT_PERFCOUNT_SEL_SHIFT)
+
+#define CP_PERFCOUNTER_SELECT_SET_PERFCOUNT_SEL(cp_perfcounter_select_reg, perfcount_sel) \
+ cp_perfcounter_select_reg = (cp_perfcounter_select_reg & ~CP_PERFCOUNTER_SELECT_PERFCOUNT_SEL_MASK) | (perfcount_sel << CP_PERFCOUNTER_SELECT_PERFCOUNT_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_perfcounter_select_t {
+ unsigned int perfcount_sel : CP_PERFCOUNTER_SELECT_PERFCOUNT_SEL_SIZE;
+ unsigned int : 26;
+ } cp_perfcounter_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_perfcounter_select_t {
+ unsigned int : 26;
+ unsigned int perfcount_sel : CP_PERFCOUNTER_SELECT_PERFCOUNT_SEL_SIZE;
+ } cp_perfcounter_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_perfcounter_select_t f;
+} cp_perfcounter_select_u;
+
+
+/*
+ * CP_PERFCOUNTER_LO struct
+ */
+
+#define CP_PERFCOUNTER_LO_PERFCOUNT_LO_SIZE 32
+
+#define CP_PERFCOUNTER_LO_PERFCOUNT_LO_SHIFT 0
+
+#define CP_PERFCOUNTER_LO_PERFCOUNT_LO_MASK 0xffffffff
+
+#define CP_PERFCOUNTER_LO_MASK \
+ (CP_PERFCOUNTER_LO_PERFCOUNT_LO_MASK)
+
+#define CP_PERFCOUNTER_LO(perfcount_lo) \
+ ((perfcount_lo << CP_PERFCOUNTER_LO_PERFCOUNT_LO_SHIFT))
+
+#define CP_PERFCOUNTER_LO_GET_PERFCOUNT_LO(cp_perfcounter_lo) \
+ ((cp_perfcounter_lo & CP_PERFCOUNTER_LO_PERFCOUNT_LO_MASK) >> CP_PERFCOUNTER_LO_PERFCOUNT_LO_SHIFT)
+
+#define CP_PERFCOUNTER_LO_SET_PERFCOUNT_LO(cp_perfcounter_lo_reg, perfcount_lo) \
+ cp_perfcounter_lo_reg = (cp_perfcounter_lo_reg & ~CP_PERFCOUNTER_LO_PERFCOUNT_LO_MASK) | (perfcount_lo << CP_PERFCOUNTER_LO_PERFCOUNT_LO_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_perfcounter_lo_t {
+ unsigned int perfcount_lo : CP_PERFCOUNTER_LO_PERFCOUNT_LO_SIZE;
+ } cp_perfcounter_lo_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_perfcounter_lo_t {
+ unsigned int perfcount_lo : CP_PERFCOUNTER_LO_PERFCOUNT_LO_SIZE;
+ } cp_perfcounter_lo_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_perfcounter_lo_t f;
+} cp_perfcounter_lo_u;
+
+
+/*
+ * CP_PERFCOUNTER_HI struct
+ */
+
+#define CP_PERFCOUNTER_HI_PERFCOUNT_HI_SIZE 16
+
+#define CP_PERFCOUNTER_HI_PERFCOUNT_HI_SHIFT 0
+
+#define CP_PERFCOUNTER_HI_PERFCOUNT_HI_MASK 0x0000ffff
+
+#define CP_PERFCOUNTER_HI_MASK \
+ (CP_PERFCOUNTER_HI_PERFCOUNT_HI_MASK)
+
+#define CP_PERFCOUNTER_HI(perfcount_hi) \
+ ((perfcount_hi << CP_PERFCOUNTER_HI_PERFCOUNT_HI_SHIFT))
+
+#define CP_PERFCOUNTER_HI_GET_PERFCOUNT_HI(cp_perfcounter_hi) \
+ ((cp_perfcounter_hi & CP_PERFCOUNTER_HI_PERFCOUNT_HI_MASK) >> CP_PERFCOUNTER_HI_PERFCOUNT_HI_SHIFT)
+
+#define CP_PERFCOUNTER_HI_SET_PERFCOUNT_HI(cp_perfcounter_hi_reg, perfcount_hi) \
+ cp_perfcounter_hi_reg = (cp_perfcounter_hi_reg & ~CP_PERFCOUNTER_HI_PERFCOUNT_HI_MASK) | (perfcount_hi << CP_PERFCOUNTER_HI_PERFCOUNT_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_perfcounter_hi_t {
+ unsigned int perfcount_hi : CP_PERFCOUNTER_HI_PERFCOUNT_HI_SIZE;
+ unsigned int : 16;
+ } cp_perfcounter_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_perfcounter_hi_t {
+ unsigned int : 16;
+ unsigned int perfcount_hi : CP_PERFCOUNTER_HI_PERFCOUNT_HI_SIZE;
+ } cp_perfcounter_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_perfcounter_hi_t f;
+} cp_perfcounter_hi_u;
+
+
+/*
+ * CP_BIN_MASK_LO struct
+ */
+
+#define CP_BIN_MASK_LO_BIN_MASK_LO_SIZE 32
+
+#define CP_BIN_MASK_LO_BIN_MASK_LO_SHIFT 0
+
+#define CP_BIN_MASK_LO_BIN_MASK_LO_MASK 0xffffffff
+
+#define CP_BIN_MASK_LO_MASK \
+ (CP_BIN_MASK_LO_BIN_MASK_LO_MASK)
+
+#define CP_BIN_MASK_LO(bin_mask_lo) \
+ ((bin_mask_lo << CP_BIN_MASK_LO_BIN_MASK_LO_SHIFT))
+
+#define CP_BIN_MASK_LO_GET_BIN_MASK_LO(cp_bin_mask_lo) \
+ ((cp_bin_mask_lo & CP_BIN_MASK_LO_BIN_MASK_LO_MASK) >> CP_BIN_MASK_LO_BIN_MASK_LO_SHIFT)
+
+#define CP_BIN_MASK_LO_SET_BIN_MASK_LO(cp_bin_mask_lo_reg, bin_mask_lo) \
+ cp_bin_mask_lo_reg = (cp_bin_mask_lo_reg & ~CP_BIN_MASK_LO_BIN_MASK_LO_MASK) | (bin_mask_lo << CP_BIN_MASK_LO_BIN_MASK_LO_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_bin_mask_lo_t {
+ unsigned int bin_mask_lo : CP_BIN_MASK_LO_BIN_MASK_LO_SIZE;
+ } cp_bin_mask_lo_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_bin_mask_lo_t {
+ unsigned int bin_mask_lo : CP_BIN_MASK_LO_BIN_MASK_LO_SIZE;
+ } cp_bin_mask_lo_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_bin_mask_lo_t f;
+} cp_bin_mask_lo_u;
+
+
+/*
+ * CP_BIN_MASK_HI struct
+ */
+
+#define CP_BIN_MASK_HI_BIN_MASK_HI_SIZE 32
+
+#define CP_BIN_MASK_HI_BIN_MASK_HI_SHIFT 0
+
+#define CP_BIN_MASK_HI_BIN_MASK_HI_MASK 0xffffffff
+
+#define CP_BIN_MASK_HI_MASK \
+ (CP_BIN_MASK_HI_BIN_MASK_HI_MASK)
+
+#define CP_BIN_MASK_HI(bin_mask_hi) \
+ ((bin_mask_hi << CP_BIN_MASK_HI_BIN_MASK_HI_SHIFT))
+
+#define CP_BIN_MASK_HI_GET_BIN_MASK_HI(cp_bin_mask_hi) \
+ ((cp_bin_mask_hi & CP_BIN_MASK_HI_BIN_MASK_HI_MASK) >> CP_BIN_MASK_HI_BIN_MASK_HI_SHIFT)
+
+#define CP_BIN_MASK_HI_SET_BIN_MASK_HI(cp_bin_mask_hi_reg, bin_mask_hi) \
+ cp_bin_mask_hi_reg = (cp_bin_mask_hi_reg & ~CP_BIN_MASK_HI_BIN_MASK_HI_MASK) | (bin_mask_hi << CP_BIN_MASK_HI_BIN_MASK_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_bin_mask_hi_t {
+ unsigned int bin_mask_hi : CP_BIN_MASK_HI_BIN_MASK_HI_SIZE;
+ } cp_bin_mask_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_bin_mask_hi_t {
+ unsigned int bin_mask_hi : CP_BIN_MASK_HI_BIN_MASK_HI_SIZE;
+ } cp_bin_mask_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_bin_mask_hi_t f;
+} cp_bin_mask_hi_u;
+
+
+/*
+ * CP_BIN_SELECT_LO struct
+ */
+
+#define CP_BIN_SELECT_LO_BIN_SELECT_LO_SIZE 32
+
+#define CP_BIN_SELECT_LO_BIN_SELECT_LO_SHIFT 0
+
+#define CP_BIN_SELECT_LO_BIN_SELECT_LO_MASK 0xffffffff
+
+#define CP_BIN_SELECT_LO_MASK \
+ (CP_BIN_SELECT_LO_BIN_SELECT_LO_MASK)
+
+#define CP_BIN_SELECT_LO(bin_select_lo) \
+ ((bin_select_lo << CP_BIN_SELECT_LO_BIN_SELECT_LO_SHIFT))
+
+#define CP_BIN_SELECT_LO_GET_BIN_SELECT_LO(cp_bin_select_lo) \
+ ((cp_bin_select_lo & CP_BIN_SELECT_LO_BIN_SELECT_LO_MASK) >> CP_BIN_SELECT_LO_BIN_SELECT_LO_SHIFT)
+
+#define CP_BIN_SELECT_LO_SET_BIN_SELECT_LO(cp_bin_select_lo_reg, bin_select_lo) \
+ cp_bin_select_lo_reg = (cp_bin_select_lo_reg & ~CP_BIN_SELECT_LO_BIN_SELECT_LO_MASK) | (bin_select_lo << CP_BIN_SELECT_LO_BIN_SELECT_LO_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_bin_select_lo_t {
+ unsigned int bin_select_lo : CP_BIN_SELECT_LO_BIN_SELECT_LO_SIZE;
+ } cp_bin_select_lo_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_bin_select_lo_t {
+ unsigned int bin_select_lo : CP_BIN_SELECT_LO_BIN_SELECT_LO_SIZE;
+ } cp_bin_select_lo_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_bin_select_lo_t f;
+} cp_bin_select_lo_u;
+
+
+/*
+ * CP_BIN_SELECT_HI struct
+ */
+
+#define CP_BIN_SELECT_HI_BIN_SELECT_HI_SIZE 32
+
+#define CP_BIN_SELECT_HI_BIN_SELECT_HI_SHIFT 0
+
+#define CP_BIN_SELECT_HI_BIN_SELECT_HI_MASK 0xffffffff
+
+#define CP_BIN_SELECT_HI_MASK \
+ (CP_BIN_SELECT_HI_BIN_SELECT_HI_MASK)
+
+#define CP_BIN_SELECT_HI(bin_select_hi) \
+ ((bin_select_hi << CP_BIN_SELECT_HI_BIN_SELECT_HI_SHIFT))
+
+#define CP_BIN_SELECT_HI_GET_BIN_SELECT_HI(cp_bin_select_hi) \
+ ((cp_bin_select_hi & CP_BIN_SELECT_HI_BIN_SELECT_HI_MASK) >> CP_BIN_SELECT_HI_BIN_SELECT_HI_SHIFT)
+
+#define CP_BIN_SELECT_HI_SET_BIN_SELECT_HI(cp_bin_select_hi_reg, bin_select_hi) \
+ cp_bin_select_hi_reg = (cp_bin_select_hi_reg & ~CP_BIN_SELECT_HI_BIN_SELECT_HI_MASK) | (bin_select_hi << CP_BIN_SELECT_HI_BIN_SELECT_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_bin_select_hi_t {
+ unsigned int bin_select_hi : CP_BIN_SELECT_HI_BIN_SELECT_HI_SIZE;
+ } cp_bin_select_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_bin_select_hi_t {
+ unsigned int bin_select_hi : CP_BIN_SELECT_HI_BIN_SELECT_HI_SIZE;
+ } cp_bin_select_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_bin_select_hi_t f;
+} cp_bin_select_hi_u;
+
+
+/*
+ * CP_NV_FLAGS_0 struct
+ */
+
+#define CP_NV_FLAGS_0_DISCARD_0_SIZE 1
+#define CP_NV_FLAGS_0_END_RCVD_0_SIZE 1
+#define CP_NV_FLAGS_0_DISCARD_1_SIZE 1
+#define CP_NV_FLAGS_0_END_RCVD_1_SIZE 1
+#define CP_NV_FLAGS_0_DISCARD_2_SIZE 1
+#define CP_NV_FLAGS_0_END_RCVD_2_SIZE 1
+#define CP_NV_FLAGS_0_DISCARD_3_SIZE 1
+#define CP_NV_FLAGS_0_END_RCVD_3_SIZE 1
+#define CP_NV_FLAGS_0_DISCARD_4_SIZE 1
+#define CP_NV_FLAGS_0_END_RCVD_4_SIZE 1
+#define CP_NV_FLAGS_0_DISCARD_5_SIZE 1
+#define CP_NV_FLAGS_0_END_RCVD_5_SIZE 1
+#define CP_NV_FLAGS_0_DISCARD_6_SIZE 1
+#define CP_NV_FLAGS_0_END_RCVD_6_SIZE 1
+#define CP_NV_FLAGS_0_DISCARD_7_SIZE 1
+#define CP_NV_FLAGS_0_END_RCVD_7_SIZE 1
+#define CP_NV_FLAGS_0_DISCARD_8_SIZE 1
+#define CP_NV_FLAGS_0_END_RCVD_8_SIZE 1
+#define CP_NV_FLAGS_0_DISCARD_9_SIZE 1
+#define CP_NV_FLAGS_0_END_RCVD_9_SIZE 1
+#define CP_NV_FLAGS_0_DISCARD_10_SIZE 1
+#define CP_NV_FLAGS_0_END_RCVD_10_SIZE 1
+#define CP_NV_FLAGS_0_DISCARD_11_SIZE 1
+#define CP_NV_FLAGS_0_END_RCVD_11_SIZE 1
+#define CP_NV_FLAGS_0_DISCARD_12_SIZE 1
+#define CP_NV_FLAGS_0_END_RCVD_12_SIZE 1
+#define CP_NV_FLAGS_0_DISCARD_13_SIZE 1
+#define CP_NV_FLAGS_0_END_RCVD_13_SIZE 1
+#define CP_NV_FLAGS_0_DISCARD_14_SIZE 1
+#define CP_NV_FLAGS_0_END_RCVD_14_SIZE 1
+#define CP_NV_FLAGS_0_DISCARD_15_SIZE 1
+#define CP_NV_FLAGS_0_END_RCVD_15_SIZE 1
+
+#define CP_NV_FLAGS_0_DISCARD_0_SHIFT 0
+#define CP_NV_FLAGS_0_END_RCVD_0_SHIFT 1
+#define CP_NV_FLAGS_0_DISCARD_1_SHIFT 2
+#define CP_NV_FLAGS_0_END_RCVD_1_SHIFT 3
+#define CP_NV_FLAGS_0_DISCARD_2_SHIFT 4
+#define CP_NV_FLAGS_0_END_RCVD_2_SHIFT 5
+#define CP_NV_FLAGS_0_DISCARD_3_SHIFT 6
+#define CP_NV_FLAGS_0_END_RCVD_3_SHIFT 7
+#define CP_NV_FLAGS_0_DISCARD_4_SHIFT 8
+#define CP_NV_FLAGS_0_END_RCVD_4_SHIFT 9
+#define CP_NV_FLAGS_0_DISCARD_5_SHIFT 10
+#define CP_NV_FLAGS_0_END_RCVD_5_SHIFT 11
+#define CP_NV_FLAGS_0_DISCARD_6_SHIFT 12
+#define CP_NV_FLAGS_0_END_RCVD_6_SHIFT 13
+#define CP_NV_FLAGS_0_DISCARD_7_SHIFT 14
+#define CP_NV_FLAGS_0_END_RCVD_7_SHIFT 15
+#define CP_NV_FLAGS_0_DISCARD_8_SHIFT 16
+#define CP_NV_FLAGS_0_END_RCVD_8_SHIFT 17
+#define CP_NV_FLAGS_0_DISCARD_9_SHIFT 18
+#define CP_NV_FLAGS_0_END_RCVD_9_SHIFT 19
+#define CP_NV_FLAGS_0_DISCARD_10_SHIFT 20
+#define CP_NV_FLAGS_0_END_RCVD_10_SHIFT 21
+#define CP_NV_FLAGS_0_DISCARD_11_SHIFT 22
+#define CP_NV_FLAGS_0_END_RCVD_11_SHIFT 23
+#define CP_NV_FLAGS_0_DISCARD_12_SHIFT 24
+#define CP_NV_FLAGS_0_END_RCVD_12_SHIFT 25
+#define CP_NV_FLAGS_0_DISCARD_13_SHIFT 26
+#define CP_NV_FLAGS_0_END_RCVD_13_SHIFT 27
+#define CP_NV_FLAGS_0_DISCARD_14_SHIFT 28
+#define CP_NV_FLAGS_0_END_RCVD_14_SHIFT 29
+#define CP_NV_FLAGS_0_DISCARD_15_SHIFT 30
+#define CP_NV_FLAGS_0_END_RCVD_15_SHIFT 31
+
+#define CP_NV_FLAGS_0_DISCARD_0_MASK 0x00000001
+#define CP_NV_FLAGS_0_END_RCVD_0_MASK 0x00000002
+#define CP_NV_FLAGS_0_DISCARD_1_MASK 0x00000004
+#define CP_NV_FLAGS_0_END_RCVD_1_MASK 0x00000008
+#define CP_NV_FLAGS_0_DISCARD_2_MASK 0x00000010
+#define CP_NV_FLAGS_0_END_RCVD_2_MASK 0x00000020
+#define CP_NV_FLAGS_0_DISCARD_3_MASK 0x00000040
+#define CP_NV_FLAGS_0_END_RCVD_3_MASK 0x00000080
+#define CP_NV_FLAGS_0_DISCARD_4_MASK 0x00000100
+#define CP_NV_FLAGS_0_END_RCVD_4_MASK 0x00000200
+#define CP_NV_FLAGS_0_DISCARD_5_MASK 0x00000400
+#define CP_NV_FLAGS_0_END_RCVD_5_MASK 0x00000800
+#define CP_NV_FLAGS_0_DISCARD_6_MASK 0x00001000
+#define CP_NV_FLAGS_0_END_RCVD_6_MASK 0x00002000
+#define CP_NV_FLAGS_0_DISCARD_7_MASK 0x00004000
+#define CP_NV_FLAGS_0_END_RCVD_7_MASK 0x00008000
+#define CP_NV_FLAGS_0_DISCARD_8_MASK 0x00010000
+#define CP_NV_FLAGS_0_END_RCVD_8_MASK 0x00020000
+#define CP_NV_FLAGS_0_DISCARD_9_MASK 0x00040000
+#define CP_NV_FLAGS_0_END_RCVD_9_MASK 0x00080000
+#define CP_NV_FLAGS_0_DISCARD_10_MASK 0x00100000
+#define CP_NV_FLAGS_0_END_RCVD_10_MASK 0x00200000
+#define CP_NV_FLAGS_0_DISCARD_11_MASK 0x00400000
+#define CP_NV_FLAGS_0_END_RCVD_11_MASK 0x00800000
+#define CP_NV_FLAGS_0_DISCARD_12_MASK 0x01000000
+#define CP_NV_FLAGS_0_END_RCVD_12_MASK 0x02000000
+#define CP_NV_FLAGS_0_DISCARD_13_MASK 0x04000000
+#define CP_NV_FLAGS_0_END_RCVD_13_MASK 0x08000000
+#define CP_NV_FLAGS_0_DISCARD_14_MASK 0x10000000
+#define CP_NV_FLAGS_0_END_RCVD_14_MASK 0x20000000
+#define CP_NV_FLAGS_0_DISCARD_15_MASK 0x40000000
+#define CP_NV_FLAGS_0_END_RCVD_15_MASK 0x80000000
+
+#define CP_NV_FLAGS_0_MASK \
+ (CP_NV_FLAGS_0_DISCARD_0_MASK | \
+ CP_NV_FLAGS_0_END_RCVD_0_MASK | \
+ CP_NV_FLAGS_0_DISCARD_1_MASK | \
+ CP_NV_FLAGS_0_END_RCVD_1_MASK | \
+ CP_NV_FLAGS_0_DISCARD_2_MASK | \
+ CP_NV_FLAGS_0_END_RCVD_2_MASK | \
+ CP_NV_FLAGS_0_DISCARD_3_MASK | \
+ CP_NV_FLAGS_0_END_RCVD_3_MASK | \
+ CP_NV_FLAGS_0_DISCARD_4_MASK | \
+ CP_NV_FLAGS_0_END_RCVD_4_MASK | \
+ CP_NV_FLAGS_0_DISCARD_5_MASK | \
+ CP_NV_FLAGS_0_END_RCVD_5_MASK | \
+ CP_NV_FLAGS_0_DISCARD_6_MASK | \
+ CP_NV_FLAGS_0_END_RCVD_6_MASK | \
+ CP_NV_FLAGS_0_DISCARD_7_MASK | \
+ CP_NV_FLAGS_0_END_RCVD_7_MASK | \
+ CP_NV_FLAGS_0_DISCARD_8_MASK | \
+ CP_NV_FLAGS_0_END_RCVD_8_MASK | \
+ CP_NV_FLAGS_0_DISCARD_9_MASK | \
+ CP_NV_FLAGS_0_END_RCVD_9_MASK | \
+ CP_NV_FLAGS_0_DISCARD_10_MASK | \
+ CP_NV_FLAGS_0_END_RCVD_10_MASK | \
+ CP_NV_FLAGS_0_DISCARD_11_MASK | \
+ CP_NV_FLAGS_0_END_RCVD_11_MASK | \
+ CP_NV_FLAGS_0_DISCARD_12_MASK | \
+ CP_NV_FLAGS_0_END_RCVD_12_MASK | \
+ CP_NV_FLAGS_0_DISCARD_13_MASK | \
+ CP_NV_FLAGS_0_END_RCVD_13_MASK | \
+ CP_NV_FLAGS_0_DISCARD_14_MASK | \
+ CP_NV_FLAGS_0_END_RCVD_14_MASK | \
+ CP_NV_FLAGS_0_DISCARD_15_MASK | \
+ CP_NV_FLAGS_0_END_RCVD_15_MASK)
+
+#define CP_NV_FLAGS_0(discard_0, end_rcvd_0, discard_1, end_rcvd_1, discard_2, end_rcvd_2, discard_3, end_rcvd_3, discard_4, end_rcvd_4, discard_5, end_rcvd_5, discard_6, end_rcvd_6, discard_7, end_rcvd_7, discard_8, end_rcvd_8, discard_9, end_rcvd_9, discard_10, end_rcvd_10, discard_11, end_rcvd_11, discard_12, end_rcvd_12, discard_13, end_rcvd_13, discard_14, end_rcvd_14, discard_15, end_rcvd_15) \
+ ((discard_0 << CP_NV_FLAGS_0_DISCARD_0_SHIFT) | \
+ (end_rcvd_0 << CP_NV_FLAGS_0_END_RCVD_0_SHIFT) | \
+ (discard_1 << CP_NV_FLAGS_0_DISCARD_1_SHIFT) | \
+ (end_rcvd_1 << CP_NV_FLAGS_0_END_RCVD_1_SHIFT) | \
+ (discard_2 << CP_NV_FLAGS_0_DISCARD_2_SHIFT) | \
+ (end_rcvd_2 << CP_NV_FLAGS_0_END_RCVD_2_SHIFT) | \
+ (discard_3 << CP_NV_FLAGS_0_DISCARD_3_SHIFT) | \
+ (end_rcvd_3 << CP_NV_FLAGS_0_END_RCVD_3_SHIFT) | \
+ (discard_4 << CP_NV_FLAGS_0_DISCARD_4_SHIFT) | \
+ (end_rcvd_4 << CP_NV_FLAGS_0_END_RCVD_4_SHIFT) | \
+ (discard_5 << CP_NV_FLAGS_0_DISCARD_5_SHIFT) | \
+ (end_rcvd_5 << CP_NV_FLAGS_0_END_RCVD_5_SHIFT) | \
+ (discard_6 << CP_NV_FLAGS_0_DISCARD_6_SHIFT) | \
+ (end_rcvd_6 << CP_NV_FLAGS_0_END_RCVD_6_SHIFT) | \
+ (discard_7 << CP_NV_FLAGS_0_DISCARD_7_SHIFT) | \
+ (end_rcvd_7 << CP_NV_FLAGS_0_END_RCVD_7_SHIFT) | \
+ (discard_8 << CP_NV_FLAGS_0_DISCARD_8_SHIFT) | \
+ (end_rcvd_8 << CP_NV_FLAGS_0_END_RCVD_8_SHIFT) | \
+ (discard_9 << CP_NV_FLAGS_0_DISCARD_9_SHIFT) | \
+ (end_rcvd_9 << CP_NV_FLAGS_0_END_RCVD_9_SHIFT) | \
+ (discard_10 << CP_NV_FLAGS_0_DISCARD_10_SHIFT) | \
+ (end_rcvd_10 << CP_NV_FLAGS_0_END_RCVD_10_SHIFT) | \
+ (discard_11 << CP_NV_FLAGS_0_DISCARD_11_SHIFT) | \
+ (end_rcvd_11 << CP_NV_FLAGS_0_END_RCVD_11_SHIFT) | \
+ (discard_12 << CP_NV_FLAGS_0_DISCARD_12_SHIFT) | \
+ (end_rcvd_12 << CP_NV_FLAGS_0_END_RCVD_12_SHIFT) | \
+ (discard_13 << CP_NV_FLAGS_0_DISCARD_13_SHIFT) | \
+ (end_rcvd_13 << CP_NV_FLAGS_0_END_RCVD_13_SHIFT) | \
+ (discard_14 << CP_NV_FLAGS_0_DISCARD_14_SHIFT) | \
+ (end_rcvd_14 << CP_NV_FLAGS_0_END_RCVD_14_SHIFT) | \
+ (discard_15 << CP_NV_FLAGS_0_DISCARD_15_SHIFT) | \
+ (end_rcvd_15 << CP_NV_FLAGS_0_END_RCVD_15_SHIFT))
+
+#define CP_NV_FLAGS_0_GET_DISCARD_0(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_DISCARD_0_MASK) >> CP_NV_FLAGS_0_DISCARD_0_SHIFT)
+#define CP_NV_FLAGS_0_GET_END_RCVD_0(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_END_RCVD_0_MASK) >> CP_NV_FLAGS_0_END_RCVD_0_SHIFT)
+#define CP_NV_FLAGS_0_GET_DISCARD_1(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_DISCARD_1_MASK) >> CP_NV_FLAGS_0_DISCARD_1_SHIFT)
+#define CP_NV_FLAGS_0_GET_END_RCVD_1(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_END_RCVD_1_MASK) >> CP_NV_FLAGS_0_END_RCVD_1_SHIFT)
+#define CP_NV_FLAGS_0_GET_DISCARD_2(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_DISCARD_2_MASK) >> CP_NV_FLAGS_0_DISCARD_2_SHIFT)
+#define CP_NV_FLAGS_0_GET_END_RCVD_2(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_END_RCVD_2_MASK) >> CP_NV_FLAGS_0_END_RCVD_2_SHIFT)
+#define CP_NV_FLAGS_0_GET_DISCARD_3(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_DISCARD_3_MASK) >> CP_NV_FLAGS_0_DISCARD_3_SHIFT)
+#define CP_NV_FLAGS_0_GET_END_RCVD_3(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_END_RCVD_3_MASK) >> CP_NV_FLAGS_0_END_RCVD_3_SHIFT)
+#define CP_NV_FLAGS_0_GET_DISCARD_4(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_DISCARD_4_MASK) >> CP_NV_FLAGS_0_DISCARD_4_SHIFT)
+#define CP_NV_FLAGS_0_GET_END_RCVD_4(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_END_RCVD_4_MASK) >> CP_NV_FLAGS_0_END_RCVD_4_SHIFT)
+#define CP_NV_FLAGS_0_GET_DISCARD_5(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_DISCARD_5_MASK) >> CP_NV_FLAGS_0_DISCARD_5_SHIFT)
+#define CP_NV_FLAGS_0_GET_END_RCVD_5(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_END_RCVD_5_MASK) >> CP_NV_FLAGS_0_END_RCVD_5_SHIFT)
+#define CP_NV_FLAGS_0_GET_DISCARD_6(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_DISCARD_6_MASK) >> CP_NV_FLAGS_0_DISCARD_6_SHIFT)
+#define CP_NV_FLAGS_0_GET_END_RCVD_6(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_END_RCVD_6_MASK) >> CP_NV_FLAGS_0_END_RCVD_6_SHIFT)
+#define CP_NV_FLAGS_0_GET_DISCARD_7(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_DISCARD_7_MASK) >> CP_NV_FLAGS_0_DISCARD_7_SHIFT)
+#define CP_NV_FLAGS_0_GET_END_RCVD_7(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_END_RCVD_7_MASK) >> CP_NV_FLAGS_0_END_RCVD_7_SHIFT)
+#define CP_NV_FLAGS_0_GET_DISCARD_8(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_DISCARD_8_MASK) >> CP_NV_FLAGS_0_DISCARD_8_SHIFT)
+#define CP_NV_FLAGS_0_GET_END_RCVD_8(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_END_RCVD_8_MASK) >> CP_NV_FLAGS_0_END_RCVD_8_SHIFT)
+#define CP_NV_FLAGS_0_GET_DISCARD_9(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_DISCARD_9_MASK) >> CP_NV_FLAGS_0_DISCARD_9_SHIFT)
+#define CP_NV_FLAGS_0_GET_END_RCVD_9(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_END_RCVD_9_MASK) >> CP_NV_FLAGS_0_END_RCVD_9_SHIFT)
+#define CP_NV_FLAGS_0_GET_DISCARD_10(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_DISCARD_10_MASK) >> CP_NV_FLAGS_0_DISCARD_10_SHIFT)
+#define CP_NV_FLAGS_0_GET_END_RCVD_10(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_END_RCVD_10_MASK) >> CP_NV_FLAGS_0_END_RCVD_10_SHIFT)
+#define CP_NV_FLAGS_0_GET_DISCARD_11(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_DISCARD_11_MASK) >> CP_NV_FLAGS_0_DISCARD_11_SHIFT)
+#define CP_NV_FLAGS_0_GET_END_RCVD_11(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_END_RCVD_11_MASK) >> CP_NV_FLAGS_0_END_RCVD_11_SHIFT)
+#define CP_NV_FLAGS_0_GET_DISCARD_12(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_DISCARD_12_MASK) >> CP_NV_FLAGS_0_DISCARD_12_SHIFT)
+#define CP_NV_FLAGS_0_GET_END_RCVD_12(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_END_RCVD_12_MASK) >> CP_NV_FLAGS_0_END_RCVD_12_SHIFT)
+#define CP_NV_FLAGS_0_GET_DISCARD_13(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_DISCARD_13_MASK) >> CP_NV_FLAGS_0_DISCARD_13_SHIFT)
+#define CP_NV_FLAGS_0_GET_END_RCVD_13(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_END_RCVD_13_MASK) >> CP_NV_FLAGS_0_END_RCVD_13_SHIFT)
+#define CP_NV_FLAGS_0_GET_DISCARD_14(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_DISCARD_14_MASK) >> CP_NV_FLAGS_0_DISCARD_14_SHIFT)
+#define CP_NV_FLAGS_0_GET_END_RCVD_14(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_END_RCVD_14_MASK) >> CP_NV_FLAGS_0_END_RCVD_14_SHIFT)
+#define CP_NV_FLAGS_0_GET_DISCARD_15(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_DISCARD_15_MASK) >> CP_NV_FLAGS_0_DISCARD_15_SHIFT)
+#define CP_NV_FLAGS_0_GET_END_RCVD_15(cp_nv_flags_0) \
+ ((cp_nv_flags_0 & CP_NV_FLAGS_0_END_RCVD_15_MASK) >> CP_NV_FLAGS_0_END_RCVD_15_SHIFT)
+
+#define CP_NV_FLAGS_0_SET_DISCARD_0(cp_nv_flags_0_reg, discard_0) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_DISCARD_0_MASK) | (discard_0 << CP_NV_FLAGS_0_DISCARD_0_SHIFT)
+#define CP_NV_FLAGS_0_SET_END_RCVD_0(cp_nv_flags_0_reg, end_rcvd_0) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_END_RCVD_0_MASK) | (end_rcvd_0 << CP_NV_FLAGS_0_END_RCVD_0_SHIFT)
+#define CP_NV_FLAGS_0_SET_DISCARD_1(cp_nv_flags_0_reg, discard_1) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_DISCARD_1_MASK) | (discard_1 << CP_NV_FLAGS_0_DISCARD_1_SHIFT)
+#define CP_NV_FLAGS_0_SET_END_RCVD_1(cp_nv_flags_0_reg, end_rcvd_1) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_END_RCVD_1_MASK) | (end_rcvd_1 << CP_NV_FLAGS_0_END_RCVD_1_SHIFT)
+#define CP_NV_FLAGS_0_SET_DISCARD_2(cp_nv_flags_0_reg, discard_2) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_DISCARD_2_MASK) | (discard_2 << CP_NV_FLAGS_0_DISCARD_2_SHIFT)
+#define CP_NV_FLAGS_0_SET_END_RCVD_2(cp_nv_flags_0_reg, end_rcvd_2) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_END_RCVD_2_MASK) | (end_rcvd_2 << CP_NV_FLAGS_0_END_RCVD_2_SHIFT)
+#define CP_NV_FLAGS_0_SET_DISCARD_3(cp_nv_flags_0_reg, discard_3) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_DISCARD_3_MASK) | (discard_3 << CP_NV_FLAGS_0_DISCARD_3_SHIFT)
+#define CP_NV_FLAGS_0_SET_END_RCVD_3(cp_nv_flags_0_reg, end_rcvd_3) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_END_RCVD_3_MASK) | (end_rcvd_3 << CP_NV_FLAGS_0_END_RCVD_3_SHIFT)
+#define CP_NV_FLAGS_0_SET_DISCARD_4(cp_nv_flags_0_reg, discard_4) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_DISCARD_4_MASK) | (discard_4 << CP_NV_FLAGS_0_DISCARD_4_SHIFT)
+#define CP_NV_FLAGS_0_SET_END_RCVD_4(cp_nv_flags_0_reg, end_rcvd_4) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_END_RCVD_4_MASK) | (end_rcvd_4 << CP_NV_FLAGS_0_END_RCVD_4_SHIFT)
+#define CP_NV_FLAGS_0_SET_DISCARD_5(cp_nv_flags_0_reg, discard_5) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_DISCARD_5_MASK) | (discard_5 << CP_NV_FLAGS_0_DISCARD_5_SHIFT)
+#define CP_NV_FLAGS_0_SET_END_RCVD_5(cp_nv_flags_0_reg, end_rcvd_5) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_END_RCVD_5_MASK) | (end_rcvd_5 << CP_NV_FLAGS_0_END_RCVD_5_SHIFT)
+#define CP_NV_FLAGS_0_SET_DISCARD_6(cp_nv_flags_0_reg, discard_6) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_DISCARD_6_MASK) | (discard_6 << CP_NV_FLAGS_0_DISCARD_6_SHIFT)
+#define CP_NV_FLAGS_0_SET_END_RCVD_6(cp_nv_flags_0_reg, end_rcvd_6) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_END_RCVD_6_MASK) | (end_rcvd_6 << CP_NV_FLAGS_0_END_RCVD_6_SHIFT)
+#define CP_NV_FLAGS_0_SET_DISCARD_7(cp_nv_flags_0_reg, discard_7) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_DISCARD_7_MASK) | (discard_7 << CP_NV_FLAGS_0_DISCARD_7_SHIFT)
+#define CP_NV_FLAGS_0_SET_END_RCVD_7(cp_nv_flags_0_reg, end_rcvd_7) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_END_RCVD_7_MASK) | (end_rcvd_7 << CP_NV_FLAGS_0_END_RCVD_7_SHIFT)
+#define CP_NV_FLAGS_0_SET_DISCARD_8(cp_nv_flags_0_reg, discard_8) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_DISCARD_8_MASK) | (discard_8 << CP_NV_FLAGS_0_DISCARD_8_SHIFT)
+#define CP_NV_FLAGS_0_SET_END_RCVD_8(cp_nv_flags_0_reg, end_rcvd_8) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_END_RCVD_8_MASK) | (end_rcvd_8 << CP_NV_FLAGS_0_END_RCVD_8_SHIFT)
+#define CP_NV_FLAGS_0_SET_DISCARD_9(cp_nv_flags_0_reg, discard_9) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_DISCARD_9_MASK) | (discard_9 << CP_NV_FLAGS_0_DISCARD_9_SHIFT)
+#define CP_NV_FLAGS_0_SET_END_RCVD_9(cp_nv_flags_0_reg, end_rcvd_9) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_END_RCVD_9_MASK) | (end_rcvd_9 << CP_NV_FLAGS_0_END_RCVD_9_SHIFT)
+#define CP_NV_FLAGS_0_SET_DISCARD_10(cp_nv_flags_0_reg, discard_10) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_DISCARD_10_MASK) | (discard_10 << CP_NV_FLAGS_0_DISCARD_10_SHIFT)
+#define CP_NV_FLAGS_0_SET_END_RCVD_10(cp_nv_flags_0_reg, end_rcvd_10) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_END_RCVD_10_MASK) | (end_rcvd_10 << CP_NV_FLAGS_0_END_RCVD_10_SHIFT)
+#define CP_NV_FLAGS_0_SET_DISCARD_11(cp_nv_flags_0_reg, discard_11) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_DISCARD_11_MASK) | (discard_11 << CP_NV_FLAGS_0_DISCARD_11_SHIFT)
+#define CP_NV_FLAGS_0_SET_END_RCVD_11(cp_nv_flags_0_reg, end_rcvd_11) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_END_RCVD_11_MASK) | (end_rcvd_11 << CP_NV_FLAGS_0_END_RCVD_11_SHIFT)
+#define CP_NV_FLAGS_0_SET_DISCARD_12(cp_nv_flags_0_reg, discard_12) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_DISCARD_12_MASK) | (discard_12 << CP_NV_FLAGS_0_DISCARD_12_SHIFT)
+#define CP_NV_FLAGS_0_SET_END_RCVD_12(cp_nv_flags_0_reg, end_rcvd_12) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_END_RCVD_12_MASK) | (end_rcvd_12 << CP_NV_FLAGS_0_END_RCVD_12_SHIFT)
+#define CP_NV_FLAGS_0_SET_DISCARD_13(cp_nv_flags_0_reg, discard_13) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_DISCARD_13_MASK) | (discard_13 << CP_NV_FLAGS_0_DISCARD_13_SHIFT)
+#define CP_NV_FLAGS_0_SET_END_RCVD_13(cp_nv_flags_0_reg, end_rcvd_13) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_END_RCVD_13_MASK) | (end_rcvd_13 << CP_NV_FLAGS_0_END_RCVD_13_SHIFT)
+#define CP_NV_FLAGS_0_SET_DISCARD_14(cp_nv_flags_0_reg, discard_14) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_DISCARD_14_MASK) | (discard_14 << CP_NV_FLAGS_0_DISCARD_14_SHIFT)
+#define CP_NV_FLAGS_0_SET_END_RCVD_14(cp_nv_flags_0_reg, end_rcvd_14) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_END_RCVD_14_MASK) | (end_rcvd_14 << CP_NV_FLAGS_0_END_RCVD_14_SHIFT)
+#define CP_NV_FLAGS_0_SET_DISCARD_15(cp_nv_flags_0_reg, discard_15) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_DISCARD_15_MASK) | (discard_15 << CP_NV_FLAGS_0_DISCARD_15_SHIFT)
+#define CP_NV_FLAGS_0_SET_END_RCVD_15(cp_nv_flags_0_reg, end_rcvd_15) \
+ cp_nv_flags_0_reg = (cp_nv_flags_0_reg & ~CP_NV_FLAGS_0_END_RCVD_15_MASK) | (end_rcvd_15 << CP_NV_FLAGS_0_END_RCVD_15_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_nv_flags_0_t {
+ unsigned int discard_0 : CP_NV_FLAGS_0_DISCARD_0_SIZE;
+ unsigned int end_rcvd_0 : CP_NV_FLAGS_0_END_RCVD_0_SIZE;
+ unsigned int discard_1 : CP_NV_FLAGS_0_DISCARD_1_SIZE;
+ unsigned int end_rcvd_1 : CP_NV_FLAGS_0_END_RCVD_1_SIZE;
+ unsigned int discard_2 : CP_NV_FLAGS_0_DISCARD_2_SIZE;
+ unsigned int end_rcvd_2 : CP_NV_FLAGS_0_END_RCVD_2_SIZE;
+ unsigned int discard_3 : CP_NV_FLAGS_0_DISCARD_3_SIZE;
+ unsigned int end_rcvd_3 : CP_NV_FLAGS_0_END_RCVD_3_SIZE;
+ unsigned int discard_4 : CP_NV_FLAGS_0_DISCARD_4_SIZE;
+ unsigned int end_rcvd_4 : CP_NV_FLAGS_0_END_RCVD_4_SIZE;
+ unsigned int discard_5 : CP_NV_FLAGS_0_DISCARD_5_SIZE;
+ unsigned int end_rcvd_5 : CP_NV_FLAGS_0_END_RCVD_5_SIZE;
+ unsigned int discard_6 : CP_NV_FLAGS_0_DISCARD_6_SIZE;
+ unsigned int end_rcvd_6 : CP_NV_FLAGS_0_END_RCVD_6_SIZE;
+ unsigned int discard_7 : CP_NV_FLAGS_0_DISCARD_7_SIZE;
+ unsigned int end_rcvd_7 : CP_NV_FLAGS_0_END_RCVD_7_SIZE;
+ unsigned int discard_8 : CP_NV_FLAGS_0_DISCARD_8_SIZE;
+ unsigned int end_rcvd_8 : CP_NV_FLAGS_0_END_RCVD_8_SIZE;
+ unsigned int discard_9 : CP_NV_FLAGS_0_DISCARD_9_SIZE;
+ unsigned int end_rcvd_9 : CP_NV_FLAGS_0_END_RCVD_9_SIZE;
+ unsigned int discard_10 : CP_NV_FLAGS_0_DISCARD_10_SIZE;
+ unsigned int end_rcvd_10 : CP_NV_FLAGS_0_END_RCVD_10_SIZE;
+ unsigned int discard_11 : CP_NV_FLAGS_0_DISCARD_11_SIZE;
+ unsigned int end_rcvd_11 : CP_NV_FLAGS_0_END_RCVD_11_SIZE;
+ unsigned int discard_12 : CP_NV_FLAGS_0_DISCARD_12_SIZE;
+ unsigned int end_rcvd_12 : CP_NV_FLAGS_0_END_RCVD_12_SIZE;
+ unsigned int discard_13 : CP_NV_FLAGS_0_DISCARD_13_SIZE;
+ unsigned int end_rcvd_13 : CP_NV_FLAGS_0_END_RCVD_13_SIZE;
+ unsigned int discard_14 : CP_NV_FLAGS_0_DISCARD_14_SIZE;
+ unsigned int end_rcvd_14 : CP_NV_FLAGS_0_END_RCVD_14_SIZE;
+ unsigned int discard_15 : CP_NV_FLAGS_0_DISCARD_15_SIZE;
+ unsigned int end_rcvd_15 : CP_NV_FLAGS_0_END_RCVD_15_SIZE;
+ } cp_nv_flags_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_nv_flags_0_t {
+ unsigned int end_rcvd_15 : CP_NV_FLAGS_0_END_RCVD_15_SIZE;
+ unsigned int discard_15 : CP_NV_FLAGS_0_DISCARD_15_SIZE;
+ unsigned int end_rcvd_14 : CP_NV_FLAGS_0_END_RCVD_14_SIZE;
+ unsigned int discard_14 : CP_NV_FLAGS_0_DISCARD_14_SIZE;
+ unsigned int end_rcvd_13 : CP_NV_FLAGS_0_END_RCVD_13_SIZE;
+ unsigned int discard_13 : CP_NV_FLAGS_0_DISCARD_13_SIZE;
+ unsigned int end_rcvd_12 : CP_NV_FLAGS_0_END_RCVD_12_SIZE;
+ unsigned int discard_12 : CP_NV_FLAGS_0_DISCARD_12_SIZE;
+ unsigned int end_rcvd_11 : CP_NV_FLAGS_0_END_RCVD_11_SIZE;
+ unsigned int discard_11 : CP_NV_FLAGS_0_DISCARD_11_SIZE;
+ unsigned int end_rcvd_10 : CP_NV_FLAGS_0_END_RCVD_10_SIZE;
+ unsigned int discard_10 : CP_NV_FLAGS_0_DISCARD_10_SIZE;
+ unsigned int end_rcvd_9 : CP_NV_FLAGS_0_END_RCVD_9_SIZE;
+ unsigned int discard_9 : CP_NV_FLAGS_0_DISCARD_9_SIZE;
+ unsigned int end_rcvd_8 : CP_NV_FLAGS_0_END_RCVD_8_SIZE;
+ unsigned int discard_8 : CP_NV_FLAGS_0_DISCARD_8_SIZE;
+ unsigned int end_rcvd_7 : CP_NV_FLAGS_0_END_RCVD_7_SIZE;
+ unsigned int discard_7 : CP_NV_FLAGS_0_DISCARD_7_SIZE;
+ unsigned int end_rcvd_6 : CP_NV_FLAGS_0_END_RCVD_6_SIZE;
+ unsigned int discard_6 : CP_NV_FLAGS_0_DISCARD_6_SIZE;
+ unsigned int end_rcvd_5 : CP_NV_FLAGS_0_END_RCVD_5_SIZE;
+ unsigned int discard_5 : CP_NV_FLAGS_0_DISCARD_5_SIZE;
+ unsigned int end_rcvd_4 : CP_NV_FLAGS_0_END_RCVD_4_SIZE;
+ unsigned int discard_4 : CP_NV_FLAGS_0_DISCARD_4_SIZE;
+ unsigned int end_rcvd_3 : CP_NV_FLAGS_0_END_RCVD_3_SIZE;
+ unsigned int discard_3 : CP_NV_FLAGS_0_DISCARD_3_SIZE;
+ unsigned int end_rcvd_2 : CP_NV_FLAGS_0_END_RCVD_2_SIZE;
+ unsigned int discard_2 : CP_NV_FLAGS_0_DISCARD_2_SIZE;
+ unsigned int end_rcvd_1 : CP_NV_FLAGS_0_END_RCVD_1_SIZE;
+ unsigned int discard_1 : CP_NV_FLAGS_0_DISCARD_1_SIZE;
+ unsigned int end_rcvd_0 : CP_NV_FLAGS_0_END_RCVD_0_SIZE;
+ unsigned int discard_0 : CP_NV_FLAGS_0_DISCARD_0_SIZE;
+ } cp_nv_flags_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_nv_flags_0_t f;
+} cp_nv_flags_0_u;
+
+
+/*
+ * CP_NV_FLAGS_1 struct
+ */
+
+#define CP_NV_FLAGS_1_DISCARD_16_SIZE 1
+#define CP_NV_FLAGS_1_END_RCVD_16_SIZE 1
+#define CP_NV_FLAGS_1_DISCARD_17_SIZE 1
+#define CP_NV_FLAGS_1_END_RCVD_17_SIZE 1
+#define CP_NV_FLAGS_1_DISCARD_18_SIZE 1
+#define CP_NV_FLAGS_1_END_RCVD_18_SIZE 1
+#define CP_NV_FLAGS_1_DISCARD_19_SIZE 1
+#define CP_NV_FLAGS_1_END_RCVD_19_SIZE 1
+#define CP_NV_FLAGS_1_DISCARD_20_SIZE 1
+#define CP_NV_FLAGS_1_END_RCVD_20_SIZE 1
+#define CP_NV_FLAGS_1_DISCARD_21_SIZE 1
+#define CP_NV_FLAGS_1_END_RCVD_21_SIZE 1
+#define CP_NV_FLAGS_1_DISCARD_22_SIZE 1
+#define CP_NV_FLAGS_1_END_RCVD_22_SIZE 1
+#define CP_NV_FLAGS_1_DISCARD_23_SIZE 1
+#define CP_NV_FLAGS_1_END_RCVD_23_SIZE 1
+#define CP_NV_FLAGS_1_DISCARD_24_SIZE 1
+#define CP_NV_FLAGS_1_END_RCVD_24_SIZE 1
+#define CP_NV_FLAGS_1_DISCARD_25_SIZE 1
+#define CP_NV_FLAGS_1_END_RCVD_25_SIZE 1
+#define CP_NV_FLAGS_1_DISCARD_26_SIZE 1
+#define CP_NV_FLAGS_1_END_RCVD_26_SIZE 1
+#define CP_NV_FLAGS_1_DISCARD_27_SIZE 1
+#define CP_NV_FLAGS_1_END_RCVD_27_SIZE 1
+#define CP_NV_FLAGS_1_DISCARD_28_SIZE 1
+#define CP_NV_FLAGS_1_END_RCVD_28_SIZE 1
+#define CP_NV_FLAGS_1_DISCARD_29_SIZE 1
+#define CP_NV_FLAGS_1_END_RCVD_29_SIZE 1
+#define CP_NV_FLAGS_1_DISCARD_30_SIZE 1
+#define CP_NV_FLAGS_1_END_RCVD_30_SIZE 1
+#define CP_NV_FLAGS_1_DISCARD_31_SIZE 1
+#define CP_NV_FLAGS_1_END_RCVD_31_SIZE 1
+
+#define CP_NV_FLAGS_1_DISCARD_16_SHIFT 0
+#define CP_NV_FLAGS_1_END_RCVD_16_SHIFT 1
+#define CP_NV_FLAGS_1_DISCARD_17_SHIFT 2
+#define CP_NV_FLAGS_1_END_RCVD_17_SHIFT 3
+#define CP_NV_FLAGS_1_DISCARD_18_SHIFT 4
+#define CP_NV_FLAGS_1_END_RCVD_18_SHIFT 5
+#define CP_NV_FLAGS_1_DISCARD_19_SHIFT 6
+#define CP_NV_FLAGS_1_END_RCVD_19_SHIFT 7
+#define CP_NV_FLAGS_1_DISCARD_20_SHIFT 8
+#define CP_NV_FLAGS_1_END_RCVD_20_SHIFT 9
+#define CP_NV_FLAGS_1_DISCARD_21_SHIFT 10
+#define CP_NV_FLAGS_1_END_RCVD_21_SHIFT 11
+#define CP_NV_FLAGS_1_DISCARD_22_SHIFT 12
+#define CP_NV_FLAGS_1_END_RCVD_22_SHIFT 13
+#define CP_NV_FLAGS_1_DISCARD_23_SHIFT 14
+#define CP_NV_FLAGS_1_END_RCVD_23_SHIFT 15
+#define CP_NV_FLAGS_1_DISCARD_24_SHIFT 16
+#define CP_NV_FLAGS_1_END_RCVD_24_SHIFT 17
+#define CP_NV_FLAGS_1_DISCARD_25_SHIFT 18
+#define CP_NV_FLAGS_1_END_RCVD_25_SHIFT 19
+#define CP_NV_FLAGS_1_DISCARD_26_SHIFT 20
+#define CP_NV_FLAGS_1_END_RCVD_26_SHIFT 21
+#define CP_NV_FLAGS_1_DISCARD_27_SHIFT 22
+#define CP_NV_FLAGS_1_END_RCVD_27_SHIFT 23
+#define CP_NV_FLAGS_1_DISCARD_28_SHIFT 24
+#define CP_NV_FLAGS_1_END_RCVD_28_SHIFT 25
+#define CP_NV_FLAGS_1_DISCARD_29_SHIFT 26
+#define CP_NV_FLAGS_1_END_RCVD_29_SHIFT 27
+#define CP_NV_FLAGS_1_DISCARD_30_SHIFT 28
+#define CP_NV_FLAGS_1_END_RCVD_30_SHIFT 29
+#define CP_NV_FLAGS_1_DISCARD_31_SHIFT 30
+#define CP_NV_FLAGS_1_END_RCVD_31_SHIFT 31
+
+#define CP_NV_FLAGS_1_DISCARD_16_MASK 0x00000001
+#define CP_NV_FLAGS_1_END_RCVD_16_MASK 0x00000002
+#define CP_NV_FLAGS_1_DISCARD_17_MASK 0x00000004
+#define CP_NV_FLAGS_1_END_RCVD_17_MASK 0x00000008
+#define CP_NV_FLAGS_1_DISCARD_18_MASK 0x00000010
+#define CP_NV_FLAGS_1_END_RCVD_18_MASK 0x00000020
+#define CP_NV_FLAGS_1_DISCARD_19_MASK 0x00000040
+#define CP_NV_FLAGS_1_END_RCVD_19_MASK 0x00000080
+#define CP_NV_FLAGS_1_DISCARD_20_MASK 0x00000100
+#define CP_NV_FLAGS_1_END_RCVD_20_MASK 0x00000200
+#define CP_NV_FLAGS_1_DISCARD_21_MASK 0x00000400
+#define CP_NV_FLAGS_1_END_RCVD_21_MASK 0x00000800
+#define CP_NV_FLAGS_1_DISCARD_22_MASK 0x00001000
+#define CP_NV_FLAGS_1_END_RCVD_22_MASK 0x00002000
+#define CP_NV_FLAGS_1_DISCARD_23_MASK 0x00004000
+#define CP_NV_FLAGS_1_END_RCVD_23_MASK 0x00008000
+#define CP_NV_FLAGS_1_DISCARD_24_MASK 0x00010000
+#define CP_NV_FLAGS_1_END_RCVD_24_MASK 0x00020000
+#define CP_NV_FLAGS_1_DISCARD_25_MASK 0x00040000
+#define CP_NV_FLAGS_1_END_RCVD_25_MASK 0x00080000
+#define CP_NV_FLAGS_1_DISCARD_26_MASK 0x00100000
+#define CP_NV_FLAGS_1_END_RCVD_26_MASK 0x00200000
+#define CP_NV_FLAGS_1_DISCARD_27_MASK 0x00400000
+#define CP_NV_FLAGS_1_END_RCVD_27_MASK 0x00800000
+#define CP_NV_FLAGS_1_DISCARD_28_MASK 0x01000000
+#define CP_NV_FLAGS_1_END_RCVD_28_MASK 0x02000000
+#define CP_NV_FLAGS_1_DISCARD_29_MASK 0x04000000
+#define CP_NV_FLAGS_1_END_RCVD_29_MASK 0x08000000
+#define CP_NV_FLAGS_1_DISCARD_30_MASK 0x10000000
+#define CP_NV_FLAGS_1_END_RCVD_30_MASK 0x20000000
+#define CP_NV_FLAGS_1_DISCARD_31_MASK 0x40000000
+#define CP_NV_FLAGS_1_END_RCVD_31_MASK 0x80000000
+
+#define CP_NV_FLAGS_1_MASK \
+ (CP_NV_FLAGS_1_DISCARD_16_MASK | \
+ CP_NV_FLAGS_1_END_RCVD_16_MASK | \
+ CP_NV_FLAGS_1_DISCARD_17_MASK | \
+ CP_NV_FLAGS_1_END_RCVD_17_MASK | \
+ CP_NV_FLAGS_1_DISCARD_18_MASK | \
+ CP_NV_FLAGS_1_END_RCVD_18_MASK | \
+ CP_NV_FLAGS_1_DISCARD_19_MASK | \
+ CP_NV_FLAGS_1_END_RCVD_19_MASK | \
+ CP_NV_FLAGS_1_DISCARD_20_MASK | \
+ CP_NV_FLAGS_1_END_RCVD_20_MASK | \
+ CP_NV_FLAGS_1_DISCARD_21_MASK | \
+ CP_NV_FLAGS_1_END_RCVD_21_MASK | \
+ CP_NV_FLAGS_1_DISCARD_22_MASK | \
+ CP_NV_FLAGS_1_END_RCVD_22_MASK | \
+ CP_NV_FLAGS_1_DISCARD_23_MASK | \
+ CP_NV_FLAGS_1_END_RCVD_23_MASK | \
+ CP_NV_FLAGS_1_DISCARD_24_MASK | \
+ CP_NV_FLAGS_1_END_RCVD_24_MASK | \
+ CP_NV_FLAGS_1_DISCARD_25_MASK | \
+ CP_NV_FLAGS_1_END_RCVD_25_MASK | \
+ CP_NV_FLAGS_1_DISCARD_26_MASK | \
+ CP_NV_FLAGS_1_END_RCVD_26_MASK | \
+ CP_NV_FLAGS_1_DISCARD_27_MASK | \
+ CP_NV_FLAGS_1_END_RCVD_27_MASK | \
+ CP_NV_FLAGS_1_DISCARD_28_MASK | \
+ CP_NV_FLAGS_1_END_RCVD_28_MASK | \
+ CP_NV_FLAGS_1_DISCARD_29_MASK | \
+ CP_NV_FLAGS_1_END_RCVD_29_MASK | \
+ CP_NV_FLAGS_1_DISCARD_30_MASK | \
+ CP_NV_FLAGS_1_END_RCVD_30_MASK | \
+ CP_NV_FLAGS_1_DISCARD_31_MASK | \
+ CP_NV_FLAGS_1_END_RCVD_31_MASK)
+
+#define CP_NV_FLAGS_1(discard_16, end_rcvd_16, discard_17, end_rcvd_17, discard_18, end_rcvd_18, discard_19, end_rcvd_19, discard_20, end_rcvd_20, discard_21, end_rcvd_21, discard_22, end_rcvd_22, discard_23, end_rcvd_23, discard_24, end_rcvd_24, discard_25, end_rcvd_25, discard_26, end_rcvd_26, discard_27, end_rcvd_27, discard_28, end_rcvd_28, discard_29, end_rcvd_29, discard_30, end_rcvd_30, discard_31, end_rcvd_31) \
+ ((discard_16 << CP_NV_FLAGS_1_DISCARD_16_SHIFT) | \
+ (end_rcvd_16 << CP_NV_FLAGS_1_END_RCVD_16_SHIFT) | \
+ (discard_17 << CP_NV_FLAGS_1_DISCARD_17_SHIFT) | \
+ (end_rcvd_17 << CP_NV_FLAGS_1_END_RCVD_17_SHIFT) | \
+ (discard_18 << CP_NV_FLAGS_1_DISCARD_18_SHIFT) | \
+ (end_rcvd_18 << CP_NV_FLAGS_1_END_RCVD_18_SHIFT) | \
+ (discard_19 << CP_NV_FLAGS_1_DISCARD_19_SHIFT) | \
+ (end_rcvd_19 << CP_NV_FLAGS_1_END_RCVD_19_SHIFT) | \
+ (discard_20 << CP_NV_FLAGS_1_DISCARD_20_SHIFT) | \
+ (end_rcvd_20 << CP_NV_FLAGS_1_END_RCVD_20_SHIFT) | \
+ (discard_21 << CP_NV_FLAGS_1_DISCARD_21_SHIFT) | \
+ (end_rcvd_21 << CP_NV_FLAGS_1_END_RCVD_21_SHIFT) | \
+ (discard_22 << CP_NV_FLAGS_1_DISCARD_22_SHIFT) | \
+ (end_rcvd_22 << CP_NV_FLAGS_1_END_RCVD_22_SHIFT) | \
+ (discard_23 << CP_NV_FLAGS_1_DISCARD_23_SHIFT) | \
+ (end_rcvd_23 << CP_NV_FLAGS_1_END_RCVD_23_SHIFT) | \
+ (discard_24 << CP_NV_FLAGS_1_DISCARD_24_SHIFT) | \
+ (end_rcvd_24 << CP_NV_FLAGS_1_END_RCVD_24_SHIFT) | \
+ (discard_25 << CP_NV_FLAGS_1_DISCARD_25_SHIFT) | \
+ (end_rcvd_25 << CP_NV_FLAGS_1_END_RCVD_25_SHIFT) | \
+ (discard_26 << CP_NV_FLAGS_1_DISCARD_26_SHIFT) | \
+ (end_rcvd_26 << CP_NV_FLAGS_1_END_RCVD_26_SHIFT) | \
+ (discard_27 << CP_NV_FLAGS_1_DISCARD_27_SHIFT) | \
+ (end_rcvd_27 << CP_NV_FLAGS_1_END_RCVD_27_SHIFT) | \
+ (discard_28 << CP_NV_FLAGS_1_DISCARD_28_SHIFT) | \
+ (end_rcvd_28 << CP_NV_FLAGS_1_END_RCVD_28_SHIFT) | \
+ (discard_29 << CP_NV_FLAGS_1_DISCARD_29_SHIFT) | \
+ (end_rcvd_29 << CP_NV_FLAGS_1_END_RCVD_29_SHIFT) | \
+ (discard_30 << CP_NV_FLAGS_1_DISCARD_30_SHIFT) | \
+ (end_rcvd_30 << CP_NV_FLAGS_1_END_RCVD_30_SHIFT) | \
+ (discard_31 << CP_NV_FLAGS_1_DISCARD_31_SHIFT) | \
+ (end_rcvd_31 << CP_NV_FLAGS_1_END_RCVD_31_SHIFT))
+
+#define CP_NV_FLAGS_1_GET_DISCARD_16(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_DISCARD_16_MASK) >> CP_NV_FLAGS_1_DISCARD_16_SHIFT)
+#define CP_NV_FLAGS_1_GET_END_RCVD_16(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_END_RCVD_16_MASK) >> CP_NV_FLAGS_1_END_RCVD_16_SHIFT)
+#define CP_NV_FLAGS_1_GET_DISCARD_17(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_DISCARD_17_MASK) >> CP_NV_FLAGS_1_DISCARD_17_SHIFT)
+#define CP_NV_FLAGS_1_GET_END_RCVD_17(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_END_RCVD_17_MASK) >> CP_NV_FLAGS_1_END_RCVD_17_SHIFT)
+#define CP_NV_FLAGS_1_GET_DISCARD_18(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_DISCARD_18_MASK) >> CP_NV_FLAGS_1_DISCARD_18_SHIFT)
+#define CP_NV_FLAGS_1_GET_END_RCVD_18(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_END_RCVD_18_MASK) >> CP_NV_FLAGS_1_END_RCVD_18_SHIFT)
+#define CP_NV_FLAGS_1_GET_DISCARD_19(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_DISCARD_19_MASK) >> CP_NV_FLAGS_1_DISCARD_19_SHIFT)
+#define CP_NV_FLAGS_1_GET_END_RCVD_19(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_END_RCVD_19_MASK) >> CP_NV_FLAGS_1_END_RCVD_19_SHIFT)
+#define CP_NV_FLAGS_1_GET_DISCARD_20(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_DISCARD_20_MASK) >> CP_NV_FLAGS_1_DISCARD_20_SHIFT)
+#define CP_NV_FLAGS_1_GET_END_RCVD_20(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_END_RCVD_20_MASK) >> CP_NV_FLAGS_1_END_RCVD_20_SHIFT)
+#define CP_NV_FLAGS_1_GET_DISCARD_21(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_DISCARD_21_MASK) >> CP_NV_FLAGS_1_DISCARD_21_SHIFT)
+#define CP_NV_FLAGS_1_GET_END_RCVD_21(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_END_RCVD_21_MASK) >> CP_NV_FLAGS_1_END_RCVD_21_SHIFT)
+#define CP_NV_FLAGS_1_GET_DISCARD_22(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_DISCARD_22_MASK) >> CP_NV_FLAGS_1_DISCARD_22_SHIFT)
+#define CP_NV_FLAGS_1_GET_END_RCVD_22(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_END_RCVD_22_MASK) >> CP_NV_FLAGS_1_END_RCVD_22_SHIFT)
+#define CP_NV_FLAGS_1_GET_DISCARD_23(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_DISCARD_23_MASK) >> CP_NV_FLAGS_1_DISCARD_23_SHIFT)
+#define CP_NV_FLAGS_1_GET_END_RCVD_23(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_END_RCVD_23_MASK) >> CP_NV_FLAGS_1_END_RCVD_23_SHIFT)
+#define CP_NV_FLAGS_1_GET_DISCARD_24(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_DISCARD_24_MASK) >> CP_NV_FLAGS_1_DISCARD_24_SHIFT)
+#define CP_NV_FLAGS_1_GET_END_RCVD_24(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_END_RCVD_24_MASK) >> CP_NV_FLAGS_1_END_RCVD_24_SHIFT)
+#define CP_NV_FLAGS_1_GET_DISCARD_25(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_DISCARD_25_MASK) >> CP_NV_FLAGS_1_DISCARD_25_SHIFT)
+#define CP_NV_FLAGS_1_GET_END_RCVD_25(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_END_RCVD_25_MASK) >> CP_NV_FLAGS_1_END_RCVD_25_SHIFT)
+#define CP_NV_FLAGS_1_GET_DISCARD_26(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_DISCARD_26_MASK) >> CP_NV_FLAGS_1_DISCARD_26_SHIFT)
+#define CP_NV_FLAGS_1_GET_END_RCVD_26(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_END_RCVD_26_MASK) >> CP_NV_FLAGS_1_END_RCVD_26_SHIFT)
+#define CP_NV_FLAGS_1_GET_DISCARD_27(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_DISCARD_27_MASK) >> CP_NV_FLAGS_1_DISCARD_27_SHIFT)
+#define CP_NV_FLAGS_1_GET_END_RCVD_27(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_END_RCVD_27_MASK) >> CP_NV_FLAGS_1_END_RCVD_27_SHIFT)
+#define CP_NV_FLAGS_1_GET_DISCARD_28(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_DISCARD_28_MASK) >> CP_NV_FLAGS_1_DISCARD_28_SHIFT)
+#define CP_NV_FLAGS_1_GET_END_RCVD_28(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_END_RCVD_28_MASK) >> CP_NV_FLAGS_1_END_RCVD_28_SHIFT)
+#define CP_NV_FLAGS_1_GET_DISCARD_29(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_DISCARD_29_MASK) >> CP_NV_FLAGS_1_DISCARD_29_SHIFT)
+#define CP_NV_FLAGS_1_GET_END_RCVD_29(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_END_RCVD_29_MASK) >> CP_NV_FLAGS_1_END_RCVD_29_SHIFT)
+#define CP_NV_FLAGS_1_GET_DISCARD_30(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_DISCARD_30_MASK) >> CP_NV_FLAGS_1_DISCARD_30_SHIFT)
+#define CP_NV_FLAGS_1_GET_END_RCVD_30(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_END_RCVD_30_MASK) >> CP_NV_FLAGS_1_END_RCVD_30_SHIFT)
+#define CP_NV_FLAGS_1_GET_DISCARD_31(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_DISCARD_31_MASK) >> CP_NV_FLAGS_1_DISCARD_31_SHIFT)
+#define CP_NV_FLAGS_1_GET_END_RCVD_31(cp_nv_flags_1) \
+ ((cp_nv_flags_1 & CP_NV_FLAGS_1_END_RCVD_31_MASK) >> CP_NV_FLAGS_1_END_RCVD_31_SHIFT)
+
+#define CP_NV_FLAGS_1_SET_DISCARD_16(cp_nv_flags_1_reg, discard_16) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_DISCARD_16_MASK) | (discard_16 << CP_NV_FLAGS_1_DISCARD_16_SHIFT)
+#define CP_NV_FLAGS_1_SET_END_RCVD_16(cp_nv_flags_1_reg, end_rcvd_16) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_END_RCVD_16_MASK) | (end_rcvd_16 << CP_NV_FLAGS_1_END_RCVD_16_SHIFT)
+#define CP_NV_FLAGS_1_SET_DISCARD_17(cp_nv_flags_1_reg, discard_17) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_DISCARD_17_MASK) | (discard_17 << CP_NV_FLAGS_1_DISCARD_17_SHIFT)
+#define CP_NV_FLAGS_1_SET_END_RCVD_17(cp_nv_flags_1_reg, end_rcvd_17) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_END_RCVD_17_MASK) | (end_rcvd_17 << CP_NV_FLAGS_1_END_RCVD_17_SHIFT)
+#define CP_NV_FLAGS_1_SET_DISCARD_18(cp_nv_flags_1_reg, discard_18) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_DISCARD_18_MASK) | (discard_18 << CP_NV_FLAGS_1_DISCARD_18_SHIFT)
+#define CP_NV_FLAGS_1_SET_END_RCVD_18(cp_nv_flags_1_reg, end_rcvd_18) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_END_RCVD_18_MASK) | (end_rcvd_18 << CP_NV_FLAGS_1_END_RCVD_18_SHIFT)
+#define CP_NV_FLAGS_1_SET_DISCARD_19(cp_nv_flags_1_reg, discard_19) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_DISCARD_19_MASK) | (discard_19 << CP_NV_FLAGS_1_DISCARD_19_SHIFT)
+#define CP_NV_FLAGS_1_SET_END_RCVD_19(cp_nv_flags_1_reg, end_rcvd_19) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_END_RCVD_19_MASK) | (end_rcvd_19 << CP_NV_FLAGS_1_END_RCVD_19_SHIFT)
+#define CP_NV_FLAGS_1_SET_DISCARD_20(cp_nv_flags_1_reg, discard_20) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_DISCARD_20_MASK) | (discard_20 << CP_NV_FLAGS_1_DISCARD_20_SHIFT)
+#define CP_NV_FLAGS_1_SET_END_RCVD_20(cp_nv_flags_1_reg, end_rcvd_20) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_END_RCVD_20_MASK) | (end_rcvd_20 << CP_NV_FLAGS_1_END_RCVD_20_SHIFT)
+#define CP_NV_FLAGS_1_SET_DISCARD_21(cp_nv_flags_1_reg, discard_21) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_DISCARD_21_MASK) | (discard_21 << CP_NV_FLAGS_1_DISCARD_21_SHIFT)
+#define CP_NV_FLAGS_1_SET_END_RCVD_21(cp_nv_flags_1_reg, end_rcvd_21) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_END_RCVD_21_MASK) | (end_rcvd_21 << CP_NV_FLAGS_1_END_RCVD_21_SHIFT)
+#define CP_NV_FLAGS_1_SET_DISCARD_22(cp_nv_flags_1_reg, discard_22) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_DISCARD_22_MASK) | (discard_22 << CP_NV_FLAGS_1_DISCARD_22_SHIFT)
+#define CP_NV_FLAGS_1_SET_END_RCVD_22(cp_nv_flags_1_reg, end_rcvd_22) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_END_RCVD_22_MASK) | (end_rcvd_22 << CP_NV_FLAGS_1_END_RCVD_22_SHIFT)
+#define CP_NV_FLAGS_1_SET_DISCARD_23(cp_nv_flags_1_reg, discard_23) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_DISCARD_23_MASK) | (discard_23 << CP_NV_FLAGS_1_DISCARD_23_SHIFT)
+#define CP_NV_FLAGS_1_SET_END_RCVD_23(cp_nv_flags_1_reg, end_rcvd_23) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_END_RCVD_23_MASK) | (end_rcvd_23 << CP_NV_FLAGS_1_END_RCVD_23_SHIFT)
+#define CP_NV_FLAGS_1_SET_DISCARD_24(cp_nv_flags_1_reg, discard_24) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_DISCARD_24_MASK) | (discard_24 << CP_NV_FLAGS_1_DISCARD_24_SHIFT)
+#define CP_NV_FLAGS_1_SET_END_RCVD_24(cp_nv_flags_1_reg, end_rcvd_24) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_END_RCVD_24_MASK) | (end_rcvd_24 << CP_NV_FLAGS_1_END_RCVD_24_SHIFT)
+#define CP_NV_FLAGS_1_SET_DISCARD_25(cp_nv_flags_1_reg, discard_25) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_DISCARD_25_MASK) | (discard_25 << CP_NV_FLAGS_1_DISCARD_25_SHIFT)
+#define CP_NV_FLAGS_1_SET_END_RCVD_25(cp_nv_flags_1_reg, end_rcvd_25) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_END_RCVD_25_MASK) | (end_rcvd_25 << CP_NV_FLAGS_1_END_RCVD_25_SHIFT)
+#define CP_NV_FLAGS_1_SET_DISCARD_26(cp_nv_flags_1_reg, discard_26) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_DISCARD_26_MASK) | (discard_26 << CP_NV_FLAGS_1_DISCARD_26_SHIFT)
+#define CP_NV_FLAGS_1_SET_END_RCVD_26(cp_nv_flags_1_reg, end_rcvd_26) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_END_RCVD_26_MASK) | (end_rcvd_26 << CP_NV_FLAGS_1_END_RCVD_26_SHIFT)
+#define CP_NV_FLAGS_1_SET_DISCARD_27(cp_nv_flags_1_reg, discard_27) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_DISCARD_27_MASK) | (discard_27 << CP_NV_FLAGS_1_DISCARD_27_SHIFT)
+#define CP_NV_FLAGS_1_SET_END_RCVD_27(cp_nv_flags_1_reg, end_rcvd_27) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_END_RCVD_27_MASK) | (end_rcvd_27 << CP_NV_FLAGS_1_END_RCVD_27_SHIFT)
+#define CP_NV_FLAGS_1_SET_DISCARD_28(cp_nv_flags_1_reg, discard_28) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_DISCARD_28_MASK) | (discard_28 << CP_NV_FLAGS_1_DISCARD_28_SHIFT)
+#define CP_NV_FLAGS_1_SET_END_RCVD_28(cp_nv_flags_1_reg, end_rcvd_28) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_END_RCVD_28_MASK) | (end_rcvd_28 << CP_NV_FLAGS_1_END_RCVD_28_SHIFT)
+#define CP_NV_FLAGS_1_SET_DISCARD_29(cp_nv_flags_1_reg, discard_29) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_DISCARD_29_MASK) | (discard_29 << CP_NV_FLAGS_1_DISCARD_29_SHIFT)
+#define CP_NV_FLAGS_1_SET_END_RCVD_29(cp_nv_flags_1_reg, end_rcvd_29) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_END_RCVD_29_MASK) | (end_rcvd_29 << CP_NV_FLAGS_1_END_RCVD_29_SHIFT)
+#define CP_NV_FLAGS_1_SET_DISCARD_30(cp_nv_flags_1_reg, discard_30) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_DISCARD_30_MASK) | (discard_30 << CP_NV_FLAGS_1_DISCARD_30_SHIFT)
+#define CP_NV_FLAGS_1_SET_END_RCVD_30(cp_nv_flags_1_reg, end_rcvd_30) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_END_RCVD_30_MASK) | (end_rcvd_30 << CP_NV_FLAGS_1_END_RCVD_30_SHIFT)
+#define CP_NV_FLAGS_1_SET_DISCARD_31(cp_nv_flags_1_reg, discard_31) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_DISCARD_31_MASK) | (discard_31 << CP_NV_FLAGS_1_DISCARD_31_SHIFT)
+#define CP_NV_FLAGS_1_SET_END_RCVD_31(cp_nv_flags_1_reg, end_rcvd_31) \
+ cp_nv_flags_1_reg = (cp_nv_flags_1_reg & ~CP_NV_FLAGS_1_END_RCVD_31_MASK) | (end_rcvd_31 << CP_NV_FLAGS_1_END_RCVD_31_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_nv_flags_1_t {
+ unsigned int discard_16 : CP_NV_FLAGS_1_DISCARD_16_SIZE;
+ unsigned int end_rcvd_16 : CP_NV_FLAGS_1_END_RCVD_16_SIZE;
+ unsigned int discard_17 : CP_NV_FLAGS_1_DISCARD_17_SIZE;
+ unsigned int end_rcvd_17 : CP_NV_FLAGS_1_END_RCVD_17_SIZE;
+ unsigned int discard_18 : CP_NV_FLAGS_1_DISCARD_18_SIZE;
+ unsigned int end_rcvd_18 : CP_NV_FLAGS_1_END_RCVD_18_SIZE;
+ unsigned int discard_19 : CP_NV_FLAGS_1_DISCARD_19_SIZE;
+ unsigned int end_rcvd_19 : CP_NV_FLAGS_1_END_RCVD_19_SIZE;
+ unsigned int discard_20 : CP_NV_FLAGS_1_DISCARD_20_SIZE;
+ unsigned int end_rcvd_20 : CP_NV_FLAGS_1_END_RCVD_20_SIZE;
+ unsigned int discard_21 : CP_NV_FLAGS_1_DISCARD_21_SIZE;
+ unsigned int end_rcvd_21 : CP_NV_FLAGS_1_END_RCVD_21_SIZE;
+ unsigned int discard_22 : CP_NV_FLAGS_1_DISCARD_22_SIZE;
+ unsigned int end_rcvd_22 : CP_NV_FLAGS_1_END_RCVD_22_SIZE;
+ unsigned int discard_23 : CP_NV_FLAGS_1_DISCARD_23_SIZE;
+ unsigned int end_rcvd_23 : CP_NV_FLAGS_1_END_RCVD_23_SIZE;
+ unsigned int discard_24 : CP_NV_FLAGS_1_DISCARD_24_SIZE;
+ unsigned int end_rcvd_24 : CP_NV_FLAGS_1_END_RCVD_24_SIZE;
+ unsigned int discard_25 : CP_NV_FLAGS_1_DISCARD_25_SIZE;
+ unsigned int end_rcvd_25 : CP_NV_FLAGS_1_END_RCVD_25_SIZE;
+ unsigned int discard_26 : CP_NV_FLAGS_1_DISCARD_26_SIZE;
+ unsigned int end_rcvd_26 : CP_NV_FLAGS_1_END_RCVD_26_SIZE;
+ unsigned int discard_27 : CP_NV_FLAGS_1_DISCARD_27_SIZE;
+ unsigned int end_rcvd_27 : CP_NV_FLAGS_1_END_RCVD_27_SIZE;
+ unsigned int discard_28 : CP_NV_FLAGS_1_DISCARD_28_SIZE;
+ unsigned int end_rcvd_28 : CP_NV_FLAGS_1_END_RCVD_28_SIZE;
+ unsigned int discard_29 : CP_NV_FLAGS_1_DISCARD_29_SIZE;
+ unsigned int end_rcvd_29 : CP_NV_FLAGS_1_END_RCVD_29_SIZE;
+ unsigned int discard_30 : CP_NV_FLAGS_1_DISCARD_30_SIZE;
+ unsigned int end_rcvd_30 : CP_NV_FLAGS_1_END_RCVD_30_SIZE;
+ unsigned int discard_31 : CP_NV_FLAGS_1_DISCARD_31_SIZE;
+ unsigned int end_rcvd_31 : CP_NV_FLAGS_1_END_RCVD_31_SIZE;
+ } cp_nv_flags_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_nv_flags_1_t {
+ unsigned int end_rcvd_31 : CP_NV_FLAGS_1_END_RCVD_31_SIZE;
+ unsigned int discard_31 : CP_NV_FLAGS_1_DISCARD_31_SIZE;
+ unsigned int end_rcvd_30 : CP_NV_FLAGS_1_END_RCVD_30_SIZE;
+ unsigned int discard_30 : CP_NV_FLAGS_1_DISCARD_30_SIZE;
+ unsigned int end_rcvd_29 : CP_NV_FLAGS_1_END_RCVD_29_SIZE;
+ unsigned int discard_29 : CP_NV_FLAGS_1_DISCARD_29_SIZE;
+ unsigned int end_rcvd_28 : CP_NV_FLAGS_1_END_RCVD_28_SIZE;
+ unsigned int discard_28 : CP_NV_FLAGS_1_DISCARD_28_SIZE;
+ unsigned int end_rcvd_27 : CP_NV_FLAGS_1_END_RCVD_27_SIZE;
+ unsigned int discard_27 : CP_NV_FLAGS_1_DISCARD_27_SIZE;
+ unsigned int end_rcvd_26 : CP_NV_FLAGS_1_END_RCVD_26_SIZE;
+ unsigned int discard_26 : CP_NV_FLAGS_1_DISCARD_26_SIZE;
+ unsigned int end_rcvd_25 : CP_NV_FLAGS_1_END_RCVD_25_SIZE;
+ unsigned int discard_25 : CP_NV_FLAGS_1_DISCARD_25_SIZE;
+ unsigned int end_rcvd_24 : CP_NV_FLAGS_1_END_RCVD_24_SIZE;
+ unsigned int discard_24 : CP_NV_FLAGS_1_DISCARD_24_SIZE;
+ unsigned int end_rcvd_23 : CP_NV_FLAGS_1_END_RCVD_23_SIZE;
+ unsigned int discard_23 : CP_NV_FLAGS_1_DISCARD_23_SIZE;
+ unsigned int end_rcvd_22 : CP_NV_FLAGS_1_END_RCVD_22_SIZE;
+ unsigned int discard_22 : CP_NV_FLAGS_1_DISCARD_22_SIZE;
+ unsigned int end_rcvd_21 : CP_NV_FLAGS_1_END_RCVD_21_SIZE;
+ unsigned int discard_21 : CP_NV_FLAGS_1_DISCARD_21_SIZE;
+ unsigned int end_rcvd_20 : CP_NV_FLAGS_1_END_RCVD_20_SIZE;
+ unsigned int discard_20 : CP_NV_FLAGS_1_DISCARD_20_SIZE;
+ unsigned int end_rcvd_19 : CP_NV_FLAGS_1_END_RCVD_19_SIZE;
+ unsigned int discard_19 : CP_NV_FLAGS_1_DISCARD_19_SIZE;
+ unsigned int end_rcvd_18 : CP_NV_FLAGS_1_END_RCVD_18_SIZE;
+ unsigned int discard_18 : CP_NV_FLAGS_1_DISCARD_18_SIZE;
+ unsigned int end_rcvd_17 : CP_NV_FLAGS_1_END_RCVD_17_SIZE;
+ unsigned int discard_17 : CP_NV_FLAGS_1_DISCARD_17_SIZE;
+ unsigned int end_rcvd_16 : CP_NV_FLAGS_1_END_RCVD_16_SIZE;
+ unsigned int discard_16 : CP_NV_FLAGS_1_DISCARD_16_SIZE;
+ } cp_nv_flags_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_nv_flags_1_t f;
+} cp_nv_flags_1_u;
+
+
+/*
+ * CP_NV_FLAGS_2 struct
+ */
+
+#define CP_NV_FLAGS_2_DISCARD_32_SIZE 1
+#define CP_NV_FLAGS_2_END_RCVD_32_SIZE 1
+#define CP_NV_FLAGS_2_DISCARD_33_SIZE 1
+#define CP_NV_FLAGS_2_END_RCVD_33_SIZE 1
+#define CP_NV_FLAGS_2_DISCARD_34_SIZE 1
+#define CP_NV_FLAGS_2_END_RCVD_34_SIZE 1
+#define CP_NV_FLAGS_2_DISCARD_35_SIZE 1
+#define CP_NV_FLAGS_2_END_RCVD_35_SIZE 1
+#define CP_NV_FLAGS_2_DISCARD_36_SIZE 1
+#define CP_NV_FLAGS_2_END_RCVD_36_SIZE 1
+#define CP_NV_FLAGS_2_DISCARD_37_SIZE 1
+#define CP_NV_FLAGS_2_END_RCVD_37_SIZE 1
+#define CP_NV_FLAGS_2_DISCARD_38_SIZE 1
+#define CP_NV_FLAGS_2_END_RCVD_38_SIZE 1
+#define CP_NV_FLAGS_2_DISCARD_39_SIZE 1
+#define CP_NV_FLAGS_2_END_RCVD_39_SIZE 1
+#define CP_NV_FLAGS_2_DISCARD_40_SIZE 1
+#define CP_NV_FLAGS_2_END_RCVD_40_SIZE 1
+#define CP_NV_FLAGS_2_DISCARD_41_SIZE 1
+#define CP_NV_FLAGS_2_END_RCVD_41_SIZE 1
+#define CP_NV_FLAGS_2_DISCARD_42_SIZE 1
+#define CP_NV_FLAGS_2_END_RCVD_42_SIZE 1
+#define CP_NV_FLAGS_2_DISCARD_43_SIZE 1
+#define CP_NV_FLAGS_2_END_RCVD_43_SIZE 1
+#define CP_NV_FLAGS_2_DISCARD_44_SIZE 1
+#define CP_NV_FLAGS_2_END_RCVD_44_SIZE 1
+#define CP_NV_FLAGS_2_DISCARD_45_SIZE 1
+#define CP_NV_FLAGS_2_END_RCVD_45_SIZE 1
+#define CP_NV_FLAGS_2_DISCARD_46_SIZE 1
+#define CP_NV_FLAGS_2_END_RCVD_46_SIZE 1
+#define CP_NV_FLAGS_2_DISCARD_47_SIZE 1
+#define CP_NV_FLAGS_2_END_RCVD_47_SIZE 1
+
+#define CP_NV_FLAGS_2_DISCARD_32_SHIFT 0
+#define CP_NV_FLAGS_2_END_RCVD_32_SHIFT 1
+#define CP_NV_FLAGS_2_DISCARD_33_SHIFT 2
+#define CP_NV_FLAGS_2_END_RCVD_33_SHIFT 3
+#define CP_NV_FLAGS_2_DISCARD_34_SHIFT 4
+#define CP_NV_FLAGS_2_END_RCVD_34_SHIFT 5
+#define CP_NV_FLAGS_2_DISCARD_35_SHIFT 6
+#define CP_NV_FLAGS_2_END_RCVD_35_SHIFT 7
+#define CP_NV_FLAGS_2_DISCARD_36_SHIFT 8
+#define CP_NV_FLAGS_2_END_RCVD_36_SHIFT 9
+#define CP_NV_FLAGS_2_DISCARD_37_SHIFT 10
+#define CP_NV_FLAGS_2_END_RCVD_37_SHIFT 11
+#define CP_NV_FLAGS_2_DISCARD_38_SHIFT 12
+#define CP_NV_FLAGS_2_END_RCVD_38_SHIFT 13
+#define CP_NV_FLAGS_2_DISCARD_39_SHIFT 14
+#define CP_NV_FLAGS_2_END_RCVD_39_SHIFT 15
+#define CP_NV_FLAGS_2_DISCARD_40_SHIFT 16
+#define CP_NV_FLAGS_2_END_RCVD_40_SHIFT 17
+#define CP_NV_FLAGS_2_DISCARD_41_SHIFT 18
+#define CP_NV_FLAGS_2_END_RCVD_41_SHIFT 19
+#define CP_NV_FLAGS_2_DISCARD_42_SHIFT 20
+#define CP_NV_FLAGS_2_END_RCVD_42_SHIFT 21
+#define CP_NV_FLAGS_2_DISCARD_43_SHIFT 22
+#define CP_NV_FLAGS_2_END_RCVD_43_SHIFT 23
+#define CP_NV_FLAGS_2_DISCARD_44_SHIFT 24
+#define CP_NV_FLAGS_2_END_RCVD_44_SHIFT 25
+#define CP_NV_FLAGS_2_DISCARD_45_SHIFT 26
+#define CP_NV_FLAGS_2_END_RCVD_45_SHIFT 27
+#define CP_NV_FLAGS_2_DISCARD_46_SHIFT 28
+#define CP_NV_FLAGS_2_END_RCVD_46_SHIFT 29
+#define CP_NV_FLAGS_2_DISCARD_47_SHIFT 30
+#define CP_NV_FLAGS_2_END_RCVD_47_SHIFT 31
+
+#define CP_NV_FLAGS_2_DISCARD_32_MASK 0x00000001
+#define CP_NV_FLAGS_2_END_RCVD_32_MASK 0x00000002
+#define CP_NV_FLAGS_2_DISCARD_33_MASK 0x00000004
+#define CP_NV_FLAGS_2_END_RCVD_33_MASK 0x00000008
+#define CP_NV_FLAGS_2_DISCARD_34_MASK 0x00000010
+#define CP_NV_FLAGS_2_END_RCVD_34_MASK 0x00000020
+#define CP_NV_FLAGS_2_DISCARD_35_MASK 0x00000040
+#define CP_NV_FLAGS_2_END_RCVD_35_MASK 0x00000080
+#define CP_NV_FLAGS_2_DISCARD_36_MASK 0x00000100
+#define CP_NV_FLAGS_2_END_RCVD_36_MASK 0x00000200
+#define CP_NV_FLAGS_2_DISCARD_37_MASK 0x00000400
+#define CP_NV_FLAGS_2_END_RCVD_37_MASK 0x00000800
+#define CP_NV_FLAGS_2_DISCARD_38_MASK 0x00001000
+#define CP_NV_FLAGS_2_END_RCVD_38_MASK 0x00002000
+#define CP_NV_FLAGS_2_DISCARD_39_MASK 0x00004000
+#define CP_NV_FLAGS_2_END_RCVD_39_MASK 0x00008000
+#define CP_NV_FLAGS_2_DISCARD_40_MASK 0x00010000
+#define CP_NV_FLAGS_2_END_RCVD_40_MASK 0x00020000
+#define CP_NV_FLAGS_2_DISCARD_41_MASK 0x00040000
+#define CP_NV_FLAGS_2_END_RCVD_41_MASK 0x00080000
+#define CP_NV_FLAGS_2_DISCARD_42_MASK 0x00100000
+#define CP_NV_FLAGS_2_END_RCVD_42_MASK 0x00200000
+#define CP_NV_FLAGS_2_DISCARD_43_MASK 0x00400000
+#define CP_NV_FLAGS_2_END_RCVD_43_MASK 0x00800000
+#define CP_NV_FLAGS_2_DISCARD_44_MASK 0x01000000
+#define CP_NV_FLAGS_2_END_RCVD_44_MASK 0x02000000
+#define CP_NV_FLAGS_2_DISCARD_45_MASK 0x04000000
+#define CP_NV_FLAGS_2_END_RCVD_45_MASK 0x08000000
+#define CP_NV_FLAGS_2_DISCARD_46_MASK 0x10000000
+#define CP_NV_FLAGS_2_END_RCVD_46_MASK 0x20000000
+#define CP_NV_FLAGS_2_DISCARD_47_MASK 0x40000000
+#define CP_NV_FLAGS_2_END_RCVD_47_MASK 0x80000000
+
+#define CP_NV_FLAGS_2_MASK \
+ (CP_NV_FLAGS_2_DISCARD_32_MASK | \
+ CP_NV_FLAGS_2_END_RCVD_32_MASK | \
+ CP_NV_FLAGS_2_DISCARD_33_MASK | \
+ CP_NV_FLAGS_2_END_RCVD_33_MASK | \
+ CP_NV_FLAGS_2_DISCARD_34_MASK | \
+ CP_NV_FLAGS_2_END_RCVD_34_MASK | \
+ CP_NV_FLAGS_2_DISCARD_35_MASK | \
+ CP_NV_FLAGS_2_END_RCVD_35_MASK | \
+ CP_NV_FLAGS_2_DISCARD_36_MASK | \
+ CP_NV_FLAGS_2_END_RCVD_36_MASK | \
+ CP_NV_FLAGS_2_DISCARD_37_MASK | \
+ CP_NV_FLAGS_2_END_RCVD_37_MASK | \
+ CP_NV_FLAGS_2_DISCARD_38_MASK | \
+ CP_NV_FLAGS_2_END_RCVD_38_MASK | \
+ CP_NV_FLAGS_2_DISCARD_39_MASK | \
+ CP_NV_FLAGS_2_END_RCVD_39_MASK | \
+ CP_NV_FLAGS_2_DISCARD_40_MASK | \
+ CP_NV_FLAGS_2_END_RCVD_40_MASK | \
+ CP_NV_FLAGS_2_DISCARD_41_MASK | \
+ CP_NV_FLAGS_2_END_RCVD_41_MASK | \
+ CP_NV_FLAGS_2_DISCARD_42_MASK | \
+ CP_NV_FLAGS_2_END_RCVD_42_MASK | \
+ CP_NV_FLAGS_2_DISCARD_43_MASK | \
+ CP_NV_FLAGS_2_END_RCVD_43_MASK | \
+ CP_NV_FLAGS_2_DISCARD_44_MASK | \
+ CP_NV_FLAGS_2_END_RCVD_44_MASK | \
+ CP_NV_FLAGS_2_DISCARD_45_MASK | \
+ CP_NV_FLAGS_2_END_RCVD_45_MASK | \
+ CP_NV_FLAGS_2_DISCARD_46_MASK | \
+ CP_NV_FLAGS_2_END_RCVD_46_MASK | \
+ CP_NV_FLAGS_2_DISCARD_47_MASK | \
+ CP_NV_FLAGS_2_END_RCVD_47_MASK)
+
+#define CP_NV_FLAGS_2(discard_32, end_rcvd_32, discard_33, end_rcvd_33, discard_34, end_rcvd_34, discard_35, end_rcvd_35, discard_36, end_rcvd_36, discard_37, end_rcvd_37, discard_38, end_rcvd_38, discard_39, end_rcvd_39, discard_40, end_rcvd_40, discard_41, end_rcvd_41, discard_42, end_rcvd_42, discard_43, end_rcvd_43, discard_44, end_rcvd_44, discard_45, end_rcvd_45, discard_46, end_rcvd_46, discard_47, end_rcvd_47) \
+ ((discard_32 << CP_NV_FLAGS_2_DISCARD_32_SHIFT) | \
+ (end_rcvd_32 << CP_NV_FLAGS_2_END_RCVD_32_SHIFT) | \
+ (discard_33 << CP_NV_FLAGS_2_DISCARD_33_SHIFT) | \
+ (end_rcvd_33 << CP_NV_FLAGS_2_END_RCVD_33_SHIFT) | \
+ (discard_34 << CP_NV_FLAGS_2_DISCARD_34_SHIFT) | \
+ (end_rcvd_34 << CP_NV_FLAGS_2_END_RCVD_34_SHIFT) | \
+ (discard_35 << CP_NV_FLAGS_2_DISCARD_35_SHIFT) | \
+ (end_rcvd_35 << CP_NV_FLAGS_2_END_RCVD_35_SHIFT) | \
+ (discard_36 << CP_NV_FLAGS_2_DISCARD_36_SHIFT) | \
+ (end_rcvd_36 << CP_NV_FLAGS_2_END_RCVD_36_SHIFT) | \
+ (discard_37 << CP_NV_FLAGS_2_DISCARD_37_SHIFT) | \
+ (end_rcvd_37 << CP_NV_FLAGS_2_END_RCVD_37_SHIFT) | \
+ (discard_38 << CP_NV_FLAGS_2_DISCARD_38_SHIFT) | \
+ (end_rcvd_38 << CP_NV_FLAGS_2_END_RCVD_38_SHIFT) | \
+ (discard_39 << CP_NV_FLAGS_2_DISCARD_39_SHIFT) | \
+ (end_rcvd_39 << CP_NV_FLAGS_2_END_RCVD_39_SHIFT) | \
+ (discard_40 << CP_NV_FLAGS_2_DISCARD_40_SHIFT) | \
+ (end_rcvd_40 << CP_NV_FLAGS_2_END_RCVD_40_SHIFT) | \
+ (discard_41 << CP_NV_FLAGS_2_DISCARD_41_SHIFT) | \
+ (end_rcvd_41 << CP_NV_FLAGS_2_END_RCVD_41_SHIFT) | \
+ (discard_42 << CP_NV_FLAGS_2_DISCARD_42_SHIFT) | \
+ (end_rcvd_42 << CP_NV_FLAGS_2_END_RCVD_42_SHIFT) | \
+ (discard_43 << CP_NV_FLAGS_2_DISCARD_43_SHIFT) | \
+ (end_rcvd_43 << CP_NV_FLAGS_2_END_RCVD_43_SHIFT) | \
+ (discard_44 << CP_NV_FLAGS_2_DISCARD_44_SHIFT) | \
+ (end_rcvd_44 << CP_NV_FLAGS_2_END_RCVD_44_SHIFT) | \
+ (discard_45 << CP_NV_FLAGS_2_DISCARD_45_SHIFT) | \
+ (end_rcvd_45 << CP_NV_FLAGS_2_END_RCVD_45_SHIFT) | \
+ (discard_46 << CP_NV_FLAGS_2_DISCARD_46_SHIFT) | \
+ (end_rcvd_46 << CP_NV_FLAGS_2_END_RCVD_46_SHIFT) | \
+ (discard_47 << CP_NV_FLAGS_2_DISCARD_47_SHIFT) | \
+ (end_rcvd_47 << CP_NV_FLAGS_2_END_RCVD_47_SHIFT))
+
+#define CP_NV_FLAGS_2_GET_DISCARD_32(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_DISCARD_32_MASK) >> CP_NV_FLAGS_2_DISCARD_32_SHIFT)
+#define CP_NV_FLAGS_2_GET_END_RCVD_32(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_END_RCVD_32_MASK) >> CP_NV_FLAGS_2_END_RCVD_32_SHIFT)
+#define CP_NV_FLAGS_2_GET_DISCARD_33(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_DISCARD_33_MASK) >> CP_NV_FLAGS_2_DISCARD_33_SHIFT)
+#define CP_NV_FLAGS_2_GET_END_RCVD_33(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_END_RCVD_33_MASK) >> CP_NV_FLAGS_2_END_RCVD_33_SHIFT)
+#define CP_NV_FLAGS_2_GET_DISCARD_34(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_DISCARD_34_MASK) >> CP_NV_FLAGS_2_DISCARD_34_SHIFT)
+#define CP_NV_FLAGS_2_GET_END_RCVD_34(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_END_RCVD_34_MASK) >> CP_NV_FLAGS_2_END_RCVD_34_SHIFT)
+#define CP_NV_FLAGS_2_GET_DISCARD_35(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_DISCARD_35_MASK) >> CP_NV_FLAGS_2_DISCARD_35_SHIFT)
+#define CP_NV_FLAGS_2_GET_END_RCVD_35(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_END_RCVD_35_MASK) >> CP_NV_FLAGS_2_END_RCVD_35_SHIFT)
+#define CP_NV_FLAGS_2_GET_DISCARD_36(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_DISCARD_36_MASK) >> CP_NV_FLAGS_2_DISCARD_36_SHIFT)
+#define CP_NV_FLAGS_2_GET_END_RCVD_36(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_END_RCVD_36_MASK) >> CP_NV_FLAGS_2_END_RCVD_36_SHIFT)
+#define CP_NV_FLAGS_2_GET_DISCARD_37(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_DISCARD_37_MASK) >> CP_NV_FLAGS_2_DISCARD_37_SHIFT)
+#define CP_NV_FLAGS_2_GET_END_RCVD_37(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_END_RCVD_37_MASK) >> CP_NV_FLAGS_2_END_RCVD_37_SHIFT)
+#define CP_NV_FLAGS_2_GET_DISCARD_38(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_DISCARD_38_MASK) >> CP_NV_FLAGS_2_DISCARD_38_SHIFT)
+#define CP_NV_FLAGS_2_GET_END_RCVD_38(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_END_RCVD_38_MASK) >> CP_NV_FLAGS_2_END_RCVD_38_SHIFT)
+#define CP_NV_FLAGS_2_GET_DISCARD_39(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_DISCARD_39_MASK) >> CP_NV_FLAGS_2_DISCARD_39_SHIFT)
+#define CP_NV_FLAGS_2_GET_END_RCVD_39(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_END_RCVD_39_MASK) >> CP_NV_FLAGS_2_END_RCVD_39_SHIFT)
+#define CP_NV_FLAGS_2_GET_DISCARD_40(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_DISCARD_40_MASK) >> CP_NV_FLAGS_2_DISCARD_40_SHIFT)
+#define CP_NV_FLAGS_2_GET_END_RCVD_40(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_END_RCVD_40_MASK) >> CP_NV_FLAGS_2_END_RCVD_40_SHIFT)
+#define CP_NV_FLAGS_2_GET_DISCARD_41(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_DISCARD_41_MASK) >> CP_NV_FLAGS_2_DISCARD_41_SHIFT)
+#define CP_NV_FLAGS_2_GET_END_RCVD_41(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_END_RCVD_41_MASK) >> CP_NV_FLAGS_2_END_RCVD_41_SHIFT)
+#define CP_NV_FLAGS_2_GET_DISCARD_42(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_DISCARD_42_MASK) >> CP_NV_FLAGS_2_DISCARD_42_SHIFT)
+#define CP_NV_FLAGS_2_GET_END_RCVD_42(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_END_RCVD_42_MASK) >> CP_NV_FLAGS_2_END_RCVD_42_SHIFT)
+#define CP_NV_FLAGS_2_GET_DISCARD_43(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_DISCARD_43_MASK) >> CP_NV_FLAGS_2_DISCARD_43_SHIFT)
+#define CP_NV_FLAGS_2_GET_END_RCVD_43(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_END_RCVD_43_MASK) >> CP_NV_FLAGS_2_END_RCVD_43_SHIFT)
+#define CP_NV_FLAGS_2_GET_DISCARD_44(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_DISCARD_44_MASK) >> CP_NV_FLAGS_2_DISCARD_44_SHIFT)
+#define CP_NV_FLAGS_2_GET_END_RCVD_44(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_END_RCVD_44_MASK) >> CP_NV_FLAGS_2_END_RCVD_44_SHIFT)
+#define CP_NV_FLAGS_2_GET_DISCARD_45(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_DISCARD_45_MASK) >> CP_NV_FLAGS_2_DISCARD_45_SHIFT)
+#define CP_NV_FLAGS_2_GET_END_RCVD_45(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_END_RCVD_45_MASK) >> CP_NV_FLAGS_2_END_RCVD_45_SHIFT)
+#define CP_NV_FLAGS_2_GET_DISCARD_46(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_DISCARD_46_MASK) >> CP_NV_FLAGS_2_DISCARD_46_SHIFT)
+#define CP_NV_FLAGS_2_GET_END_RCVD_46(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_END_RCVD_46_MASK) >> CP_NV_FLAGS_2_END_RCVD_46_SHIFT)
+#define CP_NV_FLAGS_2_GET_DISCARD_47(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_DISCARD_47_MASK) >> CP_NV_FLAGS_2_DISCARD_47_SHIFT)
+#define CP_NV_FLAGS_2_GET_END_RCVD_47(cp_nv_flags_2) \
+ ((cp_nv_flags_2 & CP_NV_FLAGS_2_END_RCVD_47_MASK) >> CP_NV_FLAGS_2_END_RCVD_47_SHIFT)
+
+#define CP_NV_FLAGS_2_SET_DISCARD_32(cp_nv_flags_2_reg, discard_32) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_DISCARD_32_MASK) | (discard_32 << CP_NV_FLAGS_2_DISCARD_32_SHIFT)
+#define CP_NV_FLAGS_2_SET_END_RCVD_32(cp_nv_flags_2_reg, end_rcvd_32) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_END_RCVD_32_MASK) | (end_rcvd_32 << CP_NV_FLAGS_2_END_RCVD_32_SHIFT)
+#define CP_NV_FLAGS_2_SET_DISCARD_33(cp_nv_flags_2_reg, discard_33) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_DISCARD_33_MASK) | (discard_33 << CP_NV_FLAGS_2_DISCARD_33_SHIFT)
+#define CP_NV_FLAGS_2_SET_END_RCVD_33(cp_nv_flags_2_reg, end_rcvd_33) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_END_RCVD_33_MASK) | (end_rcvd_33 << CP_NV_FLAGS_2_END_RCVD_33_SHIFT)
+#define CP_NV_FLAGS_2_SET_DISCARD_34(cp_nv_flags_2_reg, discard_34) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_DISCARD_34_MASK) | (discard_34 << CP_NV_FLAGS_2_DISCARD_34_SHIFT)
+#define CP_NV_FLAGS_2_SET_END_RCVD_34(cp_nv_flags_2_reg, end_rcvd_34) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_END_RCVD_34_MASK) | (end_rcvd_34 << CP_NV_FLAGS_2_END_RCVD_34_SHIFT)
+#define CP_NV_FLAGS_2_SET_DISCARD_35(cp_nv_flags_2_reg, discard_35) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_DISCARD_35_MASK) | (discard_35 << CP_NV_FLAGS_2_DISCARD_35_SHIFT)
+#define CP_NV_FLAGS_2_SET_END_RCVD_35(cp_nv_flags_2_reg, end_rcvd_35) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_END_RCVD_35_MASK) | (end_rcvd_35 << CP_NV_FLAGS_2_END_RCVD_35_SHIFT)
+#define CP_NV_FLAGS_2_SET_DISCARD_36(cp_nv_flags_2_reg, discard_36) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_DISCARD_36_MASK) | (discard_36 << CP_NV_FLAGS_2_DISCARD_36_SHIFT)
+#define CP_NV_FLAGS_2_SET_END_RCVD_36(cp_nv_flags_2_reg, end_rcvd_36) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_END_RCVD_36_MASK) | (end_rcvd_36 << CP_NV_FLAGS_2_END_RCVD_36_SHIFT)
+#define CP_NV_FLAGS_2_SET_DISCARD_37(cp_nv_flags_2_reg, discard_37) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_DISCARD_37_MASK) | (discard_37 << CP_NV_FLAGS_2_DISCARD_37_SHIFT)
+#define CP_NV_FLAGS_2_SET_END_RCVD_37(cp_nv_flags_2_reg, end_rcvd_37) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_END_RCVD_37_MASK) | (end_rcvd_37 << CP_NV_FLAGS_2_END_RCVD_37_SHIFT)
+#define CP_NV_FLAGS_2_SET_DISCARD_38(cp_nv_flags_2_reg, discard_38) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_DISCARD_38_MASK) | (discard_38 << CP_NV_FLAGS_2_DISCARD_38_SHIFT)
+#define CP_NV_FLAGS_2_SET_END_RCVD_38(cp_nv_flags_2_reg, end_rcvd_38) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_END_RCVD_38_MASK) | (end_rcvd_38 << CP_NV_FLAGS_2_END_RCVD_38_SHIFT)
+#define CP_NV_FLAGS_2_SET_DISCARD_39(cp_nv_flags_2_reg, discard_39) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_DISCARD_39_MASK) | (discard_39 << CP_NV_FLAGS_2_DISCARD_39_SHIFT)
+#define CP_NV_FLAGS_2_SET_END_RCVD_39(cp_nv_flags_2_reg, end_rcvd_39) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_END_RCVD_39_MASK) | (end_rcvd_39 << CP_NV_FLAGS_2_END_RCVD_39_SHIFT)
+#define CP_NV_FLAGS_2_SET_DISCARD_40(cp_nv_flags_2_reg, discard_40) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_DISCARD_40_MASK) | (discard_40 << CP_NV_FLAGS_2_DISCARD_40_SHIFT)
+#define CP_NV_FLAGS_2_SET_END_RCVD_40(cp_nv_flags_2_reg, end_rcvd_40) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_END_RCVD_40_MASK) | (end_rcvd_40 << CP_NV_FLAGS_2_END_RCVD_40_SHIFT)
+#define CP_NV_FLAGS_2_SET_DISCARD_41(cp_nv_flags_2_reg, discard_41) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_DISCARD_41_MASK) | (discard_41 << CP_NV_FLAGS_2_DISCARD_41_SHIFT)
+#define CP_NV_FLAGS_2_SET_END_RCVD_41(cp_nv_flags_2_reg, end_rcvd_41) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_END_RCVD_41_MASK) | (end_rcvd_41 << CP_NV_FLAGS_2_END_RCVD_41_SHIFT)
+#define CP_NV_FLAGS_2_SET_DISCARD_42(cp_nv_flags_2_reg, discard_42) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_DISCARD_42_MASK) | (discard_42 << CP_NV_FLAGS_2_DISCARD_42_SHIFT)
+#define CP_NV_FLAGS_2_SET_END_RCVD_42(cp_nv_flags_2_reg, end_rcvd_42) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_END_RCVD_42_MASK) | (end_rcvd_42 << CP_NV_FLAGS_2_END_RCVD_42_SHIFT)
+#define CP_NV_FLAGS_2_SET_DISCARD_43(cp_nv_flags_2_reg, discard_43) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_DISCARD_43_MASK) | (discard_43 << CP_NV_FLAGS_2_DISCARD_43_SHIFT)
+#define CP_NV_FLAGS_2_SET_END_RCVD_43(cp_nv_flags_2_reg, end_rcvd_43) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_END_RCVD_43_MASK) | (end_rcvd_43 << CP_NV_FLAGS_2_END_RCVD_43_SHIFT)
+#define CP_NV_FLAGS_2_SET_DISCARD_44(cp_nv_flags_2_reg, discard_44) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_DISCARD_44_MASK) | (discard_44 << CP_NV_FLAGS_2_DISCARD_44_SHIFT)
+#define CP_NV_FLAGS_2_SET_END_RCVD_44(cp_nv_flags_2_reg, end_rcvd_44) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_END_RCVD_44_MASK) | (end_rcvd_44 << CP_NV_FLAGS_2_END_RCVD_44_SHIFT)
+#define CP_NV_FLAGS_2_SET_DISCARD_45(cp_nv_flags_2_reg, discard_45) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_DISCARD_45_MASK) | (discard_45 << CP_NV_FLAGS_2_DISCARD_45_SHIFT)
+#define CP_NV_FLAGS_2_SET_END_RCVD_45(cp_nv_flags_2_reg, end_rcvd_45) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_END_RCVD_45_MASK) | (end_rcvd_45 << CP_NV_FLAGS_2_END_RCVD_45_SHIFT)
+#define CP_NV_FLAGS_2_SET_DISCARD_46(cp_nv_flags_2_reg, discard_46) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_DISCARD_46_MASK) | (discard_46 << CP_NV_FLAGS_2_DISCARD_46_SHIFT)
+#define CP_NV_FLAGS_2_SET_END_RCVD_46(cp_nv_flags_2_reg, end_rcvd_46) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_END_RCVD_46_MASK) | (end_rcvd_46 << CP_NV_FLAGS_2_END_RCVD_46_SHIFT)
+#define CP_NV_FLAGS_2_SET_DISCARD_47(cp_nv_flags_2_reg, discard_47) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_DISCARD_47_MASK) | (discard_47 << CP_NV_FLAGS_2_DISCARD_47_SHIFT)
+#define CP_NV_FLAGS_2_SET_END_RCVD_47(cp_nv_flags_2_reg, end_rcvd_47) \
+ cp_nv_flags_2_reg = (cp_nv_flags_2_reg & ~CP_NV_FLAGS_2_END_RCVD_47_MASK) | (end_rcvd_47 << CP_NV_FLAGS_2_END_RCVD_47_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_nv_flags_2_t {
+ unsigned int discard_32 : CP_NV_FLAGS_2_DISCARD_32_SIZE;
+ unsigned int end_rcvd_32 : CP_NV_FLAGS_2_END_RCVD_32_SIZE;
+ unsigned int discard_33 : CP_NV_FLAGS_2_DISCARD_33_SIZE;
+ unsigned int end_rcvd_33 : CP_NV_FLAGS_2_END_RCVD_33_SIZE;
+ unsigned int discard_34 : CP_NV_FLAGS_2_DISCARD_34_SIZE;
+ unsigned int end_rcvd_34 : CP_NV_FLAGS_2_END_RCVD_34_SIZE;
+ unsigned int discard_35 : CP_NV_FLAGS_2_DISCARD_35_SIZE;
+ unsigned int end_rcvd_35 : CP_NV_FLAGS_2_END_RCVD_35_SIZE;
+ unsigned int discard_36 : CP_NV_FLAGS_2_DISCARD_36_SIZE;
+ unsigned int end_rcvd_36 : CP_NV_FLAGS_2_END_RCVD_36_SIZE;
+ unsigned int discard_37 : CP_NV_FLAGS_2_DISCARD_37_SIZE;
+ unsigned int end_rcvd_37 : CP_NV_FLAGS_2_END_RCVD_37_SIZE;
+ unsigned int discard_38 : CP_NV_FLAGS_2_DISCARD_38_SIZE;
+ unsigned int end_rcvd_38 : CP_NV_FLAGS_2_END_RCVD_38_SIZE;
+ unsigned int discard_39 : CP_NV_FLAGS_2_DISCARD_39_SIZE;
+ unsigned int end_rcvd_39 : CP_NV_FLAGS_2_END_RCVD_39_SIZE;
+ unsigned int discard_40 : CP_NV_FLAGS_2_DISCARD_40_SIZE;
+ unsigned int end_rcvd_40 : CP_NV_FLAGS_2_END_RCVD_40_SIZE;
+ unsigned int discard_41 : CP_NV_FLAGS_2_DISCARD_41_SIZE;
+ unsigned int end_rcvd_41 : CP_NV_FLAGS_2_END_RCVD_41_SIZE;
+ unsigned int discard_42 : CP_NV_FLAGS_2_DISCARD_42_SIZE;
+ unsigned int end_rcvd_42 : CP_NV_FLAGS_2_END_RCVD_42_SIZE;
+ unsigned int discard_43 : CP_NV_FLAGS_2_DISCARD_43_SIZE;
+ unsigned int end_rcvd_43 : CP_NV_FLAGS_2_END_RCVD_43_SIZE;
+ unsigned int discard_44 : CP_NV_FLAGS_2_DISCARD_44_SIZE;
+ unsigned int end_rcvd_44 : CP_NV_FLAGS_2_END_RCVD_44_SIZE;
+ unsigned int discard_45 : CP_NV_FLAGS_2_DISCARD_45_SIZE;
+ unsigned int end_rcvd_45 : CP_NV_FLAGS_2_END_RCVD_45_SIZE;
+ unsigned int discard_46 : CP_NV_FLAGS_2_DISCARD_46_SIZE;
+ unsigned int end_rcvd_46 : CP_NV_FLAGS_2_END_RCVD_46_SIZE;
+ unsigned int discard_47 : CP_NV_FLAGS_2_DISCARD_47_SIZE;
+ unsigned int end_rcvd_47 : CP_NV_FLAGS_2_END_RCVD_47_SIZE;
+ } cp_nv_flags_2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_nv_flags_2_t {
+ unsigned int end_rcvd_47 : CP_NV_FLAGS_2_END_RCVD_47_SIZE;
+ unsigned int discard_47 : CP_NV_FLAGS_2_DISCARD_47_SIZE;
+ unsigned int end_rcvd_46 : CP_NV_FLAGS_2_END_RCVD_46_SIZE;
+ unsigned int discard_46 : CP_NV_FLAGS_2_DISCARD_46_SIZE;
+ unsigned int end_rcvd_45 : CP_NV_FLAGS_2_END_RCVD_45_SIZE;
+ unsigned int discard_45 : CP_NV_FLAGS_2_DISCARD_45_SIZE;
+ unsigned int end_rcvd_44 : CP_NV_FLAGS_2_END_RCVD_44_SIZE;
+ unsigned int discard_44 : CP_NV_FLAGS_2_DISCARD_44_SIZE;
+ unsigned int end_rcvd_43 : CP_NV_FLAGS_2_END_RCVD_43_SIZE;
+ unsigned int discard_43 : CP_NV_FLAGS_2_DISCARD_43_SIZE;
+ unsigned int end_rcvd_42 : CP_NV_FLAGS_2_END_RCVD_42_SIZE;
+ unsigned int discard_42 : CP_NV_FLAGS_2_DISCARD_42_SIZE;
+ unsigned int end_rcvd_41 : CP_NV_FLAGS_2_END_RCVD_41_SIZE;
+ unsigned int discard_41 : CP_NV_FLAGS_2_DISCARD_41_SIZE;
+ unsigned int end_rcvd_40 : CP_NV_FLAGS_2_END_RCVD_40_SIZE;
+ unsigned int discard_40 : CP_NV_FLAGS_2_DISCARD_40_SIZE;
+ unsigned int end_rcvd_39 : CP_NV_FLAGS_2_END_RCVD_39_SIZE;
+ unsigned int discard_39 : CP_NV_FLAGS_2_DISCARD_39_SIZE;
+ unsigned int end_rcvd_38 : CP_NV_FLAGS_2_END_RCVD_38_SIZE;
+ unsigned int discard_38 : CP_NV_FLAGS_2_DISCARD_38_SIZE;
+ unsigned int end_rcvd_37 : CP_NV_FLAGS_2_END_RCVD_37_SIZE;
+ unsigned int discard_37 : CP_NV_FLAGS_2_DISCARD_37_SIZE;
+ unsigned int end_rcvd_36 : CP_NV_FLAGS_2_END_RCVD_36_SIZE;
+ unsigned int discard_36 : CP_NV_FLAGS_2_DISCARD_36_SIZE;
+ unsigned int end_rcvd_35 : CP_NV_FLAGS_2_END_RCVD_35_SIZE;
+ unsigned int discard_35 : CP_NV_FLAGS_2_DISCARD_35_SIZE;
+ unsigned int end_rcvd_34 : CP_NV_FLAGS_2_END_RCVD_34_SIZE;
+ unsigned int discard_34 : CP_NV_FLAGS_2_DISCARD_34_SIZE;
+ unsigned int end_rcvd_33 : CP_NV_FLAGS_2_END_RCVD_33_SIZE;
+ unsigned int discard_33 : CP_NV_FLAGS_2_DISCARD_33_SIZE;
+ unsigned int end_rcvd_32 : CP_NV_FLAGS_2_END_RCVD_32_SIZE;
+ unsigned int discard_32 : CP_NV_FLAGS_2_DISCARD_32_SIZE;
+ } cp_nv_flags_2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_nv_flags_2_t f;
+} cp_nv_flags_2_u;
+
+
+/*
+ * CP_NV_FLAGS_3 struct
+ */
+
+#define CP_NV_FLAGS_3_DISCARD_48_SIZE 1
+#define CP_NV_FLAGS_3_END_RCVD_48_SIZE 1
+#define CP_NV_FLAGS_3_DISCARD_49_SIZE 1
+#define CP_NV_FLAGS_3_END_RCVD_49_SIZE 1
+#define CP_NV_FLAGS_3_DISCARD_50_SIZE 1
+#define CP_NV_FLAGS_3_END_RCVD_50_SIZE 1
+#define CP_NV_FLAGS_3_DISCARD_51_SIZE 1
+#define CP_NV_FLAGS_3_END_RCVD_51_SIZE 1
+#define CP_NV_FLAGS_3_DISCARD_52_SIZE 1
+#define CP_NV_FLAGS_3_END_RCVD_52_SIZE 1
+#define CP_NV_FLAGS_3_DISCARD_53_SIZE 1
+#define CP_NV_FLAGS_3_END_RCVD_53_SIZE 1
+#define CP_NV_FLAGS_3_DISCARD_54_SIZE 1
+#define CP_NV_FLAGS_3_END_RCVD_54_SIZE 1
+#define CP_NV_FLAGS_3_DISCARD_55_SIZE 1
+#define CP_NV_FLAGS_3_END_RCVD_55_SIZE 1
+#define CP_NV_FLAGS_3_DISCARD_56_SIZE 1
+#define CP_NV_FLAGS_3_END_RCVD_56_SIZE 1
+#define CP_NV_FLAGS_3_DISCARD_57_SIZE 1
+#define CP_NV_FLAGS_3_END_RCVD_57_SIZE 1
+#define CP_NV_FLAGS_3_DISCARD_58_SIZE 1
+#define CP_NV_FLAGS_3_END_RCVD_58_SIZE 1
+#define CP_NV_FLAGS_3_DISCARD_59_SIZE 1
+#define CP_NV_FLAGS_3_END_RCVD_59_SIZE 1
+#define CP_NV_FLAGS_3_DISCARD_60_SIZE 1
+#define CP_NV_FLAGS_3_END_RCVD_60_SIZE 1
+#define CP_NV_FLAGS_3_DISCARD_61_SIZE 1
+#define CP_NV_FLAGS_3_END_RCVD_61_SIZE 1
+#define CP_NV_FLAGS_3_DISCARD_62_SIZE 1
+#define CP_NV_FLAGS_3_END_RCVD_62_SIZE 1
+#define CP_NV_FLAGS_3_DISCARD_63_SIZE 1
+#define CP_NV_FLAGS_3_END_RCVD_63_SIZE 1
+
+#define CP_NV_FLAGS_3_DISCARD_48_SHIFT 0
+#define CP_NV_FLAGS_3_END_RCVD_48_SHIFT 1
+#define CP_NV_FLAGS_3_DISCARD_49_SHIFT 2
+#define CP_NV_FLAGS_3_END_RCVD_49_SHIFT 3
+#define CP_NV_FLAGS_3_DISCARD_50_SHIFT 4
+#define CP_NV_FLAGS_3_END_RCVD_50_SHIFT 5
+#define CP_NV_FLAGS_3_DISCARD_51_SHIFT 6
+#define CP_NV_FLAGS_3_END_RCVD_51_SHIFT 7
+#define CP_NV_FLAGS_3_DISCARD_52_SHIFT 8
+#define CP_NV_FLAGS_3_END_RCVD_52_SHIFT 9
+#define CP_NV_FLAGS_3_DISCARD_53_SHIFT 10
+#define CP_NV_FLAGS_3_END_RCVD_53_SHIFT 11
+#define CP_NV_FLAGS_3_DISCARD_54_SHIFT 12
+#define CP_NV_FLAGS_3_END_RCVD_54_SHIFT 13
+#define CP_NV_FLAGS_3_DISCARD_55_SHIFT 14
+#define CP_NV_FLAGS_3_END_RCVD_55_SHIFT 15
+#define CP_NV_FLAGS_3_DISCARD_56_SHIFT 16
+#define CP_NV_FLAGS_3_END_RCVD_56_SHIFT 17
+#define CP_NV_FLAGS_3_DISCARD_57_SHIFT 18
+#define CP_NV_FLAGS_3_END_RCVD_57_SHIFT 19
+#define CP_NV_FLAGS_3_DISCARD_58_SHIFT 20
+#define CP_NV_FLAGS_3_END_RCVD_58_SHIFT 21
+#define CP_NV_FLAGS_3_DISCARD_59_SHIFT 22
+#define CP_NV_FLAGS_3_END_RCVD_59_SHIFT 23
+#define CP_NV_FLAGS_3_DISCARD_60_SHIFT 24
+#define CP_NV_FLAGS_3_END_RCVD_60_SHIFT 25
+#define CP_NV_FLAGS_3_DISCARD_61_SHIFT 26
+#define CP_NV_FLAGS_3_END_RCVD_61_SHIFT 27
+#define CP_NV_FLAGS_3_DISCARD_62_SHIFT 28
+#define CP_NV_FLAGS_3_END_RCVD_62_SHIFT 29
+#define CP_NV_FLAGS_3_DISCARD_63_SHIFT 30
+#define CP_NV_FLAGS_3_END_RCVD_63_SHIFT 31
+
+#define CP_NV_FLAGS_3_DISCARD_48_MASK 0x00000001
+#define CP_NV_FLAGS_3_END_RCVD_48_MASK 0x00000002
+#define CP_NV_FLAGS_3_DISCARD_49_MASK 0x00000004
+#define CP_NV_FLAGS_3_END_RCVD_49_MASK 0x00000008
+#define CP_NV_FLAGS_3_DISCARD_50_MASK 0x00000010
+#define CP_NV_FLAGS_3_END_RCVD_50_MASK 0x00000020
+#define CP_NV_FLAGS_3_DISCARD_51_MASK 0x00000040
+#define CP_NV_FLAGS_3_END_RCVD_51_MASK 0x00000080
+#define CP_NV_FLAGS_3_DISCARD_52_MASK 0x00000100
+#define CP_NV_FLAGS_3_END_RCVD_52_MASK 0x00000200
+#define CP_NV_FLAGS_3_DISCARD_53_MASK 0x00000400
+#define CP_NV_FLAGS_3_END_RCVD_53_MASK 0x00000800
+#define CP_NV_FLAGS_3_DISCARD_54_MASK 0x00001000
+#define CP_NV_FLAGS_3_END_RCVD_54_MASK 0x00002000
+#define CP_NV_FLAGS_3_DISCARD_55_MASK 0x00004000
+#define CP_NV_FLAGS_3_END_RCVD_55_MASK 0x00008000
+#define CP_NV_FLAGS_3_DISCARD_56_MASK 0x00010000
+#define CP_NV_FLAGS_3_END_RCVD_56_MASK 0x00020000
+#define CP_NV_FLAGS_3_DISCARD_57_MASK 0x00040000
+#define CP_NV_FLAGS_3_END_RCVD_57_MASK 0x00080000
+#define CP_NV_FLAGS_3_DISCARD_58_MASK 0x00100000
+#define CP_NV_FLAGS_3_END_RCVD_58_MASK 0x00200000
+#define CP_NV_FLAGS_3_DISCARD_59_MASK 0x00400000
+#define CP_NV_FLAGS_3_END_RCVD_59_MASK 0x00800000
+#define CP_NV_FLAGS_3_DISCARD_60_MASK 0x01000000
+#define CP_NV_FLAGS_3_END_RCVD_60_MASK 0x02000000
+#define CP_NV_FLAGS_3_DISCARD_61_MASK 0x04000000
+#define CP_NV_FLAGS_3_END_RCVD_61_MASK 0x08000000
+#define CP_NV_FLAGS_3_DISCARD_62_MASK 0x10000000
+#define CP_NV_FLAGS_3_END_RCVD_62_MASK 0x20000000
+#define CP_NV_FLAGS_3_DISCARD_63_MASK 0x40000000
+#define CP_NV_FLAGS_3_END_RCVD_63_MASK 0x80000000
+
+#define CP_NV_FLAGS_3_MASK \
+ (CP_NV_FLAGS_3_DISCARD_48_MASK | \
+ CP_NV_FLAGS_3_END_RCVD_48_MASK | \
+ CP_NV_FLAGS_3_DISCARD_49_MASK | \
+ CP_NV_FLAGS_3_END_RCVD_49_MASK | \
+ CP_NV_FLAGS_3_DISCARD_50_MASK | \
+ CP_NV_FLAGS_3_END_RCVD_50_MASK | \
+ CP_NV_FLAGS_3_DISCARD_51_MASK | \
+ CP_NV_FLAGS_3_END_RCVD_51_MASK | \
+ CP_NV_FLAGS_3_DISCARD_52_MASK | \
+ CP_NV_FLAGS_3_END_RCVD_52_MASK | \
+ CP_NV_FLAGS_3_DISCARD_53_MASK | \
+ CP_NV_FLAGS_3_END_RCVD_53_MASK | \
+ CP_NV_FLAGS_3_DISCARD_54_MASK | \
+ CP_NV_FLAGS_3_END_RCVD_54_MASK | \
+ CP_NV_FLAGS_3_DISCARD_55_MASK | \
+ CP_NV_FLAGS_3_END_RCVD_55_MASK | \
+ CP_NV_FLAGS_3_DISCARD_56_MASK | \
+ CP_NV_FLAGS_3_END_RCVD_56_MASK | \
+ CP_NV_FLAGS_3_DISCARD_57_MASK | \
+ CP_NV_FLAGS_3_END_RCVD_57_MASK | \
+ CP_NV_FLAGS_3_DISCARD_58_MASK | \
+ CP_NV_FLAGS_3_END_RCVD_58_MASK | \
+ CP_NV_FLAGS_3_DISCARD_59_MASK | \
+ CP_NV_FLAGS_3_END_RCVD_59_MASK | \
+ CP_NV_FLAGS_3_DISCARD_60_MASK | \
+ CP_NV_FLAGS_3_END_RCVD_60_MASK | \
+ CP_NV_FLAGS_3_DISCARD_61_MASK | \
+ CP_NV_FLAGS_3_END_RCVD_61_MASK | \
+ CP_NV_FLAGS_3_DISCARD_62_MASK | \
+ CP_NV_FLAGS_3_END_RCVD_62_MASK | \
+ CP_NV_FLAGS_3_DISCARD_63_MASK | \
+ CP_NV_FLAGS_3_END_RCVD_63_MASK)
+
+#define CP_NV_FLAGS_3(discard_48, end_rcvd_48, discard_49, end_rcvd_49, discard_50, end_rcvd_50, discard_51, end_rcvd_51, discard_52, end_rcvd_52, discard_53, end_rcvd_53, discard_54, end_rcvd_54, discard_55, end_rcvd_55, discard_56, end_rcvd_56, discard_57, end_rcvd_57, discard_58, end_rcvd_58, discard_59, end_rcvd_59, discard_60, end_rcvd_60, discard_61, end_rcvd_61, discard_62, end_rcvd_62, discard_63, end_rcvd_63) \
+ ((discard_48 << CP_NV_FLAGS_3_DISCARD_48_SHIFT) | \
+ (end_rcvd_48 << CP_NV_FLAGS_3_END_RCVD_48_SHIFT) | \
+ (discard_49 << CP_NV_FLAGS_3_DISCARD_49_SHIFT) | \
+ (end_rcvd_49 << CP_NV_FLAGS_3_END_RCVD_49_SHIFT) | \
+ (discard_50 << CP_NV_FLAGS_3_DISCARD_50_SHIFT) | \
+ (end_rcvd_50 << CP_NV_FLAGS_3_END_RCVD_50_SHIFT) | \
+ (discard_51 << CP_NV_FLAGS_3_DISCARD_51_SHIFT) | \
+ (end_rcvd_51 << CP_NV_FLAGS_3_END_RCVD_51_SHIFT) | \
+ (discard_52 << CP_NV_FLAGS_3_DISCARD_52_SHIFT) | \
+ (end_rcvd_52 << CP_NV_FLAGS_3_END_RCVD_52_SHIFT) | \
+ (discard_53 << CP_NV_FLAGS_3_DISCARD_53_SHIFT) | \
+ (end_rcvd_53 << CP_NV_FLAGS_3_END_RCVD_53_SHIFT) | \
+ (discard_54 << CP_NV_FLAGS_3_DISCARD_54_SHIFT) | \
+ (end_rcvd_54 << CP_NV_FLAGS_3_END_RCVD_54_SHIFT) | \
+ (discard_55 << CP_NV_FLAGS_3_DISCARD_55_SHIFT) | \
+ (end_rcvd_55 << CP_NV_FLAGS_3_END_RCVD_55_SHIFT) | \
+ (discard_56 << CP_NV_FLAGS_3_DISCARD_56_SHIFT) | \
+ (end_rcvd_56 << CP_NV_FLAGS_3_END_RCVD_56_SHIFT) | \
+ (discard_57 << CP_NV_FLAGS_3_DISCARD_57_SHIFT) | \
+ (end_rcvd_57 << CP_NV_FLAGS_3_END_RCVD_57_SHIFT) | \
+ (discard_58 << CP_NV_FLAGS_3_DISCARD_58_SHIFT) | \
+ (end_rcvd_58 << CP_NV_FLAGS_3_END_RCVD_58_SHIFT) | \
+ (discard_59 << CP_NV_FLAGS_3_DISCARD_59_SHIFT) | \
+ (end_rcvd_59 << CP_NV_FLAGS_3_END_RCVD_59_SHIFT) | \
+ (discard_60 << CP_NV_FLAGS_3_DISCARD_60_SHIFT) | \
+ (end_rcvd_60 << CP_NV_FLAGS_3_END_RCVD_60_SHIFT) | \
+ (discard_61 << CP_NV_FLAGS_3_DISCARD_61_SHIFT) | \
+ (end_rcvd_61 << CP_NV_FLAGS_3_END_RCVD_61_SHIFT) | \
+ (discard_62 << CP_NV_FLAGS_3_DISCARD_62_SHIFT) | \
+ (end_rcvd_62 << CP_NV_FLAGS_3_END_RCVD_62_SHIFT) | \
+ (discard_63 << CP_NV_FLAGS_3_DISCARD_63_SHIFT) | \
+ (end_rcvd_63 << CP_NV_FLAGS_3_END_RCVD_63_SHIFT))
+
+#define CP_NV_FLAGS_3_GET_DISCARD_48(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_DISCARD_48_MASK) >> CP_NV_FLAGS_3_DISCARD_48_SHIFT)
+#define CP_NV_FLAGS_3_GET_END_RCVD_48(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_END_RCVD_48_MASK) >> CP_NV_FLAGS_3_END_RCVD_48_SHIFT)
+#define CP_NV_FLAGS_3_GET_DISCARD_49(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_DISCARD_49_MASK) >> CP_NV_FLAGS_3_DISCARD_49_SHIFT)
+#define CP_NV_FLAGS_3_GET_END_RCVD_49(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_END_RCVD_49_MASK) >> CP_NV_FLAGS_3_END_RCVD_49_SHIFT)
+#define CP_NV_FLAGS_3_GET_DISCARD_50(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_DISCARD_50_MASK) >> CP_NV_FLAGS_3_DISCARD_50_SHIFT)
+#define CP_NV_FLAGS_3_GET_END_RCVD_50(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_END_RCVD_50_MASK) >> CP_NV_FLAGS_3_END_RCVD_50_SHIFT)
+#define CP_NV_FLAGS_3_GET_DISCARD_51(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_DISCARD_51_MASK) >> CP_NV_FLAGS_3_DISCARD_51_SHIFT)
+#define CP_NV_FLAGS_3_GET_END_RCVD_51(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_END_RCVD_51_MASK) >> CP_NV_FLAGS_3_END_RCVD_51_SHIFT)
+#define CP_NV_FLAGS_3_GET_DISCARD_52(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_DISCARD_52_MASK) >> CP_NV_FLAGS_3_DISCARD_52_SHIFT)
+#define CP_NV_FLAGS_3_GET_END_RCVD_52(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_END_RCVD_52_MASK) >> CP_NV_FLAGS_3_END_RCVD_52_SHIFT)
+#define CP_NV_FLAGS_3_GET_DISCARD_53(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_DISCARD_53_MASK) >> CP_NV_FLAGS_3_DISCARD_53_SHIFT)
+#define CP_NV_FLAGS_3_GET_END_RCVD_53(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_END_RCVD_53_MASK) >> CP_NV_FLAGS_3_END_RCVD_53_SHIFT)
+#define CP_NV_FLAGS_3_GET_DISCARD_54(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_DISCARD_54_MASK) >> CP_NV_FLAGS_3_DISCARD_54_SHIFT)
+#define CP_NV_FLAGS_3_GET_END_RCVD_54(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_END_RCVD_54_MASK) >> CP_NV_FLAGS_3_END_RCVD_54_SHIFT)
+#define CP_NV_FLAGS_3_GET_DISCARD_55(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_DISCARD_55_MASK) >> CP_NV_FLAGS_3_DISCARD_55_SHIFT)
+#define CP_NV_FLAGS_3_GET_END_RCVD_55(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_END_RCVD_55_MASK) >> CP_NV_FLAGS_3_END_RCVD_55_SHIFT)
+#define CP_NV_FLAGS_3_GET_DISCARD_56(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_DISCARD_56_MASK) >> CP_NV_FLAGS_3_DISCARD_56_SHIFT)
+#define CP_NV_FLAGS_3_GET_END_RCVD_56(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_END_RCVD_56_MASK) >> CP_NV_FLAGS_3_END_RCVD_56_SHIFT)
+#define CP_NV_FLAGS_3_GET_DISCARD_57(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_DISCARD_57_MASK) >> CP_NV_FLAGS_3_DISCARD_57_SHIFT)
+#define CP_NV_FLAGS_3_GET_END_RCVD_57(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_END_RCVD_57_MASK) >> CP_NV_FLAGS_3_END_RCVD_57_SHIFT)
+#define CP_NV_FLAGS_3_GET_DISCARD_58(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_DISCARD_58_MASK) >> CP_NV_FLAGS_3_DISCARD_58_SHIFT)
+#define CP_NV_FLAGS_3_GET_END_RCVD_58(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_END_RCVD_58_MASK) >> CP_NV_FLAGS_3_END_RCVD_58_SHIFT)
+#define CP_NV_FLAGS_3_GET_DISCARD_59(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_DISCARD_59_MASK) >> CP_NV_FLAGS_3_DISCARD_59_SHIFT)
+#define CP_NV_FLAGS_3_GET_END_RCVD_59(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_END_RCVD_59_MASK) >> CP_NV_FLAGS_3_END_RCVD_59_SHIFT)
+#define CP_NV_FLAGS_3_GET_DISCARD_60(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_DISCARD_60_MASK) >> CP_NV_FLAGS_3_DISCARD_60_SHIFT)
+#define CP_NV_FLAGS_3_GET_END_RCVD_60(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_END_RCVD_60_MASK) >> CP_NV_FLAGS_3_END_RCVD_60_SHIFT)
+#define CP_NV_FLAGS_3_GET_DISCARD_61(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_DISCARD_61_MASK) >> CP_NV_FLAGS_3_DISCARD_61_SHIFT)
+#define CP_NV_FLAGS_3_GET_END_RCVD_61(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_END_RCVD_61_MASK) >> CP_NV_FLAGS_3_END_RCVD_61_SHIFT)
+#define CP_NV_FLAGS_3_GET_DISCARD_62(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_DISCARD_62_MASK) >> CP_NV_FLAGS_3_DISCARD_62_SHIFT)
+#define CP_NV_FLAGS_3_GET_END_RCVD_62(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_END_RCVD_62_MASK) >> CP_NV_FLAGS_3_END_RCVD_62_SHIFT)
+#define CP_NV_FLAGS_3_GET_DISCARD_63(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_DISCARD_63_MASK) >> CP_NV_FLAGS_3_DISCARD_63_SHIFT)
+#define CP_NV_FLAGS_3_GET_END_RCVD_63(cp_nv_flags_3) \
+ ((cp_nv_flags_3 & CP_NV_FLAGS_3_END_RCVD_63_MASK) >> CP_NV_FLAGS_3_END_RCVD_63_SHIFT)
+
+#define CP_NV_FLAGS_3_SET_DISCARD_48(cp_nv_flags_3_reg, discard_48) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_DISCARD_48_MASK) | (discard_48 << CP_NV_FLAGS_3_DISCARD_48_SHIFT)
+#define CP_NV_FLAGS_3_SET_END_RCVD_48(cp_nv_flags_3_reg, end_rcvd_48) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_END_RCVD_48_MASK) | (end_rcvd_48 << CP_NV_FLAGS_3_END_RCVD_48_SHIFT)
+#define CP_NV_FLAGS_3_SET_DISCARD_49(cp_nv_flags_3_reg, discard_49) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_DISCARD_49_MASK) | (discard_49 << CP_NV_FLAGS_3_DISCARD_49_SHIFT)
+#define CP_NV_FLAGS_3_SET_END_RCVD_49(cp_nv_flags_3_reg, end_rcvd_49) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_END_RCVD_49_MASK) | (end_rcvd_49 << CP_NV_FLAGS_3_END_RCVD_49_SHIFT)
+#define CP_NV_FLAGS_3_SET_DISCARD_50(cp_nv_flags_3_reg, discard_50) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_DISCARD_50_MASK) | (discard_50 << CP_NV_FLAGS_3_DISCARD_50_SHIFT)
+#define CP_NV_FLAGS_3_SET_END_RCVD_50(cp_nv_flags_3_reg, end_rcvd_50) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_END_RCVD_50_MASK) | (end_rcvd_50 << CP_NV_FLAGS_3_END_RCVD_50_SHIFT)
+#define CP_NV_FLAGS_3_SET_DISCARD_51(cp_nv_flags_3_reg, discard_51) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_DISCARD_51_MASK) | (discard_51 << CP_NV_FLAGS_3_DISCARD_51_SHIFT)
+#define CP_NV_FLAGS_3_SET_END_RCVD_51(cp_nv_flags_3_reg, end_rcvd_51) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_END_RCVD_51_MASK) | (end_rcvd_51 << CP_NV_FLAGS_3_END_RCVD_51_SHIFT)
+#define CP_NV_FLAGS_3_SET_DISCARD_52(cp_nv_flags_3_reg, discard_52) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_DISCARD_52_MASK) | (discard_52 << CP_NV_FLAGS_3_DISCARD_52_SHIFT)
+#define CP_NV_FLAGS_3_SET_END_RCVD_52(cp_nv_flags_3_reg, end_rcvd_52) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_END_RCVD_52_MASK) | (end_rcvd_52 << CP_NV_FLAGS_3_END_RCVD_52_SHIFT)
+#define CP_NV_FLAGS_3_SET_DISCARD_53(cp_nv_flags_3_reg, discard_53) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_DISCARD_53_MASK) | (discard_53 << CP_NV_FLAGS_3_DISCARD_53_SHIFT)
+#define CP_NV_FLAGS_3_SET_END_RCVD_53(cp_nv_flags_3_reg, end_rcvd_53) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_END_RCVD_53_MASK) | (end_rcvd_53 << CP_NV_FLAGS_3_END_RCVD_53_SHIFT)
+#define CP_NV_FLAGS_3_SET_DISCARD_54(cp_nv_flags_3_reg, discard_54) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_DISCARD_54_MASK) | (discard_54 << CP_NV_FLAGS_3_DISCARD_54_SHIFT)
+#define CP_NV_FLAGS_3_SET_END_RCVD_54(cp_nv_flags_3_reg, end_rcvd_54) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_END_RCVD_54_MASK) | (end_rcvd_54 << CP_NV_FLAGS_3_END_RCVD_54_SHIFT)
+#define CP_NV_FLAGS_3_SET_DISCARD_55(cp_nv_flags_3_reg, discard_55) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_DISCARD_55_MASK) | (discard_55 << CP_NV_FLAGS_3_DISCARD_55_SHIFT)
+#define CP_NV_FLAGS_3_SET_END_RCVD_55(cp_nv_flags_3_reg, end_rcvd_55) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_END_RCVD_55_MASK) | (end_rcvd_55 << CP_NV_FLAGS_3_END_RCVD_55_SHIFT)
+#define CP_NV_FLAGS_3_SET_DISCARD_56(cp_nv_flags_3_reg, discard_56) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_DISCARD_56_MASK) | (discard_56 << CP_NV_FLAGS_3_DISCARD_56_SHIFT)
+#define CP_NV_FLAGS_3_SET_END_RCVD_56(cp_nv_flags_3_reg, end_rcvd_56) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_END_RCVD_56_MASK) | (end_rcvd_56 << CP_NV_FLAGS_3_END_RCVD_56_SHIFT)
+#define CP_NV_FLAGS_3_SET_DISCARD_57(cp_nv_flags_3_reg, discard_57) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_DISCARD_57_MASK) | (discard_57 << CP_NV_FLAGS_3_DISCARD_57_SHIFT)
+#define CP_NV_FLAGS_3_SET_END_RCVD_57(cp_nv_flags_3_reg, end_rcvd_57) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_END_RCVD_57_MASK) | (end_rcvd_57 << CP_NV_FLAGS_3_END_RCVD_57_SHIFT)
+#define CP_NV_FLAGS_3_SET_DISCARD_58(cp_nv_flags_3_reg, discard_58) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_DISCARD_58_MASK) | (discard_58 << CP_NV_FLAGS_3_DISCARD_58_SHIFT)
+#define CP_NV_FLAGS_3_SET_END_RCVD_58(cp_nv_flags_3_reg, end_rcvd_58) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_END_RCVD_58_MASK) | (end_rcvd_58 << CP_NV_FLAGS_3_END_RCVD_58_SHIFT)
+#define CP_NV_FLAGS_3_SET_DISCARD_59(cp_nv_flags_3_reg, discard_59) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_DISCARD_59_MASK) | (discard_59 << CP_NV_FLAGS_3_DISCARD_59_SHIFT)
+#define CP_NV_FLAGS_3_SET_END_RCVD_59(cp_nv_flags_3_reg, end_rcvd_59) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_END_RCVD_59_MASK) | (end_rcvd_59 << CP_NV_FLAGS_3_END_RCVD_59_SHIFT)
+#define CP_NV_FLAGS_3_SET_DISCARD_60(cp_nv_flags_3_reg, discard_60) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_DISCARD_60_MASK) | (discard_60 << CP_NV_FLAGS_3_DISCARD_60_SHIFT)
+#define CP_NV_FLAGS_3_SET_END_RCVD_60(cp_nv_flags_3_reg, end_rcvd_60) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_END_RCVD_60_MASK) | (end_rcvd_60 << CP_NV_FLAGS_3_END_RCVD_60_SHIFT)
+#define CP_NV_FLAGS_3_SET_DISCARD_61(cp_nv_flags_3_reg, discard_61) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_DISCARD_61_MASK) | (discard_61 << CP_NV_FLAGS_3_DISCARD_61_SHIFT)
+#define CP_NV_FLAGS_3_SET_END_RCVD_61(cp_nv_flags_3_reg, end_rcvd_61) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_END_RCVD_61_MASK) | (end_rcvd_61 << CP_NV_FLAGS_3_END_RCVD_61_SHIFT)
+#define CP_NV_FLAGS_3_SET_DISCARD_62(cp_nv_flags_3_reg, discard_62) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_DISCARD_62_MASK) | (discard_62 << CP_NV_FLAGS_3_DISCARD_62_SHIFT)
+#define CP_NV_FLAGS_3_SET_END_RCVD_62(cp_nv_flags_3_reg, end_rcvd_62) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_END_RCVD_62_MASK) | (end_rcvd_62 << CP_NV_FLAGS_3_END_RCVD_62_SHIFT)
+#define CP_NV_FLAGS_3_SET_DISCARD_63(cp_nv_flags_3_reg, discard_63) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_DISCARD_63_MASK) | (discard_63 << CP_NV_FLAGS_3_DISCARD_63_SHIFT)
+#define CP_NV_FLAGS_3_SET_END_RCVD_63(cp_nv_flags_3_reg, end_rcvd_63) \
+ cp_nv_flags_3_reg = (cp_nv_flags_3_reg & ~CP_NV_FLAGS_3_END_RCVD_63_MASK) | (end_rcvd_63 << CP_NV_FLAGS_3_END_RCVD_63_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_nv_flags_3_t {
+ unsigned int discard_48 : CP_NV_FLAGS_3_DISCARD_48_SIZE;
+ unsigned int end_rcvd_48 : CP_NV_FLAGS_3_END_RCVD_48_SIZE;
+ unsigned int discard_49 : CP_NV_FLAGS_3_DISCARD_49_SIZE;
+ unsigned int end_rcvd_49 : CP_NV_FLAGS_3_END_RCVD_49_SIZE;
+ unsigned int discard_50 : CP_NV_FLAGS_3_DISCARD_50_SIZE;
+ unsigned int end_rcvd_50 : CP_NV_FLAGS_3_END_RCVD_50_SIZE;
+ unsigned int discard_51 : CP_NV_FLAGS_3_DISCARD_51_SIZE;
+ unsigned int end_rcvd_51 : CP_NV_FLAGS_3_END_RCVD_51_SIZE;
+ unsigned int discard_52 : CP_NV_FLAGS_3_DISCARD_52_SIZE;
+ unsigned int end_rcvd_52 : CP_NV_FLAGS_3_END_RCVD_52_SIZE;
+ unsigned int discard_53 : CP_NV_FLAGS_3_DISCARD_53_SIZE;
+ unsigned int end_rcvd_53 : CP_NV_FLAGS_3_END_RCVD_53_SIZE;
+ unsigned int discard_54 : CP_NV_FLAGS_3_DISCARD_54_SIZE;
+ unsigned int end_rcvd_54 : CP_NV_FLAGS_3_END_RCVD_54_SIZE;
+ unsigned int discard_55 : CP_NV_FLAGS_3_DISCARD_55_SIZE;
+ unsigned int end_rcvd_55 : CP_NV_FLAGS_3_END_RCVD_55_SIZE;
+ unsigned int discard_56 : CP_NV_FLAGS_3_DISCARD_56_SIZE;
+ unsigned int end_rcvd_56 : CP_NV_FLAGS_3_END_RCVD_56_SIZE;
+ unsigned int discard_57 : CP_NV_FLAGS_3_DISCARD_57_SIZE;
+ unsigned int end_rcvd_57 : CP_NV_FLAGS_3_END_RCVD_57_SIZE;
+ unsigned int discard_58 : CP_NV_FLAGS_3_DISCARD_58_SIZE;
+ unsigned int end_rcvd_58 : CP_NV_FLAGS_3_END_RCVD_58_SIZE;
+ unsigned int discard_59 : CP_NV_FLAGS_3_DISCARD_59_SIZE;
+ unsigned int end_rcvd_59 : CP_NV_FLAGS_3_END_RCVD_59_SIZE;
+ unsigned int discard_60 : CP_NV_FLAGS_3_DISCARD_60_SIZE;
+ unsigned int end_rcvd_60 : CP_NV_FLAGS_3_END_RCVD_60_SIZE;
+ unsigned int discard_61 : CP_NV_FLAGS_3_DISCARD_61_SIZE;
+ unsigned int end_rcvd_61 : CP_NV_FLAGS_3_END_RCVD_61_SIZE;
+ unsigned int discard_62 : CP_NV_FLAGS_3_DISCARD_62_SIZE;
+ unsigned int end_rcvd_62 : CP_NV_FLAGS_3_END_RCVD_62_SIZE;
+ unsigned int discard_63 : CP_NV_FLAGS_3_DISCARD_63_SIZE;
+ unsigned int end_rcvd_63 : CP_NV_FLAGS_3_END_RCVD_63_SIZE;
+ } cp_nv_flags_3_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_nv_flags_3_t {
+ unsigned int end_rcvd_63 : CP_NV_FLAGS_3_END_RCVD_63_SIZE;
+ unsigned int discard_63 : CP_NV_FLAGS_3_DISCARD_63_SIZE;
+ unsigned int end_rcvd_62 : CP_NV_FLAGS_3_END_RCVD_62_SIZE;
+ unsigned int discard_62 : CP_NV_FLAGS_3_DISCARD_62_SIZE;
+ unsigned int end_rcvd_61 : CP_NV_FLAGS_3_END_RCVD_61_SIZE;
+ unsigned int discard_61 : CP_NV_FLAGS_3_DISCARD_61_SIZE;
+ unsigned int end_rcvd_60 : CP_NV_FLAGS_3_END_RCVD_60_SIZE;
+ unsigned int discard_60 : CP_NV_FLAGS_3_DISCARD_60_SIZE;
+ unsigned int end_rcvd_59 : CP_NV_FLAGS_3_END_RCVD_59_SIZE;
+ unsigned int discard_59 : CP_NV_FLAGS_3_DISCARD_59_SIZE;
+ unsigned int end_rcvd_58 : CP_NV_FLAGS_3_END_RCVD_58_SIZE;
+ unsigned int discard_58 : CP_NV_FLAGS_3_DISCARD_58_SIZE;
+ unsigned int end_rcvd_57 : CP_NV_FLAGS_3_END_RCVD_57_SIZE;
+ unsigned int discard_57 : CP_NV_FLAGS_3_DISCARD_57_SIZE;
+ unsigned int end_rcvd_56 : CP_NV_FLAGS_3_END_RCVD_56_SIZE;
+ unsigned int discard_56 : CP_NV_FLAGS_3_DISCARD_56_SIZE;
+ unsigned int end_rcvd_55 : CP_NV_FLAGS_3_END_RCVD_55_SIZE;
+ unsigned int discard_55 : CP_NV_FLAGS_3_DISCARD_55_SIZE;
+ unsigned int end_rcvd_54 : CP_NV_FLAGS_3_END_RCVD_54_SIZE;
+ unsigned int discard_54 : CP_NV_FLAGS_3_DISCARD_54_SIZE;
+ unsigned int end_rcvd_53 : CP_NV_FLAGS_3_END_RCVD_53_SIZE;
+ unsigned int discard_53 : CP_NV_FLAGS_3_DISCARD_53_SIZE;
+ unsigned int end_rcvd_52 : CP_NV_FLAGS_3_END_RCVD_52_SIZE;
+ unsigned int discard_52 : CP_NV_FLAGS_3_DISCARD_52_SIZE;
+ unsigned int end_rcvd_51 : CP_NV_FLAGS_3_END_RCVD_51_SIZE;
+ unsigned int discard_51 : CP_NV_FLAGS_3_DISCARD_51_SIZE;
+ unsigned int end_rcvd_50 : CP_NV_FLAGS_3_END_RCVD_50_SIZE;
+ unsigned int discard_50 : CP_NV_FLAGS_3_DISCARD_50_SIZE;
+ unsigned int end_rcvd_49 : CP_NV_FLAGS_3_END_RCVD_49_SIZE;
+ unsigned int discard_49 : CP_NV_FLAGS_3_DISCARD_49_SIZE;
+ unsigned int end_rcvd_48 : CP_NV_FLAGS_3_END_RCVD_48_SIZE;
+ unsigned int discard_48 : CP_NV_FLAGS_3_DISCARD_48_SIZE;
+ } cp_nv_flags_3_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_nv_flags_3_t f;
+} cp_nv_flags_3_u;
+
+
+/*
+ * CP_STATE_DEBUG_INDEX struct
+ */
+
+#define CP_STATE_DEBUG_INDEX_STATE_DEBUG_INDEX_SIZE 5
+
+#define CP_STATE_DEBUG_INDEX_STATE_DEBUG_INDEX_SHIFT 0
+
+#define CP_STATE_DEBUG_INDEX_STATE_DEBUG_INDEX_MASK 0x0000001f
+
+#define CP_STATE_DEBUG_INDEX_MASK \
+ (CP_STATE_DEBUG_INDEX_STATE_DEBUG_INDEX_MASK)
+
+#define CP_STATE_DEBUG_INDEX(state_debug_index) \
+ ((state_debug_index << CP_STATE_DEBUG_INDEX_STATE_DEBUG_INDEX_SHIFT))
+
+#define CP_STATE_DEBUG_INDEX_GET_STATE_DEBUG_INDEX(cp_state_debug_index) \
+ ((cp_state_debug_index & CP_STATE_DEBUG_INDEX_STATE_DEBUG_INDEX_MASK) >> CP_STATE_DEBUG_INDEX_STATE_DEBUG_INDEX_SHIFT)
+
+#define CP_STATE_DEBUG_INDEX_SET_STATE_DEBUG_INDEX(cp_state_debug_index_reg, state_debug_index) \
+ cp_state_debug_index_reg = (cp_state_debug_index_reg & ~CP_STATE_DEBUG_INDEX_STATE_DEBUG_INDEX_MASK) | (state_debug_index << CP_STATE_DEBUG_INDEX_STATE_DEBUG_INDEX_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_state_debug_index_t {
+ unsigned int state_debug_index : CP_STATE_DEBUG_INDEX_STATE_DEBUG_INDEX_SIZE;
+ unsigned int : 27;
+ } cp_state_debug_index_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_state_debug_index_t {
+ unsigned int : 27;
+ unsigned int state_debug_index : CP_STATE_DEBUG_INDEX_STATE_DEBUG_INDEX_SIZE;
+ } cp_state_debug_index_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_state_debug_index_t f;
+} cp_state_debug_index_u;
+
+
+/*
+ * CP_STATE_DEBUG_DATA struct
+ */
+
+#define CP_STATE_DEBUG_DATA_STATE_DEBUG_DATA_SIZE 32
+
+#define CP_STATE_DEBUG_DATA_STATE_DEBUG_DATA_SHIFT 0
+
+#define CP_STATE_DEBUG_DATA_STATE_DEBUG_DATA_MASK 0xffffffff
+
+#define CP_STATE_DEBUG_DATA_MASK \
+ (CP_STATE_DEBUG_DATA_STATE_DEBUG_DATA_MASK)
+
+#define CP_STATE_DEBUG_DATA(state_debug_data) \
+ ((state_debug_data << CP_STATE_DEBUG_DATA_STATE_DEBUG_DATA_SHIFT))
+
+#define CP_STATE_DEBUG_DATA_GET_STATE_DEBUG_DATA(cp_state_debug_data) \
+ ((cp_state_debug_data & CP_STATE_DEBUG_DATA_STATE_DEBUG_DATA_MASK) >> CP_STATE_DEBUG_DATA_STATE_DEBUG_DATA_SHIFT)
+
+#define CP_STATE_DEBUG_DATA_SET_STATE_DEBUG_DATA(cp_state_debug_data_reg, state_debug_data) \
+ cp_state_debug_data_reg = (cp_state_debug_data_reg & ~CP_STATE_DEBUG_DATA_STATE_DEBUG_DATA_MASK) | (state_debug_data << CP_STATE_DEBUG_DATA_STATE_DEBUG_DATA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_state_debug_data_t {
+ unsigned int state_debug_data : CP_STATE_DEBUG_DATA_STATE_DEBUG_DATA_SIZE;
+ } cp_state_debug_data_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_state_debug_data_t {
+ unsigned int state_debug_data : CP_STATE_DEBUG_DATA_STATE_DEBUG_DATA_SIZE;
+ } cp_state_debug_data_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_state_debug_data_t f;
+} cp_state_debug_data_u;
+
+
+/*
+ * CP_PROG_COUNTER struct
+ */
+
+#define CP_PROG_COUNTER_COUNTER_SIZE 32
+
+#define CP_PROG_COUNTER_COUNTER_SHIFT 0
+
+#define CP_PROG_COUNTER_COUNTER_MASK 0xffffffff
+
+#define CP_PROG_COUNTER_MASK \
+ (CP_PROG_COUNTER_COUNTER_MASK)
+
+#define CP_PROG_COUNTER(counter) \
+ ((counter << CP_PROG_COUNTER_COUNTER_SHIFT))
+
+#define CP_PROG_COUNTER_GET_COUNTER(cp_prog_counter) \
+ ((cp_prog_counter & CP_PROG_COUNTER_COUNTER_MASK) >> CP_PROG_COUNTER_COUNTER_SHIFT)
+
+#define CP_PROG_COUNTER_SET_COUNTER(cp_prog_counter_reg, counter) \
+ cp_prog_counter_reg = (cp_prog_counter_reg & ~CP_PROG_COUNTER_COUNTER_MASK) | (counter << CP_PROG_COUNTER_COUNTER_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_prog_counter_t {
+ unsigned int counter : CP_PROG_COUNTER_COUNTER_SIZE;
+ } cp_prog_counter_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_prog_counter_t {
+ unsigned int counter : CP_PROG_COUNTER_COUNTER_SIZE;
+ } cp_prog_counter_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_prog_counter_t f;
+} cp_prog_counter_u;
+
+
+/*
+ * CP_STAT struct
+ */
+
+#define CP_STAT_MIU_WR_BUSY_SIZE 1
+#define CP_STAT_MIU_RD_REQ_BUSY_SIZE 1
+#define CP_STAT_MIU_RD_RETURN_BUSY_SIZE 1
+#define CP_STAT_RBIU_BUSY_SIZE 1
+#define CP_STAT_RCIU_BUSY_SIZE 1
+#define CP_STAT_CSF_RING_BUSY_SIZE 1
+#define CP_STAT_CSF_INDIRECTS_BUSY_SIZE 1
+#define CP_STAT_CSF_INDIRECT2_BUSY_SIZE 1
+#define CP_STAT_CSF_ST_BUSY_SIZE 1
+#define CP_STAT_CSF_BUSY_SIZE 1
+#define CP_STAT_RING_QUEUE_BUSY_SIZE 1
+#define CP_STAT_INDIRECTS_QUEUE_BUSY_SIZE 1
+#define CP_STAT_INDIRECT2_QUEUE_BUSY_SIZE 1
+#define CP_STAT_ST_QUEUE_BUSY_SIZE 1
+#define CP_STAT_PFP_BUSY_SIZE 1
+#define CP_STAT_MEQ_RING_BUSY_SIZE 1
+#define CP_STAT_MEQ_INDIRECTS_BUSY_SIZE 1
+#define CP_STAT_MEQ_INDIRECT2_BUSY_SIZE 1
+#define CP_STAT_MIU_WC_STALL_SIZE 1
+#define CP_STAT_CP_NRT_BUSY_SIZE 1
+#define CP_STAT__3D_BUSY_SIZE 1
+#define CP_STAT_ME_BUSY_SIZE 1
+#define CP_STAT_ME_WC_BUSY_SIZE 1
+#define CP_STAT_MIU_WC_TRACK_FIFO_EMPTY_SIZE 1
+#define CP_STAT_CP_BUSY_SIZE 1
+
+#define CP_STAT_MIU_WR_BUSY_SHIFT 0
+#define CP_STAT_MIU_RD_REQ_BUSY_SHIFT 1
+#define CP_STAT_MIU_RD_RETURN_BUSY_SHIFT 2
+#define CP_STAT_RBIU_BUSY_SHIFT 3
+#define CP_STAT_RCIU_BUSY_SHIFT 4
+#define CP_STAT_CSF_RING_BUSY_SHIFT 5
+#define CP_STAT_CSF_INDIRECTS_BUSY_SHIFT 6
+#define CP_STAT_CSF_INDIRECT2_BUSY_SHIFT 7
+#define CP_STAT_CSF_ST_BUSY_SHIFT 9
+#define CP_STAT_CSF_BUSY_SHIFT 10
+#define CP_STAT_RING_QUEUE_BUSY_SHIFT 11
+#define CP_STAT_INDIRECTS_QUEUE_BUSY_SHIFT 12
+#define CP_STAT_INDIRECT2_QUEUE_BUSY_SHIFT 13
+#define CP_STAT_ST_QUEUE_BUSY_SHIFT 16
+#define CP_STAT_PFP_BUSY_SHIFT 17
+#define CP_STAT_MEQ_RING_BUSY_SHIFT 18
+#define CP_STAT_MEQ_INDIRECTS_BUSY_SHIFT 19
+#define CP_STAT_MEQ_INDIRECT2_BUSY_SHIFT 20
+#define CP_STAT_MIU_WC_STALL_SHIFT 21
+#define CP_STAT_CP_NRT_BUSY_SHIFT 22
+#define CP_STAT__3D_BUSY_SHIFT 23
+#define CP_STAT_ME_BUSY_SHIFT 26
+#define CP_STAT_ME_WC_BUSY_SHIFT 29
+#define CP_STAT_MIU_WC_TRACK_FIFO_EMPTY_SHIFT 30
+#define CP_STAT_CP_BUSY_SHIFT 31
+
+#define CP_STAT_MIU_WR_BUSY_MASK 0x00000001
+#define CP_STAT_MIU_RD_REQ_BUSY_MASK 0x00000002
+#define CP_STAT_MIU_RD_RETURN_BUSY_MASK 0x00000004
+#define CP_STAT_RBIU_BUSY_MASK 0x00000008
+#define CP_STAT_RCIU_BUSY_MASK 0x00000010
+#define CP_STAT_CSF_RING_BUSY_MASK 0x00000020
+#define CP_STAT_CSF_INDIRECTS_BUSY_MASK 0x00000040
+#define CP_STAT_CSF_INDIRECT2_BUSY_MASK 0x00000080
+#define CP_STAT_CSF_ST_BUSY_MASK 0x00000200
+#define CP_STAT_CSF_BUSY_MASK 0x00000400
+#define CP_STAT_RING_QUEUE_BUSY_MASK 0x00000800
+#define CP_STAT_INDIRECTS_QUEUE_BUSY_MASK 0x00001000
+#define CP_STAT_INDIRECT2_QUEUE_BUSY_MASK 0x00002000
+#define CP_STAT_ST_QUEUE_BUSY_MASK 0x00010000
+#define CP_STAT_PFP_BUSY_MASK 0x00020000
+#define CP_STAT_MEQ_RING_BUSY_MASK 0x00040000
+#define CP_STAT_MEQ_INDIRECTS_BUSY_MASK 0x00080000
+#define CP_STAT_MEQ_INDIRECT2_BUSY_MASK 0x00100000
+#define CP_STAT_MIU_WC_STALL_MASK 0x00200000
+#define CP_STAT_CP_NRT_BUSY_MASK 0x00400000
+#define CP_STAT__3D_BUSY_MASK 0x00800000
+#define CP_STAT_ME_BUSY_MASK 0x04000000
+#define CP_STAT_ME_WC_BUSY_MASK 0x20000000
+#define CP_STAT_MIU_WC_TRACK_FIFO_EMPTY_MASK 0x40000000
+#define CP_STAT_CP_BUSY_MASK 0x80000000
+
+#define CP_STAT_MASK \
+ (CP_STAT_MIU_WR_BUSY_MASK | \
+ CP_STAT_MIU_RD_REQ_BUSY_MASK | \
+ CP_STAT_MIU_RD_RETURN_BUSY_MASK | \
+ CP_STAT_RBIU_BUSY_MASK | \
+ CP_STAT_RCIU_BUSY_MASK | \
+ CP_STAT_CSF_RING_BUSY_MASK | \
+ CP_STAT_CSF_INDIRECTS_BUSY_MASK | \
+ CP_STAT_CSF_INDIRECT2_BUSY_MASK | \
+ CP_STAT_CSF_ST_BUSY_MASK | \
+ CP_STAT_CSF_BUSY_MASK | \
+ CP_STAT_RING_QUEUE_BUSY_MASK | \
+ CP_STAT_INDIRECTS_QUEUE_BUSY_MASK | \
+ CP_STAT_INDIRECT2_QUEUE_BUSY_MASK | \
+ CP_STAT_ST_QUEUE_BUSY_MASK | \
+ CP_STAT_PFP_BUSY_MASK | \
+ CP_STAT_MEQ_RING_BUSY_MASK | \
+ CP_STAT_MEQ_INDIRECTS_BUSY_MASK | \
+ CP_STAT_MEQ_INDIRECT2_BUSY_MASK | \
+ CP_STAT_MIU_WC_STALL_MASK | \
+ CP_STAT_CP_NRT_BUSY_MASK | \
+ CP_STAT__3D_BUSY_MASK | \
+ CP_STAT_ME_BUSY_MASK | \
+ CP_STAT_ME_WC_BUSY_MASK | \
+ CP_STAT_MIU_WC_TRACK_FIFO_EMPTY_MASK | \
+ CP_STAT_CP_BUSY_MASK)
+
+#define CP_STAT(miu_wr_busy, miu_rd_req_busy, miu_rd_return_busy, rbiu_busy, rciu_busy, csf_ring_busy, csf_indirects_busy, csf_indirect2_busy, csf_st_busy, csf_busy, ring_queue_busy, indirects_queue_busy, indirect2_queue_busy, st_queue_busy, pfp_busy, meq_ring_busy, meq_indirects_busy, meq_indirect2_busy, miu_wc_stall, cp_nrt_busy, _3d_busy, me_busy, me_wc_busy, miu_wc_track_fifo_empty, cp_busy) \
+ ((miu_wr_busy << CP_STAT_MIU_WR_BUSY_SHIFT) | \
+ (miu_rd_req_busy << CP_STAT_MIU_RD_REQ_BUSY_SHIFT) | \
+ (miu_rd_return_busy << CP_STAT_MIU_RD_RETURN_BUSY_SHIFT) | \
+ (rbiu_busy << CP_STAT_RBIU_BUSY_SHIFT) | \
+ (rciu_busy << CP_STAT_RCIU_BUSY_SHIFT) | \
+ (csf_ring_busy << CP_STAT_CSF_RING_BUSY_SHIFT) | \
+ (csf_indirects_busy << CP_STAT_CSF_INDIRECTS_BUSY_SHIFT) | \
+ (csf_indirect2_busy << CP_STAT_CSF_INDIRECT2_BUSY_SHIFT) | \
+ (csf_st_busy << CP_STAT_CSF_ST_BUSY_SHIFT) | \
+ (csf_busy << CP_STAT_CSF_BUSY_SHIFT) | \
+ (ring_queue_busy << CP_STAT_RING_QUEUE_BUSY_SHIFT) | \
+ (indirects_queue_busy << CP_STAT_INDIRECTS_QUEUE_BUSY_SHIFT) | \
+ (indirect2_queue_busy << CP_STAT_INDIRECT2_QUEUE_BUSY_SHIFT) | \
+ (st_queue_busy << CP_STAT_ST_QUEUE_BUSY_SHIFT) | \
+ (pfp_busy << CP_STAT_PFP_BUSY_SHIFT) | \
+ (meq_ring_busy << CP_STAT_MEQ_RING_BUSY_SHIFT) | \
+ (meq_indirects_busy << CP_STAT_MEQ_INDIRECTS_BUSY_SHIFT) | \
+ (meq_indirect2_busy << CP_STAT_MEQ_INDIRECT2_BUSY_SHIFT) | \
+ (miu_wc_stall << CP_STAT_MIU_WC_STALL_SHIFT) | \
+ (cp_nrt_busy << CP_STAT_CP_NRT_BUSY_SHIFT) | \
+ (_3d_busy << CP_STAT__3D_BUSY_SHIFT) | \
+ (me_busy << CP_STAT_ME_BUSY_SHIFT) | \
+ (me_wc_busy << CP_STAT_ME_WC_BUSY_SHIFT) | \
+ (miu_wc_track_fifo_empty << CP_STAT_MIU_WC_TRACK_FIFO_EMPTY_SHIFT) | \
+ (cp_busy << CP_STAT_CP_BUSY_SHIFT))
+
+#define CP_STAT_GET_MIU_WR_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_MIU_WR_BUSY_MASK) >> CP_STAT_MIU_WR_BUSY_SHIFT)
+#define CP_STAT_GET_MIU_RD_REQ_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_MIU_RD_REQ_BUSY_MASK) >> CP_STAT_MIU_RD_REQ_BUSY_SHIFT)
+#define CP_STAT_GET_MIU_RD_RETURN_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_MIU_RD_RETURN_BUSY_MASK) >> CP_STAT_MIU_RD_RETURN_BUSY_SHIFT)
+#define CP_STAT_GET_RBIU_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_RBIU_BUSY_MASK) >> CP_STAT_RBIU_BUSY_SHIFT)
+#define CP_STAT_GET_RCIU_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_RCIU_BUSY_MASK) >> CP_STAT_RCIU_BUSY_SHIFT)
+#define CP_STAT_GET_CSF_RING_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_CSF_RING_BUSY_MASK) >> CP_STAT_CSF_RING_BUSY_SHIFT)
+#define CP_STAT_GET_CSF_INDIRECTS_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_CSF_INDIRECTS_BUSY_MASK) >> CP_STAT_CSF_INDIRECTS_BUSY_SHIFT)
+#define CP_STAT_GET_CSF_INDIRECT2_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_CSF_INDIRECT2_BUSY_MASK) >> CP_STAT_CSF_INDIRECT2_BUSY_SHIFT)
+#define CP_STAT_GET_CSF_ST_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_CSF_ST_BUSY_MASK) >> CP_STAT_CSF_ST_BUSY_SHIFT)
+#define CP_STAT_GET_CSF_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_CSF_BUSY_MASK) >> CP_STAT_CSF_BUSY_SHIFT)
+#define CP_STAT_GET_RING_QUEUE_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_RING_QUEUE_BUSY_MASK) >> CP_STAT_RING_QUEUE_BUSY_SHIFT)
+#define CP_STAT_GET_INDIRECTS_QUEUE_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_INDIRECTS_QUEUE_BUSY_MASK) >> CP_STAT_INDIRECTS_QUEUE_BUSY_SHIFT)
+#define CP_STAT_GET_INDIRECT2_QUEUE_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_INDIRECT2_QUEUE_BUSY_MASK) >> CP_STAT_INDIRECT2_QUEUE_BUSY_SHIFT)
+#define CP_STAT_GET_ST_QUEUE_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_ST_QUEUE_BUSY_MASK) >> CP_STAT_ST_QUEUE_BUSY_SHIFT)
+#define CP_STAT_GET_PFP_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_PFP_BUSY_MASK) >> CP_STAT_PFP_BUSY_SHIFT)
+#define CP_STAT_GET_MEQ_RING_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_MEQ_RING_BUSY_MASK) >> CP_STAT_MEQ_RING_BUSY_SHIFT)
+#define CP_STAT_GET_MEQ_INDIRECTS_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_MEQ_INDIRECTS_BUSY_MASK) >> CP_STAT_MEQ_INDIRECTS_BUSY_SHIFT)
+#define CP_STAT_GET_MEQ_INDIRECT2_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_MEQ_INDIRECT2_BUSY_MASK) >> CP_STAT_MEQ_INDIRECT2_BUSY_SHIFT)
+#define CP_STAT_GET_MIU_WC_STALL(cp_stat) \
+ ((cp_stat & CP_STAT_MIU_WC_STALL_MASK) >> CP_STAT_MIU_WC_STALL_SHIFT)
+#define CP_STAT_GET_CP_NRT_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_CP_NRT_BUSY_MASK) >> CP_STAT_CP_NRT_BUSY_SHIFT)
+#define CP_STAT_GET__3D_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT__3D_BUSY_MASK) >> CP_STAT__3D_BUSY_SHIFT)
+#define CP_STAT_GET_ME_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_ME_BUSY_MASK) >> CP_STAT_ME_BUSY_SHIFT)
+#define CP_STAT_GET_ME_WC_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_ME_WC_BUSY_MASK) >> CP_STAT_ME_WC_BUSY_SHIFT)
+#define CP_STAT_GET_MIU_WC_TRACK_FIFO_EMPTY(cp_stat) \
+ ((cp_stat & CP_STAT_MIU_WC_TRACK_FIFO_EMPTY_MASK) >> CP_STAT_MIU_WC_TRACK_FIFO_EMPTY_SHIFT)
+#define CP_STAT_GET_CP_BUSY(cp_stat) \
+ ((cp_stat & CP_STAT_CP_BUSY_MASK) >> CP_STAT_CP_BUSY_SHIFT)
+
+#define CP_STAT_SET_MIU_WR_BUSY(cp_stat_reg, miu_wr_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_MIU_WR_BUSY_MASK) | (miu_wr_busy << CP_STAT_MIU_WR_BUSY_SHIFT)
+#define CP_STAT_SET_MIU_RD_REQ_BUSY(cp_stat_reg, miu_rd_req_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_MIU_RD_REQ_BUSY_MASK) | (miu_rd_req_busy << CP_STAT_MIU_RD_REQ_BUSY_SHIFT)
+#define CP_STAT_SET_MIU_RD_RETURN_BUSY(cp_stat_reg, miu_rd_return_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_MIU_RD_RETURN_BUSY_MASK) | (miu_rd_return_busy << CP_STAT_MIU_RD_RETURN_BUSY_SHIFT)
+#define CP_STAT_SET_RBIU_BUSY(cp_stat_reg, rbiu_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_RBIU_BUSY_MASK) | (rbiu_busy << CP_STAT_RBIU_BUSY_SHIFT)
+#define CP_STAT_SET_RCIU_BUSY(cp_stat_reg, rciu_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_RCIU_BUSY_MASK) | (rciu_busy << CP_STAT_RCIU_BUSY_SHIFT)
+#define CP_STAT_SET_CSF_RING_BUSY(cp_stat_reg, csf_ring_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_CSF_RING_BUSY_MASK) | (csf_ring_busy << CP_STAT_CSF_RING_BUSY_SHIFT)
+#define CP_STAT_SET_CSF_INDIRECTS_BUSY(cp_stat_reg, csf_indirects_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_CSF_INDIRECTS_BUSY_MASK) | (csf_indirects_busy << CP_STAT_CSF_INDIRECTS_BUSY_SHIFT)
+#define CP_STAT_SET_CSF_INDIRECT2_BUSY(cp_stat_reg, csf_indirect2_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_CSF_INDIRECT2_BUSY_MASK) | (csf_indirect2_busy << CP_STAT_CSF_INDIRECT2_BUSY_SHIFT)
+#define CP_STAT_SET_CSF_ST_BUSY(cp_stat_reg, csf_st_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_CSF_ST_BUSY_MASK) | (csf_st_busy << CP_STAT_CSF_ST_BUSY_SHIFT)
+#define CP_STAT_SET_CSF_BUSY(cp_stat_reg, csf_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_CSF_BUSY_MASK) | (csf_busy << CP_STAT_CSF_BUSY_SHIFT)
+#define CP_STAT_SET_RING_QUEUE_BUSY(cp_stat_reg, ring_queue_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_RING_QUEUE_BUSY_MASK) | (ring_queue_busy << CP_STAT_RING_QUEUE_BUSY_SHIFT)
+#define CP_STAT_SET_INDIRECTS_QUEUE_BUSY(cp_stat_reg, indirects_queue_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_INDIRECTS_QUEUE_BUSY_MASK) | (indirects_queue_busy << CP_STAT_INDIRECTS_QUEUE_BUSY_SHIFT)
+#define CP_STAT_SET_INDIRECT2_QUEUE_BUSY(cp_stat_reg, indirect2_queue_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_INDIRECT2_QUEUE_BUSY_MASK) | (indirect2_queue_busy << CP_STAT_INDIRECT2_QUEUE_BUSY_SHIFT)
+#define CP_STAT_SET_ST_QUEUE_BUSY(cp_stat_reg, st_queue_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_ST_QUEUE_BUSY_MASK) | (st_queue_busy << CP_STAT_ST_QUEUE_BUSY_SHIFT)
+#define CP_STAT_SET_PFP_BUSY(cp_stat_reg, pfp_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_PFP_BUSY_MASK) | (pfp_busy << CP_STAT_PFP_BUSY_SHIFT)
+#define CP_STAT_SET_MEQ_RING_BUSY(cp_stat_reg, meq_ring_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_MEQ_RING_BUSY_MASK) | (meq_ring_busy << CP_STAT_MEQ_RING_BUSY_SHIFT)
+#define CP_STAT_SET_MEQ_INDIRECTS_BUSY(cp_stat_reg, meq_indirects_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_MEQ_INDIRECTS_BUSY_MASK) | (meq_indirects_busy << CP_STAT_MEQ_INDIRECTS_BUSY_SHIFT)
+#define CP_STAT_SET_MEQ_INDIRECT2_BUSY(cp_stat_reg, meq_indirect2_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_MEQ_INDIRECT2_BUSY_MASK) | (meq_indirect2_busy << CP_STAT_MEQ_INDIRECT2_BUSY_SHIFT)
+#define CP_STAT_SET_MIU_WC_STALL(cp_stat_reg, miu_wc_stall) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_MIU_WC_STALL_MASK) | (miu_wc_stall << CP_STAT_MIU_WC_STALL_SHIFT)
+#define CP_STAT_SET_CP_NRT_BUSY(cp_stat_reg, cp_nrt_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_CP_NRT_BUSY_MASK) | (cp_nrt_busy << CP_STAT_CP_NRT_BUSY_SHIFT)
+#define CP_STAT_SET__3D_BUSY(cp_stat_reg, _3d_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT__3D_BUSY_MASK) | (_3d_busy << CP_STAT__3D_BUSY_SHIFT)
+#define CP_STAT_SET_ME_BUSY(cp_stat_reg, me_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_ME_BUSY_MASK) | (me_busy << CP_STAT_ME_BUSY_SHIFT)
+#define CP_STAT_SET_ME_WC_BUSY(cp_stat_reg, me_wc_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_ME_WC_BUSY_MASK) | (me_wc_busy << CP_STAT_ME_WC_BUSY_SHIFT)
+#define CP_STAT_SET_MIU_WC_TRACK_FIFO_EMPTY(cp_stat_reg, miu_wc_track_fifo_empty) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_MIU_WC_TRACK_FIFO_EMPTY_MASK) | (miu_wc_track_fifo_empty << CP_STAT_MIU_WC_TRACK_FIFO_EMPTY_SHIFT)
+#define CP_STAT_SET_CP_BUSY(cp_stat_reg, cp_busy) \
+ cp_stat_reg = (cp_stat_reg & ~CP_STAT_CP_BUSY_MASK) | (cp_busy << CP_STAT_CP_BUSY_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _cp_stat_t {
+ unsigned int miu_wr_busy : CP_STAT_MIU_WR_BUSY_SIZE;
+ unsigned int miu_rd_req_busy : CP_STAT_MIU_RD_REQ_BUSY_SIZE;
+ unsigned int miu_rd_return_busy : CP_STAT_MIU_RD_RETURN_BUSY_SIZE;
+ unsigned int rbiu_busy : CP_STAT_RBIU_BUSY_SIZE;
+ unsigned int rciu_busy : CP_STAT_RCIU_BUSY_SIZE;
+ unsigned int csf_ring_busy : CP_STAT_CSF_RING_BUSY_SIZE;
+ unsigned int csf_indirects_busy : CP_STAT_CSF_INDIRECTS_BUSY_SIZE;
+ unsigned int csf_indirect2_busy : CP_STAT_CSF_INDIRECT2_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int csf_st_busy : CP_STAT_CSF_ST_BUSY_SIZE;
+ unsigned int csf_busy : CP_STAT_CSF_BUSY_SIZE;
+ unsigned int ring_queue_busy : CP_STAT_RING_QUEUE_BUSY_SIZE;
+ unsigned int indirects_queue_busy : CP_STAT_INDIRECTS_QUEUE_BUSY_SIZE;
+ unsigned int indirect2_queue_busy : CP_STAT_INDIRECT2_QUEUE_BUSY_SIZE;
+ unsigned int : 2;
+ unsigned int st_queue_busy : CP_STAT_ST_QUEUE_BUSY_SIZE;
+ unsigned int pfp_busy : CP_STAT_PFP_BUSY_SIZE;
+ unsigned int meq_ring_busy : CP_STAT_MEQ_RING_BUSY_SIZE;
+ unsigned int meq_indirects_busy : CP_STAT_MEQ_INDIRECTS_BUSY_SIZE;
+ unsigned int meq_indirect2_busy : CP_STAT_MEQ_INDIRECT2_BUSY_SIZE;
+ unsigned int miu_wc_stall : CP_STAT_MIU_WC_STALL_SIZE;
+ unsigned int cp_nrt_busy : CP_STAT_CP_NRT_BUSY_SIZE;
+ unsigned int _3d_busy : CP_STAT__3D_BUSY_SIZE;
+ unsigned int : 2;
+ unsigned int me_busy : CP_STAT_ME_BUSY_SIZE;
+ unsigned int : 2;
+ unsigned int me_wc_busy : CP_STAT_ME_WC_BUSY_SIZE;
+ unsigned int miu_wc_track_fifo_empty : CP_STAT_MIU_WC_TRACK_FIFO_EMPTY_SIZE;
+ unsigned int cp_busy : CP_STAT_CP_BUSY_SIZE;
+ } cp_stat_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _cp_stat_t {
+ unsigned int cp_busy : CP_STAT_CP_BUSY_SIZE;
+ unsigned int miu_wc_track_fifo_empty : CP_STAT_MIU_WC_TRACK_FIFO_EMPTY_SIZE;
+ unsigned int me_wc_busy : CP_STAT_ME_WC_BUSY_SIZE;
+ unsigned int : 2;
+ unsigned int me_busy : CP_STAT_ME_BUSY_SIZE;
+ unsigned int : 2;
+ unsigned int _3d_busy : CP_STAT__3D_BUSY_SIZE;
+ unsigned int cp_nrt_busy : CP_STAT_CP_NRT_BUSY_SIZE;
+ unsigned int miu_wc_stall : CP_STAT_MIU_WC_STALL_SIZE;
+ unsigned int meq_indirect2_busy : CP_STAT_MEQ_INDIRECT2_BUSY_SIZE;
+ unsigned int meq_indirects_busy : CP_STAT_MEQ_INDIRECTS_BUSY_SIZE;
+ unsigned int meq_ring_busy : CP_STAT_MEQ_RING_BUSY_SIZE;
+ unsigned int pfp_busy : CP_STAT_PFP_BUSY_SIZE;
+ unsigned int st_queue_busy : CP_STAT_ST_QUEUE_BUSY_SIZE;
+ unsigned int : 2;
+ unsigned int indirect2_queue_busy : CP_STAT_INDIRECT2_QUEUE_BUSY_SIZE;
+ unsigned int indirects_queue_busy : CP_STAT_INDIRECTS_QUEUE_BUSY_SIZE;
+ unsigned int ring_queue_busy : CP_STAT_RING_QUEUE_BUSY_SIZE;
+ unsigned int csf_busy : CP_STAT_CSF_BUSY_SIZE;
+ unsigned int csf_st_busy : CP_STAT_CSF_ST_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int csf_indirect2_busy : CP_STAT_CSF_INDIRECT2_BUSY_SIZE;
+ unsigned int csf_indirects_busy : CP_STAT_CSF_INDIRECTS_BUSY_SIZE;
+ unsigned int csf_ring_busy : CP_STAT_CSF_RING_BUSY_SIZE;
+ unsigned int rciu_busy : CP_STAT_RCIU_BUSY_SIZE;
+ unsigned int rbiu_busy : CP_STAT_RBIU_BUSY_SIZE;
+ unsigned int miu_rd_return_busy : CP_STAT_MIU_RD_RETURN_BUSY_SIZE;
+ unsigned int miu_rd_req_busy : CP_STAT_MIU_RD_REQ_BUSY_SIZE;
+ unsigned int miu_wr_busy : CP_STAT_MIU_WR_BUSY_SIZE;
+ } cp_stat_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ cp_stat_t f;
+} cp_stat_u;
+
+
+/*
+ * BIOS_0_SCRATCH struct
+ */
+
+#define BIOS_0_SCRATCH_BIOS_SCRATCH_SIZE 32
+
+#define BIOS_0_SCRATCH_BIOS_SCRATCH_SHIFT 0
+
+#define BIOS_0_SCRATCH_BIOS_SCRATCH_MASK 0xffffffff
+
+#define BIOS_0_SCRATCH_MASK \
+ (BIOS_0_SCRATCH_BIOS_SCRATCH_MASK)
+
+#define BIOS_0_SCRATCH(bios_scratch) \
+ ((bios_scratch << BIOS_0_SCRATCH_BIOS_SCRATCH_SHIFT))
+
+#define BIOS_0_SCRATCH_GET_BIOS_SCRATCH(bios_0_scratch) \
+ ((bios_0_scratch & BIOS_0_SCRATCH_BIOS_SCRATCH_MASK) >> BIOS_0_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#define BIOS_0_SCRATCH_SET_BIOS_SCRATCH(bios_0_scratch_reg, bios_scratch) \
+ bios_0_scratch_reg = (bios_0_scratch_reg & ~BIOS_0_SCRATCH_BIOS_SCRATCH_MASK) | (bios_scratch << BIOS_0_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _bios_0_scratch_t {
+ unsigned int bios_scratch : BIOS_0_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_0_scratch_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _bios_0_scratch_t {
+ unsigned int bios_scratch : BIOS_0_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_0_scratch_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ bios_0_scratch_t f;
+} bios_0_scratch_u;
+
+
+/*
+ * BIOS_1_SCRATCH struct
+ */
+
+#define BIOS_1_SCRATCH_BIOS_SCRATCH_SIZE 32
+
+#define BIOS_1_SCRATCH_BIOS_SCRATCH_SHIFT 0
+
+#define BIOS_1_SCRATCH_BIOS_SCRATCH_MASK 0xffffffff
+
+#define BIOS_1_SCRATCH_MASK \
+ (BIOS_1_SCRATCH_BIOS_SCRATCH_MASK)
+
+#define BIOS_1_SCRATCH(bios_scratch) \
+ ((bios_scratch << BIOS_1_SCRATCH_BIOS_SCRATCH_SHIFT))
+
+#define BIOS_1_SCRATCH_GET_BIOS_SCRATCH(bios_1_scratch) \
+ ((bios_1_scratch & BIOS_1_SCRATCH_BIOS_SCRATCH_MASK) >> BIOS_1_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#define BIOS_1_SCRATCH_SET_BIOS_SCRATCH(bios_1_scratch_reg, bios_scratch) \
+ bios_1_scratch_reg = (bios_1_scratch_reg & ~BIOS_1_SCRATCH_BIOS_SCRATCH_MASK) | (bios_scratch << BIOS_1_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _bios_1_scratch_t {
+ unsigned int bios_scratch : BIOS_1_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_1_scratch_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _bios_1_scratch_t {
+ unsigned int bios_scratch : BIOS_1_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_1_scratch_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ bios_1_scratch_t f;
+} bios_1_scratch_u;
+
+
+/*
+ * BIOS_2_SCRATCH struct
+ */
+
+#define BIOS_2_SCRATCH_BIOS_SCRATCH_SIZE 32
+
+#define BIOS_2_SCRATCH_BIOS_SCRATCH_SHIFT 0
+
+#define BIOS_2_SCRATCH_BIOS_SCRATCH_MASK 0xffffffff
+
+#define BIOS_2_SCRATCH_MASK \
+ (BIOS_2_SCRATCH_BIOS_SCRATCH_MASK)
+
+#define BIOS_2_SCRATCH(bios_scratch) \
+ ((bios_scratch << BIOS_2_SCRATCH_BIOS_SCRATCH_SHIFT))
+
+#define BIOS_2_SCRATCH_GET_BIOS_SCRATCH(bios_2_scratch) \
+ ((bios_2_scratch & BIOS_2_SCRATCH_BIOS_SCRATCH_MASK) >> BIOS_2_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#define BIOS_2_SCRATCH_SET_BIOS_SCRATCH(bios_2_scratch_reg, bios_scratch) \
+ bios_2_scratch_reg = (bios_2_scratch_reg & ~BIOS_2_SCRATCH_BIOS_SCRATCH_MASK) | (bios_scratch << BIOS_2_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _bios_2_scratch_t {
+ unsigned int bios_scratch : BIOS_2_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_2_scratch_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _bios_2_scratch_t {
+ unsigned int bios_scratch : BIOS_2_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_2_scratch_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ bios_2_scratch_t f;
+} bios_2_scratch_u;
+
+
+/*
+ * BIOS_3_SCRATCH struct
+ */
+
+#define BIOS_3_SCRATCH_BIOS_SCRATCH_SIZE 32
+
+#define BIOS_3_SCRATCH_BIOS_SCRATCH_SHIFT 0
+
+#define BIOS_3_SCRATCH_BIOS_SCRATCH_MASK 0xffffffff
+
+#define BIOS_3_SCRATCH_MASK \
+ (BIOS_3_SCRATCH_BIOS_SCRATCH_MASK)
+
+#define BIOS_3_SCRATCH(bios_scratch) \
+ ((bios_scratch << BIOS_3_SCRATCH_BIOS_SCRATCH_SHIFT))
+
+#define BIOS_3_SCRATCH_GET_BIOS_SCRATCH(bios_3_scratch) \
+ ((bios_3_scratch & BIOS_3_SCRATCH_BIOS_SCRATCH_MASK) >> BIOS_3_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#define BIOS_3_SCRATCH_SET_BIOS_SCRATCH(bios_3_scratch_reg, bios_scratch) \
+ bios_3_scratch_reg = (bios_3_scratch_reg & ~BIOS_3_SCRATCH_BIOS_SCRATCH_MASK) | (bios_scratch << BIOS_3_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _bios_3_scratch_t {
+ unsigned int bios_scratch : BIOS_3_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_3_scratch_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _bios_3_scratch_t {
+ unsigned int bios_scratch : BIOS_3_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_3_scratch_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ bios_3_scratch_t f;
+} bios_3_scratch_u;
+
+
+/*
+ * BIOS_4_SCRATCH struct
+ */
+
+#define BIOS_4_SCRATCH_BIOS_SCRATCH_SIZE 32
+
+#define BIOS_4_SCRATCH_BIOS_SCRATCH_SHIFT 0
+
+#define BIOS_4_SCRATCH_BIOS_SCRATCH_MASK 0xffffffff
+
+#define BIOS_4_SCRATCH_MASK \
+ (BIOS_4_SCRATCH_BIOS_SCRATCH_MASK)
+
+#define BIOS_4_SCRATCH(bios_scratch) \
+ ((bios_scratch << BIOS_4_SCRATCH_BIOS_SCRATCH_SHIFT))
+
+#define BIOS_4_SCRATCH_GET_BIOS_SCRATCH(bios_4_scratch) \
+ ((bios_4_scratch & BIOS_4_SCRATCH_BIOS_SCRATCH_MASK) >> BIOS_4_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#define BIOS_4_SCRATCH_SET_BIOS_SCRATCH(bios_4_scratch_reg, bios_scratch) \
+ bios_4_scratch_reg = (bios_4_scratch_reg & ~BIOS_4_SCRATCH_BIOS_SCRATCH_MASK) | (bios_scratch << BIOS_4_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _bios_4_scratch_t {
+ unsigned int bios_scratch : BIOS_4_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_4_scratch_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _bios_4_scratch_t {
+ unsigned int bios_scratch : BIOS_4_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_4_scratch_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ bios_4_scratch_t f;
+} bios_4_scratch_u;
+
+
+/*
+ * BIOS_5_SCRATCH struct
+ */
+
+#define BIOS_5_SCRATCH_BIOS_SCRATCH_SIZE 32
+
+#define BIOS_5_SCRATCH_BIOS_SCRATCH_SHIFT 0
+
+#define BIOS_5_SCRATCH_BIOS_SCRATCH_MASK 0xffffffff
+
+#define BIOS_5_SCRATCH_MASK \
+ (BIOS_5_SCRATCH_BIOS_SCRATCH_MASK)
+
+#define BIOS_5_SCRATCH(bios_scratch) \
+ ((bios_scratch << BIOS_5_SCRATCH_BIOS_SCRATCH_SHIFT))
+
+#define BIOS_5_SCRATCH_GET_BIOS_SCRATCH(bios_5_scratch) \
+ ((bios_5_scratch & BIOS_5_SCRATCH_BIOS_SCRATCH_MASK) >> BIOS_5_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#define BIOS_5_SCRATCH_SET_BIOS_SCRATCH(bios_5_scratch_reg, bios_scratch) \
+ bios_5_scratch_reg = (bios_5_scratch_reg & ~BIOS_5_SCRATCH_BIOS_SCRATCH_MASK) | (bios_scratch << BIOS_5_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _bios_5_scratch_t {
+ unsigned int bios_scratch : BIOS_5_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_5_scratch_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _bios_5_scratch_t {
+ unsigned int bios_scratch : BIOS_5_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_5_scratch_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ bios_5_scratch_t f;
+} bios_5_scratch_u;
+
+
+/*
+ * BIOS_6_SCRATCH struct
+ */
+
+#define BIOS_6_SCRATCH_BIOS_SCRATCH_SIZE 32
+
+#define BIOS_6_SCRATCH_BIOS_SCRATCH_SHIFT 0
+
+#define BIOS_6_SCRATCH_BIOS_SCRATCH_MASK 0xffffffff
+
+#define BIOS_6_SCRATCH_MASK \
+ (BIOS_6_SCRATCH_BIOS_SCRATCH_MASK)
+
+#define BIOS_6_SCRATCH(bios_scratch) \
+ ((bios_scratch << BIOS_6_SCRATCH_BIOS_SCRATCH_SHIFT))
+
+#define BIOS_6_SCRATCH_GET_BIOS_SCRATCH(bios_6_scratch) \
+ ((bios_6_scratch & BIOS_6_SCRATCH_BIOS_SCRATCH_MASK) >> BIOS_6_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#define BIOS_6_SCRATCH_SET_BIOS_SCRATCH(bios_6_scratch_reg, bios_scratch) \
+ bios_6_scratch_reg = (bios_6_scratch_reg & ~BIOS_6_SCRATCH_BIOS_SCRATCH_MASK) | (bios_scratch << BIOS_6_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _bios_6_scratch_t {
+ unsigned int bios_scratch : BIOS_6_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_6_scratch_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _bios_6_scratch_t {
+ unsigned int bios_scratch : BIOS_6_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_6_scratch_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ bios_6_scratch_t f;
+} bios_6_scratch_u;
+
+
+/*
+ * BIOS_7_SCRATCH struct
+ */
+
+#define BIOS_7_SCRATCH_BIOS_SCRATCH_SIZE 32
+
+#define BIOS_7_SCRATCH_BIOS_SCRATCH_SHIFT 0
+
+#define BIOS_7_SCRATCH_BIOS_SCRATCH_MASK 0xffffffff
+
+#define BIOS_7_SCRATCH_MASK \
+ (BIOS_7_SCRATCH_BIOS_SCRATCH_MASK)
+
+#define BIOS_7_SCRATCH(bios_scratch) \
+ ((bios_scratch << BIOS_7_SCRATCH_BIOS_SCRATCH_SHIFT))
+
+#define BIOS_7_SCRATCH_GET_BIOS_SCRATCH(bios_7_scratch) \
+ ((bios_7_scratch & BIOS_7_SCRATCH_BIOS_SCRATCH_MASK) >> BIOS_7_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#define BIOS_7_SCRATCH_SET_BIOS_SCRATCH(bios_7_scratch_reg, bios_scratch) \
+ bios_7_scratch_reg = (bios_7_scratch_reg & ~BIOS_7_SCRATCH_BIOS_SCRATCH_MASK) | (bios_scratch << BIOS_7_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _bios_7_scratch_t {
+ unsigned int bios_scratch : BIOS_7_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_7_scratch_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _bios_7_scratch_t {
+ unsigned int bios_scratch : BIOS_7_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_7_scratch_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ bios_7_scratch_t f;
+} bios_7_scratch_u;
+
+
+/*
+ * BIOS_8_SCRATCH struct
+ */
+
+#define BIOS_8_SCRATCH_BIOS_SCRATCH_SIZE 32
+
+#define BIOS_8_SCRATCH_BIOS_SCRATCH_SHIFT 0
+
+#define BIOS_8_SCRATCH_BIOS_SCRATCH_MASK 0xffffffff
+
+#define BIOS_8_SCRATCH_MASK \
+ (BIOS_8_SCRATCH_BIOS_SCRATCH_MASK)
+
+#define BIOS_8_SCRATCH(bios_scratch) \
+ ((bios_scratch << BIOS_8_SCRATCH_BIOS_SCRATCH_SHIFT))
+
+#define BIOS_8_SCRATCH_GET_BIOS_SCRATCH(bios_8_scratch) \
+ ((bios_8_scratch & BIOS_8_SCRATCH_BIOS_SCRATCH_MASK) >> BIOS_8_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#define BIOS_8_SCRATCH_SET_BIOS_SCRATCH(bios_8_scratch_reg, bios_scratch) \
+ bios_8_scratch_reg = (bios_8_scratch_reg & ~BIOS_8_SCRATCH_BIOS_SCRATCH_MASK) | (bios_scratch << BIOS_8_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _bios_8_scratch_t {
+ unsigned int bios_scratch : BIOS_8_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_8_scratch_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _bios_8_scratch_t {
+ unsigned int bios_scratch : BIOS_8_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_8_scratch_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ bios_8_scratch_t f;
+} bios_8_scratch_u;
+
+
+/*
+ * BIOS_9_SCRATCH struct
+ */
+
+#define BIOS_9_SCRATCH_BIOS_SCRATCH_SIZE 32
+
+#define BIOS_9_SCRATCH_BIOS_SCRATCH_SHIFT 0
+
+#define BIOS_9_SCRATCH_BIOS_SCRATCH_MASK 0xffffffff
+
+#define BIOS_9_SCRATCH_MASK \
+ (BIOS_9_SCRATCH_BIOS_SCRATCH_MASK)
+
+#define BIOS_9_SCRATCH(bios_scratch) \
+ ((bios_scratch << BIOS_9_SCRATCH_BIOS_SCRATCH_SHIFT))
+
+#define BIOS_9_SCRATCH_GET_BIOS_SCRATCH(bios_9_scratch) \
+ ((bios_9_scratch & BIOS_9_SCRATCH_BIOS_SCRATCH_MASK) >> BIOS_9_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#define BIOS_9_SCRATCH_SET_BIOS_SCRATCH(bios_9_scratch_reg, bios_scratch) \
+ bios_9_scratch_reg = (bios_9_scratch_reg & ~BIOS_9_SCRATCH_BIOS_SCRATCH_MASK) | (bios_scratch << BIOS_9_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _bios_9_scratch_t {
+ unsigned int bios_scratch : BIOS_9_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_9_scratch_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _bios_9_scratch_t {
+ unsigned int bios_scratch : BIOS_9_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_9_scratch_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ bios_9_scratch_t f;
+} bios_9_scratch_u;
+
+
+/*
+ * BIOS_10_SCRATCH struct
+ */
+
+#define BIOS_10_SCRATCH_BIOS_SCRATCH_SIZE 32
+
+#define BIOS_10_SCRATCH_BIOS_SCRATCH_SHIFT 0
+
+#define BIOS_10_SCRATCH_BIOS_SCRATCH_MASK 0xffffffff
+
+#define BIOS_10_SCRATCH_MASK \
+ (BIOS_10_SCRATCH_BIOS_SCRATCH_MASK)
+
+#define BIOS_10_SCRATCH(bios_scratch) \
+ ((bios_scratch << BIOS_10_SCRATCH_BIOS_SCRATCH_SHIFT))
+
+#define BIOS_10_SCRATCH_GET_BIOS_SCRATCH(bios_10_scratch) \
+ ((bios_10_scratch & BIOS_10_SCRATCH_BIOS_SCRATCH_MASK) >> BIOS_10_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#define BIOS_10_SCRATCH_SET_BIOS_SCRATCH(bios_10_scratch_reg, bios_scratch) \
+ bios_10_scratch_reg = (bios_10_scratch_reg & ~BIOS_10_SCRATCH_BIOS_SCRATCH_MASK) | (bios_scratch << BIOS_10_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _bios_10_scratch_t {
+ unsigned int bios_scratch : BIOS_10_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_10_scratch_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _bios_10_scratch_t {
+ unsigned int bios_scratch : BIOS_10_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_10_scratch_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ bios_10_scratch_t f;
+} bios_10_scratch_u;
+
+
+/*
+ * BIOS_11_SCRATCH struct
+ */
+
+#define BIOS_11_SCRATCH_BIOS_SCRATCH_SIZE 32
+
+#define BIOS_11_SCRATCH_BIOS_SCRATCH_SHIFT 0
+
+#define BIOS_11_SCRATCH_BIOS_SCRATCH_MASK 0xffffffff
+
+#define BIOS_11_SCRATCH_MASK \
+ (BIOS_11_SCRATCH_BIOS_SCRATCH_MASK)
+
+#define BIOS_11_SCRATCH(bios_scratch) \
+ ((bios_scratch << BIOS_11_SCRATCH_BIOS_SCRATCH_SHIFT))
+
+#define BIOS_11_SCRATCH_GET_BIOS_SCRATCH(bios_11_scratch) \
+ ((bios_11_scratch & BIOS_11_SCRATCH_BIOS_SCRATCH_MASK) >> BIOS_11_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#define BIOS_11_SCRATCH_SET_BIOS_SCRATCH(bios_11_scratch_reg, bios_scratch) \
+ bios_11_scratch_reg = (bios_11_scratch_reg & ~BIOS_11_SCRATCH_BIOS_SCRATCH_MASK) | (bios_scratch << BIOS_11_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _bios_11_scratch_t {
+ unsigned int bios_scratch : BIOS_11_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_11_scratch_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _bios_11_scratch_t {
+ unsigned int bios_scratch : BIOS_11_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_11_scratch_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ bios_11_scratch_t f;
+} bios_11_scratch_u;
+
+
+/*
+ * BIOS_12_SCRATCH struct
+ */
+
+#define BIOS_12_SCRATCH_BIOS_SCRATCH_SIZE 32
+
+#define BIOS_12_SCRATCH_BIOS_SCRATCH_SHIFT 0
+
+#define BIOS_12_SCRATCH_BIOS_SCRATCH_MASK 0xffffffff
+
+#define BIOS_12_SCRATCH_MASK \
+ (BIOS_12_SCRATCH_BIOS_SCRATCH_MASK)
+
+#define BIOS_12_SCRATCH(bios_scratch) \
+ ((bios_scratch << BIOS_12_SCRATCH_BIOS_SCRATCH_SHIFT))
+
+#define BIOS_12_SCRATCH_GET_BIOS_SCRATCH(bios_12_scratch) \
+ ((bios_12_scratch & BIOS_12_SCRATCH_BIOS_SCRATCH_MASK) >> BIOS_12_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#define BIOS_12_SCRATCH_SET_BIOS_SCRATCH(bios_12_scratch_reg, bios_scratch) \
+ bios_12_scratch_reg = (bios_12_scratch_reg & ~BIOS_12_SCRATCH_BIOS_SCRATCH_MASK) | (bios_scratch << BIOS_12_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _bios_12_scratch_t {
+ unsigned int bios_scratch : BIOS_12_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_12_scratch_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _bios_12_scratch_t {
+ unsigned int bios_scratch : BIOS_12_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_12_scratch_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ bios_12_scratch_t f;
+} bios_12_scratch_u;
+
+
+/*
+ * BIOS_13_SCRATCH struct
+ */
+
+#define BIOS_13_SCRATCH_BIOS_SCRATCH_SIZE 32
+
+#define BIOS_13_SCRATCH_BIOS_SCRATCH_SHIFT 0
+
+#define BIOS_13_SCRATCH_BIOS_SCRATCH_MASK 0xffffffff
+
+#define BIOS_13_SCRATCH_MASK \
+ (BIOS_13_SCRATCH_BIOS_SCRATCH_MASK)
+
+#define BIOS_13_SCRATCH(bios_scratch) \
+ ((bios_scratch << BIOS_13_SCRATCH_BIOS_SCRATCH_SHIFT))
+
+#define BIOS_13_SCRATCH_GET_BIOS_SCRATCH(bios_13_scratch) \
+ ((bios_13_scratch & BIOS_13_SCRATCH_BIOS_SCRATCH_MASK) >> BIOS_13_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#define BIOS_13_SCRATCH_SET_BIOS_SCRATCH(bios_13_scratch_reg, bios_scratch) \
+ bios_13_scratch_reg = (bios_13_scratch_reg & ~BIOS_13_SCRATCH_BIOS_SCRATCH_MASK) | (bios_scratch << BIOS_13_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _bios_13_scratch_t {
+ unsigned int bios_scratch : BIOS_13_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_13_scratch_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _bios_13_scratch_t {
+ unsigned int bios_scratch : BIOS_13_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_13_scratch_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ bios_13_scratch_t f;
+} bios_13_scratch_u;
+
+
+/*
+ * BIOS_14_SCRATCH struct
+ */
+
+#define BIOS_14_SCRATCH_BIOS_SCRATCH_SIZE 32
+
+#define BIOS_14_SCRATCH_BIOS_SCRATCH_SHIFT 0
+
+#define BIOS_14_SCRATCH_BIOS_SCRATCH_MASK 0xffffffff
+
+#define BIOS_14_SCRATCH_MASK \
+ (BIOS_14_SCRATCH_BIOS_SCRATCH_MASK)
+
+#define BIOS_14_SCRATCH(bios_scratch) \
+ ((bios_scratch << BIOS_14_SCRATCH_BIOS_SCRATCH_SHIFT))
+
+#define BIOS_14_SCRATCH_GET_BIOS_SCRATCH(bios_14_scratch) \
+ ((bios_14_scratch & BIOS_14_SCRATCH_BIOS_SCRATCH_MASK) >> BIOS_14_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#define BIOS_14_SCRATCH_SET_BIOS_SCRATCH(bios_14_scratch_reg, bios_scratch) \
+ bios_14_scratch_reg = (bios_14_scratch_reg & ~BIOS_14_SCRATCH_BIOS_SCRATCH_MASK) | (bios_scratch << BIOS_14_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _bios_14_scratch_t {
+ unsigned int bios_scratch : BIOS_14_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_14_scratch_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _bios_14_scratch_t {
+ unsigned int bios_scratch : BIOS_14_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_14_scratch_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ bios_14_scratch_t f;
+} bios_14_scratch_u;
+
+
+/*
+ * BIOS_15_SCRATCH struct
+ */
+
+#define BIOS_15_SCRATCH_BIOS_SCRATCH_SIZE 32
+
+#define BIOS_15_SCRATCH_BIOS_SCRATCH_SHIFT 0
+
+#define BIOS_15_SCRATCH_BIOS_SCRATCH_MASK 0xffffffff
+
+#define BIOS_15_SCRATCH_MASK \
+ (BIOS_15_SCRATCH_BIOS_SCRATCH_MASK)
+
+#define BIOS_15_SCRATCH(bios_scratch) \
+ ((bios_scratch << BIOS_15_SCRATCH_BIOS_SCRATCH_SHIFT))
+
+#define BIOS_15_SCRATCH_GET_BIOS_SCRATCH(bios_15_scratch) \
+ ((bios_15_scratch & BIOS_15_SCRATCH_BIOS_SCRATCH_MASK) >> BIOS_15_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#define BIOS_15_SCRATCH_SET_BIOS_SCRATCH(bios_15_scratch_reg, bios_scratch) \
+ bios_15_scratch_reg = (bios_15_scratch_reg & ~BIOS_15_SCRATCH_BIOS_SCRATCH_MASK) | (bios_scratch << BIOS_15_SCRATCH_BIOS_SCRATCH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _bios_15_scratch_t {
+ unsigned int bios_scratch : BIOS_15_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_15_scratch_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _bios_15_scratch_t {
+ unsigned int bios_scratch : BIOS_15_SCRATCH_BIOS_SCRATCH_SIZE;
+ } bios_15_scratch_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ bios_15_scratch_t f;
+} bios_15_scratch_u;
+
+
+/*
+ * COHER_SIZE_PM4 struct
+ */
+
+#define COHER_SIZE_PM4_SIZE_SIZE 32
+
+#define COHER_SIZE_PM4_SIZE_SHIFT 0
+
+#define COHER_SIZE_PM4_SIZE_MASK 0xffffffff
+
+#define COHER_SIZE_PM4_MASK \
+ (COHER_SIZE_PM4_SIZE_MASK)
+
+#define COHER_SIZE_PM4(size) \
+ ((size << COHER_SIZE_PM4_SIZE_SHIFT))
+
+#define COHER_SIZE_PM4_GET_SIZE(coher_size_pm4) \
+ ((coher_size_pm4 & COHER_SIZE_PM4_SIZE_MASK) >> COHER_SIZE_PM4_SIZE_SHIFT)
+
+#define COHER_SIZE_PM4_SET_SIZE(coher_size_pm4_reg, size) \
+ coher_size_pm4_reg = (coher_size_pm4_reg & ~COHER_SIZE_PM4_SIZE_MASK) | (size << COHER_SIZE_PM4_SIZE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _coher_size_pm4_t {
+ unsigned int size : COHER_SIZE_PM4_SIZE_SIZE;
+ } coher_size_pm4_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _coher_size_pm4_t {
+ unsigned int size : COHER_SIZE_PM4_SIZE_SIZE;
+ } coher_size_pm4_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ coher_size_pm4_t f;
+} coher_size_pm4_u;
+
+
+/*
+ * COHER_BASE_PM4 struct
+ */
+
+#define COHER_BASE_PM4_BASE_SIZE 32
+
+#define COHER_BASE_PM4_BASE_SHIFT 0
+
+#define COHER_BASE_PM4_BASE_MASK 0xffffffff
+
+#define COHER_BASE_PM4_MASK \
+ (COHER_BASE_PM4_BASE_MASK)
+
+#define COHER_BASE_PM4(base) \
+ ((base << COHER_BASE_PM4_BASE_SHIFT))
+
+#define COHER_BASE_PM4_GET_BASE(coher_base_pm4) \
+ ((coher_base_pm4 & COHER_BASE_PM4_BASE_MASK) >> COHER_BASE_PM4_BASE_SHIFT)
+
+#define COHER_BASE_PM4_SET_BASE(coher_base_pm4_reg, base) \
+ coher_base_pm4_reg = (coher_base_pm4_reg & ~COHER_BASE_PM4_BASE_MASK) | (base << COHER_BASE_PM4_BASE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _coher_base_pm4_t {
+ unsigned int base : COHER_BASE_PM4_BASE_SIZE;
+ } coher_base_pm4_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _coher_base_pm4_t {
+ unsigned int base : COHER_BASE_PM4_BASE_SIZE;
+ } coher_base_pm4_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ coher_base_pm4_t f;
+} coher_base_pm4_u;
+
+
+/*
+ * COHER_STATUS_PM4 struct
+ */
+
+#define COHER_STATUS_PM4_MATCHING_CONTEXTS_SIZE 8
+#define COHER_STATUS_PM4_RB_COPY_DEST_BASE_ENA_SIZE 1
+#define COHER_STATUS_PM4_DEST_BASE_0_ENA_SIZE 1
+#define COHER_STATUS_PM4_DEST_BASE_1_ENA_SIZE 1
+#define COHER_STATUS_PM4_DEST_BASE_2_ENA_SIZE 1
+#define COHER_STATUS_PM4_DEST_BASE_3_ENA_SIZE 1
+#define COHER_STATUS_PM4_DEST_BASE_4_ENA_SIZE 1
+#define COHER_STATUS_PM4_DEST_BASE_5_ENA_SIZE 1
+#define COHER_STATUS_PM4_DEST_BASE_6_ENA_SIZE 1
+#define COHER_STATUS_PM4_DEST_BASE_7_ENA_SIZE 1
+#define COHER_STATUS_PM4_RB_COLOR_INFO_ENA_SIZE 1
+#define COHER_STATUS_PM4_TC_ACTION_ENA_SIZE 1
+#define COHER_STATUS_PM4_STATUS_SIZE 1
+
+#define COHER_STATUS_PM4_MATCHING_CONTEXTS_SHIFT 0
+#define COHER_STATUS_PM4_RB_COPY_DEST_BASE_ENA_SHIFT 8
+#define COHER_STATUS_PM4_DEST_BASE_0_ENA_SHIFT 9
+#define COHER_STATUS_PM4_DEST_BASE_1_ENA_SHIFT 10
+#define COHER_STATUS_PM4_DEST_BASE_2_ENA_SHIFT 11
+#define COHER_STATUS_PM4_DEST_BASE_3_ENA_SHIFT 12
+#define COHER_STATUS_PM4_DEST_BASE_4_ENA_SHIFT 13
+#define COHER_STATUS_PM4_DEST_BASE_5_ENA_SHIFT 14
+#define COHER_STATUS_PM4_DEST_BASE_6_ENA_SHIFT 15
+#define COHER_STATUS_PM4_DEST_BASE_7_ENA_SHIFT 16
+#define COHER_STATUS_PM4_RB_COLOR_INFO_ENA_SHIFT 17
+#define COHER_STATUS_PM4_TC_ACTION_ENA_SHIFT 25
+#define COHER_STATUS_PM4_STATUS_SHIFT 31
+
+#define COHER_STATUS_PM4_MATCHING_CONTEXTS_MASK 0x000000ff
+#define COHER_STATUS_PM4_RB_COPY_DEST_BASE_ENA_MASK 0x00000100
+#define COHER_STATUS_PM4_DEST_BASE_0_ENA_MASK 0x00000200
+#define COHER_STATUS_PM4_DEST_BASE_1_ENA_MASK 0x00000400
+#define COHER_STATUS_PM4_DEST_BASE_2_ENA_MASK 0x00000800
+#define COHER_STATUS_PM4_DEST_BASE_3_ENA_MASK 0x00001000
+#define COHER_STATUS_PM4_DEST_BASE_4_ENA_MASK 0x00002000
+#define COHER_STATUS_PM4_DEST_BASE_5_ENA_MASK 0x00004000
+#define COHER_STATUS_PM4_DEST_BASE_6_ENA_MASK 0x00008000
+#define COHER_STATUS_PM4_DEST_BASE_7_ENA_MASK 0x00010000
+#define COHER_STATUS_PM4_RB_COLOR_INFO_ENA_MASK 0x00020000
+#define COHER_STATUS_PM4_TC_ACTION_ENA_MASK 0x02000000
+#define COHER_STATUS_PM4_STATUS_MASK 0x80000000
+
+#define COHER_STATUS_PM4_MASK \
+ (COHER_STATUS_PM4_MATCHING_CONTEXTS_MASK | \
+ COHER_STATUS_PM4_RB_COPY_DEST_BASE_ENA_MASK | \
+ COHER_STATUS_PM4_DEST_BASE_0_ENA_MASK | \
+ COHER_STATUS_PM4_DEST_BASE_1_ENA_MASK | \
+ COHER_STATUS_PM4_DEST_BASE_2_ENA_MASK | \
+ COHER_STATUS_PM4_DEST_BASE_3_ENA_MASK | \
+ COHER_STATUS_PM4_DEST_BASE_4_ENA_MASK | \
+ COHER_STATUS_PM4_DEST_BASE_5_ENA_MASK | \
+ COHER_STATUS_PM4_DEST_BASE_6_ENA_MASK | \
+ COHER_STATUS_PM4_DEST_BASE_7_ENA_MASK | \
+ COHER_STATUS_PM4_RB_COLOR_INFO_ENA_MASK | \
+ COHER_STATUS_PM4_TC_ACTION_ENA_MASK | \
+ COHER_STATUS_PM4_STATUS_MASK)
+
+#define COHER_STATUS_PM4(matching_contexts, rb_copy_dest_base_ena, dest_base_0_ena, dest_base_1_ena, dest_base_2_ena, dest_base_3_ena, dest_base_4_ena, dest_base_5_ena, dest_base_6_ena, dest_base_7_ena, rb_color_info_ena, tc_action_ena, status) \
+ ((matching_contexts << COHER_STATUS_PM4_MATCHING_CONTEXTS_SHIFT) | \
+ (rb_copy_dest_base_ena << COHER_STATUS_PM4_RB_COPY_DEST_BASE_ENA_SHIFT) | \
+ (dest_base_0_ena << COHER_STATUS_PM4_DEST_BASE_0_ENA_SHIFT) | \
+ (dest_base_1_ena << COHER_STATUS_PM4_DEST_BASE_1_ENA_SHIFT) | \
+ (dest_base_2_ena << COHER_STATUS_PM4_DEST_BASE_2_ENA_SHIFT) | \
+ (dest_base_3_ena << COHER_STATUS_PM4_DEST_BASE_3_ENA_SHIFT) | \
+ (dest_base_4_ena << COHER_STATUS_PM4_DEST_BASE_4_ENA_SHIFT) | \
+ (dest_base_5_ena << COHER_STATUS_PM4_DEST_BASE_5_ENA_SHIFT) | \
+ (dest_base_6_ena << COHER_STATUS_PM4_DEST_BASE_6_ENA_SHIFT) | \
+ (dest_base_7_ena << COHER_STATUS_PM4_DEST_BASE_7_ENA_SHIFT) | \
+ (rb_color_info_ena << COHER_STATUS_PM4_RB_COLOR_INFO_ENA_SHIFT) | \
+ (tc_action_ena << COHER_STATUS_PM4_TC_ACTION_ENA_SHIFT) | \
+ (status << COHER_STATUS_PM4_STATUS_SHIFT))
+
+#define COHER_STATUS_PM4_GET_MATCHING_CONTEXTS(coher_status_pm4) \
+ ((coher_status_pm4 & COHER_STATUS_PM4_MATCHING_CONTEXTS_MASK) >> COHER_STATUS_PM4_MATCHING_CONTEXTS_SHIFT)
+#define COHER_STATUS_PM4_GET_RB_COPY_DEST_BASE_ENA(coher_status_pm4) \
+ ((coher_status_pm4 & COHER_STATUS_PM4_RB_COPY_DEST_BASE_ENA_MASK) >> COHER_STATUS_PM4_RB_COPY_DEST_BASE_ENA_SHIFT)
+#define COHER_STATUS_PM4_GET_DEST_BASE_0_ENA(coher_status_pm4) \
+ ((coher_status_pm4 & COHER_STATUS_PM4_DEST_BASE_0_ENA_MASK) >> COHER_STATUS_PM4_DEST_BASE_0_ENA_SHIFT)
+#define COHER_STATUS_PM4_GET_DEST_BASE_1_ENA(coher_status_pm4) \
+ ((coher_status_pm4 & COHER_STATUS_PM4_DEST_BASE_1_ENA_MASK) >> COHER_STATUS_PM4_DEST_BASE_1_ENA_SHIFT)
+#define COHER_STATUS_PM4_GET_DEST_BASE_2_ENA(coher_status_pm4) \
+ ((coher_status_pm4 & COHER_STATUS_PM4_DEST_BASE_2_ENA_MASK) >> COHER_STATUS_PM4_DEST_BASE_2_ENA_SHIFT)
+#define COHER_STATUS_PM4_GET_DEST_BASE_3_ENA(coher_status_pm4) \
+ ((coher_status_pm4 & COHER_STATUS_PM4_DEST_BASE_3_ENA_MASK) >> COHER_STATUS_PM4_DEST_BASE_3_ENA_SHIFT)
+#define COHER_STATUS_PM4_GET_DEST_BASE_4_ENA(coher_status_pm4) \
+ ((coher_status_pm4 & COHER_STATUS_PM4_DEST_BASE_4_ENA_MASK) >> COHER_STATUS_PM4_DEST_BASE_4_ENA_SHIFT)
+#define COHER_STATUS_PM4_GET_DEST_BASE_5_ENA(coher_status_pm4) \
+ ((coher_status_pm4 & COHER_STATUS_PM4_DEST_BASE_5_ENA_MASK) >> COHER_STATUS_PM4_DEST_BASE_5_ENA_SHIFT)
+#define COHER_STATUS_PM4_GET_DEST_BASE_6_ENA(coher_status_pm4) \
+ ((coher_status_pm4 & COHER_STATUS_PM4_DEST_BASE_6_ENA_MASK) >> COHER_STATUS_PM4_DEST_BASE_6_ENA_SHIFT)
+#define COHER_STATUS_PM4_GET_DEST_BASE_7_ENA(coher_status_pm4) \
+ ((coher_status_pm4 & COHER_STATUS_PM4_DEST_BASE_7_ENA_MASK) >> COHER_STATUS_PM4_DEST_BASE_7_ENA_SHIFT)
+#define COHER_STATUS_PM4_GET_RB_COLOR_INFO_ENA(coher_status_pm4) \
+ ((coher_status_pm4 & COHER_STATUS_PM4_RB_COLOR_INFO_ENA_MASK) >> COHER_STATUS_PM4_RB_COLOR_INFO_ENA_SHIFT)
+#define COHER_STATUS_PM4_GET_TC_ACTION_ENA(coher_status_pm4) \
+ ((coher_status_pm4 & COHER_STATUS_PM4_TC_ACTION_ENA_MASK) >> COHER_STATUS_PM4_TC_ACTION_ENA_SHIFT)
+#define COHER_STATUS_PM4_GET_STATUS(coher_status_pm4) \
+ ((coher_status_pm4 & COHER_STATUS_PM4_STATUS_MASK) >> COHER_STATUS_PM4_STATUS_SHIFT)
+
+#define COHER_STATUS_PM4_SET_MATCHING_CONTEXTS(coher_status_pm4_reg, matching_contexts) \
+ coher_status_pm4_reg = (coher_status_pm4_reg & ~COHER_STATUS_PM4_MATCHING_CONTEXTS_MASK) | (matching_contexts << COHER_STATUS_PM4_MATCHING_CONTEXTS_SHIFT)
+#define COHER_STATUS_PM4_SET_RB_COPY_DEST_BASE_ENA(coher_status_pm4_reg, rb_copy_dest_base_ena) \
+ coher_status_pm4_reg = (coher_status_pm4_reg & ~COHER_STATUS_PM4_RB_COPY_DEST_BASE_ENA_MASK) | (rb_copy_dest_base_ena << COHER_STATUS_PM4_RB_COPY_DEST_BASE_ENA_SHIFT)
+#define COHER_STATUS_PM4_SET_DEST_BASE_0_ENA(coher_status_pm4_reg, dest_base_0_ena) \
+ coher_status_pm4_reg = (coher_status_pm4_reg & ~COHER_STATUS_PM4_DEST_BASE_0_ENA_MASK) | (dest_base_0_ena << COHER_STATUS_PM4_DEST_BASE_0_ENA_SHIFT)
+#define COHER_STATUS_PM4_SET_DEST_BASE_1_ENA(coher_status_pm4_reg, dest_base_1_ena) \
+ coher_status_pm4_reg = (coher_status_pm4_reg & ~COHER_STATUS_PM4_DEST_BASE_1_ENA_MASK) | (dest_base_1_ena << COHER_STATUS_PM4_DEST_BASE_1_ENA_SHIFT)
+#define COHER_STATUS_PM4_SET_DEST_BASE_2_ENA(coher_status_pm4_reg, dest_base_2_ena) \
+ coher_status_pm4_reg = (coher_status_pm4_reg & ~COHER_STATUS_PM4_DEST_BASE_2_ENA_MASK) | (dest_base_2_ena << COHER_STATUS_PM4_DEST_BASE_2_ENA_SHIFT)
+#define COHER_STATUS_PM4_SET_DEST_BASE_3_ENA(coher_status_pm4_reg, dest_base_3_ena) \
+ coher_status_pm4_reg = (coher_status_pm4_reg & ~COHER_STATUS_PM4_DEST_BASE_3_ENA_MASK) | (dest_base_3_ena << COHER_STATUS_PM4_DEST_BASE_3_ENA_SHIFT)
+#define COHER_STATUS_PM4_SET_DEST_BASE_4_ENA(coher_status_pm4_reg, dest_base_4_ena) \
+ coher_status_pm4_reg = (coher_status_pm4_reg & ~COHER_STATUS_PM4_DEST_BASE_4_ENA_MASK) | (dest_base_4_ena << COHER_STATUS_PM4_DEST_BASE_4_ENA_SHIFT)
+#define COHER_STATUS_PM4_SET_DEST_BASE_5_ENA(coher_status_pm4_reg, dest_base_5_ena) \
+ coher_status_pm4_reg = (coher_status_pm4_reg & ~COHER_STATUS_PM4_DEST_BASE_5_ENA_MASK) | (dest_base_5_ena << COHER_STATUS_PM4_DEST_BASE_5_ENA_SHIFT)
+#define COHER_STATUS_PM4_SET_DEST_BASE_6_ENA(coher_status_pm4_reg, dest_base_6_ena) \
+ coher_status_pm4_reg = (coher_status_pm4_reg & ~COHER_STATUS_PM4_DEST_BASE_6_ENA_MASK) | (dest_base_6_ena << COHER_STATUS_PM4_DEST_BASE_6_ENA_SHIFT)
+#define COHER_STATUS_PM4_SET_DEST_BASE_7_ENA(coher_status_pm4_reg, dest_base_7_ena) \
+ coher_status_pm4_reg = (coher_status_pm4_reg & ~COHER_STATUS_PM4_DEST_BASE_7_ENA_MASK) | (dest_base_7_ena << COHER_STATUS_PM4_DEST_BASE_7_ENA_SHIFT)
+#define COHER_STATUS_PM4_SET_RB_COLOR_INFO_ENA(coher_status_pm4_reg, rb_color_info_ena) \
+ coher_status_pm4_reg = (coher_status_pm4_reg & ~COHER_STATUS_PM4_RB_COLOR_INFO_ENA_MASK) | (rb_color_info_ena << COHER_STATUS_PM4_RB_COLOR_INFO_ENA_SHIFT)
+#define COHER_STATUS_PM4_SET_TC_ACTION_ENA(coher_status_pm4_reg, tc_action_ena) \
+ coher_status_pm4_reg = (coher_status_pm4_reg & ~COHER_STATUS_PM4_TC_ACTION_ENA_MASK) | (tc_action_ena << COHER_STATUS_PM4_TC_ACTION_ENA_SHIFT)
+#define COHER_STATUS_PM4_SET_STATUS(coher_status_pm4_reg, status) \
+ coher_status_pm4_reg = (coher_status_pm4_reg & ~COHER_STATUS_PM4_STATUS_MASK) | (status << COHER_STATUS_PM4_STATUS_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _coher_status_pm4_t {
+ unsigned int matching_contexts : COHER_STATUS_PM4_MATCHING_CONTEXTS_SIZE;
+ unsigned int rb_copy_dest_base_ena : COHER_STATUS_PM4_RB_COPY_DEST_BASE_ENA_SIZE;
+ unsigned int dest_base_0_ena : COHER_STATUS_PM4_DEST_BASE_0_ENA_SIZE;
+ unsigned int dest_base_1_ena : COHER_STATUS_PM4_DEST_BASE_1_ENA_SIZE;
+ unsigned int dest_base_2_ena : COHER_STATUS_PM4_DEST_BASE_2_ENA_SIZE;
+ unsigned int dest_base_3_ena : COHER_STATUS_PM4_DEST_BASE_3_ENA_SIZE;
+ unsigned int dest_base_4_ena : COHER_STATUS_PM4_DEST_BASE_4_ENA_SIZE;
+ unsigned int dest_base_5_ena : COHER_STATUS_PM4_DEST_BASE_5_ENA_SIZE;
+ unsigned int dest_base_6_ena : COHER_STATUS_PM4_DEST_BASE_6_ENA_SIZE;
+ unsigned int dest_base_7_ena : COHER_STATUS_PM4_DEST_BASE_7_ENA_SIZE;
+ unsigned int rb_color_info_ena : COHER_STATUS_PM4_RB_COLOR_INFO_ENA_SIZE;
+ unsigned int : 7;
+ unsigned int tc_action_ena : COHER_STATUS_PM4_TC_ACTION_ENA_SIZE;
+ unsigned int : 5;
+ unsigned int status : COHER_STATUS_PM4_STATUS_SIZE;
+ } coher_status_pm4_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _coher_status_pm4_t {
+ unsigned int status : COHER_STATUS_PM4_STATUS_SIZE;
+ unsigned int : 5;
+ unsigned int tc_action_ena : COHER_STATUS_PM4_TC_ACTION_ENA_SIZE;
+ unsigned int : 7;
+ unsigned int rb_color_info_ena : COHER_STATUS_PM4_RB_COLOR_INFO_ENA_SIZE;
+ unsigned int dest_base_7_ena : COHER_STATUS_PM4_DEST_BASE_7_ENA_SIZE;
+ unsigned int dest_base_6_ena : COHER_STATUS_PM4_DEST_BASE_6_ENA_SIZE;
+ unsigned int dest_base_5_ena : COHER_STATUS_PM4_DEST_BASE_5_ENA_SIZE;
+ unsigned int dest_base_4_ena : COHER_STATUS_PM4_DEST_BASE_4_ENA_SIZE;
+ unsigned int dest_base_3_ena : COHER_STATUS_PM4_DEST_BASE_3_ENA_SIZE;
+ unsigned int dest_base_2_ena : COHER_STATUS_PM4_DEST_BASE_2_ENA_SIZE;
+ unsigned int dest_base_1_ena : COHER_STATUS_PM4_DEST_BASE_1_ENA_SIZE;
+ unsigned int dest_base_0_ena : COHER_STATUS_PM4_DEST_BASE_0_ENA_SIZE;
+ unsigned int rb_copy_dest_base_ena : COHER_STATUS_PM4_RB_COPY_DEST_BASE_ENA_SIZE;
+ unsigned int matching_contexts : COHER_STATUS_PM4_MATCHING_CONTEXTS_SIZE;
+ } coher_status_pm4_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ coher_status_pm4_t f;
+} coher_status_pm4_u;
+
+
+/*
+ * COHER_SIZE_HOST struct
+ */
+
+#define COHER_SIZE_HOST_SIZE_SIZE 32
+
+#define COHER_SIZE_HOST_SIZE_SHIFT 0
+
+#define COHER_SIZE_HOST_SIZE_MASK 0xffffffff
+
+#define COHER_SIZE_HOST_MASK \
+ (COHER_SIZE_HOST_SIZE_MASK)
+
+#define COHER_SIZE_HOST(size) \
+ ((size << COHER_SIZE_HOST_SIZE_SHIFT))
+
+#define COHER_SIZE_HOST_GET_SIZE(coher_size_host) \
+ ((coher_size_host & COHER_SIZE_HOST_SIZE_MASK) >> COHER_SIZE_HOST_SIZE_SHIFT)
+
+#define COHER_SIZE_HOST_SET_SIZE(coher_size_host_reg, size) \
+ coher_size_host_reg = (coher_size_host_reg & ~COHER_SIZE_HOST_SIZE_MASK) | (size << COHER_SIZE_HOST_SIZE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _coher_size_host_t {
+ unsigned int size : COHER_SIZE_HOST_SIZE_SIZE;
+ } coher_size_host_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _coher_size_host_t {
+ unsigned int size : COHER_SIZE_HOST_SIZE_SIZE;
+ } coher_size_host_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ coher_size_host_t f;
+} coher_size_host_u;
+
+
+/*
+ * COHER_BASE_HOST struct
+ */
+
+#define COHER_BASE_HOST_BASE_SIZE 32
+
+#define COHER_BASE_HOST_BASE_SHIFT 0
+
+#define COHER_BASE_HOST_BASE_MASK 0xffffffff
+
+#define COHER_BASE_HOST_MASK \
+ (COHER_BASE_HOST_BASE_MASK)
+
+#define COHER_BASE_HOST(base) \
+ ((base << COHER_BASE_HOST_BASE_SHIFT))
+
+#define COHER_BASE_HOST_GET_BASE(coher_base_host) \
+ ((coher_base_host & COHER_BASE_HOST_BASE_MASK) >> COHER_BASE_HOST_BASE_SHIFT)
+
+#define COHER_BASE_HOST_SET_BASE(coher_base_host_reg, base) \
+ coher_base_host_reg = (coher_base_host_reg & ~COHER_BASE_HOST_BASE_MASK) | (base << COHER_BASE_HOST_BASE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _coher_base_host_t {
+ unsigned int base : COHER_BASE_HOST_BASE_SIZE;
+ } coher_base_host_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _coher_base_host_t {
+ unsigned int base : COHER_BASE_HOST_BASE_SIZE;
+ } coher_base_host_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ coher_base_host_t f;
+} coher_base_host_u;
+
+
+/*
+ * COHER_STATUS_HOST struct
+ */
+
+#define COHER_STATUS_HOST_MATCHING_CONTEXTS_SIZE 8
+#define COHER_STATUS_HOST_RB_COPY_DEST_BASE_ENA_SIZE 1
+#define COHER_STATUS_HOST_DEST_BASE_0_ENA_SIZE 1
+#define COHER_STATUS_HOST_DEST_BASE_1_ENA_SIZE 1
+#define COHER_STATUS_HOST_DEST_BASE_2_ENA_SIZE 1
+#define COHER_STATUS_HOST_DEST_BASE_3_ENA_SIZE 1
+#define COHER_STATUS_HOST_DEST_BASE_4_ENA_SIZE 1
+#define COHER_STATUS_HOST_DEST_BASE_5_ENA_SIZE 1
+#define COHER_STATUS_HOST_DEST_BASE_6_ENA_SIZE 1
+#define COHER_STATUS_HOST_DEST_BASE_7_ENA_SIZE 1
+#define COHER_STATUS_HOST_RB_COLOR_INFO_ENA_SIZE 1
+#define COHER_STATUS_HOST_TC_ACTION_ENA_SIZE 1
+#define COHER_STATUS_HOST_STATUS_SIZE 1
+
+#define COHER_STATUS_HOST_MATCHING_CONTEXTS_SHIFT 0
+#define COHER_STATUS_HOST_RB_COPY_DEST_BASE_ENA_SHIFT 8
+#define COHER_STATUS_HOST_DEST_BASE_0_ENA_SHIFT 9
+#define COHER_STATUS_HOST_DEST_BASE_1_ENA_SHIFT 10
+#define COHER_STATUS_HOST_DEST_BASE_2_ENA_SHIFT 11
+#define COHER_STATUS_HOST_DEST_BASE_3_ENA_SHIFT 12
+#define COHER_STATUS_HOST_DEST_BASE_4_ENA_SHIFT 13
+#define COHER_STATUS_HOST_DEST_BASE_5_ENA_SHIFT 14
+#define COHER_STATUS_HOST_DEST_BASE_6_ENA_SHIFT 15
+#define COHER_STATUS_HOST_DEST_BASE_7_ENA_SHIFT 16
+#define COHER_STATUS_HOST_RB_COLOR_INFO_ENA_SHIFT 17
+#define COHER_STATUS_HOST_TC_ACTION_ENA_SHIFT 25
+#define COHER_STATUS_HOST_STATUS_SHIFT 31
+
+#define COHER_STATUS_HOST_MATCHING_CONTEXTS_MASK 0x000000ff
+#define COHER_STATUS_HOST_RB_COPY_DEST_BASE_ENA_MASK 0x00000100
+#define COHER_STATUS_HOST_DEST_BASE_0_ENA_MASK 0x00000200
+#define COHER_STATUS_HOST_DEST_BASE_1_ENA_MASK 0x00000400
+#define COHER_STATUS_HOST_DEST_BASE_2_ENA_MASK 0x00000800
+#define COHER_STATUS_HOST_DEST_BASE_3_ENA_MASK 0x00001000
+#define COHER_STATUS_HOST_DEST_BASE_4_ENA_MASK 0x00002000
+#define COHER_STATUS_HOST_DEST_BASE_5_ENA_MASK 0x00004000
+#define COHER_STATUS_HOST_DEST_BASE_6_ENA_MASK 0x00008000
+#define COHER_STATUS_HOST_DEST_BASE_7_ENA_MASK 0x00010000
+#define COHER_STATUS_HOST_RB_COLOR_INFO_ENA_MASK 0x00020000
+#define COHER_STATUS_HOST_TC_ACTION_ENA_MASK 0x02000000
+#define COHER_STATUS_HOST_STATUS_MASK 0x80000000
+
+#define COHER_STATUS_HOST_MASK \
+ (COHER_STATUS_HOST_MATCHING_CONTEXTS_MASK | \
+ COHER_STATUS_HOST_RB_COPY_DEST_BASE_ENA_MASK | \
+ COHER_STATUS_HOST_DEST_BASE_0_ENA_MASK | \
+ COHER_STATUS_HOST_DEST_BASE_1_ENA_MASK | \
+ COHER_STATUS_HOST_DEST_BASE_2_ENA_MASK | \
+ COHER_STATUS_HOST_DEST_BASE_3_ENA_MASK | \
+ COHER_STATUS_HOST_DEST_BASE_4_ENA_MASK | \
+ COHER_STATUS_HOST_DEST_BASE_5_ENA_MASK | \
+ COHER_STATUS_HOST_DEST_BASE_6_ENA_MASK | \
+ COHER_STATUS_HOST_DEST_BASE_7_ENA_MASK | \
+ COHER_STATUS_HOST_RB_COLOR_INFO_ENA_MASK | \
+ COHER_STATUS_HOST_TC_ACTION_ENA_MASK | \
+ COHER_STATUS_HOST_STATUS_MASK)
+
+#define COHER_STATUS_HOST(matching_contexts, rb_copy_dest_base_ena, dest_base_0_ena, dest_base_1_ena, dest_base_2_ena, dest_base_3_ena, dest_base_4_ena, dest_base_5_ena, dest_base_6_ena, dest_base_7_ena, rb_color_info_ena, tc_action_ena, status) \
+ ((matching_contexts << COHER_STATUS_HOST_MATCHING_CONTEXTS_SHIFT) | \
+ (rb_copy_dest_base_ena << COHER_STATUS_HOST_RB_COPY_DEST_BASE_ENA_SHIFT) | \
+ (dest_base_0_ena << COHER_STATUS_HOST_DEST_BASE_0_ENA_SHIFT) | \
+ (dest_base_1_ena << COHER_STATUS_HOST_DEST_BASE_1_ENA_SHIFT) | \
+ (dest_base_2_ena << COHER_STATUS_HOST_DEST_BASE_2_ENA_SHIFT) | \
+ (dest_base_3_ena << COHER_STATUS_HOST_DEST_BASE_3_ENA_SHIFT) | \
+ (dest_base_4_ena << COHER_STATUS_HOST_DEST_BASE_4_ENA_SHIFT) | \
+ (dest_base_5_ena << COHER_STATUS_HOST_DEST_BASE_5_ENA_SHIFT) | \
+ (dest_base_6_ena << COHER_STATUS_HOST_DEST_BASE_6_ENA_SHIFT) | \
+ (dest_base_7_ena << COHER_STATUS_HOST_DEST_BASE_7_ENA_SHIFT) | \
+ (rb_color_info_ena << COHER_STATUS_HOST_RB_COLOR_INFO_ENA_SHIFT) | \
+ (tc_action_ena << COHER_STATUS_HOST_TC_ACTION_ENA_SHIFT) | \
+ (status << COHER_STATUS_HOST_STATUS_SHIFT))
+
+#define COHER_STATUS_HOST_GET_MATCHING_CONTEXTS(coher_status_host) \
+ ((coher_status_host & COHER_STATUS_HOST_MATCHING_CONTEXTS_MASK) >> COHER_STATUS_HOST_MATCHING_CONTEXTS_SHIFT)
+#define COHER_STATUS_HOST_GET_RB_COPY_DEST_BASE_ENA(coher_status_host) \
+ ((coher_status_host & COHER_STATUS_HOST_RB_COPY_DEST_BASE_ENA_MASK) >> COHER_STATUS_HOST_RB_COPY_DEST_BASE_ENA_SHIFT)
+#define COHER_STATUS_HOST_GET_DEST_BASE_0_ENA(coher_status_host) \
+ ((coher_status_host & COHER_STATUS_HOST_DEST_BASE_0_ENA_MASK) >> COHER_STATUS_HOST_DEST_BASE_0_ENA_SHIFT)
+#define COHER_STATUS_HOST_GET_DEST_BASE_1_ENA(coher_status_host) \
+ ((coher_status_host & COHER_STATUS_HOST_DEST_BASE_1_ENA_MASK) >> COHER_STATUS_HOST_DEST_BASE_1_ENA_SHIFT)
+#define COHER_STATUS_HOST_GET_DEST_BASE_2_ENA(coher_status_host) \
+ ((coher_status_host & COHER_STATUS_HOST_DEST_BASE_2_ENA_MASK) >> COHER_STATUS_HOST_DEST_BASE_2_ENA_SHIFT)
+#define COHER_STATUS_HOST_GET_DEST_BASE_3_ENA(coher_status_host) \
+ ((coher_status_host & COHER_STATUS_HOST_DEST_BASE_3_ENA_MASK) >> COHER_STATUS_HOST_DEST_BASE_3_ENA_SHIFT)
+#define COHER_STATUS_HOST_GET_DEST_BASE_4_ENA(coher_status_host) \
+ ((coher_status_host & COHER_STATUS_HOST_DEST_BASE_4_ENA_MASK) >> COHER_STATUS_HOST_DEST_BASE_4_ENA_SHIFT)
+#define COHER_STATUS_HOST_GET_DEST_BASE_5_ENA(coher_status_host) \
+ ((coher_status_host & COHER_STATUS_HOST_DEST_BASE_5_ENA_MASK) >> COHER_STATUS_HOST_DEST_BASE_5_ENA_SHIFT)
+#define COHER_STATUS_HOST_GET_DEST_BASE_6_ENA(coher_status_host) \
+ ((coher_status_host & COHER_STATUS_HOST_DEST_BASE_6_ENA_MASK) >> COHER_STATUS_HOST_DEST_BASE_6_ENA_SHIFT)
+#define COHER_STATUS_HOST_GET_DEST_BASE_7_ENA(coher_status_host) \
+ ((coher_status_host & COHER_STATUS_HOST_DEST_BASE_7_ENA_MASK) >> COHER_STATUS_HOST_DEST_BASE_7_ENA_SHIFT)
+#define COHER_STATUS_HOST_GET_RB_COLOR_INFO_ENA(coher_status_host) \
+ ((coher_status_host & COHER_STATUS_HOST_RB_COLOR_INFO_ENA_MASK) >> COHER_STATUS_HOST_RB_COLOR_INFO_ENA_SHIFT)
+#define COHER_STATUS_HOST_GET_TC_ACTION_ENA(coher_status_host) \
+ ((coher_status_host & COHER_STATUS_HOST_TC_ACTION_ENA_MASK) >> COHER_STATUS_HOST_TC_ACTION_ENA_SHIFT)
+#define COHER_STATUS_HOST_GET_STATUS(coher_status_host) \
+ ((coher_status_host & COHER_STATUS_HOST_STATUS_MASK) >> COHER_STATUS_HOST_STATUS_SHIFT)
+
+#define COHER_STATUS_HOST_SET_MATCHING_CONTEXTS(coher_status_host_reg, matching_contexts) \
+ coher_status_host_reg = (coher_status_host_reg & ~COHER_STATUS_HOST_MATCHING_CONTEXTS_MASK) | (matching_contexts << COHER_STATUS_HOST_MATCHING_CONTEXTS_SHIFT)
+#define COHER_STATUS_HOST_SET_RB_COPY_DEST_BASE_ENA(coher_status_host_reg, rb_copy_dest_base_ena) \
+ coher_status_host_reg = (coher_status_host_reg & ~COHER_STATUS_HOST_RB_COPY_DEST_BASE_ENA_MASK) | (rb_copy_dest_base_ena << COHER_STATUS_HOST_RB_COPY_DEST_BASE_ENA_SHIFT)
+#define COHER_STATUS_HOST_SET_DEST_BASE_0_ENA(coher_status_host_reg, dest_base_0_ena) \
+ coher_status_host_reg = (coher_status_host_reg & ~COHER_STATUS_HOST_DEST_BASE_0_ENA_MASK) | (dest_base_0_ena << COHER_STATUS_HOST_DEST_BASE_0_ENA_SHIFT)
+#define COHER_STATUS_HOST_SET_DEST_BASE_1_ENA(coher_status_host_reg, dest_base_1_ena) \
+ coher_status_host_reg = (coher_status_host_reg & ~COHER_STATUS_HOST_DEST_BASE_1_ENA_MASK) | (dest_base_1_ena << COHER_STATUS_HOST_DEST_BASE_1_ENA_SHIFT)
+#define COHER_STATUS_HOST_SET_DEST_BASE_2_ENA(coher_status_host_reg, dest_base_2_ena) \
+ coher_status_host_reg = (coher_status_host_reg & ~COHER_STATUS_HOST_DEST_BASE_2_ENA_MASK) | (dest_base_2_ena << COHER_STATUS_HOST_DEST_BASE_2_ENA_SHIFT)
+#define COHER_STATUS_HOST_SET_DEST_BASE_3_ENA(coher_status_host_reg, dest_base_3_ena) \
+ coher_status_host_reg = (coher_status_host_reg & ~COHER_STATUS_HOST_DEST_BASE_3_ENA_MASK) | (dest_base_3_ena << COHER_STATUS_HOST_DEST_BASE_3_ENA_SHIFT)
+#define COHER_STATUS_HOST_SET_DEST_BASE_4_ENA(coher_status_host_reg, dest_base_4_ena) \
+ coher_status_host_reg = (coher_status_host_reg & ~COHER_STATUS_HOST_DEST_BASE_4_ENA_MASK) | (dest_base_4_ena << COHER_STATUS_HOST_DEST_BASE_4_ENA_SHIFT)
+#define COHER_STATUS_HOST_SET_DEST_BASE_5_ENA(coher_status_host_reg, dest_base_5_ena) \
+ coher_status_host_reg = (coher_status_host_reg & ~COHER_STATUS_HOST_DEST_BASE_5_ENA_MASK) | (dest_base_5_ena << COHER_STATUS_HOST_DEST_BASE_5_ENA_SHIFT)
+#define COHER_STATUS_HOST_SET_DEST_BASE_6_ENA(coher_status_host_reg, dest_base_6_ena) \
+ coher_status_host_reg = (coher_status_host_reg & ~COHER_STATUS_HOST_DEST_BASE_6_ENA_MASK) | (dest_base_6_ena << COHER_STATUS_HOST_DEST_BASE_6_ENA_SHIFT)
+#define COHER_STATUS_HOST_SET_DEST_BASE_7_ENA(coher_status_host_reg, dest_base_7_ena) \
+ coher_status_host_reg = (coher_status_host_reg & ~COHER_STATUS_HOST_DEST_BASE_7_ENA_MASK) | (dest_base_7_ena << COHER_STATUS_HOST_DEST_BASE_7_ENA_SHIFT)
+#define COHER_STATUS_HOST_SET_RB_COLOR_INFO_ENA(coher_status_host_reg, rb_color_info_ena) \
+ coher_status_host_reg = (coher_status_host_reg & ~COHER_STATUS_HOST_RB_COLOR_INFO_ENA_MASK) | (rb_color_info_ena << COHER_STATUS_HOST_RB_COLOR_INFO_ENA_SHIFT)
+#define COHER_STATUS_HOST_SET_TC_ACTION_ENA(coher_status_host_reg, tc_action_ena) \
+ coher_status_host_reg = (coher_status_host_reg & ~COHER_STATUS_HOST_TC_ACTION_ENA_MASK) | (tc_action_ena << COHER_STATUS_HOST_TC_ACTION_ENA_SHIFT)
+#define COHER_STATUS_HOST_SET_STATUS(coher_status_host_reg, status) \
+ coher_status_host_reg = (coher_status_host_reg & ~COHER_STATUS_HOST_STATUS_MASK) | (status << COHER_STATUS_HOST_STATUS_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _coher_status_host_t {
+ unsigned int matching_contexts : COHER_STATUS_HOST_MATCHING_CONTEXTS_SIZE;
+ unsigned int rb_copy_dest_base_ena : COHER_STATUS_HOST_RB_COPY_DEST_BASE_ENA_SIZE;
+ unsigned int dest_base_0_ena : COHER_STATUS_HOST_DEST_BASE_0_ENA_SIZE;
+ unsigned int dest_base_1_ena : COHER_STATUS_HOST_DEST_BASE_1_ENA_SIZE;
+ unsigned int dest_base_2_ena : COHER_STATUS_HOST_DEST_BASE_2_ENA_SIZE;
+ unsigned int dest_base_3_ena : COHER_STATUS_HOST_DEST_BASE_3_ENA_SIZE;
+ unsigned int dest_base_4_ena : COHER_STATUS_HOST_DEST_BASE_4_ENA_SIZE;
+ unsigned int dest_base_5_ena : COHER_STATUS_HOST_DEST_BASE_5_ENA_SIZE;
+ unsigned int dest_base_6_ena : COHER_STATUS_HOST_DEST_BASE_6_ENA_SIZE;
+ unsigned int dest_base_7_ena : COHER_STATUS_HOST_DEST_BASE_7_ENA_SIZE;
+ unsigned int rb_color_info_ena : COHER_STATUS_HOST_RB_COLOR_INFO_ENA_SIZE;
+ unsigned int : 7;
+ unsigned int tc_action_ena : COHER_STATUS_HOST_TC_ACTION_ENA_SIZE;
+ unsigned int : 5;
+ unsigned int status : COHER_STATUS_HOST_STATUS_SIZE;
+ } coher_status_host_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _coher_status_host_t {
+ unsigned int status : COHER_STATUS_HOST_STATUS_SIZE;
+ unsigned int : 5;
+ unsigned int tc_action_ena : COHER_STATUS_HOST_TC_ACTION_ENA_SIZE;
+ unsigned int : 7;
+ unsigned int rb_color_info_ena : COHER_STATUS_HOST_RB_COLOR_INFO_ENA_SIZE;
+ unsigned int dest_base_7_ena : COHER_STATUS_HOST_DEST_BASE_7_ENA_SIZE;
+ unsigned int dest_base_6_ena : COHER_STATUS_HOST_DEST_BASE_6_ENA_SIZE;
+ unsigned int dest_base_5_ena : COHER_STATUS_HOST_DEST_BASE_5_ENA_SIZE;
+ unsigned int dest_base_4_ena : COHER_STATUS_HOST_DEST_BASE_4_ENA_SIZE;
+ unsigned int dest_base_3_ena : COHER_STATUS_HOST_DEST_BASE_3_ENA_SIZE;
+ unsigned int dest_base_2_ena : COHER_STATUS_HOST_DEST_BASE_2_ENA_SIZE;
+ unsigned int dest_base_1_ena : COHER_STATUS_HOST_DEST_BASE_1_ENA_SIZE;
+ unsigned int dest_base_0_ena : COHER_STATUS_HOST_DEST_BASE_0_ENA_SIZE;
+ unsigned int rb_copy_dest_base_ena : COHER_STATUS_HOST_RB_COPY_DEST_BASE_ENA_SIZE;
+ unsigned int matching_contexts : COHER_STATUS_HOST_MATCHING_CONTEXTS_SIZE;
+ } coher_status_host_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ coher_status_host_t f;
+} coher_status_host_u;
+
+
+/*
+ * COHER_DEST_BASE_0 struct
+ */
+
+#define COHER_DEST_BASE_0_DEST_BASE_0_SIZE 20
+
+#define COHER_DEST_BASE_0_DEST_BASE_0_SHIFT 12
+
+#define COHER_DEST_BASE_0_DEST_BASE_0_MASK 0xfffff000
+
+#define COHER_DEST_BASE_0_MASK \
+ (COHER_DEST_BASE_0_DEST_BASE_0_MASK)
+
+#define COHER_DEST_BASE_0(dest_base_0) \
+ ((dest_base_0 << COHER_DEST_BASE_0_DEST_BASE_0_SHIFT))
+
+#define COHER_DEST_BASE_0_GET_DEST_BASE_0(coher_dest_base_0) \
+ ((coher_dest_base_0 & COHER_DEST_BASE_0_DEST_BASE_0_MASK) >> COHER_DEST_BASE_0_DEST_BASE_0_SHIFT)
+
+#define COHER_DEST_BASE_0_SET_DEST_BASE_0(coher_dest_base_0_reg, dest_base_0) \
+ coher_dest_base_0_reg = (coher_dest_base_0_reg & ~COHER_DEST_BASE_0_DEST_BASE_0_MASK) | (dest_base_0 << COHER_DEST_BASE_0_DEST_BASE_0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _coher_dest_base_0_t {
+ unsigned int : 12;
+ unsigned int dest_base_0 : COHER_DEST_BASE_0_DEST_BASE_0_SIZE;
+ } coher_dest_base_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _coher_dest_base_0_t {
+ unsigned int dest_base_0 : COHER_DEST_BASE_0_DEST_BASE_0_SIZE;
+ unsigned int : 12;
+ } coher_dest_base_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ coher_dest_base_0_t f;
+} coher_dest_base_0_u;
+
+
+/*
+ * COHER_DEST_BASE_1 struct
+ */
+
+#define COHER_DEST_BASE_1_DEST_BASE_1_SIZE 20
+
+#define COHER_DEST_BASE_1_DEST_BASE_1_SHIFT 12
+
+#define COHER_DEST_BASE_1_DEST_BASE_1_MASK 0xfffff000
+
+#define COHER_DEST_BASE_1_MASK \
+ (COHER_DEST_BASE_1_DEST_BASE_1_MASK)
+
+#define COHER_DEST_BASE_1(dest_base_1) \
+ ((dest_base_1 << COHER_DEST_BASE_1_DEST_BASE_1_SHIFT))
+
+#define COHER_DEST_BASE_1_GET_DEST_BASE_1(coher_dest_base_1) \
+ ((coher_dest_base_1 & COHER_DEST_BASE_1_DEST_BASE_1_MASK) >> COHER_DEST_BASE_1_DEST_BASE_1_SHIFT)
+
+#define COHER_DEST_BASE_1_SET_DEST_BASE_1(coher_dest_base_1_reg, dest_base_1) \
+ coher_dest_base_1_reg = (coher_dest_base_1_reg & ~COHER_DEST_BASE_1_DEST_BASE_1_MASK) | (dest_base_1 << COHER_DEST_BASE_1_DEST_BASE_1_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _coher_dest_base_1_t {
+ unsigned int : 12;
+ unsigned int dest_base_1 : COHER_DEST_BASE_1_DEST_BASE_1_SIZE;
+ } coher_dest_base_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _coher_dest_base_1_t {
+ unsigned int dest_base_1 : COHER_DEST_BASE_1_DEST_BASE_1_SIZE;
+ unsigned int : 12;
+ } coher_dest_base_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ coher_dest_base_1_t f;
+} coher_dest_base_1_u;
+
+
+/*
+ * COHER_DEST_BASE_2 struct
+ */
+
+#define COHER_DEST_BASE_2_DEST_BASE_2_SIZE 20
+
+#define COHER_DEST_BASE_2_DEST_BASE_2_SHIFT 12
+
+#define COHER_DEST_BASE_2_DEST_BASE_2_MASK 0xfffff000
+
+#define COHER_DEST_BASE_2_MASK \
+ (COHER_DEST_BASE_2_DEST_BASE_2_MASK)
+
+#define COHER_DEST_BASE_2(dest_base_2) \
+ ((dest_base_2 << COHER_DEST_BASE_2_DEST_BASE_2_SHIFT))
+
+#define COHER_DEST_BASE_2_GET_DEST_BASE_2(coher_dest_base_2) \
+ ((coher_dest_base_2 & COHER_DEST_BASE_2_DEST_BASE_2_MASK) >> COHER_DEST_BASE_2_DEST_BASE_2_SHIFT)
+
+#define COHER_DEST_BASE_2_SET_DEST_BASE_2(coher_dest_base_2_reg, dest_base_2) \
+ coher_dest_base_2_reg = (coher_dest_base_2_reg & ~COHER_DEST_BASE_2_DEST_BASE_2_MASK) | (dest_base_2 << COHER_DEST_BASE_2_DEST_BASE_2_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _coher_dest_base_2_t {
+ unsigned int : 12;
+ unsigned int dest_base_2 : COHER_DEST_BASE_2_DEST_BASE_2_SIZE;
+ } coher_dest_base_2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _coher_dest_base_2_t {
+ unsigned int dest_base_2 : COHER_DEST_BASE_2_DEST_BASE_2_SIZE;
+ unsigned int : 12;
+ } coher_dest_base_2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ coher_dest_base_2_t f;
+} coher_dest_base_2_u;
+
+
+/*
+ * COHER_DEST_BASE_3 struct
+ */
+
+#define COHER_DEST_BASE_3_DEST_BASE_3_SIZE 20
+
+#define COHER_DEST_BASE_3_DEST_BASE_3_SHIFT 12
+
+#define COHER_DEST_BASE_3_DEST_BASE_3_MASK 0xfffff000
+
+#define COHER_DEST_BASE_3_MASK \
+ (COHER_DEST_BASE_3_DEST_BASE_3_MASK)
+
+#define COHER_DEST_BASE_3(dest_base_3) \
+ ((dest_base_3 << COHER_DEST_BASE_3_DEST_BASE_3_SHIFT))
+
+#define COHER_DEST_BASE_3_GET_DEST_BASE_3(coher_dest_base_3) \
+ ((coher_dest_base_3 & COHER_DEST_BASE_3_DEST_BASE_3_MASK) >> COHER_DEST_BASE_3_DEST_BASE_3_SHIFT)
+
+#define COHER_DEST_BASE_3_SET_DEST_BASE_3(coher_dest_base_3_reg, dest_base_3) \
+ coher_dest_base_3_reg = (coher_dest_base_3_reg & ~COHER_DEST_BASE_3_DEST_BASE_3_MASK) | (dest_base_3 << COHER_DEST_BASE_3_DEST_BASE_3_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _coher_dest_base_3_t {
+ unsigned int : 12;
+ unsigned int dest_base_3 : COHER_DEST_BASE_3_DEST_BASE_3_SIZE;
+ } coher_dest_base_3_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _coher_dest_base_3_t {
+ unsigned int dest_base_3 : COHER_DEST_BASE_3_DEST_BASE_3_SIZE;
+ unsigned int : 12;
+ } coher_dest_base_3_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ coher_dest_base_3_t f;
+} coher_dest_base_3_u;
+
+
+/*
+ * COHER_DEST_BASE_4 struct
+ */
+
+#define COHER_DEST_BASE_4_DEST_BASE_4_SIZE 20
+
+#define COHER_DEST_BASE_4_DEST_BASE_4_SHIFT 12
+
+#define COHER_DEST_BASE_4_DEST_BASE_4_MASK 0xfffff000
+
+#define COHER_DEST_BASE_4_MASK \
+ (COHER_DEST_BASE_4_DEST_BASE_4_MASK)
+
+#define COHER_DEST_BASE_4(dest_base_4) \
+ ((dest_base_4 << COHER_DEST_BASE_4_DEST_BASE_4_SHIFT))
+
+#define COHER_DEST_BASE_4_GET_DEST_BASE_4(coher_dest_base_4) \
+ ((coher_dest_base_4 & COHER_DEST_BASE_4_DEST_BASE_4_MASK) >> COHER_DEST_BASE_4_DEST_BASE_4_SHIFT)
+
+#define COHER_DEST_BASE_4_SET_DEST_BASE_4(coher_dest_base_4_reg, dest_base_4) \
+ coher_dest_base_4_reg = (coher_dest_base_4_reg & ~COHER_DEST_BASE_4_DEST_BASE_4_MASK) | (dest_base_4 << COHER_DEST_BASE_4_DEST_BASE_4_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _coher_dest_base_4_t {
+ unsigned int : 12;
+ unsigned int dest_base_4 : COHER_DEST_BASE_4_DEST_BASE_4_SIZE;
+ } coher_dest_base_4_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _coher_dest_base_4_t {
+ unsigned int dest_base_4 : COHER_DEST_BASE_4_DEST_BASE_4_SIZE;
+ unsigned int : 12;
+ } coher_dest_base_4_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ coher_dest_base_4_t f;
+} coher_dest_base_4_u;
+
+
+/*
+ * COHER_DEST_BASE_5 struct
+ */
+
+#define COHER_DEST_BASE_5_DEST_BASE_5_SIZE 20
+
+#define COHER_DEST_BASE_5_DEST_BASE_5_SHIFT 12
+
+#define COHER_DEST_BASE_5_DEST_BASE_5_MASK 0xfffff000
+
+#define COHER_DEST_BASE_5_MASK \
+ (COHER_DEST_BASE_5_DEST_BASE_5_MASK)
+
+#define COHER_DEST_BASE_5(dest_base_5) \
+ ((dest_base_5 << COHER_DEST_BASE_5_DEST_BASE_5_SHIFT))
+
+#define COHER_DEST_BASE_5_GET_DEST_BASE_5(coher_dest_base_5) \
+ ((coher_dest_base_5 & COHER_DEST_BASE_5_DEST_BASE_5_MASK) >> COHER_DEST_BASE_5_DEST_BASE_5_SHIFT)
+
+#define COHER_DEST_BASE_5_SET_DEST_BASE_5(coher_dest_base_5_reg, dest_base_5) \
+ coher_dest_base_5_reg = (coher_dest_base_5_reg & ~COHER_DEST_BASE_5_DEST_BASE_5_MASK) | (dest_base_5 << COHER_DEST_BASE_5_DEST_BASE_5_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _coher_dest_base_5_t {
+ unsigned int : 12;
+ unsigned int dest_base_5 : COHER_DEST_BASE_5_DEST_BASE_5_SIZE;
+ } coher_dest_base_5_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _coher_dest_base_5_t {
+ unsigned int dest_base_5 : COHER_DEST_BASE_5_DEST_BASE_5_SIZE;
+ unsigned int : 12;
+ } coher_dest_base_5_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ coher_dest_base_5_t f;
+} coher_dest_base_5_u;
+
+
+/*
+ * COHER_DEST_BASE_6 struct
+ */
+
+#define COHER_DEST_BASE_6_DEST_BASE_6_SIZE 20
+
+#define COHER_DEST_BASE_6_DEST_BASE_6_SHIFT 12
+
+#define COHER_DEST_BASE_6_DEST_BASE_6_MASK 0xfffff000
+
+#define COHER_DEST_BASE_6_MASK \
+ (COHER_DEST_BASE_6_DEST_BASE_6_MASK)
+
+#define COHER_DEST_BASE_6(dest_base_6) \
+ ((dest_base_6 << COHER_DEST_BASE_6_DEST_BASE_6_SHIFT))
+
+#define COHER_DEST_BASE_6_GET_DEST_BASE_6(coher_dest_base_6) \
+ ((coher_dest_base_6 & COHER_DEST_BASE_6_DEST_BASE_6_MASK) >> COHER_DEST_BASE_6_DEST_BASE_6_SHIFT)
+
+#define COHER_DEST_BASE_6_SET_DEST_BASE_6(coher_dest_base_6_reg, dest_base_6) \
+ coher_dest_base_6_reg = (coher_dest_base_6_reg & ~COHER_DEST_BASE_6_DEST_BASE_6_MASK) | (dest_base_6 << COHER_DEST_BASE_6_DEST_BASE_6_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _coher_dest_base_6_t {
+ unsigned int : 12;
+ unsigned int dest_base_6 : COHER_DEST_BASE_6_DEST_BASE_6_SIZE;
+ } coher_dest_base_6_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _coher_dest_base_6_t {
+ unsigned int dest_base_6 : COHER_DEST_BASE_6_DEST_BASE_6_SIZE;
+ unsigned int : 12;
+ } coher_dest_base_6_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ coher_dest_base_6_t f;
+} coher_dest_base_6_u;
+
+
+/*
+ * COHER_DEST_BASE_7 struct
+ */
+
+#define COHER_DEST_BASE_7_DEST_BASE_7_SIZE 20
+
+#define COHER_DEST_BASE_7_DEST_BASE_7_SHIFT 12
+
+#define COHER_DEST_BASE_7_DEST_BASE_7_MASK 0xfffff000
+
+#define COHER_DEST_BASE_7_MASK \
+ (COHER_DEST_BASE_7_DEST_BASE_7_MASK)
+
+#define COHER_DEST_BASE_7(dest_base_7) \
+ ((dest_base_7 << COHER_DEST_BASE_7_DEST_BASE_7_SHIFT))
+
+#define COHER_DEST_BASE_7_GET_DEST_BASE_7(coher_dest_base_7) \
+ ((coher_dest_base_7 & COHER_DEST_BASE_7_DEST_BASE_7_MASK) >> COHER_DEST_BASE_7_DEST_BASE_7_SHIFT)
+
+#define COHER_DEST_BASE_7_SET_DEST_BASE_7(coher_dest_base_7_reg, dest_base_7) \
+ coher_dest_base_7_reg = (coher_dest_base_7_reg & ~COHER_DEST_BASE_7_DEST_BASE_7_MASK) | (dest_base_7 << COHER_DEST_BASE_7_DEST_BASE_7_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _coher_dest_base_7_t {
+ unsigned int : 12;
+ unsigned int dest_base_7 : COHER_DEST_BASE_7_DEST_BASE_7_SIZE;
+ } coher_dest_base_7_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _coher_dest_base_7_t {
+ unsigned int dest_base_7 : COHER_DEST_BASE_7_DEST_BASE_7_SIZE;
+ unsigned int : 12;
+ } coher_dest_base_7_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ coher_dest_base_7_t f;
+} coher_dest_base_7_u;
+
+
+#endif
+
+
+#if !defined (_RBBM_FIDDLE_H)
+#define _RBBM_FIDDLE_H
+
+/*******************************************************
+ * Enums
+ *******************************************************/
+
+
+/*******************************************************
+ * Values
+ *******************************************************/
+
+
+/*******************************************************
+ * Structures
+ *******************************************************/
+
+/*
+ * WAIT_UNTIL struct
+ */
+
+#define WAIT_UNTIL_WAIT_RE_VSYNC_SIZE 1
+#define WAIT_UNTIL_WAIT_FE_VSYNC_SIZE 1
+#define WAIT_UNTIL_WAIT_VSYNC_SIZE 1
+#define WAIT_UNTIL_WAIT_DSPLY_ID0_SIZE 1
+#define WAIT_UNTIL_WAIT_DSPLY_ID1_SIZE 1
+#define WAIT_UNTIL_WAIT_DSPLY_ID2_SIZE 1
+#define WAIT_UNTIL_WAIT_CMDFIFO_SIZE 1
+#define WAIT_UNTIL_WAIT_2D_IDLE_SIZE 1
+#define WAIT_UNTIL_WAIT_3D_IDLE_SIZE 1
+#define WAIT_UNTIL_WAIT_2D_IDLECLEAN_SIZE 1
+#define WAIT_UNTIL_WAIT_3D_IDLECLEAN_SIZE 1
+#define WAIT_UNTIL_CMDFIFO_ENTRIES_SIZE 4
+
+#define WAIT_UNTIL_WAIT_RE_VSYNC_SHIFT 1
+#define WAIT_UNTIL_WAIT_FE_VSYNC_SHIFT 2
+#define WAIT_UNTIL_WAIT_VSYNC_SHIFT 3
+#define WAIT_UNTIL_WAIT_DSPLY_ID0_SHIFT 4
+#define WAIT_UNTIL_WAIT_DSPLY_ID1_SHIFT 5
+#define WAIT_UNTIL_WAIT_DSPLY_ID2_SHIFT 6
+#define WAIT_UNTIL_WAIT_CMDFIFO_SHIFT 10
+#define WAIT_UNTIL_WAIT_2D_IDLE_SHIFT 14
+#define WAIT_UNTIL_WAIT_3D_IDLE_SHIFT 15
+#define WAIT_UNTIL_WAIT_2D_IDLECLEAN_SHIFT 16
+#define WAIT_UNTIL_WAIT_3D_IDLECLEAN_SHIFT 17
+#define WAIT_UNTIL_CMDFIFO_ENTRIES_SHIFT 20
+
+#define WAIT_UNTIL_WAIT_RE_VSYNC_MASK 0x00000002
+#define WAIT_UNTIL_WAIT_FE_VSYNC_MASK 0x00000004
+#define WAIT_UNTIL_WAIT_VSYNC_MASK 0x00000008
+#define WAIT_UNTIL_WAIT_DSPLY_ID0_MASK 0x00000010
+#define WAIT_UNTIL_WAIT_DSPLY_ID1_MASK 0x00000020
+#define WAIT_UNTIL_WAIT_DSPLY_ID2_MASK 0x00000040
+#define WAIT_UNTIL_WAIT_CMDFIFO_MASK 0x00000400
+#define WAIT_UNTIL_WAIT_2D_IDLE_MASK 0x00004000
+#define WAIT_UNTIL_WAIT_3D_IDLE_MASK 0x00008000
+#define WAIT_UNTIL_WAIT_2D_IDLECLEAN_MASK 0x00010000
+#define WAIT_UNTIL_WAIT_3D_IDLECLEAN_MASK 0x00020000
+#define WAIT_UNTIL_CMDFIFO_ENTRIES_MASK 0x00f00000
+
+#define WAIT_UNTIL_MASK \
+ (WAIT_UNTIL_WAIT_RE_VSYNC_MASK | \
+ WAIT_UNTIL_WAIT_FE_VSYNC_MASK | \
+ WAIT_UNTIL_WAIT_VSYNC_MASK | \
+ WAIT_UNTIL_WAIT_DSPLY_ID0_MASK | \
+ WAIT_UNTIL_WAIT_DSPLY_ID1_MASK | \
+ WAIT_UNTIL_WAIT_DSPLY_ID2_MASK | \
+ WAIT_UNTIL_WAIT_CMDFIFO_MASK | \
+ WAIT_UNTIL_WAIT_2D_IDLE_MASK | \
+ WAIT_UNTIL_WAIT_3D_IDLE_MASK | \
+ WAIT_UNTIL_WAIT_2D_IDLECLEAN_MASK | \
+ WAIT_UNTIL_WAIT_3D_IDLECLEAN_MASK | \
+ WAIT_UNTIL_CMDFIFO_ENTRIES_MASK)
+
+#define WAIT_UNTIL(wait_re_vsync, wait_fe_vsync, wait_vsync, wait_dsply_id0, wait_dsply_id1, wait_dsply_id2, wait_cmdfifo, wait_2d_idle, wait_3d_idle, wait_2d_idleclean, wait_3d_idleclean, cmdfifo_entries) \
+ ((wait_re_vsync << WAIT_UNTIL_WAIT_RE_VSYNC_SHIFT) | \
+ (wait_fe_vsync << WAIT_UNTIL_WAIT_FE_VSYNC_SHIFT) | \
+ (wait_vsync << WAIT_UNTIL_WAIT_VSYNC_SHIFT) | \
+ (wait_dsply_id0 << WAIT_UNTIL_WAIT_DSPLY_ID0_SHIFT) | \
+ (wait_dsply_id1 << WAIT_UNTIL_WAIT_DSPLY_ID1_SHIFT) | \
+ (wait_dsply_id2 << WAIT_UNTIL_WAIT_DSPLY_ID2_SHIFT) | \
+ (wait_cmdfifo << WAIT_UNTIL_WAIT_CMDFIFO_SHIFT) | \
+ (wait_2d_idle << WAIT_UNTIL_WAIT_2D_IDLE_SHIFT) | \
+ (wait_3d_idle << WAIT_UNTIL_WAIT_3D_IDLE_SHIFT) | \
+ (wait_2d_idleclean << WAIT_UNTIL_WAIT_2D_IDLECLEAN_SHIFT) | \
+ (wait_3d_idleclean << WAIT_UNTIL_WAIT_3D_IDLECLEAN_SHIFT) | \
+ (cmdfifo_entries << WAIT_UNTIL_CMDFIFO_ENTRIES_SHIFT))
+
+#define WAIT_UNTIL_GET_WAIT_RE_VSYNC(wait_until) \
+ ((wait_until & WAIT_UNTIL_WAIT_RE_VSYNC_MASK) >> WAIT_UNTIL_WAIT_RE_VSYNC_SHIFT)
+#define WAIT_UNTIL_GET_WAIT_FE_VSYNC(wait_until) \
+ ((wait_until & WAIT_UNTIL_WAIT_FE_VSYNC_MASK) >> WAIT_UNTIL_WAIT_FE_VSYNC_SHIFT)
+#define WAIT_UNTIL_GET_WAIT_VSYNC(wait_until) \
+ ((wait_until & WAIT_UNTIL_WAIT_VSYNC_MASK) >> WAIT_UNTIL_WAIT_VSYNC_SHIFT)
+#define WAIT_UNTIL_GET_WAIT_DSPLY_ID0(wait_until) \
+ ((wait_until & WAIT_UNTIL_WAIT_DSPLY_ID0_MASK) >> WAIT_UNTIL_WAIT_DSPLY_ID0_SHIFT)
+#define WAIT_UNTIL_GET_WAIT_DSPLY_ID1(wait_until) \
+ ((wait_until & WAIT_UNTIL_WAIT_DSPLY_ID1_MASK) >> WAIT_UNTIL_WAIT_DSPLY_ID1_SHIFT)
+#define WAIT_UNTIL_GET_WAIT_DSPLY_ID2(wait_until) \
+ ((wait_until & WAIT_UNTIL_WAIT_DSPLY_ID2_MASK) >> WAIT_UNTIL_WAIT_DSPLY_ID2_SHIFT)
+#define WAIT_UNTIL_GET_WAIT_CMDFIFO(wait_until) \
+ ((wait_until & WAIT_UNTIL_WAIT_CMDFIFO_MASK) >> WAIT_UNTIL_WAIT_CMDFIFO_SHIFT)
+#define WAIT_UNTIL_GET_WAIT_2D_IDLE(wait_until) \
+ ((wait_until & WAIT_UNTIL_WAIT_2D_IDLE_MASK) >> WAIT_UNTIL_WAIT_2D_IDLE_SHIFT)
+#define WAIT_UNTIL_GET_WAIT_3D_IDLE(wait_until) \
+ ((wait_until & WAIT_UNTIL_WAIT_3D_IDLE_MASK) >> WAIT_UNTIL_WAIT_3D_IDLE_SHIFT)
+#define WAIT_UNTIL_GET_WAIT_2D_IDLECLEAN(wait_until) \
+ ((wait_until & WAIT_UNTIL_WAIT_2D_IDLECLEAN_MASK) >> WAIT_UNTIL_WAIT_2D_IDLECLEAN_SHIFT)
+#define WAIT_UNTIL_GET_WAIT_3D_IDLECLEAN(wait_until) \
+ ((wait_until & WAIT_UNTIL_WAIT_3D_IDLECLEAN_MASK) >> WAIT_UNTIL_WAIT_3D_IDLECLEAN_SHIFT)
+#define WAIT_UNTIL_GET_CMDFIFO_ENTRIES(wait_until) \
+ ((wait_until & WAIT_UNTIL_CMDFIFO_ENTRIES_MASK) >> WAIT_UNTIL_CMDFIFO_ENTRIES_SHIFT)
+
+#define WAIT_UNTIL_SET_WAIT_RE_VSYNC(wait_until_reg, wait_re_vsync) \
+ wait_until_reg = (wait_until_reg & ~WAIT_UNTIL_WAIT_RE_VSYNC_MASK) | (wait_re_vsync << WAIT_UNTIL_WAIT_RE_VSYNC_SHIFT)
+#define WAIT_UNTIL_SET_WAIT_FE_VSYNC(wait_until_reg, wait_fe_vsync) \
+ wait_until_reg = (wait_until_reg & ~WAIT_UNTIL_WAIT_FE_VSYNC_MASK) | (wait_fe_vsync << WAIT_UNTIL_WAIT_FE_VSYNC_SHIFT)
+#define WAIT_UNTIL_SET_WAIT_VSYNC(wait_until_reg, wait_vsync) \
+ wait_until_reg = (wait_until_reg & ~WAIT_UNTIL_WAIT_VSYNC_MASK) | (wait_vsync << WAIT_UNTIL_WAIT_VSYNC_SHIFT)
+#define WAIT_UNTIL_SET_WAIT_DSPLY_ID0(wait_until_reg, wait_dsply_id0) \
+ wait_until_reg = (wait_until_reg & ~WAIT_UNTIL_WAIT_DSPLY_ID0_MASK) | (wait_dsply_id0 << WAIT_UNTIL_WAIT_DSPLY_ID0_SHIFT)
+#define WAIT_UNTIL_SET_WAIT_DSPLY_ID1(wait_until_reg, wait_dsply_id1) \
+ wait_until_reg = (wait_until_reg & ~WAIT_UNTIL_WAIT_DSPLY_ID1_MASK) | (wait_dsply_id1 << WAIT_UNTIL_WAIT_DSPLY_ID1_SHIFT)
+#define WAIT_UNTIL_SET_WAIT_DSPLY_ID2(wait_until_reg, wait_dsply_id2) \
+ wait_until_reg = (wait_until_reg & ~WAIT_UNTIL_WAIT_DSPLY_ID2_MASK) | (wait_dsply_id2 << WAIT_UNTIL_WAIT_DSPLY_ID2_SHIFT)
+#define WAIT_UNTIL_SET_WAIT_CMDFIFO(wait_until_reg, wait_cmdfifo) \
+ wait_until_reg = (wait_until_reg & ~WAIT_UNTIL_WAIT_CMDFIFO_MASK) | (wait_cmdfifo << WAIT_UNTIL_WAIT_CMDFIFO_SHIFT)
+#define WAIT_UNTIL_SET_WAIT_2D_IDLE(wait_until_reg, wait_2d_idle) \
+ wait_until_reg = (wait_until_reg & ~WAIT_UNTIL_WAIT_2D_IDLE_MASK) | (wait_2d_idle << WAIT_UNTIL_WAIT_2D_IDLE_SHIFT)
+#define WAIT_UNTIL_SET_WAIT_3D_IDLE(wait_until_reg, wait_3d_idle) \
+ wait_until_reg = (wait_until_reg & ~WAIT_UNTIL_WAIT_3D_IDLE_MASK) | (wait_3d_idle << WAIT_UNTIL_WAIT_3D_IDLE_SHIFT)
+#define WAIT_UNTIL_SET_WAIT_2D_IDLECLEAN(wait_until_reg, wait_2d_idleclean) \
+ wait_until_reg = (wait_until_reg & ~WAIT_UNTIL_WAIT_2D_IDLECLEAN_MASK) | (wait_2d_idleclean << WAIT_UNTIL_WAIT_2D_IDLECLEAN_SHIFT)
+#define WAIT_UNTIL_SET_WAIT_3D_IDLECLEAN(wait_until_reg, wait_3d_idleclean) \
+ wait_until_reg = (wait_until_reg & ~WAIT_UNTIL_WAIT_3D_IDLECLEAN_MASK) | (wait_3d_idleclean << WAIT_UNTIL_WAIT_3D_IDLECLEAN_SHIFT)
+#define WAIT_UNTIL_SET_CMDFIFO_ENTRIES(wait_until_reg, cmdfifo_entries) \
+ wait_until_reg = (wait_until_reg & ~WAIT_UNTIL_CMDFIFO_ENTRIES_MASK) | (cmdfifo_entries << WAIT_UNTIL_CMDFIFO_ENTRIES_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _wait_until_t {
+ unsigned int : 1;
+ unsigned int wait_re_vsync : WAIT_UNTIL_WAIT_RE_VSYNC_SIZE;
+ unsigned int wait_fe_vsync : WAIT_UNTIL_WAIT_FE_VSYNC_SIZE;
+ unsigned int wait_vsync : WAIT_UNTIL_WAIT_VSYNC_SIZE;
+ unsigned int wait_dsply_id0 : WAIT_UNTIL_WAIT_DSPLY_ID0_SIZE;
+ unsigned int wait_dsply_id1 : WAIT_UNTIL_WAIT_DSPLY_ID1_SIZE;
+ unsigned int wait_dsply_id2 : WAIT_UNTIL_WAIT_DSPLY_ID2_SIZE;
+ unsigned int : 3;
+ unsigned int wait_cmdfifo : WAIT_UNTIL_WAIT_CMDFIFO_SIZE;
+ unsigned int : 3;
+ unsigned int wait_2d_idle : WAIT_UNTIL_WAIT_2D_IDLE_SIZE;
+ unsigned int wait_3d_idle : WAIT_UNTIL_WAIT_3D_IDLE_SIZE;
+ unsigned int wait_2d_idleclean : WAIT_UNTIL_WAIT_2D_IDLECLEAN_SIZE;
+ unsigned int wait_3d_idleclean : WAIT_UNTIL_WAIT_3D_IDLECLEAN_SIZE;
+ unsigned int : 2;
+ unsigned int cmdfifo_entries : WAIT_UNTIL_CMDFIFO_ENTRIES_SIZE;
+ unsigned int : 8;
+ } wait_until_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _wait_until_t {
+ unsigned int : 8;
+ unsigned int cmdfifo_entries : WAIT_UNTIL_CMDFIFO_ENTRIES_SIZE;
+ unsigned int : 2;
+ unsigned int wait_3d_idleclean : WAIT_UNTIL_WAIT_3D_IDLECLEAN_SIZE;
+ unsigned int wait_2d_idleclean : WAIT_UNTIL_WAIT_2D_IDLECLEAN_SIZE;
+ unsigned int wait_3d_idle : WAIT_UNTIL_WAIT_3D_IDLE_SIZE;
+ unsigned int wait_2d_idle : WAIT_UNTIL_WAIT_2D_IDLE_SIZE;
+ unsigned int : 3;
+ unsigned int wait_cmdfifo : WAIT_UNTIL_WAIT_CMDFIFO_SIZE;
+ unsigned int : 3;
+ unsigned int wait_dsply_id2 : WAIT_UNTIL_WAIT_DSPLY_ID2_SIZE;
+ unsigned int wait_dsply_id1 : WAIT_UNTIL_WAIT_DSPLY_ID1_SIZE;
+ unsigned int wait_dsply_id0 : WAIT_UNTIL_WAIT_DSPLY_ID0_SIZE;
+ unsigned int wait_vsync : WAIT_UNTIL_WAIT_VSYNC_SIZE;
+ unsigned int wait_fe_vsync : WAIT_UNTIL_WAIT_FE_VSYNC_SIZE;
+ unsigned int wait_re_vsync : WAIT_UNTIL_WAIT_RE_VSYNC_SIZE;
+ unsigned int : 1;
+ } wait_until_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ wait_until_t f;
+} wait_until_u;
+
+
+/*
+ * RBBM_ISYNC_CNTL struct
+ */
+
+#define RBBM_ISYNC_CNTL_ISYNC_WAIT_IDLEGUI_SIZE 1
+#define RBBM_ISYNC_CNTL_ISYNC_CPSCRATCH_IDLEGUI_SIZE 1
+
+#define RBBM_ISYNC_CNTL_ISYNC_WAIT_IDLEGUI_SHIFT 4
+#define RBBM_ISYNC_CNTL_ISYNC_CPSCRATCH_IDLEGUI_SHIFT 5
+
+#define RBBM_ISYNC_CNTL_ISYNC_WAIT_IDLEGUI_MASK 0x00000010
+#define RBBM_ISYNC_CNTL_ISYNC_CPSCRATCH_IDLEGUI_MASK 0x00000020
+
+#define RBBM_ISYNC_CNTL_MASK \
+ (RBBM_ISYNC_CNTL_ISYNC_WAIT_IDLEGUI_MASK | \
+ RBBM_ISYNC_CNTL_ISYNC_CPSCRATCH_IDLEGUI_MASK)
+
+#define RBBM_ISYNC_CNTL(isync_wait_idlegui, isync_cpscratch_idlegui) \
+ ((isync_wait_idlegui << RBBM_ISYNC_CNTL_ISYNC_WAIT_IDLEGUI_SHIFT) | \
+ (isync_cpscratch_idlegui << RBBM_ISYNC_CNTL_ISYNC_CPSCRATCH_IDLEGUI_SHIFT))
+
+#define RBBM_ISYNC_CNTL_GET_ISYNC_WAIT_IDLEGUI(rbbm_isync_cntl) \
+ ((rbbm_isync_cntl & RBBM_ISYNC_CNTL_ISYNC_WAIT_IDLEGUI_MASK) >> RBBM_ISYNC_CNTL_ISYNC_WAIT_IDLEGUI_SHIFT)
+#define RBBM_ISYNC_CNTL_GET_ISYNC_CPSCRATCH_IDLEGUI(rbbm_isync_cntl) \
+ ((rbbm_isync_cntl & RBBM_ISYNC_CNTL_ISYNC_CPSCRATCH_IDLEGUI_MASK) >> RBBM_ISYNC_CNTL_ISYNC_CPSCRATCH_IDLEGUI_SHIFT)
+
+#define RBBM_ISYNC_CNTL_SET_ISYNC_WAIT_IDLEGUI(rbbm_isync_cntl_reg, isync_wait_idlegui) \
+ rbbm_isync_cntl_reg = (rbbm_isync_cntl_reg & ~RBBM_ISYNC_CNTL_ISYNC_WAIT_IDLEGUI_MASK) | (isync_wait_idlegui << RBBM_ISYNC_CNTL_ISYNC_WAIT_IDLEGUI_SHIFT)
+#define RBBM_ISYNC_CNTL_SET_ISYNC_CPSCRATCH_IDLEGUI(rbbm_isync_cntl_reg, isync_cpscratch_idlegui) \
+ rbbm_isync_cntl_reg = (rbbm_isync_cntl_reg & ~RBBM_ISYNC_CNTL_ISYNC_CPSCRATCH_IDLEGUI_MASK) | (isync_cpscratch_idlegui << RBBM_ISYNC_CNTL_ISYNC_CPSCRATCH_IDLEGUI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_isync_cntl_t {
+ unsigned int : 4;
+ unsigned int isync_wait_idlegui : RBBM_ISYNC_CNTL_ISYNC_WAIT_IDLEGUI_SIZE;
+ unsigned int isync_cpscratch_idlegui : RBBM_ISYNC_CNTL_ISYNC_CPSCRATCH_IDLEGUI_SIZE;
+ unsigned int : 26;
+ } rbbm_isync_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_isync_cntl_t {
+ unsigned int : 26;
+ unsigned int isync_cpscratch_idlegui : RBBM_ISYNC_CNTL_ISYNC_CPSCRATCH_IDLEGUI_SIZE;
+ unsigned int isync_wait_idlegui : RBBM_ISYNC_CNTL_ISYNC_WAIT_IDLEGUI_SIZE;
+ unsigned int : 4;
+ } rbbm_isync_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_isync_cntl_t f;
+} rbbm_isync_cntl_u;
+
+
+/*
+ * RBBM_STATUS struct
+ */
+
+#define RBBM_STATUS_CMDFIFO_AVAIL_SIZE 5
+#define RBBM_STATUS_TC_BUSY_SIZE 1
+#define RBBM_STATUS_HIRQ_PENDING_SIZE 1
+#define RBBM_STATUS_CPRQ_PENDING_SIZE 1
+#define RBBM_STATUS_CFRQ_PENDING_SIZE 1
+#define RBBM_STATUS_PFRQ_PENDING_SIZE 1
+#define RBBM_STATUS_VGT_BUSY_NO_DMA_SIZE 1
+#define RBBM_STATUS_RBBM_WU_BUSY_SIZE 1
+#define RBBM_STATUS_CP_NRT_BUSY_SIZE 1
+#define RBBM_STATUS_MH_BUSY_SIZE 1
+#define RBBM_STATUS_MH_COHERENCY_BUSY_SIZE 1
+#define RBBM_STATUS_SX_BUSY_SIZE 1
+#define RBBM_STATUS_TPC_BUSY_SIZE 1
+#define RBBM_STATUS_SC_CNTX_BUSY_SIZE 1
+#define RBBM_STATUS_PA_BUSY_SIZE 1
+#define RBBM_STATUS_VGT_BUSY_SIZE 1
+#define RBBM_STATUS_SQ_CNTX17_BUSY_SIZE 1
+#define RBBM_STATUS_SQ_CNTX0_BUSY_SIZE 1
+#define RBBM_STATUS_RB_CNTX_BUSY_SIZE 1
+#define RBBM_STATUS_GUI_ACTIVE_SIZE 1
+
+#define RBBM_STATUS_CMDFIFO_AVAIL_SHIFT 0
+#define RBBM_STATUS_TC_BUSY_SHIFT 5
+#define RBBM_STATUS_HIRQ_PENDING_SHIFT 8
+#define RBBM_STATUS_CPRQ_PENDING_SHIFT 9
+#define RBBM_STATUS_CFRQ_PENDING_SHIFT 10
+#define RBBM_STATUS_PFRQ_PENDING_SHIFT 11
+#define RBBM_STATUS_VGT_BUSY_NO_DMA_SHIFT 12
+#define RBBM_STATUS_RBBM_WU_BUSY_SHIFT 14
+#define RBBM_STATUS_CP_NRT_BUSY_SHIFT 16
+#define RBBM_STATUS_MH_BUSY_SHIFT 18
+#define RBBM_STATUS_MH_COHERENCY_BUSY_SHIFT 19
+#define RBBM_STATUS_SX_BUSY_SHIFT 21
+#define RBBM_STATUS_TPC_BUSY_SHIFT 22
+#define RBBM_STATUS_SC_CNTX_BUSY_SHIFT 24
+#define RBBM_STATUS_PA_BUSY_SHIFT 25
+#define RBBM_STATUS_VGT_BUSY_SHIFT 26
+#define RBBM_STATUS_SQ_CNTX17_BUSY_SHIFT 27
+#define RBBM_STATUS_SQ_CNTX0_BUSY_SHIFT 28
+#define RBBM_STATUS_RB_CNTX_BUSY_SHIFT 30
+#define RBBM_STATUS_GUI_ACTIVE_SHIFT 31
+
+#define RBBM_STATUS_CMDFIFO_AVAIL_MASK 0x0000001f
+#define RBBM_STATUS_TC_BUSY_MASK 0x00000020
+#define RBBM_STATUS_HIRQ_PENDING_MASK 0x00000100
+#define RBBM_STATUS_CPRQ_PENDING_MASK 0x00000200
+#define RBBM_STATUS_CFRQ_PENDING_MASK 0x00000400
+#define RBBM_STATUS_PFRQ_PENDING_MASK 0x00000800
+#define RBBM_STATUS_VGT_BUSY_NO_DMA_MASK 0x00001000
+#define RBBM_STATUS_RBBM_WU_BUSY_MASK 0x00004000
+#define RBBM_STATUS_CP_NRT_BUSY_MASK 0x00010000
+#define RBBM_STATUS_MH_BUSY_MASK 0x00040000
+#define RBBM_STATUS_MH_COHERENCY_BUSY_MASK 0x00080000
+#define RBBM_STATUS_SX_BUSY_MASK 0x00200000
+#define RBBM_STATUS_TPC_BUSY_MASK 0x00400000
+#define RBBM_STATUS_SC_CNTX_BUSY_MASK 0x01000000
+#define RBBM_STATUS_PA_BUSY_MASK 0x02000000
+#define RBBM_STATUS_VGT_BUSY_MASK 0x04000000
+#define RBBM_STATUS_SQ_CNTX17_BUSY_MASK 0x08000000
+#define RBBM_STATUS_SQ_CNTX0_BUSY_MASK 0x10000000
+#define RBBM_STATUS_RB_CNTX_BUSY_MASK 0x40000000
+#define RBBM_STATUS_GUI_ACTIVE_MASK 0x80000000
+
+#define RBBM_STATUS_MASK \
+ (RBBM_STATUS_CMDFIFO_AVAIL_MASK | \
+ RBBM_STATUS_TC_BUSY_MASK | \
+ RBBM_STATUS_HIRQ_PENDING_MASK | \
+ RBBM_STATUS_CPRQ_PENDING_MASK | \
+ RBBM_STATUS_CFRQ_PENDING_MASK | \
+ RBBM_STATUS_PFRQ_PENDING_MASK | \
+ RBBM_STATUS_VGT_BUSY_NO_DMA_MASK | \
+ RBBM_STATUS_RBBM_WU_BUSY_MASK | \
+ RBBM_STATUS_CP_NRT_BUSY_MASK | \
+ RBBM_STATUS_MH_BUSY_MASK | \
+ RBBM_STATUS_MH_COHERENCY_BUSY_MASK | \
+ RBBM_STATUS_SX_BUSY_MASK | \
+ RBBM_STATUS_TPC_BUSY_MASK | \
+ RBBM_STATUS_SC_CNTX_BUSY_MASK | \
+ RBBM_STATUS_PA_BUSY_MASK | \
+ RBBM_STATUS_VGT_BUSY_MASK | \
+ RBBM_STATUS_SQ_CNTX17_BUSY_MASK | \
+ RBBM_STATUS_SQ_CNTX0_BUSY_MASK | \
+ RBBM_STATUS_RB_CNTX_BUSY_MASK | \
+ RBBM_STATUS_GUI_ACTIVE_MASK)
+
+#define RBBM_STATUS(cmdfifo_avail, tc_busy, hirq_pending, cprq_pending, cfrq_pending, pfrq_pending, vgt_busy_no_dma, rbbm_wu_busy, cp_nrt_busy, mh_busy, mh_coherency_busy, sx_busy, tpc_busy, sc_cntx_busy, pa_busy, vgt_busy, sq_cntx17_busy, sq_cntx0_busy, rb_cntx_busy, gui_active) \
+ ((cmdfifo_avail << RBBM_STATUS_CMDFIFO_AVAIL_SHIFT) | \
+ (tc_busy << RBBM_STATUS_TC_BUSY_SHIFT) | \
+ (hirq_pending << RBBM_STATUS_HIRQ_PENDING_SHIFT) | \
+ (cprq_pending << RBBM_STATUS_CPRQ_PENDING_SHIFT) | \
+ (cfrq_pending << RBBM_STATUS_CFRQ_PENDING_SHIFT) | \
+ (pfrq_pending << RBBM_STATUS_PFRQ_PENDING_SHIFT) | \
+ (vgt_busy_no_dma << RBBM_STATUS_VGT_BUSY_NO_DMA_SHIFT) | \
+ (rbbm_wu_busy << RBBM_STATUS_RBBM_WU_BUSY_SHIFT) | \
+ (cp_nrt_busy << RBBM_STATUS_CP_NRT_BUSY_SHIFT) | \
+ (mh_busy << RBBM_STATUS_MH_BUSY_SHIFT) | \
+ (mh_coherency_busy << RBBM_STATUS_MH_COHERENCY_BUSY_SHIFT) | \
+ (sx_busy << RBBM_STATUS_SX_BUSY_SHIFT) | \
+ (tpc_busy << RBBM_STATUS_TPC_BUSY_SHIFT) | \
+ (sc_cntx_busy << RBBM_STATUS_SC_CNTX_BUSY_SHIFT) | \
+ (pa_busy << RBBM_STATUS_PA_BUSY_SHIFT) | \
+ (vgt_busy << RBBM_STATUS_VGT_BUSY_SHIFT) | \
+ (sq_cntx17_busy << RBBM_STATUS_SQ_CNTX17_BUSY_SHIFT) | \
+ (sq_cntx0_busy << RBBM_STATUS_SQ_CNTX0_BUSY_SHIFT) | \
+ (rb_cntx_busy << RBBM_STATUS_RB_CNTX_BUSY_SHIFT) | \
+ (gui_active << RBBM_STATUS_GUI_ACTIVE_SHIFT))
+
+#define RBBM_STATUS_GET_CMDFIFO_AVAIL(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_CMDFIFO_AVAIL_MASK) >> RBBM_STATUS_CMDFIFO_AVAIL_SHIFT)
+#define RBBM_STATUS_GET_TC_BUSY(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_TC_BUSY_MASK) >> RBBM_STATUS_TC_BUSY_SHIFT)
+#define RBBM_STATUS_GET_HIRQ_PENDING(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_HIRQ_PENDING_MASK) >> RBBM_STATUS_HIRQ_PENDING_SHIFT)
+#define RBBM_STATUS_GET_CPRQ_PENDING(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_CPRQ_PENDING_MASK) >> RBBM_STATUS_CPRQ_PENDING_SHIFT)
+#define RBBM_STATUS_GET_CFRQ_PENDING(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_CFRQ_PENDING_MASK) >> RBBM_STATUS_CFRQ_PENDING_SHIFT)
+#define RBBM_STATUS_GET_PFRQ_PENDING(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_PFRQ_PENDING_MASK) >> RBBM_STATUS_PFRQ_PENDING_SHIFT)
+#define RBBM_STATUS_GET_VGT_BUSY_NO_DMA(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_VGT_BUSY_NO_DMA_MASK) >> RBBM_STATUS_VGT_BUSY_NO_DMA_SHIFT)
+#define RBBM_STATUS_GET_RBBM_WU_BUSY(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_RBBM_WU_BUSY_MASK) >> RBBM_STATUS_RBBM_WU_BUSY_SHIFT)
+#define RBBM_STATUS_GET_CP_NRT_BUSY(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_CP_NRT_BUSY_MASK) >> RBBM_STATUS_CP_NRT_BUSY_SHIFT)
+#define RBBM_STATUS_GET_MH_BUSY(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_MH_BUSY_MASK) >> RBBM_STATUS_MH_BUSY_SHIFT)
+#define RBBM_STATUS_GET_MH_COHERENCY_BUSY(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_MH_COHERENCY_BUSY_MASK) >> RBBM_STATUS_MH_COHERENCY_BUSY_SHIFT)
+#define RBBM_STATUS_GET_SX_BUSY(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_SX_BUSY_MASK) >> RBBM_STATUS_SX_BUSY_SHIFT)
+#define RBBM_STATUS_GET_TPC_BUSY(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_TPC_BUSY_MASK) >> RBBM_STATUS_TPC_BUSY_SHIFT)
+#define RBBM_STATUS_GET_SC_CNTX_BUSY(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_SC_CNTX_BUSY_MASK) >> RBBM_STATUS_SC_CNTX_BUSY_SHIFT)
+#define RBBM_STATUS_GET_PA_BUSY(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_PA_BUSY_MASK) >> RBBM_STATUS_PA_BUSY_SHIFT)
+#define RBBM_STATUS_GET_VGT_BUSY(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_VGT_BUSY_MASK) >> RBBM_STATUS_VGT_BUSY_SHIFT)
+#define RBBM_STATUS_GET_SQ_CNTX17_BUSY(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_SQ_CNTX17_BUSY_MASK) >> RBBM_STATUS_SQ_CNTX17_BUSY_SHIFT)
+#define RBBM_STATUS_GET_SQ_CNTX0_BUSY(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_SQ_CNTX0_BUSY_MASK) >> RBBM_STATUS_SQ_CNTX0_BUSY_SHIFT)
+#define RBBM_STATUS_GET_RB_CNTX_BUSY(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_RB_CNTX_BUSY_MASK) >> RBBM_STATUS_RB_CNTX_BUSY_SHIFT)
+#define RBBM_STATUS_GET_GUI_ACTIVE(rbbm_status) \
+ ((rbbm_status & RBBM_STATUS_GUI_ACTIVE_MASK) >> RBBM_STATUS_GUI_ACTIVE_SHIFT)
+
+#define RBBM_STATUS_SET_CMDFIFO_AVAIL(rbbm_status_reg, cmdfifo_avail) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_CMDFIFO_AVAIL_MASK) | (cmdfifo_avail << RBBM_STATUS_CMDFIFO_AVAIL_SHIFT)
+#define RBBM_STATUS_SET_TC_BUSY(rbbm_status_reg, tc_busy) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_TC_BUSY_MASK) | (tc_busy << RBBM_STATUS_TC_BUSY_SHIFT)
+#define RBBM_STATUS_SET_HIRQ_PENDING(rbbm_status_reg, hirq_pending) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_HIRQ_PENDING_MASK) | (hirq_pending << RBBM_STATUS_HIRQ_PENDING_SHIFT)
+#define RBBM_STATUS_SET_CPRQ_PENDING(rbbm_status_reg, cprq_pending) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_CPRQ_PENDING_MASK) | (cprq_pending << RBBM_STATUS_CPRQ_PENDING_SHIFT)
+#define RBBM_STATUS_SET_CFRQ_PENDING(rbbm_status_reg, cfrq_pending) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_CFRQ_PENDING_MASK) | (cfrq_pending << RBBM_STATUS_CFRQ_PENDING_SHIFT)
+#define RBBM_STATUS_SET_PFRQ_PENDING(rbbm_status_reg, pfrq_pending) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_PFRQ_PENDING_MASK) | (pfrq_pending << RBBM_STATUS_PFRQ_PENDING_SHIFT)
+#define RBBM_STATUS_SET_VGT_BUSY_NO_DMA(rbbm_status_reg, vgt_busy_no_dma) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_VGT_BUSY_NO_DMA_MASK) | (vgt_busy_no_dma << RBBM_STATUS_VGT_BUSY_NO_DMA_SHIFT)
+#define RBBM_STATUS_SET_RBBM_WU_BUSY(rbbm_status_reg, rbbm_wu_busy) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_RBBM_WU_BUSY_MASK) | (rbbm_wu_busy << RBBM_STATUS_RBBM_WU_BUSY_SHIFT)
+#define RBBM_STATUS_SET_CP_NRT_BUSY(rbbm_status_reg, cp_nrt_busy) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_CP_NRT_BUSY_MASK) | (cp_nrt_busy << RBBM_STATUS_CP_NRT_BUSY_SHIFT)
+#define RBBM_STATUS_SET_MH_BUSY(rbbm_status_reg, mh_busy) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_MH_BUSY_MASK) | (mh_busy << RBBM_STATUS_MH_BUSY_SHIFT)
+#define RBBM_STATUS_SET_MH_COHERENCY_BUSY(rbbm_status_reg, mh_coherency_busy) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_MH_COHERENCY_BUSY_MASK) | (mh_coherency_busy << RBBM_STATUS_MH_COHERENCY_BUSY_SHIFT)
+#define RBBM_STATUS_SET_SX_BUSY(rbbm_status_reg, sx_busy) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_SX_BUSY_MASK) | (sx_busy << RBBM_STATUS_SX_BUSY_SHIFT)
+#define RBBM_STATUS_SET_TPC_BUSY(rbbm_status_reg, tpc_busy) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_TPC_BUSY_MASK) | (tpc_busy << RBBM_STATUS_TPC_BUSY_SHIFT)
+#define RBBM_STATUS_SET_SC_CNTX_BUSY(rbbm_status_reg, sc_cntx_busy) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_SC_CNTX_BUSY_MASK) | (sc_cntx_busy << RBBM_STATUS_SC_CNTX_BUSY_SHIFT)
+#define RBBM_STATUS_SET_PA_BUSY(rbbm_status_reg, pa_busy) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_PA_BUSY_MASK) | (pa_busy << RBBM_STATUS_PA_BUSY_SHIFT)
+#define RBBM_STATUS_SET_VGT_BUSY(rbbm_status_reg, vgt_busy) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_VGT_BUSY_MASK) | (vgt_busy << RBBM_STATUS_VGT_BUSY_SHIFT)
+#define RBBM_STATUS_SET_SQ_CNTX17_BUSY(rbbm_status_reg, sq_cntx17_busy) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_SQ_CNTX17_BUSY_MASK) | (sq_cntx17_busy << RBBM_STATUS_SQ_CNTX17_BUSY_SHIFT)
+#define RBBM_STATUS_SET_SQ_CNTX0_BUSY(rbbm_status_reg, sq_cntx0_busy) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_SQ_CNTX0_BUSY_MASK) | (sq_cntx0_busy << RBBM_STATUS_SQ_CNTX0_BUSY_SHIFT)
+#define RBBM_STATUS_SET_RB_CNTX_BUSY(rbbm_status_reg, rb_cntx_busy) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_RB_CNTX_BUSY_MASK) | (rb_cntx_busy << RBBM_STATUS_RB_CNTX_BUSY_SHIFT)
+#define RBBM_STATUS_SET_GUI_ACTIVE(rbbm_status_reg, gui_active) \
+ rbbm_status_reg = (rbbm_status_reg & ~RBBM_STATUS_GUI_ACTIVE_MASK) | (gui_active << RBBM_STATUS_GUI_ACTIVE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_status_t {
+ unsigned int cmdfifo_avail : RBBM_STATUS_CMDFIFO_AVAIL_SIZE;
+ unsigned int tc_busy : RBBM_STATUS_TC_BUSY_SIZE;
+ unsigned int : 2;
+ unsigned int hirq_pending : RBBM_STATUS_HIRQ_PENDING_SIZE;
+ unsigned int cprq_pending : RBBM_STATUS_CPRQ_PENDING_SIZE;
+ unsigned int cfrq_pending : RBBM_STATUS_CFRQ_PENDING_SIZE;
+ unsigned int pfrq_pending : RBBM_STATUS_PFRQ_PENDING_SIZE;
+ unsigned int vgt_busy_no_dma : RBBM_STATUS_VGT_BUSY_NO_DMA_SIZE;
+ unsigned int : 1;
+ unsigned int rbbm_wu_busy : RBBM_STATUS_RBBM_WU_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int cp_nrt_busy : RBBM_STATUS_CP_NRT_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int mh_busy : RBBM_STATUS_MH_BUSY_SIZE;
+ unsigned int mh_coherency_busy : RBBM_STATUS_MH_COHERENCY_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int sx_busy : RBBM_STATUS_SX_BUSY_SIZE;
+ unsigned int tpc_busy : RBBM_STATUS_TPC_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int sc_cntx_busy : RBBM_STATUS_SC_CNTX_BUSY_SIZE;
+ unsigned int pa_busy : RBBM_STATUS_PA_BUSY_SIZE;
+ unsigned int vgt_busy : RBBM_STATUS_VGT_BUSY_SIZE;
+ unsigned int sq_cntx17_busy : RBBM_STATUS_SQ_CNTX17_BUSY_SIZE;
+ unsigned int sq_cntx0_busy : RBBM_STATUS_SQ_CNTX0_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int rb_cntx_busy : RBBM_STATUS_RB_CNTX_BUSY_SIZE;
+ unsigned int gui_active : RBBM_STATUS_GUI_ACTIVE_SIZE;
+ } rbbm_status_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_status_t {
+ unsigned int gui_active : RBBM_STATUS_GUI_ACTIVE_SIZE;
+ unsigned int rb_cntx_busy : RBBM_STATUS_RB_CNTX_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int sq_cntx0_busy : RBBM_STATUS_SQ_CNTX0_BUSY_SIZE;
+ unsigned int sq_cntx17_busy : RBBM_STATUS_SQ_CNTX17_BUSY_SIZE;
+ unsigned int vgt_busy : RBBM_STATUS_VGT_BUSY_SIZE;
+ unsigned int pa_busy : RBBM_STATUS_PA_BUSY_SIZE;
+ unsigned int sc_cntx_busy : RBBM_STATUS_SC_CNTX_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int tpc_busy : RBBM_STATUS_TPC_BUSY_SIZE;
+ unsigned int sx_busy : RBBM_STATUS_SX_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int mh_coherency_busy : RBBM_STATUS_MH_COHERENCY_BUSY_SIZE;
+ unsigned int mh_busy : RBBM_STATUS_MH_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int cp_nrt_busy : RBBM_STATUS_CP_NRT_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int rbbm_wu_busy : RBBM_STATUS_RBBM_WU_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int vgt_busy_no_dma : RBBM_STATUS_VGT_BUSY_NO_DMA_SIZE;
+ unsigned int pfrq_pending : RBBM_STATUS_PFRQ_PENDING_SIZE;
+ unsigned int cfrq_pending : RBBM_STATUS_CFRQ_PENDING_SIZE;
+ unsigned int cprq_pending : RBBM_STATUS_CPRQ_PENDING_SIZE;
+ unsigned int hirq_pending : RBBM_STATUS_HIRQ_PENDING_SIZE;
+ unsigned int : 2;
+ unsigned int tc_busy : RBBM_STATUS_TC_BUSY_SIZE;
+ unsigned int cmdfifo_avail : RBBM_STATUS_CMDFIFO_AVAIL_SIZE;
+ } rbbm_status_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_status_t f;
+} rbbm_status_u;
+
+
+/*
+ * RBBM_DSPLY struct
+ */
+
+#define RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID0_SIZE 1
+#define RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID1_SIZE 1
+#define RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID2_SIZE 1
+#define RBBM_DSPLY_SEL_DMI_VSYNC_VALID_SIZE 1
+#define RBBM_DSPLY_DMI_CH1_USE_BUFID0_SIZE 1
+#define RBBM_DSPLY_DMI_CH1_USE_BUFID1_SIZE 1
+#define RBBM_DSPLY_DMI_CH1_USE_BUFID2_SIZE 1
+#define RBBM_DSPLY_DMI_CH1_SW_CNTL_SIZE 1
+#define RBBM_DSPLY_DMI_CH1_NUM_BUFS_SIZE 2
+#define RBBM_DSPLY_DMI_CH2_USE_BUFID0_SIZE 1
+#define RBBM_DSPLY_DMI_CH2_USE_BUFID1_SIZE 1
+#define RBBM_DSPLY_DMI_CH2_USE_BUFID2_SIZE 1
+#define RBBM_DSPLY_DMI_CH2_SW_CNTL_SIZE 1
+#define RBBM_DSPLY_DMI_CH2_NUM_BUFS_SIZE 2
+#define RBBM_DSPLY_DMI_CHANNEL_SELECT_SIZE 2
+#define RBBM_DSPLY_DMI_CH3_USE_BUFID0_SIZE 1
+#define RBBM_DSPLY_DMI_CH3_USE_BUFID1_SIZE 1
+#define RBBM_DSPLY_DMI_CH3_USE_BUFID2_SIZE 1
+#define RBBM_DSPLY_DMI_CH3_SW_CNTL_SIZE 1
+#define RBBM_DSPLY_DMI_CH3_NUM_BUFS_SIZE 2
+#define RBBM_DSPLY_DMI_CH4_USE_BUFID0_SIZE 1
+#define RBBM_DSPLY_DMI_CH4_USE_BUFID1_SIZE 1
+#define RBBM_DSPLY_DMI_CH4_USE_BUFID2_SIZE 1
+#define RBBM_DSPLY_DMI_CH4_SW_CNTL_SIZE 1
+#define RBBM_DSPLY_DMI_CH4_NUM_BUFS_SIZE 2
+
+#define RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID0_SHIFT 0
+#define RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID1_SHIFT 1
+#define RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID2_SHIFT 2
+#define RBBM_DSPLY_SEL_DMI_VSYNC_VALID_SHIFT 3
+#define RBBM_DSPLY_DMI_CH1_USE_BUFID0_SHIFT 4
+#define RBBM_DSPLY_DMI_CH1_USE_BUFID1_SHIFT 5
+#define RBBM_DSPLY_DMI_CH1_USE_BUFID2_SHIFT 6
+#define RBBM_DSPLY_DMI_CH1_SW_CNTL_SHIFT 7
+#define RBBM_DSPLY_DMI_CH1_NUM_BUFS_SHIFT 8
+#define RBBM_DSPLY_DMI_CH2_USE_BUFID0_SHIFT 10
+#define RBBM_DSPLY_DMI_CH2_USE_BUFID1_SHIFT 11
+#define RBBM_DSPLY_DMI_CH2_USE_BUFID2_SHIFT 12
+#define RBBM_DSPLY_DMI_CH2_SW_CNTL_SHIFT 13
+#define RBBM_DSPLY_DMI_CH2_NUM_BUFS_SHIFT 14
+#define RBBM_DSPLY_DMI_CHANNEL_SELECT_SHIFT 16
+#define RBBM_DSPLY_DMI_CH3_USE_BUFID0_SHIFT 20
+#define RBBM_DSPLY_DMI_CH3_USE_BUFID1_SHIFT 21
+#define RBBM_DSPLY_DMI_CH3_USE_BUFID2_SHIFT 22
+#define RBBM_DSPLY_DMI_CH3_SW_CNTL_SHIFT 23
+#define RBBM_DSPLY_DMI_CH3_NUM_BUFS_SHIFT 24
+#define RBBM_DSPLY_DMI_CH4_USE_BUFID0_SHIFT 26
+#define RBBM_DSPLY_DMI_CH4_USE_BUFID1_SHIFT 27
+#define RBBM_DSPLY_DMI_CH4_USE_BUFID2_SHIFT 28
+#define RBBM_DSPLY_DMI_CH4_SW_CNTL_SHIFT 29
+#define RBBM_DSPLY_DMI_CH4_NUM_BUFS_SHIFT 30
+
+#define RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID0_MASK 0x00000001
+#define RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID1_MASK 0x00000002
+#define RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID2_MASK 0x00000004
+#define RBBM_DSPLY_SEL_DMI_VSYNC_VALID_MASK 0x00000008
+#define RBBM_DSPLY_DMI_CH1_USE_BUFID0_MASK 0x00000010
+#define RBBM_DSPLY_DMI_CH1_USE_BUFID1_MASK 0x00000020
+#define RBBM_DSPLY_DMI_CH1_USE_BUFID2_MASK 0x00000040
+#define RBBM_DSPLY_DMI_CH1_SW_CNTL_MASK 0x00000080
+#define RBBM_DSPLY_DMI_CH1_NUM_BUFS_MASK 0x00000300
+#define RBBM_DSPLY_DMI_CH2_USE_BUFID0_MASK 0x00000400
+#define RBBM_DSPLY_DMI_CH2_USE_BUFID1_MASK 0x00000800
+#define RBBM_DSPLY_DMI_CH2_USE_BUFID2_MASK 0x00001000
+#define RBBM_DSPLY_DMI_CH2_SW_CNTL_MASK 0x00002000
+#define RBBM_DSPLY_DMI_CH2_NUM_BUFS_MASK 0x0000c000
+#define RBBM_DSPLY_DMI_CHANNEL_SELECT_MASK 0x00030000
+#define RBBM_DSPLY_DMI_CH3_USE_BUFID0_MASK 0x00100000
+#define RBBM_DSPLY_DMI_CH3_USE_BUFID1_MASK 0x00200000
+#define RBBM_DSPLY_DMI_CH3_USE_BUFID2_MASK 0x00400000
+#define RBBM_DSPLY_DMI_CH3_SW_CNTL_MASK 0x00800000
+#define RBBM_DSPLY_DMI_CH3_NUM_BUFS_MASK 0x03000000
+#define RBBM_DSPLY_DMI_CH4_USE_BUFID0_MASK 0x04000000
+#define RBBM_DSPLY_DMI_CH4_USE_BUFID1_MASK 0x08000000
+#define RBBM_DSPLY_DMI_CH4_USE_BUFID2_MASK 0x10000000
+#define RBBM_DSPLY_DMI_CH4_SW_CNTL_MASK 0x20000000
+#define RBBM_DSPLY_DMI_CH4_NUM_BUFS_MASK 0xc0000000
+
+#define RBBM_DSPLY_MASK \
+ (RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID0_MASK | \
+ RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID1_MASK | \
+ RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID2_MASK | \
+ RBBM_DSPLY_SEL_DMI_VSYNC_VALID_MASK | \
+ RBBM_DSPLY_DMI_CH1_USE_BUFID0_MASK | \
+ RBBM_DSPLY_DMI_CH1_USE_BUFID1_MASK | \
+ RBBM_DSPLY_DMI_CH1_USE_BUFID2_MASK | \
+ RBBM_DSPLY_DMI_CH1_SW_CNTL_MASK | \
+ RBBM_DSPLY_DMI_CH1_NUM_BUFS_MASK | \
+ RBBM_DSPLY_DMI_CH2_USE_BUFID0_MASK | \
+ RBBM_DSPLY_DMI_CH2_USE_BUFID1_MASK | \
+ RBBM_DSPLY_DMI_CH2_USE_BUFID2_MASK | \
+ RBBM_DSPLY_DMI_CH2_SW_CNTL_MASK | \
+ RBBM_DSPLY_DMI_CH2_NUM_BUFS_MASK | \
+ RBBM_DSPLY_DMI_CHANNEL_SELECT_MASK | \
+ RBBM_DSPLY_DMI_CH3_USE_BUFID0_MASK | \
+ RBBM_DSPLY_DMI_CH3_USE_BUFID1_MASK | \
+ RBBM_DSPLY_DMI_CH3_USE_BUFID2_MASK | \
+ RBBM_DSPLY_DMI_CH3_SW_CNTL_MASK | \
+ RBBM_DSPLY_DMI_CH3_NUM_BUFS_MASK | \
+ RBBM_DSPLY_DMI_CH4_USE_BUFID0_MASK | \
+ RBBM_DSPLY_DMI_CH4_USE_BUFID1_MASK | \
+ RBBM_DSPLY_DMI_CH4_USE_BUFID2_MASK | \
+ RBBM_DSPLY_DMI_CH4_SW_CNTL_MASK | \
+ RBBM_DSPLY_DMI_CH4_NUM_BUFS_MASK)
+
+#define RBBM_DSPLY(sel_dmi_active_bufid0, sel_dmi_active_bufid1, sel_dmi_active_bufid2, sel_dmi_vsync_valid, dmi_ch1_use_bufid0, dmi_ch1_use_bufid1, dmi_ch1_use_bufid2, dmi_ch1_sw_cntl, dmi_ch1_num_bufs, dmi_ch2_use_bufid0, dmi_ch2_use_bufid1, dmi_ch2_use_bufid2, dmi_ch2_sw_cntl, dmi_ch2_num_bufs, dmi_channel_select, dmi_ch3_use_bufid0, dmi_ch3_use_bufid1, dmi_ch3_use_bufid2, dmi_ch3_sw_cntl, dmi_ch3_num_bufs, dmi_ch4_use_bufid0, dmi_ch4_use_bufid1, dmi_ch4_use_bufid2, dmi_ch4_sw_cntl, dmi_ch4_num_bufs) \
+ ((sel_dmi_active_bufid0 << RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID0_SHIFT) | \
+ (sel_dmi_active_bufid1 << RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID1_SHIFT) | \
+ (sel_dmi_active_bufid2 << RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID2_SHIFT) | \
+ (sel_dmi_vsync_valid << RBBM_DSPLY_SEL_DMI_VSYNC_VALID_SHIFT) | \
+ (dmi_ch1_use_bufid0 << RBBM_DSPLY_DMI_CH1_USE_BUFID0_SHIFT) | \
+ (dmi_ch1_use_bufid1 << RBBM_DSPLY_DMI_CH1_USE_BUFID1_SHIFT) | \
+ (dmi_ch1_use_bufid2 << RBBM_DSPLY_DMI_CH1_USE_BUFID2_SHIFT) | \
+ (dmi_ch1_sw_cntl << RBBM_DSPLY_DMI_CH1_SW_CNTL_SHIFT) | \
+ (dmi_ch1_num_bufs << RBBM_DSPLY_DMI_CH1_NUM_BUFS_SHIFT) | \
+ (dmi_ch2_use_bufid0 << RBBM_DSPLY_DMI_CH2_USE_BUFID0_SHIFT) | \
+ (dmi_ch2_use_bufid1 << RBBM_DSPLY_DMI_CH2_USE_BUFID1_SHIFT) | \
+ (dmi_ch2_use_bufid2 << RBBM_DSPLY_DMI_CH2_USE_BUFID2_SHIFT) | \
+ (dmi_ch2_sw_cntl << RBBM_DSPLY_DMI_CH2_SW_CNTL_SHIFT) | \
+ (dmi_ch2_num_bufs << RBBM_DSPLY_DMI_CH2_NUM_BUFS_SHIFT) | \
+ (dmi_channel_select << RBBM_DSPLY_DMI_CHANNEL_SELECT_SHIFT) | \
+ (dmi_ch3_use_bufid0 << RBBM_DSPLY_DMI_CH3_USE_BUFID0_SHIFT) | \
+ (dmi_ch3_use_bufid1 << RBBM_DSPLY_DMI_CH3_USE_BUFID1_SHIFT) | \
+ (dmi_ch3_use_bufid2 << RBBM_DSPLY_DMI_CH3_USE_BUFID2_SHIFT) | \
+ (dmi_ch3_sw_cntl << RBBM_DSPLY_DMI_CH3_SW_CNTL_SHIFT) | \
+ (dmi_ch3_num_bufs << RBBM_DSPLY_DMI_CH3_NUM_BUFS_SHIFT) | \
+ (dmi_ch4_use_bufid0 << RBBM_DSPLY_DMI_CH4_USE_BUFID0_SHIFT) | \
+ (dmi_ch4_use_bufid1 << RBBM_DSPLY_DMI_CH4_USE_BUFID1_SHIFT) | \
+ (dmi_ch4_use_bufid2 << RBBM_DSPLY_DMI_CH4_USE_BUFID2_SHIFT) | \
+ (dmi_ch4_sw_cntl << RBBM_DSPLY_DMI_CH4_SW_CNTL_SHIFT) | \
+ (dmi_ch4_num_bufs << RBBM_DSPLY_DMI_CH4_NUM_BUFS_SHIFT))
+
+#define RBBM_DSPLY_GET_SEL_DMI_ACTIVE_BUFID0(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID0_MASK) >> RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID0_SHIFT)
+#define RBBM_DSPLY_GET_SEL_DMI_ACTIVE_BUFID1(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID1_MASK) >> RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID1_SHIFT)
+#define RBBM_DSPLY_GET_SEL_DMI_ACTIVE_BUFID2(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID2_MASK) >> RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID2_SHIFT)
+#define RBBM_DSPLY_GET_SEL_DMI_VSYNC_VALID(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_SEL_DMI_VSYNC_VALID_MASK) >> RBBM_DSPLY_SEL_DMI_VSYNC_VALID_SHIFT)
+#define RBBM_DSPLY_GET_DMI_CH1_USE_BUFID0(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_DMI_CH1_USE_BUFID0_MASK) >> RBBM_DSPLY_DMI_CH1_USE_BUFID0_SHIFT)
+#define RBBM_DSPLY_GET_DMI_CH1_USE_BUFID1(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_DMI_CH1_USE_BUFID1_MASK) >> RBBM_DSPLY_DMI_CH1_USE_BUFID1_SHIFT)
+#define RBBM_DSPLY_GET_DMI_CH1_USE_BUFID2(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_DMI_CH1_USE_BUFID2_MASK) >> RBBM_DSPLY_DMI_CH1_USE_BUFID2_SHIFT)
+#define RBBM_DSPLY_GET_DMI_CH1_SW_CNTL(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_DMI_CH1_SW_CNTL_MASK) >> RBBM_DSPLY_DMI_CH1_SW_CNTL_SHIFT)
+#define RBBM_DSPLY_GET_DMI_CH1_NUM_BUFS(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_DMI_CH1_NUM_BUFS_MASK) >> RBBM_DSPLY_DMI_CH1_NUM_BUFS_SHIFT)
+#define RBBM_DSPLY_GET_DMI_CH2_USE_BUFID0(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_DMI_CH2_USE_BUFID0_MASK) >> RBBM_DSPLY_DMI_CH2_USE_BUFID0_SHIFT)
+#define RBBM_DSPLY_GET_DMI_CH2_USE_BUFID1(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_DMI_CH2_USE_BUFID1_MASK) >> RBBM_DSPLY_DMI_CH2_USE_BUFID1_SHIFT)
+#define RBBM_DSPLY_GET_DMI_CH2_USE_BUFID2(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_DMI_CH2_USE_BUFID2_MASK) >> RBBM_DSPLY_DMI_CH2_USE_BUFID2_SHIFT)
+#define RBBM_DSPLY_GET_DMI_CH2_SW_CNTL(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_DMI_CH2_SW_CNTL_MASK) >> RBBM_DSPLY_DMI_CH2_SW_CNTL_SHIFT)
+#define RBBM_DSPLY_GET_DMI_CH2_NUM_BUFS(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_DMI_CH2_NUM_BUFS_MASK) >> RBBM_DSPLY_DMI_CH2_NUM_BUFS_SHIFT)
+#define RBBM_DSPLY_GET_DMI_CHANNEL_SELECT(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_DMI_CHANNEL_SELECT_MASK) >> RBBM_DSPLY_DMI_CHANNEL_SELECT_SHIFT)
+#define RBBM_DSPLY_GET_DMI_CH3_USE_BUFID0(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_DMI_CH3_USE_BUFID0_MASK) >> RBBM_DSPLY_DMI_CH3_USE_BUFID0_SHIFT)
+#define RBBM_DSPLY_GET_DMI_CH3_USE_BUFID1(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_DMI_CH3_USE_BUFID1_MASK) >> RBBM_DSPLY_DMI_CH3_USE_BUFID1_SHIFT)
+#define RBBM_DSPLY_GET_DMI_CH3_USE_BUFID2(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_DMI_CH3_USE_BUFID2_MASK) >> RBBM_DSPLY_DMI_CH3_USE_BUFID2_SHIFT)
+#define RBBM_DSPLY_GET_DMI_CH3_SW_CNTL(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_DMI_CH3_SW_CNTL_MASK) >> RBBM_DSPLY_DMI_CH3_SW_CNTL_SHIFT)
+#define RBBM_DSPLY_GET_DMI_CH3_NUM_BUFS(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_DMI_CH3_NUM_BUFS_MASK) >> RBBM_DSPLY_DMI_CH3_NUM_BUFS_SHIFT)
+#define RBBM_DSPLY_GET_DMI_CH4_USE_BUFID0(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_DMI_CH4_USE_BUFID0_MASK) >> RBBM_DSPLY_DMI_CH4_USE_BUFID0_SHIFT)
+#define RBBM_DSPLY_GET_DMI_CH4_USE_BUFID1(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_DMI_CH4_USE_BUFID1_MASK) >> RBBM_DSPLY_DMI_CH4_USE_BUFID1_SHIFT)
+#define RBBM_DSPLY_GET_DMI_CH4_USE_BUFID2(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_DMI_CH4_USE_BUFID2_MASK) >> RBBM_DSPLY_DMI_CH4_USE_BUFID2_SHIFT)
+#define RBBM_DSPLY_GET_DMI_CH4_SW_CNTL(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_DMI_CH4_SW_CNTL_MASK) >> RBBM_DSPLY_DMI_CH4_SW_CNTL_SHIFT)
+#define RBBM_DSPLY_GET_DMI_CH4_NUM_BUFS(rbbm_dsply) \
+ ((rbbm_dsply & RBBM_DSPLY_DMI_CH4_NUM_BUFS_MASK) >> RBBM_DSPLY_DMI_CH4_NUM_BUFS_SHIFT)
+
+#define RBBM_DSPLY_SET_SEL_DMI_ACTIVE_BUFID0(rbbm_dsply_reg, sel_dmi_active_bufid0) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID0_MASK) | (sel_dmi_active_bufid0 << RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID0_SHIFT)
+#define RBBM_DSPLY_SET_SEL_DMI_ACTIVE_BUFID1(rbbm_dsply_reg, sel_dmi_active_bufid1) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID1_MASK) | (sel_dmi_active_bufid1 << RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID1_SHIFT)
+#define RBBM_DSPLY_SET_SEL_DMI_ACTIVE_BUFID2(rbbm_dsply_reg, sel_dmi_active_bufid2) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID2_MASK) | (sel_dmi_active_bufid2 << RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID2_SHIFT)
+#define RBBM_DSPLY_SET_SEL_DMI_VSYNC_VALID(rbbm_dsply_reg, sel_dmi_vsync_valid) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_SEL_DMI_VSYNC_VALID_MASK) | (sel_dmi_vsync_valid << RBBM_DSPLY_SEL_DMI_VSYNC_VALID_SHIFT)
+#define RBBM_DSPLY_SET_DMI_CH1_USE_BUFID0(rbbm_dsply_reg, dmi_ch1_use_bufid0) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_DMI_CH1_USE_BUFID0_MASK) | (dmi_ch1_use_bufid0 << RBBM_DSPLY_DMI_CH1_USE_BUFID0_SHIFT)
+#define RBBM_DSPLY_SET_DMI_CH1_USE_BUFID1(rbbm_dsply_reg, dmi_ch1_use_bufid1) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_DMI_CH1_USE_BUFID1_MASK) | (dmi_ch1_use_bufid1 << RBBM_DSPLY_DMI_CH1_USE_BUFID1_SHIFT)
+#define RBBM_DSPLY_SET_DMI_CH1_USE_BUFID2(rbbm_dsply_reg, dmi_ch1_use_bufid2) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_DMI_CH1_USE_BUFID2_MASK) | (dmi_ch1_use_bufid2 << RBBM_DSPLY_DMI_CH1_USE_BUFID2_SHIFT)
+#define RBBM_DSPLY_SET_DMI_CH1_SW_CNTL(rbbm_dsply_reg, dmi_ch1_sw_cntl) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_DMI_CH1_SW_CNTL_MASK) | (dmi_ch1_sw_cntl << RBBM_DSPLY_DMI_CH1_SW_CNTL_SHIFT)
+#define RBBM_DSPLY_SET_DMI_CH1_NUM_BUFS(rbbm_dsply_reg, dmi_ch1_num_bufs) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_DMI_CH1_NUM_BUFS_MASK) | (dmi_ch1_num_bufs << RBBM_DSPLY_DMI_CH1_NUM_BUFS_SHIFT)
+#define RBBM_DSPLY_SET_DMI_CH2_USE_BUFID0(rbbm_dsply_reg, dmi_ch2_use_bufid0) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_DMI_CH2_USE_BUFID0_MASK) | (dmi_ch2_use_bufid0 << RBBM_DSPLY_DMI_CH2_USE_BUFID0_SHIFT)
+#define RBBM_DSPLY_SET_DMI_CH2_USE_BUFID1(rbbm_dsply_reg, dmi_ch2_use_bufid1) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_DMI_CH2_USE_BUFID1_MASK) | (dmi_ch2_use_bufid1 << RBBM_DSPLY_DMI_CH2_USE_BUFID1_SHIFT)
+#define RBBM_DSPLY_SET_DMI_CH2_USE_BUFID2(rbbm_dsply_reg, dmi_ch2_use_bufid2) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_DMI_CH2_USE_BUFID2_MASK) | (dmi_ch2_use_bufid2 << RBBM_DSPLY_DMI_CH2_USE_BUFID2_SHIFT)
+#define RBBM_DSPLY_SET_DMI_CH2_SW_CNTL(rbbm_dsply_reg, dmi_ch2_sw_cntl) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_DMI_CH2_SW_CNTL_MASK) | (dmi_ch2_sw_cntl << RBBM_DSPLY_DMI_CH2_SW_CNTL_SHIFT)
+#define RBBM_DSPLY_SET_DMI_CH2_NUM_BUFS(rbbm_dsply_reg, dmi_ch2_num_bufs) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_DMI_CH2_NUM_BUFS_MASK) | (dmi_ch2_num_bufs << RBBM_DSPLY_DMI_CH2_NUM_BUFS_SHIFT)
+#define RBBM_DSPLY_SET_DMI_CHANNEL_SELECT(rbbm_dsply_reg, dmi_channel_select) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_DMI_CHANNEL_SELECT_MASK) | (dmi_channel_select << RBBM_DSPLY_DMI_CHANNEL_SELECT_SHIFT)
+#define RBBM_DSPLY_SET_DMI_CH3_USE_BUFID0(rbbm_dsply_reg, dmi_ch3_use_bufid0) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_DMI_CH3_USE_BUFID0_MASK) | (dmi_ch3_use_bufid0 << RBBM_DSPLY_DMI_CH3_USE_BUFID0_SHIFT)
+#define RBBM_DSPLY_SET_DMI_CH3_USE_BUFID1(rbbm_dsply_reg, dmi_ch3_use_bufid1) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_DMI_CH3_USE_BUFID1_MASK) | (dmi_ch3_use_bufid1 << RBBM_DSPLY_DMI_CH3_USE_BUFID1_SHIFT)
+#define RBBM_DSPLY_SET_DMI_CH3_USE_BUFID2(rbbm_dsply_reg, dmi_ch3_use_bufid2) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_DMI_CH3_USE_BUFID2_MASK) | (dmi_ch3_use_bufid2 << RBBM_DSPLY_DMI_CH3_USE_BUFID2_SHIFT)
+#define RBBM_DSPLY_SET_DMI_CH3_SW_CNTL(rbbm_dsply_reg, dmi_ch3_sw_cntl) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_DMI_CH3_SW_CNTL_MASK) | (dmi_ch3_sw_cntl << RBBM_DSPLY_DMI_CH3_SW_CNTL_SHIFT)
+#define RBBM_DSPLY_SET_DMI_CH3_NUM_BUFS(rbbm_dsply_reg, dmi_ch3_num_bufs) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_DMI_CH3_NUM_BUFS_MASK) | (dmi_ch3_num_bufs << RBBM_DSPLY_DMI_CH3_NUM_BUFS_SHIFT)
+#define RBBM_DSPLY_SET_DMI_CH4_USE_BUFID0(rbbm_dsply_reg, dmi_ch4_use_bufid0) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_DMI_CH4_USE_BUFID0_MASK) | (dmi_ch4_use_bufid0 << RBBM_DSPLY_DMI_CH4_USE_BUFID0_SHIFT)
+#define RBBM_DSPLY_SET_DMI_CH4_USE_BUFID1(rbbm_dsply_reg, dmi_ch4_use_bufid1) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_DMI_CH4_USE_BUFID1_MASK) | (dmi_ch4_use_bufid1 << RBBM_DSPLY_DMI_CH4_USE_BUFID1_SHIFT)
+#define RBBM_DSPLY_SET_DMI_CH4_USE_BUFID2(rbbm_dsply_reg, dmi_ch4_use_bufid2) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_DMI_CH4_USE_BUFID2_MASK) | (dmi_ch4_use_bufid2 << RBBM_DSPLY_DMI_CH4_USE_BUFID2_SHIFT)
+#define RBBM_DSPLY_SET_DMI_CH4_SW_CNTL(rbbm_dsply_reg, dmi_ch4_sw_cntl) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_DMI_CH4_SW_CNTL_MASK) | (dmi_ch4_sw_cntl << RBBM_DSPLY_DMI_CH4_SW_CNTL_SHIFT)
+#define RBBM_DSPLY_SET_DMI_CH4_NUM_BUFS(rbbm_dsply_reg, dmi_ch4_num_bufs) \
+ rbbm_dsply_reg = (rbbm_dsply_reg & ~RBBM_DSPLY_DMI_CH4_NUM_BUFS_MASK) | (dmi_ch4_num_bufs << RBBM_DSPLY_DMI_CH4_NUM_BUFS_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_dsply_t {
+ unsigned int sel_dmi_active_bufid0 : RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID0_SIZE;
+ unsigned int sel_dmi_active_bufid1 : RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID1_SIZE;
+ unsigned int sel_dmi_active_bufid2 : RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID2_SIZE;
+ unsigned int sel_dmi_vsync_valid : RBBM_DSPLY_SEL_DMI_VSYNC_VALID_SIZE;
+ unsigned int dmi_ch1_use_bufid0 : RBBM_DSPLY_DMI_CH1_USE_BUFID0_SIZE;
+ unsigned int dmi_ch1_use_bufid1 : RBBM_DSPLY_DMI_CH1_USE_BUFID1_SIZE;
+ unsigned int dmi_ch1_use_bufid2 : RBBM_DSPLY_DMI_CH1_USE_BUFID2_SIZE;
+ unsigned int dmi_ch1_sw_cntl : RBBM_DSPLY_DMI_CH1_SW_CNTL_SIZE;
+ unsigned int dmi_ch1_num_bufs : RBBM_DSPLY_DMI_CH1_NUM_BUFS_SIZE;
+ unsigned int dmi_ch2_use_bufid0 : RBBM_DSPLY_DMI_CH2_USE_BUFID0_SIZE;
+ unsigned int dmi_ch2_use_bufid1 : RBBM_DSPLY_DMI_CH2_USE_BUFID1_SIZE;
+ unsigned int dmi_ch2_use_bufid2 : RBBM_DSPLY_DMI_CH2_USE_BUFID2_SIZE;
+ unsigned int dmi_ch2_sw_cntl : RBBM_DSPLY_DMI_CH2_SW_CNTL_SIZE;
+ unsigned int dmi_ch2_num_bufs : RBBM_DSPLY_DMI_CH2_NUM_BUFS_SIZE;
+ unsigned int dmi_channel_select : RBBM_DSPLY_DMI_CHANNEL_SELECT_SIZE;
+ unsigned int : 2;
+ unsigned int dmi_ch3_use_bufid0 : RBBM_DSPLY_DMI_CH3_USE_BUFID0_SIZE;
+ unsigned int dmi_ch3_use_bufid1 : RBBM_DSPLY_DMI_CH3_USE_BUFID1_SIZE;
+ unsigned int dmi_ch3_use_bufid2 : RBBM_DSPLY_DMI_CH3_USE_BUFID2_SIZE;
+ unsigned int dmi_ch3_sw_cntl : RBBM_DSPLY_DMI_CH3_SW_CNTL_SIZE;
+ unsigned int dmi_ch3_num_bufs : RBBM_DSPLY_DMI_CH3_NUM_BUFS_SIZE;
+ unsigned int dmi_ch4_use_bufid0 : RBBM_DSPLY_DMI_CH4_USE_BUFID0_SIZE;
+ unsigned int dmi_ch4_use_bufid1 : RBBM_DSPLY_DMI_CH4_USE_BUFID1_SIZE;
+ unsigned int dmi_ch4_use_bufid2 : RBBM_DSPLY_DMI_CH4_USE_BUFID2_SIZE;
+ unsigned int dmi_ch4_sw_cntl : RBBM_DSPLY_DMI_CH4_SW_CNTL_SIZE;
+ unsigned int dmi_ch4_num_bufs : RBBM_DSPLY_DMI_CH4_NUM_BUFS_SIZE;
+ } rbbm_dsply_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_dsply_t {
+ unsigned int dmi_ch4_num_bufs : RBBM_DSPLY_DMI_CH4_NUM_BUFS_SIZE;
+ unsigned int dmi_ch4_sw_cntl : RBBM_DSPLY_DMI_CH4_SW_CNTL_SIZE;
+ unsigned int dmi_ch4_use_bufid2 : RBBM_DSPLY_DMI_CH4_USE_BUFID2_SIZE;
+ unsigned int dmi_ch4_use_bufid1 : RBBM_DSPLY_DMI_CH4_USE_BUFID1_SIZE;
+ unsigned int dmi_ch4_use_bufid0 : RBBM_DSPLY_DMI_CH4_USE_BUFID0_SIZE;
+ unsigned int dmi_ch3_num_bufs : RBBM_DSPLY_DMI_CH3_NUM_BUFS_SIZE;
+ unsigned int dmi_ch3_sw_cntl : RBBM_DSPLY_DMI_CH3_SW_CNTL_SIZE;
+ unsigned int dmi_ch3_use_bufid2 : RBBM_DSPLY_DMI_CH3_USE_BUFID2_SIZE;
+ unsigned int dmi_ch3_use_bufid1 : RBBM_DSPLY_DMI_CH3_USE_BUFID1_SIZE;
+ unsigned int dmi_ch3_use_bufid0 : RBBM_DSPLY_DMI_CH3_USE_BUFID0_SIZE;
+ unsigned int : 2;
+ unsigned int dmi_channel_select : RBBM_DSPLY_DMI_CHANNEL_SELECT_SIZE;
+ unsigned int dmi_ch2_num_bufs : RBBM_DSPLY_DMI_CH2_NUM_BUFS_SIZE;
+ unsigned int dmi_ch2_sw_cntl : RBBM_DSPLY_DMI_CH2_SW_CNTL_SIZE;
+ unsigned int dmi_ch2_use_bufid2 : RBBM_DSPLY_DMI_CH2_USE_BUFID2_SIZE;
+ unsigned int dmi_ch2_use_bufid1 : RBBM_DSPLY_DMI_CH2_USE_BUFID1_SIZE;
+ unsigned int dmi_ch2_use_bufid0 : RBBM_DSPLY_DMI_CH2_USE_BUFID0_SIZE;
+ unsigned int dmi_ch1_num_bufs : RBBM_DSPLY_DMI_CH1_NUM_BUFS_SIZE;
+ unsigned int dmi_ch1_sw_cntl : RBBM_DSPLY_DMI_CH1_SW_CNTL_SIZE;
+ unsigned int dmi_ch1_use_bufid2 : RBBM_DSPLY_DMI_CH1_USE_BUFID2_SIZE;
+ unsigned int dmi_ch1_use_bufid1 : RBBM_DSPLY_DMI_CH1_USE_BUFID1_SIZE;
+ unsigned int dmi_ch1_use_bufid0 : RBBM_DSPLY_DMI_CH1_USE_BUFID0_SIZE;
+ unsigned int sel_dmi_vsync_valid : RBBM_DSPLY_SEL_DMI_VSYNC_VALID_SIZE;
+ unsigned int sel_dmi_active_bufid2 : RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID2_SIZE;
+ unsigned int sel_dmi_active_bufid1 : RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID1_SIZE;
+ unsigned int sel_dmi_active_bufid0 : RBBM_DSPLY_SEL_DMI_ACTIVE_BUFID0_SIZE;
+ } rbbm_dsply_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_dsply_t f;
+} rbbm_dsply_u;
+
+
+/*
+ * RBBM_RENDER_LATEST struct
+ */
+
+#define RBBM_RENDER_LATEST_DMI_CH1_BUFFER_ID_SIZE 2
+#define RBBM_RENDER_LATEST_DMI_CH2_BUFFER_ID_SIZE 2
+#define RBBM_RENDER_LATEST_DMI_CH3_BUFFER_ID_SIZE 2
+#define RBBM_RENDER_LATEST_DMI_CH4_BUFFER_ID_SIZE 2
+
+#define RBBM_RENDER_LATEST_DMI_CH1_BUFFER_ID_SHIFT 0
+#define RBBM_RENDER_LATEST_DMI_CH2_BUFFER_ID_SHIFT 8
+#define RBBM_RENDER_LATEST_DMI_CH3_BUFFER_ID_SHIFT 16
+#define RBBM_RENDER_LATEST_DMI_CH4_BUFFER_ID_SHIFT 24
+
+#define RBBM_RENDER_LATEST_DMI_CH1_BUFFER_ID_MASK 0x00000003
+#define RBBM_RENDER_LATEST_DMI_CH2_BUFFER_ID_MASK 0x00000300
+#define RBBM_RENDER_LATEST_DMI_CH3_BUFFER_ID_MASK 0x00030000
+#define RBBM_RENDER_LATEST_DMI_CH4_BUFFER_ID_MASK 0x03000000
+
+#define RBBM_RENDER_LATEST_MASK \
+ (RBBM_RENDER_LATEST_DMI_CH1_BUFFER_ID_MASK | \
+ RBBM_RENDER_LATEST_DMI_CH2_BUFFER_ID_MASK | \
+ RBBM_RENDER_LATEST_DMI_CH3_BUFFER_ID_MASK | \
+ RBBM_RENDER_LATEST_DMI_CH4_BUFFER_ID_MASK)
+
+#define RBBM_RENDER_LATEST(dmi_ch1_buffer_id, dmi_ch2_buffer_id, dmi_ch3_buffer_id, dmi_ch4_buffer_id) \
+ ((dmi_ch1_buffer_id << RBBM_RENDER_LATEST_DMI_CH1_BUFFER_ID_SHIFT) | \
+ (dmi_ch2_buffer_id << RBBM_RENDER_LATEST_DMI_CH2_BUFFER_ID_SHIFT) | \
+ (dmi_ch3_buffer_id << RBBM_RENDER_LATEST_DMI_CH3_BUFFER_ID_SHIFT) | \
+ (dmi_ch4_buffer_id << RBBM_RENDER_LATEST_DMI_CH4_BUFFER_ID_SHIFT))
+
+#define RBBM_RENDER_LATEST_GET_DMI_CH1_BUFFER_ID(rbbm_render_latest) \
+ ((rbbm_render_latest & RBBM_RENDER_LATEST_DMI_CH1_BUFFER_ID_MASK) >> RBBM_RENDER_LATEST_DMI_CH1_BUFFER_ID_SHIFT)
+#define RBBM_RENDER_LATEST_GET_DMI_CH2_BUFFER_ID(rbbm_render_latest) \
+ ((rbbm_render_latest & RBBM_RENDER_LATEST_DMI_CH2_BUFFER_ID_MASK) >> RBBM_RENDER_LATEST_DMI_CH2_BUFFER_ID_SHIFT)
+#define RBBM_RENDER_LATEST_GET_DMI_CH3_BUFFER_ID(rbbm_render_latest) \
+ ((rbbm_render_latest & RBBM_RENDER_LATEST_DMI_CH3_BUFFER_ID_MASK) >> RBBM_RENDER_LATEST_DMI_CH3_BUFFER_ID_SHIFT)
+#define RBBM_RENDER_LATEST_GET_DMI_CH4_BUFFER_ID(rbbm_render_latest) \
+ ((rbbm_render_latest & RBBM_RENDER_LATEST_DMI_CH4_BUFFER_ID_MASK) >> RBBM_RENDER_LATEST_DMI_CH4_BUFFER_ID_SHIFT)
+
+#define RBBM_RENDER_LATEST_SET_DMI_CH1_BUFFER_ID(rbbm_render_latest_reg, dmi_ch1_buffer_id) \
+ rbbm_render_latest_reg = (rbbm_render_latest_reg & ~RBBM_RENDER_LATEST_DMI_CH1_BUFFER_ID_MASK) | (dmi_ch1_buffer_id << RBBM_RENDER_LATEST_DMI_CH1_BUFFER_ID_SHIFT)
+#define RBBM_RENDER_LATEST_SET_DMI_CH2_BUFFER_ID(rbbm_render_latest_reg, dmi_ch2_buffer_id) \
+ rbbm_render_latest_reg = (rbbm_render_latest_reg & ~RBBM_RENDER_LATEST_DMI_CH2_BUFFER_ID_MASK) | (dmi_ch2_buffer_id << RBBM_RENDER_LATEST_DMI_CH2_BUFFER_ID_SHIFT)
+#define RBBM_RENDER_LATEST_SET_DMI_CH3_BUFFER_ID(rbbm_render_latest_reg, dmi_ch3_buffer_id) \
+ rbbm_render_latest_reg = (rbbm_render_latest_reg & ~RBBM_RENDER_LATEST_DMI_CH3_BUFFER_ID_MASK) | (dmi_ch3_buffer_id << RBBM_RENDER_LATEST_DMI_CH3_BUFFER_ID_SHIFT)
+#define RBBM_RENDER_LATEST_SET_DMI_CH4_BUFFER_ID(rbbm_render_latest_reg, dmi_ch4_buffer_id) \
+ rbbm_render_latest_reg = (rbbm_render_latest_reg & ~RBBM_RENDER_LATEST_DMI_CH4_BUFFER_ID_MASK) | (dmi_ch4_buffer_id << RBBM_RENDER_LATEST_DMI_CH4_BUFFER_ID_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_render_latest_t {
+ unsigned int dmi_ch1_buffer_id : RBBM_RENDER_LATEST_DMI_CH1_BUFFER_ID_SIZE;
+ unsigned int : 6;
+ unsigned int dmi_ch2_buffer_id : RBBM_RENDER_LATEST_DMI_CH2_BUFFER_ID_SIZE;
+ unsigned int : 6;
+ unsigned int dmi_ch3_buffer_id : RBBM_RENDER_LATEST_DMI_CH3_BUFFER_ID_SIZE;
+ unsigned int : 6;
+ unsigned int dmi_ch4_buffer_id : RBBM_RENDER_LATEST_DMI_CH4_BUFFER_ID_SIZE;
+ unsigned int : 6;
+ } rbbm_render_latest_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_render_latest_t {
+ unsigned int : 6;
+ unsigned int dmi_ch4_buffer_id : RBBM_RENDER_LATEST_DMI_CH4_BUFFER_ID_SIZE;
+ unsigned int : 6;
+ unsigned int dmi_ch3_buffer_id : RBBM_RENDER_LATEST_DMI_CH3_BUFFER_ID_SIZE;
+ unsigned int : 6;
+ unsigned int dmi_ch2_buffer_id : RBBM_RENDER_LATEST_DMI_CH2_BUFFER_ID_SIZE;
+ unsigned int : 6;
+ unsigned int dmi_ch1_buffer_id : RBBM_RENDER_LATEST_DMI_CH1_BUFFER_ID_SIZE;
+ } rbbm_render_latest_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_render_latest_t f;
+} rbbm_render_latest_u;
+
+
+/*
+ * RBBM_RTL_RELEASE struct
+ */
+
+#define RBBM_RTL_RELEASE_CHANGELIST_SIZE 32
+
+#define RBBM_RTL_RELEASE_CHANGELIST_SHIFT 0
+
+#define RBBM_RTL_RELEASE_CHANGELIST_MASK 0xffffffff
+
+#define RBBM_RTL_RELEASE_MASK \
+ (RBBM_RTL_RELEASE_CHANGELIST_MASK)
+
+#define RBBM_RTL_RELEASE(changelist) \
+ ((changelist << RBBM_RTL_RELEASE_CHANGELIST_SHIFT))
+
+#define RBBM_RTL_RELEASE_GET_CHANGELIST(rbbm_rtl_release) \
+ ((rbbm_rtl_release & RBBM_RTL_RELEASE_CHANGELIST_MASK) >> RBBM_RTL_RELEASE_CHANGELIST_SHIFT)
+
+#define RBBM_RTL_RELEASE_SET_CHANGELIST(rbbm_rtl_release_reg, changelist) \
+ rbbm_rtl_release_reg = (rbbm_rtl_release_reg & ~RBBM_RTL_RELEASE_CHANGELIST_MASK) | (changelist << RBBM_RTL_RELEASE_CHANGELIST_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_rtl_release_t {
+ unsigned int changelist : RBBM_RTL_RELEASE_CHANGELIST_SIZE;
+ } rbbm_rtl_release_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_rtl_release_t {
+ unsigned int changelist : RBBM_RTL_RELEASE_CHANGELIST_SIZE;
+ } rbbm_rtl_release_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_rtl_release_t f;
+} rbbm_rtl_release_u;
+
+
+/*
+ * RBBM_PATCH_RELEASE struct
+ */
+
+#define RBBM_PATCH_RELEASE_PATCH_REVISION_SIZE 16
+#define RBBM_PATCH_RELEASE_PATCH_SELECTION_SIZE 8
+#define RBBM_PATCH_RELEASE_CUSTOMER_ID_SIZE 8
+
+#define RBBM_PATCH_RELEASE_PATCH_REVISION_SHIFT 0
+#define RBBM_PATCH_RELEASE_PATCH_SELECTION_SHIFT 16
+#define RBBM_PATCH_RELEASE_CUSTOMER_ID_SHIFT 24
+
+#define RBBM_PATCH_RELEASE_PATCH_REVISION_MASK 0x0000ffff
+#define RBBM_PATCH_RELEASE_PATCH_SELECTION_MASK 0x00ff0000
+#define RBBM_PATCH_RELEASE_CUSTOMER_ID_MASK 0xff000000
+
+#define RBBM_PATCH_RELEASE_MASK \
+ (RBBM_PATCH_RELEASE_PATCH_REVISION_MASK | \
+ RBBM_PATCH_RELEASE_PATCH_SELECTION_MASK | \
+ RBBM_PATCH_RELEASE_CUSTOMER_ID_MASK)
+
+#define RBBM_PATCH_RELEASE(patch_revision, patch_selection, customer_id) \
+ ((patch_revision << RBBM_PATCH_RELEASE_PATCH_REVISION_SHIFT) | \
+ (patch_selection << RBBM_PATCH_RELEASE_PATCH_SELECTION_SHIFT) | \
+ (customer_id << RBBM_PATCH_RELEASE_CUSTOMER_ID_SHIFT))
+
+#define RBBM_PATCH_RELEASE_GET_PATCH_REVISION(rbbm_patch_release) \
+ ((rbbm_patch_release & RBBM_PATCH_RELEASE_PATCH_REVISION_MASK) >> RBBM_PATCH_RELEASE_PATCH_REVISION_SHIFT)
+#define RBBM_PATCH_RELEASE_GET_PATCH_SELECTION(rbbm_patch_release) \
+ ((rbbm_patch_release & RBBM_PATCH_RELEASE_PATCH_SELECTION_MASK) >> RBBM_PATCH_RELEASE_PATCH_SELECTION_SHIFT)
+#define RBBM_PATCH_RELEASE_GET_CUSTOMER_ID(rbbm_patch_release) \
+ ((rbbm_patch_release & RBBM_PATCH_RELEASE_CUSTOMER_ID_MASK) >> RBBM_PATCH_RELEASE_CUSTOMER_ID_SHIFT)
+
+#define RBBM_PATCH_RELEASE_SET_PATCH_REVISION(rbbm_patch_release_reg, patch_revision) \
+ rbbm_patch_release_reg = (rbbm_patch_release_reg & ~RBBM_PATCH_RELEASE_PATCH_REVISION_MASK) | (patch_revision << RBBM_PATCH_RELEASE_PATCH_REVISION_SHIFT)
+#define RBBM_PATCH_RELEASE_SET_PATCH_SELECTION(rbbm_patch_release_reg, patch_selection) \
+ rbbm_patch_release_reg = (rbbm_patch_release_reg & ~RBBM_PATCH_RELEASE_PATCH_SELECTION_MASK) | (patch_selection << RBBM_PATCH_RELEASE_PATCH_SELECTION_SHIFT)
+#define RBBM_PATCH_RELEASE_SET_CUSTOMER_ID(rbbm_patch_release_reg, customer_id) \
+ rbbm_patch_release_reg = (rbbm_patch_release_reg & ~RBBM_PATCH_RELEASE_CUSTOMER_ID_MASK) | (customer_id << RBBM_PATCH_RELEASE_CUSTOMER_ID_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_patch_release_t {
+ unsigned int patch_revision : RBBM_PATCH_RELEASE_PATCH_REVISION_SIZE;
+ unsigned int patch_selection : RBBM_PATCH_RELEASE_PATCH_SELECTION_SIZE;
+ unsigned int customer_id : RBBM_PATCH_RELEASE_CUSTOMER_ID_SIZE;
+ } rbbm_patch_release_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_patch_release_t {
+ unsigned int customer_id : RBBM_PATCH_RELEASE_CUSTOMER_ID_SIZE;
+ unsigned int patch_selection : RBBM_PATCH_RELEASE_PATCH_SELECTION_SIZE;
+ unsigned int patch_revision : RBBM_PATCH_RELEASE_PATCH_REVISION_SIZE;
+ } rbbm_patch_release_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_patch_release_t f;
+} rbbm_patch_release_u;
+
+
+/*
+ * RBBM_AUXILIARY_CONFIG struct
+ */
+
+#define RBBM_AUXILIARY_CONFIG_RESERVED_SIZE 32
+
+#define RBBM_AUXILIARY_CONFIG_RESERVED_SHIFT 0
+
+#define RBBM_AUXILIARY_CONFIG_RESERVED_MASK 0xffffffff
+
+#define RBBM_AUXILIARY_CONFIG_MASK \
+ (RBBM_AUXILIARY_CONFIG_RESERVED_MASK)
+
+#define RBBM_AUXILIARY_CONFIG(reserved) \
+ ((reserved << RBBM_AUXILIARY_CONFIG_RESERVED_SHIFT))
+
+#define RBBM_AUXILIARY_CONFIG_GET_RESERVED(rbbm_auxiliary_config) \
+ ((rbbm_auxiliary_config & RBBM_AUXILIARY_CONFIG_RESERVED_MASK) >> RBBM_AUXILIARY_CONFIG_RESERVED_SHIFT)
+
+#define RBBM_AUXILIARY_CONFIG_SET_RESERVED(rbbm_auxiliary_config_reg, reserved) \
+ rbbm_auxiliary_config_reg = (rbbm_auxiliary_config_reg & ~RBBM_AUXILIARY_CONFIG_RESERVED_MASK) | (reserved << RBBM_AUXILIARY_CONFIG_RESERVED_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_auxiliary_config_t {
+ unsigned int reserved : RBBM_AUXILIARY_CONFIG_RESERVED_SIZE;
+ } rbbm_auxiliary_config_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_auxiliary_config_t {
+ unsigned int reserved : RBBM_AUXILIARY_CONFIG_RESERVED_SIZE;
+ } rbbm_auxiliary_config_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_auxiliary_config_t f;
+} rbbm_auxiliary_config_u;
+
+
+/*
+ * RBBM_PERIPHID0 struct
+ */
+
+#define RBBM_PERIPHID0_PARTNUMBER0_SIZE 8
+
+#define RBBM_PERIPHID0_PARTNUMBER0_SHIFT 0
+
+#define RBBM_PERIPHID0_PARTNUMBER0_MASK 0x000000ff
+
+#define RBBM_PERIPHID0_MASK \
+ (RBBM_PERIPHID0_PARTNUMBER0_MASK)
+
+#define RBBM_PERIPHID0(partnumber0) \
+ ((partnumber0 << RBBM_PERIPHID0_PARTNUMBER0_SHIFT))
+
+#define RBBM_PERIPHID0_GET_PARTNUMBER0(rbbm_periphid0) \
+ ((rbbm_periphid0 & RBBM_PERIPHID0_PARTNUMBER0_MASK) >> RBBM_PERIPHID0_PARTNUMBER0_SHIFT)
+
+#define RBBM_PERIPHID0_SET_PARTNUMBER0(rbbm_periphid0_reg, partnumber0) \
+ rbbm_periphid0_reg = (rbbm_periphid0_reg & ~RBBM_PERIPHID0_PARTNUMBER0_MASK) | (partnumber0 << RBBM_PERIPHID0_PARTNUMBER0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_periphid0_t {
+ unsigned int partnumber0 : RBBM_PERIPHID0_PARTNUMBER0_SIZE;
+ unsigned int : 24;
+ } rbbm_periphid0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_periphid0_t {
+ unsigned int : 24;
+ unsigned int partnumber0 : RBBM_PERIPHID0_PARTNUMBER0_SIZE;
+ } rbbm_periphid0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_periphid0_t f;
+} rbbm_periphid0_u;
+
+
+/*
+ * RBBM_PERIPHID1 struct
+ */
+
+#define RBBM_PERIPHID1_PARTNUMBER1_SIZE 4
+#define RBBM_PERIPHID1_DESIGNER0_SIZE 4
+
+#define RBBM_PERIPHID1_PARTNUMBER1_SHIFT 0
+#define RBBM_PERIPHID1_DESIGNER0_SHIFT 4
+
+#define RBBM_PERIPHID1_PARTNUMBER1_MASK 0x0000000f
+#define RBBM_PERIPHID1_DESIGNER0_MASK 0x000000f0
+
+#define RBBM_PERIPHID1_MASK \
+ (RBBM_PERIPHID1_PARTNUMBER1_MASK | \
+ RBBM_PERIPHID1_DESIGNER0_MASK)
+
+#define RBBM_PERIPHID1(partnumber1, designer0) \
+ ((partnumber1 << RBBM_PERIPHID1_PARTNUMBER1_SHIFT) | \
+ (designer0 << RBBM_PERIPHID1_DESIGNER0_SHIFT))
+
+#define RBBM_PERIPHID1_GET_PARTNUMBER1(rbbm_periphid1) \
+ ((rbbm_periphid1 & RBBM_PERIPHID1_PARTNUMBER1_MASK) >> RBBM_PERIPHID1_PARTNUMBER1_SHIFT)
+#define RBBM_PERIPHID1_GET_DESIGNER0(rbbm_periphid1) \
+ ((rbbm_periphid1 & RBBM_PERIPHID1_DESIGNER0_MASK) >> RBBM_PERIPHID1_DESIGNER0_SHIFT)
+
+#define RBBM_PERIPHID1_SET_PARTNUMBER1(rbbm_periphid1_reg, partnumber1) \
+ rbbm_periphid1_reg = (rbbm_periphid1_reg & ~RBBM_PERIPHID1_PARTNUMBER1_MASK) | (partnumber1 << RBBM_PERIPHID1_PARTNUMBER1_SHIFT)
+#define RBBM_PERIPHID1_SET_DESIGNER0(rbbm_periphid1_reg, designer0) \
+ rbbm_periphid1_reg = (rbbm_periphid1_reg & ~RBBM_PERIPHID1_DESIGNER0_MASK) | (designer0 << RBBM_PERIPHID1_DESIGNER0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_periphid1_t {
+ unsigned int partnumber1 : RBBM_PERIPHID1_PARTNUMBER1_SIZE;
+ unsigned int designer0 : RBBM_PERIPHID1_DESIGNER0_SIZE;
+ unsigned int : 24;
+ } rbbm_periphid1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_periphid1_t {
+ unsigned int : 24;
+ unsigned int designer0 : RBBM_PERIPHID1_DESIGNER0_SIZE;
+ unsigned int partnumber1 : RBBM_PERIPHID1_PARTNUMBER1_SIZE;
+ } rbbm_periphid1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_periphid1_t f;
+} rbbm_periphid1_u;
+
+
+/*
+ * RBBM_PERIPHID2 struct
+ */
+
+#define RBBM_PERIPHID2_DESIGNER1_SIZE 4
+#define RBBM_PERIPHID2_REVISION_SIZE 4
+
+#define RBBM_PERIPHID2_DESIGNER1_SHIFT 0
+#define RBBM_PERIPHID2_REVISION_SHIFT 4
+
+#define RBBM_PERIPHID2_DESIGNER1_MASK 0x0000000f
+#define RBBM_PERIPHID2_REVISION_MASK 0x000000f0
+
+#define RBBM_PERIPHID2_MASK \
+ (RBBM_PERIPHID2_DESIGNER1_MASK | \
+ RBBM_PERIPHID2_REVISION_MASK)
+
+#define RBBM_PERIPHID2(designer1, revision) \
+ ((designer1 << RBBM_PERIPHID2_DESIGNER1_SHIFT) | \
+ (revision << RBBM_PERIPHID2_REVISION_SHIFT))
+
+#define RBBM_PERIPHID2_GET_DESIGNER1(rbbm_periphid2) \
+ ((rbbm_periphid2 & RBBM_PERIPHID2_DESIGNER1_MASK) >> RBBM_PERIPHID2_DESIGNER1_SHIFT)
+#define RBBM_PERIPHID2_GET_REVISION(rbbm_periphid2) \
+ ((rbbm_periphid2 & RBBM_PERIPHID2_REVISION_MASK) >> RBBM_PERIPHID2_REVISION_SHIFT)
+
+#define RBBM_PERIPHID2_SET_DESIGNER1(rbbm_periphid2_reg, designer1) \
+ rbbm_periphid2_reg = (rbbm_periphid2_reg & ~RBBM_PERIPHID2_DESIGNER1_MASK) | (designer1 << RBBM_PERIPHID2_DESIGNER1_SHIFT)
+#define RBBM_PERIPHID2_SET_REVISION(rbbm_periphid2_reg, revision) \
+ rbbm_periphid2_reg = (rbbm_periphid2_reg & ~RBBM_PERIPHID2_REVISION_MASK) | (revision << RBBM_PERIPHID2_REVISION_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_periphid2_t {
+ unsigned int designer1 : RBBM_PERIPHID2_DESIGNER1_SIZE;
+ unsigned int revision : RBBM_PERIPHID2_REVISION_SIZE;
+ unsigned int : 24;
+ } rbbm_periphid2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_periphid2_t {
+ unsigned int : 24;
+ unsigned int revision : RBBM_PERIPHID2_REVISION_SIZE;
+ unsigned int designer1 : RBBM_PERIPHID2_DESIGNER1_SIZE;
+ } rbbm_periphid2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_periphid2_t f;
+} rbbm_periphid2_u;
+
+
+/*
+ * RBBM_PERIPHID3 struct
+ */
+
+#define RBBM_PERIPHID3_RBBM_HOST_INTERFACE_SIZE 2
+#define RBBM_PERIPHID3_GARB_SLAVE_INTERFACE_SIZE 2
+#define RBBM_PERIPHID3_MH_INTERFACE_SIZE 2
+#define RBBM_PERIPHID3_CONTINUATION_SIZE 1
+
+#define RBBM_PERIPHID3_RBBM_HOST_INTERFACE_SHIFT 0
+#define RBBM_PERIPHID3_GARB_SLAVE_INTERFACE_SHIFT 2
+#define RBBM_PERIPHID3_MH_INTERFACE_SHIFT 4
+#define RBBM_PERIPHID3_CONTINUATION_SHIFT 7
+
+#define RBBM_PERIPHID3_RBBM_HOST_INTERFACE_MASK 0x00000003
+#define RBBM_PERIPHID3_GARB_SLAVE_INTERFACE_MASK 0x0000000c
+#define RBBM_PERIPHID3_MH_INTERFACE_MASK 0x00000030
+#define RBBM_PERIPHID3_CONTINUATION_MASK 0x00000080
+
+#define RBBM_PERIPHID3_MASK \
+ (RBBM_PERIPHID3_RBBM_HOST_INTERFACE_MASK | \
+ RBBM_PERIPHID3_GARB_SLAVE_INTERFACE_MASK | \
+ RBBM_PERIPHID3_MH_INTERFACE_MASK | \
+ RBBM_PERIPHID3_CONTINUATION_MASK)
+
+#define RBBM_PERIPHID3(rbbm_host_interface, garb_slave_interface, mh_interface, continuation) \
+ ((rbbm_host_interface << RBBM_PERIPHID3_RBBM_HOST_INTERFACE_SHIFT) | \
+ (garb_slave_interface << RBBM_PERIPHID3_GARB_SLAVE_INTERFACE_SHIFT) | \
+ (mh_interface << RBBM_PERIPHID3_MH_INTERFACE_SHIFT) | \
+ (continuation << RBBM_PERIPHID3_CONTINUATION_SHIFT))
+
+#define RBBM_PERIPHID3_GET_RBBM_HOST_INTERFACE(rbbm_periphid3) \
+ ((rbbm_periphid3 & RBBM_PERIPHID3_RBBM_HOST_INTERFACE_MASK) >> RBBM_PERIPHID3_RBBM_HOST_INTERFACE_SHIFT)
+#define RBBM_PERIPHID3_GET_GARB_SLAVE_INTERFACE(rbbm_periphid3) \
+ ((rbbm_periphid3 & RBBM_PERIPHID3_GARB_SLAVE_INTERFACE_MASK) >> RBBM_PERIPHID3_GARB_SLAVE_INTERFACE_SHIFT)
+#define RBBM_PERIPHID3_GET_MH_INTERFACE(rbbm_periphid3) \
+ ((rbbm_periphid3 & RBBM_PERIPHID3_MH_INTERFACE_MASK) >> RBBM_PERIPHID3_MH_INTERFACE_SHIFT)
+#define RBBM_PERIPHID3_GET_CONTINUATION(rbbm_periphid3) \
+ ((rbbm_periphid3 & RBBM_PERIPHID3_CONTINUATION_MASK) >> RBBM_PERIPHID3_CONTINUATION_SHIFT)
+
+#define RBBM_PERIPHID3_SET_RBBM_HOST_INTERFACE(rbbm_periphid3_reg, rbbm_host_interface) \
+ rbbm_periphid3_reg = (rbbm_periphid3_reg & ~RBBM_PERIPHID3_RBBM_HOST_INTERFACE_MASK) | (rbbm_host_interface << RBBM_PERIPHID3_RBBM_HOST_INTERFACE_SHIFT)
+#define RBBM_PERIPHID3_SET_GARB_SLAVE_INTERFACE(rbbm_periphid3_reg, garb_slave_interface) \
+ rbbm_periphid3_reg = (rbbm_periphid3_reg & ~RBBM_PERIPHID3_GARB_SLAVE_INTERFACE_MASK) | (garb_slave_interface << RBBM_PERIPHID3_GARB_SLAVE_INTERFACE_SHIFT)
+#define RBBM_PERIPHID3_SET_MH_INTERFACE(rbbm_periphid3_reg, mh_interface) \
+ rbbm_periphid3_reg = (rbbm_periphid3_reg & ~RBBM_PERIPHID3_MH_INTERFACE_MASK) | (mh_interface << RBBM_PERIPHID3_MH_INTERFACE_SHIFT)
+#define RBBM_PERIPHID3_SET_CONTINUATION(rbbm_periphid3_reg, continuation) \
+ rbbm_periphid3_reg = (rbbm_periphid3_reg & ~RBBM_PERIPHID3_CONTINUATION_MASK) | (continuation << RBBM_PERIPHID3_CONTINUATION_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_periphid3_t {
+ unsigned int rbbm_host_interface : RBBM_PERIPHID3_RBBM_HOST_INTERFACE_SIZE;
+ unsigned int garb_slave_interface : RBBM_PERIPHID3_GARB_SLAVE_INTERFACE_SIZE;
+ unsigned int mh_interface : RBBM_PERIPHID3_MH_INTERFACE_SIZE;
+ unsigned int : 1;
+ unsigned int continuation : RBBM_PERIPHID3_CONTINUATION_SIZE;
+ unsigned int : 24;
+ } rbbm_periphid3_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_periphid3_t {
+ unsigned int : 24;
+ unsigned int continuation : RBBM_PERIPHID3_CONTINUATION_SIZE;
+ unsigned int : 1;
+ unsigned int mh_interface : RBBM_PERIPHID3_MH_INTERFACE_SIZE;
+ unsigned int garb_slave_interface : RBBM_PERIPHID3_GARB_SLAVE_INTERFACE_SIZE;
+ unsigned int rbbm_host_interface : RBBM_PERIPHID3_RBBM_HOST_INTERFACE_SIZE;
+ } rbbm_periphid3_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_periphid3_t f;
+} rbbm_periphid3_u;
+
+
+/*
+ * RBBM_CNTL struct
+ */
+
+#define RBBM_CNTL_READ_TIMEOUT_SIZE 8
+#define RBBM_CNTL_REGCLK_DEASSERT_TIME_SIZE 9
+
+#define RBBM_CNTL_READ_TIMEOUT_SHIFT 0
+#define RBBM_CNTL_REGCLK_DEASSERT_TIME_SHIFT 8
+
+#define RBBM_CNTL_READ_TIMEOUT_MASK 0x000000ff
+#define RBBM_CNTL_REGCLK_DEASSERT_TIME_MASK 0x0001ff00
+
+#define RBBM_CNTL_MASK \
+ (RBBM_CNTL_READ_TIMEOUT_MASK | \
+ RBBM_CNTL_REGCLK_DEASSERT_TIME_MASK)
+
+#define RBBM_CNTL(read_timeout, regclk_deassert_time) \
+ ((read_timeout << RBBM_CNTL_READ_TIMEOUT_SHIFT) | \
+ (regclk_deassert_time << RBBM_CNTL_REGCLK_DEASSERT_TIME_SHIFT))
+
+#define RBBM_CNTL_GET_READ_TIMEOUT(rbbm_cntl) \
+ ((rbbm_cntl & RBBM_CNTL_READ_TIMEOUT_MASK) >> RBBM_CNTL_READ_TIMEOUT_SHIFT)
+#define RBBM_CNTL_GET_REGCLK_DEASSERT_TIME(rbbm_cntl) \
+ ((rbbm_cntl & RBBM_CNTL_REGCLK_DEASSERT_TIME_MASK) >> RBBM_CNTL_REGCLK_DEASSERT_TIME_SHIFT)
+
+#define RBBM_CNTL_SET_READ_TIMEOUT(rbbm_cntl_reg, read_timeout) \
+ rbbm_cntl_reg = (rbbm_cntl_reg & ~RBBM_CNTL_READ_TIMEOUT_MASK) | (read_timeout << RBBM_CNTL_READ_TIMEOUT_SHIFT)
+#define RBBM_CNTL_SET_REGCLK_DEASSERT_TIME(rbbm_cntl_reg, regclk_deassert_time) \
+ rbbm_cntl_reg = (rbbm_cntl_reg & ~RBBM_CNTL_REGCLK_DEASSERT_TIME_MASK) | (regclk_deassert_time << RBBM_CNTL_REGCLK_DEASSERT_TIME_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_cntl_t {
+ unsigned int read_timeout : RBBM_CNTL_READ_TIMEOUT_SIZE;
+ unsigned int regclk_deassert_time : RBBM_CNTL_REGCLK_DEASSERT_TIME_SIZE;
+ unsigned int : 15;
+ } rbbm_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_cntl_t {
+ unsigned int : 15;
+ unsigned int regclk_deassert_time : RBBM_CNTL_REGCLK_DEASSERT_TIME_SIZE;
+ unsigned int read_timeout : RBBM_CNTL_READ_TIMEOUT_SIZE;
+ } rbbm_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_cntl_t f;
+} rbbm_cntl_u;
+
+
+/*
+ * RBBM_SKEW_CNTL struct
+ */
+
+#define RBBM_SKEW_CNTL_SKEW_TOP_THRESHOLD_SIZE 5
+#define RBBM_SKEW_CNTL_SKEW_COUNT_SIZE 5
+
+#define RBBM_SKEW_CNTL_SKEW_TOP_THRESHOLD_SHIFT 0
+#define RBBM_SKEW_CNTL_SKEW_COUNT_SHIFT 5
+
+#define RBBM_SKEW_CNTL_SKEW_TOP_THRESHOLD_MASK 0x0000001f
+#define RBBM_SKEW_CNTL_SKEW_COUNT_MASK 0x000003e0
+
+#define RBBM_SKEW_CNTL_MASK \
+ (RBBM_SKEW_CNTL_SKEW_TOP_THRESHOLD_MASK | \
+ RBBM_SKEW_CNTL_SKEW_COUNT_MASK)
+
+#define RBBM_SKEW_CNTL(skew_top_threshold, skew_count) \
+ ((skew_top_threshold << RBBM_SKEW_CNTL_SKEW_TOP_THRESHOLD_SHIFT) | \
+ (skew_count << RBBM_SKEW_CNTL_SKEW_COUNT_SHIFT))
+
+#define RBBM_SKEW_CNTL_GET_SKEW_TOP_THRESHOLD(rbbm_skew_cntl) \
+ ((rbbm_skew_cntl & RBBM_SKEW_CNTL_SKEW_TOP_THRESHOLD_MASK) >> RBBM_SKEW_CNTL_SKEW_TOP_THRESHOLD_SHIFT)
+#define RBBM_SKEW_CNTL_GET_SKEW_COUNT(rbbm_skew_cntl) \
+ ((rbbm_skew_cntl & RBBM_SKEW_CNTL_SKEW_COUNT_MASK) >> RBBM_SKEW_CNTL_SKEW_COUNT_SHIFT)
+
+#define RBBM_SKEW_CNTL_SET_SKEW_TOP_THRESHOLD(rbbm_skew_cntl_reg, skew_top_threshold) \
+ rbbm_skew_cntl_reg = (rbbm_skew_cntl_reg & ~RBBM_SKEW_CNTL_SKEW_TOP_THRESHOLD_MASK) | (skew_top_threshold << RBBM_SKEW_CNTL_SKEW_TOP_THRESHOLD_SHIFT)
+#define RBBM_SKEW_CNTL_SET_SKEW_COUNT(rbbm_skew_cntl_reg, skew_count) \
+ rbbm_skew_cntl_reg = (rbbm_skew_cntl_reg & ~RBBM_SKEW_CNTL_SKEW_COUNT_MASK) | (skew_count << RBBM_SKEW_CNTL_SKEW_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_skew_cntl_t {
+ unsigned int skew_top_threshold : RBBM_SKEW_CNTL_SKEW_TOP_THRESHOLD_SIZE;
+ unsigned int skew_count : RBBM_SKEW_CNTL_SKEW_COUNT_SIZE;
+ unsigned int : 22;
+ } rbbm_skew_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_skew_cntl_t {
+ unsigned int : 22;
+ unsigned int skew_count : RBBM_SKEW_CNTL_SKEW_COUNT_SIZE;
+ unsigned int skew_top_threshold : RBBM_SKEW_CNTL_SKEW_TOP_THRESHOLD_SIZE;
+ } rbbm_skew_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_skew_cntl_t f;
+} rbbm_skew_cntl_u;
+
+
+/*
+ * RBBM_SOFT_RESET struct
+ */
+
+#define RBBM_SOFT_RESET_SOFT_RESET_CP_SIZE 1
+#define RBBM_SOFT_RESET_SOFT_RESET_PA_SIZE 1
+#define RBBM_SOFT_RESET_SOFT_RESET_MH_SIZE 1
+#define RBBM_SOFT_RESET_SOFT_RESET_BC_SIZE 1
+#define RBBM_SOFT_RESET_SOFT_RESET_SQ_SIZE 1
+#define RBBM_SOFT_RESET_SOFT_RESET_SX_SIZE 1
+#define RBBM_SOFT_RESET_SOFT_RESET_CIB_SIZE 1
+#define RBBM_SOFT_RESET_SOFT_RESET_SC_SIZE 1
+#define RBBM_SOFT_RESET_SOFT_RESET_VGT_SIZE 1
+
+#define RBBM_SOFT_RESET_SOFT_RESET_CP_SHIFT 0
+#define RBBM_SOFT_RESET_SOFT_RESET_PA_SHIFT 2
+#define RBBM_SOFT_RESET_SOFT_RESET_MH_SHIFT 3
+#define RBBM_SOFT_RESET_SOFT_RESET_BC_SHIFT 4
+#define RBBM_SOFT_RESET_SOFT_RESET_SQ_SHIFT 5
+#define RBBM_SOFT_RESET_SOFT_RESET_SX_SHIFT 6
+#define RBBM_SOFT_RESET_SOFT_RESET_CIB_SHIFT 12
+#define RBBM_SOFT_RESET_SOFT_RESET_SC_SHIFT 15
+#define RBBM_SOFT_RESET_SOFT_RESET_VGT_SHIFT 16
+
+#define RBBM_SOFT_RESET_SOFT_RESET_CP_MASK 0x00000001
+#define RBBM_SOFT_RESET_SOFT_RESET_PA_MASK 0x00000004
+#define RBBM_SOFT_RESET_SOFT_RESET_MH_MASK 0x00000008
+#define RBBM_SOFT_RESET_SOFT_RESET_BC_MASK 0x00000010
+#define RBBM_SOFT_RESET_SOFT_RESET_SQ_MASK 0x00000020
+#define RBBM_SOFT_RESET_SOFT_RESET_SX_MASK 0x00000040
+#define RBBM_SOFT_RESET_SOFT_RESET_CIB_MASK 0x00001000
+#define RBBM_SOFT_RESET_SOFT_RESET_SC_MASK 0x00008000
+#define RBBM_SOFT_RESET_SOFT_RESET_VGT_MASK 0x00010000
+
+#define RBBM_SOFT_RESET_MASK \
+ (RBBM_SOFT_RESET_SOFT_RESET_CP_MASK | \
+ RBBM_SOFT_RESET_SOFT_RESET_PA_MASK | \
+ RBBM_SOFT_RESET_SOFT_RESET_MH_MASK | \
+ RBBM_SOFT_RESET_SOFT_RESET_BC_MASK | \
+ RBBM_SOFT_RESET_SOFT_RESET_SQ_MASK | \
+ RBBM_SOFT_RESET_SOFT_RESET_SX_MASK | \
+ RBBM_SOFT_RESET_SOFT_RESET_CIB_MASK | \
+ RBBM_SOFT_RESET_SOFT_RESET_SC_MASK | \
+ RBBM_SOFT_RESET_SOFT_RESET_VGT_MASK)
+
+#define RBBM_SOFT_RESET(soft_reset_cp, soft_reset_pa, soft_reset_mh, soft_reset_bc, soft_reset_sq, soft_reset_sx, soft_reset_cib, soft_reset_sc, soft_reset_vgt) \
+ ((soft_reset_cp << RBBM_SOFT_RESET_SOFT_RESET_CP_SHIFT) | \
+ (soft_reset_pa << RBBM_SOFT_RESET_SOFT_RESET_PA_SHIFT) | \
+ (soft_reset_mh << RBBM_SOFT_RESET_SOFT_RESET_MH_SHIFT) | \
+ (soft_reset_bc << RBBM_SOFT_RESET_SOFT_RESET_BC_SHIFT) | \
+ (soft_reset_sq << RBBM_SOFT_RESET_SOFT_RESET_SQ_SHIFT) | \
+ (soft_reset_sx << RBBM_SOFT_RESET_SOFT_RESET_SX_SHIFT) | \
+ (soft_reset_cib << RBBM_SOFT_RESET_SOFT_RESET_CIB_SHIFT) | \
+ (soft_reset_sc << RBBM_SOFT_RESET_SOFT_RESET_SC_SHIFT) | \
+ (soft_reset_vgt << RBBM_SOFT_RESET_SOFT_RESET_VGT_SHIFT))
+
+#define RBBM_SOFT_RESET_GET_SOFT_RESET_CP(rbbm_soft_reset) \
+ ((rbbm_soft_reset & RBBM_SOFT_RESET_SOFT_RESET_CP_MASK) >> RBBM_SOFT_RESET_SOFT_RESET_CP_SHIFT)
+#define RBBM_SOFT_RESET_GET_SOFT_RESET_PA(rbbm_soft_reset) \
+ ((rbbm_soft_reset & RBBM_SOFT_RESET_SOFT_RESET_PA_MASK) >> RBBM_SOFT_RESET_SOFT_RESET_PA_SHIFT)
+#define RBBM_SOFT_RESET_GET_SOFT_RESET_MH(rbbm_soft_reset) \
+ ((rbbm_soft_reset & RBBM_SOFT_RESET_SOFT_RESET_MH_MASK) >> RBBM_SOFT_RESET_SOFT_RESET_MH_SHIFT)
+#define RBBM_SOFT_RESET_GET_SOFT_RESET_BC(rbbm_soft_reset) \
+ ((rbbm_soft_reset & RBBM_SOFT_RESET_SOFT_RESET_BC_MASK) >> RBBM_SOFT_RESET_SOFT_RESET_BC_SHIFT)
+#define RBBM_SOFT_RESET_GET_SOFT_RESET_SQ(rbbm_soft_reset) \
+ ((rbbm_soft_reset & RBBM_SOFT_RESET_SOFT_RESET_SQ_MASK) >> RBBM_SOFT_RESET_SOFT_RESET_SQ_SHIFT)
+#define RBBM_SOFT_RESET_GET_SOFT_RESET_SX(rbbm_soft_reset) \
+ ((rbbm_soft_reset & RBBM_SOFT_RESET_SOFT_RESET_SX_MASK) >> RBBM_SOFT_RESET_SOFT_RESET_SX_SHIFT)
+#define RBBM_SOFT_RESET_GET_SOFT_RESET_CIB(rbbm_soft_reset) \
+ ((rbbm_soft_reset & RBBM_SOFT_RESET_SOFT_RESET_CIB_MASK) >> RBBM_SOFT_RESET_SOFT_RESET_CIB_SHIFT)
+#define RBBM_SOFT_RESET_GET_SOFT_RESET_SC(rbbm_soft_reset) \
+ ((rbbm_soft_reset & RBBM_SOFT_RESET_SOFT_RESET_SC_MASK) >> RBBM_SOFT_RESET_SOFT_RESET_SC_SHIFT)
+#define RBBM_SOFT_RESET_GET_SOFT_RESET_VGT(rbbm_soft_reset) \
+ ((rbbm_soft_reset & RBBM_SOFT_RESET_SOFT_RESET_VGT_MASK) >> RBBM_SOFT_RESET_SOFT_RESET_VGT_SHIFT)
+
+#define RBBM_SOFT_RESET_SET_SOFT_RESET_CP(rbbm_soft_reset_reg, soft_reset_cp) \
+ rbbm_soft_reset_reg = (rbbm_soft_reset_reg & ~RBBM_SOFT_RESET_SOFT_RESET_CP_MASK) | (soft_reset_cp << RBBM_SOFT_RESET_SOFT_RESET_CP_SHIFT)
+#define RBBM_SOFT_RESET_SET_SOFT_RESET_PA(rbbm_soft_reset_reg, soft_reset_pa) \
+ rbbm_soft_reset_reg = (rbbm_soft_reset_reg & ~RBBM_SOFT_RESET_SOFT_RESET_PA_MASK) | (soft_reset_pa << RBBM_SOFT_RESET_SOFT_RESET_PA_SHIFT)
+#define RBBM_SOFT_RESET_SET_SOFT_RESET_MH(rbbm_soft_reset_reg, soft_reset_mh) \
+ rbbm_soft_reset_reg = (rbbm_soft_reset_reg & ~RBBM_SOFT_RESET_SOFT_RESET_MH_MASK) | (soft_reset_mh << RBBM_SOFT_RESET_SOFT_RESET_MH_SHIFT)
+#define RBBM_SOFT_RESET_SET_SOFT_RESET_BC(rbbm_soft_reset_reg, soft_reset_bc) \
+ rbbm_soft_reset_reg = (rbbm_soft_reset_reg & ~RBBM_SOFT_RESET_SOFT_RESET_BC_MASK) | (soft_reset_bc << RBBM_SOFT_RESET_SOFT_RESET_BC_SHIFT)
+#define RBBM_SOFT_RESET_SET_SOFT_RESET_SQ(rbbm_soft_reset_reg, soft_reset_sq) \
+ rbbm_soft_reset_reg = (rbbm_soft_reset_reg & ~RBBM_SOFT_RESET_SOFT_RESET_SQ_MASK) | (soft_reset_sq << RBBM_SOFT_RESET_SOFT_RESET_SQ_SHIFT)
+#define RBBM_SOFT_RESET_SET_SOFT_RESET_SX(rbbm_soft_reset_reg, soft_reset_sx) \
+ rbbm_soft_reset_reg = (rbbm_soft_reset_reg & ~RBBM_SOFT_RESET_SOFT_RESET_SX_MASK) | (soft_reset_sx << RBBM_SOFT_RESET_SOFT_RESET_SX_SHIFT)
+#define RBBM_SOFT_RESET_SET_SOFT_RESET_CIB(rbbm_soft_reset_reg, soft_reset_cib) \
+ rbbm_soft_reset_reg = (rbbm_soft_reset_reg & ~RBBM_SOFT_RESET_SOFT_RESET_CIB_MASK) | (soft_reset_cib << RBBM_SOFT_RESET_SOFT_RESET_CIB_SHIFT)
+#define RBBM_SOFT_RESET_SET_SOFT_RESET_SC(rbbm_soft_reset_reg, soft_reset_sc) \
+ rbbm_soft_reset_reg = (rbbm_soft_reset_reg & ~RBBM_SOFT_RESET_SOFT_RESET_SC_MASK) | (soft_reset_sc << RBBM_SOFT_RESET_SOFT_RESET_SC_SHIFT)
+#define RBBM_SOFT_RESET_SET_SOFT_RESET_VGT(rbbm_soft_reset_reg, soft_reset_vgt) \
+ rbbm_soft_reset_reg = (rbbm_soft_reset_reg & ~RBBM_SOFT_RESET_SOFT_RESET_VGT_MASK) | (soft_reset_vgt << RBBM_SOFT_RESET_SOFT_RESET_VGT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_soft_reset_t {
+ unsigned int soft_reset_cp : RBBM_SOFT_RESET_SOFT_RESET_CP_SIZE;
+ unsigned int : 1;
+ unsigned int soft_reset_pa : RBBM_SOFT_RESET_SOFT_RESET_PA_SIZE;
+ unsigned int soft_reset_mh : RBBM_SOFT_RESET_SOFT_RESET_MH_SIZE;
+ unsigned int soft_reset_bc : RBBM_SOFT_RESET_SOFT_RESET_BC_SIZE;
+ unsigned int soft_reset_sq : RBBM_SOFT_RESET_SOFT_RESET_SQ_SIZE;
+ unsigned int soft_reset_sx : RBBM_SOFT_RESET_SOFT_RESET_SX_SIZE;
+ unsigned int : 5;
+ unsigned int soft_reset_cib : RBBM_SOFT_RESET_SOFT_RESET_CIB_SIZE;
+ unsigned int : 2;
+ unsigned int soft_reset_sc : RBBM_SOFT_RESET_SOFT_RESET_SC_SIZE;
+ unsigned int soft_reset_vgt : RBBM_SOFT_RESET_SOFT_RESET_VGT_SIZE;
+ unsigned int : 15;
+ } rbbm_soft_reset_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_soft_reset_t {
+ unsigned int : 15;
+ unsigned int soft_reset_vgt : RBBM_SOFT_RESET_SOFT_RESET_VGT_SIZE;
+ unsigned int soft_reset_sc : RBBM_SOFT_RESET_SOFT_RESET_SC_SIZE;
+ unsigned int : 2;
+ unsigned int soft_reset_cib : RBBM_SOFT_RESET_SOFT_RESET_CIB_SIZE;
+ unsigned int : 5;
+ unsigned int soft_reset_sx : RBBM_SOFT_RESET_SOFT_RESET_SX_SIZE;
+ unsigned int soft_reset_sq : RBBM_SOFT_RESET_SOFT_RESET_SQ_SIZE;
+ unsigned int soft_reset_bc : RBBM_SOFT_RESET_SOFT_RESET_BC_SIZE;
+ unsigned int soft_reset_mh : RBBM_SOFT_RESET_SOFT_RESET_MH_SIZE;
+ unsigned int soft_reset_pa : RBBM_SOFT_RESET_SOFT_RESET_PA_SIZE;
+ unsigned int : 1;
+ unsigned int soft_reset_cp : RBBM_SOFT_RESET_SOFT_RESET_CP_SIZE;
+ } rbbm_soft_reset_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_soft_reset_t f;
+} rbbm_soft_reset_u;
+
+
+/*
+ * RBBM_PM_OVERRIDE1 struct
+ */
+
+#define RBBM_PM_OVERRIDE1_RBBM_AHBCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_SC_REG_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_SC_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_SP_TOP_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_SP_V0_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_SQ_REG_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_SQ_REG_FIFOS_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_SQ_CONST_MEM_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_SQ_SQ_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_SX_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_SX_REG_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_TCM_TCO_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_TCM_TCM_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_TCM_TCD_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_TCM_REG_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_TPC_TPC_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_TPC_REG_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_TCF_TCA_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_TCF_TCB_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_TCF_TCB_READ_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_TP_TP_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_TP_REG_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_CP_G_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_CP_REG_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_CP_G_REG_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_SPI_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_RB_REG_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_RB_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_MH_MH_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_MH_REG_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_MH_MMU_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE1_MH_TCROQ_SCLK_PM_OVERRIDE_SIZE 1
+
+#define RBBM_PM_OVERRIDE1_RBBM_AHBCLK_PM_OVERRIDE_SHIFT 0
+#define RBBM_PM_OVERRIDE1_SC_REG_SCLK_PM_OVERRIDE_SHIFT 1
+#define RBBM_PM_OVERRIDE1_SC_SCLK_PM_OVERRIDE_SHIFT 2
+#define RBBM_PM_OVERRIDE1_SP_TOP_SCLK_PM_OVERRIDE_SHIFT 3
+#define RBBM_PM_OVERRIDE1_SP_V0_SCLK_PM_OVERRIDE_SHIFT 4
+#define RBBM_PM_OVERRIDE1_SQ_REG_SCLK_PM_OVERRIDE_SHIFT 5
+#define RBBM_PM_OVERRIDE1_SQ_REG_FIFOS_SCLK_PM_OVERRIDE_SHIFT 6
+#define RBBM_PM_OVERRIDE1_SQ_CONST_MEM_SCLK_PM_OVERRIDE_SHIFT 7
+#define RBBM_PM_OVERRIDE1_SQ_SQ_SCLK_PM_OVERRIDE_SHIFT 8
+#define RBBM_PM_OVERRIDE1_SX_SCLK_PM_OVERRIDE_SHIFT 9
+#define RBBM_PM_OVERRIDE1_SX_REG_SCLK_PM_OVERRIDE_SHIFT 10
+#define RBBM_PM_OVERRIDE1_TCM_TCO_SCLK_PM_OVERRIDE_SHIFT 11
+#define RBBM_PM_OVERRIDE1_TCM_TCM_SCLK_PM_OVERRIDE_SHIFT 12
+#define RBBM_PM_OVERRIDE1_TCM_TCD_SCLK_PM_OVERRIDE_SHIFT 13
+#define RBBM_PM_OVERRIDE1_TCM_REG_SCLK_PM_OVERRIDE_SHIFT 14
+#define RBBM_PM_OVERRIDE1_TPC_TPC_SCLK_PM_OVERRIDE_SHIFT 15
+#define RBBM_PM_OVERRIDE1_TPC_REG_SCLK_PM_OVERRIDE_SHIFT 16
+#define RBBM_PM_OVERRIDE1_TCF_TCA_SCLK_PM_OVERRIDE_SHIFT 17
+#define RBBM_PM_OVERRIDE1_TCF_TCB_SCLK_PM_OVERRIDE_SHIFT 18
+#define RBBM_PM_OVERRIDE1_TCF_TCB_READ_SCLK_PM_OVERRIDE_SHIFT 19
+#define RBBM_PM_OVERRIDE1_TP_TP_SCLK_PM_OVERRIDE_SHIFT 20
+#define RBBM_PM_OVERRIDE1_TP_REG_SCLK_PM_OVERRIDE_SHIFT 21
+#define RBBM_PM_OVERRIDE1_CP_G_SCLK_PM_OVERRIDE_SHIFT 22
+#define RBBM_PM_OVERRIDE1_CP_REG_SCLK_PM_OVERRIDE_SHIFT 23
+#define RBBM_PM_OVERRIDE1_CP_G_REG_SCLK_PM_OVERRIDE_SHIFT 24
+#define RBBM_PM_OVERRIDE1_SPI_SCLK_PM_OVERRIDE_SHIFT 25
+#define RBBM_PM_OVERRIDE1_RB_REG_SCLK_PM_OVERRIDE_SHIFT 26
+#define RBBM_PM_OVERRIDE1_RB_SCLK_PM_OVERRIDE_SHIFT 27
+#define RBBM_PM_OVERRIDE1_MH_MH_SCLK_PM_OVERRIDE_SHIFT 28
+#define RBBM_PM_OVERRIDE1_MH_REG_SCLK_PM_OVERRIDE_SHIFT 29
+#define RBBM_PM_OVERRIDE1_MH_MMU_SCLK_PM_OVERRIDE_SHIFT 30
+#define RBBM_PM_OVERRIDE1_MH_TCROQ_SCLK_PM_OVERRIDE_SHIFT 31
+
+#define RBBM_PM_OVERRIDE1_RBBM_AHBCLK_PM_OVERRIDE_MASK 0x00000001
+#define RBBM_PM_OVERRIDE1_SC_REG_SCLK_PM_OVERRIDE_MASK 0x00000002
+#define RBBM_PM_OVERRIDE1_SC_SCLK_PM_OVERRIDE_MASK 0x00000004
+#define RBBM_PM_OVERRIDE1_SP_TOP_SCLK_PM_OVERRIDE_MASK 0x00000008
+#define RBBM_PM_OVERRIDE1_SP_V0_SCLK_PM_OVERRIDE_MASK 0x00000010
+#define RBBM_PM_OVERRIDE1_SQ_REG_SCLK_PM_OVERRIDE_MASK 0x00000020
+#define RBBM_PM_OVERRIDE1_SQ_REG_FIFOS_SCLK_PM_OVERRIDE_MASK 0x00000040
+#define RBBM_PM_OVERRIDE1_SQ_CONST_MEM_SCLK_PM_OVERRIDE_MASK 0x00000080
+#define RBBM_PM_OVERRIDE1_SQ_SQ_SCLK_PM_OVERRIDE_MASK 0x00000100
+#define RBBM_PM_OVERRIDE1_SX_SCLK_PM_OVERRIDE_MASK 0x00000200
+#define RBBM_PM_OVERRIDE1_SX_REG_SCLK_PM_OVERRIDE_MASK 0x00000400
+#define RBBM_PM_OVERRIDE1_TCM_TCO_SCLK_PM_OVERRIDE_MASK 0x00000800
+#define RBBM_PM_OVERRIDE1_TCM_TCM_SCLK_PM_OVERRIDE_MASK 0x00001000
+#define RBBM_PM_OVERRIDE1_TCM_TCD_SCLK_PM_OVERRIDE_MASK 0x00002000
+#define RBBM_PM_OVERRIDE1_TCM_REG_SCLK_PM_OVERRIDE_MASK 0x00004000
+#define RBBM_PM_OVERRIDE1_TPC_TPC_SCLK_PM_OVERRIDE_MASK 0x00008000
+#define RBBM_PM_OVERRIDE1_TPC_REG_SCLK_PM_OVERRIDE_MASK 0x00010000
+#define RBBM_PM_OVERRIDE1_TCF_TCA_SCLK_PM_OVERRIDE_MASK 0x00020000
+#define RBBM_PM_OVERRIDE1_TCF_TCB_SCLK_PM_OVERRIDE_MASK 0x00040000
+#define RBBM_PM_OVERRIDE1_TCF_TCB_READ_SCLK_PM_OVERRIDE_MASK 0x00080000
+#define RBBM_PM_OVERRIDE1_TP_TP_SCLK_PM_OVERRIDE_MASK 0x00100000
+#define RBBM_PM_OVERRIDE1_TP_REG_SCLK_PM_OVERRIDE_MASK 0x00200000
+#define RBBM_PM_OVERRIDE1_CP_G_SCLK_PM_OVERRIDE_MASK 0x00400000
+#define RBBM_PM_OVERRIDE1_CP_REG_SCLK_PM_OVERRIDE_MASK 0x00800000
+#define RBBM_PM_OVERRIDE1_CP_G_REG_SCLK_PM_OVERRIDE_MASK 0x01000000
+#define RBBM_PM_OVERRIDE1_SPI_SCLK_PM_OVERRIDE_MASK 0x02000000
+#define RBBM_PM_OVERRIDE1_RB_REG_SCLK_PM_OVERRIDE_MASK 0x04000000
+#define RBBM_PM_OVERRIDE1_RB_SCLK_PM_OVERRIDE_MASK 0x08000000
+#define RBBM_PM_OVERRIDE1_MH_MH_SCLK_PM_OVERRIDE_MASK 0x10000000
+#define RBBM_PM_OVERRIDE1_MH_REG_SCLK_PM_OVERRIDE_MASK 0x20000000
+#define RBBM_PM_OVERRIDE1_MH_MMU_SCLK_PM_OVERRIDE_MASK 0x40000000
+#define RBBM_PM_OVERRIDE1_MH_TCROQ_SCLK_PM_OVERRIDE_MASK 0x80000000
+
+#define RBBM_PM_OVERRIDE1_MASK \
+ (RBBM_PM_OVERRIDE1_RBBM_AHBCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_SC_REG_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_SC_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_SP_TOP_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_SP_V0_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_SQ_REG_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_SQ_REG_FIFOS_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_SQ_CONST_MEM_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_SQ_SQ_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_SX_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_SX_REG_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_TCM_TCO_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_TCM_TCM_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_TCM_TCD_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_TCM_REG_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_TPC_TPC_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_TPC_REG_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_TCF_TCA_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_TCF_TCB_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_TCF_TCB_READ_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_TP_TP_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_TP_REG_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_CP_G_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_CP_REG_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_CP_G_REG_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_SPI_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_RB_REG_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_RB_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_MH_MH_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_MH_REG_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_MH_MMU_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE1_MH_TCROQ_SCLK_PM_OVERRIDE_MASK)
+
+#define RBBM_PM_OVERRIDE1(rbbm_ahbclk_pm_override, sc_reg_sclk_pm_override, sc_sclk_pm_override, sp_top_sclk_pm_override, sp_v0_sclk_pm_override, sq_reg_sclk_pm_override, sq_reg_fifos_sclk_pm_override, sq_const_mem_sclk_pm_override, sq_sq_sclk_pm_override, sx_sclk_pm_override, sx_reg_sclk_pm_override, tcm_tco_sclk_pm_override, tcm_tcm_sclk_pm_override, tcm_tcd_sclk_pm_override, tcm_reg_sclk_pm_override, tpc_tpc_sclk_pm_override, tpc_reg_sclk_pm_override, tcf_tca_sclk_pm_override, tcf_tcb_sclk_pm_override, tcf_tcb_read_sclk_pm_override, tp_tp_sclk_pm_override, tp_reg_sclk_pm_override, cp_g_sclk_pm_override, cp_reg_sclk_pm_override, cp_g_reg_sclk_pm_override, spi_sclk_pm_override, rb_reg_sclk_pm_override, rb_sclk_pm_override, mh_mh_sclk_pm_override, mh_reg_sclk_pm_override, mh_mmu_sclk_pm_override, mh_tcroq_sclk_pm_override) \
+ ((rbbm_ahbclk_pm_override << RBBM_PM_OVERRIDE1_RBBM_AHBCLK_PM_OVERRIDE_SHIFT) | \
+ (sc_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_SC_REG_SCLK_PM_OVERRIDE_SHIFT) | \
+ (sc_sclk_pm_override << RBBM_PM_OVERRIDE1_SC_SCLK_PM_OVERRIDE_SHIFT) | \
+ (sp_top_sclk_pm_override << RBBM_PM_OVERRIDE1_SP_TOP_SCLK_PM_OVERRIDE_SHIFT) | \
+ (sp_v0_sclk_pm_override << RBBM_PM_OVERRIDE1_SP_V0_SCLK_PM_OVERRIDE_SHIFT) | \
+ (sq_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_SQ_REG_SCLK_PM_OVERRIDE_SHIFT) | \
+ (sq_reg_fifos_sclk_pm_override << RBBM_PM_OVERRIDE1_SQ_REG_FIFOS_SCLK_PM_OVERRIDE_SHIFT) | \
+ (sq_const_mem_sclk_pm_override << RBBM_PM_OVERRIDE1_SQ_CONST_MEM_SCLK_PM_OVERRIDE_SHIFT) | \
+ (sq_sq_sclk_pm_override << RBBM_PM_OVERRIDE1_SQ_SQ_SCLK_PM_OVERRIDE_SHIFT) | \
+ (sx_sclk_pm_override << RBBM_PM_OVERRIDE1_SX_SCLK_PM_OVERRIDE_SHIFT) | \
+ (sx_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_SX_REG_SCLK_PM_OVERRIDE_SHIFT) | \
+ (tcm_tco_sclk_pm_override << RBBM_PM_OVERRIDE1_TCM_TCO_SCLK_PM_OVERRIDE_SHIFT) | \
+ (tcm_tcm_sclk_pm_override << RBBM_PM_OVERRIDE1_TCM_TCM_SCLK_PM_OVERRIDE_SHIFT) | \
+ (tcm_tcd_sclk_pm_override << RBBM_PM_OVERRIDE1_TCM_TCD_SCLK_PM_OVERRIDE_SHIFT) | \
+ (tcm_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_TCM_REG_SCLK_PM_OVERRIDE_SHIFT) | \
+ (tpc_tpc_sclk_pm_override << RBBM_PM_OVERRIDE1_TPC_TPC_SCLK_PM_OVERRIDE_SHIFT) | \
+ (tpc_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_TPC_REG_SCLK_PM_OVERRIDE_SHIFT) | \
+ (tcf_tca_sclk_pm_override << RBBM_PM_OVERRIDE1_TCF_TCA_SCLK_PM_OVERRIDE_SHIFT) | \
+ (tcf_tcb_sclk_pm_override << RBBM_PM_OVERRIDE1_TCF_TCB_SCLK_PM_OVERRIDE_SHIFT) | \
+ (tcf_tcb_read_sclk_pm_override << RBBM_PM_OVERRIDE1_TCF_TCB_READ_SCLK_PM_OVERRIDE_SHIFT) | \
+ (tp_tp_sclk_pm_override << RBBM_PM_OVERRIDE1_TP_TP_SCLK_PM_OVERRIDE_SHIFT) | \
+ (tp_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_TP_REG_SCLK_PM_OVERRIDE_SHIFT) | \
+ (cp_g_sclk_pm_override << RBBM_PM_OVERRIDE1_CP_G_SCLK_PM_OVERRIDE_SHIFT) | \
+ (cp_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_CP_REG_SCLK_PM_OVERRIDE_SHIFT) | \
+ (cp_g_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_CP_G_REG_SCLK_PM_OVERRIDE_SHIFT) | \
+ (spi_sclk_pm_override << RBBM_PM_OVERRIDE1_SPI_SCLK_PM_OVERRIDE_SHIFT) | \
+ (rb_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_RB_REG_SCLK_PM_OVERRIDE_SHIFT) | \
+ (rb_sclk_pm_override << RBBM_PM_OVERRIDE1_RB_SCLK_PM_OVERRIDE_SHIFT) | \
+ (mh_mh_sclk_pm_override << RBBM_PM_OVERRIDE1_MH_MH_SCLK_PM_OVERRIDE_SHIFT) | \
+ (mh_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_MH_REG_SCLK_PM_OVERRIDE_SHIFT) | \
+ (mh_mmu_sclk_pm_override << RBBM_PM_OVERRIDE1_MH_MMU_SCLK_PM_OVERRIDE_SHIFT) | \
+ (mh_tcroq_sclk_pm_override << RBBM_PM_OVERRIDE1_MH_TCROQ_SCLK_PM_OVERRIDE_SHIFT))
+
+#define RBBM_PM_OVERRIDE1_GET_RBBM_AHBCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_RBBM_AHBCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_RBBM_AHBCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_SC_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_SC_REG_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_SC_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_SC_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_SC_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_SC_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_SP_TOP_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_SP_TOP_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_SP_TOP_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_SP_V0_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_SP_V0_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_SP_V0_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_SQ_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_SQ_REG_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_SQ_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_SQ_REG_FIFOS_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_SQ_REG_FIFOS_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_SQ_REG_FIFOS_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_SQ_CONST_MEM_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_SQ_CONST_MEM_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_SQ_CONST_MEM_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_SQ_SQ_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_SQ_SQ_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_SQ_SQ_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_SX_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_SX_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_SX_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_SX_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_SX_REG_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_SX_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_TCM_TCO_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_TCM_TCO_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_TCM_TCO_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_TCM_TCM_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_TCM_TCM_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_TCM_TCM_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_TCM_TCD_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_TCM_TCD_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_TCM_TCD_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_TCM_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_TCM_REG_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_TCM_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_TPC_TPC_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_TPC_TPC_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_TPC_TPC_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_TPC_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_TPC_REG_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_TPC_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_TCF_TCA_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_TCF_TCA_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_TCF_TCA_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_TCF_TCB_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_TCF_TCB_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_TCF_TCB_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_TCF_TCB_READ_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_TCF_TCB_READ_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_TCF_TCB_READ_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_TP_TP_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_TP_TP_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_TP_TP_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_TP_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_TP_REG_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_TP_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_CP_G_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_CP_G_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_CP_G_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_CP_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_CP_REG_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_CP_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_CP_G_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_CP_G_REG_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_CP_G_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_SPI_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_SPI_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_SPI_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_RB_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_RB_REG_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_RB_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_RB_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_RB_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_RB_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_MH_MH_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_MH_MH_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_MH_MH_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_MH_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_MH_REG_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_MH_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_MH_MMU_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_MH_MMU_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_MH_MMU_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_GET_MH_TCROQ_SCLK_PM_OVERRIDE(rbbm_pm_override1) \
+ ((rbbm_pm_override1 & RBBM_PM_OVERRIDE1_MH_TCROQ_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE1_MH_TCROQ_SCLK_PM_OVERRIDE_SHIFT)
+
+#define RBBM_PM_OVERRIDE1_SET_RBBM_AHBCLK_PM_OVERRIDE(rbbm_pm_override1_reg, rbbm_ahbclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_RBBM_AHBCLK_PM_OVERRIDE_MASK) | (rbbm_ahbclk_pm_override << RBBM_PM_OVERRIDE1_RBBM_AHBCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_SC_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, sc_reg_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_SC_REG_SCLK_PM_OVERRIDE_MASK) | (sc_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_SC_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_SC_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, sc_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_SC_SCLK_PM_OVERRIDE_MASK) | (sc_sclk_pm_override << RBBM_PM_OVERRIDE1_SC_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_SP_TOP_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, sp_top_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_SP_TOP_SCLK_PM_OVERRIDE_MASK) | (sp_top_sclk_pm_override << RBBM_PM_OVERRIDE1_SP_TOP_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_SP_V0_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, sp_v0_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_SP_V0_SCLK_PM_OVERRIDE_MASK) | (sp_v0_sclk_pm_override << RBBM_PM_OVERRIDE1_SP_V0_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_SQ_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, sq_reg_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_SQ_REG_SCLK_PM_OVERRIDE_MASK) | (sq_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_SQ_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_SQ_REG_FIFOS_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, sq_reg_fifos_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_SQ_REG_FIFOS_SCLK_PM_OVERRIDE_MASK) | (sq_reg_fifos_sclk_pm_override << RBBM_PM_OVERRIDE1_SQ_REG_FIFOS_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_SQ_CONST_MEM_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, sq_const_mem_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_SQ_CONST_MEM_SCLK_PM_OVERRIDE_MASK) | (sq_const_mem_sclk_pm_override << RBBM_PM_OVERRIDE1_SQ_CONST_MEM_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_SQ_SQ_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, sq_sq_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_SQ_SQ_SCLK_PM_OVERRIDE_MASK) | (sq_sq_sclk_pm_override << RBBM_PM_OVERRIDE1_SQ_SQ_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_SX_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, sx_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_SX_SCLK_PM_OVERRIDE_MASK) | (sx_sclk_pm_override << RBBM_PM_OVERRIDE1_SX_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_SX_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, sx_reg_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_SX_REG_SCLK_PM_OVERRIDE_MASK) | (sx_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_SX_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_TCM_TCO_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, tcm_tco_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_TCM_TCO_SCLK_PM_OVERRIDE_MASK) | (tcm_tco_sclk_pm_override << RBBM_PM_OVERRIDE1_TCM_TCO_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_TCM_TCM_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, tcm_tcm_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_TCM_TCM_SCLK_PM_OVERRIDE_MASK) | (tcm_tcm_sclk_pm_override << RBBM_PM_OVERRIDE1_TCM_TCM_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_TCM_TCD_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, tcm_tcd_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_TCM_TCD_SCLK_PM_OVERRIDE_MASK) | (tcm_tcd_sclk_pm_override << RBBM_PM_OVERRIDE1_TCM_TCD_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_TCM_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, tcm_reg_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_TCM_REG_SCLK_PM_OVERRIDE_MASK) | (tcm_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_TCM_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_TPC_TPC_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, tpc_tpc_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_TPC_TPC_SCLK_PM_OVERRIDE_MASK) | (tpc_tpc_sclk_pm_override << RBBM_PM_OVERRIDE1_TPC_TPC_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_TPC_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, tpc_reg_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_TPC_REG_SCLK_PM_OVERRIDE_MASK) | (tpc_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_TPC_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_TCF_TCA_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, tcf_tca_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_TCF_TCA_SCLK_PM_OVERRIDE_MASK) | (tcf_tca_sclk_pm_override << RBBM_PM_OVERRIDE1_TCF_TCA_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_TCF_TCB_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, tcf_tcb_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_TCF_TCB_SCLK_PM_OVERRIDE_MASK) | (tcf_tcb_sclk_pm_override << RBBM_PM_OVERRIDE1_TCF_TCB_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_TCF_TCB_READ_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, tcf_tcb_read_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_TCF_TCB_READ_SCLK_PM_OVERRIDE_MASK) | (tcf_tcb_read_sclk_pm_override << RBBM_PM_OVERRIDE1_TCF_TCB_READ_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_TP_TP_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, tp_tp_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_TP_TP_SCLK_PM_OVERRIDE_MASK) | (tp_tp_sclk_pm_override << RBBM_PM_OVERRIDE1_TP_TP_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_TP_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, tp_reg_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_TP_REG_SCLK_PM_OVERRIDE_MASK) | (tp_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_TP_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_CP_G_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, cp_g_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_CP_G_SCLK_PM_OVERRIDE_MASK) | (cp_g_sclk_pm_override << RBBM_PM_OVERRIDE1_CP_G_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_CP_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, cp_reg_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_CP_REG_SCLK_PM_OVERRIDE_MASK) | (cp_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_CP_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_CP_G_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, cp_g_reg_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_CP_G_REG_SCLK_PM_OVERRIDE_MASK) | (cp_g_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_CP_G_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_SPI_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, spi_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_SPI_SCLK_PM_OVERRIDE_MASK) | (spi_sclk_pm_override << RBBM_PM_OVERRIDE1_SPI_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_RB_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, rb_reg_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_RB_REG_SCLK_PM_OVERRIDE_MASK) | (rb_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_RB_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_RB_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, rb_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_RB_SCLK_PM_OVERRIDE_MASK) | (rb_sclk_pm_override << RBBM_PM_OVERRIDE1_RB_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_MH_MH_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, mh_mh_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_MH_MH_SCLK_PM_OVERRIDE_MASK) | (mh_mh_sclk_pm_override << RBBM_PM_OVERRIDE1_MH_MH_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_MH_REG_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, mh_reg_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_MH_REG_SCLK_PM_OVERRIDE_MASK) | (mh_reg_sclk_pm_override << RBBM_PM_OVERRIDE1_MH_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_MH_MMU_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, mh_mmu_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_MH_MMU_SCLK_PM_OVERRIDE_MASK) | (mh_mmu_sclk_pm_override << RBBM_PM_OVERRIDE1_MH_MMU_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE1_SET_MH_TCROQ_SCLK_PM_OVERRIDE(rbbm_pm_override1_reg, mh_tcroq_sclk_pm_override) \
+ rbbm_pm_override1_reg = (rbbm_pm_override1_reg & ~RBBM_PM_OVERRIDE1_MH_TCROQ_SCLK_PM_OVERRIDE_MASK) | (mh_tcroq_sclk_pm_override << RBBM_PM_OVERRIDE1_MH_TCROQ_SCLK_PM_OVERRIDE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_pm_override1_t {
+ unsigned int rbbm_ahbclk_pm_override : RBBM_PM_OVERRIDE1_RBBM_AHBCLK_PM_OVERRIDE_SIZE;
+ unsigned int sc_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_SC_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sc_sclk_pm_override : RBBM_PM_OVERRIDE1_SC_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sp_top_sclk_pm_override : RBBM_PM_OVERRIDE1_SP_TOP_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sp_v0_sclk_pm_override : RBBM_PM_OVERRIDE1_SP_V0_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sq_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_SQ_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sq_reg_fifos_sclk_pm_override : RBBM_PM_OVERRIDE1_SQ_REG_FIFOS_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sq_const_mem_sclk_pm_override : RBBM_PM_OVERRIDE1_SQ_CONST_MEM_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sq_sq_sclk_pm_override : RBBM_PM_OVERRIDE1_SQ_SQ_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sx_sclk_pm_override : RBBM_PM_OVERRIDE1_SX_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sx_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_SX_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tcm_tco_sclk_pm_override : RBBM_PM_OVERRIDE1_TCM_TCO_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tcm_tcm_sclk_pm_override : RBBM_PM_OVERRIDE1_TCM_TCM_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tcm_tcd_sclk_pm_override : RBBM_PM_OVERRIDE1_TCM_TCD_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tcm_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_TCM_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tpc_tpc_sclk_pm_override : RBBM_PM_OVERRIDE1_TPC_TPC_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tpc_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_TPC_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tcf_tca_sclk_pm_override : RBBM_PM_OVERRIDE1_TCF_TCA_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tcf_tcb_sclk_pm_override : RBBM_PM_OVERRIDE1_TCF_TCB_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tcf_tcb_read_sclk_pm_override : RBBM_PM_OVERRIDE1_TCF_TCB_READ_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tp_tp_sclk_pm_override : RBBM_PM_OVERRIDE1_TP_TP_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tp_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_TP_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int cp_g_sclk_pm_override : RBBM_PM_OVERRIDE1_CP_G_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int cp_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_CP_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int cp_g_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_CP_G_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int spi_sclk_pm_override : RBBM_PM_OVERRIDE1_SPI_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int rb_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_RB_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int rb_sclk_pm_override : RBBM_PM_OVERRIDE1_RB_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int mh_mh_sclk_pm_override : RBBM_PM_OVERRIDE1_MH_MH_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int mh_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_MH_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int mh_mmu_sclk_pm_override : RBBM_PM_OVERRIDE1_MH_MMU_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int mh_tcroq_sclk_pm_override : RBBM_PM_OVERRIDE1_MH_TCROQ_SCLK_PM_OVERRIDE_SIZE;
+ } rbbm_pm_override1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_pm_override1_t {
+ unsigned int mh_tcroq_sclk_pm_override : RBBM_PM_OVERRIDE1_MH_TCROQ_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int mh_mmu_sclk_pm_override : RBBM_PM_OVERRIDE1_MH_MMU_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int mh_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_MH_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int mh_mh_sclk_pm_override : RBBM_PM_OVERRIDE1_MH_MH_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int rb_sclk_pm_override : RBBM_PM_OVERRIDE1_RB_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int rb_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_RB_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int spi_sclk_pm_override : RBBM_PM_OVERRIDE1_SPI_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int cp_g_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_CP_G_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int cp_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_CP_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int cp_g_sclk_pm_override : RBBM_PM_OVERRIDE1_CP_G_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tp_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_TP_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tp_tp_sclk_pm_override : RBBM_PM_OVERRIDE1_TP_TP_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tcf_tcb_read_sclk_pm_override : RBBM_PM_OVERRIDE1_TCF_TCB_READ_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tcf_tcb_sclk_pm_override : RBBM_PM_OVERRIDE1_TCF_TCB_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tcf_tca_sclk_pm_override : RBBM_PM_OVERRIDE1_TCF_TCA_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tpc_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_TPC_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tpc_tpc_sclk_pm_override : RBBM_PM_OVERRIDE1_TPC_TPC_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tcm_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_TCM_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tcm_tcd_sclk_pm_override : RBBM_PM_OVERRIDE1_TCM_TCD_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tcm_tcm_sclk_pm_override : RBBM_PM_OVERRIDE1_TCM_TCM_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int tcm_tco_sclk_pm_override : RBBM_PM_OVERRIDE1_TCM_TCO_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sx_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_SX_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sx_sclk_pm_override : RBBM_PM_OVERRIDE1_SX_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sq_sq_sclk_pm_override : RBBM_PM_OVERRIDE1_SQ_SQ_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sq_const_mem_sclk_pm_override : RBBM_PM_OVERRIDE1_SQ_CONST_MEM_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sq_reg_fifos_sclk_pm_override : RBBM_PM_OVERRIDE1_SQ_REG_FIFOS_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sq_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_SQ_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sp_v0_sclk_pm_override : RBBM_PM_OVERRIDE1_SP_V0_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sp_top_sclk_pm_override : RBBM_PM_OVERRIDE1_SP_TOP_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sc_sclk_pm_override : RBBM_PM_OVERRIDE1_SC_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int sc_reg_sclk_pm_override : RBBM_PM_OVERRIDE1_SC_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int rbbm_ahbclk_pm_override : RBBM_PM_OVERRIDE1_RBBM_AHBCLK_PM_OVERRIDE_SIZE;
+ } rbbm_pm_override1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_pm_override1_t f;
+} rbbm_pm_override1_u;
+
+
+/*
+ * RBBM_PM_OVERRIDE2 struct
+ */
+
+#define RBBM_PM_OVERRIDE2_PA_REG_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE2_PA_PA_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE2_PA_AG_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE2_VGT_REG_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE2_VGT_FIFOS_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE2_VGT_VGT_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE2_DEBUG_PERF_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE2_PERM_SCLK_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE2_GC_GA_GMEM0_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE2_GC_GA_GMEM1_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE2_GC_GA_GMEM2_PM_OVERRIDE_SIZE 1
+#define RBBM_PM_OVERRIDE2_GC_GA_GMEM3_PM_OVERRIDE_SIZE 1
+
+#define RBBM_PM_OVERRIDE2_PA_REG_SCLK_PM_OVERRIDE_SHIFT 0
+#define RBBM_PM_OVERRIDE2_PA_PA_SCLK_PM_OVERRIDE_SHIFT 1
+#define RBBM_PM_OVERRIDE2_PA_AG_SCLK_PM_OVERRIDE_SHIFT 2
+#define RBBM_PM_OVERRIDE2_VGT_REG_SCLK_PM_OVERRIDE_SHIFT 3
+#define RBBM_PM_OVERRIDE2_VGT_FIFOS_SCLK_PM_OVERRIDE_SHIFT 4
+#define RBBM_PM_OVERRIDE2_VGT_VGT_SCLK_PM_OVERRIDE_SHIFT 5
+#define RBBM_PM_OVERRIDE2_DEBUG_PERF_SCLK_PM_OVERRIDE_SHIFT 6
+#define RBBM_PM_OVERRIDE2_PERM_SCLK_PM_OVERRIDE_SHIFT 7
+#define RBBM_PM_OVERRIDE2_GC_GA_GMEM0_PM_OVERRIDE_SHIFT 8
+#define RBBM_PM_OVERRIDE2_GC_GA_GMEM1_PM_OVERRIDE_SHIFT 9
+#define RBBM_PM_OVERRIDE2_GC_GA_GMEM2_PM_OVERRIDE_SHIFT 10
+#define RBBM_PM_OVERRIDE2_GC_GA_GMEM3_PM_OVERRIDE_SHIFT 11
+
+#define RBBM_PM_OVERRIDE2_PA_REG_SCLK_PM_OVERRIDE_MASK 0x00000001
+#define RBBM_PM_OVERRIDE2_PA_PA_SCLK_PM_OVERRIDE_MASK 0x00000002
+#define RBBM_PM_OVERRIDE2_PA_AG_SCLK_PM_OVERRIDE_MASK 0x00000004
+#define RBBM_PM_OVERRIDE2_VGT_REG_SCLK_PM_OVERRIDE_MASK 0x00000008
+#define RBBM_PM_OVERRIDE2_VGT_FIFOS_SCLK_PM_OVERRIDE_MASK 0x00000010
+#define RBBM_PM_OVERRIDE2_VGT_VGT_SCLK_PM_OVERRIDE_MASK 0x00000020
+#define RBBM_PM_OVERRIDE2_DEBUG_PERF_SCLK_PM_OVERRIDE_MASK 0x00000040
+#define RBBM_PM_OVERRIDE2_PERM_SCLK_PM_OVERRIDE_MASK 0x00000080
+#define RBBM_PM_OVERRIDE2_GC_GA_GMEM0_PM_OVERRIDE_MASK 0x00000100
+#define RBBM_PM_OVERRIDE2_GC_GA_GMEM1_PM_OVERRIDE_MASK 0x00000200
+#define RBBM_PM_OVERRIDE2_GC_GA_GMEM2_PM_OVERRIDE_MASK 0x00000400
+#define RBBM_PM_OVERRIDE2_GC_GA_GMEM3_PM_OVERRIDE_MASK 0x00000800
+
+#define RBBM_PM_OVERRIDE2_MASK \
+ (RBBM_PM_OVERRIDE2_PA_REG_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE2_PA_PA_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE2_PA_AG_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE2_VGT_REG_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE2_VGT_FIFOS_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE2_VGT_VGT_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE2_DEBUG_PERF_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE2_PERM_SCLK_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE2_GC_GA_GMEM0_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE2_GC_GA_GMEM1_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE2_GC_GA_GMEM2_PM_OVERRIDE_MASK | \
+ RBBM_PM_OVERRIDE2_GC_GA_GMEM3_PM_OVERRIDE_MASK)
+
+#define RBBM_PM_OVERRIDE2(pa_reg_sclk_pm_override, pa_pa_sclk_pm_override, pa_ag_sclk_pm_override, vgt_reg_sclk_pm_override, vgt_fifos_sclk_pm_override, vgt_vgt_sclk_pm_override, debug_perf_sclk_pm_override, perm_sclk_pm_override, gc_ga_gmem0_pm_override, gc_ga_gmem1_pm_override, gc_ga_gmem2_pm_override, gc_ga_gmem3_pm_override) \
+ ((pa_reg_sclk_pm_override << RBBM_PM_OVERRIDE2_PA_REG_SCLK_PM_OVERRIDE_SHIFT) | \
+ (pa_pa_sclk_pm_override << RBBM_PM_OVERRIDE2_PA_PA_SCLK_PM_OVERRIDE_SHIFT) | \
+ (pa_ag_sclk_pm_override << RBBM_PM_OVERRIDE2_PA_AG_SCLK_PM_OVERRIDE_SHIFT) | \
+ (vgt_reg_sclk_pm_override << RBBM_PM_OVERRIDE2_VGT_REG_SCLK_PM_OVERRIDE_SHIFT) | \
+ (vgt_fifos_sclk_pm_override << RBBM_PM_OVERRIDE2_VGT_FIFOS_SCLK_PM_OVERRIDE_SHIFT) | \
+ (vgt_vgt_sclk_pm_override << RBBM_PM_OVERRIDE2_VGT_VGT_SCLK_PM_OVERRIDE_SHIFT) | \
+ (debug_perf_sclk_pm_override << RBBM_PM_OVERRIDE2_DEBUG_PERF_SCLK_PM_OVERRIDE_SHIFT) | \
+ (perm_sclk_pm_override << RBBM_PM_OVERRIDE2_PERM_SCLK_PM_OVERRIDE_SHIFT) | \
+ (gc_ga_gmem0_pm_override << RBBM_PM_OVERRIDE2_GC_GA_GMEM0_PM_OVERRIDE_SHIFT) | \
+ (gc_ga_gmem1_pm_override << RBBM_PM_OVERRIDE2_GC_GA_GMEM1_PM_OVERRIDE_SHIFT) | \
+ (gc_ga_gmem2_pm_override << RBBM_PM_OVERRIDE2_GC_GA_GMEM2_PM_OVERRIDE_SHIFT) | \
+ (gc_ga_gmem3_pm_override << RBBM_PM_OVERRIDE2_GC_GA_GMEM3_PM_OVERRIDE_SHIFT))
+
+#define RBBM_PM_OVERRIDE2_GET_PA_REG_SCLK_PM_OVERRIDE(rbbm_pm_override2) \
+ ((rbbm_pm_override2 & RBBM_PM_OVERRIDE2_PA_REG_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE2_PA_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_GET_PA_PA_SCLK_PM_OVERRIDE(rbbm_pm_override2) \
+ ((rbbm_pm_override2 & RBBM_PM_OVERRIDE2_PA_PA_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE2_PA_PA_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_GET_PA_AG_SCLK_PM_OVERRIDE(rbbm_pm_override2) \
+ ((rbbm_pm_override2 & RBBM_PM_OVERRIDE2_PA_AG_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE2_PA_AG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_GET_VGT_REG_SCLK_PM_OVERRIDE(rbbm_pm_override2) \
+ ((rbbm_pm_override2 & RBBM_PM_OVERRIDE2_VGT_REG_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE2_VGT_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_GET_VGT_FIFOS_SCLK_PM_OVERRIDE(rbbm_pm_override2) \
+ ((rbbm_pm_override2 & RBBM_PM_OVERRIDE2_VGT_FIFOS_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE2_VGT_FIFOS_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_GET_VGT_VGT_SCLK_PM_OVERRIDE(rbbm_pm_override2) \
+ ((rbbm_pm_override2 & RBBM_PM_OVERRIDE2_VGT_VGT_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE2_VGT_VGT_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_GET_DEBUG_PERF_SCLK_PM_OVERRIDE(rbbm_pm_override2) \
+ ((rbbm_pm_override2 & RBBM_PM_OVERRIDE2_DEBUG_PERF_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE2_DEBUG_PERF_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_GET_PERM_SCLK_PM_OVERRIDE(rbbm_pm_override2) \
+ ((rbbm_pm_override2 & RBBM_PM_OVERRIDE2_PERM_SCLK_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE2_PERM_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_GET_GC_GA_GMEM0_PM_OVERRIDE(rbbm_pm_override2) \
+ ((rbbm_pm_override2 & RBBM_PM_OVERRIDE2_GC_GA_GMEM0_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE2_GC_GA_GMEM0_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_GET_GC_GA_GMEM1_PM_OVERRIDE(rbbm_pm_override2) \
+ ((rbbm_pm_override2 & RBBM_PM_OVERRIDE2_GC_GA_GMEM1_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE2_GC_GA_GMEM1_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_GET_GC_GA_GMEM2_PM_OVERRIDE(rbbm_pm_override2) \
+ ((rbbm_pm_override2 & RBBM_PM_OVERRIDE2_GC_GA_GMEM2_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE2_GC_GA_GMEM2_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_GET_GC_GA_GMEM3_PM_OVERRIDE(rbbm_pm_override2) \
+ ((rbbm_pm_override2 & RBBM_PM_OVERRIDE2_GC_GA_GMEM3_PM_OVERRIDE_MASK) >> RBBM_PM_OVERRIDE2_GC_GA_GMEM3_PM_OVERRIDE_SHIFT)
+
+#define RBBM_PM_OVERRIDE2_SET_PA_REG_SCLK_PM_OVERRIDE(rbbm_pm_override2_reg, pa_reg_sclk_pm_override) \
+ rbbm_pm_override2_reg = (rbbm_pm_override2_reg & ~RBBM_PM_OVERRIDE2_PA_REG_SCLK_PM_OVERRIDE_MASK) | (pa_reg_sclk_pm_override << RBBM_PM_OVERRIDE2_PA_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_SET_PA_PA_SCLK_PM_OVERRIDE(rbbm_pm_override2_reg, pa_pa_sclk_pm_override) \
+ rbbm_pm_override2_reg = (rbbm_pm_override2_reg & ~RBBM_PM_OVERRIDE2_PA_PA_SCLK_PM_OVERRIDE_MASK) | (pa_pa_sclk_pm_override << RBBM_PM_OVERRIDE2_PA_PA_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_SET_PA_AG_SCLK_PM_OVERRIDE(rbbm_pm_override2_reg, pa_ag_sclk_pm_override) \
+ rbbm_pm_override2_reg = (rbbm_pm_override2_reg & ~RBBM_PM_OVERRIDE2_PA_AG_SCLK_PM_OVERRIDE_MASK) | (pa_ag_sclk_pm_override << RBBM_PM_OVERRIDE2_PA_AG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_SET_VGT_REG_SCLK_PM_OVERRIDE(rbbm_pm_override2_reg, vgt_reg_sclk_pm_override) \
+ rbbm_pm_override2_reg = (rbbm_pm_override2_reg & ~RBBM_PM_OVERRIDE2_VGT_REG_SCLK_PM_OVERRIDE_MASK) | (vgt_reg_sclk_pm_override << RBBM_PM_OVERRIDE2_VGT_REG_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_SET_VGT_FIFOS_SCLK_PM_OVERRIDE(rbbm_pm_override2_reg, vgt_fifos_sclk_pm_override) \
+ rbbm_pm_override2_reg = (rbbm_pm_override2_reg & ~RBBM_PM_OVERRIDE2_VGT_FIFOS_SCLK_PM_OVERRIDE_MASK) | (vgt_fifos_sclk_pm_override << RBBM_PM_OVERRIDE2_VGT_FIFOS_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_SET_VGT_VGT_SCLK_PM_OVERRIDE(rbbm_pm_override2_reg, vgt_vgt_sclk_pm_override) \
+ rbbm_pm_override2_reg = (rbbm_pm_override2_reg & ~RBBM_PM_OVERRIDE2_VGT_VGT_SCLK_PM_OVERRIDE_MASK) | (vgt_vgt_sclk_pm_override << RBBM_PM_OVERRIDE2_VGT_VGT_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_SET_DEBUG_PERF_SCLK_PM_OVERRIDE(rbbm_pm_override2_reg, debug_perf_sclk_pm_override) \
+ rbbm_pm_override2_reg = (rbbm_pm_override2_reg & ~RBBM_PM_OVERRIDE2_DEBUG_PERF_SCLK_PM_OVERRIDE_MASK) | (debug_perf_sclk_pm_override << RBBM_PM_OVERRIDE2_DEBUG_PERF_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_SET_PERM_SCLK_PM_OVERRIDE(rbbm_pm_override2_reg, perm_sclk_pm_override) \
+ rbbm_pm_override2_reg = (rbbm_pm_override2_reg & ~RBBM_PM_OVERRIDE2_PERM_SCLK_PM_OVERRIDE_MASK) | (perm_sclk_pm_override << RBBM_PM_OVERRIDE2_PERM_SCLK_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_SET_GC_GA_GMEM0_PM_OVERRIDE(rbbm_pm_override2_reg, gc_ga_gmem0_pm_override) \
+ rbbm_pm_override2_reg = (rbbm_pm_override2_reg & ~RBBM_PM_OVERRIDE2_GC_GA_GMEM0_PM_OVERRIDE_MASK) | (gc_ga_gmem0_pm_override << RBBM_PM_OVERRIDE2_GC_GA_GMEM0_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_SET_GC_GA_GMEM1_PM_OVERRIDE(rbbm_pm_override2_reg, gc_ga_gmem1_pm_override) \
+ rbbm_pm_override2_reg = (rbbm_pm_override2_reg & ~RBBM_PM_OVERRIDE2_GC_GA_GMEM1_PM_OVERRIDE_MASK) | (gc_ga_gmem1_pm_override << RBBM_PM_OVERRIDE2_GC_GA_GMEM1_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_SET_GC_GA_GMEM2_PM_OVERRIDE(rbbm_pm_override2_reg, gc_ga_gmem2_pm_override) \
+ rbbm_pm_override2_reg = (rbbm_pm_override2_reg & ~RBBM_PM_OVERRIDE2_GC_GA_GMEM2_PM_OVERRIDE_MASK) | (gc_ga_gmem2_pm_override << RBBM_PM_OVERRIDE2_GC_GA_GMEM2_PM_OVERRIDE_SHIFT)
+#define RBBM_PM_OVERRIDE2_SET_GC_GA_GMEM3_PM_OVERRIDE(rbbm_pm_override2_reg, gc_ga_gmem3_pm_override) \
+ rbbm_pm_override2_reg = (rbbm_pm_override2_reg & ~RBBM_PM_OVERRIDE2_GC_GA_GMEM3_PM_OVERRIDE_MASK) | (gc_ga_gmem3_pm_override << RBBM_PM_OVERRIDE2_GC_GA_GMEM3_PM_OVERRIDE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_pm_override2_t {
+ unsigned int pa_reg_sclk_pm_override : RBBM_PM_OVERRIDE2_PA_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int pa_pa_sclk_pm_override : RBBM_PM_OVERRIDE2_PA_PA_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int pa_ag_sclk_pm_override : RBBM_PM_OVERRIDE2_PA_AG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int vgt_reg_sclk_pm_override : RBBM_PM_OVERRIDE2_VGT_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int vgt_fifos_sclk_pm_override : RBBM_PM_OVERRIDE2_VGT_FIFOS_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int vgt_vgt_sclk_pm_override : RBBM_PM_OVERRIDE2_VGT_VGT_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int debug_perf_sclk_pm_override : RBBM_PM_OVERRIDE2_DEBUG_PERF_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int perm_sclk_pm_override : RBBM_PM_OVERRIDE2_PERM_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int gc_ga_gmem0_pm_override : RBBM_PM_OVERRIDE2_GC_GA_GMEM0_PM_OVERRIDE_SIZE;
+ unsigned int gc_ga_gmem1_pm_override : RBBM_PM_OVERRIDE2_GC_GA_GMEM1_PM_OVERRIDE_SIZE;
+ unsigned int gc_ga_gmem2_pm_override : RBBM_PM_OVERRIDE2_GC_GA_GMEM2_PM_OVERRIDE_SIZE;
+ unsigned int gc_ga_gmem3_pm_override : RBBM_PM_OVERRIDE2_GC_GA_GMEM3_PM_OVERRIDE_SIZE;
+ unsigned int : 20;
+ } rbbm_pm_override2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_pm_override2_t {
+ unsigned int : 20;
+ unsigned int gc_ga_gmem3_pm_override : RBBM_PM_OVERRIDE2_GC_GA_GMEM3_PM_OVERRIDE_SIZE;
+ unsigned int gc_ga_gmem2_pm_override : RBBM_PM_OVERRIDE2_GC_GA_GMEM2_PM_OVERRIDE_SIZE;
+ unsigned int gc_ga_gmem1_pm_override : RBBM_PM_OVERRIDE2_GC_GA_GMEM1_PM_OVERRIDE_SIZE;
+ unsigned int gc_ga_gmem0_pm_override : RBBM_PM_OVERRIDE2_GC_GA_GMEM0_PM_OVERRIDE_SIZE;
+ unsigned int perm_sclk_pm_override : RBBM_PM_OVERRIDE2_PERM_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int debug_perf_sclk_pm_override : RBBM_PM_OVERRIDE2_DEBUG_PERF_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int vgt_vgt_sclk_pm_override : RBBM_PM_OVERRIDE2_VGT_VGT_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int vgt_fifos_sclk_pm_override : RBBM_PM_OVERRIDE2_VGT_FIFOS_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int vgt_reg_sclk_pm_override : RBBM_PM_OVERRIDE2_VGT_REG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int pa_ag_sclk_pm_override : RBBM_PM_OVERRIDE2_PA_AG_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int pa_pa_sclk_pm_override : RBBM_PM_OVERRIDE2_PA_PA_SCLK_PM_OVERRIDE_SIZE;
+ unsigned int pa_reg_sclk_pm_override : RBBM_PM_OVERRIDE2_PA_REG_SCLK_PM_OVERRIDE_SIZE;
+ } rbbm_pm_override2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_pm_override2_t f;
+} rbbm_pm_override2_u;
+
+
+/*
+ * GC_SYS_IDLE struct
+ */
+
+#define GC_SYS_IDLE_GC_SYS_IDLE_DELAY_SIZE 16
+#define GC_SYS_IDLE_GC_SYS_WAIT_DMI_MASK_SIZE 6
+#define GC_SYS_IDLE_GC_SYS_URGENT_RAMP_SIZE 1
+#define GC_SYS_IDLE_GC_SYS_WAIT_DMI_SIZE 1
+#define GC_SYS_IDLE_GC_SYS_URGENT_RAMP_OVERRIDE_SIZE 1
+#define GC_SYS_IDLE_GC_SYS_WAIT_DMI_OVERRIDE_SIZE 1
+#define GC_SYS_IDLE_GC_SYS_IDLE_OVERRIDE_SIZE 1
+
+#define GC_SYS_IDLE_GC_SYS_IDLE_DELAY_SHIFT 0
+#define GC_SYS_IDLE_GC_SYS_WAIT_DMI_MASK_SHIFT 16
+#define GC_SYS_IDLE_GC_SYS_URGENT_RAMP_SHIFT 24
+#define GC_SYS_IDLE_GC_SYS_WAIT_DMI_SHIFT 25
+#define GC_SYS_IDLE_GC_SYS_URGENT_RAMP_OVERRIDE_SHIFT 29
+#define GC_SYS_IDLE_GC_SYS_WAIT_DMI_OVERRIDE_SHIFT 30
+#define GC_SYS_IDLE_GC_SYS_IDLE_OVERRIDE_SHIFT 31
+
+#define GC_SYS_IDLE_GC_SYS_IDLE_DELAY_MASK 0x0000ffff
+#define GC_SYS_IDLE_GC_SYS_WAIT_DMI_MASK_MASK 0x003f0000
+#define GC_SYS_IDLE_GC_SYS_URGENT_RAMP_MASK 0x01000000
+#define GC_SYS_IDLE_GC_SYS_WAIT_DMI_MASK 0x02000000
+#define GC_SYS_IDLE_GC_SYS_URGENT_RAMP_OVERRIDE_MASK 0x20000000
+#define GC_SYS_IDLE_GC_SYS_WAIT_DMI_OVERRIDE_MASK 0x40000000
+#define GC_SYS_IDLE_GC_SYS_IDLE_OVERRIDE_MASK 0x80000000
+
+#define GC_SYS_IDLE_MASK \
+ (GC_SYS_IDLE_GC_SYS_IDLE_DELAY_MASK | \
+ GC_SYS_IDLE_GC_SYS_WAIT_DMI_MASK_MASK | \
+ GC_SYS_IDLE_GC_SYS_URGENT_RAMP_MASK | \
+ GC_SYS_IDLE_GC_SYS_WAIT_DMI_MASK | \
+ GC_SYS_IDLE_GC_SYS_URGENT_RAMP_OVERRIDE_MASK | \
+ GC_SYS_IDLE_GC_SYS_WAIT_DMI_OVERRIDE_MASK | \
+ GC_SYS_IDLE_GC_SYS_IDLE_OVERRIDE_MASK)
+
+#define GC_SYS_IDLE(gc_sys_idle_delay, gc_sys_wait_dmi_mask, gc_sys_urgent_ramp, gc_sys_wait_dmi, gc_sys_urgent_ramp_override, gc_sys_wait_dmi_override, gc_sys_idle_override) \
+ ((gc_sys_idle_delay << GC_SYS_IDLE_GC_SYS_IDLE_DELAY_SHIFT) | \
+ (gc_sys_wait_dmi_mask << GC_SYS_IDLE_GC_SYS_WAIT_DMI_MASK_SHIFT) | \
+ (gc_sys_urgent_ramp << GC_SYS_IDLE_GC_SYS_URGENT_RAMP_SHIFT) | \
+ (gc_sys_wait_dmi << GC_SYS_IDLE_GC_SYS_WAIT_DMI_SHIFT) | \
+ (gc_sys_urgent_ramp_override << GC_SYS_IDLE_GC_SYS_URGENT_RAMP_OVERRIDE_SHIFT) | \
+ (gc_sys_wait_dmi_override << GC_SYS_IDLE_GC_SYS_WAIT_DMI_OVERRIDE_SHIFT) | \
+ (gc_sys_idle_override << GC_SYS_IDLE_GC_SYS_IDLE_OVERRIDE_SHIFT))
+
+#define GC_SYS_IDLE_GET_GC_SYS_IDLE_DELAY(gc_sys_idle) \
+ ((gc_sys_idle & GC_SYS_IDLE_GC_SYS_IDLE_DELAY_MASK) >> GC_SYS_IDLE_GC_SYS_IDLE_DELAY_SHIFT)
+#define GC_SYS_IDLE_GET_GC_SYS_WAIT_DMI_MASK(gc_sys_idle) \
+ ((gc_sys_idle & GC_SYS_IDLE_GC_SYS_WAIT_DMI_MASK_MASK) >> GC_SYS_IDLE_GC_SYS_WAIT_DMI_MASK_SHIFT)
+#define GC_SYS_IDLE_GET_GC_SYS_URGENT_RAMP(gc_sys_idle) \
+ ((gc_sys_idle & GC_SYS_IDLE_GC_SYS_URGENT_RAMP_MASK) >> GC_SYS_IDLE_GC_SYS_URGENT_RAMP_SHIFT)
+#define GC_SYS_IDLE_GET_GC_SYS_WAIT_DMI(gc_sys_idle) \
+ ((gc_sys_idle & GC_SYS_IDLE_GC_SYS_WAIT_DMI_MASK) >> GC_SYS_IDLE_GC_SYS_WAIT_DMI_SHIFT)
+#define GC_SYS_IDLE_GET_GC_SYS_URGENT_RAMP_OVERRIDE(gc_sys_idle) \
+ ((gc_sys_idle & GC_SYS_IDLE_GC_SYS_URGENT_RAMP_OVERRIDE_MASK) >> GC_SYS_IDLE_GC_SYS_URGENT_RAMP_OVERRIDE_SHIFT)
+#define GC_SYS_IDLE_GET_GC_SYS_WAIT_DMI_OVERRIDE(gc_sys_idle) \
+ ((gc_sys_idle & GC_SYS_IDLE_GC_SYS_WAIT_DMI_OVERRIDE_MASK) >> GC_SYS_IDLE_GC_SYS_WAIT_DMI_OVERRIDE_SHIFT)
+#define GC_SYS_IDLE_GET_GC_SYS_IDLE_OVERRIDE(gc_sys_idle) \
+ ((gc_sys_idle & GC_SYS_IDLE_GC_SYS_IDLE_OVERRIDE_MASK) >> GC_SYS_IDLE_GC_SYS_IDLE_OVERRIDE_SHIFT)
+
+#define GC_SYS_IDLE_SET_GC_SYS_IDLE_DELAY(gc_sys_idle_reg, gc_sys_idle_delay) \
+ gc_sys_idle_reg = (gc_sys_idle_reg & ~GC_SYS_IDLE_GC_SYS_IDLE_DELAY_MASK) | (gc_sys_idle_delay << GC_SYS_IDLE_GC_SYS_IDLE_DELAY_SHIFT)
+#define GC_SYS_IDLE_SET_GC_SYS_WAIT_DMI_MASK(gc_sys_idle_reg, gc_sys_wait_dmi_mask) \
+ gc_sys_idle_reg = (gc_sys_idle_reg & ~GC_SYS_IDLE_GC_SYS_WAIT_DMI_MASK_MASK) | (gc_sys_wait_dmi_mask << GC_SYS_IDLE_GC_SYS_WAIT_DMI_MASK_SHIFT)
+#define GC_SYS_IDLE_SET_GC_SYS_URGENT_RAMP(gc_sys_idle_reg, gc_sys_urgent_ramp) \
+ gc_sys_idle_reg = (gc_sys_idle_reg & ~GC_SYS_IDLE_GC_SYS_URGENT_RAMP_MASK) | (gc_sys_urgent_ramp << GC_SYS_IDLE_GC_SYS_URGENT_RAMP_SHIFT)
+#define GC_SYS_IDLE_SET_GC_SYS_WAIT_DMI(gc_sys_idle_reg, gc_sys_wait_dmi) \
+ gc_sys_idle_reg = (gc_sys_idle_reg & ~GC_SYS_IDLE_GC_SYS_WAIT_DMI_MASK) | (gc_sys_wait_dmi << GC_SYS_IDLE_GC_SYS_WAIT_DMI_SHIFT)
+#define GC_SYS_IDLE_SET_GC_SYS_URGENT_RAMP_OVERRIDE(gc_sys_idle_reg, gc_sys_urgent_ramp_override) \
+ gc_sys_idle_reg = (gc_sys_idle_reg & ~GC_SYS_IDLE_GC_SYS_URGENT_RAMP_OVERRIDE_MASK) | (gc_sys_urgent_ramp_override << GC_SYS_IDLE_GC_SYS_URGENT_RAMP_OVERRIDE_SHIFT)
+#define GC_SYS_IDLE_SET_GC_SYS_WAIT_DMI_OVERRIDE(gc_sys_idle_reg, gc_sys_wait_dmi_override) \
+ gc_sys_idle_reg = (gc_sys_idle_reg & ~GC_SYS_IDLE_GC_SYS_WAIT_DMI_OVERRIDE_MASK) | (gc_sys_wait_dmi_override << GC_SYS_IDLE_GC_SYS_WAIT_DMI_OVERRIDE_SHIFT)
+#define GC_SYS_IDLE_SET_GC_SYS_IDLE_OVERRIDE(gc_sys_idle_reg, gc_sys_idle_override) \
+ gc_sys_idle_reg = (gc_sys_idle_reg & ~GC_SYS_IDLE_GC_SYS_IDLE_OVERRIDE_MASK) | (gc_sys_idle_override << GC_SYS_IDLE_GC_SYS_IDLE_OVERRIDE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _gc_sys_idle_t {
+ unsigned int gc_sys_idle_delay : GC_SYS_IDLE_GC_SYS_IDLE_DELAY_SIZE;
+ unsigned int gc_sys_wait_dmi_mask : GC_SYS_IDLE_GC_SYS_WAIT_DMI_MASK_SIZE;
+ unsigned int : 2;
+ unsigned int gc_sys_urgent_ramp : GC_SYS_IDLE_GC_SYS_URGENT_RAMP_SIZE;
+ unsigned int gc_sys_wait_dmi : GC_SYS_IDLE_GC_SYS_WAIT_DMI_SIZE;
+ unsigned int : 3;
+ unsigned int gc_sys_urgent_ramp_override : GC_SYS_IDLE_GC_SYS_URGENT_RAMP_OVERRIDE_SIZE;
+ unsigned int gc_sys_wait_dmi_override : GC_SYS_IDLE_GC_SYS_WAIT_DMI_OVERRIDE_SIZE;
+ unsigned int gc_sys_idle_override : GC_SYS_IDLE_GC_SYS_IDLE_OVERRIDE_SIZE;
+ } gc_sys_idle_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _gc_sys_idle_t {
+ unsigned int gc_sys_idle_override : GC_SYS_IDLE_GC_SYS_IDLE_OVERRIDE_SIZE;
+ unsigned int gc_sys_wait_dmi_override : GC_SYS_IDLE_GC_SYS_WAIT_DMI_OVERRIDE_SIZE;
+ unsigned int gc_sys_urgent_ramp_override : GC_SYS_IDLE_GC_SYS_URGENT_RAMP_OVERRIDE_SIZE;
+ unsigned int : 3;
+ unsigned int gc_sys_wait_dmi : GC_SYS_IDLE_GC_SYS_WAIT_DMI_SIZE;
+ unsigned int gc_sys_urgent_ramp : GC_SYS_IDLE_GC_SYS_URGENT_RAMP_SIZE;
+ unsigned int : 2;
+ unsigned int gc_sys_wait_dmi_mask : GC_SYS_IDLE_GC_SYS_WAIT_DMI_MASK_SIZE;
+ unsigned int gc_sys_idle_delay : GC_SYS_IDLE_GC_SYS_IDLE_DELAY_SIZE;
+ } gc_sys_idle_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ gc_sys_idle_t f;
+} gc_sys_idle_u;
+
+
+/*
+ * NQWAIT_UNTIL struct
+ */
+
+#define NQWAIT_UNTIL_WAIT_GUI_IDLE_SIZE 1
+
+#define NQWAIT_UNTIL_WAIT_GUI_IDLE_SHIFT 0
+
+#define NQWAIT_UNTIL_WAIT_GUI_IDLE_MASK 0x00000001
+
+#define NQWAIT_UNTIL_MASK \
+ (NQWAIT_UNTIL_WAIT_GUI_IDLE_MASK)
+
+#define NQWAIT_UNTIL(wait_gui_idle) \
+ ((wait_gui_idle << NQWAIT_UNTIL_WAIT_GUI_IDLE_SHIFT))
+
+#define NQWAIT_UNTIL_GET_WAIT_GUI_IDLE(nqwait_until) \
+ ((nqwait_until & NQWAIT_UNTIL_WAIT_GUI_IDLE_MASK) >> NQWAIT_UNTIL_WAIT_GUI_IDLE_SHIFT)
+
+#define NQWAIT_UNTIL_SET_WAIT_GUI_IDLE(nqwait_until_reg, wait_gui_idle) \
+ nqwait_until_reg = (nqwait_until_reg & ~NQWAIT_UNTIL_WAIT_GUI_IDLE_MASK) | (wait_gui_idle << NQWAIT_UNTIL_WAIT_GUI_IDLE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _nqwait_until_t {
+ unsigned int wait_gui_idle : NQWAIT_UNTIL_WAIT_GUI_IDLE_SIZE;
+ unsigned int : 31;
+ } nqwait_until_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _nqwait_until_t {
+ unsigned int : 31;
+ unsigned int wait_gui_idle : NQWAIT_UNTIL_WAIT_GUI_IDLE_SIZE;
+ } nqwait_until_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ nqwait_until_t f;
+} nqwait_until_u;
+
+
+/*
+ * RBBM_DEBUG_OUT struct
+ */
+
+#define RBBM_DEBUG_OUT_DEBUG_BUS_OUT_SIZE 32
+
+#define RBBM_DEBUG_OUT_DEBUG_BUS_OUT_SHIFT 0
+
+#define RBBM_DEBUG_OUT_DEBUG_BUS_OUT_MASK 0xffffffff
+
+#define RBBM_DEBUG_OUT_MASK \
+ (RBBM_DEBUG_OUT_DEBUG_BUS_OUT_MASK)
+
+#define RBBM_DEBUG_OUT(debug_bus_out) \
+ ((debug_bus_out << RBBM_DEBUG_OUT_DEBUG_BUS_OUT_SHIFT))
+
+#define RBBM_DEBUG_OUT_GET_DEBUG_BUS_OUT(rbbm_debug_out) \
+ ((rbbm_debug_out & RBBM_DEBUG_OUT_DEBUG_BUS_OUT_MASK) >> RBBM_DEBUG_OUT_DEBUG_BUS_OUT_SHIFT)
+
+#define RBBM_DEBUG_OUT_SET_DEBUG_BUS_OUT(rbbm_debug_out_reg, debug_bus_out) \
+ rbbm_debug_out_reg = (rbbm_debug_out_reg & ~RBBM_DEBUG_OUT_DEBUG_BUS_OUT_MASK) | (debug_bus_out << RBBM_DEBUG_OUT_DEBUG_BUS_OUT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_debug_out_t {
+ unsigned int debug_bus_out : RBBM_DEBUG_OUT_DEBUG_BUS_OUT_SIZE;
+ } rbbm_debug_out_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_debug_out_t {
+ unsigned int debug_bus_out : RBBM_DEBUG_OUT_DEBUG_BUS_OUT_SIZE;
+ } rbbm_debug_out_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_debug_out_t f;
+} rbbm_debug_out_u;
+
+
+/*
+ * RBBM_DEBUG_CNTL struct
+ */
+
+#define RBBM_DEBUG_CNTL_SUB_BLOCK_ADDR_SIZE 6
+#define RBBM_DEBUG_CNTL_SUB_BLOCK_SEL_SIZE 4
+#define RBBM_DEBUG_CNTL_SW_ENABLE_SIZE 1
+#define RBBM_DEBUG_CNTL_GPIO_SUB_BLOCK_ADDR_SIZE 6
+#define RBBM_DEBUG_CNTL_GPIO_SUB_BLOCK_SEL_SIZE 4
+#define RBBM_DEBUG_CNTL_GPIO_BYTE_LANE_ENB_SIZE 4
+
+#define RBBM_DEBUG_CNTL_SUB_BLOCK_ADDR_SHIFT 0
+#define RBBM_DEBUG_CNTL_SUB_BLOCK_SEL_SHIFT 8
+#define RBBM_DEBUG_CNTL_SW_ENABLE_SHIFT 12
+#define RBBM_DEBUG_CNTL_GPIO_SUB_BLOCK_ADDR_SHIFT 16
+#define RBBM_DEBUG_CNTL_GPIO_SUB_BLOCK_SEL_SHIFT 24
+#define RBBM_DEBUG_CNTL_GPIO_BYTE_LANE_ENB_SHIFT 28
+
+#define RBBM_DEBUG_CNTL_SUB_BLOCK_ADDR_MASK 0x0000003f
+#define RBBM_DEBUG_CNTL_SUB_BLOCK_SEL_MASK 0x00000f00
+#define RBBM_DEBUG_CNTL_SW_ENABLE_MASK 0x00001000
+#define RBBM_DEBUG_CNTL_GPIO_SUB_BLOCK_ADDR_MASK 0x003f0000
+#define RBBM_DEBUG_CNTL_GPIO_SUB_BLOCK_SEL_MASK 0x0f000000
+#define RBBM_DEBUG_CNTL_GPIO_BYTE_LANE_ENB_MASK 0xf0000000
+
+#define RBBM_DEBUG_CNTL_MASK \
+ (RBBM_DEBUG_CNTL_SUB_BLOCK_ADDR_MASK | \
+ RBBM_DEBUG_CNTL_SUB_BLOCK_SEL_MASK | \
+ RBBM_DEBUG_CNTL_SW_ENABLE_MASK | \
+ RBBM_DEBUG_CNTL_GPIO_SUB_BLOCK_ADDR_MASK | \
+ RBBM_DEBUG_CNTL_GPIO_SUB_BLOCK_SEL_MASK | \
+ RBBM_DEBUG_CNTL_GPIO_BYTE_LANE_ENB_MASK)
+
+#define RBBM_DEBUG_CNTL(sub_block_addr, sub_block_sel, sw_enable, gpio_sub_block_addr, gpio_sub_block_sel, gpio_byte_lane_enb) \
+ ((sub_block_addr << RBBM_DEBUG_CNTL_SUB_BLOCK_ADDR_SHIFT) | \
+ (sub_block_sel << RBBM_DEBUG_CNTL_SUB_BLOCK_SEL_SHIFT) | \
+ (sw_enable << RBBM_DEBUG_CNTL_SW_ENABLE_SHIFT) | \
+ (gpio_sub_block_addr << RBBM_DEBUG_CNTL_GPIO_SUB_BLOCK_ADDR_SHIFT) | \
+ (gpio_sub_block_sel << RBBM_DEBUG_CNTL_GPIO_SUB_BLOCK_SEL_SHIFT) | \
+ (gpio_byte_lane_enb << RBBM_DEBUG_CNTL_GPIO_BYTE_LANE_ENB_SHIFT))
+
+#define RBBM_DEBUG_CNTL_GET_SUB_BLOCK_ADDR(rbbm_debug_cntl) \
+ ((rbbm_debug_cntl & RBBM_DEBUG_CNTL_SUB_BLOCK_ADDR_MASK) >> RBBM_DEBUG_CNTL_SUB_BLOCK_ADDR_SHIFT)
+#define RBBM_DEBUG_CNTL_GET_SUB_BLOCK_SEL(rbbm_debug_cntl) \
+ ((rbbm_debug_cntl & RBBM_DEBUG_CNTL_SUB_BLOCK_SEL_MASK) >> RBBM_DEBUG_CNTL_SUB_BLOCK_SEL_SHIFT)
+#define RBBM_DEBUG_CNTL_GET_SW_ENABLE(rbbm_debug_cntl) \
+ ((rbbm_debug_cntl & RBBM_DEBUG_CNTL_SW_ENABLE_MASK) >> RBBM_DEBUG_CNTL_SW_ENABLE_SHIFT)
+#define RBBM_DEBUG_CNTL_GET_GPIO_SUB_BLOCK_ADDR(rbbm_debug_cntl) \
+ ((rbbm_debug_cntl & RBBM_DEBUG_CNTL_GPIO_SUB_BLOCK_ADDR_MASK) >> RBBM_DEBUG_CNTL_GPIO_SUB_BLOCK_ADDR_SHIFT)
+#define RBBM_DEBUG_CNTL_GET_GPIO_SUB_BLOCK_SEL(rbbm_debug_cntl) \
+ ((rbbm_debug_cntl & RBBM_DEBUG_CNTL_GPIO_SUB_BLOCK_SEL_MASK) >> RBBM_DEBUG_CNTL_GPIO_SUB_BLOCK_SEL_SHIFT)
+#define RBBM_DEBUG_CNTL_GET_GPIO_BYTE_LANE_ENB(rbbm_debug_cntl) \
+ ((rbbm_debug_cntl & RBBM_DEBUG_CNTL_GPIO_BYTE_LANE_ENB_MASK) >> RBBM_DEBUG_CNTL_GPIO_BYTE_LANE_ENB_SHIFT)
+
+#define RBBM_DEBUG_CNTL_SET_SUB_BLOCK_ADDR(rbbm_debug_cntl_reg, sub_block_addr) \
+ rbbm_debug_cntl_reg = (rbbm_debug_cntl_reg & ~RBBM_DEBUG_CNTL_SUB_BLOCK_ADDR_MASK) | (sub_block_addr << RBBM_DEBUG_CNTL_SUB_BLOCK_ADDR_SHIFT)
+#define RBBM_DEBUG_CNTL_SET_SUB_BLOCK_SEL(rbbm_debug_cntl_reg, sub_block_sel) \
+ rbbm_debug_cntl_reg = (rbbm_debug_cntl_reg & ~RBBM_DEBUG_CNTL_SUB_BLOCK_SEL_MASK) | (sub_block_sel << RBBM_DEBUG_CNTL_SUB_BLOCK_SEL_SHIFT)
+#define RBBM_DEBUG_CNTL_SET_SW_ENABLE(rbbm_debug_cntl_reg, sw_enable) \
+ rbbm_debug_cntl_reg = (rbbm_debug_cntl_reg & ~RBBM_DEBUG_CNTL_SW_ENABLE_MASK) | (sw_enable << RBBM_DEBUG_CNTL_SW_ENABLE_SHIFT)
+#define RBBM_DEBUG_CNTL_SET_GPIO_SUB_BLOCK_ADDR(rbbm_debug_cntl_reg, gpio_sub_block_addr) \
+ rbbm_debug_cntl_reg = (rbbm_debug_cntl_reg & ~RBBM_DEBUG_CNTL_GPIO_SUB_BLOCK_ADDR_MASK) | (gpio_sub_block_addr << RBBM_DEBUG_CNTL_GPIO_SUB_BLOCK_ADDR_SHIFT)
+#define RBBM_DEBUG_CNTL_SET_GPIO_SUB_BLOCK_SEL(rbbm_debug_cntl_reg, gpio_sub_block_sel) \
+ rbbm_debug_cntl_reg = (rbbm_debug_cntl_reg & ~RBBM_DEBUG_CNTL_GPIO_SUB_BLOCK_SEL_MASK) | (gpio_sub_block_sel << RBBM_DEBUG_CNTL_GPIO_SUB_BLOCK_SEL_SHIFT)
+#define RBBM_DEBUG_CNTL_SET_GPIO_BYTE_LANE_ENB(rbbm_debug_cntl_reg, gpio_byte_lane_enb) \
+ rbbm_debug_cntl_reg = (rbbm_debug_cntl_reg & ~RBBM_DEBUG_CNTL_GPIO_BYTE_LANE_ENB_MASK) | (gpio_byte_lane_enb << RBBM_DEBUG_CNTL_GPIO_BYTE_LANE_ENB_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_debug_cntl_t {
+ unsigned int sub_block_addr : RBBM_DEBUG_CNTL_SUB_BLOCK_ADDR_SIZE;
+ unsigned int : 2;
+ unsigned int sub_block_sel : RBBM_DEBUG_CNTL_SUB_BLOCK_SEL_SIZE;
+ unsigned int sw_enable : RBBM_DEBUG_CNTL_SW_ENABLE_SIZE;
+ unsigned int : 3;
+ unsigned int gpio_sub_block_addr : RBBM_DEBUG_CNTL_GPIO_SUB_BLOCK_ADDR_SIZE;
+ unsigned int : 2;
+ unsigned int gpio_sub_block_sel : RBBM_DEBUG_CNTL_GPIO_SUB_BLOCK_SEL_SIZE;
+ unsigned int gpio_byte_lane_enb : RBBM_DEBUG_CNTL_GPIO_BYTE_LANE_ENB_SIZE;
+ } rbbm_debug_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_debug_cntl_t {
+ unsigned int gpio_byte_lane_enb : RBBM_DEBUG_CNTL_GPIO_BYTE_LANE_ENB_SIZE;
+ unsigned int gpio_sub_block_sel : RBBM_DEBUG_CNTL_GPIO_SUB_BLOCK_SEL_SIZE;
+ unsigned int : 2;
+ unsigned int gpio_sub_block_addr : RBBM_DEBUG_CNTL_GPIO_SUB_BLOCK_ADDR_SIZE;
+ unsigned int : 3;
+ unsigned int sw_enable : RBBM_DEBUG_CNTL_SW_ENABLE_SIZE;
+ unsigned int sub_block_sel : RBBM_DEBUG_CNTL_SUB_BLOCK_SEL_SIZE;
+ unsigned int : 2;
+ unsigned int sub_block_addr : RBBM_DEBUG_CNTL_SUB_BLOCK_ADDR_SIZE;
+ } rbbm_debug_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_debug_cntl_t f;
+} rbbm_debug_cntl_u;
+
+
+/*
+ * RBBM_DEBUG struct
+ */
+
+#define RBBM_DEBUG_IGNORE_RTR_SIZE 1
+#define RBBM_DEBUG_IGNORE_CP_SCHED_WU_SIZE 1
+#define RBBM_DEBUG_IGNORE_CP_SCHED_ISYNC_SIZE 1
+#define RBBM_DEBUG_IGNORE_CP_SCHED_NQ_HI_SIZE 1
+#define RBBM_DEBUG_HYSTERESIS_NRT_GUI_ACTIVE_SIZE 4
+#define RBBM_DEBUG_IGNORE_RTR_FOR_HI_SIZE 1
+#define RBBM_DEBUG_IGNORE_CP_RBBM_NRTRTR_FOR_HI_SIZE 1
+#define RBBM_DEBUG_IGNORE_VGT_RBBM_NRTRTR_FOR_HI_SIZE 1
+#define RBBM_DEBUG_IGNORE_SQ_RBBM_NRTRTR_FOR_HI_SIZE 1
+#define RBBM_DEBUG_CP_RBBM_NRTRTR_SIZE 1
+#define RBBM_DEBUG_VGT_RBBM_NRTRTR_SIZE 1
+#define RBBM_DEBUG_SQ_RBBM_NRTRTR_SIZE 1
+#define RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_FOR_HI_SIZE 1
+#define RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_SIZE 1
+#define RBBM_DEBUG_IGNORE_SX_RBBM_BUSY_SIZE 1
+
+#define RBBM_DEBUG_IGNORE_RTR_SHIFT 1
+#define RBBM_DEBUG_IGNORE_CP_SCHED_WU_SHIFT 2
+#define RBBM_DEBUG_IGNORE_CP_SCHED_ISYNC_SHIFT 3
+#define RBBM_DEBUG_IGNORE_CP_SCHED_NQ_HI_SHIFT 4
+#define RBBM_DEBUG_HYSTERESIS_NRT_GUI_ACTIVE_SHIFT 8
+#define RBBM_DEBUG_IGNORE_RTR_FOR_HI_SHIFT 16
+#define RBBM_DEBUG_IGNORE_CP_RBBM_NRTRTR_FOR_HI_SHIFT 17
+#define RBBM_DEBUG_IGNORE_VGT_RBBM_NRTRTR_FOR_HI_SHIFT 18
+#define RBBM_DEBUG_IGNORE_SQ_RBBM_NRTRTR_FOR_HI_SHIFT 19
+#define RBBM_DEBUG_CP_RBBM_NRTRTR_SHIFT 20
+#define RBBM_DEBUG_VGT_RBBM_NRTRTR_SHIFT 21
+#define RBBM_DEBUG_SQ_RBBM_NRTRTR_SHIFT 22
+#define RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_FOR_HI_SHIFT 23
+#define RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_SHIFT 24
+#define RBBM_DEBUG_IGNORE_SX_RBBM_BUSY_SHIFT 31
+
+#define RBBM_DEBUG_IGNORE_RTR_MASK 0x00000002
+#define RBBM_DEBUG_IGNORE_CP_SCHED_WU_MASK 0x00000004
+#define RBBM_DEBUG_IGNORE_CP_SCHED_ISYNC_MASK 0x00000008
+#define RBBM_DEBUG_IGNORE_CP_SCHED_NQ_HI_MASK 0x00000010
+#define RBBM_DEBUG_HYSTERESIS_NRT_GUI_ACTIVE_MASK 0x00000f00
+#define RBBM_DEBUG_IGNORE_RTR_FOR_HI_MASK 0x00010000
+#define RBBM_DEBUG_IGNORE_CP_RBBM_NRTRTR_FOR_HI_MASK 0x00020000
+#define RBBM_DEBUG_IGNORE_VGT_RBBM_NRTRTR_FOR_HI_MASK 0x00040000
+#define RBBM_DEBUG_IGNORE_SQ_RBBM_NRTRTR_FOR_HI_MASK 0x00080000
+#define RBBM_DEBUG_CP_RBBM_NRTRTR_MASK 0x00100000
+#define RBBM_DEBUG_VGT_RBBM_NRTRTR_MASK 0x00200000
+#define RBBM_DEBUG_SQ_RBBM_NRTRTR_MASK 0x00400000
+#define RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_FOR_HI_MASK 0x00800000
+#define RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_MASK 0x01000000
+#define RBBM_DEBUG_IGNORE_SX_RBBM_BUSY_MASK 0x80000000
+
+#define RBBM_DEBUG_MASK \
+ (RBBM_DEBUG_IGNORE_RTR_MASK | \
+ RBBM_DEBUG_IGNORE_CP_SCHED_WU_MASK | \
+ RBBM_DEBUG_IGNORE_CP_SCHED_ISYNC_MASK | \
+ RBBM_DEBUG_IGNORE_CP_SCHED_NQ_HI_MASK | \
+ RBBM_DEBUG_HYSTERESIS_NRT_GUI_ACTIVE_MASK | \
+ RBBM_DEBUG_IGNORE_RTR_FOR_HI_MASK | \
+ RBBM_DEBUG_IGNORE_CP_RBBM_NRTRTR_FOR_HI_MASK | \
+ RBBM_DEBUG_IGNORE_VGT_RBBM_NRTRTR_FOR_HI_MASK | \
+ RBBM_DEBUG_IGNORE_SQ_RBBM_NRTRTR_FOR_HI_MASK | \
+ RBBM_DEBUG_CP_RBBM_NRTRTR_MASK | \
+ RBBM_DEBUG_VGT_RBBM_NRTRTR_MASK | \
+ RBBM_DEBUG_SQ_RBBM_NRTRTR_MASK | \
+ RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_FOR_HI_MASK | \
+ RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_MASK | \
+ RBBM_DEBUG_IGNORE_SX_RBBM_BUSY_MASK)
+
+#define RBBM_DEBUG(ignore_rtr, ignore_cp_sched_wu, ignore_cp_sched_isync, ignore_cp_sched_nq_hi, hysteresis_nrt_gui_active, ignore_rtr_for_hi, ignore_cp_rbbm_nrtrtr_for_hi, ignore_vgt_rbbm_nrtrtr_for_hi, ignore_sq_rbbm_nrtrtr_for_hi, cp_rbbm_nrtrtr, vgt_rbbm_nrtrtr, sq_rbbm_nrtrtr, clients_for_nrt_rtr_for_hi, clients_for_nrt_rtr, ignore_sx_rbbm_busy) \
+ ((ignore_rtr << RBBM_DEBUG_IGNORE_RTR_SHIFT) | \
+ (ignore_cp_sched_wu << RBBM_DEBUG_IGNORE_CP_SCHED_WU_SHIFT) | \
+ (ignore_cp_sched_isync << RBBM_DEBUG_IGNORE_CP_SCHED_ISYNC_SHIFT) | \
+ (ignore_cp_sched_nq_hi << RBBM_DEBUG_IGNORE_CP_SCHED_NQ_HI_SHIFT) | \
+ (hysteresis_nrt_gui_active << RBBM_DEBUG_HYSTERESIS_NRT_GUI_ACTIVE_SHIFT) | \
+ (ignore_rtr_for_hi << RBBM_DEBUG_IGNORE_RTR_FOR_HI_SHIFT) | \
+ (ignore_cp_rbbm_nrtrtr_for_hi << RBBM_DEBUG_IGNORE_CP_RBBM_NRTRTR_FOR_HI_SHIFT) | \
+ (ignore_vgt_rbbm_nrtrtr_for_hi << RBBM_DEBUG_IGNORE_VGT_RBBM_NRTRTR_FOR_HI_SHIFT) | \
+ (ignore_sq_rbbm_nrtrtr_for_hi << RBBM_DEBUG_IGNORE_SQ_RBBM_NRTRTR_FOR_HI_SHIFT) | \
+ (cp_rbbm_nrtrtr << RBBM_DEBUG_CP_RBBM_NRTRTR_SHIFT) | \
+ (vgt_rbbm_nrtrtr << RBBM_DEBUG_VGT_RBBM_NRTRTR_SHIFT) | \
+ (sq_rbbm_nrtrtr << RBBM_DEBUG_SQ_RBBM_NRTRTR_SHIFT) | \
+ (clients_for_nrt_rtr_for_hi << RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_FOR_HI_SHIFT) | \
+ (clients_for_nrt_rtr << RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_SHIFT) | \
+ (ignore_sx_rbbm_busy << RBBM_DEBUG_IGNORE_SX_RBBM_BUSY_SHIFT))
+
+#define RBBM_DEBUG_GET_IGNORE_RTR(rbbm_debug) \
+ ((rbbm_debug & RBBM_DEBUG_IGNORE_RTR_MASK) >> RBBM_DEBUG_IGNORE_RTR_SHIFT)
+#define RBBM_DEBUG_GET_IGNORE_CP_SCHED_WU(rbbm_debug) \
+ ((rbbm_debug & RBBM_DEBUG_IGNORE_CP_SCHED_WU_MASK) >> RBBM_DEBUG_IGNORE_CP_SCHED_WU_SHIFT)
+#define RBBM_DEBUG_GET_IGNORE_CP_SCHED_ISYNC(rbbm_debug) \
+ ((rbbm_debug & RBBM_DEBUG_IGNORE_CP_SCHED_ISYNC_MASK) >> RBBM_DEBUG_IGNORE_CP_SCHED_ISYNC_SHIFT)
+#define RBBM_DEBUG_GET_IGNORE_CP_SCHED_NQ_HI(rbbm_debug) \
+ ((rbbm_debug & RBBM_DEBUG_IGNORE_CP_SCHED_NQ_HI_MASK) >> RBBM_DEBUG_IGNORE_CP_SCHED_NQ_HI_SHIFT)
+#define RBBM_DEBUG_GET_HYSTERESIS_NRT_GUI_ACTIVE(rbbm_debug) \
+ ((rbbm_debug & RBBM_DEBUG_HYSTERESIS_NRT_GUI_ACTIVE_MASK) >> RBBM_DEBUG_HYSTERESIS_NRT_GUI_ACTIVE_SHIFT)
+#define RBBM_DEBUG_GET_IGNORE_RTR_FOR_HI(rbbm_debug) \
+ ((rbbm_debug & RBBM_DEBUG_IGNORE_RTR_FOR_HI_MASK) >> RBBM_DEBUG_IGNORE_RTR_FOR_HI_SHIFT)
+#define RBBM_DEBUG_GET_IGNORE_CP_RBBM_NRTRTR_FOR_HI(rbbm_debug) \
+ ((rbbm_debug & RBBM_DEBUG_IGNORE_CP_RBBM_NRTRTR_FOR_HI_MASK) >> RBBM_DEBUG_IGNORE_CP_RBBM_NRTRTR_FOR_HI_SHIFT)
+#define RBBM_DEBUG_GET_IGNORE_VGT_RBBM_NRTRTR_FOR_HI(rbbm_debug) \
+ ((rbbm_debug & RBBM_DEBUG_IGNORE_VGT_RBBM_NRTRTR_FOR_HI_MASK) >> RBBM_DEBUG_IGNORE_VGT_RBBM_NRTRTR_FOR_HI_SHIFT)
+#define RBBM_DEBUG_GET_IGNORE_SQ_RBBM_NRTRTR_FOR_HI(rbbm_debug) \
+ ((rbbm_debug & RBBM_DEBUG_IGNORE_SQ_RBBM_NRTRTR_FOR_HI_MASK) >> RBBM_DEBUG_IGNORE_SQ_RBBM_NRTRTR_FOR_HI_SHIFT)
+#define RBBM_DEBUG_GET_CP_RBBM_NRTRTR(rbbm_debug) \
+ ((rbbm_debug & RBBM_DEBUG_CP_RBBM_NRTRTR_MASK) >> RBBM_DEBUG_CP_RBBM_NRTRTR_SHIFT)
+#define RBBM_DEBUG_GET_VGT_RBBM_NRTRTR(rbbm_debug) \
+ ((rbbm_debug & RBBM_DEBUG_VGT_RBBM_NRTRTR_MASK) >> RBBM_DEBUG_VGT_RBBM_NRTRTR_SHIFT)
+#define RBBM_DEBUG_GET_SQ_RBBM_NRTRTR(rbbm_debug) \
+ ((rbbm_debug & RBBM_DEBUG_SQ_RBBM_NRTRTR_MASK) >> RBBM_DEBUG_SQ_RBBM_NRTRTR_SHIFT)
+#define RBBM_DEBUG_GET_CLIENTS_FOR_NRT_RTR_FOR_HI(rbbm_debug) \
+ ((rbbm_debug & RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_FOR_HI_MASK) >> RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_FOR_HI_SHIFT)
+#define RBBM_DEBUG_GET_CLIENTS_FOR_NRT_RTR(rbbm_debug) \
+ ((rbbm_debug & RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_MASK) >> RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_SHIFT)
+#define RBBM_DEBUG_GET_IGNORE_SX_RBBM_BUSY(rbbm_debug) \
+ ((rbbm_debug & RBBM_DEBUG_IGNORE_SX_RBBM_BUSY_MASK) >> RBBM_DEBUG_IGNORE_SX_RBBM_BUSY_SHIFT)
+
+#define RBBM_DEBUG_SET_IGNORE_RTR(rbbm_debug_reg, ignore_rtr) \
+ rbbm_debug_reg = (rbbm_debug_reg & ~RBBM_DEBUG_IGNORE_RTR_MASK) | (ignore_rtr << RBBM_DEBUG_IGNORE_RTR_SHIFT)
+#define RBBM_DEBUG_SET_IGNORE_CP_SCHED_WU(rbbm_debug_reg, ignore_cp_sched_wu) \
+ rbbm_debug_reg = (rbbm_debug_reg & ~RBBM_DEBUG_IGNORE_CP_SCHED_WU_MASK) | (ignore_cp_sched_wu << RBBM_DEBUG_IGNORE_CP_SCHED_WU_SHIFT)
+#define RBBM_DEBUG_SET_IGNORE_CP_SCHED_ISYNC(rbbm_debug_reg, ignore_cp_sched_isync) \
+ rbbm_debug_reg = (rbbm_debug_reg & ~RBBM_DEBUG_IGNORE_CP_SCHED_ISYNC_MASK) | (ignore_cp_sched_isync << RBBM_DEBUG_IGNORE_CP_SCHED_ISYNC_SHIFT)
+#define RBBM_DEBUG_SET_IGNORE_CP_SCHED_NQ_HI(rbbm_debug_reg, ignore_cp_sched_nq_hi) \
+ rbbm_debug_reg = (rbbm_debug_reg & ~RBBM_DEBUG_IGNORE_CP_SCHED_NQ_HI_MASK) | (ignore_cp_sched_nq_hi << RBBM_DEBUG_IGNORE_CP_SCHED_NQ_HI_SHIFT)
+#define RBBM_DEBUG_SET_HYSTERESIS_NRT_GUI_ACTIVE(rbbm_debug_reg, hysteresis_nrt_gui_active) \
+ rbbm_debug_reg = (rbbm_debug_reg & ~RBBM_DEBUG_HYSTERESIS_NRT_GUI_ACTIVE_MASK) | (hysteresis_nrt_gui_active << RBBM_DEBUG_HYSTERESIS_NRT_GUI_ACTIVE_SHIFT)
+#define RBBM_DEBUG_SET_IGNORE_RTR_FOR_HI(rbbm_debug_reg, ignore_rtr_for_hi) \
+ rbbm_debug_reg = (rbbm_debug_reg & ~RBBM_DEBUG_IGNORE_RTR_FOR_HI_MASK) | (ignore_rtr_for_hi << RBBM_DEBUG_IGNORE_RTR_FOR_HI_SHIFT)
+#define RBBM_DEBUG_SET_IGNORE_CP_RBBM_NRTRTR_FOR_HI(rbbm_debug_reg, ignore_cp_rbbm_nrtrtr_for_hi) \
+ rbbm_debug_reg = (rbbm_debug_reg & ~RBBM_DEBUG_IGNORE_CP_RBBM_NRTRTR_FOR_HI_MASK) | (ignore_cp_rbbm_nrtrtr_for_hi << RBBM_DEBUG_IGNORE_CP_RBBM_NRTRTR_FOR_HI_SHIFT)
+#define RBBM_DEBUG_SET_IGNORE_VGT_RBBM_NRTRTR_FOR_HI(rbbm_debug_reg, ignore_vgt_rbbm_nrtrtr_for_hi) \
+ rbbm_debug_reg = (rbbm_debug_reg & ~RBBM_DEBUG_IGNORE_VGT_RBBM_NRTRTR_FOR_HI_MASK) | (ignore_vgt_rbbm_nrtrtr_for_hi << RBBM_DEBUG_IGNORE_VGT_RBBM_NRTRTR_FOR_HI_SHIFT)
+#define RBBM_DEBUG_SET_IGNORE_SQ_RBBM_NRTRTR_FOR_HI(rbbm_debug_reg, ignore_sq_rbbm_nrtrtr_for_hi) \
+ rbbm_debug_reg = (rbbm_debug_reg & ~RBBM_DEBUG_IGNORE_SQ_RBBM_NRTRTR_FOR_HI_MASK) | (ignore_sq_rbbm_nrtrtr_for_hi << RBBM_DEBUG_IGNORE_SQ_RBBM_NRTRTR_FOR_HI_SHIFT)
+#define RBBM_DEBUG_SET_CP_RBBM_NRTRTR(rbbm_debug_reg, cp_rbbm_nrtrtr) \
+ rbbm_debug_reg = (rbbm_debug_reg & ~RBBM_DEBUG_CP_RBBM_NRTRTR_MASK) | (cp_rbbm_nrtrtr << RBBM_DEBUG_CP_RBBM_NRTRTR_SHIFT)
+#define RBBM_DEBUG_SET_VGT_RBBM_NRTRTR(rbbm_debug_reg, vgt_rbbm_nrtrtr) \
+ rbbm_debug_reg = (rbbm_debug_reg & ~RBBM_DEBUG_VGT_RBBM_NRTRTR_MASK) | (vgt_rbbm_nrtrtr << RBBM_DEBUG_VGT_RBBM_NRTRTR_SHIFT)
+#define RBBM_DEBUG_SET_SQ_RBBM_NRTRTR(rbbm_debug_reg, sq_rbbm_nrtrtr) \
+ rbbm_debug_reg = (rbbm_debug_reg & ~RBBM_DEBUG_SQ_RBBM_NRTRTR_MASK) | (sq_rbbm_nrtrtr << RBBM_DEBUG_SQ_RBBM_NRTRTR_SHIFT)
+#define RBBM_DEBUG_SET_CLIENTS_FOR_NRT_RTR_FOR_HI(rbbm_debug_reg, clients_for_nrt_rtr_for_hi) \
+ rbbm_debug_reg = (rbbm_debug_reg & ~RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_FOR_HI_MASK) | (clients_for_nrt_rtr_for_hi << RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_FOR_HI_SHIFT)
+#define RBBM_DEBUG_SET_CLIENTS_FOR_NRT_RTR(rbbm_debug_reg, clients_for_nrt_rtr) \
+ rbbm_debug_reg = (rbbm_debug_reg & ~RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_MASK) | (clients_for_nrt_rtr << RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_SHIFT)
+#define RBBM_DEBUG_SET_IGNORE_SX_RBBM_BUSY(rbbm_debug_reg, ignore_sx_rbbm_busy) \
+ rbbm_debug_reg = (rbbm_debug_reg & ~RBBM_DEBUG_IGNORE_SX_RBBM_BUSY_MASK) | (ignore_sx_rbbm_busy << RBBM_DEBUG_IGNORE_SX_RBBM_BUSY_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_debug_t {
+ unsigned int : 1;
+ unsigned int ignore_rtr : RBBM_DEBUG_IGNORE_RTR_SIZE;
+ unsigned int ignore_cp_sched_wu : RBBM_DEBUG_IGNORE_CP_SCHED_WU_SIZE;
+ unsigned int ignore_cp_sched_isync : RBBM_DEBUG_IGNORE_CP_SCHED_ISYNC_SIZE;
+ unsigned int ignore_cp_sched_nq_hi : RBBM_DEBUG_IGNORE_CP_SCHED_NQ_HI_SIZE;
+ unsigned int : 3;
+ unsigned int hysteresis_nrt_gui_active : RBBM_DEBUG_HYSTERESIS_NRT_GUI_ACTIVE_SIZE;
+ unsigned int : 4;
+ unsigned int ignore_rtr_for_hi : RBBM_DEBUG_IGNORE_RTR_FOR_HI_SIZE;
+ unsigned int ignore_cp_rbbm_nrtrtr_for_hi : RBBM_DEBUG_IGNORE_CP_RBBM_NRTRTR_FOR_HI_SIZE;
+ unsigned int ignore_vgt_rbbm_nrtrtr_for_hi : RBBM_DEBUG_IGNORE_VGT_RBBM_NRTRTR_FOR_HI_SIZE;
+ unsigned int ignore_sq_rbbm_nrtrtr_for_hi : RBBM_DEBUG_IGNORE_SQ_RBBM_NRTRTR_FOR_HI_SIZE;
+ unsigned int cp_rbbm_nrtrtr : RBBM_DEBUG_CP_RBBM_NRTRTR_SIZE;
+ unsigned int vgt_rbbm_nrtrtr : RBBM_DEBUG_VGT_RBBM_NRTRTR_SIZE;
+ unsigned int sq_rbbm_nrtrtr : RBBM_DEBUG_SQ_RBBM_NRTRTR_SIZE;
+ unsigned int clients_for_nrt_rtr_for_hi : RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_FOR_HI_SIZE;
+ unsigned int clients_for_nrt_rtr : RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_SIZE;
+ unsigned int : 6;
+ unsigned int ignore_sx_rbbm_busy : RBBM_DEBUG_IGNORE_SX_RBBM_BUSY_SIZE;
+ } rbbm_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_debug_t {
+ unsigned int ignore_sx_rbbm_busy : RBBM_DEBUG_IGNORE_SX_RBBM_BUSY_SIZE;
+ unsigned int : 6;
+ unsigned int clients_for_nrt_rtr : RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_SIZE;
+ unsigned int clients_for_nrt_rtr_for_hi : RBBM_DEBUG_CLIENTS_FOR_NRT_RTR_FOR_HI_SIZE;
+ unsigned int sq_rbbm_nrtrtr : RBBM_DEBUG_SQ_RBBM_NRTRTR_SIZE;
+ unsigned int vgt_rbbm_nrtrtr : RBBM_DEBUG_VGT_RBBM_NRTRTR_SIZE;
+ unsigned int cp_rbbm_nrtrtr : RBBM_DEBUG_CP_RBBM_NRTRTR_SIZE;
+ unsigned int ignore_sq_rbbm_nrtrtr_for_hi : RBBM_DEBUG_IGNORE_SQ_RBBM_NRTRTR_FOR_HI_SIZE;
+ unsigned int ignore_vgt_rbbm_nrtrtr_for_hi : RBBM_DEBUG_IGNORE_VGT_RBBM_NRTRTR_FOR_HI_SIZE;
+ unsigned int ignore_cp_rbbm_nrtrtr_for_hi : RBBM_DEBUG_IGNORE_CP_RBBM_NRTRTR_FOR_HI_SIZE;
+ unsigned int ignore_rtr_for_hi : RBBM_DEBUG_IGNORE_RTR_FOR_HI_SIZE;
+ unsigned int : 4;
+ unsigned int hysteresis_nrt_gui_active : RBBM_DEBUG_HYSTERESIS_NRT_GUI_ACTIVE_SIZE;
+ unsigned int : 3;
+ unsigned int ignore_cp_sched_nq_hi : RBBM_DEBUG_IGNORE_CP_SCHED_NQ_HI_SIZE;
+ unsigned int ignore_cp_sched_isync : RBBM_DEBUG_IGNORE_CP_SCHED_ISYNC_SIZE;
+ unsigned int ignore_cp_sched_wu : RBBM_DEBUG_IGNORE_CP_SCHED_WU_SIZE;
+ unsigned int ignore_rtr : RBBM_DEBUG_IGNORE_RTR_SIZE;
+ unsigned int : 1;
+ } rbbm_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_debug_t f;
+} rbbm_debug_u;
+
+
+/*
+ * RBBM_READ_ERROR struct
+ */
+
+#define RBBM_READ_ERROR_READ_ADDRESS_SIZE 15
+#define RBBM_READ_ERROR_READ_REQUESTER_SIZE 1
+#define RBBM_READ_ERROR_READ_ERROR_SIZE 1
+
+#define RBBM_READ_ERROR_READ_ADDRESS_SHIFT 2
+#define RBBM_READ_ERROR_READ_REQUESTER_SHIFT 30
+#define RBBM_READ_ERROR_READ_ERROR_SHIFT 31
+
+#define RBBM_READ_ERROR_READ_ADDRESS_MASK 0x0001fffc
+#define RBBM_READ_ERROR_READ_REQUESTER_MASK 0x40000000
+#define RBBM_READ_ERROR_READ_ERROR_MASK 0x80000000
+
+#define RBBM_READ_ERROR_MASK \
+ (RBBM_READ_ERROR_READ_ADDRESS_MASK | \
+ RBBM_READ_ERROR_READ_REQUESTER_MASK | \
+ RBBM_READ_ERROR_READ_ERROR_MASK)
+
+#define RBBM_READ_ERROR(read_address, read_requester, read_error) \
+ ((read_address << RBBM_READ_ERROR_READ_ADDRESS_SHIFT) | \
+ (read_requester << RBBM_READ_ERROR_READ_REQUESTER_SHIFT) | \
+ (read_error << RBBM_READ_ERROR_READ_ERROR_SHIFT))
+
+#define RBBM_READ_ERROR_GET_READ_ADDRESS(rbbm_read_error) \
+ ((rbbm_read_error & RBBM_READ_ERROR_READ_ADDRESS_MASK) >> RBBM_READ_ERROR_READ_ADDRESS_SHIFT)
+#define RBBM_READ_ERROR_GET_READ_REQUESTER(rbbm_read_error) \
+ ((rbbm_read_error & RBBM_READ_ERROR_READ_REQUESTER_MASK) >> RBBM_READ_ERROR_READ_REQUESTER_SHIFT)
+#define RBBM_READ_ERROR_GET_READ_ERROR(rbbm_read_error) \
+ ((rbbm_read_error & RBBM_READ_ERROR_READ_ERROR_MASK) >> RBBM_READ_ERROR_READ_ERROR_SHIFT)
+
+#define RBBM_READ_ERROR_SET_READ_ADDRESS(rbbm_read_error_reg, read_address) \
+ rbbm_read_error_reg = (rbbm_read_error_reg & ~RBBM_READ_ERROR_READ_ADDRESS_MASK) | (read_address << RBBM_READ_ERROR_READ_ADDRESS_SHIFT)
+#define RBBM_READ_ERROR_SET_READ_REQUESTER(rbbm_read_error_reg, read_requester) \
+ rbbm_read_error_reg = (rbbm_read_error_reg & ~RBBM_READ_ERROR_READ_REQUESTER_MASK) | (read_requester << RBBM_READ_ERROR_READ_REQUESTER_SHIFT)
+#define RBBM_READ_ERROR_SET_READ_ERROR(rbbm_read_error_reg, read_error) \
+ rbbm_read_error_reg = (rbbm_read_error_reg & ~RBBM_READ_ERROR_READ_ERROR_MASK) | (read_error << RBBM_READ_ERROR_READ_ERROR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_read_error_t {
+ unsigned int : 2;
+ unsigned int read_address : RBBM_READ_ERROR_READ_ADDRESS_SIZE;
+ unsigned int : 13;
+ unsigned int read_requester : RBBM_READ_ERROR_READ_REQUESTER_SIZE;
+ unsigned int read_error : RBBM_READ_ERROR_READ_ERROR_SIZE;
+ } rbbm_read_error_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_read_error_t {
+ unsigned int read_error : RBBM_READ_ERROR_READ_ERROR_SIZE;
+ unsigned int read_requester : RBBM_READ_ERROR_READ_REQUESTER_SIZE;
+ unsigned int : 13;
+ unsigned int read_address : RBBM_READ_ERROR_READ_ADDRESS_SIZE;
+ unsigned int : 2;
+ } rbbm_read_error_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_read_error_t f;
+} rbbm_read_error_u;
+
+
+/*
+ * RBBM_WAIT_IDLE_CLOCKS struct
+ */
+
+#define RBBM_WAIT_IDLE_CLOCKS_WAIT_IDLE_CLOCKS_NRT_SIZE 8
+
+#define RBBM_WAIT_IDLE_CLOCKS_WAIT_IDLE_CLOCKS_NRT_SHIFT 0
+
+#define RBBM_WAIT_IDLE_CLOCKS_WAIT_IDLE_CLOCKS_NRT_MASK 0x000000ff
+
+#define RBBM_WAIT_IDLE_CLOCKS_MASK \
+ (RBBM_WAIT_IDLE_CLOCKS_WAIT_IDLE_CLOCKS_NRT_MASK)
+
+#define RBBM_WAIT_IDLE_CLOCKS(wait_idle_clocks_nrt) \
+ ((wait_idle_clocks_nrt << RBBM_WAIT_IDLE_CLOCKS_WAIT_IDLE_CLOCKS_NRT_SHIFT))
+
+#define RBBM_WAIT_IDLE_CLOCKS_GET_WAIT_IDLE_CLOCKS_NRT(rbbm_wait_idle_clocks) \
+ ((rbbm_wait_idle_clocks & RBBM_WAIT_IDLE_CLOCKS_WAIT_IDLE_CLOCKS_NRT_MASK) >> RBBM_WAIT_IDLE_CLOCKS_WAIT_IDLE_CLOCKS_NRT_SHIFT)
+
+#define RBBM_WAIT_IDLE_CLOCKS_SET_WAIT_IDLE_CLOCKS_NRT(rbbm_wait_idle_clocks_reg, wait_idle_clocks_nrt) \
+ rbbm_wait_idle_clocks_reg = (rbbm_wait_idle_clocks_reg & ~RBBM_WAIT_IDLE_CLOCKS_WAIT_IDLE_CLOCKS_NRT_MASK) | (wait_idle_clocks_nrt << RBBM_WAIT_IDLE_CLOCKS_WAIT_IDLE_CLOCKS_NRT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_wait_idle_clocks_t {
+ unsigned int wait_idle_clocks_nrt : RBBM_WAIT_IDLE_CLOCKS_WAIT_IDLE_CLOCKS_NRT_SIZE;
+ unsigned int : 24;
+ } rbbm_wait_idle_clocks_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_wait_idle_clocks_t {
+ unsigned int : 24;
+ unsigned int wait_idle_clocks_nrt : RBBM_WAIT_IDLE_CLOCKS_WAIT_IDLE_CLOCKS_NRT_SIZE;
+ } rbbm_wait_idle_clocks_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_wait_idle_clocks_t f;
+} rbbm_wait_idle_clocks_u;
+
+
+/*
+ * RBBM_INT_CNTL struct
+ */
+
+#define RBBM_INT_CNTL_RDERR_INT_MASK_SIZE 1
+#define RBBM_INT_CNTL_DISPLAY_UPDATE_INT_MASK_SIZE 1
+#define RBBM_INT_CNTL_GUI_IDLE_INT_MASK_SIZE 1
+
+#define RBBM_INT_CNTL_RDERR_INT_MASK_SHIFT 0
+#define RBBM_INT_CNTL_DISPLAY_UPDATE_INT_MASK_SHIFT 1
+#define RBBM_INT_CNTL_GUI_IDLE_INT_MASK_SHIFT 19
+
+#define RBBM_INT_CNTL_RDERR_INT_MASK_MASK 0x00000001
+#define RBBM_INT_CNTL_DISPLAY_UPDATE_INT_MASK_MASK 0x00000002
+#define RBBM_INT_CNTL_GUI_IDLE_INT_MASK_MASK 0x00080000
+
+#define RBBM_INT_CNTL_MASK \
+ (RBBM_INT_CNTL_RDERR_INT_MASK_MASK | \
+ RBBM_INT_CNTL_DISPLAY_UPDATE_INT_MASK_MASK | \
+ RBBM_INT_CNTL_GUI_IDLE_INT_MASK_MASK)
+
+#define RBBM_INT_CNTL(rderr_int_mask, display_update_int_mask, gui_idle_int_mask) \
+ ((rderr_int_mask << RBBM_INT_CNTL_RDERR_INT_MASK_SHIFT) | \
+ (display_update_int_mask << RBBM_INT_CNTL_DISPLAY_UPDATE_INT_MASK_SHIFT) | \
+ (gui_idle_int_mask << RBBM_INT_CNTL_GUI_IDLE_INT_MASK_SHIFT))
+
+#define RBBM_INT_CNTL_GET_RDERR_INT_MASK(rbbm_int_cntl) \
+ ((rbbm_int_cntl & RBBM_INT_CNTL_RDERR_INT_MASK_MASK) >> RBBM_INT_CNTL_RDERR_INT_MASK_SHIFT)
+#define RBBM_INT_CNTL_GET_DISPLAY_UPDATE_INT_MASK(rbbm_int_cntl) \
+ ((rbbm_int_cntl & RBBM_INT_CNTL_DISPLAY_UPDATE_INT_MASK_MASK) >> RBBM_INT_CNTL_DISPLAY_UPDATE_INT_MASK_SHIFT)
+#define RBBM_INT_CNTL_GET_GUI_IDLE_INT_MASK(rbbm_int_cntl) \
+ ((rbbm_int_cntl & RBBM_INT_CNTL_GUI_IDLE_INT_MASK_MASK) >> RBBM_INT_CNTL_GUI_IDLE_INT_MASK_SHIFT)
+
+#define RBBM_INT_CNTL_SET_RDERR_INT_MASK(rbbm_int_cntl_reg, rderr_int_mask) \
+ rbbm_int_cntl_reg = (rbbm_int_cntl_reg & ~RBBM_INT_CNTL_RDERR_INT_MASK_MASK) | (rderr_int_mask << RBBM_INT_CNTL_RDERR_INT_MASK_SHIFT)
+#define RBBM_INT_CNTL_SET_DISPLAY_UPDATE_INT_MASK(rbbm_int_cntl_reg, display_update_int_mask) \
+ rbbm_int_cntl_reg = (rbbm_int_cntl_reg & ~RBBM_INT_CNTL_DISPLAY_UPDATE_INT_MASK_MASK) | (display_update_int_mask << RBBM_INT_CNTL_DISPLAY_UPDATE_INT_MASK_SHIFT)
+#define RBBM_INT_CNTL_SET_GUI_IDLE_INT_MASK(rbbm_int_cntl_reg, gui_idle_int_mask) \
+ rbbm_int_cntl_reg = (rbbm_int_cntl_reg & ~RBBM_INT_CNTL_GUI_IDLE_INT_MASK_MASK) | (gui_idle_int_mask << RBBM_INT_CNTL_GUI_IDLE_INT_MASK_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_int_cntl_t {
+ unsigned int rderr_int_mask : RBBM_INT_CNTL_RDERR_INT_MASK_SIZE;
+ unsigned int display_update_int_mask : RBBM_INT_CNTL_DISPLAY_UPDATE_INT_MASK_SIZE;
+ unsigned int : 17;
+ unsigned int gui_idle_int_mask : RBBM_INT_CNTL_GUI_IDLE_INT_MASK_SIZE;
+ unsigned int : 12;
+ } rbbm_int_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_int_cntl_t {
+ unsigned int : 12;
+ unsigned int gui_idle_int_mask : RBBM_INT_CNTL_GUI_IDLE_INT_MASK_SIZE;
+ unsigned int : 17;
+ unsigned int display_update_int_mask : RBBM_INT_CNTL_DISPLAY_UPDATE_INT_MASK_SIZE;
+ unsigned int rderr_int_mask : RBBM_INT_CNTL_RDERR_INT_MASK_SIZE;
+ } rbbm_int_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_int_cntl_t f;
+} rbbm_int_cntl_u;
+
+
+/*
+ * RBBM_INT_STATUS struct
+ */
+
+#define RBBM_INT_STATUS_RDERR_INT_STAT_SIZE 1
+#define RBBM_INT_STATUS_DISPLAY_UPDATE_INT_STAT_SIZE 1
+#define RBBM_INT_STATUS_GUI_IDLE_INT_STAT_SIZE 1
+
+#define RBBM_INT_STATUS_RDERR_INT_STAT_SHIFT 0
+#define RBBM_INT_STATUS_DISPLAY_UPDATE_INT_STAT_SHIFT 1
+#define RBBM_INT_STATUS_GUI_IDLE_INT_STAT_SHIFT 19
+
+#define RBBM_INT_STATUS_RDERR_INT_STAT_MASK 0x00000001
+#define RBBM_INT_STATUS_DISPLAY_UPDATE_INT_STAT_MASK 0x00000002
+#define RBBM_INT_STATUS_GUI_IDLE_INT_STAT_MASK 0x00080000
+
+#define RBBM_INT_STATUS_MASK \
+ (RBBM_INT_STATUS_RDERR_INT_STAT_MASK | \
+ RBBM_INT_STATUS_DISPLAY_UPDATE_INT_STAT_MASK | \
+ RBBM_INT_STATUS_GUI_IDLE_INT_STAT_MASK)
+
+#define RBBM_INT_STATUS(rderr_int_stat, display_update_int_stat, gui_idle_int_stat) \
+ ((rderr_int_stat << RBBM_INT_STATUS_RDERR_INT_STAT_SHIFT) | \
+ (display_update_int_stat << RBBM_INT_STATUS_DISPLAY_UPDATE_INT_STAT_SHIFT) | \
+ (gui_idle_int_stat << RBBM_INT_STATUS_GUI_IDLE_INT_STAT_SHIFT))
+
+#define RBBM_INT_STATUS_GET_RDERR_INT_STAT(rbbm_int_status) \
+ ((rbbm_int_status & RBBM_INT_STATUS_RDERR_INT_STAT_MASK) >> RBBM_INT_STATUS_RDERR_INT_STAT_SHIFT)
+#define RBBM_INT_STATUS_GET_DISPLAY_UPDATE_INT_STAT(rbbm_int_status) \
+ ((rbbm_int_status & RBBM_INT_STATUS_DISPLAY_UPDATE_INT_STAT_MASK) >> RBBM_INT_STATUS_DISPLAY_UPDATE_INT_STAT_SHIFT)
+#define RBBM_INT_STATUS_GET_GUI_IDLE_INT_STAT(rbbm_int_status) \
+ ((rbbm_int_status & RBBM_INT_STATUS_GUI_IDLE_INT_STAT_MASK) >> RBBM_INT_STATUS_GUI_IDLE_INT_STAT_SHIFT)
+
+#define RBBM_INT_STATUS_SET_RDERR_INT_STAT(rbbm_int_status_reg, rderr_int_stat) \
+ rbbm_int_status_reg = (rbbm_int_status_reg & ~RBBM_INT_STATUS_RDERR_INT_STAT_MASK) | (rderr_int_stat << RBBM_INT_STATUS_RDERR_INT_STAT_SHIFT)
+#define RBBM_INT_STATUS_SET_DISPLAY_UPDATE_INT_STAT(rbbm_int_status_reg, display_update_int_stat) \
+ rbbm_int_status_reg = (rbbm_int_status_reg & ~RBBM_INT_STATUS_DISPLAY_UPDATE_INT_STAT_MASK) | (display_update_int_stat << RBBM_INT_STATUS_DISPLAY_UPDATE_INT_STAT_SHIFT)
+#define RBBM_INT_STATUS_SET_GUI_IDLE_INT_STAT(rbbm_int_status_reg, gui_idle_int_stat) \
+ rbbm_int_status_reg = (rbbm_int_status_reg & ~RBBM_INT_STATUS_GUI_IDLE_INT_STAT_MASK) | (gui_idle_int_stat << RBBM_INT_STATUS_GUI_IDLE_INT_STAT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_int_status_t {
+ unsigned int rderr_int_stat : RBBM_INT_STATUS_RDERR_INT_STAT_SIZE;
+ unsigned int display_update_int_stat : RBBM_INT_STATUS_DISPLAY_UPDATE_INT_STAT_SIZE;
+ unsigned int : 17;
+ unsigned int gui_idle_int_stat : RBBM_INT_STATUS_GUI_IDLE_INT_STAT_SIZE;
+ unsigned int : 12;
+ } rbbm_int_status_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_int_status_t {
+ unsigned int : 12;
+ unsigned int gui_idle_int_stat : RBBM_INT_STATUS_GUI_IDLE_INT_STAT_SIZE;
+ unsigned int : 17;
+ unsigned int display_update_int_stat : RBBM_INT_STATUS_DISPLAY_UPDATE_INT_STAT_SIZE;
+ unsigned int rderr_int_stat : RBBM_INT_STATUS_RDERR_INT_STAT_SIZE;
+ } rbbm_int_status_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_int_status_t f;
+} rbbm_int_status_u;
+
+
+/*
+ * RBBM_INT_ACK struct
+ */
+
+#define RBBM_INT_ACK_RDERR_INT_ACK_SIZE 1
+#define RBBM_INT_ACK_DISPLAY_UPDATE_INT_ACK_SIZE 1
+#define RBBM_INT_ACK_GUI_IDLE_INT_ACK_SIZE 1
+
+#define RBBM_INT_ACK_RDERR_INT_ACK_SHIFT 0
+#define RBBM_INT_ACK_DISPLAY_UPDATE_INT_ACK_SHIFT 1
+#define RBBM_INT_ACK_GUI_IDLE_INT_ACK_SHIFT 19
+
+#define RBBM_INT_ACK_RDERR_INT_ACK_MASK 0x00000001
+#define RBBM_INT_ACK_DISPLAY_UPDATE_INT_ACK_MASK 0x00000002
+#define RBBM_INT_ACK_GUI_IDLE_INT_ACK_MASK 0x00080000
+
+#define RBBM_INT_ACK_MASK \
+ (RBBM_INT_ACK_RDERR_INT_ACK_MASK | \
+ RBBM_INT_ACK_DISPLAY_UPDATE_INT_ACK_MASK | \
+ RBBM_INT_ACK_GUI_IDLE_INT_ACK_MASK)
+
+#define RBBM_INT_ACK(rderr_int_ack, display_update_int_ack, gui_idle_int_ack) \
+ ((rderr_int_ack << RBBM_INT_ACK_RDERR_INT_ACK_SHIFT) | \
+ (display_update_int_ack << RBBM_INT_ACK_DISPLAY_UPDATE_INT_ACK_SHIFT) | \
+ (gui_idle_int_ack << RBBM_INT_ACK_GUI_IDLE_INT_ACK_SHIFT))
+
+#define RBBM_INT_ACK_GET_RDERR_INT_ACK(rbbm_int_ack) \
+ ((rbbm_int_ack & RBBM_INT_ACK_RDERR_INT_ACK_MASK) >> RBBM_INT_ACK_RDERR_INT_ACK_SHIFT)
+#define RBBM_INT_ACK_GET_DISPLAY_UPDATE_INT_ACK(rbbm_int_ack) \
+ ((rbbm_int_ack & RBBM_INT_ACK_DISPLAY_UPDATE_INT_ACK_MASK) >> RBBM_INT_ACK_DISPLAY_UPDATE_INT_ACK_SHIFT)
+#define RBBM_INT_ACK_GET_GUI_IDLE_INT_ACK(rbbm_int_ack) \
+ ((rbbm_int_ack & RBBM_INT_ACK_GUI_IDLE_INT_ACK_MASK) >> RBBM_INT_ACK_GUI_IDLE_INT_ACK_SHIFT)
+
+#define RBBM_INT_ACK_SET_RDERR_INT_ACK(rbbm_int_ack_reg, rderr_int_ack) \
+ rbbm_int_ack_reg = (rbbm_int_ack_reg & ~RBBM_INT_ACK_RDERR_INT_ACK_MASK) | (rderr_int_ack << RBBM_INT_ACK_RDERR_INT_ACK_SHIFT)
+#define RBBM_INT_ACK_SET_DISPLAY_UPDATE_INT_ACK(rbbm_int_ack_reg, display_update_int_ack) \
+ rbbm_int_ack_reg = (rbbm_int_ack_reg & ~RBBM_INT_ACK_DISPLAY_UPDATE_INT_ACK_MASK) | (display_update_int_ack << RBBM_INT_ACK_DISPLAY_UPDATE_INT_ACK_SHIFT)
+#define RBBM_INT_ACK_SET_GUI_IDLE_INT_ACK(rbbm_int_ack_reg, gui_idle_int_ack) \
+ rbbm_int_ack_reg = (rbbm_int_ack_reg & ~RBBM_INT_ACK_GUI_IDLE_INT_ACK_MASK) | (gui_idle_int_ack << RBBM_INT_ACK_GUI_IDLE_INT_ACK_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_int_ack_t {
+ unsigned int rderr_int_ack : RBBM_INT_ACK_RDERR_INT_ACK_SIZE;
+ unsigned int display_update_int_ack : RBBM_INT_ACK_DISPLAY_UPDATE_INT_ACK_SIZE;
+ unsigned int : 17;
+ unsigned int gui_idle_int_ack : RBBM_INT_ACK_GUI_IDLE_INT_ACK_SIZE;
+ unsigned int : 12;
+ } rbbm_int_ack_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_int_ack_t {
+ unsigned int : 12;
+ unsigned int gui_idle_int_ack : RBBM_INT_ACK_GUI_IDLE_INT_ACK_SIZE;
+ unsigned int : 17;
+ unsigned int display_update_int_ack : RBBM_INT_ACK_DISPLAY_UPDATE_INT_ACK_SIZE;
+ unsigned int rderr_int_ack : RBBM_INT_ACK_RDERR_INT_ACK_SIZE;
+ } rbbm_int_ack_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_int_ack_t f;
+} rbbm_int_ack_u;
+
+
+/*
+ * MASTER_INT_SIGNAL struct
+ */
+
+#define MASTER_INT_SIGNAL_MH_INT_STAT_SIZE 1
+#define MASTER_INT_SIGNAL_SQ_INT_STAT_SIZE 1
+#define MASTER_INT_SIGNAL_CP_INT_STAT_SIZE 1
+#define MASTER_INT_SIGNAL_RBBM_INT_STAT_SIZE 1
+
+#define MASTER_INT_SIGNAL_MH_INT_STAT_SHIFT 5
+#define MASTER_INT_SIGNAL_SQ_INT_STAT_SHIFT 26
+#define MASTER_INT_SIGNAL_CP_INT_STAT_SHIFT 30
+#define MASTER_INT_SIGNAL_RBBM_INT_STAT_SHIFT 31
+
+#define MASTER_INT_SIGNAL_MH_INT_STAT_MASK 0x00000020
+#define MASTER_INT_SIGNAL_SQ_INT_STAT_MASK 0x04000000
+#define MASTER_INT_SIGNAL_CP_INT_STAT_MASK 0x40000000
+#define MASTER_INT_SIGNAL_RBBM_INT_STAT_MASK 0x80000000
+
+#define MASTER_INT_SIGNAL_MASK \
+ (MASTER_INT_SIGNAL_MH_INT_STAT_MASK | \
+ MASTER_INT_SIGNAL_SQ_INT_STAT_MASK | \
+ MASTER_INT_SIGNAL_CP_INT_STAT_MASK | \
+ MASTER_INT_SIGNAL_RBBM_INT_STAT_MASK)
+
+#define MASTER_INT_SIGNAL(mh_int_stat, sq_int_stat, cp_int_stat, rbbm_int_stat) \
+ ((mh_int_stat << MASTER_INT_SIGNAL_MH_INT_STAT_SHIFT) | \
+ (sq_int_stat << MASTER_INT_SIGNAL_SQ_INT_STAT_SHIFT) | \
+ (cp_int_stat << MASTER_INT_SIGNAL_CP_INT_STAT_SHIFT) | \
+ (rbbm_int_stat << MASTER_INT_SIGNAL_RBBM_INT_STAT_SHIFT))
+
+#define MASTER_INT_SIGNAL_GET_MH_INT_STAT(master_int_signal) \
+ ((master_int_signal & MASTER_INT_SIGNAL_MH_INT_STAT_MASK) >> MASTER_INT_SIGNAL_MH_INT_STAT_SHIFT)
+#define MASTER_INT_SIGNAL_GET_SQ_INT_STAT(master_int_signal) \
+ ((master_int_signal & MASTER_INT_SIGNAL_SQ_INT_STAT_MASK) >> MASTER_INT_SIGNAL_SQ_INT_STAT_SHIFT)
+#define MASTER_INT_SIGNAL_GET_CP_INT_STAT(master_int_signal) \
+ ((master_int_signal & MASTER_INT_SIGNAL_CP_INT_STAT_MASK) >> MASTER_INT_SIGNAL_CP_INT_STAT_SHIFT)
+#define MASTER_INT_SIGNAL_GET_RBBM_INT_STAT(master_int_signal) \
+ ((master_int_signal & MASTER_INT_SIGNAL_RBBM_INT_STAT_MASK) >> MASTER_INT_SIGNAL_RBBM_INT_STAT_SHIFT)
+
+#define MASTER_INT_SIGNAL_SET_MH_INT_STAT(master_int_signal_reg, mh_int_stat) \
+ master_int_signal_reg = (master_int_signal_reg & ~MASTER_INT_SIGNAL_MH_INT_STAT_MASK) | (mh_int_stat << MASTER_INT_SIGNAL_MH_INT_STAT_SHIFT)
+#define MASTER_INT_SIGNAL_SET_SQ_INT_STAT(master_int_signal_reg, sq_int_stat) \
+ master_int_signal_reg = (master_int_signal_reg & ~MASTER_INT_SIGNAL_SQ_INT_STAT_MASK) | (sq_int_stat << MASTER_INT_SIGNAL_SQ_INT_STAT_SHIFT)
+#define MASTER_INT_SIGNAL_SET_CP_INT_STAT(master_int_signal_reg, cp_int_stat) \
+ master_int_signal_reg = (master_int_signal_reg & ~MASTER_INT_SIGNAL_CP_INT_STAT_MASK) | (cp_int_stat << MASTER_INT_SIGNAL_CP_INT_STAT_SHIFT)
+#define MASTER_INT_SIGNAL_SET_RBBM_INT_STAT(master_int_signal_reg, rbbm_int_stat) \
+ master_int_signal_reg = (master_int_signal_reg & ~MASTER_INT_SIGNAL_RBBM_INT_STAT_MASK) | (rbbm_int_stat << MASTER_INT_SIGNAL_RBBM_INT_STAT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _master_int_signal_t {
+ unsigned int : 5;
+ unsigned int mh_int_stat : MASTER_INT_SIGNAL_MH_INT_STAT_SIZE;
+ unsigned int : 20;
+ unsigned int sq_int_stat : MASTER_INT_SIGNAL_SQ_INT_STAT_SIZE;
+ unsigned int : 3;
+ unsigned int cp_int_stat : MASTER_INT_SIGNAL_CP_INT_STAT_SIZE;
+ unsigned int rbbm_int_stat : MASTER_INT_SIGNAL_RBBM_INT_STAT_SIZE;
+ } master_int_signal_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _master_int_signal_t {
+ unsigned int rbbm_int_stat : MASTER_INT_SIGNAL_RBBM_INT_STAT_SIZE;
+ unsigned int cp_int_stat : MASTER_INT_SIGNAL_CP_INT_STAT_SIZE;
+ unsigned int : 3;
+ unsigned int sq_int_stat : MASTER_INT_SIGNAL_SQ_INT_STAT_SIZE;
+ unsigned int : 20;
+ unsigned int mh_int_stat : MASTER_INT_SIGNAL_MH_INT_STAT_SIZE;
+ unsigned int : 5;
+ } master_int_signal_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ master_int_signal_t f;
+} master_int_signal_u;
+
+
+/*
+ * RBBM_PERFCOUNTER1_SELECT struct
+ */
+
+#define RBBM_PERFCOUNTER1_SELECT_PERF_COUNT1_SEL_SIZE 6
+
+#define RBBM_PERFCOUNTER1_SELECT_PERF_COUNT1_SEL_SHIFT 0
+
+#define RBBM_PERFCOUNTER1_SELECT_PERF_COUNT1_SEL_MASK 0x0000003f
+
+#define RBBM_PERFCOUNTER1_SELECT_MASK \
+ (RBBM_PERFCOUNTER1_SELECT_PERF_COUNT1_SEL_MASK)
+
+#define RBBM_PERFCOUNTER1_SELECT(perf_count1_sel) \
+ ((perf_count1_sel << RBBM_PERFCOUNTER1_SELECT_PERF_COUNT1_SEL_SHIFT))
+
+#define RBBM_PERFCOUNTER1_SELECT_GET_PERF_COUNT1_SEL(rbbm_perfcounter1_select) \
+ ((rbbm_perfcounter1_select & RBBM_PERFCOUNTER1_SELECT_PERF_COUNT1_SEL_MASK) >> RBBM_PERFCOUNTER1_SELECT_PERF_COUNT1_SEL_SHIFT)
+
+#define RBBM_PERFCOUNTER1_SELECT_SET_PERF_COUNT1_SEL(rbbm_perfcounter1_select_reg, perf_count1_sel) \
+ rbbm_perfcounter1_select_reg = (rbbm_perfcounter1_select_reg & ~RBBM_PERFCOUNTER1_SELECT_PERF_COUNT1_SEL_MASK) | (perf_count1_sel << RBBM_PERFCOUNTER1_SELECT_PERF_COUNT1_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_perfcounter1_select_t {
+ unsigned int perf_count1_sel : RBBM_PERFCOUNTER1_SELECT_PERF_COUNT1_SEL_SIZE;
+ unsigned int : 26;
+ } rbbm_perfcounter1_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_perfcounter1_select_t {
+ unsigned int : 26;
+ unsigned int perf_count1_sel : RBBM_PERFCOUNTER1_SELECT_PERF_COUNT1_SEL_SIZE;
+ } rbbm_perfcounter1_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_perfcounter1_select_t f;
+} rbbm_perfcounter1_select_u;
+
+
+/*
+ * RBBM_PERFCOUNTER1_LO struct
+ */
+
+#define RBBM_PERFCOUNTER1_LO_PERF_COUNT1_LO_SIZE 32
+
+#define RBBM_PERFCOUNTER1_LO_PERF_COUNT1_LO_SHIFT 0
+
+#define RBBM_PERFCOUNTER1_LO_PERF_COUNT1_LO_MASK 0xffffffff
+
+#define RBBM_PERFCOUNTER1_LO_MASK \
+ (RBBM_PERFCOUNTER1_LO_PERF_COUNT1_LO_MASK)
+
+#define RBBM_PERFCOUNTER1_LO(perf_count1_lo) \
+ ((perf_count1_lo << RBBM_PERFCOUNTER1_LO_PERF_COUNT1_LO_SHIFT))
+
+#define RBBM_PERFCOUNTER1_LO_GET_PERF_COUNT1_LO(rbbm_perfcounter1_lo) \
+ ((rbbm_perfcounter1_lo & RBBM_PERFCOUNTER1_LO_PERF_COUNT1_LO_MASK) >> RBBM_PERFCOUNTER1_LO_PERF_COUNT1_LO_SHIFT)
+
+#define RBBM_PERFCOUNTER1_LO_SET_PERF_COUNT1_LO(rbbm_perfcounter1_lo_reg, perf_count1_lo) \
+ rbbm_perfcounter1_lo_reg = (rbbm_perfcounter1_lo_reg & ~RBBM_PERFCOUNTER1_LO_PERF_COUNT1_LO_MASK) | (perf_count1_lo << RBBM_PERFCOUNTER1_LO_PERF_COUNT1_LO_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_perfcounter1_lo_t {
+ unsigned int perf_count1_lo : RBBM_PERFCOUNTER1_LO_PERF_COUNT1_LO_SIZE;
+ } rbbm_perfcounter1_lo_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_perfcounter1_lo_t {
+ unsigned int perf_count1_lo : RBBM_PERFCOUNTER1_LO_PERF_COUNT1_LO_SIZE;
+ } rbbm_perfcounter1_lo_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_perfcounter1_lo_t f;
+} rbbm_perfcounter1_lo_u;
+
+
+/*
+ * RBBM_PERFCOUNTER1_HI struct
+ */
+
+#define RBBM_PERFCOUNTER1_HI_PERF_COUNT1_HI_SIZE 16
+
+#define RBBM_PERFCOUNTER1_HI_PERF_COUNT1_HI_SHIFT 0
+
+#define RBBM_PERFCOUNTER1_HI_PERF_COUNT1_HI_MASK 0x0000ffff
+
+#define RBBM_PERFCOUNTER1_HI_MASK \
+ (RBBM_PERFCOUNTER1_HI_PERF_COUNT1_HI_MASK)
+
+#define RBBM_PERFCOUNTER1_HI(perf_count1_hi) \
+ ((perf_count1_hi << RBBM_PERFCOUNTER1_HI_PERF_COUNT1_HI_SHIFT))
+
+#define RBBM_PERFCOUNTER1_HI_GET_PERF_COUNT1_HI(rbbm_perfcounter1_hi) \
+ ((rbbm_perfcounter1_hi & RBBM_PERFCOUNTER1_HI_PERF_COUNT1_HI_MASK) >> RBBM_PERFCOUNTER1_HI_PERF_COUNT1_HI_SHIFT)
+
+#define RBBM_PERFCOUNTER1_HI_SET_PERF_COUNT1_HI(rbbm_perfcounter1_hi_reg, perf_count1_hi) \
+ rbbm_perfcounter1_hi_reg = (rbbm_perfcounter1_hi_reg & ~RBBM_PERFCOUNTER1_HI_PERF_COUNT1_HI_MASK) | (perf_count1_hi << RBBM_PERFCOUNTER1_HI_PERF_COUNT1_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rbbm_perfcounter1_hi_t {
+ unsigned int perf_count1_hi : RBBM_PERFCOUNTER1_HI_PERF_COUNT1_HI_SIZE;
+ unsigned int : 16;
+ } rbbm_perfcounter1_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rbbm_perfcounter1_hi_t {
+ unsigned int : 16;
+ unsigned int perf_count1_hi : RBBM_PERFCOUNTER1_HI_PERF_COUNT1_HI_SIZE;
+ } rbbm_perfcounter1_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rbbm_perfcounter1_hi_t f;
+} rbbm_perfcounter1_hi_u;
+
+
+#endif
+
+
+#if !defined (_MH_FIDDLE_H)
+#define _MH_FIDDLE_H
+
+/*******************************************************
+ * Enums
+ *******************************************************/
+
+
+/*******************************************************
+ * Values
+ *******************************************************/
+
+
+/*******************************************************
+ * Structures
+ *******************************************************/
+
+/*
+ * MH_ARBITER_CONFIG struct
+ */
+
+#define MH_ARBITER_CONFIG_SAME_PAGE_LIMIT_SIZE 6
+#define MH_ARBITER_CONFIG_SAME_PAGE_GRANULARITY_SIZE 1
+#define MH_ARBITER_CONFIG_L1_ARB_ENABLE_SIZE 1
+#define MH_ARBITER_CONFIG_L1_ARB_HOLD_ENABLE_SIZE 1
+#define MH_ARBITER_CONFIG_L2_ARB_CONTROL_SIZE 1
+#define MH_ARBITER_CONFIG_PAGE_SIZE_SIZE 3
+#define MH_ARBITER_CONFIG_TC_REORDER_ENABLE_SIZE 1
+#define MH_ARBITER_CONFIG_TC_ARB_HOLD_ENABLE_SIZE 1
+#define MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_ENABLE_SIZE 1
+#define MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_SIZE 6
+#define MH_ARBITER_CONFIG_CP_CLNT_ENABLE_SIZE 1
+#define MH_ARBITER_CONFIG_VGT_CLNT_ENABLE_SIZE 1
+#define MH_ARBITER_CONFIG_TC_CLNT_ENABLE_SIZE 1
+#define MH_ARBITER_CONFIG_RB_CLNT_ENABLE_SIZE 1
+#define MH_ARBITER_CONFIG_PA_CLNT_ENABLE_SIZE 1
+
+#define MH_ARBITER_CONFIG_SAME_PAGE_LIMIT_SHIFT 0
+#define MH_ARBITER_CONFIG_SAME_PAGE_GRANULARITY_SHIFT 6
+#define MH_ARBITER_CONFIG_L1_ARB_ENABLE_SHIFT 7
+#define MH_ARBITER_CONFIG_L1_ARB_HOLD_ENABLE_SHIFT 8
+#define MH_ARBITER_CONFIG_L2_ARB_CONTROL_SHIFT 9
+#define MH_ARBITER_CONFIG_PAGE_SIZE_SHIFT 10
+#define MH_ARBITER_CONFIG_TC_REORDER_ENABLE_SHIFT 13
+#define MH_ARBITER_CONFIG_TC_ARB_HOLD_ENABLE_SHIFT 14
+#define MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_ENABLE_SHIFT 15
+#define MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_SHIFT 16
+#define MH_ARBITER_CONFIG_CP_CLNT_ENABLE_SHIFT 22
+#define MH_ARBITER_CONFIG_VGT_CLNT_ENABLE_SHIFT 23
+#define MH_ARBITER_CONFIG_TC_CLNT_ENABLE_SHIFT 24
+#define MH_ARBITER_CONFIG_RB_CLNT_ENABLE_SHIFT 25
+#define MH_ARBITER_CONFIG_PA_CLNT_ENABLE_SHIFT 26
+
+#define MH_ARBITER_CONFIG_SAME_PAGE_LIMIT_MASK 0x0000003f
+#define MH_ARBITER_CONFIG_SAME_PAGE_GRANULARITY_MASK 0x00000040
+#define MH_ARBITER_CONFIG_L1_ARB_ENABLE_MASK 0x00000080
+#define MH_ARBITER_CONFIG_L1_ARB_HOLD_ENABLE_MASK 0x00000100
+#define MH_ARBITER_CONFIG_L2_ARB_CONTROL_MASK 0x00000200
+#define MH_ARBITER_CONFIG_PAGE_SIZE_MASK 0x00001c00
+#define MH_ARBITER_CONFIG_TC_REORDER_ENABLE_MASK 0x00002000
+#define MH_ARBITER_CONFIG_TC_ARB_HOLD_ENABLE_MASK 0x00004000
+#define MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_ENABLE_MASK 0x00008000
+#define MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_MASK 0x003f0000
+#define MH_ARBITER_CONFIG_CP_CLNT_ENABLE_MASK 0x00400000
+#define MH_ARBITER_CONFIG_VGT_CLNT_ENABLE_MASK 0x00800000
+#define MH_ARBITER_CONFIG_TC_CLNT_ENABLE_MASK 0x01000000
+#define MH_ARBITER_CONFIG_RB_CLNT_ENABLE_MASK 0x02000000
+#define MH_ARBITER_CONFIG_PA_CLNT_ENABLE_MASK 0x04000000
+
+#define MH_ARBITER_CONFIG_MASK \
+ (MH_ARBITER_CONFIG_SAME_PAGE_LIMIT_MASK | \
+ MH_ARBITER_CONFIG_SAME_PAGE_GRANULARITY_MASK | \
+ MH_ARBITER_CONFIG_L1_ARB_ENABLE_MASK | \
+ MH_ARBITER_CONFIG_L1_ARB_HOLD_ENABLE_MASK | \
+ MH_ARBITER_CONFIG_L2_ARB_CONTROL_MASK | \
+ MH_ARBITER_CONFIG_PAGE_SIZE_MASK | \
+ MH_ARBITER_CONFIG_TC_REORDER_ENABLE_MASK | \
+ MH_ARBITER_CONFIG_TC_ARB_HOLD_ENABLE_MASK | \
+ MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_ENABLE_MASK | \
+ MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_MASK | \
+ MH_ARBITER_CONFIG_CP_CLNT_ENABLE_MASK | \
+ MH_ARBITER_CONFIG_VGT_CLNT_ENABLE_MASK | \
+ MH_ARBITER_CONFIG_TC_CLNT_ENABLE_MASK | \
+ MH_ARBITER_CONFIG_RB_CLNT_ENABLE_MASK | \
+ MH_ARBITER_CONFIG_PA_CLNT_ENABLE_MASK)
+
+#define MH_ARBITER_CONFIG(same_page_limit, same_page_granularity, l1_arb_enable, l1_arb_hold_enable, l2_arb_control, page_size, tc_reorder_enable, tc_arb_hold_enable, in_flight_limit_enable, in_flight_limit, cp_clnt_enable, vgt_clnt_enable, tc_clnt_enable, rb_clnt_enable, pa_clnt_enable) \
+ ((same_page_limit << MH_ARBITER_CONFIG_SAME_PAGE_LIMIT_SHIFT) | \
+ (same_page_granularity << MH_ARBITER_CONFIG_SAME_PAGE_GRANULARITY_SHIFT) | \
+ (l1_arb_enable << MH_ARBITER_CONFIG_L1_ARB_ENABLE_SHIFT) | \
+ (l1_arb_hold_enable << MH_ARBITER_CONFIG_L1_ARB_HOLD_ENABLE_SHIFT) | \
+ (l2_arb_control << MH_ARBITER_CONFIG_L2_ARB_CONTROL_SHIFT) | \
+ (page_size << MH_ARBITER_CONFIG_PAGE_SIZE_SHIFT) | \
+ (tc_reorder_enable << MH_ARBITER_CONFIG_TC_REORDER_ENABLE_SHIFT) | \
+ (tc_arb_hold_enable << MH_ARBITER_CONFIG_TC_ARB_HOLD_ENABLE_SHIFT) | \
+ (in_flight_limit_enable << MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_ENABLE_SHIFT) | \
+ (in_flight_limit << MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_SHIFT) | \
+ (cp_clnt_enable << MH_ARBITER_CONFIG_CP_CLNT_ENABLE_SHIFT) | \
+ (vgt_clnt_enable << MH_ARBITER_CONFIG_VGT_CLNT_ENABLE_SHIFT) | \
+ (tc_clnt_enable << MH_ARBITER_CONFIG_TC_CLNT_ENABLE_SHIFT) | \
+ (rb_clnt_enable << MH_ARBITER_CONFIG_RB_CLNT_ENABLE_SHIFT) | \
+ (pa_clnt_enable << MH_ARBITER_CONFIG_PA_CLNT_ENABLE_SHIFT))
+
+#define MH_ARBITER_CONFIG_GET_SAME_PAGE_LIMIT(mh_arbiter_config) \
+ ((mh_arbiter_config & MH_ARBITER_CONFIG_SAME_PAGE_LIMIT_MASK) >> MH_ARBITER_CONFIG_SAME_PAGE_LIMIT_SHIFT)
+#define MH_ARBITER_CONFIG_GET_SAME_PAGE_GRANULARITY(mh_arbiter_config) \
+ ((mh_arbiter_config & MH_ARBITER_CONFIG_SAME_PAGE_GRANULARITY_MASK) >> MH_ARBITER_CONFIG_SAME_PAGE_GRANULARITY_SHIFT)
+#define MH_ARBITER_CONFIG_GET_L1_ARB_ENABLE(mh_arbiter_config) \
+ ((mh_arbiter_config & MH_ARBITER_CONFIG_L1_ARB_ENABLE_MASK) >> MH_ARBITER_CONFIG_L1_ARB_ENABLE_SHIFT)
+#define MH_ARBITER_CONFIG_GET_L1_ARB_HOLD_ENABLE(mh_arbiter_config) \
+ ((mh_arbiter_config & MH_ARBITER_CONFIG_L1_ARB_HOLD_ENABLE_MASK) >> MH_ARBITER_CONFIG_L1_ARB_HOLD_ENABLE_SHIFT)
+#define MH_ARBITER_CONFIG_GET_L2_ARB_CONTROL(mh_arbiter_config) \
+ ((mh_arbiter_config & MH_ARBITER_CONFIG_L2_ARB_CONTROL_MASK) >> MH_ARBITER_CONFIG_L2_ARB_CONTROL_SHIFT)
+#define MH_ARBITER_CONFIG_GET_PAGE_SIZE(mh_arbiter_config) \
+ ((mh_arbiter_config & MH_ARBITER_CONFIG_PAGE_SIZE_MASK) >> MH_ARBITER_CONFIG_PAGE_SIZE_SHIFT)
+#define MH_ARBITER_CONFIG_GET_TC_REORDER_ENABLE(mh_arbiter_config) \
+ ((mh_arbiter_config & MH_ARBITER_CONFIG_TC_REORDER_ENABLE_MASK) >> MH_ARBITER_CONFIG_TC_REORDER_ENABLE_SHIFT)
+#define MH_ARBITER_CONFIG_GET_TC_ARB_HOLD_ENABLE(mh_arbiter_config) \
+ ((mh_arbiter_config & MH_ARBITER_CONFIG_TC_ARB_HOLD_ENABLE_MASK) >> MH_ARBITER_CONFIG_TC_ARB_HOLD_ENABLE_SHIFT)
+#define MH_ARBITER_CONFIG_GET_IN_FLIGHT_LIMIT_ENABLE(mh_arbiter_config) \
+ ((mh_arbiter_config & MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_ENABLE_MASK) >> MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_ENABLE_SHIFT)
+#define MH_ARBITER_CONFIG_GET_IN_FLIGHT_LIMIT(mh_arbiter_config) \
+ ((mh_arbiter_config & MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_MASK) >> MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_SHIFT)
+#define MH_ARBITER_CONFIG_GET_CP_CLNT_ENABLE(mh_arbiter_config) \
+ ((mh_arbiter_config & MH_ARBITER_CONFIG_CP_CLNT_ENABLE_MASK) >> MH_ARBITER_CONFIG_CP_CLNT_ENABLE_SHIFT)
+#define MH_ARBITER_CONFIG_GET_VGT_CLNT_ENABLE(mh_arbiter_config) \
+ ((mh_arbiter_config & MH_ARBITER_CONFIG_VGT_CLNT_ENABLE_MASK) >> MH_ARBITER_CONFIG_VGT_CLNT_ENABLE_SHIFT)
+#define MH_ARBITER_CONFIG_GET_TC_CLNT_ENABLE(mh_arbiter_config) \
+ ((mh_arbiter_config & MH_ARBITER_CONFIG_TC_CLNT_ENABLE_MASK) >> MH_ARBITER_CONFIG_TC_CLNT_ENABLE_SHIFT)
+#define MH_ARBITER_CONFIG_GET_RB_CLNT_ENABLE(mh_arbiter_config) \
+ ((mh_arbiter_config & MH_ARBITER_CONFIG_RB_CLNT_ENABLE_MASK) >> MH_ARBITER_CONFIG_RB_CLNT_ENABLE_SHIFT)
+#define MH_ARBITER_CONFIG_GET_PA_CLNT_ENABLE(mh_arbiter_config) \
+ ((mh_arbiter_config & MH_ARBITER_CONFIG_PA_CLNT_ENABLE_MASK) >> MH_ARBITER_CONFIG_PA_CLNT_ENABLE_SHIFT)
+
+#define MH_ARBITER_CONFIG_SET_SAME_PAGE_LIMIT(mh_arbiter_config_reg, same_page_limit) \
+ mh_arbiter_config_reg = (mh_arbiter_config_reg & ~MH_ARBITER_CONFIG_SAME_PAGE_LIMIT_MASK) | (same_page_limit << MH_ARBITER_CONFIG_SAME_PAGE_LIMIT_SHIFT)
+#define MH_ARBITER_CONFIG_SET_SAME_PAGE_GRANULARITY(mh_arbiter_config_reg, same_page_granularity) \
+ mh_arbiter_config_reg = (mh_arbiter_config_reg & ~MH_ARBITER_CONFIG_SAME_PAGE_GRANULARITY_MASK) | (same_page_granularity << MH_ARBITER_CONFIG_SAME_PAGE_GRANULARITY_SHIFT)
+#define MH_ARBITER_CONFIG_SET_L1_ARB_ENABLE(mh_arbiter_config_reg, l1_arb_enable) \
+ mh_arbiter_config_reg = (mh_arbiter_config_reg & ~MH_ARBITER_CONFIG_L1_ARB_ENABLE_MASK) | (l1_arb_enable << MH_ARBITER_CONFIG_L1_ARB_ENABLE_SHIFT)
+#define MH_ARBITER_CONFIG_SET_L1_ARB_HOLD_ENABLE(mh_arbiter_config_reg, l1_arb_hold_enable) \
+ mh_arbiter_config_reg = (mh_arbiter_config_reg & ~MH_ARBITER_CONFIG_L1_ARB_HOLD_ENABLE_MASK) | (l1_arb_hold_enable << MH_ARBITER_CONFIG_L1_ARB_HOLD_ENABLE_SHIFT)
+#define MH_ARBITER_CONFIG_SET_L2_ARB_CONTROL(mh_arbiter_config_reg, l2_arb_control) \
+ mh_arbiter_config_reg = (mh_arbiter_config_reg & ~MH_ARBITER_CONFIG_L2_ARB_CONTROL_MASK) | (l2_arb_control << MH_ARBITER_CONFIG_L2_ARB_CONTROL_SHIFT)
+#define MH_ARBITER_CONFIG_SET_PAGE_SIZE(mh_arbiter_config_reg, page_size) \
+ mh_arbiter_config_reg = (mh_arbiter_config_reg & ~MH_ARBITER_CONFIG_PAGE_SIZE_MASK) | (page_size << MH_ARBITER_CONFIG_PAGE_SIZE_SHIFT)
+#define MH_ARBITER_CONFIG_SET_TC_REORDER_ENABLE(mh_arbiter_config_reg, tc_reorder_enable) \
+ mh_arbiter_config_reg = (mh_arbiter_config_reg & ~MH_ARBITER_CONFIG_TC_REORDER_ENABLE_MASK) | (tc_reorder_enable << MH_ARBITER_CONFIG_TC_REORDER_ENABLE_SHIFT)
+#define MH_ARBITER_CONFIG_SET_TC_ARB_HOLD_ENABLE(mh_arbiter_config_reg, tc_arb_hold_enable) \
+ mh_arbiter_config_reg = (mh_arbiter_config_reg & ~MH_ARBITER_CONFIG_TC_ARB_HOLD_ENABLE_MASK) | (tc_arb_hold_enable << MH_ARBITER_CONFIG_TC_ARB_HOLD_ENABLE_SHIFT)
+#define MH_ARBITER_CONFIG_SET_IN_FLIGHT_LIMIT_ENABLE(mh_arbiter_config_reg, in_flight_limit_enable) \
+ mh_arbiter_config_reg = (mh_arbiter_config_reg & ~MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_ENABLE_MASK) | (in_flight_limit_enable << MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_ENABLE_SHIFT)
+#define MH_ARBITER_CONFIG_SET_IN_FLIGHT_LIMIT(mh_arbiter_config_reg, in_flight_limit) \
+ mh_arbiter_config_reg = (mh_arbiter_config_reg & ~MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_MASK) | (in_flight_limit << MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_SHIFT)
+#define MH_ARBITER_CONFIG_SET_CP_CLNT_ENABLE(mh_arbiter_config_reg, cp_clnt_enable) \
+ mh_arbiter_config_reg = (mh_arbiter_config_reg & ~MH_ARBITER_CONFIG_CP_CLNT_ENABLE_MASK) | (cp_clnt_enable << MH_ARBITER_CONFIG_CP_CLNT_ENABLE_SHIFT)
+#define MH_ARBITER_CONFIG_SET_VGT_CLNT_ENABLE(mh_arbiter_config_reg, vgt_clnt_enable) \
+ mh_arbiter_config_reg = (mh_arbiter_config_reg & ~MH_ARBITER_CONFIG_VGT_CLNT_ENABLE_MASK) | (vgt_clnt_enable << MH_ARBITER_CONFIG_VGT_CLNT_ENABLE_SHIFT)
+#define MH_ARBITER_CONFIG_SET_TC_CLNT_ENABLE(mh_arbiter_config_reg, tc_clnt_enable) \
+ mh_arbiter_config_reg = (mh_arbiter_config_reg & ~MH_ARBITER_CONFIG_TC_CLNT_ENABLE_MASK) | (tc_clnt_enable << MH_ARBITER_CONFIG_TC_CLNT_ENABLE_SHIFT)
+#define MH_ARBITER_CONFIG_SET_RB_CLNT_ENABLE(mh_arbiter_config_reg, rb_clnt_enable) \
+ mh_arbiter_config_reg = (mh_arbiter_config_reg & ~MH_ARBITER_CONFIG_RB_CLNT_ENABLE_MASK) | (rb_clnt_enable << MH_ARBITER_CONFIG_RB_CLNT_ENABLE_SHIFT)
+#define MH_ARBITER_CONFIG_SET_PA_CLNT_ENABLE(mh_arbiter_config_reg, pa_clnt_enable) \
+ mh_arbiter_config_reg = (mh_arbiter_config_reg & ~MH_ARBITER_CONFIG_PA_CLNT_ENABLE_MASK) | (pa_clnt_enable << MH_ARBITER_CONFIG_PA_CLNT_ENABLE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_arbiter_config_t {
+ unsigned int same_page_limit : MH_ARBITER_CONFIG_SAME_PAGE_LIMIT_SIZE;
+ unsigned int same_page_granularity : MH_ARBITER_CONFIG_SAME_PAGE_GRANULARITY_SIZE;
+ unsigned int l1_arb_enable : MH_ARBITER_CONFIG_L1_ARB_ENABLE_SIZE;
+ unsigned int l1_arb_hold_enable : MH_ARBITER_CONFIG_L1_ARB_HOLD_ENABLE_SIZE;
+ unsigned int l2_arb_control : MH_ARBITER_CONFIG_L2_ARB_CONTROL_SIZE;
+ unsigned int page_size : MH_ARBITER_CONFIG_PAGE_SIZE_SIZE;
+ unsigned int tc_reorder_enable : MH_ARBITER_CONFIG_TC_REORDER_ENABLE_SIZE;
+ unsigned int tc_arb_hold_enable : MH_ARBITER_CONFIG_TC_ARB_HOLD_ENABLE_SIZE;
+ unsigned int in_flight_limit_enable : MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_ENABLE_SIZE;
+ unsigned int in_flight_limit : MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_SIZE;
+ unsigned int cp_clnt_enable : MH_ARBITER_CONFIG_CP_CLNT_ENABLE_SIZE;
+ unsigned int vgt_clnt_enable : MH_ARBITER_CONFIG_VGT_CLNT_ENABLE_SIZE;
+ unsigned int tc_clnt_enable : MH_ARBITER_CONFIG_TC_CLNT_ENABLE_SIZE;
+ unsigned int rb_clnt_enable : MH_ARBITER_CONFIG_RB_CLNT_ENABLE_SIZE;
+ unsigned int pa_clnt_enable : MH_ARBITER_CONFIG_PA_CLNT_ENABLE_SIZE;
+ unsigned int : 5;
+ } mh_arbiter_config_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_arbiter_config_t {
+ unsigned int : 5;
+ unsigned int pa_clnt_enable : MH_ARBITER_CONFIG_PA_CLNT_ENABLE_SIZE;
+ unsigned int rb_clnt_enable : MH_ARBITER_CONFIG_RB_CLNT_ENABLE_SIZE;
+ unsigned int tc_clnt_enable : MH_ARBITER_CONFIG_TC_CLNT_ENABLE_SIZE;
+ unsigned int vgt_clnt_enable : MH_ARBITER_CONFIG_VGT_CLNT_ENABLE_SIZE;
+ unsigned int cp_clnt_enable : MH_ARBITER_CONFIG_CP_CLNT_ENABLE_SIZE;
+ unsigned int in_flight_limit : MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_SIZE;
+ unsigned int in_flight_limit_enable : MH_ARBITER_CONFIG_IN_FLIGHT_LIMIT_ENABLE_SIZE;
+ unsigned int tc_arb_hold_enable : MH_ARBITER_CONFIG_TC_ARB_HOLD_ENABLE_SIZE;
+ unsigned int tc_reorder_enable : MH_ARBITER_CONFIG_TC_REORDER_ENABLE_SIZE;
+ unsigned int page_size : MH_ARBITER_CONFIG_PAGE_SIZE_SIZE;
+ unsigned int l2_arb_control : MH_ARBITER_CONFIG_L2_ARB_CONTROL_SIZE;
+ unsigned int l1_arb_hold_enable : MH_ARBITER_CONFIG_L1_ARB_HOLD_ENABLE_SIZE;
+ unsigned int l1_arb_enable : MH_ARBITER_CONFIG_L1_ARB_ENABLE_SIZE;
+ unsigned int same_page_granularity : MH_ARBITER_CONFIG_SAME_PAGE_GRANULARITY_SIZE;
+ unsigned int same_page_limit : MH_ARBITER_CONFIG_SAME_PAGE_LIMIT_SIZE;
+ } mh_arbiter_config_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_arbiter_config_t f;
+} mh_arbiter_config_u;
+
+
+/*
+ * MH_CLNT_AXI_ID_REUSE struct
+ */
+
+#define MH_CLNT_AXI_ID_REUSE_CPw_ID_SIZE 3
+#define MH_CLNT_AXI_ID_REUSE_RESERVED1_SIZE 1
+#define MH_CLNT_AXI_ID_REUSE_RBw_ID_SIZE 3
+#define MH_CLNT_AXI_ID_REUSE_RESERVED2_SIZE 1
+#define MH_CLNT_AXI_ID_REUSE_MMUr_ID_SIZE 3
+#define MH_CLNT_AXI_ID_REUSE_RESERVED3_SIZE 1
+#define MH_CLNT_AXI_ID_REUSE_PAw_ID_SIZE 3
+
+#define MH_CLNT_AXI_ID_REUSE_CPw_ID_SHIFT 0
+#define MH_CLNT_AXI_ID_REUSE_RESERVED1_SHIFT 3
+#define MH_CLNT_AXI_ID_REUSE_RBw_ID_SHIFT 4
+#define MH_CLNT_AXI_ID_REUSE_RESERVED2_SHIFT 7
+#define MH_CLNT_AXI_ID_REUSE_MMUr_ID_SHIFT 8
+#define MH_CLNT_AXI_ID_REUSE_RESERVED3_SHIFT 11
+#define MH_CLNT_AXI_ID_REUSE_PAw_ID_SHIFT 12
+
+#define MH_CLNT_AXI_ID_REUSE_CPw_ID_MASK 0x00000007
+#define MH_CLNT_AXI_ID_REUSE_RESERVED1_MASK 0x00000008
+#define MH_CLNT_AXI_ID_REUSE_RBw_ID_MASK 0x00000070
+#define MH_CLNT_AXI_ID_REUSE_RESERVED2_MASK 0x00000080
+#define MH_CLNT_AXI_ID_REUSE_MMUr_ID_MASK 0x00000700
+#define MH_CLNT_AXI_ID_REUSE_RESERVED3_MASK 0x00000800
+#define MH_CLNT_AXI_ID_REUSE_PAw_ID_MASK 0x00007000
+
+#define MH_CLNT_AXI_ID_REUSE_MASK \
+ (MH_CLNT_AXI_ID_REUSE_CPw_ID_MASK | \
+ MH_CLNT_AXI_ID_REUSE_RESERVED1_MASK | \
+ MH_CLNT_AXI_ID_REUSE_RBw_ID_MASK | \
+ MH_CLNT_AXI_ID_REUSE_RESERVED2_MASK | \
+ MH_CLNT_AXI_ID_REUSE_MMUr_ID_MASK | \
+ MH_CLNT_AXI_ID_REUSE_RESERVED3_MASK | \
+ MH_CLNT_AXI_ID_REUSE_PAw_ID_MASK)
+
+#define MH_CLNT_AXI_ID_REUSE(cpw_id, reserved1, rbw_id, reserved2, mmur_id, reserved3, paw_id) \
+ ((cpw_id << MH_CLNT_AXI_ID_REUSE_CPw_ID_SHIFT) | \
+ (reserved1 << MH_CLNT_AXI_ID_REUSE_RESERVED1_SHIFT) | \
+ (rbw_id << MH_CLNT_AXI_ID_REUSE_RBw_ID_SHIFT) | \
+ (reserved2 << MH_CLNT_AXI_ID_REUSE_RESERVED2_SHIFT) | \
+ (mmur_id << MH_CLNT_AXI_ID_REUSE_MMUr_ID_SHIFT) | \
+ (reserved3 << MH_CLNT_AXI_ID_REUSE_RESERVED3_SHIFT) | \
+ (paw_id << MH_CLNT_AXI_ID_REUSE_PAw_ID_SHIFT))
+
+#define MH_CLNT_AXI_ID_REUSE_GET_CPw_ID(mh_clnt_axi_id_reuse) \
+ ((mh_clnt_axi_id_reuse & MH_CLNT_AXI_ID_REUSE_CPw_ID_MASK) >> MH_CLNT_AXI_ID_REUSE_CPw_ID_SHIFT)
+#define MH_CLNT_AXI_ID_REUSE_GET_RESERVED1(mh_clnt_axi_id_reuse) \
+ ((mh_clnt_axi_id_reuse & MH_CLNT_AXI_ID_REUSE_RESERVED1_MASK) >> MH_CLNT_AXI_ID_REUSE_RESERVED1_SHIFT)
+#define MH_CLNT_AXI_ID_REUSE_GET_RBw_ID(mh_clnt_axi_id_reuse) \
+ ((mh_clnt_axi_id_reuse & MH_CLNT_AXI_ID_REUSE_RBw_ID_MASK) >> MH_CLNT_AXI_ID_REUSE_RBw_ID_SHIFT)
+#define MH_CLNT_AXI_ID_REUSE_GET_RESERVED2(mh_clnt_axi_id_reuse) \
+ ((mh_clnt_axi_id_reuse & MH_CLNT_AXI_ID_REUSE_RESERVED2_MASK) >> MH_CLNT_AXI_ID_REUSE_RESERVED2_SHIFT)
+#define MH_CLNT_AXI_ID_REUSE_GET_MMUr_ID(mh_clnt_axi_id_reuse) \
+ ((mh_clnt_axi_id_reuse & MH_CLNT_AXI_ID_REUSE_MMUr_ID_MASK) >> MH_CLNT_AXI_ID_REUSE_MMUr_ID_SHIFT)
+#define MH_CLNT_AXI_ID_REUSE_GET_RESERVED3(mh_clnt_axi_id_reuse) \
+ ((mh_clnt_axi_id_reuse & MH_CLNT_AXI_ID_REUSE_RESERVED3_MASK) >> MH_CLNT_AXI_ID_REUSE_RESERVED3_SHIFT)
+#define MH_CLNT_AXI_ID_REUSE_GET_PAw_ID(mh_clnt_axi_id_reuse) \
+ ((mh_clnt_axi_id_reuse & MH_CLNT_AXI_ID_REUSE_PAw_ID_MASK) >> MH_CLNT_AXI_ID_REUSE_PAw_ID_SHIFT)
+
+#define MH_CLNT_AXI_ID_REUSE_SET_CPw_ID(mh_clnt_axi_id_reuse_reg, cpw_id) \
+ mh_clnt_axi_id_reuse_reg = (mh_clnt_axi_id_reuse_reg & ~MH_CLNT_AXI_ID_REUSE_CPw_ID_MASK) | (cpw_id << MH_CLNT_AXI_ID_REUSE_CPw_ID_SHIFT)
+#define MH_CLNT_AXI_ID_REUSE_SET_RESERVED1(mh_clnt_axi_id_reuse_reg, reserved1) \
+ mh_clnt_axi_id_reuse_reg = (mh_clnt_axi_id_reuse_reg & ~MH_CLNT_AXI_ID_REUSE_RESERVED1_MASK) | (reserved1 << MH_CLNT_AXI_ID_REUSE_RESERVED1_SHIFT)
+#define MH_CLNT_AXI_ID_REUSE_SET_RBw_ID(mh_clnt_axi_id_reuse_reg, rbw_id) \
+ mh_clnt_axi_id_reuse_reg = (mh_clnt_axi_id_reuse_reg & ~MH_CLNT_AXI_ID_REUSE_RBw_ID_MASK) | (rbw_id << MH_CLNT_AXI_ID_REUSE_RBw_ID_SHIFT)
+#define MH_CLNT_AXI_ID_REUSE_SET_RESERVED2(mh_clnt_axi_id_reuse_reg, reserved2) \
+ mh_clnt_axi_id_reuse_reg = (mh_clnt_axi_id_reuse_reg & ~MH_CLNT_AXI_ID_REUSE_RESERVED2_MASK) | (reserved2 << MH_CLNT_AXI_ID_REUSE_RESERVED2_SHIFT)
+#define MH_CLNT_AXI_ID_REUSE_SET_MMUr_ID(mh_clnt_axi_id_reuse_reg, mmur_id) \
+ mh_clnt_axi_id_reuse_reg = (mh_clnt_axi_id_reuse_reg & ~MH_CLNT_AXI_ID_REUSE_MMUr_ID_MASK) | (mmur_id << MH_CLNT_AXI_ID_REUSE_MMUr_ID_SHIFT)
+#define MH_CLNT_AXI_ID_REUSE_SET_RESERVED3(mh_clnt_axi_id_reuse_reg, reserved3) \
+ mh_clnt_axi_id_reuse_reg = (mh_clnt_axi_id_reuse_reg & ~MH_CLNT_AXI_ID_REUSE_RESERVED3_MASK) | (reserved3 << MH_CLNT_AXI_ID_REUSE_RESERVED3_SHIFT)
+#define MH_CLNT_AXI_ID_REUSE_SET_PAw_ID(mh_clnt_axi_id_reuse_reg, paw_id) \
+ mh_clnt_axi_id_reuse_reg = (mh_clnt_axi_id_reuse_reg & ~MH_CLNT_AXI_ID_REUSE_PAw_ID_MASK) | (paw_id << MH_CLNT_AXI_ID_REUSE_PAw_ID_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_clnt_axi_id_reuse_t {
+ unsigned int cpw_id : MH_CLNT_AXI_ID_REUSE_CPw_ID_SIZE;
+ unsigned int reserved1 : MH_CLNT_AXI_ID_REUSE_RESERVED1_SIZE;
+ unsigned int rbw_id : MH_CLNT_AXI_ID_REUSE_RBw_ID_SIZE;
+ unsigned int reserved2 : MH_CLNT_AXI_ID_REUSE_RESERVED2_SIZE;
+ unsigned int mmur_id : MH_CLNT_AXI_ID_REUSE_MMUr_ID_SIZE;
+ unsigned int reserved3 : MH_CLNT_AXI_ID_REUSE_RESERVED3_SIZE;
+ unsigned int paw_id : MH_CLNT_AXI_ID_REUSE_PAw_ID_SIZE;
+ unsigned int : 17;
+ } mh_clnt_axi_id_reuse_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_clnt_axi_id_reuse_t {
+ unsigned int : 17;
+ unsigned int paw_id : MH_CLNT_AXI_ID_REUSE_PAw_ID_SIZE;
+ unsigned int reserved3 : MH_CLNT_AXI_ID_REUSE_RESERVED3_SIZE;
+ unsigned int mmur_id : MH_CLNT_AXI_ID_REUSE_MMUr_ID_SIZE;
+ unsigned int reserved2 : MH_CLNT_AXI_ID_REUSE_RESERVED2_SIZE;
+ unsigned int rbw_id : MH_CLNT_AXI_ID_REUSE_RBw_ID_SIZE;
+ unsigned int reserved1 : MH_CLNT_AXI_ID_REUSE_RESERVED1_SIZE;
+ unsigned int cpw_id : MH_CLNT_AXI_ID_REUSE_CPw_ID_SIZE;
+ } mh_clnt_axi_id_reuse_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_clnt_axi_id_reuse_t f;
+} mh_clnt_axi_id_reuse_u;
+
+
+/*
+ * MH_INTERRUPT_MASK struct
+ */
+
+#define MH_INTERRUPT_MASK_AXI_READ_ERROR_SIZE 1
+#define MH_INTERRUPT_MASK_AXI_WRITE_ERROR_SIZE 1
+#define MH_INTERRUPT_MASK_MMU_PAGE_FAULT_SIZE 1
+
+#define MH_INTERRUPT_MASK_AXI_READ_ERROR_SHIFT 0
+#define MH_INTERRUPT_MASK_AXI_WRITE_ERROR_SHIFT 1
+#define MH_INTERRUPT_MASK_MMU_PAGE_FAULT_SHIFT 2
+
+#define MH_INTERRUPT_MASK_AXI_READ_ERROR_MASK 0x00000001
+#define MH_INTERRUPT_MASK_AXI_WRITE_ERROR_MASK 0x00000002
+#define MH_INTERRUPT_MASK_MMU_PAGE_FAULT_MASK 0x00000004
+
+#define MH_INTERRUPT_MASK_MASK \
+ (MH_INTERRUPT_MASK_AXI_READ_ERROR_MASK | \
+ MH_INTERRUPT_MASK_AXI_WRITE_ERROR_MASK | \
+ MH_INTERRUPT_MASK_MMU_PAGE_FAULT_MASK)
+
+#define MH_INTERRUPT_MASK(axi_read_error, axi_write_error, mmu_page_fault) \
+ ((axi_read_error << MH_INTERRUPT_MASK_AXI_READ_ERROR_SHIFT) | \
+ (axi_write_error << MH_INTERRUPT_MASK_AXI_WRITE_ERROR_SHIFT) | \
+ (mmu_page_fault << MH_INTERRUPT_MASK_MMU_PAGE_FAULT_SHIFT))
+
+#define MH_INTERRUPT_MASK_GET_AXI_READ_ERROR(mh_interrupt_mask) \
+ ((mh_interrupt_mask & MH_INTERRUPT_MASK_AXI_READ_ERROR_MASK) >> MH_INTERRUPT_MASK_AXI_READ_ERROR_SHIFT)
+#define MH_INTERRUPT_MASK_GET_AXI_WRITE_ERROR(mh_interrupt_mask) \
+ ((mh_interrupt_mask & MH_INTERRUPT_MASK_AXI_WRITE_ERROR_MASK) >> MH_INTERRUPT_MASK_AXI_WRITE_ERROR_SHIFT)
+#define MH_INTERRUPT_MASK_GET_MMU_PAGE_FAULT(mh_interrupt_mask) \
+ ((mh_interrupt_mask & MH_INTERRUPT_MASK_MMU_PAGE_FAULT_MASK) >> MH_INTERRUPT_MASK_MMU_PAGE_FAULT_SHIFT)
+
+#define MH_INTERRUPT_MASK_SET_AXI_READ_ERROR(mh_interrupt_mask_reg, axi_read_error) \
+ mh_interrupt_mask_reg = (mh_interrupt_mask_reg & ~MH_INTERRUPT_MASK_AXI_READ_ERROR_MASK) | (axi_read_error << MH_INTERRUPT_MASK_AXI_READ_ERROR_SHIFT)
+#define MH_INTERRUPT_MASK_SET_AXI_WRITE_ERROR(mh_interrupt_mask_reg, axi_write_error) \
+ mh_interrupt_mask_reg = (mh_interrupt_mask_reg & ~MH_INTERRUPT_MASK_AXI_WRITE_ERROR_MASK) | (axi_write_error << MH_INTERRUPT_MASK_AXI_WRITE_ERROR_SHIFT)
+#define MH_INTERRUPT_MASK_SET_MMU_PAGE_FAULT(mh_interrupt_mask_reg, mmu_page_fault) \
+ mh_interrupt_mask_reg = (mh_interrupt_mask_reg & ~MH_INTERRUPT_MASK_MMU_PAGE_FAULT_MASK) | (mmu_page_fault << MH_INTERRUPT_MASK_MMU_PAGE_FAULT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_interrupt_mask_t {
+ unsigned int axi_read_error : MH_INTERRUPT_MASK_AXI_READ_ERROR_SIZE;
+ unsigned int axi_write_error : MH_INTERRUPT_MASK_AXI_WRITE_ERROR_SIZE;
+ unsigned int mmu_page_fault : MH_INTERRUPT_MASK_MMU_PAGE_FAULT_SIZE;
+ unsigned int : 29;
+ } mh_interrupt_mask_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_interrupt_mask_t {
+ unsigned int : 29;
+ unsigned int mmu_page_fault : MH_INTERRUPT_MASK_MMU_PAGE_FAULT_SIZE;
+ unsigned int axi_write_error : MH_INTERRUPT_MASK_AXI_WRITE_ERROR_SIZE;
+ unsigned int axi_read_error : MH_INTERRUPT_MASK_AXI_READ_ERROR_SIZE;
+ } mh_interrupt_mask_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_interrupt_mask_t f;
+} mh_interrupt_mask_u;
+
+
+/*
+ * MH_INTERRUPT_STATUS struct
+ */
+
+#define MH_INTERRUPT_STATUS_AXI_READ_ERROR_SIZE 1
+#define MH_INTERRUPT_STATUS_AXI_WRITE_ERROR_SIZE 1
+#define MH_INTERRUPT_STATUS_MMU_PAGE_FAULT_SIZE 1
+
+#define MH_INTERRUPT_STATUS_AXI_READ_ERROR_SHIFT 0
+#define MH_INTERRUPT_STATUS_AXI_WRITE_ERROR_SHIFT 1
+#define MH_INTERRUPT_STATUS_MMU_PAGE_FAULT_SHIFT 2
+
+#define MH_INTERRUPT_STATUS_AXI_READ_ERROR_MASK 0x00000001
+#define MH_INTERRUPT_STATUS_AXI_WRITE_ERROR_MASK 0x00000002
+#define MH_INTERRUPT_STATUS_MMU_PAGE_FAULT_MASK 0x00000004
+
+#define MH_INTERRUPT_STATUS_MASK \
+ (MH_INTERRUPT_STATUS_AXI_READ_ERROR_MASK | \
+ MH_INTERRUPT_STATUS_AXI_WRITE_ERROR_MASK | \
+ MH_INTERRUPT_STATUS_MMU_PAGE_FAULT_MASK)
+
+#define MH_INTERRUPT_STATUS(axi_read_error, axi_write_error, mmu_page_fault) \
+ ((axi_read_error << MH_INTERRUPT_STATUS_AXI_READ_ERROR_SHIFT) | \
+ (axi_write_error << MH_INTERRUPT_STATUS_AXI_WRITE_ERROR_SHIFT) | \
+ (mmu_page_fault << MH_INTERRUPT_STATUS_MMU_PAGE_FAULT_SHIFT))
+
+#define MH_INTERRUPT_STATUS_GET_AXI_READ_ERROR(mh_interrupt_status) \
+ ((mh_interrupt_status & MH_INTERRUPT_STATUS_AXI_READ_ERROR_MASK) >> MH_INTERRUPT_STATUS_AXI_READ_ERROR_SHIFT)
+#define MH_INTERRUPT_STATUS_GET_AXI_WRITE_ERROR(mh_interrupt_status) \
+ ((mh_interrupt_status & MH_INTERRUPT_STATUS_AXI_WRITE_ERROR_MASK) >> MH_INTERRUPT_STATUS_AXI_WRITE_ERROR_SHIFT)
+#define MH_INTERRUPT_STATUS_GET_MMU_PAGE_FAULT(mh_interrupt_status) \
+ ((mh_interrupt_status & MH_INTERRUPT_STATUS_MMU_PAGE_FAULT_MASK) >> MH_INTERRUPT_STATUS_MMU_PAGE_FAULT_SHIFT)
+
+#define MH_INTERRUPT_STATUS_SET_AXI_READ_ERROR(mh_interrupt_status_reg, axi_read_error) \
+ mh_interrupt_status_reg = (mh_interrupt_status_reg & ~MH_INTERRUPT_STATUS_AXI_READ_ERROR_MASK) | (axi_read_error << MH_INTERRUPT_STATUS_AXI_READ_ERROR_SHIFT)
+#define MH_INTERRUPT_STATUS_SET_AXI_WRITE_ERROR(mh_interrupt_status_reg, axi_write_error) \
+ mh_interrupt_status_reg = (mh_interrupt_status_reg & ~MH_INTERRUPT_STATUS_AXI_WRITE_ERROR_MASK) | (axi_write_error << MH_INTERRUPT_STATUS_AXI_WRITE_ERROR_SHIFT)
+#define MH_INTERRUPT_STATUS_SET_MMU_PAGE_FAULT(mh_interrupt_status_reg, mmu_page_fault) \
+ mh_interrupt_status_reg = (mh_interrupt_status_reg & ~MH_INTERRUPT_STATUS_MMU_PAGE_FAULT_MASK) | (mmu_page_fault << MH_INTERRUPT_STATUS_MMU_PAGE_FAULT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_interrupt_status_t {
+ unsigned int axi_read_error : MH_INTERRUPT_STATUS_AXI_READ_ERROR_SIZE;
+ unsigned int axi_write_error : MH_INTERRUPT_STATUS_AXI_WRITE_ERROR_SIZE;
+ unsigned int mmu_page_fault : MH_INTERRUPT_STATUS_MMU_PAGE_FAULT_SIZE;
+ unsigned int : 29;
+ } mh_interrupt_status_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_interrupt_status_t {
+ unsigned int : 29;
+ unsigned int mmu_page_fault : MH_INTERRUPT_STATUS_MMU_PAGE_FAULT_SIZE;
+ unsigned int axi_write_error : MH_INTERRUPT_STATUS_AXI_WRITE_ERROR_SIZE;
+ unsigned int axi_read_error : MH_INTERRUPT_STATUS_AXI_READ_ERROR_SIZE;
+ } mh_interrupt_status_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_interrupt_status_t f;
+} mh_interrupt_status_u;
+
+
+/*
+ * MH_INTERRUPT_CLEAR struct
+ */
+
+#define MH_INTERRUPT_CLEAR_AXI_READ_ERROR_SIZE 1
+#define MH_INTERRUPT_CLEAR_AXI_WRITE_ERROR_SIZE 1
+#define MH_INTERRUPT_CLEAR_MMU_PAGE_FAULT_SIZE 1
+
+#define MH_INTERRUPT_CLEAR_AXI_READ_ERROR_SHIFT 0
+#define MH_INTERRUPT_CLEAR_AXI_WRITE_ERROR_SHIFT 1
+#define MH_INTERRUPT_CLEAR_MMU_PAGE_FAULT_SHIFT 2
+
+#define MH_INTERRUPT_CLEAR_AXI_READ_ERROR_MASK 0x00000001
+#define MH_INTERRUPT_CLEAR_AXI_WRITE_ERROR_MASK 0x00000002
+#define MH_INTERRUPT_CLEAR_MMU_PAGE_FAULT_MASK 0x00000004
+
+#define MH_INTERRUPT_CLEAR_MASK \
+ (MH_INTERRUPT_CLEAR_AXI_READ_ERROR_MASK | \
+ MH_INTERRUPT_CLEAR_AXI_WRITE_ERROR_MASK | \
+ MH_INTERRUPT_CLEAR_MMU_PAGE_FAULT_MASK)
+
+#define MH_INTERRUPT_CLEAR(axi_read_error, axi_write_error, mmu_page_fault) \
+ ((axi_read_error << MH_INTERRUPT_CLEAR_AXI_READ_ERROR_SHIFT) | \
+ (axi_write_error << MH_INTERRUPT_CLEAR_AXI_WRITE_ERROR_SHIFT) | \
+ (mmu_page_fault << MH_INTERRUPT_CLEAR_MMU_PAGE_FAULT_SHIFT))
+
+#define MH_INTERRUPT_CLEAR_GET_AXI_READ_ERROR(mh_interrupt_clear) \
+ ((mh_interrupt_clear & MH_INTERRUPT_CLEAR_AXI_READ_ERROR_MASK) >> MH_INTERRUPT_CLEAR_AXI_READ_ERROR_SHIFT)
+#define MH_INTERRUPT_CLEAR_GET_AXI_WRITE_ERROR(mh_interrupt_clear) \
+ ((mh_interrupt_clear & MH_INTERRUPT_CLEAR_AXI_WRITE_ERROR_MASK) >> MH_INTERRUPT_CLEAR_AXI_WRITE_ERROR_SHIFT)
+#define MH_INTERRUPT_CLEAR_GET_MMU_PAGE_FAULT(mh_interrupt_clear) \
+ ((mh_interrupt_clear & MH_INTERRUPT_CLEAR_MMU_PAGE_FAULT_MASK) >> MH_INTERRUPT_CLEAR_MMU_PAGE_FAULT_SHIFT)
+
+#define MH_INTERRUPT_CLEAR_SET_AXI_READ_ERROR(mh_interrupt_clear_reg, axi_read_error) \
+ mh_interrupt_clear_reg = (mh_interrupt_clear_reg & ~MH_INTERRUPT_CLEAR_AXI_READ_ERROR_MASK) | (axi_read_error << MH_INTERRUPT_CLEAR_AXI_READ_ERROR_SHIFT)
+#define MH_INTERRUPT_CLEAR_SET_AXI_WRITE_ERROR(mh_interrupt_clear_reg, axi_write_error) \
+ mh_interrupt_clear_reg = (mh_interrupt_clear_reg & ~MH_INTERRUPT_CLEAR_AXI_WRITE_ERROR_MASK) | (axi_write_error << MH_INTERRUPT_CLEAR_AXI_WRITE_ERROR_SHIFT)
+#define MH_INTERRUPT_CLEAR_SET_MMU_PAGE_FAULT(mh_interrupt_clear_reg, mmu_page_fault) \
+ mh_interrupt_clear_reg = (mh_interrupt_clear_reg & ~MH_INTERRUPT_CLEAR_MMU_PAGE_FAULT_MASK) | (mmu_page_fault << MH_INTERRUPT_CLEAR_MMU_PAGE_FAULT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_interrupt_clear_t {
+ unsigned int axi_read_error : MH_INTERRUPT_CLEAR_AXI_READ_ERROR_SIZE;
+ unsigned int axi_write_error : MH_INTERRUPT_CLEAR_AXI_WRITE_ERROR_SIZE;
+ unsigned int mmu_page_fault : MH_INTERRUPT_CLEAR_MMU_PAGE_FAULT_SIZE;
+ unsigned int : 29;
+ } mh_interrupt_clear_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_interrupt_clear_t {
+ unsigned int : 29;
+ unsigned int mmu_page_fault : MH_INTERRUPT_CLEAR_MMU_PAGE_FAULT_SIZE;
+ unsigned int axi_write_error : MH_INTERRUPT_CLEAR_AXI_WRITE_ERROR_SIZE;
+ unsigned int axi_read_error : MH_INTERRUPT_CLEAR_AXI_READ_ERROR_SIZE;
+ } mh_interrupt_clear_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_interrupt_clear_t f;
+} mh_interrupt_clear_u;
+
+
+/*
+ * MH_AXI_ERROR struct
+ */
+
+#define MH_AXI_ERROR_AXI_READ_ID_SIZE 3
+#define MH_AXI_ERROR_AXI_READ_ERROR_SIZE 1
+#define MH_AXI_ERROR_AXI_WRITE_ID_SIZE 3
+#define MH_AXI_ERROR_AXI_WRITE_ERROR_SIZE 1
+
+#define MH_AXI_ERROR_AXI_READ_ID_SHIFT 0
+#define MH_AXI_ERROR_AXI_READ_ERROR_SHIFT 3
+#define MH_AXI_ERROR_AXI_WRITE_ID_SHIFT 4
+#define MH_AXI_ERROR_AXI_WRITE_ERROR_SHIFT 7
+
+#define MH_AXI_ERROR_AXI_READ_ID_MASK 0x00000007
+#define MH_AXI_ERROR_AXI_READ_ERROR_MASK 0x00000008
+#define MH_AXI_ERROR_AXI_WRITE_ID_MASK 0x00000070
+#define MH_AXI_ERROR_AXI_WRITE_ERROR_MASK 0x00000080
+
+#define MH_AXI_ERROR_MASK \
+ (MH_AXI_ERROR_AXI_READ_ID_MASK | \
+ MH_AXI_ERROR_AXI_READ_ERROR_MASK | \
+ MH_AXI_ERROR_AXI_WRITE_ID_MASK | \
+ MH_AXI_ERROR_AXI_WRITE_ERROR_MASK)
+
+#define MH_AXI_ERROR(axi_read_id, axi_read_error, axi_write_id, axi_write_error) \
+ ((axi_read_id << MH_AXI_ERROR_AXI_READ_ID_SHIFT) | \
+ (axi_read_error << MH_AXI_ERROR_AXI_READ_ERROR_SHIFT) | \
+ (axi_write_id << MH_AXI_ERROR_AXI_WRITE_ID_SHIFT) | \
+ (axi_write_error << MH_AXI_ERROR_AXI_WRITE_ERROR_SHIFT))
+
+#define MH_AXI_ERROR_GET_AXI_READ_ID(mh_axi_error) \
+ ((mh_axi_error & MH_AXI_ERROR_AXI_READ_ID_MASK) >> MH_AXI_ERROR_AXI_READ_ID_SHIFT)
+#define MH_AXI_ERROR_GET_AXI_READ_ERROR(mh_axi_error) \
+ ((mh_axi_error & MH_AXI_ERROR_AXI_READ_ERROR_MASK) >> MH_AXI_ERROR_AXI_READ_ERROR_SHIFT)
+#define MH_AXI_ERROR_GET_AXI_WRITE_ID(mh_axi_error) \
+ ((mh_axi_error & MH_AXI_ERROR_AXI_WRITE_ID_MASK) >> MH_AXI_ERROR_AXI_WRITE_ID_SHIFT)
+#define MH_AXI_ERROR_GET_AXI_WRITE_ERROR(mh_axi_error) \
+ ((mh_axi_error & MH_AXI_ERROR_AXI_WRITE_ERROR_MASK) >> MH_AXI_ERROR_AXI_WRITE_ERROR_SHIFT)
+
+#define MH_AXI_ERROR_SET_AXI_READ_ID(mh_axi_error_reg, axi_read_id) \
+ mh_axi_error_reg = (mh_axi_error_reg & ~MH_AXI_ERROR_AXI_READ_ID_MASK) | (axi_read_id << MH_AXI_ERROR_AXI_READ_ID_SHIFT)
+#define MH_AXI_ERROR_SET_AXI_READ_ERROR(mh_axi_error_reg, axi_read_error) \
+ mh_axi_error_reg = (mh_axi_error_reg & ~MH_AXI_ERROR_AXI_READ_ERROR_MASK) | (axi_read_error << MH_AXI_ERROR_AXI_READ_ERROR_SHIFT)
+#define MH_AXI_ERROR_SET_AXI_WRITE_ID(mh_axi_error_reg, axi_write_id) \
+ mh_axi_error_reg = (mh_axi_error_reg & ~MH_AXI_ERROR_AXI_WRITE_ID_MASK) | (axi_write_id << MH_AXI_ERROR_AXI_WRITE_ID_SHIFT)
+#define MH_AXI_ERROR_SET_AXI_WRITE_ERROR(mh_axi_error_reg, axi_write_error) \
+ mh_axi_error_reg = (mh_axi_error_reg & ~MH_AXI_ERROR_AXI_WRITE_ERROR_MASK) | (axi_write_error << MH_AXI_ERROR_AXI_WRITE_ERROR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_axi_error_t {
+ unsigned int axi_read_id : MH_AXI_ERROR_AXI_READ_ID_SIZE;
+ unsigned int axi_read_error : MH_AXI_ERROR_AXI_READ_ERROR_SIZE;
+ unsigned int axi_write_id : MH_AXI_ERROR_AXI_WRITE_ID_SIZE;
+ unsigned int axi_write_error : MH_AXI_ERROR_AXI_WRITE_ERROR_SIZE;
+ unsigned int : 24;
+ } mh_axi_error_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_axi_error_t {
+ unsigned int : 24;
+ unsigned int axi_write_error : MH_AXI_ERROR_AXI_WRITE_ERROR_SIZE;
+ unsigned int axi_write_id : MH_AXI_ERROR_AXI_WRITE_ID_SIZE;
+ unsigned int axi_read_error : MH_AXI_ERROR_AXI_READ_ERROR_SIZE;
+ unsigned int axi_read_id : MH_AXI_ERROR_AXI_READ_ID_SIZE;
+ } mh_axi_error_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_axi_error_t f;
+} mh_axi_error_u;
+
+
+/*
+ * MH_PERFCOUNTER0_SELECT struct
+ */
+
+#define MH_PERFCOUNTER0_SELECT_PERF_SEL_SIZE 8
+
+#define MH_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT 0
+
+#define MH_PERFCOUNTER0_SELECT_PERF_SEL_MASK 0x000000ff
+
+#define MH_PERFCOUNTER0_SELECT_MASK \
+ (MH_PERFCOUNTER0_SELECT_PERF_SEL_MASK)
+
+#define MH_PERFCOUNTER0_SELECT(perf_sel) \
+ ((perf_sel << MH_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT))
+
+#define MH_PERFCOUNTER0_SELECT_GET_PERF_SEL(mh_perfcounter0_select) \
+ ((mh_perfcounter0_select & MH_PERFCOUNTER0_SELECT_PERF_SEL_MASK) >> MH_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT)
+
+#define MH_PERFCOUNTER0_SELECT_SET_PERF_SEL(mh_perfcounter0_select_reg, perf_sel) \
+ mh_perfcounter0_select_reg = (mh_perfcounter0_select_reg & ~MH_PERFCOUNTER0_SELECT_PERF_SEL_MASK) | (perf_sel << MH_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_perfcounter0_select_t {
+ unsigned int perf_sel : MH_PERFCOUNTER0_SELECT_PERF_SEL_SIZE;
+ unsigned int : 24;
+ } mh_perfcounter0_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_perfcounter0_select_t {
+ unsigned int : 24;
+ unsigned int perf_sel : MH_PERFCOUNTER0_SELECT_PERF_SEL_SIZE;
+ } mh_perfcounter0_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_perfcounter0_select_t f;
+} mh_perfcounter0_select_u;
+
+
+/*
+ * MH_PERFCOUNTER1_SELECT struct
+ */
+
+#define MH_PERFCOUNTER1_SELECT_PERF_SEL_SIZE 8
+
+#define MH_PERFCOUNTER1_SELECT_PERF_SEL_SHIFT 0
+
+#define MH_PERFCOUNTER1_SELECT_PERF_SEL_MASK 0x000000ff
+
+#define MH_PERFCOUNTER1_SELECT_MASK \
+ (MH_PERFCOUNTER1_SELECT_PERF_SEL_MASK)
+
+#define MH_PERFCOUNTER1_SELECT(perf_sel) \
+ ((perf_sel << MH_PERFCOUNTER1_SELECT_PERF_SEL_SHIFT))
+
+#define MH_PERFCOUNTER1_SELECT_GET_PERF_SEL(mh_perfcounter1_select) \
+ ((mh_perfcounter1_select & MH_PERFCOUNTER1_SELECT_PERF_SEL_MASK) >> MH_PERFCOUNTER1_SELECT_PERF_SEL_SHIFT)
+
+#define MH_PERFCOUNTER1_SELECT_SET_PERF_SEL(mh_perfcounter1_select_reg, perf_sel) \
+ mh_perfcounter1_select_reg = (mh_perfcounter1_select_reg & ~MH_PERFCOUNTER1_SELECT_PERF_SEL_MASK) | (perf_sel << MH_PERFCOUNTER1_SELECT_PERF_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_perfcounter1_select_t {
+ unsigned int perf_sel : MH_PERFCOUNTER1_SELECT_PERF_SEL_SIZE;
+ unsigned int : 24;
+ } mh_perfcounter1_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_perfcounter1_select_t {
+ unsigned int : 24;
+ unsigned int perf_sel : MH_PERFCOUNTER1_SELECT_PERF_SEL_SIZE;
+ } mh_perfcounter1_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_perfcounter1_select_t f;
+} mh_perfcounter1_select_u;
+
+
+/*
+ * MH_PERFCOUNTER0_CONFIG struct
+ */
+
+#define MH_PERFCOUNTER0_CONFIG_N_VALUE_SIZE 8
+
+#define MH_PERFCOUNTER0_CONFIG_N_VALUE_SHIFT 0
+
+#define MH_PERFCOUNTER0_CONFIG_N_VALUE_MASK 0x000000ff
+
+#define MH_PERFCOUNTER0_CONFIG_MASK \
+ (MH_PERFCOUNTER0_CONFIG_N_VALUE_MASK)
+
+#define MH_PERFCOUNTER0_CONFIG(n_value) \
+ ((n_value << MH_PERFCOUNTER0_CONFIG_N_VALUE_SHIFT))
+
+#define MH_PERFCOUNTER0_CONFIG_GET_N_VALUE(mh_perfcounter0_config) \
+ ((mh_perfcounter0_config & MH_PERFCOUNTER0_CONFIG_N_VALUE_MASK) >> MH_PERFCOUNTER0_CONFIG_N_VALUE_SHIFT)
+
+#define MH_PERFCOUNTER0_CONFIG_SET_N_VALUE(mh_perfcounter0_config_reg, n_value) \
+ mh_perfcounter0_config_reg = (mh_perfcounter0_config_reg & ~MH_PERFCOUNTER0_CONFIG_N_VALUE_MASK) | (n_value << MH_PERFCOUNTER0_CONFIG_N_VALUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_perfcounter0_config_t {
+ unsigned int n_value : MH_PERFCOUNTER0_CONFIG_N_VALUE_SIZE;
+ unsigned int : 24;
+ } mh_perfcounter0_config_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_perfcounter0_config_t {
+ unsigned int : 24;
+ unsigned int n_value : MH_PERFCOUNTER0_CONFIG_N_VALUE_SIZE;
+ } mh_perfcounter0_config_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_perfcounter0_config_t f;
+} mh_perfcounter0_config_u;
+
+
+/*
+ * MH_PERFCOUNTER1_CONFIG struct
+ */
+
+#define MH_PERFCOUNTER1_CONFIG_N_VALUE_SIZE 8
+
+#define MH_PERFCOUNTER1_CONFIG_N_VALUE_SHIFT 0
+
+#define MH_PERFCOUNTER1_CONFIG_N_VALUE_MASK 0x000000ff
+
+#define MH_PERFCOUNTER1_CONFIG_MASK \
+ (MH_PERFCOUNTER1_CONFIG_N_VALUE_MASK)
+
+#define MH_PERFCOUNTER1_CONFIG(n_value) \
+ ((n_value << MH_PERFCOUNTER1_CONFIG_N_VALUE_SHIFT))
+
+#define MH_PERFCOUNTER1_CONFIG_GET_N_VALUE(mh_perfcounter1_config) \
+ ((mh_perfcounter1_config & MH_PERFCOUNTER1_CONFIG_N_VALUE_MASK) >> MH_PERFCOUNTER1_CONFIG_N_VALUE_SHIFT)
+
+#define MH_PERFCOUNTER1_CONFIG_SET_N_VALUE(mh_perfcounter1_config_reg, n_value) \
+ mh_perfcounter1_config_reg = (mh_perfcounter1_config_reg & ~MH_PERFCOUNTER1_CONFIG_N_VALUE_MASK) | (n_value << MH_PERFCOUNTER1_CONFIG_N_VALUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_perfcounter1_config_t {
+ unsigned int n_value : MH_PERFCOUNTER1_CONFIG_N_VALUE_SIZE;
+ unsigned int : 24;
+ } mh_perfcounter1_config_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_perfcounter1_config_t {
+ unsigned int : 24;
+ unsigned int n_value : MH_PERFCOUNTER1_CONFIG_N_VALUE_SIZE;
+ } mh_perfcounter1_config_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_perfcounter1_config_t f;
+} mh_perfcounter1_config_u;
+
+
+/*
+ * MH_PERFCOUNTER0_LOW struct
+ */
+
+#define MH_PERFCOUNTER0_LOW_PERF_COUNTER_LOW_SIZE 32
+
+#define MH_PERFCOUNTER0_LOW_PERF_COUNTER_LOW_SHIFT 0
+
+#define MH_PERFCOUNTER0_LOW_PERF_COUNTER_LOW_MASK 0xffffffff
+
+#define MH_PERFCOUNTER0_LOW_MASK \
+ (MH_PERFCOUNTER0_LOW_PERF_COUNTER_LOW_MASK)
+
+#define MH_PERFCOUNTER0_LOW(perf_counter_low) \
+ ((perf_counter_low << MH_PERFCOUNTER0_LOW_PERF_COUNTER_LOW_SHIFT))
+
+#define MH_PERFCOUNTER0_LOW_GET_PERF_COUNTER_LOW(mh_perfcounter0_low) \
+ ((mh_perfcounter0_low & MH_PERFCOUNTER0_LOW_PERF_COUNTER_LOW_MASK) >> MH_PERFCOUNTER0_LOW_PERF_COUNTER_LOW_SHIFT)
+
+#define MH_PERFCOUNTER0_LOW_SET_PERF_COUNTER_LOW(mh_perfcounter0_low_reg, perf_counter_low) \
+ mh_perfcounter0_low_reg = (mh_perfcounter0_low_reg & ~MH_PERFCOUNTER0_LOW_PERF_COUNTER_LOW_MASK) | (perf_counter_low << MH_PERFCOUNTER0_LOW_PERF_COUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_perfcounter0_low_t {
+ unsigned int perf_counter_low : MH_PERFCOUNTER0_LOW_PERF_COUNTER_LOW_SIZE;
+ } mh_perfcounter0_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_perfcounter0_low_t {
+ unsigned int perf_counter_low : MH_PERFCOUNTER0_LOW_PERF_COUNTER_LOW_SIZE;
+ } mh_perfcounter0_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_perfcounter0_low_t f;
+} mh_perfcounter0_low_u;
+
+
+/*
+ * MH_PERFCOUNTER1_LOW struct
+ */
+
+#define MH_PERFCOUNTER1_LOW_PERF_COUNTER_LOW_SIZE 32
+
+#define MH_PERFCOUNTER1_LOW_PERF_COUNTER_LOW_SHIFT 0
+
+#define MH_PERFCOUNTER1_LOW_PERF_COUNTER_LOW_MASK 0xffffffff
+
+#define MH_PERFCOUNTER1_LOW_MASK \
+ (MH_PERFCOUNTER1_LOW_PERF_COUNTER_LOW_MASK)
+
+#define MH_PERFCOUNTER1_LOW(perf_counter_low) \
+ ((perf_counter_low << MH_PERFCOUNTER1_LOW_PERF_COUNTER_LOW_SHIFT))
+
+#define MH_PERFCOUNTER1_LOW_GET_PERF_COUNTER_LOW(mh_perfcounter1_low) \
+ ((mh_perfcounter1_low & MH_PERFCOUNTER1_LOW_PERF_COUNTER_LOW_MASK) >> MH_PERFCOUNTER1_LOW_PERF_COUNTER_LOW_SHIFT)
+
+#define MH_PERFCOUNTER1_LOW_SET_PERF_COUNTER_LOW(mh_perfcounter1_low_reg, perf_counter_low) \
+ mh_perfcounter1_low_reg = (mh_perfcounter1_low_reg & ~MH_PERFCOUNTER1_LOW_PERF_COUNTER_LOW_MASK) | (perf_counter_low << MH_PERFCOUNTER1_LOW_PERF_COUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_perfcounter1_low_t {
+ unsigned int perf_counter_low : MH_PERFCOUNTER1_LOW_PERF_COUNTER_LOW_SIZE;
+ } mh_perfcounter1_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_perfcounter1_low_t {
+ unsigned int perf_counter_low : MH_PERFCOUNTER1_LOW_PERF_COUNTER_LOW_SIZE;
+ } mh_perfcounter1_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_perfcounter1_low_t f;
+} mh_perfcounter1_low_u;
+
+
+/*
+ * MH_PERFCOUNTER0_HI struct
+ */
+
+#define MH_PERFCOUNTER0_HI_PERF_COUNTER_HI_SIZE 16
+
+#define MH_PERFCOUNTER0_HI_PERF_COUNTER_HI_SHIFT 0
+
+#define MH_PERFCOUNTER0_HI_PERF_COUNTER_HI_MASK 0x0000ffff
+
+#define MH_PERFCOUNTER0_HI_MASK \
+ (MH_PERFCOUNTER0_HI_PERF_COUNTER_HI_MASK)
+
+#define MH_PERFCOUNTER0_HI(perf_counter_hi) \
+ ((perf_counter_hi << MH_PERFCOUNTER0_HI_PERF_COUNTER_HI_SHIFT))
+
+#define MH_PERFCOUNTER0_HI_GET_PERF_COUNTER_HI(mh_perfcounter0_hi) \
+ ((mh_perfcounter0_hi & MH_PERFCOUNTER0_HI_PERF_COUNTER_HI_MASK) >> MH_PERFCOUNTER0_HI_PERF_COUNTER_HI_SHIFT)
+
+#define MH_PERFCOUNTER0_HI_SET_PERF_COUNTER_HI(mh_perfcounter0_hi_reg, perf_counter_hi) \
+ mh_perfcounter0_hi_reg = (mh_perfcounter0_hi_reg & ~MH_PERFCOUNTER0_HI_PERF_COUNTER_HI_MASK) | (perf_counter_hi << MH_PERFCOUNTER0_HI_PERF_COUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_perfcounter0_hi_t {
+ unsigned int perf_counter_hi : MH_PERFCOUNTER0_HI_PERF_COUNTER_HI_SIZE;
+ unsigned int : 16;
+ } mh_perfcounter0_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_perfcounter0_hi_t {
+ unsigned int : 16;
+ unsigned int perf_counter_hi : MH_PERFCOUNTER0_HI_PERF_COUNTER_HI_SIZE;
+ } mh_perfcounter0_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_perfcounter0_hi_t f;
+} mh_perfcounter0_hi_u;
+
+
+/*
+ * MH_PERFCOUNTER1_HI struct
+ */
+
+#define MH_PERFCOUNTER1_HI_PERF_COUNTER_HI_SIZE 16
+
+#define MH_PERFCOUNTER1_HI_PERF_COUNTER_HI_SHIFT 0
+
+#define MH_PERFCOUNTER1_HI_PERF_COUNTER_HI_MASK 0x0000ffff
+
+#define MH_PERFCOUNTER1_HI_MASK \
+ (MH_PERFCOUNTER1_HI_PERF_COUNTER_HI_MASK)
+
+#define MH_PERFCOUNTER1_HI(perf_counter_hi) \
+ ((perf_counter_hi << MH_PERFCOUNTER1_HI_PERF_COUNTER_HI_SHIFT))
+
+#define MH_PERFCOUNTER1_HI_GET_PERF_COUNTER_HI(mh_perfcounter1_hi) \
+ ((mh_perfcounter1_hi & MH_PERFCOUNTER1_HI_PERF_COUNTER_HI_MASK) >> MH_PERFCOUNTER1_HI_PERF_COUNTER_HI_SHIFT)
+
+#define MH_PERFCOUNTER1_HI_SET_PERF_COUNTER_HI(mh_perfcounter1_hi_reg, perf_counter_hi) \
+ mh_perfcounter1_hi_reg = (mh_perfcounter1_hi_reg & ~MH_PERFCOUNTER1_HI_PERF_COUNTER_HI_MASK) | (perf_counter_hi << MH_PERFCOUNTER1_HI_PERF_COUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_perfcounter1_hi_t {
+ unsigned int perf_counter_hi : MH_PERFCOUNTER1_HI_PERF_COUNTER_HI_SIZE;
+ unsigned int : 16;
+ } mh_perfcounter1_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_perfcounter1_hi_t {
+ unsigned int : 16;
+ unsigned int perf_counter_hi : MH_PERFCOUNTER1_HI_PERF_COUNTER_HI_SIZE;
+ } mh_perfcounter1_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_perfcounter1_hi_t f;
+} mh_perfcounter1_hi_u;
+
+
+/*
+ * MH_DEBUG_CTRL struct
+ */
+
+#define MH_DEBUG_CTRL_INDEX_SIZE 6
+
+#define MH_DEBUG_CTRL_INDEX_SHIFT 0
+
+#define MH_DEBUG_CTRL_INDEX_MASK 0x0000003f
+
+#define MH_DEBUG_CTRL_MASK \
+ (MH_DEBUG_CTRL_INDEX_MASK)
+
+#define MH_DEBUG_CTRL(index) \
+ ((index << MH_DEBUG_CTRL_INDEX_SHIFT))
+
+#define MH_DEBUG_CTRL_GET_INDEX(mh_debug_ctrl) \
+ ((mh_debug_ctrl & MH_DEBUG_CTRL_INDEX_MASK) >> MH_DEBUG_CTRL_INDEX_SHIFT)
+
+#define MH_DEBUG_CTRL_SET_INDEX(mh_debug_ctrl_reg, index) \
+ mh_debug_ctrl_reg = (mh_debug_ctrl_reg & ~MH_DEBUG_CTRL_INDEX_MASK) | (index << MH_DEBUG_CTRL_INDEX_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_ctrl_t {
+ unsigned int index : MH_DEBUG_CTRL_INDEX_SIZE;
+ unsigned int : 26;
+ } mh_debug_ctrl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_ctrl_t {
+ unsigned int : 26;
+ unsigned int index : MH_DEBUG_CTRL_INDEX_SIZE;
+ } mh_debug_ctrl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_ctrl_t f;
+} mh_debug_ctrl_u;
+
+
+/*
+ * MH_DEBUG_DATA struct
+ */
+
+#define MH_DEBUG_DATA_DATA_SIZE 32
+
+#define MH_DEBUG_DATA_DATA_SHIFT 0
+
+#define MH_DEBUG_DATA_DATA_MASK 0xffffffff
+
+#define MH_DEBUG_DATA_MASK \
+ (MH_DEBUG_DATA_DATA_MASK)
+
+#define MH_DEBUG_DATA(data) \
+ ((data << MH_DEBUG_DATA_DATA_SHIFT))
+
+#define MH_DEBUG_DATA_GET_DATA(mh_debug_data) \
+ ((mh_debug_data & MH_DEBUG_DATA_DATA_MASK) >> MH_DEBUG_DATA_DATA_SHIFT)
+
+#define MH_DEBUG_DATA_SET_DATA(mh_debug_data_reg, data) \
+ mh_debug_data_reg = (mh_debug_data_reg & ~MH_DEBUG_DATA_DATA_MASK) | (data << MH_DEBUG_DATA_DATA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_data_t {
+ unsigned int data : MH_DEBUG_DATA_DATA_SIZE;
+ } mh_debug_data_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_data_t {
+ unsigned int data : MH_DEBUG_DATA_DATA_SIZE;
+ } mh_debug_data_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_data_t f;
+} mh_debug_data_u;
+
+
+/*
+ * MH_AXI_HALT_CONTROL struct
+ */
+
+#define MH_AXI_HALT_CONTROL_AXI_HALT_SIZE 1
+
+#define MH_AXI_HALT_CONTROL_AXI_HALT_SHIFT 0
+
+#define MH_AXI_HALT_CONTROL_AXI_HALT_MASK 0x00000001
+
+#define MH_AXI_HALT_CONTROL_MASK \
+ (MH_AXI_HALT_CONTROL_AXI_HALT_MASK)
+
+#define MH_AXI_HALT_CONTROL(axi_halt) \
+ ((axi_halt << MH_AXI_HALT_CONTROL_AXI_HALT_SHIFT))
+
+#define MH_AXI_HALT_CONTROL_GET_AXI_HALT(mh_axi_halt_control) \
+ ((mh_axi_halt_control & MH_AXI_HALT_CONTROL_AXI_HALT_MASK) >> MH_AXI_HALT_CONTROL_AXI_HALT_SHIFT)
+
+#define MH_AXI_HALT_CONTROL_SET_AXI_HALT(mh_axi_halt_control_reg, axi_halt) \
+ mh_axi_halt_control_reg = (mh_axi_halt_control_reg & ~MH_AXI_HALT_CONTROL_AXI_HALT_MASK) | (axi_halt << MH_AXI_HALT_CONTROL_AXI_HALT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_axi_halt_control_t {
+ unsigned int axi_halt : MH_AXI_HALT_CONTROL_AXI_HALT_SIZE;
+ unsigned int : 31;
+ } mh_axi_halt_control_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_axi_halt_control_t {
+ unsigned int : 31;
+ unsigned int axi_halt : MH_AXI_HALT_CONTROL_AXI_HALT_SIZE;
+ } mh_axi_halt_control_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_axi_halt_control_t f;
+} mh_axi_halt_control_u;
+
+
+/*
+ * MH_DEBUG_REG00 struct
+ */
+
+#define MH_DEBUG_REG00_MH_BUSY_SIZE 1
+#define MH_DEBUG_REG00_TRANS_OUTSTANDING_SIZE 1
+#define MH_DEBUG_REG00_CP_REQUEST_SIZE 1
+#define MH_DEBUG_REG00_VGT_REQUEST_SIZE 1
+#define MH_DEBUG_REG00_TC_REQUEST_SIZE 1
+#define MH_DEBUG_REG00_TC_CAM_EMPTY_SIZE 1
+#define MH_DEBUG_REG00_TC_CAM_FULL_SIZE 1
+#define MH_DEBUG_REG00_TCD_EMPTY_SIZE 1
+#define MH_DEBUG_REG00_TCD_FULL_SIZE 1
+#define MH_DEBUG_REG00_RB_REQUEST_SIZE 1
+#define MH_DEBUG_REG00_PA_REQUEST_SIZE 1
+#define MH_DEBUG_REG00_MH_CLK_EN_STATE_SIZE 1
+#define MH_DEBUG_REG00_ARQ_EMPTY_SIZE 1
+#define MH_DEBUG_REG00_ARQ_FULL_SIZE 1
+#define MH_DEBUG_REG00_WDB_EMPTY_SIZE 1
+#define MH_DEBUG_REG00_WDB_FULL_SIZE 1
+#define MH_DEBUG_REG00_AXI_AVALID_SIZE 1
+#define MH_DEBUG_REG00_AXI_AREADY_SIZE 1
+#define MH_DEBUG_REG00_AXI_ARVALID_SIZE 1
+#define MH_DEBUG_REG00_AXI_ARREADY_SIZE 1
+#define MH_DEBUG_REG00_AXI_WVALID_SIZE 1
+#define MH_DEBUG_REG00_AXI_WREADY_SIZE 1
+#define MH_DEBUG_REG00_AXI_RVALID_SIZE 1
+#define MH_DEBUG_REG00_AXI_RREADY_SIZE 1
+#define MH_DEBUG_REG00_AXI_BVALID_SIZE 1
+#define MH_DEBUG_REG00_AXI_BREADY_SIZE 1
+#define MH_DEBUG_REG00_AXI_HALT_REQ_SIZE 1
+#define MH_DEBUG_REG00_AXI_HALT_ACK_SIZE 1
+#define MH_DEBUG_REG00_AXI_RDY_ENA_SIZE 1
+
+#define MH_DEBUG_REG00_MH_BUSY_SHIFT 0
+#define MH_DEBUG_REG00_TRANS_OUTSTANDING_SHIFT 1
+#define MH_DEBUG_REG00_CP_REQUEST_SHIFT 2
+#define MH_DEBUG_REG00_VGT_REQUEST_SHIFT 3
+#define MH_DEBUG_REG00_TC_REQUEST_SHIFT 4
+#define MH_DEBUG_REG00_TC_CAM_EMPTY_SHIFT 5
+#define MH_DEBUG_REG00_TC_CAM_FULL_SHIFT 6
+#define MH_DEBUG_REG00_TCD_EMPTY_SHIFT 7
+#define MH_DEBUG_REG00_TCD_FULL_SHIFT 8
+#define MH_DEBUG_REG00_RB_REQUEST_SHIFT 9
+#define MH_DEBUG_REG00_PA_REQUEST_SHIFT 10
+#define MH_DEBUG_REG00_MH_CLK_EN_STATE_SHIFT 11
+#define MH_DEBUG_REG00_ARQ_EMPTY_SHIFT 12
+#define MH_DEBUG_REG00_ARQ_FULL_SHIFT 13
+#define MH_DEBUG_REG00_WDB_EMPTY_SHIFT 14
+#define MH_DEBUG_REG00_WDB_FULL_SHIFT 15
+#define MH_DEBUG_REG00_AXI_AVALID_SHIFT 16
+#define MH_DEBUG_REG00_AXI_AREADY_SHIFT 17
+#define MH_DEBUG_REG00_AXI_ARVALID_SHIFT 18
+#define MH_DEBUG_REG00_AXI_ARREADY_SHIFT 19
+#define MH_DEBUG_REG00_AXI_WVALID_SHIFT 20
+#define MH_DEBUG_REG00_AXI_WREADY_SHIFT 21
+#define MH_DEBUG_REG00_AXI_RVALID_SHIFT 22
+#define MH_DEBUG_REG00_AXI_RREADY_SHIFT 23
+#define MH_DEBUG_REG00_AXI_BVALID_SHIFT 24
+#define MH_DEBUG_REG00_AXI_BREADY_SHIFT 25
+#define MH_DEBUG_REG00_AXI_HALT_REQ_SHIFT 26
+#define MH_DEBUG_REG00_AXI_HALT_ACK_SHIFT 27
+#define MH_DEBUG_REG00_AXI_RDY_ENA_SHIFT 28
+
+#define MH_DEBUG_REG00_MH_BUSY_MASK 0x00000001
+#define MH_DEBUG_REG00_TRANS_OUTSTANDING_MASK 0x00000002
+#define MH_DEBUG_REG00_CP_REQUEST_MASK 0x00000004
+#define MH_DEBUG_REG00_VGT_REQUEST_MASK 0x00000008
+#define MH_DEBUG_REG00_TC_REQUEST_MASK 0x00000010
+#define MH_DEBUG_REG00_TC_CAM_EMPTY_MASK 0x00000020
+#define MH_DEBUG_REG00_TC_CAM_FULL_MASK 0x00000040
+#define MH_DEBUG_REG00_TCD_EMPTY_MASK 0x00000080
+#define MH_DEBUG_REG00_TCD_FULL_MASK 0x00000100
+#define MH_DEBUG_REG00_RB_REQUEST_MASK 0x00000200
+#define MH_DEBUG_REG00_PA_REQUEST_MASK 0x00000400
+#define MH_DEBUG_REG00_MH_CLK_EN_STATE_MASK 0x00000800
+#define MH_DEBUG_REG00_ARQ_EMPTY_MASK 0x00001000
+#define MH_DEBUG_REG00_ARQ_FULL_MASK 0x00002000
+#define MH_DEBUG_REG00_WDB_EMPTY_MASK 0x00004000
+#define MH_DEBUG_REG00_WDB_FULL_MASK 0x00008000
+#define MH_DEBUG_REG00_AXI_AVALID_MASK 0x00010000
+#define MH_DEBUG_REG00_AXI_AREADY_MASK 0x00020000
+#define MH_DEBUG_REG00_AXI_ARVALID_MASK 0x00040000
+#define MH_DEBUG_REG00_AXI_ARREADY_MASK 0x00080000
+#define MH_DEBUG_REG00_AXI_WVALID_MASK 0x00100000
+#define MH_DEBUG_REG00_AXI_WREADY_MASK 0x00200000
+#define MH_DEBUG_REG00_AXI_RVALID_MASK 0x00400000
+#define MH_DEBUG_REG00_AXI_RREADY_MASK 0x00800000
+#define MH_DEBUG_REG00_AXI_BVALID_MASK 0x01000000
+#define MH_DEBUG_REG00_AXI_BREADY_MASK 0x02000000
+#define MH_DEBUG_REG00_AXI_HALT_REQ_MASK 0x04000000
+#define MH_DEBUG_REG00_AXI_HALT_ACK_MASK 0x08000000
+#define MH_DEBUG_REG00_AXI_RDY_ENA_MASK 0x10000000
+
+#define MH_DEBUG_REG00_MASK \
+ (MH_DEBUG_REG00_MH_BUSY_MASK | \
+ MH_DEBUG_REG00_TRANS_OUTSTANDING_MASK | \
+ MH_DEBUG_REG00_CP_REQUEST_MASK | \
+ MH_DEBUG_REG00_VGT_REQUEST_MASK | \
+ MH_DEBUG_REG00_TC_REQUEST_MASK | \
+ MH_DEBUG_REG00_TC_CAM_EMPTY_MASK | \
+ MH_DEBUG_REG00_TC_CAM_FULL_MASK | \
+ MH_DEBUG_REG00_TCD_EMPTY_MASK | \
+ MH_DEBUG_REG00_TCD_FULL_MASK | \
+ MH_DEBUG_REG00_RB_REQUEST_MASK | \
+ MH_DEBUG_REG00_PA_REQUEST_MASK | \
+ MH_DEBUG_REG00_MH_CLK_EN_STATE_MASK | \
+ MH_DEBUG_REG00_ARQ_EMPTY_MASK | \
+ MH_DEBUG_REG00_ARQ_FULL_MASK | \
+ MH_DEBUG_REG00_WDB_EMPTY_MASK | \
+ MH_DEBUG_REG00_WDB_FULL_MASK | \
+ MH_DEBUG_REG00_AXI_AVALID_MASK | \
+ MH_DEBUG_REG00_AXI_AREADY_MASK | \
+ MH_DEBUG_REG00_AXI_ARVALID_MASK | \
+ MH_DEBUG_REG00_AXI_ARREADY_MASK | \
+ MH_DEBUG_REG00_AXI_WVALID_MASK | \
+ MH_DEBUG_REG00_AXI_WREADY_MASK | \
+ MH_DEBUG_REG00_AXI_RVALID_MASK | \
+ MH_DEBUG_REG00_AXI_RREADY_MASK | \
+ MH_DEBUG_REG00_AXI_BVALID_MASK | \
+ MH_DEBUG_REG00_AXI_BREADY_MASK | \
+ MH_DEBUG_REG00_AXI_HALT_REQ_MASK | \
+ MH_DEBUG_REG00_AXI_HALT_ACK_MASK | \
+ MH_DEBUG_REG00_AXI_RDY_ENA_MASK)
+
+#define MH_DEBUG_REG00(mh_busy, trans_outstanding, cp_request, vgt_request, tc_request, tc_cam_empty, tc_cam_full, tcd_empty, tcd_full, rb_request, pa_request, mh_clk_en_state, arq_empty, arq_full, wdb_empty, wdb_full, axi_avalid, axi_aready, axi_arvalid, axi_arready, axi_wvalid, axi_wready, axi_rvalid, axi_rready, axi_bvalid, axi_bready, axi_halt_req, axi_halt_ack, axi_rdy_ena) \
+ ((mh_busy << MH_DEBUG_REG00_MH_BUSY_SHIFT) | \
+ (trans_outstanding << MH_DEBUG_REG00_TRANS_OUTSTANDING_SHIFT) | \
+ (cp_request << MH_DEBUG_REG00_CP_REQUEST_SHIFT) | \
+ (vgt_request << MH_DEBUG_REG00_VGT_REQUEST_SHIFT) | \
+ (tc_request << MH_DEBUG_REG00_TC_REQUEST_SHIFT) | \
+ (tc_cam_empty << MH_DEBUG_REG00_TC_CAM_EMPTY_SHIFT) | \
+ (tc_cam_full << MH_DEBUG_REG00_TC_CAM_FULL_SHIFT) | \
+ (tcd_empty << MH_DEBUG_REG00_TCD_EMPTY_SHIFT) | \
+ (tcd_full << MH_DEBUG_REG00_TCD_FULL_SHIFT) | \
+ (rb_request << MH_DEBUG_REG00_RB_REQUEST_SHIFT) | \
+ (pa_request << MH_DEBUG_REG00_PA_REQUEST_SHIFT) | \
+ (mh_clk_en_state << MH_DEBUG_REG00_MH_CLK_EN_STATE_SHIFT) | \
+ (arq_empty << MH_DEBUG_REG00_ARQ_EMPTY_SHIFT) | \
+ (arq_full << MH_DEBUG_REG00_ARQ_FULL_SHIFT) | \
+ (wdb_empty << MH_DEBUG_REG00_WDB_EMPTY_SHIFT) | \
+ (wdb_full << MH_DEBUG_REG00_WDB_FULL_SHIFT) | \
+ (axi_avalid << MH_DEBUG_REG00_AXI_AVALID_SHIFT) | \
+ (axi_aready << MH_DEBUG_REG00_AXI_AREADY_SHIFT) | \
+ (axi_arvalid << MH_DEBUG_REG00_AXI_ARVALID_SHIFT) | \
+ (axi_arready << MH_DEBUG_REG00_AXI_ARREADY_SHIFT) | \
+ (axi_wvalid << MH_DEBUG_REG00_AXI_WVALID_SHIFT) | \
+ (axi_wready << MH_DEBUG_REG00_AXI_WREADY_SHIFT) | \
+ (axi_rvalid << MH_DEBUG_REG00_AXI_RVALID_SHIFT) | \
+ (axi_rready << MH_DEBUG_REG00_AXI_RREADY_SHIFT) | \
+ (axi_bvalid << MH_DEBUG_REG00_AXI_BVALID_SHIFT) | \
+ (axi_bready << MH_DEBUG_REG00_AXI_BREADY_SHIFT) | \
+ (axi_halt_req << MH_DEBUG_REG00_AXI_HALT_REQ_SHIFT) | \
+ (axi_halt_ack << MH_DEBUG_REG00_AXI_HALT_ACK_SHIFT) | \
+ (axi_rdy_ena << MH_DEBUG_REG00_AXI_RDY_ENA_SHIFT))
+
+#define MH_DEBUG_REG00_GET_MH_BUSY(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_MH_BUSY_MASK) >> MH_DEBUG_REG00_MH_BUSY_SHIFT)
+#define MH_DEBUG_REG00_GET_TRANS_OUTSTANDING(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_TRANS_OUTSTANDING_MASK) >> MH_DEBUG_REG00_TRANS_OUTSTANDING_SHIFT)
+#define MH_DEBUG_REG00_GET_CP_REQUEST(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_CP_REQUEST_MASK) >> MH_DEBUG_REG00_CP_REQUEST_SHIFT)
+#define MH_DEBUG_REG00_GET_VGT_REQUEST(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_VGT_REQUEST_MASK) >> MH_DEBUG_REG00_VGT_REQUEST_SHIFT)
+#define MH_DEBUG_REG00_GET_TC_REQUEST(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_TC_REQUEST_MASK) >> MH_DEBUG_REG00_TC_REQUEST_SHIFT)
+#define MH_DEBUG_REG00_GET_TC_CAM_EMPTY(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_TC_CAM_EMPTY_MASK) >> MH_DEBUG_REG00_TC_CAM_EMPTY_SHIFT)
+#define MH_DEBUG_REG00_GET_TC_CAM_FULL(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_TC_CAM_FULL_MASK) >> MH_DEBUG_REG00_TC_CAM_FULL_SHIFT)
+#define MH_DEBUG_REG00_GET_TCD_EMPTY(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_TCD_EMPTY_MASK) >> MH_DEBUG_REG00_TCD_EMPTY_SHIFT)
+#define MH_DEBUG_REG00_GET_TCD_FULL(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_TCD_FULL_MASK) >> MH_DEBUG_REG00_TCD_FULL_SHIFT)
+#define MH_DEBUG_REG00_GET_RB_REQUEST(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_RB_REQUEST_MASK) >> MH_DEBUG_REG00_RB_REQUEST_SHIFT)
+#define MH_DEBUG_REG00_GET_PA_REQUEST(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_PA_REQUEST_MASK) >> MH_DEBUG_REG00_PA_REQUEST_SHIFT)
+#define MH_DEBUG_REG00_GET_MH_CLK_EN_STATE(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_MH_CLK_EN_STATE_MASK) >> MH_DEBUG_REG00_MH_CLK_EN_STATE_SHIFT)
+#define MH_DEBUG_REG00_GET_ARQ_EMPTY(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_ARQ_EMPTY_MASK) >> MH_DEBUG_REG00_ARQ_EMPTY_SHIFT)
+#define MH_DEBUG_REG00_GET_ARQ_FULL(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_ARQ_FULL_MASK) >> MH_DEBUG_REG00_ARQ_FULL_SHIFT)
+#define MH_DEBUG_REG00_GET_WDB_EMPTY(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_WDB_EMPTY_MASK) >> MH_DEBUG_REG00_WDB_EMPTY_SHIFT)
+#define MH_DEBUG_REG00_GET_WDB_FULL(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_WDB_FULL_MASK) >> MH_DEBUG_REG00_WDB_FULL_SHIFT)
+#define MH_DEBUG_REG00_GET_AXI_AVALID(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_AXI_AVALID_MASK) >> MH_DEBUG_REG00_AXI_AVALID_SHIFT)
+#define MH_DEBUG_REG00_GET_AXI_AREADY(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_AXI_AREADY_MASK) >> MH_DEBUG_REG00_AXI_AREADY_SHIFT)
+#define MH_DEBUG_REG00_GET_AXI_ARVALID(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_AXI_ARVALID_MASK) >> MH_DEBUG_REG00_AXI_ARVALID_SHIFT)
+#define MH_DEBUG_REG00_GET_AXI_ARREADY(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_AXI_ARREADY_MASK) >> MH_DEBUG_REG00_AXI_ARREADY_SHIFT)
+#define MH_DEBUG_REG00_GET_AXI_WVALID(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_AXI_WVALID_MASK) >> MH_DEBUG_REG00_AXI_WVALID_SHIFT)
+#define MH_DEBUG_REG00_GET_AXI_WREADY(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_AXI_WREADY_MASK) >> MH_DEBUG_REG00_AXI_WREADY_SHIFT)
+#define MH_DEBUG_REG00_GET_AXI_RVALID(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_AXI_RVALID_MASK) >> MH_DEBUG_REG00_AXI_RVALID_SHIFT)
+#define MH_DEBUG_REG00_GET_AXI_RREADY(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_AXI_RREADY_MASK) >> MH_DEBUG_REG00_AXI_RREADY_SHIFT)
+#define MH_DEBUG_REG00_GET_AXI_BVALID(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_AXI_BVALID_MASK) >> MH_DEBUG_REG00_AXI_BVALID_SHIFT)
+#define MH_DEBUG_REG00_GET_AXI_BREADY(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_AXI_BREADY_MASK) >> MH_DEBUG_REG00_AXI_BREADY_SHIFT)
+#define MH_DEBUG_REG00_GET_AXI_HALT_REQ(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_AXI_HALT_REQ_MASK) >> MH_DEBUG_REG00_AXI_HALT_REQ_SHIFT)
+#define MH_DEBUG_REG00_GET_AXI_HALT_ACK(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_AXI_HALT_ACK_MASK) >> MH_DEBUG_REG00_AXI_HALT_ACK_SHIFT)
+#define MH_DEBUG_REG00_GET_AXI_RDY_ENA(mh_debug_reg00) \
+ ((mh_debug_reg00 & MH_DEBUG_REG00_AXI_RDY_ENA_MASK) >> MH_DEBUG_REG00_AXI_RDY_ENA_SHIFT)
+
+#define MH_DEBUG_REG00_SET_MH_BUSY(mh_debug_reg00_reg, mh_busy) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_MH_BUSY_MASK) | (mh_busy << MH_DEBUG_REG00_MH_BUSY_SHIFT)
+#define MH_DEBUG_REG00_SET_TRANS_OUTSTANDING(mh_debug_reg00_reg, trans_outstanding) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_TRANS_OUTSTANDING_MASK) | (trans_outstanding << MH_DEBUG_REG00_TRANS_OUTSTANDING_SHIFT)
+#define MH_DEBUG_REG00_SET_CP_REQUEST(mh_debug_reg00_reg, cp_request) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_CP_REQUEST_MASK) | (cp_request << MH_DEBUG_REG00_CP_REQUEST_SHIFT)
+#define MH_DEBUG_REG00_SET_VGT_REQUEST(mh_debug_reg00_reg, vgt_request) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_VGT_REQUEST_MASK) | (vgt_request << MH_DEBUG_REG00_VGT_REQUEST_SHIFT)
+#define MH_DEBUG_REG00_SET_TC_REQUEST(mh_debug_reg00_reg, tc_request) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_TC_REQUEST_MASK) | (tc_request << MH_DEBUG_REG00_TC_REQUEST_SHIFT)
+#define MH_DEBUG_REG00_SET_TC_CAM_EMPTY(mh_debug_reg00_reg, tc_cam_empty) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_TC_CAM_EMPTY_MASK) | (tc_cam_empty << MH_DEBUG_REG00_TC_CAM_EMPTY_SHIFT)
+#define MH_DEBUG_REG00_SET_TC_CAM_FULL(mh_debug_reg00_reg, tc_cam_full) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_TC_CAM_FULL_MASK) | (tc_cam_full << MH_DEBUG_REG00_TC_CAM_FULL_SHIFT)
+#define MH_DEBUG_REG00_SET_TCD_EMPTY(mh_debug_reg00_reg, tcd_empty) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_TCD_EMPTY_MASK) | (tcd_empty << MH_DEBUG_REG00_TCD_EMPTY_SHIFT)
+#define MH_DEBUG_REG00_SET_TCD_FULL(mh_debug_reg00_reg, tcd_full) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_TCD_FULL_MASK) | (tcd_full << MH_DEBUG_REG00_TCD_FULL_SHIFT)
+#define MH_DEBUG_REG00_SET_RB_REQUEST(mh_debug_reg00_reg, rb_request) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_RB_REQUEST_MASK) | (rb_request << MH_DEBUG_REG00_RB_REQUEST_SHIFT)
+#define MH_DEBUG_REG00_SET_PA_REQUEST(mh_debug_reg00_reg, pa_request) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_PA_REQUEST_MASK) | (pa_request << MH_DEBUG_REG00_PA_REQUEST_SHIFT)
+#define MH_DEBUG_REG00_SET_MH_CLK_EN_STATE(mh_debug_reg00_reg, mh_clk_en_state) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_MH_CLK_EN_STATE_MASK) | (mh_clk_en_state << MH_DEBUG_REG00_MH_CLK_EN_STATE_SHIFT)
+#define MH_DEBUG_REG00_SET_ARQ_EMPTY(mh_debug_reg00_reg, arq_empty) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_ARQ_EMPTY_MASK) | (arq_empty << MH_DEBUG_REG00_ARQ_EMPTY_SHIFT)
+#define MH_DEBUG_REG00_SET_ARQ_FULL(mh_debug_reg00_reg, arq_full) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_ARQ_FULL_MASK) | (arq_full << MH_DEBUG_REG00_ARQ_FULL_SHIFT)
+#define MH_DEBUG_REG00_SET_WDB_EMPTY(mh_debug_reg00_reg, wdb_empty) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_WDB_EMPTY_MASK) | (wdb_empty << MH_DEBUG_REG00_WDB_EMPTY_SHIFT)
+#define MH_DEBUG_REG00_SET_WDB_FULL(mh_debug_reg00_reg, wdb_full) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_WDB_FULL_MASK) | (wdb_full << MH_DEBUG_REG00_WDB_FULL_SHIFT)
+#define MH_DEBUG_REG00_SET_AXI_AVALID(mh_debug_reg00_reg, axi_avalid) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_AXI_AVALID_MASK) | (axi_avalid << MH_DEBUG_REG00_AXI_AVALID_SHIFT)
+#define MH_DEBUG_REG00_SET_AXI_AREADY(mh_debug_reg00_reg, axi_aready) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_AXI_AREADY_MASK) | (axi_aready << MH_DEBUG_REG00_AXI_AREADY_SHIFT)
+#define MH_DEBUG_REG00_SET_AXI_ARVALID(mh_debug_reg00_reg, axi_arvalid) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_AXI_ARVALID_MASK) | (axi_arvalid << MH_DEBUG_REG00_AXI_ARVALID_SHIFT)
+#define MH_DEBUG_REG00_SET_AXI_ARREADY(mh_debug_reg00_reg, axi_arready) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_AXI_ARREADY_MASK) | (axi_arready << MH_DEBUG_REG00_AXI_ARREADY_SHIFT)
+#define MH_DEBUG_REG00_SET_AXI_WVALID(mh_debug_reg00_reg, axi_wvalid) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_AXI_WVALID_MASK) | (axi_wvalid << MH_DEBUG_REG00_AXI_WVALID_SHIFT)
+#define MH_DEBUG_REG00_SET_AXI_WREADY(mh_debug_reg00_reg, axi_wready) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_AXI_WREADY_MASK) | (axi_wready << MH_DEBUG_REG00_AXI_WREADY_SHIFT)
+#define MH_DEBUG_REG00_SET_AXI_RVALID(mh_debug_reg00_reg, axi_rvalid) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_AXI_RVALID_MASK) | (axi_rvalid << MH_DEBUG_REG00_AXI_RVALID_SHIFT)
+#define MH_DEBUG_REG00_SET_AXI_RREADY(mh_debug_reg00_reg, axi_rready) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_AXI_RREADY_MASK) | (axi_rready << MH_DEBUG_REG00_AXI_RREADY_SHIFT)
+#define MH_DEBUG_REG00_SET_AXI_BVALID(mh_debug_reg00_reg, axi_bvalid) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_AXI_BVALID_MASK) | (axi_bvalid << MH_DEBUG_REG00_AXI_BVALID_SHIFT)
+#define MH_DEBUG_REG00_SET_AXI_BREADY(mh_debug_reg00_reg, axi_bready) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_AXI_BREADY_MASK) | (axi_bready << MH_DEBUG_REG00_AXI_BREADY_SHIFT)
+#define MH_DEBUG_REG00_SET_AXI_HALT_REQ(mh_debug_reg00_reg, axi_halt_req) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_AXI_HALT_REQ_MASK) | (axi_halt_req << MH_DEBUG_REG00_AXI_HALT_REQ_SHIFT)
+#define MH_DEBUG_REG00_SET_AXI_HALT_ACK(mh_debug_reg00_reg, axi_halt_ack) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_AXI_HALT_ACK_MASK) | (axi_halt_ack << MH_DEBUG_REG00_AXI_HALT_ACK_SHIFT)
+#define MH_DEBUG_REG00_SET_AXI_RDY_ENA(mh_debug_reg00_reg, axi_rdy_ena) \
+ mh_debug_reg00_reg = (mh_debug_reg00_reg & ~MH_DEBUG_REG00_AXI_RDY_ENA_MASK) | (axi_rdy_ena << MH_DEBUG_REG00_AXI_RDY_ENA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg00_t {
+ unsigned int mh_busy : MH_DEBUG_REG00_MH_BUSY_SIZE;
+ unsigned int trans_outstanding : MH_DEBUG_REG00_TRANS_OUTSTANDING_SIZE;
+ unsigned int cp_request : MH_DEBUG_REG00_CP_REQUEST_SIZE;
+ unsigned int vgt_request : MH_DEBUG_REG00_VGT_REQUEST_SIZE;
+ unsigned int tc_request : MH_DEBUG_REG00_TC_REQUEST_SIZE;
+ unsigned int tc_cam_empty : MH_DEBUG_REG00_TC_CAM_EMPTY_SIZE;
+ unsigned int tc_cam_full : MH_DEBUG_REG00_TC_CAM_FULL_SIZE;
+ unsigned int tcd_empty : MH_DEBUG_REG00_TCD_EMPTY_SIZE;
+ unsigned int tcd_full : MH_DEBUG_REG00_TCD_FULL_SIZE;
+ unsigned int rb_request : MH_DEBUG_REG00_RB_REQUEST_SIZE;
+ unsigned int pa_request : MH_DEBUG_REG00_PA_REQUEST_SIZE;
+ unsigned int mh_clk_en_state : MH_DEBUG_REG00_MH_CLK_EN_STATE_SIZE;
+ unsigned int arq_empty : MH_DEBUG_REG00_ARQ_EMPTY_SIZE;
+ unsigned int arq_full : MH_DEBUG_REG00_ARQ_FULL_SIZE;
+ unsigned int wdb_empty : MH_DEBUG_REG00_WDB_EMPTY_SIZE;
+ unsigned int wdb_full : MH_DEBUG_REG00_WDB_FULL_SIZE;
+ unsigned int axi_avalid : MH_DEBUG_REG00_AXI_AVALID_SIZE;
+ unsigned int axi_aready : MH_DEBUG_REG00_AXI_AREADY_SIZE;
+ unsigned int axi_arvalid : MH_DEBUG_REG00_AXI_ARVALID_SIZE;
+ unsigned int axi_arready : MH_DEBUG_REG00_AXI_ARREADY_SIZE;
+ unsigned int axi_wvalid : MH_DEBUG_REG00_AXI_WVALID_SIZE;
+ unsigned int axi_wready : MH_DEBUG_REG00_AXI_WREADY_SIZE;
+ unsigned int axi_rvalid : MH_DEBUG_REG00_AXI_RVALID_SIZE;
+ unsigned int axi_rready : MH_DEBUG_REG00_AXI_RREADY_SIZE;
+ unsigned int axi_bvalid : MH_DEBUG_REG00_AXI_BVALID_SIZE;
+ unsigned int axi_bready : MH_DEBUG_REG00_AXI_BREADY_SIZE;
+ unsigned int axi_halt_req : MH_DEBUG_REG00_AXI_HALT_REQ_SIZE;
+ unsigned int axi_halt_ack : MH_DEBUG_REG00_AXI_HALT_ACK_SIZE;
+ unsigned int axi_rdy_ena : MH_DEBUG_REG00_AXI_RDY_ENA_SIZE;
+ unsigned int : 3;
+ } mh_debug_reg00_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg00_t {
+ unsigned int : 3;
+ unsigned int axi_rdy_ena : MH_DEBUG_REG00_AXI_RDY_ENA_SIZE;
+ unsigned int axi_halt_ack : MH_DEBUG_REG00_AXI_HALT_ACK_SIZE;
+ unsigned int axi_halt_req : MH_DEBUG_REG00_AXI_HALT_REQ_SIZE;
+ unsigned int axi_bready : MH_DEBUG_REG00_AXI_BREADY_SIZE;
+ unsigned int axi_bvalid : MH_DEBUG_REG00_AXI_BVALID_SIZE;
+ unsigned int axi_rready : MH_DEBUG_REG00_AXI_RREADY_SIZE;
+ unsigned int axi_rvalid : MH_DEBUG_REG00_AXI_RVALID_SIZE;
+ unsigned int axi_wready : MH_DEBUG_REG00_AXI_WREADY_SIZE;
+ unsigned int axi_wvalid : MH_DEBUG_REG00_AXI_WVALID_SIZE;
+ unsigned int axi_arready : MH_DEBUG_REG00_AXI_ARREADY_SIZE;
+ unsigned int axi_arvalid : MH_DEBUG_REG00_AXI_ARVALID_SIZE;
+ unsigned int axi_aready : MH_DEBUG_REG00_AXI_AREADY_SIZE;
+ unsigned int axi_avalid : MH_DEBUG_REG00_AXI_AVALID_SIZE;
+ unsigned int wdb_full : MH_DEBUG_REG00_WDB_FULL_SIZE;
+ unsigned int wdb_empty : MH_DEBUG_REG00_WDB_EMPTY_SIZE;
+ unsigned int arq_full : MH_DEBUG_REG00_ARQ_FULL_SIZE;
+ unsigned int arq_empty : MH_DEBUG_REG00_ARQ_EMPTY_SIZE;
+ unsigned int mh_clk_en_state : MH_DEBUG_REG00_MH_CLK_EN_STATE_SIZE;
+ unsigned int pa_request : MH_DEBUG_REG00_PA_REQUEST_SIZE;
+ unsigned int rb_request : MH_DEBUG_REG00_RB_REQUEST_SIZE;
+ unsigned int tcd_full : MH_DEBUG_REG00_TCD_FULL_SIZE;
+ unsigned int tcd_empty : MH_DEBUG_REG00_TCD_EMPTY_SIZE;
+ unsigned int tc_cam_full : MH_DEBUG_REG00_TC_CAM_FULL_SIZE;
+ unsigned int tc_cam_empty : MH_DEBUG_REG00_TC_CAM_EMPTY_SIZE;
+ unsigned int tc_request : MH_DEBUG_REG00_TC_REQUEST_SIZE;
+ unsigned int vgt_request : MH_DEBUG_REG00_VGT_REQUEST_SIZE;
+ unsigned int cp_request : MH_DEBUG_REG00_CP_REQUEST_SIZE;
+ unsigned int trans_outstanding : MH_DEBUG_REG00_TRANS_OUTSTANDING_SIZE;
+ unsigned int mh_busy : MH_DEBUG_REG00_MH_BUSY_SIZE;
+ } mh_debug_reg00_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg00_t f;
+} mh_debug_reg00_u;
+
+
+/*
+ * MH_DEBUG_REG01 struct
+ */
+
+#define MH_DEBUG_REG01_CP_SEND_q_SIZE 1
+#define MH_DEBUG_REG01_CP_RTR_q_SIZE 1
+#define MH_DEBUG_REG01_CP_WRITE_q_SIZE 1
+#define MH_DEBUG_REG01_CP_TAG_q_SIZE 3
+#define MH_DEBUG_REG01_CP_BLEN_q_SIZE 1
+#define MH_DEBUG_REG01_VGT_SEND_q_SIZE 1
+#define MH_DEBUG_REG01_VGT_RTR_q_SIZE 1
+#define MH_DEBUG_REG01_VGT_TAG_q_SIZE 1
+#define MH_DEBUG_REG01_TC_SEND_q_SIZE 1
+#define MH_DEBUG_REG01_TC_RTR_q_SIZE 1
+#define MH_DEBUG_REG01_TC_BLEN_q_SIZE 1
+#define MH_DEBUG_REG01_TC_ROQ_SEND_q_SIZE 1
+#define MH_DEBUG_REG01_TC_ROQ_RTR_q_SIZE 1
+#define MH_DEBUG_REG01_TC_MH_written_SIZE 1
+#define MH_DEBUG_REG01_RB_SEND_q_SIZE 1
+#define MH_DEBUG_REG01_RB_RTR_q_SIZE 1
+#define MH_DEBUG_REG01_PA_SEND_q_SIZE 1
+#define MH_DEBUG_REG01_PA_RTR_q_SIZE 1
+
+#define MH_DEBUG_REG01_CP_SEND_q_SHIFT 0
+#define MH_DEBUG_REG01_CP_RTR_q_SHIFT 1
+#define MH_DEBUG_REG01_CP_WRITE_q_SHIFT 2
+#define MH_DEBUG_REG01_CP_TAG_q_SHIFT 3
+#define MH_DEBUG_REG01_CP_BLEN_q_SHIFT 6
+#define MH_DEBUG_REG01_VGT_SEND_q_SHIFT 7
+#define MH_DEBUG_REG01_VGT_RTR_q_SHIFT 8
+#define MH_DEBUG_REG01_VGT_TAG_q_SHIFT 9
+#define MH_DEBUG_REG01_TC_SEND_q_SHIFT 10
+#define MH_DEBUG_REG01_TC_RTR_q_SHIFT 11
+#define MH_DEBUG_REG01_TC_BLEN_q_SHIFT 12
+#define MH_DEBUG_REG01_TC_ROQ_SEND_q_SHIFT 13
+#define MH_DEBUG_REG01_TC_ROQ_RTR_q_SHIFT 14
+#define MH_DEBUG_REG01_TC_MH_written_SHIFT 15
+#define MH_DEBUG_REG01_RB_SEND_q_SHIFT 16
+#define MH_DEBUG_REG01_RB_RTR_q_SHIFT 17
+#define MH_DEBUG_REG01_PA_SEND_q_SHIFT 18
+#define MH_DEBUG_REG01_PA_RTR_q_SHIFT 19
+
+#define MH_DEBUG_REG01_CP_SEND_q_MASK 0x00000001
+#define MH_DEBUG_REG01_CP_RTR_q_MASK 0x00000002
+#define MH_DEBUG_REG01_CP_WRITE_q_MASK 0x00000004
+#define MH_DEBUG_REG01_CP_TAG_q_MASK 0x00000038
+#define MH_DEBUG_REG01_CP_BLEN_q_MASK 0x00000040
+#define MH_DEBUG_REG01_VGT_SEND_q_MASK 0x00000080
+#define MH_DEBUG_REG01_VGT_RTR_q_MASK 0x00000100
+#define MH_DEBUG_REG01_VGT_TAG_q_MASK 0x00000200
+#define MH_DEBUG_REG01_TC_SEND_q_MASK 0x00000400
+#define MH_DEBUG_REG01_TC_RTR_q_MASK 0x00000800
+#define MH_DEBUG_REG01_TC_BLEN_q_MASK 0x00001000
+#define MH_DEBUG_REG01_TC_ROQ_SEND_q_MASK 0x00002000
+#define MH_DEBUG_REG01_TC_ROQ_RTR_q_MASK 0x00004000
+#define MH_DEBUG_REG01_TC_MH_written_MASK 0x00008000
+#define MH_DEBUG_REG01_RB_SEND_q_MASK 0x00010000
+#define MH_DEBUG_REG01_RB_RTR_q_MASK 0x00020000
+#define MH_DEBUG_REG01_PA_SEND_q_MASK 0x00040000
+#define MH_DEBUG_REG01_PA_RTR_q_MASK 0x00080000
+
+#define MH_DEBUG_REG01_MASK \
+ (MH_DEBUG_REG01_CP_SEND_q_MASK | \
+ MH_DEBUG_REG01_CP_RTR_q_MASK | \
+ MH_DEBUG_REG01_CP_WRITE_q_MASK | \
+ MH_DEBUG_REG01_CP_TAG_q_MASK | \
+ MH_DEBUG_REG01_CP_BLEN_q_MASK | \
+ MH_DEBUG_REG01_VGT_SEND_q_MASK | \
+ MH_DEBUG_REG01_VGT_RTR_q_MASK | \
+ MH_DEBUG_REG01_VGT_TAG_q_MASK | \
+ MH_DEBUG_REG01_TC_SEND_q_MASK | \
+ MH_DEBUG_REG01_TC_RTR_q_MASK | \
+ MH_DEBUG_REG01_TC_BLEN_q_MASK | \
+ MH_DEBUG_REG01_TC_ROQ_SEND_q_MASK | \
+ MH_DEBUG_REG01_TC_ROQ_RTR_q_MASK | \
+ MH_DEBUG_REG01_TC_MH_written_MASK | \
+ MH_DEBUG_REG01_RB_SEND_q_MASK | \
+ MH_DEBUG_REG01_RB_RTR_q_MASK | \
+ MH_DEBUG_REG01_PA_SEND_q_MASK | \
+ MH_DEBUG_REG01_PA_RTR_q_MASK)
+
+#define MH_DEBUG_REG01(cp_send_q, cp_rtr_q, cp_write_q, cp_tag_q, cp_blen_q, vgt_send_q, vgt_rtr_q, vgt_tag_q, tc_send_q, tc_rtr_q, tc_blen_q, tc_roq_send_q, tc_roq_rtr_q, tc_mh_written, rb_send_q, rb_rtr_q, pa_send_q, pa_rtr_q) \
+ ((cp_send_q << MH_DEBUG_REG01_CP_SEND_q_SHIFT) | \
+ (cp_rtr_q << MH_DEBUG_REG01_CP_RTR_q_SHIFT) | \
+ (cp_write_q << MH_DEBUG_REG01_CP_WRITE_q_SHIFT) | \
+ (cp_tag_q << MH_DEBUG_REG01_CP_TAG_q_SHIFT) | \
+ (cp_blen_q << MH_DEBUG_REG01_CP_BLEN_q_SHIFT) | \
+ (vgt_send_q << MH_DEBUG_REG01_VGT_SEND_q_SHIFT) | \
+ (vgt_rtr_q << MH_DEBUG_REG01_VGT_RTR_q_SHIFT) | \
+ (vgt_tag_q << MH_DEBUG_REG01_VGT_TAG_q_SHIFT) | \
+ (tc_send_q << MH_DEBUG_REG01_TC_SEND_q_SHIFT) | \
+ (tc_rtr_q << MH_DEBUG_REG01_TC_RTR_q_SHIFT) | \
+ (tc_blen_q << MH_DEBUG_REG01_TC_BLEN_q_SHIFT) | \
+ (tc_roq_send_q << MH_DEBUG_REG01_TC_ROQ_SEND_q_SHIFT) | \
+ (tc_roq_rtr_q << MH_DEBUG_REG01_TC_ROQ_RTR_q_SHIFT) | \
+ (tc_mh_written << MH_DEBUG_REG01_TC_MH_written_SHIFT) | \
+ (rb_send_q << MH_DEBUG_REG01_RB_SEND_q_SHIFT) | \
+ (rb_rtr_q << MH_DEBUG_REG01_RB_RTR_q_SHIFT) | \
+ (pa_send_q << MH_DEBUG_REG01_PA_SEND_q_SHIFT) | \
+ (pa_rtr_q << MH_DEBUG_REG01_PA_RTR_q_SHIFT))
+
+#define MH_DEBUG_REG01_GET_CP_SEND_q(mh_debug_reg01) \
+ ((mh_debug_reg01 & MH_DEBUG_REG01_CP_SEND_q_MASK) >> MH_DEBUG_REG01_CP_SEND_q_SHIFT)
+#define MH_DEBUG_REG01_GET_CP_RTR_q(mh_debug_reg01) \
+ ((mh_debug_reg01 & MH_DEBUG_REG01_CP_RTR_q_MASK) >> MH_DEBUG_REG01_CP_RTR_q_SHIFT)
+#define MH_DEBUG_REG01_GET_CP_WRITE_q(mh_debug_reg01) \
+ ((mh_debug_reg01 & MH_DEBUG_REG01_CP_WRITE_q_MASK) >> MH_DEBUG_REG01_CP_WRITE_q_SHIFT)
+#define MH_DEBUG_REG01_GET_CP_TAG_q(mh_debug_reg01) \
+ ((mh_debug_reg01 & MH_DEBUG_REG01_CP_TAG_q_MASK) >> MH_DEBUG_REG01_CP_TAG_q_SHIFT)
+#define MH_DEBUG_REG01_GET_CP_BLEN_q(mh_debug_reg01) \
+ ((mh_debug_reg01 & MH_DEBUG_REG01_CP_BLEN_q_MASK) >> MH_DEBUG_REG01_CP_BLEN_q_SHIFT)
+#define MH_DEBUG_REG01_GET_VGT_SEND_q(mh_debug_reg01) \
+ ((mh_debug_reg01 & MH_DEBUG_REG01_VGT_SEND_q_MASK) >> MH_DEBUG_REG01_VGT_SEND_q_SHIFT)
+#define MH_DEBUG_REG01_GET_VGT_RTR_q(mh_debug_reg01) \
+ ((mh_debug_reg01 & MH_DEBUG_REG01_VGT_RTR_q_MASK) >> MH_DEBUG_REG01_VGT_RTR_q_SHIFT)
+#define MH_DEBUG_REG01_GET_VGT_TAG_q(mh_debug_reg01) \
+ ((mh_debug_reg01 & MH_DEBUG_REG01_VGT_TAG_q_MASK) >> MH_DEBUG_REG01_VGT_TAG_q_SHIFT)
+#define MH_DEBUG_REG01_GET_TC_SEND_q(mh_debug_reg01) \
+ ((mh_debug_reg01 & MH_DEBUG_REG01_TC_SEND_q_MASK) >> MH_DEBUG_REG01_TC_SEND_q_SHIFT)
+#define MH_DEBUG_REG01_GET_TC_RTR_q(mh_debug_reg01) \
+ ((mh_debug_reg01 & MH_DEBUG_REG01_TC_RTR_q_MASK) >> MH_DEBUG_REG01_TC_RTR_q_SHIFT)
+#define MH_DEBUG_REG01_GET_TC_BLEN_q(mh_debug_reg01) \
+ ((mh_debug_reg01 & MH_DEBUG_REG01_TC_BLEN_q_MASK) >> MH_DEBUG_REG01_TC_BLEN_q_SHIFT)
+#define MH_DEBUG_REG01_GET_TC_ROQ_SEND_q(mh_debug_reg01) \
+ ((mh_debug_reg01 & MH_DEBUG_REG01_TC_ROQ_SEND_q_MASK) >> MH_DEBUG_REG01_TC_ROQ_SEND_q_SHIFT)
+#define MH_DEBUG_REG01_GET_TC_ROQ_RTR_q(mh_debug_reg01) \
+ ((mh_debug_reg01 & MH_DEBUG_REG01_TC_ROQ_RTR_q_MASK) >> MH_DEBUG_REG01_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG01_GET_TC_MH_written(mh_debug_reg01) \
+ ((mh_debug_reg01 & MH_DEBUG_REG01_TC_MH_written_MASK) >> MH_DEBUG_REG01_TC_MH_written_SHIFT)
+#define MH_DEBUG_REG01_GET_RB_SEND_q(mh_debug_reg01) \
+ ((mh_debug_reg01 & MH_DEBUG_REG01_RB_SEND_q_MASK) >> MH_DEBUG_REG01_RB_SEND_q_SHIFT)
+#define MH_DEBUG_REG01_GET_RB_RTR_q(mh_debug_reg01) \
+ ((mh_debug_reg01 & MH_DEBUG_REG01_RB_RTR_q_MASK) >> MH_DEBUG_REG01_RB_RTR_q_SHIFT)
+#define MH_DEBUG_REG01_GET_PA_SEND_q(mh_debug_reg01) \
+ ((mh_debug_reg01 & MH_DEBUG_REG01_PA_SEND_q_MASK) >> MH_DEBUG_REG01_PA_SEND_q_SHIFT)
+#define MH_DEBUG_REG01_GET_PA_RTR_q(mh_debug_reg01) \
+ ((mh_debug_reg01 & MH_DEBUG_REG01_PA_RTR_q_MASK) >> MH_DEBUG_REG01_PA_RTR_q_SHIFT)
+
+#define MH_DEBUG_REG01_SET_CP_SEND_q(mh_debug_reg01_reg, cp_send_q) \
+ mh_debug_reg01_reg = (mh_debug_reg01_reg & ~MH_DEBUG_REG01_CP_SEND_q_MASK) | (cp_send_q << MH_DEBUG_REG01_CP_SEND_q_SHIFT)
+#define MH_DEBUG_REG01_SET_CP_RTR_q(mh_debug_reg01_reg, cp_rtr_q) \
+ mh_debug_reg01_reg = (mh_debug_reg01_reg & ~MH_DEBUG_REG01_CP_RTR_q_MASK) | (cp_rtr_q << MH_DEBUG_REG01_CP_RTR_q_SHIFT)
+#define MH_DEBUG_REG01_SET_CP_WRITE_q(mh_debug_reg01_reg, cp_write_q) \
+ mh_debug_reg01_reg = (mh_debug_reg01_reg & ~MH_DEBUG_REG01_CP_WRITE_q_MASK) | (cp_write_q << MH_DEBUG_REG01_CP_WRITE_q_SHIFT)
+#define MH_DEBUG_REG01_SET_CP_TAG_q(mh_debug_reg01_reg, cp_tag_q) \
+ mh_debug_reg01_reg = (mh_debug_reg01_reg & ~MH_DEBUG_REG01_CP_TAG_q_MASK) | (cp_tag_q << MH_DEBUG_REG01_CP_TAG_q_SHIFT)
+#define MH_DEBUG_REG01_SET_CP_BLEN_q(mh_debug_reg01_reg, cp_blen_q) \
+ mh_debug_reg01_reg = (mh_debug_reg01_reg & ~MH_DEBUG_REG01_CP_BLEN_q_MASK) | (cp_blen_q << MH_DEBUG_REG01_CP_BLEN_q_SHIFT)
+#define MH_DEBUG_REG01_SET_VGT_SEND_q(mh_debug_reg01_reg, vgt_send_q) \
+ mh_debug_reg01_reg = (mh_debug_reg01_reg & ~MH_DEBUG_REG01_VGT_SEND_q_MASK) | (vgt_send_q << MH_DEBUG_REG01_VGT_SEND_q_SHIFT)
+#define MH_DEBUG_REG01_SET_VGT_RTR_q(mh_debug_reg01_reg, vgt_rtr_q) \
+ mh_debug_reg01_reg = (mh_debug_reg01_reg & ~MH_DEBUG_REG01_VGT_RTR_q_MASK) | (vgt_rtr_q << MH_DEBUG_REG01_VGT_RTR_q_SHIFT)
+#define MH_DEBUG_REG01_SET_VGT_TAG_q(mh_debug_reg01_reg, vgt_tag_q) \
+ mh_debug_reg01_reg = (mh_debug_reg01_reg & ~MH_DEBUG_REG01_VGT_TAG_q_MASK) | (vgt_tag_q << MH_DEBUG_REG01_VGT_TAG_q_SHIFT)
+#define MH_DEBUG_REG01_SET_TC_SEND_q(mh_debug_reg01_reg, tc_send_q) \
+ mh_debug_reg01_reg = (mh_debug_reg01_reg & ~MH_DEBUG_REG01_TC_SEND_q_MASK) | (tc_send_q << MH_DEBUG_REG01_TC_SEND_q_SHIFT)
+#define MH_DEBUG_REG01_SET_TC_RTR_q(mh_debug_reg01_reg, tc_rtr_q) \
+ mh_debug_reg01_reg = (mh_debug_reg01_reg & ~MH_DEBUG_REG01_TC_RTR_q_MASK) | (tc_rtr_q << MH_DEBUG_REG01_TC_RTR_q_SHIFT)
+#define MH_DEBUG_REG01_SET_TC_BLEN_q(mh_debug_reg01_reg, tc_blen_q) \
+ mh_debug_reg01_reg = (mh_debug_reg01_reg & ~MH_DEBUG_REG01_TC_BLEN_q_MASK) | (tc_blen_q << MH_DEBUG_REG01_TC_BLEN_q_SHIFT)
+#define MH_DEBUG_REG01_SET_TC_ROQ_SEND_q(mh_debug_reg01_reg, tc_roq_send_q) \
+ mh_debug_reg01_reg = (mh_debug_reg01_reg & ~MH_DEBUG_REG01_TC_ROQ_SEND_q_MASK) | (tc_roq_send_q << MH_DEBUG_REG01_TC_ROQ_SEND_q_SHIFT)
+#define MH_DEBUG_REG01_SET_TC_ROQ_RTR_q(mh_debug_reg01_reg, tc_roq_rtr_q) \
+ mh_debug_reg01_reg = (mh_debug_reg01_reg & ~MH_DEBUG_REG01_TC_ROQ_RTR_q_MASK) | (tc_roq_rtr_q << MH_DEBUG_REG01_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG01_SET_TC_MH_written(mh_debug_reg01_reg, tc_mh_written) \
+ mh_debug_reg01_reg = (mh_debug_reg01_reg & ~MH_DEBUG_REG01_TC_MH_written_MASK) | (tc_mh_written << MH_DEBUG_REG01_TC_MH_written_SHIFT)
+#define MH_DEBUG_REG01_SET_RB_SEND_q(mh_debug_reg01_reg, rb_send_q) \
+ mh_debug_reg01_reg = (mh_debug_reg01_reg & ~MH_DEBUG_REG01_RB_SEND_q_MASK) | (rb_send_q << MH_DEBUG_REG01_RB_SEND_q_SHIFT)
+#define MH_DEBUG_REG01_SET_RB_RTR_q(mh_debug_reg01_reg, rb_rtr_q) \
+ mh_debug_reg01_reg = (mh_debug_reg01_reg & ~MH_DEBUG_REG01_RB_RTR_q_MASK) | (rb_rtr_q << MH_DEBUG_REG01_RB_RTR_q_SHIFT)
+#define MH_DEBUG_REG01_SET_PA_SEND_q(mh_debug_reg01_reg, pa_send_q) \
+ mh_debug_reg01_reg = (mh_debug_reg01_reg & ~MH_DEBUG_REG01_PA_SEND_q_MASK) | (pa_send_q << MH_DEBUG_REG01_PA_SEND_q_SHIFT)
+#define MH_DEBUG_REG01_SET_PA_RTR_q(mh_debug_reg01_reg, pa_rtr_q) \
+ mh_debug_reg01_reg = (mh_debug_reg01_reg & ~MH_DEBUG_REG01_PA_RTR_q_MASK) | (pa_rtr_q << MH_DEBUG_REG01_PA_RTR_q_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg01_t {
+ unsigned int cp_send_q : MH_DEBUG_REG01_CP_SEND_q_SIZE;
+ unsigned int cp_rtr_q : MH_DEBUG_REG01_CP_RTR_q_SIZE;
+ unsigned int cp_write_q : MH_DEBUG_REG01_CP_WRITE_q_SIZE;
+ unsigned int cp_tag_q : MH_DEBUG_REG01_CP_TAG_q_SIZE;
+ unsigned int cp_blen_q : MH_DEBUG_REG01_CP_BLEN_q_SIZE;
+ unsigned int vgt_send_q : MH_DEBUG_REG01_VGT_SEND_q_SIZE;
+ unsigned int vgt_rtr_q : MH_DEBUG_REG01_VGT_RTR_q_SIZE;
+ unsigned int vgt_tag_q : MH_DEBUG_REG01_VGT_TAG_q_SIZE;
+ unsigned int tc_send_q : MH_DEBUG_REG01_TC_SEND_q_SIZE;
+ unsigned int tc_rtr_q : MH_DEBUG_REG01_TC_RTR_q_SIZE;
+ unsigned int tc_blen_q : MH_DEBUG_REG01_TC_BLEN_q_SIZE;
+ unsigned int tc_roq_send_q : MH_DEBUG_REG01_TC_ROQ_SEND_q_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG01_TC_ROQ_RTR_q_SIZE;
+ unsigned int tc_mh_written : MH_DEBUG_REG01_TC_MH_written_SIZE;
+ unsigned int rb_send_q : MH_DEBUG_REG01_RB_SEND_q_SIZE;
+ unsigned int rb_rtr_q : MH_DEBUG_REG01_RB_RTR_q_SIZE;
+ unsigned int pa_send_q : MH_DEBUG_REG01_PA_SEND_q_SIZE;
+ unsigned int pa_rtr_q : MH_DEBUG_REG01_PA_RTR_q_SIZE;
+ unsigned int : 12;
+ } mh_debug_reg01_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg01_t {
+ unsigned int : 12;
+ unsigned int pa_rtr_q : MH_DEBUG_REG01_PA_RTR_q_SIZE;
+ unsigned int pa_send_q : MH_DEBUG_REG01_PA_SEND_q_SIZE;
+ unsigned int rb_rtr_q : MH_DEBUG_REG01_RB_RTR_q_SIZE;
+ unsigned int rb_send_q : MH_DEBUG_REG01_RB_SEND_q_SIZE;
+ unsigned int tc_mh_written : MH_DEBUG_REG01_TC_MH_written_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG01_TC_ROQ_RTR_q_SIZE;
+ unsigned int tc_roq_send_q : MH_DEBUG_REG01_TC_ROQ_SEND_q_SIZE;
+ unsigned int tc_blen_q : MH_DEBUG_REG01_TC_BLEN_q_SIZE;
+ unsigned int tc_rtr_q : MH_DEBUG_REG01_TC_RTR_q_SIZE;
+ unsigned int tc_send_q : MH_DEBUG_REG01_TC_SEND_q_SIZE;
+ unsigned int vgt_tag_q : MH_DEBUG_REG01_VGT_TAG_q_SIZE;
+ unsigned int vgt_rtr_q : MH_DEBUG_REG01_VGT_RTR_q_SIZE;
+ unsigned int vgt_send_q : MH_DEBUG_REG01_VGT_SEND_q_SIZE;
+ unsigned int cp_blen_q : MH_DEBUG_REG01_CP_BLEN_q_SIZE;
+ unsigned int cp_tag_q : MH_DEBUG_REG01_CP_TAG_q_SIZE;
+ unsigned int cp_write_q : MH_DEBUG_REG01_CP_WRITE_q_SIZE;
+ unsigned int cp_rtr_q : MH_DEBUG_REG01_CP_RTR_q_SIZE;
+ unsigned int cp_send_q : MH_DEBUG_REG01_CP_SEND_q_SIZE;
+ } mh_debug_reg01_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg01_t f;
+} mh_debug_reg01_u;
+
+
+/*
+ * MH_DEBUG_REG02 struct
+ */
+
+#define MH_DEBUG_REG02_MH_CP_grb_send_SIZE 1
+#define MH_DEBUG_REG02_MH_VGT_grb_send_SIZE 1
+#define MH_DEBUG_REG02_MH_TC_mcsend_SIZE 1
+#define MH_DEBUG_REG02_MH_CLNT_rlast_SIZE 1
+#define MH_DEBUG_REG02_MH_CLNT_tag_SIZE 3
+#define MH_DEBUG_REG02_RDC_RID_SIZE 3
+#define MH_DEBUG_REG02_RDC_RRESP_SIZE 2
+#define MH_DEBUG_REG02_MH_CP_writeclean_SIZE 1
+#define MH_DEBUG_REG02_MH_RB_writeclean_SIZE 1
+#define MH_DEBUG_REG02_MH_PA_writeclean_SIZE 1
+#define MH_DEBUG_REG02_BRC_BID_SIZE 3
+#define MH_DEBUG_REG02_BRC_BRESP_SIZE 2
+
+#define MH_DEBUG_REG02_MH_CP_grb_send_SHIFT 0
+#define MH_DEBUG_REG02_MH_VGT_grb_send_SHIFT 1
+#define MH_DEBUG_REG02_MH_TC_mcsend_SHIFT 2
+#define MH_DEBUG_REG02_MH_CLNT_rlast_SHIFT 3
+#define MH_DEBUG_REG02_MH_CLNT_tag_SHIFT 4
+#define MH_DEBUG_REG02_RDC_RID_SHIFT 7
+#define MH_DEBUG_REG02_RDC_RRESP_SHIFT 10
+#define MH_DEBUG_REG02_MH_CP_writeclean_SHIFT 12
+#define MH_DEBUG_REG02_MH_RB_writeclean_SHIFT 13
+#define MH_DEBUG_REG02_MH_PA_writeclean_SHIFT 14
+#define MH_DEBUG_REG02_BRC_BID_SHIFT 15
+#define MH_DEBUG_REG02_BRC_BRESP_SHIFT 18
+
+#define MH_DEBUG_REG02_MH_CP_grb_send_MASK 0x00000001
+#define MH_DEBUG_REG02_MH_VGT_grb_send_MASK 0x00000002
+#define MH_DEBUG_REG02_MH_TC_mcsend_MASK 0x00000004
+#define MH_DEBUG_REG02_MH_CLNT_rlast_MASK 0x00000008
+#define MH_DEBUG_REG02_MH_CLNT_tag_MASK 0x00000070
+#define MH_DEBUG_REG02_RDC_RID_MASK 0x00000380
+#define MH_DEBUG_REG02_RDC_RRESP_MASK 0x00000c00
+#define MH_DEBUG_REG02_MH_CP_writeclean_MASK 0x00001000
+#define MH_DEBUG_REG02_MH_RB_writeclean_MASK 0x00002000
+#define MH_DEBUG_REG02_MH_PA_writeclean_MASK 0x00004000
+#define MH_DEBUG_REG02_BRC_BID_MASK 0x00038000
+#define MH_DEBUG_REG02_BRC_BRESP_MASK 0x000c0000
+
+#define MH_DEBUG_REG02_MASK \
+ (MH_DEBUG_REG02_MH_CP_grb_send_MASK | \
+ MH_DEBUG_REG02_MH_VGT_grb_send_MASK | \
+ MH_DEBUG_REG02_MH_TC_mcsend_MASK | \
+ MH_DEBUG_REG02_MH_CLNT_rlast_MASK | \
+ MH_DEBUG_REG02_MH_CLNT_tag_MASK | \
+ MH_DEBUG_REG02_RDC_RID_MASK | \
+ MH_DEBUG_REG02_RDC_RRESP_MASK | \
+ MH_DEBUG_REG02_MH_CP_writeclean_MASK | \
+ MH_DEBUG_REG02_MH_RB_writeclean_MASK | \
+ MH_DEBUG_REG02_MH_PA_writeclean_MASK | \
+ MH_DEBUG_REG02_BRC_BID_MASK | \
+ MH_DEBUG_REG02_BRC_BRESP_MASK)
+
+#define MH_DEBUG_REG02(mh_cp_grb_send, mh_vgt_grb_send, mh_tc_mcsend, mh_clnt_rlast, mh_clnt_tag, rdc_rid, rdc_rresp, mh_cp_writeclean, mh_rb_writeclean, mh_pa_writeclean, brc_bid, brc_bresp) \
+ ((mh_cp_grb_send << MH_DEBUG_REG02_MH_CP_grb_send_SHIFT) | \
+ (mh_vgt_grb_send << MH_DEBUG_REG02_MH_VGT_grb_send_SHIFT) | \
+ (mh_tc_mcsend << MH_DEBUG_REG02_MH_TC_mcsend_SHIFT) | \
+ (mh_clnt_rlast << MH_DEBUG_REG02_MH_CLNT_rlast_SHIFT) | \
+ (mh_clnt_tag << MH_DEBUG_REG02_MH_CLNT_tag_SHIFT) | \
+ (rdc_rid << MH_DEBUG_REG02_RDC_RID_SHIFT) | \
+ (rdc_rresp << MH_DEBUG_REG02_RDC_RRESP_SHIFT) | \
+ (mh_cp_writeclean << MH_DEBUG_REG02_MH_CP_writeclean_SHIFT) | \
+ (mh_rb_writeclean << MH_DEBUG_REG02_MH_RB_writeclean_SHIFT) | \
+ (mh_pa_writeclean << MH_DEBUG_REG02_MH_PA_writeclean_SHIFT) | \
+ (brc_bid << MH_DEBUG_REG02_BRC_BID_SHIFT) | \
+ (brc_bresp << MH_DEBUG_REG02_BRC_BRESP_SHIFT))
+
+#define MH_DEBUG_REG02_GET_MH_CP_grb_send(mh_debug_reg02) \
+ ((mh_debug_reg02 & MH_DEBUG_REG02_MH_CP_grb_send_MASK) >> MH_DEBUG_REG02_MH_CP_grb_send_SHIFT)
+#define MH_DEBUG_REG02_GET_MH_VGT_grb_send(mh_debug_reg02) \
+ ((mh_debug_reg02 & MH_DEBUG_REG02_MH_VGT_grb_send_MASK) >> MH_DEBUG_REG02_MH_VGT_grb_send_SHIFT)
+#define MH_DEBUG_REG02_GET_MH_TC_mcsend(mh_debug_reg02) \
+ ((mh_debug_reg02 & MH_DEBUG_REG02_MH_TC_mcsend_MASK) >> MH_DEBUG_REG02_MH_TC_mcsend_SHIFT)
+#define MH_DEBUG_REG02_GET_MH_CLNT_rlast(mh_debug_reg02) \
+ ((mh_debug_reg02 & MH_DEBUG_REG02_MH_CLNT_rlast_MASK) >> MH_DEBUG_REG02_MH_CLNT_rlast_SHIFT)
+#define MH_DEBUG_REG02_GET_MH_CLNT_tag(mh_debug_reg02) \
+ ((mh_debug_reg02 & MH_DEBUG_REG02_MH_CLNT_tag_MASK) >> MH_DEBUG_REG02_MH_CLNT_tag_SHIFT)
+#define MH_DEBUG_REG02_GET_RDC_RID(mh_debug_reg02) \
+ ((mh_debug_reg02 & MH_DEBUG_REG02_RDC_RID_MASK) >> MH_DEBUG_REG02_RDC_RID_SHIFT)
+#define MH_DEBUG_REG02_GET_RDC_RRESP(mh_debug_reg02) \
+ ((mh_debug_reg02 & MH_DEBUG_REG02_RDC_RRESP_MASK) >> MH_DEBUG_REG02_RDC_RRESP_SHIFT)
+#define MH_DEBUG_REG02_GET_MH_CP_writeclean(mh_debug_reg02) \
+ ((mh_debug_reg02 & MH_DEBUG_REG02_MH_CP_writeclean_MASK) >> MH_DEBUG_REG02_MH_CP_writeclean_SHIFT)
+#define MH_DEBUG_REG02_GET_MH_RB_writeclean(mh_debug_reg02) \
+ ((mh_debug_reg02 & MH_DEBUG_REG02_MH_RB_writeclean_MASK) >> MH_DEBUG_REG02_MH_RB_writeclean_SHIFT)
+#define MH_DEBUG_REG02_GET_MH_PA_writeclean(mh_debug_reg02) \
+ ((mh_debug_reg02 & MH_DEBUG_REG02_MH_PA_writeclean_MASK) >> MH_DEBUG_REG02_MH_PA_writeclean_SHIFT)
+#define MH_DEBUG_REG02_GET_BRC_BID(mh_debug_reg02) \
+ ((mh_debug_reg02 & MH_DEBUG_REG02_BRC_BID_MASK) >> MH_DEBUG_REG02_BRC_BID_SHIFT)
+#define MH_DEBUG_REG02_GET_BRC_BRESP(mh_debug_reg02) \
+ ((mh_debug_reg02 & MH_DEBUG_REG02_BRC_BRESP_MASK) >> MH_DEBUG_REG02_BRC_BRESP_SHIFT)
+
+#define MH_DEBUG_REG02_SET_MH_CP_grb_send(mh_debug_reg02_reg, mh_cp_grb_send) \
+ mh_debug_reg02_reg = (mh_debug_reg02_reg & ~MH_DEBUG_REG02_MH_CP_grb_send_MASK) | (mh_cp_grb_send << MH_DEBUG_REG02_MH_CP_grb_send_SHIFT)
+#define MH_DEBUG_REG02_SET_MH_VGT_grb_send(mh_debug_reg02_reg, mh_vgt_grb_send) \
+ mh_debug_reg02_reg = (mh_debug_reg02_reg & ~MH_DEBUG_REG02_MH_VGT_grb_send_MASK) | (mh_vgt_grb_send << MH_DEBUG_REG02_MH_VGT_grb_send_SHIFT)
+#define MH_DEBUG_REG02_SET_MH_TC_mcsend(mh_debug_reg02_reg, mh_tc_mcsend) \
+ mh_debug_reg02_reg = (mh_debug_reg02_reg & ~MH_DEBUG_REG02_MH_TC_mcsend_MASK) | (mh_tc_mcsend << MH_DEBUG_REG02_MH_TC_mcsend_SHIFT)
+#define MH_DEBUG_REG02_SET_MH_CLNT_rlast(mh_debug_reg02_reg, mh_clnt_rlast) \
+ mh_debug_reg02_reg = (mh_debug_reg02_reg & ~MH_DEBUG_REG02_MH_CLNT_rlast_MASK) | (mh_clnt_rlast << MH_DEBUG_REG02_MH_CLNT_rlast_SHIFT)
+#define MH_DEBUG_REG02_SET_MH_CLNT_tag(mh_debug_reg02_reg, mh_clnt_tag) \
+ mh_debug_reg02_reg = (mh_debug_reg02_reg & ~MH_DEBUG_REG02_MH_CLNT_tag_MASK) | (mh_clnt_tag << MH_DEBUG_REG02_MH_CLNT_tag_SHIFT)
+#define MH_DEBUG_REG02_SET_RDC_RID(mh_debug_reg02_reg, rdc_rid) \
+ mh_debug_reg02_reg = (mh_debug_reg02_reg & ~MH_DEBUG_REG02_RDC_RID_MASK) | (rdc_rid << MH_DEBUG_REG02_RDC_RID_SHIFT)
+#define MH_DEBUG_REG02_SET_RDC_RRESP(mh_debug_reg02_reg, rdc_rresp) \
+ mh_debug_reg02_reg = (mh_debug_reg02_reg & ~MH_DEBUG_REG02_RDC_RRESP_MASK) | (rdc_rresp << MH_DEBUG_REG02_RDC_RRESP_SHIFT)
+#define MH_DEBUG_REG02_SET_MH_CP_writeclean(mh_debug_reg02_reg, mh_cp_writeclean) \
+ mh_debug_reg02_reg = (mh_debug_reg02_reg & ~MH_DEBUG_REG02_MH_CP_writeclean_MASK) | (mh_cp_writeclean << MH_DEBUG_REG02_MH_CP_writeclean_SHIFT)
+#define MH_DEBUG_REG02_SET_MH_RB_writeclean(mh_debug_reg02_reg, mh_rb_writeclean) \
+ mh_debug_reg02_reg = (mh_debug_reg02_reg & ~MH_DEBUG_REG02_MH_RB_writeclean_MASK) | (mh_rb_writeclean << MH_DEBUG_REG02_MH_RB_writeclean_SHIFT)
+#define MH_DEBUG_REG02_SET_MH_PA_writeclean(mh_debug_reg02_reg, mh_pa_writeclean) \
+ mh_debug_reg02_reg = (mh_debug_reg02_reg & ~MH_DEBUG_REG02_MH_PA_writeclean_MASK) | (mh_pa_writeclean << MH_DEBUG_REG02_MH_PA_writeclean_SHIFT)
+#define MH_DEBUG_REG02_SET_BRC_BID(mh_debug_reg02_reg, brc_bid) \
+ mh_debug_reg02_reg = (mh_debug_reg02_reg & ~MH_DEBUG_REG02_BRC_BID_MASK) | (brc_bid << MH_DEBUG_REG02_BRC_BID_SHIFT)
+#define MH_DEBUG_REG02_SET_BRC_BRESP(mh_debug_reg02_reg, brc_bresp) \
+ mh_debug_reg02_reg = (mh_debug_reg02_reg & ~MH_DEBUG_REG02_BRC_BRESP_MASK) | (brc_bresp << MH_DEBUG_REG02_BRC_BRESP_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg02_t {
+ unsigned int mh_cp_grb_send : MH_DEBUG_REG02_MH_CP_grb_send_SIZE;
+ unsigned int mh_vgt_grb_send : MH_DEBUG_REG02_MH_VGT_grb_send_SIZE;
+ unsigned int mh_tc_mcsend : MH_DEBUG_REG02_MH_TC_mcsend_SIZE;
+ unsigned int mh_clnt_rlast : MH_DEBUG_REG02_MH_CLNT_rlast_SIZE;
+ unsigned int mh_clnt_tag : MH_DEBUG_REG02_MH_CLNT_tag_SIZE;
+ unsigned int rdc_rid : MH_DEBUG_REG02_RDC_RID_SIZE;
+ unsigned int rdc_rresp : MH_DEBUG_REG02_RDC_RRESP_SIZE;
+ unsigned int mh_cp_writeclean : MH_DEBUG_REG02_MH_CP_writeclean_SIZE;
+ unsigned int mh_rb_writeclean : MH_DEBUG_REG02_MH_RB_writeclean_SIZE;
+ unsigned int mh_pa_writeclean : MH_DEBUG_REG02_MH_PA_writeclean_SIZE;
+ unsigned int brc_bid : MH_DEBUG_REG02_BRC_BID_SIZE;
+ unsigned int brc_bresp : MH_DEBUG_REG02_BRC_BRESP_SIZE;
+ unsigned int : 12;
+ } mh_debug_reg02_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg02_t {
+ unsigned int : 12;
+ unsigned int brc_bresp : MH_DEBUG_REG02_BRC_BRESP_SIZE;
+ unsigned int brc_bid : MH_DEBUG_REG02_BRC_BID_SIZE;
+ unsigned int mh_pa_writeclean : MH_DEBUG_REG02_MH_PA_writeclean_SIZE;
+ unsigned int mh_rb_writeclean : MH_DEBUG_REG02_MH_RB_writeclean_SIZE;
+ unsigned int mh_cp_writeclean : MH_DEBUG_REG02_MH_CP_writeclean_SIZE;
+ unsigned int rdc_rresp : MH_DEBUG_REG02_RDC_RRESP_SIZE;
+ unsigned int rdc_rid : MH_DEBUG_REG02_RDC_RID_SIZE;
+ unsigned int mh_clnt_tag : MH_DEBUG_REG02_MH_CLNT_tag_SIZE;
+ unsigned int mh_clnt_rlast : MH_DEBUG_REG02_MH_CLNT_rlast_SIZE;
+ unsigned int mh_tc_mcsend : MH_DEBUG_REG02_MH_TC_mcsend_SIZE;
+ unsigned int mh_vgt_grb_send : MH_DEBUG_REG02_MH_VGT_grb_send_SIZE;
+ unsigned int mh_cp_grb_send : MH_DEBUG_REG02_MH_CP_grb_send_SIZE;
+ } mh_debug_reg02_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg02_t f;
+} mh_debug_reg02_u;
+
+
+/*
+ * MH_DEBUG_REG03 struct
+ */
+
+#define MH_DEBUG_REG03_MH_CLNT_data_31_0_SIZE 32
+
+#define MH_DEBUG_REG03_MH_CLNT_data_31_0_SHIFT 0
+
+#define MH_DEBUG_REG03_MH_CLNT_data_31_0_MASK 0xffffffff
+
+#define MH_DEBUG_REG03_MASK \
+ (MH_DEBUG_REG03_MH_CLNT_data_31_0_MASK)
+
+#define MH_DEBUG_REG03(mh_clnt_data_31_0) \
+ ((mh_clnt_data_31_0 << MH_DEBUG_REG03_MH_CLNT_data_31_0_SHIFT))
+
+#define MH_DEBUG_REG03_GET_MH_CLNT_data_31_0(mh_debug_reg03) \
+ ((mh_debug_reg03 & MH_DEBUG_REG03_MH_CLNT_data_31_0_MASK) >> MH_DEBUG_REG03_MH_CLNT_data_31_0_SHIFT)
+
+#define MH_DEBUG_REG03_SET_MH_CLNT_data_31_0(mh_debug_reg03_reg, mh_clnt_data_31_0) \
+ mh_debug_reg03_reg = (mh_debug_reg03_reg & ~MH_DEBUG_REG03_MH_CLNT_data_31_0_MASK) | (mh_clnt_data_31_0 << MH_DEBUG_REG03_MH_CLNT_data_31_0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg03_t {
+ unsigned int mh_clnt_data_31_0 : MH_DEBUG_REG03_MH_CLNT_data_31_0_SIZE;
+ } mh_debug_reg03_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg03_t {
+ unsigned int mh_clnt_data_31_0 : MH_DEBUG_REG03_MH_CLNT_data_31_0_SIZE;
+ } mh_debug_reg03_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg03_t f;
+} mh_debug_reg03_u;
+
+
+/*
+ * MH_DEBUG_REG04 struct
+ */
+
+#define MH_DEBUG_REG04_MH_CLNT_data_63_32_SIZE 32
+
+#define MH_DEBUG_REG04_MH_CLNT_data_63_32_SHIFT 0
+
+#define MH_DEBUG_REG04_MH_CLNT_data_63_32_MASK 0xffffffff
+
+#define MH_DEBUG_REG04_MASK \
+ (MH_DEBUG_REG04_MH_CLNT_data_63_32_MASK)
+
+#define MH_DEBUG_REG04(mh_clnt_data_63_32) \
+ ((mh_clnt_data_63_32 << MH_DEBUG_REG04_MH_CLNT_data_63_32_SHIFT))
+
+#define MH_DEBUG_REG04_GET_MH_CLNT_data_63_32(mh_debug_reg04) \
+ ((mh_debug_reg04 & MH_DEBUG_REG04_MH_CLNT_data_63_32_MASK) >> MH_DEBUG_REG04_MH_CLNT_data_63_32_SHIFT)
+
+#define MH_DEBUG_REG04_SET_MH_CLNT_data_63_32(mh_debug_reg04_reg, mh_clnt_data_63_32) \
+ mh_debug_reg04_reg = (mh_debug_reg04_reg & ~MH_DEBUG_REG04_MH_CLNT_data_63_32_MASK) | (mh_clnt_data_63_32 << MH_DEBUG_REG04_MH_CLNT_data_63_32_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg04_t {
+ unsigned int mh_clnt_data_63_32 : MH_DEBUG_REG04_MH_CLNT_data_63_32_SIZE;
+ } mh_debug_reg04_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg04_t {
+ unsigned int mh_clnt_data_63_32 : MH_DEBUG_REG04_MH_CLNT_data_63_32_SIZE;
+ } mh_debug_reg04_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg04_t f;
+} mh_debug_reg04_u;
+
+
+/*
+ * MH_DEBUG_REG05 struct
+ */
+
+#define MH_DEBUG_REG05_CP_MH_send_SIZE 1
+#define MH_DEBUG_REG05_CP_MH_write_SIZE 1
+#define MH_DEBUG_REG05_CP_MH_tag_SIZE 3
+#define MH_DEBUG_REG05_CP_MH_ad_31_5_SIZE 27
+
+#define MH_DEBUG_REG05_CP_MH_send_SHIFT 0
+#define MH_DEBUG_REG05_CP_MH_write_SHIFT 1
+#define MH_DEBUG_REG05_CP_MH_tag_SHIFT 2
+#define MH_DEBUG_REG05_CP_MH_ad_31_5_SHIFT 5
+
+#define MH_DEBUG_REG05_CP_MH_send_MASK 0x00000001
+#define MH_DEBUG_REG05_CP_MH_write_MASK 0x00000002
+#define MH_DEBUG_REG05_CP_MH_tag_MASK 0x0000001c
+#define MH_DEBUG_REG05_CP_MH_ad_31_5_MASK 0xffffffe0
+
+#define MH_DEBUG_REG05_MASK \
+ (MH_DEBUG_REG05_CP_MH_send_MASK | \
+ MH_DEBUG_REG05_CP_MH_write_MASK | \
+ MH_DEBUG_REG05_CP_MH_tag_MASK | \
+ MH_DEBUG_REG05_CP_MH_ad_31_5_MASK)
+
+#define MH_DEBUG_REG05(cp_mh_send, cp_mh_write, cp_mh_tag, cp_mh_ad_31_5) \
+ ((cp_mh_send << MH_DEBUG_REG05_CP_MH_send_SHIFT) | \
+ (cp_mh_write << MH_DEBUG_REG05_CP_MH_write_SHIFT) | \
+ (cp_mh_tag << MH_DEBUG_REG05_CP_MH_tag_SHIFT) | \
+ (cp_mh_ad_31_5 << MH_DEBUG_REG05_CP_MH_ad_31_5_SHIFT))
+
+#define MH_DEBUG_REG05_GET_CP_MH_send(mh_debug_reg05) \
+ ((mh_debug_reg05 & MH_DEBUG_REG05_CP_MH_send_MASK) >> MH_DEBUG_REG05_CP_MH_send_SHIFT)
+#define MH_DEBUG_REG05_GET_CP_MH_write(mh_debug_reg05) \
+ ((mh_debug_reg05 & MH_DEBUG_REG05_CP_MH_write_MASK) >> MH_DEBUG_REG05_CP_MH_write_SHIFT)
+#define MH_DEBUG_REG05_GET_CP_MH_tag(mh_debug_reg05) \
+ ((mh_debug_reg05 & MH_DEBUG_REG05_CP_MH_tag_MASK) >> MH_DEBUG_REG05_CP_MH_tag_SHIFT)
+#define MH_DEBUG_REG05_GET_CP_MH_ad_31_5(mh_debug_reg05) \
+ ((mh_debug_reg05 & MH_DEBUG_REG05_CP_MH_ad_31_5_MASK) >> MH_DEBUG_REG05_CP_MH_ad_31_5_SHIFT)
+
+#define MH_DEBUG_REG05_SET_CP_MH_send(mh_debug_reg05_reg, cp_mh_send) \
+ mh_debug_reg05_reg = (mh_debug_reg05_reg & ~MH_DEBUG_REG05_CP_MH_send_MASK) | (cp_mh_send << MH_DEBUG_REG05_CP_MH_send_SHIFT)
+#define MH_DEBUG_REG05_SET_CP_MH_write(mh_debug_reg05_reg, cp_mh_write) \
+ mh_debug_reg05_reg = (mh_debug_reg05_reg & ~MH_DEBUG_REG05_CP_MH_write_MASK) | (cp_mh_write << MH_DEBUG_REG05_CP_MH_write_SHIFT)
+#define MH_DEBUG_REG05_SET_CP_MH_tag(mh_debug_reg05_reg, cp_mh_tag) \
+ mh_debug_reg05_reg = (mh_debug_reg05_reg & ~MH_DEBUG_REG05_CP_MH_tag_MASK) | (cp_mh_tag << MH_DEBUG_REG05_CP_MH_tag_SHIFT)
+#define MH_DEBUG_REG05_SET_CP_MH_ad_31_5(mh_debug_reg05_reg, cp_mh_ad_31_5) \
+ mh_debug_reg05_reg = (mh_debug_reg05_reg & ~MH_DEBUG_REG05_CP_MH_ad_31_5_MASK) | (cp_mh_ad_31_5 << MH_DEBUG_REG05_CP_MH_ad_31_5_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg05_t {
+ unsigned int cp_mh_send : MH_DEBUG_REG05_CP_MH_send_SIZE;
+ unsigned int cp_mh_write : MH_DEBUG_REG05_CP_MH_write_SIZE;
+ unsigned int cp_mh_tag : MH_DEBUG_REG05_CP_MH_tag_SIZE;
+ unsigned int cp_mh_ad_31_5 : MH_DEBUG_REG05_CP_MH_ad_31_5_SIZE;
+ } mh_debug_reg05_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg05_t {
+ unsigned int cp_mh_ad_31_5 : MH_DEBUG_REG05_CP_MH_ad_31_5_SIZE;
+ unsigned int cp_mh_tag : MH_DEBUG_REG05_CP_MH_tag_SIZE;
+ unsigned int cp_mh_write : MH_DEBUG_REG05_CP_MH_write_SIZE;
+ unsigned int cp_mh_send : MH_DEBUG_REG05_CP_MH_send_SIZE;
+ } mh_debug_reg05_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg05_t f;
+} mh_debug_reg05_u;
+
+
+/*
+ * MH_DEBUG_REG06 struct
+ */
+
+#define MH_DEBUG_REG06_CP_MH_data_31_0_SIZE 32
+
+#define MH_DEBUG_REG06_CP_MH_data_31_0_SHIFT 0
+
+#define MH_DEBUG_REG06_CP_MH_data_31_0_MASK 0xffffffff
+
+#define MH_DEBUG_REG06_MASK \
+ (MH_DEBUG_REG06_CP_MH_data_31_0_MASK)
+
+#define MH_DEBUG_REG06(cp_mh_data_31_0) \
+ ((cp_mh_data_31_0 << MH_DEBUG_REG06_CP_MH_data_31_0_SHIFT))
+
+#define MH_DEBUG_REG06_GET_CP_MH_data_31_0(mh_debug_reg06) \
+ ((mh_debug_reg06 & MH_DEBUG_REG06_CP_MH_data_31_0_MASK) >> MH_DEBUG_REG06_CP_MH_data_31_0_SHIFT)
+
+#define MH_DEBUG_REG06_SET_CP_MH_data_31_0(mh_debug_reg06_reg, cp_mh_data_31_0) \
+ mh_debug_reg06_reg = (mh_debug_reg06_reg & ~MH_DEBUG_REG06_CP_MH_data_31_0_MASK) | (cp_mh_data_31_0 << MH_DEBUG_REG06_CP_MH_data_31_0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg06_t {
+ unsigned int cp_mh_data_31_0 : MH_DEBUG_REG06_CP_MH_data_31_0_SIZE;
+ } mh_debug_reg06_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg06_t {
+ unsigned int cp_mh_data_31_0 : MH_DEBUG_REG06_CP_MH_data_31_0_SIZE;
+ } mh_debug_reg06_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg06_t f;
+} mh_debug_reg06_u;
+
+
+/*
+ * MH_DEBUG_REG07 struct
+ */
+
+#define MH_DEBUG_REG07_CP_MH_data_63_32_SIZE 32
+
+#define MH_DEBUG_REG07_CP_MH_data_63_32_SHIFT 0
+
+#define MH_DEBUG_REG07_CP_MH_data_63_32_MASK 0xffffffff
+
+#define MH_DEBUG_REG07_MASK \
+ (MH_DEBUG_REG07_CP_MH_data_63_32_MASK)
+
+#define MH_DEBUG_REG07(cp_mh_data_63_32) \
+ ((cp_mh_data_63_32 << MH_DEBUG_REG07_CP_MH_data_63_32_SHIFT))
+
+#define MH_DEBUG_REG07_GET_CP_MH_data_63_32(mh_debug_reg07) \
+ ((mh_debug_reg07 & MH_DEBUG_REG07_CP_MH_data_63_32_MASK) >> MH_DEBUG_REG07_CP_MH_data_63_32_SHIFT)
+
+#define MH_DEBUG_REG07_SET_CP_MH_data_63_32(mh_debug_reg07_reg, cp_mh_data_63_32) \
+ mh_debug_reg07_reg = (mh_debug_reg07_reg & ~MH_DEBUG_REG07_CP_MH_data_63_32_MASK) | (cp_mh_data_63_32 << MH_DEBUG_REG07_CP_MH_data_63_32_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg07_t {
+ unsigned int cp_mh_data_63_32 : MH_DEBUG_REG07_CP_MH_data_63_32_SIZE;
+ } mh_debug_reg07_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg07_t {
+ unsigned int cp_mh_data_63_32 : MH_DEBUG_REG07_CP_MH_data_63_32_SIZE;
+ } mh_debug_reg07_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg07_t f;
+} mh_debug_reg07_u;
+
+
+/*
+ * MH_DEBUG_REG08 struct
+ */
+
+#define MH_DEBUG_REG08_CP_MH_be_SIZE 8
+#define MH_DEBUG_REG08_RB_MH_be_SIZE 8
+#define MH_DEBUG_REG08_PA_MH_be_SIZE 8
+
+#define MH_DEBUG_REG08_CP_MH_be_SHIFT 0
+#define MH_DEBUG_REG08_RB_MH_be_SHIFT 8
+#define MH_DEBUG_REG08_PA_MH_be_SHIFT 16
+
+#define MH_DEBUG_REG08_CP_MH_be_MASK 0x000000ff
+#define MH_DEBUG_REG08_RB_MH_be_MASK 0x0000ff00
+#define MH_DEBUG_REG08_PA_MH_be_MASK 0x00ff0000
+
+#define MH_DEBUG_REG08_MASK \
+ (MH_DEBUG_REG08_CP_MH_be_MASK | \
+ MH_DEBUG_REG08_RB_MH_be_MASK | \
+ MH_DEBUG_REG08_PA_MH_be_MASK)
+
+#define MH_DEBUG_REG08(cp_mh_be, rb_mh_be, pa_mh_be) \
+ ((cp_mh_be << MH_DEBUG_REG08_CP_MH_be_SHIFT) | \
+ (rb_mh_be << MH_DEBUG_REG08_RB_MH_be_SHIFT) | \
+ (pa_mh_be << MH_DEBUG_REG08_PA_MH_be_SHIFT))
+
+#define MH_DEBUG_REG08_GET_CP_MH_be(mh_debug_reg08) \
+ ((mh_debug_reg08 & MH_DEBUG_REG08_CP_MH_be_MASK) >> MH_DEBUG_REG08_CP_MH_be_SHIFT)
+#define MH_DEBUG_REG08_GET_RB_MH_be(mh_debug_reg08) \
+ ((mh_debug_reg08 & MH_DEBUG_REG08_RB_MH_be_MASK) >> MH_DEBUG_REG08_RB_MH_be_SHIFT)
+#define MH_DEBUG_REG08_GET_PA_MH_be(mh_debug_reg08) \
+ ((mh_debug_reg08 & MH_DEBUG_REG08_PA_MH_be_MASK) >> MH_DEBUG_REG08_PA_MH_be_SHIFT)
+
+#define MH_DEBUG_REG08_SET_CP_MH_be(mh_debug_reg08_reg, cp_mh_be) \
+ mh_debug_reg08_reg = (mh_debug_reg08_reg & ~MH_DEBUG_REG08_CP_MH_be_MASK) | (cp_mh_be << MH_DEBUG_REG08_CP_MH_be_SHIFT)
+#define MH_DEBUG_REG08_SET_RB_MH_be(mh_debug_reg08_reg, rb_mh_be) \
+ mh_debug_reg08_reg = (mh_debug_reg08_reg & ~MH_DEBUG_REG08_RB_MH_be_MASK) | (rb_mh_be << MH_DEBUG_REG08_RB_MH_be_SHIFT)
+#define MH_DEBUG_REG08_SET_PA_MH_be(mh_debug_reg08_reg, pa_mh_be) \
+ mh_debug_reg08_reg = (mh_debug_reg08_reg & ~MH_DEBUG_REG08_PA_MH_be_MASK) | (pa_mh_be << MH_DEBUG_REG08_PA_MH_be_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg08_t {
+ unsigned int cp_mh_be : MH_DEBUG_REG08_CP_MH_be_SIZE;
+ unsigned int rb_mh_be : MH_DEBUG_REG08_RB_MH_be_SIZE;
+ unsigned int pa_mh_be : MH_DEBUG_REG08_PA_MH_be_SIZE;
+ unsigned int : 8;
+ } mh_debug_reg08_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg08_t {
+ unsigned int : 8;
+ unsigned int pa_mh_be : MH_DEBUG_REG08_PA_MH_be_SIZE;
+ unsigned int rb_mh_be : MH_DEBUG_REG08_RB_MH_be_SIZE;
+ unsigned int cp_mh_be : MH_DEBUG_REG08_CP_MH_be_SIZE;
+ } mh_debug_reg08_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg08_t f;
+} mh_debug_reg08_u;
+
+
+/*
+ * MH_DEBUG_REG09 struct
+ */
+
+#define MH_DEBUG_REG09_ALWAYS_ZERO_SIZE 3
+#define MH_DEBUG_REG09_VGT_MH_send_SIZE 1
+#define MH_DEBUG_REG09_VGT_MH_tagbe_SIZE 1
+#define MH_DEBUG_REG09_VGT_MH_ad_31_5_SIZE 27
+
+#define MH_DEBUG_REG09_ALWAYS_ZERO_SHIFT 0
+#define MH_DEBUG_REG09_VGT_MH_send_SHIFT 3
+#define MH_DEBUG_REG09_VGT_MH_tagbe_SHIFT 4
+#define MH_DEBUG_REG09_VGT_MH_ad_31_5_SHIFT 5
+
+#define MH_DEBUG_REG09_ALWAYS_ZERO_MASK 0x00000007
+#define MH_DEBUG_REG09_VGT_MH_send_MASK 0x00000008
+#define MH_DEBUG_REG09_VGT_MH_tagbe_MASK 0x00000010
+#define MH_DEBUG_REG09_VGT_MH_ad_31_5_MASK 0xffffffe0
+
+#define MH_DEBUG_REG09_MASK \
+ (MH_DEBUG_REG09_ALWAYS_ZERO_MASK | \
+ MH_DEBUG_REG09_VGT_MH_send_MASK | \
+ MH_DEBUG_REG09_VGT_MH_tagbe_MASK | \
+ MH_DEBUG_REG09_VGT_MH_ad_31_5_MASK)
+
+#define MH_DEBUG_REG09(always_zero, vgt_mh_send, vgt_mh_tagbe, vgt_mh_ad_31_5) \
+ ((always_zero << MH_DEBUG_REG09_ALWAYS_ZERO_SHIFT) | \
+ (vgt_mh_send << MH_DEBUG_REG09_VGT_MH_send_SHIFT) | \
+ (vgt_mh_tagbe << MH_DEBUG_REG09_VGT_MH_tagbe_SHIFT) | \
+ (vgt_mh_ad_31_5 << MH_DEBUG_REG09_VGT_MH_ad_31_5_SHIFT))
+
+#define MH_DEBUG_REG09_GET_ALWAYS_ZERO(mh_debug_reg09) \
+ ((mh_debug_reg09 & MH_DEBUG_REG09_ALWAYS_ZERO_MASK) >> MH_DEBUG_REG09_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG09_GET_VGT_MH_send(mh_debug_reg09) \
+ ((mh_debug_reg09 & MH_DEBUG_REG09_VGT_MH_send_MASK) >> MH_DEBUG_REG09_VGT_MH_send_SHIFT)
+#define MH_DEBUG_REG09_GET_VGT_MH_tagbe(mh_debug_reg09) \
+ ((mh_debug_reg09 & MH_DEBUG_REG09_VGT_MH_tagbe_MASK) >> MH_DEBUG_REG09_VGT_MH_tagbe_SHIFT)
+#define MH_DEBUG_REG09_GET_VGT_MH_ad_31_5(mh_debug_reg09) \
+ ((mh_debug_reg09 & MH_DEBUG_REG09_VGT_MH_ad_31_5_MASK) >> MH_DEBUG_REG09_VGT_MH_ad_31_5_SHIFT)
+
+#define MH_DEBUG_REG09_SET_ALWAYS_ZERO(mh_debug_reg09_reg, always_zero) \
+ mh_debug_reg09_reg = (mh_debug_reg09_reg & ~MH_DEBUG_REG09_ALWAYS_ZERO_MASK) | (always_zero << MH_DEBUG_REG09_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG09_SET_VGT_MH_send(mh_debug_reg09_reg, vgt_mh_send) \
+ mh_debug_reg09_reg = (mh_debug_reg09_reg & ~MH_DEBUG_REG09_VGT_MH_send_MASK) | (vgt_mh_send << MH_DEBUG_REG09_VGT_MH_send_SHIFT)
+#define MH_DEBUG_REG09_SET_VGT_MH_tagbe(mh_debug_reg09_reg, vgt_mh_tagbe) \
+ mh_debug_reg09_reg = (mh_debug_reg09_reg & ~MH_DEBUG_REG09_VGT_MH_tagbe_MASK) | (vgt_mh_tagbe << MH_DEBUG_REG09_VGT_MH_tagbe_SHIFT)
+#define MH_DEBUG_REG09_SET_VGT_MH_ad_31_5(mh_debug_reg09_reg, vgt_mh_ad_31_5) \
+ mh_debug_reg09_reg = (mh_debug_reg09_reg & ~MH_DEBUG_REG09_VGT_MH_ad_31_5_MASK) | (vgt_mh_ad_31_5 << MH_DEBUG_REG09_VGT_MH_ad_31_5_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg09_t {
+ unsigned int always_zero : MH_DEBUG_REG09_ALWAYS_ZERO_SIZE;
+ unsigned int vgt_mh_send : MH_DEBUG_REG09_VGT_MH_send_SIZE;
+ unsigned int vgt_mh_tagbe : MH_DEBUG_REG09_VGT_MH_tagbe_SIZE;
+ unsigned int vgt_mh_ad_31_5 : MH_DEBUG_REG09_VGT_MH_ad_31_5_SIZE;
+ } mh_debug_reg09_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg09_t {
+ unsigned int vgt_mh_ad_31_5 : MH_DEBUG_REG09_VGT_MH_ad_31_5_SIZE;
+ unsigned int vgt_mh_tagbe : MH_DEBUG_REG09_VGT_MH_tagbe_SIZE;
+ unsigned int vgt_mh_send : MH_DEBUG_REG09_VGT_MH_send_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG09_ALWAYS_ZERO_SIZE;
+ } mh_debug_reg09_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg09_t f;
+} mh_debug_reg09_u;
+
+
+/*
+ * MH_DEBUG_REG10 struct
+ */
+
+#define MH_DEBUG_REG10_ALWAYS_ZERO_SIZE 2
+#define MH_DEBUG_REG10_TC_MH_send_SIZE 1
+#define MH_DEBUG_REG10_TC_MH_mask_SIZE 2
+#define MH_DEBUG_REG10_TC_MH_addr_31_5_SIZE 27
+
+#define MH_DEBUG_REG10_ALWAYS_ZERO_SHIFT 0
+#define MH_DEBUG_REG10_TC_MH_send_SHIFT 2
+#define MH_DEBUG_REG10_TC_MH_mask_SHIFT 3
+#define MH_DEBUG_REG10_TC_MH_addr_31_5_SHIFT 5
+
+#define MH_DEBUG_REG10_ALWAYS_ZERO_MASK 0x00000003
+#define MH_DEBUG_REG10_TC_MH_send_MASK 0x00000004
+#define MH_DEBUG_REG10_TC_MH_mask_MASK 0x00000018
+#define MH_DEBUG_REG10_TC_MH_addr_31_5_MASK 0xffffffe0
+
+#define MH_DEBUG_REG10_MASK \
+ (MH_DEBUG_REG10_ALWAYS_ZERO_MASK | \
+ MH_DEBUG_REG10_TC_MH_send_MASK | \
+ MH_DEBUG_REG10_TC_MH_mask_MASK | \
+ MH_DEBUG_REG10_TC_MH_addr_31_5_MASK)
+
+#define MH_DEBUG_REG10(always_zero, tc_mh_send, tc_mh_mask, tc_mh_addr_31_5) \
+ ((always_zero << MH_DEBUG_REG10_ALWAYS_ZERO_SHIFT) | \
+ (tc_mh_send << MH_DEBUG_REG10_TC_MH_send_SHIFT) | \
+ (tc_mh_mask << MH_DEBUG_REG10_TC_MH_mask_SHIFT) | \
+ (tc_mh_addr_31_5 << MH_DEBUG_REG10_TC_MH_addr_31_5_SHIFT))
+
+#define MH_DEBUG_REG10_GET_ALWAYS_ZERO(mh_debug_reg10) \
+ ((mh_debug_reg10 & MH_DEBUG_REG10_ALWAYS_ZERO_MASK) >> MH_DEBUG_REG10_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG10_GET_TC_MH_send(mh_debug_reg10) \
+ ((mh_debug_reg10 & MH_DEBUG_REG10_TC_MH_send_MASK) >> MH_DEBUG_REG10_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG10_GET_TC_MH_mask(mh_debug_reg10) \
+ ((mh_debug_reg10 & MH_DEBUG_REG10_TC_MH_mask_MASK) >> MH_DEBUG_REG10_TC_MH_mask_SHIFT)
+#define MH_DEBUG_REG10_GET_TC_MH_addr_31_5(mh_debug_reg10) \
+ ((mh_debug_reg10 & MH_DEBUG_REG10_TC_MH_addr_31_5_MASK) >> MH_DEBUG_REG10_TC_MH_addr_31_5_SHIFT)
+
+#define MH_DEBUG_REG10_SET_ALWAYS_ZERO(mh_debug_reg10_reg, always_zero) \
+ mh_debug_reg10_reg = (mh_debug_reg10_reg & ~MH_DEBUG_REG10_ALWAYS_ZERO_MASK) | (always_zero << MH_DEBUG_REG10_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG10_SET_TC_MH_send(mh_debug_reg10_reg, tc_mh_send) \
+ mh_debug_reg10_reg = (mh_debug_reg10_reg & ~MH_DEBUG_REG10_TC_MH_send_MASK) | (tc_mh_send << MH_DEBUG_REG10_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG10_SET_TC_MH_mask(mh_debug_reg10_reg, tc_mh_mask) \
+ mh_debug_reg10_reg = (mh_debug_reg10_reg & ~MH_DEBUG_REG10_TC_MH_mask_MASK) | (tc_mh_mask << MH_DEBUG_REG10_TC_MH_mask_SHIFT)
+#define MH_DEBUG_REG10_SET_TC_MH_addr_31_5(mh_debug_reg10_reg, tc_mh_addr_31_5) \
+ mh_debug_reg10_reg = (mh_debug_reg10_reg & ~MH_DEBUG_REG10_TC_MH_addr_31_5_MASK) | (tc_mh_addr_31_5 << MH_DEBUG_REG10_TC_MH_addr_31_5_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg10_t {
+ unsigned int always_zero : MH_DEBUG_REG10_ALWAYS_ZERO_SIZE;
+ unsigned int tc_mh_send : MH_DEBUG_REG10_TC_MH_send_SIZE;
+ unsigned int tc_mh_mask : MH_DEBUG_REG10_TC_MH_mask_SIZE;
+ unsigned int tc_mh_addr_31_5 : MH_DEBUG_REG10_TC_MH_addr_31_5_SIZE;
+ } mh_debug_reg10_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg10_t {
+ unsigned int tc_mh_addr_31_5 : MH_DEBUG_REG10_TC_MH_addr_31_5_SIZE;
+ unsigned int tc_mh_mask : MH_DEBUG_REG10_TC_MH_mask_SIZE;
+ unsigned int tc_mh_send : MH_DEBUG_REG10_TC_MH_send_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG10_ALWAYS_ZERO_SIZE;
+ } mh_debug_reg10_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg10_t f;
+} mh_debug_reg10_u;
+
+
+/*
+ * MH_DEBUG_REG11 struct
+ */
+
+#define MH_DEBUG_REG11_TC_MH_info_SIZE 25
+#define MH_DEBUG_REG11_TC_MH_send_SIZE 1
+
+#define MH_DEBUG_REG11_TC_MH_info_SHIFT 0
+#define MH_DEBUG_REG11_TC_MH_send_SHIFT 25
+
+#define MH_DEBUG_REG11_TC_MH_info_MASK 0x01ffffff
+#define MH_DEBUG_REG11_TC_MH_send_MASK 0x02000000
+
+#define MH_DEBUG_REG11_MASK \
+ (MH_DEBUG_REG11_TC_MH_info_MASK | \
+ MH_DEBUG_REG11_TC_MH_send_MASK)
+
+#define MH_DEBUG_REG11(tc_mh_info, tc_mh_send) \
+ ((tc_mh_info << MH_DEBUG_REG11_TC_MH_info_SHIFT) | \
+ (tc_mh_send << MH_DEBUG_REG11_TC_MH_send_SHIFT))
+
+#define MH_DEBUG_REG11_GET_TC_MH_info(mh_debug_reg11) \
+ ((mh_debug_reg11 & MH_DEBUG_REG11_TC_MH_info_MASK) >> MH_DEBUG_REG11_TC_MH_info_SHIFT)
+#define MH_DEBUG_REG11_GET_TC_MH_send(mh_debug_reg11) \
+ ((mh_debug_reg11 & MH_DEBUG_REG11_TC_MH_send_MASK) >> MH_DEBUG_REG11_TC_MH_send_SHIFT)
+
+#define MH_DEBUG_REG11_SET_TC_MH_info(mh_debug_reg11_reg, tc_mh_info) \
+ mh_debug_reg11_reg = (mh_debug_reg11_reg & ~MH_DEBUG_REG11_TC_MH_info_MASK) | (tc_mh_info << MH_DEBUG_REG11_TC_MH_info_SHIFT)
+#define MH_DEBUG_REG11_SET_TC_MH_send(mh_debug_reg11_reg, tc_mh_send) \
+ mh_debug_reg11_reg = (mh_debug_reg11_reg & ~MH_DEBUG_REG11_TC_MH_send_MASK) | (tc_mh_send << MH_DEBUG_REG11_TC_MH_send_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg11_t {
+ unsigned int tc_mh_info : MH_DEBUG_REG11_TC_MH_info_SIZE;
+ unsigned int tc_mh_send : MH_DEBUG_REG11_TC_MH_send_SIZE;
+ unsigned int : 6;
+ } mh_debug_reg11_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg11_t {
+ unsigned int : 6;
+ unsigned int tc_mh_send : MH_DEBUG_REG11_TC_MH_send_SIZE;
+ unsigned int tc_mh_info : MH_DEBUG_REG11_TC_MH_info_SIZE;
+ } mh_debug_reg11_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg11_t f;
+} mh_debug_reg11_u;
+
+
+/*
+ * MH_DEBUG_REG12 struct
+ */
+
+#define MH_DEBUG_REG12_MH_TC_mcinfo_SIZE 25
+#define MH_DEBUG_REG12_MH_TC_mcinfo_send_SIZE 1
+#define MH_DEBUG_REG12_TC_MH_written_SIZE 1
+
+#define MH_DEBUG_REG12_MH_TC_mcinfo_SHIFT 0
+#define MH_DEBUG_REG12_MH_TC_mcinfo_send_SHIFT 25
+#define MH_DEBUG_REG12_TC_MH_written_SHIFT 26
+
+#define MH_DEBUG_REG12_MH_TC_mcinfo_MASK 0x01ffffff
+#define MH_DEBUG_REG12_MH_TC_mcinfo_send_MASK 0x02000000
+#define MH_DEBUG_REG12_TC_MH_written_MASK 0x04000000
+
+#define MH_DEBUG_REG12_MASK \
+ (MH_DEBUG_REG12_MH_TC_mcinfo_MASK | \
+ MH_DEBUG_REG12_MH_TC_mcinfo_send_MASK | \
+ MH_DEBUG_REG12_TC_MH_written_MASK)
+
+#define MH_DEBUG_REG12(mh_tc_mcinfo, mh_tc_mcinfo_send, tc_mh_written) \
+ ((mh_tc_mcinfo << MH_DEBUG_REG12_MH_TC_mcinfo_SHIFT) | \
+ (mh_tc_mcinfo_send << MH_DEBUG_REG12_MH_TC_mcinfo_send_SHIFT) | \
+ (tc_mh_written << MH_DEBUG_REG12_TC_MH_written_SHIFT))
+
+#define MH_DEBUG_REG12_GET_MH_TC_mcinfo(mh_debug_reg12) \
+ ((mh_debug_reg12 & MH_DEBUG_REG12_MH_TC_mcinfo_MASK) >> MH_DEBUG_REG12_MH_TC_mcinfo_SHIFT)
+#define MH_DEBUG_REG12_GET_MH_TC_mcinfo_send(mh_debug_reg12) \
+ ((mh_debug_reg12 & MH_DEBUG_REG12_MH_TC_mcinfo_send_MASK) >> MH_DEBUG_REG12_MH_TC_mcinfo_send_SHIFT)
+#define MH_DEBUG_REG12_GET_TC_MH_written(mh_debug_reg12) \
+ ((mh_debug_reg12 & MH_DEBUG_REG12_TC_MH_written_MASK) >> MH_DEBUG_REG12_TC_MH_written_SHIFT)
+
+#define MH_DEBUG_REG12_SET_MH_TC_mcinfo(mh_debug_reg12_reg, mh_tc_mcinfo) \
+ mh_debug_reg12_reg = (mh_debug_reg12_reg & ~MH_DEBUG_REG12_MH_TC_mcinfo_MASK) | (mh_tc_mcinfo << MH_DEBUG_REG12_MH_TC_mcinfo_SHIFT)
+#define MH_DEBUG_REG12_SET_MH_TC_mcinfo_send(mh_debug_reg12_reg, mh_tc_mcinfo_send) \
+ mh_debug_reg12_reg = (mh_debug_reg12_reg & ~MH_DEBUG_REG12_MH_TC_mcinfo_send_MASK) | (mh_tc_mcinfo_send << MH_DEBUG_REG12_MH_TC_mcinfo_send_SHIFT)
+#define MH_DEBUG_REG12_SET_TC_MH_written(mh_debug_reg12_reg, tc_mh_written) \
+ mh_debug_reg12_reg = (mh_debug_reg12_reg & ~MH_DEBUG_REG12_TC_MH_written_MASK) | (tc_mh_written << MH_DEBUG_REG12_TC_MH_written_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg12_t {
+ unsigned int mh_tc_mcinfo : MH_DEBUG_REG12_MH_TC_mcinfo_SIZE;
+ unsigned int mh_tc_mcinfo_send : MH_DEBUG_REG12_MH_TC_mcinfo_send_SIZE;
+ unsigned int tc_mh_written : MH_DEBUG_REG12_TC_MH_written_SIZE;
+ unsigned int : 5;
+ } mh_debug_reg12_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg12_t {
+ unsigned int : 5;
+ unsigned int tc_mh_written : MH_DEBUG_REG12_TC_MH_written_SIZE;
+ unsigned int mh_tc_mcinfo_send : MH_DEBUG_REG12_MH_TC_mcinfo_send_SIZE;
+ unsigned int mh_tc_mcinfo : MH_DEBUG_REG12_MH_TC_mcinfo_SIZE;
+ } mh_debug_reg12_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg12_t f;
+} mh_debug_reg12_u;
+
+
+/*
+ * MH_DEBUG_REG13 struct
+ */
+
+#define MH_DEBUG_REG13_ALWAYS_ZERO_SIZE 2
+#define MH_DEBUG_REG13_TC_ROQ_SEND_SIZE 1
+#define MH_DEBUG_REG13_TC_ROQ_MASK_SIZE 2
+#define MH_DEBUG_REG13_TC_ROQ_ADDR_31_5_SIZE 27
+
+#define MH_DEBUG_REG13_ALWAYS_ZERO_SHIFT 0
+#define MH_DEBUG_REG13_TC_ROQ_SEND_SHIFT 2
+#define MH_DEBUG_REG13_TC_ROQ_MASK_SHIFT 3
+#define MH_DEBUG_REG13_TC_ROQ_ADDR_31_5_SHIFT 5
+
+#define MH_DEBUG_REG13_ALWAYS_ZERO_MASK 0x00000003
+#define MH_DEBUG_REG13_TC_ROQ_SEND_MASK 0x00000004
+#define MH_DEBUG_REG13_TC_ROQ_MASK_MASK 0x00000018
+#define MH_DEBUG_REG13_TC_ROQ_ADDR_31_5_MASK 0xffffffe0
+
+#define MH_DEBUG_REG13_MASK \
+ (MH_DEBUG_REG13_ALWAYS_ZERO_MASK | \
+ MH_DEBUG_REG13_TC_ROQ_SEND_MASK | \
+ MH_DEBUG_REG13_TC_ROQ_MASK_MASK | \
+ MH_DEBUG_REG13_TC_ROQ_ADDR_31_5_MASK)
+
+#define MH_DEBUG_REG13(always_zero, tc_roq_send, tc_roq_mask, tc_roq_addr_31_5) \
+ ((always_zero << MH_DEBUG_REG13_ALWAYS_ZERO_SHIFT) | \
+ (tc_roq_send << MH_DEBUG_REG13_TC_ROQ_SEND_SHIFT) | \
+ (tc_roq_mask << MH_DEBUG_REG13_TC_ROQ_MASK_SHIFT) | \
+ (tc_roq_addr_31_5 << MH_DEBUG_REG13_TC_ROQ_ADDR_31_5_SHIFT))
+
+#define MH_DEBUG_REG13_GET_ALWAYS_ZERO(mh_debug_reg13) \
+ ((mh_debug_reg13 & MH_DEBUG_REG13_ALWAYS_ZERO_MASK) >> MH_DEBUG_REG13_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG13_GET_TC_ROQ_SEND(mh_debug_reg13) \
+ ((mh_debug_reg13 & MH_DEBUG_REG13_TC_ROQ_SEND_MASK) >> MH_DEBUG_REG13_TC_ROQ_SEND_SHIFT)
+#define MH_DEBUG_REG13_GET_TC_ROQ_MASK(mh_debug_reg13) \
+ ((mh_debug_reg13 & MH_DEBUG_REG13_TC_ROQ_MASK_MASK) >> MH_DEBUG_REG13_TC_ROQ_MASK_SHIFT)
+#define MH_DEBUG_REG13_GET_TC_ROQ_ADDR_31_5(mh_debug_reg13) \
+ ((mh_debug_reg13 & MH_DEBUG_REG13_TC_ROQ_ADDR_31_5_MASK) >> MH_DEBUG_REG13_TC_ROQ_ADDR_31_5_SHIFT)
+
+#define MH_DEBUG_REG13_SET_ALWAYS_ZERO(mh_debug_reg13_reg, always_zero) \
+ mh_debug_reg13_reg = (mh_debug_reg13_reg & ~MH_DEBUG_REG13_ALWAYS_ZERO_MASK) | (always_zero << MH_DEBUG_REG13_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG13_SET_TC_ROQ_SEND(mh_debug_reg13_reg, tc_roq_send) \
+ mh_debug_reg13_reg = (mh_debug_reg13_reg & ~MH_DEBUG_REG13_TC_ROQ_SEND_MASK) | (tc_roq_send << MH_DEBUG_REG13_TC_ROQ_SEND_SHIFT)
+#define MH_DEBUG_REG13_SET_TC_ROQ_MASK(mh_debug_reg13_reg, tc_roq_mask) \
+ mh_debug_reg13_reg = (mh_debug_reg13_reg & ~MH_DEBUG_REG13_TC_ROQ_MASK_MASK) | (tc_roq_mask << MH_DEBUG_REG13_TC_ROQ_MASK_SHIFT)
+#define MH_DEBUG_REG13_SET_TC_ROQ_ADDR_31_5(mh_debug_reg13_reg, tc_roq_addr_31_5) \
+ mh_debug_reg13_reg = (mh_debug_reg13_reg & ~MH_DEBUG_REG13_TC_ROQ_ADDR_31_5_MASK) | (tc_roq_addr_31_5 << MH_DEBUG_REG13_TC_ROQ_ADDR_31_5_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg13_t {
+ unsigned int always_zero : MH_DEBUG_REG13_ALWAYS_ZERO_SIZE;
+ unsigned int tc_roq_send : MH_DEBUG_REG13_TC_ROQ_SEND_SIZE;
+ unsigned int tc_roq_mask : MH_DEBUG_REG13_TC_ROQ_MASK_SIZE;
+ unsigned int tc_roq_addr_31_5 : MH_DEBUG_REG13_TC_ROQ_ADDR_31_5_SIZE;
+ } mh_debug_reg13_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg13_t {
+ unsigned int tc_roq_addr_31_5 : MH_DEBUG_REG13_TC_ROQ_ADDR_31_5_SIZE;
+ unsigned int tc_roq_mask : MH_DEBUG_REG13_TC_ROQ_MASK_SIZE;
+ unsigned int tc_roq_send : MH_DEBUG_REG13_TC_ROQ_SEND_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG13_ALWAYS_ZERO_SIZE;
+ } mh_debug_reg13_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg13_t f;
+} mh_debug_reg13_u;
+
+
+/*
+ * MH_DEBUG_REG14 struct
+ */
+
+#define MH_DEBUG_REG14_TC_ROQ_INFO_SIZE 25
+#define MH_DEBUG_REG14_TC_ROQ_SEND_SIZE 1
+
+#define MH_DEBUG_REG14_TC_ROQ_INFO_SHIFT 0
+#define MH_DEBUG_REG14_TC_ROQ_SEND_SHIFT 25
+
+#define MH_DEBUG_REG14_TC_ROQ_INFO_MASK 0x01ffffff
+#define MH_DEBUG_REG14_TC_ROQ_SEND_MASK 0x02000000
+
+#define MH_DEBUG_REG14_MASK \
+ (MH_DEBUG_REG14_TC_ROQ_INFO_MASK | \
+ MH_DEBUG_REG14_TC_ROQ_SEND_MASK)
+
+#define MH_DEBUG_REG14(tc_roq_info, tc_roq_send) \
+ ((tc_roq_info << MH_DEBUG_REG14_TC_ROQ_INFO_SHIFT) | \
+ (tc_roq_send << MH_DEBUG_REG14_TC_ROQ_SEND_SHIFT))
+
+#define MH_DEBUG_REG14_GET_TC_ROQ_INFO(mh_debug_reg14) \
+ ((mh_debug_reg14 & MH_DEBUG_REG14_TC_ROQ_INFO_MASK) >> MH_DEBUG_REG14_TC_ROQ_INFO_SHIFT)
+#define MH_DEBUG_REG14_GET_TC_ROQ_SEND(mh_debug_reg14) \
+ ((mh_debug_reg14 & MH_DEBUG_REG14_TC_ROQ_SEND_MASK) >> MH_DEBUG_REG14_TC_ROQ_SEND_SHIFT)
+
+#define MH_DEBUG_REG14_SET_TC_ROQ_INFO(mh_debug_reg14_reg, tc_roq_info) \
+ mh_debug_reg14_reg = (mh_debug_reg14_reg & ~MH_DEBUG_REG14_TC_ROQ_INFO_MASK) | (tc_roq_info << MH_DEBUG_REG14_TC_ROQ_INFO_SHIFT)
+#define MH_DEBUG_REG14_SET_TC_ROQ_SEND(mh_debug_reg14_reg, tc_roq_send) \
+ mh_debug_reg14_reg = (mh_debug_reg14_reg & ~MH_DEBUG_REG14_TC_ROQ_SEND_MASK) | (tc_roq_send << MH_DEBUG_REG14_TC_ROQ_SEND_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg14_t {
+ unsigned int tc_roq_info : MH_DEBUG_REG14_TC_ROQ_INFO_SIZE;
+ unsigned int tc_roq_send : MH_DEBUG_REG14_TC_ROQ_SEND_SIZE;
+ unsigned int : 6;
+ } mh_debug_reg14_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg14_t {
+ unsigned int : 6;
+ unsigned int tc_roq_send : MH_DEBUG_REG14_TC_ROQ_SEND_SIZE;
+ unsigned int tc_roq_info : MH_DEBUG_REG14_TC_ROQ_INFO_SIZE;
+ } mh_debug_reg14_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg14_t f;
+} mh_debug_reg14_u;
+
+
+/*
+ * MH_DEBUG_REG15 struct
+ */
+
+#define MH_DEBUG_REG15_ALWAYS_ZERO_SIZE 4
+#define MH_DEBUG_REG15_RB_MH_send_SIZE 1
+#define MH_DEBUG_REG15_RB_MH_addr_31_5_SIZE 27
+
+#define MH_DEBUG_REG15_ALWAYS_ZERO_SHIFT 0
+#define MH_DEBUG_REG15_RB_MH_send_SHIFT 4
+#define MH_DEBUG_REG15_RB_MH_addr_31_5_SHIFT 5
+
+#define MH_DEBUG_REG15_ALWAYS_ZERO_MASK 0x0000000f
+#define MH_DEBUG_REG15_RB_MH_send_MASK 0x00000010
+#define MH_DEBUG_REG15_RB_MH_addr_31_5_MASK 0xffffffe0
+
+#define MH_DEBUG_REG15_MASK \
+ (MH_DEBUG_REG15_ALWAYS_ZERO_MASK | \
+ MH_DEBUG_REG15_RB_MH_send_MASK | \
+ MH_DEBUG_REG15_RB_MH_addr_31_5_MASK)
+
+#define MH_DEBUG_REG15(always_zero, rb_mh_send, rb_mh_addr_31_5) \
+ ((always_zero << MH_DEBUG_REG15_ALWAYS_ZERO_SHIFT) | \
+ (rb_mh_send << MH_DEBUG_REG15_RB_MH_send_SHIFT) | \
+ (rb_mh_addr_31_5 << MH_DEBUG_REG15_RB_MH_addr_31_5_SHIFT))
+
+#define MH_DEBUG_REG15_GET_ALWAYS_ZERO(mh_debug_reg15) \
+ ((mh_debug_reg15 & MH_DEBUG_REG15_ALWAYS_ZERO_MASK) >> MH_DEBUG_REG15_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG15_GET_RB_MH_send(mh_debug_reg15) \
+ ((mh_debug_reg15 & MH_DEBUG_REG15_RB_MH_send_MASK) >> MH_DEBUG_REG15_RB_MH_send_SHIFT)
+#define MH_DEBUG_REG15_GET_RB_MH_addr_31_5(mh_debug_reg15) \
+ ((mh_debug_reg15 & MH_DEBUG_REG15_RB_MH_addr_31_5_MASK) >> MH_DEBUG_REG15_RB_MH_addr_31_5_SHIFT)
+
+#define MH_DEBUG_REG15_SET_ALWAYS_ZERO(mh_debug_reg15_reg, always_zero) \
+ mh_debug_reg15_reg = (mh_debug_reg15_reg & ~MH_DEBUG_REG15_ALWAYS_ZERO_MASK) | (always_zero << MH_DEBUG_REG15_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG15_SET_RB_MH_send(mh_debug_reg15_reg, rb_mh_send) \
+ mh_debug_reg15_reg = (mh_debug_reg15_reg & ~MH_DEBUG_REG15_RB_MH_send_MASK) | (rb_mh_send << MH_DEBUG_REG15_RB_MH_send_SHIFT)
+#define MH_DEBUG_REG15_SET_RB_MH_addr_31_5(mh_debug_reg15_reg, rb_mh_addr_31_5) \
+ mh_debug_reg15_reg = (mh_debug_reg15_reg & ~MH_DEBUG_REG15_RB_MH_addr_31_5_MASK) | (rb_mh_addr_31_5 << MH_DEBUG_REG15_RB_MH_addr_31_5_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg15_t {
+ unsigned int always_zero : MH_DEBUG_REG15_ALWAYS_ZERO_SIZE;
+ unsigned int rb_mh_send : MH_DEBUG_REG15_RB_MH_send_SIZE;
+ unsigned int rb_mh_addr_31_5 : MH_DEBUG_REG15_RB_MH_addr_31_5_SIZE;
+ } mh_debug_reg15_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg15_t {
+ unsigned int rb_mh_addr_31_5 : MH_DEBUG_REG15_RB_MH_addr_31_5_SIZE;
+ unsigned int rb_mh_send : MH_DEBUG_REG15_RB_MH_send_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG15_ALWAYS_ZERO_SIZE;
+ } mh_debug_reg15_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg15_t f;
+} mh_debug_reg15_u;
+
+
+/*
+ * MH_DEBUG_REG16 struct
+ */
+
+#define MH_DEBUG_REG16_RB_MH_data_31_0_SIZE 32
+
+#define MH_DEBUG_REG16_RB_MH_data_31_0_SHIFT 0
+
+#define MH_DEBUG_REG16_RB_MH_data_31_0_MASK 0xffffffff
+
+#define MH_DEBUG_REG16_MASK \
+ (MH_DEBUG_REG16_RB_MH_data_31_0_MASK)
+
+#define MH_DEBUG_REG16(rb_mh_data_31_0) \
+ ((rb_mh_data_31_0 << MH_DEBUG_REG16_RB_MH_data_31_0_SHIFT))
+
+#define MH_DEBUG_REG16_GET_RB_MH_data_31_0(mh_debug_reg16) \
+ ((mh_debug_reg16 & MH_DEBUG_REG16_RB_MH_data_31_0_MASK) >> MH_DEBUG_REG16_RB_MH_data_31_0_SHIFT)
+
+#define MH_DEBUG_REG16_SET_RB_MH_data_31_0(mh_debug_reg16_reg, rb_mh_data_31_0) \
+ mh_debug_reg16_reg = (mh_debug_reg16_reg & ~MH_DEBUG_REG16_RB_MH_data_31_0_MASK) | (rb_mh_data_31_0 << MH_DEBUG_REG16_RB_MH_data_31_0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg16_t {
+ unsigned int rb_mh_data_31_0 : MH_DEBUG_REG16_RB_MH_data_31_0_SIZE;
+ } mh_debug_reg16_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg16_t {
+ unsigned int rb_mh_data_31_0 : MH_DEBUG_REG16_RB_MH_data_31_0_SIZE;
+ } mh_debug_reg16_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg16_t f;
+} mh_debug_reg16_u;
+
+
+/*
+ * MH_DEBUG_REG17 struct
+ */
+
+#define MH_DEBUG_REG17_RB_MH_data_63_32_SIZE 32
+
+#define MH_DEBUG_REG17_RB_MH_data_63_32_SHIFT 0
+
+#define MH_DEBUG_REG17_RB_MH_data_63_32_MASK 0xffffffff
+
+#define MH_DEBUG_REG17_MASK \
+ (MH_DEBUG_REG17_RB_MH_data_63_32_MASK)
+
+#define MH_DEBUG_REG17(rb_mh_data_63_32) \
+ ((rb_mh_data_63_32 << MH_DEBUG_REG17_RB_MH_data_63_32_SHIFT))
+
+#define MH_DEBUG_REG17_GET_RB_MH_data_63_32(mh_debug_reg17) \
+ ((mh_debug_reg17 & MH_DEBUG_REG17_RB_MH_data_63_32_MASK) >> MH_DEBUG_REG17_RB_MH_data_63_32_SHIFT)
+
+#define MH_DEBUG_REG17_SET_RB_MH_data_63_32(mh_debug_reg17_reg, rb_mh_data_63_32) \
+ mh_debug_reg17_reg = (mh_debug_reg17_reg & ~MH_DEBUG_REG17_RB_MH_data_63_32_MASK) | (rb_mh_data_63_32 << MH_DEBUG_REG17_RB_MH_data_63_32_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg17_t {
+ unsigned int rb_mh_data_63_32 : MH_DEBUG_REG17_RB_MH_data_63_32_SIZE;
+ } mh_debug_reg17_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg17_t {
+ unsigned int rb_mh_data_63_32 : MH_DEBUG_REG17_RB_MH_data_63_32_SIZE;
+ } mh_debug_reg17_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg17_t f;
+} mh_debug_reg17_u;
+
+
+/*
+ * MH_DEBUG_REG18 struct
+ */
+
+#define MH_DEBUG_REG18_ALWAYS_ZERO_SIZE 4
+#define MH_DEBUG_REG18_PA_MH_send_SIZE 1
+#define MH_DEBUG_REG18_PA_MH_addr_31_5_SIZE 27
+
+#define MH_DEBUG_REG18_ALWAYS_ZERO_SHIFT 0
+#define MH_DEBUG_REG18_PA_MH_send_SHIFT 4
+#define MH_DEBUG_REG18_PA_MH_addr_31_5_SHIFT 5
+
+#define MH_DEBUG_REG18_ALWAYS_ZERO_MASK 0x0000000f
+#define MH_DEBUG_REG18_PA_MH_send_MASK 0x00000010
+#define MH_DEBUG_REG18_PA_MH_addr_31_5_MASK 0xffffffe0
+
+#define MH_DEBUG_REG18_MASK \
+ (MH_DEBUG_REG18_ALWAYS_ZERO_MASK | \
+ MH_DEBUG_REG18_PA_MH_send_MASK | \
+ MH_DEBUG_REG18_PA_MH_addr_31_5_MASK)
+
+#define MH_DEBUG_REG18(always_zero, pa_mh_send, pa_mh_addr_31_5) \
+ ((always_zero << MH_DEBUG_REG18_ALWAYS_ZERO_SHIFT) | \
+ (pa_mh_send << MH_DEBUG_REG18_PA_MH_send_SHIFT) | \
+ (pa_mh_addr_31_5 << MH_DEBUG_REG18_PA_MH_addr_31_5_SHIFT))
+
+#define MH_DEBUG_REG18_GET_ALWAYS_ZERO(mh_debug_reg18) \
+ ((mh_debug_reg18 & MH_DEBUG_REG18_ALWAYS_ZERO_MASK) >> MH_DEBUG_REG18_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG18_GET_PA_MH_send(mh_debug_reg18) \
+ ((mh_debug_reg18 & MH_DEBUG_REG18_PA_MH_send_MASK) >> MH_DEBUG_REG18_PA_MH_send_SHIFT)
+#define MH_DEBUG_REG18_GET_PA_MH_addr_31_5(mh_debug_reg18) \
+ ((mh_debug_reg18 & MH_DEBUG_REG18_PA_MH_addr_31_5_MASK) >> MH_DEBUG_REG18_PA_MH_addr_31_5_SHIFT)
+
+#define MH_DEBUG_REG18_SET_ALWAYS_ZERO(mh_debug_reg18_reg, always_zero) \
+ mh_debug_reg18_reg = (mh_debug_reg18_reg & ~MH_DEBUG_REG18_ALWAYS_ZERO_MASK) | (always_zero << MH_DEBUG_REG18_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG18_SET_PA_MH_send(mh_debug_reg18_reg, pa_mh_send) \
+ mh_debug_reg18_reg = (mh_debug_reg18_reg & ~MH_DEBUG_REG18_PA_MH_send_MASK) | (pa_mh_send << MH_DEBUG_REG18_PA_MH_send_SHIFT)
+#define MH_DEBUG_REG18_SET_PA_MH_addr_31_5(mh_debug_reg18_reg, pa_mh_addr_31_5) \
+ mh_debug_reg18_reg = (mh_debug_reg18_reg & ~MH_DEBUG_REG18_PA_MH_addr_31_5_MASK) | (pa_mh_addr_31_5 << MH_DEBUG_REG18_PA_MH_addr_31_5_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg18_t {
+ unsigned int always_zero : MH_DEBUG_REG18_ALWAYS_ZERO_SIZE;
+ unsigned int pa_mh_send : MH_DEBUG_REG18_PA_MH_send_SIZE;
+ unsigned int pa_mh_addr_31_5 : MH_DEBUG_REG18_PA_MH_addr_31_5_SIZE;
+ } mh_debug_reg18_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg18_t {
+ unsigned int pa_mh_addr_31_5 : MH_DEBUG_REG18_PA_MH_addr_31_5_SIZE;
+ unsigned int pa_mh_send : MH_DEBUG_REG18_PA_MH_send_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG18_ALWAYS_ZERO_SIZE;
+ } mh_debug_reg18_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg18_t f;
+} mh_debug_reg18_u;
+
+
+/*
+ * MH_DEBUG_REG19 struct
+ */
+
+#define MH_DEBUG_REG19_PA_MH_data_31_0_SIZE 32
+
+#define MH_DEBUG_REG19_PA_MH_data_31_0_SHIFT 0
+
+#define MH_DEBUG_REG19_PA_MH_data_31_0_MASK 0xffffffff
+
+#define MH_DEBUG_REG19_MASK \
+ (MH_DEBUG_REG19_PA_MH_data_31_0_MASK)
+
+#define MH_DEBUG_REG19(pa_mh_data_31_0) \
+ ((pa_mh_data_31_0 << MH_DEBUG_REG19_PA_MH_data_31_0_SHIFT))
+
+#define MH_DEBUG_REG19_GET_PA_MH_data_31_0(mh_debug_reg19) \
+ ((mh_debug_reg19 & MH_DEBUG_REG19_PA_MH_data_31_0_MASK) >> MH_DEBUG_REG19_PA_MH_data_31_0_SHIFT)
+
+#define MH_DEBUG_REG19_SET_PA_MH_data_31_0(mh_debug_reg19_reg, pa_mh_data_31_0) \
+ mh_debug_reg19_reg = (mh_debug_reg19_reg & ~MH_DEBUG_REG19_PA_MH_data_31_0_MASK) | (pa_mh_data_31_0 << MH_DEBUG_REG19_PA_MH_data_31_0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg19_t {
+ unsigned int pa_mh_data_31_0 : MH_DEBUG_REG19_PA_MH_data_31_0_SIZE;
+ } mh_debug_reg19_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg19_t {
+ unsigned int pa_mh_data_31_0 : MH_DEBUG_REG19_PA_MH_data_31_0_SIZE;
+ } mh_debug_reg19_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg19_t f;
+} mh_debug_reg19_u;
+
+
+/*
+ * MH_DEBUG_REG20 struct
+ */
+
+#define MH_DEBUG_REG20_PA_MH_data_63_32_SIZE 32
+
+#define MH_DEBUG_REG20_PA_MH_data_63_32_SHIFT 0
+
+#define MH_DEBUG_REG20_PA_MH_data_63_32_MASK 0xffffffff
+
+#define MH_DEBUG_REG20_MASK \
+ (MH_DEBUG_REG20_PA_MH_data_63_32_MASK)
+
+#define MH_DEBUG_REG20(pa_mh_data_63_32) \
+ ((pa_mh_data_63_32 << MH_DEBUG_REG20_PA_MH_data_63_32_SHIFT))
+
+#define MH_DEBUG_REG20_GET_PA_MH_data_63_32(mh_debug_reg20) \
+ ((mh_debug_reg20 & MH_DEBUG_REG20_PA_MH_data_63_32_MASK) >> MH_DEBUG_REG20_PA_MH_data_63_32_SHIFT)
+
+#define MH_DEBUG_REG20_SET_PA_MH_data_63_32(mh_debug_reg20_reg, pa_mh_data_63_32) \
+ mh_debug_reg20_reg = (mh_debug_reg20_reg & ~MH_DEBUG_REG20_PA_MH_data_63_32_MASK) | (pa_mh_data_63_32 << MH_DEBUG_REG20_PA_MH_data_63_32_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg20_t {
+ unsigned int pa_mh_data_63_32 : MH_DEBUG_REG20_PA_MH_data_63_32_SIZE;
+ } mh_debug_reg20_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg20_t {
+ unsigned int pa_mh_data_63_32 : MH_DEBUG_REG20_PA_MH_data_63_32_SIZE;
+ } mh_debug_reg20_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg20_t f;
+} mh_debug_reg20_u;
+
+
+/*
+ * MH_DEBUG_REG21 struct
+ */
+
+#define MH_DEBUG_REG21_AVALID_q_SIZE 1
+#define MH_DEBUG_REG21_AREADY_q_SIZE 1
+#define MH_DEBUG_REG21_AID_q_SIZE 3
+#define MH_DEBUG_REG21_ALEN_q_2_0_SIZE 3
+#define MH_DEBUG_REG21_ARVALID_q_SIZE 1
+#define MH_DEBUG_REG21_ARREADY_q_SIZE 1
+#define MH_DEBUG_REG21_ARID_q_SIZE 3
+#define MH_DEBUG_REG21_ARLEN_q_1_0_SIZE 2
+#define MH_DEBUG_REG21_RVALID_q_SIZE 1
+#define MH_DEBUG_REG21_RREADY_q_SIZE 1
+#define MH_DEBUG_REG21_RLAST_q_SIZE 1
+#define MH_DEBUG_REG21_RID_q_SIZE 3
+#define MH_DEBUG_REG21_WVALID_q_SIZE 1
+#define MH_DEBUG_REG21_WREADY_q_SIZE 1
+#define MH_DEBUG_REG21_WLAST_q_SIZE 1
+#define MH_DEBUG_REG21_WID_q_SIZE 3
+#define MH_DEBUG_REG21_BVALID_q_SIZE 1
+#define MH_DEBUG_REG21_BREADY_q_SIZE 1
+#define MH_DEBUG_REG21_BID_q_SIZE 3
+
+#define MH_DEBUG_REG21_AVALID_q_SHIFT 0
+#define MH_DEBUG_REG21_AREADY_q_SHIFT 1
+#define MH_DEBUG_REG21_AID_q_SHIFT 2
+#define MH_DEBUG_REG21_ALEN_q_2_0_SHIFT 5
+#define MH_DEBUG_REG21_ARVALID_q_SHIFT 8
+#define MH_DEBUG_REG21_ARREADY_q_SHIFT 9
+#define MH_DEBUG_REG21_ARID_q_SHIFT 10
+#define MH_DEBUG_REG21_ARLEN_q_1_0_SHIFT 13
+#define MH_DEBUG_REG21_RVALID_q_SHIFT 15
+#define MH_DEBUG_REG21_RREADY_q_SHIFT 16
+#define MH_DEBUG_REG21_RLAST_q_SHIFT 17
+#define MH_DEBUG_REG21_RID_q_SHIFT 18
+#define MH_DEBUG_REG21_WVALID_q_SHIFT 21
+#define MH_DEBUG_REG21_WREADY_q_SHIFT 22
+#define MH_DEBUG_REG21_WLAST_q_SHIFT 23
+#define MH_DEBUG_REG21_WID_q_SHIFT 24
+#define MH_DEBUG_REG21_BVALID_q_SHIFT 27
+#define MH_DEBUG_REG21_BREADY_q_SHIFT 28
+#define MH_DEBUG_REG21_BID_q_SHIFT 29
+
+#define MH_DEBUG_REG21_AVALID_q_MASK 0x00000001
+#define MH_DEBUG_REG21_AREADY_q_MASK 0x00000002
+#define MH_DEBUG_REG21_AID_q_MASK 0x0000001c
+#define MH_DEBUG_REG21_ALEN_q_2_0_MASK 0x000000e0
+#define MH_DEBUG_REG21_ARVALID_q_MASK 0x00000100
+#define MH_DEBUG_REG21_ARREADY_q_MASK 0x00000200
+#define MH_DEBUG_REG21_ARID_q_MASK 0x00001c00
+#define MH_DEBUG_REG21_ARLEN_q_1_0_MASK 0x00006000
+#define MH_DEBUG_REG21_RVALID_q_MASK 0x00008000
+#define MH_DEBUG_REG21_RREADY_q_MASK 0x00010000
+#define MH_DEBUG_REG21_RLAST_q_MASK 0x00020000
+#define MH_DEBUG_REG21_RID_q_MASK 0x001c0000
+#define MH_DEBUG_REG21_WVALID_q_MASK 0x00200000
+#define MH_DEBUG_REG21_WREADY_q_MASK 0x00400000
+#define MH_DEBUG_REG21_WLAST_q_MASK 0x00800000
+#define MH_DEBUG_REG21_WID_q_MASK 0x07000000
+#define MH_DEBUG_REG21_BVALID_q_MASK 0x08000000
+#define MH_DEBUG_REG21_BREADY_q_MASK 0x10000000
+#define MH_DEBUG_REG21_BID_q_MASK 0xe0000000
+
+#define MH_DEBUG_REG21_MASK \
+ (MH_DEBUG_REG21_AVALID_q_MASK | \
+ MH_DEBUG_REG21_AREADY_q_MASK | \
+ MH_DEBUG_REG21_AID_q_MASK | \
+ MH_DEBUG_REG21_ALEN_q_2_0_MASK | \
+ MH_DEBUG_REG21_ARVALID_q_MASK | \
+ MH_DEBUG_REG21_ARREADY_q_MASK | \
+ MH_DEBUG_REG21_ARID_q_MASK | \
+ MH_DEBUG_REG21_ARLEN_q_1_0_MASK | \
+ MH_DEBUG_REG21_RVALID_q_MASK | \
+ MH_DEBUG_REG21_RREADY_q_MASK | \
+ MH_DEBUG_REG21_RLAST_q_MASK | \
+ MH_DEBUG_REG21_RID_q_MASK | \
+ MH_DEBUG_REG21_WVALID_q_MASK | \
+ MH_DEBUG_REG21_WREADY_q_MASK | \
+ MH_DEBUG_REG21_WLAST_q_MASK | \
+ MH_DEBUG_REG21_WID_q_MASK | \
+ MH_DEBUG_REG21_BVALID_q_MASK | \
+ MH_DEBUG_REG21_BREADY_q_MASK | \
+ MH_DEBUG_REG21_BID_q_MASK)
+
+#define MH_DEBUG_REG21(avalid_q, aready_q, aid_q, alen_q_2_0, arvalid_q, arready_q, arid_q, arlen_q_1_0, rvalid_q, rready_q, rlast_q, rid_q, wvalid_q, wready_q, wlast_q, wid_q, bvalid_q, bready_q, bid_q) \
+ ((avalid_q << MH_DEBUG_REG21_AVALID_q_SHIFT) | \
+ (aready_q << MH_DEBUG_REG21_AREADY_q_SHIFT) | \
+ (aid_q << MH_DEBUG_REG21_AID_q_SHIFT) | \
+ (alen_q_2_0 << MH_DEBUG_REG21_ALEN_q_2_0_SHIFT) | \
+ (arvalid_q << MH_DEBUG_REG21_ARVALID_q_SHIFT) | \
+ (arready_q << MH_DEBUG_REG21_ARREADY_q_SHIFT) | \
+ (arid_q << MH_DEBUG_REG21_ARID_q_SHIFT) | \
+ (arlen_q_1_0 << MH_DEBUG_REG21_ARLEN_q_1_0_SHIFT) | \
+ (rvalid_q << MH_DEBUG_REG21_RVALID_q_SHIFT) | \
+ (rready_q << MH_DEBUG_REG21_RREADY_q_SHIFT) | \
+ (rlast_q << MH_DEBUG_REG21_RLAST_q_SHIFT) | \
+ (rid_q << MH_DEBUG_REG21_RID_q_SHIFT) | \
+ (wvalid_q << MH_DEBUG_REG21_WVALID_q_SHIFT) | \
+ (wready_q << MH_DEBUG_REG21_WREADY_q_SHIFT) | \
+ (wlast_q << MH_DEBUG_REG21_WLAST_q_SHIFT) | \
+ (wid_q << MH_DEBUG_REG21_WID_q_SHIFT) | \
+ (bvalid_q << MH_DEBUG_REG21_BVALID_q_SHIFT) | \
+ (bready_q << MH_DEBUG_REG21_BREADY_q_SHIFT) | \
+ (bid_q << MH_DEBUG_REG21_BID_q_SHIFT))
+
+#define MH_DEBUG_REG21_GET_AVALID_q(mh_debug_reg21) \
+ ((mh_debug_reg21 & MH_DEBUG_REG21_AVALID_q_MASK) >> MH_DEBUG_REG21_AVALID_q_SHIFT)
+#define MH_DEBUG_REG21_GET_AREADY_q(mh_debug_reg21) \
+ ((mh_debug_reg21 & MH_DEBUG_REG21_AREADY_q_MASK) >> MH_DEBUG_REG21_AREADY_q_SHIFT)
+#define MH_DEBUG_REG21_GET_AID_q(mh_debug_reg21) \
+ ((mh_debug_reg21 & MH_DEBUG_REG21_AID_q_MASK) >> MH_DEBUG_REG21_AID_q_SHIFT)
+#define MH_DEBUG_REG21_GET_ALEN_q_2_0(mh_debug_reg21) \
+ ((mh_debug_reg21 & MH_DEBUG_REG21_ALEN_q_2_0_MASK) >> MH_DEBUG_REG21_ALEN_q_2_0_SHIFT)
+#define MH_DEBUG_REG21_GET_ARVALID_q(mh_debug_reg21) \
+ ((mh_debug_reg21 & MH_DEBUG_REG21_ARVALID_q_MASK) >> MH_DEBUG_REG21_ARVALID_q_SHIFT)
+#define MH_DEBUG_REG21_GET_ARREADY_q(mh_debug_reg21) \
+ ((mh_debug_reg21 & MH_DEBUG_REG21_ARREADY_q_MASK) >> MH_DEBUG_REG21_ARREADY_q_SHIFT)
+#define MH_DEBUG_REG21_GET_ARID_q(mh_debug_reg21) \
+ ((mh_debug_reg21 & MH_DEBUG_REG21_ARID_q_MASK) >> MH_DEBUG_REG21_ARID_q_SHIFT)
+#define MH_DEBUG_REG21_GET_ARLEN_q_1_0(mh_debug_reg21) \
+ ((mh_debug_reg21 & MH_DEBUG_REG21_ARLEN_q_1_0_MASK) >> MH_DEBUG_REG21_ARLEN_q_1_0_SHIFT)
+#define MH_DEBUG_REG21_GET_RVALID_q(mh_debug_reg21) \
+ ((mh_debug_reg21 & MH_DEBUG_REG21_RVALID_q_MASK) >> MH_DEBUG_REG21_RVALID_q_SHIFT)
+#define MH_DEBUG_REG21_GET_RREADY_q(mh_debug_reg21) \
+ ((mh_debug_reg21 & MH_DEBUG_REG21_RREADY_q_MASK) >> MH_DEBUG_REG21_RREADY_q_SHIFT)
+#define MH_DEBUG_REG21_GET_RLAST_q(mh_debug_reg21) \
+ ((mh_debug_reg21 & MH_DEBUG_REG21_RLAST_q_MASK) >> MH_DEBUG_REG21_RLAST_q_SHIFT)
+#define MH_DEBUG_REG21_GET_RID_q(mh_debug_reg21) \
+ ((mh_debug_reg21 & MH_DEBUG_REG21_RID_q_MASK) >> MH_DEBUG_REG21_RID_q_SHIFT)
+#define MH_DEBUG_REG21_GET_WVALID_q(mh_debug_reg21) \
+ ((mh_debug_reg21 & MH_DEBUG_REG21_WVALID_q_MASK) >> MH_DEBUG_REG21_WVALID_q_SHIFT)
+#define MH_DEBUG_REG21_GET_WREADY_q(mh_debug_reg21) \
+ ((mh_debug_reg21 & MH_DEBUG_REG21_WREADY_q_MASK) >> MH_DEBUG_REG21_WREADY_q_SHIFT)
+#define MH_DEBUG_REG21_GET_WLAST_q(mh_debug_reg21) \
+ ((mh_debug_reg21 & MH_DEBUG_REG21_WLAST_q_MASK) >> MH_DEBUG_REG21_WLAST_q_SHIFT)
+#define MH_DEBUG_REG21_GET_WID_q(mh_debug_reg21) \
+ ((mh_debug_reg21 & MH_DEBUG_REG21_WID_q_MASK) >> MH_DEBUG_REG21_WID_q_SHIFT)
+#define MH_DEBUG_REG21_GET_BVALID_q(mh_debug_reg21) \
+ ((mh_debug_reg21 & MH_DEBUG_REG21_BVALID_q_MASK) >> MH_DEBUG_REG21_BVALID_q_SHIFT)
+#define MH_DEBUG_REG21_GET_BREADY_q(mh_debug_reg21) \
+ ((mh_debug_reg21 & MH_DEBUG_REG21_BREADY_q_MASK) >> MH_DEBUG_REG21_BREADY_q_SHIFT)
+#define MH_DEBUG_REG21_GET_BID_q(mh_debug_reg21) \
+ ((mh_debug_reg21 & MH_DEBUG_REG21_BID_q_MASK) >> MH_DEBUG_REG21_BID_q_SHIFT)
+
+#define MH_DEBUG_REG21_SET_AVALID_q(mh_debug_reg21_reg, avalid_q) \
+ mh_debug_reg21_reg = (mh_debug_reg21_reg & ~MH_DEBUG_REG21_AVALID_q_MASK) | (avalid_q << MH_DEBUG_REG21_AVALID_q_SHIFT)
+#define MH_DEBUG_REG21_SET_AREADY_q(mh_debug_reg21_reg, aready_q) \
+ mh_debug_reg21_reg = (mh_debug_reg21_reg & ~MH_DEBUG_REG21_AREADY_q_MASK) | (aready_q << MH_DEBUG_REG21_AREADY_q_SHIFT)
+#define MH_DEBUG_REG21_SET_AID_q(mh_debug_reg21_reg, aid_q) \
+ mh_debug_reg21_reg = (mh_debug_reg21_reg & ~MH_DEBUG_REG21_AID_q_MASK) | (aid_q << MH_DEBUG_REG21_AID_q_SHIFT)
+#define MH_DEBUG_REG21_SET_ALEN_q_2_0(mh_debug_reg21_reg, alen_q_2_0) \
+ mh_debug_reg21_reg = (mh_debug_reg21_reg & ~MH_DEBUG_REG21_ALEN_q_2_0_MASK) | (alen_q_2_0 << MH_DEBUG_REG21_ALEN_q_2_0_SHIFT)
+#define MH_DEBUG_REG21_SET_ARVALID_q(mh_debug_reg21_reg, arvalid_q) \
+ mh_debug_reg21_reg = (mh_debug_reg21_reg & ~MH_DEBUG_REG21_ARVALID_q_MASK) | (arvalid_q << MH_DEBUG_REG21_ARVALID_q_SHIFT)
+#define MH_DEBUG_REG21_SET_ARREADY_q(mh_debug_reg21_reg, arready_q) \
+ mh_debug_reg21_reg = (mh_debug_reg21_reg & ~MH_DEBUG_REG21_ARREADY_q_MASK) | (arready_q << MH_DEBUG_REG21_ARREADY_q_SHIFT)
+#define MH_DEBUG_REG21_SET_ARID_q(mh_debug_reg21_reg, arid_q) \
+ mh_debug_reg21_reg = (mh_debug_reg21_reg & ~MH_DEBUG_REG21_ARID_q_MASK) | (arid_q << MH_DEBUG_REG21_ARID_q_SHIFT)
+#define MH_DEBUG_REG21_SET_ARLEN_q_1_0(mh_debug_reg21_reg, arlen_q_1_0) \
+ mh_debug_reg21_reg = (mh_debug_reg21_reg & ~MH_DEBUG_REG21_ARLEN_q_1_0_MASK) | (arlen_q_1_0 << MH_DEBUG_REG21_ARLEN_q_1_0_SHIFT)
+#define MH_DEBUG_REG21_SET_RVALID_q(mh_debug_reg21_reg, rvalid_q) \
+ mh_debug_reg21_reg = (mh_debug_reg21_reg & ~MH_DEBUG_REG21_RVALID_q_MASK) | (rvalid_q << MH_DEBUG_REG21_RVALID_q_SHIFT)
+#define MH_DEBUG_REG21_SET_RREADY_q(mh_debug_reg21_reg, rready_q) \
+ mh_debug_reg21_reg = (mh_debug_reg21_reg & ~MH_DEBUG_REG21_RREADY_q_MASK) | (rready_q << MH_DEBUG_REG21_RREADY_q_SHIFT)
+#define MH_DEBUG_REG21_SET_RLAST_q(mh_debug_reg21_reg, rlast_q) \
+ mh_debug_reg21_reg = (mh_debug_reg21_reg & ~MH_DEBUG_REG21_RLAST_q_MASK) | (rlast_q << MH_DEBUG_REG21_RLAST_q_SHIFT)
+#define MH_DEBUG_REG21_SET_RID_q(mh_debug_reg21_reg, rid_q) \
+ mh_debug_reg21_reg = (mh_debug_reg21_reg & ~MH_DEBUG_REG21_RID_q_MASK) | (rid_q << MH_DEBUG_REG21_RID_q_SHIFT)
+#define MH_DEBUG_REG21_SET_WVALID_q(mh_debug_reg21_reg, wvalid_q) \
+ mh_debug_reg21_reg = (mh_debug_reg21_reg & ~MH_DEBUG_REG21_WVALID_q_MASK) | (wvalid_q << MH_DEBUG_REG21_WVALID_q_SHIFT)
+#define MH_DEBUG_REG21_SET_WREADY_q(mh_debug_reg21_reg, wready_q) \
+ mh_debug_reg21_reg = (mh_debug_reg21_reg & ~MH_DEBUG_REG21_WREADY_q_MASK) | (wready_q << MH_DEBUG_REG21_WREADY_q_SHIFT)
+#define MH_DEBUG_REG21_SET_WLAST_q(mh_debug_reg21_reg, wlast_q) \
+ mh_debug_reg21_reg = (mh_debug_reg21_reg & ~MH_DEBUG_REG21_WLAST_q_MASK) | (wlast_q << MH_DEBUG_REG21_WLAST_q_SHIFT)
+#define MH_DEBUG_REG21_SET_WID_q(mh_debug_reg21_reg, wid_q) \
+ mh_debug_reg21_reg = (mh_debug_reg21_reg & ~MH_DEBUG_REG21_WID_q_MASK) | (wid_q << MH_DEBUG_REG21_WID_q_SHIFT)
+#define MH_DEBUG_REG21_SET_BVALID_q(mh_debug_reg21_reg, bvalid_q) \
+ mh_debug_reg21_reg = (mh_debug_reg21_reg & ~MH_DEBUG_REG21_BVALID_q_MASK) | (bvalid_q << MH_DEBUG_REG21_BVALID_q_SHIFT)
+#define MH_DEBUG_REG21_SET_BREADY_q(mh_debug_reg21_reg, bready_q) \
+ mh_debug_reg21_reg = (mh_debug_reg21_reg & ~MH_DEBUG_REG21_BREADY_q_MASK) | (bready_q << MH_DEBUG_REG21_BREADY_q_SHIFT)
+#define MH_DEBUG_REG21_SET_BID_q(mh_debug_reg21_reg, bid_q) \
+ mh_debug_reg21_reg = (mh_debug_reg21_reg & ~MH_DEBUG_REG21_BID_q_MASK) | (bid_q << MH_DEBUG_REG21_BID_q_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg21_t {
+ unsigned int avalid_q : MH_DEBUG_REG21_AVALID_q_SIZE;
+ unsigned int aready_q : MH_DEBUG_REG21_AREADY_q_SIZE;
+ unsigned int aid_q : MH_DEBUG_REG21_AID_q_SIZE;
+ unsigned int alen_q_2_0 : MH_DEBUG_REG21_ALEN_q_2_0_SIZE;
+ unsigned int arvalid_q : MH_DEBUG_REG21_ARVALID_q_SIZE;
+ unsigned int arready_q : MH_DEBUG_REG21_ARREADY_q_SIZE;
+ unsigned int arid_q : MH_DEBUG_REG21_ARID_q_SIZE;
+ unsigned int arlen_q_1_0 : MH_DEBUG_REG21_ARLEN_q_1_0_SIZE;
+ unsigned int rvalid_q : MH_DEBUG_REG21_RVALID_q_SIZE;
+ unsigned int rready_q : MH_DEBUG_REG21_RREADY_q_SIZE;
+ unsigned int rlast_q : MH_DEBUG_REG21_RLAST_q_SIZE;
+ unsigned int rid_q : MH_DEBUG_REG21_RID_q_SIZE;
+ unsigned int wvalid_q : MH_DEBUG_REG21_WVALID_q_SIZE;
+ unsigned int wready_q : MH_DEBUG_REG21_WREADY_q_SIZE;
+ unsigned int wlast_q : MH_DEBUG_REG21_WLAST_q_SIZE;
+ unsigned int wid_q : MH_DEBUG_REG21_WID_q_SIZE;
+ unsigned int bvalid_q : MH_DEBUG_REG21_BVALID_q_SIZE;
+ unsigned int bready_q : MH_DEBUG_REG21_BREADY_q_SIZE;
+ unsigned int bid_q : MH_DEBUG_REG21_BID_q_SIZE;
+ } mh_debug_reg21_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg21_t {
+ unsigned int bid_q : MH_DEBUG_REG21_BID_q_SIZE;
+ unsigned int bready_q : MH_DEBUG_REG21_BREADY_q_SIZE;
+ unsigned int bvalid_q : MH_DEBUG_REG21_BVALID_q_SIZE;
+ unsigned int wid_q : MH_DEBUG_REG21_WID_q_SIZE;
+ unsigned int wlast_q : MH_DEBUG_REG21_WLAST_q_SIZE;
+ unsigned int wready_q : MH_DEBUG_REG21_WREADY_q_SIZE;
+ unsigned int wvalid_q : MH_DEBUG_REG21_WVALID_q_SIZE;
+ unsigned int rid_q : MH_DEBUG_REG21_RID_q_SIZE;
+ unsigned int rlast_q : MH_DEBUG_REG21_RLAST_q_SIZE;
+ unsigned int rready_q : MH_DEBUG_REG21_RREADY_q_SIZE;
+ unsigned int rvalid_q : MH_DEBUG_REG21_RVALID_q_SIZE;
+ unsigned int arlen_q_1_0 : MH_DEBUG_REG21_ARLEN_q_1_0_SIZE;
+ unsigned int arid_q : MH_DEBUG_REG21_ARID_q_SIZE;
+ unsigned int arready_q : MH_DEBUG_REG21_ARREADY_q_SIZE;
+ unsigned int arvalid_q : MH_DEBUG_REG21_ARVALID_q_SIZE;
+ unsigned int alen_q_2_0 : MH_DEBUG_REG21_ALEN_q_2_0_SIZE;
+ unsigned int aid_q : MH_DEBUG_REG21_AID_q_SIZE;
+ unsigned int aready_q : MH_DEBUG_REG21_AREADY_q_SIZE;
+ unsigned int avalid_q : MH_DEBUG_REG21_AVALID_q_SIZE;
+ } mh_debug_reg21_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg21_t f;
+} mh_debug_reg21_u;
+
+
+/*
+ * MH_DEBUG_REG22 struct
+ */
+
+#define MH_DEBUG_REG22_AVALID_q_SIZE 1
+#define MH_DEBUG_REG22_AREADY_q_SIZE 1
+#define MH_DEBUG_REG22_AID_q_SIZE 3
+#define MH_DEBUG_REG22_ALEN_q_1_0_SIZE 2
+#define MH_DEBUG_REG22_ARVALID_q_SIZE 1
+#define MH_DEBUG_REG22_ARREADY_q_SIZE 1
+#define MH_DEBUG_REG22_ARID_q_SIZE 3
+#define MH_DEBUG_REG22_ARLEN_q_1_1_SIZE 1
+#define MH_DEBUG_REG22_WVALID_q_SIZE 1
+#define MH_DEBUG_REG22_WREADY_q_SIZE 1
+#define MH_DEBUG_REG22_WLAST_q_SIZE 1
+#define MH_DEBUG_REG22_WID_q_SIZE 3
+#define MH_DEBUG_REG22_WSTRB_q_SIZE 8
+#define MH_DEBUG_REG22_BVALID_q_SIZE 1
+#define MH_DEBUG_REG22_BREADY_q_SIZE 1
+#define MH_DEBUG_REG22_BID_q_SIZE 3
+
+#define MH_DEBUG_REG22_AVALID_q_SHIFT 0
+#define MH_DEBUG_REG22_AREADY_q_SHIFT 1
+#define MH_DEBUG_REG22_AID_q_SHIFT 2
+#define MH_DEBUG_REG22_ALEN_q_1_0_SHIFT 5
+#define MH_DEBUG_REG22_ARVALID_q_SHIFT 7
+#define MH_DEBUG_REG22_ARREADY_q_SHIFT 8
+#define MH_DEBUG_REG22_ARID_q_SHIFT 9
+#define MH_DEBUG_REG22_ARLEN_q_1_1_SHIFT 12
+#define MH_DEBUG_REG22_WVALID_q_SHIFT 13
+#define MH_DEBUG_REG22_WREADY_q_SHIFT 14
+#define MH_DEBUG_REG22_WLAST_q_SHIFT 15
+#define MH_DEBUG_REG22_WID_q_SHIFT 16
+#define MH_DEBUG_REG22_WSTRB_q_SHIFT 19
+#define MH_DEBUG_REG22_BVALID_q_SHIFT 27
+#define MH_DEBUG_REG22_BREADY_q_SHIFT 28
+#define MH_DEBUG_REG22_BID_q_SHIFT 29
+
+#define MH_DEBUG_REG22_AVALID_q_MASK 0x00000001
+#define MH_DEBUG_REG22_AREADY_q_MASK 0x00000002
+#define MH_DEBUG_REG22_AID_q_MASK 0x0000001c
+#define MH_DEBUG_REG22_ALEN_q_1_0_MASK 0x00000060
+#define MH_DEBUG_REG22_ARVALID_q_MASK 0x00000080
+#define MH_DEBUG_REG22_ARREADY_q_MASK 0x00000100
+#define MH_DEBUG_REG22_ARID_q_MASK 0x00000e00
+#define MH_DEBUG_REG22_ARLEN_q_1_1_MASK 0x00001000
+#define MH_DEBUG_REG22_WVALID_q_MASK 0x00002000
+#define MH_DEBUG_REG22_WREADY_q_MASK 0x00004000
+#define MH_DEBUG_REG22_WLAST_q_MASK 0x00008000
+#define MH_DEBUG_REG22_WID_q_MASK 0x00070000
+#define MH_DEBUG_REG22_WSTRB_q_MASK 0x07f80000
+#define MH_DEBUG_REG22_BVALID_q_MASK 0x08000000
+#define MH_DEBUG_REG22_BREADY_q_MASK 0x10000000
+#define MH_DEBUG_REG22_BID_q_MASK 0xe0000000
+
+#define MH_DEBUG_REG22_MASK \
+ (MH_DEBUG_REG22_AVALID_q_MASK | \
+ MH_DEBUG_REG22_AREADY_q_MASK | \
+ MH_DEBUG_REG22_AID_q_MASK | \
+ MH_DEBUG_REG22_ALEN_q_1_0_MASK | \
+ MH_DEBUG_REG22_ARVALID_q_MASK | \
+ MH_DEBUG_REG22_ARREADY_q_MASK | \
+ MH_DEBUG_REG22_ARID_q_MASK | \
+ MH_DEBUG_REG22_ARLEN_q_1_1_MASK | \
+ MH_DEBUG_REG22_WVALID_q_MASK | \
+ MH_DEBUG_REG22_WREADY_q_MASK | \
+ MH_DEBUG_REG22_WLAST_q_MASK | \
+ MH_DEBUG_REG22_WID_q_MASK | \
+ MH_DEBUG_REG22_WSTRB_q_MASK | \
+ MH_DEBUG_REG22_BVALID_q_MASK | \
+ MH_DEBUG_REG22_BREADY_q_MASK | \
+ MH_DEBUG_REG22_BID_q_MASK)
+
+#define MH_DEBUG_REG22(avalid_q, aready_q, aid_q, alen_q_1_0, arvalid_q, arready_q, arid_q, arlen_q_1_1, wvalid_q, wready_q, wlast_q, wid_q, wstrb_q, bvalid_q, bready_q, bid_q) \
+ ((avalid_q << MH_DEBUG_REG22_AVALID_q_SHIFT) | \
+ (aready_q << MH_DEBUG_REG22_AREADY_q_SHIFT) | \
+ (aid_q << MH_DEBUG_REG22_AID_q_SHIFT) | \
+ (alen_q_1_0 << MH_DEBUG_REG22_ALEN_q_1_0_SHIFT) | \
+ (arvalid_q << MH_DEBUG_REG22_ARVALID_q_SHIFT) | \
+ (arready_q << MH_DEBUG_REG22_ARREADY_q_SHIFT) | \
+ (arid_q << MH_DEBUG_REG22_ARID_q_SHIFT) | \
+ (arlen_q_1_1 << MH_DEBUG_REG22_ARLEN_q_1_1_SHIFT) | \
+ (wvalid_q << MH_DEBUG_REG22_WVALID_q_SHIFT) | \
+ (wready_q << MH_DEBUG_REG22_WREADY_q_SHIFT) | \
+ (wlast_q << MH_DEBUG_REG22_WLAST_q_SHIFT) | \
+ (wid_q << MH_DEBUG_REG22_WID_q_SHIFT) | \
+ (wstrb_q << MH_DEBUG_REG22_WSTRB_q_SHIFT) | \
+ (bvalid_q << MH_DEBUG_REG22_BVALID_q_SHIFT) | \
+ (bready_q << MH_DEBUG_REG22_BREADY_q_SHIFT) | \
+ (bid_q << MH_DEBUG_REG22_BID_q_SHIFT))
+
+#define MH_DEBUG_REG22_GET_AVALID_q(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_AVALID_q_MASK) >> MH_DEBUG_REG22_AVALID_q_SHIFT)
+#define MH_DEBUG_REG22_GET_AREADY_q(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_AREADY_q_MASK) >> MH_DEBUG_REG22_AREADY_q_SHIFT)
+#define MH_DEBUG_REG22_GET_AID_q(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_AID_q_MASK) >> MH_DEBUG_REG22_AID_q_SHIFT)
+#define MH_DEBUG_REG22_GET_ALEN_q_1_0(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_ALEN_q_1_0_MASK) >> MH_DEBUG_REG22_ALEN_q_1_0_SHIFT)
+#define MH_DEBUG_REG22_GET_ARVALID_q(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_ARVALID_q_MASK) >> MH_DEBUG_REG22_ARVALID_q_SHIFT)
+#define MH_DEBUG_REG22_GET_ARREADY_q(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_ARREADY_q_MASK) >> MH_DEBUG_REG22_ARREADY_q_SHIFT)
+#define MH_DEBUG_REG22_GET_ARID_q(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_ARID_q_MASK) >> MH_DEBUG_REG22_ARID_q_SHIFT)
+#define MH_DEBUG_REG22_GET_ARLEN_q_1_1(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_ARLEN_q_1_1_MASK) >> MH_DEBUG_REG22_ARLEN_q_1_1_SHIFT)
+#define MH_DEBUG_REG22_GET_WVALID_q(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_WVALID_q_MASK) >> MH_DEBUG_REG22_WVALID_q_SHIFT)
+#define MH_DEBUG_REG22_GET_WREADY_q(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_WREADY_q_MASK) >> MH_DEBUG_REG22_WREADY_q_SHIFT)
+#define MH_DEBUG_REG22_GET_WLAST_q(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_WLAST_q_MASK) >> MH_DEBUG_REG22_WLAST_q_SHIFT)
+#define MH_DEBUG_REG22_GET_WID_q(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_WID_q_MASK) >> MH_DEBUG_REG22_WID_q_SHIFT)
+#define MH_DEBUG_REG22_GET_WSTRB_q(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_WSTRB_q_MASK) >> MH_DEBUG_REG22_WSTRB_q_SHIFT)
+#define MH_DEBUG_REG22_GET_BVALID_q(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_BVALID_q_MASK) >> MH_DEBUG_REG22_BVALID_q_SHIFT)
+#define MH_DEBUG_REG22_GET_BREADY_q(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_BREADY_q_MASK) >> MH_DEBUG_REG22_BREADY_q_SHIFT)
+#define MH_DEBUG_REG22_GET_BID_q(mh_debug_reg22) \
+ ((mh_debug_reg22 & MH_DEBUG_REG22_BID_q_MASK) >> MH_DEBUG_REG22_BID_q_SHIFT)
+
+#define MH_DEBUG_REG22_SET_AVALID_q(mh_debug_reg22_reg, avalid_q) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_AVALID_q_MASK) | (avalid_q << MH_DEBUG_REG22_AVALID_q_SHIFT)
+#define MH_DEBUG_REG22_SET_AREADY_q(mh_debug_reg22_reg, aready_q) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_AREADY_q_MASK) | (aready_q << MH_DEBUG_REG22_AREADY_q_SHIFT)
+#define MH_DEBUG_REG22_SET_AID_q(mh_debug_reg22_reg, aid_q) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_AID_q_MASK) | (aid_q << MH_DEBUG_REG22_AID_q_SHIFT)
+#define MH_DEBUG_REG22_SET_ALEN_q_1_0(mh_debug_reg22_reg, alen_q_1_0) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_ALEN_q_1_0_MASK) | (alen_q_1_0 << MH_DEBUG_REG22_ALEN_q_1_0_SHIFT)
+#define MH_DEBUG_REG22_SET_ARVALID_q(mh_debug_reg22_reg, arvalid_q) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_ARVALID_q_MASK) | (arvalid_q << MH_DEBUG_REG22_ARVALID_q_SHIFT)
+#define MH_DEBUG_REG22_SET_ARREADY_q(mh_debug_reg22_reg, arready_q) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_ARREADY_q_MASK) | (arready_q << MH_DEBUG_REG22_ARREADY_q_SHIFT)
+#define MH_DEBUG_REG22_SET_ARID_q(mh_debug_reg22_reg, arid_q) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_ARID_q_MASK) | (arid_q << MH_DEBUG_REG22_ARID_q_SHIFT)
+#define MH_DEBUG_REG22_SET_ARLEN_q_1_1(mh_debug_reg22_reg, arlen_q_1_1) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_ARLEN_q_1_1_MASK) | (arlen_q_1_1 << MH_DEBUG_REG22_ARLEN_q_1_1_SHIFT)
+#define MH_DEBUG_REG22_SET_WVALID_q(mh_debug_reg22_reg, wvalid_q) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_WVALID_q_MASK) | (wvalid_q << MH_DEBUG_REG22_WVALID_q_SHIFT)
+#define MH_DEBUG_REG22_SET_WREADY_q(mh_debug_reg22_reg, wready_q) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_WREADY_q_MASK) | (wready_q << MH_DEBUG_REG22_WREADY_q_SHIFT)
+#define MH_DEBUG_REG22_SET_WLAST_q(mh_debug_reg22_reg, wlast_q) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_WLAST_q_MASK) | (wlast_q << MH_DEBUG_REG22_WLAST_q_SHIFT)
+#define MH_DEBUG_REG22_SET_WID_q(mh_debug_reg22_reg, wid_q) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_WID_q_MASK) | (wid_q << MH_DEBUG_REG22_WID_q_SHIFT)
+#define MH_DEBUG_REG22_SET_WSTRB_q(mh_debug_reg22_reg, wstrb_q) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_WSTRB_q_MASK) | (wstrb_q << MH_DEBUG_REG22_WSTRB_q_SHIFT)
+#define MH_DEBUG_REG22_SET_BVALID_q(mh_debug_reg22_reg, bvalid_q) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_BVALID_q_MASK) | (bvalid_q << MH_DEBUG_REG22_BVALID_q_SHIFT)
+#define MH_DEBUG_REG22_SET_BREADY_q(mh_debug_reg22_reg, bready_q) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_BREADY_q_MASK) | (bready_q << MH_DEBUG_REG22_BREADY_q_SHIFT)
+#define MH_DEBUG_REG22_SET_BID_q(mh_debug_reg22_reg, bid_q) \
+ mh_debug_reg22_reg = (mh_debug_reg22_reg & ~MH_DEBUG_REG22_BID_q_MASK) | (bid_q << MH_DEBUG_REG22_BID_q_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg22_t {
+ unsigned int avalid_q : MH_DEBUG_REG22_AVALID_q_SIZE;
+ unsigned int aready_q : MH_DEBUG_REG22_AREADY_q_SIZE;
+ unsigned int aid_q : MH_DEBUG_REG22_AID_q_SIZE;
+ unsigned int alen_q_1_0 : MH_DEBUG_REG22_ALEN_q_1_0_SIZE;
+ unsigned int arvalid_q : MH_DEBUG_REG22_ARVALID_q_SIZE;
+ unsigned int arready_q : MH_DEBUG_REG22_ARREADY_q_SIZE;
+ unsigned int arid_q : MH_DEBUG_REG22_ARID_q_SIZE;
+ unsigned int arlen_q_1_1 : MH_DEBUG_REG22_ARLEN_q_1_1_SIZE;
+ unsigned int wvalid_q : MH_DEBUG_REG22_WVALID_q_SIZE;
+ unsigned int wready_q : MH_DEBUG_REG22_WREADY_q_SIZE;
+ unsigned int wlast_q : MH_DEBUG_REG22_WLAST_q_SIZE;
+ unsigned int wid_q : MH_DEBUG_REG22_WID_q_SIZE;
+ unsigned int wstrb_q : MH_DEBUG_REG22_WSTRB_q_SIZE;
+ unsigned int bvalid_q : MH_DEBUG_REG22_BVALID_q_SIZE;
+ unsigned int bready_q : MH_DEBUG_REG22_BREADY_q_SIZE;
+ unsigned int bid_q : MH_DEBUG_REG22_BID_q_SIZE;
+ } mh_debug_reg22_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg22_t {
+ unsigned int bid_q : MH_DEBUG_REG22_BID_q_SIZE;
+ unsigned int bready_q : MH_DEBUG_REG22_BREADY_q_SIZE;
+ unsigned int bvalid_q : MH_DEBUG_REG22_BVALID_q_SIZE;
+ unsigned int wstrb_q : MH_DEBUG_REG22_WSTRB_q_SIZE;
+ unsigned int wid_q : MH_DEBUG_REG22_WID_q_SIZE;
+ unsigned int wlast_q : MH_DEBUG_REG22_WLAST_q_SIZE;
+ unsigned int wready_q : MH_DEBUG_REG22_WREADY_q_SIZE;
+ unsigned int wvalid_q : MH_DEBUG_REG22_WVALID_q_SIZE;
+ unsigned int arlen_q_1_1 : MH_DEBUG_REG22_ARLEN_q_1_1_SIZE;
+ unsigned int arid_q : MH_DEBUG_REG22_ARID_q_SIZE;
+ unsigned int arready_q : MH_DEBUG_REG22_ARREADY_q_SIZE;
+ unsigned int arvalid_q : MH_DEBUG_REG22_ARVALID_q_SIZE;
+ unsigned int alen_q_1_0 : MH_DEBUG_REG22_ALEN_q_1_0_SIZE;
+ unsigned int aid_q : MH_DEBUG_REG22_AID_q_SIZE;
+ unsigned int aready_q : MH_DEBUG_REG22_AREADY_q_SIZE;
+ unsigned int avalid_q : MH_DEBUG_REG22_AVALID_q_SIZE;
+ } mh_debug_reg22_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg22_t f;
+} mh_debug_reg22_u;
+
+
+/*
+ * MH_DEBUG_REG23 struct
+ */
+
+#define MH_DEBUG_REG23_ARC_CTRL_RE_q_SIZE 1
+#define MH_DEBUG_REG23_CTRL_ARC_ID_SIZE 3
+#define MH_DEBUG_REG23_CTRL_ARC_PAD_SIZE 28
+
+#define MH_DEBUG_REG23_ARC_CTRL_RE_q_SHIFT 0
+#define MH_DEBUG_REG23_CTRL_ARC_ID_SHIFT 1
+#define MH_DEBUG_REG23_CTRL_ARC_PAD_SHIFT 4
+
+#define MH_DEBUG_REG23_ARC_CTRL_RE_q_MASK 0x00000001
+#define MH_DEBUG_REG23_CTRL_ARC_ID_MASK 0x0000000e
+#define MH_DEBUG_REG23_CTRL_ARC_PAD_MASK 0xfffffff0
+
+#define MH_DEBUG_REG23_MASK \
+ (MH_DEBUG_REG23_ARC_CTRL_RE_q_MASK | \
+ MH_DEBUG_REG23_CTRL_ARC_ID_MASK | \
+ MH_DEBUG_REG23_CTRL_ARC_PAD_MASK)
+
+#define MH_DEBUG_REG23(arc_ctrl_re_q, ctrl_arc_id, ctrl_arc_pad) \
+ ((arc_ctrl_re_q << MH_DEBUG_REG23_ARC_CTRL_RE_q_SHIFT) | \
+ (ctrl_arc_id << MH_DEBUG_REG23_CTRL_ARC_ID_SHIFT) | \
+ (ctrl_arc_pad << MH_DEBUG_REG23_CTRL_ARC_PAD_SHIFT))
+
+#define MH_DEBUG_REG23_GET_ARC_CTRL_RE_q(mh_debug_reg23) \
+ ((mh_debug_reg23 & MH_DEBUG_REG23_ARC_CTRL_RE_q_MASK) >> MH_DEBUG_REG23_ARC_CTRL_RE_q_SHIFT)
+#define MH_DEBUG_REG23_GET_CTRL_ARC_ID(mh_debug_reg23) \
+ ((mh_debug_reg23 & MH_DEBUG_REG23_CTRL_ARC_ID_MASK) >> MH_DEBUG_REG23_CTRL_ARC_ID_SHIFT)
+#define MH_DEBUG_REG23_GET_CTRL_ARC_PAD(mh_debug_reg23) \
+ ((mh_debug_reg23 & MH_DEBUG_REG23_CTRL_ARC_PAD_MASK) >> MH_DEBUG_REG23_CTRL_ARC_PAD_SHIFT)
+
+#define MH_DEBUG_REG23_SET_ARC_CTRL_RE_q(mh_debug_reg23_reg, arc_ctrl_re_q) \
+ mh_debug_reg23_reg = (mh_debug_reg23_reg & ~MH_DEBUG_REG23_ARC_CTRL_RE_q_MASK) | (arc_ctrl_re_q << MH_DEBUG_REG23_ARC_CTRL_RE_q_SHIFT)
+#define MH_DEBUG_REG23_SET_CTRL_ARC_ID(mh_debug_reg23_reg, ctrl_arc_id) \
+ mh_debug_reg23_reg = (mh_debug_reg23_reg & ~MH_DEBUG_REG23_CTRL_ARC_ID_MASK) | (ctrl_arc_id << MH_DEBUG_REG23_CTRL_ARC_ID_SHIFT)
+#define MH_DEBUG_REG23_SET_CTRL_ARC_PAD(mh_debug_reg23_reg, ctrl_arc_pad) \
+ mh_debug_reg23_reg = (mh_debug_reg23_reg & ~MH_DEBUG_REG23_CTRL_ARC_PAD_MASK) | (ctrl_arc_pad << MH_DEBUG_REG23_CTRL_ARC_PAD_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg23_t {
+ unsigned int arc_ctrl_re_q : MH_DEBUG_REG23_ARC_CTRL_RE_q_SIZE;
+ unsigned int ctrl_arc_id : MH_DEBUG_REG23_CTRL_ARC_ID_SIZE;
+ unsigned int ctrl_arc_pad : MH_DEBUG_REG23_CTRL_ARC_PAD_SIZE;
+ } mh_debug_reg23_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg23_t {
+ unsigned int ctrl_arc_pad : MH_DEBUG_REG23_CTRL_ARC_PAD_SIZE;
+ unsigned int ctrl_arc_id : MH_DEBUG_REG23_CTRL_ARC_ID_SIZE;
+ unsigned int arc_ctrl_re_q : MH_DEBUG_REG23_ARC_CTRL_RE_q_SIZE;
+ } mh_debug_reg23_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg23_t f;
+} mh_debug_reg23_u;
+
+
+/*
+ * MH_DEBUG_REG24 struct
+ */
+
+#define MH_DEBUG_REG24_ALWAYS_ZERO_SIZE 2
+#define MH_DEBUG_REG24_REG_A_SIZE 14
+#define MH_DEBUG_REG24_REG_RE_SIZE 1
+#define MH_DEBUG_REG24_REG_WE_SIZE 1
+#define MH_DEBUG_REG24_BLOCK_RS_SIZE 1
+
+#define MH_DEBUG_REG24_ALWAYS_ZERO_SHIFT 0
+#define MH_DEBUG_REG24_REG_A_SHIFT 2
+#define MH_DEBUG_REG24_REG_RE_SHIFT 16
+#define MH_DEBUG_REG24_REG_WE_SHIFT 17
+#define MH_DEBUG_REG24_BLOCK_RS_SHIFT 18
+
+#define MH_DEBUG_REG24_ALWAYS_ZERO_MASK 0x00000003
+#define MH_DEBUG_REG24_REG_A_MASK 0x0000fffc
+#define MH_DEBUG_REG24_REG_RE_MASK 0x00010000
+#define MH_DEBUG_REG24_REG_WE_MASK 0x00020000
+#define MH_DEBUG_REG24_BLOCK_RS_MASK 0x00040000
+
+#define MH_DEBUG_REG24_MASK \
+ (MH_DEBUG_REG24_ALWAYS_ZERO_MASK | \
+ MH_DEBUG_REG24_REG_A_MASK | \
+ MH_DEBUG_REG24_REG_RE_MASK | \
+ MH_DEBUG_REG24_REG_WE_MASK | \
+ MH_DEBUG_REG24_BLOCK_RS_MASK)
+
+#define MH_DEBUG_REG24(always_zero, reg_a, reg_re, reg_we, block_rs) \
+ ((always_zero << MH_DEBUG_REG24_ALWAYS_ZERO_SHIFT) | \
+ (reg_a << MH_DEBUG_REG24_REG_A_SHIFT) | \
+ (reg_re << MH_DEBUG_REG24_REG_RE_SHIFT) | \
+ (reg_we << MH_DEBUG_REG24_REG_WE_SHIFT) | \
+ (block_rs << MH_DEBUG_REG24_BLOCK_RS_SHIFT))
+
+#define MH_DEBUG_REG24_GET_ALWAYS_ZERO(mh_debug_reg24) \
+ ((mh_debug_reg24 & MH_DEBUG_REG24_ALWAYS_ZERO_MASK) >> MH_DEBUG_REG24_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG24_GET_REG_A(mh_debug_reg24) \
+ ((mh_debug_reg24 & MH_DEBUG_REG24_REG_A_MASK) >> MH_DEBUG_REG24_REG_A_SHIFT)
+#define MH_DEBUG_REG24_GET_REG_RE(mh_debug_reg24) \
+ ((mh_debug_reg24 & MH_DEBUG_REG24_REG_RE_MASK) >> MH_DEBUG_REG24_REG_RE_SHIFT)
+#define MH_DEBUG_REG24_GET_REG_WE(mh_debug_reg24) \
+ ((mh_debug_reg24 & MH_DEBUG_REG24_REG_WE_MASK) >> MH_DEBUG_REG24_REG_WE_SHIFT)
+#define MH_DEBUG_REG24_GET_BLOCK_RS(mh_debug_reg24) \
+ ((mh_debug_reg24 & MH_DEBUG_REG24_BLOCK_RS_MASK) >> MH_DEBUG_REG24_BLOCK_RS_SHIFT)
+
+#define MH_DEBUG_REG24_SET_ALWAYS_ZERO(mh_debug_reg24_reg, always_zero) \
+ mh_debug_reg24_reg = (mh_debug_reg24_reg & ~MH_DEBUG_REG24_ALWAYS_ZERO_MASK) | (always_zero << MH_DEBUG_REG24_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG24_SET_REG_A(mh_debug_reg24_reg, reg_a) \
+ mh_debug_reg24_reg = (mh_debug_reg24_reg & ~MH_DEBUG_REG24_REG_A_MASK) | (reg_a << MH_DEBUG_REG24_REG_A_SHIFT)
+#define MH_DEBUG_REG24_SET_REG_RE(mh_debug_reg24_reg, reg_re) \
+ mh_debug_reg24_reg = (mh_debug_reg24_reg & ~MH_DEBUG_REG24_REG_RE_MASK) | (reg_re << MH_DEBUG_REG24_REG_RE_SHIFT)
+#define MH_DEBUG_REG24_SET_REG_WE(mh_debug_reg24_reg, reg_we) \
+ mh_debug_reg24_reg = (mh_debug_reg24_reg & ~MH_DEBUG_REG24_REG_WE_MASK) | (reg_we << MH_DEBUG_REG24_REG_WE_SHIFT)
+#define MH_DEBUG_REG24_SET_BLOCK_RS(mh_debug_reg24_reg, block_rs) \
+ mh_debug_reg24_reg = (mh_debug_reg24_reg & ~MH_DEBUG_REG24_BLOCK_RS_MASK) | (block_rs << MH_DEBUG_REG24_BLOCK_RS_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg24_t {
+ unsigned int always_zero : MH_DEBUG_REG24_ALWAYS_ZERO_SIZE;
+ unsigned int reg_a : MH_DEBUG_REG24_REG_A_SIZE;
+ unsigned int reg_re : MH_DEBUG_REG24_REG_RE_SIZE;
+ unsigned int reg_we : MH_DEBUG_REG24_REG_WE_SIZE;
+ unsigned int block_rs : MH_DEBUG_REG24_BLOCK_RS_SIZE;
+ unsigned int : 13;
+ } mh_debug_reg24_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg24_t {
+ unsigned int : 13;
+ unsigned int block_rs : MH_DEBUG_REG24_BLOCK_RS_SIZE;
+ unsigned int reg_we : MH_DEBUG_REG24_REG_WE_SIZE;
+ unsigned int reg_re : MH_DEBUG_REG24_REG_RE_SIZE;
+ unsigned int reg_a : MH_DEBUG_REG24_REG_A_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG24_ALWAYS_ZERO_SIZE;
+ } mh_debug_reg24_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg24_t f;
+} mh_debug_reg24_u;
+
+
+/*
+ * MH_DEBUG_REG25 struct
+ */
+
+#define MH_DEBUG_REG25_REG_WD_SIZE 32
+
+#define MH_DEBUG_REG25_REG_WD_SHIFT 0
+
+#define MH_DEBUG_REG25_REG_WD_MASK 0xffffffff
+
+#define MH_DEBUG_REG25_MASK \
+ (MH_DEBUG_REG25_REG_WD_MASK)
+
+#define MH_DEBUG_REG25(reg_wd) \
+ ((reg_wd << MH_DEBUG_REG25_REG_WD_SHIFT))
+
+#define MH_DEBUG_REG25_GET_REG_WD(mh_debug_reg25) \
+ ((mh_debug_reg25 & MH_DEBUG_REG25_REG_WD_MASK) >> MH_DEBUG_REG25_REG_WD_SHIFT)
+
+#define MH_DEBUG_REG25_SET_REG_WD(mh_debug_reg25_reg, reg_wd) \
+ mh_debug_reg25_reg = (mh_debug_reg25_reg & ~MH_DEBUG_REG25_REG_WD_MASK) | (reg_wd << MH_DEBUG_REG25_REG_WD_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg25_t {
+ unsigned int reg_wd : MH_DEBUG_REG25_REG_WD_SIZE;
+ } mh_debug_reg25_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg25_t {
+ unsigned int reg_wd : MH_DEBUG_REG25_REG_WD_SIZE;
+ } mh_debug_reg25_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg25_t f;
+} mh_debug_reg25_u;
+
+
+/*
+ * MH_DEBUG_REG26 struct
+ */
+
+#define MH_DEBUG_REG26_MH_RBBM_busy_SIZE 1
+#define MH_DEBUG_REG26_MH_CIB_mh_clk_en_int_SIZE 1
+#define MH_DEBUG_REG26_MH_CIB_mmu_clk_en_int_SIZE 1
+#define MH_DEBUG_REG26_MH_CIB_tcroq_clk_en_int_SIZE 1
+#define MH_DEBUG_REG26_GAT_CLK_ENA_SIZE 1
+#define MH_DEBUG_REG26_RBBM_MH_clk_en_override_SIZE 1
+#define MH_DEBUG_REG26_CNT_q_SIZE 6
+#define MH_DEBUG_REG26_TCD_EMPTY_q_SIZE 1
+#define MH_DEBUG_REG26_TC_ROQ_EMPTY_SIZE 1
+#define MH_DEBUG_REG26_MH_BUSY_d_SIZE 1
+#define MH_DEBUG_REG26_ANY_CLNT_BUSY_SIZE 1
+#define MH_DEBUG_REG26_MH_MMU_INVALIDATE_INVALIDATE_ALL_SIZE 1
+#define MH_DEBUG_REG26_MH_MMU_INVALIDATE_INVALIDATE_TC_SIZE 1
+#define MH_DEBUG_REG26_CP_SEND_q_SIZE 1
+#define MH_DEBUG_REG26_CP_RTR_q_SIZE 1
+#define MH_DEBUG_REG26_VGT_SEND_q_SIZE 1
+#define MH_DEBUG_REG26_VGT_RTR_q_SIZE 1
+#define MH_DEBUG_REG26_TC_ROQ_SEND_q_SIZE 1
+#define MH_DEBUG_REG26_TC_ROQ_RTR_DBG_q_SIZE 1
+#define MH_DEBUG_REG26_RB_SEND_q_SIZE 1
+#define MH_DEBUG_REG26_RB_RTR_q_SIZE 1
+#define MH_DEBUG_REG26_PA_SEND_q_SIZE 1
+#define MH_DEBUG_REG26_PA_RTR_q_SIZE 1
+#define MH_DEBUG_REG26_RDC_VALID_SIZE 1
+#define MH_DEBUG_REG26_RDC_RLAST_SIZE 1
+#define MH_DEBUG_REG26_TLBMISS_VALID_SIZE 1
+#define MH_DEBUG_REG26_BRC_VALID_SIZE 1
+
+#define MH_DEBUG_REG26_MH_RBBM_busy_SHIFT 0
+#define MH_DEBUG_REG26_MH_CIB_mh_clk_en_int_SHIFT 1
+#define MH_DEBUG_REG26_MH_CIB_mmu_clk_en_int_SHIFT 2
+#define MH_DEBUG_REG26_MH_CIB_tcroq_clk_en_int_SHIFT 3
+#define MH_DEBUG_REG26_GAT_CLK_ENA_SHIFT 4
+#define MH_DEBUG_REG26_RBBM_MH_clk_en_override_SHIFT 5
+#define MH_DEBUG_REG26_CNT_q_SHIFT 6
+#define MH_DEBUG_REG26_TCD_EMPTY_q_SHIFT 12
+#define MH_DEBUG_REG26_TC_ROQ_EMPTY_SHIFT 13
+#define MH_DEBUG_REG26_MH_BUSY_d_SHIFT 14
+#define MH_DEBUG_REG26_ANY_CLNT_BUSY_SHIFT 15
+#define MH_DEBUG_REG26_MH_MMU_INVALIDATE_INVALIDATE_ALL_SHIFT 16
+#define MH_DEBUG_REG26_MH_MMU_INVALIDATE_INVALIDATE_TC_SHIFT 17
+#define MH_DEBUG_REG26_CP_SEND_q_SHIFT 18
+#define MH_DEBUG_REG26_CP_RTR_q_SHIFT 19
+#define MH_DEBUG_REG26_VGT_SEND_q_SHIFT 20
+#define MH_DEBUG_REG26_VGT_RTR_q_SHIFT 21
+#define MH_DEBUG_REG26_TC_ROQ_SEND_q_SHIFT 22
+#define MH_DEBUG_REG26_TC_ROQ_RTR_DBG_q_SHIFT 23
+#define MH_DEBUG_REG26_RB_SEND_q_SHIFT 24
+#define MH_DEBUG_REG26_RB_RTR_q_SHIFT 25
+#define MH_DEBUG_REG26_PA_SEND_q_SHIFT 26
+#define MH_DEBUG_REG26_PA_RTR_q_SHIFT 27
+#define MH_DEBUG_REG26_RDC_VALID_SHIFT 28
+#define MH_DEBUG_REG26_RDC_RLAST_SHIFT 29
+#define MH_DEBUG_REG26_TLBMISS_VALID_SHIFT 30
+#define MH_DEBUG_REG26_BRC_VALID_SHIFT 31
+
+#define MH_DEBUG_REG26_MH_RBBM_busy_MASK 0x00000001
+#define MH_DEBUG_REG26_MH_CIB_mh_clk_en_int_MASK 0x00000002
+#define MH_DEBUG_REG26_MH_CIB_mmu_clk_en_int_MASK 0x00000004
+#define MH_DEBUG_REG26_MH_CIB_tcroq_clk_en_int_MASK 0x00000008
+#define MH_DEBUG_REG26_GAT_CLK_ENA_MASK 0x00000010
+#define MH_DEBUG_REG26_RBBM_MH_clk_en_override_MASK 0x00000020
+#define MH_DEBUG_REG26_CNT_q_MASK 0x00000fc0
+#define MH_DEBUG_REG26_TCD_EMPTY_q_MASK 0x00001000
+#define MH_DEBUG_REG26_TC_ROQ_EMPTY_MASK 0x00002000
+#define MH_DEBUG_REG26_MH_BUSY_d_MASK 0x00004000
+#define MH_DEBUG_REG26_ANY_CLNT_BUSY_MASK 0x00008000
+#define MH_DEBUG_REG26_MH_MMU_INVALIDATE_INVALIDATE_ALL_MASK 0x00010000
+#define MH_DEBUG_REG26_MH_MMU_INVALIDATE_INVALIDATE_TC_MASK 0x00020000
+#define MH_DEBUG_REG26_CP_SEND_q_MASK 0x00040000
+#define MH_DEBUG_REG26_CP_RTR_q_MASK 0x00080000
+#define MH_DEBUG_REG26_VGT_SEND_q_MASK 0x00100000
+#define MH_DEBUG_REG26_VGT_RTR_q_MASK 0x00200000
+#define MH_DEBUG_REG26_TC_ROQ_SEND_q_MASK 0x00400000
+#define MH_DEBUG_REG26_TC_ROQ_RTR_DBG_q_MASK 0x00800000
+#define MH_DEBUG_REG26_RB_SEND_q_MASK 0x01000000
+#define MH_DEBUG_REG26_RB_RTR_q_MASK 0x02000000
+#define MH_DEBUG_REG26_PA_SEND_q_MASK 0x04000000
+#define MH_DEBUG_REG26_PA_RTR_q_MASK 0x08000000
+#define MH_DEBUG_REG26_RDC_VALID_MASK 0x10000000
+#define MH_DEBUG_REG26_RDC_RLAST_MASK 0x20000000
+#define MH_DEBUG_REG26_TLBMISS_VALID_MASK 0x40000000
+#define MH_DEBUG_REG26_BRC_VALID_MASK 0x80000000
+
+#define MH_DEBUG_REG26_MASK \
+ (MH_DEBUG_REG26_MH_RBBM_busy_MASK | \
+ MH_DEBUG_REG26_MH_CIB_mh_clk_en_int_MASK | \
+ MH_DEBUG_REG26_MH_CIB_mmu_clk_en_int_MASK | \
+ MH_DEBUG_REG26_MH_CIB_tcroq_clk_en_int_MASK | \
+ MH_DEBUG_REG26_GAT_CLK_ENA_MASK | \
+ MH_DEBUG_REG26_RBBM_MH_clk_en_override_MASK | \
+ MH_DEBUG_REG26_CNT_q_MASK | \
+ MH_DEBUG_REG26_TCD_EMPTY_q_MASK | \
+ MH_DEBUG_REG26_TC_ROQ_EMPTY_MASK | \
+ MH_DEBUG_REG26_MH_BUSY_d_MASK | \
+ MH_DEBUG_REG26_ANY_CLNT_BUSY_MASK | \
+ MH_DEBUG_REG26_MH_MMU_INVALIDATE_INVALIDATE_ALL_MASK | \
+ MH_DEBUG_REG26_MH_MMU_INVALIDATE_INVALIDATE_TC_MASK | \
+ MH_DEBUG_REG26_CP_SEND_q_MASK | \
+ MH_DEBUG_REG26_CP_RTR_q_MASK | \
+ MH_DEBUG_REG26_VGT_SEND_q_MASK | \
+ MH_DEBUG_REG26_VGT_RTR_q_MASK | \
+ MH_DEBUG_REG26_TC_ROQ_SEND_q_MASK | \
+ MH_DEBUG_REG26_TC_ROQ_RTR_DBG_q_MASK | \
+ MH_DEBUG_REG26_RB_SEND_q_MASK | \
+ MH_DEBUG_REG26_RB_RTR_q_MASK | \
+ MH_DEBUG_REG26_PA_SEND_q_MASK | \
+ MH_DEBUG_REG26_PA_RTR_q_MASK | \
+ MH_DEBUG_REG26_RDC_VALID_MASK | \
+ MH_DEBUG_REG26_RDC_RLAST_MASK | \
+ MH_DEBUG_REG26_TLBMISS_VALID_MASK | \
+ MH_DEBUG_REG26_BRC_VALID_MASK)
+
+#define MH_DEBUG_REG26(mh_rbbm_busy, mh_cib_mh_clk_en_int, mh_cib_mmu_clk_en_int, mh_cib_tcroq_clk_en_int, gat_clk_ena, rbbm_mh_clk_en_override, cnt_q, tcd_empty_q, tc_roq_empty, mh_busy_d, any_clnt_busy, mh_mmu_invalidate_invalidate_all, mh_mmu_invalidate_invalidate_tc, cp_send_q, cp_rtr_q, vgt_send_q, vgt_rtr_q, tc_roq_send_q, tc_roq_rtr_dbg_q, rb_send_q, rb_rtr_q, pa_send_q, pa_rtr_q, rdc_valid, rdc_rlast, tlbmiss_valid, brc_valid) \
+ ((mh_rbbm_busy << MH_DEBUG_REG26_MH_RBBM_busy_SHIFT) | \
+ (mh_cib_mh_clk_en_int << MH_DEBUG_REG26_MH_CIB_mh_clk_en_int_SHIFT) | \
+ (mh_cib_mmu_clk_en_int << MH_DEBUG_REG26_MH_CIB_mmu_clk_en_int_SHIFT) | \
+ (mh_cib_tcroq_clk_en_int << MH_DEBUG_REG26_MH_CIB_tcroq_clk_en_int_SHIFT) | \
+ (gat_clk_ena << MH_DEBUG_REG26_GAT_CLK_ENA_SHIFT) | \
+ (rbbm_mh_clk_en_override << MH_DEBUG_REG26_RBBM_MH_clk_en_override_SHIFT) | \
+ (cnt_q << MH_DEBUG_REG26_CNT_q_SHIFT) | \
+ (tcd_empty_q << MH_DEBUG_REG26_TCD_EMPTY_q_SHIFT) | \
+ (tc_roq_empty << MH_DEBUG_REG26_TC_ROQ_EMPTY_SHIFT) | \
+ (mh_busy_d << MH_DEBUG_REG26_MH_BUSY_d_SHIFT) | \
+ (any_clnt_busy << MH_DEBUG_REG26_ANY_CLNT_BUSY_SHIFT) | \
+ (mh_mmu_invalidate_invalidate_all << MH_DEBUG_REG26_MH_MMU_INVALIDATE_INVALIDATE_ALL_SHIFT) | \
+ (mh_mmu_invalidate_invalidate_tc << MH_DEBUG_REG26_MH_MMU_INVALIDATE_INVALIDATE_TC_SHIFT) | \
+ (cp_send_q << MH_DEBUG_REG26_CP_SEND_q_SHIFT) | \
+ (cp_rtr_q << MH_DEBUG_REG26_CP_RTR_q_SHIFT) | \
+ (vgt_send_q << MH_DEBUG_REG26_VGT_SEND_q_SHIFT) | \
+ (vgt_rtr_q << MH_DEBUG_REG26_VGT_RTR_q_SHIFT) | \
+ (tc_roq_send_q << MH_DEBUG_REG26_TC_ROQ_SEND_q_SHIFT) | \
+ (tc_roq_rtr_dbg_q << MH_DEBUG_REG26_TC_ROQ_RTR_DBG_q_SHIFT) | \
+ (rb_send_q << MH_DEBUG_REG26_RB_SEND_q_SHIFT) | \
+ (rb_rtr_q << MH_DEBUG_REG26_RB_RTR_q_SHIFT) | \
+ (pa_send_q << MH_DEBUG_REG26_PA_SEND_q_SHIFT) | \
+ (pa_rtr_q << MH_DEBUG_REG26_PA_RTR_q_SHIFT) | \
+ (rdc_valid << MH_DEBUG_REG26_RDC_VALID_SHIFT) | \
+ (rdc_rlast << MH_DEBUG_REG26_RDC_RLAST_SHIFT) | \
+ (tlbmiss_valid << MH_DEBUG_REG26_TLBMISS_VALID_SHIFT) | \
+ (brc_valid << MH_DEBUG_REG26_BRC_VALID_SHIFT))
+
+#define MH_DEBUG_REG26_GET_MH_RBBM_busy(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_MH_RBBM_busy_MASK) >> MH_DEBUG_REG26_MH_RBBM_busy_SHIFT)
+#define MH_DEBUG_REG26_GET_MH_CIB_mh_clk_en_int(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_MH_CIB_mh_clk_en_int_MASK) >> MH_DEBUG_REG26_MH_CIB_mh_clk_en_int_SHIFT)
+#define MH_DEBUG_REG26_GET_MH_CIB_mmu_clk_en_int(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_MH_CIB_mmu_clk_en_int_MASK) >> MH_DEBUG_REG26_MH_CIB_mmu_clk_en_int_SHIFT)
+#define MH_DEBUG_REG26_GET_MH_CIB_tcroq_clk_en_int(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_MH_CIB_tcroq_clk_en_int_MASK) >> MH_DEBUG_REG26_MH_CIB_tcroq_clk_en_int_SHIFT)
+#define MH_DEBUG_REG26_GET_GAT_CLK_ENA(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_GAT_CLK_ENA_MASK) >> MH_DEBUG_REG26_GAT_CLK_ENA_SHIFT)
+#define MH_DEBUG_REG26_GET_RBBM_MH_clk_en_override(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_RBBM_MH_clk_en_override_MASK) >> MH_DEBUG_REG26_RBBM_MH_clk_en_override_SHIFT)
+#define MH_DEBUG_REG26_GET_CNT_q(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_CNT_q_MASK) >> MH_DEBUG_REG26_CNT_q_SHIFT)
+#define MH_DEBUG_REG26_GET_TCD_EMPTY_q(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_TCD_EMPTY_q_MASK) >> MH_DEBUG_REG26_TCD_EMPTY_q_SHIFT)
+#define MH_DEBUG_REG26_GET_TC_ROQ_EMPTY(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_TC_ROQ_EMPTY_MASK) >> MH_DEBUG_REG26_TC_ROQ_EMPTY_SHIFT)
+#define MH_DEBUG_REG26_GET_MH_BUSY_d(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_MH_BUSY_d_MASK) >> MH_DEBUG_REG26_MH_BUSY_d_SHIFT)
+#define MH_DEBUG_REG26_GET_ANY_CLNT_BUSY(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_ANY_CLNT_BUSY_MASK) >> MH_DEBUG_REG26_ANY_CLNT_BUSY_SHIFT)
+#define MH_DEBUG_REG26_GET_MH_MMU_INVALIDATE_INVALIDATE_ALL(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_MH_MMU_INVALIDATE_INVALIDATE_ALL_MASK) >> MH_DEBUG_REG26_MH_MMU_INVALIDATE_INVALIDATE_ALL_SHIFT)
+#define MH_DEBUG_REG26_GET_MH_MMU_INVALIDATE_INVALIDATE_TC(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_MH_MMU_INVALIDATE_INVALIDATE_TC_MASK) >> MH_DEBUG_REG26_MH_MMU_INVALIDATE_INVALIDATE_TC_SHIFT)
+#define MH_DEBUG_REG26_GET_CP_SEND_q(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_CP_SEND_q_MASK) >> MH_DEBUG_REG26_CP_SEND_q_SHIFT)
+#define MH_DEBUG_REG26_GET_CP_RTR_q(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_CP_RTR_q_MASK) >> MH_DEBUG_REG26_CP_RTR_q_SHIFT)
+#define MH_DEBUG_REG26_GET_VGT_SEND_q(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_VGT_SEND_q_MASK) >> MH_DEBUG_REG26_VGT_SEND_q_SHIFT)
+#define MH_DEBUG_REG26_GET_VGT_RTR_q(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_VGT_RTR_q_MASK) >> MH_DEBUG_REG26_VGT_RTR_q_SHIFT)
+#define MH_DEBUG_REG26_GET_TC_ROQ_SEND_q(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_TC_ROQ_SEND_q_MASK) >> MH_DEBUG_REG26_TC_ROQ_SEND_q_SHIFT)
+#define MH_DEBUG_REG26_GET_TC_ROQ_RTR_DBG_q(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_TC_ROQ_RTR_DBG_q_MASK) >> MH_DEBUG_REG26_TC_ROQ_RTR_DBG_q_SHIFT)
+#define MH_DEBUG_REG26_GET_RB_SEND_q(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_RB_SEND_q_MASK) >> MH_DEBUG_REG26_RB_SEND_q_SHIFT)
+#define MH_DEBUG_REG26_GET_RB_RTR_q(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_RB_RTR_q_MASK) >> MH_DEBUG_REG26_RB_RTR_q_SHIFT)
+#define MH_DEBUG_REG26_GET_PA_SEND_q(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_PA_SEND_q_MASK) >> MH_DEBUG_REG26_PA_SEND_q_SHIFT)
+#define MH_DEBUG_REG26_GET_PA_RTR_q(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_PA_RTR_q_MASK) >> MH_DEBUG_REG26_PA_RTR_q_SHIFT)
+#define MH_DEBUG_REG26_GET_RDC_VALID(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_RDC_VALID_MASK) >> MH_DEBUG_REG26_RDC_VALID_SHIFT)
+#define MH_DEBUG_REG26_GET_RDC_RLAST(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_RDC_RLAST_MASK) >> MH_DEBUG_REG26_RDC_RLAST_SHIFT)
+#define MH_DEBUG_REG26_GET_TLBMISS_VALID(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_TLBMISS_VALID_MASK) >> MH_DEBUG_REG26_TLBMISS_VALID_SHIFT)
+#define MH_DEBUG_REG26_GET_BRC_VALID(mh_debug_reg26) \
+ ((mh_debug_reg26 & MH_DEBUG_REG26_BRC_VALID_MASK) >> MH_DEBUG_REG26_BRC_VALID_SHIFT)
+
+#define MH_DEBUG_REG26_SET_MH_RBBM_busy(mh_debug_reg26_reg, mh_rbbm_busy) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_MH_RBBM_busy_MASK) | (mh_rbbm_busy << MH_DEBUG_REG26_MH_RBBM_busy_SHIFT)
+#define MH_DEBUG_REG26_SET_MH_CIB_mh_clk_en_int(mh_debug_reg26_reg, mh_cib_mh_clk_en_int) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_MH_CIB_mh_clk_en_int_MASK) | (mh_cib_mh_clk_en_int << MH_DEBUG_REG26_MH_CIB_mh_clk_en_int_SHIFT)
+#define MH_DEBUG_REG26_SET_MH_CIB_mmu_clk_en_int(mh_debug_reg26_reg, mh_cib_mmu_clk_en_int) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_MH_CIB_mmu_clk_en_int_MASK) | (mh_cib_mmu_clk_en_int << MH_DEBUG_REG26_MH_CIB_mmu_clk_en_int_SHIFT)
+#define MH_DEBUG_REG26_SET_MH_CIB_tcroq_clk_en_int(mh_debug_reg26_reg, mh_cib_tcroq_clk_en_int) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_MH_CIB_tcroq_clk_en_int_MASK) | (mh_cib_tcroq_clk_en_int << MH_DEBUG_REG26_MH_CIB_tcroq_clk_en_int_SHIFT)
+#define MH_DEBUG_REG26_SET_GAT_CLK_ENA(mh_debug_reg26_reg, gat_clk_ena) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_GAT_CLK_ENA_MASK) | (gat_clk_ena << MH_DEBUG_REG26_GAT_CLK_ENA_SHIFT)
+#define MH_DEBUG_REG26_SET_RBBM_MH_clk_en_override(mh_debug_reg26_reg, rbbm_mh_clk_en_override) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_RBBM_MH_clk_en_override_MASK) | (rbbm_mh_clk_en_override << MH_DEBUG_REG26_RBBM_MH_clk_en_override_SHIFT)
+#define MH_DEBUG_REG26_SET_CNT_q(mh_debug_reg26_reg, cnt_q) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_CNT_q_MASK) | (cnt_q << MH_DEBUG_REG26_CNT_q_SHIFT)
+#define MH_DEBUG_REG26_SET_TCD_EMPTY_q(mh_debug_reg26_reg, tcd_empty_q) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_TCD_EMPTY_q_MASK) | (tcd_empty_q << MH_DEBUG_REG26_TCD_EMPTY_q_SHIFT)
+#define MH_DEBUG_REG26_SET_TC_ROQ_EMPTY(mh_debug_reg26_reg, tc_roq_empty) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_TC_ROQ_EMPTY_MASK) | (tc_roq_empty << MH_DEBUG_REG26_TC_ROQ_EMPTY_SHIFT)
+#define MH_DEBUG_REG26_SET_MH_BUSY_d(mh_debug_reg26_reg, mh_busy_d) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_MH_BUSY_d_MASK) | (mh_busy_d << MH_DEBUG_REG26_MH_BUSY_d_SHIFT)
+#define MH_DEBUG_REG26_SET_ANY_CLNT_BUSY(mh_debug_reg26_reg, any_clnt_busy) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_ANY_CLNT_BUSY_MASK) | (any_clnt_busy << MH_DEBUG_REG26_ANY_CLNT_BUSY_SHIFT)
+#define MH_DEBUG_REG26_SET_MH_MMU_INVALIDATE_INVALIDATE_ALL(mh_debug_reg26_reg, mh_mmu_invalidate_invalidate_all) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_MH_MMU_INVALIDATE_INVALIDATE_ALL_MASK) | (mh_mmu_invalidate_invalidate_all << MH_DEBUG_REG26_MH_MMU_INVALIDATE_INVALIDATE_ALL_SHIFT)
+#define MH_DEBUG_REG26_SET_MH_MMU_INVALIDATE_INVALIDATE_TC(mh_debug_reg26_reg, mh_mmu_invalidate_invalidate_tc) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_MH_MMU_INVALIDATE_INVALIDATE_TC_MASK) | (mh_mmu_invalidate_invalidate_tc << MH_DEBUG_REG26_MH_MMU_INVALIDATE_INVALIDATE_TC_SHIFT)
+#define MH_DEBUG_REG26_SET_CP_SEND_q(mh_debug_reg26_reg, cp_send_q) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_CP_SEND_q_MASK) | (cp_send_q << MH_DEBUG_REG26_CP_SEND_q_SHIFT)
+#define MH_DEBUG_REG26_SET_CP_RTR_q(mh_debug_reg26_reg, cp_rtr_q) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_CP_RTR_q_MASK) | (cp_rtr_q << MH_DEBUG_REG26_CP_RTR_q_SHIFT)
+#define MH_DEBUG_REG26_SET_VGT_SEND_q(mh_debug_reg26_reg, vgt_send_q) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_VGT_SEND_q_MASK) | (vgt_send_q << MH_DEBUG_REG26_VGT_SEND_q_SHIFT)
+#define MH_DEBUG_REG26_SET_VGT_RTR_q(mh_debug_reg26_reg, vgt_rtr_q) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_VGT_RTR_q_MASK) | (vgt_rtr_q << MH_DEBUG_REG26_VGT_RTR_q_SHIFT)
+#define MH_DEBUG_REG26_SET_TC_ROQ_SEND_q(mh_debug_reg26_reg, tc_roq_send_q) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_TC_ROQ_SEND_q_MASK) | (tc_roq_send_q << MH_DEBUG_REG26_TC_ROQ_SEND_q_SHIFT)
+#define MH_DEBUG_REG26_SET_TC_ROQ_RTR_DBG_q(mh_debug_reg26_reg, tc_roq_rtr_dbg_q) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_TC_ROQ_RTR_DBG_q_MASK) | (tc_roq_rtr_dbg_q << MH_DEBUG_REG26_TC_ROQ_RTR_DBG_q_SHIFT)
+#define MH_DEBUG_REG26_SET_RB_SEND_q(mh_debug_reg26_reg, rb_send_q) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_RB_SEND_q_MASK) | (rb_send_q << MH_DEBUG_REG26_RB_SEND_q_SHIFT)
+#define MH_DEBUG_REG26_SET_RB_RTR_q(mh_debug_reg26_reg, rb_rtr_q) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_RB_RTR_q_MASK) | (rb_rtr_q << MH_DEBUG_REG26_RB_RTR_q_SHIFT)
+#define MH_DEBUG_REG26_SET_PA_SEND_q(mh_debug_reg26_reg, pa_send_q) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_PA_SEND_q_MASK) | (pa_send_q << MH_DEBUG_REG26_PA_SEND_q_SHIFT)
+#define MH_DEBUG_REG26_SET_PA_RTR_q(mh_debug_reg26_reg, pa_rtr_q) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_PA_RTR_q_MASK) | (pa_rtr_q << MH_DEBUG_REG26_PA_RTR_q_SHIFT)
+#define MH_DEBUG_REG26_SET_RDC_VALID(mh_debug_reg26_reg, rdc_valid) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_RDC_VALID_MASK) | (rdc_valid << MH_DEBUG_REG26_RDC_VALID_SHIFT)
+#define MH_DEBUG_REG26_SET_RDC_RLAST(mh_debug_reg26_reg, rdc_rlast) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_RDC_RLAST_MASK) | (rdc_rlast << MH_DEBUG_REG26_RDC_RLAST_SHIFT)
+#define MH_DEBUG_REG26_SET_TLBMISS_VALID(mh_debug_reg26_reg, tlbmiss_valid) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_TLBMISS_VALID_MASK) | (tlbmiss_valid << MH_DEBUG_REG26_TLBMISS_VALID_SHIFT)
+#define MH_DEBUG_REG26_SET_BRC_VALID(mh_debug_reg26_reg, brc_valid) \
+ mh_debug_reg26_reg = (mh_debug_reg26_reg & ~MH_DEBUG_REG26_BRC_VALID_MASK) | (brc_valid << MH_DEBUG_REG26_BRC_VALID_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg26_t {
+ unsigned int mh_rbbm_busy : MH_DEBUG_REG26_MH_RBBM_busy_SIZE;
+ unsigned int mh_cib_mh_clk_en_int : MH_DEBUG_REG26_MH_CIB_mh_clk_en_int_SIZE;
+ unsigned int mh_cib_mmu_clk_en_int : MH_DEBUG_REG26_MH_CIB_mmu_clk_en_int_SIZE;
+ unsigned int mh_cib_tcroq_clk_en_int : MH_DEBUG_REG26_MH_CIB_tcroq_clk_en_int_SIZE;
+ unsigned int gat_clk_ena : MH_DEBUG_REG26_GAT_CLK_ENA_SIZE;
+ unsigned int rbbm_mh_clk_en_override : MH_DEBUG_REG26_RBBM_MH_clk_en_override_SIZE;
+ unsigned int cnt_q : MH_DEBUG_REG26_CNT_q_SIZE;
+ unsigned int tcd_empty_q : MH_DEBUG_REG26_TCD_EMPTY_q_SIZE;
+ unsigned int tc_roq_empty : MH_DEBUG_REG26_TC_ROQ_EMPTY_SIZE;
+ unsigned int mh_busy_d : MH_DEBUG_REG26_MH_BUSY_d_SIZE;
+ unsigned int any_clnt_busy : MH_DEBUG_REG26_ANY_CLNT_BUSY_SIZE;
+ unsigned int mh_mmu_invalidate_invalidate_all : MH_DEBUG_REG26_MH_MMU_INVALIDATE_INVALIDATE_ALL_SIZE;
+ unsigned int mh_mmu_invalidate_invalidate_tc : MH_DEBUG_REG26_MH_MMU_INVALIDATE_INVALIDATE_TC_SIZE;
+ unsigned int cp_send_q : MH_DEBUG_REG26_CP_SEND_q_SIZE;
+ unsigned int cp_rtr_q : MH_DEBUG_REG26_CP_RTR_q_SIZE;
+ unsigned int vgt_send_q : MH_DEBUG_REG26_VGT_SEND_q_SIZE;
+ unsigned int vgt_rtr_q : MH_DEBUG_REG26_VGT_RTR_q_SIZE;
+ unsigned int tc_roq_send_q : MH_DEBUG_REG26_TC_ROQ_SEND_q_SIZE;
+ unsigned int tc_roq_rtr_dbg_q : MH_DEBUG_REG26_TC_ROQ_RTR_DBG_q_SIZE;
+ unsigned int rb_send_q : MH_DEBUG_REG26_RB_SEND_q_SIZE;
+ unsigned int rb_rtr_q : MH_DEBUG_REG26_RB_RTR_q_SIZE;
+ unsigned int pa_send_q : MH_DEBUG_REG26_PA_SEND_q_SIZE;
+ unsigned int pa_rtr_q : MH_DEBUG_REG26_PA_RTR_q_SIZE;
+ unsigned int rdc_valid : MH_DEBUG_REG26_RDC_VALID_SIZE;
+ unsigned int rdc_rlast : MH_DEBUG_REG26_RDC_RLAST_SIZE;
+ unsigned int tlbmiss_valid : MH_DEBUG_REG26_TLBMISS_VALID_SIZE;
+ unsigned int brc_valid : MH_DEBUG_REG26_BRC_VALID_SIZE;
+ } mh_debug_reg26_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg26_t {
+ unsigned int brc_valid : MH_DEBUG_REG26_BRC_VALID_SIZE;
+ unsigned int tlbmiss_valid : MH_DEBUG_REG26_TLBMISS_VALID_SIZE;
+ unsigned int rdc_rlast : MH_DEBUG_REG26_RDC_RLAST_SIZE;
+ unsigned int rdc_valid : MH_DEBUG_REG26_RDC_VALID_SIZE;
+ unsigned int pa_rtr_q : MH_DEBUG_REG26_PA_RTR_q_SIZE;
+ unsigned int pa_send_q : MH_DEBUG_REG26_PA_SEND_q_SIZE;
+ unsigned int rb_rtr_q : MH_DEBUG_REG26_RB_RTR_q_SIZE;
+ unsigned int rb_send_q : MH_DEBUG_REG26_RB_SEND_q_SIZE;
+ unsigned int tc_roq_rtr_dbg_q : MH_DEBUG_REG26_TC_ROQ_RTR_DBG_q_SIZE;
+ unsigned int tc_roq_send_q : MH_DEBUG_REG26_TC_ROQ_SEND_q_SIZE;
+ unsigned int vgt_rtr_q : MH_DEBUG_REG26_VGT_RTR_q_SIZE;
+ unsigned int vgt_send_q : MH_DEBUG_REG26_VGT_SEND_q_SIZE;
+ unsigned int cp_rtr_q : MH_DEBUG_REG26_CP_RTR_q_SIZE;
+ unsigned int cp_send_q : MH_DEBUG_REG26_CP_SEND_q_SIZE;
+ unsigned int mh_mmu_invalidate_invalidate_tc : MH_DEBUG_REG26_MH_MMU_INVALIDATE_INVALIDATE_TC_SIZE;
+ unsigned int mh_mmu_invalidate_invalidate_all : MH_DEBUG_REG26_MH_MMU_INVALIDATE_INVALIDATE_ALL_SIZE;
+ unsigned int any_clnt_busy : MH_DEBUG_REG26_ANY_CLNT_BUSY_SIZE;
+ unsigned int mh_busy_d : MH_DEBUG_REG26_MH_BUSY_d_SIZE;
+ unsigned int tc_roq_empty : MH_DEBUG_REG26_TC_ROQ_EMPTY_SIZE;
+ unsigned int tcd_empty_q : MH_DEBUG_REG26_TCD_EMPTY_q_SIZE;
+ unsigned int cnt_q : MH_DEBUG_REG26_CNT_q_SIZE;
+ unsigned int rbbm_mh_clk_en_override : MH_DEBUG_REG26_RBBM_MH_clk_en_override_SIZE;
+ unsigned int gat_clk_ena : MH_DEBUG_REG26_GAT_CLK_ENA_SIZE;
+ unsigned int mh_cib_tcroq_clk_en_int : MH_DEBUG_REG26_MH_CIB_tcroq_clk_en_int_SIZE;
+ unsigned int mh_cib_mmu_clk_en_int : MH_DEBUG_REG26_MH_CIB_mmu_clk_en_int_SIZE;
+ unsigned int mh_cib_mh_clk_en_int : MH_DEBUG_REG26_MH_CIB_mh_clk_en_int_SIZE;
+ unsigned int mh_rbbm_busy : MH_DEBUG_REG26_MH_RBBM_busy_SIZE;
+ } mh_debug_reg26_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg26_t f;
+} mh_debug_reg26_u;
+
+
+/*
+ * MH_DEBUG_REG27 struct
+ */
+
+#define MH_DEBUG_REG27_EFF2_FP_WINNER_SIZE 3
+#define MH_DEBUG_REG27_EFF2_LRU_WINNER_out_SIZE 3
+#define MH_DEBUG_REG27_EFF1_WINNER_SIZE 3
+#define MH_DEBUG_REG27_ARB_WINNER_SIZE 3
+#define MH_DEBUG_REG27_ARB_WINNER_q_SIZE 3
+#define MH_DEBUG_REG27_EFF1_WIN_SIZE 1
+#define MH_DEBUG_REG27_KILL_EFF1_SIZE 1
+#define MH_DEBUG_REG27_ARB_HOLD_SIZE 1
+#define MH_DEBUG_REG27_ARB_RTR_q_SIZE 1
+#define MH_DEBUG_REG27_CP_SEND_QUAL_SIZE 1
+#define MH_DEBUG_REG27_VGT_SEND_QUAL_SIZE 1
+#define MH_DEBUG_REG27_TC_SEND_QUAL_SIZE 1
+#define MH_DEBUG_REG27_TC_SEND_EFF1_QUAL_SIZE 1
+#define MH_DEBUG_REG27_RB_SEND_QUAL_SIZE 1
+#define MH_DEBUG_REG27_PA_SEND_QUAL_SIZE 1
+#define MH_DEBUG_REG27_ARB_QUAL_SIZE 1
+#define MH_DEBUG_REG27_CP_EFF1_REQ_SIZE 1
+#define MH_DEBUG_REG27_VGT_EFF1_REQ_SIZE 1
+#define MH_DEBUG_REG27_TC_EFF1_REQ_SIZE 1
+#define MH_DEBUG_REG27_RB_EFF1_REQ_SIZE 1
+#define MH_DEBUG_REG27_TCD_NEARFULL_q_SIZE 1
+#define MH_DEBUG_REG27_TCHOLD_IP_q_SIZE 1
+
+#define MH_DEBUG_REG27_EFF2_FP_WINNER_SHIFT 0
+#define MH_DEBUG_REG27_EFF2_LRU_WINNER_out_SHIFT 3
+#define MH_DEBUG_REG27_EFF1_WINNER_SHIFT 6
+#define MH_DEBUG_REG27_ARB_WINNER_SHIFT 9
+#define MH_DEBUG_REG27_ARB_WINNER_q_SHIFT 12
+#define MH_DEBUG_REG27_EFF1_WIN_SHIFT 15
+#define MH_DEBUG_REG27_KILL_EFF1_SHIFT 16
+#define MH_DEBUG_REG27_ARB_HOLD_SHIFT 17
+#define MH_DEBUG_REG27_ARB_RTR_q_SHIFT 18
+#define MH_DEBUG_REG27_CP_SEND_QUAL_SHIFT 19
+#define MH_DEBUG_REG27_VGT_SEND_QUAL_SHIFT 20
+#define MH_DEBUG_REG27_TC_SEND_QUAL_SHIFT 21
+#define MH_DEBUG_REG27_TC_SEND_EFF1_QUAL_SHIFT 22
+#define MH_DEBUG_REG27_RB_SEND_QUAL_SHIFT 23
+#define MH_DEBUG_REG27_PA_SEND_QUAL_SHIFT 24
+#define MH_DEBUG_REG27_ARB_QUAL_SHIFT 25
+#define MH_DEBUG_REG27_CP_EFF1_REQ_SHIFT 26
+#define MH_DEBUG_REG27_VGT_EFF1_REQ_SHIFT 27
+#define MH_DEBUG_REG27_TC_EFF1_REQ_SHIFT 28
+#define MH_DEBUG_REG27_RB_EFF1_REQ_SHIFT 29
+#define MH_DEBUG_REG27_TCD_NEARFULL_q_SHIFT 30
+#define MH_DEBUG_REG27_TCHOLD_IP_q_SHIFT 31
+
+#define MH_DEBUG_REG27_EFF2_FP_WINNER_MASK 0x00000007
+#define MH_DEBUG_REG27_EFF2_LRU_WINNER_out_MASK 0x00000038
+#define MH_DEBUG_REG27_EFF1_WINNER_MASK 0x000001c0
+#define MH_DEBUG_REG27_ARB_WINNER_MASK 0x00000e00
+#define MH_DEBUG_REG27_ARB_WINNER_q_MASK 0x00007000
+#define MH_DEBUG_REG27_EFF1_WIN_MASK 0x00008000
+#define MH_DEBUG_REG27_KILL_EFF1_MASK 0x00010000
+#define MH_DEBUG_REG27_ARB_HOLD_MASK 0x00020000
+#define MH_DEBUG_REG27_ARB_RTR_q_MASK 0x00040000
+#define MH_DEBUG_REG27_CP_SEND_QUAL_MASK 0x00080000
+#define MH_DEBUG_REG27_VGT_SEND_QUAL_MASK 0x00100000
+#define MH_DEBUG_REG27_TC_SEND_QUAL_MASK 0x00200000
+#define MH_DEBUG_REG27_TC_SEND_EFF1_QUAL_MASK 0x00400000
+#define MH_DEBUG_REG27_RB_SEND_QUAL_MASK 0x00800000
+#define MH_DEBUG_REG27_PA_SEND_QUAL_MASK 0x01000000
+#define MH_DEBUG_REG27_ARB_QUAL_MASK 0x02000000
+#define MH_DEBUG_REG27_CP_EFF1_REQ_MASK 0x04000000
+#define MH_DEBUG_REG27_VGT_EFF1_REQ_MASK 0x08000000
+#define MH_DEBUG_REG27_TC_EFF1_REQ_MASK 0x10000000
+#define MH_DEBUG_REG27_RB_EFF1_REQ_MASK 0x20000000
+#define MH_DEBUG_REG27_TCD_NEARFULL_q_MASK 0x40000000
+#define MH_DEBUG_REG27_TCHOLD_IP_q_MASK 0x80000000
+
+#define MH_DEBUG_REG27_MASK \
+ (MH_DEBUG_REG27_EFF2_FP_WINNER_MASK | \
+ MH_DEBUG_REG27_EFF2_LRU_WINNER_out_MASK | \
+ MH_DEBUG_REG27_EFF1_WINNER_MASK | \
+ MH_DEBUG_REG27_ARB_WINNER_MASK | \
+ MH_DEBUG_REG27_ARB_WINNER_q_MASK | \
+ MH_DEBUG_REG27_EFF1_WIN_MASK | \
+ MH_DEBUG_REG27_KILL_EFF1_MASK | \
+ MH_DEBUG_REG27_ARB_HOLD_MASK | \
+ MH_DEBUG_REG27_ARB_RTR_q_MASK | \
+ MH_DEBUG_REG27_CP_SEND_QUAL_MASK | \
+ MH_DEBUG_REG27_VGT_SEND_QUAL_MASK | \
+ MH_DEBUG_REG27_TC_SEND_QUAL_MASK | \
+ MH_DEBUG_REG27_TC_SEND_EFF1_QUAL_MASK | \
+ MH_DEBUG_REG27_RB_SEND_QUAL_MASK | \
+ MH_DEBUG_REG27_PA_SEND_QUAL_MASK | \
+ MH_DEBUG_REG27_ARB_QUAL_MASK | \
+ MH_DEBUG_REG27_CP_EFF1_REQ_MASK | \
+ MH_DEBUG_REG27_VGT_EFF1_REQ_MASK | \
+ MH_DEBUG_REG27_TC_EFF1_REQ_MASK | \
+ MH_DEBUG_REG27_RB_EFF1_REQ_MASK | \
+ MH_DEBUG_REG27_TCD_NEARFULL_q_MASK | \
+ MH_DEBUG_REG27_TCHOLD_IP_q_MASK)
+
+#define MH_DEBUG_REG27(eff2_fp_winner, eff2_lru_winner_out, eff1_winner, arb_winner, arb_winner_q, eff1_win, kill_eff1, arb_hold, arb_rtr_q, cp_send_qual, vgt_send_qual, tc_send_qual, tc_send_eff1_qual, rb_send_qual, pa_send_qual, arb_qual, cp_eff1_req, vgt_eff1_req, tc_eff1_req, rb_eff1_req, tcd_nearfull_q, tchold_ip_q) \
+ ((eff2_fp_winner << MH_DEBUG_REG27_EFF2_FP_WINNER_SHIFT) | \
+ (eff2_lru_winner_out << MH_DEBUG_REG27_EFF2_LRU_WINNER_out_SHIFT) | \
+ (eff1_winner << MH_DEBUG_REG27_EFF1_WINNER_SHIFT) | \
+ (arb_winner << MH_DEBUG_REG27_ARB_WINNER_SHIFT) | \
+ (arb_winner_q << MH_DEBUG_REG27_ARB_WINNER_q_SHIFT) | \
+ (eff1_win << MH_DEBUG_REG27_EFF1_WIN_SHIFT) | \
+ (kill_eff1 << MH_DEBUG_REG27_KILL_EFF1_SHIFT) | \
+ (arb_hold << MH_DEBUG_REG27_ARB_HOLD_SHIFT) | \
+ (arb_rtr_q << MH_DEBUG_REG27_ARB_RTR_q_SHIFT) | \
+ (cp_send_qual << MH_DEBUG_REG27_CP_SEND_QUAL_SHIFT) | \
+ (vgt_send_qual << MH_DEBUG_REG27_VGT_SEND_QUAL_SHIFT) | \
+ (tc_send_qual << MH_DEBUG_REG27_TC_SEND_QUAL_SHIFT) | \
+ (tc_send_eff1_qual << MH_DEBUG_REG27_TC_SEND_EFF1_QUAL_SHIFT) | \
+ (rb_send_qual << MH_DEBUG_REG27_RB_SEND_QUAL_SHIFT) | \
+ (pa_send_qual << MH_DEBUG_REG27_PA_SEND_QUAL_SHIFT) | \
+ (arb_qual << MH_DEBUG_REG27_ARB_QUAL_SHIFT) | \
+ (cp_eff1_req << MH_DEBUG_REG27_CP_EFF1_REQ_SHIFT) | \
+ (vgt_eff1_req << MH_DEBUG_REG27_VGT_EFF1_REQ_SHIFT) | \
+ (tc_eff1_req << MH_DEBUG_REG27_TC_EFF1_REQ_SHIFT) | \
+ (rb_eff1_req << MH_DEBUG_REG27_RB_EFF1_REQ_SHIFT) | \
+ (tcd_nearfull_q << MH_DEBUG_REG27_TCD_NEARFULL_q_SHIFT) | \
+ (tchold_ip_q << MH_DEBUG_REG27_TCHOLD_IP_q_SHIFT))
+
+#define MH_DEBUG_REG27_GET_EFF2_FP_WINNER(mh_debug_reg27) \
+ ((mh_debug_reg27 & MH_DEBUG_REG27_EFF2_FP_WINNER_MASK) >> MH_DEBUG_REG27_EFF2_FP_WINNER_SHIFT)
+#define MH_DEBUG_REG27_GET_EFF2_LRU_WINNER_out(mh_debug_reg27) \
+ ((mh_debug_reg27 & MH_DEBUG_REG27_EFF2_LRU_WINNER_out_MASK) >> MH_DEBUG_REG27_EFF2_LRU_WINNER_out_SHIFT)
+#define MH_DEBUG_REG27_GET_EFF1_WINNER(mh_debug_reg27) \
+ ((mh_debug_reg27 & MH_DEBUG_REG27_EFF1_WINNER_MASK) >> MH_DEBUG_REG27_EFF1_WINNER_SHIFT)
+#define MH_DEBUG_REG27_GET_ARB_WINNER(mh_debug_reg27) \
+ ((mh_debug_reg27 & MH_DEBUG_REG27_ARB_WINNER_MASK) >> MH_DEBUG_REG27_ARB_WINNER_SHIFT)
+#define MH_DEBUG_REG27_GET_ARB_WINNER_q(mh_debug_reg27) \
+ ((mh_debug_reg27 & MH_DEBUG_REG27_ARB_WINNER_q_MASK) >> MH_DEBUG_REG27_ARB_WINNER_q_SHIFT)
+#define MH_DEBUG_REG27_GET_EFF1_WIN(mh_debug_reg27) \
+ ((mh_debug_reg27 & MH_DEBUG_REG27_EFF1_WIN_MASK) >> MH_DEBUG_REG27_EFF1_WIN_SHIFT)
+#define MH_DEBUG_REG27_GET_KILL_EFF1(mh_debug_reg27) \
+ ((mh_debug_reg27 & MH_DEBUG_REG27_KILL_EFF1_MASK) >> MH_DEBUG_REG27_KILL_EFF1_SHIFT)
+#define MH_DEBUG_REG27_GET_ARB_HOLD(mh_debug_reg27) \
+ ((mh_debug_reg27 & MH_DEBUG_REG27_ARB_HOLD_MASK) >> MH_DEBUG_REG27_ARB_HOLD_SHIFT)
+#define MH_DEBUG_REG27_GET_ARB_RTR_q(mh_debug_reg27) \
+ ((mh_debug_reg27 & MH_DEBUG_REG27_ARB_RTR_q_MASK) >> MH_DEBUG_REG27_ARB_RTR_q_SHIFT)
+#define MH_DEBUG_REG27_GET_CP_SEND_QUAL(mh_debug_reg27) \
+ ((mh_debug_reg27 & MH_DEBUG_REG27_CP_SEND_QUAL_MASK) >> MH_DEBUG_REG27_CP_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG27_GET_VGT_SEND_QUAL(mh_debug_reg27) \
+ ((mh_debug_reg27 & MH_DEBUG_REG27_VGT_SEND_QUAL_MASK) >> MH_DEBUG_REG27_VGT_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG27_GET_TC_SEND_QUAL(mh_debug_reg27) \
+ ((mh_debug_reg27 & MH_DEBUG_REG27_TC_SEND_QUAL_MASK) >> MH_DEBUG_REG27_TC_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG27_GET_TC_SEND_EFF1_QUAL(mh_debug_reg27) \
+ ((mh_debug_reg27 & MH_DEBUG_REG27_TC_SEND_EFF1_QUAL_MASK) >> MH_DEBUG_REG27_TC_SEND_EFF1_QUAL_SHIFT)
+#define MH_DEBUG_REG27_GET_RB_SEND_QUAL(mh_debug_reg27) \
+ ((mh_debug_reg27 & MH_DEBUG_REG27_RB_SEND_QUAL_MASK) >> MH_DEBUG_REG27_RB_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG27_GET_PA_SEND_QUAL(mh_debug_reg27) \
+ ((mh_debug_reg27 & MH_DEBUG_REG27_PA_SEND_QUAL_MASK) >> MH_DEBUG_REG27_PA_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG27_GET_ARB_QUAL(mh_debug_reg27) \
+ ((mh_debug_reg27 & MH_DEBUG_REG27_ARB_QUAL_MASK) >> MH_DEBUG_REG27_ARB_QUAL_SHIFT)
+#define MH_DEBUG_REG27_GET_CP_EFF1_REQ(mh_debug_reg27) \
+ ((mh_debug_reg27 & MH_DEBUG_REG27_CP_EFF1_REQ_MASK) >> MH_DEBUG_REG27_CP_EFF1_REQ_SHIFT)
+#define MH_DEBUG_REG27_GET_VGT_EFF1_REQ(mh_debug_reg27) \
+ ((mh_debug_reg27 & MH_DEBUG_REG27_VGT_EFF1_REQ_MASK) >> MH_DEBUG_REG27_VGT_EFF1_REQ_SHIFT)
+#define MH_DEBUG_REG27_GET_TC_EFF1_REQ(mh_debug_reg27) \
+ ((mh_debug_reg27 & MH_DEBUG_REG27_TC_EFF1_REQ_MASK) >> MH_DEBUG_REG27_TC_EFF1_REQ_SHIFT)
+#define MH_DEBUG_REG27_GET_RB_EFF1_REQ(mh_debug_reg27) \
+ ((mh_debug_reg27 & MH_DEBUG_REG27_RB_EFF1_REQ_MASK) >> MH_DEBUG_REG27_RB_EFF1_REQ_SHIFT)
+#define MH_DEBUG_REG27_GET_TCD_NEARFULL_q(mh_debug_reg27) \
+ ((mh_debug_reg27 & MH_DEBUG_REG27_TCD_NEARFULL_q_MASK) >> MH_DEBUG_REG27_TCD_NEARFULL_q_SHIFT)
+#define MH_DEBUG_REG27_GET_TCHOLD_IP_q(mh_debug_reg27) \
+ ((mh_debug_reg27 & MH_DEBUG_REG27_TCHOLD_IP_q_MASK) >> MH_DEBUG_REG27_TCHOLD_IP_q_SHIFT)
+
+#define MH_DEBUG_REG27_SET_EFF2_FP_WINNER(mh_debug_reg27_reg, eff2_fp_winner) \
+ mh_debug_reg27_reg = (mh_debug_reg27_reg & ~MH_DEBUG_REG27_EFF2_FP_WINNER_MASK) | (eff2_fp_winner << MH_DEBUG_REG27_EFF2_FP_WINNER_SHIFT)
+#define MH_DEBUG_REG27_SET_EFF2_LRU_WINNER_out(mh_debug_reg27_reg, eff2_lru_winner_out) \
+ mh_debug_reg27_reg = (mh_debug_reg27_reg & ~MH_DEBUG_REG27_EFF2_LRU_WINNER_out_MASK) | (eff2_lru_winner_out << MH_DEBUG_REG27_EFF2_LRU_WINNER_out_SHIFT)
+#define MH_DEBUG_REG27_SET_EFF1_WINNER(mh_debug_reg27_reg, eff1_winner) \
+ mh_debug_reg27_reg = (mh_debug_reg27_reg & ~MH_DEBUG_REG27_EFF1_WINNER_MASK) | (eff1_winner << MH_DEBUG_REG27_EFF1_WINNER_SHIFT)
+#define MH_DEBUG_REG27_SET_ARB_WINNER(mh_debug_reg27_reg, arb_winner) \
+ mh_debug_reg27_reg = (mh_debug_reg27_reg & ~MH_DEBUG_REG27_ARB_WINNER_MASK) | (arb_winner << MH_DEBUG_REG27_ARB_WINNER_SHIFT)
+#define MH_DEBUG_REG27_SET_ARB_WINNER_q(mh_debug_reg27_reg, arb_winner_q) \
+ mh_debug_reg27_reg = (mh_debug_reg27_reg & ~MH_DEBUG_REG27_ARB_WINNER_q_MASK) | (arb_winner_q << MH_DEBUG_REG27_ARB_WINNER_q_SHIFT)
+#define MH_DEBUG_REG27_SET_EFF1_WIN(mh_debug_reg27_reg, eff1_win) \
+ mh_debug_reg27_reg = (mh_debug_reg27_reg & ~MH_DEBUG_REG27_EFF1_WIN_MASK) | (eff1_win << MH_DEBUG_REG27_EFF1_WIN_SHIFT)
+#define MH_DEBUG_REG27_SET_KILL_EFF1(mh_debug_reg27_reg, kill_eff1) \
+ mh_debug_reg27_reg = (mh_debug_reg27_reg & ~MH_DEBUG_REG27_KILL_EFF1_MASK) | (kill_eff1 << MH_DEBUG_REG27_KILL_EFF1_SHIFT)
+#define MH_DEBUG_REG27_SET_ARB_HOLD(mh_debug_reg27_reg, arb_hold) \
+ mh_debug_reg27_reg = (mh_debug_reg27_reg & ~MH_DEBUG_REG27_ARB_HOLD_MASK) | (arb_hold << MH_DEBUG_REG27_ARB_HOLD_SHIFT)
+#define MH_DEBUG_REG27_SET_ARB_RTR_q(mh_debug_reg27_reg, arb_rtr_q) \
+ mh_debug_reg27_reg = (mh_debug_reg27_reg & ~MH_DEBUG_REG27_ARB_RTR_q_MASK) | (arb_rtr_q << MH_DEBUG_REG27_ARB_RTR_q_SHIFT)
+#define MH_DEBUG_REG27_SET_CP_SEND_QUAL(mh_debug_reg27_reg, cp_send_qual) \
+ mh_debug_reg27_reg = (mh_debug_reg27_reg & ~MH_DEBUG_REG27_CP_SEND_QUAL_MASK) | (cp_send_qual << MH_DEBUG_REG27_CP_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG27_SET_VGT_SEND_QUAL(mh_debug_reg27_reg, vgt_send_qual) \
+ mh_debug_reg27_reg = (mh_debug_reg27_reg & ~MH_DEBUG_REG27_VGT_SEND_QUAL_MASK) | (vgt_send_qual << MH_DEBUG_REG27_VGT_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG27_SET_TC_SEND_QUAL(mh_debug_reg27_reg, tc_send_qual) \
+ mh_debug_reg27_reg = (mh_debug_reg27_reg & ~MH_DEBUG_REG27_TC_SEND_QUAL_MASK) | (tc_send_qual << MH_DEBUG_REG27_TC_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG27_SET_TC_SEND_EFF1_QUAL(mh_debug_reg27_reg, tc_send_eff1_qual) \
+ mh_debug_reg27_reg = (mh_debug_reg27_reg & ~MH_DEBUG_REG27_TC_SEND_EFF1_QUAL_MASK) | (tc_send_eff1_qual << MH_DEBUG_REG27_TC_SEND_EFF1_QUAL_SHIFT)
+#define MH_DEBUG_REG27_SET_RB_SEND_QUAL(mh_debug_reg27_reg, rb_send_qual) \
+ mh_debug_reg27_reg = (mh_debug_reg27_reg & ~MH_DEBUG_REG27_RB_SEND_QUAL_MASK) | (rb_send_qual << MH_DEBUG_REG27_RB_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG27_SET_PA_SEND_QUAL(mh_debug_reg27_reg, pa_send_qual) \
+ mh_debug_reg27_reg = (mh_debug_reg27_reg & ~MH_DEBUG_REG27_PA_SEND_QUAL_MASK) | (pa_send_qual << MH_DEBUG_REG27_PA_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG27_SET_ARB_QUAL(mh_debug_reg27_reg, arb_qual) \
+ mh_debug_reg27_reg = (mh_debug_reg27_reg & ~MH_DEBUG_REG27_ARB_QUAL_MASK) | (arb_qual << MH_DEBUG_REG27_ARB_QUAL_SHIFT)
+#define MH_DEBUG_REG27_SET_CP_EFF1_REQ(mh_debug_reg27_reg, cp_eff1_req) \
+ mh_debug_reg27_reg = (mh_debug_reg27_reg & ~MH_DEBUG_REG27_CP_EFF1_REQ_MASK) | (cp_eff1_req << MH_DEBUG_REG27_CP_EFF1_REQ_SHIFT)
+#define MH_DEBUG_REG27_SET_VGT_EFF1_REQ(mh_debug_reg27_reg, vgt_eff1_req) \
+ mh_debug_reg27_reg = (mh_debug_reg27_reg & ~MH_DEBUG_REG27_VGT_EFF1_REQ_MASK) | (vgt_eff1_req << MH_DEBUG_REG27_VGT_EFF1_REQ_SHIFT)
+#define MH_DEBUG_REG27_SET_TC_EFF1_REQ(mh_debug_reg27_reg, tc_eff1_req) \
+ mh_debug_reg27_reg = (mh_debug_reg27_reg & ~MH_DEBUG_REG27_TC_EFF1_REQ_MASK) | (tc_eff1_req << MH_DEBUG_REG27_TC_EFF1_REQ_SHIFT)
+#define MH_DEBUG_REG27_SET_RB_EFF1_REQ(mh_debug_reg27_reg, rb_eff1_req) \
+ mh_debug_reg27_reg = (mh_debug_reg27_reg & ~MH_DEBUG_REG27_RB_EFF1_REQ_MASK) | (rb_eff1_req << MH_DEBUG_REG27_RB_EFF1_REQ_SHIFT)
+#define MH_DEBUG_REG27_SET_TCD_NEARFULL_q(mh_debug_reg27_reg, tcd_nearfull_q) \
+ mh_debug_reg27_reg = (mh_debug_reg27_reg & ~MH_DEBUG_REG27_TCD_NEARFULL_q_MASK) | (tcd_nearfull_q << MH_DEBUG_REG27_TCD_NEARFULL_q_SHIFT)
+#define MH_DEBUG_REG27_SET_TCHOLD_IP_q(mh_debug_reg27_reg, tchold_ip_q) \
+ mh_debug_reg27_reg = (mh_debug_reg27_reg & ~MH_DEBUG_REG27_TCHOLD_IP_q_MASK) | (tchold_ip_q << MH_DEBUG_REG27_TCHOLD_IP_q_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg27_t {
+ unsigned int eff2_fp_winner : MH_DEBUG_REG27_EFF2_FP_WINNER_SIZE;
+ unsigned int eff2_lru_winner_out : MH_DEBUG_REG27_EFF2_LRU_WINNER_out_SIZE;
+ unsigned int eff1_winner : MH_DEBUG_REG27_EFF1_WINNER_SIZE;
+ unsigned int arb_winner : MH_DEBUG_REG27_ARB_WINNER_SIZE;
+ unsigned int arb_winner_q : MH_DEBUG_REG27_ARB_WINNER_q_SIZE;
+ unsigned int eff1_win : MH_DEBUG_REG27_EFF1_WIN_SIZE;
+ unsigned int kill_eff1 : MH_DEBUG_REG27_KILL_EFF1_SIZE;
+ unsigned int arb_hold : MH_DEBUG_REG27_ARB_HOLD_SIZE;
+ unsigned int arb_rtr_q : MH_DEBUG_REG27_ARB_RTR_q_SIZE;
+ unsigned int cp_send_qual : MH_DEBUG_REG27_CP_SEND_QUAL_SIZE;
+ unsigned int vgt_send_qual : MH_DEBUG_REG27_VGT_SEND_QUAL_SIZE;
+ unsigned int tc_send_qual : MH_DEBUG_REG27_TC_SEND_QUAL_SIZE;
+ unsigned int tc_send_eff1_qual : MH_DEBUG_REG27_TC_SEND_EFF1_QUAL_SIZE;
+ unsigned int rb_send_qual : MH_DEBUG_REG27_RB_SEND_QUAL_SIZE;
+ unsigned int pa_send_qual : MH_DEBUG_REG27_PA_SEND_QUAL_SIZE;
+ unsigned int arb_qual : MH_DEBUG_REG27_ARB_QUAL_SIZE;
+ unsigned int cp_eff1_req : MH_DEBUG_REG27_CP_EFF1_REQ_SIZE;
+ unsigned int vgt_eff1_req : MH_DEBUG_REG27_VGT_EFF1_REQ_SIZE;
+ unsigned int tc_eff1_req : MH_DEBUG_REG27_TC_EFF1_REQ_SIZE;
+ unsigned int rb_eff1_req : MH_DEBUG_REG27_RB_EFF1_REQ_SIZE;
+ unsigned int tcd_nearfull_q : MH_DEBUG_REG27_TCD_NEARFULL_q_SIZE;
+ unsigned int tchold_ip_q : MH_DEBUG_REG27_TCHOLD_IP_q_SIZE;
+ } mh_debug_reg27_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg27_t {
+ unsigned int tchold_ip_q : MH_DEBUG_REG27_TCHOLD_IP_q_SIZE;
+ unsigned int tcd_nearfull_q : MH_DEBUG_REG27_TCD_NEARFULL_q_SIZE;
+ unsigned int rb_eff1_req : MH_DEBUG_REG27_RB_EFF1_REQ_SIZE;
+ unsigned int tc_eff1_req : MH_DEBUG_REG27_TC_EFF1_REQ_SIZE;
+ unsigned int vgt_eff1_req : MH_DEBUG_REG27_VGT_EFF1_REQ_SIZE;
+ unsigned int cp_eff1_req : MH_DEBUG_REG27_CP_EFF1_REQ_SIZE;
+ unsigned int arb_qual : MH_DEBUG_REG27_ARB_QUAL_SIZE;
+ unsigned int pa_send_qual : MH_DEBUG_REG27_PA_SEND_QUAL_SIZE;
+ unsigned int rb_send_qual : MH_DEBUG_REG27_RB_SEND_QUAL_SIZE;
+ unsigned int tc_send_eff1_qual : MH_DEBUG_REG27_TC_SEND_EFF1_QUAL_SIZE;
+ unsigned int tc_send_qual : MH_DEBUG_REG27_TC_SEND_QUAL_SIZE;
+ unsigned int vgt_send_qual : MH_DEBUG_REG27_VGT_SEND_QUAL_SIZE;
+ unsigned int cp_send_qual : MH_DEBUG_REG27_CP_SEND_QUAL_SIZE;
+ unsigned int arb_rtr_q : MH_DEBUG_REG27_ARB_RTR_q_SIZE;
+ unsigned int arb_hold : MH_DEBUG_REG27_ARB_HOLD_SIZE;
+ unsigned int kill_eff1 : MH_DEBUG_REG27_KILL_EFF1_SIZE;
+ unsigned int eff1_win : MH_DEBUG_REG27_EFF1_WIN_SIZE;
+ unsigned int arb_winner_q : MH_DEBUG_REG27_ARB_WINNER_q_SIZE;
+ unsigned int arb_winner : MH_DEBUG_REG27_ARB_WINNER_SIZE;
+ unsigned int eff1_winner : MH_DEBUG_REG27_EFF1_WINNER_SIZE;
+ unsigned int eff2_lru_winner_out : MH_DEBUG_REG27_EFF2_LRU_WINNER_out_SIZE;
+ unsigned int eff2_fp_winner : MH_DEBUG_REG27_EFF2_FP_WINNER_SIZE;
+ } mh_debug_reg27_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg27_t f;
+} mh_debug_reg27_u;
+
+
+/*
+ * MH_DEBUG_REG28 struct
+ */
+
+#define MH_DEBUG_REG28_EFF1_WINNER_SIZE 3
+#define MH_DEBUG_REG28_ARB_WINNER_SIZE 3
+#define MH_DEBUG_REG28_CP_SEND_QUAL_SIZE 1
+#define MH_DEBUG_REG28_VGT_SEND_QUAL_SIZE 1
+#define MH_DEBUG_REG28_TC_SEND_QUAL_SIZE 1
+#define MH_DEBUG_REG28_TC_SEND_EFF1_QUAL_SIZE 1
+#define MH_DEBUG_REG28_RB_SEND_QUAL_SIZE 1
+#define MH_DEBUG_REG28_ARB_QUAL_SIZE 1
+#define MH_DEBUG_REG28_CP_EFF1_REQ_SIZE 1
+#define MH_DEBUG_REG28_VGT_EFF1_REQ_SIZE 1
+#define MH_DEBUG_REG28_TC_EFF1_REQ_SIZE 1
+#define MH_DEBUG_REG28_RB_EFF1_REQ_SIZE 1
+#define MH_DEBUG_REG28_EFF1_WIN_SIZE 1
+#define MH_DEBUG_REG28_KILL_EFF1_SIZE 1
+#define MH_DEBUG_REG28_TCD_NEARFULL_q_SIZE 1
+#define MH_DEBUG_REG28_TC_ARB_HOLD_SIZE 1
+#define MH_DEBUG_REG28_ARB_HOLD_SIZE 1
+#define MH_DEBUG_REG28_ARB_RTR_q_SIZE 1
+#define MH_DEBUG_REG28_SAME_PAGE_LIMIT_COUNT_q_SIZE 10
+
+#define MH_DEBUG_REG28_EFF1_WINNER_SHIFT 0
+#define MH_DEBUG_REG28_ARB_WINNER_SHIFT 3
+#define MH_DEBUG_REG28_CP_SEND_QUAL_SHIFT 6
+#define MH_DEBUG_REG28_VGT_SEND_QUAL_SHIFT 7
+#define MH_DEBUG_REG28_TC_SEND_QUAL_SHIFT 8
+#define MH_DEBUG_REG28_TC_SEND_EFF1_QUAL_SHIFT 9
+#define MH_DEBUG_REG28_RB_SEND_QUAL_SHIFT 10
+#define MH_DEBUG_REG28_ARB_QUAL_SHIFT 11
+#define MH_DEBUG_REG28_CP_EFF1_REQ_SHIFT 12
+#define MH_DEBUG_REG28_VGT_EFF1_REQ_SHIFT 13
+#define MH_DEBUG_REG28_TC_EFF1_REQ_SHIFT 14
+#define MH_DEBUG_REG28_RB_EFF1_REQ_SHIFT 15
+#define MH_DEBUG_REG28_EFF1_WIN_SHIFT 16
+#define MH_DEBUG_REG28_KILL_EFF1_SHIFT 17
+#define MH_DEBUG_REG28_TCD_NEARFULL_q_SHIFT 18
+#define MH_DEBUG_REG28_TC_ARB_HOLD_SHIFT 19
+#define MH_DEBUG_REG28_ARB_HOLD_SHIFT 20
+#define MH_DEBUG_REG28_ARB_RTR_q_SHIFT 21
+#define MH_DEBUG_REG28_SAME_PAGE_LIMIT_COUNT_q_SHIFT 22
+
+#define MH_DEBUG_REG28_EFF1_WINNER_MASK 0x00000007
+#define MH_DEBUG_REG28_ARB_WINNER_MASK 0x00000038
+#define MH_DEBUG_REG28_CP_SEND_QUAL_MASK 0x00000040
+#define MH_DEBUG_REG28_VGT_SEND_QUAL_MASK 0x00000080
+#define MH_DEBUG_REG28_TC_SEND_QUAL_MASK 0x00000100
+#define MH_DEBUG_REG28_TC_SEND_EFF1_QUAL_MASK 0x00000200
+#define MH_DEBUG_REG28_RB_SEND_QUAL_MASK 0x00000400
+#define MH_DEBUG_REG28_ARB_QUAL_MASK 0x00000800
+#define MH_DEBUG_REG28_CP_EFF1_REQ_MASK 0x00001000
+#define MH_DEBUG_REG28_VGT_EFF1_REQ_MASK 0x00002000
+#define MH_DEBUG_REG28_TC_EFF1_REQ_MASK 0x00004000
+#define MH_DEBUG_REG28_RB_EFF1_REQ_MASK 0x00008000
+#define MH_DEBUG_REG28_EFF1_WIN_MASK 0x00010000
+#define MH_DEBUG_REG28_KILL_EFF1_MASK 0x00020000
+#define MH_DEBUG_REG28_TCD_NEARFULL_q_MASK 0x00040000
+#define MH_DEBUG_REG28_TC_ARB_HOLD_MASK 0x00080000
+#define MH_DEBUG_REG28_ARB_HOLD_MASK 0x00100000
+#define MH_DEBUG_REG28_ARB_RTR_q_MASK 0x00200000
+#define MH_DEBUG_REG28_SAME_PAGE_LIMIT_COUNT_q_MASK 0xffc00000
+
+#define MH_DEBUG_REG28_MASK \
+ (MH_DEBUG_REG28_EFF1_WINNER_MASK | \
+ MH_DEBUG_REG28_ARB_WINNER_MASK | \
+ MH_DEBUG_REG28_CP_SEND_QUAL_MASK | \
+ MH_DEBUG_REG28_VGT_SEND_QUAL_MASK | \
+ MH_DEBUG_REG28_TC_SEND_QUAL_MASK | \
+ MH_DEBUG_REG28_TC_SEND_EFF1_QUAL_MASK | \
+ MH_DEBUG_REG28_RB_SEND_QUAL_MASK | \
+ MH_DEBUG_REG28_ARB_QUAL_MASK | \
+ MH_DEBUG_REG28_CP_EFF1_REQ_MASK | \
+ MH_DEBUG_REG28_VGT_EFF1_REQ_MASK | \
+ MH_DEBUG_REG28_TC_EFF1_REQ_MASK | \
+ MH_DEBUG_REG28_RB_EFF1_REQ_MASK | \
+ MH_DEBUG_REG28_EFF1_WIN_MASK | \
+ MH_DEBUG_REG28_KILL_EFF1_MASK | \
+ MH_DEBUG_REG28_TCD_NEARFULL_q_MASK | \
+ MH_DEBUG_REG28_TC_ARB_HOLD_MASK | \
+ MH_DEBUG_REG28_ARB_HOLD_MASK | \
+ MH_DEBUG_REG28_ARB_RTR_q_MASK | \
+ MH_DEBUG_REG28_SAME_PAGE_LIMIT_COUNT_q_MASK)
+
+#define MH_DEBUG_REG28(eff1_winner, arb_winner, cp_send_qual, vgt_send_qual, tc_send_qual, tc_send_eff1_qual, rb_send_qual, arb_qual, cp_eff1_req, vgt_eff1_req, tc_eff1_req, rb_eff1_req, eff1_win, kill_eff1, tcd_nearfull_q, tc_arb_hold, arb_hold, arb_rtr_q, same_page_limit_count_q) \
+ ((eff1_winner << MH_DEBUG_REG28_EFF1_WINNER_SHIFT) | \
+ (arb_winner << MH_DEBUG_REG28_ARB_WINNER_SHIFT) | \
+ (cp_send_qual << MH_DEBUG_REG28_CP_SEND_QUAL_SHIFT) | \
+ (vgt_send_qual << MH_DEBUG_REG28_VGT_SEND_QUAL_SHIFT) | \
+ (tc_send_qual << MH_DEBUG_REG28_TC_SEND_QUAL_SHIFT) | \
+ (tc_send_eff1_qual << MH_DEBUG_REG28_TC_SEND_EFF1_QUAL_SHIFT) | \
+ (rb_send_qual << MH_DEBUG_REG28_RB_SEND_QUAL_SHIFT) | \
+ (arb_qual << MH_DEBUG_REG28_ARB_QUAL_SHIFT) | \
+ (cp_eff1_req << MH_DEBUG_REG28_CP_EFF1_REQ_SHIFT) | \
+ (vgt_eff1_req << MH_DEBUG_REG28_VGT_EFF1_REQ_SHIFT) | \
+ (tc_eff1_req << MH_DEBUG_REG28_TC_EFF1_REQ_SHIFT) | \
+ (rb_eff1_req << MH_DEBUG_REG28_RB_EFF1_REQ_SHIFT) | \
+ (eff1_win << MH_DEBUG_REG28_EFF1_WIN_SHIFT) | \
+ (kill_eff1 << MH_DEBUG_REG28_KILL_EFF1_SHIFT) | \
+ (tcd_nearfull_q << MH_DEBUG_REG28_TCD_NEARFULL_q_SHIFT) | \
+ (tc_arb_hold << MH_DEBUG_REG28_TC_ARB_HOLD_SHIFT) | \
+ (arb_hold << MH_DEBUG_REG28_ARB_HOLD_SHIFT) | \
+ (arb_rtr_q << MH_DEBUG_REG28_ARB_RTR_q_SHIFT) | \
+ (same_page_limit_count_q << MH_DEBUG_REG28_SAME_PAGE_LIMIT_COUNT_q_SHIFT))
+
+#define MH_DEBUG_REG28_GET_EFF1_WINNER(mh_debug_reg28) \
+ ((mh_debug_reg28 & MH_DEBUG_REG28_EFF1_WINNER_MASK) >> MH_DEBUG_REG28_EFF1_WINNER_SHIFT)
+#define MH_DEBUG_REG28_GET_ARB_WINNER(mh_debug_reg28) \
+ ((mh_debug_reg28 & MH_DEBUG_REG28_ARB_WINNER_MASK) >> MH_DEBUG_REG28_ARB_WINNER_SHIFT)
+#define MH_DEBUG_REG28_GET_CP_SEND_QUAL(mh_debug_reg28) \
+ ((mh_debug_reg28 & MH_DEBUG_REG28_CP_SEND_QUAL_MASK) >> MH_DEBUG_REG28_CP_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG28_GET_VGT_SEND_QUAL(mh_debug_reg28) \
+ ((mh_debug_reg28 & MH_DEBUG_REG28_VGT_SEND_QUAL_MASK) >> MH_DEBUG_REG28_VGT_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG28_GET_TC_SEND_QUAL(mh_debug_reg28) \
+ ((mh_debug_reg28 & MH_DEBUG_REG28_TC_SEND_QUAL_MASK) >> MH_DEBUG_REG28_TC_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG28_GET_TC_SEND_EFF1_QUAL(mh_debug_reg28) \
+ ((mh_debug_reg28 & MH_DEBUG_REG28_TC_SEND_EFF1_QUAL_MASK) >> MH_DEBUG_REG28_TC_SEND_EFF1_QUAL_SHIFT)
+#define MH_DEBUG_REG28_GET_RB_SEND_QUAL(mh_debug_reg28) \
+ ((mh_debug_reg28 & MH_DEBUG_REG28_RB_SEND_QUAL_MASK) >> MH_DEBUG_REG28_RB_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG28_GET_ARB_QUAL(mh_debug_reg28) \
+ ((mh_debug_reg28 & MH_DEBUG_REG28_ARB_QUAL_MASK) >> MH_DEBUG_REG28_ARB_QUAL_SHIFT)
+#define MH_DEBUG_REG28_GET_CP_EFF1_REQ(mh_debug_reg28) \
+ ((mh_debug_reg28 & MH_DEBUG_REG28_CP_EFF1_REQ_MASK) >> MH_DEBUG_REG28_CP_EFF1_REQ_SHIFT)
+#define MH_DEBUG_REG28_GET_VGT_EFF1_REQ(mh_debug_reg28) \
+ ((mh_debug_reg28 & MH_DEBUG_REG28_VGT_EFF1_REQ_MASK) >> MH_DEBUG_REG28_VGT_EFF1_REQ_SHIFT)
+#define MH_DEBUG_REG28_GET_TC_EFF1_REQ(mh_debug_reg28) \
+ ((mh_debug_reg28 & MH_DEBUG_REG28_TC_EFF1_REQ_MASK) >> MH_DEBUG_REG28_TC_EFF1_REQ_SHIFT)
+#define MH_DEBUG_REG28_GET_RB_EFF1_REQ(mh_debug_reg28) \
+ ((mh_debug_reg28 & MH_DEBUG_REG28_RB_EFF1_REQ_MASK) >> MH_DEBUG_REG28_RB_EFF1_REQ_SHIFT)
+#define MH_DEBUG_REG28_GET_EFF1_WIN(mh_debug_reg28) \
+ ((mh_debug_reg28 & MH_DEBUG_REG28_EFF1_WIN_MASK) >> MH_DEBUG_REG28_EFF1_WIN_SHIFT)
+#define MH_DEBUG_REG28_GET_KILL_EFF1(mh_debug_reg28) \
+ ((mh_debug_reg28 & MH_DEBUG_REG28_KILL_EFF1_MASK) >> MH_DEBUG_REG28_KILL_EFF1_SHIFT)
+#define MH_DEBUG_REG28_GET_TCD_NEARFULL_q(mh_debug_reg28) \
+ ((mh_debug_reg28 & MH_DEBUG_REG28_TCD_NEARFULL_q_MASK) >> MH_DEBUG_REG28_TCD_NEARFULL_q_SHIFT)
+#define MH_DEBUG_REG28_GET_TC_ARB_HOLD(mh_debug_reg28) \
+ ((mh_debug_reg28 & MH_DEBUG_REG28_TC_ARB_HOLD_MASK) >> MH_DEBUG_REG28_TC_ARB_HOLD_SHIFT)
+#define MH_DEBUG_REG28_GET_ARB_HOLD(mh_debug_reg28) \
+ ((mh_debug_reg28 & MH_DEBUG_REG28_ARB_HOLD_MASK) >> MH_DEBUG_REG28_ARB_HOLD_SHIFT)
+#define MH_DEBUG_REG28_GET_ARB_RTR_q(mh_debug_reg28) \
+ ((mh_debug_reg28 & MH_DEBUG_REG28_ARB_RTR_q_MASK) >> MH_DEBUG_REG28_ARB_RTR_q_SHIFT)
+#define MH_DEBUG_REG28_GET_SAME_PAGE_LIMIT_COUNT_q(mh_debug_reg28) \
+ ((mh_debug_reg28 & MH_DEBUG_REG28_SAME_PAGE_LIMIT_COUNT_q_MASK) >> MH_DEBUG_REG28_SAME_PAGE_LIMIT_COUNT_q_SHIFT)
+
+#define MH_DEBUG_REG28_SET_EFF1_WINNER(mh_debug_reg28_reg, eff1_winner) \
+ mh_debug_reg28_reg = (mh_debug_reg28_reg & ~MH_DEBUG_REG28_EFF1_WINNER_MASK) | (eff1_winner << MH_DEBUG_REG28_EFF1_WINNER_SHIFT)
+#define MH_DEBUG_REG28_SET_ARB_WINNER(mh_debug_reg28_reg, arb_winner) \
+ mh_debug_reg28_reg = (mh_debug_reg28_reg & ~MH_DEBUG_REG28_ARB_WINNER_MASK) | (arb_winner << MH_DEBUG_REG28_ARB_WINNER_SHIFT)
+#define MH_DEBUG_REG28_SET_CP_SEND_QUAL(mh_debug_reg28_reg, cp_send_qual) \
+ mh_debug_reg28_reg = (mh_debug_reg28_reg & ~MH_DEBUG_REG28_CP_SEND_QUAL_MASK) | (cp_send_qual << MH_DEBUG_REG28_CP_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG28_SET_VGT_SEND_QUAL(mh_debug_reg28_reg, vgt_send_qual) \
+ mh_debug_reg28_reg = (mh_debug_reg28_reg & ~MH_DEBUG_REG28_VGT_SEND_QUAL_MASK) | (vgt_send_qual << MH_DEBUG_REG28_VGT_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG28_SET_TC_SEND_QUAL(mh_debug_reg28_reg, tc_send_qual) \
+ mh_debug_reg28_reg = (mh_debug_reg28_reg & ~MH_DEBUG_REG28_TC_SEND_QUAL_MASK) | (tc_send_qual << MH_DEBUG_REG28_TC_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG28_SET_TC_SEND_EFF1_QUAL(mh_debug_reg28_reg, tc_send_eff1_qual) \
+ mh_debug_reg28_reg = (mh_debug_reg28_reg & ~MH_DEBUG_REG28_TC_SEND_EFF1_QUAL_MASK) | (tc_send_eff1_qual << MH_DEBUG_REG28_TC_SEND_EFF1_QUAL_SHIFT)
+#define MH_DEBUG_REG28_SET_RB_SEND_QUAL(mh_debug_reg28_reg, rb_send_qual) \
+ mh_debug_reg28_reg = (mh_debug_reg28_reg & ~MH_DEBUG_REG28_RB_SEND_QUAL_MASK) | (rb_send_qual << MH_DEBUG_REG28_RB_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG28_SET_ARB_QUAL(mh_debug_reg28_reg, arb_qual) \
+ mh_debug_reg28_reg = (mh_debug_reg28_reg & ~MH_DEBUG_REG28_ARB_QUAL_MASK) | (arb_qual << MH_DEBUG_REG28_ARB_QUAL_SHIFT)
+#define MH_DEBUG_REG28_SET_CP_EFF1_REQ(mh_debug_reg28_reg, cp_eff1_req) \
+ mh_debug_reg28_reg = (mh_debug_reg28_reg & ~MH_DEBUG_REG28_CP_EFF1_REQ_MASK) | (cp_eff1_req << MH_DEBUG_REG28_CP_EFF1_REQ_SHIFT)
+#define MH_DEBUG_REG28_SET_VGT_EFF1_REQ(mh_debug_reg28_reg, vgt_eff1_req) \
+ mh_debug_reg28_reg = (mh_debug_reg28_reg & ~MH_DEBUG_REG28_VGT_EFF1_REQ_MASK) | (vgt_eff1_req << MH_DEBUG_REG28_VGT_EFF1_REQ_SHIFT)
+#define MH_DEBUG_REG28_SET_TC_EFF1_REQ(mh_debug_reg28_reg, tc_eff1_req) \
+ mh_debug_reg28_reg = (mh_debug_reg28_reg & ~MH_DEBUG_REG28_TC_EFF1_REQ_MASK) | (tc_eff1_req << MH_DEBUG_REG28_TC_EFF1_REQ_SHIFT)
+#define MH_DEBUG_REG28_SET_RB_EFF1_REQ(mh_debug_reg28_reg, rb_eff1_req) \
+ mh_debug_reg28_reg = (mh_debug_reg28_reg & ~MH_DEBUG_REG28_RB_EFF1_REQ_MASK) | (rb_eff1_req << MH_DEBUG_REG28_RB_EFF1_REQ_SHIFT)
+#define MH_DEBUG_REG28_SET_EFF1_WIN(mh_debug_reg28_reg, eff1_win) \
+ mh_debug_reg28_reg = (mh_debug_reg28_reg & ~MH_DEBUG_REG28_EFF1_WIN_MASK) | (eff1_win << MH_DEBUG_REG28_EFF1_WIN_SHIFT)
+#define MH_DEBUG_REG28_SET_KILL_EFF1(mh_debug_reg28_reg, kill_eff1) \
+ mh_debug_reg28_reg = (mh_debug_reg28_reg & ~MH_DEBUG_REG28_KILL_EFF1_MASK) | (kill_eff1 << MH_DEBUG_REG28_KILL_EFF1_SHIFT)
+#define MH_DEBUG_REG28_SET_TCD_NEARFULL_q(mh_debug_reg28_reg, tcd_nearfull_q) \
+ mh_debug_reg28_reg = (mh_debug_reg28_reg & ~MH_DEBUG_REG28_TCD_NEARFULL_q_MASK) | (tcd_nearfull_q << MH_DEBUG_REG28_TCD_NEARFULL_q_SHIFT)
+#define MH_DEBUG_REG28_SET_TC_ARB_HOLD(mh_debug_reg28_reg, tc_arb_hold) \
+ mh_debug_reg28_reg = (mh_debug_reg28_reg & ~MH_DEBUG_REG28_TC_ARB_HOLD_MASK) | (tc_arb_hold << MH_DEBUG_REG28_TC_ARB_HOLD_SHIFT)
+#define MH_DEBUG_REG28_SET_ARB_HOLD(mh_debug_reg28_reg, arb_hold) \
+ mh_debug_reg28_reg = (mh_debug_reg28_reg & ~MH_DEBUG_REG28_ARB_HOLD_MASK) | (arb_hold << MH_DEBUG_REG28_ARB_HOLD_SHIFT)
+#define MH_DEBUG_REG28_SET_ARB_RTR_q(mh_debug_reg28_reg, arb_rtr_q) \
+ mh_debug_reg28_reg = (mh_debug_reg28_reg & ~MH_DEBUG_REG28_ARB_RTR_q_MASK) | (arb_rtr_q << MH_DEBUG_REG28_ARB_RTR_q_SHIFT)
+#define MH_DEBUG_REG28_SET_SAME_PAGE_LIMIT_COUNT_q(mh_debug_reg28_reg, same_page_limit_count_q) \
+ mh_debug_reg28_reg = (mh_debug_reg28_reg & ~MH_DEBUG_REG28_SAME_PAGE_LIMIT_COUNT_q_MASK) | (same_page_limit_count_q << MH_DEBUG_REG28_SAME_PAGE_LIMIT_COUNT_q_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg28_t {
+ unsigned int eff1_winner : MH_DEBUG_REG28_EFF1_WINNER_SIZE;
+ unsigned int arb_winner : MH_DEBUG_REG28_ARB_WINNER_SIZE;
+ unsigned int cp_send_qual : MH_DEBUG_REG28_CP_SEND_QUAL_SIZE;
+ unsigned int vgt_send_qual : MH_DEBUG_REG28_VGT_SEND_QUAL_SIZE;
+ unsigned int tc_send_qual : MH_DEBUG_REG28_TC_SEND_QUAL_SIZE;
+ unsigned int tc_send_eff1_qual : MH_DEBUG_REG28_TC_SEND_EFF1_QUAL_SIZE;
+ unsigned int rb_send_qual : MH_DEBUG_REG28_RB_SEND_QUAL_SIZE;
+ unsigned int arb_qual : MH_DEBUG_REG28_ARB_QUAL_SIZE;
+ unsigned int cp_eff1_req : MH_DEBUG_REG28_CP_EFF1_REQ_SIZE;
+ unsigned int vgt_eff1_req : MH_DEBUG_REG28_VGT_EFF1_REQ_SIZE;
+ unsigned int tc_eff1_req : MH_DEBUG_REG28_TC_EFF1_REQ_SIZE;
+ unsigned int rb_eff1_req : MH_DEBUG_REG28_RB_EFF1_REQ_SIZE;
+ unsigned int eff1_win : MH_DEBUG_REG28_EFF1_WIN_SIZE;
+ unsigned int kill_eff1 : MH_DEBUG_REG28_KILL_EFF1_SIZE;
+ unsigned int tcd_nearfull_q : MH_DEBUG_REG28_TCD_NEARFULL_q_SIZE;
+ unsigned int tc_arb_hold : MH_DEBUG_REG28_TC_ARB_HOLD_SIZE;
+ unsigned int arb_hold : MH_DEBUG_REG28_ARB_HOLD_SIZE;
+ unsigned int arb_rtr_q : MH_DEBUG_REG28_ARB_RTR_q_SIZE;
+ unsigned int same_page_limit_count_q : MH_DEBUG_REG28_SAME_PAGE_LIMIT_COUNT_q_SIZE;
+ } mh_debug_reg28_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg28_t {
+ unsigned int same_page_limit_count_q : MH_DEBUG_REG28_SAME_PAGE_LIMIT_COUNT_q_SIZE;
+ unsigned int arb_rtr_q : MH_DEBUG_REG28_ARB_RTR_q_SIZE;
+ unsigned int arb_hold : MH_DEBUG_REG28_ARB_HOLD_SIZE;
+ unsigned int tc_arb_hold : MH_DEBUG_REG28_TC_ARB_HOLD_SIZE;
+ unsigned int tcd_nearfull_q : MH_DEBUG_REG28_TCD_NEARFULL_q_SIZE;
+ unsigned int kill_eff1 : MH_DEBUG_REG28_KILL_EFF1_SIZE;
+ unsigned int eff1_win : MH_DEBUG_REG28_EFF1_WIN_SIZE;
+ unsigned int rb_eff1_req : MH_DEBUG_REG28_RB_EFF1_REQ_SIZE;
+ unsigned int tc_eff1_req : MH_DEBUG_REG28_TC_EFF1_REQ_SIZE;
+ unsigned int vgt_eff1_req : MH_DEBUG_REG28_VGT_EFF1_REQ_SIZE;
+ unsigned int cp_eff1_req : MH_DEBUG_REG28_CP_EFF1_REQ_SIZE;
+ unsigned int arb_qual : MH_DEBUG_REG28_ARB_QUAL_SIZE;
+ unsigned int rb_send_qual : MH_DEBUG_REG28_RB_SEND_QUAL_SIZE;
+ unsigned int tc_send_eff1_qual : MH_DEBUG_REG28_TC_SEND_EFF1_QUAL_SIZE;
+ unsigned int tc_send_qual : MH_DEBUG_REG28_TC_SEND_QUAL_SIZE;
+ unsigned int vgt_send_qual : MH_DEBUG_REG28_VGT_SEND_QUAL_SIZE;
+ unsigned int cp_send_qual : MH_DEBUG_REG28_CP_SEND_QUAL_SIZE;
+ unsigned int arb_winner : MH_DEBUG_REG28_ARB_WINNER_SIZE;
+ unsigned int eff1_winner : MH_DEBUG_REG28_EFF1_WINNER_SIZE;
+ } mh_debug_reg28_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg28_t f;
+} mh_debug_reg28_u;
+
+
+/*
+ * MH_DEBUG_REG29 struct
+ */
+
+#define MH_DEBUG_REG29_EFF2_LRU_WINNER_out_SIZE 3
+#define MH_DEBUG_REG29_LEAST_RECENT_INDEX_d_SIZE 3
+#define MH_DEBUG_REG29_LEAST_RECENT_d_SIZE 3
+#define MH_DEBUG_REG29_UPDATE_RECENT_STACK_d_SIZE 1
+#define MH_DEBUG_REG29_ARB_HOLD_SIZE 1
+#define MH_DEBUG_REG29_ARB_RTR_q_SIZE 1
+#define MH_DEBUG_REG29_CLNT_REQ_SIZE 5
+#define MH_DEBUG_REG29_RECENT_d_0_SIZE 3
+#define MH_DEBUG_REG29_RECENT_d_1_SIZE 3
+#define MH_DEBUG_REG29_RECENT_d_2_SIZE 3
+#define MH_DEBUG_REG29_RECENT_d_3_SIZE 3
+#define MH_DEBUG_REG29_RECENT_d_4_SIZE 3
+
+#define MH_DEBUG_REG29_EFF2_LRU_WINNER_out_SHIFT 0
+#define MH_DEBUG_REG29_LEAST_RECENT_INDEX_d_SHIFT 3
+#define MH_DEBUG_REG29_LEAST_RECENT_d_SHIFT 6
+#define MH_DEBUG_REG29_UPDATE_RECENT_STACK_d_SHIFT 9
+#define MH_DEBUG_REG29_ARB_HOLD_SHIFT 10
+#define MH_DEBUG_REG29_ARB_RTR_q_SHIFT 11
+#define MH_DEBUG_REG29_CLNT_REQ_SHIFT 12
+#define MH_DEBUG_REG29_RECENT_d_0_SHIFT 17
+#define MH_DEBUG_REG29_RECENT_d_1_SHIFT 20
+#define MH_DEBUG_REG29_RECENT_d_2_SHIFT 23
+#define MH_DEBUG_REG29_RECENT_d_3_SHIFT 26
+#define MH_DEBUG_REG29_RECENT_d_4_SHIFT 29
+
+#define MH_DEBUG_REG29_EFF2_LRU_WINNER_out_MASK 0x00000007
+#define MH_DEBUG_REG29_LEAST_RECENT_INDEX_d_MASK 0x00000038
+#define MH_DEBUG_REG29_LEAST_RECENT_d_MASK 0x000001c0
+#define MH_DEBUG_REG29_UPDATE_RECENT_STACK_d_MASK 0x00000200
+#define MH_DEBUG_REG29_ARB_HOLD_MASK 0x00000400
+#define MH_DEBUG_REG29_ARB_RTR_q_MASK 0x00000800
+#define MH_DEBUG_REG29_CLNT_REQ_MASK 0x0001f000
+#define MH_DEBUG_REG29_RECENT_d_0_MASK 0x000e0000
+#define MH_DEBUG_REG29_RECENT_d_1_MASK 0x00700000
+#define MH_DEBUG_REG29_RECENT_d_2_MASK 0x03800000
+#define MH_DEBUG_REG29_RECENT_d_3_MASK 0x1c000000
+#define MH_DEBUG_REG29_RECENT_d_4_MASK 0xe0000000
+
+#define MH_DEBUG_REG29_MASK \
+ (MH_DEBUG_REG29_EFF2_LRU_WINNER_out_MASK | \
+ MH_DEBUG_REG29_LEAST_RECENT_INDEX_d_MASK | \
+ MH_DEBUG_REG29_LEAST_RECENT_d_MASK | \
+ MH_DEBUG_REG29_UPDATE_RECENT_STACK_d_MASK | \
+ MH_DEBUG_REG29_ARB_HOLD_MASK | \
+ MH_DEBUG_REG29_ARB_RTR_q_MASK | \
+ MH_DEBUG_REG29_CLNT_REQ_MASK | \
+ MH_DEBUG_REG29_RECENT_d_0_MASK | \
+ MH_DEBUG_REG29_RECENT_d_1_MASK | \
+ MH_DEBUG_REG29_RECENT_d_2_MASK | \
+ MH_DEBUG_REG29_RECENT_d_3_MASK | \
+ MH_DEBUG_REG29_RECENT_d_4_MASK)
+
+#define MH_DEBUG_REG29(eff2_lru_winner_out, least_recent_index_d, least_recent_d, update_recent_stack_d, arb_hold, arb_rtr_q, clnt_req, recent_d_0, recent_d_1, recent_d_2, recent_d_3, recent_d_4) \
+ ((eff2_lru_winner_out << MH_DEBUG_REG29_EFF2_LRU_WINNER_out_SHIFT) | \
+ (least_recent_index_d << MH_DEBUG_REG29_LEAST_RECENT_INDEX_d_SHIFT) | \
+ (least_recent_d << MH_DEBUG_REG29_LEAST_RECENT_d_SHIFT) | \
+ (update_recent_stack_d << MH_DEBUG_REG29_UPDATE_RECENT_STACK_d_SHIFT) | \
+ (arb_hold << MH_DEBUG_REG29_ARB_HOLD_SHIFT) | \
+ (arb_rtr_q << MH_DEBUG_REG29_ARB_RTR_q_SHIFT) | \
+ (clnt_req << MH_DEBUG_REG29_CLNT_REQ_SHIFT) | \
+ (recent_d_0 << MH_DEBUG_REG29_RECENT_d_0_SHIFT) | \
+ (recent_d_1 << MH_DEBUG_REG29_RECENT_d_1_SHIFT) | \
+ (recent_d_2 << MH_DEBUG_REG29_RECENT_d_2_SHIFT) | \
+ (recent_d_3 << MH_DEBUG_REG29_RECENT_d_3_SHIFT) | \
+ (recent_d_4 << MH_DEBUG_REG29_RECENT_d_4_SHIFT))
+
+#define MH_DEBUG_REG29_GET_EFF2_LRU_WINNER_out(mh_debug_reg29) \
+ ((mh_debug_reg29 & MH_DEBUG_REG29_EFF2_LRU_WINNER_out_MASK) >> MH_DEBUG_REG29_EFF2_LRU_WINNER_out_SHIFT)
+#define MH_DEBUG_REG29_GET_LEAST_RECENT_INDEX_d(mh_debug_reg29) \
+ ((mh_debug_reg29 & MH_DEBUG_REG29_LEAST_RECENT_INDEX_d_MASK) >> MH_DEBUG_REG29_LEAST_RECENT_INDEX_d_SHIFT)
+#define MH_DEBUG_REG29_GET_LEAST_RECENT_d(mh_debug_reg29) \
+ ((mh_debug_reg29 & MH_DEBUG_REG29_LEAST_RECENT_d_MASK) >> MH_DEBUG_REG29_LEAST_RECENT_d_SHIFT)
+#define MH_DEBUG_REG29_GET_UPDATE_RECENT_STACK_d(mh_debug_reg29) \
+ ((mh_debug_reg29 & MH_DEBUG_REG29_UPDATE_RECENT_STACK_d_MASK) >> MH_DEBUG_REG29_UPDATE_RECENT_STACK_d_SHIFT)
+#define MH_DEBUG_REG29_GET_ARB_HOLD(mh_debug_reg29) \
+ ((mh_debug_reg29 & MH_DEBUG_REG29_ARB_HOLD_MASK) >> MH_DEBUG_REG29_ARB_HOLD_SHIFT)
+#define MH_DEBUG_REG29_GET_ARB_RTR_q(mh_debug_reg29) \
+ ((mh_debug_reg29 & MH_DEBUG_REG29_ARB_RTR_q_MASK) >> MH_DEBUG_REG29_ARB_RTR_q_SHIFT)
+#define MH_DEBUG_REG29_GET_CLNT_REQ(mh_debug_reg29) \
+ ((mh_debug_reg29 & MH_DEBUG_REG29_CLNT_REQ_MASK) >> MH_DEBUG_REG29_CLNT_REQ_SHIFT)
+#define MH_DEBUG_REG29_GET_RECENT_d_0(mh_debug_reg29) \
+ ((mh_debug_reg29 & MH_DEBUG_REG29_RECENT_d_0_MASK) >> MH_DEBUG_REG29_RECENT_d_0_SHIFT)
+#define MH_DEBUG_REG29_GET_RECENT_d_1(mh_debug_reg29) \
+ ((mh_debug_reg29 & MH_DEBUG_REG29_RECENT_d_1_MASK) >> MH_DEBUG_REG29_RECENT_d_1_SHIFT)
+#define MH_DEBUG_REG29_GET_RECENT_d_2(mh_debug_reg29) \
+ ((mh_debug_reg29 & MH_DEBUG_REG29_RECENT_d_2_MASK) >> MH_DEBUG_REG29_RECENT_d_2_SHIFT)
+#define MH_DEBUG_REG29_GET_RECENT_d_3(mh_debug_reg29) \
+ ((mh_debug_reg29 & MH_DEBUG_REG29_RECENT_d_3_MASK) >> MH_DEBUG_REG29_RECENT_d_3_SHIFT)
+#define MH_DEBUG_REG29_GET_RECENT_d_4(mh_debug_reg29) \
+ ((mh_debug_reg29 & MH_DEBUG_REG29_RECENT_d_4_MASK) >> MH_DEBUG_REG29_RECENT_d_4_SHIFT)
+
+#define MH_DEBUG_REG29_SET_EFF2_LRU_WINNER_out(mh_debug_reg29_reg, eff2_lru_winner_out) \
+ mh_debug_reg29_reg = (mh_debug_reg29_reg & ~MH_DEBUG_REG29_EFF2_LRU_WINNER_out_MASK) | (eff2_lru_winner_out << MH_DEBUG_REG29_EFF2_LRU_WINNER_out_SHIFT)
+#define MH_DEBUG_REG29_SET_LEAST_RECENT_INDEX_d(mh_debug_reg29_reg, least_recent_index_d) \
+ mh_debug_reg29_reg = (mh_debug_reg29_reg & ~MH_DEBUG_REG29_LEAST_RECENT_INDEX_d_MASK) | (least_recent_index_d << MH_DEBUG_REG29_LEAST_RECENT_INDEX_d_SHIFT)
+#define MH_DEBUG_REG29_SET_LEAST_RECENT_d(mh_debug_reg29_reg, least_recent_d) \
+ mh_debug_reg29_reg = (mh_debug_reg29_reg & ~MH_DEBUG_REG29_LEAST_RECENT_d_MASK) | (least_recent_d << MH_DEBUG_REG29_LEAST_RECENT_d_SHIFT)
+#define MH_DEBUG_REG29_SET_UPDATE_RECENT_STACK_d(mh_debug_reg29_reg, update_recent_stack_d) \
+ mh_debug_reg29_reg = (mh_debug_reg29_reg & ~MH_DEBUG_REG29_UPDATE_RECENT_STACK_d_MASK) | (update_recent_stack_d << MH_DEBUG_REG29_UPDATE_RECENT_STACK_d_SHIFT)
+#define MH_DEBUG_REG29_SET_ARB_HOLD(mh_debug_reg29_reg, arb_hold) \
+ mh_debug_reg29_reg = (mh_debug_reg29_reg & ~MH_DEBUG_REG29_ARB_HOLD_MASK) | (arb_hold << MH_DEBUG_REG29_ARB_HOLD_SHIFT)
+#define MH_DEBUG_REG29_SET_ARB_RTR_q(mh_debug_reg29_reg, arb_rtr_q) \
+ mh_debug_reg29_reg = (mh_debug_reg29_reg & ~MH_DEBUG_REG29_ARB_RTR_q_MASK) | (arb_rtr_q << MH_DEBUG_REG29_ARB_RTR_q_SHIFT)
+#define MH_DEBUG_REG29_SET_CLNT_REQ(mh_debug_reg29_reg, clnt_req) \
+ mh_debug_reg29_reg = (mh_debug_reg29_reg & ~MH_DEBUG_REG29_CLNT_REQ_MASK) | (clnt_req << MH_DEBUG_REG29_CLNT_REQ_SHIFT)
+#define MH_DEBUG_REG29_SET_RECENT_d_0(mh_debug_reg29_reg, recent_d_0) \
+ mh_debug_reg29_reg = (mh_debug_reg29_reg & ~MH_DEBUG_REG29_RECENT_d_0_MASK) | (recent_d_0 << MH_DEBUG_REG29_RECENT_d_0_SHIFT)
+#define MH_DEBUG_REG29_SET_RECENT_d_1(mh_debug_reg29_reg, recent_d_1) \
+ mh_debug_reg29_reg = (mh_debug_reg29_reg & ~MH_DEBUG_REG29_RECENT_d_1_MASK) | (recent_d_1 << MH_DEBUG_REG29_RECENT_d_1_SHIFT)
+#define MH_DEBUG_REG29_SET_RECENT_d_2(mh_debug_reg29_reg, recent_d_2) \
+ mh_debug_reg29_reg = (mh_debug_reg29_reg & ~MH_DEBUG_REG29_RECENT_d_2_MASK) | (recent_d_2 << MH_DEBUG_REG29_RECENT_d_2_SHIFT)
+#define MH_DEBUG_REG29_SET_RECENT_d_3(mh_debug_reg29_reg, recent_d_3) \
+ mh_debug_reg29_reg = (mh_debug_reg29_reg & ~MH_DEBUG_REG29_RECENT_d_3_MASK) | (recent_d_3 << MH_DEBUG_REG29_RECENT_d_3_SHIFT)
+#define MH_DEBUG_REG29_SET_RECENT_d_4(mh_debug_reg29_reg, recent_d_4) \
+ mh_debug_reg29_reg = (mh_debug_reg29_reg & ~MH_DEBUG_REG29_RECENT_d_4_MASK) | (recent_d_4 << MH_DEBUG_REG29_RECENT_d_4_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg29_t {
+ unsigned int eff2_lru_winner_out : MH_DEBUG_REG29_EFF2_LRU_WINNER_out_SIZE;
+ unsigned int least_recent_index_d : MH_DEBUG_REG29_LEAST_RECENT_INDEX_d_SIZE;
+ unsigned int least_recent_d : MH_DEBUG_REG29_LEAST_RECENT_d_SIZE;
+ unsigned int update_recent_stack_d : MH_DEBUG_REG29_UPDATE_RECENT_STACK_d_SIZE;
+ unsigned int arb_hold : MH_DEBUG_REG29_ARB_HOLD_SIZE;
+ unsigned int arb_rtr_q : MH_DEBUG_REG29_ARB_RTR_q_SIZE;
+ unsigned int clnt_req : MH_DEBUG_REG29_CLNT_REQ_SIZE;
+ unsigned int recent_d_0 : MH_DEBUG_REG29_RECENT_d_0_SIZE;
+ unsigned int recent_d_1 : MH_DEBUG_REG29_RECENT_d_1_SIZE;
+ unsigned int recent_d_2 : MH_DEBUG_REG29_RECENT_d_2_SIZE;
+ unsigned int recent_d_3 : MH_DEBUG_REG29_RECENT_d_3_SIZE;
+ unsigned int recent_d_4 : MH_DEBUG_REG29_RECENT_d_4_SIZE;
+ } mh_debug_reg29_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg29_t {
+ unsigned int recent_d_4 : MH_DEBUG_REG29_RECENT_d_4_SIZE;
+ unsigned int recent_d_3 : MH_DEBUG_REG29_RECENT_d_3_SIZE;
+ unsigned int recent_d_2 : MH_DEBUG_REG29_RECENT_d_2_SIZE;
+ unsigned int recent_d_1 : MH_DEBUG_REG29_RECENT_d_1_SIZE;
+ unsigned int recent_d_0 : MH_DEBUG_REG29_RECENT_d_0_SIZE;
+ unsigned int clnt_req : MH_DEBUG_REG29_CLNT_REQ_SIZE;
+ unsigned int arb_rtr_q : MH_DEBUG_REG29_ARB_RTR_q_SIZE;
+ unsigned int arb_hold : MH_DEBUG_REG29_ARB_HOLD_SIZE;
+ unsigned int update_recent_stack_d : MH_DEBUG_REG29_UPDATE_RECENT_STACK_d_SIZE;
+ unsigned int least_recent_d : MH_DEBUG_REG29_LEAST_RECENT_d_SIZE;
+ unsigned int least_recent_index_d : MH_DEBUG_REG29_LEAST_RECENT_INDEX_d_SIZE;
+ unsigned int eff2_lru_winner_out : MH_DEBUG_REG29_EFF2_LRU_WINNER_out_SIZE;
+ } mh_debug_reg29_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg29_t f;
+} mh_debug_reg29_u;
+
+
+/*
+ * MH_DEBUG_REG30 struct
+ */
+
+#define MH_DEBUG_REG30_TC_ARB_HOLD_SIZE 1
+#define MH_DEBUG_REG30_TC_NOROQ_SAME_ROW_BANK_SIZE 1
+#define MH_DEBUG_REG30_TC_ROQ_SAME_ROW_BANK_SIZE 1
+#define MH_DEBUG_REG30_TCD_NEARFULL_q_SIZE 1
+#define MH_DEBUG_REG30_TCHOLD_IP_q_SIZE 1
+#define MH_DEBUG_REG30_TCHOLD_CNT_q_SIZE 3
+#define MH_DEBUG_REG30_MH_ARBITER_CONFIG_TC_REORDER_ENABLE_SIZE 1
+#define MH_DEBUG_REG30_TC_ROQ_RTR_DBG_q_SIZE 1
+#define MH_DEBUG_REG30_TC_ROQ_SEND_q_SIZE 1
+#define MH_DEBUG_REG30_TC_MH_written_SIZE 1
+#define MH_DEBUG_REG30_TCD_FULLNESS_CNT_q_SIZE 7
+#define MH_DEBUG_REG30_WBURST_ACTIVE_SIZE 1
+#define MH_DEBUG_REG30_WLAST_q_SIZE 1
+#define MH_DEBUG_REG30_WBURST_IP_q_SIZE 1
+#define MH_DEBUG_REG30_WBURST_CNT_q_SIZE 3
+#define MH_DEBUG_REG30_CP_SEND_QUAL_SIZE 1
+#define MH_DEBUG_REG30_CP_MH_write_SIZE 1
+#define MH_DEBUG_REG30_RB_SEND_QUAL_SIZE 1
+#define MH_DEBUG_REG30_PA_SEND_QUAL_SIZE 1
+#define MH_DEBUG_REG30_ARB_WINNER_SIZE 3
+
+#define MH_DEBUG_REG30_TC_ARB_HOLD_SHIFT 0
+#define MH_DEBUG_REG30_TC_NOROQ_SAME_ROW_BANK_SHIFT 1
+#define MH_DEBUG_REG30_TC_ROQ_SAME_ROW_BANK_SHIFT 2
+#define MH_DEBUG_REG30_TCD_NEARFULL_q_SHIFT 3
+#define MH_DEBUG_REG30_TCHOLD_IP_q_SHIFT 4
+#define MH_DEBUG_REG30_TCHOLD_CNT_q_SHIFT 5
+#define MH_DEBUG_REG30_MH_ARBITER_CONFIG_TC_REORDER_ENABLE_SHIFT 8
+#define MH_DEBUG_REG30_TC_ROQ_RTR_DBG_q_SHIFT 9
+#define MH_DEBUG_REG30_TC_ROQ_SEND_q_SHIFT 10
+#define MH_DEBUG_REG30_TC_MH_written_SHIFT 11
+#define MH_DEBUG_REG30_TCD_FULLNESS_CNT_q_SHIFT 12
+#define MH_DEBUG_REG30_WBURST_ACTIVE_SHIFT 19
+#define MH_DEBUG_REG30_WLAST_q_SHIFT 20
+#define MH_DEBUG_REG30_WBURST_IP_q_SHIFT 21
+#define MH_DEBUG_REG30_WBURST_CNT_q_SHIFT 22
+#define MH_DEBUG_REG30_CP_SEND_QUAL_SHIFT 25
+#define MH_DEBUG_REG30_CP_MH_write_SHIFT 26
+#define MH_DEBUG_REG30_RB_SEND_QUAL_SHIFT 27
+#define MH_DEBUG_REG30_PA_SEND_QUAL_SHIFT 28
+#define MH_DEBUG_REG30_ARB_WINNER_SHIFT 29
+
+#define MH_DEBUG_REG30_TC_ARB_HOLD_MASK 0x00000001
+#define MH_DEBUG_REG30_TC_NOROQ_SAME_ROW_BANK_MASK 0x00000002
+#define MH_DEBUG_REG30_TC_ROQ_SAME_ROW_BANK_MASK 0x00000004
+#define MH_DEBUG_REG30_TCD_NEARFULL_q_MASK 0x00000008
+#define MH_DEBUG_REG30_TCHOLD_IP_q_MASK 0x00000010
+#define MH_DEBUG_REG30_TCHOLD_CNT_q_MASK 0x000000e0
+#define MH_DEBUG_REG30_MH_ARBITER_CONFIG_TC_REORDER_ENABLE_MASK 0x00000100
+#define MH_DEBUG_REG30_TC_ROQ_RTR_DBG_q_MASK 0x00000200
+#define MH_DEBUG_REG30_TC_ROQ_SEND_q_MASK 0x00000400
+#define MH_DEBUG_REG30_TC_MH_written_MASK 0x00000800
+#define MH_DEBUG_REG30_TCD_FULLNESS_CNT_q_MASK 0x0007f000
+#define MH_DEBUG_REG30_WBURST_ACTIVE_MASK 0x00080000
+#define MH_DEBUG_REG30_WLAST_q_MASK 0x00100000
+#define MH_DEBUG_REG30_WBURST_IP_q_MASK 0x00200000
+#define MH_DEBUG_REG30_WBURST_CNT_q_MASK 0x01c00000
+#define MH_DEBUG_REG30_CP_SEND_QUAL_MASK 0x02000000
+#define MH_DEBUG_REG30_CP_MH_write_MASK 0x04000000
+#define MH_DEBUG_REG30_RB_SEND_QUAL_MASK 0x08000000
+#define MH_DEBUG_REG30_PA_SEND_QUAL_MASK 0x10000000
+#define MH_DEBUG_REG30_ARB_WINNER_MASK 0xe0000000
+
+#define MH_DEBUG_REG30_MASK \
+ (MH_DEBUG_REG30_TC_ARB_HOLD_MASK | \
+ MH_DEBUG_REG30_TC_NOROQ_SAME_ROW_BANK_MASK | \
+ MH_DEBUG_REG30_TC_ROQ_SAME_ROW_BANK_MASK | \
+ MH_DEBUG_REG30_TCD_NEARFULL_q_MASK | \
+ MH_DEBUG_REG30_TCHOLD_IP_q_MASK | \
+ MH_DEBUG_REG30_TCHOLD_CNT_q_MASK | \
+ MH_DEBUG_REG30_MH_ARBITER_CONFIG_TC_REORDER_ENABLE_MASK | \
+ MH_DEBUG_REG30_TC_ROQ_RTR_DBG_q_MASK | \
+ MH_DEBUG_REG30_TC_ROQ_SEND_q_MASK | \
+ MH_DEBUG_REG30_TC_MH_written_MASK | \
+ MH_DEBUG_REG30_TCD_FULLNESS_CNT_q_MASK | \
+ MH_DEBUG_REG30_WBURST_ACTIVE_MASK | \
+ MH_DEBUG_REG30_WLAST_q_MASK | \
+ MH_DEBUG_REG30_WBURST_IP_q_MASK | \
+ MH_DEBUG_REG30_WBURST_CNT_q_MASK | \
+ MH_DEBUG_REG30_CP_SEND_QUAL_MASK | \
+ MH_DEBUG_REG30_CP_MH_write_MASK | \
+ MH_DEBUG_REG30_RB_SEND_QUAL_MASK | \
+ MH_DEBUG_REG30_PA_SEND_QUAL_MASK | \
+ MH_DEBUG_REG30_ARB_WINNER_MASK)
+
+#define MH_DEBUG_REG30(tc_arb_hold, tc_noroq_same_row_bank, tc_roq_same_row_bank, tcd_nearfull_q, tchold_ip_q, tchold_cnt_q, mh_arbiter_config_tc_reorder_enable, tc_roq_rtr_dbg_q, tc_roq_send_q, tc_mh_written, tcd_fullness_cnt_q, wburst_active, wlast_q, wburst_ip_q, wburst_cnt_q, cp_send_qual, cp_mh_write, rb_send_qual, pa_send_qual, arb_winner) \
+ ((tc_arb_hold << MH_DEBUG_REG30_TC_ARB_HOLD_SHIFT) | \
+ (tc_noroq_same_row_bank << MH_DEBUG_REG30_TC_NOROQ_SAME_ROW_BANK_SHIFT) | \
+ (tc_roq_same_row_bank << MH_DEBUG_REG30_TC_ROQ_SAME_ROW_BANK_SHIFT) | \
+ (tcd_nearfull_q << MH_DEBUG_REG30_TCD_NEARFULL_q_SHIFT) | \
+ (tchold_ip_q << MH_DEBUG_REG30_TCHOLD_IP_q_SHIFT) | \
+ (tchold_cnt_q << MH_DEBUG_REG30_TCHOLD_CNT_q_SHIFT) | \
+ (mh_arbiter_config_tc_reorder_enable << MH_DEBUG_REG30_MH_ARBITER_CONFIG_TC_REORDER_ENABLE_SHIFT) | \
+ (tc_roq_rtr_dbg_q << MH_DEBUG_REG30_TC_ROQ_RTR_DBG_q_SHIFT) | \
+ (tc_roq_send_q << MH_DEBUG_REG30_TC_ROQ_SEND_q_SHIFT) | \
+ (tc_mh_written << MH_DEBUG_REG30_TC_MH_written_SHIFT) | \
+ (tcd_fullness_cnt_q << MH_DEBUG_REG30_TCD_FULLNESS_CNT_q_SHIFT) | \
+ (wburst_active << MH_DEBUG_REG30_WBURST_ACTIVE_SHIFT) | \
+ (wlast_q << MH_DEBUG_REG30_WLAST_q_SHIFT) | \
+ (wburst_ip_q << MH_DEBUG_REG30_WBURST_IP_q_SHIFT) | \
+ (wburst_cnt_q << MH_DEBUG_REG30_WBURST_CNT_q_SHIFT) | \
+ (cp_send_qual << MH_DEBUG_REG30_CP_SEND_QUAL_SHIFT) | \
+ (cp_mh_write << MH_DEBUG_REG30_CP_MH_write_SHIFT) | \
+ (rb_send_qual << MH_DEBUG_REG30_RB_SEND_QUAL_SHIFT) | \
+ (pa_send_qual << MH_DEBUG_REG30_PA_SEND_QUAL_SHIFT) | \
+ (arb_winner << MH_DEBUG_REG30_ARB_WINNER_SHIFT))
+
+#define MH_DEBUG_REG30_GET_TC_ARB_HOLD(mh_debug_reg30) \
+ ((mh_debug_reg30 & MH_DEBUG_REG30_TC_ARB_HOLD_MASK) >> MH_DEBUG_REG30_TC_ARB_HOLD_SHIFT)
+#define MH_DEBUG_REG30_GET_TC_NOROQ_SAME_ROW_BANK(mh_debug_reg30) \
+ ((mh_debug_reg30 & MH_DEBUG_REG30_TC_NOROQ_SAME_ROW_BANK_MASK) >> MH_DEBUG_REG30_TC_NOROQ_SAME_ROW_BANK_SHIFT)
+#define MH_DEBUG_REG30_GET_TC_ROQ_SAME_ROW_BANK(mh_debug_reg30) \
+ ((mh_debug_reg30 & MH_DEBUG_REG30_TC_ROQ_SAME_ROW_BANK_MASK) >> MH_DEBUG_REG30_TC_ROQ_SAME_ROW_BANK_SHIFT)
+#define MH_DEBUG_REG30_GET_TCD_NEARFULL_q(mh_debug_reg30) \
+ ((mh_debug_reg30 & MH_DEBUG_REG30_TCD_NEARFULL_q_MASK) >> MH_DEBUG_REG30_TCD_NEARFULL_q_SHIFT)
+#define MH_DEBUG_REG30_GET_TCHOLD_IP_q(mh_debug_reg30) \
+ ((mh_debug_reg30 & MH_DEBUG_REG30_TCHOLD_IP_q_MASK) >> MH_DEBUG_REG30_TCHOLD_IP_q_SHIFT)
+#define MH_DEBUG_REG30_GET_TCHOLD_CNT_q(mh_debug_reg30) \
+ ((mh_debug_reg30 & MH_DEBUG_REG30_TCHOLD_CNT_q_MASK) >> MH_DEBUG_REG30_TCHOLD_CNT_q_SHIFT)
+#define MH_DEBUG_REG30_GET_MH_ARBITER_CONFIG_TC_REORDER_ENABLE(mh_debug_reg30) \
+ ((mh_debug_reg30 & MH_DEBUG_REG30_MH_ARBITER_CONFIG_TC_REORDER_ENABLE_MASK) >> MH_DEBUG_REG30_MH_ARBITER_CONFIG_TC_REORDER_ENABLE_SHIFT)
+#define MH_DEBUG_REG30_GET_TC_ROQ_RTR_DBG_q(mh_debug_reg30) \
+ ((mh_debug_reg30 & MH_DEBUG_REG30_TC_ROQ_RTR_DBG_q_MASK) >> MH_DEBUG_REG30_TC_ROQ_RTR_DBG_q_SHIFT)
+#define MH_DEBUG_REG30_GET_TC_ROQ_SEND_q(mh_debug_reg30) \
+ ((mh_debug_reg30 & MH_DEBUG_REG30_TC_ROQ_SEND_q_MASK) >> MH_DEBUG_REG30_TC_ROQ_SEND_q_SHIFT)
+#define MH_DEBUG_REG30_GET_TC_MH_written(mh_debug_reg30) \
+ ((mh_debug_reg30 & MH_DEBUG_REG30_TC_MH_written_MASK) >> MH_DEBUG_REG30_TC_MH_written_SHIFT)
+#define MH_DEBUG_REG30_GET_TCD_FULLNESS_CNT_q(mh_debug_reg30) \
+ ((mh_debug_reg30 & MH_DEBUG_REG30_TCD_FULLNESS_CNT_q_MASK) >> MH_DEBUG_REG30_TCD_FULLNESS_CNT_q_SHIFT)
+#define MH_DEBUG_REG30_GET_WBURST_ACTIVE(mh_debug_reg30) \
+ ((mh_debug_reg30 & MH_DEBUG_REG30_WBURST_ACTIVE_MASK) >> MH_DEBUG_REG30_WBURST_ACTIVE_SHIFT)
+#define MH_DEBUG_REG30_GET_WLAST_q(mh_debug_reg30) \
+ ((mh_debug_reg30 & MH_DEBUG_REG30_WLAST_q_MASK) >> MH_DEBUG_REG30_WLAST_q_SHIFT)
+#define MH_DEBUG_REG30_GET_WBURST_IP_q(mh_debug_reg30) \
+ ((mh_debug_reg30 & MH_DEBUG_REG30_WBURST_IP_q_MASK) >> MH_DEBUG_REG30_WBURST_IP_q_SHIFT)
+#define MH_DEBUG_REG30_GET_WBURST_CNT_q(mh_debug_reg30) \
+ ((mh_debug_reg30 & MH_DEBUG_REG30_WBURST_CNT_q_MASK) >> MH_DEBUG_REG30_WBURST_CNT_q_SHIFT)
+#define MH_DEBUG_REG30_GET_CP_SEND_QUAL(mh_debug_reg30) \
+ ((mh_debug_reg30 & MH_DEBUG_REG30_CP_SEND_QUAL_MASK) >> MH_DEBUG_REG30_CP_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG30_GET_CP_MH_write(mh_debug_reg30) \
+ ((mh_debug_reg30 & MH_DEBUG_REG30_CP_MH_write_MASK) >> MH_DEBUG_REG30_CP_MH_write_SHIFT)
+#define MH_DEBUG_REG30_GET_RB_SEND_QUAL(mh_debug_reg30) \
+ ((mh_debug_reg30 & MH_DEBUG_REG30_RB_SEND_QUAL_MASK) >> MH_DEBUG_REG30_RB_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG30_GET_PA_SEND_QUAL(mh_debug_reg30) \
+ ((mh_debug_reg30 & MH_DEBUG_REG30_PA_SEND_QUAL_MASK) >> MH_DEBUG_REG30_PA_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG30_GET_ARB_WINNER(mh_debug_reg30) \
+ ((mh_debug_reg30 & MH_DEBUG_REG30_ARB_WINNER_MASK) >> MH_DEBUG_REG30_ARB_WINNER_SHIFT)
+
+#define MH_DEBUG_REG30_SET_TC_ARB_HOLD(mh_debug_reg30_reg, tc_arb_hold) \
+ mh_debug_reg30_reg = (mh_debug_reg30_reg & ~MH_DEBUG_REG30_TC_ARB_HOLD_MASK) | (tc_arb_hold << MH_DEBUG_REG30_TC_ARB_HOLD_SHIFT)
+#define MH_DEBUG_REG30_SET_TC_NOROQ_SAME_ROW_BANK(mh_debug_reg30_reg, tc_noroq_same_row_bank) \
+ mh_debug_reg30_reg = (mh_debug_reg30_reg & ~MH_DEBUG_REG30_TC_NOROQ_SAME_ROW_BANK_MASK) | (tc_noroq_same_row_bank << MH_DEBUG_REG30_TC_NOROQ_SAME_ROW_BANK_SHIFT)
+#define MH_DEBUG_REG30_SET_TC_ROQ_SAME_ROW_BANK(mh_debug_reg30_reg, tc_roq_same_row_bank) \
+ mh_debug_reg30_reg = (mh_debug_reg30_reg & ~MH_DEBUG_REG30_TC_ROQ_SAME_ROW_BANK_MASK) | (tc_roq_same_row_bank << MH_DEBUG_REG30_TC_ROQ_SAME_ROW_BANK_SHIFT)
+#define MH_DEBUG_REG30_SET_TCD_NEARFULL_q(mh_debug_reg30_reg, tcd_nearfull_q) \
+ mh_debug_reg30_reg = (mh_debug_reg30_reg & ~MH_DEBUG_REG30_TCD_NEARFULL_q_MASK) | (tcd_nearfull_q << MH_DEBUG_REG30_TCD_NEARFULL_q_SHIFT)
+#define MH_DEBUG_REG30_SET_TCHOLD_IP_q(mh_debug_reg30_reg, tchold_ip_q) \
+ mh_debug_reg30_reg = (mh_debug_reg30_reg & ~MH_DEBUG_REG30_TCHOLD_IP_q_MASK) | (tchold_ip_q << MH_DEBUG_REG30_TCHOLD_IP_q_SHIFT)
+#define MH_DEBUG_REG30_SET_TCHOLD_CNT_q(mh_debug_reg30_reg, tchold_cnt_q) \
+ mh_debug_reg30_reg = (mh_debug_reg30_reg & ~MH_DEBUG_REG30_TCHOLD_CNT_q_MASK) | (tchold_cnt_q << MH_DEBUG_REG30_TCHOLD_CNT_q_SHIFT)
+#define MH_DEBUG_REG30_SET_MH_ARBITER_CONFIG_TC_REORDER_ENABLE(mh_debug_reg30_reg, mh_arbiter_config_tc_reorder_enable) \
+ mh_debug_reg30_reg = (mh_debug_reg30_reg & ~MH_DEBUG_REG30_MH_ARBITER_CONFIG_TC_REORDER_ENABLE_MASK) | (mh_arbiter_config_tc_reorder_enable << MH_DEBUG_REG30_MH_ARBITER_CONFIG_TC_REORDER_ENABLE_SHIFT)
+#define MH_DEBUG_REG30_SET_TC_ROQ_RTR_DBG_q(mh_debug_reg30_reg, tc_roq_rtr_dbg_q) \
+ mh_debug_reg30_reg = (mh_debug_reg30_reg & ~MH_DEBUG_REG30_TC_ROQ_RTR_DBG_q_MASK) | (tc_roq_rtr_dbg_q << MH_DEBUG_REG30_TC_ROQ_RTR_DBG_q_SHIFT)
+#define MH_DEBUG_REG30_SET_TC_ROQ_SEND_q(mh_debug_reg30_reg, tc_roq_send_q) \
+ mh_debug_reg30_reg = (mh_debug_reg30_reg & ~MH_DEBUG_REG30_TC_ROQ_SEND_q_MASK) | (tc_roq_send_q << MH_DEBUG_REG30_TC_ROQ_SEND_q_SHIFT)
+#define MH_DEBUG_REG30_SET_TC_MH_written(mh_debug_reg30_reg, tc_mh_written) \
+ mh_debug_reg30_reg = (mh_debug_reg30_reg & ~MH_DEBUG_REG30_TC_MH_written_MASK) | (tc_mh_written << MH_DEBUG_REG30_TC_MH_written_SHIFT)
+#define MH_DEBUG_REG30_SET_TCD_FULLNESS_CNT_q(mh_debug_reg30_reg, tcd_fullness_cnt_q) \
+ mh_debug_reg30_reg = (mh_debug_reg30_reg & ~MH_DEBUG_REG30_TCD_FULLNESS_CNT_q_MASK) | (tcd_fullness_cnt_q << MH_DEBUG_REG30_TCD_FULLNESS_CNT_q_SHIFT)
+#define MH_DEBUG_REG30_SET_WBURST_ACTIVE(mh_debug_reg30_reg, wburst_active) \
+ mh_debug_reg30_reg = (mh_debug_reg30_reg & ~MH_DEBUG_REG30_WBURST_ACTIVE_MASK) | (wburst_active << MH_DEBUG_REG30_WBURST_ACTIVE_SHIFT)
+#define MH_DEBUG_REG30_SET_WLAST_q(mh_debug_reg30_reg, wlast_q) \
+ mh_debug_reg30_reg = (mh_debug_reg30_reg & ~MH_DEBUG_REG30_WLAST_q_MASK) | (wlast_q << MH_DEBUG_REG30_WLAST_q_SHIFT)
+#define MH_DEBUG_REG30_SET_WBURST_IP_q(mh_debug_reg30_reg, wburst_ip_q) \
+ mh_debug_reg30_reg = (mh_debug_reg30_reg & ~MH_DEBUG_REG30_WBURST_IP_q_MASK) | (wburst_ip_q << MH_DEBUG_REG30_WBURST_IP_q_SHIFT)
+#define MH_DEBUG_REG30_SET_WBURST_CNT_q(mh_debug_reg30_reg, wburst_cnt_q) \
+ mh_debug_reg30_reg = (mh_debug_reg30_reg & ~MH_DEBUG_REG30_WBURST_CNT_q_MASK) | (wburst_cnt_q << MH_DEBUG_REG30_WBURST_CNT_q_SHIFT)
+#define MH_DEBUG_REG30_SET_CP_SEND_QUAL(mh_debug_reg30_reg, cp_send_qual) \
+ mh_debug_reg30_reg = (mh_debug_reg30_reg & ~MH_DEBUG_REG30_CP_SEND_QUAL_MASK) | (cp_send_qual << MH_DEBUG_REG30_CP_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG30_SET_CP_MH_write(mh_debug_reg30_reg, cp_mh_write) \
+ mh_debug_reg30_reg = (mh_debug_reg30_reg & ~MH_DEBUG_REG30_CP_MH_write_MASK) | (cp_mh_write << MH_DEBUG_REG30_CP_MH_write_SHIFT)
+#define MH_DEBUG_REG30_SET_RB_SEND_QUAL(mh_debug_reg30_reg, rb_send_qual) \
+ mh_debug_reg30_reg = (mh_debug_reg30_reg & ~MH_DEBUG_REG30_RB_SEND_QUAL_MASK) | (rb_send_qual << MH_DEBUG_REG30_RB_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG30_SET_PA_SEND_QUAL(mh_debug_reg30_reg, pa_send_qual) \
+ mh_debug_reg30_reg = (mh_debug_reg30_reg & ~MH_DEBUG_REG30_PA_SEND_QUAL_MASK) | (pa_send_qual << MH_DEBUG_REG30_PA_SEND_QUAL_SHIFT)
+#define MH_DEBUG_REG30_SET_ARB_WINNER(mh_debug_reg30_reg, arb_winner) \
+ mh_debug_reg30_reg = (mh_debug_reg30_reg & ~MH_DEBUG_REG30_ARB_WINNER_MASK) | (arb_winner << MH_DEBUG_REG30_ARB_WINNER_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg30_t {
+ unsigned int tc_arb_hold : MH_DEBUG_REG30_TC_ARB_HOLD_SIZE;
+ unsigned int tc_noroq_same_row_bank : MH_DEBUG_REG30_TC_NOROQ_SAME_ROW_BANK_SIZE;
+ unsigned int tc_roq_same_row_bank : MH_DEBUG_REG30_TC_ROQ_SAME_ROW_BANK_SIZE;
+ unsigned int tcd_nearfull_q : MH_DEBUG_REG30_TCD_NEARFULL_q_SIZE;
+ unsigned int tchold_ip_q : MH_DEBUG_REG30_TCHOLD_IP_q_SIZE;
+ unsigned int tchold_cnt_q : MH_DEBUG_REG30_TCHOLD_CNT_q_SIZE;
+ unsigned int mh_arbiter_config_tc_reorder_enable : MH_DEBUG_REG30_MH_ARBITER_CONFIG_TC_REORDER_ENABLE_SIZE;
+ unsigned int tc_roq_rtr_dbg_q : MH_DEBUG_REG30_TC_ROQ_RTR_DBG_q_SIZE;
+ unsigned int tc_roq_send_q : MH_DEBUG_REG30_TC_ROQ_SEND_q_SIZE;
+ unsigned int tc_mh_written : MH_DEBUG_REG30_TC_MH_written_SIZE;
+ unsigned int tcd_fullness_cnt_q : MH_DEBUG_REG30_TCD_FULLNESS_CNT_q_SIZE;
+ unsigned int wburst_active : MH_DEBUG_REG30_WBURST_ACTIVE_SIZE;
+ unsigned int wlast_q : MH_DEBUG_REG30_WLAST_q_SIZE;
+ unsigned int wburst_ip_q : MH_DEBUG_REG30_WBURST_IP_q_SIZE;
+ unsigned int wburst_cnt_q : MH_DEBUG_REG30_WBURST_CNT_q_SIZE;
+ unsigned int cp_send_qual : MH_DEBUG_REG30_CP_SEND_QUAL_SIZE;
+ unsigned int cp_mh_write : MH_DEBUG_REG30_CP_MH_write_SIZE;
+ unsigned int rb_send_qual : MH_DEBUG_REG30_RB_SEND_QUAL_SIZE;
+ unsigned int pa_send_qual : MH_DEBUG_REG30_PA_SEND_QUAL_SIZE;
+ unsigned int arb_winner : MH_DEBUG_REG30_ARB_WINNER_SIZE;
+ } mh_debug_reg30_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg30_t {
+ unsigned int arb_winner : MH_DEBUG_REG30_ARB_WINNER_SIZE;
+ unsigned int pa_send_qual : MH_DEBUG_REG30_PA_SEND_QUAL_SIZE;
+ unsigned int rb_send_qual : MH_DEBUG_REG30_RB_SEND_QUAL_SIZE;
+ unsigned int cp_mh_write : MH_DEBUG_REG30_CP_MH_write_SIZE;
+ unsigned int cp_send_qual : MH_DEBUG_REG30_CP_SEND_QUAL_SIZE;
+ unsigned int wburst_cnt_q : MH_DEBUG_REG30_WBURST_CNT_q_SIZE;
+ unsigned int wburst_ip_q : MH_DEBUG_REG30_WBURST_IP_q_SIZE;
+ unsigned int wlast_q : MH_DEBUG_REG30_WLAST_q_SIZE;
+ unsigned int wburst_active : MH_DEBUG_REG30_WBURST_ACTIVE_SIZE;
+ unsigned int tcd_fullness_cnt_q : MH_DEBUG_REG30_TCD_FULLNESS_CNT_q_SIZE;
+ unsigned int tc_mh_written : MH_DEBUG_REG30_TC_MH_written_SIZE;
+ unsigned int tc_roq_send_q : MH_DEBUG_REG30_TC_ROQ_SEND_q_SIZE;
+ unsigned int tc_roq_rtr_dbg_q : MH_DEBUG_REG30_TC_ROQ_RTR_DBG_q_SIZE;
+ unsigned int mh_arbiter_config_tc_reorder_enable : MH_DEBUG_REG30_MH_ARBITER_CONFIG_TC_REORDER_ENABLE_SIZE;
+ unsigned int tchold_cnt_q : MH_DEBUG_REG30_TCHOLD_CNT_q_SIZE;
+ unsigned int tchold_ip_q : MH_DEBUG_REG30_TCHOLD_IP_q_SIZE;
+ unsigned int tcd_nearfull_q : MH_DEBUG_REG30_TCD_NEARFULL_q_SIZE;
+ unsigned int tc_roq_same_row_bank : MH_DEBUG_REG30_TC_ROQ_SAME_ROW_BANK_SIZE;
+ unsigned int tc_noroq_same_row_bank : MH_DEBUG_REG30_TC_NOROQ_SAME_ROW_BANK_SIZE;
+ unsigned int tc_arb_hold : MH_DEBUG_REG30_TC_ARB_HOLD_SIZE;
+ } mh_debug_reg30_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg30_t f;
+} mh_debug_reg30_u;
+
+
+/*
+ * MH_DEBUG_REG31 struct
+ */
+
+#define MH_DEBUG_REG31_RF_ARBITER_CONFIG_q_SIZE 26
+#define MH_DEBUG_REG31_MH_CLNT_AXI_ID_REUSE_MMUr_ID_SIZE 3
+
+#define MH_DEBUG_REG31_RF_ARBITER_CONFIG_q_SHIFT 0
+#define MH_DEBUG_REG31_MH_CLNT_AXI_ID_REUSE_MMUr_ID_SHIFT 26
+
+#define MH_DEBUG_REG31_RF_ARBITER_CONFIG_q_MASK 0x03ffffff
+#define MH_DEBUG_REG31_MH_CLNT_AXI_ID_REUSE_MMUr_ID_MASK 0x1c000000
+
+#define MH_DEBUG_REG31_MASK \
+ (MH_DEBUG_REG31_RF_ARBITER_CONFIG_q_MASK | \
+ MH_DEBUG_REG31_MH_CLNT_AXI_ID_REUSE_MMUr_ID_MASK)
+
+#define MH_DEBUG_REG31(rf_arbiter_config_q, mh_clnt_axi_id_reuse_mmur_id) \
+ ((rf_arbiter_config_q << MH_DEBUG_REG31_RF_ARBITER_CONFIG_q_SHIFT) | \
+ (mh_clnt_axi_id_reuse_mmur_id << MH_DEBUG_REG31_MH_CLNT_AXI_ID_REUSE_MMUr_ID_SHIFT))
+
+#define MH_DEBUG_REG31_GET_RF_ARBITER_CONFIG_q(mh_debug_reg31) \
+ ((mh_debug_reg31 & MH_DEBUG_REG31_RF_ARBITER_CONFIG_q_MASK) >> MH_DEBUG_REG31_RF_ARBITER_CONFIG_q_SHIFT)
+#define MH_DEBUG_REG31_GET_MH_CLNT_AXI_ID_REUSE_MMUr_ID(mh_debug_reg31) \
+ ((mh_debug_reg31 & MH_DEBUG_REG31_MH_CLNT_AXI_ID_REUSE_MMUr_ID_MASK) >> MH_DEBUG_REG31_MH_CLNT_AXI_ID_REUSE_MMUr_ID_SHIFT)
+
+#define MH_DEBUG_REG31_SET_RF_ARBITER_CONFIG_q(mh_debug_reg31_reg, rf_arbiter_config_q) \
+ mh_debug_reg31_reg = (mh_debug_reg31_reg & ~MH_DEBUG_REG31_RF_ARBITER_CONFIG_q_MASK) | (rf_arbiter_config_q << MH_DEBUG_REG31_RF_ARBITER_CONFIG_q_SHIFT)
+#define MH_DEBUG_REG31_SET_MH_CLNT_AXI_ID_REUSE_MMUr_ID(mh_debug_reg31_reg, mh_clnt_axi_id_reuse_mmur_id) \
+ mh_debug_reg31_reg = (mh_debug_reg31_reg & ~MH_DEBUG_REG31_MH_CLNT_AXI_ID_REUSE_MMUr_ID_MASK) | (mh_clnt_axi_id_reuse_mmur_id << MH_DEBUG_REG31_MH_CLNT_AXI_ID_REUSE_MMUr_ID_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg31_t {
+ unsigned int rf_arbiter_config_q : MH_DEBUG_REG31_RF_ARBITER_CONFIG_q_SIZE;
+ unsigned int mh_clnt_axi_id_reuse_mmur_id : MH_DEBUG_REG31_MH_CLNT_AXI_ID_REUSE_MMUr_ID_SIZE;
+ unsigned int : 3;
+ } mh_debug_reg31_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg31_t {
+ unsigned int : 3;
+ unsigned int mh_clnt_axi_id_reuse_mmur_id : MH_DEBUG_REG31_MH_CLNT_AXI_ID_REUSE_MMUr_ID_SIZE;
+ unsigned int rf_arbiter_config_q : MH_DEBUG_REG31_RF_ARBITER_CONFIG_q_SIZE;
+ } mh_debug_reg31_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg31_t f;
+} mh_debug_reg31_u;
+
+
+/*
+ * MH_DEBUG_REG32 struct
+ */
+
+#define MH_DEBUG_REG32_SAME_ROW_BANK_q_SIZE 8
+#define MH_DEBUG_REG32_ROQ_MARK_q_SIZE 8
+#define MH_DEBUG_REG32_ROQ_VALID_q_SIZE 8
+#define MH_DEBUG_REG32_TC_MH_send_SIZE 1
+#define MH_DEBUG_REG32_TC_ROQ_RTR_q_SIZE 1
+#define MH_DEBUG_REG32_KILL_EFF1_SIZE 1
+#define MH_DEBUG_REG32_TC_ROQ_SAME_ROW_BANK_SEL_SIZE 1
+#define MH_DEBUG_REG32_ANY_SAME_ROW_BANK_SIZE 1
+#define MH_DEBUG_REG32_TC_EFF1_QUAL_SIZE 1
+#define MH_DEBUG_REG32_TC_ROQ_EMPTY_SIZE 1
+#define MH_DEBUG_REG32_TC_ROQ_FULL_SIZE 1
+
+#define MH_DEBUG_REG32_SAME_ROW_BANK_q_SHIFT 0
+#define MH_DEBUG_REG32_ROQ_MARK_q_SHIFT 8
+#define MH_DEBUG_REG32_ROQ_VALID_q_SHIFT 16
+#define MH_DEBUG_REG32_TC_MH_send_SHIFT 24
+#define MH_DEBUG_REG32_TC_ROQ_RTR_q_SHIFT 25
+#define MH_DEBUG_REG32_KILL_EFF1_SHIFT 26
+#define MH_DEBUG_REG32_TC_ROQ_SAME_ROW_BANK_SEL_SHIFT 27
+#define MH_DEBUG_REG32_ANY_SAME_ROW_BANK_SHIFT 28
+#define MH_DEBUG_REG32_TC_EFF1_QUAL_SHIFT 29
+#define MH_DEBUG_REG32_TC_ROQ_EMPTY_SHIFT 30
+#define MH_DEBUG_REG32_TC_ROQ_FULL_SHIFT 31
+
+#define MH_DEBUG_REG32_SAME_ROW_BANK_q_MASK 0x000000ff
+#define MH_DEBUG_REG32_ROQ_MARK_q_MASK 0x0000ff00
+#define MH_DEBUG_REG32_ROQ_VALID_q_MASK 0x00ff0000
+#define MH_DEBUG_REG32_TC_MH_send_MASK 0x01000000
+#define MH_DEBUG_REG32_TC_ROQ_RTR_q_MASK 0x02000000
+#define MH_DEBUG_REG32_KILL_EFF1_MASK 0x04000000
+#define MH_DEBUG_REG32_TC_ROQ_SAME_ROW_BANK_SEL_MASK 0x08000000
+#define MH_DEBUG_REG32_ANY_SAME_ROW_BANK_MASK 0x10000000
+#define MH_DEBUG_REG32_TC_EFF1_QUAL_MASK 0x20000000
+#define MH_DEBUG_REG32_TC_ROQ_EMPTY_MASK 0x40000000
+#define MH_DEBUG_REG32_TC_ROQ_FULL_MASK 0x80000000
+
+#define MH_DEBUG_REG32_MASK \
+ (MH_DEBUG_REG32_SAME_ROW_BANK_q_MASK | \
+ MH_DEBUG_REG32_ROQ_MARK_q_MASK | \
+ MH_DEBUG_REG32_ROQ_VALID_q_MASK | \
+ MH_DEBUG_REG32_TC_MH_send_MASK | \
+ MH_DEBUG_REG32_TC_ROQ_RTR_q_MASK | \
+ MH_DEBUG_REG32_KILL_EFF1_MASK | \
+ MH_DEBUG_REG32_TC_ROQ_SAME_ROW_BANK_SEL_MASK | \
+ MH_DEBUG_REG32_ANY_SAME_ROW_BANK_MASK | \
+ MH_DEBUG_REG32_TC_EFF1_QUAL_MASK | \
+ MH_DEBUG_REG32_TC_ROQ_EMPTY_MASK | \
+ MH_DEBUG_REG32_TC_ROQ_FULL_MASK)
+
+#define MH_DEBUG_REG32(same_row_bank_q, roq_mark_q, roq_valid_q, tc_mh_send, tc_roq_rtr_q, kill_eff1, tc_roq_same_row_bank_sel, any_same_row_bank, tc_eff1_qual, tc_roq_empty, tc_roq_full) \
+ ((same_row_bank_q << MH_DEBUG_REG32_SAME_ROW_BANK_q_SHIFT) | \
+ (roq_mark_q << MH_DEBUG_REG32_ROQ_MARK_q_SHIFT) | \
+ (roq_valid_q << MH_DEBUG_REG32_ROQ_VALID_q_SHIFT) | \
+ (tc_mh_send << MH_DEBUG_REG32_TC_MH_send_SHIFT) | \
+ (tc_roq_rtr_q << MH_DEBUG_REG32_TC_ROQ_RTR_q_SHIFT) | \
+ (kill_eff1 << MH_DEBUG_REG32_KILL_EFF1_SHIFT) | \
+ (tc_roq_same_row_bank_sel << MH_DEBUG_REG32_TC_ROQ_SAME_ROW_BANK_SEL_SHIFT) | \
+ (any_same_row_bank << MH_DEBUG_REG32_ANY_SAME_ROW_BANK_SHIFT) | \
+ (tc_eff1_qual << MH_DEBUG_REG32_TC_EFF1_QUAL_SHIFT) | \
+ (tc_roq_empty << MH_DEBUG_REG32_TC_ROQ_EMPTY_SHIFT) | \
+ (tc_roq_full << MH_DEBUG_REG32_TC_ROQ_FULL_SHIFT))
+
+#define MH_DEBUG_REG32_GET_SAME_ROW_BANK_q(mh_debug_reg32) \
+ ((mh_debug_reg32 & MH_DEBUG_REG32_SAME_ROW_BANK_q_MASK) >> MH_DEBUG_REG32_SAME_ROW_BANK_q_SHIFT)
+#define MH_DEBUG_REG32_GET_ROQ_MARK_q(mh_debug_reg32) \
+ ((mh_debug_reg32 & MH_DEBUG_REG32_ROQ_MARK_q_MASK) >> MH_DEBUG_REG32_ROQ_MARK_q_SHIFT)
+#define MH_DEBUG_REG32_GET_ROQ_VALID_q(mh_debug_reg32) \
+ ((mh_debug_reg32 & MH_DEBUG_REG32_ROQ_VALID_q_MASK) >> MH_DEBUG_REG32_ROQ_VALID_q_SHIFT)
+#define MH_DEBUG_REG32_GET_TC_MH_send(mh_debug_reg32) \
+ ((mh_debug_reg32 & MH_DEBUG_REG32_TC_MH_send_MASK) >> MH_DEBUG_REG32_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG32_GET_TC_ROQ_RTR_q(mh_debug_reg32) \
+ ((mh_debug_reg32 & MH_DEBUG_REG32_TC_ROQ_RTR_q_MASK) >> MH_DEBUG_REG32_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG32_GET_KILL_EFF1(mh_debug_reg32) \
+ ((mh_debug_reg32 & MH_DEBUG_REG32_KILL_EFF1_MASK) >> MH_DEBUG_REG32_KILL_EFF1_SHIFT)
+#define MH_DEBUG_REG32_GET_TC_ROQ_SAME_ROW_BANK_SEL(mh_debug_reg32) \
+ ((mh_debug_reg32 & MH_DEBUG_REG32_TC_ROQ_SAME_ROW_BANK_SEL_MASK) >> MH_DEBUG_REG32_TC_ROQ_SAME_ROW_BANK_SEL_SHIFT)
+#define MH_DEBUG_REG32_GET_ANY_SAME_ROW_BANK(mh_debug_reg32) \
+ ((mh_debug_reg32 & MH_DEBUG_REG32_ANY_SAME_ROW_BANK_MASK) >> MH_DEBUG_REG32_ANY_SAME_ROW_BANK_SHIFT)
+#define MH_DEBUG_REG32_GET_TC_EFF1_QUAL(mh_debug_reg32) \
+ ((mh_debug_reg32 & MH_DEBUG_REG32_TC_EFF1_QUAL_MASK) >> MH_DEBUG_REG32_TC_EFF1_QUAL_SHIFT)
+#define MH_DEBUG_REG32_GET_TC_ROQ_EMPTY(mh_debug_reg32) \
+ ((mh_debug_reg32 & MH_DEBUG_REG32_TC_ROQ_EMPTY_MASK) >> MH_DEBUG_REG32_TC_ROQ_EMPTY_SHIFT)
+#define MH_DEBUG_REG32_GET_TC_ROQ_FULL(mh_debug_reg32) \
+ ((mh_debug_reg32 & MH_DEBUG_REG32_TC_ROQ_FULL_MASK) >> MH_DEBUG_REG32_TC_ROQ_FULL_SHIFT)
+
+#define MH_DEBUG_REG32_SET_SAME_ROW_BANK_q(mh_debug_reg32_reg, same_row_bank_q) \
+ mh_debug_reg32_reg = (mh_debug_reg32_reg & ~MH_DEBUG_REG32_SAME_ROW_BANK_q_MASK) | (same_row_bank_q << MH_DEBUG_REG32_SAME_ROW_BANK_q_SHIFT)
+#define MH_DEBUG_REG32_SET_ROQ_MARK_q(mh_debug_reg32_reg, roq_mark_q) \
+ mh_debug_reg32_reg = (mh_debug_reg32_reg & ~MH_DEBUG_REG32_ROQ_MARK_q_MASK) | (roq_mark_q << MH_DEBUG_REG32_ROQ_MARK_q_SHIFT)
+#define MH_DEBUG_REG32_SET_ROQ_VALID_q(mh_debug_reg32_reg, roq_valid_q) \
+ mh_debug_reg32_reg = (mh_debug_reg32_reg & ~MH_DEBUG_REG32_ROQ_VALID_q_MASK) | (roq_valid_q << MH_DEBUG_REG32_ROQ_VALID_q_SHIFT)
+#define MH_DEBUG_REG32_SET_TC_MH_send(mh_debug_reg32_reg, tc_mh_send) \
+ mh_debug_reg32_reg = (mh_debug_reg32_reg & ~MH_DEBUG_REG32_TC_MH_send_MASK) | (tc_mh_send << MH_DEBUG_REG32_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG32_SET_TC_ROQ_RTR_q(mh_debug_reg32_reg, tc_roq_rtr_q) \
+ mh_debug_reg32_reg = (mh_debug_reg32_reg & ~MH_DEBUG_REG32_TC_ROQ_RTR_q_MASK) | (tc_roq_rtr_q << MH_DEBUG_REG32_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG32_SET_KILL_EFF1(mh_debug_reg32_reg, kill_eff1) \
+ mh_debug_reg32_reg = (mh_debug_reg32_reg & ~MH_DEBUG_REG32_KILL_EFF1_MASK) | (kill_eff1 << MH_DEBUG_REG32_KILL_EFF1_SHIFT)
+#define MH_DEBUG_REG32_SET_TC_ROQ_SAME_ROW_BANK_SEL(mh_debug_reg32_reg, tc_roq_same_row_bank_sel) \
+ mh_debug_reg32_reg = (mh_debug_reg32_reg & ~MH_DEBUG_REG32_TC_ROQ_SAME_ROW_BANK_SEL_MASK) | (tc_roq_same_row_bank_sel << MH_DEBUG_REG32_TC_ROQ_SAME_ROW_BANK_SEL_SHIFT)
+#define MH_DEBUG_REG32_SET_ANY_SAME_ROW_BANK(mh_debug_reg32_reg, any_same_row_bank) \
+ mh_debug_reg32_reg = (mh_debug_reg32_reg & ~MH_DEBUG_REG32_ANY_SAME_ROW_BANK_MASK) | (any_same_row_bank << MH_DEBUG_REG32_ANY_SAME_ROW_BANK_SHIFT)
+#define MH_DEBUG_REG32_SET_TC_EFF1_QUAL(mh_debug_reg32_reg, tc_eff1_qual) \
+ mh_debug_reg32_reg = (mh_debug_reg32_reg & ~MH_DEBUG_REG32_TC_EFF1_QUAL_MASK) | (tc_eff1_qual << MH_DEBUG_REG32_TC_EFF1_QUAL_SHIFT)
+#define MH_DEBUG_REG32_SET_TC_ROQ_EMPTY(mh_debug_reg32_reg, tc_roq_empty) \
+ mh_debug_reg32_reg = (mh_debug_reg32_reg & ~MH_DEBUG_REG32_TC_ROQ_EMPTY_MASK) | (tc_roq_empty << MH_DEBUG_REG32_TC_ROQ_EMPTY_SHIFT)
+#define MH_DEBUG_REG32_SET_TC_ROQ_FULL(mh_debug_reg32_reg, tc_roq_full) \
+ mh_debug_reg32_reg = (mh_debug_reg32_reg & ~MH_DEBUG_REG32_TC_ROQ_FULL_MASK) | (tc_roq_full << MH_DEBUG_REG32_TC_ROQ_FULL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg32_t {
+ unsigned int same_row_bank_q : MH_DEBUG_REG32_SAME_ROW_BANK_q_SIZE;
+ unsigned int roq_mark_q : MH_DEBUG_REG32_ROQ_MARK_q_SIZE;
+ unsigned int roq_valid_q : MH_DEBUG_REG32_ROQ_VALID_q_SIZE;
+ unsigned int tc_mh_send : MH_DEBUG_REG32_TC_MH_send_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG32_TC_ROQ_RTR_q_SIZE;
+ unsigned int kill_eff1 : MH_DEBUG_REG32_KILL_EFF1_SIZE;
+ unsigned int tc_roq_same_row_bank_sel : MH_DEBUG_REG32_TC_ROQ_SAME_ROW_BANK_SEL_SIZE;
+ unsigned int any_same_row_bank : MH_DEBUG_REG32_ANY_SAME_ROW_BANK_SIZE;
+ unsigned int tc_eff1_qual : MH_DEBUG_REG32_TC_EFF1_QUAL_SIZE;
+ unsigned int tc_roq_empty : MH_DEBUG_REG32_TC_ROQ_EMPTY_SIZE;
+ unsigned int tc_roq_full : MH_DEBUG_REG32_TC_ROQ_FULL_SIZE;
+ } mh_debug_reg32_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg32_t {
+ unsigned int tc_roq_full : MH_DEBUG_REG32_TC_ROQ_FULL_SIZE;
+ unsigned int tc_roq_empty : MH_DEBUG_REG32_TC_ROQ_EMPTY_SIZE;
+ unsigned int tc_eff1_qual : MH_DEBUG_REG32_TC_EFF1_QUAL_SIZE;
+ unsigned int any_same_row_bank : MH_DEBUG_REG32_ANY_SAME_ROW_BANK_SIZE;
+ unsigned int tc_roq_same_row_bank_sel : MH_DEBUG_REG32_TC_ROQ_SAME_ROW_BANK_SEL_SIZE;
+ unsigned int kill_eff1 : MH_DEBUG_REG32_KILL_EFF1_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG32_TC_ROQ_RTR_q_SIZE;
+ unsigned int tc_mh_send : MH_DEBUG_REG32_TC_MH_send_SIZE;
+ unsigned int roq_valid_q : MH_DEBUG_REG32_ROQ_VALID_q_SIZE;
+ unsigned int roq_mark_q : MH_DEBUG_REG32_ROQ_MARK_q_SIZE;
+ unsigned int same_row_bank_q : MH_DEBUG_REG32_SAME_ROW_BANK_q_SIZE;
+ } mh_debug_reg32_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg32_t f;
+} mh_debug_reg32_u;
+
+
+/*
+ * MH_DEBUG_REG33 struct
+ */
+
+#define MH_DEBUG_REG33_SAME_ROW_BANK_q_SIZE 8
+#define MH_DEBUG_REG33_ROQ_MARK_d_SIZE 8
+#define MH_DEBUG_REG33_ROQ_VALID_d_SIZE 8
+#define MH_DEBUG_REG33_TC_MH_send_SIZE 1
+#define MH_DEBUG_REG33_TC_ROQ_RTR_q_SIZE 1
+#define MH_DEBUG_REG33_KILL_EFF1_SIZE 1
+#define MH_DEBUG_REG33_TC_ROQ_SAME_ROW_BANK_SEL_SIZE 1
+#define MH_DEBUG_REG33_ANY_SAME_ROW_BANK_SIZE 1
+#define MH_DEBUG_REG33_TC_EFF1_QUAL_SIZE 1
+#define MH_DEBUG_REG33_TC_ROQ_EMPTY_SIZE 1
+#define MH_DEBUG_REG33_TC_ROQ_FULL_SIZE 1
+
+#define MH_DEBUG_REG33_SAME_ROW_BANK_q_SHIFT 0
+#define MH_DEBUG_REG33_ROQ_MARK_d_SHIFT 8
+#define MH_DEBUG_REG33_ROQ_VALID_d_SHIFT 16
+#define MH_DEBUG_REG33_TC_MH_send_SHIFT 24
+#define MH_DEBUG_REG33_TC_ROQ_RTR_q_SHIFT 25
+#define MH_DEBUG_REG33_KILL_EFF1_SHIFT 26
+#define MH_DEBUG_REG33_TC_ROQ_SAME_ROW_BANK_SEL_SHIFT 27
+#define MH_DEBUG_REG33_ANY_SAME_ROW_BANK_SHIFT 28
+#define MH_DEBUG_REG33_TC_EFF1_QUAL_SHIFT 29
+#define MH_DEBUG_REG33_TC_ROQ_EMPTY_SHIFT 30
+#define MH_DEBUG_REG33_TC_ROQ_FULL_SHIFT 31
+
+#define MH_DEBUG_REG33_SAME_ROW_BANK_q_MASK 0x000000ff
+#define MH_DEBUG_REG33_ROQ_MARK_d_MASK 0x0000ff00
+#define MH_DEBUG_REG33_ROQ_VALID_d_MASK 0x00ff0000
+#define MH_DEBUG_REG33_TC_MH_send_MASK 0x01000000
+#define MH_DEBUG_REG33_TC_ROQ_RTR_q_MASK 0x02000000
+#define MH_DEBUG_REG33_KILL_EFF1_MASK 0x04000000
+#define MH_DEBUG_REG33_TC_ROQ_SAME_ROW_BANK_SEL_MASK 0x08000000
+#define MH_DEBUG_REG33_ANY_SAME_ROW_BANK_MASK 0x10000000
+#define MH_DEBUG_REG33_TC_EFF1_QUAL_MASK 0x20000000
+#define MH_DEBUG_REG33_TC_ROQ_EMPTY_MASK 0x40000000
+#define MH_DEBUG_REG33_TC_ROQ_FULL_MASK 0x80000000
+
+#define MH_DEBUG_REG33_MASK \
+ (MH_DEBUG_REG33_SAME_ROW_BANK_q_MASK | \
+ MH_DEBUG_REG33_ROQ_MARK_d_MASK | \
+ MH_DEBUG_REG33_ROQ_VALID_d_MASK | \
+ MH_DEBUG_REG33_TC_MH_send_MASK | \
+ MH_DEBUG_REG33_TC_ROQ_RTR_q_MASK | \
+ MH_DEBUG_REG33_KILL_EFF1_MASK | \
+ MH_DEBUG_REG33_TC_ROQ_SAME_ROW_BANK_SEL_MASK | \
+ MH_DEBUG_REG33_ANY_SAME_ROW_BANK_MASK | \
+ MH_DEBUG_REG33_TC_EFF1_QUAL_MASK | \
+ MH_DEBUG_REG33_TC_ROQ_EMPTY_MASK | \
+ MH_DEBUG_REG33_TC_ROQ_FULL_MASK)
+
+#define MH_DEBUG_REG33(same_row_bank_q, roq_mark_d, roq_valid_d, tc_mh_send, tc_roq_rtr_q, kill_eff1, tc_roq_same_row_bank_sel, any_same_row_bank, tc_eff1_qual, tc_roq_empty, tc_roq_full) \
+ ((same_row_bank_q << MH_DEBUG_REG33_SAME_ROW_BANK_q_SHIFT) | \
+ (roq_mark_d << MH_DEBUG_REG33_ROQ_MARK_d_SHIFT) | \
+ (roq_valid_d << MH_DEBUG_REG33_ROQ_VALID_d_SHIFT) | \
+ (tc_mh_send << MH_DEBUG_REG33_TC_MH_send_SHIFT) | \
+ (tc_roq_rtr_q << MH_DEBUG_REG33_TC_ROQ_RTR_q_SHIFT) | \
+ (kill_eff1 << MH_DEBUG_REG33_KILL_EFF1_SHIFT) | \
+ (tc_roq_same_row_bank_sel << MH_DEBUG_REG33_TC_ROQ_SAME_ROW_BANK_SEL_SHIFT) | \
+ (any_same_row_bank << MH_DEBUG_REG33_ANY_SAME_ROW_BANK_SHIFT) | \
+ (tc_eff1_qual << MH_DEBUG_REG33_TC_EFF1_QUAL_SHIFT) | \
+ (tc_roq_empty << MH_DEBUG_REG33_TC_ROQ_EMPTY_SHIFT) | \
+ (tc_roq_full << MH_DEBUG_REG33_TC_ROQ_FULL_SHIFT))
+
+#define MH_DEBUG_REG33_GET_SAME_ROW_BANK_q(mh_debug_reg33) \
+ ((mh_debug_reg33 & MH_DEBUG_REG33_SAME_ROW_BANK_q_MASK) >> MH_DEBUG_REG33_SAME_ROW_BANK_q_SHIFT)
+#define MH_DEBUG_REG33_GET_ROQ_MARK_d(mh_debug_reg33) \
+ ((mh_debug_reg33 & MH_DEBUG_REG33_ROQ_MARK_d_MASK) >> MH_DEBUG_REG33_ROQ_MARK_d_SHIFT)
+#define MH_DEBUG_REG33_GET_ROQ_VALID_d(mh_debug_reg33) \
+ ((mh_debug_reg33 & MH_DEBUG_REG33_ROQ_VALID_d_MASK) >> MH_DEBUG_REG33_ROQ_VALID_d_SHIFT)
+#define MH_DEBUG_REG33_GET_TC_MH_send(mh_debug_reg33) \
+ ((mh_debug_reg33 & MH_DEBUG_REG33_TC_MH_send_MASK) >> MH_DEBUG_REG33_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG33_GET_TC_ROQ_RTR_q(mh_debug_reg33) \
+ ((mh_debug_reg33 & MH_DEBUG_REG33_TC_ROQ_RTR_q_MASK) >> MH_DEBUG_REG33_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG33_GET_KILL_EFF1(mh_debug_reg33) \
+ ((mh_debug_reg33 & MH_DEBUG_REG33_KILL_EFF1_MASK) >> MH_DEBUG_REG33_KILL_EFF1_SHIFT)
+#define MH_DEBUG_REG33_GET_TC_ROQ_SAME_ROW_BANK_SEL(mh_debug_reg33) \
+ ((mh_debug_reg33 & MH_DEBUG_REG33_TC_ROQ_SAME_ROW_BANK_SEL_MASK) >> MH_DEBUG_REG33_TC_ROQ_SAME_ROW_BANK_SEL_SHIFT)
+#define MH_DEBUG_REG33_GET_ANY_SAME_ROW_BANK(mh_debug_reg33) \
+ ((mh_debug_reg33 & MH_DEBUG_REG33_ANY_SAME_ROW_BANK_MASK) >> MH_DEBUG_REG33_ANY_SAME_ROW_BANK_SHIFT)
+#define MH_DEBUG_REG33_GET_TC_EFF1_QUAL(mh_debug_reg33) \
+ ((mh_debug_reg33 & MH_DEBUG_REG33_TC_EFF1_QUAL_MASK) >> MH_DEBUG_REG33_TC_EFF1_QUAL_SHIFT)
+#define MH_DEBUG_REG33_GET_TC_ROQ_EMPTY(mh_debug_reg33) \
+ ((mh_debug_reg33 & MH_DEBUG_REG33_TC_ROQ_EMPTY_MASK) >> MH_DEBUG_REG33_TC_ROQ_EMPTY_SHIFT)
+#define MH_DEBUG_REG33_GET_TC_ROQ_FULL(mh_debug_reg33) \
+ ((mh_debug_reg33 & MH_DEBUG_REG33_TC_ROQ_FULL_MASK) >> MH_DEBUG_REG33_TC_ROQ_FULL_SHIFT)
+
+#define MH_DEBUG_REG33_SET_SAME_ROW_BANK_q(mh_debug_reg33_reg, same_row_bank_q) \
+ mh_debug_reg33_reg = (mh_debug_reg33_reg & ~MH_DEBUG_REG33_SAME_ROW_BANK_q_MASK) | (same_row_bank_q << MH_DEBUG_REG33_SAME_ROW_BANK_q_SHIFT)
+#define MH_DEBUG_REG33_SET_ROQ_MARK_d(mh_debug_reg33_reg, roq_mark_d) \
+ mh_debug_reg33_reg = (mh_debug_reg33_reg & ~MH_DEBUG_REG33_ROQ_MARK_d_MASK) | (roq_mark_d << MH_DEBUG_REG33_ROQ_MARK_d_SHIFT)
+#define MH_DEBUG_REG33_SET_ROQ_VALID_d(mh_debug_reg33_reg, roq_valid_d) \
+ mh_debug_reg33_reg = (mh_debug_reg33_reg & ~MH_DEBUG_REG33_ROQ_VALID_d_MASK) | (roq_valid_d << MH_DEBUG_REG33_ROQ_VALID_d_SHIFT)
+#define MH_DEBUG_REG33_SET_TC_MH_send(mh_debug_reg33_reg, tc_mh_send) \
+ mh_debug_reg33_reg = (mh_debug_reg33_reg & ~MH_DEBUG_REG33_TC_MH_send_MASK) | (tc_mh_send << MH_DEBUG_REG33_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG33_SET_TC_ROQ_RTR_q(mh_debug_reg33_reg, tc_roq_rtr_q) \
+ mh_debug_reg33_reg = (mh_debug_reg33_reg & ~MH_DEBUG_REG33_TC_ROQ_RTR_q_MASK) | (tc_roq_rtr_q << MH_DEBUG_REG33_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG33_SET_KILL_EFF1(mh_debug_reg33_reg, kill_eff1) \
+ mh_debug_reg33_reg = (mh_debug_reg33_reg & ~MH_DEBUG_REG33_KILL_EFF1_MASK) | (kill_eff1 << MH_DEBUG_REG33_KILL_EFF1_SHIFT)
+#define MH_DEBUG_REG33_SET_TC_ROQ_SAME_ROW_BANK_SEL(mh_debug_reg33_reg, tc_roq_same_row_bank_sel) \
+ mh_debug_reg33_reg = (mh_debug_reg33_reg & ~MH_DEBUG_REG33_TC_ROQ_SAME_ROW_BANK_SEL_MASK) | (tc_roq_same_row_bank_sel << MH_DEBUG_REG33_TC_ROQ_SAME_ROW_BANK_SEL_SHIFT)
+#define MH_DEBUG_REG33_SET_ANY_SAME_ROW_BANK(mh_debug_reg33_reg, any_same_row_bank) \
+ mh_debug_reg33_reg = (mh_debug_reg33_reg & ~MH_DEBUG_REG33_ANY_SAME_ROW_BANK_MASK) | (any_same_row_bank << MH_DEBUG_REG33_ANY_SAME_ROW_BANK_SHIFT)
+#define MH_DEBUG_REG33_SET_TC_EFF1_QUAL(mh_debug_reg33_reg, tc_eff1_qual) \
+ mh_debug_reg33_reg = (mh_debug_reg33_reg & ~MH_DEBUG_REG33_TC_EFF1_QUAL_MASK) | (tc_eff1_qual << MH_DEBUG_REG33_TC_EFF1_QUAL_SHIFT)
+#define MH_DEBUG_REG33_SET_TC_ROQ_EMPTY(mh_debug_reg33_reg, tc_roq_empty) \
+ mh_debug_reg33_reg = (mh_debug_reg33_reg & ~MH_DEBUG_REG33_TC_ROQ_EMPTY_MASK) | (tc_roq_empty << MH_DEBUG_REG33_TC_ROQ_EMPTY_SHIFT)
+#define MH_DEBUG_REG33_SET_TC_ROQ_FULL(mh_debug_reg33_reg, tc_roq_full) \
+ mh_debug_reg33_reg = (mh_debug_reg33_reg & ~MH_DEBUG_REG33_TC_ROQ_FULL_MASK) | (tc_roq_full << MH_DEBUG_REG33_TC_ROQ_FULL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg33_t {
+ unsigned int same_row_bank_q : MH_DEBUG_REG33_SAME_ROW_BANK_q_SIZE;
+ unsigned int roq_mark_d : MH_DEBUG_REG33_ROQ_MARK_d_SIZE;
+ unsigned int roq_valid_d : MH_DEBUG_REG33_ROQ_VALID_d_SIZE;
+ unsigned int tc_mh_send : MH_DEBUG_REG33_TC_MH_send_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG33_TC_ROQ_RTR_q_SIZE;
+ unsigned int kill_eff1 : MH_DEBUG_REG33_KILL_EFF1_SIZE;
+ unsigned int tc_roq_same_row_bank_sel : MH_DEBUG_REG33_TC_ROQ_SAME_ROW_BANK_SEL_SIZE;
+ unsigned int any_same_row_bank : MH_DEBUG_REG33_ANY_SAME_ROW_BANK_SIZE;
+ unsigned int tc_eff1_qual : MH_DEBUG_REG33_TC_EFF1_QUAL_SIZE;
+ unsigned int tc_roq_empty : MH_DEBUG_REG33_TC_ROQ_EMPTY_SIZE;
+ unsigned int tc_roq_full : MH_DEBUG_REG33_TC_ROQ_FULL_SIZE;
+ } mh_debug_reg33_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg33_t {
+ unsigned int tc_roq_full : MH_DEBUG_REG33_TC_ROQ_FULL_SIZE;
+ unsigned int tc_roq_empty : MH_DEBUG_REG33_TC_ROQ_EMPTY_SIZE;
+ unsigned int tc_eff1_qual : MH_DEBUG_REG33_TC_EFF1_QUAL_SIZE;
+ unsigned int any_same_row_bank : MH_DEBUG_REG33_ANY_SAME_ROW_BANK_SIZE;
+ unsigned int tc_roq_same_row_bank_sel : MH_DEBUG_REG33_TC_ROQ_SAME_ROW_BANK_SEL_SIZE;
+ unsigned int kill_eff1 : MH_DEBUG_REG33_KILL_EFF1_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG33_TC_ROQ_RTR_q_SIZE;
+ unsigned int tc_mh_send : MH_DEBUG_REG33_TC_MH_send_SIZE;
+ unsigned int roq_valid_d : MH_DEBUG_REG33_ROQ_VALID_d_SIZE;
+ unsigned int roq_mark_d : MH_DEBUG_REG33_ROQ_MARK_d_SIZE;
+ unsigned int same_row_bank_q : MH_DEBUG_REG33_SAME_ROW_BANK_q_SIZE;
+ } mh_debug_reg33_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg33_t f;
+} mh_debug_reg33_u;
+
+
+/*
+ * MH_DEBUG_REG34 struct
+ */
+
+#define MH_DEBUG_REG34_SAME_ROW_BANK_WIN_SIZE 8
+#define MH_DEBUG_REG34_SAME_ROW_BANK_REQ_SIZE 8
+#define MH_DEBUG_REG34_NON_SAME_ROW_BANK_WIN_SIZE 8
+#define MH_DEBUG_REG34_NON_SAME_ROW_BANK_REQ_SIZE 8
+
+#define MH_DEBUG_REG34_SAME_ROW_BANK_WIN_SHIFT 0
+#define MH_DEBUG_REG34_SAME_ROW_BANK_REQ_SHIFT 8
+#define MH_DEBUG_REG34_NON_SAME_ROW_BANK_WIN_SHIFT 16
+#define MH_DEBUG_REG34_NON_SAME_ROW_BANK_REQ_SHIFT 24
+
+#define MH_DEBUG_REG34_SAME_ROW_BANK_WIN_MASK 0x000000ff
+#define MH_DEBUG_REG34_SAME_ROW_BANK_REQ_MASK 0x0000ff00
+#define MH_DEBUG_REG34_NON_SAME_ROW_BANK_WIN_MASK 0x00ff0000
+#define MH_DEBUG_REG34_NON_SAME_ROW_BANK_REQ_MASK 0xff000000
+
+#define MH_DEBUG_REG34_MASK \
+ (MH_DEBUG_REG34_SAME_ROW_BANK_WIN_MASK | \
+ MH_DEBUG_REG34_SAME_ROW_BANK_REQ_MASK | \
+ MH_DEBUG_REG34_NON_SAME_ROW_BANK_WIN_MASK | \
+ MH_DEBUG_REG34_NON_SAME_ROW_BANK_REQ_MASK)
+
+#define MH_DEBUG_REG34(same_row_bank_win, same_row_bank_req, non_same_row_bank_win, non_same_row_bank_req) \
+ ((same_row_bank_win << MH_DEBUG_REG34_SAME_ROW_BANK_WIN_SHIFT) | \
+ (same_row_bank_req << MH_DEBUG_REG34_SAME_ROW_BANK_REQ_SHIFT) | \
+ (non_same_row_bank_win << MH_DEBUG_REG34_NON_SAME_ROW_BANK_WIN_SHIFT) | \
+ (non_same_row_bank_req << MH_DEBUG_REG34_NON_SAME_ROW_BANK_REQ_SHIFT))
+
+#define MH_DEBUG_REG34_GET_SAME_ROW_BANK_WIN(mh_debug_reg34) \
+ ((mh_debug_reg34 & MH_DEBUG_REG34_SAME_ROW_BANK_WIN_MASK) >> MH_DEBUG_REG34_SAME_ROW_BANK_WIN_SHIFT)
+#define MH_DEBUG_REG34_GET_SAME_ROW_BANK_REQ(mh_debug_reg34) \
+ ((mh_debug_reg34 & MH_DEBUG_REG34_SAME_ROW_BANK_REQ_MASK) >> MH_DEBUG_REG34_SAME_ROW_BANK_REQ_SHIFT)
+#define MH_DEBUG_REG34_GET_NON_SAME_ROW_BANK_WIN(mh_debug_reg34) \
+ ((mh_debug_reg34 & MH_DEBUG_REG34_NON_SAME_ROW_BANK_WIN_MASK) >> MH_DEBUG_REG34_NON_SAME_ROW_BANK_WIN_SHIFT)
+#define MH_DEBUG_REG34_GET_NON_SAME_ROW_BANK_REQ(mh_debug_reg34) \
+ ((mh_debug_reg34 & MH_DEBUG_REG34_NON_SAME_ROW_BANK_REQ_MASK) >> MH_DEBUG_REG34_NON_SAME_ROW_BANK_REQ_SHIFT)
+
+#define MH_DEBUG_REG34_SET_SAME_ROW_BANK_WIN(mh_debug_reg34_reg, same_row_bank_win) \
+ mh_debug_reg34_reg = (mh_debug_reg34_reg & ~MH_DEBUG_REG34_SAME_ROW_BANK_WIN_MASK) | (same_row_bank_win << MH_DEBUG_REG34_SAME_ROW_BANK_WIN_SHIFT)
+#define MH_DEBUG_REG34_SET_SAME_ROW_BANK_REQ(mh_debug_reg34_reg, same_row_bank_req) \
+ mh_debug_reg34_reg = (mh_debug_reg34_reg & ~MH_DEBUG_REG34_SAME_ROW_BANK_REQ_MASK) | (same_row_bank_req << MH_DEBUG_REG34_SAME_ROW_BANK_REQ_SHIFT)
+#define MH_DEBUG_REG34_SET_NON_SAME_ROW_BANK_WIN(mh_debug_reg34_reg, non_same_row_bank_win) \
+ mh_debug_reg34_reg = (mh_debug_reg34_reg & ~MH_DEBUG_REG34_NON_SAME_ROW_BANK_WIN_MASK) | (non_same_row_bank_win << MH_DEBUG_REG34_NON_SAME_ROW_BANK_WIN_SHIFT)
+#define MH_DEBUG_REG34_SET_NON_SAME_ROW_BANK_REQ(mh_debug_reg34_reg, non_same_row_bank_req) \
+ mh_debug_reg34_reg = (mh_debug_reg34_reg & ~MH_DEBUG_REG34_NON_SAME_ROW_BANK_REQ_MASK) | (non_same_row_bank_req << MH_DEBUG_REG34_NON_SAME_ROW_BANK_REQ_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg34_t {
+ unsigned int same_row_bank_win : MH_DEBUG_REG34_SAME_ROW_BANK_WIN_SIZE;
+ unsigned int same_row_bank_req : MH_DEBUG_REG34_SAME_ROW_BANK_REQ_SIZE;
+ unsigned int non_same_row_bank_win : MH_DEBUG_REG34_NON_SAME_ROW_BANK_WIN_SIZE;
+ unsigned int non_same_row_bank_req : MH_DEBUG_REG34_NON_SAME_ROW_BANK_REQ_SIZE;
+ } mh_debug_reg34_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg34_t {
+ unsigned int non_same_row_bank_req : MH_DEBUG_REG34_NON_SAME_ROW_BANK_REQ_SIZE;
+ unsigned int non_same_row_bank_win : MH_DEBUG_REG34_NON_SAME_ROW_BANK_WIN_SIZE;
+ unsigned int same_row_bank_req : MH_DEBUG_REG34_SAME_ROW_BANK_REQ_SIZE;
+ unsigned int same_row_bank_win : MH_DEBUG_REG34_SAME_ROW_BANK_WIN_SIZE;
+ } mh_debug_reg34_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg34_t f;
+} mh_debug_reg34_u;
+
+
+/*
+ * MH_DEBUG_REG35 struct
+ */
+
+#define MH_DEBUG_REG35_TC_MH_send_SIZE 1
+#define MH_DEBUG_REG35_TC_ROQ_RTR_q_SIZE 1
+#define MH_DEBUG_REG35_ROQ_MARK_q_0_SIZE 1
+#define MH_DEBUG_REG35_ROQ_VALID_q_0_SIZE 1
+#define MH_DEBUG_REG35_SAME_ROW_BANK_q_0_SIZE 1
+#define MH_DEBUG_REG35_ROQ_ADDR_0_SIZE 27
+
+#define MH_DEBUG_REG35_TC_MH_send_SHIFT 0
+#define MH_DEBUG_REG35_TC_ROQ_RTR_q_SHIFT 1
+#define MH_DEBUG_REG35_ROQ_MARK_q_0_SHIFT 2
+#define MH_DEBUG_REG35_ROQ_VALID_q_0_SHIFT 3
+#define MH_DEBUG_REG35_SAME_ROW_BANK_q_0_SHIFT 4
+#define MH_DEBUG_REG35_ROQ_ADDR_0_SHIFT 5
+
+#define MH_DEBUG_REG35_TC_MH_send_MASK 0x00000001
+#define MH_DEBUG_REG35_TC_ROQ_RTR_q_MASK 0x00000002
+#define MH_DEBUG_REG35_ROQ_MARK_q_0_MASK 0x00000004
+#define MH_DEBUG_REG35_ROQ_VALID_q_0_MASK 0x00000008
+#define MH_DEBUG_REG35_SAME_ROW_BANK_q_0_MASK 0x00000010
+#define MH_DEBUG_REG35_ROQ_ADDR_0_MASK 0xffffffe0
+
+#define MH_DEBUG_REG35_MASK \
+ (MH_DEBUG_REG35_TC_MH_send_MASK | \
+ MH_DEBUG_REG35_TC_ROQ_RTR_q_MASK | \
+ MH_DEBUG_REG35_ROQ_MARK_q_0_MASK | \
+ MH_DEBUG_REG35_ROQ_VALID_q_0_MASK | \
+ MH_DEBUG_REG35_SAME_ROW_BANK_q_0_MASK | \
+ MH_DEBUG_REG35_ROQ_ADDR_0_MASK)
+
+#define MH_DEBUG_REG35(tc_mh_send, tc_roq_rtr_q, roq_mark_q_0, roq_valid_q_0, same_row_bank_q_0, roq_addr_0) \
+ ((tc_mh_send << MH_DEBUG_REG35_TC_MH_send_SHIFT) | \
+ (tc_roq_rtr_q << MH_DEBUG_REG35_TC_ROQ_RTR_q_SHIFT) | \
+ (roq_mark_q_0 << MH_DEBUG_REG35_ROQ_MARK_q_0_SHIFT) | \
+ (roq_valid_q_0 << MH_DEBUG_REG35_ROQ_VALID_q_0_SHIFT) | \
+ (same_row_bank_q_0 << MH_DEBUG_REG35_SAME_ROW_BANK_q_0_SHIFT) | \
+ (roq_addr_0 << MH_DEBUG_REG35_ROQ_ADDR_0_SHIFT))
+
+#define MH_DEBUG_REG35_GET_TC_MH_send(mh_debug_reg35) \
+ ((mh_debug_reg35 & MH_DEBUG_REG35_TC_MH_send_MASK) >> MH_DEBUG_REG35_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG35_GET_TC_ROQ_RTR_q(mh_debug_reg35) \
+ ((mh_debug_reg35 & MH_DEBUG_REG35_TC_ROQ_RTR_q_MASK) >> MH_DEBUG_REG35_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG35_GET_ROQ_MARK_q_0(mh_debug_reg35) \
+ ((mh_debug_reg35 & MH_DEBUG_REG35_ROQ_MARK_q_0_MASK) >> MH_DEBUG_REG35_ROQ_MARK_q_0_SHIFT)
+#define MH_DEBUG_REG35_GET_ROQ_VALID_q_0(mh_debug_reg35) \
+ ((mh_debug_reg35 & MH_DEBUG_REG35_ROQ_VALID_q_0_MASK) >> MH_DEBUG_REG35_ROQ_VALID_q_0_SHIFT)
+#define MH_DEBUG_REG35_GET_SAME_ROW_BANK_q_0(mh_debug_reg35) \
+ ((mh_debug_reg35 & MH_DEBUG_REG35_SAME_ROW_BANK_q_0_MASK) >> MH_DEBUG_REG35_SAME_ROW_BANK_q_0_SHIFT)
+#define MH_DEBUG_REG35_GET_ROQ_ADDR_0(mh_debug_reg35) \
+ ((mh_debug_reg35 & MH_DEBUG_REG35_ROQ_ADDR_0_MASK) >> MH_DEBUG_REG35_ROQ_ADDR_0_SHIFT)
+
+#define MH_DEBUG_REG35_SET_TC_MH_send(mh_debug_reg35_reg, tc_mh_send) \
+ mh_debug_reg35_reg = (mh_debug_reg35_reg & ~MH_DEBUG_REG35_TC_MH_send_MASK) | (tc_mh_send << MH_DEBUG_REG35_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG35_SET_TC_ROQ_RTR_q(mh_debug_reg35_reg, tc_roq_rtr_q) \
+ mh_debug_reg35_reg = (mh_debug_reg35_reg & ~MH_DEBUG_REG35_TC_ROQ_RTR_q_MASK) | (tc_roq_rtr_q << MH_DEBUG_REG35_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG35_SET_ROQ_MARK_q_0(mh_debug_reg35_reg, roq_mark_q_0) \
+ mh_debug_reg35_reg = (mh_debug_reg35_reg & ~MH_DEBUG_REG35_ROQ_MARK_q_0_MASK) | (roq_mark_q_0 << MH_DEBUG_REG35_ROQ_MARK_q_0_SHIFT)
+#define MH_DEBUG_REG35_SET_ROQ_VALID_q_0(mh_debug_reg35_reg, roq_valid_q_0) \
+ mh_debug_reg35_reg = (mh_debug_reg35_reg & ~MH_DEBUG_REG35_ROQ_VALID_q_0_MASK) | (roq_valid_q_0 << MH_DEBUG_REG35_ROQ_VALID_q_0_SHIFT)
+#define MH_DEBUG_REG35_SET_SAME_ROW_BANK_q_0(mh_debug_reg35_reg, same_row_bank_q_0) \
+ mh_debug_reg35_reg = (mh_debug_reg35_reg & ~MH_DEBUG_REG35_SAME_ROW_BANK_q_0_MASK) | (same_row_bank_q_0 << MH_DEBUG_REG35_SAME_ROW_BANK_q_0_SHIFT)
+#define MH_DEBUG_REG35_SET_ROQ_ADDR_0(mh_debug_reg35_reg, roq_addr_0) \
+ mh_debug_reg35_reg = (mh_debug_reg35_reg & ~MH_DEBUG_REG35_ROQ_ADDR_0_MASK) | (roq_addr_0 << MH_DEBUG_REG35_ROQ_ADDR_0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg35_t {
+ unsigned int tc_mh_send : MH_DEBUG_REG35_TC_MH_send_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG35_TC_ROQ_RTR_q_SIZE;
+ unsigned int roq_mark_q_0 : MH_DEBUG_REG35_ROQ_MARK_q_0_SIZE;
+ unsigned int roq_valid_q_0 : MH_DEBUG_REG35_ROQ_VALID_q_0_SIZE;
+ unsigned int same_row_bank_q_0 : MH_DEBUG_REG35_SAME_ROW_BANK_q_0_SIZE;
+ unsigned int roq_addr_0 : MH_DEBUG_REG35_ROQ_ADDR_0_SIZE;
+ } mh_debug_reg35_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg35_t {
+ unsigned int roq_addr_0 : MH_DEBUG_REG35_ROQ_ADDR_0_SIZE;
+ unsigned int same_row_bank_q_0 : MH_DEBUG_REG35_SAME_ROW_BANK_q_0_SIZE;
+ unsigned int roq_valid_q_0 : MH_DEBUG_REG35_ROQ_VALID_q_0_SIZE;
+ unsigned int roq_mark_q_0 : MH_DEBUG_REG35_ROQ_MARK_q_0_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG35_TC_ROQ_RTR_q_SIZE;
+ unsigned int tc_mh_send : MH_DEBUG_REG35_TC_MH_send_SIZE;
+ } mh_debug_reg35_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg35_t f;
+} mh_debug_reg35_u;
+
+
+/*
+ * MH_DEBUG_REG36 struct
+ */
+
+#define MH_DEBUG_REG36_TC_MH_send_SIZE 1
+#define MH_DEBUG_REG36_TC_ROQ_RTR_q_SIZE 1
+#define MH_DEBUG_REG36_ROQ_MARK_q_1_SIZE 1
+#define MH_DEBUG_REG36_ROQ_VALID_q_1_SIZE 1
+#define MH_DEBUG_REG36_SAME_ROW_BANK_q_1_SIZE 1
+#define MH_DEBUG_REG36_ROQ_ADDR_1_SIZE 27
+
+#define MH_DEBUG_REG36_TC_MH_send_SHIFT 0
+#define MH_DEBUG_REG36_TC_ROQ_RTR_q_SHIFT 1
+#define MH_DEBUG_REG36_ROQ_MARK_q_1_SHIFT 2
+#define MH_DEBUG_REG36_ROQ_VALID_q_1_SHIFT 3
+#define MH_DEBUG_REG36_SAME_ROW_BANK_q_1_SHIFT 4
+#define MH_DEBUG_REG36_ROQ_ADDR_1_SHIFT 5
+
+#define MH_DEBUG_REG36_TC_MH_send_MASK 0x00000001
+#define MH_DEBUG_REG36_TC_ROQ_RTR_q_MASK 0x00000002
+#define MH_DEBUG_REG36_ROQ_MARK_q_1_MASK 0x00000004
+#define MH_DEBUG_REG36_ROQ_VALID_q_1_MASK 0x00000008
+#define MH_DEBUG_REG36_SAME_ROW_BANK_q_1_MASK 0x00000010
+#define MH_DEBUG_REG36_ROQ_ADDR_1_MASK 0xffffffe0
+
+#define MH_DEBUG_REG36_MASK \
+ (MH_DEBUG_REG36_TC_MH_send_MASK | \
+ MH_DEBUG_REG36_TC_ROQ_RTR_q_MASK | \
+ MH_DEBUG_REG36_ROQ_MARK_q_1_MASK | \
+ MH_DEBUG_REG36_ROQ_VALID_q_1_MASK | \
+ MH_DEBUG_REG36_SAME_ROW_BANK_q_1_MASK | \
+ MH_DEBUG_REG36_ROQ_ADDR_1_MASK)
+
+#define MH_DEBUG_REG36(tc_mh_send, tc_roq_rtr_q, roq_mark_q_1, roq_valid_q_1, same_row_bank_q_1, roq_addr_1) \
+ ((tc_mh_send << MH_DEBUG_REG36_TC_MH_send_SHIFT) | \
+ (tc_roq_rtr_q << MH_DEBUG_REG36_TC_ROQ_RTR_q_SHIFT) | \
+ (roq_mark_q_1 << MH_DEBUG_REG36_ROQ_MARK_q_1_SHIFT) | \
+ (roq_valid_q_1 << MH_DEBUG_REG36_ROQ_VALID_q_1_SHIFT) | \
+ (same_row_bank_q_1 << MH_DEBUG_REG36_SAME_ROW_BANK_q_1_SHIFT) | \
+ (roq_addr_1 << MH_DEBUG_REG36_ROQ_ADDR_1_SHIFT))
+
+#define MH_DEBUG_REG36_GET_TC_MH_send(mh_debug_reg36) \
+ ((mh_debug_reg36 & MH_DEBUG_REG36_TC_MH_send_MASK) >> MH_DEBUG_REG36_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG36_GET_TC_ROQ_RTR_q(mh_debug_reg36) \
+ ((mh_debug_reg36 & MH_DEBUG_REG36_TC_ROQ_RTR_q_MASK) >> MH_DEBUG_REG36_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG36_GET_ROQ_MARK_q_1(mh_debug_reg36) \
+ ((mh_debug_reg36 & MH_DEBUG_REG36_ROQ_MARK_q_1_MASK) >> MH_DEBUG_REG36_ROQ_MARK_q_1_SHIFT)
+#define MH_DEBUG_REG36_GET_ROQ_VALID_q_1(mh_debug_reg36) \
+ ((mh_debug_reg36 & MH_DEBUG_REG36_ROQ_VALID_q_1_MASK) >> MH_DEBUG_REG36_ROQ_VALID_q_1_SHIFT)
+#define MH_DEBUG_REG36_GET_SAME_ROW_BANK_q_1(mh_debug_reg36) \
+ ((mh_debug_reg36 & MH_DEBUG_REG36_SAME_ROW_BANK_q_1_MASK) >> MH_DEBUG_REG36_SAME_ROW_BANK_q_1_SHIFT)
+#define MH_DEBUG_REG36_GET_ROQ_ADDR_1(mh_debug_reg36) \
+ ((mh_debug_reg36 & MH_DEBUG_REG36_ROQ_ADDR_1_MASK) >> MH_DEBUG_REG36_ROQ_ADDR_1_SHIFT)
+
+#define MH_DEBUG_REG36_SET_TC_MH_send(mh_debug_reg36_reg, tc_mh_send) \
+ mh_debug_reg36_reg = (mh_debug_reg36_reg & ~MH_DEBUG_REG36_TC_MH_send_MASK) | (tc_mh_send << MH_DEBUG_REG36_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG36_SET_TC_ROQ_RTR_q(mh_debug_reg36_reg, tc_roq_rtr_q) \
+ mh_debug_reg36_reg = (mh_debug_reg36_reg & ~MH_DEBUG_REG36_TC_ROQ_RTR_q_MASK) | (tc_roq_rtr_q << MH_DEBUG_REG36_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG36_SET_ROQ_MARK_q_1(mh_debug_reg36_reg, roq_mark_q_1) \
+ mh_debug_reg36_reg = (mh_debug_reg36_reg & ~MH_DEBUG_REG36_ROQ_MARK_q_1_MASK) | (roq_mark_q_1 << MH_DEBUG_REG36_ROQ_MARK_q_1_SHIFT)
+#define MH_DEBUG_REG36_SET_ROQ_VALID_q_1(mh_debug_reg36_reg, roq_valid_q_1) \
+ mh_debug_reg36_reg = (mh_debug_reg36_reg & ~MH_DEBUG_REG36_ROQ_VALID_q_1_MASK) | (roq_valid_q_1 << MH_DEBUG_REG36_ROQ_VALID_q_1_SHIFT)
+#define MH_DEBUG_REG36_SET_SAME_ROW_BANK_q_1(mh_debug_reg36_reg, same_row_bank_q_1) \
+ mh_debug_reg36_reg = (mh_debug_reg36_reg & ~MH_DEBUG_REG36_SAME_ROW_BANK_q_1_MASK) | (same_row_bank_q_1 << MH_DEBUG_REG36_SAME_ROW_BANK_q_1_SHIFT)
+#define MH_DEBUG_REG36_SET_ROQ_ADDR_1(mh_debug_reg36_reg, roq_addr_1) \
+ mh_debug_reg36_reg = (mh_debug_reg36_reg & ~MH_DEBUG_REG36_ROQ_ADDR_1_MASK) | (roq_addr_1 << MH_DEBUG_REG36_ROQ_ADDR_1_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg36_t {
+ unsigned int tc_mh_send : MH_DEBUG_REG36_TC_MH_send_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG36_TC_ROQ_RTR_q_SIZE;
+ unsigned int roq_mark_q_1 : MH_DEBUG_REG36_ROQ_MARK_q_1_SIZE;
+ unsigned int roq_valid_q_1 : MH_DEBUG_REG36_ROQ_VALID_q_1_SIZE;
+ unsigned int same_row_bank_q_1 : MH_DEBUG_REG36_SAME_ROW_BANK_q_1_SIZE;
+ unsigned int roq_addr_1 : MH_DEBUG_REG36_ROQ_ADDR_1_SIZE;
+ } mh_debug_reg36_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg36_t {
+ unsigned int roq_addr_1 : MH_DEBUG_REG36_ROQ_ADDR_1_SIZE;
+ unsigned int same_row_bank_q_1 : MH_DEBUG_REG36_SAME_ROW_BANK_q_1_SIZE;
+ unsigned int roq_valid_q_1 : MH_DEBUG_REG36_ROQ_VALID_q_1_SIZE;
+ unsigned int roq_mark_q_1 : MH_DEBUG_REG36_ROQ_MARK_q_1_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG36_TC_ROQ_RTR_q_SIZE;
+ unsigned int tc_mh_send : MH_DEBUG_REG36_TC_MH_send_SIZE;
+ } mh_debug_reg36_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg36_t f;
+} mh_debug_reg36_u;
+
+
+/*
+ * MH_DEBUG_REG37 struct
+ */
+
+#define MH_DEBUG_REG37_TC_MH_send_SIZE 1
+#define MH_DEBUG_REG37_TC_ROQ_RTR_q_SIZE 1
+#define MH_DEBUG_REG37_ROQ_MARK_q_2_SIZE 1
+#define MH_DEBUG_REG37_ROQ_VALID_q_2_SIZE 1
+#define MH_DEBUG_REG37_SAME_ROW_BANK_q_2_SIZE 1
+#define MH_DEBUG_REG37_ROQ_ADDR_2_SIZE 27
+
+#define MH_DEBUG_REG37_TC_MH_send_SHIFT 0
+#define MH_DEBUG_REG37_TC_ROQ_RTR_q_SHIFT 1
+#define MH_DEBUG_REG37_ROQ_MARK_q_2_SHIFT 2
+#define MH_DEBUG_REG37_ROQ_VALID_q_2_SHIFT 3
+#define MH_DEBUG_REG37_SAME_ROW_BANK_q_2_SHIFT 4
+#define MH_DEBUG_REG37_ROQ_ADDR_2_SHIFT 5
+
+#define MH_DEBUG_REG37_TC_MH_send_MASK 0x00000001
+#define MH_DEBUG_REG37_TC_ROQ_RTR_q_MASK 0x00000002
+#define MH_DEBUG_REG37_ROQ_MARK_q_2_MASK 0x00000004
+#define MH_DEBUG_REG37_ROQ_VALID_q_2_MASK 0x00000008
+#define MH_DEBUG_REG37_SAME_ROW_BANK_q_2_MASK 0x00000010
+#define MH_DEBUG_REG37_ROQ_ADDR_2_MASK 0xffffffe0
+
+#define MH_DEBUG_REG37_MASK \
+ (MH_DEBUG_REG37_TC_MH_send_MASK | \
+ MH_DEBUG_REG37_TC_ROQ_RTR_q_MASK | \
+ MH_DEBUG_REG37_ROQ_MARK_q_2_MASK | \
+ MH_DEBUG_REG37_ROQ_VALID_q_2_MASK | \
+ MH_DEBUG_REG37_SAME_ROW_BANK_q_2_MASK | \
+ MH_DEBUG_REG37_ROQ_ADDR_2_MASK)
+
+#define MH_DEBUG_REG37(tc_mh_send, tc_roq_rtr_q, roq_mark_q_2, roq_valid_q_2, same_row_bank_q_2, roq_addr_2) \
+ ((tc_mh_send << MH_DEBUG_REG37_TC_MH_send_SHIFT) | \
+ (tc_roq_rtr_q << MH_DEBUG_REG37_TC_ROQ_RTR_q_SHIFT) | \
+ (roq_mark_q_2 << MH_DEBUG_REG37_ROQ_MARK_q_2_SHIFT) | \
+ (roq_valid_q_2 << MH_DEBUG_REG37_ROQ_VALID_q_2_SHIFT) | \
+ (same_row_bank_q_2 << MH_DEBUG_REG37_SAME_ROW_BANK_q_2_SHIFT) | \
+ (roq_addr_2 << MH_DEBUG_REG37_ROQ_ADDR_2_SHIFT))
+
+#define MH_DEBUG_REG37_GET_TC_MH_send(mh_debug_reg37) \
+ ((mh_debug_reg37 & MH_DEBUG_REG37_TC_MH_send_MASK) >> MH_DEBUG_REG37_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG37_GET_TC_ROQ_RTR_q(mh_debug_reg37) \
+ ((mh_debug_reg37 & MH_DEBUG_REG37_TC_ROQ_RTR_q_MASK) >> MH_DEBUG_REG37_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG37_GET_ROQ_MARK_q_2(mh_debug_reg37) \
+ ((mh_debug_reg37 & MH_DEBUG_REG37_ROQ_MARK_q_2_MASK) >> MH_DEBUG_REG37_ROQ_MARK_q_2_SHIFT)
+#define MH_DEBUG_REG37_GET_ROQ_VALID_q_2(mh_debug_reg37) \
+ ((mh_debug_reg37 & MH_DEBUG_REG37_ROQ_VALID_q_2_MASK) >> MH_DEBUG_REG37_ROQ_VALID_q_2_SHIFT)
+#define MH_DEBUG_REG37_GET_SAME_ROW_BANK_q_2(mh_debug_reg37) \
+ ((mh_debug_reg37 & MH_DEBUG_REG37_SAME_ROW_BANK_q_2_MASK) >> MH_DEBUG_REG37_SAME_ROW_BANK_q_2_SHIFT)
+#define MH_DEBUG_REG37_GET_ROQ_ADDR_2(mh_debug_reg37) \
+ ((mh_debug_reg37 & MH_DEBUG_REG37_ROQ_ADDR_2_MASK) >> MH_DEBUG_REG37_ROQ_ADDR_2_SHIFT)
+
+#define MH_DEBUG_REG37_SET_TC_MH_send(mh_debug_reg37_reg, tc_mh_send) \
+ mh_debug_reg37_reg = (mh_debug_reg37_reg & ~MH_DEBUG_REG37_TC_MH_send_MASK) | (tc_mh_send << MH_DEBUG_REG37_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG37_SET_TC_ROQ_RTR_q(mh_debug_reg37_reg, tc_roq_rtr_q) \
+ mh_debug_reg37_reg = (mh_debug_reg37_reg & ~MH_DEBUG_REG37_TC_ROQ_RTR_q_MASK) | (tc_roq_rtr_q << MH_DEBUG_REG37_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG37_SET_ROQ_MARK_q_2(mh_debug_reg37_reg, roq_mark_q_2) \
+ mh_debug_reg37_reg = (mh_debug_reg37_reg & ~MH_DEBUG_REG37_ROQ_MARK_q_2_MASK) | (roq_mark_q_2 << MH_DEBUG_REG37_ROQ_MARK_q_2_SHIFT)
+#define MH_DEBUG_REG37_SET_ROQ_VALID_q_2(mh_debug_reg37_reg, roq_valid_q_2) \
+ mh_debug_reg37_reg = (mh_debug_reg37_reg & ~MH_DEBUG_REG37_ROQ_VALID_q_2_MASK) | (roq_valid_q_2 << MH_DEBUG_REG37_ROQ_VALID_q_2_SHIFT)
+#define MH_DEBUG_REG37_SET_SAME_ROW_BANK_q_2(mh_debug_reg37_reg, same_row_bank_q_2) \
+ mh_debug_reg37_reg = (mh_debug_reg37_reg & ~MH_DEBUG_REG37_SAME_ROW_BANK_q_2_MASK) | (same_row_bank_q_2 << MH_DEBUG_REG37_SAME_ROW_BANK_q_2_SHIFT)
+#define MH_DEBUG_REG37_SET_ROQ_ADDR_2(mh_debug_reg37_reg, roq_addr_2) \
+ mh_debug_reg37_reg = (mh_debug_reg37_reg & ~MH_DEBUG_REG37_ROQ_ADDR_2_MASK) | (roq_addr_2 << MH_DEBUG_REG37_ROQ_ADDR_2_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg37_t {
+ unsigned int tc_mh_send : MH_DEBUG_REG37_TC_MH_send_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG37_TC_ROQ_RTR_q_SIZE;
+ unsigned int roq_mark_q_2 : MH_DEBUG_REG37_ROQ_MARK_q_2_SIZE;
+ unsigned int roq_valid_q_2 : MH_DEBUG_REG37_ROQ_VALID_q_2_SIZE;
+ unsigned int same_row_bank_q_2 : MH_DEBUG_REG37_SAME_ROW_BANK_q_2_SIZE;
+ unsigned int roq_addr_2 : MH_DEBUG_REG37_ROQ_ADDR_2_SIZE;
+ } mh_debug_reg37_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg37_t {
+ unsigned int roq_addr_2 : MH_DEBUG_REG37_ROQ_ADDR_2_SIZE;
+ unsigned int same_row_bank_q_2 : MH_DEBUG_REG37_SAME_ROW_BANK_q_2_SIZE;
+ unsigned int roq_valid_q_2 : MH_DEBUG_REG37_ROQ_VALID_q_2_SIZE;
+ unsigned int roq_mark_q_2 : MH_DEBUG_REG37_ROQ_MARK_q_2_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG37_TC_ROQ_RTR_q_SIZE;
+ unsigned int tc_mh_send : MH_DEBUG_REG37_TC_MH_send_SIZE;
+ } mh_debug_reg37_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg37_t f;
+} mh_debug_reg37_u;
+
+
+/*
+ * MH_DEBUG_REG38 struct
+ */
+
+#define MH_DEBUG_REG38_TC_MH_send_SIZE 1
+#define MH_DEBUG_REG38_TC_ROQ_RTR_q_SIZE 1
+#define MH_DEBUG_REG38_ROQ_MARK_q_3_SIZE 1
+#define MH_DEBUG_REG38_ROQ_VALID_q_3_SIZE 1
+#define MH_DEBUG_REG38_SAME_ROW_BANK_q_3_SIZE 1
+#define MH_DEBUG_REG38_ROQ_ADDR_3_SIZE 27
+
+#define MH_DEBUG_REG38_TC_MH_send_SHIFT 0
+#define MH_DEBUG_REG38_TC_ROQ_RTR_q_SHIFT 1
+#define MH_DEBUG_REG38_ROQ_MARK_q_3_SHIFT 2
+#define MH_DEBUG_REG38_ROQ_VALID_q_3_SHIFT 3
+#define MH_DEBUG_REG38_SAME_ROW_BANK_q_3_SHIFT 4
+#define MH_DEBUG_REG38_ROQ_ADDR_3_SHIFT 5
+
+#define MH_DEBUG_REG38_TC_MH_send_MASK 0x00000001
+#define MH_DEBUG_REG38_TC_ROQ_RTR_q_MASK 0x00000002
+#define MH_DEBUG_REG38_ROQ_MARK_q_3_MASK 0x00000004
+#define MH_DEBUG_REG38_ROQ_VALID_q_3_MASK 0x00000008
+#define MH_DEBUG_REG38_SAME_ROW_BANK_q_3_MASK 0x00000010
+#define MH_DEBUG_REG38_ROQ_ADDR_3_MASK 0xffffffe0
+
+#define MH_DEBUG_REG38_MASK \
+ (MH_DEBUG_REG38_TC_MH_send_MASK | \
+ MH_DEBUG_REG38_TC_ROQ_RTR_q_MASK | \
+ MH_DEBUG_REG38_ROQ_MARK_q_3_MASK | \
+ MH_DEBUG_REG38_ROQ_VALID_q_3_MASK | \
+ MH_DEBUG_REG38_SAME_ROW_BANK_q_3_MASK | \
+ MH_DEBUG_REG38_ROQ_ADDR_3_MASK)
+
+#define MH_DEBUG_REG38(tc_mh_send, tc_roq_rtr_q, roq_mark_q_3, roq_valid_q_3, same_row_bank_q_3, roq_addr_3) \
+ ((tc_mh_send << MH_DEBUG_REG38_TC_MH_send_SHIFT) | \
+ (tc_roq_rtr_q << MH_DEBUG_REG38_TC_ROQ_RTR_q_SHIFT) | \
+ (roq_mark_q_3 << MH_DEBUG_REG38_ROQ_MARK_q_3_SHIFT) | \
+ (roq_valid_q_3 << MH_DEBUG_REG38_ROQ_VALID_q_3_SHIFT) | \
+ (same_row_bank_q_3 << MH_DEBUG_REG38_SAME_ROW_BANK_q_3_SHIFT) | \
+ (roq_addr_3 << MH_DEBUG_REG38_ROQ_ADDR_3_SHIFT))
+
+#define MH_DEBUG_REG38_GET_TC_MH_send(mh_debug_reg38) \
+ ((mh_debug_reg38 & MH_DEBUG_REG38_TC_MH_send_MASK) >> MH_DEBUG_REG38_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG38_GET_TC_ROQ_RTR_q(mh_debug_reg38) \
+ ((mh_debug_reg38 & MH_DEBUG_REG38_TC_ROQ_RTR_q_MASK) >> MH_DEBUG_REG38_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG38_GET_ROQ_MARK_q_3(mh_debug_reg38) \
+ ((mh_debug_reg38 & MH_DEBUG_REG38_ROQ_MARK_q_3_MASK) >> MH_DEBUG_REG38_ROQ_MARK_q_3_SHIFT)
+#define MH_DEBUG_REG38_GET_ROQ_VALID_q_3(mh_debug_reg38) \
+ ((mh_debug_reg38 & MH_DEBUG_REG38_ROQ_VALID_q_3_MASK) >> MH_DEBUG_REG38_ROQ_VALID_q_3_SHIFT)
+#define MH_DEBUG_REG38_GET_SAME_ROW_BANK_q_3(mh_debug_reg38) \
+ ((mh_debug_reg38 & MH_DEBUG_REG38_SAME_ROW_BANK_q_3_MASK) >> MH_DEBUG_REG38_SAME_ROW_BANK_q_3_SHIFT)
+#define MH_DEBUG_REG38_GET_ROQ_ADDR_3(mh_debug_reg38) \
+ ((mh_debug_reg38 & MH_DEBUG_REG38_ROQ_ADDR_3_MASK) >> MH_DEBUG_REG38_ROQ_ADDR_3_SHIFT)
+
+#define MH_DEBUG_REG38_SET_TC_MH_send(mh_debug_reg38_reg, tc_mh_send) \
+ mh_debug_reg38_reg = (mh_debug_reg38_reg & ~MH_DEBUG_REG38_TC_MH_send_MASK) | (tc_mh_send << MH_DEBUG_REG38_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG38_SET_TC_ROQ_RTR_q(mh_debug_reg38_reg, tc_roq_rtr_q) \
+ mh_debug_reg38_reg = (mh_debug_reg38_reg & ~MH_DEBUG_REG38_TC_ROQ_RTR_q_MASK) | (tc_roq_rtr_q << MH_DEBUG_REG38_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG38_SET_ROQ_MARK_q_3(mh_debug_reg38_reg, roq_mark_q_3) \
+ mh_debug_reg38_reg = (mh_debug_reg38_reg & ~MH_DEBUG_REG38_ROQ_MARK_q_3_MASK) | (roq_mark_q_3 << MH_DEBUG_REG38_ROQ_MARK_q_3_SHIFT)
+#define MH_DEBUG_REG38_SET_ROQ_VALID_q_3(mh_debug_reg38_reg, roq_valid_q_3) \
+ mh_debug_reg38_reg = (mh_debug_reg38_reg & ~MH_DEBUG_REG38_ROQ_VALID_q_3_MASK) | (roq_valid_q_3 << MH_DEBUG_REG38_ROQ_VALID_q_3_SHIFT)
+#define MH_DEBUG_REG38_SET_SAME_ROW_BANK_q_3(mh_debug_reg38_reg, same_row_bank_q_3) \
+ mh_debug_reg38_reg = (mh_debug_reg38_reg & ~MH_DEBUG_REG38_SAME_ROW_BANK_q_3_MASK) | (same_row_bank_q_3 << MH_DEBUG_REG38_SAME_ROW_BANK_q_3_SHIFT)
+#define MH_DEBUG_REG38_SET_ROQ_ADDR_3(mh_debug_reg38_reg, roq_addr_3) \
+ mh_debug_reg38_reg = (mh_debug_reg38_reg & ~MH_DEBUG_REG38_ROQ_ADDR_3_MASK) | (roq_addr_3 << MH_DEBUG_REG38_ROQ_ADDR_3_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg38_t {
+ unsigned int tc_mh_send : MH_DEBUG_REG38_TC_MH_send_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG38_TC_ROQ_RTR_q_SIZE;
+ unsigned int roq_mark_q_3 : MH_DEBUG_REG38_ROQ_MARK_q_3_SIZE;
+ unsigned int roq_valid_q_3 : MH_DEBUG_REG38_ROQ_VALID_q_3_SIZE;
+ unsigned int same_row_bank_q_3 : MH_DEBUG_REG38_SAME_ROW_BANK_q_3_SIZE;
+ unsigned int roq_addr_3 : MH_DEBUG_REG38_ROQ_ADDR_3_SIZE;
+ } mh_debug_reg38_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg38_t {
+ unsigned int roq_addr_3 : MH_DEBUG_REG38_ROQ_ADDR_3_SIZE;
+ unsigned int same_row_bank_q_3 : MH_DEBUG_REG38_SAME_ROW_BANK_q_3_SIZE;
+ unsigned int roq_valid_q_3 : MH_DEBUG_REG38_ROQ_VALID_q_3_SIZE;
+ unsigned int roq_mark_q_3 : MH_DEBUG_REG38_ROQ_MARK_q_3_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG38_TC_ROQ_RTR_q_SIZE;
+ unsigned int tc_mh_send : MH_DEBUG_REG38_TC_MH_send_SIZE;
+ } mh_debug_reg38_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg38_t f;
+} mh_debug_reg38_u;
+
+
+/*
+ * MH_DEBUG_REG39 struct
+ */
+
+#define MH_DEBUG_REG39_TC_MH_send_SIZE 1
+#define MH_DEBUG_REG39_TC_ROQ_RTR_q_SIZE 1
+#define MH_DEBUG_REG39_ROQ_MARK_q_4_SIZE 1
+#define MH_DEBUG_REG39_ROQ_VALID_q_4_SIZE 1
+#define MH_DEBUG_REG39_SAME_ROW_BANK_q_4_SIZE 1
+#define MH_DEBUG_REG39_ROQ_ADDR_4_SIZE 27
+
+#define MH_DEBUG_REG39_TC_MH_send_SHIFT 0
+#define MH_DEBUG_REG39_TC_ROQ_RTR_q_SHIFT 1
+#define MH_DEBUG_REG39_ROQ_MARK_q_4_SHIFT 2
+#define MH_DEBUG_REG39_ROQ_VALID_q_4_SHIFT 3
+#define MH_DEBUG_REG39_SAME_ROW_BANK_q_4_SHIFT 4
+#define MH_DEBUG_REG39_ROQ_ADDR_4_SHIFT 5
+
+#define MH_DEBUG_REG39_TC_MH_send_MASK 0x00000001
+#define MH_DEBUG_REG39_TC_ROQ_RTR_q_MASK 0x00000002
+#define MH_DEBUG_REG39_ROQ_MARK_q_4_MASK 0x00000004
+#define MH_DEBUG_REG39_ROQ_VALID_q_4_MASK 0x00000008
+#define MH_DEBUG_REG39_SAME_ROW_BANK_q_4_MASK 0x00000010
+#define MH_DEBUG_REG39_ROQ_ADDR_4_MASK 0xffffffe0
+
+#define MH_DEBUG_REG39_MASK \
+ (MH_DEBUG_REG39_TC_MH_send_MASK | \
+ MH_DEBUG_REG39_TC_ROQ_RTR_q_MASK | \
+ MH_DEBUG_REG39_ROQ_MARK_q_4_MASK | \
+ MH_DEBUG_REG39_ROQ_VALID_q_4_MASK | \
+ MH_DEBUG_REG39_SAME_ROW_BANK_q_4_MASK | \
+ MH_DEBUG_REG39_ROQ_ADDR_4_MASK)
+
+#define MH_DEBUG_REG39(tc_mh_send, tc_roq_rtr_q, roq_mark_q_4, roq_valid_q_4, same_row_bank_q_4, roq_addr_4) \
+ ((tc_mh_send << MH_DEBUG_REG39_TC_MH_send_SHIFT) | \
+ (tc_roq_rtr_q << MH_DEBUG_REG39_TC_ROQ_RTR_q_SHIFT) | \
+ (roq_mark_q_4 << MH_DEBUG_REG39_ROQ_MARK_q_4_SHIFT) | \
+ (roq_valid_q_4 << MH_DEBUG_REG39_ROQ_VALID_q_4_SHIFT) | \
+ (same_row_bank_q_4 << MH_DEBUG_REG39_SAME_ROW_BANK_q_4_SHIFT) | \
+ (roq_addr_4 << MH_DEBUG_REG39_ROQ_ADDR_4_SHIFT))
+
+#define MH_DEBUG_REG39_GET_TC_MH_send(mh_debug_reg39) \
+ ((mh_debug_reg39 & MH_DEBUG_REG39_TC_MH_send_MASK) >> MH_DEBUG_REG39_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG39_GET_TC_ROQ_RTR_q(mh_debug_reg39) \
+ ((mh_debug_reg39 & MH_DEBUG_REG39_TC_ROQ_RTR_q_MASK) >> MH_DEBUG_REG39_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG39_GET_ROQ_MARK_q_4(mh_debug_reg39) \
+ ((mh_debug_reg39 & MH_DEBUG_REG39_ROQ_MARK_q_4_MASK) >> MH_DEBUG_REG39_ROQ_MARK_q_4_SHIFT)
+#define MH_DEBUG_REG39_GET_ROQ_VALID_q_4(mh_debug_reg39) \
+ ((mh_debug_reg39 & MH_DEBUG_REG39_ROQ_VALID_q_4_MASK) >> MH_DEBUG_REG39_ROQ_VALID_q_4_SHIFT)
+#define MH_DEBUG_REG39_GET_SAME_ROW_BANK_q_4(mh_debug_reg39) \
+ ((mh_debug_reg39 & MH_DEBUG_REG39_SAME_ROW_BANK_q_4_MASK) >> MH_DEBUG_REG39_SAME_ROW_BANK_q_4_SHIFT)
+#define MH_DEBUG_REG39_GET_ROQ_ADDR_4(mh_debug_reg39) \
+ ((mh_debug_reg39 & MH_DEBUG_REG39_ROQ_ADDR_4_MASK) >> MH_DEBUG_REG39_ROQ_ADDR_4_SHIFT)
+
+#define MH_DEBUG_REG39_SET_TC_MH_send(mh_debug_reg39_reg, tc_mh_send) \
+ mh_debug_reg39_reg = (mh_debug_reg39_reg & ~MH_DEBUG_REG39_TC_MH_send_MASK) | (tc_mh_send << MH_DEBUG_REG39_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG39_SET_TC_ROQ_RTR_q(mh_debug_reg39_reg, tc_roq_rtr_q) \
+ mh_debug_reg39_reg = (mh_debug_reg39_reg & ~MH_DEBUG_REG39_TC_ROQ_RTR_q_MASK) | (tc_roq_rtr_q << MH_DEBUG_REG39_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG39_SET_ROQ_MARK_q_4(mh_debug_reg39_reg, roq_mark_q_4) \
+ mh_debug_reg39_reg = (mh_debug_reg39_reg & ~MH_DEBUG_REG39_ROQ_MARK_q_4_MASK) | (roq_mark_q_4 << MH_DEBUG_REG39_ROQ_MARK_q_4_SHIFT)
+#define MH_DEBUG_REG39_SET_ROQ_VALID_q_4(mh_debug_reg39_reg, roq_valid_q_4) \
+ mh_debug_reg39_reg = (mh_debug_reg39_reg & ~MH_DEBUG_REG39_ROQ_VALID_q_4_MASK) | (roq_valid_q_4 << MH_DEBUG_REG39_ROQ_VALID_q_4_SHIFT)
+#define MH_DEBUG_REG39_SET_SAME_ROW_BANK_q_4(mh_debug_reg39_reg, same_row_bank_q_4) \
+ mh_debug_reg39_reg = (mh_debug_reg39_reg & ~MH_DEBUG_REG39_SAME_ROW_BANK_q_4_MASK) | (same_row_bank_q_4 << MH_DEBUG_REG39_SAME_ROW_BANK_q_4_SHIFT)
+#define MH_DEBUG_REG39_SET_ROQ_ADDR_4(mh_debug_reg39_reg, roq_addr_4) \
+ mh_debug_reg39_reg = (mh_debug_reg39_reg & ~MH_DEBUG_REG39_ROQ_ADDR_4_MASK) | (roq_addr_4 << MH_DEBUG_REG39_ROQ_ADDR_4_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg39_t {
+ unsigned int tc_mh_send : MH_DEBUG_REG39_TC_MH_send_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG39_TC_ROQ_RTR_q_SIZE;
+ unsigned int roq_mark_q_4 : MH_DEBUG_REG39_ROQ_MARK_q_4_SIZE;
+ unsigned int roq_valid_q_4 : MH_DEBUG_REG39_ROQ_VALID_q_4_SIZE;
+ unsigned int same_row_bank_q_4 : MH_DEBUG_REG39_SAME_ROW_BANK_q_4_SIZE;
+ unsigned int roq_addr_4 : MH_DEBUG_REG39_ROQ_ADDR_4_SIZE;
+ } mh_debug_reg39_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg39_t {
+ unsigned int roq_addr_4 : MH_DEBUG_REG39_ROQ_ADDR_4_SIZE;
+ unsigned int same_row_bank_q_4 : MH_DEBUG_REG39_SAME_ROW_BANK_q_4_SIZE;
+ unsigned int roq_valid_q_4 : MH_DEBUG_REG39_ROQ_VALID_q_4_SIZE;
+ unsigned int roq_mark_q_4 : MH_DEBUG_REG39_ROQ_MARK_q_4_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG39_TC_ROQ_RTR_q_SIZE;
+ unsigned int tc_mh_send : MH_DEBUG_REG39_TC_MH_send_SIZE;
+ } mh_debug_reg39_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg39_t f;
+} mh_debug_reg39_u;
+
+
+/*
+ * MH_DEBUG_REG40 struct
+ */
+
+#define MH_DEBUG_REG40_TC_MH_send_SIZE 1
+#define MH_DEBUG_REG40_TC_ROQ_RTR_q_SIZE 1
+#define MH_DEBUG_REG40_ROQ_MARK_q_5_SIZE 1
+#define MH_DEBUG_REG40_ROQ_VALID_q_5_SIZE 1
+#define MH_DEBUG_REG40_SAME_ROW_BANK_q_5_SIZE 1
+#define MH_DEBUG_REG40_ROQ_ADDR_5_SIZE 27
+
+#define MH_DEBUG_REG40_TC_MH_send_SHIFT 0
+#define MH_DEBUG_REG40_TC_ROQ_RTR_q_SHIFT 1
+#define MH_DEBUG_REG40_ROQ_MARK_q_5_SHIFT 2
+#define MH_DEBUG_REG40_ROQ_VALID_q_5_SHIFT 3
+#define MH_DEBUG_REG40_SAME_ROW_BANK_q_5_SHIFT 4
+#define MH_DEBUG_REG40_ROQ_ADDR_5_SHIFT 5
+
+#define MH_DEBUG_REG40_TC_MH_send_MASK 0x00000001
+#define MH_DEBUG_REG40_TC_ROQ_RTR_q_MASK 0x00000002
+#define MH_DEBUG_REG40_ROQ_MARK_q_5_MASK 0x00000004
+#define MH_DEBUG_REG40_ROQ_VALID_q_5_MASK 0x00000008
+#define MH_DEBUG_REG40_SAME_ROW_BANK_q_5_MASK 0x00000010
+#define MH_DEBUG_REG40_ROQ_ADDR_5_MASK 0xffffffe0
+
+#define MH_DEBUG_REG40_MASK \
+ (MH_DEBUG_REG40_TC_MH_send_MASK | \
+ MH_DEBUG_REG40_TC_ROQ_RTR_q_MASK | \
+ MH_DEBUG_REG40_ROQ_MARK_q_5_MASK | \
+ MH_DEBUG_REG40_ROQ_VALID_q_5_MASK | \
+ MH_DEBUG_REG40_SAME_ROW_BANK_q_5_MASK | \
+ MH_DEBUG_REG40_ROQ_ADDR_5_MASK)
+
+#define MH_DEBUG_REG40(tc_mh_send, tc_roq_rtr_q, roq_mark_q_5, roq_valid_q_5, same_row_bank_q_5, roq_addr_5) \
+ ((tc_mh_send << MH_DEBUG_REG40_TC_MH_send_SHIFT) | \
+ (tc_roq_rtr_q << MH_DEBUG_REG40_TC_ROQ_RTR_q_SHIFT) | \
+ (roq_mark_q_5 << MH_DEBUG_REG40_ROQ_MARK_q_5_SHIFT) | \
+ (roq_valid_q_5 << MH_DEBUG_REG40_ROQ_VALID_q_5_SHIFT) | \
+ (same_row_bank_q_5 << MH_DEBUG_REG40_SAME_ROW_BANK_q_5_SHIFT) | \
+ (roq_addr_5 << MH_DEBUG_REG40_ROQ_ADDR_5_SHIFT))
+
+#define MH_DEBUG_REG40_GET_TC_MH_send(mh_debug_reg40) \
+ ((mh_debug_reg40 & MH_DEBUG_REG40_TC_MH_send_MASK) >> MH_DEBUG_REG40_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG40_GET_TC_ROQ_RTR_q(mh_debug_reg40) \
+ ((mh_debug_reg40 & MH_DEBUG_REG40_TC_ROQ_RTR_q_MASK) >> MH_DEBUG_REG40_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG40_GET_ROQ_MARK_q_5(mh_debug_reg40) \
+ ((mh_debug_reg40 & MH_DEBUG_REG40_ROQ_MARK_q_5_MASK) >> MH_DEBUG_REG40_ROQ_MARK_q_5_SHIFT)
+#define MH_DEBUG_REG40_GET_ROQ_VALID_q_5(mh_debug_reg40) \
+ ((mh_debug_reg40 & MH_DEBUG_REG40_ROQ_VALID_q_5_MASK) >> MH_DEBUG_REG40_ROQ_VALID_q_5_SHIFT)
+#define MH_DEBUG_REG40_GET_SAME_ROW_BANK_q_5(mh_debug_reg40) \
+ ((mh_debug_reg40 & MH_DEBUG_REG40_SAME_ROW_BANK_q_5_MASK) >> MH_DEBUG_REG40_SAME_ROW_BANK_q_5_SHIFT)
+#define MH_DEBUG_REG40_GET_ROQ_ADDR_5(mh_debug_reg40) \
+ ((mh_debug_reg40 & MH_DEBUG_REG40_ROQ_ADDR_5_MASK) >> MH_DEBUG_REG40_ROQ_ADDR_5_SHIFT)
+
+#define MH_DEBUG_REG40_SET_TC_MH_send(mh_debug_reg40_reg, tc_mh_send) \
+ mh_debug_reg40_reg = (mh_debug_reg40_reg & ~MH_DEBUG_REG40_TC_MH_send_MASK) | (tc_mh_send << MH_DEBUG_REG40_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG40_SET_TC_ROQ_RTR_q(mh_debug_reg40_reg, tc_roq_rtr_q) \
+ mh_debug_reg40_reg = (mh_debug_reg40_reg & ~MH_DEBUG_REG40_TC_ROQ_RTR_q_MASK) | (tc_roq_rtr_q << MH_DEBUG_REG40_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG40_SET_ROQ_MARK_q_5(mh_debug_reg40_reg, roq_mark_q_5) \
+ mh_debug_reg40_reg = (mh_debug_reg40_reg & ~MH_DEBUG_REG40_ROQ_MARK_q_5_MASK) | (roq_mark_q_5 << MH_DEBUG_REG40_ROQ_MARK_q_5_SHIFT)
+#define MH_DEBUG_REG40_SET_ROQ_VALID_q_5(mh_debug_reg40_reg, roq_valid_q_5) \
+ mh_debug_reg40_reg = (mh_debug_reg40_reg & ~MH_DEBUG_REG40_ROQ_VALID_q_5_MASK) | (roq_valid_q_5 << MH_DEBUG_REG40_ROQ_VALID_q_5_SHIFT)
+#define MH_DEBUG_REG40_SET_SAME_ROW_BANK_q_5(mh_debug_reg40_reg, same_row_bank_q_5) \
+ mh_debug_reg40_reg = (mh_debug_reg40_reg & ~MH_DEBUG_REG40_SAME_ROW_BANK_q_5_MASK) | (same_row_bank_q_5 << MH_DEBUG_REG40_SAME_ROW_BANK_q_5_SHIFT)
+#define MH_DEBUG_REG40_SET_ROQ_ADDR_5(mh_debug_reg40_reg, roq_addr_5) \
+ mh_debug_reg40_reg = (mh_debug_reg40_reg & ~MH_DEBUG_REG40_ROQ_ADDR_5_MASK) | (roq_addr_5 << MH_DEBUG_REG40_ROQ_ADDR_5_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg40_t {
+ unsigned int tc_mh_send : MH_DEBUG_REG40_TC_MH_send_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG40_TC_ROQ_RTR_q_SIZE;
+ unsigned int roq_mark_q_5 : MH_DEBUG_REG40_ROQ_MARK_q_5_SIZE;
+ unsigned int roq_valid_q_5 : MH_DEBUG_REG40_ROQ_VALID_q_5_SIZE;
+ unsigned int same_row_bank_q_5 : MH_DEBUG_REG40_SAME_ROW_BANK_q_5_SIZE;
+ unsigned int roq_addr_5 : MH_DEBUG_REG40_ROQ_ADDR_5_SIZE;
+ } mh_debug_reg40_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg40_t {
+ unsigned int roq_addr_5 : MH_DEBUG_REG40_ROQ_ADDR_5_SIZE;
+ unsigned int same_row_bank_q_5 : MH_DEBUG_REG40_SAME_ROW_BANK_q_5_SIZE;
+ unsigned int roq_valid_q_5 : MH_DEBUG_REG40_ROQ_VALID_q_5_SIZE;
+ unsigned int roq_mark_q_5 : MH_DEBUG_REG40_ROQ_MARK_q_5_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG40_TC_ROQ_RTR_q_SIZE;
+ unsigned int tc_mh_send : MH_DEBUG_REG40_TC_MH_send_SIZE;
+ } mh_debug_reg40_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg40_t f;
+} mh_debug_reg40_u;
+
+
+/*
+ * MH_DEBUG_REG41 struct
+ */
+
+#define MH_DEBUG_REG41_TC_MH_send_SIZE 1
+#define MH_DEBUG_REG41_TC_ROQ_RTR_q_SIZE 1
+#define MH_DEBUG_REG41_ROQ_MARK_q_6_SIZE 1
+#define MH_DEBUG_REG41_ROQ_VALID_q_6_SIZE 1
+#define MH_DEBUG_REG41_SAME_ROW_BANK_q_6_SIZE 1
+#define MH_DEBUG_REG41_ROQ_ADDR_6_SIZE 27
+
+#define MH_DEBUG_REG41_TC_MH_send_SHIFT 0
+#define MH_DEBUG_REG41_TC_ROQ_RTR_q_SHIFT 1
+#define MH_DEBUG_REG41_ROQ_MARK_q_6_SHIFT 2
+#define MH_DEBUG_REG41_ROQ_VALID_q_6_SHIFT 3
+#define MH_DEBUG_REG41_SAME_ROW_BANK_q_6_SHIFT 4
+#define MH_DEBUG_REG41_ROQ_ADDR_6_SHIFT 5
+
+#define MH_DEBUG_REG41_TC_MH_send_MASK 0x00000001
+#define MH_DEBUG_REG41_TC_ROQ_RTR_q_MASK 0x00000002
+#define MH_DEBUG_REG41_ROQ_MARK_q_6_MASK 0x00000004
+#define MH_DEBUG_REG41_ROQ_VALID_q_6_MASK 0x00000008
+#define MH_DEBUG_REG41_SAME_ROW_BANK_q_6_MASK 0x00000010
+#define MH_DEBUG_REG41_ROQ_ADDR_6_MASK 0xffffffe0
+
+#define MH_DEBUG_REG41_MASK \
+ (MH_DEBUG_REG41_TC_MH_send_MASK | \
+ MH_DEBUG_REG41_TC_ROQ_RTR_q_MASK | \
+ MH_DEBUG_REG41_ROQ_MARK_q_6_MASK | \
+ MH_DEBUG_REG41_ROQ_VALID_q_6_MASK | \
+ MH_DEBUG_REG41_SAME_ROW_BANK_q_6_MASK | \
+ MH_DEBUG_REG41_ROQ_ADDR_6_MASK)
+
+#define MH_DEBUG_REG41(tc_mh_send, tc_roq_rtr_q, roq_mark_q_6, roq_valid_q_6, same_row_bank_q_6, roq_addr_6) \
+ ((tc_mh_send << MH_DEBUG_REG41_TC_MH_send_SHIFT) | \
+ (tc_roq_rtr_q << MH_DEBUG_REG41_TC_ROQ_RTR_q_SHIFT) | \
+ (roq_mark_q_6 << MH_DEBUG_REG41_ROQ_MARK_q_6_SHIFT) | \
+ (roq_valid_q_6 << MH_DEBUG_REG41_ROQ_VALID_q_6_SHIFT) | \
+ (same_row_bank_q_6 << MH_DEBUG_REG41_SAME_ROW_BANK_q_6_SHIFT) | \
+ (roq_addr_6 << MH_DEBUG_REG41_ROQ_ADDR_6_SHIFT))
+
+#define MH_DEBUG_REG41_GET_TC_MH_send(mh_debug_reg41) \
+ ((mh_debug_reg41 & MH_DEBUG_REG41_TC_MH_send_MASK) >> MH_DEBUG_REG41_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG41_GET_TC_ROQ_RTR_q(mh_debug_reg41) \
+ ((mh_debug_reg41 & MH_DEBUG_REG41_TC_ROQ_RTR_q_MASK) >> MH_DEBUG_REG41_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG41_GET_ROQ_MARK_q_6(mh_debug_reg41) \
+ ((mh_debug_reg41 & MH_DEBUG_REG41_ROQ_MARK_q_6_MASK) >> MH_DEBUG_REG41_ROQ_MARK_q_6_SHIFT)
+#define MH_DEBUG_REG41_GET_ROQ_VALID_q_6(mh_debug_reg41) \
+ ((mh_debug_reg41 & MH_DEBUG_REG41_ROQ_VALID_q_6_MASK) >> MH_DEBUG_REG41_ROQ_VALID_q_6_SHIFT)
+#define MH_DEBUG_REG41_GET_SAME_ROW_BANK_q_6(mh_debug_reg41) \
+ ((mh_debug_reg41 & MH_DEBUG_REG41_SAME_ROW_BANK_q_6_MASK) >> MH_DEBUG_REG41_SAME_ROW_BANK_q_6_SHIFT)
+#define MH_DEBUG_REG41_GET_ROQ_ADDR_6(mh_debug_reg41) \
+ ((mh_debug_reg41 & MH_DEBUG_REG41_ROQ_ADDR_6_MASK) >> MH_DEBUG_REG41_ROQ_ADDR_6_SHIFT)
+
+#define MH_DEBUG_REG41_SET_TC_MH_send(mh_debug_reg41_reg, tc_mh_send) \
+ mh_debug_reg41_reg = (mh_debug_reg41_reg & ~MH_DEBUG_REG41_TC_MH_send_MASK) | (tc_mh_send << MH_DEBUG_REG41_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG41_SET_TC_ROQ_RTR_q(mh_debug_reg41_reg, tc_roq_rtr_q) \
+ mh_debug_reg41_reg = (mh_debug_reg41_reg & ~MH_DEBUG_REG41_TC_ROQ_RTR_q_MASK) | (tc_roq_rtr_q << MH_DEBUG_REG41_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG41_SET_ROQ_MARK_q_6(mh_debug_reg41_reg, roq_mark_q_6) \
+ mh_debug_reg41_reg = (mh_debug_reg41_reg & ~MH_DEBUG_REG41_ROQ_MARK_q_6_MASK) | (roq_mark_q_6 << MH_DEBUG_REG41_ROQ_MARK_q_6_SHIFT)
+#define MH_DEBUG_REG41_SET_ROQ_VALID_q_6(mh_debug_reg41_reg, roq_valid_q_6) \
+ mh_debug_reg41_reg = (mh_debug_reg41_reg & ~MH_DEBUG_REG41_ROQ_VALID_q_6_MASK) | (roq_valid_q_6 << MH_DEBUG_REG41_ROQ_VALID_q_6_SHIFT)
+#define MH_DEBUG_REG41_SET_SAME_ROW_BANK_q_6(mh_debug_reg41_reg, same_row_bank_q_6) \
+ mh_debug_reg41_reg = (mh_debug_reg41_reg & ~MH_DEBUG_REG41_SAME_ROW_BANK_q_6_MASK) | (same_row_bank_q_6 << MH_DEBUG_REG41_SAME_ROW_BANK_q_6_SHIFT)
+#define MH_DEBUG_REG41_SET_ROQ_ADDR_6(mh_debug_reg41_reg, roq_addr_6) \
+ mh_debug_reg41_reg = (mh_debug_reg41_reg & ~MH_DEBUG_REG41_ROQ_ADDR_6_MASK) | (roq_addr_6 << MH_DEBUG_REG41_ROQ_ADDR_6_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg41_t {
+ unsigned int tc_mh_send : MH_DEBUG_REG41_TC_MH_send_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG41_TC_ROQ_RTR_q_SIZE;
+ unsigned int roq_mark_q_6 : MH_DEBUG_REG41_ROQ_MARK_q_6_SIZE;
+ unsigned int roq_valid_q_6 : MH_DEBUG_REG41_ROQ_VALID_q_6_SIZE;
+ unsigned int same_row_bank_q_6 : MH_DEBUG_REG41_SAME_ROW_BANK_q_6_SIZE;
+ unsigned int roq_addr_6 : MH_DEBUG_REG41_ROQ_ADDR_6_SIZE;
+ } mh_debug_reg41_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg41_t {
+ unsigned int roq_addr_6 : MH_DEBUG_REG41_ROQ_ADDR_6_SIZE;
+ unsigned int same_row_bank_q_6 : MH_DEBUG_REG41_SAME_ROW_BANK_q_6_SIZE;
+ unsigned int roq_valid_q_6 : MH_DEBUG_REG41_ROQ_VALID_q_6_SIZE;
+ unsigned int roq_mark_q_6 : MH_DEBUG_REG41_ROQ_MARK_q_6_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG41_TC_ROQ_RTR_q_SIZE;
+ unsigned int tc_mh_send : MH_DEBUG_REG41_TC_MH_send_SIZE;
+ } mh_debug_reg41_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg41_t f;
+} mh_debug_reg41_u;
+
+
+/*
+ * MH_DEBUG_REG42 struct
+ */
+
+#define MH_DEBUG_REG42_TC_MH_send_SIZE 1
+#define MH_DEBUG_REG42_TC_ROQ_RTR_q_SIZE 1
+#define MH_DEBUG_REG42_ROQ_MARK_q_7_SIZE 1
+#define MH_DEBUG_REG42_ROQ_VALID_q_7_SIZE 1
+#define MH_DEBUG_REG42_SAME_ROW_BANK_q_7_SIZE 1
+#define MH_DEBUG_REG42_ROQ_ADDR_7_SIZE 27
+
+#define MH_DEBUG_REG42_TC_MH_send_SHIFT 0
+#define MH_DEBUG_REG42_TC_ROQ_RTR_q_SHIFT 1
+#define MH_DEBUG_REG42_ROQ_MARK_q_7_SHIFT 2
+#define MH_DEBUG_REG42_ROQ_VALID_q_7_SHIFT 3
+#define MH_DEBUG_REG42_SAME_ROW_BANK_q_7_SHIFT 4
+#define MH_DEBUG_REG42_ROQ_ADDR_7_SHIFT 5
+
+#define MH_DEBUG_REG42_TC_MH_send_MASK 0x00000001
+#define MH_DEBUG_REG42_TC_ROQ_RTR_q_MASK 0x00000002
+#define MH_DEBUG_REG42_ROQ_MARK_q_7_MASK 0x00000004
+#define MH_DEBUG_REG42_ROQ_VALID_q_7_MASK 0x00000008
+#define MH_DEBUG_REG42_SAME_ROW_BANK_q_7_MASK 0x00000010
+#define MH_DEBUG_REG42_ROQ_ADDR_7_MASK 0xffffffe0
+
+#define MH_DEBUG_REG42_MASK \
+ (MH_DEBUG_REG42_TC_MH_send_MASK | \
+ MH_DEBUG_REG42_TC_ROQ_RTR_q_MASK | \
+ MH_DEBUG_REG42_ROQ_MARK_q_7_MASK | \
+ MH_DEBUG_REG42_ROQ_VALID_q_7_MASK | \
+ MH_DEBUG_REG42_SAME_ROW_BANK_q_7_MASK | \
+ MH_DEBUG_REG42_ROQ_ADDR_7_MASK)
+
+#define MH_DEBUG_REG42(tc_mh_send, tc_roq_rtr_q, roq_mark_q_7, roq_valid_q_7, same_row_bank_q_7, roq_addr_7) \
+ ((tc_mh_send << MH_DEBUG_REG42_TC_MH_send_SHIFT) | \
+ (tc_roq_rtr_q << MH_DEBUG_REG42_TC_ROQ_RTR_q_SHIFT) | \
+ (roq_mark_q_7 << MH_DEBUG_REG42_ROQ_MARK_q_7_SHIFT) | \
+ (roq_valid_q_7 << MH_DEBUG_REG42_ROQ_VALID_q_7_SHIFT) | \
+ (same_row_bank_q_7 << MH_DEBUG_REG42_SAME_ROW_BANK_q_7_SHIFT) | \
+ (roq_addr_7 << MH_DEBUG_REG42_ROQ_ADDR_7_SHIFT))
+
+#define MH_DEBUG_REG42_GET_TC_MH_send(mh_debug_reg42) \
+ ((mh_debug_reg42 & MH_DEBUG_REG42_TC_MH_send_MASK) >> MH_DEBUG_REG42_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG42_GET_TC_ROQ_RTR_q(mh_debug_reg42) \
+ ((mh_debug_reg42 & MH_DEBUG_REG42_TC_ROQ_RTR_q_MASK) >> MH_DEBUG_REG42_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG42_GET_ROQ_MARK_q_7(mh_debug_reg42) \
+ ((mh_debug_reg42 & MH_DEBUG_REG42_ROQ_MARK_q_7_MASK) >> MH_DEBUG_REG42_ROQ_MARK_q_7_SHIFT)
+#define MH_DEBUG_REG42_GET_ROQ_VALID_q_7(mh_debug_reg42) \
+ ((mh_debug_reg42 & MH_DEBUG_REG42_ROQ_VALID_q_7_MASK) >> MH_DEBUG_REG42_ROQ_VALID_q_7_SHIFT)
+#define MH_DEBUG_REG42_GET_SAME_ROW_BANK_q_7(mh_debug_reg42) \
+ ((mh_debug_reg42 & MH_DEBUG_REG42_SAME_ROW_BANK_q_7_MASK) >> MH_DEBUG_REG42_SAME_ROW_BANK_q_7_SHIFT)
+#define MH_DEBUG_REG42_GET_ROQ_ADDR_7(mh_debug_reg42) \
+ ((mh_debug_reg42 & MH_DEBUG_REG42_ROQ_ADDR_7_MASK) >> MH_DEBUG_REG42_ROQ_ADDR_7_SHIFT)
+
+#define MH_DEBUG_REG42_SET_TC_MH_send(mh_debug_reg42_reg, tc_mh_send) \
+ mh_debug_reg42_reg = (mh_debug_reg42_reg & ~MH_DEBUG_REG42_TC_MH_send_MASK) | (tc_mh_send << MH_DEBUG_REG42_TC_MH_send_SHIFT)
+#define MH_DEBUG_REG42_SET_TC_ROQ_RTR_q(mh_debug_reg42_reg, tc_roq_rtr_q) \
+ mh_debug_reg42_reg = (mh_debug_reg42_reg & ~MH_DEBUG_REG42_TC_ROQ_RTR_q_MASK) | (tc_roq_rtr_q << MH_DEBUG_REG42_TC_ROQ_RTR_q_SHIFT)
+#define MH_DEBUG_REG42_SET_ROQ_MARK_q_7(mh_debug_reg42_reg, roq_mark_q_7) \
+ mh_debug_reg42_reg = (mh_debug_reg42_reg & ~MH_DEBUG_REG42_ROQ_MARK_q_7_MASK) | (roq_mark_q_7 << MH_DEBUG_REG42_ROQ_MARK_q_7_SHIFT)
+#define MH_DEBUG_REG42_SET_ROQ_VALID_q_7(mh_debug_reg42_reg, roq_valid_q_7) \
+ mh_debug_reg42_reg = (mh_debug_reg42_reg & ~MH_DEBUG_REG42_ROQ_VALID_q_7_MASK) | (roq_valid_q_7 << MH_DEBUG_REG42_ROQ_VALID_q_7_SHIFT)
+#define MH_DEBUG_REG42_SET_SAME_ROW_BANK_q_7(mh_debug_reg42_reg, same_row_bank_q_7) \
+ mh_debug_reg42_reg = (mh_debug_reg42_reg & ~MH_DEBUG_REG42_SAME_ROW_BANK_q_7_MASK) | (same_row_bank_q_7 << MH_DEBUG_REG42_SAME_ROW_BANK_q_7_SHIFT)
+#define MH_DEBUG_REG42_SET_ROQ_ADDR_7(mh_debug_reg42_reg, roq_addr_7) \
+ mh_debug_reg42_reg = (mh_debug_reg42_reg & ~MH_DEBUG_REG42_ROQ_ADDR_7_MASK) | (roq_addr_7 << MH_DEBUG_REG42_ROQ_ADDR_7_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg42_t {
+ unsigned int tc_mh_send : MH_DEBUG_REG42_TC_MH_send_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG42_TC_ROQ_RTR_q_SIZE;
+ unsigned int roq_mark_q_7 : MH_DEBUG_REG42_ROQ_MARK_q_7_SIZE;
+ unsigned int roq_valid_q_7 : MH_DEBUG_REG42_ROQ_VALID_q_7_SIZE;
+ unsigned int same_row_bank_q_7 : MH_DEBUG_REG42_SAME_ROW_BANK_q_7_SIZE;
+ unsigned int roq_addr_7 : MH_DEBUG_REG42_ROQ_ADDR_7_SIZE;
+ } mh_debug_reg42_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg42_t {
+ unsigned int roq_addr_7 : MH_DEBUG_REG42_ROQ_ADDR_7_SIZE;
+ unsigned int same_row_bank_q_7 : MH_DEBUG_REG42_SAME_ROW_BANK_q_7_SIZE;
+ unsigned int roq_valid_q_7 : MH_DEBUG_REG42_ROQ_VALID_q_7_SIZE;
+ unsigned int roq_mark_q_7 : MH_DEBUG_REG42_ROQ_MARK_q_7_SIZE;
+ unsigned int tc_roq_rtr_q : MH_DEBUG_REG42_TC_ROQ_RTR_q_SIZE;
+ unsigned int tc_mh_send : MH_DEBUG_REG42_TC_MH_send_SIZE;
+ } mh_debug_reg42_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg42_t f;
+} mh_debug_reg42_u;
+
+
+/*
+ * MH_DEBUG_REG43 struct
+ */
+
+#define MH_DEBUG_REG43_ARB_REG_WE_q_SIZE 1
+#define MH_DEBUG_REG43_ARB_WE_SIZE 1
+#define MH_DEBUG_REG43_ARB_REG_VALID_q_SIZE 1
+#define MH_DEBUG_REG43_ARB_RTR_q_SIZE 1
+#define MH_DEBUG_REG43_ARB_REG_RTR_SIZE 1
+#define MH_DEBUG_REG43_WDAT_BURST_RTR_SIZE 1
+#define MH_DEBUG_REG43_MMU_RTR_SIZE 1
+#define MH_DEBUG_REG43_ARB_ID_q_SIZE 3
+#define MH_DEBUG_REG43_ARB_WRITE_q_SIZE 1
+#define MH_DEBUG_REG43_ARB_BLEN_q_SIZE 1
+#define MH_DEBUG_REG43_ARQ_CTRL_EMPTY_SIZE 1
+#define MH_DEBUG_REG43_ARQ_FIFO_CNT_q_SIZE 3
+#define MH_DEBUG_REG43_MMU_WE_SIZE 1
+#define MH_DEBUG_REG43_ARQ_RTR_SIZE 1
+#define MH_DEBUG_REG43_MMU_ID_SIZE 3
+#define MH_DEBUG_REG43_MMU_WRITE_SIZE 1
+#define MH_DEBUG_REG43_MMU_BLEN_SIZE 1
+#define MH_DEBUG_REG43_WBURST_IP_q_SIZE 1
+#define MH_DEBUG_REG43_WDAT_REG_WE_q_SIZE 1
+#define MH_DEBUG_REG43_WDB_WE_SIZE 1
+#define MH_DEBUG_REG43_WDB_RTR_SKID_4_SIZE 1
+#define MH_DEBUG_REG43_WDB_RTR_SKID_3_SIZE 1
+
+#define MH_DEBUG_REG43_ARB_REG_WE_q_SHIFT 0
+#define MH_DEBUG_REG43_ARB_WE_SHIFT 1
+#define MH_DEBUG_REG43_ARB_REG_VALID_q_SHIFT 2
+#define MH_DEBUG_REG43_ARB_RTR_q_SHIFT 3
+#define MH_DEBUG_REG43_ARB_REG_RTR_SHIFT 4
+#define MH_DEBUG_REG43_WDAT_BURST_RTR_SHIFT 5
+#define MH_DEBUG_REG43_MMU_RTR_SHIFT 6
+#define MH_DEBUG_REG43_ARB_ID_q_SHIFT 7
+#define MH_DEBUG_REG43_ARB_WRITE_q_SHIFT 10
+#define MH_DEBUG_REG43_ARB_BLEN_q_SHIFT 11
+#define MH_DEBUG_REG43_ARQ_CTRL_EMPTY_SHIFT 12
+#define MH_DEBUG_REG43_ARQ_FIFO_CNT_q_SHIFT 13
+#define MH_DEBUG_REG43_MMU_WE_SHIFT 16
+#define MH_DEBUG_REG43_ARQ_RTR_SHIFT 17
+#define MH_DEBUG_REG43_MMU_ID_SHIFT 18
+#define MH_DEBUG_REG43_MMU_WRITE_SHIFT 21
+#define MH_DEBUG_REG43_MMU_BLEN_SHIFT 22
+#define MH_DEBUG_REG43_WBURST_IP_q_SHIFT 23
+#define MH_DEBUG_REG43_WDAT_REG_WE_q_SHIFT 24
+#define MH_DEBUG_REG43_WDB_WE_SHIFT 25
+#define MH_DEBUG_REG43_WDB_RTR_SKID_4_SHIFT 26
+#define MH_DEBUG_REG43_WDB_RTR_SKID_3_SHIFT 27
+
+#define MH_DEBUG_REG43_ARB_REG_WE_q_MASK 0x00000001
+#define MH_DEBUG_REG43_ARB_WE_MASK 0x00000002
+#define MH_DEBUG_REG43_ARB_REG_VALID_q_MASK 0x00000004
+#define MH_DEBUG_REG43_ARB_RTR_q_MASK 0x00000008
+#define MH_DEBUG_REG43_ARB_REG_RTR_MASK 0x00000010
+#define MH_DEBUG_REG43_WDAT_BURST_RTR_MASK 0x00000020
+#define MH_DEBUG_REG43_MMU_RTR_MASK 0x00000040
+#define MH_DEBUG_REG43_ARB_ID_q_MASK 0x00000380
+#define MH_DEBUG_REG43_ARB_WRITE_q_MASK 0x00000400
+#define MH_DEBUG_REG43_ARB_BLEN_q_MASK 0x00000800
+#define MH_DEBUG_REG43_ARQ_CTRL_EMPTY_MASK 0x00001000
+#define MH_DEBUG_REG43_ARQ_FIFO_CNT_q_MASK 0x0000e000
+#define MH_DEBUG_REG43_MMU_WE_MASK 0x00010000
+#define MH_DEBUG_REG43_ARQ_RTR_MASK 0x00020000
+#define MH_DEBUG_REG43_MMU_ID_MASK 0x001c0000
+#define MH_DEBUG_REG43_MMU_WRITE_MASK 0x00200000
+#define MH_DEBUG_REG43_MMU_BLEN_MASK 0x00400000
+#define MH_DEBUG_REG43_WBURST_IP_q_MASK 0x00800000
+#define MH_DEBUG_REG43_WDAT_REG_WE_q_MASK 0x01000000
+#define MH_DEBUG_REG43_WDB_WE_MASK 0x02000000
+#define MH_DEBUG_REG43_WDB_RTR_SKID_4_MASK 0x04000000
+#define MH_DEBUG_REG43_WDB_RTR_SKID_3_MASK 0x08000000
+
+#define MH_DEBUG_REG43_MASK \
+ (MH_DEBUG_REG43_ARB_REG_WE_q_MASK | \
+ MH_DEBUG_REG43_ARB_WE_MASK | \
+ MH_DEBUG_REG43_ARB_REG_VALID_q_MASK | \
+ MH_DEBUG_REG43_ARB_RTR_q_MASK | \
+ MH_DEBUG_REG43_ARB_REG_RTR_MASK | \
+ MH_DEBUG_REG43_WDAT_BURST_RTR_MASK | \
+ MH_DEBUG_REG43_MMU_RTR_MASK | \
+ MH_DEBUG_REG43_ARB_ID_q_MASK | \
+ MH_DEBUG_REG43_ARB_WRITE_q_MASK | \
+ MH_DEBUG_REG43_ARB_BLEN_q_MASK | \
+ MH_DEBUG_REG43_ARQ_CTRL_EMPTY_MASK | \
+ MH_DEBUG_REG43_ARQ_FIFO_CNT_q_MASK | \
+ MH_DEBUG_REG43_MMU_WE_MASK | \
+ MH_DEBUG_REG43_ARQ_RTR_MASK | \
+ MH_DEBUG_REG43_MMU_ID_MASK | \
+ MH_DEBUG_REG43_MMU_WRITE_MASK | \
+ MH_DEBUG_REG43_MMU_BLEN_MASK | \
+ MH_DEBUG_REG43_WBURST_IP_q_MASK | \
+ MH_DEBUG_REG43_WDAT_REG_WE_q_MASK | \
+ MH_DEBUG_REG43_WDB_WE_MASK | \
+ MH_DEBUG_REG43_WDB_RTR_SKID_4_MASK | \
+ MH_DEBUG_REG43_WDB_RTR_SKID_3_MASK)
+
+#define MH_DEBUG_REG43(arb_reg_we_q, arb_we, arb_reg_valid_q, arb_rtr_q, arb_reg_rtr, wdat_burst_rtr, mmu_rtr, arb_id_q, arb_write_q, arb_blen_q, arq_ctrl_empty, arq_fifo_cnt_q, mmu_we, arq_rtr, mmu_id, mmu_write, mmu_blen, wburst_ip_q, wdat_reg_we_q, wdb_we, wdb_rtr_skid_4, wdb_rtr_skid_3) \
+ ((arb_reg_we_q << MH_DEBUG_REG43_ARB_REG_WE_q_SHIFT) | \
+ (arb_we << MH_DEBUG_REG43_ARB_WE_SHIFT) | \
+ (arb_reg_valid_q << MH_DEBUG_REG43_ARB_REG_VALID_q_SHIFT) | \
+ (arb_rtr_q << MH_DEBUG_REG43_ARB_RTR_q_SHIFT) | \
+ (arb_reg_rtr << MH_DEBUG_REG43_ARB_REG_RTR_SHIFT) | \
+ (wdat_burst_rtr << MH_DEBUG_REG43_WDAT_BURST_RTR_SHIFT) | \
+ (mmu_rtr << MH_DEBUG_REG43_MMU_RTR_SHIFT) | \
+ (arb_id_q << MH_DEBUG_REG43_ARB_ID_q_SHIFT) | \
+ (arb_write_q << MH_DEBUG_REG43_ARB_WRITE_q_SHIFT) | \
+ (arb_blen_q << MH_DEBUG_REG43_ARB_BLEN_q_SHIFT) | \
+ (arq_ctrl_empty << MH_DEBUG_REG43_ARQ_CTRL_EMPTY_SHIFT) | \
+ (arq_fifo_cnt_q << MH_DEBUG_REG43_ARQ_FIFO_CNT_q_SHIFT) | \
+ (mmu_we << MH_DEBUG_REG43_MMU_WE_SHIFT) | \
+ (arq_rtr << MH_DEBUG_REG43_ARQ_RTR_SHIFT) | \
+ (mmu_id << MH_DEBUG_REG43_MMU_ID_SHIFT) | \
+ (mmu_write << MH_DEBUG_REG43_MMU_WRITE_SHIFT) | \
+ (mmu_blen << MH_DEBUG_REG43_MMU_BLEN_SHIFT) | \
+ (wburst_ip_q << MH_DEBUG_REG43_WBURST_IP_q_SHIFT) | \
+ (wdat_reg_we_q << MH_DEBUG_REG43_WDAT_REG_WE_q_SHIFT) | \
+ (wdb_we << MH_DEBUG_REG43_WDB_WE_SHIFT) | \
+ (wdb_rtr_skid_4 << MH_DEBUG_REG43_WDB_RTR_SKID_4_SHIFT) | \
+ (wdb_rtr_skid_3 << MH_DEBUG_REG43_WDB_RTR_SKID_3_SHIFT))
+
+#define MH_DEBUG_REG43_GET_ARB_REG_WE_q(mh_debug_reg43) \
+ ((mh_debug_reg43 & MH_DEBUG_REG43_ARB_REG_WE_q_MASK) >> MH_DEBUG_REG43_ARB_REG_WE_q_SHIFT)
+#define MH_DEBUG_REG43_GET_ARB_WE(mh_debug_reg43) \
+ ((mh_debug_reg43 & MH_DEBUG_REG43_ARB_WE_MASK) >> MH_DEBUG_REG43_ARB_WE_SHIFT)
+#define MH_DEBUG_REG43_GET_ARB_REG_VALID_q(mh_debug_reg43) \
+ ((mh_debug_reg43 & MH_DEBUG_REG43_ARB_REG_VALID_q_MASK) >> MH_DEBUG_REG43_ARB_REG_VALID_q_SHIFT)
+#define MH_DEBUG_REG43_GET_ARB_RTR_q(mh_debug_reg43) \
+ ((mh_debug_reg43 & MH_DEBUG_REG43_ARB_RTR_q_MASK) >> MH_DEBUG_REG43_ARB_RTR_q_SHIFT)
+#define MH_DEBUG_REG43_GET_ARB_REG_RTR(mh_debug_reg43) \
+ ((mh_debug_reg43 & MH_DEBUG_REG43_ARB_REG_RTR_MASK) >> MH_DEBUG_REG43_ARB_REG_RTR_SHIFT)
+#define MH_DEBUG_REG43_GET_WDAT_BURST_RTR(mh_debug_reg43) \
+ ((mh_debug_reg43 & MH_DEBUG_REG43_WDAT_BURST_RTR_MASK) >> MH_DEBUG_REG43_WDAT_BURST_RTR_SHIFT)
+#define MH_DEBUG_REG43_GET_MMU_RTR(mh_debug_reg43) \
+ ((mh_debug_reg43 & MH_DEBUG_REG43_MMU_RTR_MASK) >> MH_DEBUG_REG43_MMU_RTR_SHIFT)
+#define MH_DEBUG_REG43_GET_ARB_ID_q(mh_debug_reg43) \
+ ((mh_debug_reg43 & MH_DEBUG_REG43_ARB_ID_q_MASK) >> MH_DEBUG_REG43_ARB_ID_q_SHIFT)
+#define MH_DEBUG_REG43_GET_ARB_WRITE_q(mh_debug_reg43) \
+ ((mh_debug_reg43 & MH_DEBUG_REG43_ARB_WRITE_q_MASK) >> MH_DEBUG_REG43_ARB_WRITE_q_SHIFT)
+#define MH_DEBUG_REG43_GET_ARB_BLEN_q(mh_debug_reg43) \
+ ((mh_debug_reg43 & MH_DEBUG_REG43_ARB_BLEN_q_MASK) >> MH_DEBUG_REG43_ARB_BLEN_q_SHIFT)
+#define MH_DEBUG_REG43_GET_ARQ_CTRL_EMPTY(mh_debug_reg43) \
+ ((mh_debug_reg43 & MH_DEBUG_REG43_ARQ_CTRL_EMPTY_MASK) >> MH_DEBUG_REG43_ARQ_CTRL_EMPTY_SHIFT)
+#define MH_DEBUG_REG43_GET_ARQ_FIFO_CNT_q(mh_debug_reg43) \
+ ((mh_debug_reg43 & MH_DEBUG_REG43_ARQ_FIFO_CNT_q_MASK) >> MH_DEBUG_REG43_ARQ_FIFO_CNT_q_SHIFT)
+#define MH_DEBUG_REG43_GET_MMU_WE(mh_debug_reg43) \
+ ((mh_debug_reg43 & MH_DEBUG_REG43_MMU_WE_MASK) >> MH_DEBUG_REG43_MMU_WE_SHIFT)
+#define MH_DEBUG_REG43_GET_ARQ_RTR(mh_debug_reg43) \
+ ((mh_debug_reg43 & MH_DEBUG_REG43_ARQ_RTR_MASK) >> MH_DEBUG_REG43_ARQ_RTR_SHIFT)
+#define MH_DEBUG_REG43_GET_MMU_ID(mh_debug_reg43) \
+ ((mh_debug_reg43 & MH_DEBUG_REG43_MMU_ID_MASK) >> MH_DEBUG_REG43_MMU_ID_SHIFT)
+#define MH_DEBUG_REG43_GET_MMU_WRITE(mh_debug_reg43) \
+ ((mh_debug_reg43 & MH_DEBUG_REG43_MMU_WRITE_MASK) >> MH_DEBUG_REG43_MMU_WRITE_SHIFT)
+#define MH_DEBUG_REG43_GET_MMU_BLEN(mh_debug_reg43) \
+ ((mh_debug_reg43 & MH_DEBUG_REG43_MMU_BLEN_MASK) >> MH_DEBUG_REG43_MMU_BLEN_SHIFT)
+#define MH_DEBUG_REG43_GET_WBURST_IP_q(mh_debug_reg43) \
+ ((mh_debug_reg43 & MH_DEBUG_REG43_WBURST_IP_q_MASK) >> MH_DEBUG_REG43_WBURST_IP_q_SHIFT)
+#define MH_DEBUG_REG43_GET_WDAT_REG_WE_q(mh_debug_reg43) \
+ ((mh_debug_reg43 & MH_DEBUG_REG43_WDAT_REG_WE_q_MASK) >> MH_DEBUG_REG43_WDAT_REG_WE_q_SHIFT)
+#define MH_DEBUG_REG43_GET_WDB_WE(mh_debug_reg43) \
+ ((mh_debug_reg43 & MH_DEBUG_REG43_WDB_WE_MASK) >> MH_DEBUG_REG43_WDB_WE_SHIFT)
+#define MH_DEBUG_REG43_GET_WDB_RTR_SKID_4(mh_debug_reg43) \
+ ((mh_debug_reg43 & MH_DEBUG_REG43_WDB_RTR_SKID_4_MASK) >> MH_DEBUG_REG43_WDB_RTR_SKID_4_SHIFT)
+#define MH_DEBUG_REG43_GET_WDB_RTR_SKID_3(mh_debug_reg43) \
+ ((mh_debug_reg43 & MH_DEBUG_REG43_WDB_RTR_SKID_3_MASK) >> MH_DEBUG_REG43_WDB_RTR_SKID_3_SHIFT)
+
+#define MH_DEBUG_REG43_SET_ARB_REG_WE_q(mh_debug_reg43_reg, arb_reg_we_q) \
+ mh_debug_reg43_reg = (mh_debug_reg43_reg & ~MH_DEBUG_REG43_ARB_REG_WE_q_MASK) | (arb_reg_we_q << MH_DEBUG_REG43_ARB_REG_WE_q_SHIFT)
+#define MH_DEBUG_REG43_SET_ARB_WE(mh_debug_reg43_reg, arb_we) \
+ mh_debug_reg43_reg = (mh_debug_reg43_reg & ~MH_DEBUG_REG43_ARB_WE_MASK) | (arb_we << MH_DEBUG_REG43_ARB_WE_SHIFT)
+#define MH_DEBUG_REG43_SET_ARB_REG_VALID_q(mh_debug_reg43_reg, arb_reg_valid_q) \
+ mh_debug_reg43_reg = (mh_debug_reg43_reg & ~MH_DEBUG_REG43_ARB_REG_VALID_q_MASK) | (arb_reg_valid_q << MH_DEBUG_REG43_ARB_REG_VALID_q_SHIFT)
+#define MH_DEBUG_REG43_SET_ARB_RTR_q(mh_debug_reg43_reg, arb_rtr_q) \
+ mh_debug_reg43_reg = (mh_debug_reg43_reg & ~MH_DEBUG_REG43_ARB_RTR_q_MASK) | (arb_rtr_q << MH_DEBUG_REG43_ARB_RTR_q_SHIFT)
+#define MH_DEBUG_REG43_SET_ARB_REG_RTR(mh_debug_reg43_reg, arb_reg_rtr) \
+ mh_debug_reg43_reg = (mh_debug_reg43_reg & ~MH_DEBUG_REG43_ARB_REG_RTR_MASK) | (arb_reg_rtr << MH_DEBUG_REG43_ARB_REG_RTR_SHIFT)
+#define MH_DEBUG_REG43_SET_WDAT_BURST_RTR(mh_debug_reg43_reg, wdat_burst_rtr) \
+ mh_debug_reg43_reg = (mh_debug_reg43_reg & ~MH_DEBUG_REG43_WDAT_BURST_RTR_MASK) | (wdat_burst_rtr << MH_DEBUG_REG43_WDAT_BURST_RTR_SHIFT)
+#define MH_DEBUG_REG43_SET_MMU_RTR(mh_debug_reg43_reg, mmu_rtr) \
+ mh_debug_reg43_reg = (mh_debug_reg43_reg & ~MH_DEBUG_REG43_MMU_RTR_MASK) | (mmu_rtr << MH_DEBUG_REG43_MMU_RTR_SHIFT)
+#define MH_DEBUG_REG43_SET_ARB_ID_q(mh_debug_reg43_reg, arb_id_q) \
+ mh_debug_reg43_reg = (mh_debug_reg43_reg & ~MH_DEBUG_REG43_ARB_ID_q_MASK) | (arb_id_q << MH_DEBUG_REG43_ARB_ID_q_SHIFT)
+#define MH_DEBUG_REG43_SET_ARB_WRITE_q(mh_debug_reg43_reg, arb_write_q) \
+ mh_debug_reg43_reg = (mh_debug_reg43_reg & ~MH_DEBUG_REG43_ARB_WRITE_q_MASK) | (arb_write_q << MH_DEBUG_REG43_ARB_WRITE_q_SHIFT)
+#define MH_DEBUG_REG43_SET_ARB_BLEN_q(mh_debug_reg43_reg, arb_blen_q) \
+ mh_debug_reg43_reg = (mh_debug_reg43_reg & ~MH_DEBUG_REG43_ARB_BLEN_q_MASK) | (arb_blen_q << MH_DEBUG_REG43_ARB_BLEN_q_SHIFT)
+#define MH_DEBUG_REG43_SET_ARQ_CTRL_EMPTY(mh_debug_reg43_reg, arq_ctrl_empty) \
+ mh_debug_reg43_reg = (mh_debug_reg43_reg & ~MH_DEBUG_REG43_ARQ_CTRL_EMPTY_MASK) | (arq_ctrl_empty << MH_DEBUG_REG43_ARQ_CTRL_EMPTY_SHIFT)
+#define MH_DEBUG_REG43_SET_ARQ_FIFO_CNT_q(mh_debug_reg43_reg, arq_fifo_cnt_q) \
+ mh_debug_reg43_reg = (mh_debug_reg43_reg & ~MH_DEBUG_REG43_ARQ_FIFO_CNT_q_MASK) | (arq_fifo_cnt_q << MH_DEBUG_REG43_ARQ_FIFO_CNT_q_SHIFT)
+#define MH_DEBUG_REG43_SET_MMU_WE(mh_debug_reg43_reg, mmu_we) \
+ mh_debug_reg43_reg = (mh_debug_reg43_reg & ~MH_DEBUG_REG43_MMU_WE_MASK) | (mmu_we << MH_DEBUG_REG43_MMU_WE_SHIFT)
+#define MH_DEBUG_REG43_SET_ARQ_RTR(mh_debug_reg43_reg, arq_rtr) \
+ mh_debug_reg43_reg = (mh_debug_reg43_reg & ~MH_DEBUG_REG43_ARQ_RTR_MASK) | (arq_rtr << MH_DEBUG_REG43_ARQ_RTR_SHIFT)
+#define MH_DEBUG_REG43_SET_MMU_ID(mh_debug_reg43_reg, mmu_id) \
+ mh_debug_reg43_reg = (mh_debug_reg43_reg & ~MH_DEBUG_REG43_MMU_ID_MASK) | (mmu_id << MH_DEBUG_REG43_MMU_ID_SHIFT)
+#define MH_DEBUG_REG43_SET_MMU_WRITE(mh_debug_reg43_reg, mmu_write) \
+ mh_debug_reg43_reg = (mh_debug_reg43_reg & ~MH_DEBUG_REG43_MMU_WRITE_MASK) | (mmu_write << MH_DEBUG_REG43_MMU_WRITE_SHIFT)
+#define MH_DEBUG_REG43_SET_MMU_BLEN(mh_debug_reg43_reg, mmu_blen) \
+ mh_debug_reg43_reg = (mh_debug_reg43_reg & ~MH_DEBUG_REG43_MMU_BLEN_MASK) | (mmu_blen << MH_DEBUG_REG43_MMU_BLEN_SHIFT)
+#define MH_DEBUG_REG43_SET_WBURST_IP_q(mh_debug_reg43_reg, wburst_ip_q) \
+ mh_debug_reg43_reg = (mh_debug_reg43_reg & ~MH_DEBUG_REG43_WBURST_IP_q_MASK) | (wburst_ip_q << MH_DEBUG_REG43_WBURST_IP_q_SHIFT)
+#define MH_DEBUG_REG43_SET_WDAT_REG_WE_q(mh_debug_reg43_reg, wdat_reg_we_q) \
+ mh_debug_reg43_reg = (mh_debug_reg43_reg & ~MH_DEBUG_REG43_WDAT_REG_WE_q_MASK) | (wdat_reg_we_q << MH_DEBUG_REG43_WDAT_REG_WE_q_SHIFT)
+#define MH_DEBUG_REG43_SET_WDB_WE(mh_debug_reg43_reg, wdb_we) \
+ mh_debug_reg43_reg = (mh_debug_reg43_reg & ~MH_DEBUG_REG43_WDB_WE_MASK) | (wdb_we << MH_DEBUG_REG43_WDB_WE_SHIFT)
+#define MH_DEBUG_REG43_SET_WDB_RTR_SKID_4(mh_debug_reg43_reg, wdb_rtr_skid_4) \
+ mh_debug_reg43_reg = (mh_debug_reg43_reg & ~MH_DEBUG_REG43_WDB_RTR_SKID_4_MASK) | (wdb_rtr_skid_4 << MH_DEBUG_REG43_WDB_RTR_SKID_4_SHIFT)
+#define MH_DEBUG_REG43_SET_WDB_RTR_SKID_3(mh_debug_reg43_reg, wdb_rtr_skid_3) \
+ mh_debug_reg43_reg = (mh_debug_reg43_reg & ~MH_DEBUG_REG43_WDB_RTR_SKID_3_MASK) | (wdb_rtr_skid_3 << MH_DEBUG_REG43_WDB_RTR_SKID_3_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg43_t {
+ unsigned int arb_reg_we_q : MH_DEBUG_REG43_ARB_REG_WE_q_SIZE;
+ unsigned int arb_we : MH_DEBUG_REG43_ARB_WE_SIZE;
+ unsigned int arb_reg_valid_q : MH_DEBUG_REG43_ARB_REG_VALID_q_SIZE;
+ unsigned int arb_rtr_q : MH_DEBUG_REG43_ARB_RTR_q_SIZE;
+ unsigned int arb_reg_rtr : MH_DEBUG_REG43_ARB_REG_RTR_SIZE;
+ unsigned int wdat_burst_rtr : MH_DEBUG_REG43_WDAT_BURST_RTR_SIZE;
+ unsigned int mmu_rtr : MH_DEBUG_REG43_MMU_RTR_SIZE;
+ unsigned int arb_id_q : MH_DEBUG_REG43_ARB_ID_q_SIZE;
+ unsigned int arb_write_q : MH_DEBUG_REG43_ARB_WRITE_q_SIZE;
+ unsigned int arb_blen_q : MH_DEBUG_REG43_ARB_BLEN_q_SIZE;
+ unsigned int arq_ctrl_empty : MH_DEBUG_REG43_ARQ_CTRL_EMPTY_SIZE;
+ unsigned int arq_fifo_cnt_q : MH_DEBUG_REG43_ARQ_FIFO_CNT_q_SIZE;
+ unsigned int mmu_we : MH_DEBUG_REG43_MMU_WE_SIZE;
+ unsigned int arq_rtr : MH_DEBUG_REG43_ARQ_RTR_SIZE;
+ unsigned int mmu_id : MH_DEBUG_REG43_MMU_ID_SIZE;
+ unsigned int mmu_write : MH_DEBUG_REG43_MMU_WRITE_SIZE;
+ unsigned int mmu_blen : MH_DEBUG_REG43_MMU_BLEN_SIZE;
+ unsigned int wburst_ip_q : MH_DEBUG_REG43_WBURST_IP_q_SIZE;
+ unsigned int wdat_reg_we_q : MH_DEBUG_REG43_WDAT_REG_WE_q_SIZE;
+ unsigned int wdb_we : MH_DEBUG_REG43_WDB_WE_SIZE;
+ unsigned int wdb_rtr_skid_4 : MH_DEBUG_REG43_WDB_RTR_SKID_4_SIZE;
+ unsigned int wdb_rtr_skid_3 : MH_DEBUG_REG43_WDB_RTR_SKID_3_SIZE;
+ unsigned int : 4;
+ } mh_debug_reg43_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg43_t {
+ unsigned int : 4;
+ unsigned int wdb_rtr_skid_3 : MH_DEBUG_REG43_WDB_RTR_SKID_3_SIZE;
+ unsigned int wdb_rtr_skid_4 : MH_DEBUG_REG43_WDB_RTR_SKID_4_SIZE;
+ unsigned int wdb_we : MH_DEBUG_REG43_WDB_WE_SIZE;
+ unsigned int wdat_reg_we_q : MH_DEBUG_REG43_WDAT_REG_WE_q_SIZE;
+ unsigned int wburst_ip_q : MH_DEBUG_REG43_WBURST_IP_q_SIZE;
+ unsigned int mmu_blen : MH_DEBUG_REG43_MMU_BLEN_SIZE;
+ unsigned int mmu_write : MH_DEBUG_REG43_MMU_WRITE_SIZE;
+ unsigned int mmu_id : MH_DEBUG_REG43_MMU_ID_SIZE;
+ unsigned int arq_rtr : MH_DEBUG_REG43_ARQ_RTR_SIZE;
+ unsigned int mmu_we : MH_DEBUG_REG43_MMU_WE_SIZE;
+ unsigned int arq_fifo_cnt_q : MH_DEBUG_REG43_ARQ_FIFO_CNT_q_SIZE;
+ unsigned int arq_ctrl_empty : MH_DEBUG_REG43_ARQ_CTRL_EMPTY_SIZE;
+ unsigned int arb_blen_q : MH_DEBUG_REG43_ARB_BLEN_q_SIZE;
+ unsigned int arb_write_q : MH_DEBUG_REG43_ARB_WRITE_q_SIZE;
+ unsigned int arb_id_q : MH_DEBUG_REG43_ARB_ID_q_SIZE;
+ unsigned int mmu_rtr : MH_DEBUG_REG43_MMU_RTR_SIZE;
+ unsigned int wdat_burst_rtr : MH_DEBUG_REG43_WDAT_BURST_RTR_SIZE;
+ unsigned int arb_reg_rtr : MH_DEBUG_REG43_ARB_REG_RTR_SIZE;
+ unsigned int arb_rtr_q : MH_DEBUG_REG43_ARB_RTR_q_SIZE;
+ unsigned int arb_reg_valid_q : MH_DEBUG_REG43_ARB_REG_VALID_q_SIZE;
+ unsigned int arb_we : MH_DEBUG_REG43_ARB_WE_SIZE;
+ unsigned int arb_reg_we_q : MH_DEBUG_REG43_ARB_REG_WE_q_SIZE;
+ } mh_debug_reg43_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg43_t f;
+} mh_debug_reg43_u;
+
+
+/*
+ * MH_DEBUG_REG44 struct
+ */
+
+#define MH_DEBUG_REG44_ARB_WE_SIZE 1
+#define MH_DEBUG_REG44_ARB_ID_q_SIZE 3
+#define MH_DEBUG_REG44_ARB_VAD_q_SIZE 28
+
+#define MH_DEBUG_REG44_ARB_WE_SHIFT 0
+#define MH_DEBUG_REG44_ARB_ID_q_SHIFT 1
+#define MH_DEBUG_REG44_ARB_VAD_q_SHIFT 4
+
+#define MH_DEBUG_REG44_ARB_WE_MASK 0x00000001
+#define MH_DEBUG_REG44_ARB_ID_q_MASK 0x0000000e
+#define MH_DEBUG_REG44_ARB_VAD_q_MASK 0xfffffff0
+
+#define MH_DEBUG_REG44_MASK \
+ (MH_DEBUG_REG44_ARB_WE_MASK | \
+ MH_DEBUG_REG44_ARB_ID_q_MASK | \
+ MH_DEBUG_REG44_ARB_VAD_q_MASK)
+
+#define MH_DEBUG_REG44(arb_we, arb_id_q, arb_vad_q) \
+ ((arb_we << MH_DEBUG_REG44_ARB_WE_SHIFT) | \
+ (arb_id_q << MH_DEBUG_REG44_ARB_ID_q_SHIFT) | \
+ (arb_vad_q << MH_DEBUG_REG44_ARB_VAD_q_SHIFT))
+
+#define MH_DEBUG_REG44_GET_ARB_WE(mh_debug_reg44) \
+ ((mh_debug_reg44 & MH_DEBUG_REG44_ARB_WE_MASK) >> MH_DEBUG_REG44_ARB_WE_SHIFT)
+#define MH_DEBUG_REG44_GET_ARB_ID_q(mh_debug_reg44) \
+ ((mh_debug_reg44 & MH_DEBUG_REG44_ARB_ID_q_MASK) >> MH_DEBUG_REG44_ARB_ID_q_SHIFT)
+#define MH_DEBUG_REG44_GET_ARB_VAD_q(mh_debug_reg44) \
+ ((mh_debug_reg44 & MH_DEBUG_REG44_ARB_VAD_q_MASK) >> MH_DEBUG_REG44_ARB_VAD_q_SHIFT)
+
+#define MH_DEBUG_REG44_SET_ARB_WE(mh_debug_reg44_reg, arb_we) \
+ mh_debug_reg44_reg = (mh_debug_reg44_reg & ~MH_DEBUG_REG44_ARB_WE_MASK) | (arb_we << MH_DEBUG_REG44_ARB_WE_SHIFT)
+#define MH_DEBUG_REG44_SET_ARB_ID_q(mh_debug_reg44_reg, arb_id_q) \
+ mh_debug_reg44_reg = (mh_debug_reg44_reg & ~MH_DEBUG_REG44_ARB_ID_q_MASK) | (arb_id_q << MH_DEBUG_REG44_ARB_ID_q_SHIFT)
+#define MH_DEBUG_REG44_SET_ARB_VAD_q(mh_debug_reg44_reg, arb_vad_q) \
+ mh_debug_reg44_reg = (mh_debug_reg44_reg & ~MH_DEBUG_REG44_ARB_VAD_q_MASK) | (arb_vad_q << MH_DEBUG_REG44_ARB_VAD_q_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg44_t {
+ unsigned int arb_we : MH_DEBUG_REG44_ARB_WE_SIZE;
+ unsigned int arb_id_q : MH_DEBUG_REG44_ARB_ID_q_SIZE;
+ unsigned int arb_vad_q : MH_DEBUG_REG44_ARB_VAD_q_SIZE;
+ } mh_debug_reg44_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg44_t {
+ unsigned int arb_vad_q : MH_DEBUG_REG44_ARB_VAD_q_SIZE;
+ unsigned int arb_id_q : MH_DEBUG_REG44_ARB_ID_q_SIZE;
+ unsigned int arb_we : MH_DEBUG_REG44_ARB_WE_SIZE;
+ } mh_debug_reg44_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg44_t f;
+} mh_debug_reg44_u;
+
+
+/*
+ * MH_DEBUG_REG45 struct
+ */
+
+#define MH_DEBUG_REG45_MMU_WE_SIZE 1
+#define MH_DEBUG_REG45_MMU_ID_SIZE 3
+#define MH_DEBUG_REG45_MMU_PAD_SIZE 28
+
+#define MH_DEBUG_REG45_MMU_WE_SHIFT 0
+#define MH_DEBUG_REG45_MMU_ID_SHIFT 1
+#define MH_DEBUG_REG45_MMU_PAD_SHIFT 4
+
+#define MH_DEBUG_REG45_MMU_WE_MASK 0x00000001
+#define MH_DEBUG_REG45_MMU_ID_MASK 0x0000000e
+#define MH_DEBUG_REG45_MMU_PAD_MASK 0xfffffff0
+
+#define MH_DEBUG_REG45_MASK \
+ (MH_DEBUG_REG45_MMU_WE_MASK | \
+ MH_DEBUG_REG45_MMU_ID_MASK | \
+ MH_DEBUG_REG45_MMU_PAD_MASK)
+
+#define MH_DEBUG_REG45(mmu_we, mmu_id, mmu_pad) \
+ ((mmu_we << MH_DEBUG_REG45_MMU_WE_SHIFT) | \
+ (mmu_id << MH_DEBUG_REG45_MMU_ID_SHIFT) | \
+ (mmu_pad << MH_DEBUG_REG45_MMU_PAD_SHIFT))
+
+#define MH_DEBUG_REG45_GET_MMU_WE(mh_debug_reg45) \
+ ((mh_debug_reg45 & MH_DEBUG_REG45_MMU_WE_MASK) >> MH_DEBUG_REG45_MMU_WE_SHIFT)
+#define MH_DEBUG_REG45_GET_MMU_ID(mh_debug_reg45) \
+ ((mh_debug_reg45 & MH_DEBUG_REG45_MMU_ID_MASK) >> MH_DEBUG_REG45_MMU_ID_SHIFT)
+#define MH_DEBUG_REG45_GET_MMU_PAD(mh_debug_reg45) \
+ ((mh_debug_reg45 & MH_DEBUG_REG45_MMU_PAD_MASK) >> MH_DEBUG_REG45_MMU_PAD_SHIFT)
+
+#define MH_DEBUG_REG45_SET_MMU_WE(mh_debug_reg45_reg, mmu_we) \
+ mh_debug_reg45_reg = (mh_debug_reg45_reg & ~MH_DEBUG_REG45_MMU_WE_MASK) | (mmu_we << MH_DEBUG_REG45_MMU_WE_SHIFT)
+#define MH_DEBUG_REG45_SET_MMU_ID(mh_debug_reg45_reg, mmu_id) \
+ mh_debug_reg45_reg = (mh_debug_reg45_reg & ~MH_DEBUG_REG45_MMU_ID_MASK) | (mmu_id << MH_DEBUG_REG45_MMU_ID_SHIFT)
+#define MH_DEBUG_REG45_SET_MMU_PAD(mh_debug_reg45_reg, mmu_pad) \
+ mh_debug_reg45_reg = (mh_debug_reg45_reg & ~MH_DEBUG_REG45_MMU_PAD_MASK) | (mmu_pad << MH_DEBUG_REG45_MMU_PAD_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg45_t {
+ unsigned int mmu_we : MH_DEBUG_REG45_MMU_WE_SIZE;
+ unsigned int mmu_id : MH_DEBUG_REG45_MMU_ID_SIZE;
+ unsigned int mmu_pad : MH_DEBUG_REG45_MMU_PAD_SIZE;
+ } mh_debug_reg45_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg45_t {
+ unsigned int mmu_pad : MH_DEBUG_REG45_MMU_PAD_SIZE;
+ unsigned int mmu_id : MH_DEBUG_REG45_MMU_ID_SIZE;
+ unsigned int mmu_we : MH_DEBUG_REG45_MMU_WE_SIZE;
+ } mh_debug_reg45_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg45_t f;
+} mh_debug_reg45_u;
+
+
+/*
+ * MH_DEBUG_REG46 struct
+ */
+
+#define MH_DEBUG_REG46_WDAT_REG_WE_q_SIZE 1
+#define MH_DEBUG_REG46_WDB_WE_SIZE 1
+#define MH_DEBUG_REG46_WDAT_REG_VALID_q_SIZE 1
+#define MH_DEBUG_REG46_WDB_RTR_SKID_4_SIZE 1
+#define MH_DEBUG_REG46_ARB_WSTRB_q_SIZE 8
+#define MH_DEBUG_REG46_ARB_WLAST_SIZE 1
+#define MH_DEBUG_REG46_WDB_CTRL_EMPTY_SIZE 1
+#define MH_DEBUG_REG46_WDB_FIFO_CNT_q_SIZE 5
+#define MH_DEBUG_REG46_WDC_WDB_RE_q_SIZE 1
+#define MH_DEBUG_REG46_WDB_WDC_WID_SIZE 3
+#define MH_DEBUG_REG46_WDB_WDC_WLAST_SIZE 1
+#define MH_DEBUG_REG46_WDB_WDC_WSTRB_SIZE 8
+
+#define MH_DEBUG_REG46_WDAT_REG_WE_q_SHIFT 0
+#define MH_DEBUG_REG46_WDB_WE_SHIFT 1
+#define MH_DEBUG_REG46_WDAT_REG_VALID_q_SHIFT 2
+#define MH_DEBUG_REG46_WDB_RTR_SKID_4_SHIFT 3
+#define MH_DEBUG_REG46_ARB_WSTRB_q_SHIFT 4
+#define MH_DEBUG_REG46_ARB_WLAST_SHIFT 12
+#define MH_DEBUG_REG46_WDB_CTRL_EMPTY_SHIFT 13
+#define MH_DEBUG_REG46_WDB_FIFO_CNT_q_SHIFT 14
+#define MH_DEBUG_REG46_WDC_WDB_RE_q_SHIFT 19
+#define MH_DEBUG_REG46_WDB_WDC_WID_SHIFT 20
+#define MH_DEBUG_REG46_WDB_WDC_WLAST_SHIFT 23
+#define MH_DEBUG_REG46_WDB_WDC_WSTRB_SHIFT 24
+
+#define MH_DEBUG_REG46_WDAT_REG_WE_q_MASK 0x00000001
+#define MH_DEBUG_REG46_WDB_WE_MASK 0x00000002
+#define MH_DEBUG_REG46_WDAT_REG_VALID_q_MASK 0x00000004
+#define MH_DEBUG_REG46_WDB_RTR_SKID_4_MASK 0x00000008
+#define MH_DEBUG_REG46_ARB_WSTRB_q_MASK 0x00000ff0
+#define MH_DEBUG_REG46_ARB_WLAST_MASK 0x00001000
+#define MH_DEBUG_REG46_WDB_CTRL_EMPTY_MASK 0x00002000
+#define MH_DEBUG_REG46_WDB_FIFO_CNT_q_MASK 0x0007c000
+#define MH_DEBUG_REG46_WDC_WDB_RE_q_MASK 0x00080000
+#define MH_DEBUG_REG46_WDB_WDC_WID_MASK 0x00700000
+#define MH_DEBUG_REG46_WDB_WDC_WLAST_MASK 0x00800000
+#define MH_DEBUG_REG46_WDB_WDC_WSTRB_MASK 0xff000000
+
+#define MH_DEBUG_REG46_MASK \
+ (MH_DEBUG_REG46_WDAT_REG_WE_q_MASK | \
+ MH_DEBUG_REG46_WDB_WE_MASK | \
+ MH_DEBUG_REG46_WDAT_REG_VALID_q_MASK | \
+ MH_DEBUG_REG46_WDB_RTR_SKID_4_MASK | \
+ MH_DEBUG_REG46_ARB_WSTRB_q_MASK | \
+ MH_DEBUG_REG46_ARB_WLAST_MASK | \
+ MH_DEBUG_REG46_WDB_CTRL_EMPTY_MASK | \
+ MH_DEBUG_REG46_WDB_FIFO_CNT_q_MASK | \
+ MH_DEBUG_REG46_WDC_WDB_RE_q_MASK | \
+ MH_DEBUG_REG46_WDB_WDC_WID_MASK | \
+ MH_DEBUG_REG46_WDB_WDC_WLAST_MASK | \
+ MH_DEBUG_REG46_WDB_WDC_WSTRB_MASK)
+
+#define MH_DEBUG_REG46(wdat_reg_we_q, wdb_we, wdat_reg_valid_q, wdb_rtr_skid_4, arb_wstrb_q, arb_wlast, wdb_ctrl_empty, wdb_fifo_cnt_q, wdc_wdb_re_q, wdb_wdc_wid, wdb_wdc_wlast, wdb_wdc_wstrb) \
+ ((wdat_reg_we_q << MH_DEBUG_REG46_WDAT_REG_WE_q_SHIFT) | \
+ (wdb_we << MH_DEBUG_REG46_WDB_WE_SHIFT) | \
+ (wdat_reg_valid_q << MH_DEBUG_REG46_WDAT_REG_VALID_q_SHIFT) | \
+ (wdb_rtr_skid_4 << MH_DEBUG_REG46_WDB_RTR_SKID_4_SHIFT) | \
+ (arb_wstrb_q << MH_DEBUG_REG46_ARB_WSTRB_q_SHIFT) | \
+ (arb_wlast << MH_DEBUG_REG46_ARB_WLAST_SHIFT) | \
+ (wdb_ctrl_empty << MH_DEBUG_REG46_WDB_CTRL_EMPTY_SHIFT) | \
+ (wdb_fifo_cnt_q << MH_DEBUG_REG46_WDB_FIFO_CNT_q_SHIFT) | \
+ (wdc_wdb_re_q << MH_DEBUG_REG46_WDC_WDB_RE_q_SHIFT) | \
+ (wdb_wdc_wid << MH_DEBUG_REG46_WDB_WDC_WID_SHIFT) | \
+ (wdb_wdc_wlast << MH_DEBUG_REG46_WDB_WDC_WLAST_SHIFT) | \
+ (wdb_wdc_wstrb << MH_DEBUG_REG46_WDB_WDC_WSTRB_SHIFT))
+
+#define MH_DEBUG_REG46_GET_WDAT_REG_WE_q(mh_debug_reg46) \
+ ((mh_debug_reg46 & MH_DEBUG_REG46_WDAT_REG_WE_q_MASK) >> MH_DEBUG_REG46_WDAT_REG_WE_q_SHIFT)
+#define MH_DEBUG_REG46_GET_WDB_WE(mh_debug_reg46) \
+ ((mh_debug_reg46 & MH_DEBUG_REG46_WDB_WE_MASK) >> MH_DEBUG_REG46_WDB_WE_SHIFT)
+#define MH_DEBUG_REG46_GET_WDAT_REG_VALID_q(mh_debug_reg46) \
+ ((mh_debug_reg46 & MH_DEBUG_REG46_WDAT_REG_VALID_q_MASK) >> MH_DEBUG_REG46_WDAT_REG_VALID_q_SHIFT)
+#define MH_DEBUG_REG46_GET_WDB_RTR_SKID_4(mh_debug_reg46) \
+ ((mh_debug_reg46 & MH_DEBUG_REG46_WDB_RTR_SKID_4_MASK) >> MH_DEBUG_REG46_WDB_RTR_SKID_4_SHIFT)
+#define MH_DEBUG_REG46_GET_ARB_WSTRB_q(mh_debug_reg46) \
+ ((mh_debug_reg46 & MH_DEBUG_REG46_ARB_WSTRB_q_MASK) >> MH_DEBUG_REG46_ARB_WSTRB_q_SHIFT)
+#define MH_DEBUG_REG46_GET_ARB_WLAST(mh_debug_reg46) \
+ ((mh_debug_reg46 & MH_DEBUG_REG46_ARB_WLAST_MASK) >> MH_DEBUG_REG46_ARB_WLAST_SHIFT)
+#define MH_DEBUG_REG46_GET_WDB_CTRL_EMPTY(mh_debug_reg46) \
+ ((mh_debug_reg46 & MH_DEBUG_REG46_WDB_CTRL_EMPTY_MASK) >> MH_DEBUG_REG46_WDB_CTRL_EMPTY_SHIFT)
+#define MH_DEBUG_REG46_GET_WDB_FIFO_CNT_q(mh_debug_reg46) \
+ ((mh_debug_reg46 & MH_DEBUG_REG46_WDB_FIFO_CNT_q_MASK) >> MH_DEBUG_REG46_WDB_FIFO_CNT_q_SHIFT)
+#define MH_DEBUG_REG46_GET_WDC_WDB_RE_q(mh_debug_reg46) \
+ ((mh_debug_reg46 & MH_DEBUG_REG46_WDC_WDB_RE_q_MASK) >> MH_DEBUG_REG46_WDC_WDB_RE_q_SHIFT)
+#define MH_DEBUG_REG46_GET_WDB_WDC_WID(mh_debug_reg46) \
+ ((mh_debug_reg46 & MH_DEBUG_REG46_WDB_WDC_WID_MASK) >> MH_DEBUG_REG46_WDB_WDC_WID_SHIFT)
+#define MH_DEBUG_REG46_GET_WDB_WDC_WLAST(mh_debug_reg46) \
+ ((mh_debug_reg46 & MH_DEBUG_REG46_WDB_WDC_WLAST_MASK) >> MH_DEBUG_REG46_WDB_WDC_WLAST_SHIFT)
+#define MH_DEBUG_REG46_GET_WDB_WDC_WSTRB(mh_debug_reg46) \
+ ((mh_debug_reg46 & MH_DEBUG_REG46_WDB_WDC_WSTRB_MASK) >> MH_DEBUG_REG46_WDB_WDC_WSTRB_SHIFT)
+
+#define MH_DEBUG_REG46_SET_WDAT_REG_WE_q(mh_debug_reg46_reg, wdat_reg_we_q) \
+ mh_debug_reg46_reg = (mh_debug_reg46_reg & ~MH_DEBUG_REG46_WDAT_REG_WE_q_MASK) | (wdat_reg_we_q << MH_DEBUG_REG46_WDAT_REG_WE_q_SHIFT)
+#define MH_DEBUG_REG46_SET_WDB_WE(mh_debug_reg46_reg, wdb_we) \
+ mh_debug_reg46_reg = (mh_debug_reg46_reg & ~MH_DEBUG_REG46_WDB_WE_MASK) | (wdb_we << MH_DEBUG_REG46_WDB_WE_SHIFT)
+#define MH_DEBUG_REG46_SET_WDAT_REG_VALID_q(mh_debug_reg46_reg, wdat_reg_valid_q) \
+ mh_debug_reg46_reg = (mh_debug_reg46_reg & ~MH_DEBUG_REG46_WDAT_REG_VALID_q_MASK) | (wdat_reg_valid_q << MH_DEBUG_REG46_WDAT_REG_VALID_q_SHIFT)
+#define MH_DEBUG_REG46_SET_WDB_RTR_SKID_4(mh_debug_reg46_reg, wdb_rtr_skid_4) \
+ mh_debug_reg46_reg = (mh_debug_reg46_reg & ~MH_DEBUG_REG46_WDB_RTR_SKID_4_MASK) | (wdb_rtr_skid_4 << MH_DEBUG_REG46_WDB_RTR_SKID_4_SHIFT)
+#define MH_DEBUG_REG46_SET_ARB_WSTRB_q(mh_debug_reg46_reg, arb_wstrb_q) \
+ mh_debug_reg46_reg = (mh_debug_reg46_reg & ~MH_DEBUG_REG46_ARB_WSTRB_q_MASK) | (arb_wstrb_q << MH_DEBUG_REG46_ARB_WSTRB_q_SHIFT)
+#define MH_DEBUG_REG46_SET_ARB_WLAST(mh_debug_reg46_reg, arb_wlast) \
+ mh_debug_reg46_reg = (mh_debug_reg46_reg & ~MH_DEBUG_REG46_ARB_WLAST_MASK) | (arb_wlast << MH_DEBUG_REG46_ARB_WLAST_SHIFT)
+#define MH_DEBUG_REG46_SET_WDB_CTRL_EMPTY(mh_debug_reg46_reg, wdb_ctrl_empty) \
+ mh_debug_reg46_reg = (mh_debug_reg46_reg & ~MH_DEBUG_REG46_WDB_CTRL_EMPTY_MASK) | (wdb_ctrl_empty << MH_DEBUG_REG46_WDB_CTRL_EMPTY_SHIFT)
+#define MH_DEBUG_REG46_SET_WDB_FIFO_CNT_q(mh_debug_reg46_reg, wdb_fifo_cnt_q) \
+ mh_debug_reg46_reg = (mh_debug_reg46_reg & ~MH_DEBUG_REG46_WDB_FIFO_CNT_q_MASK) | (wdb_fifo_cnt_q << MH_DEBUG_REG46_WDB_FIFO_CNT_q_SHIFT)
+#define MH_DEBUG_REG46_SET_WDC_WDB_RE_q(mh_debug_reg46_reg, wdc_wdb_re_q) \
+ mh_debug_reg46_reg = (mh_debug_reg46_reg & ~MH_DEBUG_REG46_WDC_WDB_RE_q_MASK) | (wdc_wdb_re_q << MH_DEBUG_REG46_WDC_WDB_RE_q_SHIFT)
+#define MH_DEBUG_REG46_SET_WDB_WDC_WID(mh_debug_reg46_reg, wdb_wdc_wid) \
+ mh_debug_reg46_reg = (mh_debug_reg46_reg & ~MH_DEBUG_REG46_WDB_WDC_WID_MASK) | (wdb_wdc_wid << MH_DEBUG_REG46_WDB_WDC_WID_SHIFT)
+#define MH_DEBUG_REG46_SET_WDB_WDC_WLAST(mh_debug_reg46_reg, wdb_wdc_wlast) \
+ mh_debug_reg46_reg = (mh_debug_reg46_reg & ~MH_DEBUG_REG46_WDB_WDC_WLAST_MASK) | (wdb_wdc_wlast << MH_DEBUG_REG46_WDB_WDC_WLAST_SHIFT)
+#define MH_DEBUG_REG46_SET_WDB_WDC_WSTRB(mh_debug_reg46_reg, wdb_wdc_wstrb) \
+ mh_debug_reg46_reg = (mh_debug_reg46_reg & ~MH_DEBUG_REG46_WDB_WDC_WSTRB_MASK) | (wdb_wdc_wstrb << MH_DEBUG_REG46_WDB_WDC_WSTRB_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg46_t {
+ unsigned int wdat_reg_we_q : MH_DEBUG_REG46_WDAT_REG_WE_q_SIZE;
+ unsigned int wdb_we : MH_DEBUG_REG46_WDB_WE_SIZE;
+ unsigned int wdat_reg_valid_q : MH_DEBUG_REG46_WDAT_REG_VALID_q_SIZE;
+ unsigned int wdb_rtr_skid_4 : MH_DEBUG_REG46_WDB_RTR_SKID_4_SIZE;
+ unsigned int arb_wstrb_q : MH_DEBUG_REG46_ARB_WSTRB_q_SIZE;
+ unsigned int arb_wlast : MH_DEBUG_REG46_ARB_WLAST_SIZE;
+ unsigned int wdb_ctrl_empty : MH_DEBUG_REG46_WDB_CTRL_EMPTY_SIZE;
+ unsigned int wdb_fifo_cnt_q : MH_DEBUG_REG46_WDB_FIFO_CNT_q_SIZE;
+ unsigned int wdc_wdb_re_q : MH_DEBUG_REG46_WDC_WDB_RE_q_SIZE;
+ unsigned int wdb_wdc_wid : MH_DEBUG_REG46_WDB_WDC_WID_SIZE;
+ unsigned int wdb_wdc_wlast : MH_DEBUG_REG46_WDB_WDC_WLAST_SIZE;
+ unsigned int wdb_wdc_wstrb : MH_DEBUG_REG46_WDB_WDC_WSTRB_SIZE;
+ } mh_debug_reg46_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg46_t {
+ unsigned int wdb_wdc_wstrb : MH_DEBUG_REG46_WDB_WDC_WSTRB_SIZE;
+ unsigned int wdb_wdc_wlast : MH_DEBUG_REG46_WDB_WDC_WLAST_SIZE;
+ unsigned int wdb_wdc_wid : MH_DEBUG_REG46_WDB_WDC_WID_SIZE;
+ unsigned int wdc_wdb_re_q : MH_DEBUG_REG46_WDC_WDB_RE_q_SIZE;
+ unsigned int wdb_fifo_cnt_q : MH_DEBUG_REG46_WDB_FIFO_CNT_q_SIZE;
+ unsigned int wdb_ctrl_empty : MH_DEBUG_REG46_WDB_CTRL_EMPTY_SIZE;
+ unsigned int arb_wlast : MH_DEBUG_REG46_ARB_WLAST_SIZE;
+ unsigned int arb_wstrb_q : MH_DEBUG_REG46_ARB_WSTRB_q_SIZE;
+ unsigned int wdb_rtr_skid_4 : MH_DEBUG_REG46_WDB_RTR_SKID_4_SIZE;
+ unsigned int wdat_reg_valid_q : MH_DEBUG_REG46_WDAT_REG_VALID_q_SIZE;
+ unsigned int wdb_we : MH_DEBUG_REG46_WDB_WE_SIZE;
+ unsigned int wdat_reg_we_q : MH_DEBUG_REG46_WDAT_REG_WE_q_SIZE;
+ } mh_debug_reg46_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg46_t f;
+} mh_debug_reg46_u;
+
+
+/*
+ * MH_DEBUG_REG47 struct
+ */
+
+#define MH_DEBUG_REG47_WDB_WDC_WDATA_31_0_SIZE 32
+
+#define MH_DEBUG_REG47_WDB_WDC_WDATA_31_0_SHIFT 0
+
+#define MH_DEBUG_REG47_WDB_WDC_WDATA_31_0_MASK 0xffffffff
+
+#define MH_DEBUG_REG47_MASK \
+ (MH_DEBUG_REG47_WDB_WDC_WDATA_31_0_MASK)
+
+#define MH_DEBUG_REG47(wdb_wdc_wdata_31_0) \
+ ((wdb_wdc_wdata_31_0 << MH_DEBUG_REG47_WDB_WDC_WDATA_31_0_SHIFT))
+
+#define MH_DEBUG_REG47_GET_WDB_WDC_WDATA_31_0(mh_debug_reg47) \
+ ((mh_debug_reg47 & MH_DEBUG_REG47_WDB_WDC_WDATA_31_0_MASK) >> MH_DEBUG_REG47_WDB_WDC_WDATA_31_0_SHIFT)
+
+#define MH_DEBUG_REG47_SET_WDB_WDC_WDATA_31_0(mh_debug_reg47_reg, wdb_wdc_wdata_31_0) \
+ mh_debug_reg47_reg = (mh_debug_reg47_reg & ~MH_DEBUG_REG47_WDB_WDC_WDATA_31_0_MASK) | (wdb_wdc_wdata_31_0 << MH_DEBUG_REG47_WDB_WDC_WDATA_31_0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg47_t {
+ unsigned int wdb_wdc_wdata_31_0 : MH_DEBUG_REG47_WDB_WDC_WDATA_31_0_SIZE;
+ } mh_debug_reg47_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg47_t {
+ unsigned int wdb_wdc_wdata_31_0 : MH_DEBUG_REG47_WDB_WDC_WDATA_31_0_SIZE;
+ } mh_debug_reg47_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg47_t f;
+} mh_debug_reg47_u;
+
+
+/*
+ * MH_DEBUG_REG48 struct
+ */
+
+#define MH_DEBUG_REG48_WDB_WDC_WDATA_63_32_SIZE 32
+
+#define MH_DEBUG_REG48_WDB_WDC_WDATA_63_32_SHIFT 0
+
+#define MH_DEBUG_REG48_WDB_WDC_WDATA_63_32_MASK 0xffffffff
+
+#define MH_DEBUG_REG48_MASK \
+ (MH_DEBUG_REG48_WDB_WDC_WDATA_63_32_MASK)
+
+#define MH_DEBUG_REG48(wdb_wdc_wdata_63_32) \
+ ((wdb_wdc_wdata_63_32 << MH_DEBUG_REG48_WDB_WDC_WDATA_63_32_SHIFT))
+
+#define MH_DEBUG_REG48_GET_WDB_WDC_WDATA_63_32(mh_debug_reg48) \
+ ((mh_debug_reg48 & MH_DEBUG_REG48_WDB_WDC_WDATA_63_32_MASK) >> MH_DEBUG_REG48_WDB_WDC_WDATA_63_32_SHIFT)
+
+#define MH_DEBUG_REG48_SET_WDB_WDC_WDATA_63_32(mh_debug_reg48_reg, wdb_wdc_wdata_63_32) \
+ mh_debug_reg48_reg = (mh_debug_reg48_reg & ~MH_DEBUG_REG48_WDB_WDC_WDATA_63_32_MASK) | (wdb_wdc_wdata_63_32 << MH_DEBUG_REG48_WDB_WDC_WDATA_63_32_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg48_t {
+ unsigned int wdb_wdc_wdata_63_32 : MH_DEBUG_REG48_WDB_WDC_WDATA_63_32_SIZE;
+ } mh_debug_reg48_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg48_t {
+ unsigned int wdb_wdc_wdata_63_32 : MH_DEBUG_REG48_WDB_WDC_WDATA_63_32_SIZE;
+ } mh_debug_reg48_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg48_t f;
+} mh_debug_reg48_u;
+
+
+/*
+ * MH_DEBUG_REG49 struct
+ */
+
+#define MH_DEBUG_REG49_CTRL_ARC_EMPTY_SIZE 1
+#define MH_DEBUG_REG49_CTRL_RARC_EMPTY_SIZE 1
+#define MH_DEBUG_REG49_ARQ_CTRL_EMPTY_SIZE 1
+#define MH_DEBUG_REG49_ARQ_CTRL_WRITE_SIZE 1
+#define MH_DEBUG_REG49_TLBMISS_CTRL_RTS_SIZE 1
+#define MH_DEBUG_REG49_CTRL_TLBMISS_RE_q_SIZE 1
+#define MH_DEBUG_REG49_INFLT_LIMIT_q_SIZE 1
+#define MH_DEBUG_REG49_INFLT_LIMIT_CNT_q_SIZE 6
+#define MH_DEBUG_REG49_ARC_CTRL_RE_q_SIZE 1
+#define MH_DEBUG_REG49_RARC_CTRL_RE_q_SIZE 1
+#define MH_DEBUG_REG49_RVALID_q_SIZE 1
+#define MH_DEBUG_REG49_RREADY_q_SIZE 1
+#define MH_DEBUG_REG49_RLAST_q_SIZE 1
+#define MH_DEBUG_REG49_BVALID_q_SIZE 1
+#define MH_DEBUG_REG49_BREADY_q_SIZE 1
+
+#define MH_DEBUG_REG49_CTRL_ARC_EMPTY_SHIFT 0
+#define MH_DEBUG_REG49_CTRL_RARC_EMPTY_SHIFT 1
+#define MH_DEBUG_REG49_ARQ_CTRL_EMPTY_SHIFT 2
+#define MH_DEBUG_REG49_ARQ_CTRL_WRITE_SHIFT 3
+#define MH_DEBUG_REG49_TLBMISS_CTRL_RTS_SHIFT 4
+#define MH_DEBUG_REG49_CTRL_TLBMISS_RE_q_SHIFT 5
+#define MH_DEBUG_REG49_INFLT_LIMIT_q_SHIFT 6
+#define MH_DEBUG_REG49_INFLT_LIMIT_CNT_q_SHIFT 7
+#define MH_DEBUG_REG49_ARC_CTRL_RE_q_SHIFT 13
+#define MH_DEBUG_REG49_RARC_CTRL_RE_q_SHIFT 14
+#define MH_DEBUG_REG49_RVALID_q_SHIFT 15
+#define MH_DEBUG_REG49_RREADY_q_SHIFT 16
+#define MH_DEBUG_REG49_RLAST_q_SHIFT 17
+#define MH_DEBUG_REG49_BVALID_q_SHIFT 18
+#define MH_DEBUG_REG49_BREADY_q_SHIFT 19
+
+#define MH_DEBUG_REG49_CTRL_ARC_EMPTY_MASK 0x00000001
+#define MH_DEBUG_REG49_CTRL_RARC_EMPTY_MASK 0x00000002
+#define MH_DEBUG_REG49_ARQ_CTRL_EMPTY_MASK 0x00000004
+#define MH_DEBUG_REG49_ARQ_CTRL_WRITE_MASK 0x00000008
+#define MH_DEBUG_REG49_TLBMISS_CTRL_RTS_MASK 0x00000010
+#define MH_DEBUG_REG49_CTRL_TLBMISS_RE_q_MASK 0x00000020
+#define MH_DEBUG_REG49_INFLT_LIMIT_q_MASK 0x00000040
+#define MH_DEBUG_REG49_INFLT_LIMIT_CNT_q_MASK 0x00001f80
+#define MH_DEBUG_REG49_ARC_CTRL_RE_q_MASK 0x00002000
+#define MH_DEBUG_REG49_RARC_CTRL_RE_q_MASK 0x00004000
+#define MH_DEBUG_REG49_RVALID_q_MASK 0x00008000
+#define MH_DEBUG_REG49_RREADY_q_MASK 0x00010000
+#define MH_DEBUG_REG49_RLAST_q_MASK 0x00020000
+#define MH_DEBUG_REG49_BVALID_q_MASK 0x00040000
+#define MH_DEBUG_REG49_BREADY_q_MASK 0x00080000
+
+#define MH_DEBUG_REG49_MASK \
+ (MH_DEBUG_REG49_CTRL_ARC_EMPTY_MASK | \
+ MH_DEBUG_REG49_CTRL_RARC_EMPTY_MASK | \
+ MH_DEBUG_REG49_ARQ_CTRL_EMPTY_MASK | \
+ MH_DEBUG_REG49_ARQ_CTRL_WRITE_MASK | \
+ MH_DEBUG_REG49_TLBMISS_CTRL_RTS_MASK | \
+ MH_DEBUG_REG49_CTRL_TLBMISS_RE_q_MASK | \
+ MH_DEBUG_REG49_INFLT_LIMIT_q_MASK | \
+ MH_DEBUG_REG49_INFLT_LIMIT_CNT_q_MASK | \
+ MH_DEBUG_REG49_ARC_CTRL_RE_q_MASK | \
+ MH_DEBUG_REG49_RARC_CTRL_RE_q_MASK | \
+ MH_DEBUG_REG49_RVALID_q_MASK | \
+ MH_DEBUG_REG49_RREADY_q_MASK | \
+ MH_DEBUG_REG49_RLAST_q_MASK | \
+ MH_DEBUG_REG49_BVALID_q_MASK | \
+ MH_DEBUG_REG49_BREADY_q_MASK)
+
+#define MH_DEBUG_REG49(ctrl_arc_empty, ctrl_rarc_empty, arq_ctrl_empty, arq_ctrl_write, tlbmiss_ctrl_rts, ctrl_tlbmiss_re_q, inflt_limit_q, inflt_limit_cnt_q, arc_ctrl_re_q, rarc_ctrl_re_q, rvalid_q, rready_q, rlast_q, bvalid_q, bready_q) \
+ ((ctrl_arc_empty << MH_DEBUG_REG49_CTRL_ARC_EMPTY_SHIFT) | \
+ (ctrl_rarc_empty << MH_DEBUG_REG49_CTRL_RARC_EMPTY_SHIFT) | \
+ (arq_ctrl_empty << MH_DEBUG_REG49_ARQ_CTRL_EMPTY_SHIFT) | \
+ (arq_ctrl_write << MH_DEBUG_REG49_ARQ_CTRL_WRITE_SHIFT) | \
+ (tlbmiss_ctrl_rts << MH_DEBUG_REG49_TLBMISS_CTRL_RTS_SHIFT) | \
+ (ctrl_tlbmiss_re_q << MH_DEBUG_REG49_CTRL_TLBMISS_RE_q_SHIFT) | \
+ (inflt_limit_q << MH_DEBUG_REG49_INFLT_LIMIT_q_SHIFT) | \
+ (inflt_limit_cnt_q << MH_DEBUG_REG49_INFLT_LIMIT_CNT_q_SHIFT) | \
+ (arc_ctrl_re_q << MH_DEBUG_REG49_ARC_CTRL_RE_q_SHIFT) | \
+ (rarc_ctrl_re_q << MH_DEBUG_REG49_RARC_CTRL_RE_q_SHIFT) | \
+ (rvalid_q << MH_DEBUG_REG49_RVALID_q_SHIFT) | \
+ (rready_q << MH_DEBUG_REG49_RREADY_q_SHIFT) | \
+ (rlast_q << MH_DEBUG_REG49_RLAST_q_SHIFT) | \
+ (bvalid_q << MH_DEBUG_REG49_BVALID_q_SHIFT) | \
+ (bready_q << MH_DEBUG_REG49_BREADY_q_SHIFT))
+
+#define MH_DEBUG_REG49_GET_CTRL_ARC_EMPTY(mh_debug_reg49) \
+ ((mh_debug_reg49 & MH_DEBUG_REG49_CTRL_ARC_EMPTY_MASK) >> MH_DEBUG_REG49_CTRL_ARC_EMPTY_SHIFT)
+#define MH_DEBUG_REG49_GET_CTRL_RARC_EMPTY(mh_debug_reg49) \
+ ((mh_debug_reg49 & MH_DEBUG_REG49_CTRL_RARC_EMPTY_MASK) >> MH_DEBUG_REG49_CTRL_RARC_EMPTY_SHIFT)
+#define MH_DEBUG_REG49_GET_ARQ_CTRL_EMPTY(mh_debug_reg49) \
+ ((mh_debug_reg49 & MH_DEBUG_REG49_ARQ_CTRL_EMPTY_MASK) >> MH_DEBUG_REG49_ARQ_CTRL_EMPTY_SHIFT)
+#define MH_DEBUG_REG49_GET_ARQ_CTRL_WRITE(mh_debug_reg49) \
+ ((mh_debug_reg49 & MH_DEBUG_REG49_ARQ_CTRL_WRITE_MASK) >> MH_DEBUG_REG49_ARQ_CTRL_WRITE_SHIFT)
+#define MH_DEBUG_REG49_GET_TLBMISS_CTRL_RTS(mh_debug_reg49) \
+ ((mh_debug_reg49 & MH_DEBUG_REG49_TLBMISS_CTRL_RTS_MASK) >> MH_DEBUG_REG49_TLBMISS_CTRL_RTS_SHIFT)
+#define MH_DEBUG_REG49_GET_CTRL_TLBMISS_RE_q(mh_debug_reg49) \
+ ((mh_debug_reg49 & MH_DEBUG_REG49_CTRL_TLBMISS_RE_q_MASK) >> MH_DEBUG_REG49_CTRL_TLBMISS_RE_q_SHIFT)
+#define MH_DEBUG_REG49_GET_INFLT_LIMIT_q(mh_debug_reg49) \
+ ((mh_debug_reg49 & MH_DEBUG_REG49_INFLT_LIMIT_q_MASK) >> MH_DEBUG_REG49_INFLT_LIMIT_q_SHIFT)
+#define MH_DEBUG_REG49_GET_INFLT_LIMIT_CNT_q(mh_debug_reg49) \
+ ((mh_debug_reg49 & MH_DEBUG_REG49_INFLT_LIMIT_CNT_q_MASK) >> MH_DEBUG_REG49_INFLT_LIMIT_CNT_q_SHIFT)
+#define MH_DEBUG_REG49_GET_ARC_CTRL_RE_q(mh_debug_reg49) \
+ ((mh_debug_reg49 & MH_DEBUG_REG49_ARC_CTRL_RE_q_MASK) >> MH_DEBUG_REG49_ARC_CTRL_RE_q_SHIFT)
+#define MH_DEBUG_REG49_GET_RARC_CTRL_RE_q(mh_debug_reg49) \
+ ((mh_debug_reg49 & MH_DEBUG_REG49_RARC_CTRL_RE_q_MASK) >> MH_DEBUG_REG49_RARC_CTRL_RE_q_SHIFT)
+#define MH_DEBUG_REG49_GET_RVALID_q(mh_debug_reg49) \
+ ((mh_debug_reg49 & MH_DEBUG_REG49_RVALID_q_MASK) >> MH_DEBUG_REG49_RVALID_q_SHIFT)
+#define MH_DEBUG_REG49_GET_RREADY_q(mh_debug_reg49) \
+ ((mh_debug_reg49 & MH_DEBUG_REG49_RREADY_q_MASK) >> MH_DEBUG_REG49_RREADY_q_SHIFT)
+#define MH_DEBUG_REG49_GET_RLAST_q(mh_debug_reg49) \
+ ((mh_debug_reg49 & MH_DEBUG_REG49_RLAST_q_MASK) >> MH_DEBUG_REG49_RLAST_q_SHIFT)
+#define MH_DEBUG_REG49_GET_BVALID_q(mh_debug_reg49) \
+ ((mh_debug_reg49 & MH_DEBUG_REG49_BVALID_q_MASK) >> MH_DEBUG_REG49_BVALID_q_SHIFT)
+#define MH_DEBUG_REG49_GET_BREADY_q(mh_debug_reg49) \
+ ((mh_debug_reg49 & MH_DEBUG_REG49_BREADY_q_MASK) >> MH_DEBUG_REG49_BREADY_q_SHIFT)
+
+#define MH_DEBUG_REG49_SET_CTRL_ARC_EMPTY(mh_debug_reg49_reg, ctrl_arc_empty) \
+ mh_debug_reg49_reg = (mh_debug_reg49_reg & ~MH_DEBUG_REG49_CTRL_ARC_EMPTY_MASK) | (ctrl_arc_empty << MH_DEBUG_REG49_CTRL_ARC_EMPTY_SHIFT)
+#define MH_DEBUG_REG49_SET_CTRL_RARC_EMPTY(mh_debug_reg49_reg, ctrl_rarc_empty) \
+ mh_debug_reg49_reg = (mh_debug_reg49_reg & ~MH_DEBUG_REG49_CTRL_RARC_EMPTY_MASK) | (ctrl_rarc_empty << MH_DEBUG_REG49_CTRL_RARC_EMPTY_SHIFT)
+#define MH_DEBUG_REG49_SET_ARQ_CTRL_EMPTY(mh_debug_reg49_reg, arq_ctrl_empty) \
+ mh_debug_reg49_reg = (mh_debug_reg49_reg & ~MH_DEBUG_REG49_ARQ_CTRL_EMPTY_MASK) | (arq_ctrl_empty << MH_DEBUG_REG49_ARQ_CTRL_EMPTY_SHIFT)
+#define MH_DEBUG_REG49_SET_ARQ_CTRL_WRITE(mh_debug_reg49_reg, arq_ctrl_write) \
+ mh_debug_reg49_reg = (mh_debug_reg49_reg & ~MH_DEBUG_REG49_ARQ_CTRL_WRITE_MASK) | (arq_ctrl_write << MH_DEBUG_REG49_ARQ_CTRL_WRITE_SHIFT)
+#define MH_DEBUG_REG49_SET_TLBMISS_CTRL_RTS(mh_debug_reg49_reg, tlbmiss_ctrl_rts) \
+ mh_debug_reg49_reg = (mh_debug_reg49_reg & ~MH_DEBUG_REG49_TLBMISS_CTRL_RTS_MASK) | (tlbmiss_ctrl_rts << MH_DEBUG_REG49_TLBMISS_CTRL_RTS_SHIFT)
+#define MH_DEBUG_REG49_SET_CTRL_TLBMISS_RE_q(mh_debug_reg49_reg, ctrl_tlbmiss_re_q) \
+ mh_debug_reg49_reg = (mh_debug_reg49_reg & ~MH_DEBUG_REG49_CTRL_TLBMISS_RE_q_MASK) | (ctrl_tlbmiss_re_q << MH_DEBUG_REG49_CTRL_TLBMISS_RE_q_SHIFT)
+#define MH_DEBUG_REG49_SET_INFLT_LIMIT_q(mh_debug_reg49_reg, inflt_limit_q) \
+ mh_debug_reg49_reg = (mh_debug_reg49_reg & ~MH_DEBUG_REG49_INFLT_LIMIT_q_MASK) | (inflt_limit_q << MH_DEBUG_REG49_INFLT_LIMIT_q_SHIFT)
+#define MH_DEBUG_REG49_SET_INFLT_LIMIT_CNT_q(mh_debug_reg49_reg, inflt_limit_cnt_q) \
+ mh_debug_reg49_reg = (mh_debug_reg49_reg & ~MH_DEBUG_REG49_INFLT_LIMIT_CNT_q_MASK) | (inflt_limit_cnt_q << MH_DEBUG_REG49_INFLT_LIMIT_CNT_q_SHIFT)
+#define MH_DEBUG_REG49_SET_ARC_CTRL_RE_q(mh_debug_reg49_reg, arc_ctrl_re_q) \
+ mh_debug_reg49_reg = (mh_debug_reg49_reg & ~MH_DEBUG_REG49_ARC_CTRL_RE_q_MASK) | (arc_ctrl_re_q << MH_DEBUG_REG49_ARC_CTRL_RE_q_SHIFT)
+#define MH_DEBUG_REG49_SET_RARC_CTRL_RE_q(mh_debug_reg49_reg, rarc_ctrl_re_q) \
+ mh_debug_reg49_reg = (mh_debug_reg49_reg & ~MH_DEBUG_REG49_RARC_CTRL_RE_q_MASK) | (rarc_ctrl_re_q << MH_DEBUG_REG49_RARC_CTRL_RE_q_SHIFT)
+#define MH_DEBUG_REG49_SET_RVALID_q(mh_debug_reg49_reg, rvalid_q) \
+ mh_debug_reg49_reg = (mh_debug_reg49_reg & ~MH_DEBUG_REG49_RVALID_q_MASK) | (rvalid_q << MH_DEBUG_REG49_RVALID_q_SHIFT)
+#define MH_DEBUG_REG49_SET_RREADY_q(mh_debug_reg49_reg, rready_q) \
+ mh_debug_reg49_reg = (mh_debug_reg49_reg & ~MH_DEBUG_REG49_RREADY_q_MASK) | (rready_q << MH_DEBUG_REG49_RREADY_q_SHIFT)
+#define MH_DEBUG_REG49_SET_RLAST_q(mh_debug_reg49_reg, rlast_q) \
+ mh_debug_reg49_reg = (mh_debug_reg49_reg & ~MH_DEBUG_REG49_RLAST_q_MASK) | (rlast_q << MH_DEBUG_REG49_RLAST_q_SHIFT)
+#define MH_DEBUG_REG49_SET_BVALID_q(mh_debug_reg49_reg, bvalid_q) \
+ mh_debug_reg49_reg = (mh_debug_reg49_reg & ~MH_DEBUG_REG49_BVALID_q_MASK) | (bvalid_q << MH_DEBUG_REG49_BVALID_q_SHIFT)
+#define MH_DEBUG_REG49_SET_BREADY_q(mh_debug_reg49_reg, bready_q) \
+ mh_debug_reg49_reg = (mh_debug_reg49_reg & ~MH_DEBUG_REG49_BREADY_q_MASK) | (bready_q << MH_DEBUG_REG49_BREADY_q_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg49_t {
+ unsigned int ctrl_arc_empty : MH_DEBUG_REG49_CTRL_ARC_EMPTY_SIZE;
+ unsigned int ctrl_rarc_empty : MH_DEBUG_REG49_CTRL_RARC_EMPTY_SIZE;
+ unsigned int arq_ctrl_empty : MH_DEBUG_REG49_ARQ_CTRL_EMPTY_SIZE;
+ unsigned int arq_ctrl_write : MH_DEBUG_REG49_ARQ_CTRL_WRITE_SIZE;
+ unsigned int tlbmiss_ctrl_rts : MH_DEBUG_REG49_TLBMISS_CTRL_RTS_SIZE;
+ unsigned int ctrl_tlbmiss_re_q : MH_DEBUG_REG49_CTRL_TLBMISS_RE_q_SIZE;
+ unsigned int inflt_limit_q : MH_DEBUG_REG49_INFLT_LIMIT_q_SIZE;
+ unsigned int inflt_limit_cnt_q : MH_DEBUG_REG49_INFLT_LIMIT_CNT_q_SIZE;
+ unsigned int arc_ctrl_re_q : MH_DEBUG_REG49_ARC_CTRL_RE_q_SIZE;
+ unsigned int rarc_ctrl_re_q : MH_DEBUG_REG49_RARC_CTRL_RE_q_SIZE;
+ unsigned int rvalid_q : MH_DEBUG_REG49_RVALID_q_SIZE;
+ unsigned int rready_q : MH_DEBUG_REG49_RREADY_q_SIZE;
+ unsigned int rlast_q : MH_DEBUG_REG49_RLAST_q_SIZE;
+ unsigned int bvalid_q : MH_DEBUG_REG49_BVALID_q_SIZE;
+ unsigned int bready_q : MH_DEBUG_REG49_BREADY_q_SIZE;
+ unsigned int : 12;
+ } mh_debug_reg49_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg49_t {
+ unsigned int : 12;
+ unsigned int bready_q : MH_DEBUG_REG49_BREADY_q_SIZE;
+ unsigned int bvalid_q : MH_DEBUG_REG49_BVALID_q_SIZE;
+ unsigned int rlast_q : MH_DEBUG_REG49_RLAST_q_SIZE;
+ unsigned int rready_q : MH_DEBUG_REG49_RREADY_q_SIZE;
+ unsigned int rvalid_q : MH_DEBUG_REG49_RVALID_q_SIZE;
+ unsigned int rarc_ctrl_re_q : MH_DEBUG_REG49_RARC_CTRL_RE_q_SIZE;
+ unsigned int arc_ctrl_re_q : MH_DEBUG_REG49_ARC_CTRL_RE_q_SIZE;
+ unsigned int inflt_limit_cnt_q : MH_DEBUG_REG49_INFLT_LIMIT_CNT_q_SIZE;
+ unsigned int inflt_limit_q : MH_DEBUG_REG49_INFLT_LIMIT_q_SIZE;
+ unsigned int ctrl_tlbmiss_re_q : MH_DEBUG_REG49_CTRL_TLBMISS_RE_q_SIZE;
+ unsigned int tlbmiss_ctrl_rts : MH_DEBUG_REG49_TLBMISS_CTRL_RTS_SIZE;
+ unsigned int arq_ctrl_write : MH_DEBUG_REG49_ARQ_CTRL_WRITE_SIZE;
+ unsigned int arq_ctrl_empty : MH_DEBUG_REG49_ARQ_CTRL_EMPTY_SIZE;
+ unsigned int ctrl_rarc_empty : MH_DEBUG_REG49_CTRL_RARC_EMPTY_SIZE;
+ unsigned int ctrl_arc_empty : MH_DEBUG_REG49_CTRL_ARC_EMPTY_SIZE;
+ } mh_debug_reg49_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg49_t f;
+} mh_debug_reg49_u;
+
+
+/*
+ * MH_DEBUG_REG50 struct
+ */
+
+#define MH_DEBUG_REG50_MH_CP_grb_send_SIZE 1
+#define MH_DEBUG_REG50_MH_VGT_grb_send_SIZE 1
+#define MH_DEBUG_REG50_MH_TC_mcsend_SIZE 1
+#define MH_DEBUG_REG50_MH_TLBMISS_SEND_SIZE 1
+#define MH_DEBUG_REG50_TLBMISS_VALID_SIZE 1
+#define MH_DEBUG_REG50_RDC_VALID_SIZE 1
+#define MH_DEBUG_REG50_RDC_RID_SIZE 3
+#define MH_DEBUG_REG50_RDC_RLAST_SIZE 1
+#define MH_DEBUG_REG50_RDC_RRESP_SIZE 2
+#define MH_DEBUG_REG50_TLBMISS_CTRL_RTS_SIZE 1
+#define MH_DEBUG_REG50_CTRL_TLBMISS_RE_q_SIZE 1
+#define MH_DEBUG_REG50_MMU_ID_REQUEST_q_SIZE 1
+#define MH_DEBUG_REG50_OUTSTANDING_MMUID_CNT_q_SIZE 6
+#define MH_DEBUG_REG50_MMU_ID_RESPONSE_SIZE 1
+#define MH_DEBUG_REG50_TLBMISS_RETURN_CNT_q_SIZE 6
+#define MH_DEBUG_REG50_CNT_HOLD_q1_SIZE 1
+#define MH_DEBUG_REG50_MH_CLNT_AXI_ID_REUSE_MMUr_ID_SIZE 3
+
+#define MH_DEBUG_REG50_MH_CP_grb_send_SHIFT 0
+#define MH_DEBUG_REG50_MH_VGT_grb_send_SHIFT 1
+#define MH_DEBUG_REG50_MH_TC_mcsend_SHIFT 2
+#define MH_DEBUG_REG50_MH_TLBMISS_SEND_SHIFT 3
+#define MH_DEBUG_REG50_TLBMISS_VALID_SHIFT 4
+#define MH_DEBUG_REG50_RDC_VALID_SHIFT 5
+#define MH_DEBUG_REG50_RDC_RID_SHIFT 6
+#define MH_DEBUG_REG50_RDC_RLAST_SHIFT 9
+#define MH_DEBUG_REG50_RDC_RRESP_SHIFT 10
+#define MH_DEBUG_REG50_TLBMISS_CTRL_RTS_SHIFT 12
+#define MH_DEBUG_REG50_CTRL_TLBMISS_RE_q_SHIFT 13
+#define MH_DEBUG_REG50_MMU_ID_REQUEST_q_SHIFT 14
+#define MH_DEBUG_REG50_OUTSTANDING_MMUID_CNT_q_SHIFT 15
+#define MH_DEBUG_REG50_MMU_ID_RESPONSE_SHIFT 21
+#define MH_DEBUG_REG50_TLBMISS_RETURN_CNT_q_SHIFT 22
+#define MH_DEBUG_REG50_CNT_HOLD_q1_SHIFT 28
+#define MH_DEBUG_REG50_MH_CLNT_AXI_ID_REUSE_MMUr_ID_SHIFT 29
+
+#define MH_DEBUG_REG50_MH_CP_grb_send_MASK 0x00000001
+#define MH_DEBUG_REG50_MH_VGT_grb_send_MASK 0x00000002
+#define MH_DEBUG_REG50_MH_TC_mcsend_MASK 0x00000004
+#define MH_DEBUG_REG50_MH_TLBMISS_SEND_MASK 0x00000008
+#define MH_DEBUG_REG50_TLBMISS_VALID_MASK 0x00000010
+#define MH_DEBUG_REG50_RDC_VALID_MASK 0x00000020
+#define MH_DEBUG_REG50_RDC_RID_MASK 0x000001c0
+#define MH_DEBUG_REG50_RDC_RLAST_MASK 0x00000200
+#define MH_DEBUG_REG50_RDC_RRESP_MASK 0x00000c00
+#define MH_DEBUG_REG50_TLBMISS_CTRL_RTS_MASK 0x00001000
+#define MH_DEBUG_REG50_CTRL_TLBMISS_RE_q_MASK 0x00002000
+#define MH_DEBUG_REG50_MMU_ID_REQUEST_q_MASK 0x00004000
+#define MH_DEBUG_REG50_OUTSTANDING_MMUID_CNT_q_MASK 0x001f8000
+#define MH_DEBUG_REG50_MMU_ID_RESPONSE_MASK 0x00200000
+#define MH_DEBUG_REG50_TLBMISS_RETURN_CNT_q_MASK 0x0fc00000
+#define MH_DEBUG_REG50_CNT_HOLD_q1_MASK 0x10000000
+#define MH_DEBUG_REG50_MH_CLNT_AXI_ID_REUSE_MMUr_ID_MASK 0xe0000000
+
+#define MH_DEBUG_REG50_MASK \
+ (MH_DEBUG_REG50_MH_CP_grb_send_MASK | \
+ MH_DEBUG_REG50_MH_VGT_grb_send_MASK | \
+ MH_DEBUG_REG50_MH_TC_mcsend_MASK | \
+ MH_DEBUG_REG50_MH_TLBMISS_SEND_MASK | \
+ MH_DEBUG_REG50_TLBMISS_VALID_MASK | \
+ MH_DEBUG_REG50_RDC_VALID_MASK | \
+ MH_DEBUG_REG50_RDC_RID_MASK | \
+ MH_DEBUG_REG50_RDC_RLAST_MASK | \
+ MH_DEBUG_REG50_RDC_RRESP_MASK | \
+ MH_DEBUG_REG50_TLBMISS_CTRL_RTS_MASK | \
+ MH_DEBUG_REG50_CTRL_TLBMISS_RE_q_MASK | \
+ MH_DEBUG_REG50_MMU_ID_REQUEST_q_MASK | \
+ MH_DEBUG_REG50_OUTSTANDING_MMUID_CNT_q_MASK | \
+ MH_DEBUG_REG50_MMU_ID_RESPONSE_MASK | \
+ MH_DEBUG_REG50_TLBMISS_RETURN_CNT_q_MASK | \
+ MH_DEBUG_REG50_CNT_HOLD_q1_MASK | \
+ MH_DEBUG_REG50_MH_CLNT_AXI_ID_REUSE_MMUr_ID_MASK)
+
+#define MH_DEBUG_REG50(mh_cp_grb_send, mh_vgt_grb_send, mh_tc_mcsend, mh_tlbmiss_send, tlbmiss_valid, rdc_valid, rdc_rid, rdc_rlast, rdc_rresp, tlbmiss_ctrl_rts, ctrl_tlbmiss_re_q, mmu_id_request_q, outstanding_mmuid_cnt_q, mmu_id_response, tlbmiss_return_cnt_q, cnt_hold_q1, mh_clnt_axi_id_reuse_mmur_id) \
+ ((mh_cp_grb_send << MH_DEBUG_REG50_MH_CP_grb_send_SHIFT) | \
+ (mh_vgt_grb_send << MH_DEBUG_REG50_MH_VGT_grb_send_SHIFT) | \
+ (mh_tc_mcsend << MH_DEBUG_REG50_MH_TC_mcsend_SHIFT) | \
+ (mh_tlbmiss_send << MH_DEBUG_REG50_MH_TLBMISS_SEND_SHIFT) | \
+ (tlbmiss_valid << MH_DEBUG_REG50_TLBMISS_VALID_SHIFT) | \
+ (rdc_valid << MH_DEBUG_REG50_RDC_VALID_SHIFT) | \
+ (rdc_rid << MH_DEBUG_REG50_RDC_RID_SHIFT) | \
+ (rdc_rlast << MH_DEBUG_REG50_RDC_RLAST_SHIFT) | \
+ (rdc_rresp << MH_DEBUG_REG50_RDC_RRESP_SHIFT) | \
+ (tlbmiss_ctrl_rts << MH_DEBUG_REG50_TLBMISS_CTRL_RTS_SHIFT) | \
+ (ctrl_tlbmiss_re_q << MH_DEBUG_REG50_CTRL_TLBMISS_RE_q_SHIFT) | \
+ (mmu_id_request_q << MH_DEBUG_REG50_MMU_ID_REQUEST_q_SHIFT) | \
+ (outstanding_mmuid_cnt_q << MH_DEBUG_REG50_OUTSTANDING_MMUID_CNT_q_SHIFT) | \
+ (mmu_id_response << MH_DEBUG_REG50_MMU_ID_RESPONSE_SHIFT) | \
+ (tlbmiss_return_cnt_q << MH_DEBUG_REG50_TLBMISS_RETURN_CNT_q_SHIFT) | \
+ (cnt_hold_q1 << MH_DEBUG_REG50_CNT_HOLD_q1_SHIFT) | \
+ (mh_clnt_axi_id_reuse_mmur_id << MH_DEBUG_REG50_MH_CLNT_AXI_ID_REUSE_MMUr_ID_SHIFT))
+
+#define MH_DEBUG_REG50_GET_MH_CP_grb_send(mh_debug_reg50) \
+ ((mh_debug_reg50 & MH_DEBUG_REG50_MH_CP_grb_send_MASK) >> MH_DEBUG_REG50_MH_CP_grb_send_SHIFT)
+#define MH_DEBUG_REG50_GET_MH_VGT_grb_send(mh_debug_reg50) \
+ ((mh_debug_reg50 & MH_DEBUG_REG50_MH_VGT_grb_send_MASK) >> MH_DEBUG_REG50_MH_VGT_grb_send_SHIFT)
+#define MH_DEBUG_REG50_GET_MH_TC_mcsend(mh_debug_reg50) \
+ ((mh_debug_reg50 & MH_DEBUG_REG50_MH_TC_mcsend_MASK) >> MH_DEBUG_REG50_MH_TC_mcsend_SHIFT)
+#define MH_DEBUG_REG50_GET_MH_TLBMISS_SEND(mh_debug_reg50) \
+ ((mh_debug_reg50 & MH_DEBUG_REG50_MH_TLBMISS_SEND_MASK) >> MH_DEBUG_REG50_MH_TLBMISS_SEND_SHIFT)
+#define MH_DEBUG_REG50_GET_TLBMISS_VALID(mh_debug_reg50) \
+ ((mh_debug_reg50 & MH_DEBUG_REG50_TLBMISS_VALID_MASK) >> MH_DEBUG_REG50_TLBMISS_VALID_SHIFT)
+#define MH_DEBUG_REG50_GET_RDC_VALID(mh_debug_reg50) \
+ ((mh_debug_reg50 & MH_DEBUG_REG50_RDC_VALID_MASK) >> MH_DEBUG_REG50_RDC_VALID_SHIFT)
+#define MH_DEBUG_REG50_GET_RDC_RID(mh_debug_reg50) \
+ ((mh_debug_reg50 & MH_DEBUG_REG50_RDC_RID_MASK) >> MH_DEBUG_REG50_RDC_RID_SHIFT)
+#define MH_DEBUG_REG50_GET_RDC_RLAST(mh_debug_reg50) \
+ ((mh_debug_reg50 & MH_DEBUG_REG50_RDC_RLAST_MASK) >> MH_DEBUG_REG50_RDC_RLAST_SHIFT)
+#define MH_DEBUG_REG50_GET_RDC_RRESP(mh_debug_reg50) \
+ ((mh_debug_reg50 & MH_DEBUG_REG50_RDC_RRESP_MASK) >> MH_DEBUG_REG50_RDC_RRESP_SHIFT)
+#define MH_DEBUG_REG50_GET_TLBMISS_CTRL_RTS(mh_debug_reg50) \
+ ((mh_debug_reg50 & MH_DEBUG_REG50_TLBMISS_CTRL_RTS_MASK) >> MH_DEBUG_REG50_TLBMISS_CTRL_RTS_SHIFT)
+#define MH_DEBUG_REG50_GET_CTRL_TLBMISS_RE_q(mh_debug_reg50) \
+ ((mh_debug_reg50 & MH_DEBUG_REG50_CTRL_TLBMISS_RE_q_MASK) >> MH_DEBUG_REG50_CTRL_TLBMISS_RE_q_SHIFT)
+#define MH_DEBUG_REG50_GET_MMU_ID_REQUEST_q(mh_debug_reg50) \
+ ((mh_debug_reg50 & MH_DEBUG_REG50_MMU_ID_REQUEST_q_MASK) >> MH_DEBUG_REG50_MMU_ID_REQUEST_q_SHIFT)
+#define MH_DEBUG_REG50_GET_OUTSTANDING_MMUID_CNT_q(mh_debug_reg50) \
+ ((mh_debug_reg50 & MH_DEBUG_REG50_OUTSTANDING_MMUID_CNT_q_MASK) >> MH_DEBUG_REG50_OUTSTANDING_MMUID_CNT_q_SHIFT)
+#define MH_DEBUG_REG50_GET_MMU_ID_RESPONSE(mh_debug_reg50) \
+ ((mh_debug_reg50 & MH_DEBUG_REG50_MMU_ID_RESPONSE_MASK) >> MH_DEBUG_REG50_MMU_ID_RESPONSE_SHIFT)
+#define MH_DEBUG_REG50_GET_TLBMISS_RETURN_CNT_q(mh_debug_reg50) \
+ ((mh_debug_reg50 & MH_DEBUG_REG50_TLBMISS_RETURN_CNT_q_MASK) >> MH_DEBUG_REG50_TLBMISS_RETURN_CNT_q_SHIFT)
+#define MH_DEBUG_REG50_GET_CNT_HOLD_q1(mh_debug_reg50) \
+ ((mh_debug_reg50 & MH_DEBUG_REG50_CNT_HOLD_q1_MASK) >> MH_DEBUG_REG50_CNT_HOLD_q1_SHIFT)
+#define MH_DEBUG_REG50_GET_MH_CLNT_AXI_ID_REUSE_MMUr_ID(mh_debug_reg50) \
+ ((mh_debug_reg50 & MH_DEBUG_REG50_MH_CLNT_AXI_ID_REUSE_MMUr_ID_MASK) >> MH_DEBUG_REG50_MH_CLNT_AXI_ID_REUSE_MMUr_ID_SHIFT)
+
+#define MH_DEBUG_REG50_SET_MH_CP_grb_send(mh_debug_reg50_reg, mh_cp_grb_send) \
+ mh_debug_reg50_reg = (mh_debug_reg50_reg & ~MH_DEBUG_REG50_MH_CP_grb_send_MASK) | (mh_cp_grb_send << MH_DEBUG_REG50_MH_CP_grb_send_SHIFT)
+#define MH_DEBUG_REG50_SET_MH_VGT_grb_send(mh_debug_reg50_reg, mh_vgt_grb_send) \
+ mh_debug_reg50_reg = (mh_debug_reg50_reg & ~MH_DEBUG_REG50_MH_VGT_grb_send_MASK) | (mh_vgt_grb_send << MH_DEBUG_REG50_MH_VGT_grb_send_SHIFT)
+#define MH_DEBUG_REG50_SET_MH_TC_mcsend(mh_debug_reg50_reg, mh_tc_mcsend) \
+ mh_debug_reg50_reg = (mh_debug_reg50_reg & ~MH_DEBUG_REG50_MH_TC_mcsend_MASK) | (mh_tc_mcsend << MH_DEBUG_REG50_MH_TC_mcsend_SHIFT)
+#define MH_DEBUG_REG50_SET_MH_TLBMISS_SEND(mh_debug_reg50_reg, mh_tlbmiss_send) \
+ mh_debug_reg50_reg = (mh_debug_reg50_reg & ~MH_DEBUG_REG50_MH_TLBMISS_SEND_MASK) | (mh_tlbmiss_send << MH_DEBUG_REG50_MH_TLBMISS_SEND_SHIFT)
+#define MH_DEBUG_REG50_SET_TLBMISS_VALID(mh_debug_reg50_reg, tlbmiss_valid) \
+ mh_debug_reg50_reg = (mh_debug_reg50_reg & ~MH_DEBUG_REG50_TLBMISS_VALID_MASK) | (tlbmiss_valid << MH_DEBUG_REG50_TLBMISS_VALID_SHIFT)
+#define MH_DEBUG_REG50_SET_RDC_VALID(mh_debug_reg50_reg, rdc_valid) \
+ mh_debug_reg50_reg = (mh_debug_reg50_reg & ~MH_DEBUG_REG50_RDC_VALID_MASK) | (rdc_valid << MH_DEBUG_REG50_RDC_VALID_SHIFT)
+#define MH_DEBUG_REG50_SET_RDC_RID(mh_debug_reg50_reg, rdc_rid) \
+ mh_debug_reg50_reg = (mh_debug_reg50_reg & ~MH_DEBUG_REG50_RDC_RID_MASK) | (rdc_rid << MH_DEBUG_REG50_RDC_RID_SHIFT)
+#define MH_DEBUG_REG50_SET_RDC_RLAST(mh_debug_reg50_reg, rdc_rlast) \
+ mh_debug_reg50_reg = (mh_debug_reg50_reg & ~MH_DEBUG_REG50_RDC_RLAST_MASK) | (rdc_rlast << MH_DEBUG_REG50_RDC_RLAST_SHIFT)
+#define MH_DEBUG_REG50_SET_RDC_RRESP(mh_debug_reg50_reg, rdc_rresp) \
+ mh_debug_reg50_reg = (mh_debug_reg50_reg & ~MH_DEBUG_REG50_RDC_RRESP_MASK) | (rdc_rresp << MH_DEBUG_REG50_RDC_RRESP_SHIFT)
+#define MH_DEBUG_REG50_SET_TLBMISS_CTRL_RTS(mh_debug_reg50_reg, tlbmiss_ctrl_rts) \
+ mh_debug_reg50_reg = (mh_debug_reg50_reg & ~MH_DEBUG_REG50_TLBMISS_CTRL_RTS_MASK) | (tlbmiss_ctrl_rts << MH_DEBUG_REG50_TLBMISS_CTRL_RTS_SHIFT)
+#define MH_DEBUG_REG50_SET_CTRL_TLBMISS_RE_q(mh_debug_reg50_reg, ctrl_tlbmiss_re_q) \
+ mh_debug_reg50_reg = (mh_debug_reg50_reg & ~MH_DEBUG_REG50_CTRL_TLBMISS_RE_q_MASK) | (ctrl_tlbmiss_re_q << MH_DEBUG_REG50_CTRL_TLBMISS_RE_q_SHIFT)
+#define MH_DEBUG_REG50_SET_MMU_ID_REQUEST_q(mh_debug_reg50_reg, mmu_id_request_q) \
+ mh_debug_reg50_reg = (mh_debug_reg50_reg & ~MH_DEBUG_REG50_MMU_ID_REQUEST_q_MASK) | (mmu_id_request_q << MH_DEBUG_REG50_MMU_ID_REQUEST_q_SHIFT)
+#define MH_DEBUG_REG50_SET_OUTSTANDING_MMUID_CNT_q(mh_debug_reg50_reg, outstanding_mmuid_cnt_q) \
+ mh_debug_reg50_reg = (mh_debug_reg50_reg & ~MH_DEBUG_REG50_OUTSTANDING_MMUID_CNT_q_MASK) | (outstanding_mmuid_cnt_q << MH_DEBUG_REG50_OUTSTANDING_MMUID_CNT_q_SHIFT)
+#define MH_DEBUG_REG50_SET_MMU_ID_RESPONSE(mh_debug_reg50_reg, mmu_id_response) \
+ mh_debug_reg50_reg = (mh_debug_reg50_reg & ~MH_DEBUG_REG50_MMU_ID_RESPONSE_MASK) | (mmu_id_response << MH_DEBUG_REG50_MMU_ID_RESPONSE_SHIFT)
+#define MH_DEBUG_REG50_SET_TLBMISS_RETURN_CNT_q(mh_debug_reg50_reg, tlbmiss_return_cnt_q) \
+ mh_debug_reg50_reg = (mh_debug_reg50_reg & ~MH_DEBUG_REG50_TLBMISS_RETURN_CNT_q_MASK) | (tlbmiss_return_cnt_q << MH_DEBUG_REG50_TLBMISS_RETURN_CNT_q_SHIFT)
+#define MH_DEBUG_REG50_SET_CNT_HOLD_q1(mh_debug_reg50_reg, cnt_hold_q1) \
+ mh_debug_reg50_reg = (mh_debug_reg50_reg & ~MH_DEBUG_REG50_CNT_HOLD_q1_MASK) | (cnt_hold_q1 << MH_DEBUG_REG50_CNT_HOLD_q1_SHIFT)
+#define MH_DEBUG_REG50_SET_MH_CLNT_AXI_ID_REUSE_MMUr_ID(mh_debug_reg50_reg, mh_clnt_axi_id_reuse_mmur_id) \
+ mh_debug_reg50_reg = (mh_debug_reg50_reg & ~MH_DEBUG_REG50_MH_CLNT_AXI_ID_REUSE_MMUr_ID_MASK) | (mh_clnt_axi_id_reuse_mmur_id << MH_DEBUG_REG50_MH_CLNT_AXI_ID_REUSE_MMUr_ID_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg50_t {
+ unsigned int mh_cp_grb_send : MH_DEBUG_REG50_MH_CP_grb_send_SIZE;
+ unsigned int mh_vgt_grb_send : MH_DEBUG_REG50_MH_VGT_grb_send_SIZE;
+ unsigned int mh_tc_mcsend : MH_DEBUG_REG50_MH_TC_mcsend_SIZE;
+ unsigned int mh_tlbmiss_send : MH_DEBUG_REG50_MH_TLBMISS_SEND_SIZE;
+ unsigned int tlbmiss_valid : MH_DEBUG_REG50_TLBMISS_VALID_SIZE;
+ unsigned int rdc_valid : MH_DEBUG_REG50_RDC_VALID_SIZE;
+ unsigned int rdc_rid : MH_DEBUG_REG50_RDC_RID_SIZE;
+ unsigned int rdc_rlast : MH_DEBUG_REG50_RDC_RLAST_SIZE;
+ unsigned int rdc_rresp : MH_DEBUG_REG50_RDC_RRESP_SIZE;
+ unsigned int tlbmiss_ctrl_rts : MH_DEBUG_REG50_TLBMISS_CTRL_RTS_SIZE;
+ unsigned int ctrl_tlbmiss_re_q : MH_DEBUG_REG50_CTRL_TLBMISS_RE_q_SIZE;
+ unsigned int mmu_id_request_q : MH_DEBUG_REG50_MMU_ID_REQUEST_q_SIZE;
+ unsigned int outstanding_mmuid_cnt_q : MH_DEBUG_REG50_OUTSTANDING_MMUID_CNT_q_SIZE;
+ unsigned int mmu_id_response : MH_DEBUG_REG50_MMU_ID_RESPONSE_SIZE;
+ unsigned int tlbmiss_return_cnt_q : MH_DEBUG_REG50_TLBMISS_RETURN_CNT_q_SIZE;
+ unsigned int cnt_hold_q1 : MH_DEBUG_REG50_CNT_HOLD_q1_SIZE;
+ unsigned int mh_clnt_axi_id_reuse_mmur_id : MH_DEBUG_REG50_MH_CLNT_AXI_ID_REUSE_MMUr_ID_SIZE;
+ } mh_debug_reg50_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg50_t {
+ unsigned int mh_clnt_axi_id_reuse_mmur_id : MH_DEBUG_REG50_MH_CLNT_AXI_ID_REUSE_MMUr_ID_SIZE;
+ unsigned int cnt_hold_q1 : MH_DEBUG_REG50_CNT_HOLD_q1_SIZE;
+ unsigned int tlbmiss_return_cnt_q : MH_DEBUG_REG50_TLBMISS_RETURN_CNT_q_SIZE;
+ unsigned int mmu_id_response : MH_DEBUG_REG50_MMU_ID_RESPONSE_SIZE;
+ unsigned int outstanding_mmuid_cnt_q : MH_DEBUG_REG50_OUTSTANDING_MMUID_CNT_q_SIZE;
+ unsigned int mmu_id_request_q : MH_DEBUG_REG50_MMU_ID_REQUEST_q_SIZE;
+ unsigned int ctrl_tlbmiss_re_q : MH_DEBUG_REG50_CTRL_TLBMISS_RE_q_SIZE;
+ unsigned int tlbmiss_ctrl_rts : MH_DEBUG_REG50_TLBMISS_CTRL_RTS_SIZE;
+ unsigned int rdc_rresp : MH_DEBUG_REG50_RDC_RRESP_SIZE;
+ unsigned int rdc_rlast : MH_DEBUG_REG50_RDC_RLAST_SIZE;
+ unsigned int rdc_rid : MH_DEBUG_REG50_RDC_RID_SIZE;
+ unsigned int rdc_valid : MH_DEBUG_REG50_RDC_VALID_SIZE;
+ unsigned int tlbmiss_valid : MH_DEBUG_REG50_TLBMISS_VALID_SIZE;
+ unsigned int mh_tlbmiss_send : MH_DEBUG_REG50_MH_TLBMISS_SEND_SIZE;
+ unsigned int mh_tc_mcsend : MH_DEBUG_REG50_MH_TC_mcsend_SIZE;
+ unsigned int mh_vgt_grb_send : MH_DEBUG_REG50_MH_VGT_grb_send_SIZE;
+ unsigned int mh_cp_grb_send : MH_DEBUG_REG50_MH_CP_grb_send_SIZE;
+ } mh_debug_reg50_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg50_t f;
+} mh_debug_reg50_u;
+
+
+/*
+ * MH_DEBUG_REG51 struct
+ */
+
+#define MH_DEBUG_REG51_RF_MMU_PAGE_FAULT_SIZE 32
+
+#define MH_DEBUG_REG51_RF_MMU_PAGE_FAULT_SHIFT 0
+
+#define MH_DEBUG_REG51_RF_MMU_PAGE_FAULT_MASK 0xffffffff
+
+#define MH_DEBUG_REG51_MASK \
+ (MH_DEBUG_REG51_RF_MMU_PAGE_FAULT_MASK)
+
+#define MH_DEBUG_REG51(rf_mmu_page_fault) \
+ ((rf_mmu_page_fault << MH_DEBUG_REG51_RF_MMU_PAGE_FAULT_SHIFT))
+
+#define MH_DEBUG_REG51_GET_RF_MMU_PAGE_FAULT(mh_debug_reg51) \
+ ((mh_debug_reg51 & MH_DEBUG_REG51_RF_MMU_PAGE_FAULT_MASK) >> MH_DEBUG_REG51_RF_MMU_PAGE_FAULT_SHIFT)
+
+#define MH_DEBUG_REG51_SET_RF_MMU_PAGE_FAULT(mh_debug_reg51_reg, rf_mmu_page_fault) \
+ mh_debug_reg51_reg = (mh_debug_reg51_reg & ~MH_DEBUG_REG51_RF_MMU_PAGE_FAULT_MASK) | (rf_mmu_page_fault << MH_DEBUG_REG51_RF_MMU_PAGE_FAULT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg51_t {
+ unsigned int rf_mmu_page_fault : MH_DEBUG_REG51_RF_MMU_PAGE_FAULT_SIZE;
+ } mh_debug_reg51_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg51_t {
+ unsigned int rf_mmu_page_fault : MH_DEBUG_REG51_RF_MMU_PAGE_FAULT_SIZE;
+ } mh_debug_reg51_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg51_t f;
+} mh_debug_reg51_u;
+
+
+/*
+ * MH_DEBUG_REG52 struct
+ */
+
+#define MH_DEBUG_REG52_RF_MMU_CONFIG_q_1_to_0_SIZE 2
+#define MH_DEBUG_REG52_ARB_WE_SIZE 1
+#define MH_DEBUG_REG52_MMU_RTR_SIZE 1
+#define MH_DEBUG_REG52_RF_MMU_CONFIG_q_25_to_4_SIZE 22
+#define MH_DEBUG_REG52_ARB_ID_q_SIZE 3
+#define MH_DEBUG_REG52_ARB_WRITE_q_SIZE 1
+#define MH_DEBUG_REG52_client_behavior_q_SIZE 2
+
+#define MH_DEBUG_REG52_RF_MMU_CONFIG_q_1_to_0_SHIFT 0
+#define MH_DEBUG_REG52_ARB_WE_SHIFT 2
+#define MH_DEBUG_REG52_MMU_RTR_SHIFT 3
+#define MH_DEBUG_REG52_RF_MMU_CONFIG_q_25_to_4_SHIFT 4
+#define MH_DEBUG_REG52_ARB_ID_q_SHIFT 26
+#define MH_DEBUG_REG52_ARB_WRITE_q_SHIFT 29
+#define MH_DEBUG_REG52_client_behavior_q_SHIFT 30
+
+#define MH_DEBUG_REG52_RF_MMU_CONFIG_q_1_to_0_MASK 0x00000003
+#define MH_DEBUG_REG52_ARB_WE_MASK 0x00000004
+#define MH_DEBUG_REG52_MMU_RTR_MASK 0x00000008
+#define MH_DEBUG_REG52_RF_MMU_CONFIG_q_25_to_4_MASK 0x03fffff0
+#define MH_DEBUG_REG52_ARB_ID_q_MASK 0x1c000000
+#define MH_DEBUG_REG52_ARB_WRITE_q_MASK 0x20000000
+#define MH_DEBUG_REG52_client_behavior_q_MASK 0xc0000000
+
+#define MH_DEBUG_REG52_MASK \
+ (MH_DEBUG_REG52_RF_MMU_CONFIG_q_1_to_0_MASK | \
+ MH_DEBUG_REG52_ARB_WE_MASK | \
+ MH_DEBUG_REG52_MMU_RTR_MASK | \
+ MH_DEBUG_REG52_RF_MMU_CONFIG_q_25_to_4_MASK | \
+ MH_DEBUG_REG52_ARB_ID_q_MASK | \
+ MH_DEBUG_REG52_ARB_WRITE_q_MASK | \
+ MH_DEBUG_REG52_client_behavior_q_MASK)
+
+#define MH_DEBUG_REG52(rf_mmu_config_q_1_to_0, arb_we, mmu_rtr, rf_mmu_config_q_25_to_4, arb_id_q, arb_write_q, client_behavior_q) \
+ ((rf_mmu_config_q_1_to_0 << MH_DEBUG_REG52_RF_MMU_CONFIG_q_1_to_0_SHIFT) | \
+ (arb_we << MH_DEBUG_REG52_ARB_WE_SHIFT) | \
+ (mmu_rtr << MH_DEBUG_REG52_MMU_RTR_SHIFT) | \
+ (rf_mmu_config_q_25_to_4 << MH_DEBUG_REG52_RF_MMU_CONFIG_q_25_to_4_SHIFT) | \
+ (arb_id_q << MH_DEBUG_REG52_ARB_ID_q_SHIFT) | \
+ (arb_write_q << MH_DEBUG_REG52_ARB_WRITE_q_SHIFT) | \
+ (client_behavior_q << MH_DEBUG_REG52_client_behavior_q_SHIFT))
+
+#define MH_DEBUG_REG52_GET_RF_MMU_CONFIG_q_1_to_0(mh_debug_reg52) \
+ ((mh_debug_reg52 & MH_DEBUG_REG52_RF_MMU_CONFIG_q_1_to_0_MASK) >> MH_DEBUG_REG52_RF_MMU_CONFIG_q_1_to_0_SHIFT)
+#define MH_DEBUG_REG52_GET_ARB_WE(mh_debug_reg52) \
+ ((mh_debug_reg52 & MH_DEBUG_REG52_ARB_WE_MASK) >> MH_DEBUG_REG52_ARB_WE_SHIFT)
+#define MH_DEBUG_REG52_GET_MMU_RTR(mh_debug_reg52) \
+ ((mh_debug_reg52 & MH_DEBUG_REG52_MMU_RTR_MASK) >> MH_DEBUG_REG52_MMU_RTR_SHIFT)
+#define MH_DEBUG_REG52_GET_RF_MMU_CONFIG_q_25_to_4(mh_debug_reg52) \
+ ((mh_debug_reg52 & MH_DEBUG_REG52_RF_MMU_CONFIG_q_25_to_4_MASK) >> MH_DEBUG_REG52_RF_MMU_CONFIG_q_25_to_4_SHIFT)
+#define MH_DEBUG_REG52_GET_ARB_ID_q(mh_debug_reg52) \
+ ((mh_debug_reg52 & MH_DEBUG_REG52_ARB_ID_q_MASK) >> MH_DEBUG_REG52_ARB_ID_q_SHIFT)
+#define MH_DEBUG_REG52_GET_ARB_WRITE_q(mh_debug_reg52) \
+ ((mh_debug_reg52 & MH_DEBUG_REG52_ARB_WRITE_q_MASK) >> MH_DEBUG_REG52_ARB_WRITE_q_SHIFT)
+#define MH_DEBUG_REG52_GET_client_behavior_q(mh_debug_reg52) \
+ ((mh_debug_reg52 & MH_DEBUG_REG52_client_behavior_q_MASK) >> MH_DEBUG_REG52_client_behavior_q_SHIFT)
+
+#define MH_DEBUG_REG52_SET_RF_MMU_CONFIG_q_1_to_0(mh_debug_reg52_reg, rf_mmu_config_q_1_to_0) \
+ mh_debug_reg52_reg = (mh_debug_reg52_reg & ~MH_DEBUG_REG52_RF_MMU_CONFIG_q_1_to_0_MASK) | (rf_mmu_config_q_1_to_0 << MH_DEBUG_REG52_RF_MMU_CONFIG_q_1_to_0_SHIFT)
+#define MH_DEBUG_REG52_SET_ARB_WE(mh_debug_reg52_reg, arb_we) \
+ mh_debug_reg52_reg = (mh_debug_reg52_reg & ~MH_DEBUG_REG52_ARB_WE_MASK) | (arb_we << MH_DEBUG_REG52_ARB_WE_SHIFT)
+#define MH_DEBUG_REG52_SET_MMU_RTR(mh_debug_reg52_reg, mmu_rtr) \
+ mh_debug_reg52_reg = (mh_debug_reg52_reg & ~MH_DEBUG_REG52_MMU_RTR_MASK) | (mmu_rtr << MH_DEBUG_REG52_MMU_RTR_SHIFT)
+#define MH_DEBUG_REG52_SET_RF_MMU_CONFIG_q_25_to_4(mh_debug_reg52_reg, rf_mmu_config_q_25_to_4) \
+ mh_debug_reg52_reg = (mh_debug_reg52_reg & ~MH_DEBUG_REG52_RF_MMU_CONFIG_q_25_to_4_MASK) | (rf_mmu_config_q_25_to_4 << MH_DEBUG_REG52_RF_MMU_CONFIG_q_25_to_4_SHIFT)
+#define MH_DEBUG_REG52_SET_ARB_ID_q(mh_debug_reg52_reg, arb_id_q) \
+ mh_debug_reg52_reg = (mh_debug_reg52_reg & ~MH_DEBUG_REG52_ARB_ID_q_MASK) | (arb_id_q << MH_DEBUG_REG52_ARB_ID_q_SHIFT)
+#define MH_DEBUG_REG52_SET_ARB_WRITE_q(mh_debug_reg52_reg, arb_write_q) \
+ mh_debug_reg52_reg = (mh_debug_reg52_reg & ~MH_DEBUG_REG52_ARB_WRITE_q_MASK) | (arb_write_q << MH_DEBUG_REG52_ARB_WRITE_q_SHIFT)
+#define MH_DEBUG_REG52_SET_client_behavior_q(mh_debug_reg52_reg, client_behavior_q) \
+ mh_debug_reg52_reg = (mh_debug_reg52_reg & ~MH_DEBUG_REG52_client_behavior_q_MASK) | (client_behavior_q << MH_DEBUG_REG52_client_behavior_q_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg52_t {
+ unsigned int rf_mmu_config_q_1_to_0 : MH_DEBUG_REG52_RF_MMU_CONFIG_q_1_to_0_SIZE;
+ unsigned int arb_we : MH_DEBUG_REG52_ARB_WE_SIZE;
+ unsigned int mmu_rtr : MH_DEBUG_REG52_MMU_RTR_SIZE;
+ unsigned int rf_mmu_config_q_25_to_4 : MH_DEBUG_REG52_RF_MMU_CONFIG_q_25_to_4_SIZE;
+ unsigned int arb_id_q : MH_DEBUG_REG52_ARB_ID_q_SIZE;
+ unsigned int arb_write_q : MH_DEBUG_REG52_ARB_WRITE_q_SIZE;
+ unsigned int client_behavior_q : MH_DEBUG_REG52_client_behavior_q_SIZE;
+ } mh_debug_reg52_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg52_t {
+ unsigned int client_behavior_q : MH_DEBUG_REG52_client_behavior_q_SIZE;
+ unsigned int arb_write_q : MH_DEBUG_REG52_ARB_WRITE_q_SIZE;
+ unsigned int arb_id_q : MH_DEBUG_REG52_ARB_ID_q_SIZE;
+ unsigned int rf_mmu_config_q_25_to_4 : MH_DEBUG_REG52_RF_MMU_CONFIG_q_25_to_4_SIZE;
+ unsigned int mmu_rtr : MH_DEBUG_REG52_MMU_RTR_SIZE;
+ unsigned int arb_we : MH_DEBUG_REG52_ARB_WE_SIZE;
+ unsigned int rf_mmu_config_q_1_to_0 : MH_DEBUG_REG52_RF_MMU_CONFIG_q_1_to_0_SIZE;
+ } mh_debug_reg52_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg52_t f;
+} mh_debug_reg52_u;
+
+
+/*
+ * MH_DEBUG_REG53 struct
+ */
+
+#define MH_DEBUG_REG53_stage1_valid_SIZE 1
+#define MH_DEBUG_REG53_IGNORE_TAG_MISS_q_SIZE 1
+#define MH_DEBUG_REG53_pa_in_mpu_range_SIZE 1
+#define MH_DEBUG_REG53_tag_match_q_SIZE 1
+#define MH_DEBUG_REG53_tag_miss_q_SIZE 1
+#define MH_DEBUG_REG53_va_in_range_q_SIZE 1
+#define MH_DEBUG_REG53_MMU_MISS_SIZE 1
+#define MH_DEBUG_REG53_MMU_READ_MISS_SIZE 1
+#define MH_DEBUG_REG53_MMU_WRITE_MISS_SIZE 1
+#define MH_DEBUG_REG53_MMU_HIT_SIZE 1
+#define MH_DEBUG_REG53_MMU_READ_HIT_SIZE 1
+#define MH_DEBUG_REG53_MMU_WRITE_HIT_SIZE 1
+#define MH_DEBUG_REG53_MMU_SPLIT_MODE_TC_MISS_SIZE 1
+#define MH_DEBUG_REG53_MMU_SPLIT_MODE_TC_HIT_SIZE 1
+#define MH_DEBUG_REG53_MMU_SPLIT_MODE_nonTC_MISS_SIZE 1
+#define MH_DEBUG_REG53_MMU_SPLIT_MODE_nonTC_HIT_SIZE 1
+#define MH_DEBUG_REG53_REQ_VA_OFFSET_q_SIZE 16
+
+#define MH_DEBUG_REG53_stage1_valid_SHIFT 0
+#define MH_DEBUG_REG53_IGNORE_TAG_MISS_q_SHIFT 1
+#define MH_DEBUG_REG53_pa_in_mpu_range_SHIFT 2
+#define MH_DEBUG_REG53_tag_match_q_SHIFT 3
+#define MH_DEBUG_REG53_tag_miss_q_SHIFT 4
+#define MH_DEBUG_REG53_va_in_range_q_SHIFT 5
+#define MH_DEBUG_REG53_MMU_MISS_SHIFT 6
+#define MH_DEBUG_REG53_MMU_READ_MISS_SHIFT 7
+#define MH_DEBUG_REG53_MMU_WRITE_MISS_SHIFT 8
+#define MH_DEBUG_REG53_MMU_HIT_SHIFT 9
+#define MH_DEBUG_REG53_MMU_READ_HIT_SHIFT 10
+#define MH_DEBUG_REG53_MMU_WRITE_HIT_SHIFT 11
+#define MH_DEBUG_REG53_MMU_SPLIT_MODE_TC_MISS_SHIFT 12
+#define MH_DEBUG_REG53_MMU_SPLIT_MODE_TC_HIT_SHIFT 13
+#define MH_DEBUG_REG53_MMU_SPLIT_MODE_nonTC_MISS_SHIFT 14
+#define MH_DEBUG_REG53_MMU_SPLIT_MODE_nonTC_HIT_SHIFT 15
+#define MH_DEBUG_REG53_REQ_VA_OFFSET_q_SHIFT 16
+
+#define MH_DEBUG_REG53_stage1_valid_MASK 0x00000001
+#define MH_DEBUG_REG53_IGNORE_TAG_MISS_q_MASK 0x00000002
+#define MH_DEBUG_REG53_pa_in_mpu_range_MASK 0x00000004
+#define MH_DEBUG_REG53_tag_match_q_MASK 0x00000008
+#define MH_DEBUG_REG53_tag_miss_q_MASK 0x00000010
+#define MH_DEBUG_REG53_va_in_range_q_MASK 0x00000020
+#define MH_DEBUG_REG53_MMU_MISS_MASK 0x00000040
+#define MH_DEBUG_REG53_MMU_READ_MISS_MASK 0x00000080
+#define MH_DEBUG_REG53_MMU_WRITE_MISS_MASK 0x00000100
+#define MH_DEBUG_REG53_MMU_HIT_MASK 0x00000200
+#define MH_DEBUG_REG53_MMU_READ_HIT_MASK 0x00000400
+#define MH_DEBUG_REG53_MMU_WRITE_HIT_MASK 0x00000800
+#define MH_DEBUG_REG53_MMU_SPLIT_MODE_TC_MISS_MASK 0x00001000
+#define MH_DEBUG_REG53_MMU_SPLIT_MODE_TC_HIT_MASK 0x00002000
+#define MH_DEBUG_REG53_MMU_SPLIT_MODE_nonTC_MISS_MASK 0x00004000
+#define MH_DEBUG_REG53_MMU_SPLIT_MODE_nonTC_HIT_MASK 0x00008000
+#define MH_DEBUG_REG53_REQ_VA_OFFSET_q_MASK 0xffff0000
+
+#define MH_DEBUG_REG53_MASK \
+ (MH_DEBUG_REG53_stage1_valid_MASK | \
+ MH_DEBUG_REG53_IGNORE_TAG_MISS_q_MASK | \
+ MH_DEBUG_REG53_pa_in_mpu_range_MASK | \
+ MH_DEBUG_REG53_tag_match_q_MASK | \
+ MH_DEBUG_REG53_tag_miss_q_MASK | \
+ MH_DEBUG_REG53_va_in_range_q_MASK | \
+ MH_DEBUG_REG53_MMU_MISS_MASK | \
+ MH_DEBUG_REG53_MMU_READ_MISS_MASK | \
+ MH_DEBUG_REG53_MMU_WRITE_MISS_MASK | \
+ MH_DEBUG_REG53_MMU_HIT_MASK | \
+ MH_DEBUG_REG53_MMU_READ_HIT_MASK | \
+ MH_DEBUG_REG53_MMU_WRITE_HIT_MASK | \
+ MH_DEBUG_REG53_MMU_SPLIT_MODE_TC_MISS_MASK | \
+ MH_DEBUG_REG53_MMU_SPLIT_MODE_TC_HIT_MASK | \
+ MH_DEBUG_REG53_MMU_SPLIT_MODE_nonTC_MISS_MASK | \
+ MH_DEBUG_REG53_MMU_SPLIT_MODE_nonTC_HIT_MASK | \
+ MH_DEBUG_REG53_REQ_VA_OFFSET_q_MASK)
+
+#define MH_DEBUG_REG53(stage1_valid, ignore_tag_miss_q, pa_in_mpu_range, tag_match_q, tag_miss_q, va_in_range_q, mmu_miss, mmu_read_miss, mmu_write_miss, mmu_hit, mmu_read_hit, mmu_write_hit, mmu_split_mode_tc_miss, mmu_split_mode_tc_hit, mmu_split_mode_nontc_miss, mmu_split_mode_nontc_hit, req_va_offset_q) \
+ ((stage1_valid << MH_DEBUG_REG53_stage1_valid_SHIFT) | \
+ (ignore_tag_miss_q << MH_DEBUG_REG53_IGNORE_TAG_MISS_q_SHIFT) | \
+ (pa_in_mpu_range << MH_DEBUG_REG53_pa_in_mpu_range_SHIFT) | \
+ (tag_match_q << MH_DEBUG_REG53_tag_match_q_SHIFT) | \
+ (tag_miss_q << MH_DEBUG_REG53_tag_miss_q_SHIFT) | \
+ (va_in_range_q << MH_DEBUG_REG53_va_in_range_q_SHIFT) | \
+ (mmu_miss << MH_DEBUG_REG53_MMU_MISS_SHIFT) | \
+ (mmu_read_miss << MH_DEBUG_REG53_MMU_READ_MISS_SHIFT) | \
+ (mmu_write_miss << MH_DEBUG_REG53_MMU_WRITE_MISS_SHIFT) | \
+ (mmu_hit << MH_DEBUG_REG53_MMU_HIT_SHIFT) | \
+ (mmu_read_hit << MH_DEBUG_REG53_MMU_READ_HIT_SHIFT) | \
+ (mmu_write_hit << MH_DEBUG_REG53_MMU_WRITE_HIT_SHIFT) | \
+ (mmu_split_mode_tc_miss << MH_DEBUG_REG53_MMU_SPLIT_MODE_TC_MISS_SHIFT) | \
+ (mmu_split_mode_tc_hit << MH_DEBUG_REG53_MMU_SPLIT_MODE_TC_HIT_SHIFT) | \
+ (mmu_split_mode_nontc_miss << MH_DEBUG_REG53_MMU_SPLIT_MODE_nonTC_MISS_SHIFT) | \
+ (mmu_split_mode_nontc_hit << MH_DEBUG_REG53_MMU_SPLIT_MODE_nonTC_HIT_SHIFT) | \
+ (req_va_offset_q << MH_DEBUG_REG53_REQ_VA_OFFSET_q_SHIFT))
+
+#define MH_DEBUG_REG53_GET_stage1_valid(mh_debug_reg53) \
+ ((mh_debug_reg53 & MH_DEBUG_REG53_stage1_valid_MASK) >> MH_DEBUG_REG53_stage1_valid_SHIFT)
+#define MH_DEBUG_REG53_GET_IGNORE_TAG_MISS_q(mh_debug_reg53) \
+ ((mh_debug_reg53 & MH_DEBUG_REG53_IGNORE_TAG_MISS_q_MASK) >> MH_DEBUG_REG53_IGNORE_TAG_MISS_q_SHIFT)
+#define MH_DEBUG_REG53_GET_pa_in_mpu_range(mh_debug_reg53) \
+ ((mh_debug_reg53 & MH_DEBUG_REG53_pa_in_mpu_range_MASK) >> MH_DEBUG_REG53_pa_in_mpu_range_SHIFT)
+#define MH_DEBUG_REG53_GET_tag_match_q(mh_debug_reg53) \
+ ((mh_debug_reg53 & MH_DEBUG_REG53_tag_match_q_MASK) >> MH_DEBUG_REG53_tag_match_q_SHIFT)
+#define MH_DEBUG_REG53_GET_tag_miss_q(mh_debug_reg53) \
+ ((mh_debug_reg53 & MH_DEBUG_REG53_tag_miss_q_MASK) >> MH_DEBUG_REG53_tag_miss_q_SHIFT)
+#define MH_DEBUG_REG53_GET_va_in_range_q(mh_debug_reg53) \
+ ((mh_debug_reg53 & MH_DEBUG_REG53_va_in_range_q_MASK) >> MH_DEBUG_REG53_va_in_range_q_SHIFT)
+#define MH_DEBUG_REG53_GET_MMU_MISS(mh_debug_reg53) \
+ ((mh_debug_reg53 & MH_DEBUG_REG53_MMU_MISS_MASK) >> MH_DEBUG_REG53_MMU_MISS_SHIFT)
+#define MH_DEBUG_REG53_GET_MMU_READ_MISS(mh_debug_reg53) \
+ ((mh_debug_reg53 & MH_DEBUG_REG53_MMU_READ_MISS_MASK) >> MH_DEBUG_REG53_MMU_READ_MISS_SHIFT)
+#define MH_DEBUG_REG53_GET_MMU_WRITE_MISS(mh_debug_reg53) \
+ ((mh_debug_reg53 & MH_DEBUG_REG53_MMU_WRITE_MISS_MASK) >> MH_DEBUG_REG53_MMU_WRITE_MISS_SHIFT)
+#define MH_DEBUG_REG53_GET_MMU_HIT(mh_debug_reg53) \
+ ((mh_debug_reg53 & MH_DEBUG_REG53_MMU_HIT_MASK) >> MH_DEBUG_REG53_MMU_HIT_SHIFT)
+#define MH_DEBUG_REG53_GET_MMU_READ_HIT(mh_debug_reg53) \
+ ((mh_debug_reg53 & MH_DEBUG_REG53_MMU_READ_HIT_MASK) >> MH_DEBUG_REG53_MMU_READ_HIT_SHIFT)
+#define MH_DEBUG_REG53_GET_MMU_WRITE_HIT(mh_debug_reg53) \
+ ((mh_debug_reg53 & MH_DEBUG_REG53_MMU_WRITE_HIT_MASK) >> MH_DEBUG_REG53_MMU_WRITE_HIT_SHIFT)
+#define MH_DEBUG_REG53_GET_MMU_SPLIT_MODE_TC_MISS(mh_debug_reg53) \
+ ((mh_debug_reg53 & MH_DEBUG_REG53_MMU_SPLIT_MODE_TC_MISS_MASK) >> MH_DEBUG_REG53_MMU_SPLIT_MODE_TC_MISS_SHIFT)
+#define MH_DEBUG_REG53_GET_MMU_SPLIT_MODE_TC_HIT(mh_debug_reg53) \
+ ((mh_debug_reg53 & MH_DEBUG_REG53_MMU_SPLIT_MODE_TC_HIT_MASK) >> MH_DEBUG_REG53_MMU_SPLIT_MODE_TC_HIT_SHIFT)
+#define MH_DEBUG_REG53_GET_MMU_SPLIT_MODE_nonTC_MISS(mh_debug_reg53) \
+ ((mh_debug_reg53 & MH_DEBUG_REG53_MMU_SPLIT_MODE_nonTC_MISS_MASK) >> MH_DEBUG_REG53_MMU_SPLIT_MODE_nonTC_MISS_SHIFT)
+#define MH_DEBUG_REG53_GET_MMU_SPLIT_MODE_nonTC_HIT(mh_debug_reg53) \
+ ((mh_debug_reg53 & MH_DEBUG_REG53_MMU_SPLIT_MODE_nonTC_HIT_MASK) >> MH_DEBUG_REG53_MMU_SPLIT_MODE_nonTC_HIT_SHIFT)
+#define MH_DEBUG_REG53_GET_REQ_VA_OFFSET_q(mh_debug_reg53) \
+ ((mh_debug_reg53 & MH_DEBUG_REG53_REQ_VA_OFFSET_q_MASK) >> MH_DEBUG_REG53_REQ_VA_OFFSET_q_SHIFT)
+
+#define MH_DEBUG_REG53_SET_stage1_valid(mh_debug_reg53_reg, stage1_valid) \
+ mh_debug_reg53_reg = (mh_debug_reg53_reg & ~MH_DEBUG_REG53_stage1_valid_MASK) | (stage1_valid << MH_DEBUG_REG53_stage1_valid_SHIFT)
+#define MH_DEBUG_REG53_SET_IGNORE_TAG_MISS_q(mh_debug_reg53_reg, ignore_tag_miss_q) \
+ mh_debug_reg53_reg = (mh_debug_reg53_reg & ~MH_DEBUG_REG53_IGNORE_TAG_MISS_q_MASK) | (ignore_tag_miss_q << MH_DEBUG_REG53_IGNORE_TAG_MISS_q_SHIFT)
+#define MH_DEBUG_REG53_SET_pa_in_mpu_range(mh_debug_reg53_reg, pa_in_mpu_range) \
+ mh_debug_reg53_reg = (mh_debug_reg53_reg & ~MH_DEBUG_REG53_pa_in_mpu_range_MASK) | (pa_in_mpu_range << MH_DEBUG_REG53_pa_in_mpu_range_SHIFT)
+#define MH_DEBUG_REG53_SET_tag_match_q(mh_debug_reg53_reg, tag_match_q) \
+ mh_debug_reg53_reg = (mh_debug_reg53_reg & ~MH_DEBUG_REG53_tag_match_q_MASK) | (tag_match_q << MH_DEBUG_REG53_tag_match_q_SHIFT)
+#define MH_DEBUG_REG53_SET_tag_miss_q(mh_debug_reg53_reg, tag_miss_q) \
+ mh_debug_reg53_reg = (mh_debug_reg53_reg & ~MH_DEBUG_REG53_tag_miss_q_MASK) | (tag_miss_q << MH_DEBUG_REG53_tag_miss_q_SHIFT)
+#define MH_DEBUG_REG53_SET_va_in_range_q(mh_debug_reg53_reg, va_in_range_q) \
+ mh_debug_reg53_reg = (mh_debug_reg53_reg & ~MH_DEBUG_REG53_va_in_range_q_MASK) | (va_in_range_q << MH_DEBUG_REG53_va_in_range_q_SHIFT)
+#define MH_DEBUG_REG53_SET_MMU_MISS(mh_debug_reg53_reg, mmu_miss) \
+ mh_debug_reg53_reg = (mh_debug_reg53_reg & ~MH_DEBUG_REG53_MMU_MISS_MASK) | (mmu_miss << MH_DEBUG_REG53_MMU_MISS_SHIFT)
+#define MH_DEBUG_REG53_SET_MMU_READ_MISS(mh_debug_reg53_reg, mmu_read_miss) \
+ mh_debug_reg53_reg = (mh_debug_reg53_reg & ~MH_DEBUG_REG53_MMU_READ_MISS_MASK) | (mmu_read_miss << MH_DEBUG_REG53_MMU_READ_MISS_SHIFT)
+#define MH_DEBUG_REG53_SET_MMU_WRITE_MISS(mh_debug_reg53_reg, mmu_write_miss) \
+ mh_debug_reg53_reg = (mh_debug_reg53_reg & ~MH_DEBUG_REG53_MMU_WRITE_MISS_MASK) | (mmu_write_miss << MH_DEBUG_REG53_MMU_WRITE_MISS_SHIFT)
+#define MH_DEBUG_REG53_SET_MMU_HIT(mh_debug_reg53_reg, mmu_hit) \
+ mh_debug_reg53_reg = (mh_debug_reg53_reg & ~MH_DEBUG_REG53_MMU_HIT_MASK) | (mmu_hit << MH_DEBUG_REG53_MMU_HIT_SHIFT)
+#define MH_DEBUG_REG53_SET_MMU_READ_HIT(mh_debug_reg53_reg, mmu_read_hit) \
+ mh_debug_reg53_reg = (mh_debug_reg53_reg & ~MH_DEBUG_REG53_MMU_READ_HIT_MASK) | (mmu_read_hit << MH_DEBUG_REG53_MMU_READ_HIT_SHIFT)
+#define MH_DEBUG_REG53_SET_MMU_WRITE_HIT(mh_debug_reg53_reg, mmu_write_hit) \
+ mh_debug_reg53_reg = (mh_debug_reg53_reg & ~MH_DEBUG_REG53_MMU_WRITE_HIT_MASK) | (mmu_write_hit << MH_DEBUG_REG53_MMU_WRITE_HIT_SHIFT)
+#define MH_DEBUG_REG53_SET_MMU_SPLIT_MODE_TC_MISS(mh_debug_reg53_reg, mmu_split_mode_tc_miss) \
+ mh_debug_reg53_reg = (mh_debug_reg53_reg & ~MH_DEBUG_REG53_MMU_SPLIT_MODE_TC_MISS_MASK) | (mmu_split_mode_tc_miss << MH_DEBUG_REG53_MMU_SPLIT_MODE_TC_MISS_SHIFT)
+#define MH_DEBUG_REG53_SET_MMU_SPLIT_MODE_TC_HIT(mh_debug_reg53_reg, mmu_split_mode_tc_hit) \
+ mh_debug_reg53_reg = (mh_debug_reg53_reg & ~MH_DEBUG_REG53_MMU_SPLIT_MODE_TC_HIT_MASK) | (mmu_split_mode_tc_hit << MH_DEBUG_REG53_MMU_SPLIT_MODE_TC_HIT_SHIFT)
+#define MH_DEBUG_REG53_SET_MMU_SPLIT_MODE_nonTC_MISS(mh_debug_reg53_reg, mmu_split_mode_nontc_miss) \
+ mh_debug_reg53_reg = (mh_debug_reg53_reg & ~MH_DEBUG_REG53_MMU_SPLIT_MODE_nonTC_MISS_MASK) | (mmu_split_mode_nontc_miss << MH_DEBUG_REG53_MMU_SPLIT_MODE_nonTC_MISS_SHIFT)
+#define MH_DEBUG_REG53_SET_MMU_SPLIT_MODE_nonTC_HIT(mh_debug_reg53_reg, mmu_split_mode_nontc_hit) \
+ mh_debug_reg53_reg = (mh_debug_reg53_reg & ~MH_DEBUG_REG53_MMU_SPLIT_MODE_nonTC_HIT_MASK) | (mmu_split_mode_nontc_hit << MH_DEBUG_REG53_MMU_SPLIT_MODE_nonTC_HIT_SHIFT)
+#define MH_DEBUG_REG53_SET_REQ_VA_OFFSET_q(mh_debug_reg53_reg, req_va_offset_q) \
+ mh_debug_reg53_reg = (mh_debug_reg53_reg & ~MH_DEBUG_REG53_REQ_VA_OFFSET_q_MASK) | (req_va_offset_q << MH_DEBUG_REG53_REQ_VA_OFFSET_q_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg53_t {
+ unsigned int stage1_valid : MH_DEBUG_REG53_stage1_valid_SIZE;
+ unsigned int ignore_tag_miss_q : MH_DEBUG_REG53_IGNORE_TAG_MISS_q_SIZE;
+ unsigned int pa_in_mpu_range : MH_DEBUG_REG53_pa_in_mpu_range_SIZE;
+ unsigned int tag_match_q : MH_DEBUG_REG53_tag_match_q_SIZE;
+ unsigned int tag_miss_q : MH_DEBUG_REG53_tag_miss_q_SIZE;
+ unsigned int va_in_range_q : MH_DEBUG_REG53_va_in_range_q_SIZE;
+ unsigned int mmu_miss : MH_DEBUG_REG53_MMU_MISS_SIZE;
+ unsigned int mmu_read_miss : MH_DEBUG_REG53_MMU_READ_MISS_SIZE;
+ unsigned int mmu_write_miss : MH_DEBUG_REG53_MMU_WRITE_MISS_SIZE;
+ unsigned int mmu_hit : MH_DEBUG_REG53_MMU_HIT_SIZE;
+ unsigned int mmu_read_hit : MH_DEBUG_REG53_MMU_READ_HIT_SIZE;
+ unsigned int mmu_write_hit : MH_DEBUG_REG53_MMU_WRITE_HIT_SIZE;
+ unsigned int mmu_split_mode_tc_miss : MH_DEBUG_REG53_MMU_SPLIT_MODE_TC_MISS_SIZE;
+ unsigned int mmu_split_mode_tc_hit : MH_DEBUG_REG53_MMU_SPLIT_MODE_TC_HIT_SIZE;
+ unsigned int mmu_split_mode_nontc_miss : MH_DEBUG_REG53_MMU_SPLIT_MODE_nonTC_MISS_SIZE;
+ unsigned int mmu_split_mode_nontc_hit : MH_DEBUG_REG53_MMU_SPLIT_MODE_nonTC_HIT_SIZE;
+ unsigned int req_va_offset_q : MH_DEBUG_REG53_REQ_VA_OFFSET_q_SIZE;
+ } mh_debug_reg53_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg53_t {
+ unsigned int req_va_offset_q : MH_DEBUG_REG53_REQ_VA_OFFSET_q_SIZE;
+ unsigned int mmu_split_mode_nontc_hit : MH_DEBUG_REG53_MMU_SPLIT_MODE_nonTC_HIT_SIZE;
+ unsigned int mmu_split_mode_nontc_miss : MH_DEBUG_REG53_MMU_SPLIT_MODE_nonTC_MISS_SIZE;
+ unsigned int mmu_split_mode_tc_hit : MH_DEBUG_REG53_MMU_SPLIT_MODE_TC_HIT_SIZE;
+ unsigned int mmu_split_mode_tc_miss : MH_DEBUG_REG53_MMU_SPLIT_MODE_TC_MISS_SIZE;
+ unsigned int mmu_write_hit : MH_DEBUG_REG53_MMU_WRITE_HIT_SIZE;
+ unsigned int mmu_read_hit : MH_DEBUG_REG53_MMU_READ_HIT_SIZE;
+ unsigned int mmu_hit : MH_DEBUG_REG53_MMU_HIT_SIZE;
+ unsigned int mmu_write_miss : MH_DEBUG_REG53_MMU_WRITE_MISS_SIZE;
+ unsigned int mmu_read_miss : MH_DEBUG_REG53_MMU_READ_MISS_SIZE;
+ unsigned int mmu_miss : MH_DEBUG_REG53_MMU_MISS_SIZE;
+ unsigned int va_in_range_q : MH_DEBUG_REG53_va_in_range_q_SIZE;
+ unsigned int tag_miss_q : MH_DEBUG_REG53_tag_miss_q_SIZE;
+ unsigned int tag_match_q : MH_DEBUG_REG53_tag_match_q_SIZE;
+ unsigned int pa_in_mpu_range : MH_DEBUG_REG53_pa_in_mpu_range_SIZE;
+ unsigned int ignore_tag_miss_q : MH_DEBUG_REG53_IGNORE_TAG_MISS_q_SIZE;
+ unsigned int stage1_valid : MH_DEBUG_REG53_stage1_valid_SIZE;
+ } mh_debug_reg53_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg53_t f;
+} mh_debug_reg53_u;
+
+
+/*
+ * MH_DEBUG_REG54 struct
+ */
+
+#define MH_DEBUG_REG54_ARQ_RTR_SIZE 1
+#define MH_DEBUG_REG54_MMU_WE_SIZE 1
+#define MH_DEBUG_REG54_CTRL_TLBMISS_RE_q_SIZE 1
+#define MH_DEBUG_REG54_TLBMISS_CTRL_RTS_SIZE 1
+#define MH_DEBUG_REG54_MH_TLBMISS_SEND_SIZE 1
+#define MH_DEBUG_REG54_MMU_STALL_AWAITING_TLB_MISS_FETCH_SIZE 1
+#define MH_DEBUG_REG54_pa_in_mpu_range_SIZE 1
+#define MH_DEBUG_REG54_stage1_valid_SIZE 1
+#define MH_DEBUG_REG54_stage2_valid_SIZE 1
+#define MH_DEBUG_REG54_client_behavior_q_SIZE 2
+#define MH_DEBUG_REG54_IGNORE_TAG_MISS_q_SIZE 1
+#define MH_DEBUG_REG54_tag_match_q_SIZE 1
+#define MH_DEBUG_REG54_tag_miss_q_SIZE 1
+#define MH_DEBUG_REG54_va_in_range_q_SIZE 1
+#define MH_DEBUG_REG54_PTE_FETCH_COMPLETE_q_SIZE 1
+#define MH_DEBUG_REG54_TAG_valid_q_SIZE 16
+
+#define MH_DEBUG_REG54_ARQ_RTR_SHIFT 0
+#define MH_DEBUG_REG54_MMU_WE_SHIFT 1
+#define MH_DEBUG_REG54_CTRL_TLBMISS_RE_q_SHIFT 2
+#define MH_DEBUG_REG54_TLBMISS_CTRL_RTS_SHIFT 3
+#define MH_DEBUG_REG54_MH_TLBMISS_SEND_SHIFT 4
+#define MH_DEBUG_REG54_MMU_STALL_AWAITING_TLB_MISS_FETCH_SHIFT 5
+#define MH_DEBUG_REG54_pa_in_mpu_range_SHIFT 6
+#define MH_DEBUG_REG54_stage1_valid_SHIFT 7
+#define MH_DEBUG_REG54_stage2_valid_SHIFT 8
+#define MH_DEBUG_REG54_client_behavior_q_SHIFT 9
+#define MH_DEBUG_REG54_IGNORE_TAG_MISS_q_SHIFT 11
+#define MH_DEBUG_REG54_tag_match_q_SHIFT 12
+#define MH_DEBUG_REG54_tag_miss_q_SHIFT 13
+#define MH_DEBUG_REG54_va_in_range_q_SHIFT 14
+#define MH_DEBUG_REG54_PTE_FETCH_COMPLETE_q_SHIFT 15
+#define MH_DEBUG_REG54_TAG_valid_q_SHIFT 16
+
+#define MH_DEBUG_REG54_ARQ_RTR_MASK 0x00000001
+#define MH_DEBUG_REG54_MMU_WE_MASK 0x00000002
+#define MH_DEBUG_REG54_CTRL_TLBMISS_RE_q_MASK 0x00000004
+#define MH_DEBUG_REG54_TLBMISS_CTRL_RTS_MASK 0x00000008
+#define MH_DEBUG_REG54_MH_TLBMISS_SEND_MASK 0x00000010
+#define MH_DEBUG_REG54_MMU_STALL_AWAITING_TLB_MISS_FETCH_MASK 0x00000020
+#define MH_DEBUG_REG54_pa_in_mpu_range_MASK 0x00000040
+#define MH_DEBUG_REG54_stage1_valid_MASK 0x00000080
+#define MH_DEBUG_REG54_stage2_valid_MASK 0x00000100
+#define MH_DEBUG_REG54_client_behavior_q_MASK 0x00000600
+#define MH_DEBUG_REG54_IGNORE_TAG_MISS_q_MASK 0x00000800
+#define MH_DEBUG_REG54_tag_match_q_MASK 0x00001000
+#define MH_DEBUG_REG54_tag_miss_q_MASK 0x00002000
+#define MH_DEBUG_REG54_va_in_range_q_MASK 0x00004000
+#define MH_DEBUG_REG54_PTE_FETCH_COMPLETE_q_MASK 0x00008000
+#define MH_DEBUG_REG54_TAG_valid_q_MASK 0xffff0000
+
+#define MH_DEBUG_REG54_MASK \
+ (MH_DEBUG_REG54_ARQ_RTR_MASK | \
+ MH_DEBUG_REG54_MMU_WE_MASK | \
+ MH_DEBUG_REG54_CTRL_TLBMISS_RE_q_MASK | \
+ MH_DEBUG_REG54_TLBMISS_CTRL_RTS_MASK | \
+ MH_DEBUG_REG54_MH_TLBMISS_SEND_MASK | \
+ MH_DEBUG_REG54_MMU_STALL_AWAITING_TLB_MISS_FETCH_MASK | \
+ MH_DEBUG_REG54_pa_in_mpu_range_MASK | \
+ MH_DEBUG_REG54_stage1_valid_MASK | \
+ MH_DEBUG_REG54_stage2_valid_MASK | \
+ MH_DEBUG_REG54_client_behavior_q_MASK | \
+ MH_DEBUG_REG54_IGNORE_TAG_MISS_q_MASK | \
+ MH_DEBUG_REG54_tag_match_q_MASK | \
+ MH_DEBUG_REG54_tag_miss_q_MASK | \
+ MH_DEBUG_REG54_va_in_range_q_MASK | \
+ MH_DEBUG_REG54_PTE_FETCH_COMPLETE_q_MASK | \
+ MH_DEBUG_REG54_TAG_valid_q_MASK)
+
+#define MH_DEBUG_REG54(arq_rtr, mmu_we, ctrl_tlbmiss_re_q, tlbmiss_ctrl_rts, mh_tlbmiss_send, mmu_stall_awaiting_tlb_miss_fetch, pa_in_mpu_range, stage1_valid, stage2_valid, client_behavior_q, ignore_tag_miss_q, tag_match_q, tag_miss_q, va_in_range_q, pte_fetch_complete_q, tag_valid_q) \
+ ((arq_rtr << MH_DEBUG_REG54_ARQ_RTR_SHIFT) | \
+ (mmu_we << MH_DEBUG_REG54_MMU_WE_SHIFT) | \
+ (ctrl_tlbmiss_re_q << MH_DEBUG_REG54_CTRL_TLBMISS_RE_q_SHIFT) | \
+ (tlbmiss_ctrl_rts << MH_DEBUG_REG54_TLBMISS_CTRL_RTS_SHIFT) | \
+ (mh_tlbmiss_send << MH_DEBUG_REG54_MH_TLBMISS_SEND_SHIFT) | \
+ (mmu_stall_awaiting_tlb_miss_fetch << MH_DEBUG_REG54_MMU_STALL_AWAITING_TLB_MISS_FETCH_SHIFT) | \
+ (pa_in_mpu_range << MH_DEBUG_REG54_pa_in_mpu_range_SHIFT) | \
+ (stage1_valid << MH_DEBUG_REG54_stage1_valid_SHIFT) | \
+ (stage2_valid << MH_DEBUG_REG54_stage2_valid_SHIFT) | \
+ (client_behavior_q << MH_DEBUG_REG54_client_behavior_q_SHIFT) | \
+ (ignore_tag_miss_q << MH_DEBUG_REG54_IGNORE_TAG_MISS_q_SHIFT) | \
+ (tag_match_q << MH_DEBUG_REG54_tag_match_q_SHIFT) | \
+ (tag_miss_q << MH_DEBUG_REG54_tag_miss_q_SHIFT) | \
+ (va_in_range_q << MH_DEBUG_REG54_va_in_range_q_SHIFT) | \
+ (pte_fetch_complete_q << MH_DEBUG_REG54_PTE_FETCH_COMPLETE_q_SHIFT) | \
+ (tag_valid_q << MH_DEBUG_REG54_TAG_valid_q_SHIFT))
+
+#define MH_DEBUG_REG54_GET_ARQ_RTR(mh_debug_reg54) \
+ ((mh_debug_reg54 & MH_DEBUG_REG54_ARQ_RTR_MASK) >> MH_DEBUG_REG54_ARQ_RTR_SHIFT)
+#define MH_DEBUG_REG54_GET_MMU_WE(mh_debug_reg54) \
+ ((mh_debug_reg54 & MH_DEBUG_REG54_MMU_WE_MASK) >> MH_DEBUG_REG54_MMU_WE_SHIFT)
+#define MH_DEBUG_REG54_GET_CTRL_TLBMISS_RE_q(mh_debug_reg54) \
+ ((mh_debug_reg54 & MH_DEBUG_REG54_CTRL_TLBMISS_RE_q_MASK) >> MH_DEBUG_REG54_CTRL_TLBMISS_RE_q_SHIFT)
+#define MH_DEBUG_REG54_GET_TLBMISS_CTRL_RTS(mh_debug_reg54) \
+ ((mh_debug_reg54 & MH_DEBUG_REG54_TLBMISS_CTRL_RTS_MASK) >> MH_DEBUG_REG54_TLBMISS_CTRL_RTS_SHIFT)
+#define MH_DEBUG_REG54_GET_MH_TLBMISS_SEND(mh_debug_reg54) \
+ ((mh_debug_reg54 & MH_DEBUG_REG54_MH_TLBMISS_SEND_MASK) >> MH_DEBUG_REG54_MH_TLBMISS_SEND_SHIFT)
+#define MH_DEBUG_REG54_GET_MMU_STALL_AWAITING_TLB_MISS_FETCH(mh_debug_reg54) \
+ ((mh_debug_reg54 & MH_DEBUG_REG54_MMU_STALL_AWAITING_TLB_MISS_FETCH_MASK) >> MH_DEBUG_REG54_MMU_STALL_AWAITING_TLB_MISS_FETCH_SHIFT)
+#define MH_DEBUG_REG54_GET_pa_in_mpu_range(mh_debug_reg54) \
+ ((mh_debug_reg54 & MH_DEBUG_REG54_pa_in_mpu_range_MASK) >> MH_DEBUG_REG54_pa_in_mpu_range_SHIFT)
+#define MH_DEBUG_REG54_GET_stage1_valid(mh_debug_reg54) \
+ ((mh_debug_reg54 & MH_DEBUG_REG54_stage1_valid_MASK) >> MH_DEBUG_REG54_stage1_valid_SHIFT)
+#define MH_DEBUG_REG54_GET_stage2_valid(mh_debug_reg54) \
+ ((mh_debug_reg54 & MH_DEBUG_REG54_stage2_valid_MASK) >> MH_DEBUG_REG54_stage2_valid_SHIFT)
+#define MH_DEBUG_REG54_GET_client_behavior_q(mh_debug_reg54) \
+ ((mh_debug_reg54 & MH_DEBUG_REG54_client_behavior_q_MASK) >> MH_DEBUG_REG54_client_behavior_q_SHIFT)
+#define MH_DEBUG_REG54_GET_IGNORE_TAG_MISS_q(mh_debug_reg54) \
+ ((mh_debug_reg54 & MH_DEBUG_REG54_IGNORE_TAG_MISS_q_MASK) >> MH_DEBUG_REG54_IGNORE_TAG_MISS_q_SHIFT)
+#define MH_DEBUG_REG54_GET_tag_match_q(mh_debug_reg54) \
+ ((mh_debug_reg54 & MH_DEBUG_REG54_tag_match_q_MASK) >> MH_DEBUG_REG54_tag_match_q_SHIFT)
+#define MH_DEBUG_REG54_GET_tag_miss_q(mh_debug_reg54) \
+ ((mh_debug_reg54 & MH_DEBUG_REG54_tag_miss_q_MASK) >> MH_DEBUG_REG54_tag_miss_q_SHIFT)
+#define MH_DEBUG_REG54_GET_va_in_range_q(mh_debug_reg54) \
+ ((mh_debug_reg54 & MH_DEBUG_REG54_va_in_range_q_MASK) >> MH_DEBUG_REG54_va_in_range_q_SHIFT)
+#define MH_DEBUG_REG54_GET_PTE_FETCH_COMPLETE_q(mh_debug_reg54) \
+ ((mh_debug_reg54 & MH_DEBUG_REG54_PTE_FETCH_COMPLETE_q_MASK) >> MH_DEBUG_REG54_PTE_FETCH_COMPLETE_q_SHIFT)
+#define MH_DEBUG_REG54_GET_TAG_valid_q(mh_debug_reg54) \
+ ((mh_debug_reg54 & MH_DEBUG_REG54_TAG_valid_q_MASK) >> MH_DEBUG_REG54_TAG_valid_q_SHIFT)
+
+#define MH_DEBUG_REG54_SET_ARQ_RTR(mh_debug_reg54_reg, arq_rtr) \
+ mh_debug_reg54_reg = (mh_debug_reg54_reg & ~MH_DEBUG_REG54_ARQ_RTR_MASK) | (arq_rtr << MH_DEBUG_REG54_ARQ_RTR_SHIFT)
+#define MH_DEBUG_REG54_SET_MMU_WE(mh_debug_reg54_reg, mmu_we) \
+ mh_debug_reg54_reg = (mh_debug_reg54_reg & ~MH_DEBUG_REG54_MMU_WE_MASK) | (mmu_we << MH_DEBUG_REG54_MMU_WE_SHIFT)
+#define MH_DEBUG_REG54_SET_CTRL_TLBMISS_RE_q(mh_debug_reg54_reg, ctrl_tlbmiss_re_q) \
+ mh_debug_reg54_reg = (mh_debug_reg54_reg & ~MH_DEBUG_REG54_CTRL_TLBMISS_RE_q_MASK) | (ctrl_tlbmiss_re_q << MH_DEBUG_REG54_CTRL_TLBMISS_RE_q_SHIFT)
+#define MH_DEBUG_REG54_SET_TLBMISS_CTRL_RTS(mh_debug_reg54_reg, tlbmiss_ctrl_rts) \
+ mh_debug_reg54_reg = (mh_debug_reg54_reg & ~MH_DEBUG_REG54_TLBMISS_CTRL_RTS_MASK) | (tlbmiss_ctrl_rts << MH_DEBUG_REG54_TLBMISS_CTRL_RTS_SHIFT)
+#define MH_DEBUG_REG54_SET_MH_TLBMISS_SEND(mh_debug_reg54_reg, mh_tlbmiss_send) \
+ mh_debug_reg54_reg = (mh_debug_reg54_reg & ~MH_DEBUG_REG54_MH_TLBMISS_SEND_MASK) | (mh_tlbmiss_send << MH_DEBUG_REG54_MH_TLBMISS_SEND_SHIFT)
+#define MH_DEBUG_REG54_SET_MMU_STALL_AWAITING_TLB_MISS_FETCH(mh_debug_reg54_reg, mmu_stall_awaiting_tlb_miss_fetch) \
+ mh_debug_reg54_reg = (mh_debug_reg54_reg & ~MH_DEBUG_REG54_MMU_STALL_AWAITING_TLB_MISS_FETCH_MASK) | (mmu_stall_awaiting_tlb_miss_fetch << MH_DEBUG_REG54_MMU_STALL_AWAITING_TLB_MISS_FETCH_SHIFT)
+#define MH_DEBUG_REG54_SET_pa_in_mpu_range(mh_debug_reg54_reg, pa_in_mpu_range) \
+ mh_debug_reg54_reg = (mh_debug_reg54_reg & ~MH_DEBUG_REG54_pa_in_mpu_range_MASK) | (pa_in_mpu_range << MH_DEBUG_REG54_pa_in_mpu_range_SHIFT)
+#define MH_DEBUG_REG54_SET_stage1_valid(mh_debug_reg54_reg, stage1_valid) \
+ mh_debug_reg54_reg = (mh_debug_reg54_reg & ~MH_DEBUG_REG54_stage1_valid_MASK) | (stage1_valid << MH_DEBUG_REG54_stage1_valid_SHIFT)
+#define MH_DEBUG_REG54_SET_stage2_valid(mh_debug_reg54_reg, stage2_valid) \
+ mh_debug_reg54_reg = (mh_debug_reg54_reg & ~MH_DEBUG_REG54_stage2_valid_MASK) | (stage2_valid << MH_DEBUG_REG54_stage2_valid_SHIFT)
+#define MH_DEBUG_REG54_SET_client_behavior_q(mh_debug_reg54_reg, client_behavior_q) \
+ mh_debug_reg54_reg = (mh_debug_reg54_reg & ~MH_DEBUG_REG54_client_behavior_q_MASK) | (client_behavior_q << MH_DEBUG_REG54_client_behavior_q_SHIFT)
+#define MH_DEBUG_REG54_SET_IGNORE_TAG_MISS_q(mh_debug_reg54_reg, ignore_tag_miss_q) \
+ mh_debug_reg54_reg = (mh_debug_reg54_reg & ~MH_DEBUG_REG54_IGNORE_TAG_MISS_q_MASK) | (ignore_tag_miss_q << MH_DEBUG_REG54_IGNORE_TAG_MISS_q_SHIFT)
+#define MH_DEBUG_REG54_SET_tag_match_q(mh_debug_reg54_reg, tag_match_q) \
+ mh_debug_reg54_reg = (mh_debug_reg54_reg & ~MH_DEBUG_REG54_tag_match_q_MASK) | (tag_match_q << MH_DEBUG_REG54_tag_match_q_SHIFT)
+#define MH_DEBUG_REG54_SET_tag_miss_q(mh_debug_reg54_reg, tag_miss_q) \
+ mh_debug_reg54_reg = (mh_debug_reg54_reg & ~MH_DEBUG_REG54_tag_miss_q_MASK) | (tag_miss_q << MH_DEBUG_REG54_tag_miss_q_SHIFT)
+#define MH_DEBUG_REG54_SET_va_in_range_q(mh_debug_reg54_reg, va_in_range_q) \
+ mh_debug_reg54_reg = (mh_debug_reg54_reg & ~MH_DEBUG_REG54_va_in_range_q_MASK) | (va_in_range_q << MH_DEBUG_REG54_va_in_range_q_SHIFT)
+#define MH_DEBUG_REG54_SET_PTE_FETCH_COMPLETE_q(mh_debug_reg54_reg, pte_fetch_complete_q) \
+ mh_debug_reg54_reg = (mh_debug_reg54_reg & ~MH_DEBUG_REG54_PTE_FETCH_COMPLETE_q_MASK) | (pte_fetch_complete_q << MH_DEBUG_REG54_PTE_FETCH_COMPLETE_q_SHIFT)
+#define MH_DEBUG_REG54_SET_TAG_valid_q(mh_debug_reg54_reg, tag_valid_q) \
+ mh_debug_reg54_reg = (mh_debug_reg54_reg & ~MH_DEBUG_REG54_TAG_valid_q_MASK) | (tag_valid_q << MH_DEBUG_REG54_TAG_valid_q_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg54_t {
+ unsigned int arq_rtr : MH_DEBUG_REG54_ARQ_RTR_SIZE;
+ unsigned int mmu_we : MH_DEBUG_REG54_MMU_WE_SIZE;
+ unsigned int ctrl_tlbmiss_re_q : MH_DEBUG_REG54_CTRL_TLBMISS_RE_q_SIZE;
+ unsigned int tlbmiss_ctrl_rts : MH_DEBUG_REG54_TLBMISS_CTRL_RTS_SIZE;
+ unsigned int mh_tlbmiss_send : MH_DEBUG_REG54_MH_TLBMISS_SEND_SIZE;
+ unsigned int mmu_stall_awaiting_tlb_miss_fetch : MH_DEBUG_REG54_MMU_STALL_AWAITING_TLB_MISS_FETCH_SIZE;
+ unsigned int pa_in_mpu_range : MH_DEBUG_REG54_pa_in_mpu_range_SIZE;
+ unsigned int stage1_valid : MH_DEBUG_REG54_stage1_valid_SIZE;
+ unsigned int stage2_valid : MH_DEBUG_REG54_stage2_valid_SIZE;
+ unsigned int client_behavior_q : MH_DEBUG_REG54_client_behavior_q_SIZE;
+ unsigned int ignore_tag_miss_q : MH_DEBUG_REG54_IGNORE_TAG_MISS_q_SIZE;
+ unsigned int tag_match_q : MH_DEBUG_REG54_tag_match_q_SIZE;
+ unsigned int tag_miss_q : MH_DEBUG_REG54_tag_miss_q_SIZE;
+ unsigned int va_in_range_q : MH_DEBUG_REG54_va_in_range_q_SIZE;
+ unsigned int pte_fetch_complete_q : MH_DEBUG_REG54_PTE_FETCH_COMPLETE_q_SIZE;
+ unsigned int tag_valid_q : MH_DEBUG_REG54_TAG_valid_q_SIZE;
+ } mh_debug_reg54_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg54_t {
+ unsigned int tag_valid_q : MH_DEBUG_REG54_TAG_valid_q_SIZE;
+ unsigned int pte_fetch_complete_q : MH_DEBUG_REG54_PTE_FETCH_COMPLETE_q_SIZE;
+ unsigned int va_in_range_q : MH_DEBUG_REG54_va_in_range_q_SIZE;
+ unsigned int tag_miss_q : MH_DEBUG_REG54_tag_miss_q_SIZE;
+ unsigned int tag_match_q : MH_DEBUG_REG54_tag_match_q_SIZE;
+ unsigned int ignore_tag_miss_q : MH_DEBUG_REG54_IGNORE_TAG_MISS_q_SIZE;
+ unsigned int client_behavior_q : MH_DEBUG_REG54_client_behavior_q_SIZE;
+ unsigned int stage2_valid : MH_DEBUG_REG54_stage2_valid_SIZE;
+ unsigned int stage1_valid : MH_DEBUG_REG54_stage1_valid_SIZE;
+ unsigned int pa_in_mpu_range : MH_DEBUG_REG54_pa_in_mpu_range_SIZE;
+ unsigned int mmu_stall_awaiting_tlb_miss_fetch : MH_DEBUG_REG54_MMU_STALL_AWAITING_TLB_MISS_FETCH_SIZE;
+ unsigned int mh_tlbmiss_send : MH_DEBUG_REG54_MH_TLBMISS_SEND_SIZE;
+ unsigned int tlbmiss_ctrl_rts : MH_DEBUG_REG54_TLBMISS_CTRL_RTS_SIZE;
+ unsigned int ctrl_tlbmiss_re_q : MH_DEBUG_REG54_CTRL_TLBMISS_RE_q_SIZE;
+ unsigned int mmu_we : MH_DEBUG_REG54_MMU_WE_SIZE;
+ unsigned int arq_rtr : MH_DEBUG_REG54_ARQ_RTR_SIZE;
+ } mh_debug_reg54_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg54_t f;
+} mh_debug_reg54_u;
+
+
+/*
+ * MH_DEBUG_REG55 struct
+ */
+
+#define MH_DEBUG_REG55_TAG0_VA_SIZE 13
+#define MH_DEBUG_REG55_TAG_valid_q_0_SIZE 1
+#define MH_DEBUG_REG55_ALWAYS_ZERO_SIZE 2
+#define MH_DEBUG_REG55_TAG1_VA_SIZE 13
+#define MH_DEBUG_REG55_TAG_valid_q_1_SIZE 1
+
+#define MH_DEBUG_REG55_TAG0_VA_SHIFT 0
+#define MH_DEBUG_REG55_TAG_valid_q_0_SHIFT 13
+#define MH_DEBUG_REG55_ALWAYS_ZERO_SHIFT 14
+#define MH_DEBUG_REG55_TAG1_VA_SHIFT 16
+#define MH_DEBUG_REG55_TAG_valid_q_1_SHIFT 29
+
+#define MH_DEBUG_REG55_TAG0_VA_MASK 0x00001fff
+#define MH_DEBUG_REG55_TAG_valid_q_0_MASK 0x00002000
+#define MH_DEBUG_REG55_ALWAYS_ZERO_MASK 0x0000c000
+#define MH_DEBUG_REG55_TAG1_VA_MASK 0x1fff0000
+#define MH_DEBUG_REG55_TAG_valid_q_1_MASK 0x20000000
+
+#define MH_DEBUG_REG55_MASK \
+ (MH_DEBUG_REG55_TAG0_VA_MASK | \
+ MH_DEBUG_REG55_TAG_valid_q_0_MASK | \
+ MH_DEBUG_REG55_ALWAYS_ZERO_MASK | \
+ MH_DEBUG_REG55_TAG1_VA_MASK | \
+ MH_DEBUG_REG55_TAG_valid_q_1_MASK)
+
+#define MH_DEBUG_REG55(tag0_va, tag_valid_q_0, always_zero, tag1_va, tag_valid_q_1) \
+ ((tag0_va << MH_DEBUG_REG55_TAG0_VA_SHIFT) | \
+ (tag_valid_q_0 << MH_DEBUG_REG55_TAG_valid_q_0_SHIFT) | \
+ (always_zero << MH_DEBUG_REG55_ALWAYS_ZERO_SHIFT) | \
+ (tag1_va << MH_DEBUG_REG55_TAG1_VA_SHIFT) | \
+ (tag_valid_q_1 << MH_DEBUG_REG55_TAG_valid_q_1_SHIFT))
+
+#define MH_DEBUG_REG55_GET_TAG0_VA(mh_debug_reg55) \
+ ((mh_debug_reg55 & MH_DEBUG_REG55_TAG0_VA_MASK) >> MH_DEBUG_REG55_TAG0_VA_SHIFT)
+#define MH_DEBUG_REG55_GET_TAG_valid_q_0(mh_debug_reg55) \
+ ((mh_debug_reg55 & MH_DEBUG_REG55_TAG_valid_q_0_MASK) >> MH_DEBUG_REG55_TAG_valid_q_0_SHIFT)
+#define MH_DEBUG_REG55_GET_ALWAYS_ZERO(mh_debug_reg55) \
+ ((mh_debug_reg55 & MH_DEBUG_REG55_ALWAYS_ZERO_MASK) >> MH_DEBUG_REG55_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG55_GET_TAG1_VA(mh_debug_reg55) \
+ ((mh_debug_reg55 & MH_DEBUG_REG55_TAG1_VA_MASK) >> MH_DEBUG_REG55_TAG1_VA_SHIFT)
+#define MH_DEBUG_REG55_GET_TAG_valid_q_1(mh_debug_reg55) \
+ ((mh_debug_reg55 & MH_DEBUG_REG55_TAG_valid_q_1_MASK) >> MH_DEBUG_REG55_TAG_valid_q_1_SHIFT)
+
+#define MH_DEBUG_REG55_SET_TAG0_VA(mh_debug_reg55_reg, tag0_va) \
+ mh_debug_reg55_reg = (mh_debug_reg55_reg & ~MH_DEBUG_REG55_TAG0_VA_MASK) | (tag0_va << MH_DEBUG_REG55_TAG0_VA_SHIFT)
+#define MH_DEBUG_REG55_SET_TAG_valid_q_0(mh_debug_reg55_reg, tag_valid_q_0) \
+ mh_debug_reg55_reg = (mh_debug_reg55_reg & ~MH_DEBUG_REG55_TAG_valid_q_0_MASK) | (tag_valid_q_0 << MH_DEBUG_REG55_TAG_valid_q_0_SHIFT)
+#define MH_DEBUG_REG55_SET_ALWAYS_ZERO(mh_debug_reg55_reg, always_zero) \
+ mh_debug_reg55_reg = (mh_debug_reg55_reg & ~MH_DEBUG_REG55_ALWAYS_ZERO_MASK) | (always_zero << MH_DEBUG_REG55_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG55_SET_TAG1_VA(mh_debug_reg55_reg, tag1_va) \
+ mh_debug_reg55_reg = (mh_debug_reg55_reg & ~MH_DEBUG_REG55_TAG1_VA_MASK) | (tag1_va << MH_DEBUG_REG55_TAG1_VA_SHIFT)
+#define MH_DEBUG_REG55_SET_TAG_valid_q_1(mh_debug_reg55_reg, tag_valid_q_1) \
+ mh_debug_reg55_reg = (mh_debug_reg55_reg & ~MH_DEBUG_REG55_TAG_valid_q_1_MASK) | (tag_valid_q_1 << MH_DEBUG_REG55_TAG_valid_q_1_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg55_t {
+ unsigned int tag0_va : MH_DEBUG_REG55_TAG0_VA_SIZE;
+ unsigned int tag_valid_q_0 : MH_DEBUG_REG55_TAG_valid_q_0_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG55_ALWAYS_ZERO_SIZE;
+ unsigned int tag1_va : MH_DEBUG_REG55_TAG1_VA_SIZE;
+ unsigned int tag_valid_q_1 : MH_DEBUG_REG55_TAG_valid_q_1_SIZE;
+ unsigned int : 2;
+ } mh_debug_reg55_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg55_t {
+ unsigned int : 2;
+ unsigned int tag_valid_q_1 : MH_DEBUG_REG55_TAG_valid_q_1_SIZE;
+ unsigned int tag1_va : MH_DEBUG_REG55_TAG1_VA_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG55_ALWAYS_ZERO_SIZE;
+ unsigned int tag_valid_q_0 : MH_DEBUG_REG55_TAG_valid_q_0_SIZE;
+ unsigned int tag0_va : MH_DEBUG_REG55_TAG0_VA_SIZE;
+ } mh_debug_reg55_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg55_t f;
+} mh_debug_reg55_u;
+
+
+/*
+ * MH_DEBUG_REG56 struct
+ */
+
+#define MH_DEBUG_REG56_TAG2_VA_SIZE 13
+#define MH_DEBUG_REG56_TAG_valid_q_2_SIZE 1
+#define MH_DEBUG_REG56_ALWAYS_ZERO_SIZE 2
+#define MH_DEBUG_REG56_TAG3_VA_SIZE 13
+#define MH_DEBUG_REG56_TAG_valid_q_3_SIZE 1
+
+#define MH_DEBUG_REG56_TAG2_VA_SHIFT 0
+#define MH_DEBUG_REG56_TAG_valid_q_2_SHIFT 13
+#define MH_DEBUG_REG56_ALWAYS_ZERO_SHIFT 14
+#define MH_DEBUG_REG56_TAG3_VA_SHIFT 16
+#define MH_DEBUG_REG56_TAG_valid_q_3_SHIFT 29
+
+#define MH_DEBUG_REG56_TAG2_VA_MASK 0x00001fff
+#define MH_DEBUG_REG56_TAG_valid_q_2_MASK 0x00002000
+#define MH_DEBUG_REG56_ALWAYS_ZERO_MASK 0x0000c000
+#define MH_DEBUG_REG56_TAG3_VA_MASK 0x1fff0000
+#define MH_DEBUG_REG56_TAG_valid_q_3_MASK 0x20000000
+
+#define MH_DEBUG_REG56_MASK \
+ (MH_DEBUG_REG56_TAG2_VA_MASK | \
+ MH_DEBUG_REG56_TAG_valid_q_2_MASK | \
+ MH_DEBUG_REG56_ALWAYS_ZERO_MASK | \
+ MH_DEBUG_REG56_TAG3_VA_MASK | \
+ MH_DEBUG_REG56_TAG_valid_q_3_MASK)
+
+#define MH_DEBUG_REG56(tag2_va, tag_valid_q_2, always_zero, tag3_va, tag_valid_q_3) \
+ ((tag2_va << MH_DEBUG_REG56_TAG2_VA_SHIFT) | \
+ (tag_valid_q_2 << MH_DEBUG_REG56_TAG_valid_q_2_SHIFT) | \
+ (always_zero << MH_DEBUG_REG56_ALWAYS_ZERO_SHIFT) | \
+ (tag3_va << MH_DEBUG_REG56_TAG3_VA_SHIFT) | \
+ (tag_valid_q_3 << MH_DEBUG_REG56_TAG_valid_q_3_SHIFT))
+
+#define MH_DEBUG_REG56_GET_TAG2_VA(mh_debug_reg56) \
+ ((mh_debug_reg56 & MH_DEBUG_REG56_TAG2_VA_MASK) >> MH_DEBUG_REG56_TAG2_VA_SHIFT)
+#define MH_DEBUG_REG56_GET_TAG_valid_q_2(mh_debug_reg56) \
+ ((mh_debug_reg56 & MH_DEBUG_REG56_TAG_valid_q_2_MASK) >> MH_DEBUG_REG56_TAG_valid_q_2_SHIFT)
+#define MH_DEBUG_REG56_GET_ALWAYS_ZERO(mh_debug_reg56) \
+ ((mh_debug_reg56 & MH_DEBUG_REG56_ALWAYS_ZERO_MASK) >> MH_DEBUG_REG56_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG56_GET_TAG3_VA(mh_debug_reg56) \
+ ((mh_debug_reg56 & MH_DEBUG_REG56_TAG3_VA_MASK) >> MH_DEBUG_REG56_TAG3_VA_SHIFT)
+#define MH_DEBUG_REG56_GET_TAG_valid_q_3(mh_debug_reg56) \
+ ((mh_debug_reg56 & MH_DEBUG_REG56_TAG_valid_q_3_MASK) >> MH_DEBUG_REG56_TAG_valid_q_3_SHIFT)
+
+#define MH_DEBUG_REG56_SET_TAG2_VA(mh_debug_reg56_reg, tag2_va) \
+ mh_debug_reg56_reg = (mh_debug_reg56_reg & ~MH_DEBUG_REG56_TAG2_VA_MASK) | (tag2_va << MH_DEBUG_REG56_TAG2_VA_SHIFT)
+#define MH_DEBUG_REG56_SET_TAG_valid_q_2(mh_debug_reg56_reg, tag_valid_q_2) \
+ mh_debug_reg56_reg = (mh_debug_reg56_reg & ~MH_DEBUG_REG56_TAG_valid_q_2_MASK) | (tag_valid_q_2 << MH_DEBUG_REG56_TAG_valid_q_2_SHIFT)
+#define MH_DEBUG_REG56_SET_ALWAYS_ZERO(mh_debug_reg56_reg, always_zero) \
+ mh_debug_reg56_reg = (mh_debug_reg56_reg & ~MH_DEBUG_REG56_ALWAYS_ZERO_MASK) | (always_zero << MH_DEBUG_REG56_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG56_SET_TAG3_VA(mh_debug_reg56_reg, tag3_va) \
+ mh_debug_reg56_reg = (mh_debug_reg56_reg & ~MH_DEBUG_REG56_TAG3_VA_MASK) | (tag3_va << MH_DEBUG_REG56_TAG3_VA_SHIFT)
+#define MH_DEBUG_REG56_SET_TAG_valid_q_3(mh_debug_reg56_reg, tag_valid_q_3) \
+ mh_debug_reg56_reg = (mh_debug_reg56_reg & ~MH_DEBUG_REG56_TAG_valid_q_3_MASK) | (tag_valid_q_3 << MH_DEBUG_REG56_TAG_valid_q_3_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg56_t {
+ unsigned int tag2_va : MH_DEBUG_REG56_TAG2_VA_SIZE;
+ unsigned int tag_valid_q_2 : MH_DEBUG_REG56_TAG_valid_q_2_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG56_ALWAYS_ZERO_SIZE;
+ unsigned int tag3_va : MH_DEBUG_REG56_TAG3_VA_SIZE;
+ unsigned int tag_valid_q_3 : MH_DEBUG_REG56_TAG_valid_q_3_SIZE;
+ unsigned int : 2;
+ } mh_debug_reg56_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg56_t {
+ unsigned int : 2;
+ unsigned int tag_valid_q_3 : MH_DEBUG_REG56_TAG_valid_q_3_SIZE;
+ unsigned int tag3_va : MH_DEBUG_REG56_TAG3_VA_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG56_ALWAYS_ZERO_SIZE;
+ unsigned int tag_valid_q_2 : MH_DEBUG_REG56_TAG_valid_q_2_SIZE;
+ unsigned int tag2_va : MH_DEBUG_REG56_TAG2_VA_SIZE;
+ } mh_debug_reg56_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg56_t f;
+} mh_debug_reg56_u;
+
+
+/*
+ * MH_DEBUG_REG57 struct
+ */
+
+#define MH_DEBUG_REG57_TAG4_VA_SIZE 13
+#define MH_DEBUG_REG57_TAG_valid_q_4_SIZE 1
+#define MH_DEBUG_REG57_ALWAYS_ZERO_SIZE 2
+#define MH_DEBUG_REG57_TAG5_VA_SIZE 13
+#define MH_DEBUG_REG57_TAG_valid_q_5_SIZE 1
+
+#define MH_DEBUG_REG57_TAG4_VA_SHIFT 0
+#define MH_DEBUG_REG57_TAG_valid_q_4_SHIFT 13
+#define MH_DEBUG_REG57_ALWAYS_ZERO_SHIFT 14
+#define MH_DEBUG_REG57_TAG5_VA_SHIFT 16
+#define MH_DEBUG_REG57_TAG_valid_q_5_SHIFT 29
+
+#define MH_DEBUG_REG57_TAG4_VA_MASK 0x00001fff
+#define MH_DEBUG_REG57_TAG_valid_q_4_MASK 0x00002000
+#define MH_DEBUG_REG57_ALWAYS_ZERO_MASK 0x0000c000
+#define MH_DEBUG_REG57_TAG5_VA_MASK 0x1fff0000
+#define MH_DEBUG_REG57_TAG_valid_q_5_MASK 0x20000000
+
+#define MH_DEBUG_REG57_MASK \
+ (MH_DEBUG_REG57_TAG4_VA_MASK | \
+ MH_DEBUG_REG57_TAG_valid_q_4_MASK | \
+ MH_DEBUG_REG57_ALWAYS_ZERO_MASK | \
+ MH_DEBUG_REG57_TAG5_VA_MASK | \
+ MH_DEBUG_REG57_TAG_valid_q_5_MASK)
+
+#define MH_DEBUG_REG57(tag4_va, tag_valid_q_4, always_zero, tag5_va, tag_valid_q_5) \
+ ((tag4_va << MH_DEBUG_REG57_TAG4_VA_SHIFT) | \
+ (tag_valid_q_4 << MH_DEBUG_REG57_TAG_valid_q_4_SHIFT) | \
+ (always_zero << MH_DEBUG_REG57_ALWAYS_ZERO_SHIFT) | \
+ (tag5_va << MH_DEBUG_REG57_TAG5_VA_SHIFT) | \
+ (tag_valid_q_5 << MH_DEBUG_REG57_TAG_valid_q_5_SHIFT))
+
+#define MH_DEBUG_REG57_GET_TAG4_VA(mh_debug_reg57) \
+ ((mh_debug_reg57 & MH_DEBUG_REG57_TAG4_VA_MASK) >> MH_DEBUG_REG57_TAG4_VA_SHIFT)
+#define MH_DEBUG_REG57_GET_TAG_valid_q_4(mh_debug_reg57) \
+ ((mh_debug_reg57 & MH_DEBUG_REG57_TAG_valid_q_4_MASK) >> MH_DEBUG_REG57_TAG_valid_q_4_SHIFT)
+#define MH_DEBUG_REG57_GET_ALWAYS_ZERO(mh_debug_reg57) \
+ ((mh_debug_reg57 & MH_DEBUG_REG57_ALWAYS_ZERO_MASK) >> MH_DEBUG_REG57_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG57_GET_TAG5_VA(mh_debug_reg57) \
+ ((mh_debug_reg57 & MH_DEBUG_REG57_TAG5_VA_MASK) >> MH_DEBUG_REG57_TAG5_VA_SHIFT)
+#define MH_DEBUG_REG57_GET_TAG_valid_q_5(mh_debug_reg57) \
+ ((mh_debug_reg57 & MH_DEBUG_REG57_TAG_valid_q_5_MASK) >> MH_DEBUG_REG57_TAG_valid_q_5_SHIFT)
+
+#define MH_DEBUG_REG57_SET_TAG4_VA(mh_debug_reg57_reg, tag4_va) \
+ mh_debug_reg57_reg = (mh_debug_reg57_reg & ~MH_DEBUG_REG57_TAG4_VA_MASK) | (tag4_va << MH_DEBUG_REG57_TAG4_VA_SHIFT)
+#define MH_DEBUG_REG57_SET_TAG_valid_q_4(mh_debug_reg57_reg, tag_valid_q_4) \
+ mh_debug_reg57_reg = (mh_debug_reg57_reg & ~MH_DEBUG_REG57_TAG_valid_q_4_MASK) | (tag_valid_q_4 << MH_DEBUG_REG57_TAG_valid_q_4_SHIFT)
+#define MH_DEBUG_REG57_SET_ALWAYS_ZERO(mh_debug_reg57_reg, always_zero) \
+ mh_debug_reg57_reg = (mh_debug_reg57_reg & ~MH_DEBUG_REG57_ALWAYS_ZERO_MASK) | (always_zero << MH_DEBUG_REG57_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG57_SET_TAG5_VA(mh_debug_reg57_reg, tag5_va) \
+ mh_debug_reg57_reg = (mh_debug_reg57_reg & ~MH_DEBUG_REG57_TAG5_VA_MASK) | (tag5_va << MH_DEBUG_REG57_TAG5_VA_SHIFT)
+#define MH_DEBUG_REG57_SET_TAG_valid_q_5(mh_debug_reg57_reg, tag_valid_q_5) \
+ mh_debug_reg57_reg = (mh_debug_reg57_reg & ~MH_DEBUG_REG57_TAG_valid_q_5_MASK) | (tag_valid_q_5 << MH_DEBUG_REG57_TAG_valid_q_5_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg57_t {
+ unsigned int tag4_va : MH_DEBUG_REG57_TAG4_VA_SIZE;
+ unsigned int tag_valid_q_4 : MH_DEBUG_REG57_TAG_valid_q_4_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG57_ALWAYS_ZERO_SIZE;
+ unsigned int tag5_va : MH_DEBUG_REG57_TAG5_VA_SIZE;
+ unsigned int tag_valid_q_5 : MH_DEBUG_REG57_TAG_valid_q_5_SIZE;
+ unsigned int : 2;
+ } mh_debug_reg57_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg57_t {
+ unsigned int : 2;
+ unsigned int tag_valid_q_5 : MH_DEBUG_REG57_TAG_valid_q_5_SIZE;
+ unsigned int tag5_va : MH_DEBUG_REG57_TAG5_VA_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG57_ALWAYS_ZERO_SIZE;
+ unsigned int tag_valid_q_4 : MH_DEBUG_REG57_TAG_valid_q_4_SIZE;
+ unsigned int tag4_va : MH_DEBUG_REG57_TAG4_VA_SIZE;
+ } mh_debug_reg57_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg57_t f;
+} mh_debug_reg57_u;
+
+
+/*
+ * MH_DEBUG_REG58 struct
+ */
+
+#define MH_DEBUG_REG58_TAG6_VA_SIZE 13
+#define MH_DEBUG_REG58_TAG_valid_q_6_SIZE 1
+#define MH_DEBUG_REG58_ALWAYS_ZERO_SIZE 2
+#define MH_DEBUG_REG58_TAG7_VA_SIZE 13
+#define MH_DEBUG_REG58_TAG_valid_q_7_SIZE 1
+
+#define MH_DEBUG_REG58_TAG6_VA_SHIFT 0
+#define MH_DEBUG_REG58_TAG_valid_q_6_SHIFT 13
+#define MH_DEBUG_REG58_ALWAYS_ZERO_SHIFT 14
+#define MH_DEBUG_REG58_TAG7_VA_SHIFT 16
+#define MH_DEBUG_REG58_TAG_valid_q_7_SHIFT 29
+
+#define MH_DEBUG_REG58_TAG6_VA_MASK 0x00001fff
+#define MH_DEBUG_REG58_TAG_valid_q_6_MASK 0x00002000
+#define MH_DEBUG_REG58_ALWAYS_ZERO_MASK 0x0000c000
+#define MH_DEBUG_REG58_TAG7_VA_MASK 0x1fff0000
+#define MH_DEBUG_REG58_TAG_valid_q_7_MASK 0x20000000
+
+#define MH_DEBUG_REG58_MASK \
+ (MH_DEBUG_REG58_TAG6_VA_MASK | \
+ MH_DEBUG_REG58_TAG_valid_q_6_MASK | \
+ MH_DEBUG_REG58_ALWAYS_ZERO_MASK | \
+ MH_DEBUG_REG58_TAG7_VA_MASK | \
+ MH_DEBUG_REG58_TAG_valid_q_7_MASK)
+
+#define MH_DEBUG_REG58(tag6_va, tag_valid_q_6, always_zero, tag7_va, tag_valid_q_7) \
+ ((tag6_va << MH_DEBUG_REG58_TAG6_VA_SHIFT) | \
+ (tag_valid_q_6 << MH_DEBUG_REG58_TAG_valid_q_6_SHIFT) | \
+ (always_zero << MH_DEBUG_REG58_ALWAYS_ZERO_SHIFT) | \
+ (tag7_va << MH_DEBUG_REG58_TAG7_VA_SHIFT) | \
+ (tag_valid_q_7 << MH_DEBUG_REG58_TAG_valid_q_7_SHIFT))
+
+#define MH_DEBUG_REG58_GET_TAG6_VA(mh_debug_reg58) \
+ ((mh_debug_reg58 & MH_DEBUG_REG58_TAG6_VA_MASK) >> MH_DEBUG_REG58_TAG6_VA_SHIFT)
+#define MH_DEBUG_REG58_GET_TAG_valid_q_6(mh_debug_reg58) \
+ ((mh_debug_reg58 & MH_DEBUG_REG58_TAG_valid_q_6_MASK) >> MH_DEBUG_REG58_TAG_valid_q_6_SHIFT)
+#define MH_DEBUG_REG58_GET_ALWAYS_ZERO(mh_debug_reg58) \
+ ((mh_debug_reg58 & MH_DEBUG_REG58_ALWAYS_ZERO_MASK) >> MH_DEBUG_REG58_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG58_GET_TAG7_VA(mh_debug_reg58) \
+ ((mh_debug_reg58 & MH_DEBUG_REG58_TAG7_VA_MASK) >> MH_DEBUG_REG58_TAG7_VA_SHIFT)
+#define MH_DEBUG_REG58_GET_TAG_valid_q_7(mh_debug_reg58) \
+ ((mh_debug_reg58 & MH_DEBUG_REG58_TAG_valid_q_7_MASK) >> MH_DEBUG_REG58_TAG_valid_q_7_SHIFT)
+
+#define MH_DEBUG_REG58_SET_TAG6_VA(mh_debug_reg58_reg, tag6_va) \
+ mh_debug_reg58_reg = (mh_debug_reg58_reg & ~MH_DEBUG_REG58_TAG6_VA_MASK) | (tag6_va << MH_DEBUG_REG58_TAG6_VA_SHIFT)
+#define MH_DEBUG_REG58_SET_TAG_valid_q_6(mh_debug_reg58_reg, tag_valid_q_6) \
+ mh_debug_reg58_reg = (mh_debug_reg58_reg & ~MH_DEBUG_REG58_TAG_valid_q_6_MASK) | (tag_valid_q_6 << MH_DEBUG_REG58_TAG_valid_q_6_SHIFT)
+#define MH_DEBUG_REG58_SET_ALWAYS_ZERO(mh_debug_reg58_reg, always_zero) \
+ mh_debug_reg58_reg = (mh_debug_reg58_reg & ~MH_DEBUG_REG58_ALWAYS_ZERO_MASK) | (always_zero << MH_DEBUG_REG58_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG58_SET_TAG7_VA(mh_debug_reg58_reg, tag7_va) \
+ mh_debug_reg58_reg = (mh_debug_reg58_reg & ~MH_DEBUG_REG58_TAG7_VA_MASK) | (tag7_va << MH_DEBUG_REG58_TAG7_VA_SHIFT)
+#define MH_DEBUG_REG58_SET_TAG_valid_q_7(mh_debug_reg58_reg, tag_valid_q_7) \
+ mh_debug_reg58_reg = (mh_debug_reg58_reg & ~MH_DEBUG_REG58_TAG_valid_q_7_MASK) | (tag_valid_q_7 << MH_DEBUG_REG58_TAG_valid_q_7_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg58_t {
+ unsigned int tag6_va : MH_DEBUG_REG58_TAG6_VA_SIZE;
+ unsigned int tag_valid_q_6 : MH_DEBUG_REG58_TAG_valid_q_6_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG58_ALWAYS_ZERO_SIZE;
+ unsigned int tag7_va : MH_DEBUG_REG58_TAG7_VA_SIZE;
+ unsigned int tag_valid_q_7 : MH_DEBUG_REG58_TAG_valid_q_7_SIZE;
+ unsigned int : 2;
+ } mh_debug_reg58_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg58_t {
+ unsigned int : 2;
+ unsigned int tag_valid_q_7 : MH_DEBUG_REG58_TAG_valid_q_7_SIZE;
+ unsigned int tag7_va : MH_DEBUG_REG58_TAG7_VA_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG58_ALWAYS_ZERO_SIZE;
+ unsigned int tag_valid_q_6 : MH_DEBUG_REG58_TAG_valid_q_6_SIZE;
+ unsigned int tag6_va : MH_DEBUG_REG58_TAG6_VA_SIZE;
+ } mh_debug_reg58_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg58_t f;
+} mh_debug_reg58_u;
+
+
+/*
+ * MH_DEBUG_REG59 struct
+ */
+
+#define MH_DEBUG_REG59_TAG8_VA_SIZE 13
+#define MH_DEBUG_REG59_TAG_valid_q_8_SIZE 1
+#define MH_DEBUG_REG59_ALWAYS_ZERO_SIZE 2
+#define MH_DEBUG_REG59_TAG9_VA_SIZE 13
+#define MH_DEBUG_REG59_TAG_valid_q_9_SIZE 1
+
+#define MH_DEBUG_REG59_TAG8_VA_SHIFT 0
+#define MH_DEBUG_REG59_TAG_valid_q_8_SHIFT 13
+#define MH_DEBUG_REG59_ALWAYS_ZERO_SHIFT 14
+#define MH_DEBUG_REG59_TAG9_VA_SHIFT 16
+#define MH_DEBUG_REG59_TAG_valid_q_9_SHIFT 29
+
+#define MH_DEBUG_REG59_TAG8_VA_MASK 0x00001fff
+#define MH_DEBUG_REG59_TAG_valid_q_8_MASK 0x00002000
+#define MH_DEBUG_REG59_ALWAYS_ZERO_MASK 0x0000c000
+#define MH_DEBUG_REG59_TAG9_VA_MASK 0x1fff0000
+#define MH_DEBUG_REG59_TAG_valid_q_9_MASK 0x20000000
+
+#define MH_DEBUG_REG59_MASK \
+ (MH_DEBUG_REG59_TAG8_VA_MASK | \
+ MH_DEBUG_REG59_TAG_valid_q_8_MASK | \
+ MH_DEBUG_REG59_ALWAYS_ZERO_MASK | \
+ MH_DEBUG_REG59_TAG9_VA_MASK | \
+ MH_DEBUG_REG59_TAG_valid_q_9_MASK)
+
+#define MH_DEBUG_REG59(tag8_va, tag_valid_q_8, always_zero, tag9_va, tag_valid_q_9) \
+ ((tag8_va << MH_DEBUG_REG59_TAG8_VA_SHIFT) | \
+ (tag_valid_q_8 << MH_DEBUG_REG59_TAG_valid_q_8_SHIFT) | \
+ (always_zero << MH_DEBUG_REG59_ALWAYS_ZERO_SHIFT) | \
+ (tag9_va << MH_DEBUG_REG59_TAG9_VA_SHIFT) | \
+ (tag_valid_q_9 << MH_DEBUG_REG59_TAG_valid_q_9_SHIFT))
+
+#define MH_DEBUG_REG59_GET_TAG8_VA(mh_debug_reg59) \
+ ((mh_debug_reg59 & MH_DEBUG_REG59_TAG8_VA_MASK) >> MH_DEBUG_REG59_TAG8_VA_SHIFT)
+#define MH_DEBUG_REG59_GET_TAG_valid_q_8(mh_debug_reg59) \
+ ((mh_debug_reg59 & MH_DEBUG_REG59_TAG_valid_q_8_MASK) >> MH_DEBUG_REG59_TAG_valid_q_8_SHIFT)
+#define MH_DEBUG_REG59_GET_ALWAYS_ZERO(mh_debug_reg59) \
+ ((mh_debug_reg59 & MH_DEBUG_REG59_ALWAYS_ZERO_MASK) >> MH_DEBUG_REG59_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG59_GET_TAG9_VA(mh_debug_reg59) \
+ ((mh_debug_reg59 & MH_DEBUG_REG59_TAG9_VA_MASK) >> MH_DEBUG_REG59_TAG9_VA_SHIFT)
+#define MH_DEBUG_REG59_GET_TAG_valid_q_9(mh_debug_reg59) \
+ ((mh_debug_reg59 & MH_DEBUG_REG59_TAG_valid_q_9_MASK) >> MH_DEBUG_REG59_TAG_valid_q_9_SHIFT)
+
+#define MH_DEBUG_REG59_SET_TAG8_VA(mh_debug_reg59_reg, tag8_va) \
+ mh_debug_reg59_reg = (mh_debug_reg59_reg & ~MH_DEBUG_REG59_TAG8_VA_MASK) | (tag8_va << MH_DEBUG_REG59_TAG8_VA_SHIFT)
+#define MH_DEBUG_REG59_SET_TAG_valid_q_8(mh_debug_reg59_reg, tag_valid_q_8) \
+ mh_debug_reg59_reg = (mh_debug_reg59_reg & ~MH_DEBUG_REG59_TAG_valid_q_8_MASK) | (tag_valid_q_8 << MH_DEBUG_REG59_TAG_valid_q_8_SHIFT)
+#define MH_DEBUG_REG59_SET_ALWAYS_ZERO(mh_debug_reg59_reg, always_zero) \
+ mh_debug_reg59_reg = (mh_debug_reg59_reg & ~MH_DEBUG_REG59_ALWAYS_ZERO_MASK) | (always_zero << MH_DEBUG_REG59_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG59_SET_TAG9_VA(mh_debug_reg59_reg, tag9_va) \
+ mh_debug_reg59_reg = (mh_debug_reg59_reg & ~MH_DEBUG_REG59_TAG9_VA_MASK) | (tag9_va << MH_DEBUG_REG59_TAG9_VA_SHIFT)
+#define MH_DEBUG_REG59_SET_TAG_valid_q_9(mh_debug_reg59_reg, tag_valid_q_9) \
+ mh_debug_reg59_reg = (mh_debug_reg59_reg & ~MH_DEBUG_REG59_TAG_valid_q_9_MASK) | (tag_valid_q_9 << MH_DEBUG_REG59_TAG_valid_q_9_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg59_t {
+ unsigned int tag8_va : MH_DEBUG_REG59_TAG8_VA_SIZE;
+ unsigned int tag_valid_q_8 : MH_DEBUG_REG59_TAG_valid_q_8_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG59_ALWAYS_ZERO_SIZE;
+ unsigned int tag9_va : MH_DEBUG_REG59_TAG9_VA_SIZE;
+ unsigned int tag_valid_q_9 : MH_DEBUG_REG59_TAG_valid_q_9_SIZE;
+ unsigned int : 2;
+ } mh_debug_reg59_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg59_t {
+ unsigned int : 2;
+ unsigned int tag_valid_q_9 : MH_DEBUG_REG59_TAG_valid_q_9_SIZE;
+ unsigned int tag9_va : MH_DEBUG_REG59_TAG9_VA_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG59_ALWAYS_ZERO_SIZE;
+ unsigned int tag_valid_q_8 : MH_DEBUG_REG59_TAG_valid_q_8_SIZE;
+ unsigned int tag8_va : MH_DEBUG_REG59_TAG8_VA_SIZE;
+ } mh_debug_reg59_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg59_t f;
+} mh_debug_reg59_u;
+
+
+/*
+ * MH_DEBUG_REG60 struct
+ */
+
+#define MH_DEBUG_REG60_TAG10_VA_SIZE 13
+#define MH_DEBUG_REG60_TAG_valid_q_10_SIZE 1
+#define MH_DEBUG_REG60_ALWAYS_ZERO_SIZE 2
+#define MH_DEBUG_REG60_TAG11_VA_SIZE 13
+#define MH_DEBUG_REG60_TAG_valid_q_11_SIZE 1
+
+#define MH_DEBUG_REG60_TAG10_VA_SHIFT 0
+#define MH_DEBUG_REG60_TAG_valid_q_10_SHIFT 13
+#define MH_DEBUG_REG60_ALWAYS_ZERO_SHIFT 14
+#define MH_DEBUG_REG60_TAG11_VA_SHIFT 16
+#define MH_DEBUG_REG60_TAG_valid_q_11_SHIFT 29
+
+#define MH_DEBUG_REG60_TAG10_VA_MASK 0x00001fff
+#define MH_DEBUG_REG60_TAG_valid_q_10_MASK 0x00002000
+#define MH_DEBUG_REG60_ALWAYS_ZERO_MASK 0x0000c000
+#define MH_DEBUG_REG60_TAG11_VA_MASK 0x1fff0000
+#define MH_DEBUG_REG60_TAG_valid_q_11_MASK 0x20000000
+
+#define MH_DEBUG_REG60_MASK \
+ (MH_DEBUG_REG60_TAG10_VA_MASK | \
+ MH_DEBUG_REG60_TAG_valid_q_10_MASK | \
+ MH_DEBUG_REG60_ALWAYS_ZERO_MASK | \
+ MH_DEBUG_REG60_TAG11_VA_MASK | \
+ MH_DEBUG_REG60_TAG_valid_q_11_MASK)
+
+#define MH_DEBUG_REG60(tag10_va, tag_valid_q_10, always_zero, tag11_va, tag_valid_q_11) \
+ ((tag10_va << MH_DEBUG_REG60_TAG10_VA_SHIFT) | \
+ (tag_valid_q_10 << MH_DEBUG_REG60_TAG_valid_q_10_SHIFT) | \
+ (always_zero << MH_DEBUG_REG60_ALWAYS_ZERO_SHIFT) | \
+ (tag11_va << MH_DEBUG_REG60_TAG11_VA_SHIFT) | \
+ (tag_valid_q_11 << MH_DEBUG_REG60_TAG_valid_q_11_SHIFT))
+
+#define MH_DEBUG_REG60_GET_TAG10_VA(mh_debug_reg60) \
+ ((mh_debug_reg60 & MH_DEBUG_REG60_TAG10_VA_MASK) >> MH_DEBUG_REG60_TAG10_VA_SHIFT)
+#define MH_DEBUG_REG60_GET_TAG_valid_q_10(mh_debug_reg60) \
+ ((mh_debug_reg60 & MH_DEBUG_REG60_TAG_valid_q_10_MASK) >> MH_DEBUG_REG60_TAG_valid_q_10_SHIFT)
+#define MH_DEBUG_REG60_GET_ALWAYS_ZERO(mh_debug_reg60) \
+ ((mh_debug_reg60 & MH_DEBUG_REG60_ALWAYS_ZERO_MASK) >> MH_DEBUG_REG60_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG60_GET_TAG11_VA(mh_debug_reg60) \
+ ((mh_debug_reg60 & MH_DEBUG_REG60_TAG11_VA_MASK) >> MH_DEBUG_REG60_TAG11_VA_SHIFT)
+#define MH_DEBUG_REG60_GET_TAG_valid_q_11(mh_debug_reg60) \
+ ((mh_debug_reg60 & MH_DEBUG_REG60_TAG_valid_q_11_MASK) >> MH_DEBUG_REG60_TAG_valid_q_11_SHIFT)
+
+#define MH_DEBUG_REG60_SET_TAG10_VA(mh_debug_reg60_reg, tag10_va) \
+ mh_debug_reg60_reg = (mh_debug_reg60_reg & ~MH_DEBUG_REG60_TAG10_VA_MASK) | (tag10_va << MH_DEBUG_REG60_TAG10_VA_SHIFT)
+#define MH_DEBUG_REG60_SET_TAG_valid_q_10(mh_debug_reg60_reg, tag_valid_q_10) \
+ mh_debug_reg60_reg = (mh_debug_reg60_reg & ~MH_DEBUG_REG60_TAG_valid_q_10_MASK) | (tag_valid_q_10 << MH_DEBUG_REG60_TAG_valid_q_10_SHIFT)
+#define MH_DEBUG_REG60_SET_ALWAYS_ZERO(mh_debug_reg60_reg, always_zero) \
+ mh_debug_reg60_reg = (mh_debug_reg60_reg & ~MH_DEBUG_REG60_ALWAYS_ZERO_MASK) | (always_zero << MH_DEBUG_REG60_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG60_SET_TAG11_VA(mh_debug_reg60_reg, tag11_va) \
+ mh_debug_reg60_reg = (mh_debug_reg60_reg & ~MH_DEBUG_REG60_TAG11_VA_MASK) | (tag11_va << MH_DEBUG_REG60_TAG11_VA_SHIFT)
+#define MH_DEBUG_REG60_SET_TAG_valid_q_11(mh_debug_reg60_reg, tag_valid_q_11) \
+ mh_debug_reg60_reg = (mh_debug_reg60_reg & ~MH_DEBUG_REG60_TAG_valid_q_11_MASK) | (tag_valid_q_11 << MH_DEBUG_REG60_TAG_valid_q_11_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg60_t {
+ unsigned int tag10_va : MH_DEBUG_REG60_TAG10_VA_SIZE;
+ unsigned int tag_valid_q_10 : MH_DEBUG_REG60_TAG_valid_q_10_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG60_ALWAYS_ZERO_SIZE;
+ unsigned int tag11_va : MH_DEBUG_REG60_TAG11_VA_SIZE;
+ unsigned int tag_valid_q_11 : MH_DEBUG_REG60_TAG_valid_q_11_SIZE;
+ unsigned int : 2;
+ } mh_debug_reg60_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg60_t {
+ unsigned int : 2;
+ unsigned int tag_valid_q_11 : MH_DEBUG_REG60_TAG_valid_q_11_SIZE;
+ unsigned int tag11_va : MH_DEBUG_REG60_TAG11_VA_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG60_ALWAYS_ZERO_SIZE;
+ unsigned int tag_valid_q_10 : MH_DEBUG_REG60_TAG_valid_q_10_SIZE;
+ unsigned int tag10_va : MH_DEBUG_REG60_TAG10_VA_SIZE;
+ } mh_debug_reg60_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg60_t f;
+} mh_debug_reg60_u;
+
+
+/*
+ * MH_DEBUG_REG61 struct
+ */
+
+#define MH_DEBUG_REG61_TAG12_VA_SIZE 13
+#define MH_DEBUG_REG61_TAG_valid_q_12_SIZE 1
+#define MH_DEBUG_REG61_ALWAYS_ZERO_SIZE 2
+#define MH_DEBUG_REG61_TAG13_VA_SIZE 13
+#define MH_DEBUG_REG61_TAG_valid_q_13_SIZE 1
+
+#define MH_DEBUG_REG61_TAG12_VA_SHIFT 0
+#define MH_DEBUG_REG61_TAG_valid_q_12_SHIFT 13
+#define MH_DEBUG_REG61_ALWAYS_ZERO_SHIFT 14
+#define MH_DEBUG_REG61_TAG13_VA_SHIFT 16
+#define MH_DEBUG_REG61_TAG_valid_q_13_SHIFT 29
+
+#define MH_DEBUG_REG61_TAG12_VA_MASK 0x00001fff
+#define MH_DEBUG_REG61_TAG_valid_q_12_MASK 0x00002000
+#define MH_DEBUG_REG61_ALWAYS_ZERO_MASK 0x0000c000
+#define MH_DEBUG_REG61_TAG13_VA_MASK 0x1fff0000
+#define MH_DEBUG_REG61_TAG_valid_q_13_MASK 0x20000000
+
+#define MH_DEBUG_REG61_MASK \
+ (MH_DEBUG_REG61_TAG12_VA_MASK | \
+ MH_DEBUG_REG61_TAG_valid_q_12_MASK | \
+ MH_DEBUG_REG61_ALWAYS_ZERO_MASK | \
+ MH_DEBUG_REG61_TAG13_VA_MASK | \
+ MH_DEBUG_REG61_TAG_valid_q_13_MASK)
+
+#define MH_DEBUG_REG61(tag12_va, tag_valid_q_12, always_zero, tag13_va, tag_valid_q_13) \
+ ((tag12_va << MH_DEBUG_REG61_TAG12_VA_SHIFT) | \
+ (tag_valid_q_12 << MH_DEBUG_REG61_TAG_valid_q_12_SHIFT) | \
+ (always_zero << MH_DEBUG_REG61_ALWAYS_ZERO_SHIFT) | \
+ (tag13_va << MH_DEBUG_REG61_TAG13_VA_SHIFT) | \
+ (tag_valid_q_13 << MH_DEBUG_REG61_TAG_valid_q_13_SHIFT))
+
+#define MH_DEBUG_REG61_GET_TAG12_VA(mh_debug_reg61) \
+ ((mh_debug_reg61 & MH_DEBUG_REG61_TAG12_VA_MASK) >> MH_DEBUG_REG61_TAG12_VA_SHIFT)
+#define MH_DEBUG_REG61_GET_TAG_valid_q_12(mh_debug_reg61) \
+ ((mh_debug_reg61 & MH_DEBUG_REG61_TAG_valid_q_12_MASK) >> MH_DEBUG_REG61_TAG_valid_q_12_SHIFT)
+#define MH_DEBUG_REG61_GET_ALWAYS_ZERO(mh_debug_reg61) \
+ ((mh_debug_reg61 & MH_DEBUG_REG61_ALWAYS_ZERO_MASK) >> MH_DEBUG_REG61_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG61_GET_TAG13_VA(mh_debug_reg61) \
+ ((mh_debug_reg61 & MH_DEBUG_REG61_TAG13_VA_MASK) >> MH_DEBUG_REG61_TAG13_VA_SHIFT)
+#define MH_DEBUG_REG61_GET_TAG_valid_q_13(mh_debug_reg61) \
+ ((mh_debug_reg61 & MH_DEBUG_REG61_TAG_valid_q_13_MASK) >> MH_DEBUG_REG61_TAG_valid_q_13_SHIFT)
+
+#define MH_DEBUG_REG61_SET_TAG12_VA(mh_debug_reg61_reg, tag12_va) \
+ mh_debug_reg61_reg = (mh_debug_reg61_reg & ~MH_DEBUG_REG61_TAG12_VA_MASK) | (tag12_va << MH_DEBUG_REG61_TAG12_VA_SHIFT)
+#define MH_DEBUG_REG61_SET_TAG_valid_q_12(mh_debug_reg61_reg, tag_valid_q_12) \
+ mh_debug_reg61_reg = (mh_debug_reg61_reg & ~MH_DEBUG_REG61_TAG_valid_q_12_MASK) | (tag_valid_q_12 << MH_DEBUG_REG61_TAG_valid_q_12_SHIFT)
+#define MH_DEBUG_REG61_SET_ALWAYS_ZERO(mh_debug_reg61_reg, always_zero) \
+ mh_debug_reg61_reg = (mh_debug_reg61_reg & ~MH_DEBUG_REG61_ALWAYS_ZERO_MASK) | (always_zero << MH_DEBUG_REG61_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG61_SET_TAG13_VA(mh_debug_reg61_reg, tag13_va) \
+ mh_debug_reg61_reg = (mh_debug_reg61_reg & ~MH_DEBUG_REG61_TAG13_VA_MASK) | (tag13_va << MH_DEBUG_REG61_TAG13_VA_SHIFT)
+#define MH_DEBUG_REG61_SET_TAG_valid_q_13(mh_debug_reg61_reg, tag_valid_q_13) \
+ mh_debug_reg61_reg = (mh_debug_reg61_reg & ~MH_DEBUG_REG61_TAG_valid_q_13_MASK) | (tag_valid_q_13 << MH_DEBUG_REG61_TAG_valid_q_13_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg61_t {
+ unsigned int tag12_va : MH_DEBUG_REG61_TAG12_VA_SIZE;
+ unsigned int tag_valid_q_12 : MH_DEBUG_REG61_TAG_valid_q_12_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG61_ALWAYS_ZERO_SIZE;
+ unsigned int tag13_va : MH_DEBUG_REG61_TAG13_VA_SIZE;
+ unsigned int tag_valid_q_13 : MH_DEBUG_REG61_TAG_valid_q_13_SIZE;
+ unsigned int : 2;
+ } mh_debug_reg61_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg61_t {
+ unsigned int : 2;
+ unsigned int tag_valid_q_13 : MH_DEBUG_REG61_TAG_valid_q_13_SIZE;
+ unsigned int tag13_va : MH_DEBUG_REG61_TAG13_VA_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG61_ALWAYS_ZERO_SIZE;
+ unsigned int tag_valid_q_12 : MH_DEBUG_REG61_TAG_valid_q_12_SIZE;
+ unsigned int tag12_va : MH_DEBUG_REG61_TAG12_VA_SIZE;
+ } mh_debug_reg61_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg61_t f;
+} mh_debug_reg61_u;
+
+
+/*
+ * MH_DEBUG_REG62 struct
+ */
+
+#define MH_DEBUG_REG62_TAG14_VA_SIZE 13
+#define MH_DEBUG_REG62_TAG_valid_q_14_SIZE 1
+#define MH_DEBUG_REG62_ALWAYS_ZERO_SIZE 2
+#define MH_DEBUG_REG62_TAG15_VA_SIZE 13
+#define MH_DEBUG_REG62_TAG_valid_q_15_SIZE 1
+
+#define MH_DEBUG_REG62_TAG14_VA_SHIFT 0
+#define MH_DEBUG_REG62_TAG_valid_q_14_SHIFT 13
+#define MH_DEBUG_REG62_ALWAYS_ZERO_SHIFT 14
+#define MH_DEBUG_REG62_TAG15_VA_SHIFT 16
+#define MH_DEBUG_REG62_TAG_valid_q_15_SHIFT 29
+
+#define MH_DEBUG_REG62_TAG14_VA_MASK 0x00001fff
+#define MH_DEBUG_REG62_TAG_valid_q_14_MASK 0x00002000
+#define MH_DEBUG_REG62_ALWAYS_ZERO_MASK 0x0000c000
+#define MH_DEBUG_REG62_TAG15_VA_MASK 0x1fff0000
+#define MH_DEBUG_REG62_TAG_valid_q_15_MASK 0x20000000
+
+#define MH_DEBUG_REG62_MASK \
+ (MH_DEBUG_REG62_TAG14_VA_MASK | \
+ MH_DEBUG_REG62_TAG_valid_q_14_MASK | \
+ MH_DEBUG_REG62_ALWAYS_ZERO_MASK | \
+ MH_DEBUG_REG62_TAG15_VA_MASK | \
+ MH_DEBUG_REG62_TAG_valid_q_15_MASK)
+
+#define MH_DEBUG_REG62(tag14_va, tag_valid_q_14, always_zero, tag15_va, tag_valid_q_15) \
+ ((tag14_va << MH_DEBUG_REG62_TAG14_VA_SHIFT) | \
+ (tag_valid_q_14 << MH_DEBUG_REG62_TAG_valid_q_14_SHIFT) | \
+ (always_zero << MH_DEBUG_REG62_ALWAYS_ZERO_SHIFT) | \
+ (tag15_va << MH_DEBUG_REG62_TAG15_VA_SHIFT) | \
+ (tag_valid_q_15 << MH_DEBUG_REG62_TAG_valid_q_15_SHIFT))
+
+#define MH_DEBUG_REG62_GET_TAG14_VA(mh_debug_reg62) \
+ ((mh_debug_reg62 & MH_DEBUG_REG62_TAG14_VA_MASK) >> MH_DEBUG_REG62_TAG14_VA_SHIFT)
+#define MH_DEBUG_REG62_GET_TAG_valid_q_14(mh_debug_reg62) \
+ ((mh_debug_reg62 & MH_DEBUG_REG62_TAG_valid_q_14_MASK) >> MH_DEBUG_REG62_TAG_valid_q_14_SHIFT)
+#define MH_DEBUG_REG62_GET_ALWAYS_ZERO(mh_debug_reg62) \
+ ((mh_debug_reg62 & MH_DEBUG_REG62_ALWAYS_ZERO_MASK) >> MH_DEBUG_REG62_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG62_GET_TAG15_VA(mh_debug_reg62) \
+ ((mh_debug_reg62 & MH_DEBUG_REG62_TAG15_VA_MASK) >> MH_DEBUG_REG62_TAG15_VA_SHIFT)
+#define MH_DEBUG_REG62_GET_TAG_valid_q_15(mh_debug_reg62) \
+ ((mh_debug_reg62 & MH_DEBUG_REG62_TAG_valid_q_15_MASK) >> MH_DEBUG_REG62_TAG_valid_q_15_SHIFT)
+
+#define MH_DEBUG_REG62_SET_TAG14_VA(mh_debug_reg62_reg, tag14_va) \
+ mh_debug_reg62_reg = (mh_debug_reg62_reg & ~MH_DEBUG_REG62_TAG14_VA_MASK) | (tag14_va << MH_DEBUG_REG62_TAG14_VA_SHIFT)
+#define MH_DEBUG_REG62_SET_TAG_valid_q_14(mh_debug_reg62_reg, tag_valid_q_14) \
+ mh_debug_reg62_reg = (mh_debug_reg62_reg & ~MH_DEBUG_REG62_TAG_valid_q_14_MASK) | (tag_valid_q_14 << MH_DEBUG_REG62_TAG_valid_q_14_SHIFT)
+#define MH_DEBUG_REG62_SET_ALWAYS_ZERO(mh_debug_reg62_reg, always_zero) \
+ mh_debug_reg62_reg = (mh_debug_reg62_reg & ~MH_DEBUG_REG62_ALWAYS_ZERO_MASK) | (always_zero << MH_DEBUG_REG62_ALWAYS_ZERO_SHIFT)
+#define MH_DEBUG_REG62_SET_TAG15_VA(mh_debug_reg62_reg, tag15_va) \
+ mh_debug_reg62_reg = (mh_debug_reg62_reg & ~MH_DEBUG_REG62_TAG15_VA_MASK) | (tag15_va << MH_DEBUG_REG62_TAG15_VA_SHIFT)
+#define MH_DEBUG_REG62_SET_TAG_valid_q_15(mh_debug_reg62_reg, tag_valid_q_15) \
+ mh_debug_reg62_reg = (mh_debug_reg62_reg & ~MH_DEBUG_REG62_TAG_valid_q_15_MASK) | (tag_valid_q_15 << MH_DEBUG_REG62_TAG_valid_q_15_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg62_t {
+ unsigned int tag14_va : MH_DEBUG_REG62_TAG14_VA_SIZE;
+ unsigned int tag_valid_q_14 : MH_DEBUG_REG62_TAG_valid_q_14_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG62_ALWAYS_ZERO_SIZE;
+ unsigned int tag15_va : MH_DEBUG_REG62_TAG15_VA_SIZE;
+ unsigned int tag_valid_q_15 : MH_DEBUG_REG62_TAG_valid_q_15_SIZE;
+ unsigned int : 2;
+ } mh_debug_reg62_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg62_t {
+ unsigned int : 2;
+ unsigned int tag_valid_q_15 : MH_DEBUG_REG62_TAG_valid_q_15_SIZE;
+ unsigned int tag15_va : MH_DEBUG_REG62_TAG15_VA_SIZE;
+ unsigned int always_zero : MH_DEBUG_REG62_ALWAYS_ZERO_SIZE;
+ unsigned int tag_valid_q_14 : MH_DEBUG_REG62_TAG_valid_q_14_SIZE;
+ unsigned int tag14_va : MH_DEBUG_REG62_TAG14_VA_SIZE;
+ } mh_debug_reg62_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg62_t f;
+} mh_debug_reg62_u;
+
+
+/*
+ * MH_DEBUG_REG63 struct
+ */
+
+#define MH_DEBUG_REG63_MH_DBG_DEFAULT_SIZE 32
+
+#define MH_DEBUG_REG63_MH_DBG_DEFAULT_SHIFT 0
+
+#define MH_DEBUG_REG63_MH_DBG_DEFAULT_MASK 0xffffffff
+
+#define MH_DEBUG_REG63_MASK \
+ (MH_DEBUG_REG63_MH_DBG_DEFAULT_MASK)
+
+#define MH_DEBUG_REG63(mh_dbg_default) \
+ ((mh_dbg_default << MH_DEBUG_REG63_MH_DBG_DEFAULT_SHIFT))
+
+#define MH_DEBUG_REG63_GET_MH_DBG_DEFAULT(mh_debug_reg63) \
+ ((mh_debug_reg63 & MH_DEBUG_REG63_MH_DBG_DEFAULT_MASK) >> MH_DEBUG_REG63_MH_DBG_DEFAULT_SHIFT)
+
+#define MH_DEBUG_REG63_SET_MH_DBG_DEFAULT(mh_debug_reg63_reg, mh_dbg_default) \
+ mh_debug_reg63_reg = (mh_debug_reg63_reg & ~MH_DEBUG_REG63_MH_DBG_DEFAULT_MASK) | (mh_dbg_default << MH_DEBUG_REG63_MH_DBG_DEFAULT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg63_t {
+ unsigned int mh_dbg_default : MH_DEBUG_REG63_MH_DBG_DEFAULT_SIZE;
+ } mh_debug_reg63_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_debug_reg63_t {
+ unsigned int mh_dbg_default : MH_DEBUG_REG63_MH_DBG_DEFAULT_SIZE;
+ } mh_debug_reg63_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_debug_reg63_t f;
+} mh_debug_reg63_u;
+
+
+/*
+ * MH_MMU_CONFIG struct
+ */
+
+#define MH_MMU_CONFIG_MMU_ENABLE_SIZE 1
+#define MH_MMU_CONFIG_SPLIT_MODE_ENABLE_SIZE 1
+#define MH_MMU_CONFIG_RESERVED1_SIZE 2
+#define MH_MMU_CONFIG_RB_W_CLNT_BEHAVIOR_SIZE 2
+#define MH_MMU_CONFIG_CP_W_CLNT_BEHAVIOR_SIZE 2
+#define MH_MMU_CONFIG_CP_R0_CLNT_BEHAVIOR_SIZE 2
+#define MH_MMU_CONFIG_CP_R1_CLNT_BEHAVIOR_SIZE 2
+#define MH_MMU_CONFIG_CP_R2_CLNT_BEHAVIOR_SIZE 2
+#define MH_MMU_CONFIG_CP_R3_CLNT_BEHAVIOR_SIZE 2
+#define MH_MMU_CONFIG_CP_R4_CLNT_BEHAVIOR_SIZE 2
+#define MH_MMU_CONFIG_VGT_R0_CLNT_BEHAVIOR_SIZE 2
+#define MH_MMU_CONFIG_VGT_R1_CLNT_BEHAVIOR_SIZE 2
+#define MH_MMU_CONFIG_TC_R_CLNT_BEHAVIOR_SIZE 2
+#define MH_MMU_CONFIG_PA_W_CLNT_BEHAVIOR_SIZE 2
+
+#define MH_MMU_CONFIG_MMU_ENABLE_SHIFT 0
+#define MH_MMU_CONFIG_SPLIT_MODE_ENABLE_SHIFT 1
+#define MH_MMU_CONFIG_RESERVED1_SHIFT 2
+#define MH_MMU_CONFIG_RB_W_CLNT_BEHAVIOR_SHIFT 4
+#define MH_MMU_CONFIG_CP_W_CLNT_BEHAVIOR_SHIFT 6
+#define MH_MMU_CONFIG_CP_R0_CLNT_BEHAVIOR_SHIFT 8
+#define MH_MMU_CONFIG_CP_R1_CLNT_BEHAVIOR_SHIFT 10
+#define MH_MMU_CONFIG_CP_R2_CLNT_BEHAVIOR_SHIFT 12
+#define MH_MMU_CONFIG_CP_R3_CLNT_BEHAVIOR_SHIFT 14
+#define MH_MMU_CONFIG_CP_R4_CLNT_BEHAVIOR_SHIFT 16
+#define MH_MMU_CONFIG_VGT_R0_CLNT_BEHAVIOR_SHIFT 18
+#define MH_MMU_CONFIG_VGT_R1_CLNT_BEHAVIOR_SHIFT 20
+#define MH_MMU_CONFIG_TC_R_CLNT_BEHAVIOR_SHIFT 22
+#define MH_MMU_CONFIG_PA_W_CLNT_BEHAVIOR_SHIFT 24
+
+#define MH_MMU_CONFIG_MMU_ENABLE_MASK 0x00000001
+#define MH_MMU_CONFIG_SPLIT_MODE_ENABLE_MASK 0x00000002
+#define MH_MMU_CONFIG_RESERVED1_MASK 0x0000000c
+#define MH_MMU_CONFIG_RB_W_CLNT_BEHAVIOR_MASK 0x00000030
+#define MH_MMU_CONFIG_CP_W_CLNT_BEHAVIOR_MASK 0x000000c0
+#define MH_MMU_CONFIG_CP_R0_CLNT_BEHAVIOR_MASK 0x00000300
+#define MH_MMU_CONFIG_CP_R1_CLNT_BEHAVIOR_MASK 0x00000c00
+#define MH_MMU_CONFIG_CP_R2_CLNT_BEHAVIOR_MASK 0x00003000
+#define MH_MMU_CONFIG_CP_R3_CLNT_BEHAVIOR_MASK 0x0000c000
+#define MH_MMU_CONFIG_CP_R4_CLNT_BEHAVIOR_MASK 0x00030000
+#define MH_MMU_CONFIG_VGT_R0_CLNT_BEHAVIOR_MASK 0x000c0000
+#define MH_MMU_CONFIG_VGT_R1_CLNT_BEHAVIOR_MASK 0x00300000
+#define MH_MMU_CONFIG_TC_R_CLNT_BEHAVIOR_MASK 0x00c00000
+#define MH_MMU_CONFIG_PA_W_CLNT_BEHAVIOR_MASK 0x03000000
+
+#define MH_MMU_CONFIG_MASK \
+ (MH_MMU_CONFIG_MMU_ENABLE_MASK | \
+ MH_MMU_CONFIG_SPLIT_MODE_ENABLE_MASK | \
+ MH_MMU_CONFIG_RESERVED1_MASK | \
+ MH_MMU_CONFIG_RB_W_CLNT_BEHAVIOR_MASK | \
+ MH_MMU_CONFIG_CP_W_CLNT_BEHAVIOR_MASK | \
+ MH_MMU_CONFIG_CP_R0_CLNT_BEHAVIOR_MASK | \
+ MH_MMU_CONFIG_CP_R1_CLNT_BEHAVIOR_MASK | \
+ MH_MMU_CONFIG_CP_R2_CLNT_BEHAVIOR_MASK | \
+ MH_MMU_CONFIG_CP_R3_CLNT_BEHAVIOR_MASK | \
+ MH_MMU_CONFIG_CP_R4_CLNT_BEHAVIOR_MASK | \
+ MH_MMU_CONFIG_VGT_R0_CLNT_BEHAVIOR_MASK | \
+ MH_MMU_CONFIG_VGT_R1_CLNT_BEHAVIOR_MASK | \
+ MH_MMU_CONFIG_TC_R_CLNT_BEHAVIOR_MASK | \
+ MH_MMU_CONFIG_PA_W_CLNT_BEHAVIOR_MASK)
+
+#define MH_MMU_CONFIG(mmu_enable, split_mode_enable, reserved1, rb_w_clnt_behavior, cp_w_clnt_behavior, cp_r0_clnt_behavior, cp_r1_clnt_behavior, cp_r2_clnt_behavior, cp_r3_clnt_behavior, cp_r4_clnt_behavior, vgt_r0_clnt_behavior, vgt_r1_clnt_behavior, tc_r_clnt_behavior, pa_w_clnt_behavior) \
+ ((mmu_enable << MH_MMU_CONFIG_MMU_ENABLE_SHIFT) | \
+ (split_mode_enable << MH_MMU_CONFIG_SPLIT_MODE_ENABLE_SHIFT) | \
+ (reserved1 << MH_MMU_CONFIG_RESERVED1_SHIFT) | \
+ (rb_w_clnt_behavior << MH_MMU_CONFIG_RB_W_CLNT_BEHAVIOR_SHIFT) | \
+ (cp_w_clnt_behavior << MH_MMU_CONFIG_CP_W_CLNT_BEHAVIOR_SHIFT) | \
+ (cp_r0_clnt_behavior << MH_MMU_CONFIG_CP_R0_CLNT_BEHAVIOR_SHIFT) | \
+ (cp_r1_clnt_behavior << MH_MMU_CONFIG_CP_R1_CLNT_BEHAVIOR_SHIFT) | \
+ (cp_r2_clnt_behavior << MH_MMU_CONFIG_CP_R2_CLNT_BEHAVIOR_SHIFT) | \
+ (cp_r3_clnt_behavior << MH_MMU_CONFIG_CP_R3_CLNT_BEHAVIOR_SHIFT) | \
+ (cp_r4_clnt_behavior << MH_MMU_CONFIG_CP_R4_CLNT_BEHAVIOR_SHIFT) | \
+ (vgt_r0_clnt_behavior << MH_MMU_CONFIG_VGT_R0_CLNT_BEHAVIOR_SHIFT) | \
+ (vgt_r1_clnt_behavior << MH_MMU_CONFIG_VGT_R1_CLNT_BEHAVIOR_SHIFT) | \
+ (tc_r_clnt_behavior << MH_MMU_CONFIG_TC_R_CLNT_BEHAVIOR_SHIFT) | \
+ (pa_w_clnt_behavior << MH_MMU_CONFIG_PA_W_CLNT_BEHAVIOR_SHIFT))
+
+#define MH_MMU_CONFIG_GET_MMU_ENABLE(mh_mmu_config) \
+ ((mh_mmu_config & MH_MMU_CONFIG_MMU_ENABLE_MASK) >> MH_MMU_CONFIG_MMU_ENABLE_SHIFT)
+#define MH_MMU_CONFIG_GET_SPLIT_MODE_ENABLE(mh_mmu_config) \
+ ((mh_mmu_config & MH_MMU_CONFIG_SPLIT_MODE_ENABLE_MASK) >> MH_MMU_CONFIG_SPLIT_MODE_ENABLE_SHIFT)
+#define MH_MMU_CONFIG_GET_RESERVED1(mh_mmu_config) \
+ ((mh_mmu_config & MH_MMU_CONFIG_RESERVED1_MASK) >> MH_MMU_CONFIG_RESERVED1_SHIFT)
+#define MH_MMU_CONFIG_GET_RB_W_CLNT_BEHAVIOR(mh_mmu_config) \
+ ((mh_mmu_config & MH_MMU_CONFIG_RB_W_CLNT_BEHAVIOR_MASK) >> MH_MMU_CONFIG_RB_W_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_GET_CP_W_CLNT_BEHAVIOR(mh_mmu_config) \
+ ((mh_mmu_config & MH_MMU_CONFIG_CP_W_CLNT_BEHAVIOR_MASK) >> MH_MMU_CONFIG_CP_W_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_GET_CP_R0_CLNT_BEHAVIOR(mh_mmu_config) \
+ ((mh_mmu_config & MH_MMU_CONFIG_CP_R0_CLNT_BEHAVIOR_MASK) >> MH_MMU_CONFIG_CP_R0_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_GET_CP_R1_CLNT_BEHAVIOR(mh_mmu_config) \
+ ((mh_mmu_config & MH_MMU_CONFIG_CP_R1_CLNT_BEHAVIOR_MASK) >> MH_MMU_CONFIG_CP_R1_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_GET_CP_R2_CLNT_BEHAVIOR(mh_mmu_config) \
+ ((mh_mmu_config & MH_MMU_CONFIG_CP_R2_CLNT_BEHAVIOR_MASK) >> MH_MMU_CONFIG_CP_R2_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_GET_CP_R3_CLNT_BEHAVIOR(mh_mmu_config) \
+ ((mh_mmu_config & MH_MMU_CONFIG_CP_R3_CLNT_BEHAVIOR_MASK) >> MH_MMU_CONFIG_CP_R3_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_GET_CP_R4_CLNT_BEHAVIOR(mh_mmu_config) \
+ ((mh_mmu_config & MH_MMU_CONFIG_CP_R4_CLNT_BEHAVIOR_MASK) >> MH_MMU_CONFIG_CP_R4_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_GET_VGT_R0_CLNT_BEHAVIOR(mh_mmu_config) \
+ ((mh_mmu_config & MH_MMU_CONFIG_VGT_R0_CLNT_BEHAVIOR_MASK) >> MH_MMU_CONFIG_VGT_R0_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_GET_VGT_R1_CLNT_BEHAVIOR(mh_mmu_config) \
+ ((mh_mmu_config & MH_MMU_CONFIG_VGT_R1_CLNT_BEHAVIOR_MASK) >> MH_MMU_CONFIG_VGT_R1_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_GET_TC_R_CLNT_BEHAVIOR(mh_mmu_config) \
+ ((mh_mmu_config & MH_MMU_CONFIG_TC_R_CLNT_BEHAVIOR_MASK) >> MH_MMU_CONFIG_TC_R_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_GET_PA_W_CLNT_BEHAVIOR(mh_mmu_config) \
+ ((mh_mmu_config & MH_MMU_CONFIG_PA_W_CLNT_BEHAVIOR_MASK) >> MH_MMU_CONFIG_PA_W_CLNT_BEHAVIOR_SHIFT)
+
+#define MH_MMU_CONFIG_SET_MMU_ENABLE(mh_mmu_config_reg, mmu_enable) \
+ mh_mmu_config_reg = (mh_mmu_config_reg & ~MH_MMU_CONFIG_MMU_ENABLE_MASK) | (mmu_enable << MH_MMU_CONFIG_MMU_ENABLE_SHIFT)
+#define MH_MMU_CONFIG_SET_SPLIT_MODE_ENABLE(mh_mmu_config_reg, split_mode_enable) \
+ mh_mmu_config_reg = (mh_mmu_config_reg & ~MH_MMU_CONFIG_SPLIT_MODE_ENABLE_MASK) | (split_mode_enable << MH_MMU_CONFIG_SPLIT_MODE_ENABLE_SHIFT)
+#define MH_MMU_CONFIG_SET_RESERVED1(mh_mmu_config_reg, reserved1) \
+ mh_mmu_config_reg = (mh_mmu_config_reg & ~MH_MMU_CONFIG_RESERVED1_MASK) | (reserved1 << MH_MMU_CONFIG_RESERVED1_SHIFT)
+#define MH_MMU_CONFIG_SET_RB_W_CLNT_BEHAVIOR(mh_mmu_config_reg, rb_w_clnt_behavior) \
+ mh_mmu_config_reg = (mh_mmu_config_reg & ~MH_MMU_CONFIG_RB_W_CLNT_BEHAVIOR_MASK) | (rb_w_clnt_behavior << MH_MMU_CONFIG_RB_W_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_SET_CP_W_CLNT_BEHAVIOR(mh_mmu_config_reg, cp_w_clnt_behavior) \
+ mh_mmu_config_reg = (mh_mmu_config_reg & ~MH_MMU_CONFIG_CP_W_CLNT_BEHAVIOR_MASK) | (cp_w_clnt_behavior << MH_MMU_CONFIG_CP_W_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_SET_CP_R0_CLNT_BEHAVIOR(mh_mmu_config_reg, cp_r0_clnt_behavior) \
+ mh_mmu_config_reg = (mh_mmu_config_reg & ~MH_MMU_CONFIG_CP_R0_CLNT_BEHAVIOR_MASK) | (cp_r0_clnt_behavior << MH_MMU_CONFIG_CP_R0_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_SET_CP_R1_CLNT_BEHAVIOR(mh_mmu_config_reg, cp_r1_clnt_behavior) \
+ mh_mmu_config_reg = (mh_mmu_config_reg & ~MH_MMU_CONFIG_CP_R1_CLNT_BEHAVIOR_MASK) | (cp_r1_clnt_behavior << MH_MMU_CONFIG_CP_R1_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_SET_CP_R2_CLNT_BEHAVIOR(mh_mmu_config_reg, cp_r2_clnt_behavior) \
+ mh_mmu_config_reg = (mh_mmu_config_reg & ~MH_MMU_CONFIG_CP_R2_CLNT_BEHAVIOR_MASK) | (cp_r2_clnt_behavior << MH_MMU_CONFIG_CP_R2_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_SET_CP_R3_CLNT_BEHAVIOR(mh_mmu_config_reg, cp_r3_clnt_behavior) \
+ mh_mmu_config_reg = (mh_mmu_config_reg & ~MH_MMU_CONFIG_CP_R3_CLNT_BEHAVIOR_MASK) | (cp_r3_clnt_behavior << MH_MMU_CONFIG_CP_R3_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_SET_CP_R4_CLNT_BEHAVIOR(mh_mmu_config_reg, cp_r4_clnt_behavior) \
+ mh_mmu_config_reg = (mh_mmu_config_reg & ~MH_MMU_CONFIG_CP_R4_CLNT_BEHAVIOR_MASK) | (cp_r4_clnt_behavior << MH_MMU_CONFIG_CP_R4_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_SET_VGT_R0_CLNT_BEHAVIOR(mh_mmu_config_reg, vgt_r0_clnt_behavior) \
+ mh_mmu_config_reg = (mh_mmu_config_reg & ~MH_MMU_CONFIG_VGT_R0_CLNT_BEHAVIOR_MASK) | (vgt_r0_clnt_behavior << MH_MMU_CONFIG_VGT_R0_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_SET_VGT_R1_CLNT_BEHAVIOR(mh_mmu_config_reg, vgt_r1_clnt_behavior) \
+ mh_mmu_config_reg = (mh_mmu_config_reg & ~MH_MMU_CONFIG_VGT_R1_CLNT_BEHAVIOR_MASK) | (vgt_r1_clnt_behavior << MH_MMU_CONFIG_VGT_R1_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_SET_TC_R_CLNT_BEHAVIOR(mh_mmu_config_reg, tc_r_clnt_behavior) \
+ mh_mmu_config_reg = (mh_mmu_config_reg & ~MH_MMU_CONFIG_TC_R_CLNT_BEHAVIOR_MASK) | (tc_r_clnt_behavior << MH_MMU_CONFIG_TC_R_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_CONFIG_SET_PA_W_CLNT_BEHAVIOR(mh_mmu_config_reg, pa_w_clnt_behavior) \
+ mh_mmu_config_reg = (mh_mmu_config_reg & ~MH_MMU_CONFIG_PA_W_CLNT_BEHAVIOR_MASK) | (pa_w_clnt_behavior << MH_MMU_CONFIG_PA_W_CLNT_BEHAVIOR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_mmu_config_t {
+ unsigned int mmu_enable : MH_MMU_CONFIG_MMU_ENABLE_SIZE;
+ unsigned int split_mode_enable : MH_MMU_CONFIG_SPLIT_MODE_ENABLE_SIZE;
+ unsigned int reserved1 : MH_MMU_CONFIG_RESERVED1_SIZE;
+ unsigned int rb_w_clnt_behavior : MH_MMU_CONFIG_RB_W_CLNT_BEHAVIOR_SIZE;
+ unsigned int cp_w_clnt_behavior : MH_MMU_CONFIG_CP_W_CLNT_BEHAVIOR_SIZE;
+ unsigned int cp_r0_clnt_behavior : MH_MMU_CONFIG_CP_R0_CLNT_BEHAVIOR_SIZE;
+ unsigned int cp_r1_clnt_behavior : MH_MMU_CONFIG_CP_R1_CLNT_BEHAVIOR_SIZE;
+ unsigned int cp_r2_clnt_behavior : MH_MMU_CONFIG_CP_R2_CLNT_BEHAVIOR_SIZE;
+ unsigned int cp_r3_clnt_behavior : MH_MMU_CONFIG_CP_R3_CLNT_BEHAVIOR_SIZE;
+ unsigned int cp_r4_clnt_behavior : MH_MMU_CONFIG_CP_R4_CLNT_BEHAVIOR_SIZE;
+ unsigned int vgt_r0_clnt_behavior : MH_MMU_CONFIG_VGT_R0_CLNT_BEHAVIOR_SIZE;
+ unsigned int vgt_r1_clnt_behavior : MH_MMU_CONFIG_VGT_R1_CLNT_BEHAVIOR_SIZE;
+ unsigned int tc_r_clnt_behavior : MH_MMU_CONFIG_TC_R_CLNT_BEHAVIOR_SIZE;
+ unsigned int pa_w_clnt_behavior : MH_MMU_CONFIG_PA_W_CLNT_BEHAVIOR_SIZE;
+ unsigned int : 6;
+ } mh_mmu_config_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_mmu_config_t {
+ unsigned int : 6;
+ unsigned int pa_w_clnt_behavior : MH_MMU_CONFIG_PA_W_CLNT_BEHAVIOR_SIZE;
+ unsigned int tc_r_clnt_behavior : MH_MMU_CONFIG_TC_R_CLNT_BEHAVIOR_SIZE;
+ unsigned int vgt_r1_clnt_behavior : MH_MMU_CONFIG_VGT_R1_CLNT_BEHAVIOR_SIZE;
+ unsigned int vgt_r0_clnt_behavior : MH_MMU_CONFIG_VGT_R0_CLNT_BEHAVIOR_SIZE;
+ unsigned int cp_r4_clnt_behavior : MH_MMU_CONFIG_CP_R4_CLNT_BEHAVIOR_SIZE;
+ unsigned int cp_r3_clnt_behavior : MH_MMU_CONFIG_CP_R3_CLNT_BEHAVIOR_SIZE;
+ unsigned int cp_r2_clnt_behavior : MH_MMU_CONFIG_CP_R2_CLNT_BEHAVIOR_SIZE;
+ unsigned int cp_r1_clnt_behavior : MH_MMU_CONFIG_CP_R1_CLNT_BEHAVIOR_SIZE;
+ unsigned int cp_r0_clnt_behavior : MH_MMU_CONFIG_CP_R0_CLNT_BEHAVIOR_SIZE;
+ unsigned int cp_w_clnt_behavior : MH_MMU_CONFIG_CP_W_CLNT_BEHAVIOR_SIZE;
+ unsigned int rb_w_clnt_behavior : MH_MMU_CONFIG_RB_W_CLNT_BEHAVIOR_SIZE;
+ unsigned int reserved1 : MH_MMU_CONFIG_RESERVED1_SIZE;
+ unsigned int split_mode_enable : MH_MMU_CONFIG_SPLIT_MODE_ENABLE_SIZE;
+ unsigned int mmu_enable : MH_MMU_CONFIG_MMU_ENABLE_SIZE;
+ } mh_mmu_config_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_mmu_config_t f;
+} mh_mmu_config_u;
+
+
+/*
+ * MH_MMU_VA_RANGE struct
+ */
+
+#define MH_MMU_VA_RANGE_NUM_64KB_REGIONS_SIZE 12
+#define MH_MMU_VA_RANGE_VA_BASE_SIZE 20
+
+#define MH_MMU_VA_RANGE_NUM_64KB_REGIONS_SHIFT 0
+#define MH_MMU_VA_RANGE_VA_BASE_SHIFT 12
+
+#define MH_MMU_VA_RANGE_NUM_64KB_REGIONS_MASK 0x00000fff
+#define MH_MMU_VA_RANGE_VA_BASE_MASK 0xfffff000
+
+#define MH_MMU_VA_RANGE_MASK \
+ (MH_MMU_VA_RANGE_NUM_64KB_REGIONS_MASK | \
+ MH_MMU_VA_RANGE_VA_BASE_MASK)
+
+#define MH_MMU_VA_RANGE(num_64kb_regions, va_base) \
+ ((num_64kb_regions << MH_MMU_VA_RANGE_NUM_64KB_REGIONS_SHIFT) | \
+ (va_base << MH_MMU_VA_RANGE_VA_BASE_SHIFT))
+
+#define MH_MMU_VA_RANGE_GET_NUM_64KB_REGIONS(mh_mmu_va_range) \
+ ((mh_mmu_va_range & MH_MMU_VA_RANGE_NUM_64KB_REGIONS_MASK) >> MH_MMU_VA_RANGE_NUM_64KB_REGIONS_SHIFT)
+#define MH_MMU_VA_RANGE_GET_VA_BASE(mh_mmu_va_range) \
+ ((mh_mmu_va_range & MH_MMU_VA_RANGE_VA_BASE_MASK) >> MH_MMU_VA_RANGE_VA_BASE_SHIFT)
+
+#define MH_MMU_VA_RANGE_SET_NUM_64KB_REGIONS(mh_mmu_va_range_reg, num_64kb_regions) \
+ mh_mmu_va_range_reg = (mh_mmu_va_range_reg & ~MH_MMU_VA_RANGE_NUM_64KB_REGIONS_MASK) | (num_64kb_regions << MH_MMU_VA_RANGE_NUM_64KB_REGIONS_SHIFT)
+#define MH_MMU_VA_RANGE_SET_VA_BASE(mh_mmu_va_range_reg, va_base) \
+ mh_mmu_va_range_reg = (mh_mmu_va_range_reg & ~MH_MMU_VA_RANGE_VA_BASE_MASK) | (va_base << MH_MMU_VA_RANGE_VA_BASE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_mmu_va_range_t {
+ unsigned int num_64kb_regions : MH_MMU_VA_RANGE_NUM_64KB_REGIONS_SIZE;
+ unsigned int va_base : MH_MMU_VA_RANGE_VA_BASE_SIZE;
+ } mh_mmu_va_range_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_mmu_va_range_t {
+ unsigned int va_base : MH_MMU_VA_RANGE_VA_BASE_SIZE;
+ unsigned int num_64kb_regions : MH_MMU_VA_RANGE_NUM_64KB_REGIONS_SIZE;
+ } mh_mmu_va_range_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_mmu_va_range_t f;
+} mh_mmu_va_range_u;
+
+
+/*
+ * MH_MMU_PT_BASE struct
+ */
+
+#define MH_MMU_PT_BASE_PT_BASE_SIZE 20
+
+#define MH_MMU_PT_BASE_PT_BASE_SHIFT 12
+
+#define MH_MMU_PT_BASE_PT_BASE_MASK 0xfffff000
+
+#define MH_MMU_PT_BASE_MASK \
+ (MH_MMU_PT_BASE_PT_BASE_MASK)
+
+#define MH_MMU_PT_BASE(pt_base) \
+ ((pt_base << MH_MMU_PT_BASE_PT_BASE_SHIFT))
+
+#define MH_MMU_PT_BASE_GET_PT_BASE(mh_mmu_pt_base) \
+ ((mh_mmu_pt_base & MH_MMU_PT_BASE_PT_BASE_MASK) >> MH_MMU_PT_BASE_PT_BASE_SHIFT)
+
+#define MH_MMU_PT_BASE_SET_PT_BASE(mh_mmu_pt_base_reg, pt_base) \
+ mh_mmu_pt_base_reg = (mh_mmu_pt_base_reg & ~MH_MMU_PT_BASE_PT_BASE_MASK) | (pt_base << MH_MMU_PT_BASE_PT_BASE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_mmu_pt_base_t {
+ unsigned int : 12;
+ unsigned int pt_base : MH_MMU_PT_BASE_PT_BASE_SIZE;
+ } mh_mmu_pt_base_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_mmu_pt_base_t {
+ unsigned int pt_base : MH_MMU_PT_BASE_PT_BASE_SIZE;
+ unsigned int : 12;
+ } mh_mmu_pt_base_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_mmu_pt_base_t f;
+} mh_mmu_pt_base_u;
+
+
+/*
+ * MH_MMU_PAGE_FAULT struct
+ */
+
+#define MH_MMU_PAGE_FAULT_PAGE_FAULT_SIZE 1
+#define MH_MMU_PAGE_FAULT_OP_TYPE_SIZE 1
+#define MH_MMU_PAGE_FAULT_CLNT_BEHAVIOR_SIZE 2
+#define MH_MMU_PAGE_FAULT_AXI_ID_SIZE 3
+#define MH_MMU_PAGE_FAULT_RESERVED1_SIZE 1
+#define MH_MMU_PAGE_FAULT_MPU_ADDRESS_OUT_OF_RANGE_SIZE 1
+#define MH_MMU_PAGE_FAULT_ADDRESS_OUT_OF_RANGE_SIZE 1
+#define MH_MMU_PAGE_FAULT_READ_PROTECTION_ERROR_SIZE 1
+#define MH_MMU_PAGE_FAULT_WRITE_PROTECTION_ERROR_SIZE 1
+#define MH_MMU_PAGE_FAULT_REQ_VA_SIZE 20
+
+#define MH_MMU_PAGE_FAULT_PAGE_FAULT_SHIFT 0
+#define MH_MMU_PAGE_FAULT_OP_TYPE_SHIFT 1
+#define MH_MMU_PAGE_FAULT_CLNT_BEHAVIOR_SHIFT 2
+#define MH_MMU_PAGE_FAULT_AXI_ID_SHIFT 4
+#define MH_MMU_PAGE_FAULT_RESERVED1_SHIFT 7
+#define MH_MMU_PAGE_FAULT_MPU_ADDRESS_OUT_OF_RANGE_SHIFT 8
+#define MH_MMU_PAGE_FAULT_ADDRESS_OUT_OF_RANGE_SHIFT 9
+#define MH_MMU_PAGE_FAULT_READ_PROTECTION_ERROR_SHIFT 10
+#define MH_MMU_PAGE_FAULT_WRITE_PROTECTION_ERROR_SHIFT 11
+#define MH_MMU_PAGE_FAULT_REQ_VA_SHIFT 12
+
+#define MH_MMU_PAGE_FAULT_PAGE_FAULT_MASK 0x00000001
+#define MH_MMU_PAGE_FAULT_OP_TYPE_MASK 0x00000002
+#define MH_MMU_PAGE_FAULT_CLNT_BEHAVIOR_MASK 0x0000000c
+#define MH_MMU_PAGE_FAULT_AXI_ID_MASK 0x00000070
+#define MH_MMU_PAGE_FAULT_RESERVED1_MASK 0x00000080
+#define MH_MMU_PAGE_FAULT_MPU_ADDRESS_OUT_OF_RANGE_MASK 0x00000100
+#define MH_MMU_PAGE_FAULT_ADDRESS_OUT_OF_RANGE_MASK 0x00000200
+#define MH_MMU_PAGE_FAULT_READ_PROTECTION_ERROR_MASK 0x00000400
+#define MH_MMU_PAGE_FAULT_WRITE_PROTECTION_ERROR_MASK 0x00000800
+#define MH_MMU_PAGE_FAULT_REQ_VA_MASK 0xfffff000
+
+#define MH_MMU_PAGE_FAULT_MASK \
+ (MH_MMU_PAGE_FAULT_PAGE_FAULT_MASK | \
+ MH_MMU_PAGE_FAULT_OP_TYPE_MASK | \
+ MH_MMU_PAGE_FAULT_CLNT_BEHAVIOR_MASK | \
+ MH_MMU_PAGE_FAULT_AXI_ID_MASK | \
+ MH_MMU_PAGE_FAULT_RESERVED1_MASK | \
+ MH_MMU_PAGE_FAULT_MPU_ADDRESS_OUT_OF_RANGE_MASK | \
+ MH_MMU_PAGE_FAULT_ADDRESS_OUT_OF_RANGE_MASK | \
+ MH_MMU_PAGE_FAULT_READ_PROTECTION_ERROR_MASK | \
+ MH_MMU_PAGE_FAULT_WRITE_PROTECTION_ERROR_MASK | \
+ MH_MMU_PAGE_FAULT_REQ_VA_MASK)
+
+#define MH_MMU_PAGE_FAULT(page_fault, op_type, clnt_behavior, axi_id, reserved1, mpu_address_out_of_range, address_out_of_range, read_protection_error, write_protection_error, req_va) \
+ ((page_fault << MH_MMU_PAGE_FAULT_PAGE_FAULT_SHIFT) | \
+ (op_type << MH_MMU_PAGE_FAULT_OP_TYPE_SHIFT) | \
+ (clnt_behavior << MH_MMU_PAGE_FAULT_CLNT_BEHAVIOR_SHIFT) | \
+ (axi_id << MH_MMU_PAGE_FAULT_AXI_ID_SHIFT) | \
+ (reserved1 << MH_MMU_PAGE_FAULT_RESERVED1_SHIFT) | \
+ (mpu_address_out_of_range << MH_MMU_PAGE_FAULT_MPU_ADDRESS_OUT_OF_RANGE_SHIFT) | \
+ (address_out_of_range << MH_MMU_PAGE_FAULT_ADDRESS_OUT_OF_RANGE_SHIFT) | \
+ (read_protection_error << MH_MMU_PAGE_FAULT_READ_PROTECTION_ERROR_SHIFT) | \
+ (write_protection_error << MH_MMU_PAGE_FAULT_WRITE_PROTECTION_ERROR_SHIFT) | \
+ (req_va << MH_MMU_PAGE_FAULT_REQ_VA_SHIFT))
+
+#define MH_MMU_PAGE_FAULT_GET_PAGE_FAULT(mh_mmu_page_fault) \
+ ((mh_mmu_page_fault & MH_MMU_PAGE_FAULT_PAGE_FAULT_MASK) >> MH_MMU_PAGE_FAULT_PAGE_FAULT_SHIFT)
+#define MH_MMU_PAGE_FAULT_GET_OP_TYPE(mh_mmu_page_fault) \
+ ((mh_mmu_page_fault & MH_MMU_PAGE_FAULT_OP_TYPE_MASK) >> MH_MMU_PAGE_FAULT_OP_TYPE_SHIFT)
+#define MH_MMU_PAGE_FAULT_GET_CLNT_BEHAVIOR(mh_mmu_page_fault) \
+ ((mh_mmu_page_fault & MH_MMU_PAGE_FAULT_CLNT_BEHAVIOR_MASK) >> MH_MMU_PAGE_FAULT_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_PAGE_FAULT_GET_AXI_ID(mh_mmu_page_fault) \
+ ((mh_mmu_page_fault & MH_MMU_PAGE_FAULT_AXI_ID_MASK) >> MH_MMU_PAGE_FAULT_AXI_ID_SHIFT)
+#define MH_MMU_PAGE_FAULT_GET_RESERVED1(mh_mmu_page_fault) \
+ ((mh_mmu_page_fault & MH_MMU_PAGE_FAULT_RESERVED1_MASK) >> MH_MMU_PAGE_FAULT_RESERVED1_SHIFT)
+#define MH_MMU_PAGE_FAULT_GET_MPU_ADDRESS_OUT_OF_RANGE(mh_mmu_page_fault) \
+ ((mh_mmu_page_fault & MH_MMU_PAGE_FAULT_MPU_ADDRESS_OUT_OF_RANGE_MASK) >> MH_MMU_PAGE_FAULT_MPU_ADDRESS_OUT_OF_RANGE_SHIFT)
+#define MH_MMU_PAGE_FAULT_GET_ADDRESS_OUT_OF_RANGE(mh_mmu_page_fault) \
+ ((mh_mmu_page_fault & MH_MMU_PAGE_FAULT_ADDRESS_OUT_OF_RANGE_MASK) >> MH_MMU_PAGE_FAULT_ADDRESS_OUT_OF_RANGE_SHIFT)
+#define MH_MMU_PAGE_FAULT_GET_READ_PROTECTION_ERROR(mh_mmu_page_fault) \
+ ((mh_mmu_page_fault & MH_MMU_PAGE_FAULT_READ_PROTECTION_ERROR_MASK) >> MH_MMU_PAGE_FAULT_READ_PROTECTION_ERROR_SHIFT)
+#define MH_MMU_PAGE_FAULT_GET_WRITE_PROTECTION_ERROR(mh_mmu_page_fault) \
+ ((mh_mmu_page_fault & MH_MMU_PAGE_FAULT_WRITE_PROTECTION_ERROR_MASK) >> MH_MMU_PAGE_FAULT_WRITE_PROTECTION_ERROR_SHIFT)
+#define MH_MMU_PAGE_FAULT_GET_REQ_VA(mh_mmu_page_fault) \
+ ((mh_mmu_page_fault & MH_MMU_PAGE_FAULT_REQ_VA_MASK) >> MH_MMU_PAGE_FAULT_REQ_VA_SHIFT)
+
+#define MH_MMU_PAGE_FAULT_SET_PAGE_FAULT(mh_mmu_page_fault_reg, page_fault) \
+ mh_mmu_page_fault_reg = (mh_mmu_page_fault_reg & ~MH_MMU_PAGE_FAULT_PAGE_FAULT_MASK) | (page_fault << MH_MMU_PAGE_FAULT_PAGE_FAULT_SHIFT)
+#define MH_MMU_PAGE_FAULT_SET_OP_TYPE(mh_mmu_page_fault_reg, op_type) \
+ mh_mmu_page_fault_reg = (mh_mmu_page_fault_reg & ~MH_MMU_PAGE_FAULT_OP_TYPE_MASK) | (op_type << MH_MMU_PAGE_FAULT_OP_TYPE_SHIFT)
+#define MH_MMU_PAGE_FAULT_SET_CLNT_BEHAVIOR(mh_mmu_page_fault_reg, clnt_behavior) \
+ mh_mmu_page_fault_reg = (mh_mmu_page_fault_reg & ~MH_MMU_PAGE_FAULT_CLNT_BEHAVIOR_MASK) | (clnt_behavior << MH_MMU_PAGE_FAULT_CLNT_BEHAVIOR_SHIFT)
+#define MH_MMU_PAGE_FAULT_SET_AXI_ID(mh_mmu_page_fault_reg, axi_id) \
+ mh_mmu_page_fault_reg = (mh_mmu_page_fault_reg & ~MH_MMU_PAGE_FAULT_AXI_ID_MASK) | (axi_id << MH_MMU_PAGE_FAULT_AXI_ID_SHIFT)
+#define MH_MMU_PAGE_FAULT_SET_RESERVED1(mh_mmu_page_fault_reg, reserved1) \
+ mh_mmu_page_fault_reg = (mh_mmu_page_fault_reg & ~MH_MMU_PAGE_FAULT_RESERVED1_MASK) | (reserved1 << MH_MMU_PAGE_FAULT_RESERVED1_SHIFT)
+#define MH_MMU_PAGE_FAULT_SET_MPU_ADDRESS_OUT_OF_RANGE(mh_mmu_page_fault_reg, mpu_address_out_of_range) \
+ mh_mmu_page_fault_reg = (mh_mmu_page_fault_reg & ~MH_MMU_PAGE_FAULT_MPU_ADDRESS_OUT_OF_RANGE_MASK) | (mpu_address_out_of_range << MH_MMU_PAGE_FAULT_MPU_ADDRESS_OUT_OF_RANGE_SHIFT)
+#define MH_MMU_PAGE_FAULT_SET_ADDRESS_OUT_OF_RANGE(mh_mmu_page_fault_reg, address_out_of_range) \
+ mh_mmu_page_fault_reg = (mh_mmu_page_fault_reg & ~MH_MMU_PAGE_FAULT_ADDRESS_OUT_OF_RANGE_MASK) | (address_out_of_range << MH_MMU_PAGE_FAULT_ADDRESS_OUT_OF_RANGE_SHIFT)
+#define MH_MMU_PAGE_FAULT_SET_READ_PROTECTION_ERROR(mh_mmu_page_fault_reg, read_protection_error) \
+ mh_mmu_page_fault_reg = (mh_mmu_page_fault_reg & ~MH_MMU_PAGE_FAULT_READ_PROTECTION_ERROR_MASK) | (read_protection_error << MH_MMU_PAGE_FAULT_READ_PROTECTION_ERROR_SHIFT)
+#define MH_MMU_PAGE_FAULT_SET_WRITE_PROTECTION_ERROR(mh_mmu_page_fault_reg, write_protection_error) \
+ mh_mmu_page_fault_reg = (mh_mmu_page_fault_reg & ~MH_MMU_PAGE_FAULT_WRITE_PROTECTION_ERROR_MASK) | (write_protection_error << MH_MMU_PAGE_FAULT_WRITE_PROTECTION_ERROR_SHIFT)
+#define MH_MMU_PAGE_FAULT_SET_REQ_VA(mh_mmu_page_fault_reg, req_va) \
+ mh_mmu_page_fault_reg = (mh_mmu_page_fault_reg & ~MH_MMU_PAGE_FAULT_REQ_VA_MASK) | (req_va << MH_MMU_PAGE_FAULT_REQ_VA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_mmu_page_fault_t {
+ unsigned int page_fault : MH_MMU_PAGE_FAULT_PAGE_FAULT_SIZE;
+ unsigned int op_type : MH_MMU_PAGE_FAULT_OP_TYPE_SIZE;
+ unsigned int clnt_behavior : MH_MMU_PAGE_FAULT_CLNT_BEHAVIOR_SIZE;
+ unsigned int axi_id : MH_MMU_PAGE_FAULT_AXI_ID_SIZE;
+ unsigned int reserved1 : MH_MMU_PAGE_FAULT_RESERVED1_SIZE;
+ unsigned int mpu_address_out_of_range : MH_MMU_PAGE_FAULT_MPU_ADDRESS_OUT_OF_RANGE_SIZE;
+ unsigned int address_out_of_range : MH_MMU_PAGE_FAULT_ADDRESS_OUT_OF_RANGE_SIZE;
+ unsigned int read_protection_error : MH_MMU_PAGE_FAULT_READ_PROTECTION_ERROR_SIZE;
+ unsigned int write_protection_error : MH_MMU_PAGE_FAULT_WRITE_PROTECTION_ERROR_SIZE;
+ unsigned int req_va : MH_MMU_PAGE_FAULT_REQ_VA_SIZE;
+ } mh_mmu_page_fault_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_mmu_page_fault_t {
+ unsigned int req_va : MH_MMU_PAGE_FAULT_REQ_VA_SIZE;
+ unsigned int write_protection_error : MH_MMU_PAGE_FAULT_WRITE_PROTECTION_ERROR_SIZE;
+ unsigned int read_protection_error : MH_MMU_PAGE_FAULT_READ_PROTECTION_ERROR_SIZE;
+ unsigned int address_out_of_range : MH_MMU_PAGE_FAULT_ADDRESS_OUT_OF_RANGE_SIZE;
+ unsigned int mpu_address_out_of_range : MH_MMU_PAGE_FAULT_MPU_ADDRESS_OUT_OF_RANGE_SIZE;
+ unsigned int reserved1 : MH_MMU_PAGE_FAULT_RESERVED1_SIZE;
+ unsigned int axi_id : MH_MMU_PAGE_FAULT_AXI_ID_SIZE;
+ unsigned int clnt_behavior : MH_MMU_PAGE_FAULT_CLNT_BEHAVIOR_SIZE;
+ unsigned int op_type : MH_MMU_PAGE_FAULT_OP_TYPE_SIZE;
+ unsigned int page_fault : MH_MMU_PAGE_FAULT_PAGE_FAULT_SIZE;
+ } mh_mmu_page_fault_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_mmu_page_fault_t f;
+} mh_mmu_page_fault_u;
+
+
+/*
+ * MH_MMU_TRAN_ERROR struct
+ */
+
+#define MH_MMU_TRAN_ERROR_TRAN_ERROR_SIZE 27
+
+#define MH_MMU_TRAN_ERROR_TRAN_ERROR_SHIFT 5
+
+#define MH_MMU_TRAN_ERROR_TRAN_ERROR_MASK 0xffffffe0
+
+#define MH_MMU_TRAN_ERROR_MASK \
+ (MH_MMU_TRAN_ERROR_TRAN_ERROR_MASK)
+
+#define MH_MMU_TRAN_ERROR(tran_error) \
+ ((tran_error << MH_MMU_TRAN_ERROR_TRAN_ERROR_SHIFT))
+
+#define MH_MMU_TRAN_ERROR_GET_TRAN_ERROR(mh_mmu_tran_error) \
+ ((mh_mmu_tran_error & MH_MMU_TRAN_ERROR_TRAN_ERROR_MASK) >> MH_MMU_TRAN_ERROR_TRAN_ERROR_SHIFT)
+
+#define MH_MMU_TRAN_ERROR_SET_TRAN_ERROR(mh_mmu_tran_error_reg, tran_error) \
+ mh_mmu_tran_error_reg = (mh_mmu_tran_error_reg & ~MH_MMU_TRAN_ERROR_TRAN_ERROR_MASK) | (tran_error << MH_MMU_TRAN_ERROR_TRAN_ERROR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_mmu_tran_error_t {
+ unsigned int : 5;
+ unsigned int tran_error : MH_MMU_TRAN_ERROR_TRAN_ERROR_SIZE;
+ } mh_mmu_tran_error_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_mmu_tran_error_t {
+ unsigned int tran_error : MH_MMU_TRAN_ERROR_TRAN_ERROR_SIZE;
+ unsigned int : 5;
+ } mh_mmu_tran_error_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_mmu_tran_error_t f;
+} mh_mmu_tran_error_u;
+
+
+/*
+ * MH_MMU_INVALIDATE struct
+ */
+
+#define MH_MMU_INVALIDATE_INVALIDATE_ALL_SIZE 1
+#define MH_MMU_INVALIDATE_INVALIDATE_TC_SIZE 1
+
+#define MH_MMU_INVALIDATE_INVALIDATE_ALL_SHIFT 0
+#define MH_MMU_INVALIDATE_INVALIDATE_TC_SHIFT 1
+
+#define MH_MMU_INVALIDATE_INVALIDATE_ALL_MASK 0x00000001
+#define MH_MMU_INVALIDATE_INVALIDATE_TC_MASK 0x00000002
+
+#define MH_MMU_INVALIDATE_MASK \
+ (MH_MMU_INVALIDATE_INVALIDATE_ALL_MASK | \
+ MH_MMU_INVALIDATE_INVALIDATE_TC_MASK)
+
+#define MH_MMU_INVALIDATE(invalidate_all, invalidate_tc) \
+ ((invalidate_all << MH_MMU_INVALIDATE_INVALIDATE_ALL_SHIFT) | \
+ (invalidate_tc << MH_MMU_INVALIDATE_INVALIDATE_TC_SHIFT))
+
+#define MH_MMU_INVALIDATE_GET_INVALIDATE_ALL(mh_mmu_invalidate) \
+ ((mh_mmu_invalidate & MH_MMU_INVALIDATE_INVALIDATE_ALL_MASK) >> MH_MMU_INVALIDATE_INVALIDATE_ALL_SHIFT)
+#define MH_MMU_INVALIDATE_GET_INVALIDATE_TC(mh_mmu_invalidate) \
+ ((mh_mmu_invalidate & MH_MMU_INVALIDATE_INVALIDATE_TC_MASK) >> MH_MMU_INVALIDATE_INVALIDATE_TC_SHIFT)
+
+#define MH_MMU_INVALIDATE_SET_INVALIDATE_ALL(mh_mmu_invalidate_reg, invalidate_all) \
+ mh_mmu_invalidate_reg = (mh_mmu_invalidate_reg & ~MH_MMU_INVALIDATE_INVALIDATE_ALL_MASK) | (invalidate_all << MH_MMU_INVALIDATE_INVALIDATE_ALL_SHIFT)
+#define MH_MMU_INVALIDATE_SET_INVALIDATE_TC(mh_mmu_invalidate_reg, invalidate_tc) \
+ mh_mmu_invalidate_reg = (mh_mmu_invalidate_reg & ~MH_MMU_INVALIDATE_INVALIDATE_TC_MASK) | (invalidate_tc << MH_MMU_INVALIDATE_INVALIDATE_TC_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_mmu_invalidate_t {
+ unsigned int invalidate_all : MH_MMU_INVALIDATE_INVALIDATE_ALL_SIZE;
+ unsigned int invalidate_tc : MH_MMU_INVALIDATE_INVALIDATE_TC_SIZE;
+ unsigned int : 30;
+ } mh_mmu_invalidate_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_mmu_invalidate_t {
+ unsigned int : 30;
+ unsigned int invalidate_tc : MH_MMU_INVALIDATE_INVALIDATE_TC_SIZE;
+ unsigned int invalidate_all : MH_MMU_INVALIDATE_INVALIDATE_ALL_SIZE;
+ } mh_mmu_invalidate_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_mmu_invalidate_t f;
+} mh_mmu_invalidate_u;
+
+
+/*
+ * MH_MMU_MPU_BASE struct
+ */
+
+#define MH_MMU_MPU_BASE_MPU_BASE_SIZE 20
+
+#define MH_MMU_MPU_BASE_MPU_BASE_SHIFT 12
+
+#define MH_MMU_MPU_BASE_MPU_BASE_MASK 0xfffff000
+
+#define MH_MMU_MPU_BASE_MASK \
+ (MH_MMU_MPU_BASE_MPU_BASE_MASK)
+
+#define MH_MMU_MPU_BASE(mpu_base) \
+ ((mpu_base << MH_MMU_MPU_BASE_MPU_BASE_SHIFT))
+
+#define MH_MMU_MPU_BASE_GET_MPU_BASE(mh_mmu_mpu_base) \
+ ((mh_mmu_mpu_base & MH_MMU_MPU_BASE_MPU_BASE_MASK) >> MH_MMU_MPU_BASE_MPU_BASE_SHIFT)
+
+#define MH_MMU_MPU_BASE_SET_MPU_BASE(mh_mmu_mpu_base_reg, mpu_base) \
+ mh_mmu_mpu_base_reg = (mh_mmu_mpu_base_reg & ~MH_MMU_MPU_BASE_MPU_BASE_MASK) | (mpu_base << MH_MMU_MPU_BASE_MPU_BASE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_mmu_mpu_base_t {
+ unsigned int : 12;
+ unsigned int mpu_base : MH_MMU_MPU_BASE_MPU_BASE_SIZE;
+ } mh_mmu_mpu_base_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_mmu_mpu_base_t {
+ unsigned int mpu_base : MH_MMU_MPU_BASE_MPU_BASE_SIZE;
+ unsigned int : 12;
+ } mh_mmu_mpu_base_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_mmu_mpu_base_t f;
+} mh_mmu_mpu_base_u;
+
+
+/*
+ * MH_MMU_MPU_END struct
+ */
+
+#define MH_MMU_MPU_END_MPU_END_SIZE 20
+
+#define MH_MMU_MPU_END_MPU_END_SHIFT 12
+
+#define MH_MMU_MPU_END_MPU_END_MASK 0xfffff000
+
+#define MH_MMU_MPU_END_MASK \
+ (MH_MMU_MPU_END_MPU_END_MASK)
+
+#define MH_MMU_MPU_END(mpu_end) \
+ ((mpu_end << MH_MMU_MPU_END_MPU_END_SHIFT))
+
+#define MH_MMU_MPU_END_GET_MPU_END(mh_mmu_mpu_end) \
+ ((mh_mmu_mpu_end & MH_MMU_MPU_END_MPU_END_MASK) >> MH_MMU_MPU_END_MPU_END_SHIFT)
+
+#define MH_MMU_MPU_END_SET_MPU_END(mh_mmu_mpu_end_reg, mpu_end) \
+ mh_mmu_mpu_end_reg = (mh_mmu_mpu_end_reg & ~MH_MMU_MPU_END_MPU_END_MASK) | (mpu_end << MH_MMU_MPU_END_MPU_END_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _mh_mmu_mpu_end_t {
+ unsigned int : 12;
+ unsigned int mpu_end : MH_MMU_MPU_END_MPU_END_SIZE;
+ } mh_mmu_mpu_end_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _mh_mmu_mpu_end_t {
+ unsigned int mpu_end : MH_MMU_MPU_END_MPU_END_SIZE;
+ unsigned int : 12;
+ } mh_mmu_mpu_end_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ mh_mmu_mpu_end_t f;
+} mh_mmu_mpu_end_u;
+
+
+#endif
+
+
+#if !defined (_PA_FIDDLE_H)
+#define _PA_FIDDLE_H
+
+/*******************************************************
+ * Enums
+ *******************************************************/
+
+
+/*******************************************************
+ * Values
+ *******************************************************/
+
+
+/*******************************************************
+ * Structures
+ *******************************************************/
+
+/*
+ * PA_CL_VPORT_XSCALE struct
+ */
+
+#define PA_CL_VPORT_XSCALE_VPORT_XSCALE_SIZE 32
+
+#define PA_CL_VPORT_XSCALE_VPORT_XSCALE_SHIFT 0
+
+#define PA_CL_VPORT_XSCALE_VPORT_XSCALE_MASK 0xffffffff
+
+#define PA_CL_VPORT_XSCALE_MASK \
+ (PA_CL_VPORT_XSCALE_VPORT_XSCALE_MASK)
+
+#define PA_CL_VPORT_XSCALE(vport_xscale) \
+ ((vport_xscale << PA_CL_VPORT_XSCALE_VPORT_XSCALE_SHIFT))
+
+#define PA_CL_VPORT_XSCALE_GET_VPORT_XSCALE(pa_cl_vport_xscale) \
+ ((pa_cl_vport_xscale & PA_CL_VPORT_XSCALE_VPORT_XSCALE_MASK) >> PA_CL_VPORT_XSCALE_VPORT_XSCALE_SHIFT)
+
+#define PA_CL_VPORT_XSCALE_SET_VPORT_XSCALE(pa_cl_vport_xscale_reg, vport_xscale) \
+ pa_cl_vport_xscale_reg = (pa_cl_vport_xscale_reg & ~PA_CL_VPORT_XSCALE_VPORT_XSCALE_MASK) | (vport_xscale << PA_CL_VPORT_XSCALE_VPORT_XSCALE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_cl_vport_xscale_t {
+ unsigned int vport_xscale : PA_CL_VPORT_XSCALE_VPORT_XSCALE_SIZE;
+ } pa_cl_vport_xscale_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_cl_vport_xscale_t {
+ unsigned int vport_xscale : PA_CL_VPORT_XSCALE_VPORT_XSCALE_SIZE;
+ } pa_cl_vport_xscale_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_cl_vport_xscale_t f;
+} pa_cl_vport_xscale_u;
+
+
+/*
+ * PA_CL_VPORT_XOFFSET struct
+ */
+
+#define PA_CL_VPORT_XOFFSET_VPORT_XOFFSET_SIZE 32
+
+#define PA_CL_VPORT_XOFFSET_VPORT_XOFFSET_SHIFT 0
+
+#define PA_CL_VPORT_XOFFSET_VPORT_XOFFSET_MASK 0xffffffff
+
+#define PA_CL_VPORT_XOFFSET_MASK \
+ (PA_CL_VPORT_XOFFSET_VPORT_XOFFSET_MASK)
+
+#define PA_CL_VPORT_XOFFSET(vport_xoffset) \
+ ((vport_xoffset << PA_CL_VPORT_XOFFSET_VPORT_XOFFSET_SHIFT))
+
+#define PA_CL_VPORT_XOFFSET_GET_VPORT_XOFFSET(pa_cl_vport_xoffset) \
+ ((pa_cl_vport_xoffset & PA_CL_VPORT_XOFFSET_VPORT_XOFFSET_MASK) >> PA_CL_VPORT_XOFFSET_VPORT_XOFFSET_SHIFT)
+
+#define PA_CL_VPORT_XOFFSET_SET_VPORT_XOFFSET(pa_cl_vport_xoffset_reg, vport_xoffset) \
+ pa_cl_vport_xoffset_reg = (pa_cl_vport_xoffset_reg & ~PA_CL_VPORT_XOFFSET_VPORT_XOFFSET_MASK) | (vport_xoffset << PA_CL_VPORT_XOFFSET_VPORT_XOFFSET_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_cl_vport_xoffset_t {
+ unsigned int vport_xoffset : PA_CL_VPORT_XOFFSET_VPORT_XOFFSET_SIZE;
+ } pa_cl_vport_xoffset_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_cl_vport_xoffset_t {
+ unsigned int vport_xoffset : PA_CL_VPORT_XOFFSET_VPORT_XOFFSET_SIZE;
+ } pa_cl_vport_xoffset_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_cl_vport_xoffset_t f;
+} pa_cl_vport_xoffset_u;
+
+
+/*
+ * PA_CL_VPORT_YSCALE struct
+ */
+
+#define PA_CL_VPORT_YSCALE_VPORT_YSCALE_SIZE 32
+
+#define PA_CL_VPORT_YSCALE_VPORT_YSCALE_SHIFT 0
+
+#define PA_CL_VPORT_YSCALE_VPORT_YSCALE_MASK 0xffffffff
+
+#define PA_CL_VPORT_YSCALE_MASK \
+ (PA_CL_VPORT_YSCALE_VPORT_YSCALE_MASK)
+
+#define PA_CL_VPORT_YSCALE(vport_yscale) \
+ ((vport_yscale << PA_CL_VPORT_YSCALE_VPORT_YSCALE_SHIFT))
+
+#define PA_CL_VPORT_YSCALE_GET_VPORT_YSCALE(pa_cl_vport_yscale) \
+ ((pa_cl_vport_yscale & PA_CL_VPORT_YSCALE_VPORT_YSCALE_MASK) >> PA_CL_VPORT_YSCALE_VPORT_YSCALE_SHIFT)
+
+#define PA_CL_VPORT_YSCALE_SET_VPORT_YSCALE(pa_cl_vport_yscale_reg, vport_yscale) \
+ pa_cl_vport_yscale_reg = (pa_cl_vport_yscale_reg & ~PA_CL_VPORT_YSCALE_VPORT_YSCALE_MASK) | (vport_yscale << PA_CL_VPORT_YSCALE_VPORT_YSCALE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_cl_vport_yscale_t {
+ unsigned int vport_yscale : PA_CL_VPORT_YSCALE_VPORT_YSCALE_SIZE;
+ } pa_cl_vport_yscale_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_cl_vport_yscale_t {
+ unsigned int vport_yscale : PA_CL_VPORT_YSCALE_VPORT_YSCALE_SIZE;
+ } pa_cl_vport_yscale_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_cl_vport_yscale_t f;
+} pa_cl_vport_yscale_u;
+
+
+/*
+ * PA_CL_VPORT_YOFFSET struct
+ */
+
+#define PA_CL_VPORT_YOFFSET_VPORT_YOFFSET_SIZE 32
+
+#define PA_CL_VPORT_YOFFSET_VPORT_YOFFSET_SHIFT 0
+
+#define PA_CL_VPORT_YOFFSET_VPORT_YOFFSET_MASK 0xffffffff
+
+#define PA_CL_VPORT_YOFFSET_MASK \
+ (PA_CL_VPORT_YOFFSET_VPORT_YOFFSET_MASK)
+
+#define PA_CL_VPORT_YOFFSET(vport_yoffset) \
+ ((vport_yoffset << PA_CL_VPORT_YOFFSET_VPORT_YOFFSET_SHIFT))
+
+#define PA_CL_VPORT_YOFFSET_GET_VPORT_YOFFSET(pa_cl_vport_yoffset) \
+ ((pa_cl_vport_yoffset & PA_CL_VPORT_YOFFSET_VPORT_YOFFSET_MASK) >> PA_CL_VPORT_YOFFSET_VPORT_YOFFSET_SHIFT)
+
+#define PA_CL_VPORT_YOFFSET_SET_VPORT_YOFFSET(pa_cl_vport_yoffset_reg, vport_yoffset) \
+ pa_cl_vport_yoffset_reg = (pa_cl_vport_yoffset_reg & ~PA_CL_VPORT_YOFFSET_VPORT_YOFFSET_MASK) | (vport_yoffset << PA_CL_VPORT_YOFFSET_VPORT_YOFFSET_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_cl_vport_yoffset_t {
+ unsigned int vport_yoffset : PA_CL_VPORT_YOFFSET_VPORT_YOFFSET_SIZE;
+ } pa_cl_vport_yoffset_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_cl_vport_yoffset_t {
+ unsigned int vport_yoffset : PA_CL_VPORT_YOFFSET_VPORT_YOFFSET_SIZE;
+ } pa_cl_vport_yoffset_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_cl_vport_yoffset_t f;
+} pa_cl_vport_yoffset_u;
+
+
+/*
+ * PA_CL_VPORT_ZSCALE struct
+ */
+
+#define PA_CL_VPORT_ZSCALE_VPORT_ZSCALE_SIZE 32
+
+#define PA_CL_VPORT_ZSCALE_VPORT_ZSCALE_SHIFT 0
+
+#define PA_CL_VPORT_ZSCALE_VPORT_ZSCALE_MASK 0xffffffff
+
+#define PA_CL_VPORT_ZSCALE_MASK \
+ (PA_CL_VPORT_ZSCALE_VPORT_ZSCALE_MASK)
+
+#define PA_CL_VPORT_ZSCALE(vport_zscale) \
+ ((vport_zscale << PA_CL_VPORT_ZSCALE_VPORT_ZSCALE_SHIFT))
+
+#define PA_CL_VPORT_ZSCALE_GET_VPORT_ZSCALE(pa_cl_vport_zscale) \
+ ((pa_cl_vport_zscale & PA_CL_VPORT_ZSCALE_VPORT_ZSCALE_MASK) >> PA_CL_VPORT_ZSCALE_VPORT_ZSCALE_SHIFT)
+
+#define PA_CL_VPORT_ZSCALE_SET_VPORT_ZSCALE(pa_cl_vport_zscale_reg, vport_zscale) \
+ pa_cl_vport_zscale_reg = (pa_cl_vport_zscale_reg & ~PA_CL_VPORT_ZSCALE_VPORT_ZSCALE_MASK) | (vport_zscale << PA_CL_VPORT_ZSCALE_VPORT_ZSCALE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_cl_vport_zscale_t {
+ unsigned int vport_zscale : PA_CL_VPORT_ZSCALE_VPORT_ZSCALE_SIZE;
+ } pa_cl_vport_zscale_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_cl_vport_zscale_t {
+ unsigned int vport_zscale : PA_CL_VPORT_ZSCALE_VPORT_ZSCALE_SIZE;
+ } pa_cl_vport_zscale_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_cl_vport_zscale_t f;
+} pa_cl_vport_zscale_u;
+
+
+/*
+ * PA_CL_VPORT_ZOFFSET struct
+ */
+
+#define PA_CL_VPORT_ZOFFSET_VPORT_ZOFFSET_SIZE 32
+
+#define PA_CL_VPORT_ZOFFSET_VPORT_ZOFFSET_SHIFT 0
+
+#define PA_CL_VPORT_ZOFFSET_VPORT_ZOFFSET_MASK 0xffffffff
+
+#define PA_CL_VPORT_ZOFFSET_MASK \
+ (PA_CL_VPORT_ZOFFSET_VPORT_ZOFFSET_MASK)
+
+#define PA_CL_VPORT_ZOFFSET(vport_zoffset) \
+ ((vport_zoffset << PA_CL_VPORT_ZOFFSET_VPORT_ZOFFSET_SHIFT))
+
+#define PA_CL_VPORT_ZOFFSET_GET_VPORT_ZOFFSET(pa_cl_vport_zoffset) \
+ ((pa_cl_vport_zoffset & PA_CL_VPORT_ZOFFSET_VPORT_ZOFFSET_MASK) >> PA_CL_VPORT_ZOFFSET_VPORT_ZOFFSET_SHIFT)
+
+#define PA_CL_VPORT_ZOFFSET_SET_VPORT_ZOFFSET(pa_cl_vport_zoffset_reg, vport_zoffset) \
+ pa_cl_vport_zoffset_reg = (pa_cl_vport_zoffset_reg & ~PA_CL_VPORT_ZOFFSET_VPORT_ZOFFSET_MASK) | (vport_zoffset << PA_CL_VPORT_ZOFFSET_VPORT_ZOFFSET_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_cl_vport_zoffset_t {
+ unsigned int vport_zoffset : PA_CL_VPORT_ZOFFSET_VPORT_ZOFFSET_SIZE;
+ } pa_cl_vport_zoffset_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_cl_vport_zoffset_t {
+ unsigned int vport_zoffset : PA_CL_VPORT_ZOFFSET_VPORT_ZOFFSET_SIZE;
+ } pa_cl_vport_zoffset_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_cl_vport_zoffset_t f;
+} pa_cl_vport_zoffset_u;
+
+
+/*
+ * PA_CL_VTE_CNTL struct
+ */
+
+#define PA_CL_VTE_CNTL_VPORT_X_SCALE_ENA_SIZE 1
+#define PA_CL_VTE_CNTL_VPORT_X_OFFSET_ENA_SIZE 1
+#define PA_CL_VTE_CNTL_VPORT_Y_SCALE_ENA_SIZE 1
+#define PA_CL_VTE_CNTL_VPORT_Y_OFFSET_ENA_SIZE 1
+#define PA_CL_VTE_CNTL_VPORT_Z_SCALE_ENA_SIZE 1
+#define PA_CL_VTE_CNTL_VPORT_Z_OFFSET_ENA_SIZE 1
+#define PA_CL_VTE_CNTL_VTX_XY_FMT_SIZE 1
+#define PA_CL_VTE_CNTL_VTX_Z_FMT_SIZE 1
+#define PA_CL_VTE_CNTL_VTX_W0_FMT_SIZE 1
+#define PA_CL_VTE_CNTL_PERFCOUNTER_REF_SIZE 1
+
+#define PA_CL_VTE_CNTL_VPORT_X_SCALE_ENA_SHIFT 0
+#define PA_CL_VTE_CNTL_VPORT_X_OFFSET_ENA_SHIFT 1
+#define PA_CL_VTE_CNTL_VPORT_Y_SCALE_ENA_SHIFT 2
+#define PA_CL_VTE_CNTL_VPORT_Y_OFFSET_ENA_SHIFT 3
+#define PA_CL_VTE_CNTL_VPORT_Z_SCALE_ENA_SHIFT 4
+#define PA_CL_VTE_CNTL_VPORT_Z_OFFSET_ENA_SHIFT 5
+#define PA_CL_VTE_CNTL_VTX_XY_FMT_SHIFT 8
+#define PA_CL_VTE_CNTL_VTX_Z_FMT_SHIFT 9
+#define PA_CL_VTE_CNTL_VTX_W0_FMT_SHIFT 10
+#define PA_CL_VTE_CNTL_PERFCOUNTER_REF_SHIFT 11
+
+#define PA_CL_VTE_CNTL_VPORT_X_SCALE_ENA_MASK 0x00000001
+#define PA_CL_VTE_CNTL_VPORT_X_OFFSET_ENA_MASK 0x00000002
+#define PA_CL_VTE_CNTL_VPORT_Y_SCALE_ENA_MASK 0x00000004
+#define PA_CL_VTE_CNTL_VPORT_Y_OFFSET_ENA_MASK 0x00000008
+#define PA_CL_VTE_CNTL_VPORT_Z_SCALE_ENA_MASK 0x00000010
+#define PA_CL_VTE_CNTL_VPORT_Z_OFFSET_ENA_MASK 0x00000020
+#define PA_CL_VTE_CNTL_VTX_XY_FMT_MASK 0x00000100
+#define PA_CL_VTE_CNTL_VTX_Z_FMT_MASK 0x00000200
+#define PA_CL_VTE_CNTL_VTX_W0_FMT_MASK 0x00000400
+#define PA_CL_VTE_CNTL_PERFCOUNTER_REF_MASK 0x00000800
+
+#define PA_CL_VTE_CNTL_MASK \
+ (PA_CL_VTE_CNTL_VPORT_X_SCALE_ENA_MASK | \
+ PA_CL_VTE_CNTL_VPORT_X_OFFSET_ENA_MASK | \
+ PA_CL_VTE_CNTL_VPORT_Y_SCALE_ENA_MASK | \
+ PA_CL_VTE_CNTL_VPORT_Y_OFFSET_ENA_MASK | \
+ PA_CL_VTE_CNTL_VPORT_Z_SCALE_ENA_MASK | \
+ PA_CL_VTE_CNTL_VPORT_Z_OFFSET_ENA_MASK | \
+ PA_CL_VTE_CNTL_VTX_XY_FMT_MASK | \
+ PA_CL_VTE_CNTL_VTX_Z_FMT_MASK | \
+ PA_CL_VTE_CNTL_VTX_W0_FMT_MASK | \
+ PA_CL_VTE_CNTL_PERFCOUNTER_REF_MASK)
+
+#define PA_CL_VTE_CNTL(vport_x_scale_ena, vport_x_offset_ena, vport_y_scale_ena, vport_y_offset_ena, vport_z_scale_ena, vport_z_offset_ena, vtx_xy_fmt, vtx_z_fmt, vtx_w0_fmt, perfcounter_ref) \
+ ((vport_x_scale_ena << PA_CL_VTE_CNTL_VPORT_X_SCALE_ENA_SHIFT) | \
+ (vport_x_offset_ena << PA_CL_VTE_CNTL_VPORT_X_OFFSET_ENA_SHIFT) | \
+ (vport_y_scale_ena << PA_CL_VTE_CNTL_VPORT_Y_SCALE_ENA_SHIFT) | \
+ (vport_y_offset_ena << PA_CL_VTE_CNTL_VPORT_Y_OFFSET_ENA_SHIFT) | \
+ (vport_z_scale_ena << PA_CL_VTE_CNTL_VPORT_Z_SCALE_ENA_SHIFT) | \
+ (vport_z_offset_ena << PA_CL_VTE_CNTL_VPORT_Z_OFFSET_ENA_SHIFT) | \
+ (vtx_xy_fmt << PA_CL_VTE_CNTL_VTX_XY_FMT_SHIFT) | \
+ (vtx_z_fmt << PA_CL_VTE_CNTL_VTX_Z_FMT_SHIFT) | \
+ (vtx_w0_fmt << PA_CL_VTE_CNTL_VTX_W0_FMT_SHIFT) | \
+ (perfcounter_ref << PA_CL_VTE_CNTL_PERFCOUNTER_REF_SHIFT))
+
+#define PA_CL_VTE_CNTL_GET_VPORT_X_SCALE_ENA(pa_cl_vte_cntl) \
+ ((pa_cl_vte_cntl & PA_CL_VTE_CNTL_VPORT_X_SCALE_ENA_MASK) >> PA_CL_VTE_CNTL_VPORT_X_SCALE_ENA_SHIFT)
+#define PA_CL_VTE_CNTL_GET_VPORT_X_OFFSET_ENA(pa_cl_vte_cntl) \
+ ((pa_cl_vte_cntl & PA_CL_VTE_CNTL_VPORT_X_OFFSET_ENA_MASK) >> PA_CL_VTE_CNTL_VPORT_X_OFFSET_ENA_SHIFT)
+#define PA_CL_VTE_CNTL_GET_VPORT_Y_SCALE_ENA(pa_cl_vte_cntl) \
+ ((pa_cl_vte_cntl & PA_CL_VTE_CNTL_VPORT_Y_SCALE_ENA_MASK) >> PA_CL_VTE_CNTL_VPORT_Y_SCALE_ENA_SHIFT)
+#define PA_CL_VTE_CNTL_GET_VPORT_Y_OFFSET_ENA(pa_cl_vte_cntl) \
+ ((pa_cl_vte_cntl & PA_CL_VTE_CNTL_VPORT_Y_OFFSET_ENA_MASK) >> PA_CL_VTE_CNTL_VPORT_Y_OFFSET_ENA_SHIFT)
+#define PA_CL_VTE_CNTL_GET_VPORT_Z_SCALE_ENA(pa_cl_vte_cntl) \
+ ((pa_cl_vte_cntl & PA_CL_VTE_CNTL_VPORT_Z_SCALE_ENA_MASK) >> PA_CL_VTE_CNTL_VPORT_Z_SCALE_ENA_SHIFT)
+#define PA_CL_VTE_CNTL_GET_VPORT_Z_OFFSET_ENA(pa_cl_vte_cntl) \
+ ((pa_cl_vte_cntl & PA_CL_VTE_CNTL_VPORT_Z_OFFSET_ENA_MASK) >> PA_CL_VTE_CNTL_VPORT_Z_OFFSET_ENA_SHIFT)
+#define PA_CL_VTE_CNTL_GET_VTX_XY_FMT(pa_cl_vte_cntl) \
+ ((pa_cl_vte_cntl & PA_CL_VTE_CNTL_VTX_XY_FMT_MASK) >> PA_CL_VTE_CNTL_VTX_XY_FMT_SHIFT)
+#define PA_CL_VTE_CNTL_GET_VTX_Z_FMT(pa_cl_vte_cntl) \
+ ((pa_cl_vte_cntl & PA_CL_VTE_CNTL_VTX_Z_FMT_MASK) >> PA_CL_VTE_CNTL_VTX_Z_FMT_SHIFT)
+#define PA_CL_VTE_CNTL_GET_VTX_W0_FMT(pa_cl_vte_cntl) \
+ ((pa_cl_vte_cntl & PA_CL_VTE_CNTL_VTX_W0_FMT_MASK) >> PA_CL_VTE_CNTL_VTX_W0_FMT_SHIFT)
+#define PA_CL_VTE_CNTL_GET_PERFCOUNTER_REF(pa_cl_vte_cntl) \
+ ((pa_cl_vte_cntl & PA_CL_VTE_CNTL_PERFCOUNTER_REF_MASK) >> PA_CL_VTE_CNTL_PERFCOUNTER_REF_SHIFT)
+
+#define PA_CL_VTE_CNTL_SET_VPORT_X_SCALE_ENA(pa_cl_vte_cntl_reg, vport_x_scale_ena) \
+ pa_cl_vte_cntl_reg = (pa_cl_vte_cntl_reg & ~PA_CL_VTE_CNTL_VPORT_X_SCALE_ENA_MASK) | (vport_x_scale_ena << PA_CL_VTE_CNTL_VPORT_X_SCALE_ENA_SHIFT)
+#define PA_CL_VTE_CNTL_SET_VPORT_X_OFFSET_ENA(pa_cl_vte_cntl_reg, vport_x_offset_ena) \
+ pa_cl_vte_cntl_reg = (pa_cl_vte_cntl_reg & ~PA_CL_VTE_CNTL_VPORT_X_OFFSET_ENA_MASK) | (vport_x_offset_ena << PA_CL_VTE_CNTL_VPORT_X_OFFSET_ENA_SHIFT)
+#define PA_CL_VTE_CNTL_SET_VPORT_Y_SCALE_ENA(pa_cl_vte_cntl_reg, vport_y_scale_ena) \
+ pa_cl_vte_cntl_reg = (pa_cl_vte_cntl_reg & ~PA_CL_VTE_CNTL_VPORT_Y_SCALE_ENA_MASK) | (vport_y_scale_ena << PA_CL_VTE_CNTL_VPORT_Y_SCALE_ENA_SHIFT)
+#define PA_CL_VTE_CNTL_SET_VPORT_Y_OFFSET_ENA(pa_cl_vte_cntl_reg, vport_y_offset_ena) \
+ pa_cl_vte_cntl_reg = (pa_cl_vte_cntl_reg & ~PA_CL_VTE_CNTL_VPORT_Y_OFFSET_ENA_MASK) | (vport_y_offset_ena << PA_CL_VTE_CNTL_VPORT_Y_OFFSET_ENA_SHIFT)
+#define PA_CL_VTE_CNTL_SET_VPORT_Z_SCALE_ENA(pa_cl_vte_cntl_reg, vport_z_scale_ena) \
+ pa_cl_vte_cntl_reg = (pa_cl_vte_cntl_reg & ~PA_CL_VTE_CNTL_VPORT_Z_SCALE_ENA_MASK) | (vport_z_scale_ena << PA_CL_VTE_CNTL_VPORT_Z_SCALE_ENA_SHIFT)
+#define PA_CL_VTE_CNTL_SET_VPORT_Z_OFFSET_ENA(pa_cl_vte_cntl_reg, vport_z_offset_ena) \
+ pa_cl_vte_cntl_reg = (pa_cl_vte_cntl_reg & ~PA_CL_VTE_CNTL_VPORT_Z_OFFSET_ENA_MASK) | (vport_z_offset_ena << PA_CL_VTE_CNTL_VPORT_Z_OFFSET_ENA_SHIFT)
+#define PA_CL_VTE_CNTL_SET_VTX_XY_FMT(pa_cl_vte_cntl_reg, vtx_xy_fmt) \
+ pa_cl_vte_cntl_reg = (pa_cl_vte_cntl_reg & ~PA_CL_VTE_CNTL_VTX_XY_FMT_MASK) | (vtx_xy_fmt << PA_CL_VTE_CNTL_VTX_XY_FMT_SHIFT)
+#define PA_CL_VTE_CNTL_SET_VTX_Z_FMT(pa_cl_vte_cntl_reg, vtx_z_fmt) \
+ pa_cl_vte_cntl_reg = (pa_cl_vte_cntl_reg & ~PA_CL_VTE_CNTL_VTX_Z_FMT_MASK) | (vtx_z_fmt << PA_CL_VTE_CNTL_VTX_Z_FMT_SHIFT)
+#define PA_CL_VTE_CNTL_SET_VTX_W0_FMT(pa_cl_vte_cntl_reg, vtx_w0_fmt) \
+ pa_cl_vte_cntl_reg = (pa_cl_vte_cntl_reg & ~PA_CL_VTE_CNTL_VTX_W0_FMT_MASK) | (vtx_w0_fmt << PA_CL_VTE_CNTL_VTX_W0_FMT_SHIFT)
+#define PA_CL_VTE_CNTL_SET_PERFCOUNTER_REF(pa_cl_vte_cntl_reg, perfcounter_ref) \
+ pa_cl_vte_cntl_reg = (pa_cl_vte_cntl_reg & ~PA_CL_VTE_CNTL_PERFCOUNTER_REF_MASK) | (perfcounter_ref << PA_CL_VTE_CNTL_PERFCOUNTER_REF_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_cl_vte_cntl_t {
+ unsigned int vport_x_scale_ena : PA_CL_VTE_CNTL_VPORT_X_SCALE_ENA_SIZE;
+ unsigned int vport_x_offset_ena : PA_CL_VTE_CNTL_VPORT_X_OFFSET_ENA_SIZE;
+ unsigned int vport_y_scale_ena : PA_CL_VTE_CNTL_VPORT_Y_SCALE_ENA_SIZE;
+ unsigned int vport_y_offset_ena : PA_CL_VTE_CNTL_VPORT_Y_OFFSET_ENA_SIZE;
+ unsigned int vport_z_scale_ena : PA_CL_VTE_CNTL_VPORT_Z_SCALE_ENA_SIZE;
+ unsigned int vport_z_offset_ena : PA_CL_VTE_CNTL_VPORT_Z_OFFSET_ENA_SIZE;
+ unsigned int : 2;
+ unsigned int vtx_xy_fmt : PA_CL_VTE_CNTL_VTX_XY_FMT_SIZE;
+ unsigned int vtx_z_fmt : PA_CL_VTE_CNTL_VTX_Z_FMT_SIZE;
+ unsigned int vtx_w0_fmt : PA_CL_VTE_CNTL_VTX_W0_FMT_SIZE;
+ unsigned int perfcounter_ref : PA_CL_VTE_CNTL_PERFCOUNTER_REF_SIZE;
+ unsigned int : 20;
+ } pa_cl_vte_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_cl_vte_cntl_t {
+ unsigned int : 20;
+ unsigned int perfcounter_ref : PA_CL_VTE_CNTL_PERFCOUNTER_REF_SIZE;
+ unsigned int vtx_w0_fmt : PA_CL_VTE_CNTL_VTX_W0_FMT_SIZE;
+ unsigned int vtx_z_fmt : PA_CL_VTE_CNTL_VTX_Z_FMT_SIZE;
+ unsigned int vtx_xy_fmt : PA_CL_VTE_CNTL_VTX_XY_FMT_SIZE;
+ unsigned int : 2;
+ unsigned int vport_z_offset_ena : PA_CL_VTE_CNTL_VPORT_Z_OFFSET_ENA_SIZE;
+ unsigned int vport_z_scale_ena : PA_CL_VTE_CNTL_VPORT_Z_SCALE_ENA_SIZE;
+ unsigned int vport_y_offset_ena : PA_CL_VTE_CNTL_VPORT_Y_OFFSET_ENA_SIZE;
+ unsigned int vport_y_scale_ena : PA_CL_VTE_CNTL_VPORT_Y_SCALE_ENA_SIZE;
+ unsigned int vport_x_offset_ena : PA_CL_VTE_CNTL_VPORT_X_OFFSET_ENA_SIZE;
+ unsigned int vport_x_scale_ena : PA_CL_VTE_CNTL_VPORT_X_SCALE_ENA_SIZE;
+ } pa_cl_vte_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_cl_vte_cntl_t f;
+} pa_cl_vte_cntl_u;
+
+
+/*
+ * PA_CL_CLIP_CNTL struct
+ */
+
+#define PA_CL_CLIP_CNTL_CLIP_DISABLE_SIZE 1
+#define PA_CL_CLIP_CNTL_BOUNDARY_EDGE_FLAG_ENA_SIZE 1
+#define PA_CL_CLIP_CNTL_DX_CLIP_SPACE_DEF_SIZE 1
+#define PA_CL_CLIP_CNTL_DIS_CLIP_ERR_DETECT_SIZE 1
+#define PA_CL_CLIP_CNTL_VTX_KILL_OR_SIZE 1
+#define PA_CL_CLIP_CNTL_XY_NAN_RETAIN_SIZE 1
+#define PA_CL_CLIP_CNTL_Z_NAN_RETAIN_SIZE 1
+#define PA_CL_CLIP_CNTL_W_NAN_RETAIN_SIZE 1
+
+#define PA_CL_CLIP_CNTL_CLIP_DISABLE_SHIFT 16
+#define PA_CL_CLIP_CNTL_BOUNDARY_EDGE_FLAG_ENA_SHIFT 18
+#define PA_CL_CLIP_CNTL_DX_CLIP_SPACE_DEF_SHIFT 19
+#define PA_CL_CLIP_CNTL_DIS_CLIP_ERR_DETECT_SHIFT 20
+#define PA_CL_CLIP_CNTL_VTX_KILL_OR_SHIFT 21
+#define PA_CL_CLIP_CNTL_XY_NAN_RETAIN_SHIFT 22
+#define PA_CL_CLIP_CNTL_Z_NAN_RETAIN_SHIFT 23
+#define PA_CL_CLIP_CNTL_W_NAN_RETAIN_SHIFT 24
+
+#define PA_CL_CLIP_CNTL_CLIP_DISABLE_MASK 0x00010000
+#define PA_CL_CLIP_CNTL_BOUNDARY_EDGE_FLAG_ENA_MASK 0x00040000
+#define PA_CL_CLIP_CNTL_DX_CLIP_SPACE_DEF_MASK 0x00080000
+#define PA_CL_CLIP_CNTL_DIS_CLIP_ERR_DETECT_MASK 0x00100000
+#define PA_CL_CLIP_CNTL_VTX_KILL_OR_MASK 0x00200000
+#define PA_CL_CLIP_CNTL_XY_NAN_RETAIN_MASK 0x00400000
+#define PA_CL_CLIP_CNTL_Z_NAN_RETAIN_MASK 0x00800000
+#define PA_CL_CLIP_CNTL_W_NAN_RETAIN_MASK 0x01000000
+
+#define PA_CL_CLIP_CNTL_MASK \
+ (PA_CL_CLIP_CNTL_CLIP_DISABLE_MASK | \
+ PA_CL_CLIP_CNTL_BOUNDARY_EDGE_FLAG_ENA_MASK | \
+ PA_CL_CLIP_CNTL_DX_CLIP_SPACE_DEF_MASK | \
+ PA_CL_CLIP_CNTL_DIS_CLIP_ERR_DETECT_MASK | \
+ PA_CL_CLIP_CNTL_VTX_KILL_OR_MASK | \
+ PA_CL_CLIP_CNTL_XY_NAN_RETAIN_MASK | \
+ PA_CL_CLIP_CNTL_Z_NAN_RETAIN_MASK | \
+ PA_CL_CLIP_CNTL_W_NAN_RETAIN_MASK)
+
+#define PA_CL_CLIP_CNTL(clip_disable, boundary_edge_flag_ena, dx_clip_space_def, dis_clip_err_detect, vtx_kill_or, xy_nan_retain, z_nan_retain, w_nan_retain) \
+ ((clip_disable << PA_CL_CLIP_CNTL_CLIP_DISABLE_SHIFT) | \
+ (boundary_edge_flag_ena << PA_CL_CLIP_CNTL_BOUNDARY_EDGE_FLAG_ENA_SHIFT) | \
+ (dx_clip_space_def << PA_CL_CLIP_CNTL_DX_CLIP_SPACE_DEF_SHIFT) | \
+ (dis_clip_err_detect << PA_CL_CLIP_CNTL_DIS_CLIP_ERR_DETECT_SHIFT) | \
+ (vtx_kill_or << PA_CL_CLIP_CNTL_VTX_KILL_OR_SHIFT) | \
+ (xy_nan_retain << PA_CL_CLIP_CNTL_XY_NAN_RETAIN_SHIFT) | \
+ (z_nan_retain << PA_CL_CLIP_CNTL_Z_NAN_RETAIN_SHIFT) | \
+ (w_nan_retain << PA_CL_CLIP_CNTL_W_NAN_RETAIN_SHIFT))
+
+#define PA_CL_CLIP_CNTL_GET_CLIP_DISABLE(pa_cl_clip_cntl) \
+ ((pa_cl_clip_cntl & PA_CL_CLIP_CNTL_CLIP_DISABLE_MASK) >> PA_CL_CLIP_CNTL_CLIP_DISABLE_SHIFT)
+#define PA_CL_CLIP_CNTL_GET_BOUNDARY_EDGE_FLAG_ENA(pa_cl_clip_cntl) \
+ ((pa_cl_clip_cntl & PA_CL_CLIP_CNTL_BOUNDARY_EDGE_FLAG_ENA_MASK) >> PA_CL_CLIP_CNTL_BOUNDARY_EDGE_FLAG_ENA_SHIFT)
+#define PA_CL_CLIP_CNTL_GET_DX_CLIP_SPACE_DEF(pa_cl_clip_cntl) \
+ ((pa_cl_clip_cntl & PA_CL_CLIP_CNTL_DX_CLIP_SPACE_DEF_MASK) >> PA_CL_CLIP_CNTL_DX_CLIP_SPACE_DEF_SHIFT)
+#define PA_CL_CLIP_CNTL_GET_DIS_CLIP_ERR_DETECT(pa_cl_clip_cntl) \
+ ((pa_cl_clip_cntl & PA_CL_CLIP_CNTL_DIS_CLIP_ERR_DETECT_MASK) >> PA_CL_CLIP_CNTL_DIS_CLIP_ERR_DETECT_SHIFT)
+#define PA_CL_CLIP_CNTL_GET_VTX_KILL_OR(pa_cl_clip_cntl) \
+ ((pa_cl_clip_cntl & PA_CL_CLIP_CNTL_VTX_KILL_OR_MASK) >> PA_CL_CLIP_CNTL_VTX_KILL_OR_SHIFT)
+#define PA_CL_CLIP_CNTL_GET_XY_NAN_RETAIN(pa_cl_clip_cntl) \
+ ((pa_cl_clip_cntl & PA_CL_CLIP_CNTL_XY_NAN_RETAIN_MASK) >> PA_CL_CLIP_CNTL_XY_NAN_RETAIN_SHIFT)
+#define PA_CL_CLIP_CNTL_GET_Z_NAN_RETAIN(pa_cl_clip_cntl) \
+ ((pa_cl_clip_cntl & PA_CL_CLIP_CNTL_Z_NAN_RETAIN_MASK) >> PA_CL_CLIP_CNTL_Z_NAN_RETAIN_SHIFT)
+#define PA_CL_CLIP_CNTL_GET_W_NAN_RETAIN(pa_cl_clip_cntl) \
+ ((pa_cl_clip_cntl & PA_CL_CLIP_CNTL_W_NAN_RETAIN_MASK) >> PA_CL_CLIP_CNTL_W_NAN_RETAIN_SHIFT)
+
+#define PA_CL_CLIP_CNTL_SET_CLIP_DISABLE(pa_cl_clip_cntl_reg, clip_disable) \
+ pa_cl_clip_cntl_reg = (pa_cl_clip_cntl_reg & ~PA_CL_CLIP_CNTL_CLIP_DISABLE_MASK) | (clip_disable << PA_CL_CLIP_CNTL_CLIP_DISABLE_SHIFT)
+#define PA_CL_CLIP_CNTL_SET_BOUNDARY_EDGE_FLAG_ENA(pa_cl_clip_cntl_reg, boundary_edge_flag_ena) \
+ pa_cl_clip_cntl_reg = (pa_cl_clip_cntl_reg & ~PA_CL_CLIP_CNTL_BOUNDARY_EDGE_FLAG_ENA_MASK) | (boundary_edge_flag_ena << PA_CL_CLIP_CNTL_BOUNDARY_EDGE_FLAG_ENA_SHIFT)
+#define PA_CL_CLIP_CNTL_SET_DX_CLIP_SPACE_DEF(pa_cl_clip_cntl_reg, dx_clip_space_def) \
+ pa_cl_clip_cntl_reg = (pa_cl_clip_cntl_reg & ~PA_CL_CLIP_CNTL_DX_CLIP_SPACE_DEF_MASK) | (dx_clip_space_def << PA_CL_CLIP_CNTL_DX_CLIP_SPACE_DEF_SHIFT)
+#define PA_CL_CLIP_CNTL_SET_DIS_CLIP_ERR_DETECT(pa_cl_clip_cntl_reg, dis_clip_err_detect) \
+ pa_cl_clip_cntl_reg = (pa_cl_clip_cntl_reg & ~PA_CL_CLIP_CNTL_DIS_CLIP_ERR_DETECT_MASK) | (dis_clip_err_detect << PA_CL_CLIP_CNTL_DIS_CLIP_ERR_DETECT_SHIFT)
+#define PA_CL_CLIP_CNTL_SET_VTX_KILL_OR(pa_cl_clip_cntl_reg, vtx_kill_or) \
+ pa_cl_clip_cntl_reg = (pa_cl_clip_cntl_reg & ~PA_CL_CLIP_CNTL_VTX_KILL_OR_MASK) | (vtx_kill_or << PA_CL_CLIP_CNTL_VTX_KILL_OR_SHIFT)
+#define PA_CL_CLIP_CNTL_SET_XY_NAN_RETAIN(pa_cl_clip_cntl_reg, xy_nan_retain) \
+ pa_cl_clip_cntl_reg = (pa_cl_clip_cntl_reg & ~PA_CL_CLIP_CNTL_XY_NAN_RETAIN_MASK) | (xy_nan_retain << PA_CL_CLIP_CNTL_XY_NAN_RETAIN_SHIFT)
+#define PA_CL_CLIP_CNTL_SET_Z_NAN_RETAIN(pa_cl_clip_cntl_reg, z_nan_retain) \
+ pa_cl_clip_cntl_reg = (pa_cl_clip_cntl_reg & ~PA_CL_CLIP_CNTL_Z_NAN_RETAIN_MASK) | (z_nan_retain << PA_CL_CLIP_CNTL_Z_NAN_RETAIN_SHIFT)
+#define PA_CL_CLIP_CNTL_SET_W_NAN_RETAIN(pa_cl_clip_cntl_reg, w_nan_retain) \
+ pa_cl_clip_cntl_reg = (pa_cl_clip_cntl_reg & ~PA_CL_CLIP_CNTL_W_NAN_RETAIN_MASK) | (w_nan_retain << PA_CL_CLIP_CNTL_W_NAN_RETAIN_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_cl_clip_cntl_t {
+ unsigned int : 16;
+ unsigned int clip_disable : PA_CL_CLIP_CNTL_CLIP_DISABLE_SIZE;
+ unsigned int : 1;
+ unsigned int boundary_edge_flag_ena : PA_CL_CLIP_CNTL_BOUNDARY_EDGE_FLAG_ENA_SIZE;
+ unsigned int dx_clip_space_def : PA_CL_CLIP_CNTL_DX_CLIP_SPACE_DEF_SIZE;
+ unsigned int dis_clip_err_detect : PA_CL_CLIP_CNTL_DIS_CLIP_ERR_DETECT_SIZE;
+ unsigned int vtx_kill_or : PA_CL_CLIP_CNTL_VTX_KILL_OR_SIZE;
+ unsigned int xy_nan_retain : PA_CL_CLIP_CNTL_XY_NAN_RETAIN_SIZE;
+ unsigned int z_nan_retain : PA_CL_CLIP_CNTL_Z_NAN_RETAIN_SIZE;
+ unsigned int w_nan_retain : PA_CL_CLIP_CNTL_W_NAN_RETAIN_SIZE;
+ unsigned int : 7;
+ } pa_cl_clip_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_cl_clip_cntl_t {
+ unsigned int : 7;
+ unsigned int w_nan_retain : PA_CL_CLIP_CNTL_W_NAN_RETAIN_SIZE;
+ unsigned int z_nan_retain : PA_CL_CLIP_CNTL_Z_NAN_RETAIN_SIZE;
+ unsigned int xy_nan_retain : PA_CL_CLIP_CNTL_XY_NAN_RETAIN_SIZE;
+ unsigned int vtx_kill_or : PA_CL_CLIP_CNTL_VTX_KILL_OR_SIZE;
+ unsigned int dis_clip_err_detect : PA_CL_CLIP_CNTL_DIS_CLIP_ERR_DETECT_SIZE;
+ unsigned int dx_clip_space_def : PA_CL_CLIP_CNTL_DX_CLIP_SPACE_DEF_SIZE;
+ unsigned int boundary_edge_flag_ena : PA_CL_CLIP_CNTL_BOUNDARY_EDGE_FLAG_ENA_SIZE;
+ unsigned int : 1;
+ unsigned int clip_disable : PA_CL_CLIP_CNTL_CLIP_DISABLE_SIZE;
+ unsigned int : 16;
+ } pa_cl_clip_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_cl_clip_cntl_t f;
+} pa_cl_clip_cntl_u;
+
+
+/*
+ * PA_CL_GB_VERT_CLIP_ADJ struct
+ */
+
+#define PA_CL_GB_VERT_CLIP_ADJ_DATA_REGISTER_SIZE 32
+
+#define PA_CL_GB_VERT_CLIP_ADJ_DATA_REGISTER_SHIFT 0
+
+#define PA_CL_GB_VERT_CLIP_ADJ_DATA_REGISTER_MASK 0xffffffff
+
+#define PA_CL_GB_VERT_CLIP_ADJ_MASK \
+ (PA_CL_GB_VERT_CLIP_ADJ_DATA_REGISTER_MASK)
+
+#define PA_CL_GB_VERT_CLIP_ADJ(data_register) \
+ ((data_register << PA_CL_GB_VERT_CLIP_ADJ_DATA_REGISTER_SHIFT))
+
+#define PA_CL_GB_VERT_CLIP_ADJ_GET_DATA_REGISTER(pa_cl_gb_vert_clip_adj) \
+ ((pa_cl_gb_vert_clip_adj & PA_CL_GB_VERT_CLIP_ADJ_DATA_REGISTER_MASK) >> PA_CL_GB_VERT_CLIP_ADJ_DATA_REGISTER_SHIFT)
+
+#define PA_CL_GB_VERT_CLIP_ADJ_SET_DATA_REGISTER(pa_cl_gb_vert_clip_adj_reg, data_register) \
+ pa_cl_gb_vert_clip_adj_reg = (pa_cl_gb_vert_clip_adj_reg & ~PA_CL_GB_VERT_CLIP_ADJ_DATA_REGISTER_MASK) | (data_register << PA_CL_GB_VERT_CLIP_ADJ_DATA_REGISTER_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_cl_gb_vert_clip_adj_t {
+ unsigned int data_register : PA_CL_GB_VERT_CLIP_ADJ_DATA_REGISTER_SIZE;
+ } pa_cl_gb_vert_clip_adj_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_cl_gb_vert_clip_adj_t {
+ unsigned int data_register : PA_CL_GB_VERT_CLIP_ADJ_DATA_REGISTER_SIZE;
+ } pa_cl_gb_vert_clip_adj_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_cl_gb_vert_clip_adj_t f;
+} pa_cl_gb_vert_clip_adj_u;
+
+
+/*
+ * PA_CL_GB_VERT_DISC_ADJ struct
+ */
+
+#define PA_CL_GB_VERT_DISC_ADJ_DATA_REGISTER_SIZE 32
+
+#define PA_CL_GB_VERT_DISC_ADJ_DATA_REGISTER_SHIFT 0
+
+#define PA_CL_GB_VERT_DISC_ADJ_DATA_REGISTER_MASK 0xffffffff
+
+#define PA_CL_GB_VERT_DISC_ADJ_MASK \
+ (PA_CL_GB_VERT_DISC_ADJ_DATA_REGISTER_MASK)
+
+#define PA_CL_GB_VERT_DISC_ADJ(data_register) \
+ ((data_register << PA_CL_GB_VERT_DISC_ADJ_DATA_REGISTER_SHIFT))
+
+#define PA_CL_GB_VERT_DISC_ADJ_GET_DATA_REGISTER(pa_cl_gb_vert_disc_adj) \
+ ((pa_cl_gb_vert_disc_adj & PA_CL_GB_VERT_DISC_ADJ_DATA_REGISTER_MASK) >> PA_CL_GB_VERT_DISC_ADJ_DATA_REGISTER_SHIFT)
+
+#define PA_CL_GB_VERT_DISC_ADJ_SET_DATA_REGISTER(pa_cl_gb_vert_disc_adj_reg, data_register) \
+ pa_cl_gb_vert_disc_adj_reg = (pa_cl_gb_vert_disc_adj_reg & ~PA_CL_GB_VERT_DISC_ADJ_DATA_REGISTER_MASK) | (data_register << PA_CL_GB_VERT_DISC_ADJ_DATA_REGISTER_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_cl_gb_vert_disc_adj_t {
+ unsigned int data_register : PA_CL_GB_VERT_DISC_ADJ_DATA_REGISTER_SIZE;
+ } pa_cl_gb_vert_disc_adj_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_cl_gb_vert_disc_adj_t {
+ unsigned int data_register : PA_CL_GB_VERT_DISC_ADJ_DATA_REGISTER_SIZE;
+ } pa_cl_gb_vert_disc_adj_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_cl_gb_vert_disc_adj_t f;
+} pa_cl_gb_vert_disc_adj_u;
+
+
+/*
+ * PA_CL_GB_HORZ_CLIP_ADJ struct
+ */
+
+#define PA_CL_GB_HORZ_CLIP_ADJ_DATA_REGISTER_SIZE 32
+
+#define PA_CL_GB_HORZ_CLIP_ADJ_DATA_REGISTER_SHIFT 0
+
+#define PA_CL_GB_HORZ_CLIP_ADJ_DATA_REGISTER_MASK 0xffffffff
+
+#define PA_CL_GB_HORZ_CLIP_ADJ_MASK \
+ (PA_CL_GB_HORZ_CLIP_ADJ_DATA_REGISTER_MASK)
+
+#define PA_CL_GB_HORZ_CLIP_ADJ(data_register) \
+ ((data_register << PA_CL_GB_HORZ_CLIP_ADJ_DATA_REGISTER_SHIFT))
+
+#define PA_CL_GB_HORZ_CLIP_ADJ_GET_DATA_REGISTER(pa_cl_gb_horz_clip_adj) \
+ ((pa_cl_gb_horz_clip_adj & PA_CL_GB_HORZ_CLIP_ADJ_DATA_REGISTER_MASK) >> PA_CL_GB_HORZ_CLIP_ADJ_DATA_REGISTER_SHIFT)
+
+#define PA_CL_GB_HORZ_CLIP_ADJ_SET_DATA_REGISTER(pa_cl_gb_horz_clip_adj_reg, data_register) \
+ pa_cl_gb_horz_clip_adj_reg = (pa_cl_gb_horz_clip_adj_reg & ~PA_CL_GB_HORZ_CLIP_ADJ_DATA_REGISTER_MASK) | (data_register << PA_CL_GB_HORZ_CLIP_ADJ_DATA_REGISTER_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_cl_gb_horz_clip_adj_t {
+ unsigned int data_register : PA_CL_GB_HORZ_CLIP_ADJ_DATA_REGISTER_SIZE;
+ } pa_cl_gb_horz_clip_adj_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_cl_gb_horz_clip_adj_t {
+ unsigned int data_register : PA_CL_GB_HORZ_CLIP_ADJ_DATA_REGISTER_SIZE;
+ } pa_cl_gb_horz_clip_adj_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_cl_gb_horz_clip_adj_t f;
+} pa_cl_gb_horz_clip_adj_u;
+
+
+/*
+ * PA_CL_GB_HORZ_DISC_ADJ struct
+ */
+
+#define PA_CL_GB_HORZ_DISC_ADJ_DATA_REGISTER_SIZE 32
+
+#define PA_CL_GB_HORZ_DISC_ADJ_DATA_REGISTER_SHIFT 0
+
+#define PA_CL_GB_HORZ_DISC_ADJ_DATA_REGISTER_MASK 0xffffffff
+
+#define PA_CL_GB_HORZ_DISC_ADJ_MASK \
+ (PA_CL_GB_HORZ_DISC_ADJ_DATA_REGISTER_MASK)
+
+#define PA_CL_GB_HORZ_DISC_ADJ(data_register) \
+ ((data_register << PA_CL_GB_HORZ_DISC_ADJ_DATA_REGISTER_SHIFT))
+
+#define PA_CL_GB_HORZ_DISC_ADJ_GET_DATA_REGISTER(pa_cl_gb_horz_disc_adj) \
+ ((pa_cl_gb_horz_disc_adj & PA_CL_GB_HORZ_DISC_ADJ_DATA_REGISTER_MASK) >> PA_CL_GB_HORZ_DISC_ADJ_DATA_REGISTER_SHIFT)
+
+#define PA_CL_GB_HORZ_DISC_ADJ_SET_DATA_REGISTER(pa_cl_gb_horz_disc_adj_reg, data_register) \
+ pa_cl_gb_horz_disc_adj_reg = (pa_cl_gb_horz_disc_adj_reg & ~PA_CL_GB_HORZ_DISC_ADJ_DATA_REGISTER_MASK) | (data_register << PA_CL_GB_HORZ_DISC_ADJ_DATA_REGISTER_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_cl_gb_horz_disc_adj_t {
+ unsigned int data_register : PA_CL_GB_HORZ_DISC_ADJ_DATA_REGISTER_SIZE;
+ } pa_cl_gb_horz_disc_adj_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_cl_gb_horz_disc_adj_t {
+ unsigned int data_register : PA_CL_GB_HORZ_DISC_ADJ_DATA_REGISTER_SIZE;
+ } pa_cl_gb_horz_disc_adj_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_cl_gb_horz_disc_adj_t f;
+} pa_cl_gb_horz_disc_adj_u;
+
+
+/*
+ * PA_CL_ENHANCE struct
+ */
+
+#define PA_CL_ENHANCE_CLIP_VTX_REORDER_ENA_SIZE 1
+#define PA_CL_ENHANCE_ECO_SPARE3_SIZE 1
+#define PA_CL_ENHANCE_ECO_SPARE2_SIZE 1
+#define PA_CL_ENHANCE_ECO_SPARE1_SIZE 1
+#define PA_CL_ENHANCE_ECO_SPARE0_SIZE 1
+
+#define PA_CL_ENHANCE_CLIP_VTX_REORDER_ENA_SHIFT 0
+#define PA_CL_ENHANCE_ECO_SPARE3_SHIFT 28
+#define PA_CL_ENHANCE_ECO_SPARE2_SHIFT 29
+#define PA_CL_ENHANCE_ECO_SPARE1_SHIFT 30
+#define PA_CL_ENHANCE_ECO_SPARE0_SHIFT 31
+
+#define PA_CL_ENHANCE_CLIP_VTX_REORDER_ENA_MASK 0x00000001
+#define PA_CL_ENHANCE_ECO_SPARE3_MASK 0x10000000
+#define PA_CL_ENHANCE_ECO_SPARE2_MASK 0x20000000
+#define PA_CL_ENHANCE_ECO_SPARE1_MASK 0x40000000
+#define PA_CL_ENHANCE_ECO_SPARE0_MASK 0x80000000
+
+#define PA_CL_ENHANCE_MASK \
+ (PA_CL_ENHANCE_CLIP_VTX_REORDER_ENA_MASK | \
+ PA_CL_ENHANCE_ECO_SPARE3_MASK | \
+ PA_CL_ENHANCE_ECO_SPARE2_MASK | \
+ PA_CL_ENHANCE_ECO_SPARE1_MASK | \
+ PA_CL_ENHANCE_ECO_SPARE0_MASK)
+
+#define PA_CL_ENHANCE(clip_vtx_reorder_ena, eco_spare3, eco_spare2, eco_spare1, eco_spare0) \
+ ((clip_vtx_reorder_ena << PA_CL_ENHANCE_CLIP_VTX_REORDER_ENA_SHIFT) | \
+ (eco_spare3 << PA_CL_ENHANCE_ECO_SPARE3_SHIFT) | \
+ (eco_spare2 << PA_CL_ENHANCE_ECO_SPARE2_SHIFT) | \
+ (eco_spare1 << PA_CL_ENHANCE_ECO_SPARE1_SHIFT) | \
+ (eco_spare0 << PA_CL_ENHANCE_ECO_SPARE0_SHIFT))
+
+#define PA_CL_ENHANCE_GET_CLIP_VTX_REORDER_ENA(pa_cl_enhance) \
+ ((pa_cl_enhance & PA_CL_ENHANCE_CLIP_VTX_REORDER_ENA_MASK) >> PA_CL_ENHANCE_CLIP_VTX_REORDER_ENA_SHIFT)
+#define PA_CL_ENHANCE_GET_ECO_SPARE3(pa_cl_enhance) \
+ ((pa_cl_enhance & PA_CL_ENHANCE_ECO_SPARE3_MASK) >> PA_CL_ENHANCE_ECO_SPARE3_SHIFT)
+#define PA_CL_ENHANCE_GET_ECO_SPARE2(pa_cl_enhance) \
+ ((pa_cl_enhance & PA_CL_ENHANCE_ECO_SPARE2_MASK) >> PA_CL_ENHANCE_ECO_SPARE2_SHIFT)
+#define PA_CL_ENHANCE_GET_ECO_SPARE1(pa_cl_enhance) \
+ ((pa_cl_enhance & PA_CL_ENHANCE_ECO_SPARE1_MASK) >> PA_CL_ENHANCE_ECO_SPARE1_SHIFT)
+#define PA_CL_ENHANCE_GET_ECO_SPARE0(pa_cl_enhance) \
+ ((pa_cl_enhance & PA_CL_ENHANCE_ECO_SPARE0_MASK) >> PA_CL_ENHANCE_ECO_SPARE0_SHIFT)
+
+#define PA_CL_ENHANCE_SET_CLIP_VTX_REORDER_ENA(pa_cl_enhance_reg, clip_vtx_reorder_ena) \
+ pa_cl_enhance_reg = (pa_cl_enhance_reg & ~PA_CL_ENHANCE_CLIP_VTX_REORDER_ENA_MASK) | (clip_vtx_reorder_ena << PA_CL_ENHANCE_CLIP_VTX_REORDER_ENA_SHIFT)
+#define PA_CL_ENHANCE_SET_ECO_SPARE3(pa_cl_enhance_reg, eco_spare3) \
+ pa_cl_enhance_reg = (pa_cl_enhance_reg & ~PA_CL_ENHANCE_ECO_SPARE3_MASK) | (eco_spare3 << PA_CL_ENHANCE_ECO_SPARE3_SHIFT)
+#define PA_CL_ENHANCE_SET_ECO_SPARE2(pa_cl_enhance_reg, eco_spare2) \
+ pa_cl_enhance_reg = (pa_cl_enhance_reg & ~PA_CL_ENHANCE_ECO_SPARE2_MASK) | (eco_spare2 << PA_CL_ENHANCE_ECO_SPARE2_SHIFT)
+#define PA_CL_ENHANCE_SET_ECO_SPARE1(pa_cl_enhance_reg, eco_spare1) \
+ pa_cl_enhance_reg = (pa_cl_enhance_reg & ~PA_CL_ENHANCE_ECO_SPARE1_MASK) | (eco_spare1 << PA_CL_ENHANCE_ECO_SPARE1_SHIFT)
+#define PA_CL_ENHANCE_SET_ECO_SPARE0(pa_cl_enhance_reg, eco_spare0) \
+ pa_cl_enhance_reg = (pa_cl_enhance_reg & ~PA_CL_ENHANCE_ECO_SPARE0_MASK) | (eco_spare0 << PA_CL_ENHANCE_ECO_SPARE0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_cl_enhance_t {
+ unsigned int clip_vtx_reorder_ena : PA_CL_ENHANCE_CLIP_VTX_REORDER_ENA_SIZE;
+ unsigned int : 27;
+ unsigned int eco_spare3 : PA_CL_ENHANCE_ECO_SPARE3_SIZE;
+ unsigned int eco_spare2 : PA_CL_ENHANCE_ECO_SPARE2_SIZE;
+ unsigned int eco_spare1 : PA_CL_ENHANCE_ECO_SPARE1_SIZE;
+ unsigned int eco_spare0 : PA_CL_ENHANCE_ECO_SPARE0_SIZE;
+ } pa_cl_enhance_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_cl_enhance_t {
+ unsigned int eco_spare0 : PA_CL_ENHANCE_ECO_SPARE0_SIZE;
+ unsigned int eco_spare1 : PA_CL_ENHANCE_ECO_SPARE1_SIZE;
+ unsigned int eco_spare2 : PA_CL_ENHANCE_ECO_SPARE2_SIZE;
+ unsigned int eco_spare3 : PA_CL_ENHANCE_ECO_SPARE3_SIZE;
+ unsigned int : 27;
+ unsigned int clip_vtx_reorder_ena : PA_CL_ENHANCE_CLIP_VTX_REORDER_ENA_SIZE;
+ } pa_cl_enhance_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_cl_enhance_t f;
+} pa_cl_enhance_u;
+
+
+/*
+ * PA_SC_ENHANCE struct
+ */
+
+#define PA_SC_ENHANCE_ECO_SPARE3_SIZE 1
+#define PA_SC_ENHANCE_ECO_SPARE2_SIZE 1
+#define PA_SC_ENHANCE_ECO_SPARE1_SIZE 1
+#define PA_SC_ENHANCE_ECO_SPARE0_SIZE 1
+
+#define PA_SC_ENHANCE_ECO_SPARE3_SHIFT 28
+#define PA_SC_ENHANCE_ECO_SPARE2_SHIFT 29
+#define PA_SC_ENHANCE_ECO_SPARE1_SHIFT 30
+#define PA_SC_ENHANCE_ECO_SPARE0_SHIFT 31
+
+#define PA_SC_ENHANCE_ECO_SPARE3_MASK 0x10000000
+#define PA_SC_ENHANCE_ECO_SPARE2_MASK 0x20000000
+#define PA_SC_ENHANCE_ECO_SPARE1_MASK 0x40000000
+#define PA_SC_ENHANCE_ECO_SPARE0_MASK 0x80000000
+
+#define PA_SC_ENHANCE_MASK \
+ (PA_SC_ENHANCE_ECO_SPARE3_MASK | \
+ PA_SC_ENHANCE_ECO_SPARE2_MASK | \
+ PA_SC_ENHANCE_ECO_SPARE1_MASK | \
+ PA_SC_ENHANCE_ECO_SPARE0_MASK)
+
+#define PA_SC_ENHANCE(eco_spare3, eco_spare2, eco_spare1, eco_spare0) \
+ ((eco_spare3 << PA_SC_ENHANCE_ECO_SPARE3_SHIFT) | \
+ (eco_spare2 << PA_SC_ENHANCE_ECO_SPARE2_SHIFT) | \
+ (eco_spare1 << PA_SC_ENHANCE_ECO_SPARE1_SHIFT) | \
+ (eco_spare0 << PA_SC_ENHANCE_ECO_SPARE0_SHIFT))
+
+#define PA_SC_ENHANCE_GET_ECO_SPARE3(pa_sc_enhance) \
+ ((pa_sc_enhance & PA_SC_ENHANCE_ECO_SPARE3_MASK) >> PA_SC_ENHANCE_ECO_SPARE3_SHIFT)
+#define PA_SC_ENHANCE_GET_ECO_SPARE2(pa_sc_enhance) \
+ ((pa_sc_enhance & PA_SC_ENHANCE_ECO_SPARE2_MASK) >> PA_SC_ENHANCE_ECO_SPARE2_SHIFT)
+#define PA_SC_ENHANCE_GET_ECO_SPARE1(pa_sc_enhance) \
+ ((pa_sc_enhance & PA_SC_ENHANCE_ECO_SPARE1_MASK) >> PA_SC_ENHANCE_ECO_SPARE1_SHIFT)
+#define PA_SC_ENHANCE_GET_ECO_SPARE0(pa_sc_enhance) \
+ ((pa_sc_enhance & PA_SC_ENHANCE_ECO_SPARE0_MASK) >> PA_SC_ENHANCE_ECO_SPARE0_SHIFT)
+
+#define PA_SC_ENHANCE_SET_ECO_SPARE3(pa_sc_enhance_reg, eco_spare3) \
+ pa_sc_enhance_reg = (pa_sc_enhance_reg & ~PA_SC_ENHANCE_ECO_SPARE3_MASK) | (eco_spare3 << PA_SC_ENHANCE_ECO_SPARE3_SHIFT)
+#define PA_SC_ENHANCE_SET_ECO_SPARE2(pa_sc_enhance_reg, eco_spare2) \
+ pa_sc_enhance_reg = (pa_sc_enhance_reg & ~PA_SC_ENHANCE_ECO_SPARE2_MASK) | (eco_spare2 << PA_SC_ENHANCE_ECO_SPARE2_SHIFT)
+#define PA_SC_ENHANCE_SET_ECO_SPARE1(pa_sc_enhance_reg, eco_spare1) \
+ pa_sc_enhance_reg = (pa_sc_enhance_reg & ~PA_SC_ENHANCE_ECO_SPARE1_MASK) | (eco_spare1 << PA_SC_ENHANCE_ECO_SPARE1_SHIFT)
+#define PA_SC_ENHANCE_SET_ECO_SPARE0(pa_sc_enhance_reg, eco_spare0) \
+ pa_sc_enhance_reg = (pa_sc_enhance_reg & ~PA_SC_ENHANCE_ECO_SPARE0_MASK) | (eco_spare0 << PA_SC_ENHANCE_ECO_SPARE0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_enhance_t {
+ unsigned int : 28;
+ unsigned int eco_spare3 : PA_SC_ENHANCE_ECO_SPARE3_SIZE;
+ unsigned int eco_spare2 : PA_SC_ENHANCE_ECO_SPARE2_SIZE;
+ unsigned int eco_spare1 : PA_SC_ENHANCE_ECO_SPARE1_SIZE;
+ unsigned int eco_spare0 : PA_SC_ENHANCE_ECO_SPARE0_SIZE;
+ } pa_sc_enhance_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_enhance_t {
+ unsigned int eco_spare0 : PA_SC_ENHANCE_ECO_SPARE0_SIZE;
+ unsigned int eco_spare1 : PA_SC_ENHANCE_ECO_SPARE1_SIZE;
+ unsigned int eco_spare2 : PA_SC_ENHANCE_ECO_SPARE2_SIZE;
+ unsigned int eco_spare3 : PA_SC_ENHANCE_ECO_SPARE3_SIZE;
+ unsigned int : 28;
+ } pa_sc_enhance_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_enhance_t f;
+} pa_sc_enhance_u;
+
+
+/*
+ * PA_SU_VTX_CNTL struct
+ */
+
+#define PA_SU_VTX_CNTL_PIX_CENTER_SIZE 1
+#define PA_SU_VTX_CNTL_ROUND_MODE_SIZE 2
+#define PA_SU_VTX_CNTL_QUANT_MODE_SIZE 3
+
+#define PA_SU_VTX_CNTL_PIX_CENTER_SHIFT 0
+#define PA_SU_VTX_CNTL_ROUND_MODE_SHIFT 1
+#define PA_SU_VTX_CNTL_QUANT_MODE_SHIFT 3
+
+#define PA_SU_VTX_CNTL_PIX_CENTER_MASK 0x00000001
+#define PA_SU_VTX_CNTL_ROUND_MODE_MASK 0x00000006
+#define PA_SU_VTX_CNTL_QUANT_MODE_MASK 0x00000038
+
+#define PA_SU_VTX_CNTL_MASK \
+ (PA_SU_VTX_CNTL_PIX_CENTER_MASK | \
+ PA_SU_VTX_CNTL_ROUND_MODE_MASK | \
+ PA_SU_VTX_CNTL_QUANT_MODE_MASK)
+
+#define PA_SU_VTX_CNTL(pix_center, round_mode, quant_mode) \
+ ((pix_center << PA_SU_VTX_CNTL_PIX_CENTER_SHIFT) | \
+ (round_mode << PA_SU_VTX_CNTL_ROUND_MODE_SHIFT) | \
+ (quant_mode << PA_SU_VTX_CNTL_QUANT_MODE_SHIFT))
+
+#define PA_SU_VTX_CNTL_GET_PIX_CENTER(pa_su_vtx_cntl) \
+ ((pa_su_vtx_cntl & PA_SU_VTX_CNTL_PIX_CENTER_MASK) >> PA_SU_VTX_CNTL_PIX_CENTER_SHIFT)
+#define PA_SU_VTX_CNTL_GET_ROUND_MODE(pa_su_vtx_cntl) \
+ ((pa_su_vtx_cntl & PA_SU_VTX_CNTL_ROUND_MODE_MASK) >> PA_SU_VTX_CNTL_ROUND_MODE_SHIFT)
+#define PA_SU_VTX_CNTL_GET_QUANT_MODE(pa_su_vtx_cntl) \
+ ((pa_su_vtx_cntl & PA_SU_VTX_CNTL_QUANT_MODE_MASK) >> PA_SU_VTX_CNTL_QUANT_MODE_SHIFT)
+
+#define PA_SU_VTX_CNTL_SET_PIX_CENTER(pa_su_vtx_cntl_reg, pix_center) \
+ pa_su_vtx_cntl_reg = (pa_su_vtx_cntl_reg & ~PA_SU_VTX_CNTL_PIX_CENTER_MASK) | (pix_center << PA_SU_VTX_CNTL_PIX_CENTER_SHIFT)
+#define PA_SU_VTX_CNTL_SET_ROUND_MODE(pa_su_vtx_cntl_reg, round_mode) \
+ pa_su_vtx_cntl_reg = (pa_su_vtx_cntl_reg & ~PA_SU_VTX_CNTL_ROUND_MODE_MASK) | (round_mode << PA_SU_VTX_CNTL_ROUND_MODE_SHIFT)
+#define PA_SU_VTX_CNTL_SET_QUANT_MODE(pa_su_vtx_cntl_reg, quant_mode) \
+ pa_su_vtx_cntl_reg = (pa_su_vtx_cntl_reg & ~PA_SU_VTX_CNTL_QUANT_MODE_MASK) | (quant_mode << PA_SU_VTX_CNTL_QUANT_MODE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_vtx_cntl_t {
+ unsigned int pix_center : PA_SU_VTX_CNTL_PIX_CENTER_SIZE;
+ unsigned int round_mode : PA_SU_VTX_CNTL_ROUND_MODE_SIZE;
+ unsigned int quant_mode : PA_SU_VTX_CNTL_QUANT_MODE_SIZE;
+ unsigned int : 26;
+ } pa_su_vtx_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_vtx_cntl_t {
+ unsigned int : 26;
+ unsigned int quant_mode : PA_SU_VTX_CNTL_QUANT_MODE_SIZE;
+ unsigned int round_mode : PA_SU_VTX_CNTL_ROUND_MODE_SIZE;
+ unsigned int pix_center : PA_SU_VTX_CNTL_PIX_CENTER_SIZE;
+ } pa_su_vtx_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_vtx_cntl_t f;
+} pa_su_vtx_cntl_u;
+
+
+/*
+ * PA_SU_POINT_SIZE struct
+ */
+
+#define PA_SU_POINT_SIZE_HEIGHT_SIZE 16
+#define PA_SU_POINT_SIZE_WIDTH_SIZE 16
+
+#define PA_SU_POINT_SIZE_HEIGHT_SHIFT 0
+#define PA_SU_POINT_SIZE_WIDTH_SHIFT 16
+
+#define PA_SU_POINT_SIZE_HEIGHT_MASK 0x0000ffff
+#define PA_SU_POINT_SIZE_WIDTH_MASK 0xffff0000
+
+#define PA_SU_POINT_SIZE_MASK \
+ (PA_SU_POINT_SIZE_HEIGHT_MASK | \
+ PA_SU_POINT_SIZE_WIDTH_MASK)
+
+#define PA_SU_POINT_SIZE(height, width) \
+ ((height << PA_SU_POINT_SIZE_HEIGHT_SHIFT) | \
+ (width << PA_SU_POINT_SIZE_WIDTH_SHIFT))
+
+#define PA_SU_POINT_SIZE_GET_HEIGHT(pa_su_point_size) \
+ ((pa_su_point_size & PA_SU_POINT_SIZE_HEIGHT_MASK) >> PA_SU_POINT_SIZE_HEIGHT_SHIFT)
+#define PA_SU_POINT_SIZE_GET_WIDTH(pa_su_point_size) \
+ ((pa_su_point_size & PA_SU_POINT_SIZE_WIDTH_MASK) >> PA_SU_POINT_SIZE_WIDTH_SHIFT)
+
+#define PA_SU_POINT_SIZE_SET_HEIGHT(pa_su_point_size_reg, height) \
+ pa_su_point_size_reg = (pa_su_point_size_reg & ~PA_SU_POINT_SIZE_HEIGHT_MASK) | (height << PA_SU_POINT_SIZE_HEIGHT_SHIFT)
+#define PA_SU_POINT_SIZE_SET_WIDTH(pa_su_point_size_reg, width) \
+ pa_su_point_size_reg = (pa_su_point_size_reg & ~PA_SU_POINT_SIZE_WIDTH_MASK) | (width << PA_SU_POINT_SIZE_WIDTH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_point_size_t {
+ unsigned int height : PA_SU_POINT_SIZE_HEIGHT_SIZE;
+ unsigned int width : PA_SU_POINT_SIZE_WIDTH_SIZE;
+ } pa_su_point_size_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_point_size_t {
+ unsigned int width : PA_SU_POINT_SIZE_WIDTH_SIZE;
+ unsigned int height : PA_SU_POINT_SIZE_HEIGHT_SIZE;
+ } pa_su_point_size_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_point_size_t f;
+} pa_su_point_size_u;
+
+
+/*
+ * PA_SU_POINT_MINMAX struct
+ */
+
+#define PA_SU_POINT_MINMAX_MIN_SIZE_SIZE 16
+#define PA_SU_POINT_MINMAX_MAX_SIZE_SIZE 16
+
+#define PA_SU_POINT_MINMAX_MIN_SIZE_SHIFT 0
+#define PA_SU_POINT_MINMAX_MAX_SIZE_SHIFT 16
+
+#define PA_SU_POINT_MINMAX_MIN_SIZE_MASK 0x0000ffff
+#define PA_SU_POINT_MINMAX_MAX_SIZE_MASK 0xffff0000
+
+#define PA_SU_POINT_MINMAX_MASK \
+ (PA_SU_POINT_MINMAX_MIN_SIZE_MASK | \
+ PA_SU_POINT_MINMAX_MAX_SIZE_MASK)
+
+#define PA_SU_POINT_MINMAX(min_size, max_size) \
+ ((min_size << PA_SU_POINT_MINMAX_MIN_SIZE_SHIFT) | \
+ (max_size << PA_SU_POINT_MINMAX_MAX_SIZE_SHIFT))
+
+#define PA_SU_POINT_MINMAX_GET_MIN_SIZE(pa_su_point_minmax) \
+ ((pa_su_point_minmax & PA_SU_POINT_MINMAX_MIN_SIZE_MASK) >> PA_SU_POINT_MINMAX_MIN_SIZE_SHIFT)
+#define PA_SU_POINT_MINMAX_GET_MAX_SIZE(pa_su_point_minmax) \
+ ((pa_su_point_minmax & PA_SU_POINT_MINMAX_MAX_SIZE_MASK) >> PA_SU_POINT_MINMAX_MAX_SIZE_SHIFT)
+
+#define PA_SU_POINT_MINMAX_SET_MIN_SIZE(pa_su_point_minmax_reg, min_size) \
+ pa_su_point_minmax_reg = (pa_su_point_minmax_reg & ~PA_SU_POINT_MINMAX_MIN_SIZE_MASK) | (min_size << PA_SU_POINT_MINMAX_MIN_SIZE_SHIFT)
+#define PA_SU_POINT_MINMAX_SET_MAX_SIZE(pa_su_point_minmax_reg, max_size) \
+ pa_su_point_minmax_reg = (pa_su_point_minmax_reg & ~PA_SU_POINT_MINMAX_MAX_SIZE_MASK) | (max_size << PA_SU_POINT_MINMAX_MAX_SIZE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_point_minmax_t {
+ unsigned int min_size : PA_SU_POINT_MINMAX_MIN_SIZE_SIZE;
+ unsigned int max_size : PA_SU_POINT_MINMAX_MAX_SIZE_SIZE;
+ } pa_su_point_minmax_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_point_minmax_t {
+ unsigned int max_size : PA_SU_POINT_MINMAX_MAX_SIZE_SIZE;
+ unsigned int min_size : PA_SU_POINT_MINMAX_MIN_SIZE_SIZE;
+ } pa_su_point_minmax_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_point_minmax_t f;
+} pa_su_point_minmax_u;
+
+
+/*
+ * PA_SU_LINE_CNTL struct
+ */
+
+#define PA_SU_LINE_CNTL_WIDTH_SIZE 16
+
+#define PA_SU_LINE_CNTL_WIDTH_SHIFT 0
+
+#define PA_SU_LINE_CNTL_WIDTH_MASK 0x0000ffff
+
+#define PA_SU_LINE_CNTL_MASK \
+ (PA_SU_LINE_CNTL_WIDTH_MASK)
+
+#define PA_SU_LINE_CNTL(width) \
+ ((width << PA_SU_LINE_CNTL_WIDTH_SHIFT))
+
+#define PA_SU_LINE_CNTL_GET_WIDTH(pa_su_line_cntl) \
+ ((pa_su_line_cntl & PA_SU_LINE_CNTL_WIDTH_MASK) >> PA_SU_LINE_CNTL_WIDTH_SHIFT)
+
+#define PA_SU_LINE_CNTL_SET_WIDTH(pa_su_line_cntl_reg, width) \
+ pa_su_line_cntl_reg = (pa_su_line_cntl_reg & ~PA_SU_LINE_CNTL_WIDTH_MASK) | (width << PA_SU_LINE_CNTL_WIDTH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_line_cntl_t {
+ unsigned int width : PA_SU_LINE_CNTL_WIDTH_SIZE;
+ unsigned int : 16;
+ } pa_su_line_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_line_cntl_t {
+ unsigned int : 16;
+ unsigned int width : PA_SU_LINE_CNTL_WIDTH_SIZE;
+ } pa_su_line_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_line_cntl_t f;
+} pa_su_line_cntl_u;
+
+
+/*
+ * PA_SU_FACE_DATA struct
+ */
+
+#define PA_SU_FACE_DATA_BASE_ADDR_SIZE 27
+
+#define PA_SU_FACE_DATA_BASE_ADDR_SHIFT 5
+
+#define PA_SU_FACE_DATA_BASE_ADDR_MASK 0xffffffe0
+
+#define PA_SU_FACE_DATA_MASK \
+ (PA_SU_FACE_DATA_BASE_ADDR_MASK)
+
+#define PA_SU_FACE_DATA(base_addr) \
+ ((base_addr << PA_SU_FACE_DATA_BASE_ADDR_SHIFT))
+
+#define PA_SU_FACE_DATA_GET_BASE_ADDR(pa_su_face_data) \
+ ((pa_su_face_data & PA_SU_FACE_DATA_BASE_ADDR_MASK) >> PA_SU_FACE_DATA_BASE_ADDR_SHIFT)
+
+#define PA_SU_FACE_DATA_SET_BASE_ADDR(pa_su_face_data_reg, base_addr) \
+ pa_su_face_data_reg = (pa_su_face_data_reg & ~PA_SU_FACE_DATA_BASE_ADDR_MASK) | (base_addr << PA_SU_FACE_DATA_BASE_ADDR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_face_data_t {
+ unsigned int : 5;
+ unsigned int base_addr : PA_SU_FACE_DATA_BASE_ADDR_SIZE;
+ } pa_su_face_data_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_face_data_t {
+ unsigned int base_addr : PA_SU_FACE_DATA_BASE_ADDR_SIZE;
+ unsigned int : 5;
+ } pa_su_face_data_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_face_data_t f;
+} pa_su_face_data_u;
+
+
+/*
+ * PA_SU_SC_MODE_CNTL struct
+ */
+
+#define PA_SU_SC_MODE_CNTL_CULL_FRONT_SIZE 1
+#define PA_SU_SC_MODE_CNTL_CULL_BACK_SIZE 1
+#define PA_SU_SC_MODE_CNTL_FACE_SIZE 1
+#define PA_SU_SC_MODE_CNTL_POLY_MODE_SIZE 2
+#define PA_SU_SC_MODE_CNTL_POLYMODE_FRONT_PTYPE_SIZE 3
+#define PA_SU_SC_MODE_CNTL_POLYMODE_BACK_PTYPE_SIZE 3
+#define PA_SU_SC_MODE_CNTL_POLY_OFFSET_FRONT_ENABLE_SIZE 1
+#define PA_SU_SC_MODE_CNTL_POLY_OFFSET_BACK_ENABLE_SIZE 1
+#define PA_SU_SC_MODE_CNTL_POLY_OFFSET_PARA_ENABLE_SIZE 1
+#define PA_SU_SC_MODE_CNTL_MSAA_ENABLE_SIZE 1
+#define PA_SU_SC_MODE_CNTL_VTX_WINDOW_OFFSET_ENABLE_SIZE 1
+#define PA_SU_SC_MODE_CNTL_LINE_STIPPLE_ENABLE_SIZE 1
+#define PA_SU_SC_MODE_CNTL_PROVOKING_VTX_LAST_SIZE 1
+#define PA_SU_SC_MODE_CNTL_PERSP_CORR_DIS_SIZE 1
+#define PA_SU_SC_MODE_CNTL_MULTI_PRIM_IB_ENA_SIZE 1
+#define PA_SU_SC_MODE_CNTL_QUAD_ORDER_ENABLE_SIZE 1
+#define PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_ALL_TRI_SIZE 1
+#define PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_FIRST_TRI_NEW_STATE_SIZE 1
+#define PA_SU_SC_MODE_CNTL_CLAMPED_FACENESS_SIZE 1
+#define PA_SU_SC_MODE_CNTL_ZERO_AREA_FACENESS_SIZE 1
+#define PA_SU_SC_MODE_CNTL_FACE_KILL_ENABLE_SIZE 1
+#define PA_SU_SC_MODE_CNTL_FACE_WRITE_ENABLE_SIZE 1
+
+#define PA_SU_SC_MODE_CNTL_CULL_FRONT_SHIFT 0
+#define PA_SU_SC_MODE_CNTL_CULL_BACK_SHIFT 1
+#define PA_SU_SC_MODE_CNTL_FACE_SHIFT 2
+#define PA_SU_SC_MODE_CNTL_POLY_MODE_SHIFT 3
+#define PA_SU_SC_MODE_CNTL_POLYMODE_FRONT_PTYPE_SHIFT 5
+#define PA_SU_SC_MODE_CNTL_POLYMODE_BACK_PTYPE_SHIFT 8
+#define PA_SU_SC_MODE_CNTL_POLY_OFFSET_FRONT_ENABLE_SHIFT 11
+#define PA_SU_SC_MODE_CNTL_POLY_OFFSET_BACK_ENABLE_SHIFT 12
+#define PA_SU_SC_MODE_CNTL_POLY_OFFSET_PARA_ENABLE_SHIFT 13
+#define PA_SU_SC_MODE_CNTL_MSAA_ENABLE_SHIFT 15
+#define PA_SU_SC_MODE_CNTL_VTX_WINDOW_OFFSET_ENABLE_SHIFT 16
+#define PA_SU_SC_MODE_CNTL_LINE_STIPPLE_ENABLE_SHIFT 18
+#define PA_SU_SC_MODE_CNTL_PROVOKING_VTX_LAST_SHIFT 19
+#define PA_SU_SC_MODE_CNTL_PERSP_CORR_DIS_SHIFT 20
+#define PA_SU_SC_MODE_CNTL_MULTI_PRIM_IB_ENA_SHIFT 21
+#define PA_SU_SC_MODE_CNTL_QUAD_ORDER_ENABLE_SHIFT 23
+#define PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_ALL_TRI_SHIFT 25
+#define PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_FIRST_TRI_NEW_STATE_SHIFT 26
+#define PA_SU_SC_MODE_CNTL_CLAMPED_FACENESS_SHIFT 28
+#define PA_SU_SC_MODE_CNTL_ZERO_AREA_FACENESS_SHIFT 29
+#define PA_SU_SC_MODE_CNTL_FACE_KILL_ENABLE_SHIFT 30
+#define PA_SU_SC_MODE_CNTL_FACE_WRITE_ENABLE_SHIFT 31
+
+#define PA_SU_SC_MODE_CNTL_CULL_FRONT_MASK 0x00000001
+#define PA_SU_SC_MODE_CNTL_CULL_BACK_MASK 0x00000002
+#define PA_SU_SC_MODE_CNTL_FACE_MASK 0x00000004
+#define PA_SU_SC_MODE_CNTL_POLY_MODE_MASK 0x00000018
+#define PA_SU_SC_MODE_CNTL_POLYMODE_FRONT_PTYPE_MASK 0x000000e0
+#define PA_SU_SC_MODE_CNTL_POLYMODE_BACK_PTYPE_MASK 0x00000700
+#define PA_SU_SC_MODE_CNTL_POLY_OFFSET_FRONT_ENABLE_MASK 0x00000800
+#define PA_SU_SC_MODE_CNTL_POLY_OFFSET_BACK_ENABLE_MASK 0x00001000
+#define PA_SU_SC_MODE_CNTL_POLY_OFFSET_PARA_ENABLE_MASK 0x00002000
+#define PA_SU_SC_MODE_CNTL_MSAA_ENABLE_MASK 0x00008000
+#define PA_SU_SC_MODE_CNTL_VTX_WINDOW_OFFSET_ENABLE_MASK 0x00010000
+#define PA_SU_SC_MODE_CNTL_LINE_STIPPLE_ENABLE_MASK 0x00040000
+#define PA_SU_SC_MODE_CNTL_PROVOKING_VTX_LAST_MASK 0x00080000
+#define PA_SU_SC_MODE_CNTL_PERSP_CORR_DIS_MASK 0x00100000
+#define PA_SU_SC_MODE_CNTL_MULTI_PRIM_IB_ENA_MASK 0x00200000
+#define PA_SU_SC_MODE_CNTL_QUAD_ORDER_ENABLE_MASK 0x00800000
+#define PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_ALL_TRI_MASK 0x02000000
+#define PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_FIRST_TRI_NEW_STATE_MASK 0x04000000
+#define PA_SU_SC_MODE_CNTL_CLAMPED_FACENESS_MASK 0x10000000
+#define PA_SU_SC_MODE_CNTL_ZERO_AREA_FACENESS_MASK 0x20000000
+#define PA_SU_SC_MODE_CNTL_FACE_KILL_ENABLE_MASK 0x40000000
+#define PA_SU_SC_MODE_CNTL_FACE_WRITE_ENABLE_MASK 0x80000000
+
+#define PA_SU_SC_MODE_CNTL_MASK \
+ (PA_SU_SC_MODE_CNTL_CULL_FRONT_MASK | \
+ PA_SU_SC_MODE_CNTL_CULL_BACK_MASK | \
+ PA_SU_SC_MODE_CNTL_FACE_MASK | \
+ PA_SU_SC_MODE_CNTL_POLY_MODE_MASK | \
+ PA_SU_SC_MODE_CNTL_POLYMODE_FRONT_PTYPE_MASK | \
+ PA_SU_SC_MODE_CNTL_POLYMODE_BACK_PTYPE_MASK | \
+ PA_SU_SC_MODE_CNTL_POLY_OFFSET_FRONT_ENABLE_MASK | \
+ PA_SU_SC_MODE_CNTL_POLY_OFFSET_BACK_ENABLE_MASK | \
+ PA_SU_SC_MODE_CNTL_POLY_OFFSET_PARA_ENABLE_MASK | \
+ PA_SU_SC_MODE_CNTL_MSAA_ENABLE_MASK | \
+ PA_SU_SC_MODE_CNTL_VTX_WINDOW_OFFSET_ENABLE_MASK | \
+ PA_SU_SC_MODE_CNTL_LINE_STIPPLE_ENABLE_MASK | \
+ PA_SU_SC_MODE_CNTL_PROVOKING_VTX_LAST_MASK | \
+ PA_SU_SC_MODE_CNTL_PERSP_CORR_DIS_MASK | \
+ PA_SU_SC_MODE_CNTL_MULTI_PRIM_IB_ENA_MASK | \
+ PA_SU_SC_MODE_CNTL_QUAD_ORDER_ENABLE_MASK | \
+ PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_ALL_TRI_MASK | \
+ PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_FIRST_TRI_NEW_STATE_MASK | \
+ PA_SU_SC_MODE_CNTL_CLAMPED_FACENESS_MASK | \
+ PA_SU_SC_MODE_CNTL_ZERO_AREA_FACENESS_MASK | \
+ PA_SU_SC_MODE_CNTL_FACE_KILL_ENABLE_MASK | \
+ PA_SU_SC_MODE_CNTL_FACE_WRITE_ENABLE_MASK)
+
+#define PA_SU_SC_MODE_CNTL(cull_front, cull_back, face, poly_mode, polymode_front_ptype, polymode_back_ptype, poly_offset_front_enable, poly_offset_back_enable, poly_offset_para_enable, msaa_enable, vtx_window_offset_enable, line_stipple_enable, provoking_vtx_last, persp_corr_dis, multi_prim_ib_ena, quad_order_enable, wait_rb_idle_all_tri, wait_rb_idle_first_tri_new_state, clamped_faceness, zero_area_faceness, face_kill_enable, face_write_enable) \
+ ((cull_front << PA_SU_SC_MODE_CNTL_CULL_FRONT_SHIFT) | \
+ (cull_back << PA_SU_SC_MODE_CNTL_CULL_BACK_SHIFT) | \
+ (face << PA_SU_SC_MODE_CNTL_FACE_SHIFT) | \
+ (poly_mode << PA_SU_SC_MODE_CNTL_POLY_MODE_SHIFT) | \
+ (polymode_front_ptype << PA_SU_SC_MODE_CNTL_POLYMODE_FRONT_PTYPE_SHIFT) | \
+ (polymode_back_ptype << PA_SU_SC_MODE_CNTL_POLYMODE_BACK_PTYPE_SHIFT) | \
+ (poly_offset_front_enable << PA_SU_SC_MODE_CNTL_POLY_OFFSET_FRONT_ENABLE_SHIFT) | \
+ (poly_offset_back_enable << PA_SU_SC_MODE_CNTL_POLY_OFFSET_BACK_ENABLE_SHIFT) | \
+ (poly_offset_para_enable << PA_SU_SC_MODE_CNTL_POLY_OFFSET_PARA_ENABLE_SHIFT) | \
+ (msaa_enable << PA_SU_SC_MODE_CNTL_MSAA_ENABLE_SHIFT) | \
+ (vtx_window_offset_enable << PA_SU_SC_MODE_CNTL_VTX_WINDOW_OFFSET_ENABLE_SHIFT) | \
+ (line_stipple_enable << PA_SU_SC_MODE_CNTL_LINE_STIPPLE_ENABLE_SHIFT) | \
+ (provoking_vtx_last << PA_SU_SC_MODE_CNTL_PROVOKING_VTX_LAST_SHIFT) | \
+ (persp_corr_dis << PA_SU_SC_MODE_CNTL_PERSP_CORR_DIS_SHIFT) | \
+ (multi_prim_ib_ena << PA_SU_SC_MODE_CNTL_MULTI_PRIM_IB_ENA_SHIFT) | \
+ (quad_order_enable << PA_SU_SC_MODE_CNTL_QUAD_ORDER_ENABLE_SHIFT) | \
+ (wait_rb_idle_all_tri << PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_ALL_TRI_SHIFT) | \
+ (wait_rb_idle_first_tri_new_state << PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_FIRST_TRI_NEW_STATE_SHIFT) | \
+ (clamped_faceness << PA_SU_SC_MODE_CNTL_CLAMPED_FACENESS_SHIFT) | \
+ (zero_area_faceness << PA_SU_SC_MODE_CNTL_ZERO_AREA_FACENESS_SHIFT) | \
+ (face_kill_enable << PA_SU_SC_MODE_CNTL_FACE_KILL_ENABLE_SHIFT) | \
+ (face_write_enable << PA_SU_SC_MODE_CNTL_FACE_WRITE_ENABLE_SHIFT))
+
+#define PA_SU_SC_MODE_CNTL_GET_CULL_FRONT(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_CULL_FRONT_MASK) >> PA_SU_SC_MODE_CNTL_CULL_FRONT_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_CULL_BACK(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_CULL_BACK_MASK) >> PA_SU_SC_MODE_CNTL_CULL_BACK_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_FACE(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_FACE_MASK) >> PA_SU_SC_MODE_CNTL_FACE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_POLY_MODE(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_POLY_MODE_MASK) >> PA_SU_SC_MODE_CNTL_POLY_MODE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_POLYMODE_FRONT_PTYPE(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_POLYMODE_FRONT_PTYPE_MASK) >> PA_SU_SC_MODE_CNTL_POLYMODE_FRONT_PTYPE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_POLYMODE_BACK_PTYPE(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_POLYMODE_BACK_PTYPE_MASK) >> PA_SU_SC_MODE_CNTL_POLYMODE_BACK_PTYPE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_POLY_OFFSET_FRONT_ENABLE(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_POLY_OFFSET_FRONT_ENABLE_MASK) >> PA_SU_SC_MODE_CNTL_POLY_OFFSET_FRONT_ENABLE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_POLY_OFFSET_BACK_ENABLE(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_POLY_OFFSET_BACK_ENABLE_MASK) >> PA_SU_SC_MODE_CNTL_POLY_OFFSET_BACK_ENABLE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_POLY_OFFSET_PARA_ENABLE(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_POLY_OFFSET_PARA_ENABLE_MASK) >> PA_SU_SC_MODE_CNTL_POLY_OFFSET_PARA_ENABLE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_MSAA_ENABLE(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_MSAA_ENABLE_MASK) >> PA_SU_SC_MODE_CNTL_MSAA_ENABLE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_VTX_WINDOW_OFFSET_ENABLE(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_VTX_WINDOW_OFFSET_ENABLE_MASK) >> PA_SU_SC_MODE_CNTL_VTX_WINDOW_OFFSET_ENABLE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_LINE_STIPPLE_ENABLE(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_LINE_STIPPLE_ENABLE_MASK) >> PA_SU_SC_MODE_CNTL_LINE_STIPPLE_ENABLE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_PROVOKING_VTX_LAST(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_PROVOKING_VTX_LAST_MASK) >> PA_SU_SC_MODE_CNTL_PROVOKING_VTX_LAST_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_PERSP_CORR_DIS(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_PERSP_CORR_DIS_MASK) >> PA_SU_SC_MODE_CNTL_PERSP_CORR_DIS_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_MULTI_PRIM_IB_ENA(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_MULTI_PRIM_IB_ENA_MASK) >> PA_SU_SC_MODE_CNTL_MULTI_PRIM_IB_ENA_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_QUAD_ORDER_ENABLE(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_QUAD_ORDER_ENABLE_MASK) >> PA_SU_SC_MODE_CNTL_QUAD_ORDER_ENABLE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_WAIT_RB_IDLE_ALL_TRI(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_ALL_TRI_MASK) >> PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_ALL_TRI_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_WAIT_RB_IDLE_FIRST_TRI_NEW_STATE(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_FIRST_TRI_NEW_STATE_MASK) >> PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_FIRST_TRI_NEW_STATE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_CLAMPED_FACENESS(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_CLAMPED_FACENESS_MASK) >> PA_SU_SC_MODE_CNTL_CLAMPED_FACENESS_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_ZERO_AREA_FACENESS(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_ZERO_AREA_FACENESS_MASK) >> PA_SU_SC_MODE_CNTL_ZERO_AREA_FACENESS_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_FACE_KILL_ENABLE(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_FACE_KILL_ENABLE_MASK) >> PA_SU_SC_MODE_CNTL_FACE_KILL_ENABLE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_GET_FACE_WRITE_ENABLE(pa_su_sc_mode_cntl) \
+ ((pa_su_sc_mode_cntl & PA_SU_SC_MODE_CNTL_FACE_WRITE_ENABLE_MASK) >> PA_SU_SC_MODE_CNTL_FACE_WRITE_ENABLE_SHIFT)
+
+#define PA_SU_SC_MODE_CNTL_SET_CULL_FRONT(pa_su_sc_mode_cntl_reg, cull_front) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_CULL_FRONT_MASK) | (cull_front << PA_SU_SC_MODE_CNTL_CULL_FRONT_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_CULL_BACK(pa_su_sc_mode_cntl_reg, cull_back) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_CULL_BACK_MASK) | (cull_back << PA_SU_SC_MODE_CNTL_CULL_BACK_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_FACE(pa_su_sc_mode_cntl_reg, face) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_FACE_MASK) | (face << PA_SU_SC_MODE_CNTL_FACE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_POLY_MODE(pa_su_sc_mode_cntl_reg, poly_mode) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_POLY_MODE_MASK) | (poly_mode << PA_SU_SC_MODE_CNTL_POLY_MODE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_POLYMODE_FRONT_PTYPE(pa_su_sc_mode_cntl_reg, polymode_front_ptype) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_POLYMODE_FRONT_PTYPE_MASK) | (polymode_front_ptype << PA_SU_SC_MODE_CNTL_POLYMODE_FRONT_PTYPE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_POLYMODE_BACK_PTYPE(pa_su_sc_mode_cntl_reg, polymode_back_ptype) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_POLYMODE_BACK_PTYPE_MASK) | (polymode_back_ptype << PA_SU_SC_MODE_CNTL_POLYMODE_BACK_PTYPE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_POLY_OFFSET_FRONT_ENABLE(pa_su_sc_mode_cntl_reg, poly_offset_front_enable) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_POLY_OFFSET_FRONT_ENABLE_MASK) | (poly_offset_front_enable << PA_SU_SC_MODE_CNTL_POLY_OFFSET_FRONT_ENABLE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_POLY_OFFSET_BACK_ENABLE(pa_su_sc_mode_cntl_reg, poly_offset_back_enable) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_POLY_OFFSET_BACK_ENABLE_MASK) | (poly_offset_back_enable << PA_SU_SC_MODE_CNTL_POLY_OFFSET_BACK_ENABLE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_POLY_OFFSET_PARA_ENABLE(pa_su_sc_mode_cntl_reg, poly_offset_para_enable) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_POLY_OFFSET_PARA_ENABLE_MASK) | (poly_offset_para_enable << PA_SU_SC_MODE_CNTL_POLY_OFFSET_PARA_ENABLE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_MSAA_ENABLE(pa_su_sc_mode_cntl_reg, msaa_enable) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_MSAA_ENABLE_MASK) | (msaa_enable << PA_SU_SC_MODE_CNTL_MSAA_ENABLE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_VTX_WINDOW_OFFSET_ENABLE(pa_su_sc_mode_cntl_reg, vtx_window_offset_enable) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_VTX_WINDOW_OFFSET_ENABLE_MASK) | (vtx_window_offset_enable << PA_SU_SC_MODE_CNTL_VTX_WINDOW_OFFSET_ENABLE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_LINE_STIPPLE_ENABLE(pa_su_sc_mode_cntl_reg, line_stipple_enable) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_LINE_STIPPLE_ENABLE_MASK) | (line_stipple_enable << PA_SU_SC_MODE_CNTL_LINE_STIPPLE_ENABLE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_PROVOKING_VTX_LAST(pa_su_sc_mode_cntl_reg, provoking_vtx_last) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_PROVOKING_VTX_LAST_MASK) | (provoking_vtx_last << PA_SU_SC_MODE_CNTL_PROVOKING_VTX_LAST_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_PERSP_CORR_DIS(pa_su_sc_mode_cntl_reg, persp_corr_dis) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_PERSP_CORR_DIS_MASK) | (persp_corr_dis << PA_SU_SC_MODE_CNTL_PERSP_CORR_DIS_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_MULTI_PRIM_IB_ENA(pa_su_sc_mode_cntl_reg, multi_prim_ib_ena) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_MULTI_PRIM_IB_ENA_MASK) | (multi_prim_ib_ena << PA_SU_SC_MODE_CNTL_MULTI_PRIM_IB_ENA_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_QUAD_ORDER_ENABLE(pa_su_sc_mode_cntl_reg, quad_order_enable) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_QUAD_ORDER_ENABLE_MASK) | (quad_order_enable << PA_SU_SC_MODE_CNTL_QUAD_ORDER_ENABLE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_WAIT_RB_IDLE_ALL_TRI(pa_su_sc_mode_cntl_reg, wait_rb_idle_all_tri) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_ALL_TRI_MASK) | (wait_rb_idle_all_tri << PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_ALL_TRI_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_WAIT_RB_IDLE_FIRST_TRI_NEW_STATE(pa_su_sc_mode_cntl_reg, wait_rb_idle_first_tri_new_state) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_FIRST_TRI_NEW_STATE_MASK) | (wait_rb_idle_first_tri_new_state << PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_FIRST_TRI_NEW_STATE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_CLAMPED_FACENESS(pa_su_sc_mode_cntl_reg, clamped_faceness) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_CLAMPED_FACENESS_MASK) | (clamped_faceness << PA_SU_SC_MODE_CNTL_CLAMPED_FACENESS_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_ZERO_AREA_FACENESS(pa_su_sc_mode_cntl_reg, zero_area_faceness) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_ZERO_AREA_FACENESS_MASK) | (zero_area_faceness << PA_SU_SC_MODE_CNTL_ZERO_AREA_FACENESS_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_FACE_KILL_ENABLE(pa_su_sc_mode_cntl_reg, face_kill_enable) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_FACE_KILL_ENABLE_MASK) | (face_kill_enable << PA_SU_SC_MODE_CNTL_FACE_KILL_ENABLE_SHIFT)
+#define PA_SU_SC_MODE_CNTL_SET_FACE_WRITE_ENABLE(pa_su_sc_mode_cntl_reg, face_write_enable) \
+ pa_su_sc_mode_cntl_reg = (pa_su_sc_mode_cntl_reg & ~PA_SU_SC_MODE_CNTL_FACE_WRITE_ENABLE_MASK) | (face_write_enable << PA_SU_SC_MODE_CNTL_FACE_WRITE_ENABLE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_sc_mode_cntl_t {
+ unsigned int cull_front : PA_SU_SC_MODE_CNTL_CULL_FRONT_SIZE;
+ unsigned int cull_back : PA_SU_SC_MODE_CNTL_CULL_BACK_SIZE;
+ unsigned int face : PA_SU_SC_MODE_CNTL_FACE_SIZE;
+ unsigned int poly_mode : PA_SU_SC_MODE_CNTL_POLY_MODE_SIZE;
+ unsigned int polymode_front_ptype : PA_SU_SC_MODE_CNTL_POLYMODE_FRONT_PTYPE_SIZE;
+ unsigned int polymode_back_ptype : PA_SU_SC_MODE_CNTL_POLYMODE_BACK_PTYPE_SIZE;
+ unsigned int poly_offset_front_enable : PA_SU_SC_MODE_CNTL_POLY_OFFSET_FRONT_ENABLE_SIZE;
+ unsigned int poly_offset_back_enable : PA_SU_SC_MODE_CNTL_POLY_OFFSET_BACK_ENABLE_SIZE;
+ unsigned int poly_offset_para_enable : PA_SU_SC_MODE_CNTL_POLY_OFFSET_PARA_ENABLE_SIZE;
+ unsigned int : 1;
+ unsigned int msaa_enable : PA_SU_SC_MODE_CNTL_MSAA_ENABLE_SIZE;
+ unsigned int vtx_window_offset_enable : PA_SU_SC_MODE_CNTL_VTX_WINDOW_OFFSET_ENABLE_SIZE;
+ unsigned int : 1;
+ unsigned int line_stipple_enable : PA_SU_SC_MODE_CNTL_LINE_STIPPLE_ENABLE_SIZE;
+ unsigned int provoking_vtx_last : PA_SU_SC_MODE_CNTL_PROVOKING_VTX_LAST_SIZE;
+ unsigned int persp_corr_dis : PA_SU_SC_MODE_CNTL_PERSP_CORR_DIS_SIZE;
+ unsigned int multi_prim_ib_ena : PA_SU_SC_MODE_CNTL_MULTI_PRIM_IB_ENA_SIZE;
+ unsigned int : 1;
+ unsigned int quad_order_enable : PA_SU_SC_MODE_CNTL_QUAD_ORDER_ENABLE_SIZE;
+ unsigned int : 1;
+ unsigned int wait_rb_idle_all_tri : PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_ALL_TRI_SIZE;
+ unsigned int wait_rb_idle_first_tri_new_state : PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_FIRST_TRI_NEW_STATE_SIZE;
+ unsigned int : 1;
+ unsigned int clamped_faceness : PA_SU_SC_MODE_CNTL_CLAMPED_FACENESS_SIZE;
+ unsigned int zero_area_faceness : PA_SU_SC_MODE_CNTL_ZERO_AREA_FACENESS_SIZE;
+ unsigned int face_kill_enable : PA_SU_SC_MODE_CNTL_FACE_KILL_ENABLE_SIZE;
+ unsigned int face_write_enable : PA_SU_SC_MODE_CNTL_FACE_WRITE_ENABLE_SIZE;
+ } pa_su_sc_mode_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_sc_mode_cntl_t {
+ unsigned int face_write_enable : PA_SU_SC_MODE_CNTL_FACE_WRITE_ENABLE_SIZE;
+ unsigned int face_kill_enable : PA_SU_SC_MODE_CNTL_FACE_KILL_ENABLE_SIZE;
+ unsigned int zero_area_faceness : PA_SU_SC_MODE_CNTL_ZERO_AREA_FACENESS_SIZE;
+ unsigned int clamped_faceness : PA_SU_SC_MODE_CNTL_CLAMPED_FACENESS_SIZE;
+ unsigned int : 1;
+ unsigned int wait_rb_idle_first_tri_new_state : PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_FIRST_TRI_NEW_STATE_SIZE;
+ unsigned int wait_rb_idle_all_tri : PA_SU_SC_MODE_CNTL_WAIT_RB_IDLE_ALL_TRI_SIZE;
+ unsigned int : 1;
+ unsigned int quad_order_enable : PA_SU_SC_MODE_CNTL_QUAD_ORDER_ENABLE_SIZE;
+ unsigned int : 1;
+ unsigned int multi_prim_ib_ena : PA_SU_SC_MODE_CNTL_MULTI_PRIM_IB_ENA_SIZE;
+ unsigned int persp_corr_dis : PA_SU_SC_MODE_CNTL_PERSP_CORR_DIS_SIZE;
+ unsigned int provoking_vtx_last : PA_SU_SC_MODE_CNTL_PROVOKING_VTX_LAST_SIZE;
+ unsigned int line_stipple_enable : PA_SU_SC_MODE_CNTL_LINE_STIPPLE_ENABLE_SIZE;
+ unsigned int : 1;
+ unsigned int vtx_window_offset_enable : PA_SU_SC_MODE_CNTL_VTX_WINDOW_OFFSET_ENABLE_SIZE;
+ unsigned int msaa_enable : PA_SU_SC_MODE_CNTL_MSAA_ENABLE_SIZE;
+ unsigned int : 1;
+ unsigned int poly_offset_para_enable : PA_SU_SC_MODE_CNTL_POLY_OFFSET_PARA_ENABLE_SIZE;
+ unsigned int poly_offset_back_enable : PA_SU_SC_MODE_CNTL_POLY_OFFSET_BACK_ENABLE_SIZE;
+ unsigned int poly_offset_front_enable : PA_SU_SC_MODE_CNTL_POLY_OFFSET_FRONT_ENABLE_SIZE;
+ unsigned int polymode_back_ptype : PA_SU_SC_MODE_CNTL_POLYMODE_BACK_PTYPE_SIZE;
+ unsigned int polymode_front_ptype : PA_SU_SC_MODE_CNTL_POLYMODE_FRONT_PTYPE_SIZE;
+ unsigned int poly_mode : PA_SU_SC_MODE_CNTL_POLY_MODE_SIZE;
+ unsigned int face : PA_SU_SC_MODE_CNTL_FACE_SIZE;
+ unsigned int cull_back : PA_SU_SC_MODE_CNTL_CULL_BACK_SIZE;
+ unsigned int cull_front : PA_SU_SC_MODE_CNTL_CULL_FRONT_SIZE;
+ } pa_su_sc_mode_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_sc_mode_cntl_t f;
+} pa_su_sc_mode_cntl_u;
+
+
+/*
+ * PA_SU_POLY_OFFSET_FRONT_SCALE struct
+ */
+
+#define PA_SU_POLY_OFFSET_FRONT_SCALE_SCALE_SIZE 32
+
+#define PA_SU_POLY_OFFSET_FRONT_SCALE_SCALE_SHIFT 0
+
+#define PA_SU_POLY_OFFSET_FRONT_SCALE_SCALE_MASK 0xffffffff
+
+#define PA_SU_POLY_OFFSET_FRONT_SCALE_MASK \
+ (PA_SU_POLY_OFFSET_FRONT_SCALE_SCALE_MASK)
+
+#define PA_SU_POLY_OFFSET_FRONT_SCALE(scale) \
+ ((scale << PA_SU_POLY_OFFSET_FRONT_SCALE_SCALE_SHIFT))
+
+#define PA_SU_POLY_OFFSET_FRONT_SCALE_GET_SCALE(pa_su_poly_offset_front_scale) \
+ ((pa_su_poly_offset_front_scale & PA_SU_POLY_OFFSET_FRONT_SCALE_SCALE_MASK) >> PA_SU_POLY_OFFSET_FRONT_SCALE_SCALE_SHIFT)
+
+#define PA_SU_POLY_OFFSET_FRONT_SCALE_SET_SCALE(pa_su_poly_offset_front_scale_reg, scale) \
+ pa_su_poly_offset_front_scale_reg = (pa_su_poly_offset_front_scale_reg & ~PA_SU_POLY_OFFSET_FRONT_SCALE_SCALE_MASK) | (scale << PA_SU_POLY_OFFSET_FRONT_SCALE_SCALE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_poly_offset_front_scale_t {
+ unsigned int scale : PA_SU_POLY_OFFSET_FRONT_SCALE_SCALE_SIZE;
+ } pa_su_poly_offset_front_scale_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_poly_offset_front_scale_t {
+ unsigned int scale : PA_SU_POLY_OFFSET_FRONT_SCALE_SCALE_SIZE;
+ } pa_su_poly_offset_front_scale_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_poly_offset_front_scale_t f;
+} pa_su_poly_offset_front_scale_u;
+
+
+/*
+ * PA_SU_POLY_OFFSET_FRONT_OFFSET struct
+ */
+
+#define PA_SU_POLY_OFFSET_FRONT_OFFSET_OFFSET_SIZE 32
+
+#define PA_SU_POLY_OFFSET_FRONT_OFFSET_OFFSET_SHIFT 0
+
+#define PA_SU_POLY_OFFSET_FRONT_OFFSET_OFFSET_MASK 0xffffffff
+
+#define PA_SU_POLY_OFFSET_FRONT_OFFSET_MASK \
+ (PA_SU_POLY_OFFSET_FRONT_OFFSET_OFFSET_MASK)
+
+#define PA_SU_POLY_OFFSET_FRONT_OFFSET(offset) \
+ ((offset << PA_SU_POLY_OFFSET_FRONT_OFFSET_OFFSET_SHIFT))
+
+#define PA_SU_POLY_OFFSET_FRONT_OFFSET_GET_OFFSET(pa_su_poly_offset_front_offset) \
+ ((pa_su_poly_offset_front_offset & PA_SU_POLY_OFFSET_FRONT_OFFSET_OFFSET_MASK) >> PA_SU_POLY_OFFSET_FRONT_OFFSET_OFFSET_SHIFT)
+
+#define PA_SU_POLY_OFFSET_FRONT_OFFSET_SET_OFFSET(pa_su_poly_offset_front_offset_reg, offset) \
+ pa_su_poly_offset_front_offset_reg = (pa_su_poly_offset_front_offset_reg & ~PA_SU_POLY_OFFSET_FRONT_OFFSET_OFFSET_MASK) | (offset << PA_SU_POLY_OFFSET_FRONT_OFFSET_OFFSET_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_poly_offset_front_offset_t {
+ unsigned int offset : PA_SU_POLY_OFFSET_FRONT_OFFSET_OFFSET_SIZE;
+ } pa_su_poly_offset_front_offset_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_poly_offset_front_offset_t {
+ unsigned int offset : PA_SU_POLY_OFFSET_FRONT_OFFSET_OFFSET_SIZE;
+ } pa_su_poly_offset_front_offset_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_poly_offset_front_offset_t f;
+} pa_su_poly_offset_front_offset_u;
+
+
+/*
+ * PA_SU_POLY_OFFSET_BACK_SCALE struct
+ */
+
+#define PA_SU_POLY_OFFSET_BACK_SCALE_SCALE_SIZE 32
+
+#define PA_SU_POLY_OFFSET_BACK_SCALE_SCALE_SHIFT 0
+
+#define PA_SU_POLY_OFFSET_BACK_SCALE_SCALE_MASK 0xffffffff
+
+#define PA_SU_POLY_OFFSET_BACK_SCALE_MASK \
+ (PA_SU_POLY_OFFSET_BACK_SCALE_SCALE_MASK)
+
+#define PA_SU_POLY_OFFSET_BACK_SCALE(scale) \
+ ((scale << PA_SU_POLY_OFFSET_BACK_SCALE_SCALE_SHIFT))
+
+#define PA_SU_POLY_OFFSET_BACK_SCALE_GET_SCALE(pa_su_poly_offset_back_scale) \
+ ((pa_su_poly_offset_back_scale & PA_SU_POLY_OFFSET_BACK_SCALE_SCALE_MASK) >> PA_SU_POLY_OFFSET_BACK_SCALE_SCALE_SHIFT)
+
+#define PA_SU_POLY_OFFSET_BACK_SCALE_SET_SCALE(pa_su_poly_offset_back_scale_reg, scale) \
+ pa_su_poly_offset_back_scale_reg = (pa_su_poly_offset_back_scale_reg & ~PA_SU_POLY_OFFSET_BACK_SCALE_SCALE_MASK) | (scale << PA_SU_POLY_OFFSET_BACK_SCALE_SCALE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_poly_offset_back_scale_t {
+ unsigned int scale : PA_SU_POLY_OFFSET_BACK_SCALE_SCALE_SIZE;
+ } pa_su_poly_offset_back_scale_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_poly_offset_back_scale_t {
+ unsigned int scale : PA_SU_POLY_OFFSET_BACK_SCALE_SCALE_SIZE;
+ } pa_su_poly_offset_back_scale_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_poly_offset_back_scale_t f;
+} pa_su_poly_offset_back_scale_u;
+
+
+/*
+ * PA_SU_POLY_OFFSET_BACK_OFFSET struct
+ */
+
+#define PA_SU_POLY_OFFSET_BACK_OFFSET_OFFSET_SIZE 32
+
+#define PA_SU_POLY_OFFSET_BACK_OFFSET_OFFSET_SHIFT 0
+
+#define PA_SU_POLY_OFFSET_BACK_OFFSET_OFFSET_MASK 0xffffffff
+
+#define PA_SU_POLY_OFFSET_BACK_OFFSET_MASK \
+ (PA_SU_POLY_OFFSET_BACK_OFFSET_OFFSET_MASK)
+
+#define PA_SU_POLY_OFFSET_BACK_OFFSET(offset) \
+ ((offset << PA_SU_POLY_OFFSET_BACK_OFFSET_OFFSET_SHIFT))
+
+#define PA_SU_POLY_OFFSET_BACK_OFFSET_GET_OFFSET(pa_su_poly_offset_back_offset) \
+ ((pa_su_poly_offset_back_offset & PA_SU_POLY_OFFSET_BACK_OFFSET_OFFSET_MASK) >> PA_SU_POLY_OFFSET_BACK_OFFSET_OFFSET_SHIFT)
+
+#define PA_SU_POLY_OFFSET_BACK_OFFSET_SET_OFFSET(pa_su_poly_offset_back_offset_reg, offset) \
+ pa_su_poly_offset_back_offset_reg = (pa_su_poly_offset_back_offset_reg & ~PA_SU_POLY_OFFSET_BACK_OFFSET_OFFSET_MASK) | (offset << PA_SU_POLY_OFFSET_BACK_OFFSET_OFFSET_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_poly_offset_back_offset_t {
+ unsigned int offset : PA_SU_POLY_OFFSET_BACK_OFFSET_OFFSET_SIZE;
+ } pa_su_poly_offset_back_offset_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_poly_offset_back_offset_t {
+ unsigned int offset : PA_SU_POLY_OFFSET_BACK_OFFSET_OFFSET_SIZE;
+ } pa_su_poly_offset_back_offset_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_poly_offset_back_offset_t f;
+} pa_su_poly_offset_back_offset_u;
+
+
+/*
+ * PA_SU_PERFCOUNTER0_SELECT struct
+ */
+
+#define PA_SU_PERFCOUNTER0_SELECT_PERF_SEL_SIZE 8
+
+#define PA_SU_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT 0
+
+#define PA_SU_PERFCOUNTER0_SELECT_PERF_SEL_MASK 0x000000ff
+
+#define PA_SU_PERFCOUNTER0_SELECT_MASK \
+ (PA_SU_PERFCOUNTER0_SELECT_PERF_SEL_MASK)
+
+#define PA_SU_PERFCOUNTER0_SELECT(perf_sel) \
+ ((perf_sel << PA_SU_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT))
+
+#define PA_SU_PERFCOUNTER0_SELECT_GET_PERF_SEL(pa_su_perfcounter0_select) \
+ ((pa_su_perfcounter0_select & PA_SU_PERFCOUNTER0_SELECT_PERF_SEL_MASK) >> PA_SU_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT)
+
+#define PA_SU_PERFCOUNTER0_SELECT_SET_PERF_SEL(pa_su_perfcounter0_select_reg, perf_sel) \
+ pa_su_perfcounter0_select_reg = (pa_su_perfcounter0_select_reg & ~PA_SU_PERFCOUNTER0_SELECT_PERF_SEL_MASK) | (perf_sel << PA_SU_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter0_select_t {
+ unsigned int perf_sel : PA_SU_PERFCOUNTER0_SELECT_PERF_SEL_SIZE;
+ unsigned int : 24;
+ } pa_su_perfcounter0_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter0_select_t {
+ unsigned int : 24;
+ unsigned int perf_sel : PA_SU_PERFCOUNTER0_SELECT_PERF_SEL_SIZE;
+ } pa_su_perfcounter0_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_perfcounter0_select_t f;
+} pa_su_perfcounter0_select_u;
+
+
+/*
+ * PA_SU_PERFCOUNTER1_SELECT struct
+ */
+
+#define PA_SU_PERFCOUNTER1_SELECT_PERF_SEL_SIZE 8
+
+#define PA_SU_PERFCOUNTER1_SELECT_PERF_SEL_SHIFT 0
+
+#define PA_SU_PERFCOUNTER1_SELECT_PERF_SEL_MASK 0x000000ff
+
+#define PA_SU_PERFCOUNTER1_SELECT_MASK \
+ (PA_SU_PERFCOUNTER1_SELECT_PERF_SEL_MASK)
+
+#define PA_SU_PERFCOUNTER1_SELECT(perf_sel) \
+ ((perf_sel << PA_SU_PERFCOUNTER1_SELECT_PERF_SEL_SHIFT))
+
+#define PA_SU_PERFCOUNTER1_SELECT_GET_PERF_SEL(pa_su_perfcounter1_select) \
+ ((pa_su_perfcounter1_select & PA_SU_PERFCOUNTER1_SELECT_PERF_SEL_MASK) >> PA_SU_PERFCOUNTER1_SELECT_PERF_SEL_SHIFT)
+
+#define PA_SU_PERFCOUNTER1_SELECT_SET_PERF_SEL(pa_su_perfcounter1_select_reg, perf_sel) \
+ pa_su_perfcounter1_select_reg = (pa_su_perfcounter1_select_reg & ~PA_SU_PERFCOUNTER1_SELECT_PERF_SEL_MASK) | (perf_sel << PA_SU_PERFCOUNTER1_SELECT_PERF_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter1_select_t {
+ unsigned int perf_sel : PA_SU_PERFCOUNTER1_SELECT_PERF_SEL_SIZE;
+ unsigned int : 24;
+ } pa_su_perfcounter1_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter1_select_t {
+ unsigned int : 24;
+ unsigned int perf_sel : PA_SU_PERFCOUNTER1_SELECT_PERF_SEL_SIZE;
+ } pa_su_perfcounter1_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_perfcounter1_select_t f;
+} pa_su_perfcounter1_select_u;
+
+
+/*
+ * PA_SU_PERFCOUNTER2_SELECT struct
+ */
+
+#define PA_SU_PERFCOUNTER2_SELECT_PERF_SEL_SIZE 8
+
+#define PA_SU_PERFCOUNTER2_SELECT_PERF_SEL_SHIFT 0
+
+#define PA_SU_PERFCOUNTER2_SELECT_PERF_SEL_MASK 0x000000ff
+
+#define PA_SU_PERFCOUNTER2_SELECT_MASK \
+ (PA_SU_PERFCOUNTER2_SELECT_PERF_SEL_MASK)
+
+#define PA_SU_PERFCOUNTER2_SELECT(perf_sel) \
+ ((perf_sel << PA_SU_PERFCOUNTER2_SELECT_PERF_SEL_SHIFT))
+
+#define PA_SU_PERFCOUNTER2_SELECT_GET_PERF_SEL(pa_su_perfcounter2_select) \
+ ((pa_su_perfcounter2_select & PA_SU_PERFCOUNTER2_SELECT_PERF_SEL_MASK) >> PA_SU_PERFCOUNTER2_SELECT_PERF_SEL_SHIFT)
+
+#define PA_SU_PERFCOUNTER2_SELECT_SET_PERF_SEL(pa_su_perfcounter2_select_reg, perf_sel) \
+ pa_su_perfcounter2_select_reg = (pa_su_perfcounter2_select_reg & ~PA_SU_PERFCOUNTER2_SELECT_PERF_SEL_MASK) | (perf_sel << PA_SU_PERFCOUNTER2_SELECT_PERF_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter2_select_t {
+ unsigned int perf_sel : PA_SU_PERFCOUNTER2_SELECT_PERF_SEL_SIZE;
+ unsigned int : 24;
+ } pa_su_perfcounter2_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter2_select_t {
+ unsigned int : 24;
+ unsigned int perf_sel : PA_SU_PERFCOUNTER2_SELECT_PERF_SEL_SIZE;
+ } pa_su_perfcounter2_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_perfcounter2_select_t f;
+} pa_su_perfcounter2_select_u;
+
+
+/*
+ * PA_SU_PERFCOUNTER3_SELECT struct
+ */
+
+#define PA_SU_PERFCOUNTER3_SELECT_PERF_SEL_SIZE 8
+
+#define PA_SU_PERFCOUNTER3_SELECT_PERF_SEL_SHIFT 0
+
+#define PA_SU_PERFCOUNTER3_SELECT_PERF_SEL_MASK 0x000000ff
+
+#define PA_SU_PERFCOUNTER3_SELECT_MASK \
+ (PA_SU_PERFCOUNTER3_SELECT_PERF_SEL_MASK)
+
+#define PA_SU_PERFCOUNTER3_SELECT(perf_sel) \
+ ((perf_sel << PA_SU_PERFCOUNTER3_SELECT_PERF_SEL_SHIFT))
+
+#define PA_SU_PERFCOUNTER3_SELECT_GET_PERF_SEL(pa_su_perfcounter3_select) \
+ ((pa_su_perfcounter3_select & PA_SU_PERFCOUNTER3_SELECT_PERF_SEL_MASK) >> PA_SU_PERFCOUNTER3_SELECT_PERF_SEL_SHIFT)
+
+#define PA_SU_PERFCOUNTER3_SELECT_SET_PERF_SEL(pa_su_perfcounter3_select_reg, perf_sel) \
+ pa_su_perfcounter3_select_reg = (pa_su_perfcounter3_select_reg & ~PA_SU_PERFCOUNTER3_SELECT_PERF_SEL_MASK) | (perf_sel << PA_SU_PERFCOUNTER3_SELECT_PERF_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter3_select_t {
+ unsigned int perf_sel : PA_SU_PERFCOUNTER3_SELECT_PERF_SEL_SIZE;
+ unsigned int : 24;
+ } pa_su_perfcounter3_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter3_select_t {
+ unsigned int : 24;
+ unsigned int perf_sel : PA_SU_PERFCOUNTER3_SELECT_PERF_SEL_SIZE;
+ } pa_su_perfcounter3_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_perfcounter3_select_t f;
+} pa_su_perfcounter3_select_u;
+
+
+/*
+ * PA_SU_PERFCOUNTER0_LOW struct
+ */
+
+#define PA_SU_PERFCOUNTER0_LOW_PERF_COUNT_SIZE 32
+
+#define PA_SU_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT 0
+
+#define PA_SU_PERFCOUNTER0_LOW_PERF_COUNT_MASK 0xffffffff
+
+#define PA_SU_PERFCOUNTER0_LOW_MASK \
+ (PA_SU_PERFCOUNTER0_LOW_PERF_COUNT_MASK)
+
+#define PA_SU_PERFCOUNTER0_LOW(perf_count) \
+ ((perf_count << PA_SU_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT))
+
+#define PA_SU_PERFCOUNTER0_LOW_GET_PERF_COUNT(pa_su_perfcounter0_low) \
+ ((pa_su_perfcounter0_low & PA_SU_PERFCOUNTER0_LOW_PERF_COUNT_MASK) >> PA_SU_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT)
+
+#define PA_SU_PERFCOUNTER0_LOW_SET_PERF_COUNT(pa_su_perfcounter0_low_reg, perf_count) \
+ pa_su_perfcounter0_low_reg = (pa_su_perfcounter0_low_reg & ~PA_SU_PERFCOUNTER0_LOW_PERF_COUNT_MASK) | (perf_count << PA_SU_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter0_low_t {
+ unsigned int perf_count : PA_SU_PERFCOUNTER0_LOW_PERF_COUNT_SIZE;
+ } pa_su_perfcounter0_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter0_low_t {
+ unsigned int perf_count : PA_SU_PERFCOUNTER0_LOW_PERF_COUNT_SIZE;
+ } pa_su_perfcounter0_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_perfcounter0_low_t f;
+} pa_su_perfcounter0_low_u;
+
+
+/*
+ * PA_SU_PERFCOUNTER0_HI struct
+ */
+
+#define PA_SU_PERFCOUNTER0_HI_PERF_COUNT_SIZE 16
+
+#define PA_SU_PERFCOUNTER0_HI_PERF_COUNT_SHIFT 0
+
+#define PA_SU_PERFCOUNTER0_HI_PERF_COUNT_MASK 0x0000ffff
+
+#define PA_SU_PERFCOUNTER0_HI_MASK \
+ (PA_SU_PERFCOUNTER0_HI_PERF_COUNT_MASK)
+
+#define PA_SU_PERFCOUNTER0_HI(perf_count) \
+ ((perf_count << PA_SU_PERFCOUNTER0_HI_PERF_COUNT_SHIFT))
+
+#define PA_SU_PERFCOUNTER0_HI_GET_PERF_COUNT(pa_su_perfcounter0_hi) \
+ ((pa_su_perfcounter0_hi & PA_SU_PERFCOUNTER0_HI_PERF_COUNT_MASK) >> PA_SU_PERFCOUNTER0_HI_PERF_COUNT_SHIFT)
+
+#define PA_SU_PERFCOUNTER0_HI_SET_PERF_COUNT(pa_su_perfcounter0_hi_reg, perf_count) \
+ pa_su_perfcounter0_hi_reg = (pa_su_perfcounter0_hi_reg & ~PA_SU_PERFCOUNTER0_HI_PERF_COUNT_MASK) | (perf_count << PA_SU_PERFCOUNTER0_HI_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter0_hi_t {
+ unsigned int perf_count : PA_SU_PERFCOUNTER0_HI_PERF_COUNT_SIZE;
+ unsigned int : 16;
+ } pa_su_perfcounter0_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter0_hi_t {
+ unsigned int : 16;
+ unsigned int perf_count : PA_SU_PERFCOUNTER0_HI_PERF_COUNT_SIZE;
+ } pa_su_perfcounter0_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_perfcounter0_hi_t f;
+} pa_su_perfcounter0_hi_u;
+
+
+/*
+ * PA_SU_PERFCOUNTER1_LOW struct
+ */
+
+#define PA_SU_PERFCOUNTER1_LOW_PERF_COUNT_SIZE 32
+
+#define PA_SU_PERFCOUNTER1_LOW_PERF_COUNT_SHIFT 0
+
+#define PA_SU_PERFCOUNTER1_LOW_PERF_COUNT_MASK 0xffffffff
+
+#define PA_SU_PERFCOUNTER1_LOW_MASK \
+ (PA_SU_PERFCOUNTER1_LOW_PERF_COUNT_MASK)
+
+#define PA_SU_PERFCOUNTER1_LOW(perf_count) \
+ ((perf_count << PA_SU_PERFCOUNTER1_LOW_PERF_COUNT_SHIFT))
+
+#define PA_SU_PERFCOUNTER1_LOW_GET_PERF_COUNT(pa_su_perfcounter1_low) \
+ ((pa_su_perfcounter1_low & PA_SU_PERFCOUNTER1_LOW_PERF_COUNT_MASK) >> PA_SU_PERFCOUNTER1_LOW_PERF_COUNT_SHIFT)
+
+#define PA_SU_PERFCOUNTER1_LOW_SET_PERF_COUNT(pa_su_perfcounter1_low_reg, perf_count) \
+ pa_su_perfcounter1_low_reg = (pa_su_perfcounter1_low_reg & ~PA_SU_PERFCOUNTER1_LOW_PERF_COUNT_MASK) | (perf_count << PA_SU_PERFCOUNTER1_LOW_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter1_low_t {
+ unsigned int perf_count : PA_SU_PERFCOUNTER1_LOW_PERF_COUNT_SIZE;
+ } pa_su_perfcounter1_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter1_low_t {
+ unsigned int perf_count : PA_SU_PERFCOUNTER1_LOW_PERF_COUNT_SIZE;
+ } pa_su_perfcounter1_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_perfcounter1_low_t f;
+} pa_su_perfcounter1_low_u;
+
+
+/*
+ * PA_SU_PERFCOUNTER1_HI struct
+ */
+
+#define PA_SU_PERFCOUNTER1_HI_PERF_COUNT_SIZE 16
+
+#define PA_SU_PERFCOUNTER1_HI_PERF_COUNT_SHIFT 0
+
+#define PA_SU_PERFCOUNTER1_HI_PERF_COUNT_MASK 0x0000ffff
+
+#define PA_SU_PERFCOUNTER1_HI_MASK \
+ (PA_SU_PERFCOUNTER1_HI_PERF_COUNT_MASK)
+
+#define PA_SU_PERFCOUNTER1_HI(perf_count) \
+ ((perf_count << PA_SU_PERFCOUNTER1_HI_PERF_COUNT_SHIFT))
+
+#define PA_SU_PERFCOUNTER1_HI_GET_PERF_COUNT(pa_su_perfcounter1_hi) \
+ ((pa_su_perfcounter1_hi & PA_SU_PERFCOUNTER1_HI_PERF_COUNT_MASK) >> PA_SU_PERFCOUNTER1_HI_PERF_COUNT_SHIFT)
+
+#define PA_SU_PERFCOUNTER1_HI_SET_PERF_COUNT(pa_su_perfcounter1_hi_reg, perf_count) \
+ pa_su_perfcounter1_hi_reg = (pa_su_perfcounter1_hi_reg & ~PA_SU_PERFCOUNTER1_HI_PERF_COUNT_MASK) | (perf_count << PA_SU_PERFCOUNTER1_HI_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter1_hi_t {
+ unsigned int perf_count : PA_SU_PERFCOUNTER1_HI_PERF_COUNT_SIZE;
+ unsigned int : 16;
+ } pa_su_perfcounter1_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter1_hi_t {
+ unsigned int : 16;
+ unsigned int perf_count : PA_SU_PERFCOUNTER1_HI_PERF_COUNT_SIZE;
+ } pa_su_perfcounter1_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_perfcounter1_hi_t f;
+} pa_su_perfcounter1_hi_u;
+
+
+/*
+ * PA_SU_PERFCOUNTER2_LOW struct
+ */
+
+#define PA_SU_PERFCOUNTER2_LOW_PERF_COUNT_SIZE 32
+
+#define PA_SU_PERFCOUNTER2_LOW_PERF_COUNT_SHIFT 0
+
+#define PA_SU_PERFCOUNTER2_LOW_PERF_COUNT_MASK 0xffffffff
+
+#define PA_SU_PERFCOUNTER2_LOW_MASK \
+ (PA_SU_PERFCOUNTER2_LOW_PERF_COUNT_MASK)
+
+#define PA_SU_PERFCOUNTER2_LOW(perf_count) \
+ ((perf_count << PA_SU_PERFCOUNTER2_LOW_PERF_COUNT_SHIFT))
+
+#define PA_SU_PERFCOUNTER2_LOW_GET_PERF_COUNT(pa_su_perfcounter2_low) \
+ ((pa_su_perfcounter2_low & PA_SU_PERFCOUNTER2_LOW_PERF_COUNT_MASK) >> PA_SU_PERFCOUNTER2_LOW_PERF_COUNT_SHIFT)
+
+#define PA_SU_PERFCOUNTER2_LOW_SET_PERF_COUNT(pa_su_perfcounter2_low_reg, perf_count) \
+ pa_su_perfcounter2_low_reg = (pa_su_perfcounter2_low_reg & ~PA_SU_PERFCOUNTER2_LOW_PERF_COUNT_MASK) | (perf_count << PA_SU_PERFCOUNTER2_LOW_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter2_low_t {
+ unsigned int perf_count : PA_SU_PERFCOUNTER2_LOW_PERF_COUNT_SIZE;
+ } pa_su_perfcounter2_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter2_low_t {
+ unsigned int perf_count : PA_SU_PERFCOUNTER2_LOW_PERF_COUNT_SIZE;
+ } pa_su_perfcounter2_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_perfcounter2_low_t f;
+} pa_su_perfcounter2_low_u;
+
+
+/*
+ * PA_SU_PERFCOUNTER2_HI struct
+ */
+
+#define PA_SU_PERFCOUNTER2_HI_PERF_COUNT_SIZE 16
+
+#define PA_SU_PERFCOUNTER2_HI_PERF_COUNT_SHIFT 0
+
+#define PA_SU_PERFCOUNTER2_HI_PERF_COUNT_MASK 0x0000ffff
+
+#define PA_SU_PERFCOUNTER2_HI_MASK \
+ (PA_SU_PERFCOUNTER2_HI_PERF_COUNT_MASK)
+
+#define PA_SU_PERFCOUNTER2_HI(perf_count) \
+ ((perf_count << PA_SU_PERFCOUNTER2_HI_PERF_COUNT_SHIFT))
+
+#define PA_SU_PERFCOUNTER2_HI_GET_PERF_COUNT(pa_su_perfcounter2_hi) \
+ ((pa_su_perfcounter2_hi & PA_SU_PERFCOUNTER2_HI_PERF_COUNT_MASK) >> PA_SU_PERFCOUNTER2_HI_PERF_COUNT_SHIFT)
+
+#define PA_SU_PERFCOUNTER2_HI_SET_PERF_COUNT(pa_su_perfcounter2_hi_reg, perf_count) \
+ pa_su_perfcounter2_hi_reg = (pa_su_perfcounter2_hi_reg & ~PA_SU_PERFCOUNTER2_HI_PERF_COUNT_MASK) | (perf_count << PA_SU_PERFCOUNTER2_HI_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter2_hi_t {
+ unsigned int perf_count : PA_SU_PERFCOUNTER2_HI_PERF_COUNT_SIZE;
+ unsigned int : 16;
+ } pa_su_perfcounter2_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter2_hi_t {
+ unsigned int : 16;
+ unsigned int perf_count : PA_SU_PERFCOUNTER2_HI_PERF_COUNT_SIZE;
+ } pa_su_perfcounter2_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_perfcounter2_hi_t f;
+} pa_su_perfcounter2_hi_u;
+
+
+/*
+ * PA_SU_PERFCOUNTER3_LOW struct
+ */
+
+#define PA_SU_PERFCOUNTER3_LOW_PERF_COUNT_SIZE 32
+
+#define PA_SU_PERFCOUNTER3_LOW_PERF_COUNT_SHIFT 0
+
+#define PA_SU_PERFCOUNTER3_LOW_PERF_COUNT_MASK 0xffffffff
+
+#define PA_SU_PERFCOUNTER3_LOW_MASK \
+ (PA_SU_PERFCOUNTER3_LOW_PERF_COUNT_MASK)
+
+#define PA_SU_PERFCOUNTER3_LOW(perf_count) \
+ ((perf_count << PA_SU_PERFCOUNTER3_LOW_PERF_COUNT_SHIFT))
+
+#define PA_SU_PERFCOUNTER3_LOW_GET_PERF_COUNT(pa_su_perfcounter3_low) \
+ ((pa_su_perfcounter3_low & PA_SU_PERFCOUNTER3_LOW_PERF_COUNT_MASK) >> PA_SU_PERFCOUNTER3_LOW_PERF_COUNT_SHIFT)
+
+#define PA_SU_PERFCOUNTER3_LOW_SET_PERF_COUNT(pa_su_perfcounter3_low_reg, perf_count) \
+ pa_su_perfcounter3_low_reg = (pa_su_perfcounter3_low_reg & ~PA_SU_PERFCOUNTER3_LOW_PERF_COUNT_MASK) | (perf_count << PA_SU_PERFCOUNTER3_LOW_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter3_low_t {
+ unsigned int perf_count : PA_SU_PERFCOUNTER3_LOW_PERF_COUNT_SIZE;
+ } pa_su_perfcounter3_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter3_low_t {
+ unsigned int perf_count : PA_SU_PERFCOUNTER3_LOW_PERF_COUNT_SIZE;
+ } pa_su_perfcounter3_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_perfcounter3_low_t f;
+} pa_su_perfcounter3_low_u;
+
+
+/*
+ * PA_SU_PERFCOUNTER3_HI struct
+ */
+
+#define PA_SU_PERFCOUNTER3_HI_PERF_COUNT_SIZE 16
+
+#define PA_SU_PERFCOUNTER3_HI_PERF_COUNT_SHIFT 0
+
+#define PA_SU_PERFCOUNTER3_HI_PERF_COUNT_MASK 0x0000ffff
+
+#define PA_SU_PERFCOUNTER3_HI_MASK \
+ (PA_SU_PERFCOUNTER3_HI_PERF_COUNT_MASK)
+
+#define PA_SU_PERFCOUNTER3_HI(perf_count) \
+ ((perf_count << PA_SU_PERFCOUNTER3_HI_PERF_COUNT_SHIFT))
+
+#define PA_SU_PERFCOUNTER3_HI_GET_PERF_COUNT(pa_su_perfcounter3_hi) \
+ ((pa_su_perfcounter3_hi & PA_SU_PERFCOUNTER3_HI_PERF_COUNT_MASK) >> PA_SU_PERFCOUNTER3_HI_PERF_COUNT_SHIFT)
+
+#define PA_SU_PERFCOUNTER3_HI_SET_PERF_COUNT(pa_su_perfcounter3_hi_reg, perf_count) \
+ pa_su_perfcounter3_hi_reg = (pa_su_perfcounter3_hi_reg & ~PA_SU_PERFCOUNTER3_HI_PERF_COUNT_MASK) | (perf_count << PA_SU_PERFCOUNTER3_HI_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter3_hi_t {
+ unsigned int perf_count : PA_SU_PERFCOUNTER3_HI_PERF_COUNT_SIZE;
+ unsigned int : 16;
+ } pa_su_perfcounter3_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_perfcounter3_hi_t {
+ unsigned int : 16;
+ unsigned int perf_count : PA_SU_PERFCOUNTER3_HI_PERF_COUNT_SIZE;
+ } pa_su_perfcounter3_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_perfcounter3_hi_t f;
+} pa_su_perfcounter3_hi_u;
+
+
+/*
+ * PA_SC_WINDOW_OFFSET struct
+ */
+
+#define PA_SC_WINDOW_OFFSET_WINDOW_X_OFFSET_SIZE 15
+#define PA_SC_WINDOW_OFFSET_WINDOW_Y_OFFSET_SIZE 15
+
+#define PA_SC_WINDOW_OFFSET_WINDOW_X_OFFSET_SHIFT 0
+#define PA_SC_WINDOW_OFFSET_WINDOW_Y_OFFSET_SHIFT 16
+
+#define PA_SC_WINDOW_OFFSET_WINDOW_X_OFFSET_MASK 0x00007fff
+#define PA_SC_WINDOW_OFFSET_WINDOW_Y_OFFSET_MASK 0x7fff0000
+
+#define PA_SC_WINDOW_OFFSET_MASK \
+ (PA_SC_WINDOW_OFFSET_WINDOW_X_OFFSET_MASK | \
+ PA_SC_WINDOW_OFFSET_WINDOW_Y_OFFSET_MASK)
+
+#define PA_SC_WINDOW_OFFSET(window_x_offset, window_y_offset) \
+ ((window_x_offset << PA_SC_WINDOW_OFFSET_WINDOW_X_OFFSET_SHIFT) | \
+ (window_y_offset << PA_SC_WINDOW_OFFSET_WINDOW_Y_OFFSET_SHIFT))
+
+#define PA_SC_WINDOW_OFFSET_GET_WINDOW_X_OFFSET(pa_sc_window_offset) \
+ ((pa_sc_window_offset & PA_SC_WINDOW_OFFSET_WINDOW_X_OFFSET_MASK) >> PA_SC_WINDOW_OFFSET_WINDOW_X_OFFSET_SHIFT)
+#define PA_SC_WINDOW_OFFSET_GET_WINDOW_Y_OFFSET(pa_sc_window_offset) \
+ ((pa_sc_window_offset & PA_SC_WINDOW_OFFSET_WINDOW_Y_OFFSET_MASK) >> PA_SC_WINDOW_OFFSET_WINDOW_Y_OFFSET_SHIFT)
+
+#define PA_SC_WINDOW_OFFSET_SET_WINDOW_X_OFFSET(pa_sc_window_offset_reg, window_x_offset) \
+ pa_sc_window_offset_reg = (pa_sc_window_offset_reg & ~PA_SC_WINDOW_OFFSET_WINDOW_X_OFFSET_MASK) | (window_x_offset << PA_SC_WINDOW_OFFSET_WINDOW_X_OFFSET_SHIFT)
+#define PA_SC_WINDOW_OFFSET_SET_WINDOW_Y_OFFSET(pa_sc_window_offset_reg, window_y_offset) \
+ pa_sc_window_offset_reg = (pa_sc_window_offset_reg & ~PA_SC_WINDOW_OFFSET_WINDOW_Y_OFFSET_MASK) | (window_y_offset << PA_SC_WINDOW_OFFSET_WINDOW_Y_OFFSET_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_window_offset_t {
+ unsigned int window_x_offset : PA_SC_WINDOW_OFFSET_WINDOW_X_OFFSET_SIZE;
+ unsigned int : 1;
+ unsigned int window_y_offset : PA_SC_WINDOW_OFFSET_WINDOW_Y_OFFSET_SIZE;
+ unsigned int : 1;
+ } pa_sc_window_offset_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_window_offset_t {
+ unsigned int : 1;
+ unsigned int window_y_offset : PA_SC_WINDOW_OFFSET_WINDOW_Y_OFFSET_SIZE;
+ unsigned int : 1;
+ unsigned int window_x_offset : PA_SC_WINDOW_OFFSET_WINDOW_X_OFFSET_SIZE;
+ } pa_sc_window_offset_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_window_offset_t f;
+} pa_sc_window_offset_u;
+
+
+/*
+ * PA_SC_AA_CONFIG struct
+ */
+
+#define PA_SC_AA_CONFIG_MSAA_NUM_SAMPLES_SIZE 3
+#define PA_SC_AA_CONFIG_MAX_SAMPLE_DIST_SIZE 4
+
+#define PA_SC_AA_CONFIG_MSAA_NUM_SAMPLES_SHIFT 0
+#define PA_SC_AA_CONFIG_MAX_SAMPLE_DIST_SHIFT 13
+
+#define PA_SC_AA_CONFIG_MSAA_NUM_SAMPLES_MASK 0x00000007
+#define PA_SC_AA_CONFIG_MAX_SAMPLE_DIST_MASK 0x0001e000
+
+#define PA_SC_AA_CONFIG_MASK \
+ (PA_SC_AA_CONFIG_MSAA_NUM_SAMPLES_MASK | \
+ PA_SC_AA_CONFIG_MAX_SAMPLE_DIST_MASK)
+
+#define PA_SC_AA_CONFIG(msaa_num_samples, max_sample_dist) \
+ ((msaa_num_samples << PA_SC_AA_CONFIG_MSAA_NUM_SAMPLES_SHIFT) | \
+ (max_sample_dist << PA_SC_AA_CONFIG_MAX_SAMPLE_DIST_SHIFT))
+
+#define PA_SC_AA_CONFIG_GET_MSAA_NUM_SAMPLES(pa_sc_aa_config) \
+ ((pa_sc_aa_config & PA_SC_AA_CONFIG_MSAA_NUM_SAMPLES_MASK) >> PA_SC_AA_CONFIG_MSAA_NUM_SAMPLES_SHIFT)
+#define PA_SC_AA_CONFIG_GET_MAX_SAMPLE_DIST(pa_sc_aa_config) \
+ ((pa_sc_aa_config & PA_SC_AA_CONFIG_MAX_SAMPLE_DIST_MASK) >> PA_SC_AA_CONFIG_MAX_SAMPLE_DIST_SHIFT)
+
+#define PA_SC_AA_CONFIG_SET_MSAA_NUM_SAMPLES(pa_sc_aa_config_reg, msaa_num_samples) \
+ pa_sc_aa_config_reg = (pa_sc_aa_config_reg & ~PA_SC_AA_CONFIG_MSAA_NUM_SAMPLES_MASK) | (msaa_num_samples << PA_SC_AA_CONFIG_MSAA_NUM_SAMPLES_SHIFT)
+#define PA_SC_AA_CONFIG_SET_MAX_SAMPLE_DIST(pa_sc_aa_config_reg, max_sample_dist) \
+ pa_sc_aa_config_reg = (pa_sc_aa_config_reg & ~PA_SC_AA_CONFIG_MAX_SAMPLE_DIST_MASK) | (max_sample_dist << PA_SC_AA_CONFIG_MAX_SAMPLE_DIST_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_aa_config_t {
+ unsigned int msaa_num_samples : PA_SC_AA_CONFIG_MSAA_NUM_SAMPLES_SIZE;
+ unsigned int : 10;
+ unsigned int max_sample_dist : PA_SC_AA_CONFIG_MAX_SAMPLE_DIST_SIZE;
+ unsigned int : 15;
+ } pa_sc_aa_config_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_aa_config_t {
+ unsigned int : 15;
+ unsigned int max_sample_dist : PA_SC_AA_CONFIG_MAX_SAMPLE_DIST_SIZE;
+ unsigned int : 10;
+ unsigned int msaa_num_samples : PA_SC_AA_CONFIG_MSAA_NUM_SAMPLES_SIZE;
+ } pa_sc_aa_config_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_aa_config_t f;
+} pa_sc_aa_config_u;
+
+
+/*
+ * PA_SC_AA_MASK struct
+ */
+
+#define PA_SC_AA_MASK_AA_MASK_SIZE 16
+
+#define PA_SC_AA_MASK_AA_MASK_SHIFT 0
+
+#define PA_SC_AA_MASK_AA_MASK_MASK 0x0000ffff
+
+#define PA_SC_AA_MASK_MASK \
+ (PA_SC_AA_MASK_AA_MASK_MASK)
+
+#define PA_SC_AA_MASK(aa_mask) \
+ ((aa_mask << PA_SC_AA_MASK_AA_MASK_SHIFT))
+
+#define PA_SC_AA_MASK_GET_AA_MASK(pa_sc_aa_mask) \
+ ((pa_sc_aa_mask & PA_SC_AA_MASK_AA_MASK_MASK) >> PA_SC_AA_MASK_AA_MASK_SHIFT)
+
+#define PA_SC_AA_MASK_SET_AA_MASK(pa_sc_aa_mask_reg, aa_mask) \
+ pa_sc_aa_mask_reg = (pa_sc_aa_mask_reg & ~PA_SC_AA_MASK_AA_MASK_MASK) | (aa_mask << PA_SC_AA_MASK_AA_MASK_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_aa_mask_t {
+ unsigned int aa_mask : PA_SC_AA_MASK_AA_MASK_SIZE;
+ unsigned int : 16;
+ } pa_sc_aa_mask_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_aa_mask_t {
+ unsigned int : 16;
+ unsigned int aa_mask : PA_SC_AA_MASK_AA_MASK_SIZE;
+ } pa_sc_aa_mask_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_aa_mask_t f;
+} pa_sc_aa_mask_u;
+
+
+/*
+ * PA_SC_LINE_STIPPLE struct
+ */
+
+#define PA_SC_LINE_STIPPLE_LINE_PATTERN_SIZE 16
+#define PA_SC_LINE_STIPPLE_REPEAT_COUNT_SIZE 8
+#define PA_SC_LINE_STIPPLE_PATTERN_BIT_ORDER_SIZE 1
+#define PA_SC_LINE_STIPPLE_AUTO_RESET_CNTL_SIZE 2
+
+#define PA_SC_LINE_STIPPLE_LINE_PATTERN_SHIFT 0
+#define PA_SC_LINE_STIPPLE_REPEAT_COUNT_SHIFT 16
+#define PA_SC_LINE_STIPPLE_PATTERN_BIT_ORDER_SHIFT 28
+#define PA_SC_LINE_STIPPLE_AUTO_RESET_CNTL_SHIFT 29
+
+#define PA_SC_LINE_STIPPLE_LINE_PATTERN_MASK 0x0000ffff
+#define PA_SC_LINE_STIPPLE_REPEAT_COUNT_MASK 0x00ff0000
+#define PA_SC_LINE_STIPPLE_PATTERN_BIT_ORDER_MASK 0x10000000
+#define PA_SC_LINE_STIPPLE_AUTO_RESET_CNTL_MASK 0x60000000
+
+#define PA_SC_LINE_STIPPLE_MASK \
+ (PA_SC_LINE_STIPPLE_LINE_PATTERN_MASK | \
+ PA_SC_LINE_STIPPLE_REPEAT_COUNT_MASK | \
+ PA_SC_LINE_STIPPLE_PATTERN_BIT_ORDER_MASK | \
+ PA_SC_LINE_STIPPLE_AUTO_RESET_CNTL_MASK)
+
+#define PA_SC_LINE_STIPPLE(line_pattern, repeat_count, pattern_bit_order, auto_reset_cntl) \
+ ((line_pattern << PA_SC_LINE_STIPPLE_LINE_PATTERN_SHIFT) | \
+ (repeat_count << PA_SC_LINE_STIPPLE_REPEAT_COUNT_SHIFT) | \
+ (pattern_bit_order << PA_SC_LINE_STIPPLE_PATTERN_BIT_ORDER_SHIFT) | \
+ (auto_reset_cntl << PA_SC_LINE_STIPPLE_AUTO_RESET_CNTL_SHIFT))
+
+#define PA_SC_LINE_STIPPLE_GET_LINE_PATTERN(pa_sc_line_stipple) \
+ ((pa_sc_line_stipple & PA_SC_LINE_STIPPLE_LINE_PATTERN_MASK) >> PA_SC_LINE_STIPPLE_LINE_PATTERN_SHIFT)
+#define PA_SC_LINE_STIPPLE_GET_REPEAT_COUNT(pa_sc_line_stipple) \
+ ((pa_sc_line_stipple & PA_SC_LINE_STIPPLE_REPEAT_COUNT_MASK) >> PA_SC_LINE_STIPPLE_REPEAT_COUNT_SHIFT)
+#define PA_SC_LINE_STIPPLE_GET_PATTERN_BIT_ORDER(pa_sc_line_stipple) \
+ ((pa_sc_line_stipple & PA_SC_LINE_STIPPLE_PATTERN_BIT_ORDER_MASK) >> PA_SC_LINE_STIPPLE_PATTERN_BIT_ORDER_SHIFT)
+#define PA_SC_LINE_STIPPLE_GET_AUTO_RESET_CNTL(pa_sc_line_stipple) \
+ ((pa_sc_line_stipple & PA_SC_LINE_STIPPLE_AUTO_RESET_CNTL_MASK) >> PA_SC_LINE_STIPPLE_AUTO_RESET_CNTL_SHIFT)
+
+#define PA_SC_LINE_STIPPLE_SET_LINE_PATTERN(pa_sc_line_stipple_reg, line_pattern) \
+ pa_sc_line_stipple_reg = (pa_sc_line_stipple_reg & ~PA_SC_LINE_STIPPLE_LINE_PATTERN_MASK) | (line_pattern << PA_SC_LINE_STIPPLE_LINE_PATTERN_SHIFT)
+#define PA_SC_LINE_STIPPLE_SET_REPEAT_COUNT(pa_sc_line_stipple_reg, repeat_count) \
+ pa_sc_line_stipple_reg = (pa_sc_line_stipple_reg & ~PA_SC_LINE_STIPPLE_REPEAT_COUNT_MASK) | (repeat_count << PA_SC_LINE_STIPPLE_REPEAT_COUNT_SHIFT)
+#define PA_SC_LINE_STIPPLE_SET_PATTERN_BIT_ORDER(pa_sc_line_stipple_reg, pattern_bit_order) \
+ pa_sc_line_stipple_reg = (pa_sc_line_stipple_reg & ~PA_SC_LINE_STIPPLE_PATTERN_BIT_ORDER_MASK) | (pattern_bit_order << PA_SC_LINE_STIPPLE_PATTERN_BIT_ORDER_SHIFT)
+#define PA_SC_LINE_STIPPLE_SET_AUTO_RESET_CNTL(pa_sc_line_stipple_reg, auto_reset_cntl) \
+ pa_sc_line_stipple_reg = (pa_sc_line_stipple_reg & ~PA_SC_LINE_STIPPLE_AUTO_RESET_CNTL_MASK) | (auto_reset_cntl << PA_SC_LINE_STIPPLE_AUTO_RESET_CNTL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_line_stipple_t {
+ unsigned int line_pattern : PA_SC_LINE_STIPPLE_LINE_PATTERN_SIZE;
+ unsigned int repeat_count : PA_SC_LINE_STIPPLE_REPEAT_COUNT_SIZE;
+ unsigned int : 4;
+ unsigned int pattern_bit_order : PA_SC_LINE_STIPPLE_PATTERN_BIT_ORDER_SIZE;
+ unsigned int auto_reset_cntl : PA_SC_LINE_STIPPLE_AUTO_RESET_CNTL_SIZE;
+ unsigned int : 1;
+ } pa_sc_line_stipple_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_line_stipple_t {
+ unsigned int : 1;
+ unsigned int auto_reset_cntl : PA_SC_LINE_STIPPLE_AUTO_RESET_CNTL_SIZE;
+ unsigned int pattern_bit_order : PA_SC_LINE_STIPPLE_PATTERN_BIT_ORDER_SIZE;
+ unsigned int : 4;
+ unsigned int repeat_count : PA_SC_LINE_STIPPLE_REPEAT_COUNT_SIZE;
+ unsigned int line_pattern : PA_SC_LINE_STIPPLE_LINE_PATTERN_SIZE;
+ } pa_sc_line_stipple_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_line_stipple_t f;
+} pa_sc_line_stipple_u;
+
+
+/*
+ * PA_SC_LINE_CNTL struct
+ */
+
+#define PA_SC_LINE_CNTL_BRES_CNTL_SIZE 8
+#define PA_SC_LINE_CNTL_USE_BRES_CNTL_SIZE 1
+#define PA_SC_LINE_CNTL_EXPAND_LINE_WIDTH_SIZE 1
+#define PA_SC_LINE_CNTL_LAST_PIXEL_SIZE 1
+
+#define PA_SC_LINE_CNTL_BRES_CNTL_SHIFT 0
+#define PA_SC_LINE_CNTL_USE_BRES_CNTL_SHIFT 8
+#define PA_SC_LINE_CNTL_EXPAND_LINE_WIDTH_SHIFT 9
+#define PA_SC_LINE_CNTL_LAST_PIXEL_SHIFT 10
+
+#define PA_SC_LINE_CNTL_BRES_CNTL_MASK 0x000000ff
+#define PA_SC_LINE_CNTL_USE_BRES_CNTL_MASK 0x00000100
+#define PA_SC_LINE_CNTL_EXPAND_LINE_WIDTH_MASK 0x00000200
+#define PA_SC_LINE_CNTL_LAST_PIXEL_MASK 0x00000400
+
+#define PA_SC_LINE_CNTL_MASK \
+ (PA_SC_LINE_CNTL_BRES_CNTL_MASK | \
+ PA_SC_LINE_CNTL_USE_BRES_CNTL_MASK | \
+ PA_SC_LINE_CNTL_EXPAND_LINE_WIDTH_MASK | \
+ PA_SC_LINE_CNTL_LAST_PIXEL_MASK)
+
+#define PA_SC_LINE_CNTL(bres_cntl, use_bres_cntl, expand_line_width, last_pixel) \
+ ((bres_cntl << PA_SC_LINE_CNTL_BRES_CNTL_SHIFT) | \
+ (use_bres_cntl << PA_SC_LINE_CNTL_USE_BRES_CNTL_SHIFT) | \
+ (expand_line_width << PA_SC_LINE_CNTL_EXPAND_LINE_WIDTH_SHIFT) | \
+ (last_pixel << PA_SC_LINE_CNTL_LAST_PIXEL_SHIFT))
+
+#define PA_SC_LINE_CNTL_GET_BRES_CNTL(pa_sc_line_cntl) \
+ ((pa_sc_line_cntl & PA_SC_LINE_CNTL_BRES_CNTL_MASK) >> PA_SC_LINE_CNTL_BRES_CNTL_SHIFT)
+#define PA_SC_LINE_CNTL_GET_USE_BRES_CNTL(pa_sc_line_cntl) \
+ ((pa_sc_line_cntl & PA_SC_LINE_CNTL_USE_BRES_CNTL_MASK) >> PA_SC_LINE_CNTL_USE_BRES_CNTL_SHIFT)
+#define PA_SC_LINE_CNTL_GET_EXPAND_LINE_WIDTH(pa_sc_line_cntl) \
+ ((pa_sc_line_cntl & PA_SC_LINE_CNTL_EXPAND_LINE_WIDTH_MASK) >> PA_SC_LINE_CNTL_EXPAND_LINE_WIDTH_SHIFT)
+#define PA_SC_LINE_CNTL_GET_LAST_PIXEL(pa_sc_line_cntl) \
+ ((pa_sc_line_cntl & PA_SC_LINE_CNTL_LAST_PIXEL_MASK) >> PA_SC_LINE_CNTL_LAST_PIXEL_SHIFT)
+
+#define PA_SC_LINE_CNTL_SET_BRES_CNTL(pa_sc_line_cntl_reg, bres_cntl) \
+ pa_sc_line_cntl_reg = (pa_sc_line_cntl_reg & ~PA_SC_LINE_CNTL_BRES_CNTL_MASK) | (bres_cntl << PA_SC_LINE_CNTL_BRES_CNTL_SHIFT)
+#define PA_SC_LINE_CNTL_SET_USE_BRES_CNTL(pa_sc_line_cntl_reg, use_bres_cntl) \
+ pa_sc_line_cntl_reg = (pa_sc_line_cntl_reg & ~PA_SC_LINE_CNTL_USE_BRES_CNTL_MASK) | (use_bres_cntl << PA_SC_LINE_CNTL_USE_BRES_CNTL_SHIFT)
+#define PA_SC_LINE_CNTL_SET_EXPAND_LINE_WIDTH(pa_sc_line_cntl_reg, expand_line_width) \
+ pa_sc_line_cntl_reg = (pa_sc_line_cntl_reg & ~PA_SC_LINE_CNTL_EXPAND_LINE_WIDTH_MASK) | (expand_line_width << PA_SC_LINE_CNTL_EXPAND_LINE_WIDTH_SHIFT)
+#define PA_SC_LINE_CNTL_SET_LAST_PIXEL(pa_sc_line_cntl_reg, last_pixel) \
+ pa_sc_line_cntl_reg = (pa_sc_line_cntl_reg & ~PA_SC_LINE_CNTL_LAST_PIXEL_MASK) | (last_pixel << PA_SC_LINE_CNTL_LAST_PIXEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_line_cntl_t {
+ unsigned int bres_cntl : PA_SC_LINE_CNTL_BRES_CNTL_SIZE;
+ unsigned int use_bres_cntl : PA_SC_LINE_CNTL_USE_BRES_CNTL_SIZE;
+ unsigned int expand_line_width : PA_SC_LINE_CNTL_EXPAND_LINE_WIDTH_SIZE;
+ unsigned int last_pixel : PA_SC_LINE_CNTL_LAST_PIXEL_SIZE;
+ unsigned int : 21;
+ } pa_sc_line_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_line_cntl_t {
+ unsigned int : 21;
+ unsigned int last_pixel : PA_SC_LINE_CNTL_LAST_PIXEL_SIZE;
+ unsigned int expand_line_width : PA_SC_LINE_CNTL_EXPAND_LINE_WIDTH_SIZE;
+ unsigned int use_bres_cntl : PA_SC_LINE_CNTL_USE_BRES_CNTL_SIZE;
+ unsigned int bres_cntl : PA_SC_LINE_CNTL_BRES_CNTL_SIZE;
+ } pa_sc_line_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_line_cntl_t f;
+} pa_sc_line_cntl_u;
+
+
+/*
+ * PA_SC_WINDOW_SCISSOR_TL struct
+ */
+
+#define PA_SC_WINDOW_SCISSOR_TL_TL_X_SIZE 14
+#define PA_SC_WINDOW_SCISSOR_TL_TL_Y_SIZE 14
+#define PA_SC_WINDOW_SCISSOR_TL_WINDOW_OFFSET_DISABLE_SIZE 1
+
+#define PA_SC_WINDOW_SCISSOR_TL_TL_X_SHIFT 0
+#define PA_SC_WINDOW_SCISSOR_TL_TL_Y_SHIFT 16
+#define PA_SC_WINDOW_SCISSOR_TL_WINDOW_OFFSET_DISABLE_SHIFT 31
+
+#define PA_SC_WINDOW_SCISSOR_TL_TL_X_MASK 0x00003fff
+#define PA_SC_WINDOW_SCISSOR_TL_TL_Y_MASK 0x3fff0000
+#define PA_SC_WINDOW_SCISSOR_TL_WINDOW_OFFSET_DISABLE_MASK 0x80000000
+
+#define PA_SC_WINDOW_SCISSOR_TL_MASK \
+ (PA_SC_WINDOW_SCISSOR_TL_TL_X_MASK | \
+ PA_SC_WINDOW_SCISSOR_TL_TL_Y_MASK | \
+ PA_SC_WINDOW_SCISSOR_TL_WINDOW_OFFSET_DISABLE_MASK)
+
+#define PA_SC_WINDOW_SCISSOR_TL(tl_x, tl_y, window_offset_disable) \
+ ((tl_x << PA_SC_WINDOW_SCISSOR_TL_TL_X_SHIFT) | \
+ (tl_y << PA_SC_WINDOW_SCISSOR_TL_TL_Y_SHIFT) | \
+ (window_offset_disable << PA_SC_WINDOW_SCISSOR_TL_WINDOW_OFFSET_DISABLE_SHIFT))
+
+#define PA_SC_WINDOW_SCISSOR_TL_GET_TL_X(pa_sc_window_scissor_tl) \
+ ((pa_sc_window_scissor_tl & PA_SC_WINDOW_SCISSOR_TL_TL_X_MASK) >> PA_SC_WINDOW_SCISSOR_TL_TL_X_SHIFT)
+#define PA_SC_WINDOW_SCISSOR_TL_GET_TL_Y(pa_sc_window_scissor_tl) \
+ ((pa_sc_window_scissor_tl & PA_SC_WINDOW_SCISSOR_TL_TL_Y_MASK) >> PA_SC_WINDOW_SCISSOR_TL_TL_Y_SHIFT)
+#define PA_SC_WINDOW_SCISSOR_TL_GET_WINDOW_OFFSET_DISABLE(pa_sc_window_scissor_tl) \
+ ((pa_sc_window_scissor_tl & PA_SC_WINDOW_SCISSOR_TL_WINDOW_OFFSET_DISABLE_MASK) >> PA_SC_WINDOW_SCISSOR_TL_WINDOW_OFFSET_DISABLE_SHIFT)
+
+#define PA_SC_WINDOW_SCISSOR_TL_SET_TL_X(pa_sc_window_scissor_tl_reg, tl_x) \
+ pa_sc_window_scissor_tl_reg = (pa_sc_window_scissor_tl_reg & ~PA_SC_WINDOW_SCISSOR_TL_TL_X_MASK) | (tl_x << PA_SC_WINDOW_SCISSOR_TL_TL_X_SHIFT)
+#define PA_SC_WINDOW_SCISSOR_TL_SET_TL_Y(pa_sc_window_scissor_tl_reg, tl_y) \
+ pa_sc_window_scissor_tl_reg = (pa_sc_window_scissor_tl_reg & ~PA_SC_WINDOW_SCISSOR_TL_TL_Y_MASK) | (tl_y << PA_SC_WINDOW_SCISSOR_TL_TL_Y_SHIFT)
+#define PA_SC_WINDOW_SCISSOR_TL_SET_WINDOW_OFFSET_DISABLE(pa_sc_window_scissor_tl_reg, window_offset_disable) \
+ pa_sc_window_scissor_tl_reg = (pa_sc_window_scissor_tl_reg & ~PA_SC_WINDOW_SCISSOR_TL_WINDOW_OFFSET_DISABLE_MASK) | (window_offset_disable << PA_SC_WINDOW_SCISSOR_TL_WINDOW_OFFSET_DISABLE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_window_scissor_tl_t {
+ unsigned int tl_x : PA_SC_WINDOW_SCISSOR_TL_TL_X_SIZE;
+ unsigned int : 2;
+ unsigned int tl_y : PA_SC_WINDOW_SCISSOR_TL_TL_Y_SIZE;
+ unsigned int : 1;
+ unsigned int window_offset_disable : PA_SC_WINDOW_SCISSOR_TL_WINDOW_OFFSET_DISABLE_SIZE;
+ } pa_sc_window_scissor_tl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_window_scissor_tl_t {
+ unsigned int window_offset_disable : PA_SC_WINDOW_SCISSOR_TL_WINDOW_OFFSET_DISABLE_SIZE;
+ unsigned int : 1;
+ unsigned int tl_y : PA_SC_WINDOW_SCISSOR_TL_TL_Y_SIZE;
+ unsigned int : 2;
+ unsigned int tl_x : PA_SC_WINDOW_SCISSOR_TL_TL_X_SIZE;
+ } pa_sc_window_scissor_tl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_window_scissor_tl_t f;
+} pa_sc_window_scissor_tl_u;
+
+
+/*
+ * PA_SC_WINDOW_SCISSOR_BR struct
+ */
+
+#define PA_SC_WINDOW_SCISSOR_BR_BR_X_SIZE 14
+#define PA_SC_WINDOW_SCISSOR_BR_BR_Y_SIZE 14
+
+#define PA_SC_WINDOW_SCISSOR_BR_BR_X_SHIFT 0
+#define PA_SC_WINDOW_SCISSOR_BR_BR_Y_SHIFT 16
+
+#define PA_SC_WINDOW_SCISSOR_BR_BR_X_MASK 0x00003fff
+#define PA_SC_WINDOW_SCISSOR_BR_BR_Y_MASK 0x3fff0000
+
+#define PA_SC_WINDOW_SCISSOR_BR_MASK \
+ (PA_SC_WINDOW_SCISSOR_BR_BR_X_MASK | \
+ PA_SC_WINDOW_SCISSOR_BR_BR_Y_MASK)
+
+#define PA_SC_WINDOW_SCISSOR_BR(br_x, br_y) \
+ ((br_x << PA_SC_WINDOW_SCISSOR_BR_BR_X_SHIFT) | \
+ (br_y << PA_SC_WINDOW_SCISSOR_BR_BR_Y_SHIFT))
+
+#define PA_SC_WINDOW_SCISSOR_BR_GET_BR_X(pa_sc_window_scissor_br) \
+ ((pa_sc_window_scissor_br & PA_SC_WINDOW_SCISSOR_BR_BR_X_MASK) >> PA_SC_WINDOW_SCISSOR_BR_BR_X_SHIFT)
+#define PA_SC_WINDOW_SCISSOR_BR_GET_BR_Y(pa_sc_window_scissor_br) \
+ ((pa_sc_window_scissor_br & PA_SC_WINDOW_SCISSOR_BR_BR_Y_MASK) >> PA_SC_WINDOW_SCISSOR_BR_BR_Y_SHIFT)
+
+#define PA_SC_WINDOW_SCISSOR_BR_SET_BR_X(pa_sc_window_scissor_br_reg, br_x) \
+ pa_sc_window_scissor_br_reg = (pa_sc_window_scissor_br_reg & ~PA_SC_WINDOW_SCISSOR_BR_BR_X_MASK) | (br_x << PA_SC_WINDOW_SCISSOR_BR_BR_X_SHIFT)
+#define PA_SC_WINDOW_SCISSOR_BR_SET_BR_Y(pa_sc_window_scissor_br_reg, br_y) \
+ pa_sc_window_scissor_br_reg = (pa_sc_window_scissor_br_reg & ~PA_SC_WINDOW_SCISSOR_BR_BR_Y_MASK) | (br_y << PA_SC_WINDOW_SCISSOR_BR_BR_Y_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_window_scissor_br_t {
+ unsigned int br_x : PA_SC_WINDOW_SCISSOR_BR_BR_X_SIZE;
+ unsigned int : 2;
+ unsigned int br_y : PA_SC_WINDOW_SCISSOR_BR_BR_Y_SIZE;
+ unsigned int : 2;
+ } pa_sc_window_scissor_br_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_window_scissor_br_t {
+ unsigned int : 2;
+ unsigned int br_y : PA_SC_WINDOW_SCISSOR_BR_BR_Y_SIZE;
+ unsigned int : 2;
+ unsigned int br_x : PA_SC_WINDOW_SCISSOR_BR_BR_X_SIZE;
+ } pa_sc_window_scissor_br_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_window_scissor_br_t f;
+} pa_sc_window_scissor_br_u;
+
+
+/*
+ * PA_SC_SCREEN_SCISSOR_TL struct
+ */
+
+#define PA_SC_SCREEN_SCISSOR_TL_TL_X_SIZE 15
+#define PA_SC_SCREEN_SCISSOR_TL_TL_Y_SIZE 15
+
+#define PA_SC_SCREEN_SCISSOR_TL_TL_X_SHIFT 0
+#define PA_SC_SCREEN_SCISSOR_TL_TL_Y_SHIFT 16
+
+#define PA_SC_SCREEN_SCISSOR_TL_TL_X_MASK 0x00007fff
+#define PA_SC_SCREEN_SCISSOR_TL_TL_Y_MASK 0x7fff0000
+
+#define PA_SC_SCREEN_SCISSOR_TL_MASK \
+ (PA_SC_SCREEN_SCISSOR_TL_TL_X_MASK | \
+ PA_SC_SCREEN_SCISSOR_TL_TL_Y_MASK)
+
+#define PA_SC_SCREEN_SCISSOR_TL(tl_x, tl_y) \
+ ((tl_x << PA_SC_SCREEN_SCISSOR_TL_TL_X_SHIFT) | \
+ (tl_y << PA_SC_SCREEN_SCISSOR_TL_TL_Y_SHIFT))
+
+#define PA_SC_SCREEN_SCISSOR_TL_GET_TL_X(pa_sc_screen_scissor_tl) \
+ ((pa_sc_screen_scissor_tl & PA_SC_SCREEN_SCISSOR_TL_TL_X_MASK) >> PA_SC_SCREEN_SCISSOR_TL_TL_X_SHIFT)
+#define PA_SC_SCREEN_SCISSOR_TL_GET_TL_Y(pa_sc_screen_scissor_tl) \
+ ((pa_sc_screen_scissor_tl & PA_SC_SCREEN_SCISSOR_TL_TL_Y_MASK) >> PA_SC_SCREEN_SCISSOR_TL_TL_Y_SHIFT)
+
+#define PA_SC_SCREEN_SCISSOR_TL_SET_TL_X(pa_sc_screen_scissor_tl_reg, tl_x) \
+ pa_sc_screen_scissor_tl_reg = (pa_sc_screen_scissor_tl_reg & ~PA_SC_SCREEN_SCISSOR_TL_TL_X_MASK) | (tl_x << PA_SC_SCREEN_SCISSOR_TL_TL_X_SHIFT)
+#define PA_SC_SCREEN_SCISSOR_TL_SET_TL_Y(pa_sc_screen_scissor_tl_reg, tl_y) \
+ pa_sc_screen_scissor_tl_reg = (pa_sc_screen_scissor_tl_reg & ~PA_SC_SCREEN_SCISSOR_TL_TL_Y_MASK) | (tl_y << PA_SC_SCREEN_SCISSOR_TL_TL_Y_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_screen_scissor_tl_t {
+ unsigned int tl_x : PA_SC_SCREEN_SCISSOR_TL_TL_X_SIZE;
+ unsigned int : 1;
+ unsigned int tl_y : PA_SC_SCREEN_SCISSOR_TL_TL_Y_SIZE;
+ unsigned int : 1;
+ } pa_sc_screen_scissor_tl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_screen_scissor_tl_t {
+ unsigned int : 1;
+ unsigned int tl_y : PA_SC_SCREEN_SCISSOR_TL_TL_Y_SIZE;
+ unsigned int : 1;
+ unsigned int tl_x : PA_SC_SCREEN_SCISSOR_TL_TL_X_SIZE;
+ } pa_sc_screen_scissor_tl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_screen_scissor_tl_t f;
+} pa_sc_screen_scissor_tl_u;
+
+
+/*
+ * PA_SC_SCREEN_SCISSOR_BR struct
+ */
+
+#define PA_SC_SCREEN_SCISSOR_BR_BR_X_SIZE 15
+#define PA_SC_SCREEN_SCISSOR_BR_BR_Y_SIZE 15
+
+#define PA_SC_SCREEN_SCISSOR_BR_BR_X_SHIFT 0
+#define PA_SC_SCREEN_SCISSOR_BR_BR_Y_SHIFT 16
+
+#define PA_SC_SCREEN_SCISSOR_BR_BR_X_MASK 0x00007fff
+#define PA_SC_SCREEN_SCISSOR_BR_BR_Y_MASK 0x7fff0000
+
+#define PA_SC_SCREEN_SCISSOR_BR_MASK \
+ (PA_SC_SCREEN_SCISSOR_BR_BR_X_MASK | \
+ PA_SC_SCREEN_SCISSOR_BR_BR_Y_MASK)
+
+#define PA_SC_SCREEN_SCISSOR_BR(br_x, br_y) \
+ ((br_x << PA_SC_SCREEN_SCISSOR_BR_BR_X_SHIFT) | \
+ (br_y << PA_SC_SCREEN_SCISSOR_BR_BR_Y_SHIFT))
+
+#define PA_SC_SCREEN_SCISSOR_BR_GET_BR_X(pa_sc_screen_scissor_br) \
+ ((pa_sc_screen_scissor_br & PA_SC_SCREEN_SCISSOR_BR_BR_X_MASK) >> PA_SC_SCREEN_SCISSOR_BR_BR_X_SHIFT)
+#define PA_SC_SCREEN_SCISSOR_BR_GET_BR_Y(pa_sc_screen_scissor_br) \
+ ((pa_sc_screen_scissor_br & PA_SC_SCREEN_SCISSOR_BR_BR_Y_MASK) >> PA_SC_SCREEN_SCISSOR_BR_BR_Y_SHIFT)
+
+#define PA_SC_SCREEN_SCISSOR_BR_SET_BR_X(pa_sc_screen_scissor_br_reg, br_x) \
+ pa_sc_screen_scissor_br_reg = (pa_sc_screen_scissor_br_reg & ~PA_SC_SCREEN_SCISSOR_BR_BR_X_MASK) | (br_x << PA_SC_SCREEN_SCISSOR_BR_BR_X_SHIFT)
+#define PA_SC_SCREEN_SCISSOR_BR_SET_BR_Y(pa_sc_screen_scissor_br_reg, br_y) \
+ pa_sc_screen_scissor_br_reg = (pa_sc_screen_scissor_br_reg & ~PA_SC_SCREEN_SCISSOR_BR_BR_Y_MASK) | (br_y << PA_SC_SCREEN_SCISSOR_BR_BR_Y_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_screen_scissor_br_t {
+ unsigned int br_x : PA_SC_SCREEN_SCISSOR_BR_BR_X_SIZE;
+ unsigned int : 1;
+ unsigned int br_y : PA_SC_SCREEN_SCISSOR_BR_BR_Y_SIZE;
+ unsigned int : 1;
+ } pa_sc_screen_scissor_br_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_screen_scissor_br_t {
+ unsigned int : 1;
+ unsigned int br_y : PA_SC_SCREEN_SCISSOR_BR_BR_Y_SIZE;
+ unsigned int : 1;
+ unsigned int br_x : PA_SC_SCREEN_SCISSOR_BR_BR_X_SIZE;
+ } pa_sc_screen_scissor_br_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_screen_scissor_br_t f;
+} pa_sc_screen_scissor_br_u;
+
+
+/*
+ * PA_SC_VIZ_QUERY struct
+ */
+
+#define PA_SC_VIZ_QUERY_VIZ_QUERY_ENA_SIZE 1
+#define PA_SC_VIZ_QUERY_VIZ_QUERY_ID_SIZE 5
+#define PA_SC_VIZ_QUERY_KILL_PIX_POST_EARLY_Z_SIZE 1
+
+#define PA_SC_VIZ_QUERY_VIZ_QUERY_ENA_SHIFT 0
+#define PA_SC_VIZ_QUERY_VIZ_QUERY_ID_SHIFT 1
+#define PA_SC_VIZ_QUERY_KILL_PIX_POST_EARLY_Z_SHIFT 7
+
+#define PA_SC_VIZ_QUERY_VIZ_QUERY_ENA_MASK 0x00000001
+#define PA_SC_VIZ_QUERY_VIZ_QUERY_ID_MASK 0x0000003e
+#define PA_SC_VIZ_QUERY_KILL_PIX_POST_EARLY_Z_MASK 0x00000080
+
+#define PA_SC_VIZ_QUERY_MASK \
+ (PA_SC_VIZ_QUERY_VIZ_QUERY_ENA_MASK | \
+ PA_SC_VIZ_QUERY_VIZ_QUERY_ID_MASK | \
+ PA_SC_VIZ_QUERY_KILL_PIX_POST_EARLY_Z_MASK)
+
+#define PA_SC_VIZ_QUERY(viz_query_ena, viz_query_id, kill_pix_post_early_z) \
+ ((viz_query_ena << PA_SC_VIZ_QUERY_VIZ_QUERY_ENA_SHIFT) | \
+ (viz_query_id << PA_SC_VIZ_QUERY_VIZ_QUERY_ID_SHIFT) | \
+ (kill_pix_post_early_z << PA_SC_VIZ_QUERY_KILL_PIX_POST_EARLY_Z_SHIFT))
+
+#define PA_SC_VIZ_QUERY_GET_VIZ_QUERY_ENA(pa_sc_viz_query) \
+ ((pa_sc_viz_query & PA_SC_VIZ_QUERY_VIZ_QUERY_ENA_MASK) >> PA_SC_VIZ_QUERY_VIZ_QUERY_ENA_SHIFT)
+#define PA_SC_VIZ_QUERY_GET_VIZ_QUERY_ID(pa_sc_viz_query) \
+ ((pa_sc_viz_query & PA_SC_VIZ_QUERY_VIZ_QUERY_ID_MASK) >> PA_SC_VIZ_QUERY_VIZ_QUERY_ID_SHIFT)
+#define PA_SC_VIZ_QUERY_GET_KILL_PIX_POST_EARLY_Z(pa_sc_viz_query) \
+ ((pa_sc_viz_query & PA_SC_VIZ_QUERY_KILL_PIX_POST_EARLY_Z_MASK) >> PA_SC_VIZ_QUERY_KILL_PIX_POST_EARLY_Z_SHIFT)
+
+#define PA_SC_VIZ_QUERY_SET_VIZ_QUERY_ENA(pa_sc_viz_query_reg, viz_query_ena) \
+ pa_sc_viz_query_reg = (pa_sc_viz_query_reg & ~PA_SC_VIZ_QUERY_VIZ_QUERY_ENA_MASK) | (viz_query_ena << PA_SC_VIZ_QUERY_VIZ_QUERY_ENA_SHIFT)
+#define PA_SC_VIZ_QUERY_SET_VIZ_QUERY_ID(pa_sc_viz_query_reg, viz_query_id) \
+ pa_sc_viz_query_reg = (pa_sc_viz_query_reg & ~PA_SC_VIZ_QUERY_VIZ_QUERY_ID_MASK) | (viz_query_id << PA_SC_VIZ_QUERY_VIZ_QUERY_ID_SHIFT)
+#define PA_SC_VIZ_QUERY_SET_KILL_PIX_POST_EARLY_Z(pa_sc_viz_query_reg, kill_pix_post_early_z) \
+ pa_sc_viz_query_reg = (pa_sc_viz_query_reg & ~PA_SC_VIZ_QUERY_KILL_PIX_POST_EARLY_Z_MASK) | (kill_pix_post_early_z << PA_SC_VIZ_QUERY_KILL_PIX_POST_EARLY_Z_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_viz_query_t {
+ unsigned int viz_query_ena : PA_SC_VIZ_QUERY_VIZ_QUERY_ENA_SIZE;
+ unsigned int viz_query_id : PA_SC_VIZ_QUERY_VIZ_QUERY_ID_SIZE;
+ unsigned int : 1;
+ unsigned int kill_pix_post_early_z : PA_SC_VIZ_QUERY_KILL_PIX_POST_EARLY_Z_SIZE;
+ unsigned int : 24;
+ } pa_sc_viz_query_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_viz_query_t {
+ unsigned int : 24;
+ unsigned int kill_pix_post_early_z : PA_SC_VIZ_QUERY_KILL_PIX_POST_EARLY_Z_SIZE;
+ unsigned int : 1;
+ unsigned int viz_query_id : PA_SC_VIZ_QUERY_VIZ_QUERY_ID_SIZE;
+ unsigned int viz_query_ena : PA_SC_VIZ_QUERY_VIZ_QUERY_ENA_SIZE;
+ } pa_sc_viz_query_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_viz_query_t f;
+} pa_sc_viz_query_u;
+
+
+/*
+ * PA_SC_VIZ_QUERY_STATUS struct
+ */
+
+#define PA_SC_VIZ_QUERY_STATUS_STATUS_BITS_SIZE 32
+
+#define PA_SC_VIZ_QUERY_STATUS_STATUS_BITS_SHIFT 0
+
+#define PA_SC_VIZ_QUERY_STATUS_STATUS_BITS_MASK 0xffffffff
+
+#define PA_SC_VIZ_QUERY_STATUS_MASK \
+ (PA_SC_VIZ_QUERY_STATUS_STATUS_BITS_MASK)
+
+#define PA_SC_VIZ_QUERY_STATUS(status_bits) \
+ ((status_bits << PA_SC_VIZ_QUERY_STATUS_STATUS_BITS_SHIFT))
+
+#define PA_SC_VIZ_QUERY_STATUS_GET_STATUS_BITS(pa_sc_viz_query_status) \
+ ((pa_sc_viz_query_status & PA_SC_VIZ_QUERY_STATUS_STATUS_BITS_MASK) >> PA_SC_VIZ_QUERY_STATUS_STATUS_BITS_SHIFT)
+
+#define PA_SC_VIZ_QUERY_STATUS_SET_STATUS_BITS(pa_sc_viz_query_status_reg, status_bits) \
+ pa_sc_viz_query_status_reg = (pa_sc_viz_query_status_reg & ~PA_SC_VIZ_QUERY_STATUS_STATUS_BITS_MASK) | (status_bits << PA_SC_VIZ_QUERY_STATUS_STATUS_BITS_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_viz_query_status_t {
+ unsigned int status_bits : PA_SC_VIZ_QUERY_STATUS_STATUS_BITS_SIZE;
+ } pa_sc_viz_query_status_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_viz_query_status_t {
+ unsigned int status_bits : PA_SC_VIZ_QUERY_STATUS_STATUS_BITS_SIZE;
+ } pa_sc_viz_query_status_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_viz_query_status_t f;
+} pa_sc_viz_query_status_u;
+
+
+/*
+ * PA_SC_LINE_STIPPLE_STATE struct
+ */
+
+#define PA_SC_LINE_STIPPLE_STATE_CURRENT_PTR_SIZE 4
+#define PA_SC_LINE_STIPPLE_STATE_CURRENT_COUNT_SIZE 8
+
+#define PA_SC_LINE_STIPPLE_STATE_CURRENT_PTR_SHIFT 0
+#define PA_SC_LINE_STIPPLE_STATE_CURRENT_COUNT_SHIFT 8
+
+#define PA_SC_LINE_STIPPLE_STATE_CURRENT_PTR_MASK 0x0000000f
+#define PA_SC_LINE_STIPPLE_STATE_CURRENT_COUNT_MASK 0x0000ff00
+
+#define PA_SC_LINE_STIPPLE_STATE_MASK \
+ (PA_SC_LINE_STIPPLE_STATE_CURRENT_PTR_MASK | \
+ PA_SC_LINE_STIPPLE_STATE_CURRENT_COUNT_MASK)
+
+#define PA_SC_LINE_STIPPLE_STATE(current_ptr, current_count) \
+ ((current_ptr << PA_SC_LINE_STIPPLE_STATE_CURRENT_PTR_SHIFT) | \
+ (current_count << PA_SC_LINE_STIPPLE_STATE_CURRENT_COUNT_SHIFT))
+
+#define PA_SC_LINE_STIPPLE_STATE_GET_CURRENT_PTR(pa_sc_line_stipple_state) \
+ ((pa_sc_line_stipple_state & PA_SC_LINE_STIPPLE_STATE_CURRENT_PTR_MASK) >> PA_SC_LINE_STIPPLE_STATE_CURRENT_PTR_SHIFT)
+#define PA_SC_LINE_STIPPLE_STATE_GET_CURRENT_COUNT(pa_sc_line_stipple_state) \
+ ((pa_sc_line_stipple_state & PA_SC_LINE_STIPPLE_STATE_CURRENT_COUNT_MASK) >> PA_SC_LINE_STIPPLE_STATE_CURRENT_COUNT_SHIFT)
+
+#define PA_SC_LINE_STIPPLE_STATE_SET_CURRENT_PTR(pa_sc_line_stipple_state_reg, current_ptr) \
+ pa_sc_line_stipple_state_reg = (pa_sc_line_stipple_state_reg & ~PA_SC_LINE_STIPPLE_STATE_CURRENT_PTR_MASK) | (current_ptr << PA_SC_LINE_STIPPLE_STATE_CURRENT_PTR_SHIFT)
+#define PA_SC_LINE_STIPPLE_STATE_SET_CURRENT_COUNT(pa_sc_line_stipple_state_reg, current_count) \
+ pa_sc_line_stipple_state_reg = (pa_sc_line_stipple_state_reg & ~PA_SC_LINE_STIPPLE_STATE_CURRENT_COUNT_MASK) | (current_count << PA_SC_LINE_STIPPLE_STATE_CURRENT_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_line_stipple_state_t {
+ unsigned int current_ptr : PA_SC_LINE_STIPPLE_STATE_CURRENT_PTR_SIZE;
+ unsigned int : 4;
+ unsigned int current_count : PA_SC_LINE_STIPPLE_STATE_CURRENT_COUNT_SIZE;
+ unsigned int : 16;
+ } pa_sc_line_stipple_state_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_line_stipple_state_t {
+ unsigned int : 16;
+ unsigned int current_count : PA_SC_LINE_STIPPLE_STATE_CURRENT_COUNT_SIZE;
+ unsigned int : 4;
+ unsigned int current_ptr : PA_SC_LINE_STIPPLE_STATE_CURRENT_PTR_SIZE;
+ } pa_sc_line_stipple_state_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_line_stipple_state_t f;
+} pa_sc_line_stipple_state_u;
+
+
+/*
+ * PA_SC_PERFCOUNTER0_SELECT struct
+ */
+
+#define PA_SC_PERFCOUNTER0_SELECT_PERF_SEL_SIZE 8
+
+#define PA_SC_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT 0
+
+#define PA_SC_PERFCOUNTER0_SELECT_PERF_SEL_MASK 0x000000ff
+
+#define PA_SC_PERFCOUNTER0_SELECT_MASK \
+ (PA_SC_PERFCOUNTER0_SELECT_PERF_SEL_MASK)
+
+#define PA_SC_PERFCOUNTER0_SELECT(perf_sel) \
+ ((perf_sel << PA_SC_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT))
+
+#define PA_SC_PERFCOUNTER0_SELECT_GET_PERF_SEL(pa_sc_perfcounter0_select) \
+ ((pa_sc_perfcounter0_select & PA_SC_PERFCOUNTER0_SELECT_PERF_SEL_MASK) >> PA_SC_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT)
+
+#define PA_SC_PERFCOUNTER0_SELECT_SET_PERF_SEL(pa_sc_perfcounter0_select_reg, perf_sel) \
+ pa_sc_perfcounter0_select_reg = (pa_sc_perfcounter0_select_reg & ~PA_SC_PERFCOUNTER0_SELECT_PERF_SEL_MASK) | (perf_sel << PA_SC_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_perfcounter0_select_t {
+ unsigned int perf_sel : PA_SC_PERFCOUNTER0_SELECT_PERF_SEL_SIZE;
+ unsigned int : 24;
+ } pa_sc_perfcounter0_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_perfcounter0_select_t {
+ unsigned int : 24;
+ unsigned int perf_sel : PA_SC_PERFCOUNTER0_SELECT_PERF_SEL_SIZE;
+ } pa_sc_perfcounter0_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_perfcounter0_select_t f;
+} pa_sc_perfcounter0_select_u;
+
+
+/*
+ * PA_SC_PERFCOUNTER0_LOW struct
+ */
+
+#define PA_SC_PERFCOUNTER0_LOW_PERF_COUNT_SIZE 32
+
+#define PA_SC_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT 0
+
+#define PA_SC_PERFCOUNTER0_LOW_PERF_COUNT_MASK 0xffffffff
+
+#define PA_SC_PERFCOUNTER0_LOW_MASK \
+ (PA_SC_PERFCOUNTER0_LOW_PERF_COUNT_MASK)
+
+#define PA_SC_PERFCOUNTER0_LOW(perf_count) \
+ ((perf_count << PA_SC_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT))
+
+#define PA_SC_PERFCOUNTER0_LOW_GET_PERF_COUNT(pa_sc_perfcounter0_low) \
+ ((pa_sc_perfcounter0_low & PA_SC_PERFCOUNTER0_LOW_PERF_COUNT_MASK) >> PA_SC_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT)
+
+#define PA_SC_PERFCOUNTER0_LOW_SET_PERF_COUNT(pa_sc_perfcounter0_low_reg, perf_count) \
+ pa_sc_perfcounter0_low_reg = (pa_sc_perfcounter0_low_reg & ~PA_SC_PERFCOUNTER0_LOW_PERF_COUNT_MASK) | (perf_count << PA_SC_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_perfcounter0_low_t {
+ unsigned int perf_count : PA_SC_PERFCOUNTER0_LOW_PERF_COUNT_SIZE;
+ } pa_sc_perfcounter0_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_perfcounter0_low_t {
+ unsigned int perf_count : PA_SC_PERFCOUNTER0_LOW_PERF_COUNT_SIZE;
+ } pa_sc_perfcounter0_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_perfcounter0_low_t f;
+} pa_sc_perfcounter0_low_u;
+
+
+/*
+ * PA_SC_PERFCOUNTER0_HI struct
+ */
+
+#define PA_SC_PERFCOUNTER0_HI_PERF_COUNT_SIZE 16
+
+#define PA_SC_PERFCOUNTER0_HI_PERF_COUNT_SHIFT 0
+
+#define PA_SC_PERFCOUNTER0_HI_PERF_COUNT_MASK 0x0000ffff
+
+#define PA_SC_PERFCOUNTER0_HI_MASK \
+ (PA_SC_PERFCOUNTER0_HI_PERF_COUNT_MASK)
+
+#define PA_SC_PERFCOUNTER0_HI(perf_count) \
+ ((perf_count << PA_SC_PERFCOUNTER0_HI_PERF_COUNT_SHIFT))
+
+#define PA_SC_PERFCOUNTER0_HI_GET_PERF_COUNT(pa_sc_perfcounter0_hi) \
+ ((pa_sc_perfcounter0_hi & PA_SC_PERFCOUNTER0_HI_PERF_COUNT_MASK) >> PA_SC_PERFCOUNTER0_HI_PERF_COUNT_SHIFT)
+
+#define PA_SC_PERFCOUNTER0_HI_SET_PERF_COUNT(pa_sc_perfcounter0_hi_reg, perf_count) \
+ pa_sc_perfcounter0_hi_reg = (pa_sc_perfcounter0_hi_reg & ~PA_SC_PERFCOUNTER0_HI_PERF_COUNT_MASK) | (perf_count << PA_SC_PERFCOUNTER0_HI_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_perfcounter0_hi_t {
+ unsigned int perf_count : PA_SC_PERFCOUNTER0_HI_PERF_COUNT_SIZE;
+ unsigned int : 16;
+ } pa_sc_perfcounter0_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_perfcounter0_hi_t {
+ unsigned int : 16;
+ unsigned int perf_count : PA_SC_PERFCOUNTER0_HI_PERF_COUNT_SIZE;
+ } pa_sc_perfcounter0_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_perfcounter0_hi_t f;
+} pa_sc_perfcounter0_hi_u;
+
+
+/*
+ * PA_CL_CNTL_STATUS struct
+ */
+
+#define PA_CL_CNTL_STATUS_CL_BUSY_SIZE 1
+
+#define PA_CL_CNTL_STATUS_CL_BUSY_SHIFT 31
+
+#define PA_CL_CNTL_STATUS_CL_BUSY_MASK 0x80000000
+
+#define PA_CL_CNTL_STATUS_MASK \
+ (PA_CL_CNTL_STATUS_CL_BUSY_MASK)
+
+#define PA_CL_CNTL_STATUS(cl_busy) \
+ ((cl_busy << PA_CL_CNTL_STATUS_CL_BUSY_SHIFT))
+
+#define PA_CL_CNTL_STATUS_GET_CL_BUSY(pa_cl_cntl_status) \
+ ((pa_cl_cntl_status & PA_CL_CNTL_STATUS_CL_BUSY_MASK) >> PA_CL_CNTL_STATUS_CL_BUSY_SHIFT)
+
+#define PA_CL_CNTL_STATUS_SET_CL_BUSY(pa_cl_cntl_status_reg, cl_busy) \
+ pa_cl_cntl_status_reg = (pa_cl_cntl_status_reg & ~PA_CL_CNTL_STATUS_CL_BUSY_MASK) | (cl_busy << PA_CL_CNTL_STATUS_CL_BUSY_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_cl_cntl_status_t {
+ unsigned int : 31;
+ unsigned int cl_busy : PA_CL_CNTL_STATUS_CL_BUSY_SIZE;
+ } pa_cl_cntl_status_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_cl_cntl_status_t {
+ unsigned int cl_busy : PA_CL_CNTL_STATUS_CL_BUSY_SIZE;
+ unsigned int : 31;
+ } pa_cl_cntl_status_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_cl_cntl_status_t f;
+} pa_cl_cntl_status_u;
+
+
+/*
+ * PA_SU_CNTL_STATUS struct
+ */
+
+#define PA_SU_CNTL_STATUS_SU_BUSY_SIZE 1
+
+#define PA_SU_CNTL_STATUS_SU_BUSY_SHIFT 31
+
+#define PA_SU_CNTL_STATUS_SU_BUSY_MASK 0x80000000
+
+#define PA_SU_CNTL_STATUS_MASK \
+ (PA_SU_CNTL_STATUS_SU_BUSY_MASK)
+
+#define PA_SU_CNTL_STATUS(su_busy) \
+ ((su_busy << PA_SU_CNTL_STATUS_SU_BUSY_SHIFT))
+
+#define PA_SU_CNTL_STATUS_GET_SU_BUSY(pa_su_cntl_status) \
+ ((pa_su_cntl_status & PA_SU_CNTL_STATUS_SU_BUSY_MASK) >> PA_SU_CNTL_STATUS_SU_BUSY_SHIFT)
+
+#define PA_SU_CNTL_STATUS_SET_SU_BUSY(pa_su_cntl_status_reg, su_busy) \
+ pa_su_cntl_status_reg = (pa_su_cntl_status_reg & ~PA_SU_CNTL_STATUS_SU_BUSY_MASK) | (su_busy << PA_SU_CNTL_STATUS_SU_BUSY_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_cntl_status_t {
+ unsigned int : 31;
+ unsigned int su_busy : PA_SU_CNTL_STATUS_SU_BUSY_SIZE;
+ } pa_su_cntl_status_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_cntl_status_t {
+ unsigned int su_busy : PA_SU_CNTL_STATUS_SU_BUSY_SIZE;
+ unsigned int : 31;
+ } pa_su_cntl_status_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_cntl_status_t f;
+} pa_su_cntl_status_u;
+
+
+/*
+ * PA_SC_CNTL_STATUS struct
+ */
+
+#define PA_SC_CNTL_STATUS_SC_BUSY_SIZE 1
+
+#define PA_SC_CNTL_STATUS_SC_BUSY_SHIFT 31
+
+#define PA_SC_CNTL_STATUS_SC_BUSY_MASK 0x80000000
+
+#define PA_SC_CNTL_STATUS_MASK \
+ (PA_SC_CNTL_STATUS_SC_BUSY_MASK)
+
+#define PA_SC_CNTL_STATUS(sc_busy) \
+ ((sc_busy << PA_SC_CNTL_STATUS_SC_BUSY_SHIFT))
+
+#define PA_SC_CNTL_STATUS_GET_SC_BUSY(pa_sc_cntl_status) \
+ ((pa_sc_cntl_status & PA_SC_CNTL_STATUS_SC_BUSY_MASK) >> PA_SC_CNTL_STATUS_SC_BUSY_SHIFT)
+
+#define PA_SC_CNTL_STATUS_SET_SC_BUSY(pa_sc_cntl_status_reg, sc_busy) \
+ pa_sc_cntl_status_reg = (pa_sc_cntl_status_reg & ~PA_SC_CNTL_STATUS_SC_BUSY_MASK) | (sc_busy << PA_SC_CNTL_STATUS_SC_BUSY_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_cntl_status_t {
+ unsigned int : 31;
+ unsigned int sc_busy : PA_SC_CNTL_STATUS_SC_BUSY_SIZE;
+ } pa_sc_cntl_status_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_cntl_status_t {
+ unsigned int sc_busy : PA_SC_CNTL_STATUS_SC_BUSY_SIZE;
+ unsigned int : 31;
+ } pa_sc_cntl_status_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_cntl_status_t f;
+} pa_sc_cntl_status_u;
+
+
+/*
+ * PA_SU_DEBUG_CNTL struct
+ */
+
+#define PA_SU_DEBUG_CNTL_SU_DEBUG_INDX_SIZE 5
+
+#define PA_SU_DEBUG_CNTL_SU_DEBUG_INDX_SHIFT 0
+
+#define PA_SU_DEBUG_CNTL_SU_DEBUG_INDX_MASK 0x0000001f
+
+#define PA_SU_DEBUG_CNTL_MASK \
+ (PA_SU_DEBUG_CNTL_SU_DEBUG_INDX_MASK)
+
+#define PA_SU_DEBUG_CNTL(su_debug_indx) \
+ ((su_debug_indx << PA_SU_DEBUG_CNTL_SU_DEBUG_INDX_SHIFT))
+
+#define PA_SU_DEBUG_CNTL_GET_SU_DEBUG_INDX(pa_su_debug_cntl) \
+ ((pa_su_debug_cntl & PA_SU_DEBUG_CNTL_SU_DEBUG_INDX_MASK) >> PA_SU_DEBUG_CNTL_SU_DEBUG_INDX_SHIFT)
+
+#define PA_SU_DEBUG_CNTL_SET_SU_DEBUG_INDX(pa_su_debug_cntl_reg, su_debug_indx) \
+ pa_su_debug_cntl_reg = (pa_su_debug_cntl_reg & ~PA_SU_DEBUG_CNTL_SU_DEBUG_INDX_MASK) | (su_debug_indx << PA_SU_DEBUG_CNTL_SU_DEBUG_INDX_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_debug_cntl_t {
+ unsigned int su_debug_indx : PA_SU_DEBUG_CNTL_SU_DEBUG_INDX_SIZE;
+ unsigned int : 27;
+ } pa_su_debug_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_debug_cntl_t {
+ unsigned int : 27;
+ unsigned int su_debug_indx : PA_SU_DEBUG_CNTL_SU_DEBUG_INDX_SIZE;
+ } pa_su_debug_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_debug_cntl_t f;
+} pa_su_debug_cntl_u;
+
+
+/*
+ * PA_SU_DEBUG_DATA struct
+ */
+
+#define PA_SU_DEBUG_DATA_DATA_SIZE 32
+
+#define PA_SU_DEBUG_DATA_DATA_SHIFT 0
+
+#define PA_SU_DEBUG_DATA_DATA_MASK 0xffffffff
+
+#define PA_SU_DEBUG_DATA_MASK \
+ (PA_SU_DEBUG_DATA_DATA_MASK)
+
+#define PA_SU_DEBUG_DATA(data) \
+ ((data << PA_SU_DEBUG_DATA_DATA_SHIFT))
+
+#define PA_SU_DEBUG_DATA_GET_DATA(pa_su_debug_data) \
+ ((pa_su_debug_data & PA_SU_DEBUG_DATA_DATA_MASK) >> PA_SU_DEBUG_DATA_DATA_SHIFT)
+
+#define PA_SU_DEBUG_DATA_SET_DATA(pa_su_debug_data_reg, data) \
+ pa_su_debug_data_reg = (pa_su_debug_data_reg & ~PA_SU_DEBUG_DATA_DATA_MASK) | (data << PA_SU_DEBUG_DATA_DATA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_su_debug_data_t {
+ unsigned int data : PA_SU_DEBUG_DATA_DATA_SIZE;
+ } pa_su_debug_data_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_su_debug_data_t {
+ unsigned int data : PA_SU_DEBUG_DATA_DATA_SIZE;
+ } pa_su_debug_data_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_su_debug_data_t f;
+} pa_su_debug_data_u;
+
+
+/*
+ * CLIPPER_DEBUG_REG00 struct
+ */
+
+#define CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_write_SIZE 1
+#define CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_full_SIZE 1
+#define CLIPPER_DEBUG_REG00_clip_to_ga_fifo_write_SIZE 1
+#define CLIPPER_DEBUG_REG00_clip_to_ga_fifo_full_SIZE 1
+#define CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_empty_SIZE 1
+#define CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_full_SIZE 1
+#define CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_empty_SIZE 1
+#define CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_full_SIZE 1
+#define CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_empty_SIZE 1
+#define CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_full_SIZE 1
+#define CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_empty_SIZE 1
+#define CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_full_SIZE 1
+#define CLIPPER_DEBUG_REG00_clipcode_fifo_fifo_empty_SIZE 1
+#define CLIPPER_DEBUG_REG00_clipcode_fifo_full_SIZE 1
+#define CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_empty_SIZE 1
+#define CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_full_SIZE 1
+#define CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_empty_SIZE 1
+#define CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_full_SIZE 1
+#define CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_empty_SIZE 1
+#define CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_full_SIZE 1
+#define CLIPPER_DEBUG_REG00_ALWAYS_ZERO_SIZE 12
+
+#define CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_write_SHIFT 0
+#define CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_full_SHIFT 1
+#define CLIPPER_DEBUG_REG00_clip_to_ga_fifo_write_SHIFT 2
+#define CLIPPER_DEBUG_REG00_clip_to_ga_fifo_full_SHIFT 3
+#define CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_empty_SHIFT 4
+#define CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_full_SHIFT 5
+#define CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_empty_SHIFT 6
+#define CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_full_SHIFT 7
+#define CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_empty_SHIFT 8
+#define CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_full_SHIFT 9
+#define CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_empty_SHIFT 10
+#define CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_full_SHIFT 11
+#define CLIPPER_DEBUG_REG00_clipcode_fifo_fifo_empty_SHIFT 12
+#define CLIPPER_DEBUG_REG00_clipcode_fifo_full_SHIFT 13
+#define CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_empty_SHIFT 14
+#define CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_full_SHIFT 15
+#define CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_empty_SHIFT 16
+#define CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_full_SHIFT 17
+#define CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_empty_SHIFT 18
+#define CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_full_SHIFT 19
+#define CLIPPER_DEBUG_REG00_ALWAYS_ZERO_SHIFT 20
+
+#define CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_write_MASK 0x00000001
+#define CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_full_MASK 0x00000002
+#define CLIPPER_DEBUG_REG00_clip_to_ga_fifo_write_MASK 0x00000004
+#define CLIPPER_DEBUG_REG00_clip_to_ga_fifo_full_MASK 0x00000008
+#define CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_empty_MASK 0x00000010
+#define CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_full_MASK 0x00000020
+#define CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_empty_MASK 0x00000040
+#define CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_full_MASK 0x00000080
+#define CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_empty_MASK 0x00000100
+#define CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_full_MASK 0x00000200
+#define CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_empty_MASK 0x00000400
+#define CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_full_MASK 0x00000800
+#define CLIPPER_DEBUG_REG00_clipcode_fifo_fifo_empty_MASK 0x00001000
+#define CLIPPER_DEBUG_REG00_clipcode_fifo_full_MASK 0x00002000
+#define CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_empty_MASK 0x00004000
+#define CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_full_MASK 0x00008000
+#define CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_empty_MASK 0x00010000
+#define CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_full_MASK 0x00020000
+#define CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_empty_MASK 0x00040000
+#define CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_full_MASK 0x00080000
+#define CLIPPER_DEBUG_REG00_ALWAYS_ZERO_MASK 0xfff00000
+
+#define CLIPPER_DEBUG_REG00_MASK \
+ (CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_write_MASK | \
+ CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_full_MASK | \
+ CLIPPER_DEBUG_REG00_clip_to_ga_fifo_write_MASK | \
+ CLIPPER_DEBUG_REG00_clip_to_ga_fifo_full_MASK | \
+ CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_empty_MASK | \
+ CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_full_MASK | \
+ CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_empty_MASK | \
+ CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_full_MASK | \
+ CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_empty_MASK | \
+ CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_full_MASK | \
+ CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_empty_MASK | \
+ CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_full_MASK | \
+ CLIPPER_DEBUG_REG00_clipcode_fifo_fifo_empty_MASK | \
+ CLIPPER_DEBUG_REG00_clipcode_fifo_full_MASK | \
+ CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_empty_MASK | \
+ CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_full_MASK | \
+ CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_empty_MASK | \
+ CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_full_MASK | \
+ CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_empty_MASK | \
+ CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_full_MASK | \
+ CLIPPER_DEBUG_REG00_ALWAYS_ZERO_MASK)
+
+#define CLIPPER_DEBUG_REG00(clip_ga_bc_fifo_write, clip_ga_bc_fifo_full, clip_to_ga_fifo_write, clip_to_ga_fifo_full, primic_to_clprim_fifo_empty, primic_to_clprim_fifo_full, clip_to_outsm_fifo_empty, clip_to_outsm_fifo_full, vgt_to_clipp_fifo_empty, vgt_to_clipp_fifo_full, vgt_to_clips_fifo_empty, vgt_to_clips_fifo_full, clipcode_fifo_fifo_empty, clipcode_fifo_full, vte_out_clip_fifo_fifo_empty, vte_out_clip_fifo_fifo_full, vte_out_orig_fifo_fifo_empty, vte_out_orig_fifo_fifo_full, ccgen_to_clipcc_fifo_empty, ccgen_to_clipcc_fifo_full, always_zero) \
+ ((clip_ga_bc_fifo_write << CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_write_SHIFT) | \
+ (clip_ga_bc_fifo_full << CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_full_SHIFT) | \
+ (clip_to_ga_fifo_write << CLIPPER_DEBUG_REG00_clip_to_ga_fifo_write_SHIFT) | \
+ (clip_to_ga_fifo_full << CLIPPER_DEBUG_REG00_clip_to_ga_fifo_full_SHIFT) | \
+ (primic_to_clprim_fifo_empty << CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_empty_SHIFT) | \
+ (primic_to_clprim_fifo_full << CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_full_SHIFT) | \
+ (clip_to_outsm_fifo_empty << CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_empty_SHIFT) | \
+ (clip_to_outsm_fifo_full << CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_full_SHIFT) | \
+ (vgt_to_clipp_fifo_empty << CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_empty_SHIFT) | \
+ (vgt_to_clipp_fifo_full << CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_full_SHIFT) | \
+ (vgt_to_clips_fifo_empty << CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_empty_SHIFT) | \
+ (vgt_to_clips_fifo_full << CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_full_SHIFT) | \
+ (clipcode_fifo_fifo_empty << CLIPPER_DEBUG_REG00_clipcode_fifo_fifo_empty_SHIFT) | \
+ (clipcode_fifo_full << CLIPPER_DEBUG_REG00_clipcode_fifo_full_SHIFT) | \
+ (vte_out_clip_fifo_fifo_empty << CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_empty_SHIFT) | \
+ (vte_out_clip_fifo_fifo_full << CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_full_SHIFT) | \
+ (vte_out_orig_fifo_fifo_empty << CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_empty_SHIFT) | \
+ (vte_out_orig_fifo_fifo_full << CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_full_SHIFT) | \
+ (ccgen_to_clipcc_fifo_empty << CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_empty_SHIFT) | \
+ (ccgen_to_clipcc_fifo_full << CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_full_SHIFT) | \
+ (always_zero << CLIPPER_DEBUG_REG00_ALWAYS_ZERO_SHIFT))
+
+#define CLIPPER_DEBUG_REG00_GET_clip_ga_bc_fifo_write(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_write_MASK) >> CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_write_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_clip_ga_bc_fifo_full(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_full_MASK) >> CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_clip_to_ga_fifo_write(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_clip_to_ga_fifo_write_MASK) >> CLIPPER_DEBUG_REG00_clip_to_ga_fifo_write_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_clip_to_ga_fifo_full(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_clip_to_ga_fifo_full_MASK) >> CLIPPER_DEBUG_REG00_clip_to_ga_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_primic_to_clprim_fifo_empty(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_empty_MASK) >> CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_primic_to_clprim_fifo_full(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_full_MASK) >> CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_clip_to_outsm_fifo_empty(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_empty_MASK) >> CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_clip_to_outsm_fifo_full(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_full_MASK) >> CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_vgt_to_clipp_fifo_empty(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_empty_MASK) >> CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_vgt_to_clipp_fifo_full(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_full_MASK) >> CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_vgt_to_clips_fifo_empty(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_empty_MASK) >> CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_vgt_to_clips_fifo_full(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_full_MASK) >> CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_clipcode_fifo_fifo_empty(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_clipcode_fifo_fifo_empty_MASK) >> CLIPPER_DEBUG_REG00_clipcode_fifo_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_clipcode_fifo_full(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_clipcode_fifo_full_MASK) >> CLIPPER_DEBUG_REG00_clipcode_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_vte_out_clip_fifo_fifo_empty(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_empty_MASK) >> CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_vte_out_clip_fifo_fifo_full(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_full_MASK) >> CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_vte_out_orig_fifo_fifo_empty(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_empty_MASK) >> CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_vte_out_orig_fifo_fifo_full(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_full_MASK) >> CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_ccgen_to_clipcc_fifo_empty(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_empty_MASK) >> CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_ccgen_to_clipcc_fifo_full(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_full_MASK) >> CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_GET_ALWAYS_ZERO(clipper_debug_reg00) \
+ ((clipper_debug_reg00 & CLIPPER_DEBUG_REG00_ALWAYS_ZERO_MASK) >> CLIPPER_DEBUG_REG00_ALWAYS_ZERO_SHIFT)
+
+#define CLIPPER_DEBUG_REG00_SET_clip_ga_bc_fifo_write(clipper_debug_reg00_reg, clip_ga_bc_fifo_write) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_write_MASK) | (clip_ga_bc_fifo_write << CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_write_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_clip_ga_bc_fifo_full(clipper_debug_reg00_reg, clip_ga_bc_fifo_full) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_full_MASK) | (clip_ga_bc_fifo_full << CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_clip_to_ga_fifo_write(clipper_debug_reg00_reg, clip_to_ga_fifo_write) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_clip_to_ga_fifo_write_MASK) | (clip_to_ga_fifo_write << CLIPPER_DEBUG_REG00_clip_to_ga_fifo_write_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_clip_to_ga_fifo_full(clipper_debug_reg00_reg, clip_to_ga_fifo_full) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_clip_to_ga_fifo_full_MASK) | (clip_to_ga_fifo_full << CLIPPER_DEBUG_REG00_clip_to_ga_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_primic_to_clprim_fifo_empty(clipper_debug_reg00_reg, primic_to_clprim_fifo_empty) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_empty_MASK) | (primic_to_clprim_fifo_empty << CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_primic_to_clprim_fifo_full(clipper_debug_reg00_reg, primic_to_clprim_fifo_full) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_full_MASK) | (primic_to_clprim_fifo_full << CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_clip_to_outsm_fifo_empty(clipper_debug_reg00_reg, clip_to_outsm_fifo_empty) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_empty_MASK) | (clip_to_outsm_fifo_empty << CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_clip_to_outsm_fifo_full(clipper_debug_reg00_reg, clip_to_outsm_fifo_full) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_full_MASK) | (clip_to_outsm_fifo_full << CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_vgt_to_clipp_fifo_empty(clipper_debug_reg00_reg, vgt_to_clipp_fifo_empty) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_empty_MASK) | (vgt_to_clipp_fifo_empty << CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_vgt_to_clipp_fifo_full(clipper_debug_reg00_reg, vgt_to_clipp_fifo_full) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_full_MASK) | (vgt_to_clipp_fifo_full << CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_vgt_to_clips_fifo_empty(clipper_debug_reg00_reg, vgt_to_clips_fifo_empty) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_empty_MASK) | (vgt_to_clips_fifo_empty << CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_vgt_to_clips_fifo_full(clipper_debug_reg00_reg, vgt_to_clips_fifo_full) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_full_MASK) | (vgt_to_clips_fifo_full << CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_clipcode_fifo_fifo_empty(clipper_debug_reg00_reg, clipcode_fifo_fifo_empty) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_clipcode_fifo_fifo_empty_MASK) | (clipcode_fifo_fifo_empty << CLIPPER_DEBUG_REG00_clipcode_fifo_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_clipcode_fifo_full(clipper_debug_reg00_reg, clipcode_fifo_full) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_clipcode_fifo_full_MASK) | (clipcode_fifo_full << CLIPPER_DEBUG_REG00_clipcode_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_vte_out_clip_fifo_fifo_empty(clipper_debug_reg00_reg, vte_out_clip_fifo_fifo_empty) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_empty_MASK) | (vte_out_clip_fifo_fifo_empty << CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_vte_out_clip_fifo_fifo_full(clipper_debug_reg00_reg, vte_out_clip_fifo_fifo_full) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_full_MASK) | (vte_out_clip_fifo_fifo_full << CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_vte_out_orig_fifo_fifo_empty(clipper_debug_reg00_reg, vte_out_orig_fifo_fifo_empty) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_empty_MASK) | (vte_out_orig_fifo_fifo_empty << CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_vte_out_orig_fifo_fifo_full(clipper_debug_reg00_reg, vte_out_orig_fifo_fifo_full) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_full_MASK) | (vte_out_orig_fifo_fifo_full << CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_ccgen_to_clipcc_fifo_empty(clipper_debug_reg00_reg, ccgen_to_clipcc_fifo_empty) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_empty_MASK) | (ccgen_to_clipcc_fifo_empty << CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_ccgen_to_clipcc_fifo_full(clipper_debug_reg00_reg, ccgen_to_clipcc_fifo_full) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_full_MASK) | (ccgen_to_clipcc_fifo_full << CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG00_SET_ALWAYS_ZERO(clipper_debug_reg00_reg, always_zero) \
+ clipper_debug_reg00_reg = (clipper_debug_reg00_reg & ~CLIPPER_DEBUG_REG00_ALWAYS_ZERO_MASK) | (always_zero << CLIPPER_DEBUG_REG00_ALWAYS_ZERO_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg00_t {
+ unsigned int clip_ga_bc_fifo_write : CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_write_SIZE;
+ unsigned int clip_ga_bc_fifo_full : CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_full_SIZE;
+ unsigned int clip_to_ga_fifo_write : CLIPPER_DEBUG_REG00_clip_to_ga_fifo_write_SIZE;
+ unsigned int clip_to_ga_fifo_full : CLIPPER_DEBUG_REG00_clip_to_ga_fifo_full_SIZE;
+ unsigned int primic_to_clprim_fifo_empty : CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_empty_SIZE;
+ unsigned int primic_to_clprim_fifo_full : CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_full_SIZE;
+ unsigned int clip_to_outsm_fifo_empty : CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_empty_SIZE;
+ unsigned int clip_to_outsm_fifo_full : CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_full_SIZE;
+ unsigned int vgt_to_clipp_fifo_empty : CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_empty_SIZE;
+ unsigned int vgt_to_clipp_fifo_full : CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_full_SIZE;
+ unsigned int vgt_to_clips_fifo_empty : CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_empty_SIZE;
+ unsigned int vgt_to_clips_fifo_full : CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_full_SIZE;
+ unsigned int clipcode_fifo_fifo_empty : CLIPPER_DEBUG_REG00_clipcode_fifo_fifo_empty_SIZE;
+ unsigned int clipcode_fifo_full : CLIPPER_DEBUG_REG00_clipcode_fifo_full_SIZE;
+ unsigned int vte_out_clip_fifo_fifo_empty : CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_empty_SIZE;
+ unsigned int vte_out_clip_fifo_fifo_full : CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_full_SIZE;
+ unsigned int vte_out_orig_fifo_fifo_empty : CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_empty_SIZE;
+ unsigned int vte_out_orig_fifo_fifo_full : CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_full_SIZE;
+ unsigned int ccgen_to_clipcc_fifo_empty : CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_empty_SIZE;
+ unsigned int ccgen_to_clipcc_fifo_full : CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_full_SIZE;
+ unsigned int always_zero : CLIPPER_DEBUG_REG00_ALWAYS_ZERO_SIZE;
+ } clipper_debug_reg00_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg00_t {
+ unsigned int always_zero : CLIPPER_DEBUG_REG00_ALWAYS_ZERO_SIZE;
+ unsigned int ccgen_to_clipcc_fifo_full : CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_full_SIZE;
+ unsigned int ccgen_to_clipcc_fifo_empty : CLIPPER_DEBUG_REG00_ccgen_to_clipcc_fifo_empty_SIZE;
+ unsigned int vte_out_orig_fifo_fifo_full : CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_full_SIZE;
+ unsigned int vte_out_orig_fifo_fifo_empty : CLIPPER_DEBUG_REG00_vte_out_orig_fifo_fifo_empty_SIZE;
+ unsigned int vte_out_clip_fifo_fifo_full : CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_full_SIZE;
+ unsigned int vte_out_clip_fifo_fifo_empty : CLIPPER_DEBUG_REG00_vte_out_clip_fifo_fifo_empty_SIZE;
+ unsigned int clipcode_fifo_full : CLIPPER_DEBUG_REG00_clipcode_fifo_full_SIZE;
+ unsigned int clipcode_fifo_fifo_empty : CLIPPER_DEBUG_REG00_clipcode_fifo_fifo_empty_SIZE;
+ unsigned int vgt_to_clips_fifo_full : CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_full_SIZE;
+ unsigned int vgt_to_clips_fifo_empty : CLIPPER_DEBUG_REG00_vgt_to_clips_fifo_empty_SIZE;
+ unsigned int vgt_to_clipp_fifo_full : CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_full_SIZE;
+ unsigned int vgt_to_clipp_fifo_empty : CLIPPER_DEBUG_REG00_vgt_to_clipp_fifo_empty_SIZE;
+ unsigned int clip_to_outsm_fifo_full : CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_full_SIZE;
+ unsigned int clip_to_outsm_fifo_empty : CLIPPER_DEBUG_REG00_clip_to_outsm_fifo_empty_SIZE;
+ unsigned int primic_to_clprim_fifo_full : CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_full_SIZE;
+ unsigned int primic_to_clprim_fifo_empty : CLIPPER_DEBUG_REG00_primic_to_clprim_fifo_empty_SIZE;
+ unsigned int clip_to_ga_fifo_full : CLIPPER_DEBUG_REG00_clip_to_ga_fifo_full_SIZE;
+ unsigned int clip_to_ga_fifo_write : CLIPPER_DEBUG_REG00_clip_to_ga_fifo_write_SIZE;
+ unsigned int clip_ga_bc_fifo_full : CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_full_SIZE;
+ unsigned int clip_ga_bc_fifo_write : CLIPPER_DEBUG_REG00_clip_ga_bc_fifo_write_SIZE;
+ } clipper_debug_reg00_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ clipper_debug_reg00_t f;
+} clipper_debug_reg00_u;
+
+
+/*
+ * CLIPPER_DEBUG_REG01 struct
+ */
+
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_end_of_packet_SIZE 1
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_first_prim_of_slot_SIZE 1
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_deallocate_slot_SIZE 3
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_clipped_prim_SIZE 1
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_null_primitive_SIZE 1
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_2_SIZE 4
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_1_SIZE 4
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_0_SIZE 4
+#define CLIPPER_DEBUG_REG01_clip_vert_vte_valid_SIZE 3
+#define CLIPPER_DEBUG_REG01_vte_out_clip_rd_vertex_store_indx_SIZE 2
+#define CLIPPER_DEBUG_REG01_ALWAYS_ZERO_SIZE 8
+
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_end_of_packet_SHIFT 0
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_first_prim_of_slot_SHIFT 1
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_deallocate_slot_SHIFT 2
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_clipped_prim_SHIFT 5
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_null_primitive_SHIFT 6
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_2_SHIFT 7
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_1_SHIFT 11
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_0_SHIFT 15
+#define CLIPPER_DEBUG_REG01_clip_vert_vte_valid_SHIFT 19
+#define CLIPPER_DEBUG_REG01_vte_out_clip_rd_vertex_store_indx_SHIFT 22
+#define CLIPPER_DEBUG_REG01_ALWAYS_ZERO_SHIFT 24
+
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_end_of_packet_MASK 0x00000001
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_first_prim_of_slot_MASK 0x00000002
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_deallocate_slot_MASK 0x0000001c
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_clipped_prim_MASK 0x00000020
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_null_primitive_MASK 0x00000040
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_2_MASK 0x00000780
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_1_MASK 0x00007800
+#define CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_0_MASK 0x00078000
+#define CLIPPER_DEBUG_REG01_clip_vert_vte_valid_MASK 0x00380000
+#define CLIPPER_DEBUG_REG01_vte_out_clip_rd_vertex_store_indx_MASK 0x00c00000
+#define CLIPPER_DEBUG_REG01_ALWAYS_ZERO_MASK 0xff000000
+
+#define CLIPPER_DEBUG_REG01_MASK \
+ (CLIPPER_DEBUG_REG01_clip_to_outsm_end_of_packet_MASK | \
+ CLIPPER_DEBUG_REG01_clip_to_outsm_first_prim_of_slot_MASK | \
+ CLIPPER_DEBUG_REG01_clip_to_outsm_deallocate_slot_MASK | \
+ CLIPPER_DEBUG_REG01_clip_to_outsm_clipped_prim_MASK | \
+ CLIPPER_DEBUG_REG01_clip_to_outsm_null_primitive_MASK | \
+ CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_2_MASK | \
+ CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_1_MASK | \
+ CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_0_MASK | \
+ CLIPPER_DEBUG_REG01_clip_vert_vte_valid_MASK | \
+ CLIPPER_DEBUG_REG01_vte_out_clip_rd_vertex_store_indx_MASK | \
+ CLIPPER_DEBUG_REG01_ALWAYS_ZERO_MASK)
+
+#define CLIPPER_DEBUG_REG01(clip_to_outsm_end_of_packet, clip_to_outsm_first_prim_of_slot, clip_to_outsm_deallocate_slot, clip_to_outsm_clipped_prim, clip_to_outsm_null_primitive, clip_to_outsm_vertex_store_indx_2, clip_to_outsm_vertex_store_indx_1, clip_to_outsm_vertex_store_indx_0, clip_vert_vte_valid, vte_out_clip_rd_vertex_store_indx, always_zero) \
+ ((clip_to_outsm_end_of_packet << CLIPPER_DEBUG_REG01_clip_to_outsm_end_of_packet_SHIFT) | \
+ (clip_to_outsm_first_prim_of_slot << CLIPPER_DEBUG_REG01_clip_to_outsm_first_prim_of_slot_SHIFT) | \
+ (clip_to_outsm_deallocate_slot << CLIPPER_DEBUG_REG01_clip_to_outsm_deallocate_slot_SHIFT) | \
+ (clip_to_outsm_clipped_prim << CLIPPER_DEBUG_REG01_clip_to_outsm_clipped_prim_SHIFT) | \
+ (clip_to_outsm_null_primitive << CLIPPER_DEBUG_REG01_clip_to_outsm_null_primitive_SHIFT) | \
+ (clip_to_outsm_vertex_store_indx_2 << CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_2_SHIFT) | \
+ (clip_to_outsm_vertex_store_indx_1 << CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_1_SHIFT) | \
+ (clip_to_outsm_vertex_store_indx_0 << CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_0_SHIFT) | \
+ (clip_vert_vte_valid << CLIPPER_DEBUG_REG01_clip_vert_vte_valid_SHIFT) | \
+ (vte_out_clip_rd_vertex_store_indx << CLIPPER_DEBUG_REG01_vte_out_clip_rd_vertex_store_indx_SHIFT) | \
+ (always_zero << CLIPPER_DEBUG_REG01_ALWAYS_ZERO_SHIFT))
+
+#define CLIPPER_DEBUG_REG01_GET_clip_to_outsm_end_of_packet(clipper_debug_reg01) \
+ ((clipper_debug_reg01 & CLIPPER_DEBUG_REG01_clip_to_outsm_end_of_packet_MASK) >> CLIPPER_DEBUG_REG01_clip_to_outsm_end_of_packet_SHIFT)
+#define CLIPPER_DEBUG_REG01_GET_clip_to_outsm_first_prim_of_slot(clipper_debug_reg01) \
+ ((clipper_debug_reg01 & CLIPPER_DEBUG_REG01_clip_to_outsm_first_prim_of_slot_MASK) >> CLIPPER_DEBUG_REG01_clip_to_outsm_first_prim_of_slot_SHIFT)
+#define CLIPPER_DEBUG_REG01_GET_clip_to_outsm_deallocate_slot(clipper_debug_reg01) \
+ ((clipper_debug_reg01 & CLIPPER_DEBUG_REG01_clip_to_outsm_deallocate_slot_MASK) >> CLIPPER_DEBUG_REG01_clip_to_outsm_deallocate_slot_SHIFT)
+#define CLIPPER_DEBUG_REG01_GET_clip_to_outsm_clipped_prim(clipper_debug_reg01) \
+ ((clipper_debug_reg01 & CLIPPER_DEBUG_REG01_clip_to_outsm_clipped_prim_MASK) >> CLIPPER_DEBUG_REG01_clip_to_outsm_clipped_prim_SHIFT)
+#define CLIPPER_DEBUG_REG01_GET_clip_to_outsm_null_primitive(clipper_debug_reg01) \
+ ((clipper_debug_reg01 & CLIPPER_DEBUG_REG01_clip_to_outsm_null_primitive_MASK) >> CLIPPER_DEBUG_REG01_clip_to_outsm_null_primitive_SHIFT)
+#define CLIPPER_DEBUG_REG01_GET_clip_to_outsm_vertex_store_indx_2(clipper_debug_reg01) \
+ ((clipper_debug_reg01 & CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_2_MASK) >> CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_2_SHIFT)
+#define CLIPPER_DEBUG_REG01_GET_clip_to_outsm_vertex_store_indx_1(clipper_debug_reg01) \
+ ((clipper_debug_reg01 & CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_1_MASK) >> CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_1_SHIFT)
+#define CLIPPER_DEBUG_REG01_GET_clip_to_outsm_vertex_store_indx_0(clipper_debug_reg01) \
+ ((clipper_debug_reg01 & CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_0_MASK) >> CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_0_SHIFT)
+#define CLIPPER_DEBUG_REG01_GET_clip_vert_vte_valid(clipper_debug_reg01) \
+ ((clipper_debug_reg01 & CLIPPER_DEBUG_REG01_clip_vert_vte_valid_MASK) >> CLIPPER_DEBUG_REG01_clip_vert_vte_valid_SHIFT)
+#define CLIPPER_DEBUG_REG01_GET_vte_out_clip_rd_vertex_store_indx(clipper_debug_reg01) \
+ ((clipper_debug_reg01 & CLIPPER_DEBUG_REG01_vte_out_clip_rd_vertex_store_indx_MASK) >> CLIPPER_DEBUG_REG01_vte_out_clip_rd_vertex_store_indx_SHIFT)
+#define CLIPPER_DEBUG_REG01_GET_ALWAYS_ZERO(clipper_debug_reg01) \
+ ((clipper_debug_reg01 & CLIPPER_DEBUG_REG01_ALWAYS_ZERO_MASK) >> CLIPPER_DEBUG_REG01_ALWAYS_ZERO_SHIFT)
+
+#define CLIPPER_DEBUG_REG01_SET_clip_to_outsm_end_of_packet(clipper_debug_reg01_reg, clip_to_outsm_end_of_packet) \
+ clipper_debug_reg01_reg = (clipper_debug_reg01_reg & ~CLIPPER_DEBUG_REG01_clip_to_outsm_end_of_packet_MASK) | (clip_to_outsm_end_of_packet << CLIPPER_DEBUG_REG01_clip_to_outsm_end_of_packet_SHIFT)
+#define CLIPPER_DEBUG_REG01_SET_clip_to_outsm_first_prim_of_slot(clipper_debug_reg01_reg, clip_to_outsm_first_prim_of_slot) \
+ clipper_debug_reg01_reg = (clipper_debug_reg01_reg & ~CLIPPER_DEBUG_REG01_clip_to_outsm_first_prim_of_slot_MASK) | (clip_to_outsm_first_prim_of_slot << CLIPPER_DEBUG_REG01_clip_to_outsm_first_prim_of_slot_SHIFT)
+#define CLIPPER_DEBUG_REG01_SET_clip_to_outsm_deallocate_slot(clipper_debug_reg01_reg, clip_to_outsm_deallocate_slot) \
+ clipper_debug_reg01_reg = (clipper_debug_reg01_reg & ~CLIPPER_DEBUG_REG01_clip_to_outsm_deallocate_slot_MASK) | (clip_to_outsm_deallocate_slot << CLIPPER_DEBUG_REG01_clip_to_outsm_deallocate_slot_SHIFT)
+#define CLIPPER_DEBUG_REG01_SET_clip_to_outsm_clipped_prim(clipper_debug_reg01_reg, clip_to_outsm_clipped_prim) \
+ clipper_debug_reg01_reg = (clipper_debug_reg01_reg & ~CLIPPER_DEBUG_REG01_clip_to_outsm_clipped_prim_MASK) | (clip_to_outsm_clipped_prim << CLIPPER_DEBUG_REG01_clip_to_outsm_clipped_prim_SHIFT)
+#define CLIPPER_DEBUG_REG01_SET_clip_to_outsm_null_primitive(clipper_debug_reg01_reg, clip_to_outsm_null_primitive) \
+ clipper_debug_reg01_reg = (clipper_debug_reg01_reg & ~CLIPPER_DEBUG_REG01_clip_to_outsm_null_primitive_MASK) | (clip_to_outsm_null_primitive << CLIPPER_DEBUG_REG01_clip_to_outsm_null_primitive_SHIFT)
+#define CLIPPER_DEBUG_REG01_SET_clip_to_outsm_vertex_store_indx_2(clipper_debug_reg01_reg, clip_to_outsm_vertex_store_indx_2) \
+ clipper_debug_reg01_reg = (clipper_debug_reg01_reg & ~CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_2_MASK) | (clip_to_outsm_vertex_store_indx_2 << CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_2_SHIFT)
+#define CLIPPER_DEBUG_REG01_SET_clip_to_outsm_vertex_store_indx_1(clipper_debug_reg01_reg, clip_to_outsm_vertex_store_indx_1) \
+ clipper_debug_reg01_reg = (clipper_debug_reg01_reg & ~CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_1_MASK) | (clip_to_outsm_vertex_store_indx_1 << CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_1_SHIFT)
+#define CLIPPER_DEBUG_REG01_SET_clip_to_outsm_vertex_store_indx_0(clipper_debug_reg01_reg, clip_to_outsm_vertex_store_indx_0) \
+ clipper_debug_reg01_reg = (clipper_debug_reg01_reg & ~CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_0_MASK) | (clip_to_outsm_vertex_store_indx_0 << CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_0_SHIFT)
+#define CLIPPER_DEBUG_REG01_SET_clip_vert_vte_valid(clipper_debug_reg01_reg, clip_vert_vte_valid) \
+ clipper_debug_reg01_reg = (clipper_debug_reg01_reg & ~CLIPPER_DEBUG_REG01_clip_vert_vte_valid_MASK) | (clip_vert_vte_valid << CLIPPER_DEBUG_REG01_clip_vert_vte_valid_SHIFT)
+#define CLIPPER_DEBUG_REG01_SET_vte_out_clip_rd_vertex_store_indx(clipper_debug_reg01_reg, vte_out_clip_rd_vertex_store_indx) \
+ clipper_debug_reg01_reg = (clipper_debug_reg01_reg & ~CLIPPER_DEBUG_REG01_vte_out_clip_rd_vertex_store_indx_MASK) | (vte_out_clip_rd_vertex_store_indx << CLIPPER_DEBUG_REG01_vte_out_clip_rd_vertex_store_indx_SHIFT)
+#define CLIPPER_DEBUG_REG01_SET_ALWAYS_ZERO(clipper_debug_reg01_reg, always_zero) \
+ clipper_debug_reg01_reg = (clipper_debug_reg01_reg & ~CLIPPER_DEBUG_REG01_ALWAYS_ZERO_MASK) | (always_zero << CLIPPER_DEBUG_REG01_ALWAYS_ZERO_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg01_t {
+ unsigned int clip_to_outsm_end_of_packet : CLIPPER_DEBUG_REG01_clip_to_outsm_end_of_packet_SIZE;
+ unsigned int clip_to_outsm_first_prim_of_slot : CLIPPER_DEBUG_REG01_clip_to_outsm_first_prim_of_slot_SIZE;
+ unsigned int clip_to_outsm_deallocate_slot : CLIPPER_DEBUG_REG01_clip_to_outsm_deallocate_slot_SIZE;
+ unsigned int clip_to_outsm_clipped_prim : CLIPPER_DEBUG_REG01_clip_to_outsm_clipped_prim_SIZE;
+ unsigned int clip_to_outsm_null_primitive : CLIPPER_DEBUG_REG01_clip_to_outsm_null_primitive_SIZE;
+ unsigned int clip_to_outsm_vertex_store_indx_2 : CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_2_SIZE;
+ unsigned int clip_to_outsm_vertex_store_indx_1 : CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_1_SIZE;
+ unsigned int clip_to_outsm_vertex_store_indx_0 : CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_0_SIZE;
+ unsigned int clip_vert_vte_valid : CLIPPER_DEBUG_REG01_clip_vert_vte_valid_SIZE;
+ unsigned int vte_out_clip_rd_vertex_store_indx : CLIPPER_DEBUG_REG01_vte_out_clip_rd_vertex_store_indx_SIZE;
+ unsigned int always_zero : CLIPPER_DEBUG_REG01_ALWAYS_ZERO_SIZE;
+ } clipper_debug_reg01_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg01_t {
+ unsigned int always_zero : CLIPPER_DEBUG_REG01_ALWAYS_ZERO_SIZE;
+ unsigned int vte_out_clip_rd_vertex_store_indx : CLIPPER_DEBUG_REG01_vte_out_clip_rd_vertex_store_indx_SIZE;
+ unsigned int clip_vert_vte_valid : CLIPPER_DEBUG_REG01_clip_vert_vte_valid_SIZE;
+ unsigned int clip_to_outsm_vertex_store_indx_0 : CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_0_SIZE;
+ unsigned int clip_to_outsm_vertex_store_indx_1 : CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_1_SIZE;
+ unsigned int clip_to_outsm_vertex_store_indx_2 : CLIPPER_DEBUG_REG01_clip_to_outsm_vertex_store_indx_2_SIZE;
+ unsigned int clip_to_outsm_null_primitive : CLIPPER_DEBUG_REG01_clip_to_outsm_null_primitive_SIZE;
+ unsigned int clip_to_outsm_clipped_prim : CLIPPER_DEBUG_REG01_clip_to_outsm_clipped_prim_SIZE;
+ unsigned int clip_to_outsm_deallocate_slot : CLIPPER_DEBUG_REG01_clip_to_outsm_deallocate_slot_SIZE;
+ unsigned int clip_to_outsm_first_prim_of_slot : CLIPPER_DEBUG_REG01_clip_to_outsm_first_prim_of_slot_SIZE;
+ unsigned int clip_to_outsm_end_of_packet : CLIPPER_DEBUG_REG01_clip_to_outsm_end_of_packet_SIZE;
+ } clipper_debug_reg01_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ clipper_debug_reg01_t f;
+} clipper_debug_reg01_u;
+
+
+/*
+ * CLIPPER_DEBUG_REG02 struct
+ */
+
+#define CLIPPER_DEBUG_REG02_ALWAYS_ZERO1_SIZE 21
+#define CLIPPER_DEBUG_REG02_clipsm0_clip_to_clipga_clip_to_outsm_cnt_SIZE 3
+#define CLIPPER_DEBUG_REG02_ALWAYS_ZERO0_SIZE 7
+#define CLIPPER_DEBUG_REG02_clipsm0_clprim_to_clip_prim_valid_SIZE 1
+
+#define CLIPPER_DEBUG_REG02_ALWAYS_ZERO1_SHIFT 0
+#define CLIPPER_DEBUG_REG02_clipsm0_clip_to_clipga_clip_to_outsm_cnt_SHIFT 21
+#define CLIPPER_DEBUG_REG02_ALWAYS_ZERO0_SHIFT 24
+#define CLIPPER_DEBUG_REG02_clipsm0_clprim_to_clip_prim_valid_SHIFT 31
+
+#define CLIPPER_DEBUG_REG02_ALWAYS_ZERO1_MASK 0x001fffff
+#define CLIPPER_DEBUG_REG02_clipsm0_clip_to_clipga_clip_to_outsm_cnt_MASK 0x00e00000
+#define CLIPPER_DEBUG_REG02_ALWAYS_ZERO0_MASK 0x7f000000
+#define CLIPPER_DEBUG_REG02_clipsm0_clprim_to_clip_prim_valid_MASK 0x80000000
+
+#define CLIPPER_DEBUG_REG02_MASK \
+ (CLIPPER_DEBUG_REG02_ALWAYS_ZERO1_MASK | \
+ CLIPPER_DEBUG_REG02_clipsm0_clip_to_clipga_clip_to_outsm_cnt_MASK | \
+ CLIPPER_DEBUG_REG02_ALWAYS_ZERO0_MASK | \
+ CLIPPER_DEBUG_REG02_clipsm0_clprim_to_clip_prim_valid_MASK)
+
+#define CLIPPER_DEBUG_REG02(always_zero1, clipsm0_clip_to_clipga_clip_to_outsm_cnt, always_zero0, clipsm0_clprim_to_clip_prim_valid) \
+ ((always_zero1 << CLIPPER_DEBUG_REG02_ALWAYS_ZERO1_SHIFT) | \
+ (clipsm0_clip_to_clipga_clip_to_outsm_cnt << CLIPPER_DEBUG_REG02_clipsm0_clip_to_clipga_clip_to_outsm_cnt_SHIFT) | \
+ (always_zero0 << CLIPPER_DEBUG_REG02_ALWAYS_ZERO0_SHIFT) | \
+ (clipsm0_clprim_to_clip_prim_valid << CLIPPER_DEBUG_REG02_clipsm0_clprim_to_clip_prim_valid_SHIFT))
+
+#define CLIPPER_DEBUG_REG02_GET_ALWAYS_ZERO1(clipper_debug_reg02) \
+ ((clipper_debug_reg02 & CLIPPER_DEBUG_REG02_ALWAYS_ZERO1_MASK) >> CLIPPER_DEBUG_REG02_ALWAYS_ZERO1_SHIFT)
+#define CLIPPER_DEBUG_REG02_GET_clipsm0_clip_to_clipga_clip_to_outsm_cnt(clipper_debug_reg02) \
+ ((clipper_debug_reg02 & CLIPPER_DEBUG_REG02_clipsm0_clip_to_clipga_clip_to_outsm_cnt_MASK) >> CLIPPER_DEBUG_REG02_clipsm0_clip_to_clipga_clip_to_outsm_cnt_SHIFT)
+#define CLIPPER_DEBUG_REG02_GET_ALWAYS_ZERO0(clipper_debug_reg02) \
+ ((clipper_debug_reg02 & CLIPPER_DEBUG_REG02_ALWAYS_ZERO0_MASK) >> CLIPPER_DEBUG_REG02_ALWAYS_ZERO0_SHIFT)
+#define CLIPPER_DEBUG_REG02_GET_clipsm0_clprim_to_clip_prim_valid(clipper_debug_reg02) \
+ ((clipper_debug_reg02 & CLIPPER_DEBUG_REG02_clipsm0_clprim_to_clip_prim_valid_MASK) >> CLIPPER_DEBUG_REG02_clipsm0_clprim_to_clip_prim_valid_SHIFT)
+
+#define CLIPPER_DEBUG_REG02_SET_ALWAYS_ZERO1(clipper_debug_reg02_reg, always_zero1) \
+ clipper_debug_reg02_reg = (clipper_debug_reg02_reg & ~CLIPPER_DEBUG_REG02_ALWAYS_ZERO1_MASK) | (always_zero1 << CLIPPER_DEBUG_REG02_ALWAYS_ZERO1_SHIFT)
+#define CLIPPER_DEBUG_REG02_SET_clipsm0_clip_to_clipga_clip_to_outsm_cnt(clipper_debug_reg02_reg, clipsm0_clip_to_clipga_clip_to_outsm_cnt) \
+ clipper_debug_reg02_reg = (clipper_debug_reg02_reg & ~CLIPPER_DEBUG_REG02_clipsm0_clip_to_clipga_clip_to_outsm_cnt_MASK) | (clipsm0_clip_to_clipga_clip_to_outsm_cnt << CLIPPER_DEBUG_REG02_clipsm0_clip_to_clipga_clip_to_outsm_cnt_SHIFT)
+#define CLIPPER_DEBUG_REG02_SET_ALWAYS_ZERO0(clipper_debug_reg02_reg, always_zero0) \
+ clipper_debug_reg02_reg = (clipper_debug_reg02_reg & ~CLIPPER_DEBUG_REG02_ALWAYS_ZERO0_MASK) | (always_zero0 << CLIPPER_DEBUG_REG02_ALWAYS_ZERO0_SHIFT)
+#define CLIPPER_DEBUG_REG02_SET_clipsm0_clprim_to_clip_prim_valid(clipper_debug_reg02_reg, clipsm0_clprim_to_clip_prim_valid) \
+ clipper_debug_reg02_reg = (clipper_debug_reg02_reg & ~CLIPPER_DEBUG_REG02_clipsm0_clprim_to_clip_prim_valid_MASK) | (clipsm0_clprim_to_clip_prim_valid << CLIPPER_DEBUG_REG02_clipsm0_clprim_to_clip_prim_valid_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg02_t {
+ unsigned int always_zero1 : CLIPPER_DEBUG_REG02_ALWAYS_ZERO1_SIZE;
+ unsigned int clipsm0_clip_to_clipga_clip_to_outsm_cnt : CLIPPER_DEBUG_REG02_clipsm0_clip_to_clipga_clip_to_outsm_cnt_SIZE;
+ unsigned int always_zero0 : CLIPPER_DEBUG_REG02_ALWAYS_ZERO0_SIZE;
+ unsigned int clipsm0_clprim_to_clip_prim_valid : CLIPPER_DEBUG_REG02_clipsm0_clprim_to_clip_prim_valid_SIZE;
+ } clipper_debug_reg02_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg02_t {
+ unsigned int clipsm0_clprim_to_clip_prim_valid : CLIPPER_DEBUG_REG02_clipsm0_clprim_to_clip_prim_valid_SIZE;
+ unsigned int always_zero0 : CLIPPER_DEBUG_REG02_ALWAYS_ZERO0_SIZE;
+ unsigned int clipsm0_clip_to_clipga_clip_to_outsm_cnt : CLIPPER_DEBUG_REG02_clipsm0_clip_to_clipga_clip_to_outsm_cnt_SIZE;
+ unsigned int always_zero1 : CLIPPER_DEBUG_REG02_ALWAYS_ZERO1_SIZE;
+ } clipper_debug_reg02_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ clipper_debug_reg02_t f;
+} clipper_debug_reg02_u;
+
+
+/*
+ * CLIPPER_DEBUG_REG03 struct
+ */
+
+#define CLIPPER_DEBUG_REG03_ALWAYS_ZERO3_SIZE 3
+#define CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_primitive_SIZE 1
+#define CLIPPER_DEBUG_REG03_ALWAYS_ZERO2_SIZE 3
+#define CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_null_primitive_SIZE 1
+#define CLIPPER_DEBUG_REG03_ALWAYS_ZERO1_SIZE 12
+#define CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_code_or_SIZE 6
+#define CLIPPER_DEBUG_REG03_ALWAYS_ZERO0_SIZE 6
+
+#define CLIPPER_DEBUG_REG03_ALWAYS_ZERO3_SHIFT 0
+#define CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_primitive_SHIFT 3
+#define CLIPPER_DEBUG_REG03_ALWAYS_ZERO2_SHIFT 4
+#define CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_null_primitive_SHIFT 7
+#define CLIPPER_DEBUG_REG03_ALWAYS_ZERO1_SHIFT 8
+#define CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_code_or_SHIFT 20
+#define CLIPPER_DEBUG_REG03_ALWAYS_ZERO0_SHIFT 26
+
+#define CLIPPER_DEBUG_REG03_ALWAYS_ZERO3_MASK 0x00000007
+#define CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_primitive_MASK 0x00000008
+#define CLIPPER_DEBUG_REG03_ALWAYS_ZERO2_MASK 0x00000070
+#define CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_null_primitive_MASK 0x00000080
+#define CLIPPER_DEBUG_REG03_ALWAYS_ZERO1_MASK 0x000fff00
+#define CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_code_or_MASK 0x03f00000
+#define CLIPPER_DEBUG_REG03_ALWAYS_ZERO0_MASK 0xfc000000
+
+#define CLIPPER_DEBUG_REG03_MASK \
+ (CLIPPER_DEBUG_REG03_ALWAYS_ZERO3_MASK | \
+ CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_primitive_MASK | \
+ CLIPPER_DEBUG_REG03_ALWAYS_ZERO2_MASK | \
+ CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_null_primitive_MASK | \
+ CLIPPER_DEBUG_REG03_ALWAYS_ZERO1_MASK | \
+ CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_code_or_MASK | \
+ CLIPPER_DEBUG_REG03_ALWAYS_ZERO0_MASK)
+
+#define CLIPPER_DEBUG_REG03(always_zero3, clipsm0_clprim_to_clip_clip_primitive, always_zero2, clipsm0_clprim_to_clip_null_primitive, always_zero1, clipsm0_clprim_to_clip_clip_code_or, always_zero0) \
+ ((always_zero3 << CLIPPER_DEBUG_REG03_ALWAYS_ZERO3_SHIFT) | \
+ (clipsm0_clprim_to_clip_clip_primitive << CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_primitive_SHIFT) | \
+ (always_zero2 << CLIPPER_DEBUG_REG03_ALWAYS_ZERO2_SHIFT) | \
+ (clipsm0_clprim_to_clip_null_primitive << CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_null_primitive_SHIFT) | \
+ (always_zero1 << CLIPPER_DEBUG_REG03_ALWAYS_ZERO1_SHIFT) | \
+ (clipsm0_clprim_to_clip_clip_code_or << CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_code_or_SHIFT) | \
+ (always_zero0 << CLIPPER_DEBUG_REG03_ALWAYS_ZERO0_SHIFT))
+
+#define CLIPPER_DEBUG_REG03_GET_ALWAYS_ZERO3(clipper_debug_reg03) \
+ ((clipper_debug_reg03 & CLIPPER_DEBUG_REG03_ALWAYS_ZERO3_MASK) >> CLIPPER_DEBUG_REG03_ALWAYS_ZERO3_SHIFT)
+#define CLIPPER_DEBUG_REG03_GET_clipsm0_clprim_to_clip_clip_primitive(clipper_debug_reg03) \
+ ((clipper_debug_reg03 & CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_primitive_MASK) >> CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_primitive_SHIFT)
+#define CLIPPER_DEBUG_REG03_GET_ALWAYS_ZERO2(clipper_debug_reg03) \
+ ((clipper_debug_reg03 & CLIPPER_DEBUG_REG03_ALWAYS_ZERO2_MASK) >> CLIPPER_DEBUG_REG03_ALWAYS_ZERO2_SHIFT)
+#define CLIPPER_DEBUG_REG03_GET_clipsm0_clprim_to_clip_null_primitive(clipper_debug_reg03) \
+ ((clipper_debug_reg03 & CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_null_primitive_MASK) >> CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_null_primitive_SHIFT)
+#define CLIPPER_DEBUG_REG03_GET_ALWAYS_ZERO1(clipper_debug_reg03) \
+ ((clipper_debug_reg03 & CLIPPER_DEBUG_REG03_ALWAYS_ZERO1_MASK) >> CLIPPER_DEBUG_REG03_ALWAYS_ZERO1_SHIFT)
+#define CLIPPER_DEBUG_REG03_GET_clipsm0_clprim_to_clip_clip_code_or(clipper_debug_reg03) \
+ ((clipper_debug_reg03 & CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_code_or_MASK) >> CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_code_or_SHIFT)
+#define CLIPPER_DEBUG_REG03_GET_ALWAYS_ZERO0(clipper_debug_reg03) \
+ ((clipper_debug_reg03 & CLIPPER_DEBUG_REG03_ALWAYS_ZERO0_MASK) >> CLIPPER_DEBUG_REG03_ALWAYS_ZERO0_SHIFT)
+
+#define CLIPPER_DEBUG_REG03_SET_ALWAYS_ZERO3(clipper_debug_reg03_reg, always_zero3) \
+ clipper_debug_reg03_reg = (clipper_debug_reg03_reg & ~CLIPPER_DEBUG_REG03_ALWAYS_ZERO3_MASK) | (always_zero3 << CLIPPER_DEBUG_REG03_ALWAYS_ZERO3_SHIFT)
+#define CLIPPER_DEBUG_REG03_SET_clipsm0_clprim_to_clip_clip_primitive(clipper_debug_reg03_reg, clipsm0_clprim_to_clip_clip_primitive) \
+ clipper_debug_reg03_reg = (clipper_debug_reg03_reg & ~CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_primitive_MASK) | (clipsm0_clprim_to_clip_clip_primitive << CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_primitive_SHIFT)
+#define CLIPPER_DEBUG_REG03_SET_ALWAYS_ZERO2(clipper_debug_reg03_reg, always_zero2) \
+ clipper_debug_reg03_reg = (clipper_debug_reg03_reg & ~CLIPPER_DEBUG_REG03_ALWAYS_ZERO2_MASK) | (always_zero2 << CLIPPER_DEBUG_REG03_ALWAYS_ZERO2_SHIFT)
+#define CLIPPER_DEBUG_REG03_SET_clipsm0_clprim_to_clip_null_primitive(clipper_debug_reg03_reg, clipsm0_clprim_to_clip_null_primitive) \
+ clipper_debug_reg03_reg = (clipper_debug_reg03_reg & ~CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_null_primitive_MASK) | (clipsm0_clprim_to_clip_null_primitive << CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_null_primitive_SHIFT)
+#define CLIPPER_DEBUG_REG03_SET_ALWAYS_ZERO1(clipper_debug_reg03_reg, always_zero1) \
+ clipper_debug_reg03_reg = (clipper_debug_reg03_reg & ~CLIPPER_DEBUG_REG03_ALWAYS_ZERO1_MASK) | (always_zero1 << CLIPPER_DEBUG_REG03_ALWAYS_ZERO1_SHIFT)
+#define CLIPPER_DEBUG_REG03_SET_clipsm0_clprim_to_clip_clip_code_or(clipper_debug_reg03_reg, clipsm0_clprim_to_clip_clip_code_or) \
+ clipper_debug_reg03_reg = (clipper_debug_reg03_reg & ~CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_code_or_MASK) | (clipsm0_clprim_to_clip_clip_code_or << CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_code_or_SHIFT)
+#define CLIPPER_DEBUG_REG03_SET_ALWAYS_ZERO0(clipper_debug_reg03_reg, always_zero0) \
+ clipper_debug_reg03_reg = (clipper_debug_reg03_reg & ~CLIPPER_DEBUG_REG03_ALWAYS_ZERO0_MASK) | (always_zero0 << CLIPPER_DEBUG_REG03_ALWAYS_ZERO0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg03_t {
+ unsigned int always_zero3 : CLIPPER_DEBUG_REG03_ALWAYS_ZERO3_SIZE;
+ unsigned int clipsm0_clprim_to_clip_clip_primitive : CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_primitive_SIZE;
+ unsigned int always_zero2 : CLIPPER_DEBUG_REG03_ALWAYS_ZERO2_SIZE;
+ unsigned int clipsm0_clprim_to_clip_null_primitive : CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_null_primitive_SIZE;
+ unsigned int always_zero1 : CLIPPER_DEBUG_REG03_ALWAYS_ZERO1_SIZE;
+ unsigned int clipsm0_clprim_to_clip_clip_code_or : CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_code_or_SIZE;
+ unsigned int always_zero0 : CLIPPER_DEBUG_REG03_ALWAYS_ZERO0_SIZE;
+ } clipper_debug_reg03_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg03_t {
+ unsigned int always_zero0 : CLIPPER_DEBUG_REG03_ALWAYS_ZERO0_SIZE;
+ unsigned int clipsm0_clprim_to_clip_clip_code_or : CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_code_or_SIZE;
+ unsigned int always_zero1 : CLIPPER_DEBUG_REG03_ALWAYS_ZERO1_SIZE;
+ unsigned int clipsm0_clprim_to_clip_null_primitive : CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_null_primitive_SIZE;
+ unsigned int always_zero2 : CLIPPER_DEBUG_REG03_ALWAYS_ZERO2_SIZE;
+ unsigned int clipsm0_clprim_to_clip_clip_primitive : CLIPPER_DEBUG_REG03_clipsm0_clprim_to_clip_clip_primitive_SIZE;
+ unsigned int always_zero3 : CLIPPER_DEBUG_REG03_ALWAYS_ZERO3_SIZE;
+ } clipper_debug_reg03_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ clipper_debug_reg03_t f;
+} clipper_debug_reg03_u;
+
+
+/*
+ * CLIPPER_DEBUG_REG04 struct
+ */
+
+#define CLIPPER_DEBUG_REG04_ALWAYS_ZERO2_SIZE 3
+#define CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_first_prim_of_slot_SIZE 1
+#define CLIPPER_DEBUG_REG04_ALWAYS_ZERO1_SIZE 3
+#define CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_event_SIZE 1
+#define CLIPPER_DEBUG_REG04_ALWAYS_ZERO0_SIZE 24
+
+#define CLIPPER_DEBUG_REG04_ALWAYS_ZERO2_SHIFT 0
+#define CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_first_prim_of_slot_SHIFT 3
+#define CLIPPER_DEBUG_REG04_ALWAYS_ZERO1_SHIFT 4
+#define CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_event_SHIFT 7
+#define CLIPPER_DEBUG_REG04_ALWAYS_ZERO0_SHIFT 8
+
+#define CLIPPER_DEBUG_REG04_ALWAYS_ZERO2_MASK 0x00000007
+#define CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_first_prim_of_slot_MASK 0x00000008
+#define CLIPPER_DEBUG_REG04_ALWAYS_ZERO1_MASK 0x00000070
+#define CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_event_MASK 0x00000080
+#define CLIPPER_DEBUG_REG04_ALWAYS_ZERO0_MASK 0xffffff00
+
+#define CLIPPER_DEBUG_REG04_MASK \
+ (CLIPPER_DEBUG_REG04_ALWAYS_ZERO2_MASK | \
+ CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_first_prim_of_slot_MASK | \
+ CLIPPER_DEBUG_REG04_ALWAYS_ZERO1_MASK | \
+ CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_event_MASK | \
+ CLIPPER_DEBUG_REG04_ALWAYS_ZERO0_MASK)
+
+#define CLIPPER_DEBUG_REG04(always_zero2, clipsm0_clprim_to_clip_first_prim_of_slot, always_zero1, clipsm0_clprim_to_clip_event, always_zero0) \
+ ((always_zero2 << CLIPPER_DEBUG_REG04_ALWAYS_ZERO2_SHIFT) | \
+ (clipsm0_clprim_to_clip_first_prim_of_slot << CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_first_prim_of_slot_SHIFT) | \
+ (always_zero1 << CLIPPER_DEBUG_REG04_ALWAYS_ZERO1_SHIFT) | \
+ (clipsm0_clprim_to_clip_event << CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_event_SHIFT) | \
+ (always_zero0 << CLIPPER_DEBUG_REG04_ALWAYS_ZERO0_SHIFT))
+
+#define CLIPPER_DEBUG_REG04_GET_ALWAYS_ZERO2(clipper_debug_reg04) \
+ ((clipper_debug_reg04 & CLIPPER_DEBUG_REG04_ALWAYS_ZERO2_MASK) >> CLIPPER_DEBUG_REG04_ALWAYS_ZERO2_SHIFT)
+#define CLIPPER_DEBUG_REG04_GET_clipsm0_clprim_to_clip_first_prim_of_slot(clipper_debug_reg04) \
+ ((clipper_debug_reg04 & CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_first_prim_of_slot_MASK) >> CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_first_prim_of_slot_SHIFT)
+#define CLIPPER_DEBUG_REG04_GET_ALWAYS_ZERO1(clipper_debug_reg04) \
+ ((clipper_debug_reg04 & CLIPPER_DEBUG_REG04_ALWAYS_ZERO1_MASK) >> CLIPPER_DEBUG_REG04_ALWAYS_ZERO1_SHIFT)
+#define CLIPPER_DEBUG_REG04_GET_clipsm0_clprim_to_clip_event(clipper_debug_reg04) \
+ ((clipper_debug_reg04 & CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_event_MASK) >> CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_event_SHIFT)
+#define CLIPPER_DEBUG_REG04_GET_ALWAYS_ZERO0(clipper_debug_reg04) \
+ ((clipper_debug_reg04 & CLIPPER_DEBUG_REG04_ALWAYS_ZERO0_MASK) >> CLIPPER_DEBUG_REG04_ALWAYS_ZERO0_SHIFT)
+
+#define CLIPPER_DEBUG_REG04_SET_ALWAYS_ZERO2(clipper_debug_reg04_reg, always_zero2) \
+ clipper_debug_reg04_reg = (clipper_debug_reg04_reg & ~CLIPPER_DEBUG_REG04_ALWAYS_ZERO2_MASK) | (always_zero2 << CLIPPER_DEBUG_REG04_ALWAYS_ZERO2_SHIFT)
+#define CLIPPER_DEBUG_REG04_SET_clipsm0_clprim_to_clip_first_prim_of_slot(clipper_debug_reg04_reg, clipsm0_clprim_to_clip_first_prim_of_slot) \
+ clipper_debug_reg04_reg = (clipper_debug_reg04_reg & ~CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_first_prim_of_slot_MASK) | (clipsm0_clprim_to_clip_first_prim_of_slot << CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_first_prim_of_slot_SHIFT)
+#define CLIPPER_DEBUG_REG04_SET_ALWAYS_ZERO1(clipper_debug_reg04_reg, always_zero1) \
+ clipper_debug_reg04_reg = (clipper_debug_reg04_reg & ~CLIPPER_DEBUG_REG04_ALWAYS_ZERO1_MASK) | (always_zero1 << CLIPPER_DEBUG_REG04_ALWAYS_ZERO1_SHIFT)
+#define CLIPPER_DEBUG_REG04_SET_clipsm0_clprim_to_clip_event(clipper_debug_reg04_reg, clipsm0_clprim_to_clip_event) \
+ clipper_debug_reg04_reg = (clipper_debug_reg04_reg & ~CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_event_MASK) | (clipsm0_clprim_to_clip_event << CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_event_SHIFT)
+#define CLIPPER_DEBUG_REG04_SET_ALWAYS_ZERO0(clipper_debug_reg04_reg, always_zero0) \
+ clipper_debug_reg04_reg = (clipper_debug_reg04_reg & ~CLIPPER_DEBUG_REG04_ALWAYS_ZERO0_MASK) | (always_zero0 << CLIPPER_DEBUG_REG04_ALWAYS_ZERO0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg04_t {
+ unsigned int always_zero2 : CLIPPER_DEBUG_REG04_ALWAYS_ZERO2_SIZE;
+ unsigned int clipsm0_clprim_to_clip_first_prim_of_slot : CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_first_prim_of_slot_SIZE;
+ unsigned int always_zero1 : CLIPPER_DEBUG_REG04_ALWAYS_ZERO1_SIZE;
+ unsigned int clipsm0_clprim_to_clip_event : CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_event_SIZE;
+ unsigned int always_zero0 : CLIPPER_DEBUG_REG04_ALWAYS_ZERO0_SIZE;
+ } clipper_debug_reg04_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg04_t {
+ unsigned int always_zero0 : CLIPPER_DEBUG_REG04_ALWAYS_ZERO0_SIZE;
+ unsigned int clipsm0_clprim_to_clip_event : CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_event_SIZE;
+ unsigned int always_zero1 : CLIPPER_DEBUG_REG04_ALWAYS_ZERO1_SIZE;
+ unsigned int clipsm0_clprim_to_clip_first_prim_of_slot : CLIPPER_DEBUG_REG04_clipsm0_clprim_to_clip_first_prim_of_slot_SIZE;
+ unsigned int always_zero2 : CLIPPER_DEBUG_REG04_ALWAYS_ZERO2_SIZE;
+ } clipper_debug_reg04_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ clipper_debug_reg04_t f;
+} clipper_debug_reg04_u;
+
+
+/*
+ * CLIPPER_DEBUG_REG05 struct
+ */
+
+#define CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_state_var_indx_SIZE 1
+#define CLIPPER_DEBUG_REG05_ALWAYS_ZERO3_SIZE 2
+#define CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_deallocate_slot_SIZE 3
+#define CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_event_id_SIZE 6
+#define CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_2_SIZE 4
+#define CLIPPER_DEBUG_REG05_ALWAYS_ZERO2_SIZE 2
+#define CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_1_SIZE 4
+#define CLIPPER_DEBUG_REG05_ALWAYS_ZERO1_SIZE 2
+#define CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_0_SIZE 4
+#define CLIPPER_DEBUG_REG05_ALWAYS_ZERO0_SIZE 4
+
+#define CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_state_var_indx_SHIFT 0
+#define CLIPPER_DEBUG_REG05_ALWAYS_ZERO3_SHIFT 1
+#define CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_deallocate_slot_SHIFT 3
+#define CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_event_id_SHIFT 6
+#define CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_2_SHIFT 12
+#define CLIPPER_DEBUG_REG05_ALWAYS_ZERO2_SHIFT 16
+#define CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_1_SHIFT 18
+#define CLIPPER_DEBUG_REG05_ALWAYS_ZERO1_SHIFT 22
+#define CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_0_SHIFT 24
+#define CLIPPER_DEBUG_REG05_ALWAYS_ZERO0_SHIFT 28
+
+#define CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_state_var_indx_MASK 0x00000001
+#define CLIPPER_DEBUG_REG05_ALWAYS_ZERO3_MASK 0x00000006
+#define CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_deallocate_slot_MASK 0x00000038
+#define CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_event_id_MASK 0x00000fc0
+#define CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_2_MASK 0x0000f000
+#define CLIPPER_DEBUG_REG05_ALWAYS_ZERO2_MASK 0x00030000
+#define CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_1_MASK 0x003c0000
+#define CLIPPER_DEBUG_REG05_ALWAYS_ZERO1_MASK 0x00c00000
+#define CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_0_MASK 0x0f000000
+#define CLIPPER_DEBUG_REG05_ALWAYS_ZERO0_MASK 0xf0000000
+
+#define CLIPPER_DEBUG_REG05_MASK \
+ (CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_state_var_indx_MASK | \
+ CLIPPER_DEBUG_REG05_ALWAYS_ZERO3_MASK | \
+ CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_deallocate_slot_MASK | \
+ CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_event_id_MASK | \
+ CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_2_MASK | \
+ CLIPPER_DEBUG_REG05_ALWAYS_ZERO2_MASK | \
+ CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_1_MASK | \
+ CLIPPER_DEBUG_REG05_ALWAYS_ZERO1_MASK | \
+ CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_0_MASK | \
+ CLIPPER_DEBUG_REG05_ALWAYS_ZERO0_MASK)
+
+#define CLIPPER_DEBUG_REG05(clipsm0_clprim_to_clip_state_var_indx, always_zero3, clipsm0_clprim_to_clip_deallocate_slot, clipsm0_clprim_to_clip_event_id, clipsm0_clprim_to_clip_vertex_store_indx_2, always_zero2, clipsm0_clprim_to_clip_vertex_store_indx_1, always_zero1, clipsm0_clprim_to_clip_vertex_store_indx_0, always_zero0) \
+ ((clipsm0_clprim_to_clip_state_var_indx << CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_state_var_indx_SHIFT) | \
+ (always_zero3 << CLIPPER_DEBUG_REG05_ALWAYS_ZERO3_SHIFT) | \
+ (clipsm0_clprim_to_clip_deallocate_slot << CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_deallocate_slot_SHIFT) | \
+ (clipsm0_clprim_to_clip_event_id << CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_event_id_SHIFT) | \
+ (clipsm0_clprim_to_clip_vertex_store_indx_2 << CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_2_SHIFT) | \
+ (always_zero2 << CLIPPER_DEBUG_REG05_ALWAYS_ZERO2_SHIFT) | \
+ (clipsm0_clprim_to_clip_vertex_store_indx_1 << CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_1_SHIFT) | \
+ (always_zero1 << CLIPPER_DEBUG_REG05_ALWAYS_ZERO1_SHIFT) | \
+ (clipsm0_clprim_to_clip_vertex_store_indx_0 << CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_0_SHIFT) | \
+ (always_zero0 << CLIPPER_DEBUG_REG05_ALWAYS_ZERO0_SHIFT))
+
+#define CLIPPER_DEBUG_REG05_GET_clipsm0_clprim_to_clip_state_var_indx(clipper_debug_reg05) \
+ ((clipper_debug_reg05 & CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_state_var_indx_MASK) >> CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_state_var_indx_SHIFT)
+#define CLIPPER_DEBUG_REG05_GET_ALWAYS_ZERO3(clipper_debug_reg05) \
+ ((clipper_debug_reg05 & CLIPPER_DEBUG_REG05_ALWAYS_ZERO3_MASK) >> CLIPPER_DEBUG_REG05_ALWAYS_ZERO3_SHIFT)
+#define CLIPPER_DEBUG_REG05_GET_clipsm0_clprim_to_clip_deallocate_slot(clipper_debug_reg05) \
+ ((clipper_debug_reg05 & CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_deallocate_slot_MASK) >> CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_deallocate_slot_SHIFT)
+#define CLIPPER_DEBUG_REG05_GET_clipsm0_clprim_to_clip_event_id(clipper_debug_reg05) \
+ ((clipper_debug_reg05 & CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_event_id_MASK) >> CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_event_id_SHIFT)
+#define CLIPPER_DEBUG_REG05_GET_clipsm0_clprim_to_clip_vertex_store_indx_2(clipper_debug_reg05) \
+ ((clipper_debug_reg05 & CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_2_MASK) >> CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_2_SHIFT)
+#define CLIPPER_DEBUG_REG05_GET_ALWAYS_ZERO2(clipper_debug_reg05) \
+ ((clipper_debug_reg05 & CLIPPER_DEBUG_REG05_ALWAYS_ZERO2_MASK) >> CLIPPER_DEBUG_REG05_ALWAYS_ZERO2_SHIFT)
+#define CLIPPER_DEBUG_REG05_GET_clipsm0_clprim_to_clip_vertex_store_indx_1(clipper_debug_reg05) \
+ ((clipper_debug_reg05 & CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_1_MASK) >> CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_1_SHIFT)
+#define CLIPPER_DEBUG_REG05_GET_ALWAYS_ZERO1(clipper_debug_reg05) \
+ ((clipper_debug_reg05 & CLIPPER_DEBUG_REG05_ALWAYS_ZERO1_MASK) >> CLIPPER_DEBUG_REG05_ALWAYS_ZERO1_SHIFT)
+#define CLIPPER_DEBUG_REG05_GET_clipsm0_clprim_to_clip_vertex_store_indx_0(clipper_debug_reg05) \
+ ((clipper_debug_reg05 & CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_0_MASK) >> CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_0_SHIFT)
+#define CLIPPER_DEBUG_REG05_GET_ALWAYS_ZERO0(clipper_debug_reg05) \
+ ((clipper_debug_reg05 & CLIPPER_DEBUG_REG05_ALWAYS_ZERO0_MASK) >> CLIPPER_DEBUG_REG05_ALWAYS_ZERO0_SHIFT)
+
+#define CLIPPER_DEBUG_REG05_SET_clipsm0_clprim_to_clip_state_var_indx(clipper_debug_reg05_reg, clipsm0_clprim_to_clip_state_var_indx) \
+ clipper_debug_reg05_reg = (clipper_debug_reg05_reg & ~CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_state_var_indx_MASK) | (clipsm0_clprim_to_clip_state_var_indx << CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_state_var_indx_SHIFT)
+#define CLIPPER_DEBUG_REG05_SET_ALWAYS_ZERO3(clipper_debug_reg05_reg, always_zero3) \
+ clipper_debug_reg05_reg = (clipper_debug_reg05_reg & ~CLIPPER_DEBUG_REG05_ALWAYS_ZERO3_MASK) | (always_zero3 << CLIPPER_DEBUG_REG05_ALWAYS_ZERO3_SHIFT)
+#define CLIPPER_DEBUG_REG05_SET_clipsm0_clprim_to_clip_deallocate_slot(clipper_debug_reg05_reg, clipsm0_clprim_to_clip_deallocate_slot) \
+ clipper_debug_reg05_reg = (clipper_debug_reg05_reg & ~CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_deallocate_slot_MASK) | (clipsm0_clprim_to_clip_deallocate_slot << CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_deallocate_slot_SHIFT)
+#define CLIPPER_DEBUG_REG05_SET_clipsm0_clprim_to_clip_event_id(clipper_debug_reg05_reg, clipsm0_clprim_to_clip_event_id) \
+ clipper_debug_reg05_reg = (clipper_debug_reg05_reg & ~CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_event_id_MASK) | (clipsm0_clprim_to_clip_event_id << CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_event_id_SHIFT)
+#define CLIPPER_DEBUG_REG05_SET_clipsm0_clprim_to_clip_vertex_store_indx_2(clipper_debug_reg05_reg, clipsm0_clprim_to_clip_vertex_store_indx_2) \
+ clipper_debug_reg05_reg = (clipper_debug_reg05_reg & ~CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_2_MASK) | (clipsm0_clprim_to_clip_vertex_store_indx_2 << CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_2_SHIFT)
+#define CLIPPER_DEBUG_REG05_SET_ALWAYS_ZERO2(clipper_debug_reg05_reg, always_zero2) \
+ clipper_debug_reg05_reg = (clipper_debug_reg05_reg & ~CLIPPER_DEBUG_REG05_ALWAYS_ZERO2_MASK) | (always_zero2 << CLIPPER_DEBUG_REG05_ALWAYS_ZERO2_SHIFT)
+#define CLIPPER_DEBUG_REG05_SET_clipsm0_clprim_to_clip_vertex_store_indx_1(clipper_debug_reg05_reg, clipsm0_clprim_to_clip_vertex_store_indx_1) \
+ clipper_debug_reg05_reg = (clipper_debug_reg05_reg & ~CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_1_MASK) | (clipsm0_clprim_to_clip_vertex_store_indx_1 << CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_1_SHIFT)
+#define CLIPPER_DEBUG_REG05_SET_ALWAYS_ZERO1(clipper_debug_reg05_reg, always_zero1) \
+ clipper_debug_reg05_reg = (clipper_debug_reg05_reg & ~CLIPPER_DEBUG_REG05_ALWAYS_ZERO1_MASK) | (always_zero1 << CLIPPER_DEBUG_REG05_ALWAYS_ZERO1_SHIFT)
+#define CLIPPER_DEBUG_REG05_SET_clipsm0_clprim_to_clip_vertex_store_indx_0(clipper_debug_reg05_reg, clipsm0_clprim_to_clip_vertex_store_indx_0) \
+ clipper_debug_reg05_reg = (clipper_debug_reg05_reg & ~CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_0_MASK) | (clipsm0_clprim_to_clip_vertex_store_indx_0 << CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_0_SHIFT)
+#define CLIPPER_DEBUG_REG05_SET_ALWAYS_ZERO0(clipper_debug_reg05_reg, always_zero0) \
+ clipper_debug_reg05_reg = (clipper_debug_reg05_reg & ~CLIPPER_DEBUG_REG05_ALWAYS_ZERO0_MASK) | (always_zero0 << CLIPPER_DEBUG_REG05_ALWAYS_ZERO0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg05_t {
+ unsigned int clipsm0_clprim_to_clip_state_var_indx : CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_state_var_indx_SIZE;
+ unsigned int always_zero3 : CLIPPER_DEBUG_REG05_ALWAYS_ZERO3_SIZE;
+ unsigned int clipsm0_clprim_to_clip_deallocate_slot : CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_deallocate_slot_SIZE;
+ unsigned int clipsm0_clprim_to_clip_event_id : CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_event_id_SIZE;
+ unsigned int clipsm0_clprim_to_clip_vertex_store_indx_2 : CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_2_SIZE;
+ unsigned int always_zero2 : CLIPPER_DEBUG_REG05_ALWAYS_ZERO2_SIZE;
+ unsigned int clipsm0_clprim_to_clip_vertex_store_indx_1 : CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_1_SIZE;
+ unsigned int always_zero1 : CLIPPER_DEBUG_REG05_ALWAYS_ZERO1_SIZE;
+ unsigned int clipsm0_clprim_to_clip_vertex_store_indx_0 : CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_0_SIZE;
+ unsigned int always_zero0 : CLIPPER_DEBUG_REG05_ALWAYS_ZERO0_SIZE;
+ } clipper_debug_reg05_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg05_t {
+ unsigned int always_zero0 : CLIPPER_DEBUG_REG05_ALWAYS_ZERO0_SIZE;
+ unsigned int clipsm0_clprim_to_clip_vertex_store_indx_0 : CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_0_SIZE;
+ unsigned int always_zero1 : CLIPPER_DEBUG_REG05_ALWAYS_ZERO1_SIZE;
+ unsigned int clipsm0_clprim_to_clip_vertex_store_indx_1 : CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_1_SIZE;
+ unsigned int always_zero2 : CLIPPER_DEBUG_REG05_ALWAYS_ZERO2_SIZE;
+ unsigned int clipsm0_clprim_to_clip_vertex_store_indx_2 : CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_vertex_store_indx_2_SIZE;
+ unsigned int clipsm0_clprim_to_clip_event_id : CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_event_id_SIZE;
+ unsigned int clipsm0_clprim_to_clip_deallocate_slot : CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_deallocate_slot_SIZE;
+ unsigned int always_zero3 : CLIPPER_DEBUG_REG05_ALWAYS_ZERO3_SIZE;
+ unsigned int clipsm0_clprim_to_clip_state_var_indx : CLIPPER_DEBUG_REG05_clipsm0_clprim_to_clip_state_var_indx_SIZE;
+ } clipper_debug_reg05_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ clipper_debug_reg05_t f;
+} clipper_debug_reg05_u;
+
+
+/*
+ * CLIPPER_DEBUG_REG09 struct
+ */
+
+#define CLIPPER_DEBUG_REG09_clprim_in_back_event_SIZE 1
+#define CLIPPER_DEBUG_REG09_outputclprimtoclip_null_primitive_SIZE 1
+#define CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_2_SIZE 4
+#define CLIPPER_DEBUG_REG09_ALWAYS_ZERO2_SIZE 2
+#define CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_1_SIZE 4
+#define CLIPPER_DEBUG_REG09_ALWAYS_ZERO1_SIZE 2
+#define CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_0_SIZE 4
+#define CLIPPER_DEBUG_REG09_ALWAYS_ZERO0_SIZE 2
+#define CLIPPER_DEBUG_REG09_prim_back_valid_SIZE 1
+#define CLIPPER_DEBUG_REG09_clip_priority_seq_indx_out_cnt_SIZE 4
+#define CLIPPER_DEBUG_REG09_outsm_clr_rd_orig_vertices_SIZE 2
+#define CLIPPER_DEBUG_REG09_outsm_clr_rd_clipsm_wait_SIZE 1
+#define CLIPPER_DEBUG_REG09_outsm_clr_fifo_empty_SIZE 1
+#define CLIPPER_DEBUG_REG09_outsm_clr_fifo_full_SIZE 1
+#define CLIPPER_DEBUG_REG09_clip_priority_seq_indx_load_SIZE 2
+
+#define CLIPPER_DEBUG_REG09_clprim_in_back_event_SHIFT 0
+#define CLIPPER_DEBUG_REG09_outputclprimtoclip_null_primitive_SHIFT 1
+#define CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_2_SHIFT 2
+#define CLIPPER_DEBUG_REG09_ALWAYS_ZERO2_SHIFT 6
+#define CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_1_SHIFT 8
+#define CLIPPER_DEBUG_REG09_ALWAYS_ZERO1_SHIFT 12
+#define CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_0_SHIFT 14
+#define CLIPPER_DEBUG_REG09_ALWAYS_ZERO0_SHIFT 18
+#define CLIPPER_DEBUG_REG09_prim_back_valid_SHIFT 20
+#define CLIPPER_DEBUG_REG09_clip_priority_seq_indx_out_cnt_SHIFT 21
+#define CLIPPER_DEBUG_REG09_outsm_clr_rd_orig_vertices_SHIFT 25
+#define CLIPPER_DEBUG_REG09_outsm_clr_rd_clipsm_wait_SHIFT 27
+#define CLIPPER_DEBUG_REG09_outsm_clr_fifo_empty_SHIFT 28
+#define CLIPPER_DEBUG_REG09_outsm_clr_fifo_full_SHIFT 29
+#define CLIPPER_DEBUG_REG09_clip_priority_seq_indx_load_SHIFT 30
+
+#define CLIPPER_DEBUG_REG09_clprim_in_back_event_MASK 0x00000001
+#define CLIPPER_DEBUG_REG09_outputclprimtoclip_null_primitive_MASK 0x00000002
+#define CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_2_MASK 0x0000003c
+#define CLIPPER_DEBUG_REG09_ALWAYS_ZERO2_MASK 0x000000c0
+#define CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_1_MASK 0x00000f00
+#define CLIPPER_DEBUG_REG09_ALWAYS_ZERO1_MASK 0x00003000
+#define CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_0_MASK 0x0003c000
+#define CLIPPER_DEBUG_REG09_ALWAYS_ZERO0_MASK 0x000c0000
+#define CLIPPER_DEBUG_REG09_prim_back_valid_MASK 0x00100000
+#define CLIPPER_DEBUG_REG09_clip_priority_seq_indx_out_cnt_MASK 0x01e00000
+#define CLIPPER_DEBUG_REG09_outsm_clr_rd_orig_vertices_MASK 0x06000000
+#define CLIPPER_DEBUG_REG09_outsm_clr_rd_clipsm_wait_MASK 0x08000000
+#define CLIPPER_DEBUG_REG09_outsm_clr_fifo_empty_MASK 0x10000000
+#define CLIPPER_DEBUG_REG09_outsm_clr_fifo_full_MASK 0x20000000
+#define CLIPPER_DEBUG_REG09_clip_priority_seq_indx_load_MASK 0xc0000000
+
+#define CLIPPER_DEBUG_REG09_MASK \
+ (CLIPPER_DEBUG_REG09_clprim_in_back_event_MASK | \
+ CLIPPER_DEBUG_REG09_outputclprimtoclip_null_primitive_MASK | \
+ CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_2_MASK | \
+ CLIPPER_DEBUG_REG09_ALWAYS_ZERO2_MASK | \
+ CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_1_MASK | \
+ CLIPPER_DEBUG_REG09_ALWAYS_ZERO1_MASK | \
+ CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_0_MASK | \
+ CLIPPER_DEBUG_REG09_ALWAYS_ZERO0_MASK | \
+ CLIPPER_DEBUG_REG09_prim_back_valid_MASK | \
+ CLIPPER_DEBUG_REG09_clip_priority_seq_indx_out_cnt_MASK | \
+ CLIPPER_DEBUG_REG09_outsm_clr_rd_orig_vertices_MASK | \
+ CLIPPER_DEBUG_REG09_outsm_clr_rd_clipsm_wait_MASK | \
+ CLIPPER_DEBUG_REG09_outsm_clr_fifo_empty_MASK | \
+ CLIPPER_DEBUG_REG09_outsm_clr_fifo_full_MASK | \
+ CLIPPER_DEBUG_REG09_clip_priority_seq_indx_load_MASK)
+
+#define CLIPPER_DEBUG_REG09(clprim_in_back_event, outputclprimtoclip_null_primitive, clprim_in_back_vertex_store_indx_2, always_zero2, clprim_in_back_vertex_store_indx_1, always_zero1, clprim_in_back_vertex_store_indx_0, always_zero0, prim_back_valid, clip_priority_seq_indx_out_cnt, outsm_clr_rd_orig_vertices, outsm_clr_rd_clipsm_wait, outsm_clr_fifo_empty, outsm_clr_fifo_full, clip_priority_seq_indx_load) \
+ ((clprim_in_back_event << CLIPPER_DEBUG_REG09_clprim_in_back_event_SHIFT) | \
+ (outputclprimtoclip_null_primitive << CLIPPER_DEBUG_REG09_outputclprimtoclip_null_primitive_SHIFT) | \
+ (clprim_in_back_vertex_store_indx_2 << CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_2_SHIFT) | \
+ (always_zero2 << CLIPPER_DEBUG_REG09_ALWAYS_ZERO2_SHIFT) | \
+ (clprim_in_back_vertex_store_indx_1 << CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_1_SHIFT) | \
+ (always_zero1 << CLIPPER_DEBUG_REG09_ALWAYS_ZERO1_SHIFT) | \
+ (clprim_in_back_vertex_store_indx_0 << CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_0_SHIFT) | \
+ (always_zero0 << CLIPPER_DEBUG_REG09_ALWAYS_ZERO0_SHIFT) | \
+ (prim_back_valid << CLIPPER_DEBUG_REG09_prim_back_valid_SHIFT) | \
+ (clip_priority_seq_indx_out_cnt << CLIPPER_DEBUG_REG09_clip_priority_seq_indx_out_cnt_SHIFT) | \
+ (outsm_clr_rd_orig_vertices << CLIPPER_DEBUG_REG09_outsm_clr_rd_orig_vertices_SHIFT) | \
+ (outsm_clr_rd_clipsm_wait << CLIPPER_DEBUG_REG09_outsm_clr_rd_clipsm_wait_SHIFT) | \
+ (outsm_clr_fifo_empty << CLIPPER_DEBUG_REG09_outsm_clr_fifo_empty_SHIFT) | \
+ (outsm_clr_fifo_full << CLIPPER_DEBUG_REG09_outsm_clr_fifo_full_SHIFT) | \
+ (clip_priority_seq_indx_load << CLIPPER_DEBUG_REG09_clip_priority_seq_indx_load_SHIFT))
+
+#define CLIPPER_DEBUG_REG09_GET_clprim_in_back_event(clipper_debug_reg09) \
+ ((clipper_debug_reg09 & CLIPPER_DEBUG_REG09_clprim_in_back_event_MASK) >> CLIPPER_DEBUG_REG09_clprim_in_back_event_SHIFT)
+#define CLIPPER_DEBUG_REG09_GET_outputclprimtoclip_null_primitive(clipper_debug_reg09) \
+ ((clipper_debug_reg09 & CLIPPER_DEBUG_REG09_outputclprimtoclip_null_primitive_MASK) >> CLIPPER_DEBUG_REG09_outputclprimtoclip_null_primitive_SHIFT)
+#define CLIPPER_DEBUG_REG09_GET_clprim_in_back_vertex_store_indx_2(clipper_debug_reg09) \
+ ((clipper_debug_reg09 & CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_2_MASK) >> CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_2_SHIFT)
+#define CLIPPER_DEBUG_REG09_GET_ALWAYS_ZERO2(clipper_debug_reg09) \
+ ((clipper_debug_reg09 & CLIPPER_DEBUG_REG09_ALWAYS_ZERO2_MASK) >> CLIPPER_DEBUG_REG09_ALWAYS_ZERO2_SHIFT)
+#define CLIPPER_DEBUG_REG09_GET_clprim_in_back_vertex_store_indx_1(clipper_debug_reg09) \
+ ((clipper_debug_reg09 & CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_1_MASK) >> CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_1_SHIFT)
+#define CLIPPER_DEBUG_REG09_GET_ALWAYS_ZERO1(clipper_debug_reg09) \
+ ((clipper_debug_reg09 & CLIPPER_DEBUG_REG09_ALWAYS_ZERO1_MASK) >> CLIPPER_DEBUG_REG09_ALWAYS_ZERO1_SHIFT)
+#define CLIPPER_DEBUG_REG09_GET_clprim_in_back_vertex_store_indx_0(clipper_debug_reg09) \
+ ((clipper_debug_reg09 & CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_0_MASK) >> CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_0_SHIFT)
+#define CLIPPER_DEBUG_REG09_GET_ALWAYS_ZERO0(clipper_debug_reg09) \
+ ((clipper_debug_reg09 & CLIPPER_DEBUG_REG09_ALWAYS_ZERO0_MASK) >> CLIPPER_DEBUG_REG09_ALWAYS_ZERO0_SHIFT)
+#define CLIPPER_DEBUG_REG09_GET_prim_back_valid(clipper_debug_reg09) \
+ ((clipper_debug_reg09 & CLIPPER_DEBUG_REG09_prim_back_valid_MASK) >> CLIPPER_DEBUG_REG09_prim_back_valid_SHIFT)
+#define CLIPPER_DEBUG_REG09_GET_clip_priority_seq_indx_out_cnt(clipper_debug_reg09) \
+ ((clipper_debug_reg09 & CLIPPER_DEBUG_REG09_clip_priority_seq_indx_out_cnt_MASK) >> CLIPPER_DEBUG_REG09_clip_priority_seq_indx_out_cnt_SHIFT)
+#define CLIPPER_DEBUG_REG09_GET_outsm_clr_rd_orig_vertices(clipper_debug_reg09) \
+ ((clipper_debug_reg09 & CLIPPER_DEBUG_REG09_outsm_clr_rd_orig_vertices_MASK) >> CLIPPER_DEBUG_REG09_outsm_clr_rd_orig_vertices_SHIFT)
+#define CLIPPER_DEBUG_REG09_GET_outsm_clr_rd_clipsm_wait(clipper_debug_reg09) \
+ ((clipper_debug_reg09 & CLIPPER_DEBUG_REG09_outsm_clr_rd_clipsm_wait_MASK) >> CLIPPER_DEBUG_REG09_outsm_clr_rd_clipsm_wait_SHIFT)
+#define CLIPPER_DEBUG_REG09_GET_outsm_clr_fifo_empty(clipper_debug_reg09) \
+ ((clipper_debug_reg09 & CLIPPER_DEBUG_REG09_outsm_clr_fifo_empty_MASK) >> CLIPPER_DEBUG_REG09_outsm_clr_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG09_GET_outsm_clr_fifo_full(clipper_debug_reg09) \
+ ((clipper_debug_reg09 & CLIPPER_DEBUG_REG09_outsm_clr_fifo_full_MASK) >> CLIPPER_DEBUG_REG09_outsm_clr_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG09_GET_clip_priority_seq_indx_load(clipper_debug_reg09) \
+ ((clipper_debug_reg09 & CLIPPER_DEBUG_REG09_clip_priority_seq_indx_load_MASK) >> CLIPPER_DEBUG_REG09_clip_priority_seq_indx_load_SHIFT)
+
+#define CLIPPER_DEBUG_REG09_SET_clprim_in_back_event(clipper_debug_reg09_reg, clprim_in_back_event) \
+ clipper_debug_reg09_reg = (clipper_debug_reg09_reg & ~CLIPPER_DEBUG_REG09_clprim_in_back_event_MASK) | (clprim_in_back_event << CLIPPER_DEBUG_REG09_clprim_in_back_event_SHIFT)
+#define CLIPPER_DEBUG_REG09_SET_outputclprimtoclip_null_primitive(clipper_debug_reg09_reg, outputclprimtoclip_null_primitive) \
+ clipper_debug_reg09_reg = (clipper_debug_reg09_reg & ~CLIPPER_DEBUG_REG09_outputclprimtoclip_null_primitive_MASK) | (outputclprimtoclip_null_primitive << CLIPPER_DEBUG_REG09_outputclprimtoclip_null_primitive_SHIFT)
+#define CLIPPER_DEBUG_REG09_SET_clprim_in_back_vertex_store_indx_2(clipper_debug_reg09_reg, clprim_in_back_vertex_store_indx_2) \
+ clipper_debug_reg09_reg = (clipper_debug_reg09_reg & ~CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_2_MASK) | (clprim_in_back_vertex_store_indx_2 << CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_2_SHIFT)
+#define CLIPPER_DEBUG_REG09_SET_ALWAYS_ZERO2(clipper_debug_reg09_reg, always_zero2) \
+ clipper_debug_reg09_reg = (clipper_debug_reg09_reg & ~CLIPPER_DEBUG_REG09_ALWAYS_ZERO2_MASK) | (always_zero2 << CLIPPER_DEBUG_REG09_ALWAYS_ZERO2_SHIFT)
+#define CLIPPER_DEBUG_REG09_SET_clprim_in_back_vertex_store_indx_1(clipper_debug_reg09_reg, clprim_in_back_vertex_store_indx_1) \
+ clipper_debug_reg09_reg = (clipper_debug_reg09_reg & ~CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_1_MASK) | (clprim_in_back_vertex_store_indx_1 << CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_1_SHIFT)
+#define CLIPPER_DEBUG_REG09_SET_ALWAYS_ZERO1(clipper_debug_reg09_reg, always_zero1) \
+ clipper_debug_reg09_reg = (clipper_debug_reg09_reg & ~CLIPPER_DEBUG_REG09_ALWAYS_ZERO1_MASK) | (always_zero1 << CLIPPER_DEBUG_REG09_ALWAYS_ZERO1_SHIFT)
+#define CLIPPER_DEBUG_REG09_SET_clprim_in_back_vertex_store_indx_0(clipper_debug_reg09_reg, clprim_in_back_vertex_store_indx_0) \
+ clipper_debug_reg09_reg = (clipper_debug_reg09_reg & ~CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_0_MASK) | (clprim_in_back_vertex_store_indx_0 << CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_0_SHIFT)
+#define CLIPPER_DEBUG_REG09_SET_ALWAYS_ZERO0(clipper_debug_reg09_reg, always_zero0) \
+ clipper_debug_reg09_reg = (clipper_debug_reg09_reg & ~CLIPPER_DEBUG_REG09_ALWAYS_ZERO0_MASK) | (always_zero0 << CLIPPER_DEBUG_REG09_ALWAYS_ZERO0_SHIFT)
+#define CLIPPER_DEBUG_REG09_SET_prim_back_valid(clipper_debug_reg09_reg, prim_back_valid) \
+ clipper_debug_reg09_reg = (clipper_debug_reg09_reg & ~CLIPPER_DEBUG_REG09_prim_back_valid_MASK) | (prim_back_valid << CLIPPER_DEBUG_REG09_prim_back_valid_SHIFT)
+#define CLIPPER_DEBUG_REG09_SET_clip_priority_seq_indx_out_cnt(clipper_debug_reg09_reg, clip_priority_seq_indx_out_cnt) \
+ clipper_debug_reg09_reg = (clipper_debug_reg09_reg & ~CLIPPER_DEBUG_REG09_clip_priority_seq_indx_out_cnt_MASK) | (clip_priority_seq_indx_out_cnt << CLIPPER_DEBUG_REG09_clip_priority_seq_indx_out_cnt_SHIFT)
+#define CLIPPER_DEBUG_REG09_SET_outsm_clr_rd_orig_vertices(clipper_debug_reg09_reg, outsm_clr_rd_orig_vertices) \
+ clipper_debug_reg09_reg = (clipper_debug_reg09_reg & ~CLIPPER_DEBUG_REG09_outsm_clr_rd_orig_vertices_MASK) | (outsm_clr_rd_orig_vertices << CLIPPER_DEBUG_REG09_outsm_clr_rd_orig_vertices_SHIFT)
+#define CLIPPER_DEBUG_REG09_SET_outsm_clr_rd_clipsm_wait(clipper_debug_reg09_reg, outsm_clr_rd_clipsm_wait) \
+ clipper_debug_reg09_reg = (clipper_debug_reg09_reg & ~CLIPPER_DEBUG_REG09_outsm_clr_rd_clipsm_wait_MASK) | (outsm_clr_rd_clipsm_wait << CLIPPER_DEBUG_REG09_outsm_clr_rd_clipsm_wait_SHIFT)
+#define CLIPPER_DEBUG_REG09_SET_outsm_clr_fifo_empty(clipper_debug_reg09_reg, outsm_clr_fifo_empty) \
+ clipper_debug_reg09_reg = (clipper_debug_reg09_reg & ~CLIPPER_DEBUG_REG09_outsm_clr_fifo_empty_MASK) | (outsm_clr_fifo_empty << CLIPPER_DEBUG_REG09_outsm_clr_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG09_SET_outsm_clr_fifo_full(clipper_debug_reg09_reg, outsm_clr_fifo_full) \
+ clipper_debug_reg09_reg = (clipper_debug_reg09_reg & ~CLIPPER_DEBUG_REG09_outsm_clr_fifo_full_MASK) | (outsm_clr_fifo_full << CLIPPER_DEBUG_REG09_outsm_clr_fifo_full_SHIFT)
+#define CLIPPER_DEBUG_REG09_SET_clip_priority_seq_indx_load(clipper_debug_reg09_reg, clip_priority_seq_indx_load) \
+ clipper_debug_reg09_reg = (clipper_debug_reg09_reg & ~CLIPPER_DEBUG_REG09_clip_priority_seq_indx_load_MASK) | (clip_priority_seq_indx_load << CLIPPER_DEBUG_REG09_clip_priority_seq_indx_load_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg09_t {
+ unsigned int clprim_in_back_event : CLIPPER_DEBUG_REG09_clprim_in_back_event_SIZE;
+ unsigned int outputclprimtoclip_null_primitive : CLIPPER_DEBUG_REG09_outputclprimtoclip_null_primitive_SIZE;
+ unsigned int clprim_in_back_vertex_store_indx_2 : CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_2_SIZE;
+ unsigned int always_zero2 : CLIPPER_DEBUG_REG09_ALWAYS_ZERO2_SIZE;
+ unsigned int clprim_in_back_vertex_store_indx_1 : CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_1_SIZE;
+ unsigned int always_zero1 : CLIPPER_DEBUG_REG09_ALWAYS_ZERO1_SIZE;
+ unsigned int clprim_in_back_vertex_store_indx_0 : CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_0_SIZE;
+ unsigned int always_zero0 : CLIPPER_DEBUG_REG09_ALWAYS_ZERO0_SIZE;
+ unsigned int prim_back_valid : CLIPPER_DEBUG_REG09_prim_back_valid_SIZE;
+ unsigned int clip_priority_seq_indx_out_cnt : CLIPPER_DEBUG_REG09_clip_priority_seq_indx_out_cnt_SIZE;
+ unsigned int outsm_clr_rd_orig_vertices : CLIPPER_DEBUG_REG09_outsm_clr_rd_orig_vertices_SIZE;
+ unsigned int outsm_clr_rd_clipsm_wait : CLIPPER_DEBUG_REG09_outsm_clr_rd_clipsm_wait_SIZE;
+ unsigned int outsm_clr_fifo_empty : CLIPPER_DEBUG_REG09_outsm_clr_fifo_empty_SIZE;
+ unsigned int outsm_clr_fifo_full : CLIPPER_DEBUG_REG09_outsm_clr_fifo_full_SIZE;
+ unsigned int clip_priority_seq_indx_load : CLIPPER_DEBUG_REG09_clip_priority_seq_indx_load_SIZE;
+ } clipper_debug_reg09_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg09_t {
+ unsigned int clip_priority_seq_indx_load : CLIPPER_DEBUG_REG09_clip_priority_seq_indx_load_SIZE;
+ unsigned int outsm_clr_fifo_full : CLIPPER_DEBUG_REG09_outsm_clr_fifo_full_SIZE;
+ unsigned int outsm_clr_fifo_empty : CLIPPER_DEBUG_REG09_outsm_clr_fifo_empty_SIZE;
+ unsigned int outsm_clr_rd_clipsm_wait : CLIPPER_DEBUG_REG09_outsm_clr_rd_clipsm_wait_SIZE;
+ unsigned int outsm_clr_rd_orig_vertices : CLIPPER_DEBUG_REG09_outsm_clr_rd_orig_vertices_SIZE;
+ unsigned int clip_priority_seq_indx_out_cnt : CLIPPER_DEBUG_REG09_clip_priority_seq_indx_out_cnt_SIZE;
+ unsigned int prim_back_valid : CLIPPER_DEBUG_REG09_prim_back_valid_SIZE;
+ unsigned int always_zero0 : CLIPPER_DEBUG_REG09_ALWAYS_ZERO0_SIZE;
+ unsigned int clprim_in_back_vertex_store_indx_0 : CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_0_SIZE;
+ unsigned int always_zero1 : CLIPPER_DEBUG_REG09_ALWAYS_ZERO1_SIZE;
+ unsigned int clprim_in_back_vertex_store_indx_1 : CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_1_SIZE;
+ unsigned int always_zero2 : CLIPPER_DEBUG_REG09_ALWAYS_ZERO2_SIZE;
+ unsigned int clprim_in_back_vertex_store_indx_2 : CLIPPER_DEBUG_REG09_clprim_in_back_vertex_store_indx_2_SIZE;
+ unsigned int outputclprimtoclip_null_primitive : CLIPPER_DEBUG_REG09_outputclprimtoclip_null_primitive_SIZE;
+ unsigned int clprim_in_back_event : CLIPPER_DEBUG_REG09_clprim_in_back_event_SIZE;
+ } clipper_debug_reg09_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ clipper_debug_reg09_t f;
+} clipper_debug_reg09_u;
+
+
+/*
+ * CLIPPER_DEBUG_REG10 struct
+ */
+
+#define CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_2_SIZE 4
+#define CLIPPER_DEBUG_REG10_ALWAYS_ZERO3_SIZE 2
+#define CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_1_SIZE 4
+#define CLIPPER_DEBUG_REG10_ALWAYS_ZERO2_SIZE 2
+#define CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_0_SIZE 4
+#define CLIPPER_DEBUG_REG10_ALWAYS_ZERO1_SIZE 2
+#define CLIPPER_DEBUG_REG10_clprim_in_back_state_var_indx_SIZE 1
+#define CLIPPER_DEBUG_REG10_ALWAYS_ZERO0_SIZE 2
+#define CLIPPER_DEBUG_REG10_clprim_in_back_end_of_packet_SIZE 1
+#define CLIPPER_DEBUG_REG10_clprim_in_back_first_prim_of_slot_SIZE 1
+#define CLIPPER_DEBUG_REG10_clprim_in_back_deallocate_slot_SIZE 3
+#define CLIPPER_DEBUG_REG10_clprim_in_back_event_id_SIZE 6
+
+#define CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_2_SHIFT 0
+#define CLIPPER_DEBUG_REG10_ALWAYS_ZERO3_SHIFT 4
+#define CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_1_SHIFT 6
+#define CLIPPER_DEBUG_REG10_ALWAYS_ZERO2_SHIFT 10
+#define CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_0_SHIFT 12
+#define CLIPPER_DEBUG_REG10_ALWAYS_ZERO1_SHIFT 16
+#define CLIPPER_DEBUG_REG10_clprim_in_back_state_var_indx_SHIFT 18
+#define CLIPPER_DEBUG_REG10_ALWAYS_ZERO0_SHIFT 19
+#define CLIPPER_DEBUG_REG10_clprim_in_back_end_of_packet_SHIFT 21
+#define CLIPPER_DEBUG_REG10_clprim_in_back_first_prim_of_slot_SHIFT 22
+#define CLIPPER_DEBUG_REG10_clprim_in_back_deallocate_slot_SHIFT 23
+#define CLIPPER_DEBUG_REG10_clprim_in_back_event_id_SHIFT 26
+
+#define CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_2_MASK 0x0000000f
+#define CLIPPER_DEBUG_REG10_ALWAYS_ZERO3_MASK 0x00000030
+#define CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_1_MASK 0x000003c0
+#define CLIPPER_DEBUG_REG10_ALWAYS_ZERO2_MASK 0x00000c00
+#define CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_0_MASK 0x0000f000
+#define CLIPPER_DEBUG_REG10_ALWAYS_ZERO1_MASK 0x00030000
+#define CLIPPER_DEBUG_REG10_clprim_in_back_state_var_indx_MASK 0x00040000
+#define CLIPPER_DEBUG_REG10_ALWAYS_ZERO0_MASK 0x00180000
+#define CLIPPER_DEBUG_REG10_clprim_in_back_end_of_packet_MASK 0x00200000
+#define CLIPPER_DEBUG_REG10_clprim_in_back_first_prim_of_slot_MASK 0x00400000
+#define CLIPPER_DEBUG_REG10_clprim_in_back_deallocate_slot_MASK 0x03800000
+#define CLIPPER_DEBUG_REG10_clprim_in_back_event_id_MASK 0xfc000000
+
+#define CLIPPER_DEBUG_REG10_MASK \
+ (CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_2_MASK | \
+ CLIPPER_DEBUG_REG10_ALWAYS_ZERO3_MASK | \
+ CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_1_MASK | \
+ CLIPPER_DEBUG_REG10_ALWAYS_ZERO2_MASK | \
+ CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_0_MASK | \
+ CLIPPER_DEBUG_REG10_ALWAYS_ZERO1_MASK | \
+ CLIPPER_DEBUG_REG10_clprim_in_back_state_var_indx_MASK | \
+ CLIPPER_DEBUG_REG10_ALWAYS_ZERO0_MASK | \
+ CLIPPER_DEBUG_REG10_clprim_in_back_end_of_packet_MASK | \
+ CLIPPER_DEBUG_REG10_clprim_in_back_first_prim_of_slot_MASK | \
+ CLIPPER_DEBUG_REG10_clprim_in_back_deallocate_slot_MASK | \
+ CLIPPER_DEBUG_REG10_clprim_in_back_event_id_MASK)
+
+#define CLIPPER_DEBUG_REG10(primic_to_clprim_fifo_vertex_store_indx_2, always_zero3, primic_to_clprim_fifo_vertex_store_indx_1, always_zero2, primic_to_clprim_fifo_vertex_store_indx_0, always_zero1, clprim_in_back_state_var_indx, always_zero0, clprim_in_back_end_of_packet, clprim_in_back_first_prim_of_slot, clprim_in_back_deallocate_slot, clprim_in_back_event_id) \
+ ((primic_to_clprim_fifo_vertex_store_indx_2 << CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_2_SHIFT) | \
+ (always_zero3 << CLIPPER_DEBUG_REG10_ALWAYS_ZERO3_SHIFT) | \
+ (primic_to_clprim_fifo_vertex_store_indx_1 << CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_1_SHIFT) | \
+ (always_zero2 << CLIPPER_DEBUG_REG10_ALWAYS_ZERO2_SHIFT) | \
+ (primic_to_clprim_fifo_vertex_store_indx_0 << CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_0_SHIFT) | \
+ (always_zero1 << CLIPPER_DEBUG_REG10_ALWAYS_ZERO1_SHIFT) | \
+ (clprim_in_back_state_var_indx << CLIPPER_DEBUG_REG10_clprim_in_back_state_var_indx_SHIFT) | \
+ (always_zero0 << CLIPPER_DEBUG_REG10_ALWAYS_ZERO0_SHIFT) | \
+ (clprim_in_back_end_of_packet << CLIPPER_DEBUG_REG10_clprim_in_back_end_of_packet_SHIFT) | \
+ (clprim_in_back_first_prim_of_slot << CLIPPER_DEBUG_REG10_clprim_in_back_first_prim_of_slot_SHIFT) | \
+ (clprim_in_back_deallocate_slot << CLIPPER_DEBUG_REG10_clprim_in_back_deallocate_slot_SHIFT) | \
+ (clprim_in_back_event_id << CLIPPER_DEBUG_REG10_clprim_in_back_event_id_SHIFT))
+
+#define CLIPPER_DEBUG_REG10_GET_primic_to_clprim_fifo_vertex_store_indx_2(clipper_debug_reg10) \
+ ((clipper_debug_reg10 & CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_2_MASK) >> CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_2_SHIFT)
+#define CLIPPER_DEBUG_REG10_GET_ALWAYS_ZERO3(clipper_debug_reg10) \
+ ((clipper_debug_reg10 & CLIPPER_DEBUG_REG10_ALWAYS_ZERO3_MASK) >> CLIPPER_DEBUG_REG10_ALWAYS_ZERO3_SHIFT)
+#define CLIPPER_DEBUG_REG10_GET_primic_to_clprim_fifo_vertex_store_indx_1(clipper_debug_reg10) \
+ ((clipper_debug_reg10 & CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_1_MASK) >> CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_1_SHIFT)
+#define CLIPPER_DEBUG_REG10_GET_ALWAYS_ZERO2(clipper_debug_reg10) \
+ ((clipper_debug_reg10 & CLIPPER_DEBUG_REG10_ALWAYS_ZERO2_MASK) >> CLIPPER_DEBUG_REG10_ALWAYS_ZERO2_SHIFT)
+#define CLIPPER_DEBUG_REG10_GET_primic_to_clprim_fifo_vertex_store_indx_0(clipper_debug_reg10) \
+ ((clipper_debug_reg10 & CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_0_MASK) >> CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_0_SHIFT)
+#define CLIPPER_DEBUG_REG10_GET_ALWAYS_ZERO1(clipper_debug_reg10) \
+ ((clipper_debug_reg10 & CLIPPER_DEBUG_REG10_ALWAYS_ZERO1_MASK) >> CLIPPER_DEBUG_REG10_ALWAYS_ZERO1_SHIFT)
+#define CLIPPER_DEBUG_REG10_GET_clprim_in_back_state_var_indx(clipper_debug_reg10) \
+ ((clipper_debug_reg10 & CLIPPER_DEBUG_REG10_clprim_in_back_state_var_indx_MASK) >> CLIPPER_DEBUG_REG10_clprim_in_back_state_var_indx_SHIFT)
+#define CLIPPER_DEBUG_REG10_GET_ALWAYS_ZERO0(clipper_debug_reg10) \
+ ((clipper_debug_reg10 & CLIPPER_DEBUG_REG10_ALWAYS_ZERO0_MASK) >> CLIPPER_DEBUG_REG10_ALWAYS_ZERO0_SHIFT)
+#define CLIPPER_DEBUG_REG10_GET_clprim_in_back_end_of_packet(clipper_debug_reg10) \
+ ((clipper_debug_reg10 & CLIPPER_DEBUG_REG10_clprim_in_back_end_of_packet_MASK) >> CLIPPER_DEBUG_REG10_clprim_in_back_end_of_packet_SHIFT)
+#define CLIPPER_DEBUG_REG10_GET_clprim_in_back_first_prim_of_slot(clipper_debug_reg10) \
+ ((clipper_debug_reg10 & CLIPPER_DEBUG_REG10_clprim_in_back_first_prim_of_slot_MASK) >> CLIPPER_DEBUG_REG10_clprim_in_back_first_prim_of_slot_SHIFT)
+#define CLIPPER_DEBUG_REG10_GET_clprim_in_back_deallocate_slot(clipper_debug_reg10) \
+ ((clipper_debug_reg10 & CLIPPER_DEBUG_REG10_clprim_in_back_deallocate_slot_MASK) >> CLIPPER_DEBUG_REG10_clprim_in_back_deallocate_slot_SHIFT)
+#define CLIPPER_DEBUG_REG10_GET_clprim_in_back_event_id(clipper_debug_reg10) \
+ ((clipper_debug_reg10 & CLIPPER_DEBUG_REG10_clprim_in_back_event_id_MASK) >> CLIPPER_DEBUG_REG10_clprim_in_back_event_id_SHIFT)
+
+#define CLIPPER_DEBUG_REG10_SET_primic_to_clprim_fifo_vertex_store_indx_2(clipper_debug_reg10_reg, primic_to_clprim_fifo_vertex_store_indx_2) \
+ clipper_debug_reg10_reg = (clipper_debug_reg10_reg & ~CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_2_MASK) | (primic_to_clprim_fifo_vertex_store_indx_2 << CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_2_SHIFT)
+#define CLIPPER_DEBUG_REG10_SET_ALWAYS_ZERO3(clipper_debug_reg10_reg, always_zero3) \
+ clipper_debug_reg10_reg = (clipper_debug_reg10_reg & ~CLIPPER_DEBUG_REG10_ALWAYS_ZERO3_MASK) | (always_zero3 << CLIPPER_DEBUG_REG10_ALWAYS_ZERO3_SHIFT)
+#define CLIPPER_DEBUG_REG10_SET_primic_to_clprim_fifo_vertex_store_indx_1(clipper_debug_reg10_reg, primic_to_clprim_fifo_vertex_store_indx_1) \
+ clipper_debug_reg10_reg = (clipper_debug_reg10_reg & ~CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_1_MASK) | (primic_to_clprim_fifo_vertex_store_indx_1 << CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_1_SHIFT)
+#define CLIPPER_DEBUG_REG10_SET_ALWAYS_ZERO2(clipper_debug_reg10_reg, always_zero2) \
+ clipper_debug_reg10_reg = (clipper_debug_reg10_reg & ~CLIPPER_DEBUG_REG10_ALWAYS_ZERO2_MASK) | (always_zero2 << CLIPPER_DEBUG_REG10_ALWAYS_ZERO2_SHIFT)
+#define CLIPPER_DEBUG_REG10_SET_primic_to_clprim_fifo_vertex_store_indx_0(clipper_debug_reg10_reg, primic_to_clprim_fifo_vertex_store_indx_0) \
+ clipper_debug_reg10_reg = (clipper_debug_reg10_reg & ~CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_0_MASK) | (primic_to_clprim_fifo_vertex_store_indx_0 << CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_0_SHIFT)
+#define CLIPPER_DEBUG_REG10_SET_ALWAYS_ZERO1(clipper_debug_reg10_reg, always_zero1) \
+ clipper_debug_reg10_reg = (clipper_debug_reg10_reg & ~CLIPPER_DEBUG_REG10_ALWAYS_ZERO1_MASK) | (always_zero1 << CLIPPER_DEBUG_REG10_ALWAYS_ZERO1_SHIFT)
+#define CLIPPER_DEBUG_REG10_SET_clprim_in_back_state_var_indx(clipper_debug_reg10_reg, clprim_in_back_state_var_indx) \
+ clipper_debug_reg10_reg = (clipper_debug_reg10_reg & ~CLIPPER_DEBUG_REG10_clprim_in_back_state_var_indx_MASK) | (clprim_in_back_state_var_indx << CLIPPER_DEBUG_REG10_clprim_in_back_state_var_indx_SHIFT)
+#define CLIPPER_DEBUG_REG10_SET_ALWAYS_ZERO0(clipper_debug_reg10_reg, always_zero0) \
+ clipper_debug_reg10_reg = (clipper_debug_reg10_reg & ~CLIPPER_DEBUG_REG10_ALWAYS_ZERO0_MASK) | (always_zero0 << CLIPPER_DEBUG_REG10_ALWAYS_ZERO0_SHIFT)
+#define CLIPPER_DEBUG_REG10_SET_clprim_in_back_end_of_packet(clipper_debug_reg10_reg, clprim_in_back_end_of_packet) \
+ clipper_debug_reg10_reg = (clipper_debug_reg10_reg & ~CLIPPER_DEBUG_REG10_clprim_in_back_end_of_packet_MASK) | (clprim_in_back_end_of_packet << CLIPPER_DEBUG_REG10_clprim_in_back_end_of_packet_SHIFT)
+#define CLIPPER_DEBUG_REG10_SET_clprim_in_back_first_prim_of_slot(clipper_debug_reg10_reg, clprim_in_back_first_prim_of_slot) \
+ clipper_debug_reg10_reg = (clipper_debug_reg10_reg & ~CLIPPER_DEBUG_REG10_clprim_in_back_first_prim_of_slot_MASK) | (clprim_in_back_first_prim_of_slot << CLIPPER_DEBUG_REG10_clprim_in_back_first_prim_of_slot_SHIFT)
+#define CLIPPER_DEBUG_REG10_SET_clprim_in_back_deallocate_slot(clipper_debug_reg10_reg, clprim_in_back_deallocate_slot) \
+ clipper_debug_reg10_reg = (clipper_debug_reg10_reg & ~CLIPPER_DEBUG_REG10_clprim_in_back_deallocate_slot_MASK) | (clprim_in_back_deallocate_slot << CLIPPER_DEBUG_REG10_clprim_in_back_deallocate_slot_SHIFT)
+#define CLIPPER_DEBUG_REG10_SET_clprim_in_back_event_id(clipper_debug_reg10_reg, clprim_in_back_event_id) \
+ clipper_debug_reg10_reg = (clipper_debug_reg10_reg & ~CLIPPER_DEBUG_REG10_clprim_in_back_event_id_MASK) | (clprim_in_back_event_id << CLIPPER_DEBUG_REG10_clprim_in_back_event_id_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg10_t {
+ unsigned int primic_to_clprim_fifo_vertex_store_indx_2 : CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_2_SIZE;
+ unsigned int always_zero3 : CLIPPER_DEBUG_REG10_ALWAYS_ZERO3_SIZE;
+ unsigned int primic_to_clprim_fifo_vertex_store_indx_1 : CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_1_SIZE;
+ unsigned int always_zero2 : CLIPPER_DEBUG_REG10_ALWAYS_ZERO2_SIZE;
+ unsigned int primic_to_clprim_fifo_vertex_store_indx_0 : CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_0_SIZE;
+ unsigned int always_zero1 : CLIPPER_DEBUG_REG10_ALWAYS_ZERO1_SIZE;
+ unsigned int clprim_in_back_state_var_indx : CLIPPER_DEBUG_REG10_clprim_in_back_state_var_indx_SIZE;
+ unsigned int always_zero0 : CLIPPER_DEBUG_REG10_ALWAYS_ZERO0_SIZE;
+ unsigned int clprim_in_back_end_of_packet : CLIPPER_DEBUG_REG10_clprim_in_back_end_of_packet_SIZE;
+ unsigned int clprim_in_back_first_prim_of_slot : CLIPPER_DEBUG_REG10_clprim_in_back_first_prim_of_slot_SIZE;
+ unsigned int clprim_in_back_deallocate_slot : CLIPPER_DEBUG_REG10_clprim_in_back_deallocate_slot_SIZE;
+ unsigned int clprim_in_back_event_id : CLIPPER_DEBUG_REG10_clprim_in_back_event_id_SIZE;
+ } clipper_debug_reg10_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg10_t {
+ unsigned int clprim_in_back_event_id : CLIPPER_DEBUG_REG10_clprim_in_back_event_id_SIZE;
+ unsigned int clprim_in_back_deallocate_slot : CLIPPER_DEBUG_REG10_clprim_in_back_deallocate_slot_SIZE;
+ unsigned int clprim_in_back_first_prim_of_slot : CLIPPER_DEBUG_REG10_clprim_in_back_first_prim_of_slot_SIZE;
+ unsigned int clprim_in_back_end_of_packet : CLIPPER_DEBUG_REG10_clprim_in_back_end_of_packet_SIZE;
+ unsigned int always_zero0 : CLIPPER_DEBUG_REG10_ALWAYS_ZERO0_SIZE;
+ unsigned int clprim_in_back_state_var_indx : CLIPPER_DEBUG_REG10_clprim_in_back_state_var_indx_SIZE;
+ unsigned int always_zero1 : CLIPPER_DEBUG_REG10_ALWAYS_ZERO1_SIZE;
+ unsigned int primic_to_clprim_fifo_vertex_store_indx_0 : CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_0_SIZE;
+ unsigned int always_zero2 : CLIPPER_DEBUG_REG10_ALWAYS_ZERO2_SIZE;
+ unsigned int primic_to_clprim_fifo_vertex_store_indx_1 : CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_1_SIZE;
+ unsigned int always_zero3 : CLIPPER_DEBUG_REG10_ALWAYS_ZERO3_SIZE;
+ unsigned int primic_to_clprim_fifo_vertex_store_indx_2 : CLIPPER_DEBUG_REG10_primic_to_clprim_fifo_vertex_store_indx_2_SIZE;
+ } clipper_debug_reg10_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ clipper_debug_reg10_t f;
+} clipper_debug_reg10_u;
+
+
+/*
+ * CLIPPER_DEBUG_REG11 struct
+ */
+
+#define CLIPPER_DEBUG_REG11_vertval_bits_vertex_vertex_store_msb_SIZE 4
+#define CLIPPER_DEBUG_REG11_ALWAYS_ZERO_SIZE 28
+
+#define CLIPPER_DEBUG_REG11_vertval_bits_vertex_vertex_store_msb_SHIFT 0
+#define CLIPPER_DEBUG_REG11_ALWAYS_ZERO_SHIFT 4
+
+#define CLIPPER_DEBUG_REG11_vertval_bits_vertex_vertex_store_msb_MASK 0x0000000f
+#define CLIPPER_DEBUG_REG11_ALWAYS_ZERO_MASK 0xfffffff0
+
+#define CLIPPER_DEBUG_REG11_MASK \
+ (CLIPPER_DEBUG_REG11_vertval_bits_vertex_vertex_store_msb_MASK | \
+ CLIPPER_DEBUG_REG11_ALWAYS_ZERO_MASK)
+
+#define CLIPPER_DEBUG_REG11(vertval_bits_vertex_vertex_store_msb, always_zero) \
+ ((vertval_bits_vertex_vertex_store_msb << CLIPPER_DEBUG_REG11_vertval_bits_vertex_vertex_store_msb_SHIFT) | \
+ (always_zero << CLIPPER_DEBUG_REG11_ALWAYS_ZERO_SHIFT))
+
+#define CLIPPER_DEBUG_REG11_GET_vertval_bits_vertex_vertex_store_msb(clipper_debug_reg11) \
+ ((clipper_debug_reg11 & CLIPPER_DEBUG_REG11_vertval_bits_vertex_vertex_store_msb_MASK) >> CLIPPER_DEBUG_REG11_vertval_bits_vertex_vertex_store_msb_SHIFT)
+#define CLIPPER_DEBUG_REG11_GET_ALWAYS_ZERO(clipper_debug_reg11) \
+ ((clipper_debug_reg11 & CLIPPER_DEBUG_REG11_ALWAYS_ZERO_MASK) >> CLIPPER_DEBUG_REG11_ALWAYS_ZERO_SHIFT)
+
+#define CLIPPER_DEBUG_REG11_SET_vertval_bits_vertex_vertex_store_msb(clipper_debug_reg11_reg, vertval_bits_vertex_vertex_store_msb) \
+ clipper_debug_reg11_reg = (clipper_debug_reg11_reg & ~CLIPPER_DEBUG_REG11_vertval_bits_vertex_vertex_store_msb_MASK) | (vertval_bits_vertex_vertex_store_msb << CLIPPER_DEBUG_REG11_vertval_bits_vertex_vertex_store_msb_SHIFT)
+#define CLIPPER_DEBUG_REG11_SET_ALWAYS_ZERO(clipper_debug_reg11_reg, always_zero) \
+ clipper_debug_reg11_reg = (clipper_debug_reg11_reg & ~CLIPPER_DEBUG_REG11_ALWAYS_ZERO_MASK) | (always_zero << CLIPPER_DEBUG_REG11_ALWAYS_ZERO_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg11_t {
+ unsigned int vertval_bits_vertex_vertex_store_msb : CLIPPER_DEBUG_REG11_vertval_bits_vertex_vertex_store_msb_SIZE;
+ unsigned int always_zero : CLIPPER_DEBUG_REG11_ALWAYS_ZERO_SIZE;
+ } clipper_debug_reg11_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg11_t {
+ unsigned int always_zero : CLIPPER_DEBUG_REG11_ALWAYS_ZERO_SIZE;
+ unsigned int vertval_bits_vertex_vertex_store_msb : CLIPPER_DEBUG_REG11_vertval_bits_vertex_vertex_store_msb_SIZE;
+ } clipper_debug_reg11_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ clipper_debug_reg11_t f;
+} clipper_debug_reg11_u;
+
+
+/*
+ * CLIPPER_DEBUG_REG12 struct
+ */
+
+#define CLIPPER_DEBUG_REG12_clip_priority_available_vte_out_clip_SIZE 2
+#define CLIPPER_DEBUG_REG12_ALWAYS_ZERO2_SIZE 3
+#define CLIPPER_DEBUG_REG12_clip_vertex_fifo_empty_SIZE 1
+#define CLIPPER_DEBUG_REG12_clip_priority_available_clip_verts_SIZE 5
+#define CLIPPER_DEBUG_REG12_ALWAYS_ZERO1_SIZE 4
+#define CLIPPER_DEBUG_REG12_vertval_bits_vertex_cc_next_valid_SIZE 4
+#define CLIPPER_DEBUG_REG12_clipcc_vertex_store_indx_SIZE 2
+#define CLIPPER_DEBUG_REG12_primic_to_clprim_valid_SIZE 1
+#define CLIPPER_DEBUG_REG12_ALWAYS_ZERO0_SIZE 10
+
+#define CLIPPER_DEBUG_REG12_clip_priority_available_vte_out_clip_SHIFT 0
+#define CLIPPER_DEBUG_REG12_ALWAYS_ZERO2_SHIFT 2
+#define CLIPPER_DEBUG_REG12_clip_vertex_fifo_empty_SHIFT 5
+#define CLIPPER_DEBUG_REG12_clip_priority_available_clip_verts_SHIFT 6
+#define CLIPPER_DEBUG_REG12_ALWAYS_ZERO1_SHIFT 11
+#define CLIPPER_DEBUG_REG12_vertval_bits_vertex_cc_next_valid_SHIFT 15
+#define CLIPPER_DEBUG_REG12_clipcc_vertex_store_indx_SHIFT 19
+#define CLIPPER_DEBUG_REG12_primic_to_clprim_valid_SHIFT 21
+#define CLIPPER_DEBUG_REG12_ALWAYS_ZERO0_SHIFT 22
+
+#define CLIPPER_DEBUG_REG12_clip_priority_available_vte_out_clip_MASK 0x00000003
+#define CLIPPER_DEBUG_REG12_ALWAYS_ZERO2_MASK 0x0000001c
+#define CLIPPER_DEBUG_REG12_clip_vertex_fifo_empty_MASK 0x00000020
+#define CLIPPER_DEBUG_REG12_clip_priority_available_clip_verts_MASK 0x000007c0
+#define CLIPPER_DEBUG_REG12_ALWAYS_ZERO1_MASK 0x00007800
+#define CLIPPER_DEBUG_REG12_vertval_bits_vertex_cc_next_valid_MASK 0x00078000
+#define CLIPPER_DEBUG_REG12_clipcc_vertex_store_indx_MASK 0x00180000
+#define CLIPPER_DEBUG_REG12_primic_to_clprim_valid_MASK 0x00200000
+#define CLIPPER_DEBUG_REG12_ALWAYS_ZERO0_MASK 0xffc00000
+
+#define CLIPPER_DEBUG_REG12_MASK \
+ (CLIPPER_DEBUG_REG12_clip_priority_available_vte_out_clip_MASK | \
+ CLIPPER_DEBUG_REG12_ALWAYS_ZERO2_MASK | \
+ CLIPPER_DEBUG_REG12_clip_vertex_fifo_empty_MASK | \
+ CLIPPER_DEBUG_REG12_clip_priority_available_clip_verts_MASK | \
+ CLIPPER_DEBUG_REG12_ALWAYS_ZERO1_MASK | \
+ CLIPPER_DEBUG_REG12_vertval_bits_vertex_cc_next_valid_MASK | \
+ CLIPPER_DEBUG_REG12_clipcc_vertex_store_indx_MASK | \
+ CLIPPER_DEBUG_REG12_primic_to_clprim_valid_MASK | \
+ CLIPPER_DEBUG_REG12_ALWAYS_ZERO0_MASK)
+
+#define CLIPPER_DEBUG_REG12(clip_priority_available_vte_out_clip, always_zero2, clip_vertex_fifo_empty, clip_priority_available_clip_verts, always_zero1, vertval_bits_vertex_cc_next_valid, clipcc_vertex_store_indx, primic_to_clprim_valid, always_zero0) \
+ ((clip_priority_available_vte_out_clip << CLIPPER_DEBUG_REG12_clip_priority_available_vte_out_clip_SHIFT) | \
+ (always_zero2 << CLIPPER_DEBUG_REG12_ALWAYS_ZERO2_SHIFT) | \
+ (clip_vertex_fifo_empty << CLIPPER_DEBUG_REG12_clip_vertex_fifo_empty_SHIFT) | \
+ (clip_priority_available_clip_verts << CLIPPER_DEBUG_REG12_clip_priority_available_clip_verts_SHIFT) | \
+ (always_zero1 << CLIPPER_DEBUG_REG12_ALWAYS_ZERO1_SHIFT) | \
+ (vertval_bits_vertex_cc_next_valid << CLIPPER_DEBUG_REG12_vertval_bits_vertex_cc_next_valid_SHIFT) | \
+ (clipcc_vertex_store_indx << CLIPPER_DEBUG_REG12_clipcc_vertex_store_indx_SHIFT) | \
+ (primic_to_clprim_valid << CLIPPER_DEBUG_REG12_primic_to_clprim_valid_SHIFT) | \
+ (always_zero0 << CLIPPER_DEBUG_REG12_ALWAYS_ZERO0_SHIFT))
+
+#define CLIPPER_DEBUG_REG12_GET_clip_priority_available_vte_out_clip(clipper_debug_reg12) \
+ ((clipper_debug_reg12 & CLIPPER_DEBUG_REG12_clip_priority_available_vte_out_clip_MASK) >> CLIPPER_DEBUG_REG12_clip_priority_available_vte_out_clip_SHIFT)
+#define CLIPPER_DEBUG_REG12_GET_ALWAYS_ZERO2(clipper_debug_reg12) \
+ ((clipper_debug_reg12 & CLIPPER_DEBUG_REG12_ALWAYS_ZERO2_MASK) >> CLIPPER_DEBUG_REG12_ALWAYS_ZERO2_SHIFT)
+#define CLIPPER_DEBUG_REG12_GET_clip_vertex_fifo_empty(clipper_debug_reg12) \
+ ((clipper_debug_reg12 & CLIPPER_DEBUG_REG12_clip_vertex_fifo_empty_MASK) >> CLIPPER_DEBUG_REG12_clip_vertex_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG12_GET_clip_priority_available_clip_verts(clipper_debug_reg12) \
+ ((clipper_debug_reg12 & CLIPPER_DEBUG_REG12_clip_priority_available_clip_verts_MASK) >> CLIPPER_DEBUG_REG12_clip_priority_available_clip_verts_SHIFT)
+#define CLIPPER_DEBUG_REG12_GET_ALWAYS_ZERO1(clipper_debug_reg12) \
+ ((clipper_debug_reg12 & CLIPPER_DEBUG_REG12_ALWAYS_ZERO1_MASK) >> CLIPPER_DEBUG_REG12_ALWAYS_ZERO1_SHIFT)
+#define CLIPPER_DEBUG_REG12_GET_vertval_bits_vertex_cc_next_valid(clipper_debug_reg12) \
+ ((clipper_debug_reg12 & CLIPPER_DEBUG_REG12_vertval_bits_vertex_cc_next_valid_MASK) >> CLIPPER_DEBUG_REG12_vertval_bits_vertex_cc_next_valid_SHIFT)
+#define CLIPPER_DEBUG_REG12_GET_clipcc_vertex_store_indx(clipper_debug_reg12) \
+ ((clipper_debug_reg12 & CLIPPER_DEBUG_REG12_clipcc_vertex_store_indx_MASK) >> CLIPPER_DEBUG_REG12_clipcc_vertex_store_indx_SHIFT)
+#define CLIPPER_DEBUG_REG12_GET_primic_to_clprim_valid(clipper_debug_reg12) \
+ ((clipper_debug_reg12 & CLIPPER_DEBUG_REG12_primic_to_clprim_valid_MASK) >> CLIPPER_DEBUG_REG12_primic_to_clprim_valid_SHIFT)
+#define CLIPPER_DEBUG_REG12_GET_ALWAYS_ZERO0(clipper_debug_reg12) \
+ ((clipper_debug_reg12 & CLIPPER_DEBUG_REG12_ALWAYS_ZERO0_MASK) >> CLIPPER_DEBUG_REG12_ALWAYS_ZERO0_SHIFT)
+
+#define CLIPPER_DEBUG_REG12_SET_clip_priority_available_vte_out_clip(clipper_debug_reg12_reg, clip_priority_available_vte_out_clip) \
+ clipper_debug_reg12_reg = (clipper_debug_reg12_reg & ~CLIPPER_DEBUG_REG12_clip_priority_available_vte_out_clip_MASK) | (clip_priority_available_vte_out_clip << CLIPPER_DEBUG_REG12_clip_priority_available_vte_out_clip_SHIFT)
+#define CLIPPER_DEBUG_REG12_SET_ALWAYS_ZERO2(clipper_debug_reg12_reg, always_zero2) \
+ clipper_debug_reg12_reg = (clipper_debug_reg12_reg & ~CLIPPER_DEBUG_REG12_ALWAYS_ZERO2_MASK) | (always_zero2 << CLIPPER_DEBUG_REG12_ALWAYS_ZERO2_SHIFT)
+#define CLIPPER_DEBUG_REG12_SET_clip_vertex_fifo_empty(clipper_debug_reg12_reg, clip_vertex_fifo_empty) \
+ clipper_debug_reg12_reg = (clipper_debug_reg12_reg & ~CLIPPER_DEBUG_REG12_clip_vertex_fifo_empty_MASK) | (clip_vertex_fifo_empty << CLIPPER_DEBUG_REG12_clip_vertex_fifo_empty_SHIFT)
+#define CLIPPER_DEBUG_REG12_SET_clip_priority_available_clip_verts(clipper_debug_reg12_reg, clip_priority_available_clip_verts) \
+ clipper_debug_reg12_reg = (clipper_debug_reg12_reg & ~CLIPPER_DEBUG_REG12_clip_priority_available_clip_verts_MASK) | (clip_priority_available_clip_verts << CLIPPER_DEBUG_REG12_clip_priority_available_clip_verts_SHIFT)
+#define CLIPPER_DEBUG_REG12_SET_ALWAYS_ZERO1(clipper_debug_reg12_reg, always_zero1) \
+ clipper_debug_reg12_reg = (clipper_debug_reg12_reg & ~CLIPPER_DEBUG_REG12_ALWAYS_ZERO1_MASK) | (always_zero1 << CLIPPER_DEBUG_REG12_ALWAYS_ZERO1_SHIFT)
+#define CLIPPER_DEBUG_REG12_SET_vertval_bits_vertex_cc_next_valid(clipper_debug_reg12_reg, vertval_bits_vertex_cc_next_valid) \
+ clipper_debug_reg12_reg = (clipper_debug_reg12_reg & ~CLIPPER_DEBUG_REG12_vertval_bits_vertex_cc_next_valid_MASK) | (vertval_bits_vertex_cc_next_valid << CLIPPER_DEBUG_REG12_vertval_bits_vertex_cc_next_valid_SHIFT)
+#define CLIPPER_DEBUG_REG12_SET_clipcc_vertex_store_indx(clipper_debug_reg12_reg, clipcc_vertex_store_indx) \
+ clipper_debug_reg12_reg = (clipper_debug_reg12_reg & ~CLIPPER_DEBUG_REG12_clipcc_vertex_store_indx_MASK) | (clipcc_vertex_store_indx << CLIPPER_DEBUG_REG12_clipcc_vertex_store_indx_SHIFT)
+#define CLIPPER_DEBUG_REG12_SET_primic_to_clprim_valid(clipper_debug_reg12_reg, primic_to_clprim_valid) \
+ clipper_debug_reg12_reg = (clipper_debug_reg12_reg & ~CLIPPER_DEBUG_REG12_primic_to_clprim_valid_MASK) | (primic_to_clprim_valid << CLIPPER_DEBUG_REG12_primic_to_clprim_valid_SHIFT)
+#define CLIPPER_DEBUG_REG12_SET_ALWAYS_ZERO0(clipper_debug_reg12_reg, always_zero0) \
+ clipper_debug_reg12_reg = (clipper_debug_reg12_reg & ~CLIPPER_DEBUG_REG12_ALWAYS_ZERO0_MASK) | (always_zero0 << CLIPPER_DEBUG_REG12_ALWAYS_ZERO0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg12_t {
+ unsigned int clip_priority_available_vte_out_clip : CLIPPER_DEBUG_REG12_clip_priority_available_vte_out_clip_SIZE;
+ unsigned int always_zero2 : CLIPPER_DEBUG_REG12_ALWAYS_ZERO2_SIZE;
+ unsigned int clip_vertex_fifo_empty : CLIPPER_DEBUG_REG12_clip_vertex_fifo_empty_SIZE;
+ unsigned int clip_priority_available_clip_verts : CLIPPER_DEBUG_REG12_clip_priority_available_clip_verts_SIZE;
+ unsigned int always_zero1 : CLIPPER_DEBUG_REG12_ALWAYS_ZERO1_SIZE;
+ unsigned int vertval_bits_vertex_cc_next_valid : CLIPPER_DEBUG_REG12_vertval_bits_vertex_cc_next_valid_SIZE;
+ unsigned int clipcc_vertex_store_indx : CLIPPER_DEBUG_REG12_clipcc_vertex_store_indx_SIZE;
+ unsigned int primic_to_clprim_valid : CLIPPER_DEBUG_REG12_primic_to_clprim_valid_SIZE;
+ unsigned int always_zero0 : CLIPPER_DEBUG_REG12_ALWAYS_ZERO0_SIZE;
+ } clipper_debug_reg12_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg12_t {
+ unsigned int always_zero0 : CLIPPER_DEBUG_REG12_ALWAYS_ZERO0_SIZE;
+ unsigned int primic_to_clprim_valid : CLIPPER_DEBUG_REG12_primic_to_clprim_valid_SIZE;
+ unsigned int clipcc_vertex_store_indx : CLIPPER_DEBUG_REG12_clipcc_vertex_store_indx_SIZE;
+ unsigned int vertval_bits_vertex_cc_next_valid : CLIPPER_DEBUG_REG12_vertval_bits_vertex_cc_next_valid_SIZE;
+ unsigned int always_zero1 : CLIPPER_DEBUG_REG12_ALWAYS_ZERO1_SIZE;
+ unsigned int clip_priority_available_clip_verts : CLIPPER_DEBUG_REG12_clip_priority_available_clip_verts_SIZE;
+ unsigned int clip_vertex_fifo_empty : CLIPPER_DEBUG_REG12_clip_vertex_fifo_empty_SIZE;
+ unsigned int always_zero2 : CLIPPER_DEBUG_REG12_ALWAYS_ZERO2_SIZE;
+ unsigned int clip_priority_available_vte_out_clip : CLIPPER_DEBUG_REG12_clip_priority_available_vte_out_clip_SIZE;
+ } clipper_debug_reg12_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ clipper_debug_reg12_t f;
+} clipper_debug_reg12_u;
+
+
+/*
+ * CLIPPER_DEBUG_REG13 struct
+ */
+
+#define CLIPPER_DEBUG_REG13_sm0_clip_vert_cnt_SIZE 4
+#define CLIPPER_DEBUG_REG13_sm0_prim_end_state_SIZE 7
+#define CLIPPER_DEBUG_REG13_ALWAYS_ZERO1_SIZE 3
+#define CLIPPER_DEBUG_REG13_sm0_vertex_clip_cnt_SIZE 4
+#define CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_1_SIZE 1
+#define CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_0_SIZE 1
+#define CLIPPER_DEBUG_REG13_sm0_current_state_SIZE 7
+#define CLIPPER_DEBUG_REG13_ALWAYS_ZERO0_SIZE 5
+
+#define CLIPPER_DEBUG_REG13_sm0_clip_vert_cnt_SHIFT 0
+#define CLIPPER_DEBUG_REG13_sm0_prim_end_state_SHIFT 4
+#define CLIPPER_DEBUG_REG13_ALWAYS_ZERO1_SHIFT 11
+#define CLIPPER_DEBUG_REG13_sm0_vertex_clip_cnt_SHIFT 14
+#define CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_1_SHIFT 18
+#define CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_0_SHIFT 19
+#define CLIPPER_DEBUG_REG13_sm0_current_state_SHIFT 20
+#define CLIPPER_DEBUG_REG13_ALWAYS_ZERO0_SHIFT 27
+
+#define CLIPPER_DEBUG_REG13_sm0_clip_vert_cnt_MASK 0x0000000f
+#define CLIPPER_DEBUG_REG13_sm0_prim_end_state_MASK 0x000007f0
+#define CLIPPER_DEBUG_REG13_ALWAYS_ZERO1_MASK 0x00003800
+#define CLIPPER_DEBUG_REG13_sm0_vertex_clip_cnt_MASK 0x0003c000
+#define CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_1_MASK 0x00040000
+#define CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_0_MASK 0x00080000
+#define CLIPPER_DEBUG_REG13_sm0_current_state_MASK 0x07f00000
+#define CLIPPER_DEBUG_REG13_ALWAYS_ZERO0_MASK 0xf8000000
+
+#define CLIPPER_DEBUG_REG13_MASK \
+ (CLIPPER_DEBUG_REG13_sm0_clip_vert_cnt_MASK | \
+ CLIPPER_DEBUG_REG13_sm0_prim_end_state_MASK | \
+ CLIPPER_DEBUG_REG13_ALWAYS_ZERO1_MASK | \
+ CLIPPER_DEBUG_REG13_sm0_vertex_clip_cnt_MASK | \
+ CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_1_MASK | \
+ CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_0_MASK | \
+ CLIPPER_DEBUG_REG13_sm0_current_state_MASK | \
+ CLIPPER_DEBUG_REG13_ALWAYS_ZERO0_MASK)
+
+#define CLIPPER_DEBUG_REG13(sm0_clip_vert_cnt, sm0_prim_end_state, always_zero1, sm0_vertex_clip_cnt, sm0_inv_to_clip_data_valid_1, sm0_inv_to_clip_data_valid_0, sm0_current_state, always_zero0) \
+ ((sm0_clip_vert_cnt << CLIPPER_DEBUG_REG13_sm0_clip_vert_cnt_SHIFT) | \
+ (sm0_prim_end_state << CLIPPER_DEBUG_REG13_sm0_prim_end_state_SHIFT) | \
+ (always_zero1 << CLIPPER_DEBUG_REG13_ALWAYS_ZERO1_SHIFT) | \
+ (sm0_vertex_clip_cnt << CLIPPER_DEBUG_REG13_sm0_vertex_clip_cnt_SHIFT) | \
+ (sm0_inv_to_clip_data_valid_1 << CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_1_SHIFT) | \
+ (sm0_inv_to_clip_data_valid_0 << CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_0_SHIFT) | \
+ (sm0_current_state << CLIPPER_DEBUG_REG13_sm0_current_state_SHIFT) | \
+ (always_zero0 << CLIPPER_DEBUG_REG13_ALWAYS_ZERO0_SHIFT))
+
+#define CLIPPER_DEBUG_REG13_GET_sm0_clip_vert_cnt(clipper_debug_reg13) \
+ ((clipper_debug_reg13 & CLIPPER_DEBUG_REG13_sm0_clip_vert_cnt_MASK) >> CLIPPER_DEBUG_REG13_sm0_clip_vert_cnt_SHIFT)
+#define CLIPPER_DEBUG_REG13_GET_sm0_prim_end_state(clipper_debug_reg13) \
+ ((clipper_debug_reg13 & CLIPPER_DEBUG_REG13_sm0_prim_end_state_MASK) >> CLIPPER_DEBUG_REG13_sm0_prim_end_state_SHIFT)
+#define CLIPPER_DEBUG_REG13_GET_ALWAYS_ZERO1(clipper_debug_reg13) \
+ ((clipper_debug_reg13 & CLIPPER_DEBUG_REG13_ALWAYS_ZERO1_MASK) >> CLIPPER_DEBUG_REG13_ALWAYS_ZERO1_SHIFT)
+#define CLIPPER_DEBUG_REG13_GET_sm0_vertex_clip_cnt(clipper_debug_reg13) \
+ ((clipper_debug_reg13 & CLIPPER_DEBUG_REG13_sm0_vertex_clip_cnt_MASK) >> CLIPPER_DEBUG_REG13_sm0_vertex_clip_cnt_SHIFT)
+#define CLIPPER_DEBUG_REG13_GET_sm0_inv_to_clip_data_valid_1(clipper_debug_reg13) \
+ ((clipper_debug_reg13 & CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_1_MASK) >> CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_1_SHIFT)
+#define CLIPPER_DEBUG_REG13_GET_sm0_inv_to_clip_data_valid_0(clipper_debug_reg13) \
+ ((clipper_debug_reg13 & CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_0_MASK) >> CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_0_SHIFT)
+#define CLIPPER_DEBUG_REG13_GET_sm0_current_state(clipper_debug_reg13) \
+ ((clipper_debug_reg13 & CLIPPER_DEBUG_REG13_sm0_current_state_MASK) >> CLIPPER_DEBUG_REG13_sm0_current_state_SHIFT)
+#define CLIPPER_DEBUG_REG13_GET_ALWAYS_ZERO0(clipper_debug_reg13) \
+ ((clipper_debug_reg13 & CLIPPER_DEBUG_REG13_ALWAYS_ZERO0_MASK) >> CLIPPER_DEBUG_REG13_ALWAYS_ZERO0_SHIFT)
+
+#define CLIPPER_DEBUG_REG13_SET_sm0_clip_vert_cnt(clipper_debug_reg13_reg, sm0_clip_vert_cnt) \
+ clipper_debug_reg13_reg = (clipper_debug_reg13_reg & ~CLIPPER_DEBUG_REG13_sm0_clip_vert_cnt_MASK) | (sm0_clip_vert_cnt << CLIPPER_DEBUG_REG13_sm0_clip_vert_cnt_SHIFT)
+#define CLIPPER_DEBUG_REG13_SET_sm0_prim_end_state(clipper_debug_reg13_reg, sm0_prim_end_state) \
+ clipper_debug_reg13_reg = (clipper_debug_reg13_reg & ~CLIPPER_DEBUG_REG13_sm0_prim_end_state_MASK) | (sm0_prim_end_state << CLIPPER_DEBUG_REG13_sm0_prim_end_state_SHIFT)
+#define CLIPPER_DEBUG_REG13_SET_ALWAYS_ZERO1(clipper_debug_reg13_reg, always_zero1) \
+ clipper_debug_reg13_reg = (clipper_debug_reg13_reg & ~CLIPPER_DEBUG_REG13_ALWAYS_ZERO1_MASK) | (always_zero1 << CLIPPER_DEBUG_REG13_ALWAYS_ZERO1_SHIFT)
+#define CLIPPER_DEBUG_REG13_SET_sm0_vertex_clip_cnt(clipper_debug_reg13_reg, sm0_vertex_clip_cnt) \
+ clipper_debug_reg13_reg = (clipper_debug_reg13_reg & ~CLIPPER_DEBUG_REG13_sm0_vertex_clip_cnt_MASK) | (sm0_vertex_clip_cnt << CLIPPER_DEBUG_REG13_sm0_vertex_clip_cnt_SHIFT)
+#define CLIPPER_DEBUG_REG13_SET_sm0_inv_to_clip_data_valid_1(clipper_debug_reg13_reg, sm0_inv_to_clip_data_valid_1) \
+ clipper_debug_reg13_reg = (clipper_debug_reg13_reg & ~CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_1_MASK) | (sm0_inv_to_clip_data_valid_1 << CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_1_SHIFT)
+#define CLIPPER_DEBUG_REG13_SET_sm0_inv_to_clip_data_valid_0(clipper_debug_reg13_reg, sm0_inv_to_clip_data_valid_0) \
+ clipper_debug_reg13_reg = (clipper_debug_reg13_reg & ~CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_0_MASK) | (sm0_inv_to_clip_data_valid_0 << CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_0_SHIFT)
+#define CLIPPER_DEBUG_REG13_SET_sm0_current_state(clipper_debug_reg13_reg, sm0_current_state) \
+ clipper_debug_reg13_reg = (clipper_debug_reg13_reg & ~CLIPPER_DEBUG_REG13_sm0_current_state_MASK) | (sm0_current_state << CLIPPER_DEBUG_REG13_sm0_current_state_SHIFT)
+#define CLIPPER_DEBUG_REG13_SET_ALWAYS_ZERO0(clipper_debug_reg13_reg, always_zero0) \
+ clipper_debug_reg13_reg = (clipper_debug_reg13_reg & ~CLIPPER_DEBUG_REG13_ALWAYS_ZERO0_MASK) | (always_zero0 << CLIPPER_DEBUG_REG13_ALWAYS_ZERO0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg13_t {
+ unsigned int sm0_clip_vert_cnt : CLIPPER_DEBUG_REG13_sm0_clip_vert_cnt_SIZE;
+ unsigned int sm0_prim_end_state : CLIPPER_DEBUG_REG13_sm0_prim_end_state_SIZE;
+ unsigned int always_zero1 : CLIPPER_DEBUG_REG13_ALWAYS_ZERO1_SIZE;
+ unsigned int sm0_vertex_clip_cnt : CLIPPER_DEBUG_REG13_sm0_vertex_clip_cnt_SIZE;
+ unsigned int sm0_inv_to_clip_data_valid_1 : CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_1_SIZE;
+ unsigned int sm0_inv_to_clip_data_valid_0 : CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_0_SIZE;
+ unsigned int sm0_current_state : CLIPPER_DEBUG_REG13_sm0_current_state_SIZE;
+ unsigned int always_zero0 : CLIPPER_DEBUG_REG13_ALWAYS_ZERO0_SIZE;
+ } clipper_debug_reg13_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _clipper_debug_reg13_t {
+ unsigned int always_zero0 : CLIPPER_DEBUG_REG13_ALWAYS_ZERO0_SIZE;
+ unsigned int sm0_current_state : CLIPPER_DEBUG_REG13_sm0_current_state_SIZE;
+ unsigned int sm0_inv_to_clip_data_valid_0 : CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_0_SIZE;
+ unsigned int sm0_inv_to_clip_data_valid_1 : CLIPPER_DEBUG_REG13_sm0_inv_to_clip_data_valid_1_SIZE;
+ unsigned int sm0_vertex_clip_cnt : CLIPPER_DEBUG_REG13_sm0_vertex_clip_cnt_SIZE;
+ unsigned int always_zero1 : CLIPPER_DEBUG_REG13_ALWAYS_ZERO1_SIZE;
+ unsigned int sm0_prim_end_state : CLIPPER_DEBUG_REG13_sm0_prim_end_state_SIZE;
+ unsigned int sm0_clip_vert_cnt : CLIPPER_DEBUG_REG13_sm0_clip_vert_cnt_SIZE;
+ } clipper_debug_reg13_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ clipper_debug_reg13_t f;
+} clipper_debug_reg13_u;
+
+
+/*
+ * SXIFCCG_DEBUG_REG0 struct
+ */
+
+#define SXIFCCG_DEBUG_REG0_nan_kill_flag_SIZE 4
+#define SXIFCCG_DEBUG_REG0_position_address_SIZE 3
+#define SXIFCCG_DEBUG_REG0_ALWAYS_ZERO2_SIZE 3
+#define SXIFCCG_DEBUG_REG0_point_address_SIZE 3
+#define SXIFCCG_DEBUG_REG0_ALWAYS_ZERO1_SIZE 3
+#define SXIFCCG_DEBUG_REG0_sx_pending_rd_state_var_indx_SIZE 1
+#define SXIFCCG_DEBUG_REG0_ALWAYS_ZERO0_SIZE 2
+#define SXIFCCG_DEBUG_REG0_sx_pending_rd_req_mask_SIZE 4
+#define SXIFCCG_DEBUG_REG0_sx_pending_rd_pci_SIZE 7
+#define SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_inc_SIZE 1
+#define SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_sel_SIZE 1
+
+#define SXIFCCG_DEBUG_REG0_nan_kill_flag_SHIFT 0
+#define SXIFCCG_DEBUG_REG0_position_address_SHIFT 4
+#define SXIFCCG_DEBUG_REG0_ALWAYS_ZERO2_SHIFT 7
+#define SXIFCCG_DEBUG_REG0_point_address_SHIFT 10
+#define SXIFCCG_DEBUG_REG0_ALWAYS_ZERO1_SHIFT 13
+#define SXIFCCG_DEBUG_REG0_sx_pending_rd_state_var_indx_SHIFT 16
+#define SXIFCCG_DEBUG_REG0_ALWAYS_ZERO0_SHIFT 17
+#define SXIFCCG_DEBUG_REG0_sx_pending_rd_req_mask_SHIFT 19
+#define SXIFCCG_DEBUG_REG0_sx_pending_rd_pci_SHIFT 23
+#define SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_inc_SHIFT 30
+#define SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_sel_SHIFT 31
+
+#define SXIFCCG_DEBUG_REG0_nan_kill_flag_MASK 0x0000000f
+#define SXIFCCG_DEBUG_REG0_position_address_MASK 0x00000070
+#define SXIFCCG_DEBUG_REG0_ALWAYS_ZERO2_MASK 0x00000380
+#define SXIFCCG_DEBUG_REG0_point_address_MASK 0x00001c00
+#define SXIFCCG_DEBUG_REG0_ALWAYS_ZERO1_MASK 0x0000e000
+#define SXIFCCG_DEBUG_REG0_sx_pending_rd_state_var_indx_MASK 0x00010000
+#define SXIFCCG_DEBUG_REG0_ALWAYS_ZERO0_MASK 0x00060000
+#define SXIFCCG_DEBUG_REG0_sx_pending_rd_req_mask_MASK 0x00780000
+#define SXIFCCG_DEBUG_REG0_sx_pending_rd_pci_MASK 0x3f800000
+#define SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_inc_MASK 0x40000000
+#define SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_sel_MASK 0x80000000
+
+#define SXIFCCG_DEBUG_REG0_MASK \
+ (SXIFCCG_DEBUG_REG0_nan_kill_flag_MASK | \
+ SXIFCCG_DEBUG_REG0_position_address_MASK | \
+ SXIFCCG_DEBUG_REG0_ALWAYS_ZERO2_MASK | \
+ SXIFCCG_DEBUG_REG0_point_address_MASK | \
+ SXIFCCG_DEBUG_REG0_ALWAYS_ZERO1_MASK | \
+ SXIFCCG_DEBUG_REG0_sx_pending_rd_state_var_indx_MASK | \
+ SXIFCCG_DEBUG_REG0_ALWAYS_ZERO0_MASK | \
+ SXIFCCG_DEBUG_REG0_sx_pending_rd_req_mask_MASK | \
+ SXIFCCG_DEBUG_REG0_sx_pending_rd_pci_MASK | \
+ SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_inc_MASK | \
+ SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_sel_MASK)
+
+#define SXIFCCG_DEBUG_REG0(nan_kill_flag, position_address, always_zero2, point_address, always_zero1, sx_pending_rd_state_var_indx, always_zero0, sx_pending_rd_req_mask, sx_pending_rd_pci, sx_pending_rd_aux_inc, sx_pending_rd_aux_sel) \
+ ((nan_kill_flag << SXIFCCG_DEBUG_REG0_nan_kill_flag_SHIFT) | \
+ (position_address << SXIFCCG_DEBUG_REG0_position_address_SHIFT) | \
+ (always_zero2 << SXIFCCG_DEBUG_REG0_ALWAYS_ZERO2_SHIFT) | \
+ (point_address << SXIFCCG_DEBUG_REG0_point_address_SHIFT) | \
+ (always_zero1 << SXIFCCG_DEBUG_REG0_ALWAYS_ZERO1_SHIFT) | \
+ (sx_pending_rd_state_var_indx << SXIFCCG_DEBUG_REG0_sx_pending_rd_state_var_indx_SHIFT) | \
+ (always_zero0 << SXIFCCG_DEBUG_REG0_ALWAYS_ZERO0_SHIFT) | \
+ (sx_pending_rd_req_mask << SXIFCCG_DEBUG_REG0_sx_pending_rd_req_mask_SHIFT) | \
+ (sx_pending_rd_pci << SXIFCCG_DEBUG_REG0_sx_pending_rd_pci_SHIFT) | \
+ (sx_pending_rd_aux_inc << SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_inc_SHIFT) | \
+ (sx_pending_rd_aux_sel << SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_sel_SHIFT))
+
+#define SXIFCCG_DEBUG_REG0_GET_nan_kill_flag(sxifccg_debug_reg0) \
+ ((sxifccg_debug_reg0 & SXIFCCG_DEBUG_REG0_nan_kill_flag_MASK) >> SXIFCCG_DEBUG_REG0_nan_kill_flag_SHIFT)
+#define SXIFCCG_DEBUG_REG0_GET_position_address(sxifccg_debug_reg0) \
+ ((sxifccg_debug_reg0 & SXIFCCG_DEBUG_REG0_position_address_MASK) >> SXIFCCG_DEBUG_REG0_position_address_SHIFT)
+#define SXIFCCG_DEBUG_REG0_GET_ALWAYS_ZERO2(sxifccg_debug_reg0) \
+ ((sxifccg_debug_reg0 & SXIFCCG_DEBUG_REG0_ALWAYS_ZERO2_MASK) >> SXIFCCG_DEBUG_REG0_ALWAYS_ZERO2_SHIFT)
+#define SXIFCCG_DEBUG_REG0_GET_point_address(sxifccg_debug_reg0) \
+ ((sxifccg_debug_reg0 & SXIFCCG_DEBUG_REG0_point_address_MASK) >> SXIFCCG_DEBUG_REG0_point_address_SHIFT)
+#define SXIFCCG_DEBUG_REG0_GET_ALWAYS_ZERO1(sxifccg_debug_reg0) \
+ ((sxifccg_debug_reg0 & SXIFCCG_DEBUG_REG0_ALWAYS_ZERO1_MASK) >> SXIFCCG_DEBUG_REG0_ALWAYS_ZERO1_SHIFT)
+#define SXIFCCG_DEBUG_REG0_GET_sx_pending_rd_state_var_indx(sxifccg_debug_reg0) \
+ ((sxifccg_debug_reg0 & SXIFCCG_DEBUG_REG0_sx_pending_rd_state_var_indx_MASK) >> SXIFCCG_DEBUG_REG0_sx_pending_rd_state_var_indx_SHIFT)
+#define SXIFCCG_DEBUG_REG0_GET_ALWAYS_ZERO0(sxifccg_debug_reg0) \
+ ((sxifccg_debug_reg0 & SXIFCCG_DEBUG_REG0_ALWAYS_ZERO0_MASK) >> SXIFCCG_DEBUG_REG0_ALWAYS_ZERO0_SHIFT)
+#define SXIFCCG_DEBUG_REG0_GET_sx_pending_rd_req_mask(sxifccg_debug_reg0) \
+ ((sxifccg_debug_reg0 & SXIFCCG_DEBUG_REG0_sx_pending_rd_req_mask_MASK) >> SXIFCCG_DEBUG_REG0_sx_pending_rd_req_mask_SHIFT)
+#define SXIFCCG_DEBUG_REG0_GET_sx_pending_rd_pci(sxifccg_debug_reg0) \
+ ((sxifccg_debug_reg0 & SXIFCCG_DEBUG_REG0_sx_pending_rd_pci_MASK) >> SXIFCCG_DEBUG_REG0_sx_pending_rd_pci_SHIFT)
+#define SXIFCCG_DEBUG_REG0_GET_sx_pending_rd_aux_inc(sxifccg_debug_reg0) \
+ ((sxifccg_debug_reg0 & SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_inc_MASK) >> SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_inc_SHIFT)
+#define SXIFCCG_DEBUG_REG0_GET_sx_pending_rd_aux_sel(sxifccg_debug_reg0) \
+ ((sxifccg_debug_reg0 & SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_sel_MASK) >> SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_sel_SHIFT)
+
+#define SXIFCCG_DEBUG_REG0_SET_nan_kill_flag(sxifccg_debug_reg0_reg, nan_kill_flag) \
+ sxifccg_debug_reg0_reg = (sxifccg_debug_reg0_reg & ~SXIFCCG_DEBUG_REG0_nan_kill_flag_MASK) | (nan_kill_flag << SXIFCCG_DEBUG_REG0_nan_kill_flag_SHIFT)
+#define SXIFCCG_DEBUG_REG0_SET_position_address(sxifccg_debug_reg0_reg, position_address) \
+ sxifccg_debug_reg0_reg = (sxifccg_debug_reg0_reg & ~SXIFCCG_DEBUG_REG0_position_address_MASK) | (position_address << SXIFCCG_DEBUG_REG0_position_address_SHIFT)
+#define SXIFCCG_DEBUG_REG0_SET_ALWAYS_ZERO2(sxifccg_debug_reg0_reg, always_zero2) \
+ sxifccg_debug_reg0_reg = (sxifccg_debug_reg0_reg & ~SXIFCCG_DEBUG_REG0_ALWAYS_ZERO2_MASK) | (always_zero2 << SXIFCCG_DEBUG_REG0_ALWAYS_ZERO2_SHIFT)
+#define SXIFCCG_DEBUG_REG0_SET_point_address(sxifccg_debug_reg0_reg, point_address) \
+ sxifccg_debug_reg0_reg = (sxifccg_debug_reg0_reg & ~SXIFCCG_DEBUG_REG0_point_address_MASK) | (point_address << SXIFCCG_DEBUG_REG0_point_address_SHIFT)
+#define SXIFCCG_DEBUG_REG0_SET_ALWAYS_ZERO1(sxifccg_debug_reg0_reg, always_zero1) \
+ sxifccg_debug_reg0_reg = (sxifccg_debug_reg0_reg & ~SXIFCCG_DEBUG_REG0_ALWAYS_ZERO1_MASK) | (always_zero1 << SXIFCCG_DEBUG_REG0_ALWAYS_ZERO1_SHIFT)
+#define SXIFCCG_DEBUG_REG0_SET_sx_pending_rd_state_var_indx(sxifccg_debug_reg0_reg, sx_pending_rd_state_var_indx) \
+ sxifccg_debug_reg0_reg = (sxifccg_debug_reg0_reg & ~SXIFCCG_DEBUG_REG0_sx_pending_rd_state_var_indx_MASK) | (sx_pending_rd_state_var_indx << SXIFCCG_DEBUG_REG0_sx_pending_rd_state_var_indx_SHIFT)
+#define SXIFCCG_DEBUG_REG0_SET_ALWAYS_ZERO0(sxifccg_debug_reg0_reg, always_zero0) \
+ sxifccg_debug_reg0_reg = (sxifccg_debug_reg0_reg & ~SXIFCCG_DEBUG_REG0_ALWAYS_ZERO0_MASK) | (always_zero0 << SXIFCCG_DEBUG_REG0_ALWAYS_ZERO0_SHIFT)
+#define SXIFCCG_DEBUG_REG0_SET_sx_pending_rd_req_mask(sxifccg_debug_reg0_reg, sx_pending_rd_req_mask) \
+ sxifccg_debug_reg0_reg = (sxifccg_debug_reg0_reg & ~SXIFCCG_DEBUG_REG0_sx_pending_rd_req_mask_MASK) | (sx_pending_rd_req_mask << SXIFCCG_DEBUG_REG0_sx_pending_rd_req_mask_SHIFT)
+#define SXIFCCG_DEBUG_REG0_SET_sx_pending_rd_pci(sxifccg_debug_reg0_reg, sx_pending_rd_pci) \
+ sxifccg_debug_reg0_reg = (sxifccg_debug_reg0_reg & ~SXIFCCG_DEBUG_REG0_sx_pending_rd_pci_MASK) | (sx_pending_rd_pci << SXIFCCG_DEBUG_REG0_sx_pending_rd_pci_SHIFT)
+#define SXIFCCG_DEBUG_REG0_SET_sx_pending_rd_aux_inc(sxifccg_debug_reg0_reg, sx_pending_rd_aux_inc) \
+ sxifccg_debug_reg0_reg = (sxifccg_debug_reg0_reg & ~SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_inc_MASK) | (sx_pending_rd_aux_inc << SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_inc_SHIFT)
+#define SXIFCCG_DEBUG_REG0_SET_sx_pending_rd_aux_sel(sxifccg_debug_reg0_reg, sx_pending_rd_aux_sel) \
+ sxifccg_debug_reg0_reg = (sxifccg_debug_reg0_reg & ~SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_sel_MASK) | (sx_pending_rd_aux_sel << SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_sel_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sxifccg_debug_reg0_t {
+ unsigned int nan_kill_flag : SXIFCCG_DEBUG_REG0_nan_kill_flag_SIZE;
+ unsigned int position_address : SXIFCCG_DEBUG_REG0_position_address_SIZE;
+ unsigned int always_zero2 : SXIFCCG_DEBUG_REG0_ALWAYS_ZERO2_SIZE;
+ unsigned int point_address : SXIFCCG_DEBUG_REG0_point_address_SIZE;
+ unsigned int always_zero1 : SXIFCCG_DEBUG_REG0_ALWAYS_ZERO1_SIZE;
+ unsigned int sx_pending_rd_state_var_indx : SXIFCCG_DEBUG_REG0_sx_pending_rd_state_var_indx_SIZE;
+ unsigned int always_zero0 : SXIFCCG_DEBUG_REG0_ALWAYS_ZERO0_SIZE;
+ unsigned int sx_pending_rd_req_mask : SXIFCCG_DEBUG_REG0_sx_pending_rd_req_mask_SIZE;
+ unsigned int sx_pending_rd_pci : SXIFCCG_DEBUG_REG0_sx_pending_rd_pci_SIZE;
+ unsigned int sx_pending_rd_aux_inc : SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_inc_SIZE;
+ unsigned int sx_pending_rd_aux_sel : SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_sel_SIZE;
+ } sxifccg_debug_reg0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sxifccg_debug_reg0_t {
+ unsigned int sx_pending_rd_aux_sel : SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_sel_SIZE;
+ unsigned int sx_pending_rd_aux_inc : SXIFCCG_DEBUG_REG0_sx_pending_rd_aux_inc_SIZE;
+ unsigned int sx_pending_rd_pci : SXIFCCG_DEBUG_REG0_sx_pending_rd_pci_SIZE;
+ unsigned int sx_pending_rd_req_mask : SXIFCCG_DEBUG_REG0_sx_pending_rd_req_mask_SIZE;
+ unsigned int always_zero0 : SXIFCCG_DEBUG_REG0_ALWAYS_ZERO0_SIZE;
+ unsigned int sx_pending_rd_state_var_indx : SXIFCCG_DEBUG_REG0_sx_pending_rd_state_var_indx_SIZE;
+ unsigned int always_zero1 : SXIFCCG_DEBUG_REG0_ALWAYS_ZERO1_SIZE;
+ unsigned int point_address : SXIFCCG_DEBUG_REG0_point_address_SIZE;
+ unsigned int always_zero2 : SXIFCCG_DEBUG_REG0_ALWAYS_ZERO2_SIZE;
+ unsigned int position_address : SXIFCCG_DEBUG_REG0_position_address_SIZE;
+ unsigned int nan_kill_flag : SXIFCCG_DEBUG_REG0_nan_kill_flag_SIZE;
+ } sxifccg_debug_reg0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sxifccg_debug_reg0_t f;
+} sxifccg_debug_reg0_u;
+
+
+/*
+ * SXIFCCG_DEBUG_REG1 struct
+ */
+
+#define SXIFCCG_DEBUG_REG1_ALWAYS_ZERO3_SIZE 2
+#define SXIFCCG_DEBUG_REG1_sx_to_pa_empty_SIZE 2
+#define SXIFCCG_DEBUG_REG1_available_positions_SIZE 3
+#define SXIFCCG_DEBUG_REG1_ALWAYS_ZERO2_SIZE 4
+#define SXIFCCG_DEBUG_REG1_sx_pending_advance_SIZE 1
+#define SXIFCCG_DEBUG_REG1_sx_receive_indx_SIZE 3
+#define SXIFCCG_DEBUG_REG1_statevar_bits_sxpa_aux_vector_SIZE 1
+#define SXIFCCG_DEBUG_REG1_ALWAYS_ZERO1_SIZE 4
+#define SXIFCCG_DEBUG_REG1_aux_sel_SIZE 1
+#define SXIFCCG_DEBUG_REG1_ALWAYS_ZERO0_SIZE 2
+#define SXIFCCG_DEBUG_REG1_pasx_req_cnt_SIZE 2
+#define SXIFCCG_DEBUG_REG1_param_cache_base_SIZE 7
+
+#define SXIFCCG_DEBUG_REG1_ALWAYS_ZERO3_SHIFT 0
+#define SXIFCCG_DEBUG_REG1_sx_to_pa_empty_SHIFT 2
+#define SXIFCCG_DEBUG_REG1_available_positions_SHIFT 4
+#define SXIFCCG_DEBUG_REG1_ALWAYS_ZERO2_SHIFT 7
+#define SXIFCCG_DEBUG_REG1_sx_pending_advance_SHIFT 11
+#define SXIFCCG_DEBUG_REG1_sx_receive_indx_SHIFT 12
+#define SXIFCCG_DEBUG_REG1_statevar_bits_sxpa_aux_vector_SHIFT 15
+#define SXIFCCG_DEBUG_REG1_ALWAYS_ZERO1_SHIFT 16
+#define SXIFCCG_DEBUG_REG1_aux_sel_SHIFT 20
+#define SXIFCCG_DEBUG_REG1_ALWAYS_ZERO0_SHIFT 21
+#define SXIFCCG_DEBUG_REG1_pasx_req_cnt_SHIFT 23
+#define SXIFCCG_DEBUG_REG1_param_cache_base_SHIFT 25
+
+#define SXIFCCG_DEBUG_REG1_ALWAYS_ZERO3_MASK 0x00000003
+#define SXIFCCG_DEBUG_REG1_sx_to_pa_empty_MASK 0x0000000c
+#define SXIFCCG_DEBUG_REG1_available_positions_MASK 0x00000070
+#define SXIFCCG_DEBUG_REG1_ALWAYS_ZERO2_MASK 0x00000780
+#define SXIFCCG_DEBUG_REG1_sx_pending_advance_MASK 0x00000800
+#define SXIFCCG_DEBUG_REG1_sx_receive_indx_MASK 0x00007000
+#define SXIFCCG_DEBUG_REG1_statevar_bits_sxpa_aux_vector_MASK 0x00008000
+#define SXIFCCG_DEBUG_REG1_ALWAYS_ZERO1_MASK 0x000f0000
+#define SXIFCCG_DEBUG_REG1_aux_sel_MASK 0x00100000
+#define SXIFCCG_DEBUG_REG1_ALWAYS_ZERO0_MASK 0x00600000
+#define SXIFCCG_DEBUG_REG1_pasx_req_cnt_MASK 0x01800000
+#define SXIFCCG_DEBUG_REG1_param_cache_base_MASK 0xfe000000
+
+#define SXIFCCG_DEBUG_REG1_MASK \
+ (SXIFCCG_DEBUG_REG1_ALWAYS_ZERO3_MASK | \
+ SXIFCCG_DEBUG_REG1_sx_to_pa_empty_MASK | \
+ SXIFCCG_DEBUG_REG1_available_positions_MASK | \
+ SXIFCCG_DEBUG_REG1_ALWAYS_ZERO2_MASK | \
+ SXIFCCG_DEBUG_REG1_sx_pending_advance_MASK | \
+ SXIFCCG_DEBUG_REG1_sx_receive_indx_MASK | \
+ SXIFCCG_DEBUG_REG1_statevar_bits_sxpa_aux_vector_MASK | \
+ SXIFCCG_DEBUG_REG1_ALWAYS_ZERO1_MASK | \
+ SXIFCCG_DEBUG_REG1_aux_sel_MASK | \
+ SXIFCCG_DEBUG_REG1_ALWAYS_ZERO0_MASK | \
+ SXIFCCG_DEBUG_REG1_pasx_req_cnt_MASK | \
+ SXIFCCG_DEBUG_REG1_param_cache_base_MASK)
+
+#define SXIFCCG_DEBUG_REG1(always_zero3, sx_to_pa_empty, available_positions, always_zero2, sx_pending_advance, sx_receive_indx, statevar_bits_sxpa_aux_vector, always_zero1, aux_sel, always_zero0, pasx_req_cnt, param_cache_base) \
+ ((always_zero3 << SXIFCCG_DEBUG_REG1_ALWAYS_ZERO3_SHIFT) | \
+ (sx_to_pa_empty << SXIFCCG_DEBUG_REG1_sx_to_pa_empty_SHIFT) | \
+ (available_positions << SXIFCCG_DEBUG_REG1_available_positions_SHIFT) | \
+ (always_zero2 << SXIFCCG_DEBUG_REG1_ALWAYS_ZERO2_SHIFT) | \
+ (sx_pending_advance << SXIFCCG_DEBUG_REG1_sx_pending_advance_SHIFT) | \
+ (sx_receive_indx << SXIFCCG_DEBUG_REG1_sx_receive_indx_SHIFT) | \
+ (statevar_bits_sxpa_aux_vector << SXIFCCG_DEBUG_REG1_statevar_bits_sxpa_aux_vector_SHIFT) | \
+ (always_zero1 << SXIFCCG_DEBUG_REG1_ALWAYS_ZERO1_SHIFT) | \
+ (aux_sel << SXIFCCG_DEBUG_REG1_aux_sel_SHIFT) | \
+ (always_zero0 << SXIFCCG_DEBUG_REG1_ALWAYS_ZERO0_SHIFT) | \
+ (pasx_req_cnt << SXIFCCG_DEBUG_REG1_pasx_req_cnt_SHIFT) | \
+ (param_cache_base << SXIFCCG_DEBUG_REG1_param_cache_base_SHIFT))
+
+#define SXIFCCG_DEBUG_REG1_GET_ALWAYS_ZERO3(sxifccg_debug_reg1) \
+ ((sxifccg_debug_reg1 & SXIFCCG_DEBUG_REG1_ALWAYS_ZERO3_MASK) >> SXIFCCG_DEBUG_REG1_ALWAYS_ZERO3_SHIFT)
+#define SXIFCCG_DEBUG_REG1_GET_sx_to_pa_empty(sxifccg_debug_reg1) \
+ ((sxifccg_debug_reg1 & SXIFCCG_DEBUG_REG1_sx_to_pa_empty_MASK) >> SXIFCCG_DEBUG_REG1_sx_to_pa_empty_SHIFT)
+#define SXIFCCG_DEBUG_REG1_GET_available_positions(sxifccg_debug_reg1) \
+ ((sxifccg_debug_reg1 & SXIFCCG_DEBUG_REG1_available_positions_MASK) >> SXIFCCG_DEBUG_REG1_available_positions_SHIFT)
+#define SXIFCCG_DEBUG_REG1_GET_ALWAYS_ZERO2(sxifccg_debug_reg1) \
+ ((sxifccg_debug_reg1 & SXIFCCG_DEBUG_REG1_ALWAYS_ZERO2_MASK) >> SXIFCCG_DEBUG_REG1_ALWAYS_ZERO2_SHIFT)
+#define SXIFCCG_DEBUG_REG1_GET_sx_pending_advance(sxifccg_debug_reg1) \
+ ((sxifccg_debug_reg1 & SXIFCCG_DEBUG_REG1_sx_pending_advance_MASK) >> SXIFCCG_DEBUG_REG1_sx_pending_advance_SHIFT)
+#define SXIFCCG_DEBUG_REG1_GET_sx_receive_indx(sxifccg_debug_reg1) \
+ ((sxifccg_debug_reg1 & SXIFCCG_DEBUG_REG1_sx_receive_indx_MASK) >> SXIFCCG_DEBUG_REG1_sx_receive_indx_SHIFT)
+#define SXIFCCG_DEBUG_REG1_GET_statevar_bits_sxpa_aux_vector(sxifccg_debug_reg1) \
+ ((sxifccg_debug_reg1 & SXIFCCG_DEBUG_REG1_statevar_bits_sxpa_aux_vector_MASK) >> SXIFCCG_DEBUG_REG1_statevar_bits_sxpa_aux_vector_SHIFT)
+#define SXIFCCG_DEBUG_REG1_GET_ALWAYS_ZERO1(sxifccg_debug_reg1) \
+ ((sxifccg_debug_reg1 & SXIFCCG_DEBUG_REG1_ALWAYS_ZERO1_MASK) >> SXIFCCG_DEBUG_REG1_ALWAYS_ZERO1_SHIFT)
+#define SXIFCCG_DEBUG_REG1_GET_aux_sel(sxifccg_debug_reg1) \
+ ((sxifccg_debug_reg1 & SXIFCCG_DEBUG_REG1_aux_sel_MASK) >> SXIFCCG_DEBUG_REG1_aux_sel_SHIFT)
+#define SXIFCCG_DEBUG_REG1_GET_ALWAYS_ZERO0(sxifccg_debug_reg1) \
+ ((sxifccg_debug_reg1 & SXIFCCG_DEBUG_REG1_ALWAYS_ZERO0_MASK) >> SXIFCCG_DEBUG_REG1_ALWAYS_ZERO0_SHIFT)
+#define SXIFCCG_DEBUG_REG1_GET_pasx_req_cnt(sxifccg_debug_reg1) \
+ ((sxifccg_debug_reg1 & SXIFCCG_DEBUG_REG1_pasx_req_cnt_MASK) >> SXIFCCG_DEBUG_REG1_pasx_req_cnt_SHIFT)
+#define SXIFCCG_DEBUG_REG1_GET_param_cache_base(sxifccg_debug_reg1) \
+ ((sxifccg_debug_reg1 & SXIFCCG_DEBUG_REG1_param_cache_base_MASK) >> SXIFCCG_DEBUG_REG1_param_cache_base_SHIFT)
+
+#define SXIFCCG_DEBUG_REG1_SET_ALWAYS_ZERO3(sxifccg_debug_reg1_reg, always_zero3) \
+ sxifccg_debug_reg1_reg = (sxifccg_debug_reg1_reg & ~SXIFCCG_DEBUG_REG1_ALWAYS_ZERO3_MASK) | (always_zero3 << SXIFCCG_DEBUG_REG1_ALWAYS_ZERO3_SHIFT)
+#define SXIFCCG_DEBUG_REG1_SET_sx_to_pa_empty(sxifccg_debug_reg1_reg, sx_to_pa_empty) \
+ sxifccg_debug_reg1_reg = (sxifccg_debug_reg1_reg & ~SXIFCCG_DEBUG_REG1_sx_to_pa_empty_MASK) | (sx_to_pa_empty << SXIFCCG_DEBUG_REG1_sx_to_pa_empty_SHIFT)
+#define SXIFCCG_DEBUG_REG1_SET_available_positions(sxifccg_debug_reg1_reg, available_positions) \
+ sxifccg_debug_reg1_reg = (sxifccg_debug_reg1_reg & ~SXIFCCG_DEBUG_REG1_available_positions_MASK) | (available_positions << SXIFCCG_DEBUG_REG1_available_positions_SHIFT)
+#define SXIFCCG_DEBUG_REG1_SET_ALWAYS_ZERO2(sxifccg_debug_reg1_reg, always_zero2) \
+ sxifccg_debug_reg1_reg = (sxifccg_debug_reg1_reg & ~SXIFCCG_DEBUG_REG1_ALWAYS_ZERO2_MASK) | (always_zero2 << SXIFCCG_DEBUG_REG1_ALWAYS_ZERO2_SHIFT)
+#define SXIFCCG_DEBUG_REG1_SET_sx_pending_advance(sxifccg_debug_reg1_reg, sx_pending_advance) \
+ sxifccg_debug_reg1_reg = (sxifccg_debug_reg1_reg & ~SXIFCCG_DEBUG_REG1_sx_pending_advance_MASK) | (sx_pending_advance << SXIFCCG_DEBUG_REG1_sx_pending_advance_SHIFT)
+#define SXIFCCG_DEBUG_REG1_SET_sx_receive_indx(sxifccg_debug_reg1_reg, sx_receive_indx) \
+ sxifccg_debug_reg1_reg = (sxifccg_debug_reg1_reg & ~SXIFCCG_DEBUG_REG1_sx_receive_indx_MASK) | (sx_receive_indx << SXIFCCG_DEBUG_REG1_sx_receive_indx_SHIFT)
+#define SXIFCCG_DEBUG_REG1_SET_statevar_bits_sxpa_aux_vector(sxifccg_debug_reg1_reg, statevar_bits_sxpa_aux_vector) \
+ sxifccg_debug_reg1_reg = (sxifccg_debug_reg1_reg & ~SXIFCCG_DEBUG_REG1_statevar_bits_sxpa_aux_vector_MASK) | (statevar_bits_sxpa_aux_vector << SXIFCCG_DEBUG_REG1_statevar_bits_sxpa_aux_vector_SHIFT)
+#define SXIFCCG_DEBUG_REG1_SET_ALWAYS_ZERO1(sxifccg_debug_reg1_reg, always_zero1) \
+ sxifccg_debug_reg1_reg = (sxifccg_debug_reg1_reg & ~SXIFCCG_DEBUG_REG1_ALWAYS_ZERO1_MASK) | (always_zero1 << SXIFCCG_DEBUG_REG1_ALWAYS_ZERO1_SHIFT)
+#define SXIFCCG_DEBUG_REG1_SET_aux_sel(sxifccg_debug_reg1_reg, aux_sel) \
+ sxifccg_debug_reg1_reg = (sxifccg_debug_reg1_reg & ~SXIFCCG_DEBUG_REG1_aux_sel_MASK) | (aux_sel << SXIFCCG_DEBUG_REG1_aux_sel_SHIFT)
+#define SXIFCCG_DEBUG_REG1_SET_ALWAYS_ZERO0(sxifccg_debug_reg1_reg, always_zero0) \
+ sxifccg_debug_reg1_reg = (sxifccg_debug_reg1_reg & ~SXIFCCG_DEBUG_REG1_ALWAYS_ZERO0_MASK) | (always_zero0 << SXIFCCG_DEBUG_REG1_ALWAYS_ZERO0_SHIFT)
+#define SXIFCCG_DEBUG_REG1_SET_pasx_req_cnt(sxifccg_debug_reg1_reg, pasx_req_cnt) \
+ sxifccg_debug_reg1_reg = (sxifccg_debug_reg1_reg & ~SXIFCCG_DEBUG_REG1_pasx_req_cnt_MASK) | (pasx_req_cnt << SXIFCCG_DEBUG_REG1_pasx_req_cnt_SHIFT)
+#define SXIFCCG_DEBUG_REG1_SET_param_cache_base(sxifccg_debug_reg1_reg, param_cache_base) \
+ sxifccg_debug_reg1_reg = (sxifccg_debug_reg1_reg & ~SXIFCCG_DEBUG_REG1_param_cache_base_MASK) | (param_cache_base << SXIFCCG_DEBUG_REG1_param_cache_base_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sxifccg_debug_reg1_t {
+ unsigned int always_zero3 : SXIFCCG_DEBUG_REG1_ALWAYS_ZERO3_SIZE;
+ unsigned int sx_to_pa_empty : SXIFCCG_DEBUG_REG1_sx_to_pa_empty_SIZE;
+ unsigned int available_positions : SXIFCCG_DEBUG_REG1_available_positions_SIZE;
+ unsigned int always_zero2 : SXIFCCG_DEBUG_REG1_ALWAYS_ZERO2_SIZE;
+ unsigned int sx_pending_advance : SXIFCCG_DEBUG_REG1_sx_pending_advance_SIZE;
+ unsigned int sx_receive_indx : SXIFCCG_DEBUG_REG1_sx_receive_indx_SIZE;
+ unsigned int statevar_bits_sxpa_aux_vector : SXIFCCG_DEBUG_REG1_statevar_bits_sxpa_aux_vector_SIZE;
+ unsigned int always_zero1 : SXIFCCG_DEBUG_REG1_ALWAYS_ZERO1_SIZE;
+ unsigned int aux_sel : SXIFCCG_DEBUG_REG1_aux_sel_SIZE;
+ unsigned int always_zero0 : SXIFCCG_DEBUG_REG1_ALWAYS_ZERO0_SIZE;
+ unsigned int pasx_req_cnt : SXIFCCG_DEBUG_REG1_pasx_req_cnt_SIZE;
+ unsigned int param_cache_base : SXIFCCG_DEBUG_REG1_param_cache_base_SIZE;
+ } sxifccg_debug_reg1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sxifccg_debug_reg1_t {
+ unsigned int param_cache_base : SXIFCCG_DEBUG_REG1_param_cache_base_SIZE;
+ unsigned int pasx_req_cnt : SXIFCCG_DEBUG_REG1_pasx_req_cnt_SIZE;
+ unsigned int always_zero0 : SXIFCCG_DEBUG_REG1_ALWAYS_ZERO0_SIZE;
+ unsigned int aux_sel : SXIFCCG_DEBUG_REG1_aux_sel_SIZE;
+ unsigned int always_zero1 : SXIFCCG_DEBUG_REG1_ALWAYS_ZERO1_SIZE;
+ unsigned int statevar_bits_sxpa_aux_vector : SXIFCCG_DEBUG_REG1_statevar_bits_sxpa_aux_vector_SIZE;
+ unsigned int sx_receive_indx : SXIFCCG_DEBUG_REG1_sx_receive_indx_SIZE;
+ unsigned int sx_pending_advance : SXIFCCG_DEBUG_REG1_sx_pending_advance_SIZE;
+ unsigned int always_zero2 : SXIFCCG_DEBUG_REG1_ALWAYS_ZERO2_SIZE;
+ unsigned int available_positions : SXIFCCG_DEBUG_REG1_available_positions_SIZE;
+ unsigned int sx_to_pa_empty : SXIFCCG_DEBUG_REG1_sx_to_pa_empty_SIZE;
+ unsigned int always_zero3 : SXIFCCG_DEBUG_REG1_ALWAYS_ZERO3_SIZE;
+ } sxifccg_debug_reg1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sxifccg_debug_reg1_t f;
+} sxifccg_debug_reg1_u;
+
+
+/*
+ * SXIFCCG_DEBUG_REG2 struct
+ */
+
+#define SXIFCCG_DEBUG_REG2_sx_sent_SIZE 1
+#define SXIFCCG_DEBUG_REG2_ALWAYS_ZERO3_SIZE 1
+#define SXIFCCG_DEBUG_REG2_sx_aux_SIZE 1
+#define SXIFCCG_DEBUG_REG2_sx_request_indx_SIZE 6
+#define SXIFCCG_DEBUG_REG2_req_active_verts_SIZE 7
+#define SXIFCCG_DEBUG_REG2_ALWAYS_ZERO2_SIZE 1
+#define SXIFCCG_DEBUG_REG2_vgt_to_ccgen_state_var_indx_SIZE 1
+#define SXIFCCG_DEBUG_REG2_ALWAYS_ZERO1_SIZE 2
+#define SXIFCCG_DEBUG_REG2_vgt_to_ccgen_active_verts_SIZE 2
+#define SXIFCCG_DEBUG_REG2_ALWAYS_ZERO0_SIZE 4
+#define SXIFCCG_DEBUG_REG2_req_active_verts_loaded_SIZE 1
+#define SXIFCCG_DEBUG_REG2_sx_pending_fifo_empty_SIZE 1
+#define SXIFCCG_DEBUG_REG2_sx_pending_fifo_full_SIZE 1
+#define SXIFCCG_DEBUG_REG2_sx_pending_fifo_contents_SIZE 3
+
+#define SXIFCCG_DEBUG_REG2_sx_sent_SHIFT 0
+#define SXIFCCG_DEBUG_REG2_ALWAYS_ZERO3_SHIFT 1
+#define SXIFCCG_DEBUG_REG2_sx_aux_SHIFT 2
+#define SXIFCCG_DEBUG_REG2_sx_request_indx_SHIFT 3
+#define SXIFCCG_DEBUG_REG2_req_active_verts_SHIFT 9
+#define SXIFCCG_DEBUG_REG2_ALWAYS_ZERO2_SHIFT 16
+#define SXIFCCG_DEBUG_REG2_vgt_to_ccgen_state_var_indx_SHIFT 17
+#define SXIFCCG_DEBUG_REG2_ALWAYS_ZERO1_SHIFT 18
+#define SXIFCCG_DEBUG_REG2_vgt_to_ccgen_active_verts_SHIFT 20
+#define SXIFCCG_DEBUG_REG2_ALWAYS_ZERO0_SHIFT 22
+#define SXIFCCG_DEBUG_REG2_req_active_verts_loaded_SHIFT 26
+#define SXIFCCG_DEBUG_REG2_sx_pending_fifo_empty_SHIFT 27
+#define SXIFCCG_DEBUG_REG2_sx_pending_fifo_full_SHIFT 28
+#define SXIFCCG_DEBUG_REG2_sx_pending_fifo_contents_SHIFT 29
+
+#define SXIFCCG_DEBUG_REG2_sx_sent_MASK 0x00000001
+#define SXIFCCG_DEBUG_REG2_ALWAYS_ZERO3_MASK 0x00000002
+#define SXIFCCG_DEBUG_REG2_sx_aux_MASK 0x00000004
+#define SXIFCCG_DEBUG_REG2_sx_request_indx_MASK 0x000001f8
+#define SXIFCCG_DEBUG_REG2_req_active_verts_MASK 0x0000fe00
+#define SXIFCCG_DEBUG_REG2_ALWAYS_ZERO2_MASK 0x00010000
+#define SXIFCCG_DEBUG_REG2_vgt_to_ccgen_state_var_indx_MASK 0x00020000
+#define SXIFCCG_DEBUG_REG2_ALWAYS_ZERO1_MASK 0x000c0000
+#define SXIFCCG_DEBUG_REG2_vgt_to_ccgen_active_verts_MASK 0x00300000
+#define SXIFCCG_DEBUG_REG2_ALWAYS_ZERO0_MASK 0x03c00000
+#define SXIFCCG_DEBUG_REG2_req_active_verts_loaded_MASK 0x04000000
+#define SXIFCCG_DEBUG_REG2_sx_pending_fifo_empty_MASK 0x08000000
+#define SXIFCCG_DEBUG_REG2_sx_pending_fifo_full_MASK 0x10000000
+#define SXIFCCG_DEBUG_REG2_sx_pending_fifo_contents_MASK 0xe0000000
+
+#define SXIFCCG_DEBUG_REG2_MASK \
+ (SXIFCCG_DEBUG_REG2_sx_sent_MASK | \
+ SXIFCCG_DEBUG_REG2_ALWAYS_ZERO3_MASK | \
+ SXIFCCG_DEBUG_REG2_sx_aux_MASK | \
+ SXIFCCG_DEBUG_REG2_sx_request_indx_MASK | \
+ SXIFCCG_DEBUG_REG2_req_active_verts_MASK | \
+ SXIFCCG_DEBUG_REG2_ALWAYS_ZERO2_MASK | \
+ SXIFCCG_DEBUG_REG2_vgt_to_ccgen_state_var_indx_MASK | \
+ SXIFCCG_DEBUG_REG2_ALWAYS_ZERO1_MASK | \
+ SXIFCCG_DEBUG_REG2_vgt_to_ccgen_active_verts_MASK | \
+ SXIFCCG_DEBUG_REG2_ALWAYS_ZERO0_MASK | \
+ SXIFCCG_DEBUG_REG2_req_active_verts_loaded_MASK | \
+ SXIFCCG_DEBUG_REG2_sx_pending_fifo_empty_MASK | \
+ SXIFCCG_DEBUG_REG2_sx_pending_fifo_full_MASK | \
+ SXIFCCG_DEBUG_REG2_sx_pending_fifo_contents_MASK)
+
+#define SXIFCCG_DEBUG_REG2(sx_sent, always_zero3, sx_aux, sx_request_indx, req_active_verts, always_zero2, vgt_to_ccgen_state_var_indx, always_zero1, vgt_to_ccgen_active_verts, always_zero0, req_active_verts_loaded, sx_pending_fifo_empty, sx_pending_fifo_full, sx_pending_fifo_contents) \
+ ((sx_sent << SXIFCCG_DEBUG_REG2_sx_sent_SHIFT) | \
+ (always_zero3 << SXIFCCG_DEBUG_REG2_ALWAYS_ZERO3_SHIFT) | \
+ (sx_aux << SXIFCCG_DEBUG_REG2_sx_aux_SHIFT) | \
+ (sx_request_indx << SXIFCCG_DEBUG_REG2_sx_request_indx_SHIFT) | \
+ (req_active_verts << SXIFCCG_DEBUG_REG2_req_active_verts_SHIFT) | \
+ (always_zero2 << SXIFCCG_DEBUG_REG2_ALWAYS_ZERO2_SHIFT) | \
+ (vgt_to_ccgen_state_var_indx << SXIFCCG_DEBUG_REG2_vgt_to_ccgen_state_var_indx_SHIFT) | \
+ (always_zero1 << SXIFCCG_DEBUG_REG2_ALWAYS_ZERO1_SHIFT) | \
+ (vgt_to_ccgen_active_verts << SXIFCCG_DEBUG_REG2_vgt_to_ccgen_active_verts_SHIFT) | \
+ (always_zero0 << SXIFCCG_DEBUG_REG2_ALWAYS_ZERO0_SHIFT) | \
+ (req_active_verts_loaded << SXIFCCG_DEBUG_REG2_req_active_verts_loaded_SHIFT) | \
+ (sx_pending_fifo_empty << SXIFCCG_DEBUG_REG2_sx_pending_fifo_empty_SHIFT) | \
+ (sx_pending_fifo_full << SXIFCCG_DEBUG_REG2_sx_pending_fifo_full_SHIFT) | \
+ (sx_pending_fifo_contents << SXIFCCG_DEBUG_REG2_sx_pending_fifo_contents_SHIFT))
+
+#define SXIFCCG_DEBUG_REG2_GET_sx_sent(sxifccg_debug_reg2) \
+ ((sxifccg_debug_reg2 & SXIFCCG_DEBUG_REG2_sx_sent_MASK) >> SXIFCCG_DEBUG_REG2_sx_sent_SHIFT)
+#define SXIFCCG_DEBUG_REG2_GET_ALWAYS_ZERO3(sxifccg_debug_reg2) \
+ ((sxifccg_debug_reg2 & SXIFCCG_DEBUG_REG2_ALWAYS_ZERO3_MASK) >> SXIFCCG_DEBUG_REG2_ALWAYS_ZERO3_SHIFT)
+#define SXIFCCG_DEBUG_REG2_GET_sx_aux(sxifccg_debug_reg2) \
+ ((sxifccg_debug_reg2 & SXIFCCG_DEBUG_REG2_sx_aux_MASK) >> SXIFCCG_DEBUG_REG2_sx_aux_SHIFT)
+#define SXIFCCG_DEBUG_REG2_GET_sx_request_indx(sxifccg_debug_reg2) \
+ ((sxifccg_debug_reg2 & SXIFCCG_DEBUG_REG2_sx_request_indx_MASK) >> SXIFCCG_DEBUG_REG2_sx_request_indx_SHIFT)
+#define SXIFCCG_DEBUG_REG2_GET_req_active_verts(sxifccg_debug_reg2) \
+ ((sxifccg_debug_reg2 & SXIFCCG_DEBUG_REG2_req_active_verts_MASK) >> SXIFCCG_DEBUG_REG2_req_active_verts_SHIFT)
+#define SXIFCCG_DEBUG_REG2_GET_ALWAYS_ZERO2(sxifccg_debug_reg2) \
+ ((sxifccg_debug_reg2 & SXIFCCG_DEBUG_REG2_ALWAYS_ZERO2_MASK) >> SXIFCCG_DEBUG_REG2_ALWAYS_ZERO2_SHIFT)
+#define SXIFCCG_DEBUG_REG2_GET_vgt_to_ccgen_state_var_indx(sxifccg_debug_reg2) \
+ ((sxifccg_debug_reg2 & SXIFCCG_DEBUG_REG2_vgt_to_ccgen_state_var_indx_MASK) >> SXIFCCG_DEBUG_REG2_vgt_to_ccgen_state_var_indx_SHIFT)
+#define SXIFCCG_DEBUG_REG2_GET_ALWAYS_ZERO1(sxifccg_debug_reg2) \
+ ((sxifccg_debug_reg2 & SXIFCCG_DEBUG_REG2_ALWAYS_ZERO1_MASK) >> SXIFCCG_DEBUG_REG2_ALWAYS_ZERO1_SHIFT)
+#define SXIFCCG_DEBUG_REG2_GET_vgt_to_ccgen_active_verts(sxifccg_debug_reg2) \
+ ((sxifccg_debug_reg2 & SXIFCCG_DEBUG_REG2_vgt_to_ccgen_active_verts_MASK) >> SXIFCCG_DEBUG_REG2_vgt_to_ccgen_active_verts_SHIFT)
+#define SXIFCCG_DEBUG_REG2_GET_ALWAYS_ZERO0(sxifccg_debug_reg2) \
+ ((sxifccg_debug_reg2 & SXIFCCG_DEBUG_REG2_ALWAYS_ZERO0_MASK) >> SXIFCCG_DEBUG_REG2_ALWAYS_ZERO0_SHIFT)
+#define SXIFCCG_DEBUG_REG2_GET_req_active_verts_loaded(sxifccg_debug_reg2) \
+ ((sxifccg_debug_reg2 & SXIFCCG_DEBUG_REG2_req_active_verts_loaded_MASK) >> SXIFCCG_DEBUG_REG2_req_active_verts_loaded_SHIFT)
+#define SXIFCCG_DEBUG_REG2_GET_sx_pending_fifo_empty(sxifccg_debug_reg2) \
+ ((sxifccg_debug_reg2 & SXIFCCG_DEBUG_REG2_sx_pending_fifo_empty_MASK) >> SXIFCCG_DEBUG_REG2_sx_pending_fifo_empty_SHIFT)
+#define SXIFCCG_DEBUG_REG2_GET_sx_pending_fifo_full(sxifccg_debug_reg2) \
+ ((sxifccg_debug_reg2 & SXIFCCG_DEBUG_REG2_sx_pending_fifo_full_MASK) >> SXIFCCG_DEBUG_REG2_sx_pending_fifo_full_SHIFT)
+#define SXIFCCG_DEBUG_REG2_GET_sx_pending_fifo_contents(sxifccg_debug_reg2) \
+ ((sxifccg_debug_reg2 & SXIFCCG_DEBUG_REG2_sx_pending_fifo_contents_MASK) >> SXIFCCG_DEBUG_REG2_sx_pending_fifo_contents_SHIFT)
+
+#define SXIFCCG_DEBUG_REG2_SET_sx_sent(sxifccg_debug_reg2_reg, sx_sent) \
+ sxifccg_debug_reg2_reg = (sxifccg_debug_reg2_reg & ~SXIFCCG_DEBUG_REG2_sx_sent_MASK) | (sx_sent << SXIFCCG_DEBUG_REG2_sx_sent_SHIFT)
+#define SXIFCCG_DEBUG_REG2_SET_ALWAYS_ZERO3(sxifccg_debug_reg2_reg, always_zero3) \
+ sxifccg_debug_reg2_reg = (sxifccg_debug_reg2_reg & ~SXIFCCG_DEBUG_REG2_ALWAYS_ZERO3_MASK) | (always_zero3 << SXIFCCG_DEBUG_REG2_ALWAYS_ZERO3_SHIFT)
+#define SXIFCCG_DEBUG_REG2_SET_sx_aux(sxifccg_debug_reg2_reg, sx_aux) \
+ sxifccg_debug_reg2_reg = (sxifccg_debug_reg2_reg & ~SXIFCCG_DEBUG_REG2_sx_aux_MASK) | (sx_aux << SXIFCCG_DEBUG_REG2_sx_aux_SHIFT)
+#define SXIFCCG_DEBUG_REG2_SET_sx_request_indx(sxifccg_debug_reg2_reg, sx_request_indx) \
+ sxifccg_debug_reg2_reg = (sxifccg_debug_reg2_reg & ~SXIFCCG_DEBUG_REG2_sx_request_indx_MASK) | (sx_request_indx << SXIFCCG_DEBUG_REG2_sx_request_indx_SHIFT)
+#define SXIFCCG_DEBUG_REG2_SET_req_active_verts(sxifccg_debug_reg2_reg, req_active_verts) \
+ sxifccg_debug_reg2_reg = (sxifccg_debug_reg2_reg & ~SXIFCCG_DEBUG_REG2_req_active_verts_MASK) | (req_active_verts << SXIFCCG_DEBUG_REG2_req_active_verts_SHIFT)
+#define SXIFCCG_DEBUG_REG2_SET_ALWAYS_ZERO2(sxifccg_debug_reg2_reg, always_zero2) \
+ sxifccg_debug_reg2_reg = (sxifccg_debug_reg2_reg & ~SXIFCCG_DEBUG_REG2_ALWAYS_ZERO2_MASK) | (always_zero2 << SXIFCCG_DEBUG_REG2_ALWAYS_ZERO2_SHIFT)
+#define SXIFCCG_DEBUG_REG2_SET_vgt_to_ccgen_state_var_indx(sxifccg_debug_reg2_reg, vgt_to_ccgen_state_var_indx) \
+ sxifccg_debug_reg2_reg = (sxifccg_debug_reg2_reg & ~SXIFCCG_DEBUG_REG2_vgt_to_ccgen_state_var_indx_MASK) | (vgt_to_ccgen_state_var_indx << SXIFCCG_DEBUG_REG2_vgt_to_ccgen_state_var_indx_SHIFT)
+#define SXIFCCG_DEBUG_REG2_SET_ALWAYS_ZERO1(sxifccg_debug_reg2_reg, always_zero1) \
+ sxifccg_debug_reg2_reg = (sxifccg_debug_reg2_reg & ~SXIFCCG_DEBUG_REG2_ALWAYS_ZERO1_MASK) | (always_zero1 << SXIFCCG_DEBUG_REG2_ALWAYS_ZERO1_SHIFT)
+#define SXIFCCG_DEBUG_REG2_SET_vgt_to_ccgen_active_verts(sxifccg_debug_reg2_reg, vgt_to_ccgen_active_verts) \
+ sxifccg_debug_reg2_reg = (sxifccg_debug_reg2_reg & ~SXIFCCG_DEBUG_REG2_vgt_to_ccgen_active_verts_MASK) | (vgt_to_ccgen_active_verts << SXIFCCG_DEBUG_REG2_vgt_to_ccgen_active_verts_SHIFT)
+#define SXIFCCG_DEBUG_REG2_SET_ALWAYS_ZERO0(sxifccg_debug_reg2_reg, always_zero0) \
+ sxifccg_debug_reg2_reg = (sxifccg_debug_reg2_reg & ~SXIFCCG_DEBUG_REG2_ALWAYS_ZERO0_MASK) | (always_zero0 << SXIFCCG_DEBUG_REG2_ALWAYS_ZERO0_SHIFT)
+#define SXIFCCG_DEBUG_REG2_SET_req_active_verts_loaded(sxifccg_debug_reg2_reg, req_active_verts_loaded) \
+ sxifccg_debug_reg2_reg = (sxifccg_debug_reg2_reg & ~SXIFCCG_DEBUG_REG2_req_active_verts_loaded_MASK) | (req_active_verts_loaded << SXIFCCG_DEBUG_REG2_req_active_verts_loaded_SHIFT)
+#define SXIFCCG_DEBUG_REG2_SET_sx_pending_fifo_empty(sxifccg_debug_reg2_reg, sx_pending_fifo_empty) \
+ sxifccg_debug_reg2_reg = (sxifccg_debug_reg2_reg & ~SXIFCCG_DEBUG_REG2_sx_pending_fifo_empty_MASK) | (sx_pending_fifo_empty << SXIFCCG_DEBUG_REG2_sx_pending_fifo_empty_SHIFT)
+#define SXIFCCG_DEBUG_REG2_SET_sx_pending_fifo_full(sxifccg_debug_reg2_reg, sx_pending_fifo_full) \
+ sxifccg_debug_reg2_reg = (sxifccg_debug_reg2_reg & ~SXIFCCG_DEBUG_REG2_sx_pending_fifo_full_MASK) | (sx_pending_fifo_full << SXIFCCG_DEBUG_REG2_sx_pending_fifo_full_SHIFT)
+#define SXIFCCG_DEBUG_REG2_SET_sx_pending_fifo_contents(sxifccg_debug_reg2_reg, sx_pending_fifo_contents) \
+ sxifccg_debug_reg2_reg = (sxifccg_debug_reg2_reg & ~SXIFCCG_DEBUG_REG2_sx_pending_fifo_contents_MASK) | (sx_pending_fifo_contents << SXIFCCG_DEBUG_REG2_sx_pending_fifo_contents_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sxifccg_debug_reg2_t {
+ unsigned int sx_sent : SXIFCCG_DEBUG_REG2_sx_sent_SIZE;
+ unsigned int always_zero3 : SXIFCCG_DEBUG_REG2_ALWAYS_ZERO3_SIZE;
+ unsigned int sx_aux : SXIFCCG_DEBUG_REG2_sx_aux_SIZE;
+ unsigned int sx_request_indx : SXIFCCG_DEBUG_REG2_sx_request_indx_SIZE;
+ unsigned int req_active_verts : SXIFCCG_DEBUG_REG2_req_active_verts_SIZE;
+ unsigned int always_zero2 : SXIFCCG_DEBUG_REG2_ALWAYS_ZERO2_SIZE;
+ unsigned int vgt_to_ccgen_state_var_indx : SXIFCCG_DEBUG_REG2_vgt_to_ccgen_state_var_indx_SIZE;
+ unsigned int always_zero1 : SXIFCCG_DEBUG_REG2_ALWAYS_ZERO1_SIZE;
+ unsigned int vgt_to_ccgen_active_verts : SXIFCCG_DEBUG_REG2_vgt_to_ccgen_active_verts_SIZE;
+ unsigned int always_zero0 : SXIFCCG_DEBUG_REG2_ALWAYS_ZERO0_SIZE;
+ unsigned int req_active_verts_loaded : SXIFCCG_DEBUG_REG2_req_active_verts_loaded_SIZE;
+ unsigned int sx_pending_fifo_empty : SXIFCCG_DEBUG_REG2_sx_pending_fifo_empty_SIZE;
+ unsigned int sx_pending_fifo_full : SXIFCCG_DEBUG_REG2_sx_pending_fifo_full_SIZE;
+ unsigned int sx_pending_fifo_contents : SXIFCCG_DEBUG_REG2_sx_pending_fifo_contents_SIZE;
+ } sxifccg_debug_reg2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sxifccg_debug_reg2_t {
+ unsigned int sx_pending_fifo_contents : SXIFCCG_DEBUG_REG2_sx_pending_fifo_contents_SIZE;
+ unsigned int sx_pending_fifo_full : SXIFCCG_DEBUG_REG2_sx_pending_fifo_full_SIZE;
+ unsigned int sx_pending_fifo_empty : SXIFCCG_DEBUG_REG2_sx_pending_fifo_empty_SIZE;
+ unsigned int req_active_verts_loaded : SXIFCCG_DEBUG_REG2_req_active_verts_loaded_SIZE;
+ unsigned int always_zero0 : SXIFCCG_DEBUG_REG2_ALWAYS_ZERO0_SIZE;
+ unsigned int vgt_to_ccgen_active_verts : SXIFCCG_DEBUG_REG2_vgt_to_ccgen_active_verts_SIZE;
+ unsigned int always_zero1 : SXIFCCG_DEBUG_REG2_ALWAYS_ZERO1_SIZE;
+ unsigned int vgt_to_ccgen_state_var_indx : SXIFCCG_DEBUG_REG2_vgt_to_ccgen_state_var_indx_SIZE;
+ unsigned int always_zero2 : SXIFCCG_DEBUG_REG2_ALWAYS_ZERO2_SIZE;
+ unsigned int req_active_verts : SXIFCCG_DEBUG_REG2_req_active_verts_SIZE;
+ unsigned int sx_request_indx : SXIFCCG_DEBUG_REG2_sx_request_indx_SIZE;
+ unsigned int sx_aux : SXIFCCG_DEBUG_REG2_sx_aux_SIZE;
+ unsigned int always_zero3 : SXIFCCG_DEBUG_REG2_ALWAYS_ZERO3_SIZE;
+ unsigned int sx_sent : SXIFCCG_DEBUG_REG2_sx_sent_SIZE;
+ } sxifccg_debug_reg2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sxifccg_debug_reg2_t f;
+} sxifccg_debug_reg2_u;
+
+
+/*
+ * SXIFCCG_DEBUG_REG3 struct
+ */
+
+#define SXIFCCG_DEBUG_REG3_vertex_fifo_entriesavailable_SIZE 4
+#define SXIFCCG_DEBUG_REG3_ALWAYS_ZERO3_SIZE 1
+#define SXIFCCG_DEBUG_REG3_available_positions_SIZE 3
+#define SXIFCCG_DEBUG_REG3_ALWAYS_ZERO2_SIZE 4
+#define SXIFCCG_DEBUG_REG3_current_state_SIZE 2
+#define SXIFCCG_DEBUG_REG3_vertex_fifo_empty_SIZE 1
+#define SXIFCCG_DEBUG_REG3_vertex_fifo_full_SIZE 1
+#define SXIFCCG_DEBUG_REG3_ALWAYS_ZERO1_SIZE 2
+#define SXIFCCG_DEBUG_REG3_sx0_receive_fifo_empty_SIZE 1
+#define SXIFCCG_DEBUG_REG3_sx0_receive_fifo_full_SIZE 1
+#define SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_empty_SIZE 1
+#define SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_full_SIZE 1
+#define SXIFCCG_DEBUG_REG3_ALWAYS_ZERO0_SIZE 10
+
+#define SXIFCCG_DEBUG_REG3_vertex_fifo_entriesavailable_SHIFT 0
+#define SXIFCCG_DEBUG_REG3_ALWAYS_ZERO3_SHIFT 4
+#define SXIFCCG_DEBUG_REG3_available_positions_SHIFT 5
+#define SXIFCCG_DEBUG_REG3_ALWAYS_ZERO2_SHIFT 8
+#define SXIFCCG_DEBUG_REG3_current_state_SHIFT 12
+#define SXIFCCG_DEBUG_REG3_vertex_fifo_empty_SHIFT 14
+#define SXIFCCG_DEBUG_REG3_vertex_fifo_full_SHIFT 15
+#define SXIFCCG_DEBUG_REG3_ALWAYS_ZERO1_SHIFT 16
+#define SXIFCCG_DEBUG_REG3_sx0_receive_fifo_empty_SHIFT 18
+#define SXIFCCG_DEBUG_REG3_sx0_receive_fifo_full_SHIFT 19
+#define SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_empty_SHIFT 20
+#define SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_full_SHIFT 21
+#define SXIFCCG_DEBUG_REG3_ALWAYS_ZERO0_SHIFT 22
+
+#define SXIFCCG_DEBUG_REG3_vertex_fifo_entriesavailable_MASK 0x0000000f
+#define SXIFCCG_DEBUG_REG3_ALWAYS_ZERO3_MASK 0x00000010
+#define SXIFCCG_DEBUG_REG3_available_positions_MASK 0x000000e0
+#define SXIFCCG_DEBUG_REG3_ALWAYS_ZERO2_MASK 0x00000f00
+#define SXIFCCG_DEBUG_REG3_current_state_MASK 0x00003000
+#define SXIFCCG_DEBUG_REG3_vertex_fifo_empty_MASK 0x00004000
+#define SXIFCCG_DEBUG_REG3_vertex_fifo_full_MASK 0x00008000
+#define SXIFCCG_DEBUG_REG3_ALWAYS_ZERO1_MASK 0x00030000
+#define SXIFCCG_DEBUG_REG3_sx0_receive_fifo_empty_MASK 0x00040000
+#define SXIFCCG_DEBUG_REG3_sx0_receive_fifo_full_MASK 0x00080000
+#define SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_empty_MASK 0x00100000
+#define SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_full_MASK 0x00200000
+#define SXIFCCG_DEBUG_REG3_ALWAYS_ZERO0_MASK 0xffc00000
+
+#define SXIFCCG_DEBUG_REG3_MASK \
+ (SXIFCCG_DEBUG_REG3_vertex_fifo_entriesavailable_MASK | \
+ SXIFCCG_DEBUG_REG3_ALWAYS_ZERO3_MASK | \
+ SXIFCCG_DEBUG_REG3_available_positions_MASK | \
+ SXIFCCG_DEBUG_REG3_ALWAYS_ZERO2_MASK | \
+ SXIFCCG_DEBUG_REG3_current_state_MASK | \
+ SXIFCCG_DEBUG_REG3_vertex_fifo_empty_MASK | \
+ SXIFCCG_DEBUG_REG3_vertex_fifo_full_MASK | \
+ SXIFCCG_DEBUG_REG3_ALWAYS_ZERO1_MASK | \
+ SXIFCCG_DEBUG_REG3_sx0_receive_fifo_empty_MASK | \
+ SXIFCCG_DEBUG_REG3_sx0_receive_fifo_full_MASK | \
+ SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_empty_MASK | \
+ SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_full_MASK | \
+ SXIFCCG_DEBUG_REG3_ALWAYS_ZERO0_MASK)
+
+#define SXIFCCG_DEBUG_REG3(vertex_fifo_entriesavailable, always_zero3, available_positions, always_zero2, current_state, vertex_fifo_empty, vertex_fifo_full, always_zero1, sx0_receive_fifo_empty, sx0_receive_fifo_full, vgt_to_ccgen_fifo_empty, vgt_to_ccgen_fifo_full, always_zero0) \
+ ((vertex_fifo_entriesavailable << SXIFCCG_DEBUG_REG3_vertex_fifo_entriesavailable_SHIFT) | \
+ (always_zero3 << SXIFCCG_DEBUG_REG3_ALWAYS_ZERO3_SHIFT) | \
+ (available_positions << SXIFCCG_DEBUG_REG3_available_positions_SHIFT) | \
+ (always_zero2 << SXIFCCG_DEBUG_REG3_ALWAYS_ZERO2_SHIFT) | \
+ (current_state << SXIFCCG_DEBUG_REG3_current_state_SHIFT) | \
+ (vertex_fifo_empty << SXIFCCG_DEBUG_REG3_vertex_fifo_empty_SHIFT) | \
+ (vertex_fifo_full << SXIFCCG_DEBUG_REG3_vertex_fifo_full_SHIFT) | \
+ (always_zero1 << SXIFCCG_DEBUG_REG3_ALWAYS_ZERO1_SHIFT) | \
+ (sx0_receive_fifo_empty << SXIFCCG_DEBUG_REG3_sx0_receive_fifo_empty_SHIFT) | \
+ (sx0_receive_fifo_full << SXIFCCG_DEBUG_REG3_sx0_receive_fifo_full_SHIFT) | \
+ (vgt_to_ccgen_fifo_empty << SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_empty_SHIFT) | \
+ (vgt_to_ccgen_fifo_full << SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_full_SHIFT) | \
+ (always_zero0 << SXIFCCG_DEBUG_REG3_ALWAYS_ZERO0_SHIFT))
+
+#define SXIFCCG_DEBUG_REG3_GET_vertex_fifo_entriesavailable(sxifccg_debug_reg3) \
+ ((sxifccg_debug_reg3 & SXIFCCG_DEBUG_REG3_vertex_fifo_entriesavailable_MASK) >> SXIFCCG_DEBUG_REG3_vertex_fifo_entriesavailable_SHIFT)
+#define SXIFCCG_DEBUG_REG3_GET_ALWAYS_ZERO3(sxifccg_debug_reg3) \
+ ((sxifccg_debug_reg3 & SXIFCCG_DEBUG_REG3_ALWAYS_ZERO3_MASK) >> SXIFCCG_DEBUG_REG3_ALWAYS_ZERO3_SHIFT)
+#define SXIFCCG_DEBUG_REG3_GET_available_positions(sxifccg_debug_reg3) \
+ ((sxifccg_debug_reg3 & SXIFCCG_DEBUG_REG3_available_positions_MASK) >> SXIFCCG_DEBUG_REG3_available_positions_SHIFT)
+#define SXIFCCG_DEBUG_REG3_GET_ALWAYS_ZERO2(sxifccg_debug_reg3) \
+ ((sxifccg_debug_reg3 & SXIFCCG_DEBUG_REG3_ALWAYS_ZERO2_MASK) >> SXIFCCG_DEBUG_REG3_ALWAYS_ZERO2_SHIFT)
+#define SXIFCCG_DEBUG_REG3_GET_current_state(sxifccg_debug_reg3) \
+ ((sxifccg_debug_reg3 & SXIFCCG_DEBUG_REG3_current_state_MASK) >> SXIFCCG_DEBUG_REG3_current_state_SHIFT)
+#define SXIFCCG_DEBUG_REG3_GET_vertex_fifo_empty(sxifccg_debug_reg3) \
+ ((sxifccg_debug_reg3 & SXIFCCG_DEBUG_REG3_vertex_fifo_empty_MASK) >> SXIFCCG_DEBUG_REG3_vertex_fifo_empty_SHIFT)
+#define SXIFCCG_DEBUG_REG3_GET_vertex_fifo_full(sxifccg_debug_reg3) \
+ ((sxifccg_debug_reg3 & SXIFCCG_DEBUG_REG3_vertex_fifo_full_MASK) >> SXIFCCG_DEBUG_REG3_vertex_fifo_full_SHIFT)
+#define SXIFCCG_DEBUG_REG3_GET_ALWAYS_ZERO1(sxifccg_debug_reg3) \
+ ((sxifccg_debug_reg3 & SXIFCCG_DEBUG_REG3_ALWAYS_ZERO1_MASK) >> SXIFCCG_DEBUG_REG3_ALWAYS_ZERO1_SHIFT)
+#define SXIFCCG_DEBUG_REG3_GET_sx0_receive_fifo_empty(sxifccg_debug_reg3) \
+ ((sxifccg_debug_reg3 & SXIFCCG_DEBUG_REG3_sx0_receive_fifo_empty_MASK) >> SXIFCCG_DEBUG_REG3_sx0_receive_fifo_empty_SHIFT)
+#define SXIFCCG_DEBUG_REG3_GET_sx0_receive_fifo_full(sxifccg_debug_reg3) \
+ ((sxifccg_debug_reg3 & SXIFCCG_DEBUG_REG3_sx0_receive_fifo_full_MASK) >> SXIFCCG_DEBUG_REG3_sx0_receive_fifo_full_SHIFT)
+#define SXIFCCG_DEBUG_REG3_GET_vgt_to_ccgen_fifo_empty(sxifccg_debug_reg3) \
+ ((sxifccg_debug_reg3 & SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_empty_MASK) >> SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_empty_SHIFT)
+#define SXIFCCG_DEBUG_REG3_GET_vgt_to_ccgen_fifo_full(sxifccg_debug_reg3) \
+ ((sxifccg_debug_reg3 & SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_full_MASK) >> SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_full_SHIFT)
+#define SXIFCCG_DEBUG_REG3_GET_ALWAYS_ZERO0(sxifccg_debug_reg3) \
+ ((sxifccg_debug_reg3 & SXIFCCG_DEBUG_REG3_ALWAYS_ZERO0_MASK) >> SXIFCCG_DEBUG_REG3_ALWAYS_ZERO0_SHIFT)
+
+#define SXIFCCG_DEBUG_REG3_SET_vertex_fifo_entriesavailable(sxifccg_debug_reg3_reg, vertex_fifo_entriesavailable) \
+ sxifccg_debug_reg3_reg = (sxifccg_debug_reg3_reg & ~SXIFCCG_DEBUG_REG3_vertex_fifo_entriesavailable_MASK) | (vertex_fifo_entriesavailable << SXIFCCG_DEBUG_REG3_vertex_fifo_entriesavailable_SHIFT)
+#define SXIFCCG_DEBUG_REG3_SET_ALWAYS_ZERO3(sxifccg_debug_reg3_reg, always_zero3) \
+ sxifccg_debug_reg3_reg = (sxifccg_debug_reg3_reg & ~SXIFCCG_DEBUG_REG3_ALWAYS_ZERO3_MASK) | (always_zero3 << SXIFCCG_DEBUG_REG3_ALWAYS_ZERO3_SHIFT)
+#define SXIFCCG_DEBUG_REG3_SET_available_positions(sxifccg_debug_reg3_reg, available_positions) \
+ sxifccg_debug_reg3_reg = (sxifccg_debug_reg3_reg & ~SXIFCCG_DEBUG_REG3_available_positions_MASK) | (available_positions << SXIFCCG_DEBUG_REG3_available_positions_SHIFT)
+#define SXIFCCG_DEBUG_REG3_SET_ALWAYS_ZERO2(sxifccg_debug_reg3_reg, always_zero2) \
+ sxifccg_debug_reg3_reg = (sxifccg_debug_reg3_reg & ~SXIFCCG_DEBUG_REG3_ALWAYS_ZERO2_MASK) | (always_zero2 << SXIFCCG_DEBUG_REG3_ALWAYS_ZERO2_SHIFT)
+#define SXIFCCG_DEBUG_REG3_SET_current_state(sxifccg_debug_reg3_reg, current_state) \
+ sxifccg_debug_reg3_reg = (sxifccg_debug_reg3_reg & ~SXIFCCG_DEBUG_REG3_current_state_MASK) | (current_state << SXIFCCG_DEBUG_REG3_current_state_SHIFT)
+#define SXIFCCG_DEBUG_REG3_SET_vertex_fifo_empty(sxifccg_debug_reg3_reg, vertex_fifo_empty) \
+ sxifccg_debug_reg3_reg = (sxifccg_debug_reg3_reg & ~SXIFCCG_DEBUG_REG3_vertex_fifo_empty_MASK) | (vertex_fifo_empty << SXIFCCG_DEBUG_REG3_vertex_fifo_empty_SHIFT)
+#define SXIFCCG_DEBUG_REG3_SET_vertex_fifo_full(sxifccg_debug_reg3_reg, vertex_fifo_full) \
+ sxifccg_debug_reg3_reg = (sxifccg_debug_reg3_reg & ~SXIFCCG_DEBUG_REG3_vertex_fifo_full_MASK) | (vertex_fifo_full << SXIFCCG_DEBUG_REG3_vertex_fifo_full_SHIFT)
+#define SXIFCCG_DEBUG_REG3_SET_ALWAYS_ZERO1(sxifccg_debug_reg3_reg, always_zero1) \
+ sxifccg_debug_reg3_reg = (sxifccg_debug_reg3_reg & ~SXIFCCG_DEBUG_REG3_ALWAYS_ZERO1_MASK) | (always_zero1 << SXIFCCG_DEBUG_REG3_ALWAYS_ZERO1_SHIFT)
+#define SXIFCCG_DEBUG_REG3_SET_sx0_receive_fifo_empty(sxifccg_debug_reg3_reg, sx0_receive_fifo_empty) \
+ sxifccg_debug_reg3_reg = (sxifccg_debug_reg3_reg & ~SXIFCCG_DEBUG_REG3_sx0_receive_fifo_empty_MASK) | (sx0_receive_fifo_empty << SXIFCCG_DEBUG_REG3_sx0_receive_fifo_empty_SHIFT)
+#define SXIFCCG_DEBUG_REG3_SET_sx0_receive_fifo_full(sxifccg_debug_reg3_reg, sx0_receive_fifo_full) \
+ sxifccg_debug_reg3_reg = (sxifccg_debug_reg3_reg & ~SXIFCCG_DEBUG_REG3_sx0_receive_fifo_full_MASK) | (sx0_receive_fifo_full << SXIFCCG_DEBUG_REG3_sx0_receive_fifo_full_SHIFT)
+#define SXIFCCG_DEBUG_REG3_SET_vgt_to_ccgen_fifo_empty(sxifccg_debug_reg3_reg, vgt_to_ccgen_fifo_empty) \
+ sxifccg_debug_reg3_reg = (sxifccg_debug_reg3_reg & ~SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_empty_MASK) | (vgt_to_ccgen_fifo_empty << SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_empty_SHIFT)
+#define SXIFCCG_DEBUG_REG3_SET_vgt_to_ccgen_fifo_full(sxifccg_debug_reg3_reg, vgt_to_ccgen_fifo_full) \
+ sxifccg_debug_reg3_reg = (sxifccg_debug_reg3_reg & ~SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_full_MASK) | (vgt_to_ccgen_fifo_full << SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_full_SHIFT)
+#define SXIFCCG_DEBUG_REG3_SET_ALWAYS_ZERO0(sxifccg_debug_reg3_reg, always_zero0) \
+ sxifccg_debug_reg3_reg = (sxifccg_debug_reg3_reg & ~SXIFCCG_DEBUG_REG3_ALWAYS_ZERO0_MASK) | (always_zero0 << SXIFCCG_DEBUG_REG3_ALWAYS_ZERO0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sxifccg_debug_reg3_t {
+ unsigned int vertex_fifo_entriesavailable : SXIFCCG_DEBUG_REG3_vertex_fifo_entriesavailable_SIZE;
+ unsigned int always_zero3 : SXIFCCG_DEBUG_REG3_ALWAYS_ZERO3_SIZE;
+ unsigned int available_positions : SXIFCCG_DEBUG_REG3_available_positions_SIZE;
+ unsigned int always_zero2 : SXIFCCG_DEBUG_REG3_ALWAYS_ZERO2_SIZE;
+ unsigned int current_state : SXIFCCG_DEBUG_REG3_current_state_SIZE;
+ unsigned int vertex_fifo_empty : SXIFCCG_DEBUG_REG3_vertex_fifo_empty_SIZE;
+ unsigned int vertex_fifo_full : SXIFCCG_DEBUG_REG3_vertex_fifo_full_SIZE;
+ unsigned int always_zero1 : SXIFCCG_DEBUG_REG3_ALWAYS_ZERO1_SIZE;
+ unsigned int sx0_receive_fifo_empty : SXIFCCG_DEBUG_REG3_sx0_receive_fifo_empty_SIZE;
+ unsigned int sx0_receive_fifo_full : SXIFCCG_DEBUG_REG3_sx0_receive_fifo_full_SIZE;
+ unsigned int vgt_to_ccgen_fifo_empty : SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_empty_SIZE;
+ unsigned int vgt_to_ccgen_fifo_full : SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_full_SIZE;
+ unsigned int always_zero0 : SXIFCCG_DEBUG_REG3_ALWAYS_ZERO0_SIZE;
+ } sxifccg_debug_reg3_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sxifccg_debug_reg3_t {
+ unsigned int always_zero0 : SXIFCCG_DEBUG_REG3_ALWAYS_ZERO0_SIZE;
+ unsigned int vgt_to_ccgen_fifo_full : SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_full_SIZE;
+ unsigned int vgt_to_ccgen_fifo_empty : SXIFCCG_DEBUG_REG3_vgt_to_ccgen_fifo_empty_SIZE;
+ unsigned int sx0_receive_fifo_full : SXIFCCG_DEBUG_REG3_sx0_receive_fifo_full_SIZE;
+ unsigned int sx0_receive_fifo_empty : SXIFCCG_DEBUG_REG3_sx0_receive_fifo_empty_SIZE;
+ unsigned int always_zero1 : SXIFCCG_DEBUG_REG3_ALWAYS_ZERO1_SIZE;
+ unsigned int vertex_fifo_full : SXIFCCG_DEBUG_REG3_vertex_fifo_full_SIZE;
+ unsigned int vertex_fifo_empty : SXIFCCG_DEBUG_REG3_vertex_fifo_empty_SIZE;
+ unsigned int current_state : SXIFCCG_DEBUG_REG3_current_state_SIZE;
+ unsigned int always_zero2 : SXIFCCG_DEBUG_REG3_ALWAYS_ZERO2_SIZE;
+ unsigned int available_positions : SXIFCCG_DEBUG_REG3_available_positions_SIZE;
+ unsigned int always_zero3 : SXIFCCG_DEBUG_REG3_ALWAYS_ZERO3_SIZE;
+ unsigned int vertex_fifo_entriesavailable : SXIFCCG_DEBUG_REG3_vertex_fifo_entriesavailable_SIZE;
+ } sxifccg_debug_reg3_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sxifccg_debug_reg3_t f;
+} sxifccg_debug_reg3_u;
+
+
+/*
+ * SETUP_DEBUG_REG0 struct
+ */
+
+#define SETUP_DEBUG_REG0_su_cntl_state_SIZE 5
+#define SETUP_DEBUG_REG0_pmode_state_SIZE 6
+#define SETUP_DEBUG_REG0_ge_stallb_SIZE 1
+#define SETUP_DEBUG_REG0_geom_enable_SIZE 1
+#define SETUP_DEBUG_REG0_su_clip_baryc_rtr_SIZE 1
+#define SETUP_DEBUG_REG0_su_clip_rtr_SIZE 1
+#define SETUP_DEBUG_REG0_pfifo_busy_SIZE 1
+#define SETUP_DEBUG_REG0_su_cntl_busy_SIZE 1
+#define SETUP_DEBUG_REG0_geom_busy_SIZE 1
+
+#define SETUP_DEBUG_REG0_su_cntl_state_SHIFT 0
+#define SETUP_DEBUG_REG0_pmode_state_SHIFT 5
+#define SETUP_DEBUG_REG0_ge_stallb_SHIFT 11
+#define SETUP_DEBUG_REG0_geom_enable_SHIFT 12
+#define SETUP_DEBUG_REG0_su_clip_baryc_rtr_SHIFT 13
+#define SETUP_DEBUG_REG0_su_clip_rtr_SHIFT 14
+#define SETUP_DEBUG_REG0_pfifo_busy_SHIFT 15
+#define SETUP_DEBUG_REG0_su_cntl_busy_SHIFT 16
+#define SETUP_DEBUG_REG0_geom_busy_SHIFT 17
+
+#define SETUP_DEBUG_REG0_su_cntl_state_MASK 0x0000001f
+#define SETUP_DEBUG_REG0_pmode_state_MASK 0x000007e0
+#define SETUP_DEBUG_REG0_ge_stallb_MASK 0x00000800
+#define SETUP_DEBUG_REG0_geom_enable_MASK 0x00001000
+#define SETUP_DEBUG_REG0_su_clip_baryc_rtr_MASK 0x00002000
+#define SETUP_DEBUG_REG0_su_clip_rtr_MASK 0x00004000
+#define SETUP_DEBUG_REG0_pfifo_busy_MASK 0x00008000
+#define SETUP_DEBUG_REG0_su_cntl_busy_MASK 0x00010000
+#define SETUP_DEBUG_REG0_geom_busy_MASK 0x00020000
+
+#define SETUP_DEBUG_REG0_MASK \
+ (SETUP_DEBUG_REG0_su_cntl_state_MASK | \
+ SETUP_DEBUG_REG0_pmode_state_MASK | \
+ SETUP_DEBUG_REG0_ge_stallb_MASK | \
+ SETUP_DEBUG_REG0_geom_enable_MASK | \
+ SETUP_DEBUG_REG0_su_clip_baryc_rtr_MASK | \
+ SETUP_DEBUG_REG0_su_clip_rtr_MASK | \
+ SETUP_DEBUG_REG0_pfifo_busy_MASK | \
+ SETUP_DEBUG_REG0_su_cntl_busy_MASK | \
+ SETUP_DEBUG_REG0_geom_busy_MASK)
+
+#define SETUP_DEBUG_REG0(su_cntl_state, pmode_state, ge_stallb, geom_enable, su_clip_baryc_rtr, su_clip_rtr, pfifo_busy, su_cntl_busy, geom_busy) \
+ ((su_cntl_state << SETUP_DEBUG_REG0_su_cntl_state_SHIFT) | \
+ (pmode_state << SETUP_DEBUG_REG0_pmode_state_SHIFT) | \
+ (ge_stallb << SETUP_DEBUG_REG0_ge_stallb_SHIFT) | \
+ (geom_enable << SETUP_DEBUG_REG0_geom_enable_SHIFT) | \
+ (su_clip_baryc_rtr << SETUP_DEBUG_REG0_su_clip_baryc_rtr_SHIFT) | \
+ (su_clip_rtr << SETUP_DEBUG_REG0_su_clip_rtr_SHIFT) | \
+ (pfifo_busy << SETUP_DEBUG_REG0_pfifo_busy_SHIFT) | \
+ (su_cntl_busy << SETUP_DEBUG_REG0_su_cntl_busy_SHIFT) | \
+ (geom_busy << SETUP_DEBUG_REG0_geom_busy_SHIFT))
+
+#define SETUP_DEBUG_REG0_GET_su_cntl_state(setup_debug_reg0) \
+ ((setup_debug_reg0 & SETUP_DEBUG_REG0_su_cntl_state_MASK) >> SETUP_DEBUG_REG0_su_cntl_state_SHIFT)
+#define SETUP_DEBUG_REG0_GET_pmode_state(setup_debug_reg0) \
+ ((setup_debug_reg0 & SETUP_DEBUG_REG0_pmode_state_MASK) >> SETUP_DEBUG_REG0_pmode_state_SHIFT)
+#define SETUP_DEBUG_REG0_GET_ge_stallb(setup_debug_reg0) \
+ ((setup_debug_reg0 & SETUP_DEBUG_REG0_ge_stallb_MASK) >> SETUP_DEBUG_REG0_ge_stallb_SHIFT)
+#define SETUP_DEBUG_REG0_GET_geom_enable(setup_debug_reg0) \
+ ((setup_debug_reg0 & SETUP_DEBUG_REG0_geom_enable_MASK) >> SETUP_DEBUG_REG0_geom_enable_SHIFT)
+#define SETUP_DEBUG_REG0_GET_su_clip_baryc_rtr(setup_debug_reg0) \
+ ((setup_debug_reg0 & SETUP_DEBUG_REG0_su_clip_baryc_rtr_MASK) >> SETUP_DEBUG_REG0_su_clip_baryc_rtr_SHIFT)
+#define SETUP_DEBUG_REG0_GET_su_clip_rtr(setup_debug_reg0) \
+ ((setup_debug_reg0 & SETUP_DEBUG_REG0_su_clip_rtr_MASK) >> SETUP_DEBUG_REG0_su_clip_rtr_SHIFT)
+#define SETUP_DEBUG_REG0_GET_pfifo_busy(setup_debug_reg0) \
+ ((setup_debug_reg0 & SETUP_DEBUG_REG0_pfifo_busy_MASK) >> SETUP_DEBUG_REG0_pfifo_busy_SHIFT)
+#define SETUP_DEBUG_REG0_GET_su_cntl_busy(setup_debug_reg0) \
+ ((setup_debug_reg0 & SETUP_DEBUG_REG0_su_cntl_busy_MASK) >> SETUP_DEBUG_REG0_su_cntl_busy_SHIFT)
+#define SETUP_DEBUG_REG0_GET_geom_busy(setup_debug_reg0) \
+ ((setup_debug_reg0 & SETUP_DEBUG_REG0_geom_busy_MASK) >> SETUP_DEBUG_REG0_geom_busy_SHIFT)
+
+#define SETUP_DEBUG_REG0_SET_su_cntl_state(setup_debug_reg0_reg, su_cntl_state) \
+ setup_debug_reg0_reg = (setup_debug_reg0_reg & ~SETUP_DEBUG_REG0_su_cntl_state_MASK) | (su_cntl_state << SETUP_DEBUG_REG0_su_cntl_state_SHIFT)
+#define SETUP_DEBUG_REG0_SET_pmode_state(setup_debug_reg0_reg, pmode_state) \
+ setup_debug_reg0_reg = (setup_debug_reg0_reg & ~SETUP_DEBUG_REG0_pmode_state_MASK) | (pmode_state << SETUP_DEBUG_REG0_pmode_state_SHIFT)
+#define SETUP_DEBUG_REG0_SET_ge_stallb(setup_debug_reg0_reg, ge_stallb) \
+ setup_debug_reg0_reg = (setup_debug_reg0_reg & ~SETUP_DEBUG_REG0_ge_stallb_MASK) | (ge_stallb << SETUP_DEBUG_REG0_ge_stallb_SHIFT)
+#define SETUP_DEBUG_REG0_SET_geom_enable(setup_debug_reg0_reg, geom_enable) \
+ setup_debug_reg0_reg = (setup_debug_reg0_reg & ~SETUP_DEBUG_REG0_geom_enable_MASK) | (geom_enable << SETUP_DEBUG_REG0_geom_enable_SHIFT)
+#define SETUP_DEBUG_REG0_SET_su_clip_baryc_rtr(setup_debug_reg0_reg, su_clip_baryc_rtr) \
+ setup_debug_reg0_reg = (setup_debug_reg0_reg & ~SETUP_DEBUG_REG0_su_clip_baryc_rtr_MASK) | (su_clip_baryc_rtr << SETUP_DEBUG_REG0_su_clip_baryc_rtr_SHIFT)
+#define SETUP_DEBUG_REG0_SET_su_clip_rtr(setup_debug_reg0_reg, su_clip_rtr) \
+ setup_debug_reg0_reg = (setup_debug_reg0_reg & ~SETUP_DEBUG_REG0_su_clip_rtr_MASK) | (su_clip_rtr << SETUP_DEBUG_REG0_su_clip_rtr_SHIFT)
+#define SETUP_DEBUG_REG0_SET_pfifo_busy(setup_debug_reg0_reg, pfifo_busy) \
+ setup_debug_reg0_reg = (setup_debug_reg0_reg & ~SETUP_DEBUG_REG0_pfifo_busy_MASK) | (pfifo_busy << SETUP_DEBUG_REG0_pfifo_busy_SHIFT)
+#define SETUP_DEBUG_REG0_SET_su_cntl_busy(setup_debug_reg0_reg, su_cntl_busy) \
+ setup_debug_reg0_reg = (setup_debug_reg0_reg & ~SETUP_DEBUG_REG0_su_cntl_busy_MASK) | (su_cntl_busy << SETUP_DEBUG_REG0_su_cntl_busy_SHIFT)
+#define SETUP_DEBUG_REG0_SET_geom_busy(setup_debug_reg0_reg, geom_busy) \
+ setup_debug_reg0_reg = (setup_debug_reg0_reg & ~SETUP_DEBUG_REG0_geom_busy_MASK) | (geom_busy << SETUP_DEBUG_REG0_geom_busy_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _setup_debug_reg0_t {
+ unsigned int su_cntl_state : SETUP_DEBUG_REG0_su_cntl_state_SIZE;
+ unsigned int pmode_state : SETUP_DEBUG_REG0_pmode_state_SIZE;
+ unsigned int ge_stallb : SETUP_DEBUG_REG0_ge_stallb_SIZE;
+ unsigned int geom_enable : SETUP_DEBUG_REG0_geom_enable_SIZE;
+ unsigned int su_clip_baryc_rtr : SETUP_DEBUG_REG0_su_clip_baryc_rtr_SIZE;
+ unsigned int su_clip_rtr : SETUP_DEBUG_REG0_su_clip_rtr_SIZE;
+ unsigned int pfifo_busy : SETUP_DEBUG_REG0_pfifo_busy_SIZE;
+ unsigned int su_cntl_busy : SETUP_DEBUG_REG0_su_cntl_busy_SIZE;
+ unsigned int geom_busy : SETUP_DEBUG_REG0_geom_busy_SIZE;
+ unsigned int : 14;
+ } setup_debug_reg0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _setup_debug_reg0_t {
+ unsigned int : 14;
+ unsigned int geom_busy : SETUP_DEBUG_REG0_geom_busy_SIZE;
+ unsigned int su_cntl_busy : SETUP_DEBUG_REG0_su_cntl_busy_SIZE;
+ unsigned int pfifo_busy : SETUP_DEBUG_REG0_pfifo_busy_SIZE;
+ unsigned int su_clip_rtr : SETUP_DEBUG_REG0_su_clip_rtr_SIZE;
+ unsigned int su_clip_baryc_rtr : SETUP_DEBUG_REG0_su_clip_baryc_rtr_SIZE;
+ unsigned int geom_enable : SETUP_DEBUG_REG0_geom_enable_SIZE;
+ unsigned int ge_stallb : SETUP_DEBUG_REG0_ge_stallb_SIZE;
+ unsigned int pmode_state : SETUP_DEBUG_REG0_pmode_state_SIZE;
+ unsigned int su_cntl_state : SETUP_DEBUG_REG0_su_cntl_state_SIZE;
+ } setup_debug_reg0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ setup_debug_reg0_t f;
+} setup_debug_reg0_u;
+
+
+/*
+ * SETUP_DEBUG_REG1 struct
+ */
+
+#define SETUP_DEBUG_REG1_y_sort0_gated_17_4_SIZE 14
+#define SETUP_DEBUG_REG1_x_sort0_gated_17_4_SIZE 14
+
+#define SETUP_DEBUG_REG1_y_sort0_gated_17_4_SHIFT 0
+#define SETUP_DEBUG_REG1_x_sort0_gated_17_4_SHIFT 14
+
+#define SETUP_DEBUG_REG1_y_sort0_gated_17_4_MASK 0x00003fff
+#define SETUP_DEBUG_REG1_x_sort0_gated_17_4_MASK 0x0fffc000
+
+#define SETUP_DEBUG_REG1_MASK \
+ (SETUP_DEBUG_REG1_y_sort0_gated_17_4_MASK | \
+ SETUP_DEBUG_REG1_x_sort0_gated_17_4_MASK)
+
+#define SETUP_DEBUG_REG1(y_sort0_gated_17_4, x_sort0_gated_17_4) \
+ ((y_sort0_gated_17_4 << SETUP_DEBUG_REG1_y_sort0_gated_17_4_SHIFT) | \
+ (x_sort0_gated_17_4 << SETUP_DEBUG_REG1_x_sort0_gated_17_4_SHIFT))
+
+#define SETUP_DEBUG_REG1_GET_y_sort0_gated_17_4(setup_debug_reg1) \
+ ((setup_debug_reg1 & SETUP_DEBUG_REG1_y_sort0_gated_17_4_MASK) >> SETUP_DEBUG_REG1_y_sort0_gated_17_4_SHIFT)
+#define SETUP_DEBUG_REG1_GET_x_sort0_gated_17_4(setup_debug_reg1) \
+ ((setup_debug_reg1 & SETUP_DEBUG_REG1_x_sort0_gated_17_4_MASK) >> SETUP_DEBUG_REG1_x_sort0_gated_17_4_SHIFT)
+
+#define SETUP_DEBUG_REG1_SET_y_sort0_gated_17_4(setup_debug_reg1_reg, y_sort0_gated_17_4) \
+ setup_debug_reg1_reg = (setup_debug_reg1_reg & ~SETUP_DEBUG_REG1_y_sort0_gated_17_4_MASK) | (y_sort0_gated_17_4 << SETUP_DEBUG_REG1_y_sort0_gated_17_4_SHIFT)
+#define SETUP_DEBUG_REG1_SET_x_sort0_gated_17_4(setup_debug_reg1_reg, x_sort0_gated_17_4) \
+ setup_debug_reg1_reg = (setup_debug_reg1_reg & ~SETUP_DEBUG_REG1_x_sort0_gated_17_4_MASK) | (x_sort0_gated_17_4 << SETUP_DEBUG_REG1_x_sort0_gated_17_4_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _setup_debug_reg1_t {
+ unsigned int y_sort0_gated_17_4 : SETUP_DEBUG_REG1_y_sort0_gated_17_4_SIZE;
+ unsigned int x_sort0_gated_17_4 : SETUP_DEBUG_REG1_x_sort0_gated_17_4_SIZE;
+ unsigned int : 4;
+ } setup_debug_reg1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _setup_debug_reg1_t {
+ unsigned int : 4;
+ unsigned int x_sort0_gated_17_4 : SETUP_DEBUG_REG1_x_sort0_gated_17_4_SIZE;
+ unsigned int y_sort0_gated_17_4 : SETUP_DEBUG_REG1_y_sort0_gated_17_4_SIZE;
+ } setup_debug_reg1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ setup_debug_reg1_t f;
+} setup_debug_reg1_u;
+
+
+/*
+ * SETUP_DEBUG_REG2 struct
+ */
+
+#define SETUP_DEBUG_REG2_y_sort1_gated_17_4_SIZE 14
+#define SETUP_DEBUG_REG2_x_sort1_gated_17_4_SIZE 14
+
+#define SETUP_DEBUG_REG2_y_sort1_gated_17_4_SHIFT 0
+#define SETUP_DEBUG_REG2_x_sort1_gated_17_4_SHIFT 14
+
+#define SETUP_DEBUG_REG2_y_sort1_gated_17_4_MASK 0x00003fff
+#define SETUP_DEBUG_REG2_x_sort1_gated_17_4_MASK 0x0fffc000
+
+#define SETUP_DEBUG_REG2_MASK \
+ (SETUP_DEBUG_REG2_y_sort1_gated_17_4_MASK | \
+ SETUP_DEBUG_REG2_x_sort1_gated_17_4_MASK)
+
+#define SETUP_DEBUG_REG2(y_sort1_gated_17_4, x_sort1_gated_17_4) \
+ ((y_sort1_gated_17_4 << SETUP_DEBUG_REG2_y_sort1_gated_17_4_SHIFT) | \
+ (x_sort1_gated_17_4 << SETUP_DEBUG_REG2_x_sort1_gated_17_4_SHIFT))
+
+#define SETUP_DEBUG_REG2_GET_y_sort1_gated_17_4(setup_debug_reg2) \
+ ((setup_debug_reg2 & SETUP_DEBUG_REG2_y_sort1_gated_17_4_MASK) >> SETUP_DEBUG_REG2_y_sort1_gated_17_4_SHIFT)
+#define SETUP_DEBUG_REG2_GET_x_sort1_gated_17_4(setup_debug_reg2) \
+ ((setup_debug_reg2 & SETUP_DEBUG_REG2_x_sort1_gated_17_4_MASK) >> SETUP_DEBUG_REG2_x_sort1_gated_17_4_SHIFT)
+
+#define SETUP_DEBUG_REG2_SET_y_sort1_gated_17_4(setup_debug_reg2_reg, y_sort1_gated_17_4) \
+ setup_debug_reg2_reg = (setup_debug_reg2_reg & ~SETUP_DEBUG_REG2_y_sort1_gated_17_4_MASK) | (y_sort1_gated_17_4 << SETUP_DEBUG_REG2_y_sort1_gated_17_4_SHIFT)
+#define SETUP_DEBUG_REG2_SET_x_sort1_gated_17_4(setup_debug_reg2_reg, x_sort1_gated_17_4) \
+ setup_debug_reg2_reg = (setup_debug_reg2_reg & ~SETUP_DEBUG_REG2_x_sort1_gated_17_4_MASK) | (x_sort1_gated_17_4 << SETUP_DEBUG_REG2_x_sort1_gated_17_4_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _setup_debug_reg2_t {
+ unsigned int y_sort1_gated_17_4 : SETUP_DEBUG_REG2_y_sort1_gated_17_4_SIZE;
+ unsigned int x_sort1_gated_17_4 : SETUP_DEBUG_REG2_x_sort1_gated_17_4_SIZE;
+ unsigned int : 4;
+ } setup_debug_reg2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _setup_debug_reg2_t {
+ unsigned int : 4;
+ unsigned int x_sort1_gated_17_4 : SETUP_DEBUG_REG2_x_sort1_gated_17_4_SIZE;
+ unsigned int y_sort1_gated_17_4 : SETUP_DEBUG_REG2_y_sort1_gated_17_4_SIZE;
+ } setup_debug_reg2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ setup_debug_reg2_t f;
+} setup_debug_reg2_u;
+
+
+/*
+ * SETUP_DEBUG_REG3 struct
+ */
+
+#define SETUP_DEBUG_REG3_y_sort2_gated_17_4_SIZE 14
+#define SETUP_DEBUG_REG3_x_sort2_gated_17_4_SIZE 14
+
+#define SETUP_DEBUG_REG3_y_sort2_gated_17_4_SHIFT 0
+#define SETUP_DEBUG_REG3_x_sort2_gated_17_4_SHIFT 14
+
+#define SETUP_DEBUG_REG3_y_sort2_gated_17_4_MASK 0x00003fff
+#define SETUP_DEBUG_REG3_x_sort2_gated_17_4_MASK 0x0fffc000
+
+#define SETUP_DEBUG_REG3_MASK \
+ (SETUP_DEBUG_REG3_y_sort2_gated_17_4_MASK | \
+ SETUP_DEBUG_REG3_x_sort2_gated_17_4_MASK)
+
+#define SETUP_DEBUG_REG3(y_sort2_gated_17_4, x_sort2_gated_17_4) \
+ ((y_sort2_gated_17_4 << SETUP_DEBUG_REG3_y_sort2_gated_17_4_SHIFT) | \
+ (x_sort2_gated_17_4 << SETUP_DEBUG_REG3_x_sort2_gated_17_4_SHIFT))
+
+#define SETUP_DEBUG_REG3_GET_y_sort2_gated_17_4(setup_debug_reg3) \
+ ((setup_debug_reg3 & SETUP_DEBUG_REG3_y_sort2_gated_17_4_MASK) >> SETUP_DEBUG_REG3_y_sort2_gated_17_4_SHIFT)
+#define SETUP_DEBUG_REG3_GET_x_sort2_gated_17_4(setup_debug_reg3) \
+ ((setup_debug_reg3 & SETUP_DEBUG_REG3_x_sort2_gated_17_4_MASK) >> SETUP_DEBUG_REG3_x_sort2_gated_17_4_SHIFT)
+
+#define SETUP_DEBUG_REG3_SET_y_sort2_gated_17_4(setup_debug_reg3_reg, y_sort2_gated_17_4) \
+ setup_debug_reg3_reg = (setup_debug_reg3_reg & ~SETUP_DEBUG_REG3_y_sort2_gated_17_4_MASK) | (y_sort2_gated_17_4 << SETUP_DEBUG_REG3_y_sort2_gated_17_4_SHIFT)
+#define SETUP_DEBUG_REG3_SET_x_sort2_gated_17_4(setup_debug_reg3_reg, x_sort2_gated_17_4) \
+ setup_debug_reg3_reg = (setup_debug_reg3_reg & ~SETUP_DEBUG_REG3_x_sort2_gated_17_4_MASK) | (x_sort2_gated_17_4 << SETUP_DEBUG_REG3_x_sort2_gated_17_4_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _setup_debug_reg3_t {
+ unsigned int y_sort2_gated_17_4 : SETUP_DEBUG_REG3_y_sort2_gated_17_4_SIZE;
+ unsigned int x_sort2_gated_17_4 : SETUP_DEBUG_REG3_x_sort2_gated_17_4_SIZE;
+ unsigned int : 4;
+ } setup_debug_reg3_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _setup_debug_reg3_t {
+ unsigned int : 4;
+ unsigned int x_sort2_gated_17_4 : SETUP_DEBUG_REG3_x_sort2_gated_17_4_SIZE;
+ unsigned int y_sort2_gated_17_4 : SETUP_DEBUG_REG3_y_sort2_gated_17_4_SIZE;
+ } setup_debug_reg3_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ setup_debug_reg3_t f;
+} setup_debug_reg3_u;
+
+
+/*
+ * SETUP_DEBUG_REG4 struct
+ */
+
+#define SETUP_DEBUG_REG4_attr_indx_sort0_gated_SIZE 11
+#define SETUP_DEBUG_REG4_null_prim_gated_SIZE 1
+#define SETUP_DEBUG_REG4_backfacing_gated_SIZE 1
+#define SETUP_DEBUG_REG4_st_indx_gated_SIZE 3
+#define SETUP_DEBUG_REG4_clipped_gated_SIZE 1
+#define SETUP_DEBUG_REG4_dealloc_slot_gated_SIZE 3
+#define SETUP_DEBUG_REG4_xmajor_gated_SIZE 1
+#define SETUP_DEBUG_REG4_diamond_rule_gated_SIZE 2
+#define SETUP_DEBUG_REG4_type_gated_SIZE 3
+#define SETUP_DEBUG_REG4_fpov_gated_SIZE 1
+#define SETUP_DEBUG_REG4_pmode_prim_gated_SIZE 1
+#define SETUP_DEBUG_REG4_event_gated_SIZE 1
+#define SETUP_DEBUG_REG4_eop_gated_SIZE 1
+
+#define SETUP_DEBUG_REG4_attr_indx_sort0_gated_SHIFT 0
+#define SETUP_DEBUG_REG4_null_prim_gated_SHIFT 11
+#define SETUP_DEBUG_REG4_backfacing_gated_SHIFT 12
+#define SETUP_DEBUG_REG4_st_indx_gated_SHIFT 13
+#define SETUP_DEBUG_REG4_clipped_gated_SHIFT 16
+#define SETUP_DEBUG_REG4_dealloc_slot_gated_SHIFT 17
+#define SETUP_DEBUG_REG4_xmajor_gated_SHIFT 20
+#define SETUP_DEBUG_REG4_diamond_rule_gated_SHIFT 21
+#define SETUP_DEBUG_REG4_type_gated_SHIFT 23
+#define SETUP_DEBUG_REG4_fpov_gated_SHIFT 26
+#define SETUP_DEBUG_REG4_pmode_prim_gated_SHIFT 27
+#define SETUP_DEBUG_REG4_event_gated_SHIFT 28
+#define SETUP_DEBUG_REG4_eop_gated_SHIFT 29
+
+#define SETUP_DEBUG_REG4_attr_indx_sort0_gated_MASK 0x000007ff
+#define SETUP_DEBUG_REG4_null_prim_gated_MASK 0x00000800
+#define SETUP_DEBUG_REG4_backfacing_gated_MASK 0x00001000
+#define SETUP_DEBUG_REG4_st_indx_gated_MASK 0x0000e000
+#define SETUP_DEBUG_REG4_clipped_gated_MASK 0x00010000
+#define SETUP_DEBUG_REG4_dealloc_slot_gated_MASK 0x000e0000
+#define SETUP_DEBUG_REG4_xmajor_gated_MASK 0x00100000
+#define SETUP_DEBUG_REG4_diamond_rule_gated_MASK 0x00600000
+#define SETUP_DEBUG_REG4_type_gated_MASK 0x03800000
+#define SETUP_DEBUG_REG4_fpov_gated_MASK 0x04000000
+#define SETUP_DEBUG_REG4_pmode_prim_gated_MASK 0x08000000
+#define SETUP_DEBUG_REG4_event_gated_MASK 0x10000000
+#define SETUP_DEBUG_REG4_eop_gated_MASK 0x20000000
+
+#define SETUP_DEBUG_REG4_MASK \
+ (SETUP_DEBUG_REG4_attr_indx_sort0_gated_MASK | \
+ SETUP_DEBUG_REG4_null_prim_gated_MASK | \
+ SETUP_DEBUG_REG4_backfacing_gated_MASK | \
+ SETUP_DEBUG_REG4_st_indx_gated_MASK | \
+ SETUP_DEBUG_REG4_clipped_gated_MASK | \
+ SETUP_DEBUG_REG4_dealloc_slot_gated_MASK | \
+ SETUP_DEBUG_REG4_xmajor_gated_MASK | \
+ SETUP_DEBUG_REG4_diamond_rule_gated_MASK | \
+ SETUP_DEBUG_REG4_type_gated_MASK | \
+ SETUP_DEBUG_REG4_fpov_gated_MASK | \
+ SETUP_DEBUG_REG4_pmode_prim_gated_MASK | \
+ SETUP_DEBUG_REG4_event_gated_MASK | \
+ SETUP_DEBUG_REG4_eop_gated_MASK)
+
+#define SETUP_DEBUG_REG4(attr_indx_sort0_gated, null_prim_gated, backfacing_gated, st_indx_gated, clipped_gated, dealloc_slot_gated, xmajor_gated, diamond_rule_gated, type_gated, fpov_gated, pmode_prim_gated, event_gated, eop_gated) \
+ ((attr_indx_sort0_gated << SETUP_DEBUG_REG4_attr_indx_sort0_gated_SHIFT) | \
+ (null_prim_gated << SETUP_DEBUG_REG4_null_prim_gated_SHIFT) | \
+ (backfacing_gated << SETUP_DEBUG_REG4_backfacing_gated_SHIFT) | \
+ (st_indx_gated << SETUP_DEBUG_REG4_st_indx_gated_SHIFT) | \
+ (clipped_gated << SETUP_DEBUG_REG4_clipped_gated_SHIFT) | \
+ (dealloc_slot_gated << SETUP_DEBUG_REG4_dealloc_slot_gated_SHIFT) | \
+ (xmajor_gated << SETUP_DEBUG_REG4_xmajor_gated_SHIFT) | \
+ (diamond_rule_gated << SETUP_DEBUG_REG4_diamond_rule_gated_SHIFT) | \
+ (type_gated << SETUP_DEBUG_REG4_type_gated_SHIFT) | \
+ (fpov_gated << SETUP_DEBUG_REG4_fpov_gated_SHIFT) | \
+ (pmode_prim_gated << SETUP_DEBUG_REG4_pmode_prim_gated_SHIFT) | \
+ (event_gated << SETUP_DEBUG_REG4_event_gated_SHIFT) | \
+ (eop_gated << SETUP_DEBUG_REG4_eop_gated_SHIFT))
+
+#define SETUP_DEBUG_REG4_GET_attr_indx_sort0_gated(setup_debug_reg4) \
+ ((setup_debug_reg4 & SETUP_DEBUG_REG4_attr_indx_sort0_gated_MASK) >> SETUP_DEBUG_REG4_attr_indx_sort0_gated_SHIFT)
+#define SETUP_DEBUG_REG4_GET_null_prim_gated(setup_debug_reg4) \
+ ((setup_debug_reg4 & SETUP_DEBUG_REG4_null_prim_gated_MASK) >> SETUP_DEBUG_REG4_null_prim_gated_SHIFT)
+#define SETUP_DEBUG_REG4_GET_backfacing_gated(setup_debug_reg4) \
+ ((setup_debug_reg4 & SETUP_DEBUG_REG4_backfacing_gated_MASK) >> SETUP_DEBUG_REG4_backfacing_gated_SHIFT)
+#define SETUP_DEBUG_REG4_GET_st_indx_gated(setup_debug_reg4) \
+ ((setup_debug_reg4 & SETUP_DEBUG_REG4_st_indx_gated_MASK) >> SETUP_DEBUG_REG4_st_indx_gated_SHIFT)
+#define SETUP_DEBUG_REG4_GET_clipped_gated(setup_debug_reg4) \
+ ((setup_debug_reg4 & SETUP_DEBUG_REG4_clipped_gated_MASK) >> SETUP_DEBUG_REG4_clipped_gated_SHIFT)
+#define SETUP_DEBUG_REG4_GET_dealloc_slot_gated(setup_debug_reg4) \
+ ((setup_debug_reg4 & SETUP_DEBUG_REG4_dealloc_slot_gated_MASK) >> SETUP_DEBUG_REG4_dealloc_slot_gated_SHIFT)
+#define SETUP_DEBUG_REG4_GET_xmajor_gated(setup_debug_reg4) \
+ ((setup_debug_reg4 & SETUP_DEBUG_REG4_xmajor_gated_MASK) >> SETUP_DEBUG_REG4_xmajor_gated_SHIFT)
+#define SETUP_DEBUG_REG4_GET_diamond_rule_gated(setup_debug_reg4) \
+ ((setup_debug_reg4 & SETUP_DEBUG_REG4_diamond_rule_gated_MASK) >> SETUP_DEBUG_REG4_diamond_rule_gated_SHIFT)
+#define SETUP_DEBUG_REG4_GET_type_gated(setup_debug_reg4) \
+ ((setup_debug_reg4 & SETUP_DEBUG_REG4_type_gated_MASK) >> SETUP_DEBUG_REG4_type_gated_SHIFT)
+#define SETUP_DEBUG_REG4_GET_fpov_gated(setup_debug_reg4) \
+ ((setup_debug_reg4 & SETUP_DEBUG_REG4_fpov_gated_MASK) >> SETUP_DEBUG_REG4_fpov_gated_SHIFT)
+#define SETUP_DEBUG_REG4_GET_pmode_prim_gated(setup_debug_reg4) \
+ ((setup_debug_reg4 & SETUP_DEBUG_REG4_pmode_prim_gated_MASK) >> SETUP_DEBUG_REG4_pmode_prim_gated_SHIFT)
+#define SETUP_DEBUG_REG4_GET_event_gated(setup_debug_reg4) \
+ ((setup_debug_reg4 & SETUP_DEBUG_REG4_event_gated_MASK) >> SETUP_DEBUG_REG4_event_gated_SHIFT)
+#define SETUP_DEBUG_REG4_GET_eop_gated(setup_debug_reg4) \
+ ((setup_debug_reg4 & SETUP_DEBUG_REG4_eop_gated_MASK) >> SETUP_DEBUG_REG4_eop_gated_SHIFT)
+
+#define SETUP_DEBUG_REG4_SET_attr_indx_sort0_gated(setup_debug_reg4_reg, attr_indx_sort0_gated) \
+ setup_debug_reg4_reg = (setup_debug_reg4_reg & ~SETUP_DEBUG_REG4_attr_indx_sort0_gated_MASK) | (attr_indx_sort0_gated << SETUP_DEBUG_REG4_attr_indx_sort0_gated_SHIFT)
+#define SETUP_DEBUG_REG4_SET_null_prim_gated(setup_debug_reg4_reg, null_prim_gated) \
+ setup_debug_reg4_reg = (setup_debug_reg4_reg & ~SETUP_DEBUG_REG4_null_prim_gated_MASK) | (null_prim_gated << SETUP_DEBUG_REG4_null_prim_gated_SHIFT)
+#define SETUP_DEBUG_REG4_SET_backfacing_gated(setup_debug_reg4_reg, backfacing_gated) \
+ setup_debug_reg4_reg = (setup_debug_reg4_reg & ~SETUP_DEBUG_REG4_backfacing_gated_MASK) | (backfacing_gated << SETUP_DEBUG_REG4_backfacing_gated_SHIFT)
+#define SETUP_DEBUG_REG4_SET_st_indx_gated(setup_debug_reg4_reg, st_indx_gated) \
+ setup_debug_reg4_reg = (setup_debug_reg4_reg & ~SETUP_DEBUG_REG4_st_indx_gated_MASK) | (st_indx_gated << SETUP_DEBUG_REG4_st_indx_gated_SHIFT)
+#define SETUP_DEBUG_REG4_SET_clipped_gated(setup_debug_reg4_reg, clipped_gated) \
+ setup_debug_reg4_reg = (setup_debug_reg4_reg & ~SETUP_DEBUG_REG4_clipped_gated_MASK) | (clipped_gated << SETUP_DEBUG_REG4_clipped_gated_SHIFT)
+#define SETUP_DEBUG_REG4_SET_dealloc_slot_gated(setup_debug_reg4_reg, dealloc_slot_gated) \
+ setup_debug_reg4_reg = (setup_debug_reg4_reg & ~SETUP_DEBUG_REG4_dealloc_slot_gated_MASK) | (dealloc_slot_gated << SETUP_DEBUG_REG4_dealloc_slot_gated_SHIFT)
+#define SETUP_DEBUG_REG4_SET_xmajor_gated(setup_debug_reg4_reg, xmajor_gated) \
+ setup_debug_reg4_reg = (setup_debug_reg4_reg & ~SETUP_DEBUG_REG4_xmajor_gated_MASK) | (xmajor_gated << SETUP_DEBUG_REG4_xmajor_gated_SHIFT)
+#define SETUP_DEBUG_REG4_SET_diamond_rule_gated(setup_debug_reg4_reg, diamond_rule_gated) \
+ setup_debug_reg4_reg = (setup_debug_reg4_reg & ~SETUP_DEBUG_REG4_diamond_rule_gated_MASK) | (diamond_rule_gated << SETUP_DEBUG_REG4_diamond_rule_gated_SHIFT)
+#define SETUP_DEBUG_REG4_SET_type_gated(setup_debug_reg4_reg, type_gated) \
+ setup_debug_reg4_reg = (setup_debug_reg4_reg & ~SETUP_DEBUG_REG4_type_gated_MASK) | (type_gated << SETUP_DEBUG_REG4_type_gated_SHIFT)
+#define SETUP_DEBUG_REG4_SET_fpov_gated(setup_debug_reg4_reg, fpov_gated) \
+ setup_debug_reg4_reg = (setup_debug_reg4_reg & ~SETUP_DEBUG_REG4_fpov_gated_MASK) | (fpov_gated << SETUP_DEBUG_REG4_fpov_gated_SHIFT)
+#define SETUP_DEBUG_REG4_SET_pmode_prim_gated(setup_debug_reg4_reg, pmode_prim_gated) \
+ setup_debug_reg4_reg = (setup_debug_reg4_reg & ~SETUP_DEBUG_REG4_pmode_prim_gated_MASK) | (pmode_prim_gated << SETUP_DEBUG_REG4_pmode_prim_gated_SHIFT)
+#define SETUP_DEBUG_REG4_SET_event_gated(setup_debug_reg4_reg, event_gated) \
+ setup_debug_reg4_reg = (setup_debug_reg4_reg & ~SETUP_DEBUG_REG4_event_gated_MASK) | (event_gated << SETUP_DEBUG_REG4_event_gated_SHIFT)
+#define SETUP_DEBUG_REG4_SET_eop_gated(setup_debug_reg4_reg, eop_gated) \
+ setup_debug_reg4_reg = (setup_debug_reg4_reg & ~SETUP_DEBUG_REG4_eop_gated_MASK) | (eop_gated << SETUP_DEBUG_REG4_eop_gated_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _setup_debug_reg4_t {
+ unsigned int attr_indx_sort0_gated : SETUP_DEBUG_REG4_attr_indx_sort0_gated_SIZE;
+ unsigned int null_prim_gated : SETUP_DEBUG_REG4_null_prim_gated_SIZE;
+ unsigned int backfacing_gated : SETUP_DEBUG_REG4_backfacing_gated_SIZE;
+ unsigned int st_indx_gated : SETUP_DEBUG_REG4_st_indx_gated_SIZE;
+ unsigned int clipped_gated : SETUP_DEBUG_REG4_clipped_gated_SIZE;
+ unsigned int dealloc_slot_gated : SETUP_DEBUG_REG4_dealloc_slot_gated_SIZE;
+ unsigned int xmajor_gated : SETUP_DEBUG_REG4_xmajor_gated_SIZE;
+ unsigned int diamond_rule_gated : SETUP_DEBUG_REG4_diamond_rule_gated_SIZE;
+ unsigned int type_gated : SETUP_DEBUG_REG4_type_gated_SIZE;
+ unsigned int fpov_gated : SETUP_DEBUG_REG4_fpov_gated_SIZE;
+ unsigned int pmode_prim_gated : SETUP_DEBUG_REG4_pmode_prim_gated_SIZE;
+ unsigned int event_gated : SETUP_DEBUG_REG4_event_gated_SIZE;
+ unsigned int eop_gated : SETUP_DEBUG_REG4_eop_gated_SIZE;
+ unsigned int : 2;
+ } setup_debug_reg4_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _setup_debug_reg4_t {
+ unsigned int : 2;
+ unsigned int eop_gated : SETUP_DEBUG_REG4_eop_gated_SIZE;
+ unsigned int event_gated : SETUP_DEBUG_REG4_event_gated_SIZE;
+ unsigned int pmode_prim_gated : SETUP_DEBUG_REG4_pmode_prim_gated_SIZE;
+ unsigned int fpov_gated : SETUP_DEBUG_REG4_fpov_gated_SIZE;
+ unsigned int type_gated : SETUP_DEBUG_REG4_type_gated_SIZE;
+ unsigned int diamond_rule_gated : SETUP_DEBUG_REG4_diamond_rule_gated_SIZE;
+ unsigned int xmajor_gated : SETUP_DEBUG_REG4_xmajor_gated_SIZE;
+ unsigned int dealloc_slot_gated : SETUP_DEBUG_REG4_dealloc_slot_gated_SIZE;
+ unsigned int clipped_gated : SETUP_DEBUG_REG4_clipped_gated_SIZE;
+ unsigned int st_indx_gated : SETUP_DEBUG_REG4_st_indx_gated_SIZE;
+ unsigned int backfacing_gated : SETUP_DEBUG_REG4_backfacing_gated_SIZE;
+ unsigned int null_prim_gated : SETUP_DEBUG_REG4_null_prim_gated_SIZE;
+ unsigned int attr_indx_sort0_gated : SETUP_DEBUG_REG4_attr_indx_sort0_gated_SIZE;
+ } setup_debug_reg4_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ setup_debug_reg4_t f;
+} setup_debug_reg4_u;
+
+
+/*
+ * SETUP_DEBUG_REG5 struct
+ */
+
+#define SETUP_DEBUG_REG5_attr_indx_sort2_gated_SIZE 11
+#define SETUP_DEBUG_REG5_attr_indx_sort1_gated_SIZE 11
+#define SETUP_DEBUG_REG5_provoking_vtx_gated_SIZE 2
+#define SETUP_DEBUG_REG5_event_id_gated_SIZE 5
+
+#define SETUP_DEBUG_REG5_attr_indx_sort2_gated_SHIFT 0
+#define SETUP_DEBUG_REG5_attr_indx_sort1_gated_SHIFT 11
+#define SETUP_DEBUG_REG5_provoking_vtx_gated_SHIFT 22
+#define SETUP_DEBUG_REG5_event_id_gated_SHIFT 24
+
+#define SETUP_DEBUG_REG5_attr_indx_sort2_gated_MASK 0x000007ff
+#define SETUP_DEBUG_REG5_attr_indx_sort1_gated_MASK 0x003ff800
+#define SETUP_DEBUG_REG5_provoking_vtx_gated_MASK 0x00c00000
+#define SETUP_DEBUG_REG5_event_id_gated_MASK 0x1f000000
+
+#define SETUP_DEBUG_REG5_MASK \
+ (SETUP_DEBUG_REG5_attr_indx_sort2_gated_MASK | \
+ SETUP_DEBUG_REG5_attr_indx_sort1_gated_MASK | \
+ SETUP_DEBUG_REG5_provoking_vtx_gated_MASK | \
+ SETUP_DEBUG_REG5_event_id_gated_MASK)
+
+#define SETUP_DEBUG_REG5(attr_indx_sort2_gated, attr_indx_sort1_gated, provoking_vtx_gated, event_id_gated) \
+ ((attr_indx_sort2_gated << SETUP_DEBUG_REG5_attr_indx_sort2_gated_SHIFT) | \
+ (attr_indx_sort1_gated << SETUP_DEBUG_REG5_attr_indx_sort1_gated_SHIFT) | \
+ (provoking_vtx_gated << SETUP_DEBUG_REG5_provoking_vtx_gated_SHIFT) | \
+ (event_id_gated << SETUP_DEBUG_REG5_event_id_gated_SHIFT))
+
+#define SETUP_DEBUG_REG5_GET_attr_indx_sort2_gated(setup_debug_reg5) \
+ ((setup_debug_reg5 & SETUP_DEBUG_REG5_attr_indx_sort2_gated_MASK) >> SETUP_DEBUG_REG5_attr_indx_sort2_gated_SHIFT)
+#define SETUP_DEBUG_REG5_GET_attr_indx_sort1_gated(setup_debug_reg5) \
+ ((setup_debug_reg5 & SETUP_DEBUG_REG5_attr_indx_sort1_gated_MASK) >> SETUP_DEBUG_REG5_attr_indx_sort1_gated_SHIFT)
+#define SETUP_DEBUG_REG5_GET_provoking_vtx_gated(setup_debug_reg5) \
+ ((setup_debug_reg5 & SETUP_DEBUG_REG5_provoking_vtx_gated_MASK) >> SETUP_DEBUG_REG5_provoking_vtx_gated_SHIFT)
+#define SETUP_DEBUG_REG5_GET_event_id_gated(setup_debug_reg5) \
+ ((setup_debug_reg5 & SETUP_DEBUG_REG5_event_id_gated_MASK) >> SETUP_DEBUG_REG5_event_id_gated_SHIFT)
+
+#define SETUP_DEBUG_REG5_SET_attr_indx_sort2_gated(setup_debug_reg5_reg, attr_indx_sort2_gated) \
+ setup_debug_reg5_reg = (setup_debug_reg5_reg & ~SETUP_DEBUG_REG5_attr_indx_sort2_gated_MASK) | (attr_indx_sort2_gated << SETUP_DEBUG_REG5_attr_indx_sort2_gated_SHIFT)
+#define SETUP_DEBUG_REG5_SET_attr_indx_sort1_gated(setup_debug_reg5_reg, attr_indx_sort1_gated) \
+ setup_debug_reg5_reg = (setup_debug_reg5_reg & ~SETUP_DEBUG_REG5_attr_indx_sort1_gated_MASK) | (attr_indx_sort1_gated << SETUP_DEBUG_REG5_attr_indx_sort1_gated_SHIFT)
+#define SETUP_DEBUG_REG5_SET_provoking_vtx_gated(setup_debug_reg5_reg, provoking_vtx_gated) \
+ setup_debug_reg5_reg = (setup_debug_reg5_reg & ~SETUP_DEBUG_REG5_provoking_vtx_gated_MASK) | (provoking_vtx_gated << SETUP_DEBUG_REG5_provoking_vtx_gated_SHIFT)
+#define SETUP_DEBUG_REG5_SET_event_id_gated(setup_debug_reg5_reg, event_id_gated) \
+ setup_debug_reg5_reg = (setup_debug_reg5_reg & ~SETUP_DEBUG_REG5_event_id_gated_MASK) | (event_id_gated << SETUP_DEBUG_REG5_event_id_gated_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _setup_debug_reg5_t {
+ unsigned int attr_indx_sort2_gated : SETUP_DEBUG_REG5_attr_indx_sort2_gated_SIZE;
+ unsigned int attr_indx_sort1_gated : SETUP_DEBUG_REG5_attr_indx_sort1_gated_SIZE;
+ unsigned int provoking_vtx_gated : SETUP_DEBUG_REG5_provoking_vtx_gated_SIZE;
+ unsigned int event_id_gated : SETUP_DEBUG_REG5_event_id_gated_SIZE;
+ unsigned int : 3;
+ } setup_debug_reg5_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _setup_debug_reg5_t {
+ unsigned int : 3;
+ unsigned int event_id_gated : SETUP_DEBUG_REG5_event_id_gated_SIZE;
+ unsigned int provoking_vtx_gated : SETUP_DEBUG_REG5_provoking_vtx_gated_SIZE;
+ unsigned int attr_indx_sort1_gated : SETUP_DEBUG_REG5_attr_indx_sort1_gated_SIZE;
+ unsigned int attr_indx_sort2_gated : SETUP_DEBUG_REG5_attr_indx_sort2_gated_SIZE;
+ } setup_debug_reg5_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ setup_debug_reg5_t f;
+} setup_debug_reg5_u;
+
+
+/*
+ * PA_SC_DEBUG_CNTL struct
+ */
+
+#define PA_SC_DEBUG_CNTL_SC_DEBUG_INDX_SIZE 5
+
+#define PA_SC_DEBUG_CNTL_SC_DEBUG_INDX_SHIFT 0
+
+#define PA_SC_DEBUG_CNTL_SC_DEBUG_INDX_MASK 0x0000001f
+
+#define PA_SC_DEBUG_CNTL_MASK \
+ (PA_SC_DEBUG_CNTL_SC_DEBUG_INDX_MASK)
+
+#define PA_SC_DEBUG_CNTL(sc_debug_indx) \
+ ((sc_debug_indx << PA_SC_DEBUG_CNTL_SC_DEBUG_INDX_SHIFT))
+
+#define PA_SC_DEBUG_CNTL_GET_SC_DEBUG_INDX(pa_sc_debug_cntl) \
+ ((pa_sc_debug_cntl & PA_SC_DEBUG_CNTL_SC_DEBUG_INDX_MASK) >> PA_SC_DEBUG_CNTL_SC_DEBUG_INDX_SHIFT)
+
+#define PA_SC_DEBUG_CNTL_SET_SC_DEBUG_INDX(pa_sc_debug_cntl_reg, sc_debug_indx) \
+ pa_sc_debug_cntl_reg = (pa_sc_debug_cntl_reg & ~PA_SC_DEBUG_CNTL_SC_DEBUG_INDX_MASK) | (sc_debug_indx << PA_SC_DEBUG_CNTL_SC_DEBUG_INDX_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_debug_cntl_t {
+ unsigned int sc_debug_indx : PA_SC_DEBUG_CNTL_SC_DEBUG_INDX_SIZE;
+ unsigned int : 27;
+ } pa_sc_debug_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_debug_cntl_t {
+ unsigned int : 27;
+ unsigned int sc_debug_indx : PA_SC_DEBUG_CNTL_SC_DEBUG_INDX_SIZE;
+ } pa_sc_debug_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_debug_cntl_t f;
+} pa_sc_debug_cntl_u;
+
+
+/*
+ * PA_SC_DEBUG_DATA struct
+ */
+
+#define PA_SC_DEBUG_DATA_DATA_SIZE 32
+
+#define PA_SC_DEBUG_DATA_DATA_SHIFT 0
+
+#define PA_SC_DEBUG_DATA_DATA_MASK 0xffffffff
+
+#define PA_SC_DEBUG_DATA_MASK \
+ (PA_SC_DEBUG_DATA_DATA_MASK)
+
+#define PA_SC_DEBUG_DATA(data) \
+ ((data << PA_SC_DEBUG_DATA_DATA_SHIFT))
+
+#define PA_SC_DEBUG_DATA_GET_DATA(pa_sc_debug_data) \
+ ((pa_sc_debug_data & PA_SC_DEBUG_DATA_DATA_MASK) >> PA_SC_DEBUG_DATA_DATA_SHIFT)
+
+#define PA_SC_DEBUG_DATA_SET_DATA(pa_sc_debug_data_reg, data) \
+ pa_sc_debug_data_reg = (pa_sc_debug_data_reg & ~PA_SC_DEBUG_DATA_DATA_MASK) | (data << PA_SC_DEBUG_DATA_DATA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _pa_sc_debug_data_t {
+ unsigned int data : PA_SC_DEBUG_DATA_DATA_SIZE;
+ } pa_sc_debug_data_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _pa_sc_debug_data_t {
+ unsigned int data : PA_SC_DEBUG_DATA_DATA_SIZE;
+ } pa_sc_debug_data_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ pa_sc_debug_data_t f;
+} pa_sc_debug_data_u;
+
+
+/*
+ * SC_DEBUG_0 struct
+ */
+
+#define SC_DEBUG_0_pa_freeze_b1_SIZE 1
+#define SC_DEBUG_0_pa_sc_valid_SIZE 1
+#define SC_DEBUG_0_pa_sc_phase_SIZE 3
+#define SC_DEBUG_0_cntx_cnt_SIZE 7
+#define SC_DEBUG_0_decr_cntx_cnt_SIZE 1
+#define SC_DEBUG_0_incr_cntx_cnt_SIZE 1
+#define SC_DEBUG_0_trigger_SIZE 1
+
+#define SC_DEBUG_0_pa_freeze_b1_SHIFT 0
+#define SC_DEBUG_0_pa_sc_valid_SHIFT 1
+#define SC_DEBUG_0_pa_sc_phase_SHIFT 2
+#define SC_DEBUG_0_cntx_cnt_SHIFT 5
+#define SC_DEBUG_0_decr_cntx_cnt_SHIFT 12
+#define SC_DEBUG_0_incr_cntx_cnt_SHIFT 13
+#define SC_DEBUG_0_trigger_SHIFT 31
+
+#define SC_DEBUG_0_pa_freeze_b1_MASK 0x00000001
+#define SC_DEBUG_0_pa_sc_valid_MASK 0x00000002
+#define SC_DEBUG_0_pa_sc_phase_MASK 0x0000001c
+#define SC_DEBUG_0_cntx_cnt_MASK 0x00000fe0
+#define SC_DEBUG_0_decr_cntx_cnt_MASK 0x00001000
+#define SC_DEBUG_0_incr_cntx_cnt_MASK 0x00002000
+#define SC_DEBUG_0_trigger_MASK 0x80000000
+
+#define SC_DEBUG_0_MASK \
+ (SC_DEBUG_0_pa_freeze_b1_MASK | \
+ SC_DEBUG_0_pa_sc_valid_MASK | \
+ SC_DEBUG_0_pa_sc_phase_MASK | \
+ SC_DEBUG_0_cntx_cnt_MASK | \
+ SC_DEBUG_0_decr_cntx_cnt_MASK | \
+ SC_DEBUG_0_incr_cntx_cnt_MASK | \
+ SC_DEBUG_0_trigger_MASK)
+
+#define SC_DEBUG_0(pa_freeze_b1, pa_sc_valid, pa_sc_phase, cntx_cnt, decr_cntx_cnt, incr_cntx_cnt, trigger) \
+ ((pa_freeze_b1 << SC_DEBUG_0_pa_freeze_b1_SHIFT) | \
+ (pa_sc_valid << SC_DEBUG_0_pa_sc_valid_SHIFT) | \
+ (pa_sc_phase << SC_DEBUG_0_pa_sc_phase_SHIFT) | \
+ (cntx_cnt << SC_DEBUG_0_cntx_cnt_SHIFT) | \
+ (decr_cntx_cnt << SC_DEBUG_0_decr_cntx_cnt_SHIFT) | \
+ (incr_cntx_cnt << SC_DEBUG_0_incr_cntx_cnt_SHIFT) | \
+ (trigger << SC_DEBUG_0_trigger_SHIFT))
+
+#define SC_DEBUG_0_GET_pa_freeze_b1(sc_debug_0) \
+ ((sc_debug_0 & SC_DEBUG_0_pa_freeze_b1_MASK) >> SC_DEBUG_0_pa_freeze_b1_SHIFT)
+#define SC_DEBUG_0_GET_pa_sc_valid(sc_debug_0) \
+ ((sc_debug_0 & SC_DEBUG_0_pa_sc_valid_MASK) >> SC_DEBUG_0_pa_sc_valid_SHIFT)
+#define SC_DEBUG_0_GET_pa_sc_phase(sc_debug_0) \
+ ((sc_debug_0 & SC_DEBUG_0_pa_sc_phase_MASK) >> SC_DEBUG_0_pa_sc_phase_SHIFT)
+#define SC_DEBUG_0_GET_cntx_cnt(sc_debug_0) \
+ ((sc_debug_0 & SC_DEBUG_0_cntx_cnt_MASK) >> SC_DEBUG_0_cntx_cnt_SHIFT)
+#define SC_DEBUG_0_GET_decr_cntx_cnt(sc_debug_0) \
+ ((sc_debug_0 & SC_DEBUG_0_decr_cntx_cnt_MASK) >> SC_DEBUG_0_decr_cntx_cnt_SHIFT)
+#define SC_DEBUG_0_GET_incr_cntx_cnt(sc_debug_0) \
+ ((sc_debug_0 & SC_DEBUG_0_incr_cntx_cnt_MASK) >> SC_DEBUG_0_incr_cntx_cnt_SHIFT)
+#define SC_DEBUG_0_GET_trigger(sc_debug_0) \
+ ((sc_debug_0 & SC_DEBUG_0_trigger_MASK) >> SC_DEBUG_0_trigger_SHIFT)
+
+#define SC_DEBUG_0_SET_pa_freeze_b1(sc_debug_0_reg, pa_freeze_b1) \
+ sc_debug_0_reg = (sc_debug_0_reg & ~SC_DEBUG_0_pa_freeze_b1_MASK) | (pa_freeze_b1 << SC_DEBUG_0_pa_freeze_b1_SHIFT)
+#define SC_DEBUG_0_SET_pa_sc_valid(sc_debug_0_reg, pa_sc_valid) \
+ sc_debug_0_reg = (sc_debug_0_reg & ~SC_DEBUG_0_pa_sc_valid_MASK) | (pa_sc_valid << SC_DEBUG_0_pa_sc_valid_SHIFT)
+#define SC_DEBUG_0_SET_pa_sc_phase(sc_debug_0_reg, pa_sc_phase) \
+ sc_debug_0_reg = (sc_debug_0_reg & ~SC_DEBUG_0_pa_sc_phase_MASK) | (pa_sc_phase << SC_DEBUG_0_pa_sc_phase_SHIFT)
+#define SC_DEBUG_0_SET_cntx_cnt(sc_debug_0_reg, cntx_cnt) \
+ sc_debug_0_reg = (sc_debug_0_reg & ~SC_DEBUG_0_cntx_cnt_MASK) | (cntx_cnt << SC_DEBUG_0_cntx_cnt_SHIFT)
+#define SC_DEBUG_0_SET_decr_cntx_cnt(sc_debug_0_reg, decr_cntx_cnt) \
+ sc_debug_0_reg = (sc_debug_0_reg & ~SC_DEBUG_0_decr_cntx_cnt_MASK) | (decr_cntx_cnt << SC_DEBUG_0_decr_cntx_cnt_SHIFT)
+#define SC_DEBUG_0_SET_incr_cntx_cnt(sc_debug_0_reg, incr_cntx_cnt) \
+ sc_debug_0_reg = (sc_debug_0_reg & ~SC_DEBUG_0_incr_cntx_cnt_MASK) | (incr_cntx_cnt << SC_DEBUG_0_incr_cntx_cnt_SHIFT)
+#define SC_DEBUG_0_SET_trigger(sc_debug_0_reg, trigger) \
+ sc_debug_0_reg = (sc_debug_0_reg & ~SC_DEBUG_0_trigger_MASK) | (trigger << SC_DEBUG_0_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sc_debug_0_t {
+ unsigned int pa_freeze_b1 : SC_DEBUG_0_pa_freeze_b1_SIZE;
+ unsigned int pa_sc_valid : SC_DEBUG_0_pa_sc_valid_SIZE;
+ unsigned int pa_sc_phase : SC_DEBUG_0_pa_sc_phase_SIZE;
+ unsigned int cntx_cnt : SC_DEBUG_0_cntx_cnt_SIZE;
+ unsigned int decr_cntx_cnt : SC_DEBUG_0_decr_cntx_cnt_SIZE;
+ unsigned int incr_cntx_cnt : SC_DEBUG_0_incr_cntx_cnt_SIZE;
+ unsigned int : 17;
+ unsigned int trigger : SC_DEBUG_0_trigger_SIZE;
+ } sc_debug_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sc_debug_0_t {
+ unsigned int trigger : SC_DEBUG_0_trigger_SIZE;
+ unsigned int : 17;
+ unsigned int incr_cntx_cnt : SC_DEBUG_0_incr_cntx_cnt_SIZE;
+ unsigned int decr_cntx_cnt : SC_DEBUG_0_decr_cntx_cnt_SIZE;
+ unsigned int cntx_cnt : SC_DEBUG_0_cntx_cnt_SIZE;
+ unsigned int pa_sc_phase : SC_DEBUG_0_pa_sc_phase_SIZE;
+ unsigned int pa_sc_valid : SC_DEBUG_0_pa_sc_valid_SIZE;
+ unsigned int pa_freeze_b1 : SC_DEBUG_0_pa_freeze_b1_SIZE;
+ } sc_debug_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sc_debug_0_t f;
+} sc_debug_0_u;
+
+
+/*
+ * SC_DEBUG_1 struct
+ */
+
+#define SC_DEBUG_1_em_state_SIZE 3
+#define SC_DEBUG_1_em1_data_ready_SIZE 1
+#define SC_DEBUG_1_em2_data_ready_SIZE 1
+#define SC_DEBUG_1_move_em1_to_em2_SIZE 1
+#define SC_DEBUG_1_ef_data_ready_SIZE 1
+#define SC_DEBUG_1_ef_state_SIZE 2
+#define SC_DEBUG_1_pipe_valid_SIZE 1
+#define SC_DEBUG_1_trigger_SIZE 1
+
+#define SC_DEBUG_1_em_state_SHIFT 0
+#define SC_DEBUG_1_em1_data_ready_SHIFT 3
+#define SC_DEBUG_1_em2_data_ready_SHIFT 4
+#define SC_DEBUG_1_move_em1_to_em2_SHIFT 5
+#define SC_DEBUG_1_ef_data_ready_SHIFT 6
+#define SC_DEBUG_1_ef_state_SHIFT 7
+#define SC_DEBUG_1_pipe_valid_SHIFT 9
+#define SC_DEBUG_1_trigger_SHIFT 31
+
+#define SC_DEBUG_1_em_state_MASK 0x00000007
+#define SC_DEBUG_1_em1_data_ready_MASK 0x00000008
+#define SC_DEBUG_1_em2_data_ready_MASK 0x00000010
+#define SC_DEBUG_1_move_em1_to_em2_MASK 0x00000020
+#define SC_DEBUG_1_ef_data_ready_MASK 0x00000040
+#define SC_DEBUG_1_ef_state_MASK 0x00000180
+#define SC_DEBUG_1_pipe_valid_MASK 0x00000200
+#define SC_DEBUG_1_trigger_MASK 0x80000000
+
+#define SC_DEBUG_1_MASK \
+ (SC_DEBUG_1_em_state_MASK | \
+ SC_DEBUG_1_em1_data_ready_MASK | \
+ SC_DEBUG_1_em2_data_ready_MASK | \
+ SC_DEBUG_1_move_em1_to_em2_MASK | \
+ SC_DEBUG_1_ef_data_ready_MASK | \
+ SC_DEBUG_1_ef_state_MASK | \
+ SC_DEBUG_1_pipe_valid_MASK | \
+ SC_DEBUG_1_trigger_MASK)
+
+#define SC_DEBUG_1(em_state, em1_data_ready, em2_data_ready, move_em1_to_em2, ef_data_ready, ef_state, pipe_valid, trigger) \
+ ((em_state << SC_DEBUG_1_em_state_SHIFT) | \
+ (em1_data_ready << SC_DEBUG_1_em1_data_ready_SHIFT) | \
+ (em2_data_ready << SC_DEBUG_1_em2_data_ready_SHIFT) | \
+ (move_em1_to_em2 << SC_DEBUG_1_move_em1_to_em2_SHIFT) | \
+ (ef_data_ready << SC_DEBUG_1_ef_data_ready_SHIFT) | \
+ (ef_state << SC_DEBUG_1_ef_state_SHIFT) | \
+ (pipe_valid << SC_DEBUG_1_pipe_valid_SHIFT) | \
+ (trigger << SC_DEBUG_1_trigger_SHIFT))
+
+#define SC_DEBUG_1_GET_em_state(sc_debug_1) \
+ ((sc_debug_1 & SC_DEBUG_1_em_state_MASK) >> SC_DEBUG_1_em_state_SHIFT)
+#define SC_DEBUG_1_GET_em1_data_ready(sc_debug_1) \
+ ((sc_debug_1 & SC_DEBUG_1_em1_data_ready_MASK) >> SC_DEBUG_1_em1_data_ready_SHIFT)
+#define SC_DEBUG_1_GET_em2_data_ready(sc_debug_1) \
+ ((sc_debug_1 & SC_DEBUG_1_em2_data_ready_MASK) >> SC_DEBUG_1_em2_data_ready_SHIFT)
+#define SC_DEBUG_1_GET_move_em1_to_em2(sc_debug_1) \
+ ((sc_debug_1 & SC_DEBUG_1_move_em1_to_em2_MASK) >> SC_DEBUG_1_move_em1_to_em2_SHIFT)
+#define SC_DEBUG_1_GET_ef_data_ready(sc_debug_1) \
+ ((sc_debug_1 & SC_DEBUG_1_ef_data_ready_MASK) >> SC_DEBUG_1_ef_data_ready_SHIFT)
+#define SC_DEBUG_1_GET_ef_state(sc_debug_1) \
+ ((sc_debug_1 & SC_DEBUG_1_ef_state_MASK) >> SC_DEBUG_1_ef_state_SHIFT)
+#define SC_DEBUG_1_GET_pipe_valid(sc_debug_1) \
+ ((sc_debug_1 & SC_DEBUG_1_pipe_valid_MASK) >> SC_DEBUG_1_pipe_valid_SHIFT)
+#define SC_DEBUG_1_GET_trigger(sc_debug_1) \
+ ((sc_debug_1 & SC_DEBUG_1_trigger_MASK) >> SC_DEBUG_1_trigger_SHIFT)
+
+#define SC_DEBUG_1_SET_em_state(sc_debug_1_reg, em_state) \
+ sc_debug_1_reg = (sc_debug_1_reg & ~SC_DEBUG_1_em_state_MASK) | (em_state << SC_DEBUG_1_em_state_SHIFT)
+#define SC_DEBUG_1_SET_em1_data_ready(sc_debug_1_reg, em1_data_ready) \
+ sc_debug_1_reg = (sc_debug_1_reg & ~SC_DEBUG_1_em1_data_ready_MASK) | (em1_data_ready << SC_DEBUG_1_em1_data_ready_SHIFT)
+#define SC_DEBUG_1_SET_em2_data_ready(sc_debug_1_reg, em2_data_ready) \
+ sc_debug_1_reg = (sc_debug_1_reg & ~SC_DEBUG_1_em2_data_ready_MASK) | (em2_data_ready << SC_DEBUG_1_em2_data_ready_SHIFT)
+#define SC_DEBUG_1_SET_move_em1_to_em2(sc_debug_1_reg, move_em1_to_em2) \
+ sc_debug_1_reg = (sc_debug_1_reg & ~SC_DEBUG_1_move_em1_to_em2_MASK) | (move_em1_to_em2 << SC_DEBUG_1_move_em1_to_em2_SHIFT)
+#define SC_DEBUG_1_SET_ef_data_ready(sc_debug_1_reg, ef_data_ready) \
+ sc_debug_1_reg = (sc_debug_1_reg & ~SC_DEBUG_1_ef_data_ready_MASK) | (ef_data_ready << SC_DEBUG_1_ef_data_ready_SHIFT)
+#define SC_DEBUG_1_SET_ef_state(sc_debug_1_reg, ef_state) \
+ sc_debug_1_reg = (sc_debug_1_reg & ~SC_DEBUG_1_ef_state_MASK) | (ef_state << SC_DEBUG_1_ef_state_SHIFT)
+#define SC_DEBUG_1_SET_pipe_valid(sc_debug_1_reg, pipe_valid) \
+ sc_debug_1_reg = (sc_debug_1_reg & ~SC_DEBUG_1_pipe_valid_MASK) | (pipe_valid << SC_DEBUG_1_pipe_valid_SHIFT)
+#define SC_DEBUG_1_SET_trigger(sc_debug_1_reg, trigger) \
+ sc_debug_1_reg = (sc_debug_1_reg & ~SC_DEBUG_1_trigger_MASK) | (trigger << SC_DEBUG_1_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sc_debug_1_t {
+ unsigned int em_state : SC_DEBUG_1_em_state_SIZE;
+ unsigned int em1_data_ready : SC_DEBUG_1_em1_data_ready_SIZE;
+ unsigned int em2_data_ready : SC_DEBUG_1_em2_data_ready_SIZE;
+ unsigned int move_em1_to_em2 : SC_DEBUG_1_move_em1_to_em2_SIZE;
+ unsigned int ef_data_ready : SC_DEBUG_1_ef_data_ready_SIZE;
+ unsigned int ef_state : SC_DEBUG_1_ef_state_SIZE;
+ unsigned int pipe_valid : SC_DEBUG_1_pipe_valid_SIZE;
+ unsigned int : 21;
+ unsigned int trigger : SC_DEBUG_1_trigger_SIZE;
+ } sc_debug_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sc_debug_1_t {
+ unsigned int trigger : SC_DEBUG_1_trigger_SIZE;
+ unsigned int : 21;
+ unsigned int pipe_valid : SC_DEBUG_1_pipe_valid_SIZE;
+ unsigned int ef_state : SC_DEBUG_1_ef_state_SIZE;
+ unsigned int ef_data_ready : SC_DEBUG_1_ef_data_ready_SIZE;
+ unsigned int move_em1_to_em2 : SC_DEBUG_1_move_em1_to_em2_SIZE;
+ unsigned int em2_data_ready : SC_DEBUG_1_em2_data_ready_SIZE;
+ unsigned int em1_data_ready : SC_DEBUG_1_em1_data_ready_SIZE;
+ unsigned int em_state : SC_DEBUG_1_em_state_SIZE;
+ } sc_debug_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sc_debug_1_t f;
+} sc_debug_1_u;
+
+
+/*
+ * SC_DEBUG_2 struct
+ */
+
+#define SC_DEBUG_2_rc_rtr_dly_SIZE 1
+#define SC_DEBUG_2_qmask_ff_alm_full_d1_SIZE 1
+#define SC_DEBUG_2_pipe_freeze_b_SIZE 1
+#define SC_DEBUG_2_prim_rts_SIZE 1
+#define SC_DEBUG_2_next_prim_rts_dly_SIZE 1
+#define SC_DEBUG_2_next_prim_rtr_dly_SIZE 1
+#define SC_DEBUG_2_pre_stage1_rts_d1_SIZE 1
+#define SC_DEBUG_2_stage0_rts_SIZE 1
+#define SC_DEBUG_2_phase_rts_dly_SIZE 1
+#define SC_DEBUG_2_end_of_prim_s1_dly_SIZE 1
+#define SC_DEBUG_2_pass_empty_prim_s1_SIZE 1
+#define SC_DEBUG_2_event_id_s1_SIZE 5
+#define SC_DEBUG_2_event_s1_SIZE 1
+#define SC_DEBUG_2_trigger_SIZE 1
+
+#define SC_DEBUG_2_rc_rtr_dly_SHIFT 0
+#define SC_DEBUG_2_qmask_ff_alm_full_d1_SHIFT 1
+#define SC_DEBUG_2_pipe_freeze_b_SHIFT 3
+#define SC_DEBUG_2_prim_rts_SHIFT 4
+#define SC_DEBUG_2_next_prim_rts_dly_SHIFT 5
+#define SC_DEBUG_2_next_prim_rtr_dly_SHIFT 6
+#define SC_DEBUG_2_pre_stage1_rts_d1_SHIFT 7
+#define SC_DEBUG_2_stage0_rts_SHIFT 8
+#define SC_DEBUG_2_phase_rts_dly_SHIFT 9
+#define SC_DEBUG_2_end_of_prim_s1_dly_SHIFT 15
+#define SC_DEBUG_2_pass_empty_prim_s1_SHIFT 16
+#define SC_DEBUG_2_event_id_s1_SHIFT 17
+#define SC_DEBUG_2_event_s1_SHIFT 22
+#define SC_DEBUG_2_trigger_SHIFT 31
+
+#define SC_DEBUG_2_rc_rtr_dly_MASK 0x00000001
+#define SC_DEBUG_2_qmask_ff_alm_full_d1_MASK 0x00000002
+#define SC_DEBUG_2_pipe_freeze_b_MASK 0x00000008
+#define SC_DEBUG_2_prim_rts_MASK 0x00000010
+#define SC_DEBUG_2_next_prim_rts_dly_MASK 0x00000020
+#define SC_DEBUG_2_next_prim_rtr_dly_MASK 0x00000040
+#define SC_DEBUG_2_pre_stage1_rts_d1_MASK 0x00000080
+#define SC_DEBUG_2_stage0_rts_MASK 0x00000100
+#define SC_DEBUG_2_phase_rts_dly_MASK 0x00000200
+#define SC_DEBUG_2_end_of_prim_s1_dly_MASK 0x00008000
+#define SC_DEBUG_2_pass_empty_prim_s1_MASK 0x00010000
+#define SC_DEBUG_2_event_id_s1_MASK 0x003e0000
+#define SC_DEBUG_2_event_s1_MASK 0x00400000
+#define SC_DEBUG_2_trigger_MASK 0x80000000
+
+#define SC_DEBUG_2_MASK \
+ (SC_DEBUG_2_rc_rtr_dly_MASK | \
+ SC_DEBUG_2_qmask_ff_alm_full_d1_MASK | \
+ SC_DEBUG_2_pipe_freeze_b_MASK | \
+ SC_DEBUG_2_prim_rts_MASK | \
+ SC_DEBUG_2_next_prim_rts_dly_MASK | \
+ SC_DEBUG_2_next_prim_rtr_dly_MASK | \
+ SC_DEBUG_2_pre_stage1_rts_d1_MASK | \
+ SC_DEBUG_2_stage0_rts_MASK | \
+ SC_DEBUG_2_phase_rts_dly_MASK | \
+ SC_DEBUG_2_end_of_prim_s1_dly_MASK | \
+ SC_DEBUG_2_pass_empty_prim_s1_MASK | \
+ SC_DEBUG_2_event_id_s1_MASK | \
+ SC_DEBUG_2_event_s1_MASK | \
+ SC_DEBUG_2_trigger_MASK)
+
+#define SC_DEBUG_2(rc_rtr_dly, qmask_ff_alm_full_d1, pipe_freeze_b, prim_rts, next_prim_rts_dly, next_prim_rtr_dly, pre_stage1_rts_d1, stage0_rts, phase_rts_dly, end_of_prim_s1_dly, pass_empty_prim_s1, event_id_s1, event_s1, trigger) \
+ ((rc_rtr_dly << SC_DEBUG_2_rc_rtr_dly_SHIFT) | \
+ (qmask_ff_alm_full_d1 << SC_DEBUG_2_qmask_ff_alm_full_d1_SHIFT) | \
+ (pipe_freeze_b << SC_DEBUG_2_pipe_freeze_b_SHIFT) | \
+ (prim_rts << SC_DEBUG_2_prim_rts_SHIFT) | \
+ (next_prim_rts_dly << SC_DEBUG_2_next_prim_rts_dly_SHIFT) | \
+ (next_prim_rtr_dly << SC_DEBUG_2_next_prim_rtr_dly_SHIFT) | \
+ (pre_stage1_rts_d1 << SC_DEBUG_2_pre_stage1_rts_d1_SHIFT) | \
+ (stage0_rts << SC_DEBUG_2_stage0_rts_SHIFT) | \
+ (phase_rts_dly << SC_DEBUG_2_phase_rts_dly_SHIFT) | \
+ (end_of_prim_s1_dly << SC_DEBUG_2_end_of_prim_s1_dly_SHIFT) | \
+ (pass_empty_prim_s1 << SC_DEBUG_2_pass_empty_prim_s1_SHIFT) | \
+ (event_id_s1 << SC_DEBUG_2_event_id_s1_SHIFT) | \
+ (event_s1 << SC_DEBUG_2_event_s1_SHIFT) | \
+ (trigger << SC_DEBUG_2_trigger_SHIFT))
+
+#define SC_DEBUG_2_GET_rc_rtr_dly(sc_debug_2) \
+ ((sc_debug_2 & SC_DEBUG_2_rc_rtr_dly_MASK) >> SC_DEBUG_2_rc_rtr_dly_SHIFT)
+#define SC_DEBUG_2_GET_qmask_ff_alm_full_d1(sc_debug_2) \
+ ((sc_debug_2 & SC_DEBUG_2_qmask_ff_alm_full_d1_MASK) >> SC_DEBUG_2_qmask_ff_alm_full_d1_SHIFT)
+#define SC_DEBUG_2_GET_pipe_freeze_b(sc_debug_2) \
+ ((sc_debug_2 & SC_DEBUG_2_pipe_freeze_b_MASK) >> SC_DEBUG_2_pipe_freeze_b_SHIFT)
+#define SC_DEBUG_2_GET_prim_rts(sc_debug_2) \
+ ((sc_debug_2 & SC_DEBUG_2_prim_rts_MASK) >> SC_DEBUG_2_prim_rts_SHIFT)
+#define SC_DEBUG_2_GET_next_prim_rts_dly(sc_debug_2) \
+ ((sc_debug_2 & SC_DEBUG_2_next_prim_rts_dly_MASK) >> SC_DEBUG_2_next_prim_rts_dly_SHIFT)
+#define SC_DEBUG_2_GET_next_prim_rtr_dly(sc_debug_2) \
+ ((sc_debug_2 & SC_DEBUG_2_next_prim_rtr_dly_MASK) >> SC_DEBUG_2_next_prim_rtr_dly_SHIFT)
+#define SC_DEBUG_2_GET_pre_stage1_rts_d1(sc_debug_2) \
+ ((sc_debug_2 & SC_DEBUG_2_pre_stage1_rts_d1_MASK) >> SC_DEBUG_2_pre_stage1_rts_d1_SHIFT)
+#define SC_DEBUG_2_GET_stage0_rts(sc_debug_2) \
+ ((sc_debug_2 & SC_DEBUG_2_stage0_rts_MASK) >> SC_DEBUG_2_stage0_rts_SHIFT)
+#define SC_DEBUG_2_GET_phase_rts_dly(sc_debug_2) \
+ ((sc_debug_2 & SC_DEBUG_2_phase_rts_dly_MASK) >> SC_DEBUG_2_phase_rts_dly_SHIFT)
+#define SC_DEBUG_2_GET_end_of_prim_s1_dly(sc_debug_2) \
+ ((sc_debug_2 & SC_DEBUG_2_end_of_prim_s1_dly_MASK) >> SC_DEBUG_2_end_of_prim_s1_dly_SHIFT)
+#define SC_DEBUG_2_GET_pass_empty_prim_s1(sc_debug_2) \
+ ((sc_debug_2 & SC_DEBUG_2_pass_empty_prim_s1_MASK) >> SC_DEBUG_2_pass_empty_prim_s1_SHIFT)
+#define SC_DEBUG_2_GET_event_id_s1(sc_debug_2) \
+ ((sc_debug_2 & SC_DEBUG_2_event_id_s1_MASK) >> SC_DEBUG_2_event_id_s1_SHIFT)
+#define SC_DEBUG_2_GET_event_s1(sc_debug_2) \
+ ((sc_debug_2 & SC_DEBUG_2_event_s1_MASK) >> SC_DEBUG_2_event_s1_SHIFT)
+#define SC_DEBUG_2_GET_trigger(sc_debug_2) \
+ ((sc_debug_2 & SC_DEBUG_2_trigger_MASK) >> SC_DEBUG_2_trigger_SHIFT)
+
+#define SC_DEBUG_2_SET_rc_rtr_dly(sc_debug_2_reg, rc_rtr_dly) \
+ sc_debug_2_reg = (sc_debug_2_reg & ~SC_DEBUG_2_rc_rtr_dly_MASK) | (rc_rtr_dly << SC_DEBUG_2_rc_rtr_dly_SHIFT)
+#define SC_DEBUG_2_SET_qmask_ff_alm_full_d1(sc_debug_2_reg, qmask_ff_alm_full_d1) \
+ sc_debug_2_reg = (sc_debug_2_reg & ~SC_DEBUG_2_qmask_ff_alm_full_d1_MASK) | (qmask_ff_alm_full_d1 << SC_DEBUG_2_qmask_ff_alm_full_d1_SHIFT)
+#define SC_DEBUG_2_SET_pipe_freeze_b(sc_debug_2_reg, pipe_freeze_b) \
+ sc_debug_2_reg = (sc_debug_2_reg & ~SC_DEBUG_2_pipe_freeze_b_MASK) | (pipe_freeze_b << SC_DEBUG_2_pipe_freeze_b_SHIFT)
+#define SC_DEBUG_2_SET_prim_rts(sc_debug_2_reg, prim_rts) \
+ sc_debug_2_reg = (sc_debug_2_reg & ~SC_DEBUG_2_prim_rts_MASK) | (prim_rts << SC_DEBUG_2_prim_rts_SHIFT)
+#define SC_DEBUG_2_SET_next_prim_rts_dly(sc_debug_2_reg, next_prim_rts_dly) \
+ sc_debug_2_reg = (sc_debug_2_reg & ~SC_DEBUG_2_next_prim_rts_dly_MASK) | (next_prim_rts_dly << SC_DEBUG_2_next_prim_rts_dly_SHIFT)
+#define SC_DEBUG_2_SET_next_prim_rtr_dly(sc_debug_2_reg, next_prim_rtr_dly) \
+ sc_debug_2_reg = (sc_debug_2_reg & ~SC_DEBUG_2_next_prim_rtr_dly_MASK) | (next_prim_rtr_dly << SC_DEBUG_2_next_prim_rtr_dly_SHIFT)
+#define SC_DEBUG_2_SET_pre_stage1_rts_d1(sc_debug_2_reg, pre_stage1_rts_d1) \
+ sc_debug_2_reg = (sc_debug_2_reg & ~SC_DEBUG_2_pre_stage1_rts_d1_MASK) | (pre_stage1_rts_d1 << SC_DEBUG_2_pre_stage1_rts_d1_SHIFT)
+#define SC_DEBUG_2_SET_stage0_rts(sc_debug_2_reg, stage0_rts) \
+ sc_debug_2_reg = (sc_debug_2_reg & ~SC_DEBUG_2_stage0_rts_MASK) | (stage0_rts << SC_DEBUG_2_stage0_rts_SHIFT)
+#define SC_DEBUG_2_SET_phase_rts_dly(sc_debug_2_reg, phase_rts_dly) \
+ sc_debug_2_reg = (sc_debug_2_reg & ~SC_DEBUG_2_phase_rts_dly_MASK) | (phase_rts_dly << SC_DEBUG_2_phase_rts_dly_SHIFT)
+#define SC_DEBUG_2_SET_end_of_prim_s1_dly(sc_debug_2_reg, end_of_prim_s1_dly) \
+ sc_debug_2_reg = (sc_debug_2_reg & ~SC_DEBUG_2_end_of_prim_s1_dly_MASK) | (end_of_prim_s1_dly << SC_DEBUG_2_end_of_prim_s1_dly_SHIFT)
+#define SC_DEBUG_2_SET_pass_empty_prim_s1(sc_debug_2_reg, pass_empty_prim_s1) \
+ sc_debug_2_reg = (sc_debug_2_reg & ~SC_DEBUG_2_pass_empty_prim_s1_MASK) | (pass_empty_prim_s1 << SC_DEBUG_2_pass_empty_prim_s1_SHIFT)
+#define SC_DEBUG_2_SET_event_id_s1(sc_debug_2_reg, event_id_s1) \
+ sc_debug_2_reg = (sc_debug_2_reg & ~SC_DEBUG_2_event_id_s1_MASK) | (event_id_s1 << SC_DEBUG_2_event_id_s1_SHIFT)
+#define SC_DEBUG_2_SET_event_s1(sc_debug_2_reg, event_s1) \
+ sc_debug_2_reg = (sc_debug_2_reg & ~SC_DEBUG_2_event_s1_MASK) | (event_s1 << SC_DEBUG_2_event_s1_SHIFT)
+#define SC_DEBUG_2_SET_trigger(sc_debug_2_reg, trigger) \
+ sc_debug_2_reg = (sc_debug_2_reg & ~SC_DEBUG_2_trigger_MASK) | (trigger << SC_DEBUG_2_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sc_debug_2_t {
+ unsigned int rc_rtr_dly : SC_DEBUG_2_rc_rtr_dly_SIZE;
+ unsigned int qmask_ff_alm_full_d1 : SC_DEBUG_2_qmask_ff_alm_full_d1_SIZE;
+ unsigned int : 1;
+ unsigned int pipe_freeze_b : SC_DEBUG_2_pipe_freeze_b_SIZE;
+ unsigned int prim_rts : SC_DEBUG_2_prim_rts_SIZE;
+ unsigned int next_prim_rts_dly : SC_DEBUG_2_next_prim_rts_dly_SIZE;
+ unsigned int next_prim_rtr_dly : SC_DEBUG_2_next_prim_rtr_dly_SIZE;
+ unsigned int pre_stage1_rts_d1 : SC_DEBUG_2_pre_stage1_rts_d1_SIZE;
+ unsigned int stage0_rts : SC_DEBUG_2_stage0_rts_SIZE;
+ unsigned int phase_rts_dly : SC_DEBUG_2_phase_rts_dly_SIZE;
+ unsigned int : 5;
+ unsigned int end_of_prim_s1_dly : SC_DEBUG_2_end_of_prim_s1_dly_SIZE;
+ unsigned int pass_empty_prim_s1 : SC_DEBUG_2_pass_empty_prim_s1_SIZE;
+ unsigned int event_id_s1 : SC_DEBUG_2_event_id_s1_SIZE;
+ unsigned int event_s1 : SC_DEBUG_2_event_s1_SIZE;
+ unsigned int : 8;
+ unsigned int trigger : SC_DEBUG_2_trigger_SIZE;
+ } sc_debug_2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sc_debug_2_t {
+ unsigned int trigger : SC_DEBUG_2_trigger_SIZE;
+ unsigned int : 8;
+ unsigned int event_s1 : SC_DEBUG_2_event_s1_SIZE;
+ unsigned int event_id_s1 : SC_DEBUG_2_event_id_s1_SIZE;
+ unsigned int pass_empty_prim_s1 : SC_DEBUG_2_pass_empty_prim_s1_SIZE;
+ unsigned int end_of_prim_s1_dly : SC_DEBUG_2_end_of_prim_s1_dly_SIZE;
+ unsigned int : 5;
+ unsigned int phase_rts_dly : SC_DEBUG_2_phase_rts_dly_SIZE;
+ unsigned int stage0_rts : SC_DEBUG_2_stage0_rts_SIZE;
+ unsigned int pre_stage1_rts_d1 : SC_DEBUG_2_pre_stage1_rts_d1_SIZE;
+ unsigned int next_prim_rtr_dly : SC_DEBUG_2_next_prim_rtr_dly_SIZE;
+ unsigned int next_prim_rts_dly : SC_DEBUG_2_next_prim_rts_dly_SIZE;
+ unsigned int prim_rts : SC_DEBUG_2_prim_rts_SIZE;
+ unsigned int pipe_freeze_b : SC_DEBUG_2_pipe_freeze_b_SIZE;
+ unsigned int : 1;
+ unsigned int qmask_ff_alm_full_d1 : SC_DEBUG_2_qmask_ff_alm_full_d1_SIZE;
+ unsigned int rc_rtr_dly : SC_DEBUG_2_rc_rtr_dly_SIZE;
+ } sc_debug_2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sc_debug_2_t f;
+} sc_debug_2_u;
+
+
+/*
+ * SC_DEBUG_3 struct
+ */
+
+#define SC_DEBUG_3_x_curr_s1_SIZE 11
+#define SC_DEBUG_3_y_curr_s1_SIZE 11
+#define SC_DEBUG_3_trigger_SIZE 1
+
+#define SC_DEBUG_3_x_curr_s1_SHIFT 0
+#define SC_DEBUG_3_y_curr_s1_SHIFT 11
+#define SC_DEBUG_3_trigger_SHIFT 31
+
+#define SC_DEBUG_3_x_curr_s1_MASK 0x000007ff
+#define SC_DEBUG_3_y_curr_s1_MASK 0x003ff800
+#define SC_DEBUG_3_trigger_MASK 0x80000000
+
+#define SC_DEBUG_3_MASK \
+ (SC_DEBUG_3_x_curr_s1_MASK | \
+ SC_DEBUG_3_y_curr_s1_MASK | \
+ SC_DEBUG_3_trigger_MASK)
+
+#define SC_DEBUG_3(x_curr_s1, y_curr_s1, trigger) \
+ ((x_curr_s1 << SC_DEBUG_3_x_curr_s1_SHIFT) | \
+ (y_curr_s1 << SC_DEBUG_3_y_curr_s1_SHIFT) | \
+ (trigger << SC_DEBUG_3_trigger_SHIFT))
+
+#define SC_DEBUG_3_GET_x_curr_s1(sc_debug_3) \
+ ((sc_debug_3 & SC_DEBUG_3_x_curr_s1_MASK) >> SC_DEBUG_3_x_curr_s1_SHIFT)
+#define SC_DEBUG_3_GET_y_curr_s1(sc_debug_3) \
+ ((sc_debug_3 & SC_DEBUG_3_y_curr_s1_MASK) >> SC_DEBUG_3_y_curr_s1_SHIFT)
+#define SC_DEBUG_3_GET_trigger(sc_debug_3) \
+ ((sc_debug_3 & SC_DEBUG_3_trigger_MASK) >> SC_DEBUG_3_trigger_SHIFT)
+
+#define SC_DEBUG_3_SET_x_curr_s1(sc_debug_3_reg, x_curr_s1) \
+ sc_debug_3_reg = (sc_debug_3_reg & ~SC_DEBUG_3_x_curr_s1_MASK) | (x_curr_s1 << SC_DEBUG_3_x_curr_s1_SHIFT)
+#define SC_DEBUG_3_SET_y_curr_s1(sc_debug_3_reg, y_curr_s1) \
+ sc_debug_3_reg = (sc_debug_3_reg & ~SC_DEBUG_3_y_curr_s1_MASK) | (y_curr_s1 << SC_DEBUG_3_y_curr_s1_SHIFT)
+#define SC_DEBUG_3_SET_trigger(sc_debug_3_reg, trigger) \
+ sc_debug_3_reg = (sc_debug_3_reg & ~SC_DEBUG_3_trigger_MASK) | (trigger << SC_DEBUG_3_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sc_debug_3_t {
+ unsigned int x_curr_s1 : SC_DEBUG_3_x_curr_s1_SIZE;
+ unsigned int y_curr_s1 : SC_DEBUG_3_y_curr_s1_SIZE;
+ unsigned int : 9;
+ unsigned int trigger : SC_DEBUG_3_trigger_SIZE;
+ } sc_debug_3_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sc_debug_3_t {
+ unsigned int trigger : SC_DEBUG_3_trigger_SIZE;
+ unsigned int : 9;
+ unsigned int y_curr_s1 : SC_DEBUG_3_y_curr_s1_SIZE;
+ unsigned int x_curr_s1 : SC_DEBUG_3_x_curr_s1_SIZE;
+ } sc_debug_3_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sc_debug_3_t f;
+} sc_debug_3_u;
+
+
+/*
+ * SC_DEBUG_4 struct
+ */
+
+#define SC_DEBUG_4_y_end_s1_SIZE 14
+#define SC_DEBUG_4_y_start_s1_SIZE 14
+#define SC_DEBUG_4_y_dir_s1_SIZE 1
+#define SC_DEBUG_4_trigger_SIZE 1
+
+#define SC_DEBUG_4_y_end_s1_SHIFT 0
+#define SC_DEBUG_4_y_start_s1_SHIFT 14
+#define SC_DEBUG_4_y_dir_s1_SHIFT 28
+#define SC_DEBUG_4_trigger_SHIFT 31
+
+#define SC_DEBUG_4_y_end_s1_MASK 0x00003fff
+#define SC_DEBUG_4_y_start_s1_MASK 0x0fffc000
+#define SC_DEBUG_4_y_dir_s1_MASK 0x10000000
+#define SC_DEBUG_4_trigger_MASK 0x80000000
+
+#define SC_DEBUG_4_MASK \
+ (SC_DEBUG_4_y_end_s1_MASK | \
+ SC_DEBUG_4_y_start_s1_MASK | \
+ SC_DEBUG_4_y_dir_s1_MASK | \
+ SC_DEBUG_4_trigger_MASK)
+
+#define SC_DEBUG_4(y_end_s1, y_start_s1, y_dir_s1, trigger) \
+ ((y_end_s1 << SC_DEBUG_4_y_end_s1_SHIFT) | \
+ (y_start_s1 << SC_DEBUG_4_y_start_s1_SHIFT) | \
+ (y_dir_s1 << SC_DEBUG_4_y_dir_s1_SHIFT) | \
+ (trigger << SC_DEBUG_4_trigger_SHIFT))
+
+#define SC_DEBUG_4_GET_y_end_s1(sc_debug_4) \
+ ((sc_debug_4 & SC_DEBUG_4_y_end_s1_MASK) >> SC_DEBUG_4_y_end_s1_SHIFT)
+#define SC_DEBUG_4_GET_y_start_s1(sc_debug_4) \
+ ((sc_debug_4 & SC_DEBUG_4_y_start_s1_MASK) >> SC_DEBUG_4_y_start_s1_SHIFT)
+#define SC_DEBUG_4_GET_y_dir_s1(sc_debug_4) \
+ ((sc_debug_4 & SC_DEBUG_4_y_dir_s1_MASK) >> SC_DEBUG_4_y_dir_s1_SHIFT)
+#define SC_DEBUG_4_GET_trigger(sc_debug_4) \
+ ((sc_debug_4 & SC_DEBUG_4_trigger_MASK) >> SC_DEBUG_4_trigger_SHIFT)
+
+#define SC_DEBUG_4_SET_y_end_s1(sc_debug_4_reg, y_end_s1) \
+ sc_debug_4_reg = (sc_debug_4_reg & ~SC_DEBUG_4_y_end_s1_MASK) | (y_end_s1 << SC_DEBUG_4_y_end_s1_SHIFT)
+#define SC_DEBUG_4_SET_y_start_s1(sc_debug_4_reg, y_start_s1) \
+ sc_debug_4_reg = (sc_debug_4_reg & ~SC_DEBUG_4_y_start_s1_MASK) | (y_start_s1 << SC_DEBUG_4_y_start_s1_SHIFT)
+#define SC_DEBUG_4_SET_y_dir_s1(sc_debug_4_reg, y_dir_s1) \
+ sc_debug_4_reg = (sc_debug_4_reg & ~SC_DEBUG_4_y_dir_s1_MASK) | (y_dir_s1 << SC_DEBUG_4_y_dir_s1_SHIFT)
+#define SC_DEBUG_4_SET_trigger(sc_debug_4_reg, trigger) \
+ sc_debug_4_reg = (sc_debug_4_reg & ~SC_DEBUG_4_trigger_MASK) | (trigger << SC_DEBUG_4_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sc_debug_4_t {
+ unsigned int y_end_s1 : SC_DEBUG_4_y_end_s1_SIZE;
+ unsigned int y_start_s1 : SC_DEBUG_4_y_start_s1_SIZE;
+ unsigned int y_dir_s1 : SC_DEBUG_4_y_dir_s1_SIZE;
+ unsigned int : 2;
+ unsigned int trigger : SC_DEBUG_4_trigger_SIZE;
+ } sc_debug_4_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sc_debug_4_t {
+ unsigned int trigger : SC_DEBUG_4_trigger_SIZE;
+ unsigned int : 2;
+ unsigned int y_dir_s1 : SC_DEBUG_4_y_dir_s1_SIZE;
+ unsigned int y_start_s1 : SC_DEBUG_4_y_start_s1_SIZE;
+ unsigned int y_end_s1 : SC_DEBUG_4_y_end_s1_SIZE;
+ } sc_debug_4_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sc_debug_4_t f;
+} sc_debug_4_u;
+
+
+/*
+ * SC_DEBUG_5 struct
+ */
+
+#define SC_DEBUG_5_x_end_s1_SIZE 14
+#define SC_DEBUG_5_x_start_s1_SIZE 14
+#define SC_DEBUG_5_x_dir_s1_SIZE 1
+#define SC_DEBUG_5_trigger_SIZE 1
+
+#define SC_DEBUG_5_x_end_s1_SHIFT 0
+#define SC_DEBUG_5_x_start_s1_SHIFT 14
+#define SC_DEBUG_5_x_dir_s1_SHIFT 28
+#define SC_DEBUG_5_trigger_SHIFT 31
+
+#define SC_DEBUG_5_x_end_s1_MASK 0x00003fff
+#define SC_DEBUG_5_x_start_s1_MASK 0x0fffc000
+#define SC_DEBUG_5_x_dir_s1_MASK 0x10000000
+#define SC_DEBUG_5_trigger_MASK 0x80000000
+
+#define SC_DEBUG_5_MASK \
+ (SC_DEBUG_5_x_end_s1_MASK | \
+ SC_DEBUG_5_x_start_s1_MASK | \
+ SC_DEBUG_5_x_dir_s1_MASK | \
+ SC_DEBUG_5_trigger_MASK)
+
+#define SC_DEBUG_5(x_end_s1, x_start_s1, x_dir_s1, trigger) \
+ ((x_end_s1 << SC_DEBUG_5_x_end_s1_SHIFT) | \
+ (x_start_s1 << SC_DEBUG_5_x_start_s1_SHIFT) | \
+ (x_dir_s1 << SC_DEBUG_5_x_dir_s1_SHIFT) | \
+ (trigger << SC_DEBUG_5_trigger_SHIFT))
+
+#define SC_DEBUG_5_GET_x_end_s1(sc_debug_5) \
+ ((sc_debug_5 & SC_DEBUG_5_x_end_s1_MASK) >> SC_DEBUG_5_x_end_s1_SHIFT)
+#define SC_DEBUG_5_GET_x_start_s1(sc_debug_5) \
+ ((sc_debug_5 & SC_DEBUG_5_x_start_s1_MASK) >> SC_DEBUG_5_x_start_s1_SHIFT)
+#define SC_DEBUG_5_GET_x_dir_s1(sc_debug_5) \
+ ((sc_debug_5 & SC_DEBUG_5_x_dir_s1_MASK) >> SC_DEBUG_5_x_dir_s1_SHIFT)
+#define SC_DEBUG_5_GET_trigger(sc_debug_5) \
+ ((sc_debug_5 & SC_DEBUG_5_trigger_MASK) >> SC_DEBUG_5_trigger_SHIFT)
+
+#define SC_DEBUG_5_SET_x_end_s1(sc_debug_5_reg, x_end_s1) \
+ sc_debug_5_reg = (sc_debug_5_reg & ~SC_DEBUG_5_x_end_s1_MASK) | (x_end_s1 << SC_DEBUG_5_x_end_s1_SHIFT)
+#define SC_DEBUG_5_SET_x_start_s1(sc_debug_5_reg, x_start_s1) \
+ sc_debug_5_reg = (sc_debug_5_reg & ~SC_DEBUG_5_x_start_s1_MASK) | (x_start_s1 << SC_DEBUG_5_x_start_s1_SHIFT)
+#define SC_DEBUG_5_SET_x_dir_s1(sc_debug_5_reg, x_dir_s1) \
+ sc_debug_5_reg = (sc_debug_5_reg & ~SC_DEBUG_5_x_dir_s1_MASK) | (x_dir_s1 << SC_DEBUG_5_x_dir_s1_SHIFT)
+#define SC_DEBUG_5_SET_trigger(sc_debug_5_reg, trigger) \
+ sc_debug_5_reg = (sc_debug_5_reg & ~SC_DEBUG_5_trigger_MASK) | (trigger << SC_DEBUG_5_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sc_debug_5_t {
+ unsigned int x_end_s1 : SC_DEBUG_5_x_end_s1_SIZE;
+ unsigned int x_start_s1 : SC_DEBUG_5_x_start_s1_SIZE;
+ unsigned int x_dir_s1 : SC_DEBUG_5_x_dir_s1_SIZE;
+ unsigned int : 2;
+ unsigned int trigger : SC_DEBUG_5_trigger_SIZE;
+ } sc_debug_5_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sc_debug_5_t {
+ unsigned int trigger : SC_DEBUG_5_trigger_SIZE;
+ unsigned int : 2;
+ unsigned int x_dir_s1 : SC_DEBUG_5_x_dir_s1_SIZE;
+ unsigned int x_start_s1 : SC_DEBUG_5_x_start_s1_SIZE;
+ unsigned int x_end_s1 : SC_DEBUG_5_x_end_s1_SIZE;
+ } sc_debug_5_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sc_debug_5_t f;
+} sc_debug_5_u;
+
+
+/*
+ * SC_DEBUG_6 struct
+ */
+
+#define SC_DEBUG_6_z_ff_empty_SIZE 1
+#define SC_DEBUG_6_qmcntl_ff_empty_SIZE 1
+#define SC_DEBUG_6_xy_ff_empty_SIZE 1
+#define SC_DEBUG_6_event_flag_SIZE 1
+#define SC_DEBUG_6_z_mask_needed_SIZE 1
+#define SC_DEBUG_6_state_SIZE 3
+#define SC_DEBUG_6_state_delayed_SIZE 3
+#define SC_DEBUG_6_data_valid_SIZE 1
+#define SC_DEBUG_6_data_valid_d_SIZE 1
+#define SC_DEBUG_6_tilex_delayed_SIZE 9
+#define SC_DEBUG_6_tiley_delayed_SIZE 9
+#define SC_DEBUG_6_trigger_SIZE 1
+
+#define SC_DEBUG_6_z_ff_empty_SHIFT 0
+#define SC_DEBUG_6_qmcntl_ff_empty_SHIFT 1
+#define SC_DEBUG_6_xy_ff_empty_SHIFT 2
+#define SC_DEBUG_6_event_flag_SHIFT 3
+#define SC_DEBUG_6_z_mask_needed_SHIFT 4
+#define SC_DEBUG_6_state_SHIFT 5
+#define SC_DEBUG_6_state_delayed_SHIFT 8
+#define SC_DEBUG_6_data_valid_SHIFT 11
+#define SC_DEBUG_6_data_valid_d_SHIFT 12
+#define SC_DEBUG_6_tilex_delayed_SHIFT 13
+#define SC_DEBUG_6_tiley_delayed_SHIFT 22
+#define SC_DEBUG_6_trigger_SHIFT 31
+
+#define SC_DEBUG_6_z_ff_empty_MASK 0x00000001
+#define SC_DEBUG_6_qmcntl_ff_empty_MASK 0x00000002
+#define SC_DEBUG_6_xy_ff_empty_MASK 0x00000004
+#define SC_DEBUG_6_event_flag_MASK 0x00000008
+#define SC_DEBUG_6_z_mask_needed_MASK 0x00000010
+#define SC_DEBUG_6_state_MASK 0x000000e0
+#define SC_DEBUG_6_state_delayed_MASK 0x00000700
+#define SC_DEBUG_6_data_valid_MASK 0x00000800
+#define SC_DEBUG_6_data_valid_d_MASK 0x00001000
+#define SC_DEBUG_6_tilex_delayed_MASK 0x003fe000
+#define SC_DEBUG_6_tiley_delayed_MASK 0x7fc00000
+#define SC_DEBUG_6_trigger_MASK 0x80000000
+
+#define SC_DEBUG_6_MASK \
+ (SC_DEBUG_6_z_ff_empty_MASK | \
+ SC_DEBUG_6_qmcntl_ff_empty_MASK | \
+ SC_DEBUG_6_xy_ff_empty_MASK | \
+ SC_DEBUG_6_event_flag_MASK | \
+ SC_DEBUG_6_z_mask_needed_MASK | \
+ SC_DEBUG_6_state_MASK | \
+ SC_DEBUG_6_state_delayed_MASK | \
+ SC_DEBUG_6_data_valid_MASK | \
+ SC_DEBUG_6_data_valid_d_MASK | \
+ SC_DEBUG_6_tilex_delayed_MASK | \
+ SC_DEBUG_6_tiley_delayed_MASK | \
+ SC_DEBUG_6_trigger_MASK)
+
+#define SC_DEBUG_6(z_ff_empty, qmcntl_ff_empty, xy_ff_empty, event_flag, z_mask_needed, state, state_delayed, data_valid, data_valid_d, tilex_delayed, tiley_delayed, trigger) \
+ ((z_ff_empty << SC_DEBUG_6_z_ff_empty_SHIFT) | \
+ (qmcntl_ff_empty << SC_DEBUG_6_qmcntl_ff_empty_SHIFT) | \
+ (xy_ff_empty << SC_DEBUG_6_xy_ff_empty_SHIFT) | \
+ (event_flag << SC_DEBUG_6_event_flag_SHIFT) | \
+ (z_mask_needed << SC_DEBUG_6_z_mask_needed_SHIFT) | \
+ (state << SC_DEBUG_6_state_SHIFT) | \
+ (state_delayed << SC_DEBUG_6_state_delayed_SHIFT) | \
+ (data_valid << SC_DEBUG_6_data_valid_SHIFT) | \
+ (data_valid_d << SC_DEBUG_6_data_valid_d_SHIFT) | \
+ (tilex_delayed << SC_DEBUG_6_tilex_delayed_SHIFT) | \
+ (tiley_delayed << SC_DEBUG_6_tiley_delayed_SHIFT) | \
+ (trigger << SC_DEBUG_6_trigger_SHIFT))
+
+#define SC_DEBUG_6_GET_z_ff_empty(sc_debug_6) \
+ ((sc_debug_6 & SC_DEBUG_6_z_ff_empty_MASK) >> SC_DEBUG_6_z_ff_empty_SHIFT)
+#define SC_DEBUG_6_GET_qmcntl_ff_empty(sc_debug_6) \
+ ((sc_debug_6 & SC_DEBUG_6_qmcntl_ff_empty_MASK) >> SC_DEBUG_6_qmcntl_ff_empty_SHIFT)
+#define SC_DEBUG_6_GET_xy_ff_empty(sc_debug_6) \
+ ((sc_debug_6 & SC_DEBUG_6_xy_ff_empty_MASK) >> SC_DEBUG_6_xy_ff_empty_SHIFT)
+#define SC_DEBUG_6_GET_event_flag(sc_debug_6) \
+ ((sc_debug_6 & SC_DEBUG_6_event_flag_MASK) >> SC_DEBUG_6_event_flag_SHIFT)
+#define SC_DEBUG_6_GET_z_mask_needed(sc_debug_6) \
+ ((sc_debug_6 & SC_DEBUG_6_z_mask_needed_MASK) >> SC_DEBUG_6_z_mask_needed_SHIFT)
+#define SC_DEBUG_6_GET_state(sc_debug_6) \
+ ((sc_debug_6 & SC_DEBUG_6_state_MASK) >> SC_DEBUG_6_state_SHIFT)
+#define SC_DEBUG_6_GET_state_delayed(sc_debug_6) \
+ ((sc_debug_6 & SC_DEBUG_6_state_delayed_MASK) >> SC_DEBUG_6_state_delayed_SHIFT)
+#define SC_DEBUG_6_GET_data_valid(sc_debug_6) \
+ ((sc_debug_6 & SC_DEBUG_6_data_valid_MASK) >> SC_DEBUG_6_data_valid_SHIFT)
+#define SC_DEBUG_6_GET_data_valid_d(sc_debug_6) \
+ ((sc_debug_6 & SC_DEBUG_6_data_valid_d_MASK) >> SC_DEBUG_6_data_valid_d_SHIFT)
+#define SC_DEBUG_6_GET_tilex_delayed(sc_debug_6) \
+ ((sc_debug_6 & SC_DEBUG_6_tilex_delayed_MASK) >> SC_DEBUG_6_tilex_delayed_SHIFT)
+#define SC_DEBUG_6_GET_tiley_delayed(sc_debug_6) \
+ ((sc_debug_6 & SC_DEBUG_6_tiley_delayed_MASK) >> SC_DEBUG_6_tiley_delayed_SHIFT)
+#define SC_DEBUG_6_GET_trigger(sc_debug_6) \
+ ((sc_debug_6 & SC_DEBUG_6_trigger_MASK) >> SC_DEBUG_6_trigger_SHIFT)
+
+#define SC_DEBUG_6_SET_z_ff_empty(sc_debug_6_reg, z_ff_empty) \
+ sc_debug_6_reg = (sc_debug_6_reg & ~SC_DEBUG_6_z_ff_empty_MASK) | (z_ff_empty << SC_DEBUG_6_z_ff_empty_SHIFT)
+#define SC_DEBUG_6_SET_qmcntl_ff_empty(sc_debug_6_reg, qmcntl_ff_empty) \
+ sc_debug_6_reg = (sc_debug_6_reg & ~SC_DEBUG_6_qmcntl_ff_empty_MASK) | (qmcntl_ff_empty << SC_DEBUG_6_qmcntl_ff_empty_SHIFT)
+#define SC_DEBUG_6_SET_xy_ff_empty(sc_debug_6_reg, xy_ff_empty) \
+ sc_debug_6_reg = (sc_debug_6_reg & ~SC_DEBUG_6_xy_ff_empty_MASK) | (xy_ff_empty << SC_DEBUG_6_xy_ff_empty_SHIFT)
+#define SC_DEBUG_6_SET_event_flag(sc_debug_6_reg, event_flag) \
+ sc_debug_6_reg = (sc_debug_6_reg & ~SC_DEBUG_6_event_flag_MASK) | (event_flag << SC_DEBUG_6_event_flag_SHIFT)
+#define SC_DEBUG_6_SET_z_mask_needed(sc_debug_6_reg, z_mask_needed) \
+ sc_debug_6_reg = (sc_debug_6_reg & ~SC_DEBUG_6_z_mask_needed_MASK) | (z_mask_needed << SC_DEBUG_6_z_mask_needed_SHIFT)
+#define SC_DEBUG_6_SET_state(sc_debug_6_reg, state) \
+ sc_debug_6_reg = (sc_debug_6_reg & ~SC_DEBUG_6_state_MASK) | (state << SC_DEBUG_6_state_SHIFT)
+#define SC_DEBUG_6_SET_state_delayed(sc_debug_6_reg, state_delayed) \
+ sc_debug_6_reg = (sc_debug_6_reg & ~SC_DEBUG_6_state_delayed_MASK) | (state_delayed << SC_DEBUG_6_state_delayed_SHIFT)
+#define SC_DEBUG_6_SET_data_valid(sc_debug_6_reg, data_valid) \
+ sc_debug_6_reg = (sc_debug_6_reg & ~SC_DEBUG_6_data_valid_MASK) | (data_valid << SC_DEBUG_6_data_valid_SHIFT)
+#define SC_DEBUG_6_SET_data_valid_d(sc_debug_6_reg, data_valid_d) \
+ sc_debug_6_reg = (sc_debug_6_reg & ~SC_DEBUG_6_data_valid_d_MASK) | (data_valid_d << SC_DEBUG_6_data_valid_d_SHIFT)
+#define SC_DEBUG_6_SET_tilex_delayed(sc_debug_6_reg, tilex_delayed) \
+ sc_debug_6_reg = (sc_debug_6_reg & ~SC_DEBUG_6_tilex_delayed_MASK) | (tilex_delayed << SC_DEBUG_6_tilex_delayed_SHIFT)
+#define SC_DEBUG_6_SET_tiley_delayed(sc_debug_6_reg, tiley_delayed) \
+ sc_debug_6_reg = (sc_debug_6_reg & ~SC_DEBUG_6_tiley_delayed_MASK) | (tiley_delayed << SC_DEBUG_6_tiley_delayed_SHIFT)
+#define SC_DEBUG_6_SET_trigger(sc_debug_6_reg, trigger) \
+ sc_debug_6_reg = (sc_debug_6_reg & ~SC_DEBUG_6_trigger_MASK) | (trigger << SC_DEBUG_6_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sc_debug_6_t {
+ unsigned int z_ff_empty : SC_DEBUG_6_z_ff_empty_SIZE;
+ unsigned int qmcntl_ff_empty : SC_DEBUG_6_qmcntl_ff_empty_SIZE;
+ unsigned int xy_ff_empty : SC_DEBUG_6_xy_ff_empty_SIZE;
+ unsigned int event_flag : SC_DEBUG_6_event_flag_SIZE;
+ unsigned int z_mask_needed : SC_DEBUG_6_z_mask_needed_SIZE;
+ unsigned int state : SC_DEBUG_6_state_SIZE;
+ unsigned int state_delayed : SC_DEBUG_6_state_delayed_SIZE;
+ unsigned int data_valid : SC_DEBUG_6_data_valid_SIZE;
+ unsigned int data_valid_d : SC_DEBUG_6_data_valid_d_SIZE;
+ unsigned int tilex_delayed : SC_DEBUG_6_tilex_delayed_SIZE;
+ unsigned int tiley_delayed : SC_DEBUG_6_tiley_delayed_SIZE;
+ unsigned int trigger : SC_DEBUG_6_trigger_SIZE;
+ } sc_debug_6_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sc_debug_6_t {
+ unsigned int trigger : SC_DEBUG_6_trigger_SIZE;
+ unsigned int tiley_delayed : SC_DEBUG_6_tiley_delayed_SIZE;
+ unsigned int tilex_delayed : SC_DEBUG_6_tilex_delayed_SIZE;
+ unsigned int data_valid_d : SC_DEBUG_6_data_valid_d_SIZE;
+ unsigned int data_valid : SC_DEBUG_6_data_valid_SIZE;
+ unsigned int state_delayed : SC_DEBUG_6_state_delayed_SIZE;
+ unsigned int state : SC_DEBUG_6_state_SIZE;
+ unsigned int z_mask_needed : SC_DEBUG_6_z_mask_needed_SIZE;
+ unsigned int event_flag : SC_DEBUG_6_event_flag_SIZE;
+ unsigned int xy_ff_empty : SC_DEBUG_6_xy_ff_empty_SIZE;
+ unsigned int qmcntl_ff_empty : SC_DEBUG_6_qmcntl_ff_empty_SIZE;
+ unsigned int z_ff_empty : SC_DEBUG_6_z_ff_empty_SIZE;
+ } sc_debug_6_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sc_debug_6_t f;
+} sc_debug_6_u;
+
+
+/*
+ * SC_DEBUG_7 struct
+ */
+
+#define SC_DEBUG_7_event_flag_SIZE 1
+#define SC_DEBUG_7_deallocate_SIZE 3
+#define SC_DEBUG_7_fposition_SIZE 1
+#define SC_DEBUG_7_sr_prim_we_SIZE 1
+#define SC_DEBUG_7_last_tile_SIZE 1
+#define SC_DEBUG_7_tile_ff_we_SIZE 1
+#define SC_DEBUG_7_qs_data_valid_SIZE 1
+#define SC_DEBUG_7_qs_q0_y_SIZE 2
+#define SC_DEBUG_7_qs_q0_x_SIZE 2
+#define SC_DEBUG_7_qs_q0_valid_SIZE 1
+#define SC_DEBUG_7_prim_ff_we_SIZE 1
+#define SC_DEBUG_7_tile_ff_re_SIZE 1
+#define SC_DEBUG_7_fw_prim_data_valid_SIZE 1
+#define SC_DEBUG_7_last_quad_of_tile_SIZE 1
+#define SC_DEBUG_7_first_quad_of_tile_SIZE 1
+#define SC_DEBUG_7_first_quad_of_prim_SIZE 1
+#define SC_DEBUG_7_new_prim_SIZE 1
+#define SC_DEBUG_7_load_new_tile_data_SIZE 1
+#define SC_DEBUG_7_state_SIZE 2
+#define SC_DEBUG_7_fifos_ready_SIZE 1
+#define SC_DEBUG_7_trigger_SIZE 1
+
+#define SC_DEBUG_7_event_flag_SHIFT 0
+#define SC_DEBUG_7_deallocate_SHIFT 1
+#define SC_DEBUG_7_fposition_SHIFT 4
+#define SC_DEBUG_7_sr_prim_we_SHIFT 5
+#define SC_DEBUG_7_last_tile_SHIFT 6
+#define SC_DEBUG_7_tile_ff_we_SHIFT 7
+#define SC_DEBUG_7_qs_data_valid_SHIFT 8
+#define SC_DEBUG_7_qs_q0_y_SHIFT 9
+#define SC_DEBUG_7_qs_q0_x_SHIFT 11
+#define SC_DEBUG_7_qs_q0_valid_SHIFT 13
+#define SC_DEBUG_7_prim_ff_we_SHIFT 14
+#define SC_DEBUG_7_tile_ff_re_SHIFT 15
+#define SC_DEBUG_7_fw_prim_data_valid_SHIFT 16
+#define SC_DEBUG_7_last_quad_of_tile_SHIFT 17
+#define SC_DEBUG_7_first_quad_of_tile_SHIFT 18
+#define SC_DEBUG_7_first_quad_of_prim_SHIFT 19
+#define SC_DEBUG_7_new_prim_SHIFT 20
+#define SC_DEBUG_7_load_new_tile_data_SHIFT 21
+#define SC_DEBUG_7_state_SHIFT 22
+#define SC_DEBUG_7_fifos_ready_SHIFT 24
+#define SC_DEBUG_7_trigger_SHIFT 31
+
+#define SC_DEBUG_7_event_flag_MASK 0x00000001
+#define SC_DEBUG_7_deallocate_MASK 0x0000000e
+#define SC_DEBUG_7_fposition_MASK 0x00000010
+#define SC_DEBUG_7_sr_prim_we_MASK 0x00000020
+#define SC_DEBUG_7_last_tile_MASK 0x00000040
+#define SC_DEBUG_7_tile_ff_we_MASK 0x00000080
+#define SC_DEBUG_7_qs_data_valid_MASK 0x00000100
+#define SC_DEBUG_7_qs_q0_y_MASK 0x00000600
+#define SC_DEBUG_7_qs_q0_x_MASK 0x00001800
+#define SC_DEBUG_7_qs_q0_valid_MASK 0x00002000
+#define SC_DEBUG_7_prim_ff_we_MASK 0x00004000
+#define SC_DEBUG_7_tile_ff_re_MASK 0x00008000
+#define SC_DEBUG_7_fw_prim_data_valid_MASK 0x00010000
+#define SC_DEBUG_7_last_quad_of_tile_MASK 0x00020000
+#define SC_DEBUG_7_first_quad_of_tile_MASK 0x00040000
+#define SC_DEBUG_7_first_quad_of_prim_MASK 0x00080000
+#define SC_DEBUG_7_new_prim_MASK 0x00100000
+#define SC_DEBUG_7_load_new_tile_data_MASK 0x00200000
+#define SC_DEBUG_7_state_MASK 0x00c00000
+#define SC_DEBUG_7_fifos_ready_MASK 0x01000000
+#define SC_DEBUG_7_trigger_MASK 0x80000000
+
+#define SC_DEBUG_7_MASK \
+ (SC_DEBUG_7_event_flag_MASK | \
+ SC_DEBUG_7_deallocate_MASK | \
+ SC_DEBUG_7_fposition_MASK | \
+ SC_DEBUG_7_sr_prim_we_MASK | \
+ SC_DEBUG_7_last_tile_MASK | \
+ SC_DEBUG_7_tile_ff_we_MASK | \
+ SC_DEBUG_7_qs_data_valid_MASK | \
+ SC_DEBUG_7_qs_q0_y_MASK | \
+ SC_DEBUG_7_qs_q0_x_MASK | \
+ SC_DEBUG_7_qs_q0_valid_MASK | \
+ SC_DEBUG_7_prim_ff_we_MASK | \
+ SC_DEBUG_7_tile_ff_re_MASK | \
+ SC_DEBUG_7_fw_prim_data_valid_MASK | \
+ SC_DEBUG_7_last_quad_of_tile_MASK | \
+ SC_DEBUG_7_first_quad_of_tile_MASK | \
+ SC_DEBUG_7_first_quad_of_prim_MASK | \
+ SC_DEBUG_7_new_prim_MASK | \
+ SC_DEBUG_7_load_new_tile_data_MASK | \
+ SC_DEBUG_7_state_MASK | \
+ SC_DEBUG_7_fifos_ready_MASK | \
+ SC_DEBUG_7_trigger_MASK)
+
+#define SC_DEBUG_7(event_flag, deallocate, fposition, sr_prim_we, last_tile, tile_ff_we, qs_data_valid, qs_q0_y, qs_q0_x, qs_q0_valid, prim_ff_we, tile_ff_re, fw_prim_data_valid, last_quad_of_tile, first_quad_of_tile, first_quad_of_prim, new_prim, load_new_tile_data, state, fifos_ready, trigger) \
+ ((event_flag << SC_DEBUG_7_event_flag_SHIFT) | \
+ (deallocate << SC_DEBUG_7_deallocate_SHIFT) | \
+ (fposition << SC_DEBUG_7_fposition_SHIFT) | \
+ (sr_prim_we << SC_DEBUG_7_sr_prim_we_SHIFT) | \
+ (last_tile << SC_DEBUG_7_last_tile_SHIFT) | \
+ (tile_ff_we << SC_DEBUG_7_tile_ff_we_SHIFT) | \
+ (qs_data_valid << SC_DEBUG_7_qs_data_valid_SHIFT) | \
+ (qs_q0_y << SC_DEBUG_7_qs_q0_y_SHIFT) | \
+ (qs_q0_x << SC_DEBUG_7_qs_q0_x_SHIFT) | \
+ (qs_q0_valid << SC_DEBUG_7_qs_q0_valid_SHIFT) | \
+ (prim_ff_we << SC_DEBUG_7_prim_ff_we_SHIFT) | \
+ (tile_ff_re << SC_DEBUG_7_tile_ff_re_SHIFT) | \
+ (fw_prim_data_valid << SC_DEBUG_7_fw_prim_data_valid_SHIFT) | \
+ (last_quad_of_tile << SC_DEBUG_7_last_quad_of_tile_SHIFT) | \
+ (first_quad_of_tile << SC_DEBUG_7_first_quad_of_tile_SHIFT) | \
+ (first_quad_of_prim << SC_DEBUG_7_first_quad_of_prim_SHIFT) | \
+ (new_prim << SC_DEBUG_7_new_prim_SHIFT) | \
+ (load_new_tile_data << SC_DEBUG_7_load_new_tile_data_SHIFT) | \
+ (state << SC_DEBUG_7_state_SHIFT) | \
+ (fifos_ready << SC_DEBUG_7_fifos_ready_SHIFT) | \
+ (trigger << SC_DEBUG_7_trigger_SHIFT))
+
+#define SC_DEBUG_7_GET_event_flag(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_event_flag_MASK) >> SC_DEBUG_7_event_flag_SHIFT)
+#define SC_DEBUG_7_GET_deallocate(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_deallocate_MASK) >> SC_DEBUG_7_deallocate_SHIFT)
+#define SC_DEBUG_7_GET_fposition(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_fposition_MASK) >> SC_DEBUG_7_fposition_SHIFT)
+#define SC_DEBUG_7_GET_sr_prim_we(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_sr_prim_we_MASK) >> SC_DEBUG_7_sr_prim_we_SHIFT)
+#define SC_DEBUG_7_GET_last_tile(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_last_tile_MASK) >> SC_DEBUG_7_last_tile_SHIFT)
+#define SC_DEBUG_7_GET_tile_ff_we(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_tile_ff_we_MASK) >> SC_DEBUG_7_tile_ff_we_SHIFT)
+#define SC_DEBUG_7_GET_qs_data_valid(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_qs_data_valid_MASK) >> SC_DEBUG_7_qs_data_valid_SHIFT)
+#define SC_DEBUG_7_GET_qs_q0_y(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_qs_q0_y_MASK) >> SC_DEBUG_7_qs_q0_y_SHIFT)
+#define SC_DEBUG_7_GET_qs_q0_x(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_qs_q0_x_MASK) >> SC_DEBUG_7_qs_q0_x_SHIFT)
+#define SC_DEBUG_7_GET_qs_q0_valid(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_qs_q0_valid_MASK) >> SC_DEBUG_7_qs_q0_valid_SHIFT)
+#define SC_DEBUG_7_GET_prim_ff_we(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_prim_ff_we_MASK) >> SC_DEBUG_7_prim_ff_we_SHIFT)
+#define SC_DEBUG_7_GET_tile_ff_re(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_tile_ff_re_MASK) >> SC_DEBUG_7_tile_ff_re_SHIFT)
+#define SC_DEBUG_7_GET_fw_prim_data_valid(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_fw_prim_data_valid_MASK) >> SC_DEBUG_7_fw_prim_data_valid_SHIFT)
+#define SC_DEBUG_7_GET_last_quad_of_tile(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_last_quad_of_tile_MASK) >> SC_DEBUG_7_last_quad_of_tile_SHIFT)
+#define SC_DEBUG_7_GET_first_quad_of_tile(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_first_quad_of_tile_MASK) >> SC_DEBUG_7_first_quad_of_tile_SHIFT)
+#define SC_DEBUG_7_GET_first_quad_of_prim(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_first_quad_of_prim_MASK) >> SC_DEBUG_7_first_quad_of_prim_SHIFT)
+#define SC_DEBUG_7_GET_new_prim(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_new_prim_MASK) >> SC_DEBUG_7_new_prim_SHIFT)
+#define SC_DEBUG_7_GET_load_new_tile_data(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_load_new_tile_data_MASK) >> SC_DEBUG_7_load_new_tile_data_SHIFT)
+#define SC_DEBUG_7_GET_state(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_state_MASK) >> SC_DEBUG_7_state_SHIFT)
+#define SC_DEBUG_7_GET_fifos_ready(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_fifos_ready_MASK) >> SC_DEBUG_7_fifos_ready_SHIFT)
+#define SC_DEBUG_7_GET_trigger(sc_debug_7) \
+ ((sc_debug_7 & SC_DEBUG_7_trigger_MASK) >> SC_DEBUG_7_trigger_SHIFT)
+
+#define SC_DEBUG_7_SET_event_flag(sc_debug_7_reg, event_flag) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_event_flag_MASK) | (event_flag << SC_DEBUG_7_event_flag_SHIFT)
+#define SC_DEBUG_7_SET_deallocate(sc_debug_7_reg, deallocate) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_deallocate_MASK) | (deallocate << SC_DEBUG_7_deallocate_SHIFT)
+#define SC_DEBUG_7_SET_fposition(sc_debug_7_reg, fposition) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_fposition_MASK) | (fposition << SC_DEBUG_7_fposition_SHIFT)
+#define SC_DEBUG_7_SET_sr_prim_we(sc_debug_7_reg, sr_prim_we) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_sr_prim_we_MASK) | (sr_prim_we << SC_DEBUG_7_sr_prim_we_SHIFT)
+#define SC_DEBUG_7_SET_last_tile(sc_debug_7_reg, last_tile) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_last_tile_MASK) | (last_tile << SC_DEBUG_7_last_tile_SHIFT)
+#define SC_DEBUG_7_SET_tile_ff_we(sc_debug_7_reg, tile_ff_we) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_tile_ff_we_MASK) | (tile_ff_we << SC_DEBUG_7_tile_ff_we_SHIFT)
+#define SC_DEBUG_7_SET_qs_data_valid(sc_debug_7_reg, qs_data_valid) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_qs_data_valid_MASK) | (qs_data_valid << SC_DEBUG_7_qs_data_valid_SHIFT)
+#define SC_DEBUG_7_SET_qs_q0_y(sc_debug_7_reg, qs_q0_y) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_qs_q0_y_MASK) | (qs_q0_y << SC_DEBUG_7_qs_q0_y_SHIFT)
+#define SC_DEBUG_7_SET_qs_q0_x(sc_debug_7_reg, qs_q0_x) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_qs_q0_x_MASK) | (qs_q0_x << SC_DEBUG_7_qs_q0_x_SHIFT)
+#define SC_DEBUG_7_SET_qs_q0_valid(sc_debug_7_reg, qs_q0_valid) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_qs_q0_valid_MASK) | (qs_q0_valid << SC_DEBUG_7_qs_q0_valid_SHIFT)
+#define SC_DEBUG_7_SET_prim_ff_we(sc_debug_7_reg, prim_ff_we) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_prim_ff_we_MASK) | (prim_ff_we << SC_DEBUG_7_prim_ff_we_SHIFT)
+#define SC_DEBUG_7_SET_tile_ff_re(sc_debug_7_reg, tile_ff_re) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_tile_ff_re_MASK) | (tile_ff_re << SC_DEBUG_7_tile_ff_re_SHIFT)
+#define SC_DEBUG_7_SET_fw_prim_data_valid(sc_debug_7_reg, fw_prim_data_valid) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_fw_prim_data_valid_MASK) | (fw_prim_data_valid << SC_DEBUG_7_fw_prim_data_valid_SHIFT)
+#define SC_DEBUG_7_SET_last_quad_of_tile(sc_debug_7_reg, last_quad_of_tile) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_last_quad_of_tile_MASK) | (last_quad_of_tile << SC_DEBUG_7_last_quad_of_tile_SHIFT)
+#define SC_DEBUG_7_SET_first_quad_of_tile(sc_debug_7_reg, first_quad_of_tile) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_first_quad_of_tile_MASK) | (first_quad_of_tile << SC_DEBUG_7_first_quad_of_tile_SHIFT)
+#define SC_DEBUG_7_SET_first_quad_of_prim(sc_debug_7_reg, first_quad_of_prim) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_first_quad_of_prim_MASK) | (first_quad_of_prim << SC_DEBUG_7_first_quad_of_prim_SHIFT)
+#define SC_DEBUG_7_SET_new_prim(sc_debug_7_reg, new_prim) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_new_prim_MASK) | (new_prim << SC_DEBUG_7_new_prim_SHIFT)
+#define SC_DEBUG_7_SET_load_new_tile_data(sc_debug_7_reg, load_new_tile_data) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_load_new_tile_data_MASK) | (load_new_tile_data << SC_DEBUG_7_load_new_tile_data_SHIFT)
+#define SC_DEBUG_7_SET_state(sc_debug_7_reg, state) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_state_MASK) | (state << SC_DEBUG_7_state_SHIFT)
+#define SC_DEBUG_7_SET_fifos_ready(sc_debug_7_reg, fifos_ready) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_fifos_ready_MASK) | (fifos_ready << SC_DEBUG_7_fifos_ready_SHIFT)
+#define SC_DEBUG_7_SET_trigger(sc_debug_7_reg, trigger) \
+ sc_debug_7_reg = (sc_debug_7_reg & ~SC_DEBUG_7_trigger_MASK) | (trigger << SC_DEBUG_7_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sc_debug_7_t {
+ unsigned int event_flag : SC_DEBUG_7_event_flag_SIZE;
+ unsigned int deallocate : SC_DEBUG_7_deallocate_SIZE;
+ unsigned int fposition : SC_DEBUG_7_fposition_SIZE;
+ unsigned int sr_prim_we : SC_DEBUG_7_sr_prim_we_SIZE;
+ unsigned int last_tile : SC_DEBUG_7_last_tile_SIZE;
+ unsigned int tile_ff_we : SC_DEBUG_7_tile_ff_we_SIZE;
+ unsigned int qs_data_valid : SC_DEBUG_7_qs_data_valid_SIZE;
+ unsigned int qs_q0_y : SC_DEBUG_7_qs_q0_y_SIZE;
+ unsigned int qs_q0_x : SC_DEBUG_7_qs_q0_x_SIZE;
+ unsigned int qs_q0_valid : SC_DEBUG_7_qs_q0_valid_SIZE;
+ unsigned int prim_ff_we : SC_DEBUG_7_prim_ff_we_SIZE;
+ unsigned int tile_ff_re : SC_DEBUG_7_tile_ff_re_SIZE;
+ unsigned int fw_prim_data_valid : SC_DEBUG_7_fw_prim_data_valid_SIZE;
+ unsigned int last_quad_of_tile : SC_DEBUG_7_last_quad_of_tile_SIZE;
+ unsigned int first_quad_of_tile : SC_DEBUG_7_first_quad_of_tile_SIZE;
+ unsigned int first_quad_of_prim : SC_DEBUG_7_first_quad_of_prim_SIZE;
+ unsigned int new_prim : SC_DEBUG_7_new_prim_SIZE;
+ unsigned int load_new_tile_data : SC_DEBUG_7_load_new_tile_data_SIZE;
+ unsigned int state : SC_DEBUG_7_state_SIZE;
+ unsigned int fifos_ready : SC_DEBUG_7_fifos_ready_SIZE;
+ unsigned int : 6;
+ unsigned int trigger : SC_DEBUG_7_trigger_SIZE;
+ } sc_debug_7_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sc_debug_7_t {
+ unsigned int trigger : SC_DEBUG_7_trigger_SIZE;
+ unsigned int : 6;
+ unsigned int fifos_ready : SC_DEBUG_7_fifos_ready_SIZE;
+ unsigned int state : SC_DEBUG_7_state_SIZE;
+ unsigned int load_new_tile_data : SC_DEBUG_7_load_new_tile_data_SIZE;
+ unsigned int new_prim : SC_DEBUG_7_new_prim_SIZE;
+ unsigned int first_quad_of_prim : SC_DEBUG_7_first_quad_of_prim_SIZE;
+ unsigned int first_quad_of_tile : SC_DEBUG_7_first_quad_of_tile_SIZE;
+ unsigned int last_quad_of_tile : SC_DEBUG_7_last_quad_of_tile_SIZE;
+ unsigned int fw_prim_data_valid : SC_DEBUG_7_fw_prim_data_valid_SIZE;
+ unsigned int tile_ff_re : SC_DEBUG_7_tile_ff_re_SIZE;
+ unsigned int prim_ff_we : SC_DEBUG_7_prim_ff_we_SIZE;
+ unsigned int qs_q0_valid : SC_DEBUG_7_qs_q0_valid_SIZE;
+ unsigned int qs_q0_x : SC_DEBUG_7_qs_q0_x_SIZE;
+ unsigned int qs_q0_y : SC_DEBUG_7_qs_q0_y_SIZE;
+ unsigned int qs_data_valid : SC_DEBUG_7_qs_data_valid_SIZE;
+ unsigned int tile_ff_we : SC_DEBUG_7_tile_ff_we_SIZE;
+ unsigned int last_tile : SC_DEBUG_7_last_tile_SIZE;
+ unsigned int sr_prim_we : SC_DEBUG_7_sr_prim_we_SIZE;
+ unsigned int fposition : SC_DEBUG_7_fposition_SIZE;
+ unsigned int deallocate : SC_DEBUG_7_deallocate_SIZE;
+ unsigned int event_flag : SC_DEBUG_7_event_flag_SIZE;
+ } sc_debug_7_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sc_debug_7_t f;
+} sc_debug_7_u;
+
+
+/*
+ * SC_DEBUG_8 struct
+ */
+
+#define SC_DEBUG_8_sample_last_SIZE 1
+#define SC_DEBUG_8_sample_mask_SIZE 4
+#define SC_DEBUG_8_sample_y_SIZE 2
+#define SC_DEBUG_8_sample_x_SIZE 2
+#define SC_DEBUG_8_sample_send_SIZE 1
+#define SC_DEBUG_8_next_cycle_SIZE 2
+#define SC_DEBUG_8_ez_sample_ff_full_SIZE 1
+#define SC_DEBUG_8_rb_sc_samp_rtr_SIZE 1
+#define SC_DEBUG_8_num_samples_SIZE 2
+#define SC_DEBUG_8_last_quad_of_tile_SIZE 1
+#define SC_DEBUG_8_last_quad_of_prim_SIZE 1
+#define SC_DEBUG_8_first_quad_of_prim_SIZE 1
+#define SC_DEBUG_8_sample_we_SIZE 1
+#define SC_DEBUG_8_fposition_SIZE 1
+#define SC_DEBUG_8_event_id_SIZE 5
+#define SC_DEBUG_8_event_flag_SIZE 1
+#define SC_DEBUG_8_fw_prim_data_valid_SIZE 1
+#define SC_DEBUG_8_trigger_SIZE 1
+
+#define SC_DEBUG_8_sample_last_SHIFT 0
+#define SC_DEBUG_8_sample_mask_SHIFT 1
+#define SC_DEBUG_8_sample_y_SHIFT 5
+#define SC_DEBUG_8_sample_x_SHIFT 7
+#define SC_DEBUG_8_sample_send_SHIFT 9
+#define SC_DEBUG_8_next_cycle_SHIFT 10
+#define SC_DEBUG_8_ez_sample_ff_full_SHIFT 12
+#define SC_DEBUG_8_rb_sc_samp_rtr_SHIFT 13
+#define SC_DEBUG_8_num_samples_SHIFT 14
+#define SC_DEBUG_8_last_quad_of_tile_SHIFT 16
+#define SC_DEBUG_8_last_quad_of_prim_SHIFT 17
+#define SC_DEBUG_8_first_quad_of_prim_SHIFT 18
+#define SC_DEBUG_8_sample_we_SHIFT 19
+#define SC_DEBUG_8_fposition_SHIFT 20
+#define SC_DEBUG_8_event_id_SHIFT 21
+#define SC_DEBUG_8_event_flag_SHIFT 26
+#define SC_DEBUG_8_fw_prim_data_valid_SHIFT 27
+#define SC_DEBUG_8_trigger_SHIFT 31
+
+#define SC_DEBUG_8_sample_last_MASK 0x00000001
+#define SC_DEBUG_8_sample_mask_MASK 0x0000001e
+#define SC_DEBUG_8_sample_y_MASK 0x00000060
+#define SC_DEBUG_8_sample_x_MASK 0x00000180
+#define SC_DEBUG_8_sample_send_MASK 0x00000200
+#define SC_DEBUG_8_next_cycle_MASK 0x00000c00
+#define SC_DEBUG_8_ez_sample_ff_full_MASK 0x00001000
+#define SC_DEBUG_8_rb_sc_samp_rtr_MASK 0x00002000
+#define SC_DEBUG_8_num_samples_MASK 0x0000c000
+#define SC_DEBUG_8_last_quad_of_tile_MASK 0x00010000
+#define SC_DEBUG_8_last_quad_of_prim_MASK 0x00020000
+#define SC_DEBUG_8_first_quad_of_prim_MASK 0x00040000
+#define SC_DEBUG_8_sample_we_MASK 0x00080000
+#define SC_DEBUG_8_fposition_MASK 0x00100000
+#define SC_DEBUG_8_event_id_MASK 0x03e00000
+#define SC_DEBUG_8_event_flag_MASK 0x04000000
+#define SC_DEBUG_8_fw_prim_data_valid_MASK 0x08000000
+#define SC_DEBUG_8_trigger_MASK 0x80000000
+
+#define SC_DEBUG_8_MASK \
+ (SC_DEBUG_8_sample_last_MASK | \
+ SC_DEBUG_8_sample_mask_MASK | \
+ SC_DEBUG_8_sample_y_MASK | \
+ SC_DEBUG_8_sample_x_MASK | \
+ SC_DEBUG_8_sample_send_MASK | \
+ SC_DEBUG_8_next_cycle_MASK | \
+ SC_DEBUG_8_ez_sample_ff_full_MASK | \
+ SC_DEBUG_8_rb_sc_samp_rtr_MASK | \
+ SC_DEBUG_8_num_samples_MASK | \
+ SC_DEBUG_8_last_quad_of_tile_MASK | \
+ SC_DEBUG_8_last_quad_of_prim_MASK | \
+ SC_DEBUG_8_first_quad_of_prim_MASK | \
+ SC_DEBUG_8_sample_we_MASK | \
+ SC_DEBUG_8_fposition_MASK | \
+ SC_DEBUG_8_event_id_MASK | \
+ SC_DEBUG_8_event_flag_MASK | \
+ SC_DEBUG_8_fw_prim_data_valid_MASK | \
+ SC_DEBUG_8_trigger_MASK)
+
+#define SC_DEBUG_8(sample_last, sample_mask, sample_y, sample_x, sample_send, next_cycle, ez_sample_ff_full, rb_sc_samp_rtr, num_samples, last_quad_of_tile, last_quad_of_prim, first_quad_of_prim, sample_we, fposition, event_id, event_flag, fw_prim_data_valid, trigger) \
+ ((sample_last << SC_DEBUG_8_sample_last_SHIFT) | \
+ (sample_mask << SC_DEBUG_8_sample_mask_SHIFT) | \
+ (sample_y << SC_DEBUG_8_sample_y_SHIFT) | \
+ (sample_x << SC_DEBUG_8_sample_x_SHIFT) | \
+ (sample_send << SC_DEBUG_8_sample_send_SHIFT) | \
+ (next_cycle << SC_DEBUG_8_next_cycle_SHIFT) | \
+ (ez_sample_ff_full << SC_DEBUG_8_ez_sample_ff_full_SHIFT) | \
+ (rb_sc_samp_rtr << SC_DEBUG_8_rb_sc_samp_rtr_SHIFT) | \
+ (num_samples << SC_DEBUG_8_num_samples_SHIFT) | \
+ (last_quad_of_tile << SC_DEBUG_8_last_quad_of_tile_SHIFT) | \
+ (last_quad_of_prim << SC_DEBUG_8_last_quad_of_prim_SHIFT) | \
+ (first_quad_of_prim << SC_DEBUG_8_first_quad_of_prim_SHIFT) | \
+ (sample_we << SC_DEBUG_8_sample_we_SHIFT) | \
+ (fposition << SC_DEBUG_8_fposition_SHIFT) | \
+ (event_id << SC_DEBUG_8_event_id_SHIFT) | \
+ (event_flag << SC_DEBUG_8_event_flag_SHIFT) | \
+ (fw_prim_data_valid << SC_DEBUG_8_fw_prim_data_valid_SHIFT) | \
+ (trigger << SC_DEBUG_8_trigger_SHIFT))
+
+#define SC_DEBUG_8_GET_sample_last(sc_debug_8) \
+ ((sc_debug_8 & SC_DEBUG_8_sample_last_MASK) >> SC_DEBUG_8_sample_last_SHIFT)
+#define SC_DEBUG_8_GET_sample_mask(sc_debug_8) \
+ ((sc_debug_8 & SC_DEBUG_8_sample_mask_MASK) >> SC_DEBUG_8_sample_mask_SHIFT)
+#define SC_DEBUG_8_GET_sample_y(sc_debug_8) \
+ ((sc_debug_8 & SC_DEBUG_8_sample_y_MASK) >> SC_DEBUG_8_sample_y_SHIFT)
+#define SC_DEBUG_8_GET_sample_x(sc_debug_8) \
+ ((sc_debug_8 & SC_DEBUG_8_sample_x_MASK) >> SC_DEBUG_8_sample_x_SHIFT)
+#define SC_DEBUG_8_GET_sample_send(sc_debug_8) \
+ ((sc_debug_8 & SC_DEBUG_8_sample_send_MASK) >> SC_DEBUG_8_sample_send_SHIFT)
+#define SC_DEBUG_8_GET_next_cycle(sc_debug_8) \
+ ((sc_debug_8 & SC_DEBUG_8_next_cycle_MASK) >> SC_DEBUG_8_next_cycle_SHIFT)
+#define SC_DEBUG_8_GET_ez_sample_ff_full(sc_debug_8) \
+ ((sc_debug_8 & SC_DEBUG_8_ez_sample_ff_full_MASK) >> SC_DEBUG_8_ez_sample_ff_full_SHIFT)
+#define SC_DEBUG_8_GET_rb_sc_samp_rtr(sc_debug_8) \
+ ((sc_debug_8 & SC_DEBUG_8_rb_sc_samp_rtr_MASK) >> SC_DEBUG_8_rb_sc_samp_rtr_SHIFT)
+#define SC_DEBUG_8_GET_num_samples(sc_debug_8) \
+ ((sc_debug_8 & SC_DEBUG_8_num_samples_MASK) >> SC_DEBUG_8_num_samples_SHIFT)
+#define SC_DEBUG_8_GET_last_quad_of_tile(sc_debug_8) \
+ ((sc_debug_8 & SC_DEBUG_8_last_quad_of_tile_MASK) >> SC_DEBUG_8_last_quad_of_tile_SHIFT)
+#define SC_DEBUG_8_GET_last_quad_of_prim(sc_debug_8) \
+ ((sc_debug_8 & SC_DEBUG_8_last_quad_of_prim_MASK) >> SC_DEBUG_8_last_quad_of_prim_SHIFT)
+#define SC_DEBUG_8_GET_first_quad_of_prim(sc_debug_8) \
+ ((sc_debug_8 & SC_DEBUG_8_first_quad_of_prim_MASK) >> SC_DEBUG_8_first_quad_of_prim_SHIFT)
+#define SC_DEBUG_8_GET_sample_we(sc_debug_8) \
+ ((sc_debug_8 & SC_DEBUG_8_sample_we_MASK) >> SC_DEBUG_8_sample_we_SHIFT)
+#define SC_DEBUG_8_GET_fposition(sc_debug_8) \
+ ((sc_debug_8 & SC_DEBUG_8_fposition_MASK) >> SC_DEBUG_8_fposition_SHIFT)
+#define SC_DEBUG_8_GET_event_id(sc_debug_8) \
+ ((sc_debug_8 & SC_DEBUG_8_event_id_MASK) >> SC_DEBUG_8_event_id_SHIFT)
+#define SC_DEBUG_8_GET_event_flag(sc_debug_8) \
+ ((sc_debug_8 & SC_DEBUG_8_event_flag_MASK) >> SC_DEBUG_8_event_flag_SHIFT)
+#define SC_DEBUG_8_GET_fw_prim_data_valid(sc_debug_8) \
+ ((sc_debug_8 & SC_DEBUG_8_fw_prim_data_valid_MASK) >> SC_DEBUG_8_fw_prim_data_valid_SHIFT)
+#define SC_DEBUG_8_GET_trigger(sc_debug_8) \
+ ((sc_debug_8 & SC_DEBUG_8_trigger_MASK) >> SC_DEBUG_8_trigger_SHIFT)
+
+#define SC_DEBUG_8_SET_sample_last(sc_debug_8_reg, sample_last) \
+ sc_debug_8_reg = (sc_debug_8_reg & ~SC_DEBUG_8_sample_last_MASK) | (sample_last << SC_DEBUG_8_sample_last_SHIFT)
+#define SC_DEBUG_8_SET_sample_mask(sc_debug_8_reg, sample_mask) \
+ sc_debug_8_reg = (sc_debug_8_reg & ~SC_DEBUG_8_sample_mask_MASK) | (sample_mask << SC_DEBUG_8_sample_mask_SHIFT)
+#define SC_DEBUG_8_SET_sample_y(sc_debug_8_reg, sample_y) \
+ sc_debug_8_reg = (sc_debug_8_reg & ~SC_DEBUG_8_sample_y_MASK) | (sample_y << SC_DEBUG_8_sample_y_SHIFT)
+#define SC_DEBUG_8_SET_sample_x(sc_debug_8_reg, sample_x) \
+ sc_debug_8_reg = (sc_debug_8_reg & ~SC_DEBUG_8_sample_x_MASK) | (sample_x << SC_DEBUG_8_sample_x_SHIFT)
+#define SC_DEBUG_8_SET_sample_send(sc_debug_8_reg, sample_send) \
+ sc_debug_8_reg = (sc_debug_8_reg & ~SC_DEBUG_8_sample_send_MASK) | (sample_send << SC_DEBUG_8_sample_send_SHIFT)
+#define SC_DEBUG_8_SET_next_cycle(sc_debug_8_reg, next_cycle) \
+ sc_debug_8_reg = (sc_debug_8_reg & ~SC_DEBUG_8_next_cycle_MASK) | (next_cycle << SC_DEBUG_8_next_cycle_SHIFT)
+#define SC_DEBUG_8_SET_ez_sample_ff_full(sc_debug_8_reg, ez_sample_ff_full) \
+ sc_debug_8_reg = (sc_debug_8_reg & ~SC_DEBUG_8_ez_sample_ff_full_MASK) | (ez_sample_ff_full << SC_DEBUG_8_ez_sample_ff_full_SHIFT)
+#define SC_DEBUG_8_SET_rb_sc_samp_rtr(sc_debug_8_reg, rb_sc_samp_rtr) \
+ sc_debug_8_reg = (sc_debug_8_reg & ~SC_DEBUG_8_rb_sc_samp_rtr_MASK) | (rb_sc_samp_rtr << SC_DEBUG_8_rb_sc_samp_rtr_SHIFT)
+#define SC_DEBUG_8_SET_num_samples(sc_debug_8_reg, num_samples) \
+ sc_debug_8_reg = (sc_debug_8_reg & ~SC_DEBUG_8_num_samples_MASK) | (num_samples << SC_DEBUG_8_num_samples_SHIFT)
+#define SC_DEBUG_8_SET_last_quad_of_tile(sc_debug_8_reg, last_quad_of_tile) \
+ sc_debug_8_reg = (sc_debug_8_reg & ~SC_DEBUG_8_last_quad_of_tile_MASK) | (last_quad_of_tile << SC_DEBUG_8_last_quad_of_tile_SHIFT)
+#define SC_DEBUG_8_SET_last_quad_of_prim(sc_debug_8_reg, last_quad_of_prim) \
+ sc_debug_8_reg = (sc_debug_8_reg & ~SC_DEBUG_8_last_quad_of_prim_MASK) | (last_quad_of_prim << SC_DEBUG_8_last_quad_of_prim_SHIFT)
+#define SC_DEBUG_8_SET_first_quad_of_prim(sc_debug_8_reg, first_quad_of_prim) \
+ sc_debug_8_reg = (sc_debug_8_reg & ~SC_DEBUG_8_first_quad_of_prim_MASK) | (first_quad_of_prim << SC_DEBUG_8_first_quad_of_prim_SHIFT)
+#define SC_DEBUG_8_SET_sample_we(sc_debug_8_reg, sample_we) \
+ sc_debug_8_reg = (sc_debug_8_reg & ~SC_DEBUG_8_sample_we_MASK) | (sample_we << SC_DEBUG_8_sample_we_SHIFT)
+#define SC_DEBUG_8_SET_fposition(sc_debug_8_reg, fposition) \
+ sc_debug_8_reg = (sc_debug_8_reg & ~SC_DEBUG_8_fposition_MASK) | (fposition << SC_DEBUG_8_fposition_SHIFT)
+#define SC_DEBUG_8_SET_event_id(sc_debug_8_reg, event_id) \
+ sc_debug_8_reg = (sc_debug_8_reg & ~SC_DEBUG_8_event_id_MASK) | (event_id << SC_DEBUG_8_event_id_SHIFT)
+#define SC_DEBUG_8_SET_event_flag(sc_debug_8_reg, event_flag) \
+ sc_debug_8_reg = (sc_debug_8_reg & ~SC_DEBUG_8_event_flag_MASK) | (event_flag << SC_DEBUG_8_event_flag_SHIFT)
+#define SC_DEBUG_8_SET_fw_prim_data_valid(sc_debug_8_reg, fw_prim_data_valid) \
+ sc_debug_8_reg = (sc_debug_8_reg & ~SC_DEBUG_8_fw_prim_data_valid_MASK) | (fw_prim_data_valid << SC_DEBUG_8_fw_prim_data_valid_SHIFT)
+#define SC_DEBUG_8_SET_trigger(sc_debug_8_reg, trigger) \
+ sc_debug_8_reg = (sc_debug_8_reg & ~SC_DEBUG_8_trigger_MASK) | (trigger << SC_DEBUG_8_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sc_debug_8_t {
+ unsigned int sample_last : SC_DEBUG_8_sample_last_SIZE;
+ unsigned int sample_mask : SC_DEBUG_8_sample_mask_SIZE;
+ unsigned int sample_y : SC_DEBUG_8_sample_y_SIZE;
+ unsigned int sample_x : SC_DEBUG_8_sample_x_SIZE;
+ unsigned int sample_send : SC_DEBUG_8_sample_send_SIZE;
+ unsigned int next_cycle : SC_DEBUG_8_next_cycle_SIZE;
+ unsigned int ez_sample_ff_full : SC_DEBUG_8_ez_sample_ff_full_SIZE;
+ unsigned int rb_sc_samp_rtr : SC_DEBUG_8_rb_sc_samp_rtr_SIZE;
+ unsigned int num_samples : SC_DEBUG_8_num_samples_SIZE;
+ unsigned int last_quad_of_tile : SC_DEBUG_8_last_quad_of_tile_SIZE;
+ unsigned int last_quad_of_prim : SC_DEBUG_8_last_quad_of_prim_SIZE;
+ unsigned int first_quad_of_prim : SC_DEBUG_8_first_quad_of_prim_SIZE;
+ unsigned int sample_we : SC_DEBUG_8_sample_we_SIZE;
+ unsigned int fposition : SC_DEBUG_8_fposition_SIZE;
+ unsigned int event_id : SC_DEBUG_8_event_id_SIZE;
+ unsigned int event_flag : SC_DEBUG_8_event_flag_SIZE;
+ unsigned int fw_prim_data_valid : SC_DEBUG_8_fw_prim_data_valid_SIZE;
+ unsigned int : 3;
+ unsigned int trigger : SC_DEBUG_8_trigger_SIZE;
+ } sc_debug_8_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sc_debug_8_t {
+ unsigned int trigger : SC_DEBUG_8_trigger_SIZE;
+ unsigned int : 3;
+ unsigned int fw_prim_data_valid : SC_DEBUG_8_fw_prim_data_valid_SIZE;
+ unsigned int event_flag : SC_DEBUG_8_event_flag_SIZE;
+ unsigned int event_id : SC_DEBUG_8_event_id_SIZE;
+ unsigned int fposition : SC_DEBUG_8_fposition_SIZE;
+ unsigned int sample_we : SC_DEBUG_8_sample_we_SIZE;
+ unsigned int first_quad_of_prim : SC_DEBUG_8_first_quad_of_prim_SIZE;
+ unsigned int last_quad_of_prim : SC_DEBUG_8_last_quad_of_prim_SIZE;
+ unsigned int last_quad_of_tile : SC_DEBUG_8_last_quad_of_tile_SIZE;
+ unsigned int num_samples : SC_DEBUG_8_num_samples_SIZE;
+ unsigned int rb_sc_samp_rtr : SC_DEBUG_8_rb_sc_samp_rtr_SIZE;
+ unsigned int ez_sample_ff_full : SC_DEBUG_8_ez_sample_ff_full_SIZE;
+ unsigned int next_cycle : SC_DEBUG_8_next_cycle_SIZE;
+ unsigned int sample_send : SC_DEBUG_8_sample_send_SIZE;
+ unsigned int sample_x : SC_DEBUG_8_sample_x_SIZE;
+ unsigned int sample_y : SC_DEBUG_8_sample_y_SIZE;
+ unsigned int sample_mask : SC_DEBUG_8_sample_mask_SIZE;
+ unsigned int sample_last : SC_DEBUG_8_sample_last_SIZE;
+ } sc_debug_8_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sc_debug_8_t f;
+} sc_debug_8_u;
+
+
+/*
+ * SC_DEBUG_9 struct
+ */
+
+#define SC_DEBUG_9_rb_sc_send_SIZE 1
+#define SC_DEBUG_9_rb_sc_ez_mask_SIZE 4
+#define SC_DEBUG_9_fifo_data_ready_SIZE 1
+#define SC_DEBUG_9_early_z_enable_SIZE 1
+#define SC_DEBUG_9_mask_state_SIZE 2
+#define SC_DEBUG_9_next_ez_mask_SIZE 16
+#define SC_DEBUG_9_mask_ready_SIZE 1
+#define SC_DEBUG_9_drop_sample_SIZE 1
+#define SC_DEBUG_9_fetch_new_sample_data_SIZE 1
+#define SC_DEBUG_9_fetch_new_ez_sample_mask_SIZE 1
+#define SC_DEBUG_9_pkr_fetch_new_sample_data_SIZE 1
+#define SC_DEBUG_9_pkr_fetch_new_prim_data_SIZE 1
+#define SC_DEBUG_9_trigger_SIZE 1
+
+#define SC_DEBUG_9_rb_sc_send_SHIFT 0
+#define SC_DEBUG_9_rb_sc_ez_mask_SHIFT 1
+#define SC_DEBUG_9_fifo_data_ready_SHIFT 5
+#define SC_DEBUG_9_early_z_enable_SHIFT 6
+#define SC_DEBUG_9_mask_state_SHIFT 7
+#define SC_DEBUG_9_next_ez_mask_SHIFT 9
+#define SC_DEBUG_9_mask_ready_SHIFT 25
+#define SC_DEBUG_9_drop_sample_SHIFT 26
+#define SC_DEBUG_9_fetch_new_sample_data_SHIFT 27
+#define SC_DEBUG_9_fetch_new_ez_sample_mask_SHIFT 28
+#define SC_DEBUG_9_pkr_fetch_new_sample_data_SHIFT 29
+#define SC_DEBUG_9_pkr_fetch_new_prim_data_SHIFT 30
+#define SC_DEBUG_9_trigger_SHIFT 31
+
+#define SC_DEBUG_9_rb_sc_send_MASK 0x00000001
+#define SC_DEBUG_9_rb_sc_ez_mask_MASK 0x0000001e
+#define SC_DEBUG_9_fifo_data_ready_MASK 0x00000020
+#define SC_DEBUG_9_early_z_enable_MASK 0x00000040
+#define SC_DEBUG_9_mask_state_MASK 0x00000180
+#define SC_DEBUG_9_next_ez_mask_MASK 0x01fffe00
+#define SC_DEBUG_9_mask_ready_MASK 0x02000000
+#define SC_DEBUG_9_drop_sample_MASK 0x04000000
+#define SC_DEBUG_9_fetch_new_sample_data_MASK 0x08000000
+#define SC_DEBUG_9_fetch_new_ez_sample_mask_MASK 0x10000000
+#define SC_DEBUG_9_pkr_fetch_new_sample_data_MASK 0x20000000
+#define SC_DEBUG_9_pkr_fetch_new_prim_data_MASK 0x40000000
+#define SC_DEBUG_9_trigger_MASK 0x80000000
+
+#define SC_DEBUG_9_MASK \
+ (SC_DEBUG_9_rb_sc_send_MASK | \
+ SC_DEBUG_9_rb_sc_ez_mask_MASK | \
+ SC_DEBUG_9_fifo_data_ready_MASK | \
+ SC_DEBUG_9_early_z_enable_MASK | \
+ SC_DEBUG_9_mask_state_MASK | \
+ SC_DEBUG_9_next_ez_mask_MASK | \
+ SC_DEBUG_9_mask_ready_MASK | \
+ SC_DEBUG_9_drop_sample_MASK | \
+ SC_DEBUG_9_fetch_new_sample_data_MASK | \
+ SC_DEBUG_9_fetch_new_ez_sample_mask_MASK | \
+ SC_DEBUG_9_pkr_fetch_new_sample_data_MASK | \
+ SC_DEBUG_9_pkr_fetch_new_prim_data_MASK | \
+ SC_DEBUG_9_trigger_MASK)
+
+#define SC_DEBUG_9(rb_sc_send, rb_sc_ez_mask, fifo_data_ready, early_z_enable, mask_state, next_ez_mask, mask_ready, drop_sample, fetch_new_sample_data, fetch_new_ez_sample_mask, pkr_fetch_new_sample_data, pkr_fetch_new_prim_data, trigger) \
+ ((rb_sc_send << SC_DEBUG_9_rb_sc_send_SHIFT) | \
+ (rb_sc_ez_mask << SC_DEBUG_9_rb_sc_ez_mask_SHIFT) | \
+ (fifo_data_ready << SC_DEBUG_9_fifo_data_ready_SHIFT) | \
+ (early_z_enable << SC_DEBUG_9_early_z_enable_SHIFT) | \
+ (mask_state << SC_DEBUG_9_mask_state_SHIFT) | \
+ (next_ez_mask << SC_DEBUG_9_next_ez_mask_SHIFT) | \
+ (mask_ready << SC_DEBUG_9_mask_ready_SHIFT) | \
+ (drop_sample << SC_DEBUG_9_drop_sample_SHIFT) | \
+ (fetch_new_sample_data << SC_DEBUG_9_fetch_new_sample_data_SHIFT) | \
+ (fetch_new_ez_sample_mask << SC_DEBUG_9_fetch_new_ez_sample_mask_SHIFT) | \
+ (pkr_fetch_new_sample_data << SC_DEBUG_9_pkr_fetch_new_sample_data_SHIFT) | \
+ (pkr_fetch_new_prim_data << SC_DEBUG_9_pkr_fetch_new_prim_data_SHIFT) | \
+ (trigger << SC_DEBUG_9_trigger_SHIFT))
+
+#define SC_DEBUG_9_GET_rb_sc_send(sc_debug_9) \
+ ((sc_debug_9 & SC_DEBUG_9_rb_sc_send_MASK) >> SC_DEBUG_9_rb_sc_send_SHIFT)
+#define SC_DEBUG_9_GET_rb_sc_ez_mask(sc_debug_9) \
+ ((sc_debug_9 & SC_DEBUG_9_rb_sc_ez_mask_MASK) >> SC_DEBUG_9_rb_sc_ez_mask_SHIFT)
+#define SC_DEBUG_9_GET_fifo_data_ready(sc_debug_9) \
+ ((sc_debug_9 & SC_DEBUG_9_fifo_data_ready_MASK) >> SC_DEBUG_9_fifo_data_ready_SHIFT)
+#define SC_DEBUG_9_GET_early_z_enable(sc_debug_9) \
+ ((sc_debug_9 & SC_DEBUG_9_early_z_enable_MASK) >> SC_DEBUG_9_early_z_enable_SHIFT)
+#define SC_DEBUG_9_GET_mask_state(sc_debug_9) \
+ ((sc_debug_9 & SC_DEBUG_9_mask_state_MASK) >> SC_DEBUG_9_mask_state_SHIFT)
+#define SC_DEBUG_9_GET_next_ez_mask(sc_debug_9) \
+ ((sc_debug_9 & SC_DEBUG_9_next_ez_mask_MASK) >> SC_DEBUG_9_next_ez_mask_SHIFT)
+#define SC_DEBUG_9_GET_mask_ready(sc_debug_9) \
+ ((sc_debug_9 & SC_DEBUG_9_mask_ready_MASK) >> SC_DEBUG_9_mask_ready_SHIFT)
+#define SC_DEBUG_9_GET_drop_sample(sc_debug_9) \
+ ((sc_debug_9 & SC_DEBUG_9_drop_sample_MASK) >> SC_DEBUG_9_drop_sample_SHIFT)
+#define SC_DEBUG_9_GET_fetch_new_sample_data(sc_debug_9) \
+ ((sc_debug_9 & SC_DEBUG_9_fetch_new_sample_data_MASK) >> SC_DEBUG_9_fetch_new_sample_data_SHIFT)
+#define SC_DEBUG_9_GET_fetch_new_ez_sample_mask(sc_debug_9) \
+ ((sc_debug_9 & SC_DEBUG_9_fetch_new_ez_sample_mask_MASK) >> SC_DEBUG_9_fetch_new_ez_sample_mask_SHIFT)
+#define SC_DEBUG_9_GET_pkr_fetch_new_sample_data(sc_debug_9) \
+ ((sc_debug_9 & SC_DEBUG_9_pkr_fetch_new_sample_data_MASK) >> SC_DEBUG_9_pkr_fetch_new_sample_data_SHIFT)
+#define SC_DEBUG_9_GET_pkr_fetch_new_prim_data(sc_debug_9) \
+ ((sc_debug_9 & SC_DEBUG_9_pkr_fetch_new_prim_data_MASK) >> SC_DEBUG_9_pkr_fetch_new_prim_data_SHIFT)
+#define SC_DEBUG_9_GET_trigger(sc_debug_9) \
+ ((sc_debug_9 & SC_DEBUG_9_trigger_MASK) >> SC_DEBUG_9_trigger_SHIFT)
+
+#define SC_DEBUG_9_SET_rb_sc_send(sc_debug_9_reg, rb_sc_send) \
+ sc_debug_9_reg = (sc_debug_9_reg & ~SC_DEBUG_9_rb_sc_send_MASK) | (rb_sc_send << SC_DEBUG_9_rb_sc_send_SHIFT)
+#define SC_DEBUG_9_SET_rb_sc_ez_mask(sc_debug_9_reg, rb_sc_ez_mask) \
+ sc_debug_9_reg = (sc_debug_9_reg & ~SC_DEBUG_9_rb_sc_ez_mask_MASK) | (rb_sc_ez_mask << SC_DEBUG_9_rb_sc_ez_mask_SHIFT)
+#define SC_DEBUG_9_SET_fifo_data_ready(sc_debug_9_reg, fifo_data_ready) \
+ sc_debug_9_reg = (sc_debug_9_reg & ~SC_DEBUG_9_fifo_data_ready_MASK) | (fifo_data_ready << SC_DEBUG_9_fifo_data_ready_SHIFT)
+#define SC_DEBUG_9_SET_early_z_enable(sc_debug_9_reg, early_z_enable) \
+ sc_debug_9_reg = (sc_debug_9_reg & ~SC_DEBUG_9_early_z_enable_MASK) | (early_z_enable << SC_DEBUG_9_early_z_enable_SHIFT)
+#define SC_DEBUG_9_SET_mask_state(sc_debug_9_reg, mask_state) \
+ sc_debug_9_reg = (sc_debug_9_reg & ~SC_DEBUG_9_mask_state_MASK) | (mask_state << SC_DEBUG_9_mask_state_SHIFT)
+#define SC_DEBUG_9_SET_next_ez_mask(sc_debug_9_reg, next_ez_mask) \
+ sc_debug_9_reg = (sc_debug_9_reg & ~SC_DEBUG_9_next_ez_mask_MASK) | (next_ez_mask << SC_DEBUG_9_next_ez_mask_SHIFT)
+#define SC_DEBUG_9_SET_mask_ready(sc_debug_9_reg, mask_ready) \
+ sc_debug_9_reg = (sc_debug_9_reg & ~SC_DEBUG_9_mask_ready_MASK) | (mask_ready << SC_DEBUG_9_mask_ready_SHIFT)
+#define SC_DEBUG_9_SET_drop_sample(sc_debug_9_reg, drop_sample) \
+ sc_debug_9_reg = (sc_debug_9_reg & ~SC_DEBUG_9_drop_sample_MASK) | (drop_sample << SC_DEBUG_9_drop_sample_SHIFT)
+#define SC_DEBUG_9_SET_fetch_new_sample_data(sc_debug_9_reg, fetch_new_sample_data) \
+ sc_debug_9_reg = (sc_debug_9_reg & ~SC_DEBUG_9_fetch_new_sample_data_MASK) | (fetch_new_sample_data << SC_DEBUG_9_fetch_new_sample_data_SHIFT)
+#define SC_DEBUG_9_SET_fetch_new_ez_sample_mask(sc_debug_9_reg, fetch_new_ez_sample_mask) \
+ sc_debug_9_reg = (sc_debug_9_reg & ~SC_DEBUG_9_fetch_new_ez_sample_mask_MASK) | (fetch_new_ez_sample_mask << SC_DEBUG_9_fetch_new_ez_sample_mask_SHIFT)
+#define SC_DEBUG_9_SET_pkr_fetch_new_sample_data(sc_debug_9_reg, pkr_fetch_new_sample_data) \
+ sc_debug_9_reg = (sc_debug_9_reg & ~SC_DEBUG_9_pkr_fetch_new_sample_data_MASK) | (pkr_fetch_new_sample_data << SC_DEBUG_9_pkr_fetch_new_sample_data_SHIFT)
+#define SC_DEBUG_9_SET_pkr_fetch_new_prim_data(sc_debug_9_reg, pkr_fetch_new_prim_data) \
+ sc_debug_9_reg = (sc_debug_9_reg & ~SC_DEBUG_9_pkr_fetch_new_prim_data_MASK) | (pkr_fetch_new_prim_data << SC_DEBUG_9_pkr_fetch_new_prim_data_SHIFT)
+#define SC_DEBUG_9_SET_trigger(sc_debug_9_reg, trigger) \
+ sc_debug_9_reg = (sc_debug_9_reg & ~SC_DEBUG_9_trigger_MASK) | (trigger << SC_DEBUG_9_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sc_debug_9_t {
+ unsigned int rb_sc_send : SC_DEBUG_9_rb_sc_send_SIZE;
+ unsigned int rb_sc_ez_mask : SC_DEBUG_9_rb_sc_ez_mask_SIZE;
+ unsigned int fifo_data_ready : SC_DEBUG_9_fifo_data_ready_SIZE;
+ unsigned int early_z_enable : SC_DEBUG_9_early_z_enable_SIZE;
+ unsigned int mask_state : SC_DEBUG_9_mask_state_SIZE;
+ unsigned int next_ez_mask : SC_DEBUG_9_next_ez_mask_SIZE;
+ unsigned int mask_ready : SC_DEBUG_9_mask_ready_SIZE;
+ unsigned int drop_sample : SC_DEBUG_9_drop_sample_SIZE;
+ unsigned int fetch_new_sample_data : SC_DEBUG_9_fetch_new_sample_data_SIZE;
+ unsigned int fetch_new_ez_sample_mask : SC_DEBUG_9_fetch_new_ez_sample_mask_SIZE;
+ unsigned int pkr_fetch_new_sample_data : SC_DEBUG_9_pkr_fetch_new_sample_data_SIZE;
+ unsigned int pkr_fetch_new_prim_data : SC_DEBUG_9_pkr_fetch_new_prim_data_SIZE;
+ unsigned int trigger : SC_DEBUG_9_trigger_SIZE;
+ } sc_debug_9_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sc_debug_9_t {
+ unsigned int trigger : SC_DEBUG_9_trigger_SIZE;
+ unsigned int pkr_fetch_new_prim_data : SC_DEBUG_9_pkr_fetch_new_prim_data_SIZE;
+ unsigned int pkr_fetch_new_sample_data : SC_DEBUG_9_pkr_fetch_new_sample_data_SIZE;
+ unsigned int fetch_new_ez_sample_mask : SC_DEBUG_9_fetch_new_ez_sample_mask_SIZE;
+ unsigned int fetch_new_sample_data : SC_DEBUG_9_fetch_new_sample_data_SIZE;
+ unsigned int drop_sample : SC_DEBUG_9_drop_sample_SIZE;
+ unsigned int mask_ready : SC_DEBUG_9_mask_ready_SIZE;
+ unsigned int next_ez_mask : SC_DEBUG_9_next_ez_mask_SIZE;
+ unsigned int mask_state : SC_DEBUG_9_mask_state_SIZE;
+ unsigned int early_z_enable : SC_DEBUG_9_early_z_enable_SIZE;
+ unsigned int fifo_data_ready : SC_DEBUG_9_fifo_data_ready_SIZE;
+ unsigned int rb_sc_ez_mask : SC_DEBUG_9_rb_sc_ez_mask_SIZE;
+ unsigned int rb_sc_send : SC_DEBUG_9_rb_sc_send_SIZE;
+ } sc_debug_9_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sc_debug_9_t f;
+} sc_debug_9_u;
+
+
+/*
+ * SC_DEBUG_10 struct
+ */
+
+#define SC_DEBUG_10_combined_sample_mask_SIZE 16
+#define SC_DEBUG_10_trigger_SIZE 1
+
+#define SC_DEBUG_10_combined_sample_mask_SHIFT 0
+#define SC_DEBUG_10_trigger_SHIFT 31
+
+#define SC_DEBUG_10_combined_sample_mask_MASK 0x0000ffff
+#define SC_DEBUG_10_trigger_MASK 0x80000000
+
+#define SC_DEBUG_10_MASK \
+ (SC_DEBUG_10_combined_sample_mask_MASK | \
+ SC_DEBUG_10_trigger_MASK)
+
+#define SC_DEBUG_10(combined_sample_mask, trigger) \
+ ((combined_sample_mask << SC_DEBUG_10_combined_sample_mask_SHIFT) | \
+ (trigger << SC_DEBUG_10_trigger_SHIFT))
+
+#define SC_DEBUG_10_GET_combined_sample_mask(sc_debug_10) \
+ ((sc_debug_10 & SC_DEBUG_10_combined_sample_mask_MASK) >> SC_DEBUG_10_combined_sample_mask_SHIFT)
+#define SC_DEBUG_10_GET_trigger(sc_debug_10) \
+ ((sc_debug_10 & SC_DEBUG_10_trigger_MASK) >> SC_DEBUG_10_trigger_SHIFT)
+
+#define SC_DEBUG_10_SET_combined_sample_mask(sc_debug_10_reg, combined_sample_mask) \
+ sc_debug_10_reg = (sc_debug_10_reg & ~SC_DEBUG_10_combined_sample_mask_MASK) | (combined_sample_mask << SC_DEBUG_10_combined_sample_mask_SHIFT)
+#define SC_DEBUG_10_SET_trigger(sc_debug_10_reg, trigger) \
+ sc_debug_10_reg = (sc_debug_10_reg & ~SC_DEBUG_10_trigger_MASK) | (trigger << SC_DEBUG_10_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sc_debug_10_t {
+ unsigned int combined_sample_mask : SC_DEBUG_10_combined_sample_mask_SIZE;
+ unsigned int : 15;
+ unsigned int trigger : SC_DEBUG_10_trigger_SIZE;
+ } sc_debug_10_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sc_debug_10_t {
+ unsigned int trigger : SC_DEBUG_10_trigger_SIZE;
+ unsigned int : 15;
+ unsigned int combined_sample_mask : SC_DEBUG_10_combined_sample_mask_SIZE;
+ } sc_debug_10_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sc_debug_10_t f;
+} sc_debug_10_u;
+
+
+/*
+ * SC_DEBUG_11 struct
+ */
+
+#define SC_DEBUG_11_ez_sample_data_ready_SIZE 1
+#define SC_DEBUG_11_pkr_fetch_new_sample_data_SIZE 1
+#define SC_DEBUG_11_ez_prim_data_ready_SIZE 1
+#define SC_DEBUG_11_pkr_fetch_new_prim_data_SIZE 1
+#define SC_DEBUG_11_iterator_input_fz_SIZE 1
+#define SC_DEBUG_11_packer_send_quads_SIZE 1
+#define SC_DEBUG_11_packer_send_cmd_SIZE 1
+#define SC_DEBUG_11_packer_send_event_SIZE 1
+#define SC_DEBUG_11_next_state_SIZE 3
+#define SC_DEBUG_11_state_SIZE 3
+#define SC_DEBUG_11_stall_SIZE 1
+#define SC_DEBUG_11_trigger_SIZE 1
+
+#define SC_DEBUG_11_ez_sample_data_ready_SHIFT 0
+#define SC_DEBUG_11_pkr_fetch_new_sample_data_SHIFT 1
+#define SC_DEBUG_11_ez_prim_data_ready_SHIFT 2
+#define SC_DEBUG_11_pkr_fetch_new_prim_data_SHIFT 3
+#define SC_DEBUG_11_iterator_input_fz_SHIFT 4
+#define SC_DEBUG_11_packer_send_quads_SHIFT 5
+#define SC_DEBUG_11_packer_send_cmd_SHIFT 6
+#define SC_DEBUG_11_packer_send_event_SHIFT 7
+#define SC_DEBUG_11_next_state_SHIFT 8
+#define SC_DEBUG_11_state_SHIFT 11
+#define SC_DEBUG_11_stall_SHIFT 14
+#define SC_DEBUG_11_trigger_SHIFT 31
+
+#define SC_DEBUG_11_ez_sample_data_ready_MASK 0x00000001
+#define SC_DEBUG_11_pkr_fetch_new_sample_data_MASK 0x00000002
+#define SC_DEBUG_11_ez_prim_data_ready_MASK 0x00000004
+#define SC_DEBUG_11_pkr_fetch_new_prim_data_MASK 0x00000008
+#define SC_DEBUG_11_iterator_input_fz_MASK 0x00000010
+#define SC_DEBUG_11_packer_send_quads_MASK 0x00000020
+#define SC_DEBUG_11_packer_send_cmd_MASK 0x00000040
+#define SC_DEBUG_11_packer_send_event_MASK 0x00000080
+#define SC_DEBUG_11_next_state_MASK 0x00000700
+#define SC_DEBUG_11_state_MASK 0x00003800
+#define SC_DEBUG_11_stall_MASK 0x00004000
+#define SC_DEBUG_11_trigger_MASK 0x80000000
+
+#define SC_DEBUG_11_MASK \
+ (SC_DEBUG_11_ez_sample_data_ready_MASK | \
+ SC_DEBUG_11_pkr_fetch_new_sample_data_MASK | \
+ SC_DEBUG_11_ez_prim_data_ready_MASK | \
+ SC_DEBUG_11_pkr_fetch_new_prim_data_MASK | \
+ SC_DEBUG_11_iterator_input_fz_MASK | \
+ SC_DEBUG_11_packer_send_quads_MASK | \
+ SC_DEBUG_11_packer_send_cmd_MASK | \
+ SC_DEBUG_11_packer_send_event_MASK | \
+ SC_DEBUG_11_next_state_MASK | \
+ SC_DEBUG_11_state_MASK | \
+ SC_DEBUG_11_stall_MASK | \
+ SC_DEBUG_11_trigger_MASK)
+
+#define SC_DEBUG_11(ez_sample_data_ready, pkr_fetch_new_sample_data, ez_prim_data_ready, pkr_fetch_new_prim_data, iterator_input_fz, packer_send_quads, packer_send_cmd, packer_send_event, next_state, state, stall, trigger) \
+ ((ez_sample_data_ready << SC_DEBUG_11_ez_sample_data_ready_SHIFT) | \
+ (pkr_fetch_new_sample_data << SC_DEBUG_11_pkr_fetch_new_sample_data_SHIFT) | \
+ (ez_prim_data_ready << SC_DEBUG_11_ez_prim_data_ready_SHIFT) | \
+ (pkr_fetch_new_prim_data << SC_DEBUG_11_pkr_fetch_new_prim_data_SHIFT) | \
+ (iterator_input_fz << SC_DEBUG_11_iterator_input_fz_SHIFT) | \
+ (packer_send_quads << SC_DEBUG_11_packer_send_quads_SHIFT) | \
+ (packer_send_cmd << SC_DEBUG_11_packer_send_cmd_SHIFT) | \
+ (packer_send_event << SC_DEBUG_11_packer_send_event_SHIFT) | \
+ (next_state << SC_DEBUG_11_next_state_SHIFT) | \
+ (state << SC_DEBUG_11_state_SHIFT) | \
+ (stall << SC_DEBUG_11_stall_SHIFT) | \
+ (trigger << SC_DEBUG_11_trigger_SHIFT))
+
+#define SC_DEBUG_11_GET_ez_sample_data_ready(sc_debug_11) \
+ ((sc_debug_11 & SC_DEBUG_11_ez_sample_data_ready_MASK) >> SC_DEBUG_11_ez_sample_data_ready_SHIFT)
+#define SC_DEBUG_11_GET_pkr_fetch_new_sample_data(sc_debug_11) \
+ ((sc_debug_11 & SC_DEBUG_11_pkr_fetch_new_sample_data_MASK) >> SC_DEBUG_11_pkr_fetch_new_sample_data_SHIFT)
+#define SC_DEBUG_11_GET_ez_prim_data_ready(sc_debug_11) \
+ ((sc_debug_11 & SC_DEBUG_11_ez_prim_data_ready_MASK) >> SC_DEBUG_11_ez_prim_data_ready_SHIFT)
+#define SC_DEBUG_11_GET_pkr_fetch_new_prim_data(sc_debug_11) \
+ ((sc_debug_11 & SC_DEBUG_11_pkr_fetch_new_prim_data_MASK) >> SC_DEBUG_11_pkr_fetch_new_prim_data_SHIFT)
+#define SC_DEBUG_11_GET_iterator_input_fz(sc_debug_11) \
+ ((sc_debug_11 & SC_DEBUG_11_iterator_input_fz_MASK) >> SC_DEBUG_11_iterator_input_fz_SHIFT)
+#define SC_DEBUG_11_GET_packer_send_quads(sc_debug_11) \
+ ((sc_debug_11 & SC_DEBUG_11_packer_send_quads_MASK) >> SC_DEBUG_11_packer_send_quads_SHIFT)
+#define SC_DEBUG_11_GET_packer_send_cmd(sc_debug_11) \
+ ((sc_debug_11 & SC_DEBUG_11_packer_send_cmd_MASK) >> SC_DEBUG_11_packer_send_cmd_SHIFT)
+#define SC_DEBUG_11_GET_packer_send_event(sc_debug_11) \
+ ((sc_debug_11 & SC_DEBUG_11_packer_send_event_MASK) >> SC_DEBUG_11_packer_send_event_SHIFT)
+#define SC_DEBUG_11_GET_next_state(sc_debug_11) \
+ ((sc_debug_11 & SC_DEBUG_11_next_state_MASK) >> SC_DEBUG_11_next_state_SHIFT)
+#define SC_DEBUG_11_GET_state(sc_debug_11) \
+ ((sc_debug_11 & SC_DEBUG_11_state_MASK) >> SC_DEBUG_11_state_SHIFT)
+#define SC_DEBUG_11_GET_stall(sc_debug_11) \
+ ((sc_debug_11 & SC_DEBUG_11_stall_MASK) >> SC_DEBUG_11_stall_SHIFT)
+#define SC_DEBUG_11_GET_trigger(sc_debug_11) \
+ ((sc_debug_11 & SC_DEBUG_11_trigger_MASK) >> SC_DEBUG_11_trigger_SHIFT)
+
+#define SC_DEBUG_11_SET_ez_sample_data_ready(sc_debug_11_reg, ez_sample_data_ready) \
+ sc_debug_11_reg = (sc_debug_11_reg & ~SC_DEBUG_11_ez_sample_data_ready_MASK) | (ez_sample_data_ready << SC_DEBUG_11_ez_sample_data_ready_SHIFT)
+#define SC_DEBUG_11_SET_pkr_fetch_new_sample_data(sc_debug_11_reg, pkr_fetch_new_sample_data) \
+ sc_debug_11_reg = (sc_debug_11_reg & ~SC_DEBUG_11_pkr_fetch_new_sample_data_MASK) | (pkr_fetch_new_sample_data << SC_DEBUG_11_pkr_fetch_new_sample_data_SHIFT)
+#define SC_DEBUG_11_SET_ez_prim_data_ready(sc_debug_11_reg, ez_prim_data_ready) \
+ sc_debug_11_reg = (sc_debug_11_reg & ~SC_DEBUG_11_ez_prim_data_ready_MASK) | (ez_prim_data_ready << SC_DEBUG_11_ez_prim_data_ready_SHIFT)
+#define SC_DEBUG_11_SET_pkr_fetch_new_prim_data(sc_debug_11_reg, pkr_fetch_new_prim_data) \
+ sc_debug_11_reg = (sc_debug_11_reg & ~SC_DEBUG_11_pkr_fetch_new_prim_data_MASK) | (pkr_fetch_new_prim_data << SC_DEBUG_11_pkr_fetch_new_prim_data_SHIFT)
+#define SC_DEBUG_11_SET_iterator_input_fz(sc_debug_11_reg, iterator_input_fz) \
+ sc_debug_11_reg = (sc_debug_11_reg & ~SC_DEBUG_11_iterator_input_fz_MASK) | (iterator_input_fz << SC_DEBUG_11_iterator_input_fz_SHIFT)
+#define SC_DEBUG_11_SET_packer_send_quads(sc_debug_11_reg, packer_send_quads) \
+ sc_debug_11_reg = (sc_debug_11_reg & ~SC_DEBUG_11_packer_send_quads_MASK) | (packer_send_quads << SC_DEBUG_11_packer_send_quads_SHIFT)
+#define SC_DEBUG_11_SET_packer_send_cmd(sc_debug_11_reg, packer_send_cmd) \
+ sc_debug_11_reg = (sc_debug_11_reg & ~SC_DEBUG_11_packer_send_cmd_MASK) | (packer_send_cmd << SC_DEBUG_11_packer_send_cmd_SHIFT)
+#define SC_DEBUG_11_SET_packer_send_event(sc_debug_11_reg, packer_send_event) \
+ sc_debug_11_reg = (sc_debug_11_reg & ~SC_DEBUG_11_packer_send_event_MASK) | (packer_send_event << SC_DEBUG_11_packer_send_event_SHIFT)
+#define SC_DEBUG_11_SET_next_state(sc_debug_11_reg, next_state) \
+ sc_debug_11_reg = (sc_debug_11_reg & ~SC_DEBUG_11_next_state_MASK) | (next_state << SC_DEBUG_11_next_state_SHIFT)
+#define SC_DEBUG_11_SET_state(sc_debug_11_reg, state) \
+ sc_debug_11_reg = (sc_debug_11_reg & ~SC_DEBUG_11_state_MASK) | (state << SC_DEBUG_11_state_SHIFT)
+#define SC_DEBUG_11_SET_stall(sc_debug_11_reg, stall) \
+ sc_debug_11_reg = (sc_debug_11_reg & ~SC_DEBUG_11_stall_MASK) | (stall << SC_DEBUG_11_stall_SHIFT)
+#define SC_DEBUG_11_SET_trigger(sc_debug_11_reg, trigger) \
+ sc_debug_11_reg = (sc_debug_11_reg & ~SC_DEBUG_11_trigger_MASK) | (trigger << SC_DEBUG_11_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sc_debug_11_t {
+ unsigned int ez_sample_data_ready : SC_DEBUG_11_ez_sample_data_ready_SIZE;
+ unsigned int pkr_fetch_new_sample_data : SC_DEBUG_11_pkr_fetch_new_sample_data_SIZE;
+ unsigned int ez_prim_data_ready : SC_DEBUG_11_ez_prim_data_ready_SIZE;
+ unsigned int pkr_fetch_new_prim_data : SC_DEBUG_11_pkr_fetch_new_prim_data_SIZE;
+ unsigned int iterator_input_fz : SC_DEBUG_11_iterator_input_fz_SIZE;
+ unsigned int packer_send_quads : SC_DEBUG_11_packer_send_quads_SIZE;
+ unsigned int packer_send_cmd : SC_DEBUG_11_packer_send_cmd_SIZE;
+ unsigned int packer_send_event : SC_DEBUG_11_packer_send_event_SIZE;
+ unsigned int next_state : SC_DEBUG_11_next_state_SIZE;
+ unsigned int state : SC_DEBUG_11_state_SIZE;
+ unsigned int stall : SC_DEBUG_11_stall_SIZE;
+ unsigned int : 16;
+ unsigned int trigger : SC_DEBUG_11_trigger_SIZE;
+ } sc_debug_11_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sc_debug_11_t {
+ unsigned int trigger : SC_DEBUG_11_trigger_SIZE;
+ unsigned int : 16;
+ unsigned int stall : SC_DEBUG_11_stall_SIZE;
+ unsigned int state : SC_DEBUG_11_state_SIZE;
+ unsigned int next_state : SC_DEBUG_11_next_state_SIZE;
+ unsigned int packer_send_event : SC_DEBUG_11_packer_send_event_SIZE;
+ unsigned int packer_send_cmd : SC_DEBUG_11_packer_send_cmd_SIZE;
+ unsigned int packer_send_quads : SC_DEBUG_11_packer_send_quads_SIZE;
+ unsigned int iterator_input_fz : SC_DEBUG_11_iterator_input_fz_SIZE;
+ unsigned int pkr_fetch_new_prim_data : SC_DEBUG_11_pkr_fetch_new_prim_data_SIZE;
+ unsigned int ez_prim_data_ready : SC_DEBUG_11_ez_prim_data_ready_SIZE;
+ unsigned int pkr_fetch_new_sample_data : SC_DEBUG_11_pkr_fetch_new_sample_data_SIZE;
+ unsigned int ez_sample_data_ready : SC_DEBUG_11_ez_sample_data_ready_SIZE;
+ } sc_debug_11_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sc_debug_11_t f;
+} sc_debug_11_u;
+
+
+/*
+ * SC_DEBUG_12 struct
+ */
+
+#define SC_DEBUG_12_SQ_iterator_free_buff_SIZE 1
+#define SC_DEBUG_12_event_id_SIZE 5
+#define SC_DEBUG_12_event_flag_SIZE 1
+#define SC_DEBUG_12_itercmdfifo_busy_nc_dly_SIZE 1
+#define SC_DEBUG_12_itercmdfifo_full_SIZE 1
+#define SC_DEBUG_12_itercmdfifo_empty_SIZE 1
+#define SC_DEBUG_12_iter_ds_one_clk_command_SIZE 1
+#define SC_DEBUG_12_iter_ds_end_of_prim0_SIZE 1
+#define SC_DEBUG_12_iter_ds_end_of_vector_SIZE 1
+#define SC_DEBUG_12_iter_qdhit0_SIZE 1
+#define SC_DEBUG_12_bc_use_centers_reg_SIZE 1
+#define SC_DEBUG_12_bc_output_xy_reg_SIZE 1
+#define SC_DEBUG_12_iter_phase_out_SIZE 2
+#define SC_DEBUG_12_iter_phase_reg_SIZE 2
+#define SC_DEBUG_12_iterator_SP_valid_SIZE 1
+#define SC_DEBUG_12_eopv_reg_SIZE 1
+#define SC_DEBUG_12_one_clk_cmd_reg_SIZE 1
+#define SC_DEBUG_12_iter_dx_end_of_prim_SIZE 1
+#define SC_DEBUG_12_trigger_SIZE 1
+
+#define SC_DEBUG_12_SQ_iterator_free_buff_SHIFT 0
+#define SC_DEBUG_12_event_id_SHIFT 1
+#define SC_DEBUG_12_event_flag_SHIFT 6
+#define SC_DEBUG_12_itercmdfifo_busy_nc_dly_SHIFT 7
+#define SC_DEBUG_12_itercmdfifo_full_SHIFT 8
+#define SC_DEBUG_12_itercmdfifo_empty_SHIFT 9
+#define SC_DEBUG_12_iter_ds_one_clk_command_SHIFT 10
+#define SC_DEBUG_12_iter_ds_end_of_prim0_SHIFT 11
+#define SC_DEBUG_12_iter_ds_end_of_vector_SHIFT 12
+#define SC_DEBUG_12_iter_qdhit0_SHIFT 13
+#define SC_DEBUG_12_bc_use_centers_reg_SHIFT 14
+#define SC_DEBUG_12_bc_output_xy_reg_SHIFT 15
+#define SC_DEBUG_12_iter_phase_out_SHIFT 16
+#define SC_DEBUG_12_iter_phase_reg_SHIFT 18
+#define SC_DEBUG_12_iterator_SP_valid_SHIFT 20
+#define SC_DEBUG_12_eopv_reg_SHIFT 21
+#define SC_DEBUG_12_one_clk_cmd_reg_SHIFT 22
+#define SC_DEBUG_12_iter_dx_end_of_prim_SHIFT 23
+#define SC_DEBUG_12_trigger_SHIFT 31
+
+#define SC_DEBUG_12_SQ_iterator_free_buff_MASK 0x00000001
+#define SC_DEBUG_12_event_id_MASK 0x0000003e
+#define SC_DEBUG_12_event_flag_MASK 0x00000040
+#define SC_DEBUG_12_itercmdfifo_busy_nc_dly_MASK 0x00000080
+#define SC_DEBUG_12_itercmdfifo_full_MASK 0x00000100
+#define SC_DEBUG_12_itercmdfifo_empty_MASK 0x00000200
+#define SC_DEBUG_12_iter_ds_one_clk_command_MASK 0x00000400
+#define SC_DEBUG_12_iter_ds_end_of_prim0_MASK 0x00000800
+#define SC_DEBUG_12_iter_ds_end_of_vector_MASK 0x00001000
+#define SC_DEBUG_12_iter_qdhit0_MASK 0x00002000
+#define SC_DEBUG_12_bc_use_centers_reg_MASK 0x00004000
+#define SC_DEBUG_12_bc_output_xy_reg_MASK 0x00008000
+#define SC_DEBUG_12_iter_phase_out_MASK 0x00030000
+#define SC_DEBUG_12_iter_phase_reg_MASK 0x000c0000
+#define SC_DEBUG_12_iterator_SP_valid_MASK 0x00100000
+#define SC_DEBUG_12_eopv_reg_MASK 0x00200000
+#define SC_DEBUG_12_one_clk_cmd_reg_MASK 0x00400000
+#define SC_DEBUG_12_iter_dx_end_of_prim_MASK 0x00800000
+#define SC_DEBUG_12_trigger_MASK 0x80000000
+
+#define SC_DEBUG_12_MASK \
+ (SC_DEBUG_12_SQ_iterator_free_buff_MASK | \
+ SC_DEBUG_12_event_id_MASK | \
+ SC_DEBUG_12_event_flag_MASK | \
+ SC_DEBUG_12_itercmdfifo_busy_nc_dly_MASK | \
+ SC_DEBUG_12_itercmdfifo_full_MASK | \
+ SC_DEBUG_12_itercmdfifo_empty_MASK | \
+ SC_DEBUG_12_iter_ds_one_clk_command_MASK | \
+ SC_DEBUG_12_iter_ds_end_of_prim0_MASK | \
+ SC_DEBUG_12_iter_ds_end_of_vector_MASK | \
+ SC_DEBUG_12_iter_qdhit0_MASK | \
+ SC_DEBUG_12_bc_use_centers_reg_MASK | \
+ SC_DEBUG_12_bc_output_xy_reg_MASK | \
+ SC_DEBUG_12_iter_phase_out_MASK | \
+ SC_DEBUG_12_iter_phase_reg_MASK | \
+ SC_DEBUG_12_iterator_SP_valid_MASK | \
+ SC_DEBUG_12_eopv_reg_MASK | \
+ SC_DEBUG_12_one_clk_cmd_reg_MASK | \
+ SC_DEBUG_12_iter_dx_end_of_prim_MASK | \
+ SC_DEBUG_12_trigger_MASK)
+
+#define SC_DEBUG_12(sq_iterator_free_buff, event_id, event_flag, itercmdfifo_busy_nc_dly, itercmdfifo_full, itercmdfifo_empty, iter_ds_one_clk_command, iter_ds_end_of_prim0, iter_ds_end_of_vector, iter_qdhit0, bc_use_centers_reg, bc_output_xy_reg, iter_phase_out, iter_phase_reg, iterator_sp_valid, eopv_reg, one_clk_cmd_reg, iter_dx_end_of_prim, trigger) \
+ ((sq_iterator_free_buff << SC_DEBUG_12_SQ_iterator_free_buff_SHIFT) | \
+ (event_id << SC_DEBUG_12_event_id_SHIFT) | \
+ (event_flag << SC_DEBUG_12_event_flag_SHIFT) | \
+ (itercmdfifo_busy_nc_dly << SC_DEBUG_12_itercmdfifo_busy_nc_dly_SHIFT) | \
+ (itercmdfifo_full << SC_DEBUG_12_itercmdfifo_full_SHIFT) | \
+ (itercmdfifo_empty << SC_DEBUG_12_itercmdfifo_empty_SHIFT) | \
+ (iter_ds_one_clk_command << SC_DEBUG_12_iter_ds_one_clk_command_SHIFT) | \
+ (iter_ds_end_of_prim0 << SC_DEBUG_12_iter_ds_end_of_prim0_SHIFT) | \
+ (iter_ds_end_of_vector << SC_DEBUG_12_iter_ds_end_of_vector_SHIFT) | \
+ (iter_qdhit0 << SC_DEBUG_12_iter_qdhit0_SHIFT) | \
+ (bc_use_centers_reg << SC_DEBUG_12_bc_use_centers_reg_SHIFT) | \
+ (bc_output_xy_reg << SC_DEBUG_12_bc_output_xy_reg_SHIFT) | \
+ (iter_phase_out << SC_DEBUG_12_iter_phase_out_SHIFT) | \
+ (iter_phase_reg << SC_DEBUG_12_iter_phase_reg_SHIFT) | \
+ (iterator_sp_valid << SC_DEBUG_12_iterator_SP_valid_SHIFT) | \
+ (eopv_reg << SC_DEBUG_12_eopv_reg_SHIFT) | \
+ (one_clk_cmd_reg << SC_DEBUG_12_one_clk_cmd_reg_SHIFT) | \
+ (iter_dx_end_of_prim << SC_DEBUG_12_iter_dx_end_of_prim_SHIFT) | \
+ (trigger << SC_DEBUG_12_trigger_SHIFT))
+
+#define SC_DEBUG_12_GET_SQ_iterator_free_buff(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_SQ_iterator_free_buff_MASK) >> SC_DEBUG_12_SQ_iterator_free_buff_SHIFT)
+#define SC_DEBUG_12_GET_event_id(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_event_id_MASK) >> SC_DEBUG_12_event_id_SHIFT)
+#define SC_DEBUG_12_GET_event_flag(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_event_flag_MASK) >> SC_DEBUG_12_event_flag_SHIFT)
+#define SC_DEBUG_12_GET_itercmdfifo_busy_nc_dly(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_itercmdfifo_busy_nc_dly_MASK) >> SC_DEBUG_12_itercmdfifo_busy_nc_dly_SHIFT)
+#define SC_DEBUG_12_GET_itercmdfifo_full(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_itercmdfifo_full_MASK) >> SC_DEBUG_12_itercmdfifo_full_SHIFT)
+#define SC_DEBUG_12_GET_itercmdfifo_empty(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_itercmdfifo_empty_MASK) >> SC_DEBUG_12_itercmdfifo_empty_SHIFT)
+#define SC_DEBUG_12_GET_iter_ds_one_clk_command(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_iter_ds_one_clk_command_MASK) >> SC_DEBUG_12_iter_ds_one_clk_command_SHIFT)
+#define SC_DEBUG_12_GET_iter_ds_end_of_prim0(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_iter_ds_end_of_prim0_MASK) >> SC_DEBUG_12_iter_ds_end_of_prim0_SHIFT)
+#define SC_DEBUG_12_GET_iter_ds_end_of_vector(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_iter_ds_end_of_vector_MASK) >> SC_DEBUG_12_iter_ds_end_of_vector_SHIFT)
+#define SC_DEBUG_12_GET_iter_qdhit0(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_iter_qdhit0_MASK) >> SC_DEBUG_12_iter_qdhit0_SHIFT)
+#define SC_DEBUG_12_GET_bc_use_centers_reg(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_bc_use_centers_reg_MASK) >> SC_DEBUG_12_bc_use_centers_reg_SHIFT)
+#define SC_DEBUG_12_GET_bc_output_xy_reg(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_bc_output_xy_reg_MASK) >> SC_DEBUG_12_bc_output_xy_reg_SHIFT)
+#define SC_DEBUG_12_GET_iter_phase_out(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_iter_phase_out_MASK) >> SC_DEBUG_12_iter_phase_out_SHIFT)
+#define SC_DEBUG_12_GET_iter_phase_reg(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_iter_phase_reg_MASK) >> SC_DEBUG_12_iter_phase_reg_SHIFT)
+#define SC_DEBUG_12_GET_iterator_SP_valid(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_iterator_SP_valid_MASK) >> SC_DEBUG_12_iterator_SP_valid_SHIFT)
+#define SC_DEBUG_12_GET_eopv_reg(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_eopv_reg_MASK) >> SC_DEBUG_12_eopv_reg_SHIFT)
+#define SC_DEBUG_12_GET_one_clk_cmd_reg(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_one_clk_cmd_reg_MASK) >> SC_DEBUG_12_one_clk_cmd_reg_SHIFT)
+#define SC_DEBUG_12_GET_iter_dx_end_of_prim(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_iter_dx_end_of_prim_MASK) >> SC_DEBUG_12_iter_dx_end_of_prim_SHIFT)
+#define SC_DEBUG_12_GET_trigger(sc_debug_12) \
+ ((sc_debug_12 & SC_DEBUG_12_trigger_MASK) >> SC_DEBUG_12_trigger_SHIFT)
+
+#define SC_DEBUG_12_SET_SQ_iterator_free_buff(sc_debug_12_reg, sq_iterator_free_buff) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_SQ_iterator_free_buff_MASK) | (sq_iterator_free_buff << SC_DEBUG_12_SQ_iterator_free_buff_SHIFT)
+#define SC_DEBUG_12_SET_event_id(sc_debug_12_reg, event_id) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_event_id_MASK) | (event_id << SC_DEBUG_12_event_id_SHIFT)
+#define SC_DEBUG_12_SET_event_flag(sc_debug_12_reg, event_flag) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_event_flag_MASK) | (event_flag << SC_DEBUG_12_event_flag_SHIFT)
+#define SC_DEBUG_12_SET_itercmdfifo_busy_nc_dly(sc_debug_12_reg, itercmdfifo_busy_nc_dly) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_itercmdfifo_busy_nc_dly_MASK) | (itercmdfifo_busy_nc_dly << SC_DEBUG_12_itercmdfifo_busy_nc_dly_SHIFT)
+#define SC_DEBUG_12_SET_itercmdfifo_full(sc_debug_12_reg, itercmdfifo_full) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_itercmdfifo_full_MASK) | (itercmdfifo_full << SC_DEBUG_12_itercmdfifo_full_SHIFT)
+#define SC_DEBUG_12_SET_itercmdfifo_empty(sc_debug_12_reg, itercmdfifo_empty) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_itercmdfifo_empty_MASK) | (itercmdfifo_empty << SC_DEBUG_12_itercmdfifo_empty_SHIFT)
+#define SC_DEBUG_12_SET_iter_ds_one_clk_command(sc_debug_12_reg, iter_ds_one_clk_command) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_iter_ds_one_clk_command_MASK) | (iter_ds_one_clk_command << SC_DEBUG_12_iter_ds_one_clk_command_SHIFT)
+#define SC_DEBUG_12_SET_iter_ds_end_of_prim0(sc_debug_12_reg, iter_ds_end_of_prim0) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_iter_ds_end_of_prim0_MASK) | (iter_ds_end_of_prim0 << SC_DEBUG_12_iter_ds_end_of_prim0_SHIFT)
+#define SC_DEBUG_12_SET_iter_ds_end_of_vector(sc_debug_12_reg, iter_ds_end_of_vector) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_iter_ds_end_of_vector_MASK) | (iter_ds_end_of_vector << SC_DEBUG_12_iter_ds_end_of_vector_SHIFT)
+#define SC_DEBUG_12_SET_iter_qdhit0(sc_debug_12_reg, iter_qdhit0) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_iter_qdhit0_MASK) | (iter_qdhit0 << SC_DEBUG_12_iter_qdhit0_SHIFT)
+#define SC_DEBUG_12_SET_bc_use_centers_reg(sc_debug_12_reg, bc_use_centers_reg) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_bc_use_centers_reg_MASK) | (bc_use_centers_reg << SC_DEBUG_12_bc_use_centers_reg_SHIFT)
+#define SC_DEBUG_12_SET_bc_output_xy_reg(sc_debug_12_reg, bc_output_xy_reg) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_bc_output_xy_reg_MASK) | (bc_output_xy_reg << SC_DEBUG_12_bc_output_xy_reg_SHIFT)
+#define SC_DEBUG_12_SET_iter_phase_out(sc_debug_12_reg, iter_phase_out) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_iter_phase_out_MASK) | (iter_phase_out << SC_DEBUG_12_iter_phase_out_SHIFT)
+#define SC_DEBUG_12_SET_iter_phase_reg(sc_debug_12_reg, iter_phase_reg) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_iter_phase_reg_MASK) | (iter_phase_reg << SC_DEBUG_12_iter_phase_reg_SHIFT)
+#define SC_DEBUG_12_SET_iterator_SP_valid(sc_debug_12_reg, iterator_sp_valid) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_iterator_SP_valid_MASK) | (iterator_sp_valid << SC_DEBUG_12_iterator_SP_valid_SHIFT)
+#define SC_DEBUG_12_SET_eopv_reg(sc_debug_12_reg, eopv_reg) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_eopv_reg_MASK) | (eopv_reg << SC_DEBUG_12_eopv_reg_SHIFT)
+#define SC_DEBUG_12_SET_one_clk_cmd_reg(sc_debug_12_reg, one_clk_cmd_reg) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_one_clk_cmd_reg_MASK) | (one_clk_cmd_reg << SC_DEBUG_12_one_clk_cmd_reg_SHIFT)
+#define SC_DEBUG_12_SET_iter_dx_end_of_prim(sc_debug_12_reg, iter_dx_end_of_prim) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_iter_dx_end_of_prim_MASK) | (iter_dx_end_of_prim << SC_DEBUG_12_iter_dx_end_of_prim_SHIFT)
+#define SC_DEBUG_12_SET_trigger(sc_debug_12_reg, trigger) \
+ sc_debug_12_reg = (sc_debug_12_reg & ~SC_DEBUG_12_trigger_MASK) | (trigger << SC_DEBUG_12_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sc_debug_12_t {
+ unsigned int sq_iterator_free_buff : SC_DEBUG_12_SQ_iterator_free_buff_SIZE;
+ unsigned int event_id : SC_DEBUG_12_event_id_SIZE;
+ unsigned int event_flag : SC_DEBUG_12_event_flag_SIZE;
+ unsigned int itercmdfifo_busy_nc_dly : SC_DEBUG_12_itercmdfifo_busy_nc_dly_SIZE;
+ unsigned int itercmdfifo_full : SC_DEBUG_12_itercmdfifo_full_SIZE;
+ unsigned int itercmdfifo_empty : SC_DEBUG_12_itercmdfifo_empty_SIZE;
+ unsigned int iter_ds_one_clk_command : SC_DEBUG_12_iter_ds_one_clk_command_SIZE;
+ unsigned int iter_ds_end_of_prim0 : SC_DEBUG_12_iter_ds_end_of_prim0_SIZE;
+ unsigned int iter_ds_end_of_vector : SC_DEBUG_12_iter_ds_end_of_vector_SIZE;
+ unsigned int iter_qdhit0 : SC_DEBUG_12_iter_qdhit0_SIZE;
+ unsigned int bc_use_centers_reg : SC_DEBUG_12_bc_use_centers_reg_SIZE;
+ unsigned int bc_output_xy_reg : SC_DEBUG_12_bc_output_xy_reg_SIZE;
+ unsigned int iter_phase_out : SC_DEBUG_12_iter_phase_out_SIZE;
+ unsigned int iter_phase_reg : SC_DEBUG_12_iter_phase_reg_SIZE;
+ unsigned int iterator_sp_valid : SC_DEBUG_12_iterator_SP_valid_SIZE;
+ unsigned int eopv_reg : SC_DEBUG_12_eopv_reg_SIZE;
+ unsigned int one_clk_cmd_reg : SC_DEBUG_12_one_clk_cmd_reg_SIZE;
+ unsigned int iter_dx_end_of_prim : SC_DEBUG_12_iter_dx_end_of_prim_SIZE;
+ unsigned int : 7;
+ unsigned int trigger : SC_DEBUG_12_trigger_SIZE;
+ } sc_debug_12_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sc_debug_12_t {
+ unsigned int trigger : SC_DEBUG_12_trigger_SIZE;
+ unsigned int : 7;
+ unsigned int iter_dx_end_of_prim : SC_DEBUG_12_iter_dx_end_of_prim_SIZE;
+ unsigned int one_clk_cmd_reg : SC_DEBUG_12_one_clk_cmd_reg_SIZE;
+ unsigned int eopv_reg : SC_DEBUG_12_eopv_reg_SIZE;
+ unsigned int iterator_sp_valid : SC_DEBUG_12_iterator_SP_valid_SIZE;
+ unsigned int iter_phase_reg : SC_DEBUG_12_iter_phase_reg_SIZE;
+ unsigned int iter_phase_out : SC_DEBUG_12_iter_phase_out_SIZE;
+ unsigned int bc_output_xy_reg : SC_DEBUG_12_bc_output_xy_reg_SIZE;
+ unsigned int bc_use_centers_reg : SC_DEBUG_12_bc_use_centers_reg_SIZE;
+ unsigned int iter_qdhit0 : SC_DEBUG_12_iter_qdhit0_SIZE;
+ unsigned int iter_ds_end_of_vector : SC_DEBUG_12_iter_ds_end_of_vector_SIZE;
+ unsigned int iter_ds_end_of_prim0 : SC_DEBUG_12_iter_ds_end_of_prim0_SIZE;
+ unsigned int iter_ds_one_clk_command : SC_DEBUG_12_iter_ds_one_clk_command_SIZE;
+ unsigned int itercmdfifo_empty : SC_DEBUG_12_itercmdfifo_empty_SIZE;
+ unsigned int itercmdfifo_full : SC_DEBUG_12_itercmdfifo_full_SIZE;
+ unsigned int itercmdfifo_busy_nc_dly : SC_DEBUG_12_itercmdfifo_busy_nc_dly_SIZE;
+ unsigned int event_flag : SC_DEBUG_12_event_flag_SIZE;
+ unsigned int event_id : SC_DEBUG_12_event_id_SIZE;
+ unsigned int sq_iterator_free_buff : SC_DEBUG_12_SQ_iterator_free_buff_SIZE;
+ } sc_debug_12_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sc_debug_12_t f;
+} sc_debug_12_u;
+
+
+#endif
+
+
+#if !defined (_VGT_FIDDLE_H)
+#define _VGT_FIDDLE_H
+
+/*******************************************************
+ * Enums
+ *******************************************************/
+
+/*
+ * VGT_OUT_PRIM_TYPE enum
+ */
+
+#define VGT_OUT_POINT 0x00000000
+#define VGT_OUT_LINE 0x00000001
+#define VGT_OUT_TRI 0x00000002
+#define VGT_OUT_RECT_V0 0x00000003
+#define VGT_OUT_RECT_V1 0x00000004
+#define VGT_OUT_RECT_V2 0x00000005
+#define VGT_OUT_RECT_V3 0x00000006
+#define VGT_OUT_RESERVED 0x00000007
+#define VGT_TE_QUAD 0x00000008
+#define VGT_TE_PRIM_INDEX_LINE 0x00000009
+#define VGT_TE_PRIM_INDEX_TRI 0x0000000a
+#define VGT_TE_PRIM_INDEX_QUAD 0x0000000b
+
+
+/*******************************************************
+ * Values
+ *******************************************************/
+
+
+/*******************************************************
+ * Structures
+ *******************************************************/
+
+/*
+ * GFX_COPY_STATE struct
+ */
+
+#define GFX_COPY_STATE_SRC_STATE_ID_SIZE 1
+
+#define GFX_COPY_STATE_SRC_STATE_ID_SHIFT 0
+
+#define GFX_COPY_STATE_SRC_STATE_ID_MASK 0x00000001
+
+#define GFX_COPY_STATE_MASK \
+ (GFX_COPY_STATE_SRC_STATE_ID_MASK)
+
+#define GFX_COPY_STATE(src_state_id) \
+ ((src_state_id << GFX_COPY_STATE_SRC_STATE_ID_SHIFT))
+
+#define GFX_COPY_STATE_GET_SRC_STATE_ID(gfx_copy_state) \
+ ((gfx_copy_state & GFX_COPY_STATE_SRC_STATE_ID_MASK) >> GFX_COPY_STATE_SRC_STATE_ID_SHIFT)
+
+#define GFX_COPY_STATE_SET_SRC_STATE_ID(gfx_copy_state_reg, src_state_id) \
+ gfx_copy_state_reg = (gfx_copy_state_reg & ~GFX_COPY_STATE_SRC_STATE_ID_MASK) | (src_state_id << GFX_COPY_STATE_SRC_STATE_ID_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _gfx_copy_state_t {
+ unsigned int src_state_id : GFX_COPY_STATE_SRC_STATE_ID_SIZE;
+ unsigned int : 31;
+ } gfx_copy_state_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _gfx_copy_state_t {
+ unsigned int : 31;
+ unsigned int src_state_id : GFX_COPY_STATE_SRC_STATE_ID_SIZE;
+ } gfx_copy_state_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ gfx_copy_state_t f;
+} gfx_copy_state_u;
+
+
+/*
+ * VGT_DRAW_INITIATOR struct
+ */
+
+#define VGT_DRAW_INITIATOR_PRIM_TYPE_SIZE 6
+#define VGT_DRAW_INITIATOR_SOURCE_SELECT_SIZE 2
+#define VGT_DRAW_INITIATOR_FACENESS_CULL_SELECT_SIZE 2
+#define VGT_DRAW_INITIATOR_INDEX_SIZE_SIZE 1
+#define VGT_DRAW_INITIATOR_NOT_EOP_SIZE 1
+#define VGT_DRAW_INITIATOR_SMALL_INDEX_SIZE 1
+#define VGT_DRAW_INITIATOR_PRE_FETCH_CULL_ENABLE_SIZE 1
+#define VGT_DRAW_INITIATOR_GRP_CULL_ENABLE_SIZE 1
+#define VGT_DRAW_INITIATOR_NUM_INDICES_SIZE 16
+
+#define VGT_DRAW_INITIATOR_PRIM_TYPE_SHIFT 0
+#define VGT_DRAW_INITIATOR_SOURCE_SELECT_SHIFT 6
+#define VGT_DRAW_INITIATOR_FACENESS_CULL_SELECT_SHIFT 8
+#define VGT_DRAW_INITIATOR_INDEX_SIZE_SHIFT 11
+#define VGT_DRAW_INITIATOR_NOT_EOP_SHIFT 12
+#define VGT_DRAW_INITIATOR_SMALL_INDEX_SHIFT 13
+#define VGT_DRAW_INITIATOR_PRE_FETCH_CULL_ENABLE_SHIFT 14
+#define VGT_DRAW_INITIATOR_GRP_CULL_ENABLE_SHIFT 15
+#define VGT_DRAW_INITIATOR_NUM_INDICES_SHIFT 16
+
+#define VGT_DRAW_INITIATOR_PRIM_TYPE_MASK 0x0000003f
+#define VGT_DRAW_INITIATOR_SOURCE_SELECT_MASK 0x000000c0
+#define VGT_DRAW_INITIATOR_FACENESS_CULL_SELECT_MASK 0x00000300
+#define VGT_DRAW_INITIATOR_INDEX_SIZE_MASK 0x00000800
+#define VGT_DRAW_INITIATOR_NOT_EOP_MASK 0x00001000
+#define VGT_DRAW_INITIATOR_SMALL_INDEX_MASK 0x00002000
+#define VGT_DRAW_INITIATOR_PRE_FETCH_CULL_ENABLE_MASK 0x00004000
+#define VGT_DRAW_INITIATOR_GRP_CULL_ENABLE_MASK 0x00008000
+#define VGT_DRAW_INITIATOR_NUM_INDICES_MASK 0xffff0000
+
+#define VGT_DRAW_INITIATOR_MASK \
+ (VGT_DRAW_INITIATOR_PRIM_TYPE_MASK | \
+ VGT_DRAW_INITIATOR_SOURCE_SELECT_MASK | \
+ VGT_DRAW_INITIATOR_FACENESS_CULL_SELECT_MASK | \
+ VGT_DRAW_INITIATOR_INDEX_SIZE_MASK | \
+ VGT_DRAW_INITIATOR_NOT_EOP_MASK | \
+ VGT_DRAW_INITIATOR_SMALL_INDEX_MASK | \
+ VGT_DRAW_INITIATOR_PRE_FETCH_CULL_ENABLE_MASK | \
+ VGT_DRAW_INITIATOR_GRP_CULL_ENABLE_MASK | \
+ VGT_DRAW_INITIATOR_NUM_INDICES_MASK)
+
+#define VGT_DRAW_INITIATOR(prim_type, source_select, faceness_cull_select, index_size, not_eop, small_index, pre_fetch_cull_enable, grp_cull_enable, num_indices) \
+ ((prim_type << VGT_DRAW_INITIATOR_PRIM_TYPE_SHIFT) | \
+ (source_select << VGT_DRAW_INITIATOR_SOURCE_SELECT_SHIFT) | \
+ (faceness_cull_select << VGT_DRAW_INITIATOR_FACENESS_CULL_SELECT_SHIFT) | \
+ (index_size << VGT_DRAW_INITIATOR_INDEX_SIZE_SHIFT) | \
+ (not_eop << VGT_DRAW_INITIATOR_NOT_EOP_SHIFT) | \
+ (small_index << VGT_DRAW_INITIATOR_SMALL_INDEX_SHIFT) | \
+ (pre_fetch_cull_enable << VGT_DRAW_INITIATOR_PRE_FETCH_CULL_ENABLE_SHIFT) | \
+ (grp_cull_enable << VGT_DRAW_INITIATOR_GRP_CULL_ENABLE_SHIFT) | \
+ (num_indices << VGT_DRAW_INITIATOR_NUM_INDICES_SHIFT))
+
+#define VGT_DRAW_INITIATOR_GET_PRIM_TYPE(vgt_draw_initiator) \
+ ((vgt_draw_initiator & VGT_DRAW_INITIATOR_PRIM_TYPE_MASK) >> VGT_DRAW_INITIATOR_PRIM_TYPE_SHIFT)
+#define VGT_DRAW_INITIATOR_GET_SOURCE_SELECT(vgt_draw_initiator) \
+ ((vgt_draw_initiator & VGT_DRAW_INITIATOR_SOURCE_SELECT_MASK) >> VGT_DRAW_INITIATOR_SOURCE_SELECT_SHIFT)
+#define VGT_DRAW_INITIATOR_GET_FACENESS_CULL_SELECT(vgt_draw_initiator) \
+ ((vgt_draw_initiator & VGT_DRAW_INITIATOR_FACENESS_CULL_SELECT_MASK) >> VGT_DRAW_INITIATOR_FACENESS_CULL_SELECT_SHIFT)
+#define VGT_DRAW_INITIATOR_GET_INDEX_SIZE(vgt_draw_initiator) \
+ ((vgt_draw_initiator & VGT_DRAW_INITIATOR_INDEX_SIZE_MASK) >> VGT_DRAW_INITIATOR_INDEX_SIZE_SHIFT)
+#define VGT_DRAW_INITIATOR_GET_NOT_EOP(vgt_draw_initiator) \
+ ((vgt_draw_initiator & VGT_DRAW_INITIATOR_NOT_EOP_MASK) >> VGT_DRAW_INITIATOR_NOT_EOP_SHIFT)
+#define VGT_DRAW_INITIATOR_GET_SMALL_INDEX(vgt_draw_initiator) \
+ ((vgt_draw_initiator & VGT_DRAW_INITIATOR_SMALL_INDEX_MASK) >> VGT_DRAW_INITIATOR_SMALL_INDEX_SHIFT)
+#define VGT_DRAW_INITIATOR_GET_PRE_FETCH_CULL_ENABLE(vgt_draw_initiator) \
+ ((vgt_draw_initiator & VGT_DRAW_INITIATOR_PRE_FETCH_CULL_ENABLE_MASK) >> VGT_DRAW_INITIATOR_PRE_FETCH_CULL_ENABLE_SHIFT)
+#define VGT_DRAW_INITIATOR_GET_GRP_CULL_ENABLE(vgt_draw_initiator) \
+ ((vgt_draw_initiator & VGT_DRAW_INITIATOR_GRP_CULL_ENABLE_MASK) >> VGT_DRAW_INITIATOR_GRP_CULL_ENABLE_SHIFT)
+#define VGT_DRAW_INITIATOR_GET_NUM_INDICES(vgt_draw_initiator) \
+ ((vgt_draw_initiator & VGT_DRAW_INITIATOR_NUM_INDICES_MASK) >> VGT_DRAW_INITIATOR_NUM_INDICES_SHIFT)
+
+#define VGT_DRAW_INITIATOR_SET_PRIM_TYPE(vgt_draw_initiator_reg, prim_type) \
+ vgt_draw_initiator_reg = (vgt_draw_initiator_reg & ~VGT_DRAW_INITIATOR_PRIM_TYPE_MASK) | (prim_type << VGT_DRAW_INITIATOR_PRIM_TYPE_SHIFT)
+#define VGT_DRAW_INITIATOR_SET_SOURCE_SELECT(vgt_draw_initiator_reg, source_select) \
+ vgt_draw_initiator_reg = (vgt_draw_initiator_reg & ~VGT_DRAW_INITIATOR_SOURCE_SELECT_MASK) | (source_select << VGT_DRAW_INITIATOR_SOURCE_SELECT_SHIFT)
+#define VGT_DRAW_INITIATOR_SET_FACENESS_CULL_SELECT(vgt_draw_initiator_reg, faceness_cull_select) \
+ vgt_draw_initiator_reg = (vgt_draw_initiator_reg & ~VGT_DRAW_INITIATOR_FACENESS_CULL_SELECT_MASK) | (faceness_cull_select << VGT_DRAW_INITIATOR_FACENESS_CULL_SELECT_SHIFT)
+#define VGT_DRAW_INITIATOR_SET_INDEX_SIZE(vgt_draw_initiator_reg, index_size) \
+ vgt_draw_initiator_reg = (vgt_draw_initiator_reg & ~VGT_DRAW_INITIATOR_INDEX_SIZE_MASK) | (index_size << VGT_DRAW_INITIATOR_INDEX_SIZE_SHIFT)
+#define VGT_DRAW_INITIATOR_SET_NOT_EOP(vgt_draw_initiator_reg, not_eop) \
+ vgt_draw_initiator_reg = (vgt_draw_initiator_reg & ~VGT_DRAW_INITIATOR_NOT_EOP_MASK) | (not_eop << VGT_DRAW_INITIATOR_NOT_EOP_SHIFT)
+#define VGT_DRAW_INITIATOR_SET_SMALL_INDEX(vgt_draw_initiator_reg, small_index) \
+ vgt_draw_initiator_reg = (vgt_draw_initiator_reg & ~VGT_DRAW_INITIATOR_SMALL_INDEX_MASK) | (small_index << VGT_DRAW_INITIATOR_SMALL_INDEX_SHIFT)
+#define VGT_DRAW_INITIATOR_SET_PRE_FETCH_CULL_ENABLE(vgt_draw_initiator_reg, pre_fetch_cull_enable) \
+ vgt_draw_initiator_reg = (vgt_draw_initiator_reg & ~VGT_DRAW_INITIATOR_PRE_FETCH_CULL_ENABLE_MASK) | (pre_fetch_cull_enable << VGT_DRAW_INITIATOR_PRE_FETCH_CULL_ENABLE_SHIFT)
+#define VGT_DRAW_INITIATOR_SET_GRP_CULL_ENABLE(vgt_draw_initiator_reg, grp_cull_enable) \
+ vgt_draw_initiator_reg = (vgt_draw_initiator_reg & ~VGT_DRAW_INITIATOR_GRP_CULL_ENABLE_MASK) | (grp_cull_enable << VGT_DRAW_INITIATOR_GRP_CULL_ENABLE_SHIFT)
+#define VGT_DRAW_INITIATOR_SET_NUM_INDICES(vgt_draw_initiator_reg, num_indices) \
+ vgt_draw_initiator_reg = (vgt_draw_initiator_reg & ~VGT_DRAW_INITIATOR_NUM_INDICES_MASK) | (num_indices << VGT_DRAW_INITIATOR_NUM_INDICES_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_draw_initiator_t {
+ unsigned int prim_type : VGT_DRAW_INITIATOR_PRIM_TYPE_SIZE;
+ unsigned int source_select : VGT_DRAW_INITIATOR_SOURCE_SELECT_SIZE;
+ unsigned int faceness_cull_select : VGT_DRAW_INITIATOR_FACENESS_CULL_SELECT_SIZE;
+ unsigned int : 1;
+ unsigned int index_size : VGT_DRAW_INITIATOR_INDEX_SIZE_SIZE;
+ unsigned int not_eop : VGT_DRAW_INITIATOR_NOT_EOP_SIZE;
+ unsigned int small_index : VGT_DRAW_INITIATOR_SMALL_INDEX_SIZE;
+ unsigned int pre_fetch_cull_enable : VGT_DRAW_INITIATOR_PRE_FETCH_CULL_ENABLE_SIZE;
+ unsigned int grp_cull_enable : VGT_DRAW_INITIATOR_GRP_CULL_ENABLE_SIZE;
+ unsigned int num_indices : VGT_DRAW_INITIATOR_NUM_INDICES_SIZE;
+ } vgt_draw_initiator_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_draw_initiator_t {
+ unsigned int num_indices : VGT_DRAW_INITIATOR_NUM_INDICES_SIZE;
+ unsigned int grp_cull_enable : VGT_DRAW_INITIATOR_GRP_CULL_ENABLE_SIZE;
+ unsigned int pre_fetch_cull_enable : VGT_DRAW_INITIATOR_PRE_FETCH_CULL_ENABLE_SIZE;
+ unsigned int small_index : VGT_DRAW_INITIATOR_SMALL_INDEX_SIZE;
+ unsigned int not_eop : VGT_DRAW_INITIATOR_NOT_EOP_SIZE;
+ unsigned int index_size : VGT_DRAW_INITIATOR_INDEX_SIZE_SIZE;
+ unsigned int : 1;
+ unsigned int faceness_cull_select : VGT_DRAW_INITIATOR_FACENESS_CULL_SELECT_SIZE;
+ unsigned int source_select : VGT_DRAW_INITIATOR_SOURCE_SELECT_SIZE;
+ unsigned int prim_type : VGT_DRAW_INITIATOR_PRIM_TYPE_SIZE;
+ } vgt_draw_initiator_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_draw_initiator_t f;
+} vgt_draw_initiator_u;
+
+
+/*
+ * VGT_EVENT_INITIATOR struct
+ */
+
+#define VGT_EVENT_INITIATOR_EVENT_TYPE_SIZE 6
+
+#define VGT_EVENT_INITIATOR_EVENT_TYPE_SHIFT 0
+
+#define VGT_EVENT_INITIATOR_EVENT_TYPE_MASK 0x0000003f
+
+#define VGT_EVENT_INITIATOR_MASK \
+ (VGT_EVENT_INITIATOR_EVENT_TYPE_MASK)
+
+#define VGT_EVENT_INITIATOR(event_type) \
+ ((event_type << VGT_EVENT_INITIATOR_EVENT_TYPE_SHIFT))
+
+#define VGT_EVENT_INITIATOR_GET_EVENT_TYPE(vgt_event_initiator) \
+ ((vgt_event_initiator & VGT_EVENT_INITIATOR_EVENT_TYPE_MASK) >> VGT_EVENT_INITIATOR_EVENT_TYPE_SHIFT)
+
+#define VGT_EVENT_INITIATOR_SET_EVENT_TYPE(vgt_event_initiator_reg, event_type) \
+ vgt_event_initiator_reg = (vgt_event_initiator_reg & ~VGT_EVENT_INITIATOR_EVENT_TYPE_MASK) | (event_type << VGT_EVENT_INITIATOR_EVENT_TYPE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_event_initiator_t {
+ unsigned int event_type : VGT_EVENT_INITIATOR_EVENT_TYPE_SIZE;
+ unsigned int : 26;
+ } vgt_event_initiator_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_event_initiator_t {
+ unsigned int : 26;
+ unsigned int event_type : VGT_EVENT_INITIATOR_EVENT_TYPE_SIZE;
+ } vgt_event_initiator_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_event_initiator_t f;
+} vgt_event_initiator_u;
+
+
+/*
+ * VGT_DMA_BASE struct
+ */
+
+#define VGT_DMA_BASE_BASE_ADDR_SIZE 32
+
+#define VGT_DMA_BASE_BASE_ADDR_SHIFT 0
+
+#define VGT_DMA_BASE_BASE_ADDR_MASK 0xffffffff
+
+#define VGT_DMA_BASE_MASK \
+ (VGT_DMA_BASE_BASE_ADDR_MASK)
+
+#define VGT_DMA_BASE(base_addr) \
+ ((base_addr << VGT_DMA_BASE_BASE_ADDR_SHIFT))
+
+#define VGT_DMA_BASE_GET_BASE_ADDR(vgt_dma_base) \
+ ((vgt_dma_base & VGT_DMA_BASE_BASE_ADDR_MASK) >> VGT_DMA_BASE_BASE_ADDR_SHIFT)
+
+#define VGT_DMA_BASE_SET_BASE_ADDR(vgt_dma_base_reg, base_addr) \
+ vgt_dma_base_reg = (vgt_dma_base_reg & ~VGT_DMA_BASE_BASE_ADDR_MASK) | (base_addr << VGT_DMA_BASE_BASE_ADDR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_dma_base_t {
+ unsigned int base_addr : VGT_DMA_BASE_BASE_ADDR_SIZE;
+ } vgt_dma_base_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_dma_base_t {
+ unsigned int base_addr : VGT_DMA_BASE_BASE_ADDR_SIZE;
+ } vgt_dma_base_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_dma_base_t f;
+} vgt_dma_base_u;
+
+
+/*
+ * VGT_DMA_SIZE struct
+ */
+
+#define VGT_DMA_SIZE_NUM_WORDS_SIZE 24
+#define VGT_DMA_SIZE_SWAP_MODE_SIZE 2
+
+#define VGT_DMA_SIZE_NUM_WORDS_SHIFT 0
+#define VGT_DMA_SIZE_SWAP_MODE_SHIFT 30
+
+#define VGT_DMA_SIZE_NUM_WORDS_MASK 0x00ffffff
+#define VGT_DMA_SIZE_SWAP_MODE_MASK 0xc0000000
+
+#define VGT_DMA_SIZE_MASK \
+ (VGT_DMA_SIZE_NUM_WORDS_MASK | \
+ VGT_DMA_SIZE_SWAP_MODE_MASK)
+
+#define VGT_DMA_SIZE(num_words, swap_mode) \
+ ((num_words << VGT_DMA_SIZE_NUM_WORDS_SHIFT) | \
+ (swap_mode << VGT_DMA_SIZE_SWAP_MODE_SHIFT))
+
+#define VGT_DMA_SIZE_GET_NUM_WORDS(vgt_dma_size) \
+ ((vgt_dma_size & VGT_DMA_SIZE_NUM_WORDS_MASK) >> VGT_DMA_SIZE_NUM_WORDS_SHIFT)
+#define VGT_DMA_SIZE_GET_SWAP_MODE(vgt_dma_size) \
+ ((vgt_dma_size & VGT_DMA_SIZE_SWAP_MODE_MASK) >> VGT_DMA_SIZE_SWAP_MODE_SHIFT)
+
+#define VGT_DMA_SIZE_SET_NUM_WORDS(vgt_dma_size_reg, num_words) \
+ vgt_dma_size_reg = (vgt_dma_size_reg & ~VGT_DMA_SIZE_NUM_WORDS_MASK) | (num_words << VGT_DMA_SIZE_NUM_WORDS_SHIFT)
+#define VGT_DMA_SIZE_SET_SWAP_MODE(vgt_dma_size_reg, swap_mode) \
+ vgt_dma_size_reg = (vgt_dma_size_reg & ~VGT_DMA_SIZE_SWAP_MODE_MASK) | (swap_mode << VGT_DMA_SIZE_SWAP_MODE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_dma_size_t {
+ unsigned int num_words : VGT_DMA_SIZE_NUM_WORDS_SIZE;
+ unsigned int : 6;
+ unsigned int swap_mode : VGT_DMA_SIZE_SWAP_MODE_SIZE;
+ } vgt_dma_size_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_dma_size_t {
+ unsigned int swap_mode : VGT_DMA_SIZE_SWAP_MODE_SIZE;
+ unsigned int : 6;
+ unsigned int num_words : VGT_DMA_SIZE_NUM_WORDS_SIZE;
+ } vgt_dma_size_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_dma_size_t f;
+} vgt_dma_size_u;
+
+
+/*
+ * VGT_BIN_BASE struct
+ */
+
+#define VGT_BIN_BASE_BIN_BASE_ADDR_SIZE 32
+
+#define VGT_BIN_BASE_BIN_BASE_ADDR_SHIFT 0
+
+#define VGT_BIN_BASE_BIN_BASE_ADDR_MASK 0xffffffff
+
+#define VGT_BIN_BASE_MASK \
+ (VGT_BIN_BASE_BIN_BASE_ADDR_MASK)
+
+#define VGT_BIN_BASE(bin_base_addr) \
+ ((bin_base_addr << VGT_BIN_BASE_BIN_BASE_ADDR_SHIFT))
+
+#define VGT_BIN_BASE_GET_BIN_BASE_ADDR(vgt_bin_base) \
+ ((vgt_bin_base & VGT_BIN_BASE_BIN_BASE_ADDR_MASK) >> VGT_BIN_BASE_BIN_BASE_ADDR_SHIFT)
+
+#define VGT_BIN_BASE_SET_BIN_BASE_ADDR(vgt_bin_base_reg, bin_base_addr) \
+ vgt_bin_base_reg = (vgt_bin_base_reg & ~VGT_BIN_BASE_BIN_BASE_ADDR_MASK) | (bin_base_addr << VGT_BIN_BASE_BIN_BASE_ADDR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_bin_base_t {
+ unsigned int bin_base_addr : VGT_BIN_BASE_BIN_BASE_ADDR_SIZE;
+ } vgt_bin_base_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_bin_base_t {
+ unsigned int bin_base_addr : VGT_BIN_BASE_BIN_BASE_ADDR_SIZE;
+ } vgt_bin_base_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_bin_base_t f;
+} vgt_bin_base_u;
+
+
+/*
+ * VGT_BIN_SIZE struct
+ */
+
+#define VGT_BIN_SIZE_NUM_WORDS_SIZE 24
+#define VGT_BIN_SIZE_FACENESS_FETCH_SIZE 1
+#define VGT_BIN_SIZE_FACENESS_RESET_SIZE 1
+
+#define VGT_BIN_SIZE_NUM_WORDS_SHIFT 0
+#define VGT_BIN_SIZE_FACENESS_FETCH_SHIFT 30
+#define VGT_BIN_SIZE_FACENESS_RESET_SHIFT 31
+
+#define VGT_BIN_SIZE_NUM_WORDS_MASK 0x00ffffff
+#define VGT_BIN_SIZE_FACENESS_FETCH_MASK 0x40000000
+#define VGT_BIN_SIZE_FACENESS_RESET_MASK 0x80000000
+
+#define VGT_BIN_SIZE_MASK \
+ (VGT_BIN_SIZE_NUM_WORDS_MASK | \
+ VGT_BIN_SIZE_FACENESS_FETCH_MASK | \
+ VGT_BIN_SIZE_FACENESS_RESET_MASK)
+
+#define VGT_BIN_SIZE(num_words, faceness_fetch, faceness_reset) \
+ ((num_words << VGT_BIN_SIZE_NUM_WORDS_SHIFT) | \
+ (faceness_fetch << VGT_BIN_SIZE_FACENESS_FETCH_SHIFT) | \
+ (faceness_reset << VGT_BIN_SIZE_FACENESS_RESET_SHIFT))
+
+#define VGT_BIN_SIZE_GET_NUM_WORDS(vgt_bin_size) \
+ ((vgt_bin_size & VGT_BIN_SIZE_NUM_WORDS_MASK) >> VGT_BIN_SIZE_NUM_WORDS_SHIFT)
+#define VGT_BIN_SIZE_GET_FACENESS_FETCH(vgt_bin_size) \
+ ((vgt_bin_size & VGT_BIN_SIZE_FACENESS_FETCH_MASK) >> VGT_BIN_SIZE_FACENESS_FETCH_SHIFT)
+#define VGT_BIN_SIZE_GET_FACENESS_RESET(vgt_bin_size) \
+ ((vgt_bin_size & VGT_BIN_SIZE_FACENESS_RESET_MASK) >> VGT_BIN_SIZE_FACENESS_RESET_SHIFT)
+
+#define VGT_BIN_SIZE_SET_NUM_WORDS(vgt_bin_size_reg, num_words) \
+ vgt_bin_size_reg = (vgt_bin_size_reg & ~VGT_BIN_SIZE_NUM_WORDS_MASK) | (num_words << VGT_BIN_SIZE_NUM_WORDS_SHIFT)
+#define VGT_BIN_SIZE_SET_FACENESS_FETCH(vgt_bin_size_reg, faceness_fetch) \
+ vgt_bin_size_reg = (vgt_bin_size_reg & ~VGT_BIN_SIZE_FACENESS_FETCH_MASK) | (faceness_fetch << VGT_BIN_SIZE_FACENESS_FETCH_SHIFT)
+#define VGT_BIN_SIZE_SET_FACENESS_RESET(vgt_bin_size_reg, faceness_reset) \
+ vgt_bin_size_reg = (vgt_bin_size_reg & ~VGT_BIN_SIZE_FACENESS_RESET_MASK) | (faceness_reset << VGT_BIN_SIZE_FACENESS_RESET_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_bin_size_t {
+ unsigned int num_words : VGT_BIN_SIZE_NUM_WORDS_SIZE;
+ unsigned int : 6;
+ unsigned int faceness_fetch : VGT_BIN_SIZE_FACENESS_FETCH_SIZE;
+ unsigned int faceness_reset : VGT_BIN_SIZE_FACENESS_RESET_SIZE;
+ } vgt_bin_size_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_bin_size_t {
+ unsigned int faceness_reset : VGT_BIN_SIZE_FACENESS_RESET_SIZE;
+ unsigned int faceness_fetch : VGT_BIN_SIZE_FACENESS_FETCH_SIZE;
+ unsigned int : 6;
+ unsigned int num_words : VGT_BIN_SIZE_NUM_WORDS_SIZE;
+ } vgt_bin_size_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_bin_size_t f;
+} vgt_bin_size_u;
+
+
+/*
+ * VGT_CURRENT_BIN_ID_MIN struct
+ */
+
+#define VGT_CURRENT_BIN_ID_MIN_COLUMN_SIZE 3
+#define VGT_CURRENT_BIN_ID_MIN_ROW_SIZE 3
+#define VGT_CURRENT_BIN_ID_MIN_GUARD_BAND_SIZE 3
+
+#define VGT_CURRENT_BIN_ID_MIN_COLUMN_SHIFT 0
+#define VGT_CURRENT_BIN_ID_MIN_ROW_SHIFT 3
+#define VGT_CURRENT_BIN_ID_MIN_GUARD_BAND_SHIFT 6
+
+#define VGT_CURRENT_BIN_ID_MIN_COLUMN_MASK 0x00000007
+#define VGT_CURRENT_BIN_ID_MIN_ROW_MASK 0x00000038
+#define VGT_CURRENT_BIN_ID_MIN_GUARD_BAND_MASK 0x000001c0
+
+#define VGT_CURRENT_BIN_ID_MIN_MASK \
+ (VGT_CURRENT_BIN_ID_MIN_COLUMN_MASK | \
+ VGT_CURRENT_BIN_ID_MIN_ROW_MASK | \
+ VGT_CURRENT_BIN_ID_MIN_GUARD_BAND_MASK)
+
+#define VGT_CURRENT_BIN_ID_MIN(column, row, guard_band) \
+ ((column << VGT_CURRENT_BIN_ID_MIN_COLUMN_SHIFT) | \
+ (row << VGT_CURRENT_BIN_ID_MIN_ROW_SHIFT) | \
+ (guard_band << VGT_CURRENT_BIN_ID_MIN_GUARD_BAND_SHIFT))
+
+#define VGT_CURRENT_BIN_ID_MIN_GET_COLUMN(vgt_current_bin_id_min) \
+ ((vgt_current_bin_id_min & VGT_CURRENT_BIN_ID_MIN_COLUMN_MASK) >> VGT_CURRENT_BIN_ID_MIN_COLUMN_SHIFT)
+#define VGT_CURRENT_BIN_ID_MIN_GET_ROW(vgt_current_bin_id_min) \
+ ((vgt_current_bin_id_min & VGT_CURRENT_BIN_ID_MIN_ROW_MASK) >> VGT_CURRENT_BIN_ID_MIN_ROW_SHIFT)
+#define VGT_CURRENT_BIN_ID_MIN_GET_GUARD_BAND(vgt_current_bin_id_min) \
+ ((vgt_current_bin_id_min & VGT_CURRENT_BIN_ID_MIN_GUARD_BAND_MASK) >> VGT_CURRENT_BIN_ID_MIN_GUARD_BAND_SHIFT)
+
+#define VGT_CURRENT_BIN_ID_MIN_SET_COLUMN(vgt_current_bin_id_min_reg, column) \
+ vgt_current_bin_id_min_reg = (vgt_current_bin_id_min_reg & ~VGT_CURRENT_BIN_ID_MIN_COLUMN_MASK) | (column << VGT_CURRENT_BIN_ID_MIN_COLUMN_SHIFT)
+#define VGT_CURRENT_BIN_ID_MIN_SET_ROW(vgt_current_bin_id_min_reg, row) \
+ vgt_current_bin_id_min_reg = (vgt_current_bin_id_min_reg & ~VGT_CURRENT_BIN_ID_MIN_ROW_MASK) | (row << VGT_CURRENT_BIN_ID_MIN_ROW_SHIFT)
+#define VGT_CURRENT_BIN_ID_MIN_SET_GUARD_BAND(vgt_current_bin_id_min_reg, guard_band) \
+ vgt_current_bin_id_min_reg = (vgt_current_bin_id_min_reg & ~VGT_CURRENT_BIN_ID_MIN_GUARD_BAND_MASK) | (guard_band << VGT_CURRENT_BIN_ID_MIN_GUARD_BAND_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_current_bin_id_min_t {
+ unsigned int column : VGT_CURRENT_BIN_ID_MIN_COLUMN_SIZE;
+ unsigned int row : VGT_CURRENT_BIN_ID_MIN_ROW_SIZE;
+ unsigned int guard_band : VGT_CURRENT_BIN_ID_MIN_GUARD_BAND_SIZE;
+ unsigned int : 23;
+ } vgt_current_bin_id_min_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_current_bin_id_min_t {
+ unsigned int : 23;
+ unsigned int guard_band : VGT_CURRENT_BIN_ID_MIN_GUARD_BAND_SIZE;
+ unsigned int row : VGT_CURRENT_BIN_ID_MIN_ROW_SIZE;
+ unsigned int column : VGT_CURRENT_BIN_ID_MIN_COLUMN_SIZE;
+ } vgt_current_bin_id_min_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_current_bin_id_min_t f;
+} vgt_current_bin_id_min_u;
+
+
+/*
+ * VGT_CURRENT_BIN_ID_MAX struct
+ */
+
+#define VGT_CURRENT_BIN_ID_MAX_COLUMN_SIZE 3
+#define VGT_CURRENT_BIN_ID_MAX_ROW_SIZE 3
+#define VGT_CURRENT_BIN_ID_MAX_GUARD_BAND_SIZE 3
+
+#define VGT_CURRENT_BIN_ID_MAX_COLUMN_SHIFT 0
+#define VGT_CURRENT_BIN_ID_MAX_ROW_SHIFT 3
+#define VGT_CURRENT_BIN_ID_MAX_GUARD_BAND_SHIFT 6
+
+#define VGT_CURRENT_BIN_ID_MAX_COLUMN_MASK 0x00000007
+#define VGT_CURRENT_BIN_ID_MAX_ROW_MASK 0x00000038
+#define VGT_CURRENT_BIN_ID_MAX_GUARD_BAND_MASK 0x000001c0
+
+#define VGT_CURRENT_BIN_ID_MAX_MASK \
+ (VGT_CURRENT_BIN_ID_MAX_COLUMN_MASK | \
+ VGT_CURRENT_BIN_ID_MAX_ROW_MASK | \
+ VGT_CURRENT_BIN_ID_MAX_GUARD_BAND_MASK)
+
+#define VGT_CURRENT_BIN_ID_MAX(column, row, guard_band) \
+ ((column << VGT_CURRENT_BIN_ID_MAX_COLUMN_SHIFT) | \
+ (row << VGT_CURRENT_BIN_ID_MAX_ROW_SHIFT) | \
+ (guard_band << VGT_CURRENT_BIN_ID_MAX_GUARD_BAND_SHIFT))
+
+#define VGT_CURRENT_BIN_ID_MAX_GET_COLUMN(vgt_current_bin_id_max) \
+ ((vgt_current_bin_id_max & VGT_CURRENT_BIN_ID_MAX_COLUMN_MASK) >> VGT_CURRENT_BIN_ID_MAX_COLUMN_SHIFT)
+#define VGT_CURRENT_BIN_ID_MAX_GET_ROW(vgt_current_bin_id_max) \
+ ((vgt_current_bin_id_max & VGT_CURRENT_BIN_ID_MAX_ROW_MASK) >> VGT_CURRENT_BIN_ID_MAX_ROW_SHIFT)
+#define VGT_CURRENT_BIN_ID_MAX_GET_GUARD_BAND(vgt_current_bin_id_max) \
+ ((vgt_current_bin_id_max & VGT_CURRENT_BIN_ID_MAX_GUARD_BAND_MASK) >> VGT_CURRENT_BIN_ID_MAX_GUARD_BAND_SHIFT)
+
+#define VGT_CURRENT_BIN_ID_MAX_SET_COLUMN(vgt_current_bin_id_max_reg, column) \
+ vgt_current_bin_id_max_reg = (vgt_current_bin_id_max_reg & ~VGT_CURRENT_BIN_ID_MAX_COLUMN_MASK) | (column << VGT_CURRENT_BIN_ID_MAX_COLUMN_SHIFT)
+#define VGT_CURRENT_BIN_ID_MAX_SET_ROW(vgt_current_bin_id_max_reg, row) \
+ vgt_current_bin_id_max_reg = (vgt_current_bin_id_max_reg & ~VGT_CURRENT_BIN_ID_MAX_ROW_MASK) | (row << VGT_CURRENT_BIN_ID_MAX_ROW_SHIFT)
+#define VGT_CURRENT_BIN_ID_MAX_SET_GUARD_BAND(vgt_current_bin_id_max_reg, guard_band) \
+ vgt_current_bin_id_max_reg = (vgt_current_bin_id_max_reg & ~VGT_CURRENT_BIN_ID_MAX_GUARD_BAND_MASK) | (guard_band << VGT_CURRENT_BIN_ID_MAX_GUARD_BAND_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_current_bin_id_max_t {
+ unsigned int column : VGT_CURRENT_BIN_ID_MAX_COLUMN_SIZE;
+ unsigned int row : VGT_CURRENT_BIN_ID_MAX_ROW_SIZE;
+ unsigned int guard_band : VGT_CURRENT_BIN_ID_MAX_GUARD_BAND_SIZE;
+ unsigned int : 23;
+ } vgt_current_bin_id_max_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_current_bin_id_max_t {
+ unsigned int : 23;
+ unsigned int guard_band : VGT_CURRENT_BIN_ID_MAX_GUARD_BAND_SIZE;
+ unsigned int row : VGT_CURRENT_BIN_ID_MAX_ROW_SIZE;
+ unsigned int column : VGT_CURRENT_BIN_ID_MAX_COLUMN_SIZE;
+ } vgt_current_bin_id_max_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_current_bin_id_max_t f;
+} vgt_current_bin_id_max_u;
+
+
+/*
+ * VGT_IMMED_DATA struct
+ */
+
+#define VGT_IMMED_DATA_DATA_SIZE 32
+
+#define VGT_IMMED_DATA_DATA_SHIFT 0
+
+#define VGT_IMMED_DATA_DATA_MASK 0xffffffff
+
+#define VGT_IMMED_DATA_MASK \
+ (VGT_IMMED_DATA_DATA_MASK)
+
+#define VGT_IMMED_DATA(data) \
+ ((data << VGT_IMMED_DATA_DATA_SHIFT))
+
+#define VGT_IMMED_DATA_GET_DATA(vgt_immed_data) \
+ ((vgt_immed_data & VGT_IMMED_DATA_DATA_MASK) >> VGT_IMMED_DATA_DATA_SHIFT)
+
+#define VGT_IMMED_DATA_SET_DATA(vgt_immed_data_reg, data) \
+ vgt_immed_data_reg = (vgt_immed_data_reg & ~VGT_IMMED_DATA_DATA_MASK) | (data << VGT_IMMED_DATA_DATA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_immed_data_t {
+ unsigned int data : VGT_IMMED_DATA_DATA_SIZE;
+ } vgt_immed_data_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_immed_data_t {
+ unsigned int data : VGT_IMMED_DATA_DATA_SIZE;
+ } vgt_immed_data_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_immed_data_t f;
+} vgt_immed_data_u;
+
+
+/*
+ * VGT_MAX_VTX_INDX struct
+ */
+
+#define VGT_MAX_VTX_INDX_MAX_INDX_SIZE 24
+
+#define VGT_MAX_VTX_INDX_MAX_INDX_SHIFT 0
+
+#define VGT_MAX_VTX_INDX_MAX_INDX_MASK 0x00ffffff
+
+#define VGT_MAX_VTX_INDX_MASK \
+ (VGT_MAX_VTX_INDX_MAX_INDX_MASK)
+
+#define VGT_MAX_VTX_INDX(max_indx) \
+ ((max_indx << VGT_MAX_VTX_INDX_MAX_INDX_SHIFT))
+
+#define VGT_MAX_VTX_INDX_GET_MAX_INDX(vgt_max_vtx_indx) \
+ ((vgt_max_vtx_indx & VGT_MAX_VTX_INDX_MAX_INDX_MASK) >> VGT_MAX_VTX_INDX_MAX_INDX_SHIFT)
+
+#define VGT_MAX_VTX_INDX_SET_MAX_INDX(vgt_max_vtx_indx_reg, max_indx) \
+ vgt_max_vtx_indx_reg = (vgt_max_vtx_indx_reg & ~VGT_MAX_VTX_INDX_MAX_INDX_MASK) | (max_indx << VGT_MAX_VTX_INDX_MAX_INDX_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_max_vtx_indx_t {
+ unsigned int max_indx : VGT_MAX_VTX_INDX_MAX_INDX_SIZE;
+ unsigned int : 8;
+ } vgt_max_vtx_indx_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_max_vtx_indx_t {
+ unsigned int : 8;
+ unsigned int max_indx : VGT_MAX_VTX_INDX_MAX_INDX_SIZE;
+ } vgt_max_vtx_indx_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_max_vtx_indx_t f;
+} vgt_max_vtx_indx_u;
+
+
+/*
+ * VGT_MIN_VTX_INDX struct
+ */
+
+#define VGT_MIN_VTX_INDX_MIN_INDX_SIZE 24
+
+#define VGT_MIN_VTX_INDX_MIN_INDX_SHIFT 0
+
+#define VGT_MIN_VTX_INDX_MIN_INDX_MASK 0x00ffffff
+
+#define VGT_MIN_VTX_INDX_MASK \
+ (VGT_MIN_VTX_INDX_MIN_INDX_MASK)
+
+#define VGT_MIN_VTX_INDX(min_indx) \
+ ((min_indx << VGT_MIN_VTX_INDX_MIN_INDX_SHIFT))
+
+#define VGT_MIN_VTX_INDX_GET_MIN_INDX(vgt_min_vtx_indx) \
+ ((vgt_min_vtx_indx & VGT_MIN_VTX_INDX_MIN_INDX_MASK) >> VGT_MIN_VTX_INDX_MIN_INDX_SHIFT)
+
+#define VGT_MIN_VTX_INDX_SET_MIN_INDX(vgt_min_vtx_indx_reg, min_indx) \
+ vgt_min_vtx_indx_reg = (vgt_min_vtx_indx_reg & ~VGT_MIN_VTX_INDX_MIN_INDX_MASK) | (min_indx << VGT_MIN_VTX_INDX_MIN_INDX_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_min_vtx_indx_t {
+ unsigned int min_indx : VGT_MIN_VTX_INDX_MIN_INDX_SIZE;
+ unsigned int : 8;
+ } vgt_min_vtx_indx_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_min_vtx_indx_t {
+ unsigned int : 8;
+ unsigned int min_indx : VGT_MIN_VTX_INDX_MIN_INDX_SIZE;
+ } vgt_min_vtx_indx_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_min_vtx_indx_t f;
+} vgt_min_vtx_indx_u;
+
+
+/*
+ * VGT_INDX_OFFSET struct
+ */
+
+#define VGT_INDX_OFFSET_INDX_OFFSET_SIZE 24
+
+#define VGT_INDX_OFFSET_INDX_OFFSET_SHIFT 0
+
+#define VGT_INDX_OFFSET_INDX_OFFSET_MASK 0x00ffffff
+
+#define VGT_INDX_OFFSET_MASK \
+ (VGT_INDX_OFFSET_INDX_OFFSET_MASK)
+
+#define VGT_INDX_OFFSET(indx_offset) \
+ ((indx_offset << VGT_INDX_OFFSET_INDX_OFFSET_SHIFT))
+
+#define VGT_INDX_OFFSET_GET_INDX_OFFSET(vgt_indx_offset) \
+ ((vgt_indx_offset & VGT_INDX_OFFSET_INDX_OFFSET_MASK) >> VGT_INDX_OFFSET_INDX_OFFSET_SHIFT)
+
+#define VGT_INDX_OFFSET_SET_INDX_OFFSET(vgt_indx_offset_reg, indx_offset) \
+ vgt_indx_offset_reg = (vgt_indx_offset_reg & ~VGT_INDX_OFFSET_INDX_OFFSET_MASK) | (indx_offset << VGT_INDX_OFFSET_INDX_OFFSET_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_indx_offset_t {
+ unsigned int indx_offset : VGT_INDX_OFFSET_INDX_OFFSET_SIZE;
+ unsigned int : 8;
+ } vgt_indx_offset_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_indx_offset_t {
+ unsigned int : 8;
+ unsigned int indx_offset : VGT_INDX_OFFSET_INDX_OFFSET_SIZE;
+ } vgt_indx_offset_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_indx_offset_t f;
+} vgt_indx_offset_u;
+
+
+/*
+ * VGT_VERTEX_REUSE_BLOCK_CNTL struct
+ */
+
+#define VGT_VERTEX_REUSE_BLOCK_CNTL_VTX_REUSE_DEPTH_SIZE 3
+
+#define VGT_VERTEX_REUSE_BLOCK_CNTL_VTX_REUSE_DEPTH_SHIFT 0
+
+#define VGT_VERTEX_REUSE_BLOCK_CNTL_VTX_REUSE_DEPTH_MASK 0x00000007
+
+#define VGT_VERTEX_REUSE_BLOCK_CNTL_MASK \
+ (VGT_VERTEX_REUSE_BLOCK_CNTL_VTX_REUSE_DEPTH_MASK)
+
+#define VGT_VERTEX_REUSE_BLOCK_CNTL(vtx_reuse_depth) \
+ ((vtx_reuse_depth << VGT_VERTEX_REUSE_BLOCK_CNTL_VTX_REUSE_DEPTH_SHIFT))
+
+#define VGT_VERTEX_REUSE_BLOCK_CNTL_GET_VTX_REUSE_DEPTH(vgt_vertex_reuse_block_cntl) \
+ ((vgt_vertex_reuse_block_cntl & VGT_VERTEX_REUSE_BLOCK_CNTL_VTX_REUSE_DEPTH_MASK) >> VGT_VERTEX_REUSE_BLOCK_CNTL_VTX_REUSE_DEPTH_SHIFT)
+
+#define VGT_VERTEX_REUSE_BLOCK_CNTL_SET_VTX_REUSE_DEPTH(vgt_vertex_reuse_block_cntl_reg, vtx_reuse_depth) \
+ vgt_vertex_reuse_block_cntl_reg = (vgt_vertex_reuse_block_cntl_reg & ~VGT_VERTEX_REUSE_BLOCK_CNTL_VTX_REUSE_DEPTH_MASK) | (vtx_reuse_depth << VGT_VERTEX_REUSE_BLOCK_CNTL_VTX_REUSE_DEPTH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_vertex_reuse_block_cntl_t {
+ unsigned int vtx_reuse_depth : VGT_VERTEX_REUSE_BLOCK_CNTL_VTX_REUSE_DEPTH_SIZE;
+ unsigned int : 29;
+ } vgt_vertex_reuse_block_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_vertex_reuse_block_cntl_t {
+ unsigned int : 29;
+ unsigned int vtx_reuse_depth : VGT_VERTEX_REUSE_BLOCK_CNTL_VTX_REUSE_DEPTH_SIZE;
+ } vgt_vertex_reuse_block_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_vertex_reuse_block_cntl_t f;
+} vgt_vertex_reuse_block_cntl_u;
+
+
+/*
+ * VGT_OUT_DEALLOC_CNTL struct
+ */
+
+#define VGT_OUT_DEALLOC_CNTL_DEALLOC_DIST_SIZE 2
+
+#define VGT_OUT_DEALLOC_CNTL_DEALLOC_DIST_SHIFT 0
+
+#define VGT_OUT_DEALLOC_CNTL_DEALLOC_DIST_MASK 0x00000003
+
+#define VGT_OUT_DEALLOC_CNTL_MASK \
+ (VGT_OUT_DEALLOC_CNTL_DEALLOC_DIST_MASK)
+
+#define VGT_OUT_DEALLOC_CNTL(dealloc_dist) \
+ ((dealloc_dist << VGT_OUT_DEALLOC_CNTL_DEALLOC_DIST_SHIFT))
+
+#define VGT_OUT_DEALLOC_CNTL_GET_DEALLOC_DIST(vgt_out_dealloc_cntl) \
+ ((vgt_out_dealloc_cntl & VGT_OUT_DEALLOC_CNTL_DEALLOC_DIST_MASK) >> VGT_OUT_DEALLOC_CNTL_DEALLOC_DIST_SHIFT)
+
+#define VGT_OUT_DEALLOC_CNTL_SET_DEALLOC_DIST(vgt_out_dealloc_cntl_reg, dealloc_dist) \
+ vgt_out_dealloc_cntl_reg = (vgt_out_dealloc_cntl_reg & ~VGT_OUT_DEALLOC_CNTL_DEALLOC_DIST_MASK) | (dealloc_dist << VGT_OUT_DEALLOC_CNTL_DEALLOC_DIST_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_out_dealloc_cntl_t {
+ unsigned int dealloc_dist : VGT_OUT_DEALLOC_CNTL_DEALLOC_DIST_SIZE;
+ unsigned int : 30;
+ } vgt_out_dealloc_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_out_dealloc_cntl_t {
+ unsigned int : 30;
+ unsigned int dealloc_dist : VGT_OUT_DEALLOC_CNTL_DEALLOC_DIST_SIZE;
+ } vgt_out_dealloc_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_out_dealloc_cntl_t f;
+} vgt_out_dealloc_cntl_u;
+
+
+/*
+ * VGT_MULTI_PRIM_IB_RESET_INDX struct
+ */
+
+#define VGT_MULTI_PRIM_IB_RESET_INDX_RESET_INDX_SIZE 24
+
+#define VGT_MULTI_PRIM_IB_RESET_INDX_RESET_INDX_SHIFT 0
+
+#define VGT_MULTI_PRIM_IB_RESET_INDX_RESET_INDX_MASK 0x00ffffff
+
+#define VGT_MULTI_PRIM_IB_RESET_INDX_MASK \
+ (VGT_MULTI_PRIM_IB_RESET_INDX_RESET_INDX_MASK)
+
+#define VGT_MULTI_PRIM_IB_RESET_INDX(reset_indx) \
+ ((reset_indx << VGT_MULTI_PRIM_IB_RESET_INDX_RESET_INDX_SHIFT))
+
+#define VGT_MULTI_PRIM_IB_RESET_INDX_GET_RESET_INDX(vgt_multi_prim_ib_reset_indx) \
+ ((vgt_multi_prim_ib_reset_indx & VGT_MULTI_PRIM_IB_RESET_INDX_RESET_INDX_MASK) >> VGT_MULTI_PRIM_IB_RESET_INDX_RESET_INDX_SHIFT)
+
+#define VGT_MULTI_PRIM_IB_RESET_INDX_SET_RESET_INDX(vgt_multi_prim_ib_reset_indx_reg, reset_indx) \
+ vgt_multi_prim_ib_reset_indx_reg = (vgt_multi_prim_ib_reset_indx_reg & ~VGT_MULTI_PRIM_IB_RESET_INDX_RESET_INDX_MASK) | (reset_indx << VGT_MULTI_PRIM_IB_RESET_INDX_RESET_INDX_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_multi_prim_ib_reset_indx_t {
+ unsigned int reset_indx : VGT_MULTI_PRIM_IB_RESET_INDX_RESET_INDX_SIZE;
+ unsigned int : 8;
+ } vgt_multi_prim_ib_reset_indx_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_multi_prim_ib_reset_indx_t {
+ unsigned int : 8;
+ unsigned int reset_indx : VGT_MULTI_PRIM_IB_RESET_INDX_RESET_INDX_SIZE;
+ } vgt_multi_prim_ib_reset_indx_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_multi_prim_ib_reset_indx_t f;
+} vgt_multi_prim_ib_reset_indx_u;
+
+
+/*
+ * VGT_ENHANCE struct
+ */
+
+#define VGT_ENHANCE_MISC_SIZE 16
+
+#define VGT_ENHANCE_MISC_SHIFT 0
+
+#define VGT_ENHANCE_MISC_MASK 0x0000ffff
+
+#define VGT_ENHANCE_MASK \
+ (VGT_ENHANCE_MISC_MASK)
+
+#define VGT_ENHANCE(misc) \
+ ((misc << VGT_ENHANCE_MISC_SHIFT))
+
+#define VGT_ENHANCE_GET_MISC(vgt_enhance) \
+ ((vgt_enhance & VGT_ENHANCE_MISC_MASK) >> VGT_ENHANCE_MISC_SHIFT)
+
+#define VGT_ENHANCE_SET_MISC(vgt_enhance_reg, misc) \
+ vgt_enhance_reg = (vgt_enhance_reg & ~VGT_ENHANCE_MISC_MASK) | (misc << VGT_ENHANCE_MISC_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_enhance_t {
+ unsigned int misc : VGT_ENHANCE_MISC_SIZE;
+ unsigned int : 16;
+ } vgt_enhance_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_enhance_t {
+ unsigned int : 16;
+ unsigned int misc : VGT_ENHANCE_MISC_SIZE;
+ } vgt_enhance_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_enhance_t f;
+} vgt_enhance_u;
+
+
+/*
+ * VGT_VTX_VECT_EJECT_REG struct
+ */
+
+#define VGT_VTX_VECT_EJECT_REG_PRIM_COUNT_SIZE 5
+
+#define VGT_VTX_VECT_EJECT_REG_PRIM_COUNT_SHIFT 0
+
+#define VGT_VTX_VECT_EJECT_REG_PRIM_COUNT_MASK 0x0000001f
+
+#define VGT_VTX_VECT_EJECT_REG_MASK \
+ (VGT_VTX_VECT_EJECT_REG_PRIM_COUNT_MASK)
+
+#define VGT_VTX_VECT_EJECT_REG(prim_count) \
+ ((prim_count << VGT_VTX_VECT_EJECT_REG_PRIM_COUNT_SHIFT))
+
+#define VGT_VTX_VECT_EJECT_REG_GET_PRIM_COUNT(vgt_vtx_vect_eject_reg) \
+ ((vgt_vtx_vect_eject_reg & VGT_VTX_VECT_EJECT_REG_PRIM_COUNT_MASK) >> VGT_VTX_VECT_EJECT_REG_PRIM_COUNT_SHIFT)
+
+#define VGT_VTX_VECT_EJECT_REG_SET_PRIM_COUNT(vgt_vtx_vect_eject_reg_reg, prim_count) \
+ vgt_vtx_vect_eject_reg_reg = (vgt_vtx_vect_eject_reg_reg & ~VGT_VTX_VECT_EJECT_REG_PRIM_COUNT_MASK) | (prim_count << VGT_VTX_VECT_EJECT_REG_PRIM_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_vtx_vect_eject_reg_t {
+ unsigned int prim_count : VGT_VTX_VECT_EJECT_REG_PRIM_COUNT_SIZE;
+ unsigned int : 27;
+ } vgt_vtx_vect_eject_reg_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_vtx_vect_eject_reg_t {
+ unsigned int : 27;
+ unsigned int prim_count : VGT_VTX_VECT_EJECT_REG_PRIM_COUNT_SIZE;
+ } vgt_vtx_vect_eject_reg_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_vtx_vect_eject_reg_t f;
+} vgt_vtx_vect_eject_reg_u;
+
+
+/*
+ * VGT_LAST_COPY_STATE struct
+ */
+
+#define VGT_LAST_COPY_STATE_SRC_STATE_ID_SIZE 1
+#define VGT_LAST_COPY_STATE_DST_STATE_ID_SIZE 1
+
+#define VGT_LAST_COPY_STATE_SRC_STATE_ID_SHIFT 0
+#define VGT_LAST_COPY_STATE_DST_STATE_ID_SHIFT 16
+
+#define VGT_LAST_COPY_STATE_SRC_STATE_ID_MASK 0x00000001
+#define VGT_LAST_COPY_STATE_DST_STATE_ID_MASK 0x00010000
+
+#define VGT_LAST_COPY_STATE_MASK \
+ (VGT_LAST_COPY_STATE_SRC_STATE_ID_MASK | \
+ VGT_LAST_COPY_STATE_DST_STATE_ID_MASK)
+
+#define VGT_LAST_COPY_STATE(src_state_id, dst_state_id) \
+ ((src_state_id << VGT_LAST_COPY_STATE_SRC_STATE_ID_SHIFT) | \
+ (dst_state_id << VGT_LAST_COPY_STATE_DST_STATE_ID_SHIFT))
+
+#define VGT_LAST_COPY_STATE_GET_SRC_STATE_ID(vgt_last_copy_state) \
+ ((vgt_last_copy_state & VGT_LAST_COPY_STATE_SRC_STATE_ID_MASK) >> VGT_LAST_COPY_STATE_SRC_STATE_ID_SHIFT)
+#define VGT_LAST_COPY_STATE_GET_DST_STATE_ID(vgt_last_copy_state) \
+ ((vgt_last_copy_state & VGT_LAST_COPY_STATE_DST_STATE_ID_MASK) >> VGT_LAST_COPY_STATE_DST_STATE_ID_SHIFT)
+
+#define VGT_LAST_COPY_STATE_SET_SRC_STATE_ID(vgt_last_copy_state_reg, src_state_id) \
+ vgt_last_copy_state_reg = (vgt_last_copy_state_reg & ~VGT_LAST_COPY_STATE_SRC_STATE_ID_MASK) | (src_state_id << VGT_LAST_COPY_STATE_SRC_STATE_ID_SHIFT)
+#define VGT_LAST_COPY_STATE_SET_DST_STATE_ID(vgt_last_copy_state_reg, dst_state_id) \
+ vgt_last_copy_state_reg = (vgt_last_copy_state_reg & ~VGT_LAST_COPY_STATE_DST_STATE_ID_MASK) | (dst_state_id << VGT_LAST_COPY_STATE_DST_STATE_ID_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_last_copy_state_t {
+ unsigned int src_state_id : VGT_LAST_COPY_STATE_SRC_STATE_ID_SIZE;
+ unsigned int : 15;
+ unsigned int dst_state_id : VGT_LAST_COPY_STATE_DST_STATE_ID_SIZE;
+ unsigned int : 15;
+ } vgt_last_copy_state_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_last_copy_state_t {
+ unsigned int : 15;
+ unsigned int dst_state_id : VGT_LAST_COPY_STATE_DST_STATE_ID_SIZE;
+ unsigned int : 15;
+ unsigned int src_state_id : VGT_LAST_COPY_STATE_SRC_STATE_ID_SIZE;
+ } vgt_last_copy_state_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_last_copy_state_t f;
+} vgt_last_copy_state_u;
+
+
+/*
+ * VGT_DEBUG_CNTL struct
+ */
+
+#define VGT_DEBUG_CNTL_VGT_DEBUG_INDX_SIZE 5
+
+#define VGT_DEBUG_CNTL_VGT_DEBUG_INDX_SHIFT 0
+
+#define VGT_DEBUG_CNTL_VGT_DEBUG_INDX_MASK 0x0000001f
+
+#define VGT_DEBUG_CNTL_MASK \
+ (VGT_DEBUG_CNTL_VGT_DEBUG_INDX_MASK)
+
+#define VGT_DEBUG_CNTL(vgt_debug_indx) \
+ ((vgt_debug_indx << VGT_DEBUG_CNTL_VGT_DEBUG_INDX_SHIFT))
+
+#define VGT_DEBUG_CNTL_GET_VGT_DEBUG_INDX(vgt_debug_cntl) \
+ ((vgt_debug_cntl & VGT_DEBUG_CNTL_VGT_DEBUG_INDX_MASK) >> VGT_DEBUG_CNTL_VGT_DEBUG_INDX_SHIFT)
+
+#define VGT_DEBUG_CNTL_SET_VGT_DEBUG_INDX(vgt_debug_cntl_reg, vgt_debug_indx) \
+ vgt_debug_cntl_reg = (vgt_debug_cntl_reg & ~VGT_DEBUG_CNTL_VGT_DEBUG_INDX_MASK) | (vgt_debug_indx << VGT_DEBUG_CNTL_VGT_DEBUG_INDX_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_cntl_t {
+ unsigned int vgt_debug_indx : VGT_DEBUG_CNTL_VGT_DEBUG_INDX_SIZE;
+ unsigned int : 27;
+ } vgt_debug_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_cntl_t {
+ unsigned int : 27;
+ unsigned int vgt_debug_indx : VGT_DEBUG_CNTL_VGT_DEBUG_INDX_SIZE;
+ } vgt_debug_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_cntl_t f;
+} vgt_debug_cntl_u;
+
+
+/*
+ * VGT_DEBUG_DATA struct
+ */
+
+#define VGT_DEBUG_DATA_DATA_SIZE 32
+
+#define VGT_DEBUG_DATA_DATA_SHIFT 0
+
+#define VGT_DEBUG_DATA_DATA_MASK 0xffffffff
+
+#define VGT_DEBUG_DATA_MASK \
+ (VGT_DEBUG_DATA_DATA_MASK)
+
+#define VGT_DEBUG_DATA(data) \
+ ((data << VGT_DEBUG_DATA_DATA_SHIFT))
+
+#define VGT_DEBUG_DATA_GET_DATA(vgt_debug_data) \
+ ((vgt_debug_data & VGT_DEBUG_DATA_DATA_MASK) >> VGT_DEBUG_DATA_DATA_SHIFT)
+
+#define VGT_DEBUG_DATA_SET_DATA(vgt_debug_data_reg, data) \
+ vgt_debug_data_reg = (vgt_debug_data_reg & ~VGT_DEBUG_DATA_DATA_MASK) | (data << VGT_DEBUG_DATA_DATA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_data_t {
+ unsigned int data : VGT_DEBUG_DATA_DATA_SIZE;
+ } vgt_debug_data_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_data_t {
+ unsigned int data : VGT_DEBUG_DATA_DATA_SIZE;
+ } vgt_debug_data_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_data_t f;
+} vgt_debug_data_u;
+
+
+/*
+ * VGT_CNTL_STATUS struct
+ */
+
+#define VGT_CNTL_STATUS_VGT_BUSY_SIZE 1
+#define VGT_CNTL_STATUS_VGT_DMA_BUSY_SIZE 1
+#define VGT_CNTL_STATUS_VGT_DMA_REQ_BUSY_SIZE 1
+#define VGT_CNTL_STATUS_VGT_GRP_BUSY_SIZE 1
+#define VGT_CNTL_STATUS_VGT_VR_BUSY_SIZE 1
+#define VGT_CNTL_STATUS_VGT_BIN_BUSY_SIZE 1
+#define VGT_CNTL_STATUS_VGT_PT_BUSY_SIZE 1
+#define VGT_CNTL_STATUS_VGT_OUT_BUSY_SIZE 1
+#define VGT_CNTL_STATUS_VGT_OUT_INDX_BUSY_SIZE 1
+
+#define VGT_CNTL_STATUS_VGT_BUSY_SHIFT 0
+#define VGT_CNTL_STATUS_VGT_DMA_BUSY_SHIFT 1
+#define VGT_CNTL_STATUS_VGT_DMA_REQ_BUSY_SHIFT 2
+#define VGT_CNTL_STATUS_VGT_GRP_BUSY_SHIFT 3
+#define VGT_CNTL_STATUS_VGT_VR_BUSY_SHIFT 4
+#define VGT_CNTL_STATUS_VGT_BIN_BUSY_SHIFT 5
+#define VGT_CNTL_STATUS_VGT_PT_BUSY_SHIFT 6
+#define VGT_CNTL_STATUS_VGT_OUT_BUSY_SHIFT 7
+#define VGT_CNTL_STATUS_VGT_OUT_INDX_BUSY_SHIFT 8
+
+#define VGT_CNTL_STATUS_VGT_BUSY_MASK 0x00000001
+#define VGT_CNTL_STATUS_VGT_DMA_BUSY_MASK 0x00000002
+#define VGT_CNTL_STATUS_VGT_DMA_REQ_BUSY_MASK 0x00000004
+#define VGT_CNTL_STATUS_VGT_GRP_BUSY_MASK 0x00000008
+#define VGT_CNTL_STATUS_VGT_VR_BUSY_MASK 0x00000010
+#define VGT_CNTL_STATUS_VGT_BIN_BUSY_MASK 0x00000020
+#define VGT_CNTL_STATUS_VGT_PT_BUSY_MASK 0x00000040
+#define VGT_CNTL_STATUS_VGT_OUT_BUSY_MASK 0x00000080
+#define VGT_CNTL_STATUS_VGT_OUT_INDX_BUSY_MASK 0x00000100
+
+#define VGT_CNTL_STATUS_MASK \
+ (VGT_CNTL_STATUS_VGT_BUSY_MASK | \
+ VGT_CNTL_STATUS_VGT_DMA_BUSY_MASK | \
+ VGT_CNTL_STATUS_VGT_DMA_REQ_BUSY_MASK | \
+ VGT_CNTL_STATUS_VGT_GRP_BUSY_MASK | \
+ VGT_CNTL_STATUS_VGT_VR_BUSY_MASK | \
+ VGT_CNTL_STATUS_VGT_BIN_BUSY_MASK | \
+ VGT_CNTL_STATUS_VGT_PT_BUSY_MASK | \
+ VGT_CNTL_STATUS_VGT_OUT_BUSY_MASK | \
+ VGT_CNTL_STATUS_VGT_OUT_INDX_BUSY_MASK)
+
+#define VGT_CNTL_STATUS(vgt_busy, vgt_dma_busy, vgt_dma_req_busy, vgt_grp_busy, vgt_vr_busy, vgt_bin_busy, vgt_pt_busy, vgt_out_busy, vgt_out_indx_busy) \
+ ((vgt_busy << VGT_CNTL_STATUS_VGT_BUSY_SHIFT) | \
+ (vgt_dma_busy << VGT_CNTL_STATUS_VGT_DMA_BUSY_SHIFT) | \
+ (vgt_dma_req_busy << VGT_CNTL_STATUS_VGT_DMA_REQ_BUSY_SHIFT) | \
+ (vgt_grp_busy << VGT_CNTL_STATUS_VGT_GRP_BUSY_SHIFT) | \
+ (vgt_vr_busy << VGT_CNTL_STATUS_VGT_VR_BUSY_SHIFT) | \
+ (vgt_bin_busy << VGT_CNTL_STATUS_VGT_BIN_BUSY_SHIFT) | \
+ (vgt_pt_busy << VGT_CNTL_STATUS_VGT_PT_BUSY_SHIFT) | \
+ (vgt_out_busy << VGT_CNTL_STATUS_VGT_OUT_BUSY_SHIFT) | \
+ (vgt_out_indx_busy << VGT_CNTL_STATUS_VGT_OUT_INDX_BUSY_SHIFT))
+
+#define VGT_CNTL_STATUS_GET_VGT_BUSY(vgt_cntl_status) \
+ ((vgt_cntl_status & VGT_CNTL_STATUS_VGT_BUSY_MASK) >> VGT_CNTL_STATUS_VGT_BUSY_SHIFT)
+#define VGT_CNTL_STATUS_GET_VGT_DMA_BUSY(vgt_cntl_status) \
+ ((vgt_cntl_status & VGT_CNTL_STATUS_VGT_DMA_BUSY_MASK) >> VGT_CNTL_STATUS_VGT_DMA_BUSY_SHIFT)
+#define VGT_CNTL_STATUS_GET_VGT_DMA_REQ_BUSY(vgt_cntl_status) \
+ ((vgt_cntl_status & VGT_CNTL_STATUS_VGT_DMA_REQ_BUSY_MASK) >> VGT_CNTL_STATUS_VGT_DMA_REQ_BUSY_SHIFT)
+#define VGT_CNTL_STATUS_GET_VGT_GRP_BUSY(vgt_cntl_status) \
+ ((vgt_cntl_status & VGT_CNTL_STATUS_VGT_GRP_BUSY_MASK) >> VGT_CNTL_STATUS_VGT_GRP_BUSY_SHIFT)
+#define VGT_CNTL_STATUS_GET_VGT_VR_BUSY(vgt_cntl_status) \
+ ((vgt_cntl_status & VGT_CNTL_STATUS_VGT_VR_BUSY_MASK) >> VGT_CNTL_STATUS_VGT_VR_BUSY_SHIFT)
+#define VGT_CNTL_STATUS_GET_VGT_BIN_BUSY(vgt_cntl_status) \
+ ((vgt_cntl_status & VGT_CNTL_STATUS_VGT_BIN_BUSY_MASK) >> VGT_CNTL_STATUS_VGT_BIN_BUSY_SHIFT)
+#define VGT_CNTL_STATUS_GET_VGT_PT_BUSY(vgt_cntl_status) \
+ ((vgt_cntl_status & VGT_CNTL_STATUS_VGT_PT_BUSY_MASK) >> VGT_CNTL_STATUS_VGT_PT_BUSY_SHIFT)
+#define VGT_CNTL_STATUS_GET_VGT_OUT_BUSY(vgt_cntl_status) \
+ ((vgt_cntl_status & VGT_CNTL_STATUS_VGT_OUT_BUSY_MASK) >> VGT_CNTL_STATUS_VGT_OUT_BUSY_SHIFT)
+#define VGT_CNTL_STATUS_GET_VGT_OUT_INDX_BUSY(vgt_cntl_status) \
+ ((vgt_cntl_status & VGT_CNTL_STATUS_VGT_OUT_INDX_BUSY_MASK) >> VGT_CNTL_STATUS_VGT_OUT_INDX_BUSY_SHIFT)
+
+#define VGT_CNTL_STATUS_SET_VGT_BUSY(vgt_cntl_status_reg, vgt_busy) \
+ vgt_cntl_status_reg = (vgt_cntl_status_reg & ~VGT_CNTL_STATUS_VGT_BUSY_MASK) | (vgt_busy << VGT_CNTL_STATUS_VGT_BUSY_SHIFT)
+#define VGT_CNTL_STATUS_SET_VGT_DMA_BUSY(vgt_cntl_status_reg, vgt_dma_busy) \
+ vgt_cntl_status_reg = (vgt_cntl_status_reg & ~VGT_CNTL_STATUS_VGT_DMA_BUSY_MASK) | (vgt_dma_busy << VGT_CNTL_STATUS_VGT_DMA_BUSY_SHIFT)
+#define VGT_CNTL_STATUS_SET_VGT_DMA_REQ_BUSY(vgt_cntl_status_reg, vgt_dma_req_busy) \
+ vgt_cntl_status_reg = (vgt_cntl_status_reg & ~VGT_CNTL_STATUS_VGT_DMA_REQ_BUSY_MASK) | (vgt_dma_req_busy << VGT_CNTL_STATUS_VGT_DMA_REQ_BUSY_SHIFT)
+#define VGT_CNTL_STATUS_SET_VGT_GRP_BUSY(vgt_cntl_status_reg, vgt_grp_busy) \
+ vgt_cntl_status_reg = (vgt_cntl_status_reg & ~VGT_CNTL_STATUS_VGT_GRP_BUSY_MASK) | (vgt_grp_busy << VGT_CNTL_STATUS_VGT_GRP_BUSY_SHIFT)
+#define VGT_CNTL_STATUS_SET_VGT_VR_BUSY(vgt_cntl_status_reg, vgt_vr_busy) \
+ vgt_cntl_status_reg = (vgt_cntl_status_reg & ~VGT_CNTL_STATUS_VGT_VR_BUSY_MASK) | (vgt_vr_busy << VGT_CNTL_STATUS_VGT_VR_BUSY_SHIFT)
+#define VGT_CNTL_STATUS_SET_VGT_BIN_BUSY(vgt_cntl_status_reg, vgt_bin_busy) \
+ vgt_cntl_status_reg = (vgt_cntl_status_reg & ~VGT_CNTL_STATUS_VGT_BIN_BUSY_MASK) | (vgt_bin_busy << VGT_CNTL_STATUS_VGT_BIN_BUSY_SHIFT)
+#define VGT_CNTL_STATUS_SET_VGT_PT_BUSY(vgt_cntl_status_reg, vgt_pt_busy) \
+ vgt_cntl_status_reg = (vgt_cntl_status_reg & ~VGT_CNTL_STATUS_VGT_PT_BUSY_MASK) | (vgt_pt_busy << VGT_CNTL_STATUS_VGT_PT_BUSY_SHIFT)
+#define VGT_CNTL_STATUS_SET_VGT_OUT_BUSY(vgt_cntl_status_reg, vgt_out_busy) \
+ vgt_cntl_status_reg = (vgt_cntl_status_reg & ~VGT_CNTL_STATUS_VGT_OUT_BUSY_MASK) | (vgt_out_busy << VGT_CNTL_STATUS_VGT_OUT_BUSY_SHIFT)
+#define VGT_CNTL_STATUS_SET_VGT_OUT_INDX_BUSY(vgt_cntl_status_reg, vgt_out_indx_busy) \
+ vgt_cntl_status_reg = (vgt_cntl_status_reg & ~VGT_CNTL_STATUS_VGT_OUT_INDX_BUSY_MASK) | (vgt_out_indx_busy << VGT_CNTL_STATUS_VGT_OUT_INDX_BUSY_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_cntl_status_t {
+ unsigned int vgt_busy : VGT_CNTL_STATUS_VGT_BUSY_SIZE;
+ unsigned int vgt_dma_busy : VGT_CNTL_STATUS_VGT_DMA_BUSY_SIZE;
+ unsigned int vgt_dma_req_busy : VGT_CNTL_STATUS_VGT_DMA_REQ_BUSY_SIZE;
+ unsigned int vgt_grp_busy : VGT_CNTL_STATUS_VGT_GRP_BUSY_SIZE;
+ unsigned int vgt_vr_busy : VGT_CNTL_STATUS_VGT_VR_BUSY_SIZE;
+ unsigned int vgt_bin_busy : VGT_CNTL_STATUS_VGT_BIN_BUSY_SIZE;
+ unsigned int vgt_pt_busy : VGT_CNTL_STATUS_VGT_PT_BUSY_SIZE;
+ unsigned int vgt_out_busy : VGT_CNTL_STATUS_VGT_OUT_BUSY_SIZE;
+ unsigned int vgt_out_indx_busy : VGT_CNTL_STATUS_VGT_OUT_INDX_BUSY_SIZE;
+ unsigned int : 23;
+ } vgt_cntl_status_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_cntl_status_t {
+ unsigned int : 23;
+ unsigned int vgt_out_indx_busy : VGT_CNTL_STATUS_VGT_OUT_INDX_BUSY_SIZE;
+ unsigned int vgt_out_busy : VGT_CNTL_STATUS_VGT_OUT_BUSY_SIZE;
+ unsigned int vgt_pt_busy : VGT_CNTL_STATUS_VGT_PT_BUSY_SIZE;
+ unsigned int vgt_bin_busy : VGT_CNTL_STATUS_VGT_BIN_BUSY_SIZE;
+ unsigned int vgt_vr_busy : VGT_CNTL_STATUS_VGT_VR_BUSY_SIZE;
+ unsigned int vgt_grp_busy : VGT_CNTL_STATUS_VGT_GRP_BUSY_SIZE;
+ unsigned int vgt_dma_req_busy : VGT_CNTL_STATUS_VGT_DMA_REQ_BUSY_SIZE;
+ unsigned int vgt_dma_busy : VGT_CNTL_STATUS_VGT_DMA_BUSY_SIZE;
+ unsigned int vgt_busy : VGT_CNTL_STATUS_VGT_BUSY_SIZE;
+ } vgt_cntl_status_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_cntl_status_t f;
+} vgt_cntl_status_u;
+
+
+/*
+ * VGT_DEBUG_REG0 struct
+ */
+
+#define VGT_DEBUG_REG0_te_grp_busy_SIZE 1
+#define VGT_DEBUG_REG0_pt_grp_busy_SIZE 1
+#define VGT_DEBUG_REG0_vr_grp_busy_SIZE 1
+#define VGT_DEBUG_REG0_dma_request_busy_SIZE 1
+#define VGT_DEBUG_REG0_out_busy_SIZE 1
+#define VGT_DEBUG_REG0_grp_backend_busy_SIZE 1
+#define VGT_DEBUG_REG0_grp_busy_SIZE 1
+#define VGT_DEBUG_REG0_dma_busy_SIZE 1
+#define VGT_DEBUG_REG0_rbiu_dma_request_busy_SIZE 1
+#define VGT_DEBUG_REG0_rbiu_busy_SIZE 1
+#define VGT_DEBUG_REG0_vgt_no_dma_busy_extended_SIZE 1
+#define VGT_DEBUG_REG0_vgt_no_dma_busy_SIZE 1
+#define VGT_DEBUG_REG0_vgt_busy_extended_SIZE 1
+#define VGT_DEBUG_REG0_vgt_busy_SIZE 1
+#define VGT_DEBUG_REG0_rbbm_skid_fifo_busy_out_SIZE 1
+#define VGT_DEBUG_REG0_VGT_RBBM_no_dma_busy_SIZE 1
+#define VGT_DEBUG_REG0_VGT_RBBM_busy_SIZE 1
+
+#define VGT_DEBUG_REG0_te_grp_busy_SHIFT 0
+#define VGT_DEBUG_REG0_pt_grp_busy_SHIFT 1
+#define VGT_DEBUG_REG0_vr_grp_busy_SHIFT 2
+#define VGT_DEBUG_REG0_dma_request_busy_SHIFT 3
+#define VGT_DEBUG_REG0_out_busy_SHIFT 4
+#define VGT_DEBUG_REG0_grp_backend_busy_SHIFT 5
+#define VGT_DEBUG_REG0_grp_busy_SHIFT 6
+#define VGT_DEBUG_REG0_dma_busy_SHIFT 7
+#define VGT_DEBUG_REG0_rbiu_dma_request_busy_SHIFT 8
+#define VGT_DEBUG_REG0_rbiu_busy_SHIFT 9
+#define VGT_DEBUG_REG0_vgt_no_dma_busy_extended_SHIFT 10
+#define VGT_DEBUG_REG0_vgt_no_dma_busy_SHIFT 11
+#define VGT_DEBUG_REG0_vgt_busy_extended_SHIFT 12
+#define VGT_DEBUG_REG0_vgt_busy_SHIFT 13
+#define VGT_DEBUG_REG0_rbbm_skid_fifo_busy_out_SHIFT 14
+#define VGT_DEBUG_REG0_VGT_RBBM_no_dma_busy_SHIFT 15
+#define VGT_DEBUG_REG0_VGT_RBBM_busy_SHIFT 16
+
+#define VGT_DEBUG_REG0_te_grp_busy_MASK 0x00000001
+#define VGT_DEBUG_REG0_pt_grp_busy_MASK 0x00000002
+#define VGT_DEBUG_REG0_vr_grp_busy_MASK 0x00000004
+#define VGT_DEBUG_REG0_dma_request_busy_MASK 0x00000008
+#define VGT_DEBUG_REG0_out_busy_MASK 0x00000010
+#define VGT_DEBUG_REG0_grp_backend_busy_MASK 0x00000020
+#define VGT_DEBUG_REG0_grp_busy_MASK 0x00000040
+#define VGT_DEBUG_REG0_dma_busy_MASK 0x00000080
+#define VGT_DEBUG_REG0_rbiu_dma_request_busy_MASK 0x00000100
+#define VGT_DEBUG_REG0_rbiu_busy_MASK 0x00000200
+#define VGT_DEBUG_REG0_vgt_no_dma_busy_extended_MASK 0x00000400
+#define VGT_DEBUG_REG0_vgt_no_dma_busy_MASK 0x00000800
+#define VGT_DEBUG_REG0_vgt_busy_extended_MASK 0x00001000
+#define VGT_DEBUG_REG0_vgt_busy_MASK 0x00002000
+#define VGT_DEBUG_REG0_rbbm_skid_fifo_busy_out_MASK 0x00004000
+#define VGT_DEBUG_REG0_VGT_RBBM_no_dma_busy_MASK 0x00008000
+#define VGT_DEBUG_REG0_VGT_RBBM_busy_MASK 0x00010000
+
+#define VGT_DEBUG_REG0_MASK \
+ (VGT_DEBUG_REG0_te_grp_busy_MASK | \
+ VGT_DEBUG_REG0_pt_grp_busy_MASK | \
+ VGT_DEBUG_REG0_vr_grp_busy_MASK | \
+ VGT_DEBUG_REG0_dma_request_busy_MASK | \
+ VGT_DEBUG_REG0_out_busy_MASK | \
+ VGT_DEBUG_REG0_grp_backend_busy_MASK | \
+ VGT_DEBUG_REG0_grp_busy_MASK | \
+ VGT_DEBUG_REG0_dma_busy_MASK | \
+ VGT_DEBUG_REG0_rbiu_dma_request_busy_MASK | \
+ VGT_DEBUG_REG0_rbiu_busy_MASK | \
+ VGT_DEBUG_REG0_vgt_no_dma_busy_extended_MASK | \
+ VGT_DEBUG_REG0_vgt_no_dma_busy_MASK | \
+ VGT_DEBUG_REG0_vgt_busy_extended_MASK | \
+ VGT_DEBUG_REG0_vgt_busy_MASK | \
+ VGT_DEBUG_REG0_rbbm_skid_fifo_busy_out_MASK | \
+ VGT_DEBUG_REG0_VGT_RBBM_no_dma_busy_MASK | \
+ VGT_DEBUG_REG0_VGT_RBBM_busy_MASK)
+
+#define VGT_DEBUG_REG0(te_grp_busy, pt_grp_busy, vr_grp_busy, dma_request_busy, out_busy, grp_backend_busy, grp_busy, dma_busy, rbiu_dma_request_busy, rbiu_busy, vgt_no_dma_busy_extended, vgt_no_dma_busy, vgt_busy_extended, vgt_busy, rbbm_skid_fifo_busy_out, vgt_rbbm_no_dma_busy, vgt_rbbm_busy) \
+ ((te_grp_busy << VGT_DEBUG_REG0_te_grp_busy_SHIFT) | \
+ (pt_grp_busy << VGT_DEBUG_REG0_pt_grp_busy_SHIFT) | \
+ (vr_grp_busy << VGT_DEBUG_REG0_vr_grp_busy_SHIFT) | \
+ (dma_request_busy << VGT_DEBUG_REG0_dma_request_busy_SHIFT) | \
+ (out_busy << VGT_DEBUG_REG0_out_busy_SHIFT) | \
+ (grp_backend_busy << VGT_DEBUG_REG0_grp_backend_busy_SHIFT) | \
+ (grp_busy << VGT_DEBUG_REG0_grp_busy_SHIFT) | \
+ (dma_busy << VGT_DEBUG_REG0_dma_busy_SHIFT) | \
+ (rbiu_dma_request_busy << VGT_DEBUG_REG0_rbiu_dma_request_busy_SHIFT) | \
+ (rbiu_busy << VGT_DEBUG_REG0_rbiu_busy_SHIFT) | \
+ (vgt_no_dma_busy_extended << VGT_DEBUG_REG0_vgt_no_dma_busy_extended_SHIFT) | \
+ (vgt_no_dma_busy << VGT_DEBUG_REG0_vgt_no_dma_busy_SHIFT) | \
+ (vgt_busy_extended << VGT_DEBUG_REG0_vgt_busy_extended_SHIFT) | \
+ (vgt_busy << VGT_DEBUG_REG0_vgt_busy_SHIFT) | \
+ (rbbm_skid_fifo_busy_out << VGT_DEBUG_REG0_rbbm_skid_fifo_busy_out_SHIFT) | \
+ (vgt_rbbm_no_dma_busy << VGT_DEBUG_REG0_VGT_RBBM_no_dma_busy_SHIFT) | \
+ (vgt_rbbm_busy << VGT_DEBUG_REG0_VGT_RBBM_busy_SHIFT))
+
+#define VGT_DEBUG_REG0_GET_te_grp_busy(vgt_debug_reg0) \
+ ((vgt_debug_reg0 & VGT_DEBUG_REG0_te_grp_busy_MASK) >> VGT_DEBUG_REG0_te_grp_busy_SHIFT)
+#define VGT_DEBUG_REG0_GET_pt_grp_busy(vgt_debug_reg0) \
+ ((vgt_debug_reg0 & VGT_DEBUG_REG0_pt_grp_busy_MASK) >> VGT_DEBUG_REG0_pt_grp_busy_SHIFT)
+#define VGT_DEBUG_REG0_GET_vr_grp_busy(vgt_debug_reg0) \
+ ((vgt_debug_reg0 & VGT_DEBUG_REG0_vr_grp_busy_MASK) >> VGT_DEBUG_REG0_vr_grp_busy_SHIFT)
+#define VGT_DEBUG_REG0_GET_dma_request_busy(vgt_debug_reg0) \
+ ((vgt_debug_reg0 & VGT_DEBUG_REG0_dma_request_busy_MASK) >> VGT_DEBUG_REG0_dma_request_busy_SHIFT)
+#define VGT_DEBUG_REG0_GET_out_busy(vgt_debug_reg0) \
+ ((vgt_debug_reg0 & VGT_DEBUG_REG0_out_busy_MASK) >> VGT_DEBUG_REG0_out_busy_SHIFT)
+#define VGT_DEBUG_REG0_GET_grp_backend_busy(vgt_debug_reg0) \
+ ((vgt_debug_reg0 & VGT_DEBUG_REG0_grp_backend_busy_MASK) >> VGT_DEBUG_REG0_grp_backend_busy_SHIFT)
+#define VGT_DEBUG_REG0_GET_grp_busy(vgt_debug_reg0) \
+ ((vgt_debug_reg0 & VGT_DEBUG_REG0_grp_busy_MASK) >> VGT_DEBUG_REG0_grp_busy_SHIFT)
+#define VGT_DEBUG_REG0_GET_dma_busy(vgt_debug_reg0) \
+ ((vgt_debug_reg0 & VGT_DEBUG_REG0_dma_busy_MASK) >> VGT_DEBUG_REG0_dma_busy_SHIFT)
+#define VGT_DEBUG_REG0_GET_rbiu_dma_request_busy(vgt_debug_reg0) \
+ ((vgt_debug_reg0 & VGT_DEBUG_REG0_rbiu_dma_request_busy_MASK) >> VGT_DEBUG_REG0_rbiu_dma_request_busy_SHIFT)
+#define VGT_DEBUG_REG0_GET_rbiu_busy(vgt_debug_reg0) \
+ ((vgt_debug_reg0 & VGT_DEBUG_REG0_rbiu_busy_MASK) >> VGT_DEBUG_REG0_rbiu_busy_SHIFT)
+#define VGT_DEBUG_REG0_GET_vgt_no_dma_busy_extended(vgt_debug_reg0) \
+ ((vgt_debug_reg0 & VGT_DEBUG_REG0_vgt_no_dma_busy_extended_MASK) >> VGT_DEBUG_REG0_vgt_no_dma_busy_extended_SHIFT)
+#define VGT_DEBUG_REG0_GET_vgt_no_dma_busy(vgt_debug_reg0) \
+ ((vgt_debug_reg0 & VGT_DEBUG_REG0_vgt_no_dma_busy_MASK) >> VGT_DEBUG_REG0_vgt_no_dma_busy_SHIFT)
+#define VGT_DEBUG_REG0_GET_vgt_busy_extended(vgt_debug_reg0) \
+ ((vgt_debug_reg0 & VGT_DEBUG_REG0_vgt_busy_extended_MASK) >> VGT_DEBUG_REG0_vgt_busy_extended_SHIFT)
+#define VGT_DEBUG_REG0_GET_vgt_busy(vgt_debug_reg0) \
+ ((vgt_debug_reg0 & VGT_DEBUG_REG0_vgt_busy_MASK) >> VGT_DEBUG_REG0_vgt_busy_SHIFT)
+#define VGT_DEBUG_REG0_GET_rbbm_skid_fifo_busy_out(vgt_debug_reg0) \
+ ((vgt_debug_reg0 & VGT_DEBUG_REG0_rbbm_skid_fifo_busy_out_MASK) >> VGT_DEBUG_REG0_rbbm_skid_fifo_busy_out_SHIFT)
+#define VGT_DEBUG_REG0_GET_VGT_RBBM_no_dma_busy(vgt_debug_reg0) \
+ ((vgt_debug_reg0 & VGT_DEBUG_REG0_VGT_RBBM_no_dma_busy_MASK) >> VGT_DEBUG_REG0_VGT_RBBM_no_dma_busy_SHIFT)
+#define VGT_DEBUG_REG0_GET_VGT_RBBM_busy(vgt_debug_reg0) \
+ ((vgt_debug_reg0 & VGT_DEBUG_REG0_VGT_RBBM_busy_MASK) >> VGT_DEBUG_REG0_VGT_RBBM_busy_SHIFT)
+
+#define VGT_DEBUG_REG0_SET_te_grp_busy(vgt_debug_reg0_reg, te_grp_busy) \
+ vgt_debug_reg0_reg = (vgt_debug_reg0_reg & ~VGT_DEBUG_REG0_te_grp_busy_MASK) | (te_grp_busy << VGT_DEBUG_REG0_te_grp_busy_SHIFT)
+#define VGT_DEBUG_REG0_SET_pt_grp_busy(vgt_debug_reg0_reg, pt_grp_busy) \
+ vgt_debug_reg0_reg = (vgt_debug_reg0_reg & ~VGT_DEBUG_REG0_pt_grp_busy_MASK) | (pt_grp_busy << VGT_DEBUG_REG0_pt_grp_busy_SHIFT)
+#define VGT_DEBUG_REG0_SET_vr_grp_busy(vgt_debug_reg0_reg, vr_grp_busy) \
+ vgt_debug_reg0_reg = (vgt_debug_reg0_reg & ~VGT_DEBUG_REG0_vr_grp_busy_MASK) | (vr_grp_busy << VGT_DEBUG_REG0_vr_grp_busy_SHIFT)
+#define VGT_DEBUG_REG0_SET_dma_request_busy(vgt_debug_reg0_reg, dma_request_busy) \
+ vgt_debug_reg0_reg = (vgt_debug_reg0_reg & ~VGT_DEBUG_REG0_dma_request_busy_MASK) | (dma_request_busy << VGT_DEBUG_REG0_dma_request_busy_SHIFT)
+#define VGT_DEBUG_REG0_SET_out_busy(vgt_debug_reg0_reg, out_busy) \
+ vgt_debug_reg0_reg = (vgt_debug_reg0_reg & ~VGT_DEBUG_REG0_out_busy_MASK) | (out_busy << VGT_DEBUG_REG0_out_busy_SHIFT)
+#define VGT_DEBUG_REG0_SET_grp_backend_busy(vgt_debug_reg0_reg, grp_backend_busy) \
+ vgt_debug_reg0_reg = (vgt_debug_reg0_reg & ~VGT_DEBUG_REG0_grp_backend_busy_MASK) | (grp_backend_busy << VGT_DEBUG_REG0_grp_backend_busy_SHIFT)
+#define VGT_DEBUG_REG0_SET_grp_busy(vgt_debug_reg0_reg, grp_busy) \
+ vgt_debug_reg0_reg = (vgt_debug_reg0_reg & ~VGT_DEBUG_REG0_grp_busy_MASK) | (grp_busy << VGT_DEBUG_REG0_grp_busy_SHIFT)
+#define VGT_DEBUG_REG0_SET_dma_busy(vgt_debug_reg0_reg, dma_busy) \
+ vgt_debug_reg0_reg = (vgt_debug_reg0_reg & ~VGT_DEBUG_REG0_dma_busy_MASK) | (dma_busy << VGT_DEBUG_REG0_dma_busy_SHIFT)
+#define VGT_DEBUG_REG0_SET_rbiu_dma_request_busy(vgt_debug_reg0_reg, rbiu_dma_request_busy) \
+ vgt_debug_reg0_reg = (vgt_debug_reg0_reg & ~VGT_DEBUG_REG0_rbiu_dma_request_busy_MASK) | (rbiu_dma_request_busy << VGT_DEBUG_REG0_rbiu_dma_request_busy_SHIFT)
+#define VGT_DEBUG_REG0_SET_rbiu_busy(vgt_debug_reg0_reg, rbiu_busy) \
+ vgt_debug_reg0_reg = (vgt_debug_reg0_reg & ~VGT_DEBUG_REG0_rbiu_busy_MASK) | (rbiu_busy << VGT_DEBUG_REG0_rbiu_busy_SHIFT)
+#define VGT_DEBUG_REG0_SET_vgt_no_dma_busy_extended(vgt_debug_reg0_reg, vgt_no_dma_busy_extended) \
+ vgt_debug_reg0_reg = (vgt_debug_reg0_reg & ~VGT_DEBUG_REG0_vgt_no_dma_busy_extended_MASK) | (vgt_no_dma_busy_extended << VGT_DEBUG_REG0_vgt_no_dma_busy_extended_SHIFT)
+#define VGT_DEBUG_REG0_SET_vgt_no_dma_busy(vgt_debug_reg0_reg, vgt_no_dma_busy) \
+ vgt_debug_reg0_reg = (vgt_debug_reg0_reg & ~VGT_DEBUG_REG0_vgt_no_dma_busy_MASK) | (vgt_no_dma_busy << VGT_DEBUG_REG0_vgt_no_dma_busy_SHIFT)
+#define VGT_DEBUG_REG0_SET_vgt_busy_extended(vgt_debug_reg0_reg, vgt_busy_extended) \
+ vgt_debug_reg0_reg = (vgt_debug_reg0_reg & ~VGT_DEBUG_REG0_vgt_busy_extended_MASK) | (vgt_busy_extended << VGT_DEBUG_REG0_vgt_busy_extended_SHIFT)
+#define VGT_DEBUG_REG0_SET_vgt_busy(vgt_debug_reg0_reg, vgt_busy) \
+ vgt_debug_reg0_reg = (vgt_debug_reg0_reg & ~VGT_DEBUG_REG0_vgt_busy_MASK) | (vgt_busy << VGT_DEBUG_REG0_vgt_busy_SHIFT)
+#define VGT_DEBUG_REG0_SET_rbbm_skid_fifo_busy_out(vgt_debug_reg0_reg, rbbm_skid_fifo_busy_out) \
+ vgt_debug_reg0_reg = (vgt_debug_reg0_reg & ~VGT_DEBUG_REG0_rbbm_skid_fifo_busy_out_MASK) | (rbbm_skid_fifo_busy_out << VGT_DEBUG_REG0_rbbm_skid_fifo_busy_out_SHIFT)
+#define VGT_DEBUG_REG0_SET_VGT_RBBM_no_dma_busy(vgt_debug_reg0_reg, vgt_rbbm_no_dma_busy) \
+ vgt_debug_reg0_reg = (vgt_debug_reg0_reg & ~VGT_DEBUG_REG0_VGT_RBBM_no_dma_busy_MASK) | (vgt_rbbm_no_dma_busy << VGT_DEBUG_REG0_VGT_RBBM_no_dma_busy_SHIFT)
+#define VGT_DEBUG_REG0_SET_VGT_RBBM_busy(vgt_debug_reg0_reg, vgt_rbbm_busy) \
+ vgt_debug_reg0_reg = (vgt_debug_reg0_reg & ~VGT_DEBUG_REG0_VGT_RBBM_busy_MASK) | (vgt_rbbm_busy << VGT_DEBUG_REG0_VGT_RBBM_busy_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg0_t {
+ unsigned int te_grp_busy : VGT_DEBUG_REG0_te_grp_busy_SIZE;
+ unsigned int pt_grp_busy : VGT_DEBUG_REG0_pt_grp_busy_SIZE;
+ unsigned int vr_grp_busy : VGT_DEBUG_REG0_vr_grp_busy_SIZE;
+ unsigned int dma_request_busy : VGT_DEBUG_REG0_dma_request_busy_SIZE;
+ unsigned int out_busy : VGT_DEBUG_REG0_out_busy_SIZE;
+ unsigned int grp_backend_busy : VGT_DEBUG_REG0_grp_backend_busy_SIZE;
+ unsigned int grp_busy : VGT_DEBUG_REG0_grp_busy_SIZE;
+ unsigned int dma_busy : VGT_DEBUG_REG0_dma_busy_SIZE;
+ unsigned int rbiu_dma_request_busy : VGT_DEBUG_REG0_rbiu_dma_request_busy_SIZE;
+ unsigned int rbiu_busy : VGT_DEBUG_REG0_rbiu_busy_SIZE;
+ unsigned int vgt_no_dma_busy_extended : VGT_DEBUG_REG0_vgt_no_dma_busy_extended_SIZE;
+ unsigned int vgt_no_dma_busy : VGT_DEBUG_REG0_vgt_no_dma_busy_SIZE;
+ unsigned int vgt_busy_extended : VGT_DEBUG_REG0_vgt_busy_extended_SIZE;
+ unsigned int vgt_busy : VGT_DEBUG_REG0_vgt_busy_SIZE;
+ unsigned int rbbm_skid_fifo_busy_out : VGT_DEBUG_REG0_rbbm_skid_fifo_busy_out_SIZE;
+ unsigned int vgt_rbbm_no_dma_busy : VGT_DEBUG_REG0_VGT_RBBM_no_dma_busy_SIZE;
+ unsigned int vgt_rbbm_busy : VGT_DEBUG_REG0_VGT_RBBM_busy_SIZE;
+ unsigned int : 15;
+ } vgt_debug_reg0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg0_t {
+ unsigned int : 15;
+ unsigned int vgt_rbbm_busy : VGT_DEBUG_REG0_VGT_RBBM_busy_SIZE;
+ unsigned int vgt_rbbm_no_dma_busy : VGT_DEBUG_REG0_VGT_RBBM_no_dma_busy_SIZE;
+ unsigned int rbbm_skid_fifo_busy_out : VGT_DEBUG_REG0_rbbm_skid_fifo_busy_out_SIZE;
+ unsigned int vgt_busy : VGT_DEBUG_REG0_vgt_busy_SIZE;
+ unsigned int vgt_busy_extended : VGT_DEBUG_REG0_vgt_busy_extended_SIZE;
+ unsigned int vgt_no_dma_busy : VGT_DEBUG_REG0_vgt_no_dma_busy_SIZE;
+ unsigned int vgt_no_dma_busy_extended : VGT_DEBUG_REG0_vgt_no_dma_busy_extended_SIZE;
+ unsigned int rbiu_busy : VGT_DEBUG_REG0_rbiu_busy_SIZE;
+ unsigned int rbiu_dma_request_busy : VGT_DEBUG_REG0_rbiu_dma_request_busy_SIZE;
+ unsigned int dma_busy : VGT_DEBUG_REG0_dma_busy_SIZE;
+ unsigned int grp_busy : VGT_DEBUG_REG0_grp_busy_SIZE;
+ unsigned int grp_backend_busy : VGT_DEBUG_REG0_grp_backend_busy_SIZE;
+ unsigned int out_busy : VGT_DEBUG_REG0_out_busy_SIZE;
+ unsigned int dma_request_busy : VGT_DEBUG_REG0_dma_request_busy_SIZE;
+ unsigned int vr_grp_busy : VGT_DEBUG_REG0_vr_grp_busy_SIZE;
+ unsigned int pt_grp_busy : VGT_DEBUG_REG0_pt_grp_busy_SIZE;
+ unsigned int te_grp_busy : VGT_DEBUG_REG0_te_grp_busy_SIZE;
+ } vgt_debug_reg0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_reg0_t f;
+} vgt_debug_reg0_u;
+
+
+/*
+ * VGT_DEBUG_REG1 struct
+ */
+
+#define VGT_DEBUG_REG1_out_te_data_read_SIZE 1
+#define VGT_DEBUG_REG1_te_out_data_valid_SIZE 1
+#define VGT_DEBUG_REG1_out_pt_prim_read_SIZE 1
+#define VGT_DEBUG_REG1_pt_out_prim_valid_SIZE 1
+#define VGT_DEBUG_REG1_out_pt_data_read_SIZE 1
+#define VGT_DEBUG_REG1_pt_out_indx_valid_SIZE 1
+#define VGT_DEBUG_REG1_out_vr_prim_read_SIZE 1
+#define VGT_DEBUG_REG1_vr_out_prim_valid_SIZE 1
+#define VGT_DEBUG_REG1_out_vr_indx_read_SIZE 1
+#define VGT_DEBUG_REG1_vr_out_indx_valid_SIZE 1
+#define VGT_DEBUG_REG1_te_grp_read_SIZE 1
+#define VGT_DEBUG_REG1_grp_te_valid_SIZE 1
+#define VGT_DEBUG_REG1_pt_grp_read_SIZE 1
+#define VGT_DEBUG_REG1_grp_pt_valid_SIZE 1
+#define VGT_DEBUG_REG1_vr_grp_read_SIZE 1
+#define VGT_DEBUG_REG1_grp_vr_valid_SIZE 1
+#define VGT_DEBUG_REG1_grp_dma_read_SIZE 1
+#define VGT_DEBUG_REG1_dma_grp_valid_SIZE 1
+#define VGT_DEBUG_REG1_grp_rbiu_di_read_SIZE 1
+#define VGT_DEBUG_REG1_rbiu_grp_di_valid_SIZE 1
+#define VGT_DEBUG_REG1_MH_VGT_rtr_SIZE 1
+#define VGT_DEBUG_REG1_VGT_MH_send_SIZE 1
+#define VGT_DEBUG_REG1_PA_VGT_clip_s_rtr_SIZE 1
+#define VGT_DEBUG_REG1_VGT_PA_clip_s_send_SIZE 1
+#define VGT_DEBUG_REG1_PA_VGT_clip_p_rtr_SIZE 1
+#define VGT_DEBUG_REG1_VGT_PA_clip_p_send_SIZE 1
+#define VGT_DEBUG_REG1_PA_VGT_clip_v_rtr_SIZE 1
+#define VGT_DEBUG_REG1_VGT_PA_clip_v_send_SIZE 1
+#define VGT_DEBUG_REG1_SQ_VGT_rtr_SIZE 1
+#define VGT_DEBUG_REG1_VGT_SQ_send_SIZE 1
+#define VGT_DEBUG_REG1_mh_vgt_tag_7_q_SIZE 1
+
+#define VGT_DEBUG_REG1_out_te_data_read_SHIFT 0
+#define VGT_DEBUG_REG1_te_out_data_valid_SHIFT 1
+#define VGT_DEBUG_REG1_out_pt_prim_read_SHIFT 2
+#define VGT_DEBUG_REG1_pt_out_prim_valid_SHIFT 3
+#define VGT_DEBUG_REG1_out_pt_data_read_SHIFT 4
+#define VGT_DEBUG_REG1_pt_out_indx_valid_SHIFT 5
+#define VGT_DEBUG_REG1_out_vr_prim_read_SHIFT 6
+#define VGT_DEBUG_REG1_vr_out_prim_valid_SHIFT 7
+#define VGT_DEBUG_REG1_out_vr_indx_read_SHIFT 8
+#define VGT_DEBUG_REG1_vr_out_indx_valid_SHIFT 9
+#define VGT_DEBUG_REG1_te_grp_read_SHIFT 10
+#define VGT_DEBUG_REG1_grp_te_valid_SHIFT 11
+#define VGT_DEBUG_REG1_pt_grp_read_SHIFT 12
+#define VGT_DEBUG_REG1_grp_pt_valid_SHIFT 13
+#define VGT_DEBUG_REG1_vr_grp_read_SHIFT 14
+#define VGT_DEBUG_REG1_grp_vr_valid_SHIFT 15
+#define VGT_DEBUG_REG1_grp_dma_read_SHIFT 16
+#define VGT_DEBUG_REG1_dma_grp_valid_SHIFT 17
+#define VGT_DEBUG_REG1_grp_rbiu_di_read_SHIFT 18
+#define VGT_DEBUG_REG1_rbiu_grp_di_valid_SHIFT 19
+#define VGT_DEBUG_REG1_MH_VGT_rtr_SHIFT 20
+#define VGT_DEBUG_REG1_VGT_MH_send_SHIFT 21
+#define VGT_DEBUG_REG1_PA_VGT_clip_s_rtr_SHIFT 22
+#define VGT_DEBUG_REG1_VGT_PA_clip_s_send_SHIFT 23
+#define VGT_DEBUG_REG1_PA_VGT_clip_p_rtr_SHIFT 24
+#define VGT_DEBUG_REG1_VGT_PA_clip_p_send_SHIFT 25
+#define VGT_DEBUG_REG1_PA_VGT_clip_v_rtr_SHIFT 26
+#define VGT_DEBUG_REG1_VGT_PA_clip_v_send_SHIFT 27
+#define VGT_DEBUG_REG1_SQ_VGT_rtr_SHIFT 28
+#define VGT_DEBUG_REG1_VGT_SQ_send_SHIFT 29
+#define VGT_DEBUG_REG1_mh_vgt_tag_7_q_SHIFT 30
+
+#define VGT_DEBUG_REG1_out_te_data_read_MASK 0x00000001
+#define VGT_DEBUG_REG1_te_out_data_valid_MASK 0x00000002
+#define VGT_DEBUG_REG1_out_pt_prim_read_MASK 0x00000004
+#define VGT_DEBUG_REG1_pt_out_prim_valid_MASK 0x00000008
+#define VGT_DEBUG_REG1_out_pt_data_read_MASK 0x00000010
+#define VGT_DEBUG_REG1_pt_out_indx_valid_MASK 0x00000020
+#define VGT_DEBUG_REG1_out_vr_prim_read_MASK 0x00000040
+#define VGT_DEBUG_REG1_vr_out_prim_valid_MASK 0x00000080
+#define VGT_DEBUG_REG1_out_vr_indx_read_MASK 0x00000100
+#define VGT_DEBUG_REG1_vr_out_indx_valid_MASK 0x00000200
+#define VGT_DEBUG_REG1_te_grp_read_MASK 0x00000400
+#define VGT_DEBUG_REG1_grp_te_valid_MASK 0x00000800
+#define VGT_DEBUG_REG1_pt_grp_read_MASK 0x00001000
+#define VGT_DEBUG_REG1_grp_pt_valid_MASK 0x00002000
+#define VGT_DEBUG_REG1_vr_grp_read_MASK 0x00004000
+#define VGT_DEBUG_REG1_grp_vr_valid_MASK 0x00008000
+#define VGT_DEBUG_REG1_grp_dma_read_MASK 0x00010000
+#define VGT_DEBUG_REG1_dma_grp_valid_MASK 0x00020000
+#define VGT_DEBUG_REG1_grp_rbiu_di_read_MASK 0x00040000
+#define VGT_DEBUG_REG1_rbiu_grp_di_valid_MASK 0x00080000
+#define VGT_DEBUG_REG1_MH_VGT_rtr_MASK 0x00100000
+#define VGT_DEBUG_REG1_VGT_MH_send_MASK 0x00200000
+#define VGT_DEBUG_REG1_PA_VGT_clip_s_rtr_MASK 0x00400000
+#define VGT_DEBUG_REG1_VGT_PA_clip_s_send_MASK 0x00800000
+#define VGT_DEBUG_REG1_PA_VGT_clip_p_rtr_MASK 0x01000000
+#define VGT_DEBUG_REG1_VGT_PA_clip_p_send_MASK 0x02000000
+#define VGT_DEBUG_REG1_PA_VGT_clip_v_rtr_MASK 0x04000000
+#define VGT_DEBUG_REG1_VGT_PA_clip_v_send_MASK 0x08000000
+#define VGT_DEBUG_REG1_SQ_VGT_rtr_MASK 0x10000000
+#define VGT_DEBUG_REG1_VGT_SQ_send_MASK 0x20000000
+#define VGT_DEBUG_REG1_mh_vgt_tag_7_q_MASK 0x40000000
+
+#define VGT_DEBUG_REG1_MASK \
+ (VGT_DEBUG_REG1_out_te_data_read_MASK | \
+ VGT_DEBUG_REG1_te_out_data_valid_MASK | \
+ VGT_DEBUG_REG1_out_pt_prim_read_MASK | \
+ VGT_DEBUG_REG1_pt_out_prim_valid_MASK | \
+ VGT_DEBUG_REG1_out_pt_data_read_MASK | \
+ VGT_DEBUG_REG1_pt_out_indx_valid_MASK | \
+ VGT_DEBUG_REG1_out_vr_prim_read_MASK | \
+ VGT_DEBUG_REG1_vr_out_prim_valid_MASK | \
+ VGT_DEBUG_REG1_out_vr_indx_read_MASK | \
+ VGT_DEBUG_REG1_vr_out_indx_valid_MASK | \
+ VGT_DEBUG_REG1_te_grp_read_MASK | \
+ VGT_DEBUG_REG1_grp_te_valid_MASK | \
+ VGT_DEBUG_REG1_pt_grp_read_MASK | \
+ VGT_DEBUG_REG1_grp_pt_valid_MASK | \
+ VGT_DEBUG_REG1_vr_grp_read_MASK | \
+ VGT_DEBUG_REG1_grp_vr_valid_MASK | \
+ VGT_DEBUG_REG1_grp_dma_read_MASK | \
+ VGT_DEBUG_REG1_dma_grp_valid_MASK | \
+ VGT_DEBUG_REG1_grp_rbiu_di_read_MASK | \
+ VGT_DEBUG_REG1_rbiu_grp_di_valid_MASK | \
+ VGT_DEBUG_REG1_MH_VGT_rtr_MASK | \
+ VGT_DEBUG_REG1_VGT_MH_send_MASK | \
+ VGT_DEBUG_REG1_PA_VGT_clip_s_rtr_MASK | \
+ VGT_DEBUG_REG1_VGT_PA_clip_s_send_MASK | \
+ VGT_DEBUG_REG1_PA_VGT_clip_p_rtr_MASK | \
+ VGT_DEBUG_REG1_VGT_PA_clip_p_send_MASK | \
+ VGT_DEBUG_REG1_PA_VGT_clip_v_rtr_MASK | \
+ VGT_DEBUG_REG1_VGT_PA_clip_v_send_MASK | \
+ VGT_DEBUG_REG1_SQ_VGT_rtr_MASK | \
+ VGT_DEBUG_REG1_VGT_SQ_send_MASK | \
+ VGT_DEBUG_REG1_mh_vgt_tag_7_q_MASK)
+
+#define VGT_DEBUG_REG1(out_te_data_read, te_out_data_valid, out_pt_prim_read, pt_out_prim_valid, out_pt_data_read, pt_out_indx_valid, out_vr_prim_read, vr_out_prim_valid, out_vr_indx_read, vr_out_indx_valid, te_grp_read, grp_te_valid, pt_grp_read, grp_pt_valid, vr_grp_read, grp_vr_valid, grp_dma_read, dma_grp_valid, grp_rbiu_di_read, rbiu_grp_di_valid, mh_vgt_rtr, vgt_mh_send, pa_vgt_clip_s_rtr, vgt_pa_clip_s_send, pa_vgt_clip_p_rtr, vgt_pa_clip_p_send, pa_vgt_clip_v_rtr, vgt_pa_clip_v_send, sq_vgt_rtr, vgt_sq_send, mh_vgt_tag_7_q) \
+ ((out_te_data_read << VGT_DEBUG_REG1_out_te_data_read_SHIFT) | \
+ (te_out_data_valid << VGT_DEBUG_REG1_te_out_data_valid_SHIFT) | \
+ (out_pt_prim_read << VGT_DEBUG_REG1_out_pt_prim_read_SHIFT) | \
+ (pt_out_prim_valid << VGT_DEBUG_REG1_pt_out_prim_valid_SHIFT) | \
+ (out_pt_data_read << VGT_DEBUG_REG1_out_pt_data_read_SHIFT) | \
+ (pt_out_indx_valid << VGT_DEBUG_REG1_pt_out_indx_valid_SHIFT) | \
+ (out_vr_prim_read << VGT_DEBUG_REG1_out_vr_prim_read_SHIFT) | \
+ (vr_out_prim_valid << VGT_DEBUG_REG1_vr_out_prim_valid_SHIFT) | \
+ (out_vr_indx_read << VGT_DEBUG_REG1_out_vr_indx_read_SHIFT) | \
+ (vr_out_indx_valid << VGT_DEBUG_REG1_vr_out_indx_valid_SHIFT) | \
+ (te_grp_read << VGT_DEBUG_REG1_te_grp_read_SHIFT) | \
+ (grp_te_valid << VGT_DEBUG_REG1_grp_te_valid_SHIFT) | \
+ (pt_grp_read << VGT_DEBUG_REG1_pt_grp_read_SHIFT) | \
+ (grp_pt_valid << VGT_DEBUG_REG1_grp_pt_valid_SHIFT) | \
+ (vr_grp_read << VGT_DEBUG_REG1_vr_grp_read_SHIFT) | \
+ (grp_vr_valid << VGT_DEBUG_REG1_grp_vr_valid_SHIFT) | \
+ (grp_dma_read << VGT_DEBUG_REG1_grp_dma_read_SHIFT) | \
+ (dma_grp_valid << VGT_DEBUG_REG1_dma_grp_valid_SHIFT) | \
+ (grp_rbiu_di_read << VGT_DEBUG_REG1_grp_rbiu_di_read_SHIFT) | \
+ (rbiu_grp_di_valid << VGT_DEBUG_REG1_rbiu_grp_di_valid_SHIFT) | \
+ (mh_vgt_rtr << VGT_DEBUG_REG1_MH_VGT_rtr_SHIFT) | \
+ (vgt_mh_send << VGT_DEBUG_REG1_VGT_MH_send_SHIFT) | \
+ (pa_vgt_clip_s_rtr << VGT_DEBUG_REG1_PA_VGT_clip_s_rtr_SHIFT) | \
+ (vgt_pa_clip_s_send << VGT_DEBUG_REG1_VGT_PA_clip_s_send_SHIFT) | \
+ (pa_vgt_clip_p_rtr << VGT_DEBUG_REG1_PA_VGT_clip_p_rtr_SHIFT) | \
+ (vgt_pa_clip_p_send << VGT_DEBUG_REG1_VGT_PA_clip_p_send_SHIFT) | \
+ (pa_vgt_clip_v_rtr << VGT_DEBUG_REG1_PA_VGT_clip_v_rtr_SHIFT) | \
+ (vgt_pa_clip_v_send << VGT_DEBUG_REG1_VGT_PA_clip_v_send_SHIFT) | \
+ (sq_vgt_rtr << VGT_DEBUG_REG1_SQ_VGT_rtr_SHIFT) | \
+ (vgt_sq_send << VGT_DEBUG_REG1_VGT_SQ_send_SHIFT) | \
+ (mh_vgt_tag_7_q << VGT_DEBUG_REG1_mh_vgt_tag_7_q_SHIFT))
+
+#define VGT_DEBUG_REG1_GET_out_te_data_read(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_out_te_data_read_MASK) >> VGT_DEBUG_REG1_out_te_data_read_SHIFT)
+#define VGT_DEBUG_REG1_GET_te_out_data_valid(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_te_out_data_valid_MASK) >> VGT_DEBUG_REG1_te_out_data_valid_SHIFT)
+#define VGT_DEBUG_REG1_GET_out_pt_prim_read(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_out_pt_prim_read_MASK) >> VGT_DEBUG_REG1_out_pt_prim_read_SHIFT)
+#define VGT_DEBUG_REG1_GET_pt_out_prim_valid(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_pt_out_prim_valid_MASK) >> VGT_DEBUG_REG1_pt_out_prim_valid_SHIFT)
+#define VGT_DEBUG_REG1_GET_out_pt_data_read(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_out_pt_data_read_MASK) >> VGT_DEBUG_REG1_out_pt_data_read_SHIFT)
+#define VGT_DEBUG_REG1_GET_pt_out_indx_valid(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_pt_out_indx_valid_MASK) >> VGT_DEBUG_REG1_pt_out_indx_valid_SHIFT)
+#define VGT_DEBUG_REG1_GET_out_vr_prim_read(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_out_vr_prim_read_MASK) >> VGT_DEBUG_REG1_out_vr_prim_read_SHIFT)
+#define VGT_DEBUG_REG1_GET_vr_out_prim_valid(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_vr_out_prim_valid_MASK) >> VGT_DEBUG_REG1_vr_out_prim_valid_SHIFT)
+#define VGT_DEBUG_REG1_GET_out_vr_indx_read(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_out_vr_indx_read_MASK) >> VGT_DEBUG_REG1_out_vr_indx_read_SHIFT)
+#define VGT_DEBUG_REG1_GET_vr_out_indx_valid(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_vr_out_indx_valid_MASK) >> VGT_DEBUG_REG1_vr_out_indx_valid_SHIFT)
+#define VGT_DEBUG_REG1_GET_te_grp_read(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_te_grp_read_MASK) >> VGT_DEBUG_REG1_te_grp_read_SHIFT)
+#define VGT_DEBUG_REG1_GET_grp_te_valid(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_grp_te_valid_MASK) >> VGT_DEBUG_REG1_grp_te_valid_SHIFT)
+#define VGT_DEBUG_REG1_GET_pt_grp_read(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_pt_grp_read_MASK) >> VGT_DEBUG_REG1_pt_grp_read_SHIFT)
+#define VGT_DEBUG_REG1_GET_grp_pt_valid(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_grp_pt_valid_MASK) >> VGT_DEBUG_REG1_grp_pt_valid_SHIFT)
+#define VGT_DEBUG_REG1_GET_vr_grp_read(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_vr_grp_read_MASK) >> VGT_DEBUG_REG1_vr_grp_read_SHIFT)
+#define VGT_DEBUG_REG1_GET_grp_vr_valid(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_grp_vr_valid_MASK) >> VGT_DEBUG_REG1_grp_vr_valid_SHIFT)
+#define VGT_DEBUG_REG1_GET_grp_dma_read(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_grp_dma_read_MASK) >> VGT_DEBUG_REG1_grp_dma_read_SHIFT)
+#define VGT_DEBUG_REG1_GET_dma_grp_valid(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_dma_grp_valid_MASK) >> VGT_DEBUG_REG1_dma_grp_valid_SHIFT)
+#define VGT_DEBUG_REG1_GET_grp_rbiu_di_read(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_grp_rbiu_di_read_MASK) >> VGT_DEBUG_REG1_grp_rbiu_di_read_SHIFT)
+#define VGT_DEBUG_REG1_GET_rbiu_grp_di_valid(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_rbiu_grp_di_valid_MASK) >> VGT_DEBUG_REG1_rbiu_grp_di_valid_SHIFT)
+#define VGT_DEBUG_REG1_GET_MH_VGT_rtr(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_MH_VGT_rtr_MASK) >> VGT_DEBUG_REG1_MH_VGT_rtr_SHIFT)
+#define VGT_DEBUG_REG1_GET_VGT_MH_send(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_VGT_MH_send_MASK) >> VGT_DEBUG_REG1_VGT_MH_send_SHIFT)
+#define VGT_DEBUG_REG1_GET_PA_VGT_clip_s_rtr(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_PA_VGT_clip_s_rtr_MASK) >> VGT_DEBUG_REG1_PA_VGT_clip_s_rtr_SHIFT)
+#define VGT_DEBUG_REG1_GET_VGT_PA_clip_s_send(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_VGT_PA_clip_s_send_MASK) >> VGT_DEBUG_REG1_VGT_PA_clip_s_send_SHIFT)
+#define VGT_DEBUG_REG1_GET_PA_VGT_clip_p_rtr(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_PA_VGT_clip_p_rtr_MASK) >> VGT_DEBUG_REG1_PA_VGT_clip_p_rtr_SHIFT)
+#define VGT_DEBUG_REG1_GET_VGT_PA_clip_p_send(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_VGT_PA_clip_p_send_MASK) >> VGT_DEBUG_REG1_VGT_PA_clip_p_send_SHIFT)
+#define VGT_DEBUG_REG1_GET_PA_VGT_clip_v_rtr(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_PA_VGT_clip_v_rtr_MASK) >> VGT_DEBUG_REG1_PA_VGT_clip_v_rtr_SHIFT)
+#define VGT_DEBUG_REG1_GET_VGT_PA_clip_v_send(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_VGT_PA_clip_v_send_MASK) >> VGT_DEBUG_REG1_VGT_PA_clip_v_send_SHIFT)
+#define VGT_DEBUG_REG1_GET_SQ_VGT_rtr(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_SQ_VGT_rtr_MASK) >> VGT_DEBUG_REG1_SQ_VGT_rtr_SHIFT)
+#define VGT_DEBUG_REG1_GET_VGT_SQ_send(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_VGT_SQ_send_MASK) >> VGT_DEBUG_REG1_VGT_SQ_send_SHIFT)
+#define VGT_DEBUG_REG1_GET_mh_vgt_tag_7_q(vgt_debug_reg1) \
+ ((vgt_debug_reg1 & VGT_DEBUG_REG1_mh_vgt_tag_7_q_MASK) >> VGT_DEBUG_REG1_mh_vgt_tag_7_q_SHIFT)
+
+#define VGT_DEBUG_REG1_SET_out_te_data_read(vgt_debug_reg1_reg, out_te_data_read) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_out_te_data_read_MASK) | (out_te_data_read << VGT_DEBUG_REG1_out_te_data_read_SHIFT)
+#define VGT_DEBUG_REG1_SET_te_out_data_valid(vgt_debug_reg1_reg, te_out_data_valid) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_te_out_data_valid_MASK) | (te_out_data_valid << VGT_DEBUG_REG1_te_out_data_valid_SHIFT)
+#define VGT_DEBUG_REG1_SET_out_pt_prim_read(vgt_debug_reg1_reg, out_pt_prim_read) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_out_pt_prim_read_MASK) | (out_pt_prim_read << VGT_DEBUG_REG1_out_pt_prim_read_SHIFT)
+#define VGT_DEBUG_REG1_SET_pt_out_prim_valid(vgt_debug_reg1_reg, pt_out_prim_valid) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_pt_out_prim_valid_MASK) | (pt_out_prim_valid << VGT_DEBUG_REG1_pt_out_prim_valid_SHIFT)
+#define VGT_DEBUG_REG1_SET_out_pt_data_read(vgt_debug_reg1_reg, out_pt_data_read) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_out_pt_data_read_MASK) | (out_pt_data_read << VGT_DEBUG_REG1_out_pt_data_read_SHIFT)
+#define VGT_DEBUG_REG1_SET_pt_out_indx_valid(vgt_debug_reg1_reg, pt_out_indx_valid) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_pt_out_indx_valid_MASK) | (pt_out_indx_valid << VGT_DEBUG_REG1_pt_out_indx_valid_SHIFT)
+#define VGT_DEBUG_REG1_SET_out_vr_prim_read(vgt_debug_reg1_reg, out_vr_prim_read) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_out_vr_prim_read_MASK) | (out_vr_prim_read << VGT_DEBUG_REG1_out_vr_prim_read_SHIFT)
+#define VGT_DEBUG_REG1_SET_vr_out_prim_valid(vgt_debug_reg1_reg, vr_out_prim_valid) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_vr_out_prim_valid_MASK) | (vr_out_prim_valid << VGT_DEBUG_REG1_vr_out_prim_valid_SHIFT)
+#define VGT_DEBUG_REG1_SET_out_vr_indx_read(vgt_debug_reg1_reg, out_vr_indx_read) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_out_vr_indx_read_MASK) | (out_vr_indx_read << VGT_DEBUG_REG1_out_vr_indx_read_SHIFT)
+#define VGT_DEBUG_REG1_SET_vr_out_indx_valid(vgt_debug_reg1_reg, vr_out_indx_valid) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_vr_out_indx_valid_MASK) | (vr_out_indx_valid << VGT_DEBUG_REG1_vr_out_indx_valid_SHIFT)
+#define VGT_DEBUG_REG1_SET_te_grp_read(vgt_debug_reg1_reg, te_grp_read) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_te_grp_read_MASK) | (te_grp_read << VGT_DEBUG_REG1_te_grp_read_SHIFT)
+#define VGT_DEBUG_REG1_SET_grp_te_valid(vgt_debug_reg1_reg, grp_te_valid) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_grp_te_valid_MASK) | (grp_te_valid << VGT_DEBUG_REG1_grp_te_valid_SHIFT)
+#define VGT_DEBUG_REG1_SET_pt_grp_read(vgt_debug_reg1_reg, pt_grp_read) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_pt_grp_read_MASK) | (pt_grp_read << VGT_DEBUG_REG1_pt_grp_read_SHIFT)
+#define VGT_DEBUG_REG1_SET_grp_pt_valid(vgt_debug_reg1_reg, grp_pt_valid) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_grp_pt_valid_MASK) | (grp_pt_valid << VGT_DEBUG_REG1_grp_pt_valid_SHIFT)
+#define VGT_DEBUG_REG1_SET_vr_grp_read(vgt_debug_reg1_reg, vr_grp_read) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_vr_grp_read_MASK) | (vr_grp_read << VGT_DEBUG_REG1_vr_grp_read_SHIFT)
+#define VGT_DEBUG_REG1_SET_grp_vr_valid(vgt_debug_reg1_reg, grp_vr_valid) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_grp_vr_valid_MASK) | (grp_vr_valid << VGT_DEBUG_REG1_grp_vr_valid_SHIFT)
+#define VGT_DEBUG_REG1_SET_grp_dma_read(vgt_debug_reg1_reg, grp_dma_read) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_grp_dma_read_MASK) | (grp_dma_read << VGT_DEBUG_REG1_grp_dma_read_SHIFT)
+#define VGT_DEBUG_REG1_SET_dma_grp_valid(vgt_debug_reg1_reg, dma_grp_valid) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_dma_grp_valid_MASK) | (dma_grp_valid << VGT_DEBUG_REG1_dma_grp_valid_SHIFT)
+#define VGT_DEBUG_REG1_SET_grp_rbiu_di_read(vgt_debug_reg1_reg, grp_rbiu_di_read) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_grp_rbiu_di_read_MASK) | (grp_rbiu_di_read << VGT_DEBUG_REG1_grp_rbiu_di_read_SHIFT)
+#define VGT_DEBUG_REG1_SET_rbiu_grp_di_valid(vgt_debug_reg1_reg, rbiu_grp_di_valid) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_rbiu_grp_di_valid_MASK) | (rbiu_grp_di_valid << VGT_DEBUG_REG1_rbiu_grp_di_valid_SHIFT)
+#define VGT_DEBUG_REG1_SET_MH_VGT_rtr(vgt_debug_reg1_reg, mh_vgt_rtr) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_MH_VGT_rtr_MASK) | (mh_vgt_rtr << VGT_DEBUG_REG1_MH_VGT_rtr_SHIFT)
+#define VGT_DEBUG_REG1_SET_VGT_MH_send(vgt_debug_reg1_reg, vgt_mh_send) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_VGT_MH_send_MASK) | (vgt_mh_send << VGT_DEBUG_REG1_VGT_MH_send_SHIFT)
+#define VGT_DEBUG_REG1_SET_PA_VGT_clip_s_rtr(vgt_debug_reg1_reg, pa_vgt_clip_s_rtr) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_PA_VGT_clip_s_rtr_MASK) | (pa_vgt_clip_s_rtr << VGT_DEBUG_REG1_PA_VGT_clip_s_rtr_SHIFT)
+#define VGT_DEBUG_REG1_SET_VGT_PA_clip_s_send(vgt_debug_reg1_reg, vgt_pa_clip_s_send) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_VGT_PA_clip_s_send_MASK) | (vgt_pa_clip_s_send << VGT_DEBUG_REG1_VGT_PA_clip_s_send_SHIFT)
+#define VGT_DEBUG_REG1_SET_PA_VGT_clip_p_rtr(vgt_debug_reg1_reg, pa_vgt_clip_p_rtr) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_PA_VGT_clip_p_rtr_MASK) | (pa_vgt_clip_p_rtr << VGT_DEBUG_REG1_PA_VGT_clip_p_rtr_SHIFT)
+#define VGT_DEBUG_REG1_SET_VGT_PA_clip_p_send(vgt_debug_reg1_reg, vgt_pa_clip_p_send) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_VGT_PA_clip_p_send_MASK) | (vgt_pa_clip_p_send << VGT_DEBUG_REG1_VGT_PA_clip_p_send_SHIFT)
+#define VGT_DEBUG_REG1_SET_PA_VGT_clip_v_rtr(vgt_debug_reg1_reg, pa_vgt_clip_v_rtr) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_PA_VGT_clip_v_rtr_MASK) | (pa_vgt_clip_v_rtr << VGT_DEBUG_REG1_PA_VGT_clip_v_rtr_SHIFT)
+#define VGT_DEBUG_REG1_SET_VGT_PA_clip_v_send(vgt_debug_reg1_reg, vgt_pa_clip_v_send) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_VGT_PA_clip_v_send_MASK) | (vgt_pa_clip_v_send << VGT_DEBUG_REG1_VGT_PA_clip_v_send_SHIFT)
+#define VGT_DEBUG_REG1_SET_SQ_VGT_rtr(vgt_debug_reg1_reg, sq_vgt_rtr) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_SQ_VGT_rtr_MASK) | (sq_vgt_rtr << VGT_DEBUG_REG1_SQ_VGT_rtr_SHIFT)
+#define VGT_DEBUG_REG1_SET_VGT_SQ_send(vgt_debug_reg1_reg, vgt_sq_send) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_VGT_SQ_send_MASK) | (vgt_sq_send << VGT_DEBUG_REG1_VGT_SQ_send_SHIFT)
+#define VGT_DEBUG_REG1_SET_mh_vgt_tag_7_q(vgt_debug_reg1_reg, mh_vgt_tag_7_q) \
+ vgt_debug_reg1_reg = (vgt_debug_reg1_reg & ~VGT_DEBUG_REG1_mh_vgt_tag_7_q_MASK) | (mh_vgt_tag_7_q << VGT_DEBUG_REG1_mh_vgt_tag_7_q_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg1_t {
+ unsigned int out_te_data_read : VGT_DEBUG_REG1_out_te_data_read_SIZE;
+ unsigned int te_out_data_valid : VGT_DEBUG_REG1_te_out_data_valid_SIZE;
+ unsigned int out_pt_prim_read : VGT_DEBUG_REG1_out_pt_prim_read_SIZE;
+ unsigned int pt_out_prim_valid : VGT_DEBUG_REG1_pt_out_prim_valid_SIZE;
+ unsigned int out_pt_data_read : VGT_DEBUG_REG1_out_pt_data_read_SIZE;
+ unsigned int pt_out_indx_valid : VGT_DEBUG_REG1_pt_out_indx_valid_SIZE;
+ unsigned int out_vr_prim_read : VGT_DEBUG_REG1_out_vr_prim_read_SIZE;
+ unsigned int vr_out_prim_valid : VGT_DEBUG_REG1_vr_out_prim_valid_SIZE;
+ unsigned int out_vr_indx_read : VGT_DEBUG_REG1_out_vr_indx_read_SIZE;
+ unsigned int vr_out_indx_valid : VGT_DEBUG_REG1_vr_out_indx_valid_SIZE;
+ unsigned int te_grp_read : VGT_DEBUG_REG1_te_grp_read_SIZE;
+ unsigned int grp_te_valid : VGT_DEBUG_REG1_grp_te_valid_SIZE;
+ unsigned int pt_grp_read : VGT_DEBUG_REG1_pt_grp_read_SIZE;
+ unsigned int grp_pt_valid : VGT_DEBUG_REG1_grp_pt_valid_SIZE;
+ unsigned int vr_grp_read : VGT_DEBUG_REG1_vr_grp_read_SIZE;
+ unsigned int grp_vr_valid : VGT_DEBUG_REG1_grp_vr_valid_SIZE;
+ unsigned int grp_dma_read : VGT_DEBUG_REG1_grp_dma_read_SIZE;
+ unsigned int dma_grp_valid : VGT_DEBUG_REG1_dma_grp_valid_SIZE;
+ unsigned int grp_rbiu_di_read : VGT_DEBUG_REG1_grp_rbiu_di_read_SIZE;
+ unsigned int rbiu_grp_di_valid : VGT_DEBUG_REG1_rbiu_grp_di_valid_SIZE;
+ unsigned int mh_vgt_rtr : VGT_DEBUG_REG1_MH_VGT_rtr_SIZE;
+ unsigned int vgt_mh_send : VGT_DEBUG_REG1_VGT_MH_send_SIZE;
+ unsigned int pa_vgt_clip_s_rtr : VGT_DEBUG_REG1_PA_VGT_clip_s_rtr_SIZE;
+ unsigned int vgt_pa_clip_s_send : VGT_DEBUG_REG1_VGT_PA_clip_s_send_SIZE;
+ unsigned int pa_vgt_clip_p_rtr : VGT_DEBUG_REG1_PA_VGT_clip_p_rtr_SIZE;
+ unsigned int vgt_pa_clip_p_send : VGT_DEBUG_REG1_VGT_PA_clip_p_send_SIZE;
+ unsigned int pa_vgt_clip_v_rtr : VGT_DEBUG_REG1_PA_VGT_clip_v_rtr_SIZE;
+ unsigned int vgt_pa_clip_v_send : VGT_DEBUG_REG1_VGT_PA_clip_v_send_SIZE;
+ unsigned int sq_vgt_rtr : VGT_DEBUG_REG1_SQ_VGT_rtr_SIZE;
+ unsigned int vgt_sq_send : VGT_DEBUG_REG1_VGT_SQ_send_SIZE;
+ unsigned int mh_vgt_tag_7_q : VGT_DEBUG_REG1_mh_vgt_tag_7_q_SIZE;
+ unsigned int : 1;
+ } vgt_debug_reg1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg1_t {
+ unsigned int : 1;
+ unsigned int mh_vgt_tag_7_q : VGT_DEBUG_REG1_mh_vgt_tag_7_q_SIZE;
+ unsigned int vgt_sq_send : VGT_DEBUG_REG1_VGT_SQ_send_SIZE;
+ unsigned int sq_vgt_rtr : VGT_DEBUG_REG1_SQ_VGT_rtr_SIZE;
+ unsigned int vgt_pa_clip_v_send : VGT_DEBUG_REG1_VGT_PA_clip_v_send_SIZE;
+ unsigned int pa_vgt_clip_v_rtr : VGT_DEBUG_REG1_PA_VGT_clip_v_rtr_SIZE;
+ unsigned int vgt_pa_clip_p_send : VGT_DEBUG_REG1_VGT_PA_clip_p_send_SIZE;
+ unsigned int pa_vgt_clip_p_rtr : VGT_DEBUG_REG1_PA_VGT_clip_p_rtr_SIZE;
+ unsigned int vgt_pa_clip_s_send : VGT_DEBUG_REG1_VGT_PA_clip_s_send_SIZE;
+ unsigned int pa_vgt_clip_s_rtr : VGT_DEBUG_REG1_PA_VGT_clip_s_rtr_SIZE;
+ unsigned int vgt_mh_send : VGT_DEBUG_REG1_VGT_MH_send_SIZE;
+ unsigned int mh_vgt_rtr : VGT_DEBUG_REG1_MH_VGT_rtr_SIZE;
+ unsigned int rbiu_grp_di_valid : VGT_DEBUG_REG1_rbiu_grp_di_valid_SIZE;
+ unsigned int grp_rbiu_di_read : VGT_DEBUG_REG1_grp_rbiu_di_read_SIZE;
+ unsigned int dma_grp_valid : VGT_DEBUG_REG1_dma_grp_valid_SIZE;
+ unsigned int grp_dma_read : VGT_DEBUG_REG1_grp_dma_read_SIZE;
+ unsigned int grp_vr_valid : VGT_DEBUG_REG1_grp_vr_valid_SIZE;
+ unsigned int vr_grp_read : VGT_DEBUG_REG1_vr_grp_read_SIZE;
+ unsigned int grp_pt_valid : VGT_DEBUG_REG1_grp_pt_valid_SIZE;
+ unsigned int pt_grp_read : VGT_DEBUG_REG1_pt_grp_read_SIZE;
+ unsigned int grp_te_valid : VGT_DEBUG_REG1_grp_te_valid_SIZE;
+ unsigned int te_grp_read : VGT_DEBUG_REG1_te_grp_read_SIZE;
+ unsigned int vr_out_indx_valid : VGT_DEBUG_REG1_vr_out_indx_valid_SIZE;
+ unsigned int out_vr_indx_read : VGT_DEBUG_REG1_out_vr_indx_read_SIZE;
+ unsigned int vr_out_prim_valid : VGT_DEBUG_REG1_vr_out_prim_valid_SIZE;
+ unsigned int out_vr_prim_read : VGT_DEBUG_REG1_out_vr_prim_read_SIZE;
+ unsigned int pt_out_indx_valid : VGT_DEBUG_REG1_pt_out_indx_valid_SIZE;
+ unsigned int out_pt_data_read : VGT_DEBUG_REG1_out_pt_data_read_SIZE;
+ unsigned int pt_out_prim_valid : VGT_DEBUG_REG1_pt_out_prim_valid_SIZE;
+ unsigned int out_pt_prim_read : VGT_DEBUG_REG1_out_pt_prim_read_SIZE;
+ unsigned int te_out_data_valid : VGT_DEBUG_REG1_te_out_data_valid_SIZE;
+ unsigned int out_te_data_read : VGT_DEBUG_REG1_out_te_data_read_SIZE;
+ } vgt_debug_reg1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_reg1_t f;
+} vgt_debug_reg1_u;
+
+
+/*
+ * VGT_DEBUG_REG3 struct
+ */
+
+#define VGT_DEBUG_REG3_vgt_clk_en_SIZE 1
+#define VGT_DEBUG_REG3_reg_fifos_clk_en_SIZE 1
+
+#define VGT_DEBUG_REG3_vgt_clk_en_SHIFT 0
+#define VGT_DEBUG_REG3_reg_fifos_clk_en_SHIFT 1
+
+#define VGT_DEBUG_REG3_vgt_clk_en_MASK 0x00000001
+#define VGT_DEBUG_REG3_reg_fifos_clk_en_MASK 0x00000002
+
+#define VGT_DEBUG_REG3_MASK \
+ (VGT_DEBUG_REG3_vgt_clk_en_MASK | \
+ VGT_DEBUG_REG3_reg_fifos_clk_en_MASK)
+
+#define VGT_DEBUG_REG3(vgt_clk_en, reg_fifos_clk_en) \
+ ((vgt_clk_en << VGT_DEBUG_REG3_vgt_clk_en_SHIFT) | \
+ (reg_fifos_clk_en << VGT_DEBUG_REG3_reg_fifos_clk_en_SHIFT))
+
+#define VGT_DEBUG_REG3_GET_vgt_clk_en(vgt_debug_reg3) \
+ ((vgt_debug_reg3 & VGT_DEBUG_REG3_vgt_clk_en_MASK) >> VGT_DEBUG_REG3_vgt_clk_en_SHIFT)
+#define VGT_DEBUG_REG3_GET_reg_fifos_clk_en(vgt_debug_reg3) \
+ ((vgt_debug_reg3 & VGT_DEBUG_REG3_reg_fifos_clk_en_MASK) >> VGT_DEBUG_REG3_reg_fifos_clk_en_SHIFT)
+
+#define VGT_DEBUG_REG3_SET_vgt_clk_en(vgt_debug_reg3_reg, vgt_clk_en) \
+ vgt_debug_reg3_reg = (vgt_debug_reg3_reg & ~VGT_DEBUG_REG3_vgt_clk_en_MASK) | (vgt_clk_en << VGT_DEBUG_REG3_vgt_clk_en_SHIFT)
+#define VGT_DEBUG_REG3_SET_reg_fifos_clk_en(vgt_debug_reg3_reg, reg_fifos_clk_en) \
+ vgt_debug_reg3_reg = (vgt_debug_reg3_reg & ~VGT_DEBUG_REG3_reg_fifos_clk_en_MASK) | (reg_fifos_clk_en << VGT_DEBUG_REG3_reg_fifos_clk_en_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg3_t {
+ unsigned int vgt_clk_en : VGT_DEBUG_REG3_vgt_clk_en_SIZE;
+ unsigned int reg_fifos_clk_en : VGT_DEBUG_REG3_reg_fifos_clk_en_SIZE;
+ unsigned int : 30;
+ } vgt_debug_reg3_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg3_t {
+ unsigned int : 30;
+ unsigned int reg_fifos_clk_en : VGT_DEBUG_REG3_reg_fifos_clk_en_SIZE;
+ unsigned int vgt_clk_en : VGT_DEBUG_REG3_vgt_clk_en_SIZE;
+ } vgt_debug_reg3_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_reg3_t f;
+} vgt_debug_reg3_u;
+
+
+/*
+ * VGT_DEBUG_REG6 struct
+ */
+
+#define VGT_DEBUG_REG6_shifter_byte_count_q_SIZE 5
+#define VGT_DEBUG_REG6_right_word_indx_q_SIZE 5
+#define VGT_DEBUG_REG6_input_data_valid_SIZE 1
+#define VGT_DEBUG_REG6_input_data_xfer_SIZE 1
+#define VGT_DEBUG_REG6_next_shift_is_vect_1_q_SIZE 1
+#define VGT_DEBUG_REG6_next_shift_is_vect_1_d_SIZE 1
+#define VGT_DEBUG_REG6_next_shift_is_vect_1_pre_d_SIZE 1
+#define VGT_DEBUG_REG6_space_avail_from_shift_SIZE 1
+#define VGT_DEBUG_REG6_shifter_first_load_SIZE 1
+#define VGT_DEBUG_REG6_di_state_sel_q_SIZE 1
+#define VGT_DEBUG_REG6_shifter_waiting_for_first_load_q_SIZE 1
+#define VGT_DEBUG_REG6_di_first_group_flag_q_SIZE 1
+#define VGT_DEBUG_REG6_di_event_flag_q_SIZE 1
+#define VGT_DEBUG_REG6_read_draw_initiator_SIZE 1
+#define VGT_DEBUG_REG6_loading_di_requires_shifter_SIZE 1
+#define VGT_DEBUG_REG6_last_shift_of_packet_SIZE 1
+#define VGT_DEBUG_REG6_last_decr_of_packet_SIZE 1
+#define VGT_DEBUG_REG6_extract_vector_SIZE 1
+#define VGT_DEBUG_REG6_shift_vect_rtr_SIZE 1
+#define VGT_DEBUG_REG6_destination_rtr_SIZE 1
+#define VGT_DEBUG_REG6_grp_trigger_SIZE 1
+
+#define VGT_DEBUG_REG6_shifter_byte_count_q_SHIFT 0
+#define VGT_DEBUG_REG6_right_word_indx_q_SHIFT 5
+#define VGT_DEBUG_REG6_input_data_valid_SHIFT 10
+#define VGT_DEBUG_REG6_input_data_xfer_SHIFT 11
+#define VGT_DEBUG_REG6_next_shift_is_vect_1_q_SHIFT 12
+#define VGT_DEBUG_REG6_next_shift_is_vect_1_d_SHIFT 13
+#define VGT_DEBUG_REG6_next_shift_is_vect_1_pre_d_SHIFT 14
+#define VGT_DEBUG_REG6_space_avail_from_shift_SHIFT 15
+#define VGT_DEBUG_REG6_shifter_first_load_SHIFT 16
+#define VGT_DEBUG_REG6_di_state_sel_q_SHIFT 17
+#define VGT_DEBUG_REG6_shifter_waiting_for_first_load_q_SHIFT 18
+#define VGT_DEBUG_REG6_di_first_group_flag_q_SHIFT 19
+#define VGT_DEBUG_REG6_di_event_flag_q_SHIFT 20
+#define VGT_DEBUG_REG6_read_draw_initiator_SHIFT 21
+#define VGT_DEBUG_REG6_loading_di_requires_shifter_SHIFT 22
+#define VGT_DEBUG_REG6_last_shift_of_packet_SHIFT 23
+#define VGT_DEBUG_REG6_last_decr_of_packet_SHIFT 24
+#define VGT_DEBUG_REG6_extract_vector_SHIFT 25
+#define VGT_DEBUG_REG6_shift_vect_rtr_SHIFT 26
+#define VGT_DEBUG_REG6_destination_rtr_SHIFT 27
+#define VGT_DEBUG_REG6_grp_trigger_SHIFT 28
+
+#define VGT_DEBUG_REG6_shifter_byte_count_q_MASK 0x0000001f
+#define VGT_DEBUG_REG6_right_word_indx_q_MASK 0x000003e0
+#define VGT_DEBUG_REG6_input_data_valid_MASK 0x00000400
+#define VGT_DEBUG_REG6_input_data_xfer_MASK 0x00000800
+#define VGT_DEBUG_REG6_next_shift_is_vect_1_q_MASK 0x00001000
+#define VGT_DEBUG_REG6_next_shift_is_vect_1_d_MASK 0x00002000
+#define VGT_DEBUG_REG6_next_shift_is_vect_1_pre_d_MASK 0x00004000
+#define VGT_DEBUG_REG6_space_avail_from_shift_MASK 0x00008000
+#define VGT_DEBUG_REG6_shifter_first_load_MASK 0x00010000
+#define VGT_DEBUG_REG6_di_state_sel_q_MASK 0x00020000
+#define VGT_DEBUG_REG6_shifter_waiting_for_first_load_q_MASK 0x00040000
+#define VGT_DEBUG_REG6_di_first_group_flag_q_MASK 0x00080000
+#define VGT_DEBUG_REG6_di_event_flag_q_MASK 0x00100000
+#define VGT_DEBUG_REG6_read_draw_initiator_MASK 0x00200000
+#define VGT_DEBUG_REG6_loading_di_requires_shifter_MASK 0x00400000
+#define VGT_DEBUG_REG6_last_shift_of_packet_MASK 0x00800000
+#define VGT_DEBUG_REG6_last_decr_of_packet_MASK 0x01000000
+#define VGT_DEBUG_REG6_extract_vector_MASK 0x02000000
+#define VGT_DEBUG_REG6_shift_vect_rtr_MASK 0x04000000
+#define VGT_DEBUG_REG6_destination_rtr_MASK 0x08000000
+#define VGT_DEBUG_REG6_grp_trigger_MASK 0x10000000
+
+#define VGT_DEBUG_REG6_MASK \
+ (VGT_DEBUG_REG6_shifter_byte_count_q_MASK | \
+ VGT_DEBUG_REG6_right_word_indx_q_MASK | \
+ VGT_DEBUG_REG6_input_data_valid_MASK | \
+ VGT_DEBUG_REG6_input_data_xfer_MASK | \
+ VGT_DEBUG_REG6_next_shift_is_vect_1_q_MASK | \
+ VGT_DEBUG_REG6_next_shift_is_vect_1_d_MASK | \
+ VGT_DEBUG_REG6_next_shift_is_vect_1_pre_d_MASK | \
+ VGT_DEBUG_REG6_space_avail_from_shift_MASK | \
+ VGT_DEBUG_REG6_shifter_first_load_MASK | \
+ VGT_DEBUG_REG6_di_state_sel_q_MASK | \
+ VGT_DEBUG_REG6_shifter_waiting_for_first_load_q_MASK | \
+ VGT_DEBUG_REG6_di_first_group_flag_q_MASK | \
+ VGT_DEBUG_REG6_di_event_flag_q_MASK | \
+ VGT_DEBUG_REG6_read_draw_initiator_MASK | \
+ VGT_DEBUG_REG6_loading_di_requires_shifter_MASK | \
+ VGT_DEBUG_REG6_last_shift_of_packet_MASK | \
+ VGT_DEBUG_REG6_last_decr_of_packet_MASK | \
+ VGT_DEBUG_REG6_extract_vector_MASK | \
+ VGT_DEBUG_REG6_shift_vect_rtr_MASK | \
+ VGT_DEBUG_REG6_destination_rtr_MASK | \
+ VGT_DEBUG_REG6_grp_trigger_MASK)
+
+#define VGT_DEBUG_REG6(shifter_byte_count_q, right_word_indx_q, input_data_valid, input_data_xfer, next_shift_is_vect_1_q, next_shift_is_vect_1_d, next_shift_is_vect_1_pre_d, space_avail_from_shift, shifter_first_load, di_state_sel_q, shifter_waiting_for_first_load_q, di_first_group_flag_q, di_event_flag_q, read_draw_initiator, loading_di_requires_shifter, last_shift_of_packet, last_decr_of_packet, extract_vector, shift_vect_rtr, destination_rtr, grp_trigger) \
+ ((shifter_byte_count_q << VGT_DEBUG_REG6_shifter_byte_count_q_SHIFT) | \
+ (right_word_indx_q << VGT_DEBUG_REG6_right_word_indx_q_SHIFT) | \
+ (input_data_valid << VGT_DEBUG_REG6_input_data_valid_SHIFT) | \
+ (input_data_xfer << VGT_DEBUG_REG6_input_data_xfer_SHIFT) | \
+ (next_shift_is_vect_1_q << VGT_DEBUG_REG6_next_shift_is_vect_1_q_SHIFT) | \
+ (next_shift_is_vect_1_d << VGT_DEBUG_REG6_next_shift_is_vect_1_d_SHIFT) | \
+ (next_shift_is_vect_1_pre_d << VGT_DEBUG_REG6_next_shift_is_vect_1_pre_d_SHIFT) | \
+ (space_avail_from_shift << VGT_DEBUG_REG6_space_avail_from_shift_SHIFT) | \
+ (shifter_first_load << VGT_DEBUG_REG6_shifter_first_load_SHIFT) | \
+ (di_state_sel_q << VGT_DEBUG_REG6_di_state_sel_q_SHIFT) | \
+ (shifter_waiting_for_first_load_q << VGT_DEBUG_REG6_shifter_waiting_for_first_load_q_SHIFT) | \
+ (di_first_group_flag_q << VGT_DEBUG_REG6_di_first_group_flag_q_SHIFT) | \
+ (di_event_flag_q << VGT_DEBUG_REG6_di_event_flag_q_SHIFT) | \
+ (read_draw_initiator << VGT_DEBUG_REG6_read_draw_initiator_SHIFT) | \
+ (loading_di_requires_shifter << VGT_DEBUG_REG6_loading_di_requires_shifter_SHIFT) | \
+ (last_shift_of_packet << VGT_DEBUG_REG6_last_shift_of_packet_SHIFT) | \
+ (last_decr_of_packet << VGT_DEBUG_REG6_last_decr_of_packet_SHIFT) | \
+ (extract_vector << VGT_DEBUG_REG6_extract_vector_SHIFT) | \
+ (shift_vect_rtr << VGT_DEBUG_REG6_shift_vect_rtr_SHIFT) | \
+ (destination_rtr << VGT_DEBUG_REG6_destination_rtr_SHIFT) | \
+ (grp_trigger << VGT_DEBUG_REG6_grp_trigger_SHIFT))
+
+#define VGT_DEBUG_REG6_GET_shifter_byte_count_q(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_shifter_byte_count_q_MASK) >> VGT_DEBUG_REG6_shifter_byte_count_q_SHIFT)
+#define VGT_DEBUG_REG6_GET_right_word_indx_q(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_right_word_indx_q_MASK) >> VGT_DEBUG_REG6_right_word_indx_q_SHIFT)
+#define VGT_DEBUG_REG6_GET_input_data_valid(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_input_data_valid_MASK) >> VGT_DEBUG_REG6_input_data_valid_SHIFT)
+#define VGT_DEBUG_REG6_GET_input_data_xfer(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_input_data_xfer_MASK) >> VGT_DEBUG_REG6_input_data_xfer_SHIFT)
+#define VGT_DEBUG_REG6_GET_next_shift_is_vect_1_q(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_next_shift_is_vect_1_q_MASK) >> VGT_DEBUG_REG6_next_shift_is_vect_1_q_SHIFT)
+#define VGT_DEBUG_REG6_GET_next_shift_is_vect_1_d(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_next_shift_is_vect_1_d_MASK) >> VGT_DEBUG_REG6_next_shift_is_vect_1_d_SHIFT)
+#define VGT_DEBUG_REG6_GET_next_shift_is_vect_1_pre_d(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_next_shift_is_vect_1_pre_d_MASK) >> VGT_DEBUG_REG6_next_shift_is_vect_1_pre_d_SHIFT)
+#define VGT_DEBUG_REG6_GET_space_avail_from_shift(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_space_avail_from_shift_MASK) >> VGT_DEBUG_REG6_space_avail_from_shift_SHIFT)
+#define VGT_DEBUG_REG6_GET_shifter_first_load(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_shifter_first_load_MASK) >> VGT_DEBUG_REG6_shifter_first_load_SHIFT)
+#define VGT_DEBUG_REG6_GET_di_state_sel_q(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_di_state_sel_q_MASK) >> VGT_DEBUG_REG6_di_state_sel_q_SHIFT)
+#define VGT_DEBUG_REG6_GET_shifter_waiting_for_first_load_q(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_shifter_waiting_for_first_load_q_MASK) >> VGT_DEBUG_REG6_shifter_waiting_for_first_load_q_SHIFT)
+#define VGT_DEBUG_REG6_GET_di_first_group_flag_q(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_di_first_group_flag_q_MASK) >> VGT_DEBUG_REG6_di_first_group_flag_q_SHIFT)
+#define VGT_DEBUG_REG6_GET_di_event_flag_q(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_di_event_flag_q_MASK) >> VGT_DEBUG_REG6_di_event_flag_q_SHIFT)
+#define VGT_DEBUG_REG6_GET_read_draw_initiator(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_read_draw_initiator_MASK) >> VGT_DEBUG_REG6_read_draw_initiator_SHIFT)
+#define VGT_DEBUG_REG6_GET_loading_di_requires_shifter(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_loading_di_requires_shifter_MASK) >> VGT_DEBUG_REG6_loading_di_requires_shifter_SHIFT)
+#define VGT_DEBUG_REG6_GET_last_shift_of_packet(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_last_shift_of_packet_MASK) >> VGT_DEBUG_REG6_last_shift_of_packet_SHIFT)
+#define VGT_DEBUG_REG6_GET_last_decr_of_packet(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_last_decr_of_packet_MASK) >> VGT_DEBUG_REG6_last_decr_of_packet_SHIFT)
+#define VGT_DEBUG_REG6_GET_extract_vector(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_extract_vector_MASK) >> VGT_DEBUG_REG6_extract_vector_SHIFT)
+#define VGT_DEBUG_REG6_GET_shift_vect_rtr(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_shift_vect_rtr_MASK) >> VGT_DEBUG_REG6_shift_vect_rtr_SHIFT)
+#define VGT_DEBUG_REG6_GET_destination_rtr(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_destination_rtr_MASK) >> VGT_DEBUG_REG6_destination_rtr_SHIFT)
+#define VGT_DEBUG_REG6_GET_grp_trigger(vgt_debug_reg6) \
+ ((vgt_debug_reg6 & VGT_DEBUG_REG6_grp_trigger_MASK) >> VGT_DEBUG_REG6_grp_trigger_SHIFT)
+
+#define VGT_DEBUG_REG6_SET_shifter_byte_count_q(vgt_debug_reg6_reg, shifter_byte_count_q) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_shifter_byte_count_q_MASK) | (shifter_byte_count_q << VGT_DEBUG_REG6_shifter_byte_count_q_SHIFT)
+#define VGT_DEBUG_REG6_SET_right_word_indx_q(vgt_debug_reg6_reg, right_word_indx_q) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_right_word_indx_q_MASK) | (right_word_indx_q << VGT_DEBUG_REG6_right_word_indx_q_SHIFT)
+#define VGT_DEBUG_REG6_SET_input_data_valid(vgt_debug_reg6_reg, input_data_valid) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_input_data_valid_MASK) | (input_data_valid << VGT_DEBUG_REG6_input_data_valid_SHIFT)
+#define VGT_DEBUG_REG6_SET_input_data_xfer(vgt_debug_reg6_reg, input_data_xfer) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_input_data_xfer_MASK) | (input_data_xfer << VGT_DEBUG_REG6_input_data_xfer_SHIFT)
+#define VGT_DEBUG_REG6_SET_next_shift_is_vect_1_q(vgt_debug_reg6_reg, next_shift_is_vect_1_q) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_next_shift_is_vect_1_q_MASK) | (next_shift_is_vect_1_q << VGT_DEBUG_REG6_next_shift_is_vect_1_q_SHIFT)
+#define VGT_DEBUG_REG6_SET_next_shift_is_vect_1_d(vgt_debug_reg6_reg, next_shift_is_vect_1_d) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_next_shift_is_vect_1_d_MASK) | (next_shift_is_vect_1_d << VGT_DEBUG_REG6_next_shift_is_vect_1_d_SHIFT)
+#define VGT_DEBUG_REG6_SET_next_shift_is_vect_1_pre_d(vgt_debug_reg6_reg, next_shift_is_vect_1_pre_d) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_next_shift_is_vect_1_pre_d_MASK) | (next_shift_is_vect_1_pre_d << VGT_DEBUG_REG6_next_shift_is_vect_1_pre_d_SHIFT)
+#define VGT_DEBUG_REG6_SET_space_avail_from_shift(vgt_debug_reg6_reg, space_avail_from_shift) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_space_avail_from_shift_MASK) | (space_avail_from_shift << VGT_DEBUG_REG6_space_avail_from_shift_SHIFT)
+#define VGT_DEBUG_REG6_SET_shifter_first_load(vgt_debug_reg6_reg, shifter_first_load) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_shifter_first_load_MASK) | (shifter_first_load << VGT_DEBUG_REG6_shifter_first_load_SHIFT)
+#define VGT_DEBUG_REG6_SET_di_state_sel_q(vgt_debug_reg6_reg, di_state_sel_q) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_di_state_sel_q_MASK) | (di_state_sel_q << VGT_DEBUG_REG6_di_state_sel_q_SHIFT)
+#define VGT_DEBUG_REG6_SET_shifter_waiting_for_first_load_q(vgt_debug_reg6_reg, shifter_waiting_for_first_load_q) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_shifter_waiting_for_first_load_q_MASK) | (shifter_waiting_for_first_load_q << VGT_DEBUG_REG6_shifter_waiting_for_first_load_q_SHIFT)
+#define VGT_DEBUG_REG6_SET_di_first_group_flag_q(vgt_debug_reg6_reg, di_first_group_flag_q) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_di_first_group_flag_q_MASK) | (di_first_group_flag_q << VGT_DEBUG_REG6_di_first_group_flag_q_SHIFT)
+#define VGT_DEBUG_REG6_SET_di_event_flag_q(vgt_debug_reg6_reg, di_event_flag_q) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_di_event_flag_q_MASK) | (di_event_flag_q << VGT_DEBUG_REG6_di_event_flag_q_SHIFT)
+#define VGT_DEBUG_REG6_SET_read_draw_initiator(vgt_debug_reg6_reg, read_draw_initiator) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_read_draw_initiator_MASK) | (read_draw_initiator << VGT_DEBUG_REG6_read_draw_initiator_SHIFT)
+#define VGT_DEBUG_REG6_SET_loading_di_requires_shifter(vgt_debug_reg6_reg, loading_di_requires_shifter) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_loading_di_requires_shifter_MASK) | (loading_di_requires_shifter << VGT_DEBUG_REG6_loading_di_requires_shifter_SHIFT)
+#define VGT_DEBUG_REG6_SET_last_shift_of_packet(vgt_debug_reg6_reg, last_shift_of_packet) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_last_shift_of_packet_MASK) | (last_shift_of_packet << VGT_DEBUG_REG6_last_shift_of_packet_SHIFT)
+#define VGT_DEBUG_REG6_SET_last_decr_of_packet(vgt_debug_reg6_reg, last_decr_of_packet) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_last_decr_of_packet_MASK) | (last_decr_of_packet << VGT_DEBUG_REG6_last_decr_of_packet_SHIFT)
+#define VGT_DEBUG_REG6_SET_extract_vector(vgt_debug_reg6_reg, extract_vector) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_extract_vector_MASK) | (extract_vector << VGT_DEBUG_REG6_extract_vector_SHIFT)
+#define VGT_DEBUG_REG6_SET_shift_vect_rtr(vgt_debug_reg6_reg, shift_vect_rtr) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_shift_vect_rtr_MASK) | (shift_vect_rtr << VGT_DEBUG_REG6_shift_vect_rtr_SHIFT)
+#define VGT_DEBUG_REG6_SET_destination_rtr(vgt_debug_reg6_reg, destination_rtr) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_destination_rtr_MASK) | (destination_rtr << VGT_DEBUG_REG6_destination_rtr_SHIFT)
+#define VGT_DEBUG_REG6_SET_grp_trigger(vgt_debug_reg6_reg, grp_trigger) \
+ vgt_debug_reg6_reg = (vgt_debug_reg6_reg & ~VGT_DEBUG_REG6_grp_trigger_MASK) | (grp_trigger << VGT_DEBUG_REG6_grp_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg6_t {
+ unsigned int shifter_byte_count_q : VGT_DEBUG_REG6_shifter_byte_count_q_SIZE;
+ unsigned int right_word_indx_q : VGT_DEBUG_REG6_right_word_indx_q_SIZE;
+ unsigned int input_data_valid : VGT_DEBUG_REG6_input_data_valid_SIZE;
+ unsigned int input_data_xfer : VGT_DEBUG_REG6_input_data_xfer_SIZE;
+ unsigned int next_shift_is_vect_1_q : VGT_DEBUG_REG6_next_shift_is_vect_1_q_SIZE;
+ unsigned int next_shift_is_vect_1_d : VGT_DEBUG_REG6_next_shift_is_vect_1_d_SIZE;
+ unsigned int next_shift_is_vect_1_pre_d : VGT_DEBUG_REG6_next_shift_is_vect_1_pre_d_SIZE;
+ unsigned int space_avail_from_shift : VGT_DEBUG_REG6_space_avail_from_shift_SIZE;
+ unsigned int shifter_first_load : VGT_DEBUG_REG6_shifter_first_load_SIZE;
+ unsigned int di_state_sel_q : VGT_DEBUG_REG6_di_state_sel_q_SIZE;
+ unsigned int shifter_waiting_for_first_load_q : VGT_DEBUG_REG6_shifter_waiting_for_first_load_q_SIZE;
+ unsigned int di_first_group_flag_q : VGT_DEBUG_REG6_di_first_group_flag_q_SIZE;
+ unsigned int di_event_flag_q : VGT_DEBUG_REG6_di_event_flag_q_SIZE;
+ unsigned int read_draw_initiator : VGT_DEBUG_REG6_read_draw_initiator_SIZE;
+ unsigned int loading_di_requires_shifter : VGT_DEBUG_REG6_loading_di_requires_shifter_SIZE;
+ unsigned int last_shift_of_packet : VGT_DEBUG_REG6_last_shift_of_packet_SIZE;
+ unsigned int last_decr_of_packet : VGT_DEBUG_REG6_last_decr_of_packet_SIZE;
+ unsigned int extract_vector : VGT_DEBUG_REG6_extract_vector_SIZE;
+ unsigned int shift_vect_rtr : VGT_DEBUG_REG6_shift_vect_rtr_SIZE;
+ unsigned int destination_rtr : VGT_DEBUG_REG6_destination_rtr_SIZE;
+ unsigned int grp_trigger : VGT_DEBUG_REG6_grp_trigger_SIZE;
+ unsigned int : 3;
+ } vgt_debug_reg6_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg6_t {
+ unsigned int : 3;
+ unsigned int grp_trigger : VGT_DEBUG_REG6_grp_trigger_SIZE;
+ unsigned int destination_rtr : VGT_DEBUG_REG6_destination_rtr_SIZE;
+ unsigned int shift_vect_rtr : VGT_DEBUG_REG6_shift_vect_rtr_SIZE;
+ unsigned int extract_vector : VGT_DEBUG_REG6_extract_vector_SIZE;
+ unsigned int last_decr_of_packet : VGT_DEBUG_REG6_last_decr_of_packet_SIZE;
+ unsigned int last_shift_of_packet : VGT_DEBUG_REG6_last_shift_of_packet_SIZE;
+ unsigned int loading_di_requires_shifter : VGT_DEBUG_REG6_loading_di_requires_shifter_SIZE;
+ unsigned int read_draw_initiator : VGT_DEBUG_REG6_read_draw_initiator_SIZE;
+ unsigned int di_event_flag_q : VGT_DEBUG_REG6_di_event_flag_q_SIZE;
+ unsigned int di_first_group_flag_q : VGT_DEBUG_REG6_di_first_group_flag_q_SIZE;
+ unsigned int shifter_waiting_for_first_load_q : VGT_DEBUG_REG6_shifter_waiting_for_first_load_q_SIZE;
+ unsigned int di_state_sel_q : VGT_DEBUG_REG6_di_state_sel_q_SIZE;
+ unsigned int shifter_first_load : VGT_DEBUG_REG6_shifter_first_load_SIZE;
+ unsigned int space_avail_from_shift : VGT_DEBUG_REG6_space_avail_from_shift_SIZE;
+ unsigned int next_shift_is_vect_1_pre_d : VGT_DEBUG_REG6_next_shift_is_vect_1_pre_d_SIZE;
+ unsigned int next_shift_is_vect_1_d : VGT_DEBUG_REG6_next_shift_is_vect_1_d_SIZE;
+ unsigned int next_shift_is_vect_1_q : VGT_DEBUG_REG6_next_shift_is_vect_1_q_SIZE;
+ unsigned int input_data_xfer : VGT_DEBUG_REG6_input_data_xfer_SIZE;
+ unsigned int input_data_valid : VGT_DEBUG_REG6_input_data_valid_SIZE;
+ unsigned int right_word_indx_q : VGT_DEBUG_REG6_right_word_indx_q_SIZE;
+ unsigned int shifter_byte_count_q : VGT_DEBUG_REG6_shifter_byte_count_q_SIZE;
+ } vgt_debug_reg6_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_reg6_t f;
+} vgt_debug_reg6_u;
+
+
+/*
+ * VGT_DEBUG_REG7 struct
+ */
+
+#define VGT_DEBUG_REG7_di_index_counter_q_SIZE 16
+#define VGT_DEBUG_REG7_shift_amount_no_extract_SIZE 4
+#define VGT_DEBUG_REG7_shift_amount_extract_SIZE 4
+#define VGT_DEBUG_REG7_di_prim_type_q_SIZE 6
+#define VGT_DEBUG_REG7_current_source_sel_SIZE 2
+
+#define VGT_DEBUG_REG7_di_index_counter_q_SHIFT 0
+#define VGT_DEBUG_REG7_shift_amount_no_extract_SHIFT 16
+#define VGT_DEBUG_REG7_shift_amount_extract_SHIFT 20
+#define VGT_DEBUG_REG7_di_prim_type_q_SHIFT 24
+#define VGT_DEBUG_REG7_current_source_sel_SHIFT 30
+
+#define VGT_DEBUG_REG7_di_index_counter_q_MASK 0x0000ffff
+#define VGT_DEBUG_REG7_shift_amount_no_extract_MASK 0x000f0000
+#define VGT_DEBUG_REG7_shift_amount_extract_MASK 0x00f00000
+#define VGT_DEBUG_REG7_di_prim_type_q_MASK 0x3f000000
+#define VGT_DEBUG_REG7_current_source_sel_MASK 0xc0000000
+
+#define VGT_DEBUG_REG7_MASK \
+ (VGT_DEBUG_REG7_di_index_counter_q_MASK | \
+ VGT_DEBUG_REG7_shift_amount_no_extract_MASK | \
+ VGT_DEBUG_REG7_shift_amount_extract_MASK | \
+ VGT_DEBUG_REG7_di_prim_type_q_MASK | \
+ VGT_DEBUG_REG7_current_source_sel_MASK)
+
+#define VGT_DEBUG_REG7(di_index_counter_q, shift_amount_no_extract, shift_amount_extract, di_prim_type_q, current_source_sel) \
+ ((di_index_counter_q << VGT_DEBUG_REG7_di_index_counter_q_SHIFT) | \
+ (shift_amount_no_extract << VGT_DEBUG_REG7_shift_amount_no_extract_SHIFT) | \
+ (shift_amount_extract << VGT_DEBUG_REG7_shift_amount_extract_SHIFT) | \
+ (di_prim_type_q << VGT_DEBUG_REG7_di_prim_type_q_SHIFT) | \
+ (current_source_sel << VGT_DEBUG_REG7_current_source_sel_SHIFT))
+
+#define VGT_DEBUG_REG7_GET_di_index_counter_q(vgt_debug_reg7) \
+ ((vgt_debug_reg7 & VGT_DEBUG_REG7_di_index_counter_q_MASK) >> VGT_DEBUG_REG7_di_index_counter_q_SHIFT)
+#define VGT_DEBUG_REG7_GET_shift_amount_no_extract(vgt_debug_reg7) \
+ ((vgt_debug_reg7 & VGT_DEBUG_REG7_shift_amount_no_extract_MASK) >> VGT_DEBUG_REG7_shift_amount_no_extract_SHIFT)
+#define VGT_DEBUG_REG7_GET_shift_amount_extract(vgt_debug_reg7) \
+ ((vgt_debug_reg7 & VGT_DEBUG_REG7_shift_amount_extract_MASK) >> VGT_DEBUG_REG7_shift_amount_extract_SHIFT)
+#define VGT_DEBUG_REG7_GET_di_prim_type_q(vgt_debug_reg7) \
+ ((vgt_debug_reg7 & VGT_DEBUG_REG7_di_prim_type_q_MASK) >> VGT_DEBUG_REG7_di_prim_type_q_SHIFT)
+#define VGT_DEBUG_REG7_GET_current_source_sel(vgt_debug_reg7) \
+ ((vgt_debug_reg7 & VGT_DEBUG_REG7_current_source_sel_MASK) >> VGT_DEBUG_REG7_current_source_sel_SHIFT)
+
+#define VGT_DEBUG_REG7_SET_di_index_counter_q(vgt_debug_reg7_reg, di_index_counter_q) \
+ vgt_debug_reg7_reg = (vgt_debug_reg7_reg & ~VGT_DEBUG_REG7_di_index_counter_q_MASK) | (di_index_counter_q << VGT_DEBUG_REG7_di_index_counter_q_SHIFT)
+#define VGT_DEBUG_REG7_SET_shift_amount_no_extract(vgt_debug_reg7_reg, shift_amount_no_extract) \
+ vgt_debug_reg7_reg = (vgt_debug_reg7_reg & ~VGT_DEBUG_REG7_shift_amount_no_extract_MASK) | (shift_amount_no_extract << VGT_DEBUG_REG7_shift_amount_no_extract_SHIFT)
+#define VGT_DEBUG_REG7_SET_shift_amount_extract(vgt_debug_reg7_reg, shift_amount_extract) \
+ vgt_debug_reg7_reg = (vgt_debug_reg7_reg & ~VGT_DEBUG_REG7_shift_amount_extract_MASK) | (shift_amount_extract << VGT_DEBUG_REG7_shift_amount_extract_SHIFT)
+#define VGT_DEBUG_REG7_SET_di_prim_type_q(vgt_debug_reg7_reg, di_prim_type_q) \
+ vgt_debug_reg7_reg = (vgt_debug_reg7_reg & ~VGT_DEBUG_REG7_di_prim_type_q_MASK) | (di_prim_type_q << VGT_DEBUG_REG7_di_prim_type_q_SHIFT)
+#define VGT_DEBUG_REG7_SET_current_source_sel(vgt_debug_reg7_reg, current_source_sel) \
+ vgt_debug_reg7_reg = (vgt_debug_reg7_reg & ~VGT_DEBUG_REG7_current_source_sel_MASK) | (current_source_sel << VGT_DEBUG_REG7_current_source_sel_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg7_t {
+ unsigned int di_index_counter_q : VGT_DEBUG_REG7_di_index_counter_q_SIZE;
+ unsigned int shift_amount_no_extract : VGT_DEBUG_REG7_shift_amount_no_extract_SIZE;
+ unsigned int shift_amount_extract : VGT_DEBUG_REG7_shift_amount_extract_SIZE;
+ unsigned int di_prim_type_q : VGT_DEBUG_REG7_di_prim_type_q_SIZE;
+ unsigned int current_source_sel : VGT_DEBUG_REG7_current_source_sel_SIZE;
+ } vgt_debug_reg7_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg7_t {
+ unsigned int current_source_sel : VGT_DEBUG_REG7_current_source_sel_SIZE;
+ unsigned int di_prim_type_q : VGT_DEBUG_REG7_di_prim_type_q_SIZE;
+ unsigned int shift_amount_extract : VGT_DEBUG_REG7_shift_amount_extract_SIZE;
+ unsigned int shift_amount_no_extract : VGT_DEBUG_REG7_shift_amount_no_extract_SIZE;
+ unsigned int di_index_counter_q : VGT_DEBUG_REG7_di_index_counter_q_SIZE;
+ } vgt_debug_reg7_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_reg7_t f;
+} vgt_debug_reg7_u;
+
+
+/*
+ * VGT_DEBUG_REG8 struct
+ */
+
+#define VGT_DEBUG_REG8_current_source_sel_SIZE 2
+#define VGT_DEBUG_REG8_left_word_indx_q_SIZE 5
+#define VGT_DEBUG_REG8_input_data_cnt_SIZE 5
+#define VGT_DEBUG_REG8_input_data_lsw_SIZE 5
+#define VGT_DEBUG_REG8_input_data_msw_SIZE 5
+#define VGT_DEBUG_REG8_next_small_stride_shift_limit_q_SIZE 5
+#define VGT_DEBUG_REG8_current_small_stride_shift_limit_q_SIZE 5
+
+#define VGT_DEBUG_REG8_current_source_sel_SHIFT 0
+#define VGT_DEBUG_REG8_left_word_indx_q_SHIFT 2
+#define VGT_DEBUG_REG8_input_data_cnt_SHIFT 7
+#define VGT_DEBUG_REG8_input_data_lsw_SHIFT 12
+#define VGT_DEBUG_REG8_input_data_msw_SHIFT 17
+#define VGT_DEBUG_REG8_next_small_stride_shift_limit_q_SHIFT 22
+#define VGT_DEBUG_REG8_current_small_stride_shift_limit_q_SHIFT 27
+
+#define VGT_DEBUG_REG8_current_source_sel_MASK 0x00000003
+#define VGT_DEBUG_REG8_left_word_indx_q_MASK 0x0000007c
+#define VGT_DEBUG_REG8_input_data_cnt_MASK 0x00000f80
+#define VGT_DEBUG_REG8_input_data_lsw_MASK 0x0001f000
+#define VGT_DEBUG_REG8_input_data_msw_MASK 0x003e0000
+#define VGT_DEBUG_REG8_next_small_stride_shift_limit_q_MASK 0x07c00000
+#define VGT_DEBUG_REG8_current_small_stride_shift_limit_q_MASK 0xf8000000
+
+#define VGT_DEBUG_REG8_MASK \
+ (VGT_DEBUG_REG8_current_source_sel_MASK | \
+ VGT_DEBUG_REG8_left_word_indx_q_MASK | \
+ VGT_DEBUG_REG8_input_data_cnt_MASK | \
+ VGT_DEBUG_REG8_input_data_lsw_MASK | \
+ VGT_DEBUG_REG8_input_data_msw_MASK | \
+ VGT_DEBUG_REG8_next_small_stride_shift_limit_q_MASK | \
+ VGT_DEBUG_REG8_current_small_stride_shift_limit_q_MASK)
+
+#define VGT_DEBUG_REG8(current_source_sel, left_word_indx_q, input_data_cnt, input_data_lsw, input_data_msw, next_small_stride_shift_limit_q, current_small_stride_shift_limit_q) \
+ ((current_source_sel << VGT_DEBUG_REG8_current_source_sel_SHIFT) | \
+ (left_word_indx_q << VGT_DEBUG_REG8_left_word_indx_q_SHIFT) | \
+ (input_data_cnt << VGT_DEBUG_REG8_input_data_cnt_SHIFT) | \
+ (input_data_lsw << VGT_DEBUG_REG8_input_data_lsw_SHIFT) | \
+ (input_data_msw << VGT_DEBUG_REG8_input_data_msw_SHIFT) | \
+ (next_small_stride_shift_limit_q << VGT_DEBUG_REG8_next_small_stride_shift_limit_q_SHIFT) | \
+ (current_small_stride_shift_limit_q << VGT_DEBUG_REG8_current_small_stride_shift_limit_q_SHIFT))
+
+#define VGT_DEBUG_REG8_GET_current_source_sel(vgt_debug_reg8) \
+ ((vgt_debug_reg8 & VGT_DEBUG_REG8_current_source_sel_MASK) >> VGT_DEBUG_REG8_current_source_sel_SHIFT)
+#define VGT_DEBUG_REG8_GET_left_word_indx_q(vgt_debug_reg8) \
+ ((vgt_debug_reg8 & VGT_DEBUG_REG8_left_word_indx_q_MASK) >> VGT_DEBUG_REG8_left_word_indx_q_SHIFT)
+#define VGT_DEBUG_REG8_GET_input_data_cnt(vgt_debug_reg8) \
+ ((vgt_debug_reg8 & VGT_DEBUG_REG8_input_data_cnt_MASK) >> VGT_DEBUG_REG8_input_data_cnt_SHIFT)
+#define VGT_DEBUG_REG8_GET_input_data_lsw(vgt_debug_reg8) \
+ ((vgt_debug_reg8 & VGT_DEBUG_REG8_input_data_lsw_MASK) >> VGT_DEBUG_REG8_input_data_lsw_SHIFT)
+#define VGT_DEBUG_REG8_GET_input_data_msw(vgt_debug_reg8) \
+ ((vgt_debug_reg8 & VGT_DEBUG_REG8_input_data_msw_MASK) >> VGT_DEBUG_REG8_input_data_msw_SHIFT)
+#define VGT_DEBUG_REG8_GET_next_small_stride_shift_limit_q(vgt_debug_reg8) \
+ ((vgt_debug_reg8 & VGT_DEBUG_REG8_next_small_stride_shift_limit_q_MASK) >> VGT_DEBUG_REG8_next_small_stride_shift_limit_q_SHIFT)
+#define VGT_DEBUG_REG8_GET_current_small_stride_shift_limit_q(vgt_debug_reg8) \
+ ((vgt_debug_reg8 & VGT_DEBUG_REG8_current_small_stride_shift_limit_q_MASK) >> VGT_DEBUG_REG8_current_small_stride_shift_limit_q_SHIFT)
+
+#define VGT_DEBUG_REG8_SET_current_source_sel(vgt_debug_reg8_reg, current_source_sel) \
+ vgt_debug_reg8_reg = (vgt_debug_reg8_reg & ~VGT_DEBUG_REG8_current_source_sel_MASK) | (current_source_sel << VGT_DEBUG_REG8_current_source_sel_SHIFT)
+#define VGT_DEBUG_REG8_SET_left_word_indx_q(vgt_debug_reg8_reg, left_word_indx_q) \
+ vgt_debug_reg8_reg = (vgt_debug_reg8_reg & ~VGT_DEBUG_REG8_left_word_indx_q_MASK) | (left_word_indx_q << VGT_DEBUG_REG8_left_word_indx_q_SHIFT)
+#define VGT_DEBUG_REG8_SET_input_data_cnt(vgt_debug_reg8_reg, input_data_cnt) \
+ vgt_debug_reg8_reg = (vgt_debug_reg8_reg & ~VGT_DEBUG_REG8_input_data_cnt_MASK) | (input_data_cnt << VGT_DEBUG_REG8_input_data_cnt_SHIFT)
+#define VGT_DEBUG_REG8_SET_input_data_lsw(vgt_debug_reg8_reg, input_data_lsw) \
+ vgt_debug_reg8_reg = (vgt_debug_reg8_reg & ~VGT_DEBUG_REG8_input_data_lsw_MASK) | (input_data_lsw << VGT_DEBUG_REG8_input_data_lsw_SHIFT)
+#define VGT_DEBUG_REG8_SET_input_data_msw(vgt_debug_reg8_reg, input_data_msw) \
+ vgt_debug_reg8_reg = (vgt_debug_reg8_reg & ~VGT_DEBUG_REG8_input_data_msw_MASK) | (input_data_msw << VGT_DEBUG_REG8_input_data_msw_SHIFT)
+#define VGT_DEBUG_REG8_SET_next_small_stride_shift_limit_q(vgt_debug_reg8_reg, next_small_stride_shift_limit_q) \
+ vgt_debug_reg8_reg = (vgt_debug_reg8_reg & ~VGT_DEBUG_REG8_next_small_stride_shift_limit_q_MASK) | (next_small_stride_shift_limit_q << VGT_DEBUG_REG8_next_small_stride_shift_limit_q_SHIFT)
+#define VGT_DEBUG_REG8_SET_current_small_stride_shift_limit_q(vgt_debug_reg8_reg, current_small_stride_shift_limit_q) \
+ vgt_debug_reg8_reg = (vgt_debug_reg8_reg & ~VGT_DEBUG_REG8_current_small_stride_shift_limit_q_MASK) | (current_small_stride_shift_limit_q << VGT_DEBUG_REG8_current_small_stride_shift_limit_q_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg8_t {
+ unsigned int current_source_sel : VGT_DEBUG_REG8_current_source_sel_SIZE;
+ unsigned int left_word_indx_q : VGT_DEBUG_REG8_left_word_indx_q_SIZE;
+ unsigned int input_data_cnt : VGT_DEBUG_REG8_input_data_cnt_SIZE;
+ unsigned int input_data_lsw : VGT_DEBUG_REG8_input_data_lsw_SIZE;
+ unsigned int input_data_msw : VGT_DEBUG_REG8_input_data_msw_SIZE;
+ unsigned int next_small_stride_shift_limit_q : VGT_DEBUG_REG8_next_small_stride_shift_limit_q_SIZE;
+ unsigned int current_small_stride_shift_limit_q : VGT_DEBUG_REG8_current_small_stride_shift_limit_q_SIZE;
+ } vgt_debug_reg8_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg8_t {
+ unsigned int current_small_stride_shift_limit_q : VGT_DEBUG_REG8_current_small_stride_shift_limit_q_SIZE;
+ unsigned int next_small_stride_shift_limit_q : VGT_DEBUG_REG8_next_small_stride_shift_limit_q_SIZE;
+ unsigned int input_data_msw : VGT_DEBUG_REG8_input_data_msw_SIZE;
+ unsigned int input_data_lsw : VGT_DEBUG_REG8_input_data_lsw_SIZE;
+ unsigned int input_data_cnt : VGT_DEBUG_REG8_input_data_cnt_SIZE;
+ unsigned int left_word_indx_q : VGT_DEBUG_REG8_left_word_indx_q_SIZE;
+ unsigned int current_source_sel : VGT_DEBUG_REG8_current_source_sel_SIZE;
+ } vgt_debug_reg8_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_reg8_t f;
+} vgt_debug_reg8_u;
+
+
+/*
+ * VGT_DEBUG_REG9 struct
+ */
+
+#define VGT_DEBUG_REG9_next_stride_q_SIZE 5
+#define VGT_DEBUG_REG9_next_stride_d_SIZE 5
+#define VGT_DEBUG_REG9_current_shift_q_SIZE 5
+#define VGT_DEBUG_REG9_current_shift_d_SIZE 5
+#define VGT_DEBUG_REG9_current_stride_q_SIZE 5
+#define VGT_DEBUG_REG9_current_stride_d_SIZE 5
+#define VGT_DEBUG_REG9_grp_trigger_SIZE 1
+
+#define VGT_DEBUG_REG9_next_stride_q_SHIFT 0
+#define VGT_DEBUG_REG9_next_stride_d_SHIFT 5
+#define VGT_DEBUG_REG9_current_shift_q_SHIFT 10
+#define VGT_DEBUG_REG9_current_shift_d_SHIFT 15
+#define VGT_DEBUG_REG9_current_stride_q_SHIFT 20
+#define VGT_DEBUG_REG9_current_stride_d_SHIFT 25
+#define VGT_DEBUG_REG9_grp_trigger_SHIFT 30
+
+#define VGT_DEBUG_REG9_next_stride_q_MASK 0x0000001f
+#define VGT_DEBUG_REG9_next_stride_d_MASK 0x000003e0
+#define VGT_DEBUG_REG9_current_shift_q_MASK 0x00007c00
+#define VGT_DEBUG_REG9_current_shift_d_MASK 0x000f8000
+#define VGT_DEBUG_REG9_current_stride_q_MASK 0x01f00000
+#define VGT_DEBUG_REG9_current_stride_d_MASK 0x3e000000
+#define VGT_DEBUG_REG9_grp_trigger_MASK 0x40000000
+
+#define VGT_DEBUG_REG9_MASK \
+ (VGT_DEBUG_REG9_next_stride_q_MASK | \
+ VGT_DEBUG_REG9_next_stride_d_MASK | \
+ VGT_DEBUG_REG9_current_shift_q_MASK | \
+ VGT_DEBUG_REG9_current_shift_d_MASK | \
+ VGT_DEBUG_REG9_current_stride_q_MASK | \
+ VGT_DEBUG_REG9_current_stride_d_MASK | \
+ VGT_DEBUG_REG9_grp_trigger_MASK)
+
+#define VGT_DEBUG_REG9(next_stride_q, next_stride_d, current_shift_q, current_shift_d, current_stride_q, current_stride_d, grp_trigger) \
+ ((next_stride_q << VGT_DEBUG_REG9_next_stride_q_SHIFT) | \
+ (next_stride_d << VGT_DEBUG_REG9_next_stride_d_SHIFT) | \
+ (current_shift_q << VGT_DEBUG_REG9_current_shift_q_SHIFT) | \
+ (current_shift_d << VGT_DEBUG_REG9_current_shift_d_SHIFT) | \
+ (current_stride_q << VGT_DEBUG_REG9_current_stride_q_SHIFT) | \
+ (current_stride_d << VGT_DEBUG_REG9_current_stride_d_SHIFT) | \
+ (grp_trigger << VGT_DEBUG_REG9_grp_trigger_SHIFT))
+
+#define VGT_DEBUG_REG9_GET_next_stride_q(vgt_debug_reg9) \
+ ((vgt_debug_reg9 & VGT_DEBUG_REG9_next_stride_q_MASK) >> VGT_DEBUG_REG9_next_stride_q_SHIFT)
+#define VGT_DEBUG_REG9_GET_next_stride_d(vgt_debug_reg9) \
+ ((vgt_debug_reg9 & VGT_DEBUG_REG9_next_stride_d_MASK) >> VGT_DEBUG_REG9_next_stride_d_SHIFT)
+#define VGT_DEBUG_REG9_GET_current_shift_q(vgt_debug_reg9) \
+ ((vgt_debug_reg9 & VGT_DEBUG_REG9_current_shift_q_MASK) >> VGT_DEBUG_REG9_current_shift_q_SHIFT)
+#define VGT_DEBUG_REG9_GET_current_shift_d(vgt_debug_reg9) \
+ ((vgt_debug_reg9 & VGT_DEBUG_REG9_current_shift_d_MASK) >> VGT_DEBUG_REG9_current_shift_d_SHIFT)
+#define VGT_DEBUG_REG9_GET_current_stride_q(vgt_debug_reg9) \
+ ((vgt_debug_reg9 & VGT_DEBUG_REG9_current_stride_q_MASK) >> VGT_DEBUG_REG9_current_stride_q_SHIFT)
+#define VGT_DEBUG_REG9_GET_current_stride_d(vgt_debug_reg9) \
+ ((vgt_debug_reg9 & VGT_DEBUG_REG9_current_stride_d_MASK) >> VGT_DEBUG_REG9_current_stride_d_SHIFT)
+#define VGT_DEBUG_REG9_GET_grp_trigger(vgt_debug_reg9) \
+ ((vgt_debug_reg9 & VGT_DEBUG_REG9_grp_trigger_MASK) >> VGT_DEBUG_REG9_grp_trigger_SHIFT)
+
+#define VGT_DEBUG_REG9_SET_next_stride_q(vgt_debug_reg9_reg, next_stride_q) \
+ vgt_debug_reg9_reg = (vgt_debug_reg9_reg & ~VGT_DEBUG_REG9_next_stride_q_MASK) | (next_stride_q << VGT_DEBUG_REG9_next_stride_q_SHIFT)
+#define VGT_DEBUG_REG9_SET_next_stride_d(vgt_debug_reg9_reg, next_stride_d) \
+ vgt_debug_reg9_reg = (vgt_debug_reg9_reg & ~VGT_DEBUG_REG9_next_stride_d_MASK) | (next_stride_d << VGT_DEBUG_REG9_next_stride_d_SHIFT)
+#define VGT_DEBUG_REG9_SET_current_shift_q(vgt_debug_reg9_reg, current_shift_q) \
+ vgt_debug_reg9_reg = (vgt_debug_reg9_reg & ~VGT_DEBUG_REG9_current_shift_q_MASK) | (current_shift_q << VGT_DEBUG_REG9_current_shift_q_SHIFT)
+#define VGT_DEBUG_REG9_SET_current_shift_d(vgt_debug_reg9_reg, current_shift_d) \
+ vgt_debug_reg9_reg = (vgt_debug_reg9_reg & ~VGT_DEBUG_REG9_current_shift_d_MASK) | (current_shift_d << VGT_DEBUG_REG9_current_shift_d_SHIFT)
+#define VGT_DEBUG_REG9_SET_current_stride_q(vgt_debug_reg9_reg, current_stride_q) \
+ vgt_debug_reg9_reg = (vgt_debug_reg9_reg & ~VGT_DEBUG_REG9_current_stride_q_MASK) | (current_stride_q << VGT_DEBUG_REG9_current_stride_q_SHIFT)
+#define VGT_DEBUG_REG9_SET_current_stride_d(vgt_debug_reg9_reg, current_stride_d) \
+ vgt_debug_reg9_reg = (vgt_debug_reg9_reg & ~VGT_DEBUG_REG9_current_stride_d_MASK) | (current_stride_d << VGT_DEBUG_REG9_current_stride_d_SHIFT)
+#define VGT_DEBUG_REG9_SET_grp_trigger(vgt_debug_reg9_reg, grp_trigger) \
+ vgt_debug_reg9_reg = (vgt_debug_reg9_reg & ~VGT_DEBUG_REG9_grp_trigger_MASK) | (grp_trigger << VGT_DEBUG_REG9_grp_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg9_t {
+ unsigned int next_stride_q : VGT_DEBUG_REG9_next_stride_q_SIZE;
+ unsigned int next_stride_d : VGT_DEBUG_REG9_next_stride_d_SIZE;
+ unsigned int current_shift_q : VGT_DEBUG_REG9_current_shift_q_SIZE;
+ unsigned int current_shift_d : VGT_DEBUG_REG9_current_shift_d_SIZE;
+ unsigned int current_stride_q : VGT_DEBUG_REG9_current_stride_q_SIZE;
+ unsigned int current_stride_d : VGT_DEBUG_REG9_current_stride_d_SIZE;
+ unsigned int grp_trigger : VGT_DEBUG_REG9_grp_trigger_SIZE;
+ unsigned int : 1;
+ } vgt_debug_reg9_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg9_t {
+ unsigned int : 1;
+ unsigned int grp_trigger : VGT_DEBUG_REG9_grp_trigger_SIZE;
+ unsigned int current_stride_d : VGT_DEBUG_REG9_current_stride_d_SIZE;
+ unsigned int current_stride_q : VGT_DEBUG_REG9_current_stride_q_SIZE;
+ unsigned int current_shift_d : VGT_DEBUG_REG9_current_shift_d_SIZE;
+ unsigned int current_shift_q : VGT_DEBUG_REG9_current_shift_q_SIZE;
+ unsigned int next_stride_d : VGT_DEBUG_REG9_next_stride_d_SIZE;
+ unsigned int next_stride_q : VGT_DEBUG_REG9_next_stride_q_SIZE;
+ } vgt_debug_reg9_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_reg9_t f;
+} vgt_debug_reg9_u;
+
+
+/*
+ * VGT_DEBUG_REG10 struct
+ */
+
+#define VGT_DEBUG_REG10_temp_derived_di_prim_type_t0_SIZE 1
+#define VGT_DEBUG_REG10_temp_derived_di_small_index_t0_SIZE 1
+#define VGT_DEBUG_REG10_temp_derived_di_cull_enable_t0_SIZE 1
+#define VGT_DEBUG_REG10_temp_derived_di_pre_fetch_cull_enable_t0_SIZE 1
+#define VGT_DEBUG_REG10_di_state_sel_q_SIZE 1
+#define VGT_DEBUG_REG10_last_decr_of_packet_SIZE 1
+#define VGT_DEBUG_REG10_bin_valid_SIZE 1
+#define VGT_DEBUG_REG10_read_block_SIZE 1
+#define VGT_DEBUG_REG10_grp_bgrp_last_bit_read_SIZE 1
+#define VGT_DEBUG_REG10_last_bit_enable_q_SIZE 1
+#define VGT_DEBUG_REG10_last_bit_end_di_q_SIZE 1
+#define VGT_DEBUG_REG10_selected_data_SIZE 8
+#define VGT_DEBUG_REG10_mask_input_data_SIZE 8
+#define VGT_DEBUG_REG10_gap_q_SIZE 1
+#define VGT_DEBUG_REG10_temp_mini_reset_z_SIZE 1
+#define VGT_DEBUG_REG10_temp_mini_reset_y_SIZE 1
+#define VGT_DEBUG_REG10_temp_mini_reset_x_SIZE 1
+#define VGT_DEBUG_REG10_grp_trigger_SIZE 1
+
+#define VGT_DEBUG_REG10_temp_derived_di_prim_type_t0_SHIFT 0
+#define VGT_DEBUG_REG10_temp_derived_di_small_index_t0_SHIFT 1
+#define VGT_DEBUG_REG10_temp_derived_di_cull_enable_t0_SHIFT 2
+#define VGT_DEBUG_REG10_temp_derived_di_pre_fetch_cull_enable_t0_SHIFT 3
+#define VGT_DEBUG_REG10_di_state_sel_q_SHIFT 4
+#define VGT_DEBUG_REG10_last_decr_of_packet_SHIFT 5
+#define VGT_DEBUG_REG10_bin_valid_SHIFT 6
+#define VGT_DEBUG_REG10_read_block_SHIFT 7
+#define VGT_DEBUG_REG10_grp_bgrp_last_bit_read_SHIFT 8
+#define VGT_DEBUG_REG10_last_bit_enable_q_SHIFT 9
+#define VGT_DEBUG_REG10_last_bit_end_di_q_SHIFT 10
+#define VGT_DEBUG_REG10_selected_data_SHIFT 11
+#define VGT_DEBUG_REG10_mask_input_data_SHIFT 19
+#define VGT_DEBUG_REG10_gap_q_SHIFT 27
+#define VGT_DEBUG_REG10_temp_mini_reset_z_SHIFT 28
+#define VGT_DEBUG_REG10_temp_mini_reset_y_SHIFT 29
+#define VGT_DEBUG_REG10_temp_mini_reset_x_SHIFT 30
+#define VGT_DEBUG_REG10_grp_trigger_SHIFT 31
+
+#define VGT_DEBUG_REG10_temp_derived_di_prim_type_t0_MASK 0x00000001
+#define VGT_DEBUG_REG10_temp_derived_di_small_index_t0_MASK 0x00000002
+#define VGT_DEBUG_REG10_temp_derived_di_cull_enable_t0_MASK 0x00000004
+#define VGT_DEBUG_REG10_temp_derived_di_pre_fetch_cull_enable_t0_MASK 0x00000008
+#define VGT_DEBUG_REG10_di_state_sel_q_MASK 0x00000010
+#define VGT_DEBUG_REG10_last_decr_of_packet_MASK 0x00000020
+#define VGT_DEBUG_REG10_bin_valid_MASK 0x00000040
+#define VGT_DEBUG_REG10_read_block_MASK 0x00000080
+#define VGT_DEBUG_REG10_grp_bgrp_last_bit_read_MASK 0x00000100
+#define VGT_DEBUG_REG10_last_bit_enable_q_MASK 0x00000200
+#define VGT_DEBUG_REG10_last_bit_end_di_q_MASK 0x00000400
+#define VGT_DEBUG_REG10_selected_data_MASK 0x0007f800
+#define VGT_DEBUG_REG10_mask_input_data_MASK 0x07f80000
+#define VGT_DEBUG_REG10_gap_q_MASK 0x08000000
+#define VGT_DEBUG_REG10_temp_mini_reset_z_MASK 0x10000000
+#define VGT_DEBUG_REG10_temp_mini_reset_y_MASK 0x20000000
+#define VGT_DEBUG_REG10_temp_mini_reset_x_MASK 0x40000000
+#define VGT_DEBUG_REG10_grp_trigger_MASK 0x80000000
+
+#define VGT_DEBUG_REG10_MASK \
+ (VGT_DEBUG_REG10_temp_derived_di_prim_type_t0_MASK | \
+ VGT_DEBUG_REG10_temp_derived_di_small_index_t0_MASK | \
+ VGT_DEBUG_REG10_temp_derived_di_cull_enable_t0_MASK | \
+ VGT_DEBUG_REG10_temp_derived_di_pre_fetch_cull_enable_t0_MASK | \
+ VGT_DEBUG_REG10_di_state_sel_q_MASK | \
+ VGT_DEBUG_REG10_last_decr_of_packet_MASK | \
+ VGT_DEBUG_REG10_bin_valid_MASK | \
+ VGT_DEBUG_REG10_read_block_MASK | \
+ VGT_DEBUG_REG10_grp_bgrp_last_bit_read_MASK | \
+ VGT_DEBUG_REG10_last_bit_enable_q_MASK | \
+ VGT_DEBUG_REG10_last_bit_end_di_q_MASK | \
+ VGT_DEBUG_REG10_selected_data_MASK | \
+ VGT_DEBUG_REG10_mask_input_data_MASK | \
+ VGT_DEBUG_REG10_gap_q_MASK | \
+ VGT_DEBUG_REG10_temp_mini_reset_z_MASK | \
+ VGT_DEBUG_REG10_temp_mini_reset_y_MASK | \
+ VGT_DEBUG_REG10_temp_mini_reset_x_MASK | \
+ VGT_DEBUG_REG10_grp_trigger_MASK)
+
+#define VGT_DEBUG_REG10(temp_derived_di_prim_type_t0, temp_derived_di_small_index_t0, temp_derived_di_cull_enable_t0, temp_derived_di_pre_fetch_cull_enable_t0, di_state_sel_q, last_decr_of_packet, bin_valid, read_block, grp_bgrp_last_bit_read, last_bit_enable_q, last_bit_end_di_q, selected_data, mask_input_data, gap_q, temp_mini_reset_z, temp_mini_reset_y, temp_mini_reset_x, grp_trigger) \
+ ((temp_derived_di_prim_type_t0 << VGT_DEBUG_REG10_temp_derived_di_prim_type_t0_SHIFT) | \
+ (temp_derived_di_small_index_t0 << VGT_DEBUG_REG10_temp_derived_di_small_index_t0_SHIFT) | \
+ (temp_derived_di_cull_enable_t0 << VGT_DEBUG_REG10_temp_derived_di_cull_enable_t0_SHIFT) | \
+ (temp_derived_di_pre_fetch_cull_enable_t0 << VGT_DEBUG_REG10_temp_derived_di_pre_fetch_cull_enable_t0_SHIFT) | \
+ (di_state_sel_q << VGT_DEBUG_REG10_di_state_sel_q_SHIFT) | \
+ (last_decr_of_packet << VGT_DEBUG_REG10_last_decr_of_packet_SHIFT) | \
+ (bin_valid << VGT_DEBUG_REG10_bin_valid_SHIFT) | \
+ (read_block << VGT_DEBUG_REG10_read_block_SHIFT) | \
+ (grp_bgrp_last_bit_read << VGT_DEBUG_REG10_grp_bgrp_last_bit_read_SHIFT) | \
+ (last_bit_enable_q << VGT_DEBUG_REG10_last_bit_enable_q_SHIFT) | \
+ (last_bit_end_di_q << VGT_DEBUG_REG10_last_bit_end_di_q_SHIFT) | \
+ (selected_data << VGT_DEBUG_REG10_selected_data_SHIFT) | \
+ (mask_input_data << VGT_DEBUG_REG10_mask_input_data_SHIFT) | \
+ (gap_q << VGT_DEBUG_REG10_gap_q_SHIFT) | \
+ (temp_mini_reset_z << VGT_DEBUG_REG10_temp_mini_reset_z_SHIFT) | \
+ (temp_mini_reset_y << VGT_DEBUG_REG10_temp_mini_reset_y_SHIFT) | \
+ (temp_mini_reset_x << VGT_DEBUG_REG10_temp_mini_reset_x_SHIFT) | \
+ (grp_trigger << VGT_DEBUG_REG10_grp_trigger_SHIFT))
+
+#define VGT_DEBUG_REG10_GET_temp_derived_di_prim_type_t0(vgt_debug_reg10) \
+ ((vgt_debug_reg10 & VGT_DEBUG_REG10_temp_derived_di_prim_type_t0_MASK) >> VGT_DEBUG_REG10_temp_derived_di_prim_type_t0_SHIFT)
+#define VGT_DEBUG_REG10_GET_temp_derived_di_small_index_t0(vgt_debug_reg10) \
+ ((vgt_debug_reg10 & VGT_DEBUG_REG10_temp_derived_di_small_index_t0_MASK) >> VGT_DEBUG_REG10_temp_derived_di_small_index_t0_SHIFT)
+#define VGT_DEBUG_REG10_GET_temp_derived_di_cull_enable_t0(vgt_debug_reg10) \
+ ((vgt_debug_reg10 & VGT_DEBUG_REG10_temp_derived_di_cull_enable_t0_MASK) >> VGT_DEBUG_REG10_temp_derived_di_cull_enable_t0_SHIFT)
+#define VGT_DEBUG_REG10_GET_temp_derived_di_pre_fetch_cull_enable_t0(vgt_debug_reg10) \
+ ((vgt_debug_reg10 & VGT_DEBUG_REG10_temp_derived_di_pre_fetch_cull_enable_t0_MASK) >> VGT_DEBUG_REG10_temp_derived_di_pre_fetch_cull_enable_t0_SHIFT)
+#define VGT_DEBUG_REG10_GET_di_state_sel_q(vgt_debug_reg10) \
+ ((vgt_debug_reg10 & VGT_DEBUG_REG10_di_state_sel_q_MASK) >> VGT_DEBUG_REG10_di_state_sel_q_SHIFT)
+#define VGT_DEBUG_REG10_GET_last_decr_of_packet(vgt_debug_reg10) \
+ ((vgt_debug_reg10 & VGT_DEBUG_REG10_last_decr_of_packet_MASK) >> VGT_DEBUG_REG10_last_decr_of_packet_SHIFT)
+#define VGT_DEBUG_REG10_GET_bin_valid(vgt_debug_reg10) \
+ ((vgt_debug_reg10 & VGT_DEBUG_REG10_bin_valid_MASK) >> VGT_DEBUG_REG10_bin_valid_SHIFT)
+#define VGT_DEBUG_REG10_GET_read_block(vgt_debug_reg10) \
+ ((vgt_debug_reg10 & VGT_DEBUG_REG10_read_block_MASK) >> VGT_DEBUG_REG10_read_block_SHIFT)
+#define VGT_DEBUG_REG10_GET_grp_bgrp_last_bit_read(vgt_debug_reg10) \
+ ((vgt_debug_reg10 & VGT_DEBUG_REG10_grp_bgrp_last_bit_read_MASK) >> VGT_DEBUG_REG10_grp_bgrp_last_bit_read_SHIFT)
+#define VGT_DEBUG_REG10_GET_last_bit_enable_q(vgt_debug_reg10) \
+ ((vgt_debug_reg10 & VGT_DEBUG_REG10_last_bit_enable_q_MASK) >> VGT_DEBUG_REG10_last_bit_enable_q_SHIFT)
+#define VGT_DEBUG_REG10_GET_last_bit_end_di_q(vgt_debug_reg10) \
+ ((vgt_debug_reg10 & VGT_DEBUG_REG10_last_bit_end_di_q_MASK) >> VGT_DEBUG_REG10_last_bit_end_di_q_SHIFT)
+#define VGT_DEBUG_REG10_GET_selected_data(vgt_debug_reg10) \
+ ((vgt_debug_reg10 & VGT_DEBUG_REG10_selected_data_MASK) >> VGT_DEBUG_REG10_selected_data_SHIFT)
+#define VGT_DEBUG_REG10_GET_mask_input_data(vgt_debug_reg10) \
+ ((vgt_debug_reg10 & VGT_DEBUG_REG10_mask_input_data_MASK) >> VGT_DEBUG_REG10_mask_input_data_SHIFT)
+#define VGT_DEBUG_REG10_GET_gap_q(vgt_debug_reg10) \
+ ((vgt_debug_reg10 & VGT_DEBUG_REG10_gap_q_MASK) >> VGT_DEBUG_REG10_gap_q_SHIFT)
+#define VGT_DEBUG_REG10_GET_temp_mini_reset_z(vgt_debug_reg10) \
+ ((vgt_debug_reg10 & VGT_DEBUG_REG10_temp_mini_reset_z_MASK) >> VGT_DEBUG_REG10_temp_mini_reset_z_SHIFT)
+#define VGT_DEBUG_REG10_GET_temp_mini_reset_y(vgt_debug_reg10) \
+ ((vgt_debug_reg10 & VGT_DEBUG_REG10_temp_mini_reset_y_MASK) >> VGT_DEBUG_REG10_temp_mini_reset_y_SHIFT)
+#define VGT_DEBUG_REG10_GET_temp_mini_reset_x(vgt_debug_reg10) \
+ ((vgt_debug_reg10 & VGT_DEBUG_REG10_temp_mini_reset_x_MASK) >> VGT_DEBUG_REG10_temp_mini_reset_x_SHIFT)
+#define VGT_DEBUG_REG10_GET_grp_trigger(vgt_debug_reg10) \
+ ((vgt_debug_reg10 & VGT_DEBUG_REG10_grp_trigger_MASK) >> VGT_DEBUG_REG10_grp_trigger_SHIFT)
+
+#define VGT_DEBUG_REG10_SET_temp_derived_di_prim_type_t0(vgt_debug_reg10_reg, temp_derived_di_prim_type_t0) \
+ vgt_debug_reg10_reg = (vgt_debug_reg10_reg & ~VGT_DEBUG_REG10_temp_derived_di_prim_type_t0_MASK) | (temp_derived_di_prim_type_t0 << VGT_DEBUG_REG10_temp_derived_di_prim_type_t0_SHIFT)
+#define VGT_DEBUG_REG10_SET_temp_derived_di_small_index_t0(vgt_debug_reg10_reg, temp_derived_di_small_index_t0) \
+ vgt_debug_reg10_reg = (vgt_debug_reg10_reg & ~VGT_DEBUG_REG10_temp_derived_di_small_index_t0_MASK) | (temp_derived_di_small_index_t0 << VGT_DEBUG_REG10_temp_derived_di_small_index_t0_SHIFT)
+#define VGT_DEBUG_REG10_SET_temp_derived_di_cull_enable_t0(vgt_debug_reg10_reg, temp_derived_di_cull_enable_t0) \
+ vgt_debug_reg10_reg = (vgt_debug_reg10_reg & ~VGT_DEBUG_REG10_temp_derived_di_cull_enable_t0_MASK) | (temp_derived_di_cull_enable_t0 << VGT_DEBUG_REG10_temp_derived_di_cull_enable_t0_SHIFT)
+#define VGT_DEBUG_REG10_SET_temp_derived_di_pre_fetch_cull_enable_t0(vgt_debug_reg10_reg, temp_derived_di_pre_fetch_cull_enable_t0) \
+ vgt_debug_reg10_reg = (vgt_debug_reg10_reg & ~VGT_DEBUG_REG10_temp_derived_di_pre_fetch_cull_enable_t0_MASK) | (temp_derived_di_pre_fetch_cull_enable_t0 << VGT_DEBUG_REG10_temp_derived_di_pre_fetch_cull_enable_t0_SHIFT)
+#define VGT_DEBUG_REG10_SET_di_state_sel_q(vgt_debug_reg10_reg, di_state_sel_q) \
+ vgt_debug_reg10_reg = (vgt_debug_reg10_reg & ~VGT_DEBUG_REG10_di_state_sel_q_MASK) | (di_state_sel_q << VGT_DEBUG_REG10_di_state_sel_q_SHIFT)
+#define VGT_DEBUG_REG10_SET_last_decr_of_packet(vgt_debug_reg10_reg, last_decr_of_packet) \
+ vgt_debug_reg10_reg = (vgt_debug_reg10_reg & ~VGT_DEBUG_REG10_last_decr_of_packet_MASK) | (last_decr_of_packet << VGT_DEBUG_REG10_last_decr_of_packet_SHIFT)
+#define VGT_DEBUG_REG10_SET_bin_valid(vgt_debug_reg10_reg, bin_valid) \
+ vgt_debug_reg10_reg = (vgt_debug_reg10_reg & ~VGT_DEBUG_REG10_bin_valid_MASK) | (bin_valid << VGT_DEBUG_REG10_bin_valid_SHIFT)
+#define VGT_DEBUG_REG10_SET_read_block(vgt_debug_reg10_reg, read_block) \
+ vgt_debug_reg10_reg = (vgt_debug_reg10_reg & ~VGT_DEBUG_REG10_read_block_MASK) | (read_block << VGT_DEBUG_REG10_read_block_SHIFT)
+#define VGT_DEBUG_REG10_SET_grp_bgrp_last_bit_read(vgt_debug_reg10_reg, grp_bgrp_last_bit_read) \
+ vgt_debug_reg10_reg = (vgt_debug_reg10_reg & ~VGT_DEBUG_REG10_grp_bgrp_last_bit_read_MASK) | (grp_bgrp_last_bit_read << VGT_DEBUG_REG10_grp_bgrp_last_bit_read_SHIFT)
+#define VGT_DEBUG_REG10_SET_last_bit_enable_q(vgt_debug_reg10_reg, last_bit_enable_q) \
+ vgt_debug_reg10_reg = (vgt_debug_reg10_reg & ~VGT_DEBUG_REG10_last_bit_enable_q_MASK) | (last_bit_enable_q << VGT_DEBUG_REG10_last_bit_enable_q_SHIFT)
+#define VGT_DEBUG_REG10_SET_last_bit_end_di_q(vgt_debug_reg10_reg, last_bit_end_di_q) \
+ vgt_debug_reg10_reg = (vgt_debug_reg10_reg & ~VGT_DEBUG_REG10_last_bit_end_di_q_MASK) | (last_bit_end_di_q << VGT_DEBUG_REG10_last_bit_end_di_q_SHIFT)
+#define VGT_DEBUG_REG10_SET_selected_data(vgt_debug_reg10_reg, selected_data) \
+ vgt_debug_reg10_reg = (vgt_debug_reg10_reg & ~VGT_DEBUG_REG10_selected_data_MASK) | (selected_data << VGT_DEBUG_REG10_selected_data_SHIFT)
+#define VGT_DEBUG_REG10_SET_mask_input_data(vgt_debug_reg10_reg, mask_input_data) \
+ vgt_debug_reg10_reg = (vgt_debug_reg10_reg & ~VGT_DEBUG_REG10_mask_input_data_MASK) | (mask_input_data << VGT_DEBUG_REG10_mask_input_data_SHIFT)
+#define VGT_DEBUG_REG10_SET_gap_q(vgt_debug_reg10_reg, gap_q) \
+ vgt_debug_reg10_reg = (vgt_debug_reg10_reg & ~VGT_DEBUG_REG10_gap_q_MASK) | (gap_q << VGT_DEBUG_REG10_gap_q_SHIFT)
+#define VGT_DEBUG_REG10_SET_temp_mini_reset_z(vgt_debug_reg10_reg, temp_mini_reset_z) \
+ vgt_debug_reg10_reg = (vgt_debug_reg10_reg & ~VGT_DEBUG_REG10_temp_mini_reset_z_MASK) | (temp_mini_reset_z << VGT_DEBUG_REG10_temp_mini_reset_z_SHIFT)
+#define VGT_DEBUG_REG10_SET_temp_mini_reset_y(vgt_debug_reg10_reg, temp_mini_reset_y) \
+ vgt_debug_reg10_reg = (vgt_debug_reg10_reg & ~VGT_DEBUG_REG10_temp_mini_reset_y_MASK) | (temp_mini_reset_y << VGT_DEBUG_REG10_temp_mini_reset_y_SHIFT)
+#define VGT_DEBUG_REG10_SET_temp_mini_reset_x(vgt_debug_reg10_reg, temp_mini_reset_x) \
+ vgt_debug_reg10_reg = (vgt_debug_reg10_reg & ~VGT_DEBUG_REG10_temp_mini_reset_x_MASK) | (temp_mini_reset_x << VGT_DEBUG_REG10_temp_mini_reset_x_SHIFT)
+#define VGT_DEBUG_REG10_SET_grp_trigger(vgt_debug_reg10_reg, grp_trigger) \
+ vgt_debug_reg10_reg = (vgt_debug_reg10_reg & ~VGT_DEBUG_REG10_grp_trigger_MASK) | (grp_trigger << VGT_DEBUG_REG10_grp_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg10_t {
+ unsigned int temp_derived_di_prim_type_t0 : VGT_DEBUG_REG10_temp_derived_di_prim_type_t0_SIZE;
+ unsigned int temp_derived_di_small_index_t0 : VGT_DEBUG_REG10_temp_derived_di_small_index_t0_SIZE;
+ unsigned int temp_derived_di_cull_enable_t0 : VGT_DEBUG_REG10_temp_derived_di_cull_enable_t0_SIZE;
+ unsigned int temp_derived_di_pre_fetch_cull_enable_t0 : VGT_DEBUG_REG10_temp_derived_di_pre_fetch_cull_enable_t0_SIZE;
+ unsigned int di_state_sel_q : VGT_DEBUG_REG10_di_state_sel_q_SIZE;
+ unsigned int last_decr_of_packet : VGT_DEBUG_REG10_last_decr_of_packet_SIZE;
+ unsigned int bin_valid : VGT_DEBUG_REG10_bin_valid_SIZE;
+ unsigned int read_block : VGT_DEBUG_REG10_read_block_SIZE;
+ unsigned int grp_bgrp_last_bit_read : VGT_DEBUG_REG10_grp_bgrp_last_bit_read_SIZE;
+ unsigned int last_bit_enable_q : VGT_DEBUG_REG10_last_bit_enable_q_SIZE;
+ unsigned int last_bit_end_di_q : VGT_DEBUG_REG10_last_bit_end_di_q_SIZE;
+ unsigned int selected_data : VGT_DEBUG_REG10_selected_data_SIZE;
+ unsigned int mask_input_data : VGT_DEBUG_REG10_mask_input_data_SIZE;
+ unsigned int gap_q : VGT_DEBUG_REG10_gap_q_SIZE;
+ unsigned int temp_mini_reset_z : VGT_DEBUG_REG10_temp_mini_reset_z_SIZE;
+ unsigned int temp_mini_reset_y : VGT_DEBUG_REG10_temp_mini_reset_y_SIZE;
+ unsigned int temp_mini_reset_x : VGT_DEBUG_REG10_temp_mini_reset_x_SIZE;
+ unsigned int grp_trigger : VGT_DEBUG_REG10_grp_trigger_SIZE;
+ } vgt_debug_reg10_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg10_t {
+ unsigned int grp_trigger : VGT_DEBUG_REG10_grp_trigger_SIZE;
+ unsigned int temp_mini_reset_x : VGT_DEBUG_REG10_temp_mini_reset_x_SIZE;
+ unsigned int temp_mini_reset_y : VGT_DEBUG_REG10_temp_mini_reset_y_SIZE;
+ unsigned int temp_mini_reset_z : VGT_DEBUG_REG10_temp_mini_reset_z_SIZE;
+ unsigned int gap_q : VGT_DEBUG_REG10_gap_q_SIZE;
+ unsigned int mask_input_data : VGT_DEBUG_REG10_mask_input_data_SIZE;
+ unsigned int selected_data : VGT_DEBUG_REG10_selected_data_SIZE;
+ unsigned int last_bit_end_di_q : VGT_DEBUG_REG10_last_bit_end_di_q_SIZE;
+ unsigned int last_bit_enable_q : VGT_DEBUG_REG10_last_bit_enable_q_SIZE;
+ unsigned int grp_bgrp_last_bit_read : VGT_DEBUG_REG10_grp_bgrp_last_bit_read_SIZE;
+ unsigned int read_block : VGT_DEBUG_REG10_read_block_SIZE;
+ unsigned int bin_valid : VGT_DEBUG_REG10_bin_valid_SIZE;
+ unsigned int last_decr_of_packet : VGT_DEBUG_REG10_last_decr_of_packet_SIZE;
+ unsigned int di_state_sel_q : VGT_DEBUG_REG10_di_state_sel_q_SIZE;
+ unsigned int temp_derived_di_pre_fetch_cull_enable_t0 : VGT_DEBUG_REG10_temp_derived_di_pre_fetch_cull_enable_t0_SIZE;
+ unsigned int temp_derived_di_cull_enable_t0 : VGT_DEBUG_REG10_temp_derived_di_cull_enable_t0_SIZE;
+ unsigned int temp_derived_di_small_index_t0 : VGT_DEBUG_REG10_temp_derived_di_small_index_t0_SIZE;
+ unsigned int temp_derived_di_prim_type_t0 : VGT_DEBUG_REG10_temp_derived_di_prim_type_t0_SIZE;
+ } vgt_debug_reg10_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_reg10_t f;
+} vgt_debug_reg10_u;
+
+
+/*
+ * VGT_DEBUG_REG12 struct
+ */
+
+#define VGT_DEBUG_REG12_shifter_byte_count_q_SIZE 5
+#define VGT_DEBUG_REG12_right_word_indx_q_SIZE 5
+#define VGT_DEBUG_REG12_input_data_valid_SIZE 1
+#define VGT_DEBUG_REG12_input_data_xfer_SIZE 1
+#define VGT_DEBUG_REG12_next_shift_is_vect_1_q_SIZE 1
+#define VGT_DEBUG_REG12_next_shift_is_vect_1_d_SIZE 1
+#define VGT_DEBUG_REG12_next_shift_is_vect_1_pre_d_SIZE 1
+#define VGT_DEBUG_REG12_space_avail_from_shift_SIZE 1
+#define VGT_DEBUG_REG12_shifter_first_load_SIZE 1
+#define VGT_DEBUG_REG12_di_state_sel_q_SIZE 1
+#define VGT_DEBUG_REG12_shifter_waiting_for_first_load_q_SIZE 1
+#define VGT_DEBUG_REG12_di_first_group_flag_q_SIZE 1
+#define VGT_DEBUG_REG12_di_event_flag_q_SIZE 1
+#define VGT_DEBUG_REG12_read_draw_initiator_SIZE 1
+#define VGT_DEBUG_REG12_loading_di_requires_shifter_SIZE 1
+#define VGT_DEBUG_REG12_last_shift_of_packet_SIZE 1
+#define VGT_DEBUG_REG12_last_decr_of_packet_SIZE 1
+#define VGT_DEBUG_REG12_extract_vector_SIZE 1
+#define VGT_DEBUG_REG12_shift_vect_rtr_SIZE 1
+#define VGT_DEBUG_REG12_destination_rtr_SIZE 1
+#define VGT_DEBUG_REG12_bgrp_trigger_SIZE 1
+
+#define VGT_DEBUG_REG12_shifter_byte_count_q_SHIFT 0
+#define VGT_DEBUG_REG12_right_word_indx_q_SHIFT 5
+#define VGT_DEBUG_REG12_input_data_valid_SHIFT 10
+#define VGT_DEBUG_REG12_input_data_xfer_SHIFT 11
+#define VGT_DEBUG_REG12_next_shift_is_vect_1_q_SHIFT 12
+#define VGT_DEBUG_REG12_next_shift_is_vect_1_d_SHIFT 13
+#define VGT_DEBUG_REG12_next_shift_is_vect_1_pre_d_SHIFT 14
+#define VGT_DEBUG_REG12_space_avail_from_shift_SHIFT 15
+#define VGT_DEBUG_REG12_shifter_first_load_SHIFT 16
+#define VGT_DEBUG_REG12_di_state_sel_q_SHIFT 17
+#define VGT_DEBUG_REG12_shifter_waiting_for_first_load_q_SHIFT 18
+#define VGT_DEBUG_REG12_di_first_group_flag_q_SHIFT 19
+#define VGT_DEBUG_REG12_di_event_flag_q_SHIFT 20
+#define VGT_DEBUG_REG12_read_draw_initiator_SHIFT 21
+#define VGT_DEBUG_REG12_loading_di_requires_shifter_SHIFT 22
+#define VGT_DEBUG_REG12_last_shift_of_packet_SHIFT 23
+#define VGT_DEBUG_REG12_last_decr_of_packet_SHIFT 24
+#define VGT_DEBUG_REG12_extract_vector_SHIFT 25
+#define VGT_DEBUG_REG12_shift_vect_rtr_SHIFT 26
+#define VGT_DEBUG_REG12_destination_rtr_SHIFT 27
+#define VGT_DEBUG_REG12_bgrp_trigger_SHIFT 28
+
+#define VGT_DEBUG_REG12_shifter_byte_count_q_MASK 0x0000001f
+#define VGT_DEBUG_REG12_right_word_indx_q_MASK 0x000003e0
+#define VGT_DEBUG_REG12_input_data_valid_MASK 0x00000400
+#define VGT_DEBUG_REG12_input_data_xfer_MASK 0x00000800
+#define VGT_DEBUG_REG12_next_shift_is_vect_1_q_MASK 0x00001000
+#define VGT_DEBUG_REG12_next_shift_is_vect_1_d_MASK 0x00002000
+#define VGT_DEBUG_REG12_next_shift_is_vect_1_pre_d_MASK 0x00004000
+#define VGT_DEBUG_REG12_space_avail_from_shift_MASK 0x00008000
+#define VGT_DEBUG_REG12_shifter_first_load_MASK 0x00010000
+#define VGT_DEBUG_REG12_di_state_sel_q_MASK 0x00020000
+#define VGT_DEBUG_REG12_shifter_waiting_for_first_load_q_MASK 0x00040000
+#define VGT_DEBUG_REG12_di_first_group_flag_q_MASK 0x00080000
+#define VGT_DEBUG_REG12_di_event_flag_q_MASK 0x00100000
+#define VGT_DEBUG_REG12_read_draw_initiator_MASK 0x00200000
+#define VGT_DEBUG_REG12_loading_di_requires_shifter_MASK 0x00400000
+#define VGT_DEBUG_REG12_last_shift_of_packet_MASK 0x00800000
+#define VGT_DEBUG_REG12_last_decr_of_packet_MASK 0x01000000
+#define VGT_DEBUG_REG12_extract_vector_MASK 0x02000000
+#define VGT_DEBUG_REG12_shift_vect_rtr_MASK 0x04000000
+#define VGT_DEBUG_REG12_destination_rtr_MASK 0x08000000
+#define VGT_DEBUG_REG12_bgrp_trigger_MASK 0x10000000
+
+#define VGT_DEBUG_REG12_MASK \
+ (VGT_DEBUG_REG12_shifter_byte_count_q_MASK | \
+ VGT_DEBUG_REG12_right_word_indx_q_MASK | \
+ VGT_DEBUG_REG12_input_data_valid_MASK | \
+ VGT_DEBUG_REG12_input_data_xfer_MASK | \
+ VGT_DEBUG_REG12_next_shift_is_vect_1_q_MASK | \
+ VGT_DEBUG_REG12_next_shift_is_vect_1_d_MASK | \
+ VGT_DEBUG_REG12_next_shift_is_vect_1_pre_d_MASK | \
+ VGT_DEBUG_REG12_space_avail_from_shift_MASK | \
+ VGT_DEBUG_REG12_shifter_first_load_MASK | \
+ VGT_DEBUG_REG12_di_state_sel_q_MASK | \
+ VGT_DEBUG_REG12_shifter_waiting_for_first_load_q_MASK | \
+ VGT_DEBUG_REG12_di_first_group_flag_q_MASK | \
+ VGT_DEBUG_REG12_di_event_flag_q_MASK | \
+ VGT_DEBUG_REG12_read_draw_initiator_MASK | \
+ VGT_DEBUG_REG12_loading_di_requires_shifter_MASK | \
+ VGT_DEBUG_REG12_last_shift_of_packet_MASK | \
+ VGT_DEBUG_REG12_last_decr_of_packet_MASK | \
+ VGT_DEBUG_REG12_extract_vector_MASK | \
+ VGT_DEBUG_REG12_shift_vect_rtr_MASK | \
+ VGT_DEBUG_REG12_destination_rtr_MASK | \
+ VGT_DEBUG_REG12_bgrp_trigger_MASK)
+
+#define VGT_DEBUG_REG12(shifter_byte_count_q, right_word_indx_q, input_data_valid, input_data_xfer, next_shift_is_vect_1_q, next_shift_is_vect_1_d, next_shift_is_vect_1_pre_d, space_avail_from_shift, shifter_first_load, di_state_sel_q, shifter_waiting_for_first_load_q, di_first_group_flag_q, di_event_flag_q, read_draw_initiator, loading_di_requires_shifter, last_shift_of_packet, last_decr_of_packet, extract_vector, shift_vect_rtr, destination_rtr, bgrp_trigger) \
+ ((shifter_byte_count_q << VGT_DEBUG_REG12_shifter_byte_count_q_SHIFT) | \
+ (right_word_indx_q << VGT_DEBUG_REG12_right_word_indx_q_SHIFT) | \
+ (input_data_valid << VGT_DEBUG_REG12_input_data_valid_SHIFT) | \
+ (input_data_xfer << VGT_DEBUG_REG12_input_data_xfer_SHIFT) | \
+ (next_shift_is_vect_1_q << VGT_DEBUG_REG12_next_shift_is_vect_1_q_SHIFT) | \
+ (next_shift_is_vect_1_d << VGT_DEBUG_REG12_next_shift_is_vect_1_d_SHIFT) | \
+ (next_shift_is_vect_1_pre_d << VGT_DEBUG_REG12_next_shift_is_vect_1_pre_d_SHIFT) | \
+ (space_avail_from_shift << VGT_DEBUG_REG12_space_avail_from_shift_SHIFT) | \
+ (shifter_first_load << VGT_DEBUG_REG12_shifter_first_load_SHIFT) | \
+ (di_state_sel_q << VGT_DEBUG_REG12_di_state_sel_q_SHIFT) | \
+ (shifter_waiting_for_first_load_q << VGT_DEBUG_REG12_shifter_waiting_for_first_load_q_SHIFT) | \
+ (di_first_group_flag_q << VGT_DEBUG_REG12_di_first_group_flag_q_SHIFT) | \
+ (di_event_flag_q << VGT_DEBUG_REG12_di_event_flag_q_SHIFT) | \
+ (read_draw_initiator << VGT_DEBUG_REG12_read_draw_initiator_SHIFT) | \
+ (loading_di_requires_shifter << VGT_DEBUG_REG12_loading_di_requires_shifter_SHIFT) | \
+ (last_shift_of_packet << VGT_DEBUG_REG12_last_shift_of_packet_SHIFT) | \
+ (last_decr_of_packet << VGT_DEBUG_REG12_last_decr_of_packet_SHIFT) | \
+ (extract_vector << VGT_DEBUG_REG12_extract_vector_SHIFT) | \
+ (shift_vect_rtr << VGT_DEBUG_REG12_shift_vect_rtr_SHIFT) | \
+ (destination_rtr << VGT_DEBUG_REG12_destination_rtr_SHIFT) | \
+ (bgrp_trigger << VGT_DEBUG_REG12_bgrp_trigger_SHIFT))
+
+#define VGT_DEBUG_REG12_GET_shifter_byte_count_q(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_shifter_byte_count_q_MASK) >> VGT_DEBUG_REG12_shifter_byte_count_q_SHIFT)
+#define VGT_DEBUG_REG12_GET_right_word_indx_q(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_right_word_indx_q_MASK) >> VGT_DEBUG_REG12_right_word_indx_q_SHIFT)
+#define VGT_DEBUG_REG12_GET_input_data_valid(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_input_data_valid_MASK) >> VGT_DEBUG_REG12_input_data_valid_SHIFT)
+#define VGT_DEBUG_REG12_GET_input_data_xfer(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_input_data_xfer_MASK) >> VGT_DEBUG_REG12_input_data_xfer_SHIFT)
+#define VGT_DEBUG_REG12_GET_next_shift_is_vect_1_q(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_next_shift_is_vect_1_q_MASK) >> VGT_DEBUG_REG12_next_shift_is_vect_1_q_SHIFT)
+#define VGT_DEBUG_REG12_GET_next_shift_is_vect_1_d(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_next_shift_is_vect_1_d_MASK) >> VGT_DEBUG_REG12_next_shift_is_vect_1_d_SHIFT)
+#define VGT_DEBUG_REG12_GET_next_shift_is_vect_1_pre_d(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_next_shift_is_vect_1_pre_d_MASK) >> VGT_DEBUG_REG12_next_shift_is_vect_1_pre_d_SHIFT)
+#define VGT_DEBUG_REG12_GET_space_avail_from_shift(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_space_avail_from_shift_MASK) >> VGT_DEBUG_REG12_space_avail_from_shift_SHIFT)
+#define VGT_DEBUG_REG12_GET_shifter_first_load(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_shifter_first_load_MASK) >> VGT_DEBUG_REG12_shifter_first_load_SHIFT)
+#define VGT_DEBUG_REG12_GET_di_state_sel_q(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_di_state_sel_q_MASK) >> VGT_DEBUG_REG12_di_state_sel_q_SHIFT)
+#define VGT_DEBUG_REG12_GET_shifter_waiting_for_first_load_q(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_shifter_waiting_for_first_load_q_MASK) >> VGT_DEBUG_REG12_shifter_waiting_for_first_load_q_SHIFT)
+#define VGT_DEBUG_REG12_GET_di_first_group_flag_q(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_di_first_group_flag_q_MASK) >> VGT_DEBUG_REG12_di_first_group_flag_q_SHIFT)
+#define VGT_DEBUG_REG12_GET_di_event_flag_q(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_di_event_flag_q_MASK) >> VGT_DEBUG_REG12_di_event_flag_q_SHIFT)
+#define VGT_DEBUG_REG12_GET_read_draw_initiator(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_read_draw_initiator_MASK) >> VGT_DEBUG_REG12_read_draw_initiator_SHIFT)
+#define VGT_DEBUG_REG12_GET_loading_di_requires_shifter(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_loading_di_requires_shifter_MASK) >> VGT_DEBUG_REG12_loading_di_requires_shifter_SHIFT)
+#define VGT_DEBUG_REG12_GET_last_shift_of_packet(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_last_shift_of_packet_MASK) >> VGT_DEBUG_REG12_last_shift_of_packet_SHIFT)
+#define VGT_DEBUG_REG12_GET_last_decr_of_packet(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_last_decr_of_packet_MASK) >> VGT_DEBUG_REG12_last_decr_of_packet_SHIFT)
+#define VGT_DEBUG_REG12_GET_extract_vector(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_extract_vector_MASK) >> VGT_DEBUG_REG12_extract_vector_SHIFT)
+#define VGT_DEBUG_REG12_GET_shift_vect_rtr(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_shift_vect_rtr_MASK) >> VGT_DEBUG_REG12_shift_vect_rtr_SHIFT)
+#define VGT_DEBUG_REG12_GET_destination_rtr(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_destination_rtr_MASK) >> VGT_DEBUG_REG12_destination_rtr_SHIFT)
+#define VGT_DEBUG_REG12_GET_bgrp_trigger(vgt_debug_reg12) \
+ ((vgt_debug_reg12 & VGT_DEBUG_REG12_bgrp_trigger_MASK) >> VGT_DEBUG_REG12_bgrp_trigger_SHIFT)
+
+#define VGT_DEBUG_REG12_SET_shifter_byte_count_q(vgt_debug_reg12_reg, shifter_byte_count_q) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_shifter_byte_count_q_MASK) | (shifter_byte_count_q << VGT_DEBUG_REG12_shifter_byte_count_q_SHIFT)
+#define VGT_DEBUG_REG12_SET_right_word_indx_q(vgt_debug_reg12_reg, right_word_indx_q) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_right_word_indx_q_MASK) | (right_word_indx_q << VGT_DEBUG_REG12_right_word_indx_q_SHIFT)
+#define VGT_DEBUG_REG12_SET_input_data_valid(vgt_debug_reg12_reg, input_data_valid) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_input_data_valid_MASK) | (input_data_valid << VGT_DEBUG_REG12_input_data_valid_SHIFT)
+#define VGT_DEBUG_REG12_SET_input_data_xfer(vgt_debug_reg12_reg, input_data_xfer) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_input_data_xfer_MASK) | (input_data_xfer << VGT_DEBUG_REG12_input_data_xfer_SHIFT)
+#define VGT_DEBUG_REG12_SET_next_shift_is_vect_1_q(vgt_debug_reg12_reg, next_shift_is_vect_1_q) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_next_shift_is_vect_1_q_MASK) | (next_shift_is_vect_1_q << VGT_DEBUG_REG12_next_shift_is_vect_1_q_SHIFT)
+#define VGT_DEBUG_REG12_SET_next_shift_is_vect_1_d(vgt_debug_reg12_reg, next_shift_is_vect_1_d) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_next_shift_is_vect_1_d_MASK) | (next_shift_is_vect_1_d << VGT_DEBUG_REG12_next_shift_is_vect_1_d_SHIFT)
+#define VGT_DEBUG_REG12_SET_next_shift_is_vect_1_pre_d(vgt_debug_reg12_reg, next_shift_is_vect_1_pre_d) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_next_shift_is_vect_1_pre_d_MASK) | (next_shift_is_vect_1_pre_d << VGT_DEBUG_REG12_next_shift_is_vect_1_pre_d_SHIFT)
+#define VGT_DEBUG_REG12_SET_space_avail_from_shift(vgt_debug_reg12_reg, space_avail_from_shift) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_space_avail_from_shift_MASK) | (space_avail_from_shift << VGT_DEBUG_REG12_space_avail_from_shift_SHIFT)
+#define VGT_DEBUG_REG12_SET_shifter_first_load(vgt_debug_reg12_reg, shifter_first_load) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_shifter_first_load_MASK) | (shifter_first_load << VGT_DEBUG_REG12_shifter_first_load_SHIFT)
+#define VGT_DEBUG_REG12_SET_di_state_sel_q(vgt_debug_reg12_reg, di_state_sel_q) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_di_state_sel_q_MASK) | (di_state_sel_q << VGT_DEBUG_REG12_di_state_sel_q_SHIFT)
+#define VGT_DEBUG_REG12_SET_shifter_waiting_for_first_load_q(vgt_debug_reg12_reg, shifter_waiting_for_first_load_q) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_shifter_waiting_for_first_load_q_MASK) | (shifter_waiting_for_first_load_q << VGT_DEBUG_REG12_shifter_waiting_for_first_load_q_SHIFT)
+#define VGT_DEBUG_REG12_SET_di_first_group_flag_q(vgt_debug_reg12_reg, di_first_group_flag_q) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_di_first_group_flag_q_MASK) | (di_first_group_flag_q << VGT_DEBUG_REG12_di_first_group_flag_q_SHIFT)
+#define VGT_DEBUG_REG12_SET_di_event_flag_q(vgt_debug_reg12_reg, di_event_flag_q) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_di_event_flag_q_MASK) | (di_event_flag_q << VGT_DEBUG_REG12_di_event_flag_q_SHIFT)
+#define VGT_DEBUG_REG12_SET_read_draw_initiator(vgt_debug_reg12_reg, read_draw_initiator) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_read_draw_initiator_MASK) | (read_draw_initiator << VGT_DEBUG_REG12_read_draw_initiator_SHIFT)
+#define VGT_DEBUG_REG12_SET_loading_di_requires_shifter(vgt_debug_reg12_reg, loading_di_requires_shifter) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_loading_di_requires_shifter_MASK) | (loading_di_requires_shifter << VGT_DEBUG_REG12_loading_di_requires_shifter_SHIFT)
+#define VGT_DEBUG_REG12_SET_last_shift_of_packet(vgt_debug_reg12_reg, last_shift_of_packet) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_last_shift_of_packet_MASK) | (last_shift_of_packet << VGT_DEBUG_REG12_last_shift_of_packet_SHIFT)
+#define VGT_DEBUG_REG12_SET_last_decr_of_packet(vgt_debug_reg12_reg, last_decr_of_packet) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_last_decr_of_packet_MASK) | (last_decr_of_packet << VGT_DEBUG_REG12_last_decr_of_packet_SHIFT)
+#define VGT_DEBUG_REG12_SET_extract_vector(vgt_debug_reg12_reg, extract_vector) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_extract_vector_MASK) | (extract_vector << VGT_DEBUG_REG12_extract_vector_SHIFT)
+#define VGT_DEBUG_REG12_SET_shift_vect_rtr(vgt_debug_reg12_reg, shift_vect_rtr) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_shift_vect_rtr_MASK) | (shift_vect_rtr << VGT_DEBUG_REG12_shift_vect_rtr_SHIFT)
+#define VGT_DEBUG_REG12_SET_destination_rtr(vgt_debug_reg12_reg, destination_rtr) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_destination_rtr_MASK) | (destination_rtr << VGT_DEBUG_REG12_destination_rtr_SHIFT)
+#define VGT_DEBUG_REG12_SET_bgrp_trigger(vgt_debug_reg12_reg, bgrp_trigger) \
+ vgt_debug_reg12_reg = (vgt_debug_reg12_reg & ~VGT_DEBUG_REG12_bgrp_trigger_MASK) | (bgrp_trigger << VGT_DEBUG_REG12_bgrp_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg12_t {
+ unsigned int shifter_byte_count_q : VGT_DEBUG_REG12_shifter_byte_count_q_SIZE;
+ unsigned int right_word_indx_q : VGT_DEBUG_REG12_right_word_indx_q_SIZE;
+ unsigned int input_data_valid : VGT_DEBUG_REG12_input_data_valid_SIZE;
+ unsigned int input_data_xfer : VGT_DEBUG_REG12_input_data_xfer_SIZE;
+ unsigned int next_shift_is_vect_1_q : VGT_DEBUG_REG12_next_shift_is_vect_1_q_SIZE;
+ unsigned int next_shift_is_vect_1_d : VGT_DEBUG_REG12_next_shift_is_vect_1_d_SIZE;
+ unsigned int next_shift_is_vect_1_pre_d : VGT_DEBUG_REG12_next_shift_is_vect_1_pre_d_SIZE;
+ unsigned int space_avail_from_shift : VGT_DEBUG_REG12_space_avail_from_shift_SIZE;
+ unsigned int shifter_first_load : VGT_DEBUG_REG12_shifter_first_load_SIZE;
+ unsigned int di_state_sel_q : VGT_DEBUG_REG12_di_state_sel_q_SIZE;
+ unsigned int shifter_waiting_for_first_load_q : VGT_DEBUG_REG12_shifter_waiting_for_first_load_q_SIZE;
+ unsigned int di_first_group_flag_q : VGT_DEBUG_REG12_di_first_group_flag_q_SIZE;
+ unsigned int di_event_flag_q : VGT_DEBUG_REG12_di_event_flag_q_SIZE;
+ unsigned int read_draw_initiator : VGT_DEBUG_REG12_read_draw_initiator_SIZE;
+ unsigned int loading_di_requires_shifter : VGT_DEBUG_REG12_loading_di_requires_shifter_SIZE;
+ unsigned int last_shift_of_packet : VGT_DEBUG_REG12_last_shift_of_packet_SIZE;
+ unsigned int last_decr_of_packet : VGT_DEBUG_REG12_last_decr_of_packet_SIZE;
+ unsigned int extract_vector : VGT_DEBUG_REG12_extract_vector_SIZE;
+ unsigned int shift_vect_rtr : VGT_DEBUG_REG12_shift_vect_rtr_SIZE;
+ unsigned int destination_rtr : VGT_DEBUG_REG12_destination_rtr_SIZE;
+ unsigned int bgrp_trigger : VGT_DEBUG_REG12_bgrp_trigger_SIZE;
+ unsigned int : 3;
+ } vgt_debug_reg12_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg12_t {
+ unsigned int : 3;
+ unsigned int bgrp_trigger : VGT_DEBUG_REG12_bgrp_trigger_SIZE;
+ unsigned int destination_rtr : VGT_DEBUG_REG12_destination_rtr_SIZE;
+ unsigned int shift_vect_rtr : VGT_DEBUG_REG12_shift_vect_rtr_SIZE;
+ unsigned int extract_vector : VGT_DEBUG_REG12_extract_vector_SIZE;
+ unsigned int last_decr_of_packet : VGT_DEBUG_REG12_last_decr_of_packet_SIZE;
+ unsigned int last_shift_of_packet : VGT_DEBUG_REG12_last_shift_of_packet_SIZE;
+ unsigned int loading_di_requires_shifter : VGT_DEBUG_REG12_loading_di_requires_shifter_SIZE;
+ unsigned int read_draw_initiator : VGT_DEBUG_REG12_read_draw_initiator_SIZE;
+ unsigned int di_event_flag_q : VGT_DEBUG_REG12_di_event_flag_q_SIZE;
+ unsigned int di_first_group_flag_q : VGT_DEBUG_REG12_di_first_group_flag_q_SIZE;
+ unsigned int shifter_waiting_for_first_load_q : VGT_DEBUG_REG12_shifter_waiting_for_first_load_q_SIZE;
+ unsigned int di_state_sel_q : VGT_DEBUG_REG12_di_state_sel_q_SIZE;
+ unsigned int shifter_first_load : VGT_DEBUG_REG12_shifter_first_load_SIZE;
+ unsigned int space_avail_from_shift : VGT_DEBUG_REG12_space_avail_from_shift_SIZE;
+ unsigned int next_shift_is_vect_1_pre_d : VGT_DEBUG_REG12_next_shift_is_vect_1_pre_d_SIZE;
+ unsigned int next_shift_is_vect_1_d : VGT_DEBUG_REG12_next_shift_is_vect_1_d_SIZE;
+ unsigned int next_shift_is_vect_1_q : VGT_DEBUG_REG12_next_shift_is_vect_1_q_SIZE;
+ unsigned int input_data_xfer : VGT_DEBUG_REG12_input_data_xfer_SIZE;
+ unsigned int input_data_valid : VGT_DEBUG_REG12_input_data_valid_SIZE;
+ unsigned int right_word_indx_q : VGT_DEBUG_REG12_right_word_indx_q_SIZE;
+ unsigned int shifter_byte_count_q : VGT_DEBUG_REG12_shifter_byte_count_q_SIZE;
+ } vgt_debug_reg12_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_reg12_t f;
+} vgt_debug_reg12_u;
+
+
+/*
+ * VGT_DEBUG_REG13 struct
+ */
+
+#define VGT_DEBUG_REG13_di_index_counter_q_SIZE 16
+#define VGT_DEBUG_REG13_shift_amount_no_extract_SIZE 4
+#define VGT_DEBUG_REG13_shift_amount_extract_SIZE 4
+#define VGT_DEBUG_REG13_di_prim_type_q_SIZE 6
+#define VGT_DEBUG_REG13_current_source_sel_SIZE 2
+
+#define VGT_DEBUG_REG13_di_index_counter_q_SHIFT 0
+#define VGT_DEBUG_REG13_shift_amount_no_extract_SHIFT 16
+#define VGT_DEBUG_REG13_shift_amount_extract_SHIFT 20
+#define VGT_DEBUG_REG13_di_prim_type_q_SHIFT 24
+#define VGT_DEBUG_REG13_current_source_sel_SHIFT 30
+
+#define VGT_DEBUG_REG13_di_index_counter_q_MASK 0x0000ffff
+#define VGT_DEBUG_REG13_shift_amount_no_extract_MASK 0x000f0000
+#define VGT_DEBUG_REG13_shift_amount_extract_MASK 0x00f00000
+#define VGT_DEBUG_REG13_di_prim_type_q_MASK 0x3f000000
+#define VGT_DEBUG_REG13_current_source_sel_MASK 0xc0000000
+
+#define VGT_DEBUG_REG13_MASK \
+ (VGT_DEBUG_REG13_di_index_counter_q_MASK | \
+ VGT_DEBUG_REG13_shift_amount_no_extract_MASK | \
+ VGT_DEBUG_REG13_shift_amount_extract_MASK | \
+ VGT_DEBUG_REG13_di_prim_type_q_MASK | \
+ VGT_DEBUG_REG13_current_source_sel_MASK)
+
+#define VGT_DEBUG_REG13(di_index_counter_q, shift_amount_no_extract, shift_amount_extract, di_prim_type_q, current_source_sel) \
+ ((di_index_counter_q << VGT_DEBUG_REG13_di_index_counter_q_SHIFT) | \
+ (shift_amount_no_extract << VGT_DEBUG_REG13_shift_amount_no_extract_SHIFT) | \
+ (shift_amount_extract << VGT_DEBUG_REG13_shift_amount_extract_SHIFT) | \
+ (di_prim_type_q << VGT_DEBUG_REG13_di_prim_type_q_SHIFT) | \
+ (current_source_sel << VGT_DEBUG_REG13_current_source_sel_SHIFT))
+
+#define VGT_DEBUG_REG13_GET_di_index_counter_q(vgt_debug_reg13) \
+ ((vgt_debug_reg13 & VGT_DEBUG_REG13_di_index_counter_q_MASK) >> VGT_DEBUG_REG13_di_index_counter_q_SHIFT)
+#define VGT_DEBUG_REG13_GET_shift_amount_no_extract(vgt_debug_reg13) \
+ ((vgt_debug_reg13 & VGT_DEBUG_REG13_shift_amount_no_extract_MASK) >> VGT_DEBUG_REG13_shift_amount_no_extract_SHIFT)
+#define VGT_DEBUG_REG13_GET_shift_amount_extract(vgt_debug_reg13) \
+ ((vgt_debug_reg13 & VGT_DEBUG_REG13_shift_amount_extract_MASK) >> VGT_DEBUG_REG13_shift_amount_extract_SHIFT)
+#define VGT_DEBUG_REG13_GET_di_prim_type_q(vgt_debug_reg13) \
+ ((vgt_debug_reg13 & VGT_DEBUG_REG13_di_prim_type_q_MASK) >> VGT_DEBUG_REG13_di_prim_type_q_SHIFT)
+#define VGT_DEBUG_REG13_GET_current_source_sel(vgt_debug_reg13) \
+ ((vgt_debug_reg13 & VGT_DEBUG_REG13_current_source_sel_MASK) >> VGT_DEBUG_REG13_current_source_sel_SHIFT)
+
+#define VGT_DEBUG_REG13_SET_di_index_counter_q(vgt_debug_reg13_reg, di_index_counter_q) \
+ vgt_debug_reg13_reg = (vgt_debug_reg13_reg & ~VGT_DEBUG_REG13_di_index_counter_q_MASK) | (di_index_counter_q << VGT_DEBUG_REG13_di_index_counter_q_SHIFT)
+#define VGT_DEBUG_REG13_SET_shift_amount_no_extract(vgt_debug_reg13_reg, shift_amount_no_extract) \
+ vgt_debug_reg13_reg = (vgt_debug_reg13_reg & ~VGT_DEBUG_REG13_shift_amount_no_extract_MASK) | (shift_amount_no_extract << VGT_DEBUG_REG13_shift_amount_no_extract_SHIFT)
+#define VGT_DEBUG_REG13_SET_shift_amount_extract(vgt_debug_reg13_reg, shift_amount_extract) \
+ vgt_debug_reg13_reg = (vgt_debug_reg13_reg & ~VGT_DEBUG_REG13_shift_amount_extract_MASK) | (shift_amount_extract << VGT_DEBUG_REG13_shift_amount_extract_SHIFT)
+#define VGT_DEBUG_REG13_SET_di_prim_type_q(vgt_debug_reg13_reg, di_prim_type_q) \
+ vgt_debug_reg13_reg = (vgt_debug_reg13_reg & ~VGT_DEBUG_REG13_di_prim_type_q_MASK) | (di_prim_type_q << VGT_DEBUG_REG13_di_prim_type_q_SHIFT)
+#define VGT_DEBUG_REG13_SET_current_source_sel(vgt_debug_reg13_reg, current_source_sel) \
+ vgt_debug_reg13_reg = (vgt_debug_reg13_reg & ~VGT_DEBUG_REG13_current_source_sel_MASK) | (current_source_sel << VGT_DEBUG_REG13_current_source_sel_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg13_t {
+ unsigned int di_index_counter_q : VGT_DEBUG_REG13_di_index_counter_q_SIZE;
+ unsigned int shift_amount_no_extract : VGT_DEBUG_REG13_shift_amount_no_extract_SIZE;
+ unsigned int shift_amount_extract : VGT_DEBUG_REG13_shift_amount_extract_SIZE;
+ unsigned int di_prim_type_q : VGT_DEBUG_REG13_di_prim_type_q_SIZE;
+ unsigned int current_source_sel : VGT_DEBUG_REG13_current_source_sel_SIZE;
+ } vgt_debug_reg13_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg13_t {
+ unsigned int current_source_sel : VGT_DEBUG_REG13_current_source_sel_SIZE;
+ unsigned int di_prim_type_q : VGT_DEBUG_REG13_di_prim_type_q_SIZE;
+ unsigned int shift_amount_extract : VGT_DEBUG_REG13_shift_amount_extract_SIZE;
+ unsigned int shift_amount_no_extract : VGT_DEBUG_REG13_shift_amount_no_extract_SIZE;
+ unsigned int di_index_counter_q : VGT_DEBUG_REG13_di_index_counter_q_SIZE;
+ } vgt_debug_reg13_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_reg13_t f;
+} vgt_debug_reg13_u;
+
+
+/*
+ * VGT_DEBUG_REG14 struct
+ */
+
+#define VGT_DEBUG_REG14_current_source_sel_SIZE 2
+#define VGT_DEBUG_REG14_left_word_indx_q_SIZE 5
+#define VGT_DEBUG_REG14_input_data_cnt_SIZE 5
+#define VGT_DEBUG_REG14_input_data_lsw_SIZE 5
+#define VGT_DEBUG_REG14_input_data_msw_SIZE 5
+#define VGT_DEBUG_REG14_next_small_stride_shift_limit_q_SIZE 5
+#define VGT_DEBUG_REG14_current_small_stride_shift_limit_q_SIZE 5
+
+#define VGT_DEBUG_REG14_current_source_sel_SHIFT 0
+#define VGT_DEBUG_REG14_left_word_indx_q_SHIFT 2
+#define VGT_DEBUG_REG14_input_data_cnt_SHIFT 7
+#define VGT_DEBUG_REG14_input_data_lsw_SHIFT 12
+#define VGT_DEBUG_REG14_input_data_msw_SHIFT 17
+#define VGT_DEBUG_REG14_next_small_stride_shift_limit_q_SHIFT 22
+#define VGT_DEBUG_REG14_current_small_stride_shift_limit_q_SHIFT 27
+
+#define VGT_DEBUG_REG14_current_source_sel_MASK 0x00000003
+#define VGT_DEBUG_REG14_left_word_indx_q_MASK 0x0000007c
+#define VGT_DEBUG_REG14_input_data_cnt_MASK 0x00000f80
+#define VGT_DEBUG_REG14_input_data_lsw_MASK 0x0001f000
+#define VGT_DEBUG_REG14_input_data_msw_MASK 0x003e0000
+#define VGT_DEBUG_REG14_next_small_stride_shift_limit_q_MASK 0x07c00000
+#define VGT_DEBUG_REG14_current_small_stride_shift_limit_q_MASK 0xf8000000
+
+#define VGT_DEBUG_REG14_MASK \
+ (VGT_DEBUG_REG14_current_source_sel_MASK | \
+ VGT_DEBUG_REG14_left_word_indx_q_MASK | \
+ VGT_DEBUG_REG14_input_data_cnt_MASK | \
+ VGT_DEBUG_REG14_input_data_lsw_MASK | \
+ VGT_DEBUG_REG14_input_data_msw_MASK | \
+ VGT_DEBUG_REG14_next_small_stride_shift_limit_q_MASK | \
+ VGT_DEBUG_REG14_current_small_stride_shift_limit_q_MASK)
+
+#define VGT_DEBUG_REG14(current_source_sel, left_word_indx_q, input_data_cnt, input_data_lsw, input_data_msw, next_small_stride_shift_limit_q, current_small_stride_shift_limit_q) \
+ ((current_source_sel << VGT_DEBUG_REG14_current_source_sel_SHIFT) | \
+ (left_word_indx_q << VGT_DEBUG_REG14_left_word_indx_q_SHIFT) | \
+ (input_data_cnt << VGT_DEBUG_REG14_input_data_cnt_SHIFT) | \
+ (input_data_lsw << VGT_DEBUG_REG14_input_data_lsw_SHIFT) | \
+ (input_data_msw << VGT_DEBUG_REG14_input_data_msw_SHIFT) | \
+ (next_small_stride_shift_limit_q << VGT_DEBUG_REG14_next_small_stride_shift_limit_q_SHIFT) | \
+ (current_small_stride_shift_limit_q << VGT_DEBUG_REG14_current_small_stride_shift_limit_q_SHIFT))
+
+#define VGT_DEBUG_REG14_GET_current_source_sel(vgt_debug_reg14) \
+ ((vgt_debug_reg14 & VGT_DEBUG_REG14_current_source_sel_MASK) >> VGT_DEBUG_REG14_current_source_sel_SHIFT)
+#define VGT_DEBUG_REG14_GET_left_word_indx_q(vgt_debug_reg14) \
+ ((vgt_debug_reg14 & VGT_DEBUG_REG14_left_word_indx_q_MASK) >> VGT_DEBUG_REG14_left_word_indx_q_SHIFT)
+#define VGT_DEBUG_REG14_GET_input_data_cnt(vgt_debug_reg14) \
+ ((vgt_debug_reg14 & VGT_DEBUG_REG14_input_data_cnt_MASK) >> VGT_DEBUG_REG14_input_data_cnt_SHIFT)
+#define VGT_DEBUG_REG14_GET_input_data_lsw(vgt_debug_reg14) \
+ ((vgt_debug_reg14 & VGT_DEBUG_REG14_input_data_lsw_MASK) >> VGT_DEBUG_REG14_input_data_lsw_SHIFT)
+#define VGT_DEBUG_REG14_GET_input_data_msw(vgt_debug_reg14) \
+ ((vgt_debug_reg14 & VGT_DEBUG_REG14_input_data_msw_MASK) >> VGT_DEBUG_REG14_input_data_msw_SHIFT)
+#define VGT_DEBUG_REG14_GET_next_small_stride_shift_limit_q(vgt_debug_reg14) \
+ ((vgt_debug_reg14 & VGT_DEBUG_REG14_next_small_stride_shift_limit_q_MASK) >> VGT_DEBUG_REG14_next_small_stride_shift_limit_q_SHIFT)
+#define VGT_DEBUG_REG14_GET_current_small_stride_shift_limit_q(vgt_debug_reg14) \
+ ((vgt_debug_reg14 & VGT_DEBUG_REG14_current_small_stride_shift_limit_q_MASK) >> VGT_DEBUG_REG14_current_small_stride_shift_limit_q_SHIFT)
+
+#define VGT_DEBUG_REG14_SET_current_source_sel(vgt_debug_reg14_reg, current_source_sel) \
+ vgt_debug_reg14_reg = (vgt_debug_reg14_reg & ~VGT_DEBUG_REG14_current_source_sel_MASK) | (current_source_sel << VGT_DEBUG_REG14_current_source_sel_SHIFT)
+#define VGT_DEBUG_REG14_SET_left_word_indx_q(vgt_debug_reg14_reg, left_word_indx_q) \
+ vgt_debug_reg14_reg = (vgt_debug_reg14_reg & ~VGT_DEBUG_REG14_left_word_indx_q_MASK) | (left_word_indx_q << VGT_DEBUG_REG14_left_word_indx_q_SHIFT)
+#define VGT_DEBUG_REG14_SET_input_data_cnt(vgt_debug_reg14_reg, input_data_cnt) \
+ vgt_debug_reg14_reg = (vgt_debug_reg14_reg & ~VGT_DEBUG_REG14_input_data_cnt_MASK) | (input_data_cnt << VGT_DEBUG_REG14_input_data_cnt_SHIFT)
+#define VGT_DEBUG_REG14_SET_input_data_lsw(vgt_debug_reg14_reg, input_data_lsw) \
+ vgt_debug_reg14_reg = (vgt_debug_reg14_reg & ~VGT_DEBUG_REG14_input_data_lsw_MASK) | (input_data_lsw << VGT_DEBUG_REG14_input_data_lsw_SHIFT)
+#define VGT_DEBUG_REG14_SET_input_data_msw(vgt_debug_reg14_reg, input_data_msw) \
+ vgt_debug_reg14_reg = (vgt_debug_reg14_reg & ~VGT_DEBUG_REG14_input_data_msw_MASK) | (input_data_msw << VGT_DEBUG_REG14_input_data_msw_SHIFT)
+#define VGT_DEBUG_REG14_SET_next_small_stride_shift_limit_q(vgt_debug_reg14_reg, next_small_stride_shift_limit_q) \
+ vgt_debug_reg14_reg = (vgt_debug_reg14_reg & ~VGT_DEBUG_REG14_next_small_stride_shift_limit_q_MASK) | (next_small_stride_shift_limit_q << VGT_DEBUG_REG14_next_small_stride_shift_limit_q_SHIFT)
+#define VGT_DEBUG_REG14_SET_current_small_stride_shift_limit_q(vgt_debug_reg14_reg, current_small_stride_shift_limit_q) \
+ vgt_debug_reg14_reg = (vgt_debug_reg14_reg & ~VGT_DEBUG_REG14_current_small_stride_shift_limit_q_MASK) | (current_small_stride_shift_limit_q << VGT_DEBUG_REG14_current_small_stride_shift_limit_q_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg14_t {
+ unsigned int current_source_sel : VGT_DEBUG_REG14_current_source_sel_SIZE;
+ unsigned int left_word_indx_q : VGT_DEBUG_REG14_left_word_indx_q_SIZE;
+ unsigned int input_data_cnt : VGT_DEBUG_REG14_input_data_cnt_SIZE;
+ unsigned int input_data_lsw : VGT_DEBUG_REG14_input_data_lsw_SIZE;
+ unsigned int input_data_msw : VGT_DEBUG_REG14_input_data_msw_SIZE;
+ unsigned int next_small_stride_shift_limit_q : VGT_DEBUG_REG14_next_small_stride_shift_limit_q_SIZE;
+ unsigned int current_small_stride_shift_limit_q : VGT_DEBUG_REG14_current_small_stride_shift_limit_q_SIZE;
+ } vgt_debug_reg14_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg14_t {
+ unsigned int current_small_stride_shift_limit_q : VGT_DEBUG_REG14_current_small_stride_shift_limit_q_SIZE;
+ unsigned int next_small_stride_shift_limit_q : VGT_DEBUG_REG14_next_small_stride_shift_limit_q_SIZE;
+ unsigned int input_data_msw : VGT_DEBUG_REG14_input_data_msw_SIZE;
+ unsigned int input_data_lsw : VGT_DEBUG_REG14_input_data_lsw_SIZE;
+ unsigned int input_data_cnt : VGT_DEBUG_REG14_input_data_cnt_SIZE;
+ unsigned int left_word_indx_q : VGT_DEBUG_REG14_left_word_indx_q_SIZE;
+ unsigned int current_source_sel : VGT_DEBUG_REG14_current_source_sel_SIZE;
+ } vgt_debug_reg14_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_reg14_t f;
+} vgt_debug_reg14_u;
+
+
+/*
+ * VGT_DEBUG_REG15 struct
+ */
+
+#define VGT_DEBUG_REG15_next_stride_q_SIZE 5
+#define VGT_DEBUG_REG15_next_stride_d_SIZE 5
+#define VGT_DEBUG_REG15_current_shift_q_SIZE 5
+#define VGT_DEBUG_REG15_current_shift_d_SIZE 5
+#define VGT_DEBUG_REG15_current_stride_q_SIZE 5
+#define VGT_DEBUG_REG15_current_stride_d_SIZE 5
+#define VGT_DEBUG_REG15_bgrp_trigger_SIZE 1
+
+#define VGT_DEBUG_REG15_next_stride_q_SHIFT 0
+#define VGT_DEBUG_REG15_next_stride_d_SHIFT 5
+#define VGT_DEBUG_REG15_current_shift_q_SHIFT 10
+#define VGT_DEBUG_REG15_current_shift_d_SHIFT 15
+#define VGT_DEBUG_REG15_current_stride_q_SHIFT 20
+#define VGT_DEBUG_REG15_current_stride_d_SHIFT 25
+#define VGT_DEBUG_REG15_bgrp_trigger_SHIFT 30
+
+#define VGT_DEBUG_REG15_next_stride_q_MASK 0x0000001f
+#define VGT_DEBUG_REG15_next_stride_d_MASK 0x000003e0
+#define VGT_DEBUG_REG15_current_shift_q_MASK 0x00007c00
+#define VGT_DEBUG_REG15_current_shift_d_MASK 0x000f8000
+#define VGT_DEBUG_REG15_current_stride_q_MASK 0x01f00000
+#define VGT_DEBUG_REG15_current_stride_d_MASK 0x3e000000
+#define VGT_DEBUG_REG15_bgrp_trigger_MASK 0x40000000
+
+#define VGT_DEBUG_REG15_MASK \
+ (VGT_DEBUG_REG15_next_stride_q_MASK | \
+ VGT_DEBUG_REG15_next_stride_d_MASK | \
+ VGT_DEBUG_REG15_current_shift_q_MASK | \
+ VGT_DEBUG_REG15_current_shift_d_MASK | \
+ VGT_DEBUG_REG15_current_stride_q_MASK | \
+ VGT_DEBUG_REG15_current_stride_d_MASK | \
+ VGT_DEBUG_REG15_bgrp_trigger_MASK)
+
+#define VGT_DEBUG_REG15(next_stride_q, next_stride_d, current_shift_q, current_shift_d, current_stride_q, current_stride_d, bgrp_trigger) \
+ ((next_stride_q << VGT_DEBUG_REG15_next_stride_q_SHIFT) | \
+ (next_stride_d << VGT_DEBUG_REG15_next_stride_d_SHIFT) | \
+ (current_shift_q << VGT_DEBUG_REG15_current_shift_q_SHIFT) | \
+ (current_shift_d << VGT_DEBUG_REG15_current_shift_d_SHIFT) | \
+ (current_stride_q << VGT_DEBUG_REG15_current_stride_q_SHIFT) | \
+ (current_stride_d << VGT_DEBUG_REG15_current_stride_d_SHIFT) | \
+ (bgrp_trigger << VGT_DEBUG_REG15_bgrp_trigger_SHIFT))
+
+#define VGT_DEBUG_REG15_GET_next_stride_q(vgt_debug_reg15) \
+ ((vgt_debug_reg15 & VGT_DEBUG_REG15_next_stride_q_MASK) >> VGT_DEBUG_REG15_next_stride_q_SHIFT)
+#define VGT_DEBUG_REG15_GET_next_stride_d(vgt_debug_reg15) \
+ ((vgt_debug_reg15 & VGT_DEBUG_REG15_next_stride_d_MASK) >> VGT_DEBUG_REG15_next_stride_d_SHIFT)
+#define VGT_DEBUG_REG15_GET_current_shift_q(vgt_debug_reg15) \
+ ((vgt_debug_reg15 & VGT_DEBUG_REG15_current_shift_q_MASK) >> VGT_DEBUG_REG15_current_shift_q_SHIFT)
+#define VGT_DEBUG_REG15_GET_current_shift_d(vgt_debug_reg15) \
+ ((vgt_debug_reg15 & VGT_DEBUG_REG15_current_shift_d_MASK) >> VGT_DEBUG_REG15_current_shift_d_SHIFT)
+#define VGT_DEBUG_REG15_GET_current_stride_q(vgt_debug_reg15) \
+ ((vgt_debug_reg15 & VGT_DEBUG_REG15_current_stride_q_MASK) >> VGT_DEBUG_REG15_current_stride_q_SHIFT)
+#define VGT_DEBUG_REG15_GET_current_stride_d(vgt_debug_reg15) \
+ ((vgt_debug_reg15 & VGT_DEBUG_REG15_current_stride_d_MASK) >> VGT_DEBUG_REG15_current_stride_d_SHIFT)
+#define VGT_DEBUG_REG15_GET_bgrp_trigger(vgt_debug_reg15) \
+ ((vgt_debug_reg15 & VGT_DEBUG_REG15_bgrp_trigger_MASK) >> VGT_DEBUG_REG15_bgrp_trigger_SHIFT)
+
+#define VGT_DEBUG_REG15_SET_next_stride_q(vgt_debug_reg15_reg, next_stride_q) \
+ vgt_debug_reg15_reg = (vgt_debug_reg15_reg & ~VGT_DEBUG_REG15_next_stride_q_MASK) | (next_stride_q << VGT_DEBUG_REG15_next_stride_q_SHIFT)
+#define VGT_DEBUG_REG15_SET_next_stride_d(vgt_debug_reg15_reg, next_stride_d) \
+ vgt_debug_reg15_reg = (vgt_debug_reg15_reg & ~VGT_DEBUG_REG15_next_stride_d_MASK) | (next_stride_d << VGT_DEBUG_REG15_next_stride_d_SHIFT)
+#define VGT_DEBUG_REG15_SET_current_shift_q(vgt_debug_reg15_reg, current_shift_q) \
+ vgt_debug_reg15_reg = (vgt_debug_reg15_reg & ~VGT_DEBUG_REG15_current_shift_q_MASK) | (current_shift_q << VGT_DEBUG_REG15_current_shift_q_SHIFT)
+#define VGT_DEBUG_REG15_SET_current_shift_d(vgt_debug_reg15_reg, current_shift_d) \
+ vgt_debug_reg15_reg = (vgt_debug_reg15_reg & ~VGT_DEBUG_REG15_current_shift_d_MASK) | (current_shift_d << VGT_DEBUG_REG15_current_shift_d_SHIFT)
+#define VGT_DEBUG_REG15_SET_current_stride_q(vgt_debug_reg15_reg, current_stride_q) \
+ vgt_debug_reg15_reg = (vgt_debug_reg15_reg & ~VGT_DEBUG_REG15_current_stride_q_MASK) | (current_stride_q << VGT_DEBUG_REG15_current_stride_q_SHIFT)
+#define VGT_DEBUG_REG15_SET_current_stride_d(vgt_debug_reg15_reg, current_stride_d) \
+ vgt_debug_reg15_reg = (vgt_debug_reg15_reg & ~VGT_DEBUG_REG15_current_stride_d_MASK) | (current_stride_d << VGT_DEBUG_REG15_current_stride_d_SHIFT)
+#define VGT_DEBUG_REG15_SET_bgrp_trigger(vgt_debug_reg15_reg, bgrp_trigger) \
+ vgt_debug_reg15_reg = (vgt_debug_reg15_reg & ~VGT_DEBUG_REG15_bgrp_trigger_MASK) | (bgrp_trigger << VGT_DEBUG_REG15_bgrp_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg15_t {
+ unsigned int next_stride_q : VGT_DEBUG_REG15_next_stride_q_SIZE;
+ unsigned int next_stride_d : VGT_DEBUG_REG15_next_stride_d_SIZE;
+ unsigned int current_shift_q : VGT_DEBUG_REG15_current_shift_q_SIZE;
+ unsigned int current_shift_d : VGT_DEBUG_REG15_current_shift_d_SIZE;
+ unsigned int current_stride_q : VGT_DEBUG_REG15_current_stride_q_SIZE;
+ unsigned int current_stride_d : VGT_DEBUG_REG15_current_stride_d_SIZE;
+ unsigned int bgrp_trigger : VGT_DEBUG_REG15_bgrp_trigger_SIZE;
+ unsigned int : 1;
+ } vgt_debug_reg15_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg15_t {
+ unsigned int : 1;
+ unsigned int bgrp_trigger : VGT_DEBUG_REG15_bgrp_trigger_SIZE;
+ unsigned int current_stride_d : VGT_DEBUG_REG15_current_stride_d_SIZE;
+ unsigned int current_stride_q : VGT_DEBUG_REG15_current_stride_q_SIZE;
+ unsigned int current_shift_d : VGT_DEBUG_REG15_current_shift_d_SIZE;
+ unsigned int current_shift_q : VGT_DEBUG_REG15_current_shift_q_SIZE;
+ unsigned int next_stride_d : VGT_DEBUG_REG15_next_stride_d_SIZE;
+ unsigned int next_stride_q : VGT_DEBUG_REG15_next_stride_q_SIZE;
+ } vgt_debug_reg15_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_reg15_t f;
+} vgt_debug_reg15_u;
+
+
+/*
+ * VGT_DEBUG_REG16 struct
+ */
+
+#define VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_full_SIZE 1
+#define VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_empty_SIZE 1
+#define VGT_DEBUG_REG16_dma_bgrp_cull_fetch_read_SIZE 1
+#define VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_we_SIZE 1
+#define VGT_DEBUG_REG16_bgrp_byte_mask_fifo_full_SIZE 1
+#define VGT_DEBUG_REG16_bgrp_byte_mask_fifo_empty_SIZE 1
+#define VGT_DEBUG_REG16_bgrp_byte_mask_fifo_re_q_SIZE 1
+#define VGT_DEBUG_REG16_bgrp_byte_mask_fifo_we_SIZE 1
+#define VGT_DEBUG_REG16_bgrp_dma_mask_kill_SIZE 1
+#define VGT_DEBUG_REG16_bgrp_grp_bin_valid_SIZE 1
+#define VGT_DEBUG_REG16_rst_last_bit_SIZE 1
+#define VGT_DEBUG_REG16_current_state_q_SIZE 1
+#define VGT_DEBUG_REG16_old_state_q_SIZE 1
+#define VGT_DEBUG_REG16_old_state_en_SIZE 1
+#define VGT_DEBUG_REG16_prev_last_bit_q_SIZE 1
+#define VGT_DEBUG_REG16_dbl_last_bit_q_SIZE 1
+#define VGT_DEBUG_REG16_last_bit_block_q_SIZE 1
+#define VGT_DEBUG_REG16_ast_bit_block2_q_SIZE 1
+#define VGT_DEBUG_REG16_load_empty_reg_SIZE 1
+#define VGT_DEBUG_REG16_bgrp_grp_byte_mask_rdata_SIZE 8
+#define VGT_DEBUG_REG16_dma_bgrp_dma_data_fifo_rptr_SIZE 2
+#define VGT_DEBUG_REG16_top_di_pre_fetch_cull_enable_SIZE 1
+#define VGT_DEBUG_REG16_top_di_grp_cull_enable_q_SIZE 1
+#define VGT_DEBUG_REG16_bgrp_trigger_SIZE 1
+
+#define VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_full_SHIFT 0
+#define VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_empty_SHIFT 1
+#define VGT_DEBUG_REG16_dma_bgrp_cull_fetch_read_SHIFT 2
+#define VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_we_SHIFT 3
+#define VGT_DEBUG_REG16_bgrp_byte_mask_fifo_full_SHIFT 4
+#define VGT_DEBUG_REG16_bgrp_byte_mask_fifo_empty_SHIFT 5
+#define VGT_DEBUG_REG16_bgrp_byte_mask_fifo_re_q_SHIFT 6
+#define VGT_DEBUG_REG16_bgrp_byte_mask_fifo_we_SHIFT 7
+#define VGT_DEBUG_REG16_bgrp_dma_mask_kill_SHIFT 8
+#define VGT_DEBUG_REG16_bgrp_grp_bin_valid_SHIFT 9
+#define VGT_DEBUG_REG16_rst_last_bit_SHIFT 10
+#define VGT_DEBUG_REG16_current_state_q_SHIFT 11
+#define VGT_DEBUG_REG16_old_state_q_SHIFT 12
+#define VGT_DEBUG_REG16_old_state_en_SHIFT 13
+#define VGT_DEBUG_REG16_prev_last_bit_q_SHIFT 14
+#define VGT_DEBUG_REG16_dbl_last_bit_q_SHIFT 15
+#define VGT_DEBUG_REG16_last_bit_block_q_SHIFT 16
+#define VGT_DEBUG_REG16_ast_bit_block2_q_SHIFT 17
+#define VGT_DEBUG_REG16_load_empty_reg_SHIFT 18
+#define VGT_DEBUG_REG16_bgrp_grp_byte_mask_rdata_SHIFT 19
+#define VGT_DEBUG_REG16_dma_bgrp_dma_data_fifo_rptr_SHIFT 27
+#define VGT_DEBUG_REG16_top_di_pre_fetch_cull_enable_SHIFT 29
+#define VGT_DEBUG_REG16_top_di_grp_cull_enable_q_SHIFT 30
+#define VGT_DEBUG_REG16_bgrp_trigger_SHIFT 31
+
+#define VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_full_MASK 0x00000001
+#define VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_empty_MASK 0x00000002
+#define VGT_DEBUG_REG16_dma_bgrp_cull_fetch_read_MASK 0x00000004
+#define VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_we_MASK 0x00000008
+#define VGT_DEBUG_REG16_bgrp_byte_mask_fifo_full_MASK 0x00000010
+#define VGT_DEBUG_REG16_bgrp_byte_mask_fifo_empty_MASK 0x00000020
+#define VGT_DEBUG_REG16_bgrp_byte_mask_fifo_re_q_MASK 0x00000040
+#define VGT_DEBUG_REG16_bgrp_byte_mask_fifo_we_MASK 0x00000080
+#define VGT_DEBUG_REG16_bgrp_dma_mask_kill_MASK 0x00000100
+#define VGT_DEBUG_REG16_bgrp_grp_bin_valid_MASK 0x00000200
+#define VGT_DEBUG_REG16_rst_last_bit_MASK 0x00000400
+#define VGT_DEBUG_REG16_current_state_q_MASK 0x00000800
+#define VGT_DEBUG_REG16_old_state_q_MASK 0x00001000
+#define VGT_DEBUG_REG16_old_state_en_MASK 0x00002000
+#define VGT_DEBUG_REG16_prev_last_bit_q_MASK 0x00004000
+#define VGT_DEBUG_REG16_dbl_last_bit_q_MASK 0x00008000
+#define VGT_DEBUG_REG16_last_bit_block_q_MASK 0x00010000
+#define VGT_DEBUG_REG16_ast_bit_block2_q_MASK 0x00020000
+#define VGT_DEBUG_REG16_load_empty_reg_MASK 0x00040000
+#define VGT_DEBUG_REG16_bgrp_grp_byte_mask_rdata_MASK 0x07f80000
+#define VGT_DEBUG_REG16_dma_bgrp_dma_data_fifo_rptr_MASK 0x18000000
+#define VGT_DEBUG_REG16_top_di_pre_fetch_cull_enable_MASK 0x20000000
+#define VGT_DEBUG_REG16_top_di_grp_cull_enable_q_MASK 0x40000000
+#define VGT_DEBUG_REG16_bgrp_trigger_MASK 0x80000000
+
+#define VGT_DEBUG_REG16_MASK \
+ (VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_full_MASK | \
+ VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_empty_MASK | \
+ VGT_DEBUG_REG16_dma_bgrp_cull_fetch_read_MASK | \
+ VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_we_MASK | \
+ VGT_DEBUG_REG16_bgrp_byte_mask_fifo_full_MASK | \
+ VGT_DEBUG_REG16_bgrp_byte_mask_fifo_empty_MASK | \
+ VGT_DEBUG_REG16_bgrp_byte_mask_fifo_re_q_MASK | \
+ VGT_DEBUG_REG16_bgrp_byte_mask_fifo_we_MASK | \
+ VGT_DEBUG_REG16_bgrp_dma_mask_kill_MASK | \
+ VGT_DEBUG_REG16_bgrp_grp_bin_valid_MASK | \
+ VGT_DEBUG_REG16_rst_last_bit_MASK | \
+ VGT_DEBUG_REG16_current_state_q_MASK | \
+ VGT_DEBUG_REG16_old_state_q_MASK | \
+ VGT_DEBUG_REG16_old_state_en_MASK | \
+ VGT_DEBUG_REG16_prev_last_bit_q_MASK | \
+ VGT_DEBUG_REG16_dbl_last_bit_q_MASK | \
+ VGT_DEBUG_REG16_last_bit_block_q_MASK | \
+ VGT_DEBUG_REG16_ast_bit_block2_q_MASK | \
+ VGT_DEBUG_REG16_load_empty_reg_MASK | \
+ VGT_DEBUG_REG16_bgrp_grp_byte_mask_rdata_MASK | \
+ VGT_DEBUG_REG16_dma_bgrp_dma_data_fifo_rptr_MASK | \
+ VGT_DEBUG_REG16_top_di_pre_fetch_cull_enable_MASK | \
+ VGT_DEBUG_REG16_top_di_grp_cull_enable_q_MASK | \
+ VGT_DEBUG_REG16_bgrp_trigger_MASK)
+
+#define VGT_DEBUG_REG16(bgrp_cull_fetch_fifo_full, bgrp_cull_fetch_fifo_empty, dma_bgrp_cull_fetch_read, bgrp_cull_fetch_fifo_we, bgrp_byte_mask_fifo_full, bgrp_byte_mask_fifo_empty, bgrp_byte_mask_fifo_re_q, bgrp_byte_mask_fifo_we, bgrp_dma_mask_kill, bgrp_grp_bin_valid, rst_last_bit, current_state_q, old_state_q, old_state_en, prev_last_bit_q, dbl_last_bit_q, last_bit_block_q, ast_bit_block2_q, load_empty_reg, bgrp_grp_byte_mask_rdata, dma_bgrp_dma_data_fifo_rptr, top_di_pre_fetch_cull_enable, top_di_grp_cull_enable_q, bgrp_trigger) \
+ ((bgrp_cull_fetch_fifo_full << VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_full_SHIFT) | \
+ (bgrp_cull_fetch_fifo_empty << VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_empty_SHIFT) | \
+ (dma_bgrp_cull_fetch_read << VGT_DEBUG_REG16_dma_bgrp_cull_fetch_read_SHIFT) | \
+ (bgrp_cull_fetch_fifo_we << VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_we_SHIFT) | \
+ (bgrp_byte_mask_fifo_full << VGT_DEBUG_REG16_bgrp_byte_mask_fifo_full_SHIFT) | \
+ (bgrp_byte_mask_fifo_empty << VGT_DEBUG_REG16_bgrp_byte_mask_fifo_empty_SHIFT) | \
+ (bgrp_byte_mask_fifo_re_q << VGT_DEBUG_REG16_bgrp_byte_mask_fifo_re_q_SHIFT) | \
+ (bgrp_byte_mask_fifo_we << VGT_DEBUG_REG16_bgrp_byte_mask_fifo_we_SHIFT) | \
+ (bgrp_dma_mask_kill << VGT_DEBUG_REG16_bgrp_dma_mask_kill_SHIFT) | \
+ (bgrp_grp_bin_valid << VGT_DEBUG_REG16_bgrp_grp_bin_valid_SHIFT) | \
+ (rst_last_bit << VGT_DEBUG_REG16_rst_last_bit_SHIFT) | \
+ (current_state_q << VGT_DEBUG_REG16_current_state_q_SHIFT) | \
+ (old_state_q << VGT_DEBUG_REG16_old_state_q_SHIFT) | \
+ (old_state_en << VGT_DEBUG_REG16_old_state_en_SHIFT) | \
+ (prev_last_bit_q << VGT_DEBUG_REG16_prev_last_bit_q_SHIFT) | \
+ (dbl_last_bit_q << VGT_DEBUG_REG16_dbl_last_bit_q_SHIFT) | \
+ (last_bit_block_q << VGT_DEBUG_REG16_last_bit_block_q_SHIFT) | \
+ (ast_bit_block2_q << VGT_DEBUG_REG16_ast_bit_block2_q_SHIFT) | \
+ (load_empty_reg << VGT_DEBUG_REG16_load_empty_reg_SHIFT) | \
+ (bgrp_grp_byte_mask_rdata << VGT_DEBUG_REG16_bgrp_grp_byte_mask_rdata_SHIFT) | \
+ (dma_bgrp_dma_data_fifo_rptr << VGT_DEBUG_REG16_dma_bgrp_dma_data_fifo_rptr_SHIFT) | \
+ (top_di_pre_fetch_cull_enable << VGT_DEBUG_REG16_top_di_pre_fetch_cull_enable_SHIFT) | \
+ (top_di_grp_cull_enable_q << VGT_DEBUG_REG16_top_di_grp_cull_enable_q_SHIFT) | \
+ (bgrp_trigger << VGT_DEBUG_REG16_bgrp_trigger_SHIFT))
+
+#define VGT_DEBUG_REG16_GET_bgrp_cull_fetch_fifo_full(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_full_MASK) >> VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_full_SHIFT)
+#define VGT_DEBUG_REG16_GET_bgrp_cull_fetch_fifo_empty(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_empty_MASK) >> VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_empty_SHIFT)
+#define VGT_DEBUG_REG16_GET_dma_bgrp_cull_fetch_read(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_dma_bgrp_cull_fetch_read_MASK) >> VGT_DEBUG_REG16_dma_bgrp_cull_fetch_read_SHIFT)
+#define VGT_DEBUG_REG16_GET_bgrp_cull_fetch_fifo_we(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_we_MASK) >> VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_we_SHIFT)
+#define VGT_DEBUG_REG16_GET_bgrp_byte_mask_fifo_full(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_bgrp_byte_mask_fifo_full_MASK) >> VGT_DEBUG_REG16_bgrp_byte_mask_fifo_full_SHIFT)
+#define VGT_DEBUG_REG16_GET_bgrp_byte_mask_fifo_empty(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_bgrp_byte_mask_fifo_empty_MASK) >> VGT_DEBUG_REG16_bgrp_byte_mask_fifo_empty_SHIFT)
+#define VGT_DEBUG_REG16_GET_bgrp_byte_mask_fifo_re_q(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_bgrp_byte_mask_fifo_re_q_MASK) >> VGT_DEBUG_REG16_bgrp_byte_mask_fifo_re_q_SHIFT)
+#define VGT_DEBUG_REG16_GET_bgrp_byte_mask_fifo_we(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_bgrp_byte_mask_fifo_we_MASK) >> VGT_DEBUG_REG16_bgrp_byte_mask_fifo_we_SHIFT)
+#define VGT_DEBUG_REG16_GET_bgrp_dma_mask_kill(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_bgrp_dma_mask_kill_MASK) >> VGT_DEBUG_REG16_bgrp_dma_mask_kill_SHIFT)
+#define VGT_DEBUG_REG16_GET_bgrp_grp_bin_valid(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_bgrp_grp_bin_valid_MASK) >> VGT_DEBUG_REG16_bgrp_grp_bin_valid_SHIFT)
+#define VGT_DEBUG_REG16_GET_rst_last_bit(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_rst_last_bit_MASK) >> VGT_DEBUG_REG16_rst_last_bit_SHIFT)
+#define VGT_DEBUG_REG16_GET_current_state_q(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_current_state_q_MASK) >> VGT_DEBUG_REG16_current_state_q_SHIFT)
+#define VGT_DEBUG_REG16_GET_old_state_q(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_old_state_q_MASK) >> VGT_DEBUG_REG16_old_state_q_SHIFT)
+#define VGT_DEBUG_REG16_GET_old_state_en(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_old_state_en_MASK) >> VGT_DEBUG_REG16_old_state_en_SHIFT)
+#define VGT_DEBUG_REG16_GET_prev_last_bit_q(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_prev_last_bit_q_MASK) >> VGT_DEBUG_REG16_prev_last_bit_q_SHIFT)
+#define VGT_DEBUG_REG16_GET_dbl_last_bit_q(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_dbl_last_bit_q_MASK) >> VGT_DEBUG_REG16_dbl_last_bit_q_SHIFT)
+#define VGT_DEBUG_REG16_GET_last_bit_block_q(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_last_bit_block_q_MASK) >> VGT_DEBUG_REG16_last_bit_block_q_SHIFT)
+#define VGT_DEBUG_REG16_GET_ast_bit_block2_q(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_ast_bit_block2_q_MASK) >> VGT_DEBUG_REG16_ast_bit_block2_q_SHIFT)
+#define VGT_DEBUG_REG16_GET_load_empty_reg(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_load_empty_reg_MASK) >> VGT_DEBUG_REG16_load_empty_reg_SHIFT)
+#define VGT_DEBUG_REG16_GET_bgrp_grp_byte_mask_rdata(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_bgrp_grp_byte_mask_rdata_MASK) >> VGT_DEBUG_REG16_bgrp_grp_byte_mask_rdata_SHIFT)
+#define VGT_DEBUG_REG16_GET_dma_bgrp_dma_data_fifo_rptr(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_dma_bgrp_dma_data_fifo_rptr_MASK) >> VGT_DEBUG_REG16_dma_bgrp_dma_data_fifo_rptr_SHIFT)
+#define VGT_DEBUG_REG16_GET_top_di_pre_fetch_cull_enable(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_top_di_pre_fetch_cull_enable_MASK) >> VGT_DEBUG_REG16_top_di_pre_fetch_cull_enable_SHIFT)
+#define VGT_DEBUG_REG16_GET_top_di_grp_cull_enable_q(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_top_di_grp_cull_enable_q_MASK) >> VGT_DEBUG_REG16_top_di_grp_cull_enable_q_SHIFT)
+#define VGT_DEBUG_REG16_GET_bgrp_trigger(vgt_debug_reg16) \
+ ((vgt_debug_reg16 & VGT_DEBUG_REG16_bgrp_trigger_MASK) >> VGT_DEBUG_REG16_bgrp_trigger_SHIFT)
+
+#define VGT_DEBUG_REG16_SET_bgrp_cull_fetch_fifo_full(vgt_debug_reg16_reg, bgrp_cull_fetch_fifo_full) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_full_MASK) | (bgrp_cull_fetch_fifo_full << VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_full_SHIFT)
+#define VGT_DEBUG_REG16_SET_bgrp_cull_fetch_fifo_empty(vgt_debug_reg16_reg, bgrp_cull_fetch_fifo_empty) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_empty_MASK) | (bgrp_cull_fetch_fifo_empty << VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_empty_SHIFT)
+#define VGT_DEBUG_REG16_SET_dma_bgrp_cull_fetch_read(vgt_debug_reg16_reg, dma_bgrp_cull_fetch_read) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_dma_bgrp_cull_fetch_read_MASK) | (dma_bgrp_cull_fetch_read << VGT_DEBUG_REG16_dma_bgrp_cull_fetch_read_SHIFT)
+#define VGT_DEBUG_REG16_SET_bgrp_cull_fetch_fifo_we(vgt_debug_reg16_reg, bgrp_cull_fetch_fifo_we) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_we_MASK) | (bgrp_cull_fetch_fifo_we << VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_we_SHIFT)
+#define VGT_DEBUG_REG16_SET_bgrp_byte_mask_fifo_full(vgt_debug_reg16_reg, bgrp_byte_mask_fifo_full) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_bgrp_byte_mask_fifo_full_MASK) | (bgrp_byte_mask_fifo_full << VGT_DEBUG_REG16_bgrp_byte_mask_fifo_full_SHIFT)
+#define VGT_DEBUG_REG16_SET_bgrp_byte_mask_fifo_empty(vgt_debug_reg16_reg, bgrp_byte_mask_fifo_empty) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_bgrp_byte_mask_fifo_empty_MASK) | (bgrp_byte_mask_fifo_empty << VGT_DEBUG_REG16_bgrp_byte_mask_fifo_empty_SHIFT)
+#define VGT_DEBUG_REG16_SET_bgrp_byte_mask_fifo_re_q(vgt_debug_reg16_reg, bgrp_byte_mask_fifo_re_q) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_bgrp_byte_mask_fifo_re_q_MASK) | (bgrp_byte_mask_fifo_re_q << VGT_DEBUG_REG16_bgrp_byte_mask_fifo_re_q_SHIFT)
+#define VGT_DEBUG_REG16_SET_bgrp_byte_mask_fifo_we(vgt_debug_reg16_reg, bgrp_byte_mask_fifo_we) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_bgrp_byte_mask_fifo_we_MASK) | (bgrp_byte_mask_fifo_we << VGT_DEBUG_REG16_bgrp_byte_mask_fifo_we_SHIFT)
+#define VGT_DEBUG_REG16_SET_bgrp_dma_mask_kill(vgt_debug_reg16_reg, bgrp_dma_mask_kill) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_bgrp_dma_mask_kill_MASK) | (bgrp_dma_mask_kill << VGT_DEBUG_REG16_bgrp_dma_mask_kill_SHIFT)
+#define VGT_DEBUG_REG16_SET_bgrp_grp_bin_valid(vgt_debug_reg16_reg, bgrp_grp_bin_valid) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_bgrp_grp_bin_valid_MASK) | (bgrp_grp_bin_valid << VGT_DEBUG_REG16_bgrp_grp_bin_valid_SHIFT)
+#define VGT_DEBUG_REG16_SET_rst_last_bit(vgt_debug_reg16_reg, rst_last_bit) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_rst_last_bit_MASK) | (rst_last_bit << VGT_DEBUG_REG16_rst_last_bit_SHIFT)
+#define VGT_DEBUG_REG16_SET_current_state_q(vgt_debug_reg16_reg, current_state_q) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_current_state_q_MASK) | (current_state_q << VGT_DEBUG_REG16_current_state_q_SHIFT)
+#define VGT_DEBUG_REG16_SET_old_state_q(vgt_debug_reg16_reg, old_state_q) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_old_state_q_MASK) | (old_state_q << VGT_DEBUG_REG16_old_state_q_SHIFT)
+#define VGT_DEBUG_REG16_SET_old_state_en(vgt_debug_reg16_reg, old_state_en) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_old_state_en_MASK) | (old_state_en << VGT_DEBUG_REG16_old_state_en_SHIFT)
+#define VGT_DEBUG_REG16_SET_prev_last_bit_q(vgt_debug_reg16_reg, prev_last_bit_q) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_prev_last_bit_q_MASK) | (prev_last_bit_q << VGT_DEBUG_REG16_prev_last_bit_q_SHIFT)
+#define VGT_DEBUG_REG16_SET_dbl_last_bit_q(vgt_debug_reg16_reg, dbl_last_bit_q) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_dbl_last_bit_q_MASK) | (dbl_last_bit_q << VGT_DEBUG_REG16_dbl_last_bit_q_SHIFT)
+#define VGT_DEBUG_REG16_SET_last_bit_block_q(vgt_debug_reg16_reg, last_bit_block_q) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_last_bit_block_q_MASK) | (last_bit_block_q << VGT_DEBUG_REG16_last_bit_block_q_SHIFT)
+#define VGT_DEBUG_REG16_SET_ast_bit_block2_q(vgt_debug_reg16_reg, ast_bit_block2_q) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_ast_bit_block2_q_MASK) | (ast_bit_block2_q << VGT_DEBUG_REG16_ast_bit_block2_q_SHIFT)
+#define VGT_DEBUG_REG16_SET_load_empty_reg(vgt_debug_reg16_reg, load_empty_reg) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_load_empty_reg_MASK) | (load_empty_reg << VGT_DEBUG_REG16_load_empty_reg_SHIFT)
+#define VGT_DEBUG_REG16_SET_bgrp_grp_byte_mask_rdata(vgt_debug_reg16_reg, bgrp_grp_byte_mask_rdata) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_bgrp_grp_byte_mask_rdata_MASK) | (bgrp_grp_byte_mask_rdata << VGT_DEBUG_REG16_bgrp_grp_byte_mask_rdata_SHIFT)
+#define VGT_DEBUG_REG16_SET_dma_bgrp_dma_data_fifo_rptr(vgt_debug_reg16_reg, dma_bgrp_dma_data_fifo_rptr) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_dma_bgrp_dma_data_fifo_rptr_MASK) | (dma_bgrp_dma_data_fifo_rptr << VGT_DEBUG_REG16_dma_bgrp_dma_data_fifo_rptr_SHIFT)
+#define VGT_DEBUG_REG16_SET_top_di_pre_fetch_cull_enable(vgt_debug_reg16_reg, top_di_pre_fetch_cull_enable) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_top_di_pre_fetch_cull_enable_MASK) | (top_di_pre_fetch_cull_enable << VGT_DEBUG_REG16_top_di_pre_fetch_cull_enable_SHIFT)
+#define VGT_DEBUG_REG16_SET_top_di_grp_cull_enable_q(vgt_debug_reg16_reg, top_di_grp_cull_enable_q) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_top_di_grp_cull_enable_q_MASK) | (top_di_grp_cull_enable_q << VGT_DEBUG_REG16_top_di_grp_cull_enable_q_SHIFT)
+#define VGT_DEBUG_REG16_SET_bgrp_trigger(vgt_debug_reg16_reg, bgrp_trigger) \
+ vgt_debug_reg16_reg = (vgt_debug_reg16_reg & ~VGT_DEBUG_REG16_bgrp_trigger_MASK) | (bgrp_trigger << VGT_DEBUG_REG16_bgrp_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg16_t {
+ unsigned int bgrp_cull_fetch_fifo_full : VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_full_SIZE;
+ unsigned int bgrp_cull_fetch_fifo_empty : VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_empty_SIZE;
+ unsigned int dma_bgrp_cull_fetch_read : VGT_DEBUG_REG16_dma_bgrp_cull_fetch_read_SIZE;
+ unsigned int bgrp_cull_fetch_fifo_we : VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_we_SIZE;
+ unsigned int bgrp_byte_mask_fifo_full : VGT_DEBUG_REG16_bgrp_byte_mask_fifo_full_SIZE;
+ unsigned int bgrp_byte_mask_fifo_empty : VGT_DEBUG_REG16_bgrp_byte_mask_fifo_empty_SIZE;
+ unsigned int bgrp_byte_mask_fifo_re_q : VGT_DEBUG_REG16_bgrp_byte_mask_fifo_re_q_SIZE;
+ unsigned int bgrp_byte_mask_fifo_we : VGT_DEBUG_REG16_bgrp_byte_mask_fifo_we_SIZE;
+ unsigned int bgrp_dma_mask_kill : VGT_DEBUG_REG16_bgrp_dma_mask_kill_SIZE;
+ unsigned int bgrp_grp_bin_valid : VGT_DEBUG_REG16_bgrp_grp_bin_valid_SIZE;
+ unsigned int rst_last_bit : VGT_DEBUG_REG16_rst_last_bit_SIZE;
+ unsigned int current_state_q : VGT_DEBUG_REG16_current_state_q_SIZE;
+ unsigned int old_state_q : VGT_DEBUG_REG16_old_state_q_SIZE;
+ unsigned int old_state_en : VGT_DEBUG_REG16_old_state_en_SIZE;
+ unsigned int prev_last_bit_q : VGT_DEBUG_REG16_prev_last_bit_q_SIZE;
+ unsigned int dbl_last_bit_q : VGT_DEBUG_REG16_dbl_last_bit_q_SIZE;
+ unsigned int last_bit_block_q : VGT_DEBUG_REG16_last_bit_block_q_SIZE;
+ unsigned int ast_bit_block2_q : VGT_DEBUG_REG16_ast_bit_block2_q_SIZE;
+ unsigned int load_empty_reg : VGT_DEBUG_REG16_load_empty_reg_SIZE;
+ unsigned int bgrp_grp_byte_mask_rdata : VGT_DEBUG_REG16_bgrp_grp_byte_mask_rdata_SIZE;
+ unsigned int dma_bgrp_dma_data_fifo_rptr : VGT_DEBUG_REG16_dma_bgrp_dma_data_fifo_rptr_SIZE;
+ unsigned int top_di_pre_fetch_cull_enable : VGT_DEBUG_REG16_top_di_pre_fetch_cull_enable_SIZE;
+ unsigned int top_di_grp_cull_enable_q : VGT_DEBUG_REG16_top_di_grp_cull_enable_q_SIZE;
+ unsigned int bgrp_trigger : VGT_DEBUG_REG16_bgrp_trigger_SIZE;
+ } vgt_debug_reg16_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg16_t {
+ unsigned int bgrp_trigger : VGT_DEBUG_REG16_bgrp_trigger_SIZE;
+ unsigned int top_di_grp_cull_enable_q : VGT_DEBUG_REG16_top_di_grp_cull_enable_q_SIZE;
+ unsigned int top_di_pre_fetch_cull_enable : VGT_DEBUG_REG16_top_di_pre_fetch_cull_enable_SIZE;
+ unsigned int dma_bgrp_dma_data_fifo_rptr : VGT_DEBUG_REG16_dma_bgrp_dma_data_fifo_rptr_SIZE;
+ unsigned int bgrp_grp_byte_mask_rdata : VGT_DEBUG_REG16_bgrp_grp_byte_mask_rdata_SIZE;
+ unsigned int load_empty_reg : VGT_DEBUG_REG16_load_empty_reg_SIZE;
+ unsigned int ast_bit_block2_q : VGT_DEBUG_REG16_ast_bit_block2_q_SIZE;
+ unsigned int last_bit_block_q : VGT_DEBUG_REG16_last_bit_block_q_SIZE;
+ unsigned int dbl_last_bit_q : VGT_DEBUG_REG16_dbl_last_bit_q_SIZE;
+ unsigned int prev_last_bit_q : VGT_DEBUG_REG16_prev_last_bit_q_SIZE;
+ unsigned int old_state_en : VGT_DEBUG_REG16_old_state_en_SIZE;
+ unsigned int old_state_q : VGT_DEBUG_REG16_old_state_q_SIZE;
+ unsigned int current_state_q : VGT_DEBUG_REG16_current_state_q_SIZE;
+ unsigned int rst_last_bit : VGT_DEBUG_REG16_rst_last_bit_SIZE;
+ unsigned int bgrp_grp_bin_valid : VGT_DEBUG_REG16_bgrp_grp_bin_valid_SIZE;
+ unsigned int bgrp_dma_mask_kill : VGT_DEBUG_REG16_bgrp_dma_mask_kill_SIZE;
+ unsigned int bgrp_byte_mask_fifo_we : VGT_DEBUG_REG16_bgrp_byte_mask_fifo_we_SIZE;
+ unsigned int bgrp_byte_mask_fifo_re_q : VGT_DEBUG_REG16_bgrp_byte_mask_fifo_re_q_SIZE;
+ unsigned int bgrp_byte_mask_fifo_empty : VGT_DEBUG_REG16_bgrp_byte_mask_fifo_empty_SIZE;
+ unsigned int bgrp_byte_mask_fifo_full : VGT_DEBUG_REG16_bgrp_byte_mask_fifo_full_SIZE;
+ unsigned int bgrp_cull_fetch_fifo_we : VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_we_SIZE;
+ unsigned int dma_bgrp_cull_fetch_read : VGT_DEBUG_REG16_dma_bgrp_cull_fetch_read_SIZE;
+ unsigned int bgrp_cull_fetch_fifo_empty : VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_empty_SIZE;
+ unsigned int bgrp_cull_fetch_fifo_full : VGT_DEBUG_REG16_bgrp_cull_fetch_fifo_full_SIZE;
+ } vgt_debug_reg16_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_reg16_t f;
+} vgt_debug_reg16_u;
+
+
+/*
+ * VGT_DEBUG_REG17 struct
+ */
+
+#define VGT_DEBUG_REG17_save_read_q_SIZE 1
+#define VGT_DEBUG_REG17_extend_read_q_SIZE 1
+#define VGT_DEBUG_REG17_grp_indx_size_SIZE 2
+#define VGT_DEBUG_REG17_cull_prim_true_SIZE 1
+#define VGT_DEBUG_REG17_reset_bit2_q_SIZE 1
+#define VGT_DEBUG_REG17_reset_bit1_q_SIZE 1
+#define VGT_DEBUG_REG17_first_reg_first_q_SIZE 1
+#define VGT_DEBUG_REG17_check_second_reg_SIZE 1
+#define VGT_DEBUG_REG17_check_first_reg_SIZE 1
+#define VGT_DEBUG_REG17_bgrp_cull_fetch_fifo_wdata_SIZE 1
+#define VGT_DEBUG_REG17_save_cull_fetch_data2_q_SIZE 1
+#define VGT_DEBUG_REG17_save_cull_fetch_data1_q_SIZE 1
+#define VGT_DEBUG_REG17_save_byte_mask_data2_q_SIZE 1
+#define VGT_DEBUG_REG17_save_byte_mask_data1_q_SIZE 1
+#define VGT_DEBUG_REG17_to_second_reg_q_SIZE 1
+#define VGT_DEBUG_REG17_roll_over_msk_q_SIZE 1
+#define VGT_DEBUG_REG17_max_msk_ptr_q_SIZE 7
+#define VGT_DEBUG_REG17_min_msk_ptr_q_SIZE 7
+#define VGT_DEBUG_REG17_bgrp_trigger_SIZE 1
+
+#define VGT_DEBUG_REG17_save_read_q_SHIFT 0
+#define VGT_DEBUG_REG17_extend_read_q_SHIFT 1
+#define VGT_DEBUG_REG17_grp_indx_size_SHIFT 2
+#define VGT_DEBUG_REG17_cull_prim_true_SHIFT 4
+#define VGT_DEBUG_REG17_reset_bit2_q_SHIFT 5
+#define VGT_DEBUG_REG17_reset_bit1_q_SHIFT 6
+#define VGT_DEBUG_REG17_first_reg_first_q_SHIFT 7
+#define VGT_DEBUG_REG17_check_second_reg_SHIFT 8
+#define VGT_DEBUG_REG17_check_first_reg_SHIFT 9
+#define VGT_DEBUG_REG17_bgrp_cull_fetch_fifo_wdata_SHIFT 10
+#define VGT_DEBUG_REG17_save_cull_fetch_data2_q_SHIFT 11
+#define VGT_DEBUG_REG17_save_cull_fetch_data1_q_SHIFT 12
+#define VGT_DEBUG_REG17_save_byte_mask_data2_q_SHIFT 13
+#define VGT_DEBUG_REG17_save_byte_mask_data1_q_SHIFT 14
+#define VGT_DEBUG_REG17_to_second_reg_q_SHIFT 15
+#define VGT_DEBUG_REG17_roll_over_msk_q_SHIFT 16
+#define VGT_DEBUG_REG17_max_msk_ptr_q_SHIFT 17
+#define VGT_DEBUG_REG17_min_msk_ptr_q_SHIFT 24
+#define VGT_DEBUG_REG17_bgrp_trigger_SHIFT 31
+
+#define VGT_DEBUG_REG17_save_read_q_MASK 0x00000001
+#define VGT_DEBUG_REG17_extend_read_q_MASK 0x00000002
+#define VGT_DEBUG_REG17_grp_indx_size_MASK 0x0000000c
+#define VGT_DEBUG_REG17_cull_prim_true_MASK 0x00000010
+#define VGT_DEBUG_REG17_reset_bit2_q_MASK 0x00000020
+#define VGT_DEBUG_REG17_reset_bit1_q_MASK 0x00000040
+#define VGT_DEBUG_REG17_first_reg_first_q_MASK 0x00000080
+#define VGT_DEBUG_REG17_check_second_reg_MASK 0x00000100
+#define VGT_DEBUG_REG17_check_first_reg_MASK 0x00000200
+#define VGT_DEBUG_REG17_bgrp_cull_fetch_fifo_wdata_MASK 0x00000400
+#define VGT_DEBUG_REG17_save_cull_fetch_data2_q_MASK 0x00000800
+#define VGT_DEBUG_REG17_save_cull_fetch_data1_q_MASK 0x00001000
+#define VGT_DEBUG_REG17_save_byte_mask_data2_q_MASK 0x00002000
+#define VGT_DEBUG_REG17_save_byte_mask_data1_q_MASK 0x00004000
+#define VGT_DEBUG_REG17_to_second_reg_q_MASK 0x00008000
+#define VGT_DEBUG_REG17_roll_over_msk_q_MASK 0x00010000
+#define VGT_DEBUG_REG17_max_msk_ptr_q_MASK 0x00fe0000
+#define VGT_DEBUG_REG17_min_msk_ptr_q_MASK 0x7f000000
+#define VGT_DEBUG_REG17_bgrp_trigger_MASK 0x80000000
+
+#define VGT_DEBUG_REG17_MASK \
+ (VGT_DEBUG_REG17_save_read_q_MASK | \
+ VGT_DEBUG_REG17_extend_read_q_MASK | \
+ VGT_DEBUG_REG17_grp_indx_size_MASK | \
+ VGT_DEBUG_REG17_cull_prim_true_MASK | \
+ VGT_DEBUG_REG17_reset_bit2_q_MASK | \
+ VGT_DEBUG_REG17_reset_bit1_q_MASK | \
+ VGT_DEBUG_REG17_first_reg_first_q_MASK | \
+ VGT_DEBUG_REG17_check_second_reg_MASK | \
+ VGT_DEBUG_REG17_check_first_reg_MASK | \
+ VGT_DEBUG_REG17_bgrp_cull_fetch_fifo_wdata_MASK | \
+ VGT_DEBUG_REG17_save_cull_fetch_data2_q_MASK | \
+ VGT_DEBUG_REG17_save_cull_fetch_data1_q_MASK | \
+ VGT_DEBUG_REG17_save_byte_mask_data2_q_MASK | \
+ VGT_DEBUG_REG17_save_byte_mask_data1_q_MASK | \
+ VGT_DEBUG_REG17_to_second_reg_q_MASK | \
+ VGT_DEBUG_REG17_roll_over_msk_q_MASK | \
+ VGT_DEBUG_REG17_max_msk_ptr_q_MASK | \
+ VGT_DEBUG_REG17_min_msk_ptr_q_MASK | \
+ VGT_DEBUG_REG17_bgrp_trigger_MASK)
+
+#define VGT_DEBUG_REG17(save_read_q, extend_read_q, grp_indx_size, cull_prim_true, reset_bit2_q, reset_bit1_q, first_reg_first_q, check_second_reg, check_first_reg, bgrp_cull_fetch_fifo_wdata, save_cull_fetch_data2_q, save_cull_fetch_data1_q, save_byte_mask_data2_q, save_byte_mask_data1_q, to_second_reg_q, roll_over_msk_q, max_msk_ptr_q, min_msk_ptr_q, bgrp_trigger) \
+ ((save_read_q << VGT_DEBUG_REG17_save_read_q_SHIFT) | \
+ (extend_read_q << VGT_DEBUG_REG17_extend_read_q_SHIFT) | \
+ (grp_indx_size << VGT_DEBUG_REG17_grp_indx_size_SHIFT) | \
+ (cull_prim_true << VGT_DEBUG_REG17_cull_prim_true_SHIFT) | \
+ (reset_bit2_q << VGT_DEBUG_REG17_reset_bit2_q_SHIFT) | \
+ (reset_bit1_q << VGT_DEBUG_REG17_reset_bit1_q_SHIFT) | \
+ (first_reg_first_q << VGT_DEBUG_REG17_first_reg_first_q_SHIFT) | \
+ (check_second_reg << VGT_DEBUG_REG17_check_second_reg_SHIFT) | \
+ (check_first_reg << VGT_DEBUG_REG17_check_first_reg_SHIFT) | \
+ (bgrp_cull_fetch_fifo_wdata << VGT_DEBUG_REG17_bgrp_cull_fetch_fifo_wdata_SHIFT) | \
+ (save_cull_fetch_data2_q << VGT_DEBUG_REG17_save_cull_fetch_data2_q_SHIFT) | \
+ (save_cull_fetch_data1_q << VGT_DEBUG_REG17_save_cull_fetch_data1_q_SHIFT) | \
+ (save_byte_mask_data2_q << VGT_DEBUG_REG17_save_byte_mask_data2_q_SHIFT) | \
+ (save_byte_mask_data1_q << VGT_DEBUG_REG17_save_byte_mask_data1_q_SHIFT) | \
+ (to_second_reg_q << VGT_DEBUG_REG17_to_second_reg_q_SHIFT) | \
+ (roll_over_msk_q << VGT_DEBUG_REG17_roll_over_msk_q_SHIFT) | \
+ (max_msk_ptr_q << VGT_DEBUG_REG17_max_msk_ptr_q_SHIFT) | \
+ (min_msk_ptr_q << VGT_DEBUG_REG17_min_msk_ptr_q_SHIFT) | \
+ (bgrp_trigger << VGT_DEBUG_REG17_bgrp_trigger_SHIFT))
+
+#define VGT_DEBUG_REG17_GET_save_read_q(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_save_read_q_MASK) >> VGT_DEBUG_REG17_save_read_q_SHIFT)
+#define VGT_DEBUG_REG17_GET_extend_read_q(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_extend_read_q_MASK) >> VGT_DEBUG_REG17_extend_read_q_SHIFT)
+#define VGT_DEBUG_REG17_GET_grp_indx_size(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_grp_indx_size_MASK) >> VGT_DEBUG_REG17_grp_indx_size_SHIFT)
+#define VGT_DEBUG_REG17_GET_cull_prim_true(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_cull_prim_true_MASK) >> VGT_DEBUG_REG17_cull_prim_true_SHIFT)
+#define VGT_DEBUG_REG17_GET_reset_bit2_q(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_reset_bit2_q_MASK) >> VGT_DEBUG_REG17_reset_bit2_q_SHIFT)
+#define VGT_DEBUG_REG17_GET_reset_bit1_q(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_reset_bit1_q_MASK) >> VGT_DEBUG_REG17_reset_bit1_q_SHIFT)
+#define VGT_DEBUG_REG17_GET_first_reg_first_q(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_first_reg_first_q_MASK) >> VGT_DEBUG_REG17_first_reg_first_q_SHIFT)
+#define VGT_DEBUG_REG17_GET_check_second_reg(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_check_second_reg_MASK) >> VGT_DEBUG_REG17_check_second_reg_SHIFT)
+#define VGT_DEBUG_REG17_GET_check_first_reg(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_check_first_reg_MASK) >> VGT_DEBUG_REG17_check_first_reg_SHIFT)
+#define VGT_DEBUG_REG17_GET_bgrp_cull_fetch_fifo_wdata(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_bgrp_cull_fetch_fifo_wdata_MASK) >> VGT_DEBUG_REG17_bgrp_cull_fetch_fifo_wdata_SHIFT)
+#define VGT_DEBUG_REG17_GET_save_cull_fetch_data2_q(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_save_cull_fetch_data2_q_MASK) >> VGT_DEBUG_REG17_save_cull_fetch_data2_q_SHIFT)
+#define VGT_DEBUG_REG17_GET_save_cull_fetch_data1_q(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_save_cull_fetch_data1_q_MASK) >> VGT_DEBUG_REG17_save_cull_fetch_data1_q_SHIFT)
+#define VGT_DEBUG_REG17_GET_save_byte_mask_data2_q(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_save_byte_mask_data2_q_MASK) >> VGT_DEBUG_REG17_save_byte_mask_data2_q_SHIFT)
+#define VGT_DEBUG_REG17_GET_save_byte_mask_data1_q(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_save_byte_mask_data1_q_MASK) >> VGT_DEBUG_REG17_save_byte_mask_data1_q_SHIFT)
+#define VGT_DEBUG_REG17_GET_to_second_reg_q(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_to_second_reg_q_MASK) >> VGT_DEBUG_REG17_to_second_reg_q_SHIFT)
+#define VGT_DEBUG_REG17_GET_roll_over_msk_q(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_roll_over_msk_q_MASK) >> VGT_DEBUG_REG17_roll_over_msk_q_SHIFT)
+#define VGT_DEBUG_REG17_GET_max_msk_ptr_q(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_max_msk_ptr_q_MASK) >> VGT_DEBUG_REG17_max_msk_ptr_q_SHIFT)
+#define VGT_DEBUG_REG17_GET_min_msk_ptr_q(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_min_msk_ptr_q_MASK) >> VGT_DEBUG_REG17_min_msk_ptr_q_SHIFT)
+#define VGT_DEBUG_REG17_GET_bgrp_trigger(vgt_debug_reg17) \
+ ((vgt_debug_reg17 & VGT_DEBUG_REG17_bgrp_trigger_MASK) >> VGT_DEBUG_REG17_bgrp_trigger_SHIFT)
+
+#define VGT_DEBUG_REG17_SET_save_read_q(vgt_debug_reg17_reg, save_read_q) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_save_read_q_MASK) | (save_read_q << VGT_DEBUG_REG17_save_read_q_SHIFT)
+#define VGT_DEBUG_REG17_SET_extend_read_q(vgt_debug_reg17_reg, extend_read_q) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_extend_read_q_MASK) | (extend_read_q << VGT_DEBUG_REG17_extend_read_q_SHIFT)
+#define VGT_DEBUG_REG17_SET_grp_indx_size(vgt_debug_reg17_reg, grp_indx_size) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_grp_indx_size_MASK) | (grp_indx_size << VGT_DEBUG_REG17_grp_indx_size_SHIFT)
+#define VGT_DEBUG_REG17_SET_cull_prim_true(vgt_debug_reg17_reg, cull_prim_true) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_cull_prim_true_MASK) | (cull_prim_true << VGT_DEBUG_REG17_cull_prim_true_SHIFT)
+#define VGT_DEBUG_REG17_SET_reset_bit2_q(vgt_debug_reg17_reg, reset_bit2_q) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_reset_bit2_q_MASK) | (reset_bit2_q << VGT_DEBUG_REG17_reset_bit2_q_SHIFT)
+#define VGT_DEBUG_REG17_SET_reset_bit1_q(vgt_debug_reg17_reg, reset_bit1_q) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_reset_bit1_q_MASK) | (reset_bit1_q << VGT_DEBUG_REG17_reset_bit1_q_SHIFT)
+#define VGT_DEBUG_REG17_SET_first_reg_first_q(vgt_debug_reg17_reg, first_reg_first_q) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_first_reg_first_q_MASK) | (first_reg_first_q << VGT_DEBUG_REG17_first_reg_first_q_SHIFT)
+#define VGT_DEBUG_REG17_SET_check_second_reg(vgt_debug_reg17_reg, check_second_reg) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_check_second_reg_MASK) | (check_second_reg << VGT_DEBUG_REG17_check_second_reg_SHIFT)
+#define VGT_DEBUG_REG17_SET_check_first_reg(vgt_debug_reg17_reg, check_first_reg) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_check_first_reg_MASK) | (check_first_reg << VGT_DEBUG_REG17_check_first_reg_SHIFT)
+#define VGT_DEBUG_REG17_SET_bgrp_cull_fetch_fifo_wdata(vgt_debug_reg17_reg, bgrp_cull_fetch_fifo_wdata) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_bgrp_cull_fetch_fifo_wdata_MASK) | (bgrp_cull_fetch_fifo_wdata << VGT_DEBUG_REG17_bgrp_cull_fetch_fifo_wdata_SHIFT)
+#define VGT_DEBUG_REG17_SET_save_cull_fetch_data2_q(vgt_debug_reg17_reg, save_cull_fetch_data2_q) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_save_cull_fetch_data2_q_MASK) | (save_cull_fetch_data2_q << VGT_DEBUG_REG17_save_cull_fetch_data2_q_SHIFT)
+#define VGT_DEBUG_REG17_SET_save_cull_fetch_data1_q(vgt_debug_reg17_reg, save_cull_fetch_data1_q) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_save_cull_fetch_data1_q_MASK) | (save_cull_fetch_data1_q << VGT_DEBUG_REG17_save_cull_fetch_data1_q_SHIFT)
+#define VGT_DEBUG_REG17_SET_save_byte_mask_data2_q(vgt_debug_reg17_reg, save_byte_mask_data2_q) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_save_byte_mask_data2_q_MASK) | (save_byte_mask_data2_q << VGT_DEBUG_REG17_save_byte_mask_data2_q_SHIFT)
+#define VGT_DEBUG_REG17_SET_save_byte_mask_data1_q(vgt_debug_reg17_reg, save_byte_mask_data1_q) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_save_byte_mask_data1_q_MASK) | (save_byte_mask_data1_q << VGT_DEBUG_REG17_save_byte_mask_data1_q_SHIFT)
+#define VGT_DEBUG_REG17_SET_to_second_reg_q(vgt_debug_reg17_reg, to_second_reg_q) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_to_second_reg_q_MASK) | (to_second_reg_q << VGT_DEBUG_REG17_to_second_reg_q_SHIFT)
+#define VGT_DEBUG_REG17_SET_roll_over_msk_q(vgt_debug_reg17_reg, roll_over_msk_q) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_roll_over_msk_q_MASK) | (roll_over_msk_q << VGT_DEBUG_REG17_roll_over_msk_q_SHIFT)
+#define VGT_DEBUG_REG17_SET_max_msk_ptr_q(vgt_debug_reg17_reg, max_msk_ptr_q) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_max_msk_ptr_q_MASK) | (max_msk_ptr_q << VGT_DEBUG_REG17_max_msk_ptr_q_SHIFT)
+#define VGT_DEBUG_REG17_SET_min_msk_ptr_q(vgt_debug_reg17_reg, min_msk_ptr_q) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_min_msk_ptr_q_MASK) | (min_msk_ptr_q << VGT_DEBUG_REG17_min_msk_ptr_q_SHIFT)
+#define VGT_DEBUG_REG17_SET_bgrp_trigger(vgt_debug_reg17_reg, bgrp_trigger) \
+ vgt_debug_reg17_reg = (vgt_debug_reg17_reg & ~VGT_DEBUG_REG17_bgrp_trigger_MASK) | (bgrp_trigger << VGT_DEBUG_REG17_bgrp_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg17_t {
+ unsigned int save_read_q : VGT_DEBUG_REG17_save_read_q_SIZE;
+ unsigned int extend_read_q : VGT_DEBUG_REG17_extend_read_q_SIZE;
+ unsigned int grp_indx_size : VGT_DEBUG_REG17_grp_indx_size_SIZE;
+ unsigned int cull_prim_true : VGT_DEBUG_REG17_cull_prim_true_SIZE;
+ unsigned int reset_bit2_q : VGT_DEBUG_REG17_reset_bit2_q_SIZE;
+ unsigned int reset_bit1_q : VGT_DEBUG_REG17_reset_bit1_q_SIZE;
+ unsigned int first_reg_first_q : VGT_DEBUG_REG17_first_reg_first_q_SIZE;
+ unsigned int check_second_reg : VGT_DEBUG_REG17_check_second_reg_SIZE;
+ unsigned int check_first_reg : VGT_DEBUG_REG17_check_first_reg_SIZE;
+ unsigned int bgrp_cull_fetch_fifo_wdata : VGT_DEBUG_REG17_bgrp_cull_fetch_fifo_wdata_SIZE;
+ unsigned int save_cull_fetch_data2_q : VGT_DEBUG_REG17_save_cull_fetch_data2_q_SIZE;
+ unsigned int save_cull_fetch_data1_q : VGT_DEBUG_REG17_save_cull_fetch_data1_q_SIZE;
+ unsigned int save_byte_mask_data2_q : VGT_DEBUG_REG17_save_byte_mask_data2_q_SIZE;
+ unsigned int save_byte_mask_data1_q : VGT_DEBUG_REG17_save_byte_mask_data1_q_SIZE;
+ unsigned int to_second_reg_q : VGT_DEBUG_REG17_to_second_reg_q_SIZE;
+ unsigned int roll_over_msk_q : VGT_DEBUG_REG17_roll_over_msk_q_SIZE;
+ unsigned int max_msk_ptr_q : VGT_DEBUG_REG17_max_msk_ptr_q_SIZE;
+ unsigned int min_msk_ptr_q : VGT_DEBUG_REG17_min_msk_ptr_q_SIZE;
+ unsigned int bgrp_trigger : VGT_DEBUG_REG17_bgrp_trigger_SIZE;
+ } vgt_debug_reg17_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg17_t {
+ unsigned int bgrp_trigger : VGT_DEBUG_REG17_bgrp_trigger_SIZE;
+ unsigned int min_msk_ptr_q : VGT_DEBUG_REG17_min_msk_ptr_q_SIZE;
+ unsigned int max_msk_ptr_q : VGT_DEBUG_REG17_max_msk_ptr_q_SIZE;
+ unsigned int roll_over_msk_q : VGT_DEBUG_REG17_roll_over_msk_q_SIZE;
+ unsigned int to_second_reg_q : VGT_DEBUG_REG17_to_second_reg_q_SIZE;
+ unsigned int save_byte_mask_data1_q : VGT_DEBUG_REG17_save_byte_mask_data1_q_SIZE;
+ unsigned int save_byte_mask_data2_q : VGT_DEBUG_REG17_save_byte_mask_data2_q_SIZE;
+ unsigned int save_cull_fetch_data1_q : VGT_DEBUG_REG17_save_cull_fetch_data1_q_SIZE;
+ unsigned int save_cull_fetch_data2_q : VGT_DEBUG_REG17_save_cull_fetch_data2_q_SIZE;
+ unsigned int bgrp_cull_fetch_fifo_wdata : VGT_DEBUG_REG17_bgrp_cull_fetch_fifo_wdata_SIZE;
+ unsigned int check_first_reg : VGT_DEBUG_REG17_check_first_reg_SIZE;
+ unsigned int check_second_reg : VGT_DEBUG_REG17_check_second_reg_SIZE;
+ unsigned int first_reg_first_q : VGT_DEBUG_REG17_first_reg_first_q_SIZE;
+ unsigned int reset_bit1_q : VGT_DEBUG_REG17_reset_bit1_q_SIZE;
+ unsigned int reset_bit2_q : VGT_DEBUG_REG17_reset_bit2_q_SIZE;
+ unsigned int cull_prim_true : VGT_DEBUG_REG17_cull_prim_true_SIZE;
+ unsigned int grp_indx_size : VGT_DEBUG_REG17_grp_indx_size_SIZE;
+ unsigned int extend_read_q : VGT_DEBUG_REG17_extend_read_q_SIZE;
+ unsigned int save_read_q : VGT_DEBUG_REG17_save_read_q_SIZE;
+ } vgt_debug_reg17_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_reg17_t f;
+} vgt_debug_reg17_u;
+
+
+/*
+ * VGT_DEBUG_REG18 struct
+ */
+
+#define VGT_DEBUG_REG18_dma_data_fifo_mem_raddr_SIZE 6
+#define VGT_DEBUG_REG18_dma_data_fifo_mem_waddr_SIZE 6
+#define VGT_DEBUG_REG18_dma_bgrp_byte_mask_fifo_re_SIZE 1
+#define VGT_DEBUG_REG18_dma_bgrp_dma_data_fifo_rptr_SIZE 2
+#define VGT_DEBUG_REG18_dma_mem_full_SIZE 1
+#define VGT_DEBUG_REG18_dma_ram_re_SIZE 1
+#define VGT_DEBUG_REG18_dma_ram_we_SIZE 1
+#define VGT_DEBUG_REG18_dma_mem_empty_SIZE 1
+#define VGT_DEBUG_REG18_dma_data_fifo_mem_re_SIZE 1
+#define VGT_DEBUG_REG18_dma_data_fifo_mem_we_SIZE 1
+#define VGT_DEBUG_REG18_bin_mem_full_SIZE 1
+#define VGT_DEBUG_REG18_bin_ram_we_SIZE 1
+#define VGT_DEBUG_REG18_bin_ram_re_SIZE 1
+#define VGT_DEBUG_REG18_bin_mem_empty_SIZE 1
+#define VGT_DEBUG_REG18_start_bin_req_SIZE 1
+#define VGT_DEBUG_REG18_fetch_cull_not_used_SIZE 1
+#define VGT_DEBUG_REG18_dma_req_xfer_SIZE 1
+#define VGT_DEBUG_REG18_have_valid_bin_req_SIZE 1
+#define VGT_DEBUG_REG18_have_valid_dma_req_SIZE 1
+#define VGT_DEBUG_REG18_bgrp_dma_di_grp_cull_enable_SIZE 1
+#define VGT_DEBUG_REG18_bgrp_dma_di_pre_fetch_cull_enable_SIZE 1
+
+#define VGT_DEBUG_REG18_dma_data_fifo_mem_raddr_SHIFT 0
+#define VGT_DEBUG_REG18_dma_data_fifo_mem_waddr_SHIFT 6
+#define VGT_DEBUG_REG18_dma_bgrp_byte_mask_fifo_re_SHIFT 12
+#define VGT_DEBUG_REG18_dma_bgrp_dma_data_fifo_rptr_SHIFT 13
+#define VGT_DEBUG_REG18_dma_mem_full_SHIFT 15
+#define VGT_DEBUG_REG18_dma_ram_re_SHIFT 16
+#define VGT_DEBUG_REG18_dma_ram_we_SHIFT 17
+#define VGT_DEBUG_REG18_dma_mem_empty_SHIFT 18
+#define VGT_DEBUG_REG18_dma_data_fifo_mem_re_SHIFT 19
+#define VGT_DEBUG_REG18_dma_data_fifo_mem_we_SHIFT 20
+#define VGT_DEBUG_REG18_bin_mem_full_SHIFT 21
+#define VGT_DEBUG_REG18_bin_ram_we_SHIFT 22
+#define VGT_DEBUG_REG18_bin_ram_re_SHIFT 23
+#define VGT_DEBUG_REG18_bin_mem_empty_SHIFT 24
+#define VGT_DEBUG_REG18_start_bin_req_SHIFT 25
+#define VGT_DEBUG_REG18_fetch_cull_not_used_SHIFT 26
+#define VGT_DEBUG_REG18_dma_req_xfer_SHIFT 27
+#define VGT_DEBUG_REG18_have_valid_bin_req_SHIFT 28
+#define VGT_DEBUG_REG18_have_valid_dma_req_SHIFT 29
+#define VGT_DEBUG_REG18_bgrp_dma_di_grp_cull_enable_SHIFT 30
+#define VGT_DEBUG_REG18_bgrp_dma_di_pre_fetch_cull_enable_SHIFT 31
+
+#define VGT_DEBUG_REG18_dma_data_fifo_mem_raddr_MASK 0x0000003f
+#define VGT_DEBUG_REG18_dma_data_fifo_mem_waddr_MASK 0x00000fc0
+#define VGT_DEBUG_REG18_dma_bgrp_byte_mask_fifo_re_MASK 0x00001000
+#define VGT_DEBUG_REG18_dma_bgrp_dma_data_fifo_rptr_MASK 0x00006000
+#define VGT_DEBUG_REG18_dma_mem_full_MASK 0x00008000
+#define VGT_DEBUG_REG18_dma_ram_re_MASK 0x00010000
+#define VGT_DEBUG_REG18_dma_ram_we_MASK 0x00020000
+#define VGT_DEBUG_REG18_dma_mem_empty_MASK 0x00040000
+#define VGT_DEBUG_REG18_dma_data_fifo_mem_re_MASK 0x00080000
+#define VGT_DEBUG_REG18_dma_data_fifo_mem_we_MASK 0x00100000
+#define VGT_DEBUG_REG18_bin_mem_full_MASK 0x00200000
+#define VGT_DEBUG_REG18_bin_ram_we_MASK 0x00400000
+#define VGT_DEBUG_REG18_bin_ram_re_MASK 0x00800000
+#define VGT_DEBUG_REG18_bin_mem_empty_MASK 0x01000000
+#define VGT_DEBUG_REG18_start_bin_req_MASK 0x02000000
+#define VGT_DEBUG_REG18_fetch_cull_not_used_MASK 0x04000000
+#define VGT_DEBUG_REG18_dma_req_xfer_MASK 0x08000000
+#define VGT_DEBUG_REG18_have_valid_bin_req_MASK 0x10000000
+#define VGT_DEBUG_REG18_have_valid_dma_req_MASK 0x20000000
+#define VGT_DEBUG_REG18_bgrp_dma_di_grp_cull_enable_MASK 0x40000000
+#define VGT_DEBUG_REG18_bgrp_dma_di_pre_fetch_cull_enable_MASK 0x80000000
+
+#define VGT_DEBUG_REG18_MASK \
+ (VGT_DEBUG_REG18_dma_data_fifo_mem_raddr_MASK | \
+ VGT_DEBUG_REG18_dma_data_fifo_mem_waddr_MASK | \
+ VGT_DEBUG_REG18_dma_bgrp_byte_mask_fifo_re_MASK | \
+ VGT_DEBUG_REG18_dma_bgrp_dma_data_fifo_rptr_MASK | \
+ VGT_DEBUG_REG18_dma_mem_full_MASK | \
+ VGT_DEBUG_REG18_dma_ram_re_MASK | \
+ VGT_DEBUG_REG18_dma_ram_we_MASK | \
+ VGT_DEBUG_REG18_dma_mem_empty_MASK | \
+ VGT_DEBUG_REG18_dma_data_fifo_mem_re_MASK | \
+ VGT_DEBUG_REG18_dma_data_fifo_mem_we_MASK | \
+ VGT_DEBUG_REG18_bin_mem_full_MASK | \
+ VGT_DEBUG_REG18_bin_ram_we_MASK | \
+ VGT_DEBUG_REG18_bin_ram_re_MASK | \
+ VGT_DEBUG_REG18_bin_mem_empty_MASK | \
+ VGT_DEBUG_REG18_start_bin_req_MASK | \
+ VGT_DEBUG_REG18_fetch_cull_not_used_MASK | \
+ VGT_DEBUG_REG18_dma_req_xfer_MASK | \
+ VGT_DEBUG_REG18_have_valid_bin_req_MASK | \
+ VGT_DEBUG_REG18_have_valid_dma_req_MASK | \
+ VGT_DEBUG_REG18_bgrp_dma_di_grp_cull_enable_MASK | \
+ VGT_DEBUG_REG18_bgrp_dma_di_pre_fetch_cull_enable_MASK)
+
+#define VGT_DEBUG_REG18(dma_data_fifo_mem_raddr, dma_data_fifo_mem_waddr, dma_bgrp_byte_mask_fifo_re, dma_bgrp_dma_data_fifo_rptr, dma_mem_full, dma_ram_re, dma_ram_we, dma_mem_empty, dma_data_fifo_mem_re, dma_data_fifo_mem_we, bin_mem_full, bin_ram_we, bin_ram_re, bin_mem_empty, start_bin_req, fetch_cull_not_used, dma_req_xfer, have_valid_bin_req, have_valid_dma_req, bgrp_dma_di_grp_cull_enable, bgrp_dma_di_pre_fetch_cull_enable) \
+ ((dma_data_fifo_mem_raddr << VGT_DEBUG_REG18_dma_data_fifo_mem_raddr_SHIFT) | \
+ (dma_data_fifo_mem_waddr << VGT_DEBUG_REG18_dma_data_fifo_mem_waddr_SHIFT) | \
+ (dma_bgrp_byte_mask_fifo_re << VGT_DEBUG_REG18_dma_bgrp_byte_mask_fifo_re_SHIFT) | \
+ (dma_bgrp_dma_data_fifo_rptr << VGT_DEBUG_REG18_dma_bgrp_dma_data_fifo_rptr_SHIFT) | \
+ (dma_mem_full << VGT_DEBUG_REG18_dma_mem_full_SHIFT) | \
+ (dma_ram_re << VGT_DEBUG_REG18_dma_ram_re_SHIFT) | \
+ (dma_ram_we << VGT_DEBUG_REG18_dma_ram_we_SHIFT) | \
+ (dma_mem_empty << VGT_DEBUG_REG18_dma_mem_empty_SHIFT) | \
+ (dma_data_fifo_mem_re << VGT_DEBUG_REG18_dma_data_fifo_mem_re_SHIFT) | \
+ (dma_data_fifo_mem_we << VGT_DEBUG_REG18_dma_data_fifo_mem_we_SHIFT) | \
+ (bin_mem_full << VGT_DEBUG_REG18_bin_mem_full_SHIFT) | \
+ (bin_ram_we << VGT_DEBUG_REG18_bin_ram_we_SHIFT) | \
+ (bin_ram_re << VGT_DEBUG_REG18_bin_ram_re_SHIFT) | \
+ (bin_mem_empty << VGT_DEBUG_REG18_bin_mem_empty_SHIFT) | \
+ (start_bin_req << VGT_DEBUG_REG18_start_bin_req_SHIFT) | \
+ (fetch_cull_not_used << VGT_DEBUG_REG18_fetch_cull_not_used_SHIFT) | \
+ (dma_req_xfer << VGT_DEBUG_REG18_dma_req_xfer_SHIFT) | \
+ (have_valid_bin_req << VGT_DEBUG_REG18_have_valid_bin_req_SHIFT) | \
+ (have_valid_dma_req << VGT_DEBUG_REG18_have_valid_dma_req_SHIFT) | \
+ (bgrp_dma_di_grp_cull_enable << VGT_DEBUG_REG18_bgrp_dma_di_grp_cull_enable_SHIFT) | \
+ (bgrp_dma_di_pre_fetch_cull_enable << VGT_DEBUG_REG18_bgrp_dma_di_pre_fetch_cull_enable_SHIFT))
+
+#define VGT_DEBUG_REG18_GET_dma_data_fifo_mem_raddr(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_dma_data_fifo_mem_raddr_MASK) >> VGT_DEBUG_REG18_dma_data_fifo_mem_raddr_SHIFT)
+#define VGT_DEBUG_REG18_GET_dma_data_fifo_mem_waddr(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_dma_data_fifo_mem_waddr_MASK) >> VGT_DEBUG_REG18_dma_data_fifo_mem_waddr_SHIFT)
+#define VGT_DEBUG_REG18_GET_dma_bgrp_byte_mask_fifo_re(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_dma_bgrp_byte_mask_fifo_re_MASK) >> VGT_DEBUG_REG18_dma_bgrp_byte_mask_fifo_re_SHIFT)
+#define VGT_DEBUG_REG18_GET_dma_bgrp_dma_data_fifo_rptr(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_dma_bgrp_dma_data_fifo_rptr_MASK) >> VGT_DEBUG_REG18_dma_bgrp_dma_data_fifo_rptr_SHIFT)
+#define VGT_DEBUG_REG18_GET_dma_mem_full(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_dma_mem_full_MASK) >> VGT_DEBUG_REG18_dma_mem_full_SHIFT)
+#define VGT_DEBUG_REG18_GET_dma_ram_re(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_dma_ram_re_MASK) >> VGT_DEBUG_REG18_dma_ram_re_SHIFT)
+#define VGT_DEBUG_REG18_GET_dma_ram_we(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_dma_ram_we_MASK) >> VGT_DEBUG_REG18_dma_ram_we_SHIFT)
+#define VGT_DEBUG_REG18_GET_dma_mem_empty(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_dma_mem_empty_MASK) >> VGT_DEBUG_REG18_dma_mem_empty_SHIFT)
+#define VGT_DEBUG_REG18_GET_dma_data_fifo_mem_re(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_dma_data_fifo_mem_re_MASK) >> VGT_DEBUG_REG18_dma_data_fifo_mem_re_SHIFT)
+#define VGT_DEBUG_REG18_GET_dma_data_fifo_mem_we(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_dma_data_fifo_mem_we_MASK) >> VGT_DEBUG_REG18_dma_data_fifo_mem_we_SHIFT)
+#define VGT_DEBUG_REG18_GET_bin_mem_full(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_bin_mem_full_MASK) >> VGT_DEBUG_REG18_bin_mem_full_SHIFT)
+#define VGT_DEBUG_REG18_GET_bin_ram_we(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_bin_ram_we_MASK) >> VGT_DEBUG_REG18_bin_ram_we_SHIFT)
+#define VGT_DEBUG_REG18_GET_bin_ram_re(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_bin_ram_re_MASK) >> VGT_DEBUG_REG18_bin_ram_re_SHIFT)
+#define VGT_DEBUG_REG18_GET_bin_mem_empty(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_bin_mem_empty_MASK) >> VGT_DEBUG_REG18_bin_mem_empty_SHIFT)
+#define VGT_DEBUG_REG18_GET_start_bin_req(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_start_bin_req_MASK) >> VGT_DEBUG_REG18_start_bin_req_SHIFT)
+#define VGT_DEBUG_REG18_GET_fetch_cull_not_used(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_fetch_cull_not_used_MASK) >> VGT_DEBUG_REG18_fetch_cull_not_used_SHIFT)
+#define VGT_DEBUG_REG18_GET_dma_req_xfer(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_dma_req_xfer_MASK) >> VGT_DEBUG_REG18_dma_req_xfer_SHIFT)
+#define VGT_DEBUG_REG18_GET_have_valid_bin_req(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_have_valid_bin_req_MASK) >> VGT_DEBUG_REG18_have_valid_bin_req_SHIFT)
+#define VGT_DEBUG_REG18_GET_have_valid_dma_req(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_have_valid_dma_req_MASK) >> VGT_DEBUG_REG18_have_valid_dma_req_SHIFT)
+#define VGT_DEBUG_REG18_GET_bgrp_dma_di_grp_cull_enable(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_bgrp_dma_di_grp_cull_enable_MASK) >> VGT_DEBUG_REG18_bgrp_dma_di_grp_cull_enable_SHIFT)
+#define VGT_DEBUG_REG18_GET_bgrp_dma_di_pre_fetch_cull_enable(vgt_debug_reg18) \
+ ((vgt_debug_reg18 & VGT_DEBUG_REG18_bgrp_dma_di_pre_fetch_cull_enable_MASK) >> VGT_DEBUG_REG18_bgrp_dma_di_pre_fetch_cull_enable_SHIFT)
+
+#define VGT_DEBUG_REG18_SET_dma_data_fifo_mem_raddr(vgt_debug_reg18_reg, dma_data_fifo_mem_raddr) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_dma_data_fifo_mem_raddr_MASK) | (dma_data_fifo_mem_raddr << VGT_DEBUG_REG18_dma_data_fifo_mem_raddr_SHIFT)
+#define VGT_DEBUG_REG18_SET_dma_data_fifo_mem_waddr(vgt_debug_reg18_reg, dma_data_fifo_mem_waddr) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_dma_data_fifo_mem_waddr_MASK) | (dma_data_fifo_mem_waddr << VGT_DEBUG_REG18_dma_data_fifo_mem_waddr_SHIFT)
+#define VGT_DEBUG_REG18_SET_dma_bgrp_byte_mask_fifo_re(vgt_debug_reg18_reg, dma_bgrp_byte_mask_fifo_re) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_dma_bgrp_byte_mask_fifo_re_MASK) | (dma_bgrp_byte_mask_fifo_re << VGT_DEBUG_REG18_dma_bgrp_byte_mask_fifo_re_SHIFT)
+#define VGT_DEBUG_REG18_SET_dma_bgrp_dma_data_fifo_rptr(vgt_debug_reg18_reg, dma_bgrp_dma_data_fifo_rptr) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_dma_bgrp_dma_data_fifo_rptr_MASK) | (dma_bgrp_dma_data_fifo_rptr << VGT_DEBUG_REG18_dma_bgrp_dma_data_fifo_rptr_SHIFT)
+#define VGT_DEBUG_REG18_SET_dma_mem_full(vgt_debug_reg18_reg, dma_mem_full) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_dma_mem_full_MASK) | (dma_mem_full << VGT_DEBUG_REG18_dma_mem_full_SHIFT)
+#define VGT_DEBUG_REG18_SET_dma_ram_re(vgt_debug_reg18_reg, dma_ram_re) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_dma_ram_re_MASK) | (dma_ram_re << VGT_DEBUG_REG18_dma_ram_re_SHIFT)
+#define VGT_DEBUG_REG18_SET_dma_ram_we(vgt_debug_reg18_reg, dma_ram_we) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_dma_ram_we_MASK) | (dma_ram_we << VGT_DEBUG_REG18_dma_ram_we_SHIFT)
+#define VGT_DEBUG_REG18_SET_dma_mem_empty(vgt_debug_reg18_reg, dma_mem_empty) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_dma_mem_empty_MASK) | (dma_mem_empty << VGT_DEBUG_REG18_dma_mem_empty_SHIFT)
+#define VGT_DEBUG_REG18_SET_dma_data_fifo_mem_re(vgt_debug_reg18_reg, dma_data_fifo_mem_re) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_dma_data_fifo_mem_re_MASK) | (dma_data_fifo_mem_re << VGT_DEBUG_REG18_dma_data_fifo_mem_re_SHIFT)
+#define VGT_DEBUG_REG18_SET_dma_data_fifo_mem_we(vgt_debug_reg18_reg, dma_data_fifo_mem_we) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_dma_data_fifo_mem_we_MASK) | (dma_data_fifo_mem_we << VGT_DEBUG_REG18_dma_data_fifo_mem_we_SHIFT)
+#define VGT_DEBUG_REG18_SET_bin_mem_full(vgt_debug_reg18_reg, bin_mem_full) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_bin_mem_full_MASK) | (bin_mem_full << VGT_DEBUG_REG18_bin_mem_full_SHIFT)
+#define VGT_DEBUG_REG18_SET_bin_ram_we(vgt_debug_reg18_reg, bin_ram_we) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_bin_ram_we_MASK) | (bin_ram_we << VGT_DEBUG_REG18_bin_ram_we_SHIFT)
+#define VGT_DEBUG_REG18_SET_bin_ram_re(vgt_debug_reg18_reg, bin_ram_re) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_bin_ram_re_MASK) | (bin_ram_re << VGT_DEBUG_REG18_bin_ram_re_SHIFT)
+#define VGT_DEBUG_REG18_SET_bin_mem_empty(vgt_debug_reg18_reg, bin_mem_empty) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_bin_mem_empty_MASK) | (bin_mem_empty << VGT_DEBUG_REG18_bin_mem_empty_SHIFT)
+#define VGT_DEBUG_REG18_SET_start_bin_req(vgt_debug_reg18_reg, start_bin_req) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_start_bin_req_MASK) | (start_bin_req << VGT_DEBUG_REG18_start_bin_req_SHIFT)
+#define VGT_DEBUG_REG18_SET_fetch_cull_not_used(vgt_debug_reg18_reg, fetch_cull_not_used) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_fetch_cull_not_used_MASK) | (fetch_cull_not_used << VGT_DEBUG_REG18_fetch_cull_not_used_SHIFT)
+#define VGT_DEBUG_REG18_SET_dma_req_xfer(vgt_debug_reg18_reg, dma_req_xfer) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_dma_req_xfer_MASK) | (dma_req_xfer << VGT_DEBUG_REG18_dma_req_xfer_SHIFT)
+#define VGT_DEBUG_REG18_SET_have_valid_bin_req(vgt_debug_reg18_reg, have_valid_bin_req) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_have_valid_bin_req_MASK) | (have_valid_bin_req << VGT_DEBUG_REG18_have_valid_bin_req_SHIFT)
+#define VGT_DEBUG_REG18_SET_have_valid_dma_req(vgt_debug_reg18_reg, have_valid_dma_req) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_have_valid_dma_req_MASK) | (have_valid_dma_req << VGT_DEBUG_REG18_have_valid_dma_req_SHIFT)
+#define VGT_DEBUG_REG18_SET_bgrp_dma_di_grp_cull_enable(vgt_debug_reg18_reg, bgrp_dma_di_grp_cull_enable) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_bgrp_dma_di_grp_cull_enable_MASK) | (bgrp_dma_di_grp_cull_enable << VGT_DEBUG_REG18_bgrp_dma_di_grp_cull_enable_SHIFT)
+#define VGT_DEBUG_REG18_SET_bgrp_dma_di_pre_fetch_cull_enable(vgt_debug_reg18_reg, bgrp_dma_di_pre_fetch_cull_enable) \
+ vgt_debug_reg18_reg = (vgt_debug_reg18_reg & ~VGT_DEBUG_REG18_bgrp_dma_di_pre_fetch_cull_enable_MASK) | (bgrp_dma_di_pre_fetch_cull_enable << VGT_DEBUG_REG18_bgrp_dma_di_pre_fetch_cull_enable_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg18_t {
+ unsigned int dma_data_fifo_mem_raddr : VGT_DEBUG_REG18_dma_data_fifo_mem_raddr_SIZE;
+ unsigned int dma_data_fifo_mem_waddr : VGT_DEBUG_REG18_dma_data_fifo_mem_waddr_SIZE;
+ unsigned int dma_bgrp_byte_mask_fifo_re : VGT_DEBUG_REG18_dma_bgrp_byte_mask_fifo_re_SIZE;
+ unsigned int dma_bgrp_dma_data_fifo_rptr : VGT_DEBUG_REG18_dma_bgrp_dma_data_fifo_rptr_SIZE;
+ unsigned int dma_mem_full : VGT_DEBUG_REG18_dma_mem_full_SIZE;
+ unsigned int dma_ram_re : VGT_DEBUG_REG18_dma_ram_re_SIZE;
+ unsigned int dma_ram_we : VGT_DEBUG_REG18_dma_ram_we_SIZE;
+ unsigned int dma_mem_empty : VGT_DEBUG_REG18_dma_mem_empty_SIZE;
+ unsigned int dma_data_fifo_mem_re : VGT_DEBUG_REG18_dma_data_fifo_mem_re_SIZE;
+ unsigned int dma_data_fifo_mem_we : VGT_DEBUG_REG18_dma_data_fifo_mem_we_SIZE;
+ unsigned int bin_mem_full : VGT_DEBUG_REG18_bin_mem_full_SIZE;
+ unsigned int bin_ram_we : VGT_DEBUG_REG18_bin_ram_we_SIZE;
+ unsigned int bin_ram_re : VGT_DEBUG_REG18_bin_ram_re_SIZE;
+ unsigned int bin_mem_empty : VGT_DEBUG_REG18_bin_mem_empty_SIZE;
+ unsigned int start_bin_req : VGT_DEBUG_REG18_start_bin_req_SIZE;
+ unsigned int fetch_cull_not_used : VGT_DEBUG_REG18_fetch_cull_not_used_SIZE;
+ unsigned int dma_req_xfer : VGT_DEBUG_REG18_dma_req_xfer_SIZE;
+ unsigned int have_valid_bin_req : VGT_DEBUG_REG18_have_valid_bin_req_SIZE;
+ unsigned int have_valid_dma_req : VGT_DEBUG_REG18_have_valid_dma_req_SIZE;
+ unsigned int bgrp_dma_di_grp_cull_enable : VGT_DEBUG_REG18_bgrp_dma_di_grp_cull_enable_SIZE;
+ unsigned int bgrp_dma_di_pre_fetch_cull_enable : VGT_DEBUG_REG18_bgrp_dma_di_pre_fetch_cull_enable_SIZE;
+ } vgt_debug_reg18_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg18_t {
+ unsigned int bgrp_dma_di_pre_fetch_cull_enable : VGT_DEBUG_REG18_bgrp_dma_di_pre_fetch_cull_enable_SIZE;
+ unsigned int bgrp_dma_di_grp_cull_enable : VGT_DEBUG_REG18_bgrp_dma_di_grp_cull_enable_SIZE;
+ unsigned int have_valid_dma_req : VGT_DEBUG_REG18_have_valid_dma_req_SIZE;
+ unsigned int have_valid_bin_req : VGT_DEBUG_REG18_have_valid_bin_req_SIZE;
+ unsigned int dma_req_xfer : VGT_DEBUG_REG18_dma_req_xfer_SIZE;
+ unsigned int fetch_cull_not_used : VGT_DEBUG_REG18_fetch_cull_not_used_SIZE;
+ unsigned int start_bin_req : VGT_DEBUG_REG18_start_bin_req_SIZE;
+ unsigned int bin_mem_empty : VGT_DEBUG_REG18_bin_mem_empty_SIZE;
+ unsigned int bin_ram_re : VGT_DEBUG_REG18_bin_ram_re_SIZE;
+ unsigned int bin_ram_we : VGT_DEBUG_REG18_bin_ram_we_SIZE;
+ unsigned int bin_mem_full : VGT_DEBUG_REG18_bin_mem_full_SIZE;
+ unsigned int dma_data_fifo_mem_we : VGT_DEBUG_REG18_dma_data_fifo_mem_we_SIZE;
+ unsigned int dma_data_fifo_mem_re : VGT_DEBUG_REG18_dma_data_fifo_mem_re_SIZE;
+ unsigned int dma_mem_empty : VGT_DEBUG_REG18_dma_mem_empty_SIZE;
+ unsigned int dma_ram_we : VGT_DEBUG_REG18_dma_ram_we_SIZE;
+ unsigned int dma_ram_re : VGT_DEBUG_REG18_dma_ram_re_SIZE;
+ unsigned int dma_mem_full : VGT_DEBUG_REG18_dma_mem_full_SIZE;
+ unsigned int dma_bgrp_dma_data_fifo_rptr : VGT_DEBUG_REG18_dma_bgrp_dma_data_fifo_rptr_SIZE;
+ unsigned int dma_bgrp_byte_mask_fifo_re : VGT_DEBUG_REG18_dma_bgrp_byte_mask_fifo_re_SIZE;
+ unsigned int dma_data_fifo_mem_waddr : VGT_DEBUG_REG18_dma_data_fifo_mem_waddr_SIZE;
+ unsigned int dma_data_fifo_mem_raddr : VGT_DEBUG_REG18_dma_data_fifo_mem_raddr_SIZE;
+ } vgt_debug_reg18_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_reg18_t f;
+} vgt_debug_reg18_u;
+
+
+/*
+ * VGT_DEBUG_REG20 struct
+ */
+
+#define VGT_DEBUG_REG20_prim_side_indx_valid_SIZE 1
+#define VGT_DEBUG_REG20_indx_side_fifo_empty_SIZE 1
+#define VGT_DEBUG_REG20_indx_side_fifo_re_SIZE 1
+#define VGT_DEBUG_REG20_indx_side_fifo_we_SIZE 1
+#define VGT_DEBUG_REG20_indx_side_fifo_full_SIZE 1
+#define VGT_DEBUG_REG20_prim_buffer_empty_SIZE 1
+#define VGT_DEBUG_REG20_prim_buffer_re_SIZE 1
+#define VGT_DEBUG_REG20_prim_buffer_we_SIZE 1
+#define VGT_DEBUG_REG20_prim_buffer_full_SIZE 1
+#define VGT_DEBUG_REG20_indx_buffer_empty_SIZE 1
+#define VGT_DEBUG_REG20_indx_buffer_re_SIZE 1
+#define VGT_DEBUG_REG20_indx_buffer_we_SIZE 1
+#define VGT_DEBUG_REG20_indx_buffer_full_SIZE 1
+#define VGT_DEBUG_REG20_hold_prim_SIZE 1
+#define VGT_DEBUG_REG20_sent_cnt_SIZE 4
+#define VGT_DEBUG_REG20_start_of_vtx_vector_SIZE 1
+#define VGT_DEBUG_REG20_clip_s_pre_hold_prim_SIZE 1
+#define VGT_DEBUG_REG20_clip_p_pre_hold_prim_SIZE 1
+#define VGT_DEBUG_REG20_buffered_prim_type_event_SIZE 5
+#define VGT_DEBUG_REG20_out_trigger_SIZE 1
+
+#define VGT_DEBUG_REG20_prim_side_indx_valid_SHIFT 0
+#define VGT_DEBUG_REG20_indx_side_fifo_empty_SHIFT 1
+#define VGT_DEBUG_REG20_indx_side_fifo_re_SHIFT 2
+#define VGT_DEBUG_REG20_indx_side_fifo_we_SHIFT 3
+#define VGT_DEBUG_REG20_indx_side_fifo_full_SHIFT 4
+#define VGT_DEBUG_REG20_prim_buffer_empty_SHIFT 5
+#define VGT_DEBUG_REG20_prim_buffer_re_SHIFT 6
+#define VGT_DEBUG_REG20_prim_buffer_we_SHIFT 7
+#define VGT_DEBUG_REG20_prim_buffer_full_SHIFT 8
+#define VGT_DEBUG_REG20_indx_buffer_empty_SHIFT 9
+#define VGT_DEBUG_REG20_indx_buffer_re_SHIFT 10
+#define VGT_DEBUG_REG20_indx_buffer_we_SHIFT 11
+#define VGT_DEBUG_REG20_indx_buffer_full_SHIFT 12
+#define VGT_DEBUG_REG20_hold_prim_SHIFT 13
+#define VGT_DEBUG_REG20_sent_cnt_SHIFT 14
+#define VGT_DEBUG_REG20_start_of_vtx_vector_SHIFT 18
+#define VGT_DEBUG_REG20_clip_s_pre_hold_prim_SHIFT 19
+#define VGT_DEBUG_REG20_clip_p_pre_hold_prim_SHIFT 20
+#define VGT_DEBUG_REG20_buffered_prim_type_event_SHIFT 21
+#define VGT_DEBUG_REG20_out_trigger_SHIFT 26
+
+#define VGT_DEBUG_REG20_prim_side_indx_valid_MASK 0x00000001
+#define VGT_DEBUG_REG20_indx_side_fifo_empty_MASK 0x00000002
+#define VGT_DEBUG_REG20_indx_side_fifo_re_MASK 0x00000004
+#define VGT_DEBUG_REG20_indx_side_fifo_we_MASK 0x00000008
+#define VGT_DEBUG_REG20_indx_side_fifo_full_MASK 0x00000010
+#define VGT_DEBUG_REG20_prim_buffer_empty_MASK 0x00000020
+#define VGT_DEBUG_REG20_prim_buffer_re_MASK 0x00000040
+#define VGT_DEBUG_REG20_prim_buffer_we_MASK 0x00000080
+#define VGT_DEBUG_REG20_prim_buffer_full_MASK 0x00000100
+#define VGT_DEBUG_REG20_indx_buffer_empty_MASK 0x00000200
+#define VGT_DEBUG_REG20_indx_buffer_re_MASK 0x00000400
+#define VGT_DEBUG_REG20_indx_buffer_we_MASK 0x00000800
+#define VGT_DEBUG_REG20_indx_buffer_full_MASK 0x00001000
+#define VGT_DEBUG_REG20_hold_prim_MASK 0x00002000
+#define VGT_DEBUG_REG20_sent_cnt_MASK 0x0003c000
+#define VGT_DEBUG_REG20_start_of_vtx_vector_MASK 0x00040000
+#define VGT_DEBUG_REG20_clip_s_pre_hold_prim_MASK 0x00080000
+#define VGT_DEBUG_REG20_clip_p_pre_hold_prim_MASK 0x00100000
+#define VGT_DEBUG_REG20_buffered_prim_type_event_MASK 0x03e00000
+#define VGT_DEBUG_REG20_out_trigger_MASK 0x04000000
+
+#define VGT_DEBUG_REG20_MASK \
+ (VGT_DEBUG_REG20_prim_side_indx_valid_MASK | \
+ VGT_DEBUG_REG20_indx_side_fifo_empty_MASK | \
+ VGT_DEBUG_REG20_indx_side_fifo_re_MASK | \
+ VGT_DEBUG_REG20_indx_side_fifo_we_MASK | \
+ VGT_DEBUG_REG20_indx_side_fifo_full_MASK | \
+ VGT_DEBUG_REG20_prim_buffer_empty_MASK | \
+ VGT_DEBUG_REG20_prim_buffer_re_MASK | \
+ VGT_DEBUG_REG20_prim_buffer_we_MASK | \
+ VGT_DEBUG_REG20_prim_buffer_full_MASK | \
+ VGT_DEBUG_REG20_indx_buffer_empty_MASK | \
+ VGT_DEBUG_REG20_indx_buffer_re_MASK | \
+ VGT_DEBUG_REG20_indx_buffer_we_MASK | \
+ VGT_DEBUG_REG20_indx_buffer_full_MASK | \
+ VGT_DEBUG_REG20_hold_prim_MASK | \
+ VGT_DEBUG_REG20_sent_cnt_MASK | \
+ VGT_DEBUG_REG20_start_of_vtx_vector_MASK | \
+ VGT_DEBUG_REG20_clip_s_pre_hold_prim_MASK | \
+ VGT_DEBUG_REG20_clip_p_pre_hold_prim_MASK | \
+ VGT_DEBUG_REG20_buffered_prim_type_event_MASK | \
+ VGT_DEBUG_REG20_out_trigger_MASK)
+
+#define VGT_DEBUG_REG20(prim_side_indx_valid, indx_side_fifo_empty, indx_side_fifo_re, indx_side_fifo_we, indx_side_fifo_full, prim_buffer_empty, prim_buffer_re, prim_buffer_we, prim_buffer_full, indx_buffer_empty, indx_buffer_re, indx_buffer_we, indx_buffer_full, hold_prim, sent_cnt, start_of_vtx_vector, clip_s_pre_hold_prim, clip_p_pre_hold_prim, buffered_prim_type_event, out_trigger) \
+ ((prim_side_indx_valid << VGT_DEBUG_REG20_prim_side_indx_valid_SHIFT) | \
+ (indx_side_fifo_empty << VGT_DEBUG_REG20_indx_side_fifo_empty_SHIFT) | \
+ (indx_side_fifo_re << VGT_DEBUG_REG20_indx_side_fifo_re_SHIFT) | \
+ (indx_side_fifo_we << VGT_DEBUG_REG20_indx_side_fifo_we_SHIFT) | \
+ (indx_side_fifo_full << VGT_DEBUG_REG20_indx_side_fifo_full_SHIFT) | \
+ (prim_buffer_empty << VGT_DEBUG_REG20_prim_buffer_empty_SHIFT) | \
+ (prim_buffer_re << VGT_DEBUG_REG20_prim_buffer_re_SHIFT) | \
+ (prim_buffer_we << VGT_DEBUG_REG20_prim_buffer_we_SHIFT) | \
+ (prim_buffer_full << VGT_DEBUG_REG20_prim_buffer_full_SHIFT) | \
+ (indx_buffer_empty << VGT_DEBUG_REG20_indx_buffer_empty_SHIFT) | \
+ (indx_buffer_re << VGT_DEBUG_REG20_indx_buffer_re_SHIFT) | \
+ (indx_buffer_we << VGT_DEBUG_REG20_indx_buffer_we_SHIFT) | \
+ (indx_buffer_full << VGT_DEBUG_REG20_indx_buffer_full_SHIFT) | \
+ (hold_prim << VGT_DEBUG_REG20_hold_prim_SHIFT) | \
+ (sent_cnt << VGT_DEBUG_REG20_sent_cnt_SHIFT) | \
+ (start_of_vtx_vector << VGT_DEBUG_REG20_start_of_vtx_vector_SHIFT) | \
+ (clip_s_pre_hold_prim << VGT_DEBUG_REG20_clip_s_pre_hold_prim_SHIFT) | \
+ (clip_p_pre_hold_prim << VGT_DEBUG_REG20_clip_p_pre_hold_prim_SHIFT) | \
+ (buffered_prim_type_event << VGT_DEBUG_REG20_buffered_prim_type_event_SHIFT) | \
+ (out_trigger << VGT_DEBUG_REG20_out_trigger_SHIFT))
+
+#define VGT_DEBUG_REG20_GET_prim_side_indx_valid(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_prim_side_indx_valid_MASK) >> VGT_DEBUG_REG20_prim_side_indx_valid_SHIFT)
+#define VGT_DEBUG_REG20_GET_indx_side_fifo_empty(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_indx_side_fifo_empty_MASK) >> VGT_DEBUG_REG20_indx_side_fifo_empty_SHIFT)
+#define VGT_DEBUG_REG20_GET_indx_side_fifo_re(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_indx_side_fifo_re_MASK) >> VGT_DEBUG_REG20_indx_side_fifo_re_SHIFT)
+#define VGT_DEBUG_REG20_GET_indx_side_fifo_we(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_indx_side_fifo_we_MASK) >> VGT_DEBUG_REG20_indx_side_fifo_we_SHIFT)
+#define VGT_DEBUG_REG20_GET_indx_side_fifo_full(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_indx_side_fifo_full_MASK) >> VGT_DEBUG_REG20_indx_side_fifo_full_SHIFT)
+#define VGT_DEBUG_REG20_GET_prim_buffer_empty(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_prim_buffer_empty_MASK) >> VGT_DEBUG_REG20_prim_buffer_empty_SHIFT)
+#define VGT_DEBUG_REG20_GET_prim_buffer_re(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_prim_buffer_re_MASK) >> VGT_DEBUG_REG20_prim_buffer_re_SHIFT)
+#define VGT_DEBUG_REG20_GET_prim_buffer_we(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_prim_buffer_we_MASK) >> VGT_DEBUG_REG20_prim_buffer_we_SHIFT)
+#define VGT_DEBUG_REG20_GET_prim_buffer_full(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_prim_buffer_full_MASK) >> VGT_DEBUG_REG20_prim_buffer_full_SHIFT)
+#define VGT_DEBUG_REG20_GET_indx_buffer_empty(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_indx_buffer_empty_MASK) >> VGT_DEBUG_REG20_indx_buffer_empty_SHIFT)
+#define VGT_DEBUG_REG20_GET_indx_buffer_re(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_indx_buffer_re_MASK) >> VGT_DEBUG_REG20_indx_buffer_re_SHIFT)
+#define VGT_DEBUG_REG20_GET_indx_buffer_we(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_indx_buffer_we_MASK) >> VGT_DEBUG_REG20_indx_buffer_we_SHIFT)
+#define VGT_DEBUG_REG20_GET_indx_buffer_full(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_indx_buffer_full_MASK) >> VGT_DEBUG_REG20_indx_buffer_full_SHIFT)
+#define VGT_DEBUG_REG20_GET_hold_prim(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_hold_prim_MASK) >> VGT_DEBUG_REG20_hold_prim_SHIFT)
+#define VGT_DEBUG_REG20_GET_sent_cnt(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_sent_cnt_MASK) >> VGT_DEBUG_REG20_sent_cnt_SHIFT)
+#define VGT_DEBUG_REG20_GET_start_of_vtx_vector(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_start_of_vtx_vector_MASK) >> VGT_DEBUG_REG20_start_of_vtx_vector_SHIFT)
+#define VGT_DEBUG_REG20_GET_clip_s_pre_hold_prim(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_clip_s_pre_hold_prim_MASK) >> VGT_DEBUG_REG20_clip_s_pre_hold_prim_SHIFT)
+#define VGT_DEBUG_REG20_GET_clip_p_pre_hold_prim(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_clip_p_pre_hold_prim_MASK) >> VGT_DEBUG_REG20_clip_p_pre_hold_prim_SHIFT)
+#define VGT_DEBUG_REG20_GET_buffered_prim_type_event(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_buffered_prim_type_event_MASK) >> VGT_DEBUG_REG20_buffered_prim_type_event_SHIFT)
+#define VGT_DEBUG_REG20_GET_out_trigger(vgt_debug_reg20) \
+ ((vgt_debug_reg20 & VGT_DEBUG_REG20_out_trigger_MASK) >> VGT_DEBUG_REG20_out_trigger_SHIFT)
+
+#define VGT_DEBUG_REG20_SET_prim_side_indx_valid(vgt_debug_reg20_reg, prim_side_indx_valid) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_prim_side_indx_valid_MASK) | (prim_side_indx_valid << VGT_DEBUG_REG20_prim_side_indx_valid_SHIFT)
+#define VGT_DEBUG_REG20_SET_indx_side_fifo_empty(vgt_debug_reg20_reg, indx_side_fifo_empty) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_indx_side_fifo_empty_MASK) | (indx_side_fifo_empty << VGT_DEBUG_REG20_indx_side_fifo_empty_SHIFT)
+#define VGT_DEBUG_REG20_SET_indx_side_fifo_re(vgt_debug_reg20_reg, indx_side_fifo_re) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_indx_side_fifo_re_MASK) | (indx_side_fifo_re << VGT_DEBUG_REG20_indx_side_fifo_re_SHIFT)
+#define VGT_DEBUG_REG20_SET_indx_side_fifo_we(vgt_debug_reg20_reg, indx_side_fifo_we) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_indx_side_fifo_we_MASK) | (indx_side_fifo_we << VGT_DEBUG_REG20_indx_side_fifo_we_SHIFT)
+#define VGT_DEBUG_REG20_SET_indx_side_fifo_full(vgt_debug_reg20_reg, indx_side_fifo_full) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_indx_side_fifo_full_MASK) | (indx_side_fifo_full << VGT_DEBUG_REG20_indx_side_fifo_full_SHIFT)
+#define VGT_DEBUG_REG20_SET_prim_buffer_empty(vgt_debug_reg20_reg, prim_buffer_empty) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_prim_buffer_empty_MASK) | (prim_buffer_empty << VGT_DEBUG_REG20_prim_buffer_empty_SHIFT)
+#define VGT_DEBUG_REG20_SET_prim_buffer_re(vgt_debug_reg20_reg, prim_buffer_re) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_prim_buffer_re_MASK) | (prim_buffer_re << VGT_DEBUG_REG20_prim_buffer_re_SHIFT)
+#define VGT_DEBUG_REG20_SET_prim_buffer_we(vgt_debug_reg20_reg, prim_buffer_we) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_prim_buffer_we_MASK) | (prim_buffer_we << VGT_DEBUG_REG20_prim_buffer_we_SHIFT)
+#define VGT_DEBUG_REG20_SET_prim_buffer_full(vgt_debug_reg20_reg, prim_buffer_full) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_prim_buffer_full_MASK) | (prim_buffer_full << VGT_DEBUG_REG20_prim_buffer_full_SHIFT)
+#define VGT_DEBUG_REG20_SET_indx_buffer_empty(vgt_debug_reg20_reg, indx_buffer_empty) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_indx_buffer_empty_MASK) | (indx_buffer_empty << VGT_DEBUG_REG20_indx_buffer_empty_SHIFT)
+#define VGT_DEBUG_REG20_SET_indx_buffer_re(vgt_debug_reg20_reg, indx_buffer_re) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_indx_buffer_re_MASK) | (indx_buffer_re << VGT_DEBUG_REG20_indx_buffer_re_SHIFT)
+#define VGT_DEBUG_REG20_SET_indx_buffer_we(vgt_debug_reg20_reg, indx_buffer_we) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_indx_buffer_we_MASK) | (indx_buffer_we << VGT_DEBUG_REG20_indx_buffer_we_SHIFT)
+#define VGT_DEBUG_REG20_SET_indx_buffer_full(vgt_debug_reg20_reg, indx_buffer_full) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_indx_buffer_full_MASK) | (indx_buffer_full << VGT_DEBUG_REG20_indx_buffer_full_SHIFT)
+#define VGT_DEBUG_REG20_SET_hold_prim(vgt_debug_reg20_reg, hold_prim) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_hold_prim_MASK) | (hold_prim << VGT_DEBUG_REG20_hold_prim_SHIFT)
+#define VGT_DEBUG_REG20_SET_sent_cnt(vgt_debug_reg20_reg, sent_cnt) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_sent_cnt_MASK) | (sent_cnt << VGT_DEBUG_REG20_sent_cnt_SHIFT)
+#define VGT_DEBUG_REG20_SET_start_of_vtx_vector(vgt_debug_reg20_reg, start_of_vtx_vector) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_start_of_vtx_vector_MASK) | (start_of_vtx_vector << VGT_DEBUG_REG20_start_of_vtx_vector_SHIFT)
+#define VGT_DEBUG_REG20_SET_clip_s_pre_hold_prim(vgt_debug_reg20_reg, clip_s_pre_hold_prim) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_clip_s_pre_hold_prim_MASK) | (clip_s_pre_hold_prim << VGT_DEBUG_REG20_clip_s_pre_hold_prim_SHIFT)
+#define VGT_DEBUG_REG20_SET_clip_p_pre_hold_prim(vgt_debug_reg20_reg, clip_p_pre_hold_prim) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_clip_p_pre_hold_prim_MASK) | (clip_p_pre_hold_prim << VGT_DEBUG_REG20_clip_p_pre_hold_prim_SHIFT)
+#define VGT_DEBUG_REG20_SET_buffered_prim_type_event(vgt_debug_reg20_reg, buffered_prim_type_event) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_buffered_prim_type_event_MASK) | (buffered_prim_type_event << VGT_DEBUG_REG20_buffered_prim_type_event_SHIFT)
+#define VGT_DEBUG_REG20_SET_out_trigger(vgt_debug_reg20_reg, out_trigger) \
+ vgt_debug_reg20_reg = (vgt_debug_reg20_reg & ~VGT_DEBUG_REG20_out_trigger_MASK) | (out_trigger << VGT_DEBUG_REG20_out_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg20_t {
+ unsigned int prim_side_indx_valid : VGT_DEBUG_REG20_prim_side_indx_valid_SIZE;
+ unsigned int indx_side_fifo_empty : VGT_DEBUG_REG20_indx_side_fifo_empty_SIZE;
+ unsigned int indx_side_fifo_re : VGT_DEBUG_REG20_indx_side_fifo_re_SIZE;
+ unsigned int indx_side_fifo_we : VGT_DEBUG_REG20_indx_side_fifo_we_SIZE;
+ unsigned int indx_side_fifo_full : VGT_DEBUG_REG20_indx_side_fifo_full_SIZE;
+ unsigned int prim_buffer_empty : VGT_DEBUG_REG20_prim_buffer_empty_SIZE;
+ unsigned int prim_buffer_re : VGT_DEBUG_REG20_prim_buffer_re_SIZE;
+ unsigned int prim_buffer_we : VGT_DEBUG_REG20_prim_buffer_we_SIZE;
+ unsigned int prim_buffer_full : VGT_DEBUG_REG20_prim_buffer_full_SIZE;
+ unsigned int indx_buffer_empty : VGT_DEBUG_REG20_indx_buffer_empty_SIZE;
+ unsigned int indx_buffer_re : VGT_DEBUG_REG20_indx_buffer_re_SIZE;
+ unsigned int indx_buffer_we : VGT_DEBUG_REG20_indx_buffer_we_SIZE;
+ unsigned int indx_buffer_full : VGT_DEBUG_REG20_indx_buffer_full_SIZE;
+ unsigned int hold_prim : VGT_DEBUG_REG20_hold_prim_SIZE;
+ unsigned int sent_cnt : VGT_DEBUG_REG20_sent_cnt_SIZE;
+ unsigned int start_of_vtx_vector : VGT_DEBUG_REG20_start_of_vtx_vector_SIZE;
+ unsigned int clip_s_pre_hold_prim : VGT_DEBUG_REG20_clip_s_pre_hold_prim_SIZE;
+ unsigned int clip_p_pre_hold_prim : VGT_DEBUG_REG20_clip_p_pre_hold_prim_SIZE;
+ unsigned int buffered_prim_type_event : VGT_DEBUG_REG20_buffered_prim_type_event_SIZE;
+ unsigned int out_trigger : VGT_DEBUG_REG20_out_trigger_SIZE;
+ unsigned int : 5;
+ } vgt_debug_reg20_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg20_t {
+ unsigned int : 5;
+ unsigned int out_trigger : VGT_DEBUG_REG20_out_trigger_SIZE;
+ unsigned int buffered_prim_type_event : VGT_DEBUG_REG20_buffered_prim_type_event_SIZE;
+ unsigned int clip_p_pre_hold_prim : VGT_DEBUG_REG20_clip_p_pre_hold_prim_SIZE;
+ unsigned int clip_s_pre_hold_prim : VGT_DEBUG_REG20_clip_s_pre_hold_prim_SIZE;
+ unsigned int start_of_vtx_vector : VGT_DEBUG_REG20_start_of_vtx_vector_SIZE;
+ unsigned int sent_cnt : VGT_DEBUG_REG20_sent_cnt_SIZE;
+ unsigned int hold_prim : VGT_DEBUG_REG20_hold_prim_SIZE;
+ unsigned int indx_buffer_full : VGT_DEBUG_REG20_indx_buffer_full_SIZE;
+ unsigned int indx_buffer_we : VGT_DEBUG_REG20_indx_buffer_we_SIZE;
+ unsigned int indx_buffer_re : VGT_DEBUG_REG20_indx_buffer_re_SIZE;
+ unsigned int indx_buffer_empty : VGT_DEBUG_REG20_indx_buffer_empty_SIZE;
+ unsigned int prim_buffer_full : VGT_DEBUG_REG20_prim_buffer_full_SIZE;
+ unsigned int prim_buffer_we : VGT_DEBUG_REG20_prim_buffer_we_SIZE;
+ unsigned int prim_buffer_re : VGT_DEBUG_REG20_prim_buffer_re_SIZE;
+ unsigned int prim_buffer_empty : VGT_DEBUG_REG20_prim_buffer_empty_SIZE;
+ unsigned int indx_side_fifo_full : VGT_DEBUG_REG20_indx_side_fifo_full_SIZE;
+ unsigned int indx_side_fifo_we : VGT_DEBUG_REG20_indx_side_fifo_we_SIZE;
+ unsigned int indx_side_fifo_re : VGT_DEBUG_REG20_indx_side_fifo_re_SIZE;
+ unsigned int indx_side_fifo_empty : VGT_DEBUG_REG20_indx_side_fifo_empty_SIZE;
+ unsigned int prim_side_indx_valid : VGT_DEBUG_REG20_prim_side_indx_valid_SIZE;
+ } vgt_debug_reg20_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_reg20_t f;
+} vgt_debug_reg20_u;
+
+
+/*
+ * VGT_DEBUG_REG21 struct
+ */
+
+#define VGT_DEBUG_REG21_null_terminate_vtx_vector_SIZE 1
+#define VGT_DEBUG_REG21_prim_end_of_vtx_vect_flags_SIZE 3
+#define VGT_DEBUG_REG21_alloc_counter_q_SIZE 3
+#define VGT_DEBUG_REG21_curr_slot_in_vtx_vect_q_SIZE 3
+#define VGT_DEBUG_REG21_int_vtx_counter_q_SIZE 4
+#define VGT_DEBUG_REG21_curr_dealloc_distance_q_SIZE 4
+#define VGT_DEBUG_REG21_new_packet_q_SIZE 1
+#define VGT_DEBUG_REG21_new_allocate_q_SIZE 1
+#define VGT_DEBUG_REG21_num_new_unique_rel_indx_SIZE 2
+#define VGT_DEBUG_REG21_inserted_null_prim_q_SIZE 1
+#define VGT_DEBUG_REG21_insert_null_prim_SIZE 1
+#define VGT_DEBUG_REG21_buffered_prim_eop_mux_SIZE 1
+#define VGT_DEBUG_REG21_prim_buffer_empty_mux_SIZE 1
+#define VGT_DEBUG_REG21_buffered_thread_size_SIZE 1
+#define VGT_DEBUG_REG21_out_trigger_SIZE 1
+
+#define VGT_DEBUG_REG21_null_terminate_vtx_vector_SHIFT 0
+#define VGT_DEBUG_REG21_prim_end_of_vtx_vect_flags_SHIFT 1
+#define VGT_DEBUG_REG21_alloc_counter_q_SHIFT 4
+#define VGT_DEBUG_REG21_curr_slot_in_vtx_vect_q_SHIFT 7
+#define VGT_DEBUG_REG21_int_vtx_counter_q_SHIFT 10
+#define VGT_DEBUG_REG21_curr_dealloc_distance_q_SHIFT 14
+#define VGT_DEBUG_REG21_new_packet_q_SHIFT 18
+#define VGT_DEBUG_REG21_new_allocate_q_SHIFT 19
+#define VGT_DEBUG_REG21_num_new_unique_rel_indx_SHIFT 20
+#define VGT_DEBUG_REG21_inserted_null_prim_q_SHIFT 22
+#define VGT_DEBUG_REG21_insert_null_prim_SHIFT 23
+#define VGT_DEBUG_REG21_buffered_prim_eop_mux_SHIFT 24
+#define VGT_DEBUG_REG21_prim_buffer_empty_mux_SHIFT 25
+#define VGT_DEBUG_REG21_buffered_thread_size_SHIFT 26
+#define VGT_DEBUG_REG21_out_trigger_SHIFT 31
+
+#define VGT_DEBUG_REG21_null_terminate_vtx_vector_MASK 0x00000001
+#define VGT_DEBUG_REG21_prim_end_of_vtx_vect_flags_MASK 0x0000000e
+#define VGT_DEBUG_REG21_alloc_counter_q_MASK 0x00000070
+#define VGT_DEBUG_REG21_curr_slot_in_vtx_vect_q_MASK 0x00000380
+#define VGT_DEBUG_REG21_int_vtx_counter_q_MASK 0x00003c00
+#define VGT_DEBUG_REG21_curr_dealloc_distance_q_MASK 0x0003c000
+#define VGT_DEBUG_REG21_new_packet_q_MASK 0x00040000
+#define VGT_DEBUG_REG21_new_allocate_q_MASK 0x00080000
+#define VGT_DEBUG_REG21_num_new_unique_rel_indx_MASK 0x00300000
+#define VGT_DEBUG_REG21_inserted_null_prim_q_MASK 0x00400000
+#define VGT_DEBUG_REG21_insert_null_prim_MASK 0x00800000
+#define VGT_DEBUG_REG21_buffered_prim_eop_mux_MASK 0x01000000
+#define VGT_DEBUG_REG21_prim_buffer_empty_mux_MASK 0x02000000
+#define VGT_DEBUG_REG21_buffered_thread_size_MASK 0x04000000
+#define VGT_DEBUG_REG21_out_trigger_MASK 0x80000000
+
+#define VGT_DEBUG_REG21_MASK \
+ (VGT_DEBUG_REG21_null_terminate_vtx_vector_MASK | \
+ VGT_DEBUG_REG21_prim_end_of_vtx_vect_flags_MASK | \
+ VGT_DEBUG_REG21_alloc_counter_q_MASK | \
+ VGT_DEBUG_REG21_curr_slot_in_vtx_vect_q_MASK | \
+ VGT_DEBUG_REG21_int_vtx_counter_q_MASK | \
+ VGT_DEBUG_REG21_curr_dealloc_distance_q_MASK | \
+ VGT_DEBUG_REG21_new_packet_q_MASK | \
+ VGT_DEBUG_REG21_new_allocate_q_MASK | \
+ VGT_DEBUG_REG21_num_new_unique_rel_indx_MASK | \
+ VGT_DEBUG_REG21_inserted_null_prim_q_MASK | \
+ VGT_DEBUG_REG21_insert_null_prim_MASK | \
+ VGT_DEBUG_REG21_buffered_prim_eop_mux_MASK | \
+ VGT_DEBUG_REG21_prim_buffer_empty_mux_MASK | \
+ VGT_DEBUG_REG21_buffered_thread_size_MASK | \
+ VGT_DEBUG_REG21_out_trigger_MASK)
+
+#define VGT_DEBUG_REG21(null_terminate_vtx_vector, prim_end_of_vtx_vect_flags, alloc_counter_q, curr_slot_in_vtx_vect_q, int_vtx_counter_q, curr_dealloc_distance_q, new_packet_q, new_allocate_q, num_new_unique_rel_indx, inserted_null_prim_q, insert_null_prim, buffered_prim_eop_mux, prim_buffer_empty_mux, buffered_thread_size, out_trigger) \
+ ((null_terminate_vtx_vector << VGT_DEBUG_REG21_null_terminate_vtx_vector_SHIFT) | \
+ (prim_end_of_vtx_vect_flags << VGT_DEBUG_REG21_prim_end_of_vtx_vect_flags_SHIFT) | \
+ (alloc_counter_q << VGT_DEBUG_REG21_alloc_counter_q_SHIFT) | \
+ (curr_slot_in_vtx_vect_q << VGT_DEBUG_REG21_curr_slot_in_vtx_vect_q_SHIFT) | \
+ (int_vtx_counter_q << VGT_DEBUG_REG21_int_vtx_counter_q_SHIFT) | \
+ (curr_dealloc_distance_q << VGT_DEBUG_REG21_curr_dealloc_distance_q_SHIFT) | \
+ (new_packet_q << VGT_DEBUG_REG21_new_packet_q_SHIFT) | \
+ (new_allocate_q << VGT_DEBUG_REG21_new_allocate_q_SHIFT) | \
+ (num_new_unique_rel_indx << VGT_DEBUG_REG21_num_new_unique_rel_indx_SHIFT) | \
+ (inserted_null_prim_q << VGT_DEBUG_REG21_inserted_null_prim_q_SHIFT) | \
+ (insert_null_prim << VGT_DEBUG_REG21_insert_null_prim_SHIFT) | \
+ (buffered_prim_eop_mux << VGT_DEBUG_REG21_buffered_prim_eop_mux_SHIFT) | \
+ (prim_buffer_empty_mux << VGT_DEBUG_REG21_prim_buffer_empty_mux_SHIFT) | \
+ (buffered_thread_size << VGT_DEBUG_REG21_buffered_thread_size_SHIFT) | \
+ (out_trigger << VGT_DEBUG_REG21_out_trigger_SHIFT))
+
+#define VGT_DEBUG_REG21_GET_null_terminate_vtx_vector(vgt_debug_reg21) \
+ ((vgt_debug_reg21 & VGT_DEBUG_REG21_null_terminate_vtx_vector_MASK) >> VGT_DEBUG_REG21_null_terminate_vtx_vector_SHIFT)
+#define VGT_DEBUG_REG21_GET_prim_end_of_vtx_vect_flags(vgt_debug_reg21) \
+ ((vgt_debug_reg21 & VGT_DEBUG_REG21_prim_end_of_vtx_vect_flags_MASK) >> VGT_DEBUG_REG21_prim_end_of_vtx_vect_flags_SHIFT)
+#define VGT_DEBUG_REG21_GET_alloc_counter_q(vgt_debug_reg21) \
+ ((vgt_debug_reg21 & VGT_DEBUG_REG21_alloc_counter_q_MASK) >> VGT_DEBUG_REG21_alloc_counter_q_SHIFT)
+#define VGT_DEBUG_REG21_GET_curr_slot_in_vtx_vect_q(vgt_debug_reg21) \
+ ((vgt_debug_reg21 & VGT_DEBUG_REG21_curr_slot_in_vtx_vect_q_MASK) >> VGT_DEBUG_REG21_curr_slot_in_vtx_vect_q_SHIFT)
+#define VGT_DEBUG_REG21_GET_int_vtx_counter_q(vgt_debug_reg21) \
+ ((vgt_debug_reg21 & VGT_DEBUG_REG21_int_vtx_counter_q_MASK) >> VGT_DEBUG_REG21_int_vtx_counter_q_SHIFT)
+#define VGT_DEBUG_REG21_GET_curr_dealloc_distance_q(vgt_debug_reg21) \
+ ((vgt_debug_reg21 & VGT_DEBUG_REG21_curr_dealloc_distance_q_MASK) >> VGT_DEBUG_REG21_curr_dealloc_distance_q_SHIFT)
+#define VGT_DEBUG_REG21_GET_new_packet_q(vgt_debug_reg21) \
+ ((vgt_debug_reg21 & VGT_DEBUG_REG21_new_packet_q_MASK) >> VGT_DEBUG_REG21_new_packet_q_SHIFT)
+#define VGT_DEBUG_REG21_GET_new_allocate_q(vgt_debug_reg21) \
+ ((vgt_debug_reg21 & VGT_DEBUG_REG21_new_allocate_q_MASK) >> VGT_DEBUG_REG21_new_allocate_q_SHIFT)
+#define VGT_DEBUG_REG21_GET_num_new_unique_rel_indx(vgt_debug_reg21) \
+ ((vgt_debug_reg21 & VGT_DEBUG_REG21_num_new_unique_rel_indx_MASK) >> VGT_DEBUG_REG21_num_new_unique_rel_indx_SHIFT)
+#define VGT_DEBUG_REG21_GET_inserted_null_prim_q(vgt_debug_reg21) \
+ ((vgt_debug_reg21 & VGT_DEBUG_REG21_inserted_null_prim_q_MASK) >> VGT_DEBUG_REG21_inserted_null_prim_q_SHIFT)
+#define VGT_DEBUG_REG21_GET_insert_null_prim(vgt_debug_reg21) \
+ ((vgt_debug_reg21 & VGT_DEBUG_REG21_insert_null_prim_MASK) >> VGT_DEBUG_REG21_insert_null_prim_SHIFT)
+#define VGT_DEBUG_REG21_GET_buffered_prim_eop_mux(vgt_debug_reg21) \
+ ((vgt_debug_reg21 & VGT_DEBUG_REG21_buffered_prim_eop_mux_MASK) >> VGT_DEBUG_REG21_buffered_prim_eop_mux_SHIFT)
+#define VGT_DEBUG_REG21_GET_prim_buffer_empty_mux(vgt_debug_reg21) \
+ ((vgt_debug_reg21 & VGT_DEBUG_REG21_prim_buffer_empty_mux_MASK) >> VGT_DEBUG_REG21_prim_buffer_empty_mux_SHIFT)
+#define VGT_DEBUG_REG21_GET_buffered_thread_size(vgt_debug_reg21) \
+ ((vgt_debug_reg21 & VGT_DEBUG_REG21_buffered_thread_size_MASK) >> VGT_DEBUG_REG21_buffered_thread_size_SHIFT)
+#define VGT_DEBUG_REG21_GET_out_trigger(vgt_debug_reg21) \
+ ((vgt_debug_reg21 & VGT_DEBUG_REG21_out_trigger_MASK) >> VGT_DEBUG_REG21_out_trigger_SHIFT)
+
+#define VGT_DEBUG_REG21_SET_null_terminate_vtx_vector(vgt_debug_reg21_reg, null_terminate_vtx_vector) \
+ vgt_debug_reg21_reg = (vgt_debug_reg21_reg & ~VGT_DEBUG_REG21_null_terminate_vtx_vector_MASK) | (null_terminate_vtx_vector << VGT_DEBUG_REG21_null_terminate_vtx_vector_SHIFT)
+#define VGT_DEBUG_REG21_SET_prim_end_of_vtx_vect_flags(vgt_debug_reg21_reg, prim_end_of_vtx_vect_flags) \
+ vgt_debug_reg21_reg = (vgt_debug_reg21_reg & ~VGT_DEBUG_REG21_prim_end_of_vtx_vect_flags_MASK) | (prim_end_of_vtx_vect_flags << VGT_DEBUG_REG21_prim_end_of_vtx_vect_flags_SHIFT)
+#define VGT_DEBUG_REG21_SET_alloc_counter_q(vgt_debug_reg21_reg, alloc_counter_q) \
+ vgt_debug_reg21_reg = (vgt_debug_reg21_reg & ~VGT_DEBUG_REG21_alloc_counter_q_MASK) | (alloc_counter_q << VGT_DEBUG_REG21_alloc_counter_q_SHIFT)
+#define VGT_DEBUG_REG21_SET_curr_slot_in_vtx_vect_q(vgt_debug_reg21_reg, curr_slot_in_vtx_vect_q) \
+ vgt_debug_reg21_reg = (vgt_debug_reg21_reg & ~VGT_DEBUG_REG21_curr_slot_in_vtx_vect_q_MASK) | (curr_slot_in_vtx_vect_q << VGT_DEBUG_REG21_curr_slot_in_vtx_vect_q_SHIFT)
+#define VGT_DEBUG_REG21_SET_int_vtx_counter_q(vgt_debug_reg21_reg, int_vtx_counter_q) \
+ vgt_debug_reg21_reg = (vgt_debug_reg21_reg & ~VGT_DEBUG_REG21_int_vtx_counter_q_MASK) | (int_vtx_counter_q << VGT_DEBUG_REG21_int_vtx_counter_q_SHIFT)
+#define VGT_DEBUG_REG21_SET_curr_dealloc_distance_q(vgt_debug_reg21_reg, curr_dealloc_distance_q) \
+ vgt_debug_reg21_reg = (vgt_debug_reg21_reg & ~VGT_DEBUG_REG21_curr_dealloc_distance_q_MASK) | (curr_dealloc_distance_q << VGT_DEBUG_REG21_curr_dealloc_distance_q_SHIFT)
+#define VGT_DEBUG_REG21_SET_new_packet_q(vgt_debug_reg21_reg, new_packet_q) \
+ vgt_debug_reg21_reg = (vgt_debug_reg21_reg & ~VGT_DEBUG_REG21_new_packet_q_MASK) | (new_packet_q << VGT_DEBUG_REG21_new_packet_q_SHIFT)
+#define VGT_DEBUG_REG21_SET_new_allocate_q(vgt_debug_reg21_reg, new_allocate_q) \
+ vgt_debug_reg21_reg = (vgt_debug_reg21_reg & ~VGT_DEBUG_REG21_new_allocate_q_MASK) | (new_allocate_q << VGT_DEBUG_REG21_new_allocate_q_SHIFT)
+#define VGT_DEBUG_REG21_SET_num_new_unique_rel_indx(vgt_debug_reg21_reg, num_new_unique_rel_indx) \
+ vgt_debug_reg21_reg = (vgt_debug_reg21_reg & ~VGT_DEBUG_REG21_num_new_unique_rel_indx_MASK) | (num_new_unique_rel_indx << VGT_DEBUG_REG21_num_new_unique_rel_indx_SHIFT)
+#define VGT_DEBUG_REG21_SET_inserted_null_prim_q(vgt_debug_reg21_reg, inserted_null_prim_q) \
+ vgt_debug_reg21_reg = (vgt_debug_reg21_reg & ~VGT_DEBUG_REG21_inserted_null_prim_q_MASK) | (inserted_null_prim_q << VGT_DEBUG_REG21_inserted_null_prim_q_SHIFT)
+#define VGT_DEBUG_REG21_SET_insert_null_prim(vgt_debug_reg21_reg, insert_null_prim) \
+ vgt_debug_reg21_reg = (vgt_debug_reg21_reg & ~VGT_DEBUG_REG21_insert_null_prim_MASK) | (insert_null_prim << VGT_DEBUG_REG21_insert_null_prim_SHIFT)
+#define VGT_DEBUG_REG21_SET_buffered_prim_eop_mux(vgt_debug_reg21_reg, buffered_prim_eop_mux) \
+ vgt_debug_reg21_reg = (vgt_debug_reg21_reg & ~VGT_DEBUG_REG21_buffered_prim_eop_mux_MASK) | (buffered_prim_eop_mux << VGT_DEBUG_REG21_buffered_prim_eop_mux_SHIFT)
+#define VGT_DEBUG_REG21_SET_prim_buffer_empty_mux(vgt_debug_reg21_reg, prim_buffer_empty_mux) \
+ vgt_debug_reg21_reg = (vgt_debug_reg21_reg & ~VGT_DEBUG_REG21_prim_buffer_empty_mux_MASK) | (prim_buffer_empty_mux << VGT_DEBUG_REG21_prim_buffer_empty_mux_SHIFT)
+#define VGT_DEBUG_REG21_SET_buffered_thread_size(vgt_debug_reg21_reg, buffered_thread_size) \
+ vgt_debug_reg21_reg = (vgt_debug_reg21_reg & ~VGT_DEBUG_REG21_buffered_thread_size_MASK) | (buffered_thread_size << VGT_DEBUG_REG21_buffered_thread_size_SHIFT)
+#define VGT_DEBUG_REG21_SET_out_trigger(vgt_debug_reg21_reg, out_trigger) \
+ vgt_debug_reg21_reg = (vgt_debug_reg21_reg & ~VGT_DEBUG_REG21_out_trigger_MASK) | (out_trigger << VGT_DEBUG_REG21_out_trigger_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg21_t {
+ unsigned int null_terminate_vtx_vector : VGT_DEBUG_REG21_null_terminate_vtx_vector_SIZE;
+ unsigned int prim_end_of_vtx_vect_flags : VGT_DEBUG_REG21_prim_end_of_vtx_vect_flags_SIZE;
+ unsigned int alloc_counter_q : VGT_DEBUG_REG21_alloc_counter_q_SIZE;
+ unsigned int curr_slot_in_vtx_vect_q : VGT_DEBUG_REG21_curr_slot_in_vtx_vect_q_SIZE;
+ unsigned int int_vtx_counter_q : VGT_DEBUG_REG21_int_vtx_counter_q_SIZE;
+ unsigned int curr_dealloc_distance_q : VGT_DEBUG_REG21_curr_dealloc_distance_q_SIZE;
+ unsigned int new_packet_q : VGT_DEBUG_REG21_new_packet_q_SIZE;
+ unsigned int new_allocate_q : VGT_DEBUG_REG21_new_allocate_q_SIZE;
+ unsigned int num_new_unique_rel_indx : VGT_DEBUG_REG21_num_new_unique_rel_indx_SIZE;
+ unsigned int inserted_null_prim_q : VGT_DEBUG_REG21_inserted_null_prim_q_SIZE;
+ unsigned int insert_null_prim : VGT_DEBUG_REG21_insert_null_prim_SIZE;
+ unsigned int buffered_prim_eop_mux : VGT_DEBUG_REG21_buffered_prim_eop_mux_SIZE;
+ unsigned int prim_buffer_empty_mux : VGT_DEBUG_REG21_prim_buffer_empty_mux_SIZE;
+ unsigned int buffered_thread_size : VGT_DEBUG_REG21_buffered_thread_size_SIZE;
+ unsigned int : 4;
+ unsigned int out_trigger : VGT_DEBUG_REG21_out_trigger_SIZE;
+ } vgt_debug_reg21_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_debug_reg21_t {
+ unsigned int out_trigger : VGT_DEBUG_REG21_out_trigger_SIZE;
+ unsigned int : 4;
+ unsigned int buffered_thread_size : VGT_DEBUG_REG21_buffered_thread_size_SIZE;
+ unsigned int prim_buffer_empty_mux : VGT_DEBUG_REG21_prim_buffer_empty_mux_SIZE;
+ unsigned int buffered_prim_eop_mux : VGT_DEBUG_REG21_buffered_prim_eop_mux_SIZE;
+ unsigned int insert_null_prim : VGT_DEBUG_REG21_insert_null_prim_SIZE;
+ unsigned int inserted_null_prim_q : VGT_DEBUG_REG21_inserted_null_prim_q_SIZE;
+ unsigned int num_new_unique_rel_indx : VGT_DEBUG_REG21_num_new_unique_rel_indx_SIZE;
+ unsigned int new_allocate_q : VGT_DEBUG_REG21_new_allocate_q_SIZE;
+ unsigned int new_packet_q : VGT_DEBUG_REG21_new_packet_q_SIZE;
+ unsigned int curr_dealloc_distance_q : VGT_DEBUG_REG21_curr_dealloc_distance_q_SIZE;
+ unsigned int int_vtx_counter_q : VGT_DEBUG_REG21_int_vtx_counter_q_SIZE;
+ unsigned int curr_slot_in_vtx_vect_q : VGT_DEBUG_REG21_curr_slot_in_vtx_vect_q_SIZE;
+ unsigned int alloc_counter_q : VGT_DEBUG_REG21_alloc_counter_q_SIZE;
+ unsigned int prim_end_of_vtx_vect_flags : VGT_DEBUG_REG21_prim_end_of_vtx_vect_flags_SIZE;
+ unsigned int null_terminate_vtx_vector : VGT_DEBUG_REG21_null_terminate_vtx_vector_SIZE;
+ } vgt_debug_reg21_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_debug_reg21_t f;
+} vgt_debug_reg21_u;
+
+
+/*
+ * VGT_CRC_SQ_DATA struct
+ */
+
+#define VGT_CRC_SQ_DATA_CRC_SIZE 32
+
+#define VGT_CRC_SQ_DATA_CRC_SHIFT 0
+
+#define VGT_CRC_SQ_DATA_CRC_MASK 0xffffffff
+
+#define VGT_CRC_SQ_DATA_MASK \
+ (VGT_CRC_SQ_DATA_CRC_MASK)
+
+#define VGT_CRC_SQ_DATA(crc) \
+ ((crc << VGT_CRC_SQ_DATA_CRC_SHIFT))
+
+#define VGT_CRC_SQ_DATA_GET_CRC(vgt_crc_sq_data) \
+ ((vgt_crc_sq_data & VGT_CRC_SQ_DATA_CRC_MASK) >> VGT_CRC_SQ_DATA_CRC_SHIFT)
+
+#define VGT_CRC_SQ_DATA_SET_CRC(vgt_crc_sq_data_reg, crc) \
+ vgt_crc_sq_data_reg = (vgt_crc_sq_data_reg & ~VGT_CRC_SQ_DATA_CRC_MASK) | (crc << VGT_CRC_SQ_DATA_CRC_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_crc_sq_data_t {
+ unsigned int crc : VGT_CRC_SQ_DATA_CRC_SIZE;
+ } vgt_crc_sq_data_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_crc_sq_data_t {
+ unsigned int crc : VGT_CRC_SQ_DATA_CRC_SIZE;
+ } vgt_crc_sq_data_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_crc_sq_data_t f;
+} vgt_crc_sq_data_u;
+
+
+/*
+ * VGT_CRC_SQ_CTRL struct
+ */
+
+#define VGT_CRC_SQ_CTRL_CRC_SIZE 32
+
+#define VGT_CRC_SQ_CTRL_CRC_SHIFT 0
+
+#define VGT_CRC_SQ_CTRL_CRC_MASK 0xffffffff
+
+#define VGT_CRC_SQ_CTRL_MASK \
+ (VGT_CRC_SQ_CTRL_CRC_MASK)
+
+#define VGT_CRC_SQ_CTRL(crc) \
+ ((crc << VGT_CRC_SQ_CTRL_CRC_SHIFT))
+
+#define VGT_CRC_SQ_CTRL_GET_CRC(vgt_crc_sq_ctrl) \
+ ((vgt_crc_sq_ctrl & VGT_CRC_SQ_CTRL_CRC_MASK) >> VGT_CRC_SQ_CTRL_CRC_SHIFT)
+
+#define VGT_CRC_SQ_CTRL_SET_CRC(vgt_crc_sq_ctrl_reg, crc) \
+ vgt_crc_sq_ctrl_reg = (vgt_crc_sq_ctrl_reg & ~VGT_CRC_SQ_CTRL_CRC_MASK) | (crc << VGT_CRC_SQ_CTRL_CRC_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_crc_sq_ctrl_t {
+ unsigned int crc : VGT_CRC_SQ_CTRL_CRC_SIZE;
+ } vgt_crc_sq_ctrl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_crc_sq_ctrl_t {
+ unsigned int crc : VGT_CRC_SQ_CTRL_CRC_SIZE;
+ } vgt_crc_sq_ctrl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_crc_sq_ctrl_t f;
+} vgt_crc_sq_ctrl_u;
+
+
+/*
+ * VGT_PERFCOUNTER0_SELECT struct
+ */
+
+#define VGT_PERFCOUNTER0_SELECT_PERF_SEL_SIZE 8
+
+#define VGT_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT 0
+
+#define VGT_PERFCOUNTER0_SELECT_PERF_SEL_MASK 0x000000ff
+
+#define VGT_PERFCOUNTER0_SELECT_MASK \
+ (VGT_PERFCOUNTER0_SELECT_PERF_SEL_MASK)
+
+#define VGT_PERFCOUNTER0_SELECT(perf_sel) \
+ ((perf_sel << VGT_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT))
+
+#define VGT_PERFCOUNTER0_SELECT_GET_PERF_SEL(vgt_perfcounter0_select) \
+ ((vgt_perfcounter0_select & VGT_PERFCOUNTER0_SELECT_PERF_SEL_MASK) >> VGT_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT)
+
+#define VGT_PERFCOUNTER0_SELECT_SET_PERF_SEL(vgt_perfcounter0_select_reg, perf_sel) \
+ vgt_perfcounter0_select_reg = (vgt_perfcounter0_select_reg & ~VGT_PERFCOUNTER0_SELECT_PERF_SEL_MASK) | (perf_sel << VGT_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter0_select_t {
+ unsigned int perf_sel : VGT_PERFCOUNTER0_SELECT_PERF_SEL_SIZE;
+ unsigned int : 24;
+ } vgt_perfcounter0_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter0_select_t {
+ unsigned int : 24;
+ unsigned int perf_sel : VGT_PERFCOUNTER0_SELECT_PERF_SEL_SIZE;
+ } vgt_perfcounter0_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_perfcounter0_select_t f;
+} vgt_perfcounter0_select_u;
+
+
+/*
+ * VGT_PERFCOUNTER1_SELECT struct
+ */
+
+#define VGT_PERFCOUNTER1_SELECT_PERF_SEL_SIZE 8
+
+#define VGT_PERFCOUNTER1_SELECT_PERF_SEL_SHIFT 0
+
+#define VGT_PERFCOUNTER1_SELECT_PERF_SEL_MASK 0x000000ff
+
+#define VGT_PERFCOUNTER1_SELECT_MASK \
+ (VGT_PERFCOUNTER1_SELECT_PERF_SEL_MASK)
+
+#define VGT_PERFCOUNTER1_SELECT(perf_sel) \
+ ((perf_sel << VGT_PERFCOUNTER1_SELECT_PERF_SEL_SHIFT))
+
+#define VGT_PERFCOUNTER1_SELECT_GET_PERF_SEL(vgt_perfcounter1_select) \
+ ((vgt_perfcounter1_select & VGT_PERFCOUNTER1_SELECT_PERF_SEL_MASK) >> VGT_PERFCOUNTER1_SELECT_PERF_SEL_SHIFT)
+
+#define VGT_PERFCOUNTER1_SELECT_SET_PERF_SEL(vgt_perfcounter1_select_reg, perf_sel) \
+ vgt_perfcounter1_select_reg = (vgt_perfcounter1_select_reg & ~VGT_PERFCOUNTER1_SELECT_PERF_SEL_MASK) | (perf_sel << VGT_PERFCOUNTER1_SELECT_PERF_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter1_select_t {
+ unsigned int perf_sel : VGT_PERFCOUNTER1_SELECT_PERF_SEL_SIZE;
+ unsigned int : 24;
+ } vgt_perfcounter1_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter1_select_t {
+ unsigned int : 24;
+ unsigned int perf_sel : VGT_PERFCOUNTER1_SELECT_PERF_SEL_SIZE;
+ } vgt_perfcounter1_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_perfcounter1_select_t f;
+} vgt_perfcounter1_select_u;
+
+
+/*
+ * VGT_PERFCOUNTER2_SELECT struct
+ */
+
+#define VGT_PERFCOUNTER2_SELECT_PERF_SEL_SIZE 8
+
+#define VGT_PERFCOUNTER2_SELECT_PERF_SEL_SHIFT 0
+
+#define VGT_PERFCOUNTER2_SELECT_PERF_SEL_MASK 0x000000ff
+
+#define VGT_PERFCOUNTER2_SELECT_MASK \
+ (VGT_PERFCOUNTER2_SELECT_PERF_SEL_MASK)
+
+#define VGT_PERFCOUNTER2_SELECT(perf_sel) \
+ ((perf_sel << VGT_PERFCOUNTER2_SELECT_PERF_SEL_SHIFT))
+
+#define VGT_PERFCOUNTER2_SELECT_GET_PERF_SEL(vgt_perfcounter2_select) \
+ ((vgt_perfcounter2_select & VGT_PERFCOUNTER2_SELECT_PERF_SEL_MASK) >> VGT_PERFCOUNTER2_SELECT_PERF_SEL_SHIFT)
+
+#define VGT_PERFCOUNTER2_SELECT_SET_PERF_SEL(vgt_perfcounter2_select_reg, perf_sel) \
+ vgt_perfcounter2_select_reg = (vgt_perfcounter2_select_reg & ~VGT_PERFCOUNTER2_SELECT_PERF_SEL_MASK) | (perf_sel << VGT_PERFCOUNTER2_SELECT_PERF_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter2_select_t {
+ unsigned int perf_sel : VGT_PERFCOUNTER2_SELECT_PERF_SEL_SIZE;
+ unsigned int : 24;
+ } vgt_perfcounter2_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter2_select_t {
+ unsigned int : 24;
+ unsigned int perf_sel : VGT_PERFCOUNTER2_SELECT_PERF_SEL_SIZE;
+ } vgt_perfcounter2_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_perfcounter2_select_t f;
+} vgt_perfcounter2_select_u;
+
+
+/*
+ * VGT_PERFCOUNTER3_SELECT struct
+ */
+
+#define VGT_PERFCOUNTER3_SELECT_PERF_SEL_SIZE 8
+
+#define VGT_PERFCOUNTER3_SELECT_PERF_SEL_SHIFT 0
+
+#define VGT_PERFCOUNTER3_SELECT_PERF_SEL_MASK 0x000000ff
+
+#define VGT_PERFCOUNTER3_SELECT_MASK \
+ (VGT_PERFCOUNTER3_SELECT_PERF_SEL_MASK)
+
+#define VGT_PERFCOUNTER3_SELECT(perf_sel) \
+ ((perf_sel << VGT_PERFCOUNTER3_SELECT_PERF_SEL_SHIFT))
+
+#define VGT_PERFCOUNTER3_SELECT_GET_PERF_SEL(vgt_perfcounter3_select) \
+ ((vgt_perfcounter3_select & VGT_PERFCOUNTER3_SELECT_PERF_SEL_MASK) >> VGT_PERFCOUNTER3_SELECT_PERF_SEL_SHIFT)
+
+#define VGT_PERFCOUNTER3_SELECT_SET_PERF_SEL(vgt_perfcounter3_select_reg, perf_sel) \
+ vgt_perfcounter3_select_reg = (vgt_perfcounter3_select_reg & ~VGT_PERFCOUNTER3_SELECT_PERF_SEL_MASK) | (perf_sel << VGT_PERFCOUNTER3_SELECT_PERF_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter3_select_t {
+ unsigned int perf_sel : VGT_PERFCOUNTER3_SELECT_PERF_SEL_SIZE;
+ unsigned int : 24;
+ } vgt_perfcounter3_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter3_select_t {
+ unsigned int : 24;
+ unsigned int perf_sel : VGT_PERFCOUNTER3_SELECT_PERF_SEL_SIZE;
+ } vgt_perfcounter3_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_perfcounter3_select_t f;
+} vgt_perfcounter3_select_u;
+
+
+/*
+ * VGT_PERFCOUNTER0_LOW struct
+ */
+
+#define VGT_PERFCOUNTER0_LOW_PERF_COUNT_SIZE 32
+
+#define VGT_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT 0
+
+#define VGT_PERFCOUNTER0_LOW_PERF_COUNT_MASK 0xffffffff
+
+#define VGT_PERFCOUNTER0_LOW_MASK \
+ (VGT_PERFCOUNTER0_LOW_PERF_COUNT_MASK)
+
+#define VGT_PERFCOUNTER0_LOW(perf_count) \
+ ((perf_count << VGT_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT))
+
+#define VGT_PERFCOUNTER0_LOW_GET_PERF_COUNT(vgt_perfcounter0_low) \
+ ((vgt_perfcounter0_low & VGT_PERFCOUNTER0_LOW_PERF_COUNT_MASK) >> VGT_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT)
+
+#define VGT_PERFCOUNTER0_LOW_SET_PERF_COUNT(vgt_perfcounter0_low_reg, perf_count) \
+ vgt_perfcounter0_low_reg = (vgt_perfcounter0_low_reg & ~VGT_PERFCOUNTER0_LOW_PERF_COUNT_MASK) | (perf_count << VGT_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter0_low_t {
+ unsigned int perf_count : VGT_PERFCOUNTER0_LOW_PERF_COUNT_SIZE;
+ } vgt_perfcounter0_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter0_low_t {
+ unsigned int perf_count : VGT_PERFCOUNTER0_LOW_PERF_COUNT_SIZE;
+ } vgt_perfcounter0_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_perfcounter0_low_t f;
+} vgt_perfcounter0_low_u;
+
+
+/*
+ * VGT_PERFCOUNTER1_LOW struct
+ */
+
+#define VGT_PERFCOUNTER1_LOW_PERF_COUNT_SIZE 32
+
+#define VGT_PERFCOUNTER1_LOW_PERF_COUNT_SHIFT 0
+
+#define VGT_PERFCOUNTER1_LOW_PERF_COUNT_MASK 0xffffffff
+
+#define VGT_PERFCOUNTER1_LOW_MASK \
+ (VGT_PERFCOUNTER1_LOW_PERF_COUNT_MASK)
+
+#define VGT_PERFCOUNTER1_LOW(perf_count) \
+ ((perf_count << VGT_PERFCOUNTER1_LOW_PERF_COUNT_SHIFT))
+
+#define VGT_PERFCOUNTER1_LOW_GET_PERF_COUNT(vgt_perfcounter1_low) \
+ ((vgt_perfcounter1_low & VGT_PERFCOUNTER1_LOW_PERF_COUNT_MASK) >> VGT_PERFCOUNTER1_LOW_PERF_COUNT_SHIFT)
+
+#define VGT_PERFCOUNTER1_LOW_SET_PERF_COUNT(vgt_perfcounter1_low_reg, perf_count) \
+ vgt_perfcounter1_low_reg = (vgt_perfcounter1_low_reg & ~VGT_PERFCOUNTER1_LOW_PERF_COUNT_MASK) | (perf_count << VGT_PERFCOUNTER1_LOW_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter1_low_t {
+ unsigned int perf_count : VGT_PERFCOUNTER1_LOW_PERF_COUNT_SIZE;
+ } vgt_perfcounter1_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter1_low_t {
+ unsigned int perf_count : VGT_PERFCOUNTER1_LOW_PERF_COUNT_SIZE;
+ } vgt_perfcounter1_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_perfcounter1_low_t f;
+} vgt_perfcounter1_low_u;
+
+
+/*
+ * VGT_PERFCOUNTER2_LOW struct
+ */
+
+#define VGT_PERFCOUNTER2_LOW_PERF_COUNT_SIZE 32
+
+#define VGT_PERFCOUNTER2_LOW_PERF_COUNT_SHIFT 0
+
+#define VGT_PERFCOUNTER2_LOW_PERF_COUNT_MASK 0xffffffff
+
+#define VGT_PERFCOUNTER2_LOW_MASK \
+ (VGT_PERFCOUNTER2_LOW_PERF_COUNT_MASK)
+
+#define VGT_PERFCOUNTER2_LOW(perf_count) \
+ ((perf_count << VGT_PERFCOUNTER2_LOW_PERF_COUNT_SHIFT))
+
+#define VGT_PERFCOUNTER2_LOW_GET_PERF_COUNT(vgt_perfcounter2_low) \
+ ((vgt_perfcounter2_low & VGT_PERFCOUNTER2_LOW_PERF_COUNT_MASK) >> VGT_PERFCOUNTER2_LOW_PERF_COUNT_SHIFT)
+
+#define VGT_PERFCOUNTER2_LOW_SET_PERF_COUNT(vgt_perfcounter2_low_reg, perf_count) \
+ vgt_perfcounter2_low_reg = (vgt_perfcounter2_low_reg & ~VGT_PERFCOUNTER2_LOW_PERF_COUNT_MASK) | (perf_count << VGT_PERFCOUNTER2_LOW_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter2_low_t {
+ unsigned int perf_count : VGT_PERFCOUNTER2_LOW_PERF_COUNT_SIZE;
+ } vgt_perfcounter2_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter2_low_t {
+ unsigned int perf_count : VGT_PERFCOUNTER2_LOW_PERF_COUNT_SIZE;
+ } vgt_perfcounter2_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_perfcounter2_low_t f;
+} vgt_perfcounter2_low_u;
+
+
+/*
+ * VGT_PERFCOUNTER3_LOW struct
+ */
+
+#define VGT_PERFCOUNTER3_LOW_PERF_COUNT_SIZE 32
+
+#define VGT_PERFCOUNTER3_LOW_PERF_COUNT_SHIFT 0
+
+#define VGT_PERFCOUNTER3_LOW_PERF_COUNT_MASK 0xffffffff
+
+#define VGT_PERFCOUNTER3_LOW_MASK \
+ (VGT_PERFCOUNTER3_LOW_PERF_COUNT_MASK)
+
+#define VGT_PERFCOUNTER3_LOW(perf_count) \
+ ((perf_count << VGT_PERFCOUNTER3_LOW_PERF_COUNT_SHIFT))
+
+#define VGT_PERFCOUNTER3_LOW_GET_PERF_COUNT(vgt_perfcounter3_low) \
+ ((vgt_perfcounter3_low & VGT_PERFCOUNTER3_LOW_PERF_COUNT_MASK) >> VGT_PERFCOUNTER3_LOW_PERF_COUNT_SHIFT)
+
+#define VGT_PERFCOUNTER3_LOW_SET_PERF_COUNT(vgt_perfcounter3_low_reg, perf_count) \
+ vgt_perfcounter3_low_reg = (vgt_perfcounter3_low_reg & ~VGT_PERFCOUNTER3_LOW_PERF_COUNT_MASK) | (perf_count << VGT_PERFCOUNTER3_LOW_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter3_low_t {
+ unsigned int perf_count : VGT_PERFCOUNTER3_LOW_PERF_COUNT_SIZE;
+ } vgt_perfcounter3_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter3_low_t {
+ unsigned int perf_count : VGT_PERFCOUNTER3_LOW_PERF_COUNT_SIZE;
+ } vgt_perfcounter3_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_perfcounter3_low_t f;
+} vgt_perfcounter3_low_u;
+
+
+/*
+ * VGT_PERFCOUNTER0_HI struct
+ */
+
+#define VGT_PERFCOUNTER0_HI_PERF_COUNT_SIZE 16
+
+#define VGT_PERFCOUNTER0_HI_PERF_COUNT_SHIFT 0
+
+#define VGT_PERFCOUNTER0_HI_PERF_COUNT_MASK 0x0000ffff
+
+#define VGT_PERFCOUNTER0_HI_MASK \
+ (VGT_PERFCOUNTER0_HI_PERF_COUNT_MASK)
+
+#define VGT_PERFCOUNTER0_HI(perf_count) \
+ ((perf_count << VGT_PERFCOUNTER0_HI_PERF_COUNT_SHIFT))
+
+#define VGT_PERFCOUNTER0_HI_GET_PERF_COUNT(vgt_perfcounter0_hi) \
+ ((vgt_perfcounter0_hi & VGT_PERFCOUNTER0_HI_PERF_COUNT_MASK) >> VGT_PERFCOUNTER0_HI_PERF_COUNT_SHIFT)
+
+#define VGT_PERFCOUNTER0_HI_SET_PERF_COUNT(vgt_perfcounter0_hi_reg, perf_count) \
+ vgt_perfcounter0_hi_reg = (vgt_perfcounter0_hi_reg & ~VGT_PERFCOUNTER0_HI_PERF_COUNT_MASK) | (perf_count << VGT_PERFCOUNTER0_HI_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter0_hi_t {
+ unsigned int perf_count : VGT_PERFCOUNTER0_HI_PERF_COUNT_SIZE;
+ unsigned int : 16;
+ } vgt_perfcounter0_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter0_hi_t {
+ unsigned int : 16;
+ unsigned int perf_count : VGT_PERFCOUNTER0_HI_PERF_COUNT_SIZE;
+ } vgt_perfcounter0_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_perfcounter0_hi_t f;
+} vgt_perfcounter0_hi_u;
+
+
+/*
+ * VGT_PERFCOUNTER1_HI struct
+ */
+
+#define VGT_PERFCOUNTER1_HI_PERF_COUNT_SIZE 16
+
+#define VGT_PERFCOUNTER1_HI_PERF_COUNT_SHIFT 0
+
+#define VGT_PERFCOUNTER1_HI_PERF_COUNT_MASK 0x0000ffff
+
+#define VGT_PERFCOUNTER1_HI_MASK \
+ (VGT_PERFCOUNTER1_HI_PERF_COUNT_MASK)
+
+#define VGT_PERFCOUNTER1_HI(perf_count) \
+ ((perf_count << VGT_PERFCOUNTER1_HI_PERF_COUNT_SHIFT))
+
+#define VGT_PERFCOUNTER1_HI_GET_PERF_COUNT(vgt_perfcounter1_hi) \
+ ((vgt_perfcounter1_hi & VGT_PERFCOUNTER1_HI_PERF_COUNT_MASK) >> VGT_PERFCOUNTER1_HI_PERF_COUNT_SHIFT)
+
+#define VGT_PERFCOUNTER1_HI_SET_PERF_COUNT(vgt_perfcounter1_hi_reg, perf_count) \
+ vgt_perfcounter1_hi_reg = (vgt_perfcounter1_hi_reg & ~VGT_PERFCOUNTER1_HI_PERF_COUNT_MASK) | (perf_count << VGT_PERFCOUNTER1_HI_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter1_hi_t {
+ unsigned int perf_count : VGT_PERFCOUNTER1_HI_PERF_COUNT_SIZE;
+ unsigned int : 16;
+ } vgt_perfcounter1_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter1_hi_t {
+ unsigned int : 16;
+ unsigned int perf_count : VGT_PERFCOUNTER1_HI_PERF_COUNT_SIZE;
+ } vgt_perfcounter1_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_perfcounter1_hi_t f;
+} vgt_perfcounter1_hi_u;
+
+
+/*
+ * VGT_PERFCOUNTER2_HI struct
+ */
+
+#define VGT_PERFCOUNTER2_HI_PERF_COUNT_SIZE 16
+
+#define VGT_PERFCOUNTER2_HI_PERF_COUNT_SHIFT 0
+
+#define VGT_PERFCOUNTER2_HI_PERF_COUNT_MASK 0x0000ffff
+
+#define VGT_PERFCOUNTER2_HI_MASK \
+ (VGT_PERFCOUNTER2_HI_PERF_COUNT_MASK)
+
+#define VGT_PERFCOUNTER2_HI(perf_count) \
+ ((perf_count << VGT_PERFCOUNTER2_HI_PERF_COUNT_SHIFT))
+
+#define VGT_PERFCOUNTER2_HI_GET_PERF_COUNT(vgt_perfcounter2_hi) \
+ ((vgt_perfcounter2_hi & VGT_PERFCOUNTER2_HI_PERF_COUNT_MASK) >> VGT_PERFCOUNTER2_HI_PERF_COUNT_SHIFT)
+
+#define VGT_PERFCOUNTER2_HI_SET_PERF_COUNT(vgt_perfcounter2_hi_reg, perf_count) \
+ vgt_perfcounter2_hi_reg = (vgt_perfcounter2_hi_reg & ~VGT_PERFCOUNTER2_HI_PERF_COUNT_MASK) | (perf_count << VGT_PERFCOUNTER2_HI_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter2_hi_t {
+ unsigned int perf_count : VGT_PERFCOUNTER2_HI_PERF_COUNT_SIZE;
+ unsigned int : 16;
+ } vgt_perfcounter2_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter2_hi_t {
+ unsigned int : 16;
+ unsigned int perf_count : VGT_PERFCOUNTER2_HI_PERF_COUNT_SIZE;
+ } vgt_perfcounter2_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_perfcounter2_hi_t f;
+} vgt_perfcounter2_hi_u;
+
+
+/*
+ * VGT_PERFCOUNTER3_HI struct
+ */
+
+#define VGT_PERFCOUNTER3_HI_PERF_COUNT_SIZE 16
+
+#define VGT_PERFCOUNTER3_HI_PERF_COUNT_SHIFT 0
+
+#define VGT_PERFCOUNTER3_HI_PERF_COUNT_MASK 0x0000ffff
+
+#define VGT_PERFCOUNTER3_HI_MASK \
+ (VGT_PERFCOUNTER3_HI_PERF_COUNT_MASK)
+
+#define VGT_PERFCOUNTER3_HI(perf_count) \
+ ((perf_count << VGT_PERFCOUNTER3_HI_PERF_COUNT_SHIFT))
+
+#define VGT_PERFCOUNTER3_HI_GET_PERF_COUNT(vgt_perfcounter3_hi) \
+ ((vgt_perfcounter3_hi & VGT_PERFCOUNTER3_HI_PERF_COUNT_MASK) >> VGT_PERFCOUNTER3_HI_PERF_COUNT_SHIFT)
+
+#define VGT_PERFCOUNTER3_HI_SET_PERF_COUNT(vgt_perfcounter3_hi_reg, perf_count) \
+ vgt_perfcounter3_hi_reg = (vgt_perfcounter3_hi_reg & ~VGT_PERFCOUNTER3_HI_PERF_COUNT_MASK) | (perf_count << VGT_PERFCOUNTER3_HI_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter3_hi_t {
+ unsigned int perf_count : VGT_PERFCOUNTER3_HI_PERF_COUNT_SIZE;
+ unsigned int : 16;
+ } vgt_perfcounter3_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _vgt_perfcounter3_hi_t {
+ unsigned int : 16;
+ unsigned int perf_count : VGT_PERFCOUNTER3_HI_PERF_COUNT_SIZE;
+ } vgt_perfcounter3_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ vgt_perfcounter3_hi_t f;
+} vgt_perfcounter3_hi_u;
+
+
+#endif
+
+
+#if !defined (_SQ_FIDDLE_H)
+#define _SQ_FIDDLE_H
+
+/*******************************************************
+ * Enums
+ *******************************************************/
+
+
+/*******************************************************
+ * Values
+ *******************************************************/
+
+
+/*******************************************************
+ * Structures
+ *******************************************************/
+
+/*
+ * SQ_GPR_MANAGEMENT struct
+ */
+
+#define SQ_GPR_MANAGEMENT_REG_DYNAMIC_SIZE 1
+#define SQ_GPR_MANAGEMENT_REG_SIZE_PIX_SIZE 7
+#define SQ_GPR_MANAGEMENT_REG_SIZE_VTX_SIZE 7
+
+#define SQ_GPR_MANAGEMENT_REG_DYNAMIC_SHIFT 0
+#define SQ_GPR_MANAGEMENT_REG_SIZE_PIX_SHIFT 4
+#define SQ_GPR_MANAGEMENT_REG_SIZE_VTX_SHIFT 12
+
+#define SQ_GPR_MANAGEMENT_REG_DYNAMIC_MASK 0x00000001
+#define SQ_GPR_MANAGEMENT_REG_SIZE_PIX_MASK 0x000007f0
+#define SQ_GPR_MANAGEMENT_REG_SIZE_VTX_MASK 0x0007f000
+
+#define SQ_GPR_MANAGEMENT_MASK \
+ (SQ_GPR_MANAGEMENT_REG_DYNAMIC_MASK | \
+ SQ_GPR_MANAGEMENT_REG_SIZE_PIX_MASK | \
+ SQ_GPR_MANAGEMENT_REG_SIZE_VTX_MASK)
+
+#define SQ_GPR_MANAGEMENT(reg_dynamic, reg_size_pix, reg_size_vtx) \
+ ((reg_dynamic << SQ_GPR_MANAGEMENT_REG_DYNAMIC_SHIFT) | \
+ (reg_size_pix << SQ_GPR_MANAGEMENT_REG_SIZE_PIX_SHIFT) | \
+ (reg_size_vtx << SQ_GPR_MANAGEMENT_REG_SIZE_VTX_SHIFT))
+
+#define SQ_GPR_MANAGEMENT_GET_REG_DYNAMIC(sq_gpr_management) \
+ ((sq_gpr_management & SQ_GPR_MANAGEMENT_REG_DYNAMIC_MASK) >> SQ_GPR_MANAGEMENT_REG_DYNAMIC_SHIFT)
+#define SQ_GPR_MANAGEMENT_GET_REG_SIZE_PIX(sq_gpr_management) \
+ ((sq_gpr_management & SQ_GPR_MANAGEMENT_REG_SIZE_PIX_MASK) >> SQ_GPR_MANAGEMENT_REG_SIZE_PIX_SHIFT)
+#define SQ_GPR_MANAGEMENT_GET_REG_SIZE_VTX(sq_gpr_management) \
+ ((sq_gpr_management & SQ_GPR_MANAGEMENT_REG_SIZE_VTX_MASK) >> SQ_GPR_MANAGEMENT_REG_SIZE_VTX_SHIFT)
+
+#define SQ_GPR_MANAGEMENT_SET_REG_DYNAMIC(sq_gpr_management_reg, reg_dynamic) \
+ sq_gpr_management_reg = (sq_gpr_management_reg & ~SQ_GPR_MANAGEMENT_REG_DYNAMIC_MASK) | (reg_dynamic << SQ_GPR_MANAGEMENT_REG_DYNAMIC_SHIFT)
+#define SQ_GPR_MANAGEMENT_SET_REG_SIZE_PIX(sq_gpr_management_reg, reg_size_pix) \
+ sq_gpr_management_reg = (sq_gpr_management_reg & ~SQ_GPR_MANAGEMENT_REG_SIZE_PIX_MASK) | (reg_size_pix << SQ_GPR_MANAGEMENT_REG_SIZE_PIX_SHIFT)
+#define SQ_GPR_MANAGEMENT_SET_REG_SIZE_VTX(sq_gpr_management_reg, reg_size_vtx) \
+ sq_gpr_management_reg = (sq_gpr_management_reg & ~SQ_GPR_MANAGEMENT_REG_SIZE_VTX_MASK) | (reg_size_vtx << SQ_GPR_MANAGEMENT_REG_SIZE_VTX_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_gpr_management_t {
+ unsigned int reg_dynamic : SQ_GPR_MANAGEMENT_REG_DYNAMIC_SIZE;
+ unsigned int : 3;
+ unsigned int reg_size_pix : SQ_GPR_MANAGEMENT_REG_SIZE_PIX_SIZE;
+ unsigned int : 1;
+ unsigned int reg_size_vtx : SQ_GPR_MANAGEMENT_REG_SIZE_VTX_SIZE;
+ unsigned int : 13;
+ } sq_gpr_management_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_gpr_management_t {
+ unsigned int : 13;
+ unsigned int reg_size_vtx : SQ_GPR_MANAGEMENT_REG_SIZE_VTX_SIZE;
+ unsigned int : 1;
+ unsigned int reg_size_pix : SQ_GPR_MANAGEMENT_REG_SIZE_PIX_SIZE;
+ unsigned int : 3;
+ unsigned int reg_dynamic : SQ_GPR_MANAGEMENT_REG_DYNAMIC_SIZE;
+ } sq_gpr_management_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_gpr_management_t f;
+} sq_gpr_management_u;
+
+
+/*
+ * SQ_FLOW_CONTROL struct
+ */
+
+#define SQ_FLOW_CONTROL_INPUT_ARBITRATION_POLICY_SIZE 2
+#define SQ_FLOW_CONTROL_ONE_THREAD_SIZE 1
+#define SQ_FLOW_CONTROL_ONE_ALU_SIZE 1
+#define SQ_FLOW_CONTROL_CF_WR_BASE_SIZE 4
+#define SQ_FLOW_CONTROL_NO_PV_PS_SIZE 1
+#define SQ_FLOW_CONTROL_NO_LOOP_EXIT_SIZE 1
+#define SQ_FLOW_CONTROL_NO_CEXEC_OPTIMIZE_SIZE 1
+#define SQ_FLOW_CONTROL_TEXTURE_ARBITRATION_POLICY_SIZE 2
+#define SQ_FLOW_CONTROL_VC_ARBITRATION_POLICY_SIZE 1
+#define SQ_FLOW_CONTROL_ALU_ARBITRATION_POLICY_SIZE 1
+#define SQ_FLOW_CONTROL_NO_ARB_EJECT_SIZE 1
+#define SQ_FLOW_CONTROL_NO_CFS_EJECT_SIZE 1
+#define SQ_FLOW_CONTROL_POS_EXP_PRIORITY_SIZE 1
+#define SQ_FLOW_CONTROL_NO_EARLY_THREAD_TERMINATION_SIZE 1
+#define SQ_FLOW_CONTROL_PS_PREFETCH_COLOR_ALLOC_SIZE 1
+
+#define SQ_FLOW_CONTROL_INPUT_ARBITRATION_POLICY_SHIFT 0
+#define SQ_FLOW_CONTROL_ONE_THREAD_SHIFT 4
+#define SQ_FLOW_CONTROL_ONE_ALU_SHIFT 8
+#define SQ_FLOW_CONTROL_CF_WR_BASE_SHIFT 12
+#define SQ_FLOW_CONTROL_NO_PV_PS_SHIFT 16
+#define SQ_FLOW_CONTROL_NO_LOOP_EXIT_SHIFT 17
+#define SQ_FLOW_CONTROL_NO_CEXEC_OPTIMIZE_SHIFT 18
+#define SQ_FLOW_CONTROL_TEXTURE_ARBITRATION_POLICY_SHIFT 19
+#define SQ_FLOW_CONTROL_VC_ARBITRATION_POLICY_SHIFT 21
+#define SQ_FLOW_CONTROL_ALU_ARBITRATION_POLICY_SHIFT 22
+#define SQ_FLOW_CONTROL_NO_ARB_EJECT_SHIFT 23
+#define SQ_FLOW_CONTROL_NO_CFS_EJECT_SHIFT 24
+#define SQ_FLOW_CONTROL_POS_EXP_PRIORITY_SHIFT 25
+#define SQ_FLOW_CONTROL_NO_EARLY_THREAD_TERMINATION_SHIFT 26
+#define SQ_FLOW_CONTROL_PS_PREFETCH_COLOR_ALLOC_SHIFT 27
+
+#define SQ_FLOW_CONTROL_INPUT_ARBITRATION_POLICY_MASK 0x00000003
+#define SQ_FLOW_CONTROL_ONE_THREAD_MASK 0x00000010
+#define SQ_FLOW_CONTROL_ONE_ALU_MASK 0x00000100
+#define SQ_FLOW_CONTROL_CF_WR_BASE_MASK 0x0000f000
+#define SQ_FLOW_CONTROL_NO_PV_PS_MASK 0x00010000
+#define SQ_FLOW_CONTROL_NO_LOOP_EXIT_MASK 0x00020000
+#define SQ_FLOW_CONTROL_NO_CEXEC_OPTIMIZE_MASK 0x00040000
+#define SQ_FLOW_CONTROL_TEXTURE_ARBITRATION_POLICY_MASK 0x00180000
+#define SQ_FLOW_CONTROL_VC_ARBITRATION_POLICY_MASK 0x00200000
+#define SQ_FLOW_CONTROL_ALU_ARBITRATION_POLICY_MASK 0x00400000
+#define SQ_FLOW_CONTROL_NO_ARB_EJECT_MASK 0x00800000
+#define SQ_FLOW_CONTROL_NO_CFS_EJECT_MASK 0x01000000
+#define SQ_FLOW_CONTROL_POS_EXP_PRIORITY_MASK 0x02000000
+#define SQ_FLOW_CONTROL_NO_EARLY_THREAD_TERMINATION_MASK 0x04000000
+#define SQ_FLOW_CONTROL_PS_PREFETCH_COLOR_ALLOC_MASK 0x08000000
+
+#define SQ_FLOW_CONTROL_MASK \
+ (SQ_FLOW_CONTROL_INPUT_ARBITRATION_POLICY_MASK | \
+ SQ_FLOW_CONTROL_ONE_THREAD_MASK | \
+ SQ_FLOW_CONTROL_ONE_ALU_MASK | \
+ SQ_FLOW_CONTROL_CF_WR_BASE_MASK | \
+ SQ_FLOW_CONTROL_NO_PV_PS_MASK | \
+ SQ_FLOW_CONTROL_NO_LOOP_EXIT_MASK | \
+ SQ_FLOW_CONTROL_NO_CEXEC_OPTIMIZE_MASK | \
+ SQ_FLOW_CONTROL_TEXTURE_ARBITRATION_POLICY_MASK | \
+ SQ_FLOW_CONTROL_VC_ARBITRATION_POLICY_MASK | \
+ SQ_FLOW_CONTROL_ALU_ARBITRATION_POLICY_MASK | \
+ SQ_FLOW_CONTROL_NO_ARB_EJECT_MASK | \
+ SQ_FLOW_CONTROL_NO_CFS_EJECT_MASK | \
+ SQ_FLOW_CONTROL_POS_EXP_PRIORITY_MASK | \
+ SQ_FLOW_CONTROL_NO_EARLY_THREAD_TERMINATION_MASK | \
+ SQ_FLOW_CONTROL_PS_PREFETCH_COLOR_ALLOC_MASK)
+
+#define SQ_FLOW_CONTROL(input_arbitration_policy, one_thread, one_alu, cf_wr_base, no_pv_ps, no_loop_exit, no_cexec_optimize, texture_arbitration_policy, vc_arbitration_policy, alu_arbitration_policy, no_arb_eject, no_cfs_eject, pos_exp_priority, no_early_thread_termination, ps_prefetch_color_alloc) \
+ ((input_arbitration_policy << SQ_FLOW_CONTROL_INPUT_ARBITRATION_POLICY_SHIFT) | \
+ (one_thread << SQ_FLOW_CONTROL_ONE_THREAD_SHIFT) | \
+ (one_alu << SQ_FLOW_CONTROL_ONE_ALU_SHIFT) | \
+ (cf_wr_base << SQ_FLOW_CONTROL_CF_WR_BASE_SHIFT) | \
+ (no_pv_ps << SQ_FLOW_CONTROL_NO_PV_PS_SHIFT) | \
+ (no_loop_exit << SQ_FLOW_CONTROL_NO_LOOP_EXIT_SHIFT) | \
+ (no_cexec_optimize << SQ_FLOW_CONTROL_NO_CEXEC_OPTIMIZE_SHIFT) | \
+ (texture_arbitration_policy << SQ_FLOW_CONTROL_TEXTURE_ARBITRATION_POLICY_SHIFT) | \
+ (vc_arbitration_policy << SQ_FLOW_CONTROL_VC_ARBITRATION_POLICY_SHIFT) | \
+ (alu_arbitration_policy << SQ_FLOW_CONTROL_ALU_ARBITRATION_POLICY_SHIFT) | \
+ (no_arb_eject << SQ_FLOW_CONTROL_NO_ARB_EJECT_SHIFT) | \
+ (no_cfs_eject << SQ_FLOW_CONTROL_NO_CFS_EJECT_SHIFT) | \
+ (pos_exp_priority << SQ_FLOW_CONTROL_POS_EXP_PRIORITY_SHIFT) | \
+ (no_early_thread_termination << SQ_FLOW_CONTROL_NO_EARLY_THREAD_TERMINATION_SHIFT) | \
+ (ps_prefetch_color_alloc << SQ_FLOW_CONTROL_PS_PREFETCH_COLOR_ALLOC_SHIFT))
+
+#define SQ_FLOW_CONTROL_GET_INPUT_ARBITRATION_POLICY(sq_flow_control) \
+ ((sq_flow_control & SQ_FLOW_CONTROL_INPUT_ARBITRATION_POLICY_MASK) >> SQ_FLOW_CONTROL_INPUT_ARBITRATION_POLICY_SHIFT)
+#define SQ_FLOW_CONTROL_GET_ONE_THREAD(sq_flow_control) \
+ ((sq_flow_control & SQ_FLOW_CONTROL_ONE_THREAD_MASK) >> SQ_FLOW_CONTROL_ONE_THREAD_SHIFT)
+#define SQ_FLOW_CONTROL_GET_ONE_ALU(sq_flow_control) \
+ ((sq_flow_control & SQ_FLOW_CONTROL_ONE_ALU_MASK) >> SQ_FLOW_CONTROL_ONE_ALU_SHIFT)
+#define SQ_FLOW_CONTROL_GET_CF_WR_BASE(sq_flow_control) \
+ ((sq_flow_control & SQ_FLOW_CONTROL_CF_WR_BASE_MASK) >> SQ_FLOW_CONTROL_CF_WR_BASE_SHIFT)
+#define SQ_FLOW_CONTROL_GET_NO_PV_PS(sq_flow_control) \
+ ((sq_flow_control & SQ_FLOW_CONTROL_NO_PV_PS_MASK) >> SQ_FLOW_CONTROL_NO_PV_PS_SHIFT)
+#define SQ_FLOW_CONTROL_GET_NO_LOOP_EXIT(sq_flow_control) \
+ ((sq_flow_control & SQ_FLOW_CONTROL_NO_LOOP_EXIT_MASK) >> SQ_FLOW_CONTROL_NO_LOOP_EXIT_SHIFT)
+#define SQ_FLOW_CONTROL_GET_NO_CEXEC_OPTIMIZE(sq_flow_control) \
+ ((sq_flow_control & SQ_FLOW_CONTROL_NO_CEXEC_OPTIMIZE_MASK) >> SQ_FLOW_CONTROL_NO_CEXEC_OPTIMIZE_SHIFT)
+#define SQ_FLOW_CONTROL_GET_TEXTURE_ARBITRATION_POLICY(sq_flow_control) \
+ ((sq_flow_control & SQ_FLOW_CONTROL_TEXTURE_ARBITRATION_POLICY_MASK) >> SQ_FLOW_CONTROL_TEXTURE_ARBITRATION_POLICY_SHIFT)
+#define SQ_FLOW_CONTROL_GET_VC_ARBITRATION_POLICY(sq_flow_control) \
+ ((sq_flow_control & SQ_FLOW_CONTROL_VC_ARBITRATION_POLICY_MASK) >> SQ_FLOW_CONTROL_VC_ARBITRATION_POLICY_SHIFT)
+#define SQ_FLOW_CONTROL_GET_ALU_ARBITRATION_POLICY(sq_flow_control) \
+ ((sq_flow_control & SQ_FLOW_CONTROL_ALU_ARBITRATION_POLICY_MASK) >> SQ_FLOW_CONTROL_ALU_ARBITRATION_POLICY_SHIFT)
+#define SQ_FLOW_CONTROL_GET_NO_ARB_EJECT(sq_flow_control) \
+ ((sq_flow_control & SQ_FLOW_CONTROL_NO_ARB_EJECT_MASK) >> SQ_FLOW_CONTROL_NO_ARB_EJECT_SHIFT)
+#define SQ_FLOW_CONTROL_GET_NO_CFS_EJECT(sq_flow_control) \
+ ((sq_flow_control & SQ_FLOW_CONTROL_NO_CFS_EJECT_MASK) >> SQ_FLOW_CONTROL_NO_CFS_EJECT_SHIFT)
+#define SQ_FLOW_CONTROL_GET_POS_EXP_PRIORITY(sq_flow_control) \
+ ((sq_flow_control & SQ_FLOW_CONTROL_POS_EXP_PRIORITY_MASK) >> SQ_FLOW_CONTROL_POS_EXP_PRIORITY_SHIFT)
+#define SQ_FLOW_CONTROL_GET_NO_EARLY_THREAD_TERMINATION(sq_flow_control) \
+ ((sq_flow_control & SQ_FLOW_CONTROL_NO_EARLY_THREAD_TERMINATION_MASK) >> SQ_FLOW_CONTROL_NO_EARLY_THREAD_TERMINATION_SHIFT)
+#define SQ_FLOW_CONTROL_GET_PS_PREFETCH_COLOR_ALLOC(sq_flow_control) \
+ ((sq_flow_control & SQ_FLOW_CONTROL_PS_PREFETCH_COLOR_ALLOC_MASK) >> SQ_FLOW_CONTROL_PS_PREFETCH_COLOR_ALLOC_SHIFT)
+
+#define SQ_FLOW_CONTROL_SET_INPUT_ARBITRATION_POLICY(sq_flow_control_reg, input_arbitration_policy) \
+ sq_flow_control_reg = (sq_flow_control_reg & ~SQ_FLOW_CONTROL_INPUT_ARBITRATION_POLICY_MASK) | (input_arbitration_policy << SQ_FLOW_CONTROL_INPUT_ARBITRATION_POLICY_SHIFT)
+#define SQ_FLOW_CONTROL_SET_ONE_THREAD(sq_flow_control_reg, one_thread) \
+ sq_flow_control_reg = (sq_flow_control_reg & ~SQ_FLOW_CONTROL_ONE_THREAD_MASK) | (one_thread << SQ_FLOW_CONTROL_ONE_THREAD_SHIFT)
+#define SQ_FLOW_CONTROL_SET_ONE_ALU(sq_flow_control_reg, one_alu) \
+ sq_flow_control_reg = (sq_flow_control_reg & ~SQ_FLOW_CONTROL_ONE_ALU_MASK) | (one_alu << SQ_FLOW_CONTROL_ONE_ALU_SHIFT)
+#define SQ_FLOW_CONTROL_SET_CF_WR_BASE(sq_flow_control_reg, cf_wr_base) \
+ sq_flow_control_reg = (sq_flow_control_reg & ~SQ_FLOW_CONTROL_CF_WR_BASE_MASK) | (cf_wr_base << SQ_FLOW_CONTROL_CF_WR_BASE_SHIFT)
+#define SQ_FLOW_CONTROL_SET_NO_PV_PS(sq_flow_control_reg, no_pv_ps) \
+ sq_flow_control_reg = (sq_flow_control_reg & ~SQ_FLOW_CONTROL_NO_PV_PS_MASK) | (no_pv_ps << SQ_FLOW_CONTROL_NO_PV_PS_SHIFT)
+#define SQ_FLOW_CONTROL_SET_NO_LOOP_EXIT(sq_flow_control_reg, no_loop_exit) \
+ sq_flow_control_reg = (sq_flow_control_reg & ~SQ_FLOW_CONTROL_NO_LOOP_EXIT_MASK) | (no_loop_exit << SQ_FLOW_CONTROL_NO_LOOP_EXIT_SHIFT)
+#define SQ_FLOW_CONTROL_SET_NO_CEXEC_OPTIMIZE(sq_flow_control_reg, no_cexec_optimize) \
+ sq_flow_control_reg = (sq_flow_control_reg & ~SQ_FLOW_CONTROL_NO_CEXEC_OPTIMIZE_MASK) | (no_cexec_optimize << SQ_FLOW_CONTROL_NO_CEXEC_OPTIMIZE_SHIFT)
+#define SQ_FLOW_CONTROL_SET_TEXTURE_ARBITRATION_POLICY(sq_flow_control_reg, texture_arbitration_policy) \
+ sq_flow_control_reg = (sq_flow_control_reg & ~SQ_FLOW_CONTROL_TEXTURE_ARBITRATION_POLICY_MASK) | (texture_arbitration_policy << SQ_FLOW_CONTROL_TEXTURE_ARBITRATION_POLICY_SHIFT)
+#define SQ_FLOW_CONTROL_SET_VC_ARBITRATION_POLICY(sq_flow_control_reg, vc_arbitration_policy) \
+ sq_flow_control_reg = (sq_flow_control_reg & ~SQ_FLOW_CONTROL_VC_ARBITRATION_POLICY_MASK) | (vc_arbitration_policy << SQ_FLOW_CONTROL_VC_ARBITRATION_POLICY_SHIFT)
+#define SQ_FLOW_CONTROL_SET_ALU_ARBITRATION_POLICY(sq_flow_control_reg, alu_arbitration_policy) \
+ sq_flow_control_reg = (sq_flow_control_reg & ~SQ_FLOW_CONTROL_ALU_ARBITRATION_POLICY_MASK) | (alu_arbitration_policy << SQ_FLOW_CONTROL_ALU_ARBITRATION_POLICY_SHIFT)
+#define SQ_FLOW_CONTROL_SET_NO_ARB_EJECT(sq_flow_control_reg, no_arb_eject) \
+ sq_flow_control_reg = (sq_flow_control_reg & ~SQ_FLOW_CONTROL_NO_ARB_EJECT_MASK) | (no_arb_eject << SQ_FLOW_CONTROL_NO_ARB_EJECT_SHIFT)
+#define SQ_FLOW_CONTROL_SET_NO_CFS_EJECT(sq_flow_control_reg, no_cfs_eject) \
+ sq_flow_control_reg = (sq_flow_control_reg & ~SQ_FLOW_CONTROL_NO_CFS_EJECT_MASK) | (no_cfs_eject << SQ_FLOW_CONTROL_NO_CFS_EJECT_SHIFT)
+#define SQ_FLOW_CONTROL_SET_POS_EXP_PRIORITY(sq_flow_control_reg, pos_exp_priority) \
+ sq_flow_control_reg = (sq_flow_control_reg & ~SQ_FLOW_CONTROL_POS_EXP_PRIORITY_MASK) | (pos_exp_priority << SQ_FLOW_CONTROL_POS_EXP_PRIORITY_SHIFT)
+#define SQ_FLOW_CONTROL_SET_NO_EARLY_THREAD_TERMINATION(sq_flow_control_reg, no_early_thread_termination) \
+ sq_flow_control_reg = (sq_flow_control_reg & ~SQ_FLOW_CONTROL_NO_EARLY_THREAD_TERMINATION_MASK) | (no_early_thread_termination << SQ_FLOW_CONTROL_NO_EARLY_THREAD_TERMINATION_SHIFT)
+#define SQ_FLOW_CONTROL_SET_PS_PREFETCH_COLOR_ALLOC(sq_flow_control_reg, ps_prefetch_color_alloc) \
+ sq_flow_control_reg = (sq_flow_control_reg & ~SQ_FLOW_CONTROL_PS_PREFETCH_COLOR_ALLOC_MASK) | (ps_prefetch_color_alloc << SQ_FLOW_CONTROL_PS_PREFETCH_COLOR_ALLOC_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_flow_control_t {
+ unsigned int input_arbitration_policy : SQ_FLOW_CONTROL_INPUT_ARBITRATION_POLICY_SIZE;
+ unsigned int : 2;
+ unsigned int one_thread : SQ_FLOW_CONTROL_ONE_THREAD_SIZE;
+ unsigned int : 3;
+ unsigned int one_alu : SQ_FLOW_CONTROL_ONE_ALU_SIZE;
+ unsigned int : 3;
+ unsigned int cf_wr_base : SQ_FLOW_CONTROL_CF_WR_BASE_SIZE;
+ unsigned int no_pv_ps : SQ_FLOW_CONTROL_NO_PV_PS_SIZE;
+ unsigned int no_loop_exit : SQ_FLOW_CONTROL_NO_LOOP_EXIT_SIZE;
+ unsigned int no_cexec_optimize : SQ_FLOW_CONTROL_NO_CEXEC_OPTIMIZE_SIZE;
+ unsigned int texture_arbitration_policy : SQ_FLOW_CONTROL_TEXTURE_ARBITRATION_POLICY_SIZE;
+ unsigned int vc_arbitration_policy : SQ_FLOW_CONTROL_VC_ARBITRATION_POLICY_SIZE;
+ unsigned int alu_arbitration_policy : SQ_FLOW_CONTROL_ALU_ARBITRATION_POLICY_SIZE;
+ unsigned int no_arb_eject : SQ_FLOW_CONTROL_NO_ARB_EJECT_SIZE;
+ unsigned int no_cfs_eject : SQ_FLOW_CONTROL_NO_CFS_EJECT_SIZE;
+ unsigned int pos_exp_priority : SQ_FLOW_CONTROL_POS_EXP_PRIORITY_SIZE;
+ unsigned int no_early_thread_termination : SQ_FLOW_CONTROL_NO_EARLY_THREAD_TERMINATION_SIZE;
+ unsigned int ps_prefetch_color_alloc : SQ_FLOW_CONTROL_PS_PREFETCH_COLOR_ALLOC_SIZE;
+ unsigned int : 4;
+ } sq_flow_control_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_flow_control_t {
+ unsigned int : 4;
+ unsigned int ps_prefetch_color_alloc : SQ_FLOW_CONTROL_PS_PREFETCH_COLOR_ALLOC_SIZE;
+ unsigned int no_early_thread_termination : SQ_FLOW_CONTROL_NO_EARLY_THREAD_TERMINATION_SIZE;
+ unsigned int pos_exp_priority : SQ_FLOW_CONTROL_POS_EXP_PRIORITY_SIZE;
+ unsigned int no_cfs_eject : SQ_FLOW_CONTROL_NO_CFS_EJECT_SIZE;
+ unsigned int no_arb_eject : SQ_FLOW_CONTROL_NO_ARB_EJECT_SIZE;
+ unsigned int alu_arbitration_policy : SQ_FLOW_CONTROL_ALU_ARBITRATION_POLICY_SIZE;
+ unsigned int vc_arbitration_policy : SQ_FLOW_CONTROL_VC_ARBITRATION_POLICY_SIZE;
+ unsigned int texture_arbitration_policy : SQ_FLOW_CONTROL_TEXTURE_ARBITRATION_POLICY_SIZE;
+ unsigned int no_cexec_optimize : SQ_FLOW_CONTROL_NO_CEXEC_OPTIMIZE_SIZE;
+ unsigned int no_loop_exit : SQ_FLOW_CONTROL_NO_LOOP_EXIT_SIZE;
+ unsigned int no_pv_ps : SQ_FLOW_CONTROL_NO_PV_PS_SIZE;
+ unsigned int cf_wr_base : SQ_FLOW_CONTROL_CF_WR_BASE_SIZE;
+ unsigned int : 3;
+ unsigned int one_alu : SQ_FLOW_CONTROL_ONE_ALU_SIZE;
+ unsigned int : 3;
+ unsigned int one_thread : SQ_FLOW_CONTROL_ONE_THREAD_SIZE;
+ unsigned int : 2;
+ unsigned int input_arbitration_policy : SQ_FLOW_CONTROL_INPUT_ARBITRATION_POLICY_SIZE;
+ } sq_flow_control_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_flow_control_t f;
+} sq_flow_control_u;
+
+
+/*
+ * SQ_INST_STORE_MANAGMENT struct
+ */
+
+#define SQ_INST_STORE_MANAGMENT_INST_BASE_PIX_SIZE 12
+#define SQ_INST_STORE_MANAGMENT_INST_BASE_VTX_SIZE 12
+
+#define SQ_INST_STORE_MANAGMENT_INST_BASE_PIX_SHIFT 0
+#define SQ_INST_STORE_MANAGMENT_INST_BASE_VTX_SHIFT 16
+
+#define SQ_INST_STORE_MANAGMENT_INST_BASE_PIX_MASK 0x00000fff
+#define SQ_INST_STORE_MANAGMENT_INST_BASE_VTX_MASK 0x0fff0000
+
+#define SQ_INST_STORE_MANAGMENT_MASK \
+ (SQ_INST_STORE_MANAGMENT_INST_BASE_PIX_MASK | \
+ SQ_INST_STORE_MANAGMENT_INST_BASE_VTX_MASK)
+
+#define SQ_INST_STORE_MANAGMENT(inst_base_pix, inst_base_vtx) \
+ ((inst_base_pix << SQ_INST_STORE_MANAGMENT_INST_BASE_PIX_SHIFT) | \
+ (inst_base_vtx << SQ_INST_STORE_MANAGMENT_INST_BASE_VTX_SHIFT))
+
+#define SQ_INST_STORE_MANAGMENT_GET_INST_BASE_PIX(sq_inst_store_managment) \
+ ((sq_inst_store_managment & SQ_INST_STORE_MANAGMENT_INST_BASE_PIX_MASK) >> SQ_INST_STORE_MANAGMENT_INST_BASE_PIX_SHIFT)
+#define SQ_INST_STORE_MANAGMENT_GET_INST_BASE_VTX(sq_inst_store_managment) \
+ ((sq_inst_store_managment & SQ_INST_STORE_MANAGMENT_INST_BASE_VTX_MASK) >> SQ_INST_STORE_MANAGMENT_INST_BASE_VTX_SHIFT)
+
+#define SQ_INST_STORE_MANAGMENT_SET_INST_BASE_PIX(sq_inst_store_managment_reg, inst_base_pix) \
+ sq_inst_store_managment_reg = (sq_inst_store_managment_reg & ~SQ_INST_STORE_MANAGMENT_INST_BASE_PIX_MASK) | (inst_base_pix << SQ_INST_STORE_MANAGMENT_INST_BASE_PIX_SHIFT)
+#define SQ_INST_STORE_MANAGMENT_SET_INST_BASE_VTX(sq_inst_store_managment_reg, inst_base_vtx) \
+ sq_inst_store_managment_reg = (sq_inst_store_managment_reg & ~SQ_INST_STORE_MANAGMENT_INST_BASE_VTX_MASK) | (inst_base_vtx << SQ_INST_STORE_MANAGMENT_INST_BASE_VTX_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_inst_store_managment_t {
+ unsigned int inst_base_pix : SQ_INST_STORE_MANAGMENT_INST_BASE_PIX_SIZE;
+ unsigned int : 4;
+ unsigned int inst_base_vtx : SQ_INST_STORE_MANAGMENT_INST_BASE_VTX_SIZE;
+ unsigned int : 4;
+ } sq_inst_store_managment_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_inst_store_managment_t {
+ unsigned int : 4;
+ unsigned int inst_base_vtx : SQ_INST_STORE_MANAGMENT_INST_BASE_VTX_SIZE;
+ unsigned int : 4;
+ unsigned int inst_base_pix : SQ_INST_STORE_MANAGMENT_INST_BASE_PIX_SIZE;
+ } sq_inst_store_managment_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_inst_store_managment_t f;
+} sq_inst_store_managment_u;
+
+
+/*
+ * SQ_RESOURCE_MANAGMENT struct
+ */
+
+#define SQ_RESOURCE_MANAGMENT_VTX_THREAD_BUF_ENTRIES_SIZE 8
+#define SQ_RESOURCE_MANAGMENT_PIX_THREAD_BUF_ENTRIES_SIZE 8
+#define SQ_RESOURCE_MANAGMENT_EXPORT_BUF_ENTRIES_SIZE 9
+
+#define SQ_RESOURCE_MANAGMENT_VTX_THREAD_BUF_ENTRIES_SHIFT 0
+#define SQ_RESOURCE_MANAGMENT_PIX_THREAD_BUF_ENTRIES_SHIFT 8
+#define SQ_RESOURCE_MANAGMENT_EXPORT_BUF_ENTRIES_SHIFT 16
+
+#define SQ_RESOURCE_MANAGMENT_VTX_THREAD_BUF_ENTRIES_MASK 0x000000ff
+#define SQ_RESOURCE_MANAGMENT_PIX_THREAD_BUF_ENTRIES_MASK 0x0000ff00
+#define SQ_RESOURCE_MANAGMENT_EXPORT_BUF_ENTRIES_MASK 0x01ff0000
+
+#define SQ_RESOURCE_MANAGMENT_MASK \
+ (SQ_RESOURCE_MANAGMENT_VTX_THREAD_BUF_ENTRIES_MASK | \
+ SQ_RESOURCE_MANAGMENT_PIX_THREAD_BUF_ENTRIES_MASK | \
+ SQ_RESOURCE_MANAGMENT_EXPORT_BUF_ENTRIES_MASK)
+
+#define SQ_RESOURCE_MANAGMENT(vtx_thread_buf_entries, pix_thread_buf_entries, export_buf_entries) \
+ ((vtx_thread_buf_entries << SQ_RESOURCE_MANAGMENT_VTX_THREAD_BUF_ENTRIES_SHIFT) | \
+ (pix_thread_buf_entries << SQ_RESOURCE_MANAGMENT_PIX_THREAD_BUF_ENTRIES_SHIFT) | \
+ (export_buf_entries << SQ_RESOURCE_MANAGMENT_EXPORT_BUF_ENTRIES_SHIFT))
+
+#define SQ_RESOURCE_MANAGMENT_GET_VTX_THREAD_BUF_ENTRIES(sq_resource_managment) \
+ ((sq_resource_managment & SQ_RESOURCE_MANAGMENT_VTX_THREAD_BUF_ENTRIES_MASK) >> SQ_RESOURCE_MANAGMENT_VTX_THREAD_BUF_ENTRIES_SHIFT)
+#define SQ_RESOURCE_MANAGMENT_GET_PIX_THREAD_BUF_ENTRIES(sq_resource_managment) \
+ ((sq_resource_managment & SQ_RESOURCE_MANAGMENT_PIX_THREAD_BUF_ENTRIES_MASK) >> SQ_RESOURCE_MANAGMENT_PIX_THREAD_BUF_ENTRIES_SHIFT)
+#define SQ_RESOURCE_MANAGMENT_GET_EXPORT_BUF_ENTRIES(sq_resource_managment) \
+ ((sq_resource_managment & SQ_RESOURCE_MANAGMENT_EXPORT_BUF_ENTRIES_MASK) >> SQ_RESOURCE_MANAGMENT_EXPORT_BUF_ENTRIES_SHIFT)
+
+#define SQ_RESOURCE_MANAGMENT_SET_VTX_THREAD_BUF_ENTRIES(sq_resource_managment_reg, vtx_thread_buf_entries) \
+ sq_resource_managment_reg = (sq_resource_managment_reg & ~SQ_RESOURCE_MANAGMENT_VTX_THREAD_BUF_ENTRIES_MASK) | (vtx_thread_buf_entries << SQ_RESOURCE_MANAGMENT_VTX_THREAD_BUF_ENTRIES_SHIFT)
+#define SQ_RESOURCE_MANAGMENT_SET_PIX_THREAD_BUF_ENTRIES(sq_resource_managment_reg, pix_thread_buf_entries) \
+ sq_resource_managment_reg = (sq_resource_managment_reg & ~SQ_RESOURCE_MANAGMENT_PIX_THREAD_BUF_ENTRIES_MASK) | (pix_thread_buf_entries << SQ_RESOURCE_MANAGMENT_PIX_THREAD_BUF_ENTRIES_SHIFT)
+#define SQ_RESOURCE_MANAGMENT_SET_EXPORT_BUF_ENTRIES(sq_resource_managment_reg, export_buf_entries) \
+ sq_resource_managment_reg = (sq_resource_managment_reg & ~SQ_RESOURCE_MANAGMENT_EXPORT_BUF_ENTRIES_MASK) | (export_buf_entries << SQ_RESOURCE_MANAGMENT_EXPORT_BUF_ENTRIES_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_resource_managment_t {
+ unsigned int vtx_thread_buf_entries : SQ_RESOURCE_MANAGMENT_VTX_THREAD_BUF_ENTRIES_SIZE;
+ unsigned int pix_thread_buf_entries : SQ_RESOURCE_MANAGMENT_PIX_THREAD_BUF_ENTRIES_SIZE;
+ unsigned int export_buf_entries : SQ_RESOURCE_MANAGMENT_EXPORT_BUF_ENTRIES_SIZE;
+ unsigned int : 7;
+ } sq_resource_managment_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_resource_managment_t {
+ unsigned int : 7;
+ unsigned int export_buf_entries : SQ_RESOURCE_MANAGMENT_EXPORT_BUF_ENTRIES_SIZE;
+ unsigned int pix_thread_buf_entries : SQ_RESOURCE_MANAGMENT_PIX_THREAD_BUF_ENTRIES_SIZE;
+ unsigned int vtx_thread_buf_entries : SQ_RESOURCE_MANAGMENT_VTX_THREAD_BUF_ENTRIES_SIZE;
+ } sq_resource_managment_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_resource_managment_t f;
+} sq_resource_managment_u;
+
+
+/*
+ * SQ_EO_RT struct
+ */
+
+#define SQ_EO_RT_EO_CONSTANTS_RT_SIZE 8
+#define SQ_EO_RT_EO_TSTATE_RT_SIZE 8
+
+#define SQ_EO_RT_EO_CONSTANTS_RT_SHIFT 0
+#define SQ_EO_RT_EO_TSTATE_RT_SHIFT 16
+
+#define SQ_EO_RT_EO_CONSTANTS_RT_MASK 0x000000ff
+#define SQ_EO_RT_EO_TSTATE_RT_MASK 0x00ff0000
+
+#define SQ_EO_RT_MASK \
+ (SQ_EO_RT_EO_CONSTANTS_RT_MASK | \
+ SQ_EO_RT_EO_TSTATE_RT_MASK)
+
+#define SQ_EO_RT(eo_constants_rt, eo_tstate_rt) \
+ ((eo_constants_rt << SQ_EO_RT_EO_CONSTANTS_RT_SHIFT) | \
+ (eo_tstate_rt << SQ_EO_RT_EO_TSTATE_RT_SHIFT))
+
+#define SQ_EO_RT_GET_EO_CONSTANTS_RT(sq_eo_rt) \
+ ((sq_eo_rt & SQ_EO_RT_EO_CONSTANTS_RT_MASK) >> SQ_EO_RT_EO_CONSTANTS_RT_SHIFT)
+#define SQ_EO_RT_GET_EO_TSTATE_RT(sq_eo_rt) \
+ ((sq_eo_rt & SQ_EO_RT_EO_TSTATE_RT_MASK) >> SQ_EO_RT_EO_TSTATE_RT_SHIFT)
+
+#define SQ_EO_RT_SET_EO_CONSTANTS_RT(sq_eo_rt_reg, eo_constants_rt) \
+ sq_eo_rt_reg = (sq_eo_rt_reg & ~SQ_EO_RT_EO_CONSTANTS_RT_MASK) | (eo_constants_rt << SQ_EO_RT_EO_CONSTANTS_RT_SHIFT)
+#define SQ_EO_RT_SET_EO_TSTATE_RT(sq_eo_rt_reg, eo_tstate_rt) \
+ sq_eo_rt_reg = (sq_eo_rt_reg & ~SQ_EO_RT_EO_TSTATE_RT_MASK) | (eo_tstate_rt << SQ_EO_RT_EO_TSTATE_RT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_eo_rt_t {
+ unsigned int eo_constants_rt : SQ_EO_RT_EO_CONSTANTS_RT_SIZE;
+ unsigned int : 8;
+ unsigned int eo_tstate_rt : SQ_EO_RT_EO_TSTATE_RT_SIZE;
+ unsigned int : 8;
+ } sq_eo_rt_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_eo_rt_t {
+ unsigned int : 8;
+ unsigned int eo_tstate_rt : SQ_EO_RT_EO_TSTATE_RT_SIZE;
+ unsigned int : 8;
+ unsigned int eo_constants_rt : SQ_EO_RT_EO_CONSTANTS_RT_SIZE;
+ } sq_eo_rt_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_eo_rt_t f;
+} sq_eo_rt_u;
+
+
+/*
+ * SQ_DEBUG_MISC struct
+ */
+
+#define SQ_DEBUG_MISC_DB_ALUCST_SIZE_SIZE 11
+#define SQ_DEBUG_MISC_DB_TSTATE_SIZE_SIZE 8
+#define SQ_DEBUG_MISC_DB_READ_CTX_SIZE 1
+#define SQ_DEBUG_MISC_RESERVED_SIZE 2
+#define SQ_DEBUG_MISC_DB_READ_MEMORY_SIZE 2
+#define SQ_DEBUG_MISC_DB_WEN_MEMORY_0_SIZE 1
+#define SQ_DEBUG_MISC_DB_WEN_MEMORY_1_SIZE 1
+#define SQ_DEBUG_MISC_DB_WEN_MEMORY_2_SIZE 1
+#define SQ_DEBUG_MISC_DB_WEN_MEMORY_3_SIZE 1
+
+#define SQ_DEBUG_MISC_DB_ALUCST_SIZE_SHIFT 0
+#define SQ_DEBUG_MISC_DB_TSTATE_SIZE_SHIFT 12
+#define SQ_DEBUG_MISC_DB_READ_CTX_SHIFT 20
+#define SQ_DEBUG_MISC_RESERVED_SHIFT 21
+#define SQ_DEBUG_MISC_DB_READ_MEMORY_SHIFT 23
+#define SQ_DEBUG_MISC_DB_WEN_MEMORY_0_SHIFT 25
+#define SQ_DEBUG_MISC_DB_WEN_MEMORY_1_SHIFT 26
+#define SQ_DEBUG_MISC_DB_WEN_MEMORY_2_SHIFT 27
+#define SQ_DEBUG_MISC_DB_WEN_MEMORY_3_SHIFT 28
+
+#define SQ_DEBUG_MISC_DB_ALUCST_SIZE_MASK 0x000007ff
+#define SQ_DEBUG_MISC_DB_TSTATE_SIZE_MASK 0x000ff000
+#define SQ_DEBUG_MISC_DB_READ_CTX_MASK 0x00100000
+#define SQ_DEBUG_MISC_RESERVED_MASK 0x00600000
+#define SQ_DEBUG_MISC_DB_READ_MEMORY_MASK 0x01800000
+#define SQ_DEBUG_MISC_DB_WEN_MEMORY_0_MASK 0x02000000
+#define SQ_DEBUG_MISC_DB_WEN_MEMORY_1_MASK 0x04000000
+#define SQ_DEBUG_MISC_DB_WEN_MEMORY_2_MASK 0x08000000
+#define SQ_DEBUG_MISC_DB_WEN_MEMORY_3_MASK 0x10000000
+
+#define SQ_DEBUG_MISC_MASK \
+ (SQ_DEBUG_MISC_DB_ALUCST_SIZE_MASK | \
+ SQ_DEBUG_MISC_DB_TSTATE_SIZE_MASK | \
+ SQ_DEBUG_MISC_DB_READ_CTX_MASK | \
+ SQ_DEBUG_MISC_RESERVED_MASK | \
+ SQ_DEBUG_MISC_DB_READ_MEMORY_MASK | \
+ SQ_DEBUG_MISC_DB_WEN_MEMORY_0_MASK | \
+ SQ_DEBUG_MISC_DB_WEN_MEMORY_1_MASK | \
+ SQ_DEBUG_MISC_DB_WEN_MEMORY_2_MASK | \
+ SQ_DEBUG_MISC_DB_WEN_MEMORY_3_MASK)
+
+#define SQ_DEBUG_MISC(db_alucst_size, db_tstate_size, db_read_ctx, reserved, db_read_memory, db_wen_memory_0, db_wen_memory_1, db_wen_memory_2, db_wen_memory_3) \
+ ((db_alucst_size << SQ_DEBUG_MISC_DB_ALUCST_SIZE_SHIFT) | \
+ (db_tstate_size << SQ_DEBUG_MISC_DB_TSTATE_SIZE_SHIFT) | \
+ (db_read_ctx << SQ_DEBUG_MISC_DB_READ_CTX_SHIFT) | \
+ (reserved << SQ_DEBUG_MISC_RESERVED_SHIFT) | \
+ (db_read_memory << SQ_DEBUG_MISC_DB_READ_MEMORY_SHIFT) | \
+ (db_wen_memory_0 << SQ_DEBUG_MISC_DB_WEN_MEMORY_0_SHIFT) | \
+ (db_wen_memory_1 << SQ_DEBUG_MISC_DB_WEN_MEMORY_1_SHIFT) | \
+ (db_wen_memory_2 << SQ_DEBUG_MISC_DB_WEN_MEMORY_2_SHIFT) | \
+ (db_wen_memory_3 << SQ_DEBUG_MISC_DB_WEN_MEMORY_3_SHIFT))
+
+#define SQ_DEBUG_MISC_GET_DB_ALUCST_SIZE(sq_debug_misc) \
+ ((sq_debug_misc & SQ_DEBUG_MISC_DB_ALUCST_SIZE_MASK) >> SQ_DEBUG_MISC_DB_ALUCST_SIZE_SHIFT)
+#define SQ_DEBUG_MISC_GET_DB_TSTATE_SIZE(sq_debug_misc) \
+ ((sq_debug_misc & SQ_DEBUG_MISC_DB_TSTATE_SIZE_MASK) >> SQ_DEBUG_MISC_DB_TSTATE_SIZE_SHIFT)
+#define SQ_DEBUG_MISC_GET_DB_READ_CTX(sq_debug_misc) \
+ ((sq_debug_misc & SQ_DEBUG_MISC_DB_READ_CTX_MASK) >> SQ_DEBUG_MISC_DB_READ_CTX_SHIFT)
+#define SQ_DEBUG_MISC_GET_RESERVED(sq_debug_misc) \
+ ((sq_debug_misc & SQ_DEBUG_MISC_RESERVED_MASK) >> SQ_DEBUG_MISC_RESERVED_SHIFT)
+#define SQ_DEBUG_MISC_GET_DB_READ_MEMORY(sq_debug_misc) \
+ ((sq_debug_misc & SQ_DEBUG_MISC_DB_READ_MEMORY_MASK) >> SQ_DEBUG_MISC_DB_READ_MEMORY_SHIFT)
+#define SQ_DEBUG_MISC_GET_DB_WEN_MEMORY_0(sq_debug_misc) \
+ ((sq_debug_misc & SQ_DEBUG_MISC_DB_WEN_MEMORY_0_MASK) >> SQ_DEBUG_MISC_DB_WEN_MEMORY_0_SHIFT)
+#define SQ_DEBUG_MISC_GET_DB_WEN_MEMORY_1(sq_debug_misc) \
+ ((sq_debug_misc & SQ_DEBUG_MISC_DB_WEN_MEMORY_1_MASK) >> SQ_DEBUG_MISC_DB_WEN_MEMORY_1_SHIFT)
+#define SQ_DEBUG_MISC_GET_DB_WEN_MEMORY_2(sq_debug_misc) \
+ ((sq_debug_misc & SQ_DEBUG_MISC_DB_WEN_MEMORY_2_MASK) >> SQ_DEBUG_MISC_DB_WEN_MEMORY_2_SHIFT)
+#define SQ_DEBUG_MISC_GET_DB_WEN_MEMORY_3(sq_debug_misc) \
+ ((sq_debug_misc & SQ_DEBUG_MISC_DB_WEN_MEMORY_3_MASK) >> SQ_DEBUG_MISC_DB_WEN_MEMORY_3_SHIFT)
+
+#define SQ_DEBUG_MISC_SET_DB_ALUCST_SIZE(sq_debug_misc_reg, db_alucst_size) \
+ sq_debug_misc_reg = (sq_debug_misc_reg & ~SQ_DEBUG_MISC_DB_ALUCST_SIZE_MASK) | (db_alucst_size << SQ_DEBUG_MISC_DB_ALUCST_SIZE_SHIFT)
+#define SQ_DEBUG_MISC_SET_DB_TSTATE_SIZE(sq_debug_misc_reg, db_tstate_size) \
+ sq_debug_misc_reg = (sq_debug_misc_reg & ~SQ_DEBUG_MISC_DB_TSTATE_SIZE_MASK) | (db_tstate_size << SQ_DEBUG_MISC_DB_TSTATE_SIZE_SHIFT)
+#define SQ_DEBUG_MISC_SET_DB_READ_CTX(sq_debug_misc_reg, db_read_ctx) \
+ sq_debug_misc_reg = (sq_debug_misc_reg & ~SQ_DEBUG_MISC_DB_READ_CTX_MASK) | (db_read_ctx << SQ_DEBUG_MISC_DB_READ_CTX_SHIFT)
+#define SQ_DEBUG_MISC_SET_RESERVED(sq_debug_misc_reg, reserved) \
+ sq_debug_misc_reg = (sq_debug_misc_reg & ~SQ_DEBUG_MISC_RESERVED_MASK) | (reserved << SQ_DEBUG_MISC_RESERVED_SHIFT)
+#define SQ_DEBUG_MISC_SET_DB_READ_MEMORY(sq_debug_misc_reg, db_read_memory) \
+ sq_debug_misc_reg = (sq_debug_misc_reg & ~SQ_DEBUG_MISC_DB_READ_MEMORY_MASK) | (db_read_memory << SQ_DEBUG_MISC_DB_READ_MEMORY_SHIFT)
+#define SQ_DEBUG_MISC_SET_DB_WEN_MEMORY_0(sq_debug_misc_reg, db_wen_memory_0) \
+ sq_debug_misc_reg = (sq_debug_misc_reg & ~SQ_DEBUG_MISC_DB_WEN_MEMORY_0_MASK) | (db_wen_memory_0 << SQ_DEBUG_MISC_DB_WEN_MEMORY_0_SHIFT)
+#define SQ_DEBUG_MISC_SET_DB_WEN_MEMORY_1(sq_debug_misc_reg, db_wen_memory_1) \
+ sq_debug_misc_reg = (sq_debug_misc_reg & ~SQ_DEBUG_MISC_DB_WEN_MEMORY_1_MASK) | (db_wen_memory_1 << SQ_DEBUG_MISC_DB_WEN_MEMORY_1_SHIFT)
+#define SQ_DEBUG_MISC_SET_DB_WEN_MEMORY_2(sq_debug_misc_reg, db_wen_memory_2) \
+ sq_debug_misc_reg = (sq_debug_misc_reg & ~SQ_DEBUG_MISC_DB_WEN_MEMORY_2_MASK) | (db_wen_memory_2 << SQ_DEBUG_MISC_DB_WEN_MEMORY_2_SHIFT)
+#define SQ_DEBUG_MISC_SET_DB_WEN_MEMORY_3(sq_debug_misc_reg, db_wen_memory_3) \
+ sq_debug_misc_reg = (sq_debug_misc_reg & ~SQ_DEBUG_MISC_DB_WEN_MEMORY_3_MASK) | (db_wen_memory_3 << SQ_DEBUG_MISC_DB_WEN_MEMORY_3_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_misc_t {
+ unsigned int db_alucst_size : SQ_DEBUG_MISC_DB_ALUCST_SIZE_SIZE;
+ unsigned int : 1;
+ unsigned int db_tstate_size : SQ_DEBUG_MISC_DB_TSTATE_SIZE_SIZE;
+ unsigned int db_read_ctx : SQ_DEBUG_MISC_DB_READ_CTX_SIZE;
+ unsigned int reserved : SQ_DEBUG_MISC_RESERVED_SIZE;
+ unsigned int db_read_memory : SQ_DEBUG_MISC_DB_READ_MEMORY_SIZE;
+ unsigned int db_wen_memory_0 : SQ_DEBUG_MISC_DB_WEN_MEMORY_0_SIZE;
+ unsigned int db_wen_memory_1 : SQ_DEBUG_MISC_DB_WEN_MEMORY_1_SIZE;
+ unsigned int db_wen_memory_2 : SQ_DEBUG_MISC_DB_WEN_MEMORY_2_SIZE;
+ unsigned int db_wen_memory_3 : SQ_DEBUG_MISC_DB_WEN_MEMORY_3_SIZE;
+ unsigned int : 3;
+ } sq_debug_misc_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_misc_t {
+ unsigned int : 3;
+ unsigned int db_wen_memory_3 : SQ_DEBUG_MISC_DB_WEN_MEMORY_3_SIZE;
+ unsigned int db_wen_memory_2 : SQ_DEBUG_MISC_DB_WEN_MEMORY_2_SIZE;
+ unsigned int db_wen_memory_1 : SQ_DEBUG_MISC_DB_WEN_MEMORY_1_SIZE;
+ unsigned int db_wen_memory_0 : SQ_DEBUG_MISC_DB_WEN_MEMORY_0_SIZE;
+ unsigned int db_read_memory : SQ_DEBUG_MISC_DB_READ_MEMORY_SIZE;
+ unsigned int reserved : SQ_DEBUG_MISC_RESERVED_SIZE;
+ unsigned int db_read_ctx : SQ_DEBUG_MISC_DB_READ_CTX_SIZE;
+ unsigned int db_tstate_size : SQ_DEBUG_MISC_DB_TSTATE_SIZE_SIZE;
+ unsigned int : 1;
+ unsigned int db_alucst_size : SQ_DEBUG_MISC_DB_ALUCST_SIZE_SIZE;
+ } sq_debug_misc_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_misc_t f;
+} sq_debug_misc_u;
+
+
+/*
+ * SQ_ACTIVITY_METER_CNTL struct
+ */
+
+#define SQ_ACTIVITY_METER_CNTL_TIMEBASE_SIZE 8
+#define SQ_ACTIVITY_METER_CNTL_THRESHOLD_LOW_SIZE 8
+#define SQ_ACTIVITY_METER_CNTL_THRESHOLD_HIGH_SIZE 8
+#define SQ_ACTIVITY_METER_CNTL_SPARE_SIZE 8
+
+#define SQ_ACTIVITY_METER_CNTL_TIMEBASE_SHIFT 0
+#define SQ_ACTIVITY_METER_CNTL_THRESHOLD_LOW_SHIFT 8
+#define SQ_ACTIVITY_METER_CNTL_THRESHOLD_HIGH_SHIFT 16
+#define SQ_ACTIVITY_METER_CNTL_SPARE_SHIFT 24
+
+#define SQ_ACTIVITY_METER_CNTL_TIMEBASE_MASK 0x000000ff
+#define SQ_ACTIVITY_METER_CNTL_THRESHOLD_LOW_MASK 0x0000ff00
+#define SQ_ACTIVITY_METER_CNTL_THRESHOLD_HIGH_MASK 0x00ff0000
+#define SQ_ACTIVITY_METER_CNTL_SPARE_MASK 0xff000000
+
+#define SQ_ACTIVITY_METER_CNTL_MASK \
+ (SQ_ACTIVITY_METER_CNTL_TIMEBASE_MASK | \
+ SQ_ACTIVITY_METER_CNTL_THRESHOLD_LOW_MASK | \
+ SQ_ACTIVITY_METER_CNTL_THRESHOLD_HIGH_MASK | \
+ SQ_ACTIVITY_METER_CNTL_SPARE_MASK)
+
+#define SQ_ACTIVITY_METER_CNTL(timebase, threshold_low, threshold_high, spare) \
+ ((timebase << SQ_ACTIVITY_METER_CNTL_TIMEBASE_SHIFT) | \
+ (threshold_low << SQ_ACTIVITY_METER_CNTL_THRESHOLD_LOW_SHIFT) | \
+ (threshold_high << SQ_ACTIVITY_METER_CNTL_THRESHOLD_HIGH_SHIFT) | \
+ (spare << SQ_ACTIVITY_METER_CNTL_SPARE_SHIFT))
+
+#define SQ_ACTIVITY_METER_CNTL_GET_TIMEBASE(sq_activity_meter_cntl) \
+ ((sq_activity_meter_cntl & SQ_ACTIVITY_METER_CNTL_TIMEBASE_MASK) >> SQ_ACTIVITY_METER_CNTL_TIMEBASE_SHIFT)
+#define SQ_ACTIVITY_METER_CNTL_GET_THRESHOLD_LOW(sq_activity_meter_cntl) \
+ ((sq_activity_meter_cntl & SQ_ACTIVITY_METER_CNTL_THRESHOLD_LOW_MASK) >> SQ_ACTIVITY_METER_CNTL_THRESHOLD_LOW_SHIFT)
+#define SQ_ACTIVITY_METER_CNTL_GET_THRESHOLD_HIGH(sq_activity_meter_cntl) \
+ ((sq_activity_meter_cntl & SQ_ACTIVITY_METER_CNTL_THRESHOLD_HIGH_MASK) >> SQ_ACTIVITY_METER_CNTL_THRESHOLD_HIGH_SHIFT)
+#define SQ_ACTIVITY_METER_CNTL_GET_SPARE(sq_activity_meter_cntl) \
+ ((sq_activity_meter_cntl & SQ_ACTIVITY_METER_CNTL_SPARE_MASK) >> SQ_ACTIVITY_METER_CNTL_SPARE_SHIFT)
+
+#define SQ_ACTIVITY_METER_CNTL_SET_TIMEBASE(sq_activity_meter_cntl_reg, timebase) \
+ sq_activity_meter_cntl_reg = (sq_activity_meter_cntl_reg & ~SQ_ACTIVITY_METER_CNTL_TIMEBASE_MASK) | (timebase << SQ_ACTIVITY_METER_CNTL_TIMEBASE_SHIFT)
+#define SQ_ACTIVITY_METER_CNTL_SET_THRESHOLD_LOW(sq_activity_meter_cntl_reg, threshold_low) \
+ sq_activity_meter_cntl_reg = (sq_activity_meter_cntl_reg & ~SQ_ACTIVITY_METER_CNTL_THRESHOLD_LOW_MASK) | (threshold_low << SQ_ACTIVITY_METER_CNTL_THRESHOLD_LOW_SHIFT)
+#define SQ_ACTIVITY_METER_CNTL_SET_THRESHOLD_HIGH(sq_activity_meter_cntl_reg, threshold_high) \
+ sq_activity_meter_cntl_reg = (sq_activity_meter_cntl_reg & ~SQ_ACTIVITY_METER_CNTL_THRESHOLD_HIGH_MASK) | (threshold_high << SQ_ACTIVITY_METER_CNTL_THRESHOLD_HIGH_SHIFT)
+#define SQ_ACTIVITY_METER_CNTL_SET_SPARE(sq_activity_meter_cntl_reg, spare) \
+ sq_activity_meter_cntl_reg = (sq_activity_meter_cntl_reg & ~SQ_ACTIVITY_METER_CNTL_SPARE_MASK) | (spare << SQ_ACTIVITY_METER_CNTL_SPARE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_activity_meter_cntl_t {
+ unsigned int timebase : SQ_ACTIVITY_METER_CNTL_TIMEBASE_SIZE;
+ unsigned int threshold_low : SQ_ACTIVITY_METER_CNTL_THRESHOLD_LOW_SIZE;
+ unsigned int threshold_high : SQ_ACTIVITY_METER_CNTL_THRESHOLD_HIGH_SIZE;
+ unsigned int spare : SQ_ACTIVITY_METER_CNTL_SPARE_SIZE;
+ } sq_activity_meter_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_activity_meter_cntl_t {
+ unsigned int spare : SQ_ACTIVITY_METER_CNTL_SPARE_SIZE;
+ unsigned int threshold_high : SQ_ACTIVITY_METER_CNTL_THRESHOLD_HIGH_SIZE;
+ unsigned int threshold_low : SQ_ACTIVITY_METER_CNTL_THRESHOLD_LOW_SIZE;
+ unsigned int timebase : SQ_ACTIVITY_METER_CNTL_TIMEBASE_SIZE;
+ } sq_activity_meter_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_activity_meter_cntl_t f;
+} sq_activity_meter_cntl_u;
+
+
+/*
+ * SQ_ACTIVITY_METER_STATUS struct
+ */
+
+#define SQ_ACTIVITY_METER_STATUS_PERCENT_BUSY_SIZE 8
+
+#define SQ_ACTIVITY_METER_STATUS_PERCENT_BUSY_SHIFT 0
+
+#define SQ_ACTIVITY_METER_STATUS_PERCENT_BUSY_MASK 0x000000ff
+
+#define SQ_ACTIVITY_METER_STATUS_MASK \
+ (SQ_ACTIVITY_METER_STATUS_PERCENT_BUSY_MASK)
+
+#define SQ_ACTIVITY_METER_STATUS(percent_busy) \
+ ((percent_busy << SQ_ACTIVITY_METER_STATUS_PERCENT_BUSY_SHIFT))
+
+#define SQ_ACTIVITY_METER_STATUS_GET_PERCENT_BUSY(sq_activity_meter_status) \
+ ((sq_activity_meter_status & SQ_ACTIVITY_METER_STATUS_PERCENT_BUSY_MASK) >> SQ_ACTIVITY_METER_STATUS_PERCENT_BUSY_SHIFT)
+
+#define SQ_ACTIVITY_METER_STATUS_SET_PERCENT_BUSY(sq_activity_meter_status_reg, percent_busy) \
+ sq_activity_meter_status_reg = (sq_activity_meter_status_reg & ~SQ_ACTIVITY_METER_STATUS_PERCENT_BUSY_MASK) | (percent_busy << SQ_ACTIVITY_METER_STATUS_PERCENT_BUSY_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_activity_meter_status_t {
+ unsigned int percent_busy : SQ_ACTIVITY_METER_STATUS_PERCENT_BUSY_SIZE;
+ unsigned int : 24;
+ } sq_activity_meter_status_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_activity_meter_status_t {
+ unsigned int : 24;
+ unsigned int percent_busy : SQ_ACTIVITY_METER_STATUS_PERCENT_BUSY_SIZE;
+ } sq_activity_meter_status_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_activity_meter_status_t f;
+} sq_activity_meter_status_u;
+
+
+/*
+ * SQ_INPUT_ARB_PRIORITY struct
+ */
+
+#define SQ_INPUT_ARB_PRIORITY_PC_AVAIL_WEIGHT_SIZE 3
+#define SQ_INPUT_ARB_PRIORITY_PC_AVAIL_SIGN_SIZE 1
+#define SQ_INPUT_ARB_PRIORITY_SX_AVAIL_WEIGHT_SIZE 3
+#define SQ_INPUT_ARB_PRIORITY_SX_AVAIL_SIGN_SIZE 1
+#define SQ_INPUT_ARB_PRIORITY_THRESHOLD_SIZE 10
+
+#define SQ_INPUT_ARB_PRIORITY_PC_AVAIL_WEIGHT_SHIFT 0
+#define SQ_INPUT_ARB_PRIORITY_PC_AVAIL_SIGN_SHIFT 3
+#define SQ_INPUT_ARB_PRIORITY_SX_AVAIL_WEIGHT_SHIFT 4
+#define SQ_INPUT_ARB_PRIORITY_SX_AVAIL_SIGN_SHIFT 7
+#define SQ_INPUT_ARB_PRIORITY_THRESHOLD_SHIFT 8
+
+#define SQ_INPUT_ARB_PRIORITY_PC_AVAIL_WEIGHT_MASK 0x00000007
+#define SQ_INPUT_ARB_PRIORITY_PC_AVAIL_SIGN_MASK 0x00000008
+#define SQ_INPUT_ARB_PRIORITY_SX_AVAIL_WEIGHT_MASK 0x00000070
+#define SQ_INPUT_ARB_PRIORITY_SX_AVAIL_SIGN_MASK 0x00000080
+#define SQ_INPUT_ARB_PRIORITY_THRESHOLD_MASK 0x0003ff00
+
+#define SQ_INPUT_ARB_PRIORITY_MASK \
+ (SQ_INPUT_ARB_PRIORITY_PC_AVAIL_WEIGHT_MASK | \
+ SQ_INPUT_ARB_PRIORITY_PC_AVAIL_SIGN_MASK | \
+ SQ_INPUT_ARB_PRIORITY_SX_AVAIL_WEIGHT_MASK | \
+ SQ_INPUT_ARB_PRIORITY_SX_AVAIL_SIGN_MASK | \
+ SQ_INPUT_ARB_PRIORITY_THRESHOLD_MASK)
+
+#define SQ_INPUT_ARB_PRIORITY(pc_avail_weight, pc_avail_sign, sx_avail_weight, sx_avail_sign, threshold) \
+ ((pc_avail_weight << SQ_INPUT_ARB_PRIORITY_PC_AVAIL_WEIGHT_SHIFT) | \
+ (pc_avail_sign << SQ_INPUT_ARB_PRIORITY_PC_AVAIL_SIGN_SHIFT) | \
+ (sx_avail_weight << SQ_INPUT_ARB_PRIORITY_SX_AVAIL_WEIGHT_SHIFT) | \
+ (sx_avail_sign << SQ_INPUT_ARB_PRIORITY_SX_AVAIL_SIGN_SHIFT) | \
+ (threshold << SQ_INPUT_ARB_PRIORITY_THRESHOLD_SHIFT))
+
+#define SQ_INPUT_ARB_PRIORITY_GET_PC_AVAIL_WEIGHT(sq_input_arb_priority) \
+ ((sq_input_arb_priority & SQ_INPUT_ARB_PRIORITY_PC_AVAIL_WEIGHT_MASK) >> SQ_INPUT_ARB_PRIORITY_PC_AVAIL_WEIGHT_SHIFT)
+#define SQ_INPUT_ARB_PRIORITY_GET_PC_AVAIL_SIGN(sq_input_arb_priority) \
+ ((sq_input_arb_priority & SQ_INPUT_ARB_PRIORITY_PC_AVAIL_SIGN_MASK) >> SQ_INPUT_ARB_PRIORITY_PC_AVAIL_SIGN_SHIFT)
+#define SQ_INPUT_ARB_PRIORITY_GET_SX_AVAIL_WEIGHT(sq_input_arb_priority) \
+ ((sq_input_arb_priority & SQ_INPUT_ARB_PRIORITY_SX_AVAIL_WEIGHT_MASK) >> SQ_INPUT_ARB_PRIORITY_SX_AVAIL_WEIGHT_SHIFT)
+#define SQ_INPUT_ARB_PRIORITY_GET_SX_AVAIL_SIGN(sq_input_arb_priority) \
+ ((sq_input_arb_priority & SQ_INPUT_ARB_PRIORITY_SX_AVAIL_SIGN_MASK) >> SQ_INPUT_ARB_PRIORITY_SX_AVAIL_SIGN_SHIFT)
+#define SQ_INPUT_ARB_PRIORITY_GET_THRESHOLD(sq_input_arb_priority) \
+ ((sq_input_arb_priority & SQ_INPUT_ARB_PRIORITY_THRESHOLD_MASK) >> SQ_INPUT_ARB_PRIORITY_THRESHOLD_SHIFT)
+
+#define SQ_INPUT_ARB_PRIORITY_SET_PC_AVAIL_WEIGHT(sq_input_arb_priority_reg, pc_avail_weight) \
+ sq_input_arb_priority_reg = (sq_input_arb_priority_reg & ~SQ_INPUT_ARB_PRIORITY_PC_AVAIL_WEIGHT_MASK) | (pc_avail_weight << SQ_INPUT_ARB_PRIORITY_PC_AVAIL_WEIGHT_SHIFT)
+#define SQ_INPUT_ARB_PRIORITY_SET_PC_AVAIL_SIGN(sq_input_arb_priority_reg, pc_avail_sign) \
+ sq_input_arb_priority_reg = (sq_input_arb_priority_reg & ~SQ_INPUT_ARB_PRIORITY_PC_AVAIL_SIGN_MASK) | (pc_avail_sign << SQ_INPUT_ARB_PRIORITY_PC_AVAIL_SIGN_SHIFT)
+#define SQ_INPUT_ARB_PRIORITY_SET_SX_AVAIL_WEIGHT(sq_input_arb_priority_reg, sx_avail_weight) \
+ sq_input_arb_priority_reg = (sq_input_arb_priority_reg & ~SQ_INPUT_ARB_PRIORITY_SX_AVAIL_WEIGHT_MASK) | (sx_avail_weight << SQ_INPUT_ARB_PRIORITY_SX_AVAIL_WEIGHT_SHIFT)
+#define SQ_INPUT_ARB_PRIORITY_SET_SX_AVAIL_SIGN(sq_input_arb_priority_reg, sx_avail_sign) \
+ sq_input_arb_priority_reg = (sq_input_arb_priority_reg & ~SQ_INPUT_ARB_PRIORITY_SX_AVAIL_SIGN_MASK) | (sx_avail_sign << SQ_INPUT_ARB_PRIORITY_SX_AVAIL_SIGN_SHIFT)
+#define SQ_INPUT_ARB_PRIORITY_SET_THRESHOLD(sq_input_arb_priority_reg, threshold) \
+ sq_input_arb_priority_reg = (sq_input_arb_priority_reg & ~SQ_INPUT_ARB_PRIORITY_THRESHOLD_MASK) | (threshold << SQ_INPUT_ARB_PRIORITY_THRESHOLD_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_input_arb_priority_t {
+ unsigned int pc_avail_weight : SQ_INPUT_ARB_PRIORITY_PC_AVAIL_WEIGHT_SIZE;
+ unsigned int pc_avail_sign : SQ_INPUT_ARB_PRIORITY_PC_AVAIL_SIGN_SIZE;
+ unsigned int sx_avail_weight : SQ_INPUT_ARB_PRIORITY_SX_AVAIL_WEIGHT_SIZE;
+ unsigned int sx_avail_sign : SQ_INPUT_ARB_PRIORITY_SX_AVAIL_SIGN_SIZE;
+ unsigned int threshold : SQ_INPUT_ARB_PRIORITY_THRESHOLD_SIZE;
+ unsigned int : 14;
+ } sq_input_arb_priority_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_input_arb_priority_t {
+ unsigned int : 14;
+ unsigned int threshold : SQ_INPUT_ARB_PRIORITY_THRESHOLD_SIZE;
+ unsigned int sx_avail_sign : SQ_INPUT_ARB_PRIORITY_SX_AVAIL_SIGN_SIZE;
+ unsigned int sx_avail_weight : SQ_INPUT_ARB_PRIORITY_SX_AVAIL_WEIGHT_SIZE;
+ unsigned int pc_avail_sign : SQ_INPUT_ARB_PRIORITY_PC_AVAIL_SIGN_SIZE;
+ unsigned int pc_avail_weight : SQ_INPUT_ARB_PRIORITY_PC_AVAIL_WEIGHT_SIZE;
+ } sq_input_arb_priority_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_input_arb_priority_t f;
+} sq_input_arb_priority_u;
+
+
+/*
+ * SQ_THREAD_ARB_PRIORITY struct
+ */
+
+#define SQ_THREAD_ARB_PRIORITY_PC_AVAIL_WEIGHT_SIZE 3
+#define SQ_THREAD_ARB_PRIORITY_PC_AVAIL_SIGN_SIZE 1
+#define SQ_THREAD_ARB_PRIORITY_SX_AVAIL_WEIGHT_SIZE 3
+#define SQ_THREAD_ARB_PRIORITY_SX_AVAIL_SIGN_SIZE 1
+#define SQ_THREAD_ARB_PRIORITY_THRESHOLD_SIZE 10
+#define SQ_THREAD_ARB_PRIORITY_RESERVED_SIZE 2
+#define SQ_THREAD_ARB_PRIORITY_VS_PRIORITIZE_SERIAL_SIZE 1
+#define SQ_THREAD_ARB_PRIORITY_PS_PRIORITIZE_SERIAL_SIZE 1
+#define SQ_THREAD_ARB_PRIORITY_USE_SERIAL_COUNT_THRESHOLD_SIZE 1
+
+#define SQ_THREAD_ARB_PRIORITY_PC_AVAIL_WEIGHT_SHIFT 0
+#define SQ_THREAD_ARB_PRIORITY_PC_AVAIL_SIGN_SHIFT 3
+#define SQ_THREAD_ARB_PRIORITY_SX_AVAIL_WEIGHT_SHIFT 4
+#define SQ_THREAD_ARB_PRIORITY_SX_AVAIL_SIGN_SHIFT 7
+#define SQ_THREAD_ARB_PRIORITY_THRESHOLD_SHIFT 8
+#define SQ_THREAD_ARB_PRIORITY_RESERVED_SHIFT 18
+#define SQ_THREAD_ARB_PRIORITY_VS_PRIORITIZE_SERIAL_SHIFT 20
+#define SQ_THREAD_ARB_PRIORITY_PS_PRIORITIZE_SERIAL_SHIFT 21
+#define SQ_THREAD_ARB_PRIORITY_USE_SERIAL_COUNT_THRESHOLD_SHIFT 22
+
+#define SQ_THREAD_ARB_PRIORITY_PC_AVAIL_WEIGHT_MASK 0x00000007
+#define SQ_THREAD_ARB_PRIORITY_PC_AVAIL_SIGN_MASK 0x00000008
+#define SQ_THREAD_ARB_PRIORITY_SX_AVAIL_WEIGHT_MASK 0x00000070
+#define SQ_THREAD_ARB_PRIORITY_SX_AVAIL_SIGN_MASK 0x00000080
+#define SQ_THREAD_ARB_PRIORITY_THRESHOLD_MASK 0x0003ff00
+#define SQ_THREAD_ARB_PRIORITY_RESERVED_MASK 0x000c0000
+#define SQ_THREAD_ARB_PRIORITY_VS_PRIORITIZE_SERIAL_MASK 0x00100000
+#define SQ_THREAD_ARB_PRIORITY_PS_PRIORITIZE_SERIAL_MASK 0x00200000
+#define SQ_THREAD_ARB_PRIORITY_USE_SERIAL_COUNT_THRESHOLD_MASK 0x00400000
+
+#define SQ_THREAD_ARB_PRIORITY_MASK \
+ (SQ_THREAD_ARB_PRIORITY_PC_AVAIL_WEIGHT_MASK | \
+ SQ_THREAD_ARB_PRIORITY_PC_AVAIL_SIGN_MASK | \
+ SQ_THREAD_ARB_PRIORITY_SX_AVAIL_WEIGHT_MASK | \
+ SQ_THREAD_ARB_PRIORITY_SX_AVAIL_SIGN_MASK | \
+ SQ_THREAD_ARB_PRIORITY_THRESHOLD_MASK | \
+ SQ_THREAD_ARB_PRIORITY_RESERVED_MASK | \
+ SQ_THREAD_ARB_PRIORITY_VS_PRIORITIZE_SERIAL_MASK | \
+ SQ_THREAD_ARB_PRIORITY_PS_PRIORITIZE_SERIAL_MASK | \
+ SQ_THREAD_ARB_PRIORITY_USE_SERIAL_COUNT_THRESHOLD_MASK)
+
+#define SQ_THREAD_ARB_PRIORITY(pc_avail_weight, pc_avail_sign, sx_avail_weight, sx_avail_sign, threshold, reserved, vs_prioritize_serial, ps_prioritize_serial, use_serial_count_threshold) \
+ ((pc_avail_weight << SQ_THREAD_ARB_PRIORITY_PC_AVAIL_WEIGHT_SHIFT) | \
+ (pc_avail_sign << SQ_THREAD_ARB_PRIORITY_PC_AVAIL_SIGN_SHIFT) | \
+ (sx_avail_weight << SQ_THREAD_ARB_PRIORITY_SX_AVAIL_WEIGHT_SHIFT) | \
+ (sx_avail_sign << SQ_THREAD_ARB_PRIORITY_SX_AVAIL_SIGN_SHIFT) | \
+ (threshold << SQ_THREAD_ARB_PRIORITY_THRESHOLD_SHIFT) | \
+ (reserved << SQ_THREAD_ARB_PRIORITY_RESERVED_SHIFT) | \
+ (vs_prioritize_serial << SQ_THREAD_ARB_PRIORITY_VS_PRIORITIZE_SERIAL_SHIFT) | \
+ (ps_prioritize_serial << SQ_THREAD_ARB_PRIORITY_PS_PRIORITIZE_SERIAL_SHIFT) | \
+ (use_serial_count_threshold << SQ_THREAD_ARB_PRIORITY_USE_SERIAL_COUNT_THRESHOLD_SHIFT))
+
+#define SQ_THREAD_ARB_PRIORITY_GET_PC_AVAIL_WEIGHT(sq_thread_arb_priority) \
+ ((sq_thread_arb_priority & SQ_THREAD_ARB_PRIORITY_PC_AVAIL_WEIGHT_MASK) >> SQ_THREAD_ARB_PRIORITY_PC_AVAIL_WEIGHT_SHIFT)
+#define SQ_THREAD_ARB_PRIORITY_GET_PC_AVAIL_SIGN(sq_thread_arb_priority) \
+ ((sq_thread_arb_priority & SQ_THREAD_ARB_PRIORITY_PC_AVAIL_SIGN_MASK) >> SQ_THREAD_ARB_PRIORITY_PC_AVAIL_SIGN_SHIFT)
+#define SQ_THREAD_ARB_PRIORITY_GET_SX_AVAIL_WEIGHT(sq_thread_arb_priority) \
+ ((sq_thread_arb_priority & SQ_THREAD_ARB_PRIORITY_SX_AVAIL_WEIGHT_MASK) >> SQ_THREAD_ARB_PRIORITY_SX_AVAIL_WEIGHT_SHIFT)
+#define SQ_THREAD_ARB_PRIORITY_GET_SX_AVAIL_SIGN(sq_thread_arb_priority) \
+ ((sq_thread_arb_priority & SQ_THREAD_ARB_PRIORITY_SX_AVAIL_SIGN_MASK) >> SQ_THREAD_ARB_PRIORITY_SX_AVAIL_SIGN_SHIFT)
+#define SQ_THREAD_ARB_PRIORITY_GET_THRESHOLD(sq_thread_arb_priority) \
+ ((sq_thread_arb_priority & SQ_THREAD_ARB_PRIORITY_THRESHOLD_MASK) >> SQ_THREAD_ARB_PRIORITY_THRESHOLD_SHIFT)
+#define SQ_THREAD_ARB_PRIORITY_GET_RESERVED(sq_thread_arb_priority) \
+ ((sq_thread_arb_priority & SQ_THREAD_ARB_PRIORITY_RESERVED_MASK) >> SQ_THREAD_ARB_PRIORITY_RESERVED_SHIFT)
+#define SQ_THREAD_ARB_PRIORITY_GET_VS_PRIORITIZE_SERIAL(sq_thread_arb_priority) \
+ ((sq_thread_arb_priority & SQ_THREAD_ARB_PRIORITY_VS_PRIORITIZE_SERIAL_MASK) >> SQ_THREAD_ARB_PRIORITY_VS_PRIORITIZE_SERIAL_SHIFT)
+#define SQ_THREAD_ARB_PRIORITY_GET_PS_PRIORITIZE_SERIAL(sq_thread_arb_priority) \
+ ((sq_thread_arb_priority & SQ_THREAD_ARB_PRIORITY_PS_PRIORITIZE_SERIAL_MASK) >> SQ_THREAD_ARB_PRIORITY_PS_PRIORITIZE_SERIAL_SHIFT)
+#define SQ_THREAD_ARB_PRIORITY_GET_USE_SERIAL_COUNT_THRESHOLD(sq_thread_arb_priority) \
+ ((sq_thread_arb_priority & SQ_THREAD_ARB_PRIORITY_USE_SERIAL_COUNT_THRESHOLD_MASK) >> SQ_THREAD_ARB_PRIORITY_USE_SERIAL_COUNT_THRESHOLD_SHIFT)
+
+#define SQ_THREAD_ARB_PRIORITY_SET_PC_AVAIL_WEIGHT(sq_thread_arb_priority_reg, pc_avail_weight) \
+ sq_thread_arb_priority_reg = (sq_thread_arb_priority_reg & ~SQ_THREAD_ARB_PRIORITY_PC_AVAIL_WEIGHT_MASK) | (pc_avail_weight << SQ_THREAD_ARB_PRIORITY_PC_AVAIL_WEIGHT_SHIFT)
+#define SQ_THREAD_ARB_PRIORITY_SET_PC_AVAIL_SIGN(sq_thread_arb_priority_reg, pc_avail_sign) \
+ sq_thread_arb_priority_reg = (sq_thread_arb_priority_reg & ~SQ_THREAD_ARB_PRIORITY_PC_AVAIL_SIGN_MASK) | (pc_avail_sign << SQ_THREAD_ARB_PRIORITY_PC_AVAIL_SIGN_SHIFT)
+#define SQ_THREAD_ARB_PRIORITY_SET_SX_AVAIL_WEIGHT(sq_thread_arb_priority_reg, sx_avail_weight) \
+ sq_thread_arb_priority_reg = (sq_thread_arb_priority_reg & ~SQ_THREAD_ARB_PRIORITY_SX_AVAIL_WEIGHT_MASK) | (sx_avail_weight << SQ_THREAD_ARB_PRIORITY_SX_AVAIL_WEIGHT_SHIFT)
+#define SQ_THREAD_ARB_PRIORITY_SET_SX_AVAIL_SIGN(sq_thread_arb_priority_reg, sx_avail_sign) \
+ sq_thread_arb_priority_reg = (sq_thread_arb_priority_reg & ~SQ_THREAD_ARB_PRIORITY_SX_AVAIL_SIGN_MASK) | (sx_avail_sign << SQ_THREAD_ARB_PRIORITY_SX_AVAIL_SIGN_SHIFT)
+#define SQ_THREAD_ARB_PRIORITY_SET_THRESHOLD(sq_thread_arb_priority_reg, threshold) \
+ sq_thread_arb_priority_reg = (sq_thread_arb_priority_reg & ~SQ_THREAD_ARB_PRIORITY_THRESHOLD_MASK) | (threshold << SQ_THREAD_ARB_PRIORITY_THRESHOLD_SHIFT)
+#define SQ_THREAD_ARB_PRIORITY_SET_RESERVED(sq_thread_arb_priority_reg, reserved) \
+ sq_thread_arb_priority_reg = (sq_thread_arb_priority_reg & ~SQ_THREAD_ARB_PRIORITY_RESERVED_MASK) | (reserved << SQ_THREAD_ARB_PRIORITY_RESERVED_SHIFT)
+#define SQ_THREAD_ARB_PRIORITY_SET_VS_PRIORITIZE_SERIAL(sq_thread_arb_priority_reg, vs_prioritize_serial) \
+ sq_thread_arb_priority_reg = (sq_thread_arb_priority_reg & ~SQ_THREAD_ARB_PRIORITY_VS_PRIORITIZE_SERIAL_MASK) | (vs_prioritize_serial << SQ_THREAD_ARB_PRIORITY_VS_PRIORITIZE_SERIAL_SHIFT)
+#define SQ_THREAD_ARB_PRIORITY_SET_PS_PRIORITIZE_SERIAL(sq_thread_arb_priority_reg, ps_prioritize_serial) \
+ sq_thread_arb_priority_reg = (sq_thread_arb_priority_reg & ~SQ_THREAD_ARB_PRIORITY_PS_PRIORITIZE_SERIAL_MASK) | (ps_prioritize_serial << SQ_THREAD_ARB_PRIORITY_PS_PRIORITIZE_SERIAL_SHIFT)
+#define SQ_THREAD_ARB_PRIORITY_SET_USE_SERIAL_COUNT_THRESHOLD(sq_thread_arb_priority_reg, use_serial_count_threshold) \
+ sq_thread_arb_priority_reg = (sq_thread_arb_priority_reg & ~SQ_THREAD_ARB_PRIORITY_USE_SERIAL_COUNT_THRESHOLD_MASK) | (use_serial_count_threshold << SQ_THREAD_ARB_PRIORITY_USE_SERIAL_COUNT_THRESHOLD_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_thread_arb_priority_t {
+ unsigned int pc_avail_weight : SQ_THREAD_ARB_PRIORITY_PC_AVAIL_WEIGHT_SIZE;
+ unsigned int pc_avail_sign : SQ_THREAD_ARB_PRIORITY_PC_AVAIL_SIGN_SIZE;
+ unsigned int sx_avail_weight : SQ_THREAD_ARB_PRIORITY_SX_AVAIL_WEIGHT_SIZE;
+ unsigned int sx_avail_sign : SQ_THREAD_ARB_PRIORITY_SX_AVAIL_SIGN_SIZE;
+ unsigned int threshold : SQ_THREAD_ARB_PRIORITY_THRESHOLD_SIZE;
+ unsigned int reserved : SQ_THREAD_ARB_PRIORITY_RESERVED_SIZE;
+ unsigned int vs_prioritize_serial : SQ_THREAD_ARB_PRIORITY_VS_PRIORITIZE_SERIAL_SIZE;
+ unsigned int ps_prioritize_serial : SQ_THREAD_ARB_PRIORITY_PS_PRIORITIZE_SERIAL_SIZE;
+ unsigned int use_serial_count_threshold : SQ_THREAD_ARB_PRIORITY_USE_SERIAL_COUNT_THRESHOLD_SIZE;
+ unsigned int : 9;
+ } sq_thread_arb_priority_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_thread_arb_priority_t {
+ unsigned int : 9;
+ unsigned int use_serial_count_threshold : SQ_THREAD_ARB_PRIORITY_USE_SERIAL_COUNT_THRESHOLD_SIZE;
+ unsigned int ps_prioritize_serial : SQ_THREAD_ARB_PRIORITY_PS_PRIORITIZE_SERIAL_SIZE;
+ unsigned int vs_prioritize_serial : SQ_THREAD_ARB_PRIORITY_VS_PRIORITIZE_SERIAL_SIZE;
+ unsigned int reserved : SQ_THREAD_ARB_PRIORITY_RESERVED_SIZE;
+ unsigned int threshold : SQ_THREAD_ARB_PRIORITY_THRESHOLD_SIZE;
+ unsigned int sx_avail_sign : SQ_THREAD_ARB_PRIORITY_SX_AVAIL_SIGN_SIZE;
+ unsigned int sx_avail_weight : SQ_THREAD_ARB_PRIORITY_SX_AVAIL_WEIGHT_SIZE;
+ unsigned int pc_avail_sign : SQ_THREAD_ARB_PRIORITY_PC_AVAIL_SIGN_SIZE;
+ unsigned int pc_avail_weight : SQ_THREAD_ARB_PRIORITY_PC_AVAIL_WEIGHT_SIZE;
+ } sq_thread_arb_priority_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_thread_arb_priority_t f;
+} sq_thread_arb_priority_u;
+
+
+/*
+ * SQ_VS_WATCHDOG_TIMER struct
+ */
+
+#define SQ_VS_WATCHDOG_TIMER_ENABLE_SIZE 1
+#define SQ_VS_WATCHDOG_TIMER_TIMEOUT_COUNT_SIZE 31
+
+#define SQ_VS_WATCHDOG_TIMER_ENABLE_SHIFT 0
+#define SQ_VS_WATCHDOG_TIMER_TIMEOUT_COUNT_SHIFT 1
+
+#define SQ_VS_WATCHDOG_TIMER_ENABLE_MASK 0x00000001
+#define SQ_VS_WATCHDOG_TIMER_TIMEOUT_COUNT_MASK 0xfffffffe
+
+#define SQ_VS_WATCHDOG_TIMER_MASK \
+ (SQ_VS_WATCHDOG_TIMER_ENABLE_MASK | \
+ SQ_VS_WATCHDOG_TIMER_TIMEOUT_COUNT_MASK)
+
+#define SQ_VS_WATCHDOG_TIMER(enable, timeout_count) \
+ ((enable << SQ_VS_WATCHDOG_TIMER_ENABLE_SHIFT) | \
+ (timeout_count << SQ_VS_WATCHDOG_TIMER_TIMEOUT_COUNT_SHIFT))
+
+#define SQ_VS_WATCHDOG_TIMER_GET_ENABLE(sq_vs_watchdog_timer) \
+ ((sq_vs_watchdog_timer & SQ_VS_WATCHDOG_TIMER_ENABLE_MASK) >> SQ_VS_WATCHDOG_TIMER_ENABLE_SHIFT)
+#define SQ_VS_WATCHDOG_TIMER_GET_TIMEOUT_COUNT(sq_vs_watchdog_timer) \
+ ((sq_vs_watchdog_timer & SQ_VS_WATCHDOG_TIMER_TIMEOUT_COUNT_MASK) >> SQ_VS_WATCHDOG_TIMER_TIMEOUT_COUNT_SHIFT)
+
+#define SQ_VS_WATCHDOG_TIMER_SET_ENABLE(sq_vs_watchdog_timer_reg, enable) \
+ sq_vs_watchdog_timer_reg = (sq_vs_watchdog_timer_reg & ~SQ_VS_WATCHDOG_TIMER_ENABLE_MASK) | (enable << SQ_VS_WATCHDOG_TIMER_ENABLE_SHIFT)
+#define SQ_VS_WATCHDOG_TIMER_SET_TIMEOUT_COUNT(sq_vs_watchdog_timer_reg, timeout_count) \
+ sq_vs_watchdog_timer_reg = (sq_vs_watchdog_timer_reg & ~SQ_VS_WATCHDOG_TIMER_TIMEOUT_COUNT_MASK) | (timeout_count << SQ_VS_WATCHDOG_TIMER_TIMEOUT_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_vs_watchdog_timer_t {
+ unsigned int enable : SQ_VS_WATCHDOG_TIMER_ENABLE_SIZE;
+ unsigned int timeout_count : SQ_VS_WATCHDOG_TIMER_TIMEOUT_COUNT_SIZE;
+ } sq_vs_watchdog_timer_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_vs_watchdog_timer_t {
+ unsigned int timeout_count : SQ_VS_WATCHDOG_TIMER_TIMEOUT_COUNT_SIZE;
+ unsigned int enable : SQ_VS_WATCHDOG_TIMER_ENABLE_SIZE;
+ } sq_vs_watchdog_timer_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_vs_watchdog_timer_t f;
+} sq_vs_watchdog_timer_u;
+
+
+/*
+ * SQ_PS_WATCHDOG_TIMER struct
+ */
+
+#define SQ_PS_WATCHDOG_TIMER_ENABLE_SIZE 1
+#define SQ_PS_WATCHDOG_TIMER_TIMEOUT_COUNT_SIZE 31
+
+#define SQ_PS_WATCHDOG_TIMER_ENABLE_SHIFT 0
+#define SQ_PS_WATCHDOG_TIMER_TIMEOUT_COUNT_SHIFT 1
+
+#define SQ_PS_WATCHDOG_TIMER_ENABLE_MASK 0x00000001
+#define SQ_PS_WATCHDOG_TIMER_TIMEOUT_COUNT_MASK 0xfffffffe
+
+#define SQ_PS_WATCHDOG_TIMER_MASK \
+ (SQ_PS_WATCHDOG_TIMER_ENABLE_MASK | \
+ SQ_PS_WATCHDOG_TIMER_TIMEOUT_COUNT_MASK)
+
+#define SQ_PS_WATCHDOG_TIMER(enable, timeout_count) \
+ ((enable << SQ_PS_WATCHDOG_TIMER_ENABLE_SHIFT) | \
+ (timeout_count << SQ_PS_WATCHDOG_TIMER_TIMEOUT_COUNT_SHIFT))
+
+#define SQ_PS_WATCHDOG_TIMER_GET_ENABLE(sq_ps_watchdog_timer) \
+ ((sq_ps_watchdog_timer & SQ_PS_WATCHDOG_TIMER_ENABLE_MASK) >> SQ_PS_WATCHDOG_TIMER_ENABLE_SHIFT)
+#define SQ_PS_WATCHDOG_TIMER_GET_TIMEOUT_COUNT(sq_ps_watchdog_timer) \
+ ((sq_ps_watchdog_timer & SQ_PS_WATCHDOG_TIMER_TIMEOUT_COUNT_MASK) >> SQ_PS_WATCHDOG_TIMER_TIMEOUT_COUNT_SHIFT)
+
+#define SQ_PS_WATCHDOG_TIMER_SET_ENABLE(sq_ps_watchdog_timer_reg, enable) \
+ sq_ps_watchdog_timer_reg = (sq_ps_watchdog_timer_reg & ~SQ_PS_WATCHDOG_TIMER_ENABLE_MASK) | (enable << SQ_PS_WATCHDOG_TIMER_ENABLE_SHIFT)
+#define SQ_PS_WATCHDOG_TIMER_SET_TIMEOUT_COUNT(sq_ps_watchdog_timer_reg, timeout_count) \
+ sq_ps_watchdog_timer_reg = (sq_ps_watchdog_timer_reg & ~SQ_PS_WATCHDOG_TIMER_TIMEOUT_COUNT_MASK) | (timeout_count << SQ_PS_WATCHDOG_TIMER_TIMEOUT_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_ps_watchdog_timer_t {
+ unsigned int enable : SQ_PS_WATCHDOG_TIMER_ENABLE_SIZE;
+ unsigned int timeout_count : SQ_PS_WATCHDOG_TIMER_TIMEOUT_COUNT_SIZE;
+ } sq_ps_watchdog_timer_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_ps_watchdog_timer_t {
+ unsigned int timeout_count : SQ_PS_WATCHDOG_TIMER_TIMEOUT_COUNT_SIZE;
+ unsigned int enable : SQ_PS_WATCHDOG_TIMER_ENABLE_SIZE;
+ } sq_ps_watchdog_timer_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_ps_watchdog_timer_t f;
+} sq_ps_watchdog_timer_u;
+
+
+/*
+ * SQ_INT_CNTL struct
+ */
+
+#define SQ_INT_CNTL_PS_WATCHDOG_MASK_SIZE 1
+#define SQ_INT_CNTL_VS_WATCHDOG_MASK_SIZE 1
+
+#define SQ_INT_CNTL_PS_WATCHDOG_MASK_SHIFT 0
+#define SQ_INT_CNTL_VS_WATCHDOG_MASK_SHIFT 1
+
+#define SQ_INT_CNTL_PS_WATCHDOG_MASK_MASK 0x00000001
+#define SQ_INT_CNTL_VS_WATCHDOG_MASK_MASK 0x00000002
+
+#define SQ_INT_CNTL_MASK \
+ (SQ_INT_CNTL_PS_WATCHDOG_MASK_MASK | \
+ SQ_INT_CNTL_VS_WATCHDOG_MASK_MASK)
+
+#define SQ_INT_CNTL(ps_watchdog_mask, vs_watchdog_mask) \
+ ((ps_watchdog_mask << SQ_INT_CNTL_PS_WATCHDOG_MASK_SHIFT) | \
+ (vs_watchdog_mask << SQ_INT_CNTL_VS_WATCHDOG_MASK_SHIFT))
+
+#define SQ_INT_CNTL_GET_PS_WATCHDOG_MASK(sq_int_cntl) \
+ ((sq_int_cntl & SQ_INT_CNTL_PS_WATCHDOG_MASK_MASK) >> SQ_INT_CNTL_PS_WATCHDOG_MASK_SHIFT)
+#define SQ_INT_CNTL_GET_VS_WATCHDOG_MASK(sq_int_cntl) \
+ ((sq_int_cntl & SQ_INT_CNTL_VS_WATCHDOG_MASK_MASK) >> SQ_INT_CNTL_VS_WATCHDOG_MASK_SHIFT)
+
+#define SQ_INT_CNTL_SET_PS_WATCHDOG_MASK(sq_int_cntl_reg, ps_watchdog_mask) \
+ sq_int_cntl_reg = (sq_int_cntl_reg & ~SQ_INT_CNTL_PS_WATCHDOG_MASK_MASK) | (ps_watchdog_mask << SQ_INT_CNTL_PS_WATCHDOG_MASK_SHIFT)
+#define SQ_INT_CNTL_SET_VS_WATCHDOG_MASK(sq_int_cntl_reg, vs_watchdog_mask) \
+ sq_int_cntl_reg = (sq_int_cntl_reg & ~SQ_INT_CNTL_VS_WATCHDOG_MASK_MASK) | (vs_watchdog_mask << SQ_INT_CNTL_VS_WATCHDOG_MASK_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_int_cntl_t {
+ unsigned int ps_watchdog_mask : SQ_INT_CNTL_PS_WATCHDOG_MASK_SIZE;
+ unsigned int vs_watchdog_mask : SQ_INT_CNTL_VS_WATCHDOG_MASK_SIZE;
+ unsigned int : 30;
+ } sq_int_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_int_cntl_t {
+ unsigned int : 30;
+ unsigned int vs_watchdog_mask : SQ_INT_CNTL_VS_WATCHDOG_MASK_SIZE;
+ unsigned int ps_watchdog_mask : SQ_INT_CNTL_PS_WATCHDOG_MASK_SIZE;
+ } sq_int_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_int_cntl_t f;
+} sq_int_cntl_u;
+
+
+/*
+ * SQ_INT_STATUS struct
+ */
+
+#define SQ_INT_STATUS_PS_WATCHDOG_TIMEOUT_SIZE 1
+#define SQ_INT_STATUS_VS_WATCHDOG_TIMEOUT_SIZE 1
+
+#define SQ_INT_STATUS_PS_WATCHDOG_TIMEOUT_SHIFT 0
+#define SQ_INT_STATUS_VS_WATCHDOG_TIMEOUT_SHIFT 1
+
+#define SQ_INT_STATUS_PS_WATCHDOG_TIMEOUT_MASK 0x00000001
+#define SQ_INT_STATUS_VS_WATCHDOG_TIMEOUT_MASK 0x00000002
+
+#define SQ_INT_STATUS_MASK \
+ (SQ_INT_STATUS_PS_WATCHDOG_TIMEOUT_MASK | \
+ SQ_INT_STATUS_VS_WATCHDOG_TIMEOUT_MASK)
+
+#define SQ_INT_STATUS(ps_watchdog_timeout, vs_watchdog_timeout) \
+ ((ps_watchdog_timeout << SQ_INT_STATUS_PS_WATCHDOG_TIMEOUT_SHIFT) | \
+ (vs_watchdog_timeout << SQ_INT_STATUS_VS_WATCHDOG_TIMEOUT_SHIFT))
+
+#define SQ_INT_STATUS_GET_PS_WATCHDOG_TIMEOUT(sq_int_status) \
+ ((sq_int_status & SQ_INT_STATUS_PS_WATCHDOG_TIMEOUT_MASK) >> SQ_INT_STATUS_PS_WATCHDOG_TIMEOUT_SHIFT)
+#define SQ_INT_STATUS_GET_VS_WATCHDOG_TIMEOUT(sq_int_status) \
+ ((sq_int_status & SQ_INT_STATUS_VS_WATCHDOG_TIMEOUT_MASK) >> SQ_INT_STATUS_VS_WATCHDOG_TIMEOUT_SHIFT)
+
+#define SQ_INT_STATUS_SET_PS_WATCHDOG_TIMEOUT(sq_int_status_reg, ps_watchdog_timeout) \
+ sq_int_status_reg = (sq_int_status_reg & ~SQ_INT_STATUS_PS_WATCHDOG_TIMEOUT_MASK) | (ps_watchdog_timeout << SQ_INT_STATUS_PS_WATCHDOG_TIMEOUT_SHIFT)
+#define SQ_INT_STATUS_SET_VS_WATCHDOG_TIMEOUT(sq_int_status_reg, vs_watchdog_timeout) \
+ sq_int_status_reg = (sq_int_status_reg & ~SQ_INT_STATUS_VS_WATCHDOG_TIMEOUT_MASK) | (vs_watchdog_timeout << SQ_INT_STATUS_VS_WATCHDOG_TIMEOUT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_int_status_t {
+ unsigned int ps_watchdog_timeout : SQ_INT_STATUS_PS_WATCHDOG_TIMEOUT_SIZE;
+ unsigned int vs_watchdog_timeout : SQ_INT_STATUS_VS_WATCHDOG_TIMEOUT_SIZE;
+ unsigned int : 30;
+ } sq_int_status_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_int_status_t {
+ unsigned int : 30;
+ unsigned int vs_watchdog_timeout : SQ_INT_STATUS_VS_WATCHDOG_TIMEOUT_SIZE;
+ unsigned int ps_watchdog_timeout : SQ_INT_STATUS_PS_WATCHDOG_TIMEOUT_SIZE;
+ } sq_int_status_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_int_status_t f;
+} sq_int_status_u;
+
+
+/*
+ * SQ_INT_ACK struct
+ */
+
+#define SQ_INT_ACK_PS_WATCHDOG_ACK_SIZE 1
+#define SQ_INT_ACK_VS_WATCHDOG_ACK_SIZE 1
+
+#define SQ_INT_ACK_PS_WATCHDOG_ACK_SHIFT 0
+#define SQ_INT_ACK_VS_WATCHDOG_ACK_SHIFT 1
+
+#define SQ_INT_ACK_PS_WATCHDOG_ACK_MASK 0x00000001
+#define SQ_INT_ACK_VS_WATCHDOG_ACK_MASK 0x00000002
+
+#define SQ_INT_ACK_MASK \
+ (SQ_INT_ACK_PS_WATCHDOG_ACK_MASK | \
+ SQ_INT_ACK_VS_WATCHDOG_ACK_MASK)
+
+#define SQ_INT_ACK(ps_watchdog_ack, vs_watchdog_ack) \
+ ((ps_watchdog_ack << SQ_INT_ACK_PS_WATCHDOG_ACK_SHIFT) | \
+ (vs_watchdog_ack << SQ_INT_ACK_VS_WATCHDOG_ACK_SHIFT))
+
+#define SQ_INT_ACK_GET_PS_WATCHDOG_ACK(sq_int_ack) \
+ ((sq_int_ack & SQ_INT_ACK_PS_WATCHDOG_ACK_MASK) >> SQ_INT_ACK_PS_WATCHDOG_ACK_SHIFT)
+#define SQ_INT_ACK_GET_VS_WATCHDOG_ACK(sq_int_ack) \
+ ((sq_int_ack & SQ_INT_ACK_VS_WATCHDOG_ACK_MASK) >> SQ_INT_ACK_VS_WATCHDOG_ACK_SHIFT)
+
+#define SQ_INT_ACK_SET_PS_WATCHDOG_ACK(sq_int_ack_reg, ps_watchdog_ack) \
+ sq_int_ack_reg = (sq_int_ack_reg & ~SQ_INT_ACK_PS_WATCHDOG_ACK_MASK) | (ps_watchdog_ack << SQ_INT_ACK_PS_WATCHDOG_ACK_SHIFT)
+#define SQ_INT_ACK_SET_VS_WATCHDOG_ACK(sq_int_ack_reg, vs_watchdog_ack) \
+ sq_int_ack_reg = (sq_int_ack_reg & ~SQ_INT_ACK_VS_WATCHDOG_ACK_MASK) | (vs_watchdog_ack << SQ_INT_ACK_VS_WATCHDOG_ACK_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_int_ack_t {
+ unsigned int ps_watchdog_ack : SQ_INT_ACK_PS_WATCHDOG_ACK_SIZE;
+ unsigned int vs_watchdog_ack : SQ_INT_ACK_VS_WATCHDOG_ACK_SIZE;
+ unsigned int : 30;
+ } sq_int_ack_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_int_ack_t {
+ unsigned int : 30;
+ unsigned int vs_watchdog_ack : SQ_INT_ACK_VS_WATCHDOG_ACK_SIZE;
+ unsigned int ps_watchdog_ack : SQ_INT_ACK_PS_WATCHDOG_ACK_SIZE;
+ } sq_int_ack_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_int_ack_t f;
+} sq_int_ack_u;
+
+
+/*
+ * SQ_DEBUG_INPUT_FSM struct
+ */
+
+#define SQ_DEBUG_INPUT_FSM_VC_VSR_LD_SIZE 3
+#define SQ_DEBUG_INPUT_FSM_RESERVED_SIZE 1
+#define SQ_DEBUG_INPUT_FSM_VC_GPR_LD_SIZE 4
+#define SQ_DEBUG_INPUT_FSM_PC_PISM_SIZE 3
+#define SQ_DEBUG_INPUT_FSM_RESERVED1_SIZE 1
+#define SQ_DEBUG_INPUT_FSM_PC_AS_SIZE 3
+#define SQ_DEBUG_INPUT_FSM_PC_INTERP_CNT_SIZE 5
+#define SQ_DEBUG_INPUT_FSM_PC_GPR_SIZE_SIZE 8
+
+#define SQ_DEBUG_INPUT_FSM_VC_VSR_LD_SHIFT 0
+#define SQ_DEBUG_INPUT_FSM_RESERVED_SHIFT 3
+#define SQ_DEBUG_INPUT_FSM_VC_GPR_LD_SHIFT 4
+#define SQ_DEBUG_INPUT_FSM_PC_PISM_SHIFT 8
+#define SQ_DEBUG_INPUT_FSM_RESERVED1_SHIFT 11
+#define SQ_DEBUG_INPUT_FSM_PC_AS_SHIFT 12
+#define SQ_DEBUG_INPUT_FSM_PC_INTERP_CNT_SHIFT 15
+#define SQ_DEBUG_INPUT_FSM_PC_GPR_SIZE_SHIFT 20
+
+#define SQ_DEBUG_INPUT_FSM_VC_VSR_LD_MASK 0x00000007
+#define SQ_DEBUG_INPUT_FSM_RESERVED_MASK 0x00000008
+#define SQ_DEBUG_INPUT_FSM_VC_GPR_LD_MASK 0x000000f0
+#define SQ_DEBUG_INPUT_FSM_PC_PISM_MASK 0x00000700
+#define SQ_DEBUG_INPUT_FSM_RESERVED1_MASK 0x00000800
+#define SQ_DEBUG_INPUT_FSM_PC_AS_MASK 0x00007000
+#define SQ_DEBUG_INPUT_FSM_PC_INTERP_CNT_MASK 0x000f8000
+#define SQ_DEBUG_INPUT_FSM_PC_GPR_SIZE_MASK 0x0ff00000
+
+#define SQ_DEBUG_INPUT_FSM_MASK \
+ (SQ_DEBUG_INPUT_FSM_VC_VSR_LD_MASK | \
+ SQ_DEBUG_INPUT_FSM_RESERVED_MASK | \
+ SQ_DEBUG_INPUT_FSM_VC_GPR_LD_MASK | \
+ SQ_DEBUG_INPUT_FSM_PC_PISM_MASK | \
+ SQ_DEBUG_INPUT_FSM_RESERVED1_MASK | \
+ SQ_DEBUG_INPUT_FSM_PC_AS_MASK | \
+ SQ_DEBUG_INPUT_FSM_PC_INTERP_CNT_MASK | \
+ SQ_DEBUG_INPUT_FSM_PC_GPR_SIZE_MASK)
+
+#define SQ_DEBUG_INPUT_FSM(vc_vsr_ld, reserved, vc_gpr_ld, pc_pism, reserved1, pc_as, pc_interp_cnt, pc_gpr_size) \
+ ((vc_vsr_ld << SQ_DEBUG_INPUT_FSM_VC_VSR_LD_SHIFT) | \
+ (reserved << SQ_DEBUG_INPUT_FSM_RESERVED_SHIFT) | \
+ (vc_gpr_ld << SQ_DEBUG_INPUT_FSM_VC_GPR_LD_SHIFT) | \
+ (pc_pism << SQ_DEBUG_INPUT_FSM_PC_PISM_SHIFT) | \
+ (reserved1 << SQ_DEBUG_INPUT_FSM_RESERVED1_SHIFT) | \
+ (pc_as << SQ_DEBUG_INPUT_FSM_PC_AS_SHIFT) | \
+ (pc_interp_cnt << SQ_DEBUG_INPUT_FSM_PC_INTERP_CNT_SHIFT) | \
+ (pc_gpr_size << SQ_DEBUG_INPUT_FSM_PC_GPR_SIZE_SHIFT))
+
+#define SQ_DEBUG_INPUT_FSM_GET_VC_VSR_LD(sq_debug_input_fsm) \
+ ((sq_debug_input_fsm & SQ_DEBUG_INPUT_FSM_VC_VSR_LD_MASK) >> SQ_DEBUG_INPUT_FSM_VC_VSR_LD_SHIFT)
+#define SQ_DEBUG_INPUT_FSM_GET_RESERVED(sq_debug_input_fsm) \
+ ((sq_debug_input_fsm & SQ_DEBUG_INPUT_FSM_RESERVED_MASK) >> SQ_DEBUG_INPUT_FSM_RESERVED_SHIFT)
+#define SQ_DEBUG_INPUT_FSM_GET_VC_GPR_LD(sq_debug_input_fsm) \
+ ((sq_debug_input_fsm & SQ_DEBUG_INPUT_FSM_VC_GPR_LD_MASK) >> SQ_DEBUG_INPUT_FSM_VC_GPR_LD_SHIFT)
+#define SQ_DEBUG_INPUT_FSM_GET_PC_PISM(sq_debug_input_fsm) \
+ ((sq_debug_input_fsm & SQ_DEBUG_INPUT_FSM_PC_PISM_MASK) >> SQ_DEBUG_INPUT_FSM_PC_PISM_SHIFT)
+#define SQ_DEBUG_INPUT_FSM_GET_RESERVED1(sq_debug_input_fsm) \
+ ((sq_debug_input_fsm & SQ_DEBUG_INPUT_FSM_RESERVED1_MASK) >> SQ_DEBUG_INPUT_FSM_RESERVED1_SHIFT)
+#define SQ_DEBUG_INPUT_FSM_GET_PC_AS(sq_debug_input_fsm) \
+ ((sq_debug_input_fsm & SQ_DEBUG_INPUT_FSM_PC_AS_MASK) >> SQ_DEBUG_INPUT_FSM_PC_AS_SHIFT)
+#define SQ_DEBUG_INPUT_FSM_GET_PC_INTERP_CNT(sq_debug_input_fsm) \
+ ((sq_debug_input_fsm & SQ_DEBUG_INPUT_FSM_PC_INTERP_CNT_MASK) >> SQ_DEBUG_INPUT_FSM_PC_INTERP_CNT_SHIFT)
+#define SQ_DEBUG_INPUT_FSM_GET_PC_GPR_SIZE(sq_debug_input_fsm) \
+ ((sq_debug_input_fsm & SQ_DEBUG_INPUT_FSM_PC_GPR_SIZE_MASK) >> SQ_DEBUG_INPUT_FSM_PC_GPR_SIZE_SHIFT)
+
+#define SQ_DEBUG_INPUT_FSM_SET_VC_VSR_LD(sq_debug_input_fsm_reg, vc_vsr_ld) \
+ sq_debug_input_fsm_reg = (sq_debug_input_fsm_reg & ~SQ_DEBUG_INPUT_FSM_VC_VSR_LD_MASK) | (vc_vsr_ld << SQ_DEBUG_INPUT_FSM_VC_VSR_LD_SHIFT)
+#define SQ_DEBUG_INPUT_FSM_SET_RESERVED(sq_debug_input_fsm_reg, reserved) \
+ sq_debug_input_fsm_reg = (sq_debug_input_fsm_reg & ~SQ_DEBUG_INPUT_FSM_RESERVED_MASK) | (reserved << SQ_DEBUG_INPUT_FSM_RESERVED_SHIFT)
+#define SQ_DEBUG_INPUT_FSM_SET_VC_GPR_LD(sq_debug_input_fsm_reg, vc_gpr_ld) \
+ sq_debug_input_fsm_reg = (sq_debug_input_fsm_reg & ~SQ_DEBUG_INPUT_FSM_VC_GPR_LD_MASK) | (vc_gpr_ld << SQ_DEBUG_INPUT_FSM_VC_GPR_LD_SHIFT)
+#define SQ_DEBUG_INPUT_FSM_SET_PC_PISM(sq_debug_input_fsm_reg, pc_pism) \
+ sq_debug_input_fsm_reg = (sq_debug_input_fsm_reg & ~SQ_DEBUG_INPUT_FSM_PC_PISM_MASK) | (pc_pism << SQ_DEBUG_INPUT_FSM_PC_PISM_SHIFT)
+#define SQ_DEBUG_INPUT_FSM_SET_RESERVED1(sq_debug_input_fsm_reg, reserved1) \
+ sq_debug_input_fsm_reg = (sq_debug_input_fsm_reg & ~SQ_DEBUG_INPUT_FSM_RESERVED1_MASK) | (reserved1 << SQ_DEBUG_INPUT_FSM_RESERVED1_SHIFT)
+#define SQ_DEBUG_INPUT_FSM_SET_PC_AS(sq_debug_input_fsm_reg, pc_as) \
+ sq_debug_input_fsm_reg = (sq_debug_input_fsm_reg & ~SQ_DEBUG_INPUT_FSM_PC_AS_MASK) | (pc_as << SQ_DEBUG_INPUT_FSM_PC_AS_SHIFT)
+#define SQ_DEBUG_INPUT_FSM_SET_PC_INTERP_CNT(sq_debug_input_fsm_reg, pc_interp_cnt) \
+ sq_debug_input_fsm_reg = (sq_debug_input_fsm_reg & ~SQ_DEBUG_INPUT_FSM_PC_INTERP_CNT_MASK) | (pc_interp_cnt << SQ_DEBUG_INPUT_FSM_PC_INTERP_CNT_SHIFT)
+#define SQ_DEBUG_INPUT_FSM_SET_PC_GPR_SIZE(sq_debug_input_fsm_reg, pc_gpr_size) \
+ sq_debug_input_fsm_reg = (sq_debug_input_fsm_reg & ~SQ_DEBUG_INPUT_FSM_PC_GPR_SIZE_MASK) | (pc_gpr_size << SQ_DEBUG_INPUT_FSM_PC_GPR_SIZE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_input_fsm_t {
+ unsigned int vc_vsr_ld : SQ_DEBUG_INPUT_FSM_VC_VSR_LD_SIZE;
+ unsigned int reserved : SQ_DEBUG_INPUT_FSM_RESERVED_SIZE;
+ unsigned int vc_gpr_ld : SQ_DEBUG_INPUT_FSM_VC_GPR_LD_SIZE;
+ unsigned int pc_pism : SQ_DEBUG_INPUT_FSM_PC_PISM_SIZE;
+ unsigned int reserved1 : SQ_DEBUG_INPUT_FSM_RESERVED1_SIZE;
+ unsigned int pc_as : SQ_DEBUG_INPUT_FSM_PC_AS_SIZE;
+ unsigned int pc_interp_cnt : SQ_DEBUG_INPUT_FSM_PC_INTERP_CNT_SIZE;
+ unsigned int pc_gpr_size : SQ_DEBUG_INPUT_FSM_PC_GPR_SIZE_SIZE;
+ unsigned int : 4;
+ } sq_debug_input_fsm_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_input_fsm_t {
+ unsigned int : 4;
+ unsigned int pc_gpr_size : SQ_DEBUG_INPUT_FSM_PC_GPR_SIZE_SIZE;
+ unsigned int pc_interp_cnt : SQ_DEBUG_INPUT_FSM_PC_INTERP_CNT_SIZE;
+ unsigned int pc_as : SQ_DEBUG_INPUT_FSM_PC_AS_SIZE;
+ unsigned int reserved1 : SQ_DEBUG_INPUT_FSM_RESERVED1_SIZE;
+ unsigned int pc_pism : SQ_DEBUG_INPUT_FSM_PC_PISM_SIZE;
+ unsigned int vc_gpr_ld : SQ_DEBUG_INPUT_FSM_VC_GPR_LD_SIZE;
+ unsigned int reserved : SQ_DEBUG_INPUT_FSM_RESERVED_SIZE;
+ unsigned int vc_vsr_ld : SQ_DEBUG_INPUT_FSM_VC_VSR_LD_SIZE;
+ } sq_debug_input_fsm_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_input_fsm_t f;
+} sq_debug_input_fsm_u;
+
+
+/*
+ * SQ_DEBUG_CONST_MGR_FSM struct
+ */
+
+#define SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_EVENT_STATE_SIZE 5
+#define SQ_DEBUG_CONST_MGR_FSM_RESERVED1_SIZE 3
+#define SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_EVENT_STATE_SIZE 5
+#define SQ_DEBUG_CONST_MGR_FSM_RESERVED2_SIZE 3
+#define SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_CNTX_VALID_SIZE 2
+#define SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_CNTX_VALID_SIZE 2
+#define SQ_DEBUG_CONST_MGR_FSM_CNTX0_VTX_EVENT_DONE_SIZE 1
+#define SQ_DEBUG_CONST_MGR_FSM_CNTX0_PIX_EVENT_DONE_SIZE 1
+#define SQ_DEBUG_CONST_MGR_FSM_CNTX1_VTX_EVENT_DONE_SIZE 1
+#define SQ_DEBUG_CONST_MGR_FSM_CNTX1_PIX_EVENT_DONE_SIZE 1
+
+#define SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_EVENT_STATE_SHIFT 0
+#define SQ_DEBUG_CONST_MGR_FSM_RESERVED1_SHIFT 5
+#define SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_EVENT_STATE_SHIFT 8
+#define SQ_DEBUG_CONST_MGR_FSM_RESERVED2_SHIFT 13
+#define SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_CNTX_VALID_SHIFT 16
+#define SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_CNTX_VALID_SHIFT 18
+#define SQ_DEBUG_CONST_MGR_FSM_CNTX0_VTX_EVENT_DONE_SHIFT 20
+#define SQ_DEBUG_CONST_MGR_FSM_CNTX0_PIX_EVENT_DONE_SHIFT 21
+#define SQ_DEBUG_CONST_MGR_FSM_CNTX1_VTX_EVENT_DONE_SHIFT 22
+#define SQ_DEBUG_CONST_MGR_FSM_CNTX1_PIX_EVENT_DONE_SHIFT 23
+
+#define SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_EVENT_STATE_MASK 0x0000001f
+#define SQ_DEBUG_CONST_MGR_FSM_RESERVED1_MASK 0x000000e0
+#define SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_EVENT_STATE_MASK 0x00001f00
+#define SQ_DEBUG_CONST_MGR_FSM_RESERVED2_MASK 0x0000e000
+#define SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_CNTX_VALID_MASK 0x00030000
+#define SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_CNTX_VALID_MASK 0x000c0000
+#define SQ_DEBUG_CONST_MGR_FSM_CNTX0_VTX_EVENT_DONE_MASK 0x00100000
+#define SQ_DEBUG_CONST_MGR_FSM_CNTX0_PIX_EVENT_DONE_MASK 0x00200000
+#define SQ_DEBUG_CONST_MGR_FSM_CNTX1_VTX_EVENT_DONE_MASK 0x00400000
+#define SQ_DEBUG_CONST_MGR_FSM_CNTX1_PIX_EVENT_DONE_MASK 0x00800000
+
+#define SQ_DEBUG_CONST_MGR_FSM_MASK \
+ (SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_EVENT_STATE_MASK | \
+ SQ_DEBUG_CONST_MGR_FSM_RESERVED1_MASK | \
+ SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_EVENT_STATE_MASK | \
+ SQ_DEBUG_CONST_MGR_FSM_RESERVED2_MASK | \
+ SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_CNTX_VALID_MASK | \
+ SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_CNTX_VALID_MASK | \
+ SQ_DEBUG_CONST_MGR_FSM_CNTX0_VTX_EVENT_DONE_MASK | \
+ SQ_DEBUG_CONST_MGR_FSM_CNTX0_PIX_EVENT_DONE_MASK | \
+ SQ_DEBUG_CONST_MGR_FSM_CNTX1_VTX_EVENT_DONE_MASK | \
+ SQ_DEBUG_CONST_MGR_FSM_CNTX1_PIX_EVENT_DONE_MASK)
+
+#define SQ_DEBUG_CONST_MGR_FSM(tex_const_event_state, reserved1, alu_const_event_state, reserved2, alu_const_cntx_valid, tex_const_cntx_valid, cntx0_vtx_event_done, cntx0_pix_event_done, cntx1_vtx_event_done, cntx1_pix_event_done) \
+ ((tex_const_event_state << SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_EVENT_STATE_SHIFT) | \
+ (reserved1 << SQ_DEBUG_CONST_MGR_FSM_RESERVED1_SHIFT) | \
+ (alu_const_event_state << SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_EVENT_STATE_SHIFT) | \
+ (reserved2 << SQ_DEBUG_CONST_MGR_FSM_RESERVED2_SHIFT) | \
+ (alu_const_cntx_valid << SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_CNTX_VALID_SHIFT) | \
+ (tex_const_cntx_valid << SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_CNTX_VALID_SHIFT) | \
+ (cntx0_vtx_event_done << SQ_DEBUG_CONST_MGR_FSM_CNTX0_VTX_EVENT_DONE_SHIFT) | \
+ (cntx0_pix_event_done << SQ_DEBUG_CONST_MGR_FSM_CNTX0_PIX_EVENT_DONE_SHIFT) | \
+ (cntx1_vtx_event_done << SQ_DEBUG_CONST_MGR_FSM_CNTX1_VTX_EVENT_DONE_SHIFT) | \
+ (cntx1_pix_event_done << SQ_DEBUG_CONST_MGR_FSM_CNTX1_PIX_EVENT_DONE_SHIFT))
+
+#define SQ_DEBUG_CONST_MGR_FSM_GET_TEX_CONST_EVENT_STATE(sq_debug_const_mgr_fsm) \
+ ((sq_debug_const_mgr_fsm & SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_EVENT_STATE_MASK) >> SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_EVENT_STATE_SHIFT)
+#define SQ_DEBUG_CONST_MGR_FSM_GET_RESERVED1(sq_debug_const_mgr_fsm) \
+ ((sq_debug_const_mgr_fsm & SQ_DEBUG_CONST_MGR_FSM_RESERVED1_MASK) >> SQ_DEBUG_CONST_MGR_FSM_RESERVED1_SHIFT)
+#define SQ_DEBUG_CONST_MGR_FSM_GET_ALU_CONST_EVENT_STATE(sq_debug_const_mgr_fsm) \
+ ((sq_debug_const_mgr_fsm & SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_EVENT_STATE_MASK) >> SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_EVENT_STATE_SHIFT)
+#define SQ_DEBUG_CONST_MGR_FSM_GET_RESERVED2(sq_debug_const_mgr_fsm) \
+ ((sq_debug_const_mgr_fsm & SQ_DEBUG_CONST_MGR_FSM_RESERVED2_MASK) >> SQ_DEBUG_CONST_MGR_FSM_RESERVED2_SHIFT)
+#define SQ_DEBUG_CONST_MGR_FSM_GET_ALU_CONST_CNTX_VALID(sq_debug_const_mgr_fsm) \
+ ((sq_debug_const_mgr_fsm & SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_CNTX_VALID_MASK) >> SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_CNTX_VALID_SHIFT)
+#define SQ_DEBUG_CONST_MGR_FSM_GET_TEX_CONST_CNTX_VALID(sq_debug_const_mgr_fsm) \
+ ((sq_debug_const_mgr_fsm & SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_CNTX_VALID_MASK) >> SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_CNTX_VALID_SHIFT)
+#define SQ_DEBUG_CONST_MGR_FSM_GET_CNTX0_VTX_EVENT_DONE(sq_debug_const_mgr_fsm) \
+ ((sq_debug_const_mgr_fsm & SQ_DEBUG_CONST_MGR_FSM_CNTX0_VTX_EVENT_DONE_MASK) >> SQ_DEBUG_CONST_MGR_FSM_CNTX0_VTX_EVENT_DONE_SHIFT)
+#define SQ_DEBUG_CONST_MGR_FSM_GET_CNTX0_PIX_EVENT_DONE(sq_debug_const_mgr_fsm) \
+ ((sq_debug_const_mgr_fsm & SQ_DEBUG_CONST_MGR_FSM_CNTX0_PIX_EVENT_DONE_MASK) >> SQ_DEBUG_CONST_MGR_FSM_CNTX0_PIX_EVENT_DONE_SHIFT)
+#define SQ_DEBUG_CONST_MGR_FSM_GET_CNTX1_VTX_EVENT_DONE(sq_debug_const_mgr_fsm) \
+ ((sq_debug_const_mgr_fsm & SQ_DEBUG_CONST_MGR_FSM_CNTX1_VTX_EVENT_DONE_MASK) >> SQ_DEBUG_CONST_MGR_FSM_CNTX1_VTX_EVENT_DONE_SHIFT)
+#define SQ_DEBUG_CONST_MGR_FSM_GET_CNTX1_PIX_EVENT_DONE(sq_debug_const_mgr_fsm) \
+ ((sq_debug_const_mgr_fsm & SQ_DEBUG_CONST_MGR_FSM_CNTX1_PIX_EVENT_DONE_MASK) >> SQ_DEBUG_CONST_MGR_FSM_CNTX1_PIX_EVENT_DONE_SHIFT)
+
+#define SQ_DEBUG_CONST_MGR_FSM_SET_TEX_CONST_EVENT_STATE(sq_debug_const_mgr_fsm_reg, tex_const_event_state) \
+ sq_debug_const_mgr_fsm_reg = (sq_debug_const_mgr_fsm_reg & ~SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_EVENT_STATE_MASK) | (tex_const_event_state << SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_EVENT_STATE_SHIFT)
+#define SQ_DEBUG_CONST_MGR_FSM_SET_RESERVED1(sq_debug_const_mgr_fsm_reg, reserved1) \
+ sq_debug_const_mgr_fsm_reg = (sq_debug_const_mgr_fsm_reg & ~SQ_DEBUG_CONST_MGR_FSM_RESERVED1_MASK) | (reserved1 << SQ_DEBUG_CONST_MGR_FSM_RESERVED1_SHIFT)
+#define SQ_DEBUG_CONST_MGR_FSM_SET_ALU_CONST_EVENT_STATE(sq_debug_const_mgr_fsm_reg, alu_const_event_state) \
+ sq_debug_const_mgr_fsm_reg = (sq_debug_const_mgr_fsm_reg & ~SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_EVENT_STATE_MASK) | (alu_const_event_state << SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_EVENT_STATE_SHIFT)
+#define SQ_DEBUG_CONST_MGR_FSM_SET_RESERVED2(sq_debug_const_mgr_fsm_reg, reserved2) \
+ sq_debug_const_mgr_fsm_reg = (sq_debug_const_mgr_fsm_reg & ~SQ_DEBUG_CONST_MGR_FSM_RESERVED2_MASK) | (reserved2 << SQ_DEBUG_CONST_MGR_FSM_RESERVED2_SHIFT)
+#define SQ_DEBUG_CONST_MGR_FSM_SET_ALU_CONST_CNTX_VALID(sq_debug_const_mgr_fsm_reg, alu_const_cntx_valid) \
+ sq_debug_const_mgr_fsm_reg = (sq_debug_const_mgr_fsm_reg & ~SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_CNTX_VALID_MASK) | (alu_const_cntx_valid << SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_CNTX_VALID_SHIFT)
+#define SQ_DEBUG_CONST_MGR_FSM_SET_TEX_CONST_CNTX_VALID(sq_debug_const_mgr_fsm_reg, tex_const_cntx_valid) \
+ sq_debug_const_mgr_fsm_reg = (sq_debug_const_mgr_fsm_reg & ~SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_CNTX_VALID_MASK) | (tex_const_cntx_valid << SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_CNTX_VALID_SHIFT)
+#define SQ_DEBUG_CONST_MGR_FSM_SET_CNTX0_VTX_EVENT_DONE(sq_debug_const_mgr_fsm_reg, cntx0_vtx_event_done) \
+ sq_debug_const_mgr_fsm_reg = (sq_debug_const_mgr_fsm_reg & ~SQ_DEBUG_CONST_MGR_FSM_CNTX0_VTX_EVENT_DONE_MASK) | (cntx0_vtx_event_done << SQ_DEBUG_CONST_MGR_FSM_CNTX0_VTX_EVENT_DONE_SHIFT)
+#define SQ_DEBUG_CONST_MGR_FSM_SET_CNTX0_PIX_EVENT_DONE(sq_debug_const_mgr_fsm_reg, cntx0_pix_event_done) \
+ sq_debug_const_mgr_fsm_reg = (sq_debug_const_mgr_fsm_reg & ~SQ_DEBUG_CONST_MGR_FSM_CNTX0_PIX_EVENT_DONE_MASK) | (cntx0_pix_event_done << SQ_DEBUG_CONST_MGR_FSM_CNTX0_PIX_EVENT_DONE_SHIFT)
+#define SQ_DEBUG_CONST_MGR_FSM_SET_CNTX1_VTX_EVENT_DONE(sq_debug_const_mgr_fsm_reg, cntx1_vtx_event_done) \
+ sq_debug_const_mgr_fsm_reg = (sq_debug_const_mgr_fsm_reg & ~SQ_DEBUG_CONST_MGR_FSM_CNTX1_VTX_EVENT_DONE_MASK) | (cntx1_vtx_event_done << SQ_DEBUG_CONST_MGR_FSM_CNTX1_VTX_EVENT_DONE_SHIFT)
+#define SQ_DEBUG_CONST_MGR_FSM_SET_CNTX1_PIX_EVENT_DONE(sq_debug_const_mgr_fsm_reg, cntx1_pix_event_done) \
+ sq_debug_const_mgr_fsm_reg = (sq_debug_const_mgr_fsm_reg & ~SQ_DEBUG_CONST_MGR_FSM_CNTX1_PIX_EVENT_DONE_MASK) | (cntx1_pix_event_done << SQ_DEBUG_CONST_MGR_FSM_CNTX1_PIX_EVENT_DONE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_const_mgr_fsm_t {
+ unsigned int tex_const_event_state : SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_EVENT_STATE_SIZE;
+ unsigned int reserved1 : SQ_DEBUG_CONST_MGR_FSM_RESERVED1_SIZE;
+ unsigned int alu_const_event_state : SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_EVENT_STATE_SIZE;
+ unsigned int reserved2 : SQ_DEBUG_CONST_MGR_FSM_RESERVED2_SIZE;
+ unsigned int alu_const_cntx_valid : SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_CNTX_VALID_SIZE;
+ unsigned int tex_const_cntx_valid : SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_CNTX_VALID_SIZE;
+ unsigned int cntx0_vtx_event_done : SQ_DEBUG_CONST_MGR_FSM_CNTX0_VTX_EVENT_DONE_SIZE;
+ unsigned int cntx0_pix_event_done : SQ_DEBUG_CONST_MGR_FSM_CNTX0_PIX_EVENT_DONE_SIZE;
+ unsigned int cntx1_vtx_event_done : SQ_DEBUG_CONST_MGR_FSM_CNTX1_VTX_EVENT_DONE_SIZE;
+ unsigned int cntx1_pix_event_done : SQ_DEBUG_CONST_MGR_FSM_CNTX1_PIX_EVENT_DONE_SIZE;
+ unsigned int : 8;
+ } sq_debug_const_mgr_fsm_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_const_mgr_fsm_t {
+ unsigned int : 8;
+ unsigned int cntx1_pix_event_done : SQ_DEBUG_CONST_MGR_FSM_CNTX1_PIX_EVENT_DONE_SIZE;
+ unsigned int cntx1_vtx_event_done : SQ_DEBUG_CONST_MGR_FSM_CNTX1_VTX_EVENT_DONE_SIZE;
+ unsigned int cntx0_pix_event_done : SQ_DEBUG_CONST_MGR_FSM_CNTX0_PIX_EVENT_DONE_SIZE;
+ unsigned int cntx0_vtx_event_done : SQ_DEBUG_CONST_MGR_FSM_CNTX0_VTX_EVENT_DONE_SIZE;
+ unsigned int tex_const_cntx_valid : SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_CNTX_VALID_SIZE;
+ unsigned int alu_const_cntx_valid : SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_CNTX_VALID_SIZE;
+ unsigned int reserved2 : SQ_DEBUG_CONST_MGR_FSM_RESERVED2_SIZE;
+ unsigned int alu_const_event_state : SQ_DEBUG_CONST_MGR_FSM_ALU_CONST_EVENT_STATE_SIZE;
+ unsigned int reserved1 : SQ_DEBUG_CONST_MGR_FSM_RESERVED1_SIZE;
+ unsigned int tex_const_event_state : SQ_DEBUG_CONST_MGR_FSM_TEX_CONST_EVENT_STATE_SIZE;
+ } sq_debug_const_mgr_fsm_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_const_mgr_fsm_t f;
+} sq_debug_const_mgr_fsm_u;
+
+
+/*
+ * SQ_DEBUG_TP_FSM struct
+ */
+
+#define SQ_DEBUG_TP_FSM_EX_TP_SIZE 3
+#define SQ_DEBUG_TP_FSM_RESERVED0_SIZE 1
+#define SQ_DEBUG_TP_FSM_CF_TP_SIZE 4
+#define SQ_DEBUG_TP_FSM_IF_TP_SIZE 3
+#define SQ_DEBUG_TP_FSM_RESERVED1_SIZE 1
+#define SQ_DEBUG_TP_FSM_TIS_TP_SIZE 2
+#define SQ_DEBUG_TP_FSM_RESERVED2_SIZE 2
+#define SQ_DEBUG_TP_FSM_GS_TP_SIZE 2
+#define SQ_DEBUG_TP_FSM_RESERVED3_SIZE 2
+#define SQ_DEBUG_TP_FSM_FCR_TP_SIZE 2
+#define SQ_DEBUG_TP_FSM_RESERVED4_SIZE 2
+#define SQ_DEBUG_TP_FSM_FCS_TP_SIZE 2
+#define SQ_DEBUG_TP_FSM_RESERVED5_SIZE 2
+#define SQ_DEBUG_TP_FSM_ARB_TR_TP_SIZE 3
+
+#define SQ_DEBUG_TP_FSM_EX_TP_SHIFT 0
+#define SQ_DEBUG_TP_FSM_RESERVED0_SHIFT 3
+#define SQ_DEBUG_TP_FSM_CF_TP_SHIFT 4
+#define SQ_DEBUG_TP_FSM_IF_TP_SHIFT 8
+#define SQ_DEBUG_TP_FSM_RESERVED1_SHIFT 11
+#define SQ_DEBUG_TP_FSM_TIS_TP_SHIFT 12
+#define SQ_DEBUG_TP_FSM_RESERVED2_SHIFT 14
+#define SQ_DEBUG_TP_FSM_GS_TP_SHIFT 16
+#define SQ_DEBUG_TP_FSM_RESERVED3_SHIFT 18
+#define SQ_DEBUG_TP_FSM_FCR_TP_SHIFT 20
+#define SQ_DEBUG_TP_FSM_RESERVED4_SHIFT 22
+#define SQ_DEBUG_TP_FSM_FCS_TP_SHIFT 24
+#define SQ_DEBUG_TP_FSM_RESERVED5_SHIFT 26
+#define SQ_DEBUG_TP_FSM_ARB_TR_TP_SHIFT 28
+
+#define SQ_DEBUG_TP_FSM_EX_TP_MASK 0x00000007
+#define SQ_DEBUG_TP_FSM_RESERVED0_MASK 0x00000008
+#define SQ_DEBUG_TP_FSM_CF_TP_MASK 0x000000f0
+#define SQ_DEBUG_TP_FSM_IF_TP_MASK 0x00000700
+#define SQ_DEBUG_TP_FSM_RESERVED1_MASK 0x00000800
+#define SQ_DEBUG_TP_FSM_TIS_TP_MASK 0x00003000
+#define SQ_DEBUG_TP_FSM_RESERVED2_MASK 0x0000c000
+#define SQ_DEBUG_TP_FSM_GS_TP_MASK 0x00030000
+#define SQ_DEBUG_TP_FSM_RESERVED3_MASK 0x000c0000
+#define SQ_DEBUG_TP_FSM_FCR_TP_MASK 0x00300000
+#define SQ_DEBUG_TP_FSM_RESERVED4_MASK 0x00c00000
+#define SQ_DEBUG_TP_FSM_FCS_TP_MASK 0x03000000
+#define SQ_DEBUG_TP_FSM_RESERVED5_MASK 0x0c000000
+#define SQ_DEBUG_TP_FSM_ARB_TR_TP_MASK 0x70000000
+
+#define SQ_DEBUG_TP_FSM_MASK \
+ (SQ_DEBUG_TP_FSM_EX_TP_MASK | \
+ SQ_DEBUG_TP_FSM_RESERVED0_MASK | \
+ SQ_DEBUG_TP_FSM_CF_TP_MASK | \
+ SQ_DEBUG_TP_FSM_IF_TP_MASK | \
+ SQ_DEBUG_TP_FSM_RESERVED1_MASK | \
+ SQ_DEBUG_TP_FSM_TIS_TP_MASK | \
+ SQ_DEBUG_TP_FSM_RESERVED2_MASK | \
+ SQ_DEBUG_TP_FSM_GS_TP_MASK | \
+ SQ_DEBUG_TP_FSM_RESERVED3_MASK | \
+ SQ_DEBUG_TP_FSM_FCR_TP_MASK | \
+ SQ_DEBUG_TP_FSM_RESERVED4_MASK | \
+ SQ_DEBUG_TP_FSM_FCS_TP_MASK | \
+ SQ_DEBUG_TP_FSM_RESERVED5_MASK | \
+ SQ_DEBUG_TP_FSM_ARB_TR_TP_MASK)
+
+#define SQ_DEBUG_TP_FSM(ex_tp, reserved0, cf_tp, if_tp, reserved1, tis_tp, reserved2, gs_tp, reserved3, fcr_tp, reserved4, fcs_tp, reserved5, arb_tr_tp) \
+ ((ex_tp << SQ_DEBUG_TP_FSM_EX_TP_SHIFT) | \
+ (reserved0 << SQ_DEBUG_TP_FSM_RESERVED0_SHIFT) | \
+ (cf_tp << SQ_DEBUG_TP_FSM_CF_TP_SHIFT) | \
+ (if_tp << SQ_DEBUG_TP_FSM_IF_TP_SHIFT) | \
+ (reserved1 << SQ_DEBUG_TP_FSM_RESERVED1_SHIFT) | \
+ (tis_tp << SQ_DEBUG_TP_FSM_TIS_TP_SHIFT) | \
+ (reserved2 << SQ_DEBUG_TP_FSM_RESERVED2_SHIFT) | \
+ (gs_tp << SQ_DEBUG_TP_FSM_GS_TP_SHIFT) | \
+ (reserved3 << SQ_DEBUG_TP_FSM_RESERVED3_SHIFT) | \
+ (fcr_tp << SQ_DEBUG_TP_FSM_FCR_TP_SHIFT) | \
+ (reserved4 << SQ_DEBUG_TP_FSM_RESERVED4_SHIFT) | \
+ (fcs_tp << SQ_DEBUG_TP_FSM_FCS_TP_SHIFT) | \
+ (reserved5 << SQ_DEBUG_TP_FSM_RESERVED5_SHIFT) | \
+ (arb_tr_tp << SQ_DEBUG_TP_FSM_ARB_TR_TP_SHIFT))
+
+#define SQ_DEBUG_TP_FSM_GET_EX_TP(sq_debug_tp_fsm) \
+ ((sq_debug_tp_fsm & SQ_DEBUG_TP_FSM_EX_TP_MASK) >> SQ_DEBUG_TP_FSM_EX_TP_SHIFT)
+#define SQ_DEBUG_TP_FSM_GET_RESERVED0(sq_debug_tp_fsm) \
+ ((sq_debug_tp_fsm & SQ_DEBUG_TP_FSM_RESERVED0_MASK) >> SQ_DEBUG_TP_FSM_RESERVED0_SHIFT)
+#define SQ_DEBUG_TP_FSM_GET_CF_TP(sq_debug_tp_fsm) \
+ ((sq_debug_tp_fsm & SQ_DEBUG_TP_FSM_CF_TP_MASK) >> SQ_DEBUG_TP_FSM_CF_TP_SHIFT)
+#define SQ_DEBUG_TP_FSM_GET_IF_TP(sq_debug_tp_fsm) \
+ ((sq_debug_tp_fsm & SQ_DEBUG_TP_FSM_IF_TP_MASK) >> SQ_DEBUG_TP_FSM_IF_TP_SHIFT)
+#define SQ_DEBUG_TP_FSM_GET_RESERVED1(sq_debug_tp_fsm) \
+ ((sq_debug_tp_fsm & SQ_DEBUG_TP_FSM_RESERVED1_MASK) >> SQ_DEBUG_TP_FSM_RESERVED1_SHIFT)
+#define SQ_DEBUG_TP_FSM_GET_TIS_TP(sq_debug_tp_fsm) \
+ ((sq_debug_tp_fsm & SQ_DEBUG_TP_FSM_TIS_TP_MASK) >> SQ_DEBUG_TP_FSM_TIS_TP_SHIFT)
+#define SQ_DEBUG_TP_FSM_GET_RESERVED2(sq_debug_tp_fsm) \
+ ((sq_debug_tp_fsm & SQ_DEBUG_TP_FSM_RESERVED2_MASK) >> SQ_DEBUG_TP_FSM_RESERVED2_SHIFT)
+#define SQ_DEBUG_TP_FSM_GET_GS_TP(sq_debug_tp_fsm) \
+ ((sq_debug_tp_fsm & SQ_DEBUG_TP_FSM_GS_TP_MASK) >> SQ_DEBUG_TP_FSM_GS_TP_SHIFT)
+#define SQ_DEBUG_TP_FSM_GET_RESERVED3(sq_debug_tp_fsm) \
+ ((sq_debug_tp_fsm & SQ_DEBUG_TP_FSM_RESERVED3_MASK) >> SQ_DEBUG_TP_FSM_RESERVED3_SHIFT)
+#define SQ_DEBUG_TP_FSM_GET_FCR_TP(sq_debug_tp_fsm) \
+ ((sq_debug_tp_fsm & SQ_DEBUG_TP_FSM_FCR_TP_MASK) >> SQ_DEBUG_TP_FSM_FCR_TP_SHIFT)
+#define SQ_DEBUG_TP_FSM_GET_RESERVED4(sq_debug_tp_fsm) \
+ ((sq_debug_tp_fsm & SQ_DEBUG_TP_FSM_RESERVED4_MASK) >> SQ_DEBUG_TP_FSM_RESERVED4_SHIFT)
+#define SQ_DEBUG_TP_FSM_GET_FCS_TP(sq_debug_tp_fsm) \
+ ((sq_debug_tp_fsm & SQ_DEBUG_TP_FSM_FCS_TP_MASK) >> SQ_DEBUG_TP_FSM_FCS_TP_SHIFT)
+#define SQ_DEBUG_TP_FSM_GET_RESERVED5(sq_debug_tp_fsm) \
+ ((sq_debug_tp_fsm & SQ_DEBUG_TP_FSM_RESERVED5_MASK) >> SQ_DEBUG_TP_FSM_RESERVED5_SHIFT)
+#define SQ_DEBUG_TP_FSM_GET_ARB_TR_TP(sq_debug_tp_fsm) \
+ ((sq_debug_tp_fsm & SQ_DEBUG_TP_FSM_ARB_TR_TP_MASK) >> SQ_DEBUG_TP_FSM_ARB_TR_TP_SHIFT)
+
+#define SQ_DEBUG_TP_FSM_SET_EX_TP(sq_debug_tp_fsm_reg, ex_tp) \
+ sq_debug_tp_fsm_reg = (sq_debug_tp_fsm_reg & ~SQ_DEBUG_TP_FSM_EX_TP_MASK) | (ex_tp << SQ_DEBUG_TP_FSM_EX_TP_SHIFT)
+#define SQ_DEBUG_TP_FSM_SET_RESERVED0(sq_debug_tp_fsm_reg, reserved0) \
+ sq_debug_tp_fsm_reg = (sq_debug_tp_fsm_reg & ~SQ_DEBUG_TP_FSM_RESERVED0_MASK) | (reserved0 << SQ_DEBUG_TP_FSM_RESERVED0_SHIFT)
+#define SQ_DEBUG_TP_FSM_SET_CF_TP(sq_debug_tp_fsm_reg, cf_tp) \
+ sq_debug_tp_fsm_reg = (sq_debug_tp_fsm_reg & ~SQ_DEBUG_TP_FSM_CF_TP_MASK) | (cf_tp << SQ_DEBUG_TP_FSM_CF_TP_SHIFT)
+#define SQ_DEBUG_TP_FSM_SET_IF_TP(sq_debug_tp_fsm_reg, if_tp) \
+ sq_debug_tp_fsm_reg = (sq_debug_tp_fsm_reg & ~SQ_DEBUG_TP_FSM_IF_TP_MASK) | (if_tp << SQ_DEBUG_TP_FSM_IF_TP_SHIFT)
+#define SQ_DEBUG_TP_FSM_SET_RESERVED1(sq_debug_tp_fsm_reg, reserved1) \
+ sq_debug_tp_fsm_reg = (sq_debug_tp_fsm_reg & ~SQ_DEBUG_TP_FSM_RESERVED1_MASK) | (reserved1 << SQ_DEBUG_TP_FSM_RESERVED1_SHIFT)
+#define SQ_DEBUG_TP_FSM_SET_TIS_TP(sq_debug_tp_fsm_reg, tis_tp) \
+ sq_debug_tp_fsm_reg = (sq_debug_tp_fsm_reg & ~SQ_DEBUG_TP_FSM_TIS_TP_MASK) | (tis_tp << SQ_DEBUG_TP_FSM_TIS_TP_SHIFT)
+#define SQ_DEBUG_TP_FSM_SET_RESERVED2(sq_debug_tp_fsm_reg, reserved2) \
+ sq_debug_tp_fsm_reg = (sq_debug_tp_fsm_reg & ~SQ_DEBUG_TP_FSM_RESERVED2_MASK) | (reserved2 << SQ_DEBUG_TP_FSM_RESERVED2_SHIFT)
+#define SQ_DEBUG_TP_FSM_SET_GS_TP(sq_debug_tp_fsm_reg, gs_tp) \
+ sq_debug_tp_fsm_reg = (sq_debug_tp_fsm_reg & ~SQ_DEBUG_TP_FSM_GS_TP_MASK) | (gs_tp << SQ_DEBUG_TP_FSM_GS_TP_SHIFT)
+#define SQ_DEBUG_TP_FSM_SET_RESERVED3(sq_debug_tp_fsm_reg, reserved3) \
+ sq_debug_tp_fsm_reg = (sq_debug_tp_fsm_reg & ~SQ_DEBUG_TP_FSM_RESERVED3_MASK) | (reserved3 << SQ_DEBUG_TP_FSM_RESERVED3_SHIFT)
+#define SQ_DEBUG_TP_FSM_SET_FCR_TP(sq_debug_tp_fsm_reg, fcr_tp) \
+ sq_debug_tp_fsm_reg = (sq_debug_tp_fsm_reg & ~SQ_DEBUG_TP_FSM_FCR_TP_MASK) | (fcr_tp << SQ_DEBUG_TP_FSM_FCR_TP_SHIFT)
+#define SQ_DEBUG_TP_FSM_SET_RESERVED4(sq_debug_tp_fsm_reg, reserved4) \
+ sq_debug_tp_fsm_reg = (sq_debug_tp_fsm_reg & ~SQ_DEBUG_TP_FSM_RESERVED4_MASK) | (reserved4 << SQ_DEBUG_TP_FSM_RESERVED4_SHIFT)
+#define SQ_DEBUG_TP_FSM_SET_FCS_TP(sq_debug_tp_fsm_reg, fcs_tp) \
+ sq_debug_tp_fsm_reg = (sq_debug_tp_fsm_reg & ~SQ_DEBUG_TP_FSM_FCS_TP_MASK) | (fcs_tp << SQ_DEBUG_TP_FSM_FCS_TP_SHIFT)
+#define SQ_DEBUG_TP_FSM_SET_RESERVED5(sq_debug_tp_fsm_reg, reserved5) \
+ sq_debug_tp_fsm_reg = (sq_debug_tp_fsm_reg & ~SQ_DEBUG_TP_FSM_RESERVED5_MASK) | (reserved5 << SQ_DEBUG_TP_FSM_RESERVED5_SHIFT)
+#define SQ_DEBUG_TP_FSM_SET_ARB_TR_TP(sq_debug_tp_fsm_reg, arb_tr_tp) \
+ sq_debug_tp_fsm_reg = (sq_debug_tp_fsm_reg & ~SQ_DEBUG_TP_FSM_ARB_TR_TP_MASK) | (arb_tr_tp << SQ_DEBUG_TP_FSM_ARB_TR_TP_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_tp_fsm_t {
+ unsigned int ex_tp : SQ_DEBUG_TP_FSM_EX_TP_SIZE;
+ unsigned int reserved0 : SQ_DEBUG_TP_FSM_RESERVED0_SIZE;
+ unsigned int cf_tp : SQ_DEBUG_TP_FSM_CF_TP_SIZE;
+ unsigned int if_tp : SQ_DEBUG_TP_FSM_IF_TP_SIZE;
+ unsigned int reserved1 : SQ_DEBUG_TP_FSM_RESERVED1_SIZE;
+ unsigned int tis_tp : SQ_DEBUG_TP_FSM_TIS_TP_SIZE;
+ unsigned int reserved2 : SQ_DEBUG_TP_FSM_RESERVED2_SIZE;
+ unsigned int gs_tp : SQ_DEBUG_TP_FSM_GS_TP_SIZE;
+ unsigned int reserved3 : SQ_DEBUG_TP_FSM_RESERVED3_SIZE;
+ unsigned int fcr_tp : SQ_DEBUG_TP_FSM_FCR_TP_SIZE;
+ unsigned int reserved4 : SQ_DEBUG_TP_FSM_RESERVED4_SIZE;
+ unsigned int fcs_tp : SQ_DEBUG_TP_FSM_FCS_TP_SIZE;
+ unsigned int reserved5 : SQ_DEBUG_TP_FSM_RESERVED5_SIZE;
+ unsigned int arb_tr_tp : SQ_DEBUG_TP_FSM_ARB_TR_TP_SIZE;
+ unsigned int : 1;
+ } sq_debug_tp_fsm_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_tp_fsm_t {
+ unsigned int : 1;
+ unsigned int arb_tr_tp : SQ_DEBUG_TP_FSM_ARB_TR_TP_SIZE;
+ unsigned int reserved5 : SQ_DEBUG_TP_FSM_RESERVED5_SIZE;
+ unsigned int fcs_tp : SQ_DEBUG_TP_FSM_FCS_TP_SIZE;
+ unsigned int reserved4 : SQ_DEBUG_TP_FSM_RESERVED4_SIZE;
+ unsigned int fcr_tp : SQ_DEBUG_TP_FSM_FCR_TP_SIZE;
+ unsigned int reserved3 : SQ_DEBUG_TP_FSM_RESERVED3_SIZE;
+ unsigned int gs_tp : SQ_DEBUG_TP_FSM_GS_TP_SIZE;
+ unsigned int reserved2 : SQ_DEBUG_TP_FSM_RESERVED2_SIZE;
+ unsigned int tis_tp : SQ_DEBUG_TP_FSM_TIS_TP_SIZE;
+ unsigned int reserved1 : SQ_DEBUG_TP_FSM_RESERVED1_SIZE;
+ unsigned int if_tp : SQ_DEBUG_TP_FSM_IF_TP_SIZE;
+ unsigned int cf_tp : SQ_DEBUG_TP_FSM_CF_TP_SIZE;
+ unsigned int reserved0 : SQ_DEBUG_TP_FSM_RESERVED0_SIZE;
+ unsigned int ex_tp : SQ_DEBUG_TP_FSM_EX_TP_SIZE;
+ } sq_debug_tp_fsm_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_tp_fsm_t f;
+} sq_debug_tp_fsm_u;
+
+
+/*
+ * SQ_DEBUG_FSM_ALU_0 struct
+ */
+
+#define SQ_DEBUG_FSM_ALU_0_EX_ALU_0_SIZE 3
+#define SQ_DEBUG_FSM_ALU_0_RESERVED0_SIZE 1
+#define SQ_DEBUG_FSM_ALU_0_CF_ALU_0_SIZE 4
+#define SQ_DEBUG_FSM_ALU_0_IF_ALU_0_SIZE 3
+#define SQ_DEBUG_FSM_ALU_0_RESERVED1_SIZE 1
+#define SQ_DEBUG_FSM_ALU_0_DU1_ALU_0_SIZE 3
+#define SQ_DEBUG_FSM_ALU_0_RESERVED2_SIZE 1
+#define SQ_DEBUG_FSM_ALU_0_DU0_ALU_0_SIZE 3
+#define SQ_DEBUG_FSM_ALU_0_RESERVED3_SIZE 1
+#define SQ_DEBUG_FSM_ALU_0_AIS_ALU_0_SIZE 3
+#define SQ_DEBUG_FSM_ALU_0_RESERVED4_SIZE 1
+#define SQ_DEBUG_FSM_ALU_0_ACS_ALU_0_SIZE 3
+#define SQ_DEBUG_FSM_ALU_0_RESERVED5_SIZE 1
+#define SQ_DEBUG_FSM_ALU_0_ARB_TR_ALU_SIZE 3
+
+#define SQ_DEBUG_FSM_ALU_0_EX_ALU_0_SHIFT 0
+#define SQ_DEBUG_FSM_ALU_0_RESERVED0_SHIFT 3
+#define SQ_DEBUG_FSM_ALU_0_CF_ALU_0_SHIFT 4
+#define SQ_DEBUG_FSM_ALU_0_IF_ALU_0_SHIFT 8
+#define SQ_DEBUG_FSM_ALU_0_RESERVED1_SHIFT 11
+#define SQ_DEBUG_FSM_ALU_0_DU1_ALU_0_SHIFT 12
+#define SQ_DEBUG_FSM_ALU_0_RESERVED2_SHIFT 15
+#define SQ_DEBUG_FSM_ALU_0_DU0_ALU_0_SHIFT 16
+#define SQ_DEBUG_FSM_ALU_0_RESERVED3_SHIFT 19
+#define SQ_DEBUG_FSM_ALU_0_AIS_ALU_0_SHIFT 20
+#define SQ_DEBUG_FSM_ALU_0_RESERVED4_SHIFT 23
+#define SQ_DEBUG_FSM_ALU_0_ACS_ALU_0_SHIFT 24
+#define SQ_DEBUG_FSM_ALU_0_RESERVED5_SHIFT 27
+#define SQ_DEBUG_FSM_ALU_0_ARB_TR_ALU_SHIFT 28
+
+#define SQ_DEBUG_FSM_ALU_0_EX_ALU_0_MASK 0x00000007
+#define SQ_DEBUG_FSM_ALU_0_RESERVED0_MASK 0x00000008
+#define SQ_DEBUG_FSM_ALU_0_CF_ALU_0_MASK 0x000000f0
+#define SQ_DEBUG_FSM_ALU_0_IF_ALU_0_MASK 0x00000700
+#define SQ_DEBUG_FSM_ALU_0_RESERVED1_MASK 0x00000800
+#define SQ_DEBUG_FSM_ALU_0_DU1_ALU_0_MASK 0x00007000
+#define SQ_DEBUG_FSM_ALU_0_RESERVED2_MASK 0x00008000
+#define SQ_DEBUG_FSM_ALU_0_DU0_ALU_0_MASK 0x00070000
+#define SQ_DEBUG_FSM_ALU_0_RESERVED3_MASK 0x00080000
+#define SQ_DEBUG_FSM_ALU_0_AIS_ALU_0_MASK 0x00700000
+#define SQ_DEBUG_FSM_ALU_0_RESERVED4_MASK 0x00800000
+#define SQ_DEBUG_FSM_ALU_0_ACS_ALU_0_MASK 0x07000000
+#define SQ_DEBUG_FSM_ALU_0_RESERVED5_MASK 0x08000000
+#define SQ_DEBUG_FSM_ALU_0_ARB_TR_ALU_MASK 0x70000000
+
+#define SQ_DEBUG_FSM_ALU_0_MASK \
+ (SQ_DEBUG_FSM_ALU_0_EX_ALU_0_MASK | \
+ SQ_DEBUG_FSM_ALU_0_RESERVED0_MASK | \
+ SQ_DEBUG_FSM_ALU_0_CF_ALU_0_MASK | \
+ SQ_DEBUG_FSM_ALU_0_IF_ALU_0_MASK | \
+ SQ_DEBUG_FSM_ALU_0_RESERVED1_MASK | \
+ SQ_DEBUG_FSM_ALU_0_DU1_ALU_0_MASK | \
+ SQ_DEBUG_FSM_ALU_0_RESERVED2_MASK | \
+ SQ_DEBUG_FSM_ALU_0_DU0_ALU_0_MASK | \
+ SQ_DEBUG_FSM_ALU_0_RESERVED3_MASK | \
+ SQ_DEBUG_FSM_ALU_0_AIS_ALU_0_MASK | \
+ SQ_DEBUG_FSM_ALU_0_RESERVED4_MASK | \
+ SQ_DEBUG_FSM_ALU_0_ACS_ALU_0_MASK | \
+ SQ_DEBUG_FSM_ALU_0_RESERVED5_MASK | \
+ SQ_DEBUG_FSM_ALU_0_ARB_TR_ALU_MASK)
+
+#define SQ_DEBUG_FSM_ALU_0(ex_alu_0, reserved0, cf_alu_0, if_alu_0, reserved1, du1_alu_0, reserved2, du0_alu_0, reserved3, ais_alu_0, reserved4, acs_alu_0, reserved5, arb_tr_alu) \
+ ((ex_alu_0 << SQ_DEBUG_FSM_ALU_0_EX_ALU_0_SHIFT) | \
+ (reserved0 << SQ_DEBUG_FSM_ALU_0_RESERVED0_SHIFT) | \
+ (cf_alu_0 << SQ_DEBUG_FSM_ALU_0_CF_ALU_0_SHIFT) | \
+ (if_alu_0 << SQ_DEBUG_FSM_ALU_0_IF_ALU_0_SHIFT) | \
+ (reserved1 << SQ_DEBUG_FSM_ALU_0_RESERVED1_SHIFT) | \
+ (du1_alu_0 << SQ_DEBUG_FSM_ALU_0_DU1_ALU_0_SHIFT) | \
+ (reserved2 << SQ_DEBUG_FSM_ALU_0_RESERVED2_SHIFT) | \
+ (du0_alu_0 << SQ_DEBUG_FSM_ALU_0_DU0_ALU_0_SHIFT) | \
+ (reserved3 << SQ_DEBUG_FSM_ALU_0_RESERVED3_SHIFT) | \
+ (ais_alu_0 << SQ_DEBUG_FSM_ALU_0_AIS_ALU_0_SHIFT) | \
+ (reserved4 << SQ_DEBUG_FSM_ALU_0_RESERVED4_SHIFT) | \
+ (acs_alu_0 << SQ_DEBUG_FSM_ALU_0_ACS_ALU_0_SHIFT) | \
+ (reserved5 << SQ_DEBUG_FSM_ALU_0_RESERVED5_SHIFT) | \
+ (arb_tr_alu << SQ_DEBUG_FSM_ALU_0_ARB_TR_ALU_SHIFT))
+
+#define SQ_DEBUG_FSM_ALU_0_GET_EX_ALU_0(sq_debug_fsm_alu_0) \
+ ((sq_debug_fsm_alu_0 & SQ_DEBUG_FSM_ALU_0_EX_ALU_0_MASK) >> SQ_DEBUG_FSM_ALU_0_EX_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_GET_RESERVED0(sq_debug_fsm_alu_0) \
+ ((sq_debug_fsm_alu_0 & SQ_DEBUG_FSM_ALU_0_RESERVED0_MASK) >> SQ_DEBUG_FSM_ALU_0_RESERVED0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_GET_CF_ALU_0(sq_debug_fsm_alu_0) \
+ ((sq_debug_fsm_alu_0 & SQ_DEBUG_FSM_ALU_0_CF_ALU_0_MASK) >> SQ_DEBUG_FSM_ALU_0_CF_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_GET_IF_ALU_0(sq_debug_fsm_alu_0) \
+ ((sq_debug_fsm_alu_0 & SQ_DEBUG_FSM_ALU_0_IF_ALU_0_MASK) >> SQ_DEBUG_FSM_ALU_0_IF_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_GET_RESERVED1(sq_debug_fsm_alu_0) \
+ ((sq_debug_fsm_alu_0 & SQ_DEBUG_FSM_ALU_0_RESERVED1_MASK) >> SQ_DEBUG_FSM_ALU_0_RESERVED1_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_GET_DU1_ALU_0(sq_debug_fsm_alu_0) \
+ ((sq_debug_fsm_alu_0 & SQ_DEBUG_FSM_ALU_0_DU1_ALU_0_MASK) >> SQ_DEBUG_FSM_ALU_0_DU1_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_GET_RESERVED2(sq_debug_fsm_alu_0) \
+ ((sq_debug_fsm_alu_0 & SQ_DEBUG_FSM_ALU_0_RESERVED2_MASK) >> SQ_DEBUG_FSM_ALU_0_RESERVED2_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_GET_DU0_ALU_0(sq_debug_fsm_alu_0) \
+ ((sq_debug_fsm_alu_0 & SQ_DEBUG_FSM_ALU_0_DU0_ALU_0_MASK) >> SQ_DEBUG_FSM_ALU_0_DU0_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_GET_RESERVED3(sq_debug_fsm_alu_0) \
+ ((sq_debug_fsm_alu_0 & SQ_DEBUG_FSM_ALU_0_RESERVED3_MASK) >> SQ_DEBUG_FSM_ALU_0_RESERVED3_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_GET_AIS_ALU_0(sq_debug_fsm_alu_0) \
+ ((sq_debug_fsm_alu_0 & SQ_DEBUG_FSM_ALU_0_AIS_ALU_0_MASK) >> SQ_DEBUG_FSM_ALU_0_AIS_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_GET_RESERVED4(sq_debug_fsm_alu_0) \
+ ((sq_debug_fsm_alu_0 & SQ_DEBUG_FSM_ALU_0_RESERVED4_MASK) >> SQ_DEBUG_FSM_ALU_0_RESERVED4_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_GET_ACS_ALU_0(sq_debug_fsm_alu_0) \
+ ((sq_debug_fsm_alu_0 & SQ_DEBUG_FSM_ALU_0_ACS_ALU_0_MASK) >> SQ_DEBUG_FSM_ALU_0_ACS_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_GET_RESERVED5(sq_debug_fsm_alu_0) \
+ ((sq_debug_fsm_alu_0 & SQ_DEBUG_FSM_ALU_0_RESERVED5_MASK) >> SQ_DEBUG_FSM_ALU_0_RESERVED5_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_GET_ARB_TR_ALU(sq_debug_fsm_alu_0) \
+ ((sq_debug_fsm_alu_0 & SQ_DEBUG_FSM_ALU_0_ARB_TR_ALU_MASK) >> SQ_DEBUG_FSM_ALU_0_ARB_TR_ALU_SHIFT)
+
+#define SQ_DEBUG_FSM_ALU_0_SET_EX_ALU_0(sq_debug_fsm_alu_0_reg, ex_alu_0) \
+ sq_debug_fsm_alu_0_reg = (sq_debug_fsm_alu_0_reg & ~SQ_DEBUG_FSM_ALU_0_EX_ALU_0_MASK) | (ex_alu_0 << SQ_DEBUG_FSM_ALU_0_EX_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_SET_RESERVED0(sq_debug_fsm_alu_0_reg, reserved0) \
+ sq_debug_fsm_alu_0_reg = (sq_debug_fsm_alu_0_reg & ~SQ_DEBUG_FSM_ALU_0_RESERVED0_MASK) | (reserved0 << SQ_DEBUG_FSM_ALU_0_RESERVED0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_SET_CF_ALU_0(sq_debug_fsm_alu_0_reg, cf_alu_0) \
+ sq_debug_fsm_alu_0_reg = (sq_debug_fsm_alu_0_reg & ~SQ_DEBUG_FSM_ALU_0_CF_ALU_0_MASK) | (cf_alu_0 << SQ_DEBUG_FSM_ALU_0_CF_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_SET_IF_ALU_0(sq_debug_fsm_alu_0_reg, if_alu_0) \
+ sq_debug_fsm_alu_0_reg = (sq_debug_fsm_alu_0_reg & ~SQ_DEBUG_FSM_ALU_0_IF_ALU_0_MASK) | (if_alu_0 << SQ_DEBUG_FSM_ALU_0_IF_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_SET_RESERVED1(sq_debug_fsm_alu_0_reg, reserved1) \
+ sq_debug_fsm_alu_0_reg = (sq_debug_fsm_alu_0_reg & ~SQ_DEBUG_FSM_ALU_0_RESERVED1_MASK) | (reserved1 << SQ_DEBUG_FSM_ALU_0_RESERVED1_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_SET_DU1_ALU_0(sq_debug_fsm_alu_0_reg, du1_alu_0) \
+ sq_debug_fsm_alu_0_reg = (sq_debug_fsm_alu_0_reg & ~SQ_DEBUG_FSM_ALU_0_DU1_ALU_0_MASK) | (du1_alu_0 << SQ_DEBUG_FSM_ALU_0_DU1_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_SET_RESERVED2(sq_debug_fsm_alu_0_reg, reserved2) \
+ sq_debug_fsm_alu_0_reg = (sq_debug_fsm_alu_0_reg & ~SQ_DEBUG_FSM_ALU_0_RESERVED2_MASK) | (reserved2 << SQ_DEBUG_FSM_ALU_0_RESERVED2_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_SET_DU0_ALU_0(sq_debug_fsm_alu_0_reg, du0_alu_0) \
+ sq_debug_fsm_alu_0_reg = (sq_debug_fsm_alu_0_reg & ~SQ_DEBUG_FSM_ALU_0_DU0_ALU_0_MASK) | (du0_alu_0 << SQ_DEBUG_FSM_ALU_0_DU0_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_SET_RESERVED3(sq_debug_fsm_alu_0_reg, reserved3) \
+ sq_debug_fsm_alu_0_reg = (sq_debug_fsm_alu_0_reg & ~SQ_DEBUG_FSM_ALU_0_RESERVED3_MASK) | (reserved3 << SQ_DEBUG_FSM_ALU_0_RESERVED3_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_SET_AIS_ALU_0(sq_debug_fsm_alu_0_reg, ais_alu_0) \
+ sq_debug_fsm_alu_0_reg = (sq_debug_fsm_alu_0_reg & ~SQ_DEBUG_FSM_ALU_0_AIS_ALU_0_MASK) | (ais_alu_0 << SQ_DEBUG_FSM_ALU_0_AIS_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_SET_RESERVED4(sq_debug_fsm_alu_0_reg, reserved4) \
+ sq_debug_fsm_alu_0_reg = (sq_debug_fsm_alu_0_reg & ~SQ_DEBUG_FSM_ALU_0_RESERVED4_MASK) | (reserved4 << SQ_DEBUG_FSM_ALU_0_RESERVED4_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_SET_ACS_ALU_0(sq_debug_fsm_alu_0_reg, acs_alu_0) \
+ sq_debug_fsm_alu_0_reg = (sq_debug_fsm_alu_0_reg & ~SQ_DEBUG_FSM_ALU_0_ACS_ALU_0_MASK) | (acs_alu_0 << SQ_DEBUG_FSM_ALU_0_ACS_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_SET_RESERVED5(sq_debug_fsm_alu_0_reg, reserved5) \
+ sq_debug_fsm_alu_0_reg = (sq_debug_fsm_alu_0_reg & ~SQ_DEBUG_FSM_ALU_0_RESERVED5_MASK) | (reserved5 << SQ_DEBUG_FSM_ALU_0_RESERVED5_SHIFT)
+#define SQ_DEBUG_FSM_ALU_0_SET_ARB_TR_ALU(sq_debug_fsm_alu_0_reg, arb_tr_alu) \
+ sq_debug_fsm_alu_0_reg = (sq_debug_fsm_alu_0_reg & ~SQ_DEBUG_FSM_ALU_0_ARB_TR_ALU_MASK) | (arb_tr_alu << SQ_DEBUG_FSM_ALU_0_ARB_TR_ALU_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_fsm_alu_0_t {
+ unsigned int ex_alu_0 : SQ_DEBUG_FSM_ALU_0_EX_ALU_0_SIZE;
+ unsigned int reserved0 : SQ_DEBUG_FSM_ALU_0_RESERVED0_SIZE;
+ unsigned int cf_alu_0 : SQ_DEBUG_FSM_ALU_0_CF_ALU_0_SIZE;
+ unsigned int if_alu_0 : SQ_DEBUG_FSM_ALU_0_IF_ALU_0_SIZE;
+ unsigned int reserved1 : SQ_DEBUG_FSM_ALU_0_RESERVED1_SIZE;
+ unsigned int du1_alu_0 : SQ_DEBUG_FSM_ALU_0_DU1_ALU_0_SIZE;
+ unsigned int reserved2 : SQ_DEBUG_FSM_ALU_0_RESERVED2_SIZE;
+ unsigned int du0_alu_0 : SQ_DEBUG_FSM_ALU_0_DU0_ALU_0_SIZE;
+ unsigned int reserved3 : SQ_DEBUG_FSM_ALU_0_RESERVED3_SIZE;
+ unsigned int ais_alu_0 : SQ_DEBUG_FSM_ALU_0_AIS_ALU_0_SIZE;
+ unsigned int reserved4 : SQ_DEBUG_FSM_ALU_0_RESERVED4_SIZE;
+ unsigned int acs_alu_0 : SQ_DEBUG_FSM_ALU_0_ACS_ALU_0_SIZE;
+ unsigned int reserved5 : SQ_DEBUG_FSM_ALU_0_RESERVED5_SIZE;
+ unsigned int arb_tr_alu : SQ_DEBUG_FSM_ALU_0_ARB_TR_ALU_SIZE;
+ unsigned int : 1;
+ } sq_debug_fsm_alu_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_fsm_alu_0_t {
+ unsigned int : 1;
+ unsigned int arb_tr_alu : SQ_DEBUG_FSM_ALU_0_ARB_TR_ALU_SIZE;
+ unsigned int reserved5 : SQ_DEBUG_FSM_ALU_0_RESERVED5_SIZE;
+ unsigned int acs_alu_0 : SQ_DEBUG_FSM_ALU_0_ACS_ALU_0_SIZE;
+ unsigned int reserved4 : SQ_DEBUG_FSM_ALU_0_RESERVED4_SIZE;
+ unsigned int ais_alu_0 : SQ_DEBUG_FSM_ALU_0_AIS_ALU_0_SIZE;
+ unsigned int reserved3 : SQ_DEBUG_FSM_ALU_0_RESERVED3_SIZE;
+ unsigned int du0_alu_0 : SQ_DEBUG_FSM_ALU_0_DU0_ALU_0_SIZE;
+ unsigned int reserved2 : SQ_DEBUG_FSM_ALU_0_RESERVED2_SIZE;
+ unsigned int du1_alu_0 : SQ_DEBUG_FSM_ALU_0_DU1_ALU_0_SIZE;
+ unsigned int reserved1 : SQ_DEBUG_FSM_ALU_0_RESERVED1_SIZE;
+ unsigned int if_alu_0 : SQ_DEBUG_FSM_ALU_0_IF_ALU_0_SIZE;
+ unsigned int cf_alu_0 : SQ_DEBUG_FSM_ALU_0_CF_ALU_0_SIZE;
+ unsigned int reserved0 : SQ_DEBUG_FSM_ALU_0_RESERVED0_SIZE;
+ unsigned int ex_alu_0 : SQ_DEBUG_FSM_ALU_0_EX_ALU_0_SIZE;
+ } sq_debug_fsm_alu_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_fsm_alu_0_t f;
+} sq_debug_fsm_alu_0_u;
+
+
+/*
+ * SQ_DEBUG_FSM_ALU_1 struct
+ */
+
+#define SQ_DEBUG_FSM_ALU_1_EX_ALU_0_SIZE 3
+#define SQ_DEBUG_FSM_ALU_1_RESERVED0_SIZE 1
+#define SQ_DEBUG_FSM_ALU_1_CF_ALU_0_SIZE 4
+#define SQ_DEBUG_FSM_ALU_1_IF_ALU_0_SIZE 3
+#define SQ_DEBUG_FSM_ALU_1_RESERVED1_SIZE 1
+#define SQ_DEBUG_FSM_ALU_1_DU1_ALU_0_SIZE 3
+#define SQ_DEBUG_FSM_ALU_1_RESERVED2_SIZE 1
+#define SQ_DEBUG_FSM_ALU_1_DU0_ALU_0_SIZE 3
+#define SQ_DEBUG_FSM_ALU_1_RESERVED3_SIZE 1
+#define SQ_DEBUG_FSM_ALU_1_AIS_ALU_0_SIZE 3
+#define SQ_DEBUG_FSM_ALU_1_RESERVED4_SIZE 1
+#define SQ_DEBUG_FSM_ALU_1_ACS_ALU_0_SIZE 3
+#define SQ_DEBUG_FSM_ALU_1_RESERVED5_SIZE 1
+#define SQ_DEBUG_FSM_ALU_1_ARB_TR_ALU_SIZE 3
+
+#define SQ_DEBUG_FSM_ALU_1_EX_ALU_0_SHIFT 0
+#define SQ_DEBUG_FSM_ALU_1_RESERVED0_SHIFT 3
+#define SQ_DEBUG_FSM_ALU_1_CF_ALU_0_SHIFT 4
+#define SQ_DEBUG_FSM_ALU_1_IF_ALU_0_SHIFT 8
+#define SQ_DEBUG_FSM_ALU_1_RESERVED1_SHIFT 11
+#define SQ_DEBUG_FSM_ALU_1_DU1_ALU_0_SHIFT 12
+#define SQ_DEBUG_FSM_ALU_1_RESERVED2_SHIFT 15
+#define SQ_DEBUG_FSM_ALU_1_DU0_ALU_0_SHIFT 16
+#define SQ_DEBUG_FSM_ALU_1_RESERVED3_SHIFT 19
+#define SQ_DEBUG_FSM_ALU_1_AIS_ALU_0_SHIFT 20
+#define SQ_DEBUG_FSM_ALU_1_RESERVED4_SHIFT 23
+#define SQ_DEBUG_FSM_ALU_1_ACS_ALU_0_SHIFT 24
+#define SQ_DEBUG_FSM_ALU_1_RESERVED5_SHIFT 27
+#define SQ_DEBUG_FSM_ALU_1_ARB_TR_ALU_SHIFT 28
+
+#define SQ_DEBUG_FSM_ALU_1_EX_ALU_0_MASK 0x00000007
+#define SQ_DEBUG_FSM_ALU_1_RESERVED0_MASK 0x00000008
+#define SQ_DEBUG_FSM_ALU_1_CF_ALU_0_MASK 0x000000f0
+#define SQ_DEBUG_FSM_ALU_1_IF_ALU_0_MASK 0x00000700
+#define SQ_DEBUG_FSM_ALU_1_RESERVED1_MASK 0x00000800
+#define SQ_DEBUG_FSM_ALU_1_DU1_ALU_0_MASK 0x00007000
+#define SQ_DEBUG_FSM_ALU_1_RESERVED2_MASK 0x00008000
+#define SQ_DEBUG_FSM_ALU_1_DU0_ALU_0_MASK 0x00070000
+#define SQ_DEBUG_FSM_ALU_1_RESERVED3_MASK 0x00080000
+#define SQ_DEBUG_FSM_ALU_1_AIS_ALU_0_MASK 0x00700000
+#define SQ_DEBUG_FSM_ALU_1_RESERVED4_MASK 0x00800000
+#define SQ_DEBUG_FSM_ALU_1_ACS_ALU_0_MASK 0x07000000
+#define SQ_DEBUG_FSM_ALU_1_RESERVED5_MASK 0x08000000
+#define SQ_DEBUG_FSM_ALU_1_ARB_TR_ALU_MASK 0x70000000
+
+#define SQ_DEBUG_FSM_ALU_1_MASK \
+ (SQ_DEBUG_FSM_ALU_1_EX_ALU_0_MASK | \
+ SQ_DEBUG_FSM_ALU_1_RESERVED0_MASK | \
+ SQ_DEBUG_FSM_ALU_1_CF_ALU_0_MASK | \
+ SQ_DEBUG_FSM_ALU_1_IF_ALU_0_MASK | \
+ SQ_DEBUG_FSM_ALU_1_RESERVED1_MASK | \
+ SQ_DEBUG_FSM_ALU_1_DU1_ALU_0_MASK | \
+ SQ_DEBUG_FSM_ALU_1_RESERVED2_MASK | \
+ SQ_DEBUG_FSM_ALU_1_DU0_ALU_0_MASK | \
+ SQ_DEBUG_FSM_ALU_1_RESERVED3_MASK | \
+ SQ_DEBUG_FSM_ALU_1_AIS_ALU_0_MASK | \
+ SQ_DEBUG_FSM_ALU_1_RESERVED4_MASK | \
+ SQ_DEBUG_FSM_ALU_1_ACS_ALU_0_MASK | \
+ SQ_DEBUG_FSM_ALU_1_RESERVED5_MASK | \
+ SQ_DEBUG_FSM_ALU_1_ARB_TR_ALU_MASK)
+
+#define SQ_DEBUG_FSM_ALU_1(ex_alu_0, reserved0, cf_alu_0, if_alu_0, reserved1, du1_alu_0, reserved2, du0_alu_0, reserved3, ais_alu_0, reserved4, acs_alu_0, reserved5, arb_tr_alu) \
+ ((ex_alu_0 << SQ_DEBUG_FSM_ALU_1_EX_ALU_0_SHIFT) | \
+ (reserved0 << SQ_DEBUG_FSM_ALU_1_RESERVED0_SHIFT) | \
+ (cf_alu_0 << SQ_DEBUG_FSM_ALU_1_CF_ALU_0_SHIFT) | \
+ (if_alu_0 << SQ_DEBUG_FSM_ALU_1_IF_ALU_0_SHIFT) | \
+ (reserved1 << SQ_DEBUG_FSM_ALU_1_RESERVED1_SHIFT) | \
+ (du1_alu_0 << SQ_DEBUG_FSM_ALU_1_DU1_ALU_0_SHIFT) | \
+ (reserved2 << SQ_DEBUG_FSM_ALU_1_RESERVED2_SHIFT) | \
+ (du0_alu_0 << SQ_DEBUG_FSM_ALU_1_DU0_ALU_0_SHIFT) | \
+ (reserved3 << SQ_DEBUG_FSM_ALU_1_RESERVED3_SHIFT) | \
+ (ais_alu_0 << SQ_DEBUG_FSM_ALU_1_AIS_ALU_0_SHIFT) | \
+ (reserved4 << SQ_DEBUG_FSM_ALU_1_RESERVED4_SHIFT) | \
+ (acs_alu_0 << SQ_DEBUG_FSM_ALU_1_ACS_ALU_0_SHIFT) | \
+ (reserved5 << SQ_DEBUG_FSM_ALU_1_RESERVED5_SHIFT) | \
+ (arb_tr_alu << SQ_DEBUG_FSM_ALU_1_ARB_TR_ALU_SHIFT))
+
+#define SQ_DEBUG_FSM_ALU_1_GET_EX_ALU_0(sq_debug_fsm_alu_1) \
+ ((sq_debug_fsm_alu_1 & SQ_DEBUG_FSM_ALU_1_EX_ALU_0_MASK) >> SQ_DEBUG_FSM_ALU_1_EX_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_GET_RESERVED0(sq_debug_fsm_alu_1) \
+ ((sq_debug_fsm_alu_1 & SQ_DEBUG_FSM_ALU_1_RESERVED0_MASK) >> SQ_DEBUG_FSM_ALU_1_RESERVED0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_GET_CF_ALU_0(sq_debug_fsm_alu_1) \
+ ((sq_debug_fsm_alu_1 & SQ_DEBUG_FSM_ALU_1_CF_ALU_0_MASK) >> SQ_DEBUG_FSM_ALU_1_CF_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_GET_IF_ALU_0(sq_debug_fsm_alu_1) \
+ ((sq_debug_fsm_alu_1 & SQ_DEBUG_FSM_ALU_1_IF_ALU_0_MASK) >> SQ_DEBUG_FSM_ALU_1_IF_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_GET_RESERVED1(sq_debug_fsm_alu_1) \
+ ((sq_debug_fsm_alu_1 & SQ_DEBUG_FSM_ALU_1_RESERVED1_MASK) >> SQ_DEBUG_FSM_ALU_1_RESERVED1_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_GET_DU1_ALU_0(sq_debug_fsm_alu_1) \
+ ((sq_debug_fsm_alu_1 & SQ_DEBUG_FSM_ALU_1_DU1_ALU_0_MASK) >> SQ_DEBUG_FSM_ALU_1_DU1_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_GET_RESERVED2(sq_debug_fsm_alu_1) \
+ ((sq_debug_fsm_alu_1 & SQ_DEBUG_FSM_ALU_1_RESERVED2_MASK) >> SQ_DEBUG_FSM_ALU_1_RESERVED2_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_GET_DU0_ALU_0(sq_debug_fsm_alu_1) \
+ ((sq_debug_fsm_alu_1 & SQ_DEBUG_FSM_ALU_1_DU0_ALU_0_MASK) >> SQ_DEBUG_FSM_ALU_1_DU0_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_GET_RESERVED3(sq_debug_fsm_alu_1) \
+ ((sq_debug_fsm_alu_1 & SQ_DEBUG_FSM_ALU_1_RESERVED3_MASK) >> SQ_DEBUG_FSM_ALU_1_RESERVED3_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_GET_AIS_ALU_0(sq_debug_fsm_alu_1) \
+ ((sq_debug_fsm_alu_1 & SQ_DEBUG_FSM_ALU_1_AIS_ALU_0_MASK) >> SQ_DEBUG_FSM_ALU_1_AIS_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_GET_RESERVED4(sq_debug_fsm_alu_1) \
+ ((sq_debug_fsm_alu_1 & SQ_DEBUG_FSM_ALU_1_RESERVED4_MASK) >> SQ_DEBUG_FSM_ALU_1_RESERVED4_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_GET_ACS_ALU_0(sq_debug_fsm_alu_1) \
+ ((sq_debug_fsm_alu_1 & SQ_DEBUG_FSM_ALU_1_ACS_ALU_0_MASK) >> SQ_DEBUG_FSM_ALU_1_ACS_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_GET_RESERVED5(sq_debug_fsm_alu_1) \
+ ((sq_debug_fsm_alu_1 & SQ_DEBUG_FSM_ALU_1_RESERVED5_MASK) >> SQ_DEBUG_FSM_ALU_1_RESERVED5_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_GET_ARB_TR_ALU(sq_debug_fsm_alu_1) \
+ ((sq_debug_fsm_alu_1 & SQ_DEBUG_FSM_ALU_1_ARB_TR_ALU_MASK) >> SQ_DEBUG_FSM_ALU_1_ARB_TR_ALU_SHIFT)
+
+#define SQ_DEBUG_FSM_ALU_1_SET_EX_ALU_0(sq_debug_fsm_alu_1_reg, ex_alu_0) \
+ sq_debug_fsm_alu_1_reg = (sq_debug_fsm_alu_1_reg & ~SQ_DEBUG_FSM_ALU_1_EX_ALU_0_MASK) | (ex_alu_0 << SQ_DEBUG_FSM_ALU_1_EX_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_SET_RESERVED0(sq_debug_fsm_alu_1_reg, reserved0) \
+ sq_debug_fsm_alu_1_reg = (sq_debug_fsm_alu_1_reg & ~SQ_DEBUG_FSM_ALU_1_RESERVED0_MASK) | (reserved0 << SQ_DEBUG_FSM_ALU_1_RESERVED0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_SET_CF_ALU_0(sq_debug_fsm_alu_1_reg, cf_alu_0) \
+ sq_debug_fsm_alu_1_reg = (sq_debug_fsm_alu_1_reg & ~SQ_DEBUG_FSM_ALU_1_CF_ALU_0_MASK) | (cf_alu_0 << SQ_DEBUG_FSM_ALU_1_CF_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_SET_IF_ALU_0(sq_debug_fsm_alu_1_reg, if_alu_0) \
+ sq_debug_fsm_alu_1_reg = (sq_debug_fsm_alu_1_reg & ~SQ_DEBUG_FSM_ALU_1_IF_ALU_0_MASK) | (if_alu_0 << SQ_DEBUG_FSM_ALU_1_IF_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_SET_RESERVED1(sq_debug_fsm_alu_1_reg, reserved1) \
+ sq_debug_fsm_alu_1_reg = (sq_debug_fsm_alu_1_reg & ~SQ_DEBUG_FSM_ALU_1_RESERVED1_MASK) | (reserved1 << SQ_DEBUG_FSM_ALU_1_RESERVED1_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_SET_DU1_ALU_0(sq_debug_fsm_alu_1_reg, du1_alu_0) \
+ sq_debug_fsm_alu_1_reg = (sq_debug_fsm_alu_1_reg & ~SQ_DEBUG_FSM_ALU_1_DU1_ALU_0_MASK) | (du1_alu_0 << SQ_DEBUG_FSM_ALU_1_DU1_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_SET_RESERVED2(sq_debug_fsm_alu_1_reg, reserved2) \
+ sq_debug_fsm_alu_1_reg = (sq_debug_fsm_alu_1_reg & ~SQ_DEBUG_FSM_ALU_1_RESERVED2_MASK) | (reserved2 << SQ_DEBUG_FSM_ALU_1_RESERVED2_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_SET_DU0_ALU_0(sq_debug_fsm_alu_1_reg, du0_alu_0) \
+ sq_debug_fsm_alu_1_reg = (sq_debug_fsm_alu_1_reg & ~SQ_DEBUG_FSM_ALU_1_DU0_ALU_0_MASK) | (du0_alu_0 << SQ_DEBUG_FSM_ALU_1_DU0_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_SET_RESERVED3(sq_debug_fsm_alu_1_reg, reserved3) \
+ sq_debug_fsm_alu_1_reg = (sq_debug_fsm_alu_1_reg & ~SQ_DEBUG_FSM_ALU_1_RESERVED3_MASK) | (reserved3 << SQ_DEBUG_FSM_ALU_1_RESERVED3_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_SET_AIS_ALU_0(sq_debug_fsm_alu_1_reg, ais_alu_0) \
+ sq_debug_fsm_alu_1_reg = (sq_debug_fsm_alu_1_reg & ~SQ_DEBUG_FSM_ALU_1_AIS_ALU_0_MASK) | (ais_alu_0 << SQ_DEBUG_FSM_ALU_1_AIS_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_SET_RESERVED4(sq_debug_fsm_alu_1_reg, reserved4) \
+ sq_debug_fsm_alu_1_reg = (sq_debug_fsm_alu_1_reg & ~SQ_DEBUG_FSM_ALU_1_RESERVED4_MASK) | (reserved4 << SQ_DEBUG_FSM_ALU_1_RESERVED4_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_SET_ACS_ALU_0(sq_debug_fsm_alu_1_reg, acs_alu_0) \
+ sq_debug_fsm_alu_1_reg = (sq_debug_fsm_alu_1_reg & ~SQ_DEBUG_FSM_ALU_1_ACS_ALU_0_MASK) | (acs_alu_0 << SQ_DEBUG_FSM_ALU_1_ACS_ALU_0_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_SET_RESERVED5(sq_debug_fsm_alu_1_reg, reserved5) \
+ sq_debug_fsm_alu_1_reg = (sq_debug_fsm_alu_1_reg & ~SQ_DEBUG_FSM_ALU_1_RESERVED5_MASK) | (reserved5 << SQ_DEBUG_FSM_ALU_1_RESERVED5_SHIFT)
+#define SQ_DEBUG_FSM_ALU_1_SET_ARB_TR_ALU(sq_debug_fsm_alu_1_reg, arb_tr_alu) \
+ sq_debug_fsm_alu_1_reg = (sq_debug_fsm_alu_1_reg & ~SQ_DEBUG_FSM_ALU_1_ARB_TR_ALU_MASK) | (arb_tr_alu << SQ_DEBUG_FSM_ALU_1_ARB_TR_ALU_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_fsm_alu_1_t {
+ unsigned int ex_alu_0 : SQ_DEBUG_FSM_ALU_1_EX_ALU_0_SIZE;
+ unsigned int reserved0 : SQ_DEBUG_FSM_ALU_1_RESERVED0_SIZE;
+ unsigned int cf_alu_0 : SQ_DEBUG_FSM_ALU_1_CF_ALU_0_SIZE;
+ unsigned int if_alu_0 : SQ_DEBUG_FSM_ALU_1_IF_ALU_0_SIZE;
+ unsigned int reserved1 : SQ_DEBUG_FSM_ALU_1_RESERVED1_SIZE;
+ unsigned int du1_alu_0 : SQ_DEBUG_FSM_ALU_1_DU1_ALU_0_SIZE;
+ unsigned int reserved2 : SQ_DEBUG_FSM_ALU_1_RESERVED2_SIZE;
+ unsigned int du0_alu_0 : SQ_DEBUG_FSM_ALU_1_DU0_ALU_0_SIZE;
+ unsigned int reserved3 : SQ_DEBUG_FSM_ALU_1_RESERVED3_SIZE;
+ unsigned int ais_alu_0 : SQ_DEBUG_FSM_ALU_1_AIS_ALU_0_SIZE;
+ unsigned int reserved4 : SQ_DEBUG_FSM_ALU_1_RESERVED4_SIZE;
+ unsigned int acs_alu_0 : SQ_DEBUG_FSM_ALU_1_ACS_ALU_0_SIZE;
+ unsigned int reserved5 : SQ_DEBUG_FSM_ALU_1_RESERVED5_SIZE;
+ unsigned int arb_tr_alu : SQ_DEBUG_FSM_ALU_1_ARB_TR_ALU_SIZE;
+ unsigned int : 1;
+ } sq_debug_fsm_alu_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_fsm_alu_1_t {
+ unsigned int : 1;
+ unsigned int arb_tr_alu : SQ_DEBUG_FSM_ALU_1_ARB_TR_ALU_SIZE;
+ unsigned int reserved5 : SQ_DEBUG_FSM_ALU_1_RESERVED5_SIZE;
+ unsigned int acs_alu_0 : SQ_DEBUG_FSM_ALU_1_ACS_ALU_0_SIZE;
+ unsigned int reserved4 : SQ_DEBUG_FSM_ALU_1_RESERVED4_SIZE;
+ unsigned int ais_alu_0 : SQ_DEBUG_FSM_ALU_1_AIS_ALU_0_SIZE;
+ unsigned int reserved3 : SQ_DEBUG_FSM_ALU_1_RESERVED3_SIZE;
+ unsigned int du0_alu_0 : SQ_DEBUG_FSM_ALU_1_DU0_ALU_0_SIZE;
+ unsigned int reserved2 : SQ_DEBUG_FSM_ALU_1_RESERVED2_SIZE;
+ unsigned int du1_alu_0 : SQ_DEBUG_FSM_ALU_1_DU1_ALU_0_SIZE;
+ unsigned int reserved1 : SQ_DEBUG_FSM_ALU_1_RESERVED1_SIZE;
+ unsigned int if_alu_0 : SQ_DEBUG_FSM_ALU_1_IF_ALU_0_SIZE;
+ unsigned int cf_alu_0 : SQ_DEBUG_FSM_ALU_1_CF_ALU_0_SIZE;
+ unsigned int reserved0 : SQ_DEBUG_FSM_ALU_1_RESERVED0_SIZE;
+ unsigned int ex_alu_0 : SQ_DEBUG_FSM_ALU_1_EX_ALU_0_SIZE;
+ } sq_debug_fsm_alu_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_fsm_alu_1_t f;
+} sq_debug_fsm_alu_1_u;
+
+
+/*
+ * SQ_DEBUG_EXP_ALLOC struct
+ */
+
+#define SQ_DEBUG_EXP_ALLOC_POS_BUF_AVAIL_SIZE 4
+#define SQ_DEBUG_EXP_ALLOC_COLOR_BUF_AVAIL_SIZE 8
+#define SQ_DEBUG_EXP_ALLOC_EA_BUF_AVAIL_SIZE 3
+#define SQ_DEBUG_EXP_ALLOC_RESERVED_SIZE 1
+#define SQ_DEBUG_EXP_ALLOC_ALLOC_TBL_BUF_AVAIL_SIZE 6
+
+#define SQ_DEBUG_EXP_ALLOC_POS_BUF_AVAIL_SHIFT 0
+#define SQ_DEBUG_EXP_ALLOC_COLOR_BUF_AVAIL_SHIFT 4
+#define SQ_DEBUG_EXP_ALLOC_EA_BUF_AVAIL_SHIFT 12
+#define SQ_DEBUG_EXP_ALLOC_RESERVED_SHIFT 15
+#define SQ_DEBUG_EXP_ALLOC_ALLOC_TBL_BUF_AVAIL_SHIFT 16
+
+#define SQ_DEBUG_EXP_ALLOC_POS_BUF_AVAIL_MASK 0x0000000f
+#define SQ_DEBUG_EXP_ALLOC_COLOR_BUF_AVAIL_MASK 0x00000ff0
+#define SQ_DEBUG_EXP_ALLOC_EA_BUF_AVAIL_MASK 0x00007000
+#define SQ_DEBUG_EXP_ALLOC_RESERVED_MASK 0x00008000
+#define SQ_DEBUG_EXP_ALLOC_ALLOC_TBL_BUF_AVAIL_MASK 0x003f0000
+
+#define SQ_DEBUG_EXP_ALLOC_MASK \
+ (SQ_DEBUG_EXP_ALLOC_POS_BUF_AVAIL_MASK | \
+ SQ_DEBUG_EXP_ALLOC_COLOR_BUF_AVAIL_MASK | \
+ SQ_DEBUG_EXP_ALLOC_EA_BUF_AVAIL_MASK | \
+ SQ_DEBUG_EXP_ALLOC_RESERVED_MASK | \
+ SQ_DEBUG_EXP_ALLOC_ALLOC_TBL_BUF_AVAIL_MASK)
+
+#define SQ_DEBUG_EXP_ALLOC(pos_buf_avail, color_buf_avail, ea_buf_avail, reserved, alloc_tbl_buf_avail) \
+ ((pos_buf_avail << SQ_DEBUG_EXP_ALLOC_POS_BUF_AVAIL_SHIFT) | \
+ (color_buf_avail << SQ_DEBUG_EXP_ALLOC_COLOR_BUF_AVAIL_SHIFT) | \
+ (ea_buf_avail << SQ_DEBUG_EXP_ALLOC_EA_BUF_AVAIL_SHIFT) | \
+ (reserved << SQ_DEBUG_EXP_ALLOC_RESERVED_SHIFT) | \
+ (alloc_tbl_buf_avail << SQ_DEBUG_EXP_ALLOC_ALLOC_TBL_BUF_AVAIL_SHIFT))
+
+#define SQ_DEBUG_EXP_ALLOC_GET_POS_BUF_AVAIL(sq_debug_exp_alloc) \
+ ((sq_debug_exp_alloc & SQ_DEBUG_EXP_ALLOC_POS_BUF_AVAIL_MASK) >> SQ_DEBUG_EXP_ALLOC_POS_BUF_AVAIL_SHIFT)
+#define SQ_DEBUG_EXP_ALLOC_GET_COLOR_BUF_AVAIL(sq_debug_exp_alloc) \
+ ((sq_debug_exp_alloc & SQ_DEBUG_EXP_ALLOC_COLOR_BUF_AVAIL_MASK) >> SQ_DEBUG_EXP_ALLOC_COLOR_BUF_AVAIL_SHIFT)
+#define SQ_DEBUG_EXP_ALLOC_GET_EA_BUF_AVAIL(sq_debug_exp_alloc) \
+ ((sq_debug_exp_alloc & SQ_DEBUG_EXP_ALLOC_EA_BUF_AVAIL_MASK) >> SQ_DEBUG_EXP_ALLOC_EA_BUF_AVAIL_SHIFT)
+#define SQ_DEBUG_EXP_ALLOC_GET_RESERVED(sq_debug_exp_alloc) \
+ ((sq_debug_exp_alloc & SQ_DEBUG_EXP_ALLOC_RESERVED_MASK) >> SQ_DEBUG_EXP_ALLOC_RESERVED_SHIFT)
+#define SQ_DEBUG_EXP_ALLOC_GET_ALLOC_TBL_BUF_AVAIL(sq_debug_exp_alloc) \
+ ((sq_debug_exp_alloc & SQ_DEBUG_EXP_ALLOC_ALLOC_TBL_BUF_AVAIL_MASK) >> SQ_DEBUG_EXP_ALLOC_ALLOC_TBL_BUF_AVAIL_SHIFT)
+
+#define SQ_DEBUG_EXP_ALLOC_SET_POS_BUF_AVAIL(sq_debug_exp_alloc_reg, pos_buf_avail) \
+ sq_debug_exp_alloc_reg = (sq_debug_exp_alloc_reg & ~SQ_DEBUG_EXP_ALLOC_POS_BUF_AVAIL_MASK) | (pos_buf_avail << SQ_DEBUG_EXP_ALLOC_POS_BUF_AVAIL_SHIFT)
+#define SQ_DEBUG_EXP_ALLOC_SET_COLOR_BUF_AVAIL(sq_debug_exp_alloc_reg, color_buf_avail) \
+ sq_debug_exp_alloc_reg = (sq_debug_exp_alloc_reg & ~SQ_DEBUG_EXP_ALLOC_COLOR_BUF_AVAIL_MASK) | (color_buf_avail << SQ_DEBUG_EXP_ALLOC_COLOR_BUF_AVAIL_SHIFT)
+#define SQ_DEBUG_EXP_ALLOC_SET_EA_BUF_AVAIL(sq_debug_exp_alloc_reg, ea_buf_avail) \
+ sq_debug_exp_alloc_reg = (sq_debug_exp_alloc_reg & ~SQ_DEBUG_EXP_ALLOC_EA_BUF_AVAIL_MASK) | (ea_buf_avail << SQ_DEBUG_EXP_ALLOC_EA_BUF_AVAIL_SHIFT)
+#define SQ_DEBUG_EXP_ALLOC_SET_RESERVED(sq_debug_exp_alloc_reg, reserved) \
+ sq_debug_exp_alloc_reg = (sq_debug_exp_alloc_reg & ~SQ_DEBUG_EXP_ALLOC_RESERVED_MASK) | (reserved << SQ_DEBUG_EXP_ALLOC_RESERVED_SHIFT)
+#define SQ_DEBUG_EXP_ALLOC_SET_ALLOC_TBL_BUF_AVAIL(sq_debug_exp_alloc_reg, alloc_tbl_buf_avail) \
+ sq_debug_exp_alloc_reg = (sq_debug_exp_alloc_reg & ~SQ_DEBUG_EXP_ALLOC_ALLOC_TBL_BUF_AVAIL_MASK) | (alloc_tbl_buf_avail << SQ_DEBUG_EXP_ALLOC_ALLOC_TBL_BUF_AVAIL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_exp_alloc_t {
+ unsigned int pos_buf_avail : SQ_DEBUG_EXP_ALLOC_POS_BUF_AVAIL_SIZE;
+ unsigned int color_buf_avail : SQ_DEBUG_EXP_ALLOC_COLOR_BUF_AVAIL_SIZE;
+ unsigned int ea_buf_avail : SQ_DEBUG_EXP_ALLOC_EA_BUF_AVAIL_SIZE;
+ unsigned int reserved : SQ_DEBUG_EXP_ALLOC_RESERVED_SIZE;
+ unsigned int alloc_tbl_buf_avail : SQ_DEBUG_EXP_ALLOC_ALLOC_TBL_BUF_AVAIL_SIZE;
+ unsigned int : 10;
+ } sq_debug_exp_alloc_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_exp_alloc_t {
+ unsigned int : 10;
+ unsigned int alloc_tbl_buf_avail : SQ_DEBUG_EXP_ALLOC_ALLOC_TBL_BUF_AVAIL_SIZE;
+ unsigned int reserved : SQ_DEBUG_EXP_ALLOC_RESERVED_SIZE;
+ unsigned int ea_buf_avail : SQ_DEBUG_EXP_ALLOC_EA_BUF_AVAIL_SIZE;
+ unsigned int color_buf_avail : SQ_DEBUG_EXP_ALLOC_COLOR_BUF_AVAIL_SIZE;
+ unsigned int pos_buf_avail : SQ_DEBUG_EXP_ALLOC_POS_BUF_AVAIL_SIZE;
+ } sq_debug_exp_alloc_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_exp_alloc_t f;
+} sq_debug_exp_alloc_u;
+
+
+/*
+ * SQ_DEBUG_PTR_BUFF struct
+ */
+
+#define SQ_DEBUG_PTR_BUFF_END_OF_BUFFER_SIZE 1
+#define SQ_DEBUG_PTR_BUFF_DEALLOC_CNT_SIZE 4
+#define SQ_DEBUG_PTR_BUFF_QUAL_NEW_VECTOR_SIZE 1
+#define SQ_DEBUG_PTR_BUFF_EVENT_CONTEXT_ID_SIZE 3
+#define SQ_DEBUG_PTR_BUFF_SC_EVENT_ID_SIZE 5
+#define SQ_DEBUG_PTR_BUFF_QUAL_EVENT_SIZE 1
+#define SQ_DEBUG_PTR_BUFF_PRIM_TYPE_POLYGON_SIZE 1
+#define SQ_DEBUG_PTR_BUFF_EF_EMPTY_SIZE 1
+#define SQ_DEBUG_PTR_BUFF_VTX_SYNC_CNT_SIZE 11
+
+#define SQ_DEBUG_PTR_BUFF_END_OF_BUFFER_SHIFT 0
+#define SQ_DEBUG_PTR_BUFF_DEALLOC_CNT_SHIFT 1
+#define SQ_DEBUG_PTR_BUFF_QUAL_NEW_VECTOR_SHIFT 5
+#define SQ_DEBUG_PTR_BUFF_EVENT_CONTEXT_ID_SHIFT 6
+#define SQ_DEBUG_PTR_BUFF_SC_EVENT_ID_SHIFT 9
+#define SQ_DEBUG_PTR_BUFF_QUAL_EVENT_SHIFT 14
+#define SQ_DEBUG_PTR_BUFF_PRIM_TYPE_POLYGON_SHIFT 15
+#define SQ_DEBUG_PTR_BUFF_EF_EMPTY_SHIFT 16
+#define SQ_DEBUG_PTR_BUFF_VTX_SYNC_CNT_SHIFT 17
+
+#define SQ_DEBUG_PTR_BUFF_END_OF_BUFFER_MASK 0x00000001
+#define SQ_DEBUG_PTR_BUFF_DEALLOC_CNT_MASK 0x0000001e
+#define SQ_DEBUG_PTR_BUFF_QUAL_NEW_VECTOR_MASK 0x00000020
+#define SQ_DEBUG_PTR_BUFF_EVENT_CONTEXT_ID_MASK 0x000001c0
+#define SQ_DEBUG_PTR_BUFF_SC_EVENT_ID_MASK 0x00003e00
+#define SQ_DEBUG_PTR_BUFF_QUAL_EVENT_MASK 0x00004000
+#define SQ_DEBUG_PTR_BUFF_PRIM_TYPE_POLYGON_MASK 0x00008000
+#define SQ_DEBUG_PTR_BUFF_EF_EMPTY_MASK 0x00010000
+#define SQ_DEBUG_PTR_BUFF_VTX_SYNC_CNT_MASK 0x0ffe0000
+
+#define SQ_DEBUG_PTR_BUFF_MASK \
+ (SQ_DEBUG_PTR_BUFF_END_OF_BUFFER_MASK | \
+ SQ_DEBUG_PTR_BUFF_DEALLOC_CNT_MASK | \
+ SQ_DEBUG_PTR_BUFF_QUAL_NEW_VECTOR_MASK | \
+ SQ_DEBUG_PTR_BUFF_EVENT_CONTEXT_ID_MASK | \
+ SQ_DEBUG_PTR_BUFF_SC_EVENT_ID_MASK | \
+ SQ_DEBUG_PTR_BUFF_QUAL_EVENT_MASK | \
+ SQ_DEBUG_PTR_BUFF_PRIM_TYPE_POLYGON_MASK | \
+ SQ_DEBUG_PTR_BUFF_EF_EMPTY_MASK | \
+ SQ_DEBUG_PTR_BUFF_VTX_SYNC_CNT_MASK)
+
+#define SQ_DEBUG_PTR_BUFF(end_of_buffer, dealloc_cnt, qual_new_vector, event_context_id, sc_event_id, qual_event, prim_type_polygon, ef_empty, vtx_sync_cnt) \
+ ((end_of_buffer << SQ_DEBUG_PTR_BUFF_END_OF_BUFFER_SHIFT) | \
+ (dealloc_cnt << SQ_DEBUG_PTR_BUFF_DEALLOC_CNT_SHIFT) | \
+ (qual_new_vector << SQ_DEBUG_PTR_BUFF_QUAL_NEW_VECTOR_SHIFT) | \
+ (event_context_id << SQ_DEBUG_PTR_BUFF_EVENT_CONTEXT_ID_SHIFT) | \
+ (sc_event_id << SQ_DEBUG_PTR_BUFF_SC_EVENT_ID_SHIFT) | \
+ (qual_event << SQ_DEBUG_PTR_BUFF_QUAL_EVENT_SHIFT) | \
+ (prim_type_polygon << SQ_DEBUG_PTR_BUFF_PRIM_TYPE_POLYGON_SHIFT) | \
+ (ef_empty << SQ_DEBUG_PTR_BUFF_EF_EMPTY_SHIFT) | \
+ (vtx_sync_cnt << SQ_DEBUG_PTR_BUFF_VTX_SYNC_CNT_SHIFT))
+
+#define SQ_DEBUG_PTR_BUFF_GET_END_OF_BUFFER(sq_debug_ptr_buff) \
+ ((sq_debug_ptr_buff & SQ_DEBUG_PTR_BUFF_END_OF_BUFFER_MASK) >> SQ_DEBUG_PTR_BUFF_END_OF_BUFFER_SHIFT)
+#define SQ_DEBUG_PTR_BUFF_GET_DEALLOC_CNT(sq_debug_ptr_buff) \
+ ((sq_debug_ptr_buff & SQ_DEBUG_PTR_BUFF_DEALLOC_CNT_MASK) >> SQ_DEBUG_PTR_BUFF_DEALLOC_CNT_SHIFT)
+#define SQ_DEBUG_PTR_BUFF_GET_QUAL_NEW_VECTOR(sq_debug_ptr_buff) \
+ ((sq_debug_ptr_buff & SQ_DEBUG_PTR_BUFF_QUAL_NEW_VECTOR_MASK) >> SQ_DEBUG_PTR_BUFF_QUAL_NEW_VECTOR_SHIFT)
+#define SQ_DEBUG_PTR_BUFF_GET_EVENT_CONTEXT_ID(sq_debug_ptr_buff) \
+ ((sq_debug_ptr_buff & SQ_DEBUG_PTR_BUFF_EVENT_CONTEXT_ID_MASK) >> SQ_DEBUG_PTR_BUFF_EVENT_CONTEXT_ID_SHIFT)
+#define SQ_DEBUG_PTR_BUFF_GET_SC_EVENT_ID(sq_debug_ptr_buff) \
+ ((sq_debug_ptr_buff & SQ_DEBUG_PTR_BUFF_SC_EVENT_ID_MASK) >> SQ_DEBUG_PTR_BUFF_SC_EVENT_ID_SHIFT)
+#define SQ_DEBUG_PTR_BUFF_GET_QUAL_EVENT(sq_debug_ptr_buff) \
+ ((sq_debug_ptr_buff & SQ_DEBUG_PTR_BUFF_QUAL_EVENT_MASK) >> SQ_DEBUG_PTR_BUFF_QUAL_EVENT_SHIFT)
+#define SQ_DEBUG_PTR_BUFF_GET_PRIM_TYPE_POLYGON(sq_debug_ptr_buff) \
+ ((sq_debug_ptr_buff & SQ_DEBUG_PTR_BUFF_PRIM_TYPE_POLYGON_MASK) >> SQ_DEBUG_PTR_BUFF_PRIM_TYPE_POLYGON_SHIFT)
+#define SQ_DEBUG_PTR_BUFF_GET_EF_EMPTY(sq_debug_ptr_buff) \
+ ((sq_debug_ptr_buff & SQ_DEBUG_PTR_BUFF_EF_EMPTY_MASK) >> SQ_DEBUG_PTR_BUFF_EF_EMPTY_SHIFT)
+#define SQ_DEBUG_PTR_BUFF_GET_VTX_SYNC_CNT(sq_debug_ptr_buff) \
+ ((sq_debug_ptr_buff & SQ_DEBUG_PTR_BUFF_VTX_SYNC_CNT_MASK) >> SQ_DEBUG_PTR_BUFF_VTX_SYNC_CNT_SHIFT)
+
+#define SQ_DEBUG_PTR_BUFF_SET_END_OF_BUFFER(sq_debug_ptr_buff_reg, end_of_buffer) \
+ sq_debug_ptr_buff_reg = (sq_debug_ptr_buff_reg & ~SQ_DEBUG_PTR_BUFF_END_OF_BUFFER_MASK) | (end_of_buffer << SQ_DEBUG_PTR_BUFF_END_OF_BUFFER_SHIFT)
+#define SQ_DEBUG_PTR_BUFF_SET_DEALLOC_CNT(sq_debug_ptr_buff_reg, dealloc_cnt) \
+ sq_debug_ptr_buff_reg = (sq_debug_ptr_buff_reg & ~SQ_DEBUG_PTR_BUFF_DEALLOC_CNT_MASK) | (dealloc_cnt << SQ_DEBUG_PTR_BUFF_DEALLOC_CNT_SHIFT)
+#define SQ_DEBUG_PTR_BUFF_SET_QUAL_NEW_VECTOR(sq_debug_ptr_buff_reg, qual_new_vector) \
+ sq_debug_ptr_buff_reg = (sq_debug_ptr_buff_reg & ~SQ_DEBUG_PTR_BUFF_QUAL_NEW_VECTOR_MASK) | (qual_new_vector << SQ_DEBUG_PTR_BUFF_QUAL_NEW_VECTOR_SHIFT)
+#define SQ_DEBUG_PTR_BUFF_SET_EVENT_CONTEXT_ID(sq_debug_ptr_buff_reg, event_context_id) \
+ sq_debug_ptr_buff_reg = (sq_debug_ptr_buff_reg & ~SQ_DEBUG_PTR_BUFF_EVENT_CONTEXT_ID_MASK) | (event_context_id << SQ_DEBUG_PTR_BUFF_EVENT_CONTEXT_ID_SHIFT)
+#define SQ_DEBUG_PTR_BUFF_SET_SC_EVENT_ID(sq_debug_ptr_buff_reg, sc_event_id) \
+ sq_debug_ptr_buff_reg = (sq_debug_ptr_buff_reg & ~SQ_DEBUG_PTR_BUFF_SC_EVENT_ID_MASK) | (sc_event_id << SQ_DEBUG_PTR_BUFF_SC_EVENT_ID_SHIFT)
+#define SQ_DEBUG_PTR_BUFF_SET_QUAL_EVENT(sq_debug_ptr_buff_reg, qual_event) \
+ sq_debug_ptr_buff_reg = (sq_debug_ptr_buff_reg & ~SQ_DEBUG_PTR_BUFF_QUAL_EVENT_MASK) | (qual_event << SQ_DEBUG_PTR_BUFF_QUAL_EVENT_SHIFT)
+#define SQ_DEBUG_PTR_BUFF_SET_PRIM_TYPE_POLYGON(sq_debug_ptr_buff_reg, prim_type_polygon) \
+ sq_debug_ptr_buff_reg = (sq_debug_ptr_buff_reg & ~SQ_DEBUG_PTR_BUFF_PRIM_TYPE_POLYGON_MASK) | (prim_type_polygon << SQ_DEBUG_PTR_BUFF_PRIM_TYPE_POLYGON_SHIFT)
+#define SQ_DEBUG_PTR_BUFF_SET_EF_EMPTY(sq_debug_ptr_buff_reg, ef_empty) \
+ sq_debug_ptr_buff_reg = (sq_debug_ptr_buff_reg & ~SQ_DEBUG_PTR_BUFF_EF_EMPTY_MASK) | (ef_empty << SQ_DEBUG_PTR_BUFF_EF_EMPTY_SHIFT)
+#define SQ_DEBUG_PTR_BUFF_SET_VTX_SYNC_CNT(sq_debug_ptr_buff_reg, vtx_sync_cnt) \
+ sq_debug_ptr_buff_reg = (sq_debug_ptr_buff_reg & ~SQ_DEBUG_PTR_BUFF_VTX_SYNC_CNT_MASK) | (vtx_sync_cnt << SQ_DEBUG_PTR_BUFF_VTX_SYNC_CNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_ptr_buff_t {
+ unsigned int end_of_buffer : SQ_DEBUG_PTR_BUFF_END_OF_BUFFER_SIZE;
+ unsigned int dealloc_cnt : SQ_DEBUG_PTR_BUFF_DEALLOC_CNT_SIZE;
+ unsigned int qual_new_vector : SQ_DEBUG_PTR_BUFF_QUAL_NEW_VECTOR_SIZE;
+ unsigned int event_context_id : SQ_DEBUG_PTR_BUFF_EVENT_CONTEXT_ID_SIZE;
+ unsigned int sc_event_id : SQ_DEBUG_PTR_BUFF_SC_EVENT_ID_SIZE;
+ unsigned int qual_event : SQ_DEBUG_PTR_BUFF_QUAL_EVENT_SIZE;
+ unsigned int prim_type_polygon : SQ_DEBUG_PTR_BUFF_PRIM_TYPE_POLYGON_SIZE;
+ unsigned int ef_empty : SQ_DEBUG_PTR_BUFF_EF_EMPTY_SIZE;
+ unsigned int vtx_sync_cnt : SQ_DEBUG_PTR_BUFF_VTX_SYNC_CNT_SIZE;
+ unsigned int : 4;
+ } sq_debug_ptr_buff_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_ptr_buff_t {
+ unsigned int : 4;
+ unsigned int vtx_sync_cnt : SQ_DEBUG_PTR_BUFF_VTX_SYNC_CNT_SIZE;
+ unsigned int ef_empty : SQ_DEBUG_PTR_BUFF_EF_EMPTY_SIZE;
+ unsigned int prim_type_polygon : SQ_DEBUG_PTR_BUFF_PRIM_TYPE_POLYGON_SIZE;
+ unsigned int qual_event : SQ_DEBUG_PTR_BUFF_QUAL_EVENT_SIZE;
+ unsigned int sc_event_id : SQ_DEBUG_PTR_BUFF_SC_EVENT_ID_SIZE;
+ unsigned int event_context_id : SQ_DEBUG_PTR_BUFF_EVENT_CONTEXT_ID_SIZE;
+ unsigned int qual_new_vector : SQ_DEBUG_PTR_BUFF_QUAL_NEW_VECTOR_SIZE;
+ unsigned int dealloc_cnt : SQ_DEBUG_PTR_BUFF_DEALLOC_CNT_SIZE;
+ unsigned int end_of_buffer : SQ_DEBUG_PTR_BUFF_END_OF_BUFFER_SIZE;
+ } sq_debug_ptr_buff_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_ptr_buff_t f;
+} sq_debug_ptr_buff_u;
+
+
+/*
+ * SQ_DEBUG_GPR_VTX struct
+ */
+
+#define SQ_DEBUG_GPR_VTX_VTX_TAIL_PTR_SIZE 7
+#define SQ_DEBUG_GPR_VTX_RESERVED_SIZE 1
+#define SQ_DEBUG_GPR_VTX_VTX_HEAD_PTR_SIZE 7
+#define SQ_DEBUG_GPR_VTX_RESERVED1_SIZE 1
+#define SQ_DEBUG_GPR_VTX_VTX_MAX_SIZE 7
+#define SQ_DEBUG_GPR_VTX_RESERVED2_SIZE 1
+#define SQ_DEBUG_GPR_VTX_VTX_FREE_SIZE 7
+
+#define SQ_DEBUG_GPR_VTX_VTX_TAIL_PTR_SHIFT 0
+#define SQ_DEBUG_GPR_VTX_RESERVED_SHIFT 7
+#define SQ_DEBUG_GPR_VTX_VTX_HEAD_PTR_SHIFT 8
+#define SQ_DEBUG_GPR_VTX_RESERVED1_SHIFT 15
+#define SQ_DEBUG_GPR_VTX_VTX_MAX_SHIFT 16
+#define SQ_DEBUG_GPR_VTX_RESERVED2_SHIFT 23
+#define SQ_DEBUG_GPR_VTX_VTX_FREE_SHIFT 24
+
+#define SQ_DEBUG_GPR_VTX_VTX_TAIL_PTR_MASK 0x0000007f
+#define SQ_DEBUG_GPR_VTX_RESERVED_MASK 0x00000080
+#define SQ_DEBUG_GPR_VTX_VTX_HEAD_PTR_MASK 0x00007f00
+#define SQ_DEBUG_GPR_VTX_RESERVED1_MASK 0x00008000
+#define SQ_DEBUG_GPR_VTX_VTX_MAX_MASK 0x007f0000
+#define SQ_DEBUG_GPR_VTX_RESERVED2_MASK 0x00800000
+#define SQ_DEBUG_GPR_VTX_VTX_FREE_MASK 0x7f000000
+
+#define SQ_DEBUG_GPR_VTX_MASK \
+ (SQ_DEBUG_GPR_VTX_VTX_TAIL_PTR_MASK | \
+ SQ_DEBUG_GPR_VTX_RESERVED_MASK | \
+ SQ_DEBUG_GPR_VTX_VTX_HEAD_PTR_MASK | \
+ SQ_DEBUG_GPR_VTX_RESERVED1_MASK | \
+ SQ_DEBUG_GPR_VTX_VTX_MAX_MASK | \
+ SQ_DEBUG_GPR_VTX_RESERVED2_MASK | \
+ SQ_DEBUG_GPR_VTX_VTX_FREE_MASK)
+
+#define SQ_DEBUG_GPR_VTX(vtx_tail_ptr, reserved, vtx_head_ptr, reserved1, vtx_max, reserved2, vtx_free) \
+ ((vtx_tail_ptr << SQ_DEBUG_GPR_VTX_VTX_TAIL_PTR_SHIFT) | \
+ (reserved << SQ_DEBUG_GPR_VTX_RESERVED_SHIFT) | \
+ (vtx_head_ptr << SQ_DEBUG_GPR_VTX_VTX_HEAD_PTR_SHIFT) | \
+ (reserved1 << SQ_DEBUG_GPR_VTX_RESERVED1_SHIFT) | \
+ (vtx_max << SQ_DEBUG_GPR_VTX_VTX_MAX_SHIFT) | \
+ (reserved2 << SQ_DEBUG_GPR_VTX_RESERVED2_SHIFT) | \
+ (vtx_free << SQ_DEBUG_GPR_VTX_VTX_FREE_SHIFT))
+
+#define SQ_DEBUG_GPR_VTX_GET_VTX_TAIL_PTR(sq_debug_gpr_vtx) \
+ ((sq_debug_gpr_vtx & SQ_DEBUG_GPR_VTX_VTX_TAIL_PTR_MASK) >> SQ_DEBUG_GPR_VTX_VTX_TAIL_PTR_SHIFT)
+#define SQ_DEBUG_GPR_VTX_GET_RESERVED(sq_debug_gpr_vtx) \
+ ((sq_debug_gpr_vtx & SQ_DEBUG_GPR_VTX_RESERVED_MASK) >> SQ_DEBUG_GPR_VTX_RESERVED_SHIFT)
+#define SQ_DEBUG_GPR_VTX_GET_VTX_HEAD_PTR(sq_debug_gpr_vtx) \
+ ((sq_debug_gpr_vtx & SQ_DEBUG_GPR_VTX_VTX_HEAD_PTR_MASK) >> SQ_DEBUG_GPR_VTX_VTX_HEAD_PTR_SHIFT)
+#define SQ_DEBUG_GPR_VTX_GET_RESERVED1(sq_debug_gpr_vtx) \
+ ((sq_debug_gpr_vtx & SQ_DEBUG_GPR_VTX_RESERVED1_MASK) >> SQ_DEBUG_GPR_VTX_RESERVED1_SHIFT)
+#define SQ_DEBUG_GPR_VTX_GET_VTX_MAX(sq_debug_gpr_vtx) \
+ ((sq_debug_gpr_vtx & SQ_DEBUG_GPR_VTX_VTX_MAX_MASK) >> SQ_DEBUG_GPR_VTX_VTX_MAX_SHIFT)
+#define SQ_DEBUG_GPR_VTX_GET_RESERVED2(sq_debug_gpr_vtx) \
+ ((sq_debug_gpr_vtx & SQ_DEBUG_GPR_VTX_RESERVED2_MASK) >> SQ_DEBUG_GPR_VTX_RESERVED2_SHIFT)
+#define SQ_DEBUG_GPR_VTX_GET_VTX_FREE(sq_debug_gpr_vtx) \
+ ((sq_debug_gpr_vtx & SQ_DEBUG_GPR_VTX_VTX_FREE_MASK) >> SQ_DEBUG_GPR_VTX_VTX_FREE_SHIFT)
+
+#define SQ_DEBUG_GPR_VTX_SET_VTX_TAIL_PTR(sq_debug_gpr_vtx_reg, vtx_tail_ptr) \
+ sq_debug_gpr_vtx_reg = (sq_debug_gpr_vtx_reg & ~SQ_DEBUG_GPR_VTX_VTX_TAIL_PTR_MASK) | (vtx_tail_ptr << SQ_DEBUG_GPR_VTX_VTX_TAIL_PTR_SHIFT)
+#define SQ_DEBUG_GPR_VTX_SET_RESERVED(sq_debug_gpr_vtx_reg, reserved) \
+ sq_debug_gpr_vtx_reg = (sq_debug_gpr_vtx_reg & ~SQ_DEBUG_GPR_VTX_RESERVED_MASK) | (reserved << SQ_DEBUG_GPR_VTX_RESERVED_SHIFT)
+#define SQ_DEBUG_GPR_VTX_SET_VTX_HEAD_PTR(sq_debug_gpr_vtx_reg, vtx_head_ptr) \
+ sq_debug_gpr_vtx_reg = (sq_debug_gpr_vtx_reg & ~SQ_DEBUG_GPR_VTX_VTX_HEAD_PTR_MASK) | (vtx_head_ptr << SQ_DEBUG_GPR_VTX_VTX_HEAD_PTR_SHIFT)
+#define SQ_DEBUG_GPR_VTX_SET_RESERVED1(sq_debug_gpr_vtx_reg, reserved1) \
+ sq_debug_gpr_vtx_reg = (sq_debug_gpr_vtx_reg & ~SQ_DEBUG_GPR_VTX_RESERVED1_MASK) | (reserved1 << SQ_DEBUG_GPR_VTX_RESERVED1_SHIFT)
+#define SQ_DEBUG_GPR_VTX_SET_VTX_MAX(sq_debug_gpr_vtx_reg, vtx_max) \
+ sq_debug_gpr_vtx_reg = (sq_debug_gpr_vtx_reg & ~SQ_DEBUG_GPR_VTX_VTX_MAX_MASK) | (vtx_max << SQ_DEBUG_GPR_VTX_VTX_MAX_SHIFT)
+#define SQ_DEBUG_GPR_VTX_SET_RESERVED2(sq_debug_gpr_vtx_reg, reserved2) \
+ sq_debug_gpr_vtx_reg = (sq_debug_gpr_vtx_reg & ~SQ_DEBUG_GPR_VTX_RESERVED2_MASK) | (reserved2 << SQ_DEBUG_GPR_VTX_RESERVED2_SHIFT)
+#define SQ_DEBUG_GPR_VTX_SET_VTX_FREE(sq_debug_gpr_vtx_reg, vtx_free) \
+ sq_debug_gpr_vtx_reg = (sq_debug_gpr_vtx_reg & ~SQ_DEBUG_GPR_VTX_VTX_FREE_MASK) | (vtx_free << SQ_DEBUG_GPR_VTX_VTX_FREE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_gpr_vtx_t {
+ unsigned int vtx_tail_ptr : SQ_DEBUG_GPR_VTX_VTX_TAIL_PTR_SIZE;
+ unsigned int reserved : SQ_DEBUG_GPR_VTX_RESERVED_SIZE;
+ unsigned int vtx_head_ptr : SQ_DEBUG_GPR_VTX_VTX_HEAD_PTR_SIZE;
+ unsigned int reserved1 : SQ_DEBUG_GPR_VTX_RESERVED1_SIZE;
+ unsigned int vtx_max : SQ_DEBUG_GPR_VTX_VTX_MAX_SIZE;
+ unsigned int reserved2 : SQ_DEBUG_GPR_VTX_RESERVED2_SIZE;
+ unsigned int vtx_free : SQ_DEBUG_GPR_VTX_VTX_FREE_SIZE;
+ unsigned int : 1;
+ } sq_debug_gpr_vtx_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_gpr_vtx_t {
+ unsigned int : 1;
+ unsigned int vtx_free : SQ_DEBUG_GPR_VTX_VTX_FREE_SIZE;
+ unsigned int reserved2 : SQ_DEBUG_GPR_VTX_RESERVED2_SIZE;
+ unsigned int vtx_max : SQ_DEBUG_GPR_VTX_VTX_MAX_SIZE;
+ unsigned int reserved1 : SQ_DEBUG_GPR_VTX_RESERVED1_SIZE;
+ unsigned int vtx_head_ptr : SQ_DEBUG_GPR_VTX_VTX_HEAD_PTR_SIZE;
+ unsigned int reserved : SQ_DEBUG_GPR_VTX_RESERVED_SIZE;
+ unsigned int vtx_tail_ptr : SQ_DEBUG_GPR_VTX_VTX_TAIL_PTR_SIZE;
+ } sq_debug_gpr_vtx_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_gpr_vtx_t f;
+} sq_debug_gpr_vtx_u;
+
+
+/*
+ * SQ_DEBUG_GPR_PIX struct
+ */
+
+#define SQ_DEBUG_GPR_PIX_PIX_TAIL_PTR_SIZE 7
+#define SQ_DEBUG_GPR_PIX_RESERVED_SIZE 1
+#define SQ_DEBUG_GPR_PIX_PIX_HEAD_PTR_SIZE 7
+#define SQ_DEBUG_GPR_PIX_RESERVED1_SIZE 1
+#define SQ_DEBUG_GPR_PIX_PIX_MAX_SIZE 7
+#define SQ_DEBUG_GPR_PIX_RESERVED2_SIZE 1
+#define SQ_DEBUG_GPR_PIX_PIX_FREE_SIZE 7
+
+#define SQ_DEBUG_GPR_PIX_PIX_TAIL_PTR_SHIFT 0
+#define SQ_DEBUG_GPR_PIX_RESERVED_SHIFT 7
+#define SQ_DEBUG_GPR_PIX_PIX_HEAD_PTR_SHIFT 8
+#define SQ_DEBUG_GPR_PIX_RESERVED1_SHIFT 15
+#define SQ_DEBUG_GPR_PIX_PIX_MAX_SHIFT 16
+#define SQ_DEBUG_GPR_PIX_RESERVED2_SHIFT 23
+#define SQ_DEBUG_GPR_PIX_PIX_FREE_SHIFT 24
+
+#define SQ_DEBUG_GPR_PIX_PIX_TAIL_PTR_MASK 0x0000007f
+#define SQ_DEBUG_GPR_PIX_RESERVED_MASK 0x00000080
+#define SQ_DEBUG_GPR_PIX_PIX_HEAD_PTR_MASK 0x00007f00
+#define SQ_DEBUG_GPR_PIX_RESERVED1_MASK 0x00008000
+#define SQ_DEBUG_GPR_PIX_PIX_MAX_MASK 0x007f0000
+#define SQ_DEBUG_GPR_PIX_RESERVED2_MASK 0x00800000
+#define SQ_DEBUG_GPR_PIX_PIX_FREE_MASK 0x7f000000
+
+#define SQ_DEBUG_GPR_PIX_MASK \
+ (SQ_DEBUG_GPR_PIX_PIX_TAIL_PTR_MASK | \
+ SQ_DEBUG_GPR_PIX_RESERVED_MASK | \
+ SQ_DEBUG_GPR_PIX_PIX_HEAD_PTR_MASK | \
+ SQ_DEBUG_GPR_PIX_RESERVED1_MASK | \
+ SQ_DEBUG_GPR_PIX_PIX_MAX_MASK | \
+ SQ_DEBUG_GPR_PIX_RESERVED2_MASK | \
+ SQ_DEBUG_GPR_PIX_PIX_FREE_MASK)
+
+#define SQ_DEBUG_GPR_PIX(pix_tail_ptr, reserved, pix_head_ptr, reserved1, pix_max, reserved2, pix_free) \
+ ((pix_tail_ptr << SQ_DEBUG_GPR_PIX_PIX_TAIL_PTR_SHIFT) | \
+ (reserved << SQ_DEBUG_GPR_PIX_RESERVED_SHIFT) | \
+ (pix_head_ptr << SQ_DEBUG_GPR_PIX_PIX_HEAD_PTR_SHIFT) | \
+ (reserved1 << SQ_DEBUG_GPR_PIX_RESERVED1_SHIFT) | \
+ (pix_max << SQ_DEBUG_GPR_PIX_PIX_MAX_SHIFT) | \
+ (reserved2 << SQ_DEBUG_GPR_PIX_RESERVED2_SHIFT) | \
+ (pix_free << SQ_DEBUG_GPR_PIX_PIX_FREE_SHIFT))
+
+#define SQ_DEBUG_GPR_PIX_GET_PIX_TAIL_PTR(sq_debug_gpr_pix) \
+ ((sq_debug_gpr_pix & SQ_DEBUG_GPR_PIX_PIX_TAIL_PTR_MASK) >> SQ_DEBUG_GPR_PIX_PIX_TAIL_PTR_SHIFT)
+#define SQ_DEBUG_GPR_PIX_GET_RESERVED(sq_debug_gpr_pix) \
+ ((sq_debug_gpr_pix & SQ_DEBUG_GPR_PIX_RESERVED_MASK) >> SQ_DEBUG_GPR_PIX_RESERVED_SHIFT)
+#define SQ_DEBUG_GPR_PIX_GET_PIX_HEAD_PTR(sq_debug_gpr_pix) \
+ ((sq_debug_gpr_pix & SQ_DEBUG_GPR_PIX_PIX_HEAD_PTR_MASK) >> SQ_DEBUG_GPR_PIX_PIX_HEAD_PTR_SHIFT)
+#define SQ_DEBUG_GPR_PIX_GET_RESERVED1(sq_debug_gpr_pix) \
+ ((sq_debug_gpr_pix & SQ_DEBUG_GPR_PIX_RESERVED1_MASK) >> SQ_DEBUG_GPR_PIX_RESERVED1_SHIFT)
+#define SQ_DEBUG_GPR_PIX_GET_PIX_MAX(sq_debug_gpr_pix) \
+ ((sq_debug_gpr_pix & SQ_DEBUG_GPR_PIX_PIX_MAX_MASK) >> SQ_DEBUG_GPR_PIX_PIX_MAX_SHIFT)
+#define SQ_DEBUG_GPR_PIX_GET_RESERVED2(sq_debug_gpr_pix) \
+ ((sq_debug_gpr_pix & SQ_DEBUG_GPR_PIX_RESERVED2_MASK) >> SQ_DEBUG_GPR_PIX_RESERVED2_SHIFT)
+#define SQ_DEBUG_GPR_PIX_GET_PIX_FREE(sq_debug_gpr_pix) \
+ ((sq_debug_gpr_pix & SQ_DEBUG_GPR_PIX_PIX_FREE_MASK) >> SQ_DEBUG_GPR_PIX_PIX_FREE_SHIFT)
+
+#define SQ_DEBUG_GPR_PIX_SET_PIX_TAIL_PTR(sq_debug_gpr_pix_reg, pix_tail_ptr) \
+ sq_debug_gpr_pix_reg = (sq_debug_gpr_pix_reg & ~SQ_DEBUG_GPR_PIX_PIX_TAIL_PTR_MASK) | (pix_tail_ptr << SQ_DEBUG_GPR_PIX_PIX_TAIL_PTR_SHIFT)
+#define SQ_DEBUG_GPR_PIX_SET_RESERVED(sq_debug_gpr_pix_reg, reserved) \
+ sq_debug_gpr_pix_reg = (sq_debug_gpr_pix_reg & ~SQ_DEBUG_GPR_PIX_RESERVED_MASK) | (reserved << SQ_DEBUG_GPR_PIX_RESERVED_SHIFT)
+#define SQ_DEBUG_GPR_PIX_SET_PIX_HEAD_PTR(sq_debug_gpr_pix_reg, pix_head_ptr) \
+ sq_debug_gpr_pix_reg = (sq_debug_gpr_pix_reg & ~SQ_DEBUG_GPR_PIX_PIX_HEAD_PTR_MASK) | (pix_head_ptr << SQ_DEBUG_GPR_PIX_PIX_HEAD_PTR_SHIFT)
+#define SQ_DEBUG_GPR_PIX_SET_RESERVED1(sq_debug_gpr_pix_reg, reserved1) \
+ sq_debug_gpr_pix_reg = (sq_debug_gpr_pix_reg & ~SQ_DEBUG_GPR_PIX_RESERVED1_MASK) | (reserved1 << SQ_DEBUG_GPR_PIX_RESERVED1_SHIFT)
+#define SQ_DEBUG_GPR_PIX_SET_PIX_MAX(sq_debug_gpr_pix_reg, pix_max) \
+ sq_debug_gpr_pix_reg = (sq_debug_gpr_pix_reg & ~SQ_DEBUG_GPR_PIX_PIX_MAX_MASK) | (pix_max << SQ_DEBUG_GPR_PIX_PIX_MAX_SHIFT)
+#define SQ_DEBUG_GPR_PIX_SET_RESERVED2(sq_debug_gpr_pix_reg, reserved2) \
+ sq_debug_gpr_pix_reg = (sq_debug_gpr_pix_reg & ~SQ_DEBUG_GPR_PIX_RESERVED2_MASK) | (reserved2 << SQ_DEBUG_GPR_PIX_RESERVED2_SHIFT)
+#define SQ_DEBUG_GPR_PIX_SET_PIX_FREE(sq_debug_gpr_pix_reg, pix_free) \
+ sq_debug_gpr_pix_reg = (sq_debug_gpr_pix_reg & ~SQ_DEBUG_GPR_PIX_PIX_FREE_MASK) | (pix_free << SQ_DEBUG_GPR_PIX_PIX_FREE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_gpr_pix_t {
+ unsigned int pix_tail_ptr : SQ_DEBUG_GPR_PIX_PIX_TAIL_PTR_SIZE;
+ unsigned int reserved : SQ_DEBUG_GPR_PIX_RESERVED_SIZE;
+ unsigned int pix_head_ptr : SQ_DEBUG_GPR_PIX_PIX_HEAD_PTR_SIZE;
+ unsigned int reserved1 : SQ_DEBUG_GPR_PIX_RESERVED1_SIZE;
+ unsigned int pix_max : SQ_DEBUG_GPR_PIX_PIX_MAX_SIZE;
+ unsigned int reserved2 : SQ_DEBUG_GPR_PIX_RESERVED2_SIZE;
+ unsigned int pix_free : SQ_DEBUG_GPR_PIX_PIX_FREE_SIZE;
+ unsigned int : 1;
+ } sq_debug_gpr_pix_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_gpr_pix_t {
+ unsigned int : 1;
+ unsigned int pix_free : SQ_DEBUG_GPR_PIX_PIX_FREE_SIZE;
+ unsigned int reserved2 : SQ_DEBUG_GPR_PIX_RESERVED2_SIZE;
+ unsigned int pix_max : SQ_DEBUG_GPR_PIX_PIX_MAX_SIZE;
+ unsigned int reserved1 : SQ_DEBUG_GPR_PIX_RESERVED1_SIZE;
+ unsigned int pix_head_ptr : SQ_DEBUG_GPR_PIX_PIX_HEAD_PTR_SIZE;
+ unsigned int reserved : SQ_DEBUG_GPR_PIX_RESERVED_SIZE;
+ unsigned int pix_tail_ptr : SQ_DEBUG_GPR_PIX_PIX_TAIL_PTR_SIZE;
+ } sq_debug_gpr_pix_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_gpr_pix_t f;
+} sq_debug_gpr_pix_u;
+
+
+/*
+ * SQ_DEBUG_TB_STATUS_SEL struct
+ */
+
+#define SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATUS_REG_SEL_SIZE 4
+#define SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_DW_SEL_SIZE 3
+#define SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_ADDR_SIZE 4
+#define SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_EN_SIZE 1
+#define SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_EN_SIZE 1
+#define SQ_DEBUG_TB_STATUS_SEL_DEBUG_BUS_TRIGGER_SEL_SIZE 2
+#define SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATUS_REG_SEL_SIZE 4
+#define SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_DW_SEL_SIZE 3
+#define SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_ADDR_SIZE 6
+#define SQ_DEBUG_TB_STATUS_SEL_VC_THREAD_BUF_DLY_SIZE 2
+#define SQ_DEBUG_TB_STATUS_SEL_DISABLE_STRICT_CTX_SYNC_SIZE 1
+
+#define SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATUS_REG_SEL_SHIFT 0
+#define SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_DW_SEL_SHIFT 4
+#define SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_ADDR_SHIFT 7
+#define SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_EN_SHIFT 11
+#define SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_EN_SHIFT 12
+#define SQ_DEBUG_TB_STATUS_SEL_DEBUG_BUS_TRIGGER_SEL_SHIFT 14
+#define SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATUS_REG_SEL_SHIFT 16
+#define SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_DW_SEL_SHIFT 20
+#define SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_ADDR_SHIFT 23
+#define SQ_DEBUG_TB_STATUS_SEL_VC_THREAD_BUF_DLY_SHIFT 29
+#define SQ_DEBUG_TB_STATUS_SEL_DISABLE_STRICT_CTX_SYNC_SHIFT 31
+
+#define SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATUS_REG_SEL_MASK 0x0000000f
+#define SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_DW_SEL_MASK 0x00000070
+#define SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_ADDR_MASK 0x00000780
+#define SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_EN_MASK 0x00000800
+#define SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_EN_MASK 0x00001000
+#define SQ_DEBUG_TB_STATUS_SEL_DEBUG_BUS_TRIGGER_SEL_MASK 0x0000c000
+#define SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATUS_REG_SEL_MASK 0x000f0000
+#define SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_DW_SEL_MASK 0x00700000
+#define SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_ADDR_MASK 0x1f800000
+#define SQ_DEBUG_TB_STATUS_SEL_VC_THREAD_BUF_DLY_MASK 0x60000000
+#define SQ_DEBUG_TB_STATUS_SEL_DISABLE_STRICT_CTX_SYNC_MASK 0x80000000
+
+#define SQ_DEBUG_TB_STATUS_SEL_MASK \
+ (SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATUS_REG_SEL_MASK | \
+ SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_DW_SEL_MASK | \
+ SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_ADDR_MASK | \
+ SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_EN_MASK | \
+ SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_EN_MASK | \
+ SQ_DEBUG_TB_STATUS_SEL_DEBUG_BUS_TRIGGER_SEL_MASK | \
+ SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATUS_REG_SEL_MASK | \
+ SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_DW_SEL_MASK | \
+ SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_ADDR_MASK | \
+ SQ_DEBUG_TB_STATUS_SEL_VC_THREAD_BUF_DLY_MASK | \
+ SQ_DEBUG_TB_STATUS_SEL_DISABLE_STRICT_CTX_SYNC_MASK)
+
+#define SQ_DEBUG_TB_STATUS_SEL(vtx_tb_status_reg_sel, vtx_tb_state_mem_dw_sel, vtx_tb_state_mem_rd_addr, vtx_tb_state_mem_rd_en, pix_tb_state_mem_rd_en, debug_bus_trigger_sel, pix_tb_status_reg_sel, pix_tb_state_mem_dw_sel, pix_tb_state_mem_rd_addr, vc_thread_buf_dly, disable_strict_ctx_sync) \
+ ((vtx_tb_status_reg_sel << SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATUS_REG_SEL_SHIFT) | \
+ (vtx_tb_state_mem_dw_sel << SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_DW_SEL_SHIFT) | \
+ (vtx_tb_state_mem_rd_addr << SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_ADDR_SHIFT) | \
+ (vtx_tb_state_mem_rd_en << SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_EN_SHIFT) | \
+ (pix_tb_state_mem_rd_en << SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_EN_SHIFT) | \
+ (debug_bus_trigger_sel << SQ_DEBUG_TB_STATUS_SEL_DEBUG_BUS_TRIGGER_SEL_SHIFT) | \
+ (pix_tb_status_reg_sel << SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATUS_REG_SEL_SHIFT) | \
+ (pix_tb_state_mem_dw_sel << SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_DW_SEL_SHIFT) | \
+ (pix_tb_state_mem_rd_addr << SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_ADDR_SHIFT) | \
+ (vc_thread_buf_dly << SQ_DEBUG_TB_STATUS_SEL_VC_THREAD_BUF_DLY_SHIFT) | \
+ (disable_strict_ctx_sync << SQ_DEBUG_TB_STATUS_SEL_DISABLE_STRICT_CTX_SYNC_SHIFT))
+
+#define SQ_DEBUG_TB_STATUS_SEL_GET_VTX_TB_STATUS_REG_SEL(sq_debug_tb_status_sel) \
+ ((sq_debug_tb_status_sel & SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATUS_REG_SEL_MASK) >> SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATUS_REG_SEL_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_GET_VTX_TB_STATE_MEM_DW_SEL(sq_debug_tb_status_sel) \
+ ((sq_debug_tb_status_sel & SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_DW_SEL_MASK) >> SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_DW_SEL_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_GET_VTX_TB_STATE_MEM_RD_ADDR(sq_debug_tb_status_sel) \
+ ((sq_debug_tb_status_sel & SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_ADDR_MASK) >> SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_ADDR_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_GET_VTX_TB_STATE_MEM_RD_EN(sq_debug_tb_status_sel) \
+ ((sq_debug_tb_status_sel & SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_EN_MASK) >> SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_EN_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_GET_PIX_TB_STATE_MEM_RD_EN(sq_debug_tb_status_sel) \
+ ((sq_debug_tb_status_sel & SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_EN_MASK) >> SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_EN_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_GET_DEBUG_BUS_TRIGGER_SEL(sq_debug_tb_status_sel) \
+ ((sq_debug_tb_status_sel & SQ_DEBUG_TB_STATUS_SEL_DEBUG_BUS_TRIGGER_SEL_MASK) >> SQ_DEBUG_TB_STATUS_SEL_DEBUG_BUS_TRIGGER_SEL_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_GET_PIX_TB_STATUS_REG_SEL(sq_debug_tb_status_sel) \
+ ((sq_debug_tb_status_sel & SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATUS_REG_SEL_MASK) >> SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATUS_REG_SEL_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_GET_PIX_TB_STATE_MEM_DW_SEL(sq_debug_tb_status_sel) \
+ ((sq_debug_tb_status_sel & SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_DW_SEL_MASK) >> SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_DW_SEL_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_GET_PIX_TB_STATE_MEM_RD_ADDR(sq_debug_tb_status_sel) \
+ ((sq_debug_tb_status_sel & SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_ADDR_MASK) >> SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_ADDR_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_GET_VC_THREAD_BUF_DLY(sq_debug_tb_status_sel) \
+ ((sq_debug_tb_status_sel & SQ_DEBUG_TB_STATUS_SEL_VC_THREAD_BUF_DLY_MASK) >> SQ_DEBUG_TB_STATUS_SEL_VC_THREAD_BUF_DLY_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_GET_DISABLE_STRICT_CTX_SYNC(sq_debug_tb_status_sel) \
+ ((sq_debug_tb_status_sel & SQ_DEBUG_TB_STATUS_SEL_DISABLE_STRICT_CTX_SYNC_MASK) >> SQ_DEBUG_TB_STATUS_SEL_DISABLE_STRICT_CTX_SYNC_SHIFT)
+
+#define SQ_DEBUG_TB_STATUS_SEL_SET_VTX_TB_STATUS_REG_SEL(sq_debug_tb_status_sel_reg, vtx_tb_status_reg_sel) \
+ sq_debug_tb_status_sel_reg = (sq_debug_tb_status_sel_reg & ~SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATUS_REG_SEL_MASK) | (vtx_tb_status_reg_sel << SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATUS_REG_SEL_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_SET_VTX_TB_STATE_MEM_DW_SEL(sq_debug_tb_status_sel_reg, vtx_tb_state_mem_dw_sel) \
+ sq_debug_tb_status_sel_reg = (sq_debug_tb_status_sel_reg & ~SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_DW_SEL_MASK) | (vtx_tb_state_mem_dw_sel << SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_DW_SEL_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_SET_VTX_TB_STATE_MEM_RD_ADDR(sq_debug_tb_status_sel_reg, vtx_tb_state_mem_rd_addr) \
+ sq_debug_tb_status_sel_reg = (sq_debug_tb_status_sel_reg & ~SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_ADDR_MASK) | (vtx_tb_state_mem_rd_addr << SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_ADDR_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_SET_VTX_TB_STATE_MEM_RD_EN(sq_debug_tb_status_sel_reg, vtx_tb_state_mem_rd_en) \
+ sq_debug_tb_status_sel_reg = (sq_debug_tb_status_sel_reg & ~SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_EN_MASK) | (vtx_tb_state_mem_rd_en << SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_EN_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_SET_PIX_TB_STATE_MEM_RD_EN(sq_debug_tb_status_sel_reg, pix_tb_state_mem_rd_en) \
+ sq_debug_tb_status_sel_reg = (sq_debug_tb_status_sel_reg & ~SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_EN_MASK) | (pix_tb_state_mem_rd_en << SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_EN_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_SET_DEBUG_BUS_TRIGGER_SEL(sq_debug_tb_status_sel_reg, debug_bus_trigger_sel) \
+ sq_debug_tb_status_sel_reg = (sq_debug_tb_status_sel_reg & ~SQ_DEBUG_TB_STATUS_SEL_DEBUG_BUS_TRIGGER_SEL_MASK) | (debug_bus_trigger_sel << SQ_DEBUG_TB_STATUS_SEL_DEBUG_BUS_TRIGGER_SEL_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_SET_PIX_TB_STATUS_REG_SEL(sq_debug_tb_status_sel_reg, pix_tb_status_reg_sel) \
+ sq_debug_tb_status_sel_reg = (sq_debug_tb_status_sel_reg & ~SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATUS_REG_SEL_MASK) | (pix_tb_status_reg_sel << SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATUS_REG_SEL_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_SET_PIX_TB_STATE_MEM_DW_SEL(sq_debug_tb_status_sel_reg, pix_tb_state_mem_dw_sel) \
+ sq_debug_tb_status_sel_reg = (sq_debug_tb_status_sel_reg & ~SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_DW_SEL_MASK) | (pix_tb_state_mem_dw_sel << SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_DW_SEL_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_SET_PIX_TB_STATE_MEM_RD_ADDR(sq_debug_tb_status_sel_reg, pix_tb_state_mem_rd_addr) \
+ sq_debug_tb_status_sel_reg = (sq_debug_tb_status_sel_reg & ~SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_ADDR_MASK) | (pix_tb_state_mem_rd_addr << SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_ADDR_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_SET_VC_THREAD_BUF_DLY(sq_debug_tb_status_sel_reg, vc_thread_buf_dly) \
+ sq_debug_tb_status_sel_reg = (sq_debug_tb_status_sel_reg & ~SQ_DEBUG_TB_STATUS_SEL_VC_THREAD_BUF_DLY_MASK) | (vc_thread_buf_dly << SQ_DEBUG_TB_STATUS_SEL_VC_THREAD_BUF_DLY_SHIFT)
+#define SQ_DEBUG_TB_STATUS_SEL_SET_DISABLE_STRICT_CTX_SYNC(sq_debug_tb_status_sel_reg, disable_strict_ctx_sync) \
+ sq_debug_tb_status_sel_reg = (sq_debug_tb_status_sel_reg & ~SQ_DEBUG_TB_STATUS_SEL_DISABLE_STRICT_CTX_SYNC_MASK) | (disable_strict_ctx_sync << SQ_DEBUG_TB_STATUS_SEL_DISABLE_STRICT_CTX_SYNC_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_tb_status_sel_t {
+ unsigned int vtx_tb_status_reg_sel : SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATUS_REG_SEL_SIZE;
+ unsigned int vtx_tb_state_mem_dw_sel : SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_DW_SEL_SIZE;
+ unsigned int vtx_tb_state_mem_rd_addr : SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_ADDR_SIZE;
+ unsigned int vtx_tb_state_mem_rd_en : SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_EN_SIZE;
+ unsigned int pix_tb_state_mem_rd_en : SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_EN_SIZE;
+ unsigned int : 1;
+ unsigned int debug_bus_trigger_sel : SQ_DEBUG_TB_STATUS_SEL_DEBUG_BUS_TRIGGER_SEL_SIZE;
+ unsigned int pix_tb_status_reg_sel : SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATUS_REG_SEL_SIZE;
+ unsigned int pix_tb_state_mem_dw_sel : SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_DW_SEL_SIZE;
+ unsigned int pix_tb_state_mem_rd_addr : SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_ADDR_SIZE;
+ unsigned int vc_thread_buf_dly : SQ_DEBUG_TB_STATUS_SEL_VC_THREAD_BUF_DLY_SIZE;
+ unsigned int disable_strict_ctx_sync : SQ_DEBUG_TB_STATUS_SEL_DISABLE_STRICT_CTX_SYNC_SIZE;
+ } sq_debug_tb_status_sel_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_tb_status_sel_t {
+ unsigned int disable_strict_ctx_sync : SQ_DEBUG_TB_STATUS_SEL_DISABLE_STRICT_CTX_SYNC_SIZE;
+ unsigned int vc_thread_buf_dly : SQ_DEBUG_TB_STATUS_SEL_VC_THREAD_BUF_DLY_SIZE;
+ unsigned int pix_tb_state_mem_rd_addr : SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_ADDR_SIZE;
+ unsigned int pix_tb_state_mem_dw_sel : SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_DW_SEL_SIZE;
+ unsigned int pix_tb_status_reg_sel : SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATUS_REG_SEL_SIZE;
+ unsigned int debug_bus_trigger_sel : SQ_DEBUG_TB_STATUS_SEL_DEBUG_BUS_TRIGGER_SEL_SIZE;
+ unsigned int : 1;
+ unsigned int pix_tb_state_mem_rd_en : SQ_DEBUG_TB_STATUS_SEL_PIX_TB_STATE_MEM_RD_EN_SIZE;
+ unsigned int vtx_tb_state_mem_rd_en : SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_EN_SIZE;
+ unsigned int vtx_tb_state_mem_rd_addr : SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_RD_ADDR_SIZE;
+ unsigned int vtx_tb_state_mem_dw_sel : SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATE_MEM_DW_SEL_SIZE;
+ unsigned int vtx_tb_status_reg_sel : SQ_DEBUG_TB_STATUS_SEL_VTX_TB_STATUS_REG_SEL_SIZE;
+ } sq_debug_tb_status_sel_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_tb_status_sel_t f;
+} sq_debug_tb_status_sel_u;
+
+
+/*
+ * SQ_DEBUG_VTX_TB_0 struct
+ */
+
+#define SQ_DEBUG_VTX_TB_0_VTX_HEAD_PTR_Q_SIZE 4
+#define SQ_DEBUG_VTX_TB_0_TAIL_PTR_Q_SIZE 4
+#define SQ_DEBUG_VTX_TB_0_FULL_CNT_Q_SIZE 4
+#define SQ_DEBUG_VTX_TB_0_NXT_POS_ALLOC_CNT_SIZE 4
+#define SQ_DEBUG_VTX_TB_0_NXT_PC_ALLOC_CNT_SIZE 4
+#define SQ_DEBUG_VTX_TB_0_SX_EVENT_FULL_SIZE 1
+#define SQ_DEBUG_VTX_TB_0_BUSY_Q_SIZE 1
+
+#define SQ_DEBUG_VTX_TB_0_VTX_HEAD_PTR_Q_SHIFT 0
+#define SQ_DEBUG_VTX_TB_0_TAIL_PTR_Q_SHIFT 4
+#define SQ_DEBUG_VTX_TB_0_FULL_CNT_Q_SHIFT 8
+#define SQ_DEBUG_VTX_TB_0_NXT_POS_ALLOC_CNT_SHIFT 12
+#define SQ_DEBUG_VTX_TB_0_NXT_PC_ALLOC_CNT_SHIFT 16
+#define SQ_DEBUG_VTX_TB_0_SX_EVENT_FULL_SHIFT 20
+#define SQ_DEBUG_VTX_TB_0_BUSY_Q_SHIFT 21
+
+#define SQ_DEBUG_VTX_TB_0_VTX_HEAD_PTR_Q_MASK 0x0000000f
+#define SQ_DEBUG_VTX_TB_0_TAIL_PTR_Q_MASK 0x000000f0
+#define SQ_DEBUG_VTX_TB_0_FULL_CNT_Q_MASK 0x00000f00
+#define SQ_DEBUG_VTX_TB_0_NXT_POS_ALLOC_CNT_MASK 0x0000f000
+#define SQ_DEBUG_VTX_TB_0_NXT_PC_ALLOC_CNT_MASK 0x000f0000
+#define SQ_DEBUG_VTX_TB_0_SX_EVENT_FULL_MASK 0x00100000
+#define SQ_DEBUG_VTX_TB_0_BUSY_Q_MASK 0x00200000
+
+#define SQ_DEBUG_VTX_TB_0_MASK \
+ (SQ_DEBUG_VTX_TB_0_VTX_HEAD_PTR_Q_MASK | \
+ SQ_DEBUG_VTX_TB_0_TAIL_PTR_Q_MASK | \
+ SQ_DEBUG_VTX_TB_0_FULL_CNT_Q_MASK | \
+ SQ_DEBUG_VTX_TB_0_NXT_POS_ALLOC_CNT_MASK | \
+ SQ_DEBUG_VTX_TB_0_NXT_PC_ALLOC_CNT_MASK | \
+ SQ_DEBUG_VTX_TB_0_SX_EVENT_FULL_MASK | \
+ SQ_DEBUG_VTX_TB_0_BUSY_Q_MASK)
+
+#define SQ_DEBUG_VTX_TB_0(vtx_head_ptr_q, tail_ptr_q, full_cnt_q, nxt_pos_alloc_cnt, nxt_pc_alloc_cnt, sx_event_full, busy_q) \
+ ((vtx_head_ptr_q << SQ_DEBUG_VTX_TB_0_VTX_HEAD_PTR_Q_SHIFT) | \
+ (tail_ptr_q << SQ_DEBUG_VTX_TB_0_TAIL_PTR_Q_SHIFT) | \
+ (full_cnt_q << SQ_DEBUG_VTX_TB_0_FULL_CNT_Q_SHIFT) | \
+ (nxt_pos_alloc_cnt << SQ_DEBUG_VTX_TB_0_NXT_POS_ALLOC_CNT_SHIFT) | \
+ (nxt_pc_alloc_cnt << SQ_DEBUG_VTX_TB_0_NXT_PC_ALLOC_CNT_SHIFT) | \
+ (sx_event_full << SQ_DEBUG_VTX_TB_0_SX_EVENT_FULL_SHIFT) | \
+ (busy_q << SQ_DEBUG_VTX_TB_0_BUSY_Q_SHIFT))
+
+#define SQ_DEBUG_VTX_TB_0_GET_VTX_HEAD_PTR_Q(sq_debug_vtx_tb_0) \
+ ((sq_debug_vtx_tb_0 & SQ_DEBUG_VTX_TB_0_VTX_HEAD_PTR_Q_MASK) >> SQ_DEBUG_VTX_TB_0_VTX_HEAD_PTR_Q_SHIFT)
+#define SQ_DEBUG_VTX_TB_0_GET_TAIL_PTR_Q(sq_debug_vtx_tb_0) \
+ ((sq_debug_vtx_tb_0 & SQ_DEBUG_VTX_TB_0_TAIL_PTR_Q_MASK) >> SQ_DEBUG_VTX_TB_0_TAIL_PTR_Q_SHIFT)
+#define SQ_DEBUG_VTX_TB_0_GET_FULL_CNT_Q(sq_debug_vtx_tb_0) \
+ ((sq_debug_vtx_tb_0 & SQ_DEBUG_VTX_TB_0_FULL_CNT_Q_MASK) >> SQ_DEBUG_VTX_TB_0_FULL_CNT_Q_SHIFT)
+#define SQ_DEBUG_VTX_TB_0_GET_NXT_POS_ALLOC_CNT(sq_debug_vtx_tb_0) \
+ ((sq_debug_vtx_tb_0 & SQ_DEBUG_VTX_TB_0_NXT_POS_ALLOC_CNT_MASK) >> SQ_DEBUG_VTX_TB_0_NXT_POS_ALLOC_CNT_SHIFT)
+#define SQ_DEBUG_VTX_TB_0_GET_NXT_PC_ALLOC_CNT(sq_debug_vtx_tb_0) \
+ ((sq_debug_vtx_tb_0 & SQ_DEBUG_VTX_TB_0_NXT_PC_ALLOC_CNT_MASK) >> SQ_DEBUG_VTX_TB_0_NXT_PC_ALLOC_CNT_SHIFT)
+#define SQ_DEBUG_VTX_TB_0_GET_SX_EVENT_FULL(sq_debug_vtx_tb_0) \
+ ((sq_debug_vtx_tb_0 & SQ_DEBUG_VTX_TB_0_SX_EVENT_FULL_MASK) >> SQ_DEBUG_VTX_TB_0_SX_EVENT_FULL_SHIFT)
+#define SQ_DEBUG_VTX_TB_0_GET_BUSY_Q(sq_debug_vtx_tb_0) \
+ ((sq_debug_vtx_tb_0 & SQ_DEBUG_VTX_TB_0_BUSY_Q_MASK) >> SQ_DEBUG_VTX_TB_0_BUSY_Q_SHIFT)
+
+#define SQ_DEBUG_VTX_TB_0_SET_VTX_HEAD_PTR_Q(sq_debug_vtx_tb_0_reg, vtx_head_ptr_q) \
+ sq_debug_vtx_tb_0_reg = (sq_debug_vtx_tb_0_reg & ~SQ_DEBUG_VTX_TB_0_VTX_HEAD_PTR_Q_MASK) | (vtx_head_ptr_q << SQ_DEBUG_VTX_TB_0_VTX_HEAD_PTR_Q_SHIFT)
+#define SQ_DEBUG_VTX_TB_0_SET_TAIL_PTR_Q(sq_debug_vtx_tb_0_reg, tail_ptr_q) \
+ sq_debug_vtx_tb_0_reg = (sq_debug_vtx_tb_0_reg & ~SQ_DEBUG_VTX_TB_0_TAIL_PTR_Q_MASK) | (tail_ptr_q << SQ_DEBUG_VTX_TB_0_TAIL_PTR_Q_SHIFT)
+#define SQ_DEBUG_VTX_TB_0_SET_FULL_CNT_Q(sq_debug_vtx_tb_0_reg, full_cnt_q) \
+ sq_debug_vtx_tb_0_reg = (sq_debug_vtx_tb_0_reg & ~SQ_DEBUG_VTX_TB_0_FULL_CNT_Q_MASK) | (full_cnt_q << SQ_DEBUG_VTX_TB_0_FULL_CNT_Q_SHIFT)
+#define SQ_DEBUG_VTX_TB_0_SET_NXT_POS_ALLOC_CNT(sq_debug_vtx_tb_0_reg, nxt_pos_alloc_cnt) \
+ sq_debug_vtx_tb_0_reg = (sq_debug_vtx_tb_0_reg & ~SQ_DEBUG_VTX_TB_0_NXT_POS_ALLOC_CNT_MASK) | (nxt_pos_alloc_cnt << SQ_DEBUG_VTX_TB_0_NXT_POS_ALLOC_CNT_SHIFT)
+#define SQ_DEBUG_VTX_TB_0_SET_NXT_PC_ALLOC_CNT(sq_debug_vtx_tb_0_reg, nxt_pc_alloc_cnt) \
+ sq_debug_vtx_tb_0_reg = (sq_debug_vtx_tb_0_reg & ~SQ_DEBUG_VTX_TB_0_NXT_PC_ALLOC_CNT_MASK) | (nxt_pc_alloc_cnt << SQ_DEBUG_VTX_TB_0_NXT_PC_ALLOC_CNT_SHIFT)
+#define SQ_DEBUG_VTX_TB_0_SET_SX_EVENT_FULL(sq_debug_vtx_tb_0_reg, sx_event_full) \
+ sq_debug_vtx_tb_0_reg = (sq_debug_vtx_tb_0_reg & ~SQ_DEBUG_VTX_TB_0_SX_EVENT_FULL_MASK) | (sx_event_full << SQ_DEBUG_VTX_TB_0_SX_EVENT_FULL_SHIFT)
+#define SQ_DEBUG_VTX_TB_0_SET_BUSY_Q(sq_debug_vtx_tb_0_reg, busy_q) \
+ sq_debug_vtx_tb_0_reg = (sq_debug_vtx_tb_0_reg & ~SQ_DEBUG_VTX_TB_0_BUSY_Q_MASK) | (busy_q << SQ_DEBUG_VTX_TB_0_BUSY_Q_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_vtx_tb_0_t {
+ unsigned int vtx_head_ptr_q : SQ_DEBUG_VTX_TB_0_VTX_HEAD_PTR_Q_SIZE;
+ unsigned int tail_ptr_q : SQ_DEBUG_VTX_TB_0_TAIL_PTR_Q_SIZE;
+ unsigned int full_cnt_q : SQ_DEBUG_VTX_TB_0_FULL_CNT_Q_SIZE;
+ unsigned int nxt_pos_alloc_cnt : SQ_DEBUG_VTX_TB_0_NXT_POS_ALLOC_CNT_SIZE;
+ unsigned int nxt_pc_alloc_cnt : SQ_DEBUG_VTX_TB_0_NXT_PC_ALLOC_CNT_SIZE;
+ unsigned int sx_event_full : SQ_DEBUG_VTX_TB_0_SX_EVENT_FULL_SIZE;
+ unsigned int busy_q : SQ_DEBUG_VTX_TB_0_BUSY_Q_SIZE;
+ unsigned int : 10;
+ } sq_debug_vtx_tb_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_vtx_tb_0_t {
+ unsigned int : 10;
+ unsigned int busy_q : SQ_DEBUG_VTX_TB_0_BUSY_Q_SIZE;
+ unsigned int sx_event_full : SQ_DEBUG_VTX_TB_0_SX_EVENT_FULL_SIZE;
+ unsigned int nxt_pc_alloc_cnt : SQ_DEBUG_VTX_TB_0_NXT_PC_ALLOC_CNT_SIZE;
+ unsigned int nxt_pos_alloc_cnt : SQ_DEBUG_VTX_TB_0_NXT_POS_ALLOC_CNT_SIZE;
+ unsigned int full_cnt_q : SQ_DEBUG_VTX_TB_0_FULL_CNT_Q_SIZE;
+ unsigned int tail_ptr_q : SQ_DEBUG_VTX_TB_0_TAIL_PTR_Q_SIZE;
+ unsigned int vtx_head_ptr_q : SQ_DEBUG_VTX_TB_0_VTX_HEAD_PTR_Q_SIZE;
+ } sq_debug_vtx_tb_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_vtx_tb_0_t f;
+} sq_debug_vtx_tb_0_u;
+
+
+/*
+ * SQ_DEBUG_VTX_TB_1 struct
+ */
+
+#define SQ_DEBUG_VTX_TB_1_VS_DONE_PTR_SIZE 16
+
+#define SQ_DEBUG_VTX_TB_1_VS_DONE_PTR_SHIFT 0
+
+#define SQ_DEBUG_VTX_TB_1_VS_DONE_PTR_MASK 0x0000ffff
+
+#define SQ_DEBUG_VTX_TB_1_MASK \
+ (SQ_DEBUG_VTX_TB_1_VS_DONE_PTR_MASK)
+
+#define SQ_DEBUG_VTX_TB_1(vs_done_ptr) \
+ ((vs_done_ptr << SQ_DEBUG_VTX_TB_1_VS_DONE_PTR_SHIFT))
+
+#define SQ_DEBUG_VTX_TB_1_GET_VS_DONE_PTR(sq_debug_vtx_tb_1) \
+ ((sq_debug_vtx_tb_1 & SQ_DEBUG_VTX_TB_1_VS_DONE_PTR_MASK) >> SQ_DEBUG_VTX_TB_1_VS_DONE_PTR_SHIFT)
+
+#define SQ_DEBUG_VTX_TB_1_SET_VS_DONE_PTR(sq_debug_vtx_tb_1_reg, vs_done_ptr) \
+ sq_debug_vtx_tb_1_reg = (sq_debug_vtx_tb_1_reg & ~SQ_DEBUG_VTX_TB_1_VS_DONE_PTR_MASK) | (vs_done_ptr << SQ_DEBUG_VTX_TB_1_VS_DONE_PTR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_vtx_tb_1_t {
+ unsigned int vs_done_ptr : SQ_DEBUG_VTX_TB_1_VS_DONE_PTR_SIZE;
+ unsigned int : 16;
+ } sq_debug_vtx_tb_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_vtx_tb_1_t {
+ unsigned int : 16;
+ unsigned int vs_done_ptr : SQ_DEBUG_VTX_TB_1_VS_DONE_PTR_SIZE;
+ } sq_debug_vtx_tb_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_vtx_tb_1_t f;
+} sq_debug_vtx_tb_1_u;
+
+
+/*
+ * SQ_DEBUG_VTX_TB_STATUS_REG struct
+ */
+
+#define SQ_DEBUG_VTX_TB_STATUS_REG_VS_STATUS_REG_SIZE 32
+
+#define SQ_DEBUG_VTX_TB_STATUS_REG_VS_STATUS_REG_SHIFT 0
+
+#define SQ_DEBUG_VTX_TB_STATUS_REG_VS_STATUS_REG_MASK 0xffffffff
+
+#define SQ_DEBUG_VTX_TB_STATUS_REG_MASK \
+ (SQ_DEBUG_VTX_TB_STATUS_REG_VS_STATUS_REG_MASK)
+
+#define SQ_DEBUG_VTX_TB_STATUS_REG(vs_status_reg) \
+ ((vs_status_reg << SQ_DEBUG_VTX_TB_STATUS_REG_VS_STATUS_REG_SHIFT))
+
+#define SQ_DEBUG_VTX_TB_STATUS_REG_GET_VS_STATUS_REG(sq_debug_vtx_tb_status_reg) \
+ ((sq_debug_vtx_tb_status_reg & SQ_DEBUG_VTX_TB_STATUS_REG_VS_STATUS_REG_MASK) >> SQ_DEBUG_VTX_TB_STATUS_REG_VS_STATUS_REG_SHIFT)
+
+#define SQ_DEBUG_VTX_TB_STATUS_REG_SET_VS_STATUS_REG(sq_debug_vtx_tb_status_reg_reg, vs_status_reg) \
+ sq_debug_vtx_tb_status_reg_reg = (sq_debug_vtx_tb_status_reg_reg & ~SQ_DEBUG_VTX_TB_STATUS_REG_VS_STATUS_REG_MASK) | (vs_status_reg << SQ_DEBUG_VTX_TB_STATUS_REG_VS_STATUS_REG_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_vtx_tb_status_reg_t {
+ unsigned int vs_status_reg : SQ_DEBUG_VTX_TB_STATUS_REG_VS_STATUS_REG_SIZE;
+ } sq_debug_vtx_tb_status_reg_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_vtx_tb_status_reg_t {
+ unsigned int vs_status_reg : SQ_DEBUG_VTX_TB_STATUS_REG_VS_STATUS_REG_SIZE;
+ } sq_debug_vtx_tb_status_reg_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_vtx_tb_status_reg_t f;
+} sq_debug_vtx_tb_status_reg_u;
+
+
+/*
+ * SQ_DEBUG_VTX_TB_STATE_MEM struct
+ */
+
+#define SQ_DEBUG_VTX_TB_STATE_MEM_VS_STATE_MEM_SIZE 32
+
+#define SQ_DEBUG_VTX_TB_STATE_MEM_VS_STATE_MEM_SHIFT 0
+
+#define SQ_DEBUG_VTX_TB_STATE_MEM_VS_STATE_MEM_MASK 0xffffffff
+
+#define SQ_DEBUG_VTX_TB_STATE_MEM_MASK \
+ (SQ_DEBUG_VTX_TB_STATE_MEM_VS_STATE_MEM_MASK)
+
+#define SQ_DEBUG_VTX_TB_STATE_MEM(vs_state_mem) \
+ ((vs_state_mem << SQ_DEBUG_VTX_TB_STATE_MEM_VS_STATE_MEM_SHIFT))
+
+#define SQ_DEBUG_VTX_TB_STATE_MEM_GET_VS_STATE_MEM(sq_debug_vtx_tb_state_mem) \
+ ((sq_debug_vtx_tb_state_mem & SQ_DEBUG_VTX_TB_STATE_MEM_VS_STATE_MEM_MASK) >> SQ_DEBUG_VTX_TB_STATE_MEM_VS_STATE_MEM_SHIFT)
+
+#define SQ_DEBUG_VTX_TB_STATE_MEM_SET_VS_STATE_MEM(sq_debug_vtx_tb_state_mem_reg, vs_state_mem) \
+ sq_debug_vtx_tb_state_mem_reg = (sq_debug_vtx_tb_state_mem_reg & ~SQ_DEBUG_VTX_TB_STATE_MEM_VS_STATE_MEM_MASK) | (vs_state_mem << SQ_DEBUG_VTX_TB_STATE_MEM_VS_STATE_MEM_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_vtx_tb_state_mem_t {
+ unsigned int vs_state_mem : SQ_DEBUG_VTX_TB_STATE_MEM_VS_STATE_MEM_SIZE;
+ } sq_debug_vtx_tb_state_mem_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_vtx_tb_state_mem_t {
+ unsigned int vs_state_mem : SQ_DEBUG_VTX_TB_STATE_MEM_VS_STATE_MEM_SIZE;
+ } sq_debug_vtx_tb_state_mem_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_vtx_tb_state_mem_t f;
+} sq_debug_vtx_tb_state_mem_u;
+
+
+/*
+ * SQ_DEBUG_PIX_TB_0 struct
+ */
+
+#define SQ_DEBUG_PIX_TB_0_PIX_HEAD_PTR_SIZE 6
+#define SQ_DEBUG_PIX_TB_0_TAIL_PTR_SIZE 6
+#define SQ_DEBUG_PIX_TB_0_FULL_CNT_SIZE 7
+#define SQ_DEBUG_PIX_TB_0_NXT_PIX_ALLOC_CNT_SIZE 6
+#define SQ_DEBUG_PIX_TB_0_NXT_PIX_EXP_CNT_SIZE 6
+#define SQ_DEBUG_PIX_TB_0_BUSY_SIZE 1
+
+#define SQ_DEBUG_PIX_TB_0_PIX_HEAD_PTR_SHIFT 0
+#define SQ_DEBUG_PIX_TB_0_TAIL_PTR_SHIFT 6
+#define SQ_DEBUG_PIX_TB_0_FULL_CNT_SHIFT 12
+#define SQ_DEBUG_PIX_TB_0_NXT_PIX_ALLOC_CNT_SHIFT 19
+#define SQ_DEBUG_PIX_TB_0_NXT_PIX_EXP_CNT_SHIFT 25
+#define SQ_DEBUG_PIX_TB_0_BUSY_SHIFT 31
+
+#define SQ_DEBUG_PIX_TB_0_PIX_HEAD_PTR_MASK 0x0000003f
+#define SQ_DEBUG_PIX_TB_0_TAIL_PTR_MASK 0x00000fc0
+#define SQ_DEBUG_PIX_TB_0_FULL_CNT_MASK 0x0007f000
+#define SQ_DEBUG_PIX_TB_0_NXT_PIX_ALLOC_CNT_MASK 0x01f80000
+#define SQ_DEBUG_PIX_TB_0_NXT_PIX_EXP_CNT_MASK 0x7e000000
+#define SQ_DEBUG_PIX_TB_0_BUSY_MASK 0x80000000
+
+#define SQ_DEBUG_PIX_TB_0_MASK \
+ (SQ_DEBUG_PIX_TB_0_PIX_HEAD_PTR_MASK | \
+ SQ_DEBUG_PIX_TB_0_TAIL_PTR_MASK | \
+ SQ_DEBUG_PIX_TB_0_FULL_CNT_MASK | \
+ SQ_DEBUG_PIX_TB_0_NXT_PIX_ALLOC_CNT_MASK | \
+ SQ_DEBUG_PIX_TB_0_NXT_PIX_EXP_CNT_MASK | \
+ SQ_DEBUG_PIX_TB_0_BUSY_MASK)
+
+#define SQ_DEBUG_PIX_TB_0(pix_head_ptr, tail_ptr, full_cnt, nxt_pix_alloc_cnt, nxt_pix_exp_cnt, busy) \
+ ((pix_head_ptr << SQ_DEBUG_PIX_TB_0_PIX_HEAD_PTR_SHIFT) | \
+ (tail_ptr << SQ_DEBUG_PIX_TB_0_TAIL_PTR_SHIFT) | \
+ (full_cnt << SQ_DEBUG_PIX_TB_0_FULL_CNT_SHIFT) | \
+ (nxt_pix_alloc_cnt << SQ_DEBUG_PIX_TB_0_NXT_PIX_ALLOC_CNT_SHIFT) | \
+ (nxt_pix_exp_cnt << SQ_DEBUG_PIX_TB_0_NXT_PIX_EXP_CNT_SHIFT) | \
+ (busy << SQ_DEBUG_PIX_TB_0_BUSY_SHIFT))
+
+#define SQ_DEBUG_PIX_TB_0_GET_PIX_HEAD_PTR(sq_debug_pix_tb_0) \
+ ((sq_debug_pix_tb_0 & SQ_DEBUG_PIX_TB_0_PIX_HEAD_PTR_MASK) >> SQ_DEBUG_PIX_TB_0_PIX_HEAD_PTR_SHIFT)
+#define SQ_DEBUG_PIX_TB_0_GET_TAIL_PTR(sq_debug_pix_tb_0) \
+ ((sq_debug_pix_tb_0 & SQ_DEBUG_PIX_TB_0_TAIL_PTR_MASK) >> SQ_DEBUG_PIX_TB_0_TAIL_PTR_SHIFT)
+#define SQ_DEBUG_PIX_TB_0_GET_FULL_CNT(sq_debug_pix_tb_0) \
+ ((sq_debug_pix_tb_0 & SQ_DEBUG_PIX_TB_0_FULL_CNT_MASK) >> SQ_DEBUG_PIX_TB_0_FULL_CNT_SHIFT)
+#define SQ_DEBUG_PIX_TB_0_GET_NXT_PIX_ALLOC_CNT(sq_debug_pix_tb_0) \
+ ((sq_debug_pix_tb_0 & SQ_DEBUG_PIX_TB_0_NXT_PIX_ALLOC_CNT_MASK) >> SQ_DEBUG_PIX_TB_0_NXT_PIX_ALLOC_CNT_SHIFT)
+#define SQ_DEBUG_PIX_TB_0_GET_NXT_PIX_EXP_CNT(sq_debug_pix_tb_0) \
+ ((sq_debug_pix_tb_0 & SQ_DEBUG_PIX_TB_0_NXT_PIX_EXP_CNT_MASK) >> SQ_DEBUG_PIX_TB_0_NXT_PIX_EXP_CNT_SHIFT)
+#define SQ_DEBUG_PIX_TB_0_GET_BUSY(sq_debug_pix_tb_0) \
+ ((sq_debug_pix_tb_0 & SQ_DEBUG_PIX_TB_0_BUSY_MASK) >> SQ_DEBUG_PIX_TB_0_BUSY_SHIFT)
+
+#define SQ_DEBUG_PIX_TB_0_SET_PIX_HEAD_PTR(sq_debug_pix_tb_0_reg, pix_head_ptr) \
+ sq_debug_pix_tb_0_reg = (sq_debug_pix_tb_0_reg & ~SQ_DEBUG_PIX_TB_0_PIX_HEAD_PTR_MASK) | (pix_head_ptr << SQ_DEBUG_PIX_TB_0_PIX_HEAD_PTR_SHIFT)
+#define SQ_DEBUG_PIX_TB_0_SET_TAIL_PTR(sq_debug_pix_tb_0_reg, tail_ptr) \
+ sq_debug_pix_tb_0_reg = (sq_debug_pix_tb_0_reg & ~SQ_DEBUG_PIX_TB_0_TAIL_PTR_MASK) | (tail_ptr << SQ_DEBUG_PIX_TB_0_TAIL_PTR_SHIFT)
+#define SQ_DEBUG_PIX_TB_0_SET_FULL_CNT(sq_debug_pix_tb_0_reg, full_cnt) \
+ sq_debug_pix_tb_0_reg = (sq_debug_pix_tb_0_reg & ~SQ_DEBUG_PIX_TB_0_FULL_CNT_MASK) | (full_cnt << SQ_DEBUG_PIX_TB_0_FULL_CNT_SHIFT)
+#define SQ_DEBUG_PIX_TB_0_SET_NXT_PIX_ALLOC_CNT(sq_debug_pix_tb_0_reg, nxt_pix_alloc_cnt) \
+ sq_debug_pix_tb_0_reg = (sq_debug_pix_tb_0_reg & ~SQ_DEBUG_PIX_TB_0_NXT_PIX_ALLOC_CNT_MASK) | (nxt_pix_alloc_cnt << SQ_DEBUG_PIX_TB_0_NXT_PIX_ALLOC_CNT_SHIFT)
+#define SQ_DEBUG_PIX_TB_0_SET_NXT_PIX_EXP_CNT(sq_debug_pix_tb_0_reg, nxt_pix_exp_cnt) \
+ sq_debug_pix_tb_0_reg = (sq_debug_pix_tb_0_reg & ~SQ_DEBUG_PIX_TB_0_NXT_PIX_EXP_CNT_MASK) | (nxt_pix_exp_cnt << SQ_DEBUG_PIX_TB_0_NXT_PIX_EXP_CNT_SHIFT)
+#define SQ_DEBUG_PIX_TB_0_SET_BUSY(sq_debug_pix_tb_0_reg, busy) \
+ sq_debug_pix_tb_0_reg = (sq_debug_pix_tb_0_reg & ~SQ_DEBUG_PIX_TB_0_BUSY_MASK) | (busy << SQ_DEBUG_PIX_TB_0_BUSY_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_pix_tb_0_t {
+ unsigned int pix_head_ptr : SQ_DEBUG_PIX_TB_0_PIX_HEAD_PTR_SIZE;
+ unsigned int tail_ptr : SQ_DEBUG_PIX_TB_0_TAIL_PTR_SIZE;
+ unsigned int full_cnt : SQ_DEBUG_PIX_TB_0_FULL_CNT_SIZE;
+ unsigned int nxt_pix_alloc_cnt : SQ_DEBUG_PIX_TB_0_NXT_PIX_ALLOC_CNT_SIZE;
+ unsigned int nxt_pix_exp_cnt : SQ_DEBUG_PIX_TB_0_NXT_PIX_EXP_CNT_SIZE;
+ unsigned int busy : SQ_DEBUG_PIX_TB_0_BUSY_SIZE;
+ } sq_debug_pix_tb_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_pix_tb_0_t {
+ unsigned int busy : SQ_DEBUG_PIX_TB_0_BUSY_SIZE;
+ unsigned int nxt_pix_exp_cnt : SQ_DEBUG_PIX_TB_0_NXT_PIX_EXP_CNT_SIZE;
+ unsigned int nxt_pix_alloc_cnt : SQ_DEBUG_PIX_TB_0_NXT_PIX_ALLOC_CNT_SIZE;
+ unsigned int full_cnt : SQ_DEBUG_PIX_TB_0_FULL_CNT_SIZE;
+ unsigned int tail_ptr : SQ_DEBUG_PIX_TB_0_TAIL_PTR_SIZE;
+ unsigned int pix_head_ptr : SQ_DEBUG_PIX_TB_0_PIX_HEAD_PTR_SIZE;
+ } sq_debug_pix_tb_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_pix_tb_0_t f;
+} sq_debug_pix_tb_0_u;
+
+
+/*
+ * SQ_DEBUG_PIX_TB_STATUS_REG_0 struct
+ */
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_0_PIX_TB_STATUS_REG_0_SIZE 32
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_0_PIX_TB_STATUS_REG_0_SHIFT 0
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_0_PIX_TB_STATUS_REG_0_MASK 0xffffffff
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_0_MASK \
+ (SQ_DEBUG_PIX_TB_STATUS_REG_0_PIX_TB_STATUS_REG_0_MASK)
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_0(pix_tb_status_reg_0) \
+ ((pix_tb_status_reg_0 << SQ_DEBUG_PIX_TB_STATUS_REG_0_PIX_TB_STATUS_REG_0_SHIFT))
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_0_GET_PIX_TB_STATUS_REG_0(sq_debug_pix_tb_status_reg_0) \
+ ((sq_debug_pix_tb_status_reg_0 & SQ_DEBUG_PIX_TB_STATUS_REG_0_PIX_TB_STATUS_REG_0_MASK) >> SQ_DEBUG_PIX_TB_STATUS_REG_0_PIX_TB_STATUS_REG_0_SHIFT)
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_0_SET_PIX_TB_STATUS_REG_0(sq_debug_pix_tb_status_reg_0_reg, pix_tb_status_reg_0) \
+ sq_debug_pix_tb_status_reg_0_reg = (sq_debug_pix_tb_status_reg_0_reg & ~SQ_DEBUG_PIX_TB_STATUS_REG_0_PIX_TB_STATUS_REG_0_MASK) | (pix_tb_status_reg_0 << SQ_DEBUG_PIX_TB_STATUS_REG_0_PIX_TB_STATUS_REG_0_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_pix_tb_status_reg_0_t {
+ unsigned int pix_tb_status_reg_0 : SQ_DEBUG_PIX_TB_STATUS_REG_0_PIX_TB_STATUS_REG_0_SIZE;
+ } sq_debug_pix_tb_status_reg_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_pix_tb_status_reg_0_t {
+ unsigned int pix_tb_status_reg_0 : SQ_DEBUG_PIX_TB_STATUS_REG_0_PIX_TB_STATUS_REG_0_SIZE;
+ } sq_debug_pix_tb_status_reg_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_pix_tb_status_reg_0_t f;
+} sq_debug_pix_tb_status_reg_0_u;
+
+
+/*
+ * SQ_DEBUG_PIX_TB_STATUS_REG_1 struct
+ */
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_1_PIX_TB_STATUS_REG_1_SIZE 32
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_1_PIX_TB_STATUS_REG_1_SHIFT 0
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_1_PIX_TB_STATUS_REG_1_MASK 0xffffffff
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_1_MASK \
+ (SQ_DEBUG_PIX_TB_STATUS_REG_1_PIX_TB_STATUS_REG_1_MASK)
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_1(pix_tb_status_reg_1) \
+ ((pix_tb_status_reg_1 << SQ_DEBUG_PIX_TB_STATUS_REG_1_PIX_TB_STATUS_REG_1_SHIFT))
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_1_GET_PIX_TB_STATUS_REG_1(sq_debug_pix_tb_status_reg_1) \
+ ((sq_debug_pix_tb_status_reg_1 & SQ_DEBUG_PIX_TB_STATUS_REG_1_PIX_TB_STATUS_REG_1_MASK) >> SQ_DEBUG_PIX_TB_STATUS_REG_1_PIX_TB_STATUS_REG_1_SHIFT)
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_1_SET_PIX_TB_STATUS_REG_1(sq_debug_pix_tb_status_reg_1_reg, pix_tb_status_reg_1) \
+ sq_debug_pix_tb_status_reg_1_reg = (sq_debug_pix_tb_status_reg_1_reg & ~SQ_DEBUG_PIX_TB_STATUS_REG_1_PIX_TB_STATUS_REG_1_MASK) | (pix_tb_status_reg_1 << SQ_DEBUG_PIX_TB_STATUS_REG_1_PIX_TB_STATUS_REG_1_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_pix_tb_status_reg_1_t {
+ unsigned int pix_tb_status_reg_1 : SQ_DEBUG_PIX_TB_STATUS_REG_1_PIX_TB_STATUS_REG_1_SIZE;
+ } sq_debug_pix_tb_status_reg_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_pix_tb_status_reg_1_t {
+ unsigned int pix_tb_status_reg_1 : SQ_DEBUG_PIX_TB_STATUS_REG_1_PIX_TB_STATUS_REG_1_SIZE;
+ } sq_debug_pix_tb_status_reg_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_pix_tb_status_reg_1_t f;
+} sq_debug_pix_tb_status_reg_1_u;
+
+
+/*
+ * SQ_DEBUG_PIX_TB_STATUS_REG_2 struct
+ */
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_2_PIX_TB_STATUS_REG_2_SIZE 32
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_2_PIX_TB_STATUS_REG_2_SHIFT 0
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_2_PIX_TB_STATUS_REG_2_MASK 0xffffffff
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_2_MASK \
+ (SQ_DEBUG_PIX_TB_STATUS_REG_2_PIX_TB_STATUS_REG_2_MASK)
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_2(pix_tb_status_reg_2) \
+ ((pix_tb_status_reg_2 << SQ_DEBUG_PIX_TB_STATUS_REG_2_PIX_TB_STATUS_REG_2_SHIFT))
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_2_GET_PIX_TB_STATUS_REG_2(sq_debug_pix_tb_status_reg_2) \
+ ((sq_debug_pix_tb_status_reg_2 & SQ_DEBUG_PIX_TB_STATUS_REG_2_PIX_TB_STATUS_REG_2_MASK) >> SQ_DEBUG_PIX_TB_STATUS_REG_2_PIX_TB_STATUS_REG_2_SHIFT)
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_2_SET_PIX_TB_STATUS_REG_2(sq_debug_pix_tb_status_reg_2_reg, pix_tb_status_reg_2) \
+ sq_debug_pix_tb_status_reg_2_reg = (sq_debug_pix_tb_status_reg_2_reg & ~SQ_DEBUG_PIX_TB_STATUS_REG_2_PIX_TB_STATUS_REG_2_MASK) | (pix_tb_status_reg_2 << SQ_DEBUG_PIX_TB_STATUS_REG_2_PIX_TB_STATUS_REG_2_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_pix_tb_status_reg_2_t {
+ unsigned int pix_tb_status_reg_2 : SQ_DEBUG_PIX_TB_STATUS_REG_2_PIX_TB_STATUS_REG_2_SIZE;
+ } sq_debug_pix_tb_status_reg_2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_pix_tb_status_reg_2_t {
+ unsigned int pix_tb_status_reg_2 : SQ_DEBUG_PIX_TB_STATUS_REG_2_PIX_TB_STATUS_REG_2_SIZE;
+ } sq_debug_pix_tb_status_reg_2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_pix_tb_status_reg_2_t f;
+} sq_debug_pix_tb_status_reg_2_u;
+
+
+/*
+ * SQ_DEBUG_PIX_TB_STATUS_REG_3 struct
+ */
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_3_PIX_TB_STATUS_REG_3_SIZE 32
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_3_PIX_TB_STATUS_REG_3_SHIFT 0
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_3_PIX_TB_STATUS_REG_3_MASK 0xffffffff
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_3_MASK \
+ (SQ_DEBUG_PIX_TB_STATUS_REG_3_PIX_TB_STATUS_REG_3_MASK)
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_3(pix_tb_status_reg_3) \
+ ((pix_tb_status_reg_3 << SQ_DEBUG_PIX_TB_STATUS_REG_3_PIX_TB_STATUS_REG_3_SHIFT))
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_3_GET_PIX_TB_STATUS_REG_3(sq_debug_pix_tb_status_reg_3) \
+ ((sq_debug_pix_tb_status_reg_3 & SQ_DEBUG_PIX_TB_STATUS_REG_3_PIX_TB_STATUS_REG_3_MASK) >> SQ_DEBUG_PIX_TB_STATUS_REG_3_PIX_TB_STATUS_REG_3_SHIFT)
+
+#define SQ_DEBUG_PIX_TB_STATUS_REG_3_SET_PIX_TB_STATUS_REG_3(sq_debug_pix_tb_status_reg_3_reg, pix_tb_status_reg_3) \
+ sq_debug_pix_tb_status_reg_3_reg = (sq_debug_pix_tb_status_reg_3_reg & ~SQ_DEBUG_PIX_TB_STATUS_REG_3_PIX_TB_STATUS_REG_3_MASK) | (pix_tb_status_reg_3 << SQ_DEBUG_PIX_TB_STATUS_REG_3_PIX_TB_STATUS_REG_3_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_pix_tb_status_reg_3_t {
+ unsigned int pix_tb_status_reg_3 : SQ_DEBUG_PIX_TB_STATUS_REG_3_PIX_TB_STATUS_REG_3_SIZE;
+ } sq_debug_pix_tb_status_reg_3_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_pix_tb_status_reg_3_t {
+ unsigned int pix_tb_status_reg_3 : SQ_DEBUG_PIX_TB_STATUS_REG_3_PIX_TB_STATUS_REG_3_SIZE;
+ } sq_debug_pix_tb_status_reg_3_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_pix_tb_status_reg_3_t f;
+} sq_debug_pix_tb_status_reg_3_u;
+
+
+/*
+ * SQ_DEBUG_PIX_TB_STATE_MEM struct
+ */
+
+#define SQ_DEBUG_PIX_TB_STATE_MEM_PIX_TB_STATE_MEM_SIZE 32
+
+#define SQ_DEBUG_PIX_TB_STATE_MEM_PIX_TB_STATE_MEM_SHIFT 0
+
+#define SQ_DEBUG_PIX_TB_STATE_MEM_PIX_TB_STATE_MEM_MASK 0xffffffff
+
+#define SQ_DEBUG_PIX_TB_STATE_MEM_MASK \
+ (SQ_DEBUG_PIX_TB_STATE_MEM_PIX_TB_STATE_MEM_MASK)
+
+#define SQ_DEBUG_PIX_TB_STATE_MEM(pix_tb_state_mem) \
+ ((pix_tb_state_mem << SQ_DEBUG_PIX_TB_STATE_MEM_PIX_TB_STATE_MEM_SHIFT))
+
+#define SQ_DEBUG_PIX_TB_STATE_MEM_GET_PIX_TB_STATE_MEM(sq_debug_pix_tb_state_mem) \
+ ((sq_debug_pix_tb_state_mem & SQ_DEBUG_PIX_TB_STATE_MEM_PIX_TB_STATE_MEM_MASK) >> SQ_DEBUG_PIX_TB_STATE_MEM_PIX_TB_STATE_MEM_SHIFT)
+
+#define SQ_DEBUG_PIX_TB_STATE_MEM_SET_PIX_TB_STATE_MEM(sq_debug_pix_tb_state_mem_reg, pix_tb_state_mem) \
+ sq_debug_pix_tb_state_mem_reg = (sq_debug_pix_tb_state_mem_reg & ~SQ_DEBUG_PIX_TB_STATE_MEM_PIX_TB_STATE_MEM_MASK) | (pix_tb_state_mem << SQ_DEBUG_PIX_TB_STATE_MEM_PIX_TB_STATE_MEM_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_pix_tb_state_mem_t {
+ unsigned int pix_tb_state_mem : SQ_DEBUG_PIX_TB_STATE_MEM_PIX_TB_STATE_MEM_SIZE;
+ } sq_debug_pix_tb_state_mem_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_pix_tb_state_mem_t {
+ unsigned int pix_tb_state_mem : SQ_DEBUG_PIX_TB_STATE_MEM_PIX_TB_STATE_MEM_SIZE;
+ } sq_debug_pix_tb_state_mem_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_pix_tb_state_mem_t f;
+} sq_debug_pix_tb_state_mem_u;
+
+
+/*
+ * SQ_PERFCOUNTER0_SELECT struct
+ */
+
+#define SQ_PERFCOUNTER0_SELECT_PERF_SEL_SIZE 8
+
+#define SQ_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT 0
+
+#define SQ_PERFCOUNTER0_SELECT_PERF_SEL_MASK 0x000000ff
+
+#define SQ_PERFCOUNTER0_SELECT_MASK \
+ (SQ_PERFCOUNTER0_SELECT_PERF_SEL_MASK)
+
+#define SQ_PERFCOUNTER0_SELECT(perf_sel) \
+ ((perf_sel << SQ_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT))
+
+#define SQ_PERFCOUNTER0_SELECT_GET_PERF_SEL(sq_perfcounter0_select) \
+ ((sq_perfcounter0_select & SQ_PERFCOUNTER0_SELECT_PERF_SEL_MASK) >> SQ_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT)
+
+#define SQ_PERFCOUNTER0_SELECT_SET_PERF_SEL(sq_perfcounter0_select_reg, perf_sel) \
+ sq_perfcounter0_select_reg = (sq_perfcounter0_select_reg & ~SQ_PERFCOUNTER0_SELECT_PERF_SEL_MASK) | (perf_sel << SQ_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter0_select_t {
+ unsigned int perf_sel : SQ_PERFCOUNTER0_SELECT_PERF_SEL_SIZE;
+ unsigned int : 24;
+ } sq_perfcounter0_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter0_select_t {
+ unsigned int : 24;
+ unsigned int perf_sel : SQ_PERFCOUNTER0_SELECT_PERF_SEL_SIZE;
+ } sq_perfcounter0_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_perfcounter0_select_t f;
+} sq_perfcounter0_select_u;
+
+
+/*
+ * SQ_PERFCOUNTER1_SELECT struct
+ */
+
+#define SQ_PERFCOUNTER1_SELECT_PERF_SEL_SIZE 8
+
+#define SQ_PERFCOUNTER1_SELECT_PERF_SEL_SHIFT 0
+
+#define SQ_PERFCOUNTER1_SELECT_PERF_SEL_MASK 0x000000ff
+
+#define SQ_PERFCOUNTER1_SELECT_MASK \
+ (SQ_PERFCOUNTER1_SELECT_PERF_SEL_MASK)
+
+#define SQ_PERFCOUNTER1_SELECT(perf_sel) \
+ ((perf_sel << SQ_PERFCOUNTER1_SELECT_PERF_SEL_SHIFT))
+
+#define SQ_PERFCOUNTER1_SELECT_GET_PERF_SEL(sq_perfcounter1_select) \
+ ((sq_perfcounter1_select & SQ_PERFCOUNTER1_SELECT_PERF_SEL_MASK) >> SQ_PERFCOUNTER1_SELECT_PERF_SEL_SHIFT)
+
+#define SQ_PERFCOUNTER1_SELECT_SET_PERF_SEL(sq_perfcounter1_select_reg, perf_sel) \
+ sq_perfcounter1_select_reg = (sq_perfcounter1_select_reg & ~SQ_PERFCOUNTER1_SELECT_PERF_SEL_MASK) | (perf_sel << SQ_PERFCOUNTER1_SELECT_PERF_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter1_select_t {
+ unsigned int perf_sel : SQ_PERFCOUNTER1_SELECT_PERF_SEL_SIZE;
+ unsigned int : 24;
+ } sq_perfcounter1_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter1_select_t {
+ unsigned int : 24;
+ unsigned int perf_sel : SQ_PERFCOUNTER1_SELECT_PERF_SEL_SIZE;
+ } sq_perfcounter1_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_perfcounter1_select_t f;
+} sq_perfcounter1_select_u;
+
+
+/*
+ * SQ_PERFCOUNTER2_SELECT struct
+ */
+
+#define SQ_PERFCOUNTER2_SELECT_PERF_SEL_SIZE 8
+
+#define SQ_PERFCOUNTER2_SELECT_PERF_SEL_SHIFT 0
+
+#define SQ_PERFCOUNTER2_SELECT_PERF_SEL_MASK 0x000000ff
+
+#define SQ_PERFCOUNTER2_SELECT_MASK \
+ (SQ_PERFCOUNTER2_SELECT_PERF_SEL_MASK)
+
+#define SQ_PERFCOUNTER2_SELECT(perf_sel) \
+ ((perf_sel << SQ_PERFCOUNTER2_SELECT_PERF_SEL_SHIFT))
+
+#define SQ_PERFCOUNTER2_SELECT_GET_PERF_SEL(sq_perfcounter2_select) \
+ ((sq_perfcounter2_select & SQ_PERFCOUNTER2_SELECT_PERF_SEL_MASK) >> SQ_PERFCOUNTER2_SELECT_PERF_SEL_SHIFT)
+
+#define SQ_PERFCOUNTER2_SELECT_SET_PERF_SEL(sq_perfcounter2_select_reg, perf_sel) \
+ sq_perfcounter2_select_reg = (sq_perfcounter2_select_reg & ~SQ_PERFCOUNTER2_SELECT_PERF_SEL_MASK) | (perf_sel << SQ_PERFCOUNTER2_SELECT_PERF_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter2_select_t {
+ unsigned int perf_sel : SQ_PERFCOUNTER2_SELECT_PERF_SEL_SIZE;
+ unsigned int : 24;
+ } sq_perfcounter2_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter2_select_t {
+ unsigned int : 24;
+ unsigned int perf_sel : SQ_PERFCOUNTER2_SELECT_PERF_SEL_SIZE;
+ } sq_perfcounter2_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_perfcounter2_select_t f;
+} sq_perfcounter2_select_u;
+
+
+/*
+ * SQ_PERFCOUNTER3_SELECT struct
+ */
+
+#define SQ_PERFCOUNTER3_SELECT_PERF_SEL_SIZE 8
+
+#define SQ_PERFCOUNTER3_SELECT_PERF_SEL_SHIFT 0
+
+#define SQ_PERFCOUNTER3_SELECT_PERF_SEL_MASK 0x000000ff
+
+#define SQ_PERFCOUNTER3_SELECT_MASK \
+ (SQ_PERFCOUNTER3_SELECT_PERF_SEL_MASK)
+
+#define SQ_PERFCOUNTER3_SELECT(perf_sel) \
+ ((perf_sel << SQ_PERFCOUNTER3_SELECT_PERF_SEL_SHIFT))
+
+#define SQ_PERFCOUNTER3_SELECT_GET_PERF_SEL(sq_perfcounter3_select) \
+ ((sq_perfcounter3_select & SQ_PERFCOUNTER3_SELECT_PERF_SEL_MASK) >> SQ_PERFCOUNTER3_SELECT_PERF_SEL_SHIFT)
+
+#define SQ_PERFCOUNTER3_SELECT_SET_PERF_SEL(sq_perfcounter3_select_reg, perf_sel) \
+ sq_perfcounter3_select_reg = (sq_perfcounter3_select_reg & ~SQ_PERFCOUNTER3_SELECT_PERF_SEL_MASK) | (perf_sel << SQ_PERFCOUNTER3_SELECT_PERF_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter3_select_t {
+ unsigned int perf_sel : SQ_PERFCOUNTER3_SELECT_PERF_SEL_SIZE;
+ unsigned int : 24;
+ } sq_perfcounter3_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter3_select_t {
+ unsigned int : 24;
+ unsigned int perf_sel : SQ_PERFCOUNTER3_SELECT_PERF_SEL_SIZE;
+ } sq_perfcounter3_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_perfcounter3_select_t f;
+} sq_perfcounter3_select_u;
+
+
+/*
+ * SQ_PERFCOUNTER0_LOW struct
+ */
+
+#define SQ_PERFCOUNTER0_LOW_PERF_COUNT_SIZE 32
+
+#define SQ_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT 0
+
+#define SQ_PERFCOUNTER0_LOW_PERF_COUNT_MASK 0xffffffff
+
+#define SQ_PERFCOUNTER0_LOW_MASK \
+ (SQ_PERFCOUNTER0_LOW_PERF_COUNT_MASK)
+
+#define SQ_PERFCOUNTER0_LOW(perf_count) \
+ ((perf_count << SQ_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT))
+
+#define SQ_PERFCOUNTER0_LOW_GET_PERF_COUNT(sq_perfcounter0_low) \
+ ((sq_perfcounter0_low & SQ_PERFCOUNTER0_LOW_PERF_COUNT_MASK) >> SQ_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT)
+
+#define SQ_PERFCOUNTER0_LOW_SET_PERF_COUNT(sq_perfcounter0_low_reg, perf_count) \
+ sq_perfcounter0_low_reg = (sq_perfcounter0_low_reg & ~SQ_PERFCOUNTER0_LOW_PERF_COUNT_MASK) | (perf_count << SQ_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter0_low_t {
+ unsigned int perf_count : SQ_PERFCOUNTER0_LOW_PERF_COUNT_SIZE;
+ } sq_perfcounter0_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter0_low_t {
+ unsigned int perf_count : SQ_PERFCOUNTER0_LOW_PERF_COUNT_SIZE;
+ } sq_perfcounter0_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_perfcounter0_low_t f;
+} sq_perfcounter0_low_u;
+
+
+/*
+ * SQ_PERFCOUNTER0_HI struct
+ */
+
+#define SQ_PERFCOUNTER0_HI_PERF_COUNT_SIZE 16
+
+#define SQ_PERFCOUNTER0_HI_PERF_COUNT_SHIFT 0
+
+#define SQ_PERFCOUNTER0_HI_PERF_COUNT_MASK 0x0000ffff
+
+#define SQ_PERFCOUNTER0_HI_MASK \
+ (SQ_PERFCOUNTER0_HI_PERF_COUNT_MASK)
+
+#define SQ_PERFCOUNTER0_HI(perf_count) \
+ ((perf_count << SQ_PERFCOUNTER0_HI_PERF_COUNT_SHIFT))
+
+#define SQ_PERFCOUNTER0_HI_GET_PERF_COUNT(sq_perfcounter0_hi) \
+ ((sq_perfcounter0_hi & SQ_PERFCOUNTER0_HI_PERF_COUNT_MASK) >> SQ_PERFCOUNTER0_HI_PERF_COUNT_SHIFT)
+
+#define SQ_PERFCOUNTER0_HI_SET_PERF_COUNT(sq_perfcounter0_hi_reg, perf_count) \
+ sq_perfcounter0_hi_reg = (sq_perfcounter0_hi_reg & ~SQ_PERFCOUNTER0_HI_PERF_COUNT_MASK) | (perf_count << SQ_PERFCOUNTER0_HI_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter0_hi_t {
+ unsigned int perf_count : SQ_PERFCOUNTER0_HI_PERF_COUNT_SIZE;
+ unsigned int : 16;
+ } sq_perfcounter0_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter0_hi_t {
+ unsigned int : 16;
+ unsigned int perf_count : SQ_PERFCOUNTER0_HI_PERF_COUNT_SIZE;
+ } sq_perfcounter0_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_perfcounter0_hi_t f;
+} sq_perfcounter0_hi_u;
+
+
+/*
+ * SQ_PERFCOUNTER1_LOW struct
+ */
+
+#define SQ_PERFCOUNTER1_LOW_PERF_COUNT_SIZE 32
+
+#define SQ_PERFCOUNTER1_LOW_PERF_COUNT_SHIFT 0
+
+#define SQ_PERFCOUNTER1_LOW_PERF_COUNT_MASK 0xffffffff
+
+#define SQ_PERFCOUNTER1_LOW_MASK \
+ (SQ_PERFCOUNTER1_LOW_PERF_COUNT_MASK)
+
+#define SQ_PERFCOUNTER1_LOW(perf_count) \
+ ((perf_count << SQ_PERFCOUNTER1_LOW_PERF_COUNT_SHIFT))
+
+#define SQ_PERFCOUNTER1_LOW_GET_PERF_COUNT(sq_perfcounter1_low) \
+ ((sq_perfcounter1_low & SQ_PERFCOUNTER1_LOW_PERF_COUNT_MASK) >> SQ_PERFCOUNTER1_LOW_PERF_COUNT_SHIFT)
+
+#define SQ_PERFCOUNTER1_LOW_SET_PERF_COUNT(sq_perfcounter1_low_reg, perf_count) \
+ sq_perfcounter1_low_reg = (sq_perfcounter1_low_reg & ~SQ_PERFCOUNTER1_LOW_PERF_COUNT_MASK) | (perf_count << SQ_PERFCOUNTER1_LOW_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter1_low_t {
+ unsigned int perf_count : SQ_PERFCOUNTER1_LOW_PERF_COUNT_SIZE;
+ } sq_perfcounter1_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter1_low_t {
+ unsigned int perf_count : SQ_PERFCOUNTER1_LOW_PERF_COUNT_SIZE;
+ } sq_perfcounter1_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_perfcounter1_low_t f;
+} sq_perfcounter1_low_u;
+
+
+/*
+ * SQ_PERFCOUNTER1_HI struct
+ */
+
+#define SQ_PERFCOUNTER1_HI_PERF_COUNT_SIZE 16
+
+#define SQ_PERFCOUNTER1_HI_PERF_COUNT_SHIFT 0
+
+#define SQ_PERFCOUNTER1_HI_PERF_COUNT_MASK 0x0000ffff
+
+#define SQ_PERFCOUNTER1_HI_MASK \
+ (SQ_PERFCOUNTER1_HI_PERF_COUNT_MASK)
+
+#define SQ_PERFCOUNTER1_HI(perf_count) \
+ ((perf_count << SQ_PERFCOUNTER1_HI_PERF_COUNT_SHIFT))
+
+#define SQ_PERFCOUNTER1_HI_GET_PERF_COUNT(sq_perfcounter1_hi) \
+ ((sq_perfcounter1_hi & SQ_PERFCOUNTER1_HI_PERF_COUNT_MASK) >> SQ_PERFCOUNTER1_HI_PERF_COUNT_SHIFT)
+
+#define SQ_PERFCOUNTER1_HI_SET_PERF_COUNT(sq_perfcounter1_hi_reg, perf_count) \
+ sq_perfcounter1_hi_reg = (sq_perfcounter1_hi_reg & ~SQ_PERFCOUNTER1_HI_PERF_COUNT_MASK) | (perf_count << SQ_PERFCOUNTER1_HI_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter1_hi_t {
+ unsigned int perf_count : SQ_PERFCOUNTER1_HI_PERF_COUNT_SIZE;
+ unsigned int : 16;
+ } sq_perfcounter1_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter1_hi_t {
+ unsigned int : 16;
+ unsigned int perf_count : SQ_PERFCOUNTER1_HI_PERF_COUNT_SIZE;
+ } sq_perfcounter1_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_perfcounter1_hi_t f;
+} sq_perfcounter1_hi_u;
+
+
+/*
+ * SQ_PERFCOUNTER2_LOW struct
+ */
+
+#define SQ_PERFCOUNTER2_LOW_PERF_COUNT_SIZE 32
+
+#define SQ_PERFCOUNTER2_LOW_PERF_COUNT_SHIFT 0
+
+#define SQ_PERFCOUNTER2_LOW_PERF_COUNT_MASK 0xffffffff
+
+#define SQ_PERFCOUNTER2_LOW_MASK \
+ (SQ_PERFCOUNTER2_LOW_PERF_COUNT_MASK)
+
+#define SQ_PERFCOUNTER2_LOW(perf_count) \
+ ((perf_count << SQ_PERFCOUNTER2_LOW_PERF_COUNT_SHIFT))
+
+#define SQ_PERFCOUNTER2_LOW_GET_PERF_COUNT(sq_perfcounter2_low) \
+ ((sq_perfcounter2_low & SQ_PERFCOUNTER2_LOW_PERF_COUNT_MASK) >> SQ_PERFCOUNTER2_LOW_PERF_COUNT_SHIFT)
+
+#define SQ_PERFCOUNTER2_LOW_SET_PERF_COUNT(sq_perfcounter2_low_reg, perf_count) \
+ sq_perfcounter2_low_reg = (sq_perfcounter2_low_reg & ~SQ_PERFCOUNTER2_LOW_PERF_COUNT_MASK) | (perf_count << SQ_PERFCOUNTER2_LOW_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter2_low_t {
+ unsigned int perf_count : SQ_PERFCOUNTER2_LOW_PERF_COUNT_SIZE;
+ } sq_perfcounter2_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter2_low_t {
+ unsigned int perf_count : SQ_PERFCOUNTER2_LOW_PERF_COUNT_SIZE;
+ } sq_perfcounter2_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_perfcounter2_low_t f;
+} sq_perfcounter2_low_u;
+
+
+/*
+ * SQ_PERFCOUNTER2_HI struct
+ */
+
+#define SQ_PERFCOUNTER2_HI_PERF_COUNT_SIZE 16
+
+#define SQ_PERFCOUNTER2_HI_PERF_COUNT_SHIFT 0
+
+#define SQ_PERFCOUNTER2_HI_PERF_COUNT_MASK 0x0000ffff
+
+#define SQ_PERFCOUNTER2_HI_MASK \
+ (SQ_PERFCOUNTER2_HI_PERF_COUNT_MASK)
+
+#define SQ_PERFCOUNTER2_HI(perf_count) \
+ ((perf_count << SQ_PERFCOUNTER2_HI_PERF_COUNT_SHIFT))
+
+#define SQ_PERFCOUNTER2_HI_GET_PERF_COUNT(sq_perfcounter2_hi) \
+ ((sq_perfcounter2_hi & SQ_PERFCOUNTER2_HI_PERF_COUNT_MASK) >> SQ_PERFCOUNTER2_HI_PERF_COUNT_SHIFT)
+
+#define SQ_PERFCOUNTER2_HI_SET_PERF_COUNT(sq_perfcounter2_hi_reg, perf_count) \
+ sq_perfcounter2_hi_reg = (sq_perfcounter2_hi_reg & ~SQ_PERFCOUNTER2_HI_PERF_COUNT_MASK) | (perf_count << SQ_PERFCOUNTER2_HI_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter2_hi_t {
+ unsigned int perf_count : SQ_PERFCOUNTER2_HI_PERF_COUNT_SIZE;
+ unsigned int : 16;
+ } sq_perfcounter2_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter2_hi_t {
+ unsigned int : 16;
+ unsigned int perf_count : SQ_PERFCOUNTER2_HI_PERF_COUNT_SIZE;
+ } sq_perfcounter2_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_perfcounter2_hi_t f;
+} sq_perfcounter2_hi_u;
+
+
+/*
+ * SQ_PERFCOUNTER3_LOW struct
+ */
+
+#define SQ_PERFCOUNTER3_LOW_PERF_COUNT_SIZE 32
+
+#define SQ_PERFCOUNTER3_LOW_PERF_COUNT_SHIFT 0
+
+#define SQ_PERFCOUNTER3_LOW_PERF_COUNT_MASK 0xffffffff
+
+#define SQ_PERFCOUNTER3_LOW_MASK \
+ (SQ_PERFCOUNTER3_LOW_PERF_COUNT_MASK)
+
+#define SQ_PERFCOUNTER3_LOW(perf_count) \
+ ((perf_count << SQ_PERFCOUNTER3_LOW_PERF_COUNT_SHIFT))
+
+#define SQ_PERFCOUNTER3_LOW_GET_PERF_COUNT(sq_perfcounter3_low) \
+ ((sq_perfcounter3_low & SQ_PERFCOUNTER3_LOW_PERF_COUNT_MASK) >> SQ_PERFCOUNTER3_LOW_PERF_COUNT_SHIFT)
+
+#define SQ_PERFCOUNTER3_LOW_SET_PERF_COUNT(sq_perfcounter3_low_reg, perf_count) \
+ sq_perfcounter3_low_reg = (sq_perfcounter3_low_reg & ~SQ_PERFCOUNTER3_LOW_PERF_COUNT_MASK) | (perf_count << SQ_PERFCOUNTER3_LOW_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter3_low_t {
+ unsigned int perf_count : SQ_PERFCOUNTER3_LOW_PERF_COUNT_SIZE;
+ } sq_perfcounter3_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter3_low_t {
+ unsigned int perf_count : SQ_PERFCOUNTER3_LOW_PERF_COUNT_SIZE;
+ } sq_perfcounter3_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_perfcounter3_low_t f;
+} sq_perfcounter3_low_u;
+
+
+/*
+ * SQ_PERFCOUNTER3_HI struct
+ */
+
+#define SQ_PERFCOUNTER3_HI_PERF_COUNT_SIZE 16
+
+#define SQ_PERFCOUNTER3_HI_PERF_COUNT_SHIFT 0
+
+#define SQ_PERFCOUNTER3_HI_PERF_COUNT_MASK 0x0000ffff
+
+#define SQ_PERFCOUNTER3_HI_MASK \
+ (SQ_PERFCOUNTER3_HI_PERF_COUNT_MASK)
+
+#define SQ_PERFCOUNTER3_HI(perf_count) \
+ ((perf_count << SQ_PERFCOUNTER3_HI_PERF_COUNT_SHIFT))
+
+#define SQ_PERFCOUNTER3_HI_GET_PERF_COUNT(sq_perfcounter3_hi) \
+ ((sq_perfcounter3_hi & SQ_PERFCOUNTER3_HI_PERF_COUNT_MASK) >> SQ_PERFCOUNTER3_HI_PERF_COUNT_SHIFT)
+
+#define SQ_PERFCOUNTER3_HI_SET_PERF_COUNT(sq_perfcounter3_hi_reg, perf_count) \
+ sq_perfcounter3_hi_reg = (sq_perfcounter3_hi_reg & ~SQ_PERFCOUNTER3_HI_PERF_COUNT_MASK) | (perf_count << SQ_PERFCOUNTER3_HI_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter3_hi_t {
+ unsigned int perf_count : SQ_PERFCOUNTER3_HI_PERF_COUNT_SIZE;
+ unsigned int : 16;
+ } sq_perfcounter3_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_perfcounter3_hi_t {
+ unsigned int : 16;
+ unsigned int perf_count : SQ_PERFCOUNTER3_HI_PERF_COUNT_SIZE;
+ } sq_perfcounter3_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_perfcounter3_hi_t f;
+} sq_perfcounter3_hi_u;
+
+
+/*
+ * SX_PERFCOUNTER0_SELECT struct
+ */
+
+#define SX_PERFCOUNTER0_SELECT_PERF_SEL_SIZE 8
+
+#define SX_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT 0
+
+#define SX_PERFCOUNTER0_SELECT_PERF_SEL_MASK 0x000000ff
+
+#define SX_PERFCOUNTER0_SELECT_MASK \
+ (SX_PERFCOUNTER0_SELECT_PERF_SEL_MASK)
+
+#define SX_PERFCOUNTER0_SELECT(perf_sel) \
+ ((perf_sel << SX_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT))
+
+#define SX_PERFCOUNTER0_SELECT_GET_PERF_SEL(sx_perfcounter0_select) \
+ ((sx_perfcounter0_select & SX_PERFCOUNTER0_SELECT_PERF_SEL_MASK) >> SX_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT)
+
+#define SX_PERFCOUNTER0_SELECT_SET_PERF_SEL(sx_perfcounter0_select_reg, perf_sel) \
+ sx_perfcounter0_select_reg = (sx_perfcounter0_select_reg & ~SX_PERFCOUNTER0_SELECT_PERF_SEL_MASK) | (perf_sel << SX_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sx_perfcounter0_select_t {
+ unsigned int perf_sel : SX_PERFCOUNTER0_SELECT_PERF_SEL_SIZE;
+ unsigned int : 24;
+ } sx_perfcounter0_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sx_perfcounter0_select_t {
+ unsigned int : 24;
+ unsigned int perf_sel : SX_PERFCOUNTER0_SELECT_PERF_SEL_SIZE;
+ } sx_perfcounter0_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sx_perfcounter0_select_t f;
+} sx_perfcounter0_select_u;
+
+
+/*
+ * SX_PERFCOUNTER0_LOW struct
+ */
+
+#define SX_PERFCOUNTER0_LOW_PERF_COUNT_SIZE 32
+
+#define SX_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT 0
+
+#define SX_PERFCOUNTER0_LOW_PERF_COUNT_MASK 0xffffffff
+
+#define SX_PERFCOUNTER0_LOW_MASK \
+ (SX_PERFCOUNTER0_LOW_PERF_COUNT_MASK)
+
+#define SX_PERFCOUNTER0_LOW(perf_count) \
+ ((perf_count << SX_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT))
+
+#define SX_PERFCOUNTER0_LOW_GET_PERF_COUNT(sx_perfcounter0_low) \
+ ((sx_perfcounter0_low & SX_PERFCOUNTER0_LOW_PERF_COUNT_MASK) >> SX_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT)
+
+#define SX_PERFCOUNTER0_LOW_SET_PERF_COUNT(sx_perfcounter0_low_reg, perf_count) \
+ sx_perfcounter0_low_reg = (sx_perfcounter0_low_reg & ~SX_PERFCOUNTER0_LOW_PERF_COUNT_MASK) | (perf_count << SX_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sx_perfcounter0_low_t {
+ unsigned int perf_count : SX_PERFCOUNTER0_LOW_PERF_COUNT_SIZE;
+ } sx_perfcounter0_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sx_perfcounter0_low_t {
+ unsigned int perf_count : SX_PERFCOUNTER0_LOW_PERF_COUNT_SIZE;
+ } sx_perfcounter0_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sx_perfcounter0_low_t f;
+} sx_perfcounter0_low_u;
+
+
+/*
+ * SX_PERFCOUNTER0_HI struct
+ */
+
+#define SX_PERFCOUNTER0_HI_PERF_COUNT_SIZE 16
+
+#define SX_PERFCOUNTER0_HI_PERF_COUNT_SHIFT 0
+
+#define SX_PERFCOUNTER0_HI_PERF_COUNT_MASK 0x0000ffff
+
+#define SX_PERFCOUNTER0_HI_MASK \
+ (SX_PERFCOUNTER0_HI_PERF_COUNT_MASK)
+
+#define SX_PERFCOUNTER0_HI(perf_count) \
+ ((perf_count << SX_PERFCOUNTER0_HI_PERF_COUNT_SHIFT))
+
+#define SX_PERFCOUNTER0_HI_GET_PERF_COUNT(sx_perfcounter0_hi) \
+ ((sx_perfcounter0_hi & SX_PERFCOUNTER0_HI_PERF_COUNT_MASK) >> SX_PERFCOUNTER0_HI_PERF_COUNT_SHIFT)
+
+#define SX_PERFCOUNTER0_HI_SET_PERF_COUNT(sx_perfcounter0_hi_reg, perf_count) \
+ sx_perfcounter0_hi_reg = (sx_perfcounter0_hi_reg & ~SX_PERFCOUNTER0_HI_PERF_COUNT_MASK) | (perf_count << SX_PERFCOUNTER0_HI_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sx_perfcounter0_hi_t {
+ unsigned int perf_count : SX_PERFCOUNTER0_HI_PERF_COUNT_SIZE;
+ unsigned int : 16;
+ } sx_perfcounter0_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sx_perfcounter0_hi_t {
+ unsigned int : 16;
+ unsigned int perf_count : SX_PERFCOUNTER0_HI_PERF_COUNT_SIZE;
+ } sx_perfcounter0_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sx_perfcounter0_hi_t f;
+} sx_perfcounter0_hi_u;
+
+
+/*
+ * SQ_INSTRUCTION_ALU_0 struct
+ */
+
+#define SQ_INSTRUCTION_ALU_0_VECTOR_RESULT_SIZE 6
+#define SQ_INSTRUCTION_ALU_0_VECTOR_DST_REL_SIZE 1
+#define SQ_INSTRUCTION_ALU_0_LOW_PRECISION_16B_FP_SIZE 1
+#define SQ_INSTRUCTION_ALU_0_SCALAR_RESULT_SIZE 6
+#define SQ_INSTRUCTION_ALU_0_SCALAR_DST_REL_SIZE 1
+#define SQ_INSTRUCTION_ALU_0_EXPORT_DATA_SIZE 1
+#define SQ_INSTRUCTION_ALU_0_VECTOR_WRT_MSK_SIZE 4
+#define SQ_INSTRUCTION_ALU_0_SCALAR_WRT_MSK_SIZE 4
+#define SQ_INSTRUCTION_ALU_0_VECTOR_CLAMP_SIZE 1
+#define SQ_INSTRUCTION_ALU_0_SCALAR_CLAMP_SIZE 1
+#define SQ_INSTRUCTION_ALU_0_SCALAR_OPCODE_SIZE 6
+
+#define SQ_INSTRUCTION_ALU_0_VECTOR_RESULT_SHIFT 0
+#define SQ_INSTRUCTION_ALU_0_VECTOR_DST_REL_SHIFT 6
+#define SQ_INSTRUCTION_ALU_0_LOW_PRECISION_16B_FP_SHIFT 7
+#define SQ_INSTRUCTION_ALU_0_SCALAR_RESULT_SHIFT 8
+#define SQ_INSTRUCTION_ALU_0_SCALAR_DST_REL_SHIFT 14
+#define SQ_INSTRUCTION_ALU_0_EXPORT_DATA_SHIFT 15
+#define SQ_INSTRUCTION_ALU_0_VECTOR_WRT_MSK_SHIFT 16
+#define SQ_INSTRUCTION_ALU_0_SCALAR_WRT_MSK_SHIFT 20
+#define SQ_INSTRUCTION_ALU_0_VECTOR_CLAMP_SHIFT 24
+#define SQ_INSTRUCTION_ALU_0_SCALAR_CLAMP_SHIFT 25
+#define SQ_INSTRUCTION_ALU_0_SCALAR_OPCODE_SHIFT 26
+
+#define SQ_INSTRUCTION_ALU_0_VECTOR_RESULT_MASK 0x0000003f
+#define SQ_INSTRUCTION_ALU_0_VECTOR_DST_REL_MASK 0x00000040
+#define SQ_INSTRUCTION_ALU_0_LOW_PRECISION_16B_FP_MASK 0x00000080
+#define SQ_INSTRUCTION_ALU_0_SCALAR_RESULT_MASK 0x00003f00
+#define SQ_INSTRUCTION_ALU_0_SCALAR_DST_REL_MASK 0x00004000
+#define SQ_INSTRUCTION_ALU_0_EXPORT_DATA_MASK 0x00008000
+#define SQ_INSTRUCTION_ALU_0_VECTOR_WRT_MSK_MASK 0x000f0000
+#define SQ_INSTRUCTION_ALU_0_SCALAR_WRT_MSK_MASK 0x00f00000
+#define SQ_INSTRUCTION_ALU_0_VECTOR_CLAMP_MASK 0x01000000
+#define SQ_INSTRUCTION_ALU_0_SCALAR_CLAMP_MASK 0x02000000
+#define SQ_INSTRUCTION_ALU_0_SCALAR_OPCODE_MASK 0xfc000000
+
+#define SQ_INSTRUCTION_ALU_0_MASK \
+ (SQ_INSTRUCTION_ALU_0_VECTOR_RESULT_MASK | \
+ SQ_INSTRUCTION_ALU_0_VECTOR_DST_REL_MASK | \
+ SQ_INSTRUCTION_ALU_0_LOW_PRECISION_16B_FP_MASK | \
+ SQ_INSTRUCTION_ALU_0_SCALAR_RESULT_MASK | \
+ SQ_INSTRUCTION_ALU_0_SCALAR_DST_REL_MASK | \
+ SQ_INSTRUCTION_ALU_0_EXPORT_DATA_MASK | \
+ SQ_INSTRUCTION_ALU_0_VECTOR_WRT_MSK_MASK | \
+ SQ_INSTRUCTION_ALU_0_SCALAR_WRT_MSK_MASK | \
+ SQ_INSTRUCTION_ALU_0_VECTOR_CLAMP_MASK | \
+ SQ_INSTRUCTION_ALU_0_SCALAR_CLAMP_MASK | \
+ SQ_INSTRUCTION_ALU_0_SCALAR_OPCODE_MASK)
+
+#define SQ_INSTRUCTION_ALU_0(vector_result, vector_dst_rel, low_precision_16b_fp, scalar_result, scalar_dst_rel, export_data, vector_wrt_msk, scalar_wrt_msk, vector_clamp, scalar_clamp, scalar_opcode) \
+ ((vector_result << SQ_INSTRUCTION_ALU_0_VECTOR_RESULT_SHIFT) | \
+ (vector_dst_rel << SQ_INSTRUCTION_ALU_0_VECTOR_DST_REL_SHIFT) | \
+ (low_precision_16b_fp << SQ_INSTRUCTION_ALU_0_LOW_PRECISION_16B_FP_SHIFT) | \
+ (scalar_result << SQ_INSTRUCTION_ALU_0_SCALAR_RESULT_SHIFT) | \
+ (scalar_dst_rel << SQ_INSTRUCTION_ALU_0_SCALAR_DST_REL_SHIFT) | \
+ (export_data << SQ_INSTRUCTION_ALU_0_EXPORT_DATA_SHIFT) | \
+ (vector_wrt_msk << SQ_INSTRUCTION_ALU_0_VECTOR_WRT_MSK_SHIFT) | \
+ (scalar_wrt_msk << SQ_INSTRUCTION_ALU_0_SCALAR_WRT_MSK_SHIFT) | \
+ (vector_clamp << SQ_INSTRUCTION_ALU_0_VECTOR_CLAMP_SHIFT) | \
+ (scalar_clamp << SQ_INSTRUCTION_ALU_0_SCALAR_CLAMP_SHIFT) | \
+ (scalar_opcode << SQ_INSTRUCTION_ALU_0_SCALAR_OPCODE_SHIFT))
+
+#define SQ_INSTRUCTION_ALU_0_GET_VECTOR_RESULT(sq_instruction_alu_0) \
+ ((sq_instruction_alu_0 & SQ_INSTRUCTION_ALU_0_VECTOR_RESULT_MASK) >> SQ_INSTRUCTION_ALU_0_VECTOR_RESULT_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_GET_VECTOR_DST_REL(sq_instruction_alu_0) \
+ ((sq_instruction_alu_0 & SQ_INSTRUCTION_ALU_0_VECTOR_DST_REL_MASK) >> SQ_INSTRUCTION_ALU_0_VECTOR_DST_REL_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_GET_LOW_PRECISION_16B_FP(sq_instruction_alu_0) \
+ ((sq_instruction_alu_0 & SQ_INSTRUCTION_ALU_0_LOW_PRECISION_16B_FP_MASK) >> SQ_INSTRUCTION_ALU_0_LOW_PRECISION_16B_FP_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_GET_SCALAR_RESULT(sq_instruction_alu_0) \
+ ((sq_instruction_alu_0 & SQ_INSTRUCTION_ALU_0_SCALAR_RESULT_MASK) >> SQ_INSTRUCTION_ALU_0_SCALAR_RESULT_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_GET_SCALAR_DST_REL(sq_instruction_alu_0) \
+ ((sq_instruction_alu_0 & SQ_INSTRUCTION_ALU_0_SCALAR_DST_REL_MASK) >> SQ_INSTRUCTION_ALU_0_SCALAR_DST_REL_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_GET_EXPORT_DATA(sq_instruction_alu_0) \
+ ((sq_instruction_alu_0 & SQ_INSTRUCTION_ALU_0_EXPORT_DATA_MASK) >> SQ_INSTRUCTION_ALU_0_EXPORT_DATA_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_GET_VECTOR_WRT_MSK(sq_instruction_alu_0) \
+ ((sq_instruction_alu_0 & SQ_INSTRUCTION_ALU_0_VECTOR_WRT_MSK_MASK) >> SQ_INSTRUCTION_ALU_0_VECTOR_WRT_MSK_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_GET_SCALAR_WRT_MSK(sq_instruction_alu_0) \
+ ((sq_instruction_alu_0 & SQ_INSTRUCTION_ALU_0_SCALAR_WRT_MSK_MASK) >> SQ_INSTRUCTION_ALU_0_SCALAR_WRT_MSK_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_GET_VECTOR_CLAMP(sq_instruction_alu_0) \
+ ((sq_instruction_alu_0 & SQ_INSTRUCTION_ALU_0_VECTOR_CLAMP_MASK) >> SQ_INSTRUCTION_ALU_0_VECTOR_CLAMP_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_GET_SCALAR_CLAMP(sq_instruction_alu_0) \
+ ((sq_instruction_alu_0 & SQ_INSTRUCTION_ALU_0_SCALAR_CLAMP_MASK) >> SQ_INSTRUCTION_ALU_0_SCALAR_CLAMP_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_GET_SCALAR_OPCODE(sq_instruction_alu_0) \
+ ((sq_instruction_alu_0 & SQ_INSTRUCTION_ALU_0_SCALAR_OPCODE_MASK) >> SQ_INSTRUCTION_ALU_0_SCALAR_OPCODE_SHIFT)
+
+#define SQ_INSTRUCTION_ALU_0_SET_VECTOR_RESULT(sq_instruction_alu_0_reg, vector_result) \
+ sq_instruction_alu_0_reg = (sq_instruction_alu_0_reg & ~SQ_INSTRUCTION_ALU_0_VECTOR_RESULT_MASK) | (vector_result << SQ_INSTRUCTION_ALU_0_VECTOR_RESULT_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_SET_VECTOR_DST_REL(sq_instruction_alu_0_reg, vector_dst_rel) \
+ sq_instruction_alu_0_reg = (sq_instruction_alu_0_reg & ~SQ_INSTRUCTION_ALU_0_VECTOR_DST_REL_MASK) | (vector_dst_rel << SQ_INSTRUCTION_ALU_0_VECTOR_DST_REL_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_SET_LOW_PRECISION_16B_FP(sq_instruction_alu_0_reg, low_precision_16b_fp) \
+ sq_instruction_alu_0_reg = (sq_instruction_alu_0_reg & ~SQ_INSTRUCTION_ALU_0_LOW_PRECISION_16B_FP_MASK) | (low_precision_16b_fp << SQ_INSTRUCTION_ALU_0_LOW_PRECISION_16B_FP_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_SET_SCALAR_RESULT(sq_instruction_alu_0_reg, scalar_result) \
+ sq_instruction_alu_0_reg = (sq_instruction_alu_0_reg & ~SQ_INSTRUCTION_ALU_0_SCALAR_RESULT_MASK) | (scalar_result << SQ_INSTRUCTION_ALU_0_SCALAR_RESULT_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_SET_SCALAR_DST_REL(sq_instruction_alu_0_reg, scalar_dst_rel) \
+ sq_instruction_alu_0_reg = (sq_instruction_alu_0_reg & ~SQ_INSTRUCTION_ALU_0_SCALAR_DST_REL_MASK) | (scalar_dst_rel << SQ_INSTRUCTION_ALU_0_SCALAR_DST_REL_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_SET_EXPORT_DATA(sq_instruction_alu_0_reg, export_data) \
+ sq_instruction_alu_0_reg = (sq_instruction_alu_0_reg & ~SQ_INSTRUCTION_ALU_0_EXPORT_DATA_MASK) | (export_data << SQ_INSTRUCTION_ALU_0_EXPORT_DATA_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_SET_VECTOR_WRT_MSK(sq_instruction_alu_0_reg, vector_wrt_msk) \
+ sq_instruction_alu_0_reg = (sq_instruction_alu_0_reg & ~SQ_INSTRUCTION_ALU_0_VECTOR_WRT_MSK_MASK) | (vector_wrt_msk << SQ_INSTRUCTION_ALU_0_VECTOR_WRT_MSK_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_SET_SCALAR_WRT_MSK(sq_instruction_alu_0_reg, scalar_wrt_msk) \
+ sq_instruction_alu_0_reg = (sq_instruction_alu_0_reg & ~SQ_INSTRUCTION_ALU_0_SCALAR_WRT_MSK_MASK) | (scalar_wrt_msk << SQ_INSTRUCTION_ALU_0_SCALAR_WRT_MSK_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_SET_VECTOR_CLAMP(sq_instruction_alu_0_reg, vector_clamp) \
+ sq_instruction_alu_0_reg = (sq_instruction_alu_0_reg & ~SQ_INSTRUCTION_ALU_0_VECTOR_CLAMP_MASK) | (vector_clamp << SQ_INSTRUCTION_ALU_0_VECTOR_CLAMP_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_SET_SCALAR_CLAMP(sq_instruction_alu_0_reg, scalar_clamp) \
+ sq_instruction_alu_0_reg = (sq_instruction_alu_0_reg & ~SQ_INSTRUCTION_ALU_0_SCALAR_CLAMP_MASK) | (scalar_clamp << SQ_INSTRUCTION_ALU_0_SCALAR_CLAMP_SHIFT)
+#define SQ_INSTRUCTION_ALU_0_SET_SCALAR_OPCODE(sq_instruction_alu_0_reg, scalar_opcode) \
+ sq_instruction_alu_0_reg = (sq_instruction_alu_0_reg & ~SQ_INSTRUCTION_ALU_0_SCALAR_OPCODE_MASK) | (scalar_opcode << SQ_INSTRUCTION_ALU_0_SCALAR_OPCODE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_alu_0_t {
+ unsigned int vector_result : SQ_INSTRUCTION_ALU_0_VECTOR_RESULT_SIZE;
+ unsigned int vector_dst_rel : SQ_INSTRUCTION_ALU_0_VECTOR_DST_REL_SIZE;
+ unsigned int low_precision_16b_fp : SQ_INSTRUCTION_ALU_0_LOW_PRECISION_16B_FP_SIZE;
+ unsigned int scalar_result : SQ_INSTRUCTION_ALU_0_SCALAR_RESULT_SIZE;
+ unsigned int scalar_dst_rel : SQ_INSTRUCTION_ALU_0_SCALAR_DST_REL_SIZE;
+ unsigned int export_data : SQ_INSTRUCTION_ALU_0_EXPORT_DATA_SIZE;
+ unsigned int vector_wrt_msk : SQ_INSTRUCTION_ALU_0_VECTOR_WRT_MSK_SIZE;
+ unsigned int scalar_wrt_msk : SQ_INSTRUCTION_ALU_0_SCALAR_WRT_MSK_SIZE;
+ unsigned int vector_clamp : SQ_INSTRUCTION_ALU_0_VECTOR_CLAMP_SIZE;
+ unsigned int scalar_clamp : SQ_INSTRUCTION_ALU_0_SCALAR_CLAMP_SIZE;
+ unsigned int scalar_opcode : SQ_INSTRUCTION_ALU_0_SCALAR_OPCODE_SIZE;
+ } sq_instruction_alu_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_alu_0_t {
+ unsigned int scalar_opcode : SQ_INSTRUCTION_ALU_0_SCALAR_OPCODE_SIZE;
+ unsigned int scalar_clamp : SQ_INSTRUCTION_ALU_0_SCALAR_CLAMP_SIZE;
+ unsigned int vector_clamp : SQ_INSTRUCTION_ALU_0_VECTOR_CLAMP_SIZE;
+ unsigned int scalar_wrt_msk : SQ_INSTRUCTION_ALU_0_SCALAR_WRT_MSK_SIZE;
+ unsigned int vector_wrt_msk : SQ_INSTRUCTION_ALU_0_VECTOR_WRT_MSK_SIZE;
+ unsigned int export_data : SQ_INSTRUCTION_ALU_0_EXPORT_DATA_SIZE;
+ unsigned int scalar_dst_rel : SQ_INSTRUCTION_ALU_0_SCALAR_DST_REL_SIZE;
+ unsigned int scalar_result : SQ_INSTRUCTION_ALU_0_SCALAR_RESULT_SIZE;
+ unsigned int low_precision_16b_fp : SQ_INSTRUCTION_ALU_0_LOW_PRECISION_16B_FP_SIZE;
+ unsigned int vector_dst_rel : SQ_INSTRUCTION_ALU_0_VECTOR_DST_REL_SIZE;
+ unsigned int vector_result : SQ_INSTRUCTION_ALU_0_VECTOR_RESULT_SIZE;
+ } sq_instruction_alu_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_alu_0_t f;
+} sq_instruction_alu_0_u;
+
+
+/*
+ * SQ_INSTRUCTION_ALU_1 struct
+ */
+
+#define SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_R_SIZE 2
+#define SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_G_SIZE 2
+#define SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_B_SIZE 2
+#define SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_A_SIZE 2
+#define SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_R_SIZE 2
+#define SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_G_SIZE 2
+#define SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_B_SIZE 2
+#define SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_A_SIZE 2
+#define SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_R_SIZE 2
+#define SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_G_SIZE 2
+#define SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_B_SIZE 2
+#define SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_A_SIZE 2
+#define SQ_INSTRUCTION_ALU_1_SRC_C_ARG_MOD_SIZE 1
+#define SQ_INSTRUCTION_ALU_1_SRC_B_ARG_MOD_SIZE 1
+#define SQ_INSTRUCTION_ALU_1_SRC_A_ARG_MOD_SIZE 1
+#define SQ_INSTRUCTION_ALU_1_PRED_SELECT_SIZE 2
+#define SQ_INSTRUCTION_ALU_1_RELATIVE_ADDR_SIZE 1
+#define SQ_INSTRUCTION_ALU_1_CONST_1_REL_ABS_SIZE 1
+#define SQ_INSTRUCTION_ALU_1_CONST_0_REL_ABS_SIZE 1
+
+#define SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_R_SHIFT 0
+#define SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_G_SHIFT 2
+#define SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_B_SHIFT 4
+#define SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_A_SHIFT 6
+#define SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_R_SHIFT 8
+#define SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_G_SHIFT 10
+#define SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_B_SHIFT 12
+#define SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_A_SHIFT 14
+#define SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_R_SHIFT 16
+#define SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_G_SHIFT 18
+#define SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_B_SHIFT 20
+#define SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_A_SHIFT 22
+#define SQ_INSTRUCTION_ALU_1_SRC_C_ARG_MOD_SHIFT 24
+#define SQ_INSTRUCTION_ALU_1_SRC_B_ARG_MOD_SHIFT 25
+#define SQ_INSTRUCTION_ALU_1_SRC_A_ARG_MOD_SHIFT 26
+#define SQ_INSTRUCTION_ALU_1_PRED_SELECT_SHIFT 27
+#define SQ_INSTRUCTION_ALU_1_RELATIVE_ADDR_SHIFT 29
+#define SQ_INSTRUCTION_ALU_1_CONST_1_REL_ABS_SHIFT 30
+#define SQ_INSTRUCTION_ALU_1_CONST_0_REL_ABS_SHIFT 31
+
+#define SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_R_MASK 0x00000003
+#define SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_G_MASK 0x0000000c
+#define SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_B_MASK 0x00000030
+#define SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_A_MASK 0x000000c0
+#define SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_R_MASK 0x00000300
+#define SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_G_MASK 0x00000c00
+#define SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_B_MASK 0x00003000
+#define SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_A_MASK 0x0000c000
+#define SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_R_MASK 0x00030000
+#define SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_G_MASK 0x000c0000
+#define SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_B_MASK 0x00300000
+#define SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_A_MASK 0x00c00000
+#define SQ_INSTRUCTION_ALU_1_SRC_C_ARG_MOD_MASK 0x01000000
+#define SQ_INSTRUCTION_ALU_1_SRC_B_ARG_MOD_MASK 0x02000000
+#define SQ_INSTRUCTION_ALU_1_SRC_A_ARG_MOD_MASK 0x04000000
+#define SQ_INSTRUCTION_ALU_1_PRED_SELECT_MASK 0x18000000
+#define SQ_INSTRUCTION_ALU_1_RELATIVE_ADDR_MASK 0x20000000
+#define SQ_INSTRUCTION_ALU_1_CONST_1_REL_ABS_MASK 0x40000000
+#define SQ_INSTRUCTION_ALU_1_CONST_0_REL_ABS_MASK 0x80000000
+
+#define SQ_INSTRUCTION_ALU_1_MASK \
+ (SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_R_MASK | \
+ SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_G_MASK | \
+ SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_B_MASK | \
+ SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_A_MASK | \
+ SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_R_MASK | \
+ SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_G_MASK | \
+ SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_B_MASK | \
+ SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_A_MASK | \
+ SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_R_MASK | \
+ SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_G_MASK | \
+ SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_B_MASK | \
+ SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_A_MASK | \
+ SQ_INSTRUCTION_ALU_1_SRC_C_ARG_MOD_MASK | \
+ SQ_INSTRUCTION_ALU_1_SRC_B_ARG_MOD_MASK | \
+ SQ_INSTRUCTION_ALU_1_SRC_A_ARG_MOD_MASK | \
+ SQ_INSTRUCTION_ALU_1_PRED_SELECT_MASK | \
+ SQ_INSTRUCTION_ALU_1_RELATIVE_ADDR_MASK | \
+ SQ_INSTRUCTION_ALU_1_CONST_1_REL_ABS_MASK | \
+ SQ_INSTRUCTION_ALU_1_CONST_0_REL_ABS_MASK)
+
+#define SQ_INSTRUCTION_ALU_1(src_c_swizzle_r, src_c_swizzle_g, src_c_swizzle_b, src_c_swizzle_a, src_b_swizzle_r, src_b_swizzle_g, src_b_swizzle_b, src_b_swizzle_a, src_a_swizzle_r, src_a_swizzle_g, src_a_swizzle_b, src_a_swizzle_a, src_c_arg_mod, src_b_arg_mod, src_a_arg_mod, pred_select, relative_addr, const_1_rel_abs, const_0_rel_abs) \
+ ((src_c_swizzle_r << SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_R_SHIFT) | \
+ (src_c_swizzle_g << SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_G_SHIFT) | \
+ (src_c_swizzle_b << SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_B_SHIFT) | \
+ (src_c_swizzle_a << SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_A_SHIFT) | \
+ (src_b_swizzle_r << SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_R_SHIFT) | \
+ (src_b_swizzle_g << SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_G_SHIFT) | \
+ (src_b_swizzle_b << SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_B_SHIFT) | \
+ (src_b_swizzle_a << SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_A_SHIFT) | \
+ (src_a_swizzle_r << SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_R_SHIFT) | \
+ (src_a_swizzle_g << SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_G_SHIFT) | \
+ (src_a_swizzle_b << SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_B_SHIFT) | \
+ (src_a_swizzle_a << SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_A_SHIFT) | \
+ (src_c_arg_mod << SQ_INSTRUCTION_ALU_1_SRC_C_ARG_MOD_SHIFT) | \
+ (src_b_arg_mod << SQ_INSTRUCTION_ALU_1_SRC_B_ARG_MOD_SHIFT) | \
+ (src_a_arg_mod << SQ_INSTRUCTION_ALU_1_SRC_A_ARG_MOD_SHIFT) | \
+ (pred_select << SQ_INSTRUCTION_ALU_1_PRED_SELECT_SHIFT) | \
+ (relative_addr << SQ_INSTRUCTION_ALU_1_RELATIVE_ADDR_SHIFT) | \
+ (const_1_rel_abs << SQ_INSTRUCTION_ALU_1_CONST_1_REL_ABS_SHIFT) | \
+ (const_0_rel_abs << SQ_INSTRUCTION_ALU_1_CONST_0_REL_ABS_SHIFT))
+
+#define SQ_INSTRUCTION_ALU_1_GET_SRC_C_SWIZZLE_R(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_R_MASK) >> SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_R_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_GET_SRC_C_SWIZZLE_G(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_G_MASK) >> SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_G_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_GET_SRC_C_SWIZZLE_B(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_B_MASK) >> SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_B_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_GET_SRC_C_SWIZZLE_A(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_A_MASK) >> SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_A_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_GET_SRC_B_SWIZZLE_R(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_R_MASK) >> SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_R_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_GET_SRC_B_SWIZZLE_G(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_G_MASK) >> SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_G_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_GET_SRC_B_SWIZZLE_B(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_B_MASK) >> SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_B_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_GET_SRC_B_SWIZZLE_A(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_A_MASK) >> SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_A_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_GET_SRC_A_SWIZZLE_R(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_R_MASK) >> SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_R_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_GET_SRC_A_SWIZZLE_G(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_G_MASK) >> SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_G_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_GET_SRC_A_SWIZZLE_B(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_B_MASK) >> SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_B_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_GET_SRC_A_SWIZZLE_A(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_A_MASK) >> SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_A_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_GET_SRC_C_ARG_MOD(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_SRC_C_ARG_MOD_MASK) >> SQ_INSTRUCTION_ALU_1_SRC_C_ARG_MOD_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_GET_SRC_B_ARG_MOD(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_SRC_B_ARG_MOD_MASK) >> SQ_INSTRUCTION_ALU_1_SRC_B_ARG_MOD_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_GET_SRC_A_ARG_MOD(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_SRC_A_ARG_MOD_MASK) >> SQ_INSTRUCTION_ALU_1_SRC_A_ARG_MOD_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_GET_PRED_SELECT(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_PRED_SELECT_MASK) >> SQ_INSTRUCTION_ALU_1_PRED_SELECT_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_GET_RELATIVE_ADDR(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_RELATIVE_ADDR_MASK) >> SQ_INSTRUCTION_ALU_1_RELATIVE_ADDR_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_GET_CONST_1_REL_ABS(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_CONST_1_REL_ABS_MASK) >> SQ_INSTRUCTION_ALU_1_CONST_1_REL_ABS_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_GET_CONST_0_REL_ABS(sq_instruction_alu_1) \
+ ((sq_instruction_alu_1 & SQ_INSTRUCTION_ALU_1_CONST_0_REL_ABS_MASK) >> SQ_INSTRUCTION_ALU_1_CONST_0_REL_ABS_SHIFT)
+
+#define SQ_INSTRUCTION_ALU_1_SET_SRC_C_SWIZZLE_R(sq_instruction_alu_1_reg, src_c_swizzle_r) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_R_MASK) | (src_c_swizzle_r << SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_R_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_SET_SRC_C_SWIZZLE_G(sq_instruction_alu_1_reg, src_c_swizzle_g) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_G_MASK) | (src_c_swizzle_g << SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_G_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_SET_SRC_C_SWIZZLE_B(sq_instruction_alu_1_reg, src_c_swizzle_b) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_B_MASK) | (src_c_swizzle_b << SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_B_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_SET_SRC_C_SWIZZLE_A(sq_instruction_alu_1_reg, src_c_swizzle_a) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_A_MASK) | (src_c_swizzle_a << SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_A_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_SET_SRC_B_SWIZZLE_R(sq_instruction_alu_1_reg, src_b_swizzle_r) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_R_MASK) | (src_b_swizzle_r << SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_R_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_SET_SRC_B_SWIZZLE_G(sq_instruction_alu_1_reg, src_b_swizzle_g) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_G_MASK) | (src_b_swizzle_g << SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_G_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_SET_SRC_B_SWIZZLE_B(sq_instruction_alu_1_reg, src_b_swizzle_b) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_B_MASK) | (src_b_swizzle_b << SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_B_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_SET_SRC_B_SWIZZLE_A(sq_instruction_alu_1_reg, src_b_swizzle_a) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_A_MASK) | (src_b_swizzle_a << SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_A_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_SET_SRC_A_SWIZZLE_R(sq_instruction_alu_1_reg, src_a_swizzle_r) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_R_MASK) | (src_a_swizzle_r << SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_R_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_SET_SRC_A_SWIZZLE_G(sq_instruction_alu_1_reg, src_a_swizzle_g) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_G_MASK) | (src_a_swizzle_g << SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_G_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_SET_SRC_A_SWIZZLE_B(sq_instruction_alu_1_reg, src_a_swizzle_b) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_B_MASK) | (src_a_swizzle_b << SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_B_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_SET_SRC_A_SWIZZLE_A(sq_instruction_alu_1_reg, src_a_swizzle_a) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_A_MASK) | (src_a_swizzle_a << SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_A_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_SET_SRC_C_ARG_MOD(sq_instruction_alu_1_reg, src_c_arg_mod) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_SRC_C_ARG_MOD_MASK) | (src_c_arg_mod << SQ_INSTRUCTION_ALU_1_SRC_C_ARG_MOD_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_SET_SRC_B_ARG_MOD(sq_instruction_alu_1_reg, src_b_arg_mod) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_SRC_B_ARG_MOD_MASK) | (src_b_arg_mod << SQ_INSTRUCTION_ALU_1_SRC_B_ARG_MOD_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_SET_SRC_A_ARG_MOD(sq_instruction_alu_1_reg, src_a_arg_mod) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_SRC_A_ARG_MOD_MASK) | (src_a_arg_mod << SQ_INSTRUCTION_ALU_1_SRC_A_ARG_MOD_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_SET_PRED_SELECT(sq_instruction_alu_1_reg, pred_select) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_PRED_SELECT_MASK) | (pred_select << SQ_INSTRUCTION_ALU_1_PRED_SELECT_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_SET_RELATIVE_ADDR(sq_instruction_alu_1_reg, relative_addr) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_RELATIVE_ADDR_MASK) | (relative_addr << SQ_INSTRUCTION_ALU_1_RELATIVE_ADDR_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_SET_CONST_1_REL_ABS(sq_instruction_alu_1_reg, const_1_rel_abs) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_CONST_1_REL_ABS_MASK) | (const_1_rel_abs << SQ_INSTRUCTION_ALU_1_CONST_1_REL_ABS_SHIFT)
+#define SQ_INSTRUCTION_ALU_1_SET_CONST_0_REL_ABS(sq_instruction_alu_1_reg, const_0_rel_abs) \
+ sq_instruction_alu_1_reg = (sq_instruction_alu_1_reg & ~SQ_INSTRUCTION_ALU_1_CONST_0_REL_ABS_MASK) | (const_0_rel_abs << SQ_INSTRUCTION_ALU_1_CONST_0_REL_ABS_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_alu_1_t {
+ unsigned int src_c_swizzle_r : SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_R_SIZE;
+ unsigned int src_c_swizzle_g : SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_G_SIZE;
+ unsigned int src_c_swizzle_b : SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_B_SIZE;
+ unsigned int src_c_swizzle_a : SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_A_SIZE;
+ unsigned int src_b_swizzle_r : SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_R_SIZE;
+ unsigned int src_b_swizzle_g : SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_G_SIZE;
+ unsigned int src_b_swizzle_b : SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_B_SIZE;
+ unsigned int src_b_swizzle_a : SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_A_SIZE;
+ unsigned int src_a_swizzle_r : SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_R_SIZE;
+ unsigned int src_a_swizzle_g : SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_G_SIZE;
+ unsigned int src_a_swizzle_b : SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_B_SIZE;
+ unsigned int src_a_swizzle_a : SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_A_SIZE;
+ unsigned int src_c_arg_mod : SQ_INSTRUCTION_ALU_1_SRC_C_ARG_MOD_SIZE;
+ unsigned int src_b_arg_mod : SQ_INSTRUCTION_ALU_1_SRC_B_ARG_MOD_SIZE;
+ unsigned int src_a_arg_mod : SQ_INSTRUCTION_ALU_1_SRC_A_ARG_MOD_SIZE;
+ unsigned int pred_select : SQ_INSTRUCTION_ALU_1_PRED_SELECT_SIZE;
+ unsigned int relative_addr : SQ_INSTRUCTION_ALU_1_RELATIVE_ADDR_SIZE;
+ unsigned int const_1_rel_abs : SQ_INSTRUCTION_ALU_1_CONST_1_REL_ABS_SIZE;
+ unsigned int const_0_rel_abs : SQ_INSTRUCTION_ALU_1_CONST_0_REL_ABS_SIZE;
+ } sq_instruction_alu_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_alu_1_t {
+ unsigned int const_0_rel_abs : SQ_INSTRUCTION_ALU_1_CONST_0_REL_ABS_SIZE;
+ unsigned int const_1_rel_abs : SQ_INSTRUCTION_ALU_1_CONST_1_REL_ABS_SIZE;
+ unsigned int relative_addr : SQ_INSTRUCTION_ALU_1_RELATIVE_ADDR_SIZE;
+ unsigned int pred_select : SQ_INSTRUCTION_ALU_1_PRED_SELECT_SIZE;
+ unsigned int src_a_arg_mod : SQ_INSTRUCTION_ALU_1_SRC_A_ARG_MOD_SIZE;
+ unsigned int src_b_arg_mod : SQ_INSTRUCTION_ALU_1_SRC_B_ARG_MOD_SIZE;
+ unsigned int src_c_arg_mod : SQ_INSTRUCTION_ALU_1_SRC_C_ARG_MOD_SIZE;
+ unsigned int src_a_swizzle_a : SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_A_SIZE;
+ unsigned int src_a_swizzle_b : SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_B_SIZE;
+ unsigned int src_a_swizzle_g : SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_G_SIZE;
+ unsigned int src_a_swizzle_r : SQ_INSTRUCTION_ALU_1_SRC_A_SWIZZLE_R_SIZE;
+ unsigned int src_b_swizzle_a : SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_A_SIZE;
+ unsigned int src_b_swizzle_b : SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_B_SIZE;
+ unsigned int src_b_swizzle_g : SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_G_SIZE;
+ unsigned int src_b_swizzle_r : SQ_INSTRUCTION_ALU_1_SRC_B_SWIZZLE_R_SIZE;
+ unsigned int src_c_swizzle_a : SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_A_SIZE;
+ unsigned int src_c_swizzle_b : SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_B_SIZE;
+ unsigned int src_c_swizzle_g : SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_G_SIZE;
+ unsigned int src_c_swizzle_r : SQ_INSTRUCTION_ALU_1_SRC_C_SWIZZLE_R_SIZE;
+ } sq_instruction_alu_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_alu_1_t f;
+} sq_instruction_alu_1_u;
+
+
+/*
+ * SQ_INSTRUCTION_ALU_2 struct
+ */
+
+#define SQ_INSTRUCTION_ALU_2_SRC_C_REG_PTR_SIZE 6
+#define SQ_INSTRUCTION_ALU_2_REG_SELECT_C_SIZE 1
+#define SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_C_SIZE 1
+#define SQ_INSTRUCTION_ALU_2_SRC_B_REG_PTR_SIZE 6
+#define SQ_INSTRUCTION_ALU_2_REG_SELECT_B_SIZE 1
+#define SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_B_SIZE 1
+#define SQ_INSTRUCTION_ALU_2_SRC_A_REG_PTR_SIZE 6
+#define SQ_INSTRUCTION_ALU_2_REG_SELECT_A_SIZE 1
+#define SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_A_SIZE 1
+#define SQ_INSTRUCTION_ALU_2_VECTOR_OPCODE_SIZE 5
+#define SQ_INSTRUCTION_ALU_2_SRC_C_SEL_SIZE 1
+#define SQ_INSTRUCTION_ALU_2_SRC_B_SEL_SIZE 1
+#define SQ_INSTRUCTION_ALU_2_SRC_A_SEL_SIZE 1
+
+#define SQ_INSTRUCTION_ALU_2_SRC_C_REG_PTR_SHIFT 0
+#define SQ_INSTRUCTION_ALU_2_REG_SELECT_C_SHIFT 6
+#define SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_C_SHIFT 7
+#define SQ_INSTRUCTION_ALU_2_SRC_B_REG_PTR_SHIFT 8
+#define SQ_INSTRUCTION_ALU_2_REG_SELECT_B_SHIFT 14
+#define SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_B_SHIFT 15
+#define SQ_INSTRUCTION_ALU_2_SRC_A_REG_PTR_SHIFT 16
+#define SQ_INSTRUCTION_ALU_2_REG_SELECT_A_SHIFT 22
+#define SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_A_SHIFT 23
+#define SQ_INSTRUCTION_ALU_2_VECTOR_OPCODE_SHIFT 24
+#define SQ_INSTRUCTION_ALU_2_SRC_C_SEL_SHIFT 29
+#define SQ_INSTRUCTION_ALU_2_SRC_B_SEL_SHIFT 30
+#define SQ_INSTRUCTION_ALU_2_SRC_A_SEL_SHIFT 31
+
+#define SQ_INSTRUCTION_ALU_2_SRC_C_REG_PTR_MASK 0x0000003f
+#define SQ_INSTRUCTION_ALU_2_REG_SELECT_C_MASK 0x00000040
+#define SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_C_MASK 0x00000080
+#define SQ_INSTRUCTION_ALU_2_SRC_B_REG_PTR_MASK 0x00003f00
+#define SQ_INSTRUCTION_ALU_2_REG_SELECT_B_MASK 0x00004000
+#define SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_B_MASK 0x00008000
+#define SQ_INSTRUCTION_ALU_2_SRC_A_REG_PTR_MASK 0x003f0000
+#define SQ_INSTRUCTION_ALU_2_REG_SELECT_A_MASK 0x00400000
+#define SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_A_MASK 0x00800000
+#define SQ_INSTRUCTION_ALU_2_VECTOR_OPCODE_MASK 0x1f000000
+#define SQ_INSTRUCTION_ALU_2_SRC_C_SEL_MASK 0x20000000
+#define SQ_INSTRUCTION_ALU_2_SRC_B_SEL_MASK 0x40000000
+#define SQ_INSTRUCTION_ALU_2_SRC_A_SEL_MASK 0x80000000
+
+#define SQ_INSTRUCTION_ALU_2_MASK \
+ (SQ_INSTRUCTION_ALU_2_SRC_C_REG_PTR_MASK | \
+ SQ_INSTRUCTION_ALU_2_REG_SELECT_C_MASK | \
+ SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_C_MASK | \
+ SQ_INSTRUCTION_ALU_2_SRC_B_REG_PTR_MASK | \
+ SQ_INSTRUCTION_ALU_2_REG_SELECT_B_MASK | \
+ SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_B_MASK | \
+ SQ_INSTRUCTION_ALU_2_SRC_A_REG_PTR_MASK | \
+ SQ_INSTRUCTION_ALU_2_REG_SELECT_A_MASK | \
+ SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_A_MASK | \
+ SQ_INSTRUCTION_ALU_2_VECTOR_OPCODE_MASK | \
+ SQ_INSTRUCTION_ALU_2_SRC_C_SEL_MASK | \
+ SQ_INSTRUCTION_ALU_2_SRC_B_SEL_MASK | \
+ SQ_INSTRUCTION_ALU_2_SRC_A_SEL_MASK)
+
+#define SQ_INSTRUCTION_ALU_2(src_c_reg_ptr, reg_select_c, reg_abs_mod_c, src_b_reg_ptr, reg_select_b, reg_abs_mod_b, src_a_reg_ptr, reg_select_a, reg_abs_mod_a, vector_opcode, src_c_sel, src_b_sel, src_a_sel) \
+ ((src_c_reg_ptr << SQ_INSTRUCTION_ALU_2_SRC_C_REG_PTR_SHIFT) | \
+ (reg_select_c << SQ_INSTRUCTION_ALU_2_REG_SELECT_C_SHIFT) | \
+ (reg_abs_mod_c << SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_C_SHIFT) | \
+ (src_b_reg_ptr << SQ_INSTRUCTION_ALU_2_SRC_B_REG_PTR_SHIFT) | \
+ (reg_select_b << SQ_INSTRUCTION_ALU_2_REG_SELECT_B_SHIFT) | \
+ (reg_abs_mod_b << SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_B_SHIFT) | \
+ (src_a_reg_ptr << SQ_INSTRUCTION_ALU_2_SRC_A_REG_PTR_SHIFT) | \
+ (reg_select_a << SQ_INSTRUCTION_ALU_2_REG_SELECT_A_SHIFT) | \
+ (reg_abs_mod_a << SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_A_SHIFT) | \
+ (vector_opcode << SQ_INSTRUCTION_ALU_2_VECTOR_OPCODE_SHIFT) | \
+ (src_c_sel << SQ_INSTRUCTION_ALU_2_SRC_C_SEL_SHIFT) | \
+ (src_b_sel << SQ_INSTRUCTION_ALU_2_SRC_B_SEL_SHIFT) | \
+ (src_a_sel << SQ_INSTRUCTION_ALU_2_SRC_A_SEL_SHIFT))
+
+#define SQ_INSTRUCTION_ALU_2_GET_SRC_C_REG_PTR(sq_instruction_alu_2) \
+ ((sq_instruction_alu_2 & SQ_INSTRUCTION_ALU_2_SRC_C_REG_PTR_MASK) >> SQ_INSTRUCTION_ALU_2_SRC_C_REG_PTR_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_GET_REG_SELECT_C(sq_instruction_alu_2) \
+ ((sq_instruction_alu_2 & SQ_INSTRUCTION_ALU_2_REG_SELECT_C_MASK) >> SQ_INSTRUCTION_ALU_2_REG_SELECT_C_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_GET_REG_ABS_MOD_C(sq_instruction_alu_2) \
+ ((sq_instruction_alu_2 & SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_C_MASK) >> SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_C_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_GET_SRC_B_REG_PTR(sq_instruction_alu_2) \
+ ((sq_instruction_alu_2 & SQ_INSTRUCTION_ALU_2_SRC_B_REG_PTR_MASK) >> SQ_INSTRUCTION_ALU_2_SRC_B_REG_PTR_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_GET_REG_SELECT_B(sq_instruction_alu_2) \
+ ((sq_instruction_alu_2 & SQ_INSTRUCTION_ALU_2_REG_SELECT_B_MASK) >> SQ_INSTRUCTION_ALU_2_REG_SELECT_B_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_GET_REG_ABS_MOD_B(sq_instruction_alu_2) \
+ ((sq_instruction_alu_2 & SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_B_MASK) >> SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_B_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_GET_SRC_A_REG_PTR(sq_instruction_alu_2) \
+ ((sq_instruction_alu_2 & SQ_INSTRUCTION_ALU_2_SRC_A_REG_PTR_MASK) >> SQ_INSTRUCTION_ALU_2_SRC_A_REG_PTR_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_GET_REG_SELECT_A(sq_instruction_alu_2) \
+ ((sq_instruction_alu_2 & SQ_INSTRUCTION_ALU_2_REG_SELECT_A_MASK) >> SQ_INSTRUCTION_ALU_2_REG_SELECT_A_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_GET_REG_ABS_MOD_A(sq_instruction_alu_2) \
+ ((sq_instruction_alu_2 & SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_A_MASK) >> SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_A_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_GET_VECTOR_OPCODE(sq_instruction_alu_2) \
+ ((sq_instruction_alu_2 & SQ_INSTRUCTION_ALU_2_VECTOR_OPCODE_MASK) >> SQ_INSTRUCTION_ALU_2_VECTOR_OPCODE_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_GET_SRC_C_SEL(sq_instruction_alu_2) \
+ ((sq_instruction_alu_2 & SQ_INSTRUCTION_ALU_2_SRC_C_SEL_MASK) >> SQ_INSTRUCTION_ALU_2_SRC_C_SEL_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_GET_SRC_B_SEL(sq_instruction_alu_2) \
+ ((sq_instruction_alu_2 & SQ_INSTRUCTION_ALU_2_SRC_B_SEL_MASK) >> SQ_INSTRUCTION_ALU_2_SRC_B_SEL_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_GET_SRC_A_SEL(sq_instruction_alu_2) \
+ ((sq_instruction_alu_2 & SQ_INSTRUCTION_ALU_2_SRC_A_SEL_MASK) >> SQ_INSTRUCTION_ALU_2_SRC_A_SEL_SHIFT)
+
+#define SQ_INSTRUCTION_ALU_2_SET_SRC_C_REG_PTR(sq_instruction_alu_2_reg, src_c_reg_ptr) \
+ sq_instruction_alu_2_reg = (sq_instruction_alu_2_reg & ~SQ_INSTRUCTION_ALU_2_SRC_C_REG_PTR_MASK) | (src_c_reg_ptr << SQ_INSTRUCTION_ALU_2_SRC_C_REG_PTR_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_SET_REG_SELECT_C(sq_instruction_alu_2_reg, reg_select_c) \
+ sq_instruction_alu_2_reg = (sq_instruction_alu_2_reg & ~SQ_INSTRUCTION_ALU_2_REG_SELECT_C_MASK) | (reg_select_c << SQ_INSTRUCTION_ALU_2_REG_SELECT_C_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_SET_REG_ABS_MOD_C(sq_instruction_alu_2_reg, reg_abs_mod_c) \
+ sq_instruction_alu_2_reg = (sq_instruction_alu_2_reg & ~SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_C_MASK) | (reg_abs_mod_c << SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_C_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_SET_SRC_B_REG_PTR(sq_instruction_alu_2_reg, src_b_reg_ptr) \
+ sq_instruction_alu_2_reg = (sq_instruction_alu_2_reg & ~SQ_INSTRUCTION_ALU_2_SRC_B_REG_PTR_MASK) | (src_b_reg_ptr << SQ_INSTRUCTION_ALU_2_SRC_B_REG_PTR_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_SET_REG_SELECT_B(sq_instruction_alu_2_reg, reg_select_b) \
+ sq_instruction_alu_2_reg = (sq_instruction_alu_2_reg & ~SQ_INSTRUCTION_ALU_2_REG_SELECT_B_MASK) | (reg_select_b << SQ_INSTRUCTION_ALU_2_REG_SELECT_B_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_SET_REG_ABS_MOD_B(sq_instruction_alu_2_reg, reg_abs_mod_b) \
+ sq_instruction_alu_2_reg = (sq_instruction_alu_2_reg & ~SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_B_MASK) | (reg_abs_mod_b << SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_B_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_SET_SRC_A_REG_PTR(sq_instruction_alu_2_reg, src_a_reg_ptr) \
+ sq_instruction_alu_2_reg = (sq_instruction_alu_2_reg & ~SQ_INSTRUCTION_ALU_2_SRC_A_REG_PTR_MASK) | (src_a_reg_ptr << SQ_INSTRUCTION_ALU_2_SRC_A_REG_PTR_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_SET_REG_SELECT_A(sq_instruction_alu_2_reg, reg_select_a) \
+ sq_instruction_alu_2_reg = (sq_instruction_alu_2_reg & ~SQ_INSTRUCTION_ALU_2_REG_SELECT_A_MASK) | (reg_select_a << SQ_INSTRUCTION_ALU_2_REG_SELECT_A_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_SET_REG_ABS_MOD_A(sq_instruction_alu_2_reg, reg_abs_mod_a) \
+ sq_instruction_alu_2_reg = (sq_instruction_alu_2_reg & ~SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_A_MASK) | (reg_abs_mod_a << SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_A_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_SET_VECTOR_OPCODE(sq_instruction_alu_2_reg, vector_opcode) \
+ sq_instruction_alu_2_reg = (sq_instruction_alu_2_reg & ~SQ_INSTRUCTION_ALU_2_VECTOR_OPCODE_MASK) | (vector_opcode << SQ_INSTRUCTION_ALU_2_VECTOR_OPCODE_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_SET_SRC_C_SEL(sq_instruction_alu_2_reg, src_c_sel) \
+ sq_instruction_alu_2_reg = (sq_instruction_alu_2_reg & ~SQ_INSTRUCTION_ALU_2_SRC_C_SEL_MASK) | (src_c_sel << SQ_INSTRUCTION_ALU_2_SRC_C_SEL_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_SET_SRC_B_SEL(sq_instruction_alu_2_reg, src_b_sel) \
+ sq_instruction_alu_2_reg = (sq_instruction_alu_2_reg & ~SQ_INSTRUCTION_ALU_2_SRC_B_SEL_MASK) | (src_b_sel << SQ_INSTRUCTION_ALU_2_SRC_B_SEL_SHIFT)
+#define SQ_INSTRUCTION_ALU_2_SET_SRC_A_SEL(sq_instruction_alu_2_reg, src_a_sel) \
+ sq_instruction_alu_2_reg = (sq_instruction_alu_2_reg & ~SQ_INSTRUCTION_ALU_2_SRC_A_SEL_MASK) | (src_a_sel << SQ_INSTRUCTION_ALU_2_SRC_A_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_alu_2_t {
+ unsigned int src_c_reg_ptr : SQ_INSTRUCTION_ALU_2_SRC_C_REG_PTR_SIZE;
+ unsigned int reg_select_c : SQ_INSTRUCTION_ALU_2_REG_SELECT_C_SIZE;
+ unsigned int reg_abs_mod_c : SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_C_SIZE;
+ unsigned int src_b_reg_ptr : SQ_INSTRUCTION_ALU_2_SRC_B_REG_PTR_SIZE;
+ unsigned int reg_select_b : SQ_INSTRUCTION_ALU_2_REG_SELECT_B_SIZE;
+ unsigned int reg_abs_mod_b : SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_B_SIZE;
+ unsigned int src_a_reg_ptr : SQ_INSTRUCTION_ALU_2_SRC_A_REG_PTR_SIZE;
+ unsigned int reg_select_a : SQ_INSTRUCTION_ALU_2_REG_SELECT_A_SIZE;
+ unsigned int reg_abs_mod_a : SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_A_SIZE;
+ unsigned int vector_opcode : SQ_INSTRUCTION_ALU_2_VECTOR_OPCODE_SIZE;
+ unsigned int src_c_sel : SQ_INSTRUCTION_ALU_2_SRC_C_SEL_SIZE;
+ unsigned int src_b_sel : SQ_INSTRUCTION_ALU_2_SRC_B_SEL_SIZE;
+ unsigned int src_a_sel : SQ_INSTRUCTION_ALU_2_SRC_A_SEL_SIZE;
+ } sq_instruction_alu_2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_alu_2_t {
+ unsigned int src_a_sel : SQ_INSTRUCTION_ALU_2_SRC_A_SEL_SIZE;
+ unsigned int src_b_sel : SQ_INSTRUCTION_ALU_2_SRC_B_SEL_SIZE;
+ unsigned int src_c_sel : SQ_INSTRUCTION_ALU_2_SRC_C_SEL_SIZE;
+ unsigned int vector_opcode : SQ_INSTRUCTION_ALU_2_VECTOR_OPCODE_SIZE;
+ unsigned int reg_abs_mod_a : SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_A_SIZE;
+ unsigned int reg_select_a : SQ_INSTRUCTION_ALU_2_REG_SELECT_A_SIZE;
+ unsigned int src_a_reg_ptr : SQ_INSTRUCTION_ALU_2_SRC_A_REG_PTR_SIZE;
+ unsigned int reg_abs_mod_b : SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_B_SIZE;
+ unsigned int reg_select_b : SQ_INSTRUCTION_ALU_2_REG_SELECT_B_SIZE;
+ unsigned int src_b_reg_ptr : SQ_INSTRUCTION_ALU_2_SRC_B_REG_PTR_SIZE;
+ unsigned int reg_abs_mod_c : SQ_INSTRUCTION_ALU_2_REG_ABS_MOD_C_SIZE;
+ unsigned int reg_select_c : SQ_INSTRUCTION_ALU_2_REG_SELECT_C_SIZE;
+ unsigned int src_c_reg_ptr : SQ_INSTRUCTION_ALU_2_SRC_C_REG_PTR_SIZE;
+ } sq_instruction_alu_2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_alu_2_t f;
+} sq_instruction_alu_2_u;
+
+
+/*
+ * SQ_INSTRUCTION_CF_EXEC_0 struct
+ */
+
+#define SQ_INSTRUCTION_CF_EXEC_0_ADDRESS_SIZE 9
+#define SQ_INSTRUCTION_CF_EXEC_0_RESERVED_SIZE 3
+#define SQ_INSTRUCTION_CF_EXEC_0_COUNT_SIZE 3
+#define SQ_INSTRUCTION_CF_EXEC_0_YIELD_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_0_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_0_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_1_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_1_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_2_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_2_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_3_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_3_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_4_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_4_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_5_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_5_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_VC_0_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_VC_1_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_VC_2_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_VC_3_SIZE 1
+
+#define SQ_INSTRUCTION_CF_EXEC_0_ADDRESS_SHIFT 0
+#define SQ_INSTRUCTION_CF_EXEC_0_RESERVED_SHIFT 9
+#define SQ_INSTRUCTION_CF_EXEC_0_COUNT_SHIFT 12
+#define SQ_INSTRUCTION_CF_EXEC_0_YIELD_SHIFT 15
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_0_SHIFT 16
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_0_SHIFT 17
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_1_SHIFT 18
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_1_SHIFT 19
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_2_SHIFT 20
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_2_SHIFT 21
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_3_SHIFT 22
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_3_SHIFT 23
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_4_SHIFT 24
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_4_SHIFT 25
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_5_SHIFT 26
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_5_SHIFT 27
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_VC_0_SHIFT 28
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_VC_1_SHIFT 29
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_VC_2_SHIFT 30
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_VC_3_SHIFT 31
+
+#define SQ_INSTRUCTION_CF_EXEC_0_ADDRESS_MASK 0x000001ff
+#define SQ_INSTRUCTION_CF_EXEC_0_RESERVED_MASK 0x00000e00
+#define SQ_INSTRUCTION_CF_EXEC_0_COUNT_MASK 0x00007000
+#define SQ_INSTRUCTION_CF_EXEC_0_YIELD_MASK 0x00008000
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_0_MASK 0x00010000
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_0_MASK 0x00020000
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_1_MASK 0x00040000
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_1_MASK 0x00080000
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_2_MASK 0x00100000
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_2_MASK 0x00200000
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_3_MASK 0x00400000
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_3_MASK 0x00800000
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_4_MASK 0x01000000
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_4_MASK 0x02000000
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_5_MASK 0x04000000
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_5_MASK 0x08000000
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_VC_0_MASK 0x10000000
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_VC_1_MASK 0x20000000
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_VC_2_MASK 0x40000000
+#define SQ_INSTRUCTION_CF_EXEC_0_INST_VC_3_MASK 0x80000000
+
+#define SQ_INSTRUCTION_CF_EXEC_0_MASK \
+ (SQ_INSTRUCTION_CF_EXEC_0_ADDRESS_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_RESERVED_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_COUNT_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_YIELD_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_0_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_0_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_1_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_1_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_2_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_2_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_3_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_3_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_4_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_4_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_5_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_5_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_INST_VC_0_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_INST_VC_1_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_INST_VC_2_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_0_INST_VC_3_MASK)
+
+#define SQ_INSTRUCTION_CF_EXEC_0(address, reserved, count, yield, inst_type_0, inst_serial_0, inst_type_1, inst_serial_1, inst_type_2, inst_serial_2, inst_type_3, inst_serial_3, inst_type_4, inst_serial_4, inst_type_5, inst_serial_5, inst_vc_0, inst_vc_1, inst_vc_2, inst_vc_3) \
+ ((address << SQ_INSTRUCTION_CF_EXEC_0_ADDRESS_SHIFT) | \
+ (reserved << SQ_INSTRUCTION_CF_EXEC_0_RESERVED_SHIFT) | \
+ (count << SQ_INSTRUCTION_CF_EXEC_0_COUNT_SHIFT) | \
+ (yield << SQ_INSTRUCTION_CF_EXEC_0_YIELD_SHIFT) | \
+ (inst_type_0 << SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_0_SHIFT) | \
+ (inst_serial_0 << SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_0_SHIFT) | \
+ (inst_type_1 << SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_1_SHIFT) | \
+ (inst_serial_1 << SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_1_SHIFT) | \
+ (inst_type_2 << SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_2_SHIFT) | \
+ (inst_serial_2 << SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_2_SHIFT) | \
+ (inst_type_3 << SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_3_SHIFT) | \
+ (inst_serial_3 << SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_3_SHIFT) | \
+ (inst_type_4 << SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_4_SHIFT) | \
+ (inst_serial_4 << SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_4_SHIFT) | \
+ (inst_type_5 << SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_5_SHIFT) | \
+ (inst_serial_5 << SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_5_SHIFT) | \
+ (inst_vc_0 << SQ_INSTRUCTION_CF_EXEC_0_INST_VC_0_SHIFT) | \
+ (inst_vc_1 << SQ_INSTRUCTION_CF_EXEC_0_INST_VC_1_SHIFT) | \
+ (inst_vc_2 << SQ_INSTRUCTION_CF_EXEC_0_INST_VC_2_SHIFT) | \
+ (inst_vc_3 << SQ_INSTRUCTION_CF_EXEC_0_INST_VC_3_SHIFT))
+
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_ADDRESS(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_ADDRESS_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_ADDRESS_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_RESERVED(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_RESERVED_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_RESERVED_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_COUNT(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_COUNT_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_COUNT_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_YIELD(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_YIELD_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_YIELD_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_INST_TYPE_0(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_0_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_0_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_INST_SERIAL_0(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_0_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_0_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_INST_TYPE_1(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_1_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_1_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_INST_SERIAL_1(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_1_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_1_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_INST_TYPE_2(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_2_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_2_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_INST_SERIAL_2(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_2_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_2_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_INST_TYPE_3(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_3_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_3_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_INST_SERIAL_3(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_3_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_3_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_INST_TYPE_4(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_4_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_4_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_INST_SERIAL_4(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_4_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_4_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_INST_TYPE_5(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_5_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_5_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_INST_SERIAL_5(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_5_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_5_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_INST_VC_0(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_INST_VC_0_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_INST_VC_0_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_INST_VC_1(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_INST_VC_1_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_INST_VC_1_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_INST_VC_2(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_INST_VC_2_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_INST_VC_2_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_GET_INST_VC_3(sq_instruction_cf_exec_0) \
+ ((sq_instruction_cf_exec_0 & SQ_INSTRUCTION_CF_EXEC_0_INST_VC_3_MASK) >> SQ_INSTRUCTION_CF_EXEC_0_INST_VC_3_SHIFT)
+
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_ADDRESS(sq_instruction_cf_exec_0_reg, address) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_ADDRESS_MASK) | (address << SQ_INSTRUCTION_CF_EXEC_0_ADDRESS_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_RESERVED(sq_instruction_cf_exec_0_reg, reserved) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_RESERVED_MASK) | (reserved << SQ_INSTRUCTION_CF_EXEC_0_RESERVED_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_COUNT(sq_instruction_cf_exec_0_reg, count) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_COUNT_MASK) | (count << SQ_INSTRUCTION_CF_EXEC_0_COUNT_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_YIELD(sq_instruction_cf_exec_0_reg, yield) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_YIELD_MASK) | (yield << SQ_INSTRUCTION_CF_EXEC_0_YIELD_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_INST_TYPE_0(sq_instruction_cf_exec_0_reg, inst_type_0) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_0_MASK) | (inst_type_0 << SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_0_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_INST_SERIAL_0(sq_instruction_cf_exec_0_reg, inst_serial_0) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_0_MASK) | (inst_serial_0 << SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_0_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_INST_TYPE_1(sq_instruction_cf_exec_0_reg, inst_type_1) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_1_MASK) | (inst_type_1 << SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_1_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_INST_SERIAL_1(sq_instruction_cf_exec_0_reg, inst_serial_1) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_1_MASK) | (inst_serial_1 << SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_1_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_INST_TYPE_2(sq_instruction_cf_exec_0_reg, inst_type_2) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_2_MASK) | (inst_type_2 << SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_2_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_INST_SERIAL_2(sq_instruction_cf_exec_0_reg, inst_serial_2) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_2_MASK) | (inst_serial_2 << SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_2_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_INST_TYPE_3(sq_instruction_cf_exec_0_reg, inst_type_3) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_3_MASK) | (inst_type_3 << SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_3_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_INST_SERIAL_3(sq_instruction_cf_exec_0_reg, inst_serial_3) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_3_MASK) | (inst_serial_3 << SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_3_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_INST_TYPE_4(sq_instruction_cf_exec_0_reg, inst_type_4) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_4_MASK) | (inst_type_4 << SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_4_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_INST_SERIAL_4(sq_instruction_cf_exec_0_reg, inst_serial_4) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_4_MASK) | (inst_serial_4 << SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_4_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_INST_TYPE_5(sq_instruction_cf_exec_0_reg, inst_type_5) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_5_MASK) | (inst_type_5 << SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_5_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_INST_SERIAL_5(sq_instruction_cf_exec_0_reg, inst_serial_5) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_5_MASK) | (inst_serial_5 << SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_5_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_INST_VC_0(sq_instruction_cf_exec_0_reg, inst_vc_0) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_INST_VC_0_MASK) | (inst_vc_0 << SQ_INSTRUCTION_CF_EXEC_0_INST_VC_0_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_INST_VC_1(sq_instruction_cf_exec_0_reg, inst_vc_1) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_INST_VC_1_MASK) | (inst_vc_1 << SQ_INSTRUCTION_CF_EXEC_0_INST_VC_1_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_INST_VC_2(sq_instruction_cf_exec_0_reg, inst_vc_2) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_INST_VC_2_MASK) | (inst_vc_2 << SQ_INSTRUCTION_CF_EXEC_0_INST_VC_2_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_0_SET_INST_VC_3(sq_instruction_cf_exec_0_reg, inst_vc_3) \
+ sq_instruction_cf_exec_0_reg = (sq_instruction_cf_exec_0_reg & ~SQ_INSTRUCTION_CF_EXEC_0_INST_VC_3_MASK) | (inst_vc_3 << SQ_INSTRUCTION_CF_EXEC_0_INST_VC_3_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_exec_0_t {
+ unsigned int address : SQ_INSTRUCTION_CF_EXEC_0_ADDRESS_SIZE;
+ unsigned int reserved : SQ_INSTRUCTION_CF_EXEC_0_RESERVED_SIZE;
+ unsigned int count : SQ_INSTRUCTION_CF_EXEC_0_COUNT_SIZE;
+ unsigned int yield : SQ_INSTRUCTION_CF_EXEC_0_YIELD_SIZE;
+ unsigned int inst_type_0 : SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_0_SIZE;
+ unsigned int inst_serial_0 : SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_0_SIZE;
+ unsigned int inst_type_1 : SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_1_SIZE;
+ unsigned int inst_serial_1 : SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_1_SIZE;
+ unsigned int inst_type_2 : SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_2_SIZE;
+ unsigned int inst_serial_2 : SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_2_SIZE;
+ unsigned int inst_type_3 : SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_3_SIZE;
+ unsigned int inst_serial_3 : SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_3_SIZE;
+ unsigned int inst_type_4 : SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_4_SIZE;
+ unsigned int inst_serial_4 : SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_4_SIZE;
+ unsigned int inst_type_5 : SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_5_SIZE;
+ unsigned int inst_serial_5 : SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_5_SIZE;
+ unsigned int inst_vc_0 : SQ_INSTRUCTION_CF_EXEC_0_INST_VC_0_SIZE;
+ unsigned int inst_vc_1 : SQ_INSTRUCTION_CF_EXEC_0_INST_VC_1_SIZE;
+ unsigned int inst_vc_2 : SQ_INSTRUCTION_CF_EXEC_0_INST_VC_2_SIZE;
+ unsigned int inst_vc_3 : SQ_INSTRUCTION_CF_EXEC_0_INST_VC_3_SIZE;
+ } sq_instruction_cf_exec_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_exec_0_t {
+ unsigned int inst_vc_3 : SQ_INSTRUCTION_CF_EXEC_0_INST_VC_3_SIZE;
+ unsigned int inst_vc_2 : SQ_INSTRUCTION_CF_EXEC_0_INST_VC_2_SIZE;
+ unsigned int inst_vc_1 : SQ_INSTRUCTION_CF_EXEC_0_INST_VC_1_SIZE;
+ unsigned int inst_vc_0 : SQ_INSTRUCTION_CF_EXEC_0_INST_VC_0_SIZE;
+ unsigned int inst_serial_5 : SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_5_SIZE;
+ unsigned int inst_type_5 : SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_5_SIZE;
+ unsigned int inst_serial_4 : SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_4_SIZE;
+ unsigned int inst_type_4 : SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_4_SIZE;
+ unsigned int inst_serial_3 : SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_3_SIZE;
+ unsigned int inst_type_3 : SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_3_SIZE;
+ unsigned int inst_serial_2 : SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_2_SIZE;
+ unsigned int inst_type_2 : SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_2_SIZE;
+ unsigned int inst_serial_1 : SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_1_SIZE;
+ unsigned int inst_type_1 : SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_1_SIZE;
+ unsigned int inst_serial_0 : SQ_INSTRUCTION_CF_EXEC_0_INST_SERIAL_0_SIZE;
+ unsigned int inst_type_0 : SQ_INSTRUCTION_CF_EXEC_0_INST_TYPE_0_SIZE;
+ unsigned int yield : SQ_INSTRUCTION_CF_EXEC_0_YIELD_SIZE;
+ unsigned int count : SQ_INSTRUCTION_CF_EXEC_0_COUNT_SIZE;
+ unsigned int reserved : SQ_INSTRUCTION_CF_EXEC_0_RESERVED_SIZE;
+ unsigned int address : SQ_INSTRUCTION_CF_EXEC_0_ADDRESS_SIZE;
+ } sq_instruction_cf_exec_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_cf_exec_0_t f;
+} sq_instruction_cf_exec_0_u;
+
+
+/*
+ * SQ_INSTRUCTION_CF_EXEC_1 struct
+ */
+
+#define SQ_INSTRUCTION_CF_EXEC_1_INST_VC_4_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_1_INST_VC_5_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_1_BOOL_ADDR_SIZE 8
+#define SQ_INSTRUCTION_CF_EXEC_1_CONDITION_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_MODE_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_1_OPCODE_SIZE 4
+#define SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_SIZE 9
+#define SQ_INSTRUCTION_CF_EXEC_1_RESERVED_SIZE 3
+#define SQ_INSTRUCTION_CF_EXEC_1_COUNT_SIZE 3
+#define SQ_INSTRUCTION_CF_EXEC_1_YIELD_SIZE 1
+
+#define SQ_INSTRUCTION_CF_EXEC_1_INST_VC_4_SHIFT 0
+#define SQ_INSTRUCTION_CF_EXEC_1_INST_VC_5_SHIFT 1
+#define SQ_INSTRUCTION_CF_EXEC_1_BOOL_ADDR_SHIFT 2
+#define SQ_INSTRUCTION_CF_EXEC_1_CONDITION_SHIFT 10
+#define SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_MODE_SHIFT 11
+#define SQ_INSTRUCTION_CF_EXEC_1_OPCODE_SHIFT 12
+#define SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_SHIFT 16
+#define SQ_INSTRUCTION_CF_EXEC_1_RESERVED_SHIFT 25
+#define SQ_INSTRUCTION_CF_EXEC_1_COUNT_SHIFT 28
+#define SQ_INSTRUCTION_CF_EXEC_1_YIELD_SHIFT 31
+
+#define SQ_INSTRUCTION_CF_EXEC_1_INST_VC_4_MASK 0x00000001
+#define SQ_INSTRUCTION_CF_EXEC_1_INST_VC_5_MASK 0x00000002
+#define SQ_INSTRUCTION_CF_EXEC_1_BOOL_ADDR_MASK 0x000003fc
+#define SQ_INSTRUCTION_CF_EXEC_1_CONDITION_MASK 0x00000400
+#define SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_MODE_MASK 0x00000800
+#define SQ_INSTRUCTION_CF_EXEC_1_OPCODE_MASK 0x0000f000
+#define SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_MASK 0x01ff0000
+#define SQ_INSTRUCTION_CF_EXEC_1_RESERVED_MASK 0x0e000000
+#define SQ_INSTRUCTION_CF_EXEC_1_COUNT_MASK 0x70000000
+#define SQ_INSTRUCTION_CF_EXEC_1_YIELD_MASK 0x80000000
+
+#define SQ_INSTRUCTION_CF_EXEC_1_MASK \
+ (SQ_INSTRUCTION_CF_EXEC_1_INST_VC_4_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_1_INST_VC_5_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_1_BOOL_ADDR_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_1_CONDITION_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_MODE_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_1_OPCODE_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_1_RESERVED_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_1_COUNT_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_1_YIELD_MASK)
+
+#define SQ_INSTRUCTION_CF_EXEC_1(inst_vc_4, inst_vc_5, bool_addr, condition, address_mode, opcode, address, reserved, count, yield) \
+ ((inst_vc_4 << SQ_INSTRUCTION_CF_EXEC_1_INST_VC_4_SHIFT) | \
+ (inst_vc_5 << SQ_INSTRUCTION_CF_EXEC_1_INST_VC_5_SHIFT) | \
+ (bool_addr << SQ_INSTRUCTION_CF_EXEC_1_BOOL_ADDR_SHIFT) | \
+ (condition << SQ_INSTRUCTION_CF_EXEC_1_CONDITION_SHIFT) | \
+ (address_mode << SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_MODE_SHIFT) | \
+ (opcode << SQ_INSTRUCTION_CF_EXEC_1_OPCODE_SHIFT) | \
+ (address << SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_SHIFT) | \
+ (reserved << SQ_INSTRUCTION_CF_EXEC_1_RESERVED_SHIFT) | \
+ (count << SQ_INSTRUCTION_CF_EXEC_1_COUNT_SHIFT) | \
+ (yield << SQ_INSTRUCTION_CF_EXEC_1_YIELD_SHIFT))
+
+#define SQ_INSTRUCTION_CF_EXEC_1_GET_INST_VC_4(sq_instruction_cf_exec_1) \
+ ((sq_instruction_cf_exec_1 & SQ_INSTRUCTION_CF_EXEC_1_INST_VC_4_MASK) >> SQ_INSTRUCTION_CF_EXEC_1_INST_VC_4_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_1_GET_INST_VC_5(sq_instruction_cf_exec_1) \
+ ((sq_instruction_cf_exec_1 & SQ_INSTRUCTION_CF_EXEC_1_INST_VC_5_MASK) >> SQ_INSTRUCTION_CF_EXEC_1_INST_VC_5_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_1_GET_BOOL_ADDR(sq_instruction_cf_exec_1) \
+ ((sq_instruction_cf_exec_1 & SQ_INSTRUCTION_CF_EXEC_1_BOOL_ADDR_MASK) >> SQ_INSTRUCTION_CF_EXEC_1_BOOL_ADDR_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_1_GET_CONDITION(sq_instruction_cf_exec_1) \
+ ((sq_instruction_cf_exec_1 & SQ_INSTRUCTION_CF_EXEC_1_CONDITION_MASK) >> SQ_INSTRUCTION_CF_EXEC_1_CONDITION_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_1_GET_ADDRESS_MODE(sq_instruction_cf_exec_1) \
+ ((sq_instruction_cf_exec_1 & SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_MODE_MASK) >> SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_MODE_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_1_GET_OPCODE(sq_instruction_cf_exec_1) \
+ ((sq_instruction_cf_exec_1 & SQ_INSTRUCTION_CF_EXEC_1_OPCODE_MASK) >> SQ_INSTRUCTION_CF_EXEC_1_OPCODE_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_1_GET_ADDRESS(sq_instruction_cf_exec_1) \
+ ((sq_instruction_cf_exec_1 & SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_MASK) >> SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_1_GET_RESERVED(sq_instruction_cf_exec_1) \
+ ((sq_instruction_cf_exec_1 & SQ_INSTRUCTION_CF_EXEC_1_RESERVED_MASK) >> SQ_INSTRUCTION_CF_EXEC_1_RESERVED_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_1_GET_COUNT(sq_instruction_cf_exec_1) \
+ ((sq_instruction_cf_exec_1 & SQ_INSTRUCTION_CF_EXEC_1_COUNT_MASK) >> SQ_INSTRUCTION_CF_EXEC_1_COUNT_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_1_GET_YIELD(sq_instruction_cf_exec_1) \
+ ((sq_instruction_cf_exec_1 & SQ_INSTRUCTION_CF_EXEC_1_YIELD_MASK) >> SQ_INSTRUCTION_CF_EXEC_1_YIELD_SHIFT)
+
+#define SQ_INSTRUCTION_CF_EXEC_1_SET_INST_VC_4(sq_instruction_cf_exec_1_reg, inst_vc_4) \
+ sq_instruction_cf_exec_1_reg = (sq_instruction_cf_exec_1_reg & ~SQ_INSTRUCTION_CF_EXEC_1_INST_VC_4_MASK) | (inst_vc_4 << SQ_INSTRUCTION_CF_EXEC_1_INST_VC_4_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_1_SET_INST_VC_5(sq_instruction_cf_exec_1_reg, inst_vc_5) \
+ sq_instruction_cf_exec_1_reg = (sq_instruction_cf_exec_1_reg & ~SQ_INSTRUCTION_CF_EXEC_1_INST_VC_5_MASK) | (inst_vc_5 << SQ_INSTRUCTION_CF_EXEC_1_INST_VC_5_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_1_SET_BOOL_ADDR(sq_instruction_cf_exec_1_reg, bool_addr) \
+ sq_instruction_cf_exec_1_reg = (sq_instruction_cf_exec_1_reg & ~SQ_INSTRUCTION_CF_EXEC_1_BOOL_ADDR_MASK) | (bool_addr << SQ_INSTRUCTION_CF_EXEC_1_BOOL_ADDR_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_1_SET_CONDITION(sq_instruction_cf_exec_1_reg, condition) \
+ sq_instruction_cf_exec_1_reg = (sq_instruction_cf_exec_1_reg & ~SQ_INSTRUCTION_CF_EXEC_1_CONDITION_MASK) | (condition << SQ_INSTRUCTION_CF_EXEC_1_CONDITION_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_1_SET_ADDRESS_MODE(sq_instruction_cf_exec_1_reg, address_mode) \
+ sq_instruction_cf_exec_1_reg = (sq_instruction_cf_exec_1_reg & ~SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_MODE_MASK) | (address_mode << SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_MODE_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_1_SET_OPCODE(sq_instruction_cf_exec_1_reg, opcode) \
+ sq_instruction_cf_exec_1_reg = (sq_instruction_cf_exec_1_reg & ~SQ_INSTRUCTION_CF_EXEC_1_OPCODE_MASK) | (opcode << SQ_INSTRUCTION_CF_EXEC_1_OPCODE_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_1_SET_ADDRESS(sq_instruction_cf_exec_1_reg, address) \
+ sq_instruction_cf_exec_1_reg = (sq_instruction_cf_exec_1_reg & ~SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_MASK) | (address << SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_1_SET_RESERVED(sq_instruction_cf_exec_1_reg, reserved) \
+ sq_instruction_cf_exec_1_reg = (sq_instruction_cf_exec_1_reg & ~SQ_INSTRUCTION_CF_EXEC_1_RESERVED_MASK) | (reserved << SQ_INSTRUCTION_CF_EXEC_1_RESERVED_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_1_SET_COUNT(sq_instruction_cf_exec_1_reg, count) \
+ sq_instruction_cf_exec_1_reg = (sq_instruction_cf_exec_1_reg & ~SQ_INSTRUCTION_CF_EXEC_1_COUNT_MASK) | (count << SQ_INSTRUCTION_CF_EXEC_1_COUNT_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_1_SET_YIELD(sq_instruction_cf_exec_1_reg, yield) \
+ sq_instruction_cf_exec_1_reg = (sq_instruction_cf_exec_1_reg & ~SQ_INSTRUCTION_CF_EXEC_1_YIELD_MASK) | (yield << SQ_INSTRUCTION_CF_EXEC_1_YIELD_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_exec_1_t {
+ unsigned int inst_vc_4 : SQ_INSTRUCTION_CF_EXEC_1_INST_VC_4_SIZE;
+ unsigned int inst_vc_5 : SQ_INSTRUCTION_CF_EXEC_1_INST_VC_5_SIZE;
+ unsigned int bool_addr : SQ_INSTRUCTION_CF_EXEC_1_BOOL_ADDR_SIZE;
+ unsigned int condition : SQ_INSTRUCTION_CF_EXEC_1_CONDITION_SIZE;
+ unsigned int address_mode : SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_MODE_SIZE;
+ unsigned int opcode : SQ_INSTRUCTION_CF_EXEC_1_OPCODE_SIZE;
+ unsigned int address : SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_SIZE;
+ unsigned int reserved : SQ_INSTRUCTION_CF_EXEC_1_RESERVED_SIZE;
+ unsigned int count : SQ_INSTRUCTION_CF_EXEC_1_COUNT_SIZE;
+ unsigned int yield : SQ_INSTRUCTION_CF_EXEC_1_YIELD_SIZE;
+ } sq_instruction_cf_exec_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_exec_1_t {
+ unsigned int yield : SQ_INSTRUCTION_CF_EXEC_1_YIELD_SIZE;
+ unsigned int count : SQ_INSTRUCTION_CF_EXEC_1_COUNT_SIZE;
+ unsigned int reserved : SQ_INSTRUCTION_CF_EXEC_1_RESERVED_SIZE;
+ unsigned int address : SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_SIZE;
+ unsigned int opcode : SQ_INSTRUCTION_CF_EXEC_1_OPCODE_SIZE;
+ unsigned int address_mode : SQ_INSTRUCTION_CF_EXEC_1_ADDRESS_MODE_SIZE;
+ unsigned int condition : SQ_INSTRUCTION_CF_EXEC_1_CONDITION_SIZE;
+ unsigned int bool_addr : SQ_INSTRUCTION_CF_EXEC_1_BOOL_ADDR_SIZE;
+ unsigned int inst_vc_5 : SQ_INSTRUCTION_CF_EXEC_1_INST_VC_5_SIZE;
+ unsigned int inst_vc_4 : SQ_INSTRUCTION_CF_EXEC_1_INST_VC_4_SIZE;
+ } sq_instruction_cf_exec_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_cf_exec_1_t f;
+} sq_instruction_cf_exec_1_u;
+
+
+/*
+ * SQ_INSTRUCTION_CF_EXEC_2 struct
+ */
+
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_0_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_0_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_1_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_1_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_2_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_2_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_3_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_3_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_4_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_4_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_5_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_5_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_VC_0_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_VC_1_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_VC_2_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_VC_3_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_VC_4_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_VC_5_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_BOOL_ADDR_SIZE 8
+#define SQ_INSTRUCTION_CF_EXEC_2_CONDITION_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_ADDRESS_MODE_SIZE 1
+#define SQ_INSTRUCTION_CF_EXEC_2_OPCODE_SIZE 4
+
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_0_SHIFT 0
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_0_SHIFT 1
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_1_SHIFT 2
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_1_SHIFT 3
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_2_SHIFT 4
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_2_SHIFT 5
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_3_SHIFT 6
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_3_SHIFT 7
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_4_SHIFT 8
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_4_SHIFT 9
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_5_SHIFT 10
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_5_SHIFT 11
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_VC_0_SHIFT 12
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_VC_1_SHIFT 13
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_VC_2_SHIFT 14
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_VC_3_SHIFT 15
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_VC_4_SHIFT 16
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_VC_5_SHIFT 17
+#define SQ_INSTRUCTION_CF_EXEC_2_BOOL_ADDR_SHIFT 18
+#define SQ_INSTRUCTION_CF_EXEC_2_CONDITION_SHIFT 26
+#define SQ_INSTRUCTION_CF_EXEC_2_ADDRESS_MODE_SHIFT 27
+#define SQ_INSTRUCTION_CF_EXEC_2_OPCODE_SHIFT 28
+
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_0_MASK 0x00000001
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_0_MASK 0x00000002
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_1_MASK 0x00000004
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_1_MASK 0x00000008
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_2_MASK 0x00000010
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_2_MASK 0x00000020
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_3_MASK 0x00000040
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_3_MASK 0x00000080
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_4_MASK 0x00000100
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_4_MASK 0x00000200
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_5_MASK 0x00000400
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_5_MASK 0x00000800
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_VC_0_MASK 0x00001000
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_VC_1_MASK 0x00002000
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_VC_2_MASK 0x00004000
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_VC_3_MASK 0x00008000
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_VC_4_MASK 0x00010000
+#define SQ_INSTRUCTION_CF_EXEC_2_INST_VC_5_MASK 0x00020000
+#define SQ_INSTRUCTION_CF_EXEC_2_BOOL_ADDR_MASK 0x03fc0000
+#define SQ_INSTRUCTION_CF_EXEC_2_CONDITION_MASK 0x04000000
+#define SQ_INSTRUCTION_CF_EXEC_2_ADDRESS_MODE_MASK 0x08000000
+#define SQ_INSTRUCTION_CF_EXEC_2_OPCODE_MASK 0xf0000000
+
+#define SQ_INSTRUCTION_CF_EXEC_2_MASK \
+ (SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_0_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_0_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_1_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_1_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_2_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_2_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_3_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_3_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_4_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_4_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_5_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_5_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_INST_VC_0_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_INST_VC_1_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_INST_VC_2_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_INST_VC_3_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_INST_VC_4_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_INST_VC_5_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_BOOL_ADDR_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_CONDITION_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_ADDRESS_MODE_MASK | \
+ SQ_INSTRUCTION_CF_EXEC_2_OPCODE_MASK)
+
+#define SQ_INSTRUCTION_CF_EXEC_2(inst_type_0, inst_serial_0, inst_type_1, inst_serial_1, inst_type_2, inst_serial_2, inst_type_3, inst_serial_3, inst_type_4, inst_serial_4, inst_type_5, inst_serial_5, inst_vc_0, inst_vc_1, inst_vc_2, inst_vc_3, inst_vc_4, inst_vc_5, bool_addr, condition, address_mode, opcode) \
+ ((inst_type_0 << SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_0_SHIFT) | \
+ (inst_serial_0 << SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_0_SHIFT) | \
+ (inst_type_1 << SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_1_SHIFT) | \
+ (inst_serial_1 << SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_1_SHIFT) | \
+ (inst_type_2 << SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_2_SHIFT) | \
+ (inst_serial_2 << SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_2_SHIFT) | \
+ (inst_type_3 << SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_3_SHIFT) | \
+ (inst_serial_3 << SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_3_SHIFT) | \
+ (inst_type_4 << SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_4_SHIFT) | \
+ (inst_serial_4 << SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_4_SHIFT) | \
+ (inst_type_5 << SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_5_SHIFT) | \
+ (inst_serial_5 << SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_5_SHIFT) | \
+ (inst_vc_0 << SQ_INSTRUCTION_CF_EXEC_2_INST_VC_0_SHIFT) | \
+ (inst_vc_1 << SQ_INSTRUCTION_CF_EXEC_2_INST_VC_1_SHIFT) | \
+ (inst_vc_2 << SQ_INSTRUCTION_CF_EXEC_2_INST_VC_2_SHIFT) | \
+ (inst_vc_3 << SQ_INSTRUCTION_CF_EXEC_2_INST_VC_3_SHIFT) | \
+ (inst_vc_4 << SQ_INSTRUCTION_CF_EXEC_2_INST_VC_4_SHIFT) | \
+ (inst_vc_5 << SQ_INSTRUCTION_CF_EXEC_2_INST_VC_5_SHIFT) | \
+ (bool_addr << SQ_INSTRUCTION_CF_EXEC_2_BOOL_ADDR_SHIFT) | \
+ (condition << SQ_INSTRUCTION_CF_EXEC_2_CONDITION_SHIFT) | \
+ (address_mode << SQ_INSTRUCTION_CF_EXEC_2_ADDRESS_MODE_SHIFT) | \
+ (opcode << SQ_INSTRUCTION_CF_EXEC_2_OPCODE_SHIFT))
+
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_INST_TYPE_0(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_0_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_0_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_INST_SERIAL_0(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_0_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_0_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_INST_TYPE_1(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_1_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_1_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_INST_SERIAL_1(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_1_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_1_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_INST_TYPE_2(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_2_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_2_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_INST_SERIAL_2(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_2_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_2_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_INST_TYPE_3(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_3_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_3_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_INST_SERIAL_3(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_3_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_3_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_INST_TYPE_4(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_4_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_4_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_INST_SERIAL_4(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_4_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_4_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_INST_TYPE_5(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_5_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_5_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_INST_SERIAL_5(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_5_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_5_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_INST_VC_0(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_INST_VC_0_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_INST_VC_0_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_INST_VC_1(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_INST_VC_1_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_INST_VC_1_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_INST_VC_2(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_INST_VC_2_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_INST_VC_2_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_INST_VC_3(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_INST_VC_3_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_INST_VC_3_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_INST_VC_4(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_INST_VC_4_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_INST_VC_4_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_INST_VC_5(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_INST_VC_5_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_INST_VC_5_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_BOOL_ADDR(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_BOOL_ADDR_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_BOOL_ADDR_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_CONDITION(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_CONDITION_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_CONDITION_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_ADDRESS_MODE(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_ADDRESS_MODE_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_ADDRESS_MODE_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_GET_OPCODE(sq_instruction_cf_exec_2) \
+ ((sq_instruction_cf_exec_2 & SQ_INSTRUCTION_CF_EXEC_2_OPCODE_MASK) >> SQ_INSTRUCTION_CF_EXEC_2_OPCODE_SHIFT)
+
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_INST_TYPE_0(sq_instruction_cf_exec_2_reg, inst_type_0) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_0_MASK) | (inst_type_0 << SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_0_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_INST_SERIAL_0(sq_instruction_cf_exec_2_reg, inst_serial_0) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_0_MASK) | (inst_serial_0 << SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_0_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_INST_TYPE_1(sq_instruction_cf_exec_2_reg, inst_type_1) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_1_MASK) | (inst_type_1 << SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_1_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_INST_SERIAL_1(sq_instruction_cf_exec_2_reg, inst_serial_1) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_1_MASK) | (inst_serial_1 << SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_1_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_INST_TYPE_2(sq_instruction_cf_exec_2_reg, inst_type_2) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_2_MASK) | (inst_type_2 << SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_2_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_INST_SERIAL_2(sq_instruction_cf_exec_2_reg, inst_serial_2) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_2_MASK) | (inst_serial_2 << SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_2_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_INST_TYPE_3(sq_instruction_cf_exec_2_reg, inst_type_3) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_3_MASK) | (inst_type_3 << SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_3_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_INST_SERIAL_3(sq_instruction_cf_exec_2_reg, inst_serial_3) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_3_MASK) | (inst_serial_3 << SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_3_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_INST_TYPE_4(sq_instruction_cf_exec_2_reg, inst_type_4) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_4_MASK) | (inst_type_4 << SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_4_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_INST_SERIAL_4(sq_instruction_cf_exec_2_reg, inst_serial_4) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_4_MASK) | (inst_serial_4 << SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_4_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_INST_TYPE_5(sq_instruction_cf_exec_2_reg, inst_type_5) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_5_MASK) | (inst_type_5 << SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_5_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_INST_SERIAL_5(sq_instruction_cf_exec_2_reg, inst_serial_5) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_5_MASK) | (inst_serial_5 << SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_5_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_INST_VC_0(sq_instruction_cf_exec_2_reg, inst_vc_0) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_INST_VC_0_MASK) | (inst_vc_0 << SQ_INSTRUCTION_CF_EXEC_2_INST_VC_0_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_INST_VC_1(sq_instruction_cf_exec_2_reg, inst_vc_1) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_INST_VC_1_MASK) | (inst_vc_1 << SQ_INSTRUCTION_CF_EXEC_2_INST_VC_1_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_INST_VC_2(sq_instruction_cf_exec_2_reg, inst_vc_2) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_INST_VC_2_MASK) | (inst_vc_2 << SQ_INSTRUCTION_CF_EXEC_2_INST_VC_2_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_INST_VC_3(sq_instruction_cf_exec_2_reg, inst_vc_3) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_INST_VC_3_MASK) | (inst_vc_3 << SQ_INSTRUCTION_CF_EXEC_2_INST_VC_3_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_INST_VC_4(sq_instruction_cf_exec_2_reg, inst_vc_4) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_INST_VC_4_MASK) | (inst_vc_4 << SQ_INSTRUCTION_CF_EXEC_2_INST_VC_4_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_INST_VC_5(sq_instruction_cf_exec_2_reg, inst_vc_5) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_INST_VC_5_MASK) | (inst_vc_5 << SQ_INSTRUCTION_CF_EXEC_2_INST_VC_5_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_BOOL_ADDR(sq_instruction_cf_exec_2_reg, bool_addr) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_BOOL_ADDR_MASK) | (bool_addr << SQ_INSTRUCTION_CF_EXEC_2_BOOL_ADDR_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_CONDITION(sq_instruction_cf_exec_2_reg, condition) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_CONDITION_MASK) | (condition << SQ_INSTRUCTION_CF_EXEC_2_CONDITION_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_ADDRESS_MODE(sq_instruction_cf_exec_2_reg, address_mode) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_ADDRESS_MODE_MASK) | (address_mode << SQ_INSTRUCTION_CF_EXEC_2_ADDRESS_MODE_SHIFT)
+#define SQ_INSTRUCTION_CF_EXEC_2_SET_OPCODE(sq_instruction_cf_exec_2_reg, opcode) \
+ sq_instruction_cf_exec_2_reg = (sq_instruction_cf_exec_2_reg & ~SQ_INSTRUCTION_CF_EXEC_2_OPCODE_MASK) | (opcode << SQ_INSTRUCTION_CF_EXEC_2_OPCODE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_exec_2_t {
+ unsigned int inst_type_0 : SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_0_SIZE;
+ unsigned int inst_serial_0 : SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_0_SIZE;
+ unsigned int inst_type_1 : SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_1_SIZE;
+ unsigned int inst_serial_1 : SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_1_SIZE;
+ unsigned int inst_type_2 : SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_2_SIZE;
+ unsigned int inst_serial_2 : SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_2_SIZE;
+ unsigned int inst_type_3 : SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_3_SIZE;
+ unsigned int inst_serial_3 : SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_3_SIZE;
+ unsigned int inst_type_4 : SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_4_SIZE;
+ unsigned int inst_serial_4 : SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_4_SIZE;
+ unsigned int inst_type_5 : SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_5_SIZE;
+ unsigned int inst_serial_5 : SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_5_SIZE;
+ unsigned int inst_vc_0 : SQ_INSTRUCTION_CF_EXEC_2_INST_VC_0_SIZE;
+ unsigned int inst_vc_1 : SQ_INSTRUCTION_CF_EXEC_2_INST_VC_1_SIZE;
+ unsigned int inst_vc_2 : SQ_INSTRUCTION_CF_EXEC_2_INST_VC_2_SIZE;
+ unsigned int inst_vc_3 : SQ_INSTRUCTION_CF_EXEC_2_INST_VC_3_SIZE;
+ unsigned int inst_vc_4 : SQ_INSTRUCTION_CF_EXEC_2_INST_VC_4_SIZE;
+ unsigned int inst_vc_5 : SQ_INSTRUCTION_CF_EXEC_2_INST_VC_5_SIZE;
+ unsigned int bool_addr : SQ_INSTRUCTION_CF_EXEC_2_BOOL_ADDR_SIZE;
+ unsigned int condition : SQ_INSTRUCTION_CF_EXEC_2_CONDITION_SIZE;
+ unsigned int address_mode : SQ_INSTRUCTION_CF_EXEC_2_ADDRESS_MODE_SIZE;
+ unsigned int opcode : SQ_INSTRUCTION_CF_EXEC_2_OPCODE_SIZE;
+ } sq_instruction_cf_exec_2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_exec_2_t {
+ unsigned int opcode : SQ_INSTRUCTION_CF_EXEC_2_OPCODE_SIZE;
+ unsigned int address_mode : SQ_INSTRUCTION_CF_EXEC_2_ADDRESS_MODE_SIZE;
+ unsigned int condition : SQ_INSTRUCTION_CF_EXEC_2_CONDITION_SIZE;
+ unsigned int bool_addr : SQ_INSTRUCTION_CF_EXEC_2_BOOL_ADDR_SIZE;
+ unsigned int inst_vc_5 : SQ_INSTRUCTION_CF_EXEC_2_INST_VC_5_SIZE;
+ unsigned int inst_vc_4 : SQ_INSTRUCTION_CF_EXEC_2_INST_VC_4_SIZE;
+ unsigned int inst_vc_3 : SQ_INSTRUCTION_CF_EXEC_2_INST_VC_3_SIZE;
+ unsigned int inst_vc_2 : SQ_INSTRUCTION_CF_EXEC_2_INST_VC_2_SIZE;
+ unsigned int inst_vc_1 : SQ_INSTRUCTION_CF_EXEC_2_INST_VC_1_SIZE;
+ unsigned int inst_vc_0 : SQ_INSTRUCTION_CF_EXEC_2_INST_VC_0_SIZE;
+ unsigned int inst_serial_5 : SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_5_SIZE;
+ unsigned int inst_type_5 : SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_5_SIZE;
+ unsigned int inst_serial_4 : SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_4_SIZE;
+ unsigned int inst_type_4 : SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_4_SIZE;
+ unsigned int inst_serial_3 : SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_3_SIZE;
+ unsigned int inst_type_3 : SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_3_SIZE;
+ unsigned int inst_serial_2 : SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_2_SIZE;
+ unsigned int inst_type_2 : SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_2_SIZE;
+ unsigned int inst_serial_1 : SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_1_SIZE;
+ unsigned int inst_type_1 : SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_1_SIZE;
+ unsigned int inst_serial_0 : SQ_INSTRUCTION_CF_EXEC_2_INST_SERIAL_0_SIZE;
+ unsigned int inst_type_0 : SQ_INSTRUCTION_CF_EXEC_2_INST_TYPE_0_SIZE;
+ } sq_instruction_cf_exec_2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_cf_exec_2_t f;
+} sq_instruction_cf_exec_2_u;
+
+
+/*
+ * SQ_INSTRUCTION_CF_LOOP_0 struct
+ */
+
+#define SQ_INSTRUCTION_CF_LOOP_0_ADDRESS_SIZE 10
+#define SQ_INSTRUCTION_CF_LOOP_0_RESERVED_0_SIZE 6
+#define SQ_INSTRUCTION_CF_LOOP_0_LOOP_ID_SIZE 5
+#define SQ_INSTRUCTION_CF_LOOP_0_RESERVED_1_SIZE 11
+
+#define SQ_INSTRUCTION_CF_LOOP_0_ADDRESS_SHIFT 0
+#define SQ_INSTRUCTION_CF_LOOP_0_RESERVED_0_SHIFT 10
+#define SQ_INSTRUCTION_CF_LOOP_0_LOOP_ID_SHIFT 16
+#define SQ_INSTRUCTION_CF_LOOP_0_RESERVED_1_SHIFT 21
+
+#define SQ_INSTRUCTION_CF_LOOP_0_ADDRESS_MASK 0x000003ff
+#define SQ_INSTRUCTION_CF_LOOP_0_RESERVED_0_MASK 0x0000fc00
+#define SQ_INSTRUCTION_CF_LOOP_0_LOOP_ID_MASK 0x001f0000
+#define SQ_INSTRUCTION_CF_LOOP_0_RESERVED_1_MASK 0xffe00000
+
+#define SQ_INSTRUCTION_CF_LOOP_0_MASK \
+ (SQ_INSTRUCTION_CF_LOOP_0_ADDRESS_MASK | \
+ SQ_INSTRUCTION_CF_LOOP_0_RESERVED_0_MASK | \
+ SQ_INSTRUCTION_CF_LOOP_0_LOOP_ID_MASK | \
+ SQ_INSTRUCTION_CF_LOOP_0_RESERVED_1_MASK)
+
+#define SQ_INSTRUCTION_CF_LOOP_0(address, reserved_0, loop_id, reserved_1) \
+ ((address << SQ_INSTRUCTION_CF_LOOP_0_ADDRESS_SHIFT) | \
+ (reserved_0 << SQ_INSTRUCTION_CF_LOOP_0_RESERVED_0_SHIFT) | \
+ (loop_id << SQ_INSTRUCTION_CF_LOOP_0_LOOP_ID_SHIFT) | \
+ (reserved_1 << SQ_INSTRUCTION_CF_LOOP_0_RESERVED_1_SHIFT))
+
+#define SQ_INSTRUCTION_CF_LOOP_0_GET_ADDRESS(sq_instruction_cf_loop_0) \
+ ((sq_instruction_cf_loop_0 & SQ_INSTRUCTION_CF_LOOP_0_ADDRESS_MASK) >> SQ_INSTRUCTION_CF_LOOP_0_ADDRESS_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_0_GET_RESERVED_0(sq_instruction_cf_loop_0) \
+ ((sq_instruction_cf_loop_0 & SQ_INSTRUCTION_CF_LOOP_0_RESERVED_0_MASK) >> SQ_INSTRUCTION_CF_LOOP_0_RESERVED_0_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_0_GET_LOOP_ID(sq_instruction_cf_loop_0) \
+ ((sq_instruction_cf_loop_0 & SQ_INSTRUCTION_CF_LOOP_0_LOOP_ID_MASK) >> SQ_INSTRUCTION_CF_LOOP_0_LOOP_ID_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_0_GET_RESERVED_1(sq_instruction_cf_loop_0) \
+ ((sq_instruction_cf_loop_0 & SQ_INSTRUCTION_CF_LOOP_0_RESERVED_1_MASK) >> SQ_INSTRUCTION_CF_LOOP_0_RESERVED_1_SHIFT)
+
+#define SQ_INSTRUCTION_CF_LOOP_0_SET_ADDRESS(sq_instruction_cf_loop_0_reg, address) \
+ sq_instruction_cf_loop_0_reg = (sq_instruction_cf_loop_0_reg & ~SQ_INSTRUCTION_CF_LOOP_0_ADDRESS_MASK) | (address << SQ_INSTRUCTION_CF_LOOP_0_ADDRESS_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_0_SET_RESERVED_0(sq_instruction_cf_loop_0_reg, reserved_0) \
+ sq_instruction_cf_loop_0_reg = (sq_instruction_cf_loop_0_reg & ~SQ_INSTRUCTION_CF_LOOP_0_RESERVED_0_MASK) | (reserved_0 << SQ_INSTRUCTION_CF_LOOP_0_RESERVED_0_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_0_SET_LOOP_ID(sq_instruction_cf_loop_0_reg, loop_id) \
+ sq_instruction_cf_loop_0_reg = (sq_instruction_cf_loop_0_reg & ~SQ_INSTRUCTION_CF_LOOP_0_LOOP_ID_MASK) | (loop_id << SQ_INSTRUCTION_CF_LOOP_0_LOOP_ID_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_0_SET_RESERVED_1(sq_instruction_cf_loop_0_reg, reserved_1) \
+ sq_instruction_cf_loop_0_reg = (sq_instruction_cf_loop_0_reg & ~SQ_INSTRUCTION_CF_LOOP_0_RESERVED_1_MASK) | (reserved_1 << SQ_INSTRUCTION_CF_LOOP_0_RESERVED_1_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_loop_0_t {
+ unsigned int address : SQ_INSTRUCTION_CF_LOOP_0_ADDRESS_SIZE;
+ unsigned int reserved_0 : SQ_INSTRUCTION_CF_LOOP_0_RESERVED_0_SIZE;
+ unsigned int loop_id : SQ_INSTRUCTION_CF_LOOP_0_LOOP_ID_SIZE;
+ unsigned int reserved_1 : SQ_INSTRUCTION_CF_LOOP_0_RESERVED_1_SIZE;
+ } sq_instruction_cf_loop_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_loop_0_t {
+ unsigned int reserved_1 : SQ_INSTRUCTION_CF_LOOP_0_RESERVED_1_SIZE;
+ unsigned int loop_id : SQ_INSTRUCTION_CF_LOOP_0_LOOP_ID_SIZE;
+ unsigned int reserved_0 : SQ_INSTRUCTION_CF_LOOP_0_RESERVED_0_SIZE;
+ unsigned int address : SQ_INSTRUCTION_CF_LOOP_0_ADDRESS_SIZE;
+ } sq_instruction_cf_loop_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_cf_loop_0_t f;
+} sq_instruction_cf_loop_0_u;
+
+
+/*
+ * SQ_INSTRUCTION_CF_LOOP_1 struct
+ */
+
+#define SQ_INSTRUCTION_CF_LOOP_1_RESERVED_0_SIZE 11
+#define SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_MODE_SIZE 1
+#define SQ_INSTRUCTION_CF_LOOP_1_OPCODE_SIZE 4
+#define SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_SIZE 10
+#define SQ_INSTRUCTION_CF_LOOP_1_RESERVED_1_SIZE 6
+
+#define SQ_INSTRUCTION_CF_LOOP_1_RESERVED_0_SHIFT 0
+#define SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_MODE_SHIFT 11
+#define SQ_INSTRUCTION_CF_LOOP_1_OPCODE_SHIFT 12
+#define SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_SHIFT 16
+#define SQ_INSTRUCTION_CF_LOOP_1_RESERVED_1_SHIFT 26
+
+#define SQ_INSTRUCTION_CF_LOOP_1_RESERVED_0_MASK 0x000007ff
+#define SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_MODE_MASK 0x00000800
+#define SQ_INSTRUCTION_CF_LOOP_1_OPCODE_MASK 0x0000f000
+#define SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_MASK 0x03ff0000
+#define SQ_INSTRUCTION_CF_LOOP_1_RESERVED_1_MASK 0xfc000000
+
+#define SQ_INSTRUCTION_CF_LOOP_1_MASK \
+ (SQ_INSTRUCTION_CF_LOOP_1_RESERVED_0_MASK | \
+ SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_MODE_MASK | \
+ SQ_INSTRUCTION_CF_LOOP_1_OPCODE_MASK | \
+ SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_MASK | \
+ SQ_INSTRUCTION_CF_LOOP_1_RESERVED_1_MASK)
+
+#define SQ_INSTRUCTION_CF_LOOP_1(reserved_0, address_mode, opcode, address, reserved_1) \
+ ((reserved_0 << SQ_INSTRUCTION_CF_LOOP_1_RESERVED_0_SHIFT) | \
+ (address_mode << SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_MODE_SHIFT) | \
+ (opcode << SQ_INSTRUCTION_CF_LOOP_1_OPCODE_SHIFT) | \
+ (address << SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_SHIFT) | \
+ (reserved_1 << SQ_INSTRUCTION_CF_LOOP_1_RESERVED_1_SHIFT))
+
+#define SQ_INSTRUCTION_CF_LOOP_1_GET_RESERVED_0(sq_instruction_cf_loop_1) \
+ ((sq_instruction_cf_loop_1 & SQ_INSTRUCTION_CF_LOOP_1_RESERVED_0_MASK) >> SQ_INSTRUCTION_CF_LOOP_1_RESERVED_0_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_1_GET_ADDRESS_MODE(sq_instruction_cf_loop_1) \
+ ((sq_instruction_cf_loop_1 & SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_MODE_MASK) >> SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_MODE_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_1_GET_OPCODE(sq_instruction_cf_loop_1) \
+ ((sq_instruction_cf_loop_1 & SQ_INSTRUCTION_CF_LOOP_1_OPCODE_MASK) >> SQ_INSTRUCTION_CF_LOOP_1_OPCODE_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_1_GET_ADDRESS(sq_instruction_cf_loop_1) \
+ ((sq_instruction_cf_loop_1 & SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_MASK) >> SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_1_GET_RESERVED_1(sq_instruction_cf_loop_1) \
+ ((sq_instruction_cf_loop_1 & SQ_INSTRUCTION_CF_LOOP_1_RESERVED_1_MASK) >> SQ_INSTRUCTION_CF_LOOP_1_RESERVED_1_SHIFT)
+
+#define SQ_INSTRUCTION_CF_LOOP_1_SET_RESERVED_0(sq_instruction_cf_loop_1_reg, reserved_0) \
+ sq_instruction_cf_loop_1_reg = (sq_instruction_cf_loop_1_reg & ~SQ_INSTRUCTION_CF_LOOP_1_RESERVED_0_MASK) | (reserved_0 << SQ_INSTRUCTION_CF_LOOP_1_RESERVED_0_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_1_SET_ADDRESS_MODE(sq_instruction_cf_loop_1_reg, address_mode) \
+ sq_instruction_cf_loop_1_reg = (sq_instruction_cf_loop_1_reg & ~SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_MODE_MASK) | (address_mode << SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_MODE_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_1_SET_OPCODE(sq_instruction_cf_loop_1_reg, opcode) \
+ sq_instruction_cf_loop_1_reg = (sq_instruction_cf_loop_1_reg & ~SQ_INSTRUCTION_CF_LOOP_1_OPCODE_MASK) | (opcode << SQ_INSTRUCTION_CF_LOOP_1_OPCODE_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_1_SET_ADDRESS(sq_instruction_cf_loop_1_reg, address) \
+ sq_instruction_cf_loop_1_reg = (sq_instruction_cf_loop_1_reg & ~SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_MASK) | (address << SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_1_SET_RESERVED_1(sq_instruction_cf_loop_1_reg, reserved_1) \
+ sq_instruction_cf_loop_1_reg = (sq_instruction_cf_loop_1_reg & ~SQ_INSTRUCTION_CF_LOOP_1_RESERVED_1_MASK) | (reserved_1 << SQ_INSTRUCTION_CF_LOOP_1_RESERVED_1_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_loop_1_t {
+ unsigned int reserved_0 : SQ_INSTRUCTION_CF_LOOP_1_RESERVED_0_SIZE;
+ unsigned int address_mode : SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_MODE_SIZE;
+ unsigned int opcode : SQ_INSTRUCTION_CF_LOOP_1_OPCODE_SIZE;
+ unsigned int address : SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_SIZE;
+ unsigned int reserved_1 : SQ_INSTRUCTION_CF_LOOP_1_RESERVED_1_SIZE;
+ } sq_instruction_cf_loop_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_loop_1_t {
+ unsigned int reserved_1 : SQ_INSTRUCTION_CF_LOOP_1_RESERVED_1_SIZE;
+ unsigned int address : SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_SIZE;
+ unsigned int opcode : SQ_INSTRUCTION_CF_LOOP_1_OPCODE_SIZE;
+ unsigned int address_mode : SQ_INSTRUCTION_CF_LOOP_1_ADDRESS_MODE_SIZE;
+ unsigned int reserved_0 : SQ_INSTRUCTION_CF_LOOP_1_RESERVED_0_SIZE;
+ } sq_instruction_cf_loop_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_cf_loop_1_t f;
+} sq_instruction_cf_loop_1_u;
+
+
+/*
+ * SQ_INSTRUCTION_CF_LOOP_2 struct
+ */
+
+#define SQ_INSTRUCTION_CF_LOOP_2_LOOP_ID_SIZE 5
+#define SQ_INSTRUCTION_CF_LOOP_2_RESERVED_SIZE 22
+#define SQ_INSTRUCTION_CF_LOOP_2_ADDRESS_MODE_SIZE 1
+#define SQ_INSTRUCTION_CF_LOOP_2_OPCODE_SIZE 4
+
+#define SQ_INSTRUCTION_CF_LOOP_2_LOOP_ID_SHIFT 0
+#define SQ_INSTRUCTION_CF_LOOP_2_RESERVED_SHIFT 5
+#define SQ_INSTRUCTION_CF_LOOP_2_ADDRESS_MODE_SHIFT 27
+#define SQ_INSTRUCTION_CF_LOOP_2_OPCODE_SHIFT 28
+
+#define SQ_INSTRUCTION_CF_LOOP_2_LOOP_ID_MASK 0x0000001f
+#define SQ_INSTRUCTION_CF_LOOP_2_RESERVED_MASK 0x07ffffe0
+#define SQ_INSTRUCTION_CF_LOOP_2_ADDRESS_MODE_MASK 0x08000000
+#define SQ_INSTRUCTION_CF_LOOP_2_OPCODE_MASK 0xf0000000
+
+#define SQ_INSTRUCTION_CF_LOOP_2_MASK \
+ (SQ_INSTRUCTION_CF_LOOP_2_LOOP_ID_MASK | \
+ SQ_INSTRUCTION_CF_LOOP_2_RESERVED_MASK | \
+ SQ_INSTRUCTION_CF_LOOP_2_ADDRESS_MODE_MASK | \
+ SQ_INSTRUCTION_CF_LOOP_2_OPCODE_MASK)
+
+#define SQ_INSTRUCTION_CF_LOOP_2(loop_id, reserved, address_mode, opcode) \
+ ((loop_id << SQ_INSTRUCTION_CF_LOOP_2_LOOP_ID_SHIFT) | \
+ (reserved << SQ_INSTRUCTION_CF_LOOP_2_RESERVED_SHIFT) | \
+ (address_mode << SQ_INSTRUCTION_CF_LOOP_2_ADDRESS_MODE_SHIFT) | \
+ (opcode << SQ_INSTRUCTION_CF_LOOP_2_OPCODE_SHIFT))
+
+#define SQ_INSTRUCTION_CF_LOOP_2_GET_LOOP_ID(sq_instruction_cf_loop_2) \
+ ((sq_instruction_cf_loop_2 & SQ_INSTRUCTION_CF_LOOP_2_LOOP_ID_MASK) >> SQ_INSTRUCTION_CF_LOOP_2_LOOP_ID_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_2_GET_RESERVED(sq_instruction_cf_loop_2) \
+ ((sq_instruction_cf_loop_2 & SQ_INSTRUCTION_CF_LOOP_2_RESERVED_MASK) >> SQ_INSTRUCTION_CF_LOOP_2_RESERVED_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_2_GET_ADDRESS_MODE(sq_instruction_cf_loop_2) \
+ ((sq_instruction_cf_loop_2 & SQ_INSTRUCTION_CF_LOOP_2_ADDRESS_MODE_MASK) >> SQ_INSTRUCTION_CF_LOOP_2_ADDRESS_MODE_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_2_GET_OPCODE(sq_instruction_cf_loop_2) \
+ ((sq_instruction_cf_loop_2 & SQ_INSTRUCTION_CF_LOOP_2_OPCODE_MASK) >> SQ_INSTRUCTION_CF_LOOP_2_OPCODE_SHIFT)
+
+#define SQ_INSTRUCTION_CF_LOOP_2_SET_LOOP_ID(sq_instruction_cf_loop_2_reg, loop_id) \
+ sq_instruction_cf_loop_2_reg = (sq_instruction_cf_loop_2_reg & ~SQ_INSTRUCTION_CF_LOOP_2_LOOP_ID_MASK) | (loop_id << SQ_INSTRUCTION_CF_LOOP_2_LOOP_ID_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_2_SET_RESERVED(sq_instruction_cf_loop_2_reg, reserved) \
+ sq_instruction_cf_loop_2_reg = (sq_instruction_cf_loop_2_reg & ~SQ_INSTRUCTION_CF_LOOP_2_RESERVED_MASK) | (reserved << SQ_INSTRUCTION_CF_LOOP_2_RESERVED_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_2_SET_ADDRESS_MODE(sq_instruction_cf_loop_2_reg, address_mode) \
+ sq_instruction_cf_loop_2_reg = (sq_instruction_cf_loop_2_reg & ~SQ_INSTRUCTION_CF_LOOP_2_ADDRESS_MODE_MASK) | (address_mode << SQ_INSTRUCTION_CF_LOOP_2_ADDRESS_MODE_SHIFT)
+#define SQ_INSTRUCTION_CF_LOOP_2_SET_OPCODE(sq_instruction_cf_loop_2_reg, opcode) \
+ sq_instruction_cf_loop_2_reg = (sq_instruction_cf_loop_2_reg & ~SQ_INSTRUCTION_CF_LOOP_2_OPCODE_MASK) | (opcode << SQ_INSTRUCTION_CF_LOOP_2_OPCODE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_loop_2_t {
+ unsigned int loop_id : SQ_INSTRUCTION_CF_LOOP_2_LOOP_ID_SIZE;
+ unsigned int reserved : SQ_INSTRUCTION_CF_LOOP_2_RESERVED_SIZE;
+ unsigned int address_mode : SQ_INSTRUCTION_CF_LOOP_2_ADDRESS_MODE_SIZE;
+ unsigned int opcode : SQ_INSTRUCTION_CF_LOOP_2_OPCODE_SIZE;
+ } sq_instruction_cf_loop_2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_loop_2_t {
+ unsigned int opcode : SQ_INSTRUCTION_CF_LOOP_2_OPCODE_SIZE;
+ unsigned int address_mode : SQ_INSTRUCTION_CF_LOOP_2_ADDRESS_MODE_SIZE;
+ unsigned int reserved : SQ_INSTRUCTION_CF_LOOP_2_RESERVED_SIZE;
+ unsigned int loop_id : SQ_INSTRUCTION_CF_LOOP_2_LOOP_ID_SIZE;
+ } sq_instruction_cf_loop_2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_cf_loop_2_t f;
+} sq_instruction_cf_loop_2_u;
+
+
+/*
+ * SQ_INSTRUCTION_CF_JMP_CALL_0 struct
+ */
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_ADDRESS_SIZE 10
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_0_SIZE 3
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_FORCE_CALL_SIZE 1
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_PREDICATED_JMP_SIZE 1
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_1_SIZE 17
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_ADDRESS_SHIFT 0
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_0_SHIFT 10
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_FORCE_CALL_SHIFT 13
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_PREDICATED_JMP_SHIFT 14
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_1_SHIFT 15
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_ADDRESS_MASK 0x000003ff
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_0_MASK 0x00001c00
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_FORCE_CALL_MASK 0x00002000
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_PREDICATED_JMP_MASK 0x00004000
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_1_MASK 0xffff8000
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_MASK \
+ (SQ_INSTRUCTION_CF_JMP_CALL_0_ADDRESS_MASK | \
+ SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_0_MASK | \
+ SQ_INSTRUCTION_CF_JMP_CALL_0_FORCE_CALL_MASK | \
+ SQ_INSTRUCTION_CF_JMP_CALL_0_PREDICATED_JMP_MASK | \
+ SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_1_MASK)
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_0(address, reserved_0, force_call, predicated_jmp, reserved_1) \
+ ((address << SQ_INSTRUCTION_CF_JMP_CALL_0_ADDRESS_SHIFT) | \
+ (reserved_0 << SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_0_SHIFT) | \
+ (force_call << SQ_INSTRUCTION_CF_JMP_CALL_0_FORCE_CALL_SHIFT) | \
+ (predicated_jmp << SQ_INSTRUCTION_CF_JMP_CALL_0_PREDICATED_JMP_SHIFT) | \
+ (reserved_1 << SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_1_SHIFT))
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_GET_ADDRESS(sq_instruction_cf_jmp_call_0) \
+ ((sq_instruction_cf_jmp_call_0 & SQ_INSTRUCTION_CF_JMP_CALL_0_ADDRESS_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_0_ADDRESS_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_GET_RESERVED_0(sq_instruction_cf_jmp_call_0) \
+ ((sq_instruction_cf_jmp_call_0 & SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_0_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_0_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_GET_FORCE_CALL(sq_instruction_cf_jmp_call_0) \
+ ((sq_instruction_cf_jmp_call_0 & SQ_INSTRUCTION_CF_JMP_CALL_0_FORCE_CALL_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_0_FORCE_CALL_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_GET_PREDICATED_JMP(sq_instruction_cf_jmp_call_0) \
+ ((sq_instruction_cf_jmp_call_0 & SQ_INSTRUCTION_CF_JMP_CALL_0_PREDICATED_JMP_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_0_PREDICATED_JMP_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_GET_RESERVED_1(sq_instruction_cf_jmp_call_0) \
+ ((sq_instruction_cf_jmp_call_0 & SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_1_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_1_SHIFT)
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_SET_ADDRESS(sq_instruction_cf_jmp_call_0_reg, address) \
+ sq_instruction_cf_jmp_call_0_reg = (sq_instruction_cf_jmp_call_0_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_0_ADDRESS_MASK) | (address << SQ_INSTRUCTION_CF_JMP_CALL_0_ADDRESS_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_SET_RESERVED_0(sq_instruction_cf_jmp_call_0_reg, reserved_0) \
+ sq_instruction_cf_jmp_call_0_reg = (sq_instruction_cf_jmp_call_0_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_0_MASK) | (reserved_0 << SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_0_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_SET_FORCE_CALL(sq_instruction_cf_jmp_call_0_reg, force_call) \
+ sq_instruction_cf_jmp_call_0_reg = (sq_instruction_cf_jmp_call_0_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_0_FORCE_CALL_MASK) | (force_call << SQ_INSTRUCTION_CF_JMP_CALL_0_FORCE_CALL_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_SET_PREDICATED_JMP(sq_instruction_cf_jmp_call_0_reg, predicated_jmp) \
+ sq_instruction_cf_jmp_call_0_reg = (sq_instruction_cf_jmp_call_0_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_0_PREDICATED_JMP_MASK) | (predicated_jmp << SQ_INSTRUCTION_CF_JMP_CALL_0_PREDICATED_JMP_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_0_SET_RESERVED_1(sq_instruction_cf_jmp_call_0_reg, reserved_1) \
+ sq_instruction_cf_jmp_call_0_reg = (sq_instruction_cf_jmp_call_0_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_1_MASK) | (reserved_1 << SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_1_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_jmp_call_0_t {
+ unsigned int address : SQ_INSTRUCTION_CF_JMP_CALL_0_ADDRESS_SIZE;
+ unsigned int reserved_0 : SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_0_SIZE;
+ unsigned int force_call : SQ_INSTRUCTION_CF_JMP_CALL_0_FORCE_CALL_SIZE;
+ unsigned int predicated_jmp : SQ_INSTRUCTION_CF_JMP_CALL_0_PREDICATED_JMP_SIZE;
+ unsigned int reserved_1 : SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_1_SIZE;
+ } sq_instruction_cf_jmp_call_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_jmp_call_0_t {
+ unsigned int reserved_1 : SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_1_SIZE;
+ unsigned int predicated_jmp : SQ_INSTRUCTION_CF_JMP_CALL_0_PREDICATED_JMP_SIZE;
+ unsigned int force_call : SQ_INSTRUCTION_CF_JMP_CALL_0_FORCE_CALL_SIZE;
+ unsigned int reserved_0 : SQ_INSTRUCTION_CF_JMP_CALL_0_RESERVED_0_SIZE;
+ unsigned int address : SQ_INSTRUCTION_CF_JMP_CALL_0_ADDRESS_SIZE;
+ } sq_instruction_cf_jmp_call_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_cf_jmp_call_0_t f;
+} sq_instruction_cf_jmp_call_0_u;
+
+
+/*
+ * SQ_INSTRUCTION_CF_JMP_CALL_1 struct
+ */
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_0_SIZE 1
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_DIRECTION_SIZE 1
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_BOOL_ADDR_SIZE 8
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_CONDITION_SIZE 1
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_MODE_SIZE 1
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_OPCODE_SIZE 4
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_SIZE 10
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_1_SIZE 3
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_FORCE_CALL_SIZE 1
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_2_SIZE 2
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_0_SHIFT 0
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_DIRECTION_SHIFT 1
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_BOOL_ADDR_SHIFT 2
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_CONDITION_SHIFT 10
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_MODE_SHIFT 11
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_OPCODE_SHIFT 12
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_SHIFT 16
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_1_SHIFT 26
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_FORCE_CALL_SHIFT 29
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_2_SHIFT 30
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_0_MASK 0x00000001
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_DIRECTION_MASK 0x00000002
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_BOOL_ADDR_MASK 0x000003fc
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_CONDITION_MASK 0x00000400
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_MODE_MASK 0x00000800
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_OPCODE_MASK 0x0000f000
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_MASK 0x03ff0000
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_1_MASK 0x1c000000
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_FORCE_CALL_MASK 0x20000000
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_2_MASK 0xc0000000
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_MASK \
+ (SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_0_MASK | \
+ SQ_INSTRUCTION_CF_JMP_CALL_1_DIRECTION_MASK | \
+ SQ_INSTRUCTION_CF_JMP_CALL_1_BOOL_ADDR_MASK | \
+ SQ_INSTRUCTION_CF_JMP_CALL_1_CONDITION_MASK | \
+ SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_MODE_MASK | \
+ SQ_INSTRUCTION_CF_JMP_CALL_1_OPCODE_MASK | \
+ SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_MASK | \
+ SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_1_MASK | \
+ SQ_INSTRUCTION_CF_JMP_CALL_1_FORCE_CALL_MASK | \
+ SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_2_MASK)
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_1(reserved_0, direction, bool_addr, condition, address_mode, opcode, address, reserved_1, force_call, reserved_2) \
+ ((reserved_0 << SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_0_SHIFT) | \
+ (direction << SQ_INSTRUCTION_CF_JMP_CALL_1_DIRECTION_SHIFT) | \
+ (bool_addr << SQ_INSTRUCTION_CF_JMP_CALL_1_BOOL_ADDR_SHIFT) | \
+ (condition << SQ_INSTRUCTION_CF_JMP_CALL_1_CONDITION_SHIFT) | \
+ (address_mode << SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_MODE_SHIFT) | \
+ (opcode << SQ_INSTRUCTION_CF_JMP_CALL_1_OPCODE_SHIFT) | \
+ (address << SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_SHIFT) | \
+ (reserved_1 << SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_1_SHIFT) | \
+ (force_call << SQ_INSTRUCTION_CF_JMP_CALL_1_FORCE_CALL_SHIFT) | \
+ (reserved_2 << SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_2_SHIFT))
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_GET_RESERVED_0(sq_instruction_cf_jmp_call_1) \
+ ((sq_instruction_cf_jmp_call_1 & SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_0_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_0_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_GET_DIRECTION(sq_instruction_cf_jmp_call_1) \
+ ((sq_instruction_cf_jmp_call_1 & SQ_INSTRUCTION_CF_JMP_CALL_1_DIRECTION_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_1_DIRECTION_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_GET_BOOL_ADDR(sq_instruction_cf_jmp_call_1) \
+ ((sq_instruction_cf_jmp_call_1 & SQ_INSTRUCTION_CF_JMP_CALL_1_BOOL_ADDR_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_1_BOOL_ADDR_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_GET_CONDITION(sq_instruction_cf_jmp_call_1) \
+ ((sq_instruction_cf_jmp_call_1 & SQ_INSTRUCTION_CF_JMP_CALL_1_CONDITION_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_1_CONDITION_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_GET_ADDRESS_MODE(sq_instruction_cf_jmp_call_1) \
+ ((sq_instruction_cf_jmp_call_1 & SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_MODE_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_MODE_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_GET_OPCODE(sq_instruction_cf_jmp_call_1) \
+ ((sq_instruction_cf_jmp_call_1 & SQ_INSTRUCTION_CF_JMP_CALL_1_OPCODE_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_1_OPCODE_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_GET_ADDRESS(sq_instruction_cf_jmp_call_1) \
+ ((sq_instruction_cf_jmp_call_1 & SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_GET_RESERVED_1(sq_instruction_cf_jmp_call_1) \
+ ((sq_instruction_cf_jmp_call_1 & SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_1_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_1_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_GET_FORCE_CALL(sq_instruction_cf_jmp_call_1) \
+ ((sq_instruction_cf_jmp_call_1 & SQ_INSTRUCTION_CF_JMP_CALL_1_FORCE_CALL_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_1_FORCE_CALL_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_GET_RESERVED_2(sq_instruction_cf_jmp_call_1) \
+ ((sq_instruction_cf_jmp_call_1 & SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_2_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_2_SHIFT)
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_SET_RESERVED_0(sq_instruction_cf_jmp_call_1_reg, reserved_0) \
+ sq_instruction_cf_jmp_call_1_reg = (sq_instruction_cf_jmp_call_1_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_0_MASK) | (reserved_0 << SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_0_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_SET_DIRECTION(sq_instruction_cf_jmp_call_1_reg, direction) \
+ sq_instruction_cf_jmp_call_1_reg = (sq_instruction_cf_jmp_call_1_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_1_DIRECTION_MASK) | (direction << SQ_INSTRUCTION_CF_JMP_CALL_1_DIRECTION_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_SET_BOOL_ADDR(sq_instruction_cf_jmp_call_1_reg, bool_addr) \
+ sq_instruction_cf_jmp_call_1_reg = (sq_instruction_cf_jmp_call_1_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_1_BOOL_ADDR_MASK) | (bool_addr << SQ_INSTRUCTION_CF_JMP_CALL_1_BOOL_ADDR_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_SET_CONDITION(sq_instruction_cf_jmp_call_1_reg, condition) \
+ sq_instruction_cf_jmp_call_1_reg = (sq_instruction_cf_jmp_call_1_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_1_CONDITION_MASK) | (condition << SQ_INSTRUCTION_CF_JMP_CALL_1_CONDITION_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_SET_ADDRESS_MODE(sq_instruction_cf_jmp_call_1_reg, address_mode) \
+ sq_instruction_cf_jmp_call_1_reg = (sq_instruction_cf_jmp_call_1_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_MODE_MASK) | (address_mode << SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_MODE_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_SET_OPCODE(sq_instruction_cf_jmp_call_1_reg, opcode) \
+ sq_instruction_cf_jmp_call_1_reg = (sq_instruction_cf_jmp_call_1_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_1_OPCODE_MASK) | (opcode << SQ_INSTRUCTION_CF_JMP_CALL_1_OPCODE_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_SET_ADDRESS(sq_instruction_cf_jmp_call_1_reg, address) \
+ sq_instruction_cf_jmp_call_1_reg = (sq_instruction_cf_jmp_call_1_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_MASK) | (address << SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_SET_RESERVED_1(sq_instruction_cf_jmp_call_1_reg, reserved_1) \
+ sq_instruction_cf_jmp_call_1_reg = (sq_instruction_cf_jmp_call_1_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_1_MASK) | (reserved_1 << SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_1_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_SET_FORCE_CALL(sq_instruction_cf_jmp_call_1_reg, force_call) \
+ sq_instruction_cf_jmp_call_1_reg = (sq_instruction_cf_jmp_call_1_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_1_FORCE_CALL_MASK) | (force_call << SQ_INSTRUCTION_CF_JMP_CALL_1_FORCE_CALL_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_1_SET_RESERVED_2(sq_instruction_cf_jmp_call_1_reg, reserved_2) \
+ sq_instruction_cf_jmp_call_1_reg = (sq_instruction_cf_jmp_call_1_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_2_MASK) | (reserved_2 << SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_2_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_jmp_call_1_t {
+ unsigned int reserved_0 : SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_0_SIZE;
+ unsigned int direction : SQ_INSTRUCTION_CF_JMP_CALL_1_DIRECTION_SIZE;
+ unsigned int bool_addr : SQ_INSTRUCTION_CF_JMP_CALL_1_BOOL_ADDR_SIZE;
+ unsigned int condition : SQ_INSTRUCTION_CF_JMP_CALL_1_CONDITION_SIZE;
+ unsigned int address_mode : SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_MODE_SIZE;
+ unsigned int opcode : SQ_INSTRUCTION_CF_JMP_CALL_1_OPCODE_SIZE;
+ unsigned int address : SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_SIZE;
+ unsigned int reserved_1 : SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_1_SIZE;
+ unsigned int force_call : SQ_INSTRUCTION_CF_JMP_CALL_1_FORCE_CALL_SIZE;
+ unsigned int reserved_2 : SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_2_SIZE;
+ } sq_instruction_cf_jmp_call_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_jmp_call_1_t {
+ unsigned int reserved_2 : SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_2_SIZE;
+ unsigned int force_call : SQ_INSTRUCTION_CF_JMP_CALL_1_FORCE_CALL_SIZE;
+ unsigned int reserved_1 : SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_1_SIZE;
+ unsigned int address : SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_SIZE;
+ unsigned int opcode : SQ_INSTRUCTION_CF_JMP_CALL_1_OPCODE_SIZE;
+ unsigned int address_mode : SQ_INSTRUCTION_CF_JMP_CALL_1_ADDRESS_MODE_SIZE;
+ unsigned int condition : SQ_INSTRUCTION_CF_JMP_CALL_1_CONDITION_SIZE;
+ unsigned int bool_addr : SQ_INSTRUCTION_CF_JMP_CALL_1_BOOL_ADDR_SIZE;
+ unsigned int direction : SQ_INSTRUCTION_CF_JMP_CALL_1_DIRECTION_SIZE;
+ unsigned int reserved_0 : SQ_INSTRUCTION_CF_JMP_CALL_1_RESERVED_0_SIZE;
+ } sq_instruction_cf_jmp_call_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_cf_jmp_call_1_t f;
+} sq_instruction_cf_jmp_call_1_u;
+
+
+/*
+ * SQ_INSTRUCTION_CF_JMP_CALL_2 struct
+ */
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_RESERVED_SIZE 17
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_DIRECTION_SIZE 1
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_BOOL_ADDR_SIZE 8
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_CONDITION_SIZE 1
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_ADDRESS_MODE_SIZE 1
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_OPCODE_SIZE 4
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_RESERVED_SHIFT 0
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_DIRECTION_SHIFT 17
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_BOOL_ADDR_SHIFT 18
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_CONDITION_SHIFT 26
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_ADDRESS_MODE_SHIFT 27
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_OPCODE_SHIFT 28
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_RESERVED_MASK 0x0001ffff
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_DIRECTION_MASK 0x00020000
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_BOOL_ADDR_MASK 0x03fc0000
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_CONDITION_MASK 0x04000000
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_ADDRESS_MODE_MASK 0x08000000
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_OPCODE_MASK 0xf0000000
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_MASK \
+ (SQ_INSTRUCTION_CF_JMP_CALL_2_RESERVED_MASK | \
+ SQ_INSTRUCTION_CF_JMP_CALL_2_DIRECTION_MASK | \
+ SQ_INSTRUCTION_CF_JMP_CALL_2_BOOL_ADDR_MASK | \
+ SQ_INSTRUCTION_CF_JMP_CALL_2_CONDITION_MASK | \
+ SQ_INSTRUCTION_CF_JMP_CALL_2_ADDRESS_MODE_MASK | \
+ SQ_INSTRUCTION_CF_JMP_CALL_2_OPCODE_MASK)
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_2(reserved, direction, bool_addr, condition, address_mode, opcode) \
+ ((reserved << SQ_INSTRUCTION_CF_JMP_CALL_2_RESERVED_SHIFT) | \
+ (direction << SQ_INSTRUCTION_CF_JMP_CALL_2_DIRECTION_SHIFT) | \
+ (bool_addr << SQ_INSTRUCTION_CF_JMP_CALL_2_BOOL_ADDR_SHIFT) | \
+ (condition << SQ_INSTRUCTION_CF_JMP_CALL_2_CONDITION_SHIFT) | \
+ (address_mode << SQ_INSTRUCTION_CF_JMP_CALL_2_ADDRESS_MODE_SHIFT) | \
+ (opcode << SQ_INSTRUCTION_CF_JMP_CALL_2_OPCODE_SHIFT))
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_GET_RESERVED(sq_instruction_cf_jmp_call_2) \
+ ((sq_instruction_cf_jmp_call_2 & SQ_INSTRUCTION_CF_JMP_CALL_2_RESERVED_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_2_RESERVED_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_GET_DIRECTION(sq_instruction_cf_jmp_call_2) \
+ ((sq_instruction_cf_jmp_call_2 & SQ_INSTRUCTION_CF_JMP_CALL_2_DIRECTION_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_2_DIRECTION_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_GET_BOOL_ADDR(sq_instruction_cf_jmp_call_2) \
+ ((sq_instruction_cf_jmp_call_2 & SQ_INSTRUCTION_CF_JMP_CALL_2_BOOL_ADDR_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_2_BOOL_ADDR_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_GET_CONDITION(sq_instruction_cf_jmp_call_2) \
+ ((sq_instruction_cf_jmp_call_2 & SQ_INSTRUCTION_CF_JMP_CALL_2_CONDITION_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_2_CONDITION_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_GET_ADDRESS_MODE(sq_instruction_cf_jmp_call_2) \
+ ((sq_instruction_cf_jmp_call_2 & SQ_INSTRUCTION_CF_JMP_CALL_2_ADDRESS_MODE_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_2_ADDRESS_MODE_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_GET_OPCODE(sq_instruction_cf_jmp_call_2) \
+ ((sq_instruction_cf_jmp_call_2 & SQ_INSTRUCTION_CF_JMP_CALL_2_OPCODE_MASK) >> SQ_INSTRUCTION_CF_JMP_CALL_2_OPCODE_SHIFT)
+
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_SET_RESERVED(sq_instruction_cf_jmp_call_2_reg, reserved) \
+ sq_instruction_cf_jmp_call_2_reg = (sq_instruction_cf_jmp_call_2_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_2_RESERVED_MASK) | (reserved << SQ_INSTRUCTION_CF_JMP_CALL_2_RESERVED_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_SET_DIRECTION(sq_instruction_cf_jmp_call_2_reg, direction) \
+ sq_instruction_cf_jmp_call_2_reg = (sq_instruction_cf_jmp_call_2_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_2_DIRECTION_MASK) | (direction << SQ_INSTRUCTION_CF_JMP_CALL_2_DIRECTION_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_SET_BOOL_ADDR(sq_instruction_cf_jmp_call_2_reg, bool_addr) \
+ sq_instruction_cf_jmp_call_2_reg = (sq_instruction_cf_jmp_call_2_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_2_BOOL_ADDR_MASK) | (bool_addr << SQ_INSTRUCTION_CF_JMP_CALL_2_BOOL_ADDR_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_SET_CONDITION(sq_instruction_cf_jmp_call_2_reg, condition) \
+ sq_instruction_cf_jmp_call_2_reg = (sq_instruction_cf_jmp_call_2_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_2_CONDITION_MASK) | (condition << SQ_INSTRUCTION_CF_JMP_CALL_2_CONDITION_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_SET_ADDRESS_MODE(sq_instruction_cf_jmp_call_2_reg, address_mode) \
+ sq_instruction_cf_jmp_call_2_reg = (sq_instruction_cf_jmp_call_2_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_2_ADDRESS_MODE_MASK) | (address_mode << SQ_INSTRUCTION_CF_JMP_CALL_2_ADDRESS_MODE_SHIFT)
+#define SQ_INSTRUCTION_CF_JMP_CALL_2_SET_OPCODE(sq_instruction_cf_jmp_call_2_reg, opcode) \
+ sq_instruction_cf_jmp_call_2_reg = (sq_instruction_cf_jmp_call_2_reg & ~SQ_INSTRUCTION_CF_JMP_CALL_2_OPCODE_MASK) | (opcode << SQ_INSTRUCTION_CF_JMP_CALL_2_OPCODE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_jmp_call_2_t {
+ unsigned int reserved : SQ_INSTRUCTION_CF_JMP_CALL_2_RESERVED_SIZE;
+ unsigned int direction : SQ_INSTRUCTION_CF_JMP_CALL_2_DIRECTION_SIZE;
+ unsigned int bool_addr : SQ_INSTRUCTION_CF_JMP_CALL_2_BOOL_ADDR_SIZE;
+ unsigned int condition : SQ_INSTRUCTION_CF_JMP_CALL_2_CONDITION_SIZE;
+ unsigned int address_mode : SQ_INSTRUCTION_CF_JMP_CALL_2_ADDRESS_MODE_SIZE;
+ unsigned int opcode : SQ_INSTRUCTION_CF_JMP_CALL_2_OPCODE_SIZE;
+ } sq_instruction_cf_jmp_call_2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_jmp_call_2_t {
+ unsigned int opcode : SQ_INSTRUCTION_CF_JMP_CALL_2_OPCODE_SIZE;
+ unsigned int address_mode : SQ_INSTRUCTION_CF_JMP_CALL_2_ADDRESS_MODE_SIZE;
+ unsigned int condition : SQ_INSTRUCTION_CF_JMP_CALL_2_CONDITION_SIZE;
+ unsigned int bool_addr : SQ_INSTRUCTION_CF_JMP_CALL_2_BOOL_ADDR_SIZE;
+ unsigned int direction : SQ_INSTRUCTION_CF_JMP_CALL_2_DIRECTION_SIZE;
+ unsigned int reserved : SQ_INSTRUCTION_CF_JMP_CALL_2_RESERVED_SIZE;
+ } sq_instruction_cf_jmp_call_2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_cf_jmp_call_2_t f;
+} sq_instruction_cf_jmp_call_2_u;
+
+
+/*
+ * SQ_INSTRUCTION_CF_ALLOC_0 struct
+ */
+
+#define SQ_INSTRUCTION_CF_ALLOC_0_SIZE_SIZE 4
+#define SQ_INSTRUCTION_CF_ALLOC_0_RESERVED_SIZE 28
+
+#define SQ_INSTRUCTION_CF_ALLOC_0_SIZE_SHIFT 0
+#define SQ_INSTRUCTION_CF_ALLOC_0_RESERVED_SHIFT 4
+
+#define SQ_INSTRUCTION_CF_ALLOC_0_SIZE_MASK 0x0000000f
+#define SQ_INSTRUCTION_CF_ALLOC_0_RESERVED_MASK 0xfffffff0
+
+#define SQ_INSTRUCTION_CF_ALLOC_0_MASK \
+ (SQ_INSTRUCTION_CF_ALLOC_0_SIZE_MASK | \
+ SQ_INSTRUCTION_CF_ALLOC_0_RESERVED_MASK)
+
+#define SQ_INSTRUCTION_CF_ALLOC_0(size, reserved) \
+ ((size << SQ_INSTRUCTION_CF_ALLOC_0_SIZE_SHIFT) | \
+ (reserved << SQ_INSTRUCTION_CF_ALLOC_0_RESERVED_SHIFT))
+
+#define SQ_INSTRUCTION_CF_ALLOC_0_GET_SIZE(sq_instruction_cf_alloc_0) \
+ ((sq_instruction_cf_alloc_0 & SQ_INSTRUCTION_CF_ALLOC_0_SIZE_MASK) >> SQ_INSTRUCTION_CF_ALLOC_0_SIZE_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_0_GET_RESERVED(sq_instruction_cf_alloc_0) \
+ ((sq_instruction_cf_alloc_0 & SQ_INSTRUCTION_CF_ALLOC_0_RESERVED_MASK) >> SQ_INSTRUCTION_CF_ALLOC_0_RESERVED_SHIFT)
+
+#define SQ_INSTRUCTION_CF_ALLOC_0_SET_SIZE(sq_instruction_cf_alloc_0_reg, size) \
+ sq_instruction_cf_alloc_0_reg = (sq_instruction_cf_alloc_0_reg & ~SQ_INSTRUCTION_CF_ALLOC_0_SIZE_MASK) | (size << SQ_INSTRUCTION_CF_ALLOC_0_SIZE_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_0_SET_RESERVED(sq_instruction_cf_alloc_0_reg, reserved) \
+ sq_instruction_cf_alloc_0_reg = (sq_instruction_cf_alloc_0_reg & ~SQ_INSTRUCTION_CF_ALLOC_0_RESERVED_MASK) | (reserved << SQ_INSTRUCTION_CF_ALLOC_0_RESERVED_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_alloc_0_t {
+ unsigned int size : SQ_INSTRUCTION_CF_ALLOC_0_SIZE_SIZE;
+ unsigned int reserved : SQ_INSTRUCTION_CF_ALLOC_0_RESERVED_SIZE;
+ } sq_instruction_cf_alloc_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_alloc_0_t {
+ unsigned int reserved : SQ_INSTRUCTION_CF_ALLOC_0_RESERVED_SIZE;
+ unsigned int size : SQ_INSTRUCTION_CF_ALLOC_0_SIZE_SIZE;
+ } sq_instruction_cf_alloc_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_cf_alloc_0_t f;
+} sq_instruction_cf_alloc_0_u;
+
+
+/*
+ * SQ_INSTRUCTION_CF_ALLOC_1 struct
+ */
+
+#define SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_0_SIZE 8
+#define SQ_INSTRUCTION_CF_ALLOC_1_NO_SERIAL_SIZE 1
+#define SQ_INSTRUCTION_CF_ALLOC_1_BUFFER_SELECT_SIZE 2
+#define SQ_INSTRUCTION_CF_ALLOC_1_ALLOC_MODE_SIZE 1
+#define SQ_INSTRUCTION_CF_ALLOC_1_OPCODE_SIZE 4
+#define SQ_INSTRUCTION_CF_ALLOC_1_SIZE_SIZE 4
+#define SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_1_SIZE 12
+
+#define SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_0_SHIFT 0
+#define SQ_INSTRUCTION_CF_ALLOC_1_NO_SERIAL_SHIFT 8
+#define SQ_INSTRUCTION_CF_ALLOC_1_BUFFER_SELECT_SHIFT 9
+#define SQ_INSTRUCTION_CF_ALLOC_1_ALLOC_MODE_SHIFT 11
+#define SQ_INSTRUCTION_CF_ALLOC_1_OPCODE_SHIFT 12
+#define SQ_INSTRUCTION_CF_ALLOC_1_SIZE_SHIFT 16
+#define SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_1_SHIFT 20
+
+#define SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_0_MASK 0x000000ff
+#define SQ_INSTRUCTION_CF_ALLOC_1_NO_SERIAL_MASK 0x00000100
+#define SQ_INSTRUCTION_CF_ALLOC_1_BUFFER_SELECT_MASK 0x00000600
+#define SQ_INSTRUCTION_CF_ALLOC_1_ALLOC_MODE_MASK 0x00000800
+#define SQ_INSTRUCTION_CF_ALLOC_1_OPCODE_MASK 0x0000f000
+#define SQ_INSTRUCTION_CF_ALLOC_1_SIZE_MASK 0x000f0000
+#define SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_1_MASK 0xfff00000
+
+#define SQ_INSTRUCTION_CF_ALLOC_1_MASK \
+ (SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_0_MASK | \
+ SQ_INSTRUCTION_CF_ALLOC_1_NO_SERIAL_MASK | \
+ SQ_INSTRUCTION_CF_ALLOC_1_BUFFER_SELECT_MASK | \
+ SQ_INSTRUCTION_CF_ALLOC_1_ALLOC_MODE_MASK | \
+ SQ_INSTRUCTION_CF_ALLOC_1_OPCODE_MASK | \
+ SQ_INSTRUCTION_CF_ALLOC_1_SIZE_MASK | \
+ SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_1_MASK)
+
+#define SQ_INSTRUCTION_CF_ALLOC_1(reserved_0, no_serial, buffer_select, alloc_mode, opcode, size, reserved_1) \
+ ((reserved_0 << SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_0_SHIFT) | \
+ (no_serial << SQ_INSTRUCTION_CF_ALLOC_1_NO_SERIAL_SHIFT) | \
+ (buffer_select << SQ_INSTRUCTION_CF_ALLOC_1_BUFFER_SELECT_SHIFT) | \
+ (alloc_mode << SQ_INSTRUCTION_CF_ALLOC_1_ALLOC_MODE_SHIFT) | \
+ (opcode << SQ_INSTRUCTION_CF_ALLOC_1_OPCODE_SHIFT) | \
+ (size << SQ_INSTRUCTION_CF_ALLOC_1_SIZE_SHIFT) | \
+ (reserved_1 << SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_1_SHIFT))
+
+#define SQ_INSTRUCTION_CF_ALLOC_1_GET_RESERVED_0(sq_instruction_cf_alloc_1) \
+ ((sq_instruction_cf_alloc_1 & SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_0_MASK) >> SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_0_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_1_GET_NO_SERIAL(sq_instruction_cf_alloc_1) \
+ ((sq_instruction_cf_alloc_1 & SQ_INSTRUCTION_CF_ALLOC_1_NO_SERIAL_MASK) >> SQ_INSTRUCTION_CF_ALLOC_1_NO_SERIAL_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_1_GET_BUFFER_SELECT(sq_instruction_cf_alloc_1) \
+ ((sq_instruction_cf_alloc_1 & SQ_INSTRUCTION_CF_ALLOC_1_BUFFER_SELECT_MASK) >> SQ_INSTRUCTION_CF_ALLOC_1_BUFFER_SELECT_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_1_GET_ALLOC_MODE(sq_instruction_cf_alloc_1) \
+ ((sq_instruction_cf_alloc_1 & SQ_INSTRUCTION_CF_ALLOC_1_ALLOC_MODE_MASK) >> SQ_INSTRUCTION_CF_ALLOC_1_ALLOC_MODE_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_1_GET_OPCODE(sq_instruction_cf_alloc_1) \
+ ((sq_instruction_cf_alloc_1 & SQ_INSTRUCTION_CF_ALLOC_1_OPCODE_MASK) >> SQ_INSTRUCTION_CF_ALLOC_1_OPCODE_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_1_GET_SIZE(sq_instruction_cf_alloc_1) \
+ ((sq_instruction_cf_alloc_1 & SQ_INSTRUCTION_CF_ALLOC_1_SIZE_MASK) >> SQ_INSTRUCTION_CF_ALLOC_1_SIZE_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_1_GET_RESERVED_1(sq_instruction_cf_alloc_1) \
+ ((sq_instruction_cf_alloc_1 & SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_1_MASK) >> SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_1_SHIFT)
+
+#define SQ_INSTRUCTION_CF_ALLOC_1_SET_RESERVED_0(sq_instruction_cf_alloc_1_reg, reserved_0) \
+ sq_instruction_cf_alloc_1_reg = (sq_instruction_cf_alloc_1_reg & ~SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_0_MASK) | (reserved_0 << SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_0_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_1_SET_NO_SERIAL(sq_instruction_cf_alloc_1_reg, no_serial) \
+ sq_instruction_cf_alloc_1_reg = (sq_instruction_cf_alloc_1_reg & ~SQ_INSTRUCTION_CF_ALLOC_1_NO_SERIAL_MASK) | (no_serial << SQ_INSTRUCTION_CF_ALLOC_1_NO_SERIAL_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_1_SET_BUFFER_SELECT(sq_instruction_cf_alloc_1_reg, buffer_select) \
+ sq_instruction_cf_alloc_1_reg = (sq_instruction_cf_alloc_1_reg & ~SQ_INSTRUCTION_CF_ALLOC_1_BUFFER_SELECT_MASK) | (buffer_select << SQ_INSTRUCTION_CF_ALLOC_1_BUFFER_SELECT_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_1_SET_ALLOC_MODE(sq_instruction_cf_alloc_1_reg, alloc_mode) \
+ sq_instruction_cf_alloc_1_reg = (sq_instruction_cf_alloc_1_reg & ~SQ_INSTRUCTION_CF_ALLOC_1_ALLOC_MODE_MASK) | (alloc_mode << SQ_INSTRUCTION_CF_ALLOC_1_ALLOC_MODE_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_1_SET_OPCODE(sq_instruction_cf_alloc_1_reg, opcode) \
+ sq_instruction_cf_alloc_1_reg = (sq_instruction_cf_alloc_1_reg & ~SQ_INSTRUCTION_CF_ALLOC_1_OPCODE_MASK) | (opcode << SQ_INSTRUCTION_CF_ALLOC_1_OPCODE_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_1_SET_SIZE(sq_instruction_cf_alloc_1_reg, size) \
+ sq_instruction_cf_alloc_1_reg = (sq_instruction_cf_alloc_1_reg & ~SQ_INSTRUCTION_CF_ALLOC_1_SIZE_MASK) | (size << SQ_INSTRUCTION_CF_ALLOC_1_SIZE_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_1_SET_RESERVED_1(sq_instruction_cf_alloc_1_reg, reserved_1) \
+ sq_instruction_cf_alloc_1_reg = (sq_instruction_cf_alloc_1_reg & ~SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_1_MASK) | (reserved_1 << SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_1_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_alloc_1_t {
+ unsigned int reserved_0 : SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_0_SIZE;
+ unsigned int no_serial : SQ_INSTRUCTION_CF_ALLOC_1_NO_SERIAL_SIZE;
+ unsigned int buffer_select : SQ_INSTRUCTION_CF_ALLOC_1_BUFFER_SELECT_SIZE;
+ unsigned int alloc_mode : SQ_INSTRUCTION_CF_ALLOC_1_ALLOC_MODE_SIZE;
+ unsigned int opcode : SQ_INSTRUCTION_CF_ALLOC_1_OPCODE_SIZE;
+ unsigned int size : SQ_INSTRUCTION_CF_ALLOC_1_SIZE_SIZE;
+ unsigned int reserved_1 : SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_1_SIZE;
+ } sq_instruction_cf_alloc_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_alloc_1_t {
+ unsigned int reserved_1 : SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_1_SIZE;
+ unsigned int size : SQ_INSTRUCTION_CF_ALLOC_1_SIZE_SIZE;
+ unsigned int opcode : SQ_INSTRUCTION_CF_ALLOC_1_OPCODE_SIZE;
+ unsigned int alloc_mode : SQ_INSTRUCTION_CF_ALLOC_1_ALLOC_MODE_SIZE;
+ unsigned int buffer_select : SQ_INSTRUCTION_CF_ALLOC_1_BUFFER_SELECT_SIZE;
+ unsigned int no_serial : SQ_INSTRUCTION_CF_ALLOC_1_NO_SERIAL_SIZE;
+ unsigned int reserved_0 : SQ_INSTRUCTION_CF_ALLOC_1_RESERVED_0_SIZE;
+ } sq_instruction_cf_alloc_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_cf_alloc_1_t f;
+} sq_instruction_cf_alloc_1_u;
+
+
+/*
+ * SQ_INSTRUCTION_CF_ALLOC_2 struct
+ */
+
+#define SQ_INSTRUCTION_CF_ALLOC_2_RESERVED_SIZE 24
+#define SQ_INSTRUCTION_CF_ALLOC_2_NO_SERIAL_SIZE 1
+#define SQ_INSTRUCTION_CF_ALLOC_2_BUFFER_SELECT_SIZE 2
+#define SQ_INSTRUCTION_CF_ALLOC_2_ALLOC_MODE_SIZE 1
+#define SQ_INSTRUCTION_CF_ALLOC_2_OPCODE_SIZE 4
+
+#define SQ_INSTRUCTION_CF_ALLOC_2_RESERVED_SHIFT 0
+#define SQ_INSTRUCTION_CF_ALLOC_2_NO_SERIAL_SHIFT 24
+#define SQ_INSTRUCTION_CF_ALLOC_2_BUFFER_SELECT_SHIFT 25
+#define SQ_INSTRUCTION_CF_ALLOC_2_ALLOC_MODE_SHIFT 27
+#define SQ_INSTRUCTION_CF_ALLOC_2_OPCODE_SHIFT 28
+
+#define SQ_INSTRUCTION_CF_ALLOC_2_RESERVED_MASK 0x00ffffff
+#define SQ_INSTRUCTION_CF_ALLOC_2_NO_SERIAL_MASK 0x01000000
+#define SQ_INSTRUCTION_CF_ALLOC_2_BUFFER_SELECT_MASK 0x06000000
+#define SQ_INSTRUCTION_CF_ALLOC_2_ALLOC_MODE_MASK 0x08000000
+#define SQ_INSTRUCTION_CF_ALLOC_2_OPCODE_MASK 0xf0000000
+
+#define SQ_INSTRUCTION_CF_ALLOC_2_MASK \
+ (SQ_INSTRUCTION_CF_ALLOC_2_RESERVED_MASK | \
+ SQ_INSTRUCTION_CF_ALLOC_2_NO_SERIAL_MASK | \
+ SQ_INSTRUCTION_CF_ALLOC_2_BUFFER_SELECT_MASK | \
+ SQ_INSTRUCTION_CF_ALLOC_2_ALLOC_MODE_MASK | \
+ SQ_INSTRUCTION_CF_ALLOC_2_OPCODE_MASK)
+
+#define SQ_INSTRUCTION_CF_ALLOC_2(reserved, no_serial, buffer_select, alloc_mode, opcode) \
+ ((reserved << SQ_INSTRUCTION_CF_ALLOC_2_RESERVED_SHIFT) | \
+ (no_serial << SQ_INSTRUCTION_CF_ALLOC_2_NO_SERIAL_SHIFT) | \
+ (buffer_select << SQ_INSTRUCTION_CF_ALLOC_2_BUFFER_SELECT_SHIFT) | \
+ (alloc_mode << SQ_INSTRUCTION_CF_ALLOC_2_ALLOC_MODE_SHIFT) | \
+ (opcode << SQ_INSTRUCTION_CF_ALLOC_2_OPCODE_SHIFT))
+
+#define SQ_INSTRUCTION_CF_ALLOC_2_GET_RESERVED(sq_instruction_cf_alloc_2) \
+ ((sq_instruction_cf_alloc_2 & SQ_INSTRUCTION_CF_ALLOC_2_RESERVED_MASK) >> SQ_INSTRUCTION_CF_ALLOC_2_RESERVED_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_2_GET_NO_SERIAL(sq_instruction_cf_alloc_2) \
+ ((sq_instruction_cf_alloc_2 & SQ_INSTRUCTION_CF_ALLOC_2_NO_SERIAL_MASK) >> SQ_INSTRUCTION_CF_ALLOC_2_NO_SERIAL_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_2_GET_BUFFER_SELECT(sq_instruction_cf_alloc_2) \
+ ((sq_instruction_cf_alloc_2 & SQ_INSTRUCTION_CF_ALLOC_2_BUFFER_SELECT_MASK) >> SQ_INSTRUCTION_CF_ALLOC_2_BUFFER_SELECT_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_2_GET_ALLOC_MODE(sq_instruction_cf_alloc_2) \
+ ((sq_instruction_cf_alloc_2 & SQ_INSTRUCTION_CF_ALLOC_2_ALLOC_MODE_MASK) >> SQ_INSTRUCTION_CF_ALLOC_2_ALLOC_MODE_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_2_GET_OPCODE(sq_instruction_cf_alloc_2) \
+ ((sq_instruction_cf_alloc_2 & SQ_INSTRUCTION_CF_ALLOC_2_OPCODE_MASK) >> SQ_INSTRUCTION_CF_ALLOC_2_OPCODE_SHIFT)
+
+#define SQ_INSTRUCTION_CF_ALLOC_2_SET_RESERVED(sq_instruction_cf_alloc_2_reg, reserved) \
+ sq_instruction_cf_alloc_2_reg = (sq_instruction_cf_alloc_2_reg & ~SQ_INSTRUCTION_CF_ALLOC_2_RESERVED_MASK) | (reserved << SQ_INSTRUCTION_CF_ALLOC_2_RESERVED_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_2_SET_NO_SERIAL(sq_instruction_cf_alloc_2_reg, no_serial) \
+ sq_instruction_cf_alloc_2_reg = (sq_instruction_cf_alloc_2_reg & ~SQ_INSTRUCTION_CF_ALLOC_2_NO_SERIAL_MASK) | (no_serial << SQ_INSTRUCTION_CF_ALLOC_2_NO_SERIAL_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_2_SET_BUFFER_SELECT(sq_instruction_cf_alloc_2_reg, buffer_select) \
+ sq_instruction_cf_alloc_2_reg = (sq_instruction_cf_alloc_2_reg & ~SQ_INSTRUCTION_CF_ALLOC_2_BUFFER_SELECT_MASK) | (buffer_select << SQ_INSTRUCTION_CF_ALLOC_2_BUFFER_SELECT_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_2_SET_ALLOC_MODE(sq_instruction_cf_alloc_2_reg, alloc_mode) \
+ sq_instruction_cf_alloc_2_reg = (sq_instruction_cf_alloc_2_reg & ~SQ_INSTRUCTION_CF_ALLOC_2_ALLOC_MODE_MASK) | (alloc_mode << SQ_INSTRUCTION_CF_ALLOC_2_ALLOC_MODE_SHIFT)
+#define SQ_INSTRUCTION_CF_ALLOC_2_SET_OPCODE(sq_instruction_cf_alloc_2_reg, opcode) \
+ sq_instruction_cf_alloc_2_reg = (sq_instruction_cf_alloc_2_reg & ~SQ_INSTRUCTION_CF_ALLOC_2_OPCODE_MASK) | (opcode << SQ_INSTRUCTION_CF_ALLOC_2_OPCODE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_alloc_2_t {
+ unsigned int reserved : SQ_INSTRUCTION_CF_ALLOC_2_RESERVED_SIZE;
+ unsigned int no_serial : SQ_INSTRUCTION_CF_ALLOC_2_NO_SERIAL_SIZE;
+ unsigned int buffer_select : SQ_INSTRUCTION_CF_ALLOC_2_BUFFER_SELECT_SIZE;
+ unsigned int alloc_mode : SQ_INSTRUCTION_CF_ALLOC_2_ALLOC_MODE_SIZE;
+ unsigned int opcode : SQ_INSTRUCTION_CF_ALLOC_2_OPCODE_SIZE;
+ } sq_instruction_cf_alloc_2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_cf_alloc_2_t {
+ unsigned int opcode : SQ_INSTRUCTION_CF_ALLOC_2_OPCODE_SIZE;
+ unsigned int alloc_mode : SQ_INSTRUCTION_CF_ALLOC_2_ALLOC_MODE_SIZE;
+ unsigned int buffer_select : SQ_INSTRUCTION_CF_ALLOC_2_BUFFER_SELECT_SIZE;
+ unsigned int no_serial : SQ_INSTRUCTION_CF_ALLOC_2_NO_SERIAL_SIZE;
+ unsigned int reserved : SQ_INSTRUCTION_CF_ALLOC_2_RESERVED_SIZE;
+ } sq_instruction_cf_alloc_2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_cf_alloc_2_t f;
+} sq_instruction_cf_alloc_2_u;
+
+
+/*
+ * SQ_INSTRUCTION_TFETCH_0 struct
+ */
+
+#define SQ_INSTRUCTION_TFETCH_0_OPCODE_SIZE 5
+#define SQ_INSTRUCTION_TFETCH_0_SRC_GPR_SIZE 6
+#define SQ_INSTRUCTION_TFETCH_0_SRC_GPR_AM_SIZE 1
+#define SQ_INSTRUCTION_TFETCH_0_DST_GPR_SIZE 6
+#define SQ_INSTRUCTION_TFETCH_0_DST_GPR_AM_SIZE 1
+#define SQ_INSTRUCTION_TFETCH_0_FETCH_VALID_ONLY_SIZE 1
+#define SQ_INSTRUCTION_TFETCH_0_CONST_INDEX_SIZE 5
+#define SQ_INSTRUCTION_TFETCH_0_TX_COORD_DENORM_SIZE 1
+#define SQ_INSTRUCTION_TFETCH_0_SRC_SEL_X_SIZE 2
+#define SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Y_SIZE 2
+#define SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Z_SIZE 2
+
+#define SQ_INSTRUCTION_TFETCH_0_OPCODE_SHIFT 0
+#define SQ_INSTRUCTION_TFETCH_0_SRC_GPR_SHIFT 5
+#define SQ_INSTRUCTION_TFETCH_0_SRC_GPR_AM_SHIFT 11
+#define SQ_INSTRUCTION_TFETCH_0_DST_GPR_SHIFT 12
+#define SQ_INSTRUCTION_TFETCH_0_DST_GPR_AM_SHIFT 18
+#define SQ_INSTRUCTION_TFETCH_0_FETCH_VALID_ONLY_SHIFT 19
+#define SQ_INSTRUCTION_TFETCH_0_CONST_INDEX_SHIFT 20
+#define SQ_INSTRUCTION_TFETCH_0_TX_COORD_DENORM_SHIFT 25
+#define SQ_INSTRUCTION_TFETCH_0_SRC_SEL_X_SHIFT 26
+#define SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Y_SHIFT 28
+#define SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Z_SHIFT 30
+
+#define SQ_INSTRUCTION_TFETCH_0_OPCODE_MASK 0x0000001f
+#define SQ_INSTRUCTION_TFETCH_0_SRC_GPR_MASK 0x000007e0
+#define SQ_INSTRUCTION_TFETCH_0_SRC_GPR_AM_MASK 0x00000800
+#define SQ_INSTRUCTION_TFETCH_0_DST_GPR_MASK 0x0003f000
+#define SQ_INSTRUCTION_TFETCH_0_DST_GPR_AM_MASK 0x00040000
+#define SQ_INSTRUCTION_TFETCH_0_FETCH_VALID_ONLY_MASK 0x00080000
+#define SQ_INSTRUCTION_TFETCH_0_CONST_INDEX_MASK 0x01f00000
+#define SQ_INSTRUCTION_TFETCH_0_TX_COORD_DENORM_MASK 0x02000000
+#define SQ_INSTRUCTION_TFETCH_0_SRC_SEL_X_MASK 0x0c000000
+#define SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Y_MASK 0x30000000
+#define SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Z_MASK 0xc0000000
+
+#define SQ_INSTRUCTION_TFETCH_0_MASK \
+ (SQ_INSTRUCTION_TFETCH_0_OPCODE_MASK | \
+ SQ_INSTRUCTION_TFETCH_0_SRC_GPR_MASK | \
+ SQ_INSTRUCTION_TFETCH_0_SRC_GPR_AM_MASK | \
+ SQ_INSTRUCTION_TFETCH_0_DST_GPR_MASK | \
+ SQ_INSTRUCTION_TFETCH_0_DST_GPR_AM_MASK | \
+ SQ_INSTRUCTION_TFETCH_0_FETCH_VALID_ONLY_MASK | \
+ SQ_INSTRUCTION_TFETCH_0_CONST_INDEX_MASK | \
+ SQ_INSTRUCTION_TFETCH_0_TX_COORD_DENORM_MASK | \
+ SQ_INSTRUCTION_TFETCH_0_SRC_SEL_X_MASK | \
+ SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Y_MASK | \
+ SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Z_MASK)
+
+#define SQ_INSTRUCTION_TFETCH_0(opcode, src_gpr, src_gpr_am, dst_gpr, dst_gpr_am, fetch_valid_only, const_index, tx_coord_denorm, src_sel_x, src_sel_y, src_sel_z) \
+ ((opcode << SQ_INSTRUCTION_TFETCH_0_OPCODE_SHIFT) | \
+ (src_gpr << SQ_INSTRUCTION_TFETCH_0_SRC_GPR_SHIFT) | \
+ (src_gpr_am << SQ_INSTRUCTION_TFETCH_0_SRC_GPR_AM_SHIFT) | \
+ (dst_gpr << SQ_INSTRUCTION_TFETCH_0_DST_GPR_SHIFT) | \
+ (dst_gpr_am << SQ_INSTRUCTION_TFETCH_0_DST_GPR_AM_SHIFT) | \
+ (fetch_valid_only << SQ_INSTRUCTION_TFETCH_0_FETCH_VALID_ONLY_SHIFT) | \
+ (const_index << SQ_INSTRUCTION_TFETCH_0_CONST_INDEX_SHIFT) | \
+ (tx_coord_denorm << SQ_INSTRUCTION_TFETCH_0_TX_COORD_DENORM_SHIFT) | \
+ (src_sel_x << SQ_INSTRUCTION_TFETCH_0_SRC_SEL_X_SHIFT) | \
+ (src_sel_y << SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Y_SHIFT) | \
+ (src_sel_z << SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Z_SHIFT))
+
+#define SQ_INSTRUCTION_TFETCH_0_GET_OPCODE(sq_instruction_tfetch_0) \
+ ((sq_instruction_tfetch_0 & SQ_INSTRUCTION_TFETCH_0_OPCODE_MASK) >> SQ_INSTRUCTION_TFETCH_0_OPCODE_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_GET_SRC_GPR(sq_instruction_tfetch_0) \
+ ((sq_instruction_tfetch_0 & SQ_INSTRUCTION_TFETCH_0_SRC_GPR_MASK) >> SQ_INSTRUCTION_TFETCH_0_SRC_GPR_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_GET_SRC_GPR_AM(sq_instruction_tfetch_0) \
+ ((sq_instruction_tfetch_0 & SQ_INSTRUCTION_TFETCH_0_SRC_GPR_AM_MASK) >> SQ_INSTRUCTION_TFETCH_0_SRC_GPR_AM_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_GET_DST_GPR(sq_instruction_tfetch_0) \
+ ((sq_instruction_tfetch_0 & SQ_INSTRUCTION_TFETCH_0_DST_GPR_MASK) >> SQ_INSTRUCTION_TFETCH_0_DST_GPR_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_GET_DST_GPR_AM(sq_instruction_tfetch_0) \
+ ((sq_instruction_tfetch_0 & SQ_INSTRUCTION_TFETCH_0_DST_GPR_AM_MASK) >> SQ_INSTRUCTION_TFETCH_0_DST_GPR_AM_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_GET_FETCH_VALID_ONLY(sq_instruction_tfetch_0) \
+ ((sq_instruction_tfetch_0 & SQ_INSTRUCTION_TFETCH_0_FETCH_VALID_ONLY_MASK) >> SQ_INSTRUCTION_TFETCH_0_FETCH_VALID_ONLY_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_GET_CONST_INDEX(sq_instruction_tfetch_0) \
+ ((sq_instruction_tfetch_0 & SQ_INSTRUCTION_TFETCH_0_CONST_INDEX_MASK) >> SQ_INSTRUCTION_TFETCH_0_CONST_INDEX_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_GET_TX_COORD_DENORM(sq_instruction_tfetch_0) \
+ ((sq_instruction_tfetch_0 & SQ_INSTRUCTION_TFETCH_0_TX_COORD_DENORM_MASK) >> SQ_INSTRUCTION_TFETCH_0_TX_COORD_DENORM_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_GET_SRC_SEL_X(sq_instruction_tfetch_0) \
+ ((sq_instruction_tfetch_0 & SQ_INSTRUCTION_TFETCH_0_SRC_SEL_X_MASK) >> SQ_INSTRUCTION_TFETCH_0_SRC_SEL_X_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_GET_SRC_SEL_Y(sq_instruction_tfetch_0) \
+ ((sq_instruction_tfetch_0 & SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Y_MASK) >> SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Y_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_GET_SRC_SEL_Z(sq_instruction_tfetch_0) \
+ ((sq_instruction_tfetch_0 & SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Z_MASK) >> SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Z_SHIFT)
+
+#define SQ_INSTRUCTION_TFETCH_0_SET_OPCODE(sq_instruction_tfetch_0_reg, opcode) \
+ sq_instruction_tfetch_0_reg = (sq_instruction_tfetch_0_reg & ~SQ_INSTRUCTION_TFETCH_0_OPCODE_MASK) | (opcode << SQ_INSTRUCTION_TFETCH_0_OPCODE_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_SET_SRC_GPR(sq_instruction_tfetch_0_reg, src_gpr) \
+ sq_instruction_tfetch_0_reg = (sq_instruction_tfetch_0_reg & ~SQ_INSTRUCTION_TFETCH_0_SRC_GPR_MASK) | (src_gpr << SQ_INSTRUCTION_TFETCH_0_SRC_GPR_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_SET_SRC_GPR_AM(sq_instruction_tfetch_0_reg, src_gpr_am) \
+ sq_instruction_tfetch_0_reg = (sq_instruction_tfetch_0_reg & ~SQ_INSTRUCTION_TFETCH_0_SRC_GPR_AM_MASK) | (src_gpr_am << SQ_INSTRUCTION_TFETCH_0_SRC_GPR_AM_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_SET_DST_GPR(sq_instruction_tfetch_0_reg, dst_gpr) \
+ sq_instruction_tfetch_0_reg = (sq_instruction_tfetch_0_reg & ~SQ_INSTRUCTION_TFETCH_0_DST_GPR_MASK) | (dst_gpr << SQ_INSTRUCTION_TFETCH_0_DST_GPR_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_SET_DST_GPR_AM(sq_instruction_tfetch_0_reg, dst_gpr_am) \
+ sq_instruction_tfetch_0_reg = (sq_instruction_tfetch_0_reg & ~SQ_INSTRUCTION_TFETCH_0_DST_GPR_AM_MASK) | (dst_gpr_am << SQ_INSTRUCTION_TFETCH_0_DST_GPR_AM_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_SET_FETCH_VALID_ONLY(sq_instruction_tfetch_0_reg, fetch_valid_only) \
+ sq_instruction_tfetch_0_reg = (sq_instruction_tfetch_0_reg & ~SQ_INSTRUCTION_TFETCH_0_FETCH_VALID_ONLY_MASK) | (fetch_valid_only << SQ_INSTRUCTION_TFETCH_0_FETCH_VALID_ONLY_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_SET_CONST_INDEX(sq_instruction_tfetch_0_reg, const_index) \
+ sq_instruction_tfetch_0_reg = (sq_instruction_tfetch_0_reg & ~SQ_INSTRUCTION_TFETCH_0_CONST_INDEX_MASK) | (const_index << SQ_INSTRUCTION_TFETCH_0_CONST_INDEX_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_SET_TX_COORD_DENORM(sq_instruction_tfetch_0_reg, tx_coord_denorm) \
+ sq_instruction_tfetch_0_reg = (sq_instruction_tfetch_0_reg & ~SQ_INSTRUCTION_TFETCH_0_TX_COORD_DENORM_MASK) | (tx_coord_denorm << SQ_INSTRUCTION_TFETCH_0_TX_COORD_DENORM_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_SET_SRC_SEL_X(sq_instruction_tfetch_0_reg, src_sel_x) \
+ sq_instruction_tfetch_0_reg = (sq_instruction_tfetch_0_reg & ~SQ_INSTRUCTION_TFETCH_0_SRC_SEL_X_MASK) | (src_sel_x << SQ_INSTRUCTION_TFETCH_0_SRC_SEL_X_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_SET_SRC_SEL_Y(sq_instruction_tfetch_0_reg, src_sel_y) \
+ sq_instruction_tfetch_0_reg = (sq_instruction_tfetch_0_reg & ~SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Y_MASK) | (src_sel_y << SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Y_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_0_SET_SRC_SEL_Z(sq_instruction_tfetch_0_reg, src_sel_z) \
+ sq_instruction_tfetch_0_reg = (sq_instruction_tfetch_0_reg & ~SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Z_MASK) | (src_sel_z << SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Z_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_tfetch_0_t {
+ unsigned int opcode : SQ_INSTRUCTION_TFETCH_0_OPCODE_SIZE;
+ unsigned int src_gpr : SQ_INSTRUCTION_TFETCH_0_SRC_GPR_SIZE;
+ unsigned int src_gpr_am : SQ_INSTRUCTION_TFETCH_0_SRC_GPR_AM_SIZE;
+ unsigned int dst_gpr : SQ_INSTRUCTION_TFETCH_0_DST_GPR_SIZE;
+ unsigned int dst_gpr_am : SQ_INSTRUCTION_TFETCH_0_DST_GPR_AM_SIZE;
+ unsigned int fetch_valid_only : SQ_INSTRUCTION_TFETCH_0_FETCH_VALID_ONLY_SIZE;
+ unsigned int const_index : SQ_INSTRUCTION_TFETCH_0_CONST_INDEX_SIZE;
+ unsigned int tx_coord_denorm : SQ_INSTRUCTION_TFETCH_0_TX_COORD_DENORM_SIZE;
+ unsigned int src_sel_x : SQ_INSTRUCTION_TFETCH_0_SRC_SEL_X_SIZE;
+ unsigned int src_sel_y : SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Y_SIZE;
+ unsigned int src_sel_z : SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Z_SIZE;
+ } sq_instruction_tfetch_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_tfetch_0_t {
+ unsigned int src_sel_z : SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Z_SIZE;
+ unsigned int src_sel_y : SQ_INSTRUCTION_TFETCH_0_SRC_SEL_Y_SIZE;
+ unsigned int src_sel_x : SQ_INSTRUCTION_TFETCH_0_SRC_SEL_X_SIZE;
+ unsigned int tx_coord_denorm : SQ_INSTRUCTION_TFETCH_0_TX_COORD_DENORM_SIZE;
+ unsigned int const_index : SQ_INSTRUCTION_TFETCH_0_CONST_INDEX_SIZE;
+ unsigned int fetch_valid_only : SQ_INSTRUCTION_TFETCH_0_FETCH_VALID_ONLY_SIZE;
+ unsigned int dst_gpr_am : SQ_INSTRUCTION_TFETCH_0_DST_GPR_AM_SIZE;
+ unsigned int dst_gpr : SQ_INSTRUCTION_TFETCH_0_DST_GPR_SIZE;
+ unsigned int src_gpr_am : SQ_INSTRUCTION_TFETCH_0_SRC_GPR_AM_SIZE;
+ unsigned int src_gpr : SQ_INSTRUCTION_TFETCH_0_SRC_GPR_SIZE;
+ unsigned int opcode : SQ_INSTRUCTION_TFETCH_0_OPCODE_SIZE;
+ } sq_instruction_tfetch_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_tfetch_0_t f;
+} sq_instruction_tfetch_0_u;
+
+
+/*
+ * SQ_INSTRUCTION_TFETCH_1 struct
+ */
+
+#define SQ_INSTRUCTION_TFETCH_1_DST_SEL_X_SIZE 3
+#define SQ_INSTRUCTION_TFETCH_1_DST_SEL_Y_SIZE 3
+#define SQ_INSTRUCTION_TFETCH_1_DST_SEL_Z_SIZE 3
+#define SQ_INSTRUCTION_TFETCH_1_DST_SEL_W_SIZE 3
+#define SQ_INSTRUCTION_TFETCH_1_MAG_FILTER_SIZE 2
+#define SQ_INSTRUCTION_TFETCH_1_MIN_FILTER_SIZE 2
+#define SQ_INSTRUCTION_TFETCH_1_MIP_FILTER_SIZE 2
+#define SQ_INSTRUCTION_TFETCH_1_ANISO_FILTER_SIZE 3
+#define SQ_INSTRUCTION_TFETCH_1_ARBITRARY_FILTER_SIZE 3
+#define SQ_INSTRUCTION_TFETCH_1_VOL_MAG_FILTER_SIZE 2
+#define SQ_INSTRUCTION_TFETCH_1_VOL_MIN_FILTER_SIZE 2
+#define SQ_INSTRUCTION_TFETCH_1_USE_COMP_LOD_SIZE 1
+#define SQ_INSTRUCTION_TFETCH_1_USE_REG_LOD_SIZE 2
+#define SQ_INSTRUCTION_TFETCH_1_PRED_SELECT_SIZE 1
+
+#define SQ_INSTRUCTION_TFETCH_1_DST_SEL_X_SHIFT 0
+#define SQ_INSTRUCTION_TFETCH_1_DST_SEL_Y_SHIFT 3
+#define SQ_INSTRUCTION_TFETCH_1_DST_SEL_Z_SHIFT 6
+#define SQ_INSTRUCTION_TFETCH_1_DST_SEL_W_SHIFT 9
+#define SQ_INSTRUCTION_TFETCH_1_MAG_FILTER_SHIFT 12
+#define SQ_INSTRUCTION_TFETCH_1_MIN_FILTER_SHIFT 14
+#define SQ_INSTRUCTION_TFETCH_1_MIP_FILTER_SHIFT 16
+#define SQ_INSTRUCTION_TFETCH_1_ANISO_FILTER_SHIFT 18
+#define SQ_INSTRUCTION_TFETCH_1_ARBITRARY_FILTER_SHIFT 21
+#define SQ_INSTRUCTION_TFETCH_1_VOL_MAG_FILTER_SHIFT 24
+#define SQ_INSTRUCTION_TFETCH_1_VOL_MIN_FILTER_SHIFT 26
+#define SQ_INSTRUCTION_TFETCH_1_USE_COMP_LOD_SHIFT 28
+#define SQ_INSTRUCTION_TFETCH_1_USE_REG_LOD_SHIFT 29
+#define SQ_INSTRUCTION_TFETCH_1_PRED_SELECT_SHIFT 31
+
+#define SQ_INSTRUCTION_TFETCH_1_DST_SEL_X_MASK 0x00000007
+#define SQ_INSTRUCTION_TFETCH_1_DST_SEL_Y_MASK 0x00000038
+#define SQ_INSTRUCTION_TFETCH_1_DST_SEL_Z_MASK 0x000001c0
+#define SQ_INSTRUCTION_TFETCH_1_DST_SEL_W_MASK 0x00000e00
+#define SQ_INSTRUCTION_TFETCH_1_MAG_FILTER_MASK 0x00003000
+#define SQ_INSTRUCTION_TFETCH_1_MIN_FILTER_MASK 0x0000c000
+#define SQ_INSTRUCTION_TFETCH_1_MIP_FILTER_MASK 0x00030000
+#define SQ_INSTRUCTION_TFETCH_1_ANISO_FILTER_MASK 0x001c0000
+#define SQ_INSTRUCTION_TFETCH_1_ARBITRARY_FILTER_MASK 0x00e00000
+#define SQ_INSTRUCTION_TFETCH_1_VOL_MAG_FILTER_MASK 0x03000000
+#define SQ_INSTRUCTION_TFETCH_1_VOL_MIN_FILTER_MASK 0x0c000000
+#define SQ_INSTRUCTION_TFETCH_1_USE_COMP_LOD_MASK 0x10000000
+#define SQ_INSTRUCTION_TFETCH_1_USE_REG_LOD_MASK 0x60000000
+#define SQ_INSTRUCTION_TFETCH_1_PRED_SELECT_MASK 0x80000000
+
+#define SQ_INSTRUCTION_TFETCH_1_MASK \
+ (SQ_INSTRUCTION_TFETCH_1_DST_SEL_X_MASK | \
+ SQ_INSTRUCTION_TFETCH_1_DST_SEL_Y_MASK | \
+ SQ_INSTRUCTION_TFETCH_1_DST_SEL_Z_MASK | \
+ SQ_INSTRUCTION_TFETCH_1_DST_SEL_W_MASK | \
+ SQ_INSTRUCTION_TFETCH_1_MAG_FILTER_MASK | \
+ SQ_INSTRUCTION_TFETCH_1_MIN_FILTER_MASK | \
+ SQ_INSTRUCTION_TFETCH_1_MIP_FILTER_MASK | \
+ SQ_INSTRUCTION_TFETCH_1_ANISO_FILTER_MASK | \
+ SQ_INSTRUCTION_TFETCH_1_ARBITRARY_FILTER_MASK | \
+ SQ_INSTRUCTION_TFETCH_1_VOL_MAG_FILTER_MASK | \
+ SQ_INSTRUCTION_TFETCH_1_VOL_MIN_FILTER_MASK | \
+ SQ_INSTRUCTION_TFETCH_1_USE_COMP_LOD_MASK | \
+ SQ_INSTRUCTION_TFETCH_1_USE_REG_LOD_MASK | \
+ SQ_INSTRUCTION_TFETCH_1_PRED_SELECT_MASK)
+
+#define SQ_INSTRUCTION_TFETCH_1(dst_sel_x, dst_sel_y, dst_sel_z, dst_sel_w, mag_filter, min_filter, mip_filter, aniso_filter, arbitrary_filter, vol_mag_filter, vol_min_filter, use_comp_lod, use_reg_lod, pred_select) \
+ ((dst_sel_x << SQ_INSTRUCTION_TFETCH_1_DST_SEL_X_SHIFT) | \
+ (dst_sel_y << SQ_INSTRUCTION_TFETCH_1_DST_SEL_Y_SHIFT) | \
+ (dst_sel_z << SQ_INSTRUCTION_TFETCH_1_DST_SEL_Z_SHIFT) | \
+ (dst_sel_w << SQ_INSTRUCTION_TFETCH_1_DST_SEL_W_SHIFT) | \
+ (mag_filter << SQ_INSTRUCTION_TFETCH_1_MAG_FILTER_SHIFT) | \
+ (min_filter << SQ_INSTRUCTION_TFETCH_1_MIN_FILTER_SHIFT) | \
+ (mip_filter << SQ_INSTRUCTION_TFETCH_1_MIP_FILTER_SHIFT) | \
+ (aniso_filter << SQ_INSTRUCTION_TFETCH_1_ANISO_FILTER_SHIFT) | \
+ (arbitrary_filter << SQ_INSTRUCTION_TFETCH_1_ARBITRARY_FILTER_SHIFT) | \
+ (vol_mag_filter << SQ_INSTRUCTION_TFETCH_1_VOL_MAG_FILTER_SHIFT) | \
+ (vol_min_filter << SQ_INSTRUCTION_TFETCH_1_VOL_MIN_FILTER_SHIFT) | \
+ (use_comp_lod << SQ_INSTRUCTION_TFETCH_1_USE_COMP_LOD_SHIFT) | \
+ (use_reg_lod << SQ_INSTRUCTION_TFETCH_1_USE_REG_LOD_SHIFT) | \
+ (pred_select << SQ_INSTRUCTION_TFETCH_1_PRED_SELECT_SHIFT))
+
+#define SQ_INSTRUCTION_TFETCH_1_GET_DST_SEL_X(sq_instruction_tfetch_1) \
+ ((sq_instruction_tfetch_1 & SQ_INSTRUCTION_TFETCH_1_DST_SEL_X_MASK) >> SQ_INSTRUCTION_TFETCH_1_DST_SEL_X_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_GET_DST_SEL_Y(sq_instruction_tfetch_1) \
+ ((sq_instruction_tfetch_1 & SQ_INSTRUCTION_TFETCH_1_DST_SEL_Y_MASK) >> SQ_INSTRUCTION_TFETCH_1_DST_SEL_Y_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_GET_DST_SEL_Z(sq_instruction_tfetch_1) \
+ ((sq_instruction_tfetch_1 & SQ_INSTRUCTION_TFETCH_1_DST_SEL_Z_MASK) >> SQ_INSTRUCTION_TFETCH_1_DST_SEL_Z_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_GET_DST_SEL_W(sq_instruction_tfetch_1) \
+ ((sq_instruction_tfetch_1 & SQ_INSTRUCTION_TFETCH_1_DST_SEL_W_MASK) >> SQ_INSTRUCTION_TFETCH_1_DST_SEL_W_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_GET_MAG_FILTER(sq_instruction_tfetch_1) \
+ ((sq_instruction_tfetch_1 & SQ_INSTRUCTION_TFETCH_1_MAG_FILTER_MASK) >> SQ_INSTRUCTION_TFETCH_1_MAG_FILTER_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_GET_MIN_FILTER(sq_instruction_tfetch_1) \
+ ((sq_instruction_tfetch_1 & SQ_INSTRUCTION_TFETCH_1_MIN_FILTER_MASK) >> SQ_INSTRUCTION_TFETCH_1_MIN_FILTER_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_GET_MIP_FILTER(sq_instruction_tfetch_1) \
+ ((sq_instruction_tfetch_1 & SQ_INSTRUCTION_TFETCH_1_MIP_FILTER_MASK) >> SQ_INSTRUCTION_TFETCH_1_MIP_FILTER_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_GET_ANISO_FILTER(sq_instruction_tfetch_1) \
+ ((sq_instruction_tfetch_1 & SQ_INSTRUCTION_TFETCH_1_ANISO_FILTER_MASK) >> SQ_INSTRUCTION_TFETCH_1_ANISO_FILTER_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_GET_ARBITRARY_FILTER(sq_instruction_tfetch_1) \
+ ((sq_instruction_tfetch_1 & SQ_INSTRUCTION_TFETCH_1_ARBITRARY_FILTER_MASK) >> SQ_INSTRUCTION_TFETCH_1_ARBITRARY_FILTER_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_GET_VOL_MAG_FILTER(sq_instruction_tfetch_1) \
+ ((sq_instruction_tfetch_1 & SQ_INSTRUCTION_TFETCH_1_VOL_MAG_FILTER_MASK) >> SQ_INSTRUCTION_TFETCH_1_VOL_MAG_FILTER_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_GET_VOL_MIN_FILTER(sq_instruction_tfetch_1) \
+ ((sq_instruction_tfetch_1 & SQ_INSTRUCTION_TFETCH_1_VOL_MIN_FILTER_MASK) >> SQ_INSTRUCTION_TFETCH_1_VOL_MIN_FILTER_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_GET_USE_COMP_LOD(sq_instruction_tfetch_1) \
+ ((sq_instruction_tfetch_1 & SQ_INSTRUCTION_TFETCH_1_USE_COMP_LOD_MASK) >> SQ_INSTRUCTION_TFETCH_1_USE_COMP_LOD_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_GET_USE_REG_LOD(sq_instruction_tfetch_1) \
+ ((sq_instruction_tfetch_1 & SQ_INSTRUCTION_TFETCH_1_USE_REG_LOD_MASK) >> SQ_INSTRUCTION_TFETCH_1_USE_REG_LOD_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_GET_PRED_SELECT(sq_instruction_tfetch_1) \
+ ((sq_instruction_tfetch_1 & SQ_INSTRUCTION_TFETCH_1_PRED_SELECT_MASK) >> SQ_INSTRUCTION_TFETCH_1_PRED_SELECT_SHIFT)
+
+#define SQ_INSTRUCTION_TFETCH_1_SET_DST_SEL_X(sq_instruction_tfetch_1_reg, dst_sel_x) \
+ sq_instruction_tfetch_1_reg = (sq_instruction_tfetch_1_reg & ~SQ_INSTRUCTION_TFETCH_1_DST_SEL_X_MASK) | (dst_sel_x << SQ_INSTRUCTION_TFETCH_1_DST_SEL_X_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_SET_DST_SEL_Y(sq_instruction_tfetch_1_reg, dst_sel_y) \
+ sq_instruction_tfetch_1_reg = (sq_instruction_tfetch_1_reg & ~SQ_INSTRUCTION_TFETCH_1_DST_SEL_Y_MASK) | (dst_sel_y << SQ_INSTRUCTION_TFETCH_1_DST_SEL_Y_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_SET_DST_SEL_Z(sq_instruction_tfetch_1_reg, dst_sel_z) \
+ sq_instruction_tfetch_1_reg = (sq_instruction_tfetch_1_reg & ~SQ_INSTRUCTION_TFETCH_1_DST_SEL_Z_MASK) | (dst_sel_z << SQ_INSTRUCTION_TFETCH_1_DST_SEL_Z_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_SET_DST_SEL_W(sq_instruction_tfetch_1_reg, dst_sel_w) \
+ sq_instruction_tfetch_1_reg = (sq_instruction_tfetch_1_reg & ~SQ_INSTRUCTION_TFETCH_1_DST_SEL_W_MASK) | (dst_sel_w << SQ_INSTRUCTION_TFETCH_1_DST_SEL_W_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_SET_MAG_FILTER(sq_instruction_tfetch_1_reg, mag_filter) \
+ sq_instruction_tfetch_1_reg = (sq_instruction_tfetch_1_reg & ~SQ_INSTRUCTION_TFETCH_1_MAG_FILTER_MASK) | (mag_filter << SQ_INSTRUCTION_TFETCH_1_MAG_FILTER_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_SET_MIN_FILTER(sq_instruction_tfetch_1_reg, min_filter) \
+ sq_instruction_tfetch_1_reg = (sq_instruction_tfetch_1_reg & ~SQ_INSTRUCTION_TFETCH_1_MIN_FILTER_MASK) | (min_filter << SQ_INSTRUCTION_TFETCH_1_MIN_FILTER_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_SET_MIP_FILTER(sq_instruction_tfetch_1_reg, mip_filter) \
+ sq_instruction_tfetch_1_reg = (sq_instruction_tfetch_1_reg & ~SQ_INSTRUCTION_TFETCH_1_MIP_FILTER_MASK) | (mip_filter << SQ_INSTRUCTION_TFETCH_1_MIP_FILTER_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_SET_ANISO_FILTER(sq_instruction_tfetch_1_reg, aniso_filter) \
+ sq_instruction_tfetch_1_reg = (sq_instruction_tfetch_1_reg & ~SQ_INSTRUCTION_TFETCH_1_ANISO_FILTER_MASK) | (aniso_filter << SQ_INSTRUCTION_TFETCH_1_ANISO_FILTER_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_SET_ARBITRARY_FILTER(sq_instruction_tfetch_1_reg, arbitrary_filter) \
+ sq_instruction_tfetch_1_reg = (sq_instruction_tfetch_1_reg & ~SQ_INSTRUCTION_TFETCH_1_ARBITRARY_FILTER_MASK) | (arbitrary_filter << SQ_INSTRUCTION_TFETCH_1_ARBITRARY_FILTER_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_SET_VOL_MAG_FILTER(sq_instruction_tfetch_1_reg, vol_mag_filter) \
+ sq_instruction_tfetch_1_reg = (sq_instruction_tfetch_1_reg & ~SQ_INSTRUCTION_TFETCH_1_VOL_MAG_FILTER_MASK) | (vol_mag_filter << SQ_INSTRUCTION_TFETCH_1_VOL_MAG_FILTER_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_SET_VOL_MIN_FILTER(sq_instruction_tfetch_1_reg, vol_min_filter) \
+ sq_instruction_tfetch_1_reg = (sq_instruction_tfetch_1_reg & ~SQ_INSTRUCTION_TFETCH_1_VOL_MIN_FILTER_MASK) | (vol_min_filter << SQ_INSTRUCTION_TFETCH_1_VOL_MIN_FILTER_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_SET_USE_COMP_LOD(sq_instruction_tfetch_1_reg, use_comp_lod) \
+ sq_instruction_tfetch_1_reg = (sq_instruction_tfetch_1_reg & ~SQ_INSTRUCTION_TFETCH_1_USE_COMP_LOD_MASK) | (use_comp_lod << SQ_INSTRUCTION_TFETCH_1_USE_COMP_LOD_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_SET_USE_REG_LOD(sq_instruction_tfetch_1_reg, use_reg_lod) \
+ sq_instruction_tfetch_1_reg = (sq_instruction_tfetch_1_reg & ~SQ_INSTRUCTION_TFETCH_1_USE_REG_LOD_MASK) | (use_reg_lod << SQ_INSTRUCTION_TFETCH_1_USE_REG_LOD_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_1_SET_PRED_SELECT(sq_instruction_tfetch_1_reg, pred_select) \
+ sq_instruction_tfetch_1_reg = (sq_instruction_tfetch_1_reg & ~SQ_INSTRUCTION_TFETCH_1_PRED_SELECT_MASK) | (pred_select << SQ_INSTRUCTION_TFETCH_1_PRED_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_tfetch_1_t {
+ unsigned int dst_sel_x : SQ_INSTRUCTION_TFETCH_1_DST_SEL_X_SIZE;
+ unsigned int dst_sel_y : SQ_INSTRUCTION_TFETCH_1_DST_SEL_Y_SIZE;
+ unsigned int dst_sel_z : SQ_INSTRUCTION_TFETCH_1_DST_SEL_Z_SIZE;
+ unsigned int dst_sel_w : SQ_INSTRUCTION_TFETCH_1_DST_SEL_W_SIZE;
+ unsigned int mag_filter : SQ_INSTRUCTION_TFETCH_1_MAG_FILTER_SIZE;
+ unsigned int min_filter : SQ_INSTRUCTION_TFETCH_1_MIN_FILTER_SIZE;
+ unsigned int mip_filter : SQ_INSTRUCTION_TFETCH_1_MIP_FILTER_SIZE;
+ unsigned int aniso_filter : SQ_INSTRUCTION_TFETCH_1_ANISO_FILTER_SIZE;
+ unsigned int arbitrary_filter : SQ_INSTRUCTION_TFETCH_1_ARBITRARY_FILTER_SIZE;
+ unsigned int vol_mag_filter : SQ_INSTRUCTION_TFETCH_1_VOL_MAG_FILTER_SIZE;
+ unsigned int vol_min_filter : SQ_INSTRUCTION_TFETCH_1_VOL_MIN_FILTER_SIZE;
+ unsigned int use_comp_lod : SQ_INSTRUCTION_TFETCH_1_USE_COMP_LOD_SIZE;
+ unsigned int use_reg_lod : SQ_INSTRUCTION_TFETCH_1_USE_REG_LOD_SIZE;
+ unsigned int pred_select : SQ_INSTRUCTION_TFETCH_1_PRED_SELECT_SIZE;
+ } sq_instruction_tfetch_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_tfetch_1_t {
+ unsigned int pred_select : SQ_INSTRUCTION_TFETCH_1_PRED_SELECT_SIZE;
+ unsigned int use_reg_lod : SQ_INSTRUCTION_TFETCH_1_USE_REG_LOD_SIZE;
+ unsigned int use_comp_lod : SQ_INSTRUCTION_TFETCH_1_USE_COMP_LOD_SIZE;
+ unsigned int vol_min_filter : SQ_INSTRUCTION_TFETCH_1_VOL_MIN_FILTER_SIZE;
+ unsigned int vol_mag_filter : SQ_INSTRUCTION_TFETCH_1_VOL_MAG_FILTER_SIZE;
+ unsigned int arbitrary_filter : SQ_INSTRUCTION_TFETCH_1_ARBITRARY_FILTER_SIZE;
+ unsigned int aniso_filter : SQ_INSTRUCTION_TFETCH_1_ANISO_FILTER_SIZE;
+ unsigned int mip_filter : SQ_INSTRUCTION_TFETCH_1_MIP_FILTER_SIZE;
+ unsigned int min_filter : SQ_INSTRUCTION_TFETCH_1_MIN_FILTER_SIZE;
+ unsigned int mag_filter : SQ_INSTRUCTION_TFETCH_1_MAG_FILTER_SIZE;
+ unsigned int dst_sel_w : SQ_INSTRUCTION_TFETCH_1_DST_SEL_W_SIZE;
+ unsigned int dst_sel_z : SQ_INSTRUCTION_TFETCH_1_DST_SEL_Z_SIZE;
+ unsigned int dst_sel_y : SQ_INSTRUCTION_TFETCH_1_DST_SEL_Y_SIZE;
+ unsigned int dst_sel_x : SQ_INSTRUCTION_TFETCH_1_DST_SEL_X_SIZE;
+ } sq_instruction_tfetch_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_tfetch_1_t f;
+} sq_instruction_tfetch_1_u;
+
+
+/*
+ * SQ_INSTRUCTION_TFETCH_2 struct
+ */
+
+#define SQ_INSTRUCTION_TFETCH_2_USE_REG_GRADIENTS_SIZE 1
+#define SQ_INSTRUCTION_TFETCH_2_SAMPLE_LOCATION_SIZE 1
+#define SQ_INSTRUCTION_TFETCH_2_LOD_BIAS_SIZE 7
+#define SQ_INSTRUCTION_TFETCH_2_UNUSED_SIZE 7
+#define SQ_INSTRUCTION_TFETCH_2_OFFSET_X_SIZE 5
+#define SQ_INSTRUCTION_TFETCH_2_OFFSET_Y_SIZE 5
+#define SQ_INSTRUCTION_TFETCH_2_OFFSET_Z_SIZE 5
+#define SQ_INSTRUCTION_TFETCH_2_PRED_CONDITION_SIZE 1
+
+#define SQ_INSTRUCTION_TFETCH_2_USE_REG_GRADIENTS_SHIFT 0
+#define SQ_INSTRUCTION_TFETCH_2_SAMPLE_LOCATION_SHIFT 1
+#define SQ_INSTRUCTION_TFETCH_2_LOD_BIAS_SHIFT 2
+#define SQ_INSTRUCTION_TFETCH_2_UNUSED_SHIFT 9
+#define SQ_INSTRUCTION_TFETCH_2_OFFSET_X_SHIFT 16
+#define SQ_INSTRUCTION_TFETCH_2_OFFSET_Y_SHIFT 21
+#define SQ_INSTRUCTION_TFETCH_2_OFFSET_Z_SHIFT 26
+#define SQ_INSTRUCTION_TFETCH_2_PRED_CONDITION_SHIFT 31
+
+#define SQ_INSTRUCTION_TFETCH_2_USE_REG_GRADIENTS_MASK 0x00000001
+#define SQ_INSTRUCTION_TFETCH_2_SAMPLE_LOCATION_MASK 0x00000002
+#define SQ_INSTRUCTION_TFETCH_2_LOD_BIAS_MASK 0x000001fc
+#define SQ_INSTRUCTION_TFETCH_2_UNUSED_MASK 0x0000fe00
+#define SQ_INSTRUCTION_TFETCH_2_OFFSET_X_MASK 0x001f0000
+#define SQ_INSTRUCTION_TFETCH_2_OFFSET_Y_MASK 0x03e00000
+#define SQ_INSTRUCTION_TFETCH_2_OFFSET_Z_MASK 0x7c000000
+#define SQ_INSTRUCTION_TFETCH_2_PRED_CONDITION_MASK 0x80000000
+
+#define SQ_INSTRUCTION_TFETCH_2_MASK \
+ (SQ_INSTRUCTION_TFETCH_2_USE_REG_GRADIENTS_MASK | \
+ SQ_INSTRUCTION_TFETCH_2_SAMPLE_LOCATION_MASK | \
+ SQ_INSTRUCTION_TFETCH_2_LOD_BIAS_MASK | \
+ SQ_INSTRUCTION_TFETCH_2_UNUSED_MASK | \
+ SQ_INSTRUCTION_TFETCH_2_OFFSET_X_MASK | \
+ SQ_INSTRUCTION_TFETCH_2_OFFSET_Y_MASK | \
+ SQ_INSTRUCTION_TFETCH_2_OFFSET_Z_MASK | \
+ SQ_INSTRUCTION_TFETCH_2_PRED_CONDITION_MASK)
+
+#define SQ_INSTRUCTION_TFETCH_2(use_reg_gradients, sample_location, lod_bias, unused, offset_x, offset_y, offset_z, pred_condition) \
+ ((use_reg_gradients << SQ_INSTRUCTION_TFETCH_2_USE_REG_GRADIENTS_SHIFT) | \
+ (sample_location << SQ_INSTRUCTION_TFETCH_2_SAMPLE_LOCATION_SHIFT) | \
+ (lod_bias << SQ_INSTRUCTION_TFETCH_2_LOD_BIAS_SHIFT) | \
+ (unused << SQ_INSTRUCTION_TFETCH_2_UNUSED_SHIFT) | \
+ (offset_x << SQ_INSTRUCTION_TFETCH_2_OFFSET_X_SHIFT) | \
+ (offset_y << SQ_INSTRUCTION_TFETCH_2_OFFSET_Y_SHIFT) | \
+ (offset_z << SQ_INSTRUCTION_TFETCH_2_OFFSET_Z_SHIFT) | \
+ (pred_condition << SQ_INSTRUCTION_TFETCH_2_PRED_CONDITION_SHIFT))
+
+#define SQ_INSTRUCTION_TFETCH_2_GET_USE_REG_GRADIENTS(sq_instruction_tfetch_2) \
+ ((sq_instruction_tfetch_2 & SQ_INSTRUCTION_TFETCH_2_USE_REG_GRADIENTS_MASK) >> SQ_INSTRUCTION_TFETCH_2_USE_REG_GRADIENTS_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_2_GET_SAMPLE_LOCATION(sq_instruction_tfetch_2) \
+ ((sq_instruction_tfetch_2 & SQ_INSTRUCTION_TFETCH_2_SAMPLE_LOCATION_MASK) >> SQ_INSTRUCTION_TFETCH_2_SAMPLE_LOCATION_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_2_GET_LOD_BIAS(sq_instruction_tfetch_2) \
+ ((sq_instruction_tfetch_2 & SQ_INSTRUCTION_TFETCH_2_LOD_BIAS_MASK) >> SQ_INSTRUCTION_TFETCH_2_LOD_BIAS_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_2_GET_UNUSED(sq_instruction_tfetch_2) \
+ ((sq_instruction_tfetch_2 & SQ_INSTRUCTION_TFETCH_2_UNUSED_MASK) >> SQ_INSTRUCTION_TFETCH_2_UNUSED_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_2_GET_OFFSET_X(sq_instruction_tfetch_2) \
+ ((sq_instruction_tfetch_2 & SQ_INSTRUCTION_TFETCH_2_OFFSET_X_MASK) >> SQ_INSTRUCTION_TFETCH_2_OFFSET_X_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_2_GET_OFFSET_Y(sq_instruction_tfetch_2) \
+ ((sq_instruction_tfetch_2 & SQ_INSTRUCTION_TFETCH_2_OFFSET_Y_MASK) >> SQ_INSTRUCTION_TFETCH_2_OFFSET_Y_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_2_GET_OFFSET_Z(sq_instruction_tfetch_2) \
+ ((sq_instruction_tfetch_2 & SQ_INSTRUCTION_TFETCH_2_OFFSET_Z_MASK) >> SQ_INSTRUCTION_TFETCH_2_OFFSET_Z_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_2_GET_PRED_CONDITION(sq_instruction_tfetch_2) \
+ ((sq_instruction_tfetch_2 & SQ_INSTRUCTION_TFETCH_2_PRED_CONDITION_MASK) >> SQ_INSTRUCTION_TFETCH_2_PRED_CONDITION_SHIFT)
+
+#define SQ_INSTRUCTION_TFETCH_2_SET_USE_REG_GRADIENTS(sq_instruction_tfetch_2_reg, use_reg_gradients) \
+ sq_instruction_tfetch_2_reg = (sq_instruction_tfetch_2_reg & ~SQ_INSTRUCTION_TFETCH_2_USE_REG_GRADIENTS_MASK) | (use_reg_gradients << SQ_INSTRUCTION_TFETCH_2_USE_REG_GRADIENTS_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_2_SET_SAMPLE_LOCATION(sq_instruction_tfetch_2_reg, sample_location) \
+ sq_instruction_tfetch_2_reg = (sq_instruction_tfetch_2_reg & ~SQ_INSTRUCTION_TFETCH_2_SAMPLE_LOCATION_MASK) | (sample_location << SQ_INSTRUCTION_TFETCH_2_SAMPLE_LOCATION_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_2_SET_LOD_BIAS(sq_instruction_tfetch_2_reg, lod_bias) \
+ sq_instruction_tfetch_2_reg = (sq_instruction_tfetch_2_reg & ~SQ_INSTRUCTION_TFETCH_2_LOD_BIAS_MASK) | (lod_bias << SQ_INSTRUCTION_TFETCH_2_LOD_BIAS_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_2_SET_UNUSED(sq_instruction_tfetch_2_reg, unused) \
+ sq_instruction_tfetch_2_reg = (sq_instruction_tfetch_2_reg & ~SQ_INSTRUCTION_TFETCH_2_UNUSED_MASK) | (unused << SQ_INSTRUCTION_TFETCH_2_UNUSED_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_2_SET_OFFSET_X(sq_instruction_tfetch_2_reg, offset_x) \
+ sq_instruction_tfetch_2_reg = (sq_instruction_tfetch_2_reg & ~SQ_INSTRUCTION_TFETCH_2_OFFSET_X_MASK) | (offset_x << SQ_INSTRUCTION_TFETCH_2_OFFSET_X_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_2_SET_OFFSET_Y(sq_instruction_tfetch_2_reg, offset_y) \
+ sq_instruction_tfetch_2_reg = (sq_instruction_tfetch_2_reg & ~SQ_INSTRUCTION_TFETCH_2_OFFSET_Y_MASK) | (offset_y << SQ_INSTRUCTION_TFETCH_2_OFFSET_Y_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_2_SET_OFFSET_Z(sq_instruction_tfetch_2_reg, offset_z) \
+ sq_instruction_tfetch_2_reg = (sq_instruction_tfetch_2_reg & ~SQ_INSTRUCTION_TFETCH_2_OFFSET_Z_MASK) | (offset_z << SQ_INSTRUCTION_TFETCH_2_OFFSET_Z_SHIFT)
+#define SQ_INSTRUCTION_TFETCH_2_SET_PRED_CONDITION(sq_instruction_tfetch_2_reg, pred_condition) \
+ sq_instruction_tfetch_2_reg = (sq_instruction_tfetch_2_reg & ~SQ_INSTRUCTION_TFETCH_2_PRED_CONDITION_MASK) | (pred_condition << SQ_INSTRUCTION_TFETCH_2_PRED_CONDITION_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_tfetch_2_t {
+ unsigned int use_reg_gradients : SQ_INSTRUCTION_TFETCH_2_USE_REG_GRADIENTS_SIZE;
+ unsigned int sample_location : SQ_INSTRUCTION_TFETCH_2_SAMPLE_LOCATION_SIZE;
+ unsigned int lod_bias : SQ_INSTRUCTION_TFETCH_2_LOD_BIAS_SIZE;
+ unsigned int unused : SQ_INSTRUCTION_TFETCH_2_UNUSED_SIZE;
+ unsigned int offset_x : SQ_INSTRUCTION_TFETCH_2_OFFSET_X_SIZE;
+ unsigned int offset_y : SQ_INSTRUCTION_TFETCH_2_OFFSET_Y_SIZE;
+ unsigned int offset_z : SQ_INSTRUCTION_TFETCH_2_OFFSET_Z_SIZE;
+ unsigned int pred_condition : SQ_INSTRUCTION_TFETCH_2_PRED_CONDITION_SIZE;
+ } sq_instruction_tfetch_2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_tfetch_2_t {
+ unsigned int pred_condition : SQ_INSTRUCTION_TFETCH_2_PRED_CONDITION_SIZE;
+ unsigned int offset_z : SQ_INSTRUCTION_TFETCH_2_OFFSET_Z_SIZE;
+ unsigned int offset_y : SQ_INSTRUCTION_TFETCH_2_OFFSET_Y_SIZE;
+ unsigned int offset_x : SQ_INSTRUCTION_TFETCH_2_OFFSET_X_SIZE;
+ unsigned int unused : SQ_INSTRUCTION_TFETCH_2_UNUSED_SIZE;
+ unsigned int lod_bias : SQ_INSTRUCTION_TFETCH_2_LOD_BIAS_SIZE;
+ unsigned int sample_location : SQ_INSTRUCTION_TFETCH_2_SAMPLE_LOCATION_SIZE;
+ unsigned int use_reg_gradients : SQ_INSTRUCTION_TFETCH_2_USE_REG_GRADIENTS_SIZE;
+ } sq_instruction_tfetch_2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_tfetch_2_t f;
+} sq_instruction_tfetch_2_u;
+
+
+/*
+ * SQ_INSTRUCTION_VFETCH_0 struct
+ */
+
+#define SQ_INSTRUCTION_VFETCH_0_OPCODE_SIZE 5
+#define SQ_INSTRUCTION_VFETCH_0_SRC_GPR_SIZE 6
+#define SQ_INSTRUCTION_VFETCH_0_SRC_GPR_AM_SIZE 1
+#define SQ_INSTRUCTION_VFETCH_0_DST_GPR_SIZE 6
+#define SQ_INSTRUCTION_VFETCH_0_DST_GPR_AM_SIZE 1
+#define SQ_INSTRUCTION_VFETCH_0_MUST_BE_ONE_SIZE 1
+#define SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_SIZE 5
+#define SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_SEL_SIZE 2
+#define SQ_INSTRUCTION_VFETCH_0_SRC_SEL_SIZE 2
+
+#define SQ_INSTRUCTION_VFETCH_0_OPCODE_SHIFT 0
+#define SQ_INSTRUCTION_VFETCH_0_SRC_GPR_SHIFT 5
+#define SQ_INSTRUCTION_VFETCH_0_SRC_GPR_AM_SHIFT 11
+#define SQ_INSTRUCTION_VFETCH_0_DST_GPR_SHIFT 12
+#define SQ_INSTRUCTION_VFETCH_0_DST_GPR_AM_SHIFT 18
+#define SQ_INSTRUCTION_VFETCH_0_MUST_BE_ONE_SHIFT 19
+#define SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_SHIFT 20
+#define SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_SEL_SHIFT 25
+#define SQ_INSTRUCTION_VFETCH_0_SRC_SEL_SHIFT 30
+
+#define SQ_INSTRUCTION_VFETCH_0_OPCODE_MASK 0x0000001f
+#define SQ_INSTRUCTION_VFETCH_0_SRC_GPR_MASK 0x000007e0
+#define SQ_INSTRUCTION_VFETCH_0_SRC_GPR_AM_MASK 0x00000800
+#define SQ_INSTRUCTION_VFETCH_0_DST_GPR_MASK 0x0003f000
+#define SQ_INSTRUCTION_VFETCH_0_DST_GPR_AM_MASK 0x00040000
+#define SQ_INSTRUCTION_VFETCH_0_MUST_BE_ONE_MASK 0x00080000
+#define SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_MASK 0x01f00000
+#define SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_SEL_MASK 0x06000000
+#define SQ_INSTRUCTION_VFETCH_0_SRC_SEL_MASK 0xc0000000
+
+#define SQ_INSTRUCTION_VFETCH_0_MASK \
+ (SQ_INSTRUCTION_VFETCH_0_OPCODE_MASK | \
+ SQ_INSTRUCTION_VFETCH_0_SRC_GPR_MASK | \
+ SQ_INSTRUCTION_VFETCH_0_SRC_GPR_AM_MASK | \
+ SQ_INSTRUCTION_VFETCH_0_DST_GPR_MASK | \
+ SQ_INSTRUCTION_VFETCH_0_DST_GPR_AM_MASK | \
+ SQ_INSTRUCTION_VFETCH_0_MUST_BE_ONE_MASK | \
+ SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_MASK | \
+ SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_SEL_MASK | \
+ SQ_INSTRUCTION_VFETCH_0_SRC_SEL_MASK)
+
+#define SQ_INSTRUCTION_VFETCH_0(opcode, src_gpr, src_gpr_am, dst_gpr, dst_gpr_am, must_be_one, const_index, const_index_sel, src_sel) \
+ ((opcode << SQ_INSTRUCTION_VFETCH_0_OPCODE_SHIFT) | \
+ (src_gpr << SQ_INSTRUCTION_VFETCH_0_SRC_GPR_SHIFT) | \
+ (src_gpr_am << SQ_INSTRUCTION_VFETCH_0_SRC_GPR_AM_SHIFT) | \
+ (dst_gpr << SQ_INSTRUCTION_VFETCH_0_DST_GPR_SHIFT) | \
+ (dst_gpr_am << SQ_INSTRUCTION_VFETCH_0_DST_GPR_AM_SHIFT) | \
+ (must_be_one << SQ_INSTRUCTION_VFETCH_0_MUST_BE_ONE_SHIFT) | \
+ (const_index << SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_SHIFT) | \
+ (const_index_sel << SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_SEL_SHIFT) | \
+ (src_sel << SQ_INSTRUCTION_VFETCH_0_SRC_SEL_SHIFT))
+
+#define SQ_INSTRUCTION_VFETCH_0_GET_OPCODE(sq_instruction_vfetch_0) \
+ ((sq_instruction_vfetch_0 & SQ_INSTRUCTION_VFETCH_0_OPCODE_MASK) >> SQ_INSTRUCTION_VFETCH_0_OPCODE_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_0_GET_SRC_GPR(sq_instruction_vfetch_0) \
+ ((sq_instruction_vfetch_0 & SQ_INSTRUCTION_VFETCH_0_SRC_GPR_MASK) >> SQ_INSTRUCTION_VFETCH_0_SRC_GPR_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_0_GET_SRC_GPR_AM(sq_instruction_vfetch_0) \
+ ((sq_instruction_vfetch_0 & SQ_INSTRUCTION_VFETCH_0_SRC_GPR_AM_MASK) >> SQ_INSTRUCTION_VFETCH_0_SRC_GPR_AM_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_0_GET_DST_GPR(sq_instruction_vfetch_0) \
+ ((sq_instruction_vfetch_0 & SQ_INSTRUCTION_VFETCH_0_DST_GPR_MASK) >> SQ_INSTRUCTION_VFETCH_0_DST_GPR_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_0_GET_DST_GPR_AM(sq_instruction_vfetch_0) \
+ ((sq_instruction_vfetch_0 & SQ_INSTRUCTION_VFETCH_0_DST_GPR_AM_MASK) >> SQ_INSTRUCTION_VFETCH_0_DST_GPR_AM_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_0_GET_MUST_BE_ONE(sq_instruction_vfetch_0) \
+ ((sq_instruction_vfetch_0 & SQ_INSTRUCTION_VFETCH_0_MUST_BE_ONE_MASK) >> SQ_INSTRUCTION_VFETCH_0_MUST_BE_ONE_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_0_GET_CONST_INDEX(sq_instruction_vfetch_0) \
+ ((sq_instruction_vfetch_0 & SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_MASK) >> SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_0_GET_CONST_INDEX_SEL(sq_instruction_vfetch_0) \
+ ((sq_instruction_vfetch_0 & SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_SEL_MASK) >> SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_SEL_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_0_GET_SRC_SEL(sq_instruction_vfetch_0) \
+ ((sq_instruction_vfetch_0 & SQ_INSTRUCTION_VFETCH_0_SRC_SEL_MASK) >> SQ_INSTRUCTION_VFETCH_0_SRC_SEL_SHIFT)
+
+#define SQ_INSTRUCTION_VFETCH_0_SET_OPCODE(sq_instruction_vfetch_0_reg, opcode) \
+ sq_instruction_vfetch_0_reg = (sq_instruction_vfetch_0_reg & ~SQ_INSTRUCTION_VFETCH_0_OPCODE_MASK) | (opcode << SQ_INSTRUCTION_VFETCH_0_OPCODE_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_0_SET_SRC_GPR(sq_instruction_vfetch_0_reg, src_gpr) \
+ sq_instruction_vfetch_0_reg = (sq_instruction_vfetch_0_reg & ~SQ_INSTRUCTION_VFETCH_0_SRC_GPR_MASK) | (src_gpr << SQ_INSTRUCTION_VFETCH_0_SRC_GPR_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_0_SET_SRC_GPR_AM(sq_instruction_vfetch_0_reg, src_gpr_am) \
+ sq_instruction_vfetch_0_reg = (sq_instruction_vfetch_0_reg & ~SQ_INSTRUCTION_VFETCH_0_SRC_GPR_AM_MASK) | (src_gpr_am << SQ_INSTRUCTION_VFETCH_0_SRC_GPR_AM_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_0_SET_DST_GPR(sq_instruction_vfetch_0_reg, dst_gpr) \
+ sq_instruction_vfetch_0_reg = (sq_instruction_vfetch_0_reg & ~SQ_INSTRUCTION_VFETCH_0_DST_GPR_MASK) | (dst_gpr << SQ_INSTRUCTION_VFETCH_0_DST_GPR_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_0_SET_DST_GPR_AM(sq_instruction_vfetch_0_reg, dst_gpr_am) \
+ sq_instruction_vfetch_0_reg = (sq_instruction_vfetch_0_reg & ~SQ_INSTRUCTION_VFETCH_0_DST_GPR_AM_MASK) | (dst_gpr_am << SQ_INSTRUCTION_VFETCH_0_DST_GPR_AM_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_0_SET_MUST_BE_ONE(sq_instruction_vfetch_0_reg, must_be_one) \
+ sq_instruction_vfetch_0_reg = (sq_instruction_vfetch_0_reg & ~SQ_INSTRUCTION_VFETCH_0_MUST_BE_ONE_MASK) | (must_be_one << SQ_INSTRUCTION_VFETCH_0_MUST_BE_ONE_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_0_SET_CONST_INDEX(sq_instruction_vfetch_0_reg, const_index) \
+ sq_instruction_vfetch_0_reg = (sq_instruction_vfetch_0_reg & ~SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_MASK) | (const_index << SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_0_SET_CONST_INDEX_SEL(sq_instruction_vfetch_0_reg, const_index_sel) \
+ sq_instruction_vfetch_0_reg = (sq_instruction_vfetch_0_reg & ~SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_SEL_MASK) | (const_index_sel << SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_SEL_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_0_SET_SRC_SEL(sq_instruction_vfetch_0_reg, src_sel) \
+ sq_instruction_vfetch_0_reg = (sq_instruction_vfetch_0_reg & ~SQ_INSTRUCTION_VFETCH_0_SRC_SEL_MASK) | (src_sel << SQ_INSTRUCTION_VFETCH_0_SRC_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_vfetch_0_t {
+ unsigned int opcode : SQ_INSTRUCTION_VFETCH_0_OPCODE_SIZE;
+ unsigned int src_gpr : SQ_INSTRUCTION_VFETCH_0_SRC_GPR_SIZE;
+ unsigned int src_gpr_am : SQ_INSTRUCTION_VFETCH_0_SRC_GPR_AM_SIZE;
+ unsigned int dst_gpr : SQ_INSTRUCTION_VFETCH_0_DST_GPR_SIZE;
+ unsigned int dst_gpr_am : SQ_INSTRUCTION_VFETCH_0_DST_GPR_AM_SIZE;
+ unsigned int must_be_one : SQ_INSTRUCTION_VFETCH_0_MUST_BE_ONE_SIZE;
+ unsigned int const_index : SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_SIZE;
+ unsigned int const_index_sel : SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_SEL_SIZE;
+ unsigned int : 3;
+ unsigned int src_sel : SQ_INSTRUCTION_VFETCH_0_SRC_SEL_SIZE;
+ } sq_instruction_vfetch_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_vfetch_0_t {
+ unsigned int src_sel : SQ_INSTRUCTION_VFETCH_0_SRC_SEL_SIZE;
+ unsigned int : 3;
+ unsigned int const_index_sel : SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_SEL_SIZE;
+ unsigned int const_index : SQ_INSTRUCTION_VFETCH_0_CONST_INDEX_SIZE;
+ unsigned int must_be_one : SQ_INSTRUCTION_VFETCH_0_MUST_BE_ONE_SIZE;
+ unsigned int dst_gpr_am : SQ_INSTRUCTION_VFETCH_0_DST_GPR_AM_SIZE;
+ unsigned int dst_gpr : SQ_INSTRUCTION_VFETCH_0_DST_GPR_SIZE;
+ unsigned int src_gpr_am : SQ_INSTRUCTION_VFETCH_0_SRC_GPR_AM_SIZE;
+ unsigned int src_gpr : SQ_INSTRUCTION_VFETCH_0_SRC_GPR_SIZE;
+ unsigned int opcode : SQ_INSTRUCTION_VFETCH_0_OPCODE_SIZE;
+ } sq_instruction_vfetch_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_vfetch_0_t f;
+} sq_instruction_vfetch_0_u;
+
+
+/*
+ * SQ_INSTRUCTION_VFETCH_1 struct
+ */
+
+#define SQ_INSTRUCTION_VFETCH_1_DST_SEL_X_SIZE 3
+#define SQ_INSTRUCTION_VFETCH_1_DST_SEL_Y_SIZE 3
+#define SQ_INSTRUCTION_VFETCH_1_DST_SEL_Z_SIZE 3
+#define SQ_INSTRUCTION_VFETCH_1_DST_SEL_W_SIZE 3
+#define SQ_INSTRUCTION_VFETCH_1_FORMAT_COMP_ALL_SIZE 1
+#define SQ_INSTRUCTION_VFETCH_1_NUM_FORMAT_ALL_SIZE 1
+#define SQ_INSTRUCTION_VFETCH_1_SIGNED_RF_MODE_ALL_SIZE 1
+#define SQ_INSTRUCTION_VFETCH_1_DATA_FORMAT_SIZE 6
+#define SQ_INSTRUCTION_VFETCH_1_EXP_ADJUST_ALL_SIZE 7
+#define SQ_INSTRUCTION_VFETCH_1_PRED_SELECT_SIZE 1
+
+#define SQ_INSTRUCTION_VFETCH_1_DST_SEL_X_SHIFT 0
+#define SQ_INSTRUCTION_VFETCH_1_DST_SEL_Y_SHIFT 3
+#define SQ_INSTRUCTION_VFETCH_1_DST_SEL_Z_SHIFT 6
+#define SQ_INSTRUCTION_VFETCH_1_DST_SEL_W_SHIFT 9
+#define SQ_INSTRUCTION_VFETCH_1_FORMAT_COMP_ALL_SHIFT 12
+#define SQ_INSTRUCTION_VFETCH_1_NUM_FORMAT_ALL_SHIFT 13
+#define SQ_INSTRUCTION_VFETCH_1_SIGNED_RF_MODE_ALL_SHIFT 14
+#define SQ_INSTRUCTION_VFETCH_1_DATA_FORMAT_SHIFT 16
+#define SQ_INSTRUCTION_VFETCH_1_EXP_ADJUST_ALL_SHIFT 23
+#define SQ_INSTRUCTION_VFETCH_1_PRED_SELECT_SHIFT 31
+
+#define SQ_INSTRUCTION_VFETCH_1_DST_SEL_X_MASK 0x00000007
+#define SQ_INSTRUCTION_VFETCH_1_DST_SEL_Y_MASK 0x00000038
+#define SQ_INSTRUCTION_VFETCH_1_DST_SEL_Z_MASK 0x000001c0
+#define SQ_INSTRUCTION_VFETCH_1_DST_SEL_W_MASK 0x00000e00
+#define SQ_INSTRUCTION_VFETCH_1_FORMAT_COMP_ALL_MASK 0x00001000
+#define SQ_INSTRUCTION_VFETCH_1_NUM_FORMAT_ALL_MASK 0x00002000
+#define SQ_INSTRUCTION_VFETCH_1_SIGNED_RF_MODE_ALL_MASK 0x00004000
+#define SQ_INSTRUCTION_VFETCH_1_DATA_FORMAT_MASK 0x003f0000
+#define SQ_INSTRUCTION_VFETCH_1_EXP_ADJUST_ALL_MASK 0x3f800000
+#define SQ_INSTRUCTION_VFETCH_1_PRED_SELECT_MASK 0x80000000
+
+#define SQ_INSTRUCTION_VFETCH_1_MASK \
+ (SQ_INSTRUCTION_VFETCH_1_DST_SEL_X_MASK | \
+ SQ_INSTRUCTION_VFETCH_1_DST_SEL_Y_MASK | \
+ SQ_INSTRUCTION_VFETCH_1_DST_SEL_Z_MASK | \
+ SQ_INSTRUCTION_VFETCH_1_DST_SEL_W_MASK | \
+ SQ_INSTRUCTION_VFETCH_1_FORMAT_COMP_ALL_MASK | \
+ SQ_INSTRUCTION_VFETCH_1_NUM_FORMAT_ALL_MASK | \
+ SQ_INSTRUCTION_VFETCH_1_SIGNED_RF_MODE_ALL_MASK | \
+ SQ_INSTRUCTION_VFETCH_1_DATA_FORMAT_MASK | \
+ SQ_INSTRUCTION_VFETCH_1_EXP_ADJUST_ALL_MASK | \
+ SQ_INSTRUCTION_VFETCH_1_PRED_SELECT_MASK)
+
+#define SQ_INSTRUCTION_VFETCH_1(dst_sel_x, dst_sel_y, dst_sel_z, dst_sel_w, format_comp_all, num_format_all, signed_rf_mode_all, data_format, exp_adjust_all, pred_select) \
+ ((dst_sel_x << SQ_INSTRUCTION_VFETCH_1_DST_SEL_X_SHIFT) | \
+ (dst_sel_y << SQ_INSTRUCTION_VFETCH_1_DST_SEL_Y_SHIFT) | \
+ (dst_sel_z << SQ_INSTRUCTION_VFETCH_1_DST_SEL_Z_SHIFT) | \
+ (dst_sel_w << SQ_INSTRUCTION_VFETCH_1_DST_SEL_W_SHIFT) | \
+ (format_comp_all << SQ_INSTRUCTION_VFETCH_1_FORMAT_COMP_ALL_SHIFT) | \
+ (num_format_all << SQ_INSTRUCTION_VFETCH_1_NUM_FORMAT_ALL_SHIFT) | \
+ (signed_rf_mode_all << SQ_INSTRUCTION_VFETCH_1_SIGNED_RF_MODE_ALL_SHIFT) | \
+ (data_format << SQ_INSTRUCTION_VFETCH_1_DATA_FORMAT_SHIFT) | \
+ (exp_adjust_all << SQ_INSTRUCTION_VFETCH_1_EXP_ADJUST_ALL_SHIFT) | \
+ (pred_select << SQ_INSTRUCTION_VFETCH_1_PRED_SELECT_SHIFT))
+
+#define SQ_INSTRUCTION_VFETCH_1_GET_DST_SEL_X(sq_instruction_vfetch_1) \
+ ((sq_instruction_vfetch_1 & SQ_INSTRUCTION_VFETCH_1_DST_SEL_X_MASK) >> SQ_INSTRUCTION_VFETCH_1_DST_SEL_X_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_1_GET_DST_SEL_Y(sq_instruction_vfetch_1) \
+ ((sq_instruction_vfetch_1 & SQ_INSTRUCTION_VFETCH_1_DST_SEL_Y_MASK) >> SQ_INSTRUCTION_VFETCH_1_DST_SEL_Y_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_1_GET_DST_SEL_Z(sq_instruction_vfetch_1) \
+ ((sq_instruction_vfetch_1 & SQ_INSTRUCTION_VFETCH_1_DST_SEL_Z_MASK) >> SQ_INSTRUCTION_VFETCH_1_DST_SEL_Z_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_1_GET_DST_SEL_W(sq_instruction_vfetch_1) \
+ ((sq_instruction_vfetch_1 & SQ_INSTRUCTION_VFETCH_1_DST_SEL_W_MASK) >> SQ_INSTRUCTION_VFETCH_1_DST_SEL_W_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_1_GET_FORMAT_COMP_ALL(sq_instruction_vfetch_1) \
+ ((sq_instruction_vfetch_1 & SQ_INSTRUCTION_VFETCH_1_FORMAT_COMP_ALL_MASK) >> SQ_INSTRUCTION_VFETCH_1_FORMAT_COMP_ALL_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_1_GET_NUM_FORMAT_ALL(sq_instruction_vfetch_1) \
+ ((sq_instruction_vfetch_1 & SQ_INSTRUCTION_VFETCH_1_NUM_FORMAT_ALL_MASK) >> SQ_INSTRUCTION_VFETCH_1_NUM_FORMAT_ALL_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_1_GET_SIGNED_RF_MODE_ALL(sq_instruction_vfetch_1) \
+ ((sq_instruction_vfetch_1 & SQ_INSTRUCTION_VFETCH_1_SIGNED_RF_MODE_ALL_MASK) >> SQ_INSTRUCTION_VFETCH_1_SIGNED_RF_MODE_ALL_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_1_GET_DATA_FORMAT(sq_instruction_vfetch_1) \
+ ((sq_instruction_vfetch_1 & SQ_INSTRUCTION_VFETCH_1_DATA_FORMAT_MASK) >> SQ_INSTRUCTION_VFETCH_1_DATA_FORMAT_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_1_GET_EXP_ADJUST_ALL(sq_instruction_vfetch_1) \
+ ((sq_instruction_vfetch_1 & SQ_INSTRUCTION_VFETCH_1_EXP_ADJUST_ALL_MASK) >> SQ_INSTRUCTION_VFETCH_1_EXP_ADJUST_ALL_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_1_GET_PRED_SELECT(sq_instruction_vfetch_1) \
+ ((sq_instruction_vfetch_1 & SQ_INSTRUCTION_VFETCH_1_PRED_SELECT_MASK) >> SQ_INSTRUCTION_VFETCH_1_PRED_SELECT_SHIFT)
+
+#define SQ_INSTRUCTION_VFETCH_1_SET_DST_SEL_X(sq_instruction_vfetch_1_reg, dst_sel_x) \
+ sq_instruction_vfetch_1_reg = (sq_instruction_vfetch_1_reg & ~SQ_INSTRUCTION_VFETCH_1_DST_SEL_X_MASK) | (dst_sel_x << SQ_INSTRUCTION_VFETCH_1_DST_SEL_X_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_1_SET_DST_SEL_Y(sq_instruction_vfetch_1_reg, dst_sel_y) \
+ sq_instruction_vfetch_1_reg = (sq_instruction_vfetch_1_reg & ~SQ_INSTRUCTION_VFETCH_1_DST_SEL_Y_MASK) | (dst_sel_y << SQ_INSTRUCTION_VFETCH_1_DST_SEL_Y_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_1_SET_DST_SEL_Z(sq_instruction_vfetch_1_reg, dst_sel_z) \
+ sq_instruction_vfetch_1_reg = (sq_instruction_vfetch_1_reg & ~SQ_INSTRUCTION_VFETCH_1_DST_SEL_Z_MASK) | (dst_sel_z << SQ_INSTRUCTION_VFETCH_1_DST_SEL_Z_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_1_SET_DST_SEL_W(sq_instruction_vfetch_1_reg, dst_sel_w) \
+ sq_instruction_vfetch_1_reg = (sq_instruction_vfetch_1_reg & ~SQ_INSTRUCTION_VFETCH_1_DST_SEL_W_MASK) | (dst_sel_w << SQ_INSTRUCTION_VFETCH_1_DST_SEL_W_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_1_SET_FORMAT_COMP_ALL(sq_instruction_vfetch_1_reg, format_comp_all) \
+ sq_instruction_vfetch_1_reg = (sq_instruction_vfetch_1_reg & ~SQ_INSTRUCTION_VFETCH_1_FORMAT_COMP_ALL_MASK) | (format_comp_all << SQ_INSTRUCTION_VFETCH_1_FORMAT_COMP_ALL_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_1_SET_NUM_FORMAT_ALL(sq_instruction_vfetch_1_reg, num_format_all) \
+ sq_instruction_vfetch_1_reg = (sq_instruction_vfetch_1_reg & ~SQ_INSTRUCTION_VFETCH_1_NUM_FORMAT_ALL_MASK) | (num_format_all << SQ_INSTRUCTION_VFETCH_1_NUM_FORMAT_ALL_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_1_SET_SIGNED_RF_MODE_ALL(sq_instruction_vfetch_1_reg, signed_rf_mode_all) \
+ sq_instruction_vfetch_1_reg = (sq_instruction_vfetch_1_reg & ~SQ_INSTRUCTION_VFETCH_1_SIGNED_RF_MODE_ALL_MASK) | (signed_rf_mode_all << SQ_INSTRUCTION_VFETCH_1_SIGNED_RF_MODE_ALL_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_1_SET_DATA_FORMAT(sq_instruction_vfetch_1_reg, data_format) \
+ sq_instruction_vfetch_1_reg = (sq_instruction_vfetch_1_reg & ~SQ_INSTRUCTION_VFETCH_1_DATA_FORMAT_MASK) | (data_format << SQ_INSTRUCTION_VFETCH_1_DATA_FORMAT_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_1_SET_EXP_ADJUST_ALL(sq_instruction_vfetch_1_reg, exp_adjust_all) \
+ sq_instruction_vfetch_1_reg = (sq_instruction_vfetch_1_reg & ~SQ_INSTRUCTION_VFETCH_1_EXP_ADJUST_ALL_MASK) | (exp_adjust_all << SQ_INSTRUCTION_VFETCH_1_EXP_ADJUST_ALL_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_1_SET_PRED_SELECT(sq_instruction_vfetch_1_reg, pred_select) \
+ sq_instruction_vfetch_1_reg = (sq_instruction_vfetch_1_reg & ~SQ_INSTRUCTION_VFETCH_1_PRED_SELECT_MASK) | (pred_select << SQ_INSTRUCTION_VFETCH_1_PRED_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_vfetch_1_t {
+ unsigned int dst_sel_x : SQ_INSTRUCTION_VFETCH_1_DST_SEL_X_SIZE;
+ unsigned int dst_sel_y : SQ_INSTRUCTION_VFETCH_1_DST_SEL_Y_SIZE;
+ unsigned int dst_sel_z : SQ_INSTRUCTION_VFETCH_1_DST_SEL_Z_SIZE;
+ unsigned int dst_sel_w : SQ_INSTRUCTION_VFETCH_1_DST_SEL_W_SIZE;
+ unsigned int format_comp_all : SQ_INSTRUCTION_VFETCH_1_FORMAT_COMP_ALL_SIZE;
+ unsigned int num_format_all : SQ_INSTRUCTION_VFETCH_1_NUM_FORMAT_ALL_SIZE;
+ unsigned int signed_rf_mode_all : SQ_INSTRUCTION_VFETCH_1_SIGNED_RF_MODE_ALL_SIZE;
+ unsigned int : 1;
+ unsigned int data_format : SQ_INSTRUCTION_VFETCH_1_DATA_FORMAT_SIZE;
+ unsigned int : 1;
+ unsigned int exp_adjust_all : SQ_INSTRUCTION_VFETCH_1_EXP_ADJUST_ALL_SIZE;
+ unsigned int : 1;
+ unsigned int pred_select : SQ_INSTRUCTION_VFETCH_1_PRED_SELECT_SIZE;
+ } sq_instruction_vfetch_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_vfetch_1_t {
+ unsigned int pred_select : SQ_INSTRUCTION_VFETCH_1_PRED_SELECT_SIZE;
+ unsigned int : 1;
+ unsigned int exp_adjust_all : SQ_INSTRUCTION_VFETCH_1_EXP_ADJUST_ALL_SIZE;
+ unsigned int : 1;
+ unsigned int data_format : SQ_INSTRUCTION_VFETCH_1_DATA_FORMAT_SIZE;
+ unsigned int : 1;
+ unsigned int signed_rf_mode_all : SQ_INSTRUCTION_VFETCH_1_SIGNED_RF_MODE_ALL_SIZE;
+ unsigned int num_format_all : SQ_INSTRUCTION_VFETCH_1_NUM_FORMAT_ALL_SIZE;
+ unsigned int format_comp_all : SQ_INSTRUCTION_VFETCH_1_FORMAT_COMP_ALL_SIZE;
+ unsigned int dst_sel_w : SQ_INSTRUCTION_VFETCH_1_DST_SEL_W_SIZE;
+ unsigned int dst_sel_z : SQ_INSTRUCTION_VFETCH_1_DST_SEL_Z_SIZE;
+ unsigned int dst_sel_y : SQ_INSTRUCTION_VFETCH_1_DST_SEL_Y_SIZE;
+ unsigned int dst_sel_x : SQ_INSTRUCTION_VFETCH_1_DST_SEL_X_SIZE;
+ } sq_instruction_vfetch_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_vfetch_1_t f;
+} sq_instruction_vfetch_1_u;
+
+
+/*
+ * SQ_INSTRUCTION_VFETCH_2 struct
+ */
+
+#define SQ_INSTRUCTION_VFETCH_2_STRIDE_SIZE 8
+#define SQ_INSTRUCTION_VFETCH_2_OFFSET_SIZE 8
+#define SQ_INSTRUCTION_VFETCH_2_PRED_CONDITION_SIZE 1
+
+#define SQ_INSTRUCTION_VFETCH_2_STRIDE_SHIFT 0
+#define SQ_INSTRUCTION_VFETCH_2_OFFSET_SHIFT 16
+#define SQ_INSTRUCTION_VFETCH_2_PRED_CONDITION_SHIFT 31
+
+#define SQ_INSTRUCTION_VFETCH_2_STRIDE_MASK 0x000000ff
+#define SQ_INSTRUCTION_VFETCH_2_OFFSET_MASK 0x00ff0000
+#define SQ_INSTRUCTION_VFETCH_2_PRED_CONDITION_MASK 0x80000000
+
+#define SQ_INSTRUCTION_VFETCH_2_MASK \
+ (SQ_INSTRUCTION_VFETCH_2_STRIDE_MASK | \
+ SQ_INSTRUCTION_VFETCH_2_OFFSET_MASK | \
+ SQ_INSTRUCTION_VFETCH_2_PRED_CONDITION_MASK)
+
+#define SQ_INSTRUCTION_VFETCH_2(stride, offset, pred_condition) \
+ ((stride << SQ_INSTRUCTION_VFETCH_2_STRIDE_SHIFT) | \
+ (offset << SQ_INSTRUCTION_VFETCH_2_OFFSET_SHIFT) | \
+ (pred_condition << SQ_INSTRUCTION_VFETCH_2_PRED_CONDITION_SHIFT))
+
+#define SQ_INSTRUCTION_VFETCH_2_GET_STRIDE(sq_instruction_vfetch_2) \
+ ((sq_instruction_vfetch_2 & SQ_INSTRUCTION_VFETCH_2_STRIDE_MASK) >> SQ_INSTRUCTION_VFETCH_2_STRIDE_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_2_GET_OFFSET(sq_instruction_vfetch_2) \
+ ((sq_instruction_vfetch_2 & SQ_INSTRUCTION_VFETCH_2_OFFSET_MASK) >> SQ_INSTRUCTION_VFETCH_2_OFFSET_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_2_GET_PRED_CONDITION(sq_instruction_vfetch_2) \
+ ((sq_instruction_vfetch_2 & SQ_INSTRUCTION_VFETCH_2_PRED_CONDITION_MASK) >> SQ_INSTRUCTION_VFETCH_2_PRED_CONDITION_SHIFT)
+
+#define SQ_INSTRUCTION_VFETCH_2_SET_STRIDE(sq_instruction_vfetch_2_reg, stride) \
+ sq_instruction_vfetch_2_reg = (sq_instruction_vfetch_2_reg & ~SQ_INSTRUCTION_VFETCH_2_STRIDE_MASK) | (stride << SQ_INSTRUCTION_VFETCH_2_STRIDE_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_2_SET_OFFSET(sq_instruction_vfetch_2_reg, offset) \
+ sq_instruction_vfetch_2_reg = (sq_instruction_vfetch_2_reg & ~SQ_INSTRUCTION_VFETCH_2_OFFSET_MASK) | (offset << SQ_INSTRUCTION_VFETCH_2_OFFSET_SHIFT)
+#define SQ_INSTRUCTION_VFETCH_2_SET_PRED_CONDITION(sq_instruction_vfetch_2_reg, pred_condition) \
+ sq_instruction_vfetch_2_reg = (sq_instruction_vfetch_2_reg & ~SQ_INSTRUCTION_VFETCH_2_PRED_CONDITION_MASK) | (pred_condition << SQ_INSTRUCTION_VFETCH_2_PRED_CONDITION_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_instruction_vfetch_2_t {
+ unsigned int stride : SQ_INSTRUCTION_VFETCH_2_STRIDE_SIZE;
+ unsigned int : 8;
+ unsigned int offset : SQ_INSTRUCTION_VFETCH_2_OFFSET_SIZE;
+ unsigned int : 7;
+ unsigned int pred_condition : SQ_INSTRUCTION_VFETCH_2_PRED_CONDITION_SIZE;
+ } sq_instruction_vfetch_2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_instruction_vfetch_2_t {
+ unsigned int pred_condition : SQ_INSTRUCTION_VFETCH_2_PRED_CONDITION_SIZE;
+ unsigned int : 7;
+ unsigned int offset : SQ_INSTRUCTION_VFETCH_2_OFFSET_SIZE;
+ unsigned int : 8;
+ unsigned int stride : SQ_INSTRUCTION_VFETCH_2_STRIDE_SIZE;
+ } sq_instruction_vfetch_2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_instruction_vfetch_2_t f;
+} sq_instruction_vfetch_2_u;
+
+
+/*
+ * SQ_CONSTANT_0 struct
+ */
+
+#define SQ_CONSTANT_0_RED_SIZE 32
+
+#define SQ_CONSTANT_0_RED_SHIFT 0
+
+#define SQ_CONSTANT_0_RED_MASK 0xffffffff
+
+#define SQ_CONSTANT_0_MASK \
+ (SQ_CONSTANT_0_RED_MASK)
+
+#define SQ_CONSTANT_0(red) \
+ ((red << SQ_CONSTANT_0_RED_SHIFT))
+
+#define SQ_CONSTANT_0_GET_RED(sq_constant_0) \
+ ((sq_constant_0 & SQ_CONSTANT_0_RED_MASK) >> SQ_CONSTANT_0_RED_SHIFT)
+
+#define SQ_CONSTANT_0_SET_RED(sq_constant_0_reg, red) \
+ sq_constant_0_reg = (sq_constant_0_reg & ~SQ_CONSTANT_0_RED_MASK) | (red << SQ_CONSTANT_0_RED_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_constant_0_t {
+ unsigned int red : SQ_CONSTANT_0_RED_SIZE;
+ } sq_constant_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_constant_0_t {
+ unsigned int red : SQ_CONSTANT_0_RED_SIZE;
+ } sq_constant_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_constant_0_t f;
+} sq_constant_0_u;
+
+
+/*
+ * SQ_CONSTANT_1 struct
+ */
+
+#define SQ_CONSTANT_1_GREEN_SIZE 32
+
+#define SQ_CONSTANT_1_GREEN_SHIFT 0
+
+#define SQ_CONSTANT_1_GREEN_MASK 0xffffffff
+
+#define SQ_CONSTANT_1_MASK \
+ (SQ_CONSTANT_1_GREEN_MASK)
+
+#define SQ_CONSTANT_1(green) \
+ ((green << SQ_CONSTANT_1_GREEN_SHIFT))
+
+#define SQ_CONSTANT_1_GET_GREEN(sq_constant_1) \
+ ((sq_constant_1 & SQ_CONSTANT_1_GREEN_MASK) >> SQ_CONSTANT_1_GREEN_SHIFT)
+
+#define SQ_CONSTANT_1_SET_GREEN(sq_constant_1_reg, green) \
+ sq_constant_1_reg = (sq_constant_1_reg & ~SQ_CONSTANT_1_GREEN_MASK) | (green << SQ_CONSTANT_1_GREEN_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_constant_1_t {
+ unsigned int green : SQ_CONSTANT_1_GREEN_SIZE;
+ } sq_constant_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_constant_1_t {
+ unsigned int green : SQ_CONSTANT_1_GREEN_SIZE;
+ } sq_constant_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_constant_1_t f;
+} sq_constant_1_u;
+
+
+/*
+ * SQ_CONSTANT_2 struct
+ */
+
+#define SQ_CONSTANT_2_BLUE_SIZE 32
+
+#define SQ_CONSTANT_2_BLUE_SHIFT 0
+
+#define SQ_CONSTANT_2_BLUE_MASK 0xffffffff
+
+#define SQ_CONSTANT_2_MASK \
+ (SQ_CONSTANT_2_BLUE_MASK)
+
+#define SQ_CONSTANT_2(blue) \
+ ((blue << SQ_CONSTANT_2_BLUE_SHIFT))
+
+#define SQ_CONSTANT_2_GET_BLUE(sq_constant_2) \
+ ((sq_constant_2 & SQ_CONSTANT_2_BLUE_MASK) >> SQ_CONSTANT_2_BLUE_SHIFT)
+
+#define SQ_CONSTANT_2_SET_BLUE(sq_constant_2_reg, blue) \
+ sq_constant_2_reg = (sq_constant_2_reg & ~SQ_CONSTANT_2_BLUE_MASK) | (blue << SQ_CONSTANT_2_BLUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_constant_2_t {
+ unsigned int blue : SQ_CONSTANT_2_BLUE_SIZE;
+ } sq_constant_2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_constant_2_t {
+ unsigned int blue : SQ_CONSTANT_2_BLUE_SIZE;
+ } sq_constant_2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_constant_2_t f;
+} sq_constant_2_u;
+
+
+/*
+ * SQ_CONSTANT_3 struct
+ */
+
+#define SQ_CONSTANT_3_ALPHA_SIZE 32
+
+#define SQ_CONSTANT_3_ALPHA_SHIFT 0
+
+#define SQ_CONSTANT_3_ALPHA_MASK 0xffffffff
+
+#define SQ_CONSTANT_3_MASK \
+ (SQ_CONSTANT_3_ALPHA_MASK)
+
+#define SQ_CONSTANT_3(alpha) \
+ ((alpha << SQ_CONSTANT_3_ALPHA_SHIFT))
+
+#define SQ_CONSTANT_3_GET_ALPHA(sq_constant_3) \
+ ((sq_constant_3 & SQ_CONSTANT_3_ALPHA_MASK) >> SQ_CONSTANT_3_ALPHA_SHIFT)
+
+#define SQ_CONSTANT_3_SET_ALPHA(sq_constant_3_reg, alpha) \
+ sq_constant_3_reg = (sq_constant_3_reg & ~SQ_CONSTANT_3_ALPHA_MASK) | (alpha << SQ_CONSTANT_3_ALPHA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_constant_3_t {
+ unsigned int alpha : SQ_CONSTANT_3_ALPHA_SIZE;
+ } sq_constant_3_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_constant_3_t {
+ unsigned int alpha : SQ_CONSTANT_3_ALPHA_SIZE;
+ } sq_constant_3_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_constant_3_t f;
+} sq_constant_3_u;
+
+
+/*
+ * SQ_FETCH_0 struct
+ */
+
+#define SQ_FETCH_0_VALUE_SIZE 32
+
+#define SQ_FETCH_0_VALUE_SHIFT 0
+
+#define SQ_FETCH_0_VALUE_MASK 0xffffffff
+
+#define SQ_FETCH_0_MASK \
+ (SQ_FETCH_0_VALUE_MASK)
+
+#define SQ_FETCH_0(value) \
+ ((value << SQ_FETCH_0_VALUE_SHIFT))
+
+#define SQ_FETCH_0_GET_VALUE(sq_fetch_0) \
+ ((sq_fetch_0 & SQ_FETCH_0_VALUE_MASK) >> SQ_FETCH_0_VALUE_SHIFT)
+
+#define SQ_FETCH_0_SET_VALUE(sq_fetch_0_reg, value) \
+ sq_fetch_0_reg = (sq_fetch_0_reg & ~SQ_FETCH_0_VALUE_MASK) | (value << SQ_FETCH_0_VALUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_fetch_0_t {
+ unsigned int value : SQ_FETCH_0_VALUE_SIZE;
+ } sq_fetch_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_fetch_0_t {
+ unsigned int value : SQ_FETCH_0_VALUE_SIZE;
+ } sq_fetch_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_fetch_0_t f;
+} sq_fetch_0_u;
+
+
+/*
+ * SQ_FETCH_1 struct
+ */
+
+#define SQ_FETCH_1_VALUE_SIZE 32
+
+#define SQ_FETCH_1_VALUE_SHIFT 0
+
+#define SQ_FETCH_1_VALUE_MASK 0xffffffff
+
+#define SQ_FETCH_1_MASK \
+ (SQ_FETCH_1_VALUE_MASK)
+
+#define SQ_FETCH_1(value) \
+ ((value << SQ_FETCH_1_VALUE_SHIFT))
+
+#define SQ_FETCH_1_GET_VALUE(sq_fetch_1) \
+ ((sq_fetch_1 & SQ_FETCH_1_VALUE_MASK) >> SQ_FETCH_1_VALUE_SHIFT)
+
+#define SQ_FETCH_1_SET_VALUE(sq_fetch_1_reg, value) \
+ sq_fetch_1_reg = (sq_fetch_1_reg & ~SQ_FETCH_1_VALUE_MASK) | (value << SQ_FETCH_1_VALUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_fetch_1_t {
+ unsigned int value : SQ_FETCH_1_VALUE_SIZE;
+ } sq_fetch_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_fetch_1_t {
+ unsigned int value : SQ_FETCH_1_VALUE_SIZE;
+ } sq_fetch_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_fetch_1_t f;
+} sq_fetch_1_u;
+
+
+/*
+ * SQ_FETCH_2 struct
+ */
+
+#define SQ_FETCH_2_VALUE_SIZE 32
+
+#define SQ_FETCH_2_VALUE_SHIFT 0
+
+#define SQ_FETCH_2_VALUE_MASK 0xffffffff
+
+#define SQ_FETCH_2_MASK \
+ (SQ_FETCH_2_VALUE_MASK)
+
+#define SQ_FETCH_2(value) \
+ ((value << SQ_FETCH_2_VALUE_SHIFT))
+
+#define SQ_FETCH_2_GET_VALUE(sq_fetch_2) \
+ ((sq_fetch_2 & SQ_FETCH_2_VALUE_MASK) >> SQ_FETCH_2_VALUE_SHIFT)
+
+#define SQ_FETCH_2_SET_VALUE(sq_fetch_2_reg, value) \
+ sq_fetch_2_reg = (sq_fetch_2_reg & ~SQ_FETCH_2_VALUE_MASK) | (value << SQ_FETCH_2_VALUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_fetch_2_t {
+ unsigned int value : SQ_FETCH_2_VALUE_SIZE;
+ } sq_fetch_2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_fetch_2_t {
+ unsigned int value : SQ_FETCH_2_VALUE_SIZE;
+ } sq_fetch_2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_fetch_2_t f;
+} sq_fetch_2_u;
+
+
+/*
+ * SQ_FETCH_3 struct
+ */
+
+#define SQ_FETCH_3_VALUE_SIZE 32
+
+#define SQ_FETCH_3_VALUE_SHIFT 0
+
+#define SQ_FETCH_3_VALUE_MASK 0xffffffff
+
+#define SQ_FETCH_3_MASK \
+ (SQ_FETCH_3_VALUE_MASK)
+
+#define SQ_FETCH_3(value) \
+ ((value << SQ_FETCH_3_VALUE_SHIFT))
+
+#define SQ_FETCH_3_GET_VALUE(sq_fetch_3) \
+ ((sq_fetch_3 & SQ_FETCH_3_VALUE_MASK) >> SQ_FETCH_3_VALUE_SHIFT)
+
+#define SQ_FETCH_3_SET_VALUE(sq_fetch_3_reg, value) \
+ sq_fetch_3_reg = (sq_fetch_3_reg & ~SQ_FETCH_3_VALUE_MASK) | (value << SQ_FETCH_3_VALUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_fetch_3_t {
+ unsigned int value : SQ_FETCH_3_VALUE_SIZE;
+ } sq_fetch_3_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_fetch_3_t {
+ unsigned int value : SQ_FETCH_3_VALUE_SIZE;
+ } sq_fetch_3_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_fetch_3_t f;
+} sq_fetch_3_u;
+
+
+/*
+ * SQ_FETCH_4 struct
+ */
+
+#define SQ_FETCH_4_VALUE_SIZE 32
+
+#define SQ_FETCH_4_VALUE_SHIFT 0
+
+#define SQ_FETCH_4_VALUE_MASK 0xffffffff
+
+#define SQ_FETCH_4_MASK \
+ (SQ_FETCH_4_VALUE_MASK)
+
+#define SQ_FETCH_4(value) \
+ ((value << SQ_FETCH_4_VALUE_SHIFT))
+
+#define SQ_FETCH_4_GET_VALUE(sq_fetch_4) \
+ ((sq_fetch_4 & SQ_FETCH_4_VALUE_MASK) >> SQ_FETCH_4_VALUE_SHIFT)
+
+#define SQ_FETCH_4_SET_VALUE(sq_fetch_4_reg, value) \
+ sq_fetch_4_reg = (sq_fetch_4_reg & ~SQ_FETCH_4_VALUE_MASK) | (value << SQ_FETCH_4_VALUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_fetch_4_t {
+ unsigned int value : SQ_FETCH_4_VALUE_SIZE;
+ } sq_fetch_4_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_fetch_4_t {
+ unsigned int value : SQ_FETCH_4_VALUE_SIZE;
+ } sq_fetch_4_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_fetch_4_t f;
+} sq_fetch_4_u;
+
+
+/*
+ * SQ_FETCH_5 struct
+ */
+
+#define SQ_FETCH_5_VALUE_SIZE 32
+
+#define SQ_FETCH_5_VALUE_SHIFT 0
+
+#define SQ_FETCH_5_VALUE_MASK 0xffffffff
+
+#define SQ_FETCH_5_MASK \
+ (SQ_FETCH_5_VALUE_MASK)
+
+#define SQ_FETCH_5(value) \
+ ((value << SQ_FETCH_5_VALUE_SHIFT))
+
+#define SQ_FETCH_5_GET_VALUE(sq_fetch_5) \
+ ((sq_fetch_5 & SQ_FETCH_5_VALUE_MASK) >> SQ_FETCH_5_VALUE_SHIFT)
+
+#define SQ_FETCH_5_SET_VALUE(sq_fetch_5_reg, value) \
+ sq_fetch_5_reg = (sq_fetch_5_reg & ~SQ_FETCH_5_VALUE_MASK) | (value << SQ_FETCH_5_VALUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_fetch_5_t {
+ unsigned int value : SQ_FETCH_5_VALUE_SIZE;
+ } sq_fetch_5_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_fetch_5_t {
+ unsigned int value : SQ_FETCH_5_VALUE_SIZE;
+ } sq_fetch_5_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_fetch_5_t f;
+} sq_fetch_5_u;
+
+
+/*
+ * SQ_CONSTANT_VFETCH_0 struct
+ */
+
+#define SQ_CONSTANT_VFETCH_0_TYPE_SIZE 1
+#define SQ_CONSTANT_VFETCH_0_STATE_SIZE 1
+#define SQ_CONSTANT_VFETCH_0_BASE_ADDRESS_SIZE 30
+
+#define SQ_CONSTANT_VFETCH_0_TYPE_SHIFT 0
+#define SQ_CONSTANT_VFETCH_0_STATE_SHIFT 1
+#define SQ_CONSTANT_VFETCH_0_BASE_ADDRESS_SHIFT 2
+
+#define SQ_CONSTANT_VFETCH_0_TYPE_MASK 0x00000001
+#define SQ_CONSTANT_VFETCH_0_STATE_MASK 0x00000002
+#define SQ_CONSTANT_VFETCH_0_BASE_ADDRESS_MASK 0xfffffffc
+
+#define SQ_CONSTANT_VFETCH_0_MASK \
+ (SQ_CONSTANT_VFETCH_0_TYPE_MASK | \
+ SQ_CONSTANT_VFETCH_0_STATE_MASK | \
+ SQ_CONSTANT_VFETCH_0_BASE_ADDRESS_MASK)
+
+#define SQ_CONSTANT_VFETCH_0(type, state, base_address) \
+ ((type << SQ_CONSTANT_VFETCH_0_TYPE_SHIFT) | \
+ (state << SQ_CONSTANT_VFETCH_0_STATE_SHIFT) | \
+ (base_address << SQ_CONSTANT_VFETCH_0_BASE_ADDRESS_SHIFT))
+
+#define SQ_CONSTANT_VFETCH_0_GET_TYPE(sq_constant_vfetch_0) \
+ ((sq_constant_vfetch_0 & SQ_CONSTANT_VFETCH_0_TYPE_MASK) >> SQ_CONSTANT_VFETCH_0_TYPE_SHIFT)
+#define SQ_CONSTANT_VFETCH_0_GET_STATE(sq_constant_vfetch_0) \
+ ((sq_constant_vfetch_0 & SQ_CONSTANT_VFETCH_0_STATE_MASK) >> SQ_CONSTANT_VFETCH_0_STATE_SHIFT)
+#define SQ_CONSTANT_VFETCH_0_GET_BASE_ADDRESS(sq_constant_vfetch_0) \
+ ((sq_constant_vfetch_0 & SQ_CONSTANT_VFETCH_0_BASE_ADDRESS_MASK) >> SQ_CONSTANT_VFETCH_0_BASE_ADDRESS_SHIFT)
+
+#define SQ_CONSTANT_VFETCH_0_SET_TYPE(sq_constant_vfetch_0_reg, type) \
+ sq_constant_vfetch_0_reg = (sq_constant_vfetch_0_reg & ~SQ_CONSTANT_VFETCH_0_TYPE_MASK) | (type << SQ_CONSTANT_VFETCH_0_TYPE_SHIFT)
+#define SQ_CONSTANT_VFETCH_0_SET_STATE(sq_constant_vfetch_0_reg, state) \
+ sq_constant_vfetch_0_reg = (sq_constant_vfetch_0_reg & ~SQ_CONSTANT_VFETCH_0_STATE_MASK) | (state << SQ_CONSTANT_VFETCH_0_STATE_SHIFT)
+#define SQ_CONSTANT_VFETCH_0_SET_BASE_ADDRESS(sq_constant_vfetch_0_reg, base_address) \
+ sq_constant_vfetch_0_reg = (sq_constant_vfetch_0_reg & ~SQ_CONSTANT_VFETCH_0_BASE_ADDRESS_MASK) | (base_address << SQ_CONSTANT_VFETCH_0_BASE_ADDRESS_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_constant_vfetch_0_t {
+ unsigned int type : SQ_CONSTANT_VFETCH_0_TYPE_SIZE;
+ unsigned int state : SQ_CONSTANT_VFETCH_0_STATE_SIZE;
+ unsigned int base_address : SQ_CONSTANT_VFETCH_0_BASE_ADDRESS_SIZE;
+ } sq_constant_vfetch_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_constant_vfetch_0_t {
+ unsigned int base_address : SQ_CONSTANT_VFETCH_0_BASE_ADDRESS_SIZE;
+ unsigned int state : SQ_CONSTANT_VFETCH_0_STATE_SIZE;
+ unsigned int type : SQ_CONSTANT_VFETCH_0_TYPE_SIZE;
+ } sq_constant_vfetch_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_constant_vfetch_0_t f;
+} sq_constant_vfetch_0_u;
+
+
+/*
+ * SQ_CONSTANT_VFETCH_1 struct
+ */
+
+#define SQ_CONSTANT_VFETCH_1_ENDIAN_SWAP_SIZE 2
+#define SQ_CONSTANT_VFETCH_1_LIMIT_ADDRESS_SIZE 30
+
+#define SQ_CONSTANT_VFETCH_1_ENDIAN_SWAP_SHIFT 0
+#define SQ_CONSTANT_VFETCH_1_LIMIT_ADDRESS_SHIFT 2
+
+#define SQ_CONSTANT_VFETCH_1_ENDIAN_SWAP_MASK 0x00000003
+#define SQ_CONSTANT_VFETCH_1_LIMIT_ADDRESS_MASK 0xfffffffc
+
+#define SQ_CONSTANT_VFETCH_1_MASK \
+ (SQ_CONSTANT_VFETCH_1_ENDIAN_SWAP_MASK | \
+ SQ_CONSTANT_VFETCH_1_LIMIT_ADDRESS_MASK)
+
+#define SQ_CONSTANT_VFETCH_1(endian_swap, limit_address) \
+ ((endian_swap << SQ_CONSTANT_VFETCH_1_ENDIAN_SWAP_SHIFT) | \
+ (limit_address << SQ_CONSTANT_VFETCH_1_LIMIT_ADDRESS_SHIFT))
+
+#define SQ_CONSTANT_VFETCH_1_GET_ENDIAN_SWAP(sq_constant_vfetch_1) \
+ ((sq_constant_vfetch_1 & SQ_CONSTANT_VFETCH_1_ENDIAN_SWAP_MASK) >> SQ_CONSTANT_VFETCH_1_ENDIAN_SWAP_SHIFT)
+#define SQ_CONSTANT_VFETCH_1_GET_LIMIT_ADDRESS(sq_constant_vfetch_1) \
+ ((sq_constant_vfetch_1 & SQ_CONSTANT_VFETCH_1_LIMIT_ADDRESS_MASK) >> SQ_CONSTANT_VFETCH_1_LIMIT_ADDRESS_SHIFT)
+
+#define SQ_CONSTANT_VFETCH_1_SET_ENDIAN_SWAP(sq_constant_vfetch_1_reg, endian_swap) \
+ sq_constant_vfetch_1_reg = (sq_constant_vfetch_1_reg & ~SQ_CONSTANT_VFETCH_1_ENDIAN_SWAP_MASK) | (endian_swap << SQ_CONSTANT_VFETCH_1_ENDIAN_SWAP_SHIFT)
+#define SQ_CONSTANT_VFETCH_1_SET_LIMIT_ADDRESS(sq_constant_vfetch_1_reg, limit_address) \
+ sq_constant_vfetch_1_reg = (sq_constant_vfetch_1_reg & ~SQ_CONSTANT_VFETCH_1_LIMIT_ADDRESS_MASK) | (limit_address << SQ_CONSTANT_VFETCH_1_LIMIT_ADDRESS_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_constant_vfetch_1_t {
+ unsigned int endian_swap : SQ_CONSTANT_VFETCH_1_ENDIAN_SWAP_SIZE;
+ unsigned int limit_address : SQ_CONSTANT_VFETCH_1_LIMIT_ADDRESS_SIZE;
+ } sq_constant_vfetch_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_constant_vfetch_1_t {
+ unsigned int limit_address : SQ_CONSTANT_VFETCH_1_LIMIT_ADDRESS_SIZE;
+ unsigned int endian_swap : SQ_CONSTANT_VFETCH_1_ENDIAN_SWAP_SIZE;
+ } sq_constant_vfetch_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_constant_vfetch_1_t f;
+} sq_constant_vfetch_1_u;
+
+
+/*
+ * SQ_CONSTANT_T2 struct
+ */
+
+#define SQ_CONSTANT_T2_VALUE_SIZE 32
+
+#define SQ_CONSTANT_T2_VALUE_SHIFT 0
+
+#define SQ_CONSTANT_T2_VALUE_MASK 0xffffffff
+
+#define SQ_CONSTANT_T2_MASK \
+ (SQ_CONSTANT_T2_VALUE_MASK)
+
+#define SQ_CONSTANT_T2(value) \
+ ((value << SQ_CONSTANT_T2_VALUE_SHIFT))
+
+#define SQ_CONSTANT_T2_GET_VALUE(sq_constant_t2) \
+ ((sq_constant_t2 & SQ_CONSTANT_T2_VALUE_MASK) >> SQ_CONSTANT_T2_VALUE_SHIFT)
+
+#define SQ_CONSTANT_T2_SET_VALUE(sq_constant_t2_reg, value) \
+ sq_constant_t2_reg = (sq_constant_t2_reg & ~SQ_CONSTANT_T2_VALUE_MASK) | (value << SQ_CONSTANT_T2_VALUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_constant_t2_t {
+ unsigned int value : SQ_CONSTANT_T2_VALUE_SIZE;
+ } sq_constant_t2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_constant_t2_t {
+ unsigned int value : SQ_CONSTANT_T2_VALUE_SIZE;
+ } sq_constant_t2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_constant_t2_t f;
+} sq_constant_t2_u;
+
+
+/*
+ * SQ_CONSTANT_T3 struct
+ */
+
+#define SQ_CONSTANT_T3_VALUE_SIZE 32
+
+#define SQ_CONSTANT_T3_VALUE_SHIFT 0
+
+#define SQ_CONSTANT_T3_VALUE_MASK 0xffffffff
+
+#define SQ_CONSTANT_T3_MASK \
+ (SQ_CONSTANT_T3_VALUE_MASK)
+
+#define SQ_CONSTANT_T3(value) \
+ ((value << SQ_CONSTANT_T3_VALUE_SHIFT))
+
+#define SQ_CONSTANT_T3_GET_VALUE(sq_constant_t3) \
+ ((sq_constant_t3 & SQ_CONSTANT_T3_VALUE_MASK) >> SQ_CONSTANT_T3_VALUE_SHIFT)
+
+#define SQ_CONSTANT_T3_SET_VALUE(sq_constant_t3_reg, value) \
+ sq_constant_t3_reg = (sq_constant_t3_reg & ~SQ_CONSTANT_T3_VALUE_MASK) | (value << SQ_CONSTANT_T3_VALUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_constant_t3_t {
+ unsigned int value : SQ_CONSTANT_T3_VALUE_SIZE;
+ } sq_constant_t3_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_constant_t3_t {
+ unsigned int value : SQ_CONSTANT_T3_VALUE_SIZE;
+ } sq_constant_t3_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_constant_t3_t f;
+} sq_constant_t3_u;
+
+
+/*
+ * SQ_CF_BOOLEANS struct
+ */
+
+#define SQ_CF_BOOLEANS_CF_BOOLEANS_0_SIZE 8
+#define SQ_CF_BOOLEANS_CF_BOOLEANS_1_SIZE 8
+#define SQ_CF_BOOLEANS_CF_BOOLEANS_2_SIZE 8
+#define SQ_CF_BOOLEANS_CF_BOOLEANS_3_SIZE 8
+
+#define SQ_CF_BOOLEANS_CF_BOOLEANS_0_SHIFT 0
+#define SQ_CF_BOOLEANS_CF_BOOLEANS_1_SHIFT 8
+#define SQ_CF_BOOLEANS_CF_BOOLEANS_2_SHIFT 16
+#define SQ_CF_BOOLEANS_CF_BOOLEANS_3_SHIFT 24
+
+#define SQ_CF_BOOLEANS_CF_BOOLEANS_0_MASK 0x000000ff
+#define SQ_CF_BOOLEANS_CF_BOOLEANS_1_MASK 0x0000ff00
+#define SQ_CF_BOOLEANS_CF_BOOLEANS_2_MASK 0x00ff0000
+#define SQ_CF_BOOLEANS_CF_BOOLEANS_3_MASK 0xff000000
+
+#define SQ_CF_BOOLEANS_MASK \
+ (SQ_CF_BOOLEANS_CF_BOOLEANS_0_MASK | \
+ SQ_CF_BOOLEANS_CF_BOOLEANS_1_MASK | \
+ SQ_CF_BOOLEANS_CF_BOOLEANS_2_MASK | \
+ SQ_CF_BOOLEANS_CF_BOOLEANS_3_MASK)
+
+#define SQ_CF_BOOLEANS(cf_booleans_0, cf_booleans_1, cf_booleans_2, cf_booleans_3) \
+ ((cf_booleans_0 << SQ_CF_BOOLEANS_CF_BOOLEANS_0_SHIFT) | \
+ (cf_booleans_1 << SQ_CF_BOOLEANS_CF_BOOLEANS_1_SHIFT) | \
+ (cf_booleans_2 << SQ_CF_BOOLEANS_CF_BOOLEANS_2_SHIFT) | \
+ (cf_booleans_3 << SQ_CF_BOOLEANS_CF_BOOLEANS_3_SHIFT))
+
+#define SQ_CF_BOOLEANS_GET_CF_BOOLEANS_0(sq_cf_booleans) \
+ ((sq_cf_booleans & SQ_CF_BOOLEANS_CF_BOOLEANS_0_MASK) >> SQ_CF_BOOLEANS_CF_BOOLEANS_0_SHIFT)
+#define SQ_CF_BOOLEANS_GET_CF_BOOLEANS_1(sq_cf_booleans) \
+ ((sq_cf_booleans & SQ_CF_BOOLEANS_CF_BOOLEANS_1_MASK) >> SQ_CF_BOOLEANS_CF_BOOLEANS_1_SHIFT)
+#define SQ_CF_BOOLEANS_GET_CF_BOOLEANS_2(sq_cf_booleans) \
+ ((sq_cf_booleans & SQ_CF_BOOLEANS_CF_BOOLEANS_2_MASK) >> SQ_CF_BOOLEANS_CF_BOOLEANS_2_SHIFT)
+#define SQ_CF_BOOLEANS_GET_CF_BOOLEANS_3(sq_cf_booleans) \
+ ((sq_cf_booleans & SQ_CF_BOOLEANS_CF_BOOLEANS_3_MASK) >> SQ_CF_BOOLEANS_CF_BOOLEANS_3_SHIFT)
+
+#define SQ_CF_BOOLEANS_SET_CF_BOOLEANS_0(sq_cf_booleans_reg, cf_booleans_0) \
+ sq_cf_booleans_reg = (sq_cf_booleans_reg & ~SQ_CF_BOOLEANS_CF_BOOLEANS_0_MASK) | (cf_booleans_0 << SQ_CF_BOOLEANS_CF_BOOLEANS_0_SHIFT)
+#define SQ_CF_BOOLEANS_SET_CF_BOOLEANS_1(sq_cf_booleans_reg, cf_booleans_1) \
+ sq_cf_booleans_reg = (sq_cf_booleans_reg & ~SQ_CF_BOOLEANS_CF_BOOLEANS_1_MASK) | (cf_booleans_1 << SQ_CF_BOOLEANS_CF_BOOLEANS_1_SHIFT)
+#define SQ_CF_BOOLEANS_SET_CF_BOOLEANS_2(sq_cf_booleans_reg, cf_booleans_2) \
+ sq_cf_booleans_reg = (sq_cf_booleans_reg & ~SQ_CF_BOOLEANS_CF_BOOLEANS_2_MASK) | (cf_booleans_2 << SQ_CF_BOOLEANS_CF_BOOLEANS_2_SHIFT)
+#define SQ_CF_BOOLEANS_SET_CF_BOOLEANS_3(sq_cf_booleans_reg, cf_booleans_3) \
+ sq_cf_booleans_reg = (sq_cf_booleans_reg & ~SQ_CF_BOOLEANS_CF_BOOLEANS_3_MASK) | (cf_booleans_3 << SQ_CF_BOOLEANS_CF_BOOLEANS_3_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_cf_booleans_t {
+ unsigned int cf_booleans_0 : SQ_CF_BOOLEANS_CF_BOOLEANS_0_SIZE;
+ unsigned int cf_booleans_1 : SQ_CF_BOOLEANS_CF_BOOLEANS_1_SIZE;
+ unsigned int cf_booleans_2 : SQ_CF_BOOLEANS_CF_BOOLEANS_2_SIZE;
+ unsigned int cf_booleans_3 : SQ_CF_BOOLEANS_CF_BOOLEANS_3_SIZE;
+ } sq_cf_booleans_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_cf_booleans_t {
+ unsigned int cf_booleans_3 : SQ_CF_BOOLEANS_CF_BOOLEANS_3_SIZE;
+ unsigned int cf_booleans_2 : SQ_CF_BOOLEANS_CF_BOOLEANS_2_SIZE;
+ unsigned int cf_booleans_1 : SQ_CF_BOOLEANS_CF_BOOLEANS_1_SIZE;
+ unsigned int cf_booleans_0 : SQ_CF_BOOLEANS_CF_BOOLEANS_0_SIZE;
+ } sq_cf_booleans_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_cf_booleans_t f;
+} sq_cf_booleans_u;
+
+
+/*
+ * SQ_CF_LOOP struct
+ */
+
+#define SQ_CF_LOOP_CF_LOOP_COUNT_SIZE 8
+#define SQ_CF_LOOP_CF_LOOP_START_SIZE 8
+#define SQ_CF_LOOP_CF_LOOP_STEP_SIZE 8
+
+#define SQ_CF_LOOP_CF_LOOP_COUNT_SHIFT 0
+#define SQ_CF_LOOP_CF_LOOP_START_SHIFT 8
+#define SQ_CF_LOOP_CF_LOOP_STEP_SHIFT 16
+
+#define SQ_CF_LOOP_CF_LOOP_COUNT_MASK 0x000000ff
+#define SQ_CF_LOOP_CF_LOOP_START_MASK 0x0000ff00
+#define SQ_CF_LOOP_CF_LOOP_STEP_MASK 0x00ff0000
+
+#define SQ_CF_LOOP_MASK \
+ (SQ_CF_LOOP_CF_LOOP_COUNT_MASK | \
+ SQ_CF_LOOP_CF_LOOP_START_MASK | \
+ SQ_CF_LOOP_CF_LOOP_STEP_MASK)
+
+#define SQ_CF_LOOP(cf_loop_count, cf_loop_start, cf_loop_step) \
+ ((cf_loop_count << SQ_CF_LOOP_CF_LOOP_COUNT_SHIFT) | \
+ (cf_loop_start << SQ_CF_LOOP_CF_LOOP_START_SHIFT) | \
+ (cf_loop_step << SQ_CF_LOOP_CF_LOOP_STEP_SHIFT))
+
+#define SQ_CF_LOOP_GET_CF_LOOP_COUNT(sq_cf_loop) \
+ ((sq_cf_loop & SQ_CF_LOOP_CF_LOOP_COUNT_MASK) >> SQ_CF_LOOP_CF_LOOP_COUNT_SHIFT)
+#define SQ_CF_LOOP_GET_CF_LOOP_START(sq_cf_loop) \
+ ((sq_cf_loop & SQ_CF_LOOP_CF_LOOP_START_MASK) >> SQ_CF_LOOP_CF_LOOP_START_SHIFT)
+#define SQ_CF_LOOP_GET_CF_LOOP_STEP(sq_cf_loop) \
+ ((sq_cf_loop & SQ_CF_LOOP_CF_LOOP_STEP_MASK) >> SQ_CF_LOOP_CF_LOOP_STEP_SHIFT)
+
+#define SQ_CF_LOOP_SET_CF_LOOP_COUNT(sq_cf_loop_reg, cf_loop_count) \
+ sq_cf_loop_reg = (sq_cf_loop_reg & ~SQ_CF_LOOP_CF_LOOP_COUNT_MASK) | (cf_loop_count << SQ_CF_LOOP_CF_LOOP_COUNT_SHIFT)
+#define SQ_CF_LOOP_SET_CF_LOOP_START(sq_cf_loop_reg, cf_loop_start) \
+ sq_cf_loop_reg = (sq_cf_loop_reg & ~SQ_CF_LOOP_CF_LOOP_START_MASK) | (cf_loop_start << SQ_CF_LOOP_CF_LOOP_START_SHIFT)
+#define SQ_CF_LOOP_SET_CF_LOOP_STEP(sq_cf_loop_reg, cf_loop_step) \
+ sq_cf_loop_reg = (sq_cf_loop_reg & ~SQ_CF_LOOP_CF_LOOP_STEP_MASK) | (cf_loop_step << SQ_CF_LOOP_CF_LOOP_STEP_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_cf_loop_t {
+ unsigned int cf_loop_count : SQ_CF_LOOP_CF_LOOP_COUNT_SIZE;
+ unsigned int cf_loop_start : SQ_CF_LOOP_CF_LOOP_START_SIZE;
+ unsigned int cf_loop_step : SQ_CF_LOOP_CF_LOOP_STEP_SIZE;
+ unsigned int : 8;
+ } sq_cf_loop_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_cf_loop_t {
+ unsigned int : 8;
+ unsigned int cf_loop_step : SQ_CF_LOOP_CF_LOOP_STEP_SIZE;
+ unsigned int cf_loop_start : SQ_CF_LOOP_CF_LOOP_START_SIZE;
+ unsigned int cf_loop_count : SQ_CF_LOOP_CF_LOOP_COUNT_SIZE;
+ } sq_cf_loop_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_cf_loop_t f;
+} sq_cf_loop_u;
+
+
+/*
+ * SQ_CONSTANT_RT_0 struct
+ */
+
+#define SQ_CONSTANT_RT_0_RED_SIZE 32
+
+#define SQ_CONSTANT_RT_0_RED_SHIFT 0
+
+#define SQ_CONSTANT_RT_0_RED_MASK 0xffffffff
+
+#define SQ_CONSTANT_RT_0_MASK \
+ (SQ_CONSTANT_RT_0_RED_MASK)
+
+#define SQ_CONSTANT_RT_0(red) \
+ ((red << SQ_CONSTANT_RT_0_RED_SHIFT))
+
+#define SQ_CONSTANT_RT_0_GET_RED(sq_constant_rt_0) \
+ ((sq_constant_rt_0 & SQ_CONSTANT_RT_0_RED_MASK) >> SQ_CONSTANT_RT_0_RED_SHIFT)
+
+#define SQ_CONSTANT_RT_0_SET_RED(sq_constant_rt_0_reg, red) \
+ sq_constant_rt_0_reg = (sq_constant_rt_0_reg & ~SQ_CONSTANT_RT_0_RED_MASK) | (red << SQ_CONSTANT_RT_0_RED_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_constant_rt_0_t {
+ unsigned int red : SQ_CONSTANT_RT_0_RED_SIZE;
+ } sq_constant_rt_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_constant_rt_0_t {
+ unsigned int red : SQ_CONSTANT_RT_0_RED_SIZE;
+ } sq_constant_rt_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_constant_rt_0_t f;
+} sq_constant_rt_0_u;
+
+
+/*
+ * SQ_CONSTANT_RT_1 struct
+ */
+
+#define SQ_CONSTANT_RT_1_GREEN_SIZE 32
+
+#define SQ_CONSTANT_RT_1_GREEN_SHIFT 0
+
+#define SQ_CONSTANT_RT_1_GREEN_MASK 0xffffffff
+
+#define SQ_CONSTANT_RT_1_MASK \
+ (SQ_CONSTANT_RT_1_GREEN_MASK)
+
+#define SQ_CONSTANT_RT_1(green) \
+ ((green << SQ_CONSTANT_RT_1_GREEN_SHIFT))
+
+#define SQ_CONSTANT_RT_1_GET_GREEN(sq_constant_rt_1) \
+ ((sq_constant_rt_1 & SQ_CONSTANT_RT_1_GREEN_MASK) >> SQ_CONSTANT_RT_1_GREEN_SHIFT)
+
+#define SQ_CONSTANT_RT_1_SET_GREEN(sq_constant_rt_1_reg, green) \
+ sq_constant_rt_1_reg = (sq_constant_rt_1_reg & ~SQ_CONSTANT_RT_1_GREEN_MASK) | (green << SQ_CONSTANT_RT_1_GREEN_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_constant_rt_1_t {
+ unsigned int green : SQ_CONSTANT_RT_1_GREEN_SIZE;
+ } sq_constant_rt_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_constant_rt_1_t {
+ unsigned int green : SQ_CONSTANT_RT_1_GREEN_SIZE;
+ } sq_constant_rt_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_constant_rt_1_t f;
+} sq_constant_rt_1_u;
+
+
+/*
+ * SQ_CONSTANT_RT_2 struct
+ */
+
+#define SQ_CONSTANT_RT_2_BLUE_SIZE 32
+
+#define SQ_CONSTANT_RT_2_BLUE_SHIFT 0
+
+#define SQ_CONSTANT_RT_2_BLUE_MASK 0xffffffff
+
+#define SQ_CONSTANT_RT_2_MASK \
+ (SQ_CONSTANT_RT_2_BLUE_MASK)
+
+#define SQ_CONSTANT_RT_2(blue) \
+ ((blue << SQ_CONSTANT_RT_2_BLUE_SHIFT))
+
+#define SQ_CONSTANT_RT_2_GET_BLUE(sq_constant_rt_2) \
+ ((sq_constant_rt_2 & SQ_CONSTANT_RT_2_BLUE_MASK) >> SQ_CONSTANT_RT_2_BLUE_SHIFT)
+
+#define SQ_CONSTANT_RT_2_SET_BLUE(sq_constant_rt_2_reg, blue) \
+ sq_constant_rt_2_reg = (sq_constant_rt_2_reg & ~SQ_CONSTANT_RT_2_BLUE_MASK) | (blue << SQ_CONSTANT_RT_2_BLUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_constant_rt_2_t {
+ unsigned int blue : SQ_CONSTANT_RT_2_BLUE_SIZE;
+ } sq_constant_rt_2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_constant_rt_2_t {
+ unsigned int blue : SQ_CONSTANT_RT_2_BLUE_SIZE;
+ } sq_constant_rt_2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_constant_rt_2_t f;
+} sq_constant_rt_2_u;
+
+
+/*
+ * SQ_CONSTANT_RT_3 struct
+ */
+
+#define SQ_CONSTANT_RT_3_ALPHA_SIZE 32
+
+#define SQ_CONSTANT_RT_3_ALPHA_SHIFT 0
+
+#define SQ_CONSTANT_RT_3_ALPHA_MASK 0xffffffff
+
+#define SQ_CONSTANT_RT_3_MASK \
+ (SQ_CONSTANT_RT_3_ALPHA_MASK)
+
+#define SQ_CONSTANT_RT_3(alpha) \
+ ((alpha << SQ_CONSTANT_RT_3_ALPHA_SHIFT))
+
+#define SQ_CONSTANT_RT_3_GET_ALPHA(sq_constant_rt_3) \
+ ((sq_constant_rt_3 & SQ_CONSTANT_RT_3_ALPHA_MASK) >> SQ_CONSTANT_RT_3_ALPHA_SHIFT)
+
+#define SQ_CONSTANT_RT_3_SET_ALPHA(sq_constant_rt_3_reg, alpha) \
+ sq_constant_rt_3_reg = (sq_constant_rt_3_reg & ~SQ_CONSTANT_RT_3_ALPHA_MASK) | (alpha << SQ_CONSTANT_RT_3_ALPHA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_constant_rt_3_t {
+ unsigned int alpha : SQ_CONSTANT_RT_3_ALPHA_SIZE;
+ } sq_constant_rt_3_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_constant_rt_3_t {
+ unsigned int alpha : SQ_CONSTANT_RT_3_ALPHA_SIZE;
+ } sq_constant_rt_3_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_constant_rt_3_t f;
+} sq_constant_rt_3_u;
+
+
+/*
+ * SQ_FETCH_RT_0 struct
+ */
+
+#define SQ_FETCH_RT_0_VALUE_SIZE 32
+
+#define SQ_FETCH_RT_0_VALUE_SHIFT 0
+
+#define SQ_FETCH_RT_0_VALUE_MASK 0xffffffff
+
+#define SQ_FETCH_RT_0_MASK \
+ (SQ_FETCH_RT_0_VALUE_MASK)
+
+#define SQ_FETCH_RT_0(value) \
+ ((value << SQ_FETCH_RT_0_VALUE_SHIFT))
+
+#define SQ_FETCH_RT_0_GET_VALUE(sq_fetch_rt_0) \
+ ((sq_fetch_rt_0 & SQ_FETCH_RT_0_VALUE_MASK) >> SQ_FETCH_RT_0_VALUE_SHIFT)
+
+#define SQ_FETCH_RT_0_SET_VALUE(sq_fetch_rt_0_reg, value) \
+ sq_fetch_rt_0_reg = (sq_fetch_rt_0_reg & ~SQ_FETCH_RT_0_VALUE_MASK) | (value << SQ_FETCH_RT_0_VALUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_fetch_rt_0_t {
+ unsigned int value : SQ_FETCH_RT_0_VALUE_SIZE;
+ } sq_fetch_rt_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_fetch_rt_0_t {
+ unsigned int value : SQ_FETCH_RT_0_VALUE_SIZE;
+ } sq_fetch_rt_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_fetch_rt_0_t f;
+} sq_fetch_rt_0_u;
+
+
+/*
+ * SQ_FETCH_RT_1 struct
+ */
+
+#define SQ_FETCH_RT_1_VALUE_SIZE 32
+
+#define SQ_FETCH_RT_1_VALUE_SHIFT 0
+
+#define SQ_FETCH_RT_1_VALUE_MASK 0xffffffff
+
+#define SQ_FETCH_RT_1_MASK \
+ (SQ_FETCH_RT_1_VALUE_MASK)
+
+#define SQ_FETCH_RT_1(value) \
+ ((value << SQ_FETCH_RT_1_VALUE_SHIFT))
+
+#define SQ_FETCH_RT_1_GET_VALUE(sq_fetch_rt_1) \
+ ((sq_fetch_rt_1 & SQ_FETCH_RT_1_VALUE_MASK) >> SQ_FETCH_RT_1_VALUE_SHIFT)
+
+#define SQ_FETCH_RT_1_SET_VALUE(sq_fetch_rt_1_reg, value) \
+ sq_fetch_rt_1_reg = (sq_fetch_rt_1_reg & ~SQ_FETCH_RT_1_VALUE_MASK) | (value << SQ_FETCH_RT_1_VALUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_fetch_rt_1_t {
+ unsigned int value : SQ_FETCH_RT_1_VALUE_SIZE;
+ } sq_fetch_rt_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_fetch_rt_1_t {
+ unsigned int value : SQ_FETCH_RT_1_VALUE_SIZE;
+ } sq_fetch_rt_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_fetch_rt_1_t f;
+} sq_fetch_rt_1_u;
+
+
+/*
+ * SQ_FETCH_RT_2 struct
+ */
+
+#define SQ_FETCH_RT_2_VALUE_SIZE 32
+
+#define SQ_FETCH_RT_2_VALUE_SHIFT 0
+
+#define SQ_FETCH_RT_2_VALUE_MASK 0xffffffff
+
+#define SQ_FETCH_RT_2_MASK \
+ (SQ_FETCH_RT_2_VALUE_MASK)
+
+#define SQ_FETCH_RT_2(value) \
+ ((value << SQ_FETCH_RT_2_VALUE_SHIFT))
+
+#define SQ_FETCH_RT_2_GET_VALUE(sq_fetch_rt_2) \
+ ((sq_fetch_rt_2 & SQ_FETCH_RT_2_VALUE_MASK) >> SQ_FETCH_RT_2_VALUE_SHIFT)
+
+#define SQ_FETCH_RT_2_SET_VALUE(sq_fetch_rt_2_reg, value) \
+ sq_fetch_rt_2_reg = (sq_fetch_rt_2_reg & ~SQ_FETCH_RT_2_VALUE_MASK) | (value << SQ_FETCH_RT_2_VALUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_fetch_rt_2_t {
+ unsigned int value : SQ_FETCH_RT_2_VALUE_SIZE;
+ } sq_fetch_rt_2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_fetch_rt_2_t {
+ unsigned int value : SQ_FETCH_RT_2_VALUE_SIZE;
+ } sq_fetch_rt_2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_fetch_rt_2_t f;
+} sq_fetch_rt_2_u;
+
+
+/*
+ * SQ_FETCH_RT_3 struct
+ */
+
+#define SQ_FETCH_RT_3_VALUE_SIZE 32
+
+#define SQ_FETCH_RT_3_VALUE_SHIFT 0
+
+#define SQ_FETCH_RT_3_VALUE_MASK 0xffffffff
+
+#define SQ_FETCH_RT_3_MASK \
+ (SQ_FETCH_RT_3_VALUE_MASK)
+
+#define SQ_FETCH_RT_3(value) \
+ ((value << SQ_FETCH_RT_3_VALUE_SHIFT))
+
+#define SQ_FETCH_RT_3_GET_VALUE(sq_fetch_rt_3) \
+ ((sq_fetch_rt_3 & SQ_FETCH_RT_3_VALUE_MASK) >> SQ_FETCH_RT_3_VALUE_SHIFT)
+
+#define SQ_FETCH_RT_3_SET_VALUE(sq_fetch_rt_3_reg, value) \
+ sq_fetch_rt_3_reg = (sq_fetch_rt_3_reg & ~SQ_FETCH_RT_3_VALUE_MASK) | (value << SQ_FETCH_RT_3_VALUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_fetch_rt_3_t {
+ unsigned int value : SQ_FETCH_RT_3_VALUE_SIZE;
+ } sq_fetch_rt_3_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_fetch_rt_3_t {
+ unsigned int value : SQ_FETCH_RT_3_VALUE_SIZE;
+ } sq_fetch_rt_3_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_fetch_rt_3_t f;
+} sq_fetch_rt_3_u;
+
+
+/*
+ * SQ_FETCH_RT_4 struct
+ */
+
+#define SQ_FETCH_RT_4_VALUE_SIZE 32
+
+#define SQ_FETCH_RT_4_VALUE_SHIFT 0
+
+#define SQ_FETCH_RT_4_VALUE_MASK 0xffffffff
+
+#define SQ_FETCH_RT_4_MASK \
+ (SQ_FETCH_RT_4_VALUE_MASK)
+
+#define SQ_FETCH_RT_4(value) \
+ ((value << SQ_FETCH_RT_4_VALUE_SHIFT))
+
+#define SQ_FETCH_RT_4_GET_VALUE(sq_fetch_rt_4) \
+ ((sq_fetch_rt_4 & SQ_FETCH_RT_4_VALUE_MASK) >> SQ_FETCH_RT_4_VALUE_SHIFT)
+
+#define SQ_FETCH_RT_4_SET_VALUE(sq_fetch_rt_4_reg, value) \
+ sq_fetch_rt_4_reg = (sq_fetch_rt_4_reg & ~SQ_FETCH_RT_4_VALUE_MASK) | (value << SQ_FETCH_RT_4_VALUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_fetch_rt_4_t {
+ unsigned int value : SQ_FETCH_RT_4_VALUE_SIZE;
+ } sq_fetch_rt_4_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_fetch_rt_4_t {
+ unsigned int value : SQ_FETCH_RT_4_VALUE_SIZE;
+ } sq_fetch_rt_4_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_fetch_rt_4_t f;
+} sq_fetch_rt_4_u;
+
+
+/*
+ * SQ_FETCH_RT_5 struct
+ */
+
+#define SQ_FETCH_RT_5_VALUE_SIZE 32
+
+#define SQ_FETCH_RT_5_VALUE_SHIFT 0
+
+#define SQ_FETCH_RT_5_VALUE_MASK 0xffffffff
+
+#define SQ_FETCH_RT_5_MASK \
+ (SQ_FETCH_RT_5_VALUE_MASK)
+
+#define SQ_FETCH_RT_5(value) \
+ ((value << SQ_FETCH_RT_5_VALUE_SHIFT))
+
+#define SQ_FETCH_RT_5_GET_VALUE(sq_fetch_rt_5) \
+ ((sq_fetch_rt_5 & SQ_FETCH_RT_5_VALUE_MASK) >> SQ_FETCH_RT_5_VALUE_SHIFT)
+
+#define SQ_FETCH_RT_5_SET_VALUE(sq_fetch_rt_5_reg, value) \
+ sq_fetch_rt_5_reg = (sq_fetch_rt_5_reg & ~SQ_FETCH_RT_5_VALUE_MASK) | (value << SQ_FETCH_RT_5_VALUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_fetch_rt_5_t {
+ unsigned int value : SQ_FETCH_RT_5_VALUE_SIZE;
+ } sq_fetch_rt_5_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_fetch_rt_5_t {
+ unsigned int value : SQ_FETCH_RT_5_VALUE_SIZE;
+ } sq_fetch_rt_5_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_fetch_rt_5_t f;
+} sq_fetch_rt_5_u;
+
+
+/*
+ * SQ_CF_RT_BOOLEANS struct
+ */
+
+#define SQ_CF_RT_BOOLEANS_CF_BOOLEANS_0_SIZE 8
+#define SQ_CF_RT_BOOLEANS_CF_BOOLEANS_1_SIZE 8
+#define SQ_CF_RT_BOOLEANS_CF_BOOLEANS_2_SIZE 8
+#define SQ_CF_RT_BOOLEANS_CF_BOOLEANS_3_SIZE 8
+
+#define SQ_CF_RT_BOOLEANS_CF_BOOLEANS_0_SHIFT 0
+#define SQ_CF_RT_BOOLEANS_CF_BOOLEANS_1_SHIFT 8
+#define SQ_CF_RT_BOOLEANS_CF_BOOLEANS_2_SHIFT 16
+#define SQ_CF_RT_BOOLEANS_CF_BOOLEANS_3_SHIFT 24
+
+#define SQ_CF_RT_BOOLEANS_CF_BOOLEANS_0_MASK 0x000000ff
+#define SQ_CF_RT_BOOLEANS_CF_BOOLEANS_1_MASK 0x0000ff00
+#define SQ_CF_RT_BOOLEANS_CF_BOOLEANS_2_MASK 0x00ff0000
+#define SQ_CF_RT_BOOLEANS_CF_BOOLEANS_3_MASK 0xff000000
+
+#define SQ_CF_RT_BOOLEANS_MASK \
+ (SQ_CF_RT_BOOLEANS_CF_BOOLEANS_0_MASK | \
+ SQ_CF_RT_BOOLEANS_CF_BOOLEANS_1_MASK | \
+ SQ_CF_RT_BOOLEANS_CF_BOOLEANS_2_MASK | \
+ SQ_CF_RT_BOOLEANS_CF_BOOLEANS_3_MASK)
+
+#define SQ_CF_RT_BOOLEANS(cf_booleans_0, cf_booleans_1, cf_booleans_2, cf_booleans_3) \
+ ((cf_booleans_0 << SQ_CF_RT_BOOLEANS_CF_BOOLEANS_0_SHIFT) | \
+ (cf_booleans_1 << SQ_CF_RT_BOOLEANS_CF_BOOLEANS_1_SHIFT) | \
+ (cf_booleans_2 << SQ_CF_RT_BOOLEANS_CF_BOOLEANS_2_SHIFT) | \
+ (cf_booleans_3 << SQ_CF_RT_BOOLEANS_CF_BOOLEANS_3_SHIFT))
+
+#define SQ_CF_RT_BOOLEANS_GET_CF_BOOLEANS_0(sq_cf_rt_booleans) \
+ ((sq_cf_rt_booleans & SQ_CF_RT_BOOLEANS_CF_BOOLEANS_0_MASK) >> SQ_CF_RT_BOOLEANS_CF_BOOLEANS_0_SHIFT)
+#define SQ_CF_RT_BOOLEANS_GET_CF_BOOLEANS_1(sq_cf_rt_booleans) \
+ ((sq_cf_rt_booleans & SQ_CF_RT_BOOLEANS_CF_BOOLEANS_1_MASK) >> SQ_CF_RT_BOOLEANS_CF_BOOLEANS_1_SHIFT)
+#define SQ_CF_RT_BOOLEANS_GET_CF_BOOLEANS_2(sq_cf_rt_booleans) \
+ ((sq_cf_rt_booleans & SQ_CF_RT_BOOLEANS_CF_BOOLEANS_2_MASK) >> SQ_CF_RT_BOOLEANS_CF_BOOLEANS_2_SHIFT)
+#define SQ_CF_RT_BOOLEANS_GET_CF_BOOLEANS_3(sq_cf_rt_booleans) \
+ ((sq_cf_rt_booleans & SQ_CF_RT_BOOLEANS_CF_BOOLEANS_3_MASK) >> SQ_CF_RT_BOOLEANS_CF_BOOLEANS_3_SHIFT)
+
+#define SQ_CF_RT_BOOLEANS_SET_CF_BOOLEANS_0(sq_cf_rt_booleans_reg, cf_booleans_0) \
+ sq_cf_rt_booleans_reg = (sq_cf_rt_booleans_reg & ~SQ_CF_RT_BOOLEANS_CF_BOOLEANS_0_MASK) | (cf_booleans_0 << SQ_CF_RT_BOOLEANS_CF_BOOLEANS_0_SHIFT)
+#define SQ_CF_RT_BOOLEANS_SET_CF_BOOLEANS_1(sq_cf_rt_booleans_reg, cf_booleans_1) \
+ sq_cf_rt_booleans_reg = (sq_cf_rt_booleans_reg & ~SQ_CF_RT_BOOLEANS_CF_BOOLEANS_1_MASK) | (cf_booleans_1 << SQ_CF_RT_BOOLEANS_CF_BOOLEANS_1_SHIFT)
+#define SQ_CF_RT_BOOLEANS_SET_CF_BOOLEANS_2(sq_cf_rt_booleans_reg, cf_booleans_2) \
+ sq_cf_rt_booleans_reg = (sq_cf_rt_booleans_reg & ~SQ_CF_RT_BOOLEANS_CF_BOOLEANS_2_MASK) | (cf_booleans_2 << SQ_CF_RT_BOOLEANS_CF_BOOLEANS_2_SHIFT)
+#define SQ_CF_RT_BOOLEANS_SET_CF_BOOLEANS_3(sq_cf_rt_booleans_reg, cf_booleans_3) \
+ sq_cf_rt_booleans_reg = (sq_cf_rt_booleans_reg & ~SQ_CF_RT_BOOLEANS_CF_BOOLEANS_3_MASK) | (cf_booleans_3 << SQ_CF_RT_BOOLEANS_CF_BOOLEANS_3_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_cf_rt_booleans_t {
+ unsigned int cf_booleans_0 : SQ_CF_RT_BOOLEANS_CF_BOOLEANS_0_SIZE;
+ unsigned int cf_booleans_1 : SQ_CF_RT_BOOLEANS_CF_BOOLEANS_1_SIZE;
+ unsigned int cf_booleans_2 : SQ_CF_RT_BOOLEANS_CF_BOOLEANS_2_SIZE;
+ unsigned int cf_booleans_3 : SQ_CF_RT_BOOLEANS_CF_BOOLEANS_3_SIZE;
+ } sq_cf_rt_booleans_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_cf_rt_booleans_t {
+ unsigned int cf_booleans_3 : SQ_CF_RT_BOOLEANS_CF_BOOLEANS_3_SIZE;
+ unsigned int cf_booleans_2 : SQ_CF_RT_BOOLEANS_CF_BOOLEANS_2_SIZE;
+ unsigned int cf_booleans_1 : SQ_CF_RT_BOOLEANS_CF_BOOLEANS_1_SIZE;
+ unsigned int cf_booleans_0 : SQ_CF_RT_BOOLEANS_CF_BOOLEANS_0_SIZE;
+ } sq_cf_rt_booleans_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_cf_rt_booleans_t f;
+} sq_cf_rt_booleans_u;
+
+
+/*
+ * SQ_CF_RT_LOOP struct
+ */
+
+#define SQ_CF_RT_LOOP_CF_LOOP_COUNT_SIZE 8
+#define SQ_CF_RT_LOOP_CF_LOOP_START_SIZE 8
+#define SQ_CF_RT_LOOP_CF_LOOP_STEP_SIZE 8
+
+#define SQ_CF_RT_LOOP_CF_LOOP_COUNT_SHIFT 0
+#define SQ_CF_RT_LOOP_CF_LOOP_START_SHIFT 8
+#define SQ_CF_RT_LOOP_CF_LOOP_STEP_SHIFT 16
+
+#define SQ_CF_RT_LOOP_CF_LOOP_COUNT_MASK 0x000000ff
+#define SQ_CF_RT_LOOP_CF_LOOP_START_MASK 0x0000ff00
+#define SQ_CF_RT_LOOP_CF_LOOP_STEP_MASK 0x00ff0000
+
+#define SQ_CF_RT_LOOP_MASK \
+ (SQ_CF_RT_LOOP_CF_LOOP_COUNT_MASK | \
+ SQ_CF_RT_LOOP_CF_LOOP_START_MASK | \
+ SQ_CF_RT_LOOP_CF_LOOP_STEP_MASK)
+
+#define SQ_CF_RT_LOOP(cf_loop_count, cf_loop_start, cf_loop_step) \
+ ((cf_loop_count << SQ_CF_RT_LOOP_CF_LOOP_COUNT_SHIFT) | \
+ (cf_loop_start << SQ_CF_RT_LOOP_CF_LOOP_START_SHIFT) | \
+ (cf_loop_step << SQ_CF_RT_LOOP_CF_LOOP_STEP_SHIFT))
+
+#define SQ_CF_RT_LOOP_GET_CF_LOOP_COUNT(sq_cf_rt_loop) \
+ ((sq_cf_rt_loop & SQ_CF_RT_LOOP_CF_LOOP_COUNT_MASK) >> SQ_CF_RT_LOOP_CF_LOOP_COUNT_SHIFT)
+#define SQ_CF_RT_LOOP_GET_CF_LOOP_START(sq_cf_rt_loop) \
+ ((sq_cf_rt_loop & SQ_CF_RT_LOOP_CF_LOOP_START_MASK) >> SQ_CF_RT_LOOP_CF_LOOP_START_SHIFT)
+#define SQ_CF_RT_LOOP_GET_CF_LOOP_STEP(sq_cf_rt_loop) \
+ ((sq_cf_rt_loop & SQ_CF_RT_LOOP_CF_LOOP_STEP_MASK) >> SQ_CF_RT_LOOP_CF_LOOP_STEP_SHIFT)
+
+#define SQ_CF_RT_LOOP_SET_CF_LOOP_COUNT(sq_cf_rt_loop_reg, cf_loop_count) \
+ sq_cf_rt_loop_reg = (sq_cf_rt_loop_reg & ~SQ_CF_RT_LOOP_CF_LOOP_COUNT_MASK) | (cf_loop_count << SQ_CF_RT_LOOP_CF_LOOP_COUNT_SHIFT)
+#define SQ_CF_RT_LOOP_SET_CF_LOOP_START(sq_cf_rt_loop_reg, cf_loop_start) \
+ sq_cf_rt_loop_reg = (sq_cf_rt_loop_reg & ~SQ_CF_RT_LOOP_CF_LOOP_START_MASK) | (cf_loop_start << SQ_CF_RT_LOOP_CF_LOOP_START_SHIFT)
+#define SQ_CF_RT_LOOP_SET_CF_LOOP_STEP(sq_cf_rt_loop_reg, cf_loop_step) \
+ sq_cf_rt_loop_reg = (sq_cf_rt_loop_reg & ~SQ_CF_RT_LOOP_CF_LOOP_STEP_MASK) | (cf_loop_step << SQ_CF_RT_LOOP_CF_LOOP_STEP_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_cf_rt_loop_t {
+ unsigned int cf_loop_count : SQ_CF_RT_LOOP_CF_LOOP_COUNT_SIZE;
+ unsigned int cf_loop_start : SQ_CF_RT_LOOP_CF_LOOP_START_SIZE;
+ unsigned int cf_loop_step : SQ_CF_RT_LOOP_CF_LOOP_STEP_SIZE;
+ unsigned int : 8;
+ } sq_cf_rt_loop_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_cf_rt_loop_t {
+ unsigned int : 8;
+ unsigned int cf_loop_step : SQ_CF_RT_LOOP_CF_LOOP_STEP_SIZE;
+ unsigned int cf_loop_start : SQ_CF_RT_LOOP_CF_LOOP_START_SIZE;
+ unsigned int cf_loop_count : SQ_CF_RT_LOOP_CF_LOOP_COUNT_SIZE;
+ } sq_cf_rt_loop_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_cf_rt_loop_t f;
+} sq_cf_rt_loop_u;
+
+
+/*
+ * SQ_VS_PROGRAM struct
+ */
+
+#define SQ_VS_PROGRAM_BASE_SIZE 12
+#define SQ_VS_PROGRAM_SIZE_SIZE 12
+
+#define SQ_VS_PROGRAM_BASE_SHIFT 0
+#define SQ_VS_PROGRAM_SIZE_SHIFT 12
+
+#define SQ_VS_PROGRAM_BASE_MASK 0x00000fff
+#define SQ_VS_PROGRAM_SIZE_MASK 0x00fff000
+
+#define SQ_VS_PROGRAM_MASK \
+ (SQ_VS_PROGRAM_BASE_MASK | \
+ SQ_VS_PROGRAM_SIZE_MASK)
+
+#define SQ_VS_PROGRAM(base, size) \
+ ((base << SQ_VS_PROGRAM_BASE_SHIFT) | \
+ (size << SQ_VS_PROGRAM_SIZE_SHIFT))
+
+#define SQ_VS_PROGRAM_GET_BASE(sq_vs_program) \
+ ((sq_vs_program & SQ_VS_PROGRAM_BASE_MASK) >> SQ_VS_PROGRAM_BASE_SHIFT)
+#define SQ_VS_PROGRAM_GET_SIZE(sq_vs_program) \
+ ((sq_vs_program & SQ_VS_PROGRAM_SIZE_MASK) >> SQ_VS_PROGRAM_SIZE_SHIFT)
+
+#define SQ_VS_PROGRAM_SET_BASE(sq_vs_program_reg, base) \
+ sq_vs_program_reg = (sq_vs_program_reg & ~SQ_VS_PROGRAM_BASE_MASK) | (base << SQ_VS_PROGRAM_BASE_SHIFT)
+#define SQ_VS_PROGRAM_SET_SIZE(sq_vs_program_reg, size) \
+ sq_vs_program_reg = (sq_vs_program_reg & ~SQ_VS_PROGRAM_SIZE_MASK) | (size << SQ_VS_PROGRAM_SIZE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_vs_program_t {
+ unsigned int base : SQ_VS_PROGRAM_BASE_SIZE;
+ unsigned int size : SQ_VS_PROGRAM_SIZE_SIZE;
+ unsigned int : 8;
+ } sq_vs_program_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_vs_program_t {
+ unsigned int : 8;
+ unsigned int size : SQ_VS_PROGRAM_SIZE_SIZE;
+ unsigned int base : SQ_VS_PROGRAM_BASE_SIZE;
+ } sq_vs_program_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_vs_program_t f;
+} sq_vs_program_u;
+
+
+/*
+ * SQ_PS_PROGRAM struct
+ */
+
+#define SQ_PS_PROGRAM_BASE_SIZE 12
+#define SQ_PS_PROGRAM_SIZE_SIZE 12
+
+#define SQ_PS_PROGRAM_BASE_SHIFT 0
+#define SQ_PS_PROGRAM_SIZE_SHIFT 12
+
+#define SQ_PS_PROGRAM_BASE_MASK 0x00000fff
+#define SQ_PS_PROGRAM_SIZE_MASK 0x00fff000
+
+#define SQ_PS_PROGRAM_MASK \
+ (SQ_PS_PROGRAM_BASE_MASK | \
+ SQ_PS_PROGRAM_SIZE_MASK)
+
+#define SQ_PS_PROGRAM(base, size) \
+ ((base << SQ_PS_PROGRAM_BASE_SHIFT) | \
+ (size << SQ_PS_PROGRAM_SIZE_SHIFT))
+
+#define SQ_PS_PROGRAM_GET_BASE(sq_ps_program) \
+ ((sq_ps_program & SQ_PS_PROGRAM_BASE_MASK) >> SQ_PS_PROGRAM_BASE_SHIFT)
+#define SQ_PS_PROGRAM_GET_SIZE(sq_ps_program) \
+ ((sq_ps_program & SQ_PS_PROGRAM_SIZE_MASK) >> SQ_PS_PROGRAM_SIZE_SHIFT)
+
+#define SQ_PS_PROGRAM_SET_BASE(sq_ps_program_reg, base) \
+ sq_ps_program_reg = (sq_ps_program_reg & ~SQ_PS_PROGRAM_BASE_MASK) | (base << SQ_PS_PROGRAM_BASE_SHIFT)
+#define SQ_PS_PROGRAM_SET_SIZE(sq_ps_program_reg, size) \
+ sq_ps_program_reg = (sq_ps_program_reg & ~SQ_PS_PROGRAM_SIZE_MASK) | (size << SQ_PS_PROGRAM_SIZE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_ps_program_t {
+ unsigned int base : SQ_PS_PROGRAM_BASE_SIZE;
+ unsigned int size : SQ_PS_PROGRAM_SIZE_SIZE;
+ unsigned int : 8;
+ } sq_ps_program_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_ps_program_t {
+ unsigned int : 8;
+ unsigned int size : SQ_PS_PROGRAM_SIZE_SIZE;
+ unsigned int base : SQ_PS_PROGRAM_BASE_SIZE;
+ } sq_ps_program_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_ps_program_t f;
+} sq_ps_program_u;
+
+
+/*
+ * SQ_CF_PROGRAM_SIZE struct
+ */
+
+#define SQ_CF_PROGRAM_SIZE_VS_CF_SIZE_SIZE 11
+#define SQ_CF_PROGRAM_SIZE_PS_CF_SIZE_SIZE 11
+
+#define SQ_CF_PROGRAM_SIZE_VS_CF_SIZE_SHIFT 0
+#define SQ_CF_PROGRAM_SIZE_PS_CF_SIZE_SHIFT 12
+
+#define SQ_CF_PROGRAM_SIZE_VS_CF_SIZE_MASK 0x000007ff
+#define SQ_CF_PROGRAM_SIZE_PS_CF_SIZE_MASK 0x007ff000
+
+#define SQ_CF_PROGRAM_SIZE_MASK \
+ (SQ_CF_PROGRAM_SIZE_VS_CF_SIZE_MASK | \
+ SQ_CF_PROGRAM_SIZE_PS_CF_SIZE_MASK)
+
+#define SQ_CF_PROGRAM_SIZE(vs_cf_size, ps_cf_size) \
+ ((vs_cf_size << SQ_CF_PROGRAM_SIZE_VS_CF_SIZE_SHIFT) | \
+ (ps_cf_size << SQ_CF_PROGRAM_SIZE_PS_CF_SIZE_SHIFT))
+
+#define SQ_CF_PROGRAM_SIZE_GET_VS_CF_SIZE(sq_cf_program_size) \
+ ((sq_cf_program_size & SQ_CF_PROGRAM_SIZE_VS_CF_SIZE_MASK) >> SQ_CF_PROGRAM_SIZE_VS_CF_SIZE_SHIFT)
+#define SQ_CF_PROGRAM_SIZE_GET_PS_CF_SIZE(sq_cf_program_size) \
+ ((sq_cf_program_size & SQ_CF_PROGRAM_SIZE_PS_CF_SIZE_MASK) >> SQ_CF_PROGRAM_SIZE_PS_CF_SIZE_SHIFT)
+
+#define SQ_CF_PROGRAM_SIZE_SET_VS_CF_SIZE(sq_cf_program_size_reg, vs_cf_size) \
+ sq_cf_program_size_reg = (sq_cf_program_size_reg & ~SQ_CF_PROGRAM_SIZE_VS_CF_SIZE_MASK) | (vs_cf_size << SQ_CF_PROGRAM_SIZE_VS_CF_SIZE_SHIFT)
+#define SQ_CF_PROGRAM_SIZE_SET_PS_CF_SIZE(sq_cf_program_size_reg, ps_cf_size) \
+ sq_cf_program_size_reg = (sq_cf_program_size_reg & ~SQ_CF_PROGRAM_SIZE_PS_CF_SIZE_MASK) | (ps_cf_size << SQ_CF_PROGRAM_SIZE_PS_CF_SIZE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_cf_program_size_t {
+ unsigned int vs_cf_size : SQ_CF_PROGRAM_SIZE_VS_CF_SIZE_SIZE;
+ unsigned int : 1;
+ unsigned int ps_cf_size : SQ_CF_PROGRAM_SIZE_PS_CF_SIZE_SIZE;
+ unsigned int : 9;
+ } sq_cf_program_size_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_cf_program_size_t {
+ unsigned int : 9;
+ unsigned int ps_cf_size : SQ_CF_PROGRAM_SIZE_PS_CF_SIZE_SIZE;
+ unsigned int : 1;
+ unsigned int vs_cf_size : SQ_CF_PROGRAM_SIZE_VS_CF_SIZE_SIZE;
+ } sq_cf_program_size_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_cf_program_size_t f;
+} sq_cf_program_size_u;
+
+
+/*
+ * SQ_INTERPOLATOR_CNTL struct
+ */
+
+#define SQ_INTERPOLATOR_CNTL_PARAM_SHADE_SIZE 16
+#define SQ_INTERPOLATOR_CNTL_SAMPLING_PATTERN_SIZE 16
+
+#define SQ_INTERPOLATOR_CNTL_PARAM_SHADE_SHIFT 0
+#define SQ_INTERPOLATOR_CNTL_SAMPLING_PATTERN_SHIFT 16
+
+#define SQ_INTERPOLATOR_CNTL_PARAM_SHADE_MASK 0x0000ffff
+#define SQ_INTERPOLATOR_CNTL_SAMPLING_PATTERN_MASK 0xffff0000
+
+#define SQ_INTERPOLATOR_CNTL_MASK \
+ (SQ_INTERPOLATOR_CNTL_PARAM_SHADE_MASK | \
+ SQ_INTERPOLATOR_CNTL_SAMPLING_PATTERN_MASK)
+
+#define SQ_INTERPOLATOR_CNTL(param_shade, sampling_pattern) \
+ ((param_shade << SQ_INTERPOLATOR_CNTL_PARAM_SHADE_SHIFT) | \
+ (sampling_pattern << SQ_INTERPOLATOR_CNTL_SAMPLING_PATTERN_SHIFT))
+
+#define SQ_INTERPOLATOR_CNTL_GET_PARAM_SHADE(sq_interpolator_cntl) \
+ ((sq_interpolator_cntl & SQ_INTERPOLATOR_CNTL_PARAM_SHADE_MASK) >> SQ_INTERPOLATOR_CNTL_PARAM_SHADE_SHIFT)
+#define SQ_INTERPOLATOR_CNTL_GET_SAMPLING_PATTERN(sq_interpolator_cntl) \
+ ((sq_interpolator_cntl & SQ_INTERPOLATOR_CNTL_SAMPLING_PATTERN_MASK) >> SQ_INTERPOLATOR_CNTL_SAMPLING_PATTERN_SHIFT)
+
+#define SQ_INTERPOLATOR_CNTL_SET_PARAM_SHADE(sq_interpolator_cntl_reg, param_shade) \
+ sq_interpolator_cntl_reg = (sq_interpolator_cntl_reg & ~SQ_INTERPOLATOR_CNTL_PARAM_SHADE_MASK) | (param_shade << SQ_INTERPOLATOR_CNTL_PARAM_SHADE_SHIFT)
+#define SQ_INTERPOLATOR_CNTL_SET_SAMPLING_PATTERN(sq_interpolator_cntl_reg, sampling_pattern) \
+ sq_interpolator_cntl_reg = (sq_interpolator_cntl_reg & ~SQ_INTERPOLATOR_CNTL_SAMPLING_PATTERN_MASK) | (sampling_pattern << SQ_INTERPOLATOR_CNTL_SAMPLING_PATTERN_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_interpolator_cntl_t {
+ unsigned int param_shade : SQ_INTERPOLATOR_CNTL_PARAM_SHADE_SIZE;
+ unsigned int sampling_pattern : SQ_INTERPOLATOR_CNTL_SAMPLING_PATTERN_SIZE;
+ } sq_interpolator_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_interpolator_cntl_t {
+ unsigned int sampling_pattern : SQ_INTERPOLATOR_CNTL_SAMPLING_PATTERN_SIZE;
+ unsigned int param_shade : SQ_INTERPOLATOR_CNTL_PARAM_SHADE_SIZE;
+ } sq_interpolator_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_interpolator_cntl_t f;
+} sq_interpolator_cntl_u;
+
+
+/*
+ * SQ_PROGRAM_CNTL struct
+ */
+
+#define SQ_PROGRAM_CNTL_VS_NUM_REG_SIZE 6
+#define SQ_PROGRAM_CNTL_PS_NUM_REG_SIZE 6
+#define SQ_PROGRAM_CNTL_VS_RESOURCE_SIZE 1
+#define SQ_PROGRAM_CNTL_PS_RESOURCE_SIZE 1
+#define SQ_PROGRAM_CNTL_PARAM_GEN_SIZE 1
+#define SQ_PROGRAM_CNTL_GEN_INDEX_PIX_SIZE 1
+#define SQ_PROGRAM_CNTL_VS_EXPORT_COUNT_SIZE 4
+#define SQ_PROGRAM_CNTL_VS_EXPORT_MODE_SIZE 3
+#define SQ_PROGRAM_CNTL_PS_EXPORT_MODE_SIZE 4
+#define SQ_PROGRAM_CNTL_GEN_INDEX_VTX_SIZE 1
+
+#define SQ_PROGRAM_CNTL_VS_NUM_REG_SHIFT 0
+#define SQ_PROGRAM_CNTL_PS_NUM_REG_SHIFT 8
+#define SQ_PROGRAM_CNTL_VS_RESOURCE_SHIFT 16
+#define SQ_PROGRAM_CNTL_PS_RESOURCE_SHIFT 17
+#define SQ_PROGRAM_CNTL_PARAM_GEN_SHIFT 18
+#define SQ_PROGRAM_CNTL_GEN_INDEX_PIX_SHIFT 19
+#define SQ_PROGRAM_CNTL_VS_EXPORT_COUNT_SHIFT 20
+#define SQ_PROGRAM_CNTL_VS_EXPORT_MODE_SHIFT 24
+#define SQ_PROGRAM_CNTL_PS_EXPORT_MODE_SHIFT 27
+#define SQ_PROGRAM_CNTL_GEN_INDEX_VTX_SHIFT 31
+
+#define SQ_PROGRAM_CNTL_VS_NUM_REG_MASK 0x0000003f
+#define SQ_PROGRAM_CNTL_PS_NUM_REG_MASK 0x00003f00
+#define SQ_PROGRAM_CNTL_VS_RESOURCE_MASK 0x00010000
+#define SQ_PROGRAM_CNTL_PS_RESOURCE_MASK 0x00020000
+#define SQ_PROGRAM_CNTL_PARAM_GEN_MASK 0x00040000
+#define SQ_PROGRAM_CNTL_GEN_INDEX_PIX_MASK 0x00080000
+#define SQ_PROGRAM_CNTL_VS_EXPORT_COUNT_MASK 0x00f00000
+#define SQ_PROGRAM_CNTL_VS_EXPORT_MODE_MASK 0x07000000
+#define SQ_PROGRAM_CNTL_PS_EXPORT_MODE_MASK 0x78000000
+#define SQ_PROGRAM_CNTL_GEN_INDEX_VTX_MASK 0x80000000
+
+#define SQ_PROGRAM_CNTL_MASK \
+ (SQ_PROGRAM_CNTL_VS_NUM_REG_MASK | \
+ SQ_PROGRAM_CNTL_PS_NUM_REG_MASK | \
+ SQ_PROGRAM_CNTL_VS_RESOURCE_MASK | \
+ SQ_PROGRAM_CNTL_PS_RESOURCE_MASK | \
+ SQ_PROGRAM_CNTL_PARAM_GEN_MASK | \
+ SQ_PROGRAM_CNTL_GEN_INDEX_PIX_MASK | \
+ SQ_PROGRAM_CNTL_VS_EXPORT_COUNT_MASK | \
+ SQ_PROGRAM_CNTL_VS_EXPORT_MODE_MASK | \
+ SQ_PROGRAM_CNTL_PS_EXPORT_MODE_MASK | \
+ SQ_PROGRAM_CNTL_GEN_INDEX_VTX_MASK)
+
+#define SQ_PROGRAM_CNTL(vs_num_reg, ps_num_reg, vs_resource, ps_resource, param_gen, gen_index_pix, vs_export_count, vs_export_mode, ps_export_mode, gen_index_vtx) \
+ ((vs_num_reg << SQ_PROGRAM_CNTL_VS_NUM_REG_SHIFT) | \
+ (ps_num_reg << SQ_PROGRAM_CNTL_PS_NUM_REG_SHIFT) | \
+ (vs_resource << SQ_PROGRAM_CNTL_VS_RESOURCE_SHIFT) | \
+ (ps_resource << SQ_PROGRAM_CNTL_PS_RESOURCE_SHIFT) | \
+ (param_gen << SQ_PROGRAM_CNTL_PARAM_GEN_SHIFT) | \
+ (gen_index_pix << SQ_PROGRAM_CNTL_GEN_INDEX_PIX_SHIFT) | \
+ (vs_export_count << SQ_PROGRAM_CNTL_VS_EXPORT_COUNT_SHIFT) | \
+ (vs_export_mode << SQ_PROGRAM_CNTL_VS_EXPORT_MODE_SHIFT) | \
+ (ps_export_mode << SQ_PROGRAM_CNTL_PS_EXPORT_MODE_SHIFT) | \
+ (gen_index_vtx << SQ_PROGRAM_CNTL_GEN_INDEX_VTX_SHIFT))
+
+#define SQ_PROGRAM_CNTL_GET_VS_NUM_REG(sq_program_cntl) \
+ ((sq_program_cntl & SQ_PROGRAM_CNTL_VS_NUM_REG_MASK) >> SQ_PROGRAM_CNTL_VS_NUM_REG_SHIFT)
+#define SQ_PROGRAM_CNTL_GET_PS_NUM_REG(sq_program_cntl) \
+ ((sq_program_cntl & SQ_PROGRAM_CNTL_PS_NUM_REG_MASK) >> SQ_PROGRAM_CNTL_PS_NUM_REG_SHIFT)
+#define SQ_PROGRAM_CNTL_GET_VS_RESOURCE(sq_program_cntl) \
+ ((sq_program_cntl & SQ_PROGRAM_CNTL_VS_RESOURCE_MASK) >> SQ_PROGRAM_CNTL_VS_RESOURCE_SHIFT)
+#define SQ_PROGRAM_CNTL_GET_PS_RESOURCE(sq_program_cntl) \
+ ((sq_program_cntl & SQ_PROGRAM_CNTL_PS_RESOURCE_MASK) >> SQ_PROGRAM_CNTL_PS_RESOURCE_SHIFT)
+#define SQ_PROGRAM_CNTL_GET_PARAM_GEN(sq_program_cntl) \
+ ((sq_program_cntl & SQ_PROGRAM_CNTL_PARAM_GEN_MASK) >> SQ_PROGRAM_CNTL_PARAM_GEN_SHIFT)
+#define SQ_PROGRAM_CNTL_GET_GEN_INDEX_PIX(sq_program_cntl) \
+ ((sq_program_cntl & SQ_PROGRAM_CNTL_GEN_INDEX_PIX_MASK) >> SQ_PROGRAM_CNTL_GEN_INDEX_PIX_SHIFT)
+#define SQ_PROGRAM_CNTL_GET_VS_EXPORT_COUNT(sq_program_cntl) \
+ ((sq_program_cntl & SQ_PROGRAM_CNTL_VS_EXPORT_COUNT_MASK) >> SQ_PROGRAM_CNTL_VS_EXPORT_COUNT_SHIFT)
+#define SQ_PROGRAM_CNTL_GET_VS_EXPORT_MODE(sq_program_cntl) \
+ ((sq_program_cntl & SQ_PROGRAM_CNTL_VS_EXPORT_MODE_MASK) >> SQ_PROGRAM_CNTL_VS_EXPORT_MODE_SHIFT)
+#define SQ_PROGRAM_CNTL_GET_PS_EXPORT_MODE(sq_program_cntl) \
+ ((sq_program_cntl & SQ_PROGRAM_CNTL_PS_EXPORT_MODE_MASK) >> SQ_PROGRAM_CNTL_PS_EXPORT_MODE_SHIFT)
+#define SQ_PROGRAM_CNTL_GET_GEN_INDEX_VTX(sq_program_cntl) \
+ ((sq_program_cntl & SQ_PROGRAM_CNTL_GEN_INDEX_VTX_MASK) >> SQ_PROGRAM_CNTL_GEN_INDEX_VTX_SHIFT)
+
+#define SQ_PROGRAM_CNTL_SET_VS_NUM_REG(sq_program_cntl_reg, vs_num_reg) \
+ sq_program_cntl_reg = (sq_program_cntl_reg & ~SQ_PROGRAM_CNTL_VS_NUM_REG_MASK) | (vs_num_reg << SQ_PROGRAM_CNTL_VS_NUM_REG_SHIFT)
+#define SQ_PROGRAM_CNTL_SET_PS_NUM_REG(sq_program_cntl_reg, ps_num_reg) \
+ sq_program_cntl_reg = (sq_program_cntl_reg & ~SQ_PROGRAM_CNTL_PS_NUM_REG_MASK) | (ps_num_reg << SQ_PROGRAM_CNTL_PS_NUM_REG_SHIFT)
+#define SQ_PROGRAM_CNTL_SET_VS_RESOURCE(sq_program_cntl_reg, vs_resource) \
+ sq_program_cntl_reg = (sq_program_cntl_reg & ~SQ_PROGRAM_CNTL_VS_RESOURCE_MASK) | (vs_resource << SQ_PROGRAM_CNTL_VS_RESOURCE_SHIFT)
+#define SQ_PROGRAM_CNTL_SET_PS_RESOURCE(sq_program_cntl_reg, ps_resource) \
+ sq_program_cntl_reg = (sq_program_cntl_reg & ~SQ_PROGRAM_CNTL_PS_RESOURCE_MASK) | (ps_resource << SQ_PROGRAM_CNTL_PS_RESOURCE_SHIFT)
+#define SQ_PROGRAM_CNTL_SET_PARAM_GEN(sq_program_cntl_reg, param_gen) \
+ sq_program_cntl_reg = (sq_program_cntl_reg & ~SQ_PROGRAM_CNTL_PARAM_GEN_MASK) | (param_gen << SQ_PROGRAM_CNTL_PARAM_GEN_SHIFT)
+#define SQ_PROGRAM_CNTL_SET_GEN_INDEX_PIX(sq_program_cntl_reg, gen_index_pix) \
+ sq_program_cntl_reg = (sq_program_cntl_reg & ~SQ_PROGRAM_CNTL_GEN_INDEX_PIX_MASK) | (gen_index_pix << SQ_PROGRAM_CNTL_GEN_INDEX_PIX_SHIFT)
+#define SQ_PROGRAM_CNTL_SET_VS_EXPORT_COUNT(sq_program_cntl_reg, vs_export_count) \
+ sq_program_cntl_reg = (sq_program_cntl_reg & ~SQ_PROGRAM_CNTL_VS_EXPORT_COUNT_MASK) | (vs_export_count << SQ_PROGRAM_CNTL_VS_EXPORT_COUNT_SHIFT)
+#define SQ_PROGRAM_CNTL_SET_VS_EXPORT_MODE(sq_program_cntl_reg, vs_export_mode) \
+ sq_program_cntl_reg = (sq_program_cntl_reg & ~SQ_PROGRAM_CNTL_VS_EXPORT_MODE_MASK) | (vs_export_mode << SQ_PROGRAM_CNTL_VS_EXPORT_MODE_SHIFT)
+#define SQ_PROGRAM_CNTL_SET_PS_EXPORT_MODE(sq_program_cntl_reg, ps_export_mode) \
+ sq_program_cntl_reg = (sq_program_cntl_reg & ~SQ_PROGRAM_CNTL_PS_EXPORT_MODE_MASK) | (ps_export_mode << SQ_PROGRAM_CNTL_PS_EXPORT_MODE_SHIFT)
+#define SQ_PROGRAM_CNTL_SET_GEN_INDEX_VTX(sq_program_cntl_reg, gen_index_vtx) \
+ sq_program_cntl_reg = (sq_program_cntl_reg & ~SQ_PROGRAM_CNTL_GEN_INDEX_VTX_MASK) | (gen_index_vtx << SQ_PROGRAM_CNTL_GEN_INDEX_VTX_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_program_cntl_t {
+ unsigned int vs_num_reg : SQ_PROGRAM_CNTL_VS_NUM_REG_SIZE;
+ unsigned int : 2;
+ unsigned int ps_num_reg : SQ_PROGRAM_CNTL_PS_NUM_REG_SIZE;
+ unsigned int : 2;
+ unsigned int vs_resource : SQ_PROGRAM_CNTL_VS_RESOURCE_SIZE;
+ unsigned int ps_resource : SQ_PROGRAM_CNTL_PS_RESOURCE_SIZE;
+ unsigned int param_gen : SQ_PROGRAM_CNTL_PARAM_GEN_SIZE;
+ unsigned int gen_index_pix : SQ_PROGRAM_CNTL_GEN_INDEX_PIX_SIZE;
+ unsigned int vs_export_count : SQ_PROGRAM_CNTL_VS_EXPORT_COUNT_SIZE;
+ unsigned int vs_export_mode : SQ_PROGRAM_CNTL_VS_EXPORT_MODE_SIZE;
+ unsigned int ps_export_mode : SQ_PROGRAM_CNTL_PS_EXPORT_MODE_SIZE;
+ unsigned int gen_index_vtx : SQ_PROGRAM_CNTL_GEN_INDEX_VTX_SIZE;
+ } sq_program_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_program_cntl_t {
+ unsigned int gen_index_vtx : SQ_PROGRAM_CNTL_GEN_INDEX_VTX_SIZE;
+ unsigned int ps_export_mode : SQ_PROGRAM_CNTL_PS_EXPORT_MODE_SIZE;
+ unsigned int vs_export_mode : SQ_PROGRAM_CNTL_VS_EXPORT_MODE_SIZE;
+ unsigned int vs_export_count : SQ_PROGRAM_CNTL_VS_EXPORT_COUNT_SIZE;
+ unsigned int gen_index_pix : SQ_PROGRAM_CNTL_GEN_INDEX_PIX_SIZE;
+ unsigned int param_gen : SQ_PROGRAM_CNTL_PARAM_GEN_SIZE;
+ unsigned int ps_resource : SQ_PROGRAM_CNTL_PS_RESOURCE_SIZE;
+ unsigned int vs_resource : SQ_PROGRAM_CNTL_VS_RESOURCE_SIZE;
+ unsigned int : 2;
+ unsigned int ps_num_reg : SQ_PROGRAM_CNTL_PS_NUM_REG_SIZE;
+ unsigned int : 2;
+ unsigned int vs_num_reg : SQ_PROGRAM_CNTL_VS_NUM_REG_SIZE;
+ } sq_program_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_program_cntl_t f;
+} sq_program_cntl_u;
+
+
+/*
+ * SQ_WRAPPING_0 struct
+ */
+
+#define SQ_WRAPPING_0_PARAM_WRAP_0_SIZE 4
+#define SQ_WRAPPING_0_PARAM_WRAP_1_SIZE 4
+#define SQ_WRAPPING_0_PARAM_WRAP_2_SIZE 4
+#define SQ_WRAPPING_0_PARAM_WRAP_3_SIZE 4
+#define SQ_WRAPPING_0_PARAM_WRAP_4_SIZE 4
+#define SQ_WRAPPING_0_PARAM_WRAP_5_SIZE 4
+#define SQ_WRAPPING_0_PARAM_WRAP_6_SIZE 4
+#define SQ_WRAPPING_0_PARAM_WRAP_7_SIZE 4
+
+#define SQ_WRAPPING_0_PARAM_WRAP_0_SHIFT 0
+#define SQ_WRAPPING_0_PARAM_WRAP_1_SHIFT 4
+#define SQ_WRAPPING_0_PARAM_WRAP_2_SHIFT 8
+#define SQ_WRAPPING_0_PARAM_WRAP_3_SHIFT 12
+#define SQ_WRAPPING_0_PARAM_WRAP_4_SHIFT 16
+#define SQ_WRAPPING_0_PARAM_WRAP_5_SHIFT 20
+#define SQ_WRAPPING_0_PARAM_WRAP_6_SHIFT 24
+#define SQ_WRAPPING_0_PARAM_WRAP_7_SHIFT 28
+
+#define SQ_WRAPPING_0_PARAM_WRAP_0_MASK 0x0000000f
+#define SQ_WRAPPING_0_PARAM_WRAP_1_MASK 0x000000f0
+#define SQ_WRAPPING_0_PARAM_WRAP_2_MASK 0x00000f00
+#define SQ_WRAPPING_0_PARAM_WRAP_3_MASK 0x0000f000
+#define SQ_WRAPPING_0_PARAM_WRAP_4_MASK 0x000f0000
+#define SQ_WRAPPING_0_PARAM_WRAP_5_MASK 0x00f00000
+#define SQ_WRAPPING_0_PARAM_WRAP_6_MASK 0x0f000000
+#define SQ_WRAPPING_0_PARAM_WRAP_7_MASK 0xf0000000
+
+#define SQ_WRAPPING_0_MASK \
+ (SQ_WRAPPING_0_PARAM_WRAP_0_MASK | \
+ SQ_WRAPPING_0_PARAM_WRAP_1_MASK | \
+ SQ_WRAPPING_0_PARAM_WRAP_2_MASK | \
+ SQ_WRAPPING_0_PARAM_WRAP_3_MASK | \
+ SQ_WRAPPING_0_PARAM_WRAP_4_MASK | \
+ SQ_WRAPPING_0_PARAM_WRAP_5_MASK | \
+ SQ_WRAPPING_0_PARAM_WRAP_6_MASK | \
+ SQ_WRAPPING_0_PARAM_WRAP_7_MASK)
+
+#define SQ_WRAPPING_0(param_wrap_0, param_wrap_1, param_wrap_2, param_wrap_3, param_wrap_4, param_wrap_5, param_wrap_6, param_wrap_7) \
+ ((param_wrap_0 << SQ_WRAPPING_0_PARAM_WRAP_0_SHIFT) | \
+ (param_wrap_1 << SQ_WRAPPING_0_PARAM_WRAP_1_SHIFT) | \
+ (param_wrap_2 << SQ_WRAPPING_0_PARAM_WRAP_2_SHIFT) | \
+ (param_wrap_3 << SQ_WRAPPING_0_PARAM_WRAP_3_SHIFT) | \
+ (param_wrap_4 << SQ_WRAPPING_0_PARAM_WRAP_4_SHIFT) | \
+ (param_wrap_5 << SQ_WRAPPING_0_PARAM_WRAP_5_SHIFT) | \
+ (param_wrap_6 << SQ_WRAPPING_0_PARAM_WRAP_6_SHIFT) | \
+ (param_wrap_7 << SQ_WRAPPING_0_PARAM_WRAP_7_SHIFT))
+
+#define SQ_WRAPPING_0_GET_PARAM_WRAP_0(sq_wrapping_0) \
+ ((sq_wrapping_0 & SQ_WRAPPING_0_PARAM_WRAP_0_MASK) >> SQ_WRAPPING_0_PARAM_WRAP_0_SHIFT)
+#define SQ_WRAPPING_0_GET_PARAM_WRAP_1(sq_wrapping_0) \
+ ((sq_wrapping_0 & SQ_WRAPPING_0_PARAM_WRAP_1_MASK) >> SQ_WRAPPING_0_PARAM_WRAP_1_SHIFT)
+#define SQ_WRAPPING_0_GET_PARAM_WRAP_2(sq_wrapping_0) \
+ ((sq_wrapping_0 & SQ_WRAPPING_0_PARAM_WRAP_2_MASK) >> SQ_WRAPPING_0_PARAM_WRAP_2_SHIFT)
+#define SQ_WRAPPING_0_GET_PARAM_WRAP_3(sq_wrapping_0) \
+ ((sq_wrapping_0 & SQ_WRAPPING_0_PARAM_WRAP_3_MASK) >> SQ_WRAPPING_0_PARAM_WRAP_3_SHIFT)
+#define SQ_WRAPPING_0_GET_PARAM_WRAP_4(sq_wrapping_0) \
+ ((sq_wrapping_0 & SQ_WRAPPING_0_PARAM_WRAP_4_MASK) >> SQ_WRAPPING_0_PARAM_WRAP_4_SHIFT)
+#define SQ_WRAPPING_0_GET_PARAM_WRAP_5(sq_wrapping_0) \
+ ((sq_wrapping_0 & SQ_WRAPPING_0_PARAM_WRAP_5_MASK) >> SQ_WRAPPING_0_PARAM_WRAP_5_SHIFT)
+#define SQ_WRAPPING_0_GET_PARAM_WRAP_6(sq_wrapping_0) \
+ ((sq_wrapping_0 & SQ_WRAPPING_0_PARAM_WRAP_6_MASK) >> SQ_WRAPPING_0_PARAM_WRAP_6_SHIFT)
+#define SQ_WRAPPING_0_GET_PARAM_WRAP_7(sq_wrapping_0) \
+ ((sq_wrapping_0 & SQ_WRAPPING_0_PARAM_WRAP_7_MASK) >> SQ_WRAPPING_0_PARAM_WRAP_7_SHIFT)
+
+#define SQ_WRAPPING_0_SET_PARAM_WRAP_0(sq_wrapping_0_reg, param_wrap_0) \
+ sq_wrapping_0_reg = (sq_wrapping_0_reg & ~SQ_WRAPPING_0_PARAM_WRAP_0_MASK) | (param_wrap_0 << SQ_WRAPPING_0_PARAM_WRAP_0_SHIFT)
+#define SQ_WRAPPING_0_SET_PARAM_WRAP_1(sq_wrapping_0_reg, param_wrap_1) \
+ sq_wrapping_0_reg = (sq_wrapping_0_reg & ~SQ_WRAPPING_0_PARAM_WRAP_1_MASK) | (param_wrap_1 << SQ_WRAPPING_0_PARAM_WRAP_1_SHIFT)
+#define SQ_WRAPPING_0_SET_PARAM_WRAP_2(sq_wrapping_0_reg, param_wrap_2) \
+ sq_wrapping_0_reg = (sq_wrapping_0_reg & ~SQ_WRAPPING_0_PARAM_WRAP_2_MASK) | (param_wrap_2 << SQ_WRAPPING_0_PARAM_WRAP_2_SHIFT)
+#define SQ_WRAPPING_0_SET_PARAM_WRAP_3(sq_wrapping_0_reg, param_wrap_3) \
+ sq_wrapping_0_reg = (sq_wrapping_0_reg & ~SQ_WRAPPING_0_PARAM_WRAP_3_MASK) | (param_wrap_3 << SQ_WRAPPING_0_PARAM_WRAP_3_SHIFT)
+#define SQ_WRAPPING_0_SET_PARAM_WRAP_4(sq_wrapping_0_reg, param_wrap_4) \
+ sq_wrapping_0_reg = (sq_wrapping_0_reg & ~SQ_WRAPPING_0_PARAM_WRAP_4_MASK) | (param_wrap_4 << SQ_WRAPPING_0_PARAM_WRAP_4_SHIFT)
+#define SQ_WRAPPING_0_SET_PARAM_WRAP_5(sq_wrapping_0_reg, param_wrap_5) \
+ sq_wrapping_0_reg = (sq_wrapping_0_reg & ~SQ_WRAPPING_0_PARAM_WRAP_5_MASK) | (param_wrap_5 << SQ_WRAPPING_0_PARAM_WRAP_5_SHIFT)
+#define SQ_WRAPPING_0_SET_PARAM_WRAP_6(sq_wrapping_0_reg, param_wrap_6) \
+ sq_wrapping_0_reg = (sq_wrapping_0_reg & ~SQ_WRAPPING_0_PARAM_WRAP_6_MASK) | (param_wrap_6 << SQ_WRAPPING_0_PARAM_WRAP_6_SHIFT)
+#define SQ_WRAPPING_0_SET_PARAM_WRAP_7(sq_wrapping_0_reg, param_wrap_7) \
+ sq_wrapping_0_reg = (sq_wrapping_0_reg & ~SQ_WRAPPING_0_PARAM_WRAP_7_MASK) | (param_wrap_7 << SQ_WRAPPING_0_PARAM_WRAP_7_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_wrapping_0_t {
+ unsigned int param_wrap_0 : SQ_WRAPPING_0_PARAM_WRAP_0_SIZE;
+ unsigned int param_wrap_1 : SQ_WRAPPING_0_PARAM_WRAP_1_SIZE;
+ unsigned int param_wrap_2 : SQ_WRAPPING_0_PARAM_WRAP_2_SIZE;
+ unsigned int param_wrap_3 : SQ_WRAPPING_0_PARAM_WRAP_3_SIZE;
+ unsigned int param_wrap_4 : SQ_WRAPPING_0_PARAM_WRAP_4_SIZE;
+ unsigned int param_wrap_5 : SQ_WRAPPING_0_PARAM_WRAP_5_SIZE;
+ unsigned int param_wrap_6 : SQ_WRAPPING_0_PARAM_WRAP_6_SIZE;
+ unsigned int param_wrap_7 : SQ_WRAPPING_0_PARAM_WRAP_7_SIZE;
+ } sq_wrapping_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_wrapping_0_t {
+ unsigned int param_wrap_7 : SQ_WRAPPING_0_PARAM_WRAP_7_SIZE;
+ unsigned int param_wrap_6 : SQ_WRAPPING_0_PARAM_WRAP_6_SIZE;
+ unsigned int param_wrap_5 : SQ_WRAPPING_0_PARAM_WRAP_5_SIZE;
+ unsigned int param_wrap_4 : SQ_WRAPPING_0_PARAM_WRAP_4_SIZE;
+ unsigned int param_wrap_3 : SQ_WRAPPING_0_PARAM_WRAP_3_SIZE;
+ unsigned int param_wrap_2 : SQ_WRAPPING_0_PARAM_WRAP_2_SIZE;
+ unsigned int param_wrap_1 : SQ_WRAPPING_0_PARAM_WRAP_1_SIZE;
+ unsigned int param_wrap_0 : SQ_WRAPPING_0_PARAM_WRAP_0_SIZE;
+ } sq_wrapping_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_wrapping_0_t f;
+} sq_wrapping_0_u;
+
+
+/*
+ * SQ_WRAPPING_1 struct
+ */
+
+#define SQ_WRAPPING_1_PARAM_WRAP_8_SIZE 4
+#define SQ_WRAPPING_1_PARAM_WRAP_9_SIZE 4
+#define SQ_WRAPPING_1_PARAM_WRAP_10_SIZE 4
+#define SQ_WRAPPING_1_PARAM_WRAP_11_SIZE 4
+#define SQ_WRAPPING_1_PARAM_WRAP_12_SIZE 4
+#define SQ_WRAPPING_1_PARAM_WRAP_13_SIZE 4
+#define SQ_WRAPPING_1_PARAM_WRAP_14_SIZE 4
+#define SQ_WRAPPING_1_PARAM_WRAP_15_SIZE 4
+
+#define SQ_WRAPPING_1_PARAM_WRAP_8_SHIFT 0
+#define SQ_WRAPPING_1_PARAM_WRAP_9_SHIFT 4
+#define SQ_WRAPPING_1_PARAM_WRAP_10_SHIFT 8
+#define SQ_WRAPPING_1_PARAM_WRAP_11_SHIFT 12
+#define SQ_WRAPPING_1_PARAM_WRAP_12_SHIFT 16
+#define SQ_WRAPPING_1_PARAM_WRAP_13_SHIFT 20
+#define SQ_WRAPPING_1_PARAM_WRAP_14_SHIFT 24
+#define SQ_WRAPPING_1_PARAM_WRAP_15_SHIFT 28
+
+#define SQ_WRAPPING_1_PARAM_WRAP_8_MASK 0x0000000f
+#define SQ_WRAPPING_1_PARAM_WRAP_9_MASK 0x000000f0
+#define SQ_WRAPPING_1_PARAM_WRAP_10_MASK 0x00000f00
+#define SQ_WRAPPING_1_PARAM_WRAP_11_MASK 0x0000f000
+#define SQ_WRAPPING_1_PARAM_WRAP_12_MASK 0x000f0000
+#define SQ_WRAPPING_1_PARAM_WRAP_13_MASK 0x00f00000
+#define SQ_WRAPPING_1_PARAM_WRAP_14_MASK 0x0f000000
+#define SQ_WRAPPING_1_PARAM_WRAP_15_MASK 0xf0000000
+
+#define SQ_WRAPPING_1_MASK \
+ (SQ_WRAPPING_1_PARAM_WRAP_8_MASK | \
+ SQ_WRAPPING_1_PARAM_WRAP_9_MASK | \
+ SQ_WRAPPING_1_PARAM_WRAP_10_MASK | \
+ SQ_WRAPPING_1_PARAM_WRAP_11_MASK | \
+ SQ_WRAPPING_1_PARAM_WRAP_12_MASK | \
+ SQ_WRAPPING_1_PARAM_WRAP_13_MASK | \
+ SQ_WRAPPING_1_PARAM_WRAP_14_MASK | \
+ SQ_WRAPPING_1_PARAM_WRAP_15_MASK)
+
+#define SQ_WRAPPING_1(param_wrap_8, param_wrap_9, param_wrap_10, param_wrap_11, param_wrap_12, param_wrap_13, param_wrap_14, param_wrap_15) \
+ ((param_wrap_8 << SQ_WRAPPING_1_PARAM_WRAP_8_SHIFT) | \
+ (param_wrap_9 << SQ_WRAPPING_1_PARAM_WRAP_9_SHIFT) | \
+ (param_wrap_10 << SQ_WRAPPING_1_PARAM_WRAP_10_SHIFT) | \
+ (param_wrap_11 << SQ_WRAPPING_1_PARAM_WRAP_11_SHIFT) | \
+ (param_wrap_12 << SQ_WRAPPING_1_PARAM_WRAP_12_SHIFT) | \
+ (param_wrap_13 << SQ_WRAPPING_1_PARAM_WRAP_13_SHIFT) | \
+ (param_wrap_14 << SQ_WRAPPING_1_PARAM_WRAP_14_SHIFT) | \
+ (param_wrap_15 << SQ_WRAPPING_1_PARAM_WRAP_15_SHIFT))
+
+#define SQ_WRAPPING_1_GET_PARAM_WRAP_8(sq_wrapping_1) \
+ ((sq_wrapping_1 & SQ_WRAPPING_1_PARAM_WRAP_8_MASK) >> SQ_WRAPPING_1_PARAM_WRAP_8_SHIFT)
+#define SQ_WRAPPING_1_GET_PARAM_WRAP_9(sq_wrapping_1) \
+ ((sq_wrapping_1 & SQ_WRAPPING_1_PARAM_WRAP_9_MASK) >> SQ_WRAPPING_1_PARAM_WRAP_9_SHIFT)
+#define SQ_WRAPPING_1_GET_PARAM_WRAP_10(sq_wrapping_1) \
+ ((sq_wrapping_1 & SQ_WRAPPING_1_PARAM_WRAP_10_MASK) >> SQ_WRAPPING_1_PARAM_WRAP_10_SHIFT)
+#define SQ_WRAPPING_1_GET_PARAM_WRAP_11(sq_wrapping_1) \
+ ((sq_wrapping_1 & SQ_WRAPPING_1_PARAM_WRAP_11_MASK) >> SQ_WRAPPING_1_PARAM_WRAP_11_SHIFT)
+#define SQ_WRAPPING_1_GET_PARAM_WRAP_12(sq_wrapping_1) \
+ ((sq_wrapping_1 & SQ_WRAPPING_1_PARAM_WRAP_12_MASK) >> SQ_WRAPPING_1_PARAM_WRAP_12_SHIFT)
+#define SQ_WRAPPING_1_GET_PARAM_WRAP_13(sq_wrapping_1) \
+ ((sq_wrapping_1 & SQ_WRAPPING_1_PARAM_WRAP_13_MASK) >> SQ_WRAPPING_1_PARAM_WRAP_13_SHIFT)
+#define SQ_WRAPPING_1_GET_PARAM_WRAP_14(sq_wrapping_1) \
+ ((sq_wrapping_1 & SQ_WRAPPING_1_PARAM_WRAP_14_MASK) >> SQ_WRAPPING_1_PARAM_WRAP_14_SHIFT)
+#define SQ_WRAPPING_1_GET_PARAM_WRAP_15(sq_wrapping_1) \
+ ((sq_wrapping_1 & SQ_WRAPPING_1_PARAM_WRAP_15_MASK) >> SQ_WRAPPING_1_PARAM_WRAP_15_SHIFT)
+
+#define SQ_WRAPPING_1_SET_PARAM_WRAP_8(sq_wrapping_1_reg, param_wrap_8) \
+ sq_wrapping_1_reg = (sq_wrapping_1_reg & ~SQ_WRAPPING_1_PARAM_WRAP_8_MASK) | (param_wrap_8 << SQ_WRAPPING_1_PARAM_WRAP_8_SHIFT)
+#define SQ_WRAPPING_1_SET_PARAM_WRAP_9(sq_wrapping_1_reg, param_wrap_9) \
+ sq_wrapping_1_reg = (sq_wrapping_1_reg & ~SQ_WRAPPING_1_PARAM_WRAP_9_MASK) | (param_wrap_9 << SQ_WRAPPING_1_PARAM_WRAP_9_SHIFT)
+#define SQ_WRAPPING_1_SET_PARAM_WRAP_10(sq_wrapping_1_reg, param_wrap_10) \
+ sq_wrapping_1_reg = (sq_wrapping_1_reg & ~SQ_WRAPPING_1_PARAM_WRAP_10_MASK) | (param_wrap_10 << SQ_WRAPPING_1_PARAM_WRAP_10_SHIFT)
+#define SQ_WRAPPING_1_SET_PARAM_WRAP_11(sq_wrapping_1_reg, param_wrap_11) \
+ sq_wrapping_1_reg = (sq_wrapping_1_reg & ~SQ_WRAPPING_1_PARAM_WRAP_11_MASK) | (param_wrap_11 << SQ_WRAPPING_1_PARAM_WRAP_11_SHIFT)
+#define SQ_WRAPPING_1_SET_PARAM_WRAP_12(sq_wrapping_1_reg, param_wrap_12) \
+ sq_wrapping_1_reg = (sq_wrapping_1_reg & ~SQ_WRAPPING_1_PARAM_WRAP_12_MASK) | (param_wrap_12 << SQ_WRAPPING_1_PARAM_WRAP_12_SHIFT)
+#define SQ_WRAPPING_1_SET_PARAM_WRAP_13(sq_wrapping_1_reg, param_wrap_13) \
+ sq_wrapping_1_reg = (sq_wrapping_1_reg & ~SQ_WRAPPING_1_PARAM_WRAP_13_MASK) | (param_wrap_13 << SQ_WRAPPING_1_PARAM_WRAP_13_SHIFT)
+#define SQ_WRAPPING_1_SET_PARAM_WRAP_14(sq_wrapping_1_reg, param_wrap_14) \
+ sq_wrapping_1_reg = (sq_wrapping_1_reg & ~SQ_WRAPPING_1_PARAM_WRAP_14_MASK) | (param_wrap_14 << SQ_WRAPPING_1_PARAM_WRAP_14_SHIFT)
+#define SQ_WRAPPING_1_SET_PARAM_WRAP_15(sq_wrapping_1_reg, param_wrap_15) \
+ sq_wrapping_1_reg = (sq_wrapping_1_reg & ~SQ_WRAPPING_1_PARAM_WRAP_15_MASK) | (param_wrap_15 << SQ_WRAPPING_1_PARAM_WRAP_15_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_wrapping_1_t {
+ unsigned int param_wrap_8 : SQ_WRAPPING_1_PARAM_WRAP_8_SIZE;
+ unsigned int param_wrap_9 : SQ_WRAPPING_1_PARAM_WRAP_9_SIZE;
+ unsigned int param_wrap_10 : SQ_WRAPPING_1_PARAM_WRAP_10_SIZE;
+ unsigned int param_wrap_11 : SQ_WRAPPING_1_PARAM_WRAP_11_SIZE;
+ unsigned int param_wrap_12 : SQ_WRAPPING_1_PARAM_WRAP_12_SIZE;
+ unsigned int param_wrap_13 : SQ_WRAPPING_1_PARAM_WRAP_13_SIZE;
+ unsigned int param_wrap_14 : SQ_WRAPPING_1_PARAM_WRAP_14_SIZE;
+ unsigned int param_wrap_15 : SQ_WRAPPING_1_PARAM_WRAP_15_SIZE;
+ } sq_wrapping_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_wrapping_1_t {
+ unsigned int param_wrap_15 : SQ_WRAPPING_1_PARAM_WRAP_15_SIZE;
+ unsigned int param_wrap_14 : SQ_WRAPPING_1_PARAM_WRAP_14_SIZE;
+ unsigned int param_wrap_13 : SQ_WRAPPING_1_PARAM_WRAP_13_SIZE;
+ unsigned int param_wrap_12 : SQ_WRAPPING_1_PARAM_WRAP_12_SIZE;
+ unsigned int param_wrap_11 : SQ_WRAPPING_1_PARAM_WRAP_11_SIZE;
+ unsigned int param_wrap_10 : SQ_WRAPPING_1_PARAM_WRAP_10_SIZE;
+ unsigned int param_wrap_9 : SQ_WRAPPING_1_PARAM_WRAP_9_SIZE;
+ unsigned int param_wrap_8 : SQ_WRAPPING_1_PARAM_WRAP_8_SIZE;
+ } sq_wrapping_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_wrapping_1_t f;
+} sq_wrapping_1_u;
+
+
+/*
+ * SQ_VS_CONST struct
+ */
+
+#define SQ_VS_CONST_BASE_SIZE 9
+#define SQ_VS_CONST_SIZE_SIZE 9
+
+#define SQ_VS_CONST_BASE_SHIFT 0
+#define SQ_VS_CONST_SIZE_SHIFT 12
+
+#define SQ_VS_CONST_BASE_MASK 0x000001ff
+#define SQ_VS_CONST_SIZE_MASK 0x001ff000
+
+#define SQ_VS_CONST_MASK \
+ (SQ_VS_CONST_BASE_MASK | \
+ SQ_VS_CONST_SIZE_MASK)
+
+#define SQ_VS_CONST(base, size) \
+ ((base << SQ_VS_CONST_BASE_SHIFT) | \
+ (size << SQ_VS_CONST_SIZE_SHIFT))
+
+#define SQ_VS_CONST_GET_BASE(sq_vs_const) \
+ ((sq_vs_const & SQ_VS_CONST_BASE_MASK) >> SQ_VS_CONST_BASE_SHIFT)
+#define SQ_VS_CONST_GET_SIZE(sq_vs_const) \
+ ((sq_vs_const & SQ_VS_CONST_SIZE_MASK) >> SQ_VS_CONST_SIZE_SHIFT)
+
+#define SQ_VS_CONST_SET_BASE(sq_vs_const_reg, base) \
+ sq_vs_const_reg = (sq_vs_const_reg & ~SQ_VS_CONST_BASE_MASK) | (base << SQ_VS_CONST_BASE_SHIFT)
+#define SQ_VS_CONST_SET_SIZE(sq_vs_const_reg, size) \
+ sq_vs_const_reg = (sq_vs_const_reg & ~SQ_VS_CONST_SIZE_MASK) | (size << SQ_VS_CONST_SIZE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_vs_const_t {
+ unsigned int base : SQ_VS_CONST_BASE_SIZE;
+ unsigned int : 3;
+ unsigned int size : SQ_VS_CONST_SIZE_SIZE;
+ unsigned int : 11;
+ } sq_vs_const_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_vs_const_t {
+ unsigned int : 11;
+ unsigned int size : SQ_VS_CONST_SIZE_SIZE;
+ unsigned int : 3;
+ unsigned int base : SQ_VS_CONST_BASE_SIZE;
+ } sq_vs_const_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_vs_const_t f;
+} sq_vs_const_u;
+
+
+/*
+ * SQ_PS_CONST struct
+ */
+
+#define SQ_PS_CONST_BASE_SIZE 9
+#define SQ_PS_CONST_SIZE_SIZE 9
+
+#define SQ_PS_CONST_BASE_SHIFT 0
+#define SQ_PS_CONST_SIZE_SHIFT 12
+
+#define SQ_PS_CONST_BASE_MASK 0x000001ff
+#define SQ_PS_CONST_SIZE_MASK 0x001ff000
+
+#define SQ_PS_CONST_MASK \
+ (SQ_PS_CONST_BASE_MASK | \
+ SQ_PS_CONST_SIZE_MASK)
+
+#define SQ_PS_CONST(base, size) \
+ ((base << SQ_PS_CONST_BASE_SHIFT) | \
+ (size << SQ_PS_CONST_SIZE_SHIFT))
+
+#define SQ_PS_CONST_GET_BASE(sq_ps_const) \
+ ((sq_ps_const & SQ_PS_CONST_BASE_MASK) >> SQ_PS_CONST_BASE_SHIFT)
+#define SQ_PS_CONST_GET_SIZE(sq_ps_const) \
+ ((sq_ps_const & SQ_PS_CONST_SIZE_MASK) >> SQ_PS_CONST_SIZE_SHIFT)
+
+#define SQ_PS_CONST_SET_BASE(sq_ps_const_reg, base) \
+ sq_ps_const_reg = (sq_ps_const_reg & ~SQ_PS_CONST_BASE_MASK) | (base << SQ_PS_CONST_BASE_SHIFT)
+#define SQ_PS_CONST_SET_SIZE(sq_ps_const_reg, size) \
+ sq_ps_const_reg = (sq_ps_const_reg & ~SQ_PS_CONST_SIZE_MASK) | (size << SQ_PS_CONST_SIZE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_ps_const_t {
+ unsigned int base : SQ_PS_CONST_BASE_SIZE;
+ unsigned int : 3;
+ unsigned int size : SQ_PS_CONST_SIZE_SIZE;
+ unsigned int : 11;
+ } sq_ps_const_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_ps_const_t {
+ unsigned int : 11;
+ unsigned int size : SQ_PS_CONST_SIZE_SIZE;
+ unsigned int : 3;
+ unsigned int base : SQ_PS_CONST_BASE_SIZE;
+ } sq_ps_const_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_ps_const_t f;
+} sq_ps_const_u;
+
+
+/*
+ * SQ_CONTEXT_MISC struct
+ */
+
+#define SQ_CONTEXT_MISC_INST_PRED_OPTIMIZE_SIZE 1
+#define SQ_CONTEXT_MISC_SC_OUTPUT_SCREEN_XY_SIZE 1
+#define SQ_CONTEXT_MISC_SC_SAMPLE_CNTL_SIZE 2
+#define SQ_CONTEXT_MISC_PARAM_GEN_POS_SIZE 8
+#define SQ_CONTEXT_MISC_PERFCOUNTER_REF_SIZE 1
+#define SQ_CONTEXT_MISC_YEILD_OPTIMIZE_SIZE 1
+#define SQ_CONTEXT_MISC_TX_CACHE_SEL_SIZE 1
+
+#define SQ_CONTEXT_MISC_INST_PRED_OPTIMIZE_SHIFT 0
+#define SQ_CONTEXT_MISC_SC_OUTPUT_SCREEN_XY_SHIFT 1
+#define SQ_CONTEXT_MISC_SC_SAMPLE_CNTL_SHIFT 2
+#define SQ_CONTEXT_MISC_PARAM_GEN_POS_SHIFT 8
+#define SQ_CONTEXT_MISC_PERFCOUNTER_REF_SHIFT 16
+#define SQ_CONTEXT_MISC_YEILD_OPTIMIZE_SHIFT 17
+#define SQ_CONTEXT_MISC_TX_CACHE_SEL_SHIFT 18
+
+#define SQ_CONTEXT_MISC_INST_PRED_OPTIMIZE_MASK 0x00000001
+#define SQ_CONTEXT_MISC_SC_OUTPUT_SCREEN_XY_MASK 0x00000002
+#define SQ_CONTEXT_MISC_SC_SAMPLE_CNTL_MASK 0x0000000c
+#define SQ_CONTEXT_MISC_PARAM_GEN_POS_MASK 0x0000ff00
+#define SQ_CONTEXT_MISC_PERFCOUNTER_REF_MASK 0x00010000
+#define SQ_CONTEXT_MISC_YEILD_OPTIMIZE_MASK 0x00020000
+#define SQ_CONTEXT_MISC_TX_CACHE_SEL_MASK 0x00040000
+
+#define SQ_CONTEXT_MISC_MASK \
+ (SQ_CONTEXT_MISC_INST_PRED_OPTIMIZE_MASK | \
+ SQ_CONTEXT_MISC_SC_OUTPUT_SCREEN_XY_MASK | \
+ SQ_CONTEXT_MISC_SC_SAMPLE_CNTL_MASK | \
+ SQ_CONTEXT_MISC_PARAM_GEN_POS_MASK | \
+ SQ_CONTEXT_MISC_PERFCOUNTER_REF_MASK | \
+ SQ_CONTEXT_MISC_YEILD_OPTIMIZE_MASK | \
+ SQ_CONTEXT_MISC_TX_CACHE_SEL_MASK)
+
+#define SQ_CONTEXT_MISC(inst_pred_optimize, sc_output_screen_xy, sc_sample_cntl, param_gen_pos, perfcounter_ref, yeild_optimize, tx_cache_sel) \
+ ((inst_pred_optimize << SQ_CONTEXT_MISC_INST_PRED_OPTIMIZE_SHIFT) | \
+ (sc_output_screen_xy << SQ_CONTEXT_MISC_SC_OUTPUT_SCREEN_XY_SHIFT) | \
+ (sc_sample_cntl << SQ_CONTEXT_MISC_SC_SAMPLE_CNTL_SHIFT) | \
+ (param_gen_pos << SQ_CONTEXT_MISC_PARAM_GEN_POS_SHIFT) | \
+ (perfcounter_ref << SQ_CONTEXT_MISC_PERFCOUNTER_REF_SHIFT) | \
+ (yeild_optimize << SQ_CONTEXT_MISC_YEILD_OPTIMIZE_SHIFT) | \
+ (tx_cache_sel << SQ_CONTEXT_MISC_TX_CACHE_SEL_SHIFT))
+
+#define SQ_CONTEXT_MISC_GET_INST_PRED_OPTIMIZE(sq_context_misc) \
+ ((sq_context_misc & SQ_CONTEXT_MISC_INST_PRED_OPTIMIZE_MASK) >> SQ_CONTEXT_MISC_INST_PRED_OPTIMIZE_SHIFT)
+#define SQ_CONTEXT_MISC_GET_SC_OUTPUT_SCREEN_XY(sq_context_misc) \
+ ((sq_context_misc & SQ_CONTEXT_MISC_SC_OUTPUT_SCREEN_XY_MASK) >> SQ_CONTEXT_MISC_SC_OUTPUT_SCREEN_XY_SHIFT)
+#define SQ_CONTEXT_MISC_GET_SC_SAMPLE_CNTL(sq_context_misc) \
+ ((sq_context_misc & SQ_CONTEXT_MISC_SC_SAMPLE_CNTL_MASK) >> SQ_CONTEXT_MISC_SC_SAMPLE_CNTL_SHIFT)
+#define SQ_CONTEXT_MISC_GET_PARAM_GEN_POS(sq_context_misc) \
+ ((sq_context_misc & SQ_CONTEXT_MISC_PARAM_GEN_POS_MASK) >> SQ_CONTEXT_MISC_PARAM_GEN_POS_SHIFT)
+#define SQ_CONTEXT_MISC_GET_PERFCOUNTER_REF(sq_context_misc) \
+ ((sq_context_misc & SQ_CONTEXT_MISC_PERFCOUNTER_REF_MASK) >> SQ_CONTEXT_MISC_PERFCOUNTER_REF_SHIFT)
+#define SQ_CONTEXT_MISC_GET_YEILD_OPTIMIZE(sq_context_misc) \
+ ((sq_context_misc & SQ_CONTEXT_MISC_YEILD_OPTIMIZE_MASK) >> SQ_CONTEXT_MISC_YEILD_OPTIMIZE_SHIFT)
+#define SQ_CONTEXT_MISC_GET_TX_CACHE_SEL(sq_context_misc) \
+ ((sq_context_misc & SQ_CONTEXT_MISC_TX_CACHE_SEL_MASK) >> SQ_CONTEXT_MISC_TX_CACHE_SEL_SHIFT)
+
+#define SQ_CONTEXT_MISC_SET_INST_PRED_OPTIMIZE(sq_context_misc_reg, inst_pred_optimize) \
+ sq_context_misc_reg = (sq_context_misc_reg & ~SQ_CONTEXT_MISC_INST_PRED_OPTIMIZE_MASK) | (inst_pred_optimize << SQ_CONTEXT_MISC_INST_PRED_OPTIMIZE_SHIFT)
+#define SQ_CONTEXT_MISC_SET_SC_OUTPUT_SCREEN_XY(sq_context_misc_reg, sc_output_screen_xy) \
+ sq_context_misc_reg = (sq_context_misc_reg & ~SQ_CONTEXT_MISC_SC_OUTPUT_SCREEN_XY_MASK) | (sc_output_screen_xy << SQ_CONTEXT_MISC_SC_OUTPUT_SCREEN_XY_SHIFT)
+#define SQ_CONTEXT_MISC_SET_SC_SAMPLE_CNTL(sq_context_misc_reg, sc_sample_cntl) \
+ sq_context_misc_reg = (sq_context_misc_reg & ~SQ_CONTEXT_MISC_SC_SAMPLE_CNTL_MASK) | (sc_sample_cntl << SQ_CONTEXT_MISC_SC_SAMPLE_CNTL_SHIFT)
+#define SQ_CONTEXT_MISC_SET_PARAM_GEN_POS(sq_context_misc_reg, param_gen_pos) \
+ sq_context_misc_reg = (sq_context_misc_reg & ~SQ_CONTEXT_MISC_PARAM_GEN_POS_MASK) | (param_gen_pos << SQ_CONTEXT_MISC_PARAM_GEN_POS_SHIFT)
+#define SQ_CONTEXT_MISC_SET_PERFCOUNTER_REF(sq_context_misc_reg, perfcounter_ref) \
+ sq_context_misc_reg = (sq_context_misc_reg & ~SQ_CONTEXT_MISC_PERFCOUNTER_REF_MASK) | (perfcounter_ref << SQ_CONTEXT_MISC_PERFCOUNTER_REF_SHIFT)
+#define SQ_CONTEXT_MISC_SET_YEILD_OPTIMIZE(sq_context_misc_reg, yeild_optimize) \
+ sq_context_misc_reg = (sq_context_misc_reg & ~SQ_CONTEXT_MISC_YEILD_OPTIMIZE_MASK) | (yeild_optimize << SQ_CONTEXT_MISC_YEILD_OPTIMIZE_SHIFT)
+#define SQ_CONTEXT_MISC_SET_TX_CACHE_SEL(sq_context_misc_reg, tx_cache_sel) \
+ sq_context_misc_reg = (sq_context_misc_reg & ~SQ_CONTEXT_MISC_TX_CACHE_SEL_MASK) | (tx_cache_sel << SQ_CONTEXT_MISC_TX_CACHE_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_context_misc_t {
+ unsigned int inst_pred_optimize : SQ_CONTEXT_MISC_INST_PRED_OPTIMIZE_SIZE;
+ unsigned int sc_output_screen_xy : SQ_CONTEXT_MISC_SC_OUTPUT_SCREEN_XY_SIZE;
+ unsigned int sc_sample_cntl : SQ_CONTEXT_MISC_SC_SAMPLE_CNTL_SIZE;
+ unsigned int : 4;
+ unsigned int param_gen_pos : SQ_CONTEXT_MISC_PARAM_GEN_POS_SIZE;
+ unsigned int perfcounter_ref : SQ_CONTEXT_MISC_PERFCOUNTER_REF_SIZE;
+ unsigned int yeild_optimize : SQ_CONTEXT_MISC_YEILD_OPTIMIZE_SIZE;
+ unsigned int tx_cache_sel : SQ_CONTEXT_MISC_TX_CACHE_SEL_SIZE;
+ unsigned int : 13;
+ } sq_context_misc_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_context_misc_t {
+ unsigned int : 13;
+ unsigned int tx_cache_sel : SQ_CONTEXT_MISC_TX_CACHE_SEL_SIZE;
+ unsigned int yeild_optimize : SQ_CONTEXT_MISC_YEILD_OPTIMIZE_SIZE;
+ unsigned int perfcounter_ref : SQ_CONTEXT_MISC_PERFCOUNTER_REF_SIZE;
+ unsigned int param_gen_pos : SQ_CONTEXT_MISC_PARAM_GEN_POS_SIZE;
+ unsigned int : 4;
+ unsigned int sc_sample_cntl : SQ_CONTEXT_MISC_SC_SAMPLE_CNTL_SIZE;
+ unsigned int sc_output_screen_xy : SQ_CONTEXT_MISC_SC_OUTPUT_SCREEN_XY_SIZE;
+ unsigned int inst_pred_optimize : SQ_CONTEXT_MISC_INST_PRED_OPTIMIZE_SIZE;
+ } sq_context_misc_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_context_misc_t f;
+} sq_context_misc_u;
+
+
+/*
+ * SQ_CF_RD_BASE struct
+ */
+
+#define SQ_CF_RD_BASE_RD_BASE_SIZE 3
+
+#define SQ_CF_RD_BASE_RD_BASE_SHIFT 0
+
+#define SQ_CF_RD_BASE_RD_BASE_MASK 0x00000007
+
+#define SQ_CF_RD_BASE_MASK \
+ (SQ_CF_RD_BASE_RD_BASE_MASK)
+
+#define SQ_CF_RD_BASE(rd_base) \
+ ((rd_base << SQ_CF_RD_BASE_RD_BASE_SHIFT))
+
+#define SQ_CF_RD_BASE_GET_RD_BASE(sq_cf_rd_base) \
+ ((sq_cf_rd_base & SQ_CF_RD_BASE_RD_BASE_MASK) >> SQ_CF_RD_BASE_RD_BASE_SHIFT)
+
+#define SQ_CF_RD_BASE_SET_RD_BASE(sq_cf_rd_base_reg, rd_base) \
+ sq_cf_rd_base_reg = (sq_cf_rd_base_reg & ~SQ_CF_RD_BASE_RD_BASE_MASK) | (rd_base << SQ_CF_RD_BASE_RD_BASE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_cf_rd_base_t {
+ unsigned int rd_base : SQ_CF_RD_BASE_RD_BASE_SIZE;
+ unsigned int : 29;
+ } sq_cf_rd_base_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_cf_rd_base_t {
+ unsigned int : 29;
+ unsigned int rd_base : SQ_CF_RD_BASE_RD_BASE_SIZE;
+ } sq_cf_rd_base_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_cf_rd_base_t f;
+} sq_cf_rd_base_u;
+
+
+/*
+ * SQ_DEBUG_MISC_0 struct
+ */
+
+#define SQ_DEBUG_MISC_0_DB_PROB_ON_SIZE 1
+#define SQ_DEBUG_MISC_0_DB_PROB_BREAK_SIZE 1
+#define SQ_DEBUG_MISC_0_DB_PROB_ADDR_SIZE 11
+#define SQ_DEBUG_MISC_0_DB_PROB_COUNT_SIZE 8
+
+#define SQ_DEBUG_MISC_0_DB_PROB_ON_SHIFT 0
+#define SQ_DEBUG_MISC_0_DB_PROB_BREAK_SHIFT 4
+#define SQ_DEBUG_MISC_0_DB_PROB_ADDR_SHIFT 8
+#define SQ_DEBUG_MISC_0_DB_PROB_COUNT_SHIFT 24
+
+#define SQ_DEBUG_MISC_0_DB_PROB_ON_MASK 0x00000001
+#define SQ_DEBUG_MISC_0_DB_PROB_BREAK_MASK 0x00000010
+#define SQ_DEBUG_MISC_0_DB_PROB_ADDR_MASK 0x0007ff00
+#define SQ_DEBUG_MISC_0_DB_PROB_COUNT_MASK 0xff000000
+
+#define SQ_DEBUG_MISC_0_MASK \
+ (SQ_DEBUG_MISC_0_DB_PROB_ON_MASK | \
+ SQ_DEBUG_MISC_0_DB_PROB_BREAK_MASK | \
+ SQ_DEBUG_MISC_0_DB_PROB_ADDR_MASK | \
+ SQ_DEBUG_MISC_0_DB_PROB_COUNT_MASK)
+
+#define SQ_DEBUG_MISC_0(db_prob_on, db_prob_break, db_prob_addr, db_prob_count) \
+ ((db_prob_on << SQ_DEBUG_MISC_0_DB_PROB_ON_SHIFT) | \
+ (db_prob_break << SQ_DEBUG_MISC_0_DB_PROB_BREAK_SHIFT) | \
+ (db_prob_addr << SQ_DEBUG_MISC_0_DB_PROB_ADDR_SHIFT) | \
+ (db_prob_count << SQ_DEBUG_MISC_0_DB_PROB_COUNT_SHIFT))
+
+#define SQ_DEBUG_MISC_0_GET_DB_PROB_ON(sq_debug_misc_0) \
+ ((sq_debug_misc_0 & SQ_DEBUG_MISC_0_DB_PROB_ON_MASK) >> SQ_DEBUG_MISC_0_DB_PROB_ON_SHIFT)
+#define SQ_DEBUG_MISC_0_GET_DB_PROB_BREAK(sq_debug_misc_0) \
+ ((sq_debug_misc_0 & SQ_DEBUG_MISC_0_DB_PROB_BREAK_MASK) >> SQ_DEBUG_MISC_0_DB_PROB_BREAK_SHIFT)
+#define SQ_DEBUG_MISC_0_GET_DB_PROB_ADDR(sq_debug_misc_0) \
+ ((sq_debug_misc_0 & SQ_DEBUG_MISC_0_DB_PROB_ADDR_MASK) >> SQ_DEBUG_MISC_0_DB_PROB_ADDR_SHIFT)
+#define SQ_DEBUG_MISC_0_GET_DB_PROB_COUNT(sq_debug_misc_0) \
+ ((sq_debug_misc_0 & SQ_DEBUG_MISC_0_DB_PROB_COUNT_MASK) >> SQ_DEBUG_MISC_0_DB_PROB_COUNT_SHIFT)
+
+#define SQ_DEBUG_MISC_0_SET_DB_PROB_ON(sq_debug_misc_0_reg, db_prob_on) \
+ sq_debug_misc_0_reg = (sq_debug_misc_0_reg & ~SQ_DEBUG_MISC_0_DB_PROB_ON_MASK) | (db_prob_on << SQ_DEBUG_MISC_0_DB_PROB_ON_SHIFT)
+#define SQ_DEBUG_MISC_0_SET_DB_PROB_BREAK(sq_debug_misc_0_reg, db_prob_break) \
+ sq_debug_misc_0_reg = (sq_debug_misc_0_reg & ~SQ_DEBUG_MISC_0_DB_PROB_BREAK_MASK) | (db_prob_break << SQ_DEBUG_MISC_0_DB_PROB_BREAK_SHIFT)
+#define SQ_DEBUG_MISC_0_SET_DB_PROB_ADDR(sq_debug_misc_0_reg, db_prob_addr) \
+ sq_debug_misc_0_reg = (sq_debug_misc_0_reg & ~SQ_DEBUG_MISC_0_DB_PROB_ADDR_MASK) | (db_prob_addr << SQ_DEBUG_MISC_0_DB_PROB_ADDR_SHIFT)
+#define SQ_DEBUG_MISC_0_SET_DB_PROB_COUNT(sq_debug_misc_0_reg, db_prob_count) \
+ sq_debug_misc_0_reg = (sq_debug_misc_0_reg & ~SQ_DEBUG_MISC_0_DB_PROB_COUNT_MASK) | (db_prob_count << SQ_DEBUG_MISC_0_DB_PROB_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_misc_0_t {
+ unsigned int db_prob_on : SQ_DEBUG_MISC_0_DB_PROB_ON_SIZE;
+ unsigned int : 3;
+ unsigned int db_prob_break : SQ_DEBUG_MISC_0_DB_PROB_BREAK_SIZE;
+ unsigned int : 3;
+ unsigned int db_prob_addr : SQ_DEBUG_MISC_0_DB_PROB_ADDR_SIZE;
+ unsigned int : 5;
+ unsigned int db_prob_count : SQ_DEBUG_MISC_0_DB_PROB_COUNT_SIZE;
+ } sq_debug_misc_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_misc_0_t {
+ unsigned int db_prob_count : SQ_DEBUG_MISC_0_DB_PROB_COUNT_SIZE;
+ unsigned int : 5;
+ unsigned int db_prob_addr : SQ_DEBUG_MISC_0_DB_PROB_ADDR_SIZE;
+ unsigned int : 3;
+ unsigned int db_prob_break : SQ_DEBUG_MISC_0_DB_PROB_BREAK_SIZE;
+ unsigned int : 3;
+ unsigned int db_prob_on : SQ_DEBUG_MISC_0_DB_PROB_ON_SIZE;
+ } sq_debug_misc_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_misc_0_t f;
+} sq_debug_misc_0_u;
+
+
+/*
+ * SQ_DEBUG_MISC_1 struct
+ */
+
+#define SQ_DEBUG_MISC_1_DB_ON_PIX_SIZE 1
+#define SQ_DEBUG_MISC_1_DB_ON_VTX_SIZE 1
+#define SQ_DEBUG_MISC_1_DB_INST_COUNT_SIZE 8
+#define SQ_DEBUG_MISC_1_DB_BREAK_ADDR_SIZE 11
+
+#define SQ_DEBUG_MISC_1_DB_ON_PIX_SHIFT 0
+#define SQ_DEBUG_MISC_1_DB_ON_VTX_SHIFT 1
+#define SQ_DEBUG_MISC_1_DB_INST_COUNT_SHIFT 8
+#define SQ_DEBUG_MISC_1_DB_BREAK_ADDR_SHIFT 16
+
+#define SQ_DEBUG_MISC_1_DB_ON_PIX_MASK 0x00000001
+#define SQ_DEBUG_MISC_1_DB_ON_VTX_MASK 0x00000002
+#define SQ_DEBUG_MISC_1_DB_INST_COUNT_MASK 0x0000ff00
+#define SQ_DEBUG_MISC_1_DB_BREAK_ADDR_MASK 0x07ff0000
+
+#define SQ_DEBUG_MISC_1_MASK \
+ (SQ_DEBUG_MISC_1_DB_ON_PIX_MASK | \
+ SQ_DEBUG_MISC_1_DB_ON_VTX_MASK | \
+ SQ_DEBUG_MISC_1_DB_INST_COUNT_MASK | \
+ SQ_DEBUG_MISC_1_DB_BREAK_ADDR_MASK)
+
+#define SQ_DEBUG_MISC_1(db_on_pix, db_on_vtx, db_inst_count, db_break_addr) \
+ ((db_on_pix << SQ_DEBUG_MISC_1_DB_ON_PIX_SHIFT) | \
+ (db_on_vtx << SQ_DEBUG_MISC_1_DB_ON_VTX_SHIFT) | \
+ (db_inst_count << SQ_DEBUG_MISC_1_DB_INST_COUNT_SHIFT) | \
+ (db_break_addr << SQ_DEBUG_MISC_1_DB_BREAK_ADDR_SHIFT))
+
+#define SQ_DEBUG_MISC_1_GET_DB_ON_PIX(sq_debug_misc_1) \
+ ((sq_debug_misc_1 & SQ_DEBUG_MISC_1_DB_ON_PIX_MASK) >> SQ_DEBUG_MISC_1_DB_ON_PIX_SHIFT)
+#define SQ_DEBUG_MISC_1_GET_DB_ON_VTX(sq_debug_misc_1) \
+ ((sq_debug_misc_1 & SQ_DEBUG_MISC_1_DB_ON_VTX_MASK) >> SQ_DEBUG_MISC_1_DB_ON_VTX_SHIFT)
+#define SQ_DEBUG_MISC_1_GET_DB_INST_COUNT(sq_debug_misc_1) \
+ ((sq_debug_misc_1 & SQ_DEBUG_MISC_1_DB_INST_COUNT_MASK) >> SQ_DEBUG_MISC_1_DB_INST_COUNT_SHIFT)
+#define SQ_DEBUG_MISC_1_GET_DB_BREAK_ADDR(sq_debug_misc_1) \
+ ((sq_debug_misc_1 & SQ_DEBUG_MISC_1_DB_BREAK_ADDR_MASK) >> SQ_DEBUG_MISC_1_DB_BREAK_ADDR_SHIFT)
+
+#define SQ_DEBUG_MISC_1_SET_DB_ON_PIX(sq_debug_misc_1_reg, db_on_pix) \
+ sq_debug_misc_1_reg = (sq_debug_misc_1_reg & ~SQ_DEBUG_MISC_1_DB_ON_PIX_MASK) | (db_on_pix << SQ_DEBUG_MISC_1_DB_ON_PIX_SHIFT)
+#define SQ_DEBUG_MISC_1_SET_DB_ON_VTX(sq_debug_misc_1_reg, db_on_vtx) \
+ sq_debug_misc_1_reg = (sq_debug_misc_1_reg & ~SQ_DEBUG_MISC_1_DB_ON_VTX_MASK) | (db_on_vtx << SQ_DEBUG_MISC_1_DB_ON_VTX_SHIFT)
+#define SQ_DEBUG_MISC_1_SET_DB_INST_COUNT(sq_debug_misc_1_reg, db_inst_count) \
+ sq_debug_misc_1_reg = (sq_debug_misc_1_reg & ~SQ_DEBUG_MISC_1_DB_INST_COUNT_MASK) | (db_inst_count << SQ_DEBUG_MISC_1_DB_INST_COUNT_SHIFT)
+#define SQ_DEBUG_MISC_1_SET_DB_BREAK_ADDR(sq_debug_misc_1_reg, db_break_addr) \
+ sq_debug_misc_1_reg = (sq_debug_misc_1_reg & ~SQ_DEBUG_MISC_1_DB_BREAK_ADDR_MASK) | (db_break_addr << SQ_DEBUG_MISC_1_DB_BREAK_ADDR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _sq_debug_misc_1_t {
+ unsigned int db_on_pix : SQ_DEBUG_MISC_1_DB_ON_PIX_SIZE;
+ unsigned int db_on_vtx : SQ_DEBUG_MISC_1_DB_ON_VTX_SIZE;
+ unsigned int : 6;
+ unsigned int db_inst_count : SQ_DEBUG_MISC_1_DB_INST_COUNT_SIZE;
+ unsigned int db_break_addr : SQ_DEBUG_MISC_1_DB_BREAK_ADDR_SIZE;
+ unsigned int : 5;
+ } sq_debug_misc_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _sq_debug_misc_1_t {
+ unsigned int : 5;
+ unsigned int db_break_addr : SQ_DEBUG_MISC_1_DB_BREAK_ADDR_SIZE;
+ unsigned int db_inst_count : SQ_DEBUG_MISC_1_DB_INST_COUNT_SIZE;
+ unsigned int : 6;
+ unsigned int db_on_vtx : SQ_DEBUG_MISC_1_DB_ON_VTX_SIZE;
+ unsigned int db_on_pix : SQ_DEBUG_MISC_1_DB_ON_PIX_SIZE;
+ } sq_debug_misc_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ sq_debug_misc_1_t f;
+} sq_debug_misc_1_u;
+
+
+#endif
+
+
+#if !defined (_SX_FIDDLE_H)
+#define _SX_FIDDLE_H
+
+/*******************************************************
+ * Enums
+ *******************************************************/
+
+
+/*******************************************************
+ * Values
+ *******************************************************/
+
+
+/*******************************************************
+ * Structures
+ *******************************************************/
+
+#endif
+
+
+#if !defined (_TP_FIDDLE_H)
+#define _TP_FIDDLE_H
+
+/*******************************************************
+ * Enums
+ *******************************************************/
+
+
+/*******************************************************
+ * Values
+ *******************************************************/
+
+
+/*******************************************************
+ * Structures
+ *******************************************************/
+
+/*
+ * TC_CNTL_STATUS struct
+ */
+
+#define TC_CNTL_STATUS_L2_INVALIDATE_SIZE 1
+#define TC_CNTL_STATUS_TC_L2_HIT_MISS_SIZE 2
+#define TC_CNTL_STATUS_TC_BUSY_SIZE 1
+
+#define TC_CNTL_STATUS_L2_INVALIDATE_SHIFT 0
+#define TC_CNTL_STATUS_TC_L2_HIT_MISS_SHIFT 18
+#define TC_CNTL_STATUS_TC_BUSY_SHIFT 31
+
+#define TC_CNTL_STATUS_L2_INVALIDATE_MASK 0x00000001
+#define TC_CNTL_STATUS_TC_L2_HIT_MISS_MASK 0x000c0000
+#define TC_CNTL_STATUS_TC_BUSY_MASK 0x80000000
+
+#define TC_CNTL_STATUS_MASK \
+ (TC_CNTL_STATUS_L2_INVALIDATE_MASK | \
+ TC_CNTL_STATUS_TC_L2_HIT_MISS_MASK | \
+ TC_CNTL_STATUS_TC_BUSY_MASK)
+
+#define TC_CNTL_STATUS(l2_invalidate, tc_l2_hit_miss, tc_busy) \
+ ((l2_invalidate << TC_CNTL_STATUS_L2_INVALIDATE_SHIFT) | \
+ (tc_l2_hit_miss << TC_CNTL_STATUS_TC_L2_HIT_MISS_SHIFT) | \
+ (tc_busy << TC_CNTL_STATUS_TC_BUSY_SHIFT))
+
+#define TC_CNTL_STATUS_GET_L2_INVALIDATE(tc_cntl_status) \
+ ((tc_cntl_status & TC_CNTL_STATUS_L2_INVALIDATE_MASK) >> TC_CNTL_STATUS_L2_INVALIDATE_SHIFT)
+#define TC_CNTL_STATUS_GET_TC_L2_HIT_MISS(tc_cntl_status) \
+ ((tc_cntl_status & TC_CNTL_STATUS_TC_L2_HIT_MISS_MASK) >> TC_CNTL_STATUS_TC_L2_HIT_MISS_SHIFT)
+#define TC_CNTL_STATUS_GET_TC_BUSY(tc_cntl_status) \
+ ((tc_cntl_status & TC_CNTL_STATUS_TC_BUSY_MASK) >> TC_CNTL_STATUS_TC_BUSY_SHIFT)
+
+#define TC_CNTL_STATUS_SET_L2_INVALIDATE(tc_cntl_status_reg, l2_invalidate) \
+ tc_cntl_status_reg = (tc_cntl_status_reg & ~TC_CNTL_STATUS_L2_INVALIDATE_MASK) | (l2_invalidate << TC_CNTL_STATUS_L2_INVALIDATE_SHIFT)
+#define TC_CNTL_STATUS_SET_TC_L2_HIT_MISS(tc_cntl_status_reg, tc_l2_hit_miss) \
+ tc_cntl_status_reg = (tc_cntl_status_reg & ~TC_CNTL_STATUS_TC_L2_HIT_MISS_MASK) | (tc_l2_hit_miss << TC_CNTL_STATUS_TC_L2_HIT_MISS_SHIFT)
+#define TC_CNTL_STATUS_SET_TC_BUSY(tc_cntl_status_reg, tc_busy) \
+ tc_cntl_status_reg = (tc_cntl_status_reg & ~TC_CNTL_STATUS_TC_BUSY_MASK) | (tc_busy << TC_CNTL_STATUS_TC_BUSY_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tc_cntl_status_t {
+ unsigned int l2_invalidate : TC_CNTL_STATUS_L2_INVALIDATE_SIZE;
+ unsigned int : 17;
+ unsigned int tc_l2_hit_miss : TC_CNTL_STATUS_TC_L2_HIT_MISS_SIZE;
+ unsigned int : 11;
+ unsigned int tc_busy : TC_CNTL_STATUS_TC_BUSY_SIZE;
+ } tc_cntl_status_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tc_cntl_status_t {
+ unsigned int tc_busy : TC_CNTL_STATUS_TC_BUSY_SIZE;
+ unsigned int : 11;
+ unsigned int tc_l2_hit_miss : TC_CNTL_STATUS_TC_L2_HIT_MISS_SIZE;
+ unsigned int : 17;
+ unsigned int l2_invalidate : TC_CNTL_STATUS_L2_INVALIDATE_SIZE;
+ } tc_cntl_status_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tc_cntl_status_t f;
+} tc_cntl_status_u;
+
+
+/*
+ * TCR_CHICKEN struct
+ */
+
+#define TCR_CHICKEN_SPARE_SIZE 32
+
+#define TCR_CHICKEN_SPARE_SHIFT 0
+
+#define TCR_CHICKEN_SPARE_MASK 0xffffffff
+
+#define TCR_CHICKEN_MASK \
+ (TCR_CHICKEN_SPARE_MASK)
+
+#define TCR_CHICKEN(spare) \
+ ((spare << TCR_CHICKEN_SPARE_SHIFT))
+
+#define TCR_CHICKEN_GET_SPARE(tcr_chicken) \
+ ((tcr_chicken & TCR_CHICKEN_SPARE_MASK) >> TCR_CHICKEN_SPARE_SHIFT)
+
+#define TCR_CHICKEN_SET_SPARE(tcr_chicken_reg, spare) \
+ tcr_chicken_reg = (tcr_chicken_reg & ~TCR_CHICKEN_SPARE_MASK) | (spare << TCR_CHICKEN_SPARE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcr_chicken_t {
+ unsigned int spare : TCR_CHICKEN_SPARE_SIZE;
+ } tcr_chicken_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcr_chicken_t {
+ unsigned int spare : TCR_CHICKEN_SPARE_SIZE;
+ } tcr_chicken_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcr_chicken_t f;
+} tcr_chicken_u;
+
+
+/*
+ * TCF_CHICKEN struct
+ */
+
+#define TCF_CHICKEN_SPARE_SIZE 32
+
+#define TCF_CHICKEN_SPARE_SHIFT 0
+
+#define TCF_CHICKEN_SPARE_MASK 0xffffffff
+
+#define TCF_CHICKEN_MASK \
+ (TCF_CHICKEN_SPARE_MASK)
+
+#define TCF_CHICKEN(spare) \
+ ((spare << TCF_CHICKEN_SPARE_SHIFT))
+
+#define TCF_CHICKEN_GET_SPARE(tcf_chicken) \
+ ((tcf_chicken & TCF_CHICKEN_SPARE_MASK) >> TCF_CHICKEN_SPARE_SHIFT)
+
+#define TCF_CHICKEN_SET_SPARE(tcf_chicken_reg, spare) \
+ tcf_chicken_reg = (tcf_chicken_reg & ~TCF_CHICKEN_SPARE_MASK) | (spare << TCF_CHICKEN_SPARE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_chicken_t {
+ unsigned int spare : TCF_CHICKEN_SPARE_SIZE;
+ } tcf_chicken_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_chicken_t {
+ unsigned int spare : TCF_CHICKEN_SPARE_SIZE;
+ } tcf_chicken_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_chicken_t f;
+} tcf_chicken_u;
+
+
+/*
+ * TCM_CHICKEN struct
+ */
+
+#define TCM_CHICKEN_TCO_READ_LATENCY_FIFO_PROG_DEPTH_SIZE 8
+#define TCM_CHICKEN_ETC_COLOR_ENDIAN_SIZE 1
+#define TCM_CHICKEN_SPARE_SIZE 23
+
+#define TCM_CHICKEN_TCO_READ_LATENCY_FIFO_PROG_DEPTH_SHIFT 0
+#define TCM_CHICKEN_ETC_COLOR_ENDIAN_SHIFT 8
+#define TCM_CHICKEN_SPARE_SHIFT 9
+
+#define TCM_CHICKEN_TCO_READ_LATENCY_FIFO_PROG_DEPTH_MASK 0x000000ff
+#define TCM_CHICKEN_ETC_COLOR_ENDIAN_MASK 0x00000100
+#define TCM_CHICKEN_SPARE_MASK 0xfffffe00
+
+#define TCM_CHICKEN_MASK \
+ (TCM_CHICKEN_TCO_READ_LATENCY_FIFO_PROG_DEPTH_MASK | \
+ TCM_CHICKEN_ETC_COLOR_ENDIAN_MASK | \
+ TCM_CHICKEN_SPARE_MASK)
+
+#define TCM_CHICKEN(tco_read_latency_fifo_prog_depth, etc_color_endian, spare) \
+ ((tco_read_latency_fifo_prog_depth << TCM_CHICKEN_TCO_READ_LATENCY_FIFO_PROG_DEPTH_SHIFT) | \
+ (etc_color_endian << TCM_CHICKEN_ETC_COLOR_ENDIAN_SHIFT) | \
+ (spare << TCM_CHICKEN_SPARE_SHIFT))
+
+#define TCM_CHICKEN_GET_TCO_READ_LATENCY_FIFO_PROG_DEPTH(tcm_chicken) \
+ ((tcm_chicken & TCM_CHICKEN_TCO_READ_LATENCY_FIFO_PROG_DEPTH_MASK) >> TCM_CHICKEN_TCO_READ_LATENCY_FIFO_PROG_DEPTH_SHIFT)
+#define TCM_CHICKEN_GET_ETC_COLOR_ENDIAN(tcm_chicken) \
+ ((tcm_chicken & TCM_CHICKEN_ETC_COLOR_ENDIAN_MASK) >> TCM_CHICKEN_ETC_COLOR_ENDIAN_SHIFT)
+#define TCM_CHICKEN_GET_SPARE(tcm_chicken) \
+ ((tcm_chicken & TCM_CHICKEN_SPARE_MASK) >> TCM_CHICKEN_SPARE_SHIFT)
+
+#define TCM_CHICKEN_SET_TCO_READ_LATENCY_FIFO_PROG_DEPTH(tcm_chicken_reg, tco_read_latency_fifo_prog_depth) \
+ tcm_chicken_reg = (tcm_chicken_reg & ~TCM_CHICKEN_TCO_READ_LATENCY_FIFO_PROG_DEPTH_MASK) | (tco_read_latency_fifo_prog_depth << TCM_CHICKEN_TCO_READ_LATENCY_FIFO_PROG_DEPTH_SHIFT)
+#define TCM_CHICKEN_SET_ETC_COLOR_ENDIAN(tcm_chicken_reg, etc_color_endian) \
+ tcm_chicken_reg = (tcm_chicken_reg & ~TCM_CHICKEN_ETC_COLOR_ENDIAN_MASK) | (etc_color_endian << TCM_CHICKEN_ETC_COLOR_ENDIAN_SHIFT)
+#define TCM_CHICKEN_SET_SPARE(tcm_chicken_reg, spare) \
+ tcm_chicken_reg = (tcm_chicken_reg & ~TCM_CHICKEN_SPARE_MASK) | (spare << TCM_CHICKEN_SPARE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcm_chicken_t {
+ unsigned int tco_read_latency_fifo_prog_depth : TCM_CHICKEN_TCO_READ_LATENCY_FIFO_PROG_DEPTH_SIZE;
+ unsigned int etc_color_endian : TCM_CHICKEN_ETC_COLOR_ENDIAN_SIZE;
+ unsigned int spare : TCM_CHICKEN_SPARE_SIZE;
+ } tcm_chicken_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcm_chicken_t {
+ unsigned int spare : TCM_CHICKEN_SPARE_SIZE;
+ unsigned int etc_color_endian : TCM_CHICKEN_ETC_COLOR_ENDIAN_SIZE;
+ unsigned int tco_read_latency_fifo_prog_depth : TCM_CHICKEN_TCO_READ_LATENCY_FIFO_PROG_DEPTH_SIZE;
+ } tcm_chicken_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcm_chicken_t f;
+} tcm_chicken_u;
+
+
+/*
+ * TCR_PERFCOUNTER0_SELECT struct
+ */
+
+#define TCR_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SIZE 8
+
+#define TCR_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SHIFT 0
+
+#define TCR_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_MASK 0x000000ff
+
+#define TCR_PERFCOUNTER0_SELECT_MASK \
+ (TCR_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_MASK)
+
+#define TCR_PERFCOUNTER0_SELECT(perfcounter_select) \
+ ((perfcounter_select << TCR_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SHIFT))
+
+#define TCR_PERFCOUNTER0_SELECT_GET_PERFCOUNTER_SELECT(tcr_perfcounter0_select) \
+ ((tcr_perfcounter0_select & TCR_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_MASK) >> TCR_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#define TCR_PERFCOUNTER0_SELECT_SET_PERFCOUNTER_SELECT(tcr_perfcounter0_select_reg, perfcounter_select) \
+ tcr_perfcounter0_select_reg = (tcr_perfcounter0_select_reg & ~TCR_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_MASK) | (perfcounter_select << TCR_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcr_perfcounter0_select_t {
+ unsigned int perfcounter_select : TCR_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SIZE;
+ unsigned int : 24;
+ } tcr_perfcounter0_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcr_perfcounter0_select_t {
+ unsigned int : 24;
+ unsigned int perfcounter_select : TCR_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SIZE;
+ } tcr_perfcounter0_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcr_perfcounter0_select_t f;
+} tcr_perfcounter0_select_u;
+
+
+/*
+ * TCR_PERFCOUNTER1_SELECT struct
+ */
+
+#define TCR_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SIZE 8
+
+#define TCR_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SHIFT 0
+
+#define TCR_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_MASK 0x000000ff
+
+#define TCR_PERFCOUNTER1_SELECT_MASK \
+ (TCR_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_MASK)
+
+#define TCR_PERFCOUNTER1_SELECT(perfcounter_select) \
+ ((perfcounter_select << TCR_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SHIFT))
+
+#define TCR_PERFCOUNTER1_SELECT_GET_PERFCOUNTER_SELECT(tcr_perfcounter1_select) \
+ ((tcr_perfcounter1_select & TCR_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_MASK) >> TCR_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#define TCR_PERFCOUNTER1_SELECT_SET_PERFCOUNTER_SELECT(tcr_perfcounter1_select_reg, perfcounter_select) \
+ tcr_perfcounter1_select_reg = (tcr_perfcounter1_select_reg & ~TCR_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_MASK) | (perfcounter_select << TCR_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcr_perfcounter1_select_t {
+ unsigned int perfcounter_select : TCR_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SIZE;
+ unsigned int : 24;
+ } tcr_perfcounter1_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcr_perfcounter1_select_t {
+ unsigned int : 24;
+ unsigned int perfcounter_select : TCR_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SIZE;
+ } tcr_perfcounter1_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcr_perfcounter1_select_t f;
+} tcr_perfcounter1_select_u;
+
+
+/*
+ * TCR_PERFCOUNTER0_HI struct
+ */
+
+#define TCR_PERFCOUNTER0_HI_PERFCOUNTER_HI_SIZE 16
+
+#define TCR_PERFCOUNTER0_HI_PERFCOUNTER_HI_SHIFT 0
+
+#define TCR_PERFCOUNTER0_HI_PERFCOUNTER_HI_MASK 0x0000ffff
+
+#define TCR_PERFCOUNTER0_HI_MASK \
+ (TCR_PERFCOUNTER0_HI_PERFCOUNTER_HI_MASK)
+
+#define TCR_PERFCOUNTER0_HI(perfcounter_hi) \
+ ((perfcounter_hi << TCR_PERFCOUNTER0_HI_PERFCOUNTER_HI_SHIFT))
+
+#define TCR_PERFCOUNTER0_HI_GET_PERFCOUNTER_HI(tcr_perfcounter0_hi) \
+ ((tcr_perfcounter0_hi & TCR_PERFCOUNTER0_HI_PERFCOUNTER_HI_MASK) >> TCR_PERFCOUNTER0_HI_PERFCOUNTER_HI_SHIFT)
+
+#define TCR_PERFCOUNTER0_HI_SET_PERFCOUNTER_HI(tcr_perfcounter0_hi_reg, perfcounter_hi) \
+ tcr_perfcounter0_hi_reg = (tcr_perfcounter0_hi_reg & ~TCR_PERFCOUNTER0_HI_PERFCOUNTER_HI_MASK) | (perfcounter_hi << TCR_PERFCOUNTER0_HI_PERFCOUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcr_perfcounter0_hi_t {
+ unsigned int perfcounter_hi : TCR_PERFCOUNTER0_HI_PERFCOUNTER_HI_SIZE;
+ unsigned int : 16;
+ } tcr_perfcounter0_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcr_perfcounter0_hi_t {
+ unsigned int : 16;
+ unsigned int perfcounter_hi : TCR_PERFCOUNTER0_HI_PERFCOUNTER_HI_SIZE;
+ } tcr_perfcounter0_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcr_perfcounter0_hi_t f;
+} tcr_perfcounter0_hi_u;
+
+
+/*
+ * TCR_PERFCOUNTER1_HI struct
+ */
+
+#define TCR_PERFCOUNTER1_HI_PERFCOUNTER_HI_SIZE 16
+
+#define TCR_PERFCOUNTER1_HI_PERFCOUNTER_HI_SHIFT 0
+
+#define TCR_PERFCOUNTER1_HI_PERFCOUNTER_HI_MASK 0x0000ffff
+
+#define TCR_PERFCOUNTER1_HI_MASK \
+ (TCR_PERFCOUNTER1_HI_PERFCOUNTER_HI_MASK)
+
+#define TCR_PERFCOUNTER1_HI(perfcounter_hi) \
+ ((perfcounter_hi << TCR_PERFCOUNTER1_HI_PERFCOUNTER_HI_SHIFT))
+
+#define TCR_PERFCOUNTER1_HI_GET_PERFCOUNTER_HI(tcr_perfcounter1_hi) \
+ ((tcr_perfcounter1_hi & TCR_PERFCOUNTER1_HI_PERFCOUNTER_HI_MASK) >> TCR_PERFCOUNTER1_HI_PERFCOUNTER_HI_SHIFT)
+
+#define TCR_PERFCOUNTER1_HI_SET_PERFCOUNTER_HI(tcr_perfcounter1_hi_reg, perfcounter_hi) \
+ tcr_perfcounter1_hi_reg = (tcr_perfcounter1_hi_reg & ~TCR_PERFCOUNTER1_HI_PERFCOUNTER_HI_MASK) | (perfcounter_hi << TCR_PERFCOUNTER1_HI_PERFCOUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcr_perfcounter1_hi_t {
+ unsigned int perfcounter_hi : TCR_PERFCOUNTER1_HI_PERFCOUNTER_HI_SIZE;
+ unsigned int : 16;
+ } tcr_perfcounter1_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcr_perfcounter1_hi_t {
+ unsigned int : 16;
+ unsigned int perfcounter_hi : TCR_PERFCOUNTER1_HI_PERFCOUNTER_HI_SIZE;
+ } tcr_perfcounter1_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcr_perfcounter1_hi_t f;
+} tcr_perfcounter1_hi_u;
+
+
+/*
+ * TCR_PERFCOUNTER0_LOW struct
+ */
+
+#define TCR_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SIZE 32
+
+#define TCR_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SHIFT 0
+
+#define TCR_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_MASK 0xffffffff
+
+#define TCR_PERFCOUNTER0_LOW_MASK \
+ (TCR_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_MASK)
+
+#define TCR_PERFCOUNTER0_LOW(perfcounter_low) \
+ ((perfcounter_low << TCR_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SHIFT))
+
+#define TCR_PERFCOUNTER0_LOW_GET_PERFCOUNTER_LOW(tcr_perfcounter0_low) \
+ ((tcr_perfcounter0_low & TCR_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_MASK) >> TCR_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#define TCR_PERFCOUNTER0_LOW_SET_PERFCOUNTER_LOW(tcr_perfcounter0_low_reg, perfcounter_low) \
+ tcr_perfcounter0_low_reg = (tcr_perfcounter0_low_reg & ~TCR_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_MASK) | (perfcounter_low << TCR_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcr_perfcounter0_low_t {
+ unsigned int perfcounter_low : TCR_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcr_perfcounter0_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcr_perfcounter0_low_t {
+ unsigned int perfcounter_low : TCR_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcr_perfcounter0_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcr_perfcounter0_low_t f;
+} tcr_perfcounter0_low_u;
+
+
+/*
+ * TCR_PERFCOUNTER1_LOW struct
+ */
+
+#define TCR_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SIZE 32
+
+#define TCR_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SHIFT 0
+
+#define TCR_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_MASK 0xffffffff
+
+#define TCR_PERFCOUNTER1_LOW_MASK \
+ (TCR_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_MASK)
+
+#define TCR_PERFCOUNTER1_LOW(perfcounter_low) \
+ ((perfcounter_low << TCR_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SHIFT))
+
+#define TCR_PERFCOUNTER1_LOW_GET_PERFCOUNTER_LOW(tcr_perfcounter1_low) \
+ ((tcr_perfcounter1_low & TCR_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_MASK) >> TCR_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#define TCR_PERFCOUNTER1_LOW_SET_PERFCOUNTER_LOW(tcr_perfcounter1_low_reg, perfcounter_low) \
+ tcr_perfcounter1_low_reg = (tcr_perfcounter1_low_reg & ~TCR_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_MASK) | (perfcounter_low << TCR_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcr_perfcounter1_low_t {
+ unsigned int perfcounter_low : TCR_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcr_perfcounter1_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcr_perfcounter1_low_t {
+ unsigned int perfcounter_low : TCR_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcr_perfcounter1_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcr_perfcounter1_low_t f;
+} tcr_perfcounter1_low_u;
+
+
+/*
+ * TP_TC_CLKGATE_CNTL struct
+ */
+
+#define TP_TC_CLKGATE_CNTL_TP_BUSY_EXTEND_SIZE 3
+#define TP_TC_CLKGATE_CNTL_TC_BUSY_EXTEND_SIZE 3
+
+#define TP_TC_CLKGATE_CNTL_TP_BUSY_EXTEND_SHIFT 0
+#define TP_TC_CLKGATE_CNTL_TC_BUSY_EXTEND_SHIFT 3
+
+#define TP_TC_CLKGATE_CNTL_TP_BUSY_EXTEND_MASK 0x00000007
+#define TP_TC_CLKGATE_CNTL_TC_BUSY_EXTEND_MASK 0x00000038
+
+#define TP_TC_CLKGATE_CNTL_MASK \
+ (TP_TC_CLKGATE_CNTL_TP_BUSY_EXTEND_MASK | \
+ TP_TC_CLKGATE_CNTL_TC_BUSY_EXTEND_MASK)
+
+#define TP_TC_CLKGATE_CNTL(tp_busy_extend, tc_busy_extend) \
+ ((tp_busy_extend << TP_TC_CLKGATE_CNTL_TP_BUSY_EXTEND_SHIFT) | \
+ (tc_busy_extend << TP_TC_CLKGATE_CNTL_TC_BUSY_EXTEND_SHIFT))
+
+#define TP_TC_CLKGATE_CNTL_GET_TP_BUSY_EXTEND(tp_tc_clkgate_cntl) \
+ ((tp_tc_clkgate_cntl & TP_TC_CLKGATE_CNTL_TP_BUSY_EXTEND_MASK) >> TP_TC_CLKGATE_CNTL_TP_BUSY_EXTEND_SHIFT)
+#define TP_TC_CLKGATE_CNTL_GET_TC_BUSY_EXTEND(tp_tc_clkgate_cntl) \
+ ((tp_tc_clkgate_cntl & TP_TC_CLKGATE_CNTL_TC_BUSY_EXTEND_MASK) >> TP_TC_CLKGATE_CNTL_TC_BUSY_EXTEND_SHIFT)
+
+#define TP_TC_CLKGATE_CNTL_SET_TP_BUSY_EXTEND(tp_tc_clkgate_cntl_reg, tp_busy_extend) \
+ tp_tc_clkgate_cntl_reg = (tp_tc_clkgate_cntl_reg & ~TP_TC_CLKGATE_CNTL_TP_BUSY_EXTEND_MASK) | (tp_busy_extend << TP_TC_CLKGATE_CNTL_TP_BUSY_EXTEND_SHIFT)
+#define TP_TC_CLKGATE_CNTL_SET_TC_BUSY_EXTEND(tp_tc_clkgate_cntl_reg, tc_busy_extend) \
+ tp_tc_clkgate_cntl_reg = (tp_tc_clkgate_cntl_reg & ~TP_TC_CLKGATE_CNTL_TC_BUSY_EXTEND_MASK) | (tc_busy_extend << TP_TC_CLKGATE_CNTL_TC_BUSY_EXTEND_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tp_tc_clkgate_cntl_t {
+ unsigned int tp_busy_extend : TP_TC_CLKGATE_CNTL_TP_BUSY_EXTEND_SIZE;
+ unsigned int tc_busy_extend : TP_TC_CLKGATE_CNTL_TC_BUSY_EXTEND_SIZE;
+ unsigned int : 26;
+ } tp_tc_clkgate_cntl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tp_tc_clkgate_cntl_t {
+ unsigned int : 26;
+ unsigned int tc_busy_extend : TP_TC_CLKGATE_CNTL_TC_BUSY_EXTEND_SIZE;
+ unsigned int tp_busy_extend : TP_TC_CLKGATE_CNTL_TP_BUSY_EXTEND_SIZE;
+ } tp_tc_clkgate_cntl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tp_tc_clkgate_cntl_t f;
+} tp_tc_clkgate_cntl_u;
+
+
+/*
+ * TPC_CNTL_STATUS struct
+ */
+
+#define TPC_CNTL_STATUS_TPC_INPUT_BUSY_SIZE 1
+#define TPC_CNTL_STATUS_TPC_TC_FIFO_BUSY_SIZE 1
+#define TPC_CNTL_STATUS_TPC_STATE_FIFO_BUSY_SIZE 1
+#define TPC_CNTL_STATUS_TPC_FETCH_FIFO_BUSY_SIZE 1
+#define TPC_CNTL_STATUS_TPC_WALKER_PIPE_BUSY_SIZE 1
+#define TPC_CNTL_STATUS_TPC_WALK_FIFO_BUSY_SIZE 1
+#define TPC_CNTL_STATUS_TPC_WALKER_BUSY_SIZE 1
+#define TPC_CNTL_STATUS_TPC_ALIGNER_PIPE_BUSY_SIZE 1
+#define TPC_CNTL_STATUS_TPC_ALIGN_FIFO_BUSY_SIZE 1
+#define TPC_CNTL_STATUS_TPC_ALIGNER_BUSY_SIZE 1
+#define TPC_CNTL_STATUS_TPC_RR_FIFO_BUSY_SIZE 1
+#define TPC_CNTL_STATUS_TPC_BLEND_PIPE_BUSY_SIZE 1
+#define TPC_CNTL_STATUS_TPC_OUT_FIFO_BUSY_SIZE 1
+#define TPC_CNTL_STATUS_TPC_BLEND_BUSY_SIZE 1
+#define TPC_CNTL_STATUS_TF_TW_RTS_SIZE 1
+#define TPC_CNTL_STATUS_TF_TW_STATE_RTS_SIZE 1
+#define TPC_CNTL_STATUS_TF_TW_RTR_SIZE 1
+#define TPC_CNTL_STATUS_TW_TA_RTS_SIZE 1
+#define TPC_CNTL_STATUS_TW_TA_TT_RTS_SIZE 1
+#define TPC_CNTL_STATUS_TW_TA_LAST_RTS_SIZE 1
+#define TPC_CNTL_STATUS_TW_TA_RTR_SIZE 1
+#define TPC_CNTL_STATUS_TA_TB_RTS_SIZE 1
+#define TPC_CNTL_STATUS_TA_TB_TT_RTS_SIZE 1
+#define TPC_CNTL_STATUS_TA_TB_RTR_SIZE 1
+#define TPC_CNTL_STATUS_TA_TF_RTS_SIZE 1
+#define TPC_CNTL_STATUS_TA_TF_TC_FIFO_REN_SIZE 1
+#define TPC_CNTL_STATUS_TP_SQ_DEC_SIZE 1
+#define TPC_CNTL_STATUS_TPC_BUSY_SIZE 1
+
+#define TPC_CNTL_STATUS_TPC_INPUT_BUSY_SHIFT 0
+#define TPC_CNTL_STATUS_TPC_TC_FIFO_BUSY_SHIFT 1
+#define TPC_CNTL_STATUS_TPC_STATE_FIFO_BUSY_SHIFT 2
+#define TPC_CNTL_STATUS_TPC_FETCH_FIFO_BUSY_SHIFT 3
+#define TPC_CNTL_STATUS_TPC_WALKER_PIPE_BUSY_SHIFT 4
+#define TPC_CNTL_STATUS_TPC_WALK_FIFO_BUSY_SHIFT 5
+#define TPC_CNTL_STATUS_TPC_WALKER_BUSY_SHIFT 6
+#define TPC_CNTL_STATUS_TPC_ALIGNER_PIPE_BUSY_SHIFT 8
+#define TPC_CNTL_STATUS_TPC_ALIGN_FIFO_BUSY_SHIFT 9
+#define TPC_CNTL_STATUS_TPC_ALIGNER_BUSY_SHIFT 10
+#define TPC_CNTL_STATUS_TPC_RR_FIFO_BUSY_SHIFT 12
+#define TPC_CNTL_STATUS_TPC_BLEND_PIPE_BUSY_SHIFT 13
+#define TPC_CNTL_STATUS_TPC_OUT_FIFO_BUSY_SHIFT 14
+#define TPC_CNTL_STATUS_TPC_BLEND_BUSY_SHIFT 15
+#define TPC_CNTL_STATUS_TF_TW_RTS_SHIFT 16
+#define TPC_CNTL_STATUS_TF_TW_STATE_RTS_SHIFT 17
+#define TPC_CNTL_STATUS_TF_TW_RTR_SHIFT 19
+#define TPC_CNTL_STATUS_TW_TA_RTS_SHIFT 20
+#define TPC_CNTL_STATUS_TW_TA_TT_RTS_SHIFT 21
+#define TPC_CNTL_STATUS_TW_TA_LAST_RTS_SHIFT 22
+#define TPC_CNTL_STATUS_TW_TA_RTR_SHIFT 23
+#define TPC_CNTL_STATUS_TA_TB_RTS_SHIFT 24
+#define TPC_CNTL_STATUS_TA_TB_TT_RTS_SHIFT 25
+#define TPC_CNTL_STATUS_TA_TB_RTR_SHIFT 27
+#define TPC_CNTL_STATUS_TA_TF_RTS_SHIFT 28
+#define TPC_CNTL_STATUS_TA_TF_TC_FIFO_REN_SHIFT 29
+#define TPC_CNTL_STATUS_TP_SQ_DEC_SHIFT 30
+#define TPC_CNTL_STATUS_TPC_BUSY_SHIFT 31
+
+#define TPC_CNTL_STATUS_TPC_INPUT_BUSY_MASK 0x00000001
+#define TPC_CNTL_STATUS_TPC_TC_FIFO_BUSY_MASK 0x00000002
+#define TPC_CNTL_STATUS_TPC_STATE_FIFO_BUSY_MASK 0x00000004
+#define TPC_CNTL_STATUS_TPC_FETCH_FIFO_BUSY_MASK 0x00000008
+#define TPC_CNTL_STATUS_TPC_WALKER_PIPE_BUSY_MASK 0x00000010
+#define TPC_CNTL_STATUS_TPC_WALK_FIFO_BUSY_MASK 0x00000020
+#define TPC_CNTL_STATUS_TPC_WALKER_BUSY_MASK 0x00000040
+#define TPC_CNTL_STATUS_TPC_ALIGNER_PIPE_BUSY_MASK 0x00000100
+#define TPC_CNTL_STATUS_TPC_ALIGN_FIFO_BUSY_MASK 0x00000200
+#define TPC_CNTL_STATUS_TPC_ALIGNER_BUSY_MASK 0x00000400
+#define TPC_CNTL_STATUS_TPC_RR_FIFO_BUSY_MASK 0x00001000
+#define TPC_CNTL_STATUS_TPC_BLEND_PIPE_BUSY_MASK 0x00002000
+#define TPC_CNTL_STATUS_TPC_OUT_FIFO_BUSY_MASK 0x00004000
+#define TPC_CNTL_STATUS_TPC_BLEND_BUSY_MASK 0x00008000
+#define TPC_CNTL_STATUS_TF_TW_RTS_MASK 0x00010000
+#define TPC_CNTL_STATUS_TF_TW_STATE_RTS_MASK 0x00020000
+#define TPC_CNTL_STATUS_TF_TW_RTR_MASK 0x00080000
+#define TPC_CNTL_STATUS_TW_TA_RTS_MASK 0x00100000
+#define TPC_CNTL_STATUS_TW_TA_TT_RTS_MASK 0x00200000
+#define TPC_CNTL_STATUS_TW_TA_LAST_RTS_MASK 0x00400000
+#define TPC_CNTL_STATUS_TW_TA_RTR_MASK 0x00800000
+#define TPC_CNTL_STATUS_TA_TB_RTS_MASK 0x01000000
+#define TPC_CNTL_STATUS_TA_TB_TT_RTS_MASK 0x02000000
+#define TPC_CNTL_STATUS_TA_TB_RTR_MASK 0x08000000
+#define TPC_CNTL_STATUS_TA_TF_RTS_MASK 0x10000000
+#define TPC_CNTL_STATUS_TA_TF_TC_FIFO_REN_MASK 0x20000000
+#define TPC_CNTL_STATUS_TP_SQ_DEC_MASK 0x40000000
+#define TPC_CNTL_STATUS_TPC_BUSY_MASK 0x80000000
+
+#define TPC_CNTL_STATUS_MASK \
+ (TPC_CNTL_STATUS_TPC_INPUT_BUSY_MASK | \
+ TPC_CNTL_STATUS_TPC_TC_FIFO_BUSY_MASK | \
+ TPC_CNTL_STATUS_TPC_STATE_FIFO_BUSY_MASK | \
+ TPC_CNTL_STATUS_TPC_FETCH_FIFO_BUSY_MASK | \
+ TPC_CNTL_STATUS_TPC_WALKER_PIPE_BUSY_MASK | \
+ TPC_CNTL_STATUS_TPC_WALK_FIFO_BUSY_MASK | \
+ TPC_CNTL_STATUS_TPC_WALKER_BUSY_MASK | \
+ TPC_CNTL_STATUS_TPC_ALIGNER_PIPE_BUSY_MASK | \
+ TPC_CNTL_STATUS_TPC_ALIGN_FIFO_BUSY_MASK | \
+ TPC_CNTL_STATUS_TPC_ALIGNER_BUSY_MASK | \
+ TPC_CNTL_STATUS_TPC_RR_FIFO_BUSY_MASK | \
+ TPC_CNTL_STATUS_TPC_BLEND_PIPE_BUSY_MASK | \
+ TPC_CNTL_STATUS_TPC_OUT_FIFO_BUSY_MASK | \
+ TPC_CNTL_STATUS_TPC_BLEND_BUSY_MASK | \
+ TPC_CNTL_STATUS_TF_TW_RTS_MASK | \
+ TPC_CNTL_STATUS_TF_TW_STATE_RTS_MASK | \
+ TPC_CNTL_STATUS_TF_TW_RTR_MASK | \
+ TPC_CNTL_STATUS_TW_TA_RTS_MASK | \
+ TPC_CNTL_STATUS_TW_TA_TT_RTS_MASK | \
+ TPC_CNTL_STATUS_TW_TA_LAST_RTS_MASK | \
+ TPC_CNTL_STATUS_TW_TA_RTR_MASK | \
+ TPC_CNTL_STATUS_TA_TB_RTS_MASK | \
+ TPC_CNTL_STATUS_TA_TB_TT_RTS_MASK | \
+ TPC_CNTL_STATUS_TA_TB_RTR_MASK | \
+ TPC_CNTL_STATUS_TA_TF_RTS_MASK | \
+ TPC_CNTL_STATUS_TA_TF_TC_FIFO_REN_MASK | \
+ TPC_CNTL_STATUS_TP_SQ_DEC_MASK | \
+ TPC_CNTL_STATUS_TPC_BUSY_MASK)
+
+#define TPC_CNTL_STATUS(tpc_input_busy, tpc_tc_fifo_busy, tpc_state_fifo_busy, tpc_fetch_fifo_busy, tpc_walker_pipe_busy, tpc_walk_fifo_busy, tpc_walker_busy, tpc_aligner_pipe_busy, tpc_align_fifo_busy, tpc_aligner_busy, tpc_rr_fifo_busy, tpc_blend_pipe_busy, tpc_out_fifo_busy, tpc_blend_busy, tf_tw_rts, tf_tw_state_rts, tf_tw_rtr, tw_ta_rts, tw_ta_tt_rts, tw_ta_last_rts, tw_ta_rtr, ta_tb_rts, ta_tb_tt_rts, ta_tb_rtr, ta_tf_rts, ta_tf_tc_fifo_ren, tp_sq_dec, tpc_busy) \
+ ((tpc_input_busy << TPC_CNTL_STATUS_TPC_INPUT_BUSY_SHIFT) | \
+ (tpc_tc_fifo_busy << TPC_CNTL_STATUS_TPC_TC_FIFO_BUSY_SHIFT) | \
+ (tpc_state_fifo_busy << TPC_CNTL_STATUS_TPC_STATE_FIFO_BUSY_SHIFT) | \
+ (tpc_fetch_fifo_busy << TPC_CNTL_STATUS_TPC_FETCH_FIFO_BUSY_SHIFT) | \
+ (tpc_walker_pipe_busy << TPC_CNTL_STATUS_TPC_WALKER_PIPE_BUSY_SHIFT) | \
+ (tpc_walk_fifo_busy << TPC_CNTL_STATUS_TPC_WALK_FIFO_BUSY_SHIFT) | \
+ (tpc_walker_busy << TPC_CNTL_STATUS_TPC_WALKER_BUSY_SHIFT) | \
+ (tpc_aligner_pipe_busy << TPC_CNTL_STATUS_TPC_ALIGNER_PIPE_BUSY_SHIFT) | \
+ (tpc_align_fifo_busy << TPC_CNTL_STATUS_TPC_ALIGN_FIFO_BUSY_SHIFT) | \
+ (tpc_aligner_busy << TPC_CNTL_STATUS_TPC_ALIGNER_BUSY_SHIFT) | \
+ (tpc_rr_fifo_busy << TPC_CNTL_STATUS_TPC_RR_FIFO_BUSY_SHIFT) | \
+ (tpc_blend_pipe_busy << TPC_CNTL_STATUS_TPC_BLEND_PIPE_BUSY_SHIFT) | \
+ (tpc_out_fifo_busy << TPC_CNTL_STATUS_TPC_OUT_FIFO_BUSY_SHIFT) | \
+ (tpc_blend_busy << TPC_CNTL_STATUS_TPC_BLEND_BUSY_SHIFT) | \
+ (tf_tw_rts << TPC_CNTL_STATUS_TF_TW_RTS_SHIFT) | \
+ (tf_tw_state_rts << TPC_CNTL_STATUS_TF_TW_STATE_RTS_SHIFT) | \
+ (tf_tw_rtr << TPC_CNTL_STATUS_TF_TW_RTR_SHIFT) | \
+ (tw_ta_rts << TPC_CNTL_STATUS_TW_TA_RTS_SHIFT) | \
+ (tw_ta_tt_rts << TPC_CNTL_STATUS_TW_TA_TT_RTS_SHIFT) | \
+ (tw_ta_last_rts << TPC_CNTL_STATUS_TW_TA_LAST_RTS_SHIFT) | \
+ (tw_ta_rtr << TPC_CNTL_STATUS_TW_TA_RTR_SHIFT) | \
+ (ta_tb_rts << TPC_CNTL_STATUS_TA_TB_RTS_SHIFT) | \
+ (ta_tb_tt_rts << TPC_CNTL_STATUS_TA_TB_TT_RTS_SHIFT) | \
+ (ta_tb_rtr << TPC_CNTL_STATUS_TA_TB_RTR_SHIFT) | \
+ (ta_tf_rts << TPC_CNTL_STATUS_TA_TF_RTS_SHIFT) | \
+ (ta_tf_tc_fifo_ren << TPC_CNTL_STATUS_TA_TF_TC_FIFO_REN_SHIFT) | \
+ (tp_sq_dec << TPC_CNTL_STATUS_TP_SQ_DEC_SHIFT) | \
+ (tpc_busy << TPC_CNTL_STATUS_TPC_BUSY_SHIFT))
+
+#define TPC_CNTL_STATUS_GET_TPC_INPUT_BUSY(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TPC_INPUT_BUSY_MASK) >> TPC_CNTL_STATUS_TPC_INPUT_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_GET_TPC_TC_FIFO_BUSY(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TPC_TC_FIFO_BUSY_MASK) >> TPC_CNTL_STATUS_TPC_TC_FIFO_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_GET_TPC_STATE_FIFO_BUSY(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TPC_STATE_FIFO_BUSY_MASK) >> TPC_CNTL_STATUS_TPC_STATE_FIFO_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_GET_TPC_FETCH_FIFO_BUSY(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TPC_FETCH_FIFO_BUSY_MASK) >> TPC_CNTL_STATUS_TPC_FETCH_FIFO_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_GET_TPC_WALKER_PIPE_BUSY(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TPC_WALKER_PIPE_BUSY_MASK) >> TPC_CNTL_STATUS_TPC_WALKER_PIPE_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_GET_TPC_WALK_FIFO_BUSY(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TPC_WALK_FIFO_BUSY_MASK) >> TPC_CNTL_STATUS_TPC_WALK_FIFO_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_GET_TPC_WALKER_BUSY(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TPC_WALKER_BUSY_MASK) >> TPC_CNTL_STATUS_TPC_WALKER_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_GET_TPC_ALIGNER_PIPE_BUSY(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TPC_ALIGNER_PIPE_BUSY_MASK) >> TPC_CNTL_STATUS_TPC_ALIGNER_PIPE_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_GET_TPC_ALIGN_FIFO_BUSY(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TPC_ALIGN_FIFO_BUSY_MASK) >> TPC_CNTL_STATUS_TPC_ALIGN_FIFO_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_GET_TPC_ALIGNER_BUSY(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TPC_ALIGNER_BUSY_MASK) >> TPC_CNTL_STATUS_TPC_ALIGNER_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_GET_TPC_RR_FIFO_BUSY(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TPC_RR_FIFO_BUSY_MASK) >> TPC_CNTL_STATUS_TPC_RR_FIFO_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_GET_TPC_BLEND_PIPE_BUSY(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TPC_BLEND_PIPE_BUSY_MASK) >> TPC_CNTL_STATUS_TPC_BLEND_PIPE_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_GET_TPC_OUT_FIFO_BUSY(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TPC_OUT_FIFO_BUSY_MASK) >> TPC_CNTL_STATUS_TPC_OUT_FIFO_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_GET_TPC_BLEND_BUSY(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TPC_BLEND_BUSY_MASK) >> TPC_CNTL_STATUS_TPC_BLEND_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_GET_TF_TW_RTS(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TF_TW_RTS_MASK) >> TPC_CNTL_STATUS_TF_TW_RTS_SHIFT)
+#define TPC_CNTL_STATUS_GET_TF_TW_STATE_RTS(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TF_TW_STATE_RTS_MASK) >> TPC_CNTL_STATUS_TF_TW_STATE_RTS_SHIFT)
+#define TPC_CNTL_STATUS_GET_TF_TW_RTR(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TF_TW_RTR_MASK) >> TPC_CNTL_STATUS_TF_TW_RTR_SHIFT)
+#define TPC_CNTL_STATUS_GET_TW_TA_RTS(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TW_TA_RTS_MASK) >> TPC_CNTL_STATUS_TW_TA_RTS_SHIFT)
+#define TPC_CNTL_STATUS_GET_TW_TA_TT_RTS(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TW_TA_TT_RTS_MASK) >> TPC_CNTL_STATUS_TW_TA_TT_RTS_SHIFT)
+#define TPC_CNTL_STATUS_GET_TW_TA_LAST_RTS(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TW_TA_LAST_RTS_MASK) >> TPC_CNTL_STATUS_TW_TA_LAST_RTS_SHIFT)
+#define TPC_CNTL_STATUS_GET_TW_TA_RTR(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TW_TA_RTR_MASK) >> TPC_CNTL_STATUS_TW_TA_RTR_SHIFT)
+#define TPC_CNTL_STATUS_GET_TA_TB_RTS(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TA_TB_RTS_MASK) >> TPC_CNTL_STATUS_TA_TB_RTS_SHIFT)
+#define TPC_CNTL_STATUS_GET_TA_TB_TT_RTS(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TA_TB_TT_RTS_MASK) >> TPC_CNTL_STATUS_TA_TB_TT_RTS_SHIFT)
+#define TPC_CNTL_STATUS_GET_TA_TB_RTR(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TA_TB_RTR_MASK) >> TPC_CNTL_STATUS_TA_TB_RTR_SHIFT)
+#define TPC_CNTL_STATUS_GET_TA_TF_RTS(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TA_TF_RTS_MASK) >> TPC_CNTL_STATUS_TA_TF_RTS_SHIFT)
+#define TPC_CNTL_STATUS_GET_TA_TF_TC_FIFO_REN(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TA_TF_TC_FIFO_REN_MASK) >> TPC_CNTL_STATUS_TA_TF_TC_FIFO_REN_SHIFT)
+#define TPC_CNTL_STATUS_GET_TP_SQ_DEC(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TP_SQ_DEC_MASK) >> TPC_CNTL_STATUS_TP_SQ_DEC_SHIFT)
+#define TPC_CNTL_STATUS_GET_TPC_BUSY(tpc_cntl_status) \
+ ((tpc_cntl_status & TPC_CNTL_STATUS_TPC_BUSY_MASK) >> TPC_CNTL_STATUS_TPC_BUSY_SHIFT)
+
+#define TPC_CNTL_STATUS_SET_TPC_INPUT_BUSY(tpc_cntl_status_reg, tpc_input_busy) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TPC_INPUT_BUSY_MASK) | (tpc_input_busy << TPC_CNTL_STATUS_TPC_INPUT_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_SET_TPC_TC_FIFO_BUSY(tpc_cntl_status_reg, tpc_tc_fifo_busy) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TPC_TC_FIFO_BUSY_MASK) | (tpc_tc_fifo_busy << TPC_CNTL_STATUS_TPC_TC_FIFO_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_SET_TPC_STATE_FIFO_BUSY(tpc_cntl_status_reg, tpc_state_fifo_busy) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TPC_STATE_FIFO_BUSY_MASK) | (tpc_state_fifo_busy << TPC_CNTL_STATUS_TPC_STATE_FIFO_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_SET_TPC_FETCH_FIFO_BUSY(tpc_cntl_status_reg, tpc_fetch_fifo_busy) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TPC_FETCH_FIFO_BUSY_MASK) | (tpc_fetch_fifo_busy << TPC_CNTL_STATUS_TPC_FETCH_FIFO_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_SET_TPC_WALKER_PIPE_BUSY(tpc_cntl_status_reg, tpc_walker_pipe_busy) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TPC_WALKER_PIPE_BUSY_MASK) | (tpc_walker_pipe_busy << TPC_CNTL_STATUS_TPC_WALKER_PIPE_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_SET_TPC_WALK_FIFO_BUSY(tpc_cntl_status_reg, tpc_walk_fifo_busy) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TPC_WALK_FIFO_BUSY_MASK) | (tpc_walk_fifo_busy << TPC_CNTL_STATUS_TPC_WALK_FIFO_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_SET_TPC_WALKER_BUSY(tpc_cntl_status_reg, tpc_walker_busy) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TPC_WALKER_BUSY_MASK) | (tpc_walker_busy << TPC_CNTL_STATUS_TPC_WALKER_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_SET_TPC_ALIGNER_PIPE_BUSY(tpc_cntl_status_reg, tpc_aligner_pipe_busy) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TPC_ALIGNER_PIPE_BUSY_MASK) | (tpc_aligner_pipe_busy << TPC_CNTL_STATUS_TPC_ALIGNER_PIPE_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_SET_TPC_ALIGN_FIFO_BUSY(tpc_cntl_status_reg, tpc_align_fifo_busy) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TPC_ALIGN_FIFO_BUSY_MASK) | (tpc_align_fifo_busy << TPC_CNTL_STATUS_TPC_ALIGN_FIFO_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_SET_TPC_ALIGNER_BUSY(tpc_cntl_status_reg, tpc_aligner_busy) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TPC_ALIGNER_BUSY_MASK) | (tpc_aligner_busy << TPC_CNTL_STATUS_TPC_ALIGNER_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_SET_TPC_RR_FIFO_BUSY(tpc_cntl_status_reg, tpc_rr_fifo_busy) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TPC_RR_FIFO_BUSY_MASK) | (tpc_rr_fifo_busy << TPC_CNTL_STATUS_TPC_RR_FIFO_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_SET_TPC_BLEND_PIPE_BUSY(tpc_cntl_status_reg, tpc_blend_pipe_busy) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TPC_BLEND_PIPE_BUSY_MASK) | (tpc_blend_pipe_busy << TPC_CNTL_STATUS_TPC_BLEND_PIPE_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_SET_TPC_OUT_FIFO_BUSY(tpc_cntl_status_reg, tpc_out_fifo_busy) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TPC_OUT_FIFO_BUSY_MASK) | (tpc_out_fifo_busy << TPC_CNTL_STATUS_TPC_OUT_FIFO_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_SET_TPC_BLEND_BUSY(tpc_cntl_status_reg, tpc_blend_busy) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TPC_BLEND_BUSY_MASK) | (tpc_blend_busy << TPC_CNTL_STATUS_TPC_BLEND_BUSY_SHIFT)
+#define TPC_CNTL_STATUS_SET_TF_TW_RTS(tpc_cntl_status_reg, tf_tw_rts) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TF_TW_RTS_MASK) | (tf_tw_rts << TPC_CNTL_STATUS_TF_TW_RTS_SHIFT)
+#define TPC_CNTL_STATUS_SET_TF_TW_STATE_RTS(tpc_cntl_status_reg, tf_tw_state_rts) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TF_TW_STATE_RTS_MASK) | (tf_tw_state_rts << TPC_CNTL_STATUS_TF_TW_STATE_RTS_SHIFT)
+#define TPC_CNTL_STATUS_SET_TF_TW_RTR(tpc_cntl_status_reg, tf_tw_rtr) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TF_TW_RTR_MASK) | (tf_tw_rtr << TPC_CNTL_STATUS_TF_TW_RTR_SHIFT)
+#define TPC_CNTL_STATUS_SET_TW_TA_RTS(tpc_cntl_status_reg, tw_ta_rts) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TW_TA_RTS_MASK) | (tw_ta_rts << TPC_CNTL_STATUS_TW_TA_RTS_SHIFT)
+#define TPC_CNTL_STATUS_SET_TW_TA_TT_RTS(tpc_cntl_status_reg, tw_ta_tt_rts) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TW_TA_TT_RTS_MASK) | (tw_ta_tt_rts << TPC_CNTL_STATUS_TW_TA_TT_RTS_SHIFT)
+#define TPC_CNTL_STATUS_SET_TW_TA_LAST_RTS(tpc_cntl_status_reg, tw_ta_last_rts) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TW_TA_LAST_RTS_MASK) | (tw_ta_last_rts << TPC_CNTL_STATUS_TW_TA_LAST_RTS_SHIFT)
+#define TPC_CNTL_STATUS_SET_TW_TA_RTR(tpc_cntl_status_reg, tw_ta_rtr) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TW_TA_RTR_MASK) | (tw_ta_rtr << TPC_CNTL_STATUS_TW_TA_RTR_SHIFT)
+#define TPC_CNTL_STATUS_SET_TA_TB_RTS(tpc_cntl_status_reg, ta_tb_rts) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TA_TB_RTS_MASK) | (ta_tb_rts << TPC_CNTL_STATUS_TA_TB_RTS_SHIFT)
+#define TPC_CNTL_STATUS_SET_TA_TB_TT_RTS(tpc_cntl_status_reg, ta_tb_tt_rts) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TA_TB_TT_RTS_MASK) | (ta_tb_tt_rts << TPC_CNTL_STATUS_TA_TB_TT_RTS_SHIFT)
+#define TPC_CNTL_STATUS_SET_TA_TB_RTR(tpc_cntl_status_reg, ta_tb_rtr) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TA_TB_RTR_MASK) | (ta_tb_rtr << TPC_CNTL_STATUS_TA_TB_RTR_SHIFT)
+#define TPC_CNTL_STATUS_SET_TA_TF_RTS(tpc_cntl_status_reg, ta_tf_rts) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TA_TF_RTS_MASK) | (ta_tf_rts << TPC_CNTL_STATUS_TA_TF_RTS_SHIFT)
+#define TPC_CNTL_STATUS_SET_TA_TF_TC_FIFO_REN(tpc_cntl_status_reg, ta_tf_tc_fifo_ren) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TA_TF_TC_FIFO_REN_MASK) | (ta_tf_tc_fifo_ren << TPC_CNTL_STATUS_TA_TF_TC_FIFO_REN_SHIFT)
+#define TPC_CNTL_STATUS_SET_TP_SQ_DEC(tpc_cntl_status_reg, tp_sq_dec) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TP_SQ_DEC_MASK) | (tp_sq_dec << TPC_CNTL_STATUS_TP_SQ_DEC_SHIFT)
+#define TPC_CNTL_STATUS_SET_TPC_BUSY(tpc_cntl_status_reg, tpc_busy) \
+ tpc_cntl_status_reg = (tpc_cntl_status_reg & ~TPC_CNTL_STATUS_TPC_BUSY_MASK) | (tpc_busy << TPC_CNTL_STATUS_TPC_BUSY_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tpc_cntl_status_t {
+ unsigned int tpc_input_busy : TPC_CNTL_STATUS_TPC_INPUT_BUSY_SIZE;
+ unsigned int tpc_tc_fifo_busy : TPC_CNTL_STATUS_TPC_TC_FIFO_BUSY_SIZE;
+ unsigned int tpc_state_fifo_busy : TPC_CNTL_STATUS_TPC_STATE_FIFO_BUSY_SIZE;
+ unsigned int tpc_fetch_fifo_busy : TPC_CNTL_STATUS_TPC_FETCH_FIFO_BUSY_SIZE;
+ unsigned int tpc_walker_pipe_busy : TPC_CNTL_STATUS_TPC_WALKER_PIPE_BUSY_SIZE;
+ unsigned int tpc_walk_fifo_busy : TPC_CNTL_STATUS_TPC_WALK_FIFO_BUSY_SIZE;
+ unsigned int tpc_walker_busy : TPC_CNTL_STATUS_TPC_WALKER_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int tpc_aligner_pipe_busy : TPC_CNTL_STATUS_TPC_ALIGNER_PIPE_BUSY_SIZE;
+ unsigned int tpc_align_fifo_busy : TPC_CNTL_STATUS_TPC_ALIGN_FIFO_BUSY_SIZE;
+ unsigned int tpc_aligner_busy : TPC_CNTL_STATUS_TPC_ALIGNER_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int tpc_rr_fifo_busy : TPC_CNTL_STATUS_TPC_RR_FIFO_BUSY_SIZE;
+ unsigned int tpc_blend_pipe_busy : TPC_CNTL_STATUS_TPC_BLEND_PIPE_BUSY_SIZE;
+ unsigned int tpc_out_fifo_busy : TPC_CNTL_STATUS_TPC_OUT_FIFO_BUSY_SIZE;
+ unsigned int tpc_blend_busy : TPC_CNTL_STATUS_TPC_BLEND_BUSY_SIZE;
+ unsigned int tf_tw_rts : TPC_CNTL_STATUS_TF_TW_RTS_SIZE;
+ unsigned int tf_tw_state_rts : TPC_CNTL_STATUS_TF_TW_STATE_RTS_SIZE;
+ unsigned int : 1;
+ unsigned int tf_tw_rtr : TPC_CNTL_STATUS_TF_TW_RTR_SIZE;
+ unsigned int tw_ta_rts : TPC_CNTL_STATUS_TW_TA_RTS_SIZE;
+ unsigned int tw_ta_tt_rts : TPC_CNTL_STATUS_TW_TA_TT_RTS_SIZE;
+ unsigned int tw_ta_last_rts : TPC_CNTL_STATUS_TW_TA_LAST_RTS_SIZE;
+ unsigned int tw_ta_rtr : TPC_CNTL_STATUS_TW_TA_RTR_SIZE;
+ unsigned int ta_tb_rts : TPC_CNTL_STATUS_TA_TB_RTS_SIZE;
+ unsigned int ta_tb_tt_rts : TPC_CNTL_STATUS_TA_TB_TT_RTS_SIZE;
+ unsigned int : 1;
+ unsigned int ta_tb_rtr : TPC_CNTL_STATUS_TA_TB_RTR_SIZE;
+ unsigned int ta_tf_rts : TPC_CNTL_STATUS_TA_TF_RTS_SIZE;
+ unsigned int ta_tf_tc_fifo_ren : TPC_CNTL_STATUS_TA_TF_TC_FIFO_REN_SIZE;
+ unsigned int tp_sq_dec : TPC_CNTL_STATUS_TP_SQ_DEC_SIZE;
+ unsigned int tpc_busy : TPC_CNTL_STATUS_TPC_BUSY_SIZE;
+ } tpc_cntl_status_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tpc_cntl_status_t {
+ unsigned int tpc_busy : TPC_CNTL_STATUS_TPC_BUSY_SIZE;
+ unsigned int tp_sq_dec : TPC_CNTL_STATUS_TP_SQ_DEC_SIZE;
+ unsigned int ta_tf_tc_fifo_ren : TPC_CNTL_STATUS_TA_TF_TC_FIFO_REN_SIZE;
+ unsigned int ta_tf_rts : TPC_CNTL_STATUS_TA_TF_RTS_SIZE;
+ unsigned int ta_tb_rtr : TPC_CNTL_STATUS_TA_TB_RTR_SIZE;
+ unsigned int : 1;
+ unsigned int ta_tb_tt_rts : TPC_CNTL_STATUS_TA_TB_TT_RTS_SIZE;
+ unsigned int ta_tb_rts : TPC_CNTL_STATUS_TA_TB_RTS_SIZE;
+ unsigned int tw_ta_rtr : TPC_CNTL_STATUS_TW_TA_RTR_SIZE;
+ unsigned int tw_ta_last_rts : TPC_CNTL_STATUS_TW_TA_LAST_RTS_SIZE;
+ unsigned int tw_ta_tt_rts : TPC_CNTL_STATUS_TW_TA_TT_RTS_SIZE;
+ unsigned int tw_ta_rts : TPC_CNTL_STATUS_TW_TA_RTS_SIZE;
+ unsigned int tf_tw_rtr : TPC_CNTL_STATUS_TF_TW_RTR_SIZE;
+ unsigned int : 1;
+ unsigned int tf_tw_state_rts : TPC_CNTL_STATUS_TF_TW_STATE_RTS_SIZE;
+ unsigned int tf_tw_rts : TPC_CNTL_STATUS_TF_TW_RTS_SIZE;
+ unsigned int tpc_blend_busy : TPC_CNTL_STATUS_TPC_BLEND_BUSY_SIZE;
+ unsigned int tpc_out_fifo_busy : TPC_CNTL_STATUS_TPC_OUT_FIFO_BUSY_SIZE;
+ unsigned int tpc_blend_pipe_busy : TPC_CNTL_STATUS_TPC_BLEND_PIPE_BUSY_SIZE;
+ unsigned int tpc_rr_fifo_busy : TPC_CNTL_STATUS_TPC_RR_FIFO_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int tpc_aligner_busy : TPC_CNTL_STATUS_TPC_ALIGNER_BUSY_SIZE;
+ unsigned int tpc_align_fifo_busy : TPC_CNTL_STATUS_TPC_ALIGN_FIFO_BUSY_SIZE;
+ unsigned int tpc_aligner_pipe_busy : TPC_CNTL_STATUS_TPC_ALIGNER_PIPE_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int tpc_walker_busy : TPC_CNTL_STATUS_TPC_WALKER_BUSY_SIZE;
+ unsigned int tpc_walk_fifo_busy : TPC_CNTL_STATUS_TPC_WALK_FIFO_BUSY_SIZE;
+ unsigned int tpc_walker_pipe_busy : TPC_CNTL_STATUS_TPC_WALKER_PIPE_BUSY_SIZE;
+ unsigned int tpc_fetch_fifo_busy : TPC_CNTL_STATUS_TPC_FETCH_FIFO_BUSY_SIZE;
+ unsigned int tpc_state_fifo_busy : TPC_CNTL_STATUS_TPC_STATE_FIFO_BUSY_SIZE;
+ unsigned int tpc_tc_fifo_busy : TPC_CNTL_STATUS_TPC_TC_FIFO_BUSY_SIZE;
+ unsigned int tpc_input_busy : TPC_CNTL_STATUS_TPC_INPUT_BUSY_SIZE;
+ } tpc_cntl_status_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tpc_cntl_status_t f;
+} tpc_cntl_status_u;
+
+
+/*
+ * TPC_DEBUG0 struct
+ */
+
+#define TPC_DEBUG0_LOD_CNTL_SIZE 2
+#define TPC_DEBUG0_IC_CTR_SIZE 2
+#define TPC_DEBUG0_WALKER_CNTL_SIZE 4
+#define TPC_DEBUG0_ALIGNER_CNTL_SIZE 3
+#define TPC_DEBUG0_PREV_TC_STATE_VALID_SIZE 1
+#define TPC_DEBUG0_WALKER_STATE_SIZE 10
+#define TPC_DEBUG0_ALIGNER_STATE_SIZE 2
+#define TPC_DEBUG0_REG_CLK_EN_SIZE 1
+#define TPC_DEBUG0_TPC_CLK_EN_SIZE 1
+#define TPC_DEBUG0_SQ_TP_WAKEUP_SIZE 1
+
+#define TPC_DEBUG0_LOD_CNTL_SHIFT 0
+#define TPC_DEBUG0_IC_CTR_SHIFT 2
+#define TPC_DEBUG0_WALKER_CNTL_SHIFT 4
+#define TPC_DEBUG0_ALIGNER_CNTL_SHIFT 8
+#define TPC_DEBUG0_PREV_TC_STATE_VALID_SHIFT 12
+#define TPC_DEBUG0_WALKER_STATE_SHIFT 16
+#define TPC_DEBUG0_ALIGNER_STATE_SHIFT 26
+#define TPC_DEBUG0_REG_CLK_EN_SHIFT 29
+#define TPC_DEBUG0_TPC_CLK_EN_SHIFT 30
+#define TPC_DEBUG0_SQ_TP_WAKEUP_SHIFT 31
+
+#define TPC_DEBUG0_LOD_CNTL_MASK 0x00000003
+#define TPC_DEBUG0_IC_CTR_MASK 0x0000000c
+#define TPC_DEBUG0_WALKER_CNTL_MASK 0x000000f0
+#define TPC_DEBUG0_ALIGNER_CNTL_MASK 0x00000700
+#define TPC_DEBUG0_PREV_TC_STATE_VALID_MASK 0x00001000
+#define TPC_DEBUG0_WALKER_STATE_MASK 0x03ff0000
+#define TPC_DEBUG0_ALIGNER_STATE_MASK 0x0c000000
+#define TPC_DEBUG0_REG_CLK_EN_MASK 0x20000000
+#define TPC_DEBUG0_TPC_CLK_EN_MASK 0x40000000
+#define TPC_DEBUG0_SQ_TP_WAKEUP_MASK 0x80000000
+
+#define TPC_DEBUG0_MASK \
+ (TPC_DEBUG0_LOD_CNTL_MASK | \
+ TPC_DEBUG0_IC_CTR_MASK | \
+ TPC_DEBUG0_WALKER_CNTL_MASK | \
+ TPC_DEBUG0_ALIGNER_CNTL_MASK | \
+ TPC_DEBUG0_PREV_TC_STATE_VALID_MASK | \
+ TPC_DEBUG0_WALKER_STATE_MASK | \
+ TPC_DEBUG0_ALIGNER_STATE_MASK | \
+ TPC_DEBUG0_REG_CLK_EN_MASK | \
+ TPC_DEBUG0_TPC_CLK_EN_MASK | \
+ TPC_DEBUG0_SQ_TP_WAKEUP_MASK)
+
+#define TPC_DEBUG0(lod_cntl, ic_ctr, walker_cntl, aligner_cntl, prev_tc_state_valid, walker_state, aligner_state, reg_clk_en, tpc_clk_en, sq_tp_wakeup) \
+ ((lod_cntl << TPC_DEBUG0_LOD_CNTL_SHIFT) | \
+ (ic_ctr << TPC_DEBUG0_IC_CTR_SHIFT) | \
+ (walker_cntl << TPC_DEBUG0_WALKER_CNTL_SHIFT) | \
+ (aligner_cntl << TPC_DEBUG0_ALIGNER_CNTL_SHIFT) | \
+ (prev_tc_state_valid << TPC_DEBUG0_PREV_TC_STATE_VALID_SHIFT) | \
+ (walker_state << TPC_DEBUG0_WALKER_STATE_SHIFT) | \
+ (aligner_state << TPC_DEBUG0_ALIGNER_STATE_SHIFT) | \
+ (reg_clk_en << TPC_DEBUG0_REG_CLK_EN_SHIFT) | \
+ (tpc_clk_en << TPC_DEBUG0_TPC_CLK_EN_SHIFT) | \
+ (sq_tp_wakeup << TPC_DEBUG0_SQ_TP_WAKEUP_SHIFT))
+
+#define TPC_DEBUG0_GET_LOD_CNTL(tpc_debug0) \
+ ((tpc_debug0 & TPC_DEBUG0_LOD_CNTL_MASK) >> TPC_DEBUG0_LOD_CNTL_SHIFT)
+#define TPC_DEBUG0_GET_IC_CTR(tpc_debug0) \
+ ((tpc_debug0 & TPC_DEBUG0_IC_CTR_MASK) >> TPC_DEBUG0_IC_CTR_SHIFT)
+#define TPC_DEBUG0_GET_WALKER_CNTL(tpc_debug0) \
+ ((tpc_debug0 & TPC_DEBUG0_WALKER_CNTL_MASK) >> TPC_DEBUG0_WALKER_CNTL_SHIFT)
+#define TPC_DEBUG0_GET_ALIGNER_CNTL(tpc_debug0) \
+ ((tpc_debug0 & TPC_DEBUG0_ALIGNER_CNTL_MASK) >> TPC_DEBUG0_ALIGNER_CNTL_SHIFT)
+#define TPC_DEBUG0_GET_PREV_TC_STATE_VALID(tpc_debug0) \
+ ((tpc_debug0 & TPC_DEBUG0_PREV_TC_STATE_VALID_MASK) >> TPC_DEBUG0_PREV_TC_STATE_VALID_SHIFT)
+#define TPC_DEBUG0_GET_WALKER_STATE(tpc_debug0) \
+ ((tpc_debug0 & TPC_DEBUG0_WALKER_STATE_MASK) >> TPC_DEBUG0_WALKER_STATE_SHIFT)
+#define TPC_DEBUG0_GET_ALIGNER_STATE(tpc_debug0) \
+ ((tpc_debug0 & TPC_DEBUG0_ALIGNER_STATE_MASK) >> TPC_DEBUG0_ALIGNER_STATE_SHIFT)
+#define TPC_DEBUG0_GET_REG_CLK_EN(tpc_debug0) \
+ ((tpc_debug0 & TPC_DEBUG0_REG_CLK_EN_MASK) >> TPC_DEBUG0_REG_CLK_EN_SHIFT)
+#define TPC_DEBUG0_GET_TPC_CLK_EN(tpc_debug0) \
+ ((tpc_debug0 & TPC_DEBUG0_TPC_CLK_EN_MASK) >> TPC_DEBUG0_TPC_CLK_EN_SHIFT)
+#define TPC_DEBUG0_GET_SQ_TP_WAKEUP(tpc_debug0) \
+ ((tpc_debug0 & TPC_DEBUG0_SQ_TP_WAKEUP_MASK) >> TPC_DEBUG0_SQ_TP_WAKEUP_SHIFT)
+
+#define TPC_DEBUG0_SET_LOD_CNTL(tpc_debug0_reg, lod_cntl) \
+ tpc_debug0_reg = (tpc_debug0_reg & ~TPC_DEBUG0_LOD_CNTL_MASK) | (lod_cntl << TPC_DEBUG0_LOD_CNTL_SHIFT)
+#define TPC_DEBUG0_SET_IC_CTR(tpc_debug0_reg, ic_ctr) \
+ tpc_debug0_reg = (tpc_debug0_reg & ~TPC_DEBUG0_IC_CTR_MASK) | (ic_ctr << TPC_DEBUG0_IC_CTR_SHIFT)
+#define TPC_DEBUG0_SET_WALKER_CNTL(tpc_debug0_reg, walker_cntl) \
+ tpc_debug0_reg = (tpc_debug0_reg & ~TPC_DEBUG0_WALKER_CNTL_MASK) | (walker_cntl << TPC_DEBUG0_WALKER_CNTL_SHIFT)
+#define TPC_DEBUG0_SET_ALIGNER_CNTL(tpc_debug0_reg, aligner_cntl) \
+ tpc_debug0_reg = (tpc_debug0_reg & ~TPC_DEBUG0_ALIGNER_CNTL_MASK) | (aligner_cntl << TPC_DEBUG0_ALIGNER_CNTL_SHIFT)
+#define TPC_DEBUG0_SET_PREV_TC_STATE_VALID(tpc_debug0_reg, prev_tc_state_valid) \
+ tpc_debug0_reg = (tpc_debug0_reg & ~TPC_DEBUG0_PREV_TC_STATE_VALID_MASK) | (prev_tc_state_valid << TPC_DEBUG0_PREV_TC_STATE_VALID_SHIFT)
+#define TPC_DEBUG0_SET_WALKER_STATE(tpc_debug0_reg, walker_state) \
+ tpc_debug0_reg = (tpc_debug0_reg & ~TPC_DEBUG0_WALKER_STATE_MASK) | (walker_state << TPC_DEBUG0_WALKER_STATE_SHIFT)
+#define TPC_DEBUG0_SET_ALIGNER_STATE(tpc_debug0_reg, aligner_state) \
+ tpc_debug0_reg = (tpc_debug0_reg & ~TPC_DEBUG0_ALIGNER_STATE_MASK) | (aligner_state << TPC_DEBUG0_ALIGNER_STATE_SHIFT)
+#define TPC_DEBUG0_SET_REG_CLK_EN(tpc_debug0_reg, reg_clk_en) \
+ tpc_debug0_reg = (tpc_debug0_reg & ~TPC_DEBUG0_REG_CLK_EN_MASK) | (reg_clk_en << TPC_DEBUG0_REG_CLK_EN_SHIFT)
+#define TPC_DEBUG0_SET_TPC_CLK_EN(tpc_debug0_reg, tpc_clk_en) \
+ tpc_debug0_reg = (tpc_debug0_reg & ~TPC_DEBUG0_TPC_CLK_EN_MASK) | (tpc_clk_en << TPC_DEBUG0_TPC_CLK_EN_SHIFT)
+#define TPC_DEBUG0_SET_SQ_TP_WAKEUP(tpc_debug0_reg, sq_tp_wakeup) \
+ tpc_debug0_reg = (tpc_debug0_reg & ~TPC_DEBUG0_SQ_TP_WAKEUP_MASK) | (sq_tp_wakeup << TPC_DEBUG0_SQ_TP_WAKEUP_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tpc_debug0_t {
+ unsigned int lod_cntl : TPC_DEBUG0_LOD_CNTL_SIZE;
+ unsigned int ic_ctr : TPC_DEBUG0_IC_CTR_SIZE;
+ unsigned int walker_cntl : TPC_DEBUG0_WALKER_CNTL_SIZE;
+ unsigned int aligner_cntl : TPC_DEBUG0_ALIGNER_CNTL_SIZE;
+ unsigned int : 1;
+ unsigned int prev_tc_state_valid : TPC_DEBUG0_PREV_TC_STATE_VALID_SIZE;
+ unsigned int : 3;
+ unsigned int walker_state : TPC_DEBUG0_WALKER_STATE_SIZE;
+ unsigned int aligner_state : TPC_DEBUG0_ALIGNER_STATE_SIZE;
+ unsigned int : 1;
+ unsigned int reg_clk_en : TPC_DEBUG0_REG_CLK_EN_SIZE;
+ unsigned int tpc_clk_en : TPC_DEBUG0_TPC_CLK_EN_SIZE;
+ unsigned int sq_tp_wakeup : TPC_DEBUG0_SQ_TP_WAKEUP_SIZE;
+ } tpc_debug0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tpc_debug0_t {
+ unsigned int sq_tp_wakeup : TPC_DEBUG0_SQ_TP_WAKEUP_SIZE;
+ unsigned int tpc_clk_en : TPC_DEBUG0_TPC_CLK_EN_SIZE;
+ unsigned int reg_clk_en : TPC_DEBUG0_REG_CLK_EN_SIZE;
+ unsigned int : 1;
+ unsigned int aligner_state : TPC_DEBUG0_ALIGNER_STATE_SIZE;
+ unsigned int walker_state : TPC_DEBUG0_WALKER_STATE_SIZE;
+ unsigned int : 3;
+ unsigned int prev_tc_state_valid : TPC_DEBUG0_PREV_TC_STATE_VALID_SIZE;
+ unsigned int : 1;
+ unsigned int aligner_cntl : TPC_DEBUG0_ALIGNER_CNTL_SIZE;
+ unsigned int walker_cntl : TPC_DEBUG0_WALKER_CNTL_SIZE;
+ unsigned int ic_ctr : TPC_DEBUG0_IC_CTR_SIZE;
+ unsigned int lod_cntl : TPC_DEBUG0_LOD_CNTL_SIZE;
+ } tpc_debug0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tpc_debug0_t f;
+} tpc_debug0_u;
+
+
+/*
+ * TPC_DEBUG1 struct
+ */
+
+#define TPC_DEBUG1_UNUSED_SIZE 1
+
+#define TPC_DEBUG1_UNUSED_SHIFT 0
+
+#define TPC_DEBUG1_UNUSED_MASK 0x00000001
+
+#define TPC_DEBUG1_MASK \
+ (TPC_DEBUG1_UNUSED_MASK)
+
+#define TPC_DEBUG1(unused) \
+ ((unused << TPC_DEBUG1_UNUSED_SHIFT))
+
+#define TPC_DEBUG1_GET_UNUSED(tpc_debug1) \
+ ((tpc_debug1 & TPC_DEBUG1_UNUSED_MASK) >> TPC_DEBUG1_UNUSED_SHIFT)
+
+#define TPC_DEBUG1_SET_UNUSED(tpc_debug1_reg, unused) \
+ tpc_debug1_reg = (tpc_debug1_reg & ~TPC_DEBUG1_UNUSED_MASK) | (unused << TPC_DEBUG1_UNUSED_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tpc_debug1_t {
+ unsigned int unused : TPC_DEBUG1_UNUSED_SIZE;
+ unsigned int : 31;
+ } tpc_debug1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tpc_debug1_t {
+ unsigned int : 31;
+ unsigned int unused : TPC_DEBUG1_UNUSED_SIZE;
+ } tpc_debug1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tpc_debug1_t f;
+} tpc_debug1_u;
+
+
+/*
+ * TPC_CHICKEN struct
+ */
+
+#define TPC_CHICKEN_BLEND_PRECISION_SIZE 1
+#define TPC_CHICKEN_SPARE_SIZE 31
+
+#define TPC_CHICKEN_BLEND_PRECISION_SHIFT 0
+#define TPC_CHICKEN_SPARE_SHIFT 1
+
+#define TPC_CHICKEN_BLEND_PRECISION_MASK 0x00000001
+#define TPC_CHICKEN_SPARE_MASK 0xfffffffe
+
+#define TPC_CHICKEN_MASK \
+ (TPC_CHICKEN_BLEND_PRECISION_MASK | \
+ TPC_CHICKEN_SPARE_MASK)
+
+#define TPC_CHICKEN(blend_precision, spare) \
+ ((blend_precision << TPC_CHICKEN_BLEND_PRECISION_SHIFT) | \
+ (spare << TPC_CHICKEN_SPARE_SHIFT))
+
+#define TPC_CHICKEN_GET_BLEND_PRECISION(tpc_chicken) \
+ ((tpc_chicken & TPC_CHICKEN_BLEND_PRECISION_MASK) >> TPC_CHICKEN_BLEND_PRECISION_SHIFT)
+#define TPC_CHICKEN_GET_SPARE(tpc_chicken) \
+ ((tpc_chicken & TPC_CHICKEN_SPARE_MASK) >> TPC_CHICKEN_SPARE_SHIFT)
+
+#define TPC_CHICKEN_SET_BLEND_PRECISION(tpc_chicken_reg, blend_precision) \
+ tpc_chicken_reg = (tpc_chicken_reg & ~TPC_CHICKEN_BLEND_PRECISION_MASK) | (blend_precision << TPC_CHICKEN_BLEND_PRECISION_SHIFT)
+#define TPC_CHICKEN_SET_SPARE(tpc_chicken_reg, spare) \
+ tpc_chicken_reg = (tpc_chicken_reg & ~TPC_CHICKEN_SPARE_MASK) | (spare << TPC_CHICKEN_SPARE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tpc_chicken_t {
+ unsigned int blend_precision : TPC_CHICKEN_BLEND_PRECISION_SIZE;
+ unsigned int spare : TPC_CHICKEN_SPARE_SIZE;
+ } tpc_chicken_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tpc_chicken_t {
+ unsigned int spare : TPC_CHICKEN_SPARE_SIZE;
+ unsigned int blend_precision : TPC_CHICKEN_BLEND_PRECISION_SIZE;
+ } tpc_chicken_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tpc_chicken_t f;
+} tpc_chicken_u;
+
+
+/*
+ * TP0_CNTL_STATUS struct
+ */
+
+#define TP0_CNTL_STATUS_TP_INPUT_BUSY_SIZE 1
+#define TP0_CNTL_STATUS_TP_LOD_BUSY_SIZE 1
+#define TP0_CNTL_STATUS_TP_LOD_FIFO_BUSY_SIZE 1
+#define TP0_CNTL_STATUS_TP_ADDR_BUSY_SIZE 1
+#define TP0_CNTL_STATUS_TP_ALIGN_FIFO_BUSY_SIZE 1
+#define TP0_CNTL_STATUS_TP_ALIGNER_BUSY_SIZE 1
+#define TP0_CNTL_STATUS_TP_TC_FIFO_BUSY_SIZE 1
+#define TP0_CNTL_STATUS_TP_RR_FIFO_BUSY_SIZE 1
+#define TP0_CNTL_STATUS_TP_FETCH_BUSY_SIZE 1
+#define TP0_CNTL_STATUS_TP_CH_BLEND_BUSY_SIZE 1
+#define TP0_CNTL_STATUS_TP_TT_BUSY_SIZE 1
+#define TP0_CNTL_STATUS_TP_HICOLOR_BUSY_SIZE 1
+#define TP0_CNTL_STATUS_TP_BLEND_BUSY_SIZE 1
+#define TP0_CNTL_STATUS_TP_OUT_FIFO_BUSY_SIZE 1
+#define TP0_CNTL_STATUS_TP_OUTPUT_BUSY_SIZE 1
+#define TP0_CNTL_STATUS_IN_LC_RTS_SIZE 1
+#define TP0_CNTL_STATUS_LC_LA_RTS_SIZE 1
+#define TP0_CNTL_STATUS_LA_FL_RTS_SIZE 1
+#define TP0_CNTL_STATUS_FL_TA_RTS_SIZE 1
+#define TP0_CNTL_STATUS_TA_FA_RTS_SIZE 1
+#define TP0_CNTL_STATUS_TA_FA_TT_RTS_SIZE 1
+#define TP0_CNTL_STATUS_FA_AL_RTS_SIZE 1
+#define TP0_CNTL_STATUS_FA_AL_TT_RTS_SIZE 1
+#define TP0_CNTL_STATUS_AL_TF_RTS_SIZE 1
+#define TP0_CNTL_STATUS_AL_TF_TT_RTS_SIZE 1
+#define TP0_CNTL_STATUS_TF_TB_RTS_SIZE 1
+#define TP0_CNTL_STATUS_TF_TB_TT_RTS_SIZE 1
+#define TP0_CNTL_STATUS_TB_TT_RTS_SIZE 1
+#define TP0_CNTL_STATUS_TB_TT_TT_RESET_SIZE 1
+#define TP0_CNTL_STATUS_TB_TO_RTS_SIZE 1
+#define TP0_CNTL_STATUS_TP_BUSY_SIZE 1
+
+#define TP0_CNTL_STATUS_TP_INPUT_BUSY_SHIFT 0
+#define TP0_CNTL_STATUS_TP_LOD_BUSY_SHIFT 1
+#define TP0_CNTL_STATUS_TP_LOD_FIFO_BUSY_SHIFT 2
+#define TP0_CNTL_STATUS_TP_ADDR_BUSY_SHIFT 3
+#define TP0_CNTL_STATUS_TP_ALIGN_FIFO_BUSY_SHIFT 4
+#define TP0_CNTL_STATUS_TP_ALIGNER_BUSY_SHIFT 5
+#define TP0_CNTL_STATUS_TP_TC_FIFO_BUSY_SHIFT 6
+#define TP0_CNTL_STATUS_TP_RR_FIFO_BUSY_SHIFT 7
+#define TP0_CNTL_STATUS_TP_FETCH_BUSY_SHIFT 8
+#define TP0_CNTL_STATUS_TP_CH_BLEND_BUSY_SHIFT 9
+#define TP0_CNTL_STATUS_TP_TT_BUSY_SHIFT 10
+#define TP0_CNTL_STATUS_TP_HICOLOR_BUSY_SHIFT 11
+#define TP0_CNTL_STATUS_TP_BLEND_BUSY_SHIFT 12
+#define TP0_CNTL_STATUS_TP_OUT_FIFO_BUSY_SHIFT 13
+#define TP0_CNTL_STATUS_TP_OUTPUT_BUSY_SHIFT 14
+#define TP0_CNTL_STATUS_IN_LC_RTS_SHIFT 16
+#define TP0_CNTL_STATUS_LC_LA_RTS_SHIFT 17
+#define TP0_CNTL_STATUS_LA_FL_RTS_SHIFT 18
+#define TP0_CNTL_STATUS_FL_TA_RTS_SHIFT 19
+#define TP0_CNTL_STATUS_TA_FA_RTS_SHIFT 20
+#define TP0_CNTL_STATUS_TA_FA_TT_RTS_SHIFT 21
+#define TP0_CNTL_STATUS_FA_AL_RTS_SHIFT 22
+#define TP0_CNTL_STATUS_FA_AL_TT_RTS_SHIFT 23
+#define TP0_CNTL_STATUS_AL_TF_RTS_SHIFT 24
+#define TP0_CNTL_STATUS_AL_TF_TT_RTS_SHIFT 25
+#define TP0_CNTL_STATUS_TF_TB_RTS_SHIFT 26
+#define TP0_CNTL_STATUS_TF_TB_TT_RTS_SHIFT 27
+#define TP0_CNTL_STATUS_TB_TT_RTS_SHIFT 28
+#define TP0_CNTL_STATUS_TB_TT_TT_RESET_SHIFT 29
+#define TP0_CNTL_STATUS_TB_TO_RTS_SHIFT 30
+#define TP0_CNTL_STATUS_TP_BUSY_SHIFT 31
+
+#define TP0_CNTL_STATUS_TP_INPUT_BUSY_MASK 0x00000001
+#define TP0_CNTL_STATUS_TP_LOD_BUSY_MASK 0x00000002
+#define TP0_CNTL_STATUS_TP_LOD_FIFO_BUSY_MASK 0x00000004
+#define TP0_CNTL_STATUS_TP_ADDR_BUSY_MASK 0x00000008
+#define TP0_CNTL_STATUS_TP_ALIGN_FIFO_BUSY_MASK 0x00000010
+#define TP0_CNTL_STATUS_TP_ALIGNER_BUSY_MASK 0x00000020
+#define TP0_CNTL_STATUS_TP_TC_FIFO_BUSY_MASK 0x00000040
+#define TP0_CNTL_STATUS_TP_RR_FIFO_BUSY_MASK 0x00000080
+#define TP0_CNTL_STATUS_TP_FETCH_BUSY_MASK 0x00000100
+#define TP0_CNTL_STATUS_TP_CH_BLEND_BUSY_MASK 0x00000200
+#define TP0_CNTL_STATUS_TP_TT_BUSY_MASK 0x00000400
+#define TP0_CNTL_STATUS_TP_HICOLOR_BUSY_MASK 0x00000800
+#define TP0_CNTL_STATUS_TP_BLEND_BUSY_MASK 0x00001000
+#define TP0_CNTL_STATUS_TP_OUT_FIFO_BUSY_MASK 0x00002000
+#define TP0_CNTL_STATUS_TP_OUTPUT_BUSY_MASK 0x00004000
+#define TP0_CNTL_STATUS_IN_LC_RTS_MASK 0x00010000
+#define TP0_CNTL_STATUS_LC_LA_RTS_MASK 0x00020000
+#define TP0_CNTL_STATUS_LA_FL_RTS_MASK 0x00040000
+#define TP0_CNTL_STATUS_FL_TA_RTS_MASK 0x00080000
+#define TP0_CNTL_STATUS_TA_FA_RTS_MASK 0x00100000
+#define TP0_CNTL_STATUS_TA_FA_TT_RTS_MASK 0x00200000
+#define TP0_CNTL_STATUS_FA_AL_RTS_MASK 0x00400000
+#define TP0_CNTL_STATUS_FA_AL_TT_RTS_MASK 0x00800000
+#define TP0_CNTL_STATUS_AL_TF_RTS_MASK 0x01000000
+#define TP0_CNTL_STATUS_AL_TF_TT_RTS_MASK 0x02000000
+#define TP0_CNTL_STATUS_TF_TB_RTS_MASK 0x04000000
+#define TP0_CNTL_STATUS_TF_TB_TT_RTS_MASK 0x08000000
+#define TP0_CNTL_STATUS_TB_TT_RTS_MASK 0x10000000
+#define TP0_CNTL_STATUS_TB_TT_TT_RESET_MASK 0x20000000
+#define TP0_CNTL_STATUS_TB_TO_RTS_MASK 0x40000000
+#define TP0_CNTL_STATUS_TP_BUSY_MASK 0x80000000
+
+#define TP0_CNTL_STATUS_MASK \
+ (TP0_CNTL_STATUS_TP_INPUT_BUSY_MASK | \
+ TP0_CNTL_STATUS_TP_LOD_BUSY_MASK | \
+ TP0_CNTL_STATUS_TP_LOD_FIFO_BUSY_MASK | \
+ TP0_CNTL_STATUS_TP_ADDR_BUSY_MASK | \
+ TP0_CNTL_STATUS_TP_ALIGN_FIFO_BUSY_MASK | \
+ TP0_CNTL_STATUS_TP_ALIGNER_BUSY_MASK | \
+ TP0_CNTL_STATUS_TP_TC_FIFO_BUSY_MASK | \
+ TP0_CNTL_STATUS_TP_RR_FIFO_BUSY_MASK | \
+ TP0_CNTL_STATUS_TP_FETCH_BUSY_MASK | \
+ TP0_CNTL_STATUS_TP_CH_BLEND_BUSY_MASK | \
+ TP0_CNTL_STATUS_TP_TT_BUSY_MASK | \
+ TP0_CNTL_STATUS_TP_HICOLOR_BUSY_MASK | \
+ TP0_CNTL_STATUS_TP_BLEND_BUSY_MASK | \
+ TP0_CNTL_STATUS_TP_OUT_FIFO_BUSY_MASK | \
+ TP0_CNTL_STATUS_TP_OUTPUT_BUSY_MASK | \
+ TP0_CNTL_STATUS_IN_LC_RTS_MASK | \
+ TP0_CNTL_STATUS_LC_LA_RTS_MASK | \
+ TP0_CNTL_STATUS_LA_FL_RTS_MASK | \
+ TP0_CNTL_STATUS_FL_TA_RTS_MASK | \
+ TP0_CNTL_STATUS_TA_FA_RTS_MASK | \
+ TP0_CNTL_STATUS_TA_FA_TT_RTS_MASK | \
+ TP0_CNTL_STATUS_FA_AL_RTS_MASK | \
+ TP0_CNTL_STATUS_FA_AL_TT_RTS_MASK | \
+ TP0_CNTL_STATUS_AL_TF_RTS_MASK | \
+ TP0_CNTL_STATUS_AL_TF_TT_RTS_MASK | \
+ TP0_CNTL_STATUS_TF_TB_RTS_MASK | \
+ TP0_CNTL_STATUS_TF_TB_TT_RTS_MASK | \
+ TP0_CNTL_STATUS_TB_TT_RTS_MASK | \
+ TP0_CNTL_STATUS_TB_TT_TT_RESET_MASK | \
+ TP0_CNTL_STATUS_TB_TO_RTS_MASK | \
+ TP0_CNTL_STATUS_TP_BUSY_MASK)
+
+#define TP0_CNTL_STATUS(tp_input_busy, tp_lod_busy, tp_lod_fifo_busy, tp_addr_busy, tp_align_fifo_busy, tp_aligner_busy, tp_tc_fifo_busy, tp_rr_fifo_busy, tp_fetch_busy, tp_ch_blend_busy, tp_tt_busy, tp_hicolor_busy, tp_blend_busy, tp_out_fifo_busy, tp_output_busy, in_lc_rts, lc_la_rts, la_fl_rts, fl_ta_rts, ta_fa_rts, ta_fa_tt_rts, fa_al_rts, fa_al_tt_rts, al_tf_rts, al_tf_tt_rts, tf_tb_rts, tf_tb_tt_rts, tb_tt_rts, tb_tt_tt_reset, tb_to_rts, tp_busy) \
+ ((tp_input_busy << TP0_CNTL_STATUS_TP_INPUT_BUSY_SHIFT) | \
+ (tp_lod_busy << TP0_CNTL_STATUS_TP_LOD_BUSY_SHIFT) | \
+ (tp_lod_fifo_busy << TP0_CNTL_STATUS_TP_LOD_FIFO_BUSY_SHIFT) | \
+ (tp_addr_busy << TP0_CNTL_STATUS_TP_ADDR_BUSY_SHIFT) | \
+ (tp_align_fifo_busy << TP0_CNTL_STATUS_TP_ALIGN_FIFO_BUSY_SHIFT) | \
+ (tp_aligner_busy << TP0_CNTL_STATUS_TP_ALIGNER_BUSY_SHIFT) | \
+ (tp_tc_fifo_busy << TP0_CNTL_STATUS_TP_TC_FIFO_BUSY_SHIFT) | \
+ (tp_rr_fifo_busy << TP0_CNTL_STATUS_TP_RR_FIFO_BUSY_SHIFT) | \
+ (tp_fetch_busy << TP0_CNTL_STATUS_TP_FETCH_BUSY_SHIFT) | \
+ (tp_ch_blend_busy << TP0_CNTL_STATUS_TP_CH_BLEND_BUSY_SHIFT) | \
+ (tp_tt_busy << TP0_CNTL_STATUS_TP_TT_BUSY_SHIFT) | \
+ (tp_hicolor_busy << TP0_CNTL_STATUS_TP_HICOLOR_BUSY_SHIFT) | \
+ (tp_blend_busy << TP0_CNTL_STATUS_TP_BLEND_BUSY_SHIFT) | \
+ (tp_out_fifo_busy << TP0_CNTL_STATUS_TP_OUT_FIFO_BUSY_SHIFT) | \
+ (tp_output_busy << TP0_CNTL_STATUS_TP_OUTPUT_BUSY_SHIFT) | \
+ (in_lc_rts << TP0_CNTL_STATUS_IN_LC_RTS_SHIFT) | \
+ (lc_la_rts << TP0_CNTL_STATUS_LC_LA_RTS_SHIFT) | \
+ (la_fl_rts << TP0_CNTL_STATUS_LA_FL_RTS_SHIFT) | \
+ (fl_ta_rts << TP0_CNTL_STATUS_FL_TA_RTS_SHIFT) | \
+ (ta_fa_rts << TP0_CNTL_STATUS_TA_FA_RTS_SHIFT) | \
+ (ta_fa_tt_rts << TP0_CNTL_STATUS_TA_FA_TT_RTS_SHIFT) | \
+ (fa_al_rts << TP0_CNTL_STATUS_FA_AL_RTS_SHIFT) | \
+ (fa_al_tt_rts << TP0_CNTL_STATUS_FA_AL_TT_RTS_SHIFT) | \
+ (al_tf_rts << TP0_CNTL_STATUS_AL_TF_RTS_SHIFT) | \
+ (al_tf_tt_rts << TP0_CNTL_STATUS_AL_TF_TT_RTS_SHIFT) | \
+ (tf_tb_rts << TP0_CNTL_STATUS_TF_TB_RTS_SHIFT) | \
+ (tf_tb_tt_rts << TP0_CNTL_STATUS_TF_TB_TT_RTS_SHIFT) | \
+ (tb_tt_rts << TP0_CNTL_STATUS_TB_TT_RTS_SHIFT) | \
+ (tb_tt_tt_reset << TP0_CNTL_STATUS_TB_TT_TT_RESET_SHIFT) | \
+ (tb_to_rts << TP0_CNTL_STATUS_TB_TO_RTS_SHIFT) | \
+ (tp_busy << TP0_CNTL_STATUS_TP_BUSY_SHIFT))
+
+#define TP0_CNTL_STATUS_GET_TP_INPUT_BUSY(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TP_INPUT_BUSY_MASK) >> TP0_CNTL_STATUS_TP_INPUT_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_GET_TP_LOD_BUSY(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TP_LOD_BUSY_MASK) >> TP0_CNTL_STATUS_TP_LOD_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_GET_TP_LOD_FIFO_BUSY(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TP_LOD_FIFO_BUSY_MASK) >> TP0_CNTL_STATUS_TP_LOD_FIFO_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_GET_TP_ADDR_BUSY(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TP_ADDR_BUSY_MASK) >> TP0_CNTL_STATUS_TP_ADDR_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_GET_TP_ALIGN_FIFO_BUSY(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TP_ALIGN_FIFO_BUSY_MASK) >> TP0_CNTL_STATUS_TP_ALIGN_FIFO_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_GET_TP_ALIGNER_BUSY(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TP_ALIGNER_BUSY_MASK) >> TP0_CNTL_STATUS_TP_ALIGNER_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_GET_TP_TC_FIFO_BUSY(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TP_TC_FIFO_BUSY_MASK) >> TP0_CNTL_STATUS_TP_TC_FIFO_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_GET_TP_RR_FIFO_BUSY(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TP_RR_FIFO_BUSY_MASK) >> TP0_CNTL_STATUS_TP_RR_FIFO_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_GET_TP_FETCH_BUSY(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TP_FETCH_BUSY_MASK) >> TP0_CNTL_STATUS_TP_FETCH_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_GET_TP_CH_BLEND_BUSY(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TP_CH_BLEND_BUSY_MASK) >> TP0_CNTL_STATUS_TP_CH_BLEND_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_GET_TP_TT_BUSY(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TP_TT_BUSY_MASK) >> TP0_CNTL_STATUS_TP_TT_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_GET_TP_HICOLOR_BUSY(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TP_HICOLOR_BUSY_MASK) >> TP0_CNTL_STATUS_TP_HICOLOR_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_GET_TP_BLEND_BUSY(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TP_BLEND_BUSY_MASK) >> TP0_CNTL_STATUS_TP_BLEND_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_GET_TP_OUT_FIFO_BUSY(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TP_OUT_FIFO_BUSY_MASK) >> TP0_CNTL_STATUS_TP_OUT_FIFO_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_GET_TP_OUTPUT_BUSY(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TP_OUTPUT_BUSY_MASK) >> TP0_CNTL_STATUS_TP_OUTPUT_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_GET_IN_LC_RTS(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_IN_LC_RTS_MASK) >> TP0_CNTL_STATUS_IN_LC_RTS_SHIFT)
+#define TP0_CNTL_STATUS_GET_LC_LA_RTS(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_LC_LA_RTS_MASK) >> TP0_CNTL_STATUS_LC_LA_RTS_SHIFT)
+#define TP0_CNTL_STATUS_GET_LA_FL_RTS(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_LA_FL_RTS_MASK) >> TP0_CNTL_STATUS_LA_FL_RTS_SHIFT)
+#define TP0_CNTL_STATUS_GET_FL_TA_RTS(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_FL_TA_RTS_MASK) >> TP0_CNTL_STATUS_FL_TA_RTS_SHIFT)
+#define TP0_CNTL_STATUS_GET_TA_FA_RTS(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TA_FA_RTS_MASK) >> TP0_CNTL_STATUS_TA_FA_RTS_SHIFT)
+#define TP0_CNTL_STATUS_GET_TA_FA_TT_RTS(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TA_FA_TT_RTS_MASK) >> TP0_CNTL_STATUS_TA_FA_TT_RTS_SHIFT)
+#define TP0_CNTL_STATUS_GET_FA_AL_RTS(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_FA_AL_RTS_MASK) >> TP0_CNTL_STATUS_FA_AL_RTS_SHIFT)
+#define TP0_CNTL_STATUS_GET_FA_AL_TT_RTS(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_FA_AL_TT_RTS_MASK) >> TP0_CNTL_STATUS_FA_AL_TT_RTS_SHIFT)
+#define TP0_CNTL_STATUS_GET_AL_TF_RTS(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_AL_TF_RTS_MASK) >> TP0_CNTL_STATUS_AL_TF_RTS_SHIFT)
+#define TP0_CNTL_STATUS_GET_AL_TF_TT_RTS(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_AL_TF_TT_RTS_MASK) >> TP0_CNTL_STATUS_AL_TF_TT_RTS_SHIFT)
+#define TP0_CNTL_STATUS_GET_TF_TB_RTS(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TF_TB_RTS_MASK) >> TP0_CNTL_STATUS_TF_TB_RTS_SHIFT)
+#define TP0_CNTL_STATUS_GET_TF_TB_TT_RTS(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TF_TB_TT_RTS_MASK) >> TP0_CNTL_STATUS_TF_TB_TT_RTS_SHIFT)
+#define TP0_CNTL_STATUS_GET_TB_TT_RTS(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TB_TT_RTS_MASK) >> TP0_CNTL_STATUS_TB_TT_RTS_SHIFT)
+#define TP0_CNTL_STATUS_GET_TB_TT_TT_RESET(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TB_TT_TT_RESET_MASK) >> TP0_CNTL_STATUS_TB_TT_TT_RESET_SHIFT)
+#define TP0_CNTL_STATUS_GET_TB_TO_RTS(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TB_TO_RTS_MASK) >> TP0_CNTL_STATUS_TB_TO_RTS_SHIFT)
+#define TP0_CNTL_STATUS_GET_TP_BUSY(tp0_cntl_status) \
+ ((tp0_cntl_status & TP0_CNTL_STATUS_TP_BUSY_MASK) >> TP0_CNTL_STATUS_TP_BUSY_SHIFT)
+
+#define TP0_CNTL_STATUS_SET_TP_INPUT_BUSY(tp0_cntl_status_reg, tp_input_busy) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TP_INPUT_BUSY_MASK) | (tp_input_busy << TP0_CNTL_STATUS_TP_INPUT_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_SET_TP_LOD_BUSY(tp0_cntl_status_reg, tp_lod_busy) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TP_LOD_BUSY_MASK) | (tp_lod_busy << TP0_CNTL_STATUS_TP_LOD_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_SET_TP_LOD_FIFO_BUSY(tp0_cntl_status_reg, tp_lod_fifo_busy) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TP_LOD_FIFO_BUSY_MASK) | (tp_lod_fifo_busy << TP0_CNTL_STATUS_TP_LOD_FIFO_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_SET_TP_ADDR_BUSY(tp0_cntl_status_reg, tp_addr_busy) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TP_ADDR_BUSY_MASK) | (tp_addr_busy << TP0_CNTL_STATUS_TP_ADDR_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_SET_TP_ALIGN_FIFO_BUSY(tp0_cntl_status_reg, tp_align_fifo_busy) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TP_ALIGN_FIFO_BUSY_MASK) | (tp_align_fifo_busy << TP0_CNTL_STATUS_TP_ALIGN_FIFO_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_SET_TP_ALIGNER_BUSY(tp0_cntl_status_reg, tp_aligner_busy) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TP_ALIGNER_BUSY_MASK) | (tp_aligner_busy << TP0_CNTL_STATUS_TP_ALIGNER_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_SET_TP_TC_FIFO_BUSY(tp0_cntl_status_reg, tp_tc_fifo_busy) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TP_TC_FIFO_BUSY_MASK) | (tp_tc_fifo_busy << TP0_CNTL_STATUS_TP_TC_FIFO_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_SET_TP_RR_FIFO_BUSY(tp0_cntl_status_reg, tp_rr_fifo_busy) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TP_RR_FIFO_BUSY_MASK) | (tp_rr_fifo_busy << TP0_CNTL_STATUS_TP_RR_FIFO_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_SET_TP_FETCH_BUSY(tp0_cntl_status_reg, tp_fetch_busy) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TP_FETCH_BUSY_MASK) | (tp_fetch_busy << TP0_CNTL_STATUS_TP_FETCH_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_SET_TP_CH_BLEND_BUSY(tp0_cntl_status_reg, tp_ch_blend_busy) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TP_CH_BLEND_BUSY_MASK) | (tp_ch_blend_busy << TP0_CNTL_STATUS_TP_CH_BLEND_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_SET_TP_TT_BUSY(tp0_cntl_status_reg, tp_tt_busy) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TP_TT_BUSY_MASK) | (tp_tt_busy << TP0_CNTL_STATUS_TP_TT_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_SET_TP_HICOLOR_BUSY(tp0_cntl_status_reg, tp_hicolor_busy) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TP_HICOLOR_BUSY_MASK) | (tp_hicolor_busy << TP0_CNTL_STATUS_TP_HICOLOR_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_SET_TP_BLEND_BUSY(tp0_cntl_status_reg, tp_blend_busy) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TP_BLEND_BUSY_MASK) | (tp_blend_busy << TP0_CNTL_STATUS_TP_BLEND_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_SET_TP_OUT_FIFO_BUSY(tp0_cntl_status_reg, tp_out_fifo_busy) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TP_OUT_FIFO_BUSY_MASK) | (tp_out_fifo_busy << TP0_CNTL_STATUS_TP_OUT_FIFO_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_SET_TP_OUTPUT_BUSY(tp0_cntl_status_reg, tp_output_busy) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TP_OUTPUT_BUSY_MASK) | (tp_output_busy << TP0_CNTL_STATUS_TP_OUTPUT_BUSY_SHIFT)
+#define TP0_CNTL_STATUS_SET_IN_LC_RTS(tp0_cntl_status_reg, in_lc_rts) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_IN_LC_RTS_MASK) | (in_lc_rts << TP0_CNTL_STATUS_IN_LC_RTS_SHIFT)
+#define TP0_CNTL_STATUS_SET_LC_LA_RTS(tp0_cntl_status_reg, lc_la_rts) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_LC_LA_RTS_MASK) | (lc_la_rts << TP0_CNTL_STATUS_LC_LA_RTS_SHIFT)
+#define TP0_CNTL_STATUS_SET_LA_FL_RTS(tp0_cntl_status_reg, la_fl_rts) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_LA_FL_RTS_MASK) | (la_fl_rts << TP0_CNTL_STATUS_LA_FL_RTS_SHIFT)
+#define TP0_CNTL_STATUS_SET_FL_TA_RTS(tp0_cntl_status_reg, fl_ta_rts) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_FL_TA_RTS_MASK) | (fl_ta_rts << TP0_CNTL_STATUS_FL_TA_RTS_SHIFT)
+#define TP0_CNTL_STATUS_SET_TA_FA_RTS(tp0_cntl_status_reg, ta_fa_rts) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TA_FA_RTS_MASK) | (ta_fa_rts << TP0_CNTL_STATUS_TA_FA_RTS_SHIFT)
+#define TP0_CNTL_STATUS_SET_TA_FA_TT_RTS(tp0_cntl_status_reg, ta_fa_tt_rts) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TA_FA_TT_RTS_MASK) | (ta_fa_tt_rts << TP0_CNTL_STATUS_TA_FA_TT_RTS_SHIFT)
+#define TP0_CNTL_STATUS_SET_FA_AL_RTS(tp0_cntl_status_reg, fa_al_rts) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_FA_AL_RTS_MASK) | (fa_al_rts << TP0_CNTL_STATUS_FA_AL_RTS_SHIFT)
+#define TP0_CNTL_STATUS_SET_FA_AL_TT_RTS(tp0_cntl_status_reg, fa_al_tt_rts) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_FA_AL_TT_RTS_MASK) | (fa_al_tt_rts << TP0_CNTL_STATUS_FA_AL_TT_RTS_SHIFT)
+#define TP0_CNTL_STATUS_SET_AL_TF_RTS(tp0_cntl_status_reg, al_tf_rts) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_AL_TF_RTS_MASK) | (al_tf_rts << TP0_CNTL_STATUS_AL_TF_RTS_SHIFT)
+#define TP0_CNTL_STATUS_SET_AL_TF_TT_RTS(tp0_cntl_status_reg, al_tf_tt_rts) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_AL_TF_TT_RTS_MASK) | (al_tf_tt_rts << TP0_CNTL_STATUS_AL_TF_TT_RTS_SHIFT)
+#define TP0_CNTL_STATUS_SET_TF_TB_RTS(tp0_cntl_status_reg, tf_tb_rts) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TF_TB_RTS_MASK) | (tf_tb_rts << TP0_CNTL_STATUS_TF_TB_RTS_SHIFT)
+#define TP0_CNTL_STATUS_SET_TF_TB_TT_RTS(tp0_cntl_status_reg, tf_tb_tt_rts) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TF_TB_TT_RTS_MASK) | (tf_tb_tt_rts << TP0_CNTL_STATUS_TF_TB_TT_RTS_SHIFT)
+#define TP0_CNTL_STATUS_SET_TB_TT_RTS(tp0_cntl_status_reg, tb_tt_rts) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TB_TT_RTS_MASK) | (tb_tt_rts << TP0_CNTL_STATUS_TB_TT_RTS_SHIFT)
+#define TP0_CNTL_STATUS_SET_TB_TT_TT_RESET(tp0_cntl_status_reg, tb_tt_tt_reset) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TB_TT_TT_RESET_MASK) | (tb_tt_tt_reset << TP0_CNTL_STATUS_TB_TT_TT_RESET_SHIFT)
+#define TP0_CNTL_STATUS_SET_TB_TO_RTS(tp0_cntl_status_reg, tb_to_rts) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TB_TO_RTS_MASK) | (tb_to_rts << TP0_CNTL_STATUS_TB_TO_RTS_SHIFT)
+#define TP0_CNTL_STATUS_SET_TP_BUSY(tp0_cntl_status_reg, tp_busy) \
+ tp0_cntl_status_reg = (tp0_cntl_status_reg & ~TP0_CNTL_STATUS_TP_BUSY_MASK) | (tp_busy << TP0_CNTL_STATUS_TP_BUSY_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tp0_cntl_status_t {
+ unsigned int tp_input_busy : TP0_CNTL_STATUS_TP_INPUT_BUSY_SIZE;
+ unsigned int tp_lod_busy : TP0_CNTL_STATUS_TP_LOD_BUSY_SIZE;
+ unsigned int tp_lod_fifo_busy : TP0_CNTL_STATUS_TP_LOD_FIFO_BUSY_SIZE;
+ unsigned int tp_addr_busy : TP0_CNTL_STATUS_TP_ADDR_BUSY_SIZE;
+ unsigned int tp_align_fifo_busy : TP0_CNTL_STATUS_TP_ALIGN_FIFO_BUSY_SIZE;
+ unsigned int tp_aligner_busy : TP0_CNTL_STATUS_TP_ALIGNER_BUSY_SIZE;
+ unsigned int tp_tc_fifo_busy : TP0_CNTL_STATUS_TP_TC_FIFO_BUSY_SIZE;
+ unsigned int tp_rr_fifo_busy : TP0_CNTL_STATUS_TP_RR_FIFO_BUSY_SIZE;
+ unsigned int tp_fetch_busy : TP0_CNTL_STATUS_TP_FETCH_BUSY_SIZE;
+ unsigned int tp_ch_blend_busy : TP0_CNTL_STATUS_TP_CH_BLEND_BUSY_SIZE;
+ unsigned int tp_tt_busy : TP0_CNTL_STATUS_TP_TT_BUSY_SIZE;
+ unsigned int tp_hicolor_busy : TP0_CNTL_STATUS_TP_HICOLOR_BUSY_SIZE;
+ unsigned int tp_blend_busy : TP0_CNTL_STATUS_TP_BLEND_BUSY_SIZE;
+ unsigned int tp_out_fifo_busy : TP0_CNTL_STATUS_TP_OUT_FIFO_BUSY_SIZE;
+ unsigned int tp_output_busy : TP0_CNTL_STATUS_TP_OUTPUT_BUSY_SIZE;
+ unsigned int : 1;
+ unsigned int in_lc_rts : TP0_CNTL_STATUS_IN_LC_RTS_SIZE;
+ unsigned int lc_la_rts : TP0_CNTL_STATUS_LC_LA_RTS_SIZE;
+ unsigned int la_fl_rts : TP0_CNTL_STATUS_LA_FL_RTS_SIZE;
+ unsigned int fl_ta_rts : TP0_CNTL_STATUS_FL_TA_RTS_SIZE;
+ unsigned int ta_fa_rts : TP0_CNTL_STATUS_TA_FA_RTS_SIZE;
+ unsigned int ta_fa_tt_rts : TP0_CNTL_STATUS_TA_FA_TT_RTS_SIZE;
+ unsigned int fa_al_rts : TP0_CNTL_STATUS_FA_AL_RTS_SIZE;
+ unsigned int fa_al_tt_rts : TP0_CNTL_STATUS_FA_AL_TT_RTS_SIZE;
+ unsigned int al_tf_rts : TP0_CNTL_STATUS_AL_TF_RTS_SIZE;
+ unsigned int al_tf_tt_rts : TP0_CNTL_STATUS_AL_TF_TT_RTS_SIZE;
+ unsigned int tf_tb_rts : TP0_CNTL_STATUS_TF_TB_RTS_SIZE;
+ unsigned int tf_tb_tt_rts : TP0_CNTL_STATUS_TF_TB_TT_RTS_SIZE;
+ unsigned int tb_tt_rts : TP0_CNTL_STATUS_TB_TT_RTS_SIZE;
+ unsigned int tb_tt_tt_reset : TP0_CNTL_STATUS_TB_TT_TT_RESET_SIZE;
+ unsigned int tb_to_rts : TP0_CNTL_STATUS_TB_TO_RTS_SIZE;
+ unsigned int tp_busy : TP0_CNTL_STATUS_TP_BUSY_SIZE;
+ } tp0_cntl_status_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tp0_cntl_status_t {
+ unsigned int tp_busy : TP0_CNTL_STATUS_TP_BUSY_SIZE;
+ unsigned int tb_to_rts : TP0_CNTL_STATUS_TB_TO_RTS_SIZE;
+ unsigned int tb_tt_tt_reset : TP0_CNTL_STATUS_TB_TT_TT_RESET_SIZE;
+ unsigned int tb_tt_rts : TP0_CNTL_STATUS_TB_TT_RTS_SIZE;
+ unsigned int tf_tb_tt_rts : TP0_CNTL_STATUS_TF_TB_TT_RTS_SIZE;
+ unsigned int tf_tb_rts : TP0_CNTL_STATUS_TF_TB_RTS_SIZE;
+ unsigned int al_tf_tt_rts : TP0_CNTL_STATUS_AL_TF_TT_RTS_SIZE;
+ unsigned int al_tf_rts : TP0_CNTL_STATUS_AL_TF_RTS_SIZE;
+ unsigned int fa_al_tt_rts : TP0_CNTL_STATUS_FA_AL_TT_RTS_SIZE;
+ unsigned int fa_al_rts : TP0_CNTL_STATUS_FA_AL_RTS_SIZE;
+ unsigned int ta_fa_tt_rts : TP0_CNTL_STATUS_TA_FA_TT_RTS_SIZE;
+ unsigned int ta_fa_rts : TP0_CNTL_STATUS_TA_FA_RTS_SIZE;
+ unsigned int fl_ta_rts : TP0_CNTL_STATUS_FL_TA_RTS_SIZE;
+ unsigned int la_fl_rts : TP0_CNTL_STATUS_LA_FL_RTS_SIZE;
+ unsigned int lc_la_rts : TP0_CNTL_STATUS_LC_LA_RTS_SIZE;
+ unsigned int in_lc_rts : TP0_CNTL_STATUS_IN_LC_RTS_SIZE;
+ unsigned int : 1;
+ unsigned int tp_output_busy : TP0_CNTL_STATUS_TP_OUTPUT_BUSY_SIZE;
+ unsigned int tp_out_fifo_busy : TP0_CNTL_STATUS_TP_OUT_FIFO_BUSY_SIZE;
+ unsigned int tp_blend_busy : TP0_CNTL_STATUS_TP_BLEND_BUSY_SIZE;
+ unsigned int tp_hicolor_busy : TP0_CNTL_STATUS_TP_HICOLOR_BUSY_SIZE;
+ unsigned int tp_tt_busy : TP0_CNTL_STATUS_TP_TT_BUSY_SIZE;
+ unsigned int tp_ch_blend_busy : TP0_CNTL_STATUS_TP_CH_BLEND_BUSY_SIZE;
+ unsigned int tp_fetch_busy : TP0_CNTL_STATUS_TP_FETCH_BUSY_SIZE;
+ unsigned int tp_rr_fifo_busy : TP0_CNTL_STATUS_TP_RR_FIFO_BUSY_SIZE;
+ unsigned int tp_tc_fifo_busy : TP0_CNTL_STATUS_TP_TC_FIFO_BUSY_SIZE;
+ unsigned int tp_aligner_busy : TP0_CNTL_STATUS_TP_ALIGNER_BUSY_SIZE;
+ unsigned int tp_align_fifo_busy : TP0_CNTL_STATUS_TP_ALIGN_FIFO_BUSY_SIZE;
+ unsigned int tp_addr_busy : TP0_CNTL_STATUS_TP_ADDR_BUSY_SIZE;
+ unsigned int tp_lod_fifo_busy : TP0_CNTL_STATUS_TP_LOD_FIFO_BUSY_SIZE;
+ unsigned int tp_lod_busy : TP0_CNTL_STATUS_TP_LOD_BUSY_SIZE;
+ unsigned int tp_input_busy : TP0_CNTL_STATUS_TP_INPUT_BUSY_SIZE;
+ } tp0_cntl_status_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tp0_cntl_status_t f;
+} tp0_cntl_status_u;
+
+
+/*
+ * TP0_DEBUG struct
+ */
+
+#define TP0_DEBUG_Q_LOD_CNTL_SIZE 2
+#define TP0_DEBUG_Q_SQ_TP_WAKEUP_SIZE 1
+#define TP0_DEBUG_FL_TA_ADDRESSER_CNTL_SIZE 17
+#define TP0_DEBUG_REG_CLK_EN_SIZE 1
+#define TP0_DEBUG_PERF_CLK_EN_SIZE 1
+#define TP0_DEBUG_TP_CLK_EN_SIZE 1
+#define TP0_DEBUG_Q_WALKER_CNTL_SIZE 4
+#define TP0_DEBUG_Q_ALIGNER_CNTL_SIZE 3
+
+#define TP0_DEBUG_Q_LOD_CNTL_SHIFT 0
+#define TP0_DEBUG_Q_SQ_TP_WAKEUP_SHIFT 3
+#define TP0_DEBUG_FL_TA_ADDRESSER_CNTL_SHIFT 4
+#define TP0_DEBUG_REG_CLK_EN_SHIFT 21
+#define TP0_DEBUG_PERF_CLK_EN_SHIFT 22
+#define TP0_DEBUG_TP_CLK_EN_SHIFT 23
+#define TP0_DEBUG_Q_WALKER_CNTL_SHIFT 24
+#define TP0_DEBUG_Q_ALIGNER_CNTL_SHIFT 28
+
+#define TP0_DEBUG_Q_LOD_CNTL_MASK 0x00000003
+#define TP0_DEBUG_Q_SQ_TP_WAKEUP_MASK 0x00000008
+#define TP0_DEBUG_FL_TA_ADDRESSER_CNTL_MASK 0x001ffff0
+#define TP0_DEBUG_REG_CLK_EN_MASK 0x00200000
+#define TP0_DEBUG_PERF_CLK_EN_MASK 0x00400000
+#define TP0_DEBUG_TP_CLK_EN_MASK 0x00800000
+#define TP0_DEBUG_Q_WALKER_CNTL_MASK 0x0f000000
+#define TP0_DEBUG_Q_ALIGNER_CNTL_MASK 0x70000000
+
+#define TP0_DEBUG_MASK \
+ (TP0_DEBUG_Q_LOD_CNTL_MASK | \
+ TP0_DEBUG_Q_SQ_TP_WAKEUP_MASK | \
+ TP0_DEBUG_FL_TA_ADDRESSER_CNTL_MASK | \
+ TP0_DEBUG_REG_CLK_EN_MASK | \
+ TP0_DEBUG_PERF_CLK_EN_MASK | \
+ TP0_DEBUG_TP_CLK_EN_MASK | \
+ TP0_DEBUG_Q_WALKER_CNTL_MASK | \
+ TP0_DEBUG_Q_ALIGNER_CNTL_MASK)
+
+#define TP0_DEBUG(q_lod_cntl, q_sq_tp_wakeup, fl_ta_addresser_cntl, reg_clk_en, perf_clk_en, tp_clk_en, q_walker_cntl, q_aligner_cntl) \
+ ((q_lod_cntl << TP0_DEBUG_Q_LOD_CNTL_SHIFT) | \
+ (q_sq_tp_wakeup << TP0_DEBUG_Q_SQ_TP_WAKEUP_SHIFT) | \
+ (fl_ta_addresser_cntl << TP0_DEBUG_FL_TA_ADDRESSER_CNTL_SHIFT) | \
+ (reg_clk_en << TP0_DEBUG_REG_CLK_EN_SHIFT) | \
+ (perf_clk_en << TP0_DEBUG_PERF_CLK_EN_SHIFT) | \
+ (tp_clk_en << TP0_DEBUG_TP_CLK_EN_SHIFT) | \
+ (q_walker_cntl << TP0_DEBUG_Q_WALKER_CNTL_SHIFT) | \
+ (q_aligner_cntl << TP0_DEBUG_Q_ALIGNER_CNTL_SHIFT))
+
+#define TP0_DEBUG_GET_Q_LOD_CNTL(tp0_debug) \
+ ((tp0_debug & TP0_DEBUG_Q_LOD_CNTL_MASK) >> TP0_DEBUG_Q_LOD_CNTL_SHIFT)
+#define TP0_DEBUG_GET_Q_SQ_TP_WAKEUP(tp0_debug) \
+ ((tp0_debug & TP0_DEBUG_Q_SQ_TP_WAKEUP_MASK) >> TP0_DEBUG_Q_SQ_TP_WAKEUP_SHIFT)
+#define TP0_DEBUG_GET_FL_TA_ADDRESSER_CNTL(tp0_debug) \
+ ((tp0_debug & TP0_DEBUG_FL_TA_ADDRESSER_CNTL_MASK) >> TP0_DEBUG_FL_TA_ADDRESSER_CNTL_SHIFT)
+#define TP0_DEBUG_GET_REG_CLK_EN(tp0_debug) \
+ ((tp0_debug & TP0_DEBUG_REG_CLK_EN_MASK) >> TP0_DEBUG_REG_CLK_EN_SHIFT)
+#define TP0_DEBUG_GET_PERF_CLK_EN(tp0_debug) \
+ ((tp0_debug & TP0_DEBUG_PERF_CLK_EN_MASK) >> TP0_DEBUG_PERF_CLK_EN_SHIFT)
+#define TP0_DEBUG_GET_TP_CLK_EN(tp0_debug) \
+ ((tp0_debug & TP0_DEBUG_TP_CLK_EN_MASK) >> TP0_DEBUG_TP_CLK_EN_SHIFT)
+#define TP0_DEBUG_GET_Q_WALKER_CNTL(tp0_debug) \
+ ((tp0_debug & TP0_DEBUG_Q_WALKER_CNTL_MASK) >> TP0_DEBUG_Q_WALKER_CNTL_SHIFT)
+#define TP0_DEBUG_GET_Q_ALIGNER_CNTL(tp0_debug) \
+ ((tp0_debug & TP0_DEBUG_Q_ALIGNER_CNTL_MASK) >> TP0_DEBUG_Q_ALIGNER_CNTL_SHIFT)
+
+#define TP0_DEBUG_SET_Q_LOD_CNTL(tp0_debug_reg, q_lod_cntl) \
+ tp0_debug_reg = (tp0_debug_reg & ~TP0_DEBUG_Q_LOD_CNTL_MASK) | (q_lod_cntl << TP0_DEBUG_Q_LOD_CNTL_SHIFT)
+#define TP0_DEBUG_SET_Q_SQ_TP_WAKEUP(tp0_debug_reg, q_sq_tp_wakeup) \
+ tp0_debug_reg = (tp0_debug_reg & ~TP0_DEBUG_Q_SQ_TP_WAKEUP_MASK) | (q_sq_tp_wakeup << TP0_DEBUG_Q_SQ_TP_WAKEUP_SHIFT)
+#define TP0_DEBUG_SET_FL_TA_ADDRESSER_CNTL(tp0_debug_reg, fl_ta_addresser_cntl) \
+ tp0_debug_reg = (tp0_debug_reg & ~TP0_DEBUG_FL_TA_ADDRESSER_CNTL_MASK) | (fl_ta_addresser_cntl << TP0_DEBUG_FL_TA_ADDRESSER_CNTL_SHIFT)
+#define TP0_DEBUG_SET_REG_CLK_EN(tp0_debug_reg, reg_clk_en) \
+ tp0_debug_reg = (tp0_debug_reg & ~TP0_DEBUG_REG_CLK_EN_MASK) | (reg_clk_en << TP0_DEBUG_REG_CLK_EN_SHIFT)
+#define TP0_DEBUG_SET_PERF_CLK_EN(tp0_debug_reg, perf_clk_en) \
+ tp0_debug_reg = (tp0_debug_reg & ~TP0_DEBUG_PERF_CLK_EN_MASK) | (perf_clk_en << TP0_DEBUG_PERF_CLK_EN_SHIFT)
+#define TP0_DEBUG_SET_TP_CLK_EN(tp0_debug_reg, tp_clk_en) \
+ tp0_debug_reg = (tp0_debug_reg & ~TP0_DEBUG_TP_CLK_EN_MASK) | (tp_clk_en << TP0_DEBUG_TP_CLK_EN_SHIFT)
+#define TP0_DEBUG_SET_Q_WALKER_CNTL(tp0_debug_reg, q_walker_cntl) \
+ tp0_debug_reg = (tp0_debug_reg & ~TP0_DEBUG_Q_WALKER_CNTL_MASK) | (q_walker_cntl << TP0_DEBUG_Q_WALKER_CNTL_SHIFT)
+#define TP0_DEBUG_SET_Q_ALIGNER_CNTL(tp0_debug_reg, q_aligner_cntl) \
+ tp0_debug_reg = (tp0_debug_reg & ~TP0_DEBUG_Q_ALIGNER_CNTL_MASK) | (q_aligner_cntl << TP0_DEBUG_Q_ALIGNER_CNTL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tp0_debug_t {
+ unsigned int q_lod_cntl : TP0_DEBUG_Q_LOD_CNTL_SIZE;
+ unsigned int : 1;
+ unsigned int q_sq_tp_wakeup : TP0_DEBUG_Q_SQ_TP_WAKEUP_SIZE;
+ unsigned int fl_ta_addresser_cntl : TP0_DEBUG_FL_TA_ADDRESSER_CNTL_SIZE;
+ unsigned int reg_clk_en : TP0_DEBUG_REG_CLK_EN_SIZE;
+ unsigned int perf_clk_en : TP0_DEBUG_PERF_CLK_EN_SIZE;
+ unsigned int tp_clk_en : TP0_DEBUG_TP_CLK_EN_SIZE;
+ unsigned int q_walker_cntl : TP0_DEBUG_Q_WALKER_CNTL_SIZE;
+ unsigned int q_aligner_cntl : TP0_DEBUG_Q_ALIGNER_CNTL_SIZE;
+ unsigned int : 1;
+ } tp0_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tp0_debug_t {
+ unsigned int : 1;
+ unsigned int q_aligner_cntl : TP0_DEBUG_Q_ALIGNER_CNTL_SIZE;
+ unsigned int q_walker_cntl : TP0_DEBUG_Q_WALKER_CNTL_SIZE;
+ unsigned int tp_clk_en : TP0_DEBUG_TP_CLK_EN_SIZE;
+ unsigned int perf_clk_en : TP0_DEBUG_PERF_CLK_EN_SIZE;
+ unsigned int reg_clk_en : TP0_DEBUG_REG_CLK_EN_SIZE;
+ unsigned int fl_ta_addresser_cntl : TP0_DEBUG_FL_TA_ADDRESSER_CNTL_SIZE;
+ unsigned int q_sq_tp_wakeup : TP0_DEBUG_Q_SQ_TP_WAKEUP_SIZE;
+ unsigned int : 1;
+ unsigned int q_lod_cntl : TP0_DEBUG_Q_LOD_CNTL_SIZE;
+ } tp0_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tp0_debug_t f;
+} tp0_debug_u;
+
+
+/*
+ * TP0_CHICKEN struct
+ */
+
+#define TP0_CHICKEN_TT_MODE_SIZE 1
+#define TP0_CHICKEN_VFETCH_ADDRESS_MODE_SIZE 1
+#define TP0_CHICKEN_SPARE_SIZE 30
+
+#define TP0_CHICKEN_TT_MODE_SHIFT 0
+#define TP0_CHICKEN_VFETCH_ADDRESS_MODE_SHIFT 1
+#define TP0_CHICKEN_SPARE_SHIFT 2
+
+#define TP0_CHICKEN_TT_MODE_MASK 0x00000001
+#define TP0_CHICKEN_VFETCH_ADDRESS_MODE_MASK 0x00000002
+#define TP0_CHICKEN_SPARE_MASK 0xfffffffc
+
+#define TP0_CHICKEN_MASK \
+ (TP0_CHICKEN_TT_MODE_MASK | \
+ TP0_CHICKEN_VFETCH_ADDRESS_MODE_MASK | \
+ TP0_CHICKEN_SPARE_MASK)
+
+#define TP0_CHICKEN(tt_mode, vfetch_address_mode, spare) \
+ ((tt_mode << TP0_CHICKEN_TT_MODE_SHIFT) | \
+ (vfetch_address_mode << TP0_CHICKEN_VFETCH_ADDRESS_MODE_SHIFT) | \
+ (spare << TP0_CHICKEN_SPARE_SHIFT))
+
+#define TP0_CHICKEN_GET_TT_MODE(tp0_chicken) \
+ ((tp0_chicken & TP0_CHICKEN_TT_MODE_MASK) >> TP0_CHICKEN_TT_MODE_SHIFT)
+#define TP0_CHICKEN_GET_VFETCH_ADDRESS_MODE(tp0_chicken) \
+ ((tp0_chicken & TP0_CHICKEN_VFETCH_ADDRESS_MODE_MASK) >> TP0_CHICKEN_VFETCH_ADDRESS_MODE_SHIFT)
+#define TP0_CHICKEN_GET_SPARE(tp0_chicken) \
+ ((tp0_chicken & TP0_CHICKEN_SPARE_MASK) >> TP0_CHICKEN_SPARE_SHIFT)
+
+#define TP0_CHICKEN_SET_TT_MODE(tp0_chicken_reg, tt_mode) \
+ tp0_chicken_reg = (tp0_chicken_reg & ~TP0_CHICKEN_TT_MODE_MASK) | (tt_mode << TP0_CHICKEN_TT_MODE_SHIFT)
+#define TP0_CHICKEN_SET_VFETCH_ADDRESS_MODE(tp0_chicken_reg, vfetch_address_mode) \
+ tp0_chicken_reg = (tp0_chicken_reg & ~TP0_CHICKEN_VFETCH_ADDRESS_MODE_MASK) | (vfetch_address_mode << TP0_CHICKEN_VFETCH_ADDRESS_MODE_SHIFT)
+#define TP0_CHICKEN_SET_SPARE(tp0_chicken_reg, spare) \
+ tp0_chicken_reg = (tp0_chicken_reg & ~TP0_CHICKEN_SPARE_MASK) | (spare << TP0_CHICKEN_SPARE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tp0_chicken_t {
+ unsigned int tt_mode : TP0_CHICKEN_TT_MODE_SIZE;
+ unsigned int vfetch_address_mode : TP0_CHICKEN_VFETCH_ADDRESS_MODE_SIZE;
+ unsigned int spare : TP0_CHICKEN_SPARE_SIZE;
+ } tp0_chicken_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tp0_chicken_t {
+ unsigned int spare : TP0_CHICKEN_SPARE_SIZE;
+ unsigned int vfetch_address_mode : TP0_CHICKEN_VFETCH_ADDRESS_MODE_SIZE;
+ unsigned int tt_mode : TP0_CHICKEN_TT_MODE_SIZE;
+ } tp0_chicken_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tp0_chicken_t f;
+} tp0_chicken_u;
+
+
+/*
+ * TP0_PERFCOUNTER0_SELECT struct
+ */
+
+#define TP0_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SIZE 8
+
+#define TP0_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SHIFT 0
+
+#define TP0_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_MASK 0x000000ff
+
+#define TP0_PERFCOUNTER0_SELECT_MASK \
+ (TP0_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_MASK)
+
+#define TP0_PERFCOUNTER0_SELECT(perfcounter_select) \
+ ((perfcounter_select << TP0_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SHIFT))
+
+#define TP0_PERFCOUNTER0_SELECT_GET_PERFCOUNTER_SELECT(tp0_perfcounter0_select) \
+ ((tp0_perfcounter0_select & TP0_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_MASK) >> TP0_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#define TP0_PERFCOUNTER0_SELECT_SET_PERFCOUNTER_SELECT(tp0_perfcounter0_select_reg, perfcounter_select) \
+ tp0_perfcounter0_select_reg = (tp0_perfcounter0_select_reg & ~TP0_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_MASK) | (perfcounter_select << TP0_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tp0_perfcounter0_select_t {
+ unsigned int perfcounter_select : TP0_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SIZE;
+ unsigned int : 24;
+ } tp0_perfcounter0_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tp0_perfcounter0_select_t {
+ unsigned int : 24;
+ unsigned int perfcounter_select : TP0_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SIZE;
+ } tp0_perfcounter0_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tp0_perfcounter0_select_t f;
+} tp0_perfcounter0_select_u;
+
+
+/*
+ * TP0_PERFCOUNTER0_HI struct
+ */
+
+#define TP0_PERFCOUNTER0_HI_PERFCOUNTER_HI_SIZE 16
+
+#define TP0_PERFCOUNTER0_HI_PERFCOUNTER_HI_SHIFT 0
+
+#define TP0_PERFCOUNTER0_HI_PERFCOUNTER_HI_MASK 0x0000ffff
+
+#define TP0_PERFCOUNTER0_HI_MASK \
+ (TP0_PERFCOUNTER0_HI_PERFCOUNTER_HI_MASK)
+
+#define TP0_PERFCOUNTER0_HI(perfcounter_hi) \
+ ((perfcounter_hi << TP0_PERFCOUNTER0_HI_PERFCOUNTER_HI_SHIFT))
+
+#define TP0_PERFCOUNTER0_HI_GET_PERFCOUNTER_HI(tp0_perfcounter0_hi) \
+ ((tp0_perfcounter0_hi & TP0_PERFCOUNTER0_HI_PERFCOUNTER_HI_MASK) >> TP0_PERFCOUNTER0_HI_PERFCOUNTER_HI_SHIFT)
+
+#define TP0_PERFCOUNTER0_HI_SET_PERFCOUNTER_HI(tp0_perfcounter0_hi_reg, perfcounter_hi) \
+ tp0_perfcounter0_hi_reg = (tp0_perfcounter0_hi_reg & ~TP0_PERFCOUNTER0_HI_PERFCOUNTER_HI_MASK) | (perfcounter_hi << TP0_PERFCOUNTER0_HI_PERFCOUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tp0_perfcounter0_hi_t {
+ unsigned int perfcounter_hi : TP0_PERFCOUNTER0_HI_PERFCOUNTER_HI_SIZE;
+ unsigned int : 16;
+ } tp0_perfcounter0_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tp0_perfcounter0_hi_t {
+ unsigned int : 16;
+ unsigned int perfcounter_hi : TP0_PERFCOUNTER0_HI_PERFCOUNTER_HI_SIZE;
+ } tp0_perfcounter0_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tp0_perfcounter0_hi_t f;
+} tp0_perfcounter0_hi_u;
+
+
+/*
+ * TP0_PERFCOUNTER0_LOW struct
+ */
+
+#define TP0_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SIZE 32
+
+#define TP0_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SHIFT 0
+
+#define TP0_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_MASK 0xffffffff
+
+#define TP0_PERFCOUNTER0_LOW_MASK \
+ (TP0_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_MASK)
+
+#define TP0_PERFCOUNTER0_LOW(perfcounter_low) \
+ ((perfcounter_low << TP0_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SHIFT))
+
+#define TP0_PERFCOUNTER0_LOW_GET_PERFCOUNTER_LOW(tp0_perfcounter0_low) \
+ ((tp0_perfcounter0_low & TP0_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_MASK) >> TP0_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#define TP0_PERFCOUNTER0_LOW_SET_PERFCOUNTER_LOW(tp0_perfcounter0_low_reg, perfcounter_low) \
+ tp0_perfcounter0_low_reg = (tp0_perfcounter0_low_reg & ~TP0_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_MASK) | (perfcounter_low << TP0_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tp0_perfcounter0_low_t {
+ unsigned int perfcounter_low : TP0_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SIZE;
+ } tp0_perfcounter0_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tp0_perfcounter0_low_t {
+ unsigned int perfcounter_low : TP0_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SIZE;
+ } tp0_perfcounter0_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tp0_perfcounter0_low_t f;
+} tp0_perfcounter0_low_u;
+
+
+/*
+ * TP0_PERFCOUNTER1_SELECT struct
+ */
+
+#define TP0_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SIZE 8
+
+#define TP0_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SHIFT 0
+
+#define TP0_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_MASK 0x000000ff
+
+#define TP0_PERFCOUNTER1_SELECT_MASK \
+ (TP0_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_MASK)
+
+#define TP0_PERFCOUNTER1_SELECT(perfcounter_select) \
+ ((perfcounter_select << TP0_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SHIFT))
+
+#define TP0_PERFCOUNTER1_SELECT_GET_PERFCOUNTER_SELECT(tp0_perfcounter1_select) \
+ ((tp0_perfcounter1_select & TP0_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_MASK) >> TP0_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#define TP0_PERFCOUNTER1_SELECT_SET_PERFCOUNTER_SELECT(tp0_perfcounter1_select_reg, perfcounter_select) \
+ tp0_perfcounter1_select_reg = (tp0_perfcounter1_select_reg & ~TP0_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_MASK) | (perfcounter_select << TP0_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tp0_perfcounter1_select_t {
+ unsigned int perfcounter_select : TP0_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SIZE;
+ unsigned int : 24;
+ } tp0_perfcounter1_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tp0_perfcounter1_select_t {
+ unsigned int : 24;
+ unsigned int perfcounter_select : TP0_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SIZE;
+ } tp0_perfcounter1_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tp0_perfcounter1_select_t f;
+} tp0_perfcounter1_select_u;
+
+
+/*
+ * TP0_PERFCOUNTER1_HI struct
+ */
+
+#define TP0_PERFCOUNTER1_HI_PERFCOUNTER_HI_SIZE 16
+
+#define TP0_PERFCOUNTER1_HI_PERFCOUNTER_HI_SHIFT 0
+
+#define TP0_PERFCOUNTER1_HI_PERFCOUNTER_HI_MASK 0x0000ffff
+
+#define TP0_PERFCOUNTER1_HI_MASK \
+ (TP0_PERFCOUNTER1_HI_PERFCOUNTER_HI_MASK)
+
+#define TP0_PERFCOUNTER1_HI(perfcounter_hi) \
+ ((perfcounter_hi << TP0_PERFCOUNTER1_HI_PERFCOUNTER_HI_SHIFT))
+
+#define TP0_PERFCOUNTER1_HI_GET_PERFCOUNTER_HI(tp0_perfcounter1_hi) \
+ ((tp0_perfcounter1_hi & TP0_PERFCOUNTER1_HI_PERFCOUNTER_HI_MASK) >> TP0_PERFCOUNTER1_HI_PERFCOUNTER_HI_SHIFT)
+
+#define TP0_PERFCOUNTER1_HI_SET_PERFCOUNTER_HI(tp0_perfcounter1_hi_reg, perfcounter_hi) \
+ tp0_perfcounter1_hi_reg = (tp0_perfcounter1_hi_reg & ~TP0_PERFCOUNTER1_HI_PERFCOUNTER_HI_MASK) | (perfcounter_hi << TP0_PERFCOUNTER1_HI_PERFCOUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tp0_perfcounter1_hi_t {
+ unsigned int perfcounter_hi : TP0_PERFCOUNTER1_HI_PERFCOUNTER_HI_SIZE;
+ unsigned int : 16;
+ } tp0_perfcounter1_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tp0_perfcounter1_hi_t {
+ unsigned int : 16;
+ unsigned int perfcounter_hi : TP0_PERFCOUNTER1_HI_PERFCOUNTER_HI_SIZE;
+ } tp0_perfcounter1_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tp0_perfcounter1_hi_t f;
+} tp0_perfcounter1_hi_u;
+
+
+/*
+ * TP0_PERFCOUNTER1_LOW struct
+ */
+
+#define TP0_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SIZE 32
+
+#define TP0_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SHIFT 0
+
+#define TP0_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_MASK 0xffffffff
+
+#define TP0_PERFCOUNTER1_LOW_MASK \
+ (TP0_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_MASK)
+
+#define TP0_PERFCOUNTER1_LOW(perfcounter_low) \
+ ((perfcounter_low << TP0_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SHIFT))
+
+#define TP0_PERFCOUNTER1_LOW_GET_PERFCOUNTER_LOW(tp0_perfcounter1_low) \
+ ((tp0_perfcounter1_low & TP0_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_MASK) >> TP0_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#define TP0_PERFCOUNTER1_LOW_SET_PERFCOUNTER_LOW(tp0_perfcounter1_low_reg, perfcounter_low) \
+ tp0_perfcounter1_low_reg = (tp0_perfcounter1_low_reg & ~TP0_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_MASK) | (perfcounter_low << TP0_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tp0_perfcounter1_low_t {
+ unsigned int perfcounter_low : TP0_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SIZE;
+ } tp0_perfcounter1_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tp0_perfcounter1_low_t {
+ unsigned int perfcounter_low : TP0_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SIZE;
+ } tp0_perfcounter1_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tp0_perfcounter1_low_t f;
+} tp0_perfcounter1_low_u;
+
+
+/*
+ * TCM_PERFCOUNTER0_SELECT struct
+ */
+
+#define TCM_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SIZE 8
+
+#define TCM_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SHIFT 0
+
+#define TCM_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_MASK 0x000000ff
+
+#define TCM_PERFCOUNTER0_SELECT_MASK \
+ (TCM_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_MASK)
+
+#define TCM_PERFCOUNTER0_SELECT(perfcounter_select) \
+ ((perfcounter_select << TCM_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SHIFT))
+
+#define TCM_PERFCOUNTER0_SELECT_GET_PERFCOUNTER_SELECT(tcm_perfcounter0_select) \
+ ((tcm_perfcounter0_select & TCM_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_MASK) >> TCM_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#define TCM_PERFCOUNTER0_SELECT_SET_PERFCOUNTER_SELECT(tcm_perfcounter0_select_reg, perfcounter_select) \
+ tcm_perfcounter0_select_reg = (tcm_perfcounter0_select_reg & ~TCM_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_MASK) | (perfcounter_select << TCM_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcm_perfcounter0_select_t {
+ unsigned int perfcounter_select : TCM_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SIZE;
+ unsigned int : 24;
+ } tcm_perfcounter0_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcm_perfcounter0_select_t {
+ unsigned int : 24;
+ unsigned int perfcounter_select : TCM_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SIZE;
+ } tcm_perfcounter0_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcm_perfcounter0_select_t f;
+} tcm_perfcounter0_select_u;
+
+
+/*
+ * TCM_PERFCOUNTER1_SELECT struct
+ */
+
+#define TCM_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SIZE 8
+
+#define TCM_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SHIFT 0
+
+#define TCM_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_MASK 0x000000ff
+
+#define TCM_PERFCOUNTER1_SELECT_MASK \
+ (TCM_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_MASK)
+
+#define TCM_PERFCOUNTER1_SELECT(perfcounter_select) \
+ ((perfcounter_select << TCM_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SHIFT))
+
+#define TCM_PERFCOUNTER1_SELECT_GET_PERFCOUNTER_SELECT(tcm_perfcounter1_select) \
+ ((tcm_perfcounter1_select & TCM_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_MASK) >> TCM_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#define TCM_PERFCOUNTER1_SELECT_SET_PERFCOUNTER_SELECT(tcm_perfcounter1_select_reg, perfcounter_select) \
+ tcm_perfcounter1_select_reg = (tcm_perfcounter1_select_reg & ~TCM_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_MASK) | (perfcounter_select << TCM_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcm_perfcounter1_select_t {
+ unsigned int perfcounter_select : TCM_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SIZE;
+ unsigned int : 24;
+ } tcm_perfcounter1_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcm_perfcounter1_select_t {
+ unsigned int : 24;
+ unsigned int perfcounter_select : TCM_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SIZE;
+ } tcm_perfcounter1_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcm_perfcounter1_select_t f;
+} tcm_perfcounter1_select_u;
+
+
+/*
+ * TCM_PERFCOUNTER0_HI struct
+ */
+
+#define TCM_PERFCOUNTER0_HI_PERFCOUNTER_HI_SIZE 16
+
+#define TCM_PERFCOUNTER0_HI_PERFCOUNTER_HI_SHIFT 0
+
+#define TCM_PERFCOUNTER0_HI_PERFCOUNTER_HI_MASK 0x0000ffff
+
+#define TCM_PERFCOUNTER0_HI_MASK \
+ (TCM_PERFCOUNTER0_HI_PERFCOUNTER_HI_MASK)
+
+#define TCM_PERFCOUNTER0_HI(perfcounter_hi) \
+ ((perfcounter_hi << TCM_PERFCOUNTER0_HI_PERFCOUNTER_HI_SHIFT))
+
+#define TCM_PERFCOUNTER0_HI_GET_PERFCOUNTER_HI(tcm_perfcounter0_hi) \
+ ((tcm_perfcounter0_hi & TCM_PERFCOUNTER0_HI_PERFCOUNTER_HI_MASK) >> TCM_PERFCOUNTER0_HI_PERFCOUNTER_HI_SHIFT)
+
+#define TCM_PERFCOUNTER0_HI_SET_PERFCOUNTER_HI(tcm_perfcounter0_hi_reg, perfcounter_hi) \
+ tcm_perfcounter0_hi_reg = (tcm_perfcounter0_hi_reg & ~TCM_PERFCOUNTER0_HI_PERFCOUNTER_HI_MASK) | (perfcounter_hi << TCM_PERFCOUNTER0_HI_PERFCOUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcm_perfcounter0_hi_t {
+ unsigned int perfcounter_hi : TCM_PERFCOUNTER0_HI_PERFCOUNTER_HI_SIZE;
+ unsigned int : 16;
+ } tcm_perfcounter0_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcm_perfcounter0_hi_t {
+ unsigned int : 16;
+ unsigned int perfcounter_hi : TCM_PERFCOUNTER0_HI_PERFCOUNTER_HI_SIZE;
+ } tcm_perfcounter0_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcm_perfcounter0_hi_t f;
+} tcm_perfcounter0_hi_u;
+
+
+/*
+ * TCM_PERFCOUNTER1_HI struct
+ */
+
+#define TCM_PERFCOUNTER1_HI_PERFCOUNTER_HI_SIZE 16
+
+#define TCM_PERFCOUNTER1_HI_PERFCOUNTER_HI_SHIFT 0
+
+#define TCM_PERFCOUNTER1_HI_PERFCOUNTER_HI_MASK 0x0000ffff
+
+#define TCM_PERFCOUNTER1_HI_MASK \
+ (TCM_PERFCOUNTER1_HI_PERFCOUNTER_HI_MASK)
+
+#define TCM_PERFCOUNTER1_HI(perfcounter_hi) \
+ ((perfcounter_hi << TCM_PERFCOUNTER1_HI_PERFCOUNTER_HI_SHIFT))
+
+#define TCM_PERFCOUNTER1_HI_GET_PERFCOUNTER_HI(tcm_perfcounter1_hi) \
+ ((tcm_perfcounter1_hi & TCM_PERFCOUNTER1_HI_PERFCOUNTER_HI_MASK) >> TCM_PERFCOUNTER1_HI_PERFCOUNTER_HI_SHIFT)
+
+#define TCM_PERFCOUNTER1_HI_SET_PERFCOUNTER_HI(tcm_perfcounter1_hi_reg, perfcounter_hi) \
+ tcm_perfcounter1_hi_reg = (tcm_perfcounter1_hi_reg & ~TCM_PERFCOUNTER1_HI_PERFCOUNTER_HI_MASK) | (perfcounter_hi << TCM_PERFCOUNTER1_HI_PERFCOUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcm_perfcounter1_hi_t {
+ unsigned int perfcounter_hi : TCM_PERFCOUNTER1_HI_PERFCOUNTER_HI_SIZE;
+ unsigned int : 16;
+ } tcm_perfcounter1_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcm_perfcounter1_hi_t {
+ unsigned int : 16;
+ unsigned int perfcounter_hi : TCM_PERFCOUNTER1_HI_PERFCOUNTER_HI_SIZE;
+ } tcm_perfcounter1_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcm_perfcounter1_hi_t f;
+} tcm_perfcounter1_hi_u;
+
+
+/*
+ * TCM_PERFCOUNTER0_LOW struct
+ */
+
+#define TCM_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SIZE 32
+
+#define TCM_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SHIFT 0
+
+#define TCM_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_MASK 0xffffffff
+
+#define TCM_PERFCOUNTER0_LOW_MASK \
+ (TCM_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_MASK)
+
+#define TCM_PERFCOUNTER0_LOW(perfcounter_low) \
+ ((perfcounter_low << TCM_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SHIFT))
+
+#define TCM_PERFCOUNTER0_LOW_GET_PERFCOUNTER_LOW(tcm_perfcounter0_low) \
+ ((tcm_perfcounter0_low & TCM_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_MASK) >> TCM_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#define TCM_PERFCOUNTER0_LOW_SET_PERFCOUNTER_LOW(tcm_perfcounter0_low_reg, perfcounter_low) \
+ tcm_perfcounter0_low_reg = (tcm_perfcounter0_low_reg & ~TCM_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_MASK) | (perfcounter_low << TCM_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcm_perfcounter0_low_t {
+ unsigned int perfcounter_low : TCM_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcm_perfcounter0_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcm_perfcounter0_low_t {
+ unsigned int perfcounter_low : TCM_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcm_perfcounter0_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcm_perfcounter0_low_t f;
+} tcm_perfcounter0_low_u;
+
+
+/*
+ * TCM_PERFCOUNTER1_LOW struct
+ */
+
+#define TCM_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SIZE 32
+
+#define TCM_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SHIFT 0
+
+#define TCM_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_MASK 0xffffffff
+
+#define TCM_PERFCOUNTER1_LOW_MASK \
+ (TCM_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_MASK)
+
+#define TCM_PERFCOUNTER1_LOW(perfcounter_low) \
+ ((perfcounter_low << TCM_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SHIFT))
+
+#define TCM_PERFCOUNTER1_LOW_GET_PERFCOUNTER_LOW(tcm_perfcounter1_low) \
+ ((tcm_perfcounter1_low & TCM_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_MASK) >> TCM_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#define TCM_PERFCOUNTER1_LOW_SET_PERFCOUNTER_LOW(tcm_perfcounter1_low_reg, perfcounter_low) \
+ tcm_perfcounter1_low_reg = (tcm_perfcounter1_low_reg & ~TCM_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_MASK) | (perfcounter_low << TCM_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcm_perfcounter1_low_t {
+ unsigned int perfcounter_low : TCM_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcm_perfcounter1_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcm_perfcounter1_low_t {
+ unsigned int perfcounter_low : TCM_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcm_perfcounter1_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcm_perfcounter1_low_t f;
+} tcm_perfcounter1_low_u;
+
+
+/*
+ * TCF_PERFCOUNTER0_SELECT struct
+ */
+
+#define TCF_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SIZE 8
+
+#define TCF_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SHIFT 0
+
+#define TCF_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_MASK 0x000000ff
+
+#define TCF_PERFCOUNTER0_SELECT_MASK \
+ (TCF_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_MASK)
+
+#define TCF_PERFCOUNTER0_SELECT(perfcounter_select) \
+ ((perfcounter_select << TCF_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SHIFT))
+
+#define TCF_PERFCOUNTER0_SELECT_GET_PERFCOUNTER_SELECT(tcf_perfcounter0_select) \
+ ((tcf_perfcounter0_select & TCF_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_MASK) >> TCF_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#define TCF_PERFCOUNTER0_SELECT_SET_PERFCOUNTER_SELECT(tcf_perfcounter0_select_reg, perfcounter_select) \
+ tcf_perfcounter0_select_reg = (tcf_perfcounter0_select_reg & ~TCF_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_MASK) | (perfcounter_select << TCF_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter0_select_t {
+ unsigned int perfcounter_select : TCF_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SIZE;
+ unsigned int : 24;
+ } tcf_perfcounter0_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter0_select_t {
+ unsigned int : 24;
+ unsigned int perfcounter_select : TCF_PERFCOUNTER0_SELECT_PERFCOUNTER_SELECT_SIZE;
+ } tcf_perfcounter0_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter0_select_t f;
+} tcf_perfcounter0_select_u;
+
+
+/*
+ * TCF_PERFCOUNTER1_SELECT struct
+ */
+
+#define TCF_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SIZE 8
+
+#define TCF_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SHIFT 0
+
+#define TCF_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_MASK 0x000000ff
+
+#define TCF_PERFCOUNTER1_SELECT_MASK \
+ (TCF_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_MASK)
+
+#define TCF_PERFCOUNTER1_SELECT(perfcounter_select) \
+ ((perfcounter_select << TCF_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SHIFT))
+
+#define TCF_PERFCOUNTER1_SELECT_GET_PERFCOUNTER_SELECT(tcf_perfcounter1_select) \
+ ((tcf_perfcounter1_select & TCF_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_MASK) >> TCF_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#define TCF_PERFCOUNTER1_SELECT_SET_PERFCOUNTER_SELECT(tcf_perfcounter1_select_reg, perfcounter_select) \
+ tcf_perfcounter1_select_reg = (tcf_perfcounter1_select_reg & ~TCF_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_MASK) | (perfcounter_select << TCF_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter1_select_t {
+ unsigned int perfcounter_select : TCF_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SIZE;
+ unsigned int : 24;
+ } tcf_perfcounter1_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter1_select_t {
+ unsigned int : 24;
+ unsigned int perfcounter_select : TCF_PERFCOUNTER1_SELECT_PERFCOUNTER_SELECT_SIZE;
+ } tcf_perfcounter1_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter1_select_t f;
+} tcf_perfcounter1_select_u;
+
+
+/*
+ * TCF_PERFCOUNTER2_SELECT struct
+ */
+
+#define TCF_PERFCOUNTER2_SELECT_PERFCOUNTER_SELECT_SIZE 8
+
+#define TCF_PERFCOUNTER2_SELECT_PERFCOUNTER_SELECT_SHIFT 0
+
+#define TCF_PERFCOUNTER2_SELECT_PERFCOUNTER_SELECT_MASK 0x000000ff
+
+#define TCF_PERFCOUNTER2_SELECT_MASK \
+ (TCF_PERFCOUNTER2_SELECT_PERFCOUNTER_SELECT_MASK)
+
+#define TCF_PERFCOUNTER2_SELECT(perfcounter_select) \
+ ((perfcounter_select << TCF_PERFCOUNTER2_SELECT_PERFCOUNTER_SELECT_SHIFT))
+
+#define TCF_PERFCOUNTER2_SELECT_GET_PERFCOUNTER_SELECT(tcf_perfcounter2_select) \
+ ((tcf_perfcounter2_select & TCF_PERFCOUNTER2_SELECT_PERFCOUNTER_SELECT_MASK) >> TCF_PERFCOUNTER2_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#define TCF_PERFCOUNTER2_SELECT_SET_PERFCOUNTER_SELECT(tcf_perfcounter2_select_reg, perfcounter_select) \
+ tcf_perfcounter2_select_reg = (tcf_perfcounter2_select_reg & ~TCF_PERFCOUNTER2_SELECT_PERFCOUNTER_SELECT_MASK) | (perfcounter_select << TCF_PERFCOUNTER2_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter2_select_t {
+ unsigned int perfcounter_select : TCF_PERFCOUNTER2_SELECT_PERFCOUNTER_SELECT_SIZE;
+ unsigned int : 24;
+ } tcf_perfcounter2_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter2_select_t {
+ unsigned int : 24;
+ unsigned int perfcounter_select : TCF_PERFCOUNTER2_SELECT_PERFCOUNTER_SELECT_SIZE;
+ } tcf_perfcounter2_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter2_select_t f;
+} tcf_perfcounter2_select_u;
+
+
+/*
+ * TCF_PERFCOUNTER3_SELECT struct
+ */
+
+#define TCF_PERFCOUNTER3_SELECT_PERFCOUNTER_SELECT_SIZE 8
+
+#define TCF_PERFCOUNTER3_SELECT_PERFCOUNTER_SELECT_SHIFT 0
+
+#define TCF_PERFCOUNTER3_SELECT_PERFCOUNTER_SELECT_MASK 0x000000ff
+
+#define TCF_PERFCOUNTER3_SELECT_MASK \
+ (TCF_PERFCOUNTER3_SELECT_PERFCOUNTER_SELECT_MASK)
+
+#define TCF_PERFCOUNTER3_SELECT(perfcounter_select) \
+ ((perfcounter_select << TCF_PERFCOUNTER3_SELECT_PERFCOUNTER_SELECT_SHIFT))
+
+#define TCF_PERFCOUNTER3_SELECT_GET_PERFCOUNTER_SELECT(tcf_perfcounter3_select) \
+ ((tcf_perfcounter3_select & TCF_PERFCOUNTER3_SELECT_PERFCOUNTER_SELECT_MASK) >> TCF_PERFCOUNTER3_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#define TCF_PERFCOUNTER3_SELECT_SET_PERFCOUNTER_SELECT(tcf_perfcounter3_select_reg, perfcounter_select) \
+ tcf_perfcounter3_select_reg = (tcf_perfcounter3_select_reg & ~TCF_PERFCOUNTER3_SELECT_PERFCOUNTER_SELECT_MASK) | (perfcounter_select << TCF_PERFCOUNTER3_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter3_select_t {
+ unsigned int perfcounter_select : TCF_PERFCOUNTER3_SELECT_PERFCOUNTER_SELECT_SIZE;
+ unsigned int : 24;
+ } tcf_perfcounter3_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter3_select_t {
+ unsigned int : 24;
+ unsigned int perfcounter_select : TCF_PERFCOUNTER3_SELECT_PERFCOUNTER_SELECT_SIZE;
+ } tcf_perfcounter3_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter3_select_t f;
+} tcf_perfcounter3_select_u;
+
+
+/*
+ * TCF_PERFCOUNTER4_SELECT struct
+ */
+
+#define TCF_PERFCOUNTER4_SELECT_PERFCOUNTER_SELECT_SIZE 8
+
+#define TCF_PERFCOUNTER4_SELECT_PERFCOUNTER_SELECT_SHIFT 0
+
+#define TCF_PERFCOUNTER4_SELECT_PERFCOUNTER_SELECT_MASK 0x000000ff
+
+#define TCF_PERFCOUNTER4_SELECT_MASK \
+ (TCF_PERFCOUNTER4_SELECT_PERFCOUNTER_SELECT_MASK)
+
+#define TCF_PERFCOUNTER4_SELECT(perfcounter_select) \
+ ((perfcounter_select << TCF_PERFCOUNTER4_SELECT_PERFCOUNTER_SELECT_SHIFT))
+
+#define TCF_PERFCOUNTER4_SELECT_GET_PERFCOUNTER_SELECT(tcf_perfcounter4_select) \
+ ((tcf_perfcounter4_select & TCF_PERFCOUNTER4_SELECT_PERFCOUNTER_SELECT_MASK) >> TCF_PERFCOUNTER4_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#define TCF_PERFCOUNTER4_SELECT_SET_PERFCOUNTER_SELECT(tcf_perfcounter4_select_reg, perfcounter_select) \
+ tcf_perfcounter4_select_reg = (tcf_perfcounter4_select_reg & ~TCF_PERFCOUNTER4_SELECT_PERFCOUNTER_SELECT_MASK) | (perfcounter_select << TCF_PERFCOUNTER4_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter4_select_t {
+ unsigned int perfcounter_select : TCF_PERFCOUNTER4_SELECT_PERFCOUNTER_SELECT_SIZE;
+ unsigned int : 24;
+ } tcf_perfcounter4_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter4_select_t {
+ unsigned int : 24;
+ unsigned int perfcounter_select : TCF_PERFCOUNTER4_SELECT_PERFCOUNTER_SELECT_SIZE;
+ } tcf_perfcounter4_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter4_select_t f;
+} tcf_perfcounter4_select_u;
+
+
+/*
+ * TCF_PERFCOUNTER5_SELECT struct
+ */
+
+#define TCF_PERFCOUNTER5_SELECT_PERFCOUNTER_SELECT_SIZE 8
+
+#define TCF_PERFCOUNTER5_SELECT_PERFCOUNTER_SELECT_SHIFT 0
+
+#define TCF_PERFCOUNTER5_SELECT_PERFCOUNTER_SELECT_MASK 0x000000ff
+
+#define TCF_PERFCOUNTER5_SELECT_MASK \
+ (TCF_PERFCOUNTER5_SELECT_PERFCOUNTER_SELECT_MASK)
+
+#define TCF_PERFCOUNTER5_SELECT(perfcounter_select) \
+ ((perfcounter_select << TCF_PERFCOUNTER5_SELECT_PERFCOUNTER_SELECT_SHIFT))
+
+#define TCF_PERFCOUNTER5_SELECT_GET_PERFCOUNTER_SELECT(tcf_perfcounter5_select) \
+ ((tcf_perfcounter5_select & TCF_PERFCOUNTER5_SELECT_PERFCOUNTER_SELECT_MASK) >> TCF_PERFCOUNTER5_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#define TCF_PERFCOUNTER5_SELECT_SET_PERFCOUNTER_SELECT(tcf_perfcounter5_select_reg, perfcounter_select) \
+ tcf_perfcounter5_select_reg = (tcf_perfcounter5_select_reg & ~TCF_PERFCOUNTER5_SELECT_PERFCOUNTER_SELECT_MASK) | (perfcounter_select << TCF_PERFCOUNTER5_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter5_select_t {
+ unsigned int perfcounter_select : TCF_PERFCOUNTER5_SELECT_PERFCOUNTER_SELECT_SIZE;
+ unsigned int : 24;
+ } tcf_perfcounter5_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter5_select_t {
+ unsigned int : 24;
+ unsigned int perfcounter_select : TCF_PERFCOUNTER5_SELECT_PERFCOUNTER_SELECT_SIZE;
+ } tcf_perfcounter5_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter5_select_t f;
+} tcf_perfcounter5_select_u;
+
+
+/*
+ * TCF_PERFCOUNTER6_SELECT struct
+ */
+
+#define TCF_PERFCOUNTER6_SELECT_PERFCOUNTER_SELECT_SIZE 8
+
+#define TCF_PERFCOUNTER6_SELECT_PERFCOUNTER_SELECT_SHIFT 0
+
+#define TCF_PERFCOUNTER6_SELECT_PERFCOUNTER_SELECT_MASK 0x000000ff
+
+#define TCF_PERFCOUNTER6_SELECT_MASK \
+ (TCF_PERFCOUNTER6_SELECT_PERFCOUNTER_SELECT_MASK)
+
+#define TCF_PERFCOUNTER6_SELECT(perfcounter_select) \
+ ((perfcounter_select << TCF_PERFCOUNTER6_SELECT_PERFCOUNTER_SELECT_SHIFT))
+
+#define TCF_PERFCOUNTER6_SELECT_GET_PERFCOUNTER_SELECT(tcf_perfcounter6_select) \
+ ((tcf_perfcounter6_select & TCF_PERFCOUNTER6_SELECT_PERFCOUNTER_SELECT_MASK) >> TCF_PERFCOUNTER6_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#define TCF_PERFCOUNTER6_SELECT_SET_PERFCOUNTER_SELECT(tcf_perfcounter6_select_reg, perfcounter_select) \
+ tcf_perfcounter6_select_reg = (tcf_perfcounter6_select_reg & ~TCF_PERFCOUNTER6_SELECT_PERFCOUNTER_SELECT_MASK) | (perfcounter_select << TCF_PERFCOUNTER6_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter6_select_t {
+ unsigned int perfcounter_select : TCF_PERFCOUNTER6_SELECT_PERFCOUNTER_SELECT_SIZE;
+ unsigned int : 24;
+ } tcf_perfcounter6_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter6_select_t {
+ unsigned int : 24;
+ unsigned int perfcounter_select : TCF_PERFCOUNTER6_SELECT_PERFCOUNTER_SELECT_SIZE;
+ } tcf_perfcounter6_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter6_select_t f;
+} tcf_perfcounter6_select_u;
+
+
+/*
+ * TCF_PERFCOUNTER7_SELECT struct
+ */
+
+#define TCF_PERFCOUNTER7_SELECT_PERFCOUNTER_SELECT_SIZE 8
+
+#define TCF_PERFCOUNTER7_SELECT_PERFCOUNTER_SELECT_SHIFT 0
+
+#define TCF_PERFCOUNTER7_SELECT_PERFCOUNTER_SELECT_MASK 0x000000ff
+
+#define TCF_PERFCOUNTER7_SELECT_MASK \
+ (TCF_PERFCOUNTER7_SELECT_PERFCOUNTER_SELECT_MASK)
+
+#define TCF_PERFCOUNTER7_SELECT(perfcounter_select) \
+ ((perfcounter_select << TCF_PERFCOUNTER7_SELECT_PERFCOUNTER_SELECT_SHIFT))
+
+#define TCF_PERFCOUNTER7_SELECT_GET_PERFCOUNTER_SELECT(tcf_perfcounter7_select) \
+ ((tcf_perfcounter7_select & TCF_PERFCOUNTER7_SELECT_PERFCOUNTER_SELECT_MASK) >> TCF_PERFCOUNTER7_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#define TCF_PERFCOUNTER7_SELECT_SET_PERFCOUNTER_SELECT(tcf_perfcounter7_select_reg, perfcounter_select) \
+ tcf_perfcounter7_select_reg = (tcf_perfcounter7_select_reg & ~TCF_PERFCOUNTER7_SELECT_PERFCOUNTER_SELECT_MASK) | (perfcounter_select << TCF_PERFCOUNTER7_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter7_select_t {
+ unsigned int perfcounter_select : TCF_PERFCOUNTER7_SELECT_PERFCOUNTER_SELECT_SIZE;
+ unsigned int : 24;
+ } tcf_perfcounter7_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter7_select_t {
+ unsigned int : 24;
+ unsigned int perfcounter_select : TCF_PERFCOUNTER7_SELECT_PERFCOUNTER_SELECT_SIZE;
+ } tcf_perfcounter7_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter7_select_t f;
+} tcf_perfcounter7_select_u;
+
+
+/*
+ * TCF_PERFCOUNTER8_SELECT struct
+ */
+
+#define TCF_PERFCOUNTER8_SELECT_PERFCOUNTER_SELECT_SIZE 8
+
+#define TCF_PERFCOUNTER8_SELECT_PERFCOUNTER_SELECT_SHIFT 0
+
+#define TCF_PERFCOUNTER8_SELECT_PERFCOUNTER_SELECT_MASK 0x000000ff
+
+#define TCF_PERFCOUNTER8_SELECT_MASK \
+ (TCF_PERFCOUNTER8_SELECT_PERFCOUNTER_SELECT_MASK)
+
+#define TCF_PERFCOUNTER8_SELECT(perfcounter_select) \
+ ((perfcounter_select << TCF_PERFCOUNTER8_SELECT_PERFCOUNTER_SELECT_SHIFT))
+
+#define TCF_PERFCOUNTER8_SELECT_GET_PERFCOUNTER_SELECT(tcf_perfcounter8_select) \
+ ((tcf_perfcounter8_select & TCF_PERFCOUNTER8_SELECT_PERFCOUNTER_SELECT_MASK) >> TCF_PERFCOUNTER8_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#define TCF_PERFCOUNTER8_SELECT_SET_PERFCOUNTER_SELECT(tcf_perfcounter8_select_reg, perfcounter_select) \
+ tcf_perfcounter8_select_reg = (tcf_perfcounter8_select_reg & ~TCF_PERFCOUNTER8_SELECT_PERFCOUNTER_SELECT_MASK) | (perfcounter_select << TCF_PERFCOUNTER8_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter8_select_t {
+ unsigned int perfcounter_select : TCF_PERFCOUNTER8_SELECT_PERFCOUNTER_SELECT_SIZE;
+ unsigned int : 24;
+ } tcf_perfcounter8_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter8_select_t {
+ unsigned int : 24;
+ unsigned int perfcounter_select : TCF_PERFCOUNTER8_SELECT_PERFCOUNTER_SELECT_SIZE;
+ } tcf_perfcounter8_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter8_select_t f;
+} tcf_perfcounter8_select_u;
+
+
+/*
+ * TCF_PERFCOUNTER9_SELECT struct
+ */
+
+#define TCF_PERFCOUNTER9_SELECT_PERFCOUNTER_SELECT_SIZE 8
+
+#define TCF_PERFCOUNTER9_SELECT_PERFCOUNTER_SELECT_SHIFT 0
+
+#define TCF_PERFCOUNTER9_SELECT_PERFCOUNTER_SELECT_MASK 0x000000ff
+
+#define TCF_PERFCOUNTER9_SELECT_MASK \
+ (TCF_PERFCOUNTER9_SELECT_PERFCOUNTER_SELECT_MASK)
+
+#define TCF_PERFCOUNTER9_SELECT(perfcounter_select) \
+ ((perfcounter_select << TCF_PERFCOUNTER9_SELECT_PERFCOUNTER_SELECT_SHIFT))
+
+#define TCF_PERFCOUNTER9_SELECT_GET_PERFCOUNTER_SELECT(tcf_perfcounter9_select) \
+ ((tcf_perfcounter9_select & TCF_PERFCOUNTER9_SELECT_PERFCOUNTER_SELECT_MASK) >> TCF_PERFCOUNTER9_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#define TCF_PERFCOUNTER9_SELECT_SET_PERFCOUNTER_SELECT(tcf_perfcounter9_select_reg, perfcounter_select) \
+ tcf_perfcounter9_select_reg = (tcf_perfcounter9_select_reg & ~TCF_PERFCOUNTER9_SELECT_PERFCOUNTER_SELECT_MASK) | (perfcounter_select << TCF_PERFCOUNTER9_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter9_select_t {
+ unsigned int perfcounter_select : TCF_PERFCOUNTER9_SELECT_PERFCOUNTER_SELECT_SIZE;
+ unsigned int : 24;
+ } tcf_perfcounter9_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter9_select_t {
+ unsigned int : 24;
+ unsigned int perfcounter_select : TCF_PERFCOUNTER9_SELECT_PERFCOUNTER_SELECT_SIZE;
+ } tcf_perfcounter9_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter9_select_t f;
+} tcf_perfcounter9_select_u;
+
+
+/*
+ * TCF_PERFCOUNTER10_SELECT struct
+ */
+
+#define TCF_PERFCOUNTER10_SELECT_PERFCOUNTER_SELECT_SIZE 8
+
+#define TCF_PERFCOUNTER10_SELECT_PERFCOUNTER_SELECT_SHIFT 0
+
+#define TCF_PERFCOUNTER10_SELECT_PERFCOUNTER_SELECT_MASK 0x000000ff
+
+#define TCF_PERFCOUNTER10_SELECT_MASK \
+ (TCF_PERFCOUNTER10_SELECT_PERFCOUNTER_SELECT_MASK)
+
+#define TCF_PERFCOUNTER10_SELECT(perfcounter_select) \
+ ((perfcounter_select << TCF_PERFCOUNTER10_SELECT_PERFCOUNTER_SELECT_SHIFT))
+
+#define TCF_PERFCOUNTER10_SELECT_GET_PERFCOUNTER_SELECT(tcf_perfcounter10_select) \
+ ((tcf_perfcounter10_select & TCF_PERFCOUNTER10_SELECT_PERFCOUNTER_SELECT_MASK) >> TCF_PERFCOUNTER10_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#define TCF_PERFCOUNTER10_SELECT_SET_PERFCOUNTER_SELECT(tcf_perfcounter10_select_reg, perfcounter_select) \
+ tcf_perfcounter10_select_reg = (tcf_perfcounter10_select_reg & ~TCF_PERFCOUNTER10_SELECT_PERFCOUNTER_SELECT_MASK) | (perfcounter_select << TCF_PERFCOUNTER10_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter10_select_t {
+ unsigned int perfcounter_select : TCF_PERFCOUNTER10_SELECT_PERFCOUNTER_SELECT_SIZE;
+ unsigned int : 24;
+ } tcf_perfcounter10_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter10_select_t {
+ unsigned int : 24;
+ unsigned int perfcounter_select : TCF_PERFCOUNTER10_SELECT_PERFCOUNTER_SELECT_SIZE;
+ } tcf_perfcounter10_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter10_select_t f;
+} tcf_perfcounter10_select_u;
+
+
+/*
+ * TCF_PERFCOUNTER11_SELECT struct
+ */
+
+#define TCF_PERFCOUNTER11_SELECT_PERFCOUNTER_SELECT_SIZE 8
+
+#define TCF_PERFCOUNTER11_SELECT_PERFCOUNTER_SELECT_SHIFT 0
+
+#define TCF_PERFCOUNTER11_SELECT_PERFCOUNTER_SELECT_MASK 0x000000ff
+
+#define TCF_PERFCOUNTER11_SELECT_MASK \
+ (TCF_PERFCOUNTER11_SELECT_PERFCOUNTER_SELECT_MASK)
+
+#define TCF_PERFCOUNTER11_SELECT(perfcounter_select) \
+ ((perfcounter_select << TCF_PERFCOUNTER11_SELECT_PERFCOUNTER_SELECT_SHIFT))
+
+#define TCF_PERFCOUNTER11_SELECT_GET_PERFCOUNTER_SELECT(tcf_perfcounter11_select) \
+ ((tcf_perfcounter11_select & TCF_PERFCOUNTER11_SELECT_PERFCOUNTER_SELECT_MASK) >> TCF_PERFCOUNTER11_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#define TCF_PERFCOUNTER11_SELECT_SET_PERFCOUNTER_SELECT(tcf_perfcounter11_select_reg, perfcounter_select) \
+ tcf_perfcounter11_select_reg = (tcf_perfcounter11_select_reg & ~TCF_PERFCOUNTER11_SELECT_PERFCOUNTER_SELECT_MASK) | (perfcounter_select << TCF_PERFCOUNTER11_SELECT_PERFCOUNTER_SELECT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter11_select_t {
+ unsigned int perfcounter_select : TCF_PERFCOUNTER11_SELECT_PERFCOUNTER_SELECT_SIZE;
+ unsigned int : 24;
+ } tcf_perfcounter11_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter11_select_t {
+ unsigned int : 24;
+ unsigned int perfcounter_select : TCF_PERFCOUNTER11_SELECT_PERFCOUNTER_SELECT_SIZE;
+ } tcf_perfcounter11_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter11_select_t f;
+} tcf_perfcounter11_select_u;
+
+
+/*
+ * TCF_PERFCOUNTER0_HI struct
+ */
+
+#define TCF_PERFCOUNTER0_HI_PERFCOUNTER_HI_SIZE 16
+
+#define TCF_PERFCOUNTER0_HI_PERFCOUNTER_HI_SHIFT 0
+
+#define TCF_PERFCOUNTER0_HI_PERFCOUNTER_HI_MASK 0x0000ffff
+
+#define TCF_PERFCOUNTER0_HI_MASK \
+ (TCF_PERFCOUNTER0_HI_PERFCOUNTER_HI_MASK)
+
+#define TCF_PERFCOUNTER0_HI(perfcounter_hi) \
+ ((perfcounter_hi << TCF_PERFCOUNTER0_HI_PERFCOUNTER_HI_SHIFT))
+
+#define TCF_PERFCOUNTER0_HI_GET_PERFCOUNTER_HI(tcf_perfcounter0_hi) \
+ ((tcf_perfcounter0_hi & TCF_PERFCOUNTER0_HI_PERFCOUNTER_HI_MASK) >> TCF_PERFCOUNTER0_HI_PERFCOUNTER_HI_SHIFT)
+
+#define TCF_PERFCOUNTER0_HI_SET_PERFCOUNTER_HI(tcf_perfcounter0_hi_reg, perfcounter_hi) \
+ tcf_perfcounter0_hi_reg = (tcf_perfcounter0_hi_reg & ~TCF_PERFCOUNTER0_HI_PERFCOUNTER_HI_MASK) | (perfcounter_hi << TCF_PERFCOUNTER0_HI_PERFCOUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter0_hi_t {
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER0_HI_PERFCOUNTER_HI_SIZE;
+ unsigned int : 16;
+ } tcf_perfcounter0_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter0_hi_t {
+ unsigned int : 16;
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER0_HI_PERFCOUNTER_HI_SIZE;
+ } tcf_perfcounter0_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter0_hi_t f;
+} tcf_perfcounter0_hi_u;
+
+
+/*
+ * TCF_PERFCOUNTER1_HI struct
+ */
+
+#define TCF_PERFCOUNTER1_HI_PERFCOUNTER_HI_SIZE 16
+
+#define TCF_PERFCOUNTER1_HI_PERFCOUNTER_HI_SHIFT 0
+
+#define TCF_PERFCOUNTER1_HI_PERFCOUNTER_HI_MASK 0x0000ffff
+
+#define TCF_PERFCOUNTER1_HI_MASK \
+ (TCF_PERFCOUNTER1_HI_PERFCOUNTER_HI_MASK)
+
+#define TCF_PERFCOUNTER1_HI(perfcounter_hi) \
+ ((perfcounter_hi << TCF_PERFCOUNTER1_HI_PERFCOUNTER_HI_SHIFT))
+
+#define TCF_PERFCOUNTER1_HI_GET_PERFCOUNTER_HI(tcf_perfcounter1_hi) \
+ ((tcf_perfcounter1_hi & TCF_PERFCOUNTER1_HI_PERFCOUNTER_HI_MASK) >> TCF_PERFCOUNTER1_HI_PERFCOUNTER_HI_SHIFT)
+
+#define TCF_PERFCOUNTER1_HI_SET_PERFCOUNTER_HI(tcf_perfcounter1_hi_reg, perfcounter_hi) \
+ tcf_perfcounter1_hi_reg = (tcf_perfcounter1_hi_reg & ~TCF_PERFCOUNTER1_HI_PERFCOUNTER_HI_MASK) | (perfcounter_hi << TCF_PERFCOUNTER1_HI_PERFCOUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter1_hi_t {
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER1_HI_PERFCOUNTER_HI_SIZE;
+ unsigned int : 16;
+ } tcf_perfcounter1_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter1_hi_t {
+ unsigned int : 16;
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER1_HI_PERFCOUNTER_HI_SIZE;
+ } tcf_perfcounter1_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter1_hi_t f;
+} tcf_perfcounter1_hi_u;
+
+
+/*
+ * TCF_PERFCOUNTER2_HI struct
+ */
+
+#define TCF_PERFCOUNTER2_HI_PERFCOUNTER_HI_SIZE 16
+
+#define TCF_PERFCOUNTER2_HI_PERFCOUNTER_HI_SHIFT 0
+
+#define TCF_PERFCOUNTER2_HI_PERFCOUNTER_HI_MASK 0x0000ffff
+
+#define TCF_PERFCOUNTER2_HI_MASK \
+ (TCF_PERFCOUNTER2_HI_PERFCOUNTER_HI_MASK)
+
+#define TCF_PERFCOUNTER2_HI(perfcounter_hi) \
+ ((perfcounter_hi << TCF_PERFCOUNTER2_HI_PERFCOUNTER_HI_SHIFT))
+
+#define TCF_PERFCOUNTER2_HI_GET_PERFCOUNTER_HI(tcf_perfcounter2_hi) \
+ ((tcf_perfcounter2_hi & TCF_PERFCOUNTER2_HI_PERFCOUNTER_HI_MASK) >> TCF_PERFCOUNTER2_HI_PERFCOUNTER_HI_SHIFT)
+
+#define TCF_PERFCOUNTER2_HI_SET_PERFCOUNTER_HI(tcf_perfcounter2_hi_reg, perfcounter_hi) \
+ tcf_perfcounter2_hi_reg = (tcf_perfcounter2_hi_reg & ~TCF_PERFCOUNTER2_HI_PERFCOUNTER_HI_MASK) | (perfcounter_hi << TCF_PERFCOUNTER2_HI_PERFCOUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter2_hi_t {
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER2_HI_PERFCOUNTER_HI_SIZE;
+ unsigned int : 16;
+ } tcf_perfcounter2_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter2_hi_t {
+ unsigned int : 16;
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER2_HI_PERFCOUNTER_HI_SIZE;
+ } tcf_perfcounter2_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter2_hi_t f;
+} tcf_perfcounter2_hi_u;
+
+
+/*
+ * TCF_PERFCOUNTER3_HI struct
+ */
+
+#define TCF_PERFCOUNTER3_HI_PERFCOUNTER_HI_SIZE 16
+
+#define TCF_PERFCOUNTER3_HI_PERFCOUNTER_HI_SHIFT 0
+
+#define TCF_PERFCOUNTER3_HI_PERFCOUNTER_HI_MASK 0x0000ffff
+
+#define TCF_PERFCOUNTER3_HI_MASK \
+ (TCF_PERFCOUNTER3_HI_PERFCOUNTER_HI_MASK)
+
+#define TCF_PERFCOUNTER3_HI(perfcounter_hi) \
+ ((perfcounter_hi << TCF_PERFCOUNTER3_HI_PERFCOUNTER_HI_SHIFT))
+
+#define TCF_PERFCOUNTER3_HI_GET_PERFCOUNTER_HI(tcf_perfcounter3_hi) \
+ ((tcf_perfcounter3_hi & TCF_PERFCOUNTER3_HI_PERFCOUNTER_HI_MASK) >> TCF_PERFCOUNTER3_HI_PERFCOUNTER_HI_SHIFT)
+
+#define TCF_PERFCOUNTER3_HI_SET_PERFCOUNTER_HI(tcf_perfcounter3_hi_reg, perfcounter_hi) \
+ tcf_perfcounter3_hi_reg = (tcf_perfcounter3_hi_reg & ~TCF_PERFCOUNTER3_HI_PERFCOUNTER_HI_MASK) | (perfcounter_hi << TCF_PERFCOUNTER3_HI_PERFCOUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter3_hi_t {
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER3_HI_PERFCOUNTER_HI_SIZE;
+ unsigned int : 16;
+ } tcf_perfcounter3_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter3_hi_t {
+ unsigned int : 16;
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER3_HI_PERFCOUNTER_HI_SIZE;
+ } tcf_perfcounter3_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter3_hi_t f;
+} tcf_perfcounter3_hi_u;
+
+
+/*
+ * TCF_PERFCOUNTER4_HI struct
+ */
+
+#define TCF_PERFCOUNTER4_HI_PERFCOUNTER_HI_SIZE 16
+
+#define TCF_PERFCOUNTER4_HI_PERFCOUNTER_HI_SHIFT 0
+
+#define TCF_PERFCOUNTER4_HI_PERFCOUNTER_HI_MASK 0x0000ffff
+
+#define TCF_PERFCOUNTER4_HI_MASK \
+ (TCF_PERFCOUNTER4_HI_PERFCOUNTER_HI_MASK)
+
+#define TCF_PERFCOUNTER4_HI(perfcounter_hi) \
+ ((perfcounter_hi << TCF_PERFCOUNTER4_HI_PERFCOUNTER_HI_SHIFT))
+
+#define TCF_PERFCOUNTER4_HI_GET_PERFCOUNTER_HI(tcf_perfcounter4_hi) \
+ ((tcf_perfcounter4_hi & TCF_PERFCOUNTER4_HI_PERFCOUNTER_HI_MASK) >> TCF_PERFCOUNTER4_HI_PERFCOUNTER_HI_SHIFT)
+
+#define TCF_PERFCOUNTER4_HI_SET_PERFCOUNTER_HI(tcf_perfcounter4_hi_reg, perfcounter_hi) \
+ tcf_perfcounter4_hi_reg = (tcf_perfcounter4_hi_reg & ~TCF_PERFCOUNTER4_HI_PERFCOUNTER_HI_MASK) | (perfcounter_hi << TCF_PERFCOUNTER4_HI_PERFCOUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter4_hi_t {
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER4_HI_PERFCOUNTER_HI_SIZE;
+ unsigned int : 16;
+ } tcf_perfcounter4_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter4_hi_t {
+ unsigned int : 16;
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER4_HI_PERFCOUNTER_HI_SIZE;
+ } tcf_perfcounter4_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter4_hi_t f;
+} tcf_perfcounter4_hi_u;
+
+
+/*
+ * TCF_PERFCOUNTER5_HI struct
+ */
+
+#define TCF_PERFCOUNTER5_HI_PERFCOUNTER_HI_SIZE 16
+
+#define TCF_PERFCOUNTER5_HI_PERFCOUNTER_HI_SHIFT 0
+
+#define TCF_PERFCOUNTER5_HI_PERFCOUNTER_HI_MASK 0x0000ffff
+
+#define TCF_PERFCOUNTER5_HI_MASK \
+ (TCF_PERFCOUNTER5_HI_PERFCOUNTER_HI_MASK)
+
+#define TCF_PERFCOUNTER5_HI(perfcounter_hi) \
+ ((perfcounter_hi << TCF_PERFCOUNTER5_HI_PERFCOUNTER_HI_SHIFT))
+
+#define TCF_PERFCOUNTER5_HI_GET_PERFCOUNTER_HI(tcf_perfcounter5_hi) \
+ ((tcf_perfcounter5_hi & TCF_PERFCOUNTER5_HI_PERFCOUNTER_HI_MASK) >> TCF_PERFCOUNTER5_HI_PERFCOUNTER_HI_SHIFT)
+
+#define TCF_PERFCOUNTER5_HI_SET_PERFCOUNTER_HI(tcf_perfcounter5_hi_reg, perfcounter_hi) \
+ tcf_perfcounter5_hi_reg = (tcf_perfcounter5_hi_reg & ~TCF_PERFCOUNTER5_HI_PERFCOUNTER_HI_MASK) | (perfcounter_hi << TCF_PERFCOUNTER5_HI_PERFCOUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter5_hi_t {
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER5_HI_PERFCOUNTER_HI_SIZE;
+ unsigned int : 16;
+ } tcf_perfcounter5_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter5_hi_t {
+ unsigned int : 16;
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER5_HI_PERFCOUNTER_HI_SIZE;
+ } tcf_perfcounter5_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter5_hi_t f;
+} tcf_perfcounter5_hi_u;
+
+
+/*
+ * TCF_PERFCOUNTER6_HI struct
+ */
+
+#define TCF_PERFCOUNTER6_HI_PERFCOUNTER_HI_SIZE 16
+
+#define TCF_PERFCOUNTER6_HI_PERFCOUNTER_HI_SHIFT 0
+
+#define TCF_PERFCOUNTER6_HI_PERFCOUNTER_HI_MASK 0x0000ffff
+
+#define TCF_PERFCOUNTER6_HI_MASK \
+ (TCF_PERFCOUNTER6_HI_PERFCOUNTER_HI_MASK)
+
+#define TCF_PERFCOUNTER6_HI(perfcounter_hi) \
+ ((perfcounter_hi << TCF_PERFCOUNTER6_HI_PERFCOUNTER_HI_SHIFT))
+
+#define TCF_PERFCOUNTER6_HI_GET_PERFCOUNTER_HI(tcf_perfcounter6_hi) \
+ ((tcf_perfcounter6_hi & TCF_PERFCOUNTER6_HI_PERFCOUNTER_HI_MASK) >> TCF_PERFCOUNTER6_HI_PERFCOUNTER_HI_SHIFT)
+
+#define TCF_PERFCOUNTER6_HI_SET_PERFCOUNTER_HI(tcf_perfcounter6_hi_reg, perfcounter_hi) \
+ tcf_perfcounter6_hi_reg = (tcf_perfcounter6_hi_reg & ~TCF_PERFCOUNTER6_HI_PERFCOUNTER_HI_MASK) | (perfcounter_hi << TCF_PERFCOUNTER6_HI_PERFCOUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter6_hi_t {
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER6_HI_PERFCOUNTER_HI_SIZE;
+ unsigned int : 16;
+ } tcf_perfcounter6_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter6_hi_t {
+ unsigned int : 16;
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER6_HI_PERFCOUNTER_HI_SIZE;
+ } tcf_perfcounter6_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter6_hi_t f;
+} tcf_perfcounter6_hi_u;
+
+
+/*
+ * TCF_PERFCOUNTER7_HI struct
+ */
+
+#define TCF_PERFCOUNTER7_HI_PERFCOUNTER_HI_SIZE 16
+
+#define TCF_PERFCOUNTER7_HI_PERFCOUNTER_HI_SHIFT 0
+
+#define TCF_PERFCOUNTER7_HI_PERFCOUNTER_HI_MASK 0x0000ffff
+
+#define TCF_PERFCOUNTER7_HI_MASK \
+ (TCF_PERFCOUNTER7_HI_PERFCOUNTER_HI_MASK)
+
+#define TCF_PERFCOUNTER7_HI(perfcounter_hi) \
+ ((perfcounter_hi << TCF_PERFCOUNTER7_HI_PERFCOUNTER_HI_SHIFT))
+
+#define TCF_PERFCOUNTER7_HI_GET_PERFCOUNTER_HI(tcf_perfcounter7_hi) \
+ ((tcf_perfcounter7_hi & TCF_PERFCOUNTER7_HI_PERFCOUNTER_HI_MASK) >> TCF_PERFCOUNTER7_HI_PERFCOUNTER_HI_SHIFT)
+
+#define TCF_PERFCOUNTER7_HI_SET_PERFCOUNTER_HI(tcf_perfcounter7_hi_reg, perfcounter_hi) \
+ tcf_perfcounter7_hi_reg = (tcf_perfcounter7_hi_reg & ~TCF_PERFCOUNTER7_HI_PERFCOUNTER_HI_MASK) | (perfcounter_hi << TCF_PERFCOUNTER7_HI_PERFCOUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter7_hi_t {
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER7_HI_PERFCOUNTER_HI_SIZE;
+ unsigned int : 16;
+ } tcf_perfcounter7_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter7_hi_t {
+ unsigned int : 16;
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER7_HI_PERFCOUNTER_HI_SIZE;
+ } tcf_perfcounter7_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter7_hi_t f;
+} tcf_perfcounter7_hi_u;
+
+
+/*
+ * TCF_PERFCOUNTER8_HI struct
+ */
+
+#define TCF_PERFCOUNTER8_HI_PERFCOUNTER_HI_SIZE 16
+
+#define TCF_PERFCOUNTER8_HI_PERFCOUNTER_HI_SHIFT 0
+
+#define TCF_PERFCOUNTER8_HI_PERFCOUNTER_HI_MASK 0x0000ffff
+
+#define TCF_PERFCOUNTER8_HI_MASK \
+ (TCF_PERFCOUNTER8_HI_PERFCOUNTER_HI_MASK)
+
+#define TCF_PERFCOUNTER8_HI(perfcounter_hi) \
+ ((perfcounter_hi << TCF_PERFCOUNTER8_HI_PERFCOUNTER_HI_SHIFT))
+
+#define TCF_PERFCOUNTER8_HI_GET_PERFCOUNTER_HI(tcf_perfcounter8_hi) \
+ ((tcf_perfcounter8_hi & TCF_PERFCOUNTER8_HI_PERFCOUNTER_HI_MASK) >> TCF_PERFCOUNTER8_HI_PERFCOUNTER_HI_SHIFT)
+
+#define TCF_PERFCOUNTER8_HI_SET_PERFCOUNTER_HI(tcf_perfcounter8_hi_reg, perfcounter_hi) \
+ tcf_perfcounter8_hi_reg = (tcf_perfcounter8_hi_reg & ~TCF_PERFCOUNTER8_HI_PERFCOUNTER_HI_MASK) | (perfcounter_hi << TCF_PERFCOUNTER8_HI_PERFCOUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter8_hi_t {
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER8_HI_PERFCOUNTER_HI_SIZE;
+ unsigned int : 16;
+ } tcf_perfcounter8_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter8_hi_t {
+ unsigned int : 16;
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER8_HI_PERFCOUNTER_HI_SIZE;
+ } tcf_perfcounter8_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter8_hi_t f;
+} tcf_perfcounter8_hi_u;
+
+
+/*
+ * TCF_PERFCOUNTER9_HI struct
+ */
+
+#define TCF_PERFCOUNTER9_HI_PERFCOUNTER_HI_SIZE 16
+
+#define TCF_PERFCOUNTER9_HI_PERFCOUNTER_HI_SHIFT 0
+
+#define TCF_PERFCOUNTER9_HI_PERFCOUNTER_HI_MASK 0x0000ffff
+
+#define TCF_PERFCOUNTER9_HI_MASK \
+ (TCF_PERFCOUNTER9_HI_PERFCOUNTER_HI_MASK)
+
+#define TCF_PERFCOUNTER9_HI(perfcounter_hi) \
+ ((perfcounter_hi << TCF_PERFCOUNTER9_HI_PERFCOUNTER_HI_SHIFT))
+
+#define TCF_PERFCOUNTER9_HI_GET_PERFCOUNTER_HI(tcf_perfcounter9_hi) \
+ ((tcf_perfcounter9_hi & TCF_PERFCOUNTER9_HI_PERFCOUNTER_HI_MASK) >> TCF_PERFCOUNTER9_HI_PERFCOUNTER_HI_SHIFT)
+
+#define TCF_PERFCOUNTER9_HI_SET_PERFCOUNTER_HI(tcf_perfcounter9_hi_reg, perfcounter_hi) \
+ tcf_perfcounter9_hi_reg = (tcf_perfcounter9_hi_reg & ~TCF_PERFCOUNTER9_HI_PERFCOUNTER_HI_MASK) | (perfcounter_hi << TCF_PERFCOUNTER9_HI_PERFCOUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter9_hi_t {
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER9_HI_PERFCOUNTER_HI_SIZE;
+ unsigned int : 16;
+ } tcf_perfcounter9_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter9_hi_t {
+ unsigned int : 16;
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER9_HI_PERFCOUNTER_HI_SIZE;
+ } tcf_perfcounter9_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter9_hi_t f;
+} tcf_perfcounter9_hi_u;
+
+
+/*
+ * TCF_PERFCOUNTER10_HI struct
+ */
+
+#define TCF_PERFCOUNTER10_HI_PERFCOUNTER_HI_SIZE 16
+
+#define TCF_PERFCOUNTER10_HI_PERFCOUNTER_HI_SHIFT 0
+
+#define TCF_PERFCOUNTER10_HI_PERFCOUNTER_HI_MASK 0x0000ffff
+
+#define TCF_PERFCOUNTER10_HI_MASK \
+ (TCF_PERFCOUNTER10_HI_PERFCOUNTER_HI_MASK)
+
+#define TCF_PERFCOUNTER10_HI(perfcounter_hi) \
+ ((perfcounter_hi << TCF_PERFCOUNTER10_HI_PERFCOUNTER_HI_SHIFT))
+
+#define TCF_PERFCOUNTER10_HI_GET_PERFCOUNTER_HI(tcf_perfcounter10_hi) \
+ ((tcf_perfcounter10_hi & TCF_PERFCOUNTER10_HI_PERFCOUNTER_HI_MASK) >> TCF_PERFCOUNTER10_HI_PERFCOUNTER_HI_SHIFT)
+
+#define TCF_PERFCOUNTER10_HI_SET_PERFCOUNTER_HI(tcf_perfcounter10_hi_reg, perfcounter_hi) \
+ tcf_perfcounter10_hi_reg = (tcf_perfcounter10_hi_reg & ~TCF_PERFCOUNTER10_HI_PERFCOUNTER_HI_MASK) | (perfcounter_hi << TCF_PERFCOUNTER10_HI_PERFCOUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter10_hi_t {
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER10_HI_PERFCOUNTER_HI_SIZE;
+ unsigned int : 16;
+ } tcf_perfcounter10_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter10_hi_t {
+ unsigned int : 16;
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER10_HI_PERFCOUNTER_HI_SIZE;
+ } tcf_perfcounter10_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter10_hi_t f;
+} tcf_perfcounter10_hi_u;
+
+
+/*
+ * TCF_PERFCOUNTER11_HI struct
+ */
+
+#define TCF_PERFCOUNTER11_HI_PERFCOUNTER_HI_SIZE 16
+
+#define TCF_PERFCOUNTER11_HI_PERFCOUNTER_HI_SHIFT 0
+
+#define TCF_PERFCOUNTER11_HI_PERFCOUNTER_HI_MASK 0x0000ffff
+
+#define TCF_PERFCOUNTER11_HI_MASK \
+ (TCF_PERFCOUNTER11_HI_PERFCOUNTER_HI_MASK)
+
+#define TCF_PERFCOUNTER11_HI(perfcounter_hi) \
+ ((perfcounter_hi << TCF_PERFCOUNTER11_HI_PERFCOUNTER_HI_SHIFT))
+
+#define TCF_PERFCOUNTER11_HI_GET_PERFCOUNTER_HI(tcf_perfcounter11_hi) \
+ ((tcf_perfcounter11_hi & TCF_PERFCOUNTER11_HI_PERFCOUNTER_HI_MASK) >> TCF_PERFCOUNTER11_HI_PERFCOUNTER_HI_SHIFT)
+
+#define TCF_PERFCOUNTER11_HI_SET_PERFCOUNTER_HI(tcf_perfcounter11_hi_reg, perfcounter_hi) \
+ tcf_perfcounter11_hi_reg = (tcf_perfcounter11_hi_reg & ~TCF_PERFCOUNTER11_HI_PERFCOUNTER_HI_MASK) | (perfcounter_hi << TCF_PERFCOUNTER11_HI_PERFCOUNTER_HI_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter11_hi_t {
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER11_HI_PERFCOUNTER_HI_SIZE;
+ unsigned int : 16;
+ } tcf_perfcounter11_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter11_hi_t {
+ unsigned int : 16;
+ unsigned int perfcounter_hi : TCF_PERFCOUNTER11_HI_PERFCOUNTER_HI_SIZE;
+ } tcf_perfcounter11_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter11_hi_t f;
+} tcf_perfcounter11_hi_u;
+
+
+/*
+ * TCF_PERFCOUNTER0_LOW struct
+ */
+
+#define TCF_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SIZE 32
+
+#define TCF_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SHIFT 0
+
+#define TCF_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_MASK 0xffffffff
+
+#define TCF_PERFCOUNTER0_LOW_MASK \
+ (TCF_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_MASK)
+
+#define TCF_PERFCOUNTER0_LOW(perfcounter_low) \
+ ((perfcounter_low << TCF_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SHIFT))
+
+#define TCF_PERFCOUNTER0_LOW_GET_PERFCOUNTER_LOW(tcf_perfcounter0_low) \
+ ((tcf_perfcounter0_low & TCF_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_MASK) >> TCF_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#define TCF_PERFCOUNTER0_LOW_SET_PERFCOUNTER_LOW(tcf_perfcounter0_low_reg, perfcounter_low) \
+ tcf_perfcounter0_low_reg = (tcf_perfcounter0_low_reg & ~TCF_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_MASK) | (perfcounter_low << TCF_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter0_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter0_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter0_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER0_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter0_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter0_low_t f;
+} tcf_perfcounter0_low_u;
+
+
+/*
+ * TCF_PERFCOUNTER1_LOW struct
+ */
+
+#define TCF_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SIZE 32
+
+#define TCF_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SHIFT 0
+
+#define TCF_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_MASK 0xffffffff
+
+#define TCF_PERFCOUNTER1_LOW_MASK \
+ (TCF_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_MASK)
+
+#define TCF_PERFCOUNTER1_LOW(perfcounter_low) \
+ ((perfcounter_low << TCF_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SHIFT))
+
+#define TCF_PERFCOUNTER1_LOW_GET_PERFCOUNTER_LOW(tcf_perfcounter1_low) \
+ ((tcf_perfcounter1_low & TCF_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_MASK) >> TCF_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#define TCF_PERFCOUNTER1_LOW_SET_PERFCOUNTER_LOW(tcf_perfcounter1_low_reg, perfcounter_low) \
+ tcf_perfcounter1_low_reg = (tcf_perfcounter1_low_reg & ~TCF_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_MASK) | (perfcounter_low << TCF_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter1_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter1_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter1_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER1_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter1_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter1_low_t f;
+} tcf_perfcounter1_low_u;
+
+
+/*
+ * TCF_PERFCOUNTER2_LOW struct
+ */
+
+#define TCF_PERFCOUNTER2_LOW_PERFCOUNTER_LOW_SIZE 32
+
+#define TCF_PERFCOUNTER2_LOW_PERFCOUNTER_LOW_SHIFT 0
+
+#define TCF_PERFCOUNTER2_LOW_PERFCOUNTER_LOW_MASK 0xffffffff
+
+#define TCF_PERFCOUNTER2_LOW_MASK \
+ (TCF_PERFCOUNTER2_LOW_PERFCOUNTER_LOW_MASK)
+
+#define TCF_PERFCOUNTER2_LOW(perfcounter_low) \
+ ((perfcounter_low << TCF_PERFCOUNTER2_LOW_PERFCOUNTER_LOW_SHIFT))
+
+#define TCF_PERFCOUNTER2_LOW_GET_PERFCOUNTER_LOW(tcf_perfcounter2_low) \
+ ((tcf_perfcounter2_low & TCF_PERFCOUNTER2_LOW_PERFCOUNTER_LOW_MASK) >> TCF_PERFCOUNTER2_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#define TCF_PERFCOUNTER2_LOW_SET_PERFCOUNTER_LOW(tcf_perfcounter2_low_reg, perfcounter_low) \
+ tcf_perfcounter2_low_reg = (tcf_perfcounter2_low_reg & ~TCF_PERFCOUNTER2_LOW_PERFCOUNTER_LOW_MASK) | (perfcounter_low << TCF_PERFCOUNTER2_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter2_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER2_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter2_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter2_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER2_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter2_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter2_low_t f;
+} tcf_perfcounter2_low_u;
+
+
+/*
+ * TCF_PERFCOUNTER3_LOW struct
+ */
+
+#define TCF_PERFCOUNTER3_LOW_PERFCOUNTER_LOW_SIZE 32
+
+#define TCF_PERFCOUNTER3_LOW_PERFCOUNTER_LOW_SHIFT 0
+
+#define TCF_PERFCOUNTER3_LOW_PERFCOUNTER_LOW_MASK 0xffffffff
+
+#define TCF_PERFCOUNTER3_LOW_MASK \
+ (TCF_PERFCOUNTER3_LOW_PERFCOUNTER_LOW_MASK)
+
+#define TCF_PERFCOUNTER3_LOW(perfcounter_low) \
+ ((perfcounter_low << TCF_PERFCOUNTER3_LOW_PERFCOUNTER_LOW_SHIFT))
+
+#define TCF_PERFCOUNTER3_LOW_GET_PERFCOUNTER_LOW(tcf_perfcounter3_low) \
+ ((tcf_perfcounter3_low & TCF_PERFCOUNTER3_LOW_PERFCOUNTER_LOW_MASK) >> TCF_PERFCOUNTER3_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#define TCF_PERFCOUNTER3_LOW_SET_PERFCOUNTER_LOW(tcf_perfcounter3_low_reg, perfcounter_low) \
+ tcf_perfcounter3_low_reg = (tcf_perfcounter3_low_reg & ~TCF_PERFCOUNTER3_LOW_PERFCOUNTER_LOW_MASK) | (perfcounter_low << TCF_PERFCOUNTER3_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter3_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER3_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter3_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter3_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER3_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter3_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter3_low_t f;
+} tcf_perfcounter3_low_u;
+
+
+/*
+ * TCF_PERFCOUNTER4_LOW struct
+ */
+
+#define TCF_PERFCOUNTER4_LOW_PERFCOUNTER_LOW_SIZE 32
+
+#define TCF_PERFCOUNTER4_LOW_PERFCOUNTER_LOW_SHIFT 0
+
+#define TCF_PERFCOUNTER4_LOW_PERFCOUNTER_LOW_MASK 0xffffffff
+
+#define TCF_PERFCOUNTER4_LOW_MASK \
+ (TCF_PERFCOUNTER4_LOW_PERFCOUNTER_LOW_MASK)
+
+#define TCF_PERFCOUNTER4_LOW(perfcounter_low) \
+ ((perfcounter_low << TCF_PERFCOUNTER4_LOW_PERFCOUNTER_LOW_SHIFT))
+
+#define TCF_PERFCOUNTER4_LOW_GET_PERFCOUNTER_LOW(tcf_perfcounter4_low) \
+ ((tcf_perfcounter4_low & TCF_PERFCOUNTER4_LOW_PERFCOUNTER_LOW_MASK) >> TCF_PERFCOUNTER4_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#define TCF_PERFCOUNTER4_LOW_SET_PERFCOUNTER_LOW(tcf_perfcounter4_low_reg, perfcounter_low) \
+ tcf_perfcounter4_low_reg = (tcf_perfcounter4_low_reg & ~TCF_PERFCOUNTER4_LOW_PERFCOUNTER_LOW_MASK) | (perfcounter_low << TCF_PERFCOUNTER4_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter4_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER4_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter4_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter4_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER4_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter4_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter4_low_t f;
+} tcf_perfcounter4_low_u;
+
+
+/*
+ * TCF_PERFCOUNTER5_LOW struct
+ */
+
+#define TCF_PERFCOUNTER5_LOW_PERFCOUNTER_LOW_SIZE 32
+
+#define TCF_PERFCOUNTER5_LOW_PERFCOUNTER_LOW_SHIFT 0
+
+#define TCF_PERFCOUNTER5_LOW_PERFCOUNTER_LOW_MASK 0xffffffff
+
+#define TCF_PERFCOUNTER5_LOW_MASK \
+ (TCF_PERFCOUNTER5_LOW_PERFCOUNTER_LOW_MASK)
+
+#define TCF_PERFCOUNTER5_LOW(perfcounter_low) \
+ ((perfcounter_low << TCF_PERFCOUNTER5_LOW_PERFCOUNTER_LOW_SHIFT))
+
+#define TCF_PERFCOUNTER5_LOW_GET_PERFCOUNTER_LOW(tcf_perfcounter5_low) \
+ ((tcf_perfcounter5_low & TCF_PERFCOUNTER5_LOW_PERFCOUNTER_LOW_MASK) >> TCF_PERFCOUNTER5_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#define TCF_PERFCOUNTER5_LOW_SET_PERFCOUNTER_LOW(tcf_perfcounter5_low_reg, perfcounter_low) \
+ tcf_perfcounter5_low_reg = (tcf_perfcounter5_low_reg & ~TCF_PERFCOUNTER5_LOW_PERFCOUNTER_LOW_MASK) | (perfcounter_low << TCF_PERFCOUNTER5_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter5_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER5_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter5_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter5_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER5_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter5_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter5_low_t f;
+} tcf_perfcounter5_low_u;
+
+
+/*
+ * TCF_PERFCOUNTER6_LOW struct
+ */
+
+#define TCF_PERFCOUNTER6_LOW_PERFCOUNTER_LOW_SIZE 32
+
+#define TCF_PERFCOUNTER6_LOW_PERFCOUNTER_LOW_SHIFT 0
+
+#define TCF_PERFCOUNTER6_LOW_PERFCOUNTER_LOW_MASK 0xffffffff
+
+#define TCF_PERFCOUNTER6_LOW_MASK \
+ (TCF_PERFCOUNTER6_LOW_PERFCOUNTER_LOW_MASK)
+
+#define TCF_PERFCOUNTER6_LOW(perfcounter_low) \
+ ((perfcounter_low << TCF_PERFCOUNTER6_LOW_PERFCOUNTER_LOW_SHIFT))
+
+#define TCF_PERFCOUNTER6_LOW_GET_PERFCOUNTER_LOW(tcf_perfcounter6_low) \
+ ((tcf_perfcounter6_low & TCF_PERFCOUNTER6_LOW_PERFCOUNTER_LOW_MASK) >> TCF_PERFCOUNTER6_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#define TCF_PERFCOUNTER6_LOW_SET_PERFCOUNTER_LOW(tcf_perfcounter6_low_reg, perfcounter_low) \
+ tcf_perfcounter6_low_reg = (tcf_perfcounter6_low_reg & ~TCF_PERFCOUNTER6_LOW_PERFCOUNTER_LOW_MASK) | (perfcounter_low << TCF_PERFCOUNTER6_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter6_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER6_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter6_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter6_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER6_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter6_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter6_low_t f;
+} tcf_perfcounter6_low_u;
+
+
+/*
+ * TCF_PERFCOUNTER7_LOW struct
+ */
+
+#define TCF_PERFCOUNTER7_LOW_PERFCOUNTER_LOW_SIZE 32
+
+#define TCF_PERFCOUNTER7_LOW_PERFCOUNTER_LOW_SHIFT 0
+
+#define TCF_PERFCOUNTER7_LOW_PERFCOUNTER_LOW_MASK 0xffffffff
+
+#define TCF_PERFCOUNTER7_LOW_MASK \
+ (TCF_PERFCOUNTER7_LOW_PERFCOUNTER_LOW_MASK)
+
+#define TCF_PERFCOUNTER7_LOW(perfcounter_low) \
+ ((perfcounter_low << TCF_PERFCOUNTER7_LOW_PERFCOUNTER_LOW_SHIFT))
+
+#define TCF_PERFCOUNTER7_LOW_GET_PERFCOUNTER_LOW(tcf_perfcounter7_low) \
+ ((tcf_perfcounter7_low & TCF_PERFCOUNTER7_LOW_PERFCOUNTER_LOW_MASK) >> TCF_PERFCOUNTER7_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#define TCF_PERFCOUNTER7_LOW_SET_PERFCOUNTER_LOW(tcf_perfcounter7_low_reg, perfcounter_low) \
+ tcf_perfcounter7_low_reg = (tcf_perfcounter7_low_reg & ~TCF_PERFCOUNTER7_LOW_PERFCOUNTER_LOW_MASK) | (perfcounter_low << TCF_PERFCOUNTER7_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter7_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER7_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter7_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter7_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER7_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter7_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter7_low_t f;
+} tcf_perfcounter7_low_u;
+
+
+/*
+ * TCF_PERFCOUNTER8_LOW struct
+ */
+
+#define TCF_PERFCOUNTER8_LOW_PERFCOUNTER_LOW_SIZE 32
+
+#define TCF_PERFCOUNTER8_LOW_PERFCOUNTER_LOW_SHIFT 0
+
+#define TCF_PERFCOUNTER8_LOW_PERFCOUNTER_LOW_MASK 0xffffffff
+
+#define TCF_PERFCOUNTER8_LOW_MASK \
+ (TCF_PERFCOUNTER8_LOW_PERFCOUNTER_LOW_MASK)
+
+#define TCF_PERFCOUNTER8_LOW(perfcounter_low) \
+ ((perfcounter_low << TCF_PERFCOUNTER8_LOW_PERFCOUNTER_LOW_SHIFT))
+
+#define TCF_PERFCOUNTER8_LOW_GET_PERFCOUNTER_LOW(tcf_perfcounter8_low) \
+ ((tcf_perfcounter8_low & TCF_PERFCOUNTER8_LOW_PERFCOUNTER_LOW_MASK) >> TCF_PERFCOUNTER8_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#define TCF_PERFCOUNTER8_LOW_SET_PERFCOUNTER_LOW(tcf_perfcounter8_low_reg, perfcounter_low) \
+ tcf_perfcounter8_low_reg = (tcf_perfcounter8_low_reg & ~TCF_PERFCOUNTER8_LOW_PERFCOUNTER_LOW_MASK) | (perfcounter_low << TCF_PERFCOUNTER8_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter8_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER8_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter8_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter8_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER8_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter8_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter8_low_t f;
+} tcf_perfcounter8_low_u;
+
+
+/*
+ * TCF_PERFCOUNTER9_LOW struct
+ */
+
+#define TCF_PERFCOUNTER9_LOW_PERFCOUNTER_LOW_SIZE 32
+
+#define TCF_PERFCOUNTER9_LOW_PERFCOUNTER_LOW_SHIFT 0
+
+#define TCF_PERFCOUNTER9_LOW_PERFCOUNTER_LOW_MASK 0xffffffff
+
+#define TCF_PERFCOUNTER9_LOW_MASK \
+ (TCF_PERFCOUNTER9_LOW_PERFCOUNTER_LOW_MASK)
+
+#define TCF_PERFCOUNTER9_LOW(perfcounter_low) \
+ ((perfcounter_low << TCF_PERFCOUNTER9_LOW_PERFCOUNTER_LOW_SHIFT))
+
+#define TCF_PERFCOUNTER9_LOW_GET_PERFCOUNTER_LOW(tcf_perfcounter9_low) \
+ ((tcf_perfcounter9_low & TCF_PERFCOUNTER9_LOW_PERFCOUNTER_LOW_MASK) >> TCF_PERFCOUNTER9_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#define TCF_PERFCOUNTER9_LOW_SET_PERFCOUNTER_LOW(tcf_perfcounter9_low_reg, perfcounter_low) \
+ tcf_perfcounter9_low_reg = (tcf_perfcounter9_low_reg & ~TCF_PERFCOUNTER9_LOW_PERFCOUNTER_LOW_MASK) | (perfcounter_low << TCF_PERFCOUNTER9_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter9_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER9_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter9_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter9_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER9_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter9_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter9_low_t f;
+} tcf_perfcounter9_low_u;
+
+
+/*
+ * TCF_PERFCOUNTER10_LOW struct
+ */
+
+#define TCF_PERFCOUNTER10_LOW_PERFCOUNTER_LOW_SIZE 32
+
+#define TCF_PERFCOUNTER10_LOW_PERFCOUNTER_LOW_SHIFT 0
+
+#define TCF_PERFCOUNTER10_LOW_PERFCOUNTER_LOW_MASK 0xffffffff
+
+#define TCF_PERFCOUNTER10_LOW_MASK \
+ (TCF_PERFCOUNTER10_LOW_PERFCOUNTER_LOW_MASK)
+
+#define TCF_PERFCOUNTER10_LOW(perfcounter_low) \
+ ((perfcounter_low << TCF_PERFCOUNTER10_LOW_PERFCOUNTER_LOW_SHIFT))
+
+#define TCF_PERFCOUNTER10_LOW_GET_PERFCOUNTER_LOW(tcf_perfcounter10_low) \
+ ((tcf_perfcounter10_low & TCF_PERFCOUNTER10_LOW_PERFCOUNTER_LOW_MASK) >> TCF_PERFCOUNTER10_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#define TCF_PERFCOUNTER10_LOW_SET_PERFCOUNTER_LOW(tcf_perfcounter10_low_reg, perfcounter_low) \
+ tcf_perfcounter10_low_reg = (tcf_perfcounter10_low_reg & ~TCF_PERFCOUNTER10_LOW_PERFCOUNTER_LOW_MASK) | (perfcounter_low << TCF_PERFCOUNTER10_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter10_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER10_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter10_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter10_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER10_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter10_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter10_low_t f;
+} tcf_perfcounter10_low_u;
+
+
+/*
+ * TCF_PERFCOUNTER11_LOW struct
+ */
+
+#define TCF_PERFCOUNTER11_LOW_PERFCOUNTER_LOW_SIZE 32
+
+#define TCF_PERFCOUNTER11_LOW_PERFCOUNTER_LOW_SHIFT 0
+
+#define TCF_PERFCOUNTER11_LOW_PERFCOUNTER_LOW_MASK 0xffffffff
+
+#define TCF_PERFCOUNTER11_LOW_MASK \
+ (TCF_PERFCOUNTER11_LOW_PERFCOUNTER_LOW_MASK)
+
+#define TCF_PERFCOUNTER11_LOW(perfcounter_low) \
+ ((perfcounter_low << TCF_PERFCOUNTER11_LOW_PERFCOUNTER_LOW_SHIFT))
+
+#define TCF_PERFCOUNTER11_LOW_GET_PERFCOUNTER_LOW(tcf_perfcounter11_low) \
+ ((tcf_perfcounter11_low & TCF_PERFCOUNTER11_LOW_PERFCOUNTER_LOW_MASK) >> TCF_PERFCOUNTER11_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#define TCF_PERFCOUNTER11_LOW_SET_PERFCOUNTER_LOW(tcf_perfcounter11_low_reg, perfcounter_low) \
+ tcf_perfcounter11_low_reg = (tcf_perfcounter11_low_reg & ~TCF_PERFCOUNTER11_LOW_PERFCOUNTER_LOW_MASK) | (perfcounter_low << TCF_PERFCOUNTER11_LOW_PERFCOUNTER_LOW_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter11_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER11_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter11_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_perfcounter11_low_t {
+ unsigned int perfcounter_low : TCF_PERFCOUNTER11_LOW_PERFCOUNTER_LOW_SIZE;
+ } tcf_perfcounter11_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_perfcounter11_low_t f;
+} tcf_perfcounter11_low_u;
+
+
+/*
+ * TCF_DEBUG struct
+ */
+
+#define TCF_DEBUG_not_MH_TC_rtr_SIZE 1
+#define TCF_DEBUG_TC_MH_send_SIZE 1
+#define TCF_DEBUG_not_FG0_rtr_SIZE 1
+#define TCF_DEBUG_not_TCB_TCO_rtr_SIZE 1
+#define TCF_DEBUG_TCB_ff_stall_SIZE 1
+#define TCF_DEBUG_TCB_miss_stall_SIZE 1
+#define TCF_DEBUG_TCA_TCB_stall_SIZE 1
+#define TCF_DEBUG_PF0_stall_SIZE 1
+#define TCF_DEBUG_TP0_full_SIZE 1
+#define TCF_DEBUG_TPC_full_SIZE 1
+#define TCF_DEBUG_not_TPC_rtr_SIZE 1
+#define TCF_DEBUG_tca_state_rts_SIZE 1
+#define TCF_DEBUG_tca_rts_SIZE 1
+
+#define TCF_DEBUG_not_MH_TC_rtr_SHIFT 6
+#define TCF_DEBUG_TC_MH_send_SHIFT 7
+#define TCF_DEBUG_not_FG0_rtr_SHIFT 8
+#define TCF_DEBUG_not_TCB_TCO_rtr_SHIFT 12
+#define TCF_DEBUG_TCB_ff_stall_SHIFT 13
+#define TCF_DEBUG_TCB_miss_stall_SHIFT 14
+#define TCF_DEBUG_TCA_TCB_stall_SHIFT 15
+#define TCF_DEBUG_PF0_stall_SHIFT 16
+#define TCF_DEBUG_TP0_full_SHIFT 20
+#define TCF_DEBUG_TPC_full_SHIFT 24
+#define TCF_DEBUG_not_TPC_rtr_SHIFT 25
+#define TCF_DEBUG_tca_state_rts_SHIFT 26
+#define TCF_DEBUG_tca_rts_SHIFT 27
+
+#define TCF_DEBUG_not_MH_TC_rtr_MASK 0x00000040
+#define TCF_DEBUG_TC_MH_send_MASK 0x00000080
+#define TCF_DEBUG_not_FG0_rtr_MASK 0x00000100
+#define TCF_DEBUG_not_TCB_TCO_rtr_MASK 0x00001000
+#define TCF_DEBUG_TCB_ff_stall_MASK 0x00002000
+#define TCF_DEBUG_TCB_miss_stall_MASK 0x00004000
+#define TCF_DEBUG_TCA_TCB_stall_MASK 0x00008000
+#define TCF_DEBUG_PF0_stall_MASK 0x00010000
+#define TCF_DEBUG_TP0_full_MASK 0x00100000
+#define TCF_DEBUG_TPC_full_MASK 0x01000000
+#define TCF_DEBUG_not_TPC_rtr_MASK 0x02000000
+#define TCF_DEBUG_tca_state_rts_MASK 0x04000000
+#define TCF_DEBUG_tca_rts_MASK 0x08000000
+
+#define TCF_DEBUG_MASK \
+ (TCF_DEBUG_not_MH_TC_rtr_MASK | \
+ TCF_DEBUG_TC_MH_send_MASK | \
+ TCF_DEBUG_not_FG0_rtr_MASK | \
+ TCF_DEBUG_not_TCB_TCO_rtr_MASK | \
+ TCF_DEBUG_TCB_ff_stall_MASK | \
+ TCF_DEBUG_TCB_miss_stall_MASK | \
+ TCF_DEBUG_TCA_TCB_stall_MASK | \
+ TCF_DEBUG_PF0_stall_MASK | \
+ TCF_DEBUG_TP0_full_MASK | \
+ TCF_DEBUG_TPC_full_MASK | \
+ TCF_DEBUG_not_TPC_rtr_MASK | \
+ TCF_DEBUG_tca_state_rts_MASK | \
+ TCF_DEBUG_tca_rts_MASK)
+
+#define TCF_DEBUG(not_mh_tc_rtr, tc_mh_send, not_fg0_rtr, not_tcb_tco_rtr, tcb_ff_stall, tcb_miss_stall, tca_tcb_stall, pf0_stall, tp0_full, tpc_full, not_tpc_rtr, tca_state_rts, tca_rts) \
+ ((not_mh_tc_rtr << TCF_DEBUG_not_MH_TC_rtr_SHIFT) | \
+ (tc_mh_send << TCF_DEBUG_TC_MH_send_SHIFT) | \
+ (not_fg0_rtr << TCF_DEBUG_not_FG0_rtr_SHIFT) | \
+ (not_tcb_tco_rtr << TCF_DEBUG_not_TCB_TCO_rtr_SHIFT) | \
+ (tcb_ff_stall << TCF_DEBUG_TCB_ff_stall_SHIFT) | \
+ (tcb_miss_stall << TCF_DEBUG_TCB_miss_stall_SHIFT) | \
+ (tca_tcb_stall << TCF_DEBUG_TCA_TCB_stall_SHIFT) | \
+ (pf0_stall << TCF_DEBUG_PF0_stall_SHIFT) | \
+ (tp0_full << TCF_DEBUG_TP0_full_SHIFT) | \
+ (tpc_full << TCF_DEBUG_TPC_full_SHIFT) | \
+ (not_tpc_rtr << TCF_DEBUG_not_TPC_rtr_SHIFT) | \
+ (tca_state_rts << TCF_DEBUG_tca_state_rts_SHIFT) | \
+ (tca_rts << TCF_DEBUG_tca_rts_SHIFT))
+
+#define TCF_DEBUG_GET_not_MH_TC_rtr(tcf_debug) \
+ ((tcf_debug & TCF_DEBUG_not_MH_TC_rtr_MASK) >> TCF_DEBUG_not_MH_TC_rtr_SHIFT)
+#define TCF_DEBUG_GET_TC_MH_send(tcf_debug) \
+ ((tcf_debug & TCF_DEBUG_TC_MH_send_MASK) >> TCF_DEBUG_TC_MH_send_SHIFT)
+#define TCF_DEBUG_GET_not_FG0_rtr(tcf_debug) \
+ ((tcf_debug & TCF_DEBUG_not_FG0_rtr_MASK) >> TCF_DEBUG_not_FG0_rtr_SHIFT)
+#define TCF_DEBUG_GET_not_TCB_TCO_rtr(tcf_debug) \
+ ((tcf_debug & TCF_DEBUG_not_TCB_TCO_rtr_MASK) >> TCF_DEBUG_not_TCB_TCO_rtr_SHIFT)
+#define TCF_DEBUG_GET_TCB_ff_stall(tcf_debug) \
+ ((tcf_debug & TCF_DEBUG_TCB_ff_stall_MASK) >> TCF_DEBUG_TCB_ff_stall_SHIFT)
+#define TCF_DEBUG_GET_TCB_miss_stall(tcf_debug) \
+ ((tcf_debug & TCF_DEBUG_TCB_miss_stall_MASK) >> TCF_DEBUG_TCB_miss_stall_SHIFT)
+#define TCF_DEBUG_GET_TCA_TCB_stall(tcf_debug) \
+ ((tcf_debug & TCF_DEBUG_TCA_TCB_stall_MASK) >> TCF_DEBUG_TCA_TCB_stall_SHIFT)
+#define TCF_DEBUG_GET_PF0_stall(tcf_debug) \
+ ((tcf_debug & TCF_DEBUG_PF0_stall_MASK) >> TCF_DEBUG_PF0_stall_SHIFT)
+#define TCF_DEBUG_GET_TP0_full(tcf_debug) \
+ ((tcf_debug & TCF_DEBUG_TP0_full_MASK) >> TCF_DEBUG_TP0_full_SHIFT)
+#define TCF_DEBUG_GET_TPC_full(tcf_debug) \
+ ((tcf_debug & TCF_DEBUG_TPC_full_MASK) >> TCF_DEBUG_TPC_full_SHIFT)
+#define TCF_DEBUG_GET_not_TPC_rtr(tcf_debug) \
+ ((tcf_debug & TCF_DEBUG_not_TPC_rtr_MASK) >> TCF_DEBUG_not_TPC_rtr_SHIFT)
+#define TCF_DEBUG_GET_tca_state_rts(tcf_debug) \
+ ((tcf_debug & TCF_DEBUG_tca_state_rts_MASK) >> TCF_DEBUG_tca_state_rts_SHIFT)
+#define TCF_DEBUG_GET_tca_rts(tcf_debug) \
+ ((tcf_debug & TCF_DEBUG_tca_rts_MASK) >> TCF_DEBUG_tca_rts_SHIFT)
+
+#define TCF_DEBUG_SET_not_MH_TC_rtr(tcf_debug_reg, not_mh_tc_rtr) \
+ tcf_debug_reg = (tcf_debug_reg & ~TCF_DEBUG_not_MH_TC_rtr_MASK) | (not_mh_tc_rtr << TCF_DEBUG_not_MH_TC_rtr_SHIFT)
+#define TCF_DEBUG_SET_TC_MH_send(tcf_debug_reg, tc_mh_send) \
+ tcf_debug_reg = (tcf_debug_reg & ~TCF_DEBUG_TC_MH_send_MASK) | (tc_mh_send << TCF_DEBUG_TC_MH_send_SHIFT)
+#define TCF_DEBUG_SET_not_FG0_rtr(tcf_debug_reg, not_fg0_rtr) \
+ tcf_debug_reg = (tcf_debug_reg & ~TCF_DEBUG_not_FG0_rtr_MASK) | (not_fg0_rtr << TCF_DEBUG_not_FG0_rtr_SHIFT)
+#define TCF_DEBUG_SET_not_TCB_TCO_rtr(tcf_debug_reg, not_tcb_tco_rtr) \
+ tcf_debug_reg = (tcf_debug_reg & ~TCF_DEBUG_not_TCB_TCO_rtr_MASK) | (not_tcb_tco_rtr << TCF_DEBUG_not_TCB_TCO_rtr_SHIFT)
+#define TCF_DEBUG_SET_TCB_ff_stall(tcf_debug_reg, tcb_ff_stall) \
+ tcf_debug_reg = (tcf_debug_reg & ~TCF_DEBUG_TCB_ff_stall_MASK) | (tcb_ff_stall << TCF_DEBUG_TCB_ff_stall_SHIFT)
+#define TCF_DEBUG_SET_TCB_miss_stall(tcf_debug_reg, tcb_miss_stall) \
+ tcf_debug_reg = (tcf_debug_reg & ~TCF_DEBUG_TCB_miss_stall_MASK) | (tcb_miss_stall << TCF_DEBUG_TCB_miss_stall_SHIFT)
+#define TCF_DEBUG_SET_TCA_TCB_stall(tcf_debug_reg, tca_tcb_stall) \
+ tcf_debug_reg = (tcf_debug_reg & ~TCF_DEBUG_TCA_TCB_stall_MASK) | (tca_tcb_stall << TCF_DEBUG_TCA_TCB_stall_SHIFT)
+#define TCF_DEBUG_SET_PF0_stall(tcf_debug_reg, pf0_stall) \
+ tcf_debug_reg = (tcf_debug_reg & ~TCF_DEBUG_PF0_stall_MASK) | (pf0_stall << TCF_DEBUG_PF0_stall_SHIFT)
+#define TCF_DEBUG_SET_TP0_full(tcf_debug_reg, tp0_full) \
+ tcf_debug_reg = (tcf_debug_reg & ~TCF_DEBUG_TP0_full_MASK) | (tp0_full << TCF_DEBUG_TP0_full_SHIFT)
+#define TCF_DEBUG_SET_TPC_full(tcf_debug_reg, tpc_full) \
+ tcf_debug_reg = (tcf_debug_reg & ~TCF_DEBUG_TPC_full_MASK) | (tpc_full << TCF_DEBUG_TPC_full_SHIFT)
+#define TCF_DEBUG_SET_not_TPC_rtr(tcf_debug_reg, not_tpc_rtr) \
+ tcf_debug_reg = (tcf_debug_reg & ~TCF_DEBUG_not_TPC_rtr_MASK) | (not_tpc_rtr << TCF_DEBUG_not_TPC_rtr_SHIFT)
+#define TCF_DEBUG_SET_tca_state_rts(tcf_debug_reg, tca_state_rts) \
+ tcf_debug_reg = (tcf_debug_reg & ~TCF_DEBUG_tca_state_rts_MASK) | (tca_state_rts << TCF_DEBUG_tca_state_rts_SHIFT)
+#define TCF_DEBUG_SET_tca_rts(tcf_debug_reg, tca_rts) \
+ tcf_debug_reg = (tcf_debug_reg & ~TCF_DEBUG_tca_rts_MASK) | (tca_rts << TCF_DEBUG_tca_rts_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcf_debug_t {
+ unsigned int : 6;
+ unsigned int not_mh_tc_rtr : TCF_DEBUG_not_MH_TC_rtr_SIZE;
+ unsigned int tc_mh_send : TCF_DEBUG_TC_MH_send_SIZE;
+ unsigned int not_fg0_rtr : TCF_DEBUG_not_FG0_rtr_SIZE;
+ unsigned int : 3;
+ unsigned int not_tcb_tco_rtr : TCF_DEBUG_not_TCB_TCO_rtr_SIZE;
+ unsigned int tcb_ff_stall : TCF_DEBUG_TCB_ff_stall_SIZE;
+ unsigned int tcb_miss_stall : TCF_DEBUG_TCB_miss_stall_SIZE;
+ unsigned int tca_tcb_stall : TCF_DEBUG_TCA_TCB_stall_SIZE;
+ unsigned int pf0_stall : TCF_DEBUG_PF0_stall_SIZE;
+ unsigned int : 3;
+ unsigned int tp0_full : TCF_DEBUG_TP0_full_SIZE;
+ unsigned int : 3;
+ unsigned int tpc_full : TCF_DEBUG_TPC_full_SIZE;
+ unsigned int not_tpc_rtr : TCF_DEBUG_not_TPC_rtr_SIZE;
+ unsigned int tca_state_rts : TCF_DEBUG_tca_state_rts_SIZE;
+ unsigned int tca_rts : TCF_DEBUG_tca_rts_SIZE;
+ unsigned int : 4;
+ } tcf_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcf_debug_t {
+ unsigned int : 4;
+ unsigned int tca_rts : TCF_DEBUG_tca_rts_SIZE;
+ unsigned int tca_state_rts : TCF_DEBUG_tca_state_rts_SIZE;
+ unsigned int not_tpc_rtr : TCF_DEBUG_not_TPC_rtr_SIZE;
+ unsigned int tpc_full : TCF_DEBUG_TPC_full_SIZE;
+ unsigned int : 3;
+ unsigned int tp0_full : TCF_DEBUG_TP0_full_SIZE;
+ unsigned int : 3;
+ unsigned int pf0_stall : TCF_DEBUG_PF0_stall_SIZE;
+ unsigned int tca_tcb_stall : TCF_DEBUG_TCA_TCB_stall_SIZE;
+ unsigned int tcb_miss_stall : TCF_DEBUG_TCB_miss_stall_SIZE;
+ unsigned int tcb_ff_stall : TCF_DEBUG_TCB_ff_stall_SIZE;
+ unsigned int not_tcb_tco_rtr : TCF_DEBUG_not_TCB_TCO_rtr_SIZE;
+ unsigned int : 3;
+ unsigned int not_fg0_rtr : TCF_DEBUG_not_FG0_rtr_SIZE;
+ unsigned int tc_mh_send : TCF_DEBUG_TC_MH_send_SIZE;
+ unsigned int not_mh_tc_rtr : TCF_DEBUG_not_MH_TC_rtr_SIZE;
+ unsigned int : 6;
+ } tcf_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcf_debug_t f;
+} tcf_debug_u;
+
+
+/*
+ * TCA_FIFO_DEBUG struct
+ */
+
+#define TCA_FIFO_DEBUG_tp0_full_SIZE 1
+#define TCA_FIFO_DEBUG_tpc_full_SIZE 1
+#define TCA_FIFO_DEBUG_load_tpc_fifo_SIZE 1
+#define TCA_FIFO_DEBUG_load_tp_fifos_SIZE 1
+#define TCA_FIFO_DEBUG_FW_full_SIZE 1
+#define TCA_FIFO_DEBUG_not_FW_rtr0_SIZE 1
+#define TCA_FIFO_DEBUG_FW_rts0_SIZE 1
+#define TCA_FIFO_DEBUG_not_FW_tpc_rtr_SIZE 1
+#define TCA_FIFO_DEBUG_FW_tpc_rts_SIZE 1
+
+#define TCA_FIFO_DEBUG_tp0_full_SHIFT 0
+#define TCA_FIFO_DEBUG_tpc_full_SHIFT 4
+#define TCA_FIFO_DEBUG_load_tpc_fifo_SHIFT 5
+#define TCA_FIFO_DEBUG_load_tp_fifos_SHIFT 6
+#define TCA_FIFO_DEBUG_FW_full_SHIFT 7
+#define TCA_FIFO_DEBUG_not_FW_rtr0_SHIFT 8
+#define TCA_FIFO_DEBUG_FW_rts0_SHIFT 12
+#define TCA_FIFO_DEBUG_not_FW_tpc_rtr_SHIFT 16
+#define TCA_FIFO_DEBUG_FW_tpc_rts_SHIFT 17
+
+#define TCA_FIFO_DEBUG_tp0_full_MASK 0x00000001
+#define TCA_FIFO_DEBUG_tpc_full_MASK 0x00000010
+#define TCA_FIFO_DEBUG_load_tpc_fifo_MASK 0x00000020
+#define TCA_FIFO_DEBUG_load_tp_fifos_MASK 0x00000040
+#define TCA_FIFO_DEBUG_FW_full_MASK 0x00000080
+#define TCA_FIFO_DEBUG_not_FW_rtr0_MASK 0x00000100
+#define TCA_FIFO_DEBUG_FW_rts0_MASK 0x00001000
+#define TCA_FIFO_DEBUG_not_FW_tpc_rtr_MASK 0x00010000
+#define TCA_FIFO_DEBUG_FW_tpc_rts_MASK 0x00020000
+
+#define TCA_FIFO_DEBUG_MASK \
+ (TCA_FIFO_DEBUG_tp0_full_MASK | \
+ TCA_FIFO_DEBUG_tpc_full_MASK | \
+ TCA_FIFO_DEBUG_load_tpc_fifo_MASK | \
+ TCA_FIFO_DEBUG_load_tp_fifos_MASK | \
+ TCA_FIFO_DEBUG_FW_full_MASK | \
+ TCA_FIFO_DEBUG_not_FW_rtr0_MASK | \
+ TCA_FIFO_DEBUG_FW_rts0_MASK | \
+ TCA_FIFO_DEBUG_not_FW_tpc_rtr_MASK | \
+ TCA_FIFO_DEBUG_FW_tpc_rts_MASK)
+
+#define TCA_FIFO_DEBUG(tp0_full, tpc_full, load_tpc_fifo, load_tp_fifos, fw_full, not_fw_rtr0, fw_rts0, not_fw_tpc_rtr, fw_tpc_rts) \
+ ((tp0_full << TCA_FIFO_DEBUG_tp0_full_SHIFT) | \
+ (tpc_full << TCA_FIFO_DEBUG_tpc_full_SHIFT) | \
+ (load_tpc_fifo << TCA_FIFO_DEBUG_load_tpc_fifo_SHIFT) | \
+ (load_tp_fifos << TCA_FIFO_DEBUG_load_tp_fifos_SHIFT) | \
+ (fw_full << TCA_FIFO_DEBUG_FW_full_SHIFT) | \
+ (not_fw_rtr0 << TCA_FIFO_DEBUG_not_FW_rtr0_SHIFT) | \
+ (fw_rts0 << TCA_FIFO_DEBUG_FW_rts0_SHIFT) | \
+ (not_fw_tpc_rtr << TCA_FIFO_DEBUG_not_FW_tpc_rtr_SHIFT) | \
+ (fw_tpc_rts << TCA_FIFO_DEBUG_FW_tpc_rts_SHIFT))
+
+#define TCA_FIFO_DEBUG_GET_tp0_full(tca_fifo_debug) \
+ ((tca_fifo_debug & TCA_FIFO_DEBUG_tp0_full_MASK) >> TCA_FIFO_DEBUG_tp0_full_SHIFT)
+#define TCA_FIFO_DEBUG_GET_tpc_full(tca_fifo_debug) \
+ ((tca_fifo_debug & TCA_FIFO_DEBUG_tpc_full_MASK) >> TCA_FIFO_DEBUG_tpc_full_SHIFT)
+#define TCA_FIFO_DEBUG_GET_load_tpc_fifo(tca_fifo_debug) \
+ ((tca_fifo_debug & TCA_FIFO_DEBUG_load_tpc_fifo_MASK) >> TCA_FIFO_DEBUG_load_tpc_fifo_SHIFT)
+#define TCA_FIFO_DEBUG_GET_load_tp_fifos(tca_fifo_debug) \
+ ((tca_fifo_debug & TCA_FIFO_DEBUG_load_tp_fifos_MASK) >> TCA_FIFO_DEBUG_load_tp_fifos_SHIFT)
+#define TCA_FIFO_DEBUG_GET_FW_full(tca_fifo_debug) \
+ ((tca_fifo_debug & TCA_FIFO_DEBUG_FW_full_MASK) >> TCA_FIFO_DEBUG_FW_full_SHIFT)
+#define TCA_FIFO_DEBUG_GET_not_FW_rtr0(tca_fifo_debug) \
+ ((tca_fifo_debug & TCA_FIFO_DEBUG_not_FW_rtr0_MASK) >> TCA_FIFO_DEBUG_not_FW_rtr0_SHIFT)
+#define TCA_FIFO_DEBUG_GET_FW_rts0(tca_fifo_debug) \
+ ((tca_fifo_debug & TCA_FIFO_DEBUG_FW_rts0_MASK) >> TCA_FIFO_DEBUG_FW_rts0_SHIFT)
+#define TCA_FIFO_DEBUG_GET_not_FW_tpc_rtr(tca_fifo_debug) \
+ ((tca_fifo_debug & TCA_FIFO_DEBUG_not_FW_tpc_rtr_MASK) >> TCA_FIFO_DEBUG_not_FW_tpc_rtr_SHIFT)
+#define TCA_FIFO_DEBUG_GET_FW_tpc_rts(tca_fifo_debug) \
+ ((tca_fifo_debug & TCA_FIFO_DEBUG_FW_tpc_rts_MASK) >> TCA_FIFO_DEBUG_FW_tpc_rts_SHIFT)
+
+#define TCA_FIFO_DEBUG_SET_tp0_full(tca_fifo_debug_reg, tp0_full) \
+ tca_fifo_debug_reg = (tca_fifo_debug_reg & ~TCA_FIFO_DEBUG_tp0_full_MASK) | (tp0_full << TCA_FIFO_DEBUG_tp0_full_SHIFT)
+#define TCA_FIFO_DEBUG_SET_tpc_full(tca_fifo_debug_reg, tpc_full) \
+ tca_fifo_debug_reg = (tca_fifo_debug_reg & ~TCA_FIFO_DEBUG_tpc_full_MASK) | (tpc_full << TCA_FIFO_DEBUG_tpc_full_SHIFT)
+#define TCA_FIFO_DEBUG_SET_load_tpc_fifo(tca_fifo_debug_reg, load_tpc_fifo) \
+ tca_fifo_debug_reg = (tca_fifo_debug_reg & ~TCA_FIFO_DEBUG_load_tpc_fifo_MASK) | (load_tpc_fifo << TCA_FIFO_DEBUG_load_tpc_fifo_SHIFT)
+#define TCA_FIFO_DEBUG_SET_load_tp_fifos(tca_fifo_debug_reg, load_tp_fifos) \
+ tca_fifo_debug_reg = (tca_fifo_debug_reg & ~TCA_FIFO_DEBUG_load_tp_fifos_MASK) | (load_tp_fifos << TCA_FIFO_DEBUG_load_tp_fifos_SHIFT)
+#define TCA_FIFO_DEBUG_SET_FW_full(tca_fifo_debug_reg, fw_full) \
+ tca_fifo_debug_reg = (tca_fifo_debug_reg & ~TCA_FIFO_DEBUG_FW_full_MASK) | (fw_full << TCA_FIFO_DEBUG_FW_full_SHIFT)
+#define TCA_FIFO_DEBUG_SET_not_FW_rtr0(tca_fifo_debug_reg, not_fw_rtr0) \
+ tca_fifo_debug_reg = (tca_fifo_debug_reg & ~TCA_FIFO_DEBUG_not_FW_rtr0_MASK) | (not_fw_rtr0 << TCA_FIFO_DEBUG_not_FW_rtr0_SHIFT)
+#define TCA_FIFO_DEBUG_SET_FW_rts0(tca_fifo_debug_reg, fw_rts0) \
+ tca_fifo_debug_reg = (tca_fifo_debug_reg & ~TCA_FIFO_DEBUG_FW_rts0_MASK) | (fw_rts0 << TCA_FIFO_DEBUG_FW_rts0_SHIFT)
+#define TCA_FIFO_DEBUG_SET_not_FW_tpc_rtr(tca_fifo_debug_reg, not_fw_tpc_rtr) \
+ tca_fifo_debug_reg = (tca_fifo_debug_reg & ~TCA_FIFO_DEBUG_not_FW_tpc_rtr_MASK) | (not_fw_tpc_rtr << TCA_FIFO_DEBUG_not_FW_tpc_rtr_SHIFT)
+#define TCA_FIFO_DEBUG_SET_FW_tpc_rts(tca_fifo_debug_reg, fw_tpc_rts) \
+ tca_fifo_debug_reg = (tca_fifo_debug_reg & ~TCA_FIFO_DEBUG_FW_tpc_rts_MASK) | (fw_tpc_rts << TCA_FIFO_DEBUG_FW_tpc_rts_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tca_fifo_debug_t {
+ unsigned int tp0_full : TCA_FIFO_DEBUG_tp0_full_SIZE;
+ unsigned int : 3;
+ unsigned int tpc_full : TCA_FIFO_DEBUG_tpc_full_SIZE;
+ unsigned int load_tpc_fifo : TCA_FIFO_DEBUG_load_tpc_fifo_SIZE;
+ unsigned int load_tp_fifos : TCA_FIFO_DEBUG_load_tp_fifos_SIZE;
+ unsigned int fw_full : TCA_FIFO_DEBUG_FW_full_SIZE;
+ unsigned int not_fw_rtr0 : TCA_FIFO_DEBUG_not_FW_rtr0_SIZE;
+ unsigned int : 3;
+ unsigned int fw_rts0 : TCA_FIFO_DEBUG_FW_rts0_SIZE;
+ unsigned int : 3;
+ unsigned int not_fw_tpc_rtr : TCA_FIFO_DEBUG_not_FW_tpc_rtr_SIZE;
+ unsigned int fw_tpc_rts : TCA_FIFO_DEBUG_FW_tpc_rts_SIZE;
+ unsigned int : 14;
+ } tca_fifo_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tca_fifo_debug_t {
+ unsigned int : 14;
+ unsigned int fw_tpc_rts : TCA_FIFO_DEBUG_FW_tpc_rts_SIZE;
+ unsigned int not_fw_tpc_rtr : TCA_FIFO_DEBUG_not_FW_tpc_rtr_SIZE;
+ unsigned int : 3;
+ unsigned int fw_rts0 : TCA_FIFO_DEBUG_FW_rts0_SIZE;
+ unsigned int : 3;
+ unsigned int not_fw_rtr0 : TCA_FIFO_DEBUG_not_FW_rtr0_SIZE;
+ unsigned int fw_full : TCA_FIFO_DEBUG_FW_full_SIZE;
+ unsigned int load_tp_fifos : TCA_FIFO_DEBUG_load_tp_fifos_SIZE;
+ unsigned int load_tpc_fifo : TCA_FIFO_DEBUG_load_tpc_fifo_SIZE;
+ unsigned int tpc_full : TCA_FIFO_DEBUG_tpc_full_SIZE;
+ unsigned int : 3;
+ unsigned int tp0_full : TCA_FIFO_DEBUG_tp0_full_SIZE;
+ } tca_fifo_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tca_fifo_debug_t f;
+} tca_fifo_debug_u;
+
+
+/*
+ * TCA_PROBE_DEBUG struct
+ */
+
+#define TCA_PROBE_DEBUG_ProbeFilter_stall_SIZE 1
+
+#define TCA_PROBE_DEBUG_ProbeFilter_stall_SHIFT 0
+
+#define TCA_PROBE_DEBUG_ProbeFilter_stall_MASK 0x00000001
+
+#define TCA_PROBE_DEBUG_MASK \
+ (TCA_PROBE_DEBUG_ProbeFilter_stall_MASK)
+
+#define TCA_PROBE_DEBUG(probefilter_stall) \
+ ((probefilter_stall << TCA_PROBE_DEBUG_ProbeFilter_stall_SHIFT))
+
+#define TCA_PROBE_DEBUG_GET_ProbeFilter_stall(tca_probe_debug) \
+ ((tca_probe_debug & TCA_PROBE_DEBUG_ProbeFilter_stall_MASK) >> TCA_PROBE_DEBUG_ProbeFilter_stall_SHIFT)
+
+#define TCA_PROBE_DEBUG_SET_ProbeFilter_stall(tca_probe_debug_reg, probefilter_stall) \
+ tca_probe_debug_reg = (tca_probe_debug_reg & ~TCA_PROBE_DEBUG_ProbeFilter_stall_MASK) | (probefilter_stall << TCA_PROBE_DEBUG_ProbeFilter_stall_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tca_probe_debug_t {
+ unsigned int probefilter_stall : TCA_PROBE_DEBUG_ProbeFilter_stall_SIZE;
+ unsigned int : 31;
+ } tca_probe_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tca_probe_debug_t {
+ unsigned int : 31;
+ unsigned int probefilter_stall : TCA_PROBE_DEBUG_ProbeFilter_stall_SIZE;
+ } tca_probe_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tca_probe_debug_t f;
+} tca_probe_debug_u;
+
+
+/*
+ * TCA_TPC_DEBUG struct
+ */
+
+#define TCA_TPC_DEBUG_captue_state_rts_SIZE 1
+#define TCA_TPC_DEBUG_capture_tca_rts_SIZE 1
+
+#define TCA_TPC_DEBUG_captue_state_rts_SHIFT 12
+#define TCA_TPC_DEBUG_capture_tca_rts_SHIFT 13
+
+#define TCA_TPC_DEBUG_captue_state_rts_MASK 0x00001000
+#define TCA_TPC_DEBUG_capture_tca_rts_MASK 0x00002000
+
+#define TCA_TPC_DEBUG_MASK \
+ (TCA_TPC_DEBUG_captue_state_rts_MASK | \
+ TCA_TPC_DEBUG_capture_tca_rts_MASK)
+
+#define TCA_TPC_DEBUG(captue_state_rts, capture_tca_rts) \
+ ((captue_state_rts << TCA_TPC_DEBUG_captue_state_rts_SHIFT) | \
+ (capture_tca_rts << TCA_TPC_DEBUG_capture_tca_rts_SHIFT))
+
+#define TCA_TPC_DEBUG_GET_captue_state_rts(tca_tpc_debug) \
+ ((tca_tpc_debug & TCA_TPC_DEBUG_captue_state_rts_MASK) >> TCA_TPC_DEBUG_captue_state_rts_SHIFT)
+#define TCA_TPC_DEBUG_GET_capture_tca_rts(tca_tpc_debug) \
+ ((tca_tpc_debug & TCA_TPC_DEBUG_capture_tca_rts_MASK) >> TCA_TPC_DEBUG_capture_tca_rts_SHIFT)
+
+#define TCA_TPC_DEBUG_SET_captue_state_rts(tca_tpc_debug_reg, captue_state_rts) \
+ tca_tpc_debug_reg = (tca_tpc_debug_reg & ~TCA_TPC_DEBUG_captue_state_rts_MASK) | (captue_state_rts << TCA_TPC_DEBUG_captue_state_rts_SHIFT)
+#define TCA_TPC_DEBUG_SET_capture_tca_rts(tca_tpc_debug_reg, capture_tca_rts) \
+ tca_tpc_debug_reg = (tca_tpc_debug_reg & ~TCA_TPC_DEBUG_capture_tca_rts_MASK) | (capture_tca_rts << TCA_TPC_DEBUG_capture_tca_rts_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tca_tpc_debug_t {
+ unsigned int : 12;
+ unsigned int captue_state_rts : TCA_TPC_DEBUG_captue_state_rts_SIZE;
+ unsigned int capture_tca_rts : TCA_TPC_DEBUG_capture_tca_rts_SIZE;
+ unsigned int : 18;
+ } tca_tpc_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tca_tpc_debug_t {
+ unsigned int : 18;
+ unsigned int capture_tca_rts : TCA_TPC_DEBUG_capture_tca_rts_SIZE;
+ unsigned int captue_state_rts : TCA_TPC_DEBUG_captue_state_rts_SIZE;
+ unsigned int : 12;
+ } tca_tpc_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tca_tpc_debug_t f;
+} tca_tpc_debug_u;
+
+
+/*
+ * TCB_CORE_DEBUG struct
+ */
+
+#define TCB_CORE_DEBUG_access512_SIZE 1
+#define TCB_CORE_DEBUG_tiled_SIZE 1
+#define TCB_CORE_DEBUG_opcode_SIZE 3
+#define TCB_CORE_DEBUG_format_SIZE 6
+#define TCB_CORE_DEBUG_sector_format_SIZE 5
+#define TCB_CORE_DEBUG_sector_format512_SIZE 3
+
+#define TCB_CORE_DEBUG_access512_SHIFT 0
+#define TCB_CORE_DEBUG_tiled_SHIFT 1
+#define TCB_CORE_DEBUG_opcode_SHIFT 4
+#define TCB_CORE_DEBUG_format_SHIFT 8
+#define TCB_CORE_DEBUG_sector_format_SHIFT 16
+#define TCB_CORE_DEBUG_sector_format512_SHIFT 24
+
+#define TCB_CORE_DEBUG_access512_MASK 0x00000001
+#define TCB_CORE_DEBUG_tiled_MASK 0x00000002
+#define TCB_CORE_DEBUG_opcode_MASK 0x00000070
+#define TCB_CORE_DEBUG_format_MASK 0x00003f00
+#define TCB_CORE_DEBUG_sector_format_MASK 0x001f0000
+#define TCB_CORE_DEBUG_sector_format512_MASK 0x07000000
+
+#define TCB_CORE_DEBUG_MASK \
+ (TCB_CORE_DEBUG_access512_MASK | \
+ TCB_CORE_DEBUG_tiled_MASK | \
+ TCB_CORE_DEBUG_opcode_MASK | \
+ TCB_CORE_DEBUG_format_MASK | \
+ TCB_CORE_DEBUG_sector_format_MASK | \
+ TCB_CORE_DEBUG_sector_format512_MASK)
+
+#define TCB_CORE_DEBUG(access512, tiled, opcode, format, sector_format, sector_format512) \
+ ((access512 << TCB_CORE_DEBUG_access512_SHIFT) | \
+ (tiled << TCB_CORE_DEBUG_tiled_SHIFT) | \
+ (opcode << TCB_CORE_DEBUG_opcode_SHIFT) | \
+ (format << TCB_CORE_DEBUG_format_SHIFT) | \
+ (sector_format << TCB_CORE_DEBUG_sector_format_SHIFT) | \
+ (sector_format512 << TCB_CORE_DEBUG_sector_format512_SHIFT))
+
+#define TCB_CORE_DEBUG_GET_access512(tcb_core_debug) \
+ ((tcb_core_debug & TCB_CORE_DEBUG_access512_MASK) >> TCB_CORE_DEBUG_access512_SHIFT)
+#define TCB_CORE_DEBUG_GET_tiled(tcb_core_debug) \
+ ((tcb_core_debug & TCB_CORE_DEBUG_tiled_MASK) >> TCB_CORE_DEBUG_tiled_SHIFT)
+#define TCB_CORE_DEBUG_GET_opcode(tcb_core_debug) \
+ ((tcb_core_debug & TCB_CORE_DEBUG_opcode_MASK) >> TCB_CORE_DEBUG_opcode_SHIFT)
+#define TCB_CORE_DEBUG_GET_format(tcb_core_debug) \
+ ((tcb_core_debug & TCB_CORE_DEBUG_format_MASK) >> TCB_CORE_DEBUG_format_SHIFT)
+#define TCB_CORE_DEBUG_GET_sector_format(tcb_core_debug) \
+ ((tcb_core_debug & TCB_CORE_DEBUG_sector_format_MASK) >> TCB_CORE_DEBUG_sector_format_SHIFT)
+#define TCB_CORE_DEBUG_GET_sector_format512(tcb_core_debug) \
+ ((tcb_core_debug & TCB_CORE_DEBUG_sector_format512_MASK) >> TCB_CORE_DEBUG_sector_format512_SHIFT)
+
+#define TCB_CORE_DEBUG_SET_access512(tcb_core_debug_reg, access512) \
+ tcb_core_debug_reg = (tcb_core_debug_reg & ~TCB_CORE_DEBUG_access512_MASK) | (access512 << TCB_CORE_DEBUG_access512_SHIFT)
+#define TCB_CORE_DEBUG_SET_tiled(tcb_core_debug_reg, tiled) \
+ tcb_core_debug_reg = (tcb_core_debug_reg & ~TCB_CORE_DEBUG_tiled_MASK) | (tiled << TCB_CORE_DEBUG_tiled_SHIFT)
+#define TCB_CORE_DEBUG_SET_opcode(tcb_core_debug_reg, opcode) \
+ tcb_core_debug_reg = (tcb_core_debug_reg & ~TCB_CORE_DEBUG_opcode_MASK) | (opcode << TCB_CORE_DEBUG_opcode_SHIFT)
+#define TCB_CORE_DEBUG_SET_format(tcb_core_debug_reg, format) \
+ tcb_core_debug_reg = (tcb_core_debug_reg & ~TCB_CORE_DEBUG_format_MASK) | (format << TCB_CORE_DEBUG_format_SHIFT)
+#define TCB_CORE_DEBUG_SET_sector_format(tcb_core_debug_reg, sector_format) \
+ tcb_core_debug_reg = (tcb_core_debug_reg & ~TCB_CORE_DEBUG_sector_format_MASK) | (sector_format << TCB_CORE_DEBUG_sector_format_SHIFT)
+#define TCB_CORE_DEBUG_SET_sector_format512(tcb_core_debug_reg, sector_format512) \
+ tcb_core_debug_reg = (tcb_core_debug_reg & ~TCB_CORE_DEBUG_sector_format512_MASK) | (sector_format512 << TCB_CORE_DEBUG_sector_format512_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcb_core_debug_t {
+ unsigned int access512 : TCB_CORE_DEBUG_access512_SIZE;
+ unsigned int tiled : TCB_CORE_DEBUG_tiled_SIZE;
+ unsigned int : 2;
+ unsigned int opcode : TCB_CORE_DEBUG_opcode_SIZE;
+ unsigned int : 1;
+ unsigned int format : TCB_CORE_DEBUG_format_SIZE;
+ unsigned int : 2;
+ unsigned int sector_format : TCB_CORE_DEBUG_sector_format_SIZE;
+ unsigned int : 3;
+ unsigned int sector_format512 : TCB_CORE_DEBUG_sector_format512_SIZE;
+ unsigned int : 5;
+ } tcb_core_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcb_core_debug_t {
+ unsigned int : 5;
+ unsigned int sector_format512 : TCB_CORE_DEBUG_sector_format512_SIZE;
+ unsigned int : 3;
+ unsigned int sector_format : TCB_CORE_DEBUG_sector_format_SIZE;
+ unsigned int : 2;
+ unsigned int format : TCB_CORE_DEBUG_format_SIZE;
+ unsigned int : 1;
+ unsigned int opcode : TCB_CORE_DEBUG_opcode_SIZE;
+ unsigned int : 2;
+ unsigned int tiled : TCB_CORE_DEBUG_tiled_SIZE;
+ unsigned int access512 : TCB_CORE_DEBUG_access512_SIZE;
+ } tcb_core_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcb_core_debug_t f;
+} tcb_core_debug_u;
+
+
+/*
+ * TCB_TAG0_DEBUG struct
+ */
+
+#define TCB_TAG0_DEBUG_mem_read_cycle_SIZE 10
+#define TCB_TAG0_DEBUG_tag_access_cycle_SIZE 9
+#define TCB_TAG0_DEBUG_miss_stall_SIZE 1
+#define TCB_TAG0_DEBUG_num_feee_lines_SIZE 5
+#define TCB_TAG0_DEBUG_max_misses_SIZE 3
+
+#define TCB_TAG0_DEBUG_mem_read_cycle_SHIFT 0
+#define TCB_TAG0_DEBUG_tag_access_cycle_SHIFT 12
+#define TCB_TAG0_DEBUG_miss_stall_SHIFT 23
+#define TCB_TAG0_DEBUG_num_feee_lines_SHIFT 24
+#define TCB_TAG0_DEBUG_max_misses_SHIFT 29
+
+#define TCB_TAG0_DEBUG_mem_read_cycle_MASK 0x000003ff
+#define TCB_TAG0_DEBUG_tag_access_cycle_MASK 0x001ff000
+#define TCB_TAG0_DEBUG_miss_stall_MASK 0x00800000
+#define TCB_TAG0_DEBUG_num_feee_lines_MASK 0x1f000000
+#define TCB_TAG0_DEBUG_max_misses_MASK 0xe0000000
+
+#define TCB_TAG0_DEBUG_MASK \
+ (TCB_TAG0_DEBUG_mem_read_cycle_MASK | \
+ TCB_TAG0_DEBUG_tag_access_cycle_MASK | \
+ TCB_TAG0_DEBUG_miss_stall_MASK | \
+ TCB_TAG0_DEBUG_num_feee_lines_MASK | \
+ TCB_TAG0_DEBUG_max_misses_MASK)
+
+#define TCB_TAG0_DEBUG(mem_read_cycle, tag_access_cycle, miss_stall, num_feee_lines, max_misses) \
+ ((mem_read_cycle << TCB_TAG0_DEBUG_mem_read_cycle_SHIFT) | \
+ (tag_access_cycle << TCB_TAG0_DEBUG_tag_access_cycle_SHIFT) | \
+ (miss_stall << TCB_TAG0_DEBUG_miss_stall_SHIFT) | \
+ (num_feee_lines << TCB_TAG0_DEBUG_num_feee_lines_SHIFT) | \
+ (max_misses << TCB_TAG0_DEBUG_max_misses_SHIFT))
+
+#define TCB_TAG0_DEBUG_GET_mem_read_cycle(tcb_tag0_debug) \
+ ((tcb_tag0_debug & TCB_TAG0_DEBUG_mem_read_cycle_MASK) >> TCB_TAG0_DEBUG_mem_read_cycle_SHIFT)
+#define TCB_TAG0_DEBUG_GET_tag_access_cycle(tcb_tag0_debug) \
+ ((tcb_tag0_debug & TCB_TAG0_DEBUG_tag_access_cycle_MASK) >> TCB_TAG0_DEBUG_tag_access_cycle_SHIFT)
+#define TCB_TAG0_DEBUG_GET_miss_stall(tcb_tag0_debug) \
+ ((tcb_tag0_debug & TCB_TAG0_DEBUG_miss_stall_MASK) >> TCB_TAG0_DEBUG_miss_stall_SHIFT)
+#define TCB_TAG0_DEBUG_GET_num_feee_lines(tcb_tag0_debug) \
+ ((tcb_tag0_debug & TCB_TAG0_DEBUG_num_feee_lines_MASK) >> TCB_TAG0_DEBUG_num_feee_lines_SHIFT)
+#define TCB_TAG0_DEBUG_GET_max_misses(tcb_tag0_debug) \
+ ((tcb_tag0_debug & TCB_TAG0_DEBUG_max_misses_MASK) >> TCB_TAG0_DEBUG_max_misses_SHIFT)
+
+#define TCB_TAG0_DEBUG_SET_mem_read_cycle(tcb_tag0_debug_reg, mem_read_cycle) \
+ tcb_tag0_debug_reg = (tcb_tag0_debug_reg & ~TCB_TAG0_DEBUG_mem_read_cycle_MASK) | (mem_read_cycle << TCB_TAG0_DEBUG_mem_read_cycle_SHIFT)
+#define TCB_TAG0_DEBUG_SET_tag_access_cycle(tcb_tag0_debug_reg, tag_access_cycle) \
+ tcb_tag0_debug_reg = (tcb_tag0_debug_reg & ~TCB_TAG0_DEBUG_tag_access_cycle_MASK) | (tag_access_cycle << TCB_TAG0_DEBUG_tag_access_cycle_SHIFT)
+#define TCB_TAG0_DEBUG_SET_miss_stall(tcb_tag0_debug_reg, miss_stall) \
+ tcb_tag0_debug_reg = (tcb_tag0_debug_reg & ~TCB_TAG0_DEBUG_miss_stall_MASK) | (miss_stall << TCB_TAG0_DEBUG_miss_stall_SHIFT)
+#define TCB_TAG0_DEBUG_SET_num_feee_lines(tcb_tag0_debug_reg, num_feee_lines) \
+ tcb_tag0_debug_reg = (tcb_tag0_debug_reg & ~TCB_TAG0_DEBUG_num_feee_lines_MASK) | (num_feee_lines << TCB_TAG0_DEBUG_num_feee_lines_SHIFT)
+#define TCB_TAG0_DEBUG_SET_max_misses(tcb_tag0_debug_reg, max_misses) \
+ tcb_tag0_debug_reg = (tcb_tag0_debug_reg & ~TCB_TAG0_DEBUG_max_misses_MASK) | (max_misses << TCB_TAG0_DEBUG_max_misses_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcb_tag0_debug_t {
+ unsigned int mem_read_cycle : TCB_TAG0_DEBUG_mem_read_cycle_SIZE;
+ unsigned int : 2;
+ unsigned int tag_access_cycle : TCB_TAG0_DEBUG_tag_access_cycle_SIZE;
+ unsigned int : 2;
+ unsigned int miss_stall : TCB_TAG0_DEBUG_miss_stall_SIZE;
+ unsigned int num_feee_lines : TCB_TAG0_DEBUG_num_feee_lines_SIZE;
+ unsigned int max_misses : TCB_TAG0_DEBUG_max_misses_SIZE;
+ } tcb_tag0_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcb_tag0_debug_t {
+ unsigned int max_misses : TCB_TAG0_DEBUG_max_misses_SIZE;
+ unsigned int num_feee_lines : TCB_TAG0_DEBUG_num_feee_lines_SIZE;
+ unsigned int miss_stall : TCB_TAG0_DEBUG_miss_stall_SIZE;
+ unsigned int : 2;
+ unsigned int tag_access_cycle : TCB_TAG0_DEBUG_tag_access_cycle_SIZE;
+ unsigned int : 2;
+ unsigned int mem_read_cycle : TCB_TAG0_DEBUG_mem_read_cycle_SIZE;
+ } tcb_tag0_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcb_tag0_debug_t f;
+} tcb_tag0_debug_u;
+
+
+/*
+ * TCB_TAG1_DEBUG struct
+ */
+
+#define TCB_TAG1_DEBUG_mem_read_cycle_SIZE 10
+#define TCB_TAG1_DEBUG_tag_access_cycle_SIZE 9
+#define TCB_TAG1_DEBUG_miss_stall_SIZE 1
+#define TCB_TAG1_DEBUG_num_feee_lines_SIZE 5
+#define TCB_TAG1_DEBUG_max_misses_SIZE 3
+
+#define TCB_TAG1_DEBUG_mem_read_cycle_SHIFT 0
+#define TCB_TAG1_DEBUG_tag_access_cycle_SHIFT 12
+#define TCB_TAG1_DEBUG_miss_stall_SHIFT 23
+#define TCB_TAG1_DEBUG_num_feee_lines_SHIFT 24
+#define TCB_TAG1_DEBUG_max_misses_SHIFT 29
+
+#define TCB_TAG1_DEBUG_mem_read_cycle_MASK 0x000003ff
+#define TCB_TAG1_DEBUG_tag_access_cycle_MASK 0x001ff000
+#define TCB_TAG1_DEBUG_miss_stall_MASK 0x00800000
+#define TCB_TAG1_DEBUG_num_feee_lines_MASK 0x1f000000
+#define TCB_TAG1_DEBUG_max_misses_MASK 0xe0000000
+
+#define TCB_TAG1_DEBUG_MASK \
+ (TCB_TAG1_DEBUG_mem_read_cycle_MASK | \
+ TCB_TAG1_DEBUG_tag_access_cycle_MASK | \
+ TCB_TAG1_DEBUG_miss_stall_MASK | \
+ TCB_TAG1_DEBUG_num_feee_lines_MASK | \
+ TCB_TAG1_DEBUG_max_misses_MASK)
+
+#define TCB_TAG1_DEBUG(mem_read_cycle, tag_access_cycle, miss_stall, num_feee_lines, max_misses) \
+ ((mem_read_cycle << TCB_TAG1_DEBUG_mem_read_cycle_SHIFT) | \
+ (tag_access_cycle << TCB_TAG1_DEBUG_tag_access_cycle_SHIFT) | \
+ (miss_stall << TCB_TAG1_DEBUG_miss_stall_SHIFT) | \
+ (num_feee_lines << TCB_TAG1_DEBUG_num_feee_lines_SHIFT) | \
+ (max_misses << TCB_TAG1_DEBUG_max_misses_SHIFT))
+
+#define TCB_TAG1_DEBUG_GET_mem_read_cycle(tcb_tag1_debug) \
+ ((tcb_tag1_debug & TCB_TAG1_DEBUG_mem_read_cycle_MASK) >> TCB_TAG1_DEBUG_mem_read_cycle_SHIFT)
+#define TCB_TAG1_DEBUG_GET_tag_access_cycle(tcb_tag1_debug) \
+ ((tcb_tag1_debug & TCB_TAG1_DEBUG_tag_access_cycle_MASK) >> TCB_TAG1_DEBUG_tag_access_cycle_SHIFT)
+#define TCB_TAG1_DEBUG_GET_miss_stall(tcb_tag1_debug) \
+ ((tcb_tag1_debug & TCB_TAG1_DEBUG_miss_stall_MASK) >> TCB_TAG1_DEBUG_miss_stall_SHIFT)
+#define TCB_TAG1_DEBUG_GET_num_feee_lines(tcb_tag1_debug) \
+ ((tcb_tag1_debug & TCB_TAG1_DEBUG_num_feee_lines_MASK) >> TCB_TAG1_DEBUG_num_feee_lines_SHIFT)
+#define TCB_TAG1_DEBUG_GET_max_misses(tcb_tag1_debug) \
+ ((tcb_tag1_debug & TCB_TAG1_DEBUG_max_misses_MASK) >> TCB_TAG1_DEBUG_max_misses_SHIFT)
+
+#define TCB_TAG1_DEBUG_SET_mem_read_cycle(tcb_tag1_debug_reg, mem_read_cycle) \
+ tcb_tag1_debug_reg = (tcb_tag1_debug_reg & ~TCB_TAG1_DEBUG_mem_read_cycle_MASK) | (mem_read_cycle << TCB_TAG1_DEBUG_mem_read_cycle_SHIFT)
+#define TCB_TAG1_DEBUG_SET_tag_access_cycle(tcb_tag1_debug_reg, tag_access_cycle) \
+ tcb_tag1_debug_reg = (tcb_tag1_debug_reg & ~TCB_TAG1_DEBUG_tag_access_cycle_MASK) | (tag_access_cycle << TCB_TAG1_DEBUG_tag_access_cycle_SHIFT)
+#define TCB_TAG1_DEBUG_SET_miss_stall(tcb_tag1_debug_reg, miss_stall) \
+ tcb_tag1_debug_reg = (tcb_tag1_debug_reg & ~TCB_TAG1_DEBUG_miss_stall_MASK) | (miss_stall << TCB_TAG1_DEBUG_miss_stall_SHIFT)
+#define TCB_TAG1_DEBUG_SET_num_feee_lines(tcb_tag1_debug_reg, num_feee_lines) \
+ tcb_tag1_debug_reg = (tcb_tag1_debug_reg & ~TCB_TAG1_DEBUG_num_feee_lines_MASK) | (num_feee_lines << TCB_TAG1_DEBUG_num_feee_lines_SHIFT)
+#define TCB_TAG1_DEBUG_SET_max_misses(tcb_tag1_debug_reg, max_misses) \
+ tcb_tag1_debug_reg = (tcb_tag1_debug_reg & ~TCB_TAG1_DEBUG_max_misses_MASK) | (max_misses << TCB_TAG1_DEBUG_max_misses_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcb_tag1_debug_t {
+ unsigned int mem_read_cycle : TCB_TAG1_DEBUG_mem_read_cycle_SIZE;
+ unsigned int : 2;
+ unsigned int tag_access_cycle : TCB_TAG1_DEBUG_tag_access_cycle_SIZE;
+ unsigned int : 2;
+ unsigned int miss_stall : TCB_TAG1_DEBUG_miss_stall_SIZE;
+ unsigned int num_feee_lines : TCB_TAG1_DEBUG_num_feee_lines_SIZE;
+ unsigned int max_misses : TCB_TAG1_DEBUG_max_misses_SIZE;
+ } tcb_tag1_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcb_tag1_debug_t {
+ unsigned int max_misses : TCB_TAG1_DEBUG_max_misses_SIZE;
+ unsigned int num_feee_lines : TCB_TAG1_DEBUG_num_feee_lines_SIZE;
+ unsigned int miss_stall : TCB_TAG1_DEBUG_miss_stall_SIZE;
+ unsigned int : 2;
+ unsigned int tag_access_cycle : TCB_TAG1_DEBUG_tag_access_cycle_SIZE;
+ unsigned int : 2;
+ unsigned int mem_read_cycle : TCB_TAG1_DEBUG_mem_read_cycle_SIZE;
+ } tcb_tag1_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcb_tag1_debug_t f;
+} tcb_tag1_debug_u;
+
+
+/*
+ * TCB_TAG2_DEBUG struct
+ */
+
+#define TCB_TAG2_DEBUG_mem_read_cycle_SIZE 10
+#define TCB_TAG2_DEBUG_tag_access_cycle_SIZE 9
+#define TCB_TAG2_DEBUG_miss_stall_SIZE 1
+#define TCB_TAG2_DEBUG_num_feee_lines_SIZE 5
+#define TCB_TAG2_DEBUG_max_misses_SIZE 3
+
+#define TCB_TAG2_DEBUG_mem_read_cycle_SHIFT 0
+#define TCB_TAG2_DEBUG_tag_access_cycle_SHIFT 12
+#define TCB_TAG2_DEBUG_miss_stall_SHIFT 23
+#define TCB_TAG2_DEBUG_num_feee_lines_SHIFT 24
+#define TCB_TAG2_DEBUG_max_misses_SHIFT 29
+
+#define TCB_TAG2_DEBUG_mem_read_cycle_MASK 0x000003ff
+#define TCB_TAG2_DEBUG_tag_access_cycle_MASK 0x001ff000
+#define TCB_TAG2_DEBUG_miss_stall_MASK 0x00800000
+#define TCB_TAG2_DEBUG_num_feee_lines_MASK 0x1f000000
+#define TCB_TAG2_DEBUG_max_misses_MASK 0xe0000000
+
+#define TCB_TAG2_DEBUG_MASK \
+ (TCB_TAG2_DEBUG_mem_read_cycle_MASK | \
+ TCB_TAG2_DEBUG_tag_access_cycle_MASK | \
+ TCB_TAG2_DEBUG_miss_stall_MASK | \
+ TCB_TAG2_DEBUG_num_feee_lines_MASK | \
+ TCB_TAG2_DEBUG_max_misses_MASK)
+
+#define TCB_TAG2_DEBUG(mem_read_cycle, tag_access_cycle, miss_stall, num_feee_lines, max_misses) \
+ ((mem_read_cycle << TCB_TAG2_DEBUG_mem_read_cycle_SHIFT) | \
+ (tag_access_cycle << TCB_TAG2_DEBUG_tag_access_cycle_SHIFT) | \
+ (miss_stall << TCB_TAG2_DEBUG_miss_stall_SHIFT) | \
+ (num_feee_lines << TCB_TAG2_DEBUG_num_feee_lines_SHIFT) | \
+ (max_misses << TCB_TAG2_DEBUG_max_misses_SHIFT))
+
+#define TCB_TAG2_DEBUG_GET_mem_read_cycle(tcb_tag2_debug) \
+ ((tcb_tag2_debug & TCB_TAG2_DEBUG_mem_read_cycle_MASK) >> TCB_TAG2_DEBUG_mem_read_cycle_SHIFT)
+#define TCB_TAG2_DEBUG_GET_tag_access_cycle(tcb_tag2_debug) \
+ ((tcb_tag2_debug & TCB_TAG2_DEBUG_tag_access_cycle_MASK) >> TCB_TAG2_DEBUG_tag_access_cycle_SHIFT)
+#define TCB_TAG2_DEBUG_GET_miss_stall(tcb_tag2_debug) \
+ ((tcb_tag2_debug & TCB_TAG2_DEBUG_miss_stall_MASK) >> TCB_TAG2_DEBUG_miss_stall_SHIFT)
+#define TCB_TAG2_DEBUG_GET_num_feee_lines(tcb_tag2_debug) \
+ ((tcb_tag2_debug & TCB_TAG2_DEBUG_num_feee_lines_MASK) >> TCB_TAG2_DEBUG_num_feee_lines_SHIFT)
+#define TCB_TAG2_DEBUG_GET_max_misses(tcb_tag2_debug) \
+ ((tcb_tag2_debug & TCB_TAG2_DEBUG_max_misses_MASK) >> TCB_TAG2_DEBUG_max_misses_SHIFT)
+
+#define TCB_TAG2_DEBUG_SET_mem_read_cycle(tcb_tag2_debug_reg, mem_read_cycle) \
+ tcb_tag2_debug_reg = (tcb_tag2_debug_reg & ~TCB_TAG2_DEBUG_mem_read_cycle_MASK) | (mem_read_cycle << TCB_TAG2_DEBUG_mem_read_cycle_SHIFT)
+#define TCB_TAG2_DEBUG_SET_tag_access_cycle(tcb_tag2_debug_reg, tag_access_cycle) \
+ tcb_tag2_debug_reg = (tcb_tag2_debug_reg & ~TCB_TAG2_DEBUG_tag_access_cycle_MASK) | (tag_access_cycle << TCB_TAG2_DEBUG_tag_access_cycle_SHIFT)
+#define TCB_TAG2_DEBUG_SET_miss_stall(tcb_tag2_debug_reg, miss_stall) \
+ tcb_tag2_debug_reg = (tcb_tag2_debug_reg & ~TCB_TAG2_DEBUG_miss_stall_MASK) | (miss_stall << TCB_TAG2_DEBUG_miss_stall_SHIFT)
+#define TCB_TAG2_DEBUG_SET_num_feee_lines(tcb_tag2_debug_reg, num_feee_lines) \
+ tcb_tag2_debug_reg = (tcb_tag2_debug_reg & ~TCB_TAG2_DEBUG_num_feee_lines_MASK) | (num_feee_lines << TCB_TAG2_DEBUG_num_feee_lines_SHIFT)
+#define TCB_TAG2_DEBUG_SET_max_misses(tcb_tag2_debug_reg, max_misses) \
+ tcb_tag2_debug_reg = (tcb_tag2_debug_reg & ~TCB_TAG2_DEBUG_max_misses_MASK) | (max_misses << TCB_TAG2_DEBUG_max_misses_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcb_tag2_debug_t {
+ unsigned int mem_read_cycle : TCB_TAG2_DEBUG_mem_read_cycle_SIZE;
+ unsigned int : 2;
+ unsigned int tag_access_cycle : TCB_TAG2_DEBUG_tag_access_cycle_SIZE;
+ unsigned int : 2;
+ unsigned int miss_stall : TCB_TAG2_DEBUG_miss_stall_SIZE;
+ unsigned int num_feee_lines : TCB_TAG2_DEBUG_num_feee_lines_SIZE;
+ unsigned int max_misses : TCB_TAG2_DEBUG_max_misses_SIZE;
+ } tcb_tag2_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcb_tag2_debug_t {
+ unsigned int max_misses : TCB_TAG2_DEBUG_max_misses_SIZE;
+ unsigned int num_feee_lines : TCB_TAG2_DEBUG_num_feee_lines_SIZE;
+ unsigned int miss_stall : TCB_TAG2_DEBUG_miss_stall_SIZE;
+ unsigned int : 2;
+ unsigned int tag_access_cycle : TCB_TAG2_DEBUG_tag_access_cycle_SIZE;
+ unsigned int : 2;
+ unsigned int mem_read_cycle : TCB_TAG2_DEBUG_mem_read_cycle_SIZE;
+ } tcb_tag2_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcb_tag2_debug_t f;
+} tcb_tag2_debug_u;
+
+
+/*
+ * TCB_TAG3_DEBUG struct
+ */
+
+#define TCB_TAG3_DEBUG_mem_read_cycle_SIZE 10
+#define TCB_TAG3_DEBUG_tag_access_cycle_SIZE 9
+#define TCB_TAG3_DEBUG_miss_stall_SIZE 1
+#define TCB_TAG3_DEBUG_num_feee_lines_SIZE 5
+#define TCB_TAG3_DEBUG_max_misses_SIZE 3
+
+#define TCB_TAG3_DEBUG_mem_read_cycle_SHIFT 0
+#define TCB_TAG3_DEBUG_tag_access_cycle_SHIFT 12
+#define TCB_TAG3_DEBUG_miss_stall_SHIFT 23
+#define TCB_TAG3_DEBUG_num_feee_lines_SHIFT 24
+#define TCB_TAG3_DEBUG_max_misses_SHIFT 29
+
+#define TCB_TAG3_DEBUG_mem_read_cycle_MASK 0x000003ff
+#define TCB_TAG3_DEBUG_tag_access_cycle_MASK 0x001ff000
+#define TCB_TAG3_DEBUG_miss_stall_MASK 0x00800000
+#define TCB_TAG3_DEBUG_num_feee_lines_MASK 0x1f000000
+#define TCB_TAG3_DEBUG_max_misses_MASK 0xe0000000
+
+#define TCB_TAG3_DEBUG_MASK \
+ (TCB_TAG3_DEBUG_mem_read_cycle_MASK | \
+ TCB_TAG3_DEBUG_tag_access_cycle_MASK | \
+ TCB_TAG3_DEBUG_miss_stall_MASK | \
+ TCB_TAG3_DEBUG_num_feee_lines_MASK | \
+ TCB_TAG3_DEBUG_max_misses_MASK)
+
+#define TCB_TAG3_DEBUG(mem_read_cycle, tag_access_cycle, miss_stall, num_feee_lines, max_misses) \
+ ((mem_read_cycle << TCB_TAG3_DEBUG_mem_read_cycle_SHIFT) | \
+ (tag_access_cycle << TCB_TAG3_DEBUG_tag_access_cycle_SHIFT) | \
+ (miss_stall << TCB_TAG3_DEBUG_miss_stall_SHIFT) | \
+ (num_feee_lines << TCB_TAG3_DEBUG_num_feee_lines_SHIFT) | \
+ (max_misses << TCB_TAG3_DEBUG_max_misses_SHIFT))
+
+#define TCB_TAG3_DEBUG_GET_mem_read_cycle(tcb_tag3_debug) \
+ ((tcb_tag3_debug & TCB_TAG3_DEBUG_mem_read_cycle_MASK) >> TCB_TAG3_DEBUG_mem_read_cycle_SHIFT)
+#define TCB_TAG3_DEBUG_GET_tag_access_cycle(tcb_tag3_debug) \
+ ((tcb_tag3_debug & TCB_TAG3_DEBUG_tag_access_cycle_MASK) >> TCB_TAG3_DEBUG_tag_access_cycle_SHIFT)
+#define TCB_TAG3_DEBUG_GET_miss_stall(tcb_tag3_debug) \
+ ((tcb_tag3_debug & TCB_TAG3_DEBUG_miss_stall_MASK) >> TCB_TAG3_DEBUG_miss_stall_SHIFT)
+#define TCB_TAG3_DEBUG_GET_num_feee_lines(tcb_tag3_debug) \
+ ((tcb_tag3_debug & TCB_TAG3_DEBUG_num_feee_lines_MASK) >> TCB_TAG3_DEBUG_num_feee_lines_SHIFT)
+#define TCB_TAG3_DEBUG_GET_max_misses(tcb_tag3_debug) \
+ ((tcb_tag3_debug & TCB_TAG3_DEBUG_max_misses_MASK) >> TCB_TAG3_DEBUG_max_misses_SHIFT)
+
+#define TCB_TAG3_DEBUG_SET_mem_read_cycle(tcb_tag3_debug_reg, mem_read_cycle) \
+ tcb_tag3_debug_reg = (tcb_tag3_debug_reg & ~TCB_TAG3_DEBUG_mem_read_cycle_MASK) | (mem_read_cycle << TCB_TAG3_DEBUG_mem_read_cycle_SHIFT)
+#define TCB_TAG3_DEBUG_SET_tag_access_cycle(tcb_tag3_debug_reg, tag_access_cycle) \
+ tcb_tag3_debug_reg = (tcb_tag3_debug_reg & ~TCB_TAG3_DEBUG_tag_access_cycle_MASK) | (tag_access_cycle << TCB_TAG3_DEBUG_tag_access_cycle_SHIFT)
+#define TCB_TAG3_DEBUG_SET_miss_stall(tcb_tag3_debug_reg, miss_stall) \
+ tcb_tag3_debug_reg = (tcb_tag3_debug_reg & ~TCB_TAG3_DEBUG_miss_stall_MASK) | (miss_stall << TCB_TAG3_DEBUG_miss_stall_SHIFT)
+#define TCB_TAG3_DEBUG_SET_num_feee_lines(tcb_tag3_debug_reg, num_feee_lines) \
+ tcb_tag3_debug_reg = (tcb_tag3_debug_reg & ~TCB_TAG3_DEBUG_num_feee_lines_MASK) | (num_feee_lines << TCB_TAG3_DEBUG_num_feee_lines_SHIFT)
+#define TCB_TAG3_DEBUG_SET_max_misses(tcb_tag3_debug_reg, max_misses) \
+ tcb_tag3_debug_reg = (tcb_tag3_debug_reg & ~TCB_TAG3_DEBUG_max_misses_MASK) | (max_misses << TCB_TAG3_DEBUG_max_misses_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcb_tag3_debug_t {
+ unsigned int mem_read_cycle : TCB_TAG3_DEBUG_mem_read_cycle_SIZE;
+ unsigned int : 2;
+ unsigned int tag_access_cycle : TCB_TAG3_DEBUG_tag_access_cycle_SIZE;
+ unsigned int : 2;
+ unsigned int miss_stall : TCB_TAG3_DEBUG_miss_stall_SIZE;
+ unsigned int num_feee_lines : TCB_TAG3_DEBUG_num_feee_lines_SIZE;
+ unsigned int max_misses : TCB_TAG3_DEBUG_max_misses_SIZE;
+ } tcb_tag3_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcb_tag3_debug_t {
+ unsigned int max_misses : TCB_TAG3_DEBUG_max_misses_SIZE;
+ unsigned int num_feee_lines : TCB_TAG3_DEBUG_num_feee_lines_SIZE;
+ unsigned int miss_stall : TCB_TAG3_DEBUG_miss_stall_SIZE;
+ unsigned int : 2;
+ unsigned int tag_access_cycle : TCB_TAG3_DEBUG_tag_access_cycle_SIZE;
+ unsigned int : 2;
+ unsigned int mem_read_cycle : TCB_TAG3_DEBUG_mem_read_cycle_SIZE;
+ } tcb_tag3_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcb_tag3_debug_t f;
+} tcb_tag3_debug_u;
+
+
+/*
+ * TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG struct
+ */
+
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_left_done_SIZE 1
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_fg0_sends_left_SIZE 1
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_one_sector_to_go_left_q_SIZE 1
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_no_sectors_to_go_SIZE 1
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_update_left_SIZE 1
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_count_q_SIZE 5
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_q_SIZE 16
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_valid_left_q_SIZE 1
+
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_left_done_SHIFT 0
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_fg0_sends_left_SHIFT 2
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_one_sector_to_go_left_q_SHIFT 4
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_no_sectors_to_go_SHIFT 5
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_update_left_SHIFT 6
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_count_q_SHIFT 7
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_q_SHIFT 12
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_valid_left_q_SHIFT 28
+
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_left_done_MASK 0x00000001
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_fg0_sends_left_MASK 0x00000004
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_one_sector_to_go_left_q_MASK 0x00000010
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_no_sectors_to_go_MASK 0x00000020
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_update_left_MASK 0x00000040
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_count_q_MASK 0x00000f80
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_q_MASK 0x0ffff000
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_valid_left_q_MASK 0x10000000
+
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_MASK \
+ (TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_left_done_MASK | \
+ TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_fg0_sends_left_MASK | \
+ TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_one_sector_to_go_left_q_MASK | \
+ TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_no_sectors_to_go_MASK | \
+ TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_update_left_MASK | \
+ TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_count_q_MASK | \
+ TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_q_MASK | \
+ TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_valid_left_q_MASK)
+
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG(left_done, fg0_sends_left, one_sector_to_go_left_q, no_sectors_to_go, update_left, sector_mask_left_count_q, sector_mask_left_q, valid_left_q) \
+ ((left_done << TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_left_done_SHIFT) | \
+ (fg0_sends_left << TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_fg0_sends_left_SHIFT) | \
+ (one_sector_to_go_left_q << TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_one_sector_to_go_left_q_SHIFT) | \
+ (no_sectors_to_go << TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_no_sectors_to_go_SHIFT) | \
+ (update_left << TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_update_left_SHIFT) | \
+ (sector_mask_left_count_q << TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_count_q_SHIFT) | \
+ (sector_mask_left_q << TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_q_SHIFT) | \
+ (valid_left_q << TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_valid_left_q_SHIFT))
+
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_GET_left_done(tcb_fetch_gen_sector_walker0_debug) \
+ ((tcb_fetch_gen_sector_walker0_debug & TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_left_done_MASK) >> TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_left_done_SHIFT)
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_GET_fg0_sends_left(tcb_fetch_gen_sector_walker0_debug) \
+ ((tcb_fetch_gen_sector_walker0_debug & TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_fg0_sends_left_MASK) >> TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_fg0_sends_left_SHIFT)
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_GET_one_sector_to_go_left_q(tcb_fetch_gen_sector_walker0_debug) \
+ ((tcb_fetch_gen_sector_walker0_debug & TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_one_sector_to_go_left_q_MASK) >> TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_one_sector_to_go_left_q_SHIFT)
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_GET_no_sectors_to_go(tcb_fetch_gen_sector_walker0_debug) \
+ ((tcb_fetch_gen_sector_walker0_debug & TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_no_sectors_to_go_MASK) >> TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_no_sectors_to_go_SHIFT)
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_GET_update_left(tcb_fetch_gen_sector_walker0_debug) \
+ ((tcb_fetch_gen_sector_walker0_debug & TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_update_left_MASK) >> TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_update_left_SHIFT)
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_GET_sector_mask_left_count_q(tcb_fetch_gen_sector_walker0_debug) \
+ ((tcb_fetch_gen_sector_walker0_debug & TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_count_q_MASK) >> TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_count_q_SHIFT)
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_GET_sector_mask_left_q(tcb_fetch_gen_sector_walker0_debug) \
+ ((tcb_fetch_gen_sector_walker0_debug & TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_q_MASK) >> TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_q_SHIFT)
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_GET_valid_left_q(tcb_fetch_gen_sector_walker0_debug) \
+ ((tcb_fetch_gen_sector_walker0_debug & TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_valid_left_q_MASK) >> TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_valid_left_q_SHIFT)
+
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_SET_left_done(tcb_fetch_gen_sector_walker0_debug_reg, left_done) \
+ tcb_fetch_gen_sector_walker0_debug_reg = (tcb_fetch_gen_sector_walker0_debug_reg & ~TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_left_done_MASK) | (left_done << TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_left_done_SHIFT)
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_SET_fg0_sends_left(tcb_fetch_gen_sector_walker0_debug_reg, fg0_sends_left) \
+ tcb_fetch_gen_sector_walker0_debug_reg = (tcb_fetch_gen_sector_walker0_debug_reg & ~TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_fg0_sends_left_MASK) | (fg0_sends_left << TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_fg0_sends_left_SHIFT)
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_SET_one_sector_to_go_left_q(tcb_fetch_gen_sector_walker0_debug_reg, one_sector_to_go_left_q) \
+ tcb_fetch_gen_sector_walker0_debug_reg = (tcb_fetch_gen_sector_walker0_debug_reg & ~TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_one_sector_to_go_left_q_MASK) | (one_sector_to_go_left_q << TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_one_sector_to_go_left_q_SHIFT)
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_SET_no_sectors_to_go(tcb_fetch_gen_sector_walker0_debug_reg, no_sectors_to_go) \
+ tcb_fetch_gen_sector_walker0_debug_reg = (tcb_fetch_gen_sector_walker0_debug_reg & ~TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_no_sectors_to_go_MASK) | (no_sectors_to_go << TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_no_sectors_to_go_SHIFT)
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_SET_update_left(tcb_fetch_gen_sector_walker0_debug_reg, update_left) \
+ tcb_fetch_gen_sector_walker0_debug_reg = (tcb_fetch_gen_sector_walker0_debug_reg & ~TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_update_left_MASK) | (update_left << TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_update_left_SHIFT)
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_SET_sector_mask_left_count_q(tcb_fetch_gen_sector_walker0_debug_reg, sector_mask_left_count_q) \
+ tcb_fetch_gen_sector_walker0_debug_reg = (tcb_fetch_gen_sector_walker0_debug_reg & ~TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_count_q_MASK) | (sector_mask_left_count_q << TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_count_q_SHIFT)
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_SET_sector_mask_left_q(tcb_fetch_gen_sector_walker0_debug_reg, sector_mask_left_q) \
+ tcb_fetch_gen_sector_walker0_debug_reg = (tcb_fetch_gen_sector_walker0_debug_reg & ~TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_q_MASK) | (sector_mask_left_q << TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_q_SHIFT)
+#define TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_SET_valid_left_q(tcb_fetch_gen_sector_walker0_debug_reg, valid_left_q) \
+ tcb_fetch_gen_sector_walker0_debug_reg = (tcb_fetch_gen_sector_walker0_debug_reg & ~TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_valid_left_q_MASK) | (valid_left_q << TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_valid_left_q_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcb_fetch_gen_sector_walker0_debug_t {
+ unsigned int left_done : TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_left_done_SIZE;
+ unsigned int : 1;
+ unsigned int fg0_sends_left : TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_fg0_sends_left_SIZE;
+ unsigned int : 1;
+ unsigned int one_sector_to_go_left_q : TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_one_sector_to_go_left_q_SIZE;
+ unsigned int no_sectors_to_go : TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_no_sectors_to_go_SIZE;
+ unsigned int update_left : TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_update_left_SIZE;
+ unsigned int sector_mask_left_count_q : TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_count_q_SIZE;
+ unsigned int sector_mask_left_q : TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_q_SIZE;
+ unsigned int valid_left_q : TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_valid_left_q_SIZE;
+ unsigned int : 3;
+ } tcb_fetch_gen_sector_walker0_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcb_fetch_gen_sector_walker0_debug_t {
+ unsigned int : 3;
+ unsigned int valid_left_q : TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_valid_left_q_SIZE;
+ unsigned int sector_mask_left_q : TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_q_SIZE;
+ unsigned int sector_mask_left_count_q : TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_sector_mask_left_count_q_SIZE;
+ unsigned int update_left : TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_update_left_SIZE;
+ unsigned int no_sectors_to_go : TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_no_sectors_to_go_SIZE;
+ unsigned int one_sector_to_go_left_q : TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_one_sector_to_go_left_q_SIZE;
+ unsigned int : 1;
+ unsigned int fg0_sends_left : TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_fg0_sends_left_SIZE;
+ unsigned int : 1;
+ unsigned int left_done : TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG_left_done_SIZE;
+ } tcb_fetch_gen_sector_walker0_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcb_fetch_gen_sector_walker0_debug_t f;
+} tcb_fetch_gen_sector_walker0_debug_u;
+
+
+/*
+ * TCB_FETCH_GEN_WALKER_DEBUG struct
+ */
+
+#define TCB_FETCH_GEN_WALKER_DEBUG_quad_sel_left_SIZE 2
+#define TCB_FETCH_GEN_WALKER_DEBUG_set_sel_left_SIZE 2
+#define TCB_FETCH_GEN_WALKER_DEBUG_right_eq_left_SIZE 1
+#define TCB_FETCH_GEN_WALKER_DEBUG_ff_fg_type512_SIZE 3
+#define TCB_FETCH_GEN_WALKER_DEBUG_busy_SIZE 1
+#define TCB_FETCH_GEN_WALKER_DEBUG_setquads_to_send_SIZE 4
+
+#define TCB_FETCH_GEN_WALKER_DEBUG_quad_sel_left_SHIFT 4
+#define TCB_FETCH_GEN_WALKER_DEBUG_set_sel_left_SHIFT 6
+#define TCB_FETCH_GEN_WALKER_DEBUG_right_eq_left_SHIFT 11
+#define TCB_FETCH_GEN_WALKER_DEBUG_ff_fg_type512_SHIFT 12
+#define TCB_FETCH_GEN_WALKER_DEBUG_busy_SHIFT 15
+#define TCB_FETCH_GEN_WALKER_DEBUG_setquads_to_send_SHIFT 16
+
+#define TCB_FETCH_GEN_WALKER_DEBUG_quad_sel_left_MASK 0x00000030
+#define TCB_FETCH_GEN_WALKER_DEBUG_set_sel_left_MASK 0x000000c0
+#define TCB_FETCH_GEN_WALKER_DEBUG_right_eq_left_MASK 0x00000800
+#define TCB_FETCH_GEN_WALKER_DEBUG_ff_fg_type512_MASK 0x00007000
+#define TCB_FETCH_GEN_WALKER_DEBUG_busy_MASK 0x00008000
+#define TCB_FETCH_GEN_WALKER_DEBUG_setquads_to_send_MASK 0x000f0000
+
+#define TCB_FETCH_GEN_WALKER_DEBUG_MASK \
+ (TCB_FETCH_GEN_WALKER_DEBUG_quad_sel_left_MASK | \
+ TCB_FETCH_GEN_WALKER_DEBUG_set_sel_left_MASK | \
+ TCB_FETCH_GEN_WALKER_DEBUG_right_eq_left_MASK | \
+ TCB_FETCH_GEN_WALKER_DEBUG_ff_fg_type512_MASK | \
+ TCB_FETCH_GEN_WALKER_DEBUG_busy_MASK | \
+ TCB_FETCH_GEN_WALKER_DEBUG_setquads_to_send_MASK)
+
+#define TCB_FETCH_GEN_WALKER_DEBUG(quad_sel_left, set_sel_left, right_eq_left, ff_fg_type512, busy, setquads_to_send) \
+ ((quad_sel_left << TCB_FETCH_GEN_WALKER_DEBUG_quad_sel_left_SHIFT) | \
+ (set_sel_left << TCB_FETCH_GEN_WALKER_DEBUG_set_sel_left_SHIFT) | \
+ (right_eq_left << TCB_FETCH_GEN_WALKER_DEBUG_right_eq_left_SHIFT) | \
+ (ff_fg_type512 << TCB_FETCH_GEN_WALKER_DEBUG_ff_fg_type512_SHIFT) | \
+ (busy << TCB_FETCH_GEN_WALKER_DEBUG_busy_SHIFT) | \
+ (setquads_to_send << TCB_FETCH_GEN_WALKER_DEBUG_setquads_to_send_SHIFT))
+
+#define TCB_FETCH_GEN_WALKER_DEBUG_GET_quad_sel_left(tcb_fetch_gen_walker_debug) \
+ ((tcb_fetch_gen_walker_debug & TCB_FETCH_GEN_WALKER_DEBUG_quad_sel_left_MASK) >> TCB_FETCH_GEN_WALKER_DEBUG_quad_sel_left_SHIFT)
+#define TCB_FETCH_GEN_WALKER_DEBUG_GET_set_sel_left(tcb_fetch_gen_walker_debug) \
+ ((tcb_fetch_gen_walker_debug & TCB_FETCH_GEN_WALKER_DEBUG_set_sel_left_MASK) >> TCB_FETCH_GEN_WALKER_DEBUG_set_sel_left_SHIFT)
+#define TCB_FETCH_GEN_WALKER_DEBUG_GET_right_eq_left(tcb_fetch_gen_walker_debug) \
+ ((tcb_fetch_gen_walker_debug & TCB_FETCH_GEN_WALKER_DEBUG_right_eq_left_MASK) >> TCB_FETCH_GEN_WALKER_DEBUG_right_eq_left_SHIFT)
+#define TCB_FETCH_GEN_WALKER_DEBUG_GET_ff_fg_type512(tcb_fetch_gen_walker_debug) \
+ ((tcb_fetch_gen_walker_debug & TCB_FETCH_GEN_WALKER_DEBUG_ff_fg_type512_MASK) >> TCB_FETCH_GEN_WALKER_DEBUG_ff_fg_type512_SHIFT)
+#define TCB_FETCH_GEN_WALKER_DEBUG_GET_busy(tcb_fetch_gen_walker_debug) \
+ ((tcb_fetch_gen_walker_debug & TCB_FETCH_GEN_WALKER_DEBUG_busy_MASK) >> TCB_FETCH_GEN_WALKER_DEBUG_busy_SHIFT)
+#define TCB_FETCH_GEN_WALKER_DEBUG_GET_setquads_to_send(tcb_fetch_gen_walker_debug) \
+ ((tcb_fetch_gen_walker_debug & TCB_FETCH_GEN_WALKER_DEBUG_setquads_to_send_MASK) >> TCB_FETCH_GEN_WALKER_DEBUG_setquads_to_send_SHIFT)
+
+#define TCB_FETCH_GEN_WALKER_DEBUG_SET_quad_sel_left(tcb_fetch_gen_walker_debug_reg, quad_sel_left) \
+ tcb_fetch_gen_walker_debug_reg = (tcb_fetch_gen_walker_debug_reg & ~TCB_FETCH_GEN_WALKER_DEBUG_quad_sel_left_MASK) | (quad_sel_left << TCB_FETCH_GEN_WALKER_DEBUG_quad_sel_left_SHIFT)
+#define TCB_FETCH_GEN_WALKER_DEBUG_SET_set_sel_left(tcb_fetch_gen_walker_debug_reg, set_sel_left) \
+ tcb_fetch_gen_walker_debug_reg = (tcb_fetch_gen_walker_debug_reg & ~TCB_FETCH_GEN_WALKER_DEBUG_set_sel_left_MASK) | (set_sel_left << TCB_FETCH_GEN_WALKER_DEBUG_set_sel_left_SHIFT)
+#define TCB_FETCH_GEN_WALKER_DEBUG_SET_right_eq_left(tcb_fetch_gen_walker_debug_reg, right_eq_left) \
+ tcb_fetch_gen_walker_debug_reg = (tcb_fetch_gen_walker_debug_reg & ~TCB_FETCH_GEN_WALKER_DEBUG_right_eq_left_MASK) | (right_eq_left << TCB_FETCH_GEN_WALKER_DEBUG_right_eq_left_SHIFT)
+#define TCB_FETCH_GEN_WALKER_DEBUG_SET_ff_fg_type512(tcb_fetch_gen_walker_debug_reg, ff_fg_type512) \
+ tcb_fetch_gen_walker_debug_reg = (tcb_fetch_gen_walker_debug_reg & ~TCB_FETCH_GEN_WALKER_DEBUG_ff_fg_type512_MASK) | (ff_fg_type512 << TCB_FETCH_GEN_WALKER_DEBUG_ff_fg_type512_SHIFT)
+#define TCB_FETCH_GEN_WALKER_DEBUG_SET_busy(tcb_fetch_gen_walker_debug_reg, busy) \
+ tcb_fetch_gen_walker_debug_reg = (tcb_fetch_gen_walker_debug_reg & ~TCB_FETCH_GEN_WALKER_DEBUG_busy_MASK) | (busy << TCB_FETCH_GEN_WALKER_DEBUG_busy_SHIFT)
+#define TCB_FETCH_GEN_WALKER_DEBUG_SET_setquads_to_send(tcb_fetch_gen_walker_debug_reg, setquads_to_send) \
+ tcb_fetch_gen_walker_debug_reg = (tcb_fetch_gen_walker_debug_reg & ~TCB_FETCH_GEN_WALKER_DEBUG_setquads_to_send_MASK) | (setquads_to_send << TCB_FETCH_GEN_WALKER_DEBUG_setquads_to_send_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcb_fetch_gen_walker_debug_t {
+ unsigned int : 4;
+ unsigned int quad_sel_left : TCB_FETCH_GEN_WALKER_DEBUG_quad_sel_left_SIZE;
+ unsigned int set_sel_left : TCB_FETCH_GEN_WALKER_DEBUG_set_sel_left_SIZE;
+ unsigned int : 3;
+ unsigned int right_eq_left : TCB_FETCH_GEN_WALKER_DEBUG_right_eq_left_SIZE;
+ unsigned int ff_fg_type512 : TCB_FETCH_GEN_WALKER_DEBUG_ff_fg_type512_SIZE;
+ unsigned int busy : TCB_FETCH_GEN_WALKER_DEBUG_busy_SIZE;
+ unsigned int setquads_to_send : TCB_FETCH_GEN_WALKER_DEBUG_setquads_to_send_SIZE;
+ unsigned int : 12;
+ } tcb_fetch_gen_walker_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcb_fetch_gen_walker_debug_t {
+ unsigned int : 12;
+ unsigned int setquads_to_send : TCB_FETCH_GEN_WALKER_DEBUG_setquads_to_send_SIZE;
+ unsigned int busy : TCB_FETCH_GEN_WALKER_DEBUG_busy_SIZE;
+ unsigned int ff_fg_type512 : TCB_FETCH_GEN_WALKER_DEBUG_ff_fg_type512_SIZE;
+ unsigned int right_eq_left : TCB_FETCH_GEN_WALKER_DEBUG_right_eq_left_SIZE;
+ unsigned int : 3;
+ unsigned int set_sel_left : TCB_FETCH_GEN_WALKER_DEBUG_set_sel_left_SIZE;
+ unsigned int quad_sel_left : TCB_FETCH_GEN_WALKER_DEBUG_quad_sel_left_SIZE;
+ unsigned int : 4;
+ } tcb_fetch_gen_walker_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcb_fetch_gen_walker_debug_t f;
+} tcb_fetch_gen_walker_debug_u;
+
+
+/*
+ * TCB_FETCH_GEN_PIPE0_DEBUG struct
+ */
+
+#define TCB_FETCH_GEN_PIPE0_DEBUG_tc0_arb_rts_SIZE 1
+#define TCB_FETCH_GEN_PIPE0_DEBUG_ga_out_rts_SIZE 1
+#define TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_format_SIZE 12
+#define TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_fmsopcode_SIZE 5
+#define TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_request_type_SIZE 2
+#define TCB_FETCH_GEN_PIPE0_DEBUG_busy_SIZE 1
+#define TCB_FETCH_GEN_PIPE0_DEBUG_fgo_busy_SIZE 1
+#define TCB_FETCH_GEN_PIPE0_DEBUG_ga_busy_SIZE 1
+#define TCB_FETCH_GEN_PIPE0_DEBUG_mc_sel_q_SIZE 2
+#define TCB_FETCH_GEN_PIPE0_DEBUG_valid_q_SIZE 1
+#define TCB_FETCH_GEN_PIPE0_DEBUG_arb_RTR_SIZE 1
+
+#define TCB_FETCH_GEN_PIPE0_DEBUG_tc0_arb_rts_SHIFT 0
+#define TCB_FETCH_GEN_PIPE0_DEBUG_ga_out_rts_SHIFT 2
+#define TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_format_SHIFT 4
+#define TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_fmsopcode_SHIFT 16
+#define TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_request_type_SHIFT 21
+#define TCB_FETCH_GEN_PIPE0_DEBUG_busy_SHIFT 23
+#define TCB_FETCH_GEN_PIPE0_DEBUG_fgo_busy_SHIFT 24
+#define TCB_FETCH_GEN_PIPE0_DEBUG_ga_busy_SHIFT 25
+#define TCB_FETCH_GEN_PIPE0_DEBUG_mc_sel_q_SHIFT 26
+#define TCB_FETCH_GEN_PIPE0_DEBUG_valid_q_SHIFT 28
+#define TCB_FETCH_GEN_PIPE0_DEBUG_arb_RTR_SHIFT 30
+
+#define TCB_FETCH_GEN_PIPE0_DEBUG_tc0_arb_rts_MASK 0x00000001
+#define TCB_FETCH_GEN_PIPE0_DEBUG_ga_out_rts_MASK 0x00000004
+#define TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_format_MASK 0x0000fff0
+#define TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_fmsopcode_MASK 0x001f0000
+#define TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_request_type_MASK 0x00600000
+#define TCB_FETCH_GEN_PIPE0_DEBUG_busy_MASK 0x00800000
+#define TCB_FETCH_GEN_PIPE0_DEBUG_fgo_busy_MASK 0x01000000
+#define TCB_FETCH_GEN_PIPE0_DEBUG_ga_busy_MASK 0x02000000
+#define TCB_FETCH_GEN_PIPE0_DEBUG_mc_sel_q_MASK 0x0c000000
+#define TCB_FETCH_GEN_PIPE0_DEBUG_valid_q_MASK 0x10000000
+#define TCB_FETCH_GEN_PIPE0_DEBUG_arb_RTR_MASK 0x40000000
+
+#define TCB_FETCH_GEN_PIPE0_DEBUG_MASK \
+ (TCB_FETCH_GEN_PIPE0_DEBUG_tc0_arb_rts_MASK | \
+ TCB_FETCH_GEN_PIPE0_DEBUG_ga_out_rts_MASK | \
+ TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_format_MASK | \
+ TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_fmsopcode_MASK | \
+ TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_request_type_MASK | \
+ TCB_FETCH_GEN_PIPE0_DEBUG_busy_MASK | \
+ TCB_FETCH_GEN_PIPE0_DEBUG_fgo_busy_MASK | \
+ TCB_FETCH_GEN_PIPE0_DEBUG_ga_busy_MASK | \
+ TCB_FETCH_GEN_PIPE0_DEBUG_mc_sel_q_MASK | \
+ TCB_FETCH_GEN_PIPE0_DEBUG_valid_q_MASK | \
+ TCB_FETCH_GEN_PIPE0_DEBUG_arb_RTR_MASK)
+
+#define TCB_FETCH_GEN_PIPE0_DEBUG(tc0_arb_rts, ga_out_rts, tc_arb_format, tc_arb_fmsopcode, tc_arb_request_type, busy, fgo_busy, ga_busy, mc_sel_q, valid_q, arb_rtr) \
+ ((tc0_arb_rts << TCB_FETCH_GEN_PIPE0_DEBUG_tc0_arb_rts_SHIFT) | \
+ (ga_out_rts << TCB_FETCH_GEN_PIPE0_DEBUG_ga_out_rts_SHIFT) | \
+ (tc_arb_format << TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_format_SHIFT) | \
+ (tc_arb_fmsopcode << TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_fmsopcode_SHIFT) | \
+ (tc_arb_request_type << TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_request_type_SHIFT) | \
+ (busy << TCB_FETCH_GEN_PIPE0_DEBUG_busy_SHIFT) | \
+ (fgo_busy << TCB_FETCH_GEN_PIPE0_DEBUG_fgo_busy_SHIFT) | \
+ (ga_busy << TCB_FETCH_GEN_PIPE0_DEBUG_ga_busy_SHIFT) | \
+ (mc_sel_q << TCB_FETCH_GEN_PIPE0_DEBUG_mc_sel_q_SHIFT) | \
+ (valid_q << TCB_FETCH_GEN_PIPE0_DEBUG_valid_q_SHIFT) | \
+ (arb_rtr << TCB_FETCH_GEN_PIPE0_DEBUG_arb_RTR_SHIFT))
+
+#define TCB_FETCH_GEN_PIPE0_DEBUG_GET_tc0_arb_rts(tcb_fetch_gen_pipe0_debug) \
+ ((tcb_fetch_gen_pipe0_debug & TCB_FETCH_GEN_PIPE0_DEBUG_tc0_arb_rts_MASK) >> TCB_FETCH_GEN_PIPE0_DEBUG_tc0_arb_rts_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_GET_ga_out_rts(tcb_fetch_gen_pipe0_debug) \
+ ((tcb_fetch_gen_pipe0_debug & TCB_FETCH_GEN_PIPE0_DEBUG_ga_out_rts_MASK) >> TCB_FETCH_GEN_PIPE0_DEBUG_ga_out_rts_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_GET_tc_arb_format(tcb_fetch_gen_pipe0_debug) \
+ ((tcb_fetch_gen_pipe0_debug & TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_format_MASK) >> TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_format_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_GET_tc_arb_fmsopcode(tcb_fetch_gen_pipe0_debug) \
+ ((tcb_fetch_gen_pipe0_debug & TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_fmsopcode_MASK) >> TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_fmsopcode_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_GET_tc_arb_request_type(tcb_fetch_gen_pipe0_debug) \
+ ((tcb_fetch_gen_pipe0_debug & TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_request_type_MASK) >> TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_request_type_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_GET_busy(tcb_fetch_gen_pipe0_debug) \
+ ((tcb_fetch_gen_pipe0_debug & TCB_FETCH_GEN_PIPE0_DEBUG_busy_MASK) >> TCB_FETCH_GEN_PIPE0_DEBUG_busy_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_GET_fgo_busy(tcb_fetch_gen_pipe0_debug) \
+ ((tcb_fetch_gen_pipe0_debug & TCB_FETCH_GEN_PIPE0_DEBUG_fgo_busy_MASK) >> TCB_FETCH_GEN_PIPE0_DEBUG_fgo_busy_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_GET_ga_busy(tcb_fetch_gen_pipe0_debug) \
+ ((tcb_fetch_gen_pipe0_debug & TCB_FETCH_GEN_PIPE0_DEBUG_ga_busy_MASK) >> TCB_FETCH_GEN_PIPE0_DEBUG_ga_busy_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_GET_mc_sel_q(tcb_fetch_gen_pipe0_debug) \
+ ((tcb_fetch_gen_pipe0_debug & TCB_FETCH_GEN_PIPE0_DEBUG_mc_sel_q_MASK) >> TCB_FETCH_GEN_PIPE0_DEBUG_mc_sel_q_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_GET_valid_q(tcb_fetch_gen_pipe0_debug) \
+ ((tcb_fetch_gen_pipe0_debug & TCB_FETCH_GEN_PIPE0_DEBUG_valid_q_MASK) >> TCB_FETCH_GEN_PIPE0_DEBUG_valid_q_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_GET_arb_RTR(tcb_fetch_gen_pipe0_debug) \
+ ((tcb_fetch_gen_pipe0_debug & TCB_FETCH_GEN_PIPE0_DEBUG_arb_RTR_MASK) >> TCB_FETCH_GEN_PIPE0_DEBUG_arb_RTR_SHIFT)
+
+#define TCB_FETCH_GEN_PIPE0_DEBUG_SET_tc0_arb_rts(tcb_fetch_gen_pipe0_debug_reg, tc0_arb_rts) \
+ tcb_fetch_gen_pipe0_debug_reg = (tcb_fetch_gen_pipe0_debug_reg & ~TCB_FETCH_GEN_PIPE0_DEBUG_tc0_arb_rts_MASK) | (tc0_arb_rts << TCB_FETCH_GEN_PIPE0_DEBUG_tc0_arb_rts_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_SET_ga_out_rts(tcb_fetch_gen_pipe0_debug_reg, ga_out_rts) \
+ tcb_fetch_gen_pipe0_debug_reg = (tcb_fetch_gen_pipe0_debug_reg & ~TCB_FETCH_GEN_PIPE0_DEBUG_ga_out_rts_MASK) | (ga_out_rts << TCB_FETCH_GEN_PIPE0_DEBUG_ga_out_rts_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_SET_tc_arb_format(tcb_fetch_gen_pipe0_debug_reg, tc_arb_format) \
+ tcb_fetch_gen_pipe0_debug_reg = (tcb_fetch_gen_pipe0_debug_reg & ~TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_format_MASK) | (tc_arb_format << TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_format_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_SET_tc_arb_fmsopcode(tcb_fetch_gen_pipe0_debug_reg, tc_arb_fmsopcode) \
+ tcb_fetch_gen_pipe0_debug_reg = (tcb_fetch_gen_pipe0_debug_reg & ~TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_fmsopcode_MASK) | (tc_arb_fmsopcode << TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_fmsopcode_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_SET_tc_arb_request_type(tcb_fetch_gen_pipe0_debug_reg, tc_arb_request_type) \
+ tcb_fetch_gen_pipe0_debug_reg = (tcb_fetch_gen_pipe0_debug_reg & ~TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_request_type_MASK) | (tc_arb_request_type << TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_request_type_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_SET_busy(tcb_fetch_gen_pipe0_debug_reg, busy) \
+ tcb_fetch_gen_pipe0_debug_reg = (tcb_fetch_gen_pipe0_debug_reg & ~TCB_FETCH_GEN_PIPE0_DEBUG_busy_MASK) | (busy << TCB_FETCH_GEN_PIPE0_DEBUG_busy_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_SET_fgo_busy(tcb_fetch_gen_pipe0_debug_reg, fgo_busy) \
+ tcb_fetch_gen_pipe0_debug_reg = (tcb_fetch_gen_pipe0_debug_reg & ~TCB_FETCH_GEN_PIPE0_DEBUG_fgo_busy_MASK) | (fgo_busy << TCB_FETCH_GEN_PIPE0_DEBUG_fgo_busy_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_SET_ga_busy(tcb_fetch_gen_pipe0_debug_reg, ga_busy) \
+ tcb_fetch_gen_pipe0_debug_reg = (tcb_fetch_gen_pipe0_debug_reg & ~TCB_FETCH_GEN_PIPE0_DEBUG_ga_busy_MASK) | (ga_busy << TCB_FETCH_GEN_PIPE0_DEBUG_ga_busy_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_SET_mc_sel_q(tcb_fetch_gen_pipe0_debug_reg, mc_sel_q) \
+ tcb_fetch_gen_pipe0_debug_reg = (tcb_fetch_gen_pipe0_debug_reg & ~TCB_FETCH_GEN_PIPE0_DEBUG_mc_sel_q_MASK) | (mc_sel_q << TCB_FETCH_GEN_PIPE0_DEBUG_mc_sel_q_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_SET_valid_q(tcb_fetch_gen_pipe0_debug_reg, valid_q) \
+ tcb_fetch_gen_pipe0_debug_reg = (tcb_fetch_gen_pipe0_debug_reg & ~TCB_FETCH_GEN_PIPE0_DEBUG_valid_q_MASK) | (valid_q << TCB_FETCH_GEN_PIPE0_DEBUG_valid_q_SHIFT)
+#define TCB_FETCH_GEN_PIPE0_DEBUG_SET_arb_RTR(tcb_fetch_gen_pipe0_debug_reg, arb_rtr) \
+ tcb_fetch_gen_pipe0_debug_reg = (tcb_fetch_gen_pipe0_debug_reg & ~TCB_FETCH_GEN_PIPE0_DEBUG_arb_RTR_MASK) | (arb_rtr << TCB_FETCH_GEN_PIPE0_DEBUG_arb_RTR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcb_fetch_gen_pipe0_debug_t {
+ unsigned int tc0_arb_rts : TCB_FETCH_GEN_PIPE0_DEBUG_tc0_arb_rts_SIZE;
+ unsigned int : 1;
+ unsigned int ga_out_rts : TCB_FETCH_GEN_PIPE0_DEBUG_ga_out_rts_SIZE;
+ unsigned int : 1;
+ unsigned int tc_arb_format : TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_format_SIZE;
+ unsigned int tc_arb_fmsopcode : TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_fmsopcode_SIZE;
+ unsigned int tc_arb_request_type : TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_request_type_SIZE;
+ unsigned int busy : TCB_FETCH_GEN_PIPE0_DEBUG_busy_SIZE;
+ unsigned int fgo_busy : TCB_FETCH_GEN_PIPE0_DEBUG_fgo_busy_SIZE;
+ unsigned int ga_busy : TCB_FETCH_GEN_PIPE0_DEBUG_ga_busy_SIZE;
+ unsigned int mc_sel_q : TCB_FETCH_GEN_PIPE0_DEBUG_mc_sel_q_SIZE;
+ unsigned int valid_q : TCB_FETCH_GEN_PIPE0_DEBUG_valid_q_SIZE;
+ unsigned int : 1;
+ unsigned int arb_rtr : TCB_FETCH_GEN_PIPE0_DEBUG_arb_RTR_SIZE;
+ unsigned int : 1;
+ } tcb_fetch_gen_pipe0_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcb_fetch_gen_pipe0_debug_t {
+ unsigned int : 1;
+ unsigned int arb_rtr : TCB_FETCH_GEN_PIPE0_DEBUG_arb_RTR_SIZE;
+ unsigned int : 1;
+ unsigned int valid_q : TCB_FETCH_GEN_PIPE0_DEBUG_valid_q_SIZE;
+ unsigned int mc_sel_q : TCB_FETCH_GEN_PIPE0_DEBUG_mc_sel_q_SIZE;
+ unsigned int ga_busy : TCB_FETCH_GEN_PIPE0_DEBUG_ga_busy_SIZE;
+ unsigned int fgo_busy : TCB_FETCH_GEN_PIPE0_DEBUG_fgo_busy_SIZE;
+ unsigned int busy : TCB_FETCH_GEN_PIPE0_DEBUG_busy_SIZE;
+ unsigned int tc_arb_request_type : TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_request_type_SIZE;
+ unsigned int tc_arb_fmsopcode : TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_fmsopcode_SIZE;
+ unsigned int tc_arb_format : TCB_FETCH_GEN_PIPE0_DEBUG_tc_arb_format_SIZE;
+ unsigned int : 1;
+ unsigned int ga_out_rts : TCB_FETCH_GEN_PIPE0_DEBUG_ga_out_rts_SIZE;
+ unsigned int : 1;
+ unsigned int tc0_arb_rts : TCB_FETCH_GEN_PIPE0_DEBUG_tc0_arb_rts_SIZE;
+ } tcb_fetch_gen_pipe0_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcb_fetch_gen_pipe0_debug_t f;
+} tcb_fetch_gen_pipe0_debug_u;
+
+
+/*
+ * TCD_INPUT0_DEBUG struct
+ */
+
+#define TCD_INPUT0_DEBUG_empty_SIZE 1
+#define TCD_INPUT0_DEBUG_full_SIZE 1
+#define TCD_INPUT0_DEBUG_valid_q1_SIZE 1
+#define TCD_INPUT0_DEBUG_cnt_q1_SIZE 2
+#define TCD_INPUT0_DEBUG_last_send_q1_SIZE 1
+#define TCD_INPUT0_DEBUG_ip_send_SIZE 1
+#define TCD_INPUT0_DEBUG_ipbuf_dxt_send_SIZE 1
+#define TCD_INPUT0_DEBUG_ipbuf_busy_SIZE 1
+
+#define TCD_INPUT0_DEBUG_empty_SHIFT 16
+#define TCD_INPUT0_DEBUG_full_SHIFT 17
+#define TCD_INPUT0_DEBUG_valid_q1_SHIFT 20
+#define TCD_INPUT0_DEBUG_cnt_q1_SHIFT 21
+#define TCD_INPUT0_DEBUG_last_send_q1_SHIFT 23
+#define TCD_INPUT0_DEBUG_ip_send_SHIFT 24
+#define TCD_INPUT0_DEBUG_ipbuf_dxt_send_SHIFT 25
+#define TCD_INPUT0_DEBUG_ipbuf_busy_SHIFT 26
+
+#define TCD_INPUT0_DEBUG_empty_MASK 0x00010000
+#define TCD_INPUT0_DEBUG_full_MASK 0x00020000
+#define TCD_INPUT0_DEBUG_valid_q1_MASK 0x00100000
+#define TCD_INPUT0_DEBUG_cnt_q1_MASK 0x00600000
+#define TCD_INPUT0_DEBUG_last_send_q1_MASK 0x00800000
+#define TCD_INPUT0_DEBUG_ip_send_MASK 0x01000000
+#define TCD_INPUT0_DEBUG_ipbuf_dxt_send_MASK 0x02000000
+#define TCD_INPUT0_DEBUG_ipbuf_busy_MASK 0x04000000
+
+#define TCD_INPUT0_DEBUG_MASK \
+ (TCD_INPUT0_DEBUG_empty_MASK | \
+ TCD_INPUT0_DEBUG_full_MASK | \
+ TCD_INPUT0_DEBUG_valid_q1_MASK | \
+ TCD_INPUT0_DEBUG_cnt_q1_MASK | \
+ TCD_INPUT0_DEBUG_last_send_q1_MASK | \
+ TCD_INPUT0_DEBUG_ip_send_MASK | \
+ TCD_INPUT0_DEBUG_ipbuf_dxt_send_MASK | \
+ TCD_INPUT0_DEBUG_ipbuf_busy_MASK)
+
+#define TCD_INPUT0_DEBUG(empty, full, valid_q1, cnt_q1, last_send_q1, ip_send, ipbuf_dxt_send, ipbuf_busy) \
+ ((empty << TCD_INPUT0_DEBUG_empty_SHIFT) | \
+ (full << TCD_INPUT0_DEBUG_full_SHIFT) | \
+ (valid_q1 << TCD_INPUT0_DEBUG_valid_q1_SHIFT) | \
+ (cnt_q1 << TCD_INPUT0_DEBUG_cnt_q1_SHIFT) | \
+ (last_send_q1 << TCD_INPUT0_DEBUG_last_send_q1_SHIFT) | \
+ (ip_send << TCD_INPUT0_DEBUG_ip_send_SHIFT) | \
+ (ipbuf_dxt_send << TCD_INPUT0_DEBUG_ipbuf_dxt_send_SHIFT) | \
+ (ipbuf_busy << TCD_INPUT0_DEBUG_ipbuf_busy_SHIFT))
+
+#define TCD_INPUT0_DEBUG_GET_empty(tcd_input0_debug) \
+ ((tcd_input0_debug & TCD_INPUT0_DEBUG_empty_MASK) >> TCD_INPUT0_DEBUG_empty_SHIFT)
+#define TCD_INPUT0_DEBUG_GET_full(tcd_input0_debug) \
+ ((tcd_input0_debug & TCD_INPUT0_DEBUG_full_MASK) >> TCD_INPUT0_DEBUG_full_SHIFT)
+#define TCD_INPUT0_DEBUG_GET_valid_q1(tcd_input0_debug) \
+ ((tcd_input0_debug & TCD_INPUT0_DEBUG_valid_q1_MASK) >> TCD_INPUT0_DEBUG_valid_q1_SHIFT)
+#define TCD_INPUT0_DEBUG_GET_cnt_q1(tcd_input0_debug) \
+ ((tcd_input0_debug & TCD_INPUT0_DEBUG_cnt_q1_MASK) >> TCD_INPUT0_DEBUG_cnt_q1_SHIFT)
+#define TCD_INPUT0_DEBUG_GET_last_send_q1(tcd_input0_debug) \
+ ((tcd_input0_debug & TCD_INPUT0_DEBUG_last_send_q1_MASK) >> TCD_INPUT0_DEBUG_last_send_q1_SHIFT)
+#define TCD_INPUT0_DEBUG_GET_ip_send(tcd_input0_debug) \
+ ((tcd_input0_debug & TCD_INPUT0_DEBUG_ip_send_MASK) >> TCD_INPUT0_DEBUG_ip_send_SHIFT)
+#define TCD_INPUT0_DEBUG_GET_ipbuf_dxt_send(tcd_input0_debug) \
+ ((tcd_input0_debug & TCD_INPUT0_DEBUG_ipbuf_dxt_send_MASK) >> TCD_INPUT0_DEBUG_ipbuf_dxt_send_SHIFT)
+#define TCD_INPUT0_DEBUG_GET_ipbuf_busy(tcd_input0_debug) \
+ ((tcd_input0_debug & TCD_INPUT0_DEBUG_ipbuf_busy_MASK) >> TCD_INPUT0_DEBUG_ipbuf_busy_SHIFT)
+
+#define TCD_INPUT0_DEBUG_SET_empty(tcd_input0_debug_reg, empty) \
+ tcd_input0_debug_reg = (tcd_input0_debug_reg & ~TCD_INPUT0_DEBUG_empty_MASK) | (empty << TCD_INPUT0_DEBUG_empty_SHIFT)
+#define TCD_INPUT0_DEBUG_SET_full(tcd_input0_debug_reg, full) \
+ tcd_input0_debug_reg = (tcd_input0_debug_reg & ~TCD_INPUT0_DEBUG_full_MASK) | (full << TCD_INPUT0_DEBUG_full_SHIFT)
+#define TCD_INPUT0_DEBUG_SET_valid_q1(tcd_input0_debug_reg, valid_q1) \
+ tcd_input0_debug_reg = (tcd_input0_debug_reg & ~TCD_INPUT0_DEBUG_valid_q1_MASK) | (valid_q1 << TCD_INPUT0_DEBUG_valid_q1_SHIFT)
+#define TCD_INPUT0_DEBUG_SET_cnt_q1(tcd_input0_debug_reg, cnt_q1) \
+ tcd_input0_debug_reg = (tcd_input0_debug_reg & ~TCD_INPUT0_DEBUG_cnt_q1_MASK) | (cnt_q1 << TCD_INPUT0_DEBUG_cnt_q1_SHIFT)
+#define TCD_INPUT0_DEBUG_SET_last_send_q1(tcd_input0_debug_reg, last_send_q1) \
+ tcd_input0_debug_reg = (tcd_input0_debug_reg & ~TCD_INPUT0_DEBUG_last_send_q1_MASK) | (last_send_q1 << TCD_INPUT0_DEBUG_last_send_q1_SHIFT)
+#define TCD_INPUT0_DEBUG_SET_ip_send(tcd_input0_debug_reg, ip_send) \
+ tcd_input0_debug_reg = (tcd_input0_debug_reg & ~TCD_INPUT0_DEBUG_ip_send_MASK) | (ip_send << TCD_INPUT0_DEBUG_ip_send_SHIFT)
+#define TCD_INPUT0_DEBUG_SET_ipbuf_dxt_send(tcd_input0_debug_reg, ipbuf_dxt_send) \
+ tcd_input0_debug_reg = (tcd_input0_debug_reg & ~TCD_INPUT0_DEBUG_ipbuf_dxt_send_MASK) | (ipbuf_dxt_send << TCD_INPUT0_DEBUG_ipbuf_dxt_send_SHIFT)
+#define TCD_INPUT0_DEBUG_SET_ipbuf_busy(tcd_input0_debug_reg, ipbuf_busy) \
+ tcd_input0_debug_reg = (tcd_input0_debug_reg & ~TCD_INPUT0_DEBUG_ipbuf_busy_MASK) | (ipbuf_busy << TCD_INPUT0_DEBUG_ipbuf_busy_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcd_input0_debug_t {
+ unsigned int : 16;
+ unsigned int empty : TCD_INPUT0_DEBUG_empty_SIZE;
+ unsigned int full : TCD_INPUT0_DEBUG_full_SIZE;
+ unsigned int : 2;
+ unsigned int valid_q1 : TCD_INPUT0_DEBUG_valid_q1_SIZE;
+ unsigned int cnt_q1 : TCD_INPUT0_DEBUG_cnt_q1_SIZE;
+ unsigned int last_send_q1 : TCD_INPUT0_DEBUG_last_send_q1_SIZE;
+ unsigned int ip_send : TCD_INPUT0_DEBUG_ip_send_SIZE;
+ unsigned int ipbuf_dxt_send : TCD_INPUT0_DEBUG_ipbuf_dxt_send_SIZE;
+ unsigned int ipbuf_busy : TCD_INPUT0_DEBUG_ipbuf_busy_SIZE;
+ unsigned int : 5;
+ } tcd_input0_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcd_input0_debug_t {
+ unsigned int : 5;
+ unsigned int ipbuf_busy : TCD_INPUT0_DEBUG_ipbuf_busy_SIZE;
+ unsigned int ipbuf_dxt_send : TCD_INPUT0_DEBUG_ipbuf_dxt_send_SIZE;
+ unsigned int ip_send : TCD_INPUT0_DEBUG_ip_send_SIZE;
+ unsigned int last_send_q1 : TCD_INPUT0_DEBUG_last_send_q1_SIZE;
+ unsigned int cnt_q1 : TCD_INPUT0_DEBUG_cnt_q1_SIZE;
+ unsigned int valid_q1 : TCD_INPUT0_DEBUG_valid_q1_SIZE;
+ unsigned int : 2;
+ unsigned int full : TCD_INPUT0_DEBUG_full_SIZE;
+ unsigned int empty : TCD_INPUT0_DEBUG_empty_SIZE;
+ unsigned int : 16;
+ } tcd_input0_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcd_input0_debug_t f;
+} tcd_input0_debug_u;
+
+
+/*
+ * TCD_DEGAMMA_DEBUG struct
+ */
+
+#define TCD_DEGAMMA_DEBUG_dgmm_ftfconv_dgmmen_SIZE 2
+#define TCD_DEGAMMA_DEBUG_dgmm_ctrl_dgmm8_SIZE 1
+#define TCD_DEGAMMA_DEBUG_dgmm_ctrl_last_send_SIZE 1
+#define TCD_DEGAMMA_DEBUG_dgmm_ctrl_send_SIZE 1
+#define TCD_DEGAMMA_DEBUG_dgmm_stall_SIZE 1
+#define TCD_DEGAMMA_DEBUG_dgmm_pstate_SIZE 1
+
+#define TCD_DEGAMMA_DEBUG_dgmm_ftfconv_dgmmen_SHIFT 0
+#define TCD_DEGAMMA_DEBUG_dgmm_ctrl_dgmm8_SHIFT 2
+#define TCD_DEGAMMA_DEBUG_dgmm_ctrl_last_send_SHIFT 3
+#define TCD_DEGAMMA_DEBUG_dgmm_ctrl_send_SHIFT 4
+#define TCD_DEGAMMA_DEBUG_dgmm_stall_SHIFT 5
+#define TCD_DEGAMMA_DEBUG_dgmm_pstate_SHIFT 6
+
+#define TCD_DEGAMMA_DEBUG_dgmm_ftfconv_dgmmen_MASK 0x00000003
+#define TCD_DEGAMMA_DEBUG_dgmm_ctrl_dgmm8_MASK 0x00000004
+#define TCD_DEGAMMA_DEBUG_dgmm_ctrl_last_send_MASK 0x00000008
+#define TCD_DEGAMMA_DEBUG_dgmm_ctrl_send_MASK 0x00000010
+#define TCD_DEGAMMA_DEBUG_dgmm_stall_MASK 0x00000020
+#define TCD_DEGAMMA_DEBUG_dgmm_pstate_MASK 0x00000040
+
+#define TCD_DEGAMMA_DEBUG_MASK \
+ (TCD_DEGAMMA_DEBUG_dgmm_ftfconv_dgmmen_MASK | \
+ TCD_DEGAMMA_DEBUG_dgmm_ctrl_dgmm8_MASK | \
+ TCD_DEGAMMA_DEBUG_dgmm_ctrl_last_send_MASK | \
+ TCD_DEGAMMA_DEBUG_dgmm_ctrl_send_MASK | \
+ TCD_DEGAMMA_DEBUG_dgmm_stall_MASK | \
+ TCD_DEGAMMA_DEBUG_dgmm_pstate_MASK)
+
+#define TCD_DEGAMMA_DEBUG(dgmm_ftfconv_dgmmen, dgmm_ctrl_dgmm8, dgmm_ctrl_last_send, dgmm_ctrl_send, dgmm_stall, dgmm_pstate) \
+ ((dgmm_ftfconv_dgmmen << TCD_DEGAMMA_DEBUG_dgmm_ftfconv_dgmmen_SHIFT) | \
+ (dgmm_ctrl_dgmm8 << TCD_DEGAMMA_DEBUG_dgmm_ctrl_dgmm8_SHIFT) | \
+ (dgmm_ctrl_last_send << TCD_DEGAMMA_DEBUG_dgmm_ctrl_last_send_SHIFT) | \
+ (dgmm_ctrl_send << TCD_DEGAMMA_DEBUG_dgmm_ctrl_send_SHIFT) | \
+ (dgmm_stall << TCD_DEGAMMA_DEBUG_dgmm_stall_SHIFT) | \
+ (dgmm_pstate << TCD_DEGAMMA_DEBUG_dgmm_pstate_SHIFT))
+
+#define TCD_DEGAMMA_DEBUG_GET_dgmm_ftfconv_dgmmen(tcd_degamma_debug) \
+ ((tcd_degamma_debug & TCD_DEGAMMA_DEBUG_dgmm_ftfconv_dgmmen_MASK) >> TCD_DEGAMMA_DEBUG_dgmm_ftfconv_dgmmen_SHIFT)
+#define TCD_DEGAMMA_DEBUG_GET_dgmm_ctrl_dgmm8(tcd_degamma_debug) \
+ ((tcd_degamma_debug & TCD_DEGAMMA_DEBUG_dgmm_ctrl_dgmm8_MASK) >> TCD_DEGAMMA_DEBUG_dgmm_ctrl_dgmm8_SHIFT)
+#define TCD_DEGAMMA_DEBUG_GET_dgmm_ctrl_last_send(tcd_degamma_debug) \
+ ((tcd_degamma_debug & TCD_DEGAMMA_DEBUG_dgmm_ctrl_last_send_MASK) >> TCD_DEGAMMA_DEBUG_dgmm_ctrl_last_send_SHIFT)
+#define TCD_DEGAMMA_DEBUG_GET_dgmm_ctrl_send(tcd_degamma_debug) \
+ ((tcd_degamma_debug & TCD_DEGAMMA_DEBUG_dgmm_ctrl_send_MASK) >> TCD_DEGAMMA_DEBUG_dgmm_ctrl_send_SHIFT)
+#define TCD_DEGAMMA_DEBUG_GET_dgmm_stall(tcd_degamma_debug) \
+ ((tcd_degamma_debug & TCD_DEGAMMA_DEBUG_dgmm_stall_MASK) >> TCD_DEGAMMA_DEBUG_dgmm_stall_SHIFT)
+#define TCD_DEGAMMA_DEBUG_GET_dgmm_pstate(tcd_degamma_debug) \
+ ((tcd_degamma_debug & TCD_DEGAMMA_DEBUG_dgmm_pstate_MASK) >> TCD_DEGAMMA_DEBUG_dgmm_pstate_SHIFT)
+
+#define TCD_DEGAMMA_DEBUG_SET_dgmm_ftfconv_dgmmen(tcd_degamma_debug_reg, dgmm_ftfconv_dgmmen) \
+ tcd_degamma_debug_reg = (tcd_degamma_debug_reg & ~TCD_DEGAMMA_DEBUG_dgmm_ftfconv_dgmmen_MASK) | (dgmm_ftfconv_dgmmen << TCD_DEGAMMA_DEBUG_dgmm_ftfconv_dgmmen_SHIFT)
+#define TCD_DEGAMMA_DEBUG_SET_dgmm_ctrl_dgmm8(tcd_degamma_debug_reg, dgmm_ctrl_dgmm8) \
+ tcd_degamma_debug_reg = (tcd_degamma_debug_reg & ~TCD_DEGAMMA_DEBUG_dgmm_ctrl_dgmm8_MASK) | (dgmm_ctrl_dgmm8 << TCD_DEGAMMA_DEBUG_dgmm_ctrl_dgmm8_SHIFT)
+#define TCD_DEGAMMA_DEBUG_SET_dgmm_ctrl_last_send(tcd_degamma_debug_reg, dgmm_ctrl_last_send) \
+ tcd_degamma_debug_reg = (tcd_degamma_debug_reg & ~TCD_DEGAMMA_DEBUG_dgmm_ctrl_last_send_MASK) | (dgmm_ctrl_last_send << TCD_DEGAMMA_DEBUG_dgmm_ctrl_last_send_SHIFT)
+#define TCD_DEGAMMA_DEBUG_SET_dgmm_ctrl_send(tcd_degamma_debug_reg, dgmm_ctrl_send) \
+ tcd_degamma_debug_reg = (tcd_degamma_debug_reg & ~TCD_DEGAMMA_DEBUG_dgmm_ctrl_send_MASK) | (dgmm_ctrl_send << TCD_DEGAMMA_DEBUG_dgmm_ctrl_send_SHIFT)
+#define TCD_DEGAMMA_DEBUG_SET_dgmm_stall(tcd_degamma_debug_reg, dgmm_stall) \
+ tcd_degamma_debug_reg = (tcd_degamma_debug_reg & ~TCD_DEGAMMA_DEBUG_dgmm_stall_MASK) | (dgmm_stall << TCD_DEGAMMA_DEBUG_dgmm_stall_SHIFT)
+#define TCD_DEGAMMA_DEBUG_SET_dgmm_pstate(tcd_degamma_debug_reg, dgmm_pstate) \
+ tcd_degamma_debug_reg = (tcd_degamma_debug_reg & ~TCD_DEGAMMA_DEBUG_dgmm_pstate_MASK) | (dgmm_pstate << TCD_DEGAMMA_DEBUG_dgmm_pstate_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcd_degamma_debug_t {
+ unsigned int dgmm_ftfconv_dgmmen : TCD_DEGAMMA_DEBUG_dgmm_ftfconv_dgmmen_SIZE;
+ unsigned int dgmm_ctrl_dgmm8 : TCD_DEGAMMA_DEBUG_dgmm_ctrl_dgmm8_SIZE;
+ unsigned int dgmm_ctrl_last_send : TCD_DEGAMMA_DEBUG_dgmm_ctrl_last_send_SIZE;
+ unsigned int dgmm_ctrl_send : TCD_DEGAMMA_DEBUG_dgmm_ctrl_send_SIZE;
+ unsigned int dgmm_stall : TCD_DEGAMMA_DEBUG_dgmm_stall_SIZE;
+ unsigned int dgmm_pstate : TCD_DEGAMMA_DEBUG_dgmm_pstate_SIZE;
+ unsigned int : 25;
+ } tcd_degamma_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcd_degamma_debug_t {
+ unsigned int : 25;
+ unsigned int dgmm_pstate : TCD_DEGAMMA_DEBUG_dgmm_pstate_SIZE;
+ unsigned int dgmm_stall : TCD_DEGAMMA_DEBUG_dgmm_stall_SIZE;
+ unsigned int dgmm_ctrl_send : TCD_DEGAMMA_DEBUG_dgmm_ctrl_send_SIZE;
+ unsigned int dgmm_ctrl_last_send : TCD_DEGAMMA_DEBUG_dgmm_ctrl_last_send_SIZE;
+ unsigned int dgmm_ctrl_dgmm8 : TCD_DEGAMMA_DEBUG_dgmm_ctrl_dgmm8_SIZE;
+ unsigned int dgmm_ftfconv_dgmmen : TCD_DEGAMMA_DEBUG_dgmm_ftfconv_dgmmen_SIZE;
+ } tcd_degamma_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcd_degamma_debug_t f;
+} tcd_degamma_debug_u;
+
+
+/*
+ * TCD_DXTMUX_SCTARB_DEBUG struct
+ */
+
+#define TCD_DXTMUX_SCTARB_DEBUG_pstate_SIZE 1
+#define TCD_DXTMUX_SCTARB_DEBUG_sctrmx_rtr_SIZE 1
+#define TCD_DXTMUX_SCTARB_DEBUG_dxtc_rtr_SIZE 1
+#define TCD_DXTMUX_SCTARB_DEBUG_sctrarb_multcyl_send_SIZE 1
+#define TCD_DXTMUX_SCTARB_DEBUG_sctrmx0_sctrarb_rts_SIZE 1
+#define TCD_DXTMUX_SCTARB_DEBUG_dxtc_sctrarb_send_SIZE 1
+#define TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_last_send_SIZE 1
+#define TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_send_SIZE 1
+#define TCD_DXTMUX_SCTARB_DEBUG_dcmp_mux_send_SIZE 1
+
+#define TCD_DXTMUX_SCTARB_DEBUG_pstate_SHIFT 9
+#define TCD_DXTMUX_SCTARB_DEBUG_sctrmx_rtr_SHIFT 10
+#define TCD_DXTMUX_SCTARB_DEBUG_dxtc_rtr_SHIFT 11
+#define TCD_DXTMUX_SCTARB_DEBUG_sctrarb_multcyl_send_SHIFT 15
+#define TCD_DXTMUX_SCTARB_DEBUG_sctrmx0_sctrarb_rts_SHIFT 16
+#define TCD_DXTMUX_SCTARB_DEBUG_dxtc_sctrarb_send_SHIFT 20
+#define TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_last_send_SHIFT 27
+#define TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_send_SHIFT 28
+#define TCD_DXTMUX_SCTARB_DEBUG_dcmp_mux_send_SHIFT 29
+
+#define TCD_DXTMUX_SCTARB_DEBUG_pstate_MASK 0x00000200
+#define TCD_DXTMUX_SCTARB_DEBUG_sctrmx_rtr_MASK 0x00000400
+#define TCD_DXTMUX_SCTARB_DEBUG_dxtc_rtr_MASK 0x00000800
+#define TCD_DXTMUX_SCTARB_DEBUG_sctrarb_multcyl_send_MASK 0x00008000
+#define TCD_DXTMUX_SCTARB_DEBUG_sctrmx0_sctrarb_rts_MASK 0x00010000
+#define TCD_DXTMUX_SCTARB_DEBUG_dxtc_sctrarb_send_MASK 0x00100000
+#define TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_last_send_MASK 0x08000000
+#define TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_send_MASK 0x10000000
+#define TCD_DXTMUX_SCTARB_DEBUG_dcmp_mux_send_MASK 0x20000000
+
+#define TCD_DXTMUX_SCTARB_DEBUG_MASK \
+ (TCD_DXTMUX_SCTARB_DEBUG_pstate_MASK | \
+ TCD_DXTMUX_SCTARB_DEBUG_sctrmx_rtr_MASK | \
+ TCD_DXTMUX_SCTARB_DEBUG_dxtc_rtr_MASK | \
+ TCD_DXTMUX_SCTARB_DEBUG_sctrarb_multcyl_send_MASK | \
+ TCD_DXTMUX_SCTARB_DEBUG_sctrmx0_sctrarb_rts_MASK | \
+ TCD_DXTMUX_SCTARB_DEBUG_dxtc_sctrarb_send_MASK | \
+ TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_last_send_MASK | \
+ TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_send_MASK | \
+ TCD_DXTMUX_SCTARB_DEBUG_dcmp_mux_send_MASK)
+
+#define TCD_DXTMUX_SCTARB_DEBUG(pstate, sctrmx_rtr, dxtc_rtr, sctrarb_multcyl_send, sctrmx0_sctrarb_rts, dxtc_sctrarb_send, dxtc_dgmmpd_last_send, dxtc_dgmmpd_send, dcmp_mux_send) \
+ ((pstate << TCD_DXTMUX_SCTARB_DEBUG_pstate_SHIFT) | \
+ (sctrmx_rtr << TCD_DXTMUX_SCTARB_DEBUG_sctrmx_rtr_SHIFT) | \
+ (dxtc_rtr << TCD_DXTMUX_SCTARB_DEBUG_dxtc_rtr_SHIFT) | \
+ (sctrarb_multcyl_send << TCD_DXTMUX_SCTARB_DEBUG_sctrarb_multcyl_send_SHIFT) | \
+ (sctrmx0_sctrarb_rts << TCD_DXTMUX_SCTARB_DEBUG_sctrmx0_sctrarb_rts_SHIFT) | \
+ (dxtc_sctrarb_send << TCD_DXTMUX_SCTARB_DEBUG_dxtc_sctrarb_send_SHIFT) | \
+ (dxtc_dgmmpd_last_send << TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_last_send_SHIFT) | \
+ (dxtc_dgmmpd_send << TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_send_SHIFT) | \
+ (dcmp_mux_send << TCD_DXTMUX_SCTARB_DEBUG_dcmp_mux_send_SHIFT))
+
+#define TCD_DXTMUX_SCTARB_DEBUG_GET_pstate(tcd_dxtmux_sctarb_debug) \
+ ((tcd_dxtmux_sctarb_debug & TCD_DXTMUX_SCTARB_DEBUG_pstate_MASK) >> TCD_DXTMUX_SCTARB_DEBUG_pstate_SHIFT)
+#define TCD_DXTMUX_SCTARB_DEBUG_GET_sctrmx_rtr(tcd_dxtmux_sctarb_debug) \
+ ((tcd_dxtmux_sctarb_debug & TCD_DXTMUX_SCTARB_DEBUG_sctrmx_rtr_MASK) >> TCD_DXTMUX_SCTARB_DEBUG_sctrmx_rtr_SHIFT)
+#define TCD_DXTMUX_SCTARB_DEBUG_GET_dxtc_rtr(tcd_dxtmux_sctarb_debug) \
+ ((tcd_dxtmux_sctarb_debug & TCD_DXTMUX_SCTARB_DEBUG_dxtc_rtr_MASK) >> TCD_DXTMUX_SCTARB_DEBUG_dxtc_rtr_SHIFT)
+#define TCD_DXTMUX_SCTARB_DEBUG_GET_sctrarb_multcyl_send(tcd_dxtmux_sctarb_debug) \
+ ((tcd_dxtmux_sctarb_debug & TCD_DXTMUX_SCTARB_DEBUG_sctrarb_multcyl_send_MASK) >> TCD_DXTMUX_SCTARB_DEBUG_sctrarb_multcyl_send_SHIFT)
+#define TCD_DXTMUX_SCTARB_DEBUG_GET_sctrmx0_sctrarb_rts(tcd_dxtmux_sctarb_debug) \
+ ((tcd_dxtmux_sctarb_debug & TCD_DXTMUX_SCTARB_DEBUG_sctrmx0_sctrarb_rts_MASK) >> TCD_DXTMUX_SCTARB_DEBUG_sctrmx0_sctrarb_rts_SHIFT)
+#define TCD_DXTMUX_SCTARB_DEBUG_GET_dxtc_sctrarb_send(tcd_dxtmux_sctarb_debug) \
+ ((tcd_dxtmux_sctarb_debug & TCD_DXTMUX_SCTARB_DEBUG_dxtc_sctrarb_send_MASK) >> TCD_DXTMUX_SCTARB_DEBUG_dxtc_sctrarb_send_SHIFT)
+#define TCD_DXTMUX_SCTARB_DEBUG_GET_dxtc_dgmmpd_last_send(tcd_dxtmux_sctarb_debug) \
+ ((tcd_dxtmux_sctarb_debug & TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_last_send_MASK) >> TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_last_send_SHIFT)
+#define TCD_DXTMUX_SCTARB_DEBUG_GET_dxtc_dgmmpd_send(tcd_dxtmux_sctarb_debug) \
+ ((tcd_dxtmux_sctarb_debug & TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_send_MASK) >> TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_send_SHIFT)
+#define TCD_DXTMUX_SCTARB_DEBUG_GET_dcmp_mux_send(tcd_dxtmux_sctarb_debug) \
+ ((tcd_dxtmux_sctarb_debug & TCD_DXTMUX_SCTARB_DEBUG_dcmp_mux_send_MASK) >> TCD_DXTMUX_SCTARB_DEBUG_dcmp_mux_send_SHIFT)
+
+#define TCD_DXTMUX_SCTARB_DEBUG_SET_pstate(tcd_dxtmux_sctarb_debug_reg, pstate) \
+ tcd_dxtmux_sctarb_debug_reg = (tcd_dxtmux_sctarb_debug_reg & ~TCD_DXTMUX_SCTARB_DEBUG_pstate_MASK) | (pstate << TCD_DXTMUX_SCTARB_DEBUG_pstate_SHIFT)
+#define TCD_DXTMUX_SCTARB_DEBUG_SET_sctrmx_rtr(tcd_dxtmux_sctarb_debug_reg, sctrmx_rtr) \
+ tcd_dxtmux_sctarb_debug_reg = (tcd_dxtmux_sctarb_debug_reg & ~TCD_DXTMUX_SCTARB_DEBUG_sctrmx_rtr_MASK) | (sctrmx_rtr << TCD_DXTMUX_SCTARB_DEBUG_sctrmx_rtr_SHIFT)
+#define TCD_DXTMUX_SCTARB_DEBUG_SET_dxtc_rtr(tcd_dxtmux_sctarb_debug_reg, dxtc_rtr) \
+ tcd_dxtmux_sctarb_debug_reg = (tcd_dxtmux_sctarb_debug_reg & ~TCD_DXTMUX_SCTARB_DEBUG_dxtc_rtr_MASK) | (dxtc_rtr << TCD_DXTMUX_SCTARB_DEBUG_dxtc_rtr_SHIFT)
+#define TCD_DXTMUX_SCTARB_DEBUG_SET_sctrarb_multcyl_send(tcd_dxtmux_sctarb_debug_reg, sctrarb_multcyl_send) \
+ tcd_dxtmux_sctarb_debug_reg = (tcd_dxtmux_sctarb_debug_reg & ~TCD_DXTMUX_SCTARB_DEBUG_sctrarb_multcyl_send_MASK) | (sctrarb_multcyl_send << TCD_DXTMUX_SCTARB_DEBUG_sctrarb_multcyl_send_SHIFT)
+#define TCD_DXTMUX_SCTARB_DEBUG_SET_sctrmx0_sctrarb_rts(tcd_dxtmux_sctarb_debug_reg, sctrmx0_sctrarb_rts) \
+ tcd_dxtmux_sctarb_debug_reg = (tcd_dxtmux_sctarb_debug_reg & ~TCD_DXTMUX_SCTARB_DEBUG_sctrmx0_sctrarb_rts_MASK) | (sctrmx0_sctrarb_rts << TCD_DXTMUX_SCTARB_DEBUG_sctrmx0_sctrarb_rts_SHIFT)
+#define TCD_DXTMUX_SCTARB_DEBUG_SET_dxtc_sctrarb_send(tcd_dxtmux_sctarb_debug_reg, dxtc_sctrarb_send) \
+ tcd_dxtmux_sctarb_debug_reg = (tcd_dxtmux_sctarb_debug_reg & ~TCD_DXTMUX_SCTARB_DEBUG_dxtc_sctrarb_send_MASK) | (dxtc_sctrarb_send << TCD_DXTMUX_SCTARB_DEBUG_dxtc_sctrarb_send_SHIFT)
+#define TCD_DXTMUX_SCTARB_DEBUG_SET_dxtc_dgmmpd_last_send(tcd_dxtmux_sctarb_debug_reg, dxtc_dgmmpd_last_send) \
+ tcd_dxtmux_sctarb_debug_reg = (tcd_dxtmux_sctarb_debug_reg & ~TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_last_send_MASK) | (dxtc_dgmmpd_last_send << TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_last_send_SHIFT)
+#define TCD_DXTMUX_SCTARB_DEBUG_SET_dxtc_dgmmpd_send(tcd_dxtmux_sctarb_debug_reg, dxtc_dgmmpd_send) \
+ tcd_dxtmux_sctarb_debug_reg = (tcd_dxtmux_sctarb_debug_reg & ~TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_send_MASK) | (dxtc_dgmmpd_send << TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_send_SHIFT)
+#define TCD_DXTMUX_SCTARB_DEBUG_SET_dcmp_mux_send(tcd_dxtmux_sctarb_debug_reg, dcmp_mux_send) \
+ tcd_dxtmux_sctarb_debug_reg = (tcd_dxtmux_sctarb_debug_reg & ~TCD_DXTMUX_SCTARB_DEBUG_dcmp_mux_send_MASK) | (dcmp_mux_send << TCD_DXTMUX_SCTARB_DEBUG_dcmp_mux_send_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcd_dxtmux_sctarb_debug_t {
+ unsigned int : 9;
+ unsigned int pstate : TCD_DXTMUX_SCTARB_DEBUG_pstate_SIZE;
+ unsigned int sctrmx_rtr : TCD_DXTMUX_SCTARB_DEBUG_sctrmx_rtr_SIZE;
+ unsigned int dxtc_rtr : TCD_DXTMUX_SCTARB_DEBUG_dxtc_rtr_SIZE;
+ unsigned int : 3;
+ unsigned int sctrarb_multcyl_send : TCD_DXTMUX_SCTARB_DEBUG_sctrarb_multcyl_send_SIZE;
+ unsigned int sctrmx0_sctrarb_rts : TCD_DXTMUX_SCTARB_DEBUG_sctrmx0_sctrarb_rts_SIZE;
+ unsigned int : 3;
+ unsigned int dxtc_sctrarb_send : TCD_DXTMUX_SCTARB_DEBUG_dxtc_sctrarb_send_SIZE;
+ unsigned int : 6;
+ unsigned int dxtc_dgmmpd_last_send : TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_last_send_SIZE;
+ unsigned int dxtc_dgmmpd_send : TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_send_SIZE;
+ unsigned int dcmp_mux_send : TCD_DXTMUX_SCTARB_DEBUG_dcmp_mux_send_SIZE;
+ unsigned int : 2;
+ } tcd_dxtmux_sctarb_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcd_dxtmux_sctarb_debug_t {
+ unsigned int : 2;
+ unsigned int dcmp_mux_send : TCD_DXTMUX_SCTARB_DEBUG_dcmp_mux_send_SIZE;
+ unsigned int dxtc_dgmmpd_send : TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_send_SIZE;
+ unsigned int dxtc_dgmmpd_last_send : TCD_DXTMUX_SCTARB_DEBUG_dxtc_dgmmpd_last_send_SIZE;
+ unsigned int : 6;
+ unsigned int dxtc_sctrarb_send : TCD_DXTMUX_SCTARB_DEBUG_dxtc_sctrarb_send_SIZE;
+ unsigned int : 3;
+ unsigned int sctrmx0_sctrarb_rts : TCD_DXTMUX_SCTARB_DEBUG_sctrmx0_sctrarb_rts_SIZE;
+ unsigned int sctrarb_multcyl_send : TCD_DXTMUX_SCTARB_DEBUG_sctrarb_multcyl_send_SIZE;
+ unsigned int : 3;
+ unsigned int dxtc_rtr : TCD_DXTMUX_SCTARB_DEBUG_dxtc_rtr_SIZE;
+ unsigned int sctrmx_rtr : TCD_DXTMUX_SCTARB_DEBUG_sctrmx_rtr_SIZE;
+ unsigned int pstate : TCD_DXTMUX_SCTARB_DEBUG_pstate_SIZE;
+ unsigned int : 9;
+ } tcd_dxtmux_sctarb_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcd_dxtmux_sctarb_debug_t f;
+} tcd_dxtmux_sctarb_debug_u;
+
+
+/*
+ * TCD_DXTC_ARB_DEBUG struct
+ */
+
+#define TCD_DXTC_ARB_DEBUG_n0_stall_SIZE 1
+#define TCD_DXTC_ARB_DEBUG_pstate_SIZE 1
+#define TCD_DXTC_ARB_DEBUG_arb_dcmp01_last_send_SIZE 1
+#define TCD_DXTC_ARB_DEBUG_arb_dcmp01_cnt_SIZE 2
+#define TCD_DXTC_ARB_DEBUG_arb_dcmp01_sector_SIZE 3
+#define TCD_DXTC_ARB_DEBUG_arb_dcmp01_cacheline_SIZE 6
+#define TCD_DXTC_ARB_DEBUG_arb_dcmp01_format_SIZE 12
+#define TCD_DXTC_ARB_DEBUG_arb_dcmp01_send_SIZE 1
+#define TCD_DXTC_ARB_DEBUG_n0_dxt2_4_types_SIZE 1
+
+#define TCD_DXTC_ARB_DEBUG_n0_stall_SHIFT 4
+#define TCD_DXTC_ARB_DEBUG_pstate_SHIFT 5
+#define TCD_DXTC_ARB_DEBUG_arb_dcmp01_last_send_SHIFT 6
+#define TCD_DXTC_ARB_DEBUG_arb_dcmp01_cnt_SHIFT 7
+#define TCD_DXTC_ARB_DEBUG_arb_dcmp01_sector_SHIFT 9
+#define TCD_DXTC_ARB_DEBUG_arb_dcmp01_cacheline_SHIFT 12
+#define TCD_DXTC_ARB_DEBUG_arb_dcmp01_format_SHIFT 18
+#define TCD_DXTC_ARB_DEBUG_arb_dcmp01_send_SHIFT 30
+#define TCD_DXTC_ARB_DEBUG_n0_dxt2_4_types_SHIFT 31
+
+#define TCD_DXTC_ARB_DEBUG_n0_stall_MASK 0x00000010
+#define TCD_DXTC_ARB_DEBUG_pstate_MASK 0x00000020
+#define TCD_DXTC_ARB_DEBUG_arb_dcmp01_last_send_MASK 0x00000040
+#define TCD_DXTC_ARB_DEBUG_arb_dcmp01_cnt_MASK 0x00000180
+#define TCD_DXTC_ARB_DEBUG_arb_dcmp01_sector_MASK 0x00000e00
+#define TCD_DXTC_ARB_DEBUG_arb_dcmp01_cacheline_MASK 0x0003f000
+#define TCD_DXTC_ARB_DEBUG_arb_dcmp01_format_MASK 0x3ffc0000
+#define TCD_DXTC_ARB_DEBUG_arb_dcmp01_send_MASK 0x40000000
+#define TCD_DXTC_ARB_DEBUG_n0_dxt2_4_types_MASK 0x80000000
+
+#define TCD_DXTC_ARB_DEBUG_MASK \
+ (TCD_DXTC_ARB_DEBUG_n0_stall_MASK | \
+ TCD_DXTC_ARB_DEBUG_pstate_MASK | \
+ TCD_DXTC_ARB_DEBUG_arb_dcmp01_last_send_MASK | \
+ TCD_DXTC_ARB_DEBUG_arb_dcmp01_cnt_MASK | \
+ TCD_DXTC_ARB_DEBUG_arb_dcmp01_sector_MASK | \
+ TCD_DXTC_ARB_DEBUG_arb_dcmp01_cacheline_MASK | \
+ TCD_DXTC_ARB_DEBUG_arb_dcmp01_format_MASK | \
+ TCD_DXTC_ARB_DEBUG_arb_dcmp01_send_MASK | \
+ TCD_DXTC_ARB_DEBUG_n0_dxt2_4_types_MASK)
+
+#define TCD_DXTC_ARB_DEBUG(n0_stall, pstate, arb_dcmp01_last_send, arb_dcmp01_cnt, arb_dcmp01_sector, arb_dcmp01_cacheline, arb_dcmp01_format, arb_dcmp01_send, n0_dxt2_4_types) \
+ ((n0_stall << TCD_DXTC_ARB_DEBUG_n0_stall_SHIFT) | \
+ (pstate << TCD_DXTC_ARB_DEBUG_pstate_SHIFT) | \
+ (arb_dcmp01_last_send << TCD_DXTC_ARB_DEBUG_arb_dcmp01_last_send_SHIFT) | \
+ (arb_dcmp01_cnt << TCD_DXTC_ARB_DEBUG_arb_dcmp01_cnt_SHIFT) | \
+ (arb_dcmp01_sector << TCD_DXTC_ARB_DEBUG_arb_dcmp01_sector_SHIFT) | \
+ (arb_dcmp01_cacheline << TCD_DXTC_ARB_DEBUG_arb_dcmp01_cacheline_SHIFT) | \
+ (arb_dcmp01_format << TCD_DXTC_ARB_DEBUG_arb_dcmp01_format_SHIFT) | \
+ (arb_dcmp01_send << TCD_DXTC_ARB_DEBUG_arb_dcmp01_send_SHIFT) | \
+ (n0_dxt2_4_types << TCD_DXTC_ARB_DEBUG_n0_dxt2_4_types_SHIFT))
+
+#define TCD_DXTC_ARB_DEBUG_GET_n0_stall(tcd_dxtc_arb_debug) \
+ ((tcd_dxtc_arb_debug & TCD_DXTC_ARB_DEBUG_n0_stall_MASK) >> TCD_DXTC_ARB_DEBUG_n0_stall_SHIFT)
+#define TCD_DXTC_ARB_DEBUG_GET_pstate(tcd_dxtc_arb_debug) \
+ ((tcd_dxtc_arb_debug & TCD_DXTC_ARB_DEBUG_pstate_MASK) >> TCD_DXTC_ARB_DEBUG_pstate_SHIFT)
+#define TCD_DXTC_ARB_DEBUG_GET_arb_dcmp01_last_send(tcd_dxtc_arb_debug) \
+ ((tcd_dxtc_arb_debug & TCD_DXTC_ARB_DEBUG_arb_dcmp01_last_send_MASK) >> TCD_DXTC_ARB_DEBUG_arb_dcmp01_last_send_SHIFT)
+#define TCD_DXTC_ARB_DEBUG_GET_arb_dcmp01_cnt(tcd_dxtc_arb_debug) \
+ ((tcd_dxtc_arb_debug & TCD_DXTC_ARB_DEBUG_arb_dcmp01_cnt_MASK) >> TCD_DXTC_ARB_DEBUG_arb_dcmp01_cnt_SHIFT)
+#define TCD_DXTC_ARB_DEBUG_GET_arb_dcmp01_sector(tcd_dxtc_arb_debug) \
+ ((tcd_dxtc_arb_debug & TCD_DXTC_ARB_DEBUG_arb_dcmp01_sector_MASK) >> TCD_DXTC_ARB_DEBUG_arb_dcmp01_sector_SHIFT)
+#define TCD_DXTC_ARB_DEBUG_GET_arb_dcmp01_cacheline(tcd_dxtc_arb_debug) \
+ ((tcd_dxtc_arb_debug & TCD_DXTC_ARB_DEBUG_arb_dcmp01_cacheline_MASK) >> TCD_DXTC_ARB_DEBUG_arb_dcmp01_cacheline_SHIFT)
+#define TCD_DXTC_ARB_DEBUG_GET_arb_dcmp01_format(tcd_dxtc_arb_debug) \
+ ((tcd_dxtc_arb_debug & TCD_DXTC_ARB_DEBUG_arb_dcmp01_format_MASK) >> TCD_DXTC_ARB_DEBUG_arb_dcmp01_format_SHIFT)
+#define TCD_DXTC_ARB_DEBUG_GET_arb_dcmp01_send(tcd_dxtc_arb_debug) \
+ ((tcd_dxtc_arb_debug & TCD_DXTC_ARB_DEBUG_arb_dcmp01_send_MASK) >> TCD_DXTC_ARB_DEBUG_arb_dcmp01_send_SHIFT)
+#define TCD_DXTC_ARB_DEBUG_GET_n0_dxt2_4_types(tcd_dxtc_arb_debug) \
+ ((tcd_dxtc_arb_debug & TCD_DXTC_ARB_DEBUG_n0_dxt2_4_types_MASK) >> TCD_DXTC_ARB_DEBUG_n0_dxt2_4_types_SHIFT)
+
+#define TCD_DXTC_ARB_DEBUG_SET_n0_stall(tcd_dxtc_arb_debug_reg, n0_stall) \
+ tcd_dxtc_arb_debug_reg = (tcd_dxtc_arb_debug_reg & ~TCD_DXTC_ARB_DEBUG_n0_stall_MASK) | (n0_stall << TCD_DXTC_ARB_DEBUG_n0_stall_SHIFT)
+#define TCD_DXTC_ARB_DEBUG_SET_pstate(tcd_dxtc_arb_debug_reg, pstate) \
+ tcd_dxtc_arb_debug_reg = (tcd_dxtc_arb_debug_reg & ~TCD_DXTC_ARB_DEBUG_pstate_MASK) | (pstate << TCD_DXTC_ARB_DEBUG_pstate_SHIFT)
+#define TCD_DXTC_ARB_DEBUG_SET_arb_dcmp01_last_send(tcd_dxtc_arb_debug_reg, arb_dcmp01_last_send) \
+ tcd_dxtc_arb_debug_reg = (tcd_dxtc_arb_debug_reg & ~TCD_DXTC_ARB_DEBUG_arb_dcmp01_last_send_MASK) | (arb_dcmp01_last_send << TCD_DXTC_ARB_DEBUG_arb_dcmp01_last_send_SHIFT)
+#define TCD_DXTC_ARB_DEBUG_SET_arb_dcmp01_cnt(tcd_dxtc_arb_debug_reg, arb_dcmp01_cnt) \
+ tcd_dxtc_arb_debug_reg = (tcd_dxtc_arb_debug_reg & ~TCD_DXTC_ARB_DEBUG_arb_dcmp01_cnt_MASK) | (arb_dcmp01_cnt << TCD_DXTC_ARB_DEBUG_arb_dcmp01_cnt_SHIFT)
+#define TCD_DXTC_ARB_DEBUG_SET_arb_dcmp01_sector(tcd_dxtc_arb_debug_reg, arb_dcmp01_sector) \
+ tcd_dxtc_arb_debug_reg = (tcd_dxtc_arb_debug_reg & ~TCD_DXTC_ARB_DEBUG_arb_dcmp01_sector_MASK) | (arb_dcmp01_sector << TCD_DXTC_ARB_DEBUG_arb_dcmp01_sector_SHIFT)
+#define TCD_DXTC_ARB_DEBUG_SET_arb_dcmp01_cacheline(tcd_dxtc_arb_debug_reg, arb_dcmp01_cacheline) \
+ tcd_dxtc_arb_debug_reg = (tcd_dxtc_arb_debug_reg & ~TCD_DXTC_ARB_DEBUG_arb_dcmp01_cacheline_MASK) | (arb_dcmp01_cacheline << TCD_DXTC_ARB_DEBUG_arb_dcmp01_cacheline_SHIFT)
+#define TCD_DXTC_ARB_DEBUG_SET_arb_dcmp01_format(tcd_dxtc_arb_debug_reg, arb_dcmp01_format) \
+ tcd_dxtc_arb_debug_reg = (tcd_dxtc_arb_debug_reg & ~TCD_DXTC_ARB_DEBUG_arb_dcmp01_format_MASK) | (arb_dcmp01_format << TCD_DXTC_ARB_DEBUG_arb_dcmp01_format_SHIFT)
+#define TCD_DXTC_ARB_DEBUG_SET_arb_dcmp01_send(tcd_dxtc_arb_debug_reg, arb_dcmp01_send) \
+ tcd_dxtc_arb_debug_reg = (tcd_dxtc_arb_debug_reg & ~TCD_DXTC_ARB_DEBUG_arb_dcmp01_send_MASK) | (arb_dcmp01_send << TCD_DXTC_ARB_DEBUG_arb_dcmp01_send_SHIFT)
+#define TCD_DXTC_ARB_DEBUG_SET_n0_dxt2_4_types(tcd_dxtc_arb_debug_reg, n0_dxt2_4_types) \
+ tcd_dxtc_arb_debug_reg = (tcd_dxtc_arb_debug_reg & ~TCD_DXTC_ARB_DEBUG_n0_dxt2_4_types_MASK) | (n0_dxt2_4_types << TCD_DXTC_ARB_DEBUG_n0_dxt2_4_types_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcd_dxtc_arb_debug_t {
+ unsigned int : 4;
+ unsigned int n0_stall : TCD_DXTC_ARB_DEBUG_n0_stall_SIZE;
+ unsigned int pstate : TCD_DXTC_ARB_DEBUG_pstate_SIZE;
+ unsigned int arb_dcmp01_last_send : TCD_DXTC_ARB_DEBUG_arb_dcmp01_last_send_SIZE;
+ unsigned int arb_dcmp01_cnt : TCD_DXTC_ARB_DEBUG_arb_dcmp01_cnt_SIZE;
+ unsigned int arb_dcmp01_sector : TCD_DXTC_ARB_DEBUG_arb_dcmp01_sector_SIZE;
+ unsigned int arb_dcmp01_cacheline : TCD_DXTC_ARB_DEBUG_arb_dcmp01_cacheline_SIZE;
+ unsigned int arb_dcmp01_format : TCD_DXTC_ARB_DEBUG_arb_dcmp01_format_SIZE;
+ unsigned int arb_dcmp01_send : TCD_DXTC_ARB_DEBUG_arb_dcmp01_send_SIZE;
+ unsigned int n0_dxt2_4_types : TCD_DXTC_ARB_DEBUG_n0_dxt2_4_types_SIZE;
+ } tcd_dxtc_arb_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcd_dxtc_arb_debug_t {
+ unsigned int n0_dxt2_4_types : TCD_DXTC_ARB_DEBUG_n0_dxt2_4_types_SIZE;
+ unsigned int arb_dcmp01_send : TCD_DXTC_ARB_DEBUG_arb_dcmp01_send_SIZE;
+ unsigned int arb_dcmp01_format : TCD_DXTC_ARB_DEBUG_arb_dcmp01_format_SIZE;
+ unsigned int arb_dcmp01_cacheline : TCD_DXTC_ARB_DEBUG_arb_dcmp01_cacheline_SIZE;
+ unsigned int arb_dcmp01_sector : TCD_DXTC_ARB_DEBUG_arb_dcmp01_sector_SIZE;
+ unsigned int arb_dcmp01_cnt : TCD_DXTC_ARB_DEBUG_arb_dcmp01_cnt_SIZE;
+ unsigned int arb_dcmp01_last_send : TCD_DXTC_ARB_DEBUG_arb_dcmp01_last_send_SIZE;
+ unsigned int pstate : TCD_DXTC_ARB_DEBUG_pstate_SIZE;
+ unsigned int n0_stall : TCD_DXTC_ARB_DEBUG_n0_stall_SIZE;
+ unsigned int : 4;
+ } tcd_dxtc_arb_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcd_dxtc_arb_debug_t f;
+} tcd_dxtc_arb_debug_u;
+
+
+/*
+ * TCD_STALLS_DEBUG struct
+ */
+
+#define TCD_STALLS_DEBUG_not_multcyl_sctrarb_rtr_SIZE 1
+#define TCD_STALLS_DEBUG_not_sctrmx0_sctrarb_rtr_SIZE 1
+#define TCD_STALLS_DEBUG_not_dcmp0_arb_rtr_SIZE 1
+#define TCD_STALLS_DEBUG_not_dgmmpd_dxtc_rtr_SIZE 1
+#define TCD_STALLS_DEBUG_not_mux_dcmp_rtr_SIZE 1
+#define TCD_STALLS_DEBUG_not_incoming_rtr_SIZE 1
+
+#define TCD_STALLS_DEBUG_not_multcyl_sctrarb_rtr_SHIFT 10
+#define TCD_STALLS_DEBUG_not_sctrmx0_sctrarb_rtr_SHIFT 11
+#define TCD_STALLS_DEBUG_not_dcmp0_arb_rtr_SHIFT 17
+#define TCD_STALLS_DEBUG_not_dgmmpd_dxtc_rtr_SHIFT 18
+#define TCD_STALLS_DEBUG_not_mux_dcmp_rtr_SHIFT 19
+#define TCD_STALLS_DEBUG_not_incoming_rtr_SHIFT 31
+
+#define TCD_STALLS_DEBUG_not_multcyl_sctrarb_rtr_MASK 0x00000400
+#define TCD_STALLS_DEBUG_not_sctrmx0_sctrarb_rtr_MASK 0x00000800
+#define TCD_STALLS_DEBUG_not_dcmp0_arb_rtr_MASK 0x00020000
+#define TCD_STALLS_DEBUG_not_dgmmpd_dxtc_rtr_MASK 0x00040000
+#define TCD_STALLS_DEBUG_not_mux_dcmp_rtr_MASK 0x00080000
+#define TCD_STALLS_DEBUG_not_incoming_rtr_MASK 0x80000000
+
+#define TCD_STALLS_DEBUG_MASK \
+ (TCD_STALLS_DEBUG_not_multcyl_sctrarb_rtr_MASK | \
+ TCD_STALLS_DEBUG_not_sctrmx0_sctrarb_rtr_MASK | \
+ TCD_STALLS_DEBUG_not_dcmp0_arb_rtr_MASK | \
+ TCD_STALLS_DEBUG_not_dgmmpd_dxtc_rtr_MASK | \
+ TCD_STALLS_DEBUG_not_mux_dcmp_rtr_MASK | \
+ TCD_STALLS_DEBUG_not_incoming_rtr_MASK)
+
+#define TCD_STALLS_DEBUG(not_multcyl_sctrarb_rtr, not_sctrmx0_sctrarb_rtr, not_dcmp0_arb_rtr, not_dgmmpd_dxtc_rtr, not_mux_dcmp_rtr, not_incoming_rtr) \
+ ((not_multcyl_sctrarb_rtr << TCD_STALLS_DEBUG_not_multcyl_sctrarb_rtr_SHIFT) | \
+ (not_sctrmx0_sctrarb_rtr << TCD_STALLS_DEBUG_not_sctrmx0_sctrarb_rtr_SHIFT) | \
+ (not_dcmp0_arb_rtr << TCD_STALLS_DEBUG_not_dcmp0_arb_rtr_SHIFT) | \
+ (not_dgmmpd_dxtc_rtr << TCD_STALLS_DEBUG_not_dgmmpd_dxtc_rtr_SHIFT) | \
+ (not_mux_dcmp_rtr << TCD_STALLS_DEBUG_not_mux_dcmp_rtr_SHIFT) | \
+ (not_incoming_rtr << TCD_STALLS_DEBUG_not_incoming_rtr_SHIFT))
+
+#define TCD_STALLS_DEBUG_GET_not_multcyl_sctrarb_rtr(tcd_stalls_debug) \
+ ((tcd_stalls_debug & TCD_STALLS_DEBUG_not_multcyl_sctrarb_rtr_MASK) >> TCD_STALLS_DEBUG_not_multcyl_sctrarb_rtr_SHIFT)
+#define TCD_STALLS_DEBUG_GET_not_sctrmx0_sctrarb_rtr(tcd_stalls_debug) \
+ ((tcd_stalls_debug & TCD_STALLS_DEBUG_not_sctrmx0_sctrarb_rtr_MASK) >> TCD_STALLS_DEBUG_not_sctrmx0_sctrarb_rtr_SHIFT)
+#define TCD_STALLS_DEBUG_GET_not_dcmp0_arb_rtr(tcd_stalls_debug) \
+ ((tcd_stalls_debug & TCD_STALLS_DEBUG_not_dcmp0_arb_rtr_MASK) >> TCD_STALLS_DEBUG_not_dcmp0_arb_rtr_SHIFT)
+#define TCD_STALLS_DEBUG_GET_not_dgmmpd_dxtc_rtr(tcd_stalls_debug) \
+ ((tcd_stalls_debug & TCD_STALLS_DEBUG_not_dgmmpd_dxtc_rtr_MASK) >> TCD_STALLS_DEBUG_not_dgmmpd_dxtc_rtr_SHIFT)
+#define TCD_STALLS_DEBUG_GET_not_mux_dcmp_rtr(tcd_stalls_debug) \
+ ((tcd_stalls_debug & TCD_STALLS_DEBUG_not_mux_dcmp_rtr_MASK) >> TCD_STALLS_DEBUG_not_mux_dcmp_rtr_SHIFT)
+#define TCD_STALLS_DEBUG_GET_not_incoming_rtr(tcd_stalls_debug) \
+ ((tcd_stalls_debug & TCD_STALLS_DEBUG_not_incoming_rtr_MASK) >> TCD_STALLS_DEBUG_not_incoming_rtr_SHIFT)
+
+#define TCD_STALLS_DEBUG_SET_not_multcyl_sctrarb_rtr(tcd_stalls_debug_reg, not_multcyl_sctrarb_rtr) \
+ tcd_stalls_debug_reg = (tcd_stalls_debug_reg & ~TCD_STALLS_DEBUG_not_multcyl_sctrarb_rtr_MASK) | (not_multcyl_sctrarb_rtr << TCD_STALLS_DEBUG_not_multcyl_sctrarb_rtr_SHIFT)
+#define TCD_STALLS_DEBUG_SET_not_sctrmx0_sctrarb_rtr(tcd_stalls_debug_reg, not_sctrmx0_sctrarb_rtr) \
+ tcd_stalls_debug_reg = (tcd_stalls_debug_reg & ~TCD_STALLS_DEBUG_not_sctrmx0_sctrarb_rtr_MASK) | (not_sctrmx0_sctrarb_rtr << TCD_STALLS_DEBUG_not_sctrmx0_sctrarb_rtr_SHIFT)
+#define TCD_STALLS_DEBUG_SET_not_dcmp0_arb_rtr(tcd_stalls_debug_reg, not_dcmp0_arb_rtr) \
+ tcd_stalls_debug_reg = (tcd_stalls_debug_reg & ~TCD_STALLS_DEBUG_not_dcmp0_arb_rtr_MASK) | (not_dcmp0_arb_rtr << TCD_STALLS_DEBUG_not_dcmp0_arb_rtr_SHIFT)
+#define TCD_STALLS_DEBUG_SET_not_dgmmpd_dxtc_rtr(tcd_stalls_debug_reg, not_dgmmpd_dxtc_rtr) \
+ tcd_stalls_debug_reg = (tcd_stalls_debug_reg & ~TCD_STALLS_DEBUG_not_dgmmpd_dxtc_rtr_MASK) | (not_dgmmpd_dxtc_rtr << TCD_STALLS_DEBUG_not_dgmmpd_dxtc_rtr_SHIFT)
+#define TCD_STALLS_DEBUG_SET_not_mux_dcmp_rtr(tcd_stalls_debug_reg, not_mux_dcmp_rtr) \
+ tcd_stalls_debug_reg = (tcd_stalls_debug_reg & ~TCD_STALLS_DEBUG_not_mux_dcmp_rtr_MASK) | (not_mux_dcmp_rtr << TCD_STALLS_DEBUG_not_mux_dcmp_rtr_SHIFT)
+#define TCD_STALLS_DEBUG_SET_not_incoming_rtr(tcd_stalls_debug_reg, not_incoming_rtr) \
+ tcd_stalls_debug_reg = (tcd_stalls_debug_reg & ~TCD_STALLS_DEBUG_not_incoming_rtr_MASK) | (not_incoming_rtr << TCD_STALLS_DEBUG_not_incoming_rtr_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tcd_stalls_debug_t {
+ unsigned int : 10;
+ unsigned int not_multcyl_sctrarb_rtr : TCD_STALLS_DEBUG_not_multcyl_sctrarb_rtr_SIZE;
+ unsigned int not_sctrmx0_sctrarb_rtr : TCD_STALLS_DEBUG_not_sctrmx0_sctrarb_rtr_SIZE;
+ unsigned int : 5;
+ unsigned int not_dcmp0_arb_rtr : TCD_STALLS_DEBUG_not_dcmp0_arb_rtr_SIZE;
+ unsigned int not_dgmmpd_dxtc_rtr : TCD_STALLS_DEBUG_not_dgmmpd_dxtc_rtr_SIZE;
+ unsigned int not_mux_dcmp_rtr : TCD_STALLS_DEBUG_not_mux_dcmp_rtr_SIZE;
+ unsigned int : 11;
+ unsigned int not_incoming_rtr : TCD_STALLS_DEBUG_not_incoming_rtr_SIZE;
+ } tcd_stalls_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tcd_stalls_debug_t {
+ unsigned int not_incoming_rtr : TCD_STALLS_DEBUG_not_incoming_rtr_SIZE;
+ unsigned int : 11;
+ unsigned int not_mux_dcmp_rtr : TCD_STALLS_DEBUG_not_mux_dcmp_rtr_SIZE;
+ unsigned int not_dgmmpd_dxtc_rtr : TCD_STALLS_DEBUG_not_dgmmpd_dxtc_rtr_SIZE;
+ unsigned int not_dcmp0_arb_rtr : TCD_STALLS_DEBUG_not_dcmp0_arb_rtr_SIZE;
+ unsigned int : 5;
+ unsigned int not_sctrmx0_sctrarb_rtr : TCD_STALLS_DEBUG_not_sctrmx0_sctrarb_rtr_SIZE;
+ unsigned int not_multcyl_sctrarb_rtr : TCD_STALLS_DEBUG_not_multcyl_sctrarb_rtr_SIZE;
+ unsigned int : 10;
+ } tcd_stalls_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tcd_stalls_debug_t f;
+} tcd_stalls_debug_u;
+
+
+/*
+ * TCO_STALLS_DEBUG struct
+ */
+
+#define TCO_STALLS_DEBUG_quad0_sg_crd_RTR_SIZE 1
+#define TCO_STALLS_DEBUG_quad0_rl_sg_RTR_SIZE 1
+#define TCO_STALLS_DEBUG_quad0_TCO_TCB_rtr_d_SIZE 1
+
+#define TCO_STALLS_DEBUG_quad0_sg_crd_RTR_SHIFT 5
+#define TCO_STALLS_DEBUG_quad0_rl_sg_RTR_SHIFT 6
+#define TCO_STALLS_DEBUG_quad0_TCO_TCB_rtr_d_SHIFT 7
+
+#define TCO_STALLS_DEBUG_quad0_sg_crd_RTR_MASK 0x00000020
+#define TCO_STALLS_DEBUG_quad0_rl_sg_RTR_MASK 0x00000040
+#define TCO_STALLS_DEBUG_quad0_TCO_TCB_rtr_d_MASK 0x00000080
+
+#define TCO_STALLS_DEBUG_MASK \
+ (TCO_STALLS_DEBUG_quad0_sg_crd_RTR_MASK | \
+ TCO_STALLS_DEBUG_quad0_rl_sg_RTR_MASK | \
+ TCO_STALLS_DEBUG_quad0_TCO_TCB_rtr_d_MASK)
+
+#define TCO_STALLS_DEBUG(quad0_sg_crd_rtr, quad0_rl_sg_rtr, quad0_tco_tcb_rtr_d) \
+ ((quad0_sg_crd_rtr << TCO_STALLS_DEBUG_quad0_sg_crd_RTR_SHIFT) | \
+ (quad0_rl_sg_rtr << TCO_STALLS_DEBUG_quad0_rl_sg_RTR_SHIFT) | \
+ (quad0_tco_tcb_rtr_d << TCO_STALLS_DEBUG_quad0_TCO_TCB_rtr_d_SHIFT))
+
+#define TCO_STALLS_DEBUG_GET_quad0_sg_crd_RTR(tco_stalls_debug) \
+ ((tco_stalls_debug & TCO_STALLS_DEBUG_quad0_sg_crd_RTR_MASK) >> TCO_STALLS_DEBUG_quad0_sg_crd_RTR_SHIFT)
+#define TCO_STALLS_DEBUG_GET_quad0_rl_sg_RTR(tco_stalls_debug) \
+ ((tco_stalls_debug & TCO_STALLS_DEBUG_quad0_rl_sg_RTR_MASK) >> TCO_STALLS_DEBUG_quad0_rl_sg_RTR_SHIFT)
+#define TCO_STALLS_DEBUG_GET_quad0_TCO_TCB_rtr_d(tco_stalls_debug) \
+ ((tco_stalls_debug & TCO_STALLS_DEBUG_quad0_TCO_TCB_rtr_d_MASK) >> TCO_STALLS_DEBUG_quad0_TCO_TCB_rtr_d_SHIFT)
+
+#define TCO_STALLS_DEBUG_SET_quad0_sg_crd_RTR(tco_stalls_debug_reg, quad0_sg_crd_rtr) \
+ tco_stalls_debug_reg = (tco_stalls_debug_reg & ~TCO_STALLS_DEBUG_quad0_sg_crd_RTR_MASK) | (quad0_sg_crd_rtr << TCO_STALLS_DEBUG_quad0_sg_crd_RTR_SHIFT)
+#define TCO_STALLS_DEBUG_SET_quad0_rl_sg_RTR(tco_stalls_debug_reg, quad0_rl_sg_rtr) \
+ tco_stalls_debug_reg = (tco_stalls_debug_reg & ~TCO_STALLS_DEBUG_quad0_rl_sg_RTR_MASK) | (quad0_rl_sg_rtr << TCO_STALLS_DEBUG_quad0_rl_sg_RTR_SHIFT)
+#define TCO_STALLS_DEBUG_SET_quad0_TCO_TCB_rtr_d(tco_stalls_debug_reg, quad0_tco_tcb_rtr_d) \
+ tco_stalls_debug_reg = (tco_stalls_debug_reg & ~TCO_STALLS_DEBUG_quad0_TCO_TCB_rtr_d_MASK) | (quad0_tco_tcb_rtr_d << TCO_STALLS_DEBUG_quad0_TCO_TCB_rtr_d_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tco_stalls_debug_t {
+ unsigned int : 5;
+ unsigned int quad0_sg_crd_rtr : TCO_STALLS_DEBUG_quad0_sg_crd_RTR_SIZE;
+ unsigned int quad0_rl_sg_rtr : TCO_STALLS_DEBUG_quad0_rl_sg_RTR_SIZE;
+ unsigned int quad0_tco_tcb_rtr_d : TCO_STALLS_DEBUG_quad0_TCO_TCB_rtr_d_SIZE;
+ unsigned int : 24;
+ } tco_stalls_debug_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tco_stalls_debug_t {
+ unsigned int : 24;
+ unsigned int quad0_tco_tcb_rtr_d : TCO_STALLS_DEBUG_quad0_TCO_TCB_rtr_d_SIZE;
+ unsigned int quad0_rl_sg_rtr : TCO_STALLS_DEBUG_quad0_rl_sg_RTR_SIZE;
+ unsigned int quad0_sg_crd_rtr : TCO_STALLS_DEBUG_quad0_sg_crd_RTR_SIZE;
+ unsigned int : 5;
+ } tco_stalls_debug_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tco_stalls_debug_t f;
+} tco_stalls_debug_u;
+
+
+/*
+ * TCO_QUAD0_DEBUG0 struct
+ */
+
+#define TCO_QUAD0_DEBUG0_rl_sg_sector_format_SIZE 8
+#define TCO_QUAD0_DEBUG0_rl_sg_end_of_sample_SIZE 1
+#define TCO_QUAD0_DEBUG0_rl_sg_rtr_SIZE 1
+#define TCO_QUAD0_DEBUG0_rl_sg_rts_SIZE 1
+#define TCO_QUAD0_DEBUG0_sg_crd_end_of_sample_SIZE 1
+#define TCO_QUAD0_DEBUG0_sg_crd_rtr_SIZE 1
+#define TCO_QUAD0_DEBUG0_sg_crd_rts_SIZE 1
+#define TCO_QUAD0_DEBUG0_stageN1_valid_q_SIZE 1
+#define TCO_QUAD0_DEBUG0_read_cache_q_SIZE 1
+#define TCO_QUAD0_DEBUG0_cache_read_RTR_SIZE 1
+#define TCO_QUAD0_DEBUG0_all_sectors_written_set3_SIZE 1
+#define TCO_QUAD0_DEBUG0_all_sectors_written_set2_SIZE 1
+#define TCO_QUAD0_DEBUG0_all_sectors_written_set1_SIZE 1
+#define TCO_QUAD0_DEBUG0_all_sectors_written_set0_SIZE 1
+#define TCO_QUAD0_DEBUG0_busy_SIZE 1
+
+#define TCO_QUAD0_DEBUG0_rl_sg_sector_format_SHIFT 0
+#define TCO_QUAD0_DEBUG0_rl_sg_end_of_sample_SHIFT 8
+#define TCO_QUAD0_DEBUG0_rl_sg_rtr_SHIFT 9
+#define TCO_QUAD0_DEBUG0_rl_sg_rts_SHIFT 10
+#define TCO_QUAD0_DEBUG0_sg_crd_end_of_sample_SHIFT 11
+#define TCO_QUAD0_DEBUG0_sg_crd_rtr_SHIFT 12
+#define TCO_QUAD0_DEBUG0_sg_crd_rts_SHIFT 13
+#define TCO_QUAD0_DEBUG0_stageN1_valid_q_SHIFT 16
+#define TCO_QUAD0_DEBUG0_read_cache_q_SHIFT 24
+#define TCO_QUAD0_DEBUG0_cache_read_RTR_SHIFT 25
+#define TCO_QUAD0_DEBUG0_all_sectors_written_set3_SHIFT 26
+#define TCO_QUAD0_DEBUG0_all_sectors_written_set2_SHIFT 27
+#define TCO_QUAD0_DEBUG0_all_sectors_written_set1_SHIFT 28
+#define TCO_QUAD0_DEBUG0_all_sectors_written_set0_SHIFT 29
+#define TCO_QUAD0_DEBUG0_busy_SHIFT 30
+
+#define TCO_QUAD0_DEBUG0_rl_sg_sector_format_MASK 0x000000ff
+#define TCO_QUAD0_DEBUG0_rl_sg_end_of_sample_MASK 0x00000100
+#define TCO_QUAD0_DEBUG0_rl_sg_rtr_MASK 0x00000200
+#define TCO_QUAD0_DEBUG0_rl_sg_rts_MASK 0x00000400
+#define TCO_QUAD0_DEBUG0_sg_crd_end_of_sample_MASK 0x00000800
+#define TCO_QUAD0_DEBUG0_sg_crd_rtr_MASK 0x00001000
+#define TCO_QUAD0_DEBUG0_sg_crd_rts_MASK 0x00002000
+#define TCO_QUAD0_DEBUG0_stageN1_valid_q_MASK 0x00010000
+#define TCO_QUAD0_DEBUG0_read_cache_q_MASK 0x01000000
+#define TCO_QUAD0_DEBUG0_cache_read_RTR_MASK 0x02000000
+#define TCO_QUAD0_DEBUG0_all_sectors_written_set3_MASK 0x04000000
+#define TCO_QUAD0_DEBUG0_all_sectors_written_set2_MASK 0x08000000
+#define TCO_QUAD0_DEBUG0_all_sectors_written_set1_MASK 0x10000000
+#define TCO_QUAD0_DEBUG0_all_sectors_written_set0_MASK 0x20000000
+#define TCO_QUAD0_DEBUG0_busy_MASK 0x40000000
+
+#define TCO_QUAD0_DEBUG0_MASK \
+ (TCO_QUAD0_DEBUG0_rl_sg_sector_format_MASK | \
+ TCO_QUAD0_DEBUG0_rl_sg_end_of_sample_MASK | \
+ TCO_QUAD0_DEBUG0_rl_sg_rtr_MASK | \
+ TCO_QUAD0_DEBUG0_rl_sg_rts_MASK | \
+ TCO_QUAD0_DEBUG0_sg_crd_end_of_sample_MASK | \
+ TCO_QUAD0_DEBUG0_sg_crd_rtr_MASK | \
+ TCO_QUAD0_DEBUG0_sg_crd_rts_MASK | \
+ TCO_QUAD0_DEBUG0_stageN1_valid_q_MASK | \
+ TCO_QUAD0_DEBUG0_read_cache_q_MASK | \
+ TCO_QUAD0_DEBUG0_cache_read_RTR_MASK | \
+ TCO_QUAD0_DEBUG0_all_sectors_written_set3_MASK | \
+ TCO_QUAD0_DEBUG0_all_sectors_written_set2_MASK | \
+ TCO_QUAD0_DEBUG0_all_sectors_written_set1_MASK | \
+ TCO_QUAD0_DEBUG0_all_sectors_written_set0_MASK | \
+ TCO_QUAD0_DEBUG0_busy_MASK)
+
+#define TCO_QUAD0_DEBUG0(rl_sg_sector_format, rl_sg_end_of_sample, rl_sg_rtr, rl_sg_rts, sg_crd_end_of_sample, sg_crd_rtr, sg_crd_rts, stagen1_valid_q, read_cache_q, cache_read_rtr, all_sectors_written_set3, all_sectors_written_set2, all_sectors_written_set1, all_sectors_written_set0, busy) \
+ ((rl_sg_sector_format << TCO_QUAD0_DEBUG0_rl_sg_sector_format_SHIFT) | \
+ (rl_sg_end_of_sample << TCO_QUAD0_DEBUG0_rl_sg_end_of_sample_SHIFT) | \
+ (rl_sg_rtr << TCO_QUAD0_DEBUG0_rl_sg_rtr_SHIFT) | \
+ (rl_sg_rts << TCO_QUAD0_DEBUG0_rl_sg_rts_SHIFT) | \
+ (sg_crd_end_of_sample << TCO_QUAD0_DEBUG0_sg_crd_end_of_sample_SHIFT) | \
+ (sg_crd_rtr << TCO_QUAD0_DEBUG0_sg_crd_rtr_SHIFT) | \
+ (sg_crd_rts << TCO_QUAD0_DEBUG0_sg_crd_rts_SHIFT) | \
+ (stagen1_valid_q << TCO_QUAD0_DEBUG0_stageN1_valid_q_SHIFT) | \
+ (read_cache_q << TCO_QUAD0_DEBUG0_read_cache_q_SHIFT) | \
+ (cache_read_rtr << TCO_QUAD0_DEBUG0_cache_read_RTR_SHIFT) | \
+ (all_sectors_written_set3 << TCO_QUAD0_DEBUG0_all_sectors_written_set3_SHIFT) | \
+ (all_sectors_written_set2 << TCO_QUAD0_DEBUG0_all_sectors_written_set2_SHIFT) | \
+ (all_sectors_written_set1 << TCO_QUAD0_DEBUG0_all_sectors_written_set1_SHIFT) | \
+ (all_sectors_written_set0 << TCO_QUAD0_DEBUG0_all_sectors_written_set0_SHIFT) | \
+ (busy << TCO_QUAD0_DEBUG0_busy_SHIFT))
+
+#define TCO_QUAD0_DEBUG0_GET_rl_sg_sector_format(tco_quad0_debug0) \
+ ((tco_quad0_debug0 & TCO_QUAD0_DEBUG0_rl_sg_sector_format_MASK) >> TCO_QUAD0_DEBUG0_rl_sg_sector_format_SHIFT)
+#define TCO_QUAD0_DEBUG0_GET_rl_sg_end_of_sample(tco_quad0_debug0) \
+ ((tco_quad0_debug0 & TCO_QUAD0_DEBUG0_rl_sg_end_of_sample_MASK) >> TCO_QUAD0_DEBUG0_rl_sg_end_of_sample_SHIFT)
+#define TCO_QUAD0_DEBUG0_GET_rl_sg_rtr(tco_quad0_debug0) \
+ ((tco_quad0_debug0 & TCO_QUAD0_DEBUG0_rl_sg_rtr_MASK) >> TCO_QUAD0_DEBUG0_rl_sg_rtr_SHIFT)
+#define TCO_QUAD0_DEBUG0_GET_rl_sg_rts(tco_quad0_debug0) \
+ ((tco_quad0_debug0 & TCO_QUAD0_DEBUG0_rl_sg_rts_MASK) >> TCO_QUAD0_DEBUG0_rl_sg_rts_SHIFT)
+#define TCO_QUAD0_DEBUG0_GET_sg_crd_end_of_sample(tco_quad0_debug0) \
+ ((tco_quad0_debug0 & TCO_QUAD0_DEBUG0_sg_crd_end_of_sample_MASK) >> TCO_QUAD0_DEBUG0_sg_crd_end_of_sample_SHIFT)
+#define TCO_QUAD0_DEBUG0_GET_sg_crd_rtr(tco_quad0_debug0) \
+ ((tco_quad0_debug0 & TCO_QUAD0_DEBUG0_sg_crd_rtr_MASK) >> TCO_QUAD0_DEBUG0_sg_crd_rtr_SHIFT)
+#define TCO_QUAD0_DEBUG0_GET_sg_crd_rts(tco_quad0_debug0) \
+ ((tco_quad0_debug0 & TCO_QUAD0_DEBUG0_sg_crd_rts_MASK) >> TCO_QUAD0_DEBUG0_sg_crd_rts_SHIFT)
+#define TCO_QUAD0_DEBUG0_GET_stageN1_valid_q(tco_quad0_debug0) \
+ ((tco_quad0_debug0 & TCO_QUAD0_DEBUG0_stageN1_valid_q_MASK) >> TCO_QUAD0_DEBUG0_stageN1_valid_q_SHIFT)
+#define TCO_QUAD0_DEBUG0_GET_read_cache_q(tco_quad0_debug0) \
+ ((tco_quad0_debug0 & TCO_QUAD0_DEBUG0_read_cache_q_MASK) >> TCO_QUAD0_DEBUG0_read_cache_q_SHIFT)
+#define TCO_QUAD0_DEBUG0_GET_cache_read_RTR(tco_quad0_debug0) \
+ ((tco_quad0_debug0 & TCO_QUAD0_DEBUG0_cache_read_RTR_MASK) >> TCO_QUAD0_DEBUG0_cache_read_RTR_SHIFT)
+#define TCO_QUAD0_DEBUG0_GET_all_sectors_written_set3(tco_quad0_debug0) \
+ ((tco_quad0_debug0 & TCO_QUAD0_DEBUG0_all_sectors_written_set3_MASK) >> TCO_QUAD0_DEBUG0_all_sectors_written_set3_SHIFT)
+#define TCO_QUAD0_DEBUG0_GET_all_sectors_written_set2(tco_quad0_debug0) \
+ ((tco_quad0_debug0 & TCO_QUAD0_DEBUG0_all_sectors_written_set2_MASK) >> TCO_QUAD0_DEBUG0_all_sectors_written_set2_SHIFT)
+#define TCO_QUAD0_DEBUG0_GET_all_sectors_written_set1(tco_quad0_debug0) \
+ ((tco_quad0_debug0 & TCO_QUAD0_DEBUG0_all_sectors_written_set1_MASK) >> TCO_QUAD0_DEBUG0_all_sectors_written_set1_SHIFT)
+#define TCO_QUAD0_DEBUG0_GET_all_sectors_written_set0(tco_quad0_debug0) \
+ ((tco_quad0_debug0 & TCO_QUAD0_DEBUG0_all_sectors_written_set0_MASK) >> TCO_QUAD0_DEBUG0_all_sectors_written_set0_SHIFT)
+#define TCO_QUAD0_DEBUG0_GET_busy(tco_quad0_debug0) \
+ ((tco_quad0_debug0 & TCO_QUAD0_DEBUG0_busy_MASK) >> TCO_QUAD0_DEBUG0_busy_SHIFT)
+
+#define TCO_QUAD0_DEBUG0_SET_rl_sg_sector_format(tco_quad0_debug0_reg, rl_sg_sector_format) \
+ tco_quad0_debug0_reg = (tco_quad0_debug0_reg & ~TCO_QUAD0_DEBUG0_rl_sg_sector_format_MASK) | (rl_sg_sector_format << TCO_QUAD0_DEBUG0_rl_sg_sector_format_SHIFT)
+#define TCO_QUAD0_DEBUG0_SET_rl_sg_end_of_sample(tco_quad0_debug0_reg, rl_sg_end_of_sample) \
+ tco_quad0_debug0_reg = (tco_quad0_debug0_reg & ~TCO_QUAD0_DEBUG0_rl_sg_end_of_sample_MASK) | (rl_sg_end_of_sample << TCO_QUAD0_DEBUG0_rl_sg_end_of_sample_SHIFT)
+#define TCO_QUAD0_DEBUG0_SET_rl_sg_rtr(tco_quad0_debug0_reg, rl_sg_rtr) \
+ tco_quad0_debug0_reg = (tco_quad0_debug0_reg & ~TCO_QUAD0_DEBUG0_rl_sg_rtr_MASK) | (rl_sg_rtr << TCO_QUAD0_DEBUG0_rl_sg_rtr_SHIFT)
+#define TCO_QUAD0_DEBUG0_SET_rl_sg_rts(tco_quad0_debug0_reg, rl_sg_rts) \
+ tco_quad0_debug0_reg = (tco_quad0_debug0_reg & ~TCO_QUAD0_DEBUG0_rl_sg_rts_MASK) | (rl_sg_rts << TCO_QUAD0_DEBUG0_rl_sg_rts_SHIFT)
+#define TCO_QUAD0_DEBUG0_SET_sg_crd_end_of_sample(tco_quad0_debug0_reg, sg_crd_end_of_sample) \
+ tco_quad0_debug0_reg = (tco_quad0_debug0_reg & ~TCO_QUAD0_DEBUG0_sg_crd_end_of_sample_MASK) | (sg_crd_end_of_sample << TCO_QUAD0_DEBUG0_sg_crd_end_of_sample_SHIFT)
+#define TCO_QUAD0_DEBUG0_SET_sg_crd_rtr(tco_quad0_debug0_reg, sg_crd_rtr) \
+ tco_quad0_debug0_reg = (tco_quad0_debug0_reg & ~TCO_QUAD0_DEBUG0_sg_crd_rtr_MASK) | (sg_crd_rtr << TCO_QUAD0_DEBUG0_sg_crd_rtr_SHIFT)
+#define TCO_QUAD0_DEBUG0_SET_sg_crd_rts(tco_quad0_debug0_reg, sg_crd_rts) \
+ tco_quad0_debug0_reg = (tco_quad0_debug0_reg & ~TCO_QUAD0_DEBUG0_sg_crd_rts_MASK) | (sg_crd_rts << TCO_QUAD0_DEBUG0_sg_crd_rts_SHIFT)
+#define TCO_QUAD0_DEBUG0_SET_stageN1_valid_q(tco_quad0_debug0_reg, stagen1_valid_q) \
+ tco_quad0_debug0_reg = (tco_quad0_debug0_reg & ~TCO_QUAD0_DEBUG0_stageN1_valid_q_MASK) | (stagen1_valid_q << TCO_QUAD0_DEBUG0_stageN1_valid_q_SHIFT)
+#define TCO_QUAD0_DEBUG0_SET_read_cache_q(tco_quad0_debug0_reg, read_cache_q) \
+ tco_quad0_debug0_reg = (tco_quad0_debug0_reg & ~TCO_QUAD0_DEBUG0_read_cache_q_MASK) | (read_cache_q << TCO_QUAD0_DEBUG0_read_cache_q_SHIFT)
+#define TCO_QUAD0_DEBUG0_SET_cache_read_RTR(tco_quad0_debug0_reg, cache_read_rtr) \
+ tco_quad0_debug0_reg = (tco_quad0_debug0_reg & ~TCO_QUAD0_DEBUG0_cache_read_RTR_MASK) | (cache_read_rtr << TCO_QUAD0_DEBUG0_cache_read_RTR_SHIFT)
+#define TCO_QUAD0_DEBUG0_SET_all_sectors_written_set3(tco_quad0_debug0_reg, all_sectors_written_set3) \
+ tco_quad0_debug0_reg = (tco_quad0_debug0_reg & ~TCO_QUAD0_DEBUG0_all_sectors_written_set3_MASK) | (all_sectors_written_set3 << TCO_QUAD0_DEBUG0_all_sectors_written_set3_SHIFT)
+#define TCO_QUAD0_DEBUG0_SET_all_sectors_written_set2(tco_quad0_debug0_reg, all_sectors_written_set2) \
+ tco_quad0_debug0_reg = (tco_quad0_debug0_reg & ~TCO_QUAD0_DEBUG0_all_sectors_written_set2_MASK) | (all_sectors_written_set2 << TCO_QUAD0_DEBUG0_all_sectors_written_set2_SHIFT)
+#define TCO_QUAD0_DEBUG0_SET_all_sectors_written_set1(tco_quad0_debug0_reg, all_sectors_written_set1) \
+ tco_quad0_debug0_reg = (tco_quad0_debug0_reg & ~TCO_QUAD0_DEBUG0_all_sectors_written_set1_MASK) | (all_sectors_written_set1 << TCO_QUAD0_DEBUG0_all_sectors_written_set1_SHIFT)
+#define TCO_QUAD0_DEBUG0_SET_all_sectors_written_set0(tco_quad0_debug0_reg, all_sectors_written_set0) \
+ tco_quad0_debug0_reg = (tco_quad0_debug0_reg & ~TCO_QUAD0_DEBUG0_all_sectors_written_set0_MASK) | (all_sectors_written_set0 << TCO_QUAD0_DEBUG0_all_sectors_written_set0_SHIFT)
+#define TCO_QUAD0_DEBUG0_SET_busy(tco_quad0_debug0_reg, busy) \
+ tco_quad0_debug0_reg = (tco_quad0_debug0_reg & ~TCO_QUAD0_DEBUG0_busy_MASK) | (busy << TCO_QUAD0_DEBUG0_busy_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tco_quad0_debug0_t {
+ unsigned int rl_sg_sector_format : TCO_QUAD0_DEBUG0_rl_sg_sector_format_SIZE;
+ unsigned int rl_sg_end_of_sample : TCO_QUAD0_DEBUG0_rl_sg_end_of_sample_SIZE;
+ unsigned int rl_sg_rtr : TCO_QUAD0_DEBUG0_rl_sg_rtr_SIZE;
+ unsigned int rl_sg_rts : TCO_QUAD0_DEBUG0_rl_sg_rts_SIZE;
+ unsigned int sg_crd_end_of_sample : TCO_QUAD0_DEBUG0_sg_crd_end_of_sample_SIZE;
+ unsigned int sg_crd_rtr : TCO_QUAD0_DEBUG0_sg_crd_rtr_SIZE;
+ unsigned int sg_crd_rts : TCO_QUAD0_DEBUG0_sg_crd_rts_SIZE;
+ unsigned int : 2;
+ unsigned int stagen1_valid_q : TCO_QUAD0_DEBUG0_stageN1_valid_q_SIZE;
+ unsigned int : 7;
+ unsigned int read_cache_q : TCO_QUAD0_DEBUG0_read_cache_q_SIZE;
+ unsigned int cache_read_rtr : TCO_QUAD0_DEBUG0_cache_read_RTR_SIZE;
+ unsigned int all_sectors_written_set3 : TCO_QUAD0_DEBUG0_all_sectors_written_set3_SIZE;
+ unsigned int all_sectors_written_set2 : TCO_QUAD0_DEBUG0_all_sectors_written_set2_SIZE;
+ unsigned int all_sectors_written_set1 : TCO_QUAD0_DEBUG0_all_sectors_written_set1_SIZE;
+ unsigned int all_sectors_written_set0 : TCO_QUAD0_DEBUG0_all_sectors_written_set0_SIZE;
+ unsigned int busy : TCO_QUAD0_DEBUG0_busy_SIZE;
+ unsigned int : 1;
+ } tco_quad0_debug0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tco_quad0_debug0_t {
+ unsigned int : 1;
+ unsigned int busy : TCO_QUAD0_DEBUG0_busy_SIZE;
+ unsigned int all_sectors_written_set0 : TCO_QUAD0_DEBUG0_all_sectors_written_set0_SIZE;
+ unsigned int all_sectors_written_set1 : TCO_QUAD0_DEBUG0_all_sectors_written_set1_SIZE;
+ unsigned int all_sectors_written_set2 : TCO_QUAD0_DEBUG0_all_sectors_written_set2_SIZE;
+ unsigned int all_sectors_written_set3 : TCO_QUAD0_DEBUG0_all_sectors_written_set3_SIZE;
+ unsigned int cache_read_rtr : TCO_QUAD0_DEBUG0_cache_read_RTR_SIZE;
+ unsigned int read_cache_q : TCO_QUAD0_DEBUG0_read_cache_q_SIZE;
+ unsigned int : 7;
+ unsigned int stagen1_valid_q : TCO_QUAD0_DEBUG0_stageN1_valid_q_SIZE;
+ unsigned int : 2;
+ unsigned int sg_crd_rts : TCO_QUAD0_DEBUG0_sg_crd_rts_SIZE;
+ unsigned int sg_crd_rtr : TCO_QUAD0_DEBUG0_sg_crd_rtr_SIZE;
+ unsigned int sg_crd_end_of_sample : TCO_QUAD0_DEBUG0_sg_crd_end_of_sample_SIZE;
+ unsigned int rl_sg_rts : TCO_QUAD0_DEBUG0_rl_sg_rts_SIZE;
+ unsigned int rl_sg_rtr : TCO_QUAD0_DEBUG0_rl_sg_rtr_SIZE;
+ unsigned int rl_sg_end_of_sample : TCO_QUAD0_DEBUG0_rl_sg_end_of_sample_SIZE;
+ unsigned int rl_sg_sector_format : TCO_QUAD0_DEBUG0_rl_sg_sector_format_SIZE;
+ } tco_quad0_debug0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tco_quad0_debug0_t f;
+} tco_quad0_debug0_u;
+
+
+/*
+ * TCO_QUAD0_DEBUG1 struct
+ */
+
+#define TCO_QUAD0_DEBUG1_fifo_busy_SIZE 1
+#define TCO_QUAD0_DEBUG1_empty_SIZE 1
+#define TCO_QUAD0_DEBUG1_full_SIZE 1
+#define TCO_QUAD0_DEBUG1_write_enable_SIZE 1
+#define TCO_QUAD0_DEBUG1_fifo_write_ptr_SIZE 7
+#define TCO_QUAD0_DEBUG1_fifo_read_ptr_SIZE 7
+#define TCO_QUAD0_DEBUG1_cache_read_busy_SIZE 1
+#define TCO_QUAD0_DEBUG1_latency_fifo_busy_SIZE 1
+#define TCO_QUAD0_DEBUG1_input_quad_busy_SIZE 1
+#define TCO_QUAD0_DEBUG1_tco_quad_pipe_busy_SIZE 1
+#define TCO_QUAD0_DEBUG1_TCB_TCO_rtr_d_SIZE 1
+#define TCO_QUAD0_DEBUG1_TCB_TCO_xfc_q_SIZE 1
+#define TCO_QUAD0_DEBUG1_rl_sg_rtr_SIZE 1
+#define TCO_QUAD0_DEBUG1_rl_sg_rts_SIZE 1
+#define TCO_QUAD0_DEBUG1_sg_crd_rtr_SIZE 1
+#define TCO_QUAD0_DEBUG1_sg_crd_rts_SIZE 1
+#define TCO_QUAD0_DEBUG1_TCO_TCB_read_xfc_SIZE 1
+
+#define TCO_QUAD0_DEBUG1_fifo_busy_SHIFT 0
+#define TCO_QUAD0_DEBUG1_empty_SHIFT 1
+#define TCO_QUAD0_DEBUG1_full_SHIFT 2
+#define TCO_QUAD0_DEBUG1_write_enable_SHIFT 3
+#define TCO_QUAD0_DEBUG1_fifo_write_ptr_SHIFT 4
+#define TCO_QUAD0_DEBUG1_fifo_read_ptr_SHIFT 11
+#define TCO_QUAD0_DEBUG1_cache_read_busy_SHIFT 20
+#define TCO_QUAD0_DEBUG1_latency_fifo_busy_SHIFT 21
+#define TCO_QUAD0_DEBUG1_input_quad_busy_SHIFT 22
+#define TCO_QUAD0_DEBUG1_tco_quad_pipe_busy_SHIFT 23
+#define TCO_QUAD0_DEBUG1_TCB_TCO_rtr_d_SHIFT 24
+#define TCO_QUAD0_DEBUG1_TCB_TCO_xfc_q_SHIFT 25
+#define TCO_QUAD0_DEBUG1_rl_sg_rtr_SHIFT 26
+#define TCO_QUAD0_DEBUG1_rl_sg_rts_SHIFT 27
+#define TCO_QUAD0_DEBUG1_sg_crd_rtr_SHIFT 28
+#define TCO_QUAD0_DEBUG1_sg_crd_rts_SHIFT 29
+#define TCO_QUAD0_DEBUG1_TCO_TCB_read_xfc_SHIFT 30
+
+#define TCO_QUAD0_DEBUG1_fifo_busy_MASK 0x00000001
+#define TCO_QUAD0_DEBUG1_empty_MASK 0x00000002
+#define TCO_QUAD0_DEBUG1_full_MASK 0x00000004
+#define TCO_QUAD0_DEBUG1_write_enable_MASK 0x00000008
+#define TCO_QUAD0_DEBUG1_fifo_write_ptr_MASK 0x000007f0
+#define TCO_QUAD0_DEBUG1_fifo_read_ptr_MASK 0x0003f800
+#define TCO_QUAD0_DEBUG1_cache_read_busy_MASK 0x00100000
+#define TCO_QUAD0_DEBUG1_latency_fifo_busy_MASK 0x00200000
+#define TCO_QUAD0_DEBUG1_input_quad_busy_MASK 0x00400000
+#define TCO_QUAD0_DEBUG1_tco_quad_pipe_busy_MASK 0x00800000
+#define TCO_QUAD0_DEBUG1_TCB_TCO_rtr_d_MASK 0x01000000
+#define TCO_QUAD0_DEBUG1_TCB_TCO_xfc_q_MASK 0x02000000
+#define TCO_QUAD0_DEBUG1_rl_sg_rtr_MASK 0x04000000
+#define TCO_QUAD0_DEBUG1_rl_sg_rts_MASK 0x08000000
+#define TCO_QUAD0_DEBUG1_sg_crd_rtr_MASK 0x10000000
+#define TCO_QUAD0_DEBUG1_sg_crd_rts_MASK 0x20000000
+#define TCO_QUAD0_DEBUG1_TCO_TCB_read_xfc_MASK 0x40000000
+
+#define TCO_QUAD0_DEBUG1_MASK \
+ (TCO_QUAD0_DEBUG1_fifo_busy_MASK | \
+ TCO_QUAD0_DEBUG1_empty_MASK | \
+ TCO_QUAD0_DEBUG1_full_MASK | \
+ TCO_QUAD0_DEBUG1_write_enable_MASK | \
+ TCO_QUAD0_DEBUG1_fifo_write_ptr_MASK | \
+ TCO_QUAD0_DEBUG1_fifo_read_ptr_MASK | \
+ TCO_QUAD0_DEBUG1_cache_read_busy_MASK | \
+ TCO_QUAD0_DEBUG1_latency_fifo_busy_MASK | \
+ TCO_QUAD0_DEBUG1_input_quad_busy_MASK | \
+ TCO_QUAD0_DEBUG1_tco_quad_pipe_busy_MASK | \
+ TCO_QUAD0_DEBUG1_TCB_TCO_rtr_d_MASK | \
+ TCO_QUAD0_DEBUG1_TCB_TCO_xfc_q_MASK | \
+ TCO_QUAD0_DEBUG1_rl_sg_rtr_MASK | \
+ TCO_QUAD0_DEBUG1_rl_sg_rts_MASK | \
+ TCO_QUAD0_DEBUG1_sg_crd_rtr_MASK | \
+ TCO_QUAD0_DEBUG1_sg_crd_rts_MASK | \
+ TCO_QUAD0_DEBUG1_TCO_TCB_read_xfc_MASK)
+
+#define TCO_QUAD0_DEBUG1(fifo_busy, empty, full, write_enable, fifo_write_ptr, fifo_read_ptr, cache_read_busy, latency_fifo_busy, input_quad_busy, tco_quad_pipe_busy, tcb_tco_rtr_d, tcb_tco_xfc_q, rl_sg_rtr, rl_sg_rts, sg_crd_rtr, sg_crd_rts, tco_tcb_read_xfc) \
+ ((fifo_busy << TCO_QUAD0_DEBUG1_fifo_busy_SHIFT) | \
+ (empty << TCO_QUAD0_DEBUG1_empty_SHIFT) | \
+ (full << TCO_QUAD0_DEBUG1_full_SHIFT) | \
+ (write_enable << TCO_QUAD0_DEBUG1_write_enable_SHIFT) | \
+ (fifo_write_ptr << TCO_QUAD0_DEBUG1_fifo_write_ptr_SHIFT) | \
+ (fifo_read_ptr << TCO_QUAD0_DEBUG1_fifo_read_ptr_SHIFT) | \
+ (cache_read_busy << TCO_QUAD0_DEBUG1_cache_read_busy_SHIFT) | \
+ (latency_fifo_busy << TCO_QUAD0_DEBUG1_latency_fifo_busy_SHIFT) | \
+ (input_quad_busy << TCO_QUAD0_DEBUG1_input_quad_busy_SHIFT) | \
+ (tco_quad_pipe_busy << TCO_QUAD0_DEBUG1_tco_quad_pipe_busy_SHIFT) | \
+ (tcb_tco_rtr_d << TCO_QUAD0_DEBUG1_TCB_TCO_rtr_d_SHIFT) | \
+ (tcb_tco_xfc_q << TCO_QUAD0_DEBUG1_TCB_TCO_xfc_q_SHIFT) | \
+ (rl_sg_rtr << TCO_QUAD0_DEBUG1_rl_sg_rtr_SHIFT) | \
+ (rl_sg_rts << TCO_QUAD0_DEBUG1_rl_sg_rts_SHIFT) | \
+ (sg_crd_rtr << TCO_QUAD0_DEBUG1_sg_crd_rtr_SHIFT) | \
+ (sg_crd_rts << TCO_QUAD0_DEBUG1_sg_crd_rts_SHIFT) | \
+ (tco_tcb_read_xfc << TCO_QUAD0_DEBUG1_TCO_TCB_read_xfc_SHIFT))
+
+#define TCO_QUAD0_DEBUG1_GET_fifo_busy(tco_quad0_debug1) \
+ ((tco_quad0_debug1 & TCO_QUAD0_DEBUG1_fifo_busy_MASK) >> TCO_QUAD0_DEBUG1_fifo_busy_SHIFT)
+#define TCO_QUAD0_DEBUG1_GET_empty(tco_quad0_debug1) \
+ ((tco_quad0_debug1 & TCO_QUAD0_DEBUG1_empty_MASK) >> TCO_QUAD0_DEBUG1_empty_SHIFT)
+#define TCO_QUAD0_DEBUG1_GET_full(tco_quad0_debug1) \
+ ((tco_quad0_debug1 & TCO_QUAD0_DEBUG1_full_MASK) >> TCO_QUAD0_DEBUG1_full_SHIFT)
+#define TCO_QUAD0_DEBUG1_GET_write_enable(tco_quad0_debug1) \
+ ((tco_quad0_debug1 & TCO_QUAD0_DEBUG1_write_enable_MASK) >> TCO_QUAD0_DEBUG1_write_enable_SHIFT)
+#define TCO_QUAD0_DEBUG1_GET_fifo_write_ptr(tco_quad0_debug1) \
+ ((tco_quad0_debug1 & TCO_QUAD0_DEBUG1_fifo_write_ptr_MASK) >> TCO_QUAD0_DEBUG1_fifo_write_ptr_SHIFT)
+#define TCO_QUAD0_DEBUG1_GET_fifo_read_ptr(tco_quad0_debug1) \
+ ((tco_quad0_debug1 & TCO_QUAD0_DEBUG1_fifo_read_ptr_MASK) >> TCO_QUAD0_DEBUG1_fifo_read_ptr_SHIFT)
+#define TCO_QUAD0_DEBUG1_GET_cache_read_busy(tco_quad0_debug1) \
+ ((tco_quad0_debug1 & TCO_QUAD0_DEBUG1_cache_read_busy_MASK) >> TCO_QUAD0_DEBUG1_cache_read_busy_SHIFT)
+#define TCO_QUAD0_DEBUG1_GET_latency_fifo_busy(tco_quad0_debug1) \
+ ((tco_quad0_debug1 & TCO_QUAD0_DEBUG1_latency_fifo_busy_MASK) >> TCO_QUAD0_DEBUG1_latency_fifo_busy_SHIFT)
+#define TCO_QUAD0_DEBUG1_GET_input_quad_busy(tco_quad0_debug1) \
+ ((tco_quad0_debug1 & TCO_QUAD0_DEBUG1_input_quad_busy_MASK) >> TCO_QUAD0_DEBUG1_input_quad_busy_SHIFT)
+#define TCO_QUAD0_DEBUG1_GET_tco_quad_pipe_busy(tco_quad0_debug1) \
+ ((tco_quad0_debug1 & TCO_QUAD0_DEBUG1_tco_quad_pipe_busy_MASK) >> TCO_QUAD0_DEBUG1_tco_quad_pipe_busy_SHIFT)
+#define TCO_QUAD0_DEBUG1_GET_TCB_TCO_rtr_d(tco_quad0_debug1) \
+ ((tco_quad0_debug1 & TCO_QUAD0_DEBUG1_TCB_TCO_rtr_d_MASK) >> TCO_QUAD0_DEBUG1_TCB_TCO_rtr_d_SHIFT)
+#define TCO_QUAD0_DEBUG1_GET_TCB_TCO_xfc_q(tco_quad0_debug1) \
+ ((tco_quad0_debug1 & TCO_QUAD0_DEBUG1_TCB_TCO_xfc_q_MASK) >> TCO_QUAD0_DEBUG1_TCB_TCO_xfc_q_SHIFT)
+#define TCO_QUAD0_DEBUG1_GET_rl_sg_rtr(tco_quad0_debug1) \
+ ((tco_quad0_debug1 & TCO_QUAD0_DEBUG1_rl_sg_rtr_MASK) >> TCO_QUAD0_DEBUG1_rl_sg_rtr_SHIFT)
+#define TCO_QUAD0_DEBUG1_GET_rl_sg_rts(tco_quad0_debug1) \
+ ((tco_quad0_debug1 & TCO_QUAD0_DEBUG1_rl_sg_rts_MASK) >> TCO_QUAD0_DEBUG1_rl_sg_rts_SHIFT)
+#define TCO_QUAD0_DEBUG1_GET_sg_crd_rtr(tco_quad0_debug1) \
+ ((tco_quad0_debug1 & TCO_QUAD0_DEBUG1_sg_crd_rtr_MASK) >> TCO_QUAD0_DEBUG1_sg_crd_rtr_SHIFT)
+#define TCO_QUAD0_DEBUG1_GET_sg_crd_rts(tco_quad0_debug1) \
+ ((tco_quad0_debug1 & TCO_QUAD0_DEBUG1_sg_crd_rts_MASK) >> TCO_QUAD0_DEBUG1_sg_crd_rts_SHIFT)
+#define TCO_QUAD0_DEBUG1_GET_TCO_TCB_read_xfc(tco_quad0_debug1) \
+ ((tco_quad0_debug1 & TCO_QUAD0_DEBUG1_TCO_TCB_read_xfc_MASK) >> TCO_QUAD0_DEBUG1_TCO_TCB_read_xfc_SHIFT)
+
+#define TCO_QUAD0_DEBUG1_SET_fifo_busy(tco_quad0_debug1_reg, fifo_busy) \
+ tco_quad0_debug1_reg = (tco_quad0_debug1_reg & ~TCO_QUAD0_DEBUG1_fifo_busy_MASK) | (fifo_busy << TCO_QUAD0_DEBUG1_fifo_busy_SHIFT)
+#define TCO_QUAD0_DEBUG1_SET_empty(tco_quad0_debug1_reg, empty) \
+ tco_quad0_debug1_reg = (tco_quad0_debug1_reg & ~TCO_QUAD0_DEBUG1_empty_MASK) | (empty << TCO_QUAD0_DEBUG1_empty_SHIFT)
+#define TCO_QUAD0_DEBUG1_SET_full(tco_quad0_debug1_reg, full) \
+ tco_quad0_debug1_reg = (tco_quad0_debug1_reg & ~TCO_QUAD0_DEBUG1_full_MASK) | (full << TCO_QUAD0_DEBUG1_full_SHIFT)
+#define TCO_QUAD0_DEBUG1_SET_write_enable(tco_quad0_debug1_reg, write_enable) \
+ tco_quad0_debug1_reg = (tco_quad0_debug1_reg & ~TCO_QUAD0_DEBUG1_write_enable_MASK) | (write_enable << TCO_QUAD0_DEBUG1_write_enable_SHIFT)
+#define TCO_QUAD0_DEBUG1_SET_fifo_write_ptr(tco_quad0_debug1_reg, fifo_write_ptr) \
+ tco_quad0_debug1_reg = (tco_quad0_debug1_reg & ~TCO_QUAD0_DEBUG1_fifo_write_ptr_MASK) | (fifo_write_ptr << TCO_QUAD0_DEBUG1_fifo_write_ptr_SHIFT)
+#define TCO_QUAD0_DEBUG1_SET_fifo_read_ptr(tco_quad0_debug1_reg, fifo_read_ptr) \
+ tco_quad0_debug1_reg = (tco_quad0_debug1_reg & ~TCO_QUAD0_DEBUG1_fifo_read_ptr_MASK) | (fifo_read_ptr << TCO_QUAD0_DEBUG1_fifo_read_ptr_SHIFT)
+#define TCO_QUAD0_DEBUG1_SET_cache_read_busy(tco_quad0_debug1_reg, cache_read_busy) \
+ tco_quad0_debug1_reg = (tco_quad0_debug1_reg & ~TCO_QUAD0_DEBUG1_cache_read_busy_MASK) | (cache_read_busy << TCO_QUAD0_DEBUG1_cache_read_busy_SHIFT)
+#define TCO_QUAD0_DEBUG1_SET_latency_fifo_busy(tco_quad0_debug1_reg, latency_fifo_busy) \
+ tco_quad0_debug1_reg = (tco_quad0_debug1_reg & ~TCO_QUAD0_DEBUG1_latency_fifo_busy_MASK) | (latency_fifo_busy << TCO_QUAD0_DEBUG1_latency_fifo_busy_SHIFT)
+#define TCO_QUAD0_DEBUG1_SET_input_quad_busy(tco_quad0_debug1_reg, input_quad_busy) \
+ tco_quad0_debug1_reg = (tco_quad0_debug1_reg & ~TCO_QUAD0_DEBUG1_input_quad_busy_MASK) | (input_quad_busy << TCO_QUAD0_DEBUG1_input_quad_busy_SHIFT)
+#define TCO_QUAD0_DEBUG1_SET_tco_quad_pipe_busy(tco_quad0_debug1_reg, tco_quad_pipe_busy) \
+ tco_quad0_debug1_reg = (tco_quad0_debug1_reg & ~TCO_QUAD0_DEBUG1_tco_quad_pipe_busy_MASK) | (tco_quad_pipe_busy << TCO_QUAD0_DEBUG1_tco_quad_pipe_busy_SHIFT)
+#define TCO_QUAD0_DEBUG1_SET_TCB_TCO_rtr_d(tco_quad0_debug1_reg, tcb_tco_rtr_d) \
+ tco_quad0_debug1_reg = (tco_quad0_debug1_reg & ~TCO_QUAD0_DEBUG1_TCB_TCO_rtr_d_MASK) | (tcb_tco_rtr_d << TCO_QUAD0_DEBUG1_TCB_TCO_rtr_d_SHIFT)
+#define TCO_QUAD0_DEBUG1_SET_TCB_TCO_xfc_q(tco_quad0_debug1_reg, tcb_tco_xfc_q) \
+ tco_quad0_debug1_reg = (tco_quad0_debug1_reg & ~TCO_QUAD0_DEBUG1_TCB_TCO_xfc_q_MASK) | (tcb_tco_xfc_q << TCO_QUAD0_DEBUG1_TCB_TCO_xfc_q_SHIFT)
+#define TCO_QUAD0_DEBUG1_SET_rl_sg_rtr(tco_quad0_debug1_reg, rl_sg_rtr) \
+ tco_quad0_debug1_reg = (tco_quad0_debug1_reg & ~TCO_QUAD0_DEBUG1_rl_sg_rtr_MASK) | (rl_sg_rtr << TCO_QUAD0_DEBUG1_rl_sg_rtr_SHIFT)
+#define TCO_QUAD0_DEBUG1_SET_rl_sg_rts(tco_quad0_debug1_reg, rl_sg_rts) \
+ tco_quad0_debug1_reg = (tco_quad0_debug1_reg & ~TCO_QUAD0_DEBUG1_rl_sg_rts_MASK) | (rl_sg_rts << TCO_QUAD0_DEBUG1_rl_sg_rts_SHIFT)
+#define TCO_QUAD0_DEBUG1_SET_sg_crd_rtr(tco_quad0_debug1_reg, sg_crd_rtr) \
+ tco_quad0_debug1_reg = (tco_quad0_debug1_reg & ~TCO_QUAD0_DEBUG1_sg_crd_rtr_MASK) | (sg_crd_rtr << TCO_QUAD0_DEBUG1_sg_crd_rtr_SHIFT)
+#define TCO_QUAD0_DEBUG1_SET_sg_crd_rts(tco_quad0_debug1_reg, sg_crd_rts) \
+ tco_quad0_debug1_reg = (tco_quad0_debug1_reg & ~TCO_QUAD0_DEBUG1_sg_crd_rts_MASK) | (sg_crd_rts << TCO_QUAD0_DEBUG1_sg_crd_rts_SHIFT)
+#define TCO_QUAD0_DEBUG1_SET_TCO_TCB_read_xfc(tco_quad0_debug1_reg, tco_tcb_read_xfc) \
+ tco_quad0_debug1_reg = (tco_quad0_debug1_reg & ~TCO_QUAD0_DEBUG1_TCO_TCB_read_xfc_MASK) | (tco_tcb_read_xfc << TCO_QUAD0_DEBUG1_TCO_TCB_read_xfc_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _tco_quad0_debug1_t {
+ unsigned int fifo_busy : TCO_QUAD0_DEBUG1_fifo_busy_SIZE;
+ unsigned int empty : TCO_QUAD0_DEBUG1_empty_SIZE;
+ unsigned int full : TCO_QUAD0_DEBUG1_full_SIZE;
+ unsigned int write_enable : TCO_QUAD0_DEBUG1_write_enable_SIZE;
+ unsigned int fifo_write_ptr : TCO_QUAD0_DEBUG1_fifo_write_ptr_SIZE;
+ unsigned int fifo_read_ptr : TCO_QUAD0_DEBUG1_fifo_read_ptr_SIZE;
+ unsigned int : 2;
+ unsigned int cache_read_busy : TCO_QUAD0_DEBUG1_cache_read_busy_SIZE;
+ unsigned int latency_fifo_busy : TCO_QUAD0_DEBUG1_latency_fifo_busy_SIZE;
+ unsigned int input_quad_busy : TCO_QUAD0_DEBUG1_input_quad_busy_SIZE;
+ unsigned int tco_quad_pipe_busy : TCO_QUAD0_DEBUG1_tco_quad_pipe_busy_SIZE;
+ unsigned int tcb_tco_rtr_d : TCO_QUAD0_DEBUG1_TCB_TCO_rtr_d_SIZE;
+ unsigned int tcb_tco_xfc_q : TCO_QUAD0_DEBUG1_TCB_TCO_xfc_q_SIZE;
+ unsigned int rl_sg_rtr : TCO_QUAD0_DEBUG1_rl_sg_rtr_SIZE;
+ unsigned int rl_sg_rts : TCO_QUAD0_DEBUG1_rl_sg_rts_SIZE;
+ unsigned int sg_crd_rtr : TCO_QUAD0_DEBUG1_sg_crd_rtr_SIZE;
+ unsigned int sg_crd_rts : TCO_QUAD0_DEBUG1_sg_crd_rts_SIZE;
+ unsigned int tco_tcb_read_xfc : TCO_QUAD0_DEBUG1_TCO_TCB_read_xfc_SIZE;
+ unsigned int : 1;
+ } tco_quad0_debug1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _tco_quad0_debug1_t {
+ unsigned int : 1;
+ unsigned int tco_tcb_read_xfc : TCO_QUAD0_DEBUG1_TCO_TCB_read_xfc_SIZE;
+ unsigned int sg_crd_rts : TCO_QUAD0_DEBUG1_sg_crd_rts_SIZE;
+ unsigned int sg_crd_rtr : TCO_QUAD0_DEBUG1_sg_crd_rtr_SIZE;
+ unsigned int rl_sg_rts : TCO_QUAD0_DEBUG1_rl_sg_rts_SIZE;
+ unsigned int rl_sg_rtr : TCO_QUAD0_DEBUG1_rl_sg_rtr_SIZE;
+ unsigned int tcb_tco_xfc_q : TCO_QUAD0_DEBUG1_TCB_TCO_xfc_q_SIZE;
+ unsigned int tcb_tco_rtr_d : TCO_QUAD0_DEBUG1_TCB_TCO_rtr_d_SIZE;
+ unsigned int tco_quad_pipe_busy : TCO_QUAD0_DEBUG1_tco_quad_pipe_busy_SIZE;
+ unsigned int input_quad_busy : TCO_QUAD0_DEBUG1_input_quad_busy_SIZE;
+ unsigned int latency_fifo_busy : TCO_QUAD0_DEBUG1_latency_fifo_busy_SIZE;
+ unsigned int cache_read_busy : TCO_QUAD0_DEBUG1_cache_read_busy_SIZE;
+ unsigned int : 2;
+ unsigned int fifo_read_ptr : TCO_QUAD0_DEBUG1_fifo_read_ptr_SIZE;
+ unsigned int fifo_write_ptr : TCO_QUAD0_DEBUG1_fifo_write_ptr_SIZE;
+ unsigned int write_enable : TCO_QUAD0_DEBUG1_write_enable_SIZE;
+ unsigned int full : TCO_QUAD0_DEBUG1_full_SIZE;
+ unsigned int empty : TCO_QUAD0_DEBUG1_empty_SIZE;
+ unsigned int fifo_busy : TCO_QUAD0_DEBUG1_fifo_busy_SIZE;
+ } tco_quad0_debug1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ tco_quad0_debug1_t f;
+} tco_quad0_debug1_u;
+
+
+#endif
+
+
+#if !defined (_TC_FIDDLE_H)
+#define _TC_FIDDLE_H
+
+/*******************************************************
+ * Enums
+ *******************************************************/
+
+
+/*******************************************************
+ * Values
+ *******************************************************/
+
+
+/*******************************************************
+ * Structures
+ *******************************************************/
+
+#endif
+
+
+#if !defined (_SC_FIDDLE_H)
+#define _SC_FIDDLE_H
+
+/*******************************************************
+ * Enums
+ *******************************************************/
+
+
+/*******************************************************
+ * Values
+ *******************************************************/
+
+
+/*******************************************************
+ * Structures
+ *******************************************************/
+
+#endif
+
+
+#if !defined (_BC_FIDDLE_H)
+#define _BC_FIDDLE_H
+
+/*******************************************************
+ * Enums
+ *******************************************************/
+
+
+/*******************************************************
+ * Values
+ *******************************************************/
+
+
+/*******************************************************
+ * Structures
+ *******************************************************/
+
+/*
+ * RB_SURFACE_INFO struct
+ */
+
+#define RB_SURFACE_INFO_SURFACE_PITCH_SIZE 14
+#define RB_SURFACE_INFO_MSAA_SAMPLES_SIZE 2
+
+#define RB_SURFACE_INFO_SURFACE_PITCH_SHIFT 0
+#define RB_SURFACE_INFO_MSAA_SAMPLES_SHIFT 14
+
+#define RB_SURFACE_INFO_SURFACE_PITCH_MASK 0x00003fff
+#define RB_SURFACE_INFO_MSAA_SAMPLES_MASK 0x0000c000
+
+#define RB_SURFACE_INFO_MASK \
+ (RB_SURFACE_INFO_SURFACE_PITCH_MASK | \
+ RB_SURFACE_INFO_MSAA_SAMPLES_MASK)
+
+#define RB_SURFACE_INFO(surface_pitch, msaa_samples) \
+ ((surface_pitch << RB_SURFACE_INFO_SURFACE_PITCH_SHIFT) | \
+ (msaa_samples << RB_SURFACE_INFO_MSAA_SAMPLES_SHIFT))
+
+#define RB_SURFACE_INFO_GET_SURFACE_PITCH(rb_surface_info) \
+ ((rb_surface_info & RB_SURFACE_INFO_SURFACE_PITCH_MASK) >> RB_SURFACE_INFO_SURFACE_PITCH_SHIFT)
+#define RB_SURFACE_INFO_GET_MSAA_SAMPLES(rb_surface_info) \
+ ((rb_surface_info & RB_SURFACE_INFO_MSAA_SAMPLES_MASK) >> RB_SURFACE_INFO_MSAA_SAMPLES_SHIFT)
+
+#define RB_SURFACE_INFO_SET_SURFACE_PITCH(rb_surface_info_reg, surface_pitch) \
+ rb_surface_info_reg = (rb_surface_info_reg & ~RB_SURFACE_INFO_SURFACE_PITCH_MASK) | (surface_pitch << RB_SURFACE_INFO_SURFACE_PITCH_SHIFT)
+#define RB_SURFACE_INFO_SET_MSAA_SAMPLES(rb_surface_info_reg, msaa_samples) \
+ rb_surface_info_reg = (rb_surface_info_reg & ~RB_SURFACE_INFO_MSAA_SAMPLES_MASK) | (msaa_samples << RB_SURFACE_INFO_MSAA_SAMPLES_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_surface_info_t {
+ unsigned int surface_pitch : RB_SURFACE_INFO_SURFACE_PITCH_SIZE;
+ unsigned int msaa_samples : RB_SURFACE_INFO_MSAA_SAMPLES_SIZE;
+ unsigned int : 16;
+ } rb_surface_info_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_surface_info_t {
+ unsigned int : 16;
+ unsigned int msaa_samples : RB_SURFACE_INFO_MSAA_SAMPLES_SIZE;
+ unsigned int surface_pitch : RB_SURFACE_INFO_SURFACE_PITCH_SIZE;
+ } rb_surface_info_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_surface_info_t f;
+} rb_surface_info_u;
+
+
+/*
+ * RB_COLOR_INFO struct
+ */
+
+#define RB_COLOR_INFO_COLOR_FORMAT_SIZE 4
+#define RB_COLOR_INFO_COLOR_ROUND_MODE_SIZE 2
+#define RB_COLOR_INFO_COLOR_LINEAR_SIZE 1
+#define RB_COLOR_INFO_COLOR_ENDIAN_SIZE 2
+#define RB_COLOR_INFO_COLOR_SWAP_SIZE 2
+#define RB_COLOR_INFO_COLOR_BASE_SIZE 20
+
+#define RB_COLOR_INFO_COLOR_FORMAT_SHIFT 0
+#define RB_COLOR_INFO_COLOR_ROUND_MODE_SHIFT 4
+#define RB_COLOR_INFO_COLOR_LINEAR_SHIFT 6
+#define RB_COLOR_INFO_COLOR_ENDIAN_SHIFT 7
+#define RB_COLOR_INFO_COLOR_SWAP_SHIFT 9
+#define RB_COLOR_INFO_COLOR_BASE_SHIFT 12
+
+#define RB_COLOR_INFO_COLOR_FORMAT_MASK 0x0000000f
+#define RB_COLOR_INFO_COLOR_ROUND_MODE_MASK 0x00000030
+#define RB_COLOR_INFO_COLOR_LINEAR_MASK 0x00000040
+#define RB_COLOR_INFO_COLOR_ENDIAN_MASK 0x00000180
+#define RB_COLOR_INFO_COLOR_SWAP_MASK 0x00000600
+#define RB_COLOR_INFO_COLOR_BASE_MASK 0xfffff000
+
+#define RB_COLOR_INFO_MASK \
+ (RB_COLOR_INFO_COLOR_FORMAT_MASK | \
+ RB_COLOR_INFO_COLOR_ROUND_MODE_MASK | \
+ RB_COLOR_INFO_COLOR_LINEAR_MASK | \
+ RB_COLOR_INFO_COLOR_ENDIAN_MASK | \
+ RB_COLOR_INFO_COLOR_SWAP_MASK | \
+ RB_COLOR_INFO_COLOR_BASE_MASK)
+
+#define RB_COLOR_INFO(color_format, color_round_mode, color_linear, color_endian, color_swap, color_base) \
+ ((color_format << RB_COLOR_INFO_COLOR_FORMAT_SHIFT) | \
+ (color_round_mode << RB_COLOR_INFO_COLOR_ROUND_MODE_SHIFT) | \
+ (color_linear << RB_COLOR_INFO_COLOR_LINEAR_SHIFT) | \
+ (color_endian << RB_COLOR_INFO_COLOR_ENDIAN_SHIFT) | \
+ (color_swap << RB_COLOR_INFO_COLOR_SWAP_SHIFT) | \
+ (color_base << RB_COLOR_INFO_COLOR_BASE_SHIFT))
+
+#define RB_COLOR_INFO_GET_COLOR_FORMAT(rb_color_info) \
+ ((rb_color_info & RB_COLOR_INFO_COLOR_FORMAT_MASK) >> RB_COLOR_INFO_COLOR_FORMAT_SHIFT)
+#define RB_COLOR_INFO_GET_COLOR_ROUND_MODE(rb_color_info) \
+ ((rb_color_info & RB_COLOR_INFO_COLOR_ROUND_MODE_MASK) >> RB_COLOR_INFO_COLOR_ROUND_MODE_SHIFT)
+#define RB_COLOR_INFO_GET_COLOR_LINEAR(rb_color_info) \
+ ((rb_color_info & RB_COLOR_INFO_COLOR_LINEAR_MASK) >> RB_COLOR_INFO_COLOR_LINEAR_SHIFT)
+#define RB_COLOR_INFO_GET_COLOR_ENDIAN(rb_color_info) \
+ ((rb_color_info & RB_COLOR_INFO_COLOR_ENDIAN_MASK) >> RB_COLOR_INFO_COLOR_ENDIAN_SHIFT)
+#define RB_COLOR_INFO_GET_COLOR_SWAP(rb_color_info) \
+ ((rb_color_info & RB_COLOR_INFO_COLOR_SWAP_MASK) >> RB_COLOR_INFO_COLOR_SWAP_SHIFT)
+#define RB_COLOR_INFO_GET_COLOR_BASE(rb_color_info) \
+ ((rb_color_info & RB_COLOR_INFO_COLOR_BASE_MASK) >> RB_COLOR_INFO_COLOR_BASE_SHIFT)
+
+#define RB_COLOR_INFO_SET_COLOR_FORMAT(rb_color_info_reg, color_format) \
+ rb_color_info_reg = (rb_color_info_reg & ~RB_COLOR_INFO_COLOR_FORMAT_MASK) | (color_format << RB_COLOR_INFO_COLOR_FORMAT_SHIFT)
+#define RB_COLOR_INFO_SET_COLOR_ROUND_MODE(rb_color_info_reg, color_round_mode) \
+ rb_color_info_reg = (rb_color_info_reg & ~RB_COLOR_INFO_COLOR_ROUND_MODE_MASK) | (color_round_mode << RB_COLOR_INFO_COLOR_ROUND_MODE_SHIFT)
+#define RB_COLOR_INFO_SET_COLOR_LINEAR(rb_color_info_reg, color_linear) \
+ rb_color_info_reg = (rb_color_info_reg & ~RB_COLOR_INFO_COLOR_LINEAR_MASK) | (color_linear << RB_COLOR_INFO_COLOR_LINEAR_SHIFT)
+#define RB_COLOR_INFO_SET_COLOR_ENDIAN(rb_color_info_reg, color_endian) \
+ rb_color_info_reg = (rb_color_info_reg & ~RB_COLOR_INFO_COLOR_ENDIAN_MASK) | (color_endian << RB_COLOR_INFO_COLOR_ENDIAN_SHIFT)
+#define RB_COLOR_INFO_SET_COLOR_SWAP(rb_color_info_reg, color_swap) \
+ rb_color_info_reg = (rb_color_info_reg & ~RB_COLOR_INFO_COLOR_SWAP_MASK) | (color_swap << RB_COLOR_INFO_COLOR_SWAP_SHIFT)
+#define RB_COLOR_INFO_SET_COLOR_BASE(rb_color_info_reg, color_base) \
+ rb_color_info_reg = (rb_color_info_reg & ~RB_COLOR_INFO_COLOR_BASE_MASK) | (color_base << RB_COLOR_INFO_COLOR_BASE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_color_info_t {
+ unsigned int color_format : RB_COLOR_INFO_COLOR_FORMAT_SIZE;
+ unsigned int color_round_mode : RB_COLOR_INFO_COLOR_ROUND_MODE_SIZE;
+ unsigned int color_linear : RB_COLOR_INFO_COLOR_LINEAR_SIZE;
+ unsigned int color_endian : RB_COLOR_INFO_COLOR_ENDIAN_SIZE;
+ unsigned int color_swap : RB_COLOR_INFO_COLOR_SWAP_SIZE;
+ unsigned int : 1;
+ unsigned int color_base : RB_COLOR_INFO_COLOR_BASE_SIZE;
+ } rb_color_info_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_color_info_t {
+ unsigned int color_base : RB_COLOR_INFO_COLOR_BASE_SIZE;
+ unsigned int : 1;
+ unsigned int color_swap : RB_COLOR_INFO_COLOR_SWAP_SIZE;
+ unsigned int color_endian : RB_COLOR_INFO_COLOR_ENDIAN_SIZE;
+ unsigned int color_linear : RB_COLOR_INFO_COLOR_LINEAR_SIZE;
+ unsigned int color_round_mode : RB_COLOR_INFO_COLOR_ROUND_MODE_SIZE;
+ unsigned int color_format : RB_COLOR_INFO_COLOR_FORMAT_SIZE;
+ } rb_color_info_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_color_info_t f;
+} rb_color_info_u;
+
+
+/*
+ * RB_DEPTH_INFO struct
+ */
+
+#define RB_DEPTH_INFO_DEPTH_FORMAT_SIZE 1
+#define RB_DEPTH_INFO_DEPTH_BASE_SIZE 20
+
+#define RB_DEPTH_INFO_DEPTH_FORMAT_SHIFT 0
+#define RB_DEPTH_INFO_DEPTH_BASE_SHIFT 12
+
+#define RB_DEPTH_INFO_DEPTH_FORMAT_MASK 0x00000001
+#define RB_DEPTH_INFO_DEPTH_BASE_MASK 0xfffff000
+
+#define RB_DEPTH_INFO_MASK \
+ (RB_DEPTH_INFO_DEPTH_FORMAT_MASK | \
+ RB_DEPTH_INFO_DEPTH_BASE_MASK)
+
+#define RB_DEPTH_INFO(depth_format, depth_base) \
+ ((depth_format << RB_DEPTH_INFO_DEPTH_FORMAT_SHIFT) | \
+ (depth_base << RB_DEPTH_INFO_DEPTH_BASE_SHIFT))
+
+#define RB_DEPTH_INFO_GET_DEPTH_FORMAT(rb_depth_info) \
+ ((rb_depth_info & RB_DEPTH_INFO_DEPTH_FORMAT_MASK) >> RB_DEPTH_INFO_DEPTH_FORMAT_SHIFT)
+#define RB_DEPTH_INFO_GET_DEPTH_BASE(rb_depth_info) \
+ ((rb_depth_info & RB_DEPTH_INFO_DEPTH_BASE_MASK) >> RB_DEPTH_INFO_DEPTH_BASE_SHIFT)
+
+#define RB_DEPTH_INFO_SET_DEPTH_FORMAT(rb_depth_info_reg, depth_format) \
+ rb_depth_info_reg = (rb_depth_info_reg & ~RB_DEPTH_INFO_DEPTH_FORMAT_MASK) | (depth_format << RB_DEPTH_INFO_DEPTH_FORMAT_SHIFT)
+#define RB_DEPTH_INFO_SET_DEPTH_BASE(rb_depth_info_reg, depth_base) \
+ rb_depth_info_reg = (rb_depth_info_reg & ~RB_DEPTH_INFO_DEPTH_BASE_MASK) | (depth_base << RB_DEPTH_INFO_DEPTH_BASE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_depth_info_t {
+ unsigned int depth_format : RB_DEPTH_INFO_DEPTH_FORMAT_SIZE;
+ unsigned int : 11;
+ unsigned int depth_base : RB_DEPTH_INFO_DEPTH_BASE_SIZE;
+ } rb_depth_info_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_depth_info_t {
+ unsigned int depth_base : RB_DEPTH_INFO_DEPTH_BASE_SIZE;
+ unsigned int : 11;
+ unsigned int depth_format : RB_DEPTH_INFO_DEPTH_FORMAT_SIZE;
+ } rb_depth_info_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_depth_info_t f;
+} rb_depth_info_u;
+
+
+/*
+ * RB_STENCILREFMASK struct
+ */
+
+#define RB_STENCILREFMASK_STENCILREF_SIZE 8
+#define RB_STENCILREFMASK_STENCILMASK_SIZE 8
+#define RB_STENCILREFMASK_STENCILWRITEMASK_SIZE 8
+#define RB_STENCILREFMASK_RESERVED0_SIZE 1
+#define RB_STENCILREFMASK_RESERVED1_SIZE 1
+
+#define RB_STENCILREFMASK_STENCILREF_SHIFT 0
+#define RB_STENCILREFMASK_STENCILMASK_SHIFT 8
+#define RB_STENCILREFMASK_STENCILWRITEMASK_SHIFT 16
+#define RB_STENCILREFMASK_RESERVED0_SHIFT 24
+#define RB_STENCILREFMASK_RESERVED1_SHIFT 25
+
+#define RB_STENCILREFMASK_STENCILREF_MASK 0x000000ff
+#define RB_STENCILREFMASK_STENCILMASK_MASK 0x0000ff00
+#define RB_STENCILREFMASK_STENCILWRITEMASK_MASK 0x00ff0000
+#define RB_STENCILREFMASK_RESERVED0_MASK 0x01000000
+#define RB_STENCILREFMASK_RESERVED1_MASK 0x02000000
+
+#define RB_STENCILREFMASK_MASK \
+ (RB_STENCILREFMASK_STENCILREF_MASK | \
+ RB_STENCILREFMASK_STENCILMASK_MASK | \
+ RB_STENCILREFMASK_STENCILWRITEMASK_MASK | \
+ RB_STENCILREFMASK_RESERVED0_MASK | \
+ RB_STENCILREFMASK_RESERVED1_MASK)
+
+#define RB_STENCILREFMASK(stencilref, stencilmask, stencilwritemask, reserved0, reserved1) \
+ ((stencilref << RB_STENCILREFMASK_STENCILREF_SHIFT) | \
+ (stencilmask << RB_STENCILREFMASK_STENCILMASK_SHIFT) | \
+ (stencilwritemask << RB_STENCILREFMASK_STENCILWRITEMASK_SHIFT) | \
+ (reserved0 << RB_STENCILREFMASK_RESERVED0_SHIFT) | \
+ (reserved1 << RB_STENCILREFMASK_RESERVED1_SHIFT))
+
+#define RB_STENCILREFMASK_GET_STENCILREF(rb_stencilrefmask) \
+ ((rb_stencilrefmask & RB_STENCILREFMASK_STENCILREF_MASK) >> RB_STENCILREFMASK_STENCILREF_SHIFT)
+#define RB_STENCILREFMASK_GET_STENCILMASK(rb_stencilrefmask) \
+ ((rb_stencilrefmask & RB_STENCILREFMASK_STENCILMASK_MASK) >> RB_STENCILREFMASK_STENCILMASK_SHIFT)
+#define RB_STENCILREFMASK_GET_STENCILWRITEMASK(rb_stencilrefmask) \
+ ((rb_stencilrefmask & RB_STENCILREFMASK_STENCILWRITEMASK_MASK) >> RB_STENCILREFMASK_STENCILWRITEMASK_SHIFT)
+#define RB_STENCILREFMASK_GET_RESERVED0(rb_stencilrefmask) \
+ ((rb_stencilrefmask & RB_STENCILREFMASK_RESERVED0_MASK) >> RB_STENCILREFMASK_RESERVED0_SHIFT)
+#define RB_STENCILREFMASK_GET_RESERVED1(rb_stencilrefmask) \
+ ((rb_stencilrefmask & RB_STENCILREFMASK_RESERVED1_MASK) >> RB_STENCILREFMASK_RESERVED1_SHIFT)
+
+#define RB_STENCILREFMASK_SET_STENCILREF(rb_stencilrefmask_reg, stencilref) \
+ rb_stencilrefmask_reg = (rb_stencilrefmask_reg & ~RB_STENCILREFMASK_STENCILREF_MASK) | (stencilref << RB_STENCILREFMASK_STENCILREF_SHIFT)
+#define RB_STENCILREFMASK_SET_STENCILMASK(rb_stencilrefmask_reg, stencilmask) \
+ rb_stencilrefmask_reg = (rb_stencilrefmask_reg & ~RB_STENCILREFMASK_STENCILMASK_MASK) | (stencilmask << RB_STENCILREFMASK_STENCILMASK_SHIFT)
+#define RB_STENCILREFMASK_SET_STENCILWRITEMASK(rb_stencilrefmask_reg, stencilwritemask) \
+ rb_stencilrefmask_reg = (rb_stencilrefmask_reg & ~RB_STENCILREFMASK_STENCILWRITEMASK_MASK) | (stencilwritemask << RB_STENCILREFMASK_STENCILWRITEMASK_SHIFT)
+#define RB_STENCILREFMASK_SET_RESERVED0(rb_stencilrefmask_reg, reserved0) \
+ rb_stencilrefmask_reg = (rb_stencilrefmask_reg & ~RB_STENCILREFMASK_RESERVED0_MASK) | (reserved0 << RB_STENCILREFMASK_RESERVED0_SHIFT)
+#define RB_STENCILREFMASK_SET_RESERVED1(rb_stencilrefmask_reg, reserved1) \
+ rb_stencilrefmask_reg = (rb_stencilrefmask_reg & ~RB_STENCILREFMASK_RESERVED1_MASK) | (reserved1 << RB_STENCILREFMASK_RESERVED1_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_stencilrefmask_t {
+ unsigned int stencilref : RB_STENCILREFMASK_STENCILREF_SIZE;
+ unsigned int stencilmask : RB_STENCILREFMASK_STENCILMASK_SIZE;
+ unsigned int stencilwritemask : RB_STENCILREFMASK_STENCILWRITEMASK_SIZE;
+ unsigned int reserved0 : RB_STENCILREFMASK_RESERVED0_SIZE;
+ unsigned int reserved1 : RB_STENCILREFMASK_RESERVED1_SIZE;
+ unsigned int : 6;
+ } rb_stencilrefmask_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_stencilrefmask_t {
+ unsigned int : 6;
+ unsigned int reserved1 : RB_STENCILREFMASK_RESERVED1_SIZE;
+ unsigned int reserved0 : RB_STENCILREFMASK_RESERVED0_SIZE;
+ unsigned int stencilwritemask : RB_STENCILREFMASK_STENCILWRITEMASK_SIZE;
+ unsigned int stencilmask : RB_STENCILREFMASK_STENCILMASK_SIZE;
+ unsigned int stencilref : RB_STENCILREFMASK_STENCILREF_SIZE;
+ } rb_stencilrefmask_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_stencilrefmask_t f;
+} rb_stencilrefmask_u;
+
+
+/*
+ * RB_ALPHA_REF struct
+ */
+
+#define RB_ALPHA_REF_ALPHA_REF_SIZE 32
+
+#define RB_ALPHA_REF_ALPHA_REF_SHIFT 0
+
+#define RB_ALPHA_REF_ALPHA_REF_MASK 0xffffffff
+
+#define RB_ALPHA_REF_MASK \
+ (RB_ALPHA_REF_ALPHA_REF_MASK)
+
+#define RB_ALPHA_REF(alpha_ref) \
+ ((alpha_ref << RB_ALPHA_REF_ALPHA_REF_SHIFT))
+
+#define RB_ALPHA_REF_GET_ALPHA_REF(rb_alpha_ref) \
+ ((rb_alpha_ref & RB_ALPHA_REF_ALPHA_REF_MASK) >> RB_ALPHA_REF_ALPHA_REF_SHIFT)
+
+#define RB_ALPHA_REF_SET_ALPHA_REF(rb_alpha_ref_reg, alpha_ref) \
+ rb_alpha_ref_reg = (rb_alpha_ref_reg & ~RB_ALPHA_REF_ALPHA_REF_MASK) | (alpha_ref << RB_ALPHA_REF_ALPHA_REF_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_alpha_ref_t {
+ unsigned int alpha_ref : RB_ALPHA_REF_ALPHA_REF_SIZE;
+ } rb_alpha_ref_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_alpha_ref_t {
+ unsigned int alpha_ref : RB_ALPHA_REF_ALPHA_REF_SIZE;
+ } rb_alpha_ref_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_alpha_ref_t f;
+} rb_alpha_ref_u;
+
+
+/*
+ * RB_COLOR_MASK struct
+ */
+
+#define RB_COLOR_MASK_WRITE_RED_SIZE 1
+#define RB_COLOR_MASK_WRITE_GREEN_SIZE 1
+#define RB_COLOR_MASK_WRITE_BLUE_SIZE 1
+#define RB_COLOR_MASK_WRITE_ALPHA_SIZE 1
+#define RB_COLOR_MASK_RESERVED2_SIZE 1
+#define RB_COLOR_MASK_RESERVED3_SIZE 1
+
+#define RB_COLOR_MASK_WRITE_RED_SHIFT 0
+#define RB_COLOR_MASK_WRITE_GREEN_SHIFT 1
+#define RB_COLOR_MASK_WRITE_BLUE_SHIFT 2
+#define RB_COLOR_MASK_WRITE_ALPHA_SHIFT 3
+#define RB_COLOR_MASK_RESERVED2_SHIFT 4
+#define RB_COLOR_MASK_RESERVED3_SHIFT 5
+
+#define RB_COLOR_MASK_WRITE_RED_MASK 0x00000001
+#define RB_COLOR_MASK_WRITE_GREEN_MASK 0x00000002
+#define RB_COLOR_MASK_WRITE_BLUE_MASK 0x00000004
+#define RB_COLOR_MASK_WRITE_ALPHA_MASK 0x00000008
+#define RB_COLOR_MASK_RESERVED2_MASK 0x00000010
+#define RB_COLOR_MASK_RESERVED3_MASK 0x00000020
+
+#define RB_COLOR_MASK_MASK \
+ (RB_COLOR_MASK_WRITE_RED_MASK | \
+ RB_COLOR_MASK_WRITE_GREEN_MASK | \
+ RB_COLOR_MASK_WRITE_BLUE_MASK | \
+ RB_COLOR_MASK_WRITE_ALPHA_MASK | \
+ RB_COLOR_MASK_RESERVED2_MASK | \
+ RB_COLOR_MASK_RESERVED3_MASK)
+
+#define RB_COLOR_MASK(write_red, write_green, write_blue, write_alpha, reserved2, reserved3) \
+ ((write_red << RB_COLOR_MASK_WRITE_RED_SHIFT) | \
+ (write_green << RB_COLOR_MASK_WRITE_GREEN_SHIFT) | \
+ (write_blue << RB_COLOR_MASK_WRITE_BLUE_SHIFT) | \
+ (write_alpha << RB_COLOR_MASK_WRITE_ALPHA_SHIFT) | \
+ (reserved2 << RB_COLOR_MASK_RESERVED2_SHIFT) | \
+ (reserved3 << RB_COLOR_MASK_RESERVED3_SHIFT))
+
+#define RB_COLOR_MASK_GET_WRITE_RED(rb_color_mask) \
+ ((rb_color_mask & RB_COLOR_MASK_WRITE_RED_MASK) >> RB_COLOR_MASK_WRITE_RED_SHIFT)
+#define RB_COLOR_MASK_GET_WRITE_GREEN(rb_color_mask) \
+ ((rb_color_mask & RB_COLOR_MASK_WRITE_GREEN_MASK) >> RB_COLOR_MASK_WRITE_GREEN_SHIFT)
+#define RB_COLOR_MASK_GET_WRITE_BLUE(rb_color_mask) \
+ ((rb_color_mask & RB_COLOR_MASK_WRITE_BLUE_MASK) >> RB_COLOR_MASK_WRITE_BLUE_SHIFT)
+#define RB_COLOR_MASK_GET_WRITE_ALPHA(rb_color_mask) \
+ ((rb_color_mask & RB_COLOR_MASK_WRITE_ALPHA_MASK) >> RB_COLOR_MASK_WRITE_ALPHA_SHIFT)
+#define RB_COLOR_MASK_GET_RESERVED2(rb_color_mask) \
+ ((rb_color_mask & RB_COLOR_MASK_RESERVED2_MASK) >> RB_COLOR_MASK_RESERVED2_SHIFT)
+#define RB_COLOR_MASK_GET_RESERVED3(rb_color_mask) \
+ ((rb_color_mask & RB_COLOR_MASK_RESERVED3_MASK) >> RB_COLOR_MASK_RESERVED3_SHIFT)
+
+#define RB_COLOR_MASK_SET_WRITE_RED(rb_color_mask_reg, write_red) \
+ rb_color_mask_reg = (rb_color_mask_reg & ~RB_COLOR_MASK_WRITE_RED_MASK) | (write_red << RB_COLOR_MASK_WRITE_RED_SHIFT)
+#define RB_COLOR_MASK_SET_WRITE_GREEN(rb_color_mask_reg, write_green) \
+ rb_color_mask_reg = (rb_color_mask_reg & ~RB_COLOR_MASK_WRITE_GREEN_MASK) | (write_green << RB_COLOR_MASK_WRITE_GREEN_SHIFT)
+#define RB_COLOR_MASK_SET_WRITE_BLUE(rb_color_mask_reg, write_blue) \
+ rb_color_mask_reg = (rb_color_mask_reg & ~RB_COLOR_MASK_WRITE_BLUE_MASK) | (write_blue << RB_COLOR_MASK_WRITE_BLUE_SHIFT)
+#define RB_COLOR_MASK_SET_WRITE_ALPHA(rb_color_mask_reg, write_alpha) \
+ rb_color_mask_reg = (rb_color_mask_reg & ~RB_COLOR_MASK_WRITE_ALPHA_MASK) | (write_alpha << RB_COLOR_MASK_WRITE_ALPHA_SHIFT)
+#define RB_COLOR_MASK_SET_RESERVED2(rb_color_mask_reg, reserved2) \
+ rb_color_mask_reg = (rb_color_mask_reg & ~RB_COLOR_MASK_RESERVED2_MASK) | (reserved2 << RB_COLOR_MASK_RESERVED2_SHIFT)
+#define RB_COLOR_MASK_SET_RESERVED3(rb_color_mask_reg, reserved3) \
+ rb_color_mask_reg = (rb_color_mask_reg & ~RB_COLOR_MASK_RESERVED3_MASK) | (reserved3 << RB_COLOR_MASK_RESERVED3_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_color_mask_t {
+ unsigned int write_red : RB_COLOR_MASK_WRITE_RED_SIZE;
+ unsigned int write_green : RB_COLOR_MASK_WRITE_GREEN_SIZE;
+ unsigned int write_blue : RB_COLOR_MASK_WRITE_BLUE_SIZE;
+ unsigned int write_alpha : RB_COLOR_MASK_WRITE_ALPHA_SIZE;
+ unsigned int reserved2 : RB_COLOR_MASK_RESERVED2_SIZE;
+ unsigned int reserved3 : RB_COLOR_MASK_RESERVED3_SIZE;
+ unsigned int : 26;
+ } rb_color_mask_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_color_mask_t {
+ unsigned int : 26;
+ unsigned int reserved3 : RB_COLOR_MASK_RESERVED3_SIZE;
+ unsigned int reserved2 : RB_COLOR_MASK_RESERVED2_SIZE;
+ unsigned int write_alpha : RB_COLOR_MASK_WRITE_ALPHA_SIZE;
+ unsigned int write_blue : RB_COLOR_MASK_WRITE_BLUE_SIZE;
+ unsigned int write_green : RB_COLOR_MASK_WRITE_GREEN_SIZE;
+ unsigned int write_red : RB_COLOR_MASK_WRITE_RED_SIZE;
+ } rb_color_mask_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_color_mask_t f;
+} rb_color_mask_u;
+
+
+/*
+ * RB_BLEND_RED struct
+ */
+
+#define RB_BLEND_RED_BLEND_RED_SIZE 8
+
+#define RB_BLEND_RED_BLEND_RED_SHIFT 0
+
+#define RB_BLEND_RED_BLEND_RED_MASK 0x000000ff
+
+#define RB_BLEND_RED_MASK \
+ (RB_BLEND_RED_BLEND_RED_MASK)
+
+#define RB_BLEND_RED(blend_red) \
+ ((blend_red << RB_BLEND_RED_BLEND_RED_SHIFT))
+
+#define RB_BLEND_RED_GET_BLEND_RED(rb_blend_red) \
+ ((rb_blend_red & RB_BLEND_RED_BLEND_RED_MASK) >> RB_BLEND_RED_BLEND_RED_SHIFT)
+
+#define RB_BLEND_RED_SET_BLEND_RED(rb_blend_red_reg, blend_red) \
+ rb_blend_red_reg = (rb_blend_red_reg & ~RB_BLEND_RED_BLEND_RED_MASK) | (blend_red << RB_BLEND_RED_BLEND_RED_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_blend_red_t {
+ unsigned int blend_red : RB_BLEND_RED_BLEND_RED_SIZE;
+ unsigned int : 24;
+ } rb_blend_red_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_blend_red_t {
+ unsigned int : 24;
+ unsigned int blend_red : RB_BLEND_RED_BLEND_RED_SIZE;
+ } rb_blend_red_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_blend_red_t f;
+} rb_blend_red_u;
+
+
+/*
+ * RB_BLEND_GREEN struct
+ */
+
+#define RB_BLEND_GREEN_BLEND_GREEN_SIZE 8
+
+#define RB_BLEND_GREEN_BLEND_GREEN_SHIFT 0
+
+#define RB_BLEND_GREEN_BLEND_GREEN_MASK 0x000000ff
+
+#define RB_BLEND_GREEN_MASK \
+ (RB_BLEND_GREEN_BLEND_GREEN_MASK)
+
+#define RB_BLEND_GREEN(blend_green) \
+ ((blend_green << RB_BLEND_GREEN_BLEND_GREEN_SHIFT))
+
+#define RB_BLEND_GREEN_GET_BLEND_GREEN(rb_blend_green) \
+ ((rb_blend_green & RB_BLEND_GREEN_BLEND_GREEN_MASK) >> RB_BLEND_GREEN_BLEND_GREEN_SHIFT)
+
+#define RB_BLEND_GREEN_SET_BLEND_GREEN(rb_blend_green_reg, blend_green) \
+ rb_blend_green_reg = (rb_blend_green_reg & ~RB_BLEND_GREEN_BLEND_GREEN_MASK) | (blend_green << RB_BLEND_GREEN_BLEND_GREEN_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_blend_green_t {
+ unsigned int blend_green : RB_BLEND_GREEN_BLEND_GREEN_SIZE;
+ unsigned int : 24;
+ } rb_blend_green_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_blend_green_t {
+ unsigned int : 24;
+ unsigned int blend_green : RB_BLEND_GREEN_BLEND_GREEN_SIZE;
+ } rb_blend_green_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_blend_green_t f;
+} rb_blend_green_u;
+
+
+/*
+ * RB_BLEND_BLUE struct
+ */
+
+#define RB_BLEND_BLUE_BLEND_BLUE_SIZE 8
+
+#define RB_BLEND_BLUE_BLEND_BLUE_SHIFT 0
+
+#define RB_BLEND_BLUE_BLEND_BLUE_MASK 0x000000ff
+
+#define RB_BLEND_BLUE_MASK \
+ (RB_BLEND_BLUE_BLEND_BLUE_MASK)
+
+#define RB_BLEND_BLUE(blend_blue) \
+ ((blend_blue << RB_BLEND_BLUE_BLEND_BLUE_SHIFT))
+
+#define RB_BLEND_BLUE_GET_BLEND_BLUE(rb_blend_blue) \
+ ((rb_blend_blue & RB_BLEND_BLUE_BLEND_BLUE_MASK) >> RB_BLEND_BLUE_BLEND_BLUE_SHIFT)
+
+#define RB_BLEND_BLUE_SET_BLEND_BLUE(rb_blend_blue_reg, blend_blue) \
+ rb_blend_blue_reg = (rb_blend_blue_reg & ~RB_BLEND_BLUE_BLEND_BLUE_MASK) | (blend_blue << RB_BLEND_BLUE_BLEND_BLUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_blend_blue_t {
+ unsigned int blend_blue : RB_BLEND_BLUE_BLEND_BLUE_SIZE;
+ unsigned int : 24;
+ } rb_blend_blue_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_blend_blue_t {
+ unsigned int : 24;
+ unsigned int blend_blue : RB_BLEND_BLUE_BLEND_BLUE_SIZE;
+ } rb_blend_blue_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_blend_blue_t f;
+} rb_blend_blue_u;
+
+
+/*
+ * RB_BLEND_ALPHA struct
+ */
+
+#define RB_BLEND_ALPHA_BLEND_ALPHA_SIZE 8
+
+#define RB_BLEND_ALPHA_BLEND_ALPHA_SHIFT 0
+
+#define RB_BLEND_ALPHA_BLEND_ALPHA_MASK 0x000000ff
+
+#define RB_BLEND_ALPHA_MASK \
+ (RB_BLEND_ALPHA_BLEND_ALPHA_MASK)
+
+#define RB_BLEND_ALPHA(blend_alpha) \
+ ((blend_alpha << RB_BLEND_ALPHA_BLEND_ALPHA_SHIFT))
+
+#define RB_BLEND_ALPHA_GET_BLEND_ALPHA(rb_blend_alpha) \
+ ((rb_blend_alpha & RB_BLEND_ALPHA_BLEND_ALPHA_MASK) >> RB_BLEND_ALPHA_BLEND_ALPHA_SHIFT)
+
+#define RB_BLEND_ALPHA_SET_BLEND_ALPHA(rb_blend_alpha_reg, blend_alpha) \
+ rb_blend_alpha_reg = (rb_blend_alpha_reg & ~RB_BLEND_ALPHA_BLEND_ALPHA_MASK) | (blend_alpha << RB_BLEND_ALPHA_BLEND_ALPHA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_blend_alpha_t {
+ unsigned int blend_alpha : RB_BLEND_ALPHA_BLEND_ALPHA_SIZE;
+ unsigned int : 24;
+ } rb_blend_alpha_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_blend_alpha_t {
+ unsigned int : 24;
+ unsigned int blend_alpha : RB_BLEND_ALPHA_BLEND_ALPHA_SIZE;
+ } rb_blend_alpha_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_blend_alpha_t f;
+} rb_blend_alpha_u;
+
+
+/*
+ * RB_FOG_COLOR struct
+ */
+
+#define RB_FOG_COLOR_FOG_RED_SIZE 8
+#define RB_FOG_COLOR_FOG_GREEN_SIZE 8
+#define RB_FOG_COLOR_FOG_BLUE_SIZE 8
+
+#define RB_FOG_COLOR_FOG_RED_SHIFT 0
+#define RB_FOG_COLOR_FOG_GREEN_SHIFT 8
+#define RB_FOG_COLOR_FOG_BLUE_SHIFT 16
+
+#define RB_FOG_COLOR_FOG_RED_MASK 0x000000ff
+#define RB_FOG_COLOR_FOG_GREEN_MASK 0x0000ff00
+#define RB_FOG_COLOR_FOG_BLUE_MASK 0x00ff0000
+
+#define RB_FOG_COLOR_MASK \
+ (RB_FOG_COLOR_FOG_RED_MASK | \
+ RB_FOG_COLOR_FOG_GREEN_MASK | \
+ RB_FOG_COLOR_FOG_BLUE_MASK)
+
+#define RB_FOG_COLOR(fog_red, fog_green, fog_blue) \
+ ((fog_red << RB_FOG_COLOR_FOG_RED_SHIFT) | \
+ (fog_green << RB_FOG_COLOR_FOG_GREEN_SHIFT) | \
+ (fog_blue << RB_FOG_COLOR_FOG_BLUE_SHIFT))
+
+#define RB_FOG_COLOR_GET_FOG_RED(rb_fog_color) \
+ ((rb_fog_color & RB_FOG_COLOR_FOG_RED_MASK) >> RB_FOG_COLOR_FOG_RED_SHIFT)
+#define RB_FOG_COLOR_GET_FOG_GREEN(rb_fog_color) \
+ ((rb_fog_color & RB_FOG_COLOR_FOG_GREEN_MASK) >> RB_FOG_COLOR_FOG_GREEN_SHIFT)
+#define RB_FOG_COLOR_GET_FOG_BLUE(rb_fog_color) \
+ ((rb_fog_color & RB_FOG_COLOR_FOG_BLUE_MASK) >> RB_FOG_COLOR_FOG_BLUE_SHIFT)
+
+#define RB_FOG_COLOR_SET_FOG_RED(rb_fog_color_reg, fog_red) \
+ rb_fog_color_reg = (rb_fog_color_reg & ~RB_FOG_COLOR_FOG_RED_MASK) | (fog_red << RB_FOG_COLOR_FOG_RED_SHIFT)
+#define RB_FOG_COLOR_SET_FOG_GREEN(rb_fog_color_reg, fog_green) \
+ rb_fog_color_reg = (rb_fog_color_reg & ~RB_FOG_COLOR_FOG_GREEN_MASK) | (fog_green << RB_FOG_COLOR_FOG_GREEN_SHIFT)
+#define RB_FOG_COLOR_SET_FOG_BLUE(rb_fog_color_reg, fog_blue) \
+ rb_fog_color_reg = (rb_fog_color_reg & ~RB_FOG_COLOR_FOG_BLUE_MASK) | (fog_blue << RB_FOG_COLOR_FOG_BLUE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_fog_color_t {
+ unsigned int fog_red : RB_FOG_COLOR_FOG_RED_SIZE;
+ unsigned int fog_green : RB_FOG_COLOR_FOG_GREEN_SIZE;
+ unsigned int fog_blue : RB_FOG_COLOR_FOG_BLUE_SIZE;
+ unsigned int : 8;
+ } rb_fog_color_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_fog_color_t {
+ unsigned int : 8;
+ unsigned int fog_blue : RB_FOG_COLOR_FOG_BLUE_SIZE;
+ unsigned int fog_green : RB_FOG_COLOR_FOG_GREEN_SIZE;
+ unsigned int fog_red : RB_FOG_COLOR_FOG_RED_SIZE;
+ } rb_fog_color_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_fog_color_t f;
+} rb_fog_color_u;
+
+
+/*
+ * RB_STENCILREFMASK_BF struct
+ */
+
+#define RB_STENCILREFMASK_BF_STENCILREF_BF_SIZE 8
+#define RB_STENCILREFMASK_BF_STENCILMASK_BF_SIZE 8
+#define RB_STENCILREFMASK_BF_STENCILWRITEMASK_BF_SIZE 8
+#define RB_STENCILREFMASK_BF_RESERVED4_SIZE 1
+#define RB_STENCILREFMASK_BF_RESERVED5_SIZE 1
+
+#define RB_STENCILREFMASK_BF_STENCILREF_BF_SHIFT 0
+#define RB_STENCILREFMASK_BF_STENCILMASK_BF_SHIFT 8
+#define RB_STENCILREFMASK_BF_STENCILWRITEMASK_BF_SHIFT 16
+#define RB_STENCILREFMASK_BF_RESERVED4_SHIFT 24
+#define RB_STENCILREFMASK_BF_RESERVED5_SHIFT 25
+
+#define RB_STENCILREFMASK_BF_STENCILREF_BF_MASK 0x000000ff
+#define RB_STENCILREFMASK_BF_STENCILMASK_BF_MASK 0x0000ff00
+#define RB_STENCILREFMASK_BF_STENCILWRITEMASK_BF_MASK 0x00ff0000
+#define RB_STENCILREFMASK_BF_RESERVED4_MASK 0x01000000
+#define RB_STENCILREFMASK_BF_RESERVED5_MASK 0x02000000
+
+#define RB_STENCILREFMASK_BF_MASK \
+ (RB_STENCILREFMASK_BF_STENCILREF_BF_MASK | \
+ RB_STENCILREFMASK_BF_STENCILMASK_BF_MASK | \
+ RB_STENCILREFMASK_BF_STENCILWRITEMASK_BF_MASK | \
+ RB_STENCILREFMASK_BF_RESERVED4_MASK | \
+ RB_STENCILREFMASK_BF_RESERVED5_MASK)
+
+#define RB_STENCILREFMASK_BF(stencilref_bf, stencilmask_bf, stencilwritemask_bf, reserved4, reserved5) \
+ ((stencilref_bf << RB_STENCILREFMASK_BF_STENCILREF_BF_SHIFT) | \
+ (stencilmask_bf << RB_STENCILREFMASK_BF_STENCILMASK_BF_SHIFT) | \
+ (stencilwritemask_bf << RB_STENCILREFMASK_BF_STENCILWRITEMASK_BF_SHIFT) | \
+ (reserved4 << RB_STENCILREFMASK_BF_RESERVED4_SHIFT) | \
+ (reserved5 << RB_STENCILREFMASK_BF_RESERVED5_SHIFT))
+
+#define RB_STENCILREFMASK_BF_GET_STENCILREF_BF(rb_stencilrefmask_bf) \
+ ((rb_stencilrefmask_bf & RB_STENCILREFMASK_BF_STENCILREF_BF_MASK) >> RB_STENCILREFMASK_BF_STENCILREF_BF_SHIFT)
+#define RB_STENCILREFMASK_BF_GET_STENCILMASK_BF(rb_stencilrefmask_bf) \
+ ((rb_stencilrefmask_bf & RB_STENCILREFMASK_BF_STENCILMASK_BF_MASK) >> RB_STENCILREFMASK_BF_STENCILMASK_BF_SHIFT)
+#define RB_STENCILREFMASK_BF_GET_STENCILWRITEMASK_BF(rb_stencilrefmask_bf) \
+ ((rb_stencilrefmask_bf & RB_STENCILREFMASK_BF_STENCILWRITEMASK_BF_MASK) >> RB_STENCILREFMASK_BF_STENCILWRITEMASK_BF_SHIFT)
+#define RB_STENCILREFMASK_BF_GET_RESERVED4(rb_stencilrefmask_bf) \
+ ((rb_stencilrefmask_bf & RB_STENCILREFMASK_BF_RESERVED4_MASK) >> RB_STENCILREFMASK_BF_RESERVED4_SHIFT)
+#define RB_STENCILREFMASK_BF_GET_RESERVED5(rb_stencilrefmask_bf) \
+ ((rb_stencilrefmask_bf & RB_STENCILREFMASK_BF_RESERVED5_MASK) >> RB_STENCILREFMASK_BF_RESERVED5_SHIFT)
+
+#define RB_STENCILREFMASK_BF_SET_STENCILREF_BF(rb_stencilrefmask_bf_reg, stencilref_bf) \
+ rb_stencilrefmask_bf_reg = (rb_stencilrefmask_bf_reg & ~RB_STENCILREFMASK_BF_STENCILREF_BF_MASK) | (stencilref_bf << RB_STENCILREFMASK_BF_STENCILREF_BF_SHIFT)
+#define RB_STENCILREFMASK_BF_SET_STENCILMASK_BF(rb_stencilrefmask_bf_reg, stencilmask_bf) \
+ rb_stencilrefmask_bf_reg = (rb_stencilrefmask_bf_reg & ~RB_STENCILREFMASK_BF_STENCILMASK_BF_MASK) | (stencilmask_bf << RB_STENCILREFMASK_BF_STENCILMASK_BF_SHIFT)
+#define RB_STENCILREFMASK_BF_SET_STENCILWRITEMASK_BF(rb_stencilrefmask_bf_reg, stencilwritemask_bf) \
+ rb_stencilrefmask_bf_reg = (rb_stencilrefmask_bf_reg & ~RB_STENCILREFMASK_BF_STENCILWRITEMASK_BF_MASK) | (stencilwritemask_bf << RB_STENCILREFMASK_BF_STENCILWRITEMASK_BF_SHIFT)
+#define RB_STENCILREFMASK_BF_SET_RESERVED4(rb_stencilrefmask_bf_reg, reserved4) \
+ rb_stencilrefmask_bf_reg = (rb_stencilrefmask_bf_reg & ~RB_STENCILREFMASK_BF_RESERVED4_MASK) | (reserved4 << RB_STENCILREFMASK_BF_RESERVED4_SHIFT)
+#define RB_STENCILREFMASK_BF_SET_RESERVED5(rb_stencilrefmask_bf_reg, reserved5) \
+ rb_stencilrefmask_bf_reg = (rb_stencilrefmask_bf_reg & ~RB_STENCILREFMASK_BF_RESERVED5_MASK) | (reserved5 << RB_STENCILREFMASK_BF_RESERVED5_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_stencilrefmask_bf_t {
+ unsigned int stencilref_bf : RB_STENCILREFMASK_BF_STENCILREF_BF_SIZE;
+ unsigned int stencilmask_bf : RB_STENCILREFMASK_BF_STENCILMASK_BF_SIZE;
+ unsigned int stencilwritemask_bf : RB_STENCILREFMASK_BF_STENCILWRITEMASK_BF_SIZE;
+ unsigned int reserved4 : RB_STENCILREFMASK_BF_RESERVED4_SIZE;
+ unsigned int reserved5 : RB_STENCILREFMASK_BF_RESERVED5_SIZE;
+ unsigned int : 6;
+ } rb_stencilrefmask_bf_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_stencilrefmask_bf_t {
+ unsigned int : 6;
+ unsigned int reserved5 : RB_STENCILREFMASK_BF_RESERVED5_SIZE;
+ unsigned int reserved4 : RB_STENCILREFMASK_BF_RESERVED4_SIZE;
+ unsigned int stencilwritemask_bf : RB_STENCILREFMASK_BF_STENCILWRITEMASK_BF_SIZE;
+ unsigned int stencilmask_bf : RB_STENCILREFMASK_BF_STENCILMASK_BF_SIZE;
+ unsigned int stencilref_bf : RB_STENCILREFMASK_BF_STENCILREF_BF_SIZE;
+ } rb_stencilrefmask_bf_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_stencilrefmask_bf_t f;
+} rb_stencilrefmask_bf_u;
+
+
+/*
+ * RB_DEPTHCONTROL struct
+ */
+
+#define RB_DEPTHCONTROL_STENCIL_ENABLE_SIZE 1
+#define RB_DEPTHCONTROL_Z_ENABLE_SIZE 1
+#define RB_DEPTHCONTROL_Z_WRITE_ENABLE_SIZE 1
+#define RB_DEPTHCONTROL_EARLY_Z_ENABLE_SIZE 1
+#define RB_DEPTHCONTROL_ZFUNC_SIZE 3
+#define RB_DEPTHCONTROL_BACKFACE_ENABLE_SIZE 1
+#define RB_DEPTHCONTROL_STENCILFUNC_SIZE 3
+#define RB_DEPTHCONTROL_STENCILFAIL_SIZE 3
+#define RB_DEPTHCONTROL_STENCILZPASS_SIZE 3
+#define RB_DEPTHCONTROL_STENCILZFAIL_SIZE 3
+#define RB_DEPTHCONTROL_STENCILFUNC_BF_SIZE 3
+#define RB_DEPTHCONTROL_STENCILFAIL_BF_SIZE 3
+#define RB_DEPTHCONTROL_STENCILZPASS_BF_SIZE 3
+#define RB_DEPTHCONTROL_STENCILZFAIL_BF_SIZE 3
+
+#define RB_DEPTHCONTROL_STENCIL_ENABLE_SHIFT 0
+#define RB_DEPTHCONTROL_Z_ENABLE_SHIFT 1
+#define RB_DEPTHCONTROL_Z_WRITE_ENABLE_SHIFT 2
+#define RB_DEPTHCONTROL_EARLY_Z_ENABLE_SHIFT 3
+#define RB_DEPTHCONTROL_ZFUNC_SHIFT 4
+#define RB_DEPTHCONTROL_BACKFACE_ENABLE_SHIFT 7
+#define RB_DEPTHCONTROL_STENCILFUNC_SHIFT 8
+#define RB_DEPTHCONTROL_STENCILFAIL_SHIFT 11
+#define RB_DEPTHCONTROL_STENCILZPASS_SHIFT 14
+#define RB_DEPTHCONTROL_STENCILZFAIL_SHIFT 17
+#define RB_DEPTHCONTROL_STENCILFUNC_BF_SHIFT 20
+#define RB_DEPTHCONTROL_STENCILFAIL_BF_SHIFT 23
+#define RB_DEPTHCONTROL_STENCILZPASS_BF_SHIFT 26
+#define RB_DEPTHCONTROL_STENCILZFAIL_BF_SHIFT 29
+
+#define RB_DEPTHCONTROL_STENCIL_ENABLE_MASK 0x00000001
+#define RB_DEPTHCONTROL_Z_ENABLE_MASK 0x00000002
+#define RB_DEPTHCONTROL_Z_WRITE_ENABLE_MASK 0x00000004
+#define RB_DEPTHCONTROL_EARLY_Z_ENABLE_MASK 0x00000008
+#define RB_DEPTHCONTROL_ZFUNC_MASK 0x00000070
+#define RB_DEPTHCONTROL_BACKFACE_ENABLE_MASK 0x00000080
+#define RB_DEPTHCONTROL_STENCILFUNC_MASK 0x00000700
+#define RB_DEPTHCONTROL_STENCILFAIL_MASK 0x00003800
+#define RB_DEPTHCONTROL_STENCILZPASS_MASK 0x0001c000
+#define RB_DEPTHCONTROL_STENCILZFAIL_MASK 0x000e0000
+#define RB_DEPTHCONTROL_STENCILFUNC_BF_MASK 0x00700000
+#define RB_DEPTHCONTROL_STENCILFAIL_BF_MASK 0x03800000
+#define RB_DEPTHCONTROL_STENCILZPASS_BF_MASK 0x1c000000
+#define RB_DEPTHCONTROL_STENCILZFAIL_BF_MASK 0xe0000000
+
+#define RB_DEPTHCONTROL_MASK \
+ (RB_DEPTHCONTROL_STENCIL_ENABLE_MASK | \
+ RB_DEPTHCONTROL_Z_ENABLE_MASK | \
+ RB_DEPTHCONTROL_Z_WRITE_ENABLE_MASK | \
+ RB_DEPTHCONTROL_EARLY_Z_ENABLE_MASK | \
+ RB_DEPTHCONTROL_ZFUNC_MASK | \
+ RB_DEPTHCONTROL_BACKFACE_ENABLE_MASK | \
+ RB_DEPTHCONTROL_STENCILFUNC_MASK | \
+ RB_DEPTHCONTROL_STENCILFAIL_MASK | \
+ RB_DEPTHCONTROL_STENCILZPASS_MASK | \
+ RB_DEPTHCONTROL_STENCILZFAIL_MASK | \
+ RB_DEPTHCONTROL_STENCILFUNC_BF_MASK | \
+ RB_DEPTHCONTROL_STENCILFAIL_BF_MASK | \
+ RB_DEPTHCONTROL_STENCILZPASS_BF_MASK | \
+ RB_DEPTHCONTROL_STENCILZFAIL_BF_MASK)
+
+#define RB_DEPTHCONTROL(stencil_enable, z_enable, z_write_enable, early_z_enable, zfunc, backface_enable, stencilfunc, stencilfail, stencilzpass, stencilzfail, stencilfunc_bf, stencilfail_bf, stencilzpass_bf, stencilzfail_bf) \
+ ((stencil_enable << RB_DEPTHCONTROL_STENCIL_ENABLE_SHIFT) | \
+ (z_enable << RB_DEPTHCONTROL_Z_ENABLE_SHIFT) | \
+ (z_write_enable << RB_DEPTHCONTROL_Z_WRITE_ENABLE_SHIFT) | \
+ (early_z_enable << RB_DEPTHCONTROL_EARLY_Z_ENABLE_SHIFT) | \
+ (zfunc << RB_DEPTHCONTROL_ZFUNC_SHIFT) | \
+ (backface_enable << RB_DEPTHCONTROL_BACKFACE_ENABLE_SHIFT) | \
+ (stencilfunc << RB_DEPTHCONTROL_STENCILFUNC_SHIFT) | \
+ (stencilfail << RB_DEPTHCONTROL_STENCILFAIL_SHIFT) | \
+ (stencilzpass << RB_DEPTHCONTROL_STENCILZPASS_SHIFT) | \
+ (stencilzfail << RB_DEPTHCONTROL_STENCILZFAIL_SHIFT) | \
+ (stencilfunc_bf << RB_DEPTHCONTROL_STENCILFUNC_BF_SHIFT) | \
+ (stencilfail_bf << RB_DEPTHCONTROL_STENCILFAIL_BF_SHIFT) | \
+ (stencilzpass_bf << RB_DEPTHCONTROL_STENCILZPASS_BF_SHIFT) | \
+ (stencilzfail_bf << RB_DEPTHCONTROL_STENCILZFAIL_BF_SHIFT))
+
+#define RB_DEPTHCONTROL_GET_STENCIL_ENABLE(rb_depthcontrol) \
+ ((rb_depthcontrol & RB_DEPTHCONTROL_STENCIL_ENABLE_MASK) >> RB_DEPTHCONTROL_STENCIL_ENABLE_SHIFT)
+#define RB_DEPTHCONTROL_GET_Z_ENABLE(rb_depthcontrol) \
+ ((rb_depthcontrol & RB_DEPTHCONTROL_Z_ENABLE_MASK) >> RB_DEPTHCONTROL_Z_ENABLE_SHIFT)
+#define RB_DEPTHCONTROL_GET_Z_WRITE_ENABLE(rb_depthcontrol) \
+ ((rb_depthcontrol & RB_DEPTHCONTROL_Z_WRITE_ENABLE_MASK) >> RB_DEPTHCONTROL_Z_WRITE_ENABLE_SHIFT)
+#define RB_DEPTHCONTROL_GET_EARLY_Z_ENABLE(rb_depthcontrol) \
+ ((rb_depthcontrol & RB_DEPTHCONTROL_EARLY_Z_ENABLE_MASK) >> RB_DEPTHCONTROL_EARLY_Z_ENABLE_SHIFT)
+#define RB_DEPTHCONTROL_GET_ZFUNC(rb_depthcontrol) \
+ ((rb_depthcontrol & RB_DEPTHCONTROL_ZFUNC_MASK) >> RB_DEPTHCONTROL_ZFUNC_SHIFT)
+#define RB_DEPTHCONTROL_GET_BACKFACE_ENABLE(rb_depthcontrol) \
+ ((rb_depthcontrol & RB_DEPTHCONTROL_BACKFACE_ENABLE_MASK) >> RB_DEPTHCONTROL_BACKFACE_ENABLE_SHIFT)
+#define RB_DEPTHCONTROL_GET_STENCILFUNC(rb_depthcontrol) \
+ ((rb_depthcontrol & RB_DEPTHCONTROL_STENCILFUNC_MASK) >> RB_DEPTHCONTROL_STENCILFUNC_SHIFT)
+#define RB_DEPTHCONTROL_GET_STENCILFAIL(rb_depthcontrol) \
+ ((rb_depthcontrol & RB_DEPTHCONTROL_STENCILFAIL_MASK) >> RB_DEPTHCONTROL_STENCILFAIL_SHIFT)
+#define RB_DEPTHCONTROL_GET_STENCILZPASS(rb_depthcontrol) \
+ ((rb_depthcontrol & RB_DEPTHCONTROL_STENCILZPASS_MASK) >> RB_DEPTHCONTROL_STENCILZPASS_SHIFT)
+#define RB_DEPTHCONTROL_GET_STENCILZFAIL(rb_depthcontrol) \
+ ((rb_depthcontrol & RB_DEPTHCONTROL_STENCILZFAIL_MASK) >> RB_DEPTHCONTROL_STENCILZFAIL_SHIFT)
+#define RB_DEPTHCONTROL_GET_STENCILFUNC_BF(rb_depthcontrol) \
+ ((rb_depthcontrol & RB_DEPTHCONTROL_STENCILFUNC_BF_MASK) >> RB_DEPTHCONTROL_STENCILFUNC_BF_SHIFT)
+#define RB_DEPTHCONTROL_GET_STENCILFAIL_BF(rb_depthcontrol) \
+ ((rb_depthcontrol & RB_DEPTHCONTROL_STENCILFAIL_BF_MASK) >> RB_DEPTHCONTROL_STENCILFAIL_BF_SHIFT)
+#define RB_DEPTHCONTROL_GET_STENCILZPASS_BF(rb_depthcontrol) \
+ ((rb_depthcontrol & RB_DEPTHCONTROL_STENCILZPASS_BF_MASK) >> RB_DEPTHCONTROL_STENCILZPASS_BF_SHIFT)
+#define RB_DEPTHCONTROL_GET_STENCILZFAIL_BF(rb_depthcontrol) \
+ ((rb_depthcontrol & RB_DEPTHCONTROL_STENCILZFAIL_BF_MASK) >> RB_DEPTHCONTROL_STENCILZFAIL_BF_SHIFT)
+
+#define RB_DEPTHCONTROL_SET_STENCIL_ENABLE(rb_depthcontrol_reg, stencil_enable) \
+ rb_depthcontrol_reg = (rb_depthcontrol_reg & ~RB_DEPTHCONTROL_STENCIL_ENABLE_MASK) | (stencil_enable << RB_DEPTHCONTROL_STENCIL_ENABLE_SHIFT)
+#define RB_DEPTHCONTROL_SET_Z_ENABLE(rb_depthcontrol_reg, z_enable) \
+ rb_depthcontrol_reg = (rb_depthcontrol_reg & ~RB_DEPTHCONTROL_Z_ENABLE_MASK) | (z_enable << RB_DEPTHCONTROL_Z_ENABLE_SHIFT)
+#define RB_DEPTHCONTROL_SET_Z_WRITE_ENABLE(rb_depthcontrol_reg, z_write_enable) \
+ rb_depthcontrol_reg = (rb_depthcontrol_reg & ~RB_DEPTHCONTROL_Z_WRITE_ENABLE_MASK) | (z_write_enable << RB_DEPTHCONTROL_Z_WRITE_ENABLE_SHIFT)
+#define RB_DEPTHCONTROL_SET_EARLY_Z_ENABLE(rb_depthcontrol_reg, early_z_enable) \
+ rb_depthcontrol_reg = (rb_depthcontrol_reg & ~RB_DEPTHCONTROL_EARLY_Z_ENABLE_MASK) | (early_z_enable << RB_DEPTHCONTROL_EARLY_Z_ENABLE_SHIFT)
+#define RB_DEPTHCONTROL_SET_ZFUNC(rb_depthcontrol_reg, zfunc) \
+ rb_depthcontrol_reg = (rb_depthcontrol_reg & ~RB_DEPTHCONTROL_ZFUNC_MASK) | (zfunc << RB_DEPTHCONTROL_ZFUNC_SHIFT)
+#define RB_DEPTHCONTROL_SET_BACKFACE_ENABLE(rb_depthcontrol_reg, backface_enable) \
+ rb_depthcontrol_reg = (rb_depthcontrol_reg & ~RB_DEPTHCONTROL_BACKFACE_ENABLE_MASK) | (backface_enable << RB_DEPTHCONTROL_BACKFACE_ENABLE_SHIFT)
+#define RB_DEPTHCONTROL_SET_STENCILFUNC(rb_depthcontrol_reg, stencilfunc) \
+ rb_depthcontrol_reg = (rb_depthcontrol_reg & ~RB_DEPTHCONTROL_STENCILFUNC_MASK) | (stencilfunc << RB_DEPTHCONTROL_STENCILFUNC_SHIFT)
+#define RB_DEPTHCONTROL_SET_STENCILFAIL(rb_depthcontrol_reg, stencilfail) \
+ rb_depthcontrol_reg = (rb_depthcontrol_reg & ~RB_DEPTHCONTROL_STENCILFAIL_MASK) | (stencilfail << RB_DEPTHCONTROL_STENCILFAIL_SHIFT)
+#define RB_DEPTHCONTROL_SET_STENCILZPASS(rb_depthcontrol_reg, stencilzpass) \
+ rb_depthcontrol_reg = (rb_depthcontrol_reg & ~RB_DEPTHCONTROL_STENCILZPASS_MASK) | (stencilzpass << RB_DEPTHCONTROL_STENCILZPASS_SHIFT)
+#define RB_DEPTHCONTROL_SET_STENCILZFAIL(rb_depthcontrol_reg, stencilzfail) \
+ rb_depthcontrol_reg = (rb_depthcontrol_reg & ~RB_DEPTHCONTROL_STENCILZFAIL_MASK) | (stencilzfail << RB_DEPTHCONTROL_STENCILZFAIL_SHIFT)
+#define RB_DEPTHCONTROL_SET_STENCILFUNC_BF(rb_depthcontrol_reg, stencilfunc_bf) \
+ rb_depthcontrol_reg = (rb_depthcontrol_reg & ~RB_DEPTHCONTROL_STENCILFUNC_BF_MASK) | (stencilfunc_bf << RB_DEPTHCONTROL_STENCILFUNC_BF_SHIFT)
+#define RB_DEPTHCONTROL_SET_STENCILFAIL_BF(rb_depthcontrol_reg, stencilfail_bf) \
+ rb_depthcontrol_reg = (rb_depthcontrol_reg & ~RB_DEPTHCONTROL_STENCILFAIL_BF_MASK) | (stencilfail_bf << RB_DEPTHCONTROL_STENCILFAIL_BF_SHIFT)
+#define RB_DEPTHCONTROL_SET_STENCILZPASS_BF(rb_depthcontrol_reg, stencilzpass_bf) \
+ rb_depthcontrol_reg = (rb_depthcontrol_reg & ~RB_DEPTHCONTROL_STENCILZPASS_BF_MASK) | (stencilzpass_bf << RB_DEPTHCONTROL_STENCILZPASS_BF_SHIFT)
+#define RB_DEPTHCONTROL_SET_STENCILZFAIL_BF(rb_depthcontrol_reg, stencilzfail_bf) \
+ rb_depthcontrol_reg = (rb_depthcontrol_reg & ~RB_DEPTHCONTROL_STENCILZFAIL_BF_MASK) | (stencilzfail_bf << RB_DEPTHCONTROL_STENCILZFAIL_BF_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_depthcontrol_t {
+ unsigned int stencil_enable : RB_DEPTHCONTROL_STENCIL_ENABLE_SIZE;
+ unsigned int z_enable : RB_DEPTHCONTROL_Z_ENABLE_SIZE;
+ unsigned int z_write_enable : RB_DEPTHCONTROL_Z_WRITE_ENABLE_SIZE;
+ unsigned int early_z_enable : RB_DEPTHCONTROL_EARLY_Z_ENABLE_SIZE;
+ unsigned int zfunc : RB_DEPTHCONTROL_ZFUNC_SIZE;
+ unsigned int backface_enable : RB_DEPTHCONTROL_BACKFACE_ENABLE_SIZE;
+ unsigned int stencilfunc : RB_DEPTHCONTROL_STENCILFUNC_SIZE;
+ unsigned int stencilfail : RB_DEPTHCONTROL_STENCILFAIL_SIZE;
+ unsigned int stencilzpass : RB_DEPTHCONTROL_STENCILZPASS_SIZE;
+ unsigned int stencilzfail : RB_DEPTHCONTROL_STENCILZFAIL_SIZE;
+ unsigned int stencilfunc_bf : RB_DEPTHCONTROL_STENCILFUNC_BF_SIZE;
+ unsigned int stencilfail_bf : RB_DEPTHCONTROL_STENCILFAIL_BF_SIZE;
+ unsigned int stencilzpass_bf : RB_DEPTHCONTROL_STENCILZPASS_BF_SIZE;
+ unsigned int stencilzfail_bf : RB_DEPTHCONTROL_STENCILZFAIL_BF_SIZE;
+ } rb_depthcontrol_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_depthcontrol_t {
+ unsigned int stencilzfail_bf : RB_DEPTHCONTROL_STENCILZFAIL_BF_SIZE;
+ unsigned int stencilzpass_bf : RB_DEPTHCONTROL_STENCILZPASS_BF_SIZE;
+ unsigned int stencilfail_bf : RB_DEPTHCONTROL_STENCILFAIL_BF_SIZE;
+ unsigned int stencilfunc_bf : RB_DEPTHCONTROL_STENCILFUNC_BF_SIZE;
+ unsigned int stencilzfail : RB_DEPTHCONTROL_STENCILZFAIL_SIZE;
+ unsigned int stencilzpass : RB_DEPTHCONTROL_STENCILZPASS_SIZE;
+ unsigned int stencilfail : RB_DEPTHCONTROL_STENCILFAIL_SIZE;
+ unsigned int stencilfunc : RB_DEPTHCONTROL_STENCILFUNC_SIZE;
+ unsigned int backface_enable : RB_DEPTHCONTROL_BACKFACE_ENABLE_SIZE;
+ unsigned int zfunc : RB_DEPTHCONTROL_ZFUNC_SIZE;
+ unsigned int early_z_enable : RB_DEPTHCONTROL_EARLY_Z_ENABLE_SIZE;
+ unsigned int z_write_enable : RB_DEPTHCONTROL_Z_WRITE_ENABLE_SIZE;
+ unsigned int z_enable : RB_DEPTHCONTROL_Z_ENABLE_SIZE;
+ unsigned int stencil_enable : RB_DEPTHCONTROL_STENCIL_ENABLE_SIZE;
+ } rb_depthcontrol_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_depthcontrol_t f;
+} rb_depthcontrol_u;
+
+
+/*
+ * RB_BLENDCONTROL struct
+ */
+
+#define RB_BLENDCONTROL_COLOR_SRCBLEND_SIZE 5
+#define RB_BLENDCONTROL_COLOR_COMB_FCN_SIZE 3
+#define RB_BLENDCONTROL_COLOR_DESTBLEND_SIZE 5
+#define RB_BLENDCONTROL_ALPHA_SRCBLEND_SIZE 5
+#define RB_BLENDCONTROL_ALPHA_COMB_FCN_SIZE 3
+#define RB_BLENDCONTROL_ALPHA_DESTBLEND_SIZE 5
+#define RB_BLENDCONTROL_BLEND_FORCE_ENABLE_SIZE 1
+#define RB_BLENDCONTROL_BLEND_FORCE_SIZE 1
+
+#define RB_BLENDCONTROL_COLOR_SRCBLEND_SHIFT 0
+#define RB_BLENDCONTROL_COLOR_COMB_FCN_SHIFT 5
+#define RB_BLENDCONTROL_COLOR_DESTBLEND_SHIFT 8
+#define RB_BLENDCONTROL_ALPHA_SRCBLEND_SHIFT 16
+#define RB_BLENDCONTROL_ALPHA_COMB_FCN_SHIFT 21
+#define RB_BLENDCONTROL_ALPHA_DESTBLEND_SHIFT 24
+#define RB_BLENDCONTROL_BLEND_FORCE_ENABLE_SHIFT 29
+#define RB_BLENDCONTROL_BLEND_FORCE_SHIFT 30
+
+#define RB_BLENDCONTROL_COLOR_SRCBLEND_MASK 0x0000001f
+#define RB_BLENDCONTROL_COLOR_COMB_FCN_MASK 0x000000e0
+#define RB_BLENDCONTROL_COLOR_DESTBLEND_MASK 0x00001f00
+#define RB_BLENDCONTROL_ALPHA_SRCBLEND_MASK 0x001f0000
+#define RB_BLENDCONTROL_ALPHA_COMB_FCN_MASK 0x00e00000
+#define RB_BLENDCONTROL_ALPHA_DESTBLEND_MASK 0x1f000000
+#define RB_BLENDCONTROL_BLEND_FORCE_ENABLE_MASK 0x20000000
+#define RB_BLENDCONTROL_BLEND_FORCE_MASK 0x40000000
+
+#define RB_BLENDCONTROL_MASK \
+ (RB_BLENDCONTROL_COLOR_SRCBLEND_MASK | \
+ RB_BLENDCONTROL_COLOR_COMB_FCN_MASK | \
+ RB_BLENDCONTROL_COLOR_DESTBLEND_MASK | \
+ RB_BLENDCONTROL_ALPHA_SRCBLEND_MASK | \
+ RB_BLENDCONTROL_ALPHA_COMB_FCN_MASK | \
+ RB_BLENDCONTROL_ALPHA_DESTBLEND_MASK | \
+ RB_BLENDCONTROL_BLEND_FORCE_ENABLE_MASK | \
+ RB_BLENDCONTROL_BLEND_FORCE_MASK)
+
+#define RB_BLENDCONTROL(color_srcblend, color_comb_fcn, color_destblend, alpha_srcblend, alpha_comb_fcn, alpha_destblend, blend_force_enable, blend_force) \
+ ((color_srcblend << RB_BLENDCONTROL_COLOR_SRCBLEND_SHIFT) | \
+ (color_comb_fcn << RB_BLENDCONTROL_COLOR_COMB_FCN_SHIFT) | \
+ (color_destblend << RB_BLENDCONTROL_COLOR_DESTBLEND_SHIFT) | \
+ (alpha_srcblend << RB_BLENDCONTROL_ALPHA_SRCBLEND_SHIFT) | \
+ (alpha_comb_fcn << RB_BLENDCONTROL_ALPHA_COMB_FCN_SHIFT) | \
+ (alpha_destblend << RB_BLENDCONTROL_ALPHA_DESTBLEND_SHIFT) | \
+ (blend_force_enable << RB_BLENDCONTROL_BLEND_FORCE_ENABLE_SHIFT) | \
+ (blend_force << RB_BLENDCONTROL_BLEND_FORCE_SHIFT))
+
+#define RB_BLENDCONTROL_GET_COLOR_SRCBLEND(rb_blendcontrol) \
+ ((rb_blendcontrol & RB_BLENDCONTROL_COLOR_SRCBLEND_MASK) >> RB_BLENDCONTROL_COLOR_SRCBLEND_SHIFT)
+#define RB_BLENDCONTROL_GET_COLOR_COMB_FCN(rb_blendcontrol) \
+ ((rb_blendcontrol & RB_BLENDCONTROL_COLOR_COMB_FCN_MASK) >> RB_BLENDCONTROL_COLOR_COMB_FCN_SHIFT)
+#define RB_BLENDCONTROL_GET_COLOR_DESTBLEND(rb_blendcontrol) \
+ ((rb_blendcontrol & RB_BLENDCONTROL_COLOR_DESTBLEND_MASK) >> RB_BLENDCONTROL_COLOR_DESTBLEND_SHIFT)
+#define RB_BLENDCONTROL_GET_ALPHA_SRCBLEND(rb_blendcontrol) \
+ ((rb_blendcontrol & RB_BLENDCONTROL_ALPHA_SRCBLEND_MASK) >> RB_BLENDCONTROL_ALPHA_SRCBLEND_SHIFT)
+#define RB_BLENDCONTROL_GET_ALPHA_COMB_FCN(rb_blendcontrol) \
+ ((rb_blendcontrol & RB_BLENDCONTROL_ALPHA_COMB_FCN_MASK) >> RB_BLENDCONTROL_ALPHA_COMB_FCN_SHIFT)
+#define RB_BLENDCONTROL_GET_ALPHA_DESTBLEND(rb_blendcontrol) \
+ ((rb_blendcontrol & RB_BLENDCONTROL_ALPHA_DESTBLEND_MASK) >> RB_BLENDCONTROL_ALPHA_DESTBLEND_SHIFT)
+#define RB_BLENDCONTROL_GET_BLEND_FORCE_ENABLE(rb_blendcontrol) \
+ ((rb_blendcontrol & RB_BLENDCONTROL_BLEND_FORCE_ENABLE_MASK) >> RB_BLENDCONTROL_BLEND_FORCE_ENABLE_SHIFT)
+#define RB_BLENDCONTROL_GET_BLEND_FORCE(rb_blendcontrol) \
+ ((rb_blendcontrol & RB_BLENDCONTROL_BLEND_FORCE_MASK) >> RB_BLENDCONTROL_BLEND_FORCE_SHIFT)
+
+#define RB_BLENDCONTROL_SET_COLOR_SRCBLEND(rb_blendcontrol_reg, color_srcblend) \
+ rb_blendcontrol_reg = (rb_blendcontrol_reg & ~RB_BLENDCONTROL_COLOR_SRCBLEND_MASK) | (color_srcblend << RB_BLENDCONTROL_COLOR_SRCBLEND_SHIFT)
+#define RB_BLENDCONTROL_SET_COLOR_COMB_FCN(rb_blendcontrol_reg, color_comb_fcn) \
+ rb_blendcontrol_reg = (rb_blendcontrol_reg & ~RB_BLENDCONTROL_COLOR_COMB_FCN_MASK) | (color_comb_fcn << RB_BLENDCONTROL_COLOR_COMB_FCN_SHIFT)
+#define RB_BLENDCONTROL_SET_COLOR_DESTBLEND(rb_blendcontrol_reg, color_destblend) \
+ rb_blendcontrol_reg = (rb_blendcontrol_reg & ~RB_BLENDCONTROL_COLOR_DESTBLEND_MASK) | (color_destblend << RB_BLENDCONTROL_COLOR_DESTBLEND_SHIFT)
+#define RB_BLENDCONTROL_SET_ALPHA_SRCBLEND(rb_blendcontrol_reg, alpha_srcblend) \
+ rb_blendcontrol_reg = (rb_blendcontrol_reg & ~RB_BLENDCONTROL_ALPHA_SRCBLEND_MASK) | (alpha_srcblend << RB_BLENDCONTROL_ALPHA_SRCBLEND_SHIFT)
+#define RB_BLENDCONTROL_SET_ALPHA_COMB_FCN(rb_blendcontrol_reg, alpha_comb_fcn) \
+ rb_blendcontrol_reg = (rb_blendcontrol_reg & ~RB_BLENDCONTROL_ALPHA_COMB_FCN_MASK) | (alpha_comb_fcn << RB_BLENDCONTROL_ALPHA_COMB_FCN_SHIFT)
+#define RB_BLENDCONTROL_SET_ALPHA_DESTBLEND(rb_blendcontrol_reg, alpha_destblend) \
+ rb_blendcontrol_reg = (rb_blendcontrol_reg & ~RB_BLENDCONTROL_ALPHA_DESTBLEND_MASK) | (alpha_destblend << RB_BLENDCONTROL_ALPHA_DESTBLEND_SHIFT)
+#define RB_BLENDCONTROL_SET_BLEND_FORCE_ENABLE(rb_blendcontrol_reg, blend_force_enable) \
+ rb_blendcontrol_reg = (rb_blendcontrol_reg & ~RB_BLENDCONTROL_BLEND_FORCE_ENABLE_MASK) | (blend_force_enable << RB_BLENDCONTROL_BLEND_FORCE_ENABLE_SHIFT)
+#define RB_BLENDCONTROL_SET_BLEND_FORCE(rb_blendcontrol_reg, blend_force) \
+ rb_blendcontrol_reg = (rb_blendcontrol_reg & ~RB_BLENDCONTROL_BLEND_FORCE_MASK) | (blend_force << RB_BLENDCONTROL_BLEND_FORCE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_blendcontrol_t {
+ unsigned int color_srcblend : RB_BLENDCONTROL_COLOR_SRCBLEND_SIZE;
+ unsigned int color_comb_fcn : RB_BLENDCONTROL_COLOR_COMB_FCN_SIZE;
+ unsigned int color_destblend : RB_BLENDCONTROL_COLOR_DESTBLEND_SIZE;
+ unsigned int : 3;
+ unsigned int alpha_srcblend : RB_BLENDCONTROL_ALPHA_SRCBLEND_SIZE;
+ unsigned int alpha_comb_fcn : RB_BLENDCONTROL_ALPHA_COMB_FCN_SIZE;
+ unsigned int alpha_destblend : RB_BLENDCONTROL_ALPHA_DESTBLEND_SIZE;
+ unsigned int blend_force_enable : RB_BLENDCONTROL_BLEND_FORCE_ENABLE_SIZE;
+ unsigned int blend_force : RB_BLENDCONTROL_BLEND_FORCE_SIZE;
+ unsigned int : 1;
+ } rb_blendcontrol_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_blendcontrol_t {
+ unsigned int : 1;
+ unsigned int blend_force : RB_BLENDCONTROL_BLEND_FORCE_SIZE;
+ unsigned int blend_force_enable : RB_BLENDCONTROL_BLEND_FORCE_ENABLE_SIZE;
+ unsigned int alpha_destblend : RB_BLENDCONTROL_ALPHA_DESTBLEND_SIZE;
+ unsigned int alpha_comb_fcn : RB_BLENDCONTROL_ALPHA_COMB_FCN_SIZE;
+ unsigned int alpha_srcblend : RB_BLENDCONTROL_ALPHA_SRCBLEND_SIZE;
+ unsigned int : 3;
+ unsigned int color_destblend : RB_BLENDCONTROL_COLOR_DESTBLEND_SIZE;
+ unsigned int color_comb_fcn : RB_BLENDCONTROL_COLOR_COMB_FCN_SIZE;
+ unsigned int color_srcblend : RB_BLENDCONTROL_COLOR_SRCBLEND_SIZE;
+ } rb_blendcontrol_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_blendcontrol_t f;
+} rb_blendcontrol_u;
+
+
+/*
+ * RB_COLORCONTROL struct
+ */
+
+#define RB_COLORCONTROL_ALPHA_FUNC_SIZE 3
+#define RB_COLORCONTROL_ALPHA_TEST_ENABLE_SIZE 1
+#define RB_COLORCONTROL_ALPHA_TO_MASK_ENABLE_SIZE 1
+#define RB_COLORCONTROL_BLEND_DISABLE_SIZE 1
+#define RB_COLORCONTROL_FOG_ENABLE_SIZE 1
+#define RB_COLORCONTROL_VS_EXPORTS_FOG_SIZE 1
+#define RB_COLORCONTROL_ROP_CODE_SIZE 4
+#define RB_COLORCONTROL_DITHER_MODE_SIZE 2
+#define RB_COLORCONTROL_DITHER_TYPE_SIZE 2
+#define RB_COLORCONTROL_PIXEL_FOG_SIZE 1
+#define RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET0_SIZE 2
+#define RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET1_SIZE 2
+#define RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET2_SIZE 2
+#define RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET3_SIZE 2
+
+#define RB_COLORCONTROL_ALPHA_FUNC_SHIFT 0
+#define RB_COLORCONTROL_ALPHA_TEST_ENABLE_SHIFT 3
+#define RB_COLORCONTROL_ALPHA_TO_MASK_ENABLE_SHIFT 4
+#define RB_COLORCONTROL_BLEND_DISABLE_SHIFT 5
+#define RB_COLORCONTROL_FOG_ENABLE_SHIFT 6
+#define RB_COLORCONTROL_VS_EXPORTS_FOG_SHIFT 7
+#define RB_COLORCONTROL_ROP_CODE_SHIFT 8
+#define RB_COLORCONTROL_DITHER_MODE_SHIFT 12
+#define RB_COLORCONTROL_DITHER_TYPE_SHIFT 14
+#define RB_COLORCONTROL_PIXEL_FOG_SHIFT 16
+#define RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET0_SHIFT 24
+#define RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET1_SHIFT 26
+#define RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET2_SHIFT 28
+#define RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET3_SHIFT 30
+
+#define RB_COLORCONTROL_ALPHA_FUNC_MASK 0x00000007
+#define RB_COLORCONTROL_ALPHA_TEST_ENABLE_MASK 0x00000008
+#define RB_COLORCONTROL_ALPHA_TO_MASK_ENABLE_MASK 0x00000010
+#define RB_COLORCONTROL_BLEND_DISABLE_MASK 0x00000020
+#define RB_COLORCONTROL_FOG_ENABLE_MASK 0x00000040
+#define RB_COLORCONTROL_VS_EXPORTS_FOG_MASK 0x00000080
+#define RB_COLORCONTROL_ROP_CODE_MASK 0x00000f00
+#define RB_COLORCONTROL_DITHER_MODE_MASK 0x00003000
+#define RB_COLORCONTROL_DITHER_TYPE_MASK 0x0000c000
+#define RB_COLORCONTROL_PIXEL_FOG_MASK 0x00010000
+#define RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET0_MASK 0x03000000
+#define RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET1_MASK 0x0c000000
+#define RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET2_MASK 0x30000000
+#define RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET3_MASK 0xc0000000
+
+#define RB_COLORCONTROL_MASK \
+ (RB_COLORCONTROL_ALPHA_FUNC_MASK | \
+ RB_COLORCONTROL_ALPHA_TEST_ENABLE_MASK | \
+ RB_COLORCONTROL_ALPHA_TO_MASK_ENABLE_MASK | \
+ RB_COLORCONTROL_BLEND_DISABLE_MASK | \
+ RB_COLORCONTROL_FOG_ENABLE_MASK | \
+ RB_COLORCONTROL_VS_EXPORTS_FOG_MASK | \
+ RB_COLORCONTROL_ROP_CODE_MASK | \
+ RB_COLORCONTROL_DITHER_MODE_MASK | \
+ RB_COLORCONTROL_DITHER_TYPE_MASK | \
+ RB_COLORCONTROL_PIXEL_FOG_MASK | \
+ RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET0_MASK | \
+ RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET1_MASK | \
+ RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET2_MASK | \
+ RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET3_MASK)
+
+#define RB_COLORCONTROL(alpha_func, alpha_test_enable, alpha_to_mask_enable, blend_disable, fog_enable, vs_exports_fog, rop_code, dither_mode, dither_type, pixel_fog, alpha_to_mask_offset0, alpha_to_mask_offset1, alpha_to_mask_offset2, alpha_to_mask_offset3) \
+ ((alpha_func << RB_COLORCONTROL_ALPHA_FUNC_SHIFT) | \
+ (alpha_test_enable << RB_COLORCONTROL_ALPHA_TEST_ENABLE_SHIFT) | \
+ (alpha_to_mask_enable << RB_COLORCONTROL_ALPHA_TO_MASK_ENABLE_SHIFT) | \
+ (blend_disable << RB_COLORCONTROL_BLEND_DISABLE_SHIFT) | \
+ (fog_enable << RB_COLORCONTROL_FOG_ENABLE_SHIFT) | \
+ (vs_exports_fog << RB_COLORCONTROL_VS_EXPORTS_FOG_SHIFT) | \
+ (rop_code << RB_COLORCONTROL_ROP_CODE_SHIFT) | \
+ (dither_mode << RB_COLORCONTROL_DITHER_MODE_SHIFT) | \
+ (dither_type << RB_COLORCONTROL_DITHER_TYPE_SHIFT) | \
+ (pixel_fog << RB_COLORCONTROL_PIXEL_FOG_SHIFT) | \
+ (alpha_to_mask_offset0 << RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET0_SHIFT) | \
+ (alpha_to_mask_offset1 << RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET1_SHIFT) | \
+ (alpha_to_mask_offset2 << RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET2_SHIFT) | \
+ (alpha_to_mask_offset3 << RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET3_SHIFT))
+
+#define RB_COLORCONTROL_GET_ALPHA_FUNC(rb_colorcontrol) \
+ ((rb_colorcontrol & RB_COLORCONTROL_ALPHA_FUNC_MASK) >> RB_COLORCONTROL_ALPHA_FUNC_SHIFT)
+#define RB_COLORCONTROL_GET_ALPHA_TEST_ENABLE(rb_colorcontrol) \
+ ((rb_colorcontrol & RB_COLORCONTROL_ALPHA_TEST_ENABLE_MASK) >> RB_COLORCONTROL_ALPHA_TEST_ENABLE_SHIFT)
+#define RB_COLORCONTROL_GET_ALPHA_TO_MASK_ENABLE(rb_colorcontrol) \
+ ((rb_colorcontrol & RB_COLORCONTROL_ALPHA_TO_MASK_ENABLE_MASK) >> RB_COLORCONTROL_ALPHA_TO_MASK_ENABLE_SHIFT)
+#define RB_COLORCONTROL_GET_BLEND_DISABLE(rb_colorcontrol) \
+ ((rb_colorcontrol & RB_COLORCONTROL_BLEND_DISABLE_MASK) >> RB_COLORCONTROL_BLEND_DISABLE_SHIFT)
+#define RB_COLORCONTROL_GET_FOG_ENABLE(rb_colorcontrol) \
+ ((rb_colorcontrol & RB_COLORCONTROL_FOG_ENABLE_MASK) >> RB_COLORCONTROL_FOG_ENABLE_SHIFT)
+#define RB_COLORCONTROL_GET_VS_EXPORTS_FOG(rb_colorcontrol) \
+ ((rb_colorcontrol & RB_COLORCONTROL_VS_EXPORTS_FOG_MASK) >> RB_COLORCONTROL_VS_EXPORTS_FOG_SHIFT)
+#define RB_COLORCONTROL_GET_ROP_CODE(rb_colorcontrol) \
+ ((rb_colorcontrol & RB_COLORCONTROL_ROP_CODE_MASK) >> RB_COLORCONTROL_ROP_CODE_SHIFT)
+#define RB_COLORCONTROL_GET_DITHER_MODE(rb_colorcontrol) \
+ ((rb_colorcontrol & RB_COLORCONTROL_DITHER_MODE_MASK) >> RB_COLORCONTROL_DITHER_MODE_SHIFT)
+#define RB_COLORCONTROL_GET_DITHER_TYPE(rb_colorcontrol) \
+ ((rb_colorcontrol & RB_COLORCONTROL_DITHER_TYPE_MASK) >> RB_COLORCONTROL_DITHER_TYPE_SHIFT)
+#define RB_COLORCONTROL_GET_PIXEL_FOG(rb_colorcontrol) \
+ ((rb_colorcontrol & RB_COLORCONTROL_PIXEL_FOG_MASK) >> RB_COLORCONTROL_PIXEL_FOG_SHIFT)
+#define RB_COLORCONTROL_GET_ALPHA_TO_MASK_OFFSET0(rb_colorcontrol) \
+ ((rb_colorcontrol & RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET0_MASK) >> RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET0_SHIFT)
+#define RB_COLORCONTROL_GET_ALPHA_TO_MASK_OFFSET1(rb_colorcontrol) \
+ ((rb_colorcontrol & RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET1_MASK) >> RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET1_SHIFT)
+#define RB_COLORCONTROL_GET_ALPHA_TO_MASK_OFFSET2(rb_colorcontrol) \
+ ((rb_colorcontrol & RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET2_MASK) >> RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET2_SHIFT)
+#define RB_COLORCONTROL_GET_ALPHA_TO_MASK_OFFSET3(rb_colorcontrol) \
+ ((rb_colorcontrol & RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET3_MASK) >> RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET3_SHIFT)
+
+#define RB_COLORCONTROL_SET_ALPHA_FUNC(rb_colorcontrol_reg, alpha_func) \
+ rb_colorcontrol_reg = (rb_colorcontrol_reg & ~RB_COLORCONTROL_ALPHA_FUNC_MASK) | (alpha_func << RB_COLORCONTROL_ALPHA_FUNC_SHIFT)
+#define RB_COLORCONTROL_SET_ALPHA_TEST_ENABLE(rb_colorcontrol_reg, alpha_test_enable) \
+ rb_colorcontrol_reg = (rb_colorcontrol_reg & ~RB_COLORCONTROL_ALPHA_TEST_ENABLE_MASK) | (alpha_test_enable << RB_COLORCONTROL_ALPHA_TEST_ENABLE_SHIFT)
+#define RB_COLORCONTROL_SET_ALPHA_TO_MASK_ENABLE(rb_colorcontrol_reg, alpha_to_mask_enable) \
+ rb_colorcontrol_reg = (rb_colorcontrol_reg & ~RB_COLORCONTROL_ALPHA_TO_MASK_ENABLE_MASK) | (alpha_to_mask_enable << RB_COLORCONTROL_ALPHA_TO_MASK_ENABLE_SHIFT)
+#define RB_COLORCONTROL_SET_BLEND_DISABLE(rb_colorcontrol_reg, blend_disable) \
+ rb_colorcontrol_reg = (rb_colorcontrol_reg & ~RB_COLORCONTROL_BLEND_DISABLE_MASK) | (blend_disable << RB_COLORCONTROL_BLEND_DISABLE_SHIFT)
+#define RB_COLORCONTROL_SET_FOG_ENABLE(rb_colorcontrol_reg, fog_enable) \
+ rb_colorcontrol_reg = (rb_colorcontrol_reg & ~RB_COLORCONTROL_FOG_ENABLE_MASK) | (fog_enable << RB_COLORCONTROL_FOG_ENABLE_SHIFT)
+#define RB_COLORCONTROL_SET_VS_EXPORTS_FOG(rb_colorcontrol_reg, vs_exports_fog) \
+ rb_colorcontrol_reg = (rb_colorcontrol_reg & ~RB_COLORCONTROL_VS_EXPORTS_FOG_MASK) | (vs_exports_fog << RB_COLORCONTROL_VS_EXPORTS_FOG_SHIFT)
+#define RB_COLORCONTROL_SET_ROP_CODE(rb_colorcontrol_reg, rop_code) \
+ rb_colorcontrol_reg = (rb_colorcontrol_reg & ~RB_COLORCONTROL_ROP_CODE_MASK) | (rop_code << RB_COLORCONTROL_ROP_CODE_SHIFT)
+#define RB_COLORCONTROL_SET_DITHER_MODE(rb_colorcontrol_reg, dither_mode) \
+ rb_colorcontrol_reg = (rb_colorcontrol_reg & ~RB_COLORCONTROL_DITHER_MODE_MASK) | (dither_mode << RB_COLORCONTROL_DITHER_MODE_SHIFT)
+#define RB_COLORCONTROL_SET_DITHER_TYPE(rb_colorcontrol_reg, dither_type) \
+ rb_colorcontrol_reg = (rb_colorcontrol_reg & ~RB_COLORCONTROL_DITHER_TYPE_MASK) | (dither_type << RB_COLORCONTROL_DITHER_TYPE_SHIFT)
+#define RB_COLORCONTROL_SET_PIXEL_FOG(rb_colorcontrol_reg, pixel_fog) \
+ rb_colorcontrol_reg = (rb_colorcontrol_reg & ~RB_COLORCONTROL_PIXEL_FOG_MASK) | (pixel_fog << RB_COLORCONTROL_PIXEL_FOG_SHIFT)
+#define RB_COLORCONTROL_SET_ALPHA_TO_MASK_OFFSET0(rb_colorcontrol_reg, alpha_to_mask_offset0) \
+ rb_colorcontrol_reg = (rb_colorcontrol_reg & ~RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET0_MASK) | (alpha_to_mask_offset0 << RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET0_SHIFT)
+#define RB_COLORCONTROL_SET_ALPHA_TO_MASK_OFFSET1(rb_colorcontrol_reg, alpha_to_mask_offset1) \
+ rb_colorcontrol_reg = (rb_colorcontrol_reg & ~RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET1_MASK) | (alpha_to_mask_offset1 << RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET1_SHIFT)
+#define RB_COLORCONTROL_SET_ALPHA_TO_MASK_OFFSET2(rb_colorcontrol_reg, alpha_to_mask_offset2) \
+ rb_colorcontrol_reg = (rb_colorcontrol_reg & ~RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET2_MASK) | (alpha_to_mask_offset2 << RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET2_SHIFT)
+#define RB_COLORCONTROL_SET_ALPHA_TO_MASK_OFFSET3(rb_colorcontrol_reg, alpha_to_mask_offset3) \
+ rb_colorcontrol_reg = (rb_colorcontrol_reg & ~RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET3_MASK) | (alpha_to_mask_offset3 << RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET3_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_colorcontrol_t {
+ unsigned int alpha_func : RB_COLORCONTROL_ALPHA_FUNC_SIZE;
+ unsigned int alpha_test_enable : RB_COLORCONTROL_ALPHA_TEST_ENABLE_SIZE;
+ unsigned int alpha_to_mask_enable : RB_COLORCONTROL_ALPHA_TO_MASK_ENABLE_SIZE;
+ unsigned int blend_disable : RB_COLORCONTROL_BLEND_DISABLE_SIZE;
+ unsigned int fog_enable : RB_COLORCONTROL_FOG_ENABLE_SIZE;
+ unsigned int vs_exports_fog : RB_COLORCONTROL_VS_EXPORTS_FOG_SIZE;
+ unsigned int rop_code : RB_COLORCONTROL_ROP_CODE_SIZE;
+ unsigned int dither_mode : RB_COLORCONTROL_DITHER_MODE_SIZE;
+ unsigned int dither_type : RB_COLORCONTROL_DITHER_TYPE_SIZE;
+ unsigned int pixel_fog : RB_COLORCONTROL_PIXEL_FOG_SIZE;
+ unsigned int : 7;
+ unsigned int alpha_to_mask_offset0 : RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET0_SIZE;
+ unsigned int alpha_to_mask_offset1 : RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET1_SIZE;
+ unsigned int alpha_to_mask_offset2 : RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET2_SIZE;
+ unsigned int alpha_to_mask_offset3 : RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET3_SIZE;
+ } rb_colorcontrol_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_colorcontrol_t {
+ unsigned int alpha_to_mask_offset3 : RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET3_SIZE;
+ unsigned int alpha_to_mask_offset2 : RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET2_SIZE;
+ unsigned int alpha_to_mask_offset1 : RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET1_SIZE;
+ unsigned int alpha_to_mask_offset0 : RB_COLORCONTROL_ALPHA_TO_MASK_OFFSET0_SIZE;
+ unsigned int : 7;
+ unsigned int pixel_fog : RB_COLORCONTROL_PIXEL_FOG_SIZE;
+ unsigned int dither_type : RB_COLORCONTROL_DITHER_TYPE_SIZE;
+ unsigned int dither_mode : RB_COLORCONTROL_DITHER_MODE_SIZE;
+ unsigned int rop_code : RB_COLORCONTROL_ROP_CODE_SIZE;
+ unsigned int vs_exports_fog : RB_COLORCONTROL_VS_EXPORTS_FOG_SIZE;
+ unsigned int fog_enable : RB_COLORCONTROL_FOG_ENABLE_SIZE;
+ unsigned int blend_disable : RB_COLORCONTROL_BLEND_DISABLE_SIZE;
+ unsigned int alpha_to_mask_enable : RB_COLORCONTROL_ALPHA_TO_MASK_ENABLE_SIZE;
+ unsigned int alpha_test_enable : RB_COLORCONTROL_ALPHA_TEST_ENABLE_SIZE;
+ unsigned int alpha_func : RB_COLORCONTROL_ALPHA_FUNC_SIZE;
+ } rb_colorcontrol_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_colorcontrol_t f;
+} rb_colorcontrol_u;
+
+
+/*
+ * RB_MODECONTROL struct
+ */
+
+#define RB_MODECONTROL_EDRAM_MODE_SIZE 3
+
+#define RB_MODECONTROL_EDRAM_MODE_SHIFT 0
+
+#define RB_MODECONTROL_EDRAM_MODE_MASK 0x00000007
+
+#define RB_MODECONTROL_MASK \
+ (RB_MODECONTROL_EDRAM_MODE_MASK)
+
+#define RB_MODECONTROL(edram_mode) \
+ ((edram_mode << RB_MODECONTROL_EDRAM_MODE_SHIFT))
+
+#define RB_MODECONTROL_GET_EDRAM_MODE(rb_modecontrol) \
+ ((rb_modecontrol & RB_MODECONTROL_EDRAM_MODE_MASK) >> RB_MODECONTROL_EDRAM_MODE_SHIFT)
+
+#define RB_MODECONTROL_SET_EDRAM_MODE(rb_modecontrol_reg, edram_mode) \
+ rb_modecontrol_reg = (rb_modecontrol_reg & ~RB_MODECONTROL_EDRAM_MODE_MASK) | (edram_mode << RB_MODECONTROL_EDRAM_MODE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_modecontrol_t {
+ unsigned int edram_mode : RB_MODECONTROL_EDRAM_MODE_SIZE;
+ unsigned int : 29;
+ } rb_modecontrol_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_modecontrol_t {
+ unsigned int : 29;
+ unsigned int edram_mode : RB_MODECONTROL_EDRAM_MODE_SIZE;
+ } rb_modecontrol_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_modecontrol_t f;
+} rb_modecontrol_u;
+
+
+/*
+ * RB_COLOR_DEST_MASK struct
+ */
+
+#define RB_COLOR_DEST_MASK_COLOR_DEST_MASK_SIZE 32
+
+#define RB_COLOR_DEST_MASK_COLOR_DEST_MASK_SHIFT 0
+
+#define RB_COLOR_DEST_MASK_COLOR_DEST_MASK_MASK 0xffffffff
+
+#define RB_COLOR_DEST_MASK_MASK \
+ (RB_COLOR_DEST_MASK_COLOR_DEST_MASK_MASK)
+
+#define RB_COLOR_DEST_MASK(color_dest_mask) \
+ ((color_dest_mask << RB_COLOR_DEST_MASK_COLOR_DEST_MASK_SHIFT))
+
+#define RB_COLOR_DEST_MASK_GET_COLOR_DEST_MASK(rb_color_dest_mask) \
+ ((rb_color_dest_mask & RB_COLOR_DEST_MASK_COLOR_DEST_MASK_MASK) >> RB_COLOR_DEST_MASK_COLOR_DEST_MASK_SHIFT)
+
+#define RB_COLOR_DEST_MASK_SET_COLOR_DEST_MASK(rb_color_dest_mask_reg, color_dest_mask) \
+ rb_color_dest_mask_reg = (rb_color_dest_mask_reg & ~RB_COLOR_DEST_MASK_COLOR_DEST_MASK_MASK) | (color_dest_mask << RB_COLOR_DEST_MASK_COLOR_DEST_MASK_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_color_dest_mask_t {
+ unsigned int color_dest_mask : RB_COLOR_DEST_MASK_COLOR_DEST_MASK_SIZE;
+ } rb_color_dest_mask_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_color_dest_mask_t {
+ unsigned int color_dest_mask : RB_COLOR_DEST_MASK_COLOR_DEST_MASK_SIZE;
+ } rb_color_dest_mask_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_color_dest_mask_t f;
+} rb_color_dest_mask_u;
+
+
+/*
+ * RB_COPY_CONTROL struct
+ */
+
+#define RB_COPY_CONTROL_COPY_SAMPLE_SELECT_SIZE 3
+#define RB_COPY_CONTROL_DEPTH_CLEAR_ENABLE_SIZE 1
+#define RB_COPY_CONTROL_CLEAR_MASK_SIZE 4
+
+#define RB_COPY_CONTROL_COPY_SAMPLE_SELECT_SHIFT 0
+#define RB_COPY_CONTROL_DEPTH_CLEAR_ENABLE_SHIFT 3
+#define RB_COPY_CONTROL_CLEAR_MASK_SHIFT 4
+
+#define RB_COPY_CONTROL_COPY_SAMPLE_SELECT_MASK 0x00000007
+#define RB_COPY_CONTROL_DEPTH_CLEAR_ENABLE_MASK 0x00000008
+#define RB_COPY_CONTROL_CLEAR_MASK_MASK 0x000000f0
+
+#define RB_COPY_CONTROL_MASK \
+ (RB_COPY_CONTROL_COPY_SAMPLE_SELECT_MASK | \
+ RB_COPY_CONTROL_DEPTH_CLEAR_ENABLE_MASK | \
+ RB_COPY_CONTROL_CLEAR_MASK_MASK)
+
+#define RB_COPY_CONTROL(copy_sample_select, depth_clear_enable, clear_mask) \
+ ((copy_sample_select << RB_COPY_CONTROL_COPY_SAMPLE_SELECT_SHIFT) | \
+ (depth_clear_enable << RB_COPY_CONTROL_DEPTH_CLEAR_ENABLE_SHIFT) | \
+ (clear_mask << RB_COPY_CONTROL_CLEAR_MASK_SHIFT))
+
+#define RB_COPY_CONTROL_GET_COPY_SAMPLE_SELECT(rb_copy_control) \
+ ((rb_copy_control & RB_COPY_CONTROL_COPY_SAMPLE_SELECT_MASK) >> RB_COPY_CONTROL_COPY_SAMPLE_SELECT_SHIFT)
+#define RB_COPY_CONTROL_GET_DEPTH_CLEAR_ENABLE(rb_copy_control) \
+ ((rb_copy_control & RB_COPY_CONTROL_DEPTH_CLEAR_ENABLE_MASK) >> RB_COPY_CONTROL_DEPTH_CLEAR_ENABLE_SHIFT)
+#define RB_COPY_CONTROL_GET_CLEAR_MASK(rb_copy_control) \
+ ((rb_copy_control & RB_COPY_CONTROL_CLEAR_MASK_MASK) >> RB_COPY_CONTROL_CLEAR_MASK_SHIFT)
+
+#define RB_COPY_CONTROL_SET_COPY_SAMPLE_SELECT(rb_copy_control_reg, copy_sample_select) \
+ rb_copy_control_reg = (rb_copy_control_reg & ~RB_COPY_CONTROL_COPY_SAMPLE_SELECT_MASK) | (copy_sample_select << RB_COPY_CONTROL_COPY_SAMPLE_SELECT_SHIFT)
+#define RB_COPY_CONTROL_SET_DEPTH_CLEAR_ENABLE(rb_copy_control_reg, depth_clear_enable) \
+ rb_copy_control_reg = (rb_copy_control_reg & ~RB_COPY_CONTROL_DEPTH_CLEAR_ENABLE_MASK) | (depth_clear_enable << RB_COPY_CONTROL_DEPTH_CLEAR_ENABLE_SHIFT)
+#define RB_COPY_CONTROL_SET_CLEAR_MASK(rb_copy_control_reg, clear_mask) \
+ rb_copy_control_reg = (rb_copy_control_reg & ~RB_COPY_CONTROL_CLEAR_MASK_MASK) | (clear_mask << RB_COPY_CONTROL_CLEAR_MASK_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_copy_control_t {
+ unsigned int copy_sample_select : RB_COPY_CONTROL_COPY_SAMPLE_SELECT_SIZE;
+ unsigned int depth_clear_enable : RB_COPY_CONTROL_DEPTH_CLEAR_ENABLE_SIZE;
+ unsigned int clear_mask : RB_COPY_CONTROL_CLEAR_MASK_SIZE;
+ unsigned int : 24;
+ } rb_copy_control_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_copy_control_t {
+ unsigned int : 24;
+ unsigned int clear_mask : RB_COPY_CONTROL_CLEAR_MASK_SIZE;
+ unsigned int depth_clear_enable : RB_COPY_CONTROL_DEPTH_CLEAR_ENABLE_SIZE;
+ unsigned int copy_sample_select : RB_COPY_CONTROL_COPY_SAMPLE_SELECT_SIZE;
+ } rb_copy_control_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_copy_control_t f;
+} rb_copy_control_u;
+
+
+/*
+ * RB_COPY_DEST_BASE struct
+ */
+
+#define RB_COPY_DEST_BASE_COPY_DEST_BASE_SIZE 20
+
+#define RB_COPY_DEST_BASE_COPY_DEST_BASE_SHIFT 12
+
+#define RB_COPY_DEST_BASE_COPY_DEST_BASE_MASK 0xfffff000
+
+#define RB_COPY_DEST_BASE_MASK \
+ (RB_COPY_DEST_BASE_COPY_DEST_BASE_MASK)
+
+#define RB_COPY_DEST_BASE(copy_dest_base) \
+ ((copy_dest_base << RB_COPY_DEST_BASE_COPY_DEST_BASE_SHIFT))
+
+#define RB_COPY_DEST_BASE_GET_COPY_DEST_BASE(rb_copy_dest_base) \
+ ((rb_copy_dest_base & RB_COPY_DEST_BASE_COPY_DEST_BASE_MASK) >> RB_COPY_DEST_BASE_COPY_DEST_BASE_SHIFT)
+
+#define RB_COPY_DEST_BASE_SET_COPY_DEST_BASE(rb_copy_dest_base_reg, copy_dest_base) \
+ rb_copy_dest_base_reg = (rb_copy_dest_base_reg & ~RB_COPY_DEST_BASE_COPY_DEST_BASE_MASK) | (copy_dest_base << RB_COPY_DEST_BASE_COPY_DEST_BASE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_copy_dest_base_t {
+ unsigned int : 12;
+ unsigned int copy_dest_base : RB_COPY_DEST_BASE_COPY_DEST_BASE_SIZE;
+ } rb_copy_dest_base_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_copy_dest_base_t {
+ unsigned int copy_dest_base : RB_COPY_DEST_BASE_COPY_DEST_BASE_SIZE;
+ unsigned int : 12;
+ } rb_copy_dest_base_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_copy_dest_base_t f;
+} rb_copy_dest_base_u;
+
+
+/*
+ * RB_COPY_DEST_PITCH struct
+ */
+
+#define RB_COPY_DEST_PITCH_COPY_DEST_PITCH_SIZE 9
+
+#define RB_COPY_DEST_PITCH_COPY_DEST_PITCH_SHIFT 0
+
+#define RB_COPY_DEST_PITCH_COPY_DEST_PITCH_MASK 0x000001ff
+
+#define RB_COPY_DEST_PITCH_MASK \
+ (RB_COPY_DEST_PITCH_COPY_DEST_PITCH_MASK)
+
+#define RB_COPY_DEST_PITCH(copy_dest_pitch) \
+ ((copy_dest_pitch << RB_COPY_DEST_PITCH_COPY_DEST_PITCH_SHIFT))
+
+#define RB_COPY_DEST_PITCH_GET_COPY_DEST_PITCH(rb_copy_dest_pitch) \
+ ((rb_copy_dest_pitch & RB_COPY_DEST_PITCH_COPY_DEST_PITCH_MASK) >> RB_COPY_DEST_PITCH_COPY_DEST_PITCH_SHIFT)
+
+#define RB_COPY_DEST_PITCH_SET_COPY_DEST_PITCH(rb_copy_dest_pitch_reg, copy_dest_pitch) \
+ rb_copy_dest_pitch_reg = (rb_copy_dest_pitch_reg & ~RB_COPY_DEST_PITCH_COPY_DEST_PITCH_MASK) | (copy_dest_pitch << RB_COPY_DEST_PITCH_COPY_DEST_PITCH_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_copy_dest_pitch_t {
+ unsigned int copy_dest_pitch : RB_COPY_DEST_PITCH_COPY_DEST_PITCH_SIZE;
+ unsigned int : 23;
+ } rb_copy_dest_pitch_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_copy_dest_pitch_t {
+ unsigned int : 23;
+ unsigned int copy_dest_pitch : RB_COPY_DEST_PITCH_COPY_DEST_PITCH_SIZE;
+ } rb_copy_dest_pitch_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_copy_dest_pitch_t f;
+} rb_copy_dest_pitch_u;
+
+
+/*
+ * RB_COPY_DEST_INFO struct
+ */
+
+#define RB_COPY_DEST_INFO_COPY_DEST_ENDIAN_SIZE 3
+#define RB_COPY_DEST_INFO_COPY_DEST_LINEAR_SIZE 1
+#define RB_COPY_DEST_INFO_COPY_DEST_FORMAT_SIZE 4
+#define RB_COPY_DEST_INFO_COPY_DEST_SWAP_SIZE 2
+#define RB_COPY_DEST_INFO_COPY_DEST_DITHER_MODE_SIZE 2
+#define RB_COPY_DEST_INFO_COPY_DEST_DITHER_TYPE_SIZE 2
+#define RB_COPY_DEST_INFO_COPY_MASK_WRITE_RED_SIZE 1
+#define RB_COPY_DEST_INFO_COPY_MASK_WRITE_GREEN_SIZE 1
+#define RB_COPY_DEST_INFO_COPY_MASK_WRITE_BLUE_SIZE 1
+#define RB_COPY_DEST_INFO_COPY_MASK_WRITE_ALPHA_SIZE 1
+
+#define RB_COPY_DEST_INFO_COPY_DEST_ENDIAN_SHIFT 0
+#define RB_COPY_DEST_INFO_COPY_DEST_LINEAR_SHIFT 3
+#define RB_COPY_DEST_INFO_COPY_DEST_FORMAT_SHIFT 4
+#define RB_COPY_DEST_INFO_COPY_DEST_SWAP_SHIFT 8
+#define RB_COPY_DEST_INFO_COPY_DEST_DITHER_MODE_SHIFT 10
+#define RB_COPY_DEST_INFO_COPY_DEST_DITHER_TYPE_SHIFT 12
+#define RB_COPY_DEST_INFO_COPY_MASK_WRITE_RED_SHIFT 14
+#define RB_COPY_DEST_INFO_COPY_MASK_WRITE_GREEN_SHIFT 15
+#define RB_COPY_DEST_INFO_COPY_MASK_WRITE_BLUE_SHIFT 16
+#define RB_COPY_DEST_INFO_COPY_MASK_WRITE_ALPHA_SHIFT 17
+
+#define RB_COPY_DEST_INFO_COPY_DEST_ENDIAN_MASK 0x00000007
+#define RB_COPY_DEST_INFO_COPY_DEST_LINEAR_MASK 0x00000008
+#define RB_COPY_DEST_INFO_COPY_DEST_FORMAT_MASK 0x000000f0
+#define RB_COPY_DEST_INFO_COPY_DEST_SWAP_MASK 0x00000300
+#define RB_COPY_DEST_INFO_COPY_DEST_DITHER_MODE_MASK 0x00000c00
+#define RB_COPY_DEST_INFO_COPY_DEST_DITHER_TYPE_MASK 0x00003000
+#define RB_COPY_DEST_INFO_COPY_MASK_WRITE_RED_MASK 0x00004000
+#define RB_COPY_DEST_INFO_COPY_MASK_WRITE_GREEN_MASK 0x00008000
+#define RB_COPY_DEST_INFO_COPY_MASK_WRITE_BLUE_MASK 0x00010000
+#define RB_COPY_DEST_INFO_COPY_MASK_WRITE_ALPHA_MASK 0x00020000
+
+#define RB_COPY_DEST_INFO_MASK \
+ (RB_COPY_DEST_INFO_COPY_DEST_ENDIAN_MASK | \
+ RB_COPY_DEST_INFO_COPY_DEST_LINEAR_MASK | \
+ RB_COPY_DEST_INFO_COPY_DEST_FORMAT_MASK | \
+ RB_COPY_DEST_INFO_COPY_DEST_SWAP_MASK | \
+ RB_COPY_DEST_INFO_COPY_DEST_DITHER_MODE_MASK | \
+ RB_COPY_DEST_INFO_COPY_DEST_DITHER_TYPE_MASK | \
+ RB_COPY_DEST_INFO_COPY_MASK_WRITE_RED_MASK | \
+ RB_COPY_DEST_INFO_COPY_MASK_WRITE_GREEN_MASK | \
+ RB_COPY_DEST_INFO_COPY_MASK_WRITE_BLUE_MASK | \
+ RB_COPY_DEST_INFO_COPY_MASK_WRITE_ALPHA_MASK)
+
+#define RB_COPY_DEST_INFO(copy_dest_endian, copy_dest_linear, copy_dest_format, copy_dest_swap, copy_dest_dither_mode, copy_dest_dither_type, copy_mask_write_red, copy_mask_write_green, copy_mask_write_blue, copy_mask_write_alpha) \
+ ((copy_dest_endian << RB_COPY_DEST_INFO_COPY_DEST_ENDIAN_SHIFT) | \
+ (copy_dest_linear << RB_COPY_DEST_INFO_COPY_DEST_LINEAR_SHIFT) | \
+ (copy_dest_format << RB_COPY_DEST_INFO_COPY_DEST_FORMAT_SHIFT) | \
+ (copy_dest_swap << RB_COPY_DEST_INFO_COPY_DEST_SWAP_SHIFT) | \
+ (copy_dest_dither_mode << RB_COPY_DEST_INFO_COPY_DEST_DITHER_MODE_SHIFT) | \
+ (copy_dest_dither_type << RB_COPY_DEST_INFO_COPY_DEST_DITHER_TYPE_SHIFT) | \
+ (copy_mask_write_red << RB_COPY_DEST_INFO_COPY_MASK_WRITE_RED_SHIFT) | \
+ (copy_mask_write_green << RB_COPY_DEST_INFO_COPY_MASK_WRITE_GREEN_SHIFT) | \
+ (copy_mask_write_blue << RB_COPY_DEST_INFO_COPY_MASK_WRITE_BLUE_SHIFT) | \
+ (copy_mask_write_alpha << RB_COPY_DEST_INFO_COPY_MASK_WRITE_ALPHA_SHIFT))
+
+#define RB_COPY_DEST_INFO_GET_COPY_DEST_ENDIAN(rb_copy_dest_info) \
+ ((rb_copy_dest_info & RB_COPY_DEST_INFO_COPY_DEST_ENDIAN_MASK) >> RB_COPY_DEST_INFO_COPY_DEST_ENDIAN_SHIFT)
+#define RB_COPY_DEST_INFO_GET_COPY_DEST_LINEAR(rb_copy_dest_info) \
+ ((rb_copy_dest_info & RB_COPY_DEST_INFO_COPY_DEST_LINEAR_MASK) >> RB_COPY_DEST_INFO_COPY_DEST_LINEAR_SHIFT)
+#define RB_COPY_DEST_INFO_GET_COPY_DEST_FORMAT(rb_copy_dest_info) \
+ ((rb_copy_dest_info & RB_COPY_DEST_INFO_COPY_DEST_FORMAT_MASK) >> RB_COPY_DEST_INFO_COPY_DEST_FORMAT_SHIFT)
+#define RB_COPY_DEST_INFO_GET_COPY_DEST_SWAP(rb_copy_dest_info) \
+ ((rb_copy_dest_info & RB_COPY_DEST_INFO_COPY_DEST_SWAP_MASK) >> RB_COPY_DEST_INFO_COPY_DEST_SWAP_SHIFT)
+#define RB_COPY_DEST_INFO_GET_COPY_DEST_DITHER_MODE(rb_copy_dest_info) \
+ ((rb_copy_dest_info & RB_COPY_DEST_INFO_COPY_DEST_DITHER_MODE_MASK) >> RB_COPY_DEST_INFO_COPY_DEST_DITHER_MODE_SHIFT)
+#define RB_COPY_DEST_INFO_GET_COPY_DEST_DITHER_TYPE(rb_copy_dest_info) \
+ ((rb_copy_dest_info & RB_COPY_DEST_INFO_COPY_DEST_DITHER_TYPE_MASK) >> RB_COPY_DEST_INFO_COPY_DEST_DITHER_TYPE_SHIFT)
+#define RB_COPY_DEST_INFO_GET_COPY_MASK_WRITE_RED(rb_copy_dest_info) \
+ ((rb_copy_dest_info & RB_COPY_DEST_INFO_COPY_MASK_WRITE_RED_MASK) >> RB_COPY_DEST_INFO_COPY_MASK_WRITE_RED_SHIFT)
+#define RB_COPY_DEST_INFO_GET_COPY_MASK_WRITE_GREEN(rb_copy_dest_info) \
+ ((rb_copy_dest_info & RB_COPY_DEST_INFO_COPY_MASK_WRITE_GREEN_MASK) >> RB_COPY_DEST_INFO_COPY_MASK_WRITE_GREEN_SHIFT)
+#define RB_COPY_DEST_INFO_GET_COPY_MASK_WRITE_BLUE(rb_copy_dest_info) \
+ ((rb_copy_dest_info & RB_COPY_DEST_INFO_COPY_MASK_WRITE_BLUE_MASK) >> RB_COPY_DEST_INFO_COPY_MASK_WRITE_BLUE_SHIFT)
+#define RB_COPY_DEST_INFO_GET_COPY_MASK_WRITE_ALPHA(rb_copy_dest_info) \
+ ((rb_copy_dest_info & RB_COPY_DEST_INFO_COPY_MASK_WRITE_ALPHA_MASK) >> RB_COPY_DEST_INFO_COPY_MASK_WRITE_ALPHA_SHIFT)
+
+#define RB_COPY_DEST_INFO_SET_COPY_DEST_ENDIAN(rb_copy_dest_info_reg, copy_dest_endian) \
+ rb_copy_dest_info_reg = (rb_copy_dest_info_reg & ~RB_COPY_DEST_INFO_COPY_DEST_ENDIAN_MASK) | (copy_dest_endian << RB_COPY_DEST_INFO_COPY_DEST_ENDIAN_SHIFT)
+#define RB_COPY_DEST_INFO_SET_COPY_DEST_LINEAR(rb_copy_dest_info_reg, copy_dest_linear) \
+ rb_copy_dest_info_reg = (rb_copy_dest_info_reg & ~RB_COPY_DEST_INFO_COPY_DEST_LINEAR_MASK) | (copy_dest_linear << RB_COPY_DEST_INFO_COPY_DEST_LINEAR_SHIFT)
+#define RB_COPY_DEST_INFO_SET_COPY_DEST_FORMAT(rb_copy_dest_info_reg, copy_dest_format) \
+ rb_copy_dest_info_reg = (rb_copy_dest_info_reg & ~RB_COPY_DEST_INFO_COPY_DEST_FORMAT_MASK) | (copy_dest_format << RB_COPY_DEST_INFO_COPY_DEST_FORMAT_SHIFT)
+#define RB_COPY_DEST_INFO_SET_COPY_DEST_SWAP(rb_copy_dest_info_reg, copy_dest_swap) \
+ rb_copy_dest_info_reg = (rb_copy_dest_info_reg & ~RB_COPY_DEST_INFO_COPY_DEST_SWAP_MASK) | (copy_dest_swap << RB_COPY_DEST_INFO_COPY_DEST_SWAP_SHIFT)
+#define RB_COPY_DEST_INFO_SET_COPY_DEST_DITHER_MODE(rb_copy_dest_info_reg, copy_dest_dither_mode) \
+ rb_copy_dest_info_reg = (rb_copy_dest_info_reg & ~RB_COPY_DEST_INFO_COPY_DEST_DITHER_MODE_MASK) | (copy_dest_dither_mode << RB_COPY_DEST_INFO_COPY_DEST_DITHER_MODE_SHIFT)
+#define RB_COPY_DEST_INFO_SET_COPY_DEST_DITHER_TYPE(rb_copy_dest_info_reg, copy_dest_dither_type) \
+ rb_copy_dest_info_reg = (rb_copy_dest_info_reg & ~RB_COPY_DEST_INFO_COPY_DEST_DITHER_TYPE_MASK) | (copy_dest_dither_type << RB_COPY_DEST_INFO_COPY_DEST_DITHER_TYPE_SHIFT)
+#define RB_COPY_DEST_INFO_SET_COPY_MASK_WRITE_RED(rb_copy_dest_info_reg, copy_mask_write_red) \
+ rb_copy_dest_info_reg = (rb_copy_dest_info_reg & ~RB_COPY_DEST_INFO_COPY_MASK_WRITE_RED_MASK) | (copy_mask_write_red << RB_COPY_DEST_INFO_COPY_MASK_WRITE_RED_SHIFT)
+#define RB_COPY_DEST_INFO_SET_COPY_MASK_WRITE_GREEN(rb_copy_dest_info_reg, copy_mask_write_green) \
+ rb_copy_dest_info_reg = (rb_copy_dest_info_reg & ~RB_COPY_DEST_INFO_COPY_MASK_WRITE_GREEN_MASK) | (copy_mask_write_green << RB_COPY_DEST_INFO_COPY_MASK_WRITE_GREEN_SHIFT)
+#define RB_COPY_DEST_INFO_SET_COPY_MASK_WRITE_BLUE(rb_copy_dest_info_reg, copy_mask_write_blue) \
+ rb_copy_dest_info_reg = (rb_copy_dest_info_reg & ~RB_COPY_DEST_INFO_COPY_MASK_WRITE_BLUE_MASK) | (copy_mask_write_blue << RB_COPY_DEST_INFO_COPY_MASK_WRITE_BLUE_SHIFT)
+#define RB_COPY_DEST_INFO_SET_COPY_MASK_WRITE_ALPHA(rb_copy_dest_info_reg, copy_mask_write_alpha) \
+ rb_copy_dest_info_reg = (rb_copy_dest_info_reg & ~RB_COPY_DEST_INFO_COPY_MASK_WRITE_ALPHA_MASK) | (copy_mask_write_alpha << RB_COPY_DEST_INFO_COPY_MASK_WRITE_ALPHA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_copy_dest_info_t {
+ unsigned int copy_dest_endian : RB_COPY_DEST_INFO_COPY_DEST_ENDIAN_SIZE;
+ unsigned int copy_dest_linear : RB_COPY_DEST_INFO_COPY_DEST_LINEAR_SIZE;
+ unsigned int copy_dest_format : RB_COPY_DEST_INFO_COPY_DEST_FORMAT_SIZE;
+ unsigned int copy_dest_swap : RB_COPY_DEST_INFO_COPY_DEST_SWAP_SIZE;
+ unsigned int copy_dest_dither_mode : RB_COPY_DEST_INFO_COPY_DEST_DITHER_MODE_SIZE;
+ unsigned int copy_dest_dither_type : RB_COPY_DEST_INFO_COPY_DEST_DITHER_TYPE_SIZE;
+ unsigned int copy_mask_write_red : RB_COPY_DEST_INFO_COPY_MASK_WRITE_RED_SIZE;
+ unsigned int copy_mask_write_green : RB_COPY_DEST_INFO_COPY_MASK_WRITE_GREEN_SIZE;
+ unsigned int copy_mask_write_blue : RB_COPY_DEST_INFO_COPY_MASK_WRITE_BLUE_SIZE;
+ unsigned int copy_mask_write_alpha : RB_COPY_DEST_INFO_COPY_MASK_WRITE_ALPHA_SIZE;
+ unsigned int : 14;
+ } rb_copy_dest_info_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_copy_dest_info_t {
+ unsigned int : 14;
+ unsigned int copy_mask_write_alpha : RB_COPY_DEST_INFO_COPY_MASK_WRITE_ALPHA_SIZE;
+ unsigned int copy_mask_write_blue : RB_COPY_DEST_INFO_COPY_MASK_WRITE_BLUE_SIZE;
+ unsigned int copy_mask_write_green : RB_COPY_DEST_INFO_COPY_MASK_WRITE_GREEN_SIZE;
+ unsigned int copy_mask_write_red : RB_COPY_DEST_INFO_COPY_MASK_WRITE_RED_SIZE;
+ unsigned int copy_dest_dither_type : RB_COPY_DEST_INFO_COPY_DEST_DITHER_TYPE_SIZE;
+ unsigned int copy_dest_dither_mode : RB_COPY_DEST_INFO_COPY_DEST_DITHER_MODE_SIZE;
+ unsigned int copy_dest_swap : RB_COPY_DEST_INFO_COPY_DEST_SWAP_SIZE;
+ unsigned int copy_dest_format : RB_COPY_DEST_INFO_COPY_DEST_FORMAT_SIZE;
+ unsigned int copy_dest_linear : RB_COPY_DEST_INFO_COPY_DEST_LINEAR_SIZE;
+ unsigned int copy_dest_endian : RB_COPY_DEST_INFO_COPY_DEST_ENDIAN_SIZE;
+ } rb_copy_dest_info_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_copy_dest_info_t f;
+} rb_copy_dest_info_u;
+
+
+/*
+ * RB_COPY_DEST_PIXEL_OFFSET struct
+ */
+
+#define RB_COPY_DEST_PIXEL_OFFSET_OFFSET_X_SIZE 13
+#define RB_COPY_DEST_PIXEL_OFFSET_OFFSET_Y_SIZE 13
+
+#define RB_COPY_DEST_PIXEL_OFFSET_OFFSET_X_SHIFT 0
+#define RB_COPY_DEST_PIXEL_OFFSET_OFFSET_Y_SHIFT 13
+
+#define RB_COPY_DEST_PIXEL_OFFSET_OFFSET_X_MASK 0x00001fff
+#define RB_COPY_DEST_PIXEL_OFFSET_OFFSET_Y_MASK 0x03ffe000
+
+#define RB_COPY_DEST_PIXEL_OFFSET_MASK \
+ (RB_COPY_DEST_PIXEL_OFFSET_OFFSET_X_MASK | \
+ RB_COPY_DEST_PIXEL_OFFSET_OFFSET_Y_MASK)
+
+#define RB_COPY_DEST_PIXEL_OFFSET(offset_x, offset_y) \
+ ((offset_x << RB_COPY_DEST_PIXEL_OFFSET_OFFSET_X_SHIFT) | \
+ (offset_y << RB_COPY_DEST_PIXEL_OFFSET_OFFSET_Y_SHIFT))
+
+#define RB_COPY_DEST_PIXEL_OFFSET_GET_OFFSET_X(rb_copy_dest_pixel_offset) \
+ ((rb_copy_dest_pixel_offset & RB_COPY_DEST_PIXEL_OFFSET_OFFSET_X_MASK) >> RB_COPY_DEST_PIXEL_OFFSET_OFFSET_X_SHIFT)
+#define RB_COPY_DEST_PIXEL_OFFSET_GET_OFFSET_Y(rb_copy_dest_pixel_offset) \
+ ((rb_copy_dest_pixel_offset & RB_COPY_DEST_PIXEL_OFFSET_OFFSET_Y_MASK) >> RB_COPY_DEST_PIXEL_OFFSET_OFFSET_Y_SHIFT)
+
+#define RB_COPY_DEST_PIXEL_OFFSET_SET_OFFSET_X(rb_copy_dest_pixel_offset_reg, offset_x) \
+ rb_copy_dest_pixel_offset_reg = (rb_copy_dest_pixel_offset_reg & ~RB_COPY_DEST_PIXEL_OFFSET_OFFSET_X_MASK) | (offset_x << RB_COPY_DEST_PIXEL_OFFSET_OFFSET_X_SHIFT)
+#define RB_COPY_DEST_PIXEL_OFFSET_SET_OFFSET_Y(rb_copy_dest_pixel_offset_reg, offset_y) \
+ rb_copy_dest_pixel_offset_reg = (rb_copy_dest_pixel_offset_reg & ~RB_COPY_DEST_PIXEL_OFFSET_OFFSET_Y_MASK) | (offset_y << RB_COPY_DEST_PIXEL_OFFSET_OFFSET_Y_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_copy_dest_pixel_offset_t {
+ unsigned int offset_x : RB_COPY_DEST_PIXEL_OFFSET_OFFSET_X_SIZE;
+ unsigned int offset_y : RB_COPY_DEST_PIXEL_OFFSET_OFFSET_Y_SIZE;
+ unsigned int : 6;
+ } rb_copy_dest_pixel_offset_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_copy_dest_pixel_offset_t {
+ unsigned int : 6;
+ unsigned int offset_y : RB_COPY_DEST_PIXEL_OFFSET_OFFSET_Y_SIZE;
+ unsigned int offset_x : RB_COPY_DEST_PIXEL_OFFSET_OFFSET_X_SIZE;
+ } rb_copy_dest_pixel_offset_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_copy_dest_pixel_offset_t f;
+} rb_copy_dest_pixel_offset_u;
+
+
+/*
+ * RB_DEPTH_CLEAR struct
+ */
+
+#define RB_DEPTH_CLEAR_DEPTH_CLEAR_SIZE 32
+
+#define RB_DEPTH_CLEAR_DEPTH_CLEAR_SHIFT 0
+
+#define RB_DEPTH_CLEAR_DEPTH_CLEAR_MASK 0xffffffff
+
+#define RB_DEPTH_CLEAR_MASK \
+ (RB_DEPTH_CLEAR_DEPTH_CLEAR_MASK)
+
+#define RB_DEPTH_CLEAR(depth_clear) \
+ ((depth_clear << RB_DEPTH_CLEAR_DEPTH_CLEAR_SHIFT))
+
+#define RB_DEPTH_CLEAR_GET_DEPTH_CLEAR(rb_depth_clear) \
+ ((rb_depth_clear & RB_DEPTH_CLEAR_DEPTH_CLEAR_MASK) >> RB_DEPTH_CLEAR_DEPTH_CLEAR_SHIFT)
+
+#define RB_DEPTH_CLEAR_SET_DEPTH_CLEAR(rb_depth_clear_reg, depth_clear) \
+ rb_depth_clear_reg = (rb_depth_clear_reg & ~RB_DEPTH_CLEAR_DEPTH_CLEAR_MASK) | (depth_clear << RB_DEPTH_CLEAR_DEPTH_CLEAR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_depth_clear_t {
+ unsigned int depth_clear : RB_DEPTH_CLEAR_DEPTH_CLEAR_SIZE;
+ } rb_depth_clear_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_depth_clear_t {
+ unsigned int depth_clear : RB_DEPTH_CLEAR_DEPTH_CLEAR_SIZE;
+ } rb_depth_clear_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_depth_clear_t f;
+} rb_depth_clear_u;
+
+
+/*
+ * RB_SAMPLE_COUNT_CTL struct
+ */
+
+#define RB_SAMPLE_COUNT_CTL_RESET_SAMPLE_COUNT_SIZE 1
+#define RB_SAMPLE_COUNT_CTL_COPY_SAMPLE_COUNT_SIZE 1
+
+#define RB_SAMPLE_COUNT_CTL_RESET_SAMPLE_COUNT_SHIFT 0
+#define RB_SAMPLE_COUNT_CTL_COPY_SAMPLE_COUNT_SHIFT 1
+
+#define RB_SAMPLE_COUNT_CTL_RESET_SAMPLE_COUNT_MASK 0x00000001
+#define RB_SAMPLE_COUNT_CTL_COPY_SAMPLE_COUNT_MASK 0x00000002
+
+#define RB_SAMPLE_COUNT_CTL_MASK \
+ (RB_SAMPLE_COUNT_CTL_RESET_SAMPLE_COUNT_MASK | \
+ RB_SAMPLE_COUNT_CTL_COPY_SAMPLE_COUNT_MASK)
+
+#define RB_SAMPLE_COUNT_CTL(reset_sample_count, copy_sample_count) \
+ ((reset_sample_count << RB_SAMPLE_COUNT_CTL_RESET_SAMPLE_COUNT_SHIFT) | \
+ (copy_sample_count << RB_SAMPLE_COUNT_CTL_COPY_SAMPLE_COUNT_SHIFT))
+
+#define RB_SAMPLE_COUNT_CTL_GET_RESET_SAMPLE_COUNT(rb_sample_count_ctl) \
+ ((rb_sample_count_ctl & RB_SAMPLE_COUNT_CTL_RESET_SAMPLE_COUNT_MASK) >> RB_SAMPLE_COUNT_CTL_RESET_SAMPLE_COUNT_SHIFT)
+#define RB_SAMPLE_COUNT_CTL_GET_COPY_SAMPLE_COUNT(rb_sample_count_ctl) \
+ ((rb_sample_count_ctl & RB_SAMPLE_COUNT_CTL_COPY_SAMPLE_COUNT_MASK) >> RB_SAMPLE_COUNT_CTL_COPY_SAMPLE_COUNT_SHIFT)
+
+#define RB_SAMPLE_COUNT_CTL_SET_RESET_SAMPLE_COUNT(rb_sample_count_ctl_reg, reset_sample_count) \
+ rb_sample_count_ctl_reg = (rb_sample_count_ctl_reg & ~RB_SAMPLE_COUNT_CTL_RESET_SAMPLE_COUNT_MASK) | (reset_sample_count << RB_SAMPLE_COUNT_CTL_RESET_SAMPLE_COUNT_SHIFT)
+#define RB_SAMPLE_COUNT_CTL_SET_COPY_SAMPLE_COUNT(rb_sample_count_ctl_reg, copy_sample_count) \
+ rb_sample_count_ctl_reg = (rb_sample_count_ctl_reg & ~RB_SAMPLE_COUNT_CTL_COPY_SAMPLE_COUNT_MASK) | (copy_sample_count << RB_SAMPLE_COUNT_CTL_COPY_SAMPLE_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_sample_count_ctl_t {
+ unsigned int reset_sample_count : RB_SAMPLE_COUNT_CTL_RESET_SAMPLE_COUNT_SIZE;
+ unsigned int copy_sample_count : RB_SAMPLE_COUNT_CTL_COPY_SAMPLE_COUNT_SIZE;
+ unsigned int : 30;
+ } rb_sample_count_ctl_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_sample_count_ctl_t {
+ unsigned int : 30;
+ unsigned int copy_sample_count : RB_SAMPLE_COUNT_CTL_COPY_SAMPLE_COUNT_SIZE;
+ unsigned int reset_sample_count : RB_SAMPLE_COUNT_CTL_RESET_SAMPLE_COUNT_SIZE;
+ } rb_sample_count_ctl_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_sample_count_ctl_t f;
+} rb_sample_count_ctl_u;
+
+
+/*
+ * RB_SAMPLE_COUNT_ADDR struct
+ */
+
+#define RB_SAMPLE_COUNT_ADDR_SAMPLE_COUNT_ADDR_SIZE 32
+
+#define RB_SAMPLE_COUNT_ADDR_SAMPLE_COUNT_ADDR_SHIFT 0
+
+#define RB_SAMPLE_COUNT_ADDR_SAMPLE_COUNT_ADDR_MASK 0xffffffff
+
+#define RB_SAMPLE_COUNT_ADDR_MASK \
+ (RB_SAMPLE_COUNT_ADDR_SAMPLE_COUNT_ADDR_MASK)
+
+#define RB_SAMPLE_COUNT_ADDR(sample_count_addr) \
+ ((sample_count_addr << RB_SAMPLE_COUNT_ADDR_SAMPLE_COUNT_ADDR_SHIFT))
+
+#define RB_SAMPLE_COUNT_ADDR_GET_SAMPLE_COUNT_ADDR(rb_sample_count_addr) \
+ ((rb_sample_count_addr & RB_SAMPLE_COUNT_ADDR_SAMPLE_COUNT_ADDR_MASK) >> RB_SAMPLE_COUNT_ADDR_SAMPLE_COUNT_ADDR_SHIFT)
+
+#define RB_SAMPLE_COUNT_ADDR_SET_SAMPLE_COUNT_ADDR(rb_sample_count_addr_reg, sample_count_addr) \
+ rb_sample_count_addr_reg = (rb_sample_count_addr_reg & ~RB_SAMPLE_COUNT_ADDR_SAMPLE_COUNT_ADDR_MASK) | (sample_count_addr << RB_SAMPLE_COUNT_ADDR_SAMPLE_COUNT_ADDR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_sample_count_addr_t {
+ unsigned int sample_count_addr : RB_SAMPLE_COUNT_ADDR_SAMPLE_COUNT_ADDR_SIZE;
+ } rb_sample_count_addr_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_sample_count_addr_t {
+ unsigned int sample_count_addr : RB_SAMPLE_COUNT_ADDR_SAMPLE_COUNT_ADDR_SIZE;
+ } rb_sample_count_addr_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_sample_count_addr_t f;
+} rb_sample_count_addr_u;
+
+
+/*
+ * RB_BC_CONTROL struct
+ */
+
+#define RB_BC_CONTROL_ACCUM_LINEAR_MODE_ENABLE_SIZE 1
+#define RB_BC_CONTROL_ACCUM_TIMEOUT_SELECT_SIZE 2
+#define RB_BC_CONTROL_DISABLE_EDRAM_CAM_SIZE 1
+#define RB_BC_CONTROL_DISABLE_EZ_FAST_CONTEXT_SWITCH_SIZE 1
+#define RB_BC_CONTROL_DISABLE_EZ_NULL_ZCMD_DROP_SIZE 1
+#define RB_BC_CONTROL_DISABLE_LZ_NULL_ZCMD_DROP_SIZE 1
+#define RB_BC_CONTROL_ENABLE_AZ_THROTTLE_SIZE 1
+#define RB_BC_CONTROL_AZ_THROTTLE_COUNT_SIZE 5
+#define RB_BC_CONTROL_ENABLE_CRC_UPDATE_SIZE 1
+#define RB_BC_CONTROL_CRC_MODE_SIZE 1
+#define RB_BC_CONTROL_DISABLE_SAMPLE_COUNTERS_SIZE 1
+#define RB_BC_CONTROL_DISABLE_ACCUM_SIZE 1
+#define RB_BC_CONTROL_ACCUM_ALLOC_MASK_SIZE 4
+#define RB_BC_CONTROL_LINEAR_PERFORMANCE_ENABLE_SIZE 1
+#define RB_BC_CONTROL_ACCUM_DATA_FIFO_LIMIT_SIZE 4
+#define RB_BC_CONTROL_MEM_EXPORT_TIMEOUT_SELECT_SIZE 2
+#define RB_BC_CONTROL_MEM_EXPORT_LINEAR_MODE_ENABLE_SIZE 1
+#define RB_BC_CONTROL_CRC_SYSTEM_SIZE 1
+#define RB_BC_CONTROL_RESERVED6_SIZE 1
+
+#define RB_BC_CONTROL_ACCUM_LINEAR_MODE_ENABLE_SHIFT 0
+#define RB_BC_CONTROL_ACCUM_TIMEOUT_SELECT_SHIFT 1
+#define RB_BC_CONTROL_DISABLE_EDRAM_CAM_SHIFT 3
+#define RB_BC_CONTROL_DISABLE_EZ_FAST_CONTEXT_SWITCH_SHIFT 4
+#define RB_BC_CONTROL_DISABLE_EZ_NULL_ZCMD_DROP_SHIFT 5
+#define RB_BC_CONTROL_DISABLE_LZ_NULL_ZCMD_DROP_SHIFT 6
+#define RB_BC_CONTROL_ENABLE_AZ_THROTTLE_SHIFT 7
+#define RB_BC_CONTROL_AZ_THROTTLE_COUNT_SHIFT 8
+#define RB_BC_CONTROL_ENABLE_CRC_UPDATE_SHIFT 14
+#define RB_BC_CONTROL_CRC_MODE_SHIFT 15
+#define RB_BC_CONTROL_DISABLE_SAMPLE_COUNTERS_SHIFT 16
+#define RB_BC_CONTROL_DISABLE_ACCUM_SHIFT 17
+#define RB_BC_CONTROL_ACCUM_ALLOC_MASK_SHIFT 18
+#define RB_BC_CONTROL_LINEAR_PERFORMANCE_ENABLE_SHIFT 22
+#define RB_BC_CONTROL_ACCUM_DATA_FIFO_LIMIT_SHIFT 23
+#define RB_BC_CONTROL_MEM_EXPORT_TIMEOUT_SELECT_SHIFT 27
+#define RB_BC_CONTROL_MEM_EXPORT_LINEAR_MODE_ENABLE_SHIFT 29
+#define RB_BC_CONTROL_CRC_SYSTEM_SHIFT 30
+#define RB_BC_CONTROL_RESERVED6_SHIFT 31
+
+#define RB_BC_CONTROL_ACCUM_LINEAR_MODE_ENABLE_MASK 0x00000001
+#define RB_BC_CONTROL_ACCUM_TIMEOUT_SELECT_MASK 0x00000006
+#define RB_BC_CONTROL_DISABLE_EDRAM_CAM_MASK 0x00000008
+#define RB_BC_CONTROL_DISABLE_EZ_FAST_CONTEXT_SWITCH_MASK 0x00000010
+#define RB_BC_CONTROL_DISABLE_EZ_NULL_ZCMD_DROP_MASK 0x00000020
+#define RB_BC_CONTROL_DISABLE_LZ_NULL_ZCMD_DROP_MASK 0x00000040
+#define RB_BC_CONTROL_ENABLE_AZ_THROTTLE_MASK 0x00000080
+#define RB_BC_CONTROL_AZ_THROTTLE_COUNT_MASK 0x00001f00
+#define RB_BC_CONTROL_ENABLE_CRC_UPDATE_MASK 0x00004000
+#define RB_BC_CONTROL_CRC_MODE_MASK 0x00008000
+#define RB_BC_CONTROL_DISABLE_SAMPLE_COUNTERS_MASK 0x00010000
+#define RB_BC_CONTROL_DISABLE_ACCUM_MASK 0x00020000
+#define RB_BC_CONTROL_ACCUM_ALLOC_MASK_MASK 0x003c0000
+#define RB_BC_CONTROL_LINEAR_PERFORMANCE_ENABLE_MASK 0x00400000
+#define RB_BC_CONTROL_ACCUM_DATA_FIFO_LIMIT_MASK 0x07800000
+#define RB_BC_CONTROL_MEM_EXPORT_TIMEOUT_SELECT_MASK 0x18000000
+#define RB_BC_CONTROL_MEM_EXPORT_LINEAR_MODE_ENABLE_MASK 0x20000000
+#define RB_BC_CONTROL_CRC_SYSTEM_MASK 0x40000000
+#define RB_BC_CONTROL_RESERVED6_MASK 0x80000000
+
+#define RB_BC_CONTROL_MASK \
+ (RB_BC_CONTROL_ACCUM_LINEAR_MODE_ENABLE_MASK | \
+ RB_BC_CONTROL_ACCUM_TIMEOUT_SELECT_MASK | \
+ RB_BC_CONTROL_DISABLE_EDRAM_CAM_MASK | \
+ RB_BC_CONTROL_DISABLE_EZ_FAST_CONTEXT_SWITCH_MASK | \
+ RB_BC_CONTROL_DISABLE_EZ_NULL_ZCMD_DROP_MASK | \
+ RB_BC_CONTROL_DISABLE_LZ_NULL_ZCMD_DROP_MASK | \
+ RB_BC_CONTROL_ENABLE_AZ_THROTTLE_MASK | \
+ RB_BC_CONTROL_AZ_THROTTLE_COUNT_MASK | \
+ RB_BC_CONTROL_ENABLE_CRC_UPDATE_MASK | \
+ RB_BC_CONTROL_CRC_MODE_MASK | \
+ RB_BC_CONTROL_DISABLE_SAMPLE_COUNTERS_MASK | \
+ RB_BC_CONTROL_DISABLE_ACCUM_MASK | \
+ RB_BC_CONTROL_ACCUM_ALLOC_MASK_MASK | \
+ RB_BC_CONTROL_LINEAR_PERFORMANCE_ENABLE_MASK | \
+ RB_BC_CONTROL_ACCUM_DATA_FIFO_LIMIT_MASK | \
+ RB_BC_CONTROL_MEM_EXPORT_TIMEOUT_SELECT_MASK | \
+ RB_BC_CONTROL_MEM_EXPORT_LINEAR_MODE_ENABLE_MASK | \
+ RB_BC_CONTROL_CRC_SYSTEM_MASK | \
+ RB_BC_CONTROL_RESERVED6_MASK)
+
+#define RB_BC_CONTROL(accum_linear_mode_enable, accum_timeout_select, disable_edram_cam, disable_ez_fast_context_switch, disable_ez_null_zcmd_drop, disable_lz_null_zcmd_drop, enable_az_throttle, az_throttle_count, enable_crc_update, crc_mode, disable_sample_counters, disable_accum, accum_alloc_mask, linear_performance_enable, accum_data_fifo_limit, mem_export_timeout_select, mem_export_linear_mode_enable, crc_system, reserved6) \
+ ((accum_linear_mode_enable << RB_BC_CONTROL_ACCUM_LINEAR_MODE_ENABLE_SHIFT) | \
+ (accum_timeout_select << RB_BC_CONTROL_ACCUM_TIMEOUT_SELECT_SHIFT) | \
+ (disable_edram_cam << RB_BC_CONTROL_DISABLE_EDRAM_CAM_SHIFT) | \
+ (disable_ez_fast_context_switch << RB_BC_CONTROL_DISABLE_EZ_FAST_CONTEXT_SWITCH_SHIFT) | \
+ (disable_ez_null_zcmd_drop << RB_BC_CONTROL_DISABLE_EZ_NULL_ZCMD_DROP_SHIFT) | \
+ (disable_lz_null_zcmd_drop << RB_BC_CONTROL_DISABLE_LZ_NULL_ZCMD_DROP_SHIFT) | \
+ (enable_az_throttle << RB_BC_CONTROL_ENABLE_AZ_THROTTLE_SHIFT) | \
+ (az_throttle_count << RB_BC_CONTROL_AZ_THROTTLE_COUNT_SHIFT) | \
+ (enable_crc_update << RB_BC_CONTROL_ENABLE_CRC_UPDATE_SHIFT) | \
+ (crc_mode << RB_BC_CONTROL_CRC_MODE_SHIFT) | \
+ (disable_sample_counters << RB_BC_CONTROL_DISABLE_SAMPLE_COUNTERS_SHIFT) | \
+ (disable_accum << RB_BC_CONTROL_DISABLE_ACCUM_SHIFT) | \
+ (accum_alloc_mask << RB_BC_CONTROL_ACCUM_ALLOC_MASK_SHIFT) | \
+ (linear_performance_enable << RB_BC_CONTROL_LINEAR_PERFORMANCE_ENABLE_SHIFT) | \
+ (accum_data_fifo_limit << RB_BC_CONTROL_ACCUM_DATA_FIFO_LIMIT_SHIFT) | \
+ (mem_export_timeout_select << RB_BC_CONTROL_MEM_EXPORT_TIMEOUT_SELECT_SHIFT) | \
+ (mem_export_linear_mode_enable << RB_BC_CONTROL_MEM_EXPORT_LINEAR_MODE_ENABLE_SHIFT) | \
+ (crc_system << RB_BC_CONTROL_CRC_SYSTEM_SHIFT) | \
+ (reserved6 << RB_BC_CONTROL_RESERVED6_SHIFT))
+
+#define RB_BC_CONTROL_GET_ACCUM_LINEAR_MODE_ENABLE(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_ACCUM_LINEAR_MODE_ENABLE_MASK) >> RB_BC_CONTROL_ACCUM_LINEAR_MODE_ENABLE_SHIFT)
+#define RB_BC_CONTROL_GET_ACCUM_TIMEOUT_SELECT(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_ACCUM_TIMEOUT_SELECT_MASK) >> RB_BC_CONTROL_ACCUM_TIMEOUT_SELECT_SHIFT)
+#define RB_BC_CONTROL_GET_DISABLE_EDRAM_CAM(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_DISABLE_EDRAM_CAM_MASK) >> RB_BC_CONTROL_DISABLE_EDRAM_CAM_SHIFT)
+#define RB_BC_CONTROL_GET_DISABLE_EZ_FAST_CONTEXT_SWITCH(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_DISABLE_EZ_FAST_CONTEXT_SWITCH_MASK) >> RB_BC_CONTROL_DISABLE_EZ_FAST_CONTEXT_SWITCH_SHIFT)
+#define RB_BC_CONTROL_GET_DISABLE_EZ_NULL_ZCMD_DROP(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_DISABLE_EZ_NULL_ZCMD_DROP_MASK) >> RB_BC_CONTROL_DISABLE_EZ_NULL_ZCMD_DROP_SHIFT)
+#define RB_BC_CONTROL_GET_DISABLE_LZ_NULL_ZCMD_DROP(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_DISABLE_LZ_NULL_ZCMD_DROP_MASK) >> RB_BC_CONTROL_DISABLE_LZ_NULL_ZCMD_DROP_SHIFT)
+#define RB_BC_CONTROL_GET_ENABLE_AZ_THROTTLE(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_ENABLE_AZ_THROTTLE_MASK) >> RB_BC_CONTROL_ENABLE_AZ_THROTTLE_SHIFT)
+#define RB_BC_CONTROL_GET_AZ_THROTTLE_COUNT(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_AZ_THROTTLE_COUNT_MASK) >> RB_BC_CONTROL_AZ_THROTTLE_COUNT_SHIFT)
+#define RB_BC_CONTROL_GET_ENABLE_CRC_UPDATE(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_ENABLE_CRC_UPDATE_MASK) >> RB_BC_CONTROL_ENABLE_CRC_UPDATE_SHIFT)
+#define RB_BC_CONTROL_GET_CRC_MODE(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_CRC_MODE_MASK) >> RB_BC_CONTROL_CRC_MODE_SHIFT)
+#define RB_BC_CONTROL_GET_DISABLE_SAMPLE_COUNTERS(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_DISABLE_SAMPLE_COUNTERS_MASK) >> RB_BC_CONTROL_DISABLE_SAMPLE_COUNTERS_SHIFT)
+#define RB_BC_CONTROL_GET_DISABLE_ACCUM(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_DISABLE_ACCUM_MASK) >> RB_BC_CONTROL_DISABLE_ACCUM_SHIFT)
+#define RB_BC_CONTROL_GET_ACCUM_ALLOC_MASK(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_ACCUM_ALLOC_MASK_MASK) >> RB_BC_CONTROL_ACCUM_ALLOC_MASK_SHIFT)
+#define RB_BC_CONTROL_GET_LINEAR_PERFORMANCE_ENABLE(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_LINEAR_PERFORMANCE_ENABLE_MASK) >> RB_BC_CONTROL_LINEAR_PERFORMANCE_ENABLE_SHIFT)
+#define RB_BC_CONTROL_GET_ACCUM_DATA_FIFO_LIMIT(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_ACCUM_DATA_FIFO_LIMIT_MASK) >> RB_BC_CONTROL_ACCUM_DATA_FIFO_LIMIT_SHIFT)
+#define RB_BC_CONTROL_GET_MEM_EXPORT_TIMEOUT_SELECT(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_MEM_EXPORT_TIMEOUT_SELECT_MASK) >> RB_BC_CONTROL_MEM_EXPORT_TIMEOUT_SELECT_SHIFT)
+#define RB_BC_CONTROL_GET_MEM_EXPORT_LINEAR_MODE_ENABLE(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_MEM_EXPORT_LINEAR_MODE_ENABLE_MASK) >> RB_BC_CONTROL_MEM_EXPORT_LINEAR_MODE_ENABLE_SHIFT)
+#define RB_BC_CONTROL_GET_CRC_SYSTEM(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_CRC_SYSTEM_MASK) >> RB_BC_CONTROL_CRC_SYSTEM_SHIFT)
+#define RB_BC_CONTROL_GET_RESERVED6(rb_bc_control) \
+ ((rb_bc_control & RB_BC_CONTROL_RESERVED6_MASK) >> RB_BC_CONTROL_RESERVED6_SHIFT)
+
+#define RB_BC_CONTROL_SET_ACCUM_LINEAR_MODE_ENABLE(rb_bc_control_reg, accum_linear_mode_enable) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_ACCUM_LINEAR_MODE_ENABLE_MASK) | (accum_linear_mode_enable << RB_BC_CONTROL_ACCUM_LINEAR_MODE_ENABLE_SHIFT)
+#define RB_BC_CONTROL_SET_ACCUM_TIMEOUT_SELECT(rb_bc_control_reg, accum_timeout_select) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_ACCUM_TIMEOUT_SELECT_MASK) | (accum_timeout_select << RB_BC_CONTROL_ACCUM_TIMEOUT_SELECT_SHIFT)
+#define RB_BC_CONTROL_SET_DISABLE_EDRAM_CAM(rb_bc_control_reg, disable_edram_cam) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_DISABLE_EDRAM_CAM_MASK) | (disable_edram_cam << RB_BC_CONTROL_DISABLE_EDRAM_CAM_SHIFT)
+#define RB_BC_CONTROL_SET_DISABLE_EZ_FAST_CONTEXT_SWITCH(rb_bc_control_reg, disable_ez_fast_context_switch) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_DISABLE_EZ_FAST_CONTEXT_SWITCH_MASK) | (disable_ez_fast_context_switch << RB_BC_CONTROL_DISABLE_EZ_FAST_CONTEXT_SWITCH_SHIFT)
+#define RB_BC_CONTROL_SET_DISABLE_EZ_NULL_ZCMD_DROP(rb_bc_control_reg, disable_ez_null_zcmd_drop) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_DISABLE_EZ_NULL_ZCMD_DROP_MASK) | (disable_ez_null_zcmd_drop << RB_BC_CONTROL_DISABLE_EZ_NULL_ZCMD_DROP_SHIFT)
+#define RB_BC_CONTROL_SET_DISABLE_LZ_NULL_ZCMD_DROP(rb_bc_control_reg, disable_lz_null_zcmd_drop) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_DISABLE_LZ_NULL_ZCMD_DROP_MASK) | (disable_lz_null_zcmd_drop << RB_BC_CONTROL_DISABLE_LZ_NULL_ZCMD_DROP_SHIFT)
+#define RB_BC_CONTROL_SET_ENABLE_AZ_THROTTLE(rb_bc_control_reg, enable_az_throttle) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_ENABLE_AZ_THROTTLE_MASK) | (enable_az_throttle << RB_BC_CONTROL_ENABLE_AZ_THROTTLE_SHIFT)
+#define RB_BC_CONTROL_SET_AZ_THROTTLE_COUNT(rb_bc_control_reg, az_throttle_count) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_AZ_THROTTLE_COUNT_MASK) | (az_throttle_count << RB_BC_CONTROL_AZ_THROTTLE_COUNT_SHIFT)
+#define RB_BC_CONTROL_SET_ENABLE_CRC_UPDATE(rb_bc_control_reg, enable_crc_update) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_ENABLE_CRC_UPDATE_MASK) | (enable_crc_update << RB_BC_CONTROL_ENABLE_CRC_UPDATE_SHIFT)
+#define RB_BC_CONTROL_SET_CRC_MODE(rb_bc_control_reg, crc_mode) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_CRC_MODE_MASK) | (crc_mode << RB_BC_CONTROL_CRC_MODE_SHIFT)
+#define RB_BC_CONTROL_SET_DISABLE_SAMPLE_COUNTERS(rb_bc_control_reg, disable_sample_counters) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_DISABLE_SAMPLE_COUNTERS_MASK) | (disable_sample_counters << RB_BC_CONTROL_DISABLE_SAMPLE_COUNTERS_SHIFT)
+#define RB_BC_CONTROL_SET_DISABLE_ACCUM(rb_bc_control_reg, disable_accum) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_DISABLE_ACCUM_MASK) | (disable_accum << RB_BC_CONTROL_DISABLE_ACCUM_SHIFT)
+#define RB_BC_CONTROL_SET_ACCUM_ALLOC_MASK(rb_bc_control_reg, accum_alloc_mask) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_ACCUM_ALLOC_MASK_MASK) | (accum_alloc_mask << RB_BC_CONTROL_ACCUM_ALLOC_MASK_SHIFT)
+#define RB_BC_CONTROL_SET_LINEAR_PERFORMANCE_ENABLE(rb_bc_control_reg, linear_performance_enable) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_LINEAR_PERFORMANCE_ENABLE_MASK) | (linear_performance_enable << RB_BC_CONTROL_LINEAR_PERFORMANCE_ENABLE_SHIFT)
+#define RB_BC_CONTROL_SET_ACCUM_DATA_FIFO_LIMIT(rb_bc_control_reg, accum_data_fifo_limit) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_ACCUM_DATA_FIFO_LIMIT_MASK) | (accum_data_fifo_limit << RB_BC_CONTROL_ACCUM_DATA_FIFO_LIMIT_SHIFT)
+#define RB_BC_CONTROL_SET_MEM_EXPORT_TIMEOUT_SELECT(rb_bc_control_reg, mem_export_timeout_select) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_MEM_EXPORT_TIMEOUT_SELECT_MASK) | (mem_export_timeout_select << RB_BC_CONTROL_MEM_EXPORT_TIMEOUT_SELECT_SHIFT)
+#define RB_BC_CONTROL_SET_MEM_EXPORT_LINEAR_MODE_ENABLE(rb_bc_control_reg, mem_export_linear_mode_enable) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_MEM_EXPORT_LINEAR_MODE_ENABLE_MASK) | (mem_export_linear_mode_enable << RB_BC_CONTROL_MEM_EXPORT_LINEAR_MODE_ENABLE_SHIFT)
+#define RB_BC_CONTROL_SET_CRC_SYSTEM(rb_bc_control_reg, crc_system) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_CRC_SYSTEM_MASK) | (crc_system << RB_BC_CONTROL_CRC_SYSTEM_SHIFT)
+#define RB_BC_CONTROL_SET_RESERVED6(rb_bc_control_reg, reserved6) \
+ rb_bc_control_reg = (rb_bc_control_reg & ~RB_BC_CONTROL_RESERVED6_MASK) | (reserved6 << RB_BC_CONTROL_RESERVED6_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_bc_control_t {
+ unsigned int accum_linear_mode_enable : RB_BC_CONTROL_ACCUM_LINEAR_MODE_ENABLE_SIZE;
+ unsigned int accum_timeout_select : RB_BC_CONTROL_ACCUM_TIMEOUT_SELECT_SIZE;
+ unsigned int disable_edram_cam : RB_BC_CONTROL_DISABLE_EDRAM_CAM_SIZE;
+ unsigned int disable_ez_fast_context_switch : RB_BC_CONTROL_DISABLE_EZ_FAST_CONTEXT_SWITCH_SIZE;
+ unsigned int disable_ez_null_zcmd_drop : RB_BC_CONTROL_DISABLE_EZ_NULL_ZCMD_DROP_SIZE;
+ unsigned int disable_lz_null_zcmd_drop : RB_BC_CONTROL_DISABLE_LZ_NULL_ZCMD_DROP_SIZE;
+ unsigned int enable_az_throttle : RB_BC_CONTROL_ENABLE_AZ_THROTTLE_SIZE;
+ unsigned int az_throttle_count : RB_BC_CONTROL_AZ_THROTTLE_COUNT_SIZE;
+ unsigned int : 1;
+ unsigned int enable_crc_update : RB_BC_CONTROL_ENABLE_CRC_UPDATE_SIZE;
+ unsigned int crc_mode : RB_BC_CONTROL_CRC_MODE_SIZE;
+ unsigned int disable_sample_counters : RB_BC_CONTROL_DISABLE_SAMPLE_COUNTERS_SIZE;
+ unsigned int disable_accum : RB_BC_CONTROL_DISABLE_ACCUM_SIZE;
+ unsigned int accum_alloc_mask : RB_BC_CONTROL_ACCUM_ALLOC_MASK_SIZE;
+ unsigned int linear_performance_enable : RB_BC_CONTROL_LINEAR_PERFORMANCE_ENABLE_SIZE;
+ unsigned int accum_data_fifo_limit : RB_BC_CONTROL_ACCUM_DATA_FIFO_LIMIT_SIZE;
+ unsigned int mem_export_timeout_select : RB_BC_CONTROL_MEM_EXPORT_TIMEOUT_SELECT_SIZE;
+ unsigned int mem_export_linear_mode_enable : RB_BC_CONTROL_MEM_EXPORT_LINEAR_MODE_ENABLE_SIZE;
+ unsigned int crc_system : RB_BC_CONTROL_CRC_SYSTEM_SIZE;
+ unsigned int reserved6 : RB_BC_CONTROL_RESERVED6_SIZE;
+ } rb_bc_control_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_bc_control_t {
+ unsigned int reserved6 : RB_BC_CONTROL_RESERVED6_SIZE;
+ unsigned int crc_system : RB_BC_CONTROL_CRC_SYSTEM_SIZE;
+ unsigned int mem_export_linear_mode_enable : RB_BC_CONTROL_MEM_EXPORT_LINEAR_MODE_ENABLE_SIZE;
+ unsigned int mem_export_timeout_select : RB_BC_CONTROL_MEM_EXPORT_TIMEOUT_SELECT_SIZE;
+ unsigned int accum_data_fifo_limit : RB_BC_CONTROL_ACCUM_DATA_FIFO_LIMIT_SIZE;
+ unsigned int linear_performance_enable : RB_BC_CONTROL_LINEAR_PERFORMANCE_ENABLE_SIZE;
+ unsigned int accum_alloc_mask : RB_BC_CONTROL_ACCUM_ALLOC_MASK_SIZE;
+ unsigned int disable_accum : RB_BC_CONTROL_DISABLE_ACCUM_SIZE;
+ unsigned int disable_sample_counters : RB_BC_CONTROL_DISABLE_SAMPLE_COUNTERS_SIZE;
+ unsigned int crc_mode : RB_BC_CONTROL_CRC_MODE_SIZE;
+ unsigned int enable_crc_update : RB_BC_CONTROL_ENABLE_CRC_UPDATE_SIZE;
+ unsigned int : 1;
+ unsigned int az_throttle_count : RB_BC_CONTROL_AZ_THROTTLE_COUNT_SIZE;
+ unsigned int enable_az_throttle : RB_BC_CONTROL_ENABLE_AZ_THROTTLE_SIZE;
+ unsigned int disable_lz_null_zcmd_drop : RB_BC_CONTROL_DISABLE_LZ_NULL_ZCMD_DROP_SIZE;
+ unsigned int disable_ez_null_zcmd_drop : RB_BC_CONTROL_DISABLE_EZ_NULL_ZCMD_DROP_SIZE;
+ unsigned int disable_ez_fast_context_switch : RB_BC_CONTROL_DISABLE_EZ_FAST_CONTEXT_SWITCH_SIZE;
+ unsigned int disable_edram_cam : RB_BC_CONTROL_DISABLE_EDRAM_CAM_SIZE;
+ unsigned int accum_timeout_select : RB_BC_CONTROL_ACCUM_TIMEOUT_SELECT_SIZE;
+ unsigned int accum_linear_mode_enable : RB_BC_CONTROL_ACCUM_LINEAR_MODE_ENABLE_SIZE;
+ } rb_bc_control_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_bc_control_t f;
+} rb_bc_control_u;
+
+
+/*
+ * RB_EDRAM_INFO struct
+ */
+
+#define RB_EDRAM_INFO_EDRAM_SIZE_SIZE 4
+#define RB_EDRAM_INFO_EDRAM_MAPPING_MODE_SIZE 2
+#define RB_EDRAM_INFO_EDRAM_RANGE_SIZE 18
+
+#define RB_EDRAM_INFO_EDRAM_SIZE_SHIFT 0
+#define RB_EDRAM_INFO_EDRAM_MAPPING_MODE_SHIFT 4
+#define RB_EDRAM_INFO_EDRAM_RANGE_SHIFT 14
+
+#define RB_EDRAM_INFO_EDRAM_SIZE_MASK 0x0000000f
+#define RB_EDRAM_INFO_EDRAM_MAPPING_MODE_MASK 0x00000030
+#define RB_EDRAM_INFO_EDRAM_RANGE_MASK 0xffffc000
+
+#define RB_EDRAM_INFO_MASK \
+ (RB_EDRAM_INFO_EDRAM_SIZE_MASK | \
+ RB_EDRAM_INFO_EDRAM_MAPPING_MODE_MASK | \
+ RB_EDRAM_INFO_EDRAM_RANGE_MASK)
+
+#define RB_EDRAM_INFO(edram_size, edram_mapping_mode, edram_range) \
+ ((edram_size << RB_EDRAM_INFO_EDRAM_SIZE_SHIFT) | \
+ (edram_mapping_mode << RB_EDRAM_INFO_EDRAM_MAPPING_MODE_SHIFT) | \
+ (edram_range << RB_EDRAM_INFO_EDRAM_RANGE_SHIFT))
+
+#define RB_EDRAM_INFO_GET_EDRAM_SIZE(rb_edram_info) \
+ ((rb_edram_info & RB_EDRAM_INFO_EDRAM_SIZE_MASK) >> RB_EDRAM_INFO_EDRAM_SIZE_SHIFT)
+#define RB_EDRAM_INFO_GET_EDRAM_MAPPING_MODE(rb_edram_info) \
+ ((rb_edram_info & RB_EDRAM_INFO_EDRAM_MAPPING_MODE_MASK) >> RB_EDRAM_INFO_EDRAM_MAPPING_MODE_SHIFT)
+#define RB_EDRAM_INFO_GET_EDRAM_RANGE(rb_edram_info) \
+ ((rb_edram_info & RB_EDRAM_INFO_EDRAM_RANGE_MASK) >> RB_EDRAM_INFO_EDRAM_RANGE_SHIFT)
+
+#define RB_EDRAM_INFO_SET_EDRAM_SIZE(rb_edram_info_reg, edram_size) \
+ rb_edram_info_reg = (rb_edram_info_reg & ~RB_EDRAM_INFO_EDRAM_SIZE_MASK) | (edram_size << RB_EDRAM_INFO_EDRAM_SIZE_SHIFT)
+#define RB_EDRAM_INFO_SET_EDRAM_MAPPING_MODE(rb_edram_info_reg, edram_mapping_mode) \
+ rb_edram_info_reg = (rb_edram_info_reg & ~RB_EDRAM_INFO_EDRAM_MAPPING_MODE_MASK) | (edram_mapping_mode << RB_EDRAM_INFO_EDRAM_MAPPING_MODE_SHIFT)
+#define RB_EDRAM_INFO_SET_EDRAM_RANGE(rb_edram_info_reg, edram_range) \
+ rb_edram_info_reg = (rb_edram_info_reg & ~RB_EDRAM_INFO_EDRAM_RANGE_MASK) | (edram_range << RB_EDRAM_INFO_EDRAM_RANGE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_edram_info_t {
+ unsigned int edram_size : RB_EDRAM_INFO_EDRAM_SIZE_SIZE;
+ unsigned int edram_mapping_mode : RB_EDRAM_INFO_EDRAM_MAPPING_MODE_SIZE;
+ unsigned int : 8;
+ unsigned int edram_range : RB_EDRAM_INFO_EDRAM_RANGE_SIZE;
+ } rb_edram_info_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_edram_info_t {
+ unsigned int edram_range : RB_EDRAM_INFO_EDRAM_RANGE_SIZE;
+ unsigned int : 8;
+ unsigned int edram_mapping_mode : RB_EDRAM_INFO_EDRAM_MAPPING_MODE_SIZE;
+ unsigned int edram_size : RB_EDRAM_INFO_EDRAM_SIZE_SIZE;
+ } rb_edram_info_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_edram_info_t f;
+} rb_edram_info_u;
+
+
+/*
+ * RB_CRC_RD_PORT struct
+ */
+
+#define RB_CRC_RD_PORT_CRC_DATA_SIZE 32
+
+#define RB_CRC_RD_PORT_CRC_DATA_SHIFT 0
+
+#define RB_CRC_RD_PORT_CRC_DATA_MASK 0xffffffff
+
+#define RB_CRC_RD_PORT_MASK \
+ (RB_CRC_RD_PORT_CRC_DATA_MASK)
+
+#define RB_CRC_RD_PORT(crc_data) \
+ ((crc_data << RB_CRC_RD_PORT_CRC_DATA_SHIFT))
+
+#define RB_CRC_RD_PORT_GET_CRC_DATA(rb_crc_rd_port) \
+ ((rb_crc_rd_port & RB_CRC_RD_PORT_CRC_DATA_MASK) >> RB_CRC_RD_PORT_CRC_DATA_SHIFT)
+
+#define RB_CRC_RD_PORT_SET_CRC_DATA(rb_crc_rd_port_reg, crc_data) \
+ rb_crc_rd_port_reg = (rb_crc_rd_port_reg & ~RB_CRC_RD_PORT_CRC_DATA_MASK) | (crc_data << RB_CRC_RD_PORT_CRC_DATA_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_crc_rd_port_t {
+ unsigned int crc_data : RB_CRC_RD_PORT_CRC_DATA_SIZE;
+ } rb_crc_rd_port_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_crc_rd_port_t {
+ unsigned int crc_data : RB_CRC_RD_PORT_CRC_DATA_SIZE;
+ } rb_crc_rd_port_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_crc_rd_port_t f;
+} rb_crc_rd_port_u;
+
+
+/*
+ * RB_CRC_CONTROL struct
+ */
+
+#define RB_CRC_CONTROL_CRC_RD_ADVANCE_SIZE 1
+
+#define RB_CRC_CONTROL_CRC_RD_ADVANCE_SHIFT 0
+
+#define RB_CRC_CONTROL_CRC_RD_ADVANCE_MASK 0x00000001
+
+#define RB_CRC_CONTROL_MASK \
+ (RB_CRC_CONTROL_CRC_RD_ADVANCE_MASK)
+
+#define RB_CRC_CONTROL(crc_rd_advance) \
+ ((crc_rd_advance << RB_CRC_CONTROL_CRC_RD_ADVANCE_SHIFT))
+
+#define RB_CRC_CONTROL_GET_CRC_RD_ADVANCE(rb_crc_control) \
+ ((rb_crc_control & RB_CRC_CONTROL_CRC_RD_ADVANCE_MASK) >> RB_CRC_CONTROL_CRC_RD_ADVANCE_SHIFT)
+
+#define RB_CRC_CONTROL_SET_CRC_RD_ADVANCE(rb_crc_control_reg, crc_rd_advance) \
+ rb_crc_control_reg = (rb_crc_control_reg & ~RB_CRC_CONTROL_CRC_RD_ADVANCE_MASK) | (crc_rd_advance << RB_CRC_CONTROL_CRC_RD_ADVANCE_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_crc_control_t {
+ unsigned int crc_rd_advance : RB_CRC_CONTROL_CRC_RD_ADVANCE_SIZE;
+ unsigned int : 31;
+ } rb_crc_control_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_crc_control_t {
+ unsigned int : 31;
+ unsigned int crc_rd_advance : RB_CRC_CONTROL_CRC_RD_ADVANCE_SIZE;
+ } rb_crc_control_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_crc_control_t f;
+} rb_crc_control_u;
+
+
+/*
+ * RB_CRC_MASK struct
+ */
+
+#define RB_CRC_MASK_CRC_MASK_SIZE 32
+
+#define RB_CRC_MASK_CRC_MASK_SHIFT 0
+
+#define RB_CRC_MASK_CRC_MASK_MASK 0xffffffff
+
+#define RB_CRC_MASK_MASK \
+ (RB_CRC_MASK_CRC_MASK_MASK)
+
+#define RB_CRC_MASK(crc_mask) \
+ ((crc_mask << RB_CRC_MASK_CRC_MASK_SHIFT))
+
+#define RB_CRC_MASK_GET_CRC_MASK(rb_crc_mask) \
+ ((rb_crc_mask & RB_CRC_MASK_CRC_MASK_MASK) >> RB_CRC_MASK_CRC_MASK_SHIFT)
+
+#define RB_CRC_MASK_SET_CRC_MASK(rb_crc_mask_reg, crc_mask) \
+ rb_crc_mask_reg = (rb_crc_mask_reg & ~RB_CRC_MASK_CRC_MASK_MASK) | (crc_mask << RB_CRC_MASK_CRC_MASK_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_crc_mask_t {
+ unsigned int crc_mask : RB_CRC_MASK_CRC_MASK_SIZE;
+ } rb_crc_mask_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_crc_mask_t {
+ unsigned int crc_mask : RB_CRC_MASK_CRC_MASK_SIZE;
+ } rb_crc_mask_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_crc_mask_t f;
+} rb_crc_mask_u;
+
+
+/*
+ * RB_PERFCOUNTER0_SELECT struct
+ */
+
+#define RB_PERFCOUNTER0_SELECT_PERF_SEL_SIZE 8
+
+#define RB_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT 0
+
+#define RB_PERFCOUNTER0_SELECT_PERF_SEL_MASK 0x000000ff
+
+#define RB_PERFCOUNTER0_SELECT_MASK \
+ (RB_PERFCOUNTER0_SELECT_PERF_SEL_MASK)
+
+#define RB_PERFCOUNTER0_SELECT(perf_sel) \
+ ((perf_sel << RB_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT))
+
+#define RB_PERFCOUNTER0_SELECT_GET_PERF_SEL(rb_perfcounter0_select) \
+ ((rb_perfcounter0_select & RB_PERFCOUNTER0_SELECT_PERF_SEL_MASK) >> RB_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT)
+
+#define RB_PERFCOUNTER0_SELECT_SET_PERF_SEL(rb_perfcounter0_select_reg, perf_sel) \
+ rb_perfcounter0_select_reg = (rb_perfcounter0_select_reg & ~RB_PERFCOUNTER0_SELECT_PERF_SEL_MASK) | (perf_sel << RB_PERFCOUNTER0_SELECT_PERF_SEL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_perfcounter0_select_t {
+ unsigned int perf_sel : RB_PERFCOUNTER0_SELECT_PERF_SEL_SIZE;
+ unsigned int : 24;
+ } rb_perfcounter0_select_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_perfcounter0_select_t {
+ unsigned int : 24;
+ unsigned int perf_sel : RB_PERFCOUNTER0_SELECT_PERF_SEL_SIZE;
+ } rb_perfcounter0_select_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_perfcounter0_select_t f;
+} rb_perfcounter0_select_u;
+
+
+/*
+ * RB_PERFCOUNTER0_LOW struct
+ */
+
+#define RB_PERFCOUNTER0_LOW_PERF_COUNT_SIZE 32
+
+#define RB_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT 0
+
+#define RB_PERFCOUNTER0_LOW_PERF_COUNT_MASK 0xffffffff
+
+#define RB_PERFCOUNTER0_LOW_MASK \
+ (RB_PERFCOUNTER0_LOW_PERF_COUNT_MASK)
+
+#define RB_PERFCOUNTER0_LOW(perf_count) \
+ ((perf_count << RB_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT))
+
+#define RB_PERFCOUNTER0_LOW_GET_PERF_COUNT(rb_perfcounter0_low) \
+ ((rb_perfcounter0_low & RB_PERFCOUNTER0_LOW_PERF_COUNT_MASK) >> RB_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT)
+
+#define RB_PERFCOUNTER0_LOW_SET_PERF_COUNT(rb_perfcounter0_low_reg, perf_count) \
+ rb_perfcounter0_low_reg = (rb_perfcounter0_low_reg & ~RB_PERFCOUNTER0_LOW_PERF_COUNT_MASK) | (perf_count << RB_PERFCOUNTER0_LOW_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_perfcounter0_low_t {
+ unsigned int perf_count : RB_PERFCOUNTER0_LOW_PERF_COUNT_SIZE;
+ } rb_perfcounter0_low_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_perfcounter0_low_t {
+ unsigned int perf_count : RB_PERFCOUNTER0_LOW_PERF_COUNT_SIZE;
+ } rb_perfcounter0_low_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_perfcounter0_low_t f;
+} rb_perfcounter0_low_u;
+
+
+/*
+ * RB_PERFCOUNTER0_HI struct
+ */
+
+#define RB_PERFCOUNTER0_HI_PERF_COUNT_SIZE 16
+
+#define RB_PERFCOUNTER0_HI_PERF_COUNT_SHIFT 0
+
+#define RB_PERFCOUNTER0_HI_PERF_COUNT_MASK 0x0000ffff
+
+#define RB_PERFCOUNTER0_HI_MASK \
+ (RB_PERFCOUNTER0_HI_PERF_COUNT_MASK)
+
+#define RB_PERFCOUNTER0_HI(perf_count) \
+ ((perf_count << RB_PERFCOUNTER0_HI_PERF_COUNT_SHIFT))
+
+#define RB_PERFCOUNTER0_HI_GET_PERF_COUNT(rb_perfcounter0_hi) \
+ ((rb_perfcounter0_hi & RB_PERFCOUNTER0_HI_PERF_COUNT_MASK) >> RB_PERFCOUNTER0_HI_PERF_COUNT_SHIFT)
+
+#define RB_PERFCOUNTER0_HI_SET_PERF_COUNT(rb_perfcounter0_hi_reg, perf_count) \
+ rb_perfcounter0_hi_reg = (rb_perfcounter0_hi_reg & ~RB_PERFCOUNTER0_HI_PERF_COUNT_MASK) | (perf_count << RB_PERFCOUNTER0_HI_PERF_COUNT_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_perfcounter0_hi_t {
+ unsigned int perf_count : RB_PERFCOUNTER0_HI_PERF_COUNT_SIZE;
+ unsigned int : 16;
+ } rb_perfcounter0_hi_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_perfcounter0_hi_t {
+ unsigned int : 16;
+ unsigned int perf_count : RB_PERFCOUNTER0_HI_PERF_COUNT_SIZE;
+ } rb_perfcounter0_hi_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_perfcounter0_hi_t f;
+} rb_perfcounter0_hi_u;
+
+
+/*
+ * RB_TOTAL_SAMPLES struct
+ */
+
+#define RB_TOTAL_SAMPLES_TOTAL_SAMPLES_SIZE 32
+
+#define RB_TOTAL_SAMPLES_TOTAL_SAMPLES_SHIFT 0
+
+#define RB_TOTAL_SAMPLES_TOTAL_SAMPLES_MASK 0xffffffff
+
+#define RB_TOTAL_SAMPLES_MASK \
+ (RB_TOTAL_SAMPLES_TOTAL_SAMPLES_MASK)
+
+#define RB_TOTAL_SAMPLES(total_samples) \
+ ((total_samples << RB_TOTAL_SAMPLES_TOTAL_SAMPLES_SHIFT))
+
+#define RB_TOTAL_SAMPLES_GET_TOTAL_SAMPLES(rb_total_samples) \
+ ((rb_total_samples & RB_TOTAL_SAMPLES_TOTAL_SAMPLES_MASK) >> RB_TOTAL_SAMPLES_TOTAL_SAMPLES_SHIFT)
+
+#define RB_TOTAL_SAMPLES_SET_TOTAL_SAMPLES(rb_total_samples_reg, total_samples) \
+ rb_total_samples_reg = (rb_total_samples_reg & ~RB_TOTAL_SAMPLES_TOTAL_SAMPLES_MASK) | (total_samples << RB_TOTAL_SAMPLES_TOTAL_SAMPLES_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_total_samples_t {
+ unsigned int total_samples : RB_TOTAL_SAMPLES_TOTAL_SAMPLES_SIZE;
+ } rb_total_samples_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_total_samples_t {
+ unsigned int total_samples : RB_TOTAL_SAMPLES_TOTAL_SAMPLES_SIZE;
+ } rb_total_samples_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_total_samples_t f;
+} rb_total_samples_u;
+
+
+/*
+ * RB_ZPASS_SAMPLES struct
+ */
+
+#define RB_ZPASS_SAMPLES_ZPASS_SAMPLES_SIZE 32
+
+#define RB_ZPASS_SAMPLES_ZPASS_SAMPLES_SHIFT 0
+
+#define RB_ZPASS_SAMPLES_ZPASS_SAMPLES_MASK 0xffffffff
+
+#define RB_ZPASS_SAMPLES_MASK \
+ (RB_ZPASS_SAMPLES_ZPASS_SAMPLES_MASK)
+
+#define RB_ZPASS_SAMPLES(zpass_samples) \
+ ((zpass_samples << RB_ZPASS_SAMPLES_ZPASS_SAMPLES_SHIFT))
+
+#define RB_ZPASS_SAMPLES_GET_ZPASS_SAMPLES(rb_zpass_samples) \
+ ((rb_zpass_samples & RB_ZPASS_SAMPLES_ZPASS_SAMPLES_MASK) >> RB_ZPASS_SAMPLES_ZPASS_SAMPLES_SHIFT)
+
+#define RB_ZPASS_SAMPLES_SET_ZPASS_SAMPLES(rb_zpass_samples_reg, zpass_samples) \
+ rb_zpass_samples_reg = (rb_zpass_samples_reg & ~RB_ZPASS_SAMPLES_ZPASS_SAMPLES_MASK) | (zpass_samples << RB_ZPASS_SAMPLES_ZPASS_SAMPLES_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_zpass_samples_t {
+ unsigned int zpass_samples : RB_ZPASS_SAMPLES_ZPASS_SAMPLES_SIZE;
+ } rb_zpass_samples_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_zpass_samples_t {
+ unsigned int zpass_samples : RB_ZPASS_SAMPLES_ZPASS_SAMPLES_SIZE;
+ } rb_zpass_samples_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_zpass_samples_t f;
+} rb_zpass_samples_u;
+
+
+/*
+ * RB_ZFAIL_SAMPLES struct
+ */
+
+#define RB_ZFAIL_SAMPLES_ZFAIL_SAMPLES_SIZE 32
+
+#define RB_ZFAIL_SAMPLES_ZFAIL_SAMPLES_SHIFT 0
+
+#define RB_ZFAIL_SAMPLES_ZFAIL_SAMPLES_MASK 0xffffffff
+
+#define RB_ZFAIL_SAMPLES_MASK \
+ (RB_ZFAIL_SAMPLES_ZFAIL_SAMPLES_MASK)
+
+#define RB_ZFAIL_SAMPLES(zfail_samples) \
+ ((zfail_samples << RB_ZFAIL_SAMPLES_ZFAIL_SAMPLES_SHIFT))
+
+#define RB_ZFAIL_SAMPLES_GET_ZFAIL_SAMPLES(rb_zfail_samples) \
+ ((rb_zfail_samples & RB_ZFAIL_SAMPLES_ZFAIL_SAMPLES_MASK) >> RB_ZFAIL_SAMPLES_ZFAIL_SAMPLES_SHIFT)
+
+#define RB_ZFAIL_SAMPLES_SET_ZFAIL_SAMPLES(rb_zfail_samples_reg, zfail_samples) \
+ rb_zfail_samples_reg = (rb_zfail_samples_reg & ~RB_ZFAIL_SAMPLES_ZFAIL_SAMPLES_MASK) | (zfail_samples << RB_ZFAIL_SAMPLES_ZFAIL_SAMPLES_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_zfail_samples_t {
+ unsigned int zfail_samples : RB_ZFAIL_SAMPLES_ZFAIL_SAMPLES_SIZE;
+ } rb_zfail_samples_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_zfail_samples_t {
+ unsigned int zfail_samples : RB_ZFAIL_SAMPLES_ZFAIL_SAMPLES_SIZE;
+ } rb_zfail_samples_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_zfail_samples_t f;
+} rb_zfail_samples_u;
+
+
+/*
+ * RB_SFAIL_SAMPLES struct
+ */
+
+#define RB_SFAIL_SAMPLES_SFAIL_SAMPLES_SIZE 32
+
+#define RB_SFAIL_SAMPLES_SFAIL_SAMPLES_SHIFT 0
+
+#define RB_SFAIL_SAMPLES_SFAIL_SAMPLES_MASK 0xffffffff
+
+#define RB_SFAIL_SAMPLES_MASK \
+ (RB_SFAIL_SAMPLES_SFAIL_SAMPLES_MASK)
+
+#define RB_SFAIL_SAMPLES(sfail_samples) \
+ ((sfail_samples << RB_SFAIL_SAMPLES_SFAIL_SAMPLES_SHIFT))
+
+#define RB_SFAIL_SAMPLES_GET_SFAIL_SAMPLES(rb_sfail_samples) \
+ ((rb_sfail_samples & RB_SFAIL_SAMPLES_SFAIL_SAMPLES_MASK) >> RB_SFAIL_SAMPLES_SFAIL_SAMPLES_SHIFT)
+
+#define RB_SFAIL_SAMPLES_SET_SFAIL_SAMPLES(rb_sfail_samples_reg, sfail_samples) \
+ rb_sfail_samples_reg = (rb_sfail_samples_reg & ~RB_SFAIL_SAMPLES_SFAIL_SAMPLES_MASK) | (sfail_samples << RB_SFAIL_SAMPLES_SFAIL_SAMPLES_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_sfail_samples_t {
+ unsigned int sfail_samples : RB_SFAIL_SAMPLES_SFAIL_SAMPLES_SIZE;
+ } rb_sfail_samples_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_sfail_samples_t {
+ unsigned int sfail_samples : RB_SFAIL_SAMPLES_SFAIL_SAMPLES_SIZE;
+ } rb_sfail_samples_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_sfail_samples_t f;
+} rb_sfail_samples_u;
+
+
+/*
+ * RB_DEBUG_0 struct
+ */
+
+#define RB_DEBUG_0_RDREQ_CTL_Z1_PRE_FULL_SIZE 1
+#define RB_DEBUG_0_RDREQ_CTL_Z0_PRE_FULL_SIZE 1
+#define RB_DEBUG_0_RDREQ_CTL_C1_PRE_FULL_SIZE 1
+#define RB_DEBUG_0_RDREQ_CTL_C0_PRE_FULL_SIZE 1
+#define RB_DEBUG_0_RDREQ_E1_ORDERING_FULL_SIZE 1
+#define RB_DEBUG_0_RDREQ_E0_ORDERING_FULL_SIZE 1
+#define RB_DEBUG_0_RDREQ_Z1_FULL_SIZE 1
+#define RB_DEBUG_0_RDREQ_Z0_FULL_SIZE 1
+#define RB_DEBUG_0_RDREQ_C1_FULL_SIZE 1
+#define RB_DEBUG_0_RDREQ_C0_FULL_SIZE 1
+#define RB_DEBUG_0_WRREQ_E1_MACRO_HI_FULL_SIZE 1
+#define RB_DEBUG_0_WRREQ_E1_MACRO_LO_FULL_SIZE 1
+#define RB_DEBUG_0_WRREQ_E0_MACRO_HI_FULL_SIZE 1
+#define RB_DEBUG_0_WRREQ_E0_MACRO_LO_FULL_SIZE 1
+#define RB_DEBUG_0_WRREQ_C_WE_HI_FULL_SIZE 1
+#define RB_DEBUG_0_WRREQ_C_WE_LO_FULL_SIZE 1
+#define RB_DEBUG_0_WRREQ_Z1_FULL_SIZE 1
+#define RB_DEBUG_0_WRREQ_Z0_FULL_SIZE 1
+#define RB_DEBUG_0_WRREQ_C1_FULL_SIZE 1
+#define RB_DEBUG_0_WRREQ_C0_FULL_SIZE 1
+#define RB_DEBUG_0_CMDFIFO_Z1_HOLD_FULL_SIZE 1
+#define RB_DEBUG_0_CMDFIFO_Z0_HOLD_FULL_SIZE 1
+#define RB_DEBUG_0_CMDFIFO_C1_HOLD_FULL_SIZE 1
+#define RB_DEBUG_0_CMDFIFO_C0_HOLD_FULL_SIZE 1
+#define RB_DEBUG_0_CMDFIFO_Z_ORDERING_FULL_SIZE 1
+#define RB_DEBUG_0_CMDFIFO_C_ORDERING_FULL_SIZE 1
+#define RB_DEBUG_0_C_SX_LAT_FULL_SIZE 1
+#define RB_DEBUG_0_C_SX_CMD_FULL_SIZE 1
+#define RB_DEBUG_0_C_EZ_TILE_FULL_SIZE 1
+#define RB_DEBUG_0_C_REQ_FULL_SIZE 1
+#define RB_DEBUG_0_C_MASK_FULL_SIZE 1
+#define RB_DEBUG_0_EZ_INFSAMP_FULL_SIZE 1
+
+#define RB_DEBUG_0_RDREQ_CTL_Z1_PRE_FULL_SHIFT 0
+#define RB_DEBUG_0_RDREQ_CTL_Z0_PRE_FULL_SHIFT 1
+#define RB_DEBUG_0_RDREQ_CTL_C1_PRE_FULL_SHIFT 2
+#define RB_DEBUG_0_RDREQ_CTL_C0_PRE_FULL_SHIFT 3
+#define RB_DEBUG_0_RDREQ_E1_ORDERING_FULL_SHIFT 4
+#define RB_DEBUG_0_RDREQ_E0_ORDERING_FULL_SHIFT 5
+#define RB_DEBUG_0_RDREQ_Z1_FULL_SHIFT 6
+#define RB_DEBUG_0_RDREQ_Z0_FULL_SHIFT 7
+#define RB_DEBUG_0_RDREQ_C1_FULL_SHIFT 8
+#define RB_DEBUG_0_RDREQ_C0_FULL_SHIFT 9
+#define RB_DEBUG_0_WRREQ_E1_MACRO_HI_FULL_SHIFT 10
+#define RB_DEBUG_0_WRREQ_E1_MACRO_LO_FULL_SHIFT 11
+#define RB_DEBUG_0_WRREQ_E0_MACRO_HI_FULL_SHIFT 12
+#define RB_DEBUG_0_WRREQ_E0_MACRO_LO_FULL_SHIFT 13
+#define RB_DEBUG_0_WRREQ_C_WE_HI_FULL_SHIFT 14
+#define RB_DEBUG_0_WRREQ_C_WE_LO_FULL_SHIFT 15
+#define RB_DEBUG_0_WRREQ_Z1_FULL_SHIFT 16
+#define RB_DEBUG_0_WRREQ_Z0_FULL_SHIFT 17
+#define RB_DEBUG_0_WRREQ_C1_FULL_SHIFT 18
+#define RB_DEBUG_0_WRREQ_C0_FULL_SHIFT 19
+#define RB_DEBUG_0_CMDFIFO_Z1_HOLD_FULL_SHIFT 20
+#define RB_DEBUG_0_CMDFIFO_Z0_HOLD_FULL_SHIFT 21
+#define RB_DEBUG_0_CMDFIFO_C1_HOLD_FULL_SHIFT 22
+#define RB_DEBUG_0_CMDFIFO_C0_HOLD_FULL_SHIFT 23
+#define RB_DEBUG_0_CMDFIFO_Z_ORDERING_FULL_SHIFT 24
+#define RB_DEBUG_0_CMDFIFO_C_ORDERING_FULL_SHIFT 25
+#define RB_DEBUG_0_C_SX_LAT_FULL_SHIFT 26
+#define RB_DEBUG_0_C_SX_CMD_FULL_SHIFT 27
+#define RB_DEBUG_0_C_EZ_TILE_FULL_SHIFT 28
+#define RB_DEBUG_0_C_REQ_FULL_SHIFT 29
+#define RB_DEBUG_0_C_MASK_FULL_SHIFT 30
+#define RB_DEBUG_0_EZ_INFSAMP_FULL_SHIFT 31
+
+#define RB_DEBUG_0_RDREQ_CTL_Z1_PRE_FULL_MASK 0x00000001
+#define RB_DEBUG_0_RDREQ_CTL_Z0_PRE_FULL_MASK 0x00000002
+#define RB_DEBUG_0_RDREQ_CTL_C1_PRE_FULL_MASK 0x00000004
+#define RB_DEBUG_0_RDREQ_CTL_C0_PRE_FULL_MASK 0x00000008
+#define RB_DEBUG_0_RDREQ_E1_ORDERING_FULL_MASK 0x00000010
+#define RB_DEBUG_0_RDREQ_E0_ORDERING_FULL_MASK 0x00000020
+#define RB_DEBUG_0_RDREQ_Z1_FULL_MASK 0x00000040
+#define RB_DEBUG_0_RDREQ_Z0_FULL_MASK 0x00000080
+#define RB_DEBUG_0_RDREQ_C1_FULL_MASK 0x00000100
+#define RB_DEBUG_0_RDREQ_C0_FULL_MASK 0x00000200
+#define RB_DEBUG_0_WRREQ_E1_MACRO_HI_FULL_MASK 0x00000400
+#define RB_DEBUG_0_WRREQ_E1_MACRO_LO_FULL_MASK 0x00000800
+#define RB_DEBUG_0_WRREQ_E0_MACRO_HI_FULL_MASK 0x00001000
+#define RB_DEBUG_0_WRREQ_E0_MACRO_LO_FULL_MASK 0x00002000
+#define RB_DEBUG_0_WRREQ_C_WE_HI_FULL_MASK 0x00004000
+#define RB_DEBUG_0_WRREQ_C_WE_LO_FULL_MASK 0x00008000
+#define RB_DEBUG_0_WRREQ_Z1_FULL_MASK 0x00010000
+#define RB_DEBUG_0_WRREQ_Z0_FULL_MASK 0x00020000
+#define RB_DEBUG_0_WRREQ_C1_FULL_MASK 0x00040000
+#define RB_DEBUG_0_WRREQ_C0_FULL_MASK 0x00080000
+#define RB_DEBUG_0_CMDFIFO_Z1_HOLD_FULL_MASK 0x00100000
+#define RB_DEBUG_0_CMDFIFO_Z0_HOLD_FULL_MASK 0x00200000
+#define RB_DEBUG_0_CMDFIFO_C1_HOLD_FULL_MASK 0x00400000
+#define RB_DEBUG_0_CMDFIFO_C0_HOLD_FULL_MASK 0x00800000
+#define RB_DEBUG_0_CMDFIFO_Z_ORDERING_FULL_MASK 0x01000000
+#define RB_DEBUG_0_CMDFIFO_C_ORDERING_FULL_MASK 0x02000000
+#define RB_DEBUG_0_C_SX_LAT_FULL_MASK 0x04000000
+#define RB_DEBUG_0_C_SX_CMD_FULL_MASK 0x08000000
+#define RB_DEBUG_0_C_EZ_TILE_FULL_MASK 0x10000000
+#define RB_DEBUG_0_C_REQ_FULL_MASK 0x20000000
+#define RB_DEBUG_0_C_MASK_FULL_MASK 0x40000000
+#define RB_DEBUG_0_EZ_INFSAMP_FULL_MASK 0x80000000
+
+#define RB_DEBUG_0_MASK \
+ (RB_DEBUG_0_RDREQ_CTL_Z1_PRE_FULL_MASK | \
+ RB_DEBUG_0_RDREQ_CTL_Z0_PRE_FULL_MASK | \
+ RB_DEBUG_0_RDREQ_CTL_C1_PRE_FULL_MASK | \
+ RB_DEBUG_0_RDREQ_CTL_C0_PRE_FULL_MASK | \
+ RB_DEBUG_0_RDREQ_E1_ORDERING_FULL_MASK | \
+ RB_DEBUG_0_RDREQ_E0_ORDERING_FULL_MASK | \
+ RB_DEBUG_0_RDREQ_Z1_FULL_MASK | \
+ RB_DEBUG_0_RDREQ_Z0_FULL_MASK | \
+ RB_DEBUG_0_RDREQ_C1_FULL_MASK | \
+ RB_DEBUG_0_RDREQ_C0_FULL_MASK | \
+ RB_DEBUG_0_WRREQ_E1_MACRO_HI_FULL_MASK | \
+ RB_DEBUG_0_WRREQ_E1_MACRO_LO_FULL_MASK | \
+ RB_DEBUG_0_WRREQ_E0_MACRO_HI_FULL_MASK | \
+ RB_DEBUG_0_WRREQ_E0_MACRO_LO_FULL_MASK | \
+ RB_DEBUG_0_WRREQ_C_WE_HI_FULL_MASK | \
+ RB_DEBUG_0_WRREQ_C_WE_LO_FULL_MASK | \
+ RB_DEBUG_0_WRREQ_Z1_FULL_MASK | \
+ RB_DEBUG_0_WRREQ_Z0_FULL_MASK | \
+ RB_DEBUG_0_WRREQ_C1_FULL_MASK | \
+ RB_DEBUG_0_WRREQ_C0_FULL_MASK | \
+ RB_DEBUG_0_CMDFIFO_Z1_HOLD_FULL_MASK | \
+ RB_DEBUG_0_CMDFIFO_Z0_HOLD_FULL_MASK | \
+ RB_DEBUG_0_CMDFIFO_C1_HOLD_FULL_MASK | \
+ RB_DEBUG_0_CMDFIFO_C0_HOLD_FULL_MASK | \
+ RB_DEBUG_0_CMDFIFO_Z_ORDERING_FULL_MASK | \
+ RB_DEBUG_0_CMDFIFO_C_ORDERING_FULL_MASK | \
+ RB_DEBUG_0_C_SX_LAT_FULL_MASK | \
+ RB_DEBUG_0_C_SX_CMD_FULL_MASK | \
+ RB_DEBUG_0_C_EZ_TILE_FULL_MASK | \
+ RB_DEBUG_0_C_REQ_FULL_MASK | \
+ RB_DEBUG_0_C_MASK_FULL_MASK | \
+ RB_DEBUG_0_EZ_INFSAMP_FULL_MASK)
+
+#define RB_DEBUG_0(rdreq_ctl_z1_pre_full, rdreq_ctl_z0_pre_full, rdreq_ctl_c1_pre_full, rdreq_ctl_c0_pre_full, rdreq_e1_ordering_full, rdreq_e0_ordering_full, rdreq_z1_full, rdreq_z0_full, rdreq_c1_full, rdreq_c0_full, wrreq_e1_macro_hi_full, wrreq_e1_macro_lo_full, wrreq_e0_macro_hi_full, wrreq_e0_macro_lo_full, wrreq_c_we_hi_full, wrreq_c_we_lo_full, wrreq_z1_full, wrreq_z0_full, wrreq_c1_full, wrreq_c0_full, cmdfifo_z1_hold_full, cmdfifo_z0_hold_full, cmdfifo_c1_hold_full, cmdfifo_c0_hold_full, cmdfifo_z_ordering_full, cmdfifo_c_ordering_full, c_sx_lat_full, c_sx_cmd_full, c_ez_tile_full, c_req_full, c_mask_full, ez_infsamp_full) \
+ ((rdreq_ctl_z1_pre_full << RB_DEBUG_0_RDREQ_CTL_Z1_PRE_FULL_SHIFT) | \
+ (rdreq_ctl_z0_pre_full << RB_DEBUG_0_RDREQ_CTL_Z0_PRE_FULL_SHIFT) | \
+ (rdreq_ctl_c1_pre_full << RB_DEBUG_0_RDREQ_CTL_C1_PRE_FULL_SHIFT) | \
+ (rdreq_ctl_c0_pre_full << RB_DEBUG_0_RDREQ_CTL_C0_PRE_FULL_SHIFT) | \
+ (rdreq_e1_ordering_full << RB_DEBUG_0_RDREQ_E1_ORDERING_FULL_SHIFT) | \
+ (rdreq_e0_ordering_full << RB_DEBUG_0_RDREQ_E0_ORDERING_FULL_SHIFT) | \
+ (rdreq_z1_full << RB_DEBUG_0_RDREQ_Z1_FULL_SHIFT) | \
+ (rdreq_z0_full << RB_DEBUG_0_RDREQ_Z0_FULL_SHIFT) | \
+ (rdreq_c1_full << RB_DEBUG_0_RDREQ_C1_FULL_SHIFT) | \
+ (rdreq_c0_full << RB_DEBUG_0_RDREQ_C0_FULL_SHIFT) | \
+ (wrreq_e1_macro_hi_full << RB_DEBUG_0_WRREQ_E1_MACRO_HI_FULL_SHIFT) | \
+ (wrreq_e1_macro_lo_full << RB_DEBUG_0_WRREQ_E1_MACRO_LO_FULL_SHIFT) | \
+ (wrreq_e0_macro_hi_full << RB_DEBUG_0_WRREQ_E0_MACRO_HI_FULL_SHIFT) | \
+ (wrreq_e0_macro_lo_full << RB_DEBUG_0_WRREQ_E0_MACRO_LO_FULL_SHIFT) | \
+ (wrreq_c_we_hi_full << RB_DEBUG_0_WRREQ_C_WE_HI_FULL_SHIFT) | \
+ (wrreq_c_we_lo_full << RB_DEBUG_0_WRREQ_C_WE_LO_FULL_SHIFT) | \
+ (wrreq_z1_full << RB_DEBUG_0_WRREQ_Z1_FULL_SHIFT) | \
+ (wrreq_z0_full << RB_DEBUG_0_WRREQ_Z0_FULL_SHIFT) | \
+ (wrreq_c1_full << RB_DEBUG_0_WRREQ_C1_FULL_SHIFT) | \
+ (wrreq_c0_full << RB_DEBUG_0_WRREQ_C0_FULL_SHIFT) | \
+ (cmdfifo_z1_hold_full << RB_DEBUG_0_CMDFIFO_Z1_HOLD_FULL_SHIFT) | \
+ (cmdfifo_z0_hold_full << RB_DEBUG_0_CMDFIFO_Z0_HOLD_FULL_SHIFT) | \
+ (cmdfifo_c1_hold_full << RB_DEBUG_0_CMDFIFO_C1_HOLD_FULL_SHIFT) | \
+ (cmdfifo_c0_hold_full << RB_DEBUG_0_CMDFIFO_C0_HOLD_FULL_SHIFT) | \
+ (cmdfifo_z_ordering_full << RB_DEBUG_0_CMDFIFO_Z_ORDERING_FULL_SHIFT) | \
+ (cmdfifo_c_ordering_full << RB_DEBUG_0_CMDFIFO_C_ORDERING_FULL_SHIFT) | \
+ (c_sx_lat_full << RB_DEBUG_0_C_SX_LAT_FULL_SHIFT) | \
+ (c_sx_cmd_full << RB_DEBUG_0_C_SX_CMD_FULL_SHIFT) | \
+ (c_ez_tile_full << RB_DEBUG_0_C_EZ_TILE_FULL_SHIFT) | \
+ (c_req_full << RB_DEBUG_0_C_REQ_FULL_SHIFT) | \
+ (c_mask_full << RB_DEBUG_0_C_MASK_FULL_SHIFT) | \
+ (ez_infsamp_full << RB_DEBUG_0_EZ_INFSAMP_FULL_SHIFT))
+
+#define RB_DEBUG_0_GET_RDREQ_CTL_Z1_PRE_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_RDREQ_CTL_Z1_PRE_FULL_MASK) >> RB_DEBUG_0_RDREQ_CTL_Z1_PRE_FULL_SHIFT)
+#define RB_DEBUG_0_GET_RDREQ_CTL_Z0_PRE_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_RDREQ_CTL_Z0_PRE_FULL_MASK) >> RB_DEBUG_0_RDREQ_CTL_Z0_PRE_FULL_SHIFT)
+#define RB_DEBUG_0_GET_RDREQ_CTL_C1_PRE_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_RDREQ_CTL_C1_PRE_FULL_MASK) >> RB_DEBUG_0_RDREQ_CTL_C1_PRE_FULL_SHIFT)
+#define RB_DEBUG_0_GET_RDREQ_CTL_C0_PRE_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_RDREQ_CTL_C0_PRE_FULL_MASK) >> RB_DEBUG_0_RDREQ_CTL_C0_PRE_FULL_SHIFT)
+#define RB_DEBUG_0_GET_RDREQ_E1_ORDERING_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_RDREQ_E1_ORDERING_FULL_MASK) >> RB_DEBUG_0_RDREQ_E1_ORDERING_FULL_SHIFT)
+#define RB_DEBUG_0_GET_RDREQ_E0_ORDERING_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_RDREQ_E0_ORDERING_FULL_MASK) >> RB_DEBUG_0_RDREQ_E0_ORDERING_FULL_SHIFT)
+#define RB_DEBUG_0_GET_RDREQ_Z1_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_RDREQ_Z1_FULL_MASK) >> RB_DEBUG_0_RDREQ_Z1_FULL_SHIFT)
+#define RB_DEBUG_0_GET_RDREQ_Z0_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_RDREQ_Z0_FULL_MASK) >> RB_DEBUG_0_RDREQ_Z0_FULL_SHIFT)
+#define RB_DEBUG_0_GET_RDREQ_C1_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_RDREQ_C1_FULL_MASK) >> RB_DEBUG_0_RDREQ_C1_FULL_SHIFT)
+#define RB_DEBUG_0_GET_RDREQ_C0_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_RDREQ_C0_FULL_MASK) >> RB_DEBUG_0_RDREQ_C0_FULL_SHIFT)
+#define RB_DEBUG_0_GET_WRREQ_E1_MACRO_HI_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_WRREQ_E1_MACRO_HI_FULL_MASK) >> RB_DEBUG_0_WRREQ_E1_MACRO_HI_FULL_SHIFT)
+#define RB_DEBUG_0_GET_WRREQ_E1_MACRO_LO_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_WRREQ_E1_MACRO_LO_FULL_MASK) >> RB_DEBUG_0_WRREQ_E1_MACRO_LO_FULL_SHIFT)
+#define RB_DEBUG_0_GET_WRREQ_E0_MACRO_HI_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_WRREQ_E0_MACRO_HI_FULL_MASK) >> RB_DEBUG_0_WRREQ_E0_MACRO_HI_FULL_SHIFT)
+#define RB_DEBUG_0_GET_WRREQ_E0_MACRO_LO_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_WRREQ_E0_MACRO_LO_FULL_MASK) >> RB_DEBUG_0_WRREQ_E0_MACRO_LO_FULL_SHIFT)
+#define RB_DEBUG_0_GET_WRREQ_C_WE_HI_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_WRREQ_C_WE_HI_FULL_MASK) >> RB_DEBUG_0_WRREQ_C_WE_HI_FULL_SHIFT)
+#define RB_DEBUG_0_GET_WRREQ_C_WE_LO_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_WRREQ_C_WE_LO_FULL_MASK) >> RB_DEBUG_0_WRREQ_C_WE_LO_FULL_SHIFT)
+#define RB_DEBUG_0_GET_WRREQ_Z1_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_WRREQ_Z1_FULL_MASK) >> RB_DEBUG_0_WRREQ_Z1_FULL_SHIFT)
+#define RB_DEBUG_0_GET_WRREQ_Z0_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_WRREQ_Z0_FULL_MASK) >> RB_DEBUG_0_WRREQ_Z0_FULL_SHIFT)
+#define RB_DEBUG_0_GET_WRREQ_C1_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_WRREQ_C1_FULL_MASK) >> RB_DEBUG_0_WRREQ_C1_FULL_SHIFT)
+#define RB_DEBUG_0_GET_WRREQ_C0_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_WRREQ_C0_FULL_MASK) >> RB_DEBUG_0_WRREQ_C0_FULL_SHIFT)
+#define RB_DEBUG_0_GET_CMDFIFO_Z1_HOLD_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_CMDFIFO_Z1_HOLD_FULL_MASK) >> RB_DEBUG_0_CMDFIFO_Z1_HOLD_FULL_SHIFT)
+#define RB_DEBUG_0_GET_CMDFIFO_Z0_HOLD_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_CMDFIFO_Z0_HOLD_FULL_MASK) >> RB_DEBUG_0_CMDFIFO_Z0_HOLD_FULL_SHIFT)
+#define RB_DEBUG_0_GET_CMDFIFO_C1_HOLD_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_CMDFIFO_C1_HOLD_FULL_MASK) >> RB_DEBUG_0_CMDFIFO_C1_HOLD_FULL_SHIFT)
+#define RB_DEBUG_0_GET_CMDFIFO_C0_HOLD_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_CMDFIFO_C0_HOLD_FULL_MASK) >> RB_DEBUG_0_CMDFIFO_C0_HOLD_FULL_SHIFT)
+#define RB_DEBUG_0_GET_CMDFIFO_Z_ORDERING_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_CMDFIFO_Z_ORDERING_FULL_MASK) >> RB_DEBUG_0_CMDFIFO_Z_ORDERING_FULL_SHIFT)
+#define RB_DEBUG_0_GET_CMDFIFO_C_ORDERING_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_CMDFIFO_C_ORDERING_FULL_MASK) >> RB_DEBUG_0_CMDFIFO_C_ORDERING_FULL_SHIFT)
+#define RB_DEBUG_0_GET_C_SX_LAT_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_C_SX_LAT_FULL_MASK) >> RB_DEBUG_0_C_SX_LAT_FULL_SHIFT)
+#define RB_DEBUG_0_GET_C_SX_CMD_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_C_SX_CMD_FULL_MASK) >> RB_DEBUG_0_C_SX_CMD_FULL_SHIFT)
+#define RB_DEBUG_0_GET_C_EZ_TILE_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_C_EZ_TILE_FULL_MASK) >> RB_DEBUG_0_C_EZ_TILE_FULL_SHIFT)
+#define RB_DEBUG_0_GET_C_REQ_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_C_REQ_FULL_MASK) >> RB_DEBUG_0_C_REQ_FULL_SHIFT)
+#define RB_DEBUG_0_GET_C_MASK_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_C_MASK_FULL_MASK) >> RB_DEBUG_0_C_MASK_FULL_SHIFT)
+#define RB_DEBUG_0_GET_EZ_INFSAMP_FULL(rb_debug_0) \
+ ((rb_debug_0 & RB_DEBUG_0_EZ_INFSAMP_FULL_MASK) >> RB_DEBUG_0_EZ_INFSAMP_FULL_SHIFT)
+
+#define RB_DEBUG_0_SET_RDREQ_CTL_Z1_PRE_FULL(rb_debug_0_reg, rdreq_ctl_z1_pre_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_RDREQ_CTL_Z1_PRE_FULL_MASK) | (rdreq_ctl_z1_pre_full << RB_DEBUG_0_RDREQ_CTL_Z1_PRE_FULL_SHIFT)
+#define RB_DEBUG_0_SET_RDREQ_CTL_Z0_PRE_FULL(rb_debug_0_reg, rdreq_ctl_z0_pre_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_RDREQ_CTL_Z0_PRE_FULL_MASK) | (rdreq_ctl_z0_pre_full << RB_DEBUG_0_RDREQ_CTL_Z0_PRE_FULL_SHIFT)
+#define RB_DEBUG_0_SET_RDREQ_CTL_C1_PRE_FULL(rb_debug_0_reg, rdreq_ctl_c1_pre_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_RDREQ_CTL_C1_PRE_FULL_MASK) | (rdreq_ctl_c1_pre_full << RB_DEBUG_0_RDREQ_CTL_C1_PRE_FULL_SHIFT)
+#define RB_DEBUG_0_SET_RDREQ_CTL_C0_PRE_FULL(rb_debug_0_reg, rdreq_ctl_c0_pre_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_RDREQ_CTL_C0_PRE_FULL_MASK) | (rdreq_ctl_c0_pre_full << RB_DEBUG_0_RDREQ_CTL_C0_PRE_FULL_SHIFT)
+#define RB_DEBUG_0_SET_RDREQ_E1_ORDERING_FULL(rb_debug_0_reg, rdreq_e1_ordering_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_RDREQ_E1_ORDERING_FULL_MASK) | (rdreq_e1_ordering_full << RB_DEBUG_0_RDREQ_E1_ORDERING_FULL_SHIFT)
+#define RB_DEBUG_0_SET_RDREQ_E0_ORDERING_FULL(rb_debug_0_reg, rdreq_e0_ordering_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_RDREQ_E0_ORDERING_FULL_MASK) | (rdreq_e0_ordering_full << RB_DEBUG_0_RDREQ_E0_ORDERING_FULL_SHIFT)
+#define RB_DEBUG_0_SET_RDREQ_Z1_FULL(rb_debug_0_reg, rdreq_z1_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_RDREQ_Z1_FULL_MASK) | (rdreq_z1_full << RB_DEBUG_0_RDREQ_Z1_FULL_SHIFT)
+#define RB_DEBUG_0_SET_RDREQ_Z0_FULL(rb_debug_0_reg, rdreq_z0_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_RDREQ_Z0_FULL_MASK) | (rdreq_z0_full << RB_DEBUG_0_RDREQ_Z0_FULL_SHIFT)
+#define RB_DEBUG_0_SET_RDREQ_C1_FULL(rb_debug_0_reg, rdreq_c1_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_RDREQ_C1_FULL_MASK) | (rdreq_c1_full << RB_DEBUG_0_RDREQ_C1_FULL_SHIFT)
+#define RB_DEBUG_0_SET_RDREQ_C0_FULL(rb_debug_0_reg, rdreq_c0_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_RDREQ_C0_FULL_MASK) | (rdreq_c0_full << RB_DEBUG_0_RDREQ_C0_FULL_SHIFT)
+#define RB_DEBUG_0_SET_WRREQ_E1_MACRO_HI_FULL(rb_debug_0_reg, wrreq_e1_macro_hi_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_WRREQ_E1_MACRO_HI_FULL_MASK) | (wrreq_e1_macro_hi_full << RB_DEBUG_0_WRREQ_E1_MACRO_HI_FULL_SHIFT)
+#define RB_DEBUG_0_SET_WRREQ_E1_MACRO_LO_FULL(rb_debug_0_reg, wrreq_e1_macro_lo_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_WRREQ_E1_MACRO_LO_FULL_MASK) | (wrreq_e1_macro_lo_full << RB_DEBUG_0_WRREQ_E1_MACRO_LO_FULL_SHIFT)
+#define RB_DEBUG_0_SET_WRREQ_E0_MACRO_HI_FULL(rb_debug_0_reg, wrreq_e0_macro_hi_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_WRREQ_E0_MACRO_HI_FULL_MASK) | (wrreq_e0_macro_hi_full << RB_DEBUG_0_WRREQ_E0_MACRO_HI_FULL_SHIFT)
+#define RB_DEBUG_0_SET_WRREQ_E0_MACRO_LO_FULL(rb_debug_0_reg, wrreq_e0_macro_lo_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_WRREQ_E0_MACRO_LO_FULL_MASK) | (wrreq_e0_macro_lo_full << RB_DEBUG_0_WRREQ_E0_MACRO_LO_FULL_SHIFT)
+#define RB_DEBUG_0_SET_WRREQ_C_WE_HI_FULL(rb_debug_0_reg, wrreq_c_we_hi_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_WRREQ_C_WE_HI_FULL_MASK) | (wrreq_c_we_hi_full << RB_DEBUG_0_WRREQ_C_WE_HI_FULL_SHIFT)
+#define RB_DEBUG_0_SET_WRREQ_C_WE_LO_FULL(rb_debug_0_reg, wrreq_c_we_lo_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_WRREQ_C_WE_LO_FULL_MASK) | (wrreq_c_we_lo_full << RB_DEBUG_0_WRREQ_C_WE_LO_FULL_SHIFT)
+#define RB_DEBUG_0_SET_WRREQ_Z1_FULL(rb_debug_0_reg, wrreq_z1_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_WRREQ_Z1_FULL_MASK) | (wrreq_z1_full << RB_DEBUG_0_WRREQ_Z1_FULL_SHIFT)
+#define RB_DEBUG_0_SET_WRREQ_Z0_FULL(rb_debug_0_reg, wrreq_z0_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_WRREQ_Z0_FULL_MASK) | (wrreq_z0_full << RB_DEBUG_0_WRREQ_Z0_FULL_SHIFT)
+#define RB_DEBUG_0_SET_WRREQ_C1_FULL(rb_debug_0_reg, wrreq_c1_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_WRREQ_C1_FULL_MASK) | (wrreq_c1_full << RB_DEBUG_0_WRREQ_C1_FULL_SHIFT)
+#define RB_DEBUG_0_SET_WRREQ_C0_FULL(rb_debug_0_reg, wrreq_c0_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_WRREQ_C0_FULL_MASK) | (wrreq_c0_full << RB_DEBUG_0_WRREQ_C0_FULL_SHIFT)
+#define RB_DEBUG_0_SET_CMDFIFO_Z1_HOLD_FULL(rb_debug_0_reg, cmdfifo_z1_hold_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_CMDFIFO_Z1_HOLD_FULL_MASK) | (cmdfifo_z1_hold_full << RB_DEBUG_0_CMDFIFO_Z1_HOLD_FULL_SHIFT)
+#define RB_DEBUG_0_SET_CMDFIFO_Z0_HOLD_FULL(rb_debug_0_reg, cmdfifo_z0_hold_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_CMDFIFO_Z0_HOLD_FULL_MASK) | (cmdfifo_z0_hold_full << RB_DEBUG_0_CMDFIFO_Z0_HOLD_FULL_SHIFT)
+#define RB_DEBUG_0_SET_CMDFIFO_C1_HOLD_FULL(rb_debug_0_reg, cmdfifo_c1_hold_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_CMDFIFO_C1_HOLD_FULL_MASK) | (cmdfifo_c1_hold_full << RB_DEBUG_0_CMDFIFO_C1_HOLD_FULL_SHIFT)
+#define RB_DEBUG_0_SET_CMDFIFO_C0_HOLD_FULL(rb_debug_0_reg, cmdfifo_c0_hold_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_CMDFIFO_C0_HOLD_FULL_MASK) | (cmdfifo_c0_hold_full << RB_DEBUG_0_CMDFIFO_C0_HOLD_FULL_SHIFT)
+#define RB_DEBUG_0_SET_CMDFIFO_Z_ORDERING_FULL(rb_debug_0_reg, cmdfifo_z_ordering_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_CMDFIFO_Z_ORDERING_FULL_MASK) | (cmdfifo_z_ordering_full << RB_DEBUG_0_CMDFIFO_Z_ORDERING_FULL_SHIFT)
+#define RB_DEBUG_0_SET_CMDFIFO_C_ORDERING_FULL(rb_debug_0_reg, cmdfifo_c_ordering_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_CMDFIFO_C_ORDERING_FULL_MASK) | (cmdfifo_c_ordering_full << RB_DEBUG_0_CMDFIFO_C_ORDERING_FULL_SHIFT)
+#define RB_DEBUG_0_SET_C_SX_LAT_FULL(rb_debug_0_reg, c_sx_lat_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_C_SX_LAT_FULL_MASK) | (c_sx_lat_full << RB_DEBUG_0_C_SX_LAT_FULL_SHIFT)
+#define RB_DEBUG_0_SET_C_SX_CMD_FULL(rb_debug_0_reg, c_sx_cmd_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_C_SX_CMD_FULL_MASK) | (c_sx_cmd_full << RB_DEBUG_0_C_SX_CMD_FULL_SHIFT)
+#define RB_DEBUG_0_SET_C_EZ_TILE_FULL(rb_debug_0_reg, c_ez_tile_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_C_EZ_TILE_FULL_MASK) | (c_ez_tile_full << RB_DEBUG_0_C_EZ_TILE_FULL_SHIFT)
+#define RB_DEBUG_0_SET_C_REQ_FULL(rb_debug_0_reg, c_req_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_C_REQ_FULL_MASK) | (c_req_full << RB_DEBUG_0_C_REQ_FULL_SHIFT)
+#define RB_DEBUG_0_SET_C_MASK_FULL(rb_debug_0_reg, c_mask_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_C_MASK_FULL_MASK) | (c_mask_full << RB_DEBUG_0_C_MASK_FULL_SHIFT)
+#define RB_DEBUG_0_SET_EZ_INFSAMP_FULL(rb_debug_0_reg, ez_infsamp_full) \
+ rb_debug_0_reg = (rb_debug_0_reg & ~RB_DEBUG_0_EZ_INFSAMP_FULL_MASK) | (ez_infsamp_full << RB_DEBUG_0_EZ_INFSAMP_FULL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_debug_0_t {
+ unsigned int rdreq_ctl_z1_pre_full : RB_DEBUG_0_RDREQ_CTL_Z1_PRE_FULL_SIZE;
+ unsigned int rdreq_ctl_z0_pre_full : RB_DEBUG_0_RDREQ_CTL_Z0_PRE_FULL_SIZE;
+ unsigned int rdreq_ctl_c1_pre_full : RB_DEBUG_0_RDREQ_CTL_C1_PRE_FULL_SIZE;
+ unsigned int rdreq_ctl_c0_pre_full : RB_DEBUG_0_RDREQ_CTL_C0_PRE_FULL_SIZE;
+ unsigned int rdreq_e1_ordering_full : RB_DEBUG_0_RDREQ_E1_ORDERING_FULL_SIZE;
+ unsigned int rdreq_e0_ordering_full : RB_DEBUG_0_RDREQ_E0_ORDERING_FULL_SIZE;
+ unsigned int rdreq_z1_full : RB_DEBUG_0_RDREQ_Z1_FULL_SIZE;
+ unsigned int rdreq_z0_full : RB_DEBUG_0_RDREQ_Z0_FULL_SIZE;
+ unsigned int rdreq_c1_full : RB_DEBUG_0_RDREQ_C1_FULL_SIZE;
+ unsigned int rdreq_c0_full : RB_DEBUG_0_RDREQ_C0_FULL_SIZE;
+ unsigned int wrreq_e1_macro_hi_full : RB_DEBUG_0_WRREQ_E1_MACRO_HI_FULL_SIZE;
+ unsigned int wrreq_e1_macro_lo_full : RB_DEBUG_0_WRREQ_E1_MACRO_LO_FULL_SIZE;
+ unsigned int wrreq_e0_macro_hi_full : RB_DEBUG_0_WRREQ_E0_MACRO_HI_FULL_SIZE;
+ unsigned int wrreq_e0_macro_lo_full : RB_DEBUG_0_WRREQ_E0_MACRO_LO_FULL_SIZE;
+ unsigned int wrreq_c_we_hi_full : RB_DEBUG_0_WRREQ_C_WE_HI_FULL_SIZE;
+ unsigned int wrreq_c_we_lo_full : RB_DEBUG_0_WRREQ_C_WE_LO_FULL_SIZE;
+ unsigned int wrreq_z1_full : RB_DEBUG_0_WRREQ_Z1_FULL_SIZE;
+ unsigned int wrreq_z0_full : RB_DEBUG_0_WRREQ_Z0_FULL_SIZE;
+ unsigned int wrreq_c1_full : RB_DEBUG_0_WRREQ_C1_FULL_SIZE;
+ unsigned int wrreq_c0_full : RB_DEBUG_0_WRREQ_C0_FULL_SIZE;
+ unsigned int cmdfifo_z1_hold_full : RB_DEBUG_0_CMDFIFO_Z1_HOLD_FULL_SIZE;
+ unsigned int cmdfifo_z0_hold_full : RB_DEBUG_0_CMDFIFO_Z0_HOLD_FULL_SIZE;
+ unsigned int cmdfifo_c1_hold_full : RB_DEBUG_0_CMDFIFO_C1_HOLD_FULL_SIZE;
+ unsigned int cmdfifo_c0_hold_full : RB_DEBUG_0_CMDFIFO_C0_HOLD_FULL_SIZE;
+ unsigned int cmdfifo_z_ordering_full : RB_DEBUG_0_CMDFIFO_Z_ORDERING_FULL_SIZE;
+ unsigned int cmdfifo_c_ordering_full : RB_DEBUG_0_CMDFIFO_C_ORDERING_FULL_SIZE;
+ unsigned int c_sx_lat_full : RB_DEBUG_0_C_SX_LAT_FULL_SIZE;
+ unsigned int c_sx_cmd_full : RB_DEBUG_0_C_SX_CMD_FULL_SIZE;
+ unsigned int c_ez_tile_full : RB_DEBUG_0_C_EZ_TILE_FULL_SIZE;
+ unsigned int c_req_full : RB_DEBUG_0_C_REQ_FULL_SIZE;
+ unsigned int c_mask_full : RB_DEBUG_0_C_MASK_FULL_SIZE;
+ unsigned int ez_infsamp_full : RB_DEBUG_0_EZ_INFSAMP_FULL_SIZE;
+ } rb_debug_0_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_debug_0_t {
+ unsigned int ez_infsamp_full : RB_DEBUG_0_EZ_INFSAMP_FULL_SIZE;
+ unsigned int c_mask_full : RB_DEBUG_0_C_MASK_FULL_SIZE;
+ unsigned int c_req_full : RB_DEBUG_0_C_REQ_FULL_SIZE;
+ unsigned int c_ez_tile_full : RB_DEBUG_0_C_EZ_TILE_FULL_SIZE;
+ unsigned int c_sx_cmd_full : RB_DEBUG_0_C_SX_CMD_FULL_SIZE;
+ unsigned int c_sx_lat_full : RB_DEBUG_0_C_SX_LAT_FULL_SIZE;
+ unsigned int cmdfifo_c_ordering_full : RB_DEBUG_0_CMDFIFO_C_ORDERING_FULL_SIZE;
+ unsigned int cmdfifo_z_ordering_full : RB_DEBUG_0_CMDFIFO_Z_ORDERING_FULL_SIZE;
+ unsigned int cmdfifo_c0_hold_full : RB_DEBUG_0_CMDFIFO_C0_HOLD_FULL_SIZE;
+ unsigned int cmdfifo_c1_hold_full : RB_DEBUG_0_CMDFIFO_C1_HOLD_FULL_SIZE;
+ unsigned int cmdfifo_z0_hold_full : RB_DEBUG_0_CMDFIFO_Z0_HOLD_FULL_SIZE;
+ unsigned int cmdfifo_z1_hold_full : RB_DEBUG_0_CMDFIFO_Z1_HOLD_FULL_SIZE;
+ unsigned int wrreq_c0_full : RB_DEBUG_0_WRREQ_C0_FULL_SIZE;
+ unsigned int wrreq_c1_full : RB_DEBUG_0_WRREQ_C1_FULL_SIZE;
+ unsigned int wrreq_z0_full : RB_DEBUG_0_WRREQ_Z0_FULL_SIZE;
+ unsigned int wrreq_z1_full : RB_DEBUG_0_WRREQ_Z1_FULL_SIZE;
+ unsigned int wrreq_c_we_lo_full : RB_DEBUG_0_WRREQ_C_WE_LO_FULL_SIZE;
+ unsigned int wrreq_c_we_hi_full : RB_DEBUG_0_WRREQ_C_WE_HI_FULL_SIZE;
+ unsigned int wrreq_e0_macro_lo_full : RB_DEBUG_0_WRREQ_E0_MACRO_LO_FULL_SIZE;
+ unsigned int wrreq_e0_macro_hi_full : RB_DEBUG_0_WRREQ_E0_MACRO_HI_FULL_SIZE;
+ unsigned int wrreq_e1_macro_lo_full : RB_DEBUG_0_WRREQ_E1_MACRO_LO_FULL_SIZE;
+ unsigned int wrreq_e1_macro_hi_full : RB_DEBUG_0_WRREQ_E1_MACRO_HI_FULL_SIZE;
+ unsigned int rdreq_c0_full : RB_DEBUG_0_RDREQ_C0_FULL_SIZE;
+ unsigned int rdreq_c1_full : RB_DEBUG_0_RDREQ_C1_FULL_SIZE;
+ unsigned int rdreq_z0_full : RB_DEBUG_0_RDREQ_Z0_FULL_SIZE;
+ unsigned int rdreq_z1_full : RB_DEBUG_0_RDREQ_Z1_FULL_SIZE;
+ unsigned int rdreq_e0_ordering_full : RB_DEBUG_0_RDREQ_E0_ORDERING_FULL_SIZE;
+ unsigned int rdreq_e1_ordering_full : RB_DEBUG_0_RDREQ_E1_ORDERING_FULL_SIZE;
+ unsigned int rdreq_ctl_c0_pre_full : RB_DEBUG_0_RDREQ_CTL_C0_PRE_FULL_SIZE;
+ unsigned int rdreq_ctl_c1_pre_full : RB_DEBUG_0_RDREQ_CTL_C1_PRE_FULL_SIZE;
+ unsigned int rdreq_ctl_z0_pre_full : RB_DEBUG_0_RDREQ_CTL_Z0_PRE_FULL_SIZE;
+ unsigned int rdreq_ctl_z1_pre_full : RB_DEBUG_0_RDREQ_CTL_Z1_PRE_FULL_SIZE;
+ } rb_debug_0_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_debug_0_t f;
+} rb_debug_0_u;
+
+
+/*
+ * RB_DEBUG_1 struct
+ */
+
+#define RB_DEBUG_1_RDREQ_Z1_CMD_EMPTY_SIZE 1
+#define RB_DEBUG_1_RDREQ_Z0_CMD_EMPTY_SIZE 1
+#define RB_DEBUG_1_RDREQ_C1_CMD_EMPTY_SIZE 1
+#define RB_DEBUG_1_RDREQ_C0_CMD_EMPTY_SIZE 1
+#define RB_DEBUG_1_RDREQ_E1_ORDERING_EMPTY_SIZE 1
+#define RB_DEBUG_1_RDREQ_E0_ORDERING_EMPTY_SIZE 1
+#define RB_DEBUG_1_RDREQ_Z1_EMPTY_SIZE 1
+#define RB_DEBUG_1_RDREQ_Z0_EMPTY_SIZE 1
+#define RB_DEBUG_1_RDREQ_C1_EMPTY_SIZE 1
+#define RB_DEBUG_1_RDREQ_C0_EMPTY_SIZE 1
+#define RB_DEBUG_1_WRREQ_E1_MACRO_HI_EMPTY_SIZE 1
+#define RB_DEBUG_1_WRREQ_E1_MACRO_LO_EMPTY_SIZE 1
+#define RB_DEBUG_1_WRREQ_E0_MACRO_HI_EMPTY_SIZE 1
+#define RB_DEBUG_1_WRREQ_E0_MACRO_LO_EMPTY_SIZE 1
+#define RB_DEBUG_1_WRREQ_C_WE_HI_EMPTY_SIZE 1
+#define RB_DEBUG_1_WRREQ_C_WE_LO_EMPTY_SIZE 1
+#define RB_DEBUG_1_WRREQ_Z1_EMPTY_SIZE 1
+#define RB_DEBUG_1_WRREQ_Z0_EMPTY_SIZE 1
+#define RB_DEBUG_1_WRREQ_C1_PRE_EMPTY_SIZE 1
+#define RB_DEBUG_1_WRREQ_C0_PRE_EMPTY_SIZE 1
+#define RB_DEBUG_1_CMDFIFO_Z1_HOLD_EMPTY_SIZE 1
+#define RB_DEBUG_1_CMDFIFO_Z0_HOLD_EMPTY_SIZE 1
+#define RB_DEBUG_1_CMDFIFO_C1_HOLD_EMPTY_SIZE 1
+#define RB_DEBUG_1_CMDFIFO_C0_HOLD_EMPTY_SIZE 1
+#define RB_DEBUG_1_CMDFIFO_Z_ORDERING_EMPTY_SIZE 1
+#define RB_DEBUG_1_CMDFIFO_C_ORDERING_EMPTY_SIZE 1
+#define RB_DEBUG_1_C_SX_LAT_EMPTY_SIZE 1
+#define RB_DEBUG_1_C_SX_CMD_EMPTY_SIZE 1
+#define RB_DEBUG_1_C_EZ_TILE_EMPTY_SIZE 1
+#define RB_DEBUG_1_C_REQ_EMPTY_SIZE 1
+#define RB_DEBUG_1_C_MASK_EMPTY_SIZE 1
+#define RB_DEBUG_1_EZ_INFSAMP_EMPTY_SIZE 1
+
+#define RB_DEBUG_1_RDREQ_Z1_CMD_EMPTY_SHIFT 0
+#define RB_DEBUG_1_RDREQ_Z0_CMD_EMPTY_SHIFT 1
+#define RB_DEBUG_1_RDREQ_C1_CMD_EMPTY_SHIFT 2
+#define RB_DEBUG_1_RDREQ_C0_CMD_EMPTY_SHIFT 3
+#define RB_DEBUG_1_RDREQ_E1_ORDERING_EMPTY_SHIFT 4
+#define RB_DEBUG_1_RDREQ_E0_ORDERING_EMPTY_SHIFT 5
+#define RB_DEBUG_1_RDREQ_Z1_EMPTY_SHIFT 6
+#define RB_DEBUG_1_RDREQ_Z0_EMPTY_SHIFT 7
+#define RB_DEBUG_1_RDREQ_C1_EMPTY_SHIFT 8
+#define RB_DEBUG_1_RDREQ_C0_EMPTY_SHIFT 9
+#define RB_DEBUG_1_WRREQ_E1_MACRO_HI_EMPTY_SHIFT 10
+#define RB_DEBUG_1_WRREQ_E1_MACRO_LO_EMPTY_SHIFT 11
+#define RB_DEBUG_1_WRREQ_E0_MACRO_HI_EMPTY_SHIFT 12
+#define RB_DEBUG_1_WRREQ_E0_MACRO_LO_EMPTY_SHIFT 13
+#define RB_DEBUG_1_WRREQ_C_WE_HI_EMPTY_SHIFT 14
+#define RB_DEBUG_1_WRREQ_C_WE_LO_EMPTY_SHIFT 15
+#define RB_DEBUG_1_WRREQ_Z1_EMPTY_SHIFT 16
+#define RB_DEBUG_1_WRREQ_Z0_EMPTY_SHIFT 17
+#define RB_DEBUG_1_WRREQ_C1_PRE_EMPTY_SHIFT 18
+#define RB_DEBUG_1_WRREQ_C0_PRE_EMPTY_SHIFT 19
+#define RB_DEBUG_1_CMDFIFO_Z1_HOLD_EMPTY_SHIFT 20
+#define RB_DEBUG_1_CMDFIFO_Z0_HOLD_EMPTY_SHIFT 21
+#define RB_DEBUG_1_CMDFIFO_C1_HOLD_EMPTY_SHIFT 22
+#define RB_DEBUG_1_CMDFIFO_C0_HOLD_EMPTY_SHIFT 23
+#define RB_DEBUG_1_CMDFIFO_Z_ORDERING_EMPTY_SHIFT 24
+#define RB_DEBUG_1_CMDFIFO_C_ORDERING_EMPTY_SHIFT 25
+#define RB_DEBUG_1_C_SX_LAT_EMPTY_SHIFT 26
+#define RB_DEBUG_1_C_SX_CMD_EMPTY_SHIFT 27
+#define RB_DEBUG_1_C_EZ_TILE_EMPTY_SHIFT 28
+#define RB_DEBUG_1_C_REQ_EMPTY_SHIFT 29
+#define RB_DEBUG_1_C_MASK_EMPTY_SHIFT 30
+#define RB_DEBUG_1_EZ_INFSAMP_EMPTY_SHIFT 31
+
+#define RB_DEBUG_1_RDREQ_Z1_CMD_EMPTY_MASK 0x00000001
+#define RB_DEBUG_1_RDREQ_Z0_CMD_EMPTY_MASK 0x00000002
+#define RB_DEBUG_1_RDREQ_C1_CMD_EMPTY_MASK 0x00000004
+#define RB_DEBUG_1_RDREQ_C0_CMD_EMPTY_MASK 0x00000008
+#define RB_DEBUG_1_RDREQ_E1_ORDERING_EMPTY_MASK 0x00000010
+#define RB_DEBUG_1_RDREQ_E0_ORDERING_EMPTY_MASK 0x00000020
+#define RB_DEBUG_1_RDREQ_Z1_EMPTY_MASK 0x00000040
+#define RB_DEBUG_1_RDREQ_Z0_EMPTY_MASK 0x00000080
+#define RB_DEBUG_1_RDREQ_C1_EMPTY_MASK 0x00000100
+#define RB_DEBUG_1_RDREQ_C0_EMPTY_MASK 0x00000200
+#define RB_DEBUG_1_WRREQ_E1_MACRO_HI_EMPTY_MASK 0x00000400
+#define RB_DEBUG_1_WRREQ_E1_MACRO_LO_EMPTY_MASK 0x00000800
+#define RB_DEBUG_1_WRREQ_E0_MACRO_HI_EMPTY_MASK 0x00001000
+#define RB_DEBUG_1_WRREQ_E0_MACRO_LO_EMPTY_MASK 0x00002000
+#define RB_DEBUG_1_WRREQ_C_WE_HI_EMPTY_MASK 0x00004000
+#define RB_DEBUG_1_WRREQ_C_WE_LO_EMPTY_MASK 0x00008000
+#define RB_DEBUG_1_WRREQ_Z1_EMPTY_MASK 0x00010000
+#define RB_DEBUG_1_WRREQ_Z0_EMPTY_MASK 0x00020000
+#define RB_DEBUG_1_WRREQ_C1_PRE_EMPTY_MASK 0x00040000
+#define RB_DEBUG_1_WRREQ_C0_PRE_EMPTY_MASK 0x00080000
+#define RB_DEBUG_1_CMDFIFO_Z1_HOLD_EMPTY_MASK 0x00100000
+#define RB_DEBUG_1_CMDFIFO_Z0_HOLD_EMPTY_MASK 0x00200000
+#define RB_DEBUG_1_CMDFIFO_C1_HOLD_EMPTY_MASK 0x00400000
+#define RB_DEBUG_1_CMDFIFO_C0_HOLD_EMPTY_MASK 0x00800000
+#define RB_DEBUG_1_CMDFIFO_Z_ORDERING_EMPTY_MASK 0x01000000
+#define RB_DEBUG_1_CMDFIFO_C_ORDERING_EMPTY_MASK 0x02000000
+#define RB_DEBUG_1_C_SX_LAT_EMPTY_MASK 0x04000000
+#define RB_DEBUG_1_C_SX_CMD_EMPTY_MASK 0x08000000
+#define RB_DEBUG_1_C_EZ_TILE_EMPTY_MASK 0x10000000
+#define RB_DEBUG_1_C_REQ_EMPTY_MASK 0x20000000
+#define RB_DEBUG_1_C_MASK_EMPTY_MASK 0x40000000
+#define RB_DEBUG_1_EZ_INFSAMP_EMPTY_MASK 0x80000000
+
+#define RB_DEBUG_1_MASK \
+ (RB_DEBUG_1_RDREQ_Z1_CMD_EMPTY_MASK | \
+ RB_DEBUG_1_RDREQ_Z0_CMD_EMPTY_MASK | \
+ RB_DEBUG_1_RDREQ_C1_CMD_EMPTY_MASK | \
+ RB_DEBUG_1_RDREQ_C0_CMD_EMPTY_MASK | \
+ RB_DEBUG_1_RDREQ_E1_ORDERING_EMPTY_MASK | \
+ RB_DEBUG_1_RDREQ_E0_ORDERING_EMPTY_MASK | \
+ RB_DEBUG_1_RDREQ_Z1_EMPTY_MASK | \
+ RB_DEBUG_1_RDREQ_Z0_EMPTY_MASK | \
+ RB_DEBUG_1_RDREQ_C1_EMPTY_MASK | \
+ RB_DEBUG_1_RDREQ_C0_EMPTY_MASK | \
+ RB_DEBUG_1_WRREQ_E1_MACRO_HI_EMPTY_MASK | \
+ RB_DEBUG_1_WRREQ_E1_MACRO_LO_EMPTY_MASK | \
+ RB_DEBUG_1_WRREQ_E0_MACRO_HI_EMPTY_MASK | \
+ RB_DEBUG_1_WRREQ_E0_MACRO_LO_EMPTY_MASK | \
+ RB_DEBUG_1_WRREQ_C_WE_HI_EMPTY_MASK | \
+ RB_DEBUG_1_WRREQ_C_WE_LO_EMPTY_MASK | \
+ RB_DEBUG_1_WRREQ_Z1_EMPTY_MASK | \
+ RB_DEBUG_1_WRREQ_Z0_EMPTY_MASK | \
+ RB_DEBUG_1_WRREQ_C1_PRE_EMPTY_MASK | \
+ RB_DEBUG_1_WRREQ_C0_PRE_EMPTY_MASK | \
+ RB_DEBUG_1_CMDFIFO_Z1_HOLD_EMPTY_MASK | \
+ RB_DEBUG_1_CMDFIFO_Z0_HOLD_EMPTY_MASK | \
+ RB_DEBUG_1_CMDFIFO_C1_HOLD_EMPTY_MASK | \
+ RB_DEBUG_1_CMDFIFO_C0_HOLD_EMPTY_MASK | \
+ RB_DEBUG_1_CMDFIFO_Z_ORDERING_EMPTY_MASK | \
+ RB_DEBUG_1_CMDFIFO_C_ORDERING_EMPTY_MASK | \
+ RB_DEBUG_1_C_SX_LAT_EMPTY_MASK | \
+ RB_DEBUG_1_C_SX_CMD_EMPTY_MASK | \
+ RB_DEBUG_1_C_EZ_TILE_EMPTY_MASK | \
+ RB_DEBUG_1_C_REQ_EMPTY_MASK | \
+ RB_DEBUG_1_C_MASK_EMPTY_MASK | \
+ RB_DEBUG_1_EZ_INFSAMP_EMPTY_MASK)
+
+#define RB_DEBUG_1(rdreq_z1_cmd_empty, rdreq_z0_cmd_empty, rdreq_c1_cmd_empty, rdreq_c0_cmd_empty, rdreq_e1_ordering_empty, rdreq_e0_ordering_empty, rdreq_z1_empty, rdreq_z0_empty, rdreq_c1_empty, rdreq_c0_empty, wrreq_e1_macro_hi_empty, wrreq_e1_macro_lo_empty, wrreq_e0_macro_hi_empty, wrreq_e0_macro_lo_empty, wrreq_c_we_hi_empty, wrreq_c_we_lo_empty, wrreq_z1_empty, wrreq_z0_empty, wrreq_c1_pre_empty, wrreq_c0_pre_empty, cmdfifo_z1_hold_empty, cmdfifo_z0_hold_empty, cmdfifo_c1_hold_empty, cmdfifo_c0_hold_empty, cmdfifo_z_ordering_empty, cmdfifo_c_ordering_empty, c_sx_lat_empty, c_sx_cmd_empty, c_ez_tile_empty, c_req_empty, c_mask_empty, ez_infsamp_empty) \
+ ((rdreq_z1_cmd_empty << RB_DEBUG_1_RDREQ_Z1_CMD_EMPTY_SHIFT) | \
+ (rdreq_z0_cmd_empty << RB_DEBUG_1_RDREQ_Z0_CMD_EMPTY_SHIFT) | \
+ (rdreq_c1_cmd_empty << RB_DEBUG_1_RDREQ_C1_CMD_EMPTY_SHIFT) | \
+ (rdreq_c0_cmd_empty << RB_DEBUG_1_RDREQ_C0_CMD_EMPTY_SHIFT) | \
+ (rdreq_e1_ordering_empty << RB_DEBUG_1_RDREQ_E1_ORDERING_EMPTY_SHIFT) | \
+ (rdreq_e0_ordering_empty << RB_DEBUG_1_RDREQ_E0_ORDERING_EMPTY_SHIFT) | \
+ (rdreq_z1_empty << RB_DEBUG_1_RDREQ_Z1_EMPTY_SHIFT) | \
+ (rdreq_z0_empty << RB_DEBUG_1_RDREQ_Z0_EMPTY_SHIFT) | \
+ (rdreq_c1_empty << RB_DEBUG_1_RDREQ_C1_EMPTY_SHIFT) | \
+ (rdreq_c0_empty << RB_DEBUG_1_RDREQ_C0_EMPTY_SHIFT) | \
+ (wrreq_e1_macro_hi_empty << RB_DEBUG_1_WRREQ_E1_MACRO_HI_EMPTY_SHIFT) | \
+ (wrreq_e1_macro_lo_empty << RB_DEBUG_1_WRREQ_E1_MACRO_LO_EMPTY_SHIFT) | \
+ (wrreq_e0_macro_hi_empty << RB_DEBUG_1_WRREQ_E0_MACRO_HI_EMPTY_SHIFT) | \
+ (wrreq_e0_macro_lo_empty << RB_DEBUG_1_WRREQ_E0_MACRO_LO_EMPTY_SHIFT) | \
+ (wrreq_c_we_hi_empty << RB_DEBUG_1_WRREQ_C_WE_HI_EMPTY_SHIFT) | \
+ (wrreq_c_we_lo_empty << RB_DEBUG_1_WRREQ_C_WE_LO_EMPTY_SHIFT) | \
+ (wrreq_z1_empty << RB_DEBUG_1_WRREQ_Z1_EMPTY_SHIFT) | \
+ (wrreq_z0_empty << RB_DEBUG_1_WRREQ_Z0_EMPTY_SHIFT) | \
+ (wrreq_c1_pre_empty << RB_DEBUG_1_WRREQ_C1_PRE_EMPTY_SHIFT) | \
+ (wrreq_c0_pre_empty << RB_DEBUG_1_WRREQ_C0_PRE_EMPTY_SHIFT) | \
+ (cmdfifo_z1_hold_empty << RB_DEBUG_1_CMDFIFO_Z1_HOLD_EMPTY_SHIFT) | \
+ (cmdfifo_z0_hold_empty << RB_DEBUG_1_CMDFIFO_Z0_HOLD_EMPTY_SHIFT) | \
+ (cmdfifo_c1_hold_empty << RB_DEBUG_1_CMDFIFO_C1_HOLD_EMPTY_SHIFT) | \
+ (cmdfifo_c0_hold_empty << RB_DEBUG_1_CMDFIFO_C0_HOLD_EMPTY_SHIFT) | \
+ (cmdfifo_z_ordering_empty << RB_DEBUG_1_CMDFIFO_Z_ORDERING_EMPTY_SHIFT) | \
+ (cmdfifo_c_ordering_empty << RB_DEBUG_1_CMDFIFO_C_ORDERING_EMPTY_SHIFT) | \
+ (c_sx_lat_empty << RB_DEBUG_1_C_SX_LAT_EMPTY_SHIFT) | \
+ (c_sx_cmd_empty << RB_DEBUG_1_C_SX_CMD_EMPTY_SHIFT) | \
+ (c_ez_tile_empty << RB_DEBUG_1_C_EZ_TILE_EMPTY_SHIFT) | \
+ (c_req_empty << RB_DEBUG_1_C_REQ_EMPTY_SHIFT) | \
+ (c_mask_empty << RB_DEBUG_1_C_MASK_EMPTY_SHIFT) | \
+ (ez_infsamp_empty << RB_DEBUG_1_EZ_INFSAMP_EMPTY_SHIFT))
+
+#define RB_DEBUG_1_GET_RDREQ_Z1_CMD_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_RDREQ_Z1_CMD_EMPTY_MASK) >> RB_DEBUG_1_RDREQ_Z1_CMD_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_RDREQ_Z0_CMD_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_RDREQ_Z0_CMD_EMPTY_MASK) >> RB_DEBUG_1_RDREQ_Z0_CMD_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_RDREQ_C1_CMD_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_RDREQ_C1_CMD_EMPTY_MASK) >> RB_DEBUG_1_RDREQ_C1_CMD_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_RDREQ_C0_CMD_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_RDREQ_C0_CMD_EMPTY_MASK) >> RB_DEBUG_1_RDREQ_C0_CMD_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_RDREQ_E1_ORDERING_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_RDREQ_E1_ORDERING_EMPTY_MASK) >> RB_DEBUG_1_RDREQ_E1_ORDERING_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_RDREQ_E0_ORDERING_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_RDREQ_E0_ORDERING_EMPTY_MASK) >> RB_DEBUG_1_RDREQ_E0_ORDERING_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_RDREQ_Z1_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_RDREQ_Z1_EMPTY_MASK) >> RB_DEBUG_1_RDREQ_Z1_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_RDREQ_Z0_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_RDREQ_Z0_EMPTY_MASK) >> RB_DEBUG_1_RDREQ_Z0_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_RDREQ_C1_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_RDREQ_C1_EMPTY_MASK) >> RB_DEBUG_1_RDREQ_C1_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_RDREQ_C0_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_RDREQ_C0_EMPTY_MASK) >> RB_DEBUG_1_RDREQ_C0_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_WRREQ_E1_MACRO_HI_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_WRREQ_E1_MACRO_HI_EMPTY_MASK) >> RB_DEBUG_1_WRREQ_E1_MACRO_HI_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_WRREQ_E1_MACRO_LO_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_WRREQ_E1_MACRO_LO_EMPTY_MASK) >> RB_DEBUG_1_WRREQ_E1_MACRO_LO_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_WRREQ_E0_MACRO_HI_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_WRREQ_E0_MACRO_HI_EMPTY_MASK) >> RB_DEBUG_1_WRREQ_E0_MACRO_HI_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_WRREQ_E0_MACRO_LO_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_WRREQ_E0_MACRO_LO_EMPTY_MASK) >> RB_DEBUG_1_WRREQ_E0_MACRO_LO_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_WRREQ_C_WE_HI_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_WRREQ_C_WE_HI_EMPTY_MASK) >> RB_DEBUG_1_WRREQ_C_WE_HI_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_WRREQ_C_WE_LO_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_WRREQ_C_WE_LO_EMPTY_MASK) >> RB_DEBUG_1_WRREQ_C_WE_LO_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_WRREQ_Z1_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_WRREQ_Z1_EMPTY_MASK) >> RB_DEBUG_1_WRREQ_Z1_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_WRREQ_Z0_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_WRREQ_Z0_EMPTY_MASK) >> RB_DEBUG_1_WRREQ_Z0_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_WRREQ_C1_PRE_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_WRREQ_C1_PRE_EMPTY_MASK) >> RB_DEBUG_1_WRREQ_C1_PRE_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_WRREQ_C0_PRE_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_WRREQ_C0_PRE_EMPTY_MASK) >> RB_DEBUG_1_WRREQ_C0_PRE_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_CMDFIFO_Z1_HOLD_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_CMDFIFO_Z1_HOLD_EMPTY_MASK) >> RB_DEBUG_1_CMDFIFO_Z1_HOLD_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_CMDFIFO_Z0_HOLD_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_CMDFIFO_Z0_HOLD_EMPTY_MASK) >> RB_DEBUG_1_CMDFIFO_Z0_HOLD_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_CMDFIFO_C1_HOLD_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_CMDFIFO_C1_HOLD_EMPTY_MASK) >> RB_DEBUG_1_CMDFIFO_C1_HOLD_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_CMDFIFO_C0_HOLD_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_CMDFIFO_C0_HOLD_EMPTY_MASK) >> RB_DEBUG_1_CMDFIFO_C0_HOLD_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_CMDFIFO_Z_ORDERING_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_CMDFIFO_Z_ORDERING_EMPTY_MASK) >> RB_DEBUG_1_CMDFIFO_Z_ORDERING_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_CMDFIFO_C_ORDERING_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_CMDFIFO_C_ORDERING_EMPTY_MASK) >> RB_DEBUG_1_CMDFIFO_C_ORDERING_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_C_SX_LAT_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_C_SX_LAT_EMPTY_MASK) >> RB_DEBUG_1_C_SX_LAT_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_C_SX_CMD_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_C_SX_CMD_EMPTY_MASK) >> RB_DEBUG_1_C_SX_CMD_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_C_EZ_TILE_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_C_EZ_TILE_EMPTY_MASK) >> RB_DEBUG_1_C_EZ_TILE_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_C_REQ_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_C_REQ_EMPTY_MASK) >> RB_DEBUG_1_C_REQ_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_C_MASK_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_C_MASK_EMPTY_MASK) >> RB_DEBUG_1_C_MASK_EMPTY_SHIFT)
+#define RB_DEBUG_1_GET_EZ_INFSAMP_EMPTY(rb_debug_1) \
+ ((rb_debug_1 & RB_DEBUG_1_EZ_INFSAMP_EMPTY_MASK) >> RB_DEBUG_1_EZ_INFSAMP_EMPTY_SHIFT)
+
+#define RB_DEBUG_1_SET_RDREQ_Z1_CMD_EMPTY(rb_debug_1_reg, rdreq_z1_cmd_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_RDREQ_Z1_CMD_EMPTY_MASK) | (rdreq_z1_cmd_empty << RB_DEBUG_1_RDREQ_Z1_CMD_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_RDREQ_Z0_CMD_EMPTY(rb_debug_1_reg, rdreq_z0_cmd_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_RDREQ_Z0_CMD_EMPTY_MASK) | (rdreq_z0_cmd_empty << RB_DEBUG_1_RDREQ_Z0_CMD_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_RDREQ_C1_CMD_EMPTY(rb_debug_1_reg, rdreq_c1_cmd_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_RDREQ_C1_CMD_EMPTY_MASK) | (rdreq_c1_cmd_empty << RB_DEBUG_1_RDREQ_C1_CMD_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_RDREQ_C0_CMD_EMPTY(rb_debug_1_reg, rdreq_c0_cmd_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_RDREQ_C0_CMD_EMPTY_MASK) | (rdreq_c0_cmd_empty << RB_DEBUG_1_RDREQ_C0_CMD_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_RDREQ_E1_ORDERING_EMPTY(rb_debug_1_reg, rdreq_e1_ordering_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_RDREQ_E1_ORDERING_EMPTY_MASK) | (rdreq_e1_ordering_empty << RB_DEBUG_1_RDREQ_E1_ORDERING_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_RDREQ_E0_ORDERING_EMPTY(rb_debug_1_reg, rdreq_e0_ordering_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_RDREQ_E0_ORDERING_EMPTY_MASK) | (rdreq_e0_ordering_empty << RB_DEBUG_1_RDREQ_E0_ORDERING_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_RDREQ_Z1_EMPTY(rb_debug_1_reg, rdreq_z1_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_RDREQ_Z1_EMPTY_MASK) | (rdreq_z1_empty << RB_DEBUG_1_RDREQ_Z1_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_RDREQ_Z0_EMPTY(rb_debug_1_reg, rdreq_z0_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_RDREQ_Z0_EMPTY_MASK) | (rdreq_z0_empty << RB_DEBUG_1_RDREQ_Z0_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_RDREQ_C1_EMPTY(rb_debug_1_reg, rdreq_c1_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_RDREQ_C1_EMPTY_MASK) | (rdreq_c1_empty << RB_DEBUG_1_RDREQ_C1_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_RDREQ_C0_EMPTY(rb_debug_1_reg, rdreq_c0_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_RDREQ_C0_EMPTY_MASK) | (rdreq_c0_empty << RB_DEBUG_1_RDREQ_C0_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_WRREQ_E1_MACRO_HI_EMPTY(rb_debug_1_reg, wrreq_e1_macro_hi_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_WRREQ_E1_MACRO_HI_EMPTY_MASK) | (wrreq_e1_macro_hi_empty << RB_DEBUG_1_WRREQ_E1_MACRO_HI_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_WRREQ_E1_MACRO_LO_EMPTY(rb_debug_1_reg, wrreq_e1_macro_lo_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_WRREQ_E1_MACRO_LO_EMPTY_MASK) | (wrreq_e1_macro_lo_empty << RB_DEBUG_1_WRREQ_E1_MACRO_LO_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_WRREQ_E0_MACRO_HI_EMPTY(rb_debug_1_reg, wrreq_e0_macro_hi_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_WRREQ_E0_MACRO_HI_EMPTY_MASK) | (wrreq_e0_macro_hi_empty << RB_DEBUG_1_WRREQ_E0_MACRO_HI_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_WRREQ_E0_MACRO_LO_EMPTY(rb_debug_1_reg, wrreq_e0_macro_lo_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_WRREQ_E0_MACRO_LO_EMPTY_MASK) | (wrreq_e0_macro_lo_empty << RB_DEBUG_1_WRREQ_E0_MACRO_LO_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_WRREQ_C_WE_HI_EMPTY(rb_debug_1_reg, wrreq_c_we_hi_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_WRREQ_C_WE_HI_EMPTY_MASK) | (wrreq_c_we_hi_empty << RB_DEBUG_1_WRREQ_C_WE_HI_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_WRREQ_C_WE_LO_EMPTY(rb_debug_1_reg, wrreq_c_we_lo_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_WRREQ_C_WE_LO_EMPTY_MASK) | (wrreq_c_we_lo_empty << RB_DEBUG_1_WRREQ_C_WE_LO_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_WRREQ_Z1_EMPTY(rb_debug_1_reg, wrreq_z1_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_WRREQ_Z1_EMPTY_MASK) | (wrreq_z1_empty << RB_DEBUG_1_WRREQ_Z1_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_WRREQ_Z0_EMPTY(rb_debug_1_reg, wrreq_z0_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_WRREQ_Z0_EMPTY_MASK) | (wrreq_z0_empty << RB_DEBUG_1_WRREQ_Z0_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_WRREQ_C1_PRE_EMPTY(rb_debug_1_reg, wrreq_c1_pre_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_WRREQ_C1_PRE_EMPTY_MASK) | (wrreq_c1_pre_empty << RB_DEBUG_1_WRREQ_C1_PRE_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_WRREQ_C0_PRE_EMPTY(rb_debug_1_reg, wrreq_c0_pre_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_WRREQ_C0_PRE_EMPTY_MASK) | (wrreq_c0_pre_empty << RB_DEBUG_1_WRREQ_C0_PRE_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_CMDFIFO_Z1_HOLD_EMPTY(rb_debug_1_reg, cmdfifo_z1_hold_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_CMDFIFO_Z1_HOLD_EMPTY_MASK) | (cmdfifo_z1_hold_empty << RB_DEBUG_1_CMDFIFO_Z1_HOLD_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_CMDFIFO_Z0_HOLD_EMPTY(rb_debug_1_reg, cmdfifo_z0_hold_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_CMDFIFO_Z0_HOLD_EMPTY_MASK) | (cmdfifo_z0_hold_empty << RB_DEBUG_1_CMDFIFO_Z0_HOLD_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_CMDFIFO_C1_HOLD_EMPTY(rb_debug_1_reg, cmdfifo_c1_hold_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_CMDFIFO_C1_HOLD_EMPTY_MASK) | (cmdfifo_c1_hold_empty << RB_DEBUG_1_CMDFIFO_C1_HOLD_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_CMDFIFO_C0_HOLD_EMPTY(rb_debug_1_reg, cmdfifo_c0_hold_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_CMDFIFO_C0_HOLD_EMPTY_MASK) | (cmdfifo_c0_hold_empty << RB_DEBUG_1_CMDFIFO_C0_HOLD_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_CMDFIFO_Z_ORDERING_EMPTY(rb_debug_1_reg, cmdfifo_z_ordering_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_CMDFIFO_Z_ORDERING_EMPTY_MASK) | (cmdfifo_z_ordering_empty << RB_DEBUG_1_CMDFIFO_Z_ORDERING_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_CMDFIFO_C_ORDERING_EMPTY(rb_debug_1_reg, cmdfifo_c_ordering_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_CMDFIFO_C_ORDERING_EMPTY_MASK) | (cmdfifo_c_ordering_empty << RB_DEBUG_1_CMDFIFO_C_ORDERING_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_C_SX_LAT_EMPTY(rb_debug_1_reg, c_sx_lat_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_C_SX_LAT_EMPTY_MASK) | (c_sx_lat_empty << RB_DEBUG_1_C_SX_LAT_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_C_SX_CMD_EMPTY(rb_debug_1_reg, c_sx_cmd_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_C_SX_CMD_EMPTY_MASK) | (c_sx_cmd_empty << RB_DEBUG_1_C_SX_CMD_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_C_EZ_TILE_EMPTY(rb_debug_1_reg, c_ez_tile_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_C_EZ_TILE_EMPTY_MASK) | (c_ez_tile_empty << RB_DEBUG_1_C_EZ_TILE_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_C_REQ_EMPTY(rb_debug_1_reg, c_req_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_C_REQ_EMPTY_MASK) | (c_req_empty << RB_DEBUG_1_C_REQ_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_C_MASK_EMPTY(rb_debug_1_reg, c_mask_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_C_MASK_EMPTY_MASK) | (c_mask_empty << RB_DEBUG_1_C_MASK_EMPTY_SHIFT)
+#define RB_DEBUG_1_SET_EZ_INFSAMP_EMPTY(rb_debug_1_reg, ez_infsamp_empty) \
+ rb_debug_1_reg = (rb_debug_1_reg & ~RB_DEBUG_1_EZ_INFSAMP_EMPTY_MASK) | (ez_infsamp_empty << RB_DEBUG_1_EZ_INFSAMP_EMPTY_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_debug_1_t {
+ unsigned int rdreq_z1_cmd_empty : RB_DEBUG_1_RDREQ_Z1_CMD_EMPTY_SIZE;
+ unsigned int rdreq_z0_cmd_empty : RB_DEBUG_1_RDREQ_Z0_CMD_EMPTY_SIZE;
+ unsigned int rdreq_c1_cmd_empty : RB_DEBUG_1_RDREQ_C1_CMD_EMPTY_SIZE;
+ unsigned int rdreq_c0_cmd_empty : RB_DEBUG_1_RDREQ_C0_CMD_EMPTY_SIZE;
+ unsigned int rdreq_e1_ordering_empty : RB_DEBUG_1_RDREQ_E1_ORDERING_EMPTY_SIZE;
+ unsigned int rdreq_e0_ordering_empty : RB_DEBUG_1_RDREQ_E0_ORDERING_EMPTY_SIZE;
+ unsigned int rdreq_z1_empty : RB_DEBUG_1_RDREQ_Z1_EMPTY_SIZE;
+ unsigned int rdreq_z0_empty : RB_DEBUG_1_RDREQ_Z0_EMPTY_SIZE;
+ unsigned int rdreq_c1_empty : RB_DEBUG_1_RDREQ_C1_EMPTY_SIZE;
+ unsigned int rdreq_c0_empty : RB_DEBUG_1_RDREQ_C0_EMPTY_SIZE;
+ unsigned int wrreq_e1_macro_hi_empty : RB_DEBUG_1_WRREQ_E1_MACRO_HI_EMPTY_SIZE;
+ unsigned int wrreq_e1_macro_lo_empty : RB_DEBUG_1_WRREQ_E1_MACRO_LO_EMPTY_SIZE;
+ unsigned int wrreq_e0_macro_hi_empty : RB_DEBUG_1_WRREQ_E0_MACRO_HI_EMPTY_SIZE;
+ unsigned int wrreq_e0_macro_lo_empty : RB_DEBUG_1_WRREQ_E0_MACRO_LO_EMPTY_SIZE;
+ unsigned int wrreq_c_we_hi_empty : RB_DEBUG_1_WRREQ_C_WE_HI_EMPTY_SIZE;
+ unsigned int wrreq_c_we_lo_empty : RB_DEBUG_1_WRREQ_C_WE_LO_EMPTY_SIZE;
+ unsigned int wrreq_z1_empty : RB_DEBUG_1_WRREQ_Z1_EMPTY_SIZE;
+ unsigned int wrreq_z0_empty : RB_DEBUG_1_WRREQ_Z0_EMPTY_SIZE;
+ unsigned int wrreq_c1_pre_empty : RB_DEBUG_1_WRREQ_C1_PRE_EMPTY_SIZE;
+ unsigned int wrreq_c0_pre_empty : RB_DEBUG_1_WRREQ_C0_PRE_EMPTY_SIZE;
+ unsigned int cmdfifo_z1_hold_empty : RB_DEBUG_1_CMDFIFO_Z1_HOLD_EMPTY_SIZE;
+ unsigned int cmdfifo_z0_hold_empty : RB_DEBUG_1_CMDFIFO_Z0_HOLD_EMPTY_SIZE;
+ unsigned int cmdfifo_c1_hold_empty : RB_DEBUG_1_CMDFIFO_C1_HOLD_EMPTY_SIZE;
+ unsigned int cmdfifo_c0_hold_empty : RB_DEBUG_1_CMDFIFO_C0_HOLD_EMPTY_SIZE;
+ unsigned int cmdfifo_z_ordering_empty : RB_DEBUG_1_CMDFIFO_Z_ORDERING_EMPTY_SIZE;
+ unsigned int cmdfifo_c_ordering_empty : RB_DEBUG_1_CMDFIFO_C_ORDERING_EMPTY_SIZE;
+ unsigned int c_sx_lat_empty : RB_DEBUG_1_C_SX_LAT_EMPTY_SIZE;
+ unsigned int c_sx_cmd_empty : RB_DEBUG_1_C_SX_CMD_EMPTY_SIZE;
+ unsigned int c_ez_tile_empty : RB_DEBUG_1_C_EZ_TILE_EMPTY_SIZE;
+ unsigned int c_req_empty : RB_DEBUG_1_C_REQ_EMPTY_SIZE;
+ unsigned int c_mask_empty : RB_DEBUG_1_C_MASK_EMPTY_SIZE;
+ unsigned int ez_infsamp_empty : RB_DEBUG_1_EZ_INFSAMP_EMPTY_SIZE;
+ } rb_debug_1_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_debug_1_t {
+ unsigned int ez_infsamp_empty : RB_DEBUG_1_EZ_INFSAMP_EMPTY_SIZE;
+ unsigned int c_mask_empty : RB_DEBUG_1_C_MASK_EMPTY_SIZE;
+ unsigned int c_req_empty : RB_DEBUG_1_C_REQ_EMPTY_SIZE;
+ unsigned int c_ez_tile_empty : RB_DEBUG_1_C_EZ_TILE_EMPTY_SIZE;
+ unsigned int c_sx_cmd_empty : RB_DEBUG_1_C_SX_CMD_EMPTY_SIZE;
+ unsigned int c_sx_lat_empty : RB_DEBUG_1_C_SX_LAT_EMPTY_SIZE;
+ unsigned int cmdfifo_c_ordering_empty : RB_DEBUG_1_CMDFIFO_C_ORDERING_EMPTY_SIZE;
+ unsigned int cmdfifo_z_ordering_empty : RB_DEBUG_1_CMDFIFO_Z_ORDERING_EMPTY_SIZE;
+ unsigned int cmdfifo_c0_hold_empty : RB_DEBUG_1_CMDFIFO_C0_HOLD_EMPTY_SIZE;
+ unsigned int cmdfifo_c1_hold_empty : RB_DEBUG_1_CMDFIFO_C1_HOLD_EMPTY_SIZE;
+ unsigned int cmdfifo_z0_hold_empty : RB_DEBUG_1_CMDFIFO_Z0_HOLD_EMPTY_SIZE;
+ unsigned int cmdfifo_z1_hold_empty : RB_DEBUG_1_CMDFIFO_Z1_HOLD_EMPTY_SIZE;
+ unsigned int wrreq_c0_pre_empty : RB_DEBUG_1_WRREQ_C0_PRE_EMPTY_SIZE;
+ unsigned int wrreq_c1_pre_empty : RB_DEBUG_1_WRREQ_C1_PRE_EMPTY_SIZE;
+ unsigned int wrreq_z0_empty : RB_DEBUG_1_WRREQ_Z0_EMPTY_SIZE;
+ unsigned int wrreq_z1_empty : RB_DEBUG_1_WRREQ_Z1_EMPTY_SIZE;
+ unsigned int wrreq_c_we_lo_empty : RB_DEBUG_1_WRREQ_C_WE_LO_EMPTY_SIZE;
+ unsigned int wrreq_c_we_hi_empty : RB_DEBUG_1_WRREQ_C_WE_HI_EMPTY_SIZE;
+ unsigned int wrreq_e0_macro_lo_empty : RB_DEBUG_1_WRREQ_E0_MACRO_LO_EMPTY_SIZE;
+ unsigned int wrreq_e0_macro_hi_empty : RB_DEBUG_1_WRREQ_E0_MACRO_HI_EMPTY_SIZE;
+ unsigned int wrreq_e1_macro_lo_empty : RB_DEBUG_1_WRREQ_E1_MACRO_LO_EMPTY_SIZE;
+ unsigned int wrreq_e1_macro_hi_empty : RB_DEBUG_1_WRREQ_E1_MACRO_HI_EMPTY_SIZE;
+ unsigned int rdreq_c0_empty : RB_DEBUG_1_RDREQ_C0_EMPTY_SIZE;
+ unsigned int rdreq_c1_empty : RB_DEBUG_1_RDREQ_C1_EMPTY_SIZE;
+ unsigned int rdreq_z0_empty : RB_DEBUG_1_RDREQ_Z0_EMPTY_SIZE;
+ unsigned int rdreq_z1_empty : RB_DEBUG_1_RDREQ_Z1_EMPTY_SIZE;
+ unsigned int rdreq_e0_ordering_empty : RB_DEBUG_1_RDREQ_E0_ORDERING_EMPTY_SIZE;
+ unsigned int rdreq_e1_ordering_empty : RB_DEBUG_1_RDREQ_E1_ORDERING_EMPTY_SIZE;
+ unsigned int rdreq_c0_cmd_empty : RB_DEBUG_1_RDREQ_C0_CMD_EMPTY_SIZE;
+ unsigned int rdreq_c1_cmd_empty : RB_DEBUG_1_RDREQ_C1_CMD_EMPTY_SIZE;
+ unsigned int rdreq_z0_cmd_empty : RB_DEBUG_1_RDREQ_Z0_CMD_EMPTY_SIZE;
+ unsigned int rdreq_z1_cmd_empty : RB_DEBUG_1_RDREQ_Z1_CMD_EMPTY_SIZE;
+ } rb_debug_1_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_debug_1_t f;
+} rb_debug_1_u;
+
+
+/*
+ * RB_DEBUG_2 struct
+ */
+
+#define RB_DEBUG_2_TILE_FIFO_COUNT_SIZE 4
+#define RB_DEBUG_2_SX_LAT_FIFO_COUNT_SIZE 7
+#define RB_DEBUG_2_MEM_EXPORT_FLAG_SIZE 1
+#define RB_DEBUG_2_SYSMEM_BLEND_FLAG_SIZE 1
+#define RB_DEBUG_2_CURRENT_TILE_EVENT_SIZE 1
+#define RB_DEBUG_2_EZ_INFTILE_FULL_SIZE 1
+#define RB_DEBUG_2_EZ_MASK_LOWER_FULL_SIZE 1
+#define RB_DEBUG_2_EZ_MASK_UPPER_FULL_SIZE 1
+#define RB_DEBUG_2_Z0_MASK_FULL_SIZE 1
+#define RB_DEBUG_2_Z1_MASK_FULL_SIZE 1
+#define RB_DEBUG_2_Z0_REQ_FULL_SIZE 1
+#define RB_DEBUG_2_Z1_REQ_FULL_SIZE 1
+#define RB_DEBUG_2_Z_SAMP_FULL_SIZE 1
+#define RB_DEBUG_2_Z_TILE_FULL_SIZE 1
+#define RB_DEBUG_2_EZ_INFTILE_EMPTY_SIZE 1
+#define RB_DEBUG_2_EZ_MASK_LOWER_EMPTY_SIZE 1
+#define RB_DEBUG_2_EZ_MASK_UPPER_EMPTY_SIZE 1
+#define RB_DEBUG_2_Z0_MASK_EMPTY_SIZE 1
+#define RB_DEBUG_2_Z1_MASK_EMPTY_SIZE 1
+#define RB_DEBUG_2_Z0_REQ_EMPTY_SIZE 1
+#define RB_DEBUG_2_Z1_REQ_EMPTY_SIZE 1
+#define RB_DEBUG_2_Z_SAMP_EMPTY_SIZE 1
+#define RB_DEBUG_2_Z_TILE_EMPTY_SIZE 1
+
+#define RB_DEBUG_2_TILE_FIFO_COUNT_SHIFT 0
+#define RB_DEBUG_2_SX_LAT_FIFO_COUNT_SHIFT 4
+#define RB_DEBUG_2_MEM_EXPORT_FLAG_SHIFT 11
+#define RB_DEBUG_2_SYSMEM_BLEND_FLAG_SHIFT 12
+#define RB_DEBUG_2_CURRENT_TILE_EVENT_SHIFT 13
+#define RB_DEBUG_2_EZ_INFTILE_FULL_SHIFT 14
+#define RB_DEBUG_2_EZ_MASK_LOWER_FULL_SHIFT 15
+#define RB_DEBUG_2_EZ_MASK_UPPER_FULL_SHIFT 16
+#define RB_DEBUG_2_Z0_MASK_FULL_SHIFT 17
+#define RB_DEBUG_2_Z1_MASK_FULL_SHIFT 18
+#define RB_DEBUG_2_Z0_REQ_FULL_SHIFT 19
+#define RB_DEBUG_2_Z1_REQ_FULL_SHIFT 20
+#define RB_DEBUG_2_Z_SAMP_FULL_SHIFT 21
+#define RB_DEBUG_2_Z_TILE_FULL_SHIFT 22
+#define RB_DEBUG_2_EZ_INFTILE_EMPTY_SHIFT 23
+#define RB_DEBUG_2_EZ_MASK_LOWER_EMPTY_SHIFT 24
+#define RB_DEBUG_2_EZ_MASK_UPPER_EMPTY_SHIFT 25
+#define RB_DEBUG_2_Z0_MASK_EMPTY_SHIFT 26
+#define RB_DEBUG_2_Z1_MASK_EMPTY_SHIFT 27
+#define RB_DEBUG_2_Z0_REQ_EMPTY_SHIFT 28
+#define RB_DEBUG_2_Z1_REQ_EMPTY_SHIFT 29
+#define RB_DEBUG_2_Z_SAMP_EMPTY_SHIFT 30
+#define RB_DEBUG_2_Z_TILE_EMPTY_SHIFT 31
+
+#define RB_DEBUG_2_TILE_FIFO_COUNT_MASK 0x0000000f
+#define RB_DEBUG_2_SX_LAT_FIFO_COUNT_MASK 0x000007f0
+#define RB_DEBUG_2_MEM_EXPORT_FLAG_MASK 0x00000800
+#define RB_DEBUG_2_SYSMEM_BLEND_FLAG_MASK 0x00001000
+#define RB_DEBUG_2_CURRENT_TILE_EVENT_MASK 0x00002000
+#define RB_DEBUG_2_EZ_INFTILE_FULL_MASK 0x00004000
+#define RB_DEBUG_2_EZ_MASK_LOWER_FULL_MASK 0x00008000
+#define RB_DEBUG_2_EZ_MASK_UPPER_FULL_MASK 0x00010000
+#define RB_DEBUG_2_Z0_MASK_FULL_MASK 0x00020000
+#define RB_DEBUG_2_Z1_MASK_FULL_MASK 0x00040000
+#define RB_DEBUG_2_Z0_REQ_FULL_MASK 0x00080000
+#define RB_DEBUG_2_Z1_REQ_FULL_MASK 0x00100000
+#define RB_DEBUG_2_Z_SAMP_FULL_MASK 0x00200000
+#define RB_DEBUG_2_Z_TILE_FULL_MASK 0x00400000
+#define RB_DEBUG_2_EZ_INFTILE_EMPTY_MASK 0x00800000
+#define RB_DEBUG_2_EZ_MASK_LOWER_EMPTY_MASK 0x01000000
+#define RB_DEBUG_2_EZ_MASK_UPPER_EMPTY_MASK 0x02000000
+#define RB_DEBUG_2_Z0_MASK_EMPTY_MASK 0x04000000
+#define RB_DEBUG_2_Z1_MASK_EMPTY_MASK 0x08000000
+#define RB_DEBUG_2_Z0_REQ_EMPTY_MASK 0x10000000
+#define RB_DEBUG_2_Z1_REQ_EMPTY_MASK 0x20000000
+#define RB_DEBUG_2_Z_SAMP_EMPTY_MASK 0x40000000
+#define RB_DEBUG_2_Z_TILE_EMPTY_MASK 0x80000000
+
+#define RB_DEBUG_2_MASK \
+ (RB_DEBUG_2_TILE_FIFO_COUNT_MASK | \
+ RB_DEBUG_2_SX_LAT_FIFO_COUNT_MASK | \
+ RB_DEBUG_2_MEM_EXPORT_FLAG_MASK | \
+ RB_DEBUG_2_SYSMEM_BLEND_FLAG_MASK | \
+ RB_DEBUG_2_CURRENT_TILE_EVENT_MASK | \
+ RB_DEBUG_2_EZ_INFTILE_FULL_MASK | \
+ RB_DEBUG_2_EZ_MASK_LOWER_FULL_MASK | \
+ RB_DEBUG_2_EZ_MASK_UPPER_FULL_MASK | \
+ RB_DEBUG_2_Z0_MASK_FULL_MASK | \
+ RB_DEBUG_2_Z1_MASK_FULL_MASK | \
+ RB_DEBUG_2_Z0_REQ_FULL_MASK | \
+ RB_DEBUG_2_Z1_REQ_FULL_MASK | \
+ RB_DEBUG_2_Z_SAMP_FULL_MASK | \
+ RB_DEBUG_2_Z_TILE_FULL_MASK | \
+ RB_DEBUG_2_EZ_INFTILE_EMPTY_MASK | \
+ RB_DEBUG_2_EZ_MASK_LOWER_EMPTY_MASK | \
+ RB_DEBUG_2_EZ_MASK_UPPER_EMPTY_MASK | \
+ RB_DEBUG_2_Z0_MASK_EMPTY_MASK | \
+ RB_DEBUG_2_Z1_MASK_EMPTY_MASK | \
+ RB_DEBUG_2_Z0_REQ_EMPTY_MASK | \
+ RB_DEBUG_2_Z1_REQ_EMPTY_MASK | \
+ RB_DEBUG_2_Z_SAMP_EMPTY_MASK | \
+ RB_DEBUG_2_Z_TILE_EMPTY_MASK)
+
+#define RB_DEBUG_2(tile_fifo_count, sx_lat_fifo_count, mem_export_flag, sysmem_blend_flag, current_tile_event, ez_inftile_full, ez_mask_lower_full, ez_mask_upper_full, z0_mask_full, z1_mask_full, z0_req_full, z1_req_full, z_samp_full, z_tile_full, ez_inftile_empty, ez_mask_lower_empty, ez_mask_upper_empty, z0_mask_empty, z1_mask_empty, z0_req_empty, z1_req_empty, z_samp_empty, z_tile_empty) \
+ ((tile_fifo_count << RB_DEBUG_2_TILE_FIFO_COUNT_SHIFT) | \
+ (sx_lat_fifo_count << RB_DEBUG_2_SX_LAT_FIFO_COUNT_SHIFT) | \
+ (mem_export_flag << RB_DEBUG_2_MEM_EXPORT_FLAG_SHIFT) | \
+ (sysmem_blend_flag << RB_DEBUG_2_SYSMEM_BLEND_FLAG_SHIFT) | \
+ (current_tile_event << RB_DEBUG_2_CURRENT_TILE_EVENT_SHIFT) | \
+ (ez_inftile_full << RB_DEBUG_2_EZ_INFTILE_FULL_SHIFT) | \
+ (ez_mask_lower_full << RB_DEBUG_2_EZ_MASK_LOWER_FULL_SHIFT) | \
+ (ez_mask_upper_full << RB_DEBUG_2_EZ_MASK_UPPER_FULL_SHIFT) | \
+ (z0_mask_full << RB_DEBUG_2_Z0_MASK_FULL_SHIFT) | \
+ (z1_mask_full << RB_DEBUG_2_Z1_MASK_FULL_SHIFT) | \
+ (z0_req_full << RB_DEBUG_2_Z0_REQ_FULL_SHIFT) | \
+ (z1_req_full << RB_DEBUG_2_Z1_REQ_FULL_SHIFT) | \
+ (z_samp_full << RB_DEBUG_2_Z_SAMP_FULL_SHIFT) | \
+ (z_tile_full << RB_DEBUG_2_Z_TILE_FULL_SHIFT) | \
+ (ez_inftile_empty << RB_DEBUG_2_EZ_INFTILE_EMPTY_SHIFT) | \
+ (ez_mask_lower_empty << RB_DEBUG_2_EZ_MASK_LOWER_EMPTY_SHIFT) | \
+ (ez_mask_upper_empty << RB_DEBUG_2_EZ_MASK_UPPER_EMPTY_SHIFT) | \
+ (z0_mask_empty << RB_DEBUG_2_Z0_MASK_EMPTY_SHIFT) | \
+ (z1_mask_empty << RB_DEBUG_2_Z1_MASK_EMPTY_SHIFT) | \
+ (z0_req_empty << RB_DEBUG_2_Z0_REQ_EMPTY_SHIFT) | \
+ (z1_req_empty << RB_DEBUG_2_Z1_REQ_EMPTY_SHIFT) | \
+ (z_samp_empty << RB_DEBUG_2_Z_SAMP_EMPTY_SHIFT) | \
+ (z_tile_empty << RB_DEBUG_2_Z_TILE_EMPTY_SHIFT))
+
+#define RB_DEBUG_2_GET_TILE_FIFO_COUNT(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_TILE_FIFO_COUNT_MASK) >> RB_DEBUG_2_TILE_FIFO_COUNT_SHIFT)
+#define RB_DEBUG_2_GET_SX_LAT_FIFO_COUNT(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_SX_LAT_FIFO_COUNT_MASK) >> RB_DEBUG_2_SX_LAT_FIFO_COUNT_SHIFT)
+#define RB_DEBUG_2_GET_MEM_EXPORT_FLAG(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_MEM_EXPORT_FLAG_MASK) >> RB_DEBUG_2_MEM_EXPORT_FLAG_SHIFT)
+#define RB_DEBUG_2_GET_SYSMEM_BLEND_FLAG(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_SYSMEM_BLEND_FLAG_MASK) >> RB_DEBUG_2_SYSMEM_BLEND_FLAG_SHIFT)
+#define RB_DEBUG_2_GET_CURRENT_TILE_EVENT(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_CURRENT_TILE_EVENT_MASK) >> RB_DEBUG_2_CURRENT_TILE_EVENT_SHIFT)
+#define RB_DEBUG_2_GET_EZ_INFTILE_FULL(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_EZ_INFTILE_FULL_MASK) >> RB_DEBUG_2_EZ_INFTILE_FULL_SHIFT)
+#define RB_DEBUG_2_GET_EZ_MASK_LOWER_FULL(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_EZ_MASK_LOWER_FULL_MASK) >> RB_DEBUG_2_EZ_MASK_LOWER_FULL_SHIFT)
+#define RB_DEBUG_2_GET_EZ_MASK_UPPER_FULL(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_EZ_MASK_UPPER_FULL_MASK) >> RB_DEBUG_2_EZ_MASK_UPPER_FULL_SHIFT)
+#define RB_DEBUG_2_GET_Z0_MASK_FULL(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_Z0_MASK_FULL_MASK) >> RB_DEBUG_2_Z0_MASK_FULL_SHIFT)
+#define RB_DEBUG_2_GET_Z1_MASK_FULL(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_Z1_MASK_FULL_MASK) >> RB_DEBUG_2_Z1_MASK_FULL_SHIFT)
+#define RB_DEBUG_2_GET_Z0_REQ_FULL(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_Z0_REQ_FULL_MASK) >> RB_DEBUG_2_Z0_REQ_FULL_SHIFT)
+#define RB_DEBUG_2_GET_Z1_REQ_FULL(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_Z1_REQ_FULL_MASK) >> RB_DEBUG_2_Z1_REQ_FULL_SHIFT)
+#define RB_DEBUG_2_GET_Z_SAMP_FULL(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_Z_SAMP_FULL_MASK) >> RB_DEBUG_2_Z_SAMP_FULL_SHIFT)
+#define RB_DEBUG_2_GET_Z_TILE_FULL(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_Z_TILE_FULL_MASK) >> RB_DEBUG_2_Z_TILE_FULL_SHIFT)
+#define RB_DEBUG_2_GET_EZ_INFTILE_EMPTY(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_EZ_INFTILE_EMPTY_MASK) >> RB_DEBUG_2_EZ_INFTILE_EMPTY_SHIFT)
+#define RB_DEBUG_2_GET_EZ_MASK_LOWER_EMPTY(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_EZ_MASK_LOWER_EMPTY_MASK) >> RB_DEBUG_2_EZ_MASK_LOWER_EMPTY_SHIFT)
+#define RB_DEBUG_2_GET_EZ_MASK_UPPER_EMPTY(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_EZ_MASK_UPPER_EMPTY_MASK) >> RB_DEBUG_2_EZ_MASK_UPPER_EMPTY_SHIFT)
+#define RB_DEBUG_2_GET_Z0_MASK_EMPTY(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_Z0_MASK_EMPTY_MASK) >> RB_DEBUG_2_Z0_MASK_EMPTY_SHIFT)
+#define RB_DEBUG_2_GET_Z1_MASK_EMPTY(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_Z1_MASK_EMPTY_MASK) >> RB_DEBUG_2_Z1_MASK_EMPTY_SHIFT)
+#define RB_DEBUG_2_GET_Z0_REQ_EMPTY(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_Z0_REQ_EMPTY_MASK) >> RB_DEBUG_2_Z0_REQ_EMPTY_SHIFT)
+#define RB_DEBUG_2_GET_Z1_REQ_EMPTY(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_Z1_REQ_EMPTY_MASK) >> RB_DEBUG_2_Z1_REQ_EMPTY_SHIFT)
+#define RB_DEBUG_2_GET_Z_SAMP_EMPTY(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_Z_SAMP_EMPTY_MASK) >> RB_DEBUG_2_Z_SAMP_EMPTY_SHIFT)
+#define RB_DEBUG_2_GET_Z_TILE_EMPTY(rb_debug_2) \
+ ((rb_debug_2 & RB_DEBUG_2_Z_TILE_EMPTY_MASK) >> RB_DEBUG_2_Z_TILE_EMPTY_SHIFT)
+
+#define RB_DEBUG_2_SET_TILE_FIFO_COUNT(rb_debug_2_reg, tile_fifo_count) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_TILE_FIFO_COUNT_MASK) | (tile_fifo_count << RB_DEBUG_2_TILE_FIFO_COUNT_SHIFT)
+#define RB_DEBUG_2_SET_SX_LAT_FIFO_COUNT(rb_debug_2_reg, sx_lat_fifo_count) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_SX_LAT_FIFO_COUNT_MASK) | (sx_lat_fifo_count << RB_DEBUG_2_SX_LAT_FIFO_COUNT_SHIFT)
+#define RB_DEBUG_2_SET_MEM_EXPORT_FLAG(rb_debug_2_reg, mem_export_flag) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_MEM_EXPORT_FLAG_MASK) | (mem_export_flag << RB_DEBUG_2_MEM_EXPORT_FLAG_SHIFT)
+#define RB_DEBUG_2_SET_SYSMEM_BLEND_FLAG(rb_debug_2_reg, sysmem_blend_flag) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_SYSMEM_BLEND_FLAG_MASK) | (sysmem_blend_flag << RB_DEBUG_2_SYSMEM_BLEND_FLAG_SHIFT)
+#define RB_DEBUG_2_SET_CURRENT_TILE_EVENT(rb_debug_2_reg, current_tile_event) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_CURRENT_TILE_EVENT_MASK) | (current_tile_event << RB_DEBUG_2_CURRENT_TILE_EVENT_SHIFT)
+#define RB_DEBUG_2_SET_EZ_INFTILE_FULL(rb_debug_2_reg, ez_inftile_full) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_EZ_INFTILE_FULL_MASK) | (ez_inftile_full << RB_DEBUG_2_EZ_INFTILE_FULL_SHIFT)
+#define RB_DEBUG_2_SET_EZ_MASK_LOWER_FULL(rb_debug_2_reg, ez_mask_lower_full) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_EZ_MASK_LOWER_FULL_MASK) | (ez_mask_lower_full << RB_DEBUG_2_EZ_MASK_LOWER_FULL_SHIFT)
+#define RB_DEBUG_2_SET_EZ_MASK_UPPER_FULL(rb_debug_2_reg, ez_mask_upper_full) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_EZ_MASK_UPPER_FULL_MASK) | (ez_mask_upper_full << RB_DEBUG_2_EZ_MASK_UPPER_FULL_SHIFT)
+#define RB_DEBUG_2_SET_Z0_MASK_FULL(rb_debug_2_reg, z0_mask_full) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_Z0_MASK_FULL_MASK) | (z0_mask_full << RB_DEBUG_2_Z0_MASK_FULL_SHIFT)
+#define RB_DEBUG_2_SET_Z1_MASK_FULL(rb_debug_2_reg, z1_mask_full) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_Z1_MASK_FULL_MASK) | (z1_mask_full << RB_DEBUG_2_Z1_MASK_FULL_SHIFT)
+#define RB_DEBUG_2_SET_Z0_REQ_FULL(rb_debug_2_reg, z0_req_full) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_Z0_REQ_FULL_MASK) | (z0_req_full << RB_DEBUG_2_Z0_REQ_FULL_SHIFT)
+#define RB_DEBUG_2_SET_Z1_REQ_FULL(rb_debug_2_reg, z1_req_full) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_Z1_REQ_FULL_MASK) | (z1_req_full << RB_DEBUG_2_Z1_REQ_FULL_SHIFT)
+#define RB_DEBUG_2_SET_Z_SAMP_FULL(rb_debug_2_reg, z_samp_full) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_Z_SAMP_FULL_MASK) | (z_samp_full << RB_DEBUG_2_Z_SAMP_FULL_SHIFT)
+#define RB_DEBUG_2_SET_Z_TILE_FULL(rb_debug_2_reg, z_tile_full) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_Z_TILE_FULL_MASK) | (z_tile_full << RB_DEBUG_2_Z_TILE_FULL_SHIFT)
+#define RB_DEBUG_2_SET_EZ_INFTILE_EMPTY(rb_debug_2_reg, ez_inftile_empty) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_EZ_INFTILE_EMPTY_MASK) | (ez_inftile_empty << RB_DEBUG_2_EZ_INFTILE_EMPTY_SHIFT)
+#define RB_DEBUG_2_SET_EZ_MASK_LOWER_EMPTY(rb_debug_2_reg, ez_mask_lower_empty) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_EZ_MASK_LOWER_EMPTY_MASK) | (ez_mask_lower_empty << RB_DEBUG_2_EZ_MASK_LOWER_EMPTY_SHIFT)
+#define RB_DEBUG_2_SET_EZ_MASK_UPPER_EMPTY(rb_debug_2_reg, ez_mask_upper_empty) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_EZ_MASK_UPPER_EMPTY_MASK) | (ez_mask_upper_empty << RB_DEBUG_2_EZ_MASK_UPPER_EMPTY_SHIFT)
+#define RB_DEBUG_2_SET_Z0_MASK_EMPTY(rb_debug_2_reg, z0_mask_empty) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_Z0_MASK_EMPTY_MASK) | (z0_mask_empty << RB_DEBUG_2_Z0_MASK_EMPTY_SHIFT)
+#define RB_DEBUG_2_SET_Z1_MASK_EMPTY(rb_debug_2_reg, z1_mask_empty) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_Z1_MASK_EMPTY_MASK) | (z1_mask_empty << RB_DEBUG_2_Z1_MASK_EMPTY_SHIFT)
+#define RB_DEBUG_2_SET_Z0_REQ_EMPTY(rb_debug_2_reg, z0_req_empty) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_Z0_REQ_EMPTY_MASK) | (z0_req_empty << RB_DEBUG_2_Z0_REQ_EMPTY_SHIFT)
+#define RB_DEBUG_2_SET_Z1_REQ_EMPTY(rb_debug_2_reg, z1_req_empty) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_Z1_REQ_EMPTY_MASK) | (z1_req_empty << RB_DEBUG_2_Z1_REQ_EMPTY_SHIFT)
+#define RB_DEBUG_2_SET_Z_SAMP_EMPTY(rb_debug_2_reg, z_samp_empty) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_Z_SAMP_EMPTY_MASK) | (z_samp_empty << RB_DEBUG_2_Z_SAMP_EMPTY_SHIFT)
+#define RB_DEBUG_2_SET_Z_TILE_EMPTY(rb_debug_2_reg, z_tile_empty) \
+ rb_debug_2_reg = (rb_debug_2_reg & ~RB_DEBUG_2_Z_TILE_EMPTY_MASK) | (z_tile_empty << RB_DEBUG_2_Z_TILE_EMPTY_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_debug_2_t {
+ unsigned int tile_fifo_count : RB_DEBUG_2_TILE_FIFO_COUNT_SIZE;
+ unsigned int sx_lat_fifo_count : RB_DEBUG_2_SX_LAT_FIFO_COUNT_SIZE;
+ unsigned int mem_export_flag : RB_DEBUG_2_MEM_EXPORT_FLAG_SIZE;
+ unsigned int sysmem_blend_flag : RB_DEBUG_2_SYSMEM_BLEND_FLAG_SIZE;
+ unsigned int current_tile_event : RB_DEBUG_2_CURRENT_TILE_EVENT_SIZE;
+ unsigned int ez_inftile_full : RB_DEBUG_2_EZ_INFTILE_FULL_SIZE;
+ unsigned int ez_mask_lower_full : RB_DEBUG_2_EZ_MASK_LOWER_FULL_SIZE;
+ unsigned int ez_mask_upper_full : RB_DEBUG_2_EZ_MASK_UPPER_FULL_SIZE;
+ unsigned int z0_mask_full : RB_DEBUG_2_Z0_MASK_FULL_SIZE;
+ unsigned int z1_mask_full : RB_DEBUG_2_Z1_MASK_FULL_SIZE;
+ unsigned int z0_req_full : RB_DEBUG_2_Z0_REQ_FULL_SIZE;
+ unsigned int z1_req_full : RB_DEBUG_2_Z1_REQ_FULL_SIZE;
+ unsigned int z_samp_full : RB_DEBUG_2_Z_SAMP_FULL_SIZE;
+ unsigned int z_tile_full : RB_DEBUG_2_Z_TILE_FULL_SIZE;
+ unsigned int ez_inftile_empty : RB_DEBUG_2_EZ_INFTILE_EMPTY_SIZE;
+ unsigned int ez_mask_lower_empty : RB_DEBUG_2_EZ_MASK_LOWER_EMPTY_SIZE;
+ unsigned int ez_mask_upper_empty : RB_DEBUG_2_EZ_MASK_UPPER_EMPTY_SIZE;
+ unsigned int z0_mask_empty : RB_DEBUG_2_Z0_MASK_EMPTY_SIZE;
+ unsigned int z1_mask_empty : RB_DEBUG_2_Z1_MASK_EMPTY_SIZE;
+ unsigned int z0_req_empty : RB_DEBUG_2_Z0_REQ_EMPTY_SIZE;
+ unsigned int z1_req_empty : RB_DEBUG_2_Z1_REQ_EMPTY_SIZE;
+ unsigned int z_samp_empty : RB_DEBUG_2_Z_SAMP_EMPTY_SIZE;
+ unsigned int z_tile_empty : RB_DEBUG_2_Z_TILE_EMPTY_SIZE;
+ } rb_debug_2_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_debug_2_t {
+ unsigned int z_tile_empty : RB_DEBUG_2_Z_TILE_EMPTY_SIZE;
+ unsigned int z_samp_empty : RB_DEBUG_2_Z_SAMP_EMPTY_SIZE;
+ unsigned int z1_req_empty : RB_DEBUG_2_Z1_REQ_EMPTY_SIZE;
+ unsigned int z0_req_empty : RB_DEBUG_2_Z0_REQ_EMPTY_SIZE;
+ unsigned int z1_mask_empty : RB_DEBUG_2_Z1_MASK_EMPTY_SIZE;
+ unsigned int z0_mask_empty : RB_DEBUG_2_Z0_MASK_EMPTY_SIZE;
+ unsigned int ez_mask_upper_empty : RB_DEBUG_2_EZ_MASK_UPPER_EMPTY_SIZE;
+ unsigned int ez_mask_lower_empty : RB_DEBUG_2_EZ_MASK_LOWER_EMPTY_SIZE;
+ unsigned int ez_inftile_empty : RB_DEBUG_2_EZ_INFTILE_EMPTY_SIZE;
+ unsigned int z_tile_full : RB_DEBUG_2_Z_TILE_FULL_SIZE;
+ unsigned int z_samp_full : RB_DEBUG_2_Z_SAMP_FULL_SIZE;
+ unsigned int z1_req_full : RB_DEBUG_2_Z1_REQ_FULL_SIZE;
+ unsigned int z0_req_full : RB_DEBUG_2_Z0_REQ_FULL_SIZE;
+ unsigned int z1_mask_full : RB_DEBUG_2_Z1_MASK_FULL_SIZE;
+ unsigned int z0_mask_full : RB_DEBUG_2_Z0_MASK_FULL_SIZE;
+ unsigned int ez_mask_upper_full : RB_DEBUG_2_EZ_MASK_UPPER_FULL_SIZE;
+ unsigned int ez_mask_lower_full : RB_DEBUG_2_EZ_MASK_LOWER_FULL_SIZE;
+ unsigned int ez_inftile_full : RB_DEBUG_2_EZ_INFTILE_FULL_SIZE;
+ unsigned int current_tile_event : RB_DEBUG_2_CURRENT_TILE_EVENT_SIZE;
+ unsigned int sysmem_blend_flag : RB_DEBUG_2_SYSMEM_BLEND_FLAG_SIZE;
+ unsigned int mem_export_flag : RB_DEBUG_2_MEM_EXPORT_FLAG_SIZE;
+ unsigned int sx_lat_fifo_count : RB_DEBUG_2_SX_LAT_FIFO_COUNT_SIZE;
+ unsigned int tile_fifo_count : RB_DEBUG_2_TILE_FIFO_COUNT_SIZE;
+ } rb_debug_2_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_debug_2_t f;
+} rb_debug_2_u;
+
+
+/*
+ * RB_DEBUG_3 struct
+ */
+
+#define RB_DEBUG_3_ACCUM_VALID_SIZE 4
+#define RB_DEBUG_3_ACCUM_FLUSHING_SIZE 4
+#define RB_DEBUG_3_ACCUM_WRITE_CLEAN_COUNT_SIZE 6
+#define RB_DEBUG_3_ACCUM_INPUT_REG_VALID_SIZE 1
+#define RB_DEBUG_3_ACCUM_DATA_FIFO_CNT_SIZE 4
+#define RB_DEBUG_3_SHD_FULL_SIZE 1
+#define RB_DEBUG_3_SHD_EMPTY_SIZE 1
+#define RB_DEBUG_3_EZ_RETURN_LOWER_EMPTY_SIZE 1
+#define RB_DEBUG_3_EZ_RETURN_UPPER_EMPTY_SIZE 1
+#define RB_DEBUG_3_EZ_RETURN_LOWER_FULL_SIZE 1
+#define RB_DEBUG_3_EZ_RETURN_UPPER_FULL_SIZE 1
+#define RB_DEBUG_3_ZEXP_LOWER_EMPTY_SIZE 1
+#define RB_DEBUG_3_ZEXP_UPPER_EMPTY_SIZE 1
+#define RB_DEBUG_3_ZEXP_LOWER_FULL_SIZE 1
+#define RB_DEBUG_3_ZEXP_UPPER_FULL_SIZE 1
+
+#define RB_DEBUG_3_ACCUM_VALID_SHIFT 0
+#define RB_DEBUG_3_ACCUM_FLUSHING_SHIFT 4
+#define RB_DEBUG_3_ACCUM_WRITE_CLEAN_COUNT_SHIFT 8
+#define RB_DEBUG_3_ACCUM_INPUT_REG_VALID_SHIFT 14
+#define RB_DEBUG_3_ACCUM_DATA_FIFO_CNT_SHIFT 15
+#define RB_DEBUG_3_SHD_FULL_SHIFT 19
+#define RB_DEBUG_3_SHD_EMPTY_SHIFT 20
+#define RB_DEBUG_3_EZ_RETURN_LOWER_EMPTY_SHIFT 21
+#define RB_DEBUG_3_EZ_RETURN_UPPER_EMPTY_SHIFT 22
+#define RB_DEBUG_3_EZ_RETURN_LOWER_FULL_SHIFT 23
+#define RB_DEBUG_3_EZ_RETURN_UPPER_FULL_SHIFT 24
+#define RB_DEBUG_3_ZEXP_LOWER_EMPTY_SHIFT 25
+#define RB_DEBUG_3_ZEXP_UPPER_EMPTY_SHIFT 26
+#define RB_DEBUG_3_ZEXP_LOWER_FULL_SHIFT 27
+#define RB_DEBUG_3_ZEXP_UPPER_FULL_SHIFT 28
+
+#define RB_DEBUG_3_ACCUM_VALID_MASK 0x0000000f
+#define RB_DEBUG_3_ACCUM_FLUSHING_MASK 0x000000f0
+#define RB_DEBUG_3_ACCUM_WRITE_CLEAN_COUNT_MASK 0x00003f00
+#define RB_DEBUG_3_ACCUM_INPUT_REG_VALID_MASK 0x00004000
+#define RB_DEBUG_3_ACCUM_DATA_FIFO_CNT_MASK 0x00078000
+#define RB_DEBUG_3_SHD_FULL_MASK 0x00080000
+#define RB_DEBUG_3_SHD_EMPTY_MASK 0x00100000
+#define RB_DEBUG_3_EZ_RETURN_LOWER_EMPTY_MASK 0x00200000
+#define RB_DEBUG_3_EZ_RETURN_UPPER_EMPTY_MASK 0x00400000
+#define RB_DEBUG_3_EZ_RETURN_LOWER_FULL_MASK 0x00800000
+#define RB_DEBUG_3_EZ_RETURN_UPPER_FULL_MASK 0x01000000
+#define RB_DEBUG_3_ZEXP_LOWER_EMPTY_MASK 0x02000000
+#define RB_DEBUG_3_ZEXP_UPPER_EMPTY_MASK 0x04000000
+#define RB_DEBUG_3_ZEXP_LOWER_FULL_MASK 0x08000000
+#define RB_DEBUG_3_ZEXP_UPPER_FULL_MASK 0x10000000
+
+#define RB_DEBUG_3_MASK \
+ (RB_DEBUG_3_ACCUM_VALID_MASK | \
+ RB_DEBUG_3_ACCUM_FLUSHING_MASK | \
+ RB_DEBUG_3_ACCUM_WRITE_CLEAN_COUNT_MASK | \
+ RB_DEBUG_3_ACCUM_INPUT_REG_VALID_MASK | \
+ RB_DEBUG_3_ACCUM_DATA_FIFO_CNT_MASK | \
+ RB_DEBUG_3_SHD_FULL_MASK | \
+ RB_DEBUG_3_SHD_EMPTY_MASK | \
+ RB_DEBUG_3_EZ_RETURN_LOWER_EMPTY_MASK | \
+ RB_DEBUG_3_EZ_RETURN_UPPER_EMPTY_MASK | \
+ RB_DEBUG_3_EZ_RETURN_LOWER_FULL_MASK | \
+ RB_DEBUG_3_EZ_RETURN_UPPER_FULL_MASK | \
+ RB_DEBUG_3_ZEXP_LOWER_EMPTY_MASK | \
+ RB_DEBUG_3_ZEXP_UPPER_EMPTY_MASK | \
+ RB_DEBUG_3_ZEXP_LOWER_FULL_MASK | \
+ RB_DEBUG_3_ZEXP_UPPER_FULL_MASK)
+
+#define RB_DEBUG_3(accum_valid, accum_flushing, accum_write_clean_count, accum_input_reg_valid, accum_data_fifo_cnt, shd_full, shd_empty, ez_return_lower_empty, ez_return_upper_empty, ez_return_lower_full, ez_return_upper_full, zexp_lower_empty, zexp_upper_empty, zexp_lower_full, zexp_upper_full) \
+ ((accum_valid << RB_DEBUG_3_ACCUM_VALID_SHIFT) | \
+ (accum_flushing << RB_DEBUG_3_ACCUM_FLUSHING_SHIFT) | \
+ (accum_write_clean_count << RB_DEBUG_3_ACCUM_WRITE_CLEAN_COUNT_SHIFT) | \
+ (accum_input_reg_valid << RB_DEBUG_3_ACCUM_INPUT_REG_VALID_SHIFT) | \
+ (accum_data_fifo_cnt << RB_DEBUG_3_ACCUM_DATA_FIFO_CNT_SHIFT) | \
+ (shd_full << RB_DEBUG_3_SHD_FULL_SHIFT) | \
+ (shd_empty << RB_DEBUG_3_SHD_EMPTY_SHIFT) | \
+ (ez_return_lower_empty << RB_DEBUG_3_EZ_RETURN_LOWER_EMPTY_SHIFT) | \
+ (ez_return_upper_empty << RB_DEBUG_3_EZ_RETURN_UPPER_EMPTY_SHIFT) | \
+ (ez_return_lower_full << RB_DEBUG_3_EZ_RETURN_LOWER_FULL_SHIFT) | \
+ (ez_return_upper_full << RB_DEBUG_3_EZ_RETURN_UPPER_FULL_SHIFT) | \
+ (zexp_lower_empty << RB_DEBUG_3_ZEXP_LOWER_EMPTY_SHIFT) | \
+ (zexp_upper_empty << RB_DEBUG_3_ZEXP_UPPER_EMPTY_SHIFT) | \
+ (zexp_lower_full << RB_DEBUG_3_ZEXP_LOWER_FULL_SHIFT) | \
+ (zexp_upper_full << RB_DEBUG_3_ZEXP_UPPER_FULL_SHIFT))
+
+#define RB_DEBUG_3_GET_ACCUM_VALID(rb_debug_3) \
+ ((rb_debug_3 & RB_DEBUG_3_ACCUM_VALID_MASK) >> RB_DEBUG_3_ACCUM_VALID_SHIFT)
+#define RB_DEBUG_3_GET_ACCUM_FLUSHING(rb_debug_3) \
+ ((rb_debug_3 & RB_DEBUG_3_ACCUM_FLUSHING_MASK) >> RB_DEBUG_3_ACCUM_FLUSHING_SHIFT)
+#define RB_DEBUG_3_GET_ACCUM_WRITE_CLEAN_COUNT(rb_debug_3) \
+ ((rb_debug_3 & RB_DEBUG_3_ACCUM_WRITE_CLEAN_COUNT_MASK) >> RB_DEBUG_3_ACCUM_WRITE_CLEAN_COUNT_SHIFT)
+#define RB_DEBUG_3_GET_ACCUM_INPUT_REG_VALID(rb_debug_3) \
+ ((rb_debug_3 & RB_DEBUG_3_ACCUM_INPUT_REG_VALID_MASK) >> RB_DEBUG_3_ACCUM_INPUT_REG_VALID_SHIFT)
+#define RB_DEBUG_3_GET_ACCUM_DATA_FIFO_CNT(rb_debug_3) \
+ ((rb_debug_3 & RB_DEBUG_3_ACCUM_DATA_FIFO_CNT_MASK) >> RB_DEBUG_3_ACCUM_DATA_FIFO_CNT_SHIFT)
+#define RB_DEBUG_3_GET_SHD_FULL(rb_debug_3) \
+ ((rb_debug_3 & RB_DEBUG_3_SHD_FULL_MASK) >> RB_DEBUG_3_SHD_FULL_SHIFT)
+#define RB_DEBUG_3_GET_SHD_EMPTY(rb_debug_3) \
+ ((rb_debug_3 & RB_DEBUG_3_SHD_EMPTY_MASK) >> RB_DEBUG_3_SHD_EMPTY_SHIFT)
+#define RB_DEBUG_3_GET_EZ_RETURN_LOWER_EMPTY(rb_debug_3) \
+ ((rb_debug_3 & RB_DEBUG_3_EZ_RETURN_LOWER_EMPTY_MASK) >> RB_DEBUG_3_EZ_RETURN_LOWER_EMPTY_SHIFT)
+#define RB_DEBUG_3_GET_EZ_RETURN_UPPER_EMPTY(rb_debug_3) \
+ ((rb_debug_3 & RB_DEBUG_3_EZ_RETURN_UPPER_EMPTY_MASK) >> RB_DEBUG_3_EZ_RETURN_UPPER_EMPTY_SHIFT)
+#define RB_DEBUG_3_GET_EZ_RETURN_LOWER_FULL(rb_debug_3) \
+ ((rb_debug_3 & RB_DEBUG_3_EZ_RETURN_LOWER_FULL_MASK) >> RB_DEBUG_3_EZ_RETURN_LOWER_FULL_SHIFT)
+#define RB_DEBUG_3_GET_EZ_RETURN_UPPER_FULL(rb_debug_3) \
+ ((rb_debug_3 & RB_DEBUG_3_EZ_RETURN_UPPER_FULL_MASK) >> RB_DEBUG_3_EZ_RETURN_UPPER_FULL_SHIFT)
+#define RB_DEBUG_3_GET_ZEXP_LOWER_EMPTY(rb_debug_3) \
+ ((rb_debug_3 & RB_DEBUG_3_ZEXP_LOWER_EMPTY_MASK) >> RB_DEBUG_3_ZEXP_LOWER_EMPTY_SHIFT)
+#define RB_DEBUG_3_GET_ZEXP_UPPER_EMPTY(rb_debug_3) \
+ ((rb_debug_3 & RB_DEBUG_3_ZEXP_UPPER_EMPTY_MASK) >> RB_DEBUG_3_ZEXP_UPPER_EMPTY_SHIFT)
+#define RB_DEBUG_3_GET_ZEXP_LOWER_FULL(rb_debug_3) \
+ ((rb_debug_3 & RB_DEBUG_3_ZEXP_LOWER_FULL_MASK) >> RB_DEBUG_3_ZEXP_LOWER_FULL_SHIFT)
+#define RB_DEBUG_3_GET_ZEXP_UPPER_FULL(rb_debug_3) \
+ ((rb_debug_3 & RB_DEBUG_3_ZEXP_UPPER_FULL_MASK) >> RB_DEBUG_3_ZEXP_UPPER_FULL_SHIFT)
+
+#define RB_DEBUG_3_SET_ACCUM_VALID(rb_debug_3_reg, accum_valid) \
+ rb_debug_3_reg = (rb_debug_3_reg & ~RB_DEBUG_3_ACCUM_VALID_MASK) | (accum_valid << RB_DEBUG_3_ACCUM_VALID_SHIFT)
+#define RB_DEBUG_3_SET_ACCUM_FLUSHING(rb_debug_3_reg, accum_flushing) \
+ rb_debug_3_reg = (rb_debug_3_reg & ~RB_DEBUG_3_ACCUM_FLUSHING_MASK) | (accum_flushing << RB_DEBUG_3_ACCUM_FLUSHING_SHIFT)
+#define RB_DEBUG_3_SET_ACCUM_WRITE_CLEAN_COUNT(rb_debug_3_reg, accum_write_clean_count) \
+ rb_debug_3_reg = (rb_debug_3_reg & ~RB_DEBUG_3_ACCUM_WRITE_CLEAN_COUNT_MASK) | (accum_write_clean_count << RB_DEBUG_3_ACCUM_WRITE_CLEAN_COUNT_SHIFT)
+#define RB_DEBUG_3_SET_ACCUM_INPUT_REG_VALID(rb_debug_3_reg, accum_input_reg_valid) \
+ rb_debug_3_reg = (rb_debug_3_reg & ~RB_DEBUG_3_ACCUM_INPUT_REG_VALID_MASK) | (accum_input_reg_valid << RB_DEBUG_3_ACCUM_INPUT_REG_VALID_SHIFT)
+#define RB_DEBUG_3_SET_ACCUM_DATA_FIFO_CNT(rb_debug_3_reg, accum_data_fifo_cnt) \
+ rb_debug_3_reg = (rb_debug_3_reg & ~RB_DEBUG_3_ACCUM_DATA_FIFO_CNT_MASK) | (accum_data_fifo_cnt << RB_DEBUG_3_ACCUM_DATA_FIFO_CNT_SHIFT)
+#define RB_DEBUG_3_SET_SHD_FULL(rb_debug_3_reg, shd_full) \
+ rb_debug_3_reg = (rb_debug_3_reg & ~RB_DEBUG_3_SHD_FULL_MASK) | (shd_full << RB_DEBUG_3_SHD_FULL_SHIFT)
+#define RB_DEBUG_3_SET_SHD_EMPTY(rb_debug_3_reg, shd_empty) \
+ rb_debug_3_reg = (rb_debug_3_reg & ~RB_DEBUG_3_SHD_EMPTY_MASK) | (shd_empty << RB_DEBUG_3_SHD_EMPTY_SHIFT)
+#define RB_DEBUG_3_SET_EZ_RETURN_LOWER_EMPTY(rb_debug_3_reg, ez_return_lower_empty) \
+ rb_debug_3_reg = (rb_debug_3_reg & ~RB_DEBUG_3_EZ_RETURN_LOWER_EMPTY_MASK) | (ez_return_lower_empty << RB_DEBUG_3_EZ_RETURN_LOWER_EMPTY_SHIFT)
+#define RB_DEBUG_3_SET_EZ_RETURN_UPPER_EMPTY(rb_debug_3_reg, ez_return_upper_empty) \
+ rb_debug_3_reg = (rb_debug_3_reg & ~RB_DEBUG_3_EZ_RETURN_UPPER_EMPTY_MASK) | (ez_return_upper_empty << RB_DEBUG_3_EZ_RETURN_UPPER_EMPTY_SHIFT)
+#define RB_DEBUG_3_SET_EZ_RETURN_LOWER_FULL(rb_debug_3_reg, ez_return_lower_full) \
+ rb_debug_3_reg = (rb_debug_3_reg & ~RB_DEBUG_3_EZ_RETURN_LOWER_FULL_MASK) | (ez_return_lower_full << RB_DEBUG_3_EZ_RETURN_LOWER_FULL_SHIFT)
+#define RB_DEBUG_3_SET_EZ_RETURN_UPPER_FULL(rb_debug_3_reg, ez_return_upper_full) \
+ rb_debug_3_reg = (rb_debug_3_reg & ~RB_DEBUG_3_EZ_RETURN_UPPER_FULL_MASK) | (ez_return_upper_full << RB_DEBUG_3_EZ_RETURN_UPPER_FULL_SHIFT)
+#define RB_DEBUG_3_SET_ZEXP_LOWER_EMPTY(rb_debug_3_reg, zexp_lower_empty) \
+ rb_debug_3_reg = (rb_debug_3_reg & ~RB_DEBUG_3_ZEXP_LOWER_EMPTY_MASK) | (zexp_lower_empty << RB_DEBUG_3_ZEXP_LOWER_EMPTY_SHIFT)
+#define RB_DEBUG_3_SET_ZEXP_UPPER_EMPTY(rb_debug_3_reg, zexp_upper_empty) \
+ rb_debug_3_reg = (rb_debug_3_reg & ~RB_DEBUG_3_ZEXP_UPPER_EMPTY_MASK) | (zexp_upper_empty << RB_DEBUG_3_ZEXP_UPPER_EMPTY_SHIFT)
+#define RB_DEBUG_3_SET_ZEXP_LOWER_FULL(rb_debug_3_reg, zexp_lower_full) \
+ rb_debug_3_reg = (rb_debug_3_reg & ~RB_DEBUG_3_ZEXP_LOWER_FULL_MASK) | (zexp_lower_full << RB_DEBUG_3_ZEXP_LOWER_FULL_SHIFT)
+#define RB_DEBUG_3_SET_ZEXP_UPPER_FULL(rb_debug_3_reg, zexp_upper_full) \
+ rb_debug_3_reg = (rb_debug_3_reg & ~RB_DEBUG_3_ZEXP_UPPER_FULL_MASK) | (zexp_upper_full << RB_DEBUG_3_ZEXP_UPPER_FULL_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_debug_3_t {
+ unsigned int accum_valid : RB_DEBUG_3_ACCUM_VALID_SIZE;
+ unsigned int accum_flushing : RB_DEBUG_3_ACCUM_FLUSHING_SIZE;
+ unsigned int accum_write_clean_count : RB_DEBUG_3_ACCUM_WRITE_CLEAN_COUNT_SIZE;
+ unsigned int accum_input_reg_valid : RB_DEBUG_3_ACCUM_INPUT_REG_VALID_SIZE;
+ unsigned int accum_data_fifo_cnt : RB_DEBUG_3_ACCUM_DATA_FIFO_CNT_SIZE;
+ unsigned int shd_full : RB_DEBUG_3_SHD_FULL_SIZE;
+ unsigned int shd_empty : RB_DEBUG_3_SHD_EMPTY_SIZE;
+ unsigned int ez_return_lower_empty : RB_DEBUG_3_EZ_RETURN_LOWER_EMPTY_SIZE;
+ unsigned int ez_return_upper_empty : RB_DEBUG_3_EZ_RETURN_UPPER_EMPTY_SIZE;
+ unsigned int ez_return_lower_full : RB_DEBUG_3_EZ_RETURN_LOWER_FULL_SIZE;
+ unsigned int ez_return_upper_full : RB_DEBUG_3_EZ_RETURN_UPPER_FULL_SIZE;
+ unsigned int zexp_lower_empty : RB_DEBUG_3_ZEXP_LOWER_EMPTY_SIZE;
+ unsigned int zexp_upper_empty : RB_DEBUG_3_ZEXP_UPPER_EMPTY_SIZE;
+ unsigned int zexp_lower_full : RB_DEBUG_3_ZEXP_LOWER_FULL_SIZE;
+ unsigned int zexp_upper_full : RB_DEBUG_3_ZEXP_UPPER_FULL_SIZE;
+ unsigned int : 3;
+ } rb_debug_3_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_debug_3_t {
+ unsigned int : 3;
+ unsigned int zexp_upper_full : RB_DEBUG_3_ZEXP_UPPER_FULL_SIZE;
+ unsigned int zexp_lower_full : RB_DEBUG_3_ZEXP_LOWER_FULL_SIZE;
+ unsigned int zexp_upper_empty : RB_DEBUG_3_ZEXP_UPPER_EMPTY_SIZE;
+ unsigned int zexp_lower_empty : RB_DEBUG_3_ZEXP_LOWER_EMPTY_SIZE;
+ unsigned int ez_return_upper_full : RB_DEBUG_3_EZ_RETURN_UPPER_FULL_SIZE;
+ unsigned int ez_return_lower_full : RB_DEBUG_3_EZ_RETURN_LOWER_FULL_SIZE;
+ unsigned int ez_return_upper_empty : RB_DEBUG_3_EZ_RETURN_UPPER_EMPTY_SIZE;
+ unsigned int ez_return_lower_empty : RB_DEBUG_3_EZ_RETURN_LOWER_EMPTY_SIZE;
+ unsigned int shd_empty : RB_DEBUG_3_SHD_EMPTY_SIZE;
+ unsigned int shd_full : RB_DEBUG_3_SHD_FULL_SIZE;
+ unsigned int accum_data_fifo_cnt : RB_DEBUG_3_ACCUM_DATA_FIFO_CNT_SIZE;
+ unsigned int accum_input_reg_valid : RB_DEBUG_3_ACCUM_INPUT_REG_VALID_SIZE;
+ unsigned int accum_write_clean_count : RB_DEBUG_3_ACCUM_WRITE_CLEAN_COUNT_SIZE;
+ unsigned int accum_flushing : RB_DEBUG_3_ACCUM_FLUSHING_SIZE;
+ unsigned int accum_valid : RB_DEBUG_3_ACCUM_VALID_SIZE;
+ } rb_debug_3_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_debug_3_t f;
+} rb_debug_3_u;
+
+
+/*
+ * RB_DEBUG_4 struct
+ */
+
+#define RB_DEBUG_4_GMEM_RD_ACCESS_FLAG_SIZE 1
+#define RB_DEBUG_4_GMEM_WR_ACCESS_FLAG_SIZE 1
+#define RB_DEBUG_4_SYSMEM_RD_ACCESS_FLAG_SIZE 1
+#define RB_DEBUG_4_SYSMEM_WR_ACCESS_FLAG_SIZE 1
+#define RB_DEBUG_4_ACCUM_DATA_FIFO_EMPTY_SIZE 1
+#define RB_DEBUG_4_ACCUM_ORDER_FIFO_EMPTY_SIZE 1
+#define RB_DEBUG_4_ACCUM_DATA_FIFO_FULL_SIZE 1
+#define RB_DEBUG_4_ACCUM_ORDER_FIFO_FULL_SIZE 1
+#define RB_DEBUG_4_SYSMEM_WRITE_COUNT_OVERFLOW_SIZE 1
+#define RB_DEBUG_4_CONTEXT_COUNT_DEBUG_SIZE 4
+
+#define RB_DEBUG_4_GMEM_RD_ACCESS_FLAG_SHIFT 0
+#define RB_DEBUG_4_GMEM_WR_ACCESS_FLAG_SHIFT 1
+#define RB_DEBUG_4_SYSMEM_RD_ACCESS_FLAG_SHIFT 2
+#define RB_DEBUG_4_SYSMEM_WR_ACCESS_FLAG_SHIFT 3
+#define RB_DEBUG_4_ACCUM_DATA_FIFO_EMPTY_SHIFT 4
+#define RB_DEBUG_4_ACCUM_ORDER_FIFO_EMPTY_SHIFT 5
+#define RB_DEBUG_4_ACCUM_DATA_FIFO_FULL_SHIFT 6
+#define RB_DEBUG_4_ACCUM_ORDER_FIFO_FULL_SHIFT 7
+#define RB_DEBUG_4_SYSMEM_WRITE_COUNT_OVERFLOW_SHIFT 8
+#define RB_DEBUG_4_CONTEXT_COUNT_DEBUG_SHIFT 9
+
+#define RB_DEBUG_4_GMEM_RD_ACCESS_FLAG_MASK 0x00000001
+#define RB_DEBUG_4_GMEM_WR_ACCESS_FLAG_MASK 0x00000002
+#define RB_DEBUG_4_SYSMEM_RD_ACCESS_FLAG_MASK 0x00000004
+#define RB_DEBUG_4_SYSMEM_WR_ACCESS_FLAG_MASK 0x00000008
+#define RB_DEBUG_4_ACCUM_DATA_FIFO_EMPTY_MASK 0x00000010
+#define RB_DEBUG_4_ACCUM_ORDER_FIFO_EMPTY_MASK 0x00000020
+#define RB_DEBUG_4_ACCUM_DATA_FIFO_FULL_MASK 0x00000040
+#define RB_DEBUG_4_ACCUM_ORDER_FIFO_FULL_MASK 0x00000080
+#define RB_DEBUG_4_SYSMEM_WRITE_COUNT_OVERFLOW_MASK 0x00000100
+#define RB_DEBUG_4_CONTEXT_COUNT_DEBUG_MASK 0x00001e00
+
+#define RB_DEBUG_4_MASK \
+ (RB_DEBUG_4_GMEM_RD_ACCESS_FLAG_MASK | \
+ RB_DEBUG_4_GMEM_WR_ACCESS_FLAG_MASK | \
+ RB_DEBUG_4_SYSMEM_RD_ACCESS_FLAG_MASK | \
+ RB_DEBUG_4_SYSMEM_WR_ACCESS_FLAG_MASK | \
+ RB_DEBUG_4_ACCUM_DATA_FIFO_EMPTY_MASK | \
+ RB_DEBUG_4_ACCUM_ORDER_FIFO_EMPTY_MASK | \
+ RB_DEBUG_4_ACCUM_DATA_FIFO_FULL_MASK | \
+ RB_DEBUG_4_ACCUM_ORDER_FIFO_FULL_MASK | \
+ RB_DEBUG_4_SYSMEM_WRITE_COUNT_OVERFLOW_MASK | \
+ RB_DEBUG_4_CONTEXT_COUNT_DEBUG_MASK)
+
+#define RB_DEBUG_4(gmem_rd_access_flag, gmem_wr_access_flag, sysmem_rd_access_flag, sysmem_wr_access_flag, accum_data_fifo_empty, accum_order_fifo_empty, accum_data_fifo_full, accum_order_fifo_full, sysmem_write_count_overflow, context_count_debug) \
+ ((gmem_rd_access_flag << RB_DEBUG_4_GMEM_RD_ACCESS_FLAG_SHIFT) | \
+ (gmem_wr_access_flag << RB_DEBUG_4_GMEM_WR_ACCESS_FLAG_SHIFT) | \
+ (sysmem_rd_access_flag << RB_DEBUG_4_SYSMEM_RD_ACCESS_FLAG_SHIFT) | \
+ (sysmem_wr_access_flag << RB_DEBUG_4_SYSMEM_WR_ACCESS_FLAG_SHIFT) | \
+ (accum_data_fifo_empty << RB_DEBUG_4_ACCUM_DATA_FIFO_EMPTY_SHIFT) | \
+ (accum_order_fifo_empty << RB_DEBUG_4_ACCUM_ORDER_FIFO_EMPTY_SHIFT) | \
+ (accum_data_fifo_full << RB_DEBUG_4_ACCUM_DATA_FIFO_FULL_SHIFT) | \
+ (accum_order_fifo_full << RB_DEBUG_4_ACCUM_ORDER_FIFO_FULL_SHIFT) | \
+ (sysmem_write_count_overflow << RB_DEBUG_4_SYSMEM_WRITE_COUNT_OVERFLOW_SHIFT) | \
+ (context_count_debug << RB_DEBUG_4_CONTEXT_COUNT_DEBUG_SHIFT))
+
+#define RB_DEBUG_4_GET_GMEM_RD_ACCESS_FLAG(rb_debug_4) \
+ ((rb_debug_4 & RB_DEBUG_4_GMEM_RD_ACCESS_FLAG_MASK) >> RB_DEBUG_4_GMEM_RD_ACCESS_FLAG_SHIFT)
+#define RB_DEBUG_4_GET_GMEM_WR_ACCESS_FLAG(rb_debug_4) \
+ ((rb_debug_4 & RB_DEBUG_4_GMEM_WR_ACCESS_FLAG_MASK) >> RB_DEBUG_4_GMEM_WR_ACCESS_FLAG_SHIFT)
+#define RB_DEBUG_4_GET_SYSMEM_RD_ACCESS_FLAG(rb_debug_4) \
+ ((rb_debug_4 & RB_DEBUG_4_SYSMEM_RD_ACCESS_FLAG_MASK) >> RB_DEBUG_4_SYSMEM_RD_ACCESS_FLAG_SHIFT)
+#define RB_DEBUG_4_GET_SYSMEM_WR_ACCESS_FLAG(rb_debug_4) \
+ ((rb_debug_4 & RB_DEBUG_4_SYSMEM_WR_ACCESS_FLAG_MASK) >> RB_DEBUG_4_SYSMEM_WR_ACCESS_FLAG_SHIFT)
+#define RB_DEBUG_4_GET_ACCUM_DATA_FIFO_EMPTY(rb_debug_4) \
+ ((rb_debug_4 & RB_DEBUG_4_ACCUM_DATA_FIFO_EMPTY_MASK) >> RB_DEBUG_4_ACCUM_DATA_FIFO_EMPTY_SHIFT)
+#define RB_DEBUG_4_GET_ACCUM_ORDER_FIFO_EMPTY(rb_debug_4) \
+ ((rb_debug_4 & RB_DEBUG_4_ACCUM_ORDER_FIFO_EMPTY_MASK) >> RB_DEBUG_4_ACCUM_ORDER_FIFO_EMPTY_SHIFT)
+#define RB_DEBUG_4_GET_ACCUM_DATA_FIFO_FULL(rb_debug_4) \
+ ((rb_debug_4 & RB_DEBUG_4_ACCUM_DATA_FIFO_FULL_MASK) >> RB_DEBUG_4_ACCUM_DATA_FIFO_FULL_SHIFT)
+#define RB_DEBUG_4_GET_ACCUM_ORDER_FIFO_FULL(rb_debug_4) \
+ ((rb_debug_4 & RB_DEBUG_4_ACCUM_ORDER_FIFO_FULL_MASK) >> RB_DEBUG_4_ACCUM_ORDER_FIFO_FULL_SHIFT)
+#define RB_DEBUG_4_GET_SYSMEM_WRITE_COUNT_OVERFLOW(rb_debug_4) \
+ ((rb_debug_4 & RB_DEBUG_4_SYSMEM_WRITE_COUNT_OVERFLOW_MASK) >> RB_DEBUG_4_SYSMEM_WRITE_COUNT_OVERFLOW_SHIFT)
+#define RB_DEBUG_4_GET_CONTEXT_COUNT_DEBUG(rb_debug_4) \
+ ((rb_debug_4 & RB_DEBUG_4_CONTEXT_COUNT_DEBUG_MASK) >> RB_DEBUG_4_CONTEXT_COUNT_DEBUG_SHIFT)
+
+#define RB_DEBUG_4_SET_GMEM_RD_ACCESS_FLAG(rb_debug_4_reg, gmem_rd_access_flag) \
+ rb_debug_4_reg = (rb_debug_4_reg & ~RB_DEBUG_4_GMEM_RD_ACCESS_FLAG_MASK) | (gmem_rd_access_flag << RB_DEBUG_4_GMEM_RD_ACCESS_FLAG_SHIFT)
+#define RB_DEBUG_4_SET_GMEM_WR_ACCESS_FLAG(rb_debug_4_reg, gmem_wr_access_flag) \
+ rb_debug_4_reg = (rb_debug_4_reg & ~RB_DEBUG_4_GMEM_WR_ACCESS_FLAG_MASK) | (gmem_wr_access_flag << RB_DEBUG_4_GMEM_WR_ACCESS_FLAG_SHIFT)
+#define RB_DEBUG_4_SET_SYSMEM_RD_ACCESS_FLAG(rb_debug_4_reg, sysmem_rd_access_flag) \
+ rb_debug_4_reg = (rb_debug_4_reg & ~RB_DEBUG_4_SYSMEM_RD_ACCESS_FLAG_MASK) | (sysmem_rd_access_flag << RB_DEBUG_4_SYSMEM_RD_ACCESS_FLAG_SHIFT)
+#define RB_DEBUG_4_SET_SYSMEM_WR_ACCESS_FLAG(rb_debug_4_reg, sysmem_wr_access_flag) \
+ rb_debug_4_reg = (rb_debug_4_reg & ~RB_DEBUG_4_SYSMEM_WR_ACCESS_FLAG_MASK) | (sysmem_wr_access_flag << RB_DEBUG_4_SYSMEM_WR_ACCESS_FLAG_SHIFT)
+#define RB_DEBUG_4_SET_ACCUM_DATA_FIFO_EMPTY(rb_debug_4_reg, accum_data_fifo_empty) \
+ rb_debug_4_reg = (rb_debug_4_reg & ~RB_DEBUG_4_ACCUM_DATA_FIFO_EMPTY_MASK) | (accum_data_fifo_empty << RB_DEBUG_4_ACCUM_DATA_FIFO_EMPTY_SHIFT)
+#define RB_DEBUG_4_SET_ACCUM_ORDER_FIFO_EMPTY(rb_debug_4_reg, accum_order_fifo_empty) \
+ rb_debug_4_reg = (rb_debug_4_reg & ~RB_DEBUG_4_ACCUM_ORDER_FIFO_EMPTY_MASK) | (accum_order_fifo_empty << RB_DEBUG_4_ACCUM_ORDER_FIFO_EMPTY_SHIFT)
+#define RB_DEBUG_4_SET_ACCUM_DATA_FIFO_FULL(rb_debug_4_reg, accum_data_fifo_full) \
+ rb_debug_4_reg = (rb_debug_4_reg & ~RB_DEBUG_4_ACCUM_DATA_FIFO_FULL_MASK) | (accum_data_fifo_full << RB_DEBUG_4_ACCUM_DATA_FIFO_FULL_SHIFT)
+#define RB_DEBUG_4_SET_ACCUM_ORDER_FIFO_FULL(rb_debug_4_reg, accum_order_fifo_full) \
+ rb_debug_4_reg = (rb_debug_4_reg & ~RB_DEBUG_4_ACCUM_ORDER_FIFO_FULL_MASK) | (accum_order_fifo_full << RB_DEBUG_4_ACCUM_ORDER_FIFO_FULL_SHIFT)
+#define RB_DEBUG_4_SET_SYSMEM_WRITE_COUNT_OVERFLOW(rb_debug_4_reg, sysmem_write_count_overflow) \
+ rb_debug_4_reg = (rb_debug_4_reg & ~RB_DEBUG_4_SYSMEM_WRITE_COUNT_OVERFLOW_MASK) | (sysmem_write_count_overflow << RB_DEBUG_4_SYSMEM_WRITE_COUNT_OVERFLOW_SHIFT)
+#define RB_DEBUG_4_SET_CONTEXT_COUNT_DEBUG(rb_debug_4_reg, context_count_debug) \
+ rb_debug_4_reg = (rb_debug_4_reg & ~RB_DEBUG_4_CONTEXT_COUNT_DEBUG_MASK) | (context_count_debug << RB_DEBUG_4_CONTEXT_COUNT_DEBUG_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_debug_4_t {
+ unsigned int gmem_rd_access_flag : RB_DEBUG_4_GMEM_RD_ACCESS_FLAG_SIZE;
+ unsigned int gmem_wr_access_flag : RB_DEBUG_4_GMEM_WR_ACCESS_FLAG_SIZE;
+ unsigned int sysmem_rd_access_flag : RB_DEBUG_4_SYSMEM_RD_ACCESS_FLAG_SIZE;
+ unsigned int sysmem_wr_access_flag : RB_DEBUG_4_SYSMEM_WR_ACCESS_FLAG_SIZE;
+ unsigned int accum_data_fifo_empty : RB_DEBUG_4_ACCUM_DATA_FIFO_EMPTY_SIZE;
+ unsigned int accum_order_fifo_empty : RB_DEBUG_4_ACCUM_ORDER_FIFO_EMPTY_SIZE;
+ unsigned int accum_data_fifo_full : RB_DEBUG_4_ACCUM_DATA_FIFO_FULL_SIZE;
+ unsigned int accum_order_fifo_full : RB_DEBUG_4_ACCUM_ORDER_FIFO_FULL_SIZE;
+ unsigned int sysmem_write_count_overflow : RB_DEBUG_4_SYSMEM_WRITE_COUNT_OVERFLOW_SIZE;
+ unsigned int context_count_debug : RB_DEBUG_4_CONTEXT_COUNT_DEBUG_SIZE;
+ unsigned int : 19;
+ } rb_debug_4_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_debug_4_t {
+ unsigned int : 19;
+ unsigned int context_count_debug : RB_DEBUG_4_CONTEXT_COUNT_DEBUG_SIZE;
+ unsigned int sysmem_write_count_overflow : RB_DEBUG_4_SYSMEM_WRITE_COUNT_OVERFLOW_SIZE;
+ unsigned int accum_order_fifo_full : RB_DEBUG_4_ACCUM_ORDER_FIFO_FULL_SIZE;
+ unsigned int accum_data_fifo_full : RB_DEBUG_4_ACCUM_DATA_FIFO_FULL_SIZE;
+ unsigned int accum_order_fifo_empty : RB_DEBUG_4_ACCUM_ORDER_FIFO_EMPTY_SIZE;
+ unsigned int accum_data_fifo_empty : RB_DEBUG_4_ACCUM_DATA_FIFO_EMPTY_SIZE;
+ unsigned int sysmem_wr_access_flag : RB_DEBUG_4_SYSMEM_WR_ACCESS_FLAG_SIZE;
+ unsigned int sysmem_rd_access_flag : RB_DEBUG_4_SYSMEM_RD_ACCESS_FLAG_SIZE;
+ unsigned int gmem_wr_access_flag : RB_DEBUG_4_GMEM_WR_ACCESS_FLAG_SIZE;
+ unsigned int gmem_rd_access_flag : RB_DEBUG_4_GMEM_RD_ACCESS_FLAG_SIZE;
+ } rb_debug_4_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_debug_4_t f;
+} rb_debug_4_u;
+
+
+/*
+ * RB_FLAG_CONTROL struct
+ */
+
+#define RB_FLAG_CONTROL_DEBUG_FLAG_CLEAR_SIZE 1
+
+#define RB_FLAG_CONTROL_DEBUG_FLAG_CLEAR_SHIFT 0
+
+#define RB_FLAG_CONTROL_DEBUG_FLAG_CLEAR_MASK 0x00000001
+
+#define RB_FLAG_CONTROL_MASK \
+ (RB_FLAG_CONTROL_DEBUG_FLAG_CLEAR_MASK)
+
+#define RB_FLAG_CONTROL(debug_flag_clear) \
+ ((debug_flag_clear << RB_FLAG_CONTROL_DEBUG_FLAG_CLEAR_SHIFT))
+
+#define RB_FLAG_CONTROL_GET_DEBUG_FLAG_CLEAR(rb_flag_control) \
+ ((rb_flag_control & RB_FLAG_CONTROL_DEBUG_FLAG_CLEAR_MASK) >> RB_FLAG_CONTROL_DEBUG_FLAG_CLEAR_SHIFT)
+
+#define RB_FLAG_CONTROL_SET_DEBUG_FLAG_CLEAR(rb_flag_control_reg, debug_flag_clear) \
+ rb_flag_control_reg = (rb_flag_control_reg & ~RB_FLAG_CONTROL_DEBUG_FLAG_CLEAR_MASK) | (debug_flag_clear << RB_FLAG_CONTROL_DEBUG_FLAG_CLEAR_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_flag_control_t {
+ unsigned int debug_flag_clear : RB_FLAG_CONTROL_DEBUG_FLAG_CLEAR_SIZE;
+ unsigned int : 31;
+ } rb_flag_control_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_flag_control_t {
+ unsigned int : 31;
+ unsigned int debug_flag_clear : RB_FLAG_CONTROL_DEBUG_FLAG_CLEAR_SIZE;
+ } rb_flag_control_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_flag_control_t f;
+} rb_flag_control_u;
+
+
+/*
+ * RB_BC_SPARES struct
+ */
+
+#define RB_BC_SPARES_RESERVED_SIZE 32
+
+#define RB_BC_SPARES_RESERVED_SHIFT 0
+
+#define RB_BC_SPARES_RESERVED_MASK 0xffffffff
+
+#define RB_BC_SPARES_MASK \
+ (RB_BC_SPARES_RESERVED_MASK)
+
+#define RB_BC_SPARES(reserved) \
+ ((reserved << RB_BC_SPARES_RESERVED_SHIFT))
+
+#define RB_BC_SPARES_GET_RESERVED(rb_bc_spares) \
+ ((rb_bc_spares & RB_BC_SPARES_RESERVED_MASK) >> RB_BC_SPARES_RESERVED_SHIFT)
+
+#define RB_BC_SPARES_SET_RESERVED(rb_bc_spares_reg, reserved) \
+ rb_bc_spares_reg = (rb_bc_spares_reg & ~RB_BC_SPARES_RESERVED_MASK) | (reserved << RB_BC_SPARES_RESERVED_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _rb_bc_spares_t {
+ unsigned int reserved : RB_BC_SPARES_RESERVED_SIZE;
+ } rb_bc_spares_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _rb_bc_spares_t {
+ unsigned int reserved : RB_BC_SPARES_RESERVED_SIZE;
+ } rb_bc_spares_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ rb_bc_spares_t f;
+} rb_bc_spares_u;
+
+
+/*
+ * BC_DUMMY_CRAYRB_ENUMS struct
+ */
+
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_FORMAT_SIZE 6
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_SWAP_SIZE 1
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_ARRAY_SIZE 2
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_ARRAY_SIZE 2
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_COLOR_FORMAT_SIZE 6
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_NUMBER_SIZE 3
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_FORMAT_SIZE 6
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_TILING_SIZE 1
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_ARRAY_SIZE 2
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_RB_COPY_DEST_INFO_NUMBER_SIZE 3
+
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_FORMAT_SHIFT 0
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_SWAP_SHIFT 6
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_ARRAY_SHIFT 7
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_ARRAY_SHIFT 9
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_COLOR_FORMAT_SHIFT 11
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_NUMBER_SHIFT 17
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_FORMAT_SHIFT 20
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_TILING_SHIFT 26
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_ARRAY_SHIFT 27
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_RB_COPY_DEST_INFO_NUMBER_SHIFT 29
+
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_FORMAT_MASK 0x0000003f
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_SWAP_MASK 0x00000040
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_ARRAY_MASK 0x00000180
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_ARRAY_MASK 0x00000600
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_COLOR_FORMAT_MASK 0x0001f800
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_NUMBER_MASK 0x000e0000
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_FORMAT_MASK 0x03f00000
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_TILING_MASK 0x04000000
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_ARRAY_MASK 0x18000000
+#define BC_DUMMY_CRAYRB_ENUMS_DUMMY_RB_COPY_DEST_INFO_NUMBER_MASK 0xe0000000
+
+#define BC_DUMMY_CRAYRB_ENUMS_MASK \
+ (BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_FORMAT_MASK | \
+ BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_SWAP_MASK | \
+ BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_ARRAY_MASK | \
+ BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_ARRAY_MASK | \
+ BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_COLOR_FORMAT_MASK | \
+ BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_NUMBER_MASK | \
+ BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_FORMAT_MASK | \
+ BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_TILING_MASK | \
+ BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_ARRAY_MASK | \
+ BC_DUMMY_CRAYRB_ENUMS_DUMMY_RB_COPY_DEST_INFO_NUMBER_MASK)
+
+#define BC_DUMMY_CRAYRB_ENUMS(dummy_crayrb_depth_format, dummy_crayrb_surface_swap, dummy_crayrb_depth_array, dummy_crayrb_array, dummy_crayrb_color_format, dummy_crayrb_surface_number, dummy_crayrb_surface_format, dummy_crayrb_surface_tiling, dummy_crayrb_surface_array, dummy_rb_copy_dest_info_number) \
+ ((dummy_crayrb_depth_format << BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_FORMAT_SHIFT) | \
+ (dummy_crayrb_surface_swap << BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_SWAP_SHIFT) | \
+ (dummy_crayrb_depth_array << BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_ARRAY_SHIFT) | \
+ (dummy_crayrb_array << BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_ARRAY_SHIFT) | \
+ (dummy_crayrb_color_format << BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_COLOR_FORMAT_SHIFT) | \
+ (dummy_crayrb_surface_number << BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_NUMBER_SHIFT) | \
+ (dummy_crayrb_surface_format << BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_FORMAT_SHIFT) | \
+ (dummy_crayrb_surface_tiling << BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_TILING_SHIFT) | \
+ (dummy_crayrb_surface_array << BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_ARRAY_SHIFT) | \
+ (dummy_rb_copy_dest_info_number << BC_DUMMY_CRAYRB_ENUMS_DUMMY_RB_COPY_DEST_INFO_NUMBER_SHIFT))
+
+#define BC_DUMMY_CRAYRB_ENUMS_GET_DUMMY_CRAYRB_DEPTH_FORMAT(bc_dummy_crayrb_enums) \
+ ((bc_dummy_crayrb_enums & BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_FORMAT_MASK) >> BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_FORMAT_SHIFT)
+#define BC_DUMMY_CRAYRB_ENUMS_GET_DUMMY_CRAYRB_SURFACE_SWAP(bc_dummy_crayrb_enums) \
+ ((bc_dummy_crayrb_enums & BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_SWAP_MASK) >> BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_SWAP_SHIFT)
+#define BC_DUMMY_CRAYRB_ENUMS_GET_DUMMY_CRAYRB_DEPTH_ARRAY(bc_dummy_crayrb_enums) \
+ ((bc_dummy_crayrb_enums & BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_ARRAY_MASK) >> BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_ARRAY_SHIFT)
+#define BC_DUMMY_CRAYRB_ENUMS_GET_DUMMY_CRAYRB_ARRAY(bc_dummy_crayrb_enums) \
+ ((bc_dummy_crayrb_enums & BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_ARRAY_MASK) >> BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_ARRAY_SHIFT)
+#define BC_DUMMY_CRAYRB_ENUMS_GET_DUMMY_CRAYRB_COLOR_FORMAT(bc_dummy_crayrb_enums) \
+ ((bc_dummy_crayrb_enums & BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_COLOR_FORMAT_MASK) >> BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_COLOR_FORMAT_SHIFT)
+#define BC_DUMMY_CRAYRB_ENUMS_GET_DUMMY_CRAYRB_SURFACE_NUMBER(bc_dummy_crayrb_enums) \
+ ((bc_dummy_crayrb_enums & BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_NUMBER_MASK) >> BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_NUMBER_SHIFT)
+#define BC_DUMMY_CRAYRB_ENUMS_GET_DUMMY_CRAYRB_SURFACE_FORMAT(bc_dummy_crayrb_enums) \
+ ((bc_dummy_crayrb_enums & BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_FORMAT_MASK) >> BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_FORMAT_SHIFT)
+#define BC_DUMMY_CRAYRB_ENUMS_GET_DUMMY_CRAYRB_SURFACE_TILING(bc_dummy_crayrb_enums) \
+ ((bc_dummy_crayrb_enums & BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_TILING_MASK) >> BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_TILING_SHIFT)
+#define BC_DUMMY_CRAYRB_ENUMS_GET_DUMMY_CRAYRB_SURFACE_ARRAY(bc_dummy_crayrb_enums) \
+ ((bc_dummy_crayrb_enums & BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_ARRAY_MASK) >> BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_ARRAY_SHIFT)
+#define BC_DUMMY_CRAYRB_ENUMS_GET_DUMMY_RB_COPY_DEST_INFO_NUMBER(bc_dummy_crayrb_enums) \
+ ((bc_dummy_crayrb_enums & BC_DUMMY_CRAYRB_ENUMS_DUMMY_RB_COPY_DEST_INFO_NUMBER_MASK) >> BC_DUMMY_CRAYRB_ENUMS_DUMMY_RB_COPY_DEST_INFO_NUMBER_SHIFT)
+
+#define BC_DUMMY_CRAYRB_ENUMS_SET_DUMMY_CRAYRB_DEPTH_FORMAT(bc_dummy_crayrb_enums_reg, dummy_crayrb_depth_format) \
+ bc_dummy_crayrb_enums_reg = (bc_dummy_crayrb_enums_reg & ~BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_FORMAT_MASK) | (dummy_crayrb_depth_format << BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_FORMAT_SHIFT)
+#define BC_DUMMY_CRAYRB_ENUMS_SET_DUMMY_CRAYRB_SURFACE_SWAP(bc_dummy_crayrb_enums_reg, dummy_crayrb_surface_swap) \
+ bc_dummy_crayrb_enums_reg = (bc_dummy_crayrb_enums_reg & ~BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_SWAP_MASK) | (dummy_crayrb_surface_swap << BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_SWAP_SHIFT)
+#define BC_DUMMY_CRAYRB_ENUMS_SET_DUMMY_CRAYRB_DEPTH_ARRAY(bc_dummy_crayrb_enums_reg, dummy_crayrb_depth_array) \
+ bc_dummy_crayrb_enums_reg = (bc_dummy_crayrb_enums_reg & ~BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_ARRAY_MASK) | (dummy_crayrb_depth_array << BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_ARRAY_SHIFT)
+#define BC_DUMMY_CRAYRB_ENUMS_SET_DUMMY_CRAYRB_ARRAY(bc_dummy_crayrb_enums_reg, dummy_crayrb_array) \
+ bc_dummy_crayrb_enums_reg = (bc_dummy_crayrb_enums_reg & ~BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_ARRAY_MASK) | (dummy_crayrb_array << BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_ARRAY_SHIFT)
+#define BC_DUMMY_CRAYRB_ENUMS_SET_DUMMY_CRAYRB_COLOR_FORMAT(bc_dummy_crayrb_enums_reg, dummy_crayrb_color_format) \
+ bc_dummy_crayrb_enums_reg = (bc_dummy_crayrb_enums_reg & ~BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_COLOR_FORMAT_MASK) | (dummy_crayrb_color_format << BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_COLOR_FORMAT_SHIFT)
+#define BC_DUMMY_CRAYRB_ENUMS_SET_DUMMY_CRAYRB_SURFACE_NUMBER(bc_dummy_crayrb_enums_reg, dummy_crayrb_surface_number) \
+ bc_dummy_crayrb_enums_reg = (bc_dummy_crayrb_enums_reg & ~BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_NUMBER_MASK) | (dummy_crayrb_surface_number << BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_NUMBER_SHIFT)
+#define BC_DUMMY_CRAYRB_ENUMS_SET_DUMMY_CRAYRB_SURFACE_FORMAT(bc_dummy_crayrb_enums_reg, dummy_crayrb_surface_format) \
+ bc_dummy_crayrb_enums_reg = (bc_dummy_crayrb_enums_reg & ~BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_FORMAT_MASK) | (dummy_crayrb_surface_format << BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_FORMAT_SHIFT)
+#define BC_DUMMY_CRAYRB_ENUMS_SET_DUMMY_CRAYRB_SURFACE_TILING(bc_dummy_crayrb_enums_reg, dummy_crayrb_surface_tiling) \
+ bc_dummy_crayrb_enums_reg = (bc_dummy_crayrb_enums_reg & ~BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_TILING_MASK) | (dummy_crayrb_surface_tiling << BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_TILING_SHIFT)
+#define BC_DUMMY_CRAYRB_ENUMS_SET_DUMMY_CRAYRB_SURFACE_ARRAY(bc_dummy_crayrb_enums_reg, dummy_crayrb_surface_array) \
+ bc_dummy_crayrb_enums_reg = (bc_dummy_crayrb_enums_reg & ~BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_ARRAY_MASK) | (dummy_crayrb_surface_array << BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_ARRAY_SHIFT)
+#define BC_DUMMY_CRAYRB_ENUMS_SET_DUMMY_RB_COPY_DEST_INFO_NUMBER(bc_dummy_crayrb_enums_reg, dummy_rb_copy_dest_info_number) \
+ bc_dummy_crayrb_enums_reg = (bc_dummy_crayrb_enums_reg & ~BC_DUMMY_CRAYRB_ENUMS_DUMMY_RB_COPY_DEST_INFO_NUMBER_MASK) | (dummy_rb_copy_dest_info_number << BC_DUMMY_CRAYRB_ENUMS_DUMMY_RB_COPY_DEST_INFO_NUMBER_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _bc_dummy_crayrb_enums_t {
+ unsigned int dummy_crayrb_depth_format : BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_FORMAT_SIZE;
+ unsigned int dummy_crayrb_surface_swap : BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_SWAP_SIZE;
+ unsigned int dummy_crayrb_depth_array : BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_ARRAY_SIZE;
+ unsigned int dummy_crayrb_array : BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_ARRAY_SIZE;
+ unsigned int dummy_crayrb_color_format : BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_COLOR_FORMAT_SIZE;
+ unsigned int dummy_crayrb_surface_number : BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_NUMBER_SIZE;
+ unsigned int dummy_crayrb_surface_format : BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_FORMAT_SIZE;
+ unsigned int dummy_crayrb_surface_tiling : BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_TILING_SIZE;
+ unsigned int dummy_crayrb_surface_array : BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_ARRAY_SIZE;
+ unsigned int dummy_rb_copy_dest_info_number : BC_DUMMY_CRAYRB_ENUMS_DUMMY_RB_COPY_DEST_INFO_NUMBER_SIZE;
+ } bc_dummy_crayrb_enums_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _bc_dummy_crayrb_enums_t {
+ unsigned int dummy_rb_copy_dest_info_number : BC_DUMMY_CRAYRB_ENUMS_DUMMY_RB_COPY_DEST_INFO_NUMBER_SIZE;
+ unsigned int dummy_crayrb_surface_array : BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_ARRAY_SIZE;
+ unsigned int dummy_crayrb_surface_tiling : BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_TILING_SIZE;
+ unsigned int dummy_crayrb_surface_format : BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_FORMAT_SIZE;
+ unsigned int dummy_crayrb_surface_number : BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_NUMBER_SIZE;
+ unsigned int dummy_crayrb_color_format : BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_COLOR_FORMAT_SIZE;
+ unsigned int dummy_crayrb_array : BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_ARRAY_SIZE;
+ unsigned int dummy_crayrb_depth_array : BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_ARRAY_SIZE;
+ unsigned int dummy_crayrb_surface_swap : BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_SURFACE_SWAP_SIZE;
+ unsigned int dummy_crayrb_depth_format : BC_DUMMY_CRAYRB_ENUMS_DUMMY_CRAYRB_DEPTH_FORMAT_SIZE;
+ } bc_dummy_crayrb_enums_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ bc_dummy_crayrb_enums_t f;
+} bc_dummy_crayrb_enums_u;
+
+
+/*
+ * BC_DUMMY_CRAYRB_MOREENUMS struct
+ */
+
+#define BC_DUMMY_CRAYRB_MOREENUMS_DUMMY_CRAYRB_COLORARRAYX_SIZE 2
+
+#define BC_DUMMY_CRAYRB_MOREENUMS_DUMMY_CRAYRB_COLORARRAYX_SHIFT 0
+
+#define BC_DUMMY_CRAYRB_MOREENUMS_DUMMY_CRAYRB_COLORARRAYX_MASK 0x00000003
+
+#define BC_DUMMY_CRAYRB_MOREENUMS_MASK \
+ (BC_DUMMY_CRAYRB_MOREENUMS_DUMMY_CRAYRB_COLORARRAYX_MASK)
+
+#define BC_DUMMY_CRAYRB_MOREENUMS(dummy_crayrb_colorarrayx) \
+ ((dummy_crayrb_colorarrayx << BC_DUMMY_CRAYRB_MOREENUMS_DUMMY_CRAYRB_COLORARRAYX_SHIFT))
+
+#define BC_DUMMY_CRAYRB_MOREENUMS_GET_DUMMY_CRAYRB_COLORARRAYX(bc_dummy_crayrb_moreenums) \
+ ((bc_dummy_crayrb_moreenums & BC_DUMMY_CRAYRB_MOREENUMS_DUMMY_CRAYRB_COLORARRAYX_MASK) >> BC_DUMMY_CRAYRB_MOREENUMS_DUMMY_CRAYRB_COLORARRAYX_SHIFT)
+
+#define BC_DUMMY_CRAYRB_MOREENUMS_SET_DUMMY_CRAYRB_COLORARRAYX(bc_dummy_crayrb_moreenums_reg, dummy_crayrb_colorarrayx) \
+ bc_dummy_crayrb_moreenums_reg = (bc_dummy_crayrb_moreenums_reg & ~BC_DUMMY_CRAYRB_MOREENUMS_DUMMY_CRAYRB_COLORARRAYX_MASK) | (dummy_crayrb_colorarrayx << BC_DUMMY_CRAYRB_MOREENUMS_DUMMY_CRAYRB_COLORARRAYX_SHIFT)
+
+#ifndef BIGENDIAN_OS
+
+ typedef struct _bc_dummy_crayrb_moreenums_t {
+ unsigned int dummy_crayrb_colorarrayx : BC_DUMMY_CRAYRB_MOREENUMS_DUMMY_CRAYRB_COLORARRAYX_SIZE;
+ unsigned int : 30;
+ } bc_dummy_crayrb_moreenums_t;
+
+#else // !BIGENDIAN_OS
+
+ typedef struct _bc_dummy_crayrb_moreenums_t {
+ unsigned int : 30;
+ unsigned int dummy_crayrb_colorarrayx : BC_DUMMY_CRAYRB_MOREENUMS_DUMMY_CRAYRB_COLORARRAYX_SIZE;
+ } bc_dummy_crayrb_moreenums_t;
+
+#endif
+
+typedef union {
+ unsigned int val : 32;
+ bc_dummy_crayrb_moreenums_t f;
+} bc_dummy_crayrb_moreenums_u;
+
+
+#endif
+
+
diff --git a/drivers/mxc/amd-gpu/include/reg/yamato/22/yamato_typedef.h b/drivers/mxc/amd-gpu/include/reg/yamato/22/yamato_typedef.h
new file mode 100644
index 000000000000..6968abb48bd7
--- /dev/null
+++ b/drivers/mxc/amd-gpu/include/reg/yamato/22/yamato_typedef.h
@@ -0,0 +1,550 @@
+/* Copyright (c) 2002,2007-2009, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#if !defined (_yamato_TYPEDEF_HEADER)
+#define _yamato_TYPEDEF_HEADER
+
+#include "yamato_registers.h"
+
+typedef union PA_CL_VPORT_XSCALE regPA_CL_VPORT_XSCALE;
+typedef union PA_CL_VPORT_XOFFSET regPA_CL_VPORT_XOFFSET;
+typedef union PA_CL_VPORT_YSCALE regPA_CL_VPORT_YSCALE;
+typedef union PA_CL_VPORT_YOFFSET regPA_CL_VPORT_YOFFSET;
+typedef union PA_CL_VPORT_ZSCALE regPA_CL_VPORT_ZSCALE;
+typedef union PA_CL_VPORT_ZOFFSET regPA_CL_VPORT_ZOFFSET;
+typedef union PA_CL_VTE_CNTL regPA_CL_VTE_CNTL;
+typedef union PA_CL_CLIP_CNTL regPA_CL_CLIP_CNTL;
+typedef union PA_CL_GB_VERT_CLIP_ADJ regPA_CL_GB_VERT_CLIP_ADJ;
+typedef union PA_CL_GB_VERT_DISC_ADJ regPA_CL_GB_VERT_DISC_ADJ;
+typedef union PA_CL_GB_HORZ_CLIP_ADJ regPA_CL_GB_HORZ_CLIP_ADJ;
+typedef union PA_CL_GB_HORZ_DISC_ADJ regPA_CL_GB_HORZ_DISC_ADJ;
+typedef union PA_CL_ENHANCE regPA_CL_ENHANCE;
+typedef union PA_SC_ENHANCE regPA_SC_ENHANCE;
+typedef union PA_SU_VTX_CNTL regPA_SU_VTX_CNTL;
+typedef union PA_SU_POINT_SIZE regPA_SU_POINT_SIZE;
+typedef union PA_SU_POINT_MINMAX regPA_SU_POINT_MINMAX;
+typedef union PA_SU_LINE_CNTL regPA_SU_LINE_CNTL;
+typedef union PA_SU_FACE_DATA regPA_SU_FACE_DATA;
+typedef union PA_SU_SC_MODE_CNTL regPA_SU_SC_MODE_CNTL;
+typedef union PA_SU_POLY_OFFSET_FRONT_SCALE regPA_SU_POLY_OFFSET_FRONT_SCALE;
+typedef union PA_SU_POLY_OFFSET_FRONT_OFFSET regPA_SU_POLY_OFFSET_FRONT_OFFSET;
+typedef union PA_SU_POLY_OFFSET_BACK_SCALE regPA_SU_POLY_OFFSET_BACK_SCALE;
+typedef union PA_SU_POLY_OFFSET_BACK_OFFSET regPA_SU_POLY_OFFSET_BACK_OFFSET;
+typedef union PA_SU_PERFCOUNTER0_SELECT regPA_SU_PERFCOUNTER0_SELECT;
+typedef union PA_SU_PERFCOUNTER1_SELECT regPA_SU_PERFCOUNTER1_SELECT;
+typedef union PA_SU_PERFCOUNTER2_SELECT regPA_SU_PERFCOUNTER2_SELECT;
+typedef union PA_SU_PERFCOUNTER3_SELECT regPA_SU_PERFCOUNTER3_SELECT;
+typedef union PA_SU_PERFCOUNTER0_LOW regPA_SU_PERFCOUNTER0_LOW;
+typedef union PA_SU_PERFCOUNTER0_HI regPA_SU_PERFCOUNTER0_HI;
+typedef union PA_SU_PERFCOUNTER1_LOW regPA_SU_PERFCOUNTER1_LOW;
+typedef union PA_SU_PERFCOUNTER1_HI regPA_SU_PERFCOUNTER1_HI;
+typedef union PA_SU_PERFCOUNTER2_LOW regPA_SU_PERFCOUNTER2_LOW;
+typedef union PA_SU_PERFCOUNTER2_HI regPA_SU_PERFCOUNTER2_HI;
+typedef union PA_SU_PERFCOUNTER3_LOW regPA_SU_PERFCOUNTER3_LOW;
+typedef union PA_SU_PERFCOUNTER3_HI regPA_SU_PERFCOUNTER3_HI;
+typedef union PA_SC_WINDOW_OFFSET regPA_SC_WINDOW_OFFSET;
+typedef union PA_SC_AA_CONFIG regPA_SC_AA_CONFIG;
+typedef union PA_SC_AA_MASK regPA_SC_AA_MASK;
+typedef union PA_SC_LINE_STIPPLE regPA_SC_LINE_STIPPLE;
+typedef union PA_SC_LINE_CNTL regPA_SC_LINE_CNTL;
+typedef union PA_SC_WINDOW_SCISSOR_TL regPA_SC_WINDOW_SCISSOR_TL;
+typedef union PA_SC_WINDOW_SCISSOR_BR regPA_SC_WINDOW_SCISSOR_BR;
+typedef union PA_SC_SCREEN_SCISSOR_TL regPA_SC_SCREEN_SCISSOR_TL;
+typedef union PA_SC_SCREEN_SCISSOR_BR regPA_SC_SCREEN_SCISSOR_BR;
+typedef union PA_SC_VIZ_QUERY regPA_SC_VIZ_QUERY;
+typedef union PA_SC_VIZ_QUERY_STATUS regPA_SC_VIZ_QUERY_STATUS;
+typedef union PA_SC_LINE_STIPPLE_STATE regPA_SC_LINE_STIPPLE_STATE;
+typedef union PA_SC_PERFCOUNTER0_SELECT regPA_SC_PERFCOUNTER0_SELECT;
+typedef union PA_SC_PERFCOUNTER0_LOW regPA_SC_PERFCOUNTER0_LOW;
+typedef union PA_SC_PERFCOUNTER0_HI regPA_SC_PERFCOUNTER0_HI;
+typedef union PA_CL_CNTL_STATUS regPA_CL_CNTL_STATUS;
+typedef union PA_SU_CNTL_STATUS regPA_SU_CNTL_STATUS;
+typedef union PA_SC_CNTL_STATUS regPA_SC_CNTL_STATUS;
+typedef union PA_SU_DEBUG_CNTL regPA_SU_DEBUG_CNTL;
+typedef union PA_SU_DEBUG_DATA regPA_SU_DEBUG_DATA;
+typedef union PA_SC_DEBUG_CNTL regPA_SC_DEBUG_CNTL;
+typedef union PA_SC_DEBUG_DATA regPA_SC_DEBUG_DATA;
+typedef union GFX_COPY_STATE regGFX_COPY_STATE;
+typedef union VGT_DRAW_INITIATOR regVGT_DRAW_INITIATOR;
+typedef union VGT_EVENT_INITIATOR regVGT_EVENT_INITIATOR;
+typedef union VGT_DMA_BASE regVGT_DMA_BASE;
+typedef union VGT_DMA_SIZE regVGT_DMA_SIZE;
+typedef union VGT_BIN_BASE regVGT_BIN_BASE;
+typedef union VGT_BIN_SIZE regVGT_BIN_SIZE;
+typedef union VGT_CURRENT_BIN_ID_MIN regVGT_CURRENT_BIN_ID_MIN;
+typedef union VGT_CURRENT_BIN_ID_MAX regVGT_CURRENT_BIN_ID_MAX;
+typedef union VGT_IMMED_DATA regVGT_IMMED_DATA;
+typedef union VGT_MAX_VTX_INDX regVGT_MAX_VTX_INDX;
+typedef union VGT_MIN_VTX_INDX regVGT_MIN_VTX_INDX;
+typedef union VGT_INDX_OFFSET regVGT_INDX_OFFSET;
+typedef union VGT_VERTEX_REUSE_BLOCK_CNTL regVGT_VERTEX_REUSE_BLOCK_CNTL;
+typedef union VGT_OUT_DEALLOC_CNTL regVGT_OUT_DEALLOC_CNTL;
+typedef union VGT_MULTI_PRIM_IB_RESET_INDX regVGT_MULTI_PRIM_IB_RESET_INDX;
+typedef union VGT_ENHANCE regVGT_ENHANCE;
+typedef union VGT_VTX_VECT_EJECT_REG regVGT_VTX_VECT_EJECT_REG;
+typedef union VGT_LAST_COPY_STATE regVGT_LAST_COPY_STATE;
+typedef union VGT_DEBUG_CNTL regVGT_DEBUG_CNTL;
+typedef union VGT_DEBUG_DATA regVGT_DEBUG_DATA;
+typedef union VGT_CNTL_STATUS regVGT_CNTL_STATUS;
+typedef union VGT_CRC_SQ_DATA regVGT_CRC_SQ_DATA;
+typedef union VGT_CRC_SQ_CTRL regVGT_CRC_SQ_CTRL;
+typedef union VGT_PERFCOUNTER0_SELECT regVGT_PERFCOUNTER0_SELECT;
+typedef union VGT_PERFCOUNTER1_SELECT regVGT_PERFCOUNTER1_SELECT;
+typedef union VGT_PERFCOUNTER2_SELECT regVGT_PERFCOUNTER2_SELECT;
+typedef union VGT_PERFCOUNTER3_SELECT regVGT_PERFCOUNTER3_SELECT;
+typedef union VGT_PERFCOUNTER0_LOW regVGT_PERFCOUNTER0_LOW;
+typedef union VGT_PERFCOUNTER1_LOW regVGT_PERFCOUNTER1_LOW;
+typedef union VGT_PERFCOUNTER2_LOW regVGT_PERFCOUNTER2_LOW;
+typedef union VGT_PERFCOUNTER3_LOW regVGT_PERFCOUNTER3_LOW;
+typedef union VGT_PERFCOUNTER0_HI regVGT_PERFCOUNTER0_HI;
+typedef union VGT_PERFCOUNTER1_HI regVGT_PERFCOUNTER1_HI;
+typedef union VGT_PERFCOUNTER2_HI regVGT_PERFCOUNTER2_HI;
+typedef union VGT_PERFCOUNTER3_HI regVGT_PERFCOUNTER3_HI;
+typedef union TC_CNTL_STATUS regTC_CNTL_STATUS;
+typedef union TCR_CHICKEN regTCR_CHICKEN;
+typedef union TCF_CHICKEN regTCF_CHICKEN;
+typedef union TCM_CHICKEN regTCM_CHICKEN;
+typedef union TCR_PERFCOUNTER0_SELECT regTCR_PERFCOUNTER0_SELECT;
+typedef union TCR_PERFCOUNTER1_SELECT regTCR_PERFCOUNTER1_SELECT;
+typedef union TCR_PERFCOUNTER0_HI regTCR_PERFCOUNTER0_HI;
+typedef union TCR_PERFCOUNTER1_HI regTCR_PERFCOUNTER1_HI;
+typedef union TCR_PERFCOUNTER0_LOW regTCR_PERFCOUNTER0_LOW;
+typedef union TCR_PERFCOUNTER1_LOW regTCR_PERFCOUNTER1_LOW;
+typedef union TP_TC_CLKGATE_CNTL regTP_TC_CLKGATE_CNTL;
+typedef union TPC_CNTL_STATUS regTPC_CNTL_STATUS;
+typedef union TPC_DEBUG0 regTPC_DEBUG0;
+typedef union TPC_DEBUG1 regTPC_DEBUG1;
+typedef union TPC_CHICKEN regTPC_CHICKEN;
+typedef union TP0_CNTL_STATUS regTP0_CNTL_STATUS;
+typedef union TP0_DEBUG regTP0_DEBUG;
+typedef union TP0_CHICKEN regTP0_CHICKEN;
+typedef union TP0_PERFCOUNTER0_SELECT regTP0_PERFCOUNTER0_SELECT;
+typedef union TP0_PERFCOUNTER0_HI regTP0_PERFCOUNTER0_HI;
+typedef union TP0_PERFCOUNTER0_LOW regTP0_PERFCOUNTER0_LOW;
+typedef union TP0_PERFCOUNTER1_SELECT regTP0_PERFCOUNTER1_SELECT;
+typedef union TP0_PERFCOUNTER1_HI regTP0_PERFCOUNTER1_HI;
+typedef union TP0_PERFCOUNTER1_LOW regTP0_PERFCOUNTER1_LOW;
+typedef union TCM_PERFCOUNTER0_SELECT regTCM_PERFCOUNTER0_SELECT;
+typedef union TCM_PERFCOUNTER1_SELECT regTCM_PERFCOUNTER1_SELECT;
+typedef union TCM_PERFCOUNTER0_HI regTCM_PERFCOUNTER0_HI;
+typedef union TCM_PERFCOUNTER1_HI regTCM_PERFCOUNTER1_HI;
+typedef union TCM_PERFCOUNTER0_LOW regTCM_PERFCOUNTER0_LOW;
+typedef union TCM_PERFCOUNTER1_LOW regTCM_PERFCOUNTER1_LOW;
+typedef union TCF_PERFCOUNTER0_SELECT regTCF_PERFCOUNTER0_SELECT;
+typedef union TCF_PERFCOUNTER1_SELECT regTCF_PERFCOUNTER1_SELECT;
+typedef union TCF_PERFCOUNTER2_SELECT regTCF_PERFCOUNTER2_SELECT;
+typedef union TCF_PERFCOUNTER3_SELECT regTCF_PERFCOUNTER3_SELECT;
+typedef union TCF_PERFCOUNTER4_SELECT regTCF_PERFCOUNTER4_SELECT;
+typedef union TCF_PERFCOUNTER5_SELECT regTCF_PERFCOUNTER5_SELECT;
+typedef union TCF_PERFCOUNTER6_SELECT regTCF_PERFCOUNTER6_SELECT;
+typedef union TCF_PERFCOUNTER7_SELECT regTCF_PERFCOUNTER7_SELECT;
+typedef union TCF_PERFCOUNTER8_SELECT regTCF_PERFCOUNTER8_SELECT;
+typedef union TCF_PERFCOUNTER9_SELECT regTCF_PERFCOUNTER9_SELECT;
+typedef union TCF_PERFCOUNTER10_SELECT regTCF_PERFCOUNTER10_SELECT;
+typedef union TCF_PERFCOUNTER11_SELECT regTCF_PERFCOUNTER11_SELECT;
+typedef union TCF_PERFCOUNTER0_HI regTCF_PERFCOUNTER0_HI;
+typedef union TCF_PERFCOUNTER1_HI regTCF_PERFCOUNTER1_HI;
+typedef union TCF_PERFCOUNTER2_HI regTCF_PERFCOUNTER2_HI;
+typedef union TCF_PERFCOUNTER3_HI regTCF_PERFCOUNTER3_HI;
+typedef union TCF_PERFCOUNTER4_HI regTCF_PERFCOUNTER4_HI;
+typedef union TCF_PERFCOUNTER5_HI regTCF_PERFCOUNTER5_HI;
+typedef union TCF_PERFCOUNTER6_HI regTCF_PERFCOUNTER6_HI;
+typedef union TCF_PERFCOUNTER7_HI regTCF_PERFCOUNTER7_HI;
+typedef union TCF_PERFCOUNTER8_HI regTCF_PERFCOUNTER8_HI;
+typedef union TCF_PERFCOUNTER9_HI regTCF_PERFCOUNTER9_HI;
+typedef union TCF_PERFCOUNTER10_HI regTCF_PERFCOUNTER10_HI;
+typedef union TCF_PERFCOUNTER11_HI regTCF_PERFCOUNTER11_HI;
+typedef union TCF_PERFCOUNTER0_LOW regTCF_PERFCOUNTER0_LOW;
+typedef union TCF_PERFCOUNTER1_LOW regTCF_PERFCOUNTER1_LOW;
+typedef union TCF_PERFCOUNTER2_LOW regTCF_PERFCOUNTER2_LOW;
+typedef union TCF_PERFCOUNTER3_LOW regTCF_PERFCOUNTER3_LOW;
+typedef union TCF_PERFCOUNTER4_LOW regTCF_PERFCOUNTER4_LOW;
+typedef union TCF_PERFCOUNTER5_LOW regTCF_PERFCOUNTER5_LOW;
+typedef union TCF_PERFCOUNTER6_LOW regTCF_PERFCOUNTER6_LOW;
+typedef union TCF_PERFCOUNTER7_LOW regTCF_PERFCOUNTER7_LOW;
+typedef union TCF_PERFCOUNTER8_LOW regTCF_PERFCOUNTER8_LOW;
+typedef union TCF_PERFCOUNTER9_LOW regTCF_PERFCOUNTER9_LOW;
+typedef union TCF_PERFCOUNTER10_LOW regTCF_PERFCOUNTER10_LOW;
+typedef union TCF_PERFCOUNTER11_LOW regTCF_PERFCOUNTER11_LOW;
+typedef union TCF_DEBUG regTCF_DEBUG;
+typedef union TCA_FIFO_DEBUG regTCA_FIFO_DEBUG;
+typedef union TCA_PROBE_DEBUG regTCA_PROBE_DEBUG;
+typedef union TCA_TPC_DEBUG regTCA_TPC_DEBUG;
+typedef union TCB_CORE_DEBUG regTCB_CORE_DEBUG;
+typedef union TCB_TAG0_DEBUG regTCB_TAG0_DEBUG;
+typedef union TCB_TAG1_DEBUG regTCB_TAG1_DEBUG;
+typedef union TCB_TAG2_DEBUG regTCB_TAG2_DEBUG;
+typedef union TCB_TAG3_DEBUG regTCB_TAG3_DEBUG;
+typedef union TCB_FETCH_GEN_SECTOR_WALKER0_DEBUG regTCB_FETCH_GEN_SECTOR_WALKER0_DEBUG;
+typedef union TCB_FETCH_GEN_WALKER_DEBUG regTCB_FETCH_GEN_WALKER_DEBUG;
+typedef union TCB_FETCH_GEN_PIPE0_DEBUG regTCB_FETCH_GEN_PIPE0_DEBUG;
+typedef union TCD_INPUT0_DEBUG regTCD_INPUT0_DEBUG;
+typedef union TCD_DEGAMMA_DEBUG regTCD_DEGAMMA_DEBUG;
+typedef union TCD_DXTMUX_SCTARB_DEBUG regTCD_DXTMUX_SCTARB_DEBUG;
+typedef union TCD_DXTC_ARB_DEBUG regTCD_DXTC_ARB_DEBUG;
+typedef union TCD_STALLS_DEBUG regTCD_STALLS_DEBUG;
+typedef union TCO_STALLS_DEBUG regTCO_STALLS_DEBUG;
+typedef union TCO_QUAD0_DEBUG0 regTCO_QUAD0_DEBUG0;
+typedef union TCO_QUAD0_DEBUG1 regTCO_QUAD0_DEBUG1;
+typedef union SQ_GPR_MANAGEMENT regSQ_GPR_MANAGEMENT;
+typedef union SQ_FLOW_CONTROL regSQ_FLOW_CONTROL;
+typedef union SQ_INST_STORE_MANAGMENT regSQ_INST_STORE_MANAGMENT;
+typedef union SQ_RESOURCE_MANAGMENT regSQ_RESOURCE_MANAGMENT;
+typedef union SQ_EO_RT regSQ_EO_RT;
+typedef union SQ_DEBUG_MISC regSQ_DEBUG_MISC;
+typedef union SQ_ACTIVITY_METER_CNTL regSQ_ACTIVITY_METER_CNTL;
+typedef union SQ_ACTIVITY_METER_STATUS regSQ_ACTIVITY_METER_STATUS;
+typedef union SQ_INPUT_ARB_PRIORITY regSQ_INPUT_ARB_PRIORITY;
+typedef union SQ_THREAD_ARB_PRIORITY regSQ_THREAD_ARB_PRIORITY;
+typedef union SQ_VS_WATCHDOG_TIMER regSQ_VS_WATCHDOG_TIMER;
+typedef union SQ_PS_WATCHDOG_TIMER regSQ_PS_WATCHDOG_TIMER;
+typedef union SQ_INT_CNTL regSQ_INT_CNTL;
+typedef union SQ_INT_STATUS regSQ_INT_STATUS;
+typedef union SQ_INT_ACK regSQ_INT_ACK;
+typedef union SQ_DEBUG_INPUT_FSM regSQ_DEBUG_INPUT_FSM;
+typedef union SQ_DEBUG_CONST_MGR_FSM regSQ_DEBUG_CONST_MGR_FSM;
+typedef union SQ_DEBUG_TP_FSM regSQ_DEBUG_TP_FSM;
+typedef union SQ_DEBUG_FSM_ALU_0 regSQ_DEBUG_FSM_ALU_0;
+typedef union SQ_DEBUG_FSM_ALU_1 regSQ_DEBUG_FSM_ALU_1;
+typedef union SQ_DEBUG_EXP_ALLOC regSQ_DEBUG_EXP_ALLOC;
+typedef union SQ_DEBUG_PTR_BUFF regSQ_DEBUG_PTR_BUFF;
+typedef union SQ_DEBUG_GPR_VTX regSQ_DEBUG_GPR_VTX;
+typedef union SQ_DEBUG_GPR_PIX regSQ_DEBUG_GPR_PIX;
+typedef union SQ_DEBUG_TB_STATUS_SEL regSQ_DEBUG_TB_STATUS_SEL;
+typedef union SQ_DEBUG_VTX_TB_0 regSQ_DEBUG_VTX_TB_0;
+typedef union SQ_DEBUG_VTX_TB_1 regSQ_DEBUG_VTX_TB_1;
+typedef union SQ_DEBUG_VTX_TB_STATUS_REG regSQ_DEBUG_VTX_TB_STATUS_REG;
+typedef union SQ_DEBUG_VTX_TB_STATE_MEM regSQ_DEBUG_VTX_TB_STATE_MEM;
+typedef union SQ_DEBUG_PIX_TB_0 regSQ_DEBUG_PIX_TB_0;
+typedef union SQ_DEBUG_PIX_TB_STATUS_REG_0 regSQ_DEBUG_PIX_TB_STATUS_REG_0;
+typedef union SQ_DEBUG_PIX_TB_STATUS_REG_1 regSQ_DEBUG_PIX_TB_STATUS_REG_1;
+typedef union SQ_DEBUG_PIX_TB_STATUS_REG_2 regSQ_DEBUG_PIX_TB_STATUS_REG_2;
+typedef union SQ_DEBUG_PIX_TB_STATUS_REG_3 regSQ_DEBUG_PIX_TB_STATUS_REG_3;
+typedef union SQ_DEBUG_PIX_TB_STATE_MEM regSQ_DEBUG_PIX_TB_STATE_MEM;
+typedef union SQ_PERFCOUNTER0_SELECT regSQ_PERFCOUNTER0_SELECT;
+typedef union SQ_PERFCOUNTER1_SELECT regSQ_PERFCOUNTER1_SELECT;
+typedef union SQ_PERFCOUNTER2_SELECT regSQ_PERFCOUNTER2_SELECT;
+typedef union SQ_PERFCOUNTER3_SELECT regSQ_PERFCOUNTER3_SELECT;
+typedef union SQ_PERFCOUNTER0_LOW regSQ_PERFCOUNTER0_LOW;
+typedef union SQ_PERFCOUNTER0_HI regSQ_PERFCOUNTER0_HI;
+typedef union SQ_PERFCOUNTER1_LOW regSQ_PERFCOUNTER1_LOW;
+typedef union SQ_PERFCOUNTER1_HI regSQ_PERFCOUNTER1_HI;
+typedef union SQ_PERFCOUNTER2_LOW regSQ_PERFCOUNTER2_LOW;
+typedef union SQ_PERFCOUNTER2_HI regSQ_PERFCOUNTER2_HI;
+typedef union SQ_PERFCOUNTER3_LOW regSQ_PERFCOUNTER3_LOW;
+typedef union SQ_PERFCOUNTER3_HI regSQ_PERFCOUNTER3_HI;
+typedef union SX_PERFCOUNTER0_SELECT regSX_PERFCOUNTER0_SELECT;
+typedef union SX_PERFCOUNTER0_LOW regSX_PERFCOUNTER0_LOW;
+typedef union SX_PERFCOUNTER0_HI regSX_PERFCOUNTER0_HI;
+typedef union SQ_INSTRUCTION_ALU_0 regSQ_INSTRUCTION_ALU_0;
+typedef union SQ_INSTRUCTION_ALU_1 regSQ_INSTRUCTION_ALU_1;
+typedef union SQ_INSTRUCTION_ALU_2 regSQ_INSTRUCTION_ALU_2;
+typedef union SQ_INSTRUCTION_CF_EXEC_0 regSQ_INSTRUCTION_CF_EXEC_0;
+typedef union SQ_INSTRUCTION_CF_EXEC_1 regSQ_INSTRUCTION_CF_EXEC_1;
+typedef union SQ_INSTRUCTION_CF_EXEC_2 regSQ_INSTRUCTION_CF_EXEC_2;
+typedef union SQ_INSTRUCTION_CF_LOOP_0 regSQ_INSTRUCTION_CF_LOOP_0;
+typedef union SQ_INSTRUCTION_CF_LOOP_1 regSQ_INSTRUCTION_CF_LOOP_1;
+typedef union SQ_INSTRUCTION_CF_LOOP_2 regSQ_INSTRUCTION_CF_LOOP_2;
+typedef union SQ_INSTRUCTION_CF_JMP_CALL_0 regSQ_INSTRUCTION_CF_JMP_CALL_0;
+typedef union SQ_INSTRUCTION_CF_JMP_CALL_1 regSQ_INSTRUCTION_CF_JMP_CALL_1;
+typedef union SQ_INSTRUCTION_CF_JMP_CALL_2 regSQ_INSTRUCTION_CF_JMP_CALL_2;
+typedef union SQ_INSTRUCTION_CF_ALLOC_0 regSQ_INSTRUCTION_CF_ALLOC_0;
+typedef union SQ_INSTRUCTION_CF_ALLOC_1 regSQ_INSTRUCTION_CF_ALLOC_1;
+typedef union SQ_INSTRUCTION_CF_ALLOC_2 regSQ_INSTRUCTION_CF_ALLOC_2;
+typedef union SQ_INSTRUCTION_TFETCH_0 regSQ_INSTRUCTION_TFETCH_0;
+typedef union SQ_INSTRUCTION_TFETCH_1 regSQ_INSTRUCTION_TFETCH_1;
+typedef union SQ_INSTRUCTION_TFETCH_2 regSQ_INSTRUCTION_TFETCH_2;
+typedef union SQ_INSTRUCTION_VFETCH_0 regSQ_INSTRUCTION_VFETCH_0;
+typedef union SQ_INSTRUCTION_VFETCH_1 regSQ_INSTRUCTION_VFETCH_1;
+typedef union SQ_INSTRUCTION_VFETCH_2 regSQ_INSTRUCTION_VFETCH_2;
+typedef union SQ_CONSTANT_0 regSQ_CONSTANT_0;
+typedef union SQ_CONSTANT_1 regSQ_CONSTANT_1;
+typedef union SQ_CONSTANT_2 regSQ_CONSTANT_2;
+typedef union SQ_CONSTANT_3 regSQ_CONSTANT_3;
+typedef union SQ_FETCH_0 regSQ_FETCH_0;
+typedef union SQ_FETCH_1 regSQ_FETCH_1;
+typedef union SQ_FETCH_2 regSQ_FETCH_2;
+typedef union SQ_FETCH_3 regSQ_FETCH_3;
+typedef union SQ_FETCH_4 regSQ_FETCH_4;
+typedef union SQ_FETCH_5 regSQ_FETCH_5;
+typedef union SQ_CONSTANT_VFETCH_0 regSQ_CONSTANT_VFETCH_0;
+typedef union SQ_CONSTANT_VFETCH_1 regSQ_CONSTANT_VFETCH_1;
+typedef union SQ_CONSTANT_T2 regSQ_CONSTANT_T2;
+typedef union SQ_CONSTANT_T3 regSQ_CONSTANT_T3;
+typedef union SQ_CF_BOOLEANS regSQ_CF_BOOLEANS;
+typedef union SQ_CF_LOOP regSQ_CF_LOOP;
+typedef union SQ_CONSTANT_RT_0 regSQ_CONSTANT_RT_0;
+typedef union SQ_CONSTANT_RT_1 regSQ_CONSTANT_RT_1;
+typedef union SQ_CONSTANT_RT_2 regSQ_CONSTANT_RT_2;
+typedef union SQ_CONSTANT_RT_3 regSQ_CONSTANT_RT_3;
+typedef union SQ_FETCH_RT_0 regSQ_FETCH_RT_0;
+typedef union SQ_FETCH_RT_1 regSQ_FETCH_RT_1;
+typedef union SQ_FETCH_RT_2 regSQ_FETCH_RT_2;
+typedef union SQ_FETCH_RT_3 regSQ_FETCH_RT_3;
+typedef union SQ_FETCH_RT_4 regSQ_FETCH_RT_4;
+typedef union SQ_FETCH_RT_5 regSQ_FETCH_RT_5;
+typedef union SQ_CF_RT_BOOLEANS regSQ_CF_RT_BOOLEANS;
+typedef union SQ_CF_RT_LOOP regSQ_CF_RT_LOOP;
+typedef union SQ_VS_PROGRAM regSQ_VS_PROGRAM;
+typedef union SQ_PS_PROGRAM regSQ_PS_PROGRAM;
+typedef union SQ_CF_PROGRAM_SIZE regSQ_CF_PROGRAM_SIZE;
+typedef union SQ_INTERPOLATOR_CNTL regSQ_INTERPOLATOR_CNTL;
+typedef union SQ_PROGRAM_CNTL regSQ_PROGRAM_CNTL;
+typedef union SQ_WRAPPING_0 regSQ_WRAPPING_0;
+typedef union SQ_WRAPPING_1 regSQ_WRAPPING_1;
+typedef union SQ_VS_CONST regSQ_VS_CONST;
+typedef union SQ_PS_CONST regSQ_PS_CONST;
+typedef union SQ_CONTEXT_MISC regSQ_CONTEXT_MISC;
+typedef union SQ_CF_RD_BASE regSQ_CF_RD_BASE;
+typedef union SQ_DEBUG_MISC_0 regSQ_DEBUG_MISC_0;
+typedef union SQ_DEBUG_MISC_1 regSQ_DEBUG_MISC_1;
+typedef union MH_ARBITER_CONFIG regMH_ARBITER_CONFIG;
+typedef union MH_CLNT_AXI_ID_REUSE regMH_CLNT_AXI_ID_REUSE;
+typedef union MH_INTERRUPT_MASK regMH_INTERRUPT_MASK;
+typedef union MH_INTERRUPT_STATUS regMH_INTERRUPT_STATUS;
+typedef union MH_INTERRUPT_CLEAR regMH_INTERRUPT_CLEAR;
+typedef union MH_AXI_ERROR regMH_AXI_ERROR;
+typedef union MH_PERFCOUNTER0_SELECT regMH_PERFCOUNTER0_SELECT;
+typedef union MH_PERFCOUNTER1_SELECT regMH_PERFCOUNTER1_SELECT;
+typedef union MH_PERFCOUNTER0_CONFIG regMH_PERFCOUNTER0_CONFIG;
+typedef union MH_PERFCOUNTER1_CONFIG regMH_PERFCOUNTER1_CONFIG;
+typedef union MH_PERFCOUNTER0_LOW regMH_PERFCOUNTER0_LOW;
+typedef union MH_PERFCOUNTER1_LOW regMH_PERFCOUNTER1_LOW;
+typedef union MH_PERFCOUNTER0_HI regMH_PERFCOUNTER0_HI;
+typedef union MH_PERFCOUNTER1_HI regMH_PERFCOUNTER1_HI;
+typedef union MH_DEBUG_CTRL regMH_DEBUG_CTRL;
+typedef union MH_DEBUG_DATA regMH_DEBUG_DATA;
+typedef union MH_AXI_HALT_CONTROL regMH_AXI_HALT_CONTROL;
+typedef union MH_MMU_CONFIG regMH_MMU_CONFIG;
+typedef union MH_MMU_VA_RANGE regMH_MMU_VA_RANGE;
+typedef union MH_MMU_PT_BASE regMH_MMU_PT_BASE;
+typedef union MH_MMU_PAGE_FAULT regMH_MMU_PAGE_FAULT;
+typedef union MH_MMU_TRAN_ERROR regMH_MMU_TRAN_ERROR;
+typedef union MH_MMU_INVALIDATE regMH_MMU_INVALIDATE;
+typedef union MH_MMU_MPU_BASE regMH_MMU_MPU_BASE;
+typedef union MH_MMU_MPU_END regMH_MMU_MPU_END;
+typedef union WAIT_UNTIL regWAIT_UNTIL;
+typedef union RBBM_ISYNC_CNTL regRBBM_ISYNC_CNTL;
+typedef union RBBM_STATUS regRBBM_STATUS;
+typedef union RBBM_DSPLY regRBBM_DSPLY;
+typedef union RBBM_RENDER_LATEST regRBBM_RENDER_LATEST;
+typedef union RBBM_RTL_RELEASE regRBBM_RTL_RELEASE;
+typedef union RBBM_PATCH_RELEASE regRBBM_PATCH_RELEASE;
+typedef union RBBM_AUXILIARY_CONFIG regRBBM_AUXILIARY_CONFIG;
+typedef union RBBM_PERIPHID0 regRBBM_PERIPHID0;
+typedef union RBBM_PERIPHID1 regRBBM_PERIPHID1;
+typedef union RBBM_PERIPHID2 regRBBM_PERIPHID2;
+typedef union RBBM_PERIPHID3 regRBBM_PERIPHID3;
+typedef union RBBM_CNTL regRBBM_CNTL;
+typedef union RBBM_SKEW_CNTL regRBBM_SKEW_CNTL;
+typedef union RBBM_SOFT_RESET regRBBM_SOFT_RESET;
+typedef union RBBM_PM_OVERRIDE1 regRBBM_PM_OVERRIDE1;
+typedef union RBBM_PM_OVERRIDE2 regRBBM_PM_OVERRIDE2;
+typedef union GC_SYS_IDLE regGC_SYS_IDLE;
+typedef union NQWAIT_UNTIL regNQWAIT_UNTIL;
+typedef union RBBM_DEBUG_OUT regRBBM_DEBUG_OUT;
+typedef union RBBM_DEBUG_CNTL regRBBM_DEBUG_CNTL;
+typedef union RBBM_DEBUG regRBBM_DEBUG;
+typedef union RBBM_READ_ERROR regRBBM_READ_ERROR;
+typedef union RBBM_WAIT_IDLE_CLOCKS regRBBM_WAIT_IDLE_CLOCKS;
+typedef union RBBM_INT_CNTL regRBBM_INT_CNTL;
+typedef union RBBM_INT_STATUS regRBBM_INT_STATUS;
+typedef union RBBM_INT_ACK regRBBM_INT_ACK;
+typedef union MASTER_INT_SIGNAL regMASTER_INT_SIGNAL;
+typedef union RBBM_PERFCOUNTER1_SELECT regRBBM_PERFCOUNTER1_SELECT;
+typedef union RBBM_PERFCOUNTER1_LO regRBBM_PERFCOUNTER1_LO;
+typedef union RBBM_PERFCOUNTER1_HI regRBBM_PERFCOUNTER1_HI;
+typedef union CP_RB_BASE regCP_RB_BASE;
+typedef union CP_RB_CNTL regCP_RB_CNTL;
+typedef union CP_RB_RPTR_ADDR regCP_RB_RPTR_ADDR;
+typedef union CP_RB_RPTR regCP_RB_RPTR;
+typedef union CP_RB_RPTR_WR regCP_RB_RPTR_WR;
+typedef union CP_RB_WPTR regCP_RB_WPTR;
+typedef union CP_RB_WPTR_DELAY regCP_RB_WPTR_DELAY;
+typedef union CP_RB_WPTR_BASE regCP_RB_WPTR_BASE;
+typedef union CP_IB1_BASE regCP_IB1_BASE;
+typedef union CP_IB1_BUFSZ regCP_IB1_BUFSZ;
+typedef union CP_IB2_BASE regCP_IB2_BASE;
+typedef union CP_IB2_BUFSZ regCP_IB2_BUFSZ;
+typedef union CP_ST_BASE regCP_ST_BASE;
+typedef union CP_ST_BUFSZ regCP_ST_BUFSZ;
+typedef union CP_QUEUE_THRESHOLDS regCP_QUEUE_THRESHOLDS;
+typedef union CP_MEQ_THRESHOLDS regCP_MEQ_THRESHOLDS;
+typedef union CP_CSQ_AVAIL regCP_CSQ_AVAIL;
+typedef union CP_STQ_AVAIL regCP_STQ_AVAIL;
+typedef union CP_MEQ_AVAIL regCP_MEQ_AVAIL;
+typedef union CP_CSQ_RB_STAT regCP_CSQ_RB_STAT;
+typedef union CP_CSQ_IB1_STAT regCP_CSQ_IB1_STAT;
+typedef union CP_CSQ_IB2_STAT regCP_CSQ_IB2_STAT;
+typedef union CP_NON_PREFETCH_CNTRS regCP_NON_PREFETCH_CNTRS;
+typedef union CP_STQ_ST_STAT regCP_STQ_ST_STAT;
+typedef union CP_MEQ_STAT regCP_MEQ_STAT;
+typedef union CP_MIU_TAG_STAT regCP_MIU_TAG_STAT;
+typedef union CP_CMD_INDEX regCP_CMD_INDEX;
+typedef union CP_CMD_DATA regCP_CMD_DATA;
+typedef union CP_ME_CNTL regCP_ME_CNTL;
+typedef union CP_ME_STATUS regCP_ME_STATUS;
+typedef union CP_ME_RAM_WADDR regCP_ME_RAM_WADDR;
+typedef union CP_ME_RAM_RADDR regCP_ME_RAM_RADDR;
+typedef union CP_ME_RAM_DATA regCP_ME_RAM_DATA;
+typedef union CP_ME_RDADDR regCP_ME_RDADDR;
+typedef union CP_DEBUG regCP_DEBUG;
+typedef union SCRATCH_REG0 regSCRATCH_REG0;
+typedef union GUI_SCRATCH_REG0 regGUI_SCRATCH_REG0;
+typedef union SCRATCH_REG1 regSCRATCH_REG1;
+typedef union GUI_SCRATCH_REG1 regGUI_SCRATCH_REG1;
+typedef union SCRATCH_REG2 regSCRATCH_REG2;
+typedef union GUI_SCRATCH_REG2 regGUI_SCRATCH_REG2;
+typedef union SCRATCH_REG3 regSCRATCH_REG3;
+typedef union GUI_SCRATCH_REG3 regGUI_SCRATCH_REG3;
+typedef union SCRATCH_REG4 regSCRATCH_REG4;
+typedef union GUI_SCRATCH_REG4 regGUI_SCRATCH_REG4;
+typedef union SCRATCH_REG5 regSCRATCH_REG5;
+typedef union GUI_SCRATCH_REG5 regGUI_SCRATCH_REG5;
+typedef union SCRATCH_REG6 regSCRATCH_REG6;
+typedef union GUI_SCRATCH_REG6 regGUI_SCRATCH_REG6;
+typedef union SCRATCH_REG7 regSCRATCH_REG7;
+typedef union GUI_SCRATCH_REG7 regGUI_SCRATCH_REG7;
+typedef union SCRATCH_UMSK regSCRATCH_UMSK;
+typedef union SCRATCH_ADDR regSCRATCH_ADDR;
+typedef union CP_ME_VS_EVENT_SRC regCP_ME_VS_EVENT_SRC;
+typedef union CP_ME_VS_EVENT_ADDR regCP_ME_VS_EVENT_ADDR;
+typedef union CP_ME_VS_EVENT_DATA regCP_ME_VS_EVENT_DATA;
+typedef union CP_ME_VS_EVENT_ADDR_SWM regCP_ME_VS_EVENT_ADDR_SWM;
+typedef union CP_ME_VS_EVENT_DATA_SWM regCP_ME_VS_EVENT_DATA_SWM;
+typedef union CP_ME_PS_EVENT_SRC regCP_ME_PS_EVENT_SRC;
+typedef union CP_ME_PS_EVENT_ADDR regCP_ME_PS_EVENT_ADDR;
+typedef union CP_ME_PS_EVENT_DATA regCP_ME_PS_EVENT_DATA;
+typedef union CP_ME_PS_EVENT_ADDR_SWM regCP_ME_PS_EVENT_ADDR_SWM;
+typedef union CP_ME_PS_EVENT_DATA_SWM regCP_ME_PS_EVENT_DATA_SWM;
+typedef union CP_ME_CF_EVENT_SRC regCP_ME_CF_EVENT_SRC;
+typedef union CP_ME_CF_EVENT_ADDR regCP_ME_CF_EVENT_ADDR;
+typedef union CP_ME_CF_EVENT_DATA regCP_ME_CF_EVENT_DATA;
+typedef union CP_ME_NRT_ADDR regCP_ME_NRT_ADDR;
+typedef union CP_ME_NRT_DATA regCP_ME_NRT_DATA;
+typedef union CP_ME_VS_FETCH_DONE_SRC regCP_ME_VS_FETCH_DONE_SRC;
+typedef union CP_ME_VS_FETCH_DONE_ADDR regCP_ME_VS_FETCH_DONE_ADDR;
+typedef union CP_ME_VS_FETCH_DONE_DATA regCP_ME_VS_FETCH_DONE_DATA;
+typedef union CP_INT_CNTL regCP_INT_CNTL;
+typedef union CP_INT_STATUS regCP_INT_STATUS;
+typedef union CP_INT_ACK regCP_INT_ACK;
+typedef union CP_PFP_UCODE_ADDR regCP_PFP_UCODE_ADDR;
+typedef union CP_PFP_UCODE_DATA regCP_PFP_UCODE_DATA;
+typedef union CP_PERFMON_CNTL regCP_PERFMON_CNTL;
+typedef union CP_PERFCOUNTER_SELECT regCP_PERFCOUNTER_SELECT;
+typedef union CP_PERFCOUNTER_LO regCP_PERFCOUNTER_LO;
+typedef union CP_PERFCOUNTER_HI regCP_PERFCOUNTER_HI;
+typedef union CP_BIN_MASK_LO regCP_BIN_MASK_LO;
+typedef union CP_BIN_MASK_HI regCP_BIN_MASK_HI;
+typedef union CP_BIN_SELECT_LO regCP_BIN_SELECT_LO;
+typedef union CP_BIN_SELECT_HI regCP_BIN_SELECT_HI;
+typedef union CP_NV_FLAGS_0 regCP_NV_FLAGS_0;
+typedef union CP_NV_FLAGS_1 regCP_NV_FLAGS_1;
+typedef union CP_NV_FLAGS_2 regCP_NV_FLAGS_2;
+typedef union CP_NV_FLAGS_3 regCP_NV_FLAGS_3;
+typedef union CP_STATE_DEBUG_INDEX regCP_STATE_DEBUG_INDEX;
+typedef union CP_STATE_DEBUG_DATA regCP_STATE_DEBUG_DATA;
+typedef union CP_PROG_COUNTER regCP_PROG_COUNTER;
+typedef union CP_STAT regCP_STAT;
+typedef union BIOS_0_SCRATCH regBIOS_0_SCRATCH;
+typedef union BIOS_1_SCRATCH regBIOS_1_SCRATCH;
+typedef union BIOS_2_SCRATCH regBIOS_2_SCRATCH;
+typedef union BIOS_3_SCRATCH regBIOS_3_SCRATCH;
+typedef union BIOS_4_SCRATCH regBIOS_4_SCRATCH;
+typedef union BIOS_5_SCRATCH regBIOS_5_SCRATCH;
+typedef union BIOS_6_SCRATCH regBIOS_6_SCRATCH;
+typedef union BIOS_7_SCRATCH regBIOS_7_SCRATCH;
+typedef union BIOS_8_SCRATCH regBIOS_8_SCRATCH;
+typedef union BIOS_9_SCRATCH regBIOS_9_SCRATCH;
+typedef union BIOS_10_SCRATCH regBIOS_10_SCRATCH;
+typedef union BIOS_11_SCRATCH regBIOS_11_SCRATCH;
+typedef union BIOS_12_SCRATCH regBIOS_12_SCRATCH;
+typedef union BIOS_13_SCRATCH regBIOS_13_SCRATCH;
+typedef union BIOS_14_SCRATCH regBIOS_14_SCRATCH;
+typedef union BIOS_15_SCRATCH regBIOS_15_SCRATCH;
+typedef union COHER_SIZE_PM4 regCOHER_SIZE_PM4;
+typedef union COHER_BASE_PM4 regCOHER_BASE_PM4;
+typedef union COHER_STATUS_PM4 regCOHER_STATUS_PM4;
+typedef union COHER_SIZE_HOST regCOHER_SIZE_HOST;
+typedef union COHER_BASE_HOST regCOHER_BASE_HOST;
+typedef union COHER_STATUS_HOST regCOHER_STATUS_HOST;
+typedef union COHER_DEST_BASE_0 regCOHER_DEST_BASE_0;
+typedef union COHER_DEST_BASE_1 regCOHER_DEST_BASE_1;
+typedef union COHER_DEST_BASE_2 regCOHER_DEST_BASE_2;
+typedef union COHER_DEST_BASE_3 regCOHER_DEST_BASE_3;
+typedef union COHER_DEST_BASE_4 regCOHER_DEST_BASE_4;
+typedef union COHER_DEST_BASE_5 regCOHER_DEST_BASE_5;
+typedef union COHER_DEST_BASE_6 regCOHER_DEST_BASE_6;
+typedef union COHER_DEST_BASE_7 regCOHER_DEST_BASE_7;
+typedef union RB_SURFACE_INFO regRB_SURFACE_INFO;
+typedef union RB_COLOR_INFO regRB_COLOR_INFO;
+typedef union RB_DEPTH_INFO regRB_DEPTH_INFO;
+typedef union RB_STENCILREFMASK regRB_STENCILREFMASK;
+typedef union RB_ALPHA_REF regRB_ALPHA_REF;
+typedef union RB_COLOR_MASK regRB_COLOR_MASK;
+typedef union RB_BLEND_RED regRB_BLEND_RED;
+typedef union RB_BLEND_GREEN regRB_BLEND_GREEN;
+typedef union RB_BLEND_BLUE regRB_BLEND_BLUE;
+typedef union RB_BLEND_ALPHA regRB_BLEND_ALPHA;
+typedef union RB_FOG_COLOR regRB_FOG_COLOR;
+typedef union RB_STENCILREFMASK_BF regRB_STENCILREFMASK_BF;
+typedef union RB_DEPTHCONTROL regRB_DEPTHCONTROL;
+typedef union RB_BLENDCONTROL regRB_BLENDCONTROL;
+typedef union RB_COLORCONTROL regRB_COLORCONTROL;
+typedef union RB_MODECONTROL regRB_MODECONTROL;
+typedef union RB_COLOR_DEST_MASK regRB_COLOR_DEST_MASK;
+typedef union RB_COPY_CONTROL regRB_COPY_CONTROL;
+typedef union RB_COPY_DEST_BASE regRB_COPY_DEST_BASE;
+typedef union RB_COPY_DEST_PITCH regRB_COPY_DEST_PITCH;
+typedef union RB_COPY_DEST_INFO regRB_COPY_DEST_INFO;
+typedef union RB_COPY_DEST_PIXEL_OFFSET regRB_COPY_DEST_PIXEL_OFFSET;
+typedef union RB_DEPTH_CLEAR regRB_DEPTH_CLEAR;
+typedef union RB_SAMPLE_COUNT_CTL regRB_SAMPLE_COUNT_CTL;
+typedef union RB_SAMPLE_COUNT_ADDR regRB_SAMPLE_COUNT_ADDR;
+typedef union RB_BC_CONTROL regRB_BC_CONTROL;
+typedef union RB_EDRAM_INFO regRB_EDRAM_INFO;
+typedef union RB_CRC_RD_PORT regRB_CRC_RD_PORT;
+typedef union RB_CRC_CONTROL regRB_CRC_CONTROL;
+typedef union RB_CRC_MASK regRB_CRC_MASK;
+typedef union RB_PERFCOUNTER0_SELECT regRB_PERFCOUNTER0_SELECT;
+typedef union RB_PERFCOUNTER0_LOW regRB_PERFCOUNTER0_LOW;
+typedef union RB_PERFCOUNTER0_HI regRB_PERFCOUNTER0_HI;
+typedef union RB_TOTAL_SAMPLES regRB_TOTAL_SAMPLES;
+typedef union RB_ZPASS_SAMPLES regRB_ZPASS_SAMPLES;
+typedef union RB_ZFAIL_SAMPLES regRB_ZFAIL_SAMPLES;
+typedef union RB_SFAIL_SAMPLES regRB_SFAIL_SAMPLES;
+typedef union RB_DEBUG_0 regRB_DEBUG_0;
+typedef union RB_DEBUG_1 regRB_DEBUG_1;
+typedef union RB_DEBUG_2 regRB_DEBUG_2;
+typedef union RB_DEBUG_3 regRB_DEBUG_3;
+typedef union RB_DEBUG_4 regRB_DEBUG_4;
+typedef union RB_FLAG_CONTROL regRB_FLAG_CONTROL;
+typedef union RB_BC_SPARES regRB_BC_SPARES;
+typedef union BC_DUMMY_CRAYRB_ENUMS regBC_DUMMY_CRAYRB_ENUMS;
+typedef union BC_DUMMY_CRAYRB_MOREENUMS regBC_DUMMY_CRAYRB_MOREENUMS;
+#endif
diff --git a/drivers/mxc/amd-gpu/os/include/os_types.h b/drivers/mxc/amd-gpu/os/include/os_types.h
new file mode 100644
index 000000000000..e7ecd90f8952
--- /dev/null
+++ b/drivers/mxc/amd-gpu/os/include/os_types.h
@@ -0,0 +1,138 @@
+ /* Copyright (c) 2008-2010, QUALCOMM Incorporated. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of QUALCOMM Incorporated nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef __OSTYPES_H
+#define __OSTYPES_H
+
+//////////////////////////////////////////////////////////////////////////////
+// status
+//////////////////////////////////////////////////////////////////////////////
+#define OS_SUCCESS 0
+#define OS_FAILURE -1
+#define OS_FAILURE_SYSTEMERROR -2
+#define OS_FAILURE_DEVICEERROR -3
+#define OS_FAILURE_OUTOFMEM -4
+#define OS_FAILURE_BADPARAM -5
+#define OS_FAILURE_NOTSUPPORTED -6
+#define OS_FAILURE_NOMOREAVAILABLE -7
+#define OS_FAILURE_NOTINITIALIZED -8
+#define OS_FAILURE_ALREADYINITIALIZED -9
+#define OS_FAILURE_TIMEOUT -10
+
+
+//////////////////////////////////////////////////////////////////////////////
+// inline
+//////////////////////////////////////////////////////////////////////////////
+#ifndef OSINLINE
+#ifdef _LINUX
+#define OSINLINE static __inline
+#else
+#define OSINLINE __inline
+#endif
+#endif // OSINLINE
+
+
+//////////////////////////////////////////////////////////////////////////////
+// values
+//////////////////////////////////////////////////////////////////////////////
+#define OS_INFINITE 0xFFFFFFFF
+#define OS_TLS_OUTOFINDEXES 0xFFFFFFFF
+#define OS_TRUE 1
+#define OS_FALSE 0
+
+#ifndef NULL
+#define NULL (void *)0x0
+#endif // !NULL
+
+//////////////////////////////////////////////////////////////////////////////
+// types
+//////////////////////////////////////////////////////////////////////////////
+
+
+//
+// oshandle_t
+//
+typedef void * oshandle_t;
+#define OS_HANDLE_NULL (oshandle_t)0x0
+
+//
+// os_sysinfo_t
+//
+typedef struct _os_sysinfo_t {
+ int cpu_mhz;
+ int cpu_type;
+ int cpu_version;
+ int os_type;
+ int os_version;
+ int sysmem_size;
+ int page_size;
+ int max_path;
+ int tls_slots;
+ int endianness; // 0 == little_endian, 1 == big_endian
+} os_sysinfo_t;
+
+
+//
+// os_stats_t
+//
+#ifdef _LINUX
+typedef long long __int64;
+typedef unsigned long long __uint64;
+#else
+typedef unsigned __int64 __uint64;
+#endif
+
+typedef struct _os_stats_t {
+ __int64 heap_allocs;
+ __int64 heap_frees;
+ __int64 heap_alloc_bytes;
+ __int64 shared_heap_allocs;
+ __int64 shared_heap_frees;
+ __int64 shared_heap_alloc_bytes;
+ __int64 objects_alloc;
+ __int64 objects_free;
+} os_stats_t;
+
+
+typedef enum {
+ OS_PROTECTION_GLOBAL, // inter process
+ OS_PROTECTION_LOCAL, // process local
+ OS_PROTECTION_NONE, // none
+} os_protection_t;
+
+typedef struct _os_cputimer_t {
+ int refcount; // Reference count
+ int enabled; // Counter is enabled
+ int size; // Number of counters
+ __int64 start_time; // start time in cpu ticks
+ __int64 end_time; // end time in cpu ticks
+ __int64 timer_frequency; // cpu ticks per second
+ __int64 *counter_array; // number of ticks for each counter
+} os_cputimer_t;
+
+#endif // __OSTYPES_H
diff --git a/drivers/mxc/amd-gpu/os/kernel/include/kos_libapi.h b/drivers/mxc/amd-gpu/os/kernel/include/kos_libapi.h
new file mode 100644
index 000000000000..a02c396c22a9
--- /dev/null
+++ b/drivers/mxc/amd-gpu/os/kernel/include/kos_libapi.h
@@ -0,0 +1,813 @@
+/* Copyright (c) 2008-2010, Advanced Micro Devices. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Advanced Micro Devices nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef __KOSAPI_H
+#define __KOSAPI_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif // __cplusplus
+
+#include "os_types.h"
+
+
+//////////////////////////////////////////////////////////////////////////////
+// entrypoint abstraction
+//////////////////////////////////////////////////////////////////////////////
+
+
+#if defined(_WIN32) && !defined (_WIN32_WCE) && !defined(__SYMBIAN32__)
+#define KOS_DLLEXPORT __declspec(dllexport)
+#define KOS_DLLIMPORT __declspec(dllimport)
+#elif defined(_WIN32) && defined (_WIN32_WCE)
+#define KOS_DLLEXPORT __declspec(dllexport)
+#define KOS_DLLIMPORT
+#else
+#define KOS_DLLEXPORT extern
+#define KOS_DLLIMPORT
+#endif // _WIN32
+
+
+//////////////////////////////////////////////////////////////////////////////
+// KOS lib entrypoints
+//////////////////////////////////////////////////////////////////////////////
+#ifdef __KOSLIB_EXPORTS
+#define KOS_API KOS_DLLEXPORT
+#else
+#define KOS_API KOS_DLLIMPORT
+#endif // __KOSLIB_EXPORTS
+
+//////////////////////////////////////////////////////////////////////////////
+// assert API
+//////////////////////////////////////////////////////////////////////////////
+KOS_API void kos_assert_hook(const char* file, int line, int expression);
+
+#if defined(DEBUG) || defined(DBG) || defined (_DBG) || defined (_DEBUG)
+
+#if defined(_WIN32) && !defined(__SYMBIAN32__) || defined(_WIN32_WCE)
+#include <assert.h>
+#define KOS_ASSERT(expression) assert(expression)
+#elif defined(_BREW)
+#include <assert.h>
+#define KOS_ASSERT(expression) kos_assert_hook(__FILE__, __LINE__, expression)
+#elif defined(__SYMBIAN32__)
+//#include <assert.h>
+//#define KOS_ASSERT(expression) assert(expression)
+#define KOS_ASSERT(expression) /**/
+#elif defined(__ARM__)
+#define KOS_ASSERT(expression)
+#elif defined(_LINUX)
+#define KOS_ASSERT(expression) //kos_assert_hook(__FILE__, __LINE__, (int)(expression))
+#endif
+
+#else
+
+#define KOS_ASSERT(expression)
+
+#endif // DEBUG || DBG || _DBG
+
+#if defined(_WIN32) && defined(_DEBUG) && !defined(_WIN32_WCE) && !defined(__SYMBIAN32__)
+#pragma warning ( push, 3 )
+#include <crtdbg.h>
+#pragma warning (pop)
+#define KOS_MALLOC_DBG(size) _malloc_dbg(size, _NORMAL_BLOCK, __FILE__, __LINE__)
+#else
+#define KOS_MALLOC_DBG(size) kos_malloc(int size)
+#endif // _WIN32 _DEBUG
+
+#define kos_assert(expression) KOS_ASSERT(expression)
+#define kos_malloc_dbg(size) KOS_MALLOC_DBG(size)
+
+#ifdef UNDER_CE
+#define KOS_PAGE_SIZE 0x1000
+#endif
+
+typedef enum mutexIndex mutexIndex_t;
+//////////////////////////////////////////////////////////////////////////////
+// Interprocess shared memory initialization
+//////////////////////////////////////////////////////////////////////////////
+// TODO: still valid?
+KOS_API int kos_sharedmem_create(unsigned int map_addr, unsigned int size);
+KOS_API int kos_sharedmem_destroy(void);
+
+//////////////////////////////////////////////////////////////////////////////
+// heap API (per process)
+//////////////////////////////////////////////////////////////////////////////
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Allocate memory for a kernel side process.
+ *
+ *
+ * \param int size Amount of bytes to be allocated.
+ * \return Pointer to the reserved memory, NULL if any error.
+ *//*-------------------------------------------------------------------*/
+KOS_API void* kos_malloc(int size);
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Allocate memory for a kernel side process. Clears the reserved memory.
+ *
+ *
+ * \param int num Number of elements to allocate.
+ * \param int size Element size in bytes.
+ * \return Pointer to the reserved memory, NULL if any error.
+ *//*-------------------------------------------------------------------*/
+KOS_API void* kos_calloc(int num, int size);
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Re-allocate an existing memory for a kernel side process.
+ * Contents of the old block will be copied to the new block
+ * taking the sizes of both blocks into account.
+ *
+ *
+ * \param void* memblock Pointer to the old memory block.
+ * \param int size Size of the new block in bytes.
+ * \return Pointer to the new memory block, NULL if any error.
+ *//*-------------------------------------------------------------------*/
+KOS_API void* kos_realloc(void* memblock, int size);
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Free a reserved memory block from the kernel side process.
+ *
+ *
+ * \param void* memblock Pointer to the memory block.
+ *//*-------------------------------------------------------------------*/
+KOS_API void kos_free(void* memblock);
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Enable automatic memory leak checking performed at program exit.
+ *
+ *
+ *//*-------------------------------------------------------------------*/
+KOS_API void kos_enable_memoryleakcheck(void);
+
+
+//////////////////////////////////////////////////////////////////////////////
+// shared heap API (cross process)
+//////////////////////////////////////////////////////////////////////////////
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Allocate memory that can be shared between user and kernel
+ * side processes.
+ *
+ *
+ * \param int size Amount of bytes to be allocated.
+ * \return Pointer to the new memory block, NULL if any error.
+ *//*-------------------------------------------------------------------*/
+KOS_API void* kos_shared_malloc(int size);
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Allocate memory that can be shared between user and kernel
+ * side processes. Clears the reserved memory.
+ *
+ *
+ * \param int num Number of elements to allocate.
+ * \param int size Element size in bytes.
+ * \return Pointer to the reserved memory, NULL if any error.
+ *//*-------------------------------------------------------------------*/
+KOS_API void* kos_shared_calloc(int num, int size);
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Re-allocate an existing user/kernel shared memory block.
+ * Contents of the old block will be copied to the new block
+ * taking the sizes of both blocks into account.
+ *
+ *
+ * \param void* ptr Pointer to the old memory block.
+ * \param int size Size of the new block in bytes.
+ * \return Pointer to the new memory block, NULL if any error.
+ *//*-------------------------------------------------------------------*/
+KOS_API void* kos_shared_realloc(void* ptr, int size);
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Free a reserved shared memory block.
+ *
+ *
+ * \param void* ptr Pointer to the memory block.
+ *//*-------------------------------------------------------------------*/
+ KOS_API void kos_shared_free(void* ptr);
+
+
+//////////////////////////////////////////////////////////////////////////////
+// memory API
+//////////////////////////////////////////////////////////////////////////////
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Copies the values of num bytes from the location pointed by src
+ * directly to the memory block pointed by dst.
+ *
+ *
+ * \param void* dst Pointer to the destination memory block.
+ * \param void* src Pointer to the source memory block.
+ * \param void* count Amount of bytes to copy.
+ * \return Returns the dst pointer, NULL if any error.
+ *//*-------------------------------------------------------------------*/
+KOS_API void* kos_memcpy(void* dst, const void* src, int count);
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Fills the destination memory block with the given value.
+ *
+ *
+ * \param void* dst Pointer to the destination memory block.
+ * \param int value Value to be written to each destination address.
+ * \param void* count Number of bytes to be set to the value.
+ * \return Returns the dst pointer, NULL if any error.
+ *//*-------------------------------------------------------------------*/
+KOS_API void* kos_memset(void* dst, int value, int count);
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Compares two memory blocks.
+ *
+ *
+ * \param void* dst Pointer to the destination memory block.
+ * \param void* src Pointer to the source memory block.
+ * \param void* count Number of bytes to compare.
+ * \return Zero if identical, >0 if first nonmatching byte is greater in dst.
+ *//*-------------------------------------------------------------------*/
+KOS_API int kos_memcmp(void* dst, void* src, int count);
+
+
+//////////////////////////////////////////////////////////////////////////////
+// physical memory API
+//////////////////////////////////////////////////////////////////////////////
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Allocates a physically contiguous memory block.
+ *
+ *
+ * \param void** virt_addr Pointer where to store the virtual address of the reserved block.
+ * \param void** phys_addr Pointer where to store the physical address of the reserved block.
+ * \param int pages Number of pages to reserve (default page size = 4096 bytes).
+ * \return Zero if ok, othervise an error code.
+ *//*-------------------------------------------------------------------*/
+KOS_API int kos_alloc_physical(void** virt_addr, void** phys_addr, int pages);
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Free a physically contiguous allocated memory block.
+ *
+ *
+ * \param void* virt_addr Virtual address of the memory block.
+ * \param int pages Number of pages.
+ * \return Zero if ok, othervise an error code.
+ *//*-------------------------------------------------------------------*/
+KOS_API int kos_free_physical(void* virt_addr, int pages);
+
+KOS_API void kos_memoryfence(void);
+
+
+//////////////////////////////////////////////////////////////////////////////
+// string API
+//////////////////////////////////////////////////////////////////////////////
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Perform a string copy.
+ *
+ *
+ * \param void* strdestination Pointer to destination memory.
+ * \param void* strsource Pointer to the source string.
+ * \return Zero if ok, othervise an error code.
+ *//*-------------------------------------------------------------------*/
+KOS_API char* kos_strcpy(char* strdestination, const char* strsource);
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Perform a string copy with given length.
+ *
+ *
+ * \param void* destination Pointer to destination memory.
+ * \param void* source Pointer to the source string.
+ * \param int length Amount of bytes to copy.
+ * \return Returns the destination pointer.
+ *//*-------------------------------------------------------------------*/
+KOS_API char* kos_strncpy(char* destination, const char* source, int length);
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Append source string to destination string.
+ *
+ *
+ * \param void* strdestination Pointer to destination string.
+ * \param void* strsource Pointer to the source string.
+ * \return Returns the destination pointer.
+ *//*-------------------------------------------------------------------*/
+KOS_API char* kos_strcat(char* strdestination, const char* strsource);
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Compare two strings.
+ *
+ *
+ * \param void* string1 Pointer to first string.
+ * \param void* string2 Pointer to second string.
+ * \param void* length Number of bytes to compare.
+ * \return Zero if identical, >0 if first string is lexically greater <0 if not.
+ *//*-------------------------------------------------------------------*/
+KOS_API int kos_strcmp(const char* string1, const char* string2);
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Compares two strings of given length.
+ *
+ *
+ * \param void* string1 Pointer to first string.
+ * \param void* string2 Pointer to second string.
+ * \param void* length Number of bytes to compare.
+ * \return Zero if identical, >0 if first string is lexically greater <0 if not.
+ *//*-------------------------------------------------------------------*/
+KOS_API int kos_strncmp(const char* string1, const char* string2, int length);
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Calculates the length of a string..
+ *
+ *
+ * \param void* string Pointer to the string.
+ * \return Lenght of the string in bytes.
+ *//*-------------------------------------------------------------------*/
+KOS_API int kos_strlen(const char* string);
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Convert an numeric ascii string to integer value.
+ *
+ *
+ * \param void* string Pointer to the string.
+ * \return Integer value extracted from the string.
+ *//*-------------------------------------------------------------------*/
+KOS_API int kos_atoi(const char* string);
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Convert string to unsigned long integer.
+ *
+ *
+ * \param void* nptr Pointer to the string.
+ * \param char** endptr If not null, will be set to point to the next character after the number.
+ * \param int base Base defining the type of the numeric string.
+ * \return Unsigned integer value extracted from the string.
+ *//*-------------------------------------------------------------------*/
+KOS_API unsigned int kos_strtoul(const char* nptr, char** endptr, int base);
+
+
+//////////////////////////////////////////////////////////////////////////////
+// sync API
+//////////////////////////////////////////////////////////////////////////////
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Create a mutex instance.
+ *
+ *
+ * \param void* name Name string for the new mutex.
+ * \return Returns a handle to the mutex.
+ *//*-------------------------------------------------------------------*/
+KOS_API oshandle_t kos_mutex_create(const char* name);
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Get a handle to an already existing mutex.
+ *
+ *
+ * \param void* name Name string for the new mutex.
+ * \return Returns a handle to the mutex.
+ *//*-------------------------------------------------------------------*/
+KOS_API oshandle_t kos_mutex_open(const char* name);
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Free the given mutex.
+ *
+ *
+ * \param oshandle_t mutexhandle Handle to the mutex.
+ * \return Returns NULL if no error, otherwise an error code.
+ *//*-------------------------------------------------------------------*/
+KOS_API int kos_mutex_free(oshandle_t mutexhandle);
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Lock the given mutex.
+ *
+ *
+ * \param oshandle_t mutexhandle Handle to the mutex.
+ * \return Returns NULL if no error, otherwise an error code.
+ *//*-------------------------------------------------------------------*/
+KOS_API int kos_mutex_lock(oshandle_t mutexhandle);
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Try to lock the given mutex, if already locked returns immediately.
+ *
+ *
+ * \param oshandle_t mutexhandle Handle to the mutex.
+ * \return Returns NULL if no error, otherwise an error code.
+ *//*-------------------------------------------------------------------*/
+KOS_API int kos_mutex_locktry(oshandle_t mutexhandle);
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Try to lock the given mutex by waiting for its release. Returns without locking if the
+ * mutex is already locked and cannot be acquired within the given period.
+ *
+ *
+ * \param oshandle_t mutexhandle Handle to the mutex.
+ * \param int millisecondstowait Time to wait for the mutex to be available.
+ * \return Returns NULL if no error, otherwise an error code.
+ *//*-------------------------------------------------------------------*/
+KOS_API int kos_mutex_lockwait(oshandle_t mutexhandle, int millisecondstowait);
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Unlock the given mutex.
+ *
+ *
+ * \param oshandle_t mutexhandle Handle to the mutex.
+ * \return Returns NULL if no error, otherwise an error code.
+ *//*-------------------------------------------------------------------*/
+KOS_API int kos_mutex_unlock(oshandle_t mutexhandle);
+
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Increments (increases by one) the value of the specified 32-bit variable as an atomic operation.
+ *
+ *
+ * \param int* ptr Pointer to the value to be incremented.
+ * \return Returns the new incremented value.
+ *//*-------------------------------------------------------------------*/
+KOS_API int kos_interlock_incr(int* ptr);
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Decrements (decreases by one) the value of the specified 32-bit variable as an atomic operation.
+ *
+ *
+ * \param int* ptr Pointer to the value to be decremented.
+ * \return Returns the new decremented value.
+ *//*-------------------------------------------------------------------*/
+KOS_API int kos_interlock_decr(int* ptr);
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Atomic replacement of a value.
+ *
+ *
+ * \param int* ptr Pointer to the value to be replaced.
+ * \param int value The new value.
+ * \return Returns the old value.
+ *//*-------------------------------------------------------------------*/
+KOS_API int kos_interlock_xchg(int* ptr, int value);
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Perform an atomic compare-and-exchange operation on the specified values. Compares the two specified 32-bit values and exchanges
+* with another 32-bit value based on the outcome of the comparison.
+ *
+ *
+ * \param int* ptr Pointer to the value to be replaced.
+ * \param int value The new value.
+ * \param int compvalue Value to be compared with.
+ * \return Returns the initial value of the first given parameter.
+ *//*-------------------------------------------------------------------*/
+KOS_API int kos_interlock_compxchg(int* ptr, int value, int compvalue);
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Atomic addition of two 32-bit values.
+ *
+ *
+ * \param int* ptr Pointer to the target value.
+ * \param int value Value to be added to the target.
+ * \return Returns the initial value of the target.
+ *//*-------------------------------------------------------------------*/
+KOS_API int kos_interlock_xchgadd(int* ptr, int value);
+
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Create an event semaphore.
+ *
+ *
+ * \param int a_manualReset Selection for performing reset manually (or by the system).
+ * \return Returns an handle to the created semaphore.
+ *//*-------------------------------------------------------------------*/
+KOS_API oshandle_t kos_event_create(int a_manualReset);
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Destroy an event semaphore.
+ *
+ *
+ * \param oshandle_t a_event Handle to the semaphore.
+ * \return Returns NULL if no error, otherwise an error code.
+ *//*-------------------------------------------------------------------*/
+KOS_API int kos_event_destroy(oshandle_t a_event);
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Signal an event semaphore.
+ *
+ *
+ * \param oshandle_t a_event Handle to the semaphore.
+ * \return Returns NULL if no error, otherwise an error code.
+ *//*-------------------------------------------------------------------*/
+KOS_API int kos_event_signal(oshandle_t a_event);
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Reset an event semaphore.
+ *
+ *
+ * \param oshandle_t a_event Handle to the semaphore.
+ * \return Returns NULL if no error, otherwise an error code.
+ *//*-------------------------------------------------------------------*/
+KOS_API int kos_event_reset(oshandle_t a_event);
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Wait for an event semaphore to be freed and acquire it.
+ *
+ *
+ * \param oshandle_t a_event Handle to the semaphore.
+ * \param int a_milliSeconds Time to wait.
+ * \return Returns NULL if no error, otherwise an error code.
+ *//*-------------------------------------------------------------------*/
+KOS_API int kos_event_wait(oshandle_t a_event, int a_milliSeconds);
+
+
+//////////////////////////////////////////////////////////////////////////////
+// interrupt handler API
+//////////////////////////////////////////////////////////////////////////////
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Enable an interrupt with specified id.
+ *
+ *
+ * \param int interrupt Identification number for the interrupt.
+ * \return Returns NULL if no error, otherwise an error code.
+ *//*-------------------------------------------------------------------*/
+KOS_API int kos_interrupt_enable(int interrupt);
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Disable an interrupt with specified id.
+ *
+ *
+ * \param int interrupt Identification number for the interrupt.
+ * \return Returns NULL if no error, otherwise an error code.
+ *//*-------------------------------------------------------------------*/
+KOS_API int kos_interrupt_disable(int interrupt);
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Set the callback function for an interrupt.
+ *
+ *
+ * \param int interrupt Identification number for the interrupt.
+ * \param void* handler Pointer to the callback function.
+ * \return Returns NULL if no error, otherwise an error code.
+ *//*-------------------------------------------------------------------*/
+KOS_API int kos_interrupt_setcallback(int interrupt, void* handler);
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Remove a callback function from an interrupt.
+ *
+ *
+ * \param int interrupt Identification number for the interrupt.
+ * \param void* handler Pointer to the callback function.
+ * \return Returns NULL if no error, otherwise an error code.
+ *//*-------------------------------------------------------------------*/
+KOS_API int kos_interrupt_clearcallback(int interrupt, void* handler);
+
+
+//////////////////////////////////////////////////////////////////////////////
+// thread and process API
+//////////////////////////////////////////////////////////////////////////////
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Allocate an entry from the thread local storage table.
+ *
+ *
+ * \return Index of the reserved entry.
+ *//*-------------------------------------------------------------------*/
+KOS_API unsigned int kos_tls_alloc(void);
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Free an entry from the thread local storage table.
+ *
+ *
+ * \return Returns NULL if no error, otherwise an error code.
+ *//*-------------------------------------------------------------------*/
+KOS_API int kos_tls_free(unsigned int tlsindex);
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Read the value of an entry in the thread local storage table.
+ *
+ *
+ * \param unsigned int tlsindex Index of the entry.
+ * \return Returns the value of the entry.
+ *//*-------------------------------------------------------------------*/
+KOS_API void* kos_tls_read(unsigned int tlsindex);
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Write a value to an entry in the thread local storage table.
+ *
+ *
+ * \param unsigned int tlsindex Index of the entry.
+ * \param void* tlsvalue Value to be written.
+ * \return Returns NULL if no error, otherwise an error code.
+ *//*-------------------------------------------------------------------*/
+KOS_API int kos_tls_write(unsigned int tlsindex, void* tlsvalue);
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Put the thread to sleep for the given time period.
+ *
+ *
+ * \param unsigned int milliseconds Time in milliseconds.
+ *//*-------------------------------------------------------------------*/
+KOS_API void kos_sleep(unsigned int milliseconds);
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Get the id of the current process.
+ *
+ *
+ * \return Returns the process id.
+ *//*-------------------------------------------------------------------*/
+KOS_API unsigned int kos_process_getid(void);
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Get the id of the current caller process.
+ *
+ *
+ * \return Returns the caller process id.
+ *//*-------------------------------------------------------------------*/
+KOS_API unsigned int kos_callerprocess_getid(void);
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Get the id of the current thread.
+ *
+ *
+ * \return Returns the thread id.
+ *//*-------------------------------------------------------------------*/
+KOS_API unsigned int kos_thread_getid(void);
+
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Create a new thread.
+ *
+ *
+ * \param oshandle_t a_function Handle to the function to be executed in the thread.
+ * \param unsigned int* a_threadId Pointer to a value where to store the ID of the new thread.
+ * \return Returns an handle to the created thread.
+ *//*-------------------------------------------------------------------*/
+KOS_API oshandle_t kos_thread_create(oshandle_t a_function, unsigned int* a_threadId);
+
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Destroy the given thread.
+ *
+ *
+ * \param oshandle_t a_task Handle to the thread to be destroyed.
+ *//*-------------------------------------------------------------------*/
+KOS_API void kos_thread_destroy( oshandle_t a_task );
+
+//////////////////////////////////////////////////////////////////////////////
+// timing API
+//////////////////////////////////////////////////////////////////////////////
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Get the current time as a timestamp.
+ *
+ *
+ * \return Returns the timestamp.
+ *//*-------------------------------------------------------------------*/
+KOS_API unsigned int kos_timestamp(void);
+
+
+//////////////////////////////////////////////////////////////////////////////
+// libary API
+//////////////////////////////////////////////////////////////////////////////
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Map the given library (not required an all OS'es).
+ *
+ *
+ * \param char* libraryname The name string of the lib.
+ * \return Returns a handle for the lib.
+ *//*-------------------------------------------------------------------*/
+KOS_API oshandle_t kos_lib_map(char* libraryname);
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Unmap the given library.
+ *
+ * \param oshandle_t libhandle Handle to the lib.
+ * \return Returns an error code incase of an error.
+ *//*-------------------------------------------------------------------*/
+KOS_API int kos_lib_unmap(oshandle_t libhandle);
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Get the address of a lib.
+ *
+ * \param oshandle_t libhandle Handle to the lib.
+ * \return Returns a pointer to the lib.
+ *//*-------------------------------------------------------------------*/
+KOS_API void* kos_lib_getaddr(oshandle_t libhandle, char* procname);
+
+
+//////////////////////////////////////////////////////////////////////////////
+// query API
+//////////////////////////////////////////////////////////////////////////////
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Get device system info.
+ *
+ * \param os_sysinfo_t* sysinfo Pointer to the destination sysinfo structure.
+ * \return Returns NULL if no error, otherwise an error code.
+ *//*-------------------------------------------------------------------*/
+KOS_API int kos_get_sysinfo(os_sysinfo_t* sysinfo);
+
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Get system status info.
+ *
+ * \param os_stats_t* stats Pointer to the destination stats structure.
+ * \return Returns NULL if no error, otherwise an error code.
+ *//*-------------------------------------------------------------------*/
+KOS_API int kos_get_stats(os_stats_t* stats);
+
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Sync block start
+ *
+ * \param void
+ * \return Returns NULL if no error, otherwise an error code.
+ *//*-------------------------------------------------------------------*/
+KOS_API int kos_syncblock_start(void);
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Sync block end
+ *
+ * \param void
+ * \return Returns NULL if no error, otherwise an error code.
+ *//*-------------------------------------------------------------------*/
+KOS_API int kos_syncblock_end(void);
+
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Sync block start with argument
+ *
+ * \param void
+ * \return Returns NULL if no error, otherwise an error code.
+ *//*-------------------------------------------------------------------*/
+KOS_API int kos_syncblock_start_ex( mutexIndex_t a_index );
+
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Sync block start with argument
+ *
+ * \param void
+ * \return Returns NULL if no error, otherwise an error code.
+ *//*-------------------------------------------------------------------*/
+KOS_API int kos_syncblock_end_ex( mutexIndex_t a_index );
+
+//////////////////////////////////////////////////////////////////////////////
+// file API
+//////////////////////////////////////////////////////////////////////////////
+
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Opens a file
+ *
+ * \param const char* filename Name of the file to open.
+ * \param const char* mode Mode used for file opening. See fopen.
+ * \return Returns file handle or NULL if error.
+ *//*-------------------------------------------------------------------*/
+KOS_API oshandle_t kos_fopen(const char* filename, const char* mode);
+
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Writes to a file
+ *
+ * \param oshandle_t file Handle of the file to write to.
+ * \param const char* format Format string. See fprintf.
+ * \return Returns the number of bytes written
+ *//*-------------------------------------------------------------------*/
+KOS_API int kos_fprintf(oshandle_t file, const char* format, ...);
+
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Closes a file
+ *
+ * \param oshandle_t file Handle of the file to close.
+ * \return Returns zero if no error, otherwise an error code.
+ *//*-------------------------------------------------------------------*/
+KOS_API int kos_fclose(oshandle_t file);
+
+#ifdef __SYMBIAN32__
+KOS_API void kos_create_dfc(void);
+KOS_API void kos_signal_dfc(void);
+KOS_API void kos_enter_critical_section();
+KOS_API void kos_leave_critical_section();
+#endif // __SYMBIAN32__
+
+#ifdef __cplusplus
+}
+#endif // __cplusplus
+#endif // __KOSAPI_H
diff --git a/drivers/mxc/amd-gpu/os/kernel/src/linux/kos_lib.c b/drivers/mxc/amd-gpu/os/kernel/src/linux/kos_lib.c
new file mode 100644
index 000000000000..4ead84ffe0dc
--- /dev/null
+++ b/drivers/mxc/amd-gpu/os/kernel/src/linux/kos_lib.c
@@ -0,0 +1,661 @@
+/* Copyright (c) 2008-2010, Advanced Micro Devices. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 and
+ * only version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that 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.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
+ *
+ */
+
+#include <linux/mm.h>
+#include <linux/slab.h>
+#include <linux/kernel.h>
+#include <linux/string.h>
+#include <linux/limits.h>
+#include <linux/delay.h>
+#include <linux/dma-mapping.h>
+#include <linux/mutex.h>
+#include <asm/atomic.h>
+#include <asm/current.h>
+#include <linux/sched.h>
+#include <linux/jiffies.h>
+#include <linux/kthread.h>
+#include "kos_libapi.h"
+
+//////////////////////////////////////////////////////////////////////////////
+// defines
+//////////////////////////////////////////////////////////////////////////////
+//#define KOS_STATS_ENABLE
+
+//////////////////////////////////////////////////////////////////////////////
+// macros
+//////////////////////////////////////////////////////////////////////////////
+#define KOS_MALLOC(s) kmalloc(s, GFP_KERNEL)
+#define KOS_CALLOC(num, size) kcalloc(num, size, GFP_KERNEL)
+#define KOS_REALLOC(p, s) krealloc(p, s, GFP_KERNEL)
+#define KOS_FREE(p) kfree(p); p = 0
+#define KOS_DBGFLAGS_SET(flag)
+
+//////////////////////////////////////////////////////////////////////////////
+// stats
+//////////////////////////////////////////////////////////////////////////////
+#ifdef KOS_STATS_ENABLE
+os_stats_t kos_stats = {0, 0, 0, 0, 0, 0, 0, 0};
+#define KOS_STATS(x) x
+#else
+#define KOS_STATS(x)
+#endif
+
+//////////////////////////////////////////////////////////////////////////////
+// assert API
+//////////////////////////////////////////////////////////////////////////////
+KOS_API void
+kos_assert_hook(const char* file, int line, int expression)
+{
+ if (expression)
+ {
+ return;
+ }
+ else
+ {
+ printk(KERN_ERR "Assertion failed at %s:%d!\n", file, line);
+ //BUG();
+ }
+
+ // put breakpoint here
+}
+
+
+//////////////////////////////////////////////////////////////////////////////
+// heap API (per process)
+//////////////////////////////////////////////////////////////////////////////
+KOS_API void*
+kos_malloc(int size)
+{
+ void* ptr = KOS_MALLOC(size);
+
+ KOS_ASSERT(ptr);
+ KOS_STATS(kos_stats.heap_allocs++);
+ KOS_STATS(kos_stats.heap_alloc_bytes += size);
+
+ return (ptr);
+}
+
+
+//----------------------------------------------------------------------------
+
+KOS_API void*
+kos_calloc(int num, int size)
+{
+ void* ptr = KOS_CALLOC(num, size);
+
+ KOS_ASSERT(ptr);
+ KOS_STATS(kos_stats.heap_allocs++);
+ KOS_STATS(kos_stats.heap_alloc_bytes += (size * num));
+
+ return (ptr);
+}
+
+//----------------------------------------------------------------------------
+
+KOS_API void*
+kos_realloc(void* ptr, int size)
+{
+ void* newptr;
+
+ KOS_ASSERT(ptr);
+ newptr = KOS_REALLOC(ptr, size);
+
+ KOS_ASSERT(newptr);
+
+ return (newptr);
+}
+
+//----------------------------------------------------------------------------
+
+KOS_API void
+kos_free(void* ptr)
+{
+ KOS_STATS(kos_stats.heap_frees++);
+
+ KOS_FREE(ptr);
+}
+
+
+//////////////////////////////////////////////////////////////////////////////
+// shared heap API (cross process)
+//////////////////////////////////////////////////////////////////////////////
+KOS_API void*
+kos_shared_malloc(int size)
+{
+ void* ptr;
+
+ ptr = NULL; // shared alloc
+
+ KOS_ASSERT(ptr);
+ KOS_STATS(kos_stats.shared_heap_allocs++);
+ KOS_STATS(kos_stats.shared_heap_alloc_bytes += size);
+
+ return (ptr);
+}
+
+//----------------------------------------------------------------------------
+
+KOS_API void*
+kos_shared_calloc(int num, int size)
+{
+ void* ptr;
+
+ ptr = NULL; // shared calloc
+
+ KOS_ASSERT(ptr);
+ KOS_STATS(kos_stats.shared_heap_allocs++);
+ KOS_STATS(kos_stats.shared_heap_alloc_bytes += (size * num));
+ return (ptr);
+}
+
+//----------------------------------------------------------------------------
+
+KOS_API void*
+kos_shared_realloc(void* ptr, int size)
+{
+ void* newptr;
+ (void) ptr; // unreferenced formal parameter
+ (void) size; // unreferenced formal parameter
+
+ newptr = NULL; // shared realloc
+
+ KOS_ASSERT(newptr);
+
+ return (newptr);
+}
+
+//----------------------------------------------------------------------------
+
+KOS_API void
+kos_shared_free(void* ptr)
+{
+ (void) ptr; // unreferenced formal parameter
+ KOS_ASSERT(0); // not implemented
+
+ KOS_STATS(kos_stats.shared_heap_frees++);
+
+ // shared free
+}
+
+//////////////////////////////////////////////////////////////////////////////
+// memory access API
+//////////////////////////////////////////////////////////////////////////////
+KOS_API void*
+kos_memcpy(void* dst, const void* src, int count)
+{
+ KOS_ASSERT(src);
+ KOS_ASSERT(dst);
+ return memcpy(dst, src, count);
+}
+
+//----------------------------------------------------------------------------
+
+KOS_API void*
+kos_memset(void* dst, int value, int count)
+{
+ KOS_ASSERT(dst);
+ return memset(dst, value, count);
+}
+
+//----------------------------------------------------------------------------
+
+KOS_API int
+kos_memcmp(void* dst, void* src, int count)
+{
+ KOS_ASSERT(src);
+ KOS_ASSERT(dst);
+ return memcmp(dst, src, count);
+}
+
+//////////////////////////////////////////////////////////////////////////////
+// physical memory API
+//////////////////////////////////////////////////////////////////////////////
+KOS_API int
+kos_alloc_physical(void** virt_addr, void** phys_addr, int pages)
+{
+ *virt_addr = dma_alloc_coherent(NULL, pages*PAGE_SIZE, (dma_addr_t*)*phys_addr, GFP_DMA | GFP_KERNEL);
+ return *virt_addr ? OS_SUCCESS : OS_FAILURE;
+}
+
+//----------------------------------------------------------------------------
+
+KOS_API int
+kos_free_physical(void* virt_addr, int pages)
+{
+ (void) virt_addr; // unreferenced formal parameter
+ (void) pages; // unreferenced formal parameter
+
+ return (OS_SUCCESS);
+}
+
+//----------------------------------------------------------------------------
+
+KOS_API int
+kos_map_physical(void** virt_addr, void** phys_addr, int pages)
+{
+ (void) virt_addr; // unreferenced formal parameter
+ (void) phys_addr; // unreferenced formal parameter
+ (void) pages; // unreferenced formal parameter
+
+ return (OS_SUCCESS);
+}
+
+//----------------------------------------------------------------------------
+
+KOS_API int
+kos_unmap_physical(void* virt_addr, int pages)
+{
+ (void) virt_addr; // unreferenced formal parameter
+ (void) pages; // unreferenced formal parameter
+
+ return (OS_SUCCESS);
+}
+
+//----------------------------------------------------------------------------
+
+KOS_API void
+kos_memoryfence(void)
+{
+}
+
+//----------------------------------------------------------------------------
+
+KOS_API void
+kos_enable_memoryleakcheck(void)
+{
+ // perform automatic leak checking at program exit
+ KOS_DBGFLAGS_SET(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);
+}
+
+//////////////////////////////////////////////////////////////////////////////
+// string API
+//////////////////////////////////////////////////////////////////////////////
+
+KOS_API char*
+kos_strcpy(char* strdestination, const char* strsource)
+{
+ KOS_ASSERT(strdestination);
+ KOS_ASSERT(strsource);
+ return strcpy(strdestination, strsource);
+}
+
+//----------------------------------------------------------------------------
+
+KOS_API char*
+kos_strncpy(char* destination, const char* source, int length)
+{
+ KOS_ASSERT(destination);
+ KOS_ASSERT(source);
+ return strncpy(destination, source, length);
+}
+
+//----------------------------------------------------------------------------
+
+KOS_API char*
+kos_strcat(char* strdestination, const char* strsource)
+{
+ KOS_ASSERT(strdestination);
+ KOS_ASSERT(strsource);
+ return strcat(strdestination, strsource);
+}
+
+//----------------------------------------------------------------------------
+
+KOS_API int
+kos_strcmp(const char* string1, const char* string2)
+{
+ KOS_ASSERT(string1);
+ KOS_ASSERT(string2);
+ return strcmp(string1, string2);
+}
+
+//----------------------------------------------------------------------------
+
+KOS_API int
+kos_strncmp(const char* string1, const char* string2, int length)
+{
+ KOS_ASSERT(string1);
+ KOS_ASSERT(string2);
+ return strncmp(string1, string2, length);
+}
+
+//----------------------------------------------------------------------------
+
+KOS_API int
+kos_strlen(const char* string)
+{
+ KOS_ASSERT(string);
+ return strlen(string);
+}
+
+//////////////////////////////////////////////////////////////////////////////
+// sync API
+//////////////////////////////////////////////////////////////////////////////
+
+KOS_API oshandle_t
+kos_mutex_create(const char *name)
+{
+ struct mutex *mutex = KOS_MALLOC(sizeof(struct mutex));
+ if (!mutex)
+ return 0;
+ mutex_init(mutex);
+ return mutex;
+}
+
+//----------------------------------------------------------------------------
+
+KOS_API oshandle_t
+kos_mutex_open(const char *name)
+{
+ // not implemented
+ return 0;
+}
+
+//----------------------------------------------------------------------------
+
+KOS_API int
+kos_mutex_free(oshandle_t mutexhandle)
+{
+ struct mutex *mutex = (struct mutex *)mutexhandle;
+ if (!mutex)
+ return OS_FAILURE;
+ KOS_FREE(mutex);
+ return OS_SUCCESS;
+}
+
+//----------------------------------------------------------------------------
+
+KOS_API int
+kos_mutex_lock(oshandle_t mutexhandle)
+{
+ struct mutex *mutex = (struct mutex *)mutexhandle;
+ if (!mutex)
+ return OS_FAILURE;
+ if (mutex_lock_interruptible(mutex) == -EINTR)
+ return OS_FAILURE;
+ return OS_SUCCESS;
+}
+
+//----------------------------------------------------------------------------
+
+KOS_API int
+kos_mutex_locktry(oshandle_t mutexhandle)
+{
+ struct mutex *mutex = (struct mutex *)mutexhandle;
+ if (!mutex)
+ return OS_FAILURE;
+ if (!mutex_trylock(mutex))
+ return OS_FAILURE;
+ return OS_SUCCESS;
+}
+
+//----------------------------------------------------------------------------
+
+KOS_API int
+kos_mutex_unlock(oshandle_t mutexhandle)
+{
+ struct mutex *mutex = (struct mutex *)mutexhandle;
+ if (!mutex)
+ return OS_FAILURE;
+ KOS_ASSERT(mutex_is_locked(mutex));
+ mutex_unlock(mutex);
+ return OS_SUCCESS;
+}
+
+//----------------------------------------------------------------------------
+
+KOS_API unsigned int
+kos_process_getid(void)
+{
+ return current->tgid;
+}
+
+//----------------------------------------------------------------------------
+
+/* ------------------------------------------------------------------- *//*
+ * \brief Creates new event semaphore
+ * \param uint32 a_manualReset
+ * When this param is zero, system automatically resets the
+ * event state to nonsignaled after waiting thread has been
+ * released
+ * \return oshandle_t
+*//* ------------------------------------------------------------------- */
+KOS_API oshandle_t
+kos_event_create(int a_manualReset)
+{
+ struct completion *comp = KOS_MALLOC(sizeof(struct completion));
+
+ KOS_ASSERT(comp);
+ if(!comp)
+ {
+ return (oshandle_t)NULL;
+ }
+
+ init_completion(comp);
+
+ return (oshandle_t)comp;
+}
+
+/* ------------------------------------------------------------------- *//*
+ * \brief Frees event semaphore
+ * \param oshandle_t a_event, event semaphore
+ * \return int
+*//* ------------------------------------------------------------------- */
+KOS_API int
+kos_event_destroy(oshandle_t a_event)
+{
+ struct completion *comp = (struct completion *)a_event;
+
+ KOS_ASSERT(comp);
+// KOS_ASSERT(completion_done(comp));
+
+ KOS_FREE(comp);
+ return (OS_SUCCESS);
+}
+
+/* ------------------------------------------------------------------- *//*
+ * \brief Signals event semaphore
+ * \param oshandle_t a_event, event semaphore
+ * \return int
+*//* ------------------------------------------------------------------- */
+KOS_API int
+kos_event_signal(oshandle_t a_event)
+{
+ struct completion *comp = (struct completion *)a_event;
+
+ KOS_ASSERT(comp);
+ complete_all(comp); // perhaps complete_all?
+ return (OS_SUCCESS);
+}
+
+/* ------------------------------------------------------------------- *//*
+ * \brief Resets event semaphore state to nonsignaled
+ * \param oshandle_t a_event, event semaphore
+ * \return int
+*//* ------------------------------------------------------------------- */
+KOS_API int
+kos_event_reset(oshandle_t a_event)
+{
+ struct completion *comp = (struct completion *)a_event;
+
+ KOS_ASSERT(comp);
+ INIT_COMPLETION(*comp);
+ return (OS_SUCCESS);
+}
+
+/* ------------------------------------------------------------------- *//*
+ * \brief Waits event semaphore to be signaled
+ * \param oshandle_t a_event, event semaphore
+ * \return int
+*//* ------------------------------------------------------------------- */
+KOS_API int
+kos_event_wait(oshandle_t a_event, int a_milliSeconds)
+{
+ struct completion *comp = (struct completion *)a_event;
+
+ KOS_ASSERT(comp);
+ if(a_milliSeconds == OS_INFINITE)
+ {
+ wait_for_completion_killable(comp);
+ }
+ else
+ {
+ // should interpret milliseconds really to jiffies?
+ if(!wait_for_completion_timeout(comp, msecs_to_jiffies(a_milliSeconds)))
+ {
+ return (OS_FAILURE);
+ }
+ }
+ return (OS_SUCCESS);
+}
+
+//----------------------------------------------------------------------------
+
+KOS_API void
+kos_sleep(unsigned int milliseconds)
+{
+ msleep(milliseconds);
+}
+
+//////////////////////////////////////////////////////////////////////////////
+// query API
+//////////////////////////////////////////////////////////////////////////////
+
+static int
+kos_get_endianness(void)
+{
+ int value;
+ char* ptr;
+
+ value = 0x01FFFF00;
+
+ ptr = (char*)&value;
+
+ KOS_ASSERT((*ptr == 0x00) || (*ptr == 0x01));
+
+ return (int)*ptr;
+}
+
+//----------------------------------------------------------------------------
+
+KOS_API int
+kos_get_sysinfo(os_sysinfo_t* sysinfo)
+{
+ KOS_ASSERT(sysinfo);
+ if (!sysinfo) return (OS_FAILURE);
+
+ sysinfo->cpu_mhz = 0;
+ sysinfo->cpu_type = 0;
+ sysinfo->cpu_version = 0;
+ sysinfo->os_type = 0;
+ sysinfo->os_version = 0;
+ sysinfo->sysmem_size = 0;
+ sysinfo->page_size = 0x1000;
+ sysinfo->max_path = PATH_MAX;
+// sysinfo->tls_slots = TLS_MINIMUM_AVAILABLE - 1;
+ sysinfo->endianness = kos_get_endianness();
+
+ return (OS_SUCCESS);
+}
+
+//----------------------------------------------------------------------------
+
+#ifdef KOS_STATS_ENABLE
+KOS_API int
+kos_get_stats(os_stats_t* stats)
+{
+ kos_memcpy(stats, &kos_stats, sizeof(os_stats_t));
+ return (OS_SUCCESS);
+}
+#else
+KOS_API int
+kos_get_stats(os_stats_t* stats)
+{
+ return (OS_FAILURE);
+}
+#endif // KOS_STATS
+
+/*-------------------------------------------------------------------*//*!
+ * \brief Sync block API
+ * Same mutex needed from different blocks of driver
+ *//*-------------------------------------------------------------------*/
+
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Sync block start
+ *
+ * \param void
+ * \return Returns NULL if no error, otherwise an error code.
+ *//*-------------------------------------------------------------------*/
+
+static struct mutex* syncblock_mutex = 0;
+
+KOS_API int kos_syncblock_start(void)
+{
+ int return_value;
+
+ if(!syncblock_mutex)
+ {
+ syncblock_mutex = kos_mutex_create("syncblock");
+ }
+
+ if(syncblock_mutex)
+ {
+ return_value = kos_mutex_lock(syncblock_mutex);
+ }
+ else
+ {
+ return_value = -1;
+ }
+
+ return return_value;
+}
+/*-------------------------------------------------------------------*//*!
+ * \external
+ * \brief Sync block end
+ *
+ * \param void
+ * \return Returns NULL if no error, otherwise an error code.
+ *//*-------------------------------------------------------------------*/
+KOS_API int kos_syncblock_end(void)
+{
+ int return_value;
+
+ if(syncblock_mutex)
+ {
+ return_value = kos_mutex_unlock(syncblock_mutex);
+ }
+ else
+ {
+ return_value = -1;
+ }
+
+ return return_value;
+}
+
+KOS_API oshandle_t kos_thread_create(oshandle_t a_function, unsigned int* a_threadId)
+{
+ struct task_struct *task = kthread_run(a_function, 0, "kos_thread_%p", a_threadId);
+ *a_threadId = (unsigned int)task;
+ return (oshandle_t)task;
+}
+
+KOS_API void kos_thread_destroy( oshandle_t a_task )
+{
+ kthread_stop((struct task_struct *)a_task);
+}
diff --git a/drivers/mxc/amd-gpu/platform/hal/linux/gsl_hal.c b/drivers/mxc/amd-gpu/platform/hal/linux/gsl_hal.c
new file mode 100644
index 000000000000..8d452830cc08
--- /dev/null
+++ b/drivers/mxc/amd-gpu/platform/hal/linux/gsl_hal.c
@@ -0,0 +1,579 @@
+/* Copyright (c) 2008-2010, Advanced Micro Devices. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 and
+ * only version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that 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.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
+ *
+ */
+
+/*
+ * Copyright (C) 2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+#include "gsl_hal.h"
+#include "gsl_halconfig.h"
+#include "gsl_linux_map.h"
+
+#include <linux/clk.h>
+#include <linux/kernel.h>
+#include <linux/pci.h>
+#include <linux/vmalloc.h>
+
+#include <asm/atomic.h>
+#include <linux/uaccess.h>
+#include <asm/tlbflush.h>
+#include <asm/cacheflush.h>
+
+#define GSL_HAL_MEM1 0
+#define GSL_HAL_MEM2 1
+#define GSL_HAL_MEM3 2
+
+/* #define GSL_HAL_DEBUG */
+
+extern phys_addr_t gpu_2d_regbase;
+extern int gpu_2d_regsize;
+extern phys_addr_t gpu_3d_regbase;
+extern int gpu_3d_regsize;
+extern int gmem_size;
+extern phys_addr_t gpu_reserved_mem;
+extern int gpu_reserved_mem_size;
+extern int gpu_2d_irq, gpu_3d_irq;
+
+
+KGSLHAL_API int
+kgsl_hal_allocphysical(unsigned int virtaddr, unsigned int numpages, unsigned int scattergatterlist[])
+{
+ /* allocate physically contiguous memory */
+
+ int i;
+ void *va;
+
+ va = gsl_linux_map_alloc(virtaddr, numpages*PAGE_SIZE);
+
+ if (!va)
+ return GSL_FAILURE_OUTOFMEM;
+
+ for (i = 0; i < numpages; i++) {
+ scattergatterlist[i] = page_to_phys(vmalloc_to_page(va));
+ va += PAGE_SIZE;
+ }
+
+ return GSL_SUCCESS;
+}
+
+/* --------------------------------------------------------------------------- */
+
+KGSLHAL_API int
+kgsl_hal_freephysical(unsigned int virtaddr, unsigned int numpages, unsigned int scattergatterlist[])
+{
+ /* free physical memory */
+
+ gsl_linux_map_free(virtaddr);
+
+ return GSL_SUCCESS;
+}
+
+/* ---------------------------------------------------------------------------- */
+
+KGSLHAL_API int
+kgsl_hal_init(void)
+{
+ gsl_hal_t *hal;
+ unsigned long totalsize, mem1size;
+ unsigned int va, pa;
+
+ if (gsl_driver.hal) {
+ return GSL_FAILURE_ALREADYINITIALIZED;
+ }
+
+ gsl_driver.hal = (void *)kos_malloc(sizeof(gsl_hal_t));
+
+ if (!gsl_driver.hal) {
+ return GSL_FAILURE_OUTOFMEM;
+ }
+
+ kos_memset(gsl_driver.hal, 0, sizeof(gsl_hal_t));
+
+
+ /* overlay structure on hal memory */
+ hal = (gsl_hal_t *) gsl_driver.hal;
+
+ if (gpu_3d_regbase && gpu_3d_regsize && gpu_3d_irq) {
+ hal->has_z430 = 1;
+ } else {
+ hal->has_z430 = 0;
+ }
+
+ if (gpu_2d_regbase && gpu_2d_regsize && gpu_2d_irq) {
+ hal->has_z160 = 1;
+ } else {
+ hal->has_z160 = 0;
+ }
+
+ /* there is still some problem to enable mmu currently */
+ gsl_driver.enable_mmu = 0;
+
+ /* setup register space */
+ if (hal->has_z430) {
+ hal->z430_regspace.mmio_phys_base = gpu_3d_regbase;
+ hal->z430_regspace.sizebytes = gpu_3d_regsize;
+ hal->z430_regspace.mmio_virt_base = (unsigned char *)ioremap(hal->z430_regspace.mmio_phys_base, hal->z430_regspace.sizebytes);
+
+ if (hal->z430_regspace.mmio_virt_base == NULL) {
+ return GSL_FAILURE_SYSTEMERROR;
+ }
+
+#ifdef GSL_HAL_DEBUG
+ printk(KERN_INFO "%s: hal->z430_regspace.mmio_phys_base = 0x%p\n", __func__, (void *)hal->z430_regspace.mmio_phys_base);
+ printk(KERN_INFO "%s: hal->z430_regspace.mmio_virt_base = 0x%p\n", __func__, (void *)hal->z430_regspace.mmio_virt_base);
+ printk(KERN_INFO "%s: hal->z430_regspace.sizebytes = 0x%08x\n", __func__, hal->z430_regspace.sizebytes);
+#endif
+ }
+
+ if (hal->has_z160) {
+ hal->z160_regspace.mmio_phys_base = gpu_2d_regbase;
+ hal->z160_regspace.sizebytes = gpu_2d_regsize;
+ hal->z160_regspace.mmio_virt_base = (unsigned char *)ioremap(hal->z160_regspace.mmio_phys_base, hal->z160_regspace.sizebytes);
+
+ if (hal->z160_regspace.mmio_virt_base == NULL) {
+ return GSL_FAILURE_SYSTEMERROR;
+ }
+
+#ifdef GSL_HAL_DEBUG
+ printk(KERN_INFO "%s: hal->z160_regspace.mmio_phys_base = 0x%p\n", __func__, (void *)hal->z160_regspace.mmio_phys_base);
+ printk(KERN_INFO "%s: hal->z160_regspace.mmio_virt_base = 0x%p\n", __func__, (void *)hal->z160_regspace.mmio_virt_base);
+ printk(KERN_INFO "%s: hal->z160_regspace.sizebytes = 0x%08x\n", __func__, hal->z160_regspace.sizebytes);
+#endif
+ }
+
+ if (gsl_driver.enable_mmu) {
+ totalsize = GSL_HAL_SHMEM_SIZE_EMEM2_MMU + GSL_HAL_SHMEM_SIZE_PHYS_MMU;
+ mem1size = GSL_HAL_SHMEM_SIZE_EMEM1_MMU;
+ if (gpu_reserved_mem && gpu_reserved_mem_size >= totalsize) {
+ pa = gpu_reserved_mem;
+ va = (unsigned int)ioremap(gpu_reserved_mem, totalsize);
+ } else {
+ va = (unsigned int)dma_alloc_coherent(0, totalsize, (dma_addr_t *)&pa, GFP_DMA | GFP_KERNEL);
+ }
+ } else {
+ if (gpu_reserved_mem && gpu_reserved_mem_size >= SZ_8M) {
+ totalsize = gpu_reserved_mem_size;
+ pa = gpu_reserved_mem;
+ va = (unsigned int)ioremap(gpu_reserved_mem, gpu_reserved_mem_size);
+ } else {
+ gpu_reserved_mem = 0;
+ totalsize = GSL_HAL_SHMEM_SIZE_EMEM1_NOMMU + GSL_HAL_SHMEM_SIZE_EMEM2_NOMMU + GSL_HAL_SHMEM_SIZE_PHYS_NOMMU;
+ va = (unsigned int)dma_alloc_coherent(0, totalsize, (dma_addr_t *)&pa, GFP_DMA | GFP_KERNEL);
+ }
+ mem1size = totalsize - (GSL_HAL_SHMEM_SIZE_EMEM2_NOMMU + GSL_HAL_SHMEM_SIZE_PHYS_NOMMU);
+ }
+
+ if (va) {
+ kos_memset((void *)va, 0, totalsize);
+
+ hal->memchunk.mmio_virt_base = (void *)va;
+ hal->memchunk.mmio_phys_base = pa;
+ hal->memchunk.sizebytes = totalsize;
+
+#ifdef GSL_HAL_DEBUG
+ printk(KERN_INFO "%s: hal->memchunk.mmio_phys_base = 0x%p\n", __func__, (void *)hal->memchunk.mmio_phys_base);
+ printk(KERN_INFO "%s: hal->memchunk.mmio_virt_base = 0x%p\n", __func__, (void *)hal->memchunk.mmio_virt_base);
+ printk(KERN_INFO "%s: hal->memchunk.sizebytes = 0x%08x\n", __func__, hal->memchunk.sizebytes);
+#endif
+
+ hal->memspace[GSL_HAL_MEM2].mmio_virt_base = (void *) va;
+ hal->memspace[GSL_HAL_MEM2].gpu_base = pa;
+ if (gsl_driver.enable_mmu) {
+ hal->memspace[GSL_HAL_MEM2].sizebytes = GSL_HAL_SHMEM_SIZE_EMEM2_MMU;
+ va += GSL_HAL_SHMEM_SIZE_EMEM2_MMU;
+ pa += GSL_HAL_SHMEM_SIZE_EMEM2_MMU;
+ } else {
+ hal->memspace[GSL_HAL_MEM2].sizebytes = GSL_HAL_SHMEM_SIZE_EMEM2_NOMMU;
+ va += GSL_HAL_SHMEM_SIZE_EMEM2_NOMMU;
+ pa += GSL_HAL_SHMEM_SIZE_EMEM2_NOMMU;
+ }
+
+#ifdef GSL_HAL_DEBUG
+ printk(KERN_INFO "%s: hal->memspace[GSL_HAL_MEM2].gpu_base = 0x%p\n", __func__, (void *)hal->memspace[GSL_HAL_MEM2].gpu_base);
+ printk(KERN_INFO "%s: hal->memspace[GSL_HAL_MEM2].mmio_virt_base = 0x%p\n", __func__, (void *)hal->memspace[GSL_HAL_MEM2].mmio_virt_base);
+ printk(KERN_INFO "%s: hal->memspace[GSL_HAL_MEM2].sizebytes = 0x%08x\n", __func__, hal->memspace[GSL_HAL_MEM2].sizebytes);
+#endif
+
+ hal->memspace[GSL_HAL_MEM3].mmio_virt_base = (void *) va;
+ hal->memspace[GSL_HAL_MEM3].gpu_base = pa;
+ if (gsl_driver.enable_mmu) {
+ hal->memspace[GSL_HAL_MEM3].sizebytes = GSL_HAL_SHMEM_SIZE_PHYS_MMU;
+ va += GSL_HAL_SHMEM_SIZE_PHYS_MMU;
+ pa += GSL_HAL_SHMEM_SIZE_PHYS_MMU;
+ } else {
+ hal->memspace[GSL_HAL_MEM3].sizebytes = GSL_HAL_SHMEM_SIZE_PHYS_NOMMU;
+ va += GSL_HAL_SHMEM_SIZE_PHYS_NOMMU;
+ pa += GSL_HAL_SHMEM_SIZE_PHYS_NOMMU;
+ }
+
+#ifdef GSL_HAL_DEBUG
+ printk(KERN_INFO "%s: hal->memspace[GSL_HAL_MEM3].gpu_base = 0x%p\n", __func__, (void *)hal->memspace[GSL_HAL_MEM3].gpu_base);
+ printk(KERN_INFO "%s: hal->memspace[GSL_HAL_MEM3].mmio_virt_base = 0x%p\n", __func__, (void *)hal->memspace[GSL_HAL_MEM3].mmio_virt_base);
+ printk(KERN_INFO "%s: hal->memspace[GSL_HAL_MEM3].sizebytes = 0x%08x\n", __func__, hal->memspace[GSL_HAL_MEM3].sizebytes);
+#endif
+
+ if (gsl_driver.enable_mmu) {
+ gsl_linux_map_init();
+ hal->memspace[GSL_HAL_MEM1].mmio_virt_base = (void *)GSL_LINUX_MAP_RANGE_START;
+ hal->memspace[GSL_HAL_MEM1].gpu_base = GSL_LINUX_MAP_RANGE_START;
+ hal->memspace[GSL_HAL_MEM1].sizebytes = mem1size;
+ } else {
+ hal->memspace[GSL_HAL_MEM1].mmio_virt_base = (void *) va;
+ hal->memspace[GSL_HAL_MEM1].gpu_base = pa;
+ hal->memspace[GSL_HAL_MEM1].sizebytes = mem1size;
+ }
+
+#ifdef GSL_HAL_DEBUG
+ printk(KERN_INFO "%s: hal->memspace[GSL_HAL_MEM1].gpu_base = 0x%p\n", __func__, (void *)hal->memspace[GSL_HAL_MEM1].gpu_base);
+ printk(KERN_INFO "%s: hal->memspace[GSL_HAL_MEM1].mmio_virt_base = 0x%p\n", __func__, (void *)hal->memspace[GSL_HAL_MEM1].mmio_virt_base);
+ printk(KERN_INFO "%s: hal->memspace[GSL_HAL_MEM1].sizebytes = 0x%08x\n", __func__, hal->memspace[GSL_HAL_MEM1].sizebytes);
+#endif
+ } else {
+ kgsl_hal_close();
+ return GSL_FAILURE_SYSTEMERROR;
+ }
+
+ return GSL_SUCCESS;
+}
+
+/* ---------------------------------------------------------------------------- */
+
+KGSLHAL_API int
+kgsl_hal_close(void)
+{
+ gsl_hal_t *hal;
+
+ if (gsl_driver.hal) {
+ /* overlay structure on hal memory */
+ hal = (gsl_hal_t *) gsl_driver.hal;
+
+ /* unmap registers */
+ if (hal->has_z430 && hal->z430_regspace.mmio_virt_base) {
+ iounmap(hal->z430_regspace.mmio_virt_base);
+ }
+
+ if (hal->has_z160 && hal->z160_regspace.mmio_virt_base) {
+ iounmap(hal->z160_regspace.mmio_virt_base);
+ }
+
+ /* free physical block */
+ if (hal->memchunk.mmio_virt_base && gpu_reserved_mem) {
+ iounmap(hal->memchunk.mmio_virt_base);
+ } else {
+ dma_free_coherent(0, hal->memchunk.sizebytes, hal->memchunk.mmio_virt_base, hal->memchunk.mmio_phys_base);
+ }
+
+ if (gsl_driver.enable_mmu) {
+ gsl_linux_map_destroy();
+ }
+
+ /* release hal struct */
+ kos_memset(hal, 0, sizeof(gsl_hal_t));
+ kos_free(gsl_driver.hal);
+ gsl_driver.hal = NULL;
+ }
+
+ return GSL_SUCCESS;
+}
+
+/* ---------------------------------------------------------------------------- */
+
+KGSLHAL_API int
+kgsl_hal_getshmemconfig(gsl_shmemconfig_t *config)
+{
+ int status = GSL_FAILURE_DEVICEERROR;
+ gsl_hal_t *hal = (gsl_hal_t *) gsl_driver.hal;
+
+ kos_memset(config, 0, sizeof(gsl_shmemconfig_t));
+
+ if (hal) {
+ config->numapertures = GSL_SHMEM_MAX_APERTURES;
+
+ if (gsl_driver.enable_mmu) {
+ config->apertures[0].id = GSL_APERTURE_MMU;
+ } else {
+ config->apertures[0].id = GSL_APERTURE_EMEM;
+ }
+ config->apertures[0].channel = GSL_CHANNEL_1;
+ config->apertures[0].hostbase = (unsigned int)hal->memspace[GSL_HAL_MEM1].mmio_virt_base;
+ config->apertures[0].gpubase = hal->memspace[GSL_HAL_MEM1].gpu_base;
+ config->apertures[0].sizebytes = hal->memspace[GSL_HAL_MEM1].sizebytes;
+
+ config->apertures[1].id = GSL_APERTURE_EMEM;
+ config->apertures[1].channel = GSL_CHANNEL_2;
+ config->apertures[1].hostbase = (unsigned int)hal->memspace[GSL_HAL_MEM2].mmio_virt_base;
+ config->apertures[1].gpubase = hal->memspace[GSL_HAL_MEM2].gpu_base;
+ config->apertures[1].sizebytes = hal->memspace[GSL_HAL_MEM2].sizebytes;
+
+ config->apertures[2].id = GSL_APERTURE_PHYS;
+ config->apertures[2].channel = GSL_CHANNEL_1;
+ config->apertures[2].hostbase = (unsigned int)hal->memspace[GSL_HAL_MEM3].mmio_virt_base;
+ config->apertures[2].gpubase = hal->memspace[GSL_HAL_MEM3].gpu_base;
+ config->apertures[2].sizebytes = hal->memspace[GSL_HAL_MEM3].sizebytes;
+
+ status = GSL_SUCCESS;
+ }
+
+ return status;
+}
+
+/* ---------------------------------------------------------------------------- */
+
+KGSLHAL_API int
+kgsl_hal_getdevconfig(gsl_deviceid_t device_id, gsl_devconfig_t *config)
+{
+ int status = GSL_FAILURE_DEVICEERROR;
+ gsl_hal_t *hal = (gsl_hal_t *) gsl_driver.hal;
+
+ kos_memset(config, 0, sizeof(gsl_devconfig_t));
+
+ if (hal) {
+ switch (device_id) {
+ case GSL_DEVICE_YAMATO:
+ {
+ if (hal->has_z430) {
+ mh_mmu_config_u mmu_config = {0};
+
+ config->gmemspace.gpu_base = 0;
+ config->gmemspace.mmio_virt_base = 0;
+ config->gmemspace.mmio_phys_base = 0;
+ if (gmem_size) {
+ config->gmemspace.sizebytes = gmem_size;
+ } else {
+ config->gmemspace.sizebytes = 0;
+ }
+
+ config->regspace.gpu_base = 0;
+ config->regspace.mmio_virt_base = (unsigned char *)hal->z430_regspace.mmio_virt_base;
+ config->regspace.mmio_phys_base = (unsigned int) hal->z430_regspace.mmio_phys_base;
+ config->regspace.sizebytes = GSL_HAL_SIZE_REG_YDX;
+
+ mmu_config.f.mmu_enable = 1;
+
+ if (gsl_driver.enable_mmu) {
+ mmu_config.f.split_mode_enable = 0;
+ mmu_config.f.rb_w_clnt_behavior = 1;
+ mmu_config.f.cp_w_clnt_behavior = 1;
+ mmu_config.f.cp_r0_clnt_behavior = 1;
+ mmu_config.f.cp_r1_clnt_behavior = 1;
+ mmu_config.f.cp_r2_clnt_behavior = 1;
+ mmu_config.f.cp_r3_clnt_behavior = 1;
+ mmu_config.f.cp_r4_clnt_behavior = 1;
+ mmu_config.f.vgt_r0_clnt_behavior = 1;
+ mmu_config.f.vgt_r1_clnt_behavior = 1;
+ mmu_config.f.tc_r_clnt_behavior = 1;
+ mmu_config.f.pa_w_clnt_behavior = 1;
+ }
+
+ config->mmu_config = mmu_config.val;
+
+ if (gsl_driver.enable_mmu) {
+ config->va_base = hal->memspace[GSL_HAL_MEM1].gpu_base;
+ config->va_range = hal->memspace[GSL_HAL_MEM1].sizebytes;
+ } else {
+ config->va_base = 0x00000000;
+ config->va_range = 0x00000000;
+ }
+
+ /* turn off memory protection unit by setting acceptable physical address range to include all pages */
+ config->mpu_base = 0x00000000; /* hal->memchunk.mmio_virt_base; */
+ config->mpu_range = 0xFFFFF000; /* hal->memchunk.sizebytes; */
+ status = GSL_SUCCESS;
+ }
+ break;
+ }
+
+ case GSL_DEVICE_G12:
+ {
+ mh_mmu_config_u mmu_config = {0};
+
+ config->regspace.gpu_base = 0;
+ config->regspace.mmio_virt_base = (unsigned char *)hal->z160_regspace.mmio_virt_base;
+ config->regspace.mmio_phys_base = (unsigned int) hal->z160_regspace.mmio_phys_base;
+ config->regspace.sizebytes = GSL_HAL_SIZE_REG_G12;
+
+ mmu_config.f.mmu_enable = 1;
+
+ if (gsl_driver.enable_mmu) {
+ config->mmu_config = 0x00555551;
+ config->va_base = hal->memspace[GSL_HAL_MEM1].gpu_base;
+ config->va_range = hal->memspace[GSL_HAL_MEM1].sizebytes;
+ } else {
+ config->mmu_config = mmu_config.val;
+ config->va_base = 0x00000000;
+ config->va_range = 0x00000000;
+ }
+
+ config->mpu_base = 0x00000000; /* (unsigned int) hal->memchunk.mmio_virt_base; */
+ config->mpu_range = 0xFFFFF000; /* hal->memchunk.sizebytes; */
+
+ status = GSL_SUCCESS;
+ break;
+ }
+
+ default:
+ break;
+ }
+ }
+
+ return status;
+}
+
+/*----------------------------------------------------------------------------
+ * kgsl_hal_getchipid
+ *
+ * The proper platform method, build from RBBM_PERIPHIDx and RBBM_PATCH_RELEASE
+ *----------------------------------------------------------------------------
+ */
+KGSLHAL_API gsl_chipid_t
+kgsl_hal_getchipid(gsl_deviceid_t device_id)
+{
+ gsl_hal_t *hal = (gsl_hal_t *) gsl_driver.hal;
+ gsl_device_t *device = &gsl_driver.device[device_id-1];
+ gsl_chipid_t chipid = 0;
+ unsigned int coreid, majorid, minorid, patchid, revid;
+
+ if (hal->has_z430 && (device_id == GSL_DEVICE_YAMATO)) {
+ device->ftbl.device_regread(device, mmRBBM_PERIPHID1, &coreid);
+ coreid &= 0xF;
+
+ device->ftbl.device_regread(device, mmRBBM_PERIPHID2, &majorid);
+ majorid = (majorid >> 4) & 0xF;
+
+ device->ftbl.device_regread(device, mmRBBM_PATCH_RELEASE, &revid);
+
+ minorid = ((revid >> 0) & 0xFF); /* this is a 16bit field, but extremely unlikely it would ever get this high */
+
+ patchid = ((revid >> 16) & 0xFF);
+
+ chipid = ((coreid << 24) | (majorid << 16) | (minorid << 8) | (patchid << 0));
+ }
+
+ return chipid;
+}
+
+/* --------------------------------------------------------------------------- */
+
+KGSLHAL_API int
+kgsl_hal_setpowerstate(gsl_deviceid_t device_id, int state, unsigned int value)
+{
+ gsl_device_t *device = &gsl_driver.device[device_id-1];
+ struct clk *gpu_clk = NULL;
+ struct clk *garb_clk = NULL;
+ struct clk *emi_garb_clk = NULL;
+
+ /* unreferenced formal parameters */
+ (void) value;
+
+ switch (device_id) {
+ case GSL_DEVICE_G12:
+ gpu_clk = clk_get(0, "gpu2d_clk");
+ break;
+ case GSL_DEVICE_YAMATO:
+ gpu_clk = clk_get(0, "gpu3d_clk");
+ garb_clk = clk_get(0, "garb_clk");
+ emi_garb_clk = clk_get(0, "emi_garb_clk");
+ break;
+ default:
+ return GSL_FAILURE_DEVICEERROR;
+ }
+
+ if (!gpu_clk) {
+ return GSL_FAILURE_DEVICEERROR;
+ }
+
+ switch (state) {
+ case GSL_PWRFLAGS_CLK_ON:
+ break;
+ case GSL_PWRFLAGS_POWER_ON:
+ clk_enable(gpu_clk);
+ if (garb_clk) {
+ clk_enable(garb_clk);
+ }
+ if (emi_garb_clk) {
+ clk_enable(emi_garb_clk);
+ }
+ kgsl_device_autogate_init(&gsl_driver.device[device_id-1]);
+ break;
+ case GSL_PWRFLAGS_CLK_OFF:
+ break;
+ case GSL_PWRFLAGS_POWER_OFF:
+ if (device->ftbl.device_idle(device, GSL_TIMEOUT_DEFAULT) != GSL_SUCCESS) {
+ return GSL_FAILURE_DEVICEERROR;
+ }
+ kgsl_device_autogate_exit(&gsl_driver.device[device_id-1]);
+ clk_disable(gpu_clk);
+ if (garb_clk) {
+ clk_disable(garb_clk);
+ }
+ if (emi_garb_clk) {
+ clk_disable(emi_garb_clk);
+ }
+ break;
+ default:
+ break;
+ }
+
+ return GSL_SUCCESS;
+}
+
+KGSLHAL_API int kgsl_clock(gsl_deviceid_t dev, int enable)
+{
+ struct clk *gpu_clk = NULL;
+ struct clk *garb_clk = NULL;
+ struct clk *emi_garb_clk = NULL;
+
+ switch (dev) {
+ case GSL_DEVICE_G12:
+ gpu_clk = clk_get(0, "gpu2d_clk");
+ break;
+ case GSL_DEVICE_YAMATO:
+ gpu_clk = clk_get(0, "gpu3d_clk");
+ garb_clk = clk_get(0, "garb_clk");
+ emi_garb_clk = clk_get(0, "emi_garb_clk");
+ break;
+ default:
+ printk(KERN_ERR "GPU device %d is invalid!\n", dev);
+ return GSL_FAILURE_DEVICEERROR;
+ }
+
+ if (IS_ERR(gpu_clk)) {
+ printk(KERN_ERR "%s: GPU clock get failed!\n", __func__);
+ return GSL_FAILURE_DEVICEERROR;
+ }
+
+ if (enable) {
+ clk_enable(gpu_clk);
+ if (garb_clk) {
+ clk_enable(garb_clk);
+ }
+ if (emi_garb_clk) {
+ clk_enable(emi_garb_clk);
+ }
+ } else {
+ clk_disable(gpu_clk);
+ if (garb_clk) {
+ clk_disable(garb_clk);
+ }
+ if (emi_garb_clk) {
+ clk_disable(emi_garb_clk);
+ }
+ }
+
+ return GSL_SUCCESS;
+}
diff --git a/drivers/mxc/amd-gpu/platform/hal/linux/gsl_hwaccess.h b/drivers/mxc/amd-gpu/platform/hal/linux/gsl_hwaccess.h
new file mode 100644
index 000000000000..305b2ee9066d
--- /dev/null
+++ b/drivers/mxc/amd-gpu/platform/hal/linux/gsl_hwaccess.h
@@ -0,0 +1,142 @@
+/* Copyright (c) 2008-2010, Advanced Micro Devices. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Advanced Micro Devices nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef __GSL_HWACCESS_LINUX_H
+#define __GSL_HWACCESS_LINUX_H
+
+#ifdef _LINUX
+#include "gsl_linux_map.h"
+#endif
+
+#include <linux/io.h>
+#include <asm/system.h>
+#include <asm/uaccess.h>
+
+OSINLINE void
+kgsl_hwaccess_memread(void *dst, unsigned int gpubase, unsigned int gpuoffset, unsigned int sizebytes, unsigned int touserspace)
+{
+ if (gsl_driver.enable_mmu && (gpubase >= GSL_LINUX_MAP_RANGE_START) && (gpubase < GSL_LINUX_MAP_RANGE_END)) {
+ gsl_linux_map_read(dst, gpubase+gpuoffset, sizebytes, touserspace);
+ } else {
+ mb();
+ dsb();
+ if (touserspace)
+ {
+ if (copy_to_user(dst, (void *)(gpubase + gpuoffset), sizebytes))
+ {
+ return;
+ }
+ }
+ else
+ {
+ kos_memcpy(dst, (void *) (gpubase + gpuoffset), sizebytes);
+ }
+ mb();
+ dsb();
+ }
+}
+
+//----------------------------------------------------------------------------
+
+OSINLINE void
+kgsl_hwaccess_memwrite(unsigned int gpubase, unsigned int gpuoffset, void *src, unsigned int sizebytes, unsigned int fromuserspace)
+{
+ if (gsl_driver.enable_mmu && (gpubase >= GSL_LINUX_MAP_RANGE_START) && (gpubase < GSL_LINUX_MAP_RANGE_END)) {
+ gsl_linux_map_write(src, gpubase+gpuoffset, sizebytes, fromuserspace);
+ } else {
+ mb();
+ dsb();
+ if (fromuserspace)
+ {
+ if (copy_from_user((void *)(gpubase + gpuoffset), src, sizebytes))
+ {
+ return;
+ }
+ }
+ else
+ {
+ kos_memcpy((void *)(gpubase + gpuoffset), src, sizebytes);
+ }
+ mb();
+ dsb();
+ }
+}
+
+//----------------------------------------------------------------------------
+
+OSINLINE void
+kgsl_hwaccess_memset(unsigned int gpubase, unsigned int gpuoffset, unsigned int value, unsigned int sizebytes)
+{
+ if (gsl_driver.enable_mmu && (gpubase >= GSL_LINUX_MAP_RANGE_START) && (gpubase < GSL_LINUX_MAP_RANGE_END)) {
+ gsl_linux_map_set(gpuoffset+gpubase, value, sizebytes);
+ } else {
+ mb();
+ dsb();
+ kos_memset((void *)(gpubase + gpuoffset), value, sizebytes);
+ mb();
+ dsb();
+ }
+}
+
+//----------------------------------------------------------------------------
+
+OSINLINE void
+kgsl_hwaccess_regread(gsl_deviceid_t device_id, unsigned int gpubase, unsigned int offsetwords, unsigned int *data)
+{
+ unsigned int *reg;
+
+ // unreferenced formal parameter
+ (void) device_id;
+
+ reg = (unsigned int *)(gpubase + (offsetwords << 2));
+
+ mb();
+ dsb();
+ *data = __raw_readl(reg);
+ mb();
+ dsb();
+}
+
+//----------------------------------------------------------------------------
+
+OSINLINE void
+kgsl_hwaccess_regwrite(gsl_deviceid_t device_id, unsigned int gpubase, unsigned int offsetwords, unsigned int data)
+{
+ unsigned int *reg;
+
+ // unreferenced formal parameter
+ (void) device_id;
+
+ reg = (unsigned int *)(gpubase + (offsetwords << 2));
+ mb();
+ dsb();
+ __raw_writel(data, reg);
+ mb();
+ dsb();
+}
+#endif // __GSL_HWACCESS_WINCE_MX51_H
diff --git a/drivers/mxc/amd-gpu/platform/hal/linux/gsl_kmod.c b/drivers/mxc/amd-gpu/platform/hal/linux/gsl_kmod.c
new file mode 100644
index 000000000000..6b8af4bd2e1b
--- /dev/null
+++ b/drivers/mxc/amd-gpu/platform/hal/linux/gsl_kmod.c
@@ -0,0 +1,976 @@
+/* Copyright (c) 2008-2010, Advanced Micro Devices. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 and
+ * only version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that 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.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
+ *
+ */
+
+#include "gsl_types.h"
+#include "gsl.h"
+#include "gsl_buildconfig.h"
+#include "gsl_halconfig.h"
+#include "gsl_ioctl.h"
+#include "gsl_kmod_cleanup.h"
+#include "gsl_linux_map.h"
+
+#include <linux/version.h>
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/init.h>
+#include <linux/fs.h>
+#include <linux/device.h>
+#include <linux/interrupt.h>
+#include <asm/uaccess.h>
+#include <linux/mm.h>
+#include <linux/mutex.h>
+#include <linux/cdev.h>
+
+#include <linux/platform_device.h>
+#include <linux/vmalloc.h>
+
+int gpu_2d_irq, gpu_3d_irq;
+
+phys_addr_t gpu_2d_regbase;
+int gpu_2d_regsize;
+phys_addr_t gpu_3d_regbase;
+int gpu_3d_regsize;
+int gmem_size;
+phys_addr_t gpu_reserved_mem;
+int gpu_reserved_mem_size;
+int z160_version;
+
+static ssize_t gsl_kmod_read(struct file *fd, char __user *buf, size_t len, loff_t *ptr);
+static ssize_t gsl_kmod_write(struct file *fd, const char __user *buf, size_t len, loff_t *ptr);
+static int gsl_kmod_ioctl(struct inode *inode, struct file *fd, unsigned int cmd, unsigned long arg);
+static int gsl_kmod_mmap(struct file *fd, struct vm_area_struct *vma);
+static int gsl_kmod_fault(struct vm_area_struct *vma, struct vm_fault *vmf);
+static int gsl_kmod_open(struct inode *inode, struct file *fd);
+static int gsl_kmod_release(struct inode *inode, struct file *fd);
+static irqreturn_t z160_irq_handler(int irq, void *dev_id);
+static irqreturn_t z430_irq_handler(int irq, void *dev_id);
+
+static int gsl_kmod_major;
+static struct class *gsl_kmod_class;
+DEFINE_MUTEX(gsl_mutex);
+
+static const struct file_operations gsl_kmod_fops =
+{
+ .owner = THIS_MODULE,
+ .read = gsl_kmod_read,
+ .write = gsl_kmod_write,
+ .ioctl = gsl_kmod_ioctl,
+ .mmap = gsl_kmod_mmap,
+ .open = gsl_kmod_open,
+ .release = gsl_kmod_release
+};
+
+static struct vm_operations_struct gsl_kmod_vmops =
+{
+ .fault = gsl_kmod_fault,
+};
+
+static ssize_t gsl_kmod_read(struct file *fd, char __user *buf, size_t len, loff_t *ptr)
+{
+ return 0;
+}
+
+static ssize_t gsl_kmod_write(struct file *fd, const char __user *buf, size_t len, loff_t *ptr)
+{
+ return 0;
+}
+
+static int gsl_kmod_ioctl(struct inode *inode, struct file *fd, unsigned int cmd, unsigned long arg)
+{
+ int kgslStatus = GSL_FAILURE;
+
+ switch (cmd) {
+ case IOCTL_KGSL_DEVICE_START:
+ {
+ kgsl_device_start_t param;
+ if (copy_from_user(&param, (void __user *)arg, sizeof(kgsl_device_start_t)))
+ {
+ printk(KERN_ERR "%s: copy_from_user error\n", __func__);
+ kgslStatus = GSL_FAILURE;
+ break;
+ }
+ kgslStatus = kgsl_device_start(param.device_id, param.flags);
+ break;
+ }
+ case IOCTL_KGSL_DEVICE_STOP:
+ {
+ kgsl_device_stop_t param;
+ if (copy_from_user(&param, (void __user *)arg, sizeof(kgsl_device_stop_t)))
+ {
+ printk(KERN_ERR "%s: copy_from_user error\n", __func__);
+ kgslStatus = GSL_FAILURE;
+ break;
+ }
+ kgslStatus = kgsl_device_stop(param.device_id);
+ break;
+ }
+ case IOCTL_KGSL_DEVICE_IDLE:
+ {
+ kgsl_device_idle_t param;
+ if (copy_from_user(&param, (void __user *)arg, sizeof(kgsl_device_idle_t)))
+ {
+ printk(KERN_ERR "%s: copy_from_user error\n", __func__);
+ kgslStatus = GSL_FAILURE;
+ break;
+ }
+ kgslStatus = kgsl_device_idle(param.device_id, param.timeout);
+ break;
+ }
+ case IOCTL_KGSL_DEVICE_ISIDLE:
+ {
+ kgsl_device_isidle_t param;
+ if (copy_from_user(&param, (void __user *)arg, sizeof(kgsl_device_isidle_t)))
+ {
+ printk(KERN_ERR "%s: copy_from_user error\n", __func__);
+ kgslStatus = GSL_FAILURE;
+ break;
+ }
+ kgslStatus = kgsl_device_isidle(param.device_id);
+ break;
+ }
+ case IOCTL_KGSL_DEVICE_GETPROPERTY:
+ {
+ kgsl_device_getproperty_t param;
+ void *tmp;
+ if (copy_from_user(&param, (void __user *)arg, sizeof(kgsl_device_getproperty_t)))
+ {
+ printk(KERN_ERR "%s: copy_from_user error\n", __func__);
+ kgslStatus = GSL_FAILURE;
+ break;
+ }
+ tmp = kmalloc(param.sizebytes, GFP_KERNEL);
+ if (!tmp)
+ {
+ printk(KERN_ERR "%s:kmalloc error\n", __func__);
+ kgslStatus = GSL_FAILURE;
+ break;
+ }
+ kgslStatus = kgsl_device_getproperty(param.device_id, param.type, tmp, param.sizebytes);
+ if (kgslStatus == GSL_SUCCESS)
+ {
+ if (copy_to_user(param.value, tmp, param.sizebytes))
+ {
+ printk(KERN_ERR "%s: copy_to_user error\n", __func__);
+ kgslStatus = GSL_FAILURE;
+ kfree(tmp);
+ break;
+ }
+ }
+ else
+ {
+ printk(KERN_ERR "%s: kgsl_device_getproperty error\n", __func__);
+ }
+ kfree(tmp);
+ break;
+ }
+ case IOCTL_KGSL_DEVICE_SETPROPERTY:
+ {
+ kgsl_device_setproperty_t param;
+ if (copy_from_user(&param, (void __user *)arg, sizeof(kgsl_device_setproperty_t)))
+ {
+ printk(KERN_ERR "%s: copy_from_user error\n", __func__);
+ kgslStatus = GSL_FAILURE;
+ break;
+ }
+ kgslStatus = kgsl_device_setproperty(param.device_id, param.type, param.value, param.sizebytes);
+ if (kgslStatus != GSL_SUCCESS)
+ {
+ printk(KERN_ERR "%s: kgsl_device_setproperty error\n", __func__);
+ }
+ break;
+ }
+ case IOCTL_KGSL_DEVICE_REGREAD:
+ {
+ kgsl_device_regread_t param;
+ unsigned int tmp;
+ if (copy_from_user(&param, (void __user *)arg, sizeof(kgsl_device_regread_t)))
+ {
+ printk(KERN_ERR "%s: copy_from_user error\n", __func__);
+ kgslStatus = GSL_FAILURE;
+ break;
+ }
+ kgslStatus = kgsl_device_regread(param.device_id, param.offsetwords, &tmp);
+ if (kgslStatus == GSL_SUCCESS)
+ {
+ if (copy_to_user(param.value, &tmp, sizeof(unsigned int)))
+ {
+ printk(KERN_ERR "%s: copy_to_user error\n", __func__);
+ kgslStatus = GSL_FAILURE;
+ break;
+ }
+ }
+ break;
+ }
+ case IOCTL_KGSL_DEVICE_REGWRITE:
+ {
+ kgsl_device_regwrite_t param;
+ if (copy_from_user(&param, (void __user *)arg, sizeof(kgsl_device_regwrite_t)))
+ {
+ printk(KERN_ERR "%s: copy_from_user error\n", __func__);
+ kgslStatus = GSL_FAILURE;
+ break;
+ }
+ kgslStatus = kgsl_device_regwrite(param.device_id, param.offsetwords, param.value);
+ break;
+ }
+ case IOCTL_KGSL_DEVICE_WAITIRQ:
+ {
+ kgsl_device_waitirq_t param;
+ unsigned int count;
+
+ printk(KERN_ERR "IOCTL_KGSL_DEVICE_WAITIRQ obsoleted!\n");
+// kgslStatus = -ENOTTY; break;
+
+ if (copy_from_user(&param, (void __user *)arg, sizeof(kgsl_device_waitirq_t)))
+ {
+ printk(KERN_ERR "%s: copy_from_user error\n", __func__);
+ kgslStatus = GSL_FAILURE;
+ break;
+ }
+ kgslStatus = kgsl_device_waitirq(param.device_id, param.intr_id, &count, param.timeout);
+ if (kgslStatus == GSL_SUCCESS)
+ {
+ if (copy_to_user(param.count, &count, sizeof(unsigned int)))
+ {
+ printk(KERN_ERR "%s: copy_to_user error\n", __func__);
+ kgslStatus = GSL_FAILURE;
+ break;
+ }
+ }
+ break;
+ }
+ case IOCTL_KGSL_CMDSTREAM_ISSUEIBCMDS:
+ {
+ kgsl_cmdstream_issueibcmds_t param;
+ gsl_timestamp_t tmp;
+ if (copy_from_user(&param, (void __user *)arg, sizeof(kgsl_cmdstream_issueibcmds_t)))
+ {
+ printk(KERN_ERR "%s: copy_from_user error\n", __func__);
+ kgslStatus = GSL_FAILURE;
+ break;
+ }
+ kgslStatus = kgsl_cmdstream_issueibcmds(param.device_id, param.drawctxt_index, param.ibaddr, param.sizedwords, &tmp, param.flags);
+ if (kgslStatus == GSL_SUCCESS)
+ {
+ if (copy_to_user(param.timestamp, &tmp, sizeof(gsl_timestamp_t)))
+ {
+ printk(KERN_ERR "%s: copy_to_user error\n", __func__);
+ kgslStatus = GSL_FAILURE;
+ break;
+ }
+ }
+ break;
+ }
+ case IOCTL_KGSL_CMDSTREAM_READTIMESTAMP:
+ {
+ kgsl_cmdstream_readtimestamp_t param;
+ gsl_timestamp_t tmp;
+ if (copy_from_user(&param, (void __user *)arg, sizeof(kgsl_cmdstream_readtimestamp_t)))
+ {
+ printk(KERN_ERR "%s: copy_from_user error\n", __func__);
+ kgslStatus = GSL_FAILURE;
+ break;
+ }
+ tmp = kgsl_cmdstream_readtimestamp(param.device_id, param.type);
+ if (copy_to_user(param.timestamp, &tmp, sizeof(gsl_timestamp_t)))
+ {
+ printk(KERN_ERR "%s: copy_to_user error\n", __func__);
+ kgslStatus = GSL_FAILURE;
+ break;
+ }
+ kgslStatus = GSL_SUCCESS;
+ break;
+ }
+ case IOCTL_KGSL_CMDSTREAM_FREEMEMONTIMESTAMP:
+ {
+ int err;
+ kgsl_cmdstream_freememontimestamp_t param;
+ if (copy_from_user(&param, (void __user *)arg, sizeof(kgsl_cmdstream_freememontimestamp_t)))
+ {
+ printk(KERN_ERR "%s: copy_from_user error\n", __func__);
+ kgslStatus = GSL_FAILURE;
+ break;
+ }
+ err = del_memblock_from_allocated_list(fd, param.memdesc);
+ if(err)
+ {
+ /* tried to remove a block of memory that is not allocated!
+ * NOTE that -EINVAL is Linux kernel's error codes!
+ * the drivers error codes COULD mix up with kernel's. */
+ kgslStatus = -EINVAL;
+ }
+ else
+ {
+ kgslStatus = kgsl_cmdstream_freememontimestamp(param.device_id,
+ param.memdesc,
+ param.timestamp,
+ param.type);
+ }
+ break;
+ }
+ case IOCTL_KGSL_CMDSTREAM_WAITTIMESTAMP:
+ {
+ kgsl_cmdstream_waittimestamp_t param;
+ if (copy_from_user(&param, (void __user *)arg, sizeof(kgsl_cmdstream_waittimestamp_t)))
+ {
+ printk(KERN_ERR "%s: copy_from_user error\n", __func__);
+ kgslStatus = GSL_FAILURE;
+ break;
+ }
+ kgslStatus = kgsl_cmdstream_waittimestamp(param.device_id, param.timestamp, param.timeout);
+ break;
+ }
+ case IOCTL_KGSL_CMDWINDOW_WRITE:
+ {
+ kgsl_cmdwindow_write_t param;
+ if (copy_from_user(&param, (void __user *)arg, sizeof(kgsl_cmdwindow_write_t)))
+ {
+ printk(KERN_ERR "%s: copy_from_user error\n", __func__);
+ kgslStatus = GSL_FAILURE;
+ break;
+ }
+ kgslStatus = kgsl_cmdwindow_write(param.device_id, param.target, param.addr, param.data);
+ break;
+ }
+ case IOCTL_KGSL_CONTEXT_CREATE:
+ {
+ kgsl_context_create_t param;
+ unsigned int tmp;
+ int tmpStatus;
+
+ if (copy_from_user(&param, (void __user *)arg, sizeof(kgsl_context_create_t)))
+ {
+ printk(KERN_ERR "%s: copy_from_user error\n", __func__);
+ kgslStatus = GSL_FAILURE;
+ break;
+ }
+ kgslStatus = kgsl_context_create(param.device_id, param.type, &tmp, param.flags);
+ if (kgslStatus == GSL_SUCCESS)
+ {
+ if (copy_to_user(param.drawctxt_id, &tmp, sizeof(unsigned int)))
+ {
+ tmpStatus = kgsl_context_destroy(param.device_id, tmp);
+ /* is asserting ok? Basicly we should return the error from copy_to_user
+ * but will the user space interpret it correctly? Will the user space
+ * always check against GSL_SUCCESS or GSL_FAILURE as they are not the only
+ * return values.
+ */
+ KOS_ASSERT(tmpStatus == GSL_SUCCESS);
+ printk(KERN_ERR "%s: copy_to_user error\n", __func__);
+ kgslStatus = GSL_FAILURE;
+ break;
+ }
+ else
+ {
+ add_device_context_to_array(fd, param.device_id, tmp);
+ }
+ }
+ break;
+ }
+ case IOCTL_KGSL_CONTEXT_DESTROY:
+ {
+ kgsl_context_destroy_t param;
+ if (copy_from_user(&param, (void __user *)arg, sizeof(kgsl_context_destroy_t)))
+ {
+ printk(KERN_ERR "%s: copy_from_user error\n", __func__);
+ kgslStatus = GSL_FAILURE;
+ break;
+ }
+ kgslStatus = kgsl_context_destroy(param.device_id, param.drawctxt_id);
+ del_device_context_from_array(fd, param.device_id, param.drawctxt_id);
+ break;
+ }
+ case IOCTL_KGSL_DRAWCTXT_BIND_GMEM_SHADOW:
+ {
+ kgsl_drawctxt_bind_gmem_shadow_t param;
+ if (copy_from_user(&param, (void __user *)arg, sizeof(kgsl_drawctxt_bind_gmem_shadow_t)))
+ {
+ printk(KERN_ERR "%s: copy_from_user error\n", __func__);
+ kgslStatus = GSL_FAILURE;
+ break;
+ }
+ kgslStatus = kgsl_drawctxt_bind_gmem_shadow(param.device_id, param.drawctxt_id, param.gmem_rect, param.shadow_x, param.shadow_y, param.shadow_buffer, param.buffer_id);
+ break;
+ }
+ case IOCTL_KGSL_SHAREDMEM_ALLOC:
+ {
+ kgsl_sharedmem_alloc_t param;
+ gsl_memdesc_t tmp;
+ int tmpStatus;
+ if (copy_from_user(&param, (void __user *)arg, sizeof(kgsl_sharedmem_alloc_t)))
+ {
+ printk(KERN_ERR "%s: copy_from_user error\n", __func__);
+ kgslStatus = GSL_FAILURE;
+ break;
+ }
+ kgslStatus = kgsl_sharedmem_alloc(param.device_id, param.flags, param.sizebytes, &tmp);
+ if (kgslStatus == GSL_SUCCESS)
+ {
+ if (copy_to_user(param.memdesc, &tmp, sizeof(gsl_memdesc_t)))
+ {
+ tmpStatus = kgsl_sharedmem_free(&tmp);
+ KOS_ASSERT(tmpStatus == GSL_SUCCESS);
+ printk(KERN_ERR "%s: copy_to_user error\n", __func__);
+ kgslStatus = GSL_FAILURE;
+ break;
+ }
+ else
+ {
+ add_memblock_to_allocated_list(fd, &tmp);
+ }
+ }
+ break;
+ }
+ case IOCTL_KGSL_SHAREDMEM_FREE:
+ {
+ kgsl_sharedmem_free_t param;
+ gsl_memdesc_t tmp;
+ int err;
+ if (copy_from_user(&param, (void __user *)arg, sizeof(kgsl_sharedmem_free_t)))
+ {
+ printk(KERN_ERR "%s: copy_from_user error\n", __func__);
+ kgslStatus = GSL_FAILURE;
+ break;
+ }
+ if (copy_from_user(&tmp, (void __user *)param.memdesc, sizeof(gsl_memdesc_t)))
+ {
+ printk(KERN_ERR "%s: copy_from_user error\n", __func__);
+ kgslStatus = GSL_FAILURE;
+ break;
+ }
+ err = del_memblock_from_allocated_list(fd, &tmp);
+ if(err)
+ {
+ printk(KERN_ERR "%s: tried to free memdesc that was not allocated!\n", __func__);
+ kgslStatus = err;
+ break;
+ }
+ kgslStatus = kgsl_sharedmem_free(&tmp);
+ if (kgslStatus == GSL_SUCCESS)
+ {
+ if (copy_to_user(param.memdesc, &tmp, sizeof(gsl_memdesc_t)))
+ {
+ printk(KERN_ERR "%s: copy_to_user error\n", __func__);
+ kgslStatus = GSL_FAILURE;
+ break;
+ }
+ }
+ break;
+ }
+ case IOCTL_KGSL_SHAREDMEM_READ:
+ {
+ kgsl_sharedmem_read_t param;
+ gsl_memdesc_t memdesc;
+ if (copy_from_user(&param, (void __user *)arg, sizeof(kgsl_sharedmem_read_t)))
+ {
+ printk(KERN_ERR "%s: copy_from_user error\n", __func__);
+ kgslStatus = GSL_FAILURE;
+ break;
+ }
+ if (copy_from_user(&memdesc, (void __user *)param.memdesc, sizeof(gsl_memdesc_t)))
+ {
+ printk(KERN_ERR "%s: copy_from_user error\n", __func__);
+ kgslStatus = GSL_FAILURE;
+ break;
+ }
+ kgslStatus = kgsl_sharedmem_read(&memdesc, param.dst, param.offsetbytes, param.sizebytes, true);
+ if (kgslStatus != GSL_SUCCESS)
+ {
+ printk(KERN_ERR "%s: kgsl_sharedmem_read failed\n", __func__);
+ }
+ break;
+ }
+ case IOCTL_KGSL_SHAREDMEM_WRITE:
+ {
+ kgsl_sharedmem_write_t param;
+ gsl_memdesc_t memdesc;
+ if (copy_from_user(&param, (void __user *)arg, sizeof(kgsl_sharedmem_write_t)))
+ {
+ printk(KERN_ERR "%s: copy_from_user error\n", __func__);
+ kgslStatus = GSL_FAILURE;
+ break;
+ }
+ if (copy_from_user(&memdesc, (void __user *)param.memdesc, sizeof(gsl_memdesc_t)))
+ {
+ printk(KERN_ERR "%s: copy_from_user error\n", __func__);
+ kgslStatus = GSL_FAILURE;
+ break;
+ }
+ kgslStatus = kgsl_sharedmem_write(&memdesc, param.offsetbytes, param.src, param.sizebytes, true);
+ if (kgslStatus != GSL_SUCCESS)
+ {
+ printk(KERN_ERR "%s: kgsl_sharedmem_write failed\n", __func__);
+ }
+
+ break;
+ }
+ case IOCTL_KGSL_SHAREDMEM_SET:
+ {
+ kgsl_sharedmem_set_t param;
+ gsl_memdesc_t memdesc;
+ if (copy_from_user(&param, (void __user *)arg, sizeof(kgsl_sharedmem_set_t)))
+ {
+ printk(KERN_ERR "%s: copy_from_user error\n", __func__);
+ kgslStatus = GSL_FAILURE;
+ break;
+ }
+ if (copy_from_user(&memdesc, (void __user *)param.memdesc, sizeof(gsl_memdesc_t)))
+ {
+ printk(KERN_ERR "%s: copy_from_user error\n", __func__);
+ kgslStatus = GSL_FAILURE;
+ break;
+ }
+ kgslStatus = kgsl_sharedmem_set(&memdesc, param.offsetbytes, param.value, param.sizebytes);
+ break;
+ }
+ case IOCTL_KGSL_SHAREDMEM_LARGESTFREEBLOCK:
+ {
+ kgsl_sharedmem_largestfreeblock_t param;
+ unsigned int largestfreeblock;
+
+ if (copy_from_user(&param, (void __user *)arg, sizeof(kgsl_sharedmem_largestfreeblock_t)))
+ {
+ printk(KERN_ERR "%s: copy_from_user error\n", __func__);
+ kgslStatus = GSL_FAILURE;
+ break;
+ }
+ largestfreeblock = kgsl_sharedmem_largestfreeblock(param.device_id, param.flags);
+ if (copy_to_user(param.largestfreeblock, &largestfreeblock, sizeof(unsigned int)))
+ {
+ printk(KERN_ERR "%s: copy_to_user error\n", __func__);
+ kgslStatus = GSL_FAILURE;
+ break;
+ }
+ kgslStatus = GSL_SUCCESS;
+ break;
+ }
+ case IOCTL_KGSL_SHAREDMEM_CACHEOPERATION:
+ {
+ kgsl_sharedmem_cacheoperation_t param;
+ gsl_memdesc_t memdesc;
+ if (copy_from_user(&param, (void __user *)arg, sizeof(kgsl_sharedmem_cacheoperation_t)))
+ {
+ printk(KERN_ERR "%s: copy_from_user error\n", __func__);
+ kgslStatus = GSL_FAILURE;
+ break;
+ }
+ if (copy_from_user(&memdesc, (void __user *)param.memdesc, sizeof(gsl_memdesc_t)))
+ {
+ printk(KERN_ERR "%s: copy_from_user error\n", __func__);
+ kgslStatus = GSL_FAILURE;
+ break;
+ }
+ kgslStatus = kgsl_sharedmem_cacheoperation(&memdesc, param.offsetbytes, param.sizebytes, param.operation);
+ break;
+ }
+ case IOCTL_KGSL_SHAREDMEM_FROMHOSTPOINTER:
+ {
+ kgsl_sharedmem_fromhostpointer_t param;
+ gsl_memdesc_t memdesc;
+ if (copy_from_user(&param, (void __user *)arg, sizeof(kgsl_sharedmem_fromhostpointer_t)))
+ {
+ printk(KERN_ERR "%s: copy_from_user error\n", __func__);
+ kgslStatus = GSL_FAILURE;
+ break;
+ }
+ if (copy_from_user(&memdesc, (void __user *)param.memdesc, sizeof(gsl_memdesc_t)))
+ {
+ printk(KERN_ERR "%s: copy_from_user error\n", __func__);
+ kgslStatus = GSL_FAILURE;
+ break;
+ }
+ kgslStatus = kgsl_sharedmem_fromhostpointer(param.device_id, &memdesc, param.hostptr);
+ break;
+ }
+ case IOCTL_KGSL_ADD_TIMESTAMP:
+ {
+ kgsl_add_timestamp_t param;
+ gsl_timestamp_t tmp;
+ if (copy_from_user(&param, (void __user *)arg, sizeof(kgsl_add_timestamp_t)))
+ {
+ printk(KERN_ERR "%s: copy_from_user error\n", __func__);
+ kgslStatus = GSL_FAILURE;
+ break;
+ }
+ tmp = kgsl_add_timestamp(param.device_id, &tmp);
+ if (copy_to_user(param.timestamp, &tmp, sizeof(gsl_timestamp_t)))
+ {
+ printk(KERN_ERR "%s: copy_to_user error\n", __func__);
+ kgslStatus = GSL_FAILURE;
+ break;
+ }
+ kgslStatus = GSL_SUCCESS;
+ break;
+ }
+
+ case IOCTL_KGSL_DEVICE_CLOCK:
+ {
+ kgsl_device_clock_t param;
+ if (copy_from_user(&param, (void __user *)arg, sizeof(kgsl_device_clock_t)))
+ {
+ printk(KERN_ERR "%s: copy_from_user error\n", __func__);
+ kgslStatus = GSL_FAILURE;
+ break;
+ }
+ kgslStatus = kgsl_device_clock(param.device, param.enable);
+ break;
+ }
+ default:
+ kgslStatus = -ENOTTY;
+ break;
+ }
+
+ return kgslStatus;
+}
+
+static int gsl_kmod_mmap(struct file *fd, struct vm_area_struct *vma)
+{
+ int status = 0;
+ unsigned long start = vma->vm_start;
+ unsigned long pfn = vma->vm_pgoff;
+ unsigned long size = vma->vm_end - vma->vm_start;
+ unsigned long prot = pgprot_writecombine(vma->vm_page_prot);
+ unsigned long addr = vma->vm_pgoff << PAGE_SHIFT;
+ void *va = NULL;
+
+ if (gsl_driver.enable_mmu && (addr < GSL_LINUX_MAP_RANGE_END) && (addr >= GSL_LINUX_MAP_RANGE_START)) {
+ va = gsl_linux_map_find(addr);
+ while (size > 0) {
+ if (remap_pfn_range(vma, start, vmalloc_to_pfn(va), PAGE_SIZE, prot)) {
+ return -EAGAIN;
+ }
+ start += PAGE_SIZE;
+ va += PAGE_SIZE;
+ size -= PAGE_SIZE;
+ }
+ } else {
+ if (remap_pfn_range(vma, start, pfn, size, prot)) {
+ status = -EAGAIN;
+ }
+ }
+
+ vma->vm_ops = &gsl_kmod_vmops;
+
+ return status;
+}
+
+static int gsl_kmod_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
+{
+ return VM_FAULT_SIGBUS;
+}
+
+static int gsl_kmod_open(struct inode *inode, struct file *fd)
+{
+ gsl_flags_t flags = 0;
+ struct gsl_kmod_per_fd_data *datp;
+ int err = 0;
+
+ if(mutex_lock_interruptible(&gsl_mutex))
+ {
+ return -EINTR;
+ }
+
+ if (kgsl_driver_entry(flags) != GSL_SUCCESS)
+ {
+ printk(KERN_INFO "%s: kgsl_driver_entry error\n", __func__);
+ err = -EIO; // TODO: not sure why did it fail?
+ }
+ else
+ {
+ /* allocate per file descriptor data structure */
+ datp = (struct gsl_kmod_per_fd_data *)kzalloc(
+ sizeof(struct gsl_kmod_per_fd_data),
+ GFP_KERNEL);
+ if(datp)
+ {
+ init_created_contexts_array(datp->created_contexts_array[0]);
+ INIT_LIST_HEAD(&datp->allocated_blocks_head);
+
+ fd->private_data = (void *)datp;
+ }
+ else
+ {
+ err = -ENOMEM;
+ }
+ }
+
+ mutex_unlock(&gsl_mutex);
+
+ return err;
+}
+
+static int gsl_kmod_release(struct inode *inode, struct file *fd)
+{
+ struct gsl_kmod_per_fd_data *datp;
+ int err = 0;
+
+ if(mutex_lock_interruptible(&gsl_mutex))
+ {
+ return -EINTR;
+ }
+
+ /* make sure contexts are destroyed */
+ del_all_devices_contexts(fd);
+
+ if (kgsl_driver_exit() != GSL_SUCCESS)
+ {
+ printk(KERN_INFO "%s: kgsl_driver_exit error\n", __func__);
+ err = -EIO; // TODO: find better error code
+ }
+ else
+ {
+ /* release per file descriptor data structure */
+ datp = (struct gsl_kmod_per_fd_data *)fd->private_data;
+ del_all_memblocks_from_allocated_list(fd);
+ kfree(datp);
+ fd->private_data = 0;
+ }
+
+ mutex_unlock(&gsl_mutex);
+
+ return err;
+}
+
+static struct class *gsl_kmod_class;
+
+static irqreturn_t z160_irq_handler(int irq, void *dev_id)
+{
+ kgsl_intr_isr();
+ return IRQ_HANDLED;
+}
+
+static irqreturn_t z430_irq_handler(int irq, void *dev_id)
+{
+ kgsl_intr_isr();
+ return IRQ_HANDLED;
+}
+
+static int gpu_probe(struct platform_device *pdev)
+{
+ int i;
+ struct resource *res;
+ struct device *dev;
+
+ if (pdev->dev.platform_data)
+ z160_version = *((int *)(pdev->dev.platform_data));
+ else
+ z160_version = 0;
+
+ for(i = 0; i < 2; i++){
+ res = platform_get_resource(pdev, IORESOURCE_IRQ, i);
+ if (!res) {
+ if (i == 0) {
+ printk(KERN_ERR "gpu: unable to get gpu irq\n");
+ return -ENODEV;
+ } else {
+ break;
+ }
+ }
+ if(strcmp(res->name, "gpu_2d_irq") == 0){
+ gpu_2d_irq = res->start;
+ }else if(strcmp(res->name, "gpu_3d_irq") == 0){
+ gpu_3d_irq = res->start;
+ }
+ }
+
+ for(i = 0; i < 4; i++){
+ res = platform_get_resource(pdev, IORESOURCE_MEM, i);
+ if (!res) {
+ gpu_2d_regbase = 0;
+ gpu_2d_regsize = 0;
+ gpu_3d_regbase = 0;
+ gpu_2d_regsize = 0;
+ gmem_size = 0;
+ gpu_reserved_mem = 0;
+ gpu_reserved_mem_size = 0;
+ break;
+ }else{
+ if(strcmp(res->name, "gpu_2d_registers") == 0){
+ gpu_2d_regbase = res->start;
+ gpu_2d_regsize = res->end - res->start + 1;
+ }else if(strcmp(res->name, "gpu_3d_registers") == 0){
+ gpu_3d_regbase = res->start;
+ gpu_3d_regsize = res->end - res->start + 1;
+ }else if(strcmp(res->name, "gpu_graphics_mem") == 0){
+ gmem_size = res->end - res->start + 1;
+ }else if(strcmp(res->name, "gpu_reserved_mem") == 0){
+ gpu_reserved_mem = res->start;
+ gpu_reserved_mem_size = res->end - res->start + 1;
+ }
+ }
+ }
+
+ if (gpu_3d_irq > 0)
+ {
+ if (request_irq(gpu_3d_irq, z430_irq_handler, 0, "ydx", NULL) < 0) {
+ printk(KERN_ERR "%s: request_irq error\n", __func__);
+ gpu_3d_irq = 0;
+ goto request_irq_error;
+ }
+ }
+
+ if (gpu_2d_irq > 0)
+ {
+ if (request_irq(gpu_2d_irq, z160_irq_handler, 0, "g12", NULL) < 0) {
+ printk(KERN_ERR "DO NOT use uio_pdrv_genirq kernel module for X acceleration!\n");
+ gpu_2d_irq = 0;
+ }
+ }
+
+ if (kgsl_driver_init() != GSL_SUCCESS) {
+ printk(KERN_ERR "%s: kgsl_driver_init error\n", __func__);
+ goto kgsl_driver_init_error;
+ }
+
+ gsl_kmod_major = register_chrdev(0, "gsl_kmod", &gsl_kmod_fops);
+ gsl_kmod_vmops.fault = gsl_kmod_fault;
+
+ if (gsl_kmod_major <= 0)
+ {
+ pr_err("%s: register_chrdev error\n", __func__);
+ goto register_chrdev_error;
+ }
+
+ gsl_kmod_class = class_create(THIS_MODULE, "gsl_kmod");
+
+ if (IS_ERR(gsl_kmod_class))
+ {
+ pr_err("%s: class_create error\n", __func__);
+ goto class_create_error;
+ }
+
+ #if(LINUX_VERSION_CODE < KERNEL_VERSION(2,6,28))
+ dev = device_create(gsl_kmod_class, NULL, MKDEV(gsl_kmod_major, 0), "gsl_kmod");
+ #else
+ dev = device_create(gsl_kmod_class, NULL, MKDEV(gsl_kmod_major, 0), NULL,"gsl_kmod");
+ #endif
+
+ if (!IS_ERR(dev))
+ {
+ // gsl_kmod_data.device = dev;
+ return 0;
+ }
+
+ pr_err("%s: device_create error\n", __func__);
+
+class_create_error:
+ class_destroy(gsl_kmod_class);
+
+register_chrdev_error:
+ unregister_chrdev(gsl_kmod_major, "gsl_kmod");
+
+kgsl_driver_init_error:
+ kgsl_driver_close();
+ if (gpu_2d_irq > 0) {
+ free_irq(gpu_2d_irq, NULL);
+ }
+ if (gpu_3d_irq > 0) {
+ free_irq(gpu_3d_irq, NULL);
+ }
+request_irq_error:
+ return 0; // TODO: return proper error code
+}
+
+static int gpu_remove(struct platform_device *pdev)
+{
+ device_destroy(gsl_kmod_class, MKDEV(gsl_kmod_major, 0));
+ class_destroy(gsl_kmod_class);
+ unregister_chrdev(gsl_kmod_major, "gsl_kmod");
+
+ if (gpu_3d_irq)
+ {
+ free_irq(gpu_3d_irq, NULL);
+ }
+
+ if (gpu_2d_irq)
+ {
+ free_irq(gpu_2d_irq, NULL);
+ }
+
+ kgsl_driver_close();
+ return 0;
+}
+
+#ifdef CONFIG_PM
+static int gpu_suspend(struct platform_device *pdev, pm_message_t state)
+{
+ int i;
+ gsl_powerprop_t power;
+
+ power.flags = GSL_PWRFLAGS_POWER_OFF;
+ for (i = 0; i < GSL_DEVICE_MAX; i++)
+ {
+ kgsl_device_setproperty(
+ (gsl_deviceid_t) (i+1),
+ GSL_PROP_DEVICE_POWER,
+ &power,
+ sizeof(gsl_powerprop_t));
+ }
+
+ return 0;
+}
+
+static int gpu_resume(struct platform_device *pdev)
+{
+ int i;
+ gsl_powerprop_t power;
+
+ power.flags = GSL_PWRFLAGS_POWER_ON;
+ for (i = 0; i < GSL_DEVICE_MAX; i++)
+ {
+ kgsl_device_setproperty(
+ (gsl_deviceid_t) (i+1),
+ GSL_PROP_DEVICE_POWER,
+ &power,
+ sizeof(gsl_powerprop_t));
+ }
+
+ return 0;
+}
+#else
+#define gpu_suspend NULL
+#define gpu_resume NULL
+#endif /* !CONFIG_PM */
+
+/*! Driver definition
+ */
+static struct platform_driver gpu_driver = {
+ .driver = {
+ .name = "mxc_gpu",
+ },
+ .probe = gpu_probe,
+ .remove = gpu_remove,
+ .suspend = gpu_suspend,
+ .resume = gpu_resume,
+};
+
+static int __init gsl_kmod_init(void)
+{
+ return platform_driver_register(&gpu_driver);
+}
+
+static void __exit gsl_kmod_exit(void)
+{
+ platform_driver_unregister(&gpu_driver);
+}
+
+module_init(gsl_kmod_init);
+module_exit(gsl_kmod_exit);
+MODULE_AUTHOR("Advanced Micro Devices");
+MODULE_DESCRIPTION("AMD graphics core driver for i.MX");
+MODULE_LICENSE("GPL v2");
diff --git a/drivers/mxc/amd-gpu/platform/hal/linux/gsl_kmod_cleanup.c b/drivers/mxc/amd-gpu/platform/hal/linux/gsl_kmod_cleanup.c
new file mode 100644
index 000000000000..3685a5756baf
--- /dev/null
+++ b/drivers/mxc/amd-gpu/platform/hal/linux/gsl_kmod_cleanup.c
@@ -0,0 +1,269 @@
+/* Copyright (c) 2008-2010, Advanced Micro Devices. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 and
+ * only version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that 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.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
+ *
+ */
+
+#include "gsl.h"
+#include "gsl_kmod_cleanup.h"
+
+#include <linux/kernel.h>
+#include <linux/fs.h>
+
+/*
+ * Local helper functions to check and convert device/context id's (1 based)
+ * to index (0 based).
+ */
+static u32 device_id_to_device_index(gsl_deviceid_t device_id)
+{
+ KOS_ASSERT((GSL_DEVICE_ANY < device_id) &&
+ (device_id <= GSL_DEVICE_MAX));
+ return (u32)(device_id - 1);
+}
+
+/*
+ * Local helper function to check and get pointer to per file descriptor data
+ */
+static struct gsl_kmod_per_fd_data *get_fd_private_data(struct file *fd)
+{
+ struct gsl_kmod_per_fd_data *datp;
+
+ KOS_ASSERT(fd);
+ datp = (struct gsl_kmod_per_fd_data *)fd->private_data;
+ KOS_ASSERT(datp);
+ return datp;
+}
+
+static s8 *find_first_entry_with(s8 *subarray, s8 context_id)
+{
+ s8 *entry = NULL;
+ int i;
+
+//printk(KERN_DEBUG "At %s, ctx_id = %d\n", __func__, context_id);
+
+ KOS_ASSERT(context_id >= EMPTY_ENTRY);
+ KOS_ASSERT(context_id <= GSL_CONTEXT_MAX); // TODO: check the bound.
+
+ for(i = 0; i < GSL_CONTEXT_MAX; i++) // TODO: check the bound.
+ {
+ if(subarray[i] == (s8)context_id)
+ {
+ entry = &subarray[i];
+ break;
+ }
+ }
+
+ return entry;
+}
+
+
+/*
+ * Add a memdesc into a list of allocated memory blocks for this file
+ * descriptor. The list is build in such a way that it implements FIFO (i.e.
+ * list). Traces of tiger, tiger_ri and VG11 CTs should be analysed to make
+ * informed choice.
+ *
+ * NOTE! gsl_memdesc_ts are COPIED so user space should NOT change them.
+ */
+int add_memblock_to_allocated_list(struct file *fd,
+ gsl_memdesc_t *allocated_block)
+{
+ int err = 0;
+ struct gsl_kmod_per_fd_data *datp;
+ struct gsl_kmod_alloc_list *lisp;
+ struct list_head *head;
+
+ KOS_ASSERT(allocated_block);
+
+ datp = get_fd_private_data(fd);
+
+ head = &datp->allocated_blocks_head;
+ KOS_ASSERT(head);
+
+ /* allocate and put new entry in the list of allocated memory descriptors */
+ lisp = (struct gsl_kmod_alloc_list *)kzalloc(sizeof(struct gsl_kmod_alloc_list), GFP_KERNEL);
+ if(lisp)
+ {
+ INIT_LIST_HEAD(&lisp->node);
+
+ /* builds FIFO (list_add() would build LIFO) */
+ list_add_tail(&lisp->node, head);
+ memcpy(&lisp->allocated_block, allocated_block, sizeof(gsl_memdesc_t));
+ lisp->allocation_number = datp->maximum_number_of_blocks;
+// printk(KERN_DEBUG "List entry #%u allocated\n", lisp->allocation_number);
+
+ datp->maximum_number_of_blocks++;
+ datp->number_of_allocated_blocks++;
+
+ err = 0;
+ }
+ else
+ {
+ printk(KERN_ERR "%s: Could not allocate new list element\n", __func__);
+ err = -ENOMEM;
+ }
+
+ return err;
+}
+
+/* Delete a previously allocated memdesc from a list of allocated memory blocks */
+int del_memblock_from_allocated_list(struct file *fd,
+ gsl_memdesc_t *freed_block)
+{
+ struct gsl_kmod_per_fd_data *datp;
+ struct gsl_kmod_alloc_list *cursor, *next;
+ struct list_head *head;
+// int is_different;
+
+ KOS_ASSERT(freed_block);
+
+ datp = get_fd_private_data(fd);
+
+ head = &datp->allocated_blocks_head;
+ KOS_ASSERT(head);
+
+ KOS_ASSERT(datp->number_of_allocated_blocks > 0);
+
+ if(!list_empty(head))
+ {
+ list_for_each_entry_safe(cursor, next, head, node)
+ {
+ if(cursor->allocated_block.gpuaddr == freed_block->gpuaddr)
+ {
+// is_different = memcmp(&cursor->allocated_block, freed_block, sizeof(gsl_memdesc_t));
+// KOS_ASSERT(!is_different);
+
+ list_del(&cursor->node);
+// printk(KERN_DEBUG "List entry #%u freed\n", cursor->allocation_number);
+ kfree(cursor);
+ datp->number_of_allocated_blocks--;
+ return 0;
+ }
+ }
+ }
+ return -EINVAL; // tried to free entry not existing or from empty list.
+}
+
+/* Delete all previously allocated memdescs from a list */
+int del_all_memblocks_from_allocated_list(struct file *fd)
+{
+ struct gsl_kmod_per_fd_data *datp;
+ struct gsl_kmod_alloc_list *cursor, *next;
+ struct list_head *head;
+
+ datp = get_fd_private_data(fd);
+
+ head = &datp->allocated_blocks_head;
+ KOS_ASSERT(head);
+
+ if(!list_empty(head))
+ {
+ printk(KERN_INFO "Not all allocated memory blocks were freed. Doing it now.\n");
+ list_for_each_entry_safe(cursor, next, head, node)
+ {
+ printk(KERN_INFO "Freeing list entry #%u, gpuaddr=%x\n", (u32)cursor->allocation_number, cursor->allocated_block.gpuaddr);
+ kgsl_sharedmem_free(&cursor->allocated_block);
+ list_del(&cursor->node);
+ kfree(cursor);
+ }
+ }
+
+ KOS_ASSERT(list_empty(head));
+ datp->number_of_allocated_blocks = 0;
+
+ return 0;
+}
+
+void init_created_contexts_array(s8 *array)
+{
+ memset((void*)array, EMPTY_ENTRY, GSL_DEVICE_MAX * GSL_CONTEXT_MAX);
+}
+
+
+void add_device_context_to_array(struct file *fd,
+ gsl_deviceid_t device_id,
+ unsigned int context_id)
+{
+ struct gsl_kmod_per_fd_data *datp;
+ s8 *entry;
+ s8 *subarray;
+ u32 device_index = device_id_to_device_index(device_id);
+
+ datp = get_fd_private_data(fd);
+
+ subarray = datp->created_contexts_array[device_index];
+ entry = find_first_entry_with(subarray, EMPTY_ENTRY);
+
+ KOS_ASSERT(entry);
+ KOS_ASSERT((datp->created_contexts_array[device_index] <= entry) &&
+ (entry < datp->created_contexts_array[device_index] + GSL_CONTEXT_MAX));
+ KOS_ASSERT(context_id < 127);
+ *entry = (s8)context_id;
+}
+
+void del_device_context_from_array(struct file *fd,
+ gsl_deviceid_t device_id,
+ unsigned int context_id)
+{
+ struct gsl_kmod_per_fd_data *datp;
+ u32 device_index = device_id_to_device_index(device_id);
+ s8 *entry;
+ s8 *subarray;
+
+ datp = get_fd_private_data(fd);
+
+ KOS_ASSERT(context_id < 127);
+ subarray = &(datp->created_contexts_array[device_index][0]);
+ entry = find_first_entry_with(subarray, context_id);
+ KOS_ASSERT(entry);
+ KOS_ASSERT((datp->created_contexts_array[device_index] <= entry) &&
+ (entry < datp->created_contexts_array[device_index] + GSL_CONTEXT_MAX));
+ *entry = EMPTY_ENTRY;
+}
+
+void del_all_devices_contexts(struct file *fd)
+{
+ struct gsl_kmod_per_fd_data *datp;
+ gsl_deviceid_t id;
+ u32 device_index;
+ u32 ctx_array_index;
+ s8 ctx;
+ int err;
+
+ datp = get_fd_private_data(fd);
+
+ /* device_id is 1 based */
+ for(id = GSL_DEVICE_ANY + 1; id <= GSL_DEVICE_MAX; id++)
+ {
+ device_index = device_id_to_device_index(id);
+ for(ctx_array_index = 0; ctx_array_index < GSL_CONTEXT_MAX; ctx_array_index++)
+ {
+ ctx = datp->created_contexts_array[device_index][ctx_array_index];
+ if(ctx != EMPTY_ENTRY)
+ {
+ err = kgsl_context_destroy(id, ctx);
+ if(err != GSL_SUCCESS)
+ {
+ printk(KERN_ERR "%s: could not destroy context %d on device id = %u\n", __func__, ctx, id);
+ }
+ else
+ {
+ printk(KERN_DEBUG "%s: Destroyed context %d on device id = %u\n", __func__, ctx, id);
+ }
+ }
+ }
+ }
+}
+
diff --git a/drivers/mxc/amd-gpu/platform/hal/linux/gsl_kmod_cleanup.h b/drivers/mxc/amd-gpu/platform/hal/linux/gsl_kmod_cleanup.h
new file mode 100644
index 000000000000..475ee3be2e50
--- /dev/null
+++ b/drivers/mxc/amd-gpu/platform/hal/linux/gsl_kmod_cleanup.h
@@ -0,0 +1,90 @@
+/* Copyright (c) 2008-2010, Advanced Micro Devices. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Advanced Micro Devices nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef __GSL_KMOD_CLEANUP_H
+#define __GSL_KMOD_CLEANUP_H
+#include "gsl_types.h"
+
+#include <linux/gfp.h>
+#include <linux/slab.h>
+#include <linux/fs.h>
+#include <linux/list.h>
+
+#if (GSL_CONTEXT_MAX > 127)
+ #error created_contexts_array supports context numbers only 127 or less.
+#endif
+
+static const s8 EMPTY_ENTRY = -1;
+
+/* A structure to make list of allocated memory blocks. List per fd. */
+/* should probably be allocated from slab cache to minimise fragmentation */
+struct gsl_kmod_alloc_list
+{
+ struct list_head node;
+ gsl_memdesc_t allocated_block;
+ u32 allocation_number;
+};
+
+/* A structure to hold abovementioned list of blocks. Contain per fd data. */
+struct gsl_kmod_per_fd_data
+{
+ struct list_head allocated_blocks_head; // list head
+ u32 maximum_number_of_blocks;
+ u32 number_of_allocated_blocks;
+ s8 created_contexts_array[GSL_DEVICE_MAX][GSL_CONTEXT_MAX];
+};
+
+
+/*
+ * prototypes
+ */
+
+/* allocated memory block tracking */
+int add_memblock_to_allocated_list(struct file *fd,
+ gsl_memdesc_t *allocated_block);
+
+int del_memblock_from_allocated_list(struct file *fd,
+ gsl_memdesc_t *freed_block);
+
+int del_all_memblocks_from_allocated_list(struct file *fd);
+
+/* created contexts tracking */
+void init_created_contexts_array(s8 *array);
+
+void add_device_context_to_array(struct file *fd,
+ gsl_deviceid_t device_id,
+ unsigned int context_id);
+
+void del_device_context_from_array(struct file *fd,
+ gsl_deviceid_t device_id,
+ unsigned int context_id);
+
+void del_all_devices_contexts(struct file *fd);
+
+#endif // __GSL_KMOD_CLEANUP_H
+
diff --git a/drivers/mxc/amd-gpu/platform/hal/linux/gsl_linux_map.c b/drivers/mxc/amd-gpu/platform/hal/linux/gsl_linux_map.c
new file mode 100644
index 000000000000..7fee7b814411
--- /dev/null
+++ b/drivers/mxc/amd-gpu/platform/hal/linux/gsl_linux_map.c
@@ -0,0 +1,221 @@
+/* Copyright (c) 2008-2010, Advanced Micro Devices. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 and
+ * only version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that 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.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
+ *
+ */
+
+#include <linux/list.h>
+#include <linux/mutex.h>
+#include <linux/vmalloc.h>
+#include <linux/mm.h>
+#include <linux/slab.h>
+#include <asm/uaccess.h>
+
+#include "gsl_linux_map.h"
+
+struct gsl_linux_map
+{
+ struct list_head list;
+ unsigned int gpu_addr;
+ void *kernel_virtual_addr;
+ unsigned int size;
+};
+
+static LIST_HEAD(gsl_linux_map_list);
+static DEFINE_MUTEX(gsl_linux_map_mutex);
+
+int gsl_linux_map_init()
+{
+ mutex_lock(&gsl_linux_map_mutex);
+ INIT_LIST_HEAD(&gsl_linux_map_list);
+ mutex_unlock(&gsl_linux_map_mutex);
+
+ return 0;
+}
+
+void *gsl_linux_map_alloc(unsigned int gpu_addr, unsigned int size)
+{
+ struct gsl_linux_map * map;
+ struct list_head *p;
+ void *va;
+
+ mutex_lock(&gsl_linux_map_mutex);
+
+ list_for_each(p, &gsl_linux_map_list){
+ map = list_entry(p, struct gsl_linux_map, list);
+ if(map->gpu_addr == gpu_addr){
+ mutex_unlock(&gsl_linux_map_mutex);
+ return map->kernel_virtual_addr;
+ }
+ }
+
+ va = __vmalloc(size, GFP_KERNEL, pgprot_noncached(pgprot_kernel));
+ if(va == NULL){
+ mutex_unlock(&gsl_linux_map_mutex);
+ return NULL;
+ }
+
+ map = (struct gsl_linux_map *)kmalloc(sizeof(*map), GFP_KERNEL);
+ map->gpu_addr = gpu_addr;
+ map->kernel_virtual_addr = va;
+ map->size = size;
+
+ INIT_LIST_HEAD(&map->list);
+ list_add_tail(&map->list, &gsl_linux_map_list);
+
+ mutex_unlock(&gsl_linux_map_mutex);
+ return va;
+}
+
+void gsl_linux_map_free(unsigned int gpu_addr)
+{
+ int found = 0;
+ struct gsl_linux_map * map;
+ struct list_head *p;
+
+ mutex_lock(&gsl_linux_map_mutex);
+
+ list_for_each(p, &gsl_linux_map_list){
+ map = list_entry(p, struct gsl_linux_map, list);
+ if(map->gpu_addr == gpu_addr){
+ found = 1;
+ break;
+ }
+ }
+
+ if(found){
+ vfree(map->kernel_virtual_addr);
+ list_del(&map->list);
+ kfree(map);
+ }
+
+ mutex_unlock(&gsl_linux_map_mutex);
+}
+
+void *gsl_linux_map_find(unsigned int gpu_addr)
+{
+ struct gsl_linux_map * map;
+ struct list_head *p;
+
+ mutex_lock(&gsl_linux_map_mutex);
+
+ list_for_each(p, &gsl_linux_map_list){
+ map = list_entry(p, struct gsl_linux_map, list);
+ if(map->gpu_addr == gpu_addr){
+ mutex_unlock(&gsl_linux_map_mutex);
+ return map->kernel_virtual_addr;
+ }
+ }
+
+ mutex_unlock(&gsl_linux_map_mutex);
+ return NULL;
+}
+
+void *gsl_linux_map_read(void *dst, unsigned int gpuoffset, unsigned int sizebytes, unsigned int touserspace)
+{
+ struct gsl_linux_map * map;
+ struct list_head *p;
+
+ mutex_lock(&gsl_linux_map_mutex);
+
+ list_for_each(p, &gsl_linux_map_list){
+ map = list_entry(p, struct gsl_linux_map, list);
+ if(map->gpu_addr <= gpuoffset &&
+ (map->gpu_addr + map->size) > gpuoffset){
+ void *src = map->kernel_virtual_addr + (gpuoffset - map->gpu_addr);
+ mutex_unlock(&gsl_linux_map_mutex);
+ if (touserspace)
+ {
+ return (void *)copy_to_user(dst, map->kernel_virtual_addr + gpuoffset - map->gpu_addr, sizebytes);
+ }
+ else
+ {
+ return memcpy(dst, src, sizebytes);
+ }
+ }
+ }
+
+ mutex_unlock(&gsl_linux_map_mutex);
+ return NULL;
+}
+
+void *gsl_linux_map_write(void *src, unsigned int gpuoffset, unsigned int sizebytes, unsigned int fromuserspace)
+{
+ struct gsl_linux_map * map;
+ struct list_head *p;
+
+ mutex_lock(&gsl_linux_map_mutex);
+
+ list_for_each(p, &gsl_linux_map_list){
+ map = list_entry(p, struct gsl_linux_map, list);
+ if(map->gpu_addr <= gpuoffset &&
+ (map->gpu_addr + map->size) > gpuoffset){
+ void *dst = map->kernel_virtual_addr + (gpuoffset - map->gpu_addr);
+ mutex_unlock(&gsl_linux_map_mutex);
+ if (fromuserspace)
+ {
+ return (void *)copy_from_user(map->kernel_virtual_addr + gpuoffset - map->gpu_addr, src, sizebytes);
+ }
+ else
+ {
+ return memcpy(dst, src, sizebytes);
+ }
+ }
+ }
+
+ mutex_unlock(&gsl_linux_map_mutex);
+ return NULL;
+}
+
+void *gsl_linux_map_set(unsigned int gpuoffset, unsigned int value, unsigned int sizebytes)
+{
+ struct gsl_linux_map * map;
+ struct list_head *p;
+
+ mutex_lock(&gsl_linux_map_mutex);
+
+ list_for_each(p, &gsl_linux_map_list){
+ map = list_entry(p, struct gsl_linux_map, list);
+ if(map->gpu_addr <= gpuoffset &&
+ (map->gpu_addr + map->size) > gpuoffset){
+ void *ptr = map->kernel_virtual_addr + (gpuoffset - map->gpu_addr);
+ mutex_unlock(&gsl_linux_map_mutex);
+ return memset(ptr, value, sizebytes);
+ }
+ }
+
+ mutex_unlock(&gsl_linux_map_mutex);
+ return NULL;
+}
+
+int gsl_linux_map_destroy()
+{
+ struct gsl_linux_map * map;
+ struct list_head *p, *tmp;
+
+ mutex_lock(&gsl_linux_map_mutex);
+
+ list_for_each_safe(p, tmp, &gsl_linux_map_list){
+ map = list_entry(p, struct gsl_linux_map, list);
+ vfree(map->kernel_virtual_addr);
+ list_del(&map->list);
+ kfree(map);
+ }
+
+ INIT_LIST_HEAD(&gsl_linux_map_list);
+
+ mutex_unlock(&gsl_linux_map_mutex);
+ return 0;
+}
diff --git a/drivers/mxc/amd-gpu/platform/hal/linux/gsl_linux_map.h b/drivers/mxc/amd-gpu/platform/hal/linux/gsl_linux_map.h
new file mode 100644
index 000000000000..ebbe94a75e10
--- /dev/null
+++ b/drivers/mxc/amd-gpu/platform/hal/linux/gsl_linux_map.h
@@ -0,0 +1,46 @@
+/* Copyright (c) 2008-2010, Advanced Micro Devices. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Advanced Micro Devices nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef __GSL_LINUX_MAP_H__
+#define __GSL_LINUX_MAP_H__
+
+#include "gsl_halconfig.h"
+
+#define GSL_LINUX_MAP_RANGE_START (1024*1024)
+#define GSL_LINUX_MAP_RANGE_END (GSL_LINUX_MAP_RANGE_START+GSL_HAL_SHMEM_SIZE_EMEM1_MMU)
+
+int gsl_linux_map_init(void);
+void *gsl_linux_map_alloc(unsigned int gpu_addr, unsigned int size);
+void gsl_linux_map_free(unsigned int gpu_addr);
+void *gsl_linux_map_find(unsigned int gpu_addr);
+void *gsl_linux_map_read(void *dst, unsigned int gpuoffset, unsigned int sizebytes, unsigned int touserspace);
+void *gsl_linux_map_write(void *src, unsigned int gpuoffset, unsigned int sizebytes, unsigned int fromuserspace);
+void *gsl_linux_map_set(unsigned int gpuoffset, unsigned int value, unsigned int sizebytes);
+int gsl_linux_map_destroy(void);
+
+#endif
diff --git a/drivers/mxc/amd-gpu/platform/hal/linux/misc.c b/drivers/mxc/amd-gpu/platform/hal/linux/misc.c
new file mode 100644
index 000000000000..877ea332e00f
--- /dev/null
+++ b/drivers/mxc/amd-gpu/platform/hal/linux/misc.c
@@ -0,0 +1,167 @@
+/*
+ * Copyright (C) 2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+
+ * This program is distributed in the hope that 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.
+
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include <gsl.h>
+
+#include <linux/timer.h>
+#include <linux/spinlock.h>
+#include <linux/slab.h>
+#include <linux/hardirq.h>
+#include <linux/semaphore.h>
+
+typedef struct _gsl_autogate_t {
+ struct timer_list timer;
+ spinlock_t lock;
+ int active;
+ int timeout;
+ gsl_device_t *dev;
+ struct work_struct dis_task;
+} gsl_autogate_t;
+
+static gsl_autogate_t *g_autogate[2];
+static DECLARE_MUTEX(sem_dev);
+
+#define KGSL_DEVICE_IDLE_TIMEOUT 5000 /* unit ms */
+
+static void clk_disable_task(struct work_struct *work)
+{
+ gsl_autogate_t *autogate;
+ autogate = container_of(work, gsl_autogate_t, dis_task);
+ if (autogate->dev->ftbl.device_idle)
+ autogate->dev->ftbl.device_idle(autogate->dev, GSL_TIMEOUT_DEFAULT);
+ kgsl_clock(autogate->dev->id, 0);
+}
+
+static int _kgsl_device_active(gsl_device_t *dev, int all)
+{
+ unsigned long flags;
+ int to_active = 0;
+ gsl_autogate_t *autogate = dev->autogate;
+ if (!autogate) {
+ printk(KERN_ERR "%s: autogate has exited!\n", __func__);
+ return 0;
+ }
+// printk(KERN_ERR "%s:%d id %d active %d\n", __func__, __LINE__, dev->id, autogate->active);
+
+ spin_lock_irqsave(&autogate->lock, flags);
+ if (in_interrupt()) {
+ if (!autogate->active)
+ BUG();
+ } else {
+ to_active = !autogate->active;
+ autogate->active = 1;
+ }
+ mod_timer(&autogate->timer, jiffies + msecs_to_jiffies(autogate->timeout));
+ spin_unlock_irqrestore(&autogate->lock, flags);
+ if (to_active)
+ kgsl_clock(autogate->dev->id, 1);
+ if (to_active && all) {
+ int index;
+ index = autogate->dev->id == GSL_DEVICE_G12 ? GSL_DEVICE_YAMATO - 1 :
+ GSL_DEVICE_G12 - 1;
+ down(&sem_dev);
+ if (g_autogate[index])
+ _kgsl_device_active(g_autogate[index]->dev, 0);
+ up(&sem_dev);
+ }
+ return 0;
+}
+int kgsl_device_active(gsl_device_t *dev)
+{
+ return _kgsl_device_active(dev, 1);
+}
+
+static void kgsl_device_inactive(unsigned long data)
+{
+ gsl_autogate_t *autogate = (gsl_autogate_t *)data;
+ unsigned long flags;
+
+// printk(KERN_ERR "%s:%d id %d active %d\n", __func__, __LINE__, autogate->dev->id, autogate->active);
+ del_timer(&autogate->timer);
+ spin_lock_irqsave(&autogate->lock, flags);
+ WARN(!autogate->active, "GPU Device %d is already inactive\n", autogate->dev->id);
+ if (autogate->active) {
+ autogate->active = 0;
+ schedule_work(&autogate->dis_task);
+ }
+ spin_unlock_irqrestore(&autogate->lock, flags);
+}
+
+int kgsl_device_clock(gsl_deviceid_t id, int enable)
+{
+ int ret = GSL_SUCCESS;
+ gsl_device_t *device;
+
+ device = &gsl_driver.device[id-1]; // device_id is 1 based
+ if (device->flags & GSL_FLAGS_INITIALIZED) {
+ if (enable)
+ kgsl_device_active(device);
+ else
+ kgsl_device_inactive((unsigned long)device);
+ } else {
+ printk(KERN_ERR "%s: Dev %d clock is already off!\n", __func__, id);
+ ret = GSL_FAILURE;
+ }
+
+ return ret;
+}
+
+int kgsl_device_autogate_init(gsl_device_t *dev)
+{
+ gsl_autogate_t *autogate;
+
+// printk(KERN_ERR "%s:%d id %d\n", __func__, __LINE__, dev->id);
+ autogate = kmalloc(sizeof(gsl_autogate_t), GFP_KERNEL);
+ if (!autogate) {
+ printk(KERN_ERR "%s: out of memory!\n", __func__);
+ return -ENOMEM;
+ }
+ down(&sem_dev);
+ autogate->dev = dev;
+ autogate->active = 1;
+ spin_lock_init(&autogate->lock);
+ autogate->timeout = KGSL_DEVICE_IDLE_TIMEOUT;
+ init_timer(&autogate->timer);
+ autogate->timer.expires = jiffies + msecs_to_jiffies(autogate->timeout);
+ autogate->timer.function = kgsl_device_inactive;
+ autogate->timer.data = (unsigned long)autogate;
+ add_timer(&autogate->timer);
+ INIT_WORK(&autogate->dis_task, clk_disable_task);
+ dev->autogate = autogate;
+ g_autogate[dev->id - 1] = autogate;
+ up(&sem_dev);
+ return 0;
+}
+
+void kgsl_device_autogate_exit(gsl_device_t *dev)
+{
+ gsl_autogate_t *autogate = dev->autogate;
+
+// printk(KERN_ERR "%s:%d id %d active %d\n", __func__, __LINE__, dev->id, autogate->active);
+ down(&sem_dev);
+ del_timer_sync(&autogate->timer);
+ if (!autogate->active)
+ kgsl_clock(autogate->dev->id, 1);
+ flush_work(&autogate->dis_task);
+ g_autogate[dev->id - 1] = NULL;
+ up(&sem_dev);
+ kfree(autogate);
+ dev->autogate = NULL;
+}
diff --git a/drivers/mxc/asrc/Kconfig b/drivers/mxc/asrc/Kconfig
new file mode 100644
index 000000000000..91c657079007
--- /dev/null
+++ b/drivers/mxc/asrc/Kconfig
@@ -0,0 +1,13 @@
+#
+# ASRC configuration
+#
+
+menu "MXC Asynchronous Sample Rate Converter support"
+
+config MXC_ASRC
+ tristate "ASRC support"
+ depends on ARCH_MX35 || ARCH_MX53
+ ---help---
+ Say Y to get the ASRC service.
+
+endmenu
diff --git a/drivers/mxc/asrc/Makefile b/drivers/mxc/asrc/Makefile
new file mode 100644
index 000000000000..7e9aba3abb56
--- /dev/null
+++ b/drivers/mxc/asrc/Makefile
@@ -0,0 +1,4 @@
+#
+# Makefile for the kernel Asynchronous Sample Rate Converter driver
+#
+obj-$(CONFIG_MXC_ASRC) += mxc_asrc.o
diff --git a/drivers/mxc/asrc/mxc_asrc.c b/drivers/mxc/asrc/mxc_asrc.c
new file mode 100644
index 000000000000..932e7bbb19c6
--- /dev/null
+++ b/drivers/mxc/asrc/mxc_asrc.c
@@ -0,0 +1,1728 @@
+/*
+ * Copyright 2008-2011 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file mxc_asrc.c
+ *
+ * @brief MXC Asynchronous Sample Rate Converter
+ *
+ * @ingroup SOUND
+ */
+
+#include <linux/module.h>
+#include <linux/platform_device.h>
+#include <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/clk.h>
+#include <linux/fs.h>
+#include <linux/slab.h>
+#include <linux/ctype.h>
+#include <linux/pagemap.h>
+#include <linux/vmalloc.h>
+#include <linux/types.h>
+#include <linux/version.h>
+#include <linux/interrupt.h>
+#include <linux/proc_fs.h>
+#include <linux/dma-mapping.h>
+#include <linux/mxc_asrc.h>
+#include <linux/fsl_devices.h>
+#include <asm/irq.h>
+#include <asm/memory.h>
+#include <mach/dma.h>
+
+static int asrc_major;
+static struct class *asrc_class;
+#define ASRC_PROC_PATH "driver/asrc"
+
+#define ASRC_RATIO_DECIMAL_DEPTH 26
+
+DEFINE_SPINLOCK(data_lock);
+DEFINE_SPINLOCK(input_int_lock);
+DEFINE_SPINLOCK(output_int_lock);
+
+#define AICPA 0 /* Input Clock Divider A Offset */
+#define AICDA 3 /* Input Clock Prescaler A Offset */
+#define AICPB 6 /* Input Clock Divider B Offset */
+#define AICDB 9 /* Input Clock Prescaler B Offset */
+#define AOCPA 12 /* Output Clock Divider A Offset */
+#define AOCDA 15 /* Output Clock Prescaler A Offset */
+#define AOCPB 18 /* Output Clock Divider B Offset */
+#define AOCDB 21 /* Output Clock Prescaler B Offset */
+#define AICPC 0 /* Input Clock Divider C Offset */
+#define AICDC 3 /* Input Clock Prescaler C Offset */
+#define AOCDC 6 /* Output Clock Prescaler C Offset */
+#define AOCPC 9 /* Output Clock Divider C Offset */
+
+char *asrc_pair_id[] = {
+ [0] = "ASRC RX PAIR A",
+ [1] = "ASRC TX PAIR A",
+ [2] = "ASRC RX PAIR B",
+ [3] = "ASRC TX PAIR B",
+ [4] = "ASRC RX PAIR C",
+ [5] = "ASRC TX PAIR C",
+};
+
+enum asrc_status {
+ ASRC_ASRSTR_AIDEA = 0x01,
+ ASRC_ASRSTR_AIDEB = 0x02,
+ ASRC_ASRSTR_AIDEC = 0x04,
+ ASRC_ASRSTR_AODFA = 0x08,
+ ASRC_ASRSTR_AODFB = 0x10,
+ ASRC_ASRSTR_AODFC = 0x20,
+ ASRC_ASRSTR_AOLE = 0x40,
+ ASRC_ASRSTR_FPWT = 0x80,
+ ASRC_ASRSTR_AIDUA = 0x100,
+ ASRC_ASRSTR_AIDUB = 0x200,
+ ASRC_ASRSTR_AIDUC = 0x400,
+ ASRC_ASRSTR_AODOA = 0x800,
+ ASRC_ASRSTR_AODOB = 0x1000,
+ ASRC_ASRSTR_AODOC = 0x2000,
+ ASRC_ASRSTR_AIOLA = 0x4000,
+ ASRC_ASRSTR_AIOLB = 0x8000,
+ ASRC_ASRSTR_AIOLC = 0x10000,
+ ASRC_ASRSTR_AOOLA = 0x20000,
+ ASRC_ASRSTR_AOOLB = 0x40000,
+ ASRC_ASRSTR_AOOLC = 0x80000,
+ ASRC_ASRSTR_ATQOL = 0x100000,
+ ASRC_ASRSTR_DSLCNT = 0x200000,
+};
+
+/* Sample rates are aligned with that defined in pcm.h file */
+static const unsigned char asrc_process_table[][8][2] = {
+ /* 32kHz 44.1kHz 48kHz 64kHz 88.2kHz 96kHz 176kHz 192kHz */
+/*5512Hz*/
+ {{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0},},
+/*8kHz*/
+ {{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0},},
+/*11025Hz*/
+ {{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0},},
+/*16kHz*/
+ {{0, 1}, {0, 1}, {0, 1}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0},},
+/*22050Hz*/
+ {{0, 1}, {0, 1}, {0, 1}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0},},
+/*32kHz*/
+ {{0, 1}, {0, 1}, {0, 1}, {0, 1}, {0, 1}, {0, 0}, {0, 0}, {0, 0},},
+/*44.1kHz*/
+ {{0, 2}, {0, 1}, {0, 1}, {0, 1}, {0, 1}, {0, 1}, {0, 0}, {0, 0},},
+/*48kHz*/
+ {{0, 2}, {0, 2}, {0, 1}, {0, 1}, {0, 1}, {0, 1}, {0, 0}, {0, 0},},
+/*64kHz*/
+ {{1, 2}, {0, 2}, {0, 2}, {0, 1}, {0, 1}, {0, 1}, {0, 1}, {0, 0},},
+/*88.2kHz*/
+ {{1, 2}, {1, 2}, {1, 2}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1},},
+/*96kHz*/
+ {{1, 2}, {1, 2}, {1, 2}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1},},
+/*176kHz*/
+ {{2, 2}, {2, 2}, {2, 2}, {2, 1}, {2, 1}, {2, 1}, {2, 1}, {2, 1},},
+/*192kHz*/
+ {{2, 2}, {2, 2}, {2, 2}, {2, 1}, {2, 1}, {2, 1}, {2, 1}, {2, 1},},
+};
+
+static const unsigned char asrc_divider_table[] = {
+/*5500Hz 8kHz 11025Hz 16kHz 22050kHz 32kHz 44.1kHz 48kHz 64kHz 88.2kHz 96kHz 176400Hz 192kHz*/
+ 0x07, 0x15, 0x06, 0x14, 0x05, 0x13, 0x04, 0x04, 0x12, 0x03, 0x03, 0x02,
+ 0x02,
+};
+
+static struct asrc_data *g_asrc_data;
+static struct proc_dir_entry *proc_asrc;
+static unsigned long asrc_vrt_base_addr;
+static struct mxc_asrc_platform_data *mxc_asrc_data;
+
+/* The following tables map the relationship between asrc_inclk/asrc_outclk in
+ * mxc_asrc.h and the registers of ASRCSR
+ */
+static unsigned char input_clk_map_v1[] = {
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf,
+};
+
+static unsigned char output_clk_map_v1[] = {
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf,
+};
+
+static unsigned char input_clk_map_v2[] = {
+ 0, 1, 2, 3, 4, 5, 0xf, 0xf, 0xf, 8, 9, 0xa, 0xb, 0xc, 0xf, 0xd,
+};
+
+static unsigned char output_clk_map_v2[] = {
+ 8, 9, 0xa, 0, 0xc, 0x5, 0xf, 0xf, 0, 1, 2, 0xf, 0xf, 4, 0xf, 0xd,
+};
+
+static unsigned char *input_clk_map, *output_clk_map;
+
+static int asrc_set_clock_ratio(enum asrc_pair_index index,
+ int input_sample_rate, int output_sample_rate)
+{
+ int i;
+ int integ = 0;
+ unsigned long reg_val = 0;
+
+ if (output_sample_rate == 0)
+ return -1;
+ while (input_sample_rate >= output_sample_rate) {
+ input_sample_rate -= output_sample_rate;
+ integ++;
+ }
+ reg_val |= (integ << 26);
+
+ for (i = 1; i <= ASRC_RATIO_DECIMAL_DEPTH; i++) {
+ if ((input_sample_rate * 2) >= output_sample_rate) {
+ reg_val |= (1 << (ASRC_RATIO_DECIMAL_DEPTH - i));
+ input_sample_rate =
+ input_sample_rate * 2 - output_sample_rate;
+ } else
+ input_sample_rate = input_sample_rate << 1;
+
+ if (input_sample_rate == 0)
+ break;
+ }
+
+ __raw_writel(reg_val,
+ (asrc_vrt_base_addr + ASRC_ASRIDRLA_REG + (index << 3)));
+ __raw_writel((reg_val >> 24),
+ (asrc_vrt_base_addr + ASRC_ASRIDRHA_REG + (index << 3)));
+ return 0;
+}
+
+static int asrc_set_process_configuration(enum asrc_pair_index index,
+ int input_sample_rate,
+ int output_sample_rate)
+{
+ int i = 0, j = 0;
+ unsigned long reg;
+ switch (input_sample_rate) {
+ case 5512:
+ i = 0;
+ case 8000:
+ i = 1;
+ break;
+ case 11025:
+ i = 2;
+ break;
+ case 16000:
+ i = 3;
+ break;
+ case 22050:
+ i = 4;
+ break;
+ case 32000:
+ i = 5;
+ break;
+ case 44100:
+ i = 6;
+ break;
+ case 48000:
+ i = 7;
+ break;
+ case 64000:
+ i = 8;
+ break;
+ case 88200:
+ i = 9;
+ break;
+ case 96000:
+ i = 10;
+ break;
+ case 176400:
+ i = 11;
+ break;
+ case 192000:
+ i = 12;
+ break;
+ default:
+ return -1;
+ }
+
+ switch (output_sample_rate) {
+ case 32000:
+ j = 0;
+ break;
+ case 44100:
+ j = 1;
+ break;
+ case 48000:
+ j = 2;
+ break;
+ case 64000:
+ j = 3;
+ break;
+ case 88200:
+ j = 4;
+ break;
+ case 96000:
+ j = 5;
+ break;
+ case 176400:
+ j = 6;
+ break;
+ case 192000:
+ j = 7;
+ break;
+ default:
+ return -1;
+ }
+
+ reg = __raw_readl(asrc_vrt_base_addr + ASRC_ASRCFG_REG);
+ reg &= ~(0x0f << (6 + (index << 2)));
+ reg |=
+ ((asrc_process_table[i][j][0] << (6 + (index << 2))) |
+ (asrc_process_table[i][j][1] << (8 + (index << 2))));
+ __raw_writel(reg, asrc_vrt_base_addr + ASRC_ASRCFG_REG);
+
+ return 0;
+}
+
+static int asrc_get_asrck_clock_divider(int sample_rate)
+{
+ int i = 0;
+ switch (sample_rate) {
+ case 5500:
+ i = 0;
+ break;
+ case 8000:
+ i = 1;
+ break;
+ case 11025:
+ i = 2;
+ break;
+ case 16000:
+ i = 3;
+ break;
+ case 22050:
+ i = 4;
+ break;
+ case 32000:
+ i = 5;
+ break;
+ case 44100:
+ i = 6;
+ break;
+ case 48000:
+ i = 7;
+ break;
+ case 64000:
+ i = 8;
+ break;
+ case 88200:
+ i = 9;
+ break;
+ case 96000:
+ i = 10;
+ break;
+ case 176400:
+ i = 11;
+ break;
+ case 192000:
+ i = 12;
+ break;
+ default:
+ return -1;
+ }
+
+ return asrc_divider_table[i];
+}
+
+int asrc_req_pair(int chn_num, enum asrc_pair_index *index)
+{
+ int err = 0;
+ unsigned long lock_flags;
+ spin_lock_irqsave(&data_lock, lock_flags);
+
+ if (chn_num > 2) {
+ if (g_asrc_data->asrc_pair[ASRC_PAIR_C].active
+ || (chn_num > g_asrc_data->asrc_pair[ASRC_PAIR_C].chn_max))
+ err = -EBUSY;
+ else {
+ *index = ASRC_PAIR_C;
+ g_asrc_data->asrc_pair[ASRC_PAIR_C].chn_num = chn_num;
+ g_asrc_data->asrc_pair[ASRC_PAIR_C].active = 1;
+ }
+ } else {
+ if (g_asrc_data->asrc_pair[ASRC_PAIR_A].active ||
+ (g_asrc_data->asrc_pair[ASRC_PAIR_A].chn_max == 0)) {
+ if (g_asrc_data->asrc_pair[ASRC_PAIR_B].
+ active
+ || (g_asrc_data->asrc_pair[ASRC_PAIR_B].
+ chn_max == 0))
+ err = -EBUSY;
+ else {
+ *index = ASRC_PAIR_B;
+ g_asrc_data->asrc_pair[ASRC_PAIR_B].chn_num = 2;
+ g_asrc_data->asrc_pair[ASRC_PAIR_B].active = 1;
+ }
+ } else {
+ *index = ASRC_PAIR_A;
+ g_asrc_data->asrc_pair[ASRC_PAIR_A].chn_num = 2;
+ g_asrc_data->asrc_pair[ASRC_PAIR_A].active = 1;
+ }
+ }
+ spin_unlock_irqrestore(&data_lock, lock_flags);
+ return err;
+}
+
+EXPORT_SYMBOL(asrc_req_pair);
+
+void asrc_release_pair(enum asrc_pair_index index)
+{
+ unsigned long reg;
+ unsigned long lock_flags;
+
+ spin_lock_irqsave(&data_lock, lock_flags);
+ g_asrc_data->asrc_pair[index].active = 0;
+ g_asrc_data->asrc_pair[index].overload_error = 0;
+ /********Disable PAIR*************/
+ reg = __raw_readl(asrc_vrt_base_addr + ASRC_ASRCTR_REG);
+ reg &= ~(1 << (index + 1));
+ __raw_writel(reg, asrc_vrt_base_addr + ASRC_ASRCTR_REG);
+ spin_unlock_irqrestore(&data_lock, lock_flags);
+}
+
+EXPORT_SYMBOL(asrc_release_pair);
+
+int asrc_config_pair(struct asrc_config *config)
+{
+ int err = 0;
+ int reg, tmp, channel_num;
+ unsigned long lock_flags;
+ /* Set the channel number */
+ reg = __raw_readl(asrc_vrt_base_addr + ASRC_ASRCNCR_REG);
+ spin_lock_irqsave(&data_lock, lock_flags);
+ g_asrc_data->asrc_pair[config->pair].chn_num = config->channel_num;
+ spin_unlock_irqrestore(&data_lock, lock_flags);
+ reg &=
+ ~((0xFFFFFFFF >> (32 - mxc_asrc_data->channel_bits)) <<
+ (mxc_asrc_data->channel_bits * config->pair));
+ if (mxc_asrc_data->channel_bits > 3)
+ channel_num = config->channel_num;
+ else
+ channel_num = (config->channel_num + 1) / 2;
+ tmp = channel_num << (mxc_asrc_data->channel_bits * config->pair);
+ reg |= tmp;
+ __raw_writel(reg, asrc_vrt_base_addr + ASRC_ASRCNCR_REG);
+
+ /* Set the clock source */
+ reg = __raw_readl(asrc_vrt_base_addr + ASRC_ASRCSR_REG);
+ tmp = ~(0x0f << (config->pair << 2));
+ reg &= tmp;
+ tmp = ~(0x0f << (12 + (config->pair << 2)));
+ reg &= tmp;
+ reg |=
+ ((input_clk_map[config->inclk] << (config->pair << 2)) | (output_clk_map[config->
+ outclk] << (12 +
+ (config->
+ pair <<
+ 2))));
+
+ __raw_writel(reg, asrc_vrt_base_addr + ASRC_ASRCSR_REG);
+
+ /* default setting */
+ /* automatic selection for processing mode */
+ reg = __raw_readl(asrc_vrt_base_addr + ASRC_ASRCTR_REG);
+ reg |= (1 << (20 + config->pair));
+ reg &= ~(1 << (14 + (config->pair << 1)));
+
+ __raw_writel(reg, asrc_vrt_base_addr + ASRC_ASRCTR_REG);
+
+ reg = __raw_readl(asrc_vrt_base_addr + ASRC_ASRRA_REG);
+ reg &= 0xffbfffff;
+ __raw_writel(reg, asrc_vrt_base_addr + ASRC_ASRRA_REG);
+
+ reg = __raw_readl(asrc_vrt_base_addr + ASRC_ASRCTR_REG);
+ reg = reg & (~(1 << 23));
+ __raw_writel(reg, asrc_vrt_base_addr + ASRC_ASRCTR_REG);
+
+ /* Default Clock Divider Setting */
+ reg = __raw_readl(asrc_vrt_base_addr + ASRC_ASRCDR1_REG);
+ if (config->pair == ASRC_PAIR_A) {
+ reg = __raw_readl(asrc_vrt_base_addr + ASRC_ASRCDR1_REG);
+ reg &= 0xfc0fc0;
+ /* Input Part */
+ if ((config->inclk & 0x0f) == INCLK_SPDIF_RX)
+ reg |= 7 << AICPA;
+ else if ((config->inclk & 0x0f) == INCLK_SPDIF_TX)
+ reg |= 6 << AICPA;
+ else if ((config->inclk & 0x0f) == INCLK_ASRCK1_CLK) {
+ tmp =
+ asrc_get_asrck_clock_divider(config->
+ input_sample_rate);
+ reg |= tmp << AICPA;
+ } else {
+ if (config->word_width == 16 || config->word_width == 8)
+ reg |= 5 << AICPA;
+ else if (config->word_width == 32
+ || config->word_width == 24)
+ reg |= 6 << AICPA;
+ else
+ err = -EFAULT;
+ }
+ /* Output Part */
+ if ((config->outclk & 0x0f) == OUTCLK_SPDIF_RX)
+ reg |= 7 << AOCPA;
+ else if ((config->outclk & 0x0f) == OUTCLK_SPDIF_TX)
+ reg |= 6 << AOCPA;
+ else if ((config->outclk & 0x0f) == OUTCLK_ASRCK1_CLK) {
+ tmp =
+ asrc_get_asrck_clock_divider(config->
+ output_sample_rate);
+ reg |= tmp << AOCPA;
+ } else {
+ if (config->word_width == 16 || config->word_width == 8)
+ reg |= 5 << AOCPA;
+ else if (config->word_width == 32
+ || config->word_width == 24)
+ reg |= 6 << AOCPA;
+ else
+ err = -EFAULT;
+ }
+
+ __raw_writel(reg, asrc_vrt_base_addr + ASRC_ASRCDR1_REG);
+
+ } else if (config->pair == ASRC_PAIR_B) {
+ reg = __raw_readl(asrc_vrt_base_addr + ASRC_ASRCDR1_REG);
+ reg &= 0x03f03f;
+ /* Input Part */
+ if ((config->inclk & 0x0f) == INCLK_SPDIF_RX)
+ reg |= 7 << AICPB;
+ else if ((config->inclk & 0x0f) == INCLK_SPDIF_TX)
+ reg |= 6 << AICPB;
+ else if ((config->inclk & 0x0f) == INCLK_ASRCK1_CLK) {
+ tmp =
+ asrc_get_asrck_clock_divider(config->
+ input_sample_rate);
+ reg |= tmp << AICPB;
+ } else {
+ if (config->word_width == 16 || config->word_width == 8)
+ reg |= 5 << AICPB;
+ else if (config->word_width == 32
+ || config->word_width == 24)
+ reg |= 6 << AICPB;
+ else
+ err = -EFAULT;
+ }
+ /* Output Part */
+ if ((config->outclk & 0x0f) == OUTCLK_SPDIF_RX)
+ reg |= 7 << AOCPB;
+ else if ((config->outclk & 0x0f) == OUTCLK_SPDIF_TX)
+ reg |= 6 << AOCPB;
+ else if ((config->outclk & 0x0f) == OUTCLK_ASRCK1_CLK) {
+ tmp =
+ asrc_get_asrck_clock_divider(config->
+ output_sample_rate);
+ reg |= tmp << AOCPB;
+ } else {
+ if (config->word_width == 16 || config->word_width == 8)
+ reg |= 5 << AOCPB;
+ else if (config->word_width == 32
+ || config->word_width == 24)
+ reg |= 6 << AOCPB;
+ else
+ err = -EFAULT;
+ }
+
+ __raw_writel(reg, asrc_vrt_base_addr + ASRC_ASRCDR1_REG);
+
+ } else {
+ reg = __raw_readl(asrc_vrt_base_addr + ASRC_ASRCDR2_REG);
+ reg &= 0;
+ /* Input Part */
+ if ((config->inclk & 0x0f) == INCLK_SPDIF_RX)
+ reg |= 7 << AICPC;
+ else if ((config->inclk & 0x0f) == INCLK_SPDIF_TX)
+ reg |= 6 << AICPC;
+ else if ((config->inclk & 0x0f) == INCLK_ASRCK1_CLK) {
+ tmp =
+ asrc_get_asrck_clock_divider(config->
+ input_sample_rate);
+ reg |= tmp << AICPC;
+ } else {
+ if (config->word_width == 16 || config->word_width == 8)
+ reg |= 5 << AICPC;
+ else if (config->word_width == 32
+ || config->word_width == 24)
+ reg |= 6 << AICPC;
+ else
+ err = -EFAULT;
+ }
+ /* Output Part */
+ if ((config->outclk & 0x0f) == OUTCLK_SPDIF_RX)
+ reg |= 7 << AOCPC;
+ else if ((config->outclk & 0x0f) == OUTCLK_SPDIF_TX)
+ reg |= 6 << AOCPC;
+ else if ((config->outclk & 0x0f) == OUTCLK_ASRCK1_CLK) {
+ tmp =
+ asrc_get_asrck_clock_divider(config->
+ output_sample_rate);
+ reg |= tmp << AOCPC;
+ } else {
+ if (config->word_width == 16 || config->word_width == 8)
+ reg |= 5 << AOCPC;
+ else if (config->word_width == 32
+ || config->word_width == 24)
+ reg |= 6 << AOCPC;
+ else
+ err = -EFAULT;
+ }
+ __raw_writel(reg, asrc_vrt_base_addr + ASRC_ASRCDR2_REG);
+
+ }
+
+ /* check whether ideal ratio is a must */
+ if ((config->inclk & 0x0f) == INCLK_NONE) {
+ reg = __raw_readl(asrc_vrt_base_addr + ASRC_ASRCTR_REG);
+ reg &= ~(1 << (20 + config->pair));
+ reg |= (0x03 << (13 + (config->pair << 1)));
+ __raw_writel(reg, asrc_vrt_base_addr + ASRC_ASRCTR_REG);
+ err = asrc_set_clock_ratio(config->pair,
+ config->input_sample_rate,
+ config->output_sample_rate);
+ if (err < 0)
+ return err;
+
+ err = asrc_set_process_configuration(config->pair,
+ config->input_sample_rate,
+ config->
+ output_sample_rate);
+ if (err < 0)
+ return err;
+ } else if ((config->inclk & 0x0f) == INCLK_ASRCK1_CLK) {
+ if (config->input_sample_rate == 44100
+ || config->input_sample_rate == 88200) {
+ pr_info
+ ("ASRC core clock cann't support sample rate %d\n",
+ config->input_sample_rate);
+ err = -EFAULT;
+ }
+ } else if ((config->outclk & 0x0f) == OUTCLK_ASRCK1_CLK) {
+ if (config->output_sample_rate == 44100
+ || config->output_sample_rate == 88200) {
+ pr_info
+ ("ASRC core clock cann't support sample rate %d\n",
+ config->input_sample_rate);
+ err = -EFAULT;
+ }
+ }
+
+ return err;
+}
+
+EXPORT_SYMBOL(asrc_config_pair);
+
+void asrc_start_conv(enum asrc_pair_index index)
+{
+ int reg, reg_1;
+ unsigned long lock_flags;
+ int i;
+
+ spin_lock_irqsave(&data_lock, lock_flags);
+
+ reg = __raw_readl(asrc_vrt_base_addr + ASRC_ASRCTR_REG);
+ if ((reg & 0x0E) == 0)
+ clk_enable(mxc_asrc_data->asrc_audio_clk);
+ reg |= (1 << (1 + index));
+ __raw_writel(reg, asrc_vrt_base_addr + ASRC_ASRCTR_REG);
+
+ reg = __raw_readl(asrc_vrt_base_addr + ASRC_ASRCFG_REG);
+ while (!(reg & (1 << (index + 21))))
+ reg = __raw_readl(asrc_vrt_base_addr + ASRC_ASRCFG_REG);
+ reg_1 = __raw_readl(asrc_vrt_base_addr + ASRC_ASRSTR_REG);
+
+ reg = 0;
+ for (i = 0; i < 20; i++) {
+ __raw_writel(reg,
+ asrc_vrt_base_addr + ASRC_ASRDIA_REG +
+ (index << 3));
+ __raw_writel(reg,
+ asrc_vrt_base_addr + ASRC_ASRDIA_REG +
+ (index << 3));
+ __raw_writel(reg,
+ asrc_vrt_base_addr + ASRC_ASRDIA_REG +
+ (index << 3));
+ __raw_writel(reg,
+ asrc_vrt_base_addr + ASRC_ASRDIA_REG +
+ (index << 3));
+ __raw_writel(reg,
+ asrc_vrt_base_addr + ASRC_ASRDIA_REG +
+ (index << 3));
+ __raw_writel(reg,
+ asrc_vrt_base_addr + ASRC_ASRDIA_REG +
+ (index << 3));
+ __raw_writel(reg,
+ asrc_vrt_base_addr + ASRC_ASRDIA_REG +
+ (index << 3));
+ __raw_writel(reg,
+ asrc_vrt_base_addr + ASRC_ASRDIA_REG +
+ (index << 3));
+ }
+
+ __raw_writel(0x40, asrc_vrt_base_addr + ASRC_ASRIER_REG);
+ spin_unlock_irqrestore(&data_lock, lock_flags);
+ return;
+}
+
+EXPORT_SYMBOL(asrc_start_conv);
+
+void asrc_stop_conv(enum asrc_pair_index index)
+{
+ int reg;
+ unsigned long lock_flags;
+ spin_lock_irqsave(&data_lock, lock_flags);
+ reg = __raw_readl(asrc_vrt_base_addr + ASRC_ASRCTR_REG);
+ reg &= ~(1 << (1 + index));
+ __raw_writel(reg, asrc_vrt_base_addr + ASRC_ASRCTR_REG);
+ if ((reg & 0x0E) == 0)
+ clk_disable(mxc_asrc_data->asrc_audio_clk);
+ spin_unlock_irqrestore(&data_lock, lock_flags);
+ return;
+}
+
+EXPORT_SYMBOL(asrc_stop_conv);
+
+/*!
+ * @brief asrc interrupt handler
+ */
+static irqreturn_t asrc_isr(int irq, void *dev_id)
+{
+ unsigned long status;
+ int reg = 0x40;
+
+ status = __raw_readl(asrc_vrt_base_addr + ASRC_ASRSTR_REG);
+ if (g_asrc_data->asrc_pair[ASRC_PAIR_A].active == 1) {
+ if (status & ASRC_ASRSTR_ATQOL)
+ g_asrc_data->asrc_pair[ASRC_PAIR_A].overload_error |=
+ ASRC_TASK_Q_OVERLOAD;
+ if (status & ASRC_ASRSTR_AOOLA)
+ g_asrc_data->asrc_pair[ASRC_PAIR_A].overload_error |=
+ ASRC_OUTPUT_TASK_OVERLOAD;
+ if (status & ASRC_ASRSTR_AIOLA)
+ g_asrc_data->asrc_pair[ASRC_PAIR_A].overload_error |=
+ ASRC_INPUT_TASK_OVERLOAD;
+ if (status & ASRC_ASRSTR_AODOA)
+ g_asrc_data->asrc_pair[ASRC_PAIR_A].overload_error |=
+ ASRC_OUTPUT_BUFFER_OVERFLOW;
+ if (status & ASRC_ASRSTR_AIDUA)
+ g_asrc_data->asrc_pair[ASRC_PAIR_A].overload_error |=
+ ASRC_INPUT_BUFFER_UNDERRUN;
+ } else if (g_asrc_data->asrc_pair[ASRC_PAIR_B].active == 1) {
+ if (status & ASRC_ASRSTR_ATQOL)
+ g_asrc_data->asrc_pair[ASRC_PAIR_B].overload_error |=
+ ASRC_TASK_Q_OVERLOAD;
+ if (status & ASRC_ASRSTR_AOOLB)
+ g_asrc_data->asrc_pair[ASRC_PAIR_B].overload_error |=
+ ASRC_OUTPUT_TASK_OVERLOAD;
+ if (status & ASRC_ASRSTR_AIOLB)
+ g_asrc_data->asrc_pair[ASRC_PAIR_B].overload_error |=
+ ASRC_INPUT_TASK_OVERLOAD;
+ if (status & ASRC_ASRSTR_AODOB)
+ g_asrc_data->asrc_pair[ASRC_PAIR_B].overload_error |=
+ ASRC_OUTPUT_BUFFER_OVERFLOW;
+ if (status & ASRC_ASRSTR_AIDUB)
+ g_asrc_data->asrc_pair[ASRC_PAIR_B].overload_error |=
+ ASRC_INPUT_BUFFER_UNDERRUN;
+ } else if (g_asrc_data->asrc_pair[ASRC_PAIR_C].active == 1) {
+ if (status & ASRC_ASRSTR_ATQOL)
+ g_asrc_data->asrc_pair[ASRC_PAIR_C].overload_error |=
+ ASRC_TASK_Q_OVERLOAD;
+ if (status & ASRC_ASRSTR_AOOLC)
+ g_asrc_data->asrc_pair[ASRC_PAIR_C].overload_error |=
+ ASRC_OUTPUT_TASK_OVERLOAD;
+ if (status & ASRC_ASRSTR_AIOLC)
+ g_asrc_data->asrc_pair[ASRC_PAIR_C].overload_error |=
+ ASRC_INPUT_TASK_OVERLOAD;
+ if (status & ASRC_ASRSTR_AODOC)
+ g_asrc_data->asrc_pair[ASRC_PAIR_C].overload_error |=
+ ASRC_OUTPUT_BUFFER_OVERFLOW;
+ if (status & ASRC_ASRSTR_AIDUC)
+ g_asrc_data->asrc_pair[ASRC_PAIR_C].overload_error |=
+ ASRC_INPUT_BUFFER_UNDERRUN;
+ }
+
+ /* try to clean the overload error */
+ __raw_writel(reg, asrc_vrt_base_addr + ASRC_ASRSTR_REG);
+
+ return IRQ_HANDLED;
+}
+
+void asrc_get_status(struct asrc_status_flags *flags)
+{
+ unsigned long lock_flags;
+ enum asrc_pair_index index;
+
+ spin_lock_irqsave(&data_lock, lock_flags);
+ index = flags->index;
+ flags->overload_error = g_asrc_data->asrc_pair[index].overload_error;
+
+ spin_unlock_irqrestore(&data_lock, lock_flags);
+ return;
+}
+
+EXPORT_SYMBOL(asrc_get_status);
+
+static int mxc_init_asrc(void)
+{
+ /* Halt ASRC internal FP when input FIFO needs data for pair A, B, C */
+ __raw_writel(0x0001, asrc_vrt_base_addr + ASRC_ASRCTR_REG);
+
+ /* Enable overflow interrupt */
+ __raw_writel(0x00, asrc_vrt_base_addr + ASRC_ASRIER_REG);
+
+ /* Default 6: 2: 2 channel assignment */
+ __raw_writel((0x06 << mxc_asrc_data->channel_bits *
+ 2) | (0x02 << mxc_asrc_data->channel_bits) | 0x02,
+ asrc_vrt_base_addr + ASRC_ASRCNCR_REG);
+
+ /* Parameter Registers recommended settings */
+ __raw_writel(0x7fffff, asrc_vrt_base_addr + ASRC_ASRPM1_REG);
+ __raw_writel(0x255555, asrc_vrt_base_addr + ASRC_ASRPM2_REG);
+ __raw_writel(0xff7280, asrc_vrt_base_addr + ASRC_ASRPM3_REG);
+ __raw_writel(0xff7280, asrc_vrt_base_addr + ASRC_ASRPM4_REG);
+ __raw_writel(0xff7280, asrc_vrt_base_addr + ASRC_ASRPM5_REG);
+
+ __raw_writel(0x001f00, asrc_vrt_base_addr + ASRC_ASRTFR1);
+
+ /* Set the processing clock for 76KHz, 133M */
+ __raw_writel(0x30E, asrc_vrt_base_addr + ASRC_ASR76K_REG);
+
+ /* Set the processing clock for 56KHz, 133M */
+ __raw_writel(0x0426, asrc_vrt_base_addr + ASRC_ASR56K_REG);
+
+ return 0;
+}
+
+static int asrc_get_output_buffer_size(int input_buffer_size,
+ int input_sample_rate,
+ int output_sample_rate)
+{
+ int i = 0;
+ int outbuffer_size = 0;
+ int outsample = output_sample_rate;
+ while (outsample >= input_sample_rate) {
+ ++i;
+ outsample -= input_sample_rate;
+ }
+ outbuffer_size = i * input_buffer_size;
+ i = 1;
+ while (((input_buffer_size >> i) > 2) && (outsample != 0)) {
+ if (((outsample << 1) - input_sample_rate) >= 0) {
+ outsample = (outsample << 1) - input_sample_rate;
+ outbuffer_size += (input_buffer_size >> i);
+ } else {
+ outsample = outsample << 1;
+ }
+ i++;
+ }
+ outbuffer_size = (outbuffer_size >> 3) << 3;
+ return outbuffer_size;
+}
+
+static void asrc_input_dma_callback(void *data, int error, unsigned int count)
+{
+ struct asrc_pair_params *params;
+ struct dma_block *block;
+ mxc_dma_requestbuf_t dma_request;
+ unsigned long lock_flags;
+
+ params = data;
+
+ spin_lock_irqsave(&input_int_lock, lock_flags);
+ params->input_queue_empty--;
+ if (!list_empty(&params->input_queue)) {
+ block =
+ list_entry(params->input_queue.next,
+ struct dma_block, queue);
+ dma_request.src_addr = (dma_addr_t) block->dma_paddr;
+ dma_request.dst_addr =
+ (ASRC_BASE_ADDR + ASRC_ASRDIA_REG + (params->index << 3));
+ dma_request.num_of_bytes = block->length;
+ mxc_dma_config(params->input_dma_channel, &dma_request,
+ 1, MXC_DMA_MODE_WRITE);
+ list_del(params->input_queue.next);
+ list_add_tail(&block->queue, &params->input_done_queue);
+ params->input_queue_empty++;
+ }
+ params->input_counter++;
+ wake_up_interruptible(&params->input_wait_queue);
+ spin_unlock_irqrestore(&input_int_lock, lock_flags);
+ return;
+}
+
+static void asrc_output_dma_callback(void *data, int error, unsigned int count)
+{
+ struct asrc_pair_params *params;
+ struct dma_block *block;
+ mxc_dma_requestbuf_t dma_request;
+ unsigned long lock_flags;
+
+ params = data;
+
+ spin_lock_irqsave(&output_int_lock, lock_flags);
+ params->output_queue_empty--;
+
+ if (!list_empty(&params->output_queue)) {
+ block =
+ list_entry(params->output_queue.next,
+ struct dma_block, queue);
+ dma_request.src_addr =
+ (ASRC_BASE_ADDR + ASRC_ASRDOA_REG + (params->index << 3));
+ dma_request.dst_addr = (dma_addr_t) block->dma_paddr;
+ dma_request.num_of_bytes = block->length;
+ mxc_dma_config(params->output_dma_channel, &dma_request,
+ 1, MXC_DMA_MODE_READ);
+ list_del(params->output_queue.next);
+ list_add_tail(&block->queue, &params->output_done_queue);
+ params->output_queue_empty++;
+ }
+ params->output_counter++;
+ wake_up_interruptible(&params->output_wait_queue);
+ spin_unlock_irqrestore(&output_int_lock, lock_flags);
+ return;
+}
+
+static void mxc_free_dma_buf(struct asrc_pair_params *params)
+{
+ int i;
+ for (i = 0; i < ASRC_DMA_BUFFER_NUM; i++) {
+ if (params->input_dma[i].dma_vaddr != NULL) {
+ dma_free_coherent(0,
+ params->input_buffer_size,
+ params->input_dma[i].
+ dma_vaddr,
+ params->input_dma[i].dma_paddr);
+ params->input_dma[i].dma_vaddr = NULL;
+ }
+ if (params->output_dma[i].dma_vaddr != NULL) {
+ dma_free_coherent(0,
+ params->output_buffer_size,
+ params->output_dma[i].
+ dma_vaddr,
+ params->output_dma[i].dma_paddr);
+ params->output_dma[i].dma_vaddr = NULL;
+ }
+ }
+
+ return;
+}
+
+static int mxc_allocate_dma_buf(struct asrc_pair_params *params)
+{
+ int i;
+ for (i = 0; i < ASRC_DMA_BUFFER_NUM; i++) {
+ params->input_dma[i].dma_vaddr =
+ dma_alloc_coherent(0, params->input_buffer_size,
+ &params->input_dma[i].dma_paddr,
+ GFP_DMA | GFP_KERNEL);
+ if (params->input_dma[i].dma_vaddr == NULL) {
+ mxc_free_dma_buf(params);
+ pr_info("can't allocate buff\n");
+ return -ENOBUFS;
+ }
+ }
+ for (i = 0; i < ASRC_DMA_BUFFER_NUM; i++) {
+ params->output_dma[i].dma_vaddr =
+ dma_alloc_coherent(0,
+ params->output_buffer_size,
+ &params->output_dma[i].dma_paddr,
+ GFP_DMA | GFP_KERNEL);
+ if (params->output_dma[i].dma_vaddr == NULL) {
+ mxc_free_dma_buf(params);
+ return -ENOBUFS;
+ }
+ }
+
+ return 0;
+}
+
+/*!
+ * asrc interface - ioctl function
+ *
+ * @param inode struct inode *
+ *
+ * @param file struct file *
+ *
+ * @param cmd unsigned int
+ *
+ * @param arg unsigned long
+ *
+ * @return 0 success, ENODEV for invalid device instance,
+ * -1 for other errors.
+ */
+static int asrc_ioctl(struct inode *inode, struct file *file,
+ unsigned int cmd, unsigned long arg)
+{
+ int err = 0;
+ struct asrc_pair_params *params;
+ params = file->private_data;
+
+ if (down_interruptible(&params->busy_lock))
+ return -EBUSY;
+ switch (cmd) {
+ case ASRC_REQ_PAIR:
+ {
+ struct asrc_req req;
+ if (copy_from_user(&req, (void __user *)arg,
+ sizeof(struct asrc_req))) {
+ err = -EFAULT;
+ break;
+ }
+ err = asrc_req_pair(req.chn_num, &req.index);
+ if (err < 0)
+ break;
+ params->pair_hold = 1;
+ params->index = req.index;
+ if (copy_to_user
+ ((void __user *)arg, &req, sizeof(struct asrc_req)))
+ err = -EFAULT;
+
+ break;
+ }
+ case ASRC_CONFIG_PAIR:
+ {
+ struct asrc_config config;
+ mxc_dma_device_t rx_id, tx_id;
+ char *rx_name, *tx_name;
+ int channel = -1;
+ if (copy_from_user
+ (&config, (void __user *)arg,
+ sizeof(struct asrc_config))) {
+ err = -EFAULT;
+ break;
+ }
+ err = asrc_config_pair(&config);
+ if (err < 0)
+ break;
+ params->output_buffer_size =
+ asrc_get_output_buffer_size(config.
+ dma_buffer_size,
+ config.
+ input_sample_rate,
+ config.
+ output_sample_rate);
+ params->input_buffer_size = config.dma_buffer_size;
+ if (config.buffer_num > ASRC_DMA_BUFFER_NUM)
+ params->buffer_num = ASRC_DMA_BUFFER_NUM;
+ else
+ params->buffer_num = config.buffer_num;
+ err = mxc_allocate_dma_buf(params);
+ if (err < 0)
+ break;
+
+ /* TBD - need to update when new SDMA interface ready */
+ if (config.pair == ASRC_PAIR_A) {
+ rx_id = MXC_DMA_ASRC_A_RX;
+ tx_id = MXC_DMA_ASRC_A_TX;
+ rx_name = asrc_pair_id[0];
+ tx_name = asrc_pair_id[1];
+ } else if (config.pair == ASRC_PAIR_B) {
+ rx_id = MXC_DMA_ASRC_B_RX;
+ tx_id = MXC_DMA_ASRC_B_TX;
+ rx_name = asrc_pair_id[2];
+ tx_name = asrc_pair_id[3];
+ } else {
+ rx_id = MXC_DMA_ASRC_C_RX;
+ tx_id = MXC_DMA_ASRC_C_TX;
+ rx_name = asrc_pair_id[4];
+ tx_name = asrc_pair_id[5];
+ }
+ channel = mxc_dma_request(rx_id, rx_name);
+ params->input_dma_channel = channel;
+ err = mxc_dma_callback_set(channel, (mxc_dma_callback_t)
+ asrc_input_dma_callback,
+ (void *)params);
+ channel = mxc_dma_request(tx_id, tx_name);
+ params->output_dma_channel = channel;
+ err = mxc_dma_callback_set(channel, (mxc_dma_callback_t)
+ asrc_output_dma_callback,
+ (void *)params);
+ /* TBD - need to update when new SDMA interface ready */
+ params->input_queue_empty = 0;
+ params->output_queue_empty = 0;
+ INIT_LIST_HEAD(&params->input_queue);
+ INIT_LIST_HEAD(&params->input_done_queue);
+ INIT_LIST_HEAD(&params->output_queue);
+ INIT_LIST_HEAD(&params->output_done_queue);
+ init_waitqueue_head(&params->input_wait_queue);
+ init_waitqueue_head(&params->output_wait_queue);
+
+ if (copy_to_user
+ ((void __user *)arg, &config,
+ sizeof(struct asrc_config)))
+ err = -EFAULT;
+ break;
+ }
+ case ASRC_QUERYBUF:
+ {
+ struct asrc_querybuf buffer;
+ if (copy_from_user
+ (&buffer, (void __user *)arg,
+ sizeof(struct asrc_querybuf))) {
+ err = -EFAULT;
+ break;
+ }
+ buffer.input_offset =
+ (unsigned long)params->input_dma[buffer.
+ buffer_index].
+ dma_paddr;
+ buffer.input_length = params->input_buffer_size;
+ buffer.output_offset =
+ (unsigned long)params->output_dma[buffer.
+ buffer_index].
+ dma_paddr;
+ buffer.output_length = params->output_buffer_size;
+ if (copy_to_user
+ ((void __user *)arg, &buffer,
+ sizeof(struct asrc_querybuf)))
+ err = -EFAULT;
+ break;
+ }
+ case ASRC_RELEASE_PAIR:
+ {
+ enum asrc_pair_index index;
+ if (copy_from_user
+ (&index, (void __user *)arg,
+ sizeof(enum asrc_pair_index))) {
+ err = -EFAULT;
+ break;
+ }
+
+ mxc_dma_free(params->input_dma_channel);
+ mxc_dma_free(params->output_dma_channel);
+ mxc_free_dma_buf(params);
+ asrc_release_pair(index);
+ params->pair_hold = 0;
+ break;
+ }
+ case ASRC_Q_INBUF:
+ {
+ struct asrc_buffer buf;
+ struct dma_block *block;
+ mxc_dma_requestbuf_t dma_request;
+ unsigned long lock_flags;
+ if (copy_from_user
+ (&buf, (void __user *)arg,
+ sizeof(struct asrc_buffer))) {
+ err = -EFAULT;
+ break;
+ }
+ spin_lock_irqsave(&input_int_lock, lock_flags);
+ params->input_dma[buf.index].index = buf.index;
+ params->input_dma[buf.index].length = buf.length;
+ list_add_tail(&params->input_dma[buf.index].
+ queue, &params->input_queue);
+ if (params->asrc_active == 0
+ || params->input_queue_empty == 0) {
+ block =
+ list_entry(params->input_queue.next,
+ struct dma_block, queue);
+ dma_request.src_addr =
+ (dma_addr_t) block->dma_paddr;
+ dma_request.dst_addr =
+ (ASRC_BASE_ADDR + ASRC_ASRDIA_REG +
+ (params->index << 3));
+ dma_request.num_of_bytes = block->length;
+ mxc_dma_config(params->
+ input_dma_channel,
+ &dma_request, 1,
+ MXC_DMA_MODE_WRITE);
+ params->input_queue_empty++;
+ list_del(params->input_queue.next);
+ list_add_tail(&block->queue,
+ &params->input_done_queue);
+ }
+
+ spin_unlock_irqrestore(&input_int_lock, lock_flags);
+ break;
+ }
+ case ASRC_DQ_INBUF:{
+ struct asrc_buffer buf;
+ struct dma_block *block;
+ unsigned long lock_flags;
+ if (copy_from_user
+ (&buf, (void __user *)arg,
+ sizeof(struct asrc_buffer))) {
+ err = -EFAULT;
+ break;
+ }
+ /* if ASRC is inactive, nonsense to DQ buffer */
+ if (params->asrc_active == 0) {
+ err = -EFAULT;
+ buf.buf_valid = ASRC_BUF_NA;
+ if (copy_to_user
+ ((void __user *)arg, &buf,
+ sizeof(struct asrc_buffer)))
+ err = -EFAULT;
+ break;
+ }
+
+ if (!wait_event_interruptible_timeout
+ (params->input_wait_queue,
+ params->input_counter != 0, 10 * HZ)) {
+ pr_info
+ ("ASRC_DQ_INBUF timeout counter %x\n",
+ params->input_counter);
+ err = -ETIME;
+ break;
+ } else if (signal_pending(current)) {
+ pr_info("ASRC_DQ_INBUF interrupt received\n");
+ err = -ERESTARTSYS;
+ break;
+ }
+ spin_lock_irqsave(&input_int_lock, lock_flags);
+ params->input_counter--;
+ block =
+ list_entry(params->input_done_queue.next,
+ struct dma_block, queue);
+ list_del(params->input_done_queue.next);
+ spin_unlock_irqrestore(&input_int_lock, lock_flags);
+ buf.index = block->index;
+ buf.length = block->length;
+ buf.buf_valid = ASRC_BUF_AV;
+ if (copy_to_user
+ ((void __user *)arg, &buf,
+ sizeof(struct asrc_buffer)))
+ err = -EFAULT;
+
+ break;
+ }
+ case ASRC_Q_OUTBUF:{
+ struct asrc_buffer buf;
+ struct dma_block *block;
+ mxc_dma_requestbuf_t dma_request;
+ unsigned long lock_flags;
+ if (copy_from_user
+ (&buf, (void __user *)arg,
+ sizeof(struct asrc_buffer))) {
+ err = -EFAULT;
+ break;
+ }
+ spin_lock_irqsave(&output_int_lock, lock_flags);
+ params->output_dma[buf.index].index = buf.index;
+ params->output_dma[buf.index].length = buf.length;
+ list_add_tail(&params->output_dma[buf.index].
+ queue, &params->output_queue);
+ if (params->asrc_active == 0
+ || params->output_queue_empty == 0) {
+ block =
+ list_entry(params->output_queue.
+ next, struct dma_block, queue);
+ dma_request.src_addr =
+ (ASRC_BASE_ADDR + ASRC_ASRDOA_REG +
+ (params->index << 3));
+ dma_request.dst_addr =
+ (dma_addr_t) block->dma_paddr;
+ dma_request.num_of_bytes = block->length;
+ mxc_dma_config(params->
+ output_dma_channel,
+ &dma_request, 1,
+ MXC_DMA_MODE_READ);
+ list_del(params->output_queue.next);
+ list_add_tail(&block->queue,
+ &params->output_done_queue);
+ params->output_queue_empty++;
+ }
+
+ spin_unlock_irqrestore(&output_int_lock, lock_flags);
+ break;
+ }
+ case ASRC_DQ_OUTBUF:{
+ struct asrc_buffer buf;
+ struct dma_block *block;
+ unsigned long lock_flags;
+ if (copy_from_user
+ (&buf, (void __user *)arg,
+ sizeof(struct asrc_buffer))) {
+ err = -EFAULT;
+ break;
+ }
+ /* if ASRC is inactive, nonsense to DQ buffer */
+ if (params->asrc_active == 0) {
+ buf.buf_valid = ASRC_BUF_NA;
+ err = -EFAULT;
+ if (copy_to_user
+ ((void __user *)arg, &buf,
+ sizeof(struct asrc_buffer)))
+ err = -EFAULT;
+ break;
+ }
+
+ if (!wait_event_interruptible_timeout
+ (params->output_wait_queue,
+ params->output_counter != 0, 10 * HZ)) {
+ pr_info
+ ("ASRC_DQ_OUTBUF timeout counter %x\n",
+ params->output_counter);
+ err = -ETIME;
+ break;
+ } else if (signal_pending(current)) {
+ pr_info("ASRC_DQ_INBUF interrupt received\n");
+ err = -ERESTARTSYS;
+ break;
+ }
+ spin_lock_irqsave(&output_int_lock, lock_flags);
+ params->output_counter--;
+ block =
+ list_entry(params->output_done_queue.next,
+ struct dma_block, queue);
+ list_del(params->output_done_queue.next);
+ spin_unlock_irqrestore(&output_int_lock, lock_flags);
+ buf.index = block->index;
+ buf.length = block->length;
+ buf.buf_valid = ASRC_BUF_AV;
+ if (copy_to_user
+ ((void __user *)arg, &buf,
+ sizeof(struct asrc_buffer)))
+ err = -EFAULT;
+
+ break;
+ }
+ case ASRC_START_CONV:{
+ enum asrc_pair_index index;
+ unsigned long lock_flags;
+ if (copy_from_user
+ (&index, (void __user *)arg,
+ sizeof(enum asrc_pair_index))) {
+ err = -EFAULT;
+ break;
+ }
+
+ spin_lock_irqsave(&input_int_lock, lock_flags);
+ if (params->input_queue_empty == 0) {
+ err = -EFAULT;
+ pr_info
+ ("ASRC_START_CONV - no block available\n");
+ break;
+ }
+ spin_unlock_irqrestore(&input_int_lock, lock_flags);
+ params->asrc_active = 1;
+
+ asrc_start_conv(index);
+ mxc_dma_enable(params->input_dma_channel);
+ mxc_dma_enable(params->output_dma_channel);
+ break;
+ }
+ case ASRC_STOP_CONV:{
+ enum asrc_pair_index index;
+ if (copy_from_user
+ (&index, (void __user *)arg,
+ sizeof(enum asrc_pair_index))) {
+ err = -EFAULT;
+ break;
+ }
+ mxc_dma_disable(params->input_dma_channel);
+ mxc_dma_disable(params->output_dma_channel);
+ asrc_stop_conv(index);
+ params->asrc_active = 0;
+ break;
+ }
+ case ASRC_STATUS:{
+ struct asrc_status_flags flags;
+ if (copy_from_user
+ (&flags, (void __user *)arg,
+ sizeof(struct asrc_status_flags))) {
+ err = -EFAULT;
+ break;
+ }
+ asrc_get_status(&flags);
+ if (copy_to_user
+ ((void __user *)arg, &flags,
+ sizeof(struct asrc_status_flags)))
+ err = -EFAULT;
+ break;
+ }
+ case ASRC_FLUSH:{
+ /* flush input dma buffer */
+ unsigned long lock_flags;
+ mxc_dma_device_t rx_id, tx_id;
+ char *rx_name, *tx_name;
+ int channel = -1;
+ spin_lock_irqsave(&input_int_lock, lock_flags);
+ while (!list_empty(&params->input_queue))
+ list_del(params->input_queue.next);
+ while (!list_empty(&params->input_done_queue))
+ list_del(params->input_done_queue.next);
+ params->input_counter = 0;
+ params->input_queue_empty = 0;
+ spin_unlock_irqrestore(&input_int_lock, lock_flags);
+
+ /* flush output dma buffer */
+ spin_lock_irqsave(&output_int_lock, lock_flags);
+ while (!list_empty(&params->output_queue))
+ list_del(params->output_queue.next);
+ while (!list_empty(&params->output_done_queue))
+ list_del(params->output_done_queue.next);
+ params->output_counter = 0;
+ params->output_queue_empty = 0;
+ spin_unlock_irqrestore(&output_int_lock, lock_flags);
+
+ /* release DMA and request again */
+ mxc_dma_free(params->input_dma_channel);
+ mxc_dma_free(params->output_dma_channel);
+ if (params->index == ASRC_PAIR_A) {
+ rx_id = MXC_DMA_ASRC_A_RX;
+ tx_id = MXC_DMA_ASRC_A_TX;
+ rx_name = asrc_pair_id[0];
+ tx_name = asrc_pair_id[1];
+ } else if (params->index == ASRC_PAIR_B) {
+ rx_id = MXC_DMA_ASRC_B_RX;
+ tx_id = MXC_DMA_ASRC_B_TX;
+ rx_name = asrc_pair_id[2];
+ tx_name = asrc_pair_id[3];
+ } else {
+ rx_id = MXC_DMA_ASRC_C_RX;
+ tx_id = MXC_DMA_ASRC_C_TX;
+ rx_name = asrc_pair_id[4];
+ tx_name = asrc_pair_id[5];
+ }
+ channel = mxc_dma_request(rx_id, rx_name);
+ params->input_dma_channel = channel;
+ err = mxc_dma_callback_set(channel, (mxc_dma_callback_t)
+ asrc_input_dma_callback,
+ (void *)params);
+ channel = mxc_dma_request(tx_id, tx_name);
+ params->output_dma_channel = channel;
+ err = mxc_dma_callback_set(channel, (mxc_dma_callback_t)
+ asrc_output_dma_callback,
+ (void *)params);
+
+ break;
+ }
+ default:
+ break;
+ }
+
+ up(&params->busy_lock);
+ return err;
+}
+
+/*!
+ * asrc interface - open function
+ *
+ * @param inode structure inode *
+ *
+ * @param file structure file *
+ *
+ * @return status 0 success, ENODEV invalid device instance,
+ * ENOBUFS failed to allocate buffer, ERESTARTSYS interrupted by user
+ */
+static int mxc_asrc_open(struct inode *inode, struct file *file)
+{
+ int err = 0;
+ struct asrc_pair_params *pair_params;
+ if (signal_pending(current))
+ return -EINTR;
+ pair_params = kzalloc(sizeof(struct asrc_pair_params), GFP_KERNEL);
+ if (pair_params == NULL) {
+ pr_debug("Failed to allocate pair_params\n");
+ err = -ENOBUFS;
+ }
+
+ init_MUTEX(&pair_params->busy_lock);
+ file->private_data = pair_params;
+ return err;
+}
+
+/*!
+ * asrc interface - close function
+ *
+ * @param inode struct inode *
+ * @param file structure file *
+ *
+ * @return status 0 Success, EINTR busy lock error, ENOBUFS remap_page error
+ */
+static int mxc_asrc_close(struct inode *inode, struct file *file)
+{
+ struct asrc_pair_params *pair_params;
+ pair_params = file->private_data;
+ if (pair_params->asrc_active == 1) {
+ mxc_dma_disable(pair_params->input_dma_channel);
+ mxc_dma_disable(pair_params->output_dma_channel);
+ asrc_stop_conv(pair_params->index);
+ wake_up_interruptible(&pair_params->input_wait_queue);
+ wake_up_interruptible(&pair_params->output_wait_queue);
+ }
+ if (pair_params->pair_hold == 1) {
+ mxc_dma_free(pair_params->input_dma_channel);
+ mxc_dma_free(pair_params->output_dma_channel);
+ mxc_free_dma_buf(pair_params);
+ asrc_release_pair(pair_params->index);
+ }
+ kfree(pair_params);
+ file->private_data = NULL;
+ return 0;
+}
+
+/*!
+ * asrc interface - mmap function
+ *
+ * @param file structure file *
+ *
+ * @param vma structure vm_area_struct *
+ *
+ * @return status 0 Success, EINTR busy lock error, ENOBUFS remap_page error
+ */
+static int mxc_asrc_mmap(struct file *file, struct vm_area_struct *vma)
+{
+ unsigned long size;
+ int res = 0;
+ size = vma->vm_end - vma->vm_start;
+ vma->vm_page_prot = pgprot_writecombine(vma->vm_page_prot);
+ if (remap_pfn_range(vma, vma->vm_start,
+ vma->vm_pgoff, size, vma->vm_page_prot))
+ return -ENOBUFS;
+
+ vma->vm_flags &= ~VM_IO;
+ return res;
+}
+
+static struct file_operations asrc_fops = {
+ .owner = THIS_MODULE,
+ .ioctl = asrc_ioctl,
+ .mmap = mxc_asrc_mmap,
+ .open = mxc_asrc_open,
+ .release = mxc_asrc_close,
+};
+
+static int asrc_read_proc_attr(char *page, char **start, off_t off,
+ int count, int *eof, void *data)
+{
+ unsigned long reg;
+ int len = 0;
+ reg = __raw_readl(asrc_vrt_base_addr + ASRC_ASRCNCR_REG);
+
+ len += sprintf(page, "ANCA: %d\n",
+ (int)(reg &
+ (0xFFFFFFFF >>
+ (32 - mxc_asrc_data->channel_bits))));
+ len +=
+ sprintf(page + len, "ANCB: %d\n",
+ (int)((reg >> mxc_asrc_data->
+ channel_bits) & (0xFFFFFFFF >> (32 -
+ mxc_asrc_data->
+ channel_bits))));
+ len +=
+ sprintf(page + len, "ANCC: %d\n",
+ (int)((reg >> (mxc_asrc_data->channel_bits * 2)) &
+ (0xFFFFFFFF >> (32 - mxc_asrc_data->channel_bits))));
+
+ if (off > len)
+ return 0;
+
+ *eof = (len <= count) ? 1 : 0;
+ *start = page + off;
+
+ return min(count, len - (int)off);
+}
+
+static int asrc_write_proc_attr(struct file *file, const char *buffer,
+ unsigned long count, void *data)
+{
+ char buf[50];
+ unsigned long reg;
+ int na, nb, nc;
+ int total;
+ if (count > 48)
+ return -EINVAL;
+ if (copy_from_user(buf, buffer, count)) {
+ pr_debug("Attr proc write, Failed to copy buffer from user\n");
+ return -EFAULT;
+ }
+
+ reg = __raw_readl(asrc_vrt_base_addr + ASRC_ASRCNCR_REG);
+ sscanf(buf, "ANCA: %d\nANCB: %d\nANCC: %d", &na, &nb, &nc);
+ if (mxc_asrc_data->channel_bits > 3)
+ total = 10;
+ else
+ total = 5;
+ if ((na + nb + nc) != total) {
+ pr_info("Wrong ASRCNR settings\n");
+ return -EFAULT;
+ }
+ reg = na | (nb << mxc_asrc_data->
+ channel_bits) | (nc << (mxc_asrc_data->channel_bits * 2));
+
+ __raw_writel(reg, asrc_vrt_base_addr + ASRC_ASRCNCR_REG);
+
+ return count;
+}
+
+static void asrc_proc_create(void)
+{
+ struct proc_dir_entry *proc_attr;
+ proc_asrc = proc_mkdir(ASRC_PROC_PATH, NULL);
+ if (proc_asrc) {
+ proc_attr = create_proc_entry("ChSettings",
+ S_IFREG | S_IRUGO |
+ S_IWUSR, proc_asrc);
+ if (proc_attr) {
+ proc_attr->read_proc = asrc_read_proc_attr;
+ proc_attr->write_proc = asrc_write_proc_attr;
+ proc_attr->size = 48;
+ proc_attr->uid = proc_attr->gid = 0;
+ } else {
+ remove_proc_entry(ASRC_PROC_PATH, NULL);
+ pr_info("Failed to create proc attribute entry \n");
+ }
+ } else {
+ pr_info("ASRC: Failed to create proc entry %s\n",
+ ASRC_PROC_PATH);
+ }
+}
+
+/*!
+ * Entry point for the asrc device
+ *
+ * @param pdev Pionter to the registered platform device
+ * @return Error code indicating success or failure
+ */
+static int mxc_asrc_probe(struct platform_device *pdev)
+{
+ int err = 0;
+ struct resource *res;
+ struct device *temp_class;
+ int irq;
+ res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+ if (!res)
+ return -ENOENT;
+
+ g_asrc_data = kzalloc(sizeof(struct asrc_data), GFP_KERNEL);
+
+ if (g_asrc_data == NULL) {
+ pr_info("Failed to allocate g_asrc_data\n");
+ return -ENOMEM;
+ }
+
+ g_asrc_data->asrc_pair[0].chn_max = 2;
+ g_asrc_data->asrc_pair[1].chn_max = 2;
+ g_asrc_data->asrc_pair[2].chn_max = 6;
+ g_asrc_data->asrc_pair[0].overload_error = 0;
+ g_asrc_data->asrc_pair[1].overload_error = 0;
+ g_asrc_data->asrc_pair[2].overload_error = 0;
+
+ asrc_major = register_chrdev(asrc_major, "mxc_asrc", &asrc_fops);
+ if (asrc_major < 0) {
+ pr_info("Unable to register asrc device\n");
+ err = -EBUSY;
+ goto error;
+ }
+
+ asrc_class = class_create(THIS_MODULE, "mxc_asrc");
+ if (IS_ERR(asrc_class)) {
+ err = PTR_ERR(asrc_class);
+ goto err_out_chrdev;
+ }
+
+ temp_class = device_create(asrc_class, NULL, MKDEV(asrc_major, 0),
+ NULL, "mxc_asrc");
+ if (IS_ERR(temp_class)) {
+ err = PTR_ERR(temp_class);
+ goto err_out_class;
+ }
+
+ asrc_vrt_base_addr =
+ (unsigned long)ioremap(res->start, res->end - res->start + 1);
+
+ mxc_asrc_data =
+ (struct mxc_asrc_platform_data *)pdev->dev.platform_data;
+ clk_enable(mxc_asrc_data->asrc_core_clk);
+
+ switch (mxc_asrc_data->clk_map_ver) {
+ case 1:
+ input_clk_map = &input_clk_map_v1[0];
+ output_clk_map = &output_clk_map_v1[0];
+ break;
+ case 2:
+ default:
+ input_clk_map = &input_clk_map_v2[0];
+ output_clk_map = &output_clk_map_v2[0];
+ break;
+ }
+ irq = platform_get_irq(pdev, 0);
+ if (request_irq(irq, asrc_isr, 0, "asrc", NULL))
+ return -1;
+
+ asrc_proc_create();
+ err = mxc_init_asrc();
+ if (err < 0)
+ goto err_out_class;
+
+ goto out;
+
+ err_out_class:
+ clk_disable(mxc_asrc_data->asrc_core_clk);
+ device_destroy(asrc_class, MKDEV(asrc_major, 0));
+ class_destroy(asrc_class);
+ err_out_chrdev:
+ unregister_chrdev(asrc_major, "mxc_asrc");
+ error:
+ kfree(g_asrc_data);
+ out:
+ pr_info("mxc_asrc registered\n");
+ return err;
+}
+
+/*!
+ * Exit asrc device
+ *
+ * @param pdev Pionter to the registered platform device
+ * @return Error code indicating success or failure
+ */
+static int mxc_asrc_remove(struct platform_device *pdev)
+{
+ int irq = platform_get_irq(pdev, 0);
+ free_irq(irq, NULL);
+ kfree(g_asrc_data);
+ clk_disable(mxc_asrc_data->asrc_core_clk);
+ mxc_asrc_data = NULL;
+ iounmap((unsigned long __iomem *)asrc_vrt_base_addr);
+ remove_proc_entry("ChSettings", proc_asrc);
+ remove_proc_entry(ASRC_PROC_PATH, NULL);
+ device_destroy(asrc_class, MKDEV(asrc_major, 0));
+ class_destroy(asrc_class);
+ unregister_chrdev(asrc_major, "mxc_asrc");
+ return 0;
+}
+
+/*! mxc asrc driver definition
+ *
+ */
+static struct platform_driver mxc_asrc_driver = {
+ .driver = {
+ .name = "mxc_asrc",
+ },
+ .probe = mxc_asrc_probe,
+ .remove = mxc_asrc_remove,
+};
+
+/*!
+ * Register asrc driver
+ *
+ */
+static __init int asrc_init(void)
+{
+ int ret;
+ ret = platform_driver_register(&mxc_asrc_driver);
+ return ret;
+}
+
+/*!
+ * Exit and free the asrc data
+ *
+ */ static void __exit asrc_exit(void)
+{
+ platform_driver_unregister(&mxc_asrc_driver);
+ return;
+}
+
+module_init(asrc_init);
+module_exit(asrc_exit);
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_DESCRIPTION("Asynchronous Sample Rate Converter");
+MODULE_LICENSE("GPL");
diff --git a/drivers/mxc/bt/Kconfig b/drivers/mxc/bt/Kconfig
new file mode 100644
index 000000000000..9dbfbe57a14f
--- /dev/null
+++ b/drivers/mxc/bt/Kconfig
@@ -0,0 +1,13 @@
+#
+# Bluetooth configuration
+#
+
+menu "MXC Bluetooth support"
+
+config MXC_BLUETOOTH
+ tristate "MXC Bluetooth support"
+ depends on MACH_MX31_3DS || MACH_MX35_3DS || MACH_MX37_3DS || MACH_MX51_3DS
+ ---help---
+ Say Y to get the third party Bluetooth service.
+
+endmenu
diff --git a/drivers/mxc/bt/Makefile b/drivers/mxc/bt/Makefile
new file mode 100644
index 000000000000..91bc4cff380e
--- /dev/null
+++ b/drivers/mxc/bt/Makefile
@@ -0,0 +1,4 @@
+#
+# Makefile for the kernel Bluetooth power-on/reset
+#
+obj-$(CONFIG_MXC_BLUETOOTH) += mxc_bt.o
diff --git a/drivers/mxc/bt/mxc_bt.c b/drivers/mxc/bt/mxc_bt.c
new file mode 100644
index 000000000000..4ac37d06f2e9
--- /dev/null
+++ b/drivers/mxc/bt/mxc_bt.c
@@ -0,0 +1,128 @@
+/*
+ * Copyright 2008-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file mxc_bt.c
+ *
+ * @brief MXC Thirty party Bluetooth
+ *
+ */
+
+#include <linux/module.h>
+#include <linux/platform_device.h>
+#include <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/regulator/consumer.h>
+#include <linux/fsl_devices.h>
+
+static struct regulator *bt_vdd;
+static struct regulator *bt_vdd_parent;
+static struct regulator *bt_vusb;
+static struct regulator *bt_vusb_parent;
+
+/*!
+ * This function poweron the bluetooth hardware module
+ *
+ * @param pdev Pointer to the platform device
+ * @return 0 on success, -1 otherwise.
+ */
+static int mxc_bt_probe(struct platform_device *pdev)
+{
+ struct mxc_bt_platform_data *platform_data;
+ platform_data = (struct mxc_bt_platform_data *)pdev->dev.platform_data;
+ if (platform_data->bt_vdd) {
+ bt_vdd = regulator_get(&pdev->dev, platform_data->bt_vdd);
+ regulator_enable(bt_vdd);
+ }
+ if (platform_data->bt_vdd_parent) {
+ bt_vdd_parent =
+ regulator_get(&pdev->dev, platform_data->bt_vdd_parent);
+ regulator_enable(bt_vdd_parent);
+ }
+ if (platform_data->bt_vusb) {
+ bt_vusb = regulator_get(&pdev->dev, platform_data->bt_vusb);
+ regulator_enable(bt_vusb);
+ }
+ if (platform_data->bt_vusb_parent) {
+ bt_vusb_parent =
+ regulator_get(&pdev->dev, platform_data->bt_vusb_parent);
+ regulator_enable(bt_vusb_parent);
+ }
+
+ if (platform_data->bt_reset != NULL)
+ platform_data->bt_reset();
+ return 0;
+
+}
+
+/*!
+ * This function poweroff the bluetooth hardware module
+ *
+ * @param pdev Pointer to the platform device
+ * @return 0 on success, -1 otherwise.
+ */
+static int mxc_bt_remove(struct platform_device *pdev)
+{
+ struct mxc_bt_platform_data *platform_data;
+ platform_data = (struct mxc_bt_platform_data *)pdev->dev.platform_data;
+ if (bt_vdd) {
+ regulator_disable(bt_vdd);
+ regulator_put(bt_vdd);
+ }
+ if (bt_vdd_parent) {
+ regulator_disable(bt_vdd_parent);
+ regulator_put(bt_vdd_parent);
+ }
+ if (bt_vusb) {
+ regulator_disable(bt_vusb);
+ regulator_put(bt_vusb);
+ }
+ if (bt_vusb_parent) {
+ regulator_disable(bt_vusb_parent);
+ regulator_put(bt_vusb_parent);
+ }
+ return 0;
+
+}
+
+static struct platform_driver bluetooth_driver = {
+ .driver = {
+ .name = "mxc_bt",
+ },
+ .probe = mxc_bt_probe,
+ .remove = mxc_bt_remove,
+};
+
+/*!
+ * Register bluetooth driver module
+ *
+ */
+static __init int bluetooth_init(void)
+{
+ return platform_driver_register(&bluetooth_driver);
+}
+
+/*!
+ * Exit and free the bluetooth module
+ *
+ */
+static void __exit bluetooth_exit(void)
+{
+ platform_driver_unregister(&bluetooth_driver);
+}
+
+module_init(bluetooth_init);
+module_exit(bluetooth_exit);
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_DESCRIPTION("MXC Thirty party Bluetooth");
+MODULE_LICENSE("GPL");
diff --git a/drivers/mxc/dam/Kconfig b/drivers/mxc/dam/Kconfig
new file mode 100644
index 000000000000..7b4bee92f648
--- /dev/null
+++ b/drivers/mxc/dam/Kconfig
@@ -0,0 +1,13 @@
+#
+# DAM API configuration
+#
+
+menu "MXC Digital Audio Multiplexer support"
+
+config MXC_DAM
+ tristate "DAM support"
+ depends on ARCH_MXC
+ ---help---
+ Say Y to get the Digital Audio Multiplexer services API available on MXC platform.
+
+endmenu
diff --git a/drivers/mxc/dam/Makefile b/drivers/mxc/dam/Makefile
new file mode 100644
index 000000000000..b5afdc143dfa
--- /dev/null
+++ b/drivers/mxc/dam/Makefile
@@ -0,0 +1,9 @@
+#
+# Makefile for the kernel Digital Audio MUX (DAM) device driver.
+#
+
+ifeq ($(CONFIG_ARCH_MX27),y)
+ obj-$(CONFIG_MXC_DAM) += dam_v1.o
+else
+ obj-$(CONFIG_MXC_DAM) += dam.o
+endif
diff --git a/drivers/mxc/dam/dam.c b/drivers/mxc/dam/dam.c
new file mode 100644
index 000000000000..76ce04e7f171
--- /dev/null
+++ b/drivers/mxc/dam/dam.c
@@ -0,0 +1,427 @@
+/*
+ * Copyright 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file dam.c
+ * @brief This is the brief documentation for this dam.c file.
+ *
+ * This file contains the implementation of the DAM driver main services
+ *
+ * @ingroup DAM
+ */
+
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/init.h>
+#include <linux/slab.h>
+#include <asm/uaccess.h>
+#include "dam.h"
+
+/*!
+ * This include to define bool type, false and true definitions.
+ */
+#include <mach/hardware.h>
+
+#define ModifyRegister32(a, b, c) (c = (((c)&(~(a))) | (b)))
+
+#define DAM_VIRT_BASE_ADDR IO_ADDRESS(AUDMUX_BASE_ADDR)
+
+#ifndef _reg_DAM_PTCR1
+#define _reg_DAM_PTCR1 (*((volatile unsigned long *) \
+ (DAM_VIRT_BASE_ADDR + 0x00)))
+#endif
+
+#ifndef _reg_DAM_PDCR1
+#define _reg_DAM_PDCR1 (*((volatile unsigned long *) \
+ (DAM_VIRT_BASE_ADDR + 0x04)))
+#endif
+
+#ifndef _reg_DAM_PTCR2
+#define _reg_DAM_PTCR2 (*((volatile unsigned long *) \
+ (DAM_VIRT_BASE_ADDR + 0x08)))
+#endif
+
+#ifndef _reg_DAM_PDCR2
+#define _reg_DAM_PDCR2 (*((volatile unsigned long *) \
+ (DAM_VIRT_BASE_ADDR + 0x0C)))
+#endif
+
+#ifndef _reg_DAM_PTCR3
+#define _reg_DAM_PTCR3 (*((volatile unsigned long *) \
+ (DAM_VIRT_BASE_ADDR + 0x10)))
+#endif
+
+#ifndef _reg_DAM_PDCR3
+#define _reg_DAM_PDCR3 (*((volatile unsigned long *) \
+ (DAM_VIRT_BASE_ADDR + 0x14)))
+#endif
+
+#ifndef _reg_DAM_PTCR4
+#define _reg_DAM_PTCR4 (*((volatile unsigned long *) \
+ (DAM_VIRT_BASE_ADDR + 0x18)))
+#endif
+
+#ifndef _reg_DAM_PDCR4
+#define _reg_DAM_PDCR4 (*((volatile unsigned long *) \
+ (DAM_VIRT_BASE_ADDR + 0x1C)))
+#endif
+
+#ifndef _reg_DAM_PTCR5
+#define _reg_DAM_PTCR5 (*((volatile unsigned long *) \
+ (DAM_VIRT_BASE_ADDR + 0x20)))
+#endif
+
+#ifndef _reg_DAM_PDCR5
+#define _reg_DAM_PDCR5 (*((volatile unsigned long *) \
+ (DAM_VIRT_BASE_ADDR + 0x24)))
+#endif
+
+#ifndef _reg_DAM_PTCR6
+#define _reg_DAM_PTCR6 (*((volatile unsigned long *) \
+ (DAM_VIRT_BASE_ADDR + 0x28)))
+#endif
+
+#ifndef _reg_DAM_PDCR6
+#define _reg_DAM_PDCR6 (*((volatile unsigned long *) \
+ (DAM_VIRT_BASE_ADDR + 0x2C)))
+#endif
+
+#ifndef _reg_DAM_PTCR7
+#define _reg_DAM_PTCR7 (*((volatile unsigned long *) \
+ (DAM_VIRT_BASE_ADDR + 0x30)))
+#endif
+
+#ifndef _reg_DAM_PDCR7
+#define _reg_DAM_PDCR7 (*((volatile unsigned long *) \
+ (DAM_VIRT_BASE_ADDR + 0x34)))
+#endif
+
+#ifndef _reg_DAM_CNMCR
+#define _reg_DAM_CNMCR (*((volatile unsigned long *) \
+ (DAM_VIRT_BASE_ADDR + 0x38)))
+#endif
+
+#ifndef _reg_DAM_PTCR
+#define _reg_DAM_PTCR(a) (*((volatile unsigned long *) \
+ (DAM_VIRT_BASE_ADDR + a*8)))
+#endif
+
+#ifndef _reg_DAM_PDCR
+#define _reg_DAM_PDCR(a) (*((volatile unsigned long *) \
+ (DAM_VIRT_BASE_ADDR + 4 + a*8)))
+#endif
+
+/*!
+ * PTCR Registers bit shift definitions
+ */
+#define dam_synchronous_mode_shift 11
+#define dam_receive_clock_select_shift 12
+#define dam_receive_clock_direction_shift 16
+#define dam_receive_frame_sync_select_shift 17
+#define dam_receive_frame_sync_direction_shift 21
+#define dam_transmit_clock_select_shift 22
+#define dam_transmit_clock_direction_shift 26
+#define dam_transmit_frame_sync_select_shift 27
+#define dam_transmit_frame_sync_direction_shift 31
+#define dam_selection_mask 0xF
+
+/*!
+ * HPDCR Register bit shift definitions
+ */
+#define dam_internal_network_mode_shift 0
+#define dam_mode_shift 8
+#define dam_transmit_receive_switch_shift 12
+#define dam_receive_data_select_shift 13
+
+/*!
+ * HPDCR Register bit masq definitions
+ */
+#define dam_mode_masq 0x03
+#define dam_internal_network_mode_mask 0xFF
+
+/*!
+ * CNMCR Register bit shift definitions
+ */
+#define dam_ce_bus_port_cntlow_shift 0
+#define dam_ce_bus_port_cnthigh_shift 8
+#define dam_ce_bus_port_clkpol_shift 16
+#define dam_ce_bus_port_fspol_shift 17
+#define dam_ce_bus_port_enable_shift 18
+
+#define DAM_NAME "dam"
+
+EXPORT_SYMBOL(dam_select_mode);
+EXPORT_SYMBOL(dam_select_RxClk_direction);
+EXPORT_SYMBOL(dam_select_RxClk_source);
+EXPORT_SYMBOL(dam_select_RxD_source);
+EXPORT_SYMBOL(dam_select_RxFS_direction);
+EXPORT_SYMBOL(dam_select_RxFS_source);
+EXPORT_SYMBOL(dam_select_TxClk_direction);
+EXPORT_SYMBOL(dam_select_TxClk_source);
+EXPORT_SYMBOL(dam_select_TxFS_direction);
+EXPORT_SYMBOL(dam_select_TxFS_source);
+EXPORT_SYMBOL(dam_set_internal_network_mode_mask);
+EXPORT_SYMBOL(dam_set_synchronous);
+EXPORT_SYMBOL(dam_switch_Tx_Rx);
+EXPORT_SYMBOL(dam_reset_register);
+
+/*!
+ * This function selects the operation mode of the port.
+ *
+ * @param port the DAM port to configure
+ * @param the_mode the operation mode of the port
+ *
+ * @return This function returns the result of the operation
+ * (0 if successful, -1 otherwise).
+ */
+int dam_select_mode(dam_port port, dam_mode the_mode)
+{
+ int result;
+ result = 0;
+
+ ModifyRegister32(dam_mode_masq << dam_mode_shift,
+ the_mode << dam_mode_shift, _reg_DAM_PDCR(port));
+
+ return result;
+}
+
+/*!
+ * This function controls Receive clock signal direction for the port.
+ *
+ * @param port the DAM port to configure
+ * @param direction the Rx clock signal direction
+ */
+void dam_select_RxClk_direction(dam_port port, signal_direction direction)
+{
+ ModifyRegister32(1 << dam_receive_clock_direction_shift,
+ direction << dam_receive_clock_direction_shift,
+ _reg_DAM_PTCR(port));
+}
+
+/*!
+ * This function controls Receive clock signal source for the port.
+ *
+ * @param p_config the DAM port to configure
+ * @param from_RxClk the signal comes from RxClk or TxClk of
+ * the source port
+ * @param p_source the source port
+ */
+void dam_select_RxClk_source(dam_port p_config,
+ bool from_RxClk, dam_port p_source)
+{
+ ModifyRegister32(dam_selection_mask << dam_receive_clock_select_shift,
+ ((from_RxClk << 3) | p_source) <<
+ dam_receive_clock_select_shift,
+ _reg_DAM_PTCR(p_config));
+}
+
+/*!
+ * This function selects the source port for the RxD data.
+ *
+ * @param p_config the DAM port to configure
+ * @param p_source the source port
+ */
+void dam_select_RxD_source(dam_port p_config, dam_port p_source)
+{
+ ModifyRegister32(dam_selection_mask << dam_receive_data_select_shift,
+ p_source << dam_receive_data_select_shift,
+ _reg_DAM_PDCR(p_config));
+}
+
+/*!
+ * This function controls Receive Frame Sync signal direction for the port.
+ *
+ * @param port the DAM port to configure
+ * @param direction the Rx Frame Sync signal direction
+ */
+void dam_select_RxFS_direction(dam_port port, signal_direction direction)
+{
+ ModifyRegister32(1 << dam_receive_frame_sync_direction_shift,
+ direction << dam_receive_frame_sync_direction_shift,
+ _reg_DAM_PTCR(port));
+}
+
+/*!
+ * This function controls Receive Frame Sync signal source for the port.
+ *
+ * @param p_config the DAM port to configure
+ * @param from_RxFS the signal comes from RxFS or TxFS of
+ * the source port
+ * @param p_source the source port
+ */
+void dam_select_RxFS_source(dam_port p_config,
+ bool from_RxFS, dam_port p_source)
+{
+ ModifyRegister32(dam_selection_mask <<
+ dam_receive_frame_sync_select_shift,
+ ((from_RxFS << 3) | p_source) <<
+ dam_receive_frame_sync_select_shift,
+ _reg_DAM_PTCR(p_config));
+}
+
+/*!
+ * This function controls Transmit clock signal direction for the port.
+ *
+ * @param port the DAM port to configure
+ * @param direction the Tx clock signal direction
+ */
+void dam_select_TxClk_direction(dam_port port, signal_direction direction)
+{
+ ModifyRegister32(1 << dam_transmit_clock_direction_shift,
+ direction << dam_transmit_clock_direction_shift,
+ _reg_DAM_PTCR(port));
+}
+
+/*!
+ * This function controls Transmit clock signal source for the port.
+ *
+ * @param p_config the DAM port to configure
+ * @param from_RxClk the signal comes from RxClk or TxClk of
+ * the source port
+ * @param p_source the source port
+ */
+void dam_select_TxClk_source(dam_port p_config,
+ bool from_RxClk, dam_port p_source)
+{
+ ModifyRegister32(dam_selection_mask << dam_transmit_clock_select_shift,
+ ((from_RxClk << 3) | p_source) <<
+ dam_transmit_clock_select_shift,
+ _reg_DAM_PTCR(p_config));
+}
+
+/*!
+ * This function controls Transmit Frame Sync signal direction for the port.
+ *
+ * @param port the DAM port to configure
+ * @param direction the Tx Frame Sync signal direction
+ */
+void dam_select_TxFS_direction(dam_port port, signal_direction direction)
+{
+ ModifyRegister32(1 << dam_transmit_frame_sync_direction_shift,
+ direction << dam_transmit_frame_sync_direction_shift,
+ _reg_DAM_PTCR(port));
+}
+
+/*!
+ * This function controls Transmit Frame Sync signal source for the port.
+ *
+ * @param p_config the DAM port to configure
+ * @param from_RxFS the signal comes from RxFS or TxFS of
+ * the source port
+ * @param p_source the source port
+ */
+void dam_select_TxFS_source(dam_port p_config,
+ bool from_RxFS, dam_port p_source)
+{
+ ModifyRegister32(dam_selection_mask <<
+ dam_transmit_frame_sync_select_shift,
+ ((from_RxFS << 3) | p_source) <<
+ dam_transmit_frame_sync_select_shift,
+ _reg_DAM_PTCR(p_config));
+}
+
+/*!
+ * This function sets a bit mask that selects the port from which of the RxD
+ * signals are to be ANDed together for internal network mode.
+ * Bit 6 represents RxD from Port7 and bit0 represents RxD from Port1.
+ * 1 excludes RxDn from ANDing. 0 includes RxDn for ANDing.
+ *
+ * @param port the DAM port to configure
+ * @param bit_mask the bit mask
+ *
+ * @return This function returns the result of the operation
+ * (0 if successful, -1 otherwise).
+ */
+int dam_set_internal_network_mode_mask(dam_port port, unsigned char bit_mask)
+{
+ int result;
+ result = 0;
+
+ ModifyRegister32(dam_internal_network_mode_mask <<
+ dam_internal_network_mode_shift,
+ bit_mask << dam_internal_network_mode_shift,
+ _reg_DAM_PDCR(port));
+
+ return result;
+}
+
+/*!
+ * This function controls whether or not the port is in synchronous mode.
+ * When the synchronous mode is selected, the receive and the transmit sections
+ * use common clock and frame sync signals.
+ * When the synchronous mode is not selected, separate clock and frame sync
+ * signals are used for the transmit and the receive sections.
+ * The defaut value is the synchronous mode selected.
+ *
+ * @param port the DAM port to configure
+ * @param synchronous the state to assign
+ */
+void dam_set_synchronous(dam_port port, bool synchronous)
+{
+ ModifyRegister32(1 << dam_synchronous_mode_shift,
+ synchronous << dam_synchronous_mode_shift,
+ _reg_DAM_PTCR(port));
+}
+
+/*!
+ * This function swaps the transmit and receive signals from (Da-TxD, Db-RxD)
+ * to (Da-RxD, Db-TxD).
+ * This default signal configuration is Da-TxD, Db-RxD.
+ *
+ * @param port the DAM port to configure
+ * @param value the switch state
+ */
+void dam_switch_Tx_Rx(dam_port port, bool value)
+{
+ ModifyRegister32(1 << dam_transmit_receive_switch_shift,
+ value << dam_transmit_receive_switch_shift,
+ _reg_DAM_PDCR(port));
+}
+
+/*!
+ * This function resets the two registers of the selected port.
+ *
+ * @param port the DAM port to reset
+ */
+void dam_reset_register(dam_port port)
+{
+ ModifyRegister32(0xFFFFFFFF, 0x00000000, _reg_DAM_PTCR(port));
+ ModifyRegister32(0xFFFFFFFF, 0x00000000, _reg_DAM_PDCR(port));
+}
+
+/*!
+ * This function implements the init function of the DAM device.
+ * This function is called when the module is loaded.
+ *
+ * @return This function returns 0.
+ */
+static int __init dam_init(void)
+{
+ return 0;
+}
+
+/*!
+ * This function implements the exit function of the SPI device.
+ * This function is called when the module is unloaded.
+ *
+ */
+static void __exit dam_exit(void)
+{
+}
+
+module_init(dam_init);
+module_exit(dam_exit);
+
+MODULE_DESCRIPTION("DAM char device driver");
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_LICENSE("GPL");
diff --git a/drivers/mxc/dam/dam.h b/drivers/mxc/dam/dam.h
new file mode 100644
index 000000000000..ad49c8e3c5b1
--- /dev/null
+++ b/drivers/mxc/dam/dam.h
@@ -0,0 +1,258 @@
+/*
+ * Copyright 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+ /*!
+ * @defgroup DAM Digital Audio Multiplexer (AUDMUX) Driver
+ */
+
+ /*!
+ * @file dam.h
+ * @brief This is the brief documentation for this dam.h file.
+ *
+ * This header file contains DAM driver functions prototypes.
+ *
+ * @ingroup DAM
+ */
+
+#ifndef __MXC_DAM_H__
+#define __MXC_DAM_H__
+
+/*!
+ * This enumeration describes the Digital Audio Multiplexer mode.
+ */
+typedef enum {
+
+ /*!
+ * Normal mode
+ */
+ normal_mode = 0,
+
+ /*!
+ * Internal network mode
+ */
+ internal_network_mode = 1,
+
+ /*!
+ * CE bus network mode
+ */
+ CE_bus_network_mode = 2
+} dam_mode;
+
+/*!
+ * This enumeration describes the port.
+ */
+typedef enum {
+
+ /*!
+ * The port 1
+ */
+ port_1 = 0,
+
+ /*!
+ * The port 2
+ */
+ port_2 = 1,
+
+ /*!
+ * The port 3
+ */
+ port_3 = 2,
+
+ /*!
+ * The port 4
+ */
+ port_4 = 3,
+
+ /*!
+ * The port 5
+ */
+ port_5 = 4,
+
+ /*!
+ * The port 6
+ */
+ port_6 = 5,
+
+ /*!
+ * The port 7
+ */
+ port_7 = 6
+} dam_port;
+
+/*!
+ * This enumeration describes the signal direction.
+ */
+typedef enum {
+
+ /*!
+ * Signal In
+ */
+ signal_in = 0,
+
+ /*!
+ * Signal Out
+ */
+ signal_out = 1
+} signal_direction;
+
+/*!
+ * Test purpose definition
+ */
+#define TEST_DAM 1
+
+#ifdef TEST_DAM
+
+#define DAM_IOCTL 0x55
+#define DAM_CONFIG_SSI1_MC13783 _IOWR(DAM_IOCTL, 1, int)
+#define DAM_CONFIG_SSI2_MC13783 _IOWR(DAM_IOCTL, 2, int)
+#define DAM_CONFIG_SSI_NETWORK_MODE_MC13783 _IOWR(DAM_IOCTL, 3, int)
+#endif
+
+/*!
+ * This function selects the operation mode of the port.
+ *
+ * @param port the DAM port to configure
+ * @param the_mode the operation mode of the port
+ * @return This function returns the result of the operation
+ * (0 if successful, -1 otherwise).
+ */
+int dam_select_mode(dam_port port, dam_mode the_mode);
+
+/*!
+ * This function controls Receive clock signal direction for the port.
+ *
+ * @param port the DAM port to configure
+ * @param direction the Rx clock signal direction
+ */
+void dam_select_RxClk_direction(dam_port port, signal_direction direction);
+
+/*!
+ * This function controls Receive clock signal source for the port.
+ *
+ * @param p_config the DAM port to configure
+ * @param from_RxClk the signal comes from RxClk or TxClk of
+ * the source port
+ * @param p_source the source port
+ */
+void dam_select_RxClk_source(dam_port p_config, bool from_RxClk,
+ dam_port p_source);
+
+/*!
+ * This function selects the source port for the RxD data.
+ *
+ * @param p_config the DAM port to configure
+ * @param p_source the source port
+ */
+void dam_select_RxD_source(dam_port p_config, dam_port p_source);
+
+/*!
+ * This function controls Receive Frame Sync signal direction for the port.
+ *
+ * @param port the DAM port to configure
+ * @param direction the Rx Frame Sync signal direction
+ */
+void dam_select_RxFS_direction(dam_port port, signal_direction direction);
+
+/*!
+ * This function controls Receive Frame Sync signal source for the port.
+ *
+ * @param p_config the DAM port to configure
+ * @param from_RxFS the signal comes from RxFS or TxFS of
+ * the source port
+ * @param p_source the source port
+ */
+void dam_select_RxFS_source(dam_port p_config, bool from_RxFS,
+ dam_port p_source);
+
+/*!
+ * This function controls Transmit clock signal direction for the port.
+ *
+ * @param port the DAM port to configure
+ * @param direction the Tx clock signal direction
+ */
+void dam_select_TxClk_direction(dam_port port, signal_direction direction);
+
+/*!
+ * This function controls Transmit clock signal source for the port.
+ *
+ * @param p_config the DAM port to configure
+ * @param from_RxClk the signal comes from RxClk or TxClk of
+ * the source port
+ * @param p_source the source port
+ */
+void dam_select_TxClk_source(dam_port p_config, bool from_RxClk,
+ dam_port p_source);
+
+/*!
+ * This function controls Transmit Frame Sync signal direction for the port.
+ *
+ * @param port the DAM port to configure
+ * @param direction the Tx Frame Sync signal direction
+ */
+void dam_select_TxFS_direction(dam_port port, signal_direction direction);
+
+/*!
+ * This function controls Transmit Frame Sync signal source for the port.
+ *
+ * @param p_config the DAM port to configure
+ * @param from_RxFS the signal comes from RxFS or TxFS of
+ * the source port
+ * @param p_source the source port
+ */
+void dam_select_TxFS_source(dam_port p_config, bool from_RxFS,
+ dam_port p_source);
+
+/*!
+ * This function sets a bit mask that selects the port from which of
+ * the RxD signals are to be ANDed together for internal network mode.
+ * Bit 6 represents RxD from Port7 and bit0 represents RxD from Port1.
+ * 1 excludes RxDn from ANDing. 0 includes RxDn for ANDing.
+ *
+ * @param port the DAM port to configure
+ * @param bit_mask the bit mask
+ * @return This function returns the result of the operation
+ * (0 if successful, -1 otherwise).
+ */
+int dam_set_internal_network_mode_mask(dam_port port, unsigned char bit_mask);
+
+/*!
+ * This function controls whether or not the port is in synchronous mode.
+ * When the synchronous mode is selected, the receive and the transmit sections
+ * use common clock and frame sync signals.
+ * When the synchronous mode is not selected, separate clock and frame sync
+ * signals are used for the transmit and the receive sections.
+ * The defaut value is the synchronous mode selected.
+ *
+ * @param port the DAM port to configure
+ * @param synchronous the state to assign
+ */
+void dam_set_synchronous(dam_port port, bool synchronous);
+
+/*!
+ * This function swaps the transmit and receive signals from (Da-TxD, Db-RxD) to
+ * (Da-RxD, Db-TxD).
+ * This default signal configuration is Da-TxD, Db-RxD.
+ *
+ * @param port the DAM port to configure
+ * @param value the switch state
+ */
+void dam_switch_Tx_Rx(dam_port port, bool value);
+
+/*!
+ * This function resets the two registers of the selected port.
+ *
+ * @param port the DAM port to reset
+ */
+void dam_reset_register(dam_port port);
+
+#endif
diff --git a/drivers/mxc/dam/dam_v1.c b/drivers/mxc/dam/dam_v1.c
new file mode 100644
index 000000000000..b6c9a6f068e5
--- /dev/null
+++ b/drivers/mxc/dam/dam_v1.c
@@ -0,0 +1,617 @@
+/*
+ * Copyright 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file dam_v1.c
+ * @brief This is the brief documentation for this dam_v1.c file.
+ *
+ * This file contains the implementation of the DAM driver main services
+ *
+ * @ingroup DAM
+ */
+
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/init.h>
+#include <linux/device.h>
+#include <linux/slab.h>
+#include <linux/fs.h>
+#include <linux/io.h>
+#include <asm/uaccess.h>
+#include "dam.h"
+
+/*!
+ * This include to define bool type, false and true definitions.
+ */
+#include <mach/hardware.h>
+
+#define DAM_VIRT_BASE_ADDR IO_ADDRESS(AUDMUX_BASE_ADDR)
+
+#define ModifyRegister32(a, b, c) do {\
+ __raw_writel(((__raw_readl(c)) & (~(a))) | (b), (c));\
+} while (0)
+
+#ifndef _reg_DAM_HPCR1
+#define _reg_DAM_HPCR1 (*((volatile unsigned long *) \
+ (DAM_VIRT_BASE_ADDR + 0x00)))
+#endif
+
+#ifndef _reg_DAM_HPCR2
+#define _reg_DAM_HPCR2 (*((volatile unsigned long *) \
+ (DAM_VIRT_BASE_ADDR + 0x04)))
+#endif
+
+#ifndef _reg_DAM_HPCR3
+#define _reg_DAM_HPCR3 (*((volatile unsigned long *) \
+ (DAM_VIRT_BASE_ADDR + 0x08)))
+#endif
+
+#ifndef _reg_DAM_PPCR1
+#define _reg_DAM_PPCR1 (*((volatile unsigned long *) \
+ (DAM_VIRT_BASE_ADDR + 0x10)))
+#endif
+
+#ifndef _reg_DAM_PPCR2
+#define _reg_DAM_PPCR2 (*((volatile unsigned long *) \
+ (DAM_VIRT_BASE_ADDR + 0x14)))
+#endif
+
+#ifndef _reg_DAM_PPCR3
+#define _reg_DAM_PPCR3 (*((volatile unsigned long *) \
+ (DAM_VIRT_BASE_ADDR + 0x1c)))
+#endif
+
+#ifndef _reg_DAM_HPCR
+#define _reg_DAM_HPCR(a) ((volatile unsigned long *) \
+ (DAM_VIRT_BASE_ADDR + (a)*4))
+#endif
+
+#ifndef _reg_DAM_PPCR
+#define _reg_DAM_PPCR(a) ((volatile unsigned long *) \
+ (DAM_VIRT_BASE_ADDR + 0x0c + (0x04 << (a-3))))
+#endif
+
+/*!
+ * HPCR/PPCR Registers bit shift definitions
+ */
+#define dam_transmit_frame_sync_direction_shift 31
+#define dam_transmit_clock_direction_shift 30
+#define dam_transmit_frame_sync_select_shift 26
+#define dam_transmit_clock_select_shift 26
+#define dam_receive_frame_sync_direction_shift 25
+#define dam_receive_clock_direction_shift 24
+#define dam_receive_clock_select_shift 20
+#define dam_receive_frame_sync_select_shift 20
+
+#define dam_receive_data_select_shift 13
+#define dam_synchronous_mode_shift 12
+
+#define dam_transmit_receive_switch_shift 10
+
+#define dam_mode_shift 8
+#define dam_internal_network_mode_shift 0
+
+/*!
+ * HPCR/PPCR Register bit masq definitions
+ */
+/*#define dam_selection_mask 0xF*/
+#define dam_fs_selection_mask 0xF
+#define dam_clk_selection_mask 0xF
+#define dam_dat_selection_mask 0x7
+/*#define dam_mode_masq 0x03*/
+#define dam_internal_network_mode_mask 0xFF
+
+/*!
+ * HPCR/PPCR Register reset value definitions
+ */
+#define dam_hpcr_default_value 0x00001000
+#define dam_ppcr_default_value 0x00001000
+
+#define DAM_NAME "dam"
+static struct class *mxc_dam_class;
+
+EXPORT_SYMBOL(dam_select_mode);
+EXPORT_SYMBOL(dam_select_RxClk_direction);
+EXPORT_SYMBOL(dam_select_RxClk_source);
+EXPORT_SYMBOL(dam_select_RxD_source);
+EXPORT_SYMBOL(dam_select_RxFS_direction);
+EXPORT_SYMBOL(dam_select_RxFS_source);
+EXPORT_SYMBOL(dam_select_TxClk_direction);
+EXPORT_SYMBOL(dam_select_TxClk_source);
+EXPORT_SYMBOL(dam_select_TxFS_direction);
+EXPORT_SYMBOL(dam_select_TxFS_source);
+EXPORT_SYMBOL(dam_set_internal_network_mode_mask);
+EXPORT_SYMBOL(dam_set_synchronous);
+EXPORT_SYMBOL(dam_switch_Tx_Rx);
+EXPORT_SYMBOL(dam_reset_register);
+
+/*!
+ * DAM major
+ */
+#ifdef TEST_DAM
+static int major_dam;
+
+typedef struct _mxc_cfg {
+ int reg;
+ int val;
+} mxc_cfg;
+
+#endif
+
+/*!
+ * This function selects the operation mode of the port.
+ *
+ * @param port the DAM port to configure
+ * @param the_mode the operation mode of the port
+ *
+ * @return This function returns the result of the operation
+ * (0 if successful, -1 otherwise).
+ */
+int dam_select_mode(dam_port port, dam_mode the_mode)
+{
+ int result;
+ result = 0;
+
+ if (port >= 3)
+ the_mode = normal_mode;
+ ModifyRegister32(1 << dam_mode_shift,
+ the_mode << dam_mode_shift, _reg_DAM_HPCR(port));
+
+ return result;
+}
+
+/*!
+ * This function controls Receive clock signal direction for the port.
+ *
+ * @param port the DAM port to configure
+ * @param direction the Rx clock signal direction
+ */
+void dam_select_RxClk_direction(dam_port port, signal_direction direction)
+{
+ if (port < 3) {
+ ModifyRegister32(1 << dam_receive_clock_direction_shift,
+ direction << dam_receive_clock_direction_shift,
+ _reg_DAM_HPCR(port));
+ } else {
+ ModifyRegister32(1 << dam_receive_clock_direction_shift,
+ direction << dam_receive_clock_direction_shift,
+ _reg_DAM_PPCR(port));
+ }
+ return;
+}
+
+/*!
+ * This function controls Receive clock signal source for the port.
+ *
+ * @param p_config the DAM port to configure
+ * @param from_RxClk the signal comes from RxClk or TxClk of
+ * the source port
+ * @param p_source the source port
+ */
+void dam_select_RxClk_source(dam_port p_config,
+ bool from_RxClk, dam_port p_source)
+{
+ if (p_config < 3) {
+ ModifyRegister32(dam_clk_selection_mask <<
+ dam_receive_clock_select_shift,
+ ((from_RxClk << 3) | p_source) <<
+ dam_receive_clock_select_shift,
+ _reg_DAM_HPCR(p_config));
+ } else {
+ ModifyRegister32(dam_clk_selection_mask <<
+ dam_receive_clock_select_shift,
+ ((from_RxClk << 3) | p_source) <<
+ dam_receive_clock_select_shift,
+ _reg_DAM_PPCR(p_config));
+ }
+ return;
+}
+
+/*!
+ * This function selects the source port for the RxD data.
+ *
+ * @param p_config the DAM port to configure
+ * @param p_source the source port
+ */
+void dam_select_RxD_source(dam_port p_config, dam_port p_source)
+{
+ if (p_config < 3) {
+ ModifyRegister32(dam_dat_selection_mask <<
+ dam_receive_data_select_shift,
+ p_source << dam_receive_data_select_shift,
+ _reg_DAM_HPCR(p_config));
+ } else {
+ ModifyRegister32(dam_dat_selection_mask <<
+ dam_receive_data_select_shift,
+ p_source << dam_receive_data_select_shift,
+ _reg_DAM_PPCR(p_config));
+ }
+ return;
+}
+
+/*!
+ * This function controls Receive Frame Sync signal direction for the port.
+ *
+ * @param port the DAM port to configure
+ * @param direction the Rx Frame Sync signal direction
+ */
+void dam_select_RxFS_direction(dam_port port, signal_direction direction)
+{
+ if (port < 3) {
+ ModifyRegister32(1 << dam_receive_frame_sync_direction_shift,
+ direction <<
+ dam_receive_frame_sync_direction_shift,
+ _reg_DAM_HPCR(port));
+ } else {
+ ModifyRegister32(1 << dam_receive_frame_sync_direction_shift,
+ direction <<
+ dam_receive_frame_sync_direction_shift,
+ _reg_DAM_PPCR(port));
+ }
+ return;
+}
+
+/*!
+ * This function controls Receive Frame Sync signal source for the port.
+ *
+ * @param p_config the DAM port to configure
+ * @param from_RxFS the signal comes from RxFS or TxFS of
+ * the source port
+ * @param p_source the source port
+ */
+void dam_select_RxFS_source(dam_port p_config,
+ bool from_RxFS, dam_port p_source)
+{
+ if (p_config < 3) {
+ ModifyRegister32(dam_fs_selection_mask <<
+ dam_receive_frame_sync_select_shift,
+ ((from_RxFS << 3) | p_source) <<
+ dam_receive_frame_sync_select_shift,
+ _reg_DAM_HPCR(p_config));
+ } else {
+ ModifyRegister32(dam_fs_selection_mask <<
+ dam_receive_frame_sync_select_shift,
+ ((from_RxFS << 3) | p_source) <<
+ dam_receive_frame_sync_select_shift,
+ _reg_DAM_PPCR(p_config));
+ }
+ return;
+}
+
+/*!
+ * This function controls Transmit clock signal direction for the port.
+ *
+ * @param port the DAM port to configure
+ * @param direction the Tx clock signal direction
+ */
+void dam_select_TxClk_direction(dam_port port, signal_direction direction)
+{
+ if (port < 3) {
+ ModifyRegister32(1 << dam_transmit_clock_direction_shift,
+ direction <<
+ dam_transmit_clock_direction_shift,
+ _reg_DAM_HPCR(port));
+ } else {
+ ModifyRegister32(1 << dam_transmit_clock_direction_shift,
+ direction <<
+ dam_transmit_clock_direction_shift,
+ _reg_DAM_PPCR(port));
+ }
+ return;
+}
+
+/*!
+ * This function controls Transmit clock signal source for the port.
+ *
+ * @param p_config the DAM port to configure
+ * @param from_RxClk the signal comes from RxClk or TxClk of
+ * the source port
+ * @param p_source the source port
+ */
+void dam_select_TxClk_source(dam_port p_config,
+ bool from_RxClk, dam_port p_source)
+{
+ if (p_config < 3) {
+ ModifyRegister32(dam_clk_selection_mask <<
+ dam_transmit_clock_select_shift,
+ ((from_RxClk << 3) | p_source) <<
+ dam_transmit_clock_select_shift,
+ _reg_DAM_HPCR(p_config));
+ } else {
+ ModifyRegister32(dam_clk_selection_mask <<
+ dam_transmit_clock_select_shift,
+ ((from_RxClk << 3) | p_source) <<
+ dam_transmit_clock_select_shift,
+ _reg_DAM_PPCR(p_config));
+ }
+ return;
+}
+
+/*!
+ * This function controls Transmit Frame Sync signal direction for the port.
+ *
+ * @param port the DAM port to configure
+ * @param direction the Tx Frame Sync signal direction
+ */
+void dam_select_TxFS_direction(dam_port port, signal_direction direction)
+{
+ if (port < 3) {
+ ModifyRegister32(1 << dam_transmit_frame_sync_direction_shift,
+ direction <<
+ dam_transmit_frame_sync_direction_shift,
+ _reg_DAM_HPCR(port));
+ } else {
+ ModifyRegister32(1 << dam_transmit_frame_sync_direction_shift,
+ direction <<
+ dam_transmit_frame_sync_direction_shift,
+ _reg_DAM_HPCR(port));
+ }
+ return;
+}
+
+/*!
+ * This function controls Transmit Frame Sync signal source for the port.
+ *
+ * @param p_config the DAM port to configure
+ * @param from_RxFS the signal comes from RxFS or TxFS of
+ * the source port
+ * @param p_source the source port
+ */
+void dam_select_TxFS_source(dam_port p_config,
+ bool from_RxFS, dam_port p_source)
+{
+ if (p_config < 3) {
+ ModifyRegister32(dam_fs_selection_mask <<
+ dam_transmit_frame_sync_select_shift,
+ ((from_RxFS << 3) | p_source) <<
+ dam_transmit_frame_sync_select_shift,
+ _reg_DAM_HPCR(p_config));
+ } else {
+ ModifyRegister32(dam_fs_selection_mask <<
+ dam_transmit_frame_sync_select_shift,
+ ((from_RxFS << 3) | p_source) <<
+ dam_transmit_frame_sync_select_shift,
+ _reg_DAM_PPCR(p_config));
+ }
+ return;
+}
+
+/*!
+ * This function sets a bit mask that selects the port from which of the RxD
+ * signals are to be ANDed together for internal network mode.
+ * Bit 6 represents RxD from Port7 and bit0 represents RxD from Port1.
+ * 1 excludes RxDn from ANDing. 0 includes RxDn for ANDing.
+ *
+ * @param port the DAM port to configure
+ * @param bit_mask the bit mask
+ *
+ * @return This function returns the result of the operation
+ * (0 if successful, -1 otherwise).
+ */
+int dam_set_internal_network_mode_mask(dam_port port, unsigned char bit_mask)
+{
+ int result;
+ result = 0;
+
+ ModifyRegister32(dam_internal_network_mode_mask <<
+ dam_internal_network_mode_shift,
+ bit_mask << dam_internal_network_mode_shift,
+ _reg_DAM_HPCR(port));
+ return result;
+}
+
+/*!
+ * This function controls whether or not the port is in synchronous mode.
+ * When the synchronous mode is selected, the receive and the transmit sections
+ * use common clock and frame sync signals.
+ * When the synchronous mode is not selected, separate clock and frame sync
+ * signals are used for the transmit and the receive sections.
+ * The defaut value is the synchronous mode selected.
+ *
+ * @param port the DAM port to configure
+ * @param synchronous the state to assign
+ */
+void dam_set_synchronous(dam_port port, bool synchronous)
+{
+ if (port < 3) {
+ ModifyRegister32(1 << dam_synchronous_mode_shift,
+ synchronous << dam_synchronous_mode_shift,
+ _reg_DAM_HPCR(port));
+ } else {
+ ModifyRegister32(1 << dam_synchronous_mode_shift,
+ synchronous << dam_synchronous_mode_shift,
+ _reg_DAM_PPCR(port));
+ }
+ return;
+}
+
+/*!
+ * This function swaps the transmit and receive signals from (Da-TxD, Db-RxD)
+ * to (Da-RxD, Db-TxD).
+ * This default signal configuration is Da-TxD, Db-RxD.
+ *
+ * @param port the DAM port to configure
+ * @param value the switch state
+ */
+void dam_switch_Tx_Rx(dam_port port, bool value)
+{
+ if (port < 3) {
+ ModifyRegister32(1 << dam_transmit_receive_switch_shift,
+ value << dam_transmit_receive_switch_shift,
+ _reg_DAM_HPCR(port));
+ } else {
+ ModifyRegister32(1 << dam_transmit_receive_switch_shift,
+ value << dam_transmit_receive_switch_shift,
+ _reg_DAM_PPCR(port));
+ }
+ return;
+}
+
+/*!
+ * This function resets the two registers of the selected port.
+ *
+ * @param port the DAM port to reset
+ */
+void dam_reset_register(dam_port port)
+{
+ if (port < 3) {
+ ModifyRegister32(0xFFFFFFFF, dam_hpcr_default_value,
+ _reg_DAM_HPCR(port));
+ } else {
+ ModifyRegister32(0xFFFFFFFF, dam_ppcr_default_value,
+ _reg_DAM_PPCR(port));
+ }
+ return;
+}
+
+#ifdef TEST_DAM
+
+/*!
+ * This function implements IOCTL controls on a DAM device.
+ *
+ * @param inode pointer on the node
+ * @param file pointer on the file
+ * @param cmd the command
+ * @param arg the parameter :\n
+ * DAM_CONFIG_SSI1:\n
+ * data from port 1 to port 4, clock and FS from port 1 (SSI1)\n
+ * DAM_CONFIG_SSI2:\n
+ * data from port 2 to port 5, clock and FS from port 2 (SSI2)\n
+ * DAM_CONFIG_SSI_NETWORK_MODE:\n
+ * network mode for mix digital with data from port 1 to port4,\n
+ * data from port 2 to port 4, clock and FS from port 1 (SSI1)
+ *
+ * @return This function returns 0 if successful.
+ */
+static int dam_ioctl(struct inode *inode,
+ struct file *file, unsigned int cmd, unsigned long arg)
+{
+ return 0;
+}
+
+/*!
+ * This function implements the open method on a DAM device.
+ *
+ * @param inode pointer on the node
+ * @param file pointer on the file
+ *
+ * @return This function returns 0.
+ */
+static int dam_open(struct inode *inode, struct file *file)
+{
+ /* DBG_PRINTK("ssi : dam_open()\n"); */
+ return 0;
+}
+
+/*!
+ * This function implements the release method on a DAM device.
+ *
+ * @param inode pointer on the node
+ * @param file pointer on the file
+ *
+ * @return This function returns 0.
+ */
+static int dam_free(struct inode *inode, struct file *file)
+{
+ /* DBG_PRINTK("ssi : dam_free()\n"); */
+ return 0;
+}
+
+/*!
+ * This structure defines file operations for a DAM device.
+ */
+static struct file_operations dam_fops = {
+
+ /*!
+ * the owner
+ */
+ .owner = THIS_MODULE,
+
+ /*!
+ * the ioctl operation
+ */
+ .ioctl = dam_ioctl,
+
+ /*!
+ * the open operation
+ */
+ .open = dam_open,
+
+ /*!
+ * the release operation
+ */
+ .release = dam_free,
+};
+
+#endif
+
+/*!
+ * This function implements the init function of the DAM device.
+ * This function is called when the module is loaded.
+ *
+ * @return This function returns 0.
+ */
+static int __init dam_init(void)
+{
+#ifdef TEST_DAM
+ struct device *temp_class;
+ printk(KERN_DEBUG "dam : dam_init(void) \n");
+
+ major_dam = register_chrdev(0, DAM_NAME, &dam_fops);
+ if (major_dam < 0) {
+ printk(KERN_WARNING "Unable to get a major for dam");
+ return major_dam;
+ }
+
+ mxc_dam_class = class_create(THIS_MODULE, DAM_NAME);
+ if (IS_ERR(mxc_dam_class)) {
+ goto err_out;
+ }
+
+ temp_class = device_create(mxc_dam_class, NULL,
+ MKDEV(major_dam, 0), NULL, DAM_NAME);
+ if (IS_ERR(temp_class)) {
+ goto err_out;
+ }
+#endif
+ return 0;
+
+ err_out:
+ printk(KERN_ERR "Error creating dam class device.\n");
+ device_destroy(mxc_dam_class, MKDEV(major_dam, 0));
+ class_destroy(mxc_dam_class);
+ unregister_chrdev(major_dam, DAM_NAME);
+ return -1;
+}
+
+/*!
+ * This function implements the exit function of the SPI device.
+ * This function is called when the module is unloaded.
+ *
+ */
+static void __exit dam_exit(void)
+{
+#ifdef TEST_DAM
+ device_destroy(mxc_dam_class, MKDEV(major_dam, 0));
+ class_destroy(mxc_dam_class);
+ unregister_chrdev(major_dam, DAM_NAME);
+ printk(KERN_DEBUG "dam : successfully unloaded\n");
+#endif
+}
+
+module_init(dam_init);
+module_exit(dam_exit);
+
+MODULE_DESCRIPTION("DAM char device driver");
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_LICENSE("GPL");
diff --git a/drivers/mxc/gps_ioctrl/Kconfig b/drivers/mxc/gps_ioctrl/Kconfig
new file mode 100644
index 000000000000..0a85d1636dd7
--- /dev/null
+++ b/drivers/mxc/gps_ioctrl/Kconfig
@@ -0,0 +1,13 @@
+#
+# BROADCOM GPS configuration
+#
+
+menu "Broadcom GPS ioctrl support"
+
+config GPS_IOCTRL
+ tristate "GPS ioctrl support"
+ depends on MACH_MX31_3DS || MACH_MX35_3DS || MACH_MX37_3DS || MACH_MX51_3DS
+ ---help---
+ Say Y to enable Broadcom GPS ioctrl on MXC platform.
+
+endmenu
diff --git a/drivers/mxc/gps_ioctrl/Makefile b/drivers/mxc/gps_ioctrl/Makefile
new file mode 100644
index 000000000000..c52d7c9f151c
--- /dev/null
+++ b/drivers/mxc/gps_ioctrl/Makefile
@@ -0,0 +1,5 @@
+#
+# Makefile for the GPIO device driver module.
+#
+obj-$(CONFIG_GPS_IOCTRL) += gps_gpiodrv.o
+gps_gpiodrv-objs := agpsgpiodev.o
diff --git a/drivers/mxc/gps_ioctrl/agpsgpiodev.c b/drivers/mxc/gps_ioctrl/agpsgpiodev.c
new file mode 100644
index 000000000000..9b2afef24075
--- /dev/null
+++ b/drivers/mxc/gps_ioctrl/agpsgpiodev.c
@@ -0,0 +1,332 @@
+/*
+ * Copyright 2008-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file agpsgpiodev.c
+ *
+ * @brief Main file for GPIO kernel module. Contains driver entry/exit
+ *
+ */
+
+#include <linux/module.h>
+#include <linux/fs.h> /* Async notification */
+#include <linux/uaccess.h> /* for get_user, put_user, access_ok */
+#include <linux/sched.h> /* jiffies */
+#include <linux/poll.h>
+#include <linux/device.h>
+#include <linux/regulator/consumer.h>
+#include <linux/delay.h>
+#include <linux/platform_device.h>
+#include <linux/cdev.h>
+#include <linux/fsl_devices.h>
+#include <mach/hardware.h>
+#include "agpsgpiodev.h"
+
+extern void gpio_gps_active(void);
+extern void gpio_gps_inactive(void);
+extern int gpio_gps_access(int para);
+
+struct mxc_gps_platform_data *mxc_gps_ioctrl_data;
+static int Device_Open; /* Only allow a single user of this device */
+static struct cdev mxc_gps_cdev;
+static dev_t agps_gpio_dev;
+static struct class *gps_class;
+static struct device *gps_class_dev;
+
+/* Write GPIO from user space */
+static int ioctl_writegpio(int arg)
+{
+
+ /* Bit 0 of arg identifies the GPIO pin to write:
+ 0 = GPS_RESET_GPIO, 1 = GPS_POWER_GPIO.
+ Bit 1 of arg identifies the value to write (0 or 1). */
+
+ /* Bit 2 should be 0 to show this access is write */
+ return gpio_gps_access(arg & (~0x4));
+}
+
+/* Read GPIO from user space */
+static int ioctl_readgpio(int arg)
+{
+ /* Bit 0 of arg identifies the GPIO pin to read:
+ 0 = GPS_RESET_GPIO. 1 = GPS_POWER_GPIO
+ Bit 2 should be 1 to show this access is read */
+ return gpio_gps_access(arg | 0x4);
+}
+
+static int device_open(struct inode *inode, struct file *fp)
+{
+ /* We don't want to talk to two processes at the same time. */
+ if (Device_Open) {
+ printk(KERN_DEBUG "device_open() - Returning EBUSY. \
+ Device already open... \n");
+ return -EBUSY;
+ }
+ Device_Open++; /* BUGBUG : Not protected! */
+ try_module_get(THIS_MODULE);
+
+ return 0;
+}
+
+static int device_release(struct inode *inode, struct file *fp)
+{
+ /* We're now ready for our next caller */
+ Device_Open--;
+ module_put(THIS_MODULE);
+
+ return 0;
+}
+
+static int device_ioctl(struct inode *inode, struct file *fp,
+ unsigned int cmd, unsigned long arg)
+{
+ int err = 0;
+
+ /* Extract the type and number bitfields, and don't decode wrong cmds.
+ Return ENOTTY (inappropriate ioctl) before access_ok() */
+ if (_IOC_TYPE(cmd) != MAJOR_NUM) {
+ printk(KERN_ERR
+ "device_ioctl() - Error! IOC_TYPE = %d. Expected %d\n",
+ _IOC_TYPE(cmd), MAJOR_NUM);
+ return -ENOTTY;
+ }
+ if (_IOC_NR(cmd) > IOCTL_MAXNUMBER) {
+ printk(KERN_ERR
+ "device_ioctl() - Error!"
+ "IOC_NR = %d greater than max supported(%d)\n",
+ _IOC_NR(cmd), IOCTL_MAXNUMBER);
+ return -ENOTTY;
+ }
+
+ /* The direction is a bitmask, and VERIFY_WRITE catches R/W transfers.
+ `Type' is user-oriented, while access_ok is kernel-oriented, so the
+ concept of "read" and "write" is reversed. I think this is primarily
+ for good coding practice. You can easily do any kind of R/W access
+ without these checks and IOCTL code can be implemented "randomly"! */
+ if (_IOC_DIR(cmd) & _IOC_READ)
+ err =
+ !access_ok(VERIFY_WRITE, (void __user *)arg,
+ _IOC_SIZE(cmd));
+
+ else if (_IOC_DIR(cmd) & _IOC_WRITE)
+ err =
+ !access_ok(VERIFY_READ, (void __user *)arg, _IOC_SIZE(cmd));
+ if (err) {
+ printk(KERN_ERR
+ "device_ioctl() - Error! User arg not valid"
+ "for selected access (R/W/RW). Cmd %d\n",
+ _IOC_TYPE(cmd));
+ return -EFAULT;
+ }
+
+ /* Note: Read and writing data to user buffer can be done using regular
+ pointer stuff but we may also use get_user() or put_user() */
+
+ /* Cmd and arg has been verified... */
+ switch (cmd) {
+ case IOCTL_WRITEGPIO:
+ return ioctl_writegpio((int)arg);
+ case IOCTL_READGPIO:
+ return ioctl_readgpio((int)arg);
+ default:
+ printk(KERN_ERR "device_ioctl() - Invalid IOCTL (0x%x)\n", cmd);
+ return EINVAL;
+ }
+ return 0;
+}
+
+struct file_operations Fops = {
+ .ioctl = device_ioctl,
+ .open = device_open,
+ .release = device_release,
+};
+
+/* Initialize the module - Register the character device */
+int init_chrdev(struct device *dev)
+{
+ int ret, gps_major;
+
+ ret = alloc_chrdev_region(&agps_gpio_dev, 1, 1, "agps_gpio");
+ gps_major = MAJOR(agps_gpio_dev);
+ if (ret < 0) {
+ dev_err(dev, "can't get major %d\n", gps_major);
+ goto err3;
+ }
+
+ cdev_init(&mxc_gps_cdev, &Fops);
+ mxc_gps_cdev.owner = THIS_MODULE;
+
+ ret = cdev_add(&mxc_gps_cdev, agps_gpio_dev, 1);
+ if (ret) {
+ dev_err(dev, "can't add cdev\n");
+ goto err2;
+ }
+
+ /* create class and device for udev information */
+ gps_class = class_create(THIS_MODULE, "gps");
+ if (IS_ERR(gps_class)) {
+ dev_err(dev, "failed to create gps class\n");
+ ret = -ENOMEM;
+ goto err1;
+ }
+
+ gps_class_dev = device_create(gps_class, NULL, MKDEV(gps_major, 1), NULL,
+ AGPSGPIO_DEVICE_FILE_NAME);
+ if (IS_ERR(gps_class_dev)) {
+ dev_err(dev, "failed to create gps gpio class device\n");
+ ret = -ENOMEM;
+ goto err0;
+ }
+
+ return 0;
+err0:
+ class_destroy(gps_class);
+err1:
+ cdev_del(&mxc_gps_cdev);
+err2:
+ unregister_chrdev_region(agps_gpio_dev, 1);
+err3:
+ return ret;
+}
+
+/* Cleanup - unregister the appropriate file from /proc. */
+void cleanup_chrdev(void)
+{
+ /* destroy gps device class */
+ device_destroy(gps_class, MKDEV(MAJOR(agps_gpio_dev), 1));
+ class_destroy(gps_class);
+
+ /* Unregister the device */
+ cdev_del(&mxc_gps_cdev);
+ unregister_chrdev_region(agps_gpio_dev, 1);
+}
+
+/*!
+ * This function initializes the driver in terms of memory of the soundcard
+ * and some basic HW clock settings.
+ *
+ * @return 0 on success, -1 otherwise.
+ */
+static int __init gps_ioctrl_probe(struct platform_device *pdev)
+{
+ struct regulator *gps_regu;
+
+ mxc_gps_ioctrl_data =
+ (struct mxc_gps_platform_data *)pdev->dev.platform_data;
+
+ /* open GPS GPO3 1v8 for GL gps support */
+ if (mxc_gps_ioctrl_data->core_reg != NULL) {
+ mxc_gps_ioctrl_data->gps_regu_core =
+ regulator_get(&(pdev->dev), mxc_gps_ioctrl_data->core_reg);
+ gps_regu = mxc_gps_ioctrl_data->gps_regu_core;
+ if (!IS_ERR_VALUE((u32)gps_regu)) {
+ regulator_set_voltage(gps_regu, 1800000, 1800000);
+ regulator_enable(gps_regu);
+ } else {
+ return -1;
+ }
+ }
+ /* open GPS GPO1 2v8 for GL gps support */
+ if (mxc_gps_ioctrl_data->analog_reg != NULL) {
+ mxc_gps_ioctrl_data->gps_regu_analog =
+ regulator_get(&(pdev->dev),
+ mxc_gps_ioctrl_data->analog_reg);
+ gps_regu = mxc_gps_ioctrl_data->gps_regu_analog;
+ if (!IS_ERR_VALUE((u32)gps_regu)) {
+ regulator_set_voltage(gps_regu, 2800000, 2800000);
+ regulator_enable(gps_regu);
+ } else {
+ return -1;
+ }
+ }
+ gpio_gps_active();
+
+ /* Register character device */
+ init_chrdev(&(pdev->dev));
+ return 0;
+}
+
+static int gps_ioctrl_remove(struct platform_device *pdev)
+{
+ struct regulator *gps_regu;
+
+ mxc_gps_ioctrl_data =
+ (struct mxc_gps_platform_data *)pdev->dev.platform_data;
+
+ /* Character device cleanup.. */
+ cleanup_chrdev();
+ gpio_gps_inactive();
+
+ /* close GPS GPO3 1v8 for GL gps */
+ gps_regu = mxc_gps_ioctrl_data->gps_regu_core;
+ if (mxc_gps_ioctrl_data->core_reg != NULL) {
+ regulator_disable(gps_regu);
+ regulator_put(gps_regu);
+ }
+ /* close GPS GPO1 2v8 for GL gps */
+ gps_regu = mxc_gps_ioctrl_data->gps_regu_analog;
+ if (mxc_gps_ioctrl_data->analog_reg != NULL) {
+ regulator_disable(gps_regu);
+ regulator_put(gps_regu);
+ }
+
+ return 0;
+}
+
+static int gps_ioctrl_suspend(struct platform_device *pdev, pm_message_t state)
+{
+ /* PowerEn toggle off */
+ ioctl_writegpio(0x1);
+ return 0;
+}
+
+static int gps_ioctrl_resume(struct platform_device *pdev)
+{
+ /* PowerEn pull up */
+ ioctl_writegpio(0x3);
+ return 0;
+}
+
+static struct platform_driver gps_ioctrl_driver = {
+ .probe = gps_ioctrl_probe,
+ .remove = gps_ioctrl_remove,
+ .suspend = gps_ioctrl_suspend,
+ .resume = gps_ioctrl_resume,
+ .driver = {
+ .name = "gps_ioctrl",
+ },
+};
+
+/*!
+ * Entry point for GPS ioctrl module.
+ *
+ */
+static int __init gps_ioctrl_init(void)
+{
+ return platform_driver_register(&gps_ioctrl_driver);
+}
+
+/*!
+ * unloading module.
+ *
+ */
+static void __exit gps_ioctrl_exit(void)
+{
+ platform_driver_unregister(&gps_ioctrl_driver);
+}
+
+module_init(gps_ioctrl_init);
+module_exit(gps_ioctrl_exit);
+MODULE_DESCRIPTION("GPIO DEVICE DRIVER");
+MODULE_AUTHOR("Freescale Semiconductor");
+MODULE_LICENSE("GPL");
diff --git a/drivers/mxc/gps_ioctrl/agpsgpiodev.h b/drivers/mxc/gps_ioctrl/agpsgpiodev.h
new file mode 100644
index 000000000000..099608785b1b
--- /dev/null
+++ b/drivers/mxc/gps_ioctrl/agpsgpiodev.h
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2008-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file agpsgpiodev.h
+ *
+ * @brief head file of Simple character device interface for AGPS kernel module.
+ *
+ * @ingroup
+ */
+
+#ifndef AGPSGPIODEV_H
+#define AGPSGPIODEV_H
+
+#include <linux/ioctl.h>
+
+#define USE_BLOCKING /* Test driver with blocking calls */
+#undef USE_FASYNC /* Test driver with async notification */
+
+/* The major device number. We can't rely on dynamic registration any more
+ because ioctls need to know it */
+#define MAJOR_NUM 100
+
+#define IOCTL_WRITEGPIO _IOWR(MAJOR_NUM, 1, char *)
+#define IOCTL_READGPIO _IOR(MAJOR_NUM, 2, char *)
+#define IOCTL_MAXNUMBER 2
+
+/* The name of the device file */
+#define AGPSGPIO_DEVICE_FILE_NAME "agpsgpio"
+
+/* Exported prototypes */
+int init_chrdev(struct device *dev);
+void cleanup_chrdev(void);
+void wakeup(void);
+
+#endif
diff --git a/drivers/mxc/hmp4e/Kconfig b/drivers/mxc/hmp4e/Kconfig
new file mode 100644
index 000000000000..fdd7dbc041ba
--- /dev/null
+++ b/drivers/mxc/hmp4e/Kconfig
@@ -0,0 +1,24 @@
+#
+# MPEG4 Encoder kernel module configuration
+#
+
+menu "MXC MPEG4 Encoder Kernel module support"
+
+config MXC_HMP4E
+ tristate "MPEG4 Encoder support"
+ depends on ARCH_MXC
+ depends on !ARCH_MX27
+ default y
+ ---help---
+ Say Y to get the MPEG4 Encoder kernel module available on
+ MXC platform.
+
+config MXC_HMP4E_DEBUG
+ bool "MXC MPEG4 Debug messages"
+ depends on MXC_HMP4E != n
+ default n
+ ---help---
+ Say Y here if you need the Encoder driver to print debug messages.
+ This is an option for developers, most people should say N here.
+
+endmenu
diff --git a/drivers/mxc/hmp4e/Makefile b/drivers/mxc/hmp4e/Makefile
new file mode 100644
index 000000000000..3f69ec842af7
--- /dev/null
+++ b/drivers/mxc/hmp4e/Makefile
@@ -0,0 +1,9 @@
+#
+# Makefile for the MPEG4 Encoder kernel module.
+
+obj-$(CONFIG_MXC_HMP4E) += mxc_hmp4e.o
+CFLAGS_mxc_hmp4e.o = -DIMX_NEEDS_DEPRECATED_SYMBOLS
+
+ifeq ($(CONFIG_MXC_HMP4E_DEBUG),y)
+EXTRA_CFLAGS += -DDEBUG
+endif
diff --git a/drivers/mxc/hmp4e/mxc_hmp4e.c b/drivers/mxc/hmp4e/mxc_hmp4e.c
new file mode 100644
index 000000000000..aebaf445b4de
--- /dev/null
+++ b/drivers/mxc/hmp4e/mxc_hmp4e.c
@@ -0,0 +1,812 @@
+/*
+ * Copyright 2005-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*
+ * Encoder device driver (kernel module)
+ *
+ * Copyright (C) 2005 Hantro Products Oy.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that 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.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/init.h> /* __init,__exit directives */
+#include <linux/mm.h> /* remap_page_range / remap_pfn_range */
+#include <linux/fs.h> /* for struct file_operations */
+#include <linux/errno.h> /* standard error codes */
+#include <linux/platform_device.h> /* for device registeration for PM */
+#include <linux/delay.h> /* for msleep_interruptible */
+#include <linux/interrupt.h>
+#include <linux/dma-mapping.h> /* for dma_alloc_consistent */
+#include <linux/clk.h>
+#include <asm/uaccess.h> /* for ioctl __get_user, __put_user */
+#include <mach/hardware.h>
+#include "mxc_hmp4e.h" /* MPEG4 encoder specific */
+
+/* here's all the must remember stuff */
+typedef struct {
+ ulong buffaddr;
+ u32 buffsize;
+ ulong iobaseaddr;
+ u32 iosize;
+ volatile u32 *hwregs;
+ u32 irq;
+ u16 hwid_offset;
+ u16 intr_offset;
+ u16 busy_offset;
+ u16 type; /* Encoder type, CIF = 0, VGA = 1 */
+ u16 clk_gate;
+ u16 busy_val;
+ struct fasync_struct *async_queue;
+#ifdef CONFIG_PM
+ s32 suspend_state;
+ wait_queue_head_t power_queue;
+#endif
+} hmp4e_t;
+
+/* and this is our MAJOR; use 0 for dynamic allocation (recommended)*/
+static s32 hmp4e_major;
+
+static u32 hmp4e_phys;
+static struct class *hmp4e_class;
+static hmp4e_t hmp4e_data;
+
+/*! MPEG4 enc clock handle. */
+static struct clk *hmp4e_clk;
+
+/*
+ * avoid "enable_irq(x) unbalanced from ..."
+ * error messages from the kernel, since {ena,dis}able_irq()
+ * calls are stacked in kernel.
+ */
+static bool irq_enable;
+
+ulong base_port = MPEG4_ENC_BASE_ADDR;
+u32 irq = MXC_INT_MPEG4_ENCODER;
+
+module_param(base_port, long, 000);
+module_param(irq, int, 000);
+
+/*!
+ * These variables store the register values when HMP4E is in suspend mode.
+ */
+#ifdef CONFIG_PM
+u32 io_regs[64];
+#endif
+
+static s32 hmp4e_map_buffer(struct file *filp, struct vm_area_struct *vma);
+static s32 hmp4e_map_hwregs(struct file *filp, struct vm_area_struct *vma);
+static void hmp4e_reset(hmp4e_t *dev);
+irqreturn_t hmp4e_isr(s32 irq, void *dev_id);
+
+/*!
+ * This funtion is called to write h/w register.
+ *
+ * @param val value to be written into the register
+ * @param offset register offset
+ *
+ */
+static inline void hmp4e_write(u32 val, u32 offset)
+{
+ hmp4e_t *dev = &hmp4e_data;
+ __raw_writel(val, (dev->hwregs + offset));
+}
+
+/*!
+ * This funtion is called to read h/w register.
+ *
+ * @param offset register offset
+ *
+ * @return This function returns the value read from the register.
+ *
+ */
+static inline u32 hmp4e_read(u32 offset)
+{
+ hmp4e_t *dev = &hmp4e_data;
+ u32 val;
+
+ val = __raw_readl(dev->hwregs + offset);
+
+ return val;
+}
+
+/*!
+ * The device's mmap method. The VFS has kindly prepared the process's
+ * vm_area_struct for us, so we examine this to see what was requested.
+ *
+ * @param filp pointer to struct file
+ * @param vma pointer to struct vma_area_struct
+ *
+ * @return This function returns 0 if successful or -ve value on error.
+ *
+ */
+static s32 hmp4e_mmap(struct file *filp, struct vm_area_struct *vma)
+{
+ s32 result;
+ ulong offset = vma->vm_pgoff << PAGE_SHIFT;
+
+ pr_debug("hmp4e_mmap: size = %lu off = 0x%08lx\n",
+ (unsigned long)(vma->vm_end - vma->vm_start), offset);
+
+ if (offset == 0) {
+ result = hmp4e_map_buffer(filp, vma);
+ } else if (offset == hmp4e_data.iobaseaddr) {
+ result = hmp4e_map_hwregs(filp, vma);
+ } else {
+ pr_debug("hmp4e: mmap invalid value\n");
+ result = -EINVAL;
+ }
+
+ return result;
+}
+
+/*!
+ * This funtion is called to handle ioctls.
+ *
+ * @param inode pointer to struct inode
+ * @param filp pointer to struct file
+ * @param cmd ioctl command
+ * @param arg user data
+ *
+ * @return This function returns 0 if successful or -ve value on error.
+ *
+ */
+static s32 hmp4e_ioctl(struct inode *inode, struct file *filp,
+ u32 cmd, ulong arg)
+{
+ s32 err = 0, retval = 0;
+ ulong offset = 0;
+ hmp4e_t *dev = &hmp4e_data;
+ write_t bwrite;
+
+#ifdef CONFIG_PM
+ wait_event_interruptible(hmp4e_data.power_queue,
+ hmp4e_data.suspend_state == 0);
+#endif
+
+ /*
+ * extract the type and number bitfields, and don't decode
+ * wrong cmds: return ENOTTY (inappropriate ioctl) before access_ok()
+ */
+ if (_IOC_TYPE(cmd) != HMP4E_IOC_MAGIC) {
+ pr_debug("hmp4e: ioctl invalid magic\n");
+ return -ENOTTY;
+ }
+
+ if (_IOC_NR(cmd) > HMP4E_IOC_MAXNR) {
+ pr_debug("hmp4e: ioctl exceeds max ioctl\n");
+ return -ENOTTY;
+ }
+
+ /*
+ * the direction is a bitmask, and VERIFY_WRITE catches R/W
+ * transfers. `Type' is user-oriented, while
+ * access_ok is kernel-oriented, so the concept of "read" and
+ * "write" is reversed
+ */
+ if (_IOC_DIR(cmd) & _IOC_READ) {
+ err = !access_ok(VERIFY_WRITE, (void *)arg, _IOC_SIZE(cmd));
+ } else if (_IOC_DIR(cmd) & _IOC_WRITE) {
+ err = !access_ok(VERIFY_READ, (void *)arg, _IOC_SIZE(cmd));
+ }
+
+ if (err) {
+ pr_debug("hmp4e: ioctl invalid direction\n");
+ return -EFAULT;
+ }
+
+ switch (cmd) {
+ case HMP4E_IOCHARDRESET:
+ break;
+
+ case HMP4E_IOCGBUFBUSADDRESS:
+ retval = __put_user((ulong) hmp4e_phys, (u32 *) arg);
+ break;
+
+ case HMP4E_IOCGBUFSIZE:
+ retval = __put_user(hmp4e_data.buffsize, (u32 *) arg);
+ break;
+
+ case HMP4E_IOCSREGWRITE:
+ if (dev->type != 1) { /* This ioctl only for VGA */
+ pr_debug("hmp4e: HMP4E_IOCSREGWRITE invalid\n");
+ retval = -EINVAL;
+ break;
+ }
+
+ retval = __copy_from_user(&bwrite, (u32 *) arg,
+ sizeof(write_t));
+
+ if (bwrite.offset <= hmp4e_data.iosize - 4) {
+ hmp4e_write(bwrite.data, (bwrite.offset / 4));
+ } else {
+ pr_debug("hmp4e: HMP4E_IOCSREGWRITE failed\n");
+ retval = -EFAULT;
+ }
+ break;
+
+ case HMP4E_IOCXREGREAD:
+ if (dev->type != 1) { /* This ioctl only for VGA */
+ pr_debug("hmp4e: HMP4E_IOCSREGWRITE invalid\n");
+ retval = -EINVAL;
+ break;
+ }
+
+ retval = __get_user(offset, (ulong *) arg);
+ if (offset <= hmp4e_data.iosize - 4) {
+ __put_user(hmp4e_read((offset / 4)), (ulong *) arg);
+ } else {
+ pr_debug("hmp4e: HMP4E_IOCXREGREAD failed\n");
+ retval = -EFAULT;
+ }
+ break;
+
+ case HMP4E_IOCGHWOFFSET:
+ __put_user(hmp4e_data.iobaseaddr, (ulong *) arg);
+ break;
+
+ case HMP4E_IOCGHWIOSIZE:
+ __put_user(hmp4e_data.iosize, (u32 *) arg);
+ break;
+
+ case HMP4E_IOC_CLI:
+ if (irq_enable == true) {
+ disable_irq(hmp4e_data.irq);
+ irq_enable = false;
+ }
+ break;
+
+ case HMP4E_IOC_STI:
+ if (irq_enable == false) {
+ enable_irq(hmp4e_data.irq);
+ irq_enable = true;
+ }
+ break;
+
+ default:
+ pr_debug("unknown case %x\n", cmd);
+ }
+
+ return retval;
+}
+
+/*!
+ * This funtion is called when the device is opened.
+ *
+ * @param inode pointer to struct inode
+ * @param filp pointer to struct file
+ *
+ * @return This function returns 0 if successful or -ve value on error.
+ *
+ */
+static s32 hmp4e_open(struct inode *inode, struct file *filp)
+{
+ hmp4e_t *dev = &hmp4e_data;
+
+ filp->private_data = (void *)dev;
+
+ if (request_irq(dev->irq, hmp4e_isr, 0, "mxc_hmp4e", dev) != 0) {
+ pr_debug("hmp4e: request irq failed\n");
+ return -EBUSY;
+ }
+
+ if (irq_enable == false) {
+ irq_enable = true;
+ }
+ clk_enable(hmp4e_clk);
+ return 0;
+}
+
+static s32 hmp4e_fasync(s32 fd, struct file *filp, s32 mode)
+{
+ hmp4e_t *dev = (hmp4e_t *) filp->private_data;
+ return fasync_helper(fd, filp, mode, &dev->async_queue);
+}
+
+/*!
+ * This funtion is called when the device is closed.
+ *
+ * @param inode pointer to struct inode
+ * @param filp pointer to struct file
+ *
+ * @return This function returns 0.
+ *
+ */
+static s32 hmp4e_release(struct inode *inode, struct file *filp)
+{
+ hmp4e_t *dev = (hmp4e_t *) filp->private_data;
+
+ /* this is necessary if user process exited asynchronously */
+ if (irq_enable == true) {
+ disable_irq(dev->irq);
+ irq_enable = false;
+ }
+
+ /* reset hardware */
+ hmp4e_reset(&hmp4e_data);
+
+ /* free the encoder IRQ */
+ free_irq(dev->irq, (void *)dev);
+
+ /* remove this filp from the asynchronusly notified filp's */
+ hmp4e_fasync(-1, filp, 0);
+ clk_disable(hmp4e_clk);
+ return 0;
+}
+
+/* VFS methods */
+static struct file_operations hmp4e_fops = {
+ .owner = THIS_MODULE,
+ .open = hmp4e_open,
+ .release = hmp4e_release,
+ .ioctl = hmp4e_ioctl,
+ .mmap = hmp4e_mmap,
+ .fasync = hmp4e_fasync,
+};
+
+/*!
+ * This funtion allocates physical contigous memory.
+ *
+ * @param size size of memory to be allocated
+ *
+ * @return This function returns 0 if successful or -ve value on error.
+ *
+ */
+static s32 hmp4e_alloc(u32 size)
+{
+ hmp4e_data.buffsize = PAGE_ALIGN(size);
+ hmp4e_data.buffaddr =
+ (ulong) dma_alloc_coherent(NULL, hmp4e_data.buffsize,
+ (dma_addr_t *) &hmp4e_phys,
+ GFP_DMA | GFP_KERNEL);
+
+ if (hmp4e_data.buffaddr == 0) {
+ printk(KERN_ERR "hmp4e: couldn't allocate data buffer\n");
+ return -ENOMEM;
+ }
+
+ memset((s8 *) hmp4e_data.buffaddr, 0, hmp4e_data.buffsize);
+ return 0;
+}
+
+/*!
+ * This funtion frees the DMAed memory.
+ */
+static void hmp4e_free(void)
+{
+ if (hmp4e_data.buffaddr != 0) {
+ dma_free_coherent(NULL, hmp4e_data.buffsize,
+ (void *)hmp4e_data.buffaddr, hmp4e_phys);
+ hmp4e_data.buffaddr = 0;
+ }
+}
+
+/*!
+ * This funtion maps the shared buffer in memory.
+ *
+ * @param filp pointer to struct file
+ * @param vma pointer to struct vm_area_struct
+ *
+ * @return This function returns 0 if successful or -ve value on error.
+ *
+ */
+static s32 hmp4e_map_buffer(struct file *filp, struct vm_area_struct *vma)
+{
+ ulong phys;
+ ulong start = (u32) vma->vm_start;
+ ulong size = (u32) (vma->vm_end - vma->vm_start);
+
+ /* if userspace tries to mmap beyond end of our buffer, fail */
+ if (size > hmp4e_data.buffsize) {
+ pr_debug("hmp4e: hmp4e_map_buffer, invalid size\n");
+ return -EINVAL;
+ }
+
+ vma->vm_flags |= VM_RESERVED | VM_IO;
+ vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
+
+ phys = hmp4e_phys;
+
+ if (remap_pfn_range(vma, start, phys >> PAGE_SHIFT, size,
+ vma->vm_page_prot)) {
+ pr_debug("hmp4e: failed mmapping shared buffer\n");
+ return -EAGAIN;
+ }
+
+ return 0;
+}
+
+/*!
+ * This funtion maps the h/w register space in memory.
+ *
+ * @param filp pointer to struct file
+ * @param vma pointer to struct vm_area_struct
+ *
+ * @return This function returns 0 if successful or -ve value on error.
+ *
+ */
+static s32 hmp4e_map_hwregs(struct file *filp, struct vm_area_struct *vma)
+{
+ ulong phys;
+ ulong start = (unsigned long)vma->vm_start;
+ ulong size = (unsigned long)(vma->vm_end - vma->vm_start);
+
+ /* if userspace tries to mmap beyond end of our buffer, fail */
+ if (size > PAGE_SIZE) {
+ pr_debug("hmp4e: hmp4e_map_hwregs, invalid size\n");
+ return -EINVAL;
+ }
+
+ vma->vm_flags |= VM_RESERVED | VM_IO;
+ vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
+
+ /* Remember this won't work for vmalloc()d memory ! */
+ phys = hmp4e_data.iobaseaddr;
+
+ if (remap_pfn_range(vma, start, phys >> PAGE_SHIFT, hmp4e_data.iosize,
+ vma->vm_page_prot)) {
+ pr_debug("hmp4e: failed mmapping HW registers\n");
+ return -EAGAIN;
+ }
+
+ return 0;
+}
+
+/*!
+ * This function is the interrupt service routine.
+ *
+ * @param irq the irq number
+ * @param dev_id driver data when ISR was regiatered
+ *
+ * @return The return value is IRQ_HANDLED.
+ *
+ */
+irqreturn_t hmp4e_isr(s32 irq, void *dev_id)
+{
+ hmp4e_t *dev = (hmp4e_t *) dev_id;
+ u32 offset = dev->intr_offset;
+
+ u32 irq_status = hmp4e_read(offset);
+
+ /* clear enc IRQ */
+ hmp4e_write(irq_status & (~0x01), offset);
+
+ if (dev->async_queue)
+ kill_fasync(&dev->async_queue, SIGIO, POLL_IN);
+
+ return IRQ_HANDLED;
+}
+
+/*!
+ * This function is called to reset the encoder.
+ *
+ * @param dev pointer to struct hmp4e_data
+ *
+ */
+static void hmp4e_reset(hmp4e_t *dev)
+{
+ s32 i;
+
+ /* enable HCLK for register reset */
+ hmp4e_write(dev->clk_gate, 0);
+
+ /* Reset registers, except ECR0 (0x00) and ID (read-only) */
+ for (i = 1; i < (dev->iosize / 4); i += 1) {
+ if (i == dev->hwid_offset) /* ID is read only */
+ continue;
+
+ /* Only for CIF, not used */
+ if ((dev->type == 0) && (i == 14))
+ continue;
+
+ hmp4e_write(0, i);
+ }
+
+ /* disable HCLK */
+ hmp4e_write(0, 0);
+ return;
+}
+
+/*!
+ * This function is called during the driver binding process. This function
+ * does the hardware initialization.
+ *
+ * @param dev the device structure used to store device specific
+ * information that is used by the suspend, resume and remove
+ * functions
+ *
+ * @return The function returns 0 if successful.
+ */
+static s32 hmp4e_probe(struct platform_device *pdev)
+{
+ s32 result;
+ u32 hwid;
+ struct device *temp_class;
+
+ hmp4e_data.iobaseaddr = base_port;
+ hmp4e_data.irq = irq;
+ hmp4e_data.buffaddr = 0;
+
+ /* map hw i/o registers into kernel space */
+ hmp4e_data.hwregs = (volatile void *)IO_ADDRESS(hmp4e_data.iobaseaddr);
+
+ hmp4e_clk = clk_get(&pdev->dev, "mpeg4_clk");
+ if (IS_ERR(hmp4e_clk)) {
+ printk(KERN_INFO "hmp4e: Unable to get clock\n");
+ return -EIO;
+ }
+
+ clk_enable(hmp4e_clk);
+
+ /* check hw id for encoder signature */
+ hwid = hmp4e_read(7);
+ if ((hwid & 0xffff) == 0x1882) { /* CIF first */
+ hmp4e_data.type = 0;
+ hmp4e_data.iosize = (16 * 4);
+ hmp4e_data.hwid_offset = 7;
+ hmp4e_data.intr_offset = 5;
+ hmp4e_data.clk_gate = (1 << 1);
+ hmp4e_data.buffsize = 512000;
+ hmp4e_data.busy_offset = 0;
+ hmp4e_data.busy_val = 1;
+ } else {
+ hwid = hmp4e_read((0x88 / 4));
+ if ((hwid & 0xffff0000) == 0x52510000) { /* VGA */
+ hmp4e_data.type = 1;
+ hmp4e_data.iosize = (35 * 4);
+ hmp4e_data.hwid_offset = (0x88 / 4);
+ hmp4e_data.intr_offset = (0x10 / 4);
+ hmp4e_data.clk_gate = (1 << 12);
+ hmp4e_data.buffsize = 1048576;
+ hmp4e_data.busy_offset = (0x10 / 4);
+ hmp4e_data.busy_val = (1 << 1);
+ } else {
+ printk(KERN_INFO "hmp4e: HW ID not found\n");
+ goto error1;
+ }
+ }
+
+ /* Reset hardware */
+ hmp4e_reset(&hmp4e_data);
+
+ /* allocate memory shared with ewl */
+ result = hmp4e_alloc(hmp4e_data.buffsize);
+ if (result < 0)
+ goto error1;
+
+ result = register_chrdev(hmp4e_major, "hmp4e", &hmp4e_fops);
+ if (result <= 0) {
+ pr_debug("hmp4e: unable to get major %d\n", hmp4e_major);
+ goto error2;
+ }
+
+ hmp4e_major = result;
+
+ hmp4e_class = class_create(THIS_MODULE, "hmp4e");
+ if (IS_ERR(hmp4e_class)) {
+ pr_debug("Error creating hmp4e class.\n");
+ goto error3;
+ }
+
+ temp_class = device_create(hmp4e_class, NULL, MKDEV(hmp4e_major, 0), NULL,
+ "hmp4e");
+ if (IS_ERR(temp_class)) {
+ pr_debug("Error creating hmp4e class device.\n");
+ goto error4;
+ }
+
+ platform_set_drvdata(pdev, &hmp4e_data);
+
+#ifdef CONFIG_PM
+ hmp4e_data.async_queue = NULL;
+ hmp4e_data.suspend_state = 0;
+ init_waitqueue_head(&hmp4e_data.power_queue);
+#endif
+
+ printk(KERN_INFO "hmp4e: %s encoder initialized\n",
+ hmp4e_data.type ? "VGA" : "CIF");
+ clk_disable(hmp4e_clk);
+ return 0;
+
+ error4:
+ class_destroy(hmp4e_class);
+ error3:
+ unregister_chrdev(hmp4e_major, "hmp4e");
+ error2:
+ hmp4e_free();
+ error1:
+ clk_disable(hmp4e_clk);
+ clk_put(hmp4e_clk);
+ printk(KERN_INFO "hmp4e: module not inserted\n");
+ return -EIO;
+}
+
+/*!
+ * Dissociates the driver.
+ *
+ * @param dev the device structure
+ *
+ * @return The function always returns 0.
+ */
+static s32 hmp4e_remove(struct platform_device *pdev)
+{
+ device_destroy(hmp4e_class, MKDEV(hmp4e_major, 0));
+ class_destroy(hmp4e_class);
+ unregister_chrdev(hmp4e_major, "hmp4e");
+ hmp4e_free();
+ clk_disable(hmp4e_clk);
+ clk_put(hmp4e_clk);
+ platform_set_drvdata(pdev, NULL);
+ return 0;
+}
+
+#ifdef CONFIG_PM
+/*!
+ * This is the suspend of power management for the Hantro MPEG4 module
+ *
+ * @param dev the device
+ * @param state the state
+ *
+ * @return This function always returns 0.
+ */
+static s32 hmp4e_suspend(struct platform_device *pdev, pm_message_t state)
+{
+ s32 i;
+ hmp4e_t *pdata = &hmp4e_data;
+
+ /*
+ * how many times msleep_interruptible will be called before
+ * giving up
+ */
+ s32 timeout = 10;
+
+ pr_debug("hmp4e: Suspend\n");
+ hmp4e_data.suspend_state = 1;
+
+ /* check if encoder is currently running */
+ while ((hmp4e_read(pdata->busy_offset) & (pdata->busy_val)) &&
+ --timeout) {
+ pr_debug("hmp4e: encoder is running, going to sleep\n");
+ msleep_interruptible((unsigned int)30);
+ }
+
+ if (!timeout) {
+ pr_debug("hmp4e: timeout suspending, resetting encoder\n");
+ hmp4e_write(hmp4e_read(pdata->busy_offset) &
+ (~pdata->busy_val), pdata->busy_offset);
+ }
+
+ /* first read register 0 */
+ io_regs[0] = hmp4e_read(0);
+
+ /* then override HCLK to make sure other registers can be read */
+ hmp4e_write(pdata->clk_gate, 0);
+
+ /* read other registers */
+ for (i = 1; i < (pdata->iosize / 4); i += 1) {
+
+ /* Only for CIF, not used */
+ if ((pdata->type == 0) && (i == 14))
+ continue;
+
+ io_regs[i] = hmp4e_read(i);
+ }
+
+ /* restore value of register 0 */
+ hmp4e_write(io_regs[0], 0);
+
+ /* stop HCLK */
+ hmp4e_write(0, 0);
+ clk_disable(hmp4e_clk);
+ return 0;
+};
+
+/*!
+ * This is the resume of power management for the Hantro MPEG4 module
+ * It suports RESTORE state.
+ *
+ * @param pdev the platform device
+ *
+ * @return This function always returns 0
+ */
+static s32 hmp4e_resume(struct platform_device *pdev)
+{
+ s32 i;
+ u32 status;
+ hmp4e_t *pdata = &hmp4e_data;
+
+ pr_debug("hmp4e: Resume\n");
+ clk_enable(hmp4e_clk);
+
+ /* override HCLK to make sure registers can be written */
+ hmp4e_write(pdata->clk_gate, 0x00);
+
+ for (i = 1; i < (pdata->iosize / 4); i += 1) {
+ if (i == pdata->hwid_offset) /* Read only */
+ continue;
+
+ /* Only for CIF, not used */
+ if ((pdata->type == 0) && (i == 14))
+ continue;
+
+ hmp4e_write(io_regs[i], i);
+ }
+
+ /* write register 0 last */
+ hmp4e_write(io_regs[0], 0x00);
+
+ /* Clear the suspend flag */
+ hmp4e_data.suspend_state = 0;
+
+ /* Unblock the wait queue */
+ wake_up_interruptible(&hmp4e_data.power_queue);
+
+ /* Continue operations */
+ status = hmp4e_read(pdata->intr_offset);
+ if (status & 0x1) {
+ hmp4e_write(status & (~0x01), pdata->intr_offset);
+ if (hmp4e_data.async_queue)
+ kill_fasync(&hmp4e_data.async_queue, SIGIO, POLL_IN);
+ }
+
+ return 0;
+};
+
+#endif
+
+static struct platform_driver hmp4e_driver = {
+ .driver = {
+ .name = "mxc_hmp4e",
+ },
+ .probe = hmp4e_probe,
+ .remove = hmp4e_remove,
+#ifdef CONFIG_PM
+ .suspend = hmp4e_suspend,
+ .resume = hmp4e_resume,
+#endif
+};
+
+static s32 __init hmp4e_init(void)
+{
+ printk(KERN_INFO "hmp4e: init\n");
+ platform_driver_register(&hmp4e_driver);
+ return 0;
+}
+
+static void __exit hmp4e_cleanup(void)
+{
+ platform_driver_unregister(&hmp4e_driver);
+ printk(KERN_INFO "hmp4e: module removed\n");
+}
+
+module_init(hmp4e_init);
+module_exit(hmp4e_cleanup);
+
+/* module description */
+MODULE_AUTHOR("Hantro Products Oy");
+MODULE_DESCRIPTION("Device driver for Hantro's hardware based MPEG4 encoder");
+MODULE_SUPPORTED_DEVICE("5251/4251 MPEG4 Encoder");
+MODULE_LICENSE("GPL");
diff --git a/drivers/mxc/hmp4e/mxc_hmp4e.h b/drivers/mxc/hmp4e/mxc_hmp4e.h
new file mode 100644
index 000000000000..ed882b09e167
--- /dev/null
+++ b/drivers/mxc/hmp4e/mxc_hmp4e.h
@@ -0,0 +1,70 @@
+/*
+ * Copyright 2005-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*
+ * Encoder device driver (kernel module headers)
+ *
+ * Copyright (C) 2005 Hantro Products Oy.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that 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.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+#ifndef _HMP4ENC_H_
+#define _HMP4ENC_H_
+#include <linux/ioctl.h> /* needed for the _IOW etc stuff used later */
+
+/* this is for writing data through ioctl to registers*/
+typedef struct {
+ unsigned long data;
+ unsigned long offset;
+} write_t;
+
+/*
+ * Ioctl definitions
+ */
+
+/* Use 'k' as magic number */
+#define HMP4E_IOC_MAGIC 'k'
+/*
+ * S means "Set" through a ptr,
+ * T means "Tell" directly with the argument value
+ * G means "Get": reply by setting through a pointer
+ * Q means "Query": response is on the return value
+ * X means "eXchange": G and S atomically
+ * H means "sHift": T and Q atomically
+ */
+#define HMP4E_IOCGBUFBUSADDRESS _IOR(HMP4E_IOC_MAGIC, 1, unsigned long *)
+#define HMP4E_IOCGBUFSIZE _IOR(HMP4E_IOC_MAGIC, 2, unsigned int *)
+#define HMP4E_IOCGHWOFFSET _IOR(HMP4E_IOC_MAGIC, 3, unsigned long *)
+#define HMP4E_IOCGHWIOSIZE _IOR(HMP4E_IOC_MAGIC, 4, unsigned int *)
+#define HMP4E_IOC_CLI _IO(HMP4E_IOC_MAGIC, 5)
+#define HMP4E_IOC_STI _IO(HMP4E_IOC_MAGIC, 6)
+#define HMP4E_IOCHARDRESET _IO(HMP4E_IOC_MAGIC, 7)
+#define HMP4E_IOCSREGWRITE _IOW(HMP4E_IOC_MAGIC, 8, write_t)
+#define HMP4E_IOCXREGREAD _IOWR(HMP4E_IOC_MAGIC, 9, unsigned long)
+
+#define HMP4E_IOC_MAXNR 9
+
+#endif /* !_HMP4ENC_H_ */
diff --git a/drivers/mxc/hw_event/Kconfig b/drivers/mxc/hw_event/Kconfig
new file mode 100644
index 000000000000..bcf479689501
--- /dev/null
+++ b/drivers/mxc/hw_event/Kconfig
@@ -0,0 +1,11 @@
+menu "MXC HARDWARE EVENT"
+
+config MXC_HWEVENT
+ bool "MXC Hardware Event Handler"
+ default y
+ depends on ARCH_MXC
+ help
+ If you plan to use the Hardware Event Handler in the MXC, say
+ Y here. If unsure, select Y.
+
+endmenu
diff --git a/drivers/mxc/hw_event/Makefile b/drivers/mxc/hw_event/Makefile
new file mode 100644
index 000000000000..a53fe2b45e04
--- /dev/null
+++ b/drivers/mxc/hw_event/Makefile
@@ -0,0 +1 @@
+obj-$(CONFIG_MXC_HWEVENT) += mxc_hw_event.o
diff --git a/drivers/mxc/hw_event/mxc_hw_event.c b/drivers/mxc/hw_event/mxc_hw_event.c
new file mode 100644
index 000000000000..655e4c821986
--- /dev/null
+++ b/drivers/mxc/hw_event/mxc_hw_event.c
@@ -0,0 +1,266 @@
+/*
+ * Copyright 2007-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * mxc_hw_event.c
+ * Collect the hardware events, send to user by netlink
+ */
+
+#include <linux/slab.h>
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/netlink.h>
+#include <linux/sched.h>
+#include <linux/list.h>
+#include <linux/signal.h>
+#include <linux/freezer.h>
+#include <linux/kthread.h>
+#include <net/sock.h>
+
+#include <mach/hw_events.h>
+
+#define EVENT_POOL_SIZE 10
+
+struct hw_event_elem {
+ struct mxc_hw_event event;
+ struct list_head list;
+};
+
+static struct sock *nl_event_sock; /* netlink socket */
+static struct list_head event_head;
+static struct list_head free_head;
+static struct hw_event_elem events_pool[EVENT_POOL_SIZE]; /* event pool */
+static DEFINE_SPINLOCK(list_lock);
+static DECLARE_WAIT_QUEUE_HEAD(event_wq);
+static unsigned int seq; /* send seq */
+static int initialized;
+static struct task_struct *hwevent_kthread;
+
+/*!
+ * main HW event handler thread
+ */
+static int hw_event_thread(void *data)
+{
+ struct sk_buff *skb = NULL;
+ struct nlmsghdr *nlh = NULL;
+ unsigned int size;
+ struct hw_event_elem *event, *n;
+ LIST_HEAD(tmp_head);
+ DEFINE_WAIT(wait);
+
+ while (1) {
+
+ prepare_to_wait(&event_wq, &wait, TASK_INTERRUPTIBLE);
+ /* wait for event coming */
+ if (!freezing(current) && !kthread_should_stop() &&
+ list_empty(&event_head))
+ schedule();
+ finish_wait(&event_wq, &wait);
+
+ try_to_freeze();
+
+ if (kthread_should_stop())
+ break;
+
+ /* fetch event from list */
+ spin_lock_irq(&list_lock);
+ tmp_head = event_head;
+ tmp_head.prev->next = &tmp_head;
+ tmp_head.next->prev = &tmp_head;
+ /* clear the event list head */
+ INIT_LIST_HEAD(&event_head);
+ spin_unlock_irq(&list_lock);
+
+ list_for_each_entry_safe(event, n, &tmp_head, list) {
+
+ size = NLMSG_SPACE(sizeof(struct mxc_hw_event));
+ skb = alloc_skb(size, GFP_KERNEL);
+ if (!skb) {
+ /* if failed alloc skb, we drop this event */
+ printk(KERN_WARNING
+ "mxc_hw_event: skb_alloc() failed\n");
+ goto alloc_failure;
+ }
+
+ /* put the netlink header struct to skb */
+ nlh =
+ NLMSG_PUT(skb, 0, seq++, NLMSG_DONE,
+ size - sizeof(*nlh));
+
+ /* fill the netlink data */
+ memcpy((struct mxc_hw_event *)NLMSG_DATA(nlh),
+ &event->event, sizeof(struct mxc_hw_event));
+
+ /* free the event node, set to unused */
+ spin_lock_irq(&list_lock);
+ list_move(&event->list, &free_head);
+ spin_unlock_irq(&list_lock);
+
+ /* send to all process that create this socket */
+ NETLINK_CB(skb).pid = 0; /* sender pid */
+ NETLINK_CB(skb).dst_group = HW_EVENT_GROUP;
+ /* broadcast the event */
+ netlink_broadcast(nl_event_sock, skb, 0, HW_EVENT_GROUP,
+ GFP_KERNEL);
+
+ continue;
+ nlmsg_failure:
+ printk(KERN_WARNING
+ "mxc_hw_event: No tailroom for NLMSG in skb\n");
+ alloc_failure:
+ /* free the event node, set to unused */
+ spin_lock_irq(&list_lock);
+ list_del(&event->list);
+ list_add_tail(&event->list, &free_head);
+ spin_unlock_irq(&list_lock);
+ }
+ }
+
+ return 0;
+}
+
+/*!
+ *
+ * @priority the event priority, REALTIME, EMERENCY, NORMAL
+ * @new_event event id to be send
+ */
+int hw_event_send(int priority, struct mxc_hw_event *new_event)
+{
+ unsigned int size;
+ struct sk_buff *skb = NULL;
+ struct nlmsghdr *nlh = NULL;
+ struct mxc_hw_event *event;
+ struct hw_event_elem *event_elem;
+ int ret;
+ unsigned long flag;
+ struct list_head *list_node;
+
+ if (!initialized) {
+ pr_info("HW Event module has not been initialized\n");
+ return -1;
+ }
+
+ if (priority == HWE_HIGH_PRIORITY) {
+ /**
+ * the most high priority event,
+ * we send it immediatly.
+ */
+
+ size = NLMSG_SPACE(sizeof(struct mxc_hw_event));
+
+ /* alloc skb */
+ if (in_interrupt()) {
+ skb = alloc_skb(size, GFP_ATOMIC);
+ } else {
+ skb = alloc_skb(size, GFP_KERNEL);
+ }
+ if (!skb) {
+ /* if failed alloc skb, we drop this event */
+ printk(KERN_WARNING
+ "hw_event send: skb_alloc() failed\n");
+ goto send_later;
+ }
+
+ /* put the netlink header struct to skb */
+ nlh = NLMSG_PUT(skb, 0, seq++, NLMSG_DONE, size - sizeof(*nlh));
+
+ /* fill the netlink data */
+ event = (struct mxc_hw_event *)NLMSG_DATA(nlh);
+ memcpy(event, new_event, sizeof(struct mxc_hw_event));
+
+ /* send to all process that create this socket */
+ NETLINK_CB(skb).pid = 0; /* sender pid */
+ NETLINK_CB(skb).dst_group = HW_EVENT_GROUP;
+ /* broadcast the event */
+ ret = netlink_broadcast(nl_event_sock, skb, 0, HW_EVENT_GROUP,
+ in_interrupt() ? GFP_ATOMIC :
+ GFP_KERNEL);
+ if (ret) {
+
+ nlmsg_failure:
+ /* send failed */
+ kfree_skb(skb);
+ goto send_later;
+ }
+
+ return 0;
+ }
+
+ send_later:
+ spin_lock_irqsave(&list_lock, flag);
+ if (list_empty(&free_head)) {
+ spin_unlock_irqrestore(&list_lock, flag);
+ /* no more free event node */
+ printk(KERN_WARNING "mxc_event send: no more free node\n");
+ return -1;
+ }
+
+ /* get a free node from free list, and added to event list */
+ list_node = free_head.next;
+ /* fill event */
+ event_elem = list_entry(list_node, struct hw_event_elem, list);
+ event_elem->event = *new_event;
+ list_move(list_node, &event_head);
+ spin_unlock_irqrestore(&list_lock, flag);
+
+ wake_up(&event_wq);
+
+ return 0;
+}
+
+static int __init mxc_hw_event_init(void)
+{
+ int i;
+
+ /* initial the list head for event and free */
+ INIT_LIST_HEAD(&free_head);
+ INIT_LIST_HEAD(&event_head);
+
+ /* initial the free list */
+ for (i = 0; i < EVENT_POOL_SIZE; i++)
+ list_add_tail(&events_pool[i].list, &free_head);
+
+ /* create netlink kernel sock */
+ nl_event_sock =
+ netlink_kernel_create(&init_net, NETLINK_USERSOCK, 0, NULL, NULL,
+ THIS_MODULE);
+ if (!nl_event_sock) {
+ printk(KERN_WARNING
+ "mxc_hw_event: Fail to create netlink socket.\n");
+ return 1;
+ }
+
+ hwevent_kthread = kthread_run(hw_event_thread, NULL, "hwevent");
+ if (IS_ERR(hwevent_kthread)) {
+ printk(KERN_WARNING
+ "mxc_hw_event: Fail to create hwevent thread.\n");
+ return 1;
+ }
+
+ initialized = 1;
+
+ return 0;
+}
+
+static void __exit mxc_hw_event_exit(void)
+{
+ kthread_stop(hwevent_kthread);
+ /* wait for thread completion */
+ sock_release(nl_event_sock->sk_socket);
+}
+
+module_init(mxc_hw_event_init);
+module_exit(mxc_hw_event_exit);
+
+EXPORT_SYMBOL(hw_event_send);
+MODULE_LICENSE("GPL");
diff --git a/drivers/mxc/ipu/Kconfig b/drivers/mxc/ipu/Kconfig
new file mode 100644
index 000000000000..919cb598c294
--- /dev/null
+++ b/drivers/mxc/ipu/Kconfig
@@ -0,0 +1,4 @@
+config MXC_IPU_V1
+ bool
+
+source "drivers/mxc/ipu/pf/Kconfig"
diff --git a/drivers/mxc/ipu/Makefile b/drivers/mxc/ipu/Makefile
new file mode 100644
index 000000000000..4e9f19f9afa5
--- /dev/null
+++ b/drivers/mxc/ipu/Makefile
@@ -0,0 +1,5 @@
+obj-$(CONFIG_MXC_IPU_V1) = mxc_ipu.o
+
+mxc_ipu-objs := ipu_common.o ipu_sdc.o ipu_adc.o ipu_ic.o ipu_csi.o ipu_device.o ipu_calc_stripes_sizes.o
+
+obj-$(CONFIG_MXC_IPU_PF) += pf/
diff --git a/drivers/mxc/ipu/ipu_adc.c b/drivers/mxc/ipu/ipu_adc.c
new file mode 100644
index 000000000000..ee3cf916b2f3
--- /dev/null
+++ b/drivers/mxc/ipu/ipu_adc.c
@@ -0,0 +1,689 @@
+/*
+ * Copyright 2005-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*
+ * @file ipu_adc.c
+ *
+ * @brief IPU ADC functions
+ *
+ * @ingroup IPU
+ */
+
+#include <linux/types.h>
+#include <linux/init.h>
+#include <linux/errno.h>
+#include <linux/spinlock.h>
+#include <linux/delay.h>
+#include <linux/io.h>
+#include <linux/ipu.h>
+
+#include "ipu_prv.h"
+#include "ipu_regs.h"
+#include "ipu_param_mem.h"
+
+/*#define ADC_CHAN1_SA_MASK 0xFF800000 */
+
+static void _ipu_set_cmd_data_mappings(display_port_t disp,
+ uint32_t pixel_fmt, int ifc_width);
+
+int32_t _ipu_adc_init_channel(ipu_channel_t chan, display_port_t disp,
+ mcu_mode_t cmd, int16_t x_pos, int16_t y_pos)
+{
+ uint32_t reg;
+ uint32_t start_addr, stride;
+ unsigned long lock_flags;
+ uint32_t size;
+
+ size = 0;
+
+ switch (disp) {
+ case DISP0:
+ reg = __raw_readl(ADC_DISP0_CONF);
+ stride = reg & ADC_DISP_CONF_SL_MASK;
+ break;
+ case DISP1:
+ reg = __raw_readl(ADC_DISP1_CONF);
+ stride = reg & ADC_DISP_CONF_SL_MASK;
+ break;
+ case DISP2:
+ reg = __raw_readl(ADC_DISP2_CONF);
+ stride = reg & ADC_DISP_CONF_SL_MASK;
+ break;
+ default:
+ return -EINVAL;
+ }
+
+ if (stride == 0)
+ return -EINVAL;
+
+ stride++;
+ start_addr = (y_pos * stride) + x_pos;
+
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+ reg = __raw_readl(ADC_CONF);
+
+ switch (chan) {
+ case ADC_SYS1:
+ reg &= ~0x00FF4000;
+ reg |=
+ ((uint32_t) size << 21 | (uint32_t) disp << 19 | (uint32_t)
+ cmd << 16);
+
+ __raw_writel(start_addr, ADC_SYSCHA1_SA);
+ break;
+
+ case ADC_SYS2:
+ reg &= ~0xFF008000;
+ reg |=
+ ((uint32_t) size << 29 | (uint32_t) disp << 27 | (uint32_t)
+ cmd << 24);
+
+ __raw_writel(start_addr, ADC_SYSCHA2_SA);
+ break;
+
+ case CSI_PRP_VF_ADC:
+ case MEM_PRP_VF_ADC:
+ reg &= ~0x000000F9;
+ reg |=
+ ((uint32_t) size << 5 | (uint32_t) disp << 3 |
+ ADC_CONF_PRP_EN);
+
+ __raw_writel(start_addr, ADC_PRPCHAN_SA);
+ break;
+
+ case MEM_PP_ADC:
+ reg &= ~0x00003F02;
+ reg |=
+ ((uint32_t) size << 10 | (uint32_t) disp << 8 |
+ ADC_CONF_PP_EN);
+
+ __raw_writel(start_addr, ADC_PPCHAN_SA);
+ break;
+ default:
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+ return -1;
+ break;
+ }
+ __raw_writel(reg, ADC_CONF);
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+ return 0;
+}
+
+int32_t _ipu_adc_uninit_channel(ipu_channel_t chan)
+{
+ uint32_t reg;
+ unsigned long lock_flags;
+
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+ reg = __raw_readl(ADC_CONF);
+
+ switch (chan) {
+ case ADC_SYS1:
+ reg &= ~0x00FF4000;
+ break;
+ case ADC_SYS2:
+ reg &= ~0xFF008000;
+ break;
+ case CSI_PRP_VF_ADC:
+ case MEM_PRP_VF_ADC:
+ reg &= ~0x000000F9;
+ break;
+ case MEM_PP_ADC:
+ reg &= ~0x00003F02;
+ break;
+ default:
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+ return -1;
+ break;
+ }
+ __raw_writel(reg, ADC_CONF);
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+ return 0;
+}
+
+int32_t ipu_adc_write_template(display_port_t disp, uint32_t *pCmd, bool write)
+{
+ uint32_t ima_addr = 0;
+ uint32_t row_nu;
+ int i;
+
+ /* Set IPU_IMA_ADDR (IPU Internal Memory Access Address) */
+ /* MEM_NU = 0x0001 (CPM) */
+ /* ROW_NU = 2*N ( N is channel number) */
+ /* WORD_NU = 0 */
+ if (write) {
+ row_nu = (uint32_t) disp * 2 * ATM_ADDR_RANGE;
+ } else {
+ row_nu = ((uint32_t) disp * 2 + 1) * ATM_ADDR_RANGE;
+ }
+
+ /* form template addr for IPU_IMA_ADDR */
+ ima_addr = (0x3 << 16 /*Template memory */ | row_nu << 3);
+
+ __raw_writel(ima_addr, IPU_IMA_ADDR);
+
+ /* write template data for IPU_IMA_DATA */
+ for (i = 0; i < TEMPLATE_BUF_SIZE; i++)
+ /* only DATA field are needed */
+ __raw_writel(pCmd[i], IPU_IMA_DATA);
+
+ return 0;
+}
+
+int32_t
+ipu_adc_write_cmd(display_port_t disp, cmddata_t type,
+ uint32_t cmd, const uint32_t *params, uint16_t numParams)
+{
+ uint16_t i;
+ int disable_di = 0;
+ u32 reg;
+ unsigned long lock_flags;
+
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+ reg = __raw_readl(IPU_CONF);
+ if ((reg & IPU_CONF_DI_EN) == 0) {
+ disable_di = 1;
+ reg |= IPU_CONF_DI_EN;
+ __raw_writel(reg, IPU_CONF);
+ }
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+
+ __raw_writel((uint32_t) ((type ? 0x0 : 0x1) | disp << 1 | 0x10),
+ DI_DISP_LLA_CONF);
+ __raw_writel(cmd, DI_DISP_LLA_DATA);
+ udelay(3);
+
+ __raw_writel((uint32_t) (0x10 | disp << 1 | 0x11), DI_DISP_LLA_CONF);
+ for (i = 0; i < numParams; i++) {
+ __raw_writel(params[i], DI_DISP_LLA_DATA);
+ udelay(3);
+ }
+
+ if (disable_di) {
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+ reg = __raw_readl(IPU_CONF);
+ reg &= ~IPU_CONF_DI_EN;
+ __raw_writel(reg, IPU_CONF);
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+ }
+
+ return 0;
+}
+
+int32_t ipu_adc_set_update_mode(ipu_channel_t channel,
+ ipu_adc_update_mode_t mode,
+ uint32_t refresh_rate, unsigned long addr,
+ uint32_t *size)
+{
+ int32_t err = 0;
+ uint32_t ref_per, reg, src = 0;
+ unsigned long lock_flags;
+ uint32_t ipu_freq;
+
+ ipu_freq = clk_get_rate(g_ipu_clk);
+
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+
+ reg = __raw_readl(IPU_FS_DISP_FLOW);
+ reg &= ~FS_AUTO_REF_PER_MASK;
+ switch (mode) {
+ case IPU_ADC_REFRESH_NONE:
+ src = 0;
+ break;
+ case IPU_ADC_AUTO_REFRESH:
+ if (refresh_rate == 0) {
+ err = -EINVAL;
+ goto err0;
+ }
+ ref_per = ipu_freq / ((1UL << 17) * refresh_rate);
+ ref_per--;
+ reg |= ref_per << FS_AUTO_REF_PER_OFFSET;
+
+ src = FS_SRC_AUTOREF;
+ break;
+ case IPU_ADC_AUTO_REFRESH_SNOOP:
+ if (refresh_rate == 0) {
+ err = -EINVAL;
+ goto err0;
+ }
+ ref_per = ipu_freq / ((1UL << 17) * refresh_rate);
+ ref_per--;
+ reg |= ref_per << FS_AUTO_REF_PER_OFFSET;
+
+ src = FS_SRC_AUTOREF_SNOOP;
+ break;
+ case IPU_ADC_SNOOPING:
+ src = FS_SRC_SNOOP;
+ break;
+ }
+
+ switch (channel) {
+ case ADC_SYS1:
+ reg &= ~FS_ADC1_SRC_SEL_MASK;
+ reg |= src << FS_ADC1_SRC_SEL_OFFSET;
+ break;
+ case ADC_SYS2:
+ reg &= ~FS_ADC2_SRC_SEL_MASK;
+ reg |= src << FS_ADC2_SRC_SEL_OFFSET;
+ break;
+ default:
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+ return -EINVAL;
+ }
+ __raw_writel(reg, IPU_FS_DISP_FLOW);
+
+ /* Setup bus snooping */
+ if ((mode == IPU_ADC_AUTO_REFRESH_SNOOP) || (mode == IPU_ADC_SNOOPING)) {
+ err = mxc_snoop_set_config(0, addr, *size);
+ if (err > 0) {
+ *size = err;
+ err = 0;
+ }
+ } else {
+ mxc_snoop_set_config(0, 0, 0);
+ }
+
+ err0:
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+ return err;
+}
+
+int32_t ipu_adc_get_snooping_status(uint32_t *statl, uint32_t *stath)
+{
+ return mxc_snoop_get_status(0, statl, stath);
+}
+
+int32_t ipu_adc_init_panel(display_port_t disp,
+ uint16_t width, uint16_t height,
+ uint32_t pixel_fmt,
+ uint32_t stride,
+ ipu_adc_sig_cfg_t sig,
+ display_addressing_t addr,
+ uint32_t vsync_width, vsync_t mode)
+{
+ uint32_t temp;
+ unsigned long lock_flags;
+ uint32_t ser_conf;
+ uint32_t disp_conf;
+ uint32_t adc_disp_conf;
+ uint32_t adc_disp_vsync;
+ uint32_t old_pol;
+
+ if ((disp != DISP1) && (disp != DISP2) &&
+ (sig.ifc_mode >= IPU_ADC_IFC_MODE_3WIRE_SERIAL)) {
+ return -EINVAL;
+ }
+/* adc_disp_conf = ((uint32_t)((((size == 3)||(size == 2))?1:0)<<14) | */
+/* (uint32_t)addr<<12 | (stride-1)); */
+ adc_disp_conf = (uint32_t) addr << 12 | (stride - 1);
+
+ _ipu_set_cmd_data_mappings(disp, pixel_fmt, sig.ifc_width);
+
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+ disp_conf = __raw_readl(DI_DISP_IF_CONF);
+ old_pol = __raw_readl(DI_DISP_SIG_POL);
+ adc_disp_vsync = __raw_readl(ADC_DISP_VSYNC);
+
+ switch (disp) {
+ case DISP0:
+ __raw_writel(adc_disp_conf, ADC_DISP0_CONF);
+ __raw_writel((((height - 1) << 16) | (width - 1)),
+ ADC_DISP0_SS);
+
+ adc_disp_vsync &= ~(ADC_DISP_VSYNC_D0_MODE_MASK |
+ ADC_DISP_VSYNC_D0_WIDTH_MASK);
+ adc_disp_vsync |= (vsync_width << 16) | (uint32_t) mode;
+
+ old_pol &= ~0x2000003FL;
+ old_pol |= sig.data_pol | sig.cs_pol << 1 |
+ sig.addr_pol << 2 | sig.read_pol << 3 |
+ sig.write_pol << 4 | sig.Vsync_pol << 5 |
+ sig.burst_pol << 29;
+ __raw_writel(old_pol, DI_DISP_SIG_POL);
+
+ disp_conf &= ~0x0000001FL;
+ disp_conf |= (sig.burst_mode << 3) | (sig.ifc_mode << 1) |
+ DI_CONF_DISP0_EN;
+ __raw_writel(disp_conf, DI_DISP_IF_CONF);
+ break;
+ case DISP1:
+ __raw_writel(adc_disp_conf, ADC_DISP1_CONF);
+ __raw_writel((((height - 1) << 16) | (width - 1)),
+ ADC_DISP12_SS);
+
+ adc_disp_vsync &= ~(ADC_DISP_VSYNC_D12_MODE_MASK |
+ ADC_DISP_VSYNC_D12_WIDTH_MASK);
+ adc_disp_vsync |= (vsync_width << 16) | (uint32_t) mode;
+
+ old_pol &= ~0x4000FF00L;
+ old_pol |= (sig.Vsync_pol << 6 | sig.data_pol << 8 |
+ sig.cs_pol << 9 | sig.addr_pol << 10 |
+ sig.read_pol << 11 | sig.write_pol << 12 |
+ sig.clk_pol << 14 | sig.burst_pol << 30);
+ __raw_writel(old_pol, DI_DISP_SIG_POL);
+
+ disp_conf &= ~0x00003F00L;
+ if (sig.ifc_mode >= IPU_ADC_IFC_MODE_3WIRE_SERIAL) {
+ ser_conf = (sig.ifc_width - 1) <<
+ DI_SER_DISPx_CONF_SER_BIT_NUM_OFFSET;
+ if (sig.ser_preamble_len) {
+ ser_conf |= DI_SER_DISPx_CONF_PREAMBLE_EN;
+ ser_conf |= sig.ser_preamble <<
+ DI_SER_DISPx_CONF_PREAMBLE_OFFSET;
+ ser_conf |= (sig.ser_preamble_len - 1) <<
+ DI_SER_DISPx_CONF_PREAMBLE_LEN_OFFSET;
+ }
+
+ ser_conf |=
+ sig.ser_rw_mode << DI_SER_DISPx_CONF_RW_CFG_OFFSET;
+
+ if (sig.burst_mode == IPU_ADC_BURST_SERIAL)
+ ser_conf |= DI_SER_DISPx_CONF_BURST_MODE_EN;
+ __raw_writel(ser_conf, DI_SER_DISP1_CONF);
+ } else { /* parallel interface */
+ disp_conf |= (uint32_t) (sig.burst_mode << 12);
+ }
+ disp_conf |= (sig.ifc_mode << 9) | DI_CONF_DISP1_EN;
+ __raw_writel(disp_conf, DI_DISP_IF_CONF);
+ break;
+ case DISP2:
+ __raw_writel(adc_disp_conf, ADC_DISP2_CONF);
+ __raw_writel((((height - 1) << 16) | (width - 1)),
+ ADC_DISP12_SS);
+
+ adc_disp_vsync &= ~(ADC_DISP_VSYNC_D12_MODE_MASK |
+ ADC_DISP_VSYNC_D12_WIDTH_MASK);
+ adc_disp_vsync |= (vsync_width << 16) | (uint32_t) mode;
+
+ old_pol &= ~0x80FF0000L;
+ temp = (uint32_t) (sig.data_pol << 16 | sig.cs_pol << 17 |
+ sig.addr_pol << 18 | sig.read_pol << 19 |
+ sig.write_pol << 20 | sig.Vsync_pol << 6 |
+ sig.burst_pol << 31 | sig.clk_pol << 22);
+ __raw_writel(temp | old_pol, DI_DISP_SIG_POL);
+
+ disp_conf &= ~0x003F0000L;
+ if (sig.ifc_mode >= IPU_ADC_IFC_MODE_3WIRE_SERIAL) {
+ ser_conf = (sig.ifc_width - 1) <<
+ DI_SER_DISPx_CONF_SER_BIT_NUM_OFFSET;
+ if (sig.ser_preamble_len) {
+ ser_conf |= DI_SER_DISPx_CONF_PREAMBLE_EN;
+ ser_conf |= sig.ser_preamble <<
+ DI_SER_DISPx_CONF_PREAMBLE_OFFSET;
+ ser_conf |= (sig.ser_preamble_len - 1) <<
+ DI_SER_DISPx_CONF_PREAMBLE_LEN_OFFSET;
+
+ }
+
+ ser_conf |=
+ sig.ser_rw_mode << DI_SER_DISPx_CONF_RW_CFG_OFFSET;
+
+ if (sig.burst_mode == IPU_ADC_BURST_SERIAL)
+ ser_conf |= DI_SER_DISPx_CONF_BURST_MODE_EN;
+ __raw_writel(ser_conf, DI_SER_DISP2_CONF);
+ } else { /* parallel interface */
+ disp_conf |= (uint32_t) (sig.burst_mode << 20);
+ }
+ disp_conf |= (sig.ifc_mode << 17) | DI_CONF_DISP2_EN;
+ __raw_writel(disp_conf, DI_DISP_IF_CONF);
+ break;
+ default:
+ break;
+ }
+
+ __raw_writel(adc_disp_vsync, ADC_DISP_VSYNC);
+
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+
+ return 0;
+}
+
+int32_t ipu_adc_init_ifc_timing(display_port_t disp, bool read,
+ uint32_t cycle_time,
+ uint32_t up_time,
+ uint32_t down_time,
+ uint32_t read_latch_time, uint32_t pixel_clk)
+{
+ uint32_t reg;
+ uint32_t time_conf3 = 0;
+ uint32_t clk_per;
+ uint32_t up_per;
+ uint32_t down_per;
+ uint32_t read_per;
+ uint32_t pixclk_per = 0;
+ uint32_t ipu_freq;
+
+ ipu_freq = clk_get_rate(g_ipu_clk);
+
+ clk_per = (cycle_time * (ipu_freq / 1000L) * 16L) / 1000000L;
+ up_per = (up_time * (ipu_freq / 1000L) * 4L) / 1000000L;
+ down_per = (down_time * (ipu_freq / 1000L) * 4L) / 1000000L;
+
+ reg = (clk_per << DISPx_IF_CLK_PER_OFFSET) |
+ (up_per << DISPx_IF_CLK_UP_OFFSET) |
+ (down_per << DISPx_IF_CLK_DOWN_OFFSET);
+
+ if (read) {
+ read_per =
+ (read_latch_time * (ipu_freq / 1000L) * 4L) / 1000000L;
+ if (pixel_clk)
+ pixclk_per = (ipu_freq * 16L) / pixel_clk;
+ time_conf3 = (read_per << DISPx_IF_CLK_READ_EN_OFFSET) |
+ (pixclk_per << DISPx_PIX_CLK_PER_OFFSET);
+ }
+
+ dev_dbg(g_ipu_dev, "DI_DISPx_TIME_CONF_1/2 = 0x%08X\n", reg);
+ dev_dbg(g_ipu_dev, "DI_DISPx_TIME_CONF_3 = 0x%08X\n", time_conf3);
+
+ switch (disp) {
+ case DISP0:
+ if (read) {
+ __raw_writel(reg, DI_DISP0_TIME_CONF_2);
+ __raw_writel(time_conf3, DI_DISP0_TIME_CONF_3);
+ } else {
+ __raw_writel(reg, DI_DISP0_TIME_CONF_1);
+ }
+ break;
+ case DISP1:
+ if (read) {
+ __raw_writel(reg, DI_DISP1_TIME_CONF_2);
+ __raw_writel(time_conf3, DI_DISP1_TIME_CONF_3);
+ } else {
+ __raw_writel(reg, DI_DISP1_TIME_CONF_1);
+ }
+ break;
+ case DISP2:
+ if (read) {
+ __raw_writel(reg, DI_DISP2_TIME_CONF_2);
+ __raw_writel(time_conf3, DI_DISP2_TIME_CONF_3);
+ } else {
+ __raw_writel(reg, DI_DISP2_TIME_CONF_1);
+ }
+ break;
+ default:
+ return -EINVAL;
+ break;
+ }
+
+ return 0;
+}
+
+struct ipu_adc_di_map {
+ uint32_t map_byte1;
+ uint32_t map_byte2;
+ uint32_t map_byte3;
+ uint32_t cycle_cnt;
+};
+
+static const struct ipu_adc_di_map di_mappings[] = {
+ [0] = {
+ /* RGB888, 8-bit bus */
+ .map_byte1 = 0x1600AAAA,
+ .map_byte2 = 0x00E05555,
+ .map_byte2 = 0x00070000,
+ .cycle_cnt = 3,
+ },
+ [1] = {
+ /* RGB666, 8-bit bus */
+ .map_byte1 = 0x1C00AAAF,
+ .map_byte2 = 0x00E0555F,
+ .map_byte3 = 0x0007000F,
+ .cycle_cnt = 3,
+ },
+ [2] = {
+ /* RGB565, 8-bit bus */
+ .map_byte1 = 0x008055BF,
+ .map_byte2 = 0x0142015F,
+ .map_byte3 = 0x0007003F,
+ .cycle_cnt = 2,
+ },
+ [3] = {
+ /* RGB888, 24-bit bus */
+ .map_byte1 = 0x0007000F,
+ .map_byte2 = 0x000F000F,
+ .map_byte3 = 0x0017000F,
+ .cycle_cnt = 1,
+ },
+ [4] = {
+ /* RGB666, 18-bit bus */
+ .map_byte1 = 0x0005000F,
+ .map_byte2 = 0x000B000F,
+ .map_byte3 = 0x0011000F,
+ .cycle_cnt = 1,
+ },
+ [5] = {
+ /* RGB565, 16-bit bus */
+ .map_byte1 = 0x0004003F,
+ .map_byte2 = 0x000A000F,
+ .map_byte3 = 0x000F003F,
+ .cycle_cnt = 1,
+ },
+};
+
+/* Private methods */
+static void _ipu_set_cmd_data_mappings(display_port_t disp,
+ uint32_t pixel_fmt, int ifc_width)
+{
+ uint32_t reg;
+ u32 map = 0;
+
+ if (ifc_width == 8) {
+ switch (pixel_fmt) {
+ case IPU_PIX_FMT_BGR24:
+ map = 0;
+ break;
+ case IPU_PIX_FMT_RGB666:
+ map = 1;
+ break;
+ case IPU_PIX_FMT_RGB565:
+ map = 2;
+ break;
+ default:
+ break;
+ }
+ } else if (ifc_width >= 16) {
+ switch (pixel_fmt) {
+ case IPU_PIX_FMT_BGR24:
+ map = 3;
+ break;
+ case IPU_PIX_FMT_RGB666:
+ map = 4;
+ break;
+ case IPU_PIX_FMT_RGB565:
+ map = 5;
+ break;
+ default:
+ break;
+ }
+ }
+
+ switch (disp) {
+ case DISP0:
+ if (ifc_width == 8) {
+ __raw_writel(0x00070000, DI_DISP0_CB0_MAP);
+ __raw_writel(0x0000FFFF, DI_DISP0_CB1_MAP);
+ __raw_writel(0x0000FFFF, DI_DISP0_CB2_MAP);
+ } else {
+ __raw_writel(0x00070000, DI_DISP0_CB0_MAP);
+ __raw_writel(0x000F0000, DI_DISP0_CB1_MAP);
+ __raw_writel(0x0000FFFF, DI_DISP0_CB2_MAP);
+ }
+ __raw_writel(di_mappings[map].map_byte1, DI_DISP0_DB0_MAP);
+ __raw_writel(di_mappings[map].map_byte2, DI_DISP0_DB1_MAP);
+ __raw_writel(di_mappings[map].map_byte3, DI_DISP0_DB2_MAP);
+ reg = __raw_readl(DI_DISP_ACC_CC);
+ reg &= ~DISP0_IF_CLK_CNT_D_MASK;
+ reg |= (di_mappings[map].cycle_cnt - 1) <<
+ DISP0_IF_CLK_CNT_D_OFFSET;
+ __raw_writel(reg, DI_DISP_ACC_CC);
+ break;
+ case DISP1:
+ if (ifc_width == 8) {
+ __raw_writel(0x00070000, DI_DISP1_CB0_MAP);
+ __raw_writel(0x0000FFFF, DI_DISP1_CB1_MAP);
+ __raw_writel(0x0000FFFF, DI_DISP1_CB2_MAP);
+ } else {
+ __raw_writel(0x00070000, DI_DISP1_CB0_MAP);
+ __raw_writel(0x000F0000, DI_DISP1_CB1_MAP);
+ __raw_writel(0x0000FFFF, DI_DISP1_CB2_MAP);
+ }
+ __raw_writel(di_mappings[map].map_byte1, DI_DISP1_DB0_MAP);
+ __raw_writel(di_mappings[map].map_byte2, DI_DISP1_DB1_MAP);
+ __raw_writel(di_mappings[map].map_byte3, DI_DISP1_DB2_MAP);
+ reg = __raw_readl(DI_DISP_ACC_CC);
+ reg &= ~DISP1_IF_CLK_CNT_D_MASK;
+ reg |= (di_mappings[map].cycle_cnt - 1) <<
+ DISP1_IF_CLK_CNT_D_OFFSET;
+ __raw_writel(reg, DI_DISP_ACC_CC);
+ break;
+ case DISP2:
+ if (ifc_width == 8) {
+ __raw_writel(0x00070000, DI_DISP2_CB0_MAP);
+ __raw_writel(0x0000FFFF, DI_DISP2_CB1_MAP);
+ __raw_writel(0x0000FFFF, DI_DISP2_CB2_MAP);
+ } else {
+ __raw_writel(0x00070000, DI_DISP2_CB0_MAP);
+ __raw_writel(0x000F0000, DI_DISP2_CB1_MAP);
+ __raw_writel(0x0000FFFF, DI_DISP2_CB2_MAP);
+ }
+ __raw_writel(di_mappings[map].map_byte1, DI_DISP2_DB0_MAP);
+ __raw_writel(di_mappings[map].map_byte2, DI_DISP2_DB1_MAP);
+ __raw_writel(di_mappings[map].map_byte3, DI_DISP2_DB2_MAP);
+ reg = __raw_readl(DI_DISP_ACC_CC);
+ reg &= ~DISP2_IF_CLK_CNT_D_MASK;
+ reg |= (di_mappings[map].cycle_cnt - 1) <<
+ DISP2_IF_CLK_CNT_D_OFFSET;
+ __raw_writel(reg, DI_DISP_ACC_CC);
+ break;
+ default:
+ break;
+ }
+}
+
+void ipu_disp_direct_write(ipu_channel_t channel, u32 value, u32 offset)
+{
+ /*TODO*/
+}
+
+int ipu_init_async_panel(int disp, int type, uint32_t cycle_time,
+ uint32_t pixel_fmt, ipu_adc_sig_cfg_t sig)
+{
+ /*TODO:uniform interface for ipu async panel init*/
+ return -1;
+}
+
+EXPORT_SYMBOL(ipu_adc_write_template);
+EXPORT_SYMBOL(ipu_adc_write_cmd);
+EXPORT_SYMBOL(ipu_adc_set_update_mode);
+EXPORT_SYMBOL(ipu_adc_init_panel);
+EXPORT_SYMBOL(ipu_adc_init_ifc_timing);
diff --git a/drivers/mxc/ipu/ipu_calc_stripes_sizes.c b/drivers/mxc/ipu/ipu_calc_stripes_sizes.c
new file mode 100644
index 000000000000..3a45c0bfc488
--- /dev/null
+++ b/drivers/mxc/ipu/ipu_calc_stripes_sizes.c
@@ -0,0 +1,374 @@
+/*
+ * Copyright 2009-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*
+ * @file ipu_calc_stripes_sizes.c
+ *
+ * @brief IPU IC functions
+ *
+ * @ingroup IPU
+ */
+
+#include <linux/module.h>
+#include <linux/ipu.h>
+#include <asm/div64.h>
+
+#define BPP_32 0
+#define BPP_16 3
+#define BPP_8 5
+#define BPP_24 1
+#define BPP_12 4
+#define BPP_18 2
+
+static u64 _do_div(u64 a, u32 b)
+{
+ u64 div;
+ div = a;
+ do_div(div, b);
+ return div;
+}
+
+static u32 truncate(u32 up, /* 0: down; else: up */
+ u64 a, /* must be non-negative */
+ u32 b)
+{
+ u32 d;
+ u64 div;
+ div = _do_div(a, b);
+ d = b * (div >> 32);
+ if (up && (a > (((u64)d) << 32)))
+ return d+b;
+ else
+ return d;
+}
+
+static unsigned int f_calc(unsigned int pfs, unsigned int bpp, unsigned int *write)
+{/* return input_f */
+ unsigned int f_calculated = 0;
+ switch (pfs) {
+ case IPU_PIX_FMT_YVU422P:
+ case IPU_PIX_FMT_YUV422P:
+ case IPU_PIX_FMT_YUV420P2:
+ case IPU_PIX_FMT_YUV420P:
+ f_calculated = 16;
+ break;
+
+ case IPU_PIX_FMT_NV12:
+ f_calculated = 8;
+ break;
+
+ default:
+ f_calculated = 0;
+ break;
+
+ }
+ if (!f_calculated) {
+ switch (bpp) {
+ case BPP_32:
+ f_calculated = 2;
+ break;
+
+ case BPP_16:
+ f_calculated = 4;
+ break;
+
+ case BPP_8:
+ case BPP_24:
+ f_calculated = 8;
+ break;
+
+ case BPP_12:
+ f_calculated = 16;
+ break;
+
+ case BPP_18:
+ f_calculated = 32;
+ break;
+
+ default:
+ f_calculated = 0;
+ break;
+ }
+ }
+ return f_calculated;
+}
+
+
+static unsigned int m_calc(unsigned int pfs)
+{
+ unsigned int m_calculated = 0;
+ switch (pfs) {
+ case IPU_PIX_FMT_YUV420P2:
+ case IPU_PIX_FMT_YUV420P:
+ case IPU_PIX_FMT_YVU422P:
+ case IPU_PIX_FMT_YUV422P:
+ case IPU_PIX_FMT_YVU420P:
+ case IPU_PIX_FMT_NV12:
+ m_calculated = 8;
+ break;
+
+ case IPU_PIX_FMT_YUYV:
+ case IPU_PIX_FMT_UYVY:
+ m_calculated = 2;
+ break;
+
+ default:
+ m_calculated = 1;
+ break;
+
+ }
+ return m_calculated;
+}
+
+
+/* Stripe parameters calculator */
+/**************************************************************************
+Notes:
+MSW = the maximal width allowed for a stripe
+ i.MX31: 720, i.MX35: 800, i.MX37/51/53: 1024
+cirr = the maximal inverse resizing ratio for which overlap in the input
+ is requested; typically cirr~2
+equal_stripes:
+ 0: each stripe is allowed to have independent parameters
+ for maximal image quality
+ 1: the stripes are requested to have identical parameters
+ (except the base address), for maximal performance
+If performance is the top priority (above image quality)
+ Avoid overlap, by setting CIRR = 0
+ This will also force effectively identical_stripes = 1
+ Choose IF & OF that corresponds to the same IOX/SX for both stripes
+ Choose IFW & OFW such that
+ IFW/IM, IFW/IF, OFW/OM, OFW/OF are even integers
+ The function returns an error status:
+ 0: no error
+ 1: invalid input parameters -> aborted without result
+ Valid parameters should satisfy the following conditions
+ IFW <= OFW, otherwise downsizing is required
+ - which is not supported yet
+ 4 <= IFW,OFW, so some interpolation may be needed even without overlap
+ IM, OM, IF, OF should not vanish
+ 2*IF <= IFW
+ so the frame can be split to two equal stripes, even without overlap
+ 2*(OF+IF/irr_opt) <= OFW
+ so a valid positive INW exists even for equal stripes
+ OF <= MSW, otherwise, the left stripe cannot be sufficiently large
+ MSW < OFW, so splitting to stripes is required
+ OFW <= 2*MSW, so two stripes are sufficient
+ (this also implies that 2<=MSW)
+ 2: OF is not a multiple of OM - not fully-supported yet
+ Output is produced but OW is not guaranited to be a multiple of OM
+ 4: OFW reduced to be a multiple of OM
+ 8: CIRR > 1: truncated to 1
+ Overlap is not supported (and not needed) y for upsizing)
+**************************************************************************/
+int ipu_calc_stripes_sizes(const unsigned int input_frame_width,
+ /* input frame width;>1 */
+ unsigned int output_frame_width, /* output frame width; >1 */
+ const unsigned int maximal_stripe_width,
+ /* the maximal width allowed for a stripe */
+ const unsigned long long cirr, /* see above */
+ const unsigned int equal_stripes, /* see above */
+ u32 input_pixelformat,/* pixel format after of read channel*/
+ u32 output_pixelformat,/* pixel format after of write channel*/
+ struct stripe_param *left,
+ struct stripe_param *right)
+{
+ const unsigned int irr_frac_bits = 13;
+ const unsigned long irr_steps = 1 << irr_frac_bits;
+ const u64 dirr = ((u64)1) << (32 - 2);
+ /* The maximum relative difference allowed between the irrs */
+ const u64 cr = ((u64)4) << 32;
+ /* The importance ratio between the two terms in the cost function below */
+
+ unsigned int status;
+ unsigned int temp;
+ unsigned int onw_min;
+ unsigned int inw, onw, inw_best = 0;
+ /* number of pixels in the left stripe NOT hidden by the right stripe */
+ u64 irr_opt; /* the optimal inverse resizing ratio */
+ u64 rr_opt; /* the optimal resizing ratio = 1/irr_opt*/
+ u64 dinw; /* the misalignment between the stripes */
+ /* (measured in units of input columns) */
+ u64 difwl, difwr;
+ /* The number of input columns not reflected in the output */
+ /* the resizing ratio used for the right stripe is */
+ /* left->irr and right->irr respectively */
+ u64 cost, cost_min;
+ u64 div; /* result of division */
+
+ unsigned int input_m, input_f, output_m, output_f; /* parameters for upsizing by stripes */
+
+ status = 0;
+
+ /* M, F calculations */
+ /* read back pfs from params */
+
+ input_f = f_calc(input_pixelformat, 0, NULL);
+ input_m = 16;
+ /* BPP should be used in the out_F calc */
+ /* Temporarily not used */
+ /* out_F = F_calc(idmac->pfs, idmac->bpp, NULL); */
+
+ output_f = 16;
+ output_m = m_calc(output_pixelformat);
+
+
+ if ((output_frame_width < input_frame_width) || (input_frame_width < 4)
+ || (output_frame_width < 4))
+ return 1;
+
+ irr_opt = _do_div((((u64)(input_frame_width - 1)) << 32),
+ (output_frame_width - 1));
+ rr_opt = _do_div((((u64)(output_frame_width - 1)) << 32),
+ (input_frame_width - 1));
+
+ if ((input_m == 0) || (output_m == 0) || (input_f == 0) || (output_f == 0)
+ || (input_frame_width < (2 * input_f))
+ || ((((u64)output_frame_width) << 32) <
+ (2 * ((((u64)output_f) << 32) + (input_f * rr_opt))))
+ || (maximal_stripe_width < output_f)
+ || (output_frame_width <= maximal_stripe_width)
+ || ((2 * maximal_stripe_width) < output_frame_width))
+ return 1;
+
+ if (output_f % output_m)
+ status += 2;
+
+ temp = truncate(0, (((u64)output_frame_width) << 32), output_m);
+ if (temp < output_frame_width) {
+ output_frame_width = temp;
+ status += 4;
+ }
+
+ if (equal_stripes) {
+ if ((irr_opt > cirr) /* overlap in the input is not requested */
+ && ((input_frame_width % (input_m << 1)) == 0)
+ && ((input_frame_width % (input_f << 1)) == 0)
+ && ((output_frame_width % (output_m << 1)) == 0)
+ && ((output_frame_width % (output_f << 1)) == 0)) {
+ /* without overlap */
+ left->input_width = right->input_width = right->input_column =
+ input_frame_width >> 1;
+ left->output_width = right->output_width = right->output_column =
+ output_frame_width >> 1;
+ left->input_column = right->input_column = 0;
+ div = _do_div(((((u64)irr_steps) << 32) *
+ (right->input_width - 1)), (right->output_width - 1));
+ left->irr = right->irr = truncate(0, div, 1);
+ } else { /* with overlap */
+ onw = truncate(0, (((u64)output_frame_width) << 32) >> 1,
+ output_f);
+ inw = truncate(0, onw * irr_opt, input_f);
+ /* this is the maximal inw which allows the same resizing ratio */
+ /* in both stripes */
+ onw = truncate(1, (inw * rr_opt), output_f);
+ div = _do_div((((u64)(irr_steps * inw)) <<
+ 32), onw);
+ left->irr = right->irr = truncate(0, div, 1);
+ left->output_width = right->output_width =
+ output_frame_width - onw;
+ /* These are valid assignments for output_width, */
+ /* assuming output_f is a multiple of output_m */
+ div = (((u64)(left->output_width-1) * (left->irr)) << 32);
+ div = (((u64)1) << 32) + _do_div(div, irr_steps);
+
+ left->input_width = right->input_width = truncate(1, div, input_m);
+
+ div = _do_div((((u64)((right->output_width - 1) * right->irr)) <<
+ 32), irr_steps);
+ difwr = (((u64)(input_frame_width - 1 - inw)) << 32) - div;
+ div = _do_div((difwr + (((u64)input_f) << 32)), 2);
+ left->input_column = truncate(0, div, input_f);
+
+
+ /* This splits the truncated input columns evenly */
+ /* between the left and right margins */
+ right->input_column = left->input_column + inw;
+ left->output_column = 0;
+ right->output_column = onw;
+ }
+ } else { /* independent stripes */
+ onw_min = output_frame_width - maximal_stripe_width;
+ /* onw is a multiple of output_f, in the range */
+ /* [max(output_f,output_frame_width-maximal_stripe_width),*/
+ /*min(output_frame_width-2,maximal_stripe_width)] */
+ /* definitely beyond the cost of any valid setting */
+ cost_min = (((u64)input_frame_width) << 32) + cr;
+ onw = truncate(0, ((u64)maximal_stripe_width), output_f);
+ if (output_frame_width - onw == 1)
+ onw -= output_f; /* => onw and output_frame_width-1-onw are positive */
+ inw = truncate(0, onw * irr_opt, input_f);
+ /* this is the maximal inw which allows the same resizing ratio */
+ /* in both stripes */
+ onw = truncate(1, inw * rr_opt, output_f);
+ do {
+ div = _do_div((((u64)(irr_steps * inw)) << 32), onw);
+ left->irr = truncate(0, div, 1);
+ div = _do_div((((u64)(onw * left->irr)) << 32),
+ irr_steps);
+ dinw = (((u64)inw) << 32) - div;
+
+ div = _do_div((((u64)((output_frame_width - 1 - onw) * left->irr)) <<
+ 32), irr_steps);
+
+ difwl = (((u64)(input_frame_width - 1 - inw)) << 32) - div;
+
+ cost = difwl + (((u64)(cr * dinw)) >> 32);
+
+ if (cost < cost_min) {
+ inw_best = inw;
+ cost_min = cost;
+ }
+
+ inw -= input_f;
+ onw = truncate(1, inw * rr_opt, output_f);
+ /* This is the minimal onw which allows the same resizing ratio */
+ /* in both stripes */
+ } while (onw >= onw_min);
+
+ inw = inw_best;
+ onw = truncate(1, inw * rr_opt, output_f);
+ div = _do_div((((u64)(irr_steps * inw)) << 32), onw);
+ left->irr = truncate(0, div, 1);
+
+ left->output_width = onw;
+ right->output_width = output_frame_width - onw;
+ /* These are valid assignments for output_width, */
+ /* assuming output_f is a multiple of output_m */
+ left->input_width = truncate(1, ((u64)(inw + 1)) << 32, input_m);
+ right->input_width = truncate(1, ((u64)(input_frame_width - inw)) <<
+ 32, input_m);
+
+ div = _do_div((((u64)(irr_steps * (input_frame_width - 1 - inw))) <<
+ 32), (right->output_width - 1));
+ right->irr = truncate(0, div, 1);
+ temp = truncate(0, ((u64)left->irr) * ((((u64)1) << 32) + dirr), 1);
+ if (temp < right->irr)
+ right->irr = temp;
+ div = _do_div(((u64)((right->output_width - 1) * right->irr) <<
+ 32), irr_steps);
+ difwr = (u64)(input_frame_width - 1 - inw) - div;
+
+
+ div = _do_div((difwr + (((u64)input_f) << 32)), 2);
+ left->input_column = truncate(0, div, input_f);
+
+ /* This splits the truncated input columns evenly */
+ /* between the left and right margins */
+ right->input_column = left->input_column + inw;
+ left->output_column = 0;
+ right->output_column = onw;
+ }
+ return status;
+}
+EXPORT_SYMBOL(ipu_calc_stripes_sizes);
diff --git a/drivers/mxc/ipu/ipu_common.c b/drivers/mxc/ipu/ipu_common.c
new file mode 100644
index 000000000000..fd4345283180
--- /dev/null
+++ b/drivers/mxc/ipu/ipu_common.c
@@ -0,0 +1,1970 @@
+/*
+ * Copyright 2005-2011 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file ipu_common.c
+ *
+ * @brief This file contains the IPU driver common API functions.
+ *
+ * @ingroup IPU
+ */
+
+#include <linux/types.h>
+#include <linux/init.h>
+#include <linux/platform_device.h>
+#include <linux/err.h>
+#include <linux/spinlock.h>
+#include <linux/delay.h>
+#include <linux/clk.h>
+#include <linux/io.h>
+#include <linux/ipu.h>
+#include <linux/fsl_devices.h>
+
+#include "ipu_prv.h"
+#include "ipu_regs.h"
+#include "ipu_param_mem.h"
+
+/*
+ * This type definition is used to define a node in the GPIO interrupt queue for
+ * registered interrupts for GPIO pins. Each node contains the GPIO signal number
+ * associated with the ISR and the actual ISR function pointer.
+ */
+struct ipu_irq_node {
+ irqreturn_t(*handler) (int, void *); /*!< the ISR */
+ const char *name; /*!< device associated with the interrupt */
+ void *dev_id; /*!< some unique information for the ISR */
+ __u32 flags; /*!< not used */
+};
+
+/* Globals */
+struct clk *g_ipu_clk;
+struct clk *g_ipu_csi_clk;
+static struct clk *dfm_clk;
+int g_ipu_irq[2];
+int g_ipu_hw_rev;
+bool g_sec_chan_en[21];
+uint32_t g_channel_init_mask;
+DEFINE_SPINLOCK(ipu_lock);
+struct device *g_ipu_dev;
+
+static struct ipu_irq_node ipu_irq_list[IPU_IRQ_COUNT];
+static const char driver_name[] = "mxc_ipu";
+
+static uint32_t g_ipu_config;
+static uint32_t g_channel_init_mask_backup;
+static bool g_csi_used;
+
+/* Static functions */
+static irqreturn_t ipu_irq_handler(int irq, void *desc);
+static void _ipu_pf_init(ipu_channel_params_t *params);
+static void _ipu_pf_uninit(void);
+
+static inline uint32_t channel_2_dma(ipu_channel_t ch, ipu_buffer_t type)
+{
+ return ((type == IPU_INPUT_BUFFER) ? ((uint32_t) ch & 0xFF) :
+ ((type == IPU_OUTPUT_BUFFER) ? (((uint32_t) ch >> 8) & 0xFF)
+ : (((uint32_t) ch >> 16) & 0xFF)));
+};
+
+static inline uint32_t DMAParamAddr(uint32_t dma_ch)
+{
+ return 0x10000 | (dma_ch << 4);
+};
+
+/*!
+ * This function is called by the driver framework to initialize the IPU
+ * hardware.
+ *
+ * @param dev The device structure for the IPU passed in by the framework.
+ *
+ * @return This function returns 0 on success or negative error code on error
+ */
+static
+int ipu_probe(struct platform_device *pdev)
+{
+ struct mxc_ipu_config *ipu_conf = pdev->dev.platform_data;
+
+ spin_lock_init(&ipu_lock);
+
+ g_ipu_dev = &pdev->dev;
+ g_ipu_hw_rev = ipu_conf->rev;
+
+ /* Register IPU interrupts */
+ g_ipu_irq[0] = platform_get_irq(pdev, 0);
+ if (g_ipu_irq[0] < 0)
+ return -EINVAL;
+
+ if (request_irq(g_ipu_irq[0], ipu_irq_handler, 0, driver_name, 0) != 0) {
+ dev_err(g_ipu_dev, "request SYNC interrupt failed\n");
+ return -EBUSY;
+ }
+ /* Some platforms have 2 IPU interrupts */
+ g_ipu_irq[1] = platform_get_irq(pdev, 1);
+ if (g_ipu_irq[1] >= 0) {
+ if (request_irq
+ (g_ipu_irq[1], ipu_irq_handler, 0, driver_name, 0) != 0) {
+ dev_err(g_ipu_dev, "request ERR interrupt failed\n");
+ return -EBUSY;
+ }
+ }
+
+ /* Enable IPU and CSI clocks */
+ /* Get IPU clock freq */
+ g_ipu_clk = clk_get(&pdev->dev, "ipu_clk");
+ dev_dbg(g_ipu_dev, "ipu_clk = %lu\n", clk_get_rate(g_ipu_clk));
+
+ g_ipu_csi_clk = clk_get(&pdev->dev, "csi_clk");
+
+ dfm_clk = clk_get(NULL, "dfm_clk");
+
+ clk_enable(g_ipu_clk);
+
+ /* resetting the CONF register of the IPU */
+ __raw_writel(0x00000000, IPU_CONF);
+
+ __raw_writel(0x00100010L, DI_HSP_CLK_PER);
+
+ /* Set SDC refresh channels as high priority */
+ __raw_writel(0x0000C000L, IDMAC_CHA_PRI);
+
+ /* Set to max back to back burst requests */
+ __raw_writel(0x00000000L, IDMAC_CONF);
+
+ register_ipu_device();
+
+ return 0;
+}
+
+/*!
+ * This function is called to initialize a logical IPU channel.
+ *
+ * @param channel Input parameter for the logical channel ID to initalize.
+ *
+ * @param params Input parameter containing union of channel initialization
+ * parameters.
+ *
+ * @return This function returns 0 on success or negative error code on fail
+ */
+int32_t ipu_init_channel(ipu_channel_t channel, ipu_channel_params_t *params)
+{
+ uint32_t ipu_conf;
+ uint32_t reg;
+ unsigned long lock_flags;
+
+ dev_dbg(g_ipu_dev, "init channel = %d\n", IPU_CHAN_ID(channel));
+
+ if ((channel != MEM_SDC_BG) && (channel != MEM_SDC_FG) &&
+ (channel != MEM_ROT_ENC_MEM) && (channel != MEM_ROT_VF_MEM) &&
+ (channel != MEM_ROT_PP_MEM) && (channel != CSI_MEM)
+ && (params == NULL)) {
+ return -EINVAL;
+ }
+
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+
+ ipu_conf = __raw_readl(IPU_CONF);
+ if (ipu_conf == 0) {
+ clk_enable(g_ipu_clk);
+ }
+
+ if (g_channel_init_mask & (1L << IPU_CHAN_ID(channel))) {
+ dev_err(g_ipu_dev, "Warning: channel already initialized %d\n",
+ IPU_CHAN_ID(channel));
+ }
+
+ switch (channel) {
+ case CSI_PRP_VF_MEM:
+ reg = __raw_readl(IPU_FS_PROC_FLOW);
+ __raw_writel(reg & ~FS_VF_IN_VALID, IPU_FS_PROC_FLOW);
+
+ if (params->mem_prp_vf_mem.graphics_combine_en)
+ g_sec_chan_en[IPU_CHAN_ID(channel)] = true;
+
+ _ipu_ic_init_prpvf(params, true);
+ break;
+ case CSI_PRP_VF_ADC:
+ reg = __raw_readl(IPU_FS_PROC_FLOW);
+ __raw_writel(reg | (FS_DEST_ADC << FS_PRPVF_DEST_SEL_OFFSET),
+ IPU_FS_PROC_FLOW);
+
+ _ipu_adc_init_channel(CSI_PRP_VF_ADC,
+ params->csi_prp_vf_adc.disp,
+ WriteTemplateNonSeq,
+ params->csi_prp_vf_adc.out_left,
+ params->csi_prp_vf_adc.out_top);
+
+ _ipu_ic_init_prpvf(params, true);
+ break;
+ case MEM_PRP_VF_MEM:
+ reg = __raw_readl(IPU_FS_PROC_FLOW);
+ __raw_writel(reg | FS_VF_IN_VALID, IPU_FS_PROC_FLOW);
+
+ if (params->mem_prp_vf_mem.graphics_combine_en)
+ g_sec_chan_en[IPU_CHAN_ID(channel)] = true;
+
+ _ipu_ic_init_prpvf(params, false);
+ break;
+ case MEM_ROT_VF_MEM:
+ _ipu_ic_init_rotate_vf(params);
+ break;
+ case CSI_PRP_ENC_MEM:
+ reg = __raw_readl(IPU_FS_PROC_FLOW);
+ __raw_writel(reg & ~FS_ENC_IN_VALID, IPU_FS_PROC_FLOW);
+ _ipu_ic_init_prpenc(params, true);
+ break;
+ case MEM_PRP_ENC_MEM:
+ reg = __raw_readl(IPU_FS_PROC_FLOW);
+ __raw_writel(reg | FS_ENC_IN_VALID, IPU_FS_PROC_FLOW);
+ _ipu_ic_init_prpenc(params, false);
+ break;
+ case MEM_ROT_ENC_MEM:
+ _ipu_ic_init_rotate_enc(params);
+ break;
+ case MEM_PP_ADC:
+ reg = __raw_readl(IPU_FS_PROC_FLOW);
+ __raw_writel(reg | (FS_DEST_ADC << FS_PP_DEST_SEL_OFFSET),
+ IPU_FS_PROC_FLOW);
+
+ _ipu_adc_init_channel(MEM_PP_ADC, params->mem_pp_adc.disp,
+ WriteTemplateNonSeq,
+ params->mem_pp_adc.out_left,
+ params->mem_pp_adc.out_top);
+
+ if (params->mem_pp_adc.graphics_combine_en)
+ g_sec_chan_en[IPU_CHAN_ID(channel)] = true;
+
+ _ipu_ic_init_pp(params);
+ break;
+ case MEM_PP_MEM:
+ if (params->mem_pp_mem.graphics_combine_en)
+ g_sec_chan_en[IPU_CHAN_ID(channel)] = true;
+
+ _ipu_ic_init_pp(params);
+ break;
+ case MEM_ROT_PP_MEM:
+ _ipu_ic_init_rotate_pp(params);
+ break;
+ case CSI_MEM:
+ _ipu_ic_init_csi(params);
+ break;
+
+ case MEM_PF_Y_MEM:
+ case MEM_PF_U_MEM:
+ case MEM_PF_V_MEM:
+ /* Enable PF block */
+ _ipu_pf_init(params);
+ break;
+
+ case MEM_SDC_BG:
+ break;
+ case MEM_SDC_FG:
+ break;
+ case ADC_SYS1:
+ _ipu_adc_init_channel(ADC_SYS1, params->adc_sys1.disp,
+ params->adc_sys1.ch_mode,
+ params->adc_sys1.out_left,
+ params->adc_sys1.out_top);
+ break;
+ case ADC_SYS2:
+ _ipu_adc_init_channel(ADC_SYS2, params->adc_sys2.disp,
+ params->adc_sys2.ch_mode,
+ params->adc_sys2.out_left,
+ params->adc_sys2.out_top);
+ break;
+ default:
+ dev_err(g_ipu_dev, "Missing channel initialization\n");
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+ return -EINVAL;
+ }
+
+ /* Enable IPU sub module */
+ g_channel_init_mask |= 1L << IPU_CHAN_ID(channel);
+
+ if (g_channel_init_mask & 0x00000066L) { /*CSI */
+ ipu_conf |= IPU_CONF_CSI_EN;
+ if (cpu_is_mx31() || cpu_is_mx32()) {
+ g_csi_used = true;
+ }
+ }
+ if (g_channel_init_mask & 0x00001FFFL) { /*IC */
+ ipu_conf |= IPU_CONF_IC_EN;
+ }
+ if (g_channel_init_mask & 0x00000A10L) { /*ROT */
+ ipu_conf |= IPU_CONF_ROT_EN;
+ }
+ if (g_channel_init_mask & 0x0001C000L) { /*SDC */
+ ipu_conf |= IPU_CONF_SDC_EN | IPU_CONF_DI_EN;
+ }
+ if (g_channel_init_mask & 0x00061140L) { /*ADC */
+ ipu_conf |= IPU_CONF_ADC_EN | IPU_CONF_DI_EN;
+ }
+ if (g_channel_init_mask & 0x00380000L) { /*PF */
+ ipu_conf |= IPU_CONF_PF_EN;
+ }
+ __raw_writel(ipu_conf, IPU_CONF);
+
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+
+ return 0;
+}
+
+/*!
+ * This function is called to uninitialize a logical IPU channel.
+ *
+ * @param channel Input parameter for the logical channel ID to uninitalize.
+ */
+void ipu_uninit_channel(ipu_channel_t channel)
+{
+ unsigned long lock_flags;
+ uint32_t reg;
+ uint32_t dma, mask = 0;
+ uint32_t ipu_conf;
+
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+
+ if ((g_channel_init_mask & (1L << IPU_CHAN_ID(channel))) == 0) {
+ dev_err(g_ipu_dev, "Channel already uninitialized %d\n",
+ IPU_CHAN_ID(channel));
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+ return;
+ }
+
+ /* Make sure channel is disabled */
+ /* Get input and output dma channels */
+ dma = channel_2_dma(channel, IPU_OUTPUT_BUFFER);
+ if (dma != IDMA_CHAN_INVALID)
+ mask |= 1UL << dma;
+ dma = channel_2_dma(channel, IPU_INPUT_BUFFER);
+ if (dma != IDMA_CHAN_INVALID)
+ mask |= 1UL << dma;
+ /* Get secondary input dma channel */
+ if (g_sec_chan_en[IPU_CHAN_ID(channel)]) {
+ dma = channel_2_dma(channel, IPU_SEC_INPUT_BUFFER);
+ if (dma != IDMA_CHAN_INVALID) {
+ mask |= 1UL << dma;
+ }
+ }
+ if (mask & __raw_readl(IDMAC_CHA_EN)) {
+ dev_err(g_ipu_dev,
+ "Channel %d is not disabled, disable first\n",
+ IPU_CHAN_ID(channel));
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+ return;
+ }
+
+ /* Reset the double buffer */
+ reg = __raw_readl(IPU_CHA_DB_MODE_SEL);
+ __raw_writel(reg & ~mask, IPU_CHA_DB_MODE_SEL);
+
+ g_sec_chan_en[IPU_CHAN_ID(channel)] = false;
+
+ switch (channel) {
+ case CSI_MEM:
+ _ipu_ic_uninit_csi();
+ break;
+ case CSI_PRP_VF_ADC:
+ reg = __raw_readl(IPU_FS_PROC_FLOW);
+ __raw_writel(reg & ~FS_PRPVF_DEST_SEL_MASK, IPU_FS_PROC_FLOW);
+
+ _ipu_adc_uninit_channel(CSI_PRP_VF_ADC);
+
+ /* Fall thru */
+ case CSI_PRP_VF_MEM:
+ case MEM_PRP_VF_MEM:
+ _ipu_ic_uninit_prpvf();
+ break;
+ case MEM_PRP_VF_ADC:
+ break;
+ case MEM_ROT_VF_MEM:
+ _ipu_ic_uninit_rotate_vf();
+ break;
+ case CSI_PRP_ENC_MEM:
+ case MEM_PRP_ENC_MEM:
+ _ipu_ic_uninit_prpenc();
+ break;
+ case MEM_ROT_ENC_MEM:
+ _ipu_ic_uninit_rotate_enc();
+ break;
+ case MEM_PP_ADC:
+ reg = __raw_readl(IPU_FS_PROC_FLOW);
+ __raw_writel(reg & ~FS_PP_DEST_SEL_MASK, IPU_FS_PROC_FLOW);
+
+ _ipu_adc_uninit_channel(MEM_PP_ADC);
+
+ /* Fall thru */
+ case MEM_PP_MEM:
+ _ipu_ic_uninit_pp();
+ break;
+ case MEM_ROT_PP_MEM:
+ _ipu_ic_uninit_rotate_pp();
+ break;
+
+ case MEM_PF_Y_MEM:
+ _ipu_pf_uninit();
+ break;
+ case MEM_PF_U_MEM:
+ case MEM_PF_V_MEM:
+ break;
+
+ case MEM_SDC_BG:
+ break;
+ case MEM_SDC_FG:
+ break;
+ case ADC_SYS1:
+ _ipu_adc_uninit_channel(ADC_SYS1);
+ break;
+ case ADC_SYS2:
+ _ipu_adc_uninit_channel(ADC_SYS2);
+ break;
+ case MEM_SDC_MASK:
+ case CHAN_NONE:
+ break;
+ }
+
+ g_channel_init_mask &= ~(1L << IPU_CHAN_ID(channel));
+
+ ipu_conf = __raw_readl(IPU_CONF);
+ if ((g_channel_init_mask & 0x00000066L) == 0) { /*CSI */
+ ipu_conf &= ~IPU_CONF_CSI_EN;
+ }
+ if ((g_channel_init_mask & 0x00001FFFL) == 0) { /*IC */
+ ipu_conf &= ~IPU_CONF_IC_EN;
+ }
+ if ((g_channel_init_mask & 0x00000A10L) == 0) { /*ROT */
+ ipu_conf &= ~IPU_CONF_ROT_EN;
+ }
+ if ((g_channel_init_mask & 0x0001C000L) == 0) { /*SDC */
+ ipu_conf &= ~IPU_CONF_SDC_EN;
+ }
+ if ((g_channel_init_mask & 0x00061140L) == 0) { /*ADC */
+ ipu_conf &= ~IPU_CONF_ADC_EN;
+ }
+ if ((g_channel_init_mask & 0x0007D140L) == 0) { /*DI */
+ ipu_conf &= ~IPU_CONF_DI_EN;
+ }
+ if ((g_channel_init_mask & 0x00380000L) == 0) { /*PF */
+ ipu_conf &= ~IPU_CONF_PF_EN;
+ }
+ __raw_writel(ipu_conf, IPU_CONF);
+ if (ipu_conf == 0) {
+ clk_disable(g_ipu_clk);
+ }
+
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+}
+
+/*!
+ * This function is called to initialize a buffer for logical IPU channel.
+ *
+ * @param channel Input parameter for the logical channel ID.
+ *
+ * @param type Input parameter which buffer to initialize.
+ *
+ * @param pixel_fmt Input parameter for pixel format of buffer. Pixel
+ * format is a FOURCC ASCII code.
+ *
+ * @param width Input parameter for width of buffer in pixels.
+ *
+ * @param height Input parameter for height of buffer in pixels.
+ *
+ * @param stride Input parameter for stride length of buffer
+ * in pixels.
+ *
+ * @param rot_mode Input parameter for rotation setting of buffer.
+ * A rotation setting other than \b IPU_ROTATE_VERT_FLIP
+ * should only be used for input buffers of rotation
+ * channels.
+ *
+ * @param phyaddr_0 Input parameter buffer 0 physical address.
+ *
+ * @param phyaddr_1 Input parameter buffer 1 physical address.
+ * Setting this to a value other than NULL enables
+ * double buffering mode.
+ *
+ * @param u private u offset for additional cropping,
+ * zero if not used.
+ *
+ * @param v private v offset for additional cropping,
+ * zero if not used.
+ *
+ * @return This function returns 0 on success or negative error code on fail
+ */
+int32_t ipu_init_channel_buffer(ipu_channel_t channel, ipu_buffer_t type,
+ uint32_t pixel_fmt,
+ uint16_t width, uint16_t height,
+ uint32_t stride,
+ ipu_rotate_mode_t rot_mode,
+ dma_addr_t phyaddr_0, dma_addr_t phyaddr_1,
+ uint32_t u, uint32_t v)
+{
+ uint32_t params[10];
+ unsigned long lock_flags;
+ uint32_t reg;
+ uint32_t dma_chan;
+
+ dma_chan = channel_2_dma(channel, type);
+
+ if (stride < width * bytes_per_pixel(pixel_fmt))
+ stride = width * bytes_per_pixel(pixel_fmt);
+
+ if (dma_chan == IDMA_CHAN_INVALID)
+ return -EINVAL;
+
+ if (stride % 4) {
+ dev_err(g_ipu_dev,
+ "Stride must be 32-bit aligned, stride = %d\n", stride);
+ return -EINVAL;
+ }
+ /* IC channels' width must be multiple of 8 pixels */
+ if ((dma_chan <= 13) && (width % 8)) {
+ dev_err(g_ipu_dev, "width must be 8 pixel multiple\n");
+ return -EINVAL;
+ }
+ /* Build parameter memory data for DMA channel */
+ _ipu_ch_param_set_size(params, pixel_fmt, width, height, stride, u, v);
+ _ipu_ch_param_set_buffer(params, phyaddr_0, phyaddr_1);
+ _ipu_ch_param_set_rotation(params, rot_mode);
+ /* Some channels (rotation) have restriction on burst length */
+ if ((dma_chan == 10) || (dma_chan == 11) || (dma_chan == 13)) {
+ _ipu_ch_param_set_burst_size(params, 8);
+ } else if (dma_chan == 24) { /* PF QP channel */
+ _ipu_ch_param_set_burst_size(params, 4);
+ } else if (dma_chan == 25) { /* PF H264 BS channel */
+ _ipu_ch_param_set_burst_size(params, 16);
+ } else if (((dma_chan == 14) || (dma_chan == 15)) &&
+ pixel_fmt == IPU_PIX_FMT_RGB565) {
+ _ipu_ch_param_set_burst_size(params, 16);
+ }
+
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+
+ _ipu_write_param_mem(DMAParamAddr(dma_chan), params, 10);
+
+ reg = __raw_readl(IPU_CHA_DB_MODE_SEL);
+ if (phyaddr_1) {
+ reg |= 1UL << dma_chan;
+ } else {
+ reg &= ~(1UL << dma_chan);
+ }
+ __raw_writel(reg, IPU_CHA_DB_MODE_SEL);
+
+ /* Reset to buffer 0 */
+ __raw_writel(1UL << dma_chan, IPU_CHA_CUR_BUF);
+
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+
+ return 0;
+}
+
+/*!
+ * This function is called to update the physical address of a buffer for
+ * a logical IPU channel.
+ *
+ * @param channel Input parameter for the logical channel ID.
+ *
+ * @param type Input parameter which buffer to initialize.
+ *
+ * @param bufNum Input parameter for which buffer number to update.
+ * 0 or 1 are the only valid values.
+ *
+ * @param phyaddr Input parameter buffer physical address.
+ *
+ * @return This function returns 0 on success or negative error code on
+ * fail. This function will fail if the buffer is set to ready.
+ */
+int32_t ipu_update_channel_buffer(ipu_channel_t channel, ipu_buffer_t type,
+ uint32_t bufNum, dma_addr_t phyaddr)
+{
+ uint32_t reg;
+ unsigned long lock_flags;
+ uint32_t dma_chan = channel_2_dma(channel, type);
+
+ if (dma_chan == IDMA_CHAN_INVALID)
+ return -EINVAL;
+
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+
+ if (bufNum == 0) {
+ reg = __raw_readl(IPU_CHA_BUF0_RDY);
+ if (reg & (1UL << dma_chan)) {
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+ return -EACCES;
+ }
+ __raw_writel(DMAParamAddr(dma_chan) + 0x0008UL, IPU_IMA_ADDR);
+ __raw_writel(phyaddr, IPU_IMA_DATA);
+ } else {
+ reg = __raw_readl(IPU_CHA_BUF1_RDY);
+ if (reg & (1UL << dma_chan)) {
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+ return -EACCES;
+ }
+ __raw_writel(DMAParamAddr(dma_chan) + 0x0009UL, IPU_IMA_ADDR);
+ __raw_writel(phyaddr, IPU_IMA_DATA);
+ }
+
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+ dev_dbg(g_ipu_dev, "IPU: update IDMA ch %d buf %d = 0x%08X\n",
+ dma_chan, bufNum, phyaddr);
+ return 0;
+}
+
+/*!
+ * This function is called to initialize a buffer for logical IPU channel.
+ *
+ * @param channel Input parameter for the logical channel ID.
+ *
+ * @param type Input parameter which buffer to initialize.
+ *
+ * @param pixel_fmt Input parameter for pixel format of buffer.
+ * Pixel format is a FOURCC ASCII code.
+ *
+ * @param width Input parameter for width of buffer in pixels.
+ *
+ * @param height Input parameter for height of buffer in pixels.
+ *
+ * @param stride Input parameter for stride length of buffer
+ * in pixels.
+ *
+ * @param u predefined private u offset for additional cropping,
+ * zero if not used.
+ *
+ * @param v predefined private v offset for additional cropping,
+ * zero if not used.
+ *
+ * @param vertical_offset vertical offset for Y coordinate
+ * in the existed frame
+ *
+ *
+ * @param horizontal_offset horizontal offset for X coordinate
+ * in the existed frame
+ *
+ *
+ * @return Returns 0 on success or negative error code on fail
+ * This function will fail if any buffer is set to ready.
+ */
+
+int32_t ipu_update_channel_offset(ipu_channel_t channel, ipu_buffer_t type,
+ uint32_t pixel_fmt,
+ uint16_t width, uint16_t height,
+ uint32_t stride,
+ uint32_t u, uint32_t v,
+ uint32_t vertical_offset, uint32_t horizontal_offset)
+{
+ uint32_t reg;
+ int ret = 0;
+ unsigned long lock_flags;
+ uint32_t dma_chan = channel_2_dma(channel, type);
+
+ if (dma_chan == IDMA_CHAN_INVALID)
+ return -EINVAL;
+
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+
+ ret = -EACCES;
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+ return ret;
+}
+EXPORT_SYMBOL(ipu_update_channel_offset);
+
+/*!
+ * This function is called to set a channel's buffer as ready.
+ *
+ * @param channel Input parameter for the logical channel ID.
+ *
+ * @param type Input parameter which buffer to initialize.
+ *
+ * @param bufNum Input parameter for which buffer number set to
+ * ready state.
+ *
+ * @return This function returns 0 on success or negative error code on fail
+ */
+int32_t ipu_select_buffer(ipu_channel_t channel, ipu_buffer_t type,
+ uint32_t bufNum)
+{
+ uint32_t dma_chan = channel_2_dma(channel, type);
+
+ if (dma_chan == IDMA_CHAN_INVALID)
+ return -EINVAL;
+
+ if (bufNum == 0) {
+ /*Mark buffer 0 as ready. */
+ __raw_writel(1UL << dma_chan, IPU_CHA_BUF0_RDY);
+ } else {
+ /*Mark buffer 1 as ready. */
+ __raw_writel(1UL << dma_chan, IPU_CHA_BUF1_RDY);
+ }
+ return 0;
+}
+
+/*!
+ * This function check buffer ready for a logical channel.
+ *
+ * @param channel Input parameter for the logical channel ID.
+ *
+ * @param type Input parameter which buffer to clear.
+ *
+ * @param bufNum Input parameter for which buffer number clear
+ * ready state.
+ *
+ */
+int32_t ipu_check_buffer_ready(ipu_channel_t channel, ipu_buffer_t type,
+ uint32_t bufNum)
+{
+ uint32_t dma_chan = channel_2_dma(channel, type);
+ uint32_t reg;
+
+ if (dma_chan == IDMA_CHAN_INVALID)
+ return -EINVAL;
+
+ if (bufNum == 0)
+ reg = __raw_readl(IPU_CHA_BUF0_RDY);
+ else
+ reg = __raw_readl(IPU_CHA_BUF1_RDY);
+
+ if (reg & (1UL << dma_chan))
+ return 1;
+ else
+ return 0;
+}
+EXPORT_SYMBOL(ipu_check_buffer_ready);
+
+/*!
+ * This function links 2 channels together for automatic frame
+ * synchronization. The output of the source channel is linked to the input of
+ * the destination channel.
+ *
+ * @param src_ch Input parameter for the logical channel ID of
+ * the source channel.
+ *
+ * @param dest_ch Input parameter for the logical channel ID of
+ * the destination channel.
+ *
+ * @return This function returns 0 on success or negative error code on
+ * fail.
+ */
+int32_t ipu_link_channels(ipu_channel_t src_ch, ipu_channel_t dest_ch)
+{
+ unsigned long lock_flags;
+ uint32_t out_dma;
+ uint32_t in_dma;
+ bool isProc;
+ uint32_t value;
+ uint32_t mask;
+ uint32_t offset;
+ uint32_t fs_proc_flow;
+ uint32_t fs_disp_flow;
+
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+
+ fs_proc_flow = __raw_readl(IPU_FS_PROC_FLOW);
+ fs_disp_flow = __raw_readl(IPU_FS_DISP_FLOW);
+
+ out_dma = (1UL << channel_2_dma(src_ch, IPU_OUTPUT_BUFFER));
+ in_dma = (1UL << channel_2_dma(dest_ch, IPU_INPUT_BUFFER));
+
+ /* PROCESS THE OUTPUT DMA CH */
+ switch (out_dma) {
+ /*VF-> */
+ case IDMA_IC_1:
+ pr_debug("Link VF->");
+ isProc = true;
+ mask = FS_PRPVF_DEST_SEL_MASK;
+ offset = FS_PRPVF_DEST_SEL_OFFSET;
+ value = (in_dma == IDMA_IC_11) ? FS_DEST_ROT : /*->VF_ROT */
+ (in_dma == IDMA_ADC_SYS1_WR) ? FS_DEST_ADC1 : /* ->ADC1 */
+ (in_dma == IDMA_ADC_SYS2_WR) ? FS_DEST_ADC2 : /* ->ADC2 */
+ (in_dma == IDMA_SDC_BG) ? FS_DEST_SDC_BG : /*->SDC_BG */
+ (in_dma == IDMA_SDC_FG) ? FS_DEST_SDC_FG : /*->SDC_FG */
+ (in_dma == IDMA_ADC_SYS1_WR) ? FS_DEST_ADC1 : /*->ADC1 */
+ /* ->ADCDirect */
+ 0;
+ break;
+
+ /*VF_ROT-> */
+ case IDMA_IC_9:
+ pr_debug("Link VF_ROT->");
+ isProc = true;
+ mask = FS_PRPVF_ROT_DEST_SEL_MASK;
+ offset = FS_PRPVF_ROT_DEST_SEL_OFFSET;
+ value = (in_dma == IDMA_ADC_SYS1_WR) ? FS_DEST_ADC1 : /*->ADC1 */
+ (in_dma == IDMA_ADC_SYS2_WR) ? FS_DEST_ADC2 : /* ->ADC2 */
+ (in_dma == IDMA_SDC_BG) ? FS_DEST_SDC_BG : /*->SDC_BG */
+ (in_dma == IDMA_SDC_FG) ? FS_DEST_SDC_FG : /*->SDC_FG */
+ 0;
+ break;
+
+ /*ENC-> */
+ case IDMA_IC_0:
+ pr_debug("Link ENC->");
+ isProc = true;
+ mask = 0;
+ offset = 0;
+ value = (in_dma == IDMA_IC_10) ? FS_PRPENC_DEST_SEL : /*->ENC_ROT */
+ 0;
+ break;
+
+ /*PP-> */
+ case IDMA_IC_2:
+ pr_debug("Link PP->");
+ isProc = true;
+ mask = FS_PP_DEST_SEL_MASK;
+ offset = FS_PP_DEST_SEL_OFFSET;
+ value = (in_dma == IDMA_IC_13) ? FS_DEST_ROT : /*->PP_ROT */
+ (in_dma == IDMA_ADC_SYS1_WR) ? FS_DEST_ADC1 : /* ->ADC1 */
+ (in_dma == IDMA_ADC_SYS2_WR) ? FS_DEST_ADC2 : /* ->ADC2 */
+ (in_dma == IDMA_SDC_BG) ? FS_DEST_SDC_BG : /*->SDC_BG */
+ (in_dma == IDMA_SDC_FG) ? FS_DEST_SDC_FG : /*->SDC_FG */
+ /* ->ADCDirect */
+ 0;
+ break;
+
+ /*PP_ROT-> */
+ case IDMA_IC_12:
+ pr_debug("Link PP_ROT->");
+ isProc = true;
+ mask = FS_PP_ROT_DEST_SEL_MASK;
+ offset = FS_PP_ROT_DEST_SEL_OFFSET;
+ value = (in_dma == IDMA_IC_5) ? FS_DEST_ROT : /*->PP */
+ (in_dma == IDMA_ADC_SYS1_WR) ? FS_DEST_ADC1 : /* ->ADC1 */
+ (in_dma == IDMA_ADC_SYS2_WR) ? FS_DEST_ADC2 : /* ->ADC2 */
+ (in_dma == IDMA_SDC_BG) ? FS_DEST_SDC_BG : /*->SDC_BG */
+ (in_dma == IDMA_SDC_FG) ? FS_DEST_SDC_FG : /*->SDC_FG */
+ 0;
+ break;
+
+ /*PF-> */
+ case IDMA_PF_Y_OUT:
+ case IDMA_PF_U_OUT:
+ case IDMA_PF_V_OUT:
+ pr_debug("Link PF->");
+ isProc = true;
+ mask = FS_PF_DEST_SEL_MASK;
+ offset = FS_PF_DEST_SEL_OFFSET;
+ value = (in_dma == IDMA_IC_5) ? FS_PF_DEST_PP :
+ (in_dma == IDMA_IC_13) ? FS_PF_DEST_ROT : 0;
+ break;
+
+ /* Invalid Chainings: ENC_ROT-> */
+ default:
+ pr_debug("Link Invalid->");
+ value = 0;
+ break;
+
+ }
+
+ if (value) {
+ if (isProc) {
+ fs_proc_flow &= ~mask;
+ fs_proc_flow |= (value << offset);
+ } else {
+ fs_disp_flow &= ~mask;
+ fs_disp_flow |= (value << offset);
+ }
+ } else {
+ dev_err(g_ipu_dev, "Invalid channel chaining %d -> %d\n",
+ out_dma, in_dma);
+ return -EINVAL;
+ }
+
+ /* PROCESS THE INPUT DMA CH */
+ switch (in_dma) {
+ /* ->VF_ROT */
+ case IDMA_IC_11:
+ pr_debug("VF_ROT\n");
+ isProc = true;
+ mask = 0;
+ offset = 0;
+ value = (out_dma == IDMA_IC_1) ? FS_PRPVF_ROT_SRC_SEL : /*VF-> */
+ 0;
+ break;
+
+ /* ->ENC_ROT */
+ case IDMA_IC_10:
+ pr_debug("ENC_ROT\n");
+ isProc = true;
+ mask = 0;
+ offset = 0;
+ value = (out_dma == IDMA_IC_0) ? FS_PRPENC_ROT_SRC_SEL : /*ENC-> */
+ 0;
+ break;
+
+ /* ->PP */
+ case IDMA_IC_5:
+ pr_debug("PP\n");
+ isProc = true;
+ mask = FS_PP_SRC_SEL_MASK;
+ offset = FS_PP_SRC_SEL_OFFSET;
+ value = (out_dma == IDMA_PF_Y_OUT) ? FS_PP_SRC_PF : /*PF-> */
+ (out_dma == IDMA_PF_U_OUT) ? FS_PP_SRC_PF : /*PF-> */
+ (out_dma == IDMA_PF_V_OUT) ? FS_PP_SRC_PF : /*PF-> */
+ (out_dma == IDMA_IC_12) ? FS_PP_SRC_ROT : /*PP_ROT-> */
+ 0;
+ break;
+
+ /* ->PP_ROT */
+ case IDMA_IC_13:
+ pr_debug("PP_ROT\n");
+ isProc = true;
+ mask = FS_PP_ROT_SRC_SEL_MASK;
+ offset = FS_PP_ROT_SRC_SEL_OFFSET;
+ value = (out_dma == IDMA_PF_Y_OUT) ? FS_PP_SRC_PF : /*PF-> */
+ (out_dma == IDMA_PF_U_OUT) ? FS_PP_SRC_PF : /*PF-> */
+ (out_dma == IDMA_PF_V_OUT) ? FS_PP_SRC_PF : /*PF-> */
+ (out_dma == IDMA_IC_2) ? FS_ROT_SRC_PP : /*PP-> */
+ 0;
+ break;
+
+ /* ->SDC_BG */
+ case IDMA_SDC_BG:
+ pr_debug("SDC_BG\n");
+ isProc = false;
+ mask = FS_SDC_BG_SRC_SEL_MASK;
+ offset = FS_SDC_BG_SRC_SEL_OFFSET;
+ value = (out_dma == IDMA_IC_9) ? FS_SRC_ROT_VF : /*VF_ROT-> */
+ (out_dma == IDMA_IC_12) ? FS_SRC_ROT_PP : /*PP_ROT-> */
+ (out_dma == IDMA_IC_1) ? FS_SRC_VF : /*VF-> */
+ (out_dma == IDMA_IC_2) ? FS_SRC_PP : /*PP-> */
+ 0;
+ break;
+
+ /* ->SDC_FG */
+ case IDMA_SDC_FG:
+ pr_debug("SDC_FG\n");
+ isProc = false;
+ mask = FS_SDC_FG_SRC_SEL_MASK;
+ offset = FS_SDC_FG_SRC_SEL_OFFSET;
+ value = (out_dma == IDMA_IC_9) ? FS_SRC_ROT_VF : /*VF_ROT-> */
+ (out_dma == IDMA_IC_12) ? FS_SRC_ROT_PP : /*PP_ROT-> */
+ (out_dma == IDMA_IC_1) ? FS_SRC_VF : /*VF-> */
+ (out_dma == IDMA_IC_2) ? FS_SRC_PP : /*PP-> */
+ 0;
+ break;
+
+ /* ->ADC1 */
+ case IDMA_ADC_SYS1_WR:
+ pr_debug("ADC_SYS1\n");
+ isProc = false;
+ mask = FS_ADC1_SRC_SEL_MASK;
+ offset = FS_ADC1_SRC_SEL_OFFSET;
+ value = (out_dma == IDMA_IC_9) ? FS_SRC_ROT_VF : /*VF_ROT-> */
+ (out_dma == IDMA_IC_12) ? FS_SRC_ROT_PP : /*PP_ROT-> */
+ (out_dma == IDMA_IC_1) ? FS_SRC_VF : /*VF-> */
+ (out_dma == IDMA_IC_2) ? FS_SRC_PP : /*PP-> */
+ 0;
+ break;
+
+ /* ->ADC2 */
+ case IDMA_ADC_SYS2_WR:
+ pr_debug("ADC_SYS2\n");
+ isProc = false;
+ mask = FS_ADC2_SRC_SEL_MASK;
+ offset = FS_ADC2_SRC_SEL_OFFSET;
+ value = (out_dma == IDMA_IC_9) ? FS_SRC_ROT_VF : /*VF_ROT-> */
+ (out_dma == IDMA_IC_12) ? FS_SRC_ROT_PP : /*PP_ROT-> */
+ (out_dma == IDMA_IC_1) ? FS_SRC_VF : /*VF-> */
+ (out_dma == IDMA_IC_2) ? FS_SRC_PP : /*PP-> */
+ 0;
+ break;
+
+ /*Invalid chains: */
+ /* ->ENC, ->VF, ->PF, ->VF_COMBINE, ->PP_COMBINE */
+ default:
+ pr_debug("Invalid\n");
+ value = 0;
+ break;
+
+ }
+
+ if (value) {
+ if (isProc) {
+ fs_proc_flow &= ~mask;
+ fs_proc_flow |= (value << offset);
+ } else {
+ fs_disp_flow &= ~mask;
+ fs_disp_flow |= (value << offset);
+ }
+ } else {
+ dev_err(g_ipu_dev, "Invalid channel chaining %d -> %d\n",
+ out_dma, in_dma);
+ return -EINVAL;
+ }
+
+ __raw_writel(fs_proc_flow, IPU_FS_PROC_FLOW);
+ __raw_writel(fs_disp_flow, IPU_FS_DISP_FLOW);
+
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+ return 0;
+}
+
+/*!
+ * This function unlinks 2 channels and disables automatic frame
+ * synchronization.
+ *
+ * @param src_ch Input parameter for the logical channel ID of
+ * the source channel.
+ *
+ * @param dest_ch Input parameter for the logical channel ID of
+ * the destination channel.
+ *
+ * @return This function returns 0 on success or negative error code on
+ * fail.
+ */
+int32_t ipu_unlink_channels(ipu_channel_t src_ch, ipu_channel_t dest_ch)
+{
+ unsigned long lock_flags;
+ uint32_t out_dma;
+ uint32_t in_dma;
+ uint32_t fs_proc_flow;
+ uint32_t fs_disp_flow;
+
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+
+ fs_proc_flow = __raw_readl(IPU_FS_PROC_FLOW);
+ fs_disp_flow = __raw_readl(IPU_FS_DISP_FLOW);
+
+ out_dma = (1UL << channel_2_dma(src_ch, IPU_OUTPUT_BUFFER));
+ in_dma = (1UL << channel_2_dma(dest_ch, IPU_INPUT_BUFFER));
+
+ /*clear the src_ch's output destination */
+ switch (out_dma) {
+ /*VF-> */
+ case IDMA_IC_1:
+ pr_debug("Unlink VF->");
+ fs_proc_flow &= ~FS_PRPVF_DEST_SEL_MASK;
+ break;
+
+ /*VF_ROT-> */
+ case IDMA_IC_9:
+ pr_debug("Unlink VF_Rot->");
+ fs_proc_flow &= ~FS_PRPVF_ROT_DEST_SEL_MASK;
+ break;
+
+ /*ENC-> */
+ case IDMA_IC_0:
+ pr_debug("Unlink ENC->");
+ fs_proc_flow &= ~FS_PRPENC_DEST_SEL;
+ break;
+
+ /*PP-> */
+ case IDMA_IC_2:
+ pr_debug("Unlink PP->");
+ fs_proc_flow &= ~FS_PP_DEST_SEL_MASK;
+ break;
+
+ /*PP_ROT-> */
+ case IDMA_IC_12:
+ pr_debug("Unlink PP_ROT->");
+ fs_proc_flow &= ~FS_PP_ROT_DEST_SEL_MASK;
+ break;
+
+ /*PF-> */
+ case IDMA_PF_Y_OUT:
+ case IDMA_PF_U_OUT:
+ case IDMA_PF_V_OUT:
+ pr_debug("Unlink PF->");
+ fs_proc_flow &= ~FS_PF_DEST_SEL_MASK;
+ break;
+
+ default: /*ENC_ROT-> */
+ pr_debug("Unlink Invalid->");
+ break;
+ }
+
+ /*clear the dest_ch's input source */
+ switch (in_dma) {
+ /*->VF_ROT*/
+ case IDMA_IC_11:
+ pr_debug("VF_ROT\n");
+ fs_proc_flow &= ~FS_PRPVF_ROT_SRC_SEL;
+ break;
+
+ /*->Enc_ROT*/
+ case IDMA_IC_10:
+ pr_debug("ENC_ROT\n");
+ fs_proc_flow &= ~FS_PRPENC_ROT_SRC_SEL;
+ break;
+
+ /*->PP*/
+ case IDMA_IC_5:
+ pr_debug("PP\n");
+ fs_proc_flow &= ~FS_PP_SRC_SEL_MASK;
+ break;
+
+ /*->PP_ROT*/
+ case IDMA_IC_13:
+ pr_debug("PP_ROT\n");
+ fs_proc_flow &= ~FS_PP_ROT_SRC_SEL_MASK;
+ break;
+
+ /*->SDC_FG*/
+ case IDMA_SDC_FG:
+ pr_debug("SDC_FG\n");
+ fs_disp_flow &= ~FS_SDC_FG_SRC_SEL_MASK;
+ break;
+
+ /*->SDC_BG*/
+ case IDMA_SDC_BG:
+ pr_debug("SDC_BG\n");
+ fs_disp_flow &= ~FS_SDC_BG_SRC_SEL_MASK;
+ break;
+
+ /*->ADC1*/
+ case IDMA_ADC_SYS1_WR:
+ pr_debug("ADC_SYS1\n");
+ fs_disp_flow &= ~FS_ADC1_SRC_SEL_MASK;
+ break;
+
+ /*->ADC2*/
+ case IDMA_ADC_SYS2_WR:
+ pr_debug("ADC_SYS2\n");
+ fs_disp_flow &= ~FS_ADC2_SRC_SEL_MASK;
+ break;
+
+ default: /*->VF, ->ENC, ->VF_COMBINE, ->PP_COMBINE, ->PF*/
+ pr_debug("Invalid\n");
+ break;
+ }
+
+ __raw_writel(fs_proc_flow, IPU_FS_PROC_FLOW);
+ __raw_writel(fs_disp_flow, IPU_FS_DISP_FLOW);
+
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+ return 0;
+}
+
+/*!
+ * This function check whether a logical channel was enabled.
+ *
+ * @param channel Input parameter for the logical channel ID.
+ *
+ * @return This function returns 1 while request channel is enabled or
+ * 0 for not enabled.
+ */
+int32_t ipu_is_channel_busy(ipu_channel_t channel)
+{
+ uint32_t reg;
+ uint32_t in_dma;
+ uint32_t out_dma;
+
+ out_dma = channel_2_dma(channel, IPU_OUTPUT_BUFFER);
+ in_dma = channel_2_dma(channel, IPU_INPUT_BUFFER);
+
+ reg = __raw_readl(IDMAC_CHA_EN);
+
+ if (reg & ((1UL << out_dma) | (1UL << in_dma)))
+ return 1;
+ return 0;
+}
+EXPORT_SYMBOL(ipu_is_channel_busy);
+
+/*!
+ * This function enables a logical channel.
+ *
+ * @param channel Input parameter for the logical channel ID.
+ *
+ * @return This function returns 0 on success or negative error code on
+ * fail.
+ */
+int32_t ipu_enable_channel(ipu_channel_t channel)
+{
+ uint32_t reg;
+ unsigned long lock_flags;
+ uint32_t in_dma;
+ uint32_t sec_dma;
+ uint32_t out_dma;
+ uint32_t chan_mask = 0;
+
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+
+ reg = __raw_readl(IDMAC_CHA_EN);
+
+ /* Get input and output dma channels */
+ out_dma = channel_2_dma(channel, IPU_OUTPUT_BUFFER);
+ if (out_dma != IDMA_CHAN_INVALID)
+ reg |= 1UL << out_dma;
+ in_dma = channel_2_dma(channel, IPU_INPUT_BUFFER);
+ if (in_dma != IDMA_CHAN_INVALID)
+ reg |= 1UL << in_dma;
+
+ /* Get secondary input dma channel */
+ if (g_sec_chan_en[IPU_CHAN_ID(channel)]) {
+ sec_dma = channel_2_dma(channel, IPU_SEC_INPUT_BUFFER);
+ if (sec_dma != IDMA_CHAN_INVALID) {
+ reg |= 1UL << sec_dma;
+ }
+ }
+
+ __raw_writel(reg | chan_mask, IDMAC_CHA_EN);
+
+ if (IPU_CHAN_ID(channel) <= IPU_CHAN_ID(MEM_PP_ADC)) {
+ _ipu_ic_enable_task(channel);
+ } else if (channel == MEM_SDC_BG) {
+ dev_dbg(g_ipu_dev, "Initializing SDC BG\n");
+ _ipu_sdc_bg_init(NULL);
+ } else if (channel == MEM_SDC_FG) {
+ dev_dbg(g_ipu_dev, "Initializing SDC FG\n");
+ _ipu_sdc_fg_init(NULL);
+ }
+
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+ return 0;
+}
+
+/*!
+ * This function clear buffer ready for a logical channel.
+ *
+ * @param channel Input parameter for the logical channel ID.
+ *
+ * @param type Input parameter which buffer to clear.
+ *
+ * @param bufNum Input parameter for which buffer number clear
+ * ready state.
+ *
+ */
+void ipu_clear_buffer_ready(ipu_channel_t channel, ipu_buffer_t type,
+ uint32_t bufNum)
+{
+ /*TODO*/
+}
+EXPORT_SYMBOL(ipu_clear_buffer_ready);
+
+uint32_t ipu_get_cur_buffer_idx(ipu_channel_t channel, ipu_buffer_t type)
+{
+ uint32_t reg, dma_chan;
+
+ dma_chan = channel_2_dma(channel, type);
+
+ reg = __raw_readl(IPU_CHA_CUR_BUF);
+ if (reg & (1UL << dma_chan))
+ return 1;
+ else
+ return 0;
+}
+EXPORT_SYMBOL(ipu_get_cur_buffer_idx);
+
+/*!
+ * This function disables a logical channel.
+ *
+ * @param channel Input parameter for the logical channel ID.
+ *
+ * @param wait_for_stop Flag to set whether to wait for channel end
+ * of frame or return immediately.
+ *
+ * @return This function returns 0 on success or negative error code on
+ * fail.
+ */
+int32_t ipu_disable_channel(ipu_channel_t channel, bool wait_for_stop)
+{
+ uint32_t reg;
+ unsigned long lock_flags;
+ uint32_t sec_dma;
+ uint32_t in_dma;
+ uint32_t out_dma;
+ uint32_t chan_mask = 0;
+ uint32_t timeout;
+ uint32_t eof_intr;
+ uint32_t enabled;
+
+ /* Get input and output dma channels */
+ out_dma = channel_2_dma(channel, IPU_OUTPUT_BUFFER);
+ if (out_dma != IDMA_CHAN_INVALID)
+ chan_mask = 1UL << out_dma;
+ in_dma = channel_2_dma(channel, IPU_INPUT_BUFFER);
+ if (in_dma != IDMA_CHAN_INVALID)
+ chan_mask |= 1UL << in_dma;
+ sec_dma = channel_2_dma(channel, IPU_SEC_INPUT_BUFFER);
+ if (sec_dma != IDMA_CHAN_INVALID)
+ chan_mask |= 1UL << sec_dma;
+
+ if (wait_for_stop && channel != MEM_SDC_FG && channel != MEM_SDC_BG) {
+ timeout = 40;
+ while ((__raw_readl(IDMAC_CHA_BUSY) & chan_mask) ||
+ (_ipu_channel_status(channel) == TASK_STAT_ACTIVE)) {
+ timeout--;
+ msleep(10);
+ if (timeout == 0) {
+ printk
+ (KERN_INFO
+ "MXC IPU: Warning - timeout waiting for channel to stop,\n"
+ "\tbuf0_rdy = 0x%08X, buf1_rdy = 0x%08X\n"
+ "\tbusy = 0x%08X, tstat = 0x%08X\n\tmask = 0x%08X\n",
+ __raw_readl(IPU_CHA_BUF0_RDY),
+ __raw_readl(IPU_CHA_BUF1_RDY),
+ __raw_readl(IDMAC_CHA_BUSY),
+ __raw_readl(IPU_TASKS_STAT), chan_mask);
+ break;
+ }
+ }
+ dev_dbg(g_ipu_dev, "timeout = %d * 10ms\n", 40 - timeout);
+ }
+ /* SDC BG and FG must be disabled before DMA is disabled */
+ if ((channel == MEM_SDC_BG) || (channel == MEM_SDC_FG)) {
+
+ if (channel == MEM_SDC_BG)
+ eof_intr = IPU_IRQ_SDC_BG_EOF;
+ else
+ eof_intr = IPU_IRQ_SDC_FG_EOF;
+
+ /* Wait for any buffer flips to finsh */
+ timeout = 4;
+ while (timeout &&
+ ((__raw_readl(IPU_CHA_BUF0_RDY) & chan_mask) ||
+ (__raw_readl(IPU_CHA_BUF1_RDY) & chan_mask))) {
+ msleep(10);
+ timeout--;
+ }
+
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+ ipu_clear_irq(eof_intr);
+ if (channel == MEM_SDC_BG)
+ enabled = _ipu_sdc_bg_uninit();
+ else
+ enabled = _ipu_sdc_fg_uninit();
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+
+ if (enabled && wait_for_stop) {
+ timeout = 5;
+ } else {
+ timeout = 0;
+ }
+ while (timeout && !ipu_get_irq_status(eof_intr)) {
+ msleep(5);
+ timeout--;
+ }
+ }
+
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+
+ /* Disable IC task */
+ if (IPU_CHAN_ID(channel) <= IPU_CHAN_ID(MEM_PP_ADC)) {
+ _ipu_ic_disable_task(channel);
+ }
+
+ /* Disable DMA channel(s) */
+ reg = __raw_readl(IDMAC_CHA_EN);
+ __raw_writel(reg & ~chan_mask, IDMAC_CHA_EN);
+
+ /* Clear DMA related interrupts */
+ __raw_writel(chan_mask, IPU_INT_STAT_1);
+ __raw_writel(chan_mask, IPU_INT_STAT_2);
+ __raw_writel(chan_mask, IPU_INT_STAT_4);
+
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+
+ return 0;
+}
+
+int32_t ipu_enable_csi(uint32_t csi)
+{
+ return 0;
+}
+
+
+int32_t ipu_disable_csi(uint32_t csi)
+{
+ return 0;
+}
+
+static
+irqreturn_t ipu_irq_handler(int irq, void *desc)
+{
+ uint32_t line_base = 0;
+ uint32_t line;
+ irqreturn_t result = IRQ_NONE;
+ uint32_t int_stat;
+
+ int_stat = __raw_readl(IPU_INT_STAT_1);
+ int_stat &= __raw_readl(IPU_INT_CTRL_1);
+ __raw_writel(int_stat, IPU_INT_STAT_1);
+ while ((line = ffs(int_stat)) != 0) {
+ int_stat &= ~(1UL << (line - 1));
+ line += line_base - 1;
+ result |=
+ ipu_irq_list[line].handler(line, ipu_irq_list[line].dev_id);
+ }
+
+ line_base = 32;
+ int_stat = __raw_readl(IPU_INT_STAT_2);
+ int_stat &= __raw_readl(IPU_INT_CTRL_2);
+ __raw_writel(int_stat, IPU_INT_STAT_2);
+ while ((line = ffs(int_stat)) != 0) {
+ int_stat &= ~(1UL << (line - 1));
+ line += line_base - 1;
+ result |=
+ ipu_irq_list[line].handler(line, ipu_irq_list[line].dev_id);
+ }
+
+ line_base = 64;
+ int_stat = __raw_readl(IPU_INT_STAT_3);
+ int_stat &= __raw_readl(IPU_INT_CTRL_3);
+ __raw_writel(int_stat, IPU_INT_STAT_3);
+ while ((line = ffs(int_stat)) != 0) {
+ int_stat &= ~(1UL << (line - 1));
+ line += line_base - 1;
+ result |=
+ ipu_irq_list[line].handler(line, ipu_irq_list[line].dev_id);
+ }
+
+ line_base = 96;
+ int_stat = __raw_readl(IPU_INT_STAT_4);
+ int_stat &= __raw_readl(IPU_INT_CTRL_4);
+ __raw_writel(int_stat, IPU_INT_STAT_4);
+ while ((line = ffs(int_stat)) != 0) {
+ int_stat &= ~(1UL << (line - 1));
+ line += line_base - 1;
+ result |=
+ ipu_irq_list[line].handler(line, ipu_irq_list[line].dev_id);
+ }
+
+ line_base = 128;
+ int_stat = __raw_readl(IPU_INT_STAT_5);
+ int_stat &= __raw_readl(IPU_INT_CTRL_5);
+ __raw_writel(int_stat, IPU_INT_STAT_5);
+ while ((line = ffs(int_stat)) != 0) {
+ int_stat &= ~(1UL << (line - 1));
+ line += line_base - 1;
+ result |=
+ ipu_irq_list[line].handler(line, ipu_irq_list[line].dev_id);
+ }
+
+ return result;
+}
+
+/*!
+ * This function enables the interrupt for the specified interrupt line.
+ * The interrupt lines are defined in \b ipu_irq_line enum.
+ *
+ * @param irq Interrupt line to enable interrupt for.
+ *
+ */
+void ipu_enable_irq(uint32_t irq)
+{
+ uint32_t reg;
+ unsigned long lock_flags;
+
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+
+ reg = __raw_readl(IPUIRQ_2_CTRLREG(irq));
+ reg |= IPUIRQ_2_MASK(irq);
+ __raw_writel(reg, IPUIRQ_2_CTRLREG(irq));
+
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+}
+
+/*!
+ * This function disables the interrupt for the specified interrupt line.
+ * The interrupt lines are defined in \b ipu_irq_line enum.
+ *
+ * @param irq Interrupt line to disable interrupt for.
+ *
+ */
+void ipu_disable_irq(uint32_t irq)
+{
+ uint32_t reg;
+ unsigned long lock_flags;
+
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+
+ reg = __raw_readl(IPUIRQ_2_CTRLREG(irq));
+ reg &= ~IPUIRQ_2_MASK(irq);
+ __raw_writel(reg, IPUIRQ_2_CTRLREG(irq));
+
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+}
+
+/*!
+ * This function clears the interrupt for the specified interrupt line.
+ * The interrupt lines are defined in \b ipu_irq_line enum.
+ *
+ * @param irq Interrupt line to clear interrupt for.
+ *
+ */
+void ipu_clear_irq(uint32_t irq)
+{
+ __raw_writel(IPUIRQ_2_MASK(irq), IPUIRQ_2_STATREG(irq));
+}
+
+/*!
+ * This function returns the current interrupt status for the specified interrupt
+ * line. The interrupt lines are defined in \b ipu_irq_line enum.
+ *
+ * @param irq Interrupt line to get status for.
+ *
+ * @return Returns true if the interrupt is pending/asserted or false if
+ * the interrupt is not pending.
+ */
+bool ipu_get_irq_status(uint32_t irq)
+{
+ uint32_t reg = __raw_readl(IPUIRQ_2_STATREG(irq));
+
+ if (reg & IPUIRQ_2_MASK(irq))
+ return true;
+ else
+ return false;
+}
+
+/*!
+ * This function registers an interrupt handler function for the specified
+ * interrupt line. The interrupt lines are defined in \b ipu_irq_line enum.
+ *
+ * @param irq Interrupt line to get status for.
+ *
+ * @param handler Input parameter for address of the handler
+ * function.
+ *
+ * @param irq_flags Flags for interrupt mode. Currently not used.
+ *
+ * @param devname Input parameter for string name of driver
+ * registering the handler.
+ *
+ * @param dev_id Input parameter for pointer of data to be passed
+ * to the handler.
+ *
+ * @return This function returns 0 on success or negative error code on
+ * fail.
+ */
+int ipu_request_irq(uint32_t irq,
+ irqreturn_t(*handler) (int, void *),
+ uint32_t irq_flags, const char *devname, void *dev_id)
+{
+ unsigned long lock_flags;
+
+ BUG_ON(irq >= IPU_IRQ_COUNT);
+
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+
+ if (ipu_irq_list[irq].handler != NULL) {
+ dev_err(g_ipu_dev,
+ "ipu_request_irq - handler already installed on irq %d\n",
+ irq);
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+ return -EINVAL;
+ }
+
+ ipu_irq_list[irq].handler = handler;
+ ipu_irq_list[irq].flags = irq_flags;
+ ipu_irq_list[irq].dev_id = dev_id;
+ ipu_irq_list[irq].name = devname;
+
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+
+ ipu_enable_irq(irq); /* enable the interrupt */
+
+ return 0;
+}
+
+/*!
+ * This function unregisters an interrupt handler for the specified interrupt
+ * line. The interrupt lines are defined in \b ipu_irq_line enum.
+ *
+ * @param irq Interrupt line to get status for.
+ *
+ * @param dev_id Input parameter for pointer of data to be passed
+ * to the handler. This must match value passed to
+ * ipu_request_irq().
+ *
+ */
+void ipu_free_irq(uint32_t irq, void *dev_id)
+{
+ ipu_disable_irq(irq); /* disable the interrupt */
+
+ if (ipu_irq_list[irq].dev_id == dev_id) {
+ ipu_irq_list[irq].handler = NULL;
+ }
+}
+
+/*!
+ * This function sets the post-filter pause row for h.264 mode.
+ *
+ * @param pause_row The last row to process before pausing.
+ *
+ * @return This function returns 0 on success or negative error code on
+ * fail.
+ *
+ */
+int32_t ipu_pf_set_pause_row(uint32_t pause_row)
+{
+ int32_t retval = 0;
+ uint32_t timeout = 5;
+ unsigned long lock_flags;
+ uint32_t reg;
+
+ reg = __raw_readl(IPU_TASKS_STAT);
+ while ((reg & TSTAT_PF_MASK) && ((reg & TSTAT_PF_H264_PAUSE) == 0)) {
+ timeout--;
+ msleep(5);
+ if (timeout == 0) {
+ dev_err(g_ipu_dev, "PF Timeout - tstat = 0x%08X\n",
+ __raw_readl(IPU_TASKS_STAT));
+ retval = -ETIMEDOUT;
+ goto err0;
+ }
+ }
+
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+
+ reg = __raw_readl(PF_CONF);
+
+ /* Set the pause row */
+ if (pause_row) {
+ reg &= ~PF_CONF_PAUSE_ROW_MASK;
+ reg |= PF_CONF_PAUSE_EN | pause_row << PF_CONF_PAUSE_ROW_SHIFT;
+ } else {
+ reg &= ~(PF_CONF_PAUSE_EN | PF_CONF_PAUSE_ROW_MASK);
+ }
+ __raw_writel(reg, PF_CONF);
+
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+ err0:
+ return retval;
+}
+
+/* Private functions */
+void _ipu_write_param_mem(uint32_t addr, uint32_t *data, uint32_t numWords)
+{
+ for (; numWords > 0; numWords--) {
+ dev_dbg(g_ipu_dev,
+ "write param mem - addr = 0x%08X, data = 0x%08X\n",
+ addr, *data);
+ __raw_writel(addr, IPU_IMA_ADDR);
+ __raw_writel(*data++, IPU_IMA_DATA);
+ addr++;
+ if ((addr & 0x7) == 5) {
+ addr &= ~0x7; /* set to word 0 */
+ addr += 8; /* increment to next row */
+ }
+ }
+}
+
+static void _ipu_pf_init(ipu_channel_params_t *params)
+{
+ uint32_t reg;
+
+ /*Setup the type of filtering required */
+ switch (params->mem_pf_mem.operation) {
+ case PF_MPEG4_DEBLOCK:
+ case PF_MPEG4_DERING:
+ case PF_MPEG4_DEBLOCK_DERING:
+ g_sec_chan_en[IPU_CHAN_ID(MEM_PF_Y_MEM)] = true;
+ g_sec_chan_en[IPU_CHAN_ID(MEM_PF_U_MEM)] = false;
+ break;
+ case PF_H264_DEBLOCK:
+ g_sec_chan_en[IPU_CHAN_ID(MEM_PF_Y_MEM)] = true;
+ g_sec_chan_en[IPU_CHAN_ID(MEM_PF_U_MEM)] = true;
+ break;
+ default:
+ g_sec_chan_en[IPU_CHAN_ID(MEM_PF_Y_MEM)] = false;
+ g_sec_chan_en[IPU_CHAN_ID(MEM_PF_U_MEM)] = false;
+ return;
+ break;
+ }
+ reg = params->mem_pf_mem.operation;
+ __raw_writel(reg, PF_CONF);
+}
+
+static void _ipu_pf_uninit(void)
+{
+ __raw_writel(0x0L, PF_CONF);
+ g_sec_chan_en[IPU_CHAN_ID(MEM_PF_Y_MEM)] = false;
+ g_sec_chan_en[IPU_CHAN_ID(MEM_PF_U_MEM)] = false;
+}
+
+uint32_t _ipu_channel_status(ipu_channel_t channel)
+{
+ uint32_t stat = 0;
+ uint32_t task_stat_reg = __raw_readl(IPU_TASKS_STAT);
+
+ switch (channel) {
+ case CSI_MEM:
+ stat =
+ (task_stat_reg & TSTAT_CSI2MEM_MASK) >>
+ TSTAT_CSI2MEM_OFFSET;
+ break;
+ case CSI_PRP_VF_ADC:
+ case CSI_PRP_VF_MEM:
+ case MEM_PRP_VF_ADC:
+ case MEM_PRP_VF_MEM:
+ stat = (task_stat_reg & TSTAT_VF_MASK) >> TSTAT_VF_OFFSET;
+ break;
+ case MEM_ROT_VF_MEM:
+ stat =
+ (task_stat_reg & TSTAT_VF_ROT_MASK) >> TSTAT_VF_ROT_OFFSET;
+ break;
+ case CSI_PRP_ENC_MEM:
+ case MEM_PRP_ENC_MEM:
+ stat = (task_stat_reg & TSTAT_ENC_MASK) >> TSTAT_ENC_OFFSET;
+ break;
+ case MEM_ROT_ENC_MEM:
+ stat =
+ (task_stat_reg & TSTAT_ENC_ROT_MASK) >>
+ TSTAT_ENC_ROT_OFFSET;
+ break;
+ case MEM_PP_ADC:
+ case MEM_PP_MEM:
+ stat = (task_stat_reg & TSTAT_PP_MASK) >> TSTAT_PP_OFFSET;
+ break;
+ case MEM_ROT_PP_MEM:
+ stat =
+ (task_stat_reg & TSTAT_PP_ROT_MASK) >> TSTAT_PP_ROT_OFFSET;
+ break;
+
+ case MEM_PF_Y_MEM:
+ case MEM_PF_U_MEM:
+ case MEM_PF_V_MEM:
+ stat = (task_stat_reg & TSTAT_PF_MASK) >> TSTAT_PF_OFFSET;
+ break;
+ case MEM_SDC_BG:
+ break;
+ case MEM_SDC_FG:
+ break;
+ case ADC_SYS1:
+ stat =
+ (task_stat_reg & TSTAT_ADCSYS1_MASK) >>
+ TSTAT_ADCSYS1_OFFSET;
+ break;
+ case ADC_SYS2:
+ stat =
+ (task_stat_reg & TSTAT_ADCSYS2_MASK) >>
+ TSTAT_ADCSYS2_OFFSET;
+ break;
+ case MEM_SDC_MASK:
+ default:
+ stat = TASK_STAT_IDLE;
+ break;
+ }
+ return stat;
+}
+
+uint32_t bytes_per_pixel(uint32_t fmt)
+{
+ switch (fmt) {
+ case IPU_PIX_FMT_GENERIC: /*generic data */
+ case IPU_PIX_FMT_RGB332:
+ case IPU_PIX_FMT_YUV420P:
+ case IPU_PIX_FMT_YUV422P:
+ return 1;
+ break;
+ case IPU_PIX_FMT_RGB565:
+ case IPU_PIX_FMT_YUYV:
+ case IPU_PIX_FMT_UYVY:
+ return 2;
+ break;
+ case IPU_PIX_FMT_BGR24:
+ case IPU_PIX_FMT_RGB24:
+ return 3;
+ break;
+ case IPU_PIX_FMT_GENERIC_32: /*generic data */
+ case IPU_PIX_FMT_BGR32:
+ case IPU_PIX_FMT_RGB32:
+ case IPU_PIX_FMT_ABGR32:
+ return 4;
+ break;
+ default:
+ return 1;
+ break;
+ }
+ return 0;
+}
+
+void ipu_set_csc_coefficients(ipu_channel_t channel, int32_t param[][3])
+{
+ /* TODO */
+}
+EXPORT_SYMBOL(ipu_set_csc_coefficients);
+
+ipu_color_space_t format_to_colorspace(uint32_t fmt)
+{
+ switch (fmt) {
+ case IPU_PIX_FMT_RGB565:
+ case IPU_PIX_FMT_BGR24:
+ case IPU_PIX_FMT_RGB24:
+ case IPU_PIX_FMT_BGR32:
+ case IPU_PIX_FMT_RGB32:
+ return RGB;
+ break;
+
+ default:
+ return YCbCr;
+ break;
+ }
+ return RGB;
+
+}
+
+static u32 saved_disp3_time_conf;
+static bool in_lpdr_mode;
+static struct clk *default_ipu_parent_clk;
+
+int ipu_lowpwr_display_enable(void)
+{
+ unsigned long rate, div;
+ struct clk *parent_clk = g_ipu_clk;
+
+ if (in_lpdr_mode || IS_ERR(dfm_clk)) {
+ return -EINVAL;
+ }
+
+ if (g_channel_init_mask != (1L << IPU_CHAN_ID(MEM_SDC_BG))) {
+ dev_err(g_ipu_dev, "LPDR mode requires only SDC BG active.\n");
+ return -EINVAL;
+ }
+
+ default_ipu_parent_clk = clk_get_parent(g_ipu_clk);
+ in_lpdr_mode = true;
+
+ /* Calculate current pixel clock rate */
+ rate = clk_get_rate(g_ipu_clk) * 16;
+ saved_disp3_time_conf = __raw_readl(DI_DISP3_TIME_CONF);
+ div = saved_disp3_time_conf & 0xFFF;
+ rate /= div;
+ rate *= 4; /* min hsp clk is 4x pixel clk */
+
+ /* Initialize DFM clock */
+ rate = clk_round_rate(dfm_clk, rate);
+ clk_set_rate(dfm_clk, rate);
+ clk_enable(dfm_clk);
+
+ /* Wait for next VSYNC */
+ __raw_writel(IPUIRQ_2_MASK(IPU_IRQ_SDC_DISP3_VSYNC),
+ IPUIRQ_2_STATREG(IPU_IRQ_SDC_DISP3_VSYNC));
+ while ((__raw_readl(IPUIRQ_2_STATREG(IPU_IRQ_SDC_DISP3_VSYNC)) &
+ IPUIRQ_2_MASK(IPU_IRQ_SDC_DISP3_VSYNC)) == 0)
+ msleep_interruptible(1);
+
+ /* Set display clock divider to divide by 4 */
+ __raw_writel(((0x8) << 22) | 0x40, DI_DISP3_TIME_CONF);
+
+ clk_set_parent(parent_clk, dfm_clk);
+
+ return 0;
+}
+
+int ipu_lowpwr_display_disable(void)
+{
+ struct clk *parent_clk = g_ipu_clk;
+
+ if (!in_lpdr_mode || IS_ERR(dfm_clk)) {
+ return -EINVAL;
+ }
+
+ if (g_channel_init_mask != (1L << IPU_CHAN_ID(MEM_SDC_BG))) {
+ dev_err(g_ipu_dev, "LPDR mode requires only SDC BG active.\n");
+ return -EINVAL;
+ }
+
+ in_lpdr_mode = false;
+
+ /* Wait for next VSYNC */
+ __raw_writel(IPUIRQ_2_MASK(IPU_IRQ_SDC_DISP3_VSYNC),
+ IPUIRQ_2_STATREG(IPU_IRQ_SDC_DISP3_VSYNC));
+ while ((__raw_readl(IPUIRQ_2_STATREG(IPU_IRQ_SDC_DISP3_VSYNC)) &
+ IPUIRQ_2_MASK(IPU_IRQ_SDC_DISP3_VSYNC)) == 0)
+ msleep_interruptible(1);
+
+ __raw_writel(saved_disp3_time_conf, DI_DISP3_TIME_CONF);
+ clk_set_parent(parent_clk, default_ipu_parent_clk);
+ clk_disable(dfm_clk);
+
+ return 0;
+}
+
+static int ipu_suspend(struct platform_device *pdev, pm_message_t state)
+{
+ if (cpu_is_mx31() || cpu_is_mx32()) {
+ /* work-around for i.Mx31 SR mode after camera related test */
+ if (g_csi_used) {
+ g_ipu_config = __raw_readl(IPU_CONF);
+ clk_enable(g_ipu_csi_clk);
+ __raw_writel(0x51, IPU_CONF);
+ g_channel_init_mask_backup = g_channel_init_mask;
+ g_channel_init_mask |= 2;
+ }
+ } else if (cpu_is_mx35()) {
+ g_ipu_config = __raw_readl(IPU_CONF);
+ /* Disable the clock of display otherwise the backlight cannot
+ * be close after camera/tvin related test */
+ __raw_writel(g_ipu_config & 0xfbf, IPU_CONF);
+ }
+
+ return 0;
+}
+
+static int ipu_resume(struct platform_device *pdev)
+{
+ if (cpu_is_mx31() || cpu_is_mx32()) {
+ /* work-around for i.Mx31 SR mode after camera related test */
+ if (g_csi_used) {
+ __raw_writel(g_ipu_config, IPU_CONF);
+ clk_disable(g_ipu_csi_clk);
+ g_channel_init_mask = g_channel_init_mask_backup;
+ }
+ } else if (cpu_is_mx35()) {
+ __raw_writel(g_ipu_config, IPU_CONF);
+ }
+
+ return 0;
+}
+
+/*!
+ * This structure contains pointers to the power management callback functions.
+ */
+static struct platform_driver mxcipu_driver = {
+ .driver = {
+ .name = "mxc_ipu",
+ },
+ .probe = ipu_probe,
+ .suspend = ipu_suspend,
+ .resume = ipu_resume,
+};
+
+int32_t __init ipu_gen_init(void)
+{
+ int32_t ret;
+
+ ret = platform_driver_register(&mxcipu_driver);
+ return 0;
+}
+
+subsys_initcall(ipu_gen_init);
+
+static void __exit ipu_gen_uninit(void)
+{
+ if (g_ipu_irq[0])
+ free_irq(g_ipu_irq[0], 0);
+ if (g_ipu_irq[1])
+ free_irq(g_ipu_irq[1], 0);
+
+ platform_driver_unregister(&mxcipu_driver);
+}
+
+module_exit(ipu_gen_uninit);
+
+EXPORT_SYMBOL(ipu_init_channel);
+EXPORT_SYMBOL(ipu_uninit_channel);
+EXPORT_SYMBOL(ipu_init_channel_buffer);
+EXPORT_SYMBOL(ipu_unlink_channels);
+EXPORT_SYMBOL(ipu_update_channel_buffer);
+EXPORT_SYMBOL(ipu_select_buffer);
+EXPORT_SYMBOL(ipu_link_channels);
+EXPORT_SYMBOL(ipu_enable_channel);
+EXPORT_SYMBOL(ipu_disable_channel);
+EXPORT_SYMBOL(ipu_enable_csi);
+EXPORT_SYMBOL(ipu_disable_csi);
+EXPORT_SYMBOL(ipu_enable_irq);
+EXPORT_SYMBOL(ipu_disable_irq);
+EXPORT_SYMBOL(ipu_clear_irq);
+EXPORT_SYMBOL(ipu_get_irq_status);
+EXPORT_SYMBOL(ipu_request_irq);
+EXPORT_SYMBOL(ipu_free_irq);
+EXPORT_SYMBOL(ipu_pf_set_pause_row);
+EXPORT_SYMBOL(bytes_per_pixel);
diff --git a/drivers/mxc/ipu/ipu_csi.c b/drivers/mxc/ipu/ipu_csi.c
new file mode 100644
index 000000000000..6c8dd6f48c24
--- /dev/null
+++ b/drivers/mxc/ipu/ipu_csi.c
@@ -0,0 +1,238 @@
+/*
+ * Copyright 2005-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file ipu_csi.c
+ *
+ * @brief IPU CMOS Sensor interface functions
+ *
+ * @ingroup IPU
+ */
+#include <linux/types.h>
+#include <linux/init.h>
+#include <linux/io.h>
+#include <linux/errno.h>
+#include <linux/spinlock.h>
+#include <linux/delay.h>
+#include <linux/ipu.h>
+
+#include "ipu_prv.h"
+#include "ipu_regs.h"
+
+static bool gipu_csi_get_mclk_flag;
+static int csi_mclk_flag;
+
+extern void gpio_sensor_suspend(bool flag);
+
+/*!
+ * ipu_csi_init_interface
+ * Sets initial values for the CSI registers.
+ * The width and height of the sensor and the actual frame size will be
+ * set to the same values.
+ * @param width Sensor width
+ * @param height Sensor height
+ * @param pixel_fmt pixel format
+ * @param sig ipu_csi_signal_cfg_t structure
+ *
+ * @return 0 for success, -EINVAL for error
+ */
+int32_t
+ipu_csi_init_interface(uint16_t width, uint16_t height, uint32_t pixel_fmt,
+ ipu_csi_signal_cfg_t sig)
+{
+ uint32_t data = 0;
+
+ /* Set SENS_DATA_FORMAT bits (8 and 9)
+ RGB or YUV444 is 0 which is current value in data so not set explicitly
+ This is also the default value if attempts are made to set it to
+ something invalid. */
+ switch (pixel_fmt) {
+ case IPU_PIX_FMT_UYVY:
+ data = CSI_SENS_CONF_DATA_FMT_YUV422;
+ break;
+ case IPU_PIX_FMT_RGB24:
+ case IPU_PIX_FMT_BGR24:
+ data = CSI_SENS_CONF_DATA_FMT_RGB_YUV444;
+ break;
+ case IPU_PIX_FMT_GENERIC:
+ data = CSI_SENS_CONF_DATA_FMT_BAYER;
+ break;
+ default:
+ return -EINVAL;
+ }
+
+ /* Set the CSI_SENS_CONF register remaining fields */
+ data |= sig.data_width << CSI_SENS_CONF_DATA_WIDTH_SHIFT |
+ sig.data_pol << CSI_SENS_CONF_DATA_POL_SHIFT |
+ sig.Vsync_pol << CSI_SENS_CONF_VSYNC_POL_SHIFT |
+ sig.Hsync_pol << CSI_SENS_CONF_HSYNC_POL_SHIFT |
+ sig.pixclk_pol << CSI_SENS_CONF_PIX_CLK_POL_SHIFT |
+ sig.ext_vsync << CSI_SENS_CONF_EXT_VSYNC_SHIFT |
+ sig.clk_mode << CSI_SENS_CONF_SENS_PRTCL_SHIFT |
+ sig.sens_clksrc << CSI_SENS_CONF_SENS_CLKSRC_SHIFT;
+
+ __raw_writel(data, CSI_SENS_CONF);
+
+ /* Setup frame size */
+ __raw_writel(width | height << 16, CSI_SENS_FRM_SIZE);
+
+ __raw_writel(width << 16, CSI_FLASH_STROBE_1);
+ __raw_writel(height << 16 | 0x22, CSI_FLASH_STROBE_2);
+
+ /* Set CCIR registers */
+ if (sig.clk_mode == IPU_CSI_CLK_MODE_CCIR656_PROGRESSIVE) {
+ __raw_writel(0x40030, CSI_CCIR_CODE_1);
+ __raw_writel(0xFF0000, CSI_CCIR_CODE_3);
+ } else if (sig.clk_mode == IPU_CSI_CLK_MODE_CCIR656_INTERLACED) {
+ __raw_writel(0xD07DF, CSI_CCIR_CODE_1);
+ __raw_writel(0x40596, CSI_CCIR_CODE_2);
+ __raw_writel(0xFF0000, CSI_CCIR_CODE_3);
+ }
+
+ dev_dbg(g_ipu_dev, "CSI_SENS_CONF = 0x%08X\n",
+ __raw_readl(CSI_SENS_CONF));
+ dev_dbg(g_ipu_dev, "CSI_ACT_FRM_SIZE = 0x%08X\n",
+ __raw_readl(CSI_ACT_FRM_SIZE));
+
+ return 0;
+}
+
+/*!
+ * ipu_csi_flash_strobe
+ *
+ * @param flag true to turn on flash strobe
+ *
+ * @return 0 for success
+ */
+void ipu_csi_flash_strobe(bool flag)
+{
+ if (flag == true) {
+ __raw_writel(__raw_readl(CSI_FLASH_STROBE_2) | 0x1,
+ CSI_FLASH_STROBE_2);
+ }
+}
+
+/*!
+ * ipu_csi_enable_mclk
+ *
+ * @param src enum define which source to control the clk
+ * CSI_MCLK_VF CSI_MCLK_ENC CSI_MCLK_RAW CSI_MCLK_I2C
+ * @param flag true to enable mclk, false to disable mclk
+ * @param wait true to wait 100ms make clock stable, false not wait
+ *
+ * @return 0 for success
+ */
+int32_t ipu_csi_enable_mclk(int src, bool flag, bool wait)
+{
+ if (flag == true) {
+ csi_mclk_flag |= src;
+ } else {
+ csi_mclk_flag &= ~src;
+ }
+
+ if (gipu_csi_get_mclk_flag == flag)
+ return 0;
+
+ if (flag == true) {
+ clk_enable(g_ipu_csi_clk);
+ if (wait == true)
+ msleep(10);
+ /*printk("enable csi clock from source %d\n", src); */
+ gipu_csi_get_mclk_flag = true;
+ } else if (csi_mclk_flag == 0) {
+ clk_disable(g_ipu_csi_clk);
+ /*printk("disable csi clock from source %d\n", src); */
+ gipu_csi_get_mclk_flag = flag;
+ }
+
+ return 0;
+}
+
+/*!
+ * ipu_csi_read_mclk_flag
+ *
+ * @return csi_mclk_flag
+ */
+int ipu_csi_read_mclk_flag(void)
+{
+ return csi_mclk_flag;
+}
+
+/*!
+ * ipu_csi_get_window_size
+ *
+ * @param width pointer to window width
+ * @param height pointer to window height
+ * @param dummy dummy for IPUv1 to keep the same interface with IPUv3
+ *
+ */
+void ipu_csi_get_window_size(uint32_t *width, uint32_t *height,
+ uint32_t dummy)
+{
+ uint32_t reg;
+
+ reg = __raw_readl(CSI_ACT_FRM_SIZE);
+ *width = (reg & 0xFFFF) + 1;
+ *height = (reg >> 16 & 0xFFFF) + 1;
+}
+
+/*!
+ * ipu_csi_set_window_size
+ *
+ * @param width window width
+ * @param height window height
+ * @param dummy dummy for IPUv1 to keep the same interface with IPUv3
+ *
+ */
+void ipu_csi_set_window_size(uint32_t width, uint32_t height, uint32_t dummy)
+{
+ __raw_writel((width - 1) | (height - 1) << 16, CSI_ACT_FRM_SIZE);
+}
+
+/*!
+ * ipu_csi_set_window_pos
+ *
+ * @param left uint32 window x start
+ * @param top uint32 window y start
+ * @param dummy dummy for IPUv1 to keep the same interface with IPUv3
+ *
+ */
+void ipu_csi_set_window_pos(uint32_t left, uint32_t top, uint32_t dummy)
+{
+ uint32_t temp = __raw_readl(CSI_OUT_FRM_CTRL);
+ temp &= 0xffff0000;
+ temp = top | (left << 8) | temp;
+ __raw_writel(temp, CSI_OUT_FRM_CTRL);
+}
+
+/*!
+ * ipu_csi_get_sensor_protocol
+ *
+ * @param csi csi 0 or csi 1
+ *
+ * @return Returns sensor protocol
+ */
+int32_t ipu_csi_get_sensor_protocol(uint32_t csi)
+{
+ /* TODO */
+}
+EXPORT_SYMBOL(ipu_csi_get_sensor_protocol);
+
+/* Exported symbols for modules. */
+EXPORT_SYMBOL(ipu_csi_set_window_pos);
+EXPORT_SYMBOL(ipu_csi_set_window_size);
+EXPORT_SYMBOL(ipu_csi_get_window_size);
+EXPORT_SYMBOL(ipu_csi_read_mclk_flag);
+EXPORT_SYMBOL(ipu_csi_enable_mclk);
+EXPORT_SYMBOL(ipu_csi_flash_strobe);
+EXPORT_SYMBOL(ipu_csi_init_interface);
diff --git a/drivers/mxc/ipu/ipu_device.c b/drivers/mxc/ipu/ipu_device.c
new file mode 100644
index 000000000000..57314f7ebae8
--- /dev/null
+++ b/drivers/mxc/ipu/ipu_device.c
@@ -0,0 +1,696 @@
+/*
+ * Copyright 2005-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file ipu_device.c
+ *
+ * @brief This file contains the IPU driver device interface and fops functions.
+ *
+ * @ingroup IPU
+ */
+
+#include <linux/types.h>
+#include <linux/init.h>
+#include <linux/platform_device.h>
+#include <linux/err.h>
+#include <linux/spinlock.h>
+#include <linux/delay.h>
+#include <linux/clk.h>
+#include <linux/poll.h>
+#include <linux/sched.h>
+#include <linux/time.h>
+#include <linux/wait.h>
+#include <linux/dma-mapping.h>
+#include <linux/io.h>
+#include <linux/ipu.h>
+
+#include "ipu_prv.h"
+#include "ipu_regs.h"
+#include "ipu_param_mem.h"
+
+/* Strucutures and variables for exporting MXC IPU as device*/
+
+#define MAX_Q_SIZE 10
+
+static int mxc_ipu_major;
+static struct class *mxc_ipu_class;
+
+DEFINE_SPINLOCK(queue_lock);
+static DECLARE_MUTEX(user_mutex);
+
+static wait_queue_head_t waitq;
+static int pending_events;
+int read_ptr;
+int write_ptr;
+
+ipu_event_info events[MAX_Q_SIZE];
+
+int register_ipu_device(void);
+
+/* Static functions */
+
+int get_events(ipu_event_info *p)
+{
+ unsigned long flags;
+ int ret = 0, i, cnt, found = 0;
+ spin_lock_irqsave(&queue_lock, flags);
+ if (pending_events != 0) {
+ if (write_ptr > read_ptr)
+ cnt = write_ptr - read_ptr;
+ else
+ cnt = MAX_Q_SIZE - read_ptr + write_ptr;
+ for (i = 0; i < cnt; i++) {
+ if (p->irq == events[read_ptr].irq) {
+ *p = events[read_ptr];
+ events[read_ptr].irq = 0;
+ read_ptr++;
+ if (read_ptr >= MAX_Q_SIZE)
+ read_ptr = 0;
+ found = 1;
+ break;
+ }
+
+ if (events[read_ptr].irq) {
+ events[write_ptr] = events[read_ptr];
+ events[read_ptr].irq = 0;
+ write_ptr++;
+ if (write_ptr >= MAX_Q_SIZE)
+ write_ptr = 0;
+ } else
+ pending_events--;
+
+ read_ptr++;
+ if (read_ptr >= MAX_Q_SIZE)
+ read_ptr = 0;
+ }
+ if (found)
+ pending_events--;
+ else
+ ret = -1;
+ } else {
+ ret = -1;
+ }
+
+ spin_unlock_irqrestore(&queue_lock, flags);
+ return ret;
+}
+
+static irqreturn_t mxc_ipu_generic_handler(int irq, void *dev_id)
+{
+ ipu_event_info e;
+
+ e.irq = irq;
+ e.dev = dev_id;
+ events[write_ptr] = e;
+ write_ptr++;
+ if (write_ptr >= MAX_Q_SIZE)
+ write_ptr = 0;
+ pending_events++;
+ /* Wakeup any blocking user context */
+ wake_up_interruptible(&waitq);
+ return IRQ_HANDLED;
+}
+
+static int mxc_ipu_open(struct inode *inode, struct file *file)
+{
+ int ret = 0;
+ return ret;
+}
+static int mxc_ipu_ioctl(struct inode *inode, struct file *file,
+ unsigned int cmd, unsigned long arg)
+{
+ int ret = 0;
+
+ switch (cmd) {
+
+ case IPU_INIT_CHANNEL:
+ {
+ ipu_channel_parm parm;
+ if (copy_from_user
+ (&parm, (ipu_channel_parm *) arg,
+ sizeof(ipu_channel_parm))) {
+ return -EFAULT;
+ }
+ if (!parm.flag) {
+ ret =
+ ipu_init_channel(parm.channel,
+ &parm.params);
+ } else {
+ ret = ipu_init_channel(parm.channel, NULL);
+ }
+ }
+ break;
+
+ case IPU_UNINIT_CHANNEL:
+ {
+ ipu_channel_t ch;
+ int __user *argp = (void __user *)arg;
+ if (get_user(ch, argp))
+ return -EFAULT;
+ ipu_uninit_channel(ch);
+ }
+ break;
+
+ case IPU_INIT_CHANNEL_BUFFER:
+ {
+ ipu_channel_buf_parm parm;
+ if (copy_from_user
+ (&parm, (ipu_channel_buf_parm *) arg,
+ sizeof(ipu_channel_buf_parm))) {
+ return -EFAULT;
+ }
+ ret =
+ ipu_init_channel_buffer(parm.channel, parm.type,
+ parm.pixel_fmt,
+ parm.width, parm.height,
+ parm.stride,
+ parm.rot_mode,
+ parm.phyaddr_0,
+ parm.phyaddr_1,
+ parm.u_offset,
+ parm.v_offset);
+
+ }
+ break;
+
+ case IPU_UPDATE_CHANNEL_BUFFER:
+ {
+ ipu_channel_buf_parm parm;
+ if (copy_from_user
+ (&parm, (ipu_channel_buf_parm *) arg,
+ sizeof(ipu_channel_buf_parm))) {
+ return -EFAULT;
+ }
+ if ((parm.phyaddr_0 != (dma_addr_t) NULL)
+ && (parm.phyaddr_1 == (dma_addr_t) NULL)) {
+ ret =
+ ipu_update_channel_buffer(parm.channel,
+ parm.type,
+ parm.bufNum,
+ parm.phyaddr_0);
+ } else if ((parm.phyaddr_0 == (dma_addr_t) NULL)
+ && (parm.phyaddr_1 != (dma_addr_t) NULL)) {
+ ret =
+ ipu_update_channel_buffer(parm.channel,
+ parm.type,
+ parm.bufNum,
+ parm.phyaddr_1);
+ } else {
+ ret = -1;
+ }
+
+ }
+ break;
+ case IPU_SELECT_CHANNEL_BUFFER:
+ {
+ ipu_channel_buf_parm parm;
+ if (copy_from_user
+ (&parm, (ipu_channel_buf_parm *) arg,
+ sizeof(ipu_channel_buf_parm))) {
+ return -EFAULT;
+ }
+ ret =
+ ipu_select_buffer(parm.channel, parm.type,
+ parm.bufNum);
+
+ }
+ break;
+ case IPU_LINK_CHANNELS:
+ {
+ ipu_channel_link link;
+ if (copy_from_user
+ (&link, (ipu_channel_link *) arg,
+ sizeof(ipu_channel_link))) {
+ return -EFAULT;
+ }
+ ret = ipu_link_channels(link.src_ch, link.dest_ch);
+
+ }
+ break;
+ case IPU_UNLINK_CHANNELS:
+ {
+ ipu_channel_link link;
+ if (copy_from_user
+ (&link, (ipu_channel_link *) arg,
+ sizeof(ipu_channel_link))) {
+ return -EFAULT;
+ }
+ ret = ipu_unlink_channels(link.src_ch, link.dest_ch);
+
+ }
+ break;
+ case IPU_ENABLE_CHANNEL:
+ {
+ ipu_channel_t ch;
+ int __user *argp = (void __user *)arg;
+ if (get_user(ch, argp))
+ return -EFAULT;
+ ipu_enable_channel(ch);
+ }
+ break;
+ case IPU_DISABLE_CHANNEL:
+ {
+ ipu_channel_info info;
+ if (copy_from_user
+ (&info, (ipu_channel_info *) arg,
+ sizeof(ipu_channel_info))) {
+ return -EFAULT;
+ }
+ ret = ipu_disable_channel(info.channel, info.stop);
+ }
+ break;
+ case IPU_ENABLE_IRQ:
+ {
+ uint32_t irq;
+ int __user *argp = (void __user *)arg;
+ if (get_user(irq, argp))
+ return -EFAULT;
+ ipu_enable_irq(irq);
+ }
+ break;
+ case IPU_DISABLE_IRQ:
+ {
+ uint32_t irq;
+ int __user *argp = (void __user *)arg;
+ if (get_user(irq, argp))
+ return -EFAULT;
+ ipu_disable_irq(irq);
+ }
+ break;
+ case IPU_CLEAR_IRQ:
+ {
+ uint32_t irq;
+ int __user *argp = (void __user *)arg;
+ if (get_user(irq, argp))
+ return -EFAULT;
+ ipu_clear_irq(irq);
+ }
+ break;
+ case IPU_FREE_IRQ:
+ {
+ ipu_irq_info info;
+ if (copy_from_user
+ (&info, (ipu_irq_info *) arg,
+ sizeof(ipu_irq_info))) {
+ return -EFAULT;
+ }
+ ipu_free_irq(info.irq, info.dev_id);
+ }
+ break;
+ case IPU_REQUEST_IRQ_STATUS:
+ {
+ uint32_t irq;
+ int __user *argp = (void __user *)arg;
+ if (get_user(irq, argp))
+ return -EFAULT;
+ ret = ipu_get_irq_status(irq);
+ }
+ break;
+ case IPU_SDC_INIT_PANEL:
+ {
+ ipu_sdc_panel_info sinfo;
+ if (copy_from_user
+ (&sinfo, (ipu_sdc_panel_info *) arg,
+ sizeof(ipu_sdc_panel_info))) {
+ return -EFAULT;
+ }
+ ret =
+ ipu_sdc_init_panel(sinfo.panel, sinfo.pixel_clk,
+ sinfo.width, sinfo.height,
+ sinfo.pixel_fmt,
+ sinfo.hStartWidth,
+ sinfo.hSyncWidth,
+ sinfo.hEndWidth,
+ sinfo.vStartWidth,
+ sinfo.vSyncWidth,
+ sinfo.vEndWidth, sinfo.signal);
+ }
+ break;
+ case IPU_SDC_SET_WIN_POS:
+ {
+ ipu_sdc_window_pos pos;
+ if (copy_from_user
+ (&pos, (ipu_sdc_window_pos *) arg,
+ sizeof(ipu_sdc_window_pos))) {
+ return -EFAULT;
+ }
+ ret =
+ ipu_disp_set_window_pos(pos.channel, pos.x_pos,
+ pos.y_pos);
+
+ }
+ break;
+ case IPU_SDC_SET_GLOBAL_ALPHA:
+ {
+ ipu_sdc_global_alpha g;
+ if (copy_from_user
+ (&g, (ipu_sdc_global_alpha *) arg,
+ sizeof(ipu_sdc_global_alpha))) {
+ return -EFAULT;
+ }
+ ret = ipu_sdc_set_global_alpha(g.enable, g.alpha);
+ }
+ break;
+ case IPU_SDC_SET_COLOR_KEY:
+ {
+ ipu_sdc_color_key c;
+ if (copy_from_user
+ (&c, (ipu_sdc_color_key *) arg,
+ sizeof(ipu_sdc_color_key))) {
+ return -EFAULT;
+ }
+ ret =
+ ipu_sdc_set_color_key(c.channel, c.enable,
+ c.colorKey);
+ }
+ break;
+ case IPU_SDC_SET_BRIGHTNESS:
+ {
+ uint8_t b;
+ int __user *argp = (void __user *)arg;
+ if (get_user(b, argp))
+ return -EFAULT;
+ ret = ipu_sdc_set_brightness(b);
+
+ }
+ break;
+ case IPU_REGISTER_GENERIC_ISR:
+ {
+ ipu_event_info info;
+ if (copy_from_user
+ (&info, (ipu_event_info *) arg,
+ sizeof(ipu_event_info))) {
+ return -EFAULT;
+ }
+ ret =
+ ipu_request_irq(info.irq, mxc_ipu_generic_handler,
+ 0, "video_sink", info.dev);
+ }
+ break;
+ case IPU_GET_EVENT:
+ /* User will have to allocate event_type structure and pass the pointer in arg */
+ {
+ ipu_event_info info;
+ int r = -1;
+
+ if (copy_from_user
+ (&info, (ipu_event_info *) arg,
+ sizeof(ipu_event_info)))
+ return -EFAULT;
+
+ r = get_events(&info);
+ if (r == -1) {
+ wait_event_interruptible_timeout(waitq,
+ (pending_events != 0), 2 * HZ);
+ r = get_events(&info);
+ }
+ ret = -1;
+ if (r == 0) {
+ if (!copy_to_user((ipu_event_info *) arg,
+ &info, sizeof(ipu_event_info)))
+ ret = 0;
+ }
+ }
+ break;
+ case IPU_ADC_WRITE_TEMPLATE:
+ {
+ ipu_adc_template temp;
+ if (copy_from_user
+ (&temp, (ipu_adc_template *) arg, sizeof(temp))) {
+ return -EFAULT;
+ }
+ ret =
+ ipu_adc_write_template(temp.disp, temp.pCmd,
+ temp.write);
+ }
+ break;
+ case IPU_ADC_UPDATE:
+ {
+ ipu_adc_update update;
+ if (copy_from_user
+ (&update, (ipu_adc_update *) arg, sizeof(update))) {
+ return -EFAULT;
+ }
+ ret =
+ ipu_adc_set_update_mode(update.channel, update.mode,
+ update.refresh_rate,
+ update.addr, update.size);
+ }
+ break;
+ case IPU_ADC_SNOOP:
+ {
+ ipu_adc_snoop snoop;
+ if (copy_from_user
+ (&snoop, (ipu_adc_snoop *) arg, sizeof(snoop))) {
+ return -EFAULT;
+ }
+ ret =
+ ipu_adc_get_snooping_status(snoop.statl,
+ snoop.stath);
+ }
+ break;
+ case IPU_ADC_CMD:
+ {
+ ipu_adc_cmd cmd;
+ if (copy_from_user
+ (&cmd, (ipu_adc_cmd *) arg, sizeof(cmd))) {
+ return -EFAULT;
+ }
+ ret =
+ ipu_adc_write_cmd(cmd.disp, cmd.type, cmd.cmd,
+ cmd.params, cmd.numParams);
+ }
+ break;
+ case IPU_ADC_INIT_PANEL:
+ {
+ ipu_adc_panel panel;
+ if (copy_from_user
+ (&panel, (ipu_adc_panel *) arg, sizeof(panel))) {
+ return -EFAULT;
+ }
+ ret =
+ ipu_adc_init_panel(panel.disp, panel.width,
+ panel.height, panel.pixel_fmt,
+ panel.stride, panel.signal,
+ panel.addr, panel.vsync_width,
+ panel.mode);
+ }
+ break;
+ case IPU_ADC_IFC_TIMING:
+ {
+ ipu_adc_ifc_timing t;
+ if (copy_from_user
+ (&t, (ipu_adc_ifc_timing *) arg, sizeof(t))) {
+ return -EFAULT;
+ }
+ ret =
+ ipu_adc_init_ifc_timing(t.disp, t.read,
+ t.cycle_time, t.up_time,
+ t.down_time,
+ t.read_latch_time,
+ t.pixel_clk);
+ }
+ break;
+ case IPU_CSI_INIT_INTERFACE:
+ {
+ ipu_csi_interface c;
+ if (copy_from_user
+ (&c, (ipu_csi_interface *) arg, sizeof(c)))
+ return -EFAULT;
+ ret =
+ ipu_csi_init_interface(c.width, c.height,
+ c.pixel_fmt, c.signal);
+ }
+ break;
+ case IPU_CSI_ENABLE_MCLK:
+ {
+ ipu_csi_mclk m;
+ if (copy_from_user(&m, (ipu_csi_mclk *) arg, sizeof(m)))
+ return -EFAULT;
+ ret = ipu_csi_enable_mclk(m.src, m.flag, m.wait);
+ }
+ break;
+ case IPU_CSI_READ_MCLK_FLAG:
+ {
+ ret = ipu_csi_read_mclk_flag();
+ }
+ break;
+ case IPU_CSI_FLASH_STROBE:
+ {
+ bool strobe;
+ int __user *argp = (void __user *)arg;
+ if (get_user(strobe, argp))
+ return -EFAULT;
+ ipu_csi_flash_strobe(strobe);
+ }
+ break;
+ case IPU_CSI_GET_WIN_SIZE:
+ {
+ ipu_csi_window_size w;
+ int dummy = 0;
+ ipu_csi_get_window_size(&w.width, &w.height, dummy);
+ if (copy_to_user
+ ((ipu_csi_window_size *) arg, &w, sizeof(w)))
+ return -EFAULT;
+ }
+ break;
+ case IPU_CSI_SET_WIN_SIZE:
+ {
+ ipu_csi_window_size w;
+ int dummy = 0;
+ if (copy_from_user
+ (&w, (ipu_csi_window_size *) arg, sizeof(w)))
+ return -EFAULT;
+ ipu_csi_set_window_size(w.width, w.height, dummy);
+ }
+ break;
+ case IPU_CSI_SET_WINDOW:
+ {
+ ipu_csi_window p;
+ int dummy = 0;
+ if (copy_from_user
+ (&p, (ipu_csi_window *) arg, sizeof(p)))
+ return -EFAULT;
+ ipu_csi_set_window_pos(p.left, p.top, dummy);
+ }
+ break;
+ case IPU_PF_SET_PAUSE_ROW:
+ {
+ uint32_t p;
+ int __user *argp = (void __user *)arg;
+ if (get_user(p, argp))
+ return -EFAULT;
+ ret = ipu_pf_set_pause_row(p);
+ }
+ break;
+ case IPU_ALOC_MEM:
+ {
+ ipu_mem_info info;
+ if (copy_from_user
+ (&info, (ipu_mem_info *) arg,
+ sizeof(ipu_mem_info)))
+ return -EFAULT;
+
+ info.vaddr = dma_alloc_coherent(0,
+ PAGE_ALIGN(info.size),
+ &info.paddr,
+ GFP_DMA | GFP_KERNEL);
+ if (info.vaddr == 0) {
+ printk(KERN_ERR "dma alloc failed!\n");
+ return -ENOBUFS;
+ }
+ if (copy_to_user((ipu_mem_info *) arg, &info,
+ sizeof(ipu_mem_info)) > 0)
+ return -EFAULT;
+ }
+ break;
+ case IPU_FREE_MEM:
+ {
+ ipu_mem_info info;
+ if (copy_from_user
+ (&info, (ipu_mem_info *) arg,
+ sizeof(ipu_mem_info)))
+ return -EFAULT;
+
+ if (info.vaddr != 0)
+ dma_free_coherent(0, PAGE_ALIGN(info.size),
+ info.vaddr, info.paddr);
+ else
+ return -EFAULT;
+ }
+ break;
+ case IPU_IS_CHAN_BUSY:
+ {
+ ipu_channel_t chan;
+ if (copy_from_user
+ (&chan, (ipu_channel_t *)arg,
+ sizeof(ipu_channel_t)))
+ return -EFAULT;
+
+ if (ipu_is_channel_busy(chan))
+ ret = 1;
+ else
+ ret = 0;
+ }
+ break;
+ default:
+ break;
+
+ }
+ return ret;
+}
+
+static int mxc_ipu_mmap(struct file *file, struct vm_area_struct *vma)
+{
+ vma->vm_page_prot = pgprot_writethru(vma->vm_page_prot);
+
+ if (remap_pfn_range(vma, vma->vm_start, vma->vm_pgoff,
+ vma->vm_end - vma->vm_start,
+ vma->vm_page_prot)) {
+ printk(KERN_ERR
+ "mmap failed!\n");
+ return -ENOBUFS;
+ }
+ return 0;
+}
+
+static int mxc_ipu_release(struct inode *inode, struct file *file)
+{
+ return 0;
+}
+
+static struct file_operations mxc_ipu_fops = {
+ .owner = THIS_MODULE,
+ .open = mxc_ipu_open,
+ .mmap = mxc_ipu_mmap,
+ .release = mxc_ipu_release,
+ .ioctl = mxc_ipu_ioctl
+};
+
+int register_ipu_device()
+{
+ int ret = 0;
+ struct device *temp;
+ mxc_ipu_major = register_chrdev(0, "mxc_ipu", &mxc_ipu_fops);
+ if (mxc_ipu_major < 0) {
+ printk(KERN_ERR
+ "Unable to register Mxc Ipu as a char device\n");
+ return mxc_ipu_major;
+ }
+
+ mxc_ipu_class = class_create(THIS_MODULE, "mxc_ipu");
+ if (IS_ERR(mxc_ipu_class)) {
+ printk(KERN_ERR "Unable to create class for Mxc Ipu\n");
+ ret = PTR_ERR(mxc_ipu_class);
+ goto err1;
+ }
+
+ temp = device_create(mxc_ipu_class, NULL, MKDEV(mxc_ipu_major, 0), NULL,
+ "mxc_ipu");
+
+ if (IS_ERR(temp)) {
+ printk(KERN_ERR "Unable to create class device for Mxc Ipu\n");
+ ret = PTR_ERR(temp);
+ goto err2;
+ }
+ spin_lock_init(&queue_lock);
+ init_waitqueue_head(&waitq);
+ return ret;
+
+ err2:
+ class_destroy(mxc_ipu_class);
+ err1:
+ unregister_chrdev(mxc_ipu_major, "mxc_ipu");
+ return ret;
+
+}
diff --git a/drivers/mxc/ipu/ipu_ic.c b/drivers/mxc/ipu/ipu_ic.c
new file mode 100644
index 000000000000..28f002fc2e53
--- /dev/null
+++ b/drivers/mxc/ipu/ipu_ic.c
@@ -0,0 +1,590 @@
+/*
+ * Copyright 2005-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*
+ * @file ipu_ic.c
+ *
+ * @brief IPU IC functions
+ *
+ * @ingroup IPU
+ */
+#include <linux/types.h>
+#include <linux/init.h>
+#include <linux/errno.h>
+#include <linux/spinlock.h>
+#include <linux/io.h>
+#include <linux/ipu.h>
+
+#include "ipu_prv.h"
+#include "ipu_regs.h"
+#include "ipu_param_mem.h"
+
+enum {
+ IC_TASK_VIEWFINDER,
+ IC_TASK_ENCODER,
+ IC_TASK_POST_PROCESSOR
+};
+
+extern int g_ipu_hw_rev;
+static void _init_csc(uint8_t ic_task, ipu_color_space_t in_format,
+ ipu_color_space_t out_format);
+static bool _calc_resize_coeffs(uint32_t inSize, uint32_t outSize,
+ uint32_t *resizeCoeff,
+ uint32_t *downsizeCoeff);
+
+void _ipu_ic_enable_task(ipu_channel_t channel)
+{
+ uint32_t ic_conf;
+
+ ic_conf = __raw_readl(IC_CONF);
+ switch (channel) {
+ case CSI_PRP_VF_ADC:
+ case MEM_PRP_VF_ADC:
+ case CSI_PRP_VF_MEM:
+ case MEM_PRP_VF_MEM:
+ ic_conf |= IC_CONF_PRPVF_EN;
+ break;
+ case MEM_ROT_VF_MEM:
+ ic_conf |= IC_CONF_PRPVF_ROT_EN;
+ break;
+ case CSI_PRP_ENC_MEM:
+ case MEM_PRP_ENC_MEM:
+ ic_conf |= IC_CONF_PRPENC_EN;
+ break;
+ case MEM_ROT_ENC_MEM:
+ ic_conf |= IC_CONF_PRPENC_ROT_EN;
+ break;
+ case MEM_PP_ADC:
+ case MEM_PP_MEM:
+ ic_conf |= IC_CONF_PP_EN;
+ break;
+ case MEM_ROT_PP_MEM:
+ ic_conf |= IC_CONF_PP_ROT_EN;
+ break;
+ case CSI_MEM:
+ ic_conf |= IC_CONF_RWS_EN | IC_CONF_PRPENC_EN;
+ break;
+ default:
+ break;
+ }
+ __raw_writel(ic_conf, IC_CONF);
+}
+
+void _ipu_ic_disable_task(ipu_channel_t channel)
+{
+ uint32_t ic_conf;
+
+ ic_conf = __raw_readl(IC_CONF);
+ switch (channel) {
+ case CSI_PRP_VF_ADC:
+ case MEM_PRP_VF_ADC:
+ case CSI_PRP_VF_MEM:
+ case MEM_PRP_VF_MEM:
+ ic_conf &= ~IC_CONF_PRPVF_EN;
+ break;
+ case MEM_ROT_VF_MEM:
+ ic_conf &= ~IC_CONF_PRPVF_ROT_EN;
+ break;
+ case CSI_PRP_ENC_MEM:
+ case MEM_PRP_ENC_MEM:
+ ic_conf &= ~IC_CONF_PRPENC_EN;
+ break;
+ case MEM_ROT_ENC_MEM:
+ ic_conf &= ~IC_CONF_PRPENC_ROT_EN;
+ break;
+ case MEM_PP_ADC:
+ case MEM_PP_MEM:
+ ic_conf &= ~IC_CONF_PP_EN;
+ break;
+ case MEM_ROT_PP_MEM:
+ ic_conf &= ~IC_CONF_PP_ROT_EN;
+ break;
+ case CSI_MEM:
+ ic_conf &= ~(IC_CONF_RWS_EN | IC_CONF_PRPENC_EN);
+ break;
+ default:
+ break;
+ }
+ __raw_writel(ic_conf, IC_CONF);
+}
+
+void _ipu_ic_init_prpvf(ipu_channel_params_t *params, bool src_is_csi)
+{
+ uint32_t reg, ic_conf;
+ uint32_t downsizeCoeff, resizeCoeff;
+ ipu_color_space_t in_fmt, out_fmt;
+
+ /* Setup vertical resizing */
+ _calc_resize_coeffs(params->mem_prp_vf_mem.in_height,
+ params->mem_prp_vf_mem.out_height,
+ &resizeCoeff, &downsizeCoeff);
+ reg = (downsizeCoeff << 30) | (resizeCoeff << 16);
+
+ /* Setup horizontal resizing */
+ _calc_resize_coeffs(params->mem_prp_vf_mem.in_width,
+ params->mem_prp_vf_mem.out_width,
+ &resizeCoeff, &downsizeCoeff);
+ reg |= (downsizeCoeff << 14) | resizeCoeff;
+
+ __raw_writel(reg, IC_PRP_VF_RSC);
+
+ ic_conf = __raw_readl(IC_CONF);
+
+ /* Setup color space conversion */
+ in_fmt = format_to_colorspace(params->mem_prp_vf_mem.in_pixel_fmt);
+ out_fmt = format_to_colorspace(params->mem_prp_vf_mem.out_pixel_fmt);
+ if (in_fmt == RGB) {
+ if ((out_fmt == YCbCr) || (out_fmt == YUV)) {
+ _init_csc(IC_TASK_VIEWFINDER, RGB, out_fmt);
+ ic_conf |= IC_CONF_PRPVF_CSC1; /* Enable RGB->YCBCR CSC */
+ }
+ }
+ if ((in_fmt == YCbCr) || (in_fmt == YUV)) {
+ if (out_fmt == RGB) {
+ _init_csc(IC_TASK_VIEWFINDER, YCbCr, RGB);
+ ic_conf |= IC_CONF_PRPVF_CSC1; /* Enable YCBCR->RGB CSC */
+ } else {
+ /* TODO: Support YUV<->YCbCr conversion? */
+ }
+ }
+
+ if (params->mem_prp_vf_mem.graphics_combine_en) {
+ ic_conf |= IC_CONF_PRPVF_CMB;
+
+ /* need transparent CSC1 conversion */
+ _init_csc(IC_TASK_POST_PROCESSOR, RGB, RGB);
+ ic_conf |= IC_CONF_PRPVF_CSC1; /* Enable RGB->RGB CSC */
+
+ if (params->mem_prp_vf_mem.global_alpha_en) {
+ ic_conf |= IC_CONF_IC_GLB_LOC_A;
+ } else {
+ ic_conf &= ~IC_CONF_IC_GLB_LOC_A;
+ }
+
+ if (params->mem_prp_vf_mem.key_color_en) {
+ ic_conf |= IC_CONF_KEY_COLOR_EN;
+ } else {
+ ic_conf &= ~IC_CONF_KEY_COLOR_EN;
+ }
+ } else {
+ ic_conf &= ~IC_CONF_PP_CMB;
+ }
+
+#ifndef CONFIG_VIRTIO_SUPPORT /* Setting RWS_EN doesn't work in Virtio */
+ if (src_is_csi) {
+ ic_conf &= ~IC_CONF_RWS_EN;
+ } else {
+ ic_conf |= IC_CONF_RWS_EN;
+ }
+#endif
+ __raw_writel(ic_conf, IC_CONF);
+}
+
+void _ipu_ic_uninit_prpvf(void)
+{
+ uint32_t reg;
+
+ reg = __raw_readl(IC_CONF);
+ reg &= ~(IC_CONF_PRPVF_EN | IC_CONF_PRPVF_CMB |
+ IC_CONF_PRPVF_CSC2 | IC_CONF_PRPVF_CSC1);
+ __raw_writel(reg, IC_CONF);
+}
+
+void _ipu_ic_init_rotate_vf(ipu_channel_params_t *params)
+{
+}
+
+void _ipu_ic_uninit_rotate_vf(void)
+{
+ uint32_t reg;
+ reg = __raw_readl(IC_CONF);
+ reg &= ~IC_CONF_PRPVF_ROT_EN;
+ __raw_writel(reg, IC_CONF);
+}
+
+void _ipu_ic_init_csi(ipu_channel_params_t *params)
+{
+ uint32_t reg;
+ reg = __raw_readl(IC_CONF);
+ reg &= ~IC_CONF_CSI_MEM_WR_EN;
+ __raw_writel(reg, IC_CONF);
+}
+
+void _ipu_ic_uninit_csi(void)
+{
+ uint32_t reg;
+ reg = __raw_readl(IC_CONF);
+ reg &= ~(IC_CONF_RWS_EN | IC_CONF_PRPENC_EN);
+ __raw_writel(reg, IC_CONF);
+}
+
+void _ipu_ic_init_prpenc(ipu_channel_params_t *params, bool src_is_csi)
+{
+ uint32_t reg, ic_conf;
+ uint32_t downsizeCoeff, resizeCoeff;
+ ipu_color_space_t in_fmt, out_fmt;
+
+ /* Setup vertical resizing */
+ _calc_resize_coeffs(params->mem_prp_enc_mem.in_height,
+ params->mem_prp_enc_mem.out_height,
+ &resizeCoeff, &downsizeCoeff);
+ reg = (downsizeCoeff << 30) | (resizeCoeff << 16);
+
+ /* Setup horizontal resizing */
+ _calc_resize_coeffs(params->mem_prp_enc_mem.in_width,
+ params->mem_prp_enc_mem.out_width,
+ &resizeCoeff, &downsizeCoeff);
+ reg |= (downsizeCoeff << 14) | resizeCoeff;
+
+ __raw_writel(reg, IC_PRP_ENC_RSC);
+
+ ic_conf = __raw_readl(IC_CONF);
+
+ /* Setup color space conversion */
+ in_fmt = format_to_colorspace(params->mem_prp_enc_mem.in_pixel_fmt);
+ out_fmt = format_to_colorspace(params->mem_prp_enc_mem.out_pixel_fmt);
+ if (in_fmt == RGB) {
+ if ((out_fmt == YCbCr) || (out_fmt == YUV)) {
+ /* TODO: ERROR! */
+ }
+ }
+ if ((in_fmt == YCbCr) || (in_fmt == YUV)) {
+ if (out_fmt == RGB) {
+ _init_csc(IC_TASK_ENCODER, YCbCr, RGB);
+ ic_conf |= IC_CONF_PRPENC_CSC1; /* Enable YCBCR->RGB CSC */
+ } else {
+ /* TODO: Support YUV<->YCbCr conversion? */
+ }
+ }
+
+ if (src_is_csi) {
+ ic_conf &= ~IC_CONF_RWS_EN;
+ } else {
+ ic_conf |= IC_CONF_RWS_EN;
+ }
+
+ __raw_writel(ic_conf, IC_CONF);
+}
+
+void _ipu_ic_uninit_prpenc(void)
+{
+ uint32_t reg;
+
+ reg = __raw_readl(IC_CONF);
+ reg &= ~(IC_CONF_PRPENC_EN | IC_CONF_PRPENC_CSC1);
+ __raw_writel(reg, IC_CONF);
+}
+
+void _ipu_ic_init_rotate_enc(ipu_channel_params_t *params)
+{
+}
+
+void _ipu_ic_uninit_rotate_enc(void)
+{
+ uint32_t reg;
+
+ reg = __raw_readl(IC_CONF);
+ reg &= ~(IC_CONF_PRPENC_ROT_EN);
+ __raw_writel(reg, IC_CONF);
+}
+
+void _ipu_ic_init_pp(ipu_channel_params_t *params)
+{
+ uint32_t reg, ic_conf;
+ uint32_t downsizeCoeff, resizeCoeff;
+ ipu_color_space_t in_fmt, out_fmt;
+
+ /* Setup vertical resizing */
+ _calc_resize_coeffs(params->mem_pp_mem.in_height,
+ params->mem_pp_mem.out_height,
+ &resizeCoeff, &downsizeCoeff);
+ reg = (downsizeCoeff << 30) | (resizeCoeff << 16);
+
+ /* Setup horizontal resizing */
+ _calc_resize_coeffs(params->mem_pp_mem.in_width,
+ params->mem_pp_mem.out_width,
+ &resizeCoeff, &downsizeCoeff);
+ reg |= (downsizeCoeff << 14) | resizeCoeff;
+
+ __raw_writel(reg, IC_PP_RSC);
+
+ ic_conf = __raw_readl(IC_CONF);
+
+ /* Setup color space conversion */
+ in_fmt = format_to_colorspace(params->mem_pp_mem.in_pixel_fmt);
+ out_fmt = format_to_colorspace(params->mem_pp_mem.out_pixel_fmt);
+ if (in_fmt == RGB) {
+ if ((out_fmt == YCbCr) || (out_fmt == YUV)) {
+ _init_csc(IC_TASK_POST_PROCESSOR, RGB, out_fmt);
+ ic_conf |= IC_CONF_PP_CSC2; /* Enable RGB->YCBCR CSC */
+ }
+ }
+ if ((in_fmt == YCbCr) || (in_fmt == YUV)) {
+ if (out_fmt == RGB) {
+ _init_csc(IC_TASK_POST_PROCESSOR, YCbCr, RGB);
+ ic_conf |= IC_CONF_PP_CSC1; /* Enable YCBCR->RGB CSC */
+ } else {
+ /* TODO: Support YUV<->YCbCr conversion? */
+ }
+ }
+
+ if (params->mem_pp_mem.graphics_combine_en) {
+ ic_conf |= IC_CONF_PP_CMB;
+
+ /* need transparent CSC1 conversion */
+ _init_csc(IC_TASK_POST_PROCESSOR, RGB, RGB);
+ ic_conf |= IC_CONF_PP_CSC1; /* Enable RGB->RGB CSC */
+
+ if (params->mem_pp_mem.global_alpha_en) {
+ ic_conf |= IC_CONF_IC_GLB_LOC_A;
+ } else {
+ ic_conf &= ~IC_CONF_IC_GLB_LOC_A;
+ }
+
+ if (params->mem_pp_mem.key_color_en) {
+ ic_conf |= IC_CONF_KEY_COLOR_EN;
+ } else {
+ ic_conf &= ~IC_CONF_KEY_COLOR_EN;
+ }
+ } else {
+ ic_conf &= ~IC_CONF_PP_CMB;
+ }
+
+ __raw_writel(ic_conf, IC_CONF);
+}
+
+void _ipu_ic_uninit_pp(void)
+{
+ uint32_t reg;
+
+ reg = __raw_readl(IC_CONF);
+ reg &= ~(IC_CONF_PP_EN | IC_CONF_PP_CSC1 | IC_CONF_PP_CSC2 |
+ IC_CONF_PP_CMB);
+ __raw_writel(reg, IC_CONF);
+}
+
+void _ipu_ic_init_rotate_pp(ipu_channel_params_t *params)
+{
+}
+
+void _ipu_ic_uninit_rotate_pp(void)
+{
+ uint32_t reg;
+ reg = __raw_readl(IC_CONF);
+ reg &= ~IC_CONF_PP_ROT_EN;
+ __raw_writel(reg, IC_CONF);
+}
+
+static void _init_csc(uint8_t ic_task, ipu_color_space_t in_format,
+ ipu_color_space_t out_format)
+{
+/* Y = R * .299 + G * .587 + B * .114;
+ U = R * -.169 + G * -.332 + B * .500 + 128.;
+ V = R * .500 + G * -.419 + B * -.0813 + 128.;*/
+ static const uint32_t rgb2ycbcr_coeff[4][3] = {
+ {0x004D, 0x0096, 0x001D},
+ {0x01D5, 0x01AB, 0x0080},
+ {0x0080, 0x0195, 0x01EB},
+ {0x0000, 0x0200, 0x0200}, /* A0, A1, A2 */
+ };
+
+ /* transparent RGB->RGB matrix for combining
+ */
+ static const uint32_t rgb2rgb_coeff[4][3] = {
+ {0x0080, 0x0000, 0x0000},
+ {0x0000, 0x0080, 0x0000},
+ {0x0000, 0x0000, 0x0080},
+ {0x0000, 0x0000, 0x0000}, /* A0, A1, A2 */
+ };
+
+/* R = (1.164 * (Y - 16)) + (1.596 * (Cr - 128));
+ G = (1.164 * (Y - 16)) - (0.392 * (Cb - 128)) - (0.813 * (Cr - 128));
+ B = (1.164 * (Y - 16)) + (2.017 * (Cb - 128); */
+ static const uint32_t ycbcr2rgb_coeff[4][3] = {
+ {149, 0, 204},
+ {149, 462, 408},
+ {149, 255, 0},
+ {8192 - 446, 266, 8192 - 554}, /* A0, A1, A2 */
+ };
+
+ uint32_t param[2];
+ uint32_t address = 0;
+
+ if (g_ipu_hw_rev > 1) {
+ if (ic_task == IC_TASK_VIEWFINDER) {
+ address = 0x645 << 3;
+ } else if (ic_task == IC_TASK_ENCODER) {
+ address = 0x321 << 3;
+ } else if (ic_task == IC_TASK_POST_PROCESSOR) {
+ address = 0x96C << 3;
+ } else {
+ BUG();
+ }
+ } else {
+ if (ic_task == IC_TASK_VIEWFINDER) {
+ address = 0x5a5 << 3;
+ } else if (ic_task == IC_TASK_ENCODER) {
+ address = 0x2d1 << 3;
+ } else if (ic_task == IC_TASK_POST_PROCESSOR) {
+ address = 0x87c << 3;
+ } else {
+ BUG();
+ }
+ }
+
+ if ((in_format == YCbCr) && (out_format == RGB)) {
+ /* Init CSC1 (YCbCr->RGB) */
+ param[0] =
+ (ycbcr2rgb_coeff[3][0] << 27) | (ycbcr2rgb_coeff[0][0] <<
+ 18) |
+ (ycbcr2rgb_coeff[1][1] << 9) | ycbcr2rgb_coeff[2][2];
+ /* scale = 2, sat = 0 */
+ param[1] = (ycbcr2rgb_coeff[3][0] >> 5) | (2L << (40 - 32));
+ _ipu_write_param_mem(address, param, 2);
+ dev_dbg(g_ipu_dev,
+ "addr 0x%04X: word0 = 0x%08X, word1 = 0x%08X\n",
+ address, param[0], param[1]);
+
+ param[0] =
+ (ycbcr2rgb_coeff[3][1] << 27) | (ycbcr2rgb_coeff[0][1] <<
+ 18) |
+ (ycbcr2rgb_coeff[1][0] << 9) | ycbcr2rgb_coeff[2][0];
+ param[1] = (ycbcr2rgb_coeff[3][1] >> 5);
+ address += 1L << 3;
+ _ipu_write_param_mem(address, param, 2);
+ dev_dbg(g_ipu_dev,
+ "addr 0x%04X: word0 = 0x%08X, word1 = 0x%08X\n",
+ address, param[0], param[1]);
+
+ param[0] =
+ (ycbcr2rgb_coeff[3][2] << 27) | (ycbcr2rgb_coeff[0][2] <<
+ 18) |
+ (ycbcr2rgb_coeff[1][2] << 9) | ycbcr2rgb_coeff[2][1];
+ param[1] = (ycbcr2rgb_coeff[3][2] >> 5);
+ address += 1L << 3;
+ _ipu_write_param_mem(address, param, 2);
+ dev_dbg(g_ipu_dev,
+ "addr 0x%04X: word0 = 0x%08X, word1 = 0x%08X\n",
+ address, param[0], param[1]);
+ } else if ((in_format == RGB) && (out_format == YCbCr)) {
+ /* Init CSC1 (RGB->YCbCr) */
+ param[0] =
+ (rgb2ycbcr_coeff[3][0] << 27) | (rgb2ycbcr_coeff[0][0] <<
+ 18) |
+ (rgb2ycbcr_coeff[1][1] << 9) | rgb2ycbcr_coeff[2][2];
+ /* scale = 1, sat = 0 */
+ param[1] = (rgb2ycbcr_coeff[3][0] >> 5) | (1UL << 8);
+ _ipu_write_param_mem(address, param, 2);
+ dev_dbg(g_ipu_dev,
+ "addr 0x%04X: word0 = 0x%08X, word1 = 0x%08X\n",
+ address, param[0], param[1]);
+
+ param[0] =
+ (rgb2ycbcr_coeff[3][1] << 27) | (rgb2ycbcr_coeff[0][1] <<
+ 18) |
+ (rgb2ycbcr_coeff[1][0] << 9) | rgb2ycbcr_coeff[2][0];
+ param[1] = (rgb2ycbcr_coeff[3][1] >> 5);
+ address += 1L << 3;
+ _ipu_write_param_mem(address, param, 2);
+ dev_dbg(g_ipu_dev,
+ "addr 0x%04X: word0 = 0x%08X, word1 = 0x%08X\n",
+ address, param[0], param[1]);
+
+ param[0] =
+ (rgb2ycbcr_coeff[3][2] << 27) | (rgb2ycbcr_coeff[0][2] <<
+ 18) |
+ (rgb2ycbcr_coeff[1][2] << 9) | rgb2ycbcr_coeff[2][1];
+ param[1] = (rgb2ycbcr_coeff[3][2] >> 5);
+ address += 1L << 3;
+ _ipu_write_param_mem(address, param, 2);
+ dev_dbg(g_ipu_dev,
+ "addr 0x%04X: word0 = 0x%08X, word1 = 0x%08X\n",
+ address, param[0], param[1]);
+ } else if ((in_format == RGB) && (out_format == RGB)) {
+ /* Init CSC1 */
+ param[0] =
+ (rgb2rgb_coeff[3][0] << 27) | (rgb2rgb_coeff[0][0] << 18) |
+ (rgb2rgb_coeff[1][1] << 9) | rgb2rgb_coeff[2][2];
+ /* scale = 2, sat = 0 */
+ param[1] = (rgb2rgb_coeff[3][0] >> 5) | (2UL << 8);
+
+ _ipu_write_param_mem(address, param, 2);
+
+ dev_dbg(g_ipu_dev,
+ "addr 0x%04X: word0 = 0x%08X, word1 = 0x%08X\n",
+ address, param[0], param[1]);
+
+ param[0] =
+ (rgb2rgb_coeff[3][1] << 27) | (rgb2rgb_coeff[0][1] << 18) |
+ (rgb2rgb_coeff[1][0] << 9) | rgb2rgb_coeff[2][0];
+ param[1] = (rgb2rgb_coeff[3][1] >> 5);
+
+ address += 1L << 3;
+ _ipu_write_param_mem(address, param, 2);
+
+ dev_dbg(g_ipu_dev,
+ "addr 0x%04X: word0 = 0x%08X, word1 = 0x%08X\n",
+ address, param[0], param[1]);
+
+ param[0] =
+ (rgb2rgb_coeff[3][2] << 27) | (rgb2rgb_coeff[0][2] << 18) |
+ (rgb2rgb_coeff[1][2] << 9) | rgb2rgb_coeff[2][1];
+ param[1] = (rgb2rgb_coeff[3][2] >> 5);
+
+ address += 1L << 3;
+ _ipu_write_param_mem(address, param, 2);
+
+ dev_dbg(g_ipu_dev,
+ "addr 0x%04X: word0 = 0x%08X, word1 = 0x%08X\n",
+ address, param[0], param[1]);
+ } else {
+ dev_err(g_ipu_dev, "Unsupported color space conversion\n");
+ }
+}
+
+static bool _calc_resize_coeffs(uint32_t inSize, uint32_t outSize,
+ uint32_t *resizeCoeff,
+ uint32_t *downsizeCoeff)
+{
+ uint32_t tempSize;
+ uint32_t tempDownsize;
+
+ /* Cannot downsize more than 8:1 */
+ if ((outSize << 3) < inSize) {
+ return false;
+ }
+ /* compute downsizing coefficient */
+ tempDownsize = 0;
+ tempSize = inSize;
+ while ((tempSize >= outSize * 2) && (tempDownsize < 2)) {
+ tempSize >>= 1;
+ tempDownsize++;
+ }
+ *downsizeCoeff = tempDownsize;
+
+ /* compute resizing coefficient using the following equation:
+ resizeCoeff = M*(SI -1)/(SO - 1)
+ where M = 2^13, SI - input size, SO - output size */
+ *resizeCoeff = (8192L * (tempSize - 1)) / (outSize - 1);
+ if (*resizeCoeff >= 16384L) {
+ dev_err(g_ipu_dev, "Warning! Overflow on resize coeff.\n");
+ *resizeCoeff = 0x3FFF;
+ }
+
+ dev_dbg(g_ipu_dev, "resizing from %u -> %u pixels, "
+ "downsize=%u, resize=%u.%lu (reg=%u)\n", inSize, outSize,
+ *downsizeCoeff, (*resizeCoeff >= 8192L) ? 1 : 0,
+ ((*resizeCoeff & 0x1FFF) * 10000L) / 8192L, *resizeCoeff);
+
+ return true;
+}
diff --git a/drivers/mxc/ipu/ipu_param_mem.h b/drivers/mxc/ipu/ipu_param_mem.h
new file mode 100644
index 000000000000..4f2d5cba6e42
--- /dev/null
+++ b/drivers/mxc/ipu/ipu_param_mem.h
@@ -0,0 +1,176 @@
+/*
+ * Copyright 2005-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+#ifndef __INCLUDE_IPU_PARAM_MEM_H__
+#define __INCLUDE_IPU_PARAM_MEM_H__
+
+#include <linux/types.h>
+
+static __inline void _ipu_ch_param_set_size(uint32_t *params,
+ uint32_t pixel_fmt, uint16_t width,
+ uint16_t height, uint16_t stride,
+ uint32_t u, uint32_t v)
+{
+ uint32_t u_offset = 0;
+ uint32_t v_offset = 0;
+ memset(params, 0, 40);
+
+ params[3] =
+ (uint32_t) ((width - 1) << 12) | ((uint32_t) (height - 1) << 24);
+ params[4] = (uint32_t) (height - 1) >> 8;
+ params[7] = (uint32_t) (stride - 1) << 3;
+
+ switch (pixel_fmt) {
+ case IPU_PIX_FMT_GENERIC:
+ /*Represents 8-bit Generic data */
+ params[7] |= 3 | (7UL << (81 - 64)) | (31L << (89 - 64)); /* BPP & PFS */
+ params[8] = 2; /* SAT = use 32-bit access */
+ break;
+ case IPU_PIX_FMT_GENERIC_32:
+ /*Represents 32-bit Generic data */
+ params[7] |= (7UL << (81 - 64)) | (7L << (89 - 64)); /* BPP & PFS */
+ params[8] = 2; /* SAT = use 32-bit access */
+ break;
+ case IPU_PIX_FMT_RGB565:
+ params[7] |= 2L | (4UL << (81 - 64)) | (7L << (89 - 64)); /* BPP & PFS */
+ params[8] = 2 | /* SAT = 32-bit access */
+ (0UL << (99 - 96)) | /* Red bit offset */
+ (5UL << (104 - 96)) | /* Green bit offset */
+ (11UL << (109 - 96)) | /* Blue bit offset */
+ (16UL << (114 - 96)) | /* Alpha bit offset */
+ (4UL << (119 - 96)) | /* Red bit width - 1 */
+ (5UL << (122 - 96)) | /* Green bit width - 1 */
+ (4UL << (125 - 96)); /* Blue bit width - 1 */
+ break;
+ case IPU_PIX_FMT_BGR24: /* 24 BPP & RGB PFS */
+ params[7] |= 1 | (4UL << (81 - 64)) | (7L << (89 - 64));
+ params[8] = 2 | /* SAT = 32-bit access */
+ (8UL << (104 - 96)) | /* Green bit offset */
+ (16UL << (109 - 96)) | /* Blue bit offset */
+ (24UL << (114 - 96)) | /* Alpha bit offset */
+ (7UL << (119 - 96)) | /* Red bit width - 1 */
+ (7UL << (122 - 96)) | /* Green bit width - 1 */
+ (uint32_t) (7UL << (125 - 96)); /* Blue bit width - 1 */
+ break;
+ case IPU_PIX_FMT_RGB24: /* 24 BPP & RGB PFS */
+ params[7] |= 1 | (4UL << (81 - 64)) | (7L << (89 - 64));
+ params[8] = 2 | /* SAT = 32-bit access */
+ (16UL << (99 - 96)) | /* Red bit offset */
+ (8UL << (104 - 96)) | /* Green bit offset */
+ (0UL << (109 - 96)) | /* Blue bit offset */
+ (24UL << (114 - 96)) | /* Alpha bit offset */
+ (7UL << (119 - 96)) | /* Red bit width - 1 */
+ (7UL << (122 - 96)) | /* Green bit width - 1 */
+ (uint32_t) (7UL << (125 - 96)); /* Blue bit width - 1 */
+ break;
+ case IPU_PIX_FMT_BGRA32:
+ case IPU_PIX_FMT_BGR32:
+ /* BPP & pixel fmt */
+ params[7] |= 0 | (4UL << (81 - 64)) | (7 << (89 - 64));
+ params[8] = 2 | /* SAT = 32-bit access */
+ (8UL << (99 - 96)) | /* Red bit offset */
+ (16UL << (104 - 96)) | /* Green bit offset */
+ (24UL << (109 - 96)) | /* Blue bit offset */
+ (0UL << (114 - 96)) | /* Alpha bit offset */
+ (7UL << (119 - 96)) | /* Red bit width - 1 */
+ (7UL << (122 - 96)) | /* Green bit width - 1 */
+ (uint32_t) (7UL << (125 - 96)); /* Blue bit width - 1 */
+ params[9] = 7; /* Alpha bit width - 1 */
+ break;
+ case IPU_PIX_FMT_RGBA32:
+ case IPU_PIX_FMT_RGB32:
+ /* BPP & pixel fmt */
+ params[7] |= 0 | (4UL << (81 - 64)) | (7 << (89 - 64));
+ params[8] = 2 | /* SAT = 32-bit access */
+ (24UL << (99 - 96)) | /* Red bit offset */
+ (16UL << (104 - 96)) | /* Green bit offset */
+ (8UL << (109 - 96)) | /* Blue bit offset */
+ (0UL << (114 - 96)) | /* Alpha bit offset */
+ (7UL << (119 - 96)) | /* Red bit width - 1 */
+ (7UL << (122 - 96)) | /* Green bit width - 1 */
+ (uint32_t) (7UL << (125 - 96)); /* Blue bit width - 1 */
+ params[9] = 7; /* Alpha bit width - 1 */
+ break;
+ case IPU_PIX_FMT_ABGR32:
+ /* BPP & pixel fmt */
+ params[7] |= 0 | (4UL << (81 - 64)) | (7 << (89 - 64));
+ params[8] = 2 | /* SAT = 32-bit access */
+ (0UL << (99 - 96)) | /* Alpha bit offset */
+ (8UL << (104 - 96)) | /* Blue bit offset */
+ (16UL << (109 - 96)) | /* Green bit offset */
+ (24UL << (114 - 96)) | /* Red bit offset */
+ (7UL << (119 - 96)) | /* Alpha bit width - 1 */
+ (7UL << (122 - 96)) | /* Blue bit width - 1 */
+ (uint32_t) (7UL << (125 - 96)); /* Green bit width - 1 */
+ params[9] = 7; /* Red bit width - 1 */
+ break;
+ case IPU_PIX_FMT_UYVY:
+ /* BPP & pixel format */
+ params[7] |= 2 | (6UL << 17) | (7 << (89 - 64));
+ params[8] = 2; /* SAT = 32-bit access */
+ break;
+ case IPU_PIX_FMT_YUV420P2:
+ case IPU_PIX_FMT_YUV420P:
+ /* BPP & pixel format */
+ params[7] |= 3 | (3UL << 17) | (7 << (89 - 64));
+ params[8] = 2; /* SAT = 32-bit access */
+ u_offset = (u == 0) ? stride * height : u;
+ v_offset = (v == 0) ? u_offset + u_offset / 4 : v;
+ break;
+ case IPU_PIX_FMT_YVU422P:
+ /* BPP & pixel format */
+ params[7] |= 3 | (2UL << 17) | (7 << (89 - 64));
+ params[8] = 2; /* SAT = 32-bit access */
+ v_offset = (v == 0) ? stride * height : v;
+ u_offset = (u == 0) ? v_offset + v_offset / 2 : u;
+ break;
+ case IPU_PIX_FMT_YUV422P:
+ /* BPP & pixel format */
+ params[7] |= 3 | (2UL << 17) | (7 << (89 - 64));
+ params[8] = 2; /* SAT = 32-bit access */
+ u_offset = (u == 0) ? stride * height : u;
+ v_offset = (v == 0) ? u_offset + u_offset / 2 : v;
+ break;
+ default:
+ dev_err(g_ipu_dev, "mxc ipu: unimplemented pixel format\n");
+ break;
+ }
+
+ params[1] = (1UL << (46 - 32)) | (u_offset << (53 - 32));
+ params[2] = u_offset >> (64 - 53);
+ params[2] |= v_offset << (79 - 64);
+ params[3] |= v_offset >> (96 - 79);
+}
+
+static __inline void _ipu_ch_param_set_burst_size(uint32_t *params,
+ uint16_t burst_pixels)
+{
+ params[7] &= ~(0x3FL << (89 - 64));
+ params[7] |= (uint32_t) (burst_pixels - 1) << (89 - 64);
+};
+
+static __inline void _ipu_ch_param_set_buffer(uint32_t *params,
+ dma_addr_t buf0, dma_addr_t buf1)
+{
+ params[5] = buf0;
+ params[6] = buf1;
+};
+
+static __inline void _ipu_ch_param_set_rotation(uint32_t *params,
+ ipu_rotate_mode_t rot)
+{
+ params[7] |= (uint32_t) rot << (84 - 64);
+};
+
+void _ipu_write_param_mem(uint32_t addr, uint32_t *data, uint32_t numWords);
+
+#endif
diff --git a/drivers/mxc/ipu/ipu_prv.h b/drivers/mxc/ipu/ipu_prv.h
new file mode 100644
index 000000000000..03450de968e6
--- /dev/null
+++ b/drivers/mxc/ipu/ipu_prv.h
@@ -0,0 +1,59 @@
+/*
+ * Copyright 2005-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+#ifndef __INCLUDE_IPU_PRV_H__
+#define __INCLUDE_IPU_PRV_H__
+
+#include <linux/types.h>
+#include <linux/device.h>
+#include <linux/clk.h>
+#include <linux/interrupt.h>
+#include <mach/hardware.h>
+
+/* Globals */
+extern struct device *g_ipu_dev;
+extern spinlock_t ipu_lock;
+extern struct clk *g_ipu_clk;
+extern struct clk *g_ipu_csi_clk;
+
+int register_ipu_device(void);
+ipu_color_space_t format_to_colorspace(uint32_t fmt);
+
+uint32_t _ipu_channel_status(ipu_channel_t channel);
+
+void _ipu_sdc_fg_init(ipu_channel_params_t *params);
+uint32_t _ipu_sdc_fg_uninit(void);
+void _ipu_sdc_bg_init(ipu_channel_params_t *params);
+uint32_t _ipu_sdc_bg_uninit(void);
+
+void _ipu_ic_enable_task(ipu_channel_t channel);
+void _ipu_ic_disable_task(ipu_channel_t channel);
+void _ipu_ic_init_prpvf(ipu_channel_params_t *params, bool src_is_csi);
+void _ipu_ic_uninit_prpvf(void);
+void _ipu_ic_init_rotate_vf(ipu_channel_params_t *params);
+void _ipu_ic_uninit_rotate_vf(void);
+void _ipu_ic_init_csi(ipu_channel_params_t *params);
+void _ipu_ic_uninit_csi(void);
+void _ipu_ic_init_prpenc(ipu_channel_params_t *params, bool src_is_csi);
+void _ipu_ic_uninit_prpenc(void);
+void _ipu_ic_init_rotate_enc(ipu_channel_params_t *params);
+void _ipu_ic_uninit_rotate_enc(void);
+void _ipu_ic_init_pp(ipu_channel_params_t *params);
+void _ipu_ic_uninit_pp(void);
+void _ipu_ic_init_rotate_pp(ipu_channel_params_t *params);
+void _ipu_ic_uninit_rotate_pp(void);
+
+int32_t _ipu_adc_init_channel(ipu_channel_t chan, display_port_t disp,
+ mcu_mode_t cmd, int16_t x_pos, int16_t y_pos);
+int32_t _ipu_adc_uninit_channel(ipu_channel_t chan);
+
+#endif /* __INCLUDE_IPU_PRV_H__ */
diff --git a/drivers/mxc/ipu/ipu_regs.h b/drivers/mxc/ipu/ipu_regs.h
new file mode 100644
index 000000000000..d78df52a9785
--- /dev/null
+++ b/drivers/mxc/ipu/ipu_regs.h
@@ -0,0 +1,396 @@
+/*
+ * Copyright 2005-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*
+ * @file ipu_regs.h
+ *
+ * @brief IPU Register definitions
+ *
+ * @ingroup IPU
+ */
+#ifndef __IPU_REGS_INCLUDED__
+#define __IPU_REGS_INCLUDED__
+
+#define IPU_REG_BASE IO_ADDRESS(IPU_CTRL_BASE_ADDR)
+
+/* Register addresses */
+/* IPU Common registers */
+#define IPU_CONF (IPU_REG_BASE + 0x0000)
+#define IPU_CHA_BUF0_RDY (IPU_REG_BASE + 0x0004)
+#define IPU_CHA_BUF1_RDY (IPU_REG_BASE + 0x0008)
+#define IPU_CHA_DB_MODE_SEL (IPU_REG_BASE + 0x000C)
+#define IPU_CHA_CUR_BUF (IPU_REG_BASE + 0x0010)
+#define IPU_FS_PROC_FLOW (IPU_REG_BASE + 0x0014)
+#define IPU_FS_DISP_FLOW (IPU_REG_BASE + 0x0018)
+#define IPU_TASKS_STAT (IPU_REG_BASE + 0x001C)
+#define IPU_IMA_ADDR (IPU_REG_BASE + 0x0020)
+#define IPU_IMA_DATA (IPU_REG_BASE + 0x0024)
+#define IPU_INT_CTRL_1 (IPU_REG_BASE + 0x0028)
+#define IPU_INT_CTRL_2 (IPU_REG_BASE + 0x002C)
+#define IPU_INT_CTRL_3 (IPU_REG_BASE + 0x0030)
+#define IPU_INT_CTRL_4 (IPU_REG_BASE + 0x0034)
+#define IPU_INT_CTRL_5 (IPU_REG_BASE + 0x0038)
+#define IPU_INT_STAT_1 (IPU_REG_BASE + 0x003C)
+#define IPU_INT_STAT_2 (IPU_REG_BASE + 0x0040)
+#define IPU_INT_STAT_3 (IPU_REG_BASE + 0x0044)
+#define IPU_INT_STAT_4 (IPU_REG_BASE + 0x0048)
+#define IPU_INT_STAT_5 (IPU_REG_BASE + 0x004C)
+#define IPU_BRK_CTRL_1 (IPU_REG_BASE + 0x0050)
+#define IPU_BRK_CTRL_2 (IPU_REG_BASE + 0x0054)
+#define IPU_BRK_STAT (IPU_REG_BASE + 0x0058)
+#define IPU_DIAGB_CTRL (IPU_REG_BASE + 0x005C)
+/* CMOS Sensor Interface Registers */
+#define CSI_SENS_CONF (IPU_REG_BASE + 0x0060)
+#define CSI_SENS_FRM_SIZE (IPU_REG_BASE + 0x0064)
+#define CSI_ACT_FRM_SIZE (IPU_REG_BASE + 0x0068)
+#define CSI_OUT_FRM_CTRL (IPU_REG_BASE + 0x006C)
+#define CSI_TST_CTRL (IPU_REG_BASE + 0x0070)
+#define CSI_CCIR_CODE_1 (IPU_REG_BASE + 0x0074)
+#define CSI_CCIR_CODE_2 (IPU_REG_BASE + 0x0078)
+#define CSI_CCIR_CODE_3 (IPU_REG_BASE + 0x007C)
+#define CSI_FLASH_STROBE_1 (IPU_REG_BASE + 0x0080)
+#define CSI_FLASH_STROBE_2 (IPU_REG_BASE + 0x0084)
+/* Image Converter Registers */
+#define IC_CONF (IPU_REG_BASE + 0x0088)
+#define IC_PRP_ENC_RSC (IPU_REG_BASE + 0x008C)
+#define IC_PRP_VF_RSC (IPU_REG_BASE + 0x0090)
+#define IC_PP_RSC (IPU_REG_BASE + 0x0094)
+#define IC_CMBP_1 (IPU_REG_BASE + 0x0098)
+#define IC_CMBP_2 (IPU_REG_BASE + 0x009C)
+#define PF_CONF (IPU_REG_BASE + 0x00A0)
+#define IDMAC_CONF (IPU_REG_BASE + 0x00A4)
+#define IDMAC_CHA_EN (IPU_REG_BASE + 0x00A8)
+#define IDMAC_CHA_PRI (IPU_REG_BASE + 0x00AC)
+#define IDMAC_CHA_BUSY (IPU_REG_BASE + 0x00B0)
+/* SDC Registers */
+#define SDC_COM_CONF (IPU_REG_BASE + 0x00B4)
+#define SDC_GW_CTRL (IPU_REG_BASE + 0x00B8)
+#define SDC_FG_POS (IPU_REG_BASE + 0x00BC)
+#define SDC_BG_POS (IPU_REG_BASE + 0x00C0)
+#define SDC_CUR_POS (IPU_REG_BASE + 0x00C4)
+#define SDC_PWM_CTRL (IPU_REG_BASE + 0x00C8)
+#define SDC_CUR_MAP (IPU_REG_BASE + 0x00CC)
+#define SDC_HOR_CONF (IPU_REG_BASE + 0x00D0)
+#define SDC_VER_CONF (IPU_REG_BASE + 0x00D4)
+#define SDC_SHARP_CONF_1 (IPU_REG_BASE + 0x00D8)
+#define SDC_SHARP_CONF_2 (IPU_REG_BASE + 0x00DC)
+/* ADC Registers */
+#define ADC_CONF (IPU_REG_BASE + 0x00E0)
+#define ADC_SYSCHA1_SA (IPU_REG_BASE + 0x00E4)
+#define ADC_SYSCHA2_SA (IPU_REG_BASE + 0x00E8)
+#define ADC_PRPCHAN_SA (IPU_REG_BASE + 0x00EC)
+#define ADC_PPCHAN_SA (IPU_REG_BASE + 0x00F0)
+#define ADC_DISP0_CONF (IPU_REG_BASE + 0x00F4)
+#define ADC_DISP0_RD_AP (IPU_REG_BASE + 0x00F8)
+#define ADC_DISP0_RDM (IPU_REG_BASE + 0x00FC)
+#define ADC_DISP0_SS (IPU_REG_BASE + 0x0100)
+#define ADC_DISP1_CONF (IPU_REG_BASE + 0x0104)
+#define ADC_DISP1_RD_AP (IPU_REG_BASE + 0x0108)
+#define ADC_DISP1_RDM (IPU_REG_BASE + 0x010C)
+#define ADC_DISP12_SS (IPU_REG_BASE + 0x0110)
+#define ADC_DISP2_CONF (IPU_REG_BASE + 0x0114)
+#define ADC_DISP2_RD_AP (IPU_REG_BASE + 0x0118)
+#define ADC_DISP2_RDM (IPU_REG_BASE + 0x011C)
+#define ADC_DISP_VSYNC (IPU_REG_BASE + 0x0120)
+/* Display Interface re(sters */
+#define DI_DISP_IF_CONF (IPU_REG_BASE + 0x0124)
+#define DI_DISP_SIG_POL (IPU_REG_BASE + 0x0128)
+#define DI_SER_DISP1_CONF (IPU_REG_BASE + 0x012C)
+#define DI_SER_DISP2_CONF (IPU_REG_BASE + 0x0130)
+#define DI_HSP_CLK_PER (IPU_REG_BASE + 0x0134)
+#define DI_DISP0_TIME_CONF_1 (IPU_REG_BASE + 0x0138)
+#define DI_DISP0_TIME_CONF_2 (IPU_REG_BASE + 0x013C)
+#define DI_DISP0_TIME_CONF_3 (IPU_REG_BASE + 0x0140)
+#define DI_DISP1_TIME_CONF_1 (IPU_REG_BASE + 0x0144)
+#define DI_DISP1_TIME_CONF_2 (IPU_REG_BASE + 0x0148)
+#define DI_DISP1_TIME_CONF_3 (IPU_REG_BASE + 0x014C)
+#define DI_DISP2_TIME_CONF_1 (IPU_REG_BASE + 0x0150)
+#define DI_DISP2_TIME_CONF_2 (IPU_REG_BASE + 0x0154)
+#define DI_DISP2_TIME_CONF_3 (IPU_REG_BASE + 0x0158)
+#define DI_DISP3_TIME_CONF (IPU_REG_BASE + 0x015C)
+#define DI_DISP0_DB0_MAP (IPU_REG_BASE + 0x0160)
+#define DI_DISP0_DB1_MAP (IPU_REG_BASE + 0x0164)
+#define DI_DISP0_DB2_MAP (IPU_REG_BASE + 0x0168)
+#define DI_DISP0_CB0_MAP (IPU_REG_BASE + 0x016C)
+#define DI_DISP0_CB1_MAP (IPU_REG_BASE + 0x0170)
+#define DI_DISP0_CB2_MAP (IPU_REG_BASE + 0x0174)
+#define DI_DISP1_DB0_MAP (IPU_REG_BASE + 0x0178)
+#define DI_DISP1_DB1_MAP (IPU_REG_BASE + 0x017C)
+#define DI_DISP1_DB2_MAP (IPU_REG_BASE + 0x0180)
+#define DI_DISP1_CB0_MAP (IPU_REG_BASE + 0x0184)
+#define DI_DISP1_CB1_MAP (IPU_REG_BASE + 0x0188)
+#define DI_DISP1_CB2_MAP (IPU_REG_BASE + 0x018C)
+#define DI_DISP2_DB0_MAP (IPU_REG_BASE + 0x0190)
+#define DI_DISP2_DB1_MAP (IPU_REG_BASE + 0x0194)
+#define DI_DISP2_DB2_MAP (IPU_REG_BASE + 0x0198)
+#define DI_DISP2_CB0_MAP (IPU_REG_BASE + 0x019C)
+#define DI_DISP2_CB1_MAP (IPU_REG_BASE + 0x01A0)
+#define DI_DISP2_CB2_MAP (IPU_REG_BASE + 0x01A4)
+#define DI_DISP3_B0_MAP (IPU_REG_BASE + 0x01A8)
+#define DI_DISP3_B1_MAP (IPU_REG_BASE + 0x01AC)
+#define DI_DISP3_B2_MAP (IPU_REG_BASE + 0x01B0)
+#define DI_DISP_ACC_CC (IPU_REG_BASE + 0x01B4)
+#define DI_DISP_LLA_CONF (IPU_REG_BASE + 0x01B8)
+#define DI_DISP_LLA_DATA (IPU_REG_BASE + 0x01BC)
+
+#define IPUIRQ_2_STATREG(int) (IPU_INT_STAT_1 + 4*(int>>5))
+#define IPUIRQ_2_CTRLREG(int) (IPU_INT_CTRL_1 + 4*(int>>5))
+#define IPUIRQ_2_MASK(int) (1UL << (int & 0x1F))
+
+enum {
+ IPU_CONF_CSI_EN = 0x00000001,
+ IPU_CONF_IC_EN = 0x00000002,
+ IPU_CONF_ROT_EN = 0x00000004,
+ IPU_CONF_PF_EN = 0x00000008,
+ IPU_CONF_SDC_EN = 0x00000010,
+ IPU_CONF_ADC_EN = 0x00000020,
+ IPU_CONF_DI_EN = 0x00000040,
+ IPU_CONF_DU_EN = 0x00000080,
+ IPU_CONF_PXL_ENDIAN = 0x00000100,
+
+ FS_PRPVF_ROT_SRC_SEL = 0x00000040,
+ FS_PRPENC_ROT_SRC_SEL = 0x00000020,
+ FS_PRPENC_DEST_SEL = 0x00000010,
+ FS_PP_SRC_SEL_MASK = 0x00000300,
+ FS_PP_SRC_SEL_OFFSET = 8,
+ FS_PP_ROT_SRC_SEL_MASK = 0x00000C00,
+ FS_PP_ROT_SRC_SEL_OFFSET = 10,
+ FS_PF_DEST_SEL_MASK = 0x00003000,
+ FS_PF_DEST_SEL_OFFSET = 12,
+ FS_PRPVF_DEST_SEL_MASK = 0x00070000,
+ FS_PRPVF_DEST_SEL_OFFSET = 16,
+ FS_PRPVF_ROT_DEST_SEL_MASK = 0x00700000,
+ FS_PRPVF_ROT_DEST_SEL_OFFSET = 20,
+ FS_PP_DEST_SEL_MASK = 0x07000000,
+ FS_PP_DEST_SEL_OFFSET = 24,
+ FS_PP_ROT_DEST_SEL_MASK = 0x70000000,
+ FS_PP_ROT_DEST_SEL_OFFSET = 28,
+ FS_VF_IN_VALID = 0x00000002,
+ FS_ENC_IN_VALID = 0x00000001,
+
+ FS_SDC_BG_SRC_SEL_MASK = 0x00000007,
+ FS_SDC_BG_SRC_SEL_OFFSET = 0,
+ FS_SDC_FG_SRC_SEL_MASK = 0x00000070,
+ FS_SDC_FG_SRC_SEL_OFFSET = 4,
+ FS_ADC1_SRC_SEL_MASK = 0x00000700,
+ FS_ADC1_SRC_SEL_OFFSET = 8,
+ FS_ADC2_SRC_SEL_MASK = 0x00007000,
+ FS_ADC2_SRC_SEL_OFFSET = 12,
+ FS_AUTO_REF_PER_MASK = 0x03FF0000,
+ FS_AUTO_REF_PER_OFFSET = 16,
+
+ FS_DEST_ARM = 0,
+ FS_DEST_ROT = 1,
+ FS_DEST_PP = 1,
+ FS_DEST_ADC1 = 2,
+ FS_DEST_ADC2 = 3,
+ FS_DEST_SDC_BG = 4,
+ FS_DEST_SDC_FG = 5,
+ FS_DEST_ADC = 6,
+
+ FS_SRC_ARM = 0,
+ FS_PP_SRC_PF = 1,
+ FS_PP_SRC_ROT = 2,
+
+ FS_ROT_SRC_PP = 1,
+ FS_ROT_SRC_PF = 2,
+
+ FS_PF_DEST_PP = 1,
+ FS_PF_DEST_ROT = 2,
+
+ FS_SRC_ROT_VF = 1,
+ FS_SRC_ROT_PP = 2,
+ FS_SRC_VF = 3,
+ FS_SRC_PP = 4,
+ FS_SRC_SNOOP = 5,
+ FS_SRC_AUTOREF = 6,
+ FS_SRC_AUTOREF_SNOOP = 7,
+
+ TSTAT_PF_H264_PAUSE = 0x00000001,
+ TSTAT_CSI2MEM_MASK = 0x0000000C,
+ TSTAT_CSI2MEM_OFFSET = 2,
+ TSTAT_VF_MASK = 0x00000600,
+ TSTAT_VF_OFFSET = 9,
+ TSTAT_VF_ROT_MASK = 0x000C0000,
+ TSTAT_VF_ROT_OFFSET = 18,
+ TSTAT_ENC_MASK = 0x00000180,
+ TSTAT_ENC_OFFSET = 7,
+ TSTAT_ENC_ROT_MASK = 0x00030000,
+ TSTAT_ENC_ROT_OFFSET = 16,
+ TSTAT_PP_MASK = 0x00001800,
+ TSTAT_PP_OFFSET = 11,
+ TSTAT_PP_ROT_MASK = 0x00300000,
+ TSTAT_PP_ROT_OFFSET = 20,
+ TSTAT_PF_MASK = 0x00C00000,
+ TSTAT_PF_OFFSET = 22,
+ TSTAT_ADCSYS1_MASK = 0x03000000,
+ TSTAT_ADCSYS1_OFFSET = 24,
+ TSTAT_ADCSYS2_MASK = 0x0C000000,
+ TSTAT_ADCSYS2_OFFSET = 26,
+
+ TASK_STAT_IDLE = 0,
+ TASK_STAT_ACTIVE = 1,
+ TASK_STAT_WAIT4READY = 2,
+
+ /* Register bits */
+ SDC_COM_TFT_COLOR = 0x00000001UL,
+ SDC_COM_FG_EN = 0x00000010UL,
+ SDC_COM_GWSEL = 0x00000020UL,
+ SDC_COM_GLB_A = 0x00000040UL,
+ SDC_COM_KEY_COLOR_G = 0x00000080UL,
+ SDC_COM_BG_EN = 0x00000200UL,
+ SDC_COM_SHARP = 0x00001000UL,
+
+ SDC_V_SYNC_WIDTH_L = 0x00000001UL,
+
+ ADC_CONF_PRP_EN = 0x00000001L,
+ ADC_CONF_PP_EN = 0x00000002L,
+ ADC_CONF_MCU_EN = 0x00000004L,
+
+ ADC_DISP_CONF_SL_MASK = 0x00000FFFL,
+ ADC_DISP_CONF_TYPE_MASK = 0x00003000L,
+ ADC_DISP_CONF_TYPE_XY = 0x00002000L,
+
+ ADC_DISP_VSYNC_D0_MODE_MASK = 0x00000003L,
+ ADC_DISP_VSYNC_D0_WIDTH_MASK = 0x003F0000L,
+ ADC_DISP_VSYNC_D12_MODE_MASK = 0x0000000CL,
+ ADC_DISP_VSYNC_D12_WIDTH_MASK = 0x3F000000L,
+
+ /* Image Converter Register bits */
+ IC_CONF_PRPENC_EN = 0x00000001,
+ IC_CONF_PRPENC_CSC1 = 0x00000002,
+ IC_CONF_PRPENC_ROT_EN = 0x00000004,
+ IC_CONF_PRPVF_EN = 0x00000100,
+ IC_CONF_PRPVF_CSC1 = 0x00000200,
+ IC_CONF_PRPVF_CSC2 = 0x00000400,
+ IC_CONF_PRPVF_CMB = 0x00000800,
+ IC_CONF_PRPVF_ROT_EN = 0x00001000,
+ IC_CONF_PP_EN = 0x00010000,
+ IC_CONF_PP_CSC1 = 0x00020000,
+ IC_CONF_PP_CSC2 = 0x00040000,
+ IC_CONF_PP_CMB = 0x00080000,
+ IC_CONF_PP_ROT_EN = 0x00100000,
+ IC_CONF_IC_GLB_LOC_A = 0x10000000,
+ IC_CONF_KEY_COLOR_EN = 0x20000000,
+ IC_CONF_RWS_EN = 0x40000000,
+ IC_CONF_CSI_MEM_WR_EN = 0x80000000,
+
+ IDMA_CHAN_INVALID = 0x000000FF,
+ IDMA_IC_0 = 0x00000001,
+ IDMA_IC_1 = 0x00000002,
+ IDMA_IC_2 = 0x00000004,
+ IDMA_IC_3 = 0x00000008,
+ IDMA_IC_4 = 0x00000010,
+ IDMA_IC_5 = 0x00000020,
+ IDMA_IC_6 = 0x00000040,
+ IDMA_IC_7 = 0x00000080,
+ IDMA_IC_8 = 0x00000100,
+ IDMA_IC_9 = 0x00000200,
+ IDMA_IC_10 = 0x00000400,
+ IDMA_IC_11 = 0x00000800,
+ IDMA_IC_12 = 0x00001000,
+ IDMA_IC_13 = 0x00002000,
+ IDMA_SDC_BG = 0x00004000,
+ IDMA_SDC_FG = 0x00008000,
+ IDMA_SDC_MASK = 0x00010000,
+ IDMA_SDC_PARTIAL = 0x00020000,
+ IDMA_ADC_SYS1_WR = 0x00040000,
+ IDMA_ADC_SYS2_WR = 0x00080000,
+ IDMA_ADC_SYS1_CMD = 0x00100000,
+ IDMA_ADC_SYS2_CMD = 0x00200000,
+ IDMA_ADC_SYS1_RD = 0x00400000,
+ IDMA_ADC_SYS2_RD = 0x00800000,
+ IDMA_PF_QP = 0x01000000,
+ IDMA_PF_BSP = 0x02000000,
+ IDMA_PF_Y_IN = 0x04000000,
+ IDMA_PF_U_IN = 0x08000000,
+ IDMA_PF_V_IN = 0x10000000,
+ IDMA_PF_Y_OUT = 0x20000000,
+ IDMA_PF_U_OUT = 0x40000000,
+ IDMA_PF_V_OUT = 0x80000000,
+
+ CSI_SENS_CONF_DATA_FMT_SHIFT = 8,
+ CSI_SENS_CONF_DATA_FMT_RGB_YUV444 = 0x00000000L,
+ CSI_SENS_CONF_DATA_FMT_YUV422 = 0x00000200L,
+ CSI_SENS_CONF_DATA_FMT_BAYER = 0x00000300L,
+
+ CSI_SENS_CONF_VSYNC_POL_SHIFT = 0,
+ CSI_SENS_CONF_HSYNC_POL_SHIFT = 1,
+ CSI_SENS_CONF_DATA_POL_SHIFT = 2,
+ CSI_SENS_CONF_PIX_CLK_POL_SHIFT = 3,
+ CSI_SENS_CONF_SENS_PRTCL_SHIFT = 4,
+ CSI_SENS_CONF_SENS_CLKSRC_SHIFT = 7,
+ CSI_SENS_CONF_DATA_WIDTH_SHIFT = 10,
+ CSI_SENS_CONF_EXT_VSYNC_SHIFT = 15,
+ CSI_SENS_CONF_DIVRATIO_SHIFT = 16,
+
+ PF_CONF_TYPE_MASK = 0x00000007,
+ PF_CONF_TYPE_SHIFT = 0,
+ PF_CONF_PAUSE_EN = 0x00000010,
+ PF_CONF_RESET = 0x00008000,
+ PF_CONF_PAUSE_ROW_MASK = 0x00FF0000,
+ PF_CONF_PAUSE_ROW_SHIFT = 16,
+
+ /* DI_DISP_SIG_POL bits */
+ DI_D3_VSYNC_POL_SHIFT = 28,
+ DI_D3_HSYNC_POL_SHIFT = 27,
+ DI_D3_DRDY_SHARP_POL_SHIFT = 26,
+ DI_D3_CLK_POL_SHIFT = 25,
+ DI_D3_DATA_POL_SHIFT = 24,
+
+ /* DI_DISP_IF_CONF bits */
+ DI_D3_CLK_IDLE_SHIFT = 26,
+ DI_D3_CLK_SEL_SHIFT = 25,
+ DI_D3_DATAMSK_SHIFT = 24,
+
+ DISPx_IF_CLK_DOWN_OFFSET = 22,
+ DISPx_IF_CLK_UP_OFFSET = 12,
+ DISPx_IF_CLK_PER_OFFSET = 0,
+ DISPx_IF_CLK_READ_EN_OFFSET = 16,
+ DISPx_PIX_CLK_PER_OFFSET = 0,
+
+ DI_CONF_DISP0_EN = 0x00000001L,
+ DI_CONF_DISP0_IF_MODE_OFFSET = 1,
+ DI_CONF_DISP0_BURST_MODE_OFFSET = 3,
+ DI_CONF_DISP1_EN = 0x00000100L,
+ DI_CONF_DISP1_IF_MODE_OFFSET = 9,
+ DI_CONF_DISP1_BURST_MODE_OFFSET = 12,
+ DI_CONF_DISP2_EN = 0x00010000L,
+ DI_CONF_DISP2_IF_MODE_OFFSET = 17,
+ DI_CONF_DISP2_BURST_MODE_OFFSET = 20,
+
+ DI_SER_DISPx_CONF_SER_BIT_NUM_OFFSET = 16,
+ DI_SER_DISPx_CONF_PREAMBLE_OFFSET = 8,
+ DI_SER_DISPx_CONF_PREAMBLE_LEN_OFFSET = 4,
+ DI_SER_DISPx_CONF_RW_CFG_OFFSET = 1,
+ DI_SER_DISPx_CONF_BURST_MODE_EN = 0x01000000L,
+ DI_SER_DISPx_CONF_PREAMBLE_EN = 0x00000001L,
+
+ /* DI_DISP_ACC_CC */
+ DISP0_IF_CLK_CNT_D_MASK = 0x00000003L,
+ DISP0_IF_CLK_CNT_D_OFFSET = 0,
+ DISP0_IF_CLK_CNT_C_MASK = 0x0000000CL,
+ DISP0_IF_CLK_CNT_C_OFFSET = 2,
+ DISP1_IF_CLK_CNT_D_MASK = 0x00000030L,
+ DISP1_IF_CLK_CNT_D_OFFSET = 4,
+ DISP1_IF_CLK_CNT_C_MASK = 0x000000C0L,
+ DISP1_IF_CLK_CNT_C_OFFSET = 6,
+ DISP2_IF_CLK_CNT_D_MASK = 0x00000300L,
+ DISP2_IF_CLK_CNT_D_OFFSET = 8,
+ DISP2_IF_CLK_CNT_C_MASK = 0x00000C00L,
+ DISP2_IF_CLK_CNT_C_OFFSET = 10,
+ DISP3_IF_CLK_CNT_MASK = 0x00003000L,
+ DISP3_IF_CLK_CNT_OFFSET = 12,
+};
+
+#endif
diff --git a/drivers/mxc/ipu/ipu_sdc.c b/drivers/mxc/ipu/ipu_sdc.c
new file mode 100644
index 000000000000..946d793e30de
--- /dev/null
+++ b/drivers/mxc/ipu/ipu_sdc.c
@@ -0,0 +1,357 @@
+/*
+ * Copyright 2005-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file ipu_sdc.c
+ *
+ * @brief IPU SDC submodule API functions
+ *
+ * @ingroup IPU
+ */
+#include <linux/types.h>
+#include <linux/errno.h>
+#include <linux/spinlock.h>
+#include <linux/io.h>
+#include <linux/ipu.h>
+#include "ipu_prv.h"
+#include "ipu_regs.h"
+#include "ipu_param_mem.h"
+
+static uint32_t g_h_start_width;
+static uint32_t g_v_start_width;
+
+static const uint32_t di_mappings[] = {
+ 0x1600AAAA, 0x00E05555, 0x00070000, 3, /* RGB888 */
+ 0x0005000F, 0x000B000F, 0x0011000F, 1, /* RGB666 */
+ 0x0011000F, 0x000B000F, 0x0005000F, 1, /* BGR666 */
+ 0x0004003F, 0x000A000F, 0x000F003F, 1 /* RGB565 */
+};
+
+/*!
+ * This function is called to initialize a synchronous LCD panel.
+ *
+ * @param panel The type of panel.
+ *
+ * @param pixel_clk Desired pixel clock frequency in Hz.
+ *
+ * @param pixel_fmt Input parameter for pixel format of buffer. Pixel
+ * format is a FOURCC ASCII code.
+ *
+ * @param width The width of panel in pixels.
+ *
+ * @param height The height of panel in pixels.
+ *
+ * @param hStartWidth The number of pixel clocks between the HSYNC
+ * signal pulse and the start of valid data.
+ *
+ * @param hSyncWidth The width of the HSYNC signal in units of pixel
+ * clocks.
+ *
+ * @param hEndWidth The number of pixel clocks between the end of
+ * valid data and the HSYNC signal for next line.
+ *
+ * @param vStartWidth The number of lines between the VSYNC
+ * signal pulse and the start of valid data.
+ *
+ * @param vSyncWidth The width of the VSYNC signal in units of lines
+ *
+ * @param vEndWidth The number of lines between the end of valid
+ * data and the VSYNC signal for next frame.
+ *
+ * @param sig Bitfield of signal polarities for LCD interface.
+ *
+ * @return This function returns 0 on success or negative error code on
+ * fail.
+ */
+int32_t ipu_sdc_init_panel(ipu_panel_t panel,
+ uint32_t pixel_clk,
+ uint16_t width, uint16_t height,
+ uint32_t pixel_fmt,
+ uint16_t h_start_width, uint16_t h_sync_width,
+ uint16_t h_end_width, uint16_t v_start_width,
+ uint16_t v_sync_width, uint16_t v_end_width,
+ ipu_di_signal_cfg_t sig)
+{
+ unsigned long lock_flags;
+ uint32_t reg;
+ uint32_t old_conf;
+ uint32_t div;
+
+ dev_dbg(g_ipu_dev, "panel size = %d x %d\n", width, height);
+
+ if ((v_sync_width == 0) || (h_sync_width == 0))
+ return EINVAL;
+
+ /* Init panel size and blanking periods */
+ reg =
+ ((uint32_t) (h_sync_width - 1) << 26) |
+ ((uint32_t) (width + h_sync_width + h_start_width + h_end_width - 1)
+ << 16);
+ __raw_writel(reg, SDC_HOR_CONF);
+
+ reg = ((uint32_t) (v_sync_width - 1) << 26) | SDC_V_SYNC_WIDTH_L |
+ ((uint32_t)
+ (height + v_sync_width + v_start_width + v_end_width - 1) << 16);
+ __raw_writel(reg, SDC_VER_CONF);
+
+ g_h_start_width = h_start_width + h_sync_width;
+ g_v_start_width = v_start_width + v_sync_width;
+
+ switch (panel) {
+ case IPU_PANEL_SHARP_TFT:
+ __raw_writel(0x00FD0102L, SDC_SHARP_CONF_1);
+ __raw_writel(0x00F500F4L, SDC_SHARP_CONF_2);
+ __raw_writel(SDC_COM_SHARP | SDC_COM_TFT_COLOR, SDC_COM_CONF);
+ break;
+ case IPU_PANEL_TFT:
+ __raw_writel(SDC_COM_TFT_COLOR, SDC_COM_CONF);
+ break;
+ default:
+ return EINVAL;
+ }
+
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+
+ /* Init clocking */
+
+ /* Calculate divider */
+ /* fractional part is 4 bits so simply multiple by 2^4 to get fractional part */
+ dev_dbg(g_ipu_dev, "pixel clk = %d\n", pixel_clk);
+ div = (clk_get_rate(g_ipu_clk) * 16) / pixel_clk;
+ if (div < 0x40) { /* Divider less than 4 */
+ dev_dbg(g_ipu_dev,
+ "InitPanel() - Pixel clock divider less than 1\n");
+ div = 0x40;
+ }
+ /* DISP3_IF_CLK_DOWN_WR is half the divider value and 2 less fraction bits */
+ /* Subtract 1 extra from DISP3_IF_CLK_DOWN_WR based on timing debug */
+ /* DISP3_IF_CLK_UP_WR is 0 */
+ __raw_writel((((div / 8) - 1) << 22) | div, DI_DISP3_TIME_CONF);
+
+ /* DI settings */
+ old_conf = __raw_readl(DI_DISP_IF_CONF) & 0x78FFFFFF;
+ old_conf |= sig.datamask_en << DI_D3_DATAMSK_SHIFT |
+ sig.clksel_en << DI_D3_CLK_SEL_SHIFT |
+ sig.clkidle_en << DI_D3_CLK_IDLE_SHIFT;
+ __raw_writel(old_conf, DI_DISP_IF_CONF);
+
+ old_conf = __raw_readl(DI_DISP_SIG_POL) & 0xE0FFFFFF;
+ old_conf |= sig.data_pol << DI_D3_DATA_POL_SHIFT |
+ sig.clk_pol << DI_D3_CLK_POL_SHIFT |
+ sig.enable_pol << DI_D3_DRDY_SHARP_POL_SHIFT |
+ sig.Hsync_pol << DI_D3_HSYNC_POL_SHIFT |
+ sig.Vsync_pol << DI_D3_VSYNC_POL_SHIFT;
+ __raw_writel(old_conf, DI_DISP_SIG_POL);
+
+ switch (pixel_fmt) {
+ case IPU_PIX_FMT_RGB24:
+ __raw_writel(di_mappings[0], DI_DISP3_B0_MAP);
+ __raw_writel(di_mappings[1], DI_DISP3_B1_MAP);
+ __raw_writel(di_mappings[2], DI_DISP3_B2_MAP);
+ __raw_writel(__raw_readl(DI_DISP_ACC_CC) |
+ ((di_mappings[3] - 1) << 12), DI_DISP_ACC_CC);
+ break;
+ case IPU_PIX_FMT_RGB666:
+ __raw_writel(di_mappings[4], DI_DISP3_B0_MAP);
+ __raw_writel(di_mappings[5], DI_DISP3_B1_MAP);
+ __raw_writel(di_mappings[6], DI_DISP3_B2_MAP);
+ __raw_writel(__raw_readl(DI_DISP_ACC_CC) |
+ ((di_mappings[7] - 1) << 12), DI_DISP_ACC_CC);
+ break;
+ case IPU_PIX_FMT_BGR666:
+ __raw_writel(di_mappings[8], DI_DISP3_B0_MAP);
+ __raw_writel(di_mappings[9], DI_DISP3_B1_MAP);
+ __raw_writel(di_mappings[10], DI_DISP3_B2_MAP);
+ __raw_writel(__raw_readl(DI_DISP_ACC_CC) |
+ ((di_mappings[11] - 1) << 12), DI_DISP_ACC_CC);
+ break;
+ default:
+ __raw_writel(di_mappings[12], DI_DISP3_B0_MAP);
+ __raw_writel(di_mappings[13], DI_DISP3_B1_MAP);
+ __raw_writel(di_mappings[14], DI_DISP3_B2_MAP);
+ __raw_writel(__raw_readl(DI_DISP_ACC_CC) |
+ ((di_mappings[15] - 1) << 12), DI_DISP_ACC_CC);
+ break;
+ }
+
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+
+ dev_dbg(g_ipu_dev, "DI_DISP_IF_CONF = 0x%08X\n",
+ __raw_readl(DI_DISP_IF_CONF));
+ dev_dbg(g_ipu_dev, "DI_DISP_SIG_POL = 0x%08X\n",
+ __raw_readl(DI_DISP_SIG_POL));
+ dev_dbg(g_ipu_dev, "DI_DISP3_TIME_CONF = 0x%08X\n",
+ __raw_readl(DI_DISP3_TIME_CONF));
+
+ return 0;
+}
+
+/*!
+ * This function sets the foreground and background plane global alpha blending
+ * modes.
+ *
+ * @param enable Boolean to enable or disable global alpha
+ * blending. If disabled, per pixel blending is used.
+ *
+ * @param alpha Global alpha value.
+ *
+ * @return This function returns 0 on success or negative error code on fail
+ */
+int32_t ipu_sdc_set_global_alpha(bool enable, uint8_t alpha)
+{
+ uint32_t reg;
+ unsigned long lock_flags;
+
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+
+ if (enable) {
+ reg = __raw_readl(SDC_GW_CTRL) & 0x00FFFFFFL;
+ __raw_writel(reg | ((uint32_t) alpha << 24), SDC_GW_CTRL);
+
+ reg = __raw_readl(SDC_COM_CONF);
+ __raw_writel(reg | SDC_COM_GLB_A, SDC_COM_CONF);
+ } else {
+ reg = __raw_readl(SDC_COM_CONF);
+ __raw_writel(reg & ~SDC_COM_GLB_A, SDC_COM_CONF);
+ }
+
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+
+ return 0;
+}
+
+/*!
+ * This function sets the transparent color key for SDC graphic plane.
+ *
+ * @param channel Input parameter for the logical channel ID.
+ *
+ * @param enable Boolean to enable or disable color key
+ *
+ * @param colorKey 24-bit RGB color to use as transparent color key.
+ *
+ * @return This function returns 0 on success or negative error code on fail
+ */
+int32_t ipu_sdc_set_color_key(ipu_channel_t channel, bool enable,
+ uint32_t color_key)
+{
+ uint32_t reg, sdc_conf;
+ unsigned long lock_flags;
+
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+
+ sdc_conf = __raw_readl(SDC_COM_CONF);
+ if (channel == MEM_SDC_BG) {
+ sdc_conf &= ~SDC_COM_GWSEL;
+ } else {
+ sdc_conf |= SDC_COM_GWSEL;
+ }
+
+ if (enable) {
+ reg = __raw_readl(SDC_GW_CTRL) & 0xFF000000L;
+ __raw_writel(reg | (color_key & 0x00FFFFFFL), SDC_GW_CTRL);
+
+ sdc_conf |= SDC_COM_KEY_COLOR_G;
+ } else {
+ sdc_conf &= ~SDC_COM_KEY_COLOR_G;
+ }
+ __raw_writel(sdc_conf, SDC_COM_CONF);
+
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+
+ return 0;
+}
+
+int32_t ipu_sdc_set_brightness(uint8_t value)
+{
+ __raw_writel(0x03000000UL | value << 16, SDC_PWM_CTRL);
+ return 0;
+}
+
+/*!
+ * This function sets the window position of the foreground or background plane.
+ * modes.
+ *
+ * @param channel Input parameter for the logical channel ID.
+ *
+ * @param x_pos The X coordinate position to place window at.
+ * The position is relative to the top left corner.
+ *
+ * @param y_pos The Y coordinate position to place window at.
+ * The position is relative to the top left corner.
+ *
+ * @return This function returns 0 on success or negative error code on fail
+ */
+int32_t ipu_disp_set_window_pos(ipu_channel_t channel, int16_t x_pos,
+ int16_t y_pos)
+{
+ x_pos += g_h_start_width;
+ y_pos += g_v_start_width;
+
+ if (channel == MEM_SDC_BG) {
+ __raw_writel((x_pos << 16) | y_pos, SDC_BG_POS);
+ } else if (channel == MEM_SDC_FG) {
+ __raw_writel((x_pos << 16) | y_pos, SDC_FG_POS);
+ } else {
+ return EINVAL;
+ }
+ return 0;
+}
+
+void _ipu_sdc_fg_init(ipu_channel_params_t *params)
+{
+ uint32_t reg;
+ (void)params;
+
+ /* Enable FG channel */
+ reg = __raw_readl(SDC_COM_CONF);
+ __raw_writel(reg | SDC_COM_FG_EN | SDC_COM_BG_EN, SDC_COM_CONF);
+}
+
+uint32_t _ipu_sdc_fg_uninit(void)
+{
+ uint32_t reg;
+
+ /* Disable FG channel */
+ reg = __raw_readl(SDC_COM_CONF);
+ __raw_writel(reg & ~SDC_COM_FG_EN, SDC_COM_CONF);
+
+ return reg & SDC_COM_FG_EN;
+}
+
+void _ipu_sdc_bg_init(ipu_channel_params_t *params)
+{
+ uint32_t reg;
+ (void)params;
+
+ /* Enable FG channel */
+ reg = __raw_readl(SDC_COM_CONF);
+ __raw_writel(reg | SDC_COM_BG_EN, SDC_COM_CONF);
+}
+
+uint32_t _ipu_sdc_bg_uninit(void)
+{
+ uint32_t reg;
+
+ /* Disable BG channel */
+ reg = __raw_readl(SDC_COM_CONF);
+ __raw_writel(reg & ~SDC_COM_BG_EN, SDC_COM_CONF);
+
+ return reg & SDC_COM_BG_EN;
+}
+
+/* Exported symbols for modules. */
+EXPORT_SYMBOL(ipu_sdc_init_panel);
+EXPORT_SYMBOL(ipu_sdc_set_global_alpha);
+EXPORT_SYMBOL(ipu_sdc_set_color_key);
+EXPORT_SYMBOL(ipu_sdc_set_brightness);
+EXPORT_SYMBOL(ipu_disp_set_window_pos);
diff --git a/drivers/mxc/ipu/pf/Kconfig b/drivers/mxc/ipu/pf/Kconfig
new file mode 100644
index 000000000000..fa5a777cf727
--- /dev/null
+++ b/drivers/mxc/ipu/pf/Kconfig
@@ -0,0 +1,7 @@
+config MXC_IPU_PF
+ tristate "MXC MPEG4/H.264 Post Filter Driver"
+ depends on MXC_IPU_V1
+ default y
+ help
+ Driver for MPEG4 dering and deblock and H.264 deblock
+ using MXC IPU h/w
diff --git a/drivers/mxc/ipu/pf/Makefile b/drivers/mxc/ipu/pf/Makefile
new file mode 100644
index 000000000000..641adf4be4bd
--- /dev/null
+++ b/drivers/mxc/ipu/pf/Makefile
@@ -0,0 +1 @@
+obj-$(CONFIG_MXC_IPU_PF) += mxc_pf.o
diff --git a/drivers/mxc/ipu/pf/mxc_pf.c b/drivers/mxc/ipu/pf/mxc_pf.c
new file mode 100644
index 000000000000..e098e0d20510
--- /dev/null
+++ b/drivers/mxc/ipu/pf/mxc_pf.c
@@ -0,0 +1,991 @@
+/*
+ * Copyright 2005-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file mxc_pf.c
+ *
+ * @brief MXC IPU MPEG4/H.264 Post-filtering driver
+ *
+ * User-level API for IPU Hardware MPEG4/H.264 Post-filtering.
+ *
+ * @ingroup MXC_PF
+ */
+
+#include <linux/pagemap.h>
+#include <linux/module.h>
+#include <linux/init.h>
+#include <linux/platform_device.h>
+#include <linux/fs.h>
+#include <linux/poll.h>
+#include <linux/delay.h>
+#include <linux/dma-mapping.h>
+#include <linux/ipu.h>
+#include <linux/mxc_pf.h>
+
+struct mxc_pf_data {
+ pf_operation_t mode;
+ u32 pf_enabled;
+ u32 width;
+ u32 height;
+ u32 stride;
+ uint32_t qp_size;
+ dma_addr_t qp_paddr;
+ void *qp_vaddr;
+ pf_buf buf[PF_MAX_BUFFER_CNT];
+ void *buf_vaddr[PF_MAX_BUFFER_CNT];
+ wait_queue_head_t pf_wait;
+ volatile int done_mask;
+ volatile int wait_mask;
+ volatile int busy_flag;
+ struct semaphore busy_lock;
+};
+
+static struct mxc_pf_data pf_data;
+static u8 open_count;
+static struct class *mxc_pf_class;
+
+/*
+ * Function definitions
+ */
+
+static irqreturn_t mxc_pf_irq_handler(int irq, void *dev_id)
+{
+ struct mxc_pf_data *pf = dev_id;
+
+ if (irq == IPU_IRQ_PF_Y_OUT_EOF) {
+ pf->done_mask |= PF_WAIT_Y;
+ } else if (irq == IPU_IRQ_PF_U_OUT_EOF) {
+ pf->done_mask |= PF_WAIT_U;
+ } else if (irq == IPU_IRQ_PF_V_OUT_EOF) {
+ pf->done_mask |= PF_WAIT_V;
+ } else {
+ return IRQ_NONE;
+ }
+
+ if (pf->wait_mask && ((pf->done_mask & pf->wait_mask) == pf->wait_mask)) {
+ wake_up_interruptible(&pf->pf_wait);
+ }
+ return IRQ_HANDLED;
+}
+
+/*!
+ * This function handles PF_IOCTL_INIT calls. It initializes the PF channels,
+ * interrupt handlers, and channel buffers.
+ *
+ * @return This function returns 0 on success or negative error code on
+ * error.
+ */
+static int mxc_pf_init(pf_init_params *pf_init)
+{
+ int err;
+ ipu_channel_params_t params;
+ u32 w;
+ u32 stride;
+ u32 h;
+ u32 qp_size = 0;
+ u32 qp_stride;
+
+ if ((pf_init->pf_mode > 4) || (pf_init->width > 1024) ||
+ (pf_init->height > 1024) || (pf_init->stride < pf_init->width)) {
+ return -EINVAL;
+ }
+
+ pf_data.mode = pf_init->pf_mode;
+ w = pf_data.width = pf_init->width;
+ h = pf_data.height = pf_init->height;
+ stride = pf_data.stride = pf_init->stride;
+ pf_data.qp_size = pf_init->qp_size;
+
+ memset(&params, 0, sizeof(params));
+ params.mem_pf_mem.operation = pf_data.mode;
+ err = ipu_init_channel(MEM_PF_Y_MEM, &params);
+ if (err < 0) {
+ printk(KERN_ERR "mxc_pf: error initializing channel\n");
+ goto err0;
+ }
+
+ err = ipu_init_channel_buffer(MEM_PF_Y_MEM, IPU_INPUT_BUFFER,
+ IPU_PIX_FMT_GENERIC, w, h, stride,
+ IPU_ROTATE_NONE, 0, 0, 0, 0);
+ if (err < 0) {
+ printk(KERN_ERR "mxc_pf: error initializing Y input buffer\n");
+ goto err0;
+ }
+
+ err = ipu_init_channel_buffer(MEM_PF_Y_MEM, IPU_OUTPUT_BUFFER,
+ IPU_PIX_FMT_GENERIC, w, h, stride,
+ IPU_ROTATE_NONE, 0, 0, 0, 0);
+ if (err < 0) {
+ printk(KERN_ERR "mxc_pf: error initializing Y output buffer\n");
+ goto err0;
+ }
+
+ w = w / 2;
+ h = h / 2;
+ stride = stride / 2;
+
+ if (pf_data.mode != PF_MPEG4_DERING) {
+ err = ipu_init_channel_buffer(MEM_PF_U_MEM, IPU_INPUT_BUFFER,
+ IPU_PIX_FMT_GENERIC, w, h, stride,
+ IPU_ROTATE_NONE, 0, 0, 0, 0);
+ if (err < 0) {
+ printk(KERN_ERR
+ "mxc_pf: error initializing U input buffer\n");
+ goto err0;
+ }
+
+ err = ipu_init_channel_buffer(MEM_PF_U_MEM, IPU_OUTPUT_BUFFER,
+ IPU_PIX_FMT_GENERIC, w, h, stride,
+ IPU_ROTATE_NONE, 0, 0, 0, 0);
+ if (err < 0) {
+ printk(KERN_ERR
+ "mxc_pf: error initializing U output buffer\n");
+ goto err0;
+ }
+
+ err = ipu_init_channel_buffer(MEM_PF_V_MEM, IPU_INPUT_BUFFER,
+ IPU_PIX_FMT_GENERIC, w, h, stride,
+ IPU_ROTATE_NONE, 0, 0, 0, 0);
+ if (err < 0) {
+ printk(KERN_ERR
+ "mxc_pf: error initializing V input buffer\n");
+ goto err0;
+ }
+
+ err = ipu_init_channel_buffer(MEM_PF_V_MEM, IPU_OUTPUT_BUFFER,
+ IPU_PIX_FMT_GENERIC, w, h, stride,
+ IPU_ROTATE_NONE, 0, 0, 0, 0);
+ if (err < 0) {
+ printk(KERN_ERR
+ "mxc_pf: error initializing V output buffer\n");
+ goto err0;
+ }
+ }
+
+ /*Setup Channel QF and BSC Params */
+ if (pf_data.mode == PF_H264_DEBLOCK) {
+ w = ((pf_data.width + 15) / 16);
+ h = (pf_data.height + 15) / 16;
+ qp_stride = w;
+ qp_size = 4 * qp_stride * h;
+ pr_debug("H264 QP width = %d, height = %d\n", w, h);
+ err = ipu_init_channel_buffer(MEM_PF_Y_MEM,
+ IPU_SEC_INPUT_BUFFER,
+ IPU_PIX_FMT_GENERIC_32, w, h,
+ qp_stride, IPU_ROTATE_NONE, 0, 0,
+ 0, 0);
+ if (err < 0) {
+ printk(KERN_ERR
+ "mxc_pf: error initializing H264 QP buffer\n");
+ goto err0;
+ }
+/* w = (pf_data.width + 3) / 4; */
+ w *= 4;
+ h *= 4;
+ qp_stride = w;
+ err = ipu_init_channel_buffer(MEM_PF_U_MEM,
+ IPU_SEC_INPUT_BUFFER,
+ IPU_PIX_FMT_GENERIC, w, h,
+ qp_stride, IPU_ROTATE_NONE, 0, 0,
+ 0, 0);
+ if (err < 0) {
+ printk(KERN_ERR
+ "mxc_pf: error initializing H264 BSB buffer\n");
+ goto err0;
+ }
+ qp_size += qp_stride * h;
+ } else { /* MPEG4 mode */
+
+ w = (pf_data.width + 15) / 16;
+ h = (pf_data.height + 15) / 16;
+ qp_stride = (w + 3) & ~0x3UL;
+ pr_debug("MPEG4 QP width = %d, height = %d, stride = %d\n",
+ w, h, qp_stride);
+ err = ipu_init_channel_buffer(MEM_PF_Y_MEM,
+ IPU_SEC_INPUT_BUFFER,
+ IPU_PIX_FMT_GENERIC, w, h,
+ qp_stride, IPU_ROTATE_NONE, 0, 0,
+ 0, 0);
+ if (err < 0) {
+ printk(KERN_ERR
+ "mxc_pf: error initializing MPEG4 QP buffer\n");
+ goto err0;
+ }
+ qp_size = qp_stride * h;
+ }
+
+ /* Support 2 QP buffers */
+ qp_size *= 2;
+
+ if (pf_data.qp_size > qp_size)
+ qp_size = pf_data.qp_size;
+ else
+ pf_data.qp_size = qp_size;
+
+ pf_data.qp_vaddr = dma_alloc_coherent(NULL, pf_data.qp_size,
+ &pf_data.qp_paddr,
+ GFP_KERNEL | GFP_DMA);
+ if (!pf_data.qp_vaddr)
+ return -ENOMEM;
+
+ pf_init->qp_paddr = pf_data.qp_paddr;
+ pf_init->qp_size = pf_data.qp_size;
+
+ return 0;
+
+ err0:
+ return err;
+}
+
+/*!
+ * This function handles PF_IOCTL_UNINIT calls. It uninitializes the PF
+ * channels and interrupt handlers.
+ *
+ * @return This function returns 0 on success or negative error code
+ * on error.
+ */
+static int mxc_pf_uninit(void)
+{
+ pf_data.pf_enabled = 0;
+ ipu_disable_irq(IPU_IRQ_PF_Y_OUT_EOF);
+ ipu_disable_irq(IPU_IRQ_PF_U_OUT_EOF);
+ ipu_disable_irq(IPU_IRQ_PF_V_OUT_EOF);
+
+ ipu_disable_channel(MEM_PF_Y_MEM, true);
+ ipu_disable_channel(MEM_PF_U_MEM, true);
+ ipu_disable_channel(MEM_PF_V_MEM, true);
+ ipu_uninit_channel(MEM_PF_Y_MEM);
+ ipu_uninit_channel(MEM_PF_U_MEM);
+ ipu_uninit_channel(MEM_PF_V_MEM);
+
+ if (pf_data.qp_vaddr) {
+ dma_free_coherent(NULL, pf_data.qp_size, pf_data.qp_vaddr,
+ pf_data.qp_paddr);
+ pf_data.qp_vaddr = NULL;
+ }
+
+ return 0;
+}
+
+/*!
+ * This function handles PF_IOCTL_REQBUFS calls. It initializes the PF channels
+ * and channel buffers.
+ *
+ * @param reqbufs Input/Output Structure containing buffer mode,
+ * type, offset, and size. The offset and size of
+ * the buffer are returned for PF_MEMORY_MMAP mode.
+ *
+ * @return This function returns 0 on success or negative error code
+ * on error.
+ */
+static int mxc_pf_reqbufs(pf_reqbufs_params *reqbufs)
+{
+ int err;
+ uint32_t buf_size;
+ int i;
+ int alloc_cnt = 0;
+ pf_buf *buf = pf_data.buf;
+ if (reqbufs->count > PF_MAX_BUFFER_CNT) {
+ reqbufs->count = PF_MAX_BUFFER_CNT;
+ }
+ /* Deallocate mmapped buffers */
+ if (reqbufs->count == 0) {
+ for (i = 0; i < PF_MAX_BUFFER_CNT; i++) {
+ if (buf[i].index != -1) {
+ dma_free_coherent(NULL, buf[i].size,
+ pf_data.buf_vaddr[i],
+ buf[i].offset);
+ pf_data.buf_vaddr[i] = NULL;
+ buf[i].index = -1;
+ buf[i].size = 0;
+ }
+ }
+ return 0;
+ }
+
+ buf_size = (pf_data.stride * pf_data.height * 3) / 2;
+ if (reqbufs->req_size > buf_size) {
+ buf_size = reqbufs->req_size;
+ pr_debug("using requested buffer size of %d\n", buf_size);
+ } else {
+ reqbufs->req_size = buf_size;
+ pr_debug("using default buffer size of %d\n", buf_size);
+ }
+
+ for (i = 0; alloc_cnt < reqbufs->count; i++) {
+ buf[i].index = i;
+ buf[i].size = buf_size;
+ pf_data.buf_vaddr[i] = dma_alloc_coherent(NULL, buf[i].size,
+ &buf[i].offset,
+ GFP_KERNEL | GFP_DMA);
+ if (!pf_data.buf_vaddr[i] || !buf[i].offset) {
+ printk(KERN_ERR
+ "mxc_pf: unable to allocate IPU buffers.\n");
+ err = -ENOMEM;
+ goto err0;
+ }
+ pr_debug("Allocated buffer %d at paddr 0x%08X, vaddr %p\n",
+ i, buf[i].offset, pf_data.buf_vaddr[i]);
+
+ alloc_cnt++;
+ }
+
+ return 0;
+ err0:
+ for (i = 0; i < alloc_cnt; i++) {
+ dma_free_coherent(NULL, buf[i].size, pf_data.buf_vaddr[i],
+ buf[i].offset);
+ pf_data.buf_vaddr[i] = NULL;
+ buf[i].index = -1;
+ buf[i].size = 0;
+ }
+ return err;
+}
+
+/*!
+ * This function handles PF_IOCTL_START calls. It sets the PF channel buffers
+ * addresses and starts the channels
+ *
+ * @return This function returns 0 on success or negative error code on
+ * error.
+ */
+static int mxc_pf_start(pf_buf *in, pf_buf *out, int qp_buf)
+{
+ int err;
+ dma_addr_t y_in_paddr;
+ dma_addr_t u_in_paddr;
+ dma_addr_t v_in_paddr;
+ dma_addr_t p1_in_paddr;
+ dma_addr_t p2_in_paddr;
+ dma_addr_t y_out_paddr;
+ dma_addr_t u_out_paddr;
+ dma_addr_t v_out_paddr;
+
+ /* H.264 requires output buffer equal to input */
+ if (pf_data.mode == PF_H264_DEBLOCK)
+ out = in;
+
+ y_in_paddr = in->offset + in->y_offset;
+ if (in->u_offset)
+ u_in_paddr = in->offset + in->u_offset;
+ else
+ u_in_paddr = y_in_paddr + (pf_data.stride * pf_data.height);
+ if (in->v_offset)
+ v_in_paddr = in->offset + in->v_offset;
+ else
+ v_in_paddr = u_in_paddr + (pf_data.stride * pf_data.height) / 4;
+ p1_in_paddr = pf_data.qp_paddr;
+ if (qp_buf)
+ p1_in_paddr += pf_data.qp_size / 2;
+
+ if (pf_data.mode == PF_H264_DEBLOCK) {
+ p2_in_paddr = p1_in_paddr +
+ ((pf_data.width + 15) / 16) *
+ ((pf_data.height + 15) / 16) * 4;
+ } else {
+ p2_in_paddr = 0;
+ }
+
+ pr_debug("y_in_paddr = 0x%08X\nu_in_paddr = 0x%08X\n"
+ "v_in_paddr = 0x%08X\n"
+ "qp_paddr = 0x%08X\nbsb_paddr = 0x%08X\n",
+ y_in_paddr, u_in_paddr, v_in_paddr, p1_in_paddr, p2_in_paddr);
+
+ y_out_paddr = out->offset + out->y_offset;
+ if (out->u_offset)
+ u_out_paddr = out->offset + out->u_offset;
+ else
+ u_out_paddr = y_out_paddr + (pf_data.stride * pf_data.height);
+ if (out->v_offset)
+ v_out_paddr = out->offset + out->v_offset;
+ else
+ v_out_paddr =
+ u_out_paddr + (pf_data.stride * pf_data.height) / 4;
+
+ pr_debug("y_out_paddr = 0x%08X\nu_out_paddr = 0x%08X\n"
+ "v_out_paddr = 0x%08X\n",
+ y_out_paddr, u_out_paddr, v_out_paddr);
+
+ pf_data.done_mask = 0;
+
+ ipu_enable_irq(IPU_IRQ_PF_Y_OUT_EOF);
+ if (pf_data.mode != PF_MPEG4_DERING) {
+ ipu_enable_irq(IPU_IRQ_PF_U_OUT_EOF);
+ ipu_enable_irq(IPU_IRQ_PF_V_OUT_EOF);
+ }
+
+ err = ipu_update_channel_buffer(MEM_PF_Y_MEM, IPU_INPUT_BUFFER, 0,
+ y_in_paddr);
+ if (err < 0) {
+ printk(KERN_ERR "mxc_pf: error setting Y input buffer\n");
+ goto err0;
+ }
+
+ err = ipu_update_channel_buffer(MEM_PF_Y_MEM, IPU_OUTPUT_BUFFER, 0,
+ y_out_paddr);
+ if (err < 0) {
+ printk(KERN_ERR "mxc_pf: error setting Y output buffer\n");
+ goto err0;
+ }
+
+ if (pf_data.mode != PF_MPEG4_DERING) {
+ err =
+ ipu_update_channel_buffer(MEM_PF_U_MEM, IPU_INPUT_BUFFER, 0,
+ u_in_paddr);
+ if (err < 0) {
+ printk(KERN_ERR
+ "mxc_pf: error setting U input buffer\n");
+ goto err0;
+ }
+
+ err =
+ ipu_update_channel_buffer(MEM_PF_U_MEM, IPU_OUTPUT_BUFFER,
+ 0, u_out_paddr);
+ if (err < 0) {
+ printk(KERN_ERR
+ "mxc_pf: error setting U output buffer\n");
+ goto err0;
+ }
+
+ err =
+ ipu_update_channel_buffer(MEM_PF_V_MEM, IPU_INPUT_BUFFER, 0,
+ v_in_paddr);
+ if (err < 0) {
+ printk(KERN_ERR
+ "mxc_pf: error setting V input buffer\n");
+ goto err0;
+ }
+
+ err =
+ ipu_update_channel_buffer(MEM_PF_V_MEM, IPU_OUTPUT_BUFFER,
+ 0, v_out_paddr);
+ if (err < 0) {
+ printk(KERN_ERR
+ "mxc_pf: error setting V output buffer\n");
+ goto err0;
+ }
+ }
+
+ err = ipu_update_channel_buffer(MEM_PF_Y_MEM, IPU_SEC_INPUT_BUFFER, 0,
+ p1_in_paddr);
+ if (err < 0) {
+ printk(KERN_ERR "mxc_pf: error setting QP buffer\n");
+ goto err0;
+ }
+
+ if (pf_data.mode == PF_H264_DEBLOCK) {
+
+ err = ipu_update_channel_buffer(MEM_PF_U_MEM,
+ IPU_SEC_INPUT_BUFFER, 0,
+ p2_in_paddr);
+ if (err < 0) {
+ printk(KERN_ERR
+ "mxc_pf: error setting H264 BSB buffer\n");
+ goto err0;
+ }
+ ipu_select_buffer(MEM_PF_U_MEM, IPU_SEC_INPUT_BUFFER, 0);
+ }
+
+ ipu_select_buffer(MEM_PF_Y_MEM, IPU_OUTPUT_BUFFER, 0);
+ ipu_select_buffer(MEM_PF_Y_MEM, IPU_SEC_INPUT_BUFFER, 0);
+ ipu_select_buffer(MEM_PF_Y_MEM, IPU_INPUT_BUFFER, 0);
+ if (pf_data.mode != PF_MPEG4_DERING) {
+ ipu_select_buffer(MEM_PF_U_MEM, IPU_OUTPUT_BUFFER, 0);
+ ipu_select_buffer(MEM_PF_V_MEM, IPU_OUTPUT_BUFFER, 0);
+ ipu_select_buffer(MEM_PF_U_MEM, IPU_INPUT_BUFFER, 0);
+ ipu_select_buffer(MEM_PF_V_MEM, IPU_INPUT_BUFFER, 0);
+ }
+
+ if (!pf_data.pf_enabled) {
+ pf_data.pf_enabled = 1;
+ if (pf_data.mode != PF_MPEG4_DERING) {
+ ipu_enable_channel(MEM_PF_V_MEM);
+ ipu_enable_channel(MEM_PF_U_MEM);
+ }
+ ipu_enable_channel(MEM_PF_Y_MEM);
+ }
+
+ return 0;
+ err0:
+ return err;
+}
+
+/*!
+ * Post Filter driver open function. This function implements the Linux
+ * file_operations.open() API function.
+ *
+ * @param inode struct inode *
+ *
+ * @param filp struct file *
+ *
+ * @return This function returns 0 on success or negative error code on
+ * error.
+ */
+static int mxc_pf_open(struct inode *inode, struct file *filp)
+{
+ int i;
+
+ if (open_count) {
+ return -EBUSY;
+ }
+
+ open_count++;
+
+ memset(&pf_data, 0, sizeof(pf_data));
+ for (i = 0; i < PF_MAX_BUFFER_CNT; i++) {
+ pf_data.buf[i].index = -1;
+ }
+ init_waitqueue_head(&pf_data.pf_wait);
+ init_MUTEX(&pf_data.busy_lock);
+
+ pf_data.busy_flag = 1;
+
+ ipu_request_irq(IPU_IRQ_PF_Y_OUT_EOF, mxc_pf_irq_handler,
+ 0, "mxc_ipu_pf", &pf_data);
+
+ ipu_request_irq(IPU_IRQ_PF_U_OUT_EOF, mxc_pf_irq_handler,
+ 0, "mxc_ipu_pf", &pf_data);
+
+ ipu_request_irq(IPU_IRQ_PF_V_OUT_EOF, mxc_pf_irq_handler,
+ 0, "mxc_ipu_pf", &pf_data);
+
+ ipu_disable_irq(IPU_IRQ_PF_Y_OUT_EOF);
+ ipu_disable_irq(IPU_IRQ_PF_U_OUT_EOF);
+ ipu_disable_irq(IPU_IRQ_PF_V_OUT_EOF);
+
+ return 0;
+}
+
+/*!
+ * Post Filter driver release function. This function implements the Linux
+ * file_operations.release() API function.
+ *
+ * @param inode struct inode *
+ *
+ * @param filp struct file *
+ *
+ * @return This function returns 0 on success or negative error code on
+ * error.
+ */
+static int mxc_pf_release(struct inode *inode, struct file *filp)
+{
+ pf_reqbufs_params req_buf;
+
+ if (open_count) {
+ mxc_pf_uninit();
+
+ /* Free any allocated buffers */
+ req_buf.count = 0;
+ mxc_pf_reqbufs(&req_buf);
+
+ ipu_free_irq(IPU_IRQ_PF_V_OUT_EOF, &pf_data);
+ ipu_free_irq(IPU_IRQ_PF_U_OUT_EOF, &pf_data);
+ ipu_free_irq(IPU_IRQ_PF_Y_OUT_EOF, &pf_data);
+ open_count--;
+ }
+ return 0;
+}
+
+/*!
+ * Post Filter driver ioctl function. This function implements the Linux
+ * file_operations.ioctl() API function.
+ *
+ * @param inode struct inode *
+ *
+ * @param filp struct file *
+ *
+ * @param cmd IOCTL command to handle
+ *
+ * @param arg Pointer to arguments for IOCTL
+ *
+ * @return This function returns 0 on success or negative error code on
+ * error.
+ */
+static int mxc_pf_ioctl(struct inode *inode, struct file *filp,
+ unsigned int cmd, unsigned long arg)
+{
+ int retval = 0;
+
+ switch (cmd) {
+ case PF_IOCTL_INIT:
+ {
+ pf_init_params pf_init;
+
+ pr_debug("PF_IOCTL_INIT\n");
+ if (copy_from_user(&pf_init, (void *)arg,
+ _IOC_SIZE(cmd))) {
+ retval = -EFAULT;
+ break;
+ }
+
+ retval = mxc_pf_init(&pf_init);
+ if (retval < 0)
+ break;
+ pf_init.qp_paddr = pf_data.qp_paddr;
+ pf_init.qp_size = pf_data.qp_size;
+
+ /* Return size of memory allocated */
+ if (copy_to_user((void *)arg, &pf_init, _IOC_SIZE(cmd))) {
+ retval = -EFAULT;
+ break;
+ }
+
+ pf_data.busy_flag = 0;
+ break;
+ }
+ case PF_IOCTL_UNINIT:
+ pr_debug("PF_IOCTL_UNINIT\n");
+ retval = mxc_pf_uninit();
+ break;
+ case PF_IOCTL_REQBUFS:
+ {
+ pf_reqbufs_params reqbufs;
+ pr_debug("PF_IOCTL_REQBUFS\n");
+
+ if (copy_from_user
+ (&reqbufs, (void *)arg, _IOC_SIZE(cmd))) {
+ retval = -EFAULT;
+ break;
+ }
+
+ retval = mxc_pf_reqbufs(&reqbufs);
+
+ /* Return size of memory allocated */
+ if (copy_to_user((void *)arg, &reqbufs, _IOC_SIZE(cmd))) {
+ retval = -EFAULT;
+ break;
+ }
+
+ break;
+ }
+ case PF_IOCTL_QUERYBUF:
+ {
+ pf_buf buf;
+ pr_debug("PF_IOCTL_QUERYBUF\n");
+
+ if (copy_from_user(&buf, (void *)arg, _IOC_SIZE(cmd))) {
+ retval = -EFAULT;
+ break;
+ }
+
+ if ((buf.index < 0) ||
+ (buf.index >= PF_MAX_BUFFER_CNT) ||
+ (pf_data.buf[buf.index].index != buf.index)) {
+ retval = -EINVAL;
+ break;
+ }
+ /* Return size of memory allocated */
+ if (copy_to_user((void *)arg, &pf_data.buf[buf.index],
+ _IOC_SIZE(cmd))) {
+ retval = -EFAULT;
+ break;
+ }
+
+ break;
+ }
+ case PF_IOCTL_START:
+ {
+ int index;
+ pf_start_params start_params;
+ pr_debug("PF_IOCTL_START\n");
+
+ if (pf_data.busy_flag) {
+ retval = -EBUSY;
+ break;
+ }
+
+ if (copy_from_user(&start_params, (void *)arg,
+ _IOC_SIZE(cmd))) {
+ retval = -EFAULT;
+ break;
+ }
+ if (start_params.h264_pause_row >=
+ ((pf_data.height + 15) / 16)) {
+ retval = -EINVAL;
+ break;
+ }
+
+ pf_data.busy_flag = 1;
+
+ index = start_params.in.index;
+ if ((index >= 0) && (index < PF_MAX_BUFFER_CNT)) {
+ if (pf_data.buf[index].offset !=
+ start_params.in.offset) {
+ retval = -EINVAL;
+ break;
+ }
+ }
+
+ index = start_params.out.index;
+ if ((index >= 0) && (index < PF_MAX_BUFFER_CNT)) {
+ if (pf_data.buf[index].offset !=
+ start_params.out.offset) {
+ retval = -EINVAL;
+ break;
+ }
+ }
+
+ ipu_pf_set_pause_row(start_params.h264_pause_row);
+
+ retval = mxc_pf_start(&start_params.in, &start_params.out,
+ start_params.qp_buf);
+ /*Update y, u, v buffers in DMA Channels */
+ if ((retval < 0)
+ break;
+
+ pr_debug("PF_IOCTL_START - processing started\n");
+
+ if (!start_params.wait) {
+ break;
+ }
+
+ pr_debug("PF_IOCTL_START - waiting for completion\n");
+
+ pf_data.wait_mask = PF_WAIT_ALL;
+ /* Fall thru to wait */
+ }
+ case PF_IOCTL_WAIT:
+ {
+ if (!pf_data.wait_mask)
+ pf_data.wait_mask = (u32) arg;
+
+ if (pf_data.mode == PF_MPEG4_DERING)
+ pf_data.wait_mask &= PF_WAIT_Y;
+
+ if (!pf_data.wait_mask) {
+ retval = -EINVAL;
+ break;
+ }
+
+ if (!wait_event_interruptible_timeout(pf_data.pf_wait,
+ ((pf_data.
+ done_mask &
+ pf_data.
+ wait_mask) ==
+ pf_data.
+ wait_mask),
+ 1 * HZ)) {
+ pr_debug
+ ("PF_IOCTL_WAIT: timeout, done_mask = %d\n",
+ pf_data.done_mask);
+ retval = -ETIME;
+ break;
+ } else if (signal_pending(current)) {
+ pr_debug("PF_IOCTL_WAIT: interrupt received\n");
+ retval = -ERESTARTSYS;
+ break;
+ }
+ pf_data.busy_flag = 0;
+ pf_data.wait_mask = 0;
+
+ pr_debug("PF_IOCTL_WAIT - finished\n");
+ break;
+ }
+ case PF_IOCTL_RESUME:
+ {
+ int pause_row;
+ pr_debug("PF_IOCTL_RESUME\n");
+
+ if (pf_data.busy_flag == 0) {
+ retval = -EFAULT;
+ break;
+ }
+
+ if (copy_from_user(&pause_row, (void *)arg,
+ _IOC_SIZE(cmd))) {
+ retval = -EFAULT;
+ break;
+ }
+
+ if (pause_row >= ((pf_data.height + 15) / 16)) {
+ retval = -EINVAL;
+ break;
+ }
+
+ ipu_pf_set_pause_row(pause_row);
+ break;
+ }
+
+ default:
+ printk(KERN_ERR "ipu_pf_ioctl not supported ioctl\n");
+ retval = -1;
+ }
+
+ if (retval < 0)
+ pr_debug("return = %d\n", retval);
+ return retval;
+}
+
+/*!
+ * Post Filter driver mmap function. This function implements the Linux
+ * file_operations.mmap() API function for mapping driver buffers to user space.
+ *
+ * @param file struct file *
+ *
+ * @param vma structure vm_area_struct *
+ *
+ * @return 0 Success, EINTR busy lock error,
+ * ENOBUFS remap_page error.
+ */
+static int mxc_pf_mmap(struct file *file, struct vm_area_struct *vma)
+{
+ unsigned long size = vma->vm_end - vma->vm_start;
+ int res = 0;
+
+ pr_debug("pgoff=0x%lx, start=0x%lx, end=0x%lx\n",
+ vma->vm_pgoff, vma->vm_start, vma->vm_end);
+
+ /* make this _really_ smp-safe */
+ if (down_interruptible(&pf_data.busy_lock))
+ return -EINTR;
+
+ /* make buffers write-thru cacheable */
+ vma->vm_page_prot = __pgprot(pgprot_val(vma->vm_page_prot) &
+ ~L_PTE_BUFFERABLE);
+
+ if (remap_pfn_range(vma, vma->vm_start,
+ vma->vm_pgoff, size, vma->vm_page_prot)) {
+ printk(KERN_ERR "mxc_pf: remap_pfn_range failed\n");
+ res = -ENOBUFS;
+ goto mmap_exit;
+ }
+
+ vma->vm_flags &= ~VM_IO; /* using shared anonymous pages */
+
+ mmap_exit:
+ up(&pf_data.busy_lock);
+ return res;
+}
+
+/*!
+ * Post Filter driver fsync function. This function implements the Linux
+ * file_operations.fsync() API function.
+ *
+ * The user must call fsync() before reading an output buffer. This
+ * call flushes the L1 and L2 caches
+ *
+ * @param filp structure file *
+ *
+ * @param dentry struct dentry *
+ *
+ * @param datasync unused
+ *
+ * @return status POLLIN | POLLRDNORM
+ */
+int mxc_pf_fsync(struct file *filp, struct dentry *dentry, int datasync)
+{
+ flush_cache_all();
+ outer_flush_all();
+ return 0;
+}
+
+/*!
+ * Post Filter driver poll function. This function implements the Linux
+ * file_operations.poll() API function.
+ *
+ * @param file structure file *
+ *
+ * @param wait structure poll_table *
+ *
+ * @return status POLLIN | POLLRDNORM
+ */
+static unsigned int mxc_pf_poll(struct file *file, poll_table * wait)
+{
+ wait_queue_head_t *queue = NULL;
+ int res = POLLIN | POLLRDNORM;
+
+ if (down_interruptible(&pf_data.busy_lock))
+ return -EINTR;
+
+ queue = &pf_data.pf_wait;
+ poll_wait(file, queue, wait);
+
+ up(&pf_data.busy_lock);
+
+ return res;
+}
+
+/*!
+ * File operation structure functions pointers.
+ */
+static struct file_operations mxc_pf_fops = {
+ .owner = THIS_MODULE,
+ .open = mxc_pf_open,
+ .release = mxc_pf_release,
+ .ioctl = mxc_pf_ioctl,
+ .poll = mxc_pf_poll,
+ .mmap = mxc_pf_mmap,
+ .fsync = mxc_pf_fsync,
+};
+
+static int mxc_pf_major;
+
+/*!
+ * Post Filter driver module initialization function.
+ */
+int mxc_pf_dev_init(void)
+{
+ int ret = 0;
+ struct device *temp_class;
+
+ mxc_pf_major = register_chrdev(0, "mxc_ipu_pf", &mxc_pf_fops);
+
+ if (mxc_pf_major < 0) {
+ printk(KERN_INFO "Unable to get a major for mxc_ipu_pf");
+ return mxc_pf_major;
+ }
+
+ mxc_pf_class = class_create(THIS_MODULE, "mxc_ipu_pf");
+ if (IS_ERR(mxc_pf_class)) {
+ printk(KERN_ERR "Error creating mxc_ipu_pf class.\n");
+ ret = PTR_ERR(mxc_pf_class);
+ goto err_out1;
+ }
+
+ temp_class = device_create(mxc_pf_class, NULL, MKDEV(mxc_pf_major, 0), NULL,
+ "mxc_ipu_pf");
+ if (IS_ERR(temp_class)) {
+ printk(KERN_ERR "Error creating mxc_ipu_pf class device.\n");
+ ret = PTR_ERR(temp_class);
+ goto err_out2;
+ }
+
+ printk(KERN_INFO "IPU Post-filter loading\n");
+
+ return 0;
+
+ err_out2:
+ class_destroy(mxc_pf_class);
+ err_out1:
+ unregister_chrdev(mxc_pf_major, "mxc_ipu_pf");
+ return ret;
+}
+
+/*!
+ * Post Filter driver module exit function.
+ */
+static void mxc_pf_exit(void)
+{
+ if (mxc_pf_major > 0) {
+ device_destroy(mxc_pf_class, MKDEV(mxc_pf_major, 0));
+ class_destroy(mxc_pf_class);
+ unregister_chrdev(mxc_pf_major, "mxc_ipu_pf");
+ }
+}
+
+module_init(mxc_pf_dev_init);
+module_exit(mxc_pf_exit);
+
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_DESCRIPTION("MXC MPEG4/H.264 Postfilter Driver");
+MODULE_LICENSE("GPL");
diff --git a/drivers/mxc/ipu3/Kconfig b/drivers/mxc/ipu3/Kconfig
new file mode 100644
index 000000000000..0ae0ffa9e19d
--- /dev/null
+++ b/drivers/mxc/ipu3/Kconfig
@@ -0,0 +1,5 @@
+config MXC_IPU_V3
+ bool
+
+config MXC_IPU_V3D
+ bool
diff --git a/drivers/mxc/ipu3/Makefile b/drivers/mxc/ipu3/Makefile
new file mode 100644
index 000000000000..aa3e7b1bb501
--- /dev/null
+++ b/drivers/mxc/ipu3/Makefile
@@ -0,0 +1,4 @@
+obj-$(CONFIG_MXC_IPU_V3) = mxc_ipu.o
+
+mxc_ipu-objs := ipu_common.o ipu_ic.o ipu_disp.o ipu_capture.o ipu_device.o ipu_calc_stripes_sizes.o
+
diff --git a/drivers/mxc/ipu3/ipu_calc_stripes_sizes.c b/drivers/mxc/ipu3/ipu_calc_stripes_sizes.c
new file mode 100644
index 000000000000..5e6a9e2f48be
--- /dev/null
+++ b/drivers/mxc/ipu3/ipu_calc_stripes_sizes.c
@@ -0,0 +1,374 @@
+/*
+ * Copyright 2009-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*
+ * @file ipu_calc_stripes_sizes.c
+ *
+ * @brief IPU IC functions
+ *
+ * @ingroup IPU
+ */
+
+#include <linux/module.h>
+#include <linux/ipu.h>
+#include <asm/div64.h>
+
+#define BPP_32 0
+#define BPP_16 3
+#define BPP_8 5
+#define BPP_24 1
+#define BPP_12 4
+#define BPP_18 2
+
+static u64 _do_div(u64 a, u32 b)
+{
+ u64 div;
+ div = a;
+ do_div(div, b);
+ return div;
+}
+
+static u32 truncate(u32 up, /* 0: down; else: up */
+ u64 a, /* must be non-negative */
+ u32 b)
+{
+ u32 d;
+ u64 div;
+ div = _do_div(a, b);
+ d = b * (div >> 32);
+ if (up && (a > (((u64)d) << 32)))
+ return d+b;
+ else
+ return d;
+}
+
+static unsigned int f_calc(unsigned int pfs, unsigned int bpp, unsigned int *write)
+{/* return input_f */
+ unsigned int f_calculated = 0;
+ switch (pfs) {
+ case IPU_PIX_FMT_YVU422P:
+ case IPU_PIX_FMT_YUV422P:
+ case IPU_PIX_FMT_YUV420P2:
+ case IPU_PIX_FMT_YUV420P:
+ f_calculated = 16;
+ break;
+
+ case IPU_PIX_FMT_NV12:
+ f_calculated = 8;
+ break;
+
+ default:
+ f_calculated = 0;
+ break;
+
+ }
+ if (!f_calculated) {
+ switch (bpp) {
+ case BPP_32:
+ f_calculated = 2;
+ break;
+
+ case BPP_16:
+ f_calculated = 4;
+ break;
+
+ case BPP_8:
+ case BPP_24:
+ f_calculated = 8;
+ break;
+
+ case BPP_12:
+ f_calculated = 16;
+ break;
+
+ case BPP_18:
+ f_calculated = 32;
+ break;
+
+ default:
+ f_calculated = 0;
+ break;
+ }
+ }
+ return f_calculated;
+}
+
+
+static unsigned int m_calc(unsigned int pfs)
+{
+ unsigned int m_calculated = 0;
+ switch (pfs) {
+ case IPU_PIX_FMT_YUV420P2:
+ case IPU_PIX_FMT_YUV420P:
+ case IPU_PIX_FMT_YVU422P:
+ case IPU_PIX_FMT_YUV422P:
+ case IPU_PIX_FMT_YVU420P:
+ case IPU_PIX_FMT_NV12:
+ m_calculated = 8;
+ break;
+
+ case IPU_PIX_FMT_YUYV:
+ case IPU_PIX_FMT_UYVY:
+ m_calculated = 2;
+ break;
+
+ default:
+ m_calculated = 1;
+ break;
+
+ }
+ return m_calculated;
+}
+
+
+/* Stripe parameters calculator */
+/**************************************************************************
+Notes:
+MSW = the maximal width allowed for a stripe
+ i.MX31: 720, i.MX35: 800, i.MX37/51/53: 1024
+cirr = the maximal inverse resizing ratio for which overlap in the input
+ is requested; typically cirr~2
+equal_stripes:
+ 0: each stripe is allowed to have independent parameters
+ for maximal image quality
+ 1: the stripes are requested to have identical parameters
+ (except the base address), for maximal performance
+If performance is the top priority (above image quality)
+ Avoid overlap, by setting CIRR = 0
+ This will also force effectively identical_stripes = 1
+ Choose IF & OF that corresponds to the same IOX/SX for both stripes
+ Choose IFW & OFW such that
+ IFW/IM, IFW/IF, OFW/OM, OFW/OF are even integers
+ The function returns an error status:
+ 0: no error
+ 1: invalid input parameters -> aborted without result
+ Valid parameters should satisfy the following conditions
+ IFW <= OFW, otherwise downsizing is required
+ - which is not supported yet
+ 4 <= IFW,OFW, so some interpolation may be needed even without overlap
+ IM, OM, IF, OF should not vanish
+ 2*IF <= IFW
+ so the frame can be split to two equal stripes, even without overlap
+ 2*(OF+IF/irr_opt) <= OFW
+ so a valid positive INW exists even for equal stripes
+ OF <= MSW, otherwise, the left stripe cannot be sufficiently large
+ MSW < OFW, so splitting to stripes is required
+ OFW <= 2*MSW, so two stripes are sufficient
+ (this also implies that 2<=MSW)
+ 2: OF is not a multiple of OM - not fully-supported yet
+ Output is produced but OW is not guaranited to be a multiple of OM
+ 4: OFW reduced to be a multiple of OM
+ 8: CIRR > 1: truncated to 1
+ Overlap is not supported (and not needed) y for upsizing)
+**************************************************************************/
+int ipu_calc_stripes_sizes(const unsigned int input_frame_width,
+ /* input frame width;>1 */
+ unsigned int output_frame_width, /* output frame width; >1 */
+ const unsigned int maximal_stripe_width,
+ /* the maximal width allowed for a stripe */
+ const unsigned long long cirr, /* see above */
+ const unsigned int equal_stripes, /* see above */
+ u32 input_pixelformat,/* pixel format after of read channel*/
+ u32 output_pixelformat,/* pixel format after of write channel*/
+ struct stripe_param *left,
+ struct stripe_param *right)
+{
+ const unsigned int irr_frac_bits = 13;
+ const unsigned long irr_steps = 1 << irr_frac_bits;
+ const u64 dirr = ((u64)1) << (32 - 2);
+ /* The maximum relative difference allowed between the irrs */
+ const u64 cr = ((u64)4) << 32;
+ /* The importance ratio between the two terms in the cost function below */
+
+ unsigned int status;
+ unsigned int temp;
+ unsigned int onw_min;
+ unsigned int inw, onw, inw_best = 0;
+ /* number of pixels in the left stripe NOT hidden by the right stripe */
+ u64 irr_opt; /* the optimal inverse resizing ratio */
+ u64 rr_opt; /* the optimal resizing ratio = 1/irr_opt*/
+ u64 dinw; /* the misalignment between the stripes */
+ /* (measured in units of input columns) */
+ u64 difwl, difwr;
+ /* The number of input columns not reflected in the output */
+ /* the resizing ratio used for the right stripe is */
+ /* left->irr and right->irr respectively */
+ u64 cost, cost_min;
+ u64 div; /* result of division */
+
+ unsigned int input_m, input_f, output_m, output_f; /* parameters for upsizing by stripes */
+
+ status = 0;
+
+ /* M, F calculations */
+ /* read back pfs from params */
+
+ input_f = f_calc(input_pixelformat, 0, NULL);
+ input_m = 16;
+ /* BPP should be used in the out_F calc */
+ /* Temporarily not used */
+ /* out_F = F_calc(idmac->pfs, idmac->bpp, NULL); */
+
+ output_f = 16;
+ output_m = m_calc(output_pixelformat);
+
+
+ if ((input_frame_width < 4) || (output_frame_width < 4))
+ return 1;
+
+ irr_opt = _do_div((((u64)(input_frame_width - 1)) << 32),
+ (output_frame_width - 1));
+ rr_opt = _do_div((((u64)(output_frame_width - 1)) << 32),
+ (input_frame_width - 1));
+
+ if ((input_m == 0) || (output_m == 0) || (input_f == 0) || (output_f == 0)
+ || (input_frame_width < (2 * input_f))
+ || ((((u64)output_frame_width) << 32) <
+ (2 * ((((u64)output_f) << 32) + (input_f * rr_opt))))
+ || (maximal_stripe_width < output_f)
+ || (output_frame_width <= maximal_stripe_width)
+ || ((2 * maximal_stripe_width) < output_frame_width))
+ return 1;
+
+ if (output_f % output_m)
+ status += 2;
+
+ temp = truncate(0, (((u64)output_frame_width) << 32), output_m);
+ if (temp < output_frame_width) {
+ output_frame_width = temp;
+ status += 4;
+ }
+
+ if (equal_stripes) {
+ if ((irr_opt > cirr) /* overlap in the input is not requested */
+ && ((input_frame_width % (input_m << 1)) == 0)
+ && ((input_frame_width % (input_f << 1)) == 0)
+ && ((output_frame_width % (output_m << 1)) == 0)
+ && ((output_frame_width % (output_f << 1)) == 0)) {
+ /* without overlap */
+ left->input_width = right->input_width = right->input_column =
+ input_frame_width >> 1;
+ left->output_width = right->output_width = right->output_column =
+ output_frame_width >> 1;
+ left->input_column = 0;
+ left->output_column = 0;
+ div = _do_div(((((u64)irr_steps) << 32) *
+ (right->input_width - 1)), (right->output_width - 1));
+ left->irr = right->irr = truncate(0, div, 1);
+ } else { /* with overlap */
+ onw = truncate(0, (((u64)output_frame_width - 1) << 32) >> 1,
+ output_f);
+ inw = truncate(0, onw * irr_opt, input_f);
+ /* this is the maximal inw which allows the same resizing ratio */
+ /* in both stripes */
+ onw = truncate(1, (inw * rr_opt), output_f);
+ div = _do_div((((u64)(irr_steps * inw)) <<
+ 32), onw);
+ left->irr = right->irr = truncate(0, div, 1);
+ left->output_width = right->output_width =
+ output_frame_width - onw;
+ /* These are valid assignments for output_width, */
+ /* assuming output_f is a multiple of output_m */
+ div = (((u64)(left->output_width-1) * (left->irr)) << 32);
+ div = (((u64)1) << 32) + _do_div(div, irr_steps);
+
+ left->input_width = right->input_width = truncate(1, div, input_m);
+
+ div = _do_div((((u64)((right->output_width - 1) * right->irr)) <<
+ 32), irr_steps);
+ difwr = (((u64)(input_frame_width - 1 - inw)) << 32) - div;
+ div = _do_div((difwr + (((u64)input_f) << 32)), 2);
+ left->input_column = truncate(0, div, input_f);
+
+
+ /* This splits the truncated input columns evenly */
+ /* between the left and right margins */
+ right->input_column = left->input_column + inw;
+ left->output_column = 0;
+ right->output_column = onw;
+ }
+ } else { /* independent stripes */
+ onw_min = output_frame_width - maximal_stripe_width;
+ /* onw is a multiple of output_f, in the range */
+ /* [max(output_f,output_frame_width-maximal_stripe_width),*/
+ /*min(output_frame_width-2,maximal_stripe_width)] */
+ /* definitely beyond the cost of any valid setting */
+ cost_min = (((u64)input_frame_width) << 32) + cr;
+ onw = truncate(0, ((u64)maximal_stripe_width), output_f);
+ if (output_frame_width - onw == 1)
+ onw -= output_f; /* => onw and output_frame_width-1-onw are positive */
+ inw = truncate(0, onw * irr_opt, input_f);
+ /* this is the maximal inw which allows the same resizing ratio */
+ /* in both stripes */
+ onw = truncate(1, inw * rr_opt, output_f);
+ do {
+ div = _do_div((((u64)(irr_steps * inw)) << 32), onw);
+ left->irr = truncate(0, div, 1);
+ div = _do_div((((u64)(onw * left->irr)) << 32),
+ irr_steps);
+ dinw = (((u64)inw) << 32) - div;
+
+ div = _do_div((((u64)((output_frame_width - 1 - onw) * left->irr)) <<
+ 32), irr_steps);
+
+ difwl = (((u64)(input_frame_width - 1 - inw)) << 32) - div;
+
+ cost = difwl + (((u64)(cr * dinw)) >> 32);
+
+ if (cost < cost_min) {
+ inw_best = inw;
+ cost_min = cost;
+ }
+
+ inw -= input_f;
+ onw = truncate(1, inw * rr_opt, output_f);
+ /* This is the minimal onw which allows the same resizing ratio */
+ /* in both stripes */
+ } while (onw >= onw_min);
+
+ inw = inw_best;
+ onw = truncate(1, inw * rr_opt, output_f);
+ div = _do_div((((u64)(irr_steps * inw)) << 32), onw);
+ left->irr = truncate(0, div, 1);
+
+ left->output_width = onw;
+ right->output_width = output_frame_width - onw;
+ /* These are valid assignments for output_width, */
+ /* assuming output_f is a multiple of output_m */
+ left->input_width = truncate(1, ((u64)(inw + 1)) << 32, input_m);
+ right->input_width = truncate(1, ((u64)(input_frame_width - inw)) <<
+ 32, input_m);
+
+ div = _do_div((((u64)(irr_steps * (input_frame_width - 1 - inw))) <<
+ 32), (right->output_width - 1));
+ right->irr = truncate(0, div, 1);
+ temp = truncate(0, ((u64)left->irr) * ((((u64)1) << 32) + dirr), 1);
+ if (temp < right->irr)
+ right->irr = temp;
+ div = _do_div(((u64)((right->output_width - 1) * right->irr) <<
+ 32), irr_steps);
+ difwr = (u64)(input_frame_width - 1 - inw) - div;
+
+
+ div = _do_div((difwr + (((u64)input_f) << 32)), 2);
+ left->input_column = truncate(0, div, input_f);
+
+ /* This splits the truncated input columns evenly */
+ /* between the left and right margins */
+ right->input_column = left->input_column + inw;
+ left->output_column = 0;
+ right->output_column = onw;
+ }
+ return status;
+}
+EXPORT_SYMBOL(ipu_calc_stripes_sizes);
diff --git a/drivers/mxc/ipu3/ipu_capture.c b/drivers/mxc/ipu3/ipu_capture.c
new file mode 100644
index 000000000000..700b32b7e883
--- /dev/null
+++ b/drivers/mxc/ipu3/ipu_capture.c
@@ -0,0 +1,851 @@
+/*
+ * Copyright 2008-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file ipu_capture.c
+ *
+ * @brief IPU capture dase functions
+ *
+ * @ingroup IPU
+ */
+#include <linux/types.h>
+#include <linux/init.h>
+#include <linux/io.h>
+#include <linux/errno.h>
+#include <linux/spinlock.h>
+#include <linux/delay.h>
+#include <linux/ipu.h>
+#include <linux/clk.h>
+#include <mach/mxc_dvfs.h>
+
+#include "ipu_prv.h"
+#include "ipu_regs.h"
+
+/*!
+ * ipu_csi_init_interface
+ * Sets initial values for the CSI registers.
+ * The width and height of the sensor and the actual frame size will be
+ * set to the same values.
+ * @param width Sensor width
+ * @param height Sensor height
+ * @param pixel_fmt pixel format
+ * @param cfg_param ipu_csi_signal_cfg_t structure
+ * @param csi csi 0 or csi 1
+ *
+ * @return 0 for success, -EINVAL for error
+ */
+int32_t
+ipu_csi_init_interface(uint16_t width, uint16_t height, uint32_t pixel_fmt,
+ ipu_csi_signal_cfg_t cfg_param)
+{
+ uint32_t data = 0;
+ uint32_t csi = cfg_param.csi;
+ unsigned long lock_flags;
+
+ /* Set SENS_DATA_FORMAT bits (8, 9 and 10)
+ RGB or YUV444 is 0 which is current value in data so not set
+ explicitly
+ This is also the default value if attempts are made to set it to
+ something invalid. */
+ switch (pixel_fmt) {
+ case IPU_PIX_FMT_YUYV:
+ cfg_param.data_fmt = CSI_SENS_CONF_DATA_FMT_YUV422_YUYV;
+ break;
+ case IPU_PIX_FMT_UYVY:
+ cfg_param.data_fmt = CSI_SENS_CONF_DATA_FMT_YUV422_UYVY;
+ break;
+ case IPU_PIX_FMT_RGB24:
+ case IPU_PIX_FMT_BGR24:
+ cfg_param.data_fmt = CSI_SENS_CONF_DATA_FMT_RGB_YUV444;
+ break;
+ case IPU_PIX_FMT_GENERIC:
+ cfg_param.data_fmt = CSI_SENS_CONF_DATA_FMT_BAYER;
+ break;
+ case IPU_PIX_FMT_RGB565:
+ cfg_param.data_fmt = CSI_SENS_CONF_DATA_FMT_RGB565;
+ break;
+ case IPU_PIX_FMT_RGB555:
+ cfg_param.data_fmt = CSI_SENS_CONF_DATA_FMT_RGB555;
+ break;
+ default:
+ return -EINVAL;
+ }
+
+ /* Set the CSI_SENS_CONF register remaining fields */
+ data |= cfg_param.data_width << CSI_SENS_CONF_DATA_WIDTH_SHIFT |
+ cfg_param.data_fmt << CSI_SENS_CONF_DATA_FMT_SHIFT |
+ cfg_param.data_pol << CSI_SENS_CONF_DATA_POL_SHIFT |
+ cfg_param.Vsync_pol << CSI_SENS_CONF_VSYNC_POL_SHIFT |
+ cfg_param.Hsync_pol << CSI_SENS_CONF_HSYNC_POL_SHIFT |
+ cfg_param.pixclk_pol << CSI_SENS_CONF_PIX_CLK_POL_SHIFT |
+ cfg_param.ext_vsync << CSI_SENS_CONF_EXT_VSYNC_SHIFT |
+ cfg_param.clk_mode << CSI_SENS_CONF_SENS_PRTCL_SHIFT |
+ cfg_param.pack_tight << CSI_SENS_CONF_PACK_TIGHT_SHIFT |
+ cfg_param.force_eof << CSI_SENS_CONF_FORCE_EOF_SHIFT |
+ cfg_param.data_en_pol << CSI_SENS_CONF_DATA_EN_POL_SHIFT;
+
+ if (g_ipu_clk_enabled == false) {
+ stop_dvfs_per();
+ g_ipu_clk_enabled = true;
+ clk_enable(g_ipu_clk);
+ }
+
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+
+ __raw_writel(data, CSI_SENS_CONF(csi));
+
+ /* Setup sensor frame size */
+ __raw_writel((width - 1) | (height - 1) << 16, CSI_SENS_FRM_SIZE(csi));
+
+ /* Set CCIR registers */
+ if (cfg_param.clk_mode == IPU_CSI_CLK_MODE_CCIR656_PROGRESSIVE) {
+ __raw_writel(0x40030, CSI_CCIR_CODE_1(csi));
+ __raw_writel(0xFF0000, CSI_CCIR_CODE_3(csi));
+ } else if (cfg_param.clk_mode == IPU_CSI_CLK_MODE_CCIR656_INTERLACED) {
+ if (width == 720 && height == 625) {
+ /* PAL case */
+ /*
+ * Field0BlankEnd = 0x6, Field0BlankStart = 0x2,
+ * Field0ActiveEnd = 0x4, Field0ActiveStart = 0
+ */
+ __raw_writel(0x40596, CSI_CCIR_CODE_1(csi));
+ /*
+ * Field1BlankEnd = 0x7, Field1BlankStart = 0x3,
+ * Field1ActiveEnd = 0x5, Field1ActiveStart = 0x1
+ */
+ __raw_writel(0xD07DF, CSI_CCIR_CODE_2(csi));
+ __raw_writel(0xFF0000, CSI_CCIR_CODE_3(csi));
+ } else if (width == 720 && height == 525) {
+ /* NTSC case */
+ /*
+ * Field0BlankEnd = 0x7, Field0BlankStart = 0x3,
+ * Field0ActiveEnd = 0x5, Field0ActiveStart = 0x1
+ */
+ __raw_writel(0xD07DF, CSI_CCIR_CODE_1(csi));
+ /*
+ * Field1BlankEnd = 0x6, Field1BlankStart = 0x2,
+ * Field1ActiveEnd = 0x4, Field1ActiveStart = 0
+ */
+ __raw_writel(0x40596, CSI_CCIR_CODE_2(csi));
+ __raw_writel(0xFF0000, CSI_CCIR_CODE_3(csi));
+ } else {
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+ dev_err(g_ipu_dev, "Unsupported CCIR656 interlaced "
+ "video mode\n");
+ return -EINVAL;
+ }
+ _ipu_csi_ccir_err_detection_enable(csi);
+ } else if ((cfg_param.clk_mode ==
+ IPU_CSI_CLK_MODE_CCIR1120_PROGRESSIVE_DDR) ||
+ (cfg_param.clk_mode ==
+ IPU_CSI_CLK_MODE_CCIR1120_PROGRESSIVE_SDR) ||
+ (cfg_param.clk_mode ==
+ IPU_CSI_CLK_MODE_CCIR1120_INTERLACED_DDR) ||
+ (cfg_param.clk_mode ==
+ IPU_CSI_CLK_MODE_CCIR1120_INTERLACED_SDR)) {
+ __raw_writel(0x40030, CSI_CCIR_CODE_1(csi));
+ __raw_writel(0xFF0000, CSI_CCIR_CODE_3(csi));
+ _ipu_csi_ccir_err_detection_enable(csi);
+ } else if ((cfg_param.clk_mode == IPU_CSI_CLK_MODE_GATED_CLK) ||
+ (cfg_param.clk_mode == IPU_CSI_CLK_MODE_NONGATED_CLK)) {
+ _ipu_csi_ccir_err_detection_disable(csi);
+ }
+
+ dev_dbg(g_ipu_dev, "CSI_SENS_CONF = 0x%08X\n",
+ __raw_readl(CSI_SENS_CONF(csi)));
+ dev_dbg(g_ipu_dev, "CSI_ACT_FRM_SIZE = 0x%08X\n",
+ __raw_readl(CSI_ACT_FRM_SIZE(csi)));
+
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+
+ return 0;
+}
+EXPORT_SYMBOL(ipu_csi_init_interface);
+
+/*!
+ * ipu_csi_get_sensor_protocol
+ *
+ * @param csi csi 0 or csi 1
+ *
+ * @return Returns sensor protocol
+ */
+int32_t ipu_csi_get_sensor_protocol(uint32_t csi)
+{
+ return (__raw_readl(CSI_SENS_CONF(csi)) &
+ CSI_SENS_CONF_SENS_PRTCL_MASK) >>
+ CSI_SENS_CONF_SENS_PRTCL_SHIFT;
+}
+EXPORT_SYMBOL(ipu_csi_get_sensor_protocol);
+
+/*!
+ * _ipu_csi_mclk_set
+ *
+ * @param pixel_clk desired pixel clock frequency in Hz
+ * @param csi csi 0 or csi 1
+ *
+ * @return Returns 0 on success or negative error code on fail
+ */
+int _ipu_csi_mclk_set(uint32_t pixel_clk, uint32_t csi)
+{
+ uint32_t temp;
+ uint32_t div_ratio;
+
+ div_ratio = (clk_get_rate(g_ipu_clk) / pixel_clk) - 1;
+
+ if (div_ratio > 0xFF || div_ratio < 0) {
+ dev_dbg(g_ipu_dev, "The value of pixel_clk extends normal range\n");
+ return -EINVAL;
+ }
+
+ temp = __raw_readl(CSI_SENS_CONF(csi));
+ temp &= ~CSI_SENS_CONF_DIVRATIO_MASK;
+ __raw_writel(temp | (div_ratio << CSI_SENS_CONF_DIVRATIO_SHIFT),
+ CSI_SENS_CONF(csi));
+
+ return 0;
+}
+
+/*!
+ * ipu_csi_enable_mclk
+ *
+ * @param csi csi 0 or csi 1
+ * @param flag true to enable mclk, false to disable mclk
+ * @param wait true to wait 100ms make clock stable, false not wait
+ *
+ * @return Returns 0 on success
+ */
+int ipu_csi_enable_mclk(int csi, bool flag, bool wait)
+{
+ if (flag) {
+ clk_enable(g_csi_clk[csi]);
+ if (wait == true)
+ msleep(10);
+ } else {
+ clk_disable(g_csi_clk[csi]);
+ }
+
+ return 0;
+}
+EXPORT_SYMBOL(ipu_csi_enable_mclk);
+
+/*!
+ * ipu_csi_get_window_size
+ *
+ * @param width pointer to window width
+ * @param height pointer to window height
+ * @param csi csi 0 or csi 1
+ */
+void ipu_csi_get_window_size(uint32_t *width, uint32_t *height, uint32_t csi)
+{
+ uint32_t reg;
+ unsigned long lock_flags;
+
+ if (g_ipu_clk_enabled == false) {
+ stop_dvfs_per();
+ g_ipu_clk_enabled = true;
+ clk_enable(g_ipu_clk);
+ }
+
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+
+ reg = __raw_readl(CSI_ACT_FRM_SIZE(csi));
+ *width = (reg & 0xFFFF) + 1;
+ *height = (reg >> 16 & 0xFFFF) + 1;
+
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+}
+EXPORT_SYMBOL(ipu_csi_get_window_size);
+
+/*!
+ * ipu_csi_set_window_size
+ *
+ * @param width window width
+ * @param height window height
+ * @param csi csi 0 or csi 1
+ */
+void ipu_csi_set_window_size(uint32_t width, uint32_t height, uint32_t csi)
+{
+ unsigned long lock_flags;
+
+ if (g_ipu_clk_enabled == false) {
+ stop_dvfs_per();
+ g_ipu_clk_enabled = true;
+ clk_enable(g_ipu_clk);
+ }
+
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+
+ __raw_writel((width - 1) | (height - 1) << 16, CSI_ACT_FRM_SIZE(csi));
+
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+}
+EXPORT_SYMBOL(ipu_csi_set_window_size);
+
+/*!
+ * ipu_csi_set_window_pos
+ *
+ * @param left uint32 window x start
+ * @param top uint32 window y start
+ * @param csi csi 0 or csi 1
+ */
+void ipu_csi_set_window_pos(uint32_t left, uint32_t top, uint32_t csi)
+{
+ uint32_t temp;
+ unsigned long lock_flags;
+
+ if (g_ipu_clk_enabled == false) {
+ stop_dvfs_per();
+ g_ipu_clk_enabled = true;
+ clk_enable(g_ipu_clk);
+ }
+
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+
+ temp = __raw_readl(CSI_OUT_FRM_CTRL(csi));
+ temp &= ~(CSI_HSC_MASK | CSI_VSC_MASK);
+ temp |= ((top << CSI_VSC_SHIFT) | (left << CSI_HSC_SHIFT));
+ __raw_writel(temp, CSI_OUT_FRM_CTRL(csi));
+
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+}
+EXPORT_SYMBOL(ipu_csi_set_window_pos);
+
+/*!
+ * _ipu_csi_horizontal_downsize_enable
+ * Enable horizontal downsizing(decimation) by 2.
+ *
+ * @param csi csi 0 or csi 1
+ */
+void _ipu_csi_horizontal_downsize_enable(uint32_t csi)
+{
+ uint32_t temp;
+ unsigned long lock_flags;
+
+ if (g_ipu_clk_enabled == false) {
+ stop_dvfs_per();
+ g_ipu_clk_enabled = true;
+ clk_enable(g_ipu_clk);
+ }
+
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+
+ temp = __raw_readl(CSI_OUT_FRM_CTRL(csi));
+ temp |= CSI_HORI_DOWNSIZE_EN;
+ __raw_writel(temp, CSI_OUT_FRM_CTRL(csi));
+
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+}
+
+/*!
+ * _ipu_csi_horizontal_downsize_disable
+ * Disable horizontal downsizing(decimation) by 2.
+ *
+ * @param csi csi 0 or csi 1
+ */
+void _ipu_csi_horizontal_downsize_disable(uint32_t csi)
+{
+ uint32_t temp;
+ unsigned long lock_flags;
+
+ if (g_ipu_clk_enabled == false) {
+ stop_dvfs_per();
+ g_ipu_clk_enabled = true;
+ clk_enable(g_ipu_clk);
+ }
+
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+
+ temp = __raw_readl(CSI_OUT_FRM_CTRL(csi));
+ temp &= ~CSI_HORI_DOWNSIZE_EN;
+ __raw_writel(temp, CSI_OUT_FRM_CTRL(csi));
+
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+}
+
+/*!
+ * _ipu_csi_vertical_downsize_enable
+ * Enable vertical downsizing(decimation) by 2.
+ *
+ * @param csi csi 0 or csi 1
+ */
+void _ipu_csi_vertical_downsize_enable(uint32_t csi)
+{
+ uint32_t temp;
+ unsigned long lock_flags;
+
+ if (g_ipu_clk_enabled == false) {
+ stop_dvfs_per();
+ g_ipu_clk_enabled = true;
+ clk_enable(g_ipu_clk);
+ }
+
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+
+ temp = __raw_readl(CSI_OUT_FRM_CTRL(csi));
+ temp |= CSI_VERT_DOWNSIZE_EN;
+ __raw_writel(temp, CSI_OUT_FRM_CTRL(csi));
+
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+}
+
+/*!
+ * _ipu_csi_vertical_downsize_disable
+ * Disable vertical downsizing(decimation) by 2.
+ *
+ * @param csi csi 0 or csi 1
+ */
+void _ipu_csi_vertical_downsize_disable(uint32_t csi)
+{
+ uint32_t temp;
+ unsigned long lock_flags;
+
+ if (g_ipu_clk_enabled == false) {
+ stop_dvfs_per();
+ g_ipu_clk_enabled = true;
+ clk_enable(g_ipu_clk);
+ }
+
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+
+ temp = __raw_readl(CSI_OUT_FRM_CTRL(csi));
+ temp &= ~CSI_VERT_DOWNSIZE_EN;
+ __raw_writel(temp, CSI_OUT_FRM_CTRL(csi));
+
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+}
+
+/*!
+ * ipu_csi_set_test_generator
+ *
+ * @param active 1 for active and 0 for inactive
+ * @param r_value red value for the generated pattern of even pixel
+ * @param g_value green value for the generated pattern of even
+ * pixel
+ * @param b_value blue value for the generated pattern of even pixel
+ * @param pixel_clk desired pixel clock frequency in Hz
+ * @param csi csi 0 or csi 1
+ */
+void ipu_csi_set_test_generator(bool active, uint32_t r_value,
+ uint32_t g_value, uint32_t b_value, uint32_t pix_clk, uint32_t csi)
+{
+ uint32_t temp;
+ unsigned long lock_flags;
+
+ if (g_ipu_clk_enabled == false) {
+ stop_dvfs_per();
+ g_ipu_clk_enabled = true;
+ clk_enable(g_ipu_clk);
+ }
+
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+
+ temp = __raw_readl(CSI_TST_CTRL(csi));
+
+ if (active == false) {
+ temp &= ~CSI_TEST_GEN_MODE_EN;
+ __raw_writel(temp, CSI_TST_CTRL(csi));
+ } else {
+ /* Set sensb_mclk div_ratio*/
+ _ipu_csi_mclk_set(pix_clk, csi);
+
+ temp &= ~(CSI_TEST_GEN_R_MASK | CSI_TEST_GEN_G_MASK |
+ CSI_TEST_GEN_B_MASK);
+ temp |= CSI_TEST_GEN_MODE_EN;
+ temp |= (r_value << CSI_TEST_GEN_R_SHIFT) |
+ (g_value << CSI_TEST_GEN_G_SHIFT) |
+ (b_value << CSI_TEST_GEN_B_SHIFT);
+ __raw_writel(temp, CSI_TST_CTRL(csi));
+ }
+
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+}
+EXPORT_SYMBOL(ipu_csi_set_test_generator);
+
+/*!
+ * _ipu_csi_ccir_err_detection_en
+ * Enable error detection and correction for
+ * CCIR interlaced mode with protection bit.
+ *
+ * @param csi csi 0 or csi 1
+ */
+void _ipu_csi_ccir_err_detection_enable(uint32_t csi)
+{
+ uint32_t temp;
+
+ if (g_ipu_clk_enabled == false) {
+ stop_dvfs_per();
+ g_ipu_clk_enabled = true;
+ clk_enable(g_ipu_clk);
+ }
+
+ temp = __raw_readl(CSI_CCIR_CODE_1(csi));
+ temp |= CSI_CCIR_ERR_DET_EN;
+ __raw_writel(temp, CSI_CCIR_CODE_1(csi));
+}
+
+/*!
+ * _ipu_csi_ccir_err_detection_disable
+ * Disable error detection and correction for
+ * CCIR interlaced mode with protection bit.
+ *
+ * @param csi csi 0 or csi 1
+ */
+void _ipu_csi_ccir_err_detection_disable(uint32_t csi)
+{
+ uint32_t temp;
+
+ if (g_ipu_clk_enabled == false) {
+ stop_dvfs_per();
+ g_ipu_clk_enabled = true;
+ clk_enable(g_ipu_clk);
+ }
+
+ temp = __raw_readl(CSI_CCIR_CODE_1(csi));
+ temp &= ~CSI_CCIR_ERR_DET_EN;
+ __raw_writel(temp, CSI_CCIR_CODE_1(csi));
+}
+
+/*!
+ * _ipu_csi_set_mipi_di
+ *
+ * @param num MIPI data identifier 0-3 handled by CSI
+ * @param di_val data identifier value
+ * @param csi csi 0 or csi 1
+ *
+ * @return Returns 0 on success or negative error code on fail
+ */
+int _ipu_csi_set_mipi_di(uint32_t num, uint32_t di_val, uint32_t csi)
+{
+ uint32_t temp;
+ int retval = 0;
+ unsigned long lock_flags;
+
+ if (di_val > 0xFFL) {
+ retval = -EINVAL;
+ goto err;
+ }
+
+ if (g_ipu_clk_enabled == false) {
+ stop_dvfs_per();
+ g_ipu_clk_enabled = true;
+ clk_enable(g_ipu_clk);
+ }
+
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+
+ temp = __raw_readl(CSI_MIPI_DI(csi));
+
+ switch (num) {
+ case IPU_CSI_MIPI_DI0:
+ temp &= ~CSI_MIPI_DI0_MASK;
+ temp |= (di_val << CSI_MIPI_DI0_SHIFT);
+ __raw_writel(temp, CSI_MIPI_DI(csi));
+ break;
+ case IPU_CSI_MIPI_DI1:
+ temp &= ~CSI_MIPI_DI1_MASK;
+ temp |= (di_val << CSI_MIPI_DI1_SHIFT);
+ __raw_writel(temp, CSI_MIPI_DI(csi));
+ break;
+ case IPU_CSI_MIPI_DI2:
+ temp &= ~CSI_MIPI_DI2_MASK;
+ temp |= (di_val << CSI_MIPI_DI2_SHIFT);
+ __raw_writel(temp, CSI_MIPI_DI(csi));
+ break;
+ case IPU_CSI_MIPI_DI3:
+ temp &= ~CSI_MIPI_DI3_MASK;
+ temp |= (di_val << CSI_MIPI_DI3_SHIFT);
+ __raw_writel(temp, CSI_MIPI_DI(csi));
+ break;
+ default:
+ retval = -EINVAL;
+ goto err;
+ }
+
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+err:
+ return retval;
+}
+
+/*!
+ * _ipu_csi_set_skip_isp
+ *
+ * @param skip select frames to be skipped and set the
+ * correspond bits to 1
+ * @param max_ratio number of frames in a skipping set and the
+ * maximum value of max_ratio is 5
+ * @param csi csi 0 or csi 1
+ *
+ * @return Returns 0 on success or negative error code on fail
+ */
+int _ipu_csi_set_skip_isp(uint32_t skip, uint32_t max_ratio, uint32_t csi)
+{
+ uint32_t temp;
+ int retval = 0;
+ unsigned long lock_flags;
+
+ if (max_ratio > 5) {
+ retval = -EINVAL;
+ goto err;
+ }
+
+ if (g_ipu_clk_enabled == false) {
+ stop_dvfs_per();
+ g_ipu_clk_enabled = true;
+ clk_enable(g_ipu_clk);
+ }
+
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+
+ temp = __raw_readl(CSI_SKIP(csi));
+ temp &= ~(CSI_MAX_RATIO_SKIP_ISP_MASK | CSI_SKIP_ISP_MASK);
+ temp |= (max_ratio << CSI_MAX_RATIO_SKIP_ISP_SHIFT) |
+ (skip << CSI_SKIP_ISP_SHIFT);
+ __raw_writel(temp, CSI_SKIP(csi));
+
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+err:
+ return retval;
+}
+
+/*!
+ * _ipu_csi_set_skip_smfc
+ *
+ * @param skip select frames to be skipped and set the
+ * correspond bits to 1
+ * @param max_ratio number of frames in a skipping set and the
+ * maximum value of max_ratio is 5
+ * @param id csi to smfc skipping id
+ * @param csi csi 0 or csi 1
+ *
+ * @return Returns 0 on success or negative error code on fail
+ */
+int _ipu_csi_set_skip_smfc(uint32_t skip, uint32_t max_ratio,
+ uint32_t id, uint32_t csi)
+{
+ uint32_t temp;
+ int retval = 0;
+ unsigned long lock_flags;
+
+ if (max_ratio > 5 || id > 3) {
+ retval = -EINVAL;
+ goto err;
+ }
+
+ if (g_ipu_clk_enabled == false) {
+ stop_dvfs_per();
+ g_ipu_clk_enabled = true;
+ clk_enable(g_ipu_clk);
+ }
+
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+
+ temp = __raw_readl(CSI_SKIP(csi));
+ temp &= ~(CSI_MAX_RATIO_SKIP_SMFC_MASK | CSI_ID_2_SKIP_MASK |
+ CSI_SKIP_SMFC_MASK);
+ temp |= (max_ratio << CSI_MAX_RATIO_SKIP_SMFC_SHIFT) |
+ (id << CSI_ID_2_SKIP_SHIFT) |
+ (skip << CSI_SKIP_SMFC_SHIFT);
+ __raw_writel(temp, CSI_SKIP(csi));
+
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+err:
+ return retval;
+}
+
+/*!
+ * _ipu_smfc_init
+ * Map CSI frames to IDMAC channels.
+ *
+ * @param channel IDMAC channel 0-3
+ * @param mipi_id mipi id number 0-3
+ * @param csi csi0 or csi1
+ */
+void _ipu_smfc_init(ipu_channel_t channel, uint32_t mipi_id, uint32_t csi)
+{
+ uint32_t temp;
+
+ temp = __raw_readl(SMFC_MAP);
+
+ switch (channel) {
+ case CSI_MEM0:
+ temp &= ~SMFC_MAP_CH0_MASK;
+ temp |= ((csi << 2) | mipi_id) << SMFC_MAP_CH0_SHIFT;
+ break;
+ case CSI_MEM1:
+ temp &= ~SMFC_MAP_CH1_MASK;
+ temp |= ((csi << 2) | mipi_id) << SMFC_MAP_CH1_SHIFT;
+ break;
+ case CSI_MEM2:
+ temp &= ~SMFC_MAP_CH2_MASK;
+ temp |= ((csi << 2) | mipi_id) << SMFC_MAP_CH2_SHIFT;
+ break;
+ case CSI_MEM3:
+ temp &= ~SMFC_MAP_CH3_MASK;
+ temp |= ((csi << 2) | mipi_id) << SMFC_MAP_CH3_SHIFT;
+ break;
+ default:
+ return;
+ }
+
+ __raw_writel(temp, SMFC_MAP);
+}
+
+/*!
+ * _ipu_smfc_set_wmc
+ * Caution: The number of required channels, the enabled channels
+ * and the FIFO size per channel are configured restrictedly.
+ *
+ * @param channel IDMAC channel 0-3
+ * @param set set 1 or clear 0
+ * @param level water mark level when FIFO is on the
+ * relative size
+ */
+void _ipu_smfc_set_wmc(ipu_channel_t channel, bool set, uint32_t level)
+{
+ uint32_t temp;
+ unsigned long lock_flags;
+
+ if (g_ipu_clk_enabled == false) {
+ stop_dvfs_per();
+ g_ipu_clk_enabled = true;
+ clk_enable(g_ipu_clk);
+ }
+
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+
+ temp = __raw_readl(SMFC_WMC);
+
+ switch (channel) {
+ case CSI_MEM0:
+ if (set == true) {
+ temp &= ~SMFC_WM0_SET_MASK;
+ temp |= level << SMFC_WM0_SET_SHIFT;
+ } else {
+ temp &= ~SMFC_WM0_CLR_MASK;
+ temp |= level << SMFC_WM0_CLR_SHIFT;
+ }
+ break;
+ case CSI_MEM1:
+ if (set == true) {
+ temp &= ~SMFC_WM1_SET_MASK;
+ temp |= level << SMFC_WM1_SET_SHIFT;
+ } else {
+ temp &= ~SMFC_WM1_CLR_MASK;
+ temp |= level << SMFC_WM1_CLR_SHIFT;
+ }
+ break;
+ case CSI_MEM2:
+ if (set == true) {
+ temp &= ~SMFC_WM2_SET_MASK;
+ temp |= level << SMFC_WM2_SET_SHIFT;
+ } else {
+ temp &= ~SMFC_WM2_CLR_MASK;
+ temp |= level << SMFC_WM2_CLR_SHIFT;
+ }
+ break;
+ case CSI_MEM3:
+ if (set == true) {
+ temp &= ~SMFC_WM3_SET_MASK;
+ temp |= level << SMFC_WM3_SET_SHIFT;
+ } else {
+ temp &= ~SMFC_WM3_CLR_MASK;
+ temp |= level << SMFC_WM3_CLR_SHIFT;
+ }
+ break;
+ default:
+ return;
+ }
+
+ __raw_writel(temp, SMFC_WMC);
+
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+}
+
+/*!
+ * _ipu_smfc_set_burst_size
+ *
+ * @param channel IDMAC channel 0-3
+ * @param bs burst size of IDMAC channel,
+ * the value programmed here shoud be BURST_SIZE-1
+ */
+void _ipu_smfc_set_burst_size(ipu_channel_t channel, uint32_t bs)
+{
+ uint32_t temp;
+ unsigned long lock_flags;
+
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+
+ temp = __raw_readl(SMFC_BS);
+
+ switch (channel) {
+ case CSI_MEM0:
+ temp &= ~SMFC_BS0_MASK;
+ temp |= bs << SMFC_BS0_SHIFT;
+ break;
+ case CSI_MEM1:
+ temp &= ~SMFC_BS1_MASK;
+ temp |= bs << SMFC_BS1_SHIFT;
+ break;
+ case CSI_MEM2:
+ temp &= ~SMFC_BS2_MASK;
+ temp |= bs << SMFC_BS2_SHIFT;
+ break;
+ case CSI_MEM3:
+ temp &= ~SMFC_BS3_MASK;
+ temp |= bs << SMFC_BS3_SHIFT;
+ break;
+ default:
+ return;
+ }
+
+ __raw_writel(temp, SMFC_BS);
+
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+}
+
+/*!
+ * _ipu_csi_init
+ *
+ * @param channel IDMAC channel
+ * @param csi csi 0 or csi 1
+ *
+ * @return Returns 0 on success or negative error code on fail
+ */
+int _ipu_csi_init(ipu_channel_t channel, uint32_t csi)
+{
+ uint32_t csi_sens_conf, csi_dest;
+ int retval = 0;
+
+ switch (channel) {
+ case CSI_MEM0:
+ case CSI_MEM1:
+ case CSI_MEM2:
+ case CSI_MEM3:
+ csi_dest = CSI_DATA_DEST_IDMAC;
+ break;
+ case CSI_PRP_ENC_MEM:
+ case CSI_PRP_VF_MEM:
+ csi_dest = CSI_DATA_DEST_IC;
+ break;
+ default:
+ retval = -EINVAL;
+ goto err;
+ }
+
+ csi_sens_conf = __raw_readl(CSI_SENS_CONF(csi));
+ csi_sens_conf &= ~CSI_SENS_CONF_DATA_DEST_MASK;
+ __raw_writel(csi_sens_conf | (csi_dest <<
+ CSI_SENS_CONF_DATA_DEST_SHIFT), CSI_SENS_CONF(csi));
+err:
+ return retval;
+}
diff --git a/drivers/mxc/ipu3/ipu_common.c b/drivers/mxc/ipu3/ipu_common.c
new file mode 100644
index 000000000000..1bacec010f77
--- /dev/null
+++ b/drivers/mxc/ipu3/ipu_common.c
@@ -0,0 +1,2644 @@
+/*
+ * Copyright 2005-2011 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file ipu_common.c
+ *
+ * @brief This file contains the IPU driver common API functions.
+ *
+ * @ingroup IPU
+ */
+#include <linux/types.h>
+#include <linux/init.h>
+#include <linux/platform_device.h>
+#include <linux/err.h>
+#include <linux/spinlock.h>
+#include <linux/delay.h>
+#include <linux/interrupt.h>
+#include <linux/io.h>
+#include <linux/ipu.h>
+#include <linux/clk.h>
+#include <mach/clock.h>
+#include <mach/hardware.h>
+#include <mach/mxc_dvfs.h>
+
+#include "ipu_prv.h"
+#include "ipu_regs.h"
+#include "ipu_param_mem.h"
+
+struct ipu_irq_node {
+ irqreturn_t(*handler) (int, void *); /*!< the ISR */
+ const char *name; /*!< device associated with the interrupt */
+ void *dev_id; /*!< some unique information for the ISR */
+ __u32 flags; /*!< not used */
+};
+
+/* Globals */
+struct clk *g_ipu_clk;
+bool g_ipu_clk_enabled;
+struct clk *g_di_clk[2];
+struct clk *g_pixel_clk[2];
+struct clk *g_csi_clk[2];
+unsigned char g_dc_di_assignment[10];
+ipu_channel_t g_ipu_csi_channel[2];
+int g_ipu_irq[2];
+int g_ipu_hw_rev;
+bool g_sec_chan_en[24];
+bool g_thrd_chan_en[24];
+bool g_chan_is_interlaced[52];
+uint32_t g_channel_init_mask;
+uint32_t g_channel_enable_mask;
+DEFINE_SPINLOCK(ipu_lock);
+struct device *g_ipu_dev;
+
+static struct ipu_irq_node ipu_irq_list[IPU_IRQ_COUNT];
+static const char driver_name[] = "mxc_ipu";
+
+static int ipu_dc_use_count;
+static int ipu_dp_use_count;
+static int ipu_dmfc_use_count;
+static int ipu_smfc_use_count;
+static int ipu_ic_use_count;
+static int ipu_rot_use_count;
+static int ipu_vdi_use_count;
+static int ipu_di_use_count[2];
+static int ipu_csi_use_count[2];
+/* Set to the follow using IC direct channel, default non */
+static ipu_channel_t using_ic_dirct_ch;
+
+/* for power gating */
+static uint32_t ipu_conf_reg;
+static uint32_t ic_conf_reg;
+static uint32_t ipu_cha_db_mode_reg[4];
+static uint32_t ipu_cha_cur_buf_reg[4];
+static uint32_t idma_enable_reg[2];
+static uint32_t buf_ready_reg[8];
+
+u32 *ipu_cm_reg;
+u32 *ipu_idmac_reg;
+u32 *ipu_dp_reg;
+u32 *ipu_ic_reg;
+u32 *ipu_dc_reg;
+u32 *ipu_dc_tmpl_reg;
+u32 *ipu_dmfc_reg;
+u32 *ipu_di_reg[2];
+u32 *ipu_smfc_reg;
+u32 *ipu_csi_reg[2];
+u32 *ipu_cpmem_base;
+u32 *ipu_tpmem_base;
+u32 *ipu_disp_base[2];
+u32 *ipu_vdi_reg;
+
+/* Static functions */
+static irqreturn_t ipu_irq_handler(int irq, void *desc);
+
+static inline uint32_t channel_2_dma(ipu_channel_t ch, ipu_buffer_t type)
+{
+ return ((uint32_t) ch >> (6 * type)) & 0x3F;
+};
+
+static inline int _ipu_is_ic_chan(uint32_t dma_chan)
+{
+ return ((dma_chan >= 11) && (dma_chan <= 22) && (dma_chan != 17) && (dma_chan != 18));
+}
+
+static inline int _ipu_is_ic_graphic_chan(uint32_t dma_chan)
+{
+ return (dma_chan == 14 || dma_chan == 15);
+}
+
+/* Either DP BG or DP FG can be graphic window */
+static inline int _ipu_is_dp_graphic_chan(uint32_t dma_chan)
+{
+ return (dma_chan == 23 || dma_chan == 27);
+}
+
+static inline int _ipu_is_irt_chan(uint32_t dma_chan)
+{
+ return ((dma_chan >= 45) && (dma_chan <= 50));
+}
+
+static inline int _ipu_is_dmfc_chan(uint32_t dma_chan)
+{
+ return ((dma_chan >= 23) && (dma_chan <= 29));
+}
+
+static inline int _ipu_is_smfc_chan(uint32_t dma_chan)
+{
+ return ((dma_chan >= 0) && (dma_chan <= 3));
+}
+
+#define idma_is_valid(ch) (ch != NO_DMA)
+#define idma_mask(ch) (idma_is_valid(ch) ? (1UL << (ch & 0x1F)) : 0)
+#define idma_is_set(reg, dma) (__raw_readl(reg(dma)) & idma_mask(dma))
+
+static unsigned long _ipu_pixel_clk_get_rate(struct clk *clk)
+{
+ u32 div = __raw_readl(DI_BS_CLKGEN0(clk->id));
+ if (div == 0)
+ return 0;
+ return (clk_get_rate(clk->parent) * 16) / div;
+}
+
+static unsigned long _ipu_pixel_clk_round_rate(struct clk *clk, unsigned long rate)
+{
+ u32 div, div1;
+ u32 parent_rate = clk_get_rate(clk->parent) * 16;
+ /*
+ * Calculate divider
+ * Fractional part is 4 bits,
+ * so simply multiply by 2^4 to get fractional part.
+ */
+ div = parent_rate / rate;
+
+ if (div < 0x10) /* Min DI disp clock divider is 1 */
+ div = 0x10;
+ if (div & ~0xFEF)
+ div &= 0xFF8;
+ else {
+ div1 = div & 0xFE0;
+ if ((parent_rate / div1 - parent_rate / div) < rate / 4)
+ div = div1;
+ else
+ div &= 0xFF8;
+ }
+ return parent_rate / div;
+}
+
+static int _ipu_pixel_clk_set_rate(struct clk *clk, unsigned long rate)
+{
+ u32 div = (clk_get_rate(clk->parent) * 16) / rate;
+
+ __raw_writel(div, DI_BS_CLKGEN0(clk->id));
+
+ /* Setup pixel clock timing */
+ /* FIXME: needs to be more flexible */
+ /* Down time is half of period */
+ __raw_writel((div / 16) << 16, DI_BS_CLKGEN1(clk->id));
+
+ return 0;
+}
+
+static int _ipu_pixel_clk_enable(struct clk *clk)
+{
+ u32 disp_gen = __raw_readl(IPU_DISP_GEN);
+ disp_gen |= clk->id ? DI1_COUNTER_RELEASE : DI0_COUNTER_RELEASE;
+ __raw_writel(disp_gen, IPU_DISP_GEN);
+
+ start_dvfs_per();
+
+ return 0;
+}
+
+static void _ipu_pixel_clk_disable(struct clk *clk)
+{
+ u32 disp_gen = __raw_readl(IPU_DISP_GEN);
+ disp_gen &= clk->id ? ~DI1_COUNTER_RELEASE : ~DI0_COUNTER_RELEASE;
+ __raw_writel(disp_gen, IPU_DISP_GEN);
+
+ start_dvfs_per();
+}
+
+static int _ipu_pixel_clk_set_parent(struct clk *clk, struct clk *parent)
+{
+ u32 di_gen = __raw_readl(DI_GENERAL(clk->id));
+
+ if (parent == g_ipu_clk)
+ di_gen &= ~DI_GEN_DI_CLK_EXT;
+ else if (!IS_ERR(g_di_clk[clk->id]) && parent == g_di_clk[clk->id])
+ di_gen |= DI_GEN_DI_CLK_EXT;
+ else
+ return -EINVAL;
+
+ __raw_writel(di_gen, DI_GENERAL(clk->id));
+ return 0;
+}
+
+static struct clk pixel_clk[] = {
+ {
+ .id = 0,
+ .get_rate = _ipu_pixel_clk_get_rate,
+ .set_rate = _ipu_pixel_clk_set_rate,
+ .round_rate = _ipu_pixel_clk_round_rate,
+ .set_parent = _ipu_pixel_clk_set_parent,
+ .enable = _ipu_pixel_clk_enable,
+ .disable = _ipu_pixel_clk_disable,
+ },
+ {
+ .id = 1,
+ .get_rate = _ipu_pixel_clk_get_rate,
+ .set_rate = _ipu_pixel_clk_set_rate,
+ .round_rate = _ipu_pixel_clk_round_rate,
+ .set_parent = _ipu_pixel_clk_set_parent,
+ .enable = _ipu_pixel_clk_enable,
+ .disable = _ipu_pixel_clk_disable,
+ },
+};
+
+/*!
+ * This function is called by the driver framework to initialize the IPU
+ * hardware.
+ *
+ * @param dev The device structure for the IPU passed in by the
+ * driver framework.
+ *
+ * @return Returns 0 on success or negative error code on error
+ */
+static int ipu_probe(struct platform_device *pdev)
+{
+ struct resource *res;
+ struct mxc_ipu_config *plat_data = pdev->dev.platform_data;
+ unsigned long ipu_base;
+
+ spin_lock_init(&ipu_lock);
+
+ g_ipu_hw_rev = plat_data->rev;
+
+ g_ipu_dev = &pdev->dev;
+
+ /* Register IPU interrupts */
+ g_ipu_irq[0] = platform_get_irq(pdev, 0);
+ if (g_ipu_irq[0] < 0)
+ return -EINVAL;
+
+ if (request_irq(g_ipu_irq[0], ipu_irq_handler, 0, pdev->name, 0) != 0) {
+ dev_err(g_ipu_dev, "request SYNC interrupt failed\n");
+ return -EBUSY;
+ }
+ /* Some platforms have 2 IPU interrupts */
+ g_ipu_irq[1] = platform_get_irq(pdev, 1);
+ if (g_ipu_irq[1] >= 0) {
+ if (request_irq
+ (g_ipu_irq[1], ipu_irq_handler, 0, pdev->name, 0) != 0) {
+ dev_err(g_ipu_dev, "request ERR interrupt failed\n");
+ return -EBUSY;
+ }
+ }
+
+ res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+ if (IS_ERR(res))
+ return -ENODEV;
+
+ ipu_base = res->start;
+ if (g_ipu_hw_rev == 3) /* IPUv3M */
+ ipu_base += IPUV3M_REG_BASE;
+ else /* IPUv3D, v3E, v3EX */
+ ipu_base += IPU_REG_BASE;
+
+ ipu_cm_reg = ioremap(ipu_base + IPU_CM_REG_BASE, PAGE_SIZE);
+ ipu_ic_reg = ioremap(ipu_base + IPU_IC_REG_BASE, PAGE_SIZE);
+ ipu_idmac_reg = ioremap(ipu_base + IPU_IDMAC_REG_BASE, PAGE_SIZE);
+ /* DP Registers are accessed thru the SRM */
+ ipu_dp_reg = ioremap(ipu_base + IPU_SRM_REG_BASE, PAGE_SIZE);
+ ipu_dc_reg = ioremap(ipu_base + IPU_DC_REG_BASE, PAGE_SIZE);
+ ipu_dmfc_reg = ioremap(ipu_base + IPU_DMFC_REG_BASE, PAGE_SIZE);
+ ipu_di_reg[0] = ioremap(ipu_base + IPU_DI0_REG_BASE, PAGE_SIZE);
+ ipu_di_reg[1] = ioremap(ipu_base + IPU_DI1_REG_BASE, PAGE_SIZE);
+ ipu_smfc_reg = ioremap(ipu_base + IPU_SMFC_REG_BASE, PAGE_SIZE);
+ ipu_csi_reg[0] = ioremap(ipu_base + IPU_CSI0_REG_BASE, PAGE_SIZE);
+ ipu_csi_reg[1] = ioremap(ipu_base + IPU_CSI1_REG_BASE, PAGE_SIZE);
+ ipu_cpmem_base = ioremap(ipu_base + IPU_CPMEM_REG_BASE, PAGE_SIZE);
+ ipu_tpmem_base = ioremap(ipu_base + IPU_TPM_REG_BASE, SZ_64K);
+ ipu_dc_tmpl_reg = ioremap(ipu_base + IPU_DC_TMPL_REG_BASE, SZ_128K);
+ ipu_disp_base[1] = ioremap(ipu_base + IPU_DISP1_BASE, SZ_4K);
+ ipu_vdi_reg = ioremap(ipu_base + IPU_VDI_REG_BASE, PAGE_SIZE);
+
+ dev_dbg(g_ipu_dev, "IPU VDI Regs = %p\n", ipu_vdi_reg);
+ dev_dbg(g_ipu_dev, "IPU CM Regs = %p\n", ipu_cm_reg);
+ dev_dbg(g_ipu_dev, "IPU IC Regs = %p\n", ipu_ic_reg);
+ dev_dbg(g_ipu_dev, "IPU IDMAC Regs = %p\n", ipu_idmac_reg);
+ dev_dbg(g_ipu_dev, "IPU DP Regs = %p\n", ipu_dp_reg);
+ dev_dbg(g_ipu_dev, "IPU DC Regs = %p\n", ipu_dc_reg);
+ dev_dbg(g_ipu_dev, "IPU DMFC Regs = %p\n", ipu_dmfc_reg);
+ dev_dbg(g_ipu_dev, "IPU DI0 Regs = %p\n", ipu_di_reg[0]);
+ dev_dbg(g_ipu_dev, "IPU DI1 Regs = %p\n", ipu_di_reg[1]);
+ dev_dbg(g_ipu_dev, "IPU SMFC Regs = %p\n", ipu_smfc_reg);
+ dev_dbg(g_ipu_dev, "IPU CSI0 Regs = %p\n", ipu_csi_reg[0]);
+ dev_dbg(g_ipu_dev, "IPU CSI1 Regs = %p\n", ipu_csi_reg[1]);
+ dev_dbg(g_ipu_dev, "IPU CPMem = %p\n", ipu_cpmem_base);
+ dev_dbg(g_ipu_dev, "IPU TPMem = %p\n", ipu_tpmem_base);
+ dev_dbg(g_ipu_dev, "IPU DC Template Mem = %p\n", ipu_dc_tmpl_reg);
+ dev_dbg(g_ipu_dev, "IPU Display Region 1 Mem = %p\n", ipu_disp_base[1]);
+
+ g_pixel_clk[0] = &pixel_clk[0];
+ g_pixel_clk[1] = &pixel_clk[1];
+
+ /* Enable IPU and CSI clocks */
+ /* Get IPU clock freq */
+ g_ipu_clk = clk_get(&pdev->dev, "ipu_clk");
+ dev_dbg(g_ipu_dev, "ipu_clk = %lu\n", clk_get_rate(g_ipu_clk));
+
+ if (plat_data->reset)
+ plat_data->reset();
+
+ clk_set_parent(g_pixel_clk[0], g_ipu_clk);
+ clk_set_parent(g_pixel_clk[1], g_ipu_clk);
+ clk_enable(g_ipu_clk);
+
+ g_di_clk[0] = plat_data->di_clk[0];
+ g_di_clk[1] = plat_data->di_clk[1];
+
+ g_csi_clk[0] = plat_data->csi_clk[0];
+ g_csi_clk[1] = plat_data->csi_clk[1];
+
+ __raw_writel(0x807FFFFF, IPU_MEM_RST);
+ while (__raw_readl(IPU_MEM_RST) & 0x80000000)
+ ;
+
+ _ipu_init_dc_mappings();
+
+ /* Enable error interrupts by default */
+ __raw_writel(0xFFFFFFFF, IPU_INT_CTRL(5));
+ __raw_writel(0xFFFFFFFF, IPU_INT_CTRL(6));
+ __raw_writel(0xFFFFFFFF, IPU_INT_CTRL(9));
+ __raw_writel(0xFFFFFFFF, IPU_INT_CTRL(10));
+
+ /* DMFC Init */
+ _ipu_dmfc_init(DMFC_NORMAL, 1);
+
+ /* Set sync refresh channels and CSI->mem channel as high priority */
+ __raw_writel(0x18800001L, IDMAC_CHA_PRI(0));
+
+ /* Set MCU_T to divide MCU access window into 2 */
+ __raw_writel(0x00400000L | (IPU_MCU_T_DEFAULT << 18), IPU_DISP_GEN);
+
+ clk_disable(g_ipu_clk);
+
+ register_ipu_device();
+
+ return 0;
+}
+
+int ipu_remove(struct platform_device *pdev)
+{
+ if (g_ipu_irq[0])
+ free_irq(g_ipu_irq[0], 0);
+ if (g_ipu_irq[1])
+ free_irq(g_ipu_irq[1], 0);
+
+ clk_put(g_ipu_clk);
+
+ iounmap(ipu_cm_reg);
+ iounmap(ipu_ic_reg);
+ iounmap(ipu_idmac_reg);
+ iounmap(ipu_dc_reg);
+ iounmap(ipu_dp_reg);
+ iounmap(ipu_dmfc_reg);
+ iounmap(ipu_di_reg[0]);
+ iounmap(ipu_di_reg[1]);
+ iounmap(ipu_smfc_reg);
+ iounmap(ipu_csi_reg[0]);
+ iounmap(ipu_csi_reg[1]);
+ iounmap(ipu_cpmem_base);
+ iounmap(ipu_tpmem_base);
+ iounmap(ipu_dc_tmpl_reg);
+ iounmap(ipu_disp_base[1]);
+ iounmap(ipu_vdi_reg);
+
+ return 0;
+}
+
+void ipu_dump_registers(void)
+{
+ printk(KERN_DEBUG "IPU_CONF = \t0x%08X\n", __raw_readl(IPU_CONF));
+ printk(KERN_DEBUG "IDMAC_CONF = \t0x%08X\n", __raw_readl(IDMAC_CONF));
+ printk(KERN_DEBUG "IDMAC_CHA_EN1 = \t0x%08X\n",
+ __raw_readl(IDMAC_CHA_EN(0)));
+ printk(KERN_DEBUG "IDMAC_CHA_EN2 = \t0x%08X\n",
+ __raw_readl(IDMAC_CHA_EN(32)));
+ printk(KERN_DEBUG "IDMAC_CHA_PRI1 = \t0x%08X\n",
+ __raw_readl(IDMAC_CHA_PRI(0)));
+ printk(KERN_DEBUG "IDMAC_CHA_PRI2 = \t0x%08X\n",
+ __raw_readl(IDMAC_CHA_PRI(32)));
+ printk(KERN_DEBUG "IDMAC_BAND_EN1 = \t0x%08X\n",
+ __raw_readl(IDMAC_BAND_EN(0)));
+ printk(KERN_DEBUG "IDMAC_BAND_EN2 = \t0x%08X\n",
+ __raw_readl(IDMAC_BAND_EN(32)));
+ printk(KERN_DEBUG "IPU_CHA_DB_MODE_SEL0 = \t0x%08X\n",
+ __raw_readl(IPU_CHA_DB_MODE_SEL(0)));
+ printk(KERN_DEBUG "IPU_CHA_DB_MODE_SEL1 = \t0x%08X\n",
+ __raw_readl(IPU_CHA_DB_MODE_SEL(32)));
+ printk(KERN_DEBUG "DMFC_WR_CHAN = \t0x%08X\n",
+ __raw_readl(DMFC_WR_CHAN));
+ printk(KERN_DEBUG "DMFC_WR_CHAN_DEF = \t0x%08X\n",
+ __raw_readl(DMFC_WR_CHAN_DEF));
+ printk(KERN_DEBUG "DMFC_DP_CHAN = \t0x%08X\n",
+ __raw_readl(DMFC_DP_CHAN));
+ printk(KERN_DEBUG "DMFC_DP_CHAN_DEF = \t0x%08X\n",
+ __raw_readl(DMFC_DP_CHAN_DEF));
+ printk(KERN_DEBUG "DMFC_IC_CTRL = \t0x%08X\n",
+ __raw_readl(DMFC_IC_CTRL));
+ printk(KERN_DEBUG "IPU_FS_PROC_FLOW1 = \t0x%08X\n",
+ __raw_readl(IPU_FS_PROC_FLOW1));
+ printk(KERN_DEBUG "IPU_FS_PROC_FLOW2 = \t0x%08X\n",
+ __raw_readl(IPU_FS_PROC_FLOW2));
+ printk(KERN_DEBUG "IPU_FS_PROC_FLOW3 = \t0x%08X\n",
+ __raw_readl(IPU_FS_PROC_FLOW3));
+ printk(KERN_DEBUG "IPU_FS_DISP_FLOW1 = \t0x%08X\n",
+ __raw_readl(IPU_FS_DISP_FLOW1));
+}
+
+/*!
+ * This function is called to initialize a logical IPU channel.
+ *
+ * @param channel Input parameter for the logical channel ID to init.
+ *
+ * @param params Input parameter containing union of channel
+ * initialization parameters.
+ *
+ * @return Returns 0 on success or negative error code on fail
+ */
+int32_t ipu_init_channel(ipu_channel_t channel, ipu_channel_params_t *params)
+{
+ int ret = 0;
+ uint32_t ipu_conf;
+ uint32_t reg;
+ unsigned long lock_flags;
+
+ dev_dbg(g_ipu_dev, "init channel = %d\n", IPU_CHAN_ID(channel));
+
+ /* re-enable error interrupts every time a channel is initialized */
+ __raw_writel(0xFFFFFFFF, IPU_INT_CTRL(5));
+ __raw_writel(0xFFFFFFFF, IPU_INT_CTRL(6));
+ __raw_writel(0xFFFFFFFF, IPU_INT_CTRL(9));
+ __raw_writel(0xFFFFFFFF, IPU_INT_CTRL(10));
+
+ if (g_ipu_clk_enabled == false) {
+ stop_dvfs_per();
+ g_ipu_clk_enabled = true;
+ clk_enable(g_ipu_clk);
+ }
+
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+
+ if (g_channel_init_mask & (1L << IPU_CHAN_ID(channel))) {
+ dev_err(g_ipu_dev, "Warning: channel already initialized %d\n",
+ IPU_CHAN_ID(channel));
+ }
+
+ ipu_conf = __raw_readl(IPU_CONF);
+
+ switch (channel) {
+ case CSI_MEM0:
+ case CSI_MEM1:
+ case CSI_MEM2:
+ case CSI_MEM3:
+ if (params->csi_mem.csi > 1) {
+ ret = -EINVAL;
+ goto err;
+ }
+
+ if (params->csi_mem.interlaced)
+ g_chan_is_interlaced[channel_2_dma(channel,
+ IPU_OUTPUT_BUFFER)] = true;
+ else
+ g_chan_is_interlaced[channel_2_dma(channel,
+ IPU_OUTPUT_BUFFER)] = false;
+
+ ipu_smfc_use_count++;
+ g_ipu_csi_channel[params->csi_mem.csi] = channel;
+
+ /*SMFC setting*/
+ if (params->csi_mem.mipi_en) {
+ ipu_conf |= (1 << (IPU_CONF_CSI0_DATA_SOURCE_OFFSET +
+ params->csi_mem.csi));
+ _ipu_smfc_init(channel, params->csi_mem.mipi_id,
+ params->csi_mem.csi);
+ } else {
+ ipu_conf &= ~(1 << (IPU_CONF_CSI0_DATA_SOURCE_OFFSET +
+ params->csi_mem.csi));
+ _ipu_smfc_init(channel, 0, params->csi_mem.csi);
+ }
+
+ /*CSI data (include compander) dest*/
+ _ipu_csi_init(channel, params->csi_mem.csi);
+ break;
+ case CSI_PRP_ENC_MEM:
+ if (params->csi_prp_enc_mem.csi > 1) {
+ ret = -EINVAL;
+ goto err;
+ }
+ if (using_ic_dirct_ch == MEM_VDI_PRP_VF_MEM) {
+ ret = -EINVAL;
+ goto err;
+ }
+ using_ic_dirct_ch = CSI_PRP_ENC_MEM;
+
+ ipu_ic_use_count++;
+ g_ipu_csi_channel[params->csi_prp_enc_mem.csi] = channel;
+
+ /*Without SMFC, CSI only support parallel data source*/
+ ipu_conf &= ~(1 << (IPU_CONF_CSI0_DATA_SOURCE_OFFSET +
+ params->csi_prp_enc_mem.csi));
+
+ /*CSI0/1 feed into IC*/
+ ipu_conf &= ~IPU_CONF_IC_INPUT;
+ if (params->csi_prp_enc_mem.csi)
+ ipu_conf |= IPU_CONF_CSI_SEL;
+ else
+ ipu_conf &= ~IPU_CONF_CSI_SEL;
+
+ /*PRP skip buffer in memory, only valid when RWS_EN is true*/
+ reg = __raw_readl(IPU_FS_PROC_FLOW1);
+ __raw_writel(reg & ~FS_ENC_IN_VALID, IPU_FS_PROC_FLOW1);
+
+ /*CSI data (include compander) dest*/
+ _ipu_csi_init(channel, params->csi_prp_enc_mem.csi);
+ _ipu_ic_init_prpenc(params, true);
+ break;
+ case CSI_PRP_VF_MEM:
+ if (params->csi_prp_vf_mem.csi > 1) {
+ ret = -EINVAL;
+ goto err;
+ }
+ if (using_ic_dirct_ch == MEM_VDI_PRP_VF_MEM) {
+ ret = -EINVAL;
+ goto err;
+ }
+ using_ic_dirct_ch = CSI_PRP_VF_MEM;
+
+ ipu_ic_use_count++;
+ g_ipu_csi_channel[params->csi_prp_vf_mem.csi] = channel;
+
+ /*Without SMFC, CSI only support parallel data source*/
+ ipu_conf &= ~(1 << (IPU_CONF_CSI0_DATA_SOURCE_OFFSET +
+ params->csi_prp_vf_mem.csi));
+
+ /*CSI0/1 feed into IC*/
+ ipu_conf &= ~IPU_CONF_IC_INPUT;
+ if (params->csi_prp_vf_mem.csi)
+ ipu_conf |= IPU_CONF_CSI_SEL;
+ else
+ ipu_conf &= ~IPU_CONF_CSI_SEL;
+
+ /*PRP skip buffer in memory, only valid when RWS_EN is true*/
+ reg = __raw_readl(IPU_FS_PROC_FLOW1);
+ __raw_writel(reg & ~FS_VF_IN_VALID, IPU_FS_PROC_FLOW1);
+
+ /*CSI data (include compander) dest*/
+ _ipu_csi_init(channel, params->csi_prp_vf_mem.csi);
+ _ipu_ic_init_prpvf(params, true);
+ break;
+ case MEM_PRP_VF_MEM:
+ ipu_ic_use_count++;
+ reg = __raw_readl(IPU_FS_PROC_FLOW1);
+ __raw_writel(reg | FS_VF_IN_VALID, IPU_FS_PROC_FLOW1);
+
+ if (params->mem_prp_vf_mem.graphics_combine_en)
+ g_sec_chan_en[IPU_CHAN_ID(channel)] = true;
+ if (params->mem_prp_vf_mem.alpha_chan_en)
+ g_thrd_chan_en[IPU_CHAN_ID(channel)] = true;
+
+ _ipu_ic_init_prpvf(params, false);
+ break;
+ case MEM_VDI_PRP_VF_MEM:
+ if ((using_ic_dirct_ch == CSI_PRP_VF_MEM) ||
+ (using_ic_dirct_ch == CSI_PRP_ENC_MEM)) {
+ ret = -EINVAL;
+ goto err;
+ }
+ using_ic_dirct_ch = MEM_VDI_PRP_VF_MEM;
+ ipu_ic_use_count++;
+ ipu_vdi_use_count++;
+ reg = __raw_readl(IPU_FS_PROC_FLOW1);
+ reg &= ~FS_VDI_SRC_SEL_MASK;
+ __raw_writel(reg , IPU_FS_PROC_FLOW1);
+
+ if (params->mem_prp_vf_mem.graphics_combine_en)
+ g_sec_chan_en[IPU_CHAN_ID(channel)] = true;
+ _ipu_ic_init_prpvf(params, false);
+ _ipu_vdi_init(channel, params);
+ break;
+ case MEM_VDI_PRP_VF_MEM_P:
+ _ipu_vdi_init(channel, params);
+ break;
+ case MEM_VDI_PRP_VF_MEM_N:
+ _ipu_vdi_init(channel, params);
+ break;
+ case MEM_ROT_VF_MEM:
+ ipu_ic_use_count++;
+ ipu_rot_use_count++;
+ _ipu_ic_init_rotate_vf(params);
+ break;
+ case MEM_PRP_ENC_MEM:
+ ipu_ic_use_count++;
+ reg = __raw_readl(IPU_FS_PROC_FLOW1);
+ __raw_writel(reg | FS_ENC_IN_VALID, IPU_FS_PROC_FLOW1);
+ _ipu_ic_init_prpenc(params, false);
+ break;
+ case MEM_ROT_ENC_MEM:
+ ipu_ic_use_count++;
+ ipu_rot_use_count++;
+ _ipu_ic_init_rotate_enc(params);
+ break;
+ case MEM_PP_MEM:
+ if (params->mem_pp_mem.graphics_combine_en)
+ g_sec_chan_en[IPU_CHAN_ID(channel)] = true;
+ if (params->mem_pp_mem.alpha_chan_en)
+ g_thrd_chan_en[IPU_CHAN_ID(channel)] = true;
+ _ipu_ic_init_pp(params);
+ ipu_ic_use_count++;
+ break;
+ case MEM_ROT_PP_MEM:
+ _ipu_ic_init_rotate_pp(params);
+ ipu_ic_use_count++;
+ ipu_rot_use_count++;
+ break;
+ case MEM_DC_SYNC:
+ if (params->mem_dc_sync.di > 1) {
+ ret = -EINVAL;
+ goto err;
+ }
+
+ g_dc_di_assignment[1] = params->mem_dc_sync.di;
+ _ipu_dc_init(1, params->mem_dc_sync.di,
+ params->mem_dc_sync.interlaced,
+ params->mem_dc_sync.out_pixel_fmt);
+ ipu_di_use_count[params->mem_dc_sync.di]++;
+ ipu_dc_use_count++;
+ ipu_dmfc_use_count++;
+ break;
+ case MEM_BG_SYNC:
+ if (params->mem_dp_bg_sync.di > 1) {
+ ret = -EINVAL;
+ goto err;
+ }
+
+ if (params->mem_dp_bg_sync.alpha_chan_en)
+ g_thrd_chan_en[IPU_CHAN_ID(channel)] = true;
+
+ g_dc_di_assignment[5] = params->mem_dp_bg_sync.di;
+ _ipu_dp_init(channel, params->mem_dp_bg_sync.in_pixel_fmt,
+ params->mem_dp_bg_sync.out_pixel_fmt);
+ _ipu_dc_init(5, params->mem_dp_bg_sync.di,
+ params->mem_dp_bg_sync.interlaced,
+ params->mem_dp_bg_sync.out_pixel_fmt);
+ ipu_di_use_count[params->mem_dp_bg_sync.di]++;
+ ipu_dc_use_count++;
+ ipu_dp_use_count++;
+ ipu_dmfc_use_count++;
+ break;
+ case MEM_FG_SYNC:
+ _ipu_dp_init(channel, params->mem_dp_fg_sync.in_pixel_fmt,
+ params->mem_dp_fg_sync.out_pixel_fmt);
+
+ if (params->mem_dp_fg_sync.alpha_chan_en)
+ g_thrd_chan_en[IPU_CHAN_ID(channel)] = true;
+
+ ipu_dc_use_count++;
+ ipu_dp_use_count++;
+ ipu_dmfc_use_count++;
+ break;
+ case DIRECT_ASYNC0:
+ if (params->direct_async.di > 1) {
+ ret = -EINVAL;
+ goto err;
+ }
+
+ g_dc_di_assignment[8] = params->direct_async.di;
+ _ipu_dc_init(8, params->direct_async.di, false, IPU_PIX_FMT_GENERIC);
+ ipu_di_use_count[params->direct_async.di]++;
+ ipu_dc_use_count++;
+ break;
+ case DIRECT_ASYNC1:
+ if (params->direct_async.di > 1) {
+ ret = -EINVAL;
+ goto err;
+ }
+
+ g_dc_di_assignment[9] = params->direct_async.di;
+ _ipu_dc_init(9, params->direct_async.di, false, IPU_PIX_FMT_GENERIC);
+ ipu_di_use_count[params->direct_async.di]++;
+ ipu_dc_use_count++;
+ break;
+ default:
+ dev_err(g_ipu_dev, "Missing channel initialization\n");
+ break;
+ }
+
+ /* Enable IPU sub module */
+ g_channel_init_mask |= 1L << IPU_CHAN_ID(channel);
+
+ __raw_writel(ipu_conf, IPU_CONF);
+
+err:
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+ return ret;
+}
+EXPORT_SYMBOL(ipu_init_channel);
+
+/*!
+ * This function is called to uninitialize a logical IPU channel.
+ *
+ * @param channel Input parameter for the logical channel ID to uninit.
+ */
+void ipu_uninit_channel(ipu_channel_t channel)
+{
+ unsigned long lock_flags;
+ uint32_t reg;
+ uint32_t in_dma, out_dma = 0;
+ uint32_t ipu_conf;
+
+ if ((g_channel_init_mask & (1L << IPU_CHAN_ID(channel))) == 0) {
+ dev_err(g_ipu_dev, "Channel already uninitialized %d\n",
+ IPU_CHAN_ID(channel));
+ return;
+ }
+
+ /* Make sure channel is disabled */
+ /* Get input and output dma channels */
+ in_dma = channel_2_dma(channel, IPU_VIDEO_IN_BUFFER);
+ out_dma = channel_2_dma(channel, IPU_OUTPUT_BUFFER);
+
+ if (idma_is_set(IDMAC_CHA_EN, in_dma) ||
+ idma_is_set(IDMAC_CHA_EN, out_dma)) {
+ dev_err(g_ipu_dev,
+ "Channel %d is not disabled, disable first\n",
+ IPU_CHAN_ID(channel));
+ return;
+ }
+
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+
+ ipu_conf = __raw_readl(IPU_CONF);
+
+ /* Reset the double buffer */
+ reg = __raw_readl(IPU_CHA_DB_MODE_SEL(in_dma));
+ __raw_writel(reg & ~idma_mask(in_dma), IPU_CHA_DB_MODE_SEL(in_dma));
+ reg = __raw_readl(IPU_CHA_DB_MODE_SEL(out_dma));
+ __raw_writel(reg & ~idma_mask(out_dma), IPU_CHA_DB_MODE_SEL(out_dma));
+
+ if (_ipu_is_ic_chan(in_dma) || _ipu_is_dp_graphic_chan(in_dma)) {
+ g_sec_chan_en[IPU_CHAN_ID(channel)] = false;
+ g_thrd_chan_en[IPU_CHAN_ID(channel)] = false;
+ }
+
+ switch (channel) {
+ case CSI_MEM0:
+ case CSI_MEM1:
+ case CSI_MEM2:
+ case CSI_MEM3:
+ ipu_smfc_use_count--;
+ if (g_ipu_csi_channel[0] == channel) {
+ g_ipu_csi_channel[0] = CHAN_NONE;
+ } else if (g_ipu_csi_channel[1] == channel) {
+ g_ipu_csi_channel[1] = CHAN_NONE;
+ }
+ break;
+ case CSI_PRP_ENC_MEM:
+ ipu_ic_use_count--;
+ if (using_ic_dirct_ch == CSI_PRP_ENC_MEM)
+ using_ic_dirct_ch = 0;
+ _ipu_ic_uninit_prpenc();
+ if (g_ipu_csi_channel[0] == channel) {
+ g_ipu_csi_channel[0] = CHAN_NONE;
+ } else if (g_ipu_csi_channel[1] == channel) {
+ g_ipu_csi_channel[1] = CHAN_NONE;
+ }
+ break;
+ case CSI_PRP_VF_MEM:
+ ipu_ic_use_count--;
+ if (using_ic_dirct_ch == CSI_PRP_VF_MEM)
+ using_ic_dirct_ch = 0;
+ _ipu_ic_uninit_prpvf();
+ if (g_ipu_csi_channel[0] == channel) {
+ g_ipu_csi_channel[0] = CHAN_NONE;
+ } else if (g_ipu_csi_channel[1] == channel) {
+ g_ipu_csi_channel[1] = CHAN_NONE;
+ }
+ break;
+ case MEM_PRP_VF_MEM:
+ ipu_ic_use_count--;
+ _ipu_ic_uninit_prpvf();
+ reg = __raw_readl(IPU_FS_PROC_FLOW1);
+ __raw_writel(reg & ~FS_VF_IN_VALID, IPU_FS_PROC_FLOW1);
+ break;
+ case MEM_VDI_PRP_VF_MEM:
+ ipu_ic_use_count--;
+ ipu_vdi_use_count--;
+ if (using_ic_dirct_ch == MEM_VDI_PRP_VF_MEM)
+ using_ic_dirct_ch = 0;
+ _ipu_ic_uninit_prpvf();
+ _ipu_vdi_uninit();
+ reg = __raw_readl(IPU_FS_PROC_FLOW1);
+ __raw_writel(reg & ~FS_VF_IN_VALID, IPU_FS_PROC_FLOW1);
+ break;
+ case MEM_VDI_PRP_VF_MEM_P:
+ case MEM_VDI_PRP_VF_MEM_N:
+ break;
+ case MEM_ROT_VF_MEM:
+ ipu_rot_use_count--;
+ ipu_ic_use_count--;
+ _ipu_ic_uninit_rotate_vf();
+ break;
+ case MEM_PRP_ENC_MEM:
+ ipu_ic_use_count--;
+ _ipu_ic_uninit_prpenc();
+ reg = __raw_readl(IPU_FS_PROC_FLOW1);
+ __raw_writel(reg & ~FS_ENC_IN_VALID, IPU_FS_PROC_FLOW1);
+ break;
+ case MEM_ROT_ENC_MEM:
+ ipu_rot_use_count--;
+ ipu_ic_use_count--;
+ _ipu_ic_uninit_rotate_enc();
+ break;
+ case MEM_PP_MEM:
+ ipu_ic_use_count--;
+ _ipu_ic_uninit_pp();
+ break;
+ case MEM_ROT_PP_MEM:
+ ipu_rot_use_count--;
+ ipu_ic_use_count--;
+ _ipu_ic_uninit_rotate_pp();
+ break;
+ case MEM_DC_SYNC:
+ _ipu_dc_uninit(1);
+ ipu_di_use_count[g_dc_di_assignment[1]]--;
+ ipu_dc_use_count--;
+ ipu_dmfc_use_count--;
+ break;
+ case MEM_BG_SYNC:
+ _ipu_dp_uninit(channel);
+ _ipu_dc_uninit(5);
+ ipu_di_use_count[g_dc_di_assignment[5]]--;
+ ipu_dc_use_count--;
+ ipu_dp_use_count--;
+ ipu_dmfc_use_count--;
+ break;
+ case MEM_FG_SYNC:
+ _ipu_dp_uninit(channel);
+ ipu_dc_use_count--;
+ ipu_dp_use_count--;
+ ipu_dmfc_use_count--;
+ break;
+ case DIRECT_ASYNC0:
+ _ipu_dc_uninit(8);
+ ipu_di_use_count[g_dc_di_assignment[8]]--;
+ ipu_dc_use_count--;
+ break;
+ case DIRECT_ASYNC1:
+ _ipu_dc_uninit(9);
+ ipu_di_use_count[g_dc_di_assignment[9]]--;
+ ipu_dc_use_count--;
+ break;
+ default:
+ break;
+ }
+
+ g_channel_init_mask &= ~(1L << IPU_CHAN_ID(channel));
+
+ if (ipu_ic_use_count == 0)
+ ipu_conf &= ~IPU_CONF_IC_EN;
+ if (ipu_vdi_use_count == 0) {
+ ipu_conf &= ~IPU_CONF_ISP_EN;
+ ipu_conf &= ~IPU_CONF_VDI_EN;
+ ipu_conf &= ~IPU_CONF_IC_INPUT;
+ }
+ if (ipu_rot_use_count == 0)
+ ipu_conf &= ~IPU_CONF_ROT_EN;
+ if (ipu_dc_use_count == 0)
+ ipu_conf &= ~IPU_CONF_DC_EN;
+ if (ipu_dp_use_count == 0)
+ ipu_conf &= ~IPU_CONF_DP_EN;
+ if (ipu_dmfc_use_count == 0)
+ ipu_conf &= ~IPU_CONF_DMFC_EN;
+ if (ipu_di_use_count[0] == 0) {
+ ipu_conf &= ~IPU_CONF_DI0_EN;
+ }
+ if (ipu_di_use_count[1] == 0) {
+ ipu_conf &= ~IPU_CONF_DI1_EN;
+ }
+ if (ipu_smfc_use_count == 0)
+ ipu_conf &= ~IPU_CONF_SMFC_EN;
+
+ __raw_writel(ipu_conf, IPU_CONF);
+
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+
+ if (ipu_conf == 0) {
+ clk_disable(g_ipu_clk);
+ g_ipu_clk_enabled = false;
+ }
+
+ WARN_ON(ipu_ic_use_count < 0);
+ WARN_ON(ipu_vdi_use_count < 0);
+ WARN_ON(ipu_rot_use_count < 0);
+ WARN_ON(ipu_dc_use_count < 0);
+ WARN_ON(ipu_dp_use_count < 0);
+ WARN_ON(ipu_dmfc_use_count < 0);
+ WARN_ON(ipu_smfc_use_count < 0);
+}
+EXPORT_SYMBOL(ipu_uninit_channel);
+
+/*!
+ * This function is called to initialize a buffer for logical IPU channel.
+ *
+ * @param channel Input parameter for the logical channel ID.
+ *
+ * @param type Input parameter which buffer to initialize.
+ *
+ * @param pixel_fmt Input parameter for pixel format of buffer.
+ * Pixel format is a FOURCC ASCII code.
+ *
+ * @param width Input parameter for width of buffer in pixels.
+ *
+ * @param height Input parameter for height of buffer in pixels.
+ *
+ * @param stride Input parameter for stride length of buffer
+ * in pixels.
+ *
+ * @param rot_mode Input parameter for rotation setting of buffer.
+ * A rotation setting other than
+ * IPU_ROTATE_VERT_FLIP
+ * should only be used for input buffers of
+ * rotation channels.
+ *
+ * @param phyaddr_0 Input parameter buffer 0 physical address.
+ *
+ * @param phyaddr_1 Input parameter buffer 1 physical address.
+ * Setting this to a value other than NULL enables
+ * double buffering mode.
+ *
+ * @param u private u offset for additional cropping,
+ * zero if not used.
+ *
+ * @param v private v offset for additional cropping,
+ * zero if not used.
+ *
+ * @return Returns 0 on success or negative error code on fail
+ */
+int32_t ipu_init_channel_buffer(ipu_channel_t channel, ipu_buffer_t type,
+ uint32_t pixel_fmt,
+ uint16_t width, uint16_t height,
+ uint32_t stride,
+ ipu_rotate_mode_t rot_mode,
+ dma_addr_t phyaddr_0, dma_addr_t phyaddr_1,
+ uint32_t u, uint32_t v)
+{
+ unsigned long lock_flags;
+ uint32_t reg;
+ uint32_t dma_chan;
+ uint32_t burst_size;
+
+ dma_chan = channel_2_dma(channel, type);
+ if (!idma_is_valid(dma_chan))
+ return -EINVAL;
+
+ if (stride < width * bytes_per_pixel(pixel_fmt))
+ stride = width * bytes_per_pixel(pixel_fmt);
+
+ if (stride % 4) {
+ dev_err(g_ipu_dev,
+ "Stride not 32-bit aligned, stride = %d\n", stride);
+ return -EINVAL;
+ }
+ /* IC & IRT channels' width must be multiple of 8 pixels */
+ if ((_ipu_is_ic_chan(dma_chan) || _ipu_is_irt_chan(dma_chan))
+ && (width % 8)) {
+ dev_err(g_ipu_dev, "Width must be 8 pixel multiple\n");
+ return -EINVAL;
+ }
+
+ /* Build parameter memory data for DMA channel */
+ _ipu_ch_param_init(dma_chan, pixel_fmt, width, height, stride, u, v, 0,
+ phyaddr_0, phyaddr_1);
+
+ /* Set correlative channel parameter of local alpha channel */
+ if ((_ipu_is_ic_graphic_chan(dma_chan) ||
+ _ipu_is_dp_graphic_chan(dma_chan)) &&
+ (g_thrd_chan_en[IPU_CHAN_ID(channel)] == true)) {
+ _ipu_ch_param_set_alpha_use_separate_channel(dma_chan, true);
+ _ipu_ch_param_set_alpha_buffer_memory(dma_chan);
+ _ipu_ch_param_set_alpha_condition_read(dma_chan);
+ /* fix alpha width as 8 and burst size as 16*/
+ _ipu_ch_params_set_alpha_width(dma_chan, 8);
+ _ipu_ch_param_set_burst_size(dma_chan, 16);
+ } else if (_ipu_is_ic_graphic_chan(dma_chan) &&
+ ipu_pixel_format_has_alpha(pixel_fmt))
+ _ipu_ch_param_set_alpha_use_separate_channel(dma_chan, false);
+
+ if (rot_mode)
+ _ipu_ch_param_set_rotation(dma_chan, rot_mode);
+
+ /* IC and ROT channels have restriction of 8 or 16 pix burst length */
+ if (_ipu_is_ic_chan(dma_chan)) {
+ if ((width % 16) == 0)
+ _ipu_ch_param_set_burst_size(dma_chan, 16);
+ else
+ _ipu_ch_param_set_burst_size(dma_chan, 8);
+ } else if (_ipu_is_irt_chan(dma_chan)) {
+ _ipu_ch_param_set_burst_size(dma_chan, 8);
+ _ipu_ch_param_set_block_mode(dma_chan);
+ } else if (_ipu_is_dmfc_chan(dma_chan)) {
+ u32 dmfc_dp_chan, dmfc_wr_chan;
+ /*
+ * non-interleaving format need enlarge burst size
+ * to work-around black flash issue.
+ */
+ if (((dma_chan == 23) || (dma_chan == 27) || (dma_chan == 28))
+ && ((pixel_fmt == IPU_PIX_FMT_YUV420P) ||
+ (pixel_fmt == IPU_PIX_FMT_YUV420P2) ||
+ (pixel_fmt == IPU_PIX_FMT_YVU422P) ||
+ (pixel_fmt == IPU_PIX_FMT_YUV422P) ||
+ (pixel_fmt == IPU_PIX_FMT_NV12))) {
+ if (dma_chan == 23) {
+ dmfc_dp_chan = __raw_readl(DMFC_DP_CHAN);
+ dmfc_dp_chan &= ~(0xc0);
+ dmfc_dp_chan |= 0x40;
+ __raw_writel(dmfc_dp_chan, DMFC_DP_CHAN);
+ } else if (dma_chan == 27) {
+ dmfc_dp_chan = __raw_readl(DMFC_DP_CHAN);
+ dmfc_dp_chan &= ~(0xc000);
+ dmfc_dp_chan |= 0x4000;
+ __raw_writel(dmfc_dp_chan, DMFC_DP_CHAN);
+ } else if (dma_chan == 28) {
+ dmfc_wr_chan = __raw_readl(DMFC_WR_CHAN);
+ dmfc_wr_chan &= ~(0xc0);
+ dmfc_wr_chan |= 0x40;
+ __raw_writel(dmfc_wr_chan, DMFC_WR_CHAN);
+ }
+ _ipu_ch_param_set_burst_size(dma_chan, 64);
+ } else {
+ if (dma_chan == 23) {
+ dmfc_dp_chan = __raw_readl(DMFC_DP_CHAN);
+ dmfc_dp_chan &= ~(0xc0);
+ dmfc_dp_chan |= 0x80;
+ __raw_writel(dmfc_dp_chan, DMFC_DP_CHAN);
+ } else if (dma_chan == 27) {
+ dmfc_dp_chan = __raw_readl(DMFC_DP_CHAN);
+ dmfc_dp_chan &= ~(0xc000);
+ dmfc_dp_chan |= 0x8000;
+ __raw_writel(dmfc_dp_chan, DMFC_DP_CHAN);
+ } else {
+ dmfc_wr_chan = __raw_readl(DMFC_WR_CHAN);
+ dmfc_wr_chan &= ~(0xc0);
+ dmfc_wr_chan |= 0x80;
+ __raw_writel(dmfc_wr_chan, DMFC_WR_CHAN);
+ }
+ }
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+ _ipu_dmfc_set_wait4eot(dma_chan, width);
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+ }
+
+ if (_ipu_disp_chan_is_interlaced(channel) ||
+ g_chan_is_interlaced[dma_chan])
+ _ipu_ch_param_set_interlaced_scan(dma_chan);
+
+ if (_ipu_is_ic_chan(dma_chan) || _ipu_is_irt_chan(dma_chan)) {
+ burst_size = _ipu_ch_param_get_burst_size(dma_chan);
+ _ipu_ic_idma_init(dma_chan, width, height, burst_size,
+ rot_mode);
+ } else if (_ipu_is_smfc_chan(dma_chan)) {
+ burst_size = _ipu_ch_param_get_burst_size(dma_chan);
+ if ((pixel_fmt == IPU_PIX_FMT_GENERIC) &&
+ ((_ipu_ch_param_get_bpp(dma_chan) == 5) ||
+ (_ipu_ch_param_get_bpp(dma_chan) == 3)))
+ burst_size = burst_size >> 4;
+ else
+ burst_size = burst_size >> 2;
+ _ipu_smfc_set_burst_size(channel, burst_size-1);
+ }
+
+ if (idma_is_set(IDMAC_CHA_PRI, dma_chan) && !cpu_is_mx53())
+ _ipu_ch_param_set_high_priority(dma_chan);
+
+ _ipu_ch_param_dump(dma_chan);
+
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+
+ reg = __raw_readl(IPU_CHA_DB_MODE_SEL(dma_chan));
+ if (phyaddr_1)
+ reg |= idma_mask(dma_chan);
+ else
+ reg &= ~idma_mask(dma_chan);
+ __raw_writel(reg, IPU_CHA_DB_MODE_SEL(dma_chan));
+
+ /* Reset to buffer 0 */
+ __raw_writel(idma_mask(dma_chan), IPU_CHA_CUR_BUF(dma_chan));
+
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+
+ return 0;
+}
+EXPORT_SYMBOL(ipu_init_channel_buffer);
+
+/*!
+ * This function is called to update the physical address of a buffer for
+ * a logical IPU channel.
+ *
+ * @param channel Input parameter for the logical channel ID.
+ *
+ * @param type Input parameter which buffer to initialize.
+ *
+ * @param bufNum Input parameter for buffer number to update.
+ * 0 or 1 are the only valid values.
+ *
+ * @param phyaddr Input parameter buffer physical address.
+ *
+ * @return This function returns 0 on success or negative error code on
+ * fail. This function will fail if the buffer is set to ready.
+ */
+int32_t ipu_update_channel_buffer(ipu_channel_t channel, ipu_buffer_t type,
+ uint32_t bufNum, dma_addr_t phyaddr)
+{
+ uint32_t reg;
+ int ret = 0;
+ unsigned long lock_flags;
+ uint32_t dma_chan = channel_2_dma(channel, type);
+ if (dma_chan == IDMA_CHAN_INVALID)
+ return -EINVAL;
+
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+
+ if (bufNum == 0)
+ reg = __raw_readl(IPU_CHA_BUF0_RDY(dma_chan));
+ else
+ reg = __raw_readl(IPU_CHA_BUF1_RDY(dma_chan));
+
+ if ((reg & idma_mask(dma_chan)) == 0)
+ _ipu_ch_param_set_buffer(dma_chan, bufNum, phyaddr);
+ else
+ ret = -EACCES;
+
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+ return ret;
+}
+EXPORT_SYMBOL(ipu_update_channel_buffer);
+
+
+/*!
+ * This function is called to initialize a buffer for logical IPU channel.
+ *
+ * @param channel Input parameter for the logical channel ID.
+ *
+ * @param type Input parameter which buffer to initialize.
+ *
+ * @param pixel_fmt Input parameter for pixel format of buffer.
+ * Pixel format is a FOURCC ASCII code.
+ *
+ * @param width Input parameter for width of buffer in pixels.
+ *
+ * @param height Input parameter for height of buffer in pixels.
+ *
+ * @param stride Input parameter for stride length of buffer
+ * in pixels.
+ *
+ * @param u predefined private u offset for additional cropping,
+ * zero if not used.
+ *
+ * @param v predefined private v offset for additional cropping,
+ * zero if not used.
+ *
+ * @param vertical_offset vertical offset for Y coordinate
+ * in the existed frame
+ *
+ *
+ * @param horizontal_offset horizontal offset for X coordinate
+ * in the existed frame
+ *
+ *
+ * @return Returns 0 on success or negative error code on fail
+ * This function will fail if any buffer is set to ready.
+ */
+
+int32_t ipu_update_channel_offset(ipu_channel_t channel, ipu_buffer_t type,
+ uint32_t pixel_fmt,
+ uint16_t width, uint16_t height,
+ uint32_t stride,
+ uint32_t u, uint32_t v,
+ uint32_t vertical_offset, uint32_t horizontal_offset)
+{
+ int ret = 0;
+ unsigned long lock_flags;
+ uint32_t dma_chan = channel_2_dma(channel, type);
+
+ if (dma_chan == IDMA_CHAN_INVALID)
+ return -EINVAL;
+
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+
+ if ((__raw_readl(IPU_CHA_BUF0_RDY(dma_chan)) & idma_mask(dma_chan)) ||
+ (__raw_readl(IPU_CHA_BUF0_RDY(dma_chan)) & idma_mask(dma_chan)))
+ ret = -EACCES;
+ else
+ _ipu_ch_offset_update(dma_chan, pixel_fmt, width, height, stride,
+ u, v, 0, vertical_offset, horizontal_offset);
+
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+ return ret;
+}
+EXPORT_SYMBOL(ipu_update_channel_offset);
+
+
+/*!
+ * This function is called to set a channel's buffer as ready.
+ *
+ * @param channel Input parameter for the logical channel ID.
+ *
+ * @param type Input parameter which buffer to initialize.
+ *
+ * @param bufNum Input parameter for which buffer number set to
+ * ready state.
+ *
+ * @return Returns 0 on success or negative error code on fail
+ */
+int32_t ipu_select_buffer(ipu_channel_t channel, ipu_buffer_t type,
+ uint32_t bufNum)
+{
+ uint32_t dma_chan = channel_2_dma(channel, type);
+ uint32_t reg;
+
+ if (dma_chan == IDMA_CHAN_INVALID)
+ return -EINVAL;
+
+ if (bufNum == 0) {
+ /*Mark buffer 0 as ready. */
+ reg = __raw_readl(IPU_CHA_BUF0_RDY(dma_chan));
+ __raw_writel(idma_mask(dma_chan) | reg,
+ IPU_CHA_BUF0_RDY(dma_chan));
+ } else {
+ /*Mark buffer 1 as ready. */
+ reg = __raw_readl(IPU_CHA_BUF1_RDY(dma_chan));
+ __raw_writel(idma_mask(dma_chan) | reg,
+ IPU_CHA_BUF1_RDY(dma_chan));
+ }
+ return 0;
+}
+EXPORT_SYMBOL(ipu_select_buffer);
+
+/*!
+ * This function is called to set a channel's buffer as ready.
+ *
+ * @param bufNum Input parameter for which buffer number set to
+ * ready state.
+ *
+ * @return Returns 0 on success or negative error code on fail
+ */
+int32_t ipu_select_multi_vdi_buffer(uint32_t bufNum)
+{
+
+ uint32_t dma_chan = channel_2_dma(MEM_VDI_PRP_VF_MEM, IPU_INPUT_BUFFER);
+ uint32_t mask_bit =
+ idma_mask(channel_2_dma(MEM_VDI_PRP_VF_MEM_P, IPU_INPUT_BUFFER))|
+ idma_mask(dma_chan)|
+ idma_mask(channel_2_dma(MEM_VDI_PRP_VF_MEM_N, IPU_INPUT_BUFFER));
+ uint32_t reg;
+
+ if (bufNum == 0) {
+ /*Mark buffer 0 as ready. */
+ reg = __raw_readl(IPU_CHA_BUF0_RDY(dma_chan));
+ __raw_writel(mask_bit | reg, IPU_CHA_BUF0_RDY(dma_chan));
+ } else {
+ /*Mark buffer 1 as ready. */
+ reg = __raw_readl(IPU_CHA_BUF1_RDY(dma_chan));
+ __raw_writel(mask_bit | reg, IPU_CHA_BUF1_RDY(dma_chan));
+ }
+ return 0;
+}
+EXPORT_SYMBOL(ipu_select_multi_vdi_buffer);
+
+#define NA -1
+static int proc_dest_sel[] = {
+ 0, 1, 1, 3, 5, 5, 4, 7, 8, 9, 10, 11, 12, 14, 15, 16,
+ 0, 1, 1, 5, 5, 5, 5, 5, 7, 8, 9, 10, 11, 12, 14, 31 };
+static int proc_src_sel[] = { 0, 6, 7, 6, 7, 8, 5, NA, NA, NA,
+ NA, NA, NA, NA, NA, 1, 2, 3, 4, 7, 8, NA, 8, NA };
+static int disp_src_sel[] = { 0, 6, 7, 8, 3, 4, 5, NA, NA, NA,
+ NA, NA, NA, NA, NA, 1, NA, 2, NA, 3, 4, 4, 4, 4 };
+
+
+/*!
+ * This function links 2 channels together for automatic frame
+ * synchronization. The output of the source channel is linked to the input of
+ * the destination channel.
+ *
+ * @param src_ch Input parameter for the logical channel ID of
+ * the source channel.
+ *
+ * @param dest_ch Input parameter for the logical channel ID of
+ * the destination channel.
+ *
+ * @return This function returns 0 on success or negative error code on
+ * fail.
+ */
+int32_t ipu_link_channels(ipu_channel_t src_ch, ipu_channel_t dest_ch)
+{
+ int retval = 0;
+ unsigned long lock_flags;
+ uint32_t fs_proc_flow1;
+ uint32_t fs_proc_flow2;
+ uint32_t fs_proc_flow3;
+ uint32_t fs_disp_flow1;
+
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+
+ fs_proc_flow1 = __raw_readl(IPU_FS_PROC_FLOW1);
+ fs_proc_flow2 = __raw_readl(IPU_FS_PROC_FLOW2);
+ fs_proc_flow3 = __raw_readl(IPU_FS_PROC_FLOW3);
+ fs_disp_flow1 = __raw_readl(IPU_FS_DISP_FLOW1);
+
+ switch (src_ch) {
+ case CSI_MEM0:
+ fs_proc_flow3 &= ~FS_SMFC0_DEST_SEL_MASK;
+ fs_proc_flow3 |=
+ proc_dest_sel[IPU_CHAN_ID(dest_ch)] <<
+ FS_SMFC0_DEST_SEL_OFFSET;
+ break;
+ case CSI_MEM1:
+ fs_proc_flow3 &= ~FS_SMFC1_DEST_SEL_MASK;
+ fs_proc_flow3 |=
+ proc_dest_sel[IPU_CHAN_ID(dest_ch)] <<
+ FS_SMFC1_DEST_SEL_OFFSET;
+ break;
+ case CSI_MEM2:
+ fs_proc_flow3 &= ~FS_SMFC2_DEST_SEL_MASK;
+ fs_proc_flow3 |=
+ proc_dest_sel[IPU_CHAN_ID(dest_ch)] <<
+ FS_SMFC2_DEST_SEL_OFFSET;
+ break;
+ case CSI_MEM3:
+ fs_proc_flow3 &= ~FS_SMFC3_DEST_SEL_MASK;
+ fs_proc_flow3 |=
+ proc_dest_sel[IPU_CHAN_ID(dest_ch)] <<
+ FS_SMFC3_DEST_SEL_OFFSET;
+ break;
+ case CSI_PRP_ENC_MEM:
+ fs_proc_flow2 &= ~FS_PRPENC_DEST_SEL_MASK;
+ fs_proc_flow2 |=
+ proc_dest_sel[IPU_CHAN_ID(dest_ch)] <<
+ FS_PRPENC_DEST_SEL_OFFSET;
+ break;
+ case CSI_PRP_VF_MEM:
+ fs_proc_flow2 &= ~FS_PRPVF_DEST_SEL_MASK;
+ fs_proc_flow2 |=
+ proc_dest_sel[IPU_CHAN_ID(dest_ch)] <<
+ FS_PRPVF_DEST_SEL_OFFSET;
+ break;
+ case MEM_PP_MEM:
+ fs_proc_flow2 &= ~FS_PP_DEST_SEL_MASK;
+ fs_proc_flow2 |=
+ proc_dest_sel[IPU_CHAN_ID(dest_ch)] <<
+ FS_PP_DEST_SEL_OFFSET;
+ break;
+ case MEM_ROT_PP_MEM:
+ fs_proc_flow2 &= ~FS_PP_ROT_DEST_SEL_MASK;
+ fs_proc_flow2 |=
+ proc_dest_sel[IPU_CHAN_ID(dest_ch)] <<
+ FS_PP_ROT_DEST_SEL_OFFSET;
+ break;
+ case MEM_PRP_ENC_MEM:
+ fs_proc_flow2 &= ~FS_PRPENC_DEST_SEL_MASK;
+ fs_proc_flow2 |=
+ proc_dest_sel[IPU_CHAN_ID(dest_ch)] <<
+ FS_PRPENC_DEST_SEL_OFFSET;
+ break;
+ case MEM_ROT_ENC_MEM:
+ fs_proc_flow2 &= ~FS_PRPENC_ROT_DEST_SEL_MASK;
+ fs_proc_flow2 |=
+ proc_dest_sel[IPU_CHAN_ID(dest_ch)] <<
+ FS_PRPENC_ROT_DEST_SEL_OFFSET;
+ break;
+ case MEM_PRP_VF_MEM:
+ fs_proc_flow2 &= ~FS_PRPVF_DEST_SEL_MASK;
+ fs_proc_flow2 |=
+ proc_dest_sel[IPU_CHAN_ID(dest_ch)] <<
+ FS_PRPVF_DEST_SEL_OFFSET;
+ break;
+ case MEM_VDI_PRP_VF_MEM:
+ fs_proc_flow2 &= ~FS_PRPVF_DEST_SEL_MASK;
+ fs_proc_flow2 |=
+ proc_dest_sel[IPU_CHAN_ID(dest_ch)] <<
+ FS_PRPVF_DEST_SEL_OFFSET;
+ break;
+ case MEM_ROT_VF_MEM:
+ fs_proc_flow2 &= ~FS_PRPVF_ROT_DEST_SEL_MASK;
+ fs_proc_flow2 |=
+ proc_dest_sel[IPU_CHAN_ID(dest_ch)] <<
+ FS_PRPVF_ROT_DEST_SEL_OFFSET;
+ break;
+ default:
+ retval = -EINVAL;
+ goto err;
+ }
+
+ switch (dest_ch) {
+ case MEM_PP_MEM:
+ fs_proc_flow1 &= ~FS_PP_SRC_SEL_MASK;
+ fs_proc_flow1 |=
+ proc_src_sel[IPU_CHAN_ID(src_ch)] << FS_PP_SRC_SEL_OFFSET;
+ break;
+ case MEM_ROT_PP_MEM:
+ fs_proc_flow1 &= ~FS_PP_ROT_SRC_SEL_MASK;
+ fs_proc_flow1 |=
+ proc_src_sel[IPU_CHAN_ID(src_ch)] <<
+ FS_PP_ROT_SRC_SEL_OFFSET;
+ break;
+ case MEM_PRP_ENC_MEM:
+ fs_proc_flow1 &= ~FS_PRP_SRC_SEL_MASK;
+ fs_proc_flow1 |=
+ proc_src_sel[IPU_CHAN_ID(src_ch)] << FS_PRP_SRC_SEL_OFFSET;
+ break;
+ case MEM_ROT_ENC_MEM:
+ fs_proc_flow1 &= ~FS_PRPENC_ROT_SRC_SEL_MASK;
+ fs_proc_flow1 |=
+ proc_src_sel[IPU_CHAN_ID(src_ch)] <<
+ FS_PRPENC_ROT_SRC_SEL_OFFSET;
+ break;
+ case MEM_PRP_VF_MEM:
+ fs_proc_flow1 &= ~FS_PRP_SRC_SEL_MASK;
+ fs_proc_flow1 |=
+ proc_src_sel[IPU_CHAN_ID(src_ch)] << FS_PRP_SRC_SEL_OFFSET;
+ break;
+ case MEM_VDI_PRP_VF_MEM:
+ fs_proc_flow1 &= ~FS_PRP_SRC_SEL_MASK;
+ fs_proc_flow1 |=
+ proc_src_sel[IPU_CHAN_ID(src_ch)] << FS_PRP_SRC_SEL_OFFSET;
+ break;
+ case MEM_ROT_VF_MEM:
+ fs_proc_flow1 &= ~FS_PRPVF_ROT_SRC_SEL_MASK;
+ fs_proc_flow1 |=
+ proc_src_sel[IPU_CHAN_ID(src_ch)] <<
+ FS_PRPVF_ROT_SRC_SEL_OFFSET;
+ break;
+ case MEM_DC_SYNC:
+ fs_disp_flow1 &= ~FS_DC1_SRC_SEL_MASK;
+ fs_disp_flow1 |=
+ disp_src_sel[IPU_CHAN_ID(src_ch)] << FS_DC1_SRC_SEL_OFFSET;
+ break;
+ case MEM_BG_SYNC:
+ fs_disp_flow1 &= ~FS_DP_SYNC0_SRC_SEL_MASK;
+ fs_disp_flow1 |=
+ disp_src_sel[IPU_CHAN_ID(src_ch)] <<
+ FS_DP_SYNC0_SRC_SEL_OFFSET;
+ break;
+ case MEM_FG_SYNC:
+ fs_disp_flow1 &= ~FS_DP_SYNC1_SRC_SEL_MASK;
+ fs_disp_flow1 |=
+ disp_src_sel[IPU_CHAN_ID(src_ch)] <<
+ FS_DP_SYNC1_SRC_SEL_OFFSET;
+ break;
+ case MEM_DC_ASYNC:
+ fs_disp_flow1 &= ~FS_DC2_SRC_SEL_MASK;
+ fs_disp_flow1 |=
+ disp_src_sel[IPU_CHAN_ID(src_ch)] << FS_DC2_SRC_SEL_OFFSET;
+ break;
+ case MEM_BG_ASYNC0:
+ fs_disp_flow1 &= ~FS_DP_ASYNC0_SRC_SEL_MASK;
+ fs_disp_flow1 |=
+ disp_src_sel[IPU_CHAN_ID(src_ch)] <<
+ FS_DP_ASYNC0_SRC_SEL_OFFSET;
+ break;
+ case MEM_FG_ASYNC0:
+ fs_disp_flow1 &= ~FS_DP_ASYNC1_SRC_SEL_MASK;
+ fs_disp_flow1 |=
+ disp_src_sel[IPU_CHAN_ID(src_ch)] <<
+ FS_DP_ASYNC1_SRC_SEL_OFFSET;
+ break;
+ default:
+ retval = -EINVAL;
+ goto err;
+ }
+
+ __raw_writel(fs_proc_flow1, IPU_FS_PROC_FLOW1);
+ __raw_writel(fs_proc_flow2, IPU_FS_PROC_FLOW2);
+ __raw_writel(fs_proc_flow3, IPU_FS_PROC_FLOW3);
+ __raw_writel(fs_disp_flow1, IPU_FS_DISP_FLOW1);
+
+err:
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+ return retval;
+}
+EXPORT_SYMBOL(ipu_link_channels);
+
+/*!
+ * This function unlinks 2 channels and disables automatic frame
+ * synchronization.
+ *
+ * @param src_ch Input parameter for the logical channel ID of
+ * the source channel.
+ *
+ * @param dest_ch Input parameter for the logical channel ID of
+ * the destination channel.
+ *
+ * @return This function returns 0 on success or negative error code on
+ * fail.
+ */
+int32_t ipu_unlink_channels(ipu_channel_t src_ch, ipu_channel_t dest_ch)
+{
+ int retval = 0;
+ unsigned long lock_flags;
+ uint32_t fs_proc_flow1;
+ uint32_t fs_proc_flow2;
+ uint32_t fs_proc_flow3;
+ uint32_t fs_disp_flow1;
+
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+
+ fs_proc_flow1 = __raw_readl(IPU_FS_PROC_FLOW1);
+ fs_proc_flow2 = __raw_readl(IPU_FS_PROC_FLOW2);
+ fs_proc_flow3 = __raw_readl(IPU_FS_PROC_FLOW3);
+ fs_disp_flow1 = __raw_readl(IPU_FS_DISP_FLOW1);
+
+ switch (src_ch) {
+ case CSI_MEM0:
+ fs_proc_flow3 &= ~FS_SMFC0_DEST_SEL_MASK;
+ break;
+ case CSI_MEM1:
+ fs_proc_flow3 &= ~FS_SMFC1_DEST_SEL_MASK;
+ break;
+ case CSI_MEM2:
+ fs_proc_flow3 &= ~FS_SMFC2_DEST_SEL_MASK;
+ break;
+ case CSI_MEM3:
+ fs_proc_flow3 &= ~FS_SMFC3_DEST_SEL_MASK;
+ break;
+ case CSI_PRP_ENC_MEM:
+ fs_proc_flow2 &= ~FS_PRPENC_DEST_SEL_MASK;
+ break;
+ case CSI_PRP_VF_MEM:
+ fs_proc_flow2 &= ~FS_PRPVF_DEST_SEL_MASK;
+ break;
+ case MEM_PP_MEM:
+ fs_proc_flow2 &= ~FS_PP_DEST_SEL_MASK;
+ break;
+ case MEM_ROT_PP_MEM:
+ fs_proc_flow2 &= ~FS_PP_ROT_DEST_SEL_MASK;
+ break;
+ case MEM_PRP_ENC_MEM:
+ fs_proc_flow2 &= ~FS_PRPENC_DEST_SEL_MASK;
+ break;
+ case MEM_ROT_ENC_MEM:
+ fs_proc_flow2 &= ~FS_PRPENC_ROT_DEST_SEL_MASK;
+ break;
+ case MEM_PRP_VF_MEM:
+ fs_proc_flow2 &= ~FS_PRPVF_DEST_SEL_MASK;
+ break;
+ case MEM_VDI_PRP_VF_MEM:
+ fs_proc_flow2 &= ~FS_PRPVF_DEST_SEL_MASK;
+ break;
+ case MEM_ROT_VF_MEM:
+ fs_proc_flow2 &= ~FS_PRPVF_ROT_DEST_SEL_MASK;
+ break;
+ default:
+ retval = -EINVAL;
+ goto err;
+ }
+
+ switch (dest_ch) {
+ case MEM_PP_MEM:
+ fs_proc_flow1 &= ~FS_PP_SRC_SEL_MASK;
+ break;
+ case MEM_ROT_PP_MEM:
+ fs_proc_flow1 &= ~FS_PP_ROT_SRC_SEL_MASK;
+ break;
+ case MEM_PRP_ENC_MEM:
+ fs_proc_flow1 &= ~FS_PRP_SRC_SEL_MASK;
+ break;
+ case MEM_ROT_ENC_MEM:
+ fs_proc_flow1 &= ~FS_PRPENC_ROT_SRC_SEL_MASK;
+ break;
+ case MEM_PRP_VF_MEM:
+ fs_proc_flow1 &= ~FS_PRP_SRC_SEL_MASK;
+ break;
+ case MEM_VDI_PRP_VF_MEM:
+ fs_proc_flow1 &= ~FS_PRP_SRC_SEL_MASK;
+ break;
+ case MEM_ROT_VF_MEM:
+ fs_proc_flow1 &= ~FS_PRPVF_ROT_SRC_SEL_MASK;
+ break;
+ case MEM_DC_SYNC:
+ fs_disp_flow1 &= ~FS_DC1_SRC_SEL_MASK;
+ break;
+ case MEM_BG_SYNC:
+ fs_disp_flow1 &= ~FS_DP_SYNC0_SRC_SEL_MASK;
+ break;
+ case MEM_FG_SYNC:
+ fs_disp_flow1 &= ~FS_DP_SYNC1_SRC_SEL_MASK;
+ break;
+ case MEM_DC_ASYNC:
+ fs_disp_flow1 &= ~FS_DC2_SRC_SEL_MASK;
+ break;
+ case MEM_BG_ASYNC0:
+ fs_disp_flow1 &= ~FS_DP_ASYNC0_SRC_SEL_MASK;
+ break;
+ case MEM_FG_ASYNC0:
+ fs_disp_flow1 &= ~FS_DP_ASYNC1_SRC_SEL_MASK;
+ break;
+ default:
+ retval = -EINVAL;
+ goto err;
+ }
+
+ __raw_writel(fs_proc_flow1, IPU_FS_PROC_FLOW1);
+ __raw_writel(fs_proc_flow2, IPU_FS_PROC_FLOW2);
+ __raw_writel(fs_proc_flow3, IPU_FS_PROC_FLOW3);
+ __raw_writel(fs_disp_flow1, IPU_FS_DISP_FLOW1);
+
+err:
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+ return retval;
+}
+EXPORT_SYMBOL(ipu_unlink_channels);
+
+/*!
+ * This function check whether a logical channel was enabled.
+ *
+ * @param channel Input parameter for the logical channel ID.
+ *
+ * @return This function returns 1 while request channel is enabled or
+ * 0 for not enabled.
+ */
+int32_t ipu_is_channel_busy(ipu_channel_t channel)
+{
+ uint32_t reg;
+ uint32_t in_dma;
+ uint32_t out_dma;
+
+ out_dma = channel_2_dma(channel, IPU_OUTPUT_BUFFER);
+ in_dma = channel_2_dma(channel, IPU_VIDEO_IN_BUFFER);
+
+ reg = __raw_readl(IDMAC_CHA_EN(in_dma));
+ if (reg & idma_mask(in_dma))
+ return 1;
+ reg = __raw_readl(IDMAC_CHA_EN(out_dma));
+ if (reg & idma_mask(out_dma))
+ return 1;
+ return 0;
+}
+EXPORT_SYMBOL(ipu_is_channel_busy);
+
+/*!
+ * This function enables a logical channel.
+ *
+ * @param channel Input parameter for the logical channel ID.
+ *
+ * @return This function returns 0 on success or negative error code on
+ * fail.
+ */
+int32_t ipu_enable_channel(ipu_channel_t channel)
+{
+ uint32_t reg;
+ unsigned long lock_flags;
+ uint32_t ipu_conf;
+ uint32_t in_dma;
+ uint32_t out_dma;
+ uint32_t sec_dma;
+ uint32_t thrd_dma;
+
+ if (g_channel_enable_mask & (1L << IPU_CHAN_ID(channel))) {
+ dev_err(g_ipu_dev, "Warning: channel already enabled %d\n",
+ IPU_CHAN_ID(channel));
+ }
+
+ /* Get input and output dma channels */
+ out_dma = channel_2_dma(channel, IPU_OUTPUT_BUFFER);
+ in_dma = channel_2_dma(channel, IPU_VIDEO_IN_BUFFER);
+
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+
+ ipu_conf = __raw_readl(IPU_CONF);
+ if (ipu_di_use_count[0] > 0) {
+ ipu_conf |= IPU_CONF_DI0_EN;
+ }
+ if (ipu_di_use_count[1] > 0) {
+ ipu_conf |= IPU_CONF_DI1_EN;
+ }
+ if (ipu_dp_use_count > 0)
+ ipu_conf |= IPU_CONF_DP_EN;
+ if (ipu_dc_use_count > 0)
+ ipu_conf |= IPU_CONF_DC_EN;
+ if (ipu_dmfc_use_count > 0)
+ ipu_conf |= IPU_CONF_DMFC_EN;
+ if (ipu_ic_use_count > 0)
+ ipu_conf |= IPU_CONF_IC_EN;
+ if (ipu_vdi_use_count > 0) {
+ ipu_conf |= IPU_CONF_ISP_EN;
+ ipu_conf |= IPU_CONF_VDI_EN;
+ ipu_conf |= IPU_CONF_IC_INPUT;
+ }
+ if (ipu_rot_use_count > 0)
+ ipu_conf |= IPU_CONF_ROT_EN;
+ if (ipu_smfc_use_count > 0)
+ ipu_conf |= IPU_CONF_SMFC_EN;
+ __raw_writel(ipu_conf, IPU_CONF);
+
+ if (idma_is_valid(in_dma)) {
+ reg = __raw_readl(IDMAC_CHA_EN(in_dma));
+ __raw_writel(reg | idma_mask(in_dma), IDMAC_CHA_EN(in_dma));
+ }
+ if (idma_is_valid(out_dma)) {
+ reg = __raw_readl(IDMAC_CHA_EN(out_dma));
+ __raw_writel(reg | idma_mask(out_dma), IDMAC_CHA_EN(out_dma));
+ }
+
+ if ((g_sec_chan_en[IPU_CHAN_ID(channel)]) &&
+ ((channel == MEM_PP_MEM) || (channel == MEM_PRP_VF_MEM) ||
+ (channel == MEM_VDI_PRP_VF_MEM))) {
+ sec_dma = channel_2_dma(channel, IPU_GRAPH_IN_BUFFER);
+ reg = __raw_readl(IDMAC_CHA_EN(sec_dma));
+ __raw_writel(reg | idma_mask(sec_dma), IDMAC_CHA_EN(sec_dma));
+ }
+ if ((g_thrd_chan_en[IPU_CHAN_ID(channel)]) &&
+ ((channel == MEM_PP_MEM) || (channel == MEM_PRP_VF_MEM))) {
+ thrd_dma = channel_2_dma(channel, IPU_ALPHA_IN_BUFFER);
+ reg = __raw_readl(IDMAC_CHA_EN(thrd_dma));
+ __raw_writel(reg | idma_mask(thrd_dma), IDMAC_CHA_EN(thrd_dma));
+
+ sec_dma = channel_2_dma(channel, IPU_GRAPH_IN_BUFFER);
+ reg = __raw_readl(IDMAC_SEP_ALPHA);
+ __raw_writel(reg | idma_mask(sec_dma), IDMAC_SEP_ALPHA);
+ } else if ((g_thrd_chan_en[IPU_CHAN_ID(channel)]) &&
+ ((channel == MEM_BG_SYNC) || (channel == MEM_FG_SYNC))) {
+ thrd_dma = channel_2_dma(channel, IPU_ALPHA_IN_BUFFER);
+ reg = __raw_readl(IDMAC_CHA_EN(thrd_dma));
+ __raw_writel(reg | idma_mask(thrd_dma), IDMAC_CHA_EN(thrd_dma));
+ reg = __raw_readl(IDMAC_SEP_ALPHA);
+ __raw_writel(reg | idma_mask(in_dma), IDMAC_SEP_ALPHA);
+ }
+
+ if ((channel == MEM_DC_SYNC) || (channel == MEM_BG_SYNC) ||
+ (channel == MEM_FG_SYNC)) {
+ reg = __raw_readl(IDMAC_WM_EN(in_dma));
+ __raw_writel(reg | idma_mask(in_dma), IDMAC_WM_EN(in_dma));
+
+ _ipu_dp_dc_enable(channel);
+ }
+
+ if (_ipu_is_ic_chan(in_dma) || _ipu_is_ic_chan(out_dma) ||
+ _ipu_is_irt_chan(in_dma) || _ipu_is_irt_chan(out_dma))
+ _ipu_ic_enable_task(channel);
+
+ g_channel_enable_mask |= 1L << IPU_CHAN_ID(channel);
+
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+
+ return 0;
+}
+EXPORT_SYMBOL(ipu_enable_channel);
+
+/*!
+ * This function check buffer ready for a logical channel.
+ *
+ * @param channel Input parameter for the logical channel ID.
+ *
+ * @param type Input parameter which buffer to clear.
+ *
+ * @param bufNum Input parameter for which buffer number clear
+ * ready state.
+ *
+ */
+int32_t ipu_check_buffer_ready(ipu_channel_t channel, ipu_buffer_t type,
+ uint32_t bufNum)
+{
+ uint32_t dma_chan = channel_2_dma(channel, type);
+ uint32_t reg;
+
+ if (dma_chan == IDMA_CHAN_INVALID)
+ return -EINVAL;
+
+ if (bufNum == 0)
+ reg = __raw_readl(IPU_CHA_BUF0_RDY(dma_chan));
+ else
+ reg = __raw_readl(IPU_CHA_BUF1_RDY(dma_chan));
+
+ if (reg & idma_mask(dma_chan))
+ return 1;
+ else
+ return 0;
+}
+EXPORT_SYMBOL(ipu_check_buffer_ready);
+
+/*!
+ * This function clear buffer ready for a logical channel.
+ *
+ * @param channel Input parameter for the logical channel ID.
+ *
+ * @param type Input parameter which buffer to clear.
+ *
+ * @param bufNum Input parameter for which buffer number clear
+ * ready state.
+ *
+ */
+void ipu_clear_buffer_ready(ipu_channel_t channel, ipu_buffer_t type,
+ uint32_t bufNum)
+{
+ unsigned long lock_flags;
+ uint32_t dma_ch = channel_2_dma(channel, type);
+
+ if (!idma_is_valid(dma_ch))
+ return;
+
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+
+ __raw_writel(0xF0000000, IPU_GPR); /* write one to clear */
+ if (bufNum == 0) {
+ if (idma_is_set(IPU_CHA_BUF0_RDY, dma_ch)) {
+ __raw_writel(idma_mask(dma_ch),
+ IPU_CHA_BUF0_RDY(dma_ch));
+ }
+ } else {
+ if (idma_is_set(IPU_CHA_BUF1_RDY, dma_ch)) {
+ __raw_writel(idma_mask(dma_ch),
+ IPU_CHA_BUF1_RDY(dma_ch));
+ }
+ }
+ __raw_writel(0x0, IPU_GPR); /* write one to set */
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+}
+EXPORT_SYMBOL(ipu_clear_buffer_ready);
+
+static irqreturn_t disable_chan_irq_handler(int irq, void *dev_id)
+{
+ struct completion *comp = dev_id;
+
+ complete(comp);
+ return IRQ_HANDLED;
+}
+
+/*!
+ * This function disables a logical channel.
+ *
+ * @param channel Input parameter for the logical channel ID.
+ *
+ * @param wait_for_stop Flag to set whether to wait for channel end
+ * of frame or return immediately.
+ *
+ * @return This function returns 0 on success or negative error code on
+ * fail.
+ */
+int32_t ipu_disable_channel(ipu_channel_t channel, bool wait_for_stop)
+{
+ uint32_t reg;
+ unsigned long lock_flags;
+ uint32_t in_dma;
+ uint32_t out_dma;
+ uint32_t sec_dma = NO_DMA;
+ uint32_t thrd_dma = NO_DMA;
+
+ if ((g_channel_enable_mask & (1L << IPU_CHAN_ID(channel))) == 0) {
+ dev_err(g_ipu_dev, "Channel already disabled %d\n",
+ IPU_CHAN_ID(channel));
+ return 0;
+ }
+
+ /* Get input and output dma channels */
+ out_dma = channel_2_dma(channel, IPU_OUTPUT_BUFFER);
+ in_dma = channel_2_dma(channel, IPU_VIDEO_IN_BUFFER);
+
+ if ((idma_is_valid(in_dma) &&
+ !idma_is_set(IDMAC_CHA_EN, in_dma))
+ && (idma_is_valid(out_dma) &&
+ !idma_is_set(IDMAC_CHA_EN, out_dma)))
+ return -EINVAL;
+
+ if (g_sec_chan_en[IPU_CHAN_ID(channel)])
+ sec_dma = channel_2_dma(channel, IPU_GRAPH_IN_BUFFER);
+ if (g_thrd_chan_en[IPU_CHAN_ID(channel)]) {
+ sec_dma = channel_2_dma(channel, IPU_GRAPH_IN_BUFFER);
+ thrd_dma = channel_2_dma(channel, IPU_ALPHA_IN_BUFFER);
+ }
+
+ if ((channel == MEM_BG_SYNC) || (channel == MEM_FG_SYNC) ||
+ (channel == MEM_DC_SYNC)) {
+ if (channel == MEM_FG_SYNC)
+ ipu_disp_set_window_pos(channel, 0, 0);
+
+ _ipu_dp_dc_disable(channel, false);
+
+ /*
+ * wait for BG channel EOF then disable FG-IDMAC,
+ * it avoid FG NFB4EOF error.
+ */
+ if (channel == MEM_FG_SYNC) {
+ int timeout = 50;
+
+ __raw_writel(IPUIRQ_2_MASK(IPU_IRQ_BG_SYNC_EOF),
+ IPUIRQ_2_STATREG(IPU_IRQ_BG_SYNC_EOF));
+ while ((__raw_readl(IPUIRQ_2_STATREG(IPU_IRQ_BG_SYNC_EOF)) &
+ IPUIRQ_2_MASK(IPU_IRQ_BG_SYNC_EOF)) == 0) {
+ msleep(10);
+ timeout -= 10;
+ if (timeout <= 0) {
+ dev_err(g_ipu_dev, "warning: wait for bg sync eof timeout\n");
+ break;
+ }
+ }
+ }
+ } else if (wait_for_stop) {
+ while (idma_is_set(IDMAC_CHA_BUSY, in_dma) ||
+ idma_is_set(IDMAC_CHA_BUSY, out_dma) ||
+ (g_sec_chan_en[IPU_CHAN_ID(channel)] &&
+ idma_is_set(IDMAC_CHA_BUSY, sec_dma)) ||
+ (g_thrd_chan_en[IPU_CHAN_ID(channel)] &&
+ idma_is_set(IDMAC_CHA_BUSY, thrd_dma))) {
+ uint32_t ret, irq = 0xffffffff;
+ DECLARE_COMPLETION_ONSTACK(disable_comp);
+
+ if (idma_is_set(IDMAC_CHA_BUSY, out_dma))
+ irq = out_dma;
+ if (g_sec_chan_en[IPU_CHAN_ID(channel)] &&
+ idma_is_set(IDMAC_CHA_BUSY, sec_dma))
+ irq = sec_dma;
+ if (g_thrd_chan_en[IPU_CHAN_ID(channel)] &&
+ idma_is_set(IDMAC_CHA_BUSY, thrd_dma))
+ irq = thrd_dma;
+ if (idma_is_set(IDMAC_CHA_BUSY, in_dma))
+ irq = in_dma;
+
+ if (irq == 0xffffffff) {
+ dev_err(g_ipu_dev, "warning: no channel busy, break\n");
+ break;
+ }
+ ret = ipu_request_irq(irq, disable_chan_irq_handler, 0, NULL, &disable_comp);
+ if (ret < 0) {
+ dev_err(g_ipu_dev, "irq %d in use\n", irq);
+ break;
+ } else {
+ ret = wait_for_completion_timeout(&disable_comp, msecs_to_jiffies(200));
+ ipu_free_irq(irq, &disable_comp);
+ if (ret == 0) {
+ ipu_dump_registers();
+ dev_err(g_ipu_dev, "warning: disable ipu dma channel %d during its busy state\n", irq);
+ break;
+ }
+ }
+ }
+ }
+
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+
+ if ((channel == MEM_BG_SYNC) || (channel == MEM_FG_SYNC) ||
+ (channel == MEM_DC_SYNC)) {
+ reg = __raw_readl(IDMAC_WM_EN(in_dma));
+ __raw_writel(reg & ~idma_mask(in_dma), IDMAC_WM_EN(in_dma));
+ }
+
+ /* Disable IC task */
+ if (_ipu_is_ic_chan(in_dma) || _ipu_is_ic_chan(out_dma) ||
+ _ipu_is_irt_chan(in_dma) || _ipu_is_irt_chan(out_dma))
+ _ipu_ic_disable_task(channel);
+
+ /* Disable DMA channel(s) */
+ if (idma_is_valid(in_dma)) {
+ reg = __raw_readl(IDMAC_CHA_EN(in_dma));
+ __raw_writel(reg & ~idma_mask(in_dma), IDMAC_CHA_EN(in_dma));
+ __raw_writel(idma_mask(in_dma), IPU_CHA_CUR_BUF(in_dma));
+ }
+ if (idma_is_valid(out_dma)) {
+ reg = __raw_readl(IDMAC_CHA_EN(out_dma));
+ __raw_writel(reg & ~idma_mask(out_dma), IDMAC_CHA_EN(out_dma));
+ __raw_writel(idma_mask(out_dma), IPU_CHA_CUR_BUF(out_dma));
+ }
+ if (g_sec_chan_en[IPU_CHAN_ID(channel)] && idma_is_valid(sec_dma)) {
+ reg = __raw_readl(IDMAC_CHA_EN(sec_dma));
+ __raw_writel(reg & ~idma_mask(sec_dma), IDMAC_CHA_EN(sec_dma));
+ __raw_writel(idma_mask(sec_dma), IPU_CHA_CUR_BUF(sec_dma));
+ }
+ if (g_thrd_chan_en[IPU_CHAN_ID(channel)] && idma_is_valid(thrd_dma)) {
+ reg = __raw_readl(IDMAC_CHA_EN(thrd_dma));
+ __raw_writel(reg & ~idma_mask(thrd_dma), IDMAC_CHA_EN(thrd_dma));
+ if (channel == MEM_BG_SYNC || channel == MEM_FG_SYNC) {
+ reg = __raw_readl(IDMAC_SEP_ALPHA);
+ __raw_writel(reg & ~idma_mask(in_dma), IDMAC_SEP_ALPHA);
+ } else {
+ reg = __raw_readl(IDMAC_SEP_ALPHA);
+ __raw_writel(reg & ~idma_mask(sec_dma), IDMAC_SEP_ALPHA);
+ }
+ __raw_writel(idma_mask(thrd_dma), IPU_CHA_CUR_BUF(thrd_dma));
+ }
+
+ g_channel_enable_mask &= ~(1L << IPU_CHAN_ID(channel));
+
+ /* Set channel buffers NOT to be ready */
+ if (idma_is_valid(in_dma)) {
+ ipu_clear_buffer_ready(channel, IPU_VIDEO_IN_BUFFER, 0);
+ ipu_clear_buffer_ready(channel, IPU_VIDEO_IN_BUFFER, 1);
+ }
+ if (idma_is_valid(out_dma)) {
+ ipu_clear_buffer_ready(channel, IPU_OUTPUT_BUFFER, 0);
+ ipu_clear_buffer_ready(channel, IPU_OUTPUT_BUFFER, 1);
+ }
+ if (g_sec_chan_en[IPU_CHAN_ID(channel)] && idma_is_valid(sec_dma)) {
+ ipu_clear_buffer_ready(channel, IPU_GRAPH_IN_BUFFER, 0);
+ ipu_clear_buffer_ready(channel, IPU_GRAPH_IN_BUFFER, 1);
+ }
+ if (g_thrd_chan_en[IPU_CHAN_ID(channel)] && idma_is_valid(thrd_dma)) {
+ ipu_clear_buffer_ready(channel, IPU_ALPHA_IN_BUFFER, 0);
+ ipu_clear_buffer_ready(channel, IPU_ALPHA_IN_BUFFER, 1);
+ }
+
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+
+ return 0;
+}
+EXPORT_SYMBOL(ipu_disable_channel);
+
+/*!
+ * This function enables CSI.
+ *
+ * @param csi csi num 0 or 1
+ *
+ * @return This function returns 0 on success or negative error code on
+ * fail.
+ */
+int32_t ipu_enable_csi(uint32_t csi)
+{
+ uint32_t reg;
+ unsigned long lock_flags;
+
+ if (csi > 1) {
+ dev_err(g_ipu_dev, "Wrong csi num_%d\n", csi);
+ return -EINVAL;
+ }
+
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+ ipu_csi_use_count[csi]++;
+
+ if (ipu_csi_use_count[csi] == 1) {
+ reg = __raw_readl(IPU_CONF);
+ if (csi == 0)
+ __raw_writel(reg | IPU_CONF_CSI0_EN, IPU_CONF);
+ else
+ __raw_writel(reg | IPU_CONF_CSI1_EN, IPU_CONF);
+ }
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+ return 0;
+}
+EXPORT_SYMBOL(ipu_enable_csi);
+
+/*!
+ * This function disables CSI.
+ *
+ * @param csi csi num 0 or 1
+ *
+ * @return This function returns 0 on success or negative error code on
+ * fail.
+ */
+int32_t ipu_disable_csi(uint32_t csi)
+{
+ uint32_t reg;
+ unsigned long lock_flags;
+
+ if (csi > 1) {
+ dev_err(g_ipu_dev, "Wrong csi num_%d\n", csi);
+ return -EINVAL;
+ }
+
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+ ipu_csi_use_count[csi]--;
+
+ if (ipu_csi_use_count[csi] == 0) {
+ reg = __raw_readl(IPU_CONF);
+ if (csi == 0)
+ __raw_writel(reg & ~IPU_CONF_CSI0_EN, IPU_CONF);
+ else
+ __raw_writel(reg & ~IPU_CONF_CSI1_EN, IPU_CONF);
+ }
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+ return 0;
+}
+EXPORT_SYMBOL(ipu_disable_csi);
+
+static irqreturn_t ipu_irq_handler(int irq, void *desc)
+{
+ int i;
+ uint32_t line;
+ irqreturn_t result = IRQ_NONE;
+ uint32_t int_stat;
+ const int err_reg[] = { 5, 6, 9, 10, 0 };
+ const int int_reg[] = { 1, 2, 3, 4, 11, 12, 13, 14, 15, 0 };
+
+ for (i = 0;; i++) {
+ if (err_reg[i] == 0)
+ break;
+ int_stat = __raw_readl(IPU_INT_STAT(err_reg[i]));
+ int_stat &= __raw_readl(IPU_INT_CTRL(err_reg[i]));
+ if (int_stat) {
+ __raw_writel(int_stat, IPU_INT_STAT(err_reg[i]));
+ dev_err(g_ipu_dev,
+ "IPU Error - IPU_INT_STAT_%d = 0x%08X\n",
+ err_reg[i], int_stat);
+ /* Disable interrupts so we only get error once */
+ int_stat =
+ __raw_readl(IPU_INT_CTRL(err_reg[i])) & ~int_stat;
+ __raw_writel(int_stat, IPU_INT_CTRL(err_reg[i]));
+ }
+ }
+
+ for (i = 0;; i++) {
+ if (int_reg[i] == 0)
+ break;
+ int_stat = __raw_readl(IPU_INT_STAT(int_reg[i]));
+ int_stat &= __raw_readl(IPU_INT_CTRL(int_reg[i]));
+ __raw_writel(int_stat, IPU_INT_STAT(int_reg[i]));
+ while ((line = ffs(int_stat)) != 0) {
+ line--;
+ int_stat &= ~(1UL << line);
+ line += (int_reg[i] - 1) * 32;
+ result |=
+ ipu_irq_list[line].handler(line,
+ ipu_irq_list[line].
+ dev_id);
+ }
+ }
+
+ return result;
+}
+
+/*!
+ * This function enables the interrupt for the specified interrupt line.
+ * The interrupt lines are defined in \b ipu_irq_line enum.
+ *
+ * @param irq Interrupt line to enable interrupt for.
+ *
+ */
+void ipu_enable_irq(uint32_t irq)
+{
+ uint32_t reg;
+ unsigned long lock_flags;
+
+ if (!g_ipu_clk_enabled)
+ clk_enable(g_ipu_clk);
+
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+
+ reg = __raw_readl(IPUIRQ_2_CTRLREG(irq));
+ reg |= IPUIRQ_2_MASK(irq);
+ __raw_writel(reg, IPUIRQ_2_CTRLREG(irq));
+
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+ if (!g_ipu_clk_enabled)
+ clk_disable(g_ipu_clk);
+}
+EXPORT_SYMBOL(ipu_enable_irq);
+
+/*!
+ * This function disables the interrupt for the specified interrupt line.
+ * The interrupt lines are defined in \b ipu_irq_line enum.
+ *
+ * @param irq Interrupt line to disable interrupt for.
+ *
+ */
+void ipu_disable_irq(uint32_t irq)
+{
+ uint32_t reg;
+ unsigned long lock_flags;
+
+ if (!g_ipu_clk_enabled)
+ clk_enable(g_ipu_clk);
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+
+ reg = __raw_readl(IPUIRQ_2_CTRLREG(irq));
+ reg &= ~IPUIRQ_2_MASK(irq);
+ __raw_writel(reg, IPUIRQ_2_CTRLREG(irq));
+
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+ if (!g_ipu_clk_enabled)
+ clk_disable(g_ipu_clk);
+}
+EXPORT_SYMBOL(ipu_disable_irq);
+
+/*!
+ * This function clears the interrupt for the specified interrupt line.
+ * The interrupt lines are defined in \b ipu_irq_line enum.
+ *
+ * @param irq Interrupt line to clear interrupt for.
+ *
+ */
+void ipu_clear_irq(uint32_t irq)
+{
+ if (!g_ipu_clk_enabled)
+ clk_enable(g_ipu_clk);
+
+ __raw_writel(IPUIRQ_2_MASK(irq), IPUIRQ_2_STATREG(irq));
+
+ if (!g_ipu_clk_enabled)
+ clk_disable(g_ipu_clk);
+}
+EXPORT_SYMBOL(ipu_clear_irq);
+
+/*!
+ * This function returns the current interrupt status for the specified
+ * interrupt line. The interrupt lines are defined in \b ipu_irq_line enum.
+ *
+ * @param irq Interrupt line to get status for.
+ *
+ * @return Returns true if the interrupt is pending/asserted or false if
+ * the interrupt is not pending.
+ */
+bool ipu_get_irq_status(uint32_t irq)
+{
+ uint32_t reg;
+
+ if (!g_ipu_clk_enabled)
+ clk_enable(g_ipu_clk);
+
+ reg = __raw_readl(IPUIRQ_2_STATREG(irq));
+
+ if (!g_ipu_clk_enabled)
+ clk_disable(g_ipu_clk);
+
+ if (reg & IPUIRQ_2_MASK(irq))
+ return true;
+ else
+ return false;
+}
+EXPORT_SYMBOL(ipu_get_irq_status);
+
+/*!
+ * This function registers an interrupt handler function for the specified
+ * interrupt line. The interrupt lines are defined in \b ipu_irq_line enum.
+ *
+ * @param irq Interrupt line to get status for.
+ *
+ * @param handler Input parameter for address of the handler
+ * function.
+ *
+ * @param irq_flags Flags for interrupt mode. Currently not used.
+ *
+ * @param devname Input parameter for string name of driver
+ * registering the handler.
+ *
+ * @param dev_id Input parameter for pointer of data to be
+ * passed to the handler.
+ *
+ * @return This function returns 0 on success or negative error code on
+ * fail.
+ */
+int ipu_request_irq(uint32_t irq,
+ irqreturn_t(*handler) (int, void *),
+ uint32_t irq_flags, const char *devname, void *dev_id)
+{
+ unsigned long lock_flags;
+
+ BUG_ON(irq >= IPU_IRQ_COUNT);
+
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+
+ if (ipu_irq_list[irq].handler != NULL) {
+ dev_err(g_ipu_dev,
+ "handler already installed on irq %d\n", irq);
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+ return -EINVAL;
+ }
+
+ ipu_irq_list[irq].handler = handler;
+ ipu_irq_list[irq].flags = irq_flags;
+ ipu_irq_list[irq].dev_id = dev_id;
+ ipu_irq_list[irq].name = devname;
+
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+
+ ipu_enable_irq(irq); /* enable the interrupt */
+
+ return 0;
+}
+EXPORT_SYMBOL(ipu_request_irq);
+
+/*!
+ * This function unregisters an interrupt handler for the specified interrupt
+ * line. The interrupt lines are defined in \b ipu_irq_line enum.
+ *
+ * @param irq Interrupt line to get status for.
+ *
+ * @param dev_id Input parameter for pointer of data to be passed
+ * to the handler. This must match value passed to
+ * ipu_request_irq().
+ *
+ */
+void ipu_free_irq(uint32_t irq, void *dev_id)
+{
+ ipu_disable_irq(irq); /* disable the interrupt */
+
+ if (ipu_irq_list[irq].dev_id == dev_id)
+ ipu_irq_list[irq].handler = NULL;
+}
+EXPORT_SYMBOL(ipu_free_irq);
+
+uint32_t ipu_get_cur_buffer_idx(ipu_channel_t channel, ipu_buffer_t type)
+{
+ uint32_t reg, dma_chan;
+
+ dma_chan = channel_2_dma(channel, type);
+ if (!idma_is_valid(dma_chan))
+ return -EINVAL;
+
+ reg = __raw_readl(IPU_CHA_CUR_BUF(dma_chan/32));
+ if (reg & idma_mask(dma_chan))
+ return 1;
+ else
+ return 0;
+}
+EXPORT_SYMBOL(ipu_get_cur_buffer_idx);
+
+uint32_t _ipu_channel_status(ipu_channel_t channel)
+{
+ uint32_t stat = 0;
+ uint32_t task_stat_reg = __raw_readl(IPU_PROC_TASK_STAT);
+
+ switch (channel) {
+ case MEM_PRP_VF_MEM:
+ stat = (task_stat_reg & TSTAT_VF_MASK) >> TSTAT_VF_OFFSET;
+ break;
+ case MEM_VDI_PRP_VF_MEM:
+ stat = (task_stat_reg & TSTAT_VF_MASK) >> TSTAT_VF_OFFSET;
+ break;
+ case MEM_ROT_VF_MEM:
+ stat =
+ (task_stat_reg & TSTAT_VF_ROT_MASK) >> TSTAT_VF_ROT_OFFSET;
+ break;
+ case MEM_PRP_ENC_MEM:
+ stat = (task_stat_reg & TSTAT_ENC_MASK) >> TSTAT_ENC_OFFSET;
+ break;
+ case MEM_ROT_ENC_MEM:
+ stat =
+ (task_stat_reg & TSTAT_ENC_ROT_MASK) >>
+ TSTAT_ENC_ROT_OFFSET;
+ break;
+ case MEM_PP_MEM:
+ stat = (task_stat_reg & TSTAT_PP_MASK) >> TSTAT_PP_OFFSET;
+ break;
+ case MEM_ROT_PP_MEM:
+ stat =
+ (task_stat_reg & TSTAT_PP_ROT_MASK) >> TSTAT_PP_ROT_OFFSET;
+ break;
+
+ default:
+ stat = TASK_STAT_IDLE;
+ break;
+ }
+ return stat;
+}
+
+int32_t ipu_swap_channel(ipu_channel_t from_ch, ipu_channel_t to_ch)
+{
+ uint32_t reg;
+ unsigned long lock_flags;
+
+ int from_dma = channel_2_dma(from_ch, IPU_INPUT_BUFFER);
+ int to_dma = channel_2_dma(to_ch, IPU_INPUT_BUFFER);
+
+ /* enable target channel */
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+
+ reg = __raw_readl(IDMAC_CHA_EN(to_dma));
+ __raw_writel(reg | idma_mask(to_dma), IDMAC_CHA_EN(to_dma));
+
+ g_channel_enable_mask |= 1L << IPU_CHAN_ID(to_ch);
+
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+
+ /* switch dp dc */
+ _ipu_dp_dc_disable(from_ch, true);
+
+ /* disable source channel */
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+
+ reg = __raw_readl(IDMAC_CHA_EN(from_dma));
+ __raw_writel(reg & ~idma_mask(from_dma), IDMAC_CHA_EN(from_dma));
+ __raw_writel(idma_mask(from_dma), IPU_CHA_CUR_BUF(from_dma));
+
+ g_channel_enable_mask &= ~(1L << IPU_CHAN_ID(from_ch));
+
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+
+ return 0;
+}
+EXPORT_SYMBOL(ipu_swap_channel);
+
+uint32_t bytes_per_pixel(uint32_t fmt)
+{
+ switch (fmt) {
+ case IPU_PIX_FMT_GENERIC: /*generic data */
+ case IPU_PIX_FMT_RGB332:
+ case IPU_PIX_FMT_YUV420P:
+ case IPU_PIX_FMT_YUV422P:
+ return 1;
+ break;
+ case IPU_PIX_FMT_RGB565:
+ case IPU_PIX_FMT_YUYV:
+ case IPU_PIX_FMT_UYVY:
+ return 2;
+ break;
+ case IPU_PIX_FMT_BGR24:
+ case IPU_PIX_FMT_RGB24:
+ return 3;
+ break;
+ case IPU_PIX_FMT_GENERIC_32: /*generic data */
+ case IPU_PIX_FMT_BGR32:
+ case IPU_PIX_FMT_BGRA32:
+ case IPU_PIX_FMT_RGB32:
+ case IPU_PIX_FMT_RGBA32:
+ case IPU_PIX_FMT_ABGR32:
+ return 4;
+ break;
+ default:
+ return 1;
+ break;
+ }
+ return 0;
+}
+EXPORT_SYMBOL(bytes_per_pixel);
+
+ipu_color_space_t format_to_colorspace(uint32_t fmt)
+{
+ switch (fmt) {
+ case IPU_PIX_FMT_RGB666:
+ case IPU_PIX_FMT_RGB565:
+ case IPU_PIX_FMT_BGR24:
+ case IPU_PIX_FMT_RGB24:
+ case IPU_PIX_FMT_GBR24:
+ case IPU_PIX_FMT_BGR32:
+ case IPU_PIX_FMT_BGRA32:
+ case IPU_PIX_FMT_RGB32:
+ case IPU_PIX_FMT_RGBA32:
+ case IPU_PIX_FMT_ABGR32:
+ case IPU_PIX_FMT_LVDS666:
+ case IPU_PIX_FMT_LVDS888:
+ return RGB;
+ break;
+
+ default:
+ return YCbCr;
+ break;
+ }
+ return RGB;
+}
+
+bool ipu_pixel_format_has_alpha(uint32_t fmt)
+{
+ switch (fmt) {
+ case IPU_PIX_FMT_RGBA32:
+ case IPU_PIX_FMT_BGRA32:
+ case IPU_PIX_FMT_ABGR32:
+ return true;
+ break;
+ default:
+ return false;
+ break;
+ }
+ return false;
+}
+
+void ipu_set_csc_coefficients(ipu_channel_t channel, int32_t param[][3])
+{
+ _ipu_dp_set_csc_coefficients(channel, param);
+}
+EXPORT_SYMBOL(ipu_set_csc_coefficients);
+
+static int ipu_suspend(struct platform_device *pdev, pm_message_t state)
+{
+ if (g_ipu_clk_enabled) {
+ /* save and disable enabled channels*/
+ idma_enable_reg[0] = __raw_readl(IDMAC_CHA_EN(0));
+ idma_enable_reg[1] = __raw_readl(IDMAC_CHA_EN(32));
+ while ((__raw_readl(IDMAC_CHA_BUSY(0)) & idma_enable_reg[0])
+ || (__raw_readl(IDMAC_CHA_BUSY(32)) &
+ idma_enable_reg[1])) {
+ /* disable channel not busy already */
+ uint32_t chan_should_disable, timeout = 1000, time = 0;
+
+ chan_should_disable =
+ __raw_readl(IDMAC_CHA_BUSY(0))
+ ^ idma_enable_reg[0];
+ __raw_writel((~chan_should_disable) &
+ idma_enable_reg[0], IDMAC_CHA_EN(0));
+ chan_should_disable =
+ __raw_readl(IDMAC_CHA_BUSY(1))
+ ^ idma_enable_reg[1];
+ __raw_writel((~chan_should_disable) &
+ idma_enable_reg[1], IDMAC_CHA_EN(32));
+ msleep(2);
+ time += 2;
+ if (time >= timeout)
+ return -1;
+ }
+ __raw_writel(0, IDMAC_CHA_EN(0));
+ __raw_writel(0, IDMAC_CHA_EN(32));
+
+ /* save double buffer select regs */
+ ipu_cha_db_mode_reg[0] = __raw_readl(IPU_CHA_DB_MODE_SEL(0));
+ ipu_cha_db_mode_reg[1] = __raw_readl(IPU_CHA_DB_MODE_SEL(32));
+ ipu_cha_db_mode_reg[2] =
+ __raw_readl(IPU_ALT_CHA_DB_MODE_SEL(0));
+ ipu_cha_db_mode_reg[3] =
+ __raw_readl(IPU_ALT_CHA_DB_MODE_SEL(32));
+
+ /* save current buffer regs */
+ ipu_cha_cur_buf_reg[0] = __raw_readl(IPU_CHA_CUR_BUF(0));
+ ipu_cha_cur_buf_reg[1] = __raw_readl(IPU_CHA_CUR_BUF(32));
+ ipu_cha_cur_buf_reg[2] = __raw_readl(IPU_ALT_CUR_BUF0);
+ ipu_cha_cur_buf_reg[3] = __raw_readl(IPU_ALT_CUR_BUF1);
+
+ /* save sub-modules status and disable all */
+ ic_conf_reg = __raw_readl(IC_CONF);
+ __raw_writel(0, IC_CONF);
+ ipu_conf_reg = __raw_readl(IPU_CONF);
+ __raw_writel(0, IPU_CONF);
+
+ /* save buf ready regs */
+ buf_ready_reg[0] = __raw_readl(IPU_CHA_BUF0_RDY(0));
+ buf_ready_reg[1] = __raw_readl(IPU_CHA_BUF0_RDY(32));
+ buf_ready_reg[2] = __raw_readl(IPU_CHA_BUF1_RDY(0));
+ buf_ready_reg[3] = __raw_readl(IPU_CHA_BUF1_RDY(32));
+ buf_ready_reg[4] = __raw_readl(IPU_ALT_CHA_BUF0_RDY(0));
+ buf_ready_reg[5] = __raw_readl(IPU_ALT_CHA_BUF0_RDY(32));
+ buf_ready_reg[6] = __raw_readl(IPU_ALT_CHA_BUF1_RDY(0));
+ buf_ready_reg[7] = __raw_readl(IPU_ALT_CHA_BUF1_RDY(32));
+ }
+
+ mxc_pg_enable(pdev);
+
+ return 0;
+}
+
+static int ipu_resume(struct platform_device *pdev)
+{
+ mxc_pg_disable(pdev);
+
+ if (g_ipu_clk_enabled) {
+
+ /* restore buf ready regs */
+ __raw_writel(buf_ready_reg[0], IPU_CHA_BUF0_RDY(0));
+ __raw_writel(buf_ready_reg[1], IPU_CHA_BUF0_RDY(32));
+ __raw_writel(buf_ready_reg[2], IPU_CHA_BUF1_RDY(0));
+ __raw_writel(buf_ready_reg[3], IPU_CHA_BUF1_RDY(32));
+ __raw_writel(buf_ready_reg[4], IPU_ALT_CHA_BUF0_RDY(0));
+ __raw_writel(buf_ready_reg[5], IPU_ALT_CHA_BUF0_RDY(32));
+ __raw_writel(buf_ready_reg[6], IPU_ALT_CHA_BUF1_RDY(0));
+ __raw_writel(buf_ready_reg[7], IPU_ALT_CHA_BUF1_RDY(32));
+
+ /* re-enable sub-modules*/
+ __raw_writel(ipu_conf_reg, IPU_CONF);
+ __raw_writel(ic_conf_reg, IC_CONF);
+
+ /* restore double buffer select regs */
+ __raw_writel(ipu_cha_db_mode_reg[0], IPU_CHA_DB_MODE_SEL(0));
+ __raw_writel(ipu_cha_db_mode_reg[1], IPU_CHA_DB_MODE_SEL(32));
+ __raw_writel(ipu_cha_db_mode_reg[2],
+ IPU_ALT_CHA_DB_MODE_SEL(0));
+ __raw_writel(ipu_cha_db_mode_reg[3],
+ IPU_ALT_CHA_DB_MODE_SEL(32));
+
+ /* restore current buffer select regs */
+ __raw_writel(~(ipu_cha_cur_buf_reg[0]), IPU_CHA_CUR_BUF(0));
+ __raw_writel(~(ipu_cha_cur_buf_reg[1]), IPU_CHA_CUR_BUF(32));
+ __raw_writel(~(ipu_cha_cur_buf_reg[2]), IPU_ALT_CUR_BUF0);
+ __raw_writel(~(ipu_cha_cur_buf_reg[3]), IPU_ALT_CUR_BUF1);
+
+ /* restart idma channel*/
+ __raw_writel(idma_enable_reg[0], IDMAC_CHA_EN(0));
+ __raw_writel(idma_enable_reg[1], IDMAC_CHA_EN(32));
+ } else {
+ clk_enable(g_ipu_clk);
+ _ipu_dmfc_init(dmfc_type_setup, 1);
+ _ipu_init_dc_mappings();
+
+ /* Set sync refresh channels as high priority */
+ __raw_writel(0x18800000L, IDMAC_CHA_PRI(0));
+ clk_disable(g_ipu_clk);
+ }
+
+ return 0;
+}
+
+/*!
+ * This structure contains pointers to the power management callback functions.
+ */
+static struct platform_driver mxcipu_driver = {
+ .driver = {
+ .name = "mxc_ipu",
+ },
+ .probe = ipu_probe,
+ .remove = ipu_remove,
+ .suspend = ipu_suspend,
+ .resume = ipu_resume,
+};
+
+int32_t __init ipu_gen_init(void)
+{
+ int32_t ret;
+
+ ret = platform_driver_register(&mxcipu_driver);
+ return 0;
+}
+
+subsys_initcall(ipu_gen_init);
+
+static void __exit ipu_gen_uninit(void)
+{
+ platform_driver_unregister(&mxcipu_driver);
+}
+
+module_exit(ipu_gen_uninit);
diff --git a/drivers/mxc/ipu3/ipu_device.c b/drivers/mxc/ipu3/ipu_device.c
new file mode 100644
index 000000000000..c7c032d85d52
--- /dev/null
+++ b/drivers/mxc/ipu3/ipu_device.c
@@ -0,0 +1,510 @@
+/*
+ * Copyright 2005-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file ipu_device.c
+ *
+ * @brief This file contains the IPUv3 driver device interface and fops functions.
+ *
+ * @ingroup IPU
+ */
+
+#include <linux/types.h>
+#include <linux/init.h>
+#include <linux/platform_device.h>
+#include <linux/err.h>
+#include <linux/spinlock.h>
+#include <linux/delay.h>
+#include <linux/clk.h>
+#include <linux/poll.h>
+#include <linux/sched.h>
+#include <linux/time.h>
+#include <linux/wait.h>
+#include <linux/dma-mapping.h>
+#include <linux/io.h>
+#include <linux/ipu.h>
+#include <asm/cacheflush.h>
+
+#include "ipu_prv.h"
+#include "ipu_regs.h"
+#include "ipu_param_mem.h"
+
+/* Strucutures and variables for exporting MXC IPU as device*/
+
+static int mxc_ipu_major;
+static struct class *mxc_ipu_class;
+
+DEFINE_SPINLOCK(event_lock);
+
+struct ipu_dev_irq_info {
+ wait_queue_head_t waitq;
+ int irq_pending;
+} irq_info[480];
+
+int register_ipu_device(void);
+
+/* Static functions */
+
+int get_events(ipu_event_info *p)
+{
+ unsigned long flags;
+ int ret = 0;
+
+ spin_lock_irqsave(&event_lock, flags);
+ if (irq_info[p->irq].irq_pending > 0)
+ irq_info[p->irq].irq_pending--;
+ else
+ ret = -1;
+ spin_unlock_irqrestore(&event_lock, flags);
+
+ return ret;
+}
+
+static irqreturn_t mxc_ipu_generic_handler(int irq, void *dev_id)
+{
+ irq_info[irq].irq_pending++;
+
+ /* Wakeup any blocking user context */
+ wake_up_interruptible(&(irq_info[irq].waitq));
+ return IRQ_HANDLED;
+}
+
+static int mxc_ipu_open(struct inode *inode, struct file *file)
+{
+ int ret = 0;
+ return ret;
+}
+static int mxc_ipu_ioctl(struct inode *inode, struct file *file,
+ unsigned int cmd, unsigned long arg)
+{
+ int ret = 0;
+
+ switch (cmd) {
+ case IPU_INIT_CHANNEL:
+ {
+ ipu_channel_parm parm;
+
+ if (copy_from_user
+ (&parm, (ipu_channel_parm *) arg,
+ sizeof(ipu_channel_parm)))
+ return -EFAULT;
+
+ if (!parm.flag) {
+ ret =
+ ipu_init_channel(parm.channel,
+ &parm.params);
+ } else {
+ ret = ipu_init_channel(parm.channel, NULL);
+ }
+ }
+ break;
+ case IPU_UNINIT_CHANNEL:
+ {
+ ipu_channel_t ch;
+ int __user *argp = (void __user *)arg;
+ if (get_user(ch, argp))
+ return -EFAULT;
+ ipu_uninit_channel(ch);
+ }
+ break;
+ case IPU_INIT_CHANNEL_BUFFER:
+ {
+ ipu_channel_buf_parm parm;
+ if (copy_from_user
+ (&parm, (ipu_channel_buf_parm *) arg,
+ sizeof(ipu_channel_buf_parm)))
+ return -EFAULT;
+
+ ret =
+ ipu_init_channel_buffer(
+ parm.channel, parm.type,
+ parm.pixel_fmt,
+ parm.width, parm.height,
+ parm.stride,
+ parm.rot_mode,
+ parm.phyaddr_0,
+ parm.phyaddr_1,
+ parm.u_offset,
+ parm.v_offset);
+
+ }
+ break;
+ case IPU_UPDATE_CHANNEL_BUFFER:
+ {
+ ipu_channel_buf_parm parm;
+ if (copy_from_user
+ (&parm, (ipu_channel_buf_parm *) arg,
+ sizeof(ipu_channel_buf_parm)))
+ return -EFAULT;
+
+ if ((parm.phyaddr_0 != (dma_addr_t) NULL)
+ && (parm.phyaddr_1 == (dma_addr_t) NULL)) {
+ ret =
+ ipu_update_channel_buffer(
+ parm.channel,
+ parm.type,
+ parm.bufNum,
+ parm.phyaddr_0);
+ } else if ((parm.phyaddr_0 == (dma_addr_t) NULL)
+ && (parm.phyaddr_1 != (dma_addr_t) NULL)) {
+ ret =
+ ipu_update_channel_buffer(
+ parm.channel,
+ parm.type,
+ parm.bufNum,
+ parm.phyaddr_1);
+ } else {
+ ret = -1;
+ }
+
+ }
+ break;
+ case IPU_SELECT_CHANNEL_BUFFER:
+ {
+ ipu_channel_buf_parm parm;
+ if (copy_from_user
+ (&parm, (ipu_channel_buf_parm *) arg,
+ sizeof(ipu_channel_buf_parm)))
+ return -EFAULT;
+
+ ret =
+ ipu_select_buffer(parm.channel,
+ parm.type, parm.bufNum);
+
+ }
+ break;
+ case IPU_SELECT_MULTI_VDI_BUFFER:
+ {
+ uint32_t parm;
+ if (copy_from_user
+ (&parm, (uint32_t *) arg,
+ sizeof(uint32_t)))
+ return -EFAULT;
+
+ ret = ipu_select_multi_vdi_buffer(parm);
+ }
+ break;
+ case IPU_LINK_CHANNELS:
+ {
+ ipu_channel_link link;
+ if (copy_from_user
+ (&link, (ipu_channel_link *) arg,
+ sizeof(ipu_channel_link)))
+ return -EFAULT;
+
+ ret = ipu_link_channels(link.src_ch,
+ link.dest_ch);
+
+ }
+ break;
+ case IPU_UNLINK_CHANNELS:
+ {
+ ipu_channel_link link;
+ if (copy_from_user
+ (&link, (ipu_channel_link *) arg,
+ sizeof(ipu_channel_link)))
+ return -EFAULT;
+
+ ret = ipu_unlink_channels(link.src_ch,
+ link.dest_ch);
+
+ }
+ break;
+ case IPU_ENABLE_CHANNEL:
+ {
+ ipu_channel_t ch;
+ int __user *argp = (void __user *)arg;
+ if (get_user(ch, argp))
+ return -EFAULT;
+ ipu_enable_channel(ch);
+ }
+ break;
+ case IPU_DISABLE_CHANNEL:
+ {
+ ipu_channel_info info;
+ if (copy_from_user
+ (&info, (ipu_channel_info *) arg,
+ sizeof(ipu_channel_info)))
+ return -EFAULT;
+
+ ret = ipu_disable_channel(info.channel,
+ info.stop);
+ }
+ break;
+ case IPU_ENABLE_IRQ:
+ {
+ uint32_t irq;
+ int __user *argp = (void __user *)arg;
+ if (get_user(irq, argp))
+ return -EFAULT;
+ ipu_enable_irq(irq);
+ }
+ break;
+ case IPU_DISABLE_IRQ:
+ {
+ uint32_t irq;
+ int __user *argp = (void __user *)arg;
+ if (get_user(irq, argp))
+ return -EFAULT;
+ ipu_disable_irq(irq);
+ }
+ break;
+ case IPU_CLEAR_IRQ:
+ {
+ uint32_t irq;
+ int __user *argp = (void __user *)arg;
+ if (get_user(irq, argp))
+ return -EFAULT;
+ ipu_clear_irq(irq);
+ }
+ break;
+ case IPU_FREE_IRQ:
+ {
+ ipu_irq_info info;
+
+ if (copy_from_user
+ (&info, (ipu_irq_info *) arg,
+ sizeof(ipu_irq_info)))
+ return -EFAULT;
+
+ ipu_free_irq(info.irq, info.dev_id);
+ irq_info[info.irq].irq_pending = 0;
+ }
+ break;
+ case IPU_REQUEST_IRQ_STATUS:
+ {
+ uint32_t irq;
+ int __user *argp = (void __user *)arg;
+ if (get_user(irq, argp))
+ return -EFAULT;
+ ret = ipu_get_irq_status(irq);
+ }
+ break;
+ case IPU_REGISTER_GENERIC_ISR:
+ {
+ ipu_event_info info;
+ if (copy_from_user
+ (&info, (ipu_event_info *) arg,
+ sizeof(ipu_event_info)))
+ return -EFAULT;
+
+ ret =
+ ipu_request_irq(info.irq,
+ mxc_ipu_generic_handler,
+ 0, "video_sink", info.dev);
+ if (ret == 0)
+ init_waitqueue_head(&(irq_info[info.irq].waitq));
+ }
+ break;
+ case IPU_GET_EVENT:
+ /* User will have to allocate event_type
+ structure and pass the pointer in arg */
+ {
+ ipu_event_info info;
+ int r = -1;
+
+ if (copy_from_user
+ (&info, (ipu_event_info *) arg,
+ sizeof(ipu_event_info)))
+ return -EFAULT;
+
+ r = get_events(&info);
+ if (r == -1) {
+ if ((file->f_flags & O_NONBLOCK) &&
+ (irq_info[info.irq].irq_pending == 0))
+ return -EAGAIN;
+ wait_event_interruptible_timeout(irq_info[info.irq].waitq,
+ (irq_info[info.irq].irq_pending != 0), 2 * HZ);
+ r = get_events(&info);
+ }
+ ret = -1;
+ if (r == 0) {
+ if (!copy_to_user((ipu_event_info *) arg,
+ &info, sizeof(ipu_event_info)))
+ ret = 0;
+ }
+ }
+ break;
+ case IPU_ALOC_MEM:
+ {
+ ipu_mem_info info;
+ if (copy_from_user
+ (&info, (ipu_mem_info *) arg,
+ sizeof(ipu_mem_info)))
+ return -EFAULT;
+
+ info.vaddr = dma_alloc_coherent(0,
+ PAGE_ALIGN(info.size),
+ &info.paddr,
+ GFP_DMA | GFP_KERNEL);
+ if (info.vaddr == 0) {
+ printk(KERN_ERR "dma alloc failed!\n");
+ return -ENOBUFS;
+ }
+ if (copy_to_user((ipu_mem_info *) arg, &info,
+ sizeof(ipu_mem_info)) > 0)
+ return -EFAULT;
+ }
+ break;
+ case IPU_FREE_MEM:
+ {
+ ipu_mem_info info;
+ if (copy_from_user
+ (&info, (ipu_mem_info *) arg,
+ sizeof(ipu_mem_info)))
+ return -EFAULT;
+
+ if (info.vaddr)
+ dma_free_coherent(0, PAGE_ALIGN(info.size),
+ info.vaddr, info.paddr);
+ else
+ return -EFAULT;
+ }
+ break;
+ case IPU_IS_CHAN_BUSY:
+ {
+ ipu_channel_t chan;
+ if (copy_from_user
+ (&chan, (ipu_channel_t *)arg,
+ sizeof(ipu_channel_t)))
+ return -EFAULT;
+
+ if (ipu_is_channel_busy(chan))
+ ret = 1;
+ else
+ ret = 0;
+ }
+ break;
+ case IPU_CALC_STRIPES_SIZE:
+ {
+ ipu_stripe_parm stripe_parm;
+
+ if (copy_from_user (&stripe_parm, (ipu_stripe_parm *)arg,
+ sizeof(ipu_stripe_parm)))
+ return -EFAULT;
+ ipu_calc_stripes_sizes(stripe_parm.input_width,
+ stripe_parm.output_width,
+ stripe_parm.maximal_stripe_width,
+ stripe_parm.cirr,
+ stripe_parm.equal_stripes,
+ stripe_parm.input_pixelformat,
+ stripe_parm.output_pixelformat,
+ &stripe_parm.left,
+ &stripe_parm.right);
+ if (copy_to_user((ipu_stripe_parm *) arg, &stripe_parm,
+ sizeof(ipu_stripe_parm)) > 0)
+ return -EFAULT;
+ }
+ break;
+ case IPU_UPDATE_BUF_OFFSET:
+ {
+ ipu_buf_offset_parm offset_parm;
+
+ if (copy_from_user (&offset_parm, (ipu_buf_offset_parm *)arg,
+ sizeof(ipu_buf_offset_parm)))
+ return -EFAULT;
+ ret = ipu_update_channel_offset(offset_parm.channel,
+ offset_parm.type,
+ offset_parm.pixel_fmt,
+ offset_parm.width,
+ offset_parm.height,
+ offset_parm.stride,
+ offset_parm.u_offset,
+ offset_parm.v_offset,
+ offset_parm.vertical_offset,
+ offset_parm.horizontal_offset);
+ }
+ break;
+ case IPU_CSC_UPDATE:
+ {
+ int param[5][3];
+ ipu_csc_update csc;
+ if (copy_from_user(&csc, (void *) arg,
+ sizeof(ipu_csc_update)))
+ return -EFAULT;
+ if (copy_from_user(&param[0][0], (void *) csc.param,
+ sizeof(param)))
+ return -EFAULT;
+ ipu_set_csc_coefficients(csc.channel, param);
+ }
+ break;
+ default:
+ break;
+ }
+ return ret;
+}
+
+static int mxc_ipu_mmap(struct file *file, struct vm_area_struct *vma)
+{
+ vma->vm_page_prot = pgprot_writecombine(vma->vm_page_prot);
+
+ if (remap_pfn_range(vma, vma->vm_start, vma->vm_pgoff,
+ vma->vm_end - vma->vm_start,
+ vma->vm_page_prot)) {
+ printk(KERN_ERR
+ "mmap failed!\n");
+ return -ENOBUFS;
+ }
+ return 0;
+}
+
+static int mxc_ipu_release(struct inode *inode, struct file *file)
+{
+ return 0;
+}
+
+static struct file_operations mxc_ipu_fops = {
+ .owner = THIS_MODULE,
+ .open = mxc_ipu_open,
+ .mmap = mxc_ipu_mmap,
+ .release = mxc_ipu_release,
+ .ioctl = mxc_ipu_ioctl,
+};
+
+int register_ipu_device()
+{
+ int ret = 0;
+ struct device *temp;
+ mxc_ipu_major = register_chrdev(0, "mxc_ipu", &mxc_ipu_fops);
+ if (mxc_ipu_major < 0) {
+ printk(KERN_ERR
+ "Unable to register Mxc Ipu as a char device\n");
+ return mxc_ipu_major;
+ }
+
+ mxc_ipu_class = class_create(THIS_MODULE, "mxc_ipu");
+ if (IS_ERR(mxc_ipu_class)) {
+ printk(KERN_ERR "Unable to create class for Mxc Ipu\n");
+ ret = PTR_ERR(mxc_ipu_class);
+ goto err1;
+ }
+
+ temp = device_create(mxc_ipu_class, NULL, MKDEV(mxc_ipu_major, 0),
+ NULL, "mxc_ipu");
+
+ if (IS_ERR(temp)) {
+ printk(KERN_ERR "Unable to create class device for Mxc Ipu\n");
+ ret = PTR_ERR(temp);
+ goto err2;
+ }
+ spin_lock_init(&event_lock);
+
+ return ret;
+
+err2:
+ class_destroy(mxc_ipu_class);
+err1:
+ unregister_chrdev(mxc_ipu_major, "mxc_ipu");
+ return ret;
+
+}
diff --git a/drivers/mxc/ipu3/ipu_disp.c b/drivers/mxc/ipu3/ipu_disp.c
new file mode 100644
index 000000000000..e845bdaf3485
--- /dev/null
+++ b/drivers/mxc/ipu3/ipu_disp.c
@@ -0,0 +1,1884 @@
+/*
+ * Copyright 2005-2011 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file ipu_disp.c
+ *
+ * @brief IPU display submodule API functions
+ *
+ * @ingroup IPU
+ */
+#include <linux/types.h>
+#include <linux/errno.h>
+#include <linux/delay.h>
+#include <linux/spinlock.h>
+#include <linux/io.h>
+#include <linux/ipu.h>
+#include <linux/clk.h>
+#include <asm/atomic.h>
+#include <mach/mxc_dvfs.h>
+#include <mach/clock.h>
+#include "ipu_prv.h"
+#include "ipu_regs.h"
+#include "ipu_param_mem.h"
+
+enum csc_type_t {
+ RGB2YUV = 0,
+ YUV2RGB,
+ RGB2RGB,
+ YUV2YUV,
+ CSC_NONE,
+ CSC_NUM
+};
+
+struct dp_csc_param_t {
+ int mode;
+ void *coeff;
+};
+
+#define SYNC_WAVE 0
+#define ASYNC_SER_WAVE 6
+
+/* DC display ID assignments */
+#define DC_DISP_ID_SYNC(di) (di)
+#define DC_DISP_ID_SERIAL 2
+#define DC_DISP_ID_ASYNC 3
+
+int dmfc_type_setup;
+static int dmfc_size_28, dmfc_size_29, dmfc_size_24, dmfc_size_27, dmfc_size_23;
+
+void _ipu_dmfc_init(int dmfc_type, int first)
+{
+ u32 dmfc_wr_chan, dmfc_dp_chan;
+
+ if (first) {
+ if (dmfc_type_setup > dmfc_type)
+ dmfc_type = dmfc_type_setup;
+ else
+ dmfc_type_setup = dmfc_type;
+
+ /* disable DMFC-IC channel*/
+ __raw_writel(0x2, DMFC_IC_CTRL);
+ } else if (dmfc_type_setup >= DMFC_HIGH_RESOLUTION_DC) {
+ printk(KERN_DEBUG "DMFC high resolution has set, will not change\n");
+ return;
+ } else
+ dmfc_type_setup = dmfc_type;
+
+ if (dmfc_type == DMFC_HIGH_RESOLUTION_DC) {
+ /* 1 - segment 0~3;
+ * 5B - segement 4, 5;
+ * 5F - segement 6, 7;
+ * 1C, 2C and 6B, 6F unused;
+ */
+ printk(KERN_INFO "IPU DMFC DC HIGH RESOLUTION: 1(0~3), 5B(4,5), 5F(6,7)\n");
+ dmfc_wr_chan = 0x00000088;
+ dmfc_dp_chan = 0x00009694;
+ dmfc_size_28 = 256*4;
+ dmfc_size_29 = 0;
+ dmfc_size_24 = 0;
+ dmfc_size_27 = 128*4;
+ dmfc_size_23 = 128*4;
+ } else if (dmfc_type == DMFC_HIGH_RESOLUTION_DP) {
+ /* 1 - segment 0, 1;
+ * 5B - segement 2~5;
+ * 5F - segement 6,7;
+ * 1C, 2C and 6B, 6F unused;
+ */
+ printk(KERN_INFO "IPU DMFC DP HIGH RESOLUTION: 1(0,1), 5B(2~5), 5F(6,7)\n");
+ dmfc_wr_chan = 0x00000090;
+ dmfc_dp_chan = 0x0000968a;
+ dmfc_size_28 = 128*4;
+ dmfc_size_29 = 0;
+ dmfc_size_24 = 0;
+ dmfc_size_27 = 128*4;
+ dmfc_size_23 = 256*4;
+ } else if (dmfc_type == DMFC_HIGH_RESOLUTION_ONLY_DP) {
+ /* 5B - segement 0~3;
+ * 5F - segement 4~7;
+ * 1, 1C, 2C and 6B, 6F unused;
+ */
+ printk(KERN_INFO "IPU DMFC ONLY-DP HIGH RESOLUTION: 5B(0~3), 5F(4~7)\n");
+ dmfc_wr_chan = 0x00000000;
+ dmfc_dp_chan = 0x00008c88;
+ dmfc_size_28 = 0;
+ dmfc_size_29 = 0;
+ dmfc_size_24 = 0;
+ dmfc_size_27 = 256*4;
+ dmfc_size_23 = 256*4;
+ } else {
+ /* 1 - segment 0, 1;
+ * 5B - segement 4, 5;
+ * 5F - segement 6, 7;
+ * 1C, 2C and 6B, 6F unused;
+ */
+ printk(KERN_INFO "IPU DMFC NORMAL mode: 1(0~1), 5B(4,5), 5F(6,7)\n");
+ dmfc_wr_chan = 0x00000090;
+ dmfc_dp_chan = 0x00009694;
+ dmfc_size_28 = 128*4;
+ dmfc_size_29 = 0;
+ dmfc_size_24 = 0;
+ dmfc_size_27 = 128*4;
+ dmfc_size_23 = 128*4;
+ }
+ __raw_writel(dmfc_wr_chan, DMFC_WR_CHAN);
+ __raw_writel(0x202020F6, DMFC_WR_CHAN_DEF);
+ __raw_writel(dmfc_dp_chan, DMFC_DP_CHAN);
+ /* Enable chan 5 watermark set at 5 bursts and clear at 7 bursts */
+ __raw_writel(0x2020F6F6, DMFC_DP_CHAN_DEF);
+}
+
+static int __init dmfc_setup(char *options)
+{
+ get_option(&options, &dmfc_type_setup);
+ if (dmfc_type_setup > DMFC_HIGH_RESOLUTION_ONLY_DP)
+ dmfc_type_setup = DMFC_HIGH_RESOLUTION_ONLY_DP;
+ return 1;
+}
+__setup("dmfc=", dmfc_setup);
+
+void _ipu_dmfc_set_wait4eot(int dma_chan, int width)
+{
+ u32 dmfc_gen1 = __raw_readl(DMFC_GENERAL1);
+
+ if (width >= HIGH_RESOLUTION_WIDTH) {
+ if (dma_chan == 23)
+ _ipu_dmfc_init(DMFC_HIGH_RESOLUTION_DP, 0);
+ else if (dma_chan == 28)
+ _ipu_dmfc_init(DMFC_HIGH_RESOLUTION_DC, 0);
+ }
+
+ if (dma_chan == 23) { /*5B*/
+ if (dmfc_size_23/width > 3)
+ dmfc_gen1 |= 1UL << 20;
+ else
+ dmfc_gen1 &= ~(1UL << 20);
+ } else if (dma_chan == 24) { /*6B*/
+ if (dmfc_size_24/width > 1)
+ dmfc_gen1 |= 1UL << 22;
+ else
+ dmfc_gen1 &= ~(1UL << 22);
+ } else if (dma_chan == 27) { /*5F*/
+ if (dmfc_size_27/width > 2)
+ dmfc_gen1 |= 1UL << 21;
+ else
+ dmfc_gen1 &= ~(1UL << 21);
+ } else if (dma_chan == 28) { /*1*/
+ if (dmfc_size_28/width > 2)
+ dmfc_gen1 |= 1UL << 16;
+ else
+ dmfc_gen1 &= ~(1UL << 16);
+ } else if (dma_chan == 29) { /*6F*/
+ if (dmfc_size_29/width > 1)
+ dmfc_gen1 |= 1UL << 23;
+ else
+ dmfc_gen1 &= ~(1UL << 23);
+ }
+
+ __raw_writel(dmfc_gen1, DMFC_GENERAL1);
+}
+
+static void _ipu_di_data_wave_config(int di,
+ int wave_gen,
+ int access_size, int component_size)
+{
+ u32 reg;
+ reg = (access_size << DI_DW_GEN_ACCESS_SIZE_OFFSET) |
+ (component_size << DI_DW_GEN_COMPONENT_SIZE_OFFSET);
+ __raw_writel(reg, DI_DW_GEN(di, wave_gen));
+}
+
+static void _ipu_di_data_pin_config(int di, int wave_gen, int di_pin, int set,
+ int up, int down)
+{
+ u32 reg;
+
+ reg = __raw_readl(DI_DW_GEN(di, wave_gen));
+ reg &= ~(0x3 << (di_pin * 2));
+ reg |= set << (di_pin * 2);
+ __raw_writel(reg, DI_DW_GEN(di, wave_gen));
+
+ __raw_writel((down << 16) | up, DI_DW_SET(di, wave_gen, set));
+}
+
+static void _ipu_di_sync_config(int di, int wave_gen,
+ int run_count, int run_src,
+ int offset_count, int offset_src,
+ int repeat_count, int cnt_clr_src,
+ int cnt_polarity_gen_en,
+ int cnt_polarity_clr_src,
+ int cnt_polarity_trigger_src,
+ int cnt_up, int cnt_down)
+{
+ u32 reg;
+
+ if ((run_count >= 0x1000) || (offset_count >= 0x1000) || (repeat_count >= 0x1000) ||
+ (cnt_up >= 0x400) || (cnt_down >= 0x400)) {
+ dev_err(g_ipu_dev, "DI%d counters out of range.\n", di);
+ return;
+ }
+
+ reg = (run_count << 19) | (++run_src << 16) |
+ (offset_count << 3) | ++offset_src;
+ __raw_writel(reg, DI_SW_GEN0(di, wave_gen));
+ reg = (cnt_polarity_gen_en << 29) | (++cnt_clr_src << 25) |
+ (++cnt_polarity_trigger_src << 12) | (++cnt_polarity_clr_src << 9);
+ reg |= (cnt_down << 16) | cnt_up;
+ if (repeat_count == 0) {
+ /* Enable auto reload */
+ reg |= 0x10000000;
+ }
+ __raw_writel(reg, DI_SW_GEN1(di, wave_gen));
+ reg = __raw_readl(DI_STP_REP(di, wave_gen));
+ reg &= ~(0xFFFF << (16 * ((wave_gen - 1) & 0x1)));
+ reg |= repeat_count << (16 * ((wave_gen - 1) & 0x1));
+ __raw_writel(reg, DI_STP_REP(di, wave_gen));
+}
+
+static void _ipu_dc_map_link(int current_map,
+ int base_map_0, int buf_num_0,
+ int base_map_1, int buf_num_1,
+ int base_map_2, int buf_num_2)
+{
+ int ptr_0 = base_map_0 * 3 + buf_num_0;
+ int ptr_1 = base_map_1 * 3 + buf_num_1;
+ int ptr_2 = base_map_2 * 3 + buf_num_2;
+ int ptr;
+ u32 reg;
+ ptr = (ptr_2 << 10) + (ptr_1 << 5) + ptr_0;
+
+ reg = __raw_readl(DC_MAP_CONF_PTR(current_map));
+ reg &= ~(0x1F << ((16 * (current_map & 0x1))));
+ reg |= ptr << ((16 * (current_map & 0x1)));
+ __raw_writel(reg, DC_MAP_CONF_PTR(current_map));
+}
+
+static void _ipu_dc_map_config(int map, int byte_num, int offset, int mask)
+{
+ int ptr = map * 3 + byte_num;
+ u32 reg;
+
+ reg = __raw_readl(DC_MAP_CONF_VAL(ptr));
+ reg &= ~(0xFFFF << (16 * (ptr & 0x1)));
+ reg |= ((offset << 8) | mask) << (16 * (ptr & 0x1));
+ __raw_writel(reg, DC_MAP_CONF_VAL(ptr));
+
+ reg = __raw_readl(DC_MAP_CONF_PTR(map));
+ reg &= ~(0x1F << ((16 * (map & 0x1)) + (5 * byte_num)));
+ reg |= ptr << ((16 * (map & 0x1)) + (5 * byte_num));
+ __raw_writel(reg, DC_MAP_CONF_PTR(map));
+}
+
+static void _ipu_dc_map_clear(int map)
+{
+ u32 reg = __raw_readl(DC_MAP_CONF_PTR(map));
+ __raw_writel(reg & ~(0xFFFF << (16 * (map & 0x1))),
+ DC_MAP_CONF_PTR(map));
+}
+
+static void _ipu_dc_write_tmpl(int word, u32 opcode, u32 operand, int map,
+ int wave, int glue, int sync, int stop)
+{
+ u32 reg;
+
+ if (opcode == WRG) {
+ reg = sync;
+ reg |= (glue << 4);
+ reg |= (++wave << 11);
+ reg |= ((operand & 0x1FFFF) << 15);
+ __raw_writel(reg, ipu_dc_tmpl_reg + word * 2);
+
+ reg = (operand >> 17);
+ reg |= opcode << 7;
+ reg |= (stop << 9);
+ __raw_writel(reg, ipu_dc_tmpl_reg + word * 2 + 1);
+ } else {
+ reg = sync;
+ reg |= (glue << 4);
+ reg |= (++wave << 11);
+ reg |= (++map << 15);
+ reg |= (operand << 20) & 0xFFF00000;
+ __raw_writel(reg, ipu_dc_tmpl_reg + word * 2);
+
+ reg = (operand >> 12);
+ reg |= opcode << 4;
+ reg |= (stop << 9);
+ __raw_writel(reg, ipu_dc_tmpl_reg + word * 2 + 1);
+ }
+}
+
+static void _ipu_dc_link_event(int chan, int event, int addr, int priority)
+{
+ u32 reg;
+ u32 address_shift;
+ if (event < DC_EVEN_UGDE0) {
+ reg = __raw_readl(DC_RL_CH(chan, event));
+ reg &= ~(0xFFFF << (16 * (event & 0x1)));
+ reg |= ((addr << 8) | priority) << (16 * (event & 0x1));
+ __raw_writel(reg, DC_RL_CH(chan, event));
+ } else {
+ reg = __raw_readl(DC_UGDE_0((event - DC_EVEN_UGDE0) / 2));
+ if ((event - DC_EVEN_UGDE0) & 0x1) {
+ reg &= ~(0x2FF << 16);
+ reg |= (addr << 16);
+ reg |= priority ? (2 << 24) : 0x0;
+ } else {
+ reg &= ~0xFC00FFFF;
+ if (priority)
+ chan = (chan >> 1) +
+ ((((chan & 0x1) + ((chan & 0x2) >> 1))) | (chan >> 3));
+ else
+ chan = 0x7;
+ address_shift = ((event - DC_EVEN_UGDE0) >> 1) ? 7 : 8;
+ reg |= (addr << address_shift) | (priority << 3) | chan;
+ }
+ __raw_writel(reg, DC_UGDE_0((event - DC_EVEN_UGDE0) / 2));
+ }
+}
+
+/* Y = R * 1.200 + G * 2.343 + B * .453 + 0.250;
+ U = R * -.672 + G * -1.328 + B * 2.000 + 512.250.;
+ V = R * 2.000 + G * -1.672 + B * -.328 + 512.250.;*/
+static const int rgb2ycbcr_coeff[5][3] = {
+ {0x4D, 0x96, 0x1D},
+ {-0x2B, -0x55, 0x80},
+ {0x80, -0x6B, -0x15},
+ {0x0000, 0x0200, 0x0200}, /* B0, B1, B2 */
+ {0x2, 0x2, 0x2}, /* S0, S1, S2 */
+};
+
+/* R = (1.164 * (Y - 16)) + (1.596 * (Cr - 128));
+ G = (1.164 * (Y - 16)) - (0.392 * (Cb - 128)) - (0.813 * (Cr - 128));
+ B = (1.164 * (Y - 16)) + (2.017 * (Cb - 128); */
+static const int ycbcr2rgb_coeff[5][3] = {
+ {0x095, 0x000, 0x0CC},
+ {0x095, 0x3CE, 0x398},
+ {0x095, 0x0FF, 0x000},
+ {0x3E42, 0x010A, 0x3DD6}, /*B0,B1,B2 */
+ {0x1, 0x1, 0x1}, /*S0,S1,S2 */
+};
+
+#define mask_a(a) ((u32)(a) & 0x3FF)
+#define mask_b(b) ((u32)(b) & 0x3FFF)
+
+/* Pls keep S0, S1 and S2 as 0x2 by using this convertion */
+static int _rgb_to_yuv(int n, int red, int green, int blue)
+{
+ int c;
+ c = red * rgb2ycbcr_coeff[n][0];
+ c += green * rgb2ycbcr_coeff[n][1];
+ c += blue * rgb2ycbcr_coeff[n][2];
+ c /= 16;
+ c += rgb2ycbcr_coeff[3][n] * 4;
+ c += 8;
+ c /= 16;
+ if (c < 0)
+ c = 0;
+ if (c > 255)
+ c = 255;
+ return c;
+}
+
+/*
+ * Row is for BG: RGB2YUV YUV2RGB RGB2RGB YUV2YUV CSC_NONE
+ * Column is for FG: RGB2YUV YUV2RGB RGB2RGB YUV2YUV CSC_NONE
+ */
+static struct dp_csc_param_t dp_csc_array[CSC_NUM][CSC_NUM] = {
+{{DP_COM_CONF_CSC_DEF_BOTH, &rgb2ycbcr_coeff}, {0, 0}, {0, 0}, {DP_COM_CONF_CSC_DEF_BG, &rgb2ycbcr_coeff}, {DP_COM_CONF_CSC_DEF_BG, &rgb2ycbcr_coeff} },
+{{0, 0}, {DP_COM_CONF_CSC_DEF_BOTH, &ycbcr2rgb_coeff}, {DP_COM_CONF_CSC_DEF_BG, &ycbcr2rgb_coeff}, {0, 0}, {DP_COM_CONF_CSC_DEF_BG, &ycbcr2rgb_coeff} },
+{{0, 0}, {DP_COM_CONF_CSC_DEF_FG, &ycbcr2rgb_coeff}, {0, 0}, {0, 0}, {0, 0} },
+{{DP_COM_CONF_CSC_DEF_FG, &rgb2ycbcr_coeff}, {0, 0}, {0, 0}, {0, 0}, {0, 0} },
+{{DP_COM_CONF_CSC_DEF_FG, &rgb2ycbcr_coeff}, {DP_COM_CONF_CSC_DEF_FG, &ycbcr2rgb_coeff}, {0, 0}, {0, 0}, {0, 0} }
+};
+
+static enum csc_type_t fg_csc_type = CSC_NONE, bg_csc_type = CSC_NONE;
+static int color_key_4rgb = 1;
+
+void __ipu_dp_csc_setup(int dp, struct dp_csc_param_t dp_csc_param,
+ bool srm_mode_update)
+{
+ u32 reg;
+ const int (*coeff)[5][3];
+
+ if (dp_csc_param.mode >= 0) {
+ reg = __raw_readl(DP_COM_CONF(dp));
+ reg &= ~DP_COM_CONF_CSC_DEF_MASK;
+ reg |= dp_csc_param.mode;
+ __raw_writel(reg, DP_COM_CONF(dp));
+ }
+
+ coeff = dp_csc_param.coeff;
+
+ if (coeff) {
+ __raw_writel(mask_a((*coeff)[0][0]) |
+ (mask_a((*coeff)[0][1]) << 16), DP_CSC_A_0(dp));
+ __raw_writel(mask_a((*coeff)[0][2]) |
+ (mask_a((*coeff)[1][0]) << 16), DP_CSC_A_1(dp));
+ __raw_writel(mask_a((*coeff)[1][1]) |
+ (mask_a((*coeff)[1][2]) << 16), DP_CSC_A_2(dp));
+ __raw_writel(mask_a((*coeff)[2][0]) |
+ (mask_a((*coeff)[2][1]) << 16), DP_CSC_A_3(dp));
+ __raw_writel(mask_a((*coeff)[2][2]) |
+ (mask_b((*coeff)[3][0]) << 16) |
+ ((*coeff)[4][0] << 30), DP_CSC_0(dp));
+ __raw_writel(mask_b((*coeff)[3][1]) | ((*coeff)[4][1] << 14) |
+ (mask_b((*coeff)[3][2]) << 16) |
+ ((*coeff)[4][2] << 30), DP_CSC_1(dp));
+ }
+
+ if (srm_mode_update) {
+ reg = __raw_readl(IPU_SRM_PRI2) | 0x8;
+ __raw_writel(reg, IPU_SRM_PRI2);
+ }
+}
+
+int _ipu_dp_init(ipu_channel_t channel, uint32_t in_pixel_fmt,
+ uint32_t out_pixel_fmt)
+{
+ int in_fmt, out_fmt;
+ int dp;
+ int partial = false;
+ uint32_t reg;
+
+ if (channel == MEM_FG_SYNC) {
+ dp = DP_SYNC;
+ partial = true;
+ } else if (channel == MEM_BG_SYNC) {
+ dp = DP_SYNC;
+ partial = false;
+ } else if (channel == MEM_BG_ASYNC0) {
+ dp = DP_ASYNC0;
+ partial = false;
+ } else {
+ return -EINVAL;
+ }
+
+ in_fmt = format_to_colorspace(in_pixel_fmt);
+ out_fmt = format_to_colorspace(out_pixel_fmt);
+
+ if (partial) {
+ if (in_fmt == RGB) {
+ if (out_fmt == RGB)
+ fg_csc_type = RGB2RGB;
+ else
+ fg_csc_type = RGB2YUV;
+ } else {
+ if (out_fmt == RGB)
+ fg_csc_type = YUV2RGB;
+ else
+ fg_csc_type = YUV2YUV;
+ }
+ } else {
+ if (in_fmt == RGB) {
+ if (out_fmt == RGB)
+ bg_csc_type = RGB2RGB;
+ else
+ bg_csc_type = RGB2YUV;
+ } else {
+ if (out_fmt == RGB)
+ bg_csc_type = YUV2RGB;
+ else
+ bg_csc_type = YUV2YUV;
+ }
+ }
+
+ /* Transform color key from rgb to yuv if CSC is enabled */
+ reg = __raw_readl(DP_COM_CONF(dp));
+ if (color_key_4rgb && (reg & DP_COM_CONF_GWCKE) &&
+ (((fg_csc_type == RGB2YUV) && (bg_csc_type == YUV2YUV)) ||
+ ((fg_csc_type == YUV2YUV) && (bg_csc_type == RGB2YUV)) ||
+ ((fg_csc_type == YUV2YUV) && (bg_csc_type == YUV2YUV)) ||
+ ((fg_csc_type == YUV2RGB) && (bg_csc_type == YUV2RGB)))) {
+ int red, green, blue;
+ int y, u, v;
+ uint32_t color_key = __raw_readl(DP_GRAPH_WIND_CTRL(dp)) & 0xFFFFFFL;
+
+ dev_dbg(g_ipu_dev, "_ipu_dp_init color key 0x%x need change to yuv fmt!\n", color_key);
+
+ red = (color_key >> 16) & 0xFF;
+ green = (color_key >> 8) & 0xFF;
+ blue = color_key & 0xFF;
+
+ y = _rgb_to_yuv(0, red, green, blue);
+ u = _rgb_to_yuv(1, red, green, blue);
+ v = _rgb_to_yuv(2, red, green, blue);
+ color_key = (y << 16) | (u << 8) | v;
+
+ reg = __raw_readl(DP_GRAPH_WIND_CTRL(dp)) & 0xFF000000L;
+ __raw_writel(reg | color_key, DP_GRAPH_WIND_CTRL(dp));
+ color_key_4rgb = 0;
+
+ dev_dbg(g_ipu_dev, "_ipu_dp_init color key change to yuv fmt 0x%x!\n", color_key);
+ }
+
+ __ipu_dp_csc_setup(dp, dp_csc_array[bg_csc_type][fg_csc_type], true);
+
+ return 0;
+}
+
+void _ipu_dp_uninit(ipu_channel_t channel)
+{
+ int dp;
+ int partial = false;
+
+ if (channel == MEM_FG_SYNC) {
+ dp = DP_SYNC;
+ partial = true;
+ } else if (channel == MEM_BG_SYNC) {
+ dp = DP_SYNC;
+ partial = false;
+ } else if (channel == MEM_BG_ASYNC0) {
+ dp = DP_ASYNC0;
+ partial = false;
+ } else {
+ return;
+ }
+
+ if (partial)
+ fg_csc_type = CSC_NONE;
+ else
+ bg_csc_type = CSC_NONE;
+
+ __ipu_dp_csc_setup(dp, dp_csc_array[bg_csc_type][fg_csc_type], false);
+}
+
+void _ipu_dc_init(int dc_chan, int di, bool interlaced, uint32_t pixel_fmt)
+{
+ u32 reg = 0;
+
+ if ((dc_chan == 1) || (dc_chan == 5)) {
+ if (interlaced) {
+ _ipu_dc_link_event(dc_chan, DC_EVT_NL, 0, 3);
+ _ipu_dc_link_event(dc_chan, DC_EVT_EOL, 0, 2);
+ _ipu_dc_link_event(dc_chan, DC_EVT_NEW_DATA, 0, 1);
+ } else {
+ if (di) {
+ _ipu_dc_link_event(dc_chan, DC_EVT_NL, 2, 3);
+ _ipu_dc_link_event(dc_chan, DC_EVT_EOL, 3, 2);
+ _ipu_dc_link_event(dc_chan, DC_EVT_NEW_DATA, 4, 1);
+ if ((pixel_fmt == IPU_PIX_FMT_YUYV) ||
+ (pixel_fmt == IPU_PIX_FMT_UYVY) ||
+ (pixel_fmt == IPU_PIX_FMT_YVYU) ||
+ (pixel_fmt == IPU_PIX_FMT_VYUY)) {
+ _ipu_dc_link_event(dc_chan, DC_ODD_UGDE1, 9, 5);
+ _ipu_dc_link_event(dc_chan, DC_EVEN_UGDE1, 8, 5);
+ }
+ } else {
+ _ipu_dc_link_event(dc_chan, DC_EVT_NL, 5, 3);
+ _ipu_dc_link_event(dc_chan, DC_EVT_EOL, 6, 2);
+ _ipu_dc_link_event(dc_chan, DC_EVT_NEW_DATA, 7, 1);
+ if ((pixel_fmt == IPU_PIX_FMT_YUYV) ||
+ (pixel_fmt == IPU_PIX_FMT_UYVY) ||
+ (pixel_fmt == IPU_PIX_FMT_YVYU) ||
+ (pixel_fmt == IPU_PIX_FMT_VYUY)) {
+ _ipu_dc_link_event(dc_chan, DC_ODD_UGDE0, 10, 5);
+ _ipu_dc_link_event(dc_chan, DC_EVEN_UGDE0, 11, 5);
+ }
+ }
+ }
+ _ipu_dc_link_event(dc_chan, DC_EVT_NF, 0, 0);
+ _ipu_dc_link_event(dc_chan, DC_EVT_NFIELD, 0, 0);
+ _ipu_dc_link_event(dc_chan, DC_EVT_EOF, 0, 0);
+ _ipu_dc_link_event(dc_chan, DC_EVT_EOFIELD, 0, 0);
+ _ipu_dc_link_event(dc_chan, DC_EVT_NEW_CHAN, 0, 0);
+ _ipu_dc_link_event(dc_chan, DC_EVT_NEW_ADDR, 0, 0);
+
+ reg = 0x2;
+ reg |= DC_DISP_ID_SYNC(di) << DC_WR_CH_CONF_PROG_DISP_ID_OFFSET;
+ reg |= di << 2;
+ if (interlaced)
+ reg |= DC_WR_CH_CONF_FIELD_MODE;
+ } else if ((dc_chan == 8) || (dc_chan == 9)) {
+ /* async channels */
+ _ipu_dc_link_event(dc_chan, DC_EVT_NEW_DATA_W_0, 0x64, 1);
+ _ipu_dc_link_event(dc_chan, DC_EVT_NEW_DATA_W_1, 0x64, 1);
+
+ reg = 0x3;
+ reg |= DC_DISP_ID_SERIAL << DC_WR_CH_CONF_PROG_DISP_ID_OFFSET;
+ }
+ __raw_writel(reg, DC_WR_CH_CONF(dc_chan));
+
+ __raw_writel(0x00000000, DC_WR_CH_ADDR(dc_chan));
+
+ __raw_writel(0x00000084, DC_GEN);
+}
+
+void _ipu_dc_uninit(int dc_chan)
+{
+ if ((dc_chan == 1) || (dc_chan == 5)) {
+ _ipu_dc_link_event(dc_chan, DC_EVT_NL, 0, 0);
+ _ipu_dc_link_event(dc_chan, DC_EVT_EOL, 0, 0);
+ _ipu_dc_link_event(dc_chan, DC_EVT_NEW_DATA, 0, 0);
+ _ipu_dc_link_event(dc_chan, DC_EVT_NF, 0, 0);
+ _ipu_dc_link_event(dc_chan, DC_EVT_NFIELD, 0, 0);
+ _ipu_dc_link_event(dc_chan, DC_EVT_EOF, 0, 0);
+ _ipu_dc_link_event(dc_chan, DC_EVT_EOFIELD, 0, 0);
+ _ipu_dc_link_event(dc_chan, DC_EVT_NEW_CHAN, 0, 0);
+ _ipu_dc_link_event(dc_chan, DC_EVT_NEW_ADDR, 0, 0);
+ _ipu_dc_link_event(dc_chan, DC_ODD_UGDE0, 0, 0);
+ _ipu_dc_link_event(dc_chan, DC_EVEN_UGDE0, 0, 0);
+ _ipu_dc_link_event(dc_chan, DC_ODD_UGDE1, 0, 0);
+ _ipu_dc_link_event(dc_chan, DC_EVEN_UGDE1, 0, 0);
+ } else if ((dc_chan == 8) || (dc_chan == 9)) {
+ _ipu_dc_link_event(dc_chan, DC_EVT_NEW_ADDR_W_0, 0, 0);
+ _ipu_dc_link_event(dc_chan, DC_EVT_NEW_ADDR_W_1, 0, 0);
+ _ipu_dc_link_event(dc_chan, DC_EVT_NEW_CHAN_W_0, 0, 0);
+ _ipu_dc_link_event(dc_chan, DC_EVT_NEW_CHAN_W_1, 0, 0);
+ _ipu_dc_link_event(dc_chan, DC_EVT_NEW_DATA_W_0, 0, 0);
+ _ipu_dc_link_event(dc_chan, DC_EVT_NEW_DATA_W_1, 0, 0);
+ _ipu_dc_link_event(dc_chan, DC_EVT_NEW_ADDR_R_0, 0, 0);
+ _ipu_dc_link_event(dc_chan, DC_EVT_NEW_ADDR_R_1, 0, 0);
+ _ipu_dc_link_event(dc_chan, DC_EVT_NEW_CHAN_R_0, 0, 0);
+ _ipu_dc_link_event(dc_chan, DC_EVT_NEW_CHAN_R_1, 0, 0);
+ _ipu_dc_link_event(dc_chan, DC_EVT_NEW_DATA_R_0, 0, 0);
+ _ipu_dc_link_event(dc_chan, DC_EVT_NEW_DATA_R_1, 0, 0);
+ }
+}
+
+int _ipu_disp_chan_is_interlaced(ipu_channel_t channel)
+{
+ if (channel == MEM_DC_SYNC)
+ return !!(__raw_readl(DC_WR_CH_CONF_1) &
+ DC_WR_CH_CONF_FIELD_MODE);
+ else if ((channel == MEM_BG_SYNC) || (channel == MEM_FG_SYNC))
+ return !!(__raw_readl(DC_WR_CH_CONF_5) &
+ DC_WR_CH_CONF_FIELD_MODE);
+ return 0;
+}
+
+void _ipu_dp_dc_enable(ipu_channel_t channel)
+{
+ int di;
+ uint32_t reg;
+ uint32_t dc_chan;
+ int irq = 0;
+
+ if (channel == MEM_FG_SYNC)
+ irq = IPU_IRQ_DP_SF_END;
+ else if (channel == MEM_DC_SYNC)
+ dc_chan = 1;
+ else if (channel == MEM_BG_SYNC)
+ dc_chan = 5;
+ else
+ return;
+
+ if (channel == MEM_FG_SYNC) {
+ /* Enable FG channel */
+ reg = __raw_readl(DP_COM_CONF(DP_SYNC));
+ __raw_writel(reg | DP_COM_CONF_FG_EN, DP_COM_CONF(DP_SYNC));
+
+ reg = __raw_readl(IPU_SRM_PRI2) | 0x8;
+ __raw_writel(reg, IPU_SRM_PRI2);
+ return;
+ }
+
+ di = g_dc_di_assignment[dc_chan];
+
+ /* Make sure other DC sync channel is not assigned same DI */
+ reg = __raw_readl(DC_WR_CH_CONF(6 - dc_chan));
+ if ((di << 2) == (reg & DC_WR_CH_CONF_PROG_DI_ID)) {
+ reg &= ~DC_WR_CH_CONF_PROG_DI_ID;
+ reg |= di ? 0 : DC_WR_CH_CONF_PROG_DI_ID;
+ __raw_writel(reg, DC_WR_CH_CONF(6 - dc_chan));
+ }
+
+ reg = __raw_readl(DC_WR_CH_CONF(dc_chan));
+ reg |= 4 << DC_WR_CH_CONF_PROG_TYPE_OFFSET;
+ __raw_writel(reg, DC_WR_CH_CONF(dc_chan));
+
+ clk_enable(g_pixel_clk[di]);
+}
+
+static bool dc_swap;
+
+static irqreturn_t dc_irq_handler(int irq, void *dev_id)
+{
+ struct completion *comp = dev_id;
+ uint32_t reg;
+ uint32_t dc_chan;
+
+ if (irq == IPU_IRQ_DC_FC_1)
+ dc_chan = 1;
+ else
+ dc_chan = 5;
+
+ if (!dc_swap) {
+ reg = __raw_readl(DC_WR_CH_CONF(dc_chan));
+ reg &= ~DC_WR_CH_CONF_PROG_TYPE_MASK;
+ __raw_writel(reg, DC_WR_CH_CONF(dc_chan));
+
+ reg = __raw_readl(IPU_DISP_GEN);
+ if (g_dc_di_assignment[dc_chan])
+ reg &= ~DI1_COUNTER_RELEASE;
+ else
+ reg &= ~DI0_COUNTER_RELEASE;
+ __raw_writel(reg, IPU_DISP_GEN);
+ }
+
+ complete(comp);
+ return IRQ_HANDLED;
+}
+
+void _ipu_dp_dc_disable(ipu_channel_t channel, bool swap)
+{
+ int ret;
+ unsigned long lock_flags;
+ uint32_t reg;
+ uint32_t csc;
+ uint32_t dc_chan;
+ int irq = 0;
+ int timeout = 50;
+ DECLARE_COMPLETION_ONSTACK(dc_comp);
+
+ dc_swap = swap;
+
+ if (channel == MEM_DC_SYNC) {
+ dc_chan = 1;
+ irq = IPU_IRQ_DC_FC_1;
+ } else if (channel == MEM_BG_SYNC) {
+ dc_chan = 5;
+ irq = IPU_IRQ_DP_SF_END;
+ } else if (channel == MEM_FG_SYNC) {
+ /* Disable FG channel */
+ dc_chan = 5;
+
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+
+ reg = __raw_readl(DP_COM_CONF(DP_SYNC));
+ csc = reg & DP_COM_CONF_CSC_DEF_MASK;
+ if (csc == DP_COM_CONF_CSC_DEF_FG)
+ reg &= ~DP_COM_CONF_CSC_DEF_MASK;
+
+ reg &= ~DP_COM_CONF_FG_EN;
+ __raw_writel(reg, DP_COM_CONF(DP_SYNC));
+
+ reg = __raw_readl(IPU_SRM_PRI2) | 0x8;
+ __raw_writel(reg, IPU_SRM_PRI2);
+
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+
+ __raw_writel(IPUIRQ_2_MASK(IPU_IRQ_DP_SF_END),
+ IPUIRQ_2_STATREG(IPU_IRQ_DP_SF_END));
+ while ((__raw_readl(IPUIRQ_2_STATREG(IPU_IRQ_DP_SF_END)) &
+ IPUIRQ_2_MASK(IPU_IRQ_DP_SF_END)) == 0) {
+ msleep(2);
+ timeout -= 2;
+ if (timeout <= 0)
+ break;
+ }
+ return;
+ } else {
+ return;
+ }
+
+ if (!dc_swap)
+ __raw_writel(IPUIRQ_2_MASK(IPU_IRQ_VSYNC_PRE_0
+ + g_dc_di_assignment[dc_chan]),
+ IPUIRQ_2_STATREG(IPU_IRQ_VSYNC_PRE_0
+ + g_dc_di_assignment[dc_chan]));
+ ipu_clear_irq(irq);
+ ret = ipu_request_irq(irq, dc_irq_handler, 0, NULL, &dc_comp);
+ if (ret < 0) {
+ dev_err(g_ipu_dev, "DC irq %d in use\n", irq);
+ return;
+ }
+ ret = wait_for_completion_timeout(&dc_comp, msecs_to_jiffies(50));
+
+ dev_dbg(g_ipu_dev, "DC stop timeout - %d * 10ms\n", 5 - ret);
+ ipu_free_irq(irq, &dc_comp);
+
+ if (dc_swap) {
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+ /* Swap DC channel 1 and 5 settings, and disable old dc chan */
+ reg = __raw_readl(DC_WR_CH_CONF(dc_chan));
+ __raw_writel(reg, DC_WR_CH_CONF(6 - dc_chan));
+ reg &= ~DC_WR_CH_CONF_PROG_TYPE_MASK;
+ reg ^= DC_WR_CH_CONF_PROG_DI_ID;
+ __raw_writel(reg, DC_WR_CH_CONF(dc_chan));
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+ } else {
+ /* Clock is already off because it must be done quickly, but
+ we need to fix the ref count */
+ clk_disable(g_pixel_clk[g_dc_di_assignment[dc_chan]]);
+
+ if (__raw_readl(IPUIRQ_2_STATREG(IPU_IRQ_VSYNC_PRE_0
+ + g_dc_di_assignment[dc_chan])) &
+ IPUIRQ_2_MASK(IPU_IRQ_VSYNC_PRE_0
+ + g_dc_di_assignment[dc_chan]))
+ dev_dbg(g_ipu_dev,
+ "VSyncPre occurred before DI%d disable\n",
+ g_dc_di_assignment[dc_chan]);
+ }
+}
+
+void _ipu_init_dc_mappings(void)
+{
+ /* IPU_PIX_FMT_RGB24 */
+ _ipu_dc_map_clear(0);
+ _ipu_dc_map_config(0, 0, 7, 0xFF);
+ _ipu_dc_map_config(0, 1, 15, 0xFF);
+ _ipu_dc_map_config(0, 2, 23, 0xFF);
+
+ /* IPU_PIX_FMT_RGB666 */
+ _ipu_dc_map_clear(1);
+ _ipu_dc_map_config(1, 0, 5, 0xFC);
+ _ipu_dc_map_config(1, 1, 11, 0xFC);
+ _ipu_dc_map_config(1, 2, 17, 0xFC);
+
+ /* IPU_PIX_FMT_YUV444 */
+ _ipu_dc_map_clear(2);
+ _ipu_dc_map_config(2, 0, 15, 0xFF);
+ _ipu_dc_map_config(2, 1, 23, 0xFF);
+ _ipu_dc_map_config(2, 2, 7, 0xFF);
+
+ /* IPU_PIX_FMT_RGB565 */
+ _ipu_dc_map_clear(3);
+ _ipu_dc_map_config(3, 0, 4, 0xF8);
+ _ipu_dc_map_config(3, 1, 10, 0xFC);
+ _ipu_dc_map_config(3, 2, 15, 0xF8);
+
+ /* IPU_PIX_FMT_LVDS666 */
+ _ipu_dc_map_clear(4);
+ _ipu_dc_map_config(4, 0, 5, 0xFC);
+ _ipu_dc_map_config(4, 1, 13, 0xFC);
+ _ipu_dc_map_config(4, 2, 21, 0xFC);
+
+ /* IPU_PIX_FMT_VYUY 16bit width */
+ _ipu_dc_map_clear(5);
+ _ipu_dc_map_config(5, 0, 7, 0xFF);
+ _ipu_dc_map_config(5, 1, 0, 0x0);
+ _ipu_dc_map_config(5, 2, 15, 0xFF);
+ _ipu_dc_map_clear(6);
+ _ipu_dc_map_config(6, 0, 0, 0x0);
+ _ipu_dc_map_config(6, 1, 7, 0xFF);
+ _ipu_dc_map_config(6, 2, 15, 0xFF);
+
+ /* IPU_PIX_FMT_UYUV 16bit width */
+ _ipu_dc_map_clear(7);
+ _ipu_dc_map_link(7, 6, 0, 6, 1, 6, 2);
+ _ipu_dc_map_clear(8);
+ _ipu_dc_map_link(8, 5, 0, 5, 1, 5, 2);
+
+ /* IPU_PIX_FMT_YUYV 16bit width */
+ _ipu_dc_map_clear(9);
+ _ipu_dc_map_link(9, 5, 2, 5, 1, 5, 0);
+ _ipu_dc_map_clear(10);
+ _ipu_dc_map_link(10, 5, 1, 5, 2, 5, 0);
+
+ /* IPU_PIX_FMT_YVYU 16bit width */
+ _ipu_dc_map_clear(11);
+ _ipu_dc_map_link(11, 5, 1, 5, 2, 5, 0);
+ _ipu_dc_map_clear(12);
+ _ipu_dc_map_link(12, 5, 2, 5, 1, 5, 0);
+
+ /* IPU_PIX_FMT_GBR24 */
+ _ipu_dc_map_clear(13);
+ _ipu_dc_map_link(13, 0, 2, 0, 0, 0, 1);
+}
+
+int _ipu_pixfmt_to_map(uint32_t fmt)
+{
+ switch (fmt) {
+ case IPU_PIX_FMT_GENERIC:
+ case IPU_PIX_FMT_RGB24:
+ return 0;
+ case IPU_PIX_FMT_RGB666:
+ return 1;
+ case IPU_PIX_FMT_YUV444:
+ return 2;
+ case IPU_PIX_FMT_RGB565:
+ return 3;
+ case IPU_PIX_FMT_LVDS666:
+ return 4;
+ case IPU_PIX_FMT_VYUY:
+ return 6;
+ case IPU_PIX_FMT_UYVY:
+ return 8;
+ case IPU_PIX_FMT_YUYV:
+ return 10;
+ case IPU_PIX_FMT_YVYU:
+ return 12;
+ case IPU_PIX_FMT_GBR24:
+ return 13;
+ }
+
+ return -1;
+}
+
+/*!
+ * This function sets the colorspace for of dp.
+ * modes.
+ *
+ * @param channel Input parameter for the logical channel ID.
+ *
+ * @param param If it's not NULL, update the csc table
+ * with this parameter.
+ *
+ * @return N/A
+ */
+void _ipu_dp_set_csc_coefficients(ipu_channel_t channel, int32_t param[][3])
+{
+ int dp;
+ struct dp_csc_param_t dp_csc_param;
+
+ if (channel == MEM_FG_SYNC)
+ dp = DP_SYNC;
+ else if (channel == MEM_BG_SYNC)
+ dp = DP_SYNC;
+ else if (channel == MEM_BG_ASYNC0)
+ dp = DP_ASYNC0;
+ else
+ return;
+
+ dp_csc_param.mode = -1;
+ dp_csc_param.coeff = param;
+ __ipu_dp_csc_setup(dp, dp_csc_param, true);
+}
+
+/*!
+ * This function is called to adapt synchronous LCD panel to IPU restriction.
+ *
+ */
+void adapt_panel_to_ipu_restricitions(uint16_t *v_start_width,
+ uint16_t *v_sync_width,
+ uint16_t *v_end_width)
+{
+ if (*v_end_width < 2) {
+ uint16_t diff = 2 - *v_end_width;
+ if (*v_start_width >= diff) {
+ *v_end_width = 2;
+ *v_start_width = *v_start_width - diff;
+ } else if (*v_sync_width > diff) {
+ *v_end_width = 2;
+ *v_sync_width = *v_sync_width - diff;
+ } else
+ dev_err(g_ipu_dev, "WARNING: try to adapt timming, but failed\n");
+ dev_err(g_ipu_dev, "WARNING: adapt panel end blank lines\n");
+ }
+}
+
+/*!
+ * This function is called to initialize a synchronous LCD panel.
+ *
+ * @param disp The DI the panel is attached to.
+ *
+ * @param pixel_clk Desired pixel clock frequency in Hz.
+ *
+ * @param pixel_fmt Input parameter for pixel format of buffer.
+ * Pixel format is a FOURCC ASCII code.
+ *
+ * @param width The width of panel in pixels.
+ *
+ * @param height The height of panel in pixels.
+ *
+ * @param hStartWidth The number of pixel clocks between the HSYNC
+ * signal pulse and the start of valid data.
+ *
+ * @param hSyncWidth The width of the HSYNC signal in units of pixel
+ * clocks.
+ *
+ * @param hEndWidth The number of pixel clocks between the end of
+ * valid data and the HSYNC signal for next line.
+ *
+ * @param vStartWidth The number of lines between the VSYNC
+ * signal pulse and the start of valid data.
+ *
+ * @param vSyncWidth The width of the VSYNC signal in units of lines
+ *
+ * @param vEndWidth The number of lines between the end of valid
+ * data and the VSYNC signal for next frame.
+ *
+ * @param sig Bitfield of signal polarities for LCD interface.
+ *
+ * @return This function returns 0 on success or negative error code on
+ * fail.
+ */
+int32_t ipu_init_sync_panel(int disp, uint32_t pixel_clk,
+ uint16_t width, uint16_t height,
+ uint32_t pixel_fmt,
+ uint16_t h_start_width, uint16_t h_sync_width,
+ uint16_t h_end_width, uint16_t v_start_width,
+ uint16_t v_sync_width, uint16_t v_end_width,
+ uint32_t v_to_h_sync, ipu_di_signal_cfg_t sig)
+{
+ unsigned long lock_flags;
+ uint32_t field0_offset = 0;
+ uint32_t field1_offset;
+ uint32_t reg;
+ uint32_t di_gen, vsync_cnt;
+ uint32_t div, rounded_pixel_clk;
+ uint32_t h_total, v_total;
+ int map;
+ int ipu_freq_scaling_enabled = 0;
+ struct clk *di_parent;
+
+ dev_dbg(g_ipu_dev, "panel size = %d x %d\n", width, height);
+
+ if ((v_sync_width == 0) || (h_sync_width == 0))
+ return EINVAL;
+
+ adapt_panel_to_ipu_restricitions(&v_start_width, &v_sync_width, &v_end_width);
+ h_total = width + h_sync_width + h_start_width + h_end_width;
+ v_total = height + v_sync_width + v_start_width + v_end_width;
+
+ /* Init clocking */
+ dev_dbg(g_ipu_dev, "pixel clk = %d\n", pixel_clk);
+
+ /*clear DI*/
+ __raw_writel((1 << 21), DI_GENERAL(disp));
+
+ di_parent = clk_get_parent(g_di_clk[disp]);
+ if (clk_get(NULL, "tve_clk") == di_parent ||
+ clk_get(NULL, "ldb_di0_clk") == di_parent ||
+ clk_get(NULL, "ldb_di1_clk") == di_parent) {
+ /* if di clk parent is tve/ldb, then keep it;*/
+ dev_dbg(g_ipu_dev, "use special clk parent\n");
+ clk_set_parent(g_pixel_clk[disp], g_di_clk[disp]);
+ } else {
+ /* try ipu clk first*/
+ dev_dbg(g_ipu_dev, "try ipu internal clk\n");
+ clk_set_parent(g_pixel_clk[disp], g_ipu_clk);
+ rounded_pixel_clk = clk_round_rate(g_pixel_clk[disp], pixel_clk);
+ /*
+ * we will only use 1/2 fraction for ipu clk,
+ * so if the clk rate is not fit, try ext clk.
+ */
+ if (!sig.int_clk &&
+ ((rounded_pixel_clk >= pixel_clk + pixel_clk/16) ||
+ (rounded_pixel_clk <= pixel_clk - pixel_clk/16))) {
+ dev_dbg(g_ipu_dev, "try ipu ext di clk\n");
+ rounded_pixel_clk = pixel_clk * 2;
+ while (rounded_pixel_clk < 150000000)
+ rounded_pixel_clk += pixel_clk * 2;
+ clk_set_rate(di_parent, rounded_pixel_clk);
+ rounded_pixel_clk =
+ clk_round_rate(g_di_clk[disp], pixel_clk);
+ clk_set_rate(g_di_clk[disp], rounded_pixel_clk);
+ clk_set_parent(g_pixel_clk[disp], g_di_clk[disp]);
+ }
+ }
+ rounded_pixel_clk = clk_round_rate(g_pixel_clk[disp], pixel_clk);
+ clk_set_rate(g_pixel_clk[disp], rounded_pixel_clk);
+ msleep(5);
+ /* Get integer portion of divider */
+ div = clk_get_rate(clk_get_parent(g_pixel_clk[disp])) / rounded_pixel_clk;
+
+ ipu_freq_scaling_enabled = dvfs_per_pixel_clk_limit();
+
+ if (ipu_freq_scaling_enabled) {
+ /* Enable for a divide by 2 clock change. */
+ reg = __raw_readl(IPU_PM);
+ reg &= ~(0x7f << 7);
+ reg |= 0x20 << 7;
+ reg &= ~(0x7f << 23);
+ reg |= 0x20 << 23;
+ __raw_writel(reg, IPU_PM);
+ }
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+
+ _ipu_di_data_wave_config(disp, SYNC_WAVE, div - 1, div - 1);
+ _ipu_di_data_pin_config(disp, SYNC_WAVE, DI_PIN15, 3, 0, div * 2);
+
+ map = _ipu_pixfmt_to_map(pixel_fmt);
+ if (map < 0) {
+ dev_dbg(g_ipu_dev, "IPU_DISP: No MAP\n");
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+ return -EINVAL;
+ }
+
+ di_gen = __raw_readl(DI_GENERAL(disp));
+
+ if (sig.interlaced) {
+ if (g_ipu_hw_rev >= 2) {
+ /* Setup internal HSYNC waveform */
+ _ipu_di_sync_config(
+ disp, /* display */
+ 1, /* counter */
+ h_total/2 - 1, /* run count */
+ DI_SYNC_CLK, /* run_resolution */
+ 0, /* offset */
+ DI_SYNC_NONE, /* offset resolution */
+ 0, /* repeat count */
+ DI_SYNC_NONE, /* CNT_CLR_SEL */
+ 0, /* CNT_POLARITY_GEN_EN */
+ DI_SYNC_NONE, /* CNT_POLARITY_CLR_SEL */
+ DI_SYNC_NONE, /* CNT_POLARITY_TRIGGER_SEL */
+ 0, /* COUNT UP */
+ 0 /* COUNT DOWN */
+ );
+
+ /* Field 1 VSYNC waveform */
+ _ipu_di_sync_config(
+ disp, /* display */
+ 2, /* counter */
+ h_total - 1, /* run count */
+ DI_SYNC_CLK, /* run_resolution */
+ 0, /* offset */
+ DI_SYNC_NONE, /* offset resolution */
+ 0, /* repeat count */
+ DI_SYNC_NONE, /* CNT_CLR_SEL */
+ 0, /* CNT_POLARITY_GEN_EN */
+ DI_SYNC_NONE, /* CNT_POLARITY_CLR_SEL */
+ DI_SYNC_NONE, /* CNT_POLARITY_TRIGGER_SEL */
+ 0, /* COUNT UP */
+ 2*div /* COUNT DOWN */
+ );
+
+ /* Setup internal HSYNC waveform */
+ _ipu_di_sync_config(
+ disp, /* display */
+ 3, /* counter */
+ v_total*2 - 1, /* run count */
+ DI_SYNC_INT_HSYNC, /* run_resolution */
+ 1, /* offset */
+ DI_SYNC_INT_HSYNC, /* offset resolution */
+ 0, /* repeat count */
+ DI_SYNC_NONE, /* CNT_CLR_SEL */
+ 0, /* CNT_POLARITY_GEN_EN */
+ DI_SYNC_NONE, /* CNT_POLARITY_CLR_SEL */
+ DI_SYNC_NONE, /* CNT_POLARITY_TRIGGER_SEL */
+ 0, /* COUNT UP */
+ 2*div /* COUNT DOWN */
+ );
+
+ /* Active Field ? */
+ _ipu_di_sync_config(
+ disp, /* display */
+ 4, /* counter */
+ v_total/2 - 1, /* run count */
+ DI_SYNC_HSYNC, /* run_resolution */
+ v_start_width, /* offset */
+ DI_SYNC_HSYNC, /* offset resolution */
+ 2, /* repeat count */
+ DI_SYNC_VSYNC, /* CNT_CLR_SEL */
+ 0, /* CNT_POLARITY_GEN_EN */
+ DI_SYNC_NONE, /* CNT_POLARITY_CLR_SEL */
+ DI_SYNC_NONE, /* CNT_POLARITY_TRIGGER_SEL */
+ 0, /* COUNT UP */
+ 0 /* COUNT DOWN */
+ );
+
+ /* Active Line */
+ _ipu_di_sync_config(
+ disp, /* display */
+ 5, /* counter */
+ 0, /* run count */
+ DI_SYNC_HSYNC, /* run_resolution */
+ 0, /* offset */
+ DI_SYNC_NONE, /* offset resolution */
+ height/2, /* repeat count */
+ 4, /* CNT_CLR_SEL */
+ 0, /* CNT_POLARITY_GEN_EN */
+ DI_SYNC_NONE, /* CNT_POLARITY_CLR_SEL */
+ DI_SYNC_NONE, /* CNT_POLARITY_TRIGGER_SEL */
+ 0, /* COUNT UP */
+ 0 /* COUNT DOWN */
+ );
+
+ /* Field 0 VSYNC waveform */
+ _ipu_di_sync_config(
+ disp, /* display */
+ 6, /* counter */
+ v_total - 1, /* run count */
+ DI_SYNC_HSYNC, /* run_resolution */
+ 0, /* offset */
+ DI_SYNC_NONE, /* offset resolution */
+ 0, /* repeat count */
+ DI_SYNC_NONE, /* CNT_CLR_SEL */
+ 0, /* CNT_POLARITY_GEN_EN */
+ DI_SYNC_NONE, /* CNT_POLARITY_CLR_SEL */
+ DI_SYNC_NONE, /* CNT_POLARITY_TRIGGER_SEL */
+ 0, /* COUNT UP */
+ 0 /* COUNT DOWN */
+ );
+
+ /* DC VSYNC waveform */
+ vsync_cnt = 7;
+ _ipu_di_sync_config(
+ disp, /* display */
+ 7, /* counter */
+ v_total/2 - 1, /* run count */
+ DI_SYNC_HSYNC, /* run_resolution */
+ 9, /* offset */
+ DI_SYNC_HSYNC, /* offset resolution */
+ 2, /* repeat count */
+ DI_SYNC_VSYNC, /* CNT_CLR_SEL */
+ 0, /* CNT_POLARITY_GEN_EN */
+ DI_SYNC_NONE, /* CNT_POLARITY_CLR_SEL */
+ DI_SYNC_NONE, /* CNT_POLARITY_TRIGGER_SEL */
+ 0, /* COUNT UP */
+ 0 /* COUNT DOWN */
+ );
+
+ /* active pixel waveform */
+ _ipu_di_sync_config(
+ disp, /* display */
+ 8, /* counter */
+ 0, /* run count */
+ DI_SYNC_CLK, /* run_resolution */
+ h_start_width, /* offset */
+ DI_SYNC_CLK, /* offset resolution */
+ width, /* repeat count */
+ 5, /* CNT_CLR_SEL */
+ 0, /* CNT_POLARITY_GEN_EN */
+ DI_SYNC_NONE, /* CNT_POLARITY_CLR_SEL */
+ DI_SYNC_NONE, /* CNT_POLARITY_TRIGGER_SEL */
+ 0, /* COUNT UP */
+ 0 /* COUNT DOWN */
+ );
+
+ /* Second VSYNC */
+ _ipu_di_sync_config(
+ disp, /* display */
+ 9, /* counter */
+ v_total - 1, /* run count */
+ DI_SYNC_INT_HSYNC, /* run_resolution */
+ v_total/2, /* offset */
+ DI_SYNC_INT_HSYNC, /* offset resolution */
+ 0, /* repeat count */
+ DI_SYNC_HSYNC, /* CNT_CLR_SEL */
+ 0, /* CNT_POLARITY_GEN_EN */
+ DI_SYNC_NONE, /* CNT_POLARITY_CLR_SEL */
+ DI_SYNC_NONE, /* CNT_POLARITY_TRIGGER_SEL */
+ 0, /* COUNT UP */
+ 2*div /* COUNT DOWN */
+ );
+
+ /* set gentime select and tag sel */
+ reg = __raw_readl(DI_SW_GEN1(disp, 9));
+ reg &= 0x1FFFFFFF;
+ reg |= (3-1)<<29 | 0x00008000;
+ __raw_writel(reg, DI_SW_GEN1(disp, 9));
+
+ __raw_writel(v_total / 2 - 1, DI_SCR_CONF(disp));
+
+ /* set y_sel = 1 */
+ di_gen |= 0x10000000;
+ di_gen |= DI_GEN_POLARITY_5;
+ di_gen |= DI_GEN_POLARITY_8;
+ } else {
+ /* Setup internal HSYNC waveform */
+ _ipu_di_sync_config(disp, 1, h_total - 1, DI_SYNC_CLK,
+ 0, DI_SYNC_NONE, 0, DI_SYNC_NONE, 0, DI_SYNC_NONE,
+ DI_SYNC_NONE, 0, 0);
+
+ field1_offset = v_sync_width + v_start_width + height / 2 +
+ v_end_width;
+ if (sig.odd_field_first) {
+ field0_offset = field1_offset - 1;
+ field1_offset = 0;
+ }
+ v_total += v_start_width + v_end_width;
+
+ /* Field 1 VSYNC waveform */
+ _ipu_di_sync_config(disp, 2, v_total - 1, 1,
+ field0_offset,
+ field0_offset ? 1 : DI_SYNC_NONE,
+ 0, DI_SYNC_NONE, 0,
+ DI_SYNC_NONE, DI_SYNC_NONE, 0, 4);
+
+ /* Setup internal HSYNC waveform */
+ _ipu_di_sync_config(disp, 3, h_total - 1, DI_SYNC_CLK,
+ 0, DI_SYNC_NONE, 0, DI_SYNC_NONE, 0,
+ DI_SYNC_NONE, DI_SYNC_NONE, 0, 4);
+
+ /* Active Field ? */
+ _ipu_di_sync_config(disp, 4,
+ field0_offset ?
+ field0_offset : field1_offset - 2,
+ 1, v_start_width + v_sync_width, 1, 2, 2,
+ 0, DI_SYNC_NONE, DI_SYNC_NONE, 0, 0);
+
+ /* Active Line */
+ _ipu_di_sync_config(disp, 5, 0, 1,
+ 0, DI_SYNC_NONE,
+ height / 2, 4, 0, DI_SYNC_NONE,
+ DI_SYNC_NONE, 0, 0);
+
+ /* Field 0 VSYNC waveform */
+ _ipu_di_sync_config(disp, 6, v_total - 1, 1,
+ 0, DI_SYNC_NONE,
+ 0, DI_SYNC_NONE, 0, DI_SYNC_NONE,
+ DI_SYNC_NONE, 0, 0);
+
+ /* DC VSYNC waveform */
+ vsync_cnt = 7;
+ _ipu_di_sync_config(disp, 7, 0, 1,
+ field1_offset,
+ field1_offset ? 1 : DI_SYNC_NONE,
+ 1, 2, 0, DI_SYNC_NONE, DI_SYNC_NONE, 0, 0);
+
+ /* active pixel waveform */
+ _ipu_di_sync_config(disp, 8, 0, DI_SYNC_CLK,
+ h_sync_width + h_start_width, DI_SYNC_CLK,
+ width, 5, 0, DI_SYNC_NONE, DI_SYNC_NONE,
+ 0, 0);
+
+ /* ??? */
+ _ipu_di_sync_config(disp, 9, v_total - 1, 2,
+ 0, DI_SYNC_NONE,
+ 0, DI_SYNC_NONE, 6, DI_SYNC_NONE,
+ DI_SYNC_NONE, 0, 0);
+
+ reg = __raw_readl(DI_SW_GEN1(disp, 9));
+ reg |= 0x8000;
+ __raw_writel(reg, DI_SW_GEN1(disp, 9));
+
+ __raw_writel(v_sync_width + v_start_width +
+ v_end_width + height / 2 - 1, DI_SCR_CONF(disp));
+ }
+
+ /* Init template microcode */
+ _ipu_dc_write_tmpl(0, WROD(0), 0, map, SYNC_WAVE, 0, 8, 1);
+
+ if (sig.Hsync_pol)
+ di_gen |= DI_GEN_POLARITY_3;
+ if (sig.Vsync_pol)
+ di_gen |= DI_GEN_POLARITY_2;
+ } else {
+ /* Setup internal HSYNC waveform */
+ _ipu_di_sync_config(disp, 1, h_total - 1, DI_SYNC_CLK,
+ 0, DI_SYNC_NONE, 0, DI_SYNC_NONE, 0, DI_SYNC_NONE,
+ DI_SYNC_NONE, 0, 0);
+
+ /* Setup external (delayed) HSYNC waveform */
+ _ipu_di_sync_config(disp, DI_SYNC_HSYNC, h_total - 1,
+ DI_SYNC_CLK, div * v_to_h_sync, DI_SYNC_CLK,
+ 0, DI_SYNC_NONE, 1, DI_SYNC_NONE,
+ DI_SYNC_CLK, 0, h_sync_width * 2);
+ /* Setup VSYNC waveform */
+ vsync_cnt = DI_SYNC_VSYNC;
+ _ipu_di_sync_config(disp, DI_SYNC_VSYNC, v_total - 1,
+ DI_SYNC_INT_HSYNC, 0, DI_SYNC_NONE, 0,
+ DI_SYNC_NONE, 1, DI_SYNC_NONE,
+ DI_SYNC_INT_HSYNC, 0, v_sync_width * 2);
+ __raw_writel(v_total - 1, DI_SCR_CONF(disp));
+
+ /* Setup active data waveform to sync with DC */
+ _ipu_di_sync_config(disp, 4, 0, DI_SYNC_HSYNC,
+ v_sync_width + v_start_width, DI_SYNC_HSYNC, height,
+ DI_SYNC_VSYNC, 0, DI_SYNC_NONE,
+ DI_SYNC_NONE, 0, 0);
+ _ipu_di_sync_config(disp, 5, 0, DI_SYNC_CLK,
+ h_sync_width + h_start_width, DI_SYNC_CLK,
+ width, 4, 0, DI_SYNC_NONE, DI_SYNC_NONE, 0,
+ 0);
+
+ /* set VGA delayed hsync/vsync no matter VGA enabled */
+ if (disp) {
+ /* couter 7 for VGA delay HSYNC */
+ _ipu_di_sync_config(disp, 7,
+ h_total - 1, DI_SYNC_CLK,
+ 18, DI_SYNC_CLK,
+ 0, DI_SYNC_NONE,
+ 1, DI_SYNC_NONE, DI_SYNC_CLK,
+ 0, h_sync_width * 2);
+
+ /* couter 8 for VGA delay VSYNC */
+ _ipu_di_sync_config(disp, 8,
+ v_total - 1, DI_SYNC_INT_HSYNC,
+ 1, DI_SYNC_INT_HSYNC,
+ 0, DI_SYNC_NONE,
+ 1, DI_SYNC_NONE, DI_SYNC_INT_HSYNC,
+ 0, v_sync_width * 2);
+ }
+
+ /* reset all unused counters */
+ __raw_writel(0, DI_SW_GEN0(disp, 6));
+ __raw_writel(0, DI_SW_GEN1(disp, 6));
+ if (!disp) {
+ __raw_writel(0, DI_SW_GEN0(disp, 7));
+ __raw_writel(0, DI_SW_GEN1(disp, 7));
+ __raw_writel(0, DI_STP_REP(disp, 7));
+ __raw_writel(0, DI_SW_GEN0(disp, 8));
+ __raw_writel(0, DI_SW_GEN1(disp, 8));
+ __raw_writel(0, DI_STP_REP(disp, 8));
+ }
+ __raw_writel(0, DI_SW_GEN0(disp, 9));
+ __raw_writel(0, DI_SW_GEN1(disp, 9));
+ __raw_writel(0, DI_STP_REP(disp, 9));
+
+ reg = __raw_readl(DI_STP_REP(disp, 6));
+ reg &= 0x0000FFFF;
+ __raw_writel(reg, DI_STP_REP(disp, 6));
+
+ if (ipu_freq_scaling_enabled) {
+ h_total = ((width + h_start_width +
+ h_sync_width) / 2) - 2;
+ _ipu_di_sync_config(disp, 6, 1, 0,
+ 2, DI_SYNC_CLK,
+ h_total,
+ DI_SYNC_INT_HSYNC, 0, DI_SYNC_NONE,
+ DI_SYNC_NONE, 0, 0);
+ }
+
+ /* Init template microcode */
+ if (disp) {
+ if ((pixel_fmt == IPU_PIX_FMT_YUYV) ||
+ (pixel_fmt == IPU_PIX_FMT_UYVY) ||
+ (pixel_fmt == IPU_PIX_FMT_YVYU) ||
+ (pixel_fmt == IPU_PIX_FMT_VYUY)) {
+ _ipu_dc_write_tmpl(8, WROD(0), 0, (map - 1), SYNC_WAVE, 0, 5, 1);
+ _ipu_dc_write_tmpl(9, WROD(0), 0, map, SYNC_WAVE, 0, 5, 1);
+ /* configure user events according to DISP NUM */
+ __raw_writel((width - 1), DC_UGDE_3(disp));
+ }
+ _ipu_dc_write_tmpl(2, WROD(0), 0, map, SYNC_WAVE, 8, 5, 1);
+ _ipu_dc_write_tmpl(3, WRG, 0, map, SYNC_WAVE, 4, 5, 1);
+ _ipu_dc_write_tmpl(4, WROD(0), 0, map, SYNC_WAVE, 0, 5, 1);
+ } else {
+ if ((pixel_fmt == IPU_PIX_FMT_YUYV) ||
+ (pixel_fmt == IPU_PIX_FMT_UYVY) ||
+ (pixel_fmt == IPU_PIX_FMT_YVYU) ||
+ (pixel_fmt == IPU_PIX_FMT_VYUY)) {
+ _ipu_dc_write_tmpl(10, WROD(0), 0, (map - 1), SYNC_WAVE, 0, 5, 1);
+ _ipu_dc_write_tmpl(11, WROD(0), 0, map, SYNC_WAVE, 0, 5, 1);
+ /* configure user events according to DISP NUM */
+ __raw_writel(width - 1, DC_UGDE_3(disp));
+ }
+ _ipu_dc_write_tmpl(5, WROD(0), 0, map, SYNC_WAVE, 8, 5, 1);
+ _ipu_dc_write_tmpl(6, WRG, 0, map, SYNC_WAVE, 4, 5, 1);
+ _ipu_dc_write_tmpl(7, WROD(0), 0, map, SYNC_WAVE, 0, 5, 1);
+ }
+
+ if (sig.Hsync_pol) {
+ di_gen |= DI_GEN_POLARITY_2;
+ if (disp)
+ di_gen |= DI_GEN_POLARITY_7;
+ }
+ if (sig.Vsync_pol) {
+ di_gen |= DI_GEN_POLARITY_3;
+ if (disp)
+ di_gen |= DI_GEN_POLARITY_8;
+ }
+
+ if (ipu_freq_scaling_enabled)
+ /* Set the clock to stop at counter 6. */
+ di_gen |= 0x6000000;
+ }
+ /* changinc DISP_CLK polarity: it can be wrong for some applications */
+ if ((pixel_fmt == IPU_PIX_FMT_YUYV) ||
+ (pixel_fmt == IPU_PIX_FMT_UYVY) ||
+ (pixel_fmt == IPU_PIX_FMT_YVYU) ||
+ (pixel_fmt == IPU_PIX_FMT_VYUY))
+ di_gen |= 0x00020000;
+
+ if (!sig.clk_pol)
+ di_gen |= DI_GEN_POLARITY_DISP_CLK;
+
+ __raw_writel(di_gen, DI_GENERAL(disp));
+
+ if (!ipu_freq_scaling_enabled)
+ __raw_writel((--vsync_cnt << DI_VSYNC_SEL_OFFSET) |
+ 0x00000002, DI_SYNC_AS_GEN(disp));
+ else {
+ if (sig.interlaced)
+ __raw_writel((--vsync_cnt << DI_VSYNC_SEL_OFFSET) |
+ 0x00000002, DI_SYNC_AS_GEN(disp));
+ else
+ __raw_writel((--vsync_cnt << DI_VSYNC_SEL_OFFSET),
+ DI_SYNC_AS_GEN(disp));
+ }
+
+ reg = __raw_readl(DI_POL(disp));
+ reg &= ~(DI_POL_DRDY_DATA_POLARITY | DI_POL_DRDY_POLARITY_15);
+ if (sig.enable_pol)
+ reg |= DI_POL_DRDY_POLARITY_15;
+ if (sig.data_pol)
+ reg |= DI_POL_DRDY_DATA_POLARITY;
+ __raw_writel(reg, DI_POL(disp));
+
+ __raw_writel(width, DC_DISP_CONF2(DC_DISP_ID_SYNC(disp)));
+
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+
+ return 0;
+}
+EXPORT_SYMBOL(ipu_init_sync_panel);
+
+
+int ipu_init_async_panel(int disp, int type, uint32_t cycle_time,
+ uint32_t pixel_fmt, ipu_adc_sig_cfg_t sig)
+{
+ unsigned long lock_flags;
+ int map;
+ u32 ser_conf = 0;
+ u32 div;
+ u32 di_clk = clk_get_rate(g_ipu_clk);
+
+ /* round up cycle_time, then calcalate the divider using scaled math */
+ cycle_time += (1000000000UL / di_clk) - 1;
+ div = (cycle_time * (di_clk / 256UL)) / (1000000000UL / 256UL);
+
+ map = _ipu_pixfmt_to_map(pixel_fmt);
+ if (map < 0)
+ return -EINVAL;
+
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+
+ if (type == IPU_PANEL_SERIAL) {
+ __raw_writel((div << 24) | ((sig.ifc_width - 1) << 4),
+ DI_DW_GEN(disp, ASYNC_SER_WAVE));
+
+ _ipu_di_data_pin_config(disp, ASYNC_SER_WAVE, DI_PIN_CS,
+ 0, 0, (div * 2) + 1);
+ _ipu_di_data_pin_config(disp, ASYNC_SER_WAVE, DI_PIN_SER_CLK,
+ 1, div, div * 2);
+ _ipu_di_data_pin_config(disp, ASYNC_SER_WAVE, DI_PIN_SER_RS,
+ 2, 0, 0);
+
+ _ipu_dc_write_tmpl(0x64, WROD(0), 0, map, ASYNC_SER_WAVE, 0, 0, 1);
+
+ /* Configure DC for serial panel */
+ __raw_writel(0x14, DC_DISP_CONF1(DC_DISP_ID_SERIAL));
+
+ if (sig.clk_pol)
+ ser_conf |= DI_SER_CONF_SERIAL_CLK_POL;
+ if (sig.data_pol)
+ ser_conf |= DI_SER_CONF_SERIAL_DATA_POL;
+ if (sig.rs_pol)
+ ser_conf |= DI_SER_CONF_SERIAL_RS_POL;
+ if (sig.cs_pol)
+ ser_conf |= DI_SER_CONF_SERIAL_CS_POL;
+ __raw_writel(ser_conf, DI_SER_CONF(disp));
+ }
+
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+ return 0;
+}
+EXPORT_SYMBOL(ipu_init_async_panel);
+
+/*!
+ * This function sets the foreground and background plane global alpha blending
+ * modes. This function also sets the DP graphic plane according to the
+ * parameter of IPUv3 DP channel.
+ *
+ * @param channel IPUv3 DP channel
+ *
+ * @param enable Boolean to enable or disable global alpha
+ * blending. If disabled, local blending is used.
+ *
+ * @param alpha Global alpha value.
+ *
+ * @return Returns 0 on success or negative error code on fail
+ */
+int32_t ipu_disp_set_global_alpha(ipu_channel_t channel, bool enable,
+ uint8_t alpha)
+{
+ uint32_t reg;
+ uint32_t flow;
+ unsigned long lock_flags;
+ bool bg_chan;
+
+ if (channel == MEM_BG_SYNC || channel == MEM_FG_SYNC)
+ flow = DP_SYNC;
+ else if (channel == MEM_BG_ASYNC0 || channel == MEM_FG_ASYNC0)
+ flow = DP_ASYNC0;
+ else if (channel == MEM_BG_ASYNC1 || channel == MEM_FG_ASYNC1)
+ flow = DP_ASYNC1;
+ else
+ return -EINVAL;
+
+ if (channel == MEM_BG_SYNC || channel == MEM_BG_ASYNC0 ||
+ channel == MEM_BG_ASYNC1)
+ bg_chan = true;
+ else
+ bg_chan = false;
+
+ if (!g_ipu_clk_enabled)
+ clk_enable(g_ipu_clk);
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+
+ if (bg_chan) {
+ reg = __raw_readl(DP_COM_CONF(flow));
+ __raw_writel(reg & ~DP_COM_CONF_GWSEL, DP_COM_CONF(flow));
+ } else {
+ reg = __raw_readl(DP_COM_CONF(flow));
+ __raw_writel(reg | DP_COM_CONF_GWSEL, DP_COM_CONF(flow));
+ }
+
+ if (enable) {
+ reg = __raw_readl(DP_GRAPH_WIND_CTRL(flow)) & 0x00FFFFFFL;
+ __raw_writel(reg | ((uint32_t) alpha << 24),
+ DP_GRAPH_WIND_CTRL(flow));
+
+ reg = __raw_readl(DP_COM_CONF(flow));
+ __raw_writel(reg | DP_COM_CONF_GWAM, DP_COM_CONF(flow));
+ } else {
+ reg = __raw_readl(DP_COM_CONF(flow));
+ __raw_writel(reg & ~DP_COM_CONF_GWAM, DP_COM_CONF(flow));
+ }
+
+ reg = __raw_readl(IPU_SRM_PRI2) | 0x8;
+ __raw_writel(reg, IPU_SRM_PRI2);
+
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+ if (!g_ipu_clk_enabled)
+ clk_disable(g_ipu_clk);
+
+ return 0;
+}
+EXPORT_SYMBOL(ipu_disp_set_global_alpha);
+
+/*!
+ * This function sets the transparent color key for SDC graphic plane.
+ *
+ * @param channel Input parameter for the logical channel ID.
+ *
+ * @param enable Boolean to enable or disable color key
+ *
+ * @param colorKey 24-bit RGB color for transparent color key.
+ *
+ * @return Returns 0 on success or negative error code on fail
+ */
+int32_t ipu_disp_set_color_key(ipu_channel_t channel, bool enable,
+ uint32_t color_key)
+{
+ uint32_t reg, flow;
+ int y, u, v;
+ int red, green, blue;
+ unsigned long lock_flags;
+
+ if (channel == MEM_BG_SYNC || channel == MEM_FG_SYNC)
+ flow = DP_SYNC;
+ else if (channel == MEM_BG_ASYNC0 || channel == MEM_FG_ASYNC0)
+ flow = DP_ASYNC0;
+ else if (channel == MEM_BG_ASYNC1 || channel == MEM_FG_ASYNC1)
+ flow = DP_ASYNC1;
+ else
+ return -EINVAL;
+
+ if (!g_ipu_clk_enabled)
+ clk_enable(g_ipu_clk);
+
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+
+ color_key_4rgb = 1;
+ /* Transform color key from rgb to yuv if CSC is enabled */
+ if (((fg_csc_type == RGB2YUV) && (bg_csc_type == YUV2YUV)) ||
+ ((fg_csc_type == YUV2YUV) && (bg_csc_type == RGB2YUV)) ||
+ ((fg_csc_type == YUV2YUV) && (bg_csc_type == YUV2YUV)) ||
+ ((fg_csc_type == YUV2RGB) && (bg_csc_type == YUV2RGB))) {
+
+ dev_dbg(g_ipu_dev, "color key 0x%x need change to yuv fmt\n", color_key);
+
+ red = (color_key >> 16) & 0xFF;
+ green = (color_key >> 8) & 0xFF;
+ blue = color_key & 0xFF;
+
+ y = _rgb_to_yuv(0, red, green, blue);
+ u = _rgb_to_yuv(1, red, green, blue);
+ v = _rgb_to_yuv(2, red, green, blue);
+ color_key = (y << 16) | (u << 8) | v;
+
+ color_key_4rgb = 0;
+
+ dev_dbg(g_ipu_dev, "color key change to yuv fmt 0x%x\n", color_key);
+ }
+
+ if (enable) {
+ reg = __raw_readl(DP_GRAPH_WIND_CTRL(flow)) & 0xFF000000L;
+ __raw_writel(reg | color_key, DP_GRAPH_WIND_CTRL(flow));
+
+ reg = __raw_readl(DP_COM_CONF(flow));
+ __raw_writel(reg | DP_COM_CONF_GWCKE, DP_COM_CONF(flow));
+ } else {
+ reg = __raw_readl(DP_COM_CONF(flow));
+ __raw_writel(reg & ~DP_COM_CONF_GWCKE, DP_COM_CONF(flow));
+ }
+
+ reg = __raw_readl(IPU_SRM_PRI2) | 0x8;
+ __raw_writel(reg, IPU_SRM_PRI2);
+
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+ if (!g_ipu_clk_enabled)
+ clk_disable(g_ipu_clk);
+
+ return 0;
+}
+EXPORT_SYMBOL(ipu_disp_set_color_key);
+
+/*!
+ * This function sets the gamma correction for DP output.
+ *
+ * @param channel Input parameter for the logical channel ID.
+ *
+ * @param enable Boolean to enable or disable gamma correction.
+ *
+ * @param constk Gamma piecewise linear approximation constk coeff.
+ *
+ * @param slopek Gamma piecewise linear approximation slopek coeff.
+ *
+ * @return Returns 0 on success or negative error code on fail
+ */
+int32_t ipu_disp_set_gamma_correction(ipu_channel_t channel, bool enable, int constk[], int slopek[])
+{
+ uint32_t reg, flow, i;
+ unsigned long lock_flags;
+
+ if (channel == MEM_BG_SYNC || channel == MEM_FG_SYNC)
+ flow = DP_SYNC;
+ else if (channel == MEM_BG_ASYNC0 || channel == MEM_FG_ASYNC0)
+ flow = DP_ASYNC0;
+ else if (channel == MEM_BG_ASYNC1 || channel == MEM_FG_ASYNC1)
+ flow = DP_ASYNC1;
+ else
+ return -EINVAL;
+
+ if (!g_ipu_clk_enabled)
+ clk_enable(g_ipu_clk);
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+
+ for (i = 0; i < 8; i++)
+ __raw_writel((constk[2*i] & 0x1ff) | ((constk[2*i+1] & 0x1ff) << 16), DP_GAMMA_C(flow, i));
+ for (i = 0; i < 4; i++)
+ __raw_writel((slopek[4*i] & 0xff) | ((slopek[4*i+1] & 0xff) << 8) |
+ ((slopek[4*i+2] & 0xff) << 16) | ((slopek[4*i+3] & 0xff) << 24), DP_GAMMA_S(flow, i));
+
+ reg = __raw_readl(DP_COM_CONF(flow));
+ if (enable) {
+ if ((bg_csc_type == RGB2YUV) || (bg_csc_type == YUV2YUV))
+ reg |= DP_COM_CONF_GAMMA_YUV_EN;
+ else
+ reg &= ~DP_COM_CONF_GAMMA_YUV_EN;
+ __raw_writel(reg | DP_COM_CONF_GAMMA_EN, DP_COM_CONF(flow));
+ } else
+ __raw_writel(reg & ~DP_COM_CONF_GAMMA_EN, DP_COM_CONF(flow));
+
+ reg = __raw_readl(IPU_SRM_PRI2) | 0x8;
+ __raw_writel(reg, IPU_SRM_PRI2);
+
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+ if (!g_ipu_clk_enabled)
+ clk_disable(g_ipu_clk);
+
+ return 0;
+}
+EXPORT_SYMBOL(ipu_disp_set_gamma_correction);
+
+/*!
+ * This function sets the window position of the foreground or background plane.
+ * modes.
+ *
+ * @param channel Input parameter for the logical channel ID.
+ *
+ * @param x_pos The X coordinate position to place window at.
+ * The position is relative to the top left corner.
+ *
+ * @param y_pos The Y coordinate position to place window at.
+ * The position is relative to the top left corner.
+ *
+ * @return Returns 0 on success or negative error code on fail
+ */
+int32_t ipu_disp_set_window_pos(ipu_channel_t channel, int16_t x_pos,
+ int16_t y_pos)
+{
+ u32 reg;
+ unsigned long lock_flags;
+ uint32_t flow = 0;
+ uint32_t dp_srm_shift;
+
+ if (channel == MEM_FG_SYNC) {
+ flow = DP_SYNC;
+ dp_srm_shift = 3;
+ } else if (channel == MEM_FG_ASYNC0) {
+ flow = DP_ASYNC0;
+ dp_srm_shift = 5;
+ } else if (channel == MEM_FG_ASYNC1) {
+ flow = DP_ASYNC1;
+ dp_srm_shift = 7;
+ } else
+ return -EINVAL;
+
+ if (!g_ipu_clk_enabled)
+ clk_enable(g_ipu_clk);
+
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+
+ __raw_writel((x_pos << 16) | y_pos, DP_FG_POS(flow));
+
+ if (ipu_is_channel_busy(channel)) {
+ /* controled by FSU if channel enabled */
+ reg = __raw_readl(IPU_SRM_PRI2) & (~(0x3 << dp_srm_shift));
+ reg |= (0x1 << dp_srm_shift);
+ __raw_writel(reg, IPU_SRM_PRI2);
+ } else {
+ /* disable auto swap, controled by MCU if channel disabled */
+ reg = __raw_readl(IPU_SRM_PRI2) & (~(0x3 << dp_srm_shift));
+ __raw_writel(reg, IPU_SRM_PRI2);
+ }
+
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+ if (!g_ipu_clk_enabled)
+ clk_disable(g_ipu_clk);
+
+ return 0;
+}
+EXPORT_SYMBOL(ipu_disp_set_window_pos);
+
+int32_t ipu_disp_get_window_pos(ipu_channel_t channel, int16_t *x_pos,
+ int16_t *y_pos)
+{
+ u32 reg;
+ unsigned long lock_flags;
+ uint32_t flow = 0;
+
+ if (channel == MEM_FG_SYNC)
+ flow = DP_SYNC;
+ else if (channel == MEM_FG_ASYNC0)
+ flow = DP_ASYNC0;
+ else if (channel == MEM_FG_ASYNC1)
+ flow = DP_ASYNC1;
+ else
+ return -EINVAL;
+
+ if (!g_ipu_clk_enabled)
+ clk_enable(g_ipu_clk);
+ spin_lock_irqsave(&ipu_lock, lock_flags);
+
+ reg = __raw_readl(DP_FG_POS(flow));
+
+ *x_pos = (reg >> 16) & 0x7FF;
+ *y_pos = reg & 0x7FF;
+
+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
+ if (!g_ipu_clk_enabled)
+ clk_disable(g_ipu_clk);
+
+ return 0;
+}
+EXPORT_SYMBOL(ipu_disp_get_window_pos);
+
+void ipu_disp_direct_write(ipu_channel_t channel, u32 value, u32 offset)
+{
+ if (channel == DIRECT_ASYNC0)
+ __raw_writel(value, ipu_disp_base[0] + offset);
+ else if (channel == DIRECT_ASYNC1)
+ __raw_writel(value, ipu_disp_base[1] + offset);
+}
+EXPORT_SYMBOL(ipu_disp_direct_write);
+
+void ipu_reset_disp_panel(void)
+{
+ uint32_t tmp;
+
+ tmp = __raw_readl(DI_GENERAL(1));
+ __raw_writel(tmp | 0x08, DI_GENERAL(1));
+ msleep(10); /* tRES >= 100us */
+ tmp = __raw_readl(DI_GENERAL(1));
+ __raw_writel(tmp & ~0x08, DI_GENERAL(1));
+ msleep(60);
+
+ return;
+}
+EXPORT_SYMBOL(ipu_reset_disp_panel);
diff --git a/drivers/mxc/ipu3/ipu_ic.c b/drivers/mxc/ipu3/ipu_ic.c
new file mode 100644
index 000000000000..80369f67c297
--- /dev/null
+++ b/drivers/mxc/ipu3/ipu_ic.c
@@ -0,0 +1,833 @@
+/*
+ * Copyright 2005-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*
+ * @file ipu_ic.c
+ *
+ * @brief IPU IC functions
+ *
+ * @ingroup IPU
+ */
+#include <linux/types.h>
+#include <linux/init.h>
+#include <linux/errno.h>
+#include <linux/spinlock.h>
+#include <linux/videodev2.h>
+#include <linux/io.h>
+#include <linux/ipu.h>
+
+#include "ipu_prv.h"
+#include "ipu_regs.h"
+#include "ipu_param_mem.h"
+
+enum {
+ IC_TASK_VIEWFINDER,
+ IC_TASK_ENCODER,
+ IC_TASK_POST_PROCESSOR
+};
+
+static void _init_csc(uint8_t ic_task, ipu_color_space_t in_format,
+ ipu_color_space_t out_format, int csc_index);
+static bool _calc_resize_coeffs(uint32_t inSize, uint32_t outSize,
+ uint32_t *resizeCoeff,
+ uint32_t *downsizeCoeff);
+
+void _ipu_vdi_set_top_field_man(bool top_field_0)
+{
+ uint32_t reg;
+
+ reg = __raw_readl(VDI_C);
+ if (top_field_0)
+ reg &= ~VDI_C_TOP_FIELD_MAN_1;
+ else
+ reg |= VDI_C_TOP_FIELD_MAN_1;
+ __raw_writel(reg, VDI_C);
+}
+
+void _ipu_vdi_set_motion(ipu_motion_sel motion_sel)
+{
+ uint32_t reg;
+
+ reg = __raw_readl(VDI_C);
+ reg &= ~(VDI_C_MOT_SEL_FULL | VDI_C_MOT_SEL_MED | VDI_C_MOT_SEL_LOW);
+ if (motion_sel == HIGH_MOTION)
+ reg |= VDI_C_MOT_SEL_FULL;
+ else if (motion_sel == MED_MOTION)
+ reg |= VDI_C_MOT_SEL_MED;
+ else
+ reg |= VDI_C_MOT_SEL_LOW;
+
+ __raw_writel(reg, VDI_C);
+}
+
+void ic_dump_register(void)
+{
+ printk(KERN_DEBUG "IC_CONF = \t0x%08X\n", __raw_readl(IC_CONF));
+ printk(KERN_DEBUG "IC_PRP_ENC_RSC = \t0x%08X\n",
+ __raw_readl(IC_PRP_ENC_RSC));
+ printk(KERN_DEBUG "IC_PRP_VF_RSC = \t0x%08X\n",
+ __raw_readl(IC_PRP_VF_RSC));
+ printk(KERN_DEBUG "IC_PP_RSC = \t0x%08X\n", __raw_readl(IC_PP_RSC));
+ printk(KERN_DEBUG "IC_IDMAC_1 = \t0x%08X\n", __raw_readl(IC_IDMAC_1));
+ printk(KERN_DEBUG "IC_IDMAC_2 = \t0x%08X\n", __raw_readl(IC_IDMAC_2));
+ printk(KERN_DEBUG "IC_IDMAC_3 = \t0x%08X\n", __raw_readl(IC_IDMAC_3));
+}
+
+void _ipu_ic_enable_task(ipu_channel_t channel)
+{
+ uint32_t ic_conf;
+
+ ic_conf = __raw_readl(IC_CONF);
+ switch (channel) {
+ case CSI_PRP_VF_MEM:
+ case MEM_PRP_VF_MEM:
+ ic_conf |= IC_CONF_PRPVF_EN;
+ break;
+ case MEM_VDI_PRP_VF_MEM:
+ ic_conf |= IC_CONF_PRPVF_EN;
+ break;
+ case MEM_ROT_VF_MEM:
+ ic_conf |= IC_CONF_PRPVF_ROT_EN;
+ break;
+ case CSI_PRP_ENC_MEM:
+ case MEM_PRP_ENC_MEM:
+ ic_conf |= IC_CONF_PRPENC_EN;
+ break;
+ case MEM_ROT_ENC_MEM:
+ ic_conf |= IC_CONF_PRPENC_ROT_EN;
+ break;
+ case MEM_PP_MEM:
+ ic_conf |= IC_CONF_PP_EN;
+ break;
+ case MEM_ROT_PP_MEM:
+ ic_conf |= IC_CONF_PP_ROT_EN;
+ break;
+ default:
+ break;
+ }
+ __raw_writel(ic_conf, IC_CONF);
+}
+
+void _ipu_ic_disable_task(ipu_channel_t channel)
+{
+ uint32_t ic_conf;
+
+ ic_conf = __raw_readl(IC_CONF);
+ switch (channel) {
+ case CSI_PRP_VF_MEM:
+ case MEM_PRP_VF_MEM:
+ ic_conf &= ~IC_CONF_PRPVF_EN;
+ break;
+ case MEM_VDI_PRP_VF_MEM:
+ ic_conf &= ~IC_CONF_PRPVF_EN;
+ break;
+ case MEM_ROT_VF_MEM:
+ ic_conf &= ~IC_CONF_PRPVF_ROT_EN;
+ break;
+ case CSI_PRP_ENC_MEM:
+ case MEM_PRP_ENC_MEM:
+ ic_conf &= ~IC_CONF_PRPENC_EN;
+ break;
+ case MEM_ROT_ENC_MEM:
+ ic_conf &= ~IC_CONF_PRPENC_ROT_EN;
+ break;
+ case MEM_PP_MEM:
+ ic_conf &= ~IC_CONF_PP_EN;
+ break;
+ case MEM_ROT_PP_MEM:
+ ic_conf &= ~IC_CONF_PP_ROT_EN;
+ break;
+ default:
+ break;
+ }
+ __raw_writel(ic_conf, IC_CONF);
+}
+
+void _ipu_vdi_init(ipu_channel_t channel, ipu_channel_params_t *params)
+{
+ uint32_t reg;
+ uint32_t pixel_fmt;
+
+ reg = ((params->mem_prp_vf_mem.in_height-1) << 16) |
+ (params->mem_prp_vf_mem.in_width-1);
+ __raw_writel(reg, VDI_FSIZE);
+
+ /* Full motion, only vertical filter is used
+ Burst size is 4 accesses */
+ if (params->mem_prp_vf_mem.in_pixel_fmt ==
+ IPU_PIX_FMT_UYVY ||
+ params->mem_prp_vf_mem.in_pixel_fmt ==
+ IPU_PIX_FMT_YUYV)
+ pixel_fmt = VDI_C_CH_422;
+ else
+ pixel_fmt = VDI_C_CH_420;
+
+ reg = __raw_readl(VDI_C);
+ reg |= pixel_fmt;
+ switch (channel) {
+ case MEM_VDI_PRP_VF_MEM:
+ reg |= VDI_C_BURST_SIZE2_4;
+ break;
+ case MEM_VDI_PRP_VF_MEM_P:
+ reg |= VDI_C_BURST_SIZE1_4 | VDI_C_VWM1_SET_1 | VDI_C_VWM1_CLR_2;
+ break;
+ case MEM_VDI_PRP_VF_MEM_N:
+ reg |= VDI_C_BURST_SIZE3_4 | VDI_C_VWM3_SET_1 | VDI_C_VWM3_CLR_2;
+ break;
+ default:
+ break;
+ }
+ __raw_writel(reg, VDI_C);
+
+ if (params->mem_prp_vf_mem.field_fmt == V4L2_FIELD_INTERLACED_TB)
+ _ipu_vdi_set_top_field_man(false);
+ else if (params->mem_prp_vf_mem.field_fmt == V4L2_FIELD_INTERLACED_BT)
+ _ipu_vdi_set_top_field_man(true);
+
+ _ipu_vdi_set_motion(params->mem_prp_vf_mem.motion_sel);
+
+ reg = __raw_readl(IC_CONF);
+ reg &= ~IC_CONF_RWS_EN;
+ __raw_writel(reg, IC_CONF);
+}
+
+void _ipu_vdi_uninit(void)
+{
+ __raw_writel(0, VDI_FSIZE);
+ __raw_writel(0, VDI_C);
+}
+
+void _ipu_ic_init_prpvf(ipu_channel_params_t *params, bool src_is_csi)
+{
+ uint32_t reg, ic_conf;
+ uint32_t downsizeCoeff, resizeCoeff;
+ ipu_color_space_t in_fmt, out_fmt;
+
+ /* Setup vertical resizing */
+ _calc_resize_coeffs(params->mem_prp_vf_mem.in_height,
+ params->mem_prp_vf_mem.out_height,
+ &resizeCoeff, &downsizeCoeff);
+ reg = (downsizeCoeff << 30) | (resizeCoeff << 16);
+
+ /* Setup horizontal resizing */
+ /* Upadeted for IC split case */
+ if (!(params->mem_prp_vf_mem.outh_resize_ratio)) {
+ _calc_resize_coeffs(params->mem_prp_vf_mem.in_width,
+ params->mem_prp_vf_mem.out_width,
+ &resizeCoeff, &downsizeCoeff);
+ reg |= (downsizeCoeff << 14) | resizeCoeff;
+ } else
+ reg |= params->mem_prp_vf_mem.outh_resize_ratio;
+
+ __raw_writel(reg, IC_PRP_VF_RSC);
+
+ ic_conf = __raw_readl(IC_CONF);
+
+ /* Setup color space conversion */
+ in_fmt = format_to_colorspace(params->mem_prp_vf_mem.in_pixel_fmt);
+ out_fmt = format_to_colorspace(params->mem_prp_vf_mem.out_pixel_fmt);
+ if (in_fmt == RGB) {
+ if ((out_fmt == YCbCr) || (out_fmt == YUV)) {
+ /* Enable RGB->YCBCR CSC1 */
+ _init_csc(IC_TASK_VIEWFINDER, RGB, out_fmt, 1);
+ ic_conf |= IC_CONF_PRPVF_CSC1;
+ }
+ }
+ if ((in_fmt == YCbCr) || (in_fmt == YUV)) {
+ if (out_fmt == RGB) {
+ /* Enable YCBCR->RGB CSC1 */
+ _init_csc(IC_TASK_VIEWFINDER, YCbCr, RGB, 1);
+ ic_conf |= IC_CONF_PRPVF_CSC1;
+ } else {
+ /* TODO: Support YUV<->YCbCr conversion? */
+ }
+ }
+
+ if (params->mem_prp_vf_mem.graphics_combine_en) {
+ ic_conf |= IC_CONF_PRPVF_CMB;
+
+ if (!(ic_conf & IC_CONF_PRPVF_CSC1)) {
+ /* need transparent CSC1 conversion */
+ _init_csc(IC_TASK_VIEWFINDER, RGB, RGB, 1);
+ ic_conf |= IC_CONF_PRPVF_CSC1; /* Enable RGB->RGB CSC */
+ }
+ in_fmt = format_to_colorspace(params->mem_prp_vf_mem.in_g_pixel_fmt);
+ out_fmt = format_to_colorspace(params->mem_prp_vf_mem.out_pixel_fmt);
+ if (in_fmt == RGB) {
+ if ((out_fmt == YCbCr) || (out_fmt == YUV)) {
+ /* Enable RGB->YCBCR CSC2 */
+ _init_csc(IC_TASK_VIEWFINDER, RGB, out_fmt, 2);
+ ic_conf |= IC_CONF_PRPVF_CSC2;
+ }
+ }
+ if ((in_fmt == YCbCr) || (in_fmt == YUV)) {
+ if (out_fmt == RGB) {
+ /* Enable YCBCR->RGB CSC2 */
+ _init_csc(IC_TASK_VIEWFINDER, YCbCr, RGB, 2);
+ ic_conf |= IC_CONF_PRPVF_CSC2;
+ } else {
+ /* TODO: Support YUV<->YCbCr conversion? */
+ }
+ }
+
+ if (params->mem_prp_vf_mem.global_alpha_en) {
+ ic_conf |= IC_CONF_IC_GLB_LOC_A;
+ reg = __raw_readl(IC_CMBP_1);
+ reg &= ~(0xff);
+ reg |= params->mem_prp_vf_mem.alpha;
+ __raw_writel(reg, IC_CMBP_1);
+ } else
+ ic_conf &= ~IC_CONF_IC_GLB_LOC_A;
+
+ if (params->mem_prp_vf_mem.key_color_en) {
+ ic_conf |= IC_CONF_KEY_COLOR_EN;
+ __raw_writel(params->mem_prp_vf_mem.key_color,
+ IC_CMBP_2);
+ } else
+ ic_conf &= ~IC_CONF_KEY_COLOR_EN;
+ } else {
+ ic_conf &= ~IC_CONF_PRPVF_CMB;
+ }
+
+ if (src_is_csi)
+ ic_conf &= ~IC_CONF_RWS_EN;
+ else
+ ic_conf |= IC_CONF_RWS_EN;
+
+ __raw_writel(ic_conf, IC_CONF);
+}
+
+void _ipu_ic_uninit_prpvf(void)
+{
+ uint32_t reg;
+
+ reg = __raw_readl(IC_CONF);
+ reg &= ~(IC_CONF_PRPVF_EN | IC_CONF_PRPVF_CMB |
+ IC_CONF_PRPVF_CSC2 | IC_CONF_PRPVF_CSC1);
+ __raw_writel(reg, IC_CONF);
+}
+
+void _ipu_ic_init_rotate_vf(ipu_channel_params_t *params)
+{
+}
+
+void _ipu_ic_uninit_rotate_vf(void)
+{
+ uint32_t reg;
+ reg = __raw_readl(IC_CONF);
+ reg &= ~IC_CONF_PRPVF_ROT_EN;
+ __raw_writel(reg, IC_CONF);
+}
+
+void _ipu_ic_init_prpenc(ipu_channel_params_t *params, bool src_is_csi)
+{
+ uint32_t reg, ic_conf;
+ uint32_t downsizeCoeff, resizeCoeff;
+ ipu_color_space_t in_fmt, out_fmt;
+
+ /* Setup vertical resizing */
+ _calc_resize_coeffs(params->mem_prp_enc_mem.in_height,
+ params->mem_prp_enc_mem.out_height,
+ &resizeCoeff, &downsizeCoeff);
+ reg = (downsizeCoeff << 30) | (resizeCoeff << 16);
+
+ /* Setup horizontal resizing */
+ /* Upadeted for IC split case */
+ if (!(params->mem_prp_enc_mem.outh_resize_ratio)) {
+ _calc_resize_coeffs(params->mem_prp_enc_mem.in_width,
+ params->mem_prp_enc_mem.out_width,
+ &resizeCoeff, &downsizeCoeff);
+ reg |= (downsizeCoeff << 14) | resizeCoeff;
+ } else
+ reg |= params->mem_prp_enc_mem.outh_resize_ratio;
+
+ __raw_writel(reg, IC_PRP_ENC_RSC);
+
+ ic_conf = __raw_readl(IC_CONF);
+
+ /* Setup color space conversion */
+ in_fmt = format_to_colorspace(params->mem_prp_enc_mem.in_pixel_fmt);
+ out_fmt = format_to_colorspace(params->mem_prp_enc_mem.out_pixel_fmt);
+ if (in_fmt == RGB) {
+ if ((out_fmt == YCbCr) || (out_fmt == YUV)) {
+ /* Enable RGB->YCBCR CSC1 */
+ _init_csc(IC_TASK_ENCODER, RGB, out_fmt, 1);
+ ic_conf |= IC_CONF_PRPENC_CSC1;
+ }
+ }
+ if ((in_fmt == YCbCr) || (in_fmt == YUV)) {
+ if (out_fmt == RGB) {
+ /* Enable YCBCR->RGB CSC1 */
+ _init_csc(IC_TASK_ENCODER, YCbCr, RGB, 1);
+ ic_conf |= IC_CONF_PRPENC_CSC1;
+ } else {
+ /* TODO: Support YUV<->YCbCr conversion? */
+ }
+ }
+
+ if (src_is_csi)
+ ic_conf &= ~IC_CONF_RWS_EN;
+ else
+ ic_conf |= IC_CONF_RWS_EN;
+
+ __raw_writel(ic_conf, IC_CONF);
+}
+
+void _ipu_ic_uninit_prpenc(void)
+{
+ uint32_t reg;
+
+ reg = __raw_readl(IC_CONF);
+ reg &= ~(IC_CONF_PRPENC_EN | IC_CONF_PRPENC_CSC1);
+ __raw_writel(reg, IC_CONF);
+}
+
+void _ipu_ic_init_rotate_enc(ipu_channel_params_t *params)
+{
+}
+
+void _ipu_ic_uninit_rotate_enc(void)
+{
+ uint32_t reg;
+
+ reg = __raw_readl(IC_CONF);
+ reg &= ~(IC_CONF_PRPENC_ROT_EN);
+ __raw_writel(reg, IC_CONF);
+}
+
+void _ipu_ic_init_pp(ipu_channel_params_t *params)
+{
+ uint32_t reg, ic_conf;
+ uint32_t downsizeCoeff, resizeCoeff;
+ ipu_color_space_t in_fmt, out_fmt;
+
+ /* Setup vertical resizing */
+ if (!(params->mem_pp_mem.outv_resize_ratio)) {
+ _calc_resize_coeffs(params->mem_pp_mem.in_height,
+ params->mem_pp_mem.out_height,
+ &resizeCoeff, &downsizeCoeff);
+ reg = (downsizeCoeff << 30) | (resizeCoeff << 16);
+ } else {
+ reg = (params->mem_pp_mem.outv_resize_ratio) << 16;
+ }
+
+ /* Setup horizontal resizing */
+ /* Upadeted for IC split case */
+ if (!(params->mem_pp_mem.outh_resize_ratio)) {
+ _calc_resize_coeffs(params->mem_pp_mem.in_width,
+ params->mem_pp_mem.out_width,
+ &resizeCoeff, &downsizeCoeff);
+ reg |= (downsizeCoeff << 14) | resizeCoeff;
+ } else {
+ reg |= params->mem_pp_mem.outh_resize_ratio;
+ }
+
+ __raw_writel(reg, IC_PP_RSC);
+
+ ic_conf = __raw_readl(IC_CONF);
+
+ /* Setup color space conversion */
+ in_fmt = format_to_colorspace(params->mem_pp_mem.in_pixel_fmt);
+ out_fmt = format_to_colorspace(params->mem_pp_mem.out_pixel_fmt);
+ if (in_fmt == RGB) {
+ if ((out_fmt == YCbCr) || (out_fmt == YUV)) {
+ /* Enable RGB->YCBCR CSC1 */
+ _init_csc(IC_TASK_POST_PROCESSOR, RGB, out_fmt, 1);
+ ic_conf |= IC_CONF_PP_CSC1;
+ }
+ }
+ if ((in_fmt == YCbCr) || (in_fmt == YUV)) {
+ if (out_fmt == RGB) {
+ /* Enable YCBCR->RGB CSC1 */
+ _init_csc(IC_TASK_POST_PROCESSOR, YCbCr, RGB, 1);
+ ic_conf |= IC_CONF_PP_CSC1;
+ } else {
+ /* TODO: Support YUV<->YCbCr conversion? */
+ }
+ }
+
+ if (params->mem_pp_mem.graphics_combine_en) {
+ ic_conf |= IC_CONF_PP_CMB;
+
+ if (!(ic_conf & IC_CONF_PP_CSC1)) {
+ /* need transparent CSC1 conversion */
+ _init_csc(IC_TASK_POST_PROCESSOR, RGB, RGB, 1);
+ ic_conf |= IC_CONF_PP_CSC1; /* Enable RGB->RGB CSC */
+ }
+
+ in_fmt = format_to_colorspace(params->mem_pp_mem.in_g_pixel_fmt);
+ out_fmt = format_to_colorspace(params->mem_pp_mem.out_pixel_fmt);
+ if (in_fmt == RGB) {
+ if ((out_fmt == YCbCr) || (out_fmt == YUV)) {
+ /* Enable RGB->YCBCR CSC2 */
+ _init_csc(IC_TASK_POST_PROCESSOR, RGB, out_fmt, 2);
+ ic_conf |= IC_CONF_PP_CSC2;
+ }
+ }
+ if ((in_fmt == YCbCr) || (in_fmt == YUV)) {
+ if (out_fmt == RGB) {
+ /* Enable YCBCR->RGB CSC2 */
+ _init_csc(IC_TASK_POST_PROCESSOR, YCbCr, RGB, 2);
+ ic_conf |= IC_CONF_PP_CSC2;
+ } else {
+ /* TODO: Support YUV<->YCbCr conversion? */
+ }
+ }
+
+ if (params->mem_pp_mem.global_alpha_en) {
+ ic_conf |= IC_CONF_IC_GLB_LOC_A;
+ reg = __raw_readl(IC_CMBP_1);
+ reg &= ~(0xff00);
+ reg |= (params->mem_pp_mem.alpha << 8);
+ __raw_writel(reg, IC_CMBP_1);
+ } else
+ ic_conf &= ~IC_CONF_IC_GLB_LOC_A;
+
+ if (params->mem_pp_mem.key_color_en) {
+ ic_conf |= IC_CONF_KEY_COLOR_EN;
+ __raw_writel(params->mem_pp_mem.key_color,
+ IC_CMBP_2);
+ } else
+ ic_conf &= ~IC_CONF_KEY_COLOR_EN;
+ } else {
+ ic_conf &= ~IC_CONF_PP_CMB;
+ }
+
+ __raw_writel(ic_conf, IC_CONF);
+}
+
+void _ipu_ic_uninit_pp(void)
+{
+ uint32_t reg;
+
+ reg = __raw_readl(IC_CONF);
+ reg &= ~(IC_CONF_PP_EN | IC_CONF_PP_CSC1 | IC_CONF_PP_CSC2 |
+ IC_CONF_PP_CMB);
+ __raw_writel(reg, IC_CONF);
+}
+
+void _ipu_ic_init_rotate_pp(ipu_channel_params_t *params)
+{
+}
+
+void _ipu_ic_uninit_rotate_pp(void)
+{
+ uint32_t reg;
+ reg = __raw_readl(IC_CONF);
+ reg &= ~IC_CONF_PP_ROT_EN;
+ __raw_writel(reg, IC_CONF);
+}
+
+int _ipu_ic_idma_init(int dma_chan, uint16_t width, uint16_t height,
+ int burst_size, ipu_rotate_mode_t rot)
+{
+ u32 ic_idmac_1, ic_idmac_2, ic_idmac_3;
+ u32 temp_rot = bitrev8(rot) >> 5;
+ bool need_hor_flip = false;
+
+ if ((burst_size != 8) && (burst_size != 16)) {
+ dev_dbg(g_ipu_dev, "Illegal burst length for IC\n");
+ return -EINVAL;
+ }
+
+ width--;
+ height--;
+
+ if (temp_rot & 0x2) /* Need horizontal flip */
+ need_hor_flip = true;
+
+ ic_idmac_1 = __raw_readl(IC_IDMAC_1);
+ ic_idmac_2 = __raw_readl(IC_IDMAC_2);
+ ic_idmac_3 = __raw_readl(IC_IDMAC_3);
+ if (dma_chan == 22) { /* PP output - CB2 */
+ if (burst_size == 16)
+ ic_idmac_1 |= IC_IDMAC_1_CB2_BURST_16;
+ else
+ ic_idmac_1 &= ~IC_IDMAC_1_CB2_BURST_16;
+
+ if (need_hor_flip)
+ ic_idmac_1 |= IC_IDMAC_1_PP_FLIP_RS;
+ else
+ ic_idmac_1 &= ~IC_IDMAC_1_PP_FLIP_RS;
+
+ ic_idmac_2 &= ~IC_IDMAC_2_PP_HEIGHT_MASK;
+ ic_idmac_2 |= height << IC_IDMAC_2_PP_HEIGHT_OFFSET;
+
+ ic_idmac_3 &= ~IC_IDMAC_3_PP_WIDTH_MASK;
+ ic_idmac_3 |= width << IC_IDMAC_3_PP_WIDTH_OFFSET;
+
+ } else if (dma_chan == 11) { /* PP Input - CB5 */
+ if (burst_size == 16)
+ ic_idmac_1 |= IC_IDMAC_1_CB5_BURST_16;
+ else
+ ic_idmac_1 &= ~IC_IDMAC_1_CB5_BURST_16;
+ } else if (dma_chan == 47) { /* PP Rot input */
+ ic_idmac_1 &= ~IC_IDMAC_1_PP_ROT_MASK;
+ ic_idmac_1 |= temp_rot << IC_IDMAC_1_PP_ROT_OFFSET;
+ }
+
+ if (dma_chan == 12) { /* PRP Input - CB6 */
+ if (burst_size == 16)
+ ic_idmac_1 |= IC_IDMAC_1_CB6_BURST_16;
+ else
+ ic_idmac_1 &= ~IC_IDMAC_1_CB6_BURST_16;
+ }
+
+ if (dma_chan == 20) { /* PRP ENC output - CB0 */
+ if (burst_size == 16)
+ ic_idmac_1 |= IC_IDMAC_1_CB0_BURST_16;
+ else
+ ic_idmac_1 &= ~IC_IDMAC_1_CB0_BURST_16;
+
+ if (need_hor_flip)
+ ic_idmac_1 |= IC_IDMAC_1_PRPENC_FLIP_RS;
+ else
+ ic_idmac_1 &= ~IC_IDMAC_1_PRPENC_FLIP_RS;
+
+ ic_idmac_2 &= ~IC_IDMAC_2_PRPENC_HEIGHT_MASK;
+ ic_idmac_2 |= height << IC_IDMAC_2_PRPENC_HEIGHT_OFFSET;
+
+ ic_idmac_3 &= ~IC_IDMAC_3_PRPENC_WIDTH_MASK;
+ ic_idmac_3 |= width << IC_IDMAC_3_PRPENC_WIDTH_OFFSET;
+
+ } else if (dma_chan == 45) { /* PRP ENC Rot input */
+ ic_idmac_1 &= ~IC_IDMAC_1_PRPENC_ROT_MASK;
+ ic_idmac_1 |= temp_rot << IC_IDMAC_1_PRPENC_ROT_OFFSET;
+ }
+
+ if (dma_chan == 21) { /* PRP VF output - CB1 */
+ if (burst_size == 16)
+ ic_idmac_1 |= IC_IDMAC_1_CB1_BURST_16;
+ else
+ ic_idmac_1 &= ~IC_IDMAC_1_CB1_BURST_16;
+
+ if (need_hor_flip)
+ ic_idmac_1 |= IC_IDMAC_1_PRPVF_FLIP_RS;
+ else
+ ic_idmac_1 &= ~IC_IDMAC_1_PRPVF_FLIP_RS;
+
+ ic_idmac_2 &= ~IC_IDMAC_2_PRPVF_HEIGHT_MASK;
+ ic_idmac_2 |= height << IC_IDMAC_2_PRPVF_HEIGHT_OFFSET;
+
+ ic_idmac_3 &= ~IC_IDMAC_3_PRPVF_WIDTH_MASK;
+ ic_idmac_3 |= width << IC_IDMAC_3_PRPVF_WIDTH_OFFSET;
+
+ } else if (dma_chan == 46) { /* PRP VF Rot input */
+ ic_idmac_1 &= ~IC_IDMAC_1_PRPVF_ROT_MASK;
+ ic_idmac_1 |= temp_rot << IC_IDMAC_1_PRPVF_ROT_OFFSET;
+ }
+
+ if (dma_chan == 14) { /* PRP VF graphics combining input - CB3 */
+ if (burst_size == 16)
+ ic_idmac_1 |= IC_IDMAC_1_CB3_BURST_16;
+ else
+ ic_idmac_1 &= ~IC_IDMAC_1_CB3_BURST_16;
+ } else if (dma_chan == 15) { /* PP graphics combining input - CB4 */
+ if (burst_size == 16)
+ ic_idmac_1 |= IC_IDMAC_1_CB4_BURST_16;
+ else
+ ic_idmac_1 &= ~IC_IDMAC_1_CB4_BURST_16;
+ }
+
+ __raw_writel(ic_idmac_1, IC_IDMAC_1);
+ __raw_writel(ic_idmac_2, IC_IDMAC_2);
+ __raw_writel(ic_idmac_3, IC_IDMAC_3);
+
+ return 0;
+}
+
+static void _init_csc(uint8_t ic_task, ipu_color_space_t in_format,
+ ipu_color_space_t out_format, int csc_index)
+{
+
+/* Y = R * .299 + G * .587 + B * .114;
+ U = R * -.169 + G * -.332 + B * .500 + 128.;
+ V = R * .500 + G * -.419 + B * -.0813 + 128.;*/
+ static const uint32_t rgb2ycbcr_coeff[4][3] = {
+ {0x004D, 0x0096, 0x001D},
+ {0x01D5, 0x01AB, 0x0080},
+ {0x0080, 0x0195, 0x01EB},
+ {0x0000, 0x0200, 0x0200}, /* A0, A1, A2 */
+ };
+
+ /* transparent RGB->RGB matrix for combining
+ */
+ static const uint32_t rgb2rgb_coeff[4][3] = {
+ {0x0080, 0x0000, 0x0000},
+ {0x0000, 0x0080, 0x0000},
+ {0x0000, 0x0000, 0x0080},
+ {0x0000, 0x0000, 0x0000}, /* A0, A1, A2 */
+ };
+
+/* R = (1.164 * (Y - 16)) + (1.596 * (Cr - 128));
+ G = (1.164 * (Y - 16)) - (0.392 * (Cb - 128)) - (0.813 * (Cr - 128));
+ B = (1.164 * (Y - 16)) + (2.017 * (Cb - 128); */
+ static const uint32_t ycbcr2rgb_coeff[4][3] = {
+ {149, 0, 204},
+ {149, 462, 408},
+ {149, 255, 0},
+ {8192 - 446, 266, 8192 - 554}, /* A0, A1, A2 */
+ };
+
+ uint32_t param;
+ uint32_t *base = NULL;
+
+ if (ic_task == IC_TASK_ENCODER) {
+ base = ipu_tpmem_base + 0x2008 / 4;
+ } else if (ic_task == IC_TASK_VIEWFINDER) {
+ if (csc_index == 1)
+ base = ipu_tpmem_base + 0x4028 / 4;
+ else
+ base = ipu_tpmem_base + 0x4040 / 4;
+ } else if (ic_task == IC_TASK_POST_PROCESSOR) {
+ if (csc_index == 1)
+ base = ipu_tpmem_base + 0x6060 / 4;
+ else
+ base = ipu_tpmem_base + 0x6078 / 4;
+ } else {
+ BUG();
+ }
+
+ if ((in_format == YCbCr) && (out_format == RGB)) {
+ /* Init CSC (YCbCr->RGB) */
+ param = (ycbcr2rgb_coeff[3][0] << 27) |
+ (ycbcr2rgb_coeff[0][0] << 18) |
+ (ycbcr2rgb_coeff[1][1] << 9) | ycbcr2rgb_coeff[2][2];
+ __raw_writel(param, base++);
+ /* scale = 2, sat = 0 */
+ param = (ycbcr2rgb_coeff[3][0] >> 5) | (2L << (40 - 32));
+ __raw_writel(param, base++);
+
+ param = (ycbcr2rgb_coeff[3][1] << 27) |
+ (ycbcr2rgb_coeff[0][1] << 18) |
+ (ycbcr2rgb_coeff[1][0] << 9) | ycbcr2rgb_coeff[2][0];
+ __raw_writel(param, base++);
+ param = (ycbcr2rgb_coeff[3][1] >> 5);
+ __raw_writel(param, base++);
+
+ param = (ycbcr2rgb_coeff[3][2] << 27) |
+ (ycbcr2rgb_coeff[0][2] << 18) |
+ (ycbcr2rgb_coeff[1][2] << 9) | ycbcr2rgb_coeff[2][1];
+ __raw_writel(param, base++);
+ param = (ycbcr2rgb_coeff[3][2] >> 5);
+ __raw_writel(param, base++);
+ } else if ((in_format == RGB) && (out_format == YCbCr)) {
+ /* Init CSC (RGB->YCbCr) */
+ param = (rgb2ycbcr_coeff[3][0] << 27) |
+ (rgb2ycbcr_coeff[0][0] << 18) |
+ (rgb2ycbcr_coeff[1][1] << 9) | rgb2ycbcr_coeff[2][2];
+ __raw_writel(param, base++);
+ /* scale = 1, sat = 0 */
+ param = (rgb2ycbcr_coeff[3][0] >> 5) | (1UL << 8);
+ __raw_writel(param, base++);
+
+ param = (rgb2ycbcr_coeff[3][1] << 27) |
+ (rgb2ycbcr_coeff[0][1] << 18) |
+ (rgb2ycbcr_coeff[1][0] << 9) | rgb2ycbcr_coeff[2][0];
+ __raw_writel(param, base++);
+ param = (rgb2ycbcr_coeff[3][1] >> 5);
+ __raw_writel(param, base++);
+
+ param = (rgb2ycbcr_coeff[3][2] << 27) |
+ (rgb2ycbcr_coeff[0][2] << 18) |
+ (rgb2ycbcr_coeff[1][2] << 9) | rgb2ycbcr_coeff[2][1];
+ __raw_writel(param, base++);
+ param = (rgb2ycbcr_coeff[3][2] >> 5);
+ __raw_writel(param, base++);
+ } else if ((in_format == RGB) && (out_format == RGB)) {
+ /* Init CSC */
+ param =
+ (rgb2rgb_coeff[3][0] << 27) | (rgb2rgb_coeff[0][0] << 18) |
+ (rgb2rgb_coeff[1][1] << 9) | rgb2rgb_coeff[2][2];
+ __raw_writel(param, base++);
+ /* scale = 2, sat = 0 */
+ param = (rgb2rgb_coeff[3][0] >> 5) | (2UL << 8);
+ __raw_writel(param, base++);
+
+ param =
+ (rgb2rgb_coeff[3][1] << 27) | (rgb2rgb_coeff[0][1] << 18) |
+ (rgb2rgb_coeff[1][0] << 9) | rgb2rgb_coeff[2][0];
+ __raw_writel(param, base++);
+ param = (rgb2rgb_coeff[3][1] >> 5);
+ __raw_writel(param, base++);
+
+ param =
+ (rgb2rgb_coeff[3][2] << 27) | (rgb2rgb_coeff[0][2] << 18) |
+ (rgb2rgb_coeff[1][2] << 9) | rgb2rgb_coeff[2][1];
+ __raw_writel(param, base++);
+ param = (rgb2rgb_coeff[3][2] >> 5);
+ __raw_writel(param, base++);
+ } else {
+ dev_err(g_ipu_dev, "Unsupported color space conversion\n");
+ }
+}
+
+static bool _calc_resize_coeffs(uint32_t inSize, uint32_t outSize,
+ uint32_t *resizeCoeff,
+ uint32_t *downsizeCoeff)
+{
+ uint32_t tempSize;
+ uint32_t tempDownsize;
+
+ /* Input size cannot be more than 4096 */
+ /* Output size cannot be more than 1024 */
+ if ((inSize > 4096) || (outSize > 1024))
+ return false;
+
+ /* Cannot downsize more than 8:1 */
+ if ((outSize << 3) < inSize)
+ return false;
+
+ /* Compute downsizing coefficient */
+ /* Output of downsizing unit cannot be more than 1024 */
+ tempDownsize = 0;
+ tempSize = inSize;
+ while (((tempSize > 1024) || (tempSize >= outSize * 2)) &&
+ (tempDownsize < 2)) {
+ tempSize >>= 1;
+ tempDownsize++;
+ }
+ *downsizeCoeff = tempDownsize;
+
+ /* compute resizing coefficient using the following equation:
+ resizeCoeff = M*(SI -1)/(SO - 1)
+ where M = 2^13, SI - input size, SO - output size */
+ *resizeCoeff = (8192L * (tempSize - 1)) / (outSize - 1);
+ if (*resizeCoeff >= 16384L) {
+ dev_err(g_ipu_dev, "Warning! Overflow on resize coeff.\n");
+ *resizeCoeff = 0x3FFF;
+ }
+
+ dev_dbg(g_ipu_dev, "resizing from %u -> %u pixels, "
+ "downsize=%u, resize=%u.%lu (reg=%u)\n", inSize, outSize,
+ *downsizeCoeff, (*resizeCoeff >= 8192L) ? 1 : 0,
+ ((*resizeCoeff & 0x1FFF) * 10000L) / 8192L, *resizeCoeff);
+
+ return true;
+}
+
+void _ipu_vdi_toggle_top_field_man()
+{
+ uint32_t reg;
+ uint32_t mask_reg;
+
+ reg = __raw_readl(VDI_C);
+ mask_reg = reg & VDI_C_TOP_FIELD_MAN_1;
+ if (mask_reg == VDI_C_TOP_FIELD_MAN_1)
+ reg &= ~VDI_C_TOP_FIELD_MAN_1;
+ else
+ reg |= VDI_C_TOP_FIELD_MAN_1;
+
+ __raw_writel(reg, VDI_C);
+}
+
diff --git a/drivers/mxc/ipu3/ipu_param_mem.h b/drivers/mxc/ipu3/ipu_param_mem.h
new file mode 100644
index 000000000000..81b001ed947b
--- /dev/null
+++ b/drivers/mxc/ipu3/ipu_param_mem.h
@@ -0,0 +1,570 @@
+/*
+ * Copyright 2005-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+#ifndef __INCLUDE_IPU_PARAM_MEM_H__
+#define __INCLUDE_IPU_PARAM_MEM_H__
+
+#include <linux/types.h>
+#include <linux/bitrev.h>
+
+extern u32 *ipu_cpmem_base;
+
+struct ipu_ch_param_word {
+ uint32_t data[5];
+ uint32_t res[3];
+};
+
+struct ipu_ch_param {
+ struct ipu_ch_param_word word[2];
+};
+
+#define ipu_ch_param_addr(ch) (((struct ipu_ch_param *)ipu_cpmem_base) + (ch))
+
+#define _param_word(base, w) \
+ (((struct ipu_ch_param *)(base))->word[(w)].data)
+
+#define ipu_ch_param_set_field(base, w, bit, size, v) { \
+ int i = (bit) / 32; \
+ int off = (bit) % 32; \
+ _param_word(base, w)[i] |= (v) << off; \
+ if (((bit)+(size)-1)/32 > i) { \
+ _param_word(base, w)[i + 1] |= (v) >> (off ? (32 - off) : 0); \
+ } \
+}
+
+#define ipu_ch_param_mod_field(base, w, bit, size, v) { \
+ int i = (bit) / 32; \
+ int off = (bit) % 32; \
+ u32 mask = (1UL << size) - 1; \
+ u32 temp = _param_word(base, w)[i]; \
+ temp &= ~(mask << off); \
+ _param_word(base, w)[i] = temp | (v) << off; \
+ if (((bit)+(size)-1)/32 > i) { \
+ temp = _param_word(base, w)[i + 1]; \
+ temp &= ~(mask >> (32 - off)); \
+ _param_word(base, w)[i + 1] = \
+ temp | ((v) >> (off ? (32 - off) : 0)); \
+ } \
+}
+
+#define ipu_ch_param_read_field(base, w, bit, size) ({ \
+ u32 temp2; \
+ int i = (bit) / 32; \
+ int off = (bit) % 32; \
+ u32 mask = (1UL << size) - 1; \
+ u32 temp1 = _param_word(base, w)[i]; \
+ temp1 = mask & (temp1 >> off); \
+ if (((bit)+(size)-1)/32 > i) { \
+ temp2 = _param_word(base, w)[i + 1]; \
+ temp2 &= mask >> (off ? (32 - off) : 0); \
+ temp1 |= temp2 << (off ? (32 - off) : 0); \
+ } \
+ temp1; \
+})
+
+static inline void _ipu_ch_params_set_packing(struct ipu_ch_param *p,
+ int red_width, int red_offset,
+ int green_width, int green_offset,
+ int blue_width, int blue_offset,
+ int alpha_width, int alpha_offset)
+{
+ /* Setup red width and offset */
+ ipu_ch_param_set_field(p, 1, 116, 3, red_width - 1);
+ ipu_ch_param_set_field(p, 1, 128, 5, red_offset);
+ /* Setup green width and offset */
+ ipu_ch_param_set_field(p, 1, 119, 3, green_width - 1);
+ ipu_ch_param_set_field(p, 1, 133, 5, green_offset);
+ /* Setup blue width and offset */
+ ipu_ch_param_set_field(p, 1, 122, 3, blue_width - 1);
+ ipu_ch_param_set_field(p, 1, 138, 5, blue_offset);
+ /* Setup alpha width and offset */
+ ipu_ch_param_set_field(p, 1, 125, 3, alpha_width - 1);
+ ipu_ch_param_set_field(p, 1, 143, 5, alpha_offset);
+}
+
+static inline void _ipu_ch_param_dump(int ch)
+{
+ struct ipu_ch_param *p = ipu_ch_param_addr(ch);
+ pr_debug("ch %d word 0 - %08X %08X %08X %08X %08X\n", ch,
+ p->word[0].data[0], p->word[0].data[1], p->word[0].data[2],
+ p->word[0].data[3], p->word[0].data[4]);
+ pr_debug("ch %d word 1 - %08X %08X %08X %08X %08X\n", ch,
+ p->word[1].data[0], p->word[1].data[1], p->word[1].data[2],
+ p->word[1].data[3], p->word[1].data[4]);
+ pr_debug("PFS 0x%x, ",
+ ipu_ch_param_read_field(ipu_ch_param_addr(ch), 1, 85, 4));
+ pr_debug("BPP 0x%x, ",
+ ipu_ch_param_read_field(ipu_ch_param_addr(ch), 0, 107, 3));
+ pr_debug("NPB 0x%x\n",
+ ipu_ch_param_read_field(ipu_ch_param_addr(ch), 1, 78, 7));
+
+ pr_debug("FW %d, ",
+ ipu_ch_param_read_field(ipu_ch_param_addr(ch), 0, 125, 13));
+ pr_debug("FH %d, ",
+ ipu_ch_param_read_field(ipu_ch_param_addr(ch), 0, 138, 12));
+ pr_debug("Stride %d\n",
+ ipu_ch_param_read_field(ipu_ch_param_addr(ch), 1, 102, 14));
+
+ pr_debug("Width0 %d+1, ",
+ ipu_ch_param_read_field(ipu_ch_param_addr(ch), 1, 116, 3));
+ pr_debug("Width1 %d+1, ",
+ ipu_ch_param_read_field(ipu_ch_param_addr(ch), 1, 119, 3));
+ pr_debug("Width2 %d+1, ",
+ ipu_ch_param_read_field(ipu_ch_param_addr(ch), 1, 122, 3));
+ pr_debug("Width3 %d+1, ",
+ ipu_ch_param_read_field(ipu_ch_param_addr(ch), 1, 125, 3));
+ pr_debug("Offset0 %d, ",
+ ipu_ch_param_read_field(ipu_ch_param_addr(ch), 1, 128, 5));
+ pr_debug("Offset1 %d, ",
+ ipu_ch_param_read_field(ipu_ch_param_addr(ch), 1, 133, 5));
+ pr_debug("Offset2 %d, ",
+ ipu_ch_param_read_field(ipu_ch_param_addr(ch), 1, 138, 5));
+ pr_debug("Offset3 %d\n",
+ ipu_ch_param_read_field(ipu_ch_param_addr(ch), 1, 143, 5));
+}
+
+static inline void _ipu_ch_param_init(int ch,
+ uint32_t pixel_fmt, uint32_t width,
+ uint32_t height, uint32_t stride,
+ uint32_t u, uint32_t v,
+ uint32_t uv_stride, dma_addr_t addr0,
+ dma_addr_t addr1)
+{
+ uint32_t u_offset = 0;
+ uint32_t v_offset = 0;
+ struct ipu_ch_param params;
+
+ memset(&params, 0, sizeof(params));
+
+ ipu_ch_param_set_field(&params, 0, 125, 13, width - 1);
+
+ if ((ch == 8) || (ch == 9) || (ch == 10)) {
+ ipu_ch_param_set_field(&params, 0, 138, 12, (height / 2) - 1);
+ ipu_ch_param_set_field(&params, 1, 102, 14, (stride * 2) - 1);
+ } else {
+ ipu_ch_param_set_field(&params, 0, 138, 12, height - 1);
+ ipu_ch_param_set_field(&params, 1, 102, 14, stride - 1);
+ }
+
+ /* EBA is 8-byte aligned */
+ ipu_ch_param_set_field(&params, 1, 0, 29, addr0 >> 3);
+ ipu_ch_param_set_field(&params, 1, 29, 29, addr1 >> 3);
+ if (addr0%8)
+ dev_warn(g_ipu_dev,
+ "IDMAC%d's EBA0 is not 8-byte aligned\n", ch);
+ if (addr1%8)
+ dev_warn(g_ipu_dev,
+ "IDMAC%d's EBA1 is not 8-byte aligned\n", ch);
+
+ switch (pixel_fmt) {
+ case IPU_PIX_FMT_GENERIC:
+ /*Represents 8-bit Generic data */
+ ipu_ch_param_set_field(&params, 0, 107, 3, 5); /* bits/pixel */
+ ipu_ch_param_set_field(&params, 1, 85, 4, 6); /* pix format */
+ ipu_ch_param_set_field(&params, 1, 78, 7, 63); /* burst size */
+
+ break;
+ case IPU_PIX_FMT_GENERIC_32:
+ /*Represents 32-bit Generic data */
+ break;
+ case IPU_PIX_FMT_RGB565:
+ ipu_ch_param_set_field(&params, 0, 107, 3, 3); /* bits/pixel */
+ ipu_ch_param_set_field(&params, 1, 85, 4, 7); /* pix format */
+ ipu_ch_param_set_field(&params, 1, 78, 7, 15); /* burst size */
+
+ _ipu_ch_params_set_packing(&params, 5, 0, 6, 5, 5, 11, 8, 16);
+ break;
+ case IPU_PIX_FMT_BGR24:
+ ipu_ch_param_set_field(&params, 0, 107, 3, 1); /* bits/pixel */
+ ipu_ch_param_set_field(&params, 1, 85, 4, 7); /* pix format */
+ ipu_ch_param_set_field(&params, 1, 78, 7, 19); /* burst size */
+
+ _ipu_ch_params_set_packing(&params, 8, 0, 8, 8, 8, 16, 8, 24);
+ break;
+ case IPU_PIX_FMT_RGB24:
+ case IPU_PIX_FMT_YUV444:
+ ipu_ch_param_set_field(&params, 0, 107, 3, 1); /* bits/pixel */
+ ipu_ch_param_set_field(&params, 1, 85, 4, 7); /* pix format */
+ ipu_ch_param_set_field(&params, 1, 78, 7, 19); /* burst size */
+
+ _ipu_ch_params_set_packing(&params, 8, 16, 8, 8, 8, 0, 8, 24);
+ break;
+ case IPU_PIX_FMT_BGRA32:
+ case IPU_PIX_FMT_BGR32:
+ ipu_ch_param_set_field(&params, 0, 107, 3, 0); /* bits/pixel */
+ ipu_ch_param_set_field(&params, 1, 85, 4, 7); /* pix format */
+ ipu_ch_param_set_field(&params, 1, 78, 7, 15); /* burst size */
+
+ _ipu_ch_params_set_packing(&params, 8, 8, 8, 16, 8, 24, 8, 0);
+ break;
+ case IPU_PIX_FMT_RGBA32:
+ case IPU_PIX_FMT_RGB32:
+ ipu_ch_param_set_field(&params, 0, 107, 3, 0); /* bits/pixel */
+ ipu_ch_param_set_field(&params, 1, 85, 4, 7); /* pix format */
+ ipu_ch_param_set_field(&params, 1, 78, 7, 15); /* burst size */
+
+ _ipu_ch_params_set_packing(&params, 8, 24, 8, 16, 8, 8, 8, 0);
+ break;
+ case IPU_PIX_FMT_ABGR32:
+ ipu_ch_param_set_field(&params, 0, 107, 3, 0); /* bits/pixel */
+ ipu_ch_param_set_field(&params, 1, 85, 4, 7); /* pix format */
+ ipu_ch_param_set_field(&params, 1, 78, 7, 15); /* burst size */
+
+ _ipu_ch_params_set_packing(&params, 8, 0, 8, 8, 8, 16, 8, 24);
+ break;
+ case IPU_PIX_FMT_UYVY:
+ ipu_ch_param_set_field(&params, 0, 107, 3, 3); /* bits/pixel */
+ ipu_ch_param_set_field(&params, 1, 85, 4, 0xA); /* pix format */
+ if ((ch == 8) || (ch == 9) || (ch == 10)) {
+ ipu_ch_param_set_field(&params, 1, 78, 7, 15); /* burst size */
+ } else {
+ ipu_ch_param_set_field(&params, 1, 78, 7, 31); /* burst size */
+ }
+ break;
+ case IPU_PIX_FMT_YUYV:
+ ipu_ch_param_set_field(&params, 0, 107, 3, 3); /* bits/pixel */
+ ipu_ch_param_set_field(&params, 1, 85, 4, 0x8); /* pix format */
+ if ((ch == 8) || (ch == 9) || (ch == 10)) {
+ ipu_ch_param_set_field(&params, 1, 78, 7, 15); /* burst size */
+ } else {
+ ipu_ch_param_set_field(&params, 1, 78, 7, 31); /* burst size */
+ }
+ break;
+ case IPU_PIX_FMT_YUV420P2:
+ case IPU_PIX_FMT_YUV420P:
+ ipu_ch_param_set_field(&params, 1, 85, 4, 2); /* pix format */
+
+ if (uv_stride < stride / 2)
+ uv_stride = stride / 2;
+
+ u_offset = stride * height;
+ v_offset = u_offset + (uv_stride * height / 2);
+ if ((ch == 8) || (ch == 9) || (ch == 10)) {
+ ipu_ch_param_set_field(&params, 1, 78, 7, 15); /* burst size */
+ uv_stride = uv_stride*2;
+ } else {
+ ipu_ch_param_set_field(&params, 1, 78, 7, 31); /* burst size */
+ }
+ break;
+ case IPU_PIX_FMT_YVU422P:
+ /* BPP & pixel format */
+ ipu_ch_param_set_field(&params, 1, 85, 4, 1); /* pix format */
+ ipu_ch_param_set_field(&params, 1, 78, 7, 31); /* burst size */
+
+ if (uv_stride < stride / 2)
+ uv_stride = stride / 2;
+
+ v_offset = (v == 0) ? stride * height : v;
+ u_offset = (u == 0) ? v_offset + v_offset / 2 : u;
+ break;
+ case IPU_PIX_FMT_YUV422P:
+ /* BPP & pixel format */
+ ipu_ch_param_set_field(&params, 1, 85, 4, 1); /* pix format */
+ ipu_ch_param_set_field(&params, 1, 78, 7, 31); /* burst size */
+
+ if (uv_stride < stride / 2)
+ uv_stride = stride / 2;
+
+ u_offset = (u == 0) ? stride * height : u;
+ v_offset = (v == 0) ? u_offset + u_offset / 2 : v;
+ break;
+ case IPU_PIX_FMT_NV12:
+ /* BPP & pixel format */
+ ipu_ch_param_set_field(&params, 1, 85, 4, 4); /* pix format */
+ uv_stride = stride;
+ u_offset = (u == 0) ? stride * height : u;
+ if ((ch == 8) || (ch == 9) || (ch == 10)) {
+ ipu_ch_param_set_field(&params, 1, 78, 7, 15); /* burst size */
+ uv_stride = uv_stride*2;
+ } else {
+ ipu_ch_param_set_field(&params, 1, 78, 7, 31); /* burst size */
+ }
+ break;
+ default:
+ dev_err(g_ipu_dev, "mxc ipu: unimplemented pixel format\n");
+ break;
+ }
+ /*set burst size to 16*/
+
+
+ if (uv_stride)
+ ipu_ch_param_set_field(&params, 1, 128, 14, uv_stride - 1);
+
+ /* Get the uv offset from user when need cropping */
+ if (u || v) {
+ u_offset = u;
+ v_offset = v;
+ }
+
+ /* UBO and VBO are 22-bit and 8-byte aligned */
+ if (u_offset/8 > 0x3fffff)
+ dev_warn(g_ipu_dev,
+ "IDMAC%d's U offset exceeds IPU limitation\n", ch);
+ if (v_offset/8 > 0x3fffff)
+ dev_warn(g_ipu_dev,
+ "IDMAC%d's V offset exceeds IPU limitation\n", ch);
+ if (u_offset%8)
+ dev_warn(g_ipu_dev,
+ "IDMAC%d's U offset is not 8-byte aligned\n", ch);
+ if (v_offset%8)
+ dev_warn(g_ipu_dev,
+ "IDMAC%d's V offset is not 8-byte aligned\n", ch);
+
+ ipu_ch_param_set_field(&params, 0, 46, 22, u_offset / 8);
+ ipu_ch_param_set_field(&params, 0, 68, 22, v_offset / 8);
+
+ pr_debug("initializing idma ch %d @ %p\n", ch, ipu_ch_param_addr(ch));
+ memcpy(ipu_ch_param_addr(ch), &params, sizeof(params));
+};
+
+static inline void _ipu_ch_param_set_burst_size(uint32_t ch,
+ uint16_t burst_pixels)
+{
+ ipu_ch_param_mod_field(ipu_ch_param_addr(ch), 1, 78, 7,
+ burst_pixels - 1);
+};
+
+static inline int _ipu_ch_param_get_burst_size(uint32_t ch)
+{
+ return ipu_ch_param_read_field(ipu_ch_param_addr(ch), 1, 78, 7) + 1;
+};
+
+static inline int _ipu_ch_param_get_bpp(uint32_t ch)
+{
+ return ipu_ch_param_read_field(ipu_ch_param_addr(ch), 0, 107, 3);
+};
+
+static inline void _ipu_ch_param_set_buffer(uint32_t ch, int bufNum,
+ dma_addr_t phyaddr)
+{
+ ipu_ch_param_mod_field(ipu_ch_param_addr(ch), 1, 29 * bufNum, 29,
+ phyaddr / 8);
+};
+
+static inline void _ipu_ch_param_set_rotation(uint32_t ch,
+ ipu_rotate_mode_t rot)
+{
+ u32 temp_rot = bitrev8(rot) >> 5;
+ ipu_ch_param_mod_field(ipu_ch_param_addr(ch), 0, 119, 3, temp_rot);
+};
+
+static inline void _ipu_ch_param_set_block_mode(uint32_t ch)
+{
+ ipu_ch_param_mod_field(ipu_ch_param_addr(ch), 0, 117, 2, 1);
+};
+
+static inline void _ipu_ch_param_set_alpha_use_separate_channel(uint32_t ch,
+ bool option)
+{
+ if (option) {
+ ipu_ch_param_mod_field(ipu_ch_param_addr(ch), 1, 89, 1, 1);
+ } else {
+ ipu_ch_param_mod_field(ipu_ch_param_addr(ch), 1, 89, 1, 0);
+ }
+};
+
+static inline void _ipu_ch_param_set_alpha_condition_read(uint32_t ch)
+{
+ ipu_ch_param_mod_field(ipu_ch_param_addr(ch), 1, 149, 1, 1);
+};
+
+static inline void _ipu_ch_param_set_alpha_buffer_memory(uint32_t ch)
+{
+ int alp_mem_idx;
+
+ switch (ch) {
+ case 14: /* PRP graphic */
+ alp_mem_idx = 0;
+ break;
+ case 15: /* PP graphic */
+ alp_mem_idx = 1;
+ break;
+ case 23: /* DP BG SYNC graphic */
+ alp_mem_idx = 4;
+ break;
+ case 27: /* DP FG SYNC graphic */
+ alp_mem_idx = 2;
+ break;
+ default:
+ dev_err(g_ipu_dev, "unsupported correlative channel of local "
+ "alpha channel\n");
+ return;
+ }
+
+ ipu_ch_param_mod_field(ipu_ch_param_addr(ch), 1, 90, 3, alp_mem_idx);
+};
+
+static inline void _ipu_ch_param_set_interlaced_scan(uint32_t ch)
+{
+ u32 stride;
+ ipu_ch_param_set_field(ipu_ch_param_addr(ch), 0, 113, 1, 1);
+ stride = ipu_ch_param_read_field(ipu_ch_param_addr(ch), 1, 102, 14) + 1;
+ /* ILO is 20-bit and 8-byte aligned */
+ if (stride/8 > 0xfffff)
+ dev_warn(g_ipu_dev,
+ "IDMAC%d's ILO exceeds IPU limitation\n", ch);
+ if (stride%8)
+ dev_warn(g_ipu_dev,
+ "IDMAC%d's ILO is not 8-byte aligned\n", ch);
+ ipu_ch_param_mod_field(ipu_ch_param_addr(ch), 1, 58, 20, stride / 8);
+ stride *= 2;
+ ipu_ch_param_mod_field(ipu_ch_param_addr(ch), 1, 102, 14, stride - 1);
+};
+
+static inline void _ipu_ch_param_set_high_priority(uint32_t ch)
+{
+ ipu_ch_param_mod_field(ipu_ch_param_addr(ch), 1, 93, 2, 1);
+};
+
+/* IDMAC U/V offset changing support */
+/* U and V input is not affected, */
+/* the update is done by new calculation according to */
+/* vertical_offset and horizontal_offset */
+static inline void _ipu_ch_offset_update(int ch,
+ uint32_t pixel_fmt,
+ uint32_t width,
+ uint32_t height,
+ uint32_t stride,
+ uint32_t u,
+ uint32_t v,
+ uint32_t uv_stride,
+ uint32_t vertical_offset,
+ uint32_t horizontal_offset)
+{
+ uint32_t u_offset = 0;
+ uint32_t v_offset = 0;
+ uint32_t u_fix = 0;
+ uint32_t v_fix = 0;
+
+ switch (pixel_fmt) {
+ case IPU_PIX_FMT_GENERIC:
+ case IPU_PIX_FMT_GENERIC_32:
+ case IPU_PIX_FMT_RGB565:
+ case IPU_PIX_FMT_BGR24:
+ case IPU_PIX_FMT_RGB24:
+ case IPU_PIX_FMT_YUV444:
+ case IPU_PIX_FMT_BGRA32:
+ case IPU_PIX_FMT_BGR32:
+ case IPU_PIX_FMT_RGBA32:
+ case IPU_PIX_FMT_RGB32:
+ case IPU_PIX_FMT_ABGR32:
+ case IPU_PIX_FMT_UYVY:
+ case IPU_PIX_FMT_YUYV:
+ break;
+
+ case IPU_PIX_FMT_YUV420P2:
+ case IPU_PIX_FMT_YUV420P:
+ if (uv_stride < stride / 2)
+ uv_stride = stride / 2;
+
+ u_offset = stride * (height - vertical_offset - 1) +
+ (stride - horizontal_offset) +
+ (uv_stride * vertical_offset / 2) +
+ horizontal_offset / 2;
+ v_offset = u_offset + (uv_stride * height / 2);
+ u_fix = u ? (u + (uv_stride * vertical_offset / 2) +
+ (horizontal_offset / 2) -
+ (stride * vertical_offset) - (horizontal_offset)) :
+ u_offset;
+ v_fix = v ? (v + (uv_stride * vertical_offset / 2) +
+ (horizontal_offset / 2) -
+ (stride * vertical_offset) - (horizontal_offset)) :
+ v_offset;
+
+ break;
+ case IPU_PIX_FMT_YVU422P:
+ if (uv_stride < stride / 2)
+ uv_stride = stride / 2;
+
+ v_offset = stride * (height - vertical_offset - 1) +
+ (stride - horizontal_offset) +
+ (uv_stride * vertical_offset) +
+ horizontal_offset / 2;
+ u_offset = v_offset + uv_stride * height;
+ u_fix = u ? (u + (uv_stride * vertical_offset) +
+ horizontal_offset / 2 -
+ (stride * vertical_offset) - (horizontal_offset)) :
+ u_offset;
+ v_fix = v ? (v + (uv_stride * vertical_offset) +
+ horizontal_offset / 2 -
+ (stride * vertical_offset) - (horizontal_offset)) :
+ v_offset;
+ break;
+ case IPU_PIX_FMT_YUV422P:
+ if (uv_stride < stride / 2)
+ uv_stride = stride / 2;
+
+ u_offset = stride * (height - vertical_offset - 1) +
+ (stride - horizontal_offset) +
+ (uv_stride * vertical_offset) +
+ horizontal_offset / 2;
+ v_offset = u_offset + uv_stride * height;
+ u_fix = u ? (u + (uv_stride * vertical_offset) +
+ horizontal_offset / 2 -
+ (stride * vertical_offset) - (horizontal_offset)) :
+ u_offset;
+ v_fix = v ? (v + (uv_stride * vertical_offset) +
+ horizontal_offset / 2 -
+ (stride * vertical_offset) - (horizontal_offset)) :
+ v_offset;
+ break;
+
+ case IPU_PIX_FMT_NV12:
+ uv_stride = stride;
+ u_offset = stride * (height - vertical_offset - 1) +
+ (stride - horizontal_offset) +
+ (uv_stride * vertical_offset / 2) +
+ horizontal_offset;
+ u_fix = u ? (u + (uv_stride * vertical_offset / 2) +
+ horizontal_offset -
+ (stride * vertical_offset) - (horizontal_offset)) :
+ u_offset;
+
+ break;
+ default:
+ dev_err(g_ipu_dev, "mxc ipu: unimplemented pixel format\n");
+ break;
+ }
+
+
+
+ if (u_fix > u_offset)
+ u_offset = u_fix;
+
+ if (v_fix > v_offset)
+ v_offset = v_fix;
+
+ /* UBO and VBO are 22-bit and 8-byte aligned */
+ if (u_offset/8 > 0x3fffff)
+ dev_warn(g_ipu_dev,
+ "IDMAC%d's U offset exceeds IPU limitation\n", ch);
+ if (v_offset/8 > 0x3fffff)
+ dev_warn(g_ipu_dev,
+ "IDMAC%d's V offset exceeds IPU limitation\n", ch);
+ if (u_offset%8)
+ dev_warn(g_ipu_dev,
+ "IDMAC%d's U offset is not 8-byte aligned\n", ch);
+ if (v_offset%8)
+ dev_warn(g_ipu_dev,
+ "IDMAC%d's V offset is not 8-byte aligned\n", ch);
+
+ ipu_ch_param_mod_field(ipu_ch_param_addr(ch), 0, 46, 22, u_offset / 8);
+ ipu_ch_param_mod_field(ipu_ch_param_addr(ch), 0, 68, 22, v_offset / 8);
+
+};
+
+static inline void _ipu_ch_params_set_alpha_width(uint32_t ch, int alpha_width)
+{
+ ipu_ch_param_set_field(ipu_ch_param_addr(ch), 1, 125, 3, alpha_width - 1);
+};
+
+#endif
diff --git a/drivers/mxc/ipu3/ipu_prv.h b/drivers/mxc/ipu3/ipu_prv.h
new file mode 100644
index 000000000000..d9c429652012
--- /dev/null
+++ b/drivers/mxc/ipu3/ipu_prv.h
@@ -0,0 +1,102 @@
+/*
+ * Copyright 2005-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+#ifndef __INCLUDE_IPU_PRV_H__
+#define __INCLUDE_IPU_PRV_H__
+
+#include <linux/types.h>
+#include <linux/device.h>
+#include <linux/clk.h>
+#include <linux/interrupt.h>
+#include <linux/fsl_devices.h>
+
+/* Globals */
+extern struct device *g_ipu_dev;
+extern spinlock_t ipu_lock;
+extern bool g_ipu_clk_enabled;
+extern struct clk *g_ipu_clk;
+extern struct clk *g_di_clk[2];
+extern struct clk *g_pixel_clk[2];
+extern struct clk *g_csi_clk[2];
+extern unsigned char g_dc_di_assignment[];
+extern int g_ipu_hw_rev;
+extern int dmfc_type_setup;
+
+#define IDMA_CHAN_INVALID 0xFF
+#define HIGH_RESOLUTION_WIDTH 1024
+
+struct ipu_channel {
+ u8 video_in_dma;
+ u8 alpha_in_dma;
+ u8 graph_in_dma;
+ u8 out_dma;
+};
+
+enum ipu_dmfc_type {
+ DMFC_NORMAL = 0,
+ DMFC_HIGH_RESOLUTION_DC,
+ DMFC_HIGH_RESOLUTION_DP,
+ DMFC_HIGH_RESOLUTION_ONLY_DP,
+};
+
+int register_ipu_device(void);
+ipu_color_space_t format_to_colorspace(uint32_t fmt);
+bool ipu_pixel_format_has_alpha(uint32_t fmt);
+
+void ipu_dump_registers(void);
+
+uint32_t _ipu_channel_status(ipu_channel_t channel);
+
+void _ipu_init_dc_mappings(void);
+int _ipu_dp_init(ipu_channel_t channel, uint32_t in_pixel_fmt,
+ uint32_t out_pixel_fmt);
+void _ipu_dp_uninit(ipu_channel_t channel);
+void _ipu_dc_init(int dc_chan, int di, bool interlaced, uint32_t pixel_fmt);
+void _ipu_dc_uninit(int dc_chan);
+void _ipu_dp_dc_enable(ipu_channel_t channel);
+void _ipu_dp_dc_disable(ipu_channel_t channel, bool swap);
+void _ipu_dmfc_init(int dmfc_type, int first);
+void _ipu_dmfc_set_wait4eot(int dma_chan, int width);
+int _ipu_disp_chan_is_interlaced(ipu_channel_t channel);
+
+void _ipu_ic_enable_task(ipu_channel_t channel);
+void _ipu_ic_disable_task(ipu_channel_t channel);
+void _ipu_ic_init_prpvf(ipu_channel_params_t *params, bool src_is_csi);
+void _ipu_vdi_init(ipu_channel_t channel, ipu_channel_params_t *params);
+void _ipu_vdi_uninit(void);
+void _ipu_ic_uninit_prpvf(void);
+void _ipu_ic_init_rotate_vf(ipu_channel_params_t *params);
+void _ipu_ic_uninit_rotate_vf(void);
+void _ipu_ic_init_csi(ipu_channel_params_t *params);
+void _ipu_ic_uninit_csi(void);
+void _ipu_ic_init_prpenc(ipu_channel_params_t *params, bool src_is_csi);
+void _ipu_ic_uninit_prpenc(void);
+void _ipu_ic_init_rotate_enc(ipu_channel_params_t *params);
+void _ipu_ic_uninit_rotate_enc(void);
+void _ipu_ic_init_pp(ipu_channel_params_t *params);
+void _ipu_ic_uninit_pp(void);
+void _ipu_ic_init_rotate_pp(ipu_channel_params_t *params);
+void _ipu_ic_uninit_rotate_pp(void);
+int _ipu_ic_idma_init(int dma_chan, uint16_t width, uint16_t height,
+ int burst_size, ipu_rotate_mode_t rot);
+void _ipu_vdi_toggle_top_field_man(void);
+int _ipu_csi_init(ipu_channel_t channel, uint32_t csi);
+void ipu_csi_set_test_generator(bool active, uint32_t r_value,
+ uint32_t g_value, uint32_t b_value,
+ uint32_t pix_clk, uint32_t csi);
+void _ipu_csi_ccir_err_detection_enable(uint32_t csi);
+void _ipu_csi_ccir_err_detection_disable(uint32_t csi);
+void _ipu_smfc_init(ipu_channel_t channel, uint32_t mipi_id, uint32_t csi);
+void _ipu_smfc_set_burst_size(ipu_channel_t channel, uint32_t bs);
+void _ipu_dp_set_csc_coefficients(ipu_channel_t channel, int32_t param[][3]);
+
+#endif /* __INCLUDE_IPU_PRV_H__ */
diff --git a/drivers/mxc/ipu3/ipu_regs.h b/drivers/mxc/ipu3/ipu_regs.h
new file mode 100644
index 000000000000..002bb96b9f66
--- /dev/null
+++ b/drivers/mxc/ipu3/ipu_regs.h
@@ -0,0 +1,669 @@
+/*
+ * Copyright (C) 2005-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*
+ * @file ipu_regs.h
+ *
+ * @brief IPU Register definitions
+ *
+ * @ingroup IPU
+ */
+#ifndef __IPU_REGS_INCLUDED__
+#define __IPU_REGS_INCLUDED__
+
+#define IPU_DISP0_BASE 0x00000000
+#define IPU_MCU_T_DEFAULT 8
+#define IPU_DISP1_BASE (IPU_MCU_T_DEFAULT << 25)
+#define IPU_REG_BASE 0x1E000000
+#define IPUV3M_REG_BASE 0x06000000
+
+#define IPU_CM_REG_BASE 0x00000000
+#define IPU_IDMAC_REG_BASE 0x00008000
+#define IPU_ISP_REG_BASE 0x00010000
+#define IPU_DP_REG_BASE 0x00018000
+#define IPU_IC_REG_BASE 0x00020000
+#define IPU_IRT_REG_BASE 0x00028000
+#define IPU_CSI0_REG_BASE 0x00030000
+#define IPU_CSI1_REG_BASE 0x00038000
+#define IPU_DI0_REG_BASE 0x00040000
+#define IPU_DI1_REG_BASE 0x00048000
+#define IPU_SMFC_REG_BASE 0x00050000
+#define IPU_DC_REG_BASE 0x00058000
+#define IPU_DMFC_REG_BASE 0x00060000
+#define IPU_VDI_REG_BASE 0x00068000
+#define IPU_CPMEM_REG_BASE 0x01000000
+#define IPU_LUT_REG_BASE 0x01020000
+#define IPU_SRM_REG_BASE 0x01040000
+#define IPU_TPM_REG_BASE 0x01060000
+#define IPU_DC_TMPL_REG_BASE 0x01080000
+#define IPU_ISP_TBPR_REG_BASE 0x010C0000
+
+
+extern u32 *ipu_cm_reg;
+extern u32 *ipu_idmac_reg;
+extern u32 *ipu_dp_reg;
+extern u32 *ipu_ic_reg;
+extern u32 *ipu_dc_reg;
+extern u32 *ipu_dc_tmpl_reg;
+extern u32 *ipu_dmfc_reg;
+extern u32 *ipu_di_reg[];
+extern u32 *ipu_smfc_reg;
+extern u32 *ipu_csi_reg[];
+extern u32 *ipu_tpmem_base;
+extern u32 *ipu_disp_base[];
+extern u32 *ipu_vdi_reg;
+
+/* Register addresses */
+/* IPU Common registers */
+#define IPU_CONF (ipu_cm_reg)
+
+#define IPU_SRM_PRI1 (ipu_cm_reg + 0x00A0/4)
+#define IPU_SRM_PRI2 (ipu_cm_reg + 0x00A4/4)
+#define IPU_FS_PROC_FLOW1 (ipu_cm_reg + 0x00A8/4)
+#define IPU_FS_PROC_FLOW2 (ipu_cm_reg + 0x00AC/4)
+#define IPU_FS_PROC_FLOW3 (ipu_cm_reg + 0x00B0/4)
+#define IPU_FS_DISP_FLOW1 (ipu_cm_reg + 0x00B4/4)
+#define IPU_FS_DISP_FLOW2 (ipu_cm_reg + 0x00B8/4)
+#define IPU_SKIP (ipu_cm_reg + 0x00BC/4)
+#define IPU_DISP_ALT_CONF (ipu_cm_reg + 0x00C0/4)
+#define IPU_DISP_GEN (ipu_cm_reg + 0x00C4/4)
+#define IPU_DISP_ALT1 (ipu_cm_reg + 0x00C8/4)
+#define IPU_DISP_ALT2 (ipu_cm_reg + 0x00CC/4)
+#define IPU_DISP_ALT3 (ipu_cm_reg + 0x00D0/4)
+#define IPU_DISP_ALT4 (ipu_cm_reg + 0x00D4/4)
+#define IPU_SNOOP (ipu_cm_reg + 0x00D8/4)
+#define IPU_MEM_RST (ipu_cm_reg + 0x00DC/4)
+#define IPU_PM (ipu_cm_reg + 0x00E0/4)
+#define IPU_GPR (ipu_cm_reg + 0x00E4/4)
+#define IPU_CHA_DB_MODE_SEL(ch) (ipu_cm_reg + 0x0150/4 + (ch / 32))
+#define IPU_ALT_CHA_DB_MODE_SEL(ch) (ipu_cm_reg + 0x0168/4 + (ch / 32))
+#define IPU_CHA_CUR_BUF(ch) ({g_ipu_hw_rev >= 2 ? \
+ (ipu_cm_reg + 0x023C/4 + (ch / 32)) : \
+ (ipu_cm_reg + 0x0124/4 + (ch / 32)); })
+#define IPU_ALT_CUR_BUF0 ({g_ipu_hw_rev >= 2 ? \
+ (ipu_cm_reg + 0x0244/4) : \
+ (ipu_cm_reg + 0x012C/4); })
+#define IPU_ALT_CUR_BUF1 ({g_ipu_hw_rev >= 2 ? \
+ (ipu_cm_reg + 0x0248/4) : \
+ (ipu_cm_reg + 0x0130/4); })
+#define IPU_SRM_STAT ({g_ipu_hw_rev >= 2 ? \
+ (ipu_cm_reg + 0x024C/4) : \
+ (ipu_cm_reg + 0x0134/4); })
+#define IPU_PROC_TASK_STAT ({g_ipu_hw_rev >= 2 ? \
+ (ipu_cm_reg + 0x0250/4) : \
+ (ipu_cm_reg + 0x0138/4); })
+#define IPU_DISP_TASK_STAT ({g_ipu_hw_rev >= 2 ? \
+ (ipu_cm_reg + 0x0254/4) : \
+ (ipu_cm_reg + 0x013C/4); })
+#define IPU_CHA_BUF0_RDY(ch) ({g_ipu_hw_rev >= 2 ? \
+ (ipu_cm_reg + 0x0268/4 + (ch / 32)) : \
+ (ipu_cm_reg + 0x0140/4 + (ch / 32)); })
+#define IPU_CHA_BUF1_RDY(ch) ({g_ipu_hw_rev >= 2 ? \
+ (ipu_cm_reg + 0x0270/4 + (ch / 32)) : \
+ (ipu_cm_reg + 0x0148/4 + (ch / 32)); })
+#define IPU_ALT_CHA_BUF0_RDY(ch) ({g_ipu_hw_rev >= 2 ? \
+ (ipu_cm_reg + 0x0278/4 + (ch / 32)) : \
+ (ipu_cm_reg + 0x0158/4 + (ch / 32)); })
+#define IPU_ALT_CHA_BUF1_RDY(ch) ({g_ipu_hw_rev >= 2 ? \
+ (ipu_cm_reg + 0x0280/4 + (ch / 32)) : \
+ (ipu_cm_reg + 0x0160/4 + (ch / 32)); })
+
+#define IPU_INT_CTRL(n) (ipu_cm_reg + 0x003C/4 + ((n) - 1))
+#define IPU_INT_CTRL_IRQ(irq) IPU_INT_CTRL(((irq) / 32))
+#define IPU_INT_STAT_IRQ(irq) IPU_INT_STAT(((irq) / 32))
+#define IPU_INT_STAT(n) ({g_ipu_hw_rev >= 2 ? \
+ (ipu_cm_reg + 0x0200/4 + ((n) - 1)) : \
+ (ipu_cm_reg + 0x00E8/4 + ((n) - 1)); })
+
+#define IPUIRQ_2_STATREG(irq) (IPU_INT_STAT(1) + ((irq) / 32))
+#define IPUIRQ_2_CTRLREG(irq) (IPU_INT_CTRL(1) + ((irq) / 32))
+#define IPUIRQ_2_MASK(irq) (1UL << ((irq) & 0x1F))
+
+#define VDI_FSIZE (ipu_vdi_reg)
+#define VDI_C (ipu_vdi_reg + 0x0004/4)
+
+/* CMOS Sensor Interface Registers */
+#define CSI_SENS_CONF(csi) (ipu_csi_reg[csi])
+#define CSI_SENS_FRM_SIZE(csi) (ipu_csi_reg[csi] + 0x0004/4)
+#define CSI_ACT_FRM_SIZE(csi) (ipu_csi_reg[csi] + 0x0008/4)
+#define CSI_OUT_FRM_CTRL(csi) (ipu_csi_reg[csi] + 0x000C/4)
+#define CSI_TST_CTRL(csi) (ipu_csi_reg[csi] + 0x0010/4)
+#define CSI_CCIR_CODE_1(csi) (ipu_csi_reg[csi] + 0x0014/4)
+#define CSI_CCIR_CODE_2(csi) (ipu_csi_reg[csi] + 0x0018/4)
+#define CSI_CCIR_CODE_3(csi) (ipu_csi_reg[csi] + 0x001C/4)
+#define CSI_MIPI_DI(csi) (ipu_csi_reg[csi] + 0x0020/4)
+#define CSI_SKIP(csi) (ipu_csi_reg[csi] + 0x0024/4)
+#define CSI_CPD_CTRL(csi) (ipu_csi_reg[csi] + 0x0028/4)
+#define CSI_CPD_RC(csi, n) (ipu_csi_reg[csi] + 0x002C/4 + n)
+#define CSI_CPD_RS(csi, n) (ipu_csi_reg[csi] + 0x004C/4 + n)
+#define CSI_CPD_GRC(csi, n) (ipu_csi_reg[csi] + 0x005C/4 + n)
+#define CSI_CPD_GRS(csi, n) (ipu_csi_reg[csi] + 0x007C/4 + n)
+#define CSI_CPD_GBC(csi, n) (ipu_csi_reg[csi] + 0x008C/4 + n)
+#define CSI_CPD_GBS(csi, n) (ipu_csi_reg[csi] + 0x00AC/4 + n)
+#define CSI_CPD_BC(csi, n) (ipu_csi_reg[csi] + 0x00BC/4 + n)
+#define CSI_CPD_BS(csi, n) (ipu_csi_reg[csi] + 0x00DC/4 + n)
+#define CSI_CPD_OFFSET1(csi) (ipu_csi_reg[csi] + 0x00EC/4)
+#define CSI_CPD_OFFSET2(csi) (ipu_csi_reg[csi] + 0x00F0/4)
+
+/*SMFC Registers */
+#define SMFC_MAP (ipu_smfc_reg)
+#define SMFC_WMC (ipu_smfc_reg + 0x0004/4)
+#define SMFC_BS (ipu_smfc_reg + 0x0008/4)
+
+/* Image Converter Registers */
+#define IC_CONF (ipu_ic_reg)
+#define IC_PRP_ENC_RSC (ipu_ic_reg + 0x0004/4)
+#define IC_PRP_VF_RSC (ipu_ic_reg + 0x0008/4)
+#define IC_PP_RSC (ipu_ic_reg + 0x000C/4)
+#define IC_CMBP_1 (ipu_ic_reg + 0x0010/4)
+#define IC_CMBP_2 (ipu_ic_reg + 0x0014/4)
+#define IC_IDMAC_1 (ipu_ic_reg + 0x0018/4)
+#define IC_IDMAC_2 (ipu_ic_reg + 0x001C/4)
+#define IC_IDMAC_3 (ipu_ic_reg + 0x0020/4)
+#define IC_IDMAC_4 (ipu_ic_reg + 0x0024/4)
+
+#define IDMAC_CONF (ipu_idmac_reg + 0x0000)
+#define IDMAC_CHA_EN(ch) (ipu_idmac_reg + 0x0004/4 + (ch/32))
+#define IDMAC_SEP_ALPHA (ipu_idmac_reg + 0x000C/4)
+#define IDMAC_ALT_SEP_ALPHA (ipu_idmac_reg + 0x0010/4)
+#define IDMAC_CHA_PRI(ch) (ipu_idmac_reg + 0x0014/4 + (ch/32))
+#define IDMAC_WM_EN(ch) (ipu_idmac_reg + 0x001C/4 + (ch/32))
+#define IDMAC_CH_LOCK_EN_1 ({g_ipu_hw_rev >= 2 ? \
+ (ipu_idmac_reg + 0x0024/4) : 0; })
+#define IDMAC_CH_LOCK_EN_2 ({g_ipu_hw_rev >= 2 ? \
+ (ipu_idmac_reg + 0x0028/4) : \
+ (ipu_idmac_reg + 0x0024/4); })
+#define IDMAC_SUB_ADDR_0 ({g_ipu_hw_rev >= 2 ? \
+ (ipu_idmac_reg + 0x002C/4) : \
+ (ipu_idmac_reg + 0x0028/4); })
+#define IDMAC_SUB_ADDR_1 ({g_ipu_hw_rev >= 2 ? \
+ (ipu_idmac_reg + 0x0030/4) : \
+ (ipu_idmac_reg + 0x002C/4); })
+#define IDMAC_SUB_ADDR_2 ({g_ipu_hw_rev >= 2 ? \
+ (ipu_idmac_reg + 0x0034/4) : \
+ (ipu_idmac_reg + 0x0030/4); })
+#define IDMAC_BAND_EN(ch) ({g_ipu_hw_rev >= 2 ? \
+ (ipu_idmac_reg + 0x0040/4 + (ch/32)) : \
+ (ipu_idmac_reg + 0x0034/4 + (ch/32)); })
+#define IDMAC_CHA_BUSY(ch) ({g_ipu_hw_rev >= 2 ? \
+ (ipu_idmac_reg + 0x0100/4 + (ch/32)) : \
+ (ipu_idmac_reg + 0x0040/4 + (ch/32)); })
+
+#define DI_GENERAL(di) (ipu_di_reg[di])
+#define DI_BS_CLKGEN0(di) (ipu_di_reg[di] + 0x0004/4)
+#define DI_BS_CLKGEN1(di) (ipu_di_reg[di] + 0x0008/4)
+
+#define DI_SW_GEN0(di, gen) (ipu_di_reg[di] + 0x000C/4 + (gen - 1))
+#define DI_SW_GEN1(di, gen) (ipu_di_reg[di] + 0x0030/4 + (gen - 1))
+#define DI_STP_REP(di, gen) (ipu_di_reg[di] + 0x0148/4 + (gen - 1)/2)
+#define DI_SYNC_AS_GEN(di) (ipu_di_reg[di] + 0x0054/4)
+#define DI_DW_GEN(di, gen) (ipu_di_reg[di] + 0x0058/4 + gen)
+#define DI_DW_SET(di, gen, set) (ipu_di_reg[di] + 0x0088/4 + gen + 0xC*set)
+#define DI_SER_CONF(di) (ipu_di_reg[di] + 0x015C/4)
+#define DI_SSC(di) (ipu_di_reg[di] + 0x0160/4)
+#define DI_POL(di) (ipu_di_reg[di] + 0x0164/4)
+#define DI_AW0(di) (ipu_di_reg[di] + 0x0168/4)
+#define DI_AW1(di) (ipu_di_reg[di] + 0x016C/4)
+#define DI_SCR_CONF(di) (ipu_di_reg[di] + 0x0170/4)
+#define DI_STAT(di) (ipu_di_reg[di] + 0x0174/4)
+
+#define DMFC_RD_CHAN (ipu_dmfc_reg)
+#define DMFC_WR_CHAN (ipu_dmfc_reg + 0x0004/4)
+#define DMFC_WR_CHAN_DEF (ipu_dmfc_reg + 0x0008/4)
+#define DMFC_DP_CHAN (ipu_dmfc_reg + 0x000C/4)
+#define DMFC_DP_CHAN_DEF (ipu_dmfc_reg + 0x0010/4)
+#define DMFC_GENERAL1 (ipu_dmfc_reg + 0x0014/4)
+#define DMFC_GENERAL2 (ipu_dmfc_reg + 0x0018/4)
+#define DMFC_IC_CTRL (ipu_dmfc_reg + 0x001C/4)
+#define DMFC_STAT (ipu_dmfc_reg + 0x0020/4)
+
+#define DC_MAP_CONF_PTR(n) (ipu_dc_reg + 0x0108/4 + n/2)
+#define DC_MAP_CONF_VAL(n) (ipu_dc_reg + 0x0144/4 + n/2)
+
+#define _RL_CH_2_OFFSET(ch) ((ch == 0) ? 8 : ( \
+ (ch == 1) ? 0x24 : ( \
+ (ch == 2) ? 0x40 : ( \
+ (ch == 5) ? 0x64 : ( \
+ (ch == 6) ? 0x80 : ( \
+ (ch == 8) ? 0x9C : ( \
+ (ch == 9) ? 0xBC : (-1))))))))
+#define DC_RL_CH(ch, evt) (ipu_dc_reg + _RL_CH_2_OFFSET(ch)/4 + evt/2)
+
+#define DC_EVT_NF 0
+#define DC_EVT_NL 1
+#define DC_EVT_EOF 2
+#define DC_EVT_NFIELD 3
+#define DC_EVT_EOL 4
+#define DC_EVT_EOFIELD 5
+#define DC_EVT_NEW_ADDR 6
+#define DC_EVT_NEW_CHAN 7
+#define DC_EVT_NEW_DATA 8
+
+#define DC_EVT_NEW_ADDR_W_0 0
+#define DC_EVT_NEW_ADDR_W_1 1
+#define DC_EVT_NEW_CHAN_W_0 2
+#define DC_EVT_NEW_CHAN_W_1 3
+#define DC_EVT_NEW_DATA_W_0 4
+#define DC_EVT_NEW_DATA_W_1 5
+#define DC_EVT_NEW_ADDR_R_0 6
+#define DC_EVT_NEW_ADDR_R_1 7
+#define DC_EVT_NEW_CHAN_R_0 8
+#define DC_EVT_NEW_CHAN_R_1 9
+#define DC_EVT_NEW_DATA_R_0 10
+#define DC_EVT_NEW_DATA_R_1 11
+#define DC_EVEN_UGDE0 12
+#define DC_ODD_UGDE0 13
+#define DC_EVEN_UGDE1 14
+#define DC_ODD_UGDE1 15
+#define DC_EVEN_UGDE2 16
+#define DC_ODD_UGDE2 17
+#define DC_EVEN_UGDE3 18
+#define DC_ODD_UGDE3 19
+
+#define dc_ch_offset(ch) \
+({ \
+ const u8 _offset[] = { \
+ 0, 0x1C, 0x38, 0x54, 0x58, 0x5C, 0x78, 0, 0x94, 0xB4}; \
+ _offset[ch]; \
+})
+#define DC_WR_CH_CONF(ch) (ipu_dc_reg + dc_ch_offset(ch)/4)
+#define DC_WR_CH_ADDR(ch) (ipu_dc_reg + dc_ch_offset(ch)/4 + 4/4)
+
+#define DC_WR_CH_CONF_1 (ipu_dc_reg + 0x001C/4)
+#define DC_WR_CH_ADDR_1 (ipu_dc_reg + 0x0020/4)
+#define DC_WR_CH_CONF_5 (ipu_dc_reg + 0x005C/4)
+#define DC_WR_CH_ADDR_5 (ipu_dc_reg + 0x0060/4)
+#define DC_GEN (ipu_dc_reg + 0x00D4/4)
+#define DC_DISP_CONF1(disp) (ipu_dc_reg + 0x00D8/4 + disp)
+#define DC_DISP_CONF2(disp) (ipu_dc_reg + 0x00E8/4 + disp)
+#define DC_STAT (ipu_dc_reg + 0x01C8/4)
+#define DC_UGDE_0(evt) (ipu_dc_reg + 0x0174/4 + evt*4)
+#define DC_UGDE_1(evt) (ipu_dc_reg + 0x0178/4 + evt*4)
+#define DC_UGDE_2(evt) (ipu_dc_reg + 0x017C/4 + evt*4)
+#define DC_UGDE_3(evt) (ipu_dc_reg + 0x0180/4 + evt*4)
+
+#define DP_SYNC 0
+#define DP_ASYNC0 0x60
+#define DP_ASYNC1 0xBC
+#define DP_COM_CONF(flow) (ipu_dp_reg + flow/4)
+#define DP_GRAPH_WIND_CTRL(flow) (ipu_dp_reg + 0x0004/4 + flow/4)
+#define DP_FG_POS(flow) (ipu_dp_reg + 0x0008/4 + flow/4)
+#define DP_GAMMA_C(flow, i) (ipu_dp_reg + 0x0014/4 + flow/4 + i)
+#define DP_GAMMA_S(flow, i) (ipu_dp_reg + 0x0034/4 + flow/4 + i)
+#define DP_CSC_A_0(flow) (ipu_dp_reg + 0x0044/4 + flow/4)
+#define DP_CSC_A_1(flow) (ipu_dp_reg + 0x0048/4 + flow/4)
+#define DP_CSC_A_2(flow) (ipu_dp_reg + 0x004C/4 + flow/4)
+#define DP_CSC_A_3(flow) (ipu_dp_reg + 0x0050/4 + flow/4)
+#define DP_CSC_0(flow) (ipu_dp_reg + 0x0054/4 + flow/4)
+#define DP_CSC_1(flow) (ipu_dp_reg + 0x0058/4 + flow/4)
+
+enum {
+ IPU_CONF_CSI0_EN = 0x00000001,
+ IPU_CONF_CSI1_EN = 0x00000002,
+ IPU_CONF_IC_EN = 0x00000004,
+ IPU_CONF_ROT_EN = 0x00000008,
+ IPU_CONF_ISP_EN = 0x00000010,
+ IPU_CONF_DP_EN = 0x00000020,
+ IPU_CONF_DI0_EN = 0x00000040,
+ IPU_CONF_DI1_EN = 0x00000080,
+ IPU_CONF_DMFC_EN = 0x00000400,
+ IPU_CONF_SMFC_EN = 0x00000100,
+ IPU_CONF_DC_EN = 0x00000200,
+ IPU_CONF_VDI_EN = 0x00001000,
+ IPU_CONF_IDMAC_DIS = 0x00400000,
+ IPU_CONF_IC_DMFC_SEL = 0x02000000,
+ IPU_CONF_IC_DMFC_SYNC = 0x04000000,
+ IPU_CONF_VDI_DMFC_SYNC = 0x08000000,
+ IPU_CONF_CSI0_DATA_SOURCE = 0x10000000,
+ IPU_CONF_CSI0_DATA_SOURCE_OFFSET = 28,
+ IPU_CONF_CSI1_DATA_SOURCE = 0x20000000,
+ IPU_CONF_IC_INPUT = 0x40000000,
+ IPU_CONF_CSI_SEL = 0x80000000,
+
+ DI0_COUNTER_RELEASE = 0x01000000,
+ DI1_COUNTER_RELEASE = 0x02000000,
+
+ FS_PRPVF_ROT_SRC_SEL_MASK = 0x00000F00,
+ FS_PRPVF_ROT_SRC_SEL_OFFSET = 8,
+ FS_PRPENC_ROT_SRC_SEL_MASK = 0x0000000F,
+ FS_PRPENC_ROT_SRC_SEL_OFFSET = 0,
+ FS_PP_ROT_SRC_SEL_MASK = 0x000F0000,
+ FS_PP_ROT_SRC_SEL_OFFSET = 16,
+ FS_PP_SRC_SEL_MASK = 0x0000F000,
+ FS_PP_SRC_SEL_OFFSET = 12,
+ FS_PRP_SRC_SEL_MASK = 0x0F000000,
+ FS_PRP_SRC_SEL_OFFSET = 24,
+ FS_VF_IN_VALID = 0x80000000,
+ FS_ENC_IN_VALID = 0x40000000,
+ FS_VDI_SRC_SEL_MASK = 0x30000000,
+ FS_VDI_SRC_SEL_OFFSET = 28,
+
+
+ FS_PRPENC_DEST_SEL_MASK = 0x0000000F,
+ FS_PRPENC_DEST_SEL_OFFSET = 0,
+ FS_PRPVF_DEST_SEL_MASK = 0x000000F0,
+ FS_PRPVF_DEST_SEL_OFFSET = 4,
+ FS_PRPVF_ROT_DEST_SEL_MASK = 0x00000F00,
+ FS_PRPVF_ROT_DEST_SEL_OFFSET = 8,
+ FS_PP_DEST_SEL_MASK = 0x0000F000,
+ FS_PP_DEST_SEL_OFFSET = 12,
+ FS_PP_ROT_DEST_SEL_MASK = 0x000F0000,
+ FS_PP_ROT_DEST_SEL_OFFSET = 16,
+ FS_PRPENC_ROT_DEST_SEL_MASK = 0x00F00000,
+ FS_PRPENC_ROT_DEST_SEL_OFFSET = 20,
+
+ FS_SMFC0_DEST_SEL_MASK = 0x0000000F,
+ FS_SMFC0_DEST_SEL_OFFSET = 0,
+ FS_SMFC1_DEST_SEL_MASK = 0x00000070,
+ FS_SMFC1_DEST_SEL_OFFSET = 4,
+ FS_SMFC2_DEST_SEL_MASK = 0x00000780,
+ FS_SMFC2_DEST_SEL_OFFSET = 7,
+ FS_SMFC3_DEST_SEL_MASK = 0x00003800,
+ FS_SMFC3_DEST_SEL_OFFSET = 11,
+
+ FS_DC1_SRC_SEL_MASK = 0x00F00000,
+ FS_DC1_SRC_SEL_OFFSET = 20,
+ FS_DC2_SRC_SEL_MASK = 0x000F0000,
+ FS_DC2_SRC_SEL_OFFSET = 16,
+ FS_DP_SYNC0_SRC_SEL_MASK = 0x0000000F,
+ FS_DP_SYNC0_SRC_SEL_OFFSET = 0,
+ FS_DP_SYNC1_SRC_SEL_MASK = 0x000000F0,
+ FS_DP_SYNC1_SRC_SEL_OFFSET = 4,
+ FS_DP_ASYNC0_SRC_SEL_MASK = 0x00000F00,
+ FS_DP_ASYNC0_SRC_SEL_OFFSET = 8,
+ FS_DP_ASYNC1_SRC_SEL_MASK = 0x0000F000,
+ FS_DP_ASYNC1_SRC_SEL_OFFSET = 12,
+
+ FS_AUTO_REF_PER_MASK = 0,
+ FS_AUTO_REF_PER_OFFSET = 16,
+
+ TSTAT_VF_MASK = 0x0000000C,
+ TSTAT_VF_OFFSET = 2,
+ TSTAT_VF_ROT_MASK = 0x00000300,
+ TSTAT_VF_ROT_OFFSET = 8,
+ TSTAT_ENC_MASK = 0x00000003,
+ TSTAT_ENC_OFFSET = 0,
+ TSTAT_ENC_ROT_MASK = 0x000000C0,
+ TSTAT_ENC_ROT_OFFSET = 6,
+ TSTAT_PP_MASK = 0x00000030,
+ TSTAT_PP_OFFSET = 4,
+ TSTAT_PP_ROT_MASK = 0x00000C00,
+ TSTAT_PP_ROT_OFFSET = 10,
+
+ TASK_STAT_IDLE = 0,
+ TASK_STAT_ACTIVE = 1,
+ TASK_STAT_WAIT4READY = 2,
+
+ /* Image Converter Register bits */
+ IC_CONF_PRPENC_EN = 0x00000001,
+ IC_CONF_PRPENC_CSC1 = 0x00000002,
+ IC_CONF_PRPENC_ROT_EN = 0x00000004,
+ IC_CONF_PRPVF_EN = 0x00000100,
+ IC_CONF_PRPVF_CSC1 = 0x00000200,
+ IC_CONF_PRPVF_CSC2 = 0x00000400,
+ IC_CONF_PRPVF_CMB = 0x00000800,
+ IC_CONF_PRPVF_ROT_EN = 0x00001000,
+ IC_CONF_PP_EN = 0x00010000,
+ IC_CONF_PP_CSC1 = 0x00020000,
+ IC_CONF_PP_CSC2 = 0x00040000,
+ IC_CONF_PP_CMB = 0x00080000,
+ IC_CONF_PP_ROT_EN = 0x00100000,
+ IC_CONF_IC_GLB_LOC_A = 0x10000000,
+ IC_CONF_KEY_COLOR_EN = 0x20000000,
+ IC_CONF_RWS_EN = 0x40000000,
+ IC_CONF_CSI_MEM_WR_EN = 0x80000000,
+
+ IC_IDMAC_1_CB0_BURST_16 = 0x00000001,
+ IC_IDMAC_1_CB1_BURST_16 = 0x00000002,
+ IC_IDMAC_1_CB2_BURST_16 = 0x00000004,
+ IC_IDMAC_1_CB3_BURST_16 = 0x00000008,
+ IC_IDMAC_1_CB4_BURST_16 = 0x00000010,
+ IC_IDMAC_1_CB5_BURST_16 = 0x00000020,
+ IC_IDMAC_1_CB6_BURST_16 = 0x00000040,
+ IC_IDMAC_1_CB7_BURST_16 = 0x00000080,
+ IC_IDMAC_1_PRPENC_ROT_MASK = 0x00003800,
+ IC_IDMAC_1_PRPENC_ROT_OFFSET = 11,
+ IC_IDMAC_1_PRPVF_ROT_MASK = 0x0001C000,
+ IC_IDMAC_1_PRPVF_ROT_OFFSET = 14,
+ IC_IDMAC_1_PP_ROT_MASK = 0x000E0000,
+ IC_IDMAC_1_PP_ROT_OFFSET = 17,
+ IC_IDMAC_1_PP_FLIP_RS = 0x00400000,
+ IC_IDMAC_1_PRPVF_FLIP_RS = 0x00200000,
+ IC_IDMAC_1_PRPENC_FLIP_RS = 0x00100000,
+
+ IC_IDMAC_2_PRPENC_HEIGHT_MASK = 0x000003FF,
+ IC_IDMAC_2_PRPENC_HEIGHT_OFFSET = 0,
+ IC_IDMAC_2_PRPVF_HEIGHT_MASK = 0x000FFC00,
+ IC_IDMAC_2_PRPVF_HEIGHT_OFFSET = 10,
+ IC_IDMAC_2_PP_HEIGHT_MASK = 0x3FF00000,
+ IC_IDMAC_2_PP_HEIGHT_OFFSET = 20,
+
+ IC_IDMAC_3_PRPENC_WIDTH_MASK = 0x000003FF,
+ IC_IDMAC_3_PRPENC_WIDTH_OFFSET = 0,
+ IC_IDMAC_3_PRPVF_WIDTH_MASK = 0x000FFC00,
+ IC_IDMAC_3_PRPVF_WIDTH_OFFSET = 10,
+ IC_IDMAC_3_PP_WIDTH_MASK = 0x3FF00000,
+ IC_IDMAC_3_PP_WIDTH_OFFSET = 20,
+
+ CSI_SENS_CONF_DATA_FMT_SHIFT = 8,
+ CSI_SENS_CONF_DATA_FMT_MASK = 0x00000700,
+ CSI_SENS_CONF_DATA_FMT_RGB_YUV444 = 0L,
+ CSI_SENS_CONF_DATA_FMT_YUV422_YUYV = 1L,
+ CSI_SENS_CONF_DATA_FMT_YUV422_UYVY = 2L,
+ CSI_SENS_CONF_DATA_FMT_BAYER = 3L,
+ CSI_SENS_CONF_DATA_FMT_RGB565 = 4L,
+ CSI_SENS_CONF_DATA_FMT_RGB555 = 5L,
+ CSI_SENS_CONF_DATA_FMT_RGB444 = 6L,
+ CSI_SENS_CONF_DATA_FMT_JPEG = 7L,
+
+ CSI_SENS_CONF_VSYNC_POL_SHIFT = 0,
+ CSI_SENS_CONF_HSYNC_POL_SHIFT = 1,
+ CSI_SENS_CONF_DATA_POL_SHIFT = 2,
+ CSI_SENS_CONF_PIX_CLK_POL_SHIFT = 3,
+ CSI_SENS_CONF_SENS_PRTCL_MASK = 0x00000070L,
+ CSI_SENS_CONF_SENS_PRTCL_SHIFT = 4,
+ CSI_SENS_CONF_PACK_TIGHT_SHIFT = 7,
+ CSI_SENS_CONF_DATA_WIDTH_SHIFT = 11,
+ CSI_SENS_CONF_EXT_VSYNC_SHIFT = 15,
+ CSI_SENS_CONF_DIVRATIO_SHIFT = 16,
+
+ CSI_SENS_CONF_DIVRATIO_MASK = 0x00FF0000L,
+ CSI_SENS_CONF_DATA_DEST_SHIFT = 24,
+ CSI_SENS_CONF_DATA_DEST_MASK = 0x07000000L,
+ CSI_SENS_CONF_JPEG8_EN_SHIFT = 27,
+ CSI_SENS_CONF_JPEG_EN_SHIFT = 28,
+ CSI_SENS_CONF_FORCE_EOF_SHIFT = 29,
+ CSI_SENS_CONF_DATA_EN_POL_SHIFT = 31,
+
+ CSI_DATA_DEST_ISP = 1L,
+ CSI_DATA_DEST_IC = 2L,
+ CSI_DATA_DEST_IDMAC = 4L,
+
+ CSI_CCIR_ERR_DET_EN = 0x01000000L,
+ CSI_HORI_DOWNSIZE_EN = 0x80000000L,
+ CSI_VERT_DOWNSIZE_EN = 0x40000000L,
+ CSI_TEST_GEN_MODE_EN = 0x01000000L,
+
+ CSI_HSC_MASK = 0x1FFF0000,
+ CSI_HSC_SHIFT = 16,
+ CSI_VSC_MASK = 0x00000FFF,
+ CSI_VSC_SHIFT = 0,
+
+ CSI_TEST_GEN_R_MASK = 0x000000FFL,
+ CSI_TEST_GEN_R_SHIFT = 0,
+ CSI_TEST_GEN_G_MASK = 0x0000FF00L,
+ CSI_TEST_GEN_G_SHIFT = 8,
+ CSI_TEST_GEN_B_MASK = 0x00FF0000L,
+ CSI_TEST_GEN_B_SHIFT = 16,
+
+ CSI_MIPI_DI0_MASK = 0x000000FFL,
+ CSI_MIPI_DI0_SHIFT = 0,
+ CSI_MIPI_DI1_MASK = 0x0000FF00L,
+ CSI_MIPI_DI1_SHIFT = 8,
+ CSI_MIPI_DI2_MASK = 0x00FF0000L,
+ CSI_MIPI_DI2_SHIFT = 16,
+ CSI_MIPI_DI3_MASK = 0xFF000000L,
+ CSI_MIPI_DI3_SHIFT = 24,
+
+ CSI_MAX_RATIO_SKIP_ISP_MASK = 0x00070000L,
+ CSI_MAX_RATIO_SKIP_ISP_SHIFT = 16,
+ CSI_SKIP_ISP_MASK = 0x00F80000L,
+ CSI_SKIP_ISP_SHIFT = 19,
+ CSI_MAX_RATIO_SKIP_SMFC_MASK = 0x00000007L,
+ CSI_MAX_RATIO_SKIP_SMFC_SHIFT = 0,
+ CSI_SKIP_SMFC_MASK = 0x000000F8L,
+ CSI_SKIP_SMFC_SHIFT = 3,
+ CSI_ID_2_SKIP_MASK = 0x00000300L,
+ CSI_ID_2_SKIP_SHIFT = 8,
+
+ CSI_COLOR_FIRST_ROW_MASK = 0x00000002L,
+ CSI_COLOR_FIRST_COMP_MASK = 0x00000001L,
+
+ SMFC_MAP_CH0_MASK = 0x00000007L,
+ SMFC_MAP_CH0_SHIFT = 0,
+ SMFC_MAP_CH1_MASK = 0x00000038L,
+ SMFC_MAP_CH1_SHIFT = 3,
+ SMFC_MAP_CH2_MASK = 0x000001C0L,
+ SMFC_MAP_CH2_SHIFT = 6,
+ SMFC_MAP_CH3_MASK = 0x00000E00L,
+ SMFC_MAP_CH3_SHIFT = 9,
+
+ SMFC_WM0_SET_MASK = 0x00000007L,
+ SMFC_WM0_SET_SHIFT = 0,
+ SMFC_WM1_SET_MASK = 0x000001C0L,
+ SMFC_WM1_SET_SHIFT = 6,
+ SMFC_WM2_SET_MASK = 0x00070000L,
+ SMFC_WM2_SET_SHIFT = 16,
+ SMFC_WM3_SET_MASK = 0x01C00000L,
+ SMFC_WM3_SET_SHIFT = 22,
+
+ SMFC_WM0_CLR_MASK = 0x00000038L,
+ SMFC_WM0_CLR_SHIFT = 3,
+ SMFC_WM1_CLR_MASK = 0x00000E00L,
+ SMFC_WM1_CLR_SHIFT = 9,
+ SMFC_WM2_CLR_MASK = 0x00380000L,
+ SMFC_WM2_CLR_SHIFT = 19,
+ SMFC_WM3_CLR_MASK = 0x0E000000L,
+ SMFC_WM3_CLR_SHIFT = 25,
+
+ SMFC_BS0_MASK = 0x0000000FL,
+ SMFC_BS0_SHIFT = 0,
+ SMFC_BS1_MASK = 0x000000F0L,
+ SMFC_BS1_SHIFT = 4,
+ SMFC_BS2_MASK = 0x00000F00L,
+ SMFC_BS2_SHIFT = 8,
+ SMFC_BS3_MASK = 0x0000F000L,
+ SMFC_BS3_SHIFT = 12,
+
+ PF_CONF_TYPE_MASK = 0x00000007,
+ PF_CONF_TYPE_SHIFT = 0,
+ PF_CONF_PAUSE_EN = 0x00000010,
+ PF_CONF_RESET = 0x00008000,
+ PF_CONF_PAUSE_ROW_MASK = 0x00FF0000,
+ PF_CONF_PAUSE_ROW_SHIFT = 16,
+
+ DI_DW_GEN_ACCESS_SIZE_OFFSET = 24,
+ DI_DW_GEN_COMPONENT_SIZE_OFFSET = 16,
+
+ DI_GEN_DI_CLK_EXT = 0x100000,
+ DI_GEN_POLARITY_DISP_CLK = 0x00020000,
+ DI_GEN_POLARITY_1 = 0x00000001,
+ DI_GEN_POLARITY_2 = 0x00000002,
+ DI_GEN_POLARITY_3 = 0x00000004,
+ DI_GEN_POLARITY_4 = 0x00000008,
+ DI_GEN_POLARITY_5 = 0x00000010,
+ DI_GEN_POLARITY_6 = 0x00000020,
+ DI_GEN_POLARITY_7 = 0x00000040,
+ DI_GEN_POLARITY_8 = 0x00000080,
+
+ DI_POL_DRDY_DATA_POLARITY = 0x00000080,
+ DI_POL_DRDY_POLARITY_15 = 0x00000010,
+
+ DI_VSYNC_SEL_OFFSET = 13,
+
+ DC_WR_CH_CONF_FIELD_MODE = 0x00000200,
+ DC_WR_CH_CONF_PROG_TYPE_OFFSET = 5,
+ DC_WR_CH_CONF_PROG_TYPE_MASK = 0x000000E0,
+ DC_WR_CH_CONF_PROG_DI_ID = 0x00000004,
+ DC_WR_CH_CONF_PROG_DISP_ID_OFFSET = 3,
+ DC_WR_CH_CONF_PROG_DISP_ID_MASK = 0x00000018,
+
+ DC_UGDE_0_ODD_EN = 0x02000000,
+ DC_UGDE_0_ID_CODED_MASK = 0x00000007,
+ DC_UGDE_0_ID_CODED_OFFSET = 0,
+ DC_UGDE_0_EV_PRIORITY_MASK = 0x00000078,
+ DC_UGDE_0_EV_PRIORITY_OFFSET = 3,
+
+ DP_COM_CONF_FG_EN = 0x00000001,
+ DP_COM_CONF_GWSEL = 0x00000002,
+ DP_COM_CONF_GWAM = 0x00000004,
+ DP_COM_CONF_GWCKE = 0x00000008,
+ DP_COM_CONF_CSC_DEF_MASK = 0x00000300,
+ DP_COM_CONF_CSC_DEF_OFFSET = 8,
+ DP_COM_CONF_CSC_DEF_FG = 0x00000300,
+ DP_COM_CONF_CSC_DEF_BG = 0x00000200,
+ DP_COM_CONF_CSC_DEF_BOTH = 0x00000100,
+ DP_COM_CONF_GAMMA_EN = 0x00001000,
+ DP_COM_CONF_GAMMA_YUV_EN = 0x00002000,
+
+ DI_SER_CONF_LLA_SER_ACCESS = 0x00000020,
+ DI_SER_CONF_SERIAL_CLK_POL = 0x00000010,
+ DI_SER_CONF_SERIAL_DATA_POL = 0x00000008,
+ DI_SER_CONF_SERIAL_RS_POL = 0x00000004,
+ DI_SER_CONF_SERIAL_CS_POL = 0x00000002,
+ DI_SER_CONF_WAIT4SERIAL = 0x00000001,
+
+ VDI_C_CH_420 = 0x00000000,
+ VDI_C_CH_422 = 0x00000002,
+ VDI_C_MOT_SEL_FULL = 0x00000008,
+ VDI_C_MOT_SEL_LOW = 0x00000004,
+ VDI_C_MOT_SEL_MED = 0x00000000,
+ VDI_C_BURST_SIZE1_4 = 0x00000030,
+ VDI_C_BURST_SIZE2_4 = 0x00000300,
+ VDI_C_BURST_SIZE3_4 = 0x00003000,
+ VDI_C_VWM1_SET_1 = 0x00000000,
+ VDI_C_VWM1_CLR_2 = 0x00080000,
+ VDI_C_VWM3_SET_1 = 0x00000000,
+ VDI_C_VWM3_CLR_2 = 0x02000000,
+ VDI_C_TOP_FIELD_MAN_1 = 0x40000000,
+ VDI_C_TOP_FIELD_AUTO_1 = 0x80000000,
+};
+
+enum di_pins {
+ DI_PIN11 = 0,
+ DI_PIN12 = 1,
+ DI_PIN13 = 2,
+ DI_PIN14 = 3,
+ DI_PIN15 = 4,
+ DI_PIN16 = 5,
+ DI_PIN17 = 6,
+ DI_PIN_CS = 7,
+
+ DI_PIN_SER_CLK = 0,
+ DI_PIN_SER_RS = 1,
+};
+
+enum di_sync_wave {
+ DI_SYNC_NONE = -1,
+ DI_SYNC_CLK = 0,
+ DI_SYNC_INT_HSYNC = 1,
+ DI_SYNC_HSYNC = 2,
+ DI_SYNC_VSYNC = 3,
+ DI_SYNC_DE = 5,
+};
+
+/* DC template opcodes */
+#define WROD(lf) (0x18 | (lf << 1))
+#define WRG (0x01)
+
+#endif
diff --git a/drivers/mxc/mcu_pmic/Kconfig b/drivers/mxc/mcu_pmic/Kconfig
new file mode 100644
index 000000000000..cb6815e92d86
--- /dev/null
+++ b/drivers/mxc/mcu_pmic/Kconfig
@@ -0,0 +1,17 @@
+#
+# PMIC Modules configuration
+#
+
+config MXC_PMIC_MC9S08DZ60
+ tristate "MC9S08DZ60 PMIC"
+ depends on ARCH_MXC && I2C
+ ---help---
+ This is the MXC MC9S08DZ60(MCU) PMIC support.
+
+config MXC_MC9SDZ60_RTC
+ tristate "MC9SDZ60 Real Time Clock (RTC) support"
+ depends on MXC_PMIC_MC9SDZ60
+ ---help---
+ This is the MC9SDZ60 RTC module driver. This module provides kernel API
+ for RTC part of MC9SDZ60.
+ If you want MC9SDZ60 RTC support, you should say Y here
diff --git a/drivers/mxc/mcu_pmic/Makefile b/drivers/mxc/mcu_pmic/Makefile
new file mode 100644
index 000000000000..96aae94d5290
--- /dev/null
+++ b/drivers/mxc/mcu_pmic/Makefile
@@ -0,0 +1,6 @@
+#
+# Makefile for the mc9sdz60 pmic drivers.
+#
+
+obj-$(CONFIG_MXC_PMIC_MC9SDZ60) += pmic_mc9sdz60_mod.o
+pmic_mc9sdz60_mod-objs := mcu_pmic_core.o max8660.o mc9s08dz60.o mcu_pmic_gpio.o
diff --git a/drivers/mxc/mcu_pmic/max8660.c b/drivers/mxc/mcu_pmic/max8660.c
new file mode 100644
index 000000000000..17fe22958ca9
--- /dev/null
+++ b/drivers/mxc/mcu_pmic/max8660.c
@@ -0,0 +1,154 @@
+/*
+ * Copyright 2008-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file max8660.c
+ * @brief Driver for max8660
+ *
+ * @ingroup pmic
+ */
+
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/init.h>
+#include <linux/delay.h>
+#include <linux/spinlock.h>
+#include <linux/proc_fs.h>
+#include <linux/i2c.h>
+#include <linux/mfd/mc9s08dz60/pmic.h>
+#include <asm/uaccess.h>
+#include "mcu_pmic_core.h"
+#include "max8660.h"
+
+/* I2C bus id and device address of mcu */
+#define I2C1_BUS 0
+#define MAX8660_I2C_ADDR 0x68
+
+static struct i2c_client *max8660_i2c_client;
+
+ /* reg names for max8660
+ REG_MAX8660_OUTPUT_ENABLE_1,
+ REG_MAX8660_OUTPUT_ENABLE_2,
+ REG_MAX8660_VOLT__CHANGE_1,
+ REG_MAX8660_V3_TARGET_VOLT_1,
+ REG_MAX8660_V3_TARGET_VOLT_2,
+ REG_MAX8660_V4_TARGET_VOLT_1,
+ REG_MAX8660_V4_TARGET_VOLT_2,
+ REG_MAX8660_V5_TARGET_VOLT_1,
+ REG_MAX8660_V5_TARGET_VOLT_2,
+ REG_MAX8660_V6V7_TARGET_VOLT,
+ REG_MAX8660_FORCE_PWM
+ */
+
+ /* save down the reg values for the device is write only */
+static u8 max8660_reg_value_table[] = {
+ 0x0, 0x0, 0x0, 0x17, 0x17, 0x1F, 0x1F, 0x04, 0x04, 0x0, 0x0
+};
+static int max8660_dev_present;
+
+int is_max8660_present(void)
+{
+ return max8660_dev_present;
+}
+
+int max8660_get_buffered_reg_val(int reg_name, u8 *value)
+{
+ if (!max8660_dev_present)
+ return -1;
+ /* outof range */
+ if (reg_name < REG_MAX8660_OUTPUT_ENABLE_1
+ || reg_name > REG_MAX8660_FORCE_PWM)
+ return -1;
+ *value =
+ max8660_reg_value_table[reg_name - REG_MAX8660_OUTPUT_ENABLE_1];
+ return 0;
+}
+int max8660_save_buffered_reg_val(int reg_name, u8 value)
+{
+
+ /* outof range */
+ if (reg_name < REG_MAX8660_OUTPUT_ENABLE_1
+ || reg_name > REG_MAX8660_FORCE_PWM)
+ return -1;
+ max8660_reg_value_table[reg_name - REG_MAX8660_OUTPUT_ENABLE_1] = value;
+ return 0;
+}
+
+int max8660_write_reg(u8 reg, u8 value)
+{
+ if (max8660_dev_present && (i2c_smbus_write_byte_data(
+ max8660_i2c_client, reg, value) >= 0))
+ return 0;
+ return -1;
+}
+
+/*!
+ * max8660 I2C attach function
+ *
+ * @param adapter struct i2c_client *
+ * @return 0 for max8660 successfully detected
+ */
+static int max8660_probe(struct i2c_client *client,
+ const struct i2c_device_id *id)
+{
+ int retval;
+ max8660_i2c_client = client;
+ retval = i2c_smbus_write_byte_data(max8660_i2c_client,
+ MAX8660_OUTPUT_ENABLE_1, 0);
+ if (retval == 0) {
+ max8660_dev_present = 1;
+ pr_info("max8660 probed !\n");
+ } else {
+ max8660_dev_present = 0;
+ pr_info("max8660 not detected!\n");
+ }
+ return retval;
+}
+
+/*!
+ * max8660 I2C detach function
+ *
+ * @param client struct i2c_client *
+ * @return 0
+ */
+static int max8660_remove(struct i2c_client *client)
+{
+ return 0;
+}
+
+static const struct i2c_device_id max8660_id[] = {
+ { "max8660", 0 },
+ {},
+};
+MODULE_DEVICE_TABLE(i2c, max8660_id);
+
+static struct i2c_driver max8660_i2c_driver = {
+ .driver = {
+ .owner = THIS_MODULE,
+ .name = "max8660",},
+ .probe = max8660_probe,
+ .remove = max8660_remove,
+ .id_table = max8660_id,
+};
+
+/* called by pmic core when init*/
+int max8660_init(void)
+{
+ int err;
+ err = i2c_add_driver(&max8660_i2c_driver);
+ return err;
+}
+void max8660_exit(void)
+{
+ i2c_del_driver(&max8660_i2c_driver);
+}
diff --git a/drivers/mxc/mcu_pmic/max8660.h b/drivers/mxc/mcu_pmic/max8660.h
new file mode 100644
index 000000000000..370ca5f66a28
--- /dev/null
+++ b/drivers/mxc/mcu_pmic/max8660.h
@@ -0,0 +1,49 @@
+/*
+ * Copyright 2008-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file max8660.h
+ * @brief Driver for max8660
+ *
+ * @ingroup pmic
+ */
+#ifndef _MAX8660_H_
+#define _MAX8660_H_
+
+#ifdef __KERNEL__
+
+#define MAX8660_OUTPUT_ENABLE_1 0x10
+#define MAX8660_OUTPUT_ENABLE_2 0x12
+#define MAX8660_VOLT_CHANGE_CONTROL 0x20
+#define MAX8660_V3_TARGET_VOLT_1 0x23
+#define MAX8660_V3_TARGET_VOLT_2 0x24
+#define MAX8660_V4_TARGET_VOLT_1 0x29
+#define MAX8660_V4_TARGET_VOLT_2 0x2A
+#define MAX8660_V5_TARGET_VOLT_1 0x32
+#define MAX8660_V5_TARGET_VOLT_2 0x33
+#define MAX8660_V6V7_TARGET_VOLT 0x39
+#define MAX8660_FORCE_PWM 0x80
+
+int is_max8660_present(void);
+int max8660_write_reg(u8 reg, u8 value);
+int max8660_save_buffered_reg_val(int reg_name, u8 value);
+int max8660_get_buffered_reg_val(int reg_name, u8 *value);
+int max8660_init(void);
+void max8660_exit(void);
+
+extern int reg_max8660_probe(void);
+extern int reg_max8660_remove(void);
+
+#endif /* __KERNEL__ */
+
+#endif /* _MAX8660_H_ */
diff --git a/drivers/mxc/mcu_pmic/mc9s08dz60.c b/drivers/mxc/mcu_pmic/mc9s08dz60.c
new file mode 100644
index 000000000000..c51ffcd5ba7d
--- /dev/null
+++ b/drivers/mxc/mcu_pmic/mc9s08dz60.c
@@ -0,0 +1,197 @@
+/*
+ * Copyright 2008-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+ /*!
+ * @file mc9s08dz60.c
+ * @brief Driver for MC9sdz60
+ *
+ * @ingroup pmic
+ */
+
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/init.h>
+#include <linux/delay.h>
+#include <linux/spinlock.h>
+#include <linux/proc_fs.h>
+#include <linux/i2c.h>
+#include <linux/mfd/mc9s08dz60/core.h>
+
+#include <mach/clock.h>
+#include <linux/uaccess.h>
+#include "mc9s08dz60.h"
+
+/* I2C bus id and device address of mcu */
+#define I2C1_BUS 0
+#define MC9S08DZ60_I2C_ADDR 0xD2 /* 7bits I2C address */
+static struct i2c_client *mc9s08dz60_i2c_client;
+
+int mc9s08dz60_read_reg(u8 reg, u8 *value)
+{
+ *value = (u8) i2c_smbus_read_byte_data(mc9s08dz60_i2c_client, reg);
+ return 0;
+}
+
+int mc9s08dz60_write_reg(u8 reg, u8 value)
+{
+ if (i2c_smbus_write_byte_data(mc9s08dz60_i2c_client, reg, value) < 0)
+ return -1;
+ return 0;
+}
+
+static ssize_t mc9s08dz60_show(struct device *dev,
+ struct device_attribute *attr, char *buf)
+{
+ unsigned int i;
+ u8 value;
+ int offset = 7;
+
+ for (i = 0; i < 7; i++) {
+ mc9s08dz60_read_reg(i, &value);
+ pr_info("reg%02x: %02x\t", i, value);
+ mc9s08dz60_read_reg(i + offset, &value);
+ pr_info("reg%02x: %02x\t", i + offset, value);
+ mc9s08dz60_read_reg(i + offset * 2, &value);
+ pr_info("reg%02x: %02x\t", i + offset * 2, value);
+ mc9s08dz60_read_reg(i + offset * 3, &value);
+ pr_info("reg%02x: %02x\t", i + offset * 3, value);
+ mc9s08dz60_read_reg(i + offset * 4, &value);
+ pr_info("reg%02x: %02x\t", i + offset * 4, value);
+ mc9s08dz60_read_reg(i + offset * 5, &value);
+ pr_info("reg%02x: %02x\n", i + offset * 5, value);
+ }
+
+ return 0;
+}
+
+static ssize_t mc9s08dz60_store(struct device *dev,
+ struct device_attribute *attr, const char *buf,
+ size_t count)
+{
+ int ret;
+ unsigned long reg, new_value;
+ u8 value;
+ char *p;
+
+ strict_strtoul(buf, 16, &reg);
+
+ p = NULL;
+ p = memchr(buf, ' ', count);
+
+ if (p == NULL) {
+ mc9s08dz60_read_reg(reg, &value);
+ pr_info("reg%02lu: %06x\n", reg, value);
+ return count;
+ }
+
+ p += 1;
+
+ strict_strtoul(p, 16, &new_value);
+ value = new_value;
+
+ ret = mc9s08dz60_write_reg((u8)reg, value);
+ if (ret == 0)
+ pr_info("write reg%02lx: %06x\n", reg, value);
+ else
+ pr_info("register update failed\n");
+
+ return count;
+}
+
+static struct device_attribute mc9s08dz60_dev_attr = {
+ .attr = {
+ .name = "mc9s08dz60_ctl",
+ .mode = S_IRUSR | S_IWUSR,
+ },
+ .show = mc9s08dz60_show,
+ .store = mc9s08dz60_store,
+};
+
+
+/*!
+ * mc9s08dz60 I2C attach function
+ *
+ * @param adapter struct i2c_adapter *
+ * @return 0
+ */
+static int mc9s08dz60_probe(struct i2c_client *client,
+ const struct i2c_device_id *id)
+{
+ int ret = 0;
+ struct mc9s08dz60 *mc9s08dz60 = NULL;
+ struct mc9s08dz60_platform_data *plat_data = client->dev.platform_data;
+ pr_info("mc9s08dz60 probing .... \n");
+
+ mc9s08dz60 = kzalloc(sizeof(struct mc9s08dz60), GFP_KERNEL);
+ if (mc9s08dz60 == NULL)
+ return -ENOMEM;
+
+ i2c_set_clientdata(client, mc9s08dz60);
+ mc9s08dz60->dev = &client->dev;
+ mc9s08dz60->i2c_client = client;
+
+ if (plat_data && plat_data->init) {
+ ret = plat_data->init(mc9s08dz60);
+ if (ret != 0)
+ return -1;
+ }
+
+ ret = device_create_file(&client->dev, &mc9s08dz60_dev_attr);
+ if (ret)
+ dev_err(&client->dev, "create device file failed!\n");
+
+
+ mc9s08dz60_i2c_client = client;
+
+ return 0;
+}
+
+/*!
+ * mc9s08dz60 I2C detach function
+ *
+ * @param client struct i2c_client *
+ * @return 0
+ */
+static int mc9s08dz60_remove(struct i2c_client *client)
+{
+ return 0;
+}
+
+static const struct i2c_device_id mc9s08dz60_id[] = {
+ { "mc9s08dz60", 0 },
+ {},
+};
+MODULE_DEVICE_TABLE(i2c, mc9s08dz60_id);
+
+static struct i2c_driver mc9s08dz60_i2c_driver = {
+ .driver = {.owner = THIS_MODULE,
+ .name = "mc9s08dz60",
+ },
+ .probe = mc9s08dz60_probe,
+ .remove = mc9s08dz60_remove,
+ .id_table = mc9s08dz60_id,
+};
+
+#define SET_BIT_IN_BYTE(byte, pos) (byte |= (0x01 << pos))
+#define CLEAR_BIT_IN_BYTE(byte, pos) (byte &= ~(0x01 << pos))
+
+int mc9s08dz60_init(void)
+{
+ int err;
+ err = i2c_add_driver(&mc9s08dz60_i2c_driver);
+ return err;
+}
+void mc9s08dz60_exit(void)
+{
+ i2c_del_driver(&mc9s08dz60_i2c_driver);
+}
diff --git a/drivers/mxc/mcu_pmic/mc9s08dz60.h b/drivers/mxc/mcu_pmic/mc9s08dz60.h
new file mode 100644
index 000000000000..382d905cd3d1
--- /dev/null
+++ b/drivers/mxc/mcu_pmic/mc9s08dz60.h
@@ -0,0 +1,73 @@
+/*
+ * Copyright 2008-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file mc9s08dz60.h
+ * @brief Driver for mc9s08dz60
+ *
+ * @ingroup pmic
+ */
+#ifndef _MC9SDZ60_H_
+#define _MC9SDZ60_H_
+
+#define MCU_VERSION 0x00
+/*#define Reserved 0x01*/
+#define MCU_SECS 0x02
+#define MCU_MINS 0x03
+#define MCU_HRS 0x04
+#define MCU_DAY 0x05
+#define MCU_DATE 0x06
+#define MCU_MONTH 0x07
+#define MCU_YEAR 0x08
+
+#define MCU_ALARM_SECS 0x09
+#define MCU_ALARM_MINS 0x0A
+#define MCU_ALARM_HRS 0x0B
+/* #define Reserved 0x0C*/
+/* #define Reserved 0x0D*/
+#define MCU_TS_CONTROL 0x0E
+#define MCU_X_LOW 0x0F
+#define MCU_Y_LOW 0x10
+#define MCU_XY_HIGH 0x11
+#define MCU_X_LEFT_LOW 0x12
+#define MCU_X_LEFT_HIGH 0x13
+#define MCU_X_RIGHT 0x14
+#define MCU_Y_TOP_LOW 0x15
+#define MCU_Y_TOP_HIGH 0x16
+#define MCU_Y_BOTTOM 0x17
+/* #define Reserved 0x18*/
+/* #define Reserved 0x19*/
+#define MCU_RESET_1 0x1A
+#define MCU_RESET_2 0x1B
+#define MCU_POWER_CTL 0x1C
+#define MCU_DELAY_CONFIG 0x1D
+/* #define Reserved 0x1E */
+/* #define Reserved 0x1F */
+#define MCU_GPIO_1 0x20
+#define MCU_GPIO_2 0x21
+#define MCU_KPD_1 0x22
+#define MCU_KPD_2 0x23
+#define MCU_KPD_CONTROL 0x24
+#define MCU_INT_ENABLE_1 0x25
+#define MCU_INT_ENABLE_2 0x26
+#define MCU_INT_FLAG_1 0x27
+#define MCU_INT_FLAG_2 0x28
+#define MCU_DES_FLAG 0x29
+int mc9s08dz60_read_reg(u8 reg, u8 *value);
+int mc9s08dz60_write_reg(u8 reg, u8 value);
+int mc9s08dz60_init(void);
+void mc9s08dz60_exit(void);
+
+extern int reg_mc9s08dz60_probe(void);
+extern int reg_mc9s08dz60_remove(void);
+
+#endif /* _MC9SDZ60_H_ */
diff --git a/drivers/mxc/mcu_pmic/mcu_pmic_core.c b/drivers/mxc/mcu_pmic/mcu_pmic_core.c
new file mode 100644
index 000000000000..47c16d1659ca
--- /dev/null
+++ b/drivers/mxc/mcu_pmic/mcu_pmic_core.c
@@ -0,0 +1,226 @@
+/*
+ * Copyright 2008-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file mc9s08dz60/mcu_pmic_core.c
+ * @brief This is the main file of mc9s08dz60 Power Control driver.
+ *
+ * @ingroup PMIC_POWER
+ */
+
+/*
+ * Includes
+ */
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/init.h>
+#include <linux/slab.h>
+#include <linux/platform_device.h>
+#include <linux/interrupt.h>
+#include <linux/irq.h>
+#include <linux/mfd/mc9s08dz60/pmic.h>
+#include <asm/ioctl.h>
+#include <asm/uaccess.h>
+#include <mach/gpio.h>
+
+#include "mcu_pmic_core.h"
+#include "mc9s08dz60.h"
+#include "max8660.h"
+
+/* bitfield macros for mcu pmic*/
+#define SET_BIT_IN_BYTE(byte, pos) (byte |= (0x01 << pos))
+#define CLEAR_BIT_IN_BYTE(byte, pos) (byte &= ~(0x01 << pos))
+
+
+/* map reg names (enum pmic_reg in pmic_external.h) to real addr*/
+const static u8 mcu_pmic_reg_addr_table[] = {
+ MCU_VERSION,
+ MCU_SECS,
+ MCU_MINS,
+ MCU_HRS,
+ MCU_DAY,
+ MCU_DATE,
+ MCU_MONTH,
+ MCU_YEAR,
+ MCU_ALARM_SECS,
+ MCU_ALARM_MINS,
+ MCU_ALARM_HRS,
+ MCU_TS_CONTROL,
+ MCU_X_LOW,
+ MCU_Y_LOW,
+ MCU_XY_HIGH,
+ MCU_X_LEFT_LOW,
+ MCU_X_LEFT_HIGH,
+ MCU_X_RIGHT,
+ MCU_Y_TOP_LOW,
+ MCU_Y_TOP_HIGH,
+ MCU_Y_BOTTOM,
+ MCU_RESET_1,
+ MCU_RESET_2,
+ MCU_POWER_CTL,
+ MCU_DELAY_CONFIG,
+ MCU_GPIO_1,
+ MCU_GPIO_2,
+ MCU_KPD_1,
+ MCU_KPD_2,
+ MCU_KPD_CONTROL,
+ MCU_INT_ENABLE_1,
+ MCU_INT_ENABLE_2,
+ MCU_INT_FLAG_1,
+ MCU_INT_FLAG_2,
+ MCU_DES_FLAG,
+ MAX8660_OUTPUT_ENABLE_1,
+ MAX8660_OUTPUT_ENABLE_2,
+ MAX8660_VOLT_CHANGE_CONTROL,
+ MAX8660_V3_TARGET_VOLT_1,
+ MAX8660_V3_TARGET_VOLT_2,
+ MAX8660_V4_TARGET_VOLT_1,
+ MAX8660_V4_TARGET_VOLT_2,
+ MAX8660_V5_TARGET_VOLT_1,
+ MAX8660_V5_TARGET_VOLT_2,
+ MAX8660_V6V7_TARGET_VOLT,
+ MAX8660_FORCE_PWM
+};
+
+static int mcu_pmic_read(int reg_num, unsigned int *reg_val)
+{
+ int ret;
+ u8 value = 0;
+ /* mcu ops */
+ if (reg_num >= REG_MCU_VERSION && reg_num <= REG_MCU_DES_FLAG)
+ ret = mc9s08dz60_read_reg(mcu_pmic_reg_addr_table[reg_num],
+ &value);
+ else if (reg_num >= REG_MAX8660_OUTPUT_ENABLE_1
+ && reg_num <= REG_MAX8660_FORCE_PWM)
+ ret = max8660_get_buffered_reg_val(reg_num, &value);
+ else
+ return -1;
+
+ if (ret < 0)
+ return -1;
+ *reg_val = value;
+
+ return 0;
+}
+
+static int mcu_pmic_write(int reg_num, const unsigned int reg_val)
+{
+ int ret;
+ u8 value = reg_val;
+ /* mcu ops */
+ if (reg_num >= REG_MCU_VERSION && reg_num <= REG_MCU_DES_FLAG) {
+
+ ret =
+ mc9s08dz60_write_reg(
+ mcu_pmic_reg_addr_table[reg_num], value);
+ if (ret < 0)
+ return -1;
+ } else if (reg_num >= REG_MAX8660_OUTPUT_ENABLE_1
+ && reg_num <= REG_MAX8660_FORCE_PWM) {
+ ret =
+ max8660_write_reg(mcu_pmic_reg_addr_table[reg_num], value);
+
+ if (ret < 0)
+ return -1;
+
+ ret = max8660_save_buffered_reg_val(reg_num, value);
+ } else
+ return -1;
+
+ return 0;
+}
+
+int mcu_pmic_read_reg(int reg, unsigned int *reg_value,
+ unsigned int reg_mask)
+{
+ int ret = 0;
+ unsigned int temp = 0;
+
+ ret = mcu_pmic_read(reg, &temp);
+ if (ret != 0)
+ return -1;
+ *reg_value = (temp & reg_mask);
+
+ pr_debug("Read REG[ %d ] = 0x%x\n", reg, *reg_value);
+
+ return ret;
+}
+
+
+int mcu_pmic_write_reg(int reg, unsigned int reg_value,
+ unsigned int reg_mask)
+{
+ int ret = 0;
+ unsigned int temp = 0;
+
+ ret = mcu_pmic_read(reg, &temp);
+ if (ret != 0)
+ return -1;
+ temp = (temp & (~reg_mask)) | reg_value;
+
+ ret = mcu_pmic_write(reg, temp);
+ if (ret != 0)
+ return -1;
+
+ pr_debug("Write REG[ %d ] = 0x%x\n", reg, reg_value);
+
+ return ret;
+}
+
+/*!
+ * make max8660 - mc9s08dz60 enter low-power mode
+ */
+static void pmic_power_off(void)
+{
+ mcu_pmic_write_reg(REG_MCU_POWER_CTL, 0x10, 0x10);
+}
+
+static int __init mcu_pmic_init(void)
+{
+ int err;
+
+ /* init chips */
+ err = max8660_init();
+ if (err)
+ goto fail1;
+
+ err = mc9s08dz60_init();
+ if (err)
+ goto fail1;
+
+ if (is_max8660_present()) {
+ pr_info("max8660 is present \n");
+ pm_power_off = pmic_power_off;
+ } else
+ pr_debug("max8660 is not present\n");
+ pr_info("mcu_pmic_init completed!\n");
+ return 0;
+
+fail1:
+ pr_err("mcu_pmic_init failed!\n");
+ return err;
+}
+
+static void __exit mcu_pmic_exit(void)
+{
+ reg_max8660_remove();
+ mc9s08dz60_exit();
+ max8660_exit();
+}
+
+subsys_initcall_sync(mcu_pmic_init);
+module_exit(mcu_pmic_exit);
+
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_DESCRIPTION("mcu pmic driver");
+MODULE_LICENSE("GPL");
diff --git a/drivers/mxc/mcu_pmic/mcu_pmic_core.h b/drivers/mxc/mcu_pmic/mcu_pmic_core.h
new file mode 100644
index 000000000000..969e84ff5df3
--- /dev/null
+++ b/drivers/mxc/mcu_pmic/mcu_pmic_core.h
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2009-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file mcu_pmic_core.h
+ * @brief Driver for max8660
+ *
+ * @ingroup pmic
+ */
+#ifndef _MCU_PMIC_CORE_H_
+#define _MCU_PMIC_CORE_H_
+
+#include <linux/mfd/mc9s08dz60/pmic.h>
+
+#define MAX8660_REG_START (REG_MCU_DES_FLAG + 1)
+enum {
+
+ /* reg names for max8660 */
+ REG_MAX8660_OUTPUT_ENABLE_1 = MAX8660_REG_START,
+ REG_MAX8660_OUTPUT_ENABLE_2,
+ REG_MAX8660_VOLT_CHANGE_CONTROL_1,
+ REG_MAX8660_V3_TARGET_VOLT_1,
+ REG_MAX8660_V3_TARGET_VOLT_2,
+ REG_MAX8660_V4_TARGET_VOLT_1,
+ REG_MAX8660_V4_TARGET_VOLT_2,
+ REG_MAX8660_V5_TARGET_VOLT_1,
+ REG_MAX8660_V5_TARGET_VOLT_2,
+ REG_MAX8660_V6V7_TARGET_VOLT,
+ REG_MAX8660_FORCE_PWM
+};
+
+
+#endif /* _MCU_PMIC_CORE_H_ */
diff --git a/drivers/mxc/mcu_pmic/mcu_pmic_gpio.c b/drivers/mxc/mcu_pmic/mcu_pmic_gpio.c
new file mode 100644
index 000000000000..417dabe35386
--- /dev/null
+++ b/drivers/mxc/mcu_pmic/mcu_pmic_gpio.c
@@ -0,0 +1,131 @@
+/*
+ * Copyright 2008-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file mc9s08dz60/mcu_pmic_gpio.c
+ * @brief This is the main file of mc9s08dz60 Power Control driver.
+ *
+ * @ingroup PMIC_POWER
+ */
+
+/*
+ * Includes
+ */
+#include <linux/platform_device.h>
+#include <linux/mfd/mc9s08dz60/pmic.h>
+#include <linux/pmic_status.h>
+#include <linux/ioctl.h>
+
+#define SET_BIT_IN_BYTE(byte, pos) (byte |= (0x01 << pos))
+#define CLEAR_BIT_IN_BYTE(byte, pos) (byte &= ~(0x01 << pos))
+
+int pmic_gpio_set_bit_val(int reg, unsigned int bit,
+ unsigned int val)
+{
+ int reg_name;
+ u8 reg_mask = 0;
+
+ if (bit > 7)
+ return -1;
+
+ switch (reg) {
+ case MCU_GPIO_REG_RESET_1:
+ reg_name = REG_MCU_RESET_1;
+ break;
+ case MCU_GPIO_REG_RESET_2:
+ reg_name = REG_MCU_RESET_2;
+ break;
+ case MCU_GPIO_REG_POWER_CONTROL:
+ reg_name = REG_MCU_POWER_CTL;
+ break;
+ case MCU_GPIO_REG_GPIO_CONTROL_1:
+ reg_name = REG_MCU_GPIO_1;
+ break;
+ case MCU_GPIO_REG_GPIO_CONTROL_2:
+ reg_name = REG_MCU_GPIO_2;
+ break;
+ default:
+ return -1;
+ }
+
+ SET_BIT_IN_BYTE(reg_mask, bit);
+ if (0 == val)
+ CHECK_ERROR(mcu_pmic_write_reg(reg_name, 0, reg_mask));
+ else
+ CHECK_ERROR(mcu_pmic_write_reg(reg_name, reg_mask, reg_mask));
+
+ return 0;
+}
+EXPORT_SYMBOL(pmic_gpio_set_bit_val);
+
+int pmic_gpio_get_bit_val(int reg, unsigned int bit,
+ unsigned int *val)
+{
+ int reg_name;
+ unsigned int reg_read_val;
+ u8 reg_mask = 0;
+
+ if (bit > 7)
+ return -1;
+
+ switch (reg) {
+ case MCU_GPIO_REG_RESET_1:
+ reg_name = REG_MCU_RESET_1;
+ break;
+ case MCU_GPIO_REG_RESET_2:
+ reg_name = REG_MCU_RESET_2;
+ break;
+ case MCU_GPIO_REG_POWER_CONTROL:
+ reg_name = REG_MCU_POWER_CTL;
+ break;
+ case MCU_GPIO_REG_GPIO_CONTROL_1:
+ reg_name = REG_MCU_GPIO_1;
+ break;
+ case MCU_GPIO_REG_GPIO_CONTROL_2:
+ reg_name = REG_MCU_GPIO_2;
+ break;
+ default:
+ return -1;
+ }
+
+ SET_BIT_IN_BYTE(reg_mask, bit);
+ CHECK_ERROR(mcu_pmic_read_reg(reg_name, &reg_read_val, reg_mask));
+ if (0 == reg_read_val)
+ *val = 0;
+ else
+ *val = 1;
+
+ return 0;
+}
+EXPORT_SYMBOL(pmic_gpio_get_bit_val);
+
+int pmic_gpio_get_designation_bit_val(unsigned int bit,
+ unsigned int *val)
+{
+ unsigned int reg_read_val;
+ u8 reg_mask = 0;
+
+ if (bit > 7)
+ return -1;
+
+ SET_BIT_IN_BYTE(reg_mask, bit);
+ CHECK_ERROR(
+ mcu_pmic_read_reg(REG_MCU_DES_FLAG, &reg_read_val, reg_mask));
+ if (0 == reg_read_val)
+ *val = 0;
+ else
+ *val = 1;
+
+ return 0;
+}
+EXPORT_SYMBOL(pmic_gpio_get_designation_bit_val);
diff --git a/drivers/mxc/mlb/Kconfig b/drivers/mxc/mlb/Kconfig
new file mode 100644
index 000000000000..7e3b16c2ddae
--- /dev/null
+++ b/drivers/mxc/mlb/Kconfig
@@ -0,0 +1,13 @@
+#
+# MLB configuration
+#
+
+menu "MXC Media Local Bus Driver"
+
+config MXC_MLB
+ tristate "MLB support"
+ depends on ARCH_MX35 || ARCH_MX53
+ ---help---
+ Say Y to get the MLB support.
+
+endmenu
diff --git a/drivers/mxc/mlb/Makefile b/drivers/mxc/mlb/Makefile
new file mode 100644
index 000000000000..60662eb1c031
--- /dev/null
+++ b/drivers/mxc/mlb/Makefile
@@ -0,0 +1,5 @@
+#
+# Makefile for the kernel MLB driver
+#
+
+obj-$(CONFIG_MXC_MLB) += mxc_mlb.o
diff --git a/drivers/mxc/mlb/mxc_mlb.c b/drivers/mxc/mlb/mxc_mlb.c
new file mode 100644
index 000000000000..48c160a77922
--- /dev/null
+++ b/drivers/mxc/mlb/mxc_mlb.c
@@ -0,0 +1,1060 @@
+/*
+ * linux/drivers/mxc/mlb/mxc_mlb.c
+ *
+ * Copyright (C) 2008-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+#include <linux/slab.h>
+#include <linux/module.h>
+#include <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/io.h>
+#include <linux/device.h>
+#include <linux/fs.h>
+#include <linux/poll.h>
+#include <linux/cdev.h>
+#include <linux/clk.h>
+#include <linux/interrupt.h>
+#include <linux/platform_device.h>
+#include <linux/regulator/consumer.h>
+#include <linux/mxc_mlb.h>
+#include <linux/uaccess.h>
+#include <linux/iram_alloc.h>
+#include <linux/fsl_devices.h>
+
+/*!
+ * MLB module memory map registers define
+ */
+#define MLB_REG_DCCR 0x0
+#define MLB_REG_SSCR 0x4
+#define MLB_REG_SDCR 0x8
+#define MLB_REG_SMCR 0xC
+#define MLB_REG_VCCR 0x1C
+#define MLB_REG_SBCR 0x20
+#define MLB_REG_ABCR 0x24
+#define MLB_REG_CBCR 0x28
+#define MLB_REG_IBCR 0x2C
+#define MLB_REG_CICR 0x30
+#define MLB_REG_CECRn 0x40
+#define MLB_REG_CSCRn 0x44
+#define MLB_REG_CCBCRn 0x48
+#define MLB_REG_CNBCRn 0x4C
+#define MLB_REG_LCBCRn 0x280
+
+#define MLB_DCCR_FS_OFFSET 28
+#define MLB_DCCR_EN (1 << 31)
+#define MLB_DCCR_LBM_OFFSET 30
+#define MLB_DCCR_RESET (1 << 23)
+#define MLB_CECR_CE (1 << 31)
+#define MLB_CECR_TR (1 << 30)
+#define MLB_CECR_CT_OFFSET 28
+#define MLB_CECR_MBS (1 << 19)
+#define MLB_CSCR_CBPE (1 << 0)
+#define MLB_CSCR_CBDB (1 << 1)
+#define MLB_CSCR_CBD (1 << 2)
+#define MLB_CSCR_CBS (1 << 3)
+#define MLB_CSCR_BE (1 << 4)
+#define MLB_CSCR_ABE (1 << 5)
+#define MLB_CSCR_LFS (1 << 6)
+#define MLB_CSCR_PBPE (1 << 8)
+#define MLB_CSCR_PBDB (1 << 9)
+#define MLB_CSCR_PBD (1 << 10)
+#define MLB_CSCR_PBS (1 << 11)
+#define MLB_CSCR_RDY (1 << 16)
+#define MLB_CSCR_BM (1 << 31)
+#define MLB_CSCR_BF (1 << 30)
+#define MLB_SSCR_SDML (1 << 5)
+
+#define MLB_CONTROL_TX_CHANN (0 << 4)
+#define MLB_CONTROL_RX_CHANN (1 << 4)
+#define MLB_ASYNC_TX_CHANN (2 << 4)
+#define MLB_ASYNC_RX_CHANN (3 << 4)
+
+#define MLB_MINOR_DEVICES 2
+#define MLB_CONTROL_DEV_NAME "ctrl"
+#define MLB_ASYNC_DEV_NAME "async"
+
+#define TX_CHANNEL 0
+#define RX_CHANNEL 1
+#define TX_CHANNEL_BUF_SIZE 1024
+#define RX_CHANNEL_BUF_SIZE (2*1024)
+/* max package data size */
+#define ASYNC_PACKET_SIZE 1024
+#define CTRL_PACKET_SIZE 64
+#define RX_RING_NODES 10
+
+#define MLB_IRAM_SIZE (MLB_MINOR_DEVICES * (TX_CHANNEL_BUF_SIZE + RX_CHANNEL_BUF_SIZE))
+#define _get_txchan(dev) mlb_devinfo[dev].channels[TX_CHANNEL]
+#define _get_rxchan(dev) mlb_devinfo[dev].channels[RX_CHANNEL]
+
+enum {
+ MLB_CTYPE_SYNC,
+ MLB_CTYPE_ISOC,
+ MLB_CTYPE_ASYNC,
+ MLB_CTYPE_CTRL,
+};
+
+/*!
+ * Rx ring buffer
+ */
+struct mlb_rx_ringnode {
+ int size;
+ char *data;
+};
+
+struct mlb_channel_info {
+
+ /* channel offset in memmap */
+ const unsigned int reg_offset;
+ /* channel address */
+ int address;
+ /*!
+ * channel buffer start address
+ * for Rx, buf_head pointer to a loop ring buffer
+ */
+ unsigned long buf_head;
+ /* physical buffer head address */
+ unsigned long phy_head;
+ /* channel buffer size */
+ unsigned int buf_size;
+ /* channel buffer current ptr */
+ unsigned long buf_ptr;
+ /* buffer spin lock */
+ rwlock_t buf_lock;
+};
+
+struct mlb_dev_info {
+
+ /* device node name */
+ const char dev_name[20];
+ /* channel type */
+ const unsigned int channel_type;
+ /* channel info for tx/rx */
+ struct mlb_channel_info channels[2];
+ /* rx ring buffer */
+ struct mlb_rx_ringnode rx_bufs[RX_RING_NODES];
+ /* rx ring buffer read/write ptr */
+ unsigned int rdpos, wtpos;
+ /* exception event */
+ unsigned long ex_event;
+ /* channel started up or not */
+ atomic_t on;
+ /* device open count */
+ atomic_t opencnt;
+ /* wait queue head for channel */
+ wait_queue_head_t rd_wq;
+ wait_queue_head_t wt_wq;
+ /* spinlock for event access */
+ spinlock_t event_lock;
+};
+
+static struct mlb_dev_info mlb_devinfo[MLB_MINOR_DEVICES] = {
+ {
+ .dev_name = MLB_CONTROL_DEV_NAME,
+ .channel_type = MLB_CTYPE_CTRL,
+ .channels = {
+ [0] = {
+ .reg_offset = MLB_CONTROL_TX_CHANN,
+ .buf_size = TX_CHANNEL_BUF_SIZE,
+ .buf_lock =
+ __RW_LOCK_UNLOCKED(mlb_devinfo[0].channels[0].
+ buf_lock),
+ },
+ [1] = {
+ .reg_offset = MLB_CONTROL_RX_CHANN,
+ .buf_size = RX_CHANNEL_BUF_SIZE,
+ .buf_lock =
+ __RW_LOCK_UNLOCKED(mlb_devinfo[0].channels[1].
+ buf_lock),
+ },
+ },
+ .on = ATOMIC_INIT(0),
+ .opencnt = ATOMIC_INIT(0),
+ .rd_wq = __WAIT_QUEUE_HEAD_INITIALIZER(mlb_devinfo[0].rd_wq),
+ .wt_wq = __WAIT_QUEUE_HEAD_INITIALIZER(mlb_devinfo[0].wt_wq),
+ .event_lock = __SPIN_LOCK_UNLOCKED(mlb_devinfo[0].event_lock),
+ },
+ {
+ .dev_name = MLB_ASYNC_DEV_NAME,
+ .channel_type = MLB_CTYPE_ASYNC,
+ .channels = {
+ [0] = {
+ .reg_offset = MLB_ASYNC_TX_CHANN,
+ .buf_size = TX_CHANNEL_BUF_SIZE,
+ .buf_lock =
+ __RW_LOCK_UNLOCKED(mlb_devinfo[1].channels[0].
+ buf_lock),
+ },
+ [1] = {
+ .reg_offset = MLB_ASYNC_RX_CHANN,
+ .buf_size = RX_CHANNEL_BUF_SIZE,
+ .buf_lock =
+ __RW_LOCK_UNLOCKED(mlb_devinfo[1].channels[1].
+ buf_lock),
+ },
+ },
+ .on = ATOMIC_INIT(0),
+ .opencnt = ATOMIC_INIT(0),
+ .rd_wq = __WAIT_QUEUE_HEAD_INITIALIZER(mlb_devinfo[1].rd_wq),
+ .wt_wq = __WAIT_QUEUE_HEAD_INITIALIZER(mlb_devinfo[1].wt_wq),
+ .event_lock = __SPIN_LOCK_UNLOCKED(mlb_devinfo[1].event_lock),
+ },
+};
+
+static struct regulator *reg_nvcc; /* NVCC_MLB regulator */
+static struct clk *mlb_clk;
+static struct cdev mxc_mlb_dev; /* chareset device */
+static dev_t dev;
+static struct class *mlb_class; /* device class */
+static struct device *class_dev;
+static unsigned long mlb_base; /* mlb module base address */
+static unsigned int irq;
+static unsigned long iram_base;
+static __iomem void *iram_addr;
+
+/*!
+ * Initial the MLB module device
+ */
+static void mlb_dev_init(void)
+{
+ unsigned long dccr_val;
+ unsigned long phyaddr;
+
+ /* reset the MLB module */
+ __raw_writel(MLB_DCCR_RESET, mlb_base + MLB_REG_DCCR);
+ while (__raw_readl(mlb_base + MLB_REG_DCCR)
+ & MLB_DCCR_RESET)
+ ;
+
+ /*!
+ * Enable MLB device, disable loopback mode,
+ * set default fps to 512, set mlb device address to 0
+ */
+ dccr_val = MLB_DCCR_EN;
+ __raw_writel(dccr_val, mlb_base + MLB_REG_DCCR);
+
+ /* disable all the system interrupt */
+ __raw_writel(0x5F, mlb_base + MLB_REG_SMCR);
+
+ /* write async, control tx/rx base address */
+ phyaddr = _get_txchan(0).phy_head >> 16;
+ __raw_writel(phyaddr << 16 | phyaddr, mlb_base + MLB_REG_CBCR);
+ phyaddr = _get_txchan(1).phy_head >> 16;
+ __raw_writel(phyaddr << 16 | phyaddr, mlb_base + MLB_REG_ABCR);
+
+}
+
+static void mlb_dev_exit(void)
+{
+ __raw_writel(0, mlb_base + MLB_REG_DCCR);
+}
+
+/*!
+ * MLB receive start function
+ *
+ * load phy_head to next buf register to start next rx
+ * here use single-packet buffer, set start=end
+ */
+static void mlb_start_rx(int cdev_id)
+{
+ struct mlb_channel_info *chinfo = &_get_rxchan(cdev_id);
+ unsigned long next;
+
+ next = chinfo->phy_head & 0xFFFC;
+ /* load next buf */
+ __raw_writel((next << 16) | next, mlb_base +
+ MLB_REG_CNBCRn + chinfo->reg_offset);
+ /* set ready bit to start next rx */
+ __raw_writel(MLB_CSCR_RDY, mlb_base + MLB_REG_CSCRn
+ + chinfo->reg_offset);
+}
+
+/*!
+ * MLB transmit start function
+ * make sure aquiring the rw buf_lock, when calling this
+ */
+static void mlb_start_tx(int cdev_id)
+{
+ struct mlb_channel_info *chinfo = &_get_txchan(cdev_id);
+ unsigned long begin, end;
+
+ begin = chinfo->phy_head;
+ end = (chinfo->phy_head + chinfo->buf_ptr - chinfo->buf_head) & 0xFFFC;
+ /* load next buf */
+ __raw_writel((begin << 16) | end, mlb_base +
+ MLB_REG_CNBCRn + chinfo->reg_offset);
+ /* set ready bit to start next tx */
+ __raw_writel(MLB_CSCR_RDY, mlb_base + MLB_REG_CSCRn
+ + chinfo->reg_offset);
+}
+
+/*!
+ * Enable the MLB channel
+ */
+static void mlb_channel_enable(int chan_dev_id, int on)
+{
+ unsigned long tx_regval = 0, rx_regval = 0;
+ /*!
+ * setup the direction, enable, channel type,
+ * mode select, channel address and mask buf start
+ */
+ if (on) {
+ unsigned int ctype = mlb_devinfo[chan_dev_id].channel_type;
+ tx_regval = MLB_CECR_CE | MLB_CECR_TR | MLB_CECR_MBS |
+ (ctype << MLB_CECR_CT_OFFSET) |
+ _get_txchan(chan_dev_id).address;
+ rx_regval = MLB_CECR_CE | MLB_CECR_MBS |
+ (ctype << MLB_CECR_CT_OFFSET) |
+ _get_rxchan(chan_dev_id).address;
+
+ atomic_set(&mlb_devinfo[chan_dev_id].on, 1);
+ } else {
+ atomic_set(&mlb_devinfo[chan_dev_id].on, 0);
+ }
+
+ /* update the rx/tx channel entry config */
+ __raw_writel(tx_regval, mlb_base + MLB_REG_CECRn +
+ _get_txchan(chan_dev_id).reg_offset);
+ __raw_writel(rx_regval, mlb_base + MLB_REG_CECRn +
+ _get_rxchan(chan_dev_id).reg_offset);
+
+ if (on)
+ mlb_start_rx(chan_dev_id);
+}
+
+/*!
+ * MLB interrupt handler
+ */
+void mlb_tx_isr(int minor, unsigned int cis)
+{
+ struct mlb_channel_info *chinfo = &_get_txchan(minor);
+
+ if (cis & MLB_CSCR_CBD) {
+ /* buffer done, reset the buf_ptr */
+ write_lock(&chinfo->buf_lock);
+ chinfo->buf_ptr = chinfo->buf_head;
+ write_unlock(&chinfo->buf_lock);
+ /* wake up the writer */
+ wake_up_interruptible(&mlb_devinfo[minor].wt_wq);
+ }
+}
+
+void mlb_rx_isr(int minor, unsigned int cis)
+{
+ struct mlb_channel_info *chinfo = &_get_rxchan(minor);
+ unsigned long end;
+ unsigned int len;
+
+ if (cis & MLB_CSCR_CBD) {
+
+ int wpos, rpos;
+
+ rpos = mlb_devinfo[minor].rdpos;
+ wpos = mlb_devinfo[minor].wtpos;
+
+ /* buffer done, get current buffer ptr */
+ end =
+ __raw_readl(mlb_base + MLB_REG_CCBCRn + chinfo->reg_offset);
+ end >>= 16; /* end here is phy */
+ len = end - (chinfo->phy_head & 0xFFFC);
+
+ /*!
+ * copy packet from IRAM buf to ring buf.
+ * if the wpos++ == rpos, drop this packet
+ */
+ if (((wpos + 1) % RX_RING_NODES) != rpos) {
+
+#ifdef DEBUG
+ if (mlb_devinfo[minor].channel_type == MLB_CTYPE_CTRL) {
+ if (len > CTRL_PACKET_SIZE)
+ pr_debug
+ ("mxc_mlb: ctrl packet"
+ "overflow\n");
+ } else {
+ if (len > ASYNC_PACKET_SIZE)
+ pr_debug
+ ("mxc_mlb: async packet"
+ "overflow\n");
+ }
+#endif
+ memcpy(mlb_devinfo[minor].rx_bufs[wpos].data,
+ (const void *)chinfo->buf_head, len);
+ mlb_devinfo[minor].rx_bufs[wpos].size = len;
+
+ /* update the ring wpos */
+ mlb_devinfo[minor].wtpos = (wpos + 1) % RX_RING_NODES;
+
+ /* wake up the reader */
+ wake_up_interruptible(&mlb_devinfo[minor].rd_wq);
+
+ pr_debug("recv package, len:%d, rdpos: %d, wtpos: %d\n",
+ len, rpos, mlb_devinfo[minor].wtpos);
+ } else {
+ pr_debug
+ ("drop package, due to no space, (%d,%d)\n",
+ rpos, mlb_devinfo[minor].wtpos);
+ }
+
+ /* start next rx */
+ mlb_start_rx(minor);
+ }
+}
+
+static irqreturn_t mlb_isr(int irq, void *dev_id)
+{
+ unsigned long int_status, sscr, tx_cis, rx_cis;
+ struct mlb_dev_info *pdev;
+ int minor;
+
+ sscr = __raw_readl(mlb_base + MLB_REG_SSCR);
+ pr_debug("mxc_mlb: system interrupt:%lx\n", sscr);
+ __raw_writel(0x7F, mlb_base + MLB_REG_SSCR);
+
+ int_status = __raw_readl(mlb_base + MLB_REG_CICR) & 0xFFFF;
+ pr_debug("mxc_mlb: channel interrupt ids: %lx\n", int_status);
+
+ for (minor = 0; minor < MLB_MINOR_DEVICES; minor++) {
+
+ pdev = &mlb_devinfo[minor];
+ tx_cis = rx_cis = 0;
+
+ /* get tx channel interrupt status */
+ if (int_status & (1 << (_get_txchan(minor).reg_offset >> 4)))
+ tx_cis = __raw_readl(mlb_base + MLB_REG_CSCRn
+ + _get_txchan(minor).reg_offset);
+ /* get rx channel interrupt status */
+ if (int_status & (1 << (_get_rxchan(minor).reg_offset >> 4)))
+ rx_cis = __raw_readl(mlb_base + MLB_REG_CSCRn
+ + _get_rxchan(minor).reg_offset);
+
+ if (!tx_cis && !rx_cis)
+ continue;
+
+ pr_debug("tx/rx int status: 0x%08lx/0x%08lx\n", tx_cis, rx_cis);
+ /* fill exception event */
+ spin_lock(&pdev->event_lock);
+ pdev->ex_event |= tx_cis & 0x303;
+ pdev->ex_event |= (rx_cis & 0x303) << 16;
+ spin_unlock(&pdev->event_lock);
+
+ /* clear the interrupt status */
+ __raw_writel(tx_cis & 0xFFFF, mlb_base + MLB_REG_CSCRn
+ + _get_txchan(minor).reg_offset);
+ __raw_writel(rx_cis & 0xFFFF, mlb_base + MLB_REG_CSCRn
+ + _get_rxchan(minor).reg_offset);
+
+ /* handel tx channel */
+ if (tx_cis)
+ mlb_tx_isr(minor, tx_cis);
+ /* handle rx channel */
+ if (rx_cis)
+ mlb_rx_isr(minor, rx_cis);
+
+ }
+
+ return IRQ_HANDLED;
+}
+
+static int mxc_mlb_open(struct inode *inode, struct file *filp)
+{
+ int minor;
+
+ minor = MINOR(inode->i_rdev);
+
+ if (minor < 0 || minor >= MLB_MINOR_DEVICES)
+ return -ENODEV;
+
+ /* open for each channel device */
+ if (atomic_cmpxchg(&mlb_devinfo[minor].opencnt, 0, 1) != 0)
+ return -EBUSY;
+
+ /* reset the buffer read/write ptr */
+ _get_txchan(minor).buf_ptr = _get_txchan(minor).buf_head;
+ _get_rxchan(minor).buf_ptr = _get_rxchan(minor).buf_head;
+ mlb_devinfo[minor].rdpos = mlb_devinfo[minor].wtpos = 0;
+ mlb_devinfo[minor].ex_event = 0;
+
+ return 0;
+}
+
+static int mxc_mlb_release(struct inode *inode, struct file *filp)
+{
+ int minor;
+
+ minor = MINOR(inode->i_rdev);
+
+ /* clear channel settings and info */
+ mlb_channel_enable(minor, 0);
+
+ /* decrease the open count */
+ atomic_set(&mlb_devinfo[minor].opencnt, 0);
+
+ return 0;
+}
+
+static int mxc_mlb_ioctl(struct inode *inode, struct file *filp,
+ unsigned int cmd, unsigned long arg)
+{
+ void __user *argp = (void __user *)arg;
+ unsigned long flags, event;
+ int minor;
+
+ minor = MINOR(inode->i_rdev);
+
+ switch (cmd) {
+
+ case MLB_CHAN_SETADDR:
+ {
+ unsigned int caddr;
+ /* get channel address from user space */
+ if (copy_from_user(&caddr, argp, sizeof(caddr))) {
+ pr_err("mxc_mlb: copy from user failed\n");
+ return -EFAULT;
+ }
+ _get_txchan(minor).address = (caddr >> 16) & 0xFFFF;
+ _get_rxchan(minor).address = caddr & 0xFFFF;
+ break;
+ }
+
+ case MLB_CHAN_STARTUP:
+ if (atomic_read(&mlb_devinfo[minor].on)) {
+ pr_debug("mxc_mlb: channel areadly startup\n");
+ break;
+ }
+ mlb_channel_enable(minor, 1);
+ break;
+ case MLB_CHAN_SHUTDOWN:
+ if (atomic_read(&mlb_devinfo[minor].on) == 0) {
+ pr_debug("mxc_mlb: channel areadly shutdown\n");
+ break;
+ }
+ mlb_channel_enable(minor, 0);
+ break;
+ case MLB_CHAN_GETEVENT:
+ /* get and clear the ex_event */
+ spin_lock_irqsave(&mlb_devinfo[minor].event_lock, flags);
+ event = mlb_devinfo[minor].ex_event;
+ mlb_devinfo[minor].ex_event = 0;
+ spin_unlock_irqrestore(&mlb_devinfo[minor].event_lock, flags);
+
+ if (event) {
+ if (copy_to_user(argp, &event, sizeof(event))) {
+ pr_err("mxc_mlb: copy to user failed\n");
+ return -EFAULT;
+ }
+ } else {
+ pr_debug("mxc_mlb: no exception event now\n");
+ return -EAGAIN;
+ }
+ break;
+ case MLB_SET_FPS:
+ {
+ unsigned int fps;
+ unsigned long dccr_val;
+
+ /* get fps from user space */
+ if (copy_from_user(&fps, argp, sizeof(fps))) {
+ pr_err("mxc_mlb: copy from user failed\n");
+ return -EFAULT;
+ }
+
+ /* check fps value */
+ if (fps != 256 && fps != 512 && fps != 1024) {
+ pr_debug("mxc_mlb: invalid fps argument\n");
+ return -EINVAL;
+ }
+
+ dccr_val = __raw_readl(mlb_base + MLB_REG_DCCR);
+ dccr_val &= ~(0x3 << MLB_DCCR_FS_OFFSET);
+ dccr_val |= (fps >> 9) << MLB_DCCR_FS_OFFSET;
+ __raw_writel(dccr_val, mlb_base + MLB_REG_DCCR);
+ break;
+ }
+
+ case MLB_GET_VER:
+ {
+ unsigned long version;
+
+ /* get MLB device module version */
+ version = __raw_readl(mlb_base + MLB_REG_VCCR);
+
+ if (copy_to_user(argp, &version, sizeof(version))) {
+ pr_err("mxc_mlb: copy to user failed\n");
+ return -EFAULT;
+ }
+ break;
+ }
+
+ case MLB_SET_DEVADDR:
+ {
+ unsigned long dccr_val;
+ unsigned char devaddr;
+
+ /* get MLB device address from user space */
+ if (copy_from_user
+ (&devaddr, argp, sizeof(unsigned char))) {
+ pr_err("mxc_mlb: copy from user failed\n");
+ return -EFAULT;
+ }
+
+ dccr_val = __raw_readl(mlb_base + MLB_REG_DCCR);
+ dccr_val &= ~0xFF;
+ dccr_val |= devaddr;
+ __raw_writel(dccr_val, mlb_base + MLB_REG_DCCR);
+
+ break;
+ }
+ default:
+ pr_info("mxc_mlb: Invalid ioctl command\n");
+ return -EINVAL;
+ }
+
+ return 0;
+}
+
+/*!
+ * MLB read routine
+ *
+ * Read the current received data from queued buffer,
+ * and free this buffer for hw to fill ingress data.
+ */
+static ssize_t mxc_mlb_read(struct file *filp, char __user *buf,
+ size_t count, loff_t *f_pos)
+{
+ int minor, ret;
+ int size, rdpos;
+ struct mlb_rx_ringnode *rxbuf;
+
+ minor = MINOR(filp->f_dentry->d_inode->i_rdev);
+
+ rdpos = mlb_devinfo[minor].rdpos;
+ rxbuf = mlb_devinfo[minor].rx_bufs;
+
+ /* check the current rx buffer is available or not */
+ if (rdpos == mlb_devinfo[minor].wtpos) {
+ if (filp->f_flags & O_NONBLOCK)
+ return -EAGAIN;
+ /* if !O_NONBLOCK, we wait for recv packet */
+ ret = wait_event_interruptible(mlb_devinfo[minor].rd_wq,
+ (mlb_devinfo[minor].wtpos !=
+ rdpos));
+ if (ret < 0)
+ return ret;
+ }
+
+ size = rxbuf[rdpos].size;
+ if (size > count) {
+ /* the user buffer is too small */
+ pr_warning
+ ("mxc_mlb: received data size is bigger than count\n");
+ return -EINVAL;
+ }
+
+ /* copy rx buffer data to user buffer */
+ if (copy_to_user(buf, rxbuf[rdpos].data, size)) {
+ pr_err("mxc_mlb: copy from user failed\n");
+ return -EFAULT;
+ }
+
+ /* update the read ptr */
+ mlb_devinfo[minor].rdpos = (rdpos + 1) % RX_RING_NODES;
+
+ *f_pos = 0;
+
+ return size;
+}
+
+/*!
+ * MLB write routine
+ *
+ * Copy the user data to tx channel buffer,
+ * and prepare the channel current/next buffer ptr.
+ */
+static ssize_t mxc_mlb_write(struct file *filp, const char __user *buf,
+ size_t count, loff_t *f_pos)
+{
+ int minor;
+ unsigned long flags;
+ DEFINE_WAIT(__wait);
+ int ret;
+
+ minor = MINOR(filp->f_dentry->d_inode->i_rdev);
+
+ if (count > _get_txchan(minor).buf_size) {
+ /* too many data to write */
+ pr_warning("mxc_mlb: overflow write data\n");
+ return -EFBIG;
+ }
+
+ *f_pos = 0;
+
+ /* check the current tx buffer is used or not */
+ write_lock_irqsave(&_get_txchan(minor).buf_lock, flags);
+ if (_get_txchan(minor).buf_ptr != _get_txchan(minor).buf_head) {
+ write_unlock_irqrestore(&_get_txchan(minor).buf_lock, flags);
+
+ /* there's already some datas being transmit now */
+ if (filp->f_flags & O_NONBLOCK)
+ return -EAGAIN;
+
+ /* if !O_NONBLOCK, we wait for transmit finish */
+ for (;;) {
+ prepare_to_wait(&mlb_devinfo[minor].wt_wq,
+ &__wait, TASK_INTERRUPTIBLE);
+
+ write_lock_irqsave(&_get_txchan(minor).buf_lock, flags);
+ if (_get_txchan(minor).buf_ptr ==
+ _get_txchan(minor).buf_head)
+ break;
+
+ write_unlock_irqrestore(&_get_txchan(minor).buf_lock,
+ flags);
+ if (!signal_pending(current)) {
+ schedule();
+ continue;
+ }
+ return -ERESTARTSYS;
+ }
+ finish_wait(&mlb_devinfo[minor].wt_wq, &__wait);
+ }
+
+ /* copy user buffer to tx buffer */
+ if (copy_from_user((void *)_get_txchan(minor).buf_ptr, buf, count)) {
+ pr_err("mxc_mlb: copy from user failed\n");
+ ret = -EFAULT;
+ goto out;
+ }
+ _get_txchan(minor).buf_ptr += count;
+
+ /* set current/next buffer start/end */
+ mlb_start_tx(minor);
+
+ ret = count;
+
+out:
+ write_unlock_irqrestore(&_get_txchan(minor).buf_lock, flags);
+ return ret;
+}
+
+static unsigned int mxc_mlb_poll(struct file *filp,
+ struct poll_table_struct *wait)
+{
+ int minor;
+ unsigned int ret = 0;
+ unsigned long flags;
+
+ minor = MINOR(filp->f_dentry->d_inode->i_rdev);
+
+ poll_wait(filp, &mlb_devinfo[minor].rd_wq, wait);
+ poll_wait(filp, &mlb_devinfo[minor].wt_wq, wait);
+
+ /* check the tx buffer is avaiable or not */
+ read_lock_irqsave(&_get_txchan(minor).buf_lock, flags);
+ if (_get_txchan(minor).buf_ptr == _get_txchan(minor).buf_head)
+ ret |= POLLOUT | POLLWRNORM;
+ read_unlock_irqrestore(&_get_txchan(minor).buf_lock, flags);
+
+ /* check the rx buffer filled or not */
+ if (mlb_devinfo[minor].rdpos != mlb_devinfo[minor].wtpos)
+ ret |= POLLIN | POLLRDNORM;
+
+ /* check the exception event */
+ if (mlb_devinfo[minor].ex_event)
+ ret |= POLLIN | POLLRDNORM;
+
+ return ret;
+}
+
+/*!
+ * char dev file operations structure
+ */
+static struct file_operations mxc_mlb_fops = {
+
+ .owner = THIS_MODULE,
+ .open = mxc_mlb_open,
+ .release = mxc_mlb_release,
+ .ioctl = mxc_mlb_ioctl,
+ .poll = mxc_mlb_poll,
+ .read = mxc_mlb_read,
+ .write = mxc_mlb_write,
+};
+
+/*!
+ * This function is called whenever the MLB device is detected.
+ */
+static int __devinit mxc_mlb_probe(struct platform_device *pdev)
+{
+ int ret, mlb_major, i, j;
+ struct mxc_mlb_platform_data *plat_data;
+ struct resource *res;
+ void __iomem *base, *bufaddr;
+ unsigned long phyaddr;
+
+ /* malloc the Rx ring buffer firstly */
+ for (i = 0; i < MLB_MINOR_DEVICES; i++) {
+ char *buf;
+ int bufsize;
+
+ if (mlb_devinfo[i].channel_type == MLB_CTYPE_ASYNC)
+ bufsize = ASYNC_PACKET_SIZE;
+ else
+ bufsize = CTRL_PACKET_SIZE;
+
+ buf = kmalloc(bufsize * RX_RING_NODES, GFP_KERNEL);
+ if (buf == NULL) {
+ ret = -ENOMEM;
+ dev_err(&pdev->dev, "can not alloc rx buffers\n");
+ goto err4;
+ }
+ for (j = 0; j < RX_RING_NODES; j++) {
+ mlb_devinfo[i].rx_bufs[j].data = buf;
+ buf += bufsize;
+ }
+ }
+
+ /**
+ * Register MLB lld as two character devices
+ * One for Packet date channel, the other for control data channel
+ */
+ ret = alloc_chrdev_region(&dev, 0, MLB_MINOR_DEVICES, "mxc_mlb");
+ mlb_major = MAJOR(dev);
+
+ if (ret < 0) {
+ dev_err(&pdev->dev, "can't get major %d\n", mlb_major);
+ goto err3;
+ }
+
+ cdev_init(&mxc_mlb_dev, &mxc_mlb_fops);
+ mxc_mlb_dev.owner = THIS_MODULE;
+
+ ret = cdev_add(&mxc_mlb_dev, dev, MLB_MINOR_DEVICES);
+ if (ret) {
+ dev_err(&pdev->dev, "can't add cdev\n");
+ goto err2;
+ }
+
+ /* create class and device for udev information */
+ mlb_class = class_create(THIS_MODULE, "mlb");
+ if (IS_ERR(mlb_class)) {
+ dev_err(&pdev->dev, "failed to create mlb class\n");
+ ret = -ENOMEM;
+ goto err2;
+ }
+
+ for (i = 0; i < MLB_MINOR_DEVICES; i++) {
+
+ class_dev = device_create(mlb_class, NULL, MKDEV(mlb_major, i),
+ NULL, mlb_devinfo[i].dev_name);
+ if (IS_ERR(class_dev)) {
+ dev_err(&pdev->dev, "failed to create mlb %s"
+ " class device\n", mlb_devinfo[i].dev_name);
+ ret = -ENOMEM;
+ goto err1;
+ }
+ }
+
+ /* get irq line */
+ res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
+ if (res == NULL) {
+ dev_err(&pdev->dev, "No mlb irq line provided\n");
+ goto err1;
+ }
+
+ irq = res->start;
+ /* request irq */
+ if (request_irq(irq, mlb_isr, 0, "mlb", NULL)) {
+ dev_err(&pdev->dev, "failed to request irq\n");
+ ret = -EBUSY;
+ goto err1;
+ }
+
+ /* ioremap from phy mlb to kernel space */
+ res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+ if (res == NULL) {
+ dev_err(&pdev->dev, "No mlb base address provided\n");
+ goto err0;
+ }
+
+ base = ioremap(res->start, res->end - res->start);
+ dev_dbg(&pdev->dev, "mapped mlb base address: 0x%08x\n",
+ (unsigned int)base);
+
+ if (base == NULL) {
+ dev_err(&pdev->dev, "failed to do ioremap with mlb base\n");
+ goto err0;
+ }
+ mlb_base = (unsigned long)base;
+
+ /*!
+ * get rx/tx buffer address from platform data
+ * make sure the buf_address is 4bytes aligned
+ *
+ * ------------------- <-- plat_data->buf_address
+ * | minor 0 tx buf |
+ * -----------------
+ * | minor 0 rx buf |
+ * -----------------
+ * | .... |
+ * -----------------
+ * | minor n tx buf |
+ * -----------------
+ * | minor n rx buf |
+ * -------------------
+ */
+
+ plat_data = (struct mxc_mlb_platform_data *)pdev->dev.platform_data;
+
+ bufaddr = iram_addr = iram_alloc(MLB_IRAM_SIZE, &iram_base);
+ phyaddr = iram_base;
+
+ for (i = 0; i < MLB_MINOR_DEVICES; i++) {
+ /* set the virtual and physical buf head address */
+ _get_txchan(i).buf_head = bufaddr;
+ _get_txchan(i).phy_head = phyaddr;
+
+ bufaddr += TX_CHANNEL_BUF_SIZE;
+ phyaddr += TX_CHANNEL_BUF_SIZE;
+
+ _get_rxchan(i).buf_head = (unsigned long)bufaddr;
+ _get_rxchan(i).phy_head = phyaddr;
+
+ bufaddr += RX_CHANNEL_BUF_SIZE;
+ phyaddr += RX_CHANNEL_BUF_SIZE;
+
+ dev_dbg(&pdev->dev, "phy_head: tx(%lx), rx(%lx)\n",
+ _get_txchan(i).phy_head, _get_rxchan(i).phy_head);
+ dev_dbg(&pdev->dev, "buf_head: tx(%lx), rx(%lx)\n",
+ _get_txchan(i).buf_head, _get_rxchan(i).buf_head);
+ }
+
+ /* enable GPIO */
+ gpio_mlb_active();
+
+ if (plat_data->reg_nvcc) {
+ /* power on MLB */
+ reg_nvcc = regulator_get(&pdev->dev, plat_data->reg_nvcc);
+ if (!IS_ERR(reg_nvcc)) {
+ /* set MAX LDO6 for NVCC to 2.5V */
+ regulator_set_voltage(reg_nvcc, 2500000, 2500000);
+ regulator_enable(reg_nvcc);
+ }
+ }
+
+ /* enable clock */
+ mlb_clk = clk_get(&pdev->dev, plat_data->mlb_clk);
+ clk_enable(mlb_clk);
+
+ /* initial MLB module */
+ mlb_dev_init();
+
+ return 0;
+
+err0:
+ free_irq(irq, NULL);
+err1:
+ for (--i; i >= 0; i--)
+ device_destroy(mlb_class, MKDEV(mlb_major, i));
+
+ class_destroy(mlb_class);
+err2:
+ cdev_del(&mxc_mlb_dev);
+err3:
+ unregister_chrdev_region(dev, MLB_MINOR_DEVICES);
+err4:
+ for (i = 0; i < MLB_MINOR_DEVICES; i++)
+ kfree(mlb_devinfo[i].rx_bufs[0].data);
+
+ return ret;
+}
+
+static int __devexit mxc_mlb_remove(struct platform_device *pdev)
+{
+ int i;
+
+ mlb_dev_exit();
+
+ /* disable mlb clock */
+ clk_disable(mlb_clk);
+ clk_put(mlb_clk);
+
+ /* disable mlb power */
+ regulator_disable(reg_nvcc);
+ regulator_put(reg_nvcc);
+
+ /* inactive GPIO */
+ gpio_mlb_inactive();
+
+ iram_free(iram_base, MLB_IRAM_SIZE);
+
+ /* iounmap */
+ iounmap((void *)mlb_base);
+
+ free_irq(irq, NULL);
+
+ /* destroy mlb device class */
+ for (i = MLB_MINOR_DEVICES - 1; i >= 0; i--)
+ device_destroy(mlb_class, MKDEV(MAJOR(dev), i));
+ class_destroy(mlb_class);
+
+ /* Unregister the two MLB devices */
+ cdev_del(&mxc_mlb_dev);
+ unregister_chrdev_region(dev, MLB_MINOR_DEVICES);
+
+ for (i = 0; i < MLB_MINOR_DEVICES; i++)
+ kfree(mlb_devinfo[i].rx_bufs[0].data);
+
+ return 0;
+}
+
+#ifdef CONFIG_PM
+static int mxc_mlb_suspend(struct platform_device *pdev, pm_message_t state)
+{
+ return 0;
+}
+
+static int mxc_mlb_resume(struct platform_device *pdev)
+{
+ return 0;
+}
+#else
+#define mxc_mlb_suspend NULL
+#define mxc_mlb_resume NULL
+#endif
+
+/*!
+ * platform driver structure for MLB
+ */
+static struct platform_driver mxc_mlb_driver = {
+ .driver = {
+ .name = "mxc_mlb"},
+ .probe = mxc_mlb_probe,
+ .remove = __devexit_p(mxc_mlb_remove),
+ .suspend = mxc_mlb_suspend,
+ .resume = mxc_mlb_resume,
+};
+
+static int __init mxc_mlb_init(void)
+{
+ return platform_driver_register(&mxc_mlb_driver);
+}
+
+static void __exit mxc_mlb_exit(void)
+{
+ platform_driver_unregister(&mxc_mlb_driver);
+}
+
+module_init(mxc_mlb_init);
+module_exit(mxc_mlb_exit);
+
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_DESCRIPTION("MLB low level driver");
+MODULE_LICENSE("GPL");
diff --git a/drivers/mxc/pmic/Kconfig b/drivers/mxc/pmic/Kconfig
new file mode 100644
index 000000000000..4ee91110fc03
--- /dev/null
+++ b/drivers/mxc/pmic/Kconfig
@@ -0,0 +1,64 @@
+#
+# PMIC device driver configuration
+#
+
+menu "MXC PMIC support"
+
+config MXC_PMIC
+ boolean
+
+config MXC_PMIC_MC13783
+ tristate "MC13783 PMIC"
+ depends on ARCH_MXC && SPI
+ select MXC_PMIC
+ ---help---
+ This is the MXC MC13783(PMIC) support. It include
+ ADC, Audio, Battery, Connectivity, Light, Power and RTC.
+
+config MXC_PMIC_MC13892
+ tristate "MC13892 PMIC"
+ depends on ARCH_MXC && (I2C || SPI)
+ select MXC_PMIC
+ ---help---
+ This is the MXC MC13892(PMIC) support. It include
+ ADC, Battery, Connectivity, Light, Power and RTC.
+
+config MXC_PMIC_I2C
+ bool "Support PMIC I2C Interface"
+ depends on MXC_PMIC_MC13892 && I2C
+
+config MXC_PMIC_SPI
+ bool "Support PMIC SPI Interface"
+ depends on (MXC_PMIC_MC13892 || MXC_PMIC_MC13783) && SPI
+
+config MXC_PMIC_MC34704
+ tristate "MC34704 PMIC"
+ depends on ARCH_MXC && I2C
+ select MXC_PMIC
+ ---help---
+ This is the MXC MC34704 PMIC support.
+
+config MXC_PMIC_MC9SDZ60
+ tristate "MC9sDZ60 PMIC"
+ depends on ARCH_MXC && I2C
+ select MXC_PMIC
+ ---help---
+ This is the MXC MC9sDZ60(MCU) PMIC support.
+
+config MXC_PMIC_CHARDEV
+ tristate "MXC PMIC device interface"
+ depends on MXC_PMIC
+ help
+ Say Y here to use "pmic" device files, found in the /dev directory
+ on the system. They make it possible to have user-space programs
+ use or controll PMIC. Mainly its useful for notifying PMIC events
+ to user-space programs.
+
+comment "MXC PMIC Client Drivers"
+ depends on MXC_PMIC
+
+source "drivers/mxc/pmic/mc13783/Kconfig"
+
+source "drivers/mxc/pmic/mc13892/Kconfig"
+
+endmenu
diff --git a/drivers/mxc/pmic/Makefile b/drivers/mxc/pmic/Makefile
new file mode 100644
index 000000000000..385c07e8509f
--- /dev/null
+++ b/drivers/mxc/pmic/Makefile
@@ -0,0 +1,7 @@
+#
+# Makefile for the MXC PMIC drivers.
+#
+
+obj-y += core/
+obj-$(CONFIG_MXC_PMIC_MC13783) += mc13783/
+obj-$(CONFIG_MXC_PMIC_MC13892) += mc13892/
diff --git a/drivers/mxc/pmic/core/Makefile b/drivers/mxc/pmic/core/Makefile
new file mode 100644
index 000000000000..bb42231e3aa8
--- /dev/null
+++ b/drivers/mxc/pmic/core/Makefile
@@ -0,0 +1,21 @@
+#
+# Makefile for the PMIC core drivers.
+#
+obj-$(CONFIG_MXC_PMIC_MC13783) += pmic_mc13783_mod.o
+pmic_mc13783_mod-objs := pmic_external.o pmic_event.o pmic_common.o pmic_core_spi.o mc13783.o
+
+obj-$(CONFIG_MXC_PMIC_MC13892) += pmic_mc13892_mod.o
+pmic_mc13892_mod-objs := pmic_external.o pmic_event.o pmic_common.o mc13892.o
+
+ifneq ($(CONFIG_MXC_PMIC_SPI),)
+pmic_mc13892_mod-objs += pmic_core_spi.o
+endif
+
+ifneq ($(CONFIG_MXC_PMIC_I2C),)
+pmic_mc13892_mod-objs += pmic_core_i2c.o
+endif
+
+obj-$(CONFIG_MXC_PMIC_MC34704) += pmic_mc34704_mod.o
+pmic_mc34704_mod-objs := pmic_external.o pmic_event.o mc34704.o
+
+obj-$(CONFIG_MXC_PMIC_CHARDEV) += pmic-dev.o
diff --git a/drivers/mxc/pmic/core/mc13783.c b/drivers/mxc/pmic/core/mc13783.c
new file mode 100644
index 000000000000..812de6e146aa
--- /dev/null
+++ b/drivers/mxc/pmic/core/mc13783.c
@@ -0,0 +1,380 @@
+/*
+ * Copyright 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file pmic/core/mc13783.c
+ * @brief This file contains MC13783 specific PMIC code. This implementaion
+ * may differ for each PMIC chip.
+ *
+ * @ingroup PMIC_CORE
+ */
+
+/*
+ * Includes
+ */
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/init.h>
+#include <linux/slab.h>
+#include <linux/device.h>
+#include <linux/pmic_external.h>
+#include <linux/pmic_status.h>
+#include <linux/spi/spi.h>
+#include <linux/mfd/mc13783/core.h>
+
+#include <asm/uaccess.h>
+
+#include "pmic.h"
+
+/*
+ * Defines
+ */
+#define EVENT_MASK_0 0x697fdf
+#define EVENT_MASK_1 0x3efffb
+#define MXC_PMIC_FRAME_MASK 0x00FFFFFF
+#define MXC_PMIC_MAX_REG_NUM 0x3F
+#define MXC_PMIC_REG_NUM_SHIFT 0x19
+#define MXC_PMIC_WRITE_BIT_SHIFT 31
+
+static unsigned int events_enabled0;
+static unsigned int events_enabled1;
+struct mxc_pmic pmic_drv_data;
+
+/*!
+ * This function is called to read a register on PMIC.
+ *
+ * @param reg_num number of the pmic register to be read
+ * @param reg_val return value of register
+ *
+ * @return Returns 0 on success -1 on failure.
+ */
+int pmic_read(unsigned int reg_num, unsigned int *reg_val)
+{
+ unsigned int frame = 0;
+ int ret = 0;
+
+ if (reg_num > MXC_PMIC_MAX_REG_NUM)
+ return PMIC_ERROR;
+
+ frame |= reg_num << MXC_PMIC_REG_NUM_SHIFT;
+
+ ret = spi_rw(pmic_drv_data.spi, (u8 *) &frame, 1);
+
+ *reg_val = frame & MXC_PMIC_FRAME_MASK;
+
+ return ret;
+}
+
+/*!
+ * This function is called to write a value to the register on PMIC.
+ *
+ * @param reg_num number of the pmic register to be written
+ * @param reg_val value to be written
+ *
+ * @return Returns 0 on success -1 on failure.
+ */
+int pmic_write(int reg_num, const unsigned int reg_val)
+{
+ unsigned int frame = 0;
+ int ret = 0;
+
+ if (reg_num > MXC_PMIC_MAX_REG_NUM)
+ return PMIC_ERROR;
+
+ frame |= (1 << MXC_PMIC_WRITE_BIT_SHIFT);
+
+ frame |= reg_num << MXC_PMIC_REG_NUM_SHIFT;
+
+ frame |= reg_val & MXC_PMIC_FRAME_MASK;
+
+ ret = spi_rw(pmic_drv_data.spi, (u8 *) &frame, 1);
+
+ return ret;
+}
+
+void *pmic_alloc_data(struct device *dev)
+{
+ struct mc13783 *mc13783;
+
+ mc13783 = kzalloc(sizeof(struct mc13783), GFP_KERNEL);
+ if (mc13783 == NULL)
+ return NULL;
+
+ mc13783->dev = dev;
+
+ return (void *)mc13783;
+}
+
+/*!
+ * This function initializes the SPI device parameters for this PMIC.
+ *
+ * @param spi the SPI slave device(PMIC)
+ *
+ * @return None
+ */
+int pmic_spi_setup(struct spi_device *spi)
+{
+ /* Setup the SPI slave i.e.PMIC */
+ pmic_drv_data.spi = spi;
+
+ spi->mode = SPI_MODE_2 | SPI_CS_HIGH;
+ spi->bits_per_word = 32;
+
+ return spi_setup(spi);
+}
+
+/*!
+ * This function initializes the PMIC registers.
+ *
+ * @return None
+ */
+int pmic_init_registers(void)
+{
+ CHECK_ERROR(pmic_write(REG_INTERRUPT_MASK_0, MXC_PMIC_FRAME_MASK));
+ CHECK_ERROR(pmic_write(REG_INTERRUPT_MASK_1, MXC_PMIC_FRAME_MASK));
+ CHECK_ERROR(pmic_write(REG_INTERRUPT_STATUS_0, MXC_PMIC_FRAME_MASK));
+ CHECK_ERROR(pmic_write(REG_INTERRUPT_STATUS_1, MXC_PMIC_FRAME_MASK));
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function returns the PMIC version in system.
+ *
+ * @param ver pointer to the pmic_version_t structure
+ *
+ * @return This function returns PMIC version.
+ */
+void pmic_get_revision(pmic_version_t *ver)
+{
+ int rev_id = 0;
+ int rev1 = 0;
+ int rev2 = 0;
+ int finid = 0;
+ int icid = 0;
+
+ ver->id = PMIC_MC13783;
+ pmic_read(REG_REVISION, &rev_id);
+
+ rev1 = (rev_id & 0x018) >> 3;
+ rev2 = (rev_id & 0x007);
+ icid = (rev_id & 0x01C0) >> 6;
+ finid = (rev_id & 0x01E00) >> 9;
+
+ /* Ver 0.2 is actually 3.2a. Report as 3.2 */
+ if ((rev1 == 0) && (rev2 == 2)) {
+ rev1 = 3;
+ }
+
+ if (rev1 == 0 || icid != 2) {
+ ver->revision = -1;
+ printk(KERN_NOTICE
+ "mc13783: Not detected.\tAccess failed\t!!!\n");
+ } else {
+ ver->revision = ((rev1 * 10) + rev2);
+ printk(KERN_INFO "mc13783 Rev %d.%d FinVer %x detected\n", rev1,
+ rev2, finid);
+ }
+
+ return;
+
+}
+
+/*!
+ * This function reads the interrupt status registers of PMIC
+ * and determine the current active events.
+ *
+ * @param active_events array pointer to be used to return active
+ * event numbers.
+ *
+ * @return This function returns PMIC version.
+ */
+unsigned int pmic_get_active_events(unsigned int *active_events)
+{
+ unsigned int count = 0;
+ unsigned int status0, status1;
+ int bit_set;
+
+ pmic_read(REG_INTERRUPT_STATUS_0, &status0);
+ pmic_read(REG_INTERRUPT_STATUS_1, &status1);
+ pmic_write(REG_INTERRUPT_STATUS_0, status0);
+ pmic_write(REG_INTERRUPT_STATUS_1, status1);
+ status0 &= events_enabled0;
+ status1 &= events_enabled1;
+
+ while (status0) {
+ bit_set = ffs(status0) - 1;
+ *(active_events + count) = bit_set;
+ count++;
+ status0 ^= (1 << bit_set);
+ }
+ while (status1) {
+ bit_set = ffs(status1) - 1;
+ *(active_events + count) = bit_set + 24;
+ count++;
+ status1 ^= (1 << bit_set);
+ }
+
+ return count;
+}
+
+/*!
+ * This function unsets a bit in mask register of pmic to unmask an event IT.
+ *
+ * @param event the event to be unmasked
+ *
+ * @return This function returns PMIC_SUCCESS on SUCCESS, error on FAILURE.
+ */
+int pmic_event_unmask(type_event event)
+{
+ unsigned int event_mask = 0;
+ unsigned int mask_reg = 0;
+ unsigned int event_bit = 0;
+ int ret;
+
+ if (event < EVENT_E1HZI) {
+ mask_reg = REG_INTERRUPT_MASK_0;
+ event_mask = EVENT_MASK_0;
+ event_bit = (1 << event);
+ events_enabled0 |= event_bit;
+ } else {
+ event -= 24;
+ mask_reg = REG_INTERRUPT_MASK_1;
+ event_mask = EVENT_MASK_1;
+ event_bit = (1 << event);
+ events_enabled1 |= event_bit;
+ }
+
+ if ((event_bit & event_mask) == 0) {
+ pr_debug("Error: unmasking a reserved/unused event\n");
+ return PMIC_ERROR;
+ }
+
+ ret = pmic_write_reg(mask_reg, 0, event_bit);
+
+ pr_debug("Enable Event : %d\n", event);
+
+ return ret;
+}
+
+/*!
+ * This function sets a bit in mask register of pmic to disable an event IT.
+ *
+ * @param event the event to be masked
+ *
+ * @return This function returns PMIC_SUCCESS on SUCCESS, error on FAILURE.
+ */
+int pmic_event_mask(type_event event)
+{
+ unsigned int event_mask = 0;
+ unsigned int mask_reg = 0;
+ unsigned int event_bit = 0;
+ int ret;
+
+ if (event < EVENT_E1HZI) {
+ mask_reg = REG_INTERRUPT_MASK_0;
+ event_mask = EVENT_MASK_0;
+ event_bit = (1 << event);
+ events_enabled0 &= ~event_bit;
+ } else {
+ event -= 24;
+ mask_reg = REG_INTERRUPT_MASK_1;
+ event_mask = EVENT_MASK_1;
+ event_bit = (1 << event);
+ events_enabled1 &= ~event_bit;
+ }
+
+ if ((event_bit & event_mask) == 0) {
+ pr_debug("Error: masking a reserved/unused event\n");
+ return PMIC_ERROR;
+ }
+
+ ret = pmic_write_reg(mask_reg, event_bit, event_bit);
+
+ pr_debug("Disable Event : %d\n", event);
+
+ return ret;
+}
+
+/*!
+ * This function is called to read all sensor bits of PMIC.
+ *
+ * @param sensor Sensor to be checked.
+ *
+ * @return This function returns true if the sensor bit is high;
+ * or returns false if the sensor bit is low.
+ */
+bool pmic_check_sensor(t_sensor sensor)
+{
+ unsigned int reg_val = 0;
+
+ CHECK_ERROR(pmic_read_reg
+ (REG_INTERRUPT_SENSE_0, &reg_val, PMIC_ALL_BITS));
+
+ if ((1 << sensor) & reg_val)
+ return true;
+ else
+ return false;
+}
+
+/*!
+ * This function checks one sensor of PMIC.
+ *
+ * @param sensor_bits structure of all sensor bits.
+ *
+ * @return This function returns PMIC_SUCCESS on SUCCESS, error on FAILURE.
+ */
+
+PMIC_STATUS pmic_get_sensors(t_sensor_bits *sensor_bits)
+{
+ int sense_0 = 0;
+ int sense_1 = 0;
+
+ memset(sensor_bits, 0, sizeof(t_sensor_bits));
+
+ pmic_read_reg(REG_INTERRUPT_SENSE_0, &sense_0, 0xffffff);
+ pmic_read_reg(REG_INTERRUPT_SENSE_1, &sense_1, 0xffffff);
+
+ sensor_bits->sense_chgdets = (sense_0 & (1 << 6)) ? true : false;
+ sensor_bits->sense_chgovs = (sense_0 & (1 << 7)) ? true : false;
+ sensor_bits->sense_chgrevs = (sense_0 & (1 << 8)) ? true : false;
+ sensor_bits->sense_chgshorts = (sense_0 & (1 << 9)) ? true : false;
+ sensor_bits->sense_cccvs = (sense_0 & (1 << 10)) ? true : false;
+ sensor_bits->sense_chgcurrs = (sense_0 & (1 << 11)) ? true : false;
+ sensor_bits->sense_bpons = (sense_0 & (1 << 12)) ? true : false;
+ sensor_bits->sense_lobatls = (sense_0 & (1 << 13)) ? true : false;
+ sensor_bits->sense_lobaths = (sense_0 & (1 << 14)) ? true : false;
+ sensor_bits->sense_usb4v4s = (sense_0 & (1 << 16)) ? true : false;
+ sensor_bits->sense_usb2v0s = (sense_0 & (1 << 17)) ? true : false;
+ sensor_bits->sense_usb0v8s = (sense_0 & (1 << 18)) ? true : false;
+ sensor_bits->sense_id_floats = (sense_0 & (1 << 19)) ? true : false;
+ sensor_bits->sense_id_gnds = (sense_0 & (1 << 20)) ? true : false;
+ sensor_bits->sense_se1s = (sense_0 & (1 << 21)) ? true : false;
+ sensor_bits->sense_ckdets = (sense_0 & (1 << 22)) ? true : false;
+
+ sensor_bits->sense_onofd1s = (sense_1 & (1 << 3)) ? true : false;
+ sensor_bits->sense_onofd2s = (sense_1 & (1 << 4)) ? true : false;
+ sensor_bits->sense_onofd3s = (sense_1 & (1 << 5)) ? true : false;
+ sensor_bits->sense_pwrrdys = (sense_1 & (1 << 11)) ? true : false;
+ sensor_bits->sense_thwarnhs = (sense_1 & (1 << 12)) ? true : false;
+ sensor_bits->sense_thwarnls = (sense_1 & (1 << 13)) ? true : false;
+ sensor_bits->sense_clks = (sense_1 & (1 << 14)) ? true : false;
+ sensor_bits->sense_mc2bs = (sense_1 & (1 << 17)) ? true : false;
+ sensor_bits->sense_hsdets = (sense_1 & (1 << 18)) ? true : false;
+ sensor_bits->sense_hsls = (sense_1 & (1 << 19)) ? true : false;
+ sensor_bits->sense_alspths = (sense_1 & (1 << 20)) ? true : false;
+ sensor_bits->sense_ahsshorts = (sense_1 & (1 << 21)) ? true : false;
+ return PMIC_SUCCESS;
+}
+
+EXPORT_SYMBOL(pmic_check_sensor);
+EXPORT_SYMBOL(pmic_get_sensors);
diff --git a/drivers/mxc/pmic/core/mc13892.c b/drivers/mxc/pmic/core/mc13892.c
new file mode 100644
index 000000000000..a2cbb1645901
--- /dev/null
+++ b/drivers/mxc/pmic/core/mc13892.c
@@ -0,0 +1,335 @@
+/*
+ * Copyright 2008-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file pmic/core/mc13892.c
+ * @brief This file contains MC13892 specific PMIC code. This implementaion
+ * may differ for each PMIC chip.
+ *
+ * @ingroup PMIC_CORE
+ */
+
+/*
+ * Includes
+ */
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/init.h>
+#include <linux/slab.h>
+#include <linux/device.h>
+#include <linux/spi/spi.h>
+#include <linux/i2c.h>
+#include <linux/delay.h>
+#include <linux/pmic_external.h>
+#include <linux/pmic_status.h>
+#include <linux/mfd/mc13892/core.h>
+
+#include <asm/mach-types.h>
+#include <asm/uaccess.h>
+
+#include "pmic.h"
+
+/*
+ * Defines
+ */
+#define MC13892_I2C_RETRY_TIMES 10
+#define MXC_PMIC_FRAME_MASK 0x00FFFFFF
+#define MXC_PMIC_MAX_REG_NUM 0x3F
+#define MXC_PMIC_REG_NUM_SHIFT 0x19
+#define MXC_PMIC_WRITE_BIT_SHIFT 31
+
+static unsigned int events_enabled0;
+static unsigned int events_enabled1;
+static struct mxc_pmic pmic_drv_data;
+#ifndef CONFIG_MXC_PMIC_I2C
+struct i2c_client *mc13892_client;
+#endif
+
+int pmic_i2c_24bit_read(struct i2c_client *client, unsigned int reg_num,
+ unsigned int *value)
+{
+ unsigned char buf[3];
+ int ret;
+ int i;
+
+ memset(buf, 0, 3);
+ for (i = 0; i < MC13892_I2C_RETRY_TIMES; i++) {
+ ret = i2c_smbus_read_i2c_block_data(client, reg_num, 3, buf);
+ if (ret == 3)
+ break;
+ msleep(1);
+ }
+
+ if (ret == 3) {
+ *value = buf[0] << 16 | buf[1] << 8 | buf[2];
+ return ret;
+ } else {
+ pr_err("24bit read error, ret = %d\n", ret);
+ return -1; /* return -1 on failure */
+ }
+}
+
+int pmic_i2c_24bit_write(struct i2c_client *client,
+ unsigned int reg_num, unsigned int reg_val)
+{
+ char buf[3];
+ int ret;
+ int i;
+
+ buf[0] = (reg_val >> 16) & 0xff;
+ buf[1] = (reg_val >> 8) & 0xff;
+ buf[2] = (reg_val) & 0xff;
+
+ for (i = 0; i < MC13892_I2C_RETRY_TIMES; i++) {
+ ret = i2c_smbus_write_i2c_block_data(client, reg_num, 3, buf);
+ if (ret == 0)
+ break;
+ msleep(1);
+ }
+ if (i == MC13892_I2C_RETRY_TIMES)
+ pr_err("24bit write error, ret = %d\n", ret);
+
+ return ret;
+}
+
+int pmic_read(int reg_num, unsigned int *reg_val)
+{
+ unsigned int frame = 0;
+ int ret = 0;
+
+ if (pmic_drv_data.spi != NULL) {
+ if (reg_num > MXC_PMIC_MAX_REG_NUM)
+ return PMIC_ERROR;
+
+ frame |= reg_num << MXC_PMIC_REG_NUM_SHIFT;
+
+ ret = spi_rw(pmic_drv_data.spi, (u8 *) &frame, 1);
+
+ *reg_val = frame & MXC_PMIC_FRAME_MASK;
+ } else {
+ if (mc13892_client == NULL)
+ return PMIC_ERROR;
+
+ if (pmic_i2c_24bit_read(mc13892_client, reg_num, reg_val) == -1)
+ return PMIC_ERROR;
+ }
+
+ return PMIC_SUCCESS;
+}
+
+int pmic_write(int reg_num, const unsigned int reg_val)
+{
+ unsigned int frame = 0;
+ int ret = 0;
+
+ if (pmic_drv_data.spi != NULL) {
+ if (reg_num > MXC_PMIC_MAX_REG_NUM)
+ return PMIC_ERROR;
+
+ frame |= (1 << MXC_PMIC_WRITE_BIT_SHIFT);
+
+ frame |= reg_num << MXC_PMIC_REG_NUM_SHIFT;
+
+ frame |= reg_val & MXC_PMIC_FRAME_MASK;
+
+ ret = spi_rw(pmic_drv_data.spi, (u8 *) &frame, 1);
+
+ return ret;
+ } else {
+ if (mc13892_client == NULL)
+ return PMIC_ERROR;
+
+ return pmic_i2c_24bit_write(mc13892_client, reg_num, reg_val);
+ }
+}
+
+void *pmic_alloc_data(struct device *dev)
+{
+ struct mc13892 *mc13892;
+
+ mc13892 = kzalloc(sizeof(struct mc13892), GFP_KERNEL);
+ if (mc13892 == NULL)
+ return NULL;
+
+ mc13892->dev = dev;
+
+ return (void *)mc13892;
+}
+
+/*!
+ * This function initializes the SPI device parameters for this PMIC.
+ *
+ * @param spi the SPI slave device(PMIC)
+ *
+ * @return None
+ */
+int pmic_spi_setup(struct spi_device *spi)
+{
+ /* Setup the SPI slave i.e.PMIC */
+ pmic_drv_data.spi = spi;
+
+ spi->mode = SPI_MODE_0 | SPI_CS_HIGH;
+ spi->bits_per_word = 32;
+
+ return spi_setup(spi);
+}
+
+int pmic_init_registers(void)
+{
+ CHECK_ERROR(pmic_write(REG_INT_MASK0, 0xFFFFFF));
+ CHECK_ERROR(pmic_write(REG_INT_MASK0, 0xFFFFFF));
+ CHECK_ERROR(pmic_write(REG_INT_STATUS0, 0xFFFFFF));
+ CHECK_ERROR(pmic_write(REG_INT_STATUS1, 0xFFFFFF));
+ /* disable auto charge */
+ if (machine_is_mx51_3ds())
+ CHECK_ERROR(pmic_write(REG_CHARGE, 0xB40003));
+
+ pm_power_off = mc13892_power_off;
+
+ return PMIC_SUCCESS;
+}
+
+unsigned int pmic_get_active_events(unsigned int *active_events)
+{
+ unsigned int count = 0;
+ unsigned int status0, status1;
+ int bit_set;
+
+ pmic_read(REG_INT_STATUS0, &status0);
+ pmic_read(REG_INT_STATUS1, &status1);
+ pmic_write(REG_INT_STATUS0, status0);
+ pmic_write(REG_INT_STATUS1, status1);
+ status0 &= events_enabled0;
+ status1 &= events_enabled1;
+
+ while (status0) {
+ bit_set = ffs(status0) - 1;
+ *(active_events + count) = bit_set;
+ count++;
+ status0 ^= (1 << bit_set);
+ }
+ while (status1) {
+ bit_set = ffs(status1) - 1;
+ *(active_events + count) = bit_set + 24;
+ count++;
+ status1 ^= (1 << bit_set);
+ }
+
+ return count;
+}
+
+#define EVENT_MASK_0 0x387fff
+#define EVENT_MASK_1 0x1177ef
+
+int pmic_event_unmask(type_event event)
+{
+ unsigned int event_mask = 0;
+ unsigned int mask_reg = 0;
+ unsigned int event_bit = 0;
+ int ret;
+
+ if (event < EVENT_1HZI) {
+ mask_reg = REG_INT_MASK0;
+ event_mask = EVENT_MASK_0;
+ event_bit = (1 << event);
+ events_enabled0 |= event_bit;
+ } else {
+ event -= 24;
+ mask_reg = REG_INT_MASK1;
+ event_mask = EVENT_MASK_1;
+ event_bit = (1 << event);
+ events_enabled1 |= event_bit;
+ }
+
+ if ((event_bit & event_mask) == 0) {
+ pr_debug("Error: unmasking a reserved/unused event\n");
+ return PMIC_ERROR;
+ }
+
+ ret = pmic_write_reg(mask_reg, 0, event_bit);
+
+ pr_debug("Enable Event : %d\n", event);
+
+ return ret;
+}
+
+int pmic_event_mask(type_event event)
+{
+ unsigned int event_mask = 0;
+ unsigned int mask_reg = 0;
+ unsigned int event_bit = 0;
+ int ret;
+
+ if (event < EVENT_1HZI) {
+ mask_reg = REG_INT_MASK0;
+ event_mask = EVENT_MASK_0;
+ event_bit = (1 << event);
+ events_enabled0 &= ~event_bit;
+ } else {
+ event -= 24;
+ mask_reg = REG_INT_MASK1;
+ event_mask = EVENT_MASK_1;
+ event_bit = (1 << event);
+ events_enabled1 &= ~event_bit;
+ }
+
+ if ((event_bit & event_mask) == 0) {
+ pr_debug("Error: masking a reserved/unused event\n");
+ return PMIC_ERROR;
+ }
+
+ ret = pmic_write_reg(mask_reg, event_bit, event_bit);
+
+ pr_debug("Disable Event : %d\n", event);
+
+ return ret;
+}
+
+/*!
+ * This function returns the PMIC version in system.
+ *
+ * @param ver pointer to the pmic_version_t structure
+ *
+ * @return This function returns PMIC version.
+ */
+void pmic_get_revision(pmic_version_t *ver)
+{
+ int rev_id = 0;
+ int rev1 = 0;
+ int rev2 = 0;
+ int finid = 0;
+ int icid = 0;
+
+ ver->id = PMIC_MC13892;
+ pmic_read(REG_IDENTIFICATION, &rev_id);
+
+ rev1 = (rev_id & 0x018) >> 3;
+ rev2 = (rev_id & 0x007);
+ icid = (rev_id & 0x01C0) >> 6;
+ finid = (rev_id & 0x01E00) >> 9;
+
+ ver->revision = ((rev1 * 10) + rev2);
+ printk(KERN_INFO "mc13892 Rev %d.%d FinVer %x detected\n", rev1,
+ rev2, finid);
+}
+
+void mc13892_power_off(void)
+{
+ unsigned int value;
+
+ pmic_read_reg(REG_POWER_CTL0, &value, 0xffffff);
+
+ value |= 0x000008;
+
+ pmic_write_reg(REG_POWER_CTL0, value, 0xffffff);
+}
diff --git a/drivers/mxc/pmic/core/mc34704.c b/drivers/mxc/pmic/core/mc34704.c
new file mode 100644
index 000000000000..e70a45134c6a
--- /dev/null
+++ b/drivers/mxc/pmic/core/mc34704.c
@@ -0,0 +1,329 @@
+/*
+ * Copyright 2008-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file pmic/core/mc34704.c
+ * @brief This file contains MC34704 specific PMIC code.
+ *
+ * @ingroup PMIC_CORE
+ */
+
+/*
+ * Includes
+ */
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/init.h>
+#include <linux/slab.h>
+#include <linux/platform_device.h>
+#include <linux/interrupt.h>
+#include <linux/i2c.h>
+#include <linux/uaccess.h>
+#include <linux/mfd/mc34704/core.h>
+#include <linux/pmic_external.h>
+#include <linux/pmic_status.h>
+
+#include "pmic.h"
+
+/*
+ * Globals
+ */
+static pmic_version_t mxc_pmic_version = {
+ .id = PMIC_MC34704,
+ .revision = 0,
+};
+static unsigned int events_enabled;
+unsigned int active_events[MAX_ACTIVE_EVENTS];
+struct i2c_client *mc34704_client;
+static void pmic_trigger_poll(void);
+
+#define MAX_MC34704_REG 0x59
+static unsigned int mc34704_reg_readonly[MAX_MC34704_REG / 32 + 1] = {
+ (1 << 0x03) || (1 << 0x05) || (1 << 0x07) || (1 << 0x09) ||
+ (1 << 0x0B) || (1 << 0x0E) || (1 << 0x11) || (1 << 0x14) ||
+ (1 << 0x17) || (1 << 0x18),
+ 0,
+};
+static unsigned int mc34704_reg_written[MAX_MC34704_REG / 32 + 1];
+static unsigned char mc34704_shadow_regs[MAX_MC34704_REG - 1];
+#define IS_READONLY(r) ((1 << ((r) % 32)) & mc34704_reg_readonly[(r) / 32])
+#define WAS_WRITTEN(r) ((1 << ((r) % 32)) & mc34704_reg_written[(r) / 32])
+#define MARK_WRITTEN(r) do { \
+ mc34704_reg_written[(r) / 32] |= (1 << ((r) % 32)); \
+} while (0)
+
+int pmic_read(int reg_nr, unsigned int *reg_val)
+{
+ int c;
+
+ /*
+ * Use the shadow register if we've written to it
+ */
+ if (WAS_WRITTEN(reg_nr)) {
+ *reg_val = mc34704_shadow_regs[reg_nr];
+ return PMIC_SUCCESS;
+ }
+
+ /*
+ * Otherwise, actually read the real register.
+ * Write-only registers will read as zero.
+ */
+ c = i2c_smbus_read_byte_data(mc34704_client, reg_nr);
+ if (c == -1) {
+ pr_debug("mc34704: error reading register 0x%02x\n", reg_nr);
+ return PMIC_ERROR;
+ } else {
+ *reg_val = c;
+ return PMIC_SUCCESS;
+ }
+}
+
+int pmic_write(int reg_nr, const unsigned int reg_val)
+{
+ int ret;
+
+ ret = i2c_smbus_write_byte_data(mc34704_client, reg_nr, reg_val);
+ if (ret == -1) {
+ return PMIC_ERROR;
+ } else {
+ /*
+ * Update our software copy of the register since you
+ * can't read what you wrote.
+ */
+ if (!IS_READONLY(reg_nr)) {
+ mc34704_shadow_regs[reg_nr] = reg_val;
+ MARK_WRITTEN(reg_nr);
+ }
+ return PMIC_SUCCESS;
+ }
+}
+
+unsigned int pmic_get_active_events(unsigned int *active_events)
+{
+ unsigned int count = 0;
+ unsigned int faults;
+ int bit_set;
+
+ /* Check for any relevant PMIC faults */
+ pmic_read(REG_MC34704_FAULTS, &faults);
+ faults &= events_enabled;
+
+ /*
+ * Mask all active events, because there is no way to acknowledge
+ * or dismiss them in the PMIC -- they're sticky.
+ */
+ events_enabled &= ~faults;
+
+ /* Account for all unmasked faults */
+ while (faults) {
+ bit_set = ffs(faults) - 1;
+ *(active_events + count) = bit_set;
+ count++;
+ faults ^= (1 << bit_set);
+ }
+ return count;
+}
+
+int pmic_event_unmask(type_event event)
+{
+ unsigned int event_bit = 0;
+ unsigned int prior_events = events_enabled;
+
+ event_bit = (1 << event);
+ events_enabled |= event_bit;
+
+ pr_debug("Enable Event : %d\n", event);
+
+ /* start the polling task as needed */
+ if (events_enabled && prior_events == 0)
+ pmic_trigger_poll();
+
+ return 0;
+}
+
+int pmic_event_mask(type_event event)
+{
+ unsigned int event_bit = 0;
+
+ event_bit = (1 << event);
+ events_enabled &= ~event_bit;
+
+ pr_debug("Disable Event : %d\n", event);
+
+ return 0;
+}
+
+/*!
+ * PMIC event polling task. This task is called periodically to poll
+ * for possible MC34704 events (No interrupt supplied by the hardware).
+ */
+static void pmic_event_task(struct work_struct *work);
+DECLARE_DELAYED_WORK(pmic_ws, pmic_event_task);
+
+static void pmic_trigger_poll(void)
+{
+ schedule_delayed_work(&pmic_ws, HZ / 10);
+}
+
+static void pmic_event_task(struct work_struct *work)
+{
+ unsigned int count = 0;
+ int i;
+
+ count = pmic_get_active_events(active_events);
+ pr_debug("active events number %d\n", count);
+
+ /* call handlers for all active events */
+ for (i = 0; i < count; i++)
+ pmic_event_callback(active_events[i]);
+
+ /* re-trigger this task, but only if somebody is watching */
+ if (events_enabled)
+ pmic_trigger_poll();
+
+ return;
+}
+
+pmic_version_t pmic_get_version(void)
+{
+ return mxc_pmic_version;
+}
+EXPORT_SYMBOL(pmic_get_version);
+
+int __devinit pmic_init_registers(void)
+{
+ /*
+ * Set some registers to what they should be,
+ * if for no other reason than to initialize our
+ * software register copies.
+ */
+ CHECK_ERROR(pmic_write(REG_MC34704_GENERAL2, 0x09));
+ CHECK_ERROR(pmic_write(REG_MC34704_VGSET1, 0));
+ CHECK_ERROR(pmic_write(REG_MC34704_REG2SET1, 0));
+ CHECK_ERROR(pmic_write(REG_MC34704_REG3SET1, 0));
+ CHECK_ERROR(pmic_write(REG_MC34704_REG4SET1, 0));
+ CHECK_ERROR(pmic_write(REG_MC34704_REG5SET1, 0));
+
+ return PMIC_SUCCESS;
+}
+
+static int __devinit is_chip_onboard(struct i2c_client *client)
+{
+ int val;
+
+ /*
+ * This PMIC has no version or ID register, so just see
+ * if it ACK's and returns 0 on some write-only register as
+ * evidence of its presence.
+ */
+ val = i2c_smbus_read_byte_data(client, REG_MC34704_GENERAL2);
+ if (val != 0)
+ return -1;
+
+ return 0;
+}
+
+static int __devinit pmic_probe(struct i2c_client *client,
+ const struct i2c_device_id *id)
+{
+ int ret = 0;
+ struct mc34704 *mc34704;
+ struct mc34704_platform_data *plat_data = client->dev.platform_data;
+
+ if (!plat_data || !plat_data->init)
+ return -ENODEV;
+
+ ret = is_chip_onboard(client);
+
+ if (ret == -1)
+ return -ENODEV;
+
+ mc34704 = kzalloc(sizeof(struct mc34704), GFP_KERNEL);
+ if (mc34704 == NULL)
+ return -ENOMEM;
+
+ i2c_set_clientdata(client, mc34704);
+ mc34704->dev = &client->dev;
+ mc34704->i2c_client = client;
+
+ mc34704_client = client;
+
+ /* Initialize the PMIC event handling */
+ pmic_event_list_init();
+
+ /* Initialize PMI registers */
+ if (pmic_init_registers() != PMIC_SUCCESS)
+ return PMIC_ERROR;
+
+ ret = plat_data->init(mc34704);
+ if (ret != 0)
+ return PMIC_ERROR;
+
+ dev_info(&client->dev, "Loaded\n");
+
+ return PMIC_SUCCESS;
+}
+
+static int pmic_remove(struct i2c_client *client)
+{
+ return 0;
+}
+
+static int pmic_suspend(struct i2c_client *client, pm_message_t state)
+{
+ return 0;
+}
+
+static int pmic_resume(struct i2c_client *client)
+{
+ return 0;
+}
+
+static const struct i2c_device_id mc34704_id[] = {
+ {"mc34704", 0},
+ {},
+};
+
+MODULE_DEVICE_TABLE(i2c, mc34704_id);
+
+static struct i2c_driver pmic_driver = {
+ .driver = {
+ .name = "mc34704",
+ .bus = NULL,
+ },
+ .probe = pmic_probe,
+ .remove = pmic_remove,
+ .suspend = pmic_suspend,
+ .resume = pmic_resume,
+ .id_table = mc34704_id,
+};
+
+static int __init pmic_init(void)
+{
+ return i2c_add_driver(&pmic_driver);
+}
+
+static void __exit pmic_exit(void)
+{
+ i2c_del_driver(&pmic_driver);
+}
+
+/*
+ * Module entry points
+ */
+subsys_initcall_sync(pmic_init);
+module_exit(pmic_exit);
+
+MODULE_DESCRIPTION("MC34704 PMIC driver");
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_LICENSE("GPL");
diff --git a/drivers/mxc/pmic/core/pmic-dev.c b/drivers/mxc/pmic/core/pmic-dev.c
new file mode 100644
index 000000000000..7c457db47b4d
--- /dev/null
+++ b/drivers/mxc/pmic/core/pmic-dev.c
@@ -0,0 +1,316 @@
+/*
+ * Copyright 2005-2010 Freescale Semiconductor, Inc. All rights reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file pmic-dev.c
+ * @brief This provides /dev interface to the user program. They make it
+ * possible to have user-space programs use or control PMIC. Mainly its
+ * useful for notifying PMIC events to user-space programs.
+ *
+ * @ingroup PMIC_CORE
+ */
+
+/*
+ * Includes
+ */
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/device.h>
+#include <linux/kdev_t.h>
+#include <linux/circ_buf.h>
+#include <linux/major.h>
+#include <linux/init.h>
+#include <linux/fs.h>
+#include <linux/poll.h>
+#include <linux/signal.h>
+#include <linux/slab.h>
+#include <linux/pmic_external.h>
+
+#include <asm/uaccess.h>
+
+#define PMIC_NAME "pmic"
+#define CIRC_BUF_MAX 16
+
+static int pmic_major;
+static struct class *pmic_class;
+static struct fasync_struct *pmic_dev_queue;
+
+static DECLARE_MUTEX(event_mutex);
+static struct circ_buf pmic_events;
+
+static void callbackfn(void *event)
+{
+ printk(KERN_INFO "\n\n DETECTED PMIC EVENT : %d\n\n",
+ (unsigned int)event);
+}
+
+static void user_notify_callback(void *event)
+{
+ down(&event_mutex);
+ if (CIRC_SPACE(pmic_events.head, pmic_events.tail, CIRC_BUF_MAX)) {
+ pmic_events.buf[pmic_events.head] = (int)event;
+ pmic_events.head = (pmic_events.head + 1) & (CIRC_BUF_MAX - 1);
+ } else {
+ pr_info("Failed to notify event to the user\n");
+ }
+ up(&event_mutex);
+
+ kill_fasync(&pmic_dev_queue, SIGIO, POLL_IN);
+}
+
+/*!
+ * This function implements IOCTL controls on a PMIC device.
+ *
+ * @param inode pointer on the node
+ * @param file pointer on the file
+ * @param cmd the command
+ * @param arg the parameter
+ * @return This function returns 0 if successful.
+ */
+static int pmic_dev_ioctl(struct inode *inode, struct file *file,
+ unsigned int cmd, unsigned long arg)
+{
+ register_info reg_info;
+ pmic_event_callback_t event_sub;
+ type_event event = EVENT_NB;
+ int ret = 0;
+
+ if (_IOC_TYPE(cmd) != 'P')
+ return -ENOTTY;
+
+ switch (cmd) {
+ case PMIC_READ_REG:
+ if (copy_from_user(&reg_info, (register_info *) arg,
+ sizeof(register_info))) {
+ return -EFAULT;
+ }
+ ret =
+ pmic_read_reg(reg_info.reg, &(reg_info.reg_value),
+ 0x00ffffff);
+ pr_debug("read reg %d %x\n", reg_info.reg, reg_info.reg_value);
+ if (copy_to_user((register_info *) arg, &reg_info,
+ sizeof(register_info))) {
+ return -EFAULT;
+ }
+ break;
+
+ case PMIC_WRITE_REG:
+ if (copy_from_user(&reg_info, (register_info *) arg,
+ sizeof(register_info))) {
+ return -EFAULT;
+ }
+ ret =
+ pmic_write_reg(reg_info.reg, reg_info.reg_value,
+ 0x00ffffff);
+ pr_debug("write reg %d %x\n", reg_info.reg, reg_info.reg_value);
+ if (copy_to_user((register_info *) arg, &reg_info,
+ sizeof(register_info))) {
+ return -EFAULT;
+ }
+ break;
+
+ case PMIC_SUBSCRIBE:
+ if (get_user(event, (int __user *)arg)) {
+ return -EFAULT;
+ }
+ event_sub.func = callbackfn;
+ event_sub.param = (void *)event;
+ ret = pmic_event_subscribe(event, event_sub);
+ pr_debug("subscribe done\n");
+ break;
+
+ case PMIC_UNSUBSCRIBE:
+ if (get_user(event, (int __user *)arg)) {
+ return -EFAULT;
+ }
+ event_sub.func = callbackfn;
+ event_sub.param = (void *)event;
+ ret = pmic_event_unsubscribe(event, event_sub);
+ pr_debug("unsubscribe done\n");
+ break;
+
+ case PMIC_NOTIFY_USER:
+ if (get_user(event, (int __user *)arg)) {
+ return -EFAULT;
+ }
+ event_sub.func = user_notify_callback;
+ event_sub.param = (void *)event;
+ ret = pmic_event_subscribe(event, event_sub);
+ break;
+
+ case PMIC_GET_NOTIFY:
+ down(&event_mutex);
+ if (CIRC_CNT(pmic_events.head, pmic_events.tail, CIRC_BUF_MAX)) {
+ event = (int)pmic_events.buf[pmic_events.tail];
+ pmic_events.tail = (pmic_events.tail + 1) & (CIRC_BUF_MAX - 1);
+ } else {
+ pr_info("No valid notified event\n");
+ }
+ up(&event_mutex);
+
+ if (put_user(event, (int __user *)arg)) {
+ return -EFAULT;
+ }
+ break;
+
+ default:
+ printk(KERN_ERR "%d unsupported ioctl command\n", (int)cmd);
+ return -EINVAL;
+ }
+
+ return ret;
+}
+
+/*!
+ * This function implements the open method on a PMIC device.
+ *
+ * @param inode pointer on the node
+ * @param file pointer on the file
+ * @return This function returns 0.
+ */
+static int pmic_dev_open(struct inode *inode, struct file *file)
+{
+ pr_debug("open\n");
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function implements the release method on a PMIC device.
+ *
+ * @param inode pointer on the node
+ * @param file pointer on the file
+ *
+ * @return This function returns 0.
+ */
+static int pmic_dev_free(struct inode *inode, struct file *file)
+{
+ pr_debug("free\n");
+ return PMIC_SUCCESS;
+}
+
+static int pmic_dev_fasync(int fd, struct file *filp, int mode)
+{
+ return fasync_helper(fd, filp, mode, &pmic_dev_queue);
+}
+
+/*!
+ * This structure defines file operations for a PMIC device.
+ */
+static struct file_operations pmic_fops = {
+ /*!
+ * the owner
+ */
+ .owner = THIS_MODULE,
+ /*!
+ * the ioctl operation
+ */
+ .ioctl = pmic_dev_ioctl,
+ /*!
+ * the open operation
+ */
+ .open = pmic_dev_open,
+ /*!
+ * the release operation
+ */
+ .release = pmic_dev_free,
+ /*!
+ * the release operation
+ */
+ .fasync = pmic_dev_fasync,
+};
+
+/*!
+ * This function implements the init function of the PMIC char device.
+ * This function is called when the module is loaded. It registers
+ * the character device for PMIC to be used by user-space programs.
+ *
+ * @return This function returns 0.
+ */
+static int __init pmic_dev_init(void)
+{
+ int ret = 0;
+ struct device *pmic_device;
+ pmic_version_t pmic_ver;
+
+ pmic_ver = pmic_get_version();
+ if (pmic_ver.revision < 0) {
+ printk(KERN_ERR "No PMIC device found\n");
+ return -ENODEV;
+ }
+
+ pmic_major = register_chrdev(0, PMIC_NAME, &pmic_fops);
+ if (pmic_major < 0) {
+ printk(KERN_ERR "unable to get a major for pmic\n");
+ return pmic_major;
+ }
+
+ pmic_class = class_create(THIS_MODULE, PMIC_NAME);
+ if (IS_ERR(pmic_class)) {
+ printk(KERN_ERR "Error creating pmic class.\n");
+ ret = PMIC_ERROR;
+ goto err;
+ }
+
+ pmic_device = device_create(pmic_class, NULL, MKDEV(pmic_major, 0), NULL,
+ PMIC_NAME);
+ if (IS_ERR(pmic_device)) {
+ printk(KERN_ERR "Error creating pmic class device.\n");
+ ret = PMIC_ERROR;
+ goto err1;
+ }
+
+ pmic_events.buf = kmalloc(CIRC_BUF_MAX * sizeof(char), GFP_KERNEL);
+ if (NULL == pmic_events.buf) {
+ ret = -ENOMEM;
+ goto err2;
+ }
+ pmic_events.head = pmic_events.tail = 0;
+
+ printk(KERN_INFO "PMIC Character device: successfully loaded\n");
+ return ret;
+ err2:
+ device_destroy(pmic_class, MKDEV(pmic_major, 0));
+ err1:
+ class_destroy(pmic_class);
+ err:
+ unregister_chrdev(pmic_major, PMIC_NAME);
+ return ret;
+
+}
+
+/*!
+ * This function implements the exit function of the PMIC character device.
+ * This function is called when the module is unloaded. It unregisters
+ * the PMIC character device.
+ *
+ */
+static void __exit pmic_dev_exit(void)
+{
+ device_destroy(pmic_class, MKDEV(pmic_major, 0));
+ class_destroy(pmic_class);
+
+ unregister_chrdev(pmic_major, PMIC_NAME);
+
+ printk(KERN_INFO "PMIC Character device: successfully unloaded\n");
+}
+
+/*
+ * Module entry points
+ */
+
+module_init(pmic_dev_init);
+module_exit(pmic_dev_exit);
+
+MODULE_DESCRIPTION("PMIC Protocol /dev entries driver");
+MODULE_AUTHOR("FreeScale");
+MODULE_LICENSE("GPL");
diff --git a/drivers/mxc/pmic/core/pmic.h b/drivers/mxc/pmic/core/pmic.h
new file mode 100644
index 000000000000..d4ba34786888
--- /dev/null
+++ b/drivers/mxc/pmic/core/pmic.h
@@ -0,0 +1,138 @@
+/*
+ * Copyright 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+#ifndef __PMIC_H__
+#define __PMIC_H__
+
+ /*!
+ * @file pmic.h
+ * @brief This file contains prototypes of all the functions to be
+ * defined for each PMIC chip. The implementation of these may differ
+ * from PMIC chip to PMIC chip.
+ *
+ * @ingroup PMIC_CORE
+ */
+
+#include <linux/spi/spi.h>
+
+#define MAX_ACTIVE_EVENTS 10
+
+/*!
+ * This structure is a way for the PMIC core driver to define their own
+ * \b spi_device structure. This structure includes the core \b spi_device
+ * structure that is provided by Linux SPI Framework/driver as an
+ * element and may contain other elements that are required by core driver.
+ */
+struct mxc_pmic {
+ /*!
+ * Master side proxy for an SPI slave device(PMIC)
+ */
+ struct spi_device *spi;
+};
+
+/*!
+ * This function is called to transfer data to PMIC on SPI.
+ *
+ * @param spi the SPI slave device(PMIC)
+ * @param buf the pointer to the data buffer
+ * @param len the length of the data to be transferred
+ *
+ * @return Returns 0 on success -1 on failure.
+ */
+static inline int spi_rw(struct spi_device *spi, u8 * buf, size_t len)
+{
+ struct spi_transfer t = {
+ .tx_buf = (const void *)buf,
+ .rx_buf = buf,
+ .len = len,
+ .cs_change = 0,
+ .delay_usecs = 0,
+ };
+ struct spi_message m;
+
+ spi_message_init(&m);
+ spi_message_add_tail(&t, &m);
+ if (spi_sync(spi, &m) != 0 || m.status != 0)
+ return PMIC_ERROR;
+ return len - m.actual_length;
+}
+
+/*!
+ * This function returns the PMIC version in system.
+ *
+ * @param ver pointer to the pmic_version_t structure
+ *
+ * @return This function returns PMIC version.
+ */
+void pmic_get_revision(pmic_version_t *ver);
+
+/*!
+ * This function initializes the SPI device parameters for this PMIC.
+ *
+ * @param spi the SPI slave device(PMIC)
+ *
+ * @return None
+ */
+int pmic_spi_setup(struct spi_device *spi);
+
+/*!
+ * This function initializes the PMIC registers.
+ *
+ * @return None
+ */
+int pmic_init_registers(void);
+
+/*!
+ * This function reads the interrupt status registers of PMIC
+ * and determine the current active events.
+ *
+ * @param active_events array pointer to be used to return active
+ * event numbers.
+ *
+ * @return This function returns PMIC version.
+ */
+unsigned int pmic_get_active_events(unsigned int *active_events);
+
+/*!
+ * This function sets a bit in mask register of pmic to disable an event IT.
+ *
+ * @param event the event to be masked
+ *
+ * @return This function returns PMIC_SUCCESS on SUCCESS, error on FAILURE.
+ */
+int pmic_event_mask(type_event event);
+
+/*!
+ * This function unsets a bit in mask register of pmic to unmask an event IT.
+ *
+ * @param event the event to be unmasked
+ *
+ * @return This function returns PMIC_SUCCESS on SUCCESS, error on FAILURE.
+ */
+int pmic_event_unmask(type_event event);
+
+#ifdef CONFIG_MXC_PMIC_FIXARB
+extern PMIC_STATUS pmic_fix_arbitration(struct spi_device *spi);
+#else
+static inline PMIC_STATUS pmic_fix_arbitration(struct spi_device *spi)
+{
+ return PMIC_SUCCESS;
+}
+#endif
+
+void *pmic_alloc_data(struct device *dev);
+
+int pmic_start_event_thread(int irq_num);
+
+void pmic_stop_event_thread(void);
+
+#endif /* __PMIC_H__ */
diff --git a/drivers/mxc/pmic/core/pmic_common.c b/drivers/mxc/pmic/core/pmic_common.c
new file mode 100644
index 000000000000..7e53121f12b8
--- /dev/null
+++ b/drivers/mxc/pmic/core/pmic_common.c
@@ -0,0 +1,131 @@
+/*
+ * Copyright 2009-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file pmic_common.c
+ * @brief This is the common file for the PMIC Core/Protocol driver.
+ *
+ * @ingroup PMIC_CORE
+ */
+
+/*
+ * Includes
+ */
+
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/init.h>
+#include <linux/slab.h>
+#include <linux/platform_device.h>
+#include <linux/interrupt.h>
+#include <linux/irq.h>
+#include <linux/kthread.h>
+#include <linux/pmic_external.h>
+#include <linux/pmic_status.h>
+
+#include <asm/uaccess.h>
+
+#include "pmic.h"
+
+/*
+ * Global variables
+ */
+pmic_version_t mxc_pmic_version;
+unsigned int active_events[MAX_ACTIVE_EVENTS];
+
+
+static struct completion event_completion;
+static struct task_struct *tstask;
+
+static int pmic_event_thread_func(void *v)
+{
+ unsigned int loop;
+ unsigned int count = 0;
+ unsigned int irq = (int)v;
+
+ while (1) {
+ wait_for_completion_interruptible(
+ &event_completion);
+ if (kthread_should_stop())
+ break;
+
+ count = pmic_get_active_events(
+ active_events);
+ pr_debug("active events number %d\n", count);
+
+ do {
+ for (loop = 0; loop < count; loop++)
+ pmic_event_callback(active_events[loop]);
+
+ count = pmic_get_active_events(active_events);
+
+ } while (count != 0);
+ enable_irq(irq);
+ }
+
+ return 0;
+}
+
+int pmic_start_event_thread(int irq_num)
+{
+ int ret = 0;
+
+ if (tstask)
+ return ret;
+
+ init_completion(&event_completion);
+
+ tstask = kthread_run(pmic_event_thread_func,
+ (void *)irq_num, "pmic-event-thread");
+ ret = IS_ERR(tstask) ? -1 : 0;
+ if (IS_ERR(tstask))
+ tstask = NULL;
+ return ret;
+}
+
+void pmic_stop_event_thread(void)
+{
+ if (tstask) {
+ complete(&event_completion);
+ kthread_stop(tstask);
+ }
+}
+
+/*!
+ * This function is called when pmic interrupt occurs on the processor.
+ * It is the interrupt handler for the pmic module.
+ *
+ * @param irq the irq number
+ * @param dev_id the pointer on the device
+ *
+ * @return The function returns IRQ_HANDLED when handled.
+ */
+irqreturn_t pmic_irq_handler(int irq, void *dev_id)
+{
+ disable_irq_nosync(irq);
+ complete(&event_completion);
+
+ return IRQ_HANDLED;
+}
+
+/*!
+ * This function is used to determine the PMIC type and its revision.
+ *
+ * @return Returns the PMIC type and its revision.
+ */
+
+pmic_version_t pmic_get_version(void)
+{
+ return mxc_pmic_version;
+}
+EXPORT_SYMBOL(pmic_get_version);
diff --git a/drivers/mxc/pmic/core/pmic_core_i2c.c b/drivers/mxc/pmic/core/pmic_core_i2c.c
new file mode 100644
index 000000000000..8dfec5ad4976
--- /dev/null
+++ b/drivers/mxc/pmic/core/pmic_core_i2c.c
@@ -0,0 +1,348 @@
+/*
+ * Copyright 2008-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file pmic_core_i2c.c
+ * @brief This is the main file for the PMIC Core/Protocol driver. i2c
+ * should be providing the interface between the PMIC and the MCU.
+ *
+ * @ingroup PMIC_CORE
+ */
+
+/*
+ * Includes
+ */
+
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/init.h>
+#include <linux/slab.h>
+#include <linux/platform_device.h>
+#include <linux/interrupt.h>
+#include <linux/irq.h>
+#include <linux/i2c.h>
+#include <linux/mfd/mc13892/core.h>
+#include <linux/pmic_external.h>
+#include <linux/pmic_status.h>
+#include <linux/uaccess.h>
+#include <mach/hardware.h>
+
+#include "pmic.h"
+
+#define MC13892_GENERATION_ID_LSH 6
+#define MC13892_IC_ID_LSH 13
+
+#define MC13892_GENERATION_ID_WID 3
+#define MC13892_IC_ID_WID 6
+
+#define MC13892_GEN_ID_VALUE 0x7
+#define MC13892_IC_ID_VALUE 1
+
+/*
+ * Global variables
+ */
+struct i2c_client *mc13892_client;
+
+extern pmic_version_t mxc_pmic_version;
+extern irqreturn_t pmic_irq_handler(int irq, void *dev_id);
+/*
+ * Platform device structure for PMIC client drivers
+ */
+static struct platform_device adc_ldm = {
+ .name = "pmic_adc",
+ .id = 1,
+};
+static struct platform_device battery_ldm = {
+ .name = "pmic_battery",
+ .id = 1,
+};
+static struct platform_device power_ldm = {
+ .name = "pmic_power",
+ .id = 1,
+};
+static struct platform_device rtc_ldm = {
+ .name = "pmic_rtc",
+ .id = 1,
+};
+static struct platform_device light_ldm = {
+ .name = "pmic_light",
+ .id = 1,
+};
+static struct platform_device rleds_ldm = {
+ .name = "pmic_leds",
+ .id = 'r',
+};
+static struct platform_device gleds_ldm = {
+ .name = "pmic_leds",
+ .id = 'g',
+};
+static struct platform_device bleds_ldm = {
+ .name = "pmic_leds",
+ .id = 'b',
+};
+
+static void pmic_pdev_register(struct device *dev)
+{
+ platform_device_register(&adc_ldm);
+
+ if (!cpu_is_mx53())
+ platform_device_register(&battery_ldm);
+
+ platform_device_register(&rtc_ldm);
+ platform_device_register(&power_ldm);
+ platform_device_register(&light_ldm);
+ platform_device_register(&rleds_ldm);
+ platform_device_register(&gleds_ldm);
+ platform_device_register(&bleds_ldm);
+}
+
+/*!
+ * This function unregisters platform device structures for
+ * PMIC client drivers.
+ */
+static void pmic_pdev_unregister(void)
+{
+ platform_device_unregister(&adc_ldm);
+ platform_device_unregister(&battery_ldm);
+ platform_device_unregister(&rtc_ldm);
+ platform_device_unregister(&power_ldm);
+ platform_device_unregister(&light_ldm);
+}
+
+static int __devinit is_chip_onboard(struct i2c_client *client)
+{
+ unsigned int ret = 0;
+
+ /*bind the right device to the driver */
+ if (pmic_i2c_24bit_read(client, REG_IDENTIFICATION, &ret) == -1)
+ return -1;
+
+ if (MC13892_GEN_ID_VALUE != BITFEXT(ret, MC13892_GENERATION_ID)) {
+ /*compare the address value */
+ dev_err(&client->dev,
+ "read generation ID 0x%x is not equal to 0x%x!\n",
+ BITFEXT(ret, MC13892_GENERATION_ID),
+ MC13892_GEN_ID_VALUE);
+ return -1;
+ }
+
+ return 0;
+}
+
+static ssize_t mc13892_show(struct device *dev,
+ struct device_attribute *attr, char *buf)
+{
+ int i, value;
+ int offset = (REG_TEST4 + 1) / 4;
+
+ for (i = 0; i < offset; i++) {
+ pmic_read(i, &value);
+ pr_info("reg%02d: %06x\t\t", i, value);
+ pmic_read(i + offset, &value);
+ pr_info("reg%02d: %06x\t\t", i + offset, value);
+ pmic_read(i + offset * 2, &value);
+ pr_info("reg%02d: %06x\t\t", i + offset * 2, value);
+ pmic_read(i + offset * 3, &value);
+ pr_info("reg%02d: %06x\n", i + offset * 3, value);
+ }
+
+ return 0;
+}
+
+static ssize_t mc13892_store(struct device *dev,
+ struct device_attribute *attr, const char *buf,
+ size_t count)
+{
+ int reg, value, ret;
+ char *p;
+
+ reg = simple_strtoul(buf, NULL, 10);
+
+ p = NULL;
+ p = memchr(buf, ' ', count);
+
+ if (p == NULL) {
+ pmic_read(reg, &value);
+ pr_debug("reg%02d: %06x\n", reg, value);
+ return count;
+ }
+
+ p += 1;
+
+ value = simple_strtoul(p, NULL, 16);
+
+ ret = pmic_write(reg, value);
+ if (ret == 0)
+ pr_debug("write reg%02d: %06x\n", reg, value);
+ else
+ pr_debug("register update failed\n");
+
+ return count;
+}
+
+static struct device_attribute mc13892_dev_attr = {
+ .attr = {
+ .name = "mc13892_ctl",
+ .mode = S_IRUSR | S_IWUSR,
+ },
+ .show = mc13892_show,
+ .store = mc13892_store,
+};
+
+static int __devinit pmic_probe(struct i2c_client *client,
+ const struct i2c_device_id *id)
+{
+ int ret = 0;
+ int pmic_irq;
+ struct mc13892 *mc13892;
+ struct mc13892_platform_data *plat_data = client->dev.platform_data;
+
+ ret = is_chip_onboard(client);
+ if (ret == -1)
+ return -ENODEV;
+
+ mc13892 = kzalloc(sizeof(struct mc13892), GFP_KERNEL);
+ if (mc13892 == NULL)
+ return -ENOMEM;
+
+ i2c_set_clientdata(client, mc13892);
+ mc13892->dev = &client->dev;
+ mc13892->i2c_client = client;
+
+ /* so far, we got matched chip on board */
+
+ mc13892_client = client;
+
+ /* Initialize the PMIC event handling */
+ pmic_event_list_init();
+
+ /* Initialize GPIO for PMIC Interrupt */
+ gpio_pmic_active();
+
+ /* Get the PMIC Version */
+ pmic_get_revision(&mxc_pmic_version);
+ if (mxc_pmic_version.revision < 0) {
+ dev_err((struct device *)client,
+ "PMIC not detected!!! Access Failed\n");
+ return -ENODEV;
+ } else {
+ dev_dbg((struct device *)client,
+ "Detected pmic core IC version number is %d\n",
+ mxc_pmic_version.revision);
+ }
+
+ /* Initialize the PMIC parameters */
+ ret = pmic_init_registers();
+ if (ret != PMIC_SUCCESS)
+ return PMIC_ERROR;
+
+ pmic_irq = (int)(client->irq);
+ if (pmic_irq == 0)
+ return PMIC_ERROR;
+
+ ret = pmic_start_event_thread(pmic_irq);
+ if (ret) {
+ pr_err("mc13892 pmic driver init: \
+ fail to start event thread\n");
+ return PMIC_ERROR;
+ }
+
+ /* Set and install PMIC IRQ handler */
+
+ set_irq_type(pmic_irq, IRQF_TRIGGER_HIGH);
+
+ ret =
+ request_irq(pmic_irq, pmic_irq_handler, 0, "PMIC_IRQ",
+ 0);
+
+ if (ret) {
+ dev_err(&client->dev, "request irq %d error!\n", pmic_irq);
+ return ret;
+ }
+ enable_irq_wake(pmic_irq);
+
+ if (plat_data && plat_data->init) {
+ ret = plat_data->init(mc13892);
+ if (ret != 0)
+ return PMIC_ERROR;
+ }
+
+ ret = device_create_file(&client->dev, &mc13892_dev_attr);
+ if (ret)
+ dev_err(&client->dev, "create device file failed!\n");
+
+ pmic_pdev_register(&client->dev);
+
+ dev_info(&client->dev, "Loaded\n");
+
+ return PMIC_SUCCESS;
+}
+
+static int pmic_remove(struct i2c_client *client)
+{
+ int pmic_irq = (int)(client->irq);
+
+ pmic_stop_event_thread();
+ free_irq(pmic_irq, 0);
+ pmic_pdev_unregister();
+ return 0;
+}
+
+static int pmic_suspend(struct i2c_client *client, pm_message_t state)
+{
+ return 0;
+}
+
+static int pmic_resume(struct i2c_client *client)
+{
+ return 0;
+}
+
+static const struct i2c_device_id mc13892_id[] = {
+ {"mc13892", 0},
+ {},
+};
+
+MODULE_DEVICE_TABLE(i2c, mc13892_id);
+
+static struct i2c_driver pmic_driver = {
+ .driver = {
+ .name = "mc13892",
+ .bus = NULL,
+ },
+ .probe = pmic_probe,
+ .remove = pmic_remove,
+ .suspend = pmic_suspend,
+ .resume = pmic_resume,
+ .id_table = mc13892_id,
+};
+
+static int __init pmic_init(void)
+{
+ return i2c_add_driver(&pmic_driver);
+}
+
+static void __exit pmic_exit(void)
+{
+ i2c_del_driver(&pmic_driver);
+}
+
+/*
+ * Module entry points
+ */
+subsys_initcall_sync(pmic_init);
+module_exit(pmic_exit);
+
+MODULE_DESCRIPTION("Core/Protocol driver for PMIC");
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_LICENSE("GPL");
diff --git a/drivers/mxc/pmic/core/pmic_core_spi.c b/drivers/mxc/pmic/core/pmic_core_spi.c
new file mode 100644
index 000000000000..5461dbe3f0f0
--- /dev/null
+++ b/drivers/mxc/pmic/core/pmic_core_spi.c
@@ -0,0 +1,303 @@
+/*
+ * Copyright 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file pmic_core_spi.c
+ * @brief This is the main file for the PMIC Core/Protocol driver. SPI
+ * should be providing the interface between the PMIC and the MCU.
+ *
+ * @ingroup PMIC_CORE
+ */
+
+/*
+ * Includes
+ */
+
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/init.h>
+#include <linux/slab.h>
+#include <linux/platform_device.h>
+#include <linux/interrupt.h>
+#include <linux/irq.h>
+#include <linux/spi/spi.h>
+#include <linux/pmic_external.h>
+#include <linux/pmic_status.h>
+
+#include <asm/uaccess.h>
+
+#include "pmic.h"
+
+/*
+ * Static functions
+ */
+static void pmic_pdev_register(void);
+static void pmic_pdev_unregister(void);
+
+/*
+ * Platform device structure for PMIC client drivers
+ */
+static struct platform_device adc_ldm = {
+ .name = "pmic_adc",
+ .id = 1,
+};
+static struct platform_device battery_ldm = {
+ .name = "pmic_battery",
+ .id = 1,
+};
+static struct platform_device power_ldm = {
+ .name = "pmic_power",
+ .id = 1,
+};
+static struct platform_device rtc_ldm = {
+ .name = "pmic_rtc",
+ .id = 1,
+};
+static struct platform_device light_ldm = {
+ .name = "pmic_light",
+ .id = 1,
+};
+static struct platform_device rleds_ldm = {
+ .name = "pmic_leds",
+ .id = 'r',
+};
+static struct platform_device gleds_ldm = {
+ .name = "pmic_leds",
+ .id = 'g',
+};
+static struct platform_device bleds_ldm = {
+ .name = "pmic_leds",
+ .id = 'b',
+};
+
+/*
+ * External functions
+ */
+extern void pmic_event_list_init(void);
+extern void pmic_event_callback(type_event event);
+extern void gpio_pmic_active(void);
+extern irqreturn_t pmic_irq_handler(int irq, void *dev_id);
+extern pmic_version_t mxc_pmic_version;
+
+/*!
+ * This function registers platform device structures for
+ * PMIC client drivers.
+ */
+static void pmic_pdev_register(void)
+{
+ platform_device_register(&adc_ldm);
+ platform_device_register(&battery_ldm);
+ platform_device_register(&rtc_ldm);
+ platform_device_register(&power_ldm);
+ platform_device_register(&light_ldm);
+ platform_device_register(&rleds_ldm);
+ platform_device_register(&gleds_ldm);
+ platform_device_register(&bleds_ldm);
+}
+
+/*!
+ * This function unregisters platform device structures for
+ * PMIC client drivers.
+ */
+static void pmic_pdev_unregister(void)
+{
+ platform_device_unregister(&adc_ldm);
+ platform_device_unregister(&battery_ldm);
+ platform_device_unregister(&rtc_ldm);
+ platform_device_unregister(&power_ldm);
+ platform_device_unregister(&light_ldm);
+}
+
+/*!
+ * This function puts the SPI slave device in low-power mode/state.
+ *
+ * @param spi the SPI slave device
+ * @param message the power state to enter
+ *
+ * @return Returns 0 on SUCCESS and error on FAILURE.
+ */
+static int pmic_suspend(struct spi_device *spi, pm_message_t message)
+{
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function brings the SPI slave device back from low-power mode/state.
+ *
+ * @param spi the SPI slave device
+ *
+ * @return Returns 0 on SUCCESS and error on FAILURE.
+ */
+static int pmic_resume(struct spi_device *spi)
+{
+ return PMIC_SUCCESS;
+}
+
+static struct spi_driver pmic_driver;
+
+/*!
+ * This function is called whenever the SPI slave device is detected.
+ *
+ * @param spi the SPI slave device
+ *
+ * @return Returns 0 on SUCCESS and error on FAILURE.
+ */
+static int __devinit pmic_probe(struct spi_device *spi)
+{
+ int ret = 0;
+ struct pmic_platform_data *plat_data = spi->dev.platform_data;
+
+ /* Initialize the PMIC parameters */
+ ret = pmic_spi_setup(spi);
+ if (ret != PMIC_SUCCESS) {
+ return PMIC_ERROR;
+ }
+
+ /* Initialize the PMIC event handling */
+ pmic_event_list_init();
+
+ /* Initialize GPIO for PMIC Interrupt */
+ gpio_pmic_active();
+
+ /* Get the PMIC Version */
+ pmic_get_revision(&mxc_pmic_version);
+ if (mxc_pmic_version.revision < 0) {
+ dev_err((struct device *)spi,
+ "PMIC not detected!!! Access Failed\n");
+ return -ENODEV;
+ } else {
+ dev_dbg((struct device *)spi,
+ "Detected pmic core IC version number is %d\n",
+ mxc_pmic_version.revision);
+ }
+
+ spi_set_drvdata(spi, pmic_alloc_data(&(spi->dev)));
+
+ /* Initialize the PMIC parameters */
+ ret = pmic_init_registers();
+ if (ret != PMIC_SUCCESS) {
+ kfree(spi_get_drvdata(spi));
+ spi_set_drvdata(spi, NULL);
+ return PMIC_ERROR;
+ }
+
+ ret = pmic_start_event_thread(spi->irq);
+ if (ret) {
+ pr_err("mc13892 pmic driver init: \
+ fail to start event thread\n");
+ kfree(spi_get_drvdata(spi));
+ spi_set_drvdata(spi, NULL);
+ return PMIC_ERROR;
+ }
+
+ /* Set and install PMIC IRQ handler */
+ set_irq_type(spi->irq, IRQF_TRIGGER_HIGH);
+ ret = request_irq(spi->irq, pmic_irq_handler, 0, "PMIC_IRQ", 0);
+ if (ret) {
+ kfree(spi_get_drvdata(spi));
+ spi_set_drvdata(spi, NULL);
+ dev_err((struct device *)spi, "gpio1: irq%d error.", spi->irq);
+ return ret;
+ }
+
+ enable_irq_wake(spi->irq);
+
+ if (plat_data && plat_data->init) {
+ ret = plat_data->init(spi_get_drvdata(spi));
+ if (ret != 0) {
+ kfree(spi_get_drvdata(spi));
+ spi_set_drvdata(spi, NULL);
+ return PMIC_ERROR;
+ }
+ }
+
+ power_ldm.dev.platform_data = spi->dev.platform_data;
+
+ pmic_pdev_register();
+
+ printk(KERN_INFO "Device %s probed\n", dev_name(&spi->dev));
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function is called whenever the SPI slave device is removed.
+ *
+ * @param spi the SPI slave device
+ *
+ * @return Returns 0 on SUCCESS and error on FAILURE.
+ */
+static int __devexit pmic_remove(struct spi_device *spi)
+{
+ pmic_stop_event_thread();
+ free_irq(spi->irq, 0);
+
+ pmic_pdev_unregister();
+
+ printk(KERN_INFO "Device %s removed\n", dev_name(&spi->dev));
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This structure contains pointers to the power management callback functions.
+ */
+static struct spi_driver pmic_driver = {
+ .driver = {
+ .name = "pmic_spi",
+ .bus = &spi_bus_type,
+ .owner = THIS_MODULE,
+ },
+ .probe = pmic_probe,
+ .remove = __devexit_p(pmic_remove),
+ .suspend = pmic_suspend,
+ .resume = pmic_resume,
+};
+
+/*
+ * Initialization and Exit
+ */
+
+/*!
+ * This function implements the init function of the PMIC device.
+ * This function is called when the module is loaded. It registers
+ * the PMIC Protocol driver.
+ *
+ * @return This function returns 0.
+ */
+static int __init pmic_init(void)
+{
+ return spi_register_driver(&pmic_driver);
+}
+
+/*!
+ * This function implements the exit function of the PMIC device.
+ * This function is called when the module is unloaded. It unregisters
+ * the PMIC Protocol driver.
+ *
+ */
+static void __exit pmic_exit(void)
+{
+ pr_debug("Unregistering the PMIC Protocol Driver\n");
+ spi_unregister_driver(&pmic_driver);
+}
+
+/*
+ * Module entry points
+ */
+subsys_initcall_sync(pmic_init);
+module_exit(pmic_exit);
+
+MODULE_DESCRIPTION("Core/Protocol driver for PMIC");
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_LICENSE("GPL");
diff --git a/drivers/mxc/pmic/core/pmic_event.c b/drivers/mxc/pmic/core/pmic_event.c
new file mode 100644
index 000000000000..c8ffc63a4973
--- /dev/null
+++ b/drivers/mxc/pmic/core/pmic_event.c
@@ -0,0 +1,236 @@
+/*
+ * Copyright 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file pmic_event.c
+ * @brief This file manage all event of PMIC component.
+ *
+ * It contains event subscription, unsubscription and callback
+ * launch methods implemeted.
+ *
+ * @ingroup PMIC_CORE
+ */
+
+/*
+ * Includes
+ */
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/init.h>
+#include <linux/device.h>
+#include <linux/slab.h>
+#include <linux/errno.h>
+#include <linux/interrupt.h>
+#include <linux/list.h>
+#include <linux/mutex.h>
+#include <linux/pmic_external.h>
+#include <linux/pmic_status.h>
+#include "pmic.h"
+
+/*!
+ * This structure is used to keep a list of subscribed
+ * callbacks for an event.
+ */
+typedef struct {
+ /*!
+ * Keeps a list of subscribed clients to an event.
+ */
+ struct list_head list;
+
+ /*!
+ * Callback function with parameter, called when event occurs
+ */
+ pmic_event_callback_t callback;
+} pmic_event_callback_list_t;
+
+/* Create a mutex to be used to prevent concurrent access to the event list */
+static DEFINE_MUTEX(event_mutex);
+
+/* This is a pointer to the event handler array. It defines the currently
+ * active set of events and user-defined callback functions.
+ */
+static struct list_head pmic_events[PMIC_MAX_EVENTS];
+
+/*!
+ * This function initializes event list for PMIC event handling.
+ *
+ */
+void pmic_event_list_init(void)
+{
+ int i;
+
+ for (i = 0; i < PMIC_MAX_EVENTS; i++) {
+ INIT_LIST_HEAD(&pmic_events[i]);
+ }
+
+ mutex_init(&event_mutex);
+ return;
+}
+
+/*!
+ * This function is used to subscribe on an event.
+ *
+ * @param event the event number to be subscribed
+ * @param callback the callback funtion to be subscribed
+ *
+ * @return This function returns 0 on SUCCESS, error on FAILURE.
+ */
+PMIC_STATUS pmic_event_subscribe(type_event event,
+ pmic_event_callback_t callback)
+{
+ pmic_event_callback_list_t *new = NULL;
+
+ pr_debug("Event:%d Subscribe\n", event);
+
+ /* Check whether the event & callback are valid? */
+ if (event >= PMIC_MAX_EVENTS) {
+ pr_debug("Invalid Event:%d\n", event);
+ return -EINVAL;
+ }
+ if (NULL == callback.func) {
+ pr_debug("Null or Invalid Callback\n");
+ return -EINVAL;
+ }
+
+ /* Create a new linked list entry */
+ new = kmalloc(sizeof(pmic_event_callback_list_t), GFP_KERNEL);
+ if (NULL == new) {
+ return -ENOMEM;
+ }
+ /* Initialize the list node fields */
+ new->callback.func = callback.func;
+ new->callback.param = callback.param;
+ INIT_LIST_HEAD(&new->list);
+
+ /* Obtain the lock to access the list */
+ if (mutex_lock_interruptible(&event_mutex)) {
+ kfree(new);
+ return PMIC_SYSTEM_ERROR_EINTR;
+ }
+
+ /* Unmask the requested event */
+ if (list_empty(&pmic_events[event])) {
+ if (pmic_event_unmask(event) != PMIC_SUCCESS) {
+ kfree(new);
+ mutex_unlock(&event_mutex);
+ return PMIC_ERROR;
+ }
+ }
+
+ /* Add this entry to the event list */
+ list_add_tail(&new->list, &pmic_events[event]);
+
+ /* Release the lock */
+ mutex_unlock(&event_mutex);
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function is used to unsubscribe on an event.
+ *
+ * @param event the event number to be unsubscribed
+ * @param callback the callback funtion to be unsubscribed
+ *
+ * @return This function returns 0 on SUCCESS, error on FAILURE.
+ */
+PMIC_STATUS pmic_event_unsubscribe(type_event event,
+ pmic_event_callback_t callback)
+{
+ struct list_head *p;
+ struct list_head *n;
+ pmic_event_callback_list_t *temp = NULL;
+ int ret = PMIC_EVENT_NOT_SUBSCRIBED;
+
+ pr_debug("Event:%d Unsubscribe\n", event);
+
+ /* Check whether the event & callback are valid? */
+ if (event >= PMIC_MAX_EVENTS) {
+ pr_debug("Invalid Event:%d\n", event);
+ return -EINVAL;
+ }
+
+ if (NULL == callback.func) {
+ pr_debug("Null or Invalid Callback\n");
+ return -EINVAL;
+ }
+
+ /* Obtain the lock to access the list */
+ if (mutex_lock_interruptible(&event_mutex)) {
+ return PMIC_SYSTEM_ERROR_EINTR;
+ }
+
+ /* Find the entry in the list */
+ list_for_each_safe(p, n, &pmic_events[event]) {
+ temp = list_entry(p, pmic_event_callback_list_t, list);
+ if (temp->callback.func == callback.func
+ && temp->callback.param == callback.param) {
+ /* Remove the entry from the list */
+ list_del(p);
+ kfree(temp);
+ ret = PMIC_SUCCESS;
+ break;
+ }
+ }
+
+ /* Unmask the requested event */
+ if (list_empty(&pmic_events[event])) {
+ if (pmic_event_mask(event) != PMIC_SUCCESS) {
+ ret = PMIC_UNSUBSCRIBE_ERROR;
+ }
+ }
+
+ /* Release the lock */
+ mutex_unlock(&event_mutex);
+
+ return ret;
+}
+
+/*!
+ * This function calls all callback of a specific event.
+ *
+ * @param event the active event number
+ *
+ * @return None
+ */
+void pmic_event_callback(type_event event)
+{
+ struct list_head *p;
+ pmic_event_callback_list_t *temp = NULL;
+
+ /* Obtain the lock to access the list */
+ if (mutex_lock_interruptible(&event_mutex)) {
+ return;
+ }
+
+ if (list_empty(&pmic_events[event])) {
+ pr_debug("PMIC Event:%d detected. No callback subscribed\n",
+ event);
+ mutex_unlock(&event_mutex);
+ return;
+ }
+
+ list_for_each(p, &pmic_events[event]) {
+ temp = list_entry(p, pmic_event_callback_list_t, list);
+ temp->callback.func(temp->callback.param);
+ }
+
+ /* Release the lock */
+ mutex_unlock(&event_mutex);
+
+ return;
+
+}
+
+EXPORT_SYMBOL(pmic_event_subscribe);
+EXPORT_SYMBOL(pmic_event_unsubscribe);
diff --git a/drivers/mxc/pmic/core/pmic_external.c b/drivers/mxc/pmic/core/pmic_external.c
new file mode 100644
index 000000000000..02318ed959bb
--- /dev/null
+++ b/drivers/mxc/pmic/core/pmic_external.c
@@ -0,0 +1,100 @@
+/*
+ * Copyright 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file pmic_external.c
+ * @brief This file contains all external functions of PMIC drivers.
+ *
+ * @ingroup PMIC_CORE
+ */
+
+/*
+ * Includes
+ */
+#include <linux/module.h>
+#include <linux/interrupt.h>
+#include <linux/wait.h>
+#include <linux/init.h>
+#include <linux/errno.h>
+
+#include <linux/pmic_external.h>
+#include <linux/pmic_status.h>
+
+/*
+ * External Functions
+ */
+extern int pmic_read(int reg_num, unsigned int *reg_val);
+extern int pmic_write(int reg_num, const unsigned int reg_val);
+
+/*!
+ * This function is called by PMIC clients to read a register on PMIC.
+ *
+ * @param reg number of register
+ * @param reg_value return value of register
+ * @param reg_mask Bitmap mask indicating which bits to modify
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_read_reg(int reg, unsigned int *reg_value,
+ unsigned int reg_mask)
+{
+ int ret = 0;
+ unsigned int temp = 0;
+
+ ret = pmic_read(reg, &temp);
+ if (ret != PMIC_SUCCESS) {
+ return PMIC_ERROR;
+ }
+ *reg_value = (temp & reg_mask);
+
+ pr_debug("Read REG[ %d ] = 0x%x\n", reg, *reg_value);
+
+ return ret;
+}
+
+/*!
+ * This function is called by PMIC clients to write a register on PMIC.
+ *
+ * @param reg number of register
+ * @param reg_value New value of register
+ * @param reg_mask Bitmap mask indicating which bits to modify
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_write_reg(int reg, unsigned int reg_value,
+ unsigned int reg_mask)
+{
+ int ret = 0;
+ unsigned int temp = 0;
+
+ ret = pmic_read(reg, &temp);
+ if (ret != PMIC_SUCCESS) {
+ return PMIC_ERROR;
+ }
+ temp = (temp & (~reg_mask)) | reg_value;
+#ifdef CONFIG_MXC_PMIC_MC13783
+ if (reg == REG_POWER_MISCELLANEOUS)
+ temp &= 0xFFFE7FFF;
+#endif
+ ret = pmic_write(reg, temp);
+ if (ret != PMIC_SUCCESS) {
+ return PMIC_ERROR;
+ }
+
+ pr_debug("Write REG[ %d ] = 0x%x\n", reg, reg_value);
+
+ return ret;
+}
+
+EXPORT_SYMBOL(pmic_read_reg);
+EXPORT_SYMBOL(pmic_write_reg);
diff --git a/drivers/mxc/pmic/mc13783/Kconfig b/drivers/mxc/pmic/mc13783/Kconfig
new file mode 100644
index 000000000000..02496c624e2e
--- /dev/null
+++ b/drivers/mxc/pmic/mc13783/Kconfig
@@ -0,0 +1,55 @@
+#
+# PMIC Modules configuration
+#
+
+config MXC_MC13783_ADC
+ tristate "MC13783 ADC support"
+ depends on MXC_PMIC_MC13783
+ ---help---
+ This is the MC13783 ADC module driver. This module provides kernel API
+ for the ADC system of MC13783.
+ It controls also the touch screen interface.
+ If you want MC13783 ADC support, you should say Y here
+
+config MXC_MC13783_AUDIO
+ tristate "MC13783 Audio support"
+ depends on MXC_PMIC_MC13783
+ ---help---
+ This is the MC13783 audio module driver. This module provides kernel API
+ for audio part of MC13783.
+ If you want MC13783 audio support, you should say Y here
+config MXC_MC13783_RTC
+ tristate "MC13783 Real Time Clock (RTC) support"
+ depends on MXC_PMIC_MC13783
+ ---help---
+ This is the MC13783 RTC module driver. This module provides kernel API
+ for RTC part of MC13783.
+ If you want MC13783 RTC support, you should say Y here
+config MXC_MC13783_LIGHT
+ tristate "MC13783 Light and Backlight support"
+ depends on MXC_PMIC_MC13783
+ ---help---
+ This is the MC13783 Light module driver. This module provides kernel API
+ for led and backlight control part of MC13783.
+ If you want MC13783 Light support, you should say Y here
+config MXC_MC13783_BATTERY
+ tristate "MC13783 Battery API support"
+ depends on MXC_PMIC_MC13783
+ ---help---
+ This is the MC13783 battery module driver. This module provides kernel API
+ for battery control part of MC13783.
+ If you want MC13783 battery support, you should say Y here
+config MXC_MC13783_CONNECTIVITY
+ tristate "MC13783 Connectivity API support"
+ depends on MXC_PMIC_MC13783
+ ---help---
+ This is the MC13783 connectivity module driver. This module provides kernel API
+ for USB/RS232 connectivity control part of MC13783.
+ If you want MC13783 connectivity support, you should say Y here
+config MXC_MC13783_POWER
+ tristate "MC13783 Power API support"
+ depends on MXC_PMIC_MC13783
+ ---help---
+ This is the MC13783 power and supplies module driver. This module provides kernel API
+ for power and regulator control part of MC13783.
+ If you want MC13783 power support, you should say Y here
diff --git a/drivers/mxc/pmic/mc13783/Makefile b/drivers/mxc/pmic/mc13783/Makefile
new file mode 100644
index 000000000000..7bbba23f5ab9
--- /dev/null
+++ b/drivers/mxc/pmic/mc13783/Makefile
@@ -0,0 +1,18 @@
+#
+# Makefile for the mc13783 pmic drivers.
+#
+
+obj-$(CONFIG_MXC_MC13783_ADC) += pmic_adc-mod.o
+obj-$(CONFIG_MXC_MC13783_AUDIO) += pmic_audio-mod.o
+obj-$(CONFIG_MXC_MC13783_RTC) += pmic_rtc-mod.o
+obj-$(CONFIG_MXC_MC13783_LIGHT) += pmic_light-mod.o
+obj-$(CONFIG_MXC_MC13783_BATTERY) += pmic_battery-mod.o
+obj-$(CONFIG_MXC_MC13783_CONNECTIVITY) += pmic_convity-mod.o
+obj-$(CONFIG_MXC_MC13783_POWER) += pmic_power-mod.o
+pmic_adc-mod-objs := pmic_adc.o
+pmic_audio-mod-objs := pmic_audio.o
+pmic_rtc-mod-objs := pmic_rtc.o
+pmic_light-mod-objs := pmic_light.o
+pmic_battery-mod-objs := pmic_battery.o
+pmic_convity-mod-objs := pmic_convity.o
+pmic_power-mod-objs := pmic_power.o
diff --git a/drivers/mxc/pmic/mc13783/pmic_adc.c b/drivers/mxc/pmic/mc13783/pmic_adc.c
new file mode 100644
index 000000000000..482d0ee08e39
--- /dev/null
+++ b/drivers/mxc/pmic/mc13783/pmic_adc.c
@@ -0,0 +1,1541 @@
+/*
+ * Copyright 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file mc13783/pmic_adc.c
+ * @brief This is the main file of PMIC(mc13783) ADC driver.
+ *
+ * @ingroup PMIC_ADC
+ */
+
+/*
+ * Includes
+ */
+
+#include <linux/slab.h>
+#include <linux/platform_device.h>
+#include <linux/poll.h>
+#include <linux/sched.h>
+#include <linux/time.h>
+#include <linux/delay.h>
+#include <linux/wait.h>
+#include <linux/pmic_adc.h>
+#include <linux/pmic_status.h>
+
+#include "../core/pmic.h"
+#include "pmic_adc_defs.h"
+
+#define NB_ADC_REG 5
+
+static int pmic_adc_major;
+
+/* internal function */
+static void callback_tsi(void *);
+static void callback_adcdone(void *);
+static void callback_adcbisdone(void *);
+static void callback_adc_comp_high(void *);
+
+/*!
+ * Number of users waiting in suspendq
+ */
+static int swait;
+
+/*!
+ * To indicate whether any of the adc devices are suspending
+ */
+static int suspend_flag;
+
+/*!
+ * The suspendq is used by blocking application calls
+ */
+static wait_queue_head_t suspendq;
+
+static struct class *pmic_adc_class;
+
+/*
+ * ADC mc13783 API
+ */
+/* EXPORTED FUNCTIONS */
+EXPORT_SYMBOL(pmic_adc_init);
+EXPORT_SYMBOL(pmic_adc_deinit);
+EXPORT_SYMBOL(pmic_adc_convert);
+EXPORT_SYMBOL(pmic_adc_convert_8x);
+EXPORT_SYMBOL(pmic_adc_convert_multichnnel);
+EXPORT_SYMBOL(pmic_adc_set_touch_mode);
+EXPORT_SYMBOL(pmic_adc_get_touch_mode);
+EXPORT_SYMBOL(pmic_adc_get_touch_sample);
+EXPORT_SYMBOL(pmic_adc_get_battery_current);
+EXPORT_SYMBOL(pmic_adc_active_comparator);
+EXPORT_SYMBOL(pmic_adc_deactive_comparator);
+
+static DECLARE_COMPLETION(adcdone_it);
+static DECLARE_COMPLETION(adcbisdone_it);
+static DECLARE_COMPLETION(adc_tsi);
+static pmic_event_callback_t tsi_event;
+static pmic_event_callback_t event_adc;
+static pmic_event_callback_t event_adc_bis;
+static pmic_event_callback_t adc_comp_h;
+static bool data_ready_adc_1;
+static bool data_ready_adc_2;
+static bool adc_ts;
+static bool wait_ts;
+static bool monitor_en;
+static bool monitor_adc;
+static t_check_mode wcomp_mode;
+static DECLARE_MUTEX(convert_mutex);
+
+void (*monitoring_cb) (void); /*call back to be called when event is detected. */
+
+static DECLARE_WAIT_QUEUE_HEAD(queue_adc_busy);
+static t_adc_state adc_dev[2];
+
+static unsigned channel_num[] = {
+ 0,
+ 1,
+ 3,
+ 4,
+ 2,
+ 12,
+ 13,
+ 14,
+ 15,
+ -1,
+ 5,
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 7,
+ 6,
+ -1,
+ -1,
+ -1,
+ -1,
+ 5,
+ 7
+};
+
+static bool pmic_adc_ready;
+
+int is_pmic_adc_ready()
+{
+ return pmic_adc_ready;
+}
+EXPORT_SYMBOL(is_pmic_adc_ready);
+
+
+/*!
+ * This is the suspend of power management for the mc13783 ADC API.
+ * It supports SAVE and POWER_DOWN state.
+ *
+ * @param pdev the device
+ * @param state the state
+ *
+ * @return This function returns 0 if successful.
+ */
+static int pmic_adc_suspend(struct platform_device *pdev, pm_message_t state)
+{
+ unsigned int reg_value = 0;
+ suspend_flag = 1;
+ CHECK_ERROR(pmic_write_reg(REG_ADC_0, DEF_ADC_0, PMIC_ALL_BITS));
+ CHECK_ERROR(pmic_write_reg(REG_ADC_1, reg_value, PMIC_ALL_BITS));
+ CHECK_ERROR(pmic_write_reg(REG_ADC_2, reg_value, PMIC_ALL_BITS));
+ CHECK_ERROR(pmic_write_reg(REG_ADC_3, DEF_ADC_3, PMIC_ALL_BITS));
+ CHECK_ERROR(pmic_write_reg(REG_ADC_4, reg_value, PMIC_ALL_BITS));
+
+ return 0;
+};
+
+/*!
+ * This is the resume of power management for the mc13783 adc API.
+ * It supports RESTORE state.
+ *
+ * @param pdev the device
+ *
+ * @return This function returns 0 if successful.
+ */
+static int pmic_adc_resume(struct platform_device *pdev)
+{
+ /* nothing for mc13783 adc */
+ unsigned int adc_0_reg, adc_1_reg;
+ suspend_flag = 0;
+
+ /* let interrupt of TSI again */
+ adc_0_reg = ADC_WAIT_TSI_0;
+ CHECK_ERROR(pmic_write_reg(REG_ADC_0, adc_0_reg, PMIC_ALL_BITS));
+ adc_1_reg = ADC_WAIT_TSI_1 | (ADC_BIS * adc_ts);
+ CHECK_ERROR(pmic_write_reg(REG_ADC_1, adc_1_reg, PMIC_ALL_BITS));
+
+ while (swait > 0) {
+ swait--;
+ wake_up_interruptible(&suspendq);
+ }
+
+ return 0;
+};
+
+/*
+ * Call back functions
+ */
+
+/*!
+ * This is the callback function called on TSI mc13783 event, used in synchronous call.
+ */
+static void callback_tsi(void *unused)
+{
+ pr_debug("*** TSI IT mc13783 PMIC_ADC_GET_TOUCH_SAMPLE ***\n");
+ if (wait_ts) {
+ complete(&adc_tsi);
+ pmic_event_mask(EVENT_TSI);
+ }
+}
+
+/*!
+ * This is the callback function called on ADCDone mc13783 event.
+ */
+static void callback_adcdone(void *unused)
+{
+ if (data_ready_adc_1) {
+ complete(&adcdone_it);
+ }
+}
+
+/*!
+ * This is the callback function called on ADCDone mc13783 event.
+ */
+static void callback_adcbisdone(void *unused)
+{
+ pr_debug("* adcdone bis it callback *\n");
+ if (data_ready_adc_2) {
+ complete(&adcbisdone_it);
+ }
+}
+
+/*!
+ * This is the callback function called on mc13783 event.
+ */
+static void callback_adc_comp_high(void *unused)
+{
+ pr_debug("* adc comp it high *\n");
+ if (wcomp_mode == CHECK_HIGH || wcomp_mode == CHECK_LOW_OR_HIGH) {
+ /* launch callback */
+ if (monitoring_cb != NULL) {
+ monitoring_cb();
+ }
+ }
+}
+
+/*!
+ * This function performs filtering and rejection of excessive noise prone
+ * samples.
+ *
+ * @param ts_curr Touch screen value
+ *
+ * @return This function returns 0 on success, -1 otherwise.
+ */
+static int pmic_adc_filter(t_touch_screen *ts_curr)
+{
+ unsigned int ydiff1, ydiff2, ydiff3, xdiff1, xdiff2, xdiff3;
+ unsigned int sample_sumx, sample_sumy;
+ static unsigned int prev_x[FILTLEN], prev_y[FILTLEN];
+ int index = 0;
+ unsigned int y_curr, x_curr;
+ static int filt_count;
+ /* Added a variable filt_type to decide filtering at run-time */
+ unsigned int filt_type = 0;
+
+ if (ts_curr->contact_resistance == 0) {
+ ts_curr->x_position = 0;
+ ts_curr->y_position = 0;
+ filt_count = 0;
+ return 0;
+ }
+
+ ydiff1 = abs(ts_curr->y_position1 - ts_curr->y_position2);
+ ydiff2 = abs(ts_curr->y_position2 - ts_curr->y_position3);
+ ydiff3 = abs(ts_curr->y_position1 - ts_curr->y_position3);
+ if ((ydiff1 > DELTA_Y_MAX) ||
+ (ydiff2 > DELTA_Y_MAX) || (ydiff3 > DELTA_Y_MAX)) {
+ pr_debug("pmic_adc_filter: Ret pos 1\n");
+ return -1;
+ }
+
+ xdiff1 = abs(ts_curr->x_position1 - ts_curr->x_position2);
+ xdiff2 = abs(ts_curr->x_position2 - ts_curr->x_position3);
+ xdiff3 = abs(ts_curr->x_position1 - ts_curr->x_position3);
+
+ if ((xdiff1 > DELTA_X_MAX) ||
+ (xdiff2 > DELTA_X_MAX) || (xdiff3 > DELTA_X_MAX)) {
+ pr_debug("mc13783_adc_filter: Ret pos 2\n");
+ return -1;
+ }
+ /* Compute two closer values among the three available Y readouts */
+
+ if (ydiff1 < ydiff2) {
+ if (ydiff1 < ydiff3) {
+ /* Sample 0 & 1 closest together */
+ sample_sumy = ts_curr->y_position1 +
+ ts_curr->y_position2;
+ } else {
+ /* Sample 0 & 2 closest together */
+ sample_sumy = ts_curr->y_position1 +
+ ts_curr->y_position3;
+ }
+ } else {
+ if (ydiff2 < ydiff3) {
+ /* Sample 1 & 2 closest together */
+ sample_sumy = ts_curr->y_position2 +
+ ts_curr->y_position3;
+ } else {
+ /* Sample 0 & 2 closest together */
+ sample_sumy = ts_curr->y_position1 +
+ ts_curr->y_position3;
+ }
+ }
+
+ /*
+ * Compute two closer values among the three available X
+ * readouts
+ */
+ if (xdiff1 < xdiff2) {
+ if (xdiff1 < xdiff3) {
+ /* Sample 0 & 1 closest together */
+ sample_sumx = ts_curr->x_position1 +
+ ts_curr->x_position2;
+ } else {
+ /* Sample 0 & 2 closest together */
+ sample_sumx = ts_curr->x_position1 +
+ ts_curr->x_position3;
+ }
+ } else {
+ if (xdiff2 < xdiff3) {
+ /* Sample 1 & 2 closest together */
+ sample_sumx = ts_curr->x_position2 +
+ ts_curr->x_position3;
+ } else {
+ /* Sample 0 & 2 closest together */
+ sample_sumx = ts_curr->x_position1 +
+ ts_curr->x_position3;
+ }
+ }
+ /*
+ * Wait FILTER_MIN_DELAY number of samples to restart
+ * filtering
+ */
+ if (filt_count < FILTER_MIN_DELAY) {
+ /*
+ * Current output is the average of the two closer
+ * values and no filtering is used
+ */
+ y_curr = (sample_sumy / 2);
+ x_curr = (sample_sumx / 2);
+ ts_curr->y_position = y_curr;
+ ts_curr->x_position = x_curr;
+ filt_count++;
+ } else {
+ if (abs(sample_sumx - (prev_x[0] + prev_x[1])) >
+ (DELTA_X_MAX * 16)) {
+ pr_debug("pmic_adc_filter: : Ret pos 3\n");
+ return -1;
+ }
+ if (abs(sample_sumy - (prev_y[0] + prev_y[1])) >
+ (DELTA_Y_MAX * 16)) {
+ return -1;
+ }
+ sample_sumy /= 2;
+ sample_sumx /= 2;
+ /* Use hard filtering if the sample difference < 10 */
+ if ((abs(sample_sumy - prev_y[0]) > 10) ||
+ (abs(sample_sumx - prev_x[0]) > 10)) {
+ filt_type = 1;
+ }
+
+ /*
+ * Current outputs are the average of three previous
+ * values and the present readout
+ */
+ y_curr = sample_sumy;
+ for (index = 0; index < FILTLEN; index++) {
+ if (filt_type == 0) {
+ y_curr = y_curr + (prev_y[index]);
+ } else {
+ y_curr = y_curr + (prev_y[index] / 3);
+ }
+ }
+ if (filt_type == 0) {
+ y_curr = y_curr >> 2;
+ } else {
+ y_curr = y_curr >> 1;
+ }
+ ts_curr->y_position = y_curr;
+
+ x_curr = sample_sumx;
+ for (index = 0; index < FILTLEN; index++) {
+ if (filt_type == 0) {
+ x_curr = x_curr + (prev_x[index]);
+ } else {
+ x_curr = x_curr + (prev_x[index] / 3);
+ }
+ }
+ if (filt_type == 0) {
+ x_curr = x_curr >> 2;
+ } else {
+ x_curr = x_curr >> 1;
+ }
+ ts_curr->x_position = x_curr;
+
+ }
+
+ /* Update previous X and Y values */
+ for (index = (FILTLEN - 1); index > 0; index--) {
+ prev_x[index] = prev_x[index - 1];
+ prev_y[index] = prev_y[index - 1];
+ }
+
+ /*
+ * Current output will be the most recent past for the
+ * next sample
+ */
+ prev_y[0] = y_curr;
+ prev_x[0] = x_curr;
+
+ return 0;
+}
+
+/*!
+ * This function implements the open method on a MC13783 ADC device.
+ *
+ * @param inode pointer on the node
+ * @param file pointer on the file
+ * @return This function returns 0.
+ */
+static int pmic_adc_open(struct inode *inode, struct file *file)
+{
+ while (suspend_flag == 1) {
+ swait++;
+ /* Block if the device is suspended */
+ if (wait_event_interruptible(suspendq, (suspend_flag == 0))) {
+ return -ERESTARTSYS;
+ }
+ }
+ pr_debug("mc13783_adc : mc13783_adc_open()\n");
+ return 0;
+}
+
+/*!
+ * This function implements the release method on a MC13783 ADC device.
+ *
+ * @param inode pointer on the node
+ * @param file pointer on the file
+ * @return This function returns 0.
+ */
+static int pmic_adc_free(struct inode *inode, struct file *file)
+{
+ pr_debug("mc13783_adc : mc13783_adc_free()\n");
+ return 0;
+}
+
+/*!
+ * This function initializes all ADC registers with default values. This
+ * function also registers the interrupt events.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+int pmic_adc_init(void)
+{
+ unsigned int reg_value = 0, i = 0;
+
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+ for (i = 0; i < ADC_NB_AVAILABLE; i++) {
+ adc_dev[i] = ADC_FREE;
+ }
+ CHECK_ERROR(pmic_write_reg(REG_ADC_0, DEF_ADC_0, PMIC_ALL_BITS));
+ CHECK_ERROR(pmic_write_reg(REG_ADC_1, reg_value, PMIC_ALL_BITS));
+ CHECK_ERROR(pmic_write_reg(REG_ADC_2, reg_value, PMIC_ALL_BITS));
+ CHECK_ERROR(pmic_write_reg(REG_ADC_3, DEF_ADC_3, PMIC_ALL_BITS));
+ CHECK_ERROR(pmic_write_reg(REG_ADC_4, reg_value, PMIC_ALL_BITS));
+ reg_value = 0x001000;
+ CHECK_ERROR(pmic_write_reg(REG_ARBITRATION_PERIPHERAL_AUDIO, reg_value,
+ 0xFFFFFF));
+
+ data_ready_adc_1 = false;
+ data_ready_adc_2 = false;
+ adc_ts = false;
+ wait_ts = false;
+ monitor_en = false;
+ monitor_adc = false;
+ wcomp_mode = CHECK_LOW;
+ monitoring_cb = NULL;
+ /* sub to ADCDone IT */
+ event_adc.param = NULL;
+ event_adc.func = callback_adcdone;
+ CHECK_ERROR(pmic_event_subscribe(EVENT_ADCDONEI, event_adc));
+
+ /* sub to ADCDoneBis IT */
+ event_adc_bis.param = NULL;
+ event_adc_bis.func = callback_adcbisdone;
+ CHECK_ERROR(pmic_event_subscribe(EVENT_ADCBISDONEI, event_adc_bis));
+
+ /* sub to Touch Screen IT */
+ tsi_event.param = NULL;
+ tsi_event.func = callback_tsi;
+ CHECK_ERROR(pmic_event_subscribe(EVENT_TSI, tsi_event));
+
+ /* ADC reading above high limit */
+ adc_comp_h.param = NULL;
+ adc_comp_h.func = callback_adc_comp_high;
+ CHECK_ERROR(pmic_event_subscribe(EVENT_WHIGHI, adc_comp_h));
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function disables the ADC, de-registers the interrupt events.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_adc_deinit(void)
+{
+ CHECK_ERROR(pmic_event_unsubscribe(EVENT_ADCDONEI, event_adc));
+ CHECK_ERROR(pmic_event_unsubscribe(EVENT_ADCBISDONEI, event_adc_bis));
+ CHECK_ERROR(pmic_event_unsubscribe(EVENT_TSI, tsi_event));
+ CHECK_ERROR(pmic_event_unsubscribe(EVENT_WHIGHI, adc_comp_h));
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function initializes adc_param structure.
+ *
+ * @param adc_param Structure to be initialized.
+ *
+ * @return This function returns 0 if successful.
+ */
+int mc13783_adc_init_param(t_adc_param *adc_param)
+{
+ int i = 0;
+
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+ adc_param->delay = 0;
+ adc_param->conv_delay = false;
+ adc_param->single_channel = false;
+ adc_param->group = false;
+ adc_param->channel_0 = BATTERY_VOLTAGE;
+ adc_param->channel_1 = BATTERY_VOLTAGE;
+ adc_param->read_mode = 0;
+ adc_param->wait_tsi = 0;
+ adc_param->chrgraw_devide_5 = true;
+ adc_param->read_ts = false;
+ adc_param->ts_value.x_position = 0;
+ adc_param->ts_value.y_position = 0;
+ adc_param->ts_value.contact_resistance = 0;
+ for (i = 0; i <= MAX_CHANNEL; i++) {
+ adc_param->value[i] = 0;
+ }
+ return 0;
+}
+
+/*!
+ * This function starts the convert.
+ *
+ * @param adc_param contains all adc configuration and return value.
+ *
+ * @return This function returns 0 if successful.
+ */
+PMIC_STATUS mc13783_adc_convert(t_adc_param *adc_param)
+{
+ bool use_bis = false;
+ unsigned int adc_0_reg = 0, adc_1_reg = 0, reg_1 = 0, result_reg =
+ 0, i = 0;
+ unsigned int result = 0, temp = 0;
+ pmic_version_t mc13783_ver;
+ pr_debug("mc13783 ADC - mc13783_adc_convert ....\n");
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+
+ if (adc_param->wait_tsi) {
+ /* we need to set ADCEN 1 for TSI interrupt on mc13783 1.x */
+ /* configure adc to wait tsi interrupt */
+ INIT_COMPLETION(adc_tsi);
+ pr_debug("mc13783 ADC - pmic_write_reg ....\n");
+ /*for ts don't use bis */
+ adc_0_reg = 0x001c00 | (ADC_BIS * 0);
+ pmic_event_unmask(EVENT_TSI);
+ CHECK_ERROR(pmic_write_reg
+ (REG_ADC_0, adc_0_reg, PMIC_ALL_BITS));
+ /*for ts don't use bis */
+ adc_1_reg = 0x200001 | (ADC_BIS * 0);
+ CHECK_ERROR(pmic_write_reg
+ (REG_ADC_1, adc_1_reg, PMIC_ALL_BITS));
+ pr_debug("wait tsi ....\n");
+ wait_ts = true;
+ wait_for_completion_interruptible(&adc_tsi);
+ wait_ts = false;
+ }
+ if (adc_param->read_ts == false)
+ down(&convert_mutex);
+ use_bis = mc13783_adc_request(adc_param->read_ts);
+ if (use_bis < 0) {
+ pr_debug("process has received a signal and got interrupted\n");
+ return -EINTR;
+ }
+
+ /* CONFIGURE ADC REG 0 */
+ adc_0_reg = 0;
+ adc_1_reg = 0;
+ if (adc_param->read_ts == false) {
+ adc_0_reg = adc_param->read_mode & 0x00003F;
+ /* add auto inc */
+ adc_0_reg |= ADC_INC;
+ if (use_bis) {
+ /* add adc bis */
+ adc_0_reg |= ADC_BIS;
+ }
+ mc13783_ver = pmic_get_version();
+ if (mc13783_ver.revision >= 20) {
+ if (adc_param->chrgraw_devide_5) {
+ adc_0_reg |= ADC_CHRGRAW_D5;
+ }
+ }
+ if (adc_param->single_channel) {
+ adc_1_reg |= ADC_SGL_CH;
+ }
+
+ if (adc_param->conv_delay) {
+ adc_1_reg |= ADC_ATO;
+ }
+
+ if (adc_param->group) {
+ adc_1_reg |= ADC_ADSEL;
+ }
+
+ if (adc_param->single_channel) {
+ adc_1_reg |= ADC_SGL_CH;
+ }
+
+ adc_1_reg |= (adc_param->channel_0 << ADC_CH_0_POS) &
+ ADC_CH_0_MASK;
+ adc_1_reg |= (adc_param->channel_1 << ADC_CH_1_POS) &
+ ADC_CH_1_MASK;
+ } else {
+ adc_0_reg = 0x003c00 | (ADC_BIS * use_bis) | ADC_INC;
+ }
+ pr_debug("Write Reg %i = %x\n", REG_ADC_0, adc_0_reg);
+ /*Change has been made here */
+ CHECK_ERROR(pmic_write_reg(REG_ADC_0, adc_0_reg,
+ ADC_INC | ADC_BIS | ADC_CHRGRAW_D5 |
+ 0xfff00ff));
+ /* CONFIGURE ADC REG 1 */
+ if (adc_param->read_ts == false) {
+ adc_1_reg |= ADC_NO_ADTRIG;
+ adc_1_reg |= ADC_EN;
+ adc_1_reg |= (adc_param->delay << ADC_DELAY_POS) &
+ ADC_DELAY_MASK;
+ if (use_bis) {
+ adc_1_reg |= ADC_BIS;
+ }
+ } else {
+ /* configure and start convert to read x and y position */
+ /* configure to read 2 value in channel selection 1 & 2 */
+ adc_1_reg = 0x100409 | (ADC_BIS * use_bis) | ADC_NO_ADTRIG;
+ }
+ reg_1 = adc_1_reg;
+ if (use_bis == 0) {
+ data_ready_adc_1 = false;
+ adc_1_reg |= ASC_ADC;
+ data_ready_adc_1 = true;
+ pr_debug("Write Reg %i = %x\n", REG_ADC_1, adc_1_reg);
+ INIT_COMPLETION(adcdone_it);
+ CHECK_ERROR(pmic_write_reg(REG_ADC_1, adc_1_reg,
+ ADC_SGL_CH | ADC_ATO | ADC_ADSEL
+ | ADC_CH_0_MASK | ADC_CH_1_MASK |
+ ADC_NO_ADTRIG | ADC_EN |
+ ADC_DELAY_MASK | ASC_ADC | ADC_BIS));
+ pr_debug("wait adc done \n");
+ wait_for_completion_interruptible(&adcdone_it);
+ data_ready_adc_1 = false;
+ } else {
+ data_ready_adc_2 = false;
+ adc_1_reg |= ASC_ADC;
+ data_ready_adc_2 = true;
+ INIT_COMPLETION(adcbisdone_it);
+ CHECK_ERROR(pmic_write_reg(REG_ADC_1, adc_1_reg, 0xFFFFFF));
+ temp = 0x800000;
+ CHECK_ERROR(pmic_write_reg(REG_ADC_3, temp, 0xFFFFFF));
+ temp = 0x001000;
+ pmic_write_reg(REG_ARBITRATION_PERIPHERAL_AUDIO, temp,
+ 0xFFFFFF);
+ pr_debug("wait adc done bis\n");
+ wait_for_completion_interruptible(&adcbisdone_it);
+ data_ready_adc_2 = false;
+ }
+ /* read result and store in adc_param */
+ result = 0;
+ if (use_bis == 0) {
+ result_reg = REG_ADC_2;
+ } else {
+ result_reg = REG_ADC_4;
+ }
+ CHECK_ERROR(pmic_write_reg(REG_ADC_1, 4 << ADC_CH_1_POS,
+ ADC_CH_0_MASK | ADC_CH_1_MASK));
+
+ for (i = 0; i <= 3; i++) {
+ CHECK_ERROR(pmic_read_reg(result_reg, &result, PMIC_ALL_BITS));
+ pr_debug("result %i = %x\n", result_reg, result);
+ adc_param->value[i] = ((result & ADD1_RESULT_MASK) >> 2);
+ adc_param->value[i + 4] = ((result & ADD2_RESULT_MASK) >> 14);
+ }
+ if (adc_param->read_ts) {
+ adc_param->ts_value.x_position = adc_param->value[2];
+ adc_param->ts_value.x_position1 = adc_param->value[0];
+ adc_param->ts_value.x_position2 = adc_param->value[1];
+ adc_param->ts_value.x_position3 = adc_param->value[2];
+ adc_param->ts_value.y_position1 = adc_param->value[3];
+ adc_param->ts_value.y_position2 = adc_param->value[4];
+ adc_param->ts_value.y_position3 = adc_param->value[5];
+ adc_param->ts_value.y_position = adc_param->value[5];
+ adc_param->ts_value.contact_resistance = adc_param->value[6];
+
+ }
+
+ /*if (adc_param->read_ts) {
+ adc_param->ts_value.x_position = adc_param->value[2];
+ adc_param->ts_value.y_position = adc_param->value[5];
+ adc_param->ts_value.contact_resistance = adc_param->value[6];
+ } */
+ mc13783_adc_release(use_bis);
+ if (adc_param->read_ts == false)
+ up(&convert_mutex);
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function select the required read_mode for a specific channel.
+ *
+ * @param channel The channel to be sampled
+ *
+ * @return This function returns the requires read_mode
+ */
+t_reading_mode mc13783_set_read_mode(t_channel channel)
+{
+ t_reading_mode read_mode = 0;
+
+ switch (channel) {
+ case LICELL:
+ read_mode = M_LITHIUM_CELL;
+ break;
+ case CHARGE_CURRENT:
+ read_mode = M_CHARGE_CURRENT;
+ break;
+ case BATTERY_CURRENT:
+ read_mode = M_BATTERY_CURRENT;
+ break;
+ case THERMISTOR:
+ read_mode = M_THERMISTOR;
+ break;
+ case DIE_TEMP:
+ read_mode = M_DIE_TEMPERATURE;
+ break;
+ case USB_ID:
+ read_mode = M_UID;
+ break;
+ default:
+ read_mode = 0;
+ }
+
+ return read_mode;
+}
+
+/*!
+ * This function triggers a conversion and returns one sampling result of one
+ * channel.
+ *
+ * @param channel The channel to be sampled
+ * @param result The pointer to the conversion result. The memory
+ * should be allocated by the caller of this function.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_adc_convert(t_channel channel, unsigned short *result)
+{
+ t_adc_param adc_param;
+ PMIC_STATUS ret;
+
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+
+ channel = channel_num[channel];
+ if (channel == -1) {
+ pr_debug("Wrong channel ID\n");
+ return PMIC_PARAMETER_ERROR;
+ }
+ mc13783_adc_init_param(&adc_param);
+ pr_debug("pmic_adc_convert\n");
+ adc_param.read_ts = false;
+ adc_param.read_mode = mc13783_set_read_mode(channel);
+
+ adc_param.single_channel = true;
+ /* Find the group */
+ if ((channel >= 0) && (channel <= 7)) {
+ adc_param.channel_0 = channel;
+ adc_param.group = false;
+ } else if ((channel >= 8) && (channel <= 15)) {
+ adc_param.channel_0 = channel & 0x07;
+ adc_param.group = true;
+ } else {
+ return PMIC_PARAMETER_ERROR;
+ }
+ ret = mc13783_adc_convert(&adc_param);
+ *result = adc_param.value[0];
+ return ret;
+}
+
+/*!
+ * This function triggers a conversion and returns eight sampling results of
+ * one channel.
+ *
+ * @param channel The channel to be sampled
+ * @param result The pointer to array to store eight sampling results.
+ * The memory should be allocated by the caller of this
+ * function.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_adc_convert_8x(t_channel channel, unsigned short *result)
+{
+ t_adc_param adc_param;
+ int i;
+ PMIC_STATUS ret;
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+
+ channel = channel_num[channel];
+
+ if (channel == -1) {
+ pr_debug("Wrong channel ID\n");
+ return PMIC_PARAMETER_ERROR;
+ }
+ mc13783_adc_init_param(&adc_param);
+ pr_debug("pmic_adc_convert_8x\n");
+ adc_param.read_ts = false;
+ adc_param.single_channel = true;
+ adc_param.read_mode = mc13783_set_read_mode(channel);
+ if ((channel >= 0) && (channel <= 7)) {
+ adc_param.channel_0 = channel;
+ adc_param.channel_1 = channel;
+ adc_param.group = false;
+ } else if ((channel >= 8) && (channel <= 15)) {
+ adc_param.channel_0 = channel & 0x07;
+ adc_param.channel_1 = channel & 0x07;
+ adc_param.group = true;
+ } else {
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ ret = mc13783_adc_convert(&adc_param);
+ for (i = 0; i <= 7; i++) {
+ result[i] = adc_param.value[i];
+ }
+ return ret;
+}
+
+/*!
+ * This function triggers a conversion and returns sampling results of each
+ * specified channel.
+ *
+ * @param channels This input parameter is bitmap to specify channels
+ * to be sampled.
+ * @param result The pointer to array to store sampling results.
+ * The memory should be allocated by the caller of this
+ * function.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_adc_convert_multichnnel(t_channel channels,
+ unsigned short *result)
+{
+ t_adc_param adc_param;
+ int i;
+ PMIC_STATUS ret;
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+ mc13783_adc_init_param(&adc_param);
+ pr_debug("pmic_adc_convert_multichnnel\n");
+
+ channels = channel_num[channels];
+
+ if (channels == -1) {
+ pr_debug("Wrong channel ID\n");
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ adc_param.read_ts = false;
+ adc_param.single_channel = false;
+ if ((channels >= 0) && (channels <= 7)) {
+ adc_param.channel_0 = channels;
+ adc_param.channel_1 = ((channels + 4) % 4) + 4;
+ adc_param.group = false;
+ } else if ((channels >= 8) && (channels <= 15)) {
+ channels = channels & 0x07;
+ adc_param.channel_0 = channels;
+ adc_param.channel_1 = ((channels + 4) % 4) + 4;
+ adc_param.group = true;
+ } else {
+ return PMIC_PARAMETER_ERROR;
+ }
+ adc_param.read_mode = 0x00003f;
+ adc_param.read_ts = false;
+ ret = mc13783_adc_convert(&adc_param);
+
+ for (i = 0; i <= 7; i++) {
+ result[i] = adc_param.value[i];
+ }
+ return ret;
+}
+
+/*!
+ * This function sets touch screen operation mode.
+ *
+ * @param touch_mode Touch screen operation mode.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_adc_set_touch_mode(t_touch_mode touch_mode)
+{
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+ CHECK_ERROR(pmic_write_reg(REG_ADC_0,
+ BITFVAL(MC13783_ADC0_TS_M, touch_mode),
+ BITFMASK(MC13783_ADC0_TS_M)));
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function retrieves the current touch screen operation mode.
+ *
+ * @param touch_mode Pointer to the retrieved touch screen operation
+ * mode.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_adc_get_touch_mode(t_touch_mode *touch_mode)
+{
+ unsigned int value;
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+ CHECK_ERROR(pmic_read_reg(REG_ADC_0, &value, PMIC_ALL_BITS));
+
+ *touch_mode = BITFEXT(value, MC13783_ADC0_TS_M);
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function retrieves the current touch screen (X,Y) coordinates.
+ *
+ * @param touch_sample Pointer to touch sample.
+ * @param wait indicates whether this call must block or not.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_adc_get_touch_sample(t_touch_screen *touch_sample, int wait)
+{
+ if (mc13783_adc_read_ts(touch_sample, wait) != 0)
+ return PMIC_ERROR;
+ if (0 == pmic_adc_filter(touch_sample))
+ return PMIC_SUCCESS;
+ else
+ return PMIC_ERROR;
+}
+
+/*!
+ * This function read the touch screen value.
+ *
+ * @param ts_value return value of touch screen
+ * @param wait_tsi if true, this function is synchronous (wait in TSI event).
+ *
+ * @return This function returns 0.
+ */
+PMIC_STATUS mc13783_adc_read_ts(t_touch_screen *ts_value, int wait_tsi)
+{
+ t_adc_param param;
+ pr_debug("mc13783_adc : mc13783_adc_read_ts\n");
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+ if (wait_ts) {
+ pr_debug("mc13783_adc : error TS busy \n");
+ return PMIC_ERROR;
+ }
+ mc13783_adc_init_param(&param);
+ param.wait_tsi = wait_tsi;
+ param.read_ts = true;
+ if (mc13783_adc_convert(&param) != 0)
+ return PMIC_ERROR;
+ /* check if x-y is ok */
+ if ((param.ts_value.x_position1 < TS_X_MAX) &&
+ (param.ts_value.x_position1 >= TS_X_MIN) &&
+ (param.ts_value.y_position1 < TS_Y_MAX) &&
+ (param.ts_value.y_position1 >= TS_Y_MIN) &&
+ (param.ts_value.x_position2 < TS_X_MAX) &&
+ (param.ts_value.x_position2 >= TS_X_MIN) &&
+ (param.ts_value.y_position2 < TS_Y_MAX) &&
+ (param.ts_value.y_position2 >= TS_Y_MIN) &&
+ (param.ts_value.x_position3 < TS_X_MAX) &&
+ (param.ts_value.x_position3 >= TS_X_MIN) &&
+ (param.ts_value.y_position3 < TS_Y_MAX) &&
+ (param.ts_value.y_position3 >= TS_Y_MIN)) {
+ ts_value->x_position = param.ts_value.x_position;
+ ts_value->x_position1 = param.ts_value.x_position1;
+ ts_value->x_position2 = param.ts_value.x_position2;
+ ts_value->x_position3 = param.ts_value.x_position3;
+ ts_value->y_position = param.ts_value.y_position;
+ ts_value->y_position1 = param.ts_value.y_position1;
+ ts_value->y_position2 = param.ts_value.y_position2;
+ ts_value->y_position3 = param.ts_value.y_position3;
+ ts_value->contact_resistance =
+ param.ts_value.contact_resistance + 1;
+
+ } else {
+ ts_value->x_position = 0;
+ ts_value->y_position = 0;
+ ts_value->contact_resistance = 0;
+
+ }
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function starts a Battery Current mode conversion.
+ *
+ * @param mode Conversion mode.
+ * @param result Battery Current measurement result.
+ * if \a mode = ADC_8CHAN_1X, the result is \n
+ * result[0] = (BATTP - BATT_I) \n
+ * if \a mode = ADC_1CHAN_8X, the result is \n
+ * result[0] = BATTP \n
+ * result[1] = BATT_I \n
+ * result[2] = BATTP \n
+ * result[3] = BATT_I \n
+ * result[4] = BATTP \n
+ * result[5] = BATT_I \n
+ * result[6] = BATTP \n
+ * result[7] = BATT_I
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_adc_get_battery_current(t_conversion_mode mode,
+ unsigned short *result)
+{
+ PMIC_STATUS ret;
+ t_channel channel;
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+ channel = BATTERY_CURRENT;
+ if (mode == ADC_8CHAN_1X) {
+ ret = pmic_adc_convert(channel, result);
+ } else {
+ ret = pmic_adc_convert_8x(channel, result);
+ }
+ return ret;
+}
+
+/*!
+ * This function request a ADC.
+ *
+ * @return This function returns index of ADC to be used (0 or 1) if successful.
+ * return -1 if error.
+ */
+int mc13783_adc_request(bool read_ts)
+{
+ int adc_index = -1;
+ if (read_ts != 0) {
+ /*for ts we use bis=0 */
+ if (adc_dev[0] == ADC_USED)
+ return -1;
+ /*no wait here */
+ adc_dev[0] = ADC_USED;
+ adc_index = 0;
+ } else {
+ /*for other adc use bis = 1 */
+ if (adc_dev[1] == ADC_USED) {
+ return -1;
+ /*no wait here */
+ }
+ adc_dev[1] = ADC_USED;
+ adc_index = 1;
+ }
+ pr_debug("mc13783_adc : request ADC %d\n", adc_index);
+ return adc_index;
+}
+
+/*!
+ * This function release an ADC.
+ *
+ * @param adc_index index of ADC to be released.
+ *
+ * @return This function returns 0 if successful.
+ */
+int mc13783_adc_release(int adc_index)
+{
+ while (suspend_flag == 1) {
+ swait++;
+ /* Block if the device is suspended */
+ if (wait_event_interruptible(suspendq, (suspend_flag == 0))) {
+ return -ERESTARTSYS;
+ }
+ }
+
+ pr_debug("mc13783_adc : release ADC %d\n", adc_index);
+ if ((adc_dev[adc_index] == ADC_MONITORING) ||
+ (adc_dev[adc_index] == ADC_USED)) {
+ adc_dev[adc_index] = ADC_FREE;
+ wake_up(&queue_adc_busy);
+ return 0;
+ }
+ return -1;
+}
+
+/*!
+ * This function initializes monitoring structure.
+ *
+ * @param monitor Structure to be initialized.
+ *
+ * @return This function returns 0 if successful.
+ */
+int mc13783_adc_init_monitor_param(t_monitoring_param *monitor)
+{
+ pr_debug("mc13783_adc : init monitor\n");
+ monitor->delay = 0;
+ monitor->conv_delay = false;
+ monitor->channel = BATTERY_VOLTAGE;
+ monitor->read_mode = 0;
+ monitor->comp_low = 0;
+ monitor->comp_high = 0;
+ monitor->group = 0;
+ monitor->check_mode = CHECK_LOW_OR_HIGH;
+ monitor->callback = NULL;
+ return 0;
+}
+
+/*!
+ * This function actives the comparator. When comparator is active and ADC
+ * is enabled, the 8th converted value will be digitally compared against the
+ * window defined by WLOW and WHIGH registers.
+ *
+ * @param low Comparison window low threshold (WLOW).
+ * @param high Comparison window high threshold (WHIGH).
+ * @param channel The channel to be sampled
+ * @param callback Callback function to be called when the converted
+ * value is beyond the comparison window. The callback
+ * function will pass a parameter of type
+ * \b t_comp_expection to indicate the reason of
+ * comparator exception.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_adc_active_comparator(unsigned char low,
+ unsigned char high,
+ t_channel channel,
+ t_comparator_cb callback)
+{
+ bool use_bis = false;
+ unsigned int adc_0_reg = 0, adc_1_reg = 0, adc_3_reg = 0;
+ t_monitoring_param monitoring;
+
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+ if (monitor_en) {
+ pr_debug("mc13783_adc : monitoring already configured\n");
+ return PMIC_ERROR;
+ }
+ monitor_en = true;
+ mc13783_adc_init_monitor_param(&monitoring);
+ monitoring.comp_low = low;
+ monitoring.comp_high = high;
+ monitoring.channel = channel;
+ monitoring.callback = (void *)callback;
+
+ use_bis = mc13783_adc_request(false);
+ if (use_bis < 0) {
+ pr_debug("mc13783_adc : request error\n");
+ return PMIC_ERROR;
+ }
+ monitor_adc = use_bis;
+
+ adc_0_reg = 0;
+
+ /* TO DO ADOUT CONFIGURE */
+ adc_0_reg = monitoring.read_mode & ADC_MODE_MASK;
+ if (use_bis) {
+ /* add adc bis */
+ adc_0_reg |= ADC_BIS;
+ }
+ adc_0_reg |= ADC_WCOMP;
+
+ /* CONFIGURE ADC REG 1 */
+ adc_1_reg = 0;
+ adc_1_reg |= ADC_EN;
+ if (monitoring.conv_delay) {
+ adc_1_reg |= ADC_ATO;
+ }
+ if (monitoring.group) {
+ adc_1_reg |= ADC_ADSEL;
+ }
+ adc_1_reg |= (monitoring.channel << ADC_CH_0_POS) & ADC_CH_0_MASK;
+ adc_1_reg |= (monitoring.delay << ADC_DELAY_POS) & ADC_DELAY_MASK;
+ if (use_bis) {
+ adc_1_reg |= ADC_BIS;
+ }
+
+ adc_3_reg |= (monitoring.comp_high << ADC_WCOMP_H_POS) &
+ ADC_WCOMP_H_MASK;
+ adc_3_reg |= (monitoring.comp_low << ADC_WCOMP_L_POS) &
+ ADC_WCOMP_L_MASK;
+ if (use_bis) {
+ adc_3_reg |= ADC_BIS;
+ }
+
+ wcomp_mode = monitoring.check_mode;
+ /* call back to be called when event is detected. */
+ monitoring_cb = monitoring.callback;
+
+ CHECK_ERROR(pmic_write_reg(REG_ADC_0, adc_0_reg, PMIC_ALL_BITS));
+ CHECK_ERROR(pmic_write_reg(REG_ADC_1, adc_1_reg, PMIC_ALL_BITS));
+ CHECK_ERROR(pmic_write_reg(REG_ADC_3, adc_3_reg, PMIC_ALL_BITS));
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function deactivates the comparator.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_adc_deactive_comparator(void)
+{
+ unsigned int reg_value = 0;
+
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+ if (!monitor_en) {
+ pr_debug("mc13783_adc : adc monitoring free\n");
+ return PMIC_ERROR;
+ }
+
+ if (monitor_en) {
+ reg_value = ADC_BIS;
+ }
+
+ /* clear all reg value */
+ CHECK_ERROR(pmic_write_reg(REG_ADC_0, reg_value, PMIC_ALL_BITS));
+ CHECK_ERROR(pmic_write_reg(REG_ADC_1, reg_value, PMIC_ALL_BITS));
+ CHECK_ERROR(pmic_write_reg(REG_ADC_3, reg_value, PMIC_ALL_BITS));
+
+ reg_value = 0;
+
+ if (monitor_adc) {
+ CHECK_ERROR(pmic_write_reg
+ (REG_ADC_4, reg_value, PMIC_ALL_BITS));
+ } else {
+ CHECK_ERROR(pmic_write_reg
+ (REG_ADC_2, reg_value, PMIC_ALL_BITS));
+ }
+
+ mc13783_adc_release(monitor_adc);
+ monitor_en = false;
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function implements IOCTL controls on a MC13783 ADC device.
+ *
+ * @param inode pointer on the node
+ * @param file pointer on the file
+ * @param cmd the command
+ * @param arg the parameter
+ * @return This function returns 0 if successful.
+ */
+static int pmic_adc_ioctl(struct inode *inode, struct file *file,
+ unsigned int cmd, unsigned long arg)
+{
+ t_adc_convert_param *convert_param;
+ t_touch_mode touch_mode;
+ t_touch_screen touch_sample;
+ unsigned short b_current;
+ t_adc_comp_param *comp_param;
+ if ((_IOC_TYPE(cmd) != 'p') && (_IOC_TYPE(cmd) != 'D'))
+ return -ENOTTY;
+
+ while (suspend_flag == 1) {
+ swait++;
+ /* Block if the device is suspended */
+ if (wait_event_interruptible(suspendq, (suspend_flag == 0))) {
+ return -ERESTARTSYS;
+ }
+ }
+
+ convert_param = kmalloc(sizeof(t_adc_convert_param), GFP_KERNEL);
+ comp_param = kmalloc(sizeof(t_adc_comp_param), GFP_KERNEL);
+ switch (cmd) {
+ case PMIC_ADC_INIT:
+ pr_debug("init adc\n");
+ CHECK_ERROR(pmic_adc_init());
+ break;
+
+ case PMIC_ADC_DEINIT:
+ pr_debug("deinit adc\n");
+ CHECK_ERROR(pmic_adc_deinit());
+ break;
+
+ case PMIC_ADC_CONVERT:
+ if (convert_param == NULL)
+ return -ENOMEM;
+
+ if (copy_from_user(convert_param, (t_adc_convert_param *) arg,
+ sizeof(t_adc_convert_param))) {
+ kfree(convert_param);
+ return -EFAULT;
+ }
+ CHECK_ERROR_KFREE(pmic_adc_convert(convert_param->channel,
+ convert_param->result),
+ (kfree(convert_param)));
+
+ if (copy_to_user((t_adc_convert_param *) arg, convert_param,
+ sizeof(t_adc_convert_param))) {
+ kfree(convert_param);
+ return -EFAULT;
+ }
+ kfree(convert_param);
+ break;
+
+ case PMIC_ADC_CONVERT_8X:
+ if (convert_param == NULL)
+ return -ENOMEM;
+
+ if (copy_from_user(convert_param, (t_adc_convert_param *) arg,
+ sizeof(t_adc_convert_param))) {
+ kfree(convert_param);
+ return -EFAULT;
+ }
+ CHECK_ERROR_KFREE(pmic_adc_convert_8x(convert_param->channel,
+ convert_param->result),
+ (kfree(convert_param)));
+
+ if (copy_to_user((t_adc_convert_param *) arg, convert_param,
+ sizeof(t_adc_convert_param))) {
+ kfree(convert_param);
+ return -EFAULT;
+ }
+ kfree(convert_param);
+ break;
+
+ case PMIC_ADC_CONVERT_MULTICHANNEL:
+ if (convert_param == NULL)
+ return -ENOMEM;
+
+ if (copy_from_user(convert_param, (t_adc_convert_param *) arg,
+ sizeof(t_adc_convert_param))) {
+ kfree(convert_param);
+ return -EFAULT;
+ }
+
+ CHECK_ERROR_KFREE(pmic_adc_convert_multichnnel
+ (convert_param->channel,
+ convert_param->result),
+ (kfree(convert_param)));
+
+ if (copy_to_user((t_adc_convert_param *) arg, convert_param,
+ sizeof(t_adc_convert_param))) {
+ kfree(convert_param);
+ return -EFAULT;
+ }
+ kfree(convert_param);
+ break;
+
+ case PMIC_ADC_SET_TOUCH_MODE:
+ CHECK_ERROR(pmic_adc_set_touch_mode((t_touch_mode) arg));
+ break;
+
+ case PMIC_ADC_GET_TOUCH_MODE:
+ CHECK_ERROR(pmic_adc_get_touch_mode(&touch_mode));
+ if (copy_to_user((t_touch_mode *) arg, &touch_mode,
+ sizeof(t_touch_mode))) {
+ return -EFAULT;
+ }
+ break;
+
+ case PMIC_ADC_GET_TOUCH_SAMPLE:
+ pr_debug("pmic_adc_ioctl: " "PMIC_ADC_GET_TOUCH_SAMPLE\n");
+ CHECK_ERROR(pmic_adc_get_touch_sample(&touch_sample, 1));
+ if (copy_to_user((t_touch_screen *) arg, &touch_sample,
+ sizeof(t_touch_screen))) {
+ return -EFAULT;
+ }
+ break;
+
+ case PMIC_ADC_GET_BATTERY_CURRENT:
+ CHECK_ERROR(pmic_adc_get_battery_current(ADC_8CHAN_1X,
+ &b_current));
+ if (copy_to_user((unsigned short *)arg, &b_current,
+ sizeof(unsigned short))) {
+
+ return -EFAULT;
+ }
+ break;
+
+ case PMIC_ADC_ACTIVATE_COMPARATOR:
+ if (comp_param == NULL)
+ return -ENOMEM;
+
+ if (copy_from_user(comp_param, (t_adc_comp_param *) arg,
+ sizeof(t_adc_comp_param))) {
+ kfree(comp_param);
+ return -EFAULT;
+ }
+ CHECK_ERROR_KFREE(pmic_adc_active_comparator(comp_param->wlow,
+ comp_param->whigh,
+ comp_param->
+ channel,
+ comp_param->
+ callback),
+ (kfree(comp_param)));
+ break;
+
+ case PMIC_ADC_DEACTIVE_COMPARATOR:
+ CHECK_ERROR(pmic_adc_deactive_comparator());
+ break;
+
+ default:
+ pr_debug("pmic_adc_ioctl: unsupported ioctl command 0x%x\n",
+ cmd);
+ return -EINVAL;
+ }
+ return 0;
+}
+
+static struct file_operations mc13783_adc_fops = {
+ .owner = THIS_MODULE,
+ .ioctl = pmic_adc_ioctl,
+ .open = pmic_adc_open,
+ .release = pmic_adc_free,
+};
+
+static int pmic_adc_module_probe(struct platform_device *pdev)
+{
+ int ret = 0;
+ struct device *temp_class;
+
+ pmic_adc_major = register_chrdev(0, "pmic_adc", &mc13783_adc_fops);
+
+ if (pmic_adc_major < 0) {
+ pr_debug(KERN_ERR "Unable to get a major for pmic_adc\n");
+ return pmic_adc_major;
+ }
+ init_waitqueue_head(&suspendq);
+
+ pmic_adc_class = class_create(THIS_MODULE, "pmic_adc");
+ if (IS_ERR(pmic_adc_class)) {
+ pr_debug(KERN_ERR "Error creating pmic_adc class.\n");
+ ret = PTR_ERR(pmic_adc_class);
+ goto err_out1;
+ }
+
+ temp_class = device_create(pmic_adc_class, NULL,
+ MKDEV(pmic_adc_major, 0), NULL, "pmic_adc");
+ if (IS_ERR(temp_class)) {
+ pr_debug(KERN_ERR "Error creating pmic_adc class device.\n");
+ ret = PTR_ERR(temp_class);
+ goto err_out2;
+ }
+
+ ret = pmic_adc_init();
+ if (ret != PMIC_SUCCESS) {
+ pr_debug(KERN_ERR "Error in pmic_adc_init.\n");
+ goto err_out4;
+ }
+
+ pmic_adc_ready = 1;
+ pr_debug(KERN_INFO "PMIC ADC successfully probed\n");
+ return ret;
+
+ err_out4:
+ device_destroy(pmic_adc_class, MKDEV(pmic_adc_major, 0));
+ err_out2:
+ class_destroy(pmic_adc_class);
+ err_out1:
+ unregister_chrdev(pmic_adc_major, "pmic_adc");
+ return ret;
+}
+
+static int pmic_adc_module_remove(struct platform_device *pdev)
+{
+ pmic_adc_ready = 0;
+ pmic_adc_deinit();
+ device_destroy(pmic_adc_class, MKDEV(pmic_adc_major, 0));
+ class_destroy(pmic_adc_class);
+ unregister_chrdev(pmic_adc_major, "pmic_adc");
+ pr_debug(KERN_INFO "PMIC ADC successfully removed\n");
+ return 0;
+}
+
+static struct platform_driver pmic_adc_driver_ldm = {
+ .driver = {
+ .name = "pmic_adc",
+ },
+ .suspend = pmic_adc_suspend,
+ .resume = pmic_adc_resume,
+ .probe = pmic_adc_module_probe,
+ .remove = pmic_adc_module_remove,
+};
+
+/*
+ * Initialization and Exit
+ */
+static int __init pmic_adc_module_init(void)
+{
+ pr_debug("PMIC ADC driver loading...\n");
+ return platform_driver_register(&pmic_adc_driver_ldm);
+}
+
+static void __exit pmic_adc_module_exit(void)
+{
+ platform_driver_unregister(&pmic_adc_driver_ldm);
+ pr_debug("PMIC ADC driver successfully unloaded\n");
+}
+
+/*
+ * Module entry points
+ */
+
+module_init(pmic_adc_module_init);
+module_exit(pmic_adc_module_exit);
+
+MODULE_DESCRIPTION("PMIC ADC device driver");
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_LICENSE("GPL");
diff --git a/drivers/mxc/pmic/mc13783/pmic_adc_defs.h b/drivers/mxc/pmic/mc13783/pmic_adc_defs.h
new file mode 100644
index 000000000000..fbde842bad94
--- /dev/null
+++ b/drivers/mxc/pmic/mc13783/pmic_adc_defs.h
@@ -0,0 +1,321 @@
+/*
+ * Copyright 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file mc13783/pmic_adc_defs.h
+ * @brief This header contains all defines for PMIC(mc13783) ADC driver.
+ *
+ * @ingroup PMIC_ADC
+ */
+
+#ifndef __MC13783_ADC__DEFS_H__
+#define __MC13783_ADC__DEFS_H__
+
+#define MC13783_ADC_DEVICE "/dev/mc13783_adc"
+
+#define DEF_ADC_0 0x008000
+#define DEF_ADC_3 0x000080
+
+#define ADC_NB_AVAILABLE 2
+
+#define MAX_CHANNEL 7
+
+/*
+ * Maximun allowed variation in the three X/Y co-ordinates acquired from
+ * touch-screen
+ */
+#define DELTA_Y_MAX 50
+#define DELTA_X_MAX 50
+
+/* Upon clearing the filter, this is the delay in restarting the filter */
+#define FILTER_MIN_DELAY 4
+
+/* Length of X and Y Touch screen filters */
+#define FILTLEN 3
+
+#define TS_X_MAX 1000
+#define TS_Y_MAX 1000
+
+#define TS_X_MIN 80
+#define TS_Y_MIN 80
+
+#define MC13783_ADC0_TS_M_LSH 14
+#define MC13783_ADC0_TS_M_WID 3
+/*
+ * ADC 0
+ */
+#define ADC_WAIT_TSI_0 0x001C00
+
+/*
+ * ADC 1
+ */
+
+#define ADC_EN 0x000001
+#define ADC_SGL_CH 0x000002
+#define ADC_ADSEL 0x000008
+#define ADC_CH_0_POS 5
+#define ADC_CH_0_MASK 0x0000E0
+#define ADC_CH_1_POS 8
+#define ADC_CH_1_MASK 0x000700
+#define ADC_DELAY_POS 11
+#define ADC_DELAY_MASK 0x07F800
+#define ADC_ATO 0x080000
+#define ASC_ADC 0x100000
+#define ADC_WAIT_TSI_1 0x300001
+#define ADC_CHRGRAW_D5 0x008000
+
+/*
+ * ADC 2 - 4
+ */
+#define ADD1_RESULT_MASK 0x00000FFC
+#define ADD2_RESULT_MASK 0x00FFC000
+#define ADC_TS_MASK 0x00FFCFFC
+
+/*
+ * ADC 3
+ */
+#define ADC_INC 0x030000
+#define ADC_BIS 0x800000
+
+/*
+ * ADC 3
+ */
+#define ADC_NO_ADTRIG 0x200000
+#define ADC_WCOMP 0x040000
+#define ADC_WCOMP_H_POS 0
+#define ADC_WCOMP_L_POS 9
+#define ADC_WCOMP_H_MASK 0x00003F
+#define ADC_WCOMP_L_MASK 0x007E00
+
+#define ADC_MODE_MASK 0x00003F
+
+/*
+ * Interrupt Status 0
+ */
+#define ADC_INT_BISDONEI 0x02
+
+/*!
+ * Define state mode of ADC.
+ */
+typedef enum adc_state {
+ /*!
+ * Free.
+ */
+ ADC_FREE,
+ /*!
+ * Used.
+ */
+ ADC_USED,
+ /*!
+ * Monitoring
+ */
+ ADC_MONITORING,
+} t_adc_state;
+
+/*!
+ * This enumeration, is used to configure the mode of ADC.
+ */
+typedef enum reading_mode {
+ /*!
+ * Enables lithium cell reading
+ */
+ M_LITHIUM_CELL = 0x000001,
+ /*!
+ * Enables charge current reading
+ */
+ M_CHARGE_CURRENT = 0x000002,
+ /*!
+ * Enables battery current reading
+ */
+ M_BATTERY_CURRENT = 0x000004,
+ /*!
+ * Enables thermistor reading
+ */
+ M_THERMISTOR = 0x000008,
+ /*!
+ * Enables die temperature reading
+ */
+ M_DIE_TEMPERATURE = 0x000010,
+ /*!
+ * Enables UID reading
+ */
+ M_UID = 0x000020,
+} t_reading_mode;
+
+/*!
+ * This enumeration, is used to configure the monitoring mode.
+ */
+typedef enum check_mode {
+ /*!
+ * Comparator low level
+ */
+ CHECK_LOW,
+ /*!
+ * Comparator high level
+ */
+ CHECK_HIGH,
+ /*!
+ * Comparator low or high level
+ */
+ CHECK_LOW_OR_HIGH,
+} t_check_mode;
+
+/*!
+ * This structure is used to configure and report adc value.
+ */
+typedef struct {
+ /*!
+ * Delay before first conversion
+ */
+ unsigned int delay;
+ /*!
+ * sets the ATX bit for delay on all conversion
+ */
+ bool conv_delay;
+ /*!
+ * Sets the single channel mode
+ */
+ bool single_channel;
+ /*!
+ * Selects the set of inputs
+ */
+ bool group;
+ /*!
+ * Channel selection 1
+ */
+ t_channel channel_0;
+ /*!
+ * Channel selection 2
+ */
+ t_channel channel_1;
+ /*!
+ * Used to configure ADC mode with t_reading_mode
+ */
+ t_reading_mode read_mode;
+ /*!
+ * Sets the Touch screen mode
+ */
+ bool read_ts;
+ /*!
+ * Wait TSI event before touch screen reading
+ */
+ bool wait_tsi;
+ /*!
+ * Sets CHRGRAW scaling to divide by 5
+ * Only supported on 2.0 and higher
+ */
+ bool chrgraw_devide_5;
+ /*!
+ * Return ADC values
+ */
+ unsigned int value[8];
+ /*!
+ * Return touch screen values
+ */
+ t_touch_screen ts_value;
+} t_adc_param;
+
+/*!
+ * This structure is used to configure the monitoring mode of ADC.
+ */
+typedef struct {
+ /*!
+ * Delay before first conversion
+ */
+ unsigned int delay;
+ /*!
+ * sets the ATX bit for delay on all conversion
+ */
+ bool conv_delay;
+ /*!
+ * Channel selection 1
+ */
+ t_channel channel;
+ /*!
+ * Selects the set of inputs
+ */
+ bool group;
+ /*!
+ * Used to configure ADC mode with t_reading_mode
+ */
+ unsigned int read_mode;
+ /*!
+ * Comparator low level in WCOMP mode
+ */
+ unsigned int comp_low;
+ /*!
+ * Comparator high level in WCOMP mode
+ */
+ unsigned int comp_high;
+ /*!
+ * Sets type of monitoring (low, high or both)
+ */
+ t_check_mode check_mode;
+ /*!
+ * Callback to be launched when event is detected
+ */
+ void (*callback) (void);
+} t_monitoring_param;
+
+/*!
+ * This function performs filtering and rejection of excessive noise prone
+ * samples.
+ *
+ * @param ts_curr Touch screen value
+ *
+ * @return This function returns 0 on success, -1 otherwise.
+ */
+static int pmic_adc_filter(t_touch_screen *ts_curr);
+
+/*!
+ * This function request a ADC.
+ *
+ * @return This function returns index of ADC to be used (0 or 1) if successful.
+ * return -1 if error.
+ */
+int mc13783_adc_request(bool read_ts);
+
+/*!
+ * This function is used to update buffer of touch screen value in read mode.
+ */
+void update_buffer(void);
+
+/*!
+ * This function release an ADC.
+ *
+ * @param adc_index index of ADC to be released.
+ *
+ * @return This function returns 0 if successful.
+ */
+int mc13783_adc_release(int adc_index);
+
+/*!
+ * This function select the required read_mode for a specific channel.
+ *
+ * @param channel The channel to be sampled
+ *
+ * @return This function returns the requires read_mode
+ */
+t_reading_mode mc13783_set_read_mode(t_channel channel);
+
+/*!
+ * This function read the touch screen value.
+ *
+ * @param touch_sample return value of touch screen
+ * @param wait_tsi if true, this function is synchronous (wait in TSI event).
+ *
+ * @return This function returns 0.
+ */
+PMIC_STATUS mc13783_adc_read_ts(t_touch_screen *touch_sample, int wait_tsi);
+
+#endif /* __MC13783_ADC__DEFS_H__ */
diff --git a/drivers/mxc/pmic/mc13783/pmic_audio.c b/drivers/mxc/pmic/mc13783/pmic_audio.c
new file mode 100644
index 000000000000..acdde44b738f
--- /dev/null
+++ b/drivers/mxc/pmic/mc13783/pmic_audio.c
@@ -0,0 +1,5873 @@
+/*
+ * Copyright 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file mc13783/pmic_audio.c
+ * @brief Implementation of the PMIC(mc13783) Audio driver APIs.
+ *
+ * The PMIC Audio driver and this API were developed to support the
+ * audio playback, recording, and mixing capabilities of the power
+ * management ICs that are available from Freescale Semiconductor, Inc.
+ *
+ * The following operating modes are supported:
+ *
+ * @verbatim
+ Operating Mode mc13783
+ ---------------------------- -------
+ Stereo DAC Playback Yes
+ Stereo DAC Input Mixing Yes
+ Voice CODEC Playback Yes
+ Voice CODEC Input Mixing Yes
+ Voice CODEC Mono Recording Yes
+ Voice CODEC Stereo Recording Yes
+ Microphone Bias Control Yes
+ Output Amplifier Control Yes
+ Output Mixing Control Yes
+ Input Amplifier Control Yes
+ Master/Slave Mode Select Yes
+ Anti Pop Bias Circuit Control Yes
+ @endverbatim
+ *
+ * Note that the Voice CODEC may also be referred to as the Telephone
+ * CODEC in the PMIC DTS documentation. Also note that, while the power
+ * management ICs do provide similar audio capabilities, each PMIC may
+ * support additional configuration settings and features. Therefore, it
+ * is highly recommended that the appropriate power management IC DTS
+ * documents be used in conjunction with this API interface.
+ *
+ * @ingroup PMIC_AUDIO
+ */
+
+#include <linux/module.h>
+#include <linux/interrupt.h> /* For tasklet interface. */
+#include <linux/platform_device.h> /* For kernel module interface. */
+#include <linux/init.h>
+#include <linux/spinlock.h> /* For spinlock interface. */
+#include <linux/pmic_adc.h> /* For PMIC ADC driver interface. */
+#include <linux/pmic_status.h>
+#include <mach/pmic_audio.h> /* For PMIC Audio driver interface. */
+
+/*
+ * mc13783 PMIC Audio API
+ */
+
+/* EXPORTED FUNCTIONS */
+EXPORT_SYMBOL(MIN_STDAC_SAMPLING_RATE_HZ);
+EXPORT_SYMBOL(MAX_STDAC_SAMPLING_RATE_HZ);
+EXPORT_SYMBOL(pmic_audio_open);
+EXPORT_SYMBOL(pmic_audio_close);
+EXPORT_SYMBOL(pmic_audio_set_protocol);
+EXPORT_SYMBOL(pmic_audio_get_protocol);
+EXPORT_SYMBOL(pmic_audio_enable);
+EXPORT_SYMBOL(pmic_audio_disable);
+EXPORT_SYMBOL(pmic_audio_reset);
+EXPORT_SYMBOL(pmic_audio_reset_all);
+EXPORT_SYMBOL(pmic_audio_set_callback);
+EXPORT_SYMBOL(pmic_audio_clear_callback);
+EXPORT_SYMBOL(pmic_audio_get_callback);
+EXPORT_SYMBOL(pmic_audio_antipop_enable);
+EXPORT_SYMBOL(pmic_audio_antipop_disable);
+EXPORT_SYMBOL(pmic_audio_digital_filter_reset);
+EXPORT_SYMBOL(pmic_audio_vcodec_set_clock);
+EXPORT_SYMBOL(pmic_audio_vcodec_get_clock);
+EXPORT_SYMBOL(pmic_audio_vcodec_set_rxtx_timeslot);
+EXPORT_SYMBOL(pmic_audio_vcodec_get_rxtx_timeslot);
+EXPORT_SYMBOL(pmic_audio_vcodec_set_secondary_txslot);
+EXPORT_SYMBOL(pmic_audio_vcodec_get_secondary_txslot);
+EXPORT_SYMBOL(pmic_audio_vcodec_set_config);
+EXPORT_SYMBOL(pmic_audio_vcodec_clear_config);
+EXPORT_SYMBOL(pmic_audio_vcodec_get_config);
+EXPORT_SYMBOL(pmic_audio_vcodec_enable_bypass);
+EXPORT_SYMBOL(pmic_audio_vcodec_disable_bypass);
+EXPORT_SYMBOL(pmic_audio_stdac_set_clock);
+EXPORT_SYMBOL(pmic_audio_stdac_get_clock);
+EXPORT_SYMBOL(pmic_audio_stdac_set_rxtx_timeslot);
+EXPORT_SYMBOL(pmic_audio_stdac_get_rxtx_timeslot);
+EXPORT_SYMBOL(pmic_audio_stdac_set_config);
+EXPORT_SYMBOL(pmic_audio_stdac_clear_config);
+EXPORT_SYMBOL(pmic_audio_stdac_get_config);
+EXPORT_SYMBOL(pmic_audio_input_set_config);
+EXPORT_SYMBOL(pmic_audio_input_clear_config);
+EXPORT_SYMBOL(pmic_audio_input_get_config);
+EXPORT_SYMBOL(pmic_audio_vcodec_set_mic);
+EXPORT_SYMBOL(pmic_audio_vcodec_get_mic);
+EXPORT_SYMBOL(pmic_audio_vcodec_set_mic_on_off);
+EXPORT_SYMBOL(pmic_audio_vcodec_get_mic_on_off);
+EXPORT_SYMBOL(pmic_audio_vcodec_set_record_gain);
+EXPORT_SYMBOL(pmic_audio_vcodec_get_record_gain);
+EXPORT_SYMBOL(pmic_audio_vcodec_enable_micbias);
+EXPORT_SYMBOL(pmic_audio_vcodec_disable_micbias);
+EXPORT_SYMBOL(pmic_audio_vcodec_enable_mixer);
+EXPORT_SYMBOL(pmic_audio_vcodec_disable_mixer);
+EXPORT_SYMBOL(pmic_audio_stdac_enable_mixer);
+EXPORT_SYMBOL(pmic_audio_stdac_disable_mixer);
+EXPORT_SYMBOL(pmic_audio_output_set_port);
+EXPORT_SYMBOL(pmic_audio_output_get_port);
+EXPORT_SYMBOL(pmic_audio_output_clear_port);
+EXPORT_SYMBOL(pmic_audio_output_set_stereo_in_gain);
+EXPORT_SYMBOL(pmic_audio_output_get_stereo_in_gain);
+EXPORT_SYMBOL(pmic_audio_output_set_pgaGain);
+EXPORT_SYMBOL(pmic_audio_output_get_pgaGain);
+EXPORT_SYMBOL(pmic_audio_output_enable_mixer);
+EXPORT_SYMBOL(pmic_audio_output_disable_mixer);
+EXPORT_SYMBOL(pmic_audio_output_set_balance);
+EXPORT_SYMBOL(pmic_audio_output_get_balance);
+EXPORT_SYMBOL(pmic_audio_output_enable_mono_adder);
+EXPORT_SYMBOL(pmic_audio_output_disable_mono_adder);
+EXPORT_SYMBOL(pmic_audio_output_set_mono_adder_gain);
+EXPORT_SYMBOL(pmic_audio_output_get_mono_adder_gain);
+EXPORT_SYMBOL(pmic_audio_output_set_config);
+EXPORT_SYMBOL(pmic_audio_output_clear_config);
+EXPORT_SYMBOL(pmic_audio_output_get_config);
+EXPORT_SYMBOL(pmic_audio_output_enable_phantom_ground);
+EXPORT_SYMBOL(pmic_audio_output_disable_phantom_ground);
+EXPORT_SYMBOL(pmic_audio_set_autodetect);
+#ifdef DEBUG_AUDIO
+EXPORT_SYMBOL(pmic_audio_dump_registers);
+#endif /* DEBUG_AUDIO */
+/*!
+ * Define the minimum sampling rate (in Hz) that is supported by the
+ * Stereo DAC.
+ */
+const unsigned MIN_STDAC_SAMPLING_RATE_HZ = 8000;
+
+/*!
+ * Define the maximum sampling rate (in Hz) that is supported by the
+ * Stereo DAC.
+ */
+const unsigned MAX_STDAC_SAMPLING_RATE_HZ = 96000;
+
+/*! @def SET_BITS
+ * Set a register field to a given value.
+ */
+#define SET_BITS(reg, field, value) (((value) << reg.field.offset) & \
+ reg.field.mask)
+/*! @def GET_BITS
+ * Get the current value of a given register field.
+ */
+#define GET_BITS(reg, field, value) (((value) & reg.field.mask) >> \
+ reg.field.offset)
+
+/*!
+ * @brief Define the possible states for a device handle.
+ *
+ * This enumeration is used to track the current state of each device handle.
+ */
+typedef enum {
+ HANDLE_FREE, /*!< Handle is available for use. */
+ HANDLE_IN_USE /*!< Handle is currently in use. */
+} HANDLE_STATE;
+
+/*!
+ * @brief Identifies the hardware interrupt source.
+ *
+ * This enumeration identifies which of the possible hardware interrupt
+ * sources actually caused the current interrupt handler to be called.
+ */
+typedef enum {
+ CORE_EVENT_MC2BI, /*!< Microphone Bias 2 detect. */
+ CORE_EVENT_HSDETI, /*!< Detect Headset attach */
+ CORE_EVENT_HSLI, /*!< Detect Stereo Headset */
+ CORE_EVENT_ALSPTHI, /*!< Detect Thermal shutdown of ALSP */
+ CORE_EVENT_AHSSHORTI /*!< Detect Short circuit on AHS outputs */
+} PMIC_CORE_EVENT;
+
+/*!
+ * @brief This structure is used to track the state of a microphone input.
+ */
+typedef struct {
+ PMIC_AUDIO_INPUT_PORT mic; /*!< Microphone input port. */
+ PMIC_AUDIO_INPUT_MIC_STATE micOnOff; /*!< Microphone On/Off state. */
+ PMIC_AUDIO_MIC_AMP_MODE ampMode; /*!< Input amplifier mode. */
+ PMIC_AUDIO_MIC_GAIN gain; /*!< Input amplifier gain level. */
+} PMIC_MICROPHONE_STATE;
+
+/*!
+ * @brief Tracks whether a headset is currently attached or not.
+ */
+typedef enum {
+ NO_HEADSET, /*!< No headset currently attached. */
+ HEADSET_ON /*!< Headset has been attached. */
+} HEADSET_STATUS;
+
+/*!
+ * @brief mc13783 only enum that indicates the path to output taken
+ * by the voice codec output
+ */
+typedef enum {
+ VCODEC_DIRECT_OUT, /*!< Vcodec signal out direct */
+ VCODEC_MIXER_OUT /*!< Output via the mixer */
+} PMIC_AUDIO_VCODEC_OUTPUT_PATH;
+
+/*!
+ * @brief This structure is used to define a specific hardware register field.
+ *
+ * All hardware register fields are defined using an offset to the LSB
+ * and a mask. The offset is used to right shift a register value before
+ * applying the mask to actually obtain the value of the field.
+ */
+typedef struct {
+ const unsigned char offset; /*!< Offset of LSB of register field. */
+ const unsigned int mask; /*!< Mask value used to isolate register field. */
+} REGFIELD;
+
+/*!
+ * @brief This structure lists all fields of the AUD_CODEC hardware register.
+ */
+typedef struct {
+ REGFIELD CDCSSISEL; /*!< codec SSI bus select */
+ REGFIELD CDCCLKSEL; /*!< Codec clock input select */
+ REGFIELD CDCSM; /*!< Codec slave / master select */
+ REGFIELD CDCBCLINV; /*!< Codec bitclock inversion */
+ REGFIELD CDCFSINV; /*!< Codec framesync inversion */
+ REGFIELD CDCFS; /*!< Bus protocol selection - 2 bits */
+ REGFIELD CDCCLK; /*!< Codec clock setting - 3 bits */
+ REGFIELD CDCFS8K16K; /*!< Codec framesync select */
+ REGFIELD CDCEN; /*!< Codec enable */
+ REGFIELD CDCCLKEN; /*!< Codec clocking enable */
+ REGFIELD CDCTS; /*!< Codec SSI tristate */
+ REGFIELD CDCDITH; /*!< Codec dithering */
+ REGFIELD CDCRESET; /*!< Codec filter reset */
+ REGFIELD CDCBYP; /*!< Codec bypass */
+ REGFIELD CDCALM; /*!< Codec analog loopback */
+ REGFIELD CDCDLM; /*!< Codec digital loopback */
+ REGFIELD AUDIHPF; /*!< Transmit high pass filter enable */
+ REGFIELD AUDOHPF; /*!< Receive high pass filter enable */
+} REGISTER_AUD_CODEC;
+
+/*!
+ * @brief This variable is used to access the AUD_CODEC hardware register.
+ *
+ * This variable defines how to access all of the fields within the
+ * AUD_CODEC hardware register. The initial values consist of the offset
+ * and mask values needed to access each of the register fields.
+ */
+static const REGISTER_AUD_CODEC regAUD_CODEC = {
+ {0, 0x000001}, /* CDCSSISEL */
+ {1, 0x000002}, /* CDCCLKSEL */
+ {2, 0x000004}, /* CDCSM */
+ {3, 0x000008}, /* CDCBCLINV */
+ {4, 0x000010}, /* CDCFSINV */
+ {5, 0x000060}, /* CDCFS */
+ {7, 0x000380}, /* CDCCLK */
+ {10, 0x000400}, /* CDCFS8K16K */
+ {11, 0x000800}, /* CDCEN */
+ {12, 0x001000}, /* CDCCLKEN */
+ {13, 0x002000}, /* CDCTS */
+ {14, 0x004000}, /* CDCDITH */
+ {15, 0x008000}, /* CDCRESET */
+ {16, 0x010000}, /* CDCBYP */
+ {17, 0x020000}, /* CDCALM */
+ {18, 0x040000}, /* CDCDLM */
+ {19, 0x080000}, /* AUDIHPF */
+ {20, 0x100000} /* AUDOHPF */
+ /* Unused */
+ /* Unused */
+ /* Unused */
+
+};
+
+/*!
+ * @brief This structure lists all fields of the ST_DAC hardware register.
+ */
+ /* VVV */
+typedef struct {
+ REGFIELD STDCSSISEL; /*!< Stereo DAC SSI bus select */
+ REGFIELD STDCCLKSEL; /*!< Stereo DAC clock input select */
+ REGFIELD STDCSM; /*!< Stereo DAC slave / master select */
+ REGFIELD STDCBCLINV; /*!< Stereo DAC bitclock inversion */
+ REGFIELD STDCFSINV; /*!< Stereo DAC framesync inversion */
+ REGFIELD STDCFS; /*!< Bus protocol selection - 2 bits */
+ REGFIELD STDCCLK; /*!< Stereo DAC clock setting - 3 bits */
+ REGFIELD STDCFSDLYB; /*!< Stereo DAC framesync delay bar */
+ REGFIELD STDCEN; /*!< Stereo DAC enable */
+ REGFIELD STDCCLKEN; /*!< Stereo DAC clocking enable */
+ REGFIELD STDCRESET; /*!< Stereo DAC filter reset */
+ REGFIELD SPDIF; /*!< Stereo DAC SSI SPDIF mode. Mode no longer available. */
+ REGFIELD SR; /*!< Stereo DAC sample rate - 4 bits */
+} REGISTER_ST_DAC;
+
+/*!
+ * @brief This variable is used to access the ST_DAC hardware register.
+ *
+ * This variable defines how to access all of the fields within the
+ * ST_DAC hardware register. The initial values consist of the offset
+ * and mask values needed to access each of the register fields.
+ */
+static const REGISTER_ST_DAC regST_DAC = {
+ {0, 0x000001}, /* STDCSSISEL */
+ {1, 0x000002}, /* STDCCLKSEL */
+ {2, 0x000004}, /* STDCSM */
+ {3, 0x000008}, /* STDCBCLINV */
+ {4, 0x000010}, /* STDCFSINV */
+ {5, 0x000060}, /* STDCFS */
+ {7, 0x000380}, /* STDCCLK */
+ {10, 0x000400}, /* STDCFSDLYB */
+ {11, 0x000800}, /* STDCEN */
+ {12, 0x001000}, /* STDCCLKEN */
+ {15, 0x008000}, /* STDCRESET */
+ {16, 0x010000}, /* SPDIF */
+ {17, 0x1E0000} /* SR */
+};
+
+/*!
+ * @brief This structure lists all of the fields in the SSI_NETWORK hardware register.
+ */
+typedef struct {
+ REGFIELD CDCTXRXSLOT; /*!< Codec timeslot assignment - 2 bits */
+ REGFIELD CDCTXSECSLOT; /*!< Codec secondary transmit timeslot - 2 bits */
+ REGFIELD CDCRXSECSLOT; /*!< Codec secondary receive timeslot - 2 bits */
+ REGFIELD CDCRXSECGAIN; /*!< Codec secondary receive channel gain setting - 2 bits */
+ REGFIELD CDCSUMGAIN; /*!< Codec summed receive signal gain setting */
+ REGFIELD CDCFSDLY; /*!< Codec framesync delay */
+ REGFIELD STDCSLOTS; /*!< Stereo DAC number of timeslots select - 2 bits */
+ REGFIELD STDCRXSLOT; /*!< Stereo DAC timeslot assignment - 2 bits */
+ REGFIELD STDCRXSECSLOT; /*!< Stereo DAC secondary receive timeslot - 2 bits */
+ REGFIELD STDCRXSECGAIN; /*!< Stereo DAC secondary receive channel gain setting - 2 bits */
+ REGFIELD STDCSUMGAIN; /*!< Stereo DAC summed receive signal gain setting */
+} REGISTER_SSI_NETWORK;
+
+/*!
+ * @brief This variable is used to access the SSI_NETWORK hardware register.
+ *
+ * This variable defines how to access all of the fields within the
+ * SSI_NETWORK hardware register. The initial values consist of the offset
+ * and mask values needed to access each of the register fields.
+ */
+static const REGISTER_SSI_NETWORK regSSI_NETWORK = {
+ {2, 0x00000c}, /* CDCTXRXSLOT */
+ {4, 0x000030}, /* CDCTXSECSLOT */
+ {6, 0x0000c0}, /* CDCRXSECSLOT */
+ {8, 0x000300}, /* CDCRXSECGAIN */
+ {10, 0x000400}, /* CDCSUMGAIN */
+ {11, 0x000800}, /* CDCFSDLY */
+ {12, 0x003000}, /* STDCSLOTS */
+ {14, 0x00c000}, /* STDCRXSLOT */
+ {16, 0x030000}, /* STDCRXSECSLOT */
+ {18, 0x0c0000}, /* STDCRXSECGAIN */
+ {20, 0x100000} /* STDCSUMGAIN */
+};
+
+/*!
+ * @brief This structure lists all fields of the AUDIO_TX hardware register.
+ *
+ *
+ */
+typedef struct {
+ REGFIELD MC1BEN; /*!< Microphone bias 1 enable */
+ REGFIELD MC2BEN; /*!< Microphone bias 2 enable */
+ REGFIELD MC2BDETDBNC; /*!< Microphone bias detect debounce setting */
+ REGFIELD MC2BDETEN; /*!< Microphone bias 2 detect enable */
+ REGFIELD AMC1REN; /*!< Amplifier Amc1R enable */
+ REGFIELD AMC1RITOV; /*!< Amplifier Amc1R current to voltage mode enable */
+ REGFIELD AMC1LEN; /*!< Amplifier Amc1L enable */
+ REGFIELD AMC1LITOV; /*!< Amplifier Amc1L current to voltage mode enable */
+ REGFIELD AMC2EN; /*!< Amplifier Amc2 enable */
+ REGFIELD AMC2ITOV; /*!< Amplifier Amc2 current to voltage mode enable */
+ REGFIELD ATXINEN; /*!< Amplifier Atxin enable */
+ REGFIELD ATXOUTEN; /*!< Reserved for output TXOUT enable, currently not used */
+ REGFIELD RXINREC; /*!< RXINR/RXINL to voice CODEC ADC routing enable */
+ REGFIELD PGATXR; /*!< Transmit gain setting right - 5 bits */
+ REGFIELD PGATXL; /*!< Transmit gain setting left - 5 bits */
+} REGISTER_AUDIO_TX;
+
+/*!
+ * @brief This variable is used to access the AUDIO_TX hardware register.
+ *
+ * This variable defines how to access all of the fields within the
+ * AUDIO_TX hardware register. The initial values consist of the offset
+ * and mask values needed to access each of the register fields.
+ */
+static const REGISTER_AUDIO_TX regAUDIO_TX = {
+ {0, 0x000001}, /* MC1BEN */
+ {1, 0x000002}, /* MC2BEN */
+ {2, 0x000004}, /* MC2BDETDBNC */
+ {3, 0x000008}, /* MC2BDETEN */
+ {5, 0x000020}, /* AMC1REN */
+ {6, 0x000040}, /* AMC1RITOV */
+ {7, 0x000080}, /* AMC1LEN */
+ {8, 0x000100}, /* AMC1LITOV */
+ {9, 0x000200}, /* AMC2EN */
+ {10, 0x000400}, /* AMC2ITOV */
+ {11, 0x000800}, /* ATXINEN */
+ {12, 0x001000}, /* ATXOUTEN */
+ {13, 0x002000}, /* RXINREC */
+ {14, 0x07c000}, /* PGATXR */
+ {19, 0xf80000} /* PGATXL */
+};
+
+/*!
+ * @brief This structure lists all fields of the AUDIO_RX_0 hardware register.
+ */
+typedef struct {
+ REGFIELD VAUDIOON; /*!< Forces VAUDIO in active on mode */
+ REGFIELD BIASEN; /*!< Audio bias enable */
+ REGFIELD BIASSPEED; /*!< Turn on ramp speed of the audio bias */
+ REGFIELD ASPEN; /*!< Amplifier Asp enable */
+ REGFIELD ASPSEL; /*!< Asp input selector */
+ REGFIELD ALSPEN; /*!< Amplifier Alsp enable */
+ REGFIELD ALSPREF; /*!< Bias Alsp at common audio reference */
+ REGFIELD ALSPSEL; /*!< Alsp input selector */
+ REGFIELD LSPLEN; /*!< Output LSPL enable */
+ REGFIELD AHSREN; /*!< Amplifier AhsR enable */
+ REGFIELD AHSLEN; /*!< Amplifier AhsL enable */
+ REGFIELD AHSSEL; /*!< Ahsr and Ahsl input selector */
+ REGFIELD HSPGDIS; /*!< Phantom ground disable */
+ REGFIELD HSDETEN; /*!< Headset detect enable */
+ REGFIELD HSDETAUTOB; /*!< Amplifier state determined by headset detect */
+ REGFIELD ARXOUTREN; /*!< Output RXOUTR enable */
+ REGFIELD ARXOUTLEN; /*!< Output RXOUTL enable */
+ REGFIELD ARXOUTSEL; /*!< Arxout input selector */
+ REGFIELD CDCOUTEN; /*!< Output CDCOUT enable */
+ REGFIELD HSLDETEN; /*!< Headset left channel detect enable */
+ REGFIELD ADDCDC; /*!< Adder channel codec selection */
+ REGFIELD ADDSTDC; /*!< Adder channel stereo DAC selection */
+ REGFIELD ADDRXIN; /*!< Adder channel line in selection */
+} REGISTER_AUDIO_RX_0;
+
+/*!
+ * @brief This variable is used to access the AUDIO_RX_0 hardware register.
+ *
+ * This variable defines how to access all of the fields within the
+ * AUDIO_RX_0 hardware register. The initial values consist of the offset
+ * and mask values needed to access each of the register fields.
+ */
+static const REGISTER_AUDIO_RX_0 regAUDIO_RX_0 = {
+ {0, 0x000001}, /* VAUDIOON */
+ {1, 0x000002}, /* BIASEN */
+ {2, 0x000004}, /* BIASSPEED */
+ {3, 0x000008}, /* ASPEN */
+ {4, 0x000010}, /* ASPSEL */
+ {5, 0x000020}, /* ALSPEN */
+ {6, 0x000040}, /* ALSPREF */
+ {7, 0x000080}, /* ALSPSEL */
+ {8, 0x000100}, /* LSPLEN */
+ {9, 0x000200}, /* AHSREN */
+ {10, 0x000400}, /* AHSLEN */
+ {11, 0x000800}, /* AHSSEL */
+ {12, 0x001000}, /* HSPGDIS */
+ {13, 0x002000}, /* HSDETEN */
+ {14, 0x004000}, /* HSDETAUTOB */
+ {15, 0x008000}, /* ARXOUTREN */
+ {16, 0x010000}, /* ARXOUTLEN */
+ {17, 0x020000}, /* ARXOUTSEL */
+ {18, 0x040000}, /* CDCOUTEN */
+ {19, 0x080000}, /* HSLDETEN */
+ {21, 0x200000}, /* ADDCDC */
+ {22, 0x400000}, /* ADDSTDC */
+ {23, 0x800000} /* ADDRXIN */
+};
+
+/*!
+ * @brief This structure lists all fields of the AUDIO_RX_1 hardware register.
+ */
+typedef struct {
+ REGFIELD PGARXEN; /*!< Codec receive PGA enable */
+ REGFIELD PGARX; /*!< Codec receive gain setting - 4 bits */
+ REGFIELD PGASTEN; /*!< Stereo DAC PGA enable */
+ REGFIELD PGAST; /*!< Stereo DAC gain setting - 4 bits */
+ REGFIELD ARXINEN; /*!< Amplifier Arx enable */
+ REGFIELD ARXIN; /*!< Amplifier Arx additional gain setting */
+ REGFIELD PGARXIN; /*!< PGArxin gain setting - 4 bits */
+ REGFIELD MONO; /*!< Mono adder setting - 2 bits */
+ REGFIELD BAL; /*!< Balance control - 3 bits */
+ REGFIELD BALLR; /*!< Left / right balance */
+} REGISTER_AUDIO_RX_1;
+
+/*!
+ * @brief This variable is used to access the AUDIO_RX_1 hardware register.
+ *
+ * This variable defines how to access all of the fields within the
+ * AUDIO_RX_1 hardware register. The initial values consist of the offset
+ * and mask values needed to access each of the register fields.
+ */
+static const REGISTER_AUDIO_RX_1 regAUDIO_RX_1 = {
+ {0, 0x000001}, /* PGARXEN */
+ {1, 0x00001e}, /* PGARX */
+ {5, 0x000020}, /* PGASTEN */
+ {6, 0x0003c0}, /* PGAST */
+ {10, 0x000400}, /* ARXINEN */
+ {11, 0x000800}, /* ARXIN */
+ {12, 0x00f000}, /* PGARXIN */
+ {16, 0x030000}, /* MONO */
+ {18, 0x1c0000}, /* BAL */
+ {21, 0x200000} /* BALLR */
+};
+
+/*! Define a mask to access the entire hardware register. */
+static const unsigned int REG_FULLMASK = 0xffffff;
+
+/*! Reset value for the AUD_CODEC register. */
+static const unsigned int RESET_AUD_CODEC = 0x180027;
+
+/*! Reset value for the ST_DAC register.
+ *
+ * Note that we avoid resetting any of the arbitration bits.
+ */
+static const unsigned int RESET_ST_DAC = 0x0E0004;
+
+/*! Reset value for the SSI_NETWORK register. */
+static const unsigned int RESET_SSI_NETWORK = 0x013060;
+
+/*! Reset value for the AUDIO_TX register.
+ *
+ * Note that we avoid resetting any of the arbitration bits.
+ */
+static const unsigned int RESET_AUDIO_TX = 0x420000;
+
+/*! Reset value for the AUDIO_RX_0 register. */
+static const unsigned int RESET_AUDIO_RX_0 = 0x001000;
+
+/*! Reset value for the AUDIO_RX_1 register. */
+static const unsigned int RESET_AUDIO_RX_1 = 0x00D35A;
+
+/*! Reset mask for the SSI network Vcodec part. first 12 bits
+ * 0 - 11 */
+static const unsigned int REG_SSI_VCODEC_MASK = 0x000fff;
+
+/*! Reset mask for the SSI network STDAC part. last 12 bits
+ * 12 - 24 */
+static const unsigned int REG_SSI_STDAC_MASK = 0xfff000;
+
+/*! Constant NULL value for initializing/reseting the audio handles. */
+static const PMIC_AUDIO_HANDLE AUDIO_HANDLE_NULL = (PMIC_AUDIO_HANDLE) NULL;
+
+/*!
+ * @brief This structure maintains the current state of the Stereo DAC.
+ */
+typedef struct {
+ PMIC_AUDIO_HANDLE handle; /*!< Handle used to access
+ the Stereo DAC. */
+ HANDLE_STATE handleState; /*!< Current handle state. */
+ PMIC_AUDIO_DATA_BUS busID; /*!< Data bus used to access
+ the Stereo DAC. */
+ bool protocol_set;
+ PMIC_AUDIO_BUS_PROTOCOL protocol; /*!< Data bus protocol. */
+ PMIC_AUDIO_BUS_MODE masterSlave; /*!< Master/Slave mode
+ select. */
+ PMIC_AUDIO_NUMSLOTS numSlots; /*!< Number of timeslots
+ used. */
+ PMIC_AUDIO_CALLBACK callback; /*!< Event notification
+ callback function
+ pointer. */
+ PMIC_AUDIO_EVENTS eventMask; /*!< Event notification mask. */
+ PMIC_AUDIO_CLOCK_IN_SOURCE clockIn; /*!< Stereo DAC clock input
+ source select. */
+ PMIC_AUDIO_STDAC_SAMPLING_RATE samplingRate; /*!< Stereo DAC sampling rate
+ select. */
+ PMIC_AUDIO_STDAC_CLOCK_IN_FREQ clockFreq; /*!< Stereo DAC clock input
+ frequency. */
+ PMIC_AUDIO_CLOCK_INVERT invert; /*!< Stereo DAC clock signal
+ invert select. */
+ PMIC_AUDIO_STDAC_TIMESLOTS timeslot; /*!< Stereo DAC data
+ timeslots select. */
+ PMIC_AUDIO_STDAC_CONFIG config; /*!< Stereo DAC configuration
+ options. */
+} PMIC_AUDIO_STDAC_STATE;
+
+/*!
+ * @brief This variable maintains the current state of the Stereo DAC.
+ *
+ * This variable tracks the current state of the Stereo DAC audio hardware
+ * along with any information that is required by the device driver to
+ * manage the hardware (e.g., callback functions and event notification
+ * masks).
+ *
+ * The initial values represent the reset/power on state of the Stereo DAC.
+ */
+static PMIC_AUDIO_STDAC_STATE stDAC = {
+ (PMIC_AUDIO_HANDLE) NULL, /* handle */
+ HANDLE_FREE, /* handleState */
+ AUDIO_DATA_BUS_1, /* busID */
+ false,
+ NORMAL_MSB_JUSTIFIED_MODE, /* protocol */
+ BUS_MASTER_MODE, /* masterSlave */
+ USE_2_TIMESLOTS, /* numSlots */
+ (PMIC_AUDIO_CALLBACK) NULL, /* callback */
+ (PMIC_AUDIO_EVENTS) NULL, /* eventMask */
+ CLOCK_IN_CLIA, /* clockIn */
+ STDAC_RATE_44_1_KHZ, /* samplingRate */
+ STDAC_CLI_13MHZ, /* clockFreq */
+ NO_INVERT, /* invert */
+ USE_TS0_TS1, /* timeslot */
+ (PMIC_AUDIO_STDAC_CONFIG) 0 /* config */
+};
+
+/*!
+ * @brief This structure maintains the current state of the Voice CODEC.
+ */
+typedef struct {
+ PMIC_AUDIO_HANDLE handle; /*!< Handle used to access
+ the Voice CODEC. */
+ HANDLE_STATE handleState; /*!< Current handle state. */
+ PMIC_AUDIO_DATA_BUS busID; /*!< Data bus used to access
+ the Voice CODEC. */
+ bool protocol_set;
+ PMIC_AUDIO_BUS_PROTOCOL protocol; /*!< Data bus protocol. */
+ PMIC_AUDIO_BUS_MODE masterSlave; /*!< Master/Slave mode
+ select. */
+ PMIC_AUDIO_NUMSLOTS numSlots; /*!< Number of timeslots
+ used. */
+ PMIC_AUDIO_CALLBACK callback; /*!< Event notification
+ callback function
+ pointer. */
+ PMIC_AUDIO_EVENTS eventMask; /*!< Event notification
+ mask. */
+ PMIC_AUDIO_CLOCK_IN_SOURCE clockIn; /*!< Voice CODEC clock input
+ source select. */
+ PMIC_AUDIO_VCODEC_SAMPLING_RATE samplingRate; /*!< Voice CODEC sampling
+ rate select. */
+ PMIC_AUDIO_VCODEC_CLOCK_IN_FREQ clockFreq; /*!< Voice CODEC clock input
+ frequency. */
+ PMIC_AUDIO_CLOCK_INVERT invert; /*!< Voice CODEC clock
+ signal invert select. */
+ PMIC_AUDIO_VCODEC_TIMESLOT timeslot; /*!< Voice CODEC data
+ timeslot select. */
+ PMIC_AUDIO_VCODEC_TIMESLOT secondaryTXtimeslot;
+
+ PMIC_AUDIO_VCODEC_CONFIG config; /*!< Voice CODEC
+ configuration
+ options. */
+ PMIC_MICROPHONE_STATE leftChannelMic; /*!< Left channel
+ microphone
+ configuration. */
+ PMIC_MICROPHONE_STATE rightChannelMic; /*!< Right channel
+ microphone
+ configuration. */
+} PMIC_AUDIO_VCODEC_STATE;
+
+/*!
+ * @brief This variable maintains the current state of the Voice CODEC.
+ *
+ * This variable tracks the current state of the Voice CODEC audio hardware
+ * along with any information that is required by the device driver to
+ * manage the hardware (e.g., callback functions and event notification
+ * masks).
+ *
+ * The initial values represent the reset/power on state of the Voice CODEC.
+ */
+static PMIC_AUDIO_VCODEC_STATE vCodec = {
+ (PMIC_AUDIO_HANDLE) NULL, /* handle */
+ HANDLE_FREE, /* handleState */
+ AUDIO_DATA_BUS_2, /* busID */
+ false,
+ NETWORK_MODE, /* protocol */
+ BUS_SLAVE_MODE, /* masterSlave */
+ USE_4_TIMESLOTS, /* numSlots */
+ (PMIC_AUDIO_CALLBACK) NULL, /* callback */
+ (PMIC_AUDIO_EVENTS) NULL, /* eventMask */
+ CLOCK_IN_CLIB, /* clockIn */
+ VCODEC_RATE_8_KHZ, /* samplingRate */
+ VCODEC_CLI_13MHZ, /* clockFreq */
+ NO_INVERT, /* invert */
+ USE_TS0, /* timeslot pri */
+ USE_TS2, /* timeslot sec TX */
+ INPUT_HIGHPASS_FILTER | OUTPUT_HIGHPASS_FILTER, /* config */
+ /* leftChannelMic */
+ {NO_MIC, /* mic */
+ MICROPHONE_OFF, /* micOnOff */
+ AMP_OFF, /* ampMode */
+ MIC_GAIN_0DB /* gain */
+ },
+ /* rightChannelMic */
+ {NO_MIC, /* mic */
+ MICROPHONE_OFF, /* micOnOff */
+ AMP_OFF, /* ampMode */
+ MIC_GAIN_0DB /* gain */
+ }
+};
+
+/*!
+ * @brief This maintains the current state of the External Stereo Input.
+ */
+typedef struct {
+ PMIC_AUDIO_HANDLE handle; /*!< Handle used to access the
+ External Stereo Inputs. */
+ HANDLE_STATE handleState; /*!< Current handle state. */
+ PMIC_AUDIO_CALLBACK callback; /*!< Event notification callback
+ function pointer. */
+ PMIC_AUDIO_EVENTS eventMask; /*!< Event notification mask. */
+ PMIC_AUDIO_STEREO_IN_GAIN inputGain; /*!< External Stereo Input
+ amplifier gain level. */
+} PMIC_AUDIO_EXT_STEREO_IN_STATE;
+
+/*!
+ * @brief This maintains the current state of the External Stereo Input.
+ *
+ * This variable tracks the current state of the External Stereo Input audio
+ * hardware along with any information that is required by the device driver
+ * to manage the hardware (e.g., callback functions and event notification
+ * masks).
+ *
+ * The initial values represent the reset/power on state of the External
+ * Stereo Input.
+ */
+static PMIC_AUDIO_EXT_STEREO_IN_STATE extStereoIn = {
+ (PMIC_AUDIO_HANDLE) NULL, /* handle */
+ HANDLE_FREE, /* handleState */
+ (PMIC_AUDIO_CALLBACK) NULL, /* callback */
+ (PMIC_AUDIO_EVENTS) NULL, /* eventMask */
+ STEREO_IN_GAIN_0DB /* inputGain */
+};
+
+/*!
+ * @brief This maintains the current state of the callback & Eventmask.
+ */
+typedef struct {
+ PMIC_AUDIO_CALLBACK callback; /*!< Event notification callback
+ function pointer. */
+ PMIC_AUDIO_EVENTS eventMask; /*!< Event notification mask. */
+} PMIC_AUDIO_EVENT_STATE;
+
+static PMIC_AUDIO_EVENT_STATE event_state = {
+ (PMIC_AUDIO_CALLBACK) NULL, /*Callback */
+ (PMIC_AUDIO_EVENTS) NULL, /* EventMask */
+
+};
+
+/*!
+ * @brief This maintains the current state of the Audio Output Section.
+ */
+typedef struct {
+ PMIC_AUDIO_OUTPUT_PORT outputPort; /*!< Current audio
+ output port. */
+ PMIC_AUDIO_OUTPUT_PGA_GAIN vCodecoutputPGAGain; /*!< Output PGA gain
+ level codec */
+ PMIC_AUDIO_OUTPUT_PGA_GAIN stDacoutputPGAGain; /*!< Output PGA gain
+ level stDAC */
+ PMIC_AUDIO_OUTPUT_PGA_GAIN extStereooutputPGAGain; /*!< Output PGA gain
+ level stereo ext */
+ PMIC_AUDIO_OUTPUT_BALANCE_GAIN balanceLeftGain; /*!< Left channel
+ balance gain
+ level. */
+ PMIC_AUDIO_OUTPUT_BALANCE_GAIN balanceRightGain; /*!< Right channel
+ balance gain
+ level. */
+ PMIC_AUDIO_MONO_ADDER_OUTPUT_GAIN monoAdderGain; /*!< Mono adder gain
+ level. */
+ PMIC_AUDIO_OUTPUT_CONFIG config; /*!< Audio output
+ section config
+ options. */
+ PMIC_AUDIO_VCODEC_OUTPUT_PATH vCodecOut;
+
+} PMIC_AUDIO_AUDIO_OUTPUT_STATE;
+
+/*!
+ * @brief This variable maintains the current state of the Audio Output Section.
+ *
+ * This variable tracks the current state of the Audio Output Section.
+ *
+ * The initial values represent the reset/power on state of the Audio
+ * Output Section.
+ */
+static PMIC_AUDIO_AUDIO_OUTPUT_STATE audioOutput = {
+ (PMIC_AUDIO_OUTPUT_PORT) NULL, /* outputPort */
+ OUTPGA_GAIN_0DB, /* outputPGAGain */
+ OUTPGA_GAIN_0DB, /* outputPGAGain */
+ OUTPGA_GAIN_0DB, /* outputPGAGain */
+ BAL_GAIN_0DB, /* balanceLeftGain */
+ BAL_GAIN_0DB, /* balanceRightGain */
+ MONOADD_GAIN_0DB, /* monoAdderGain */
+ (PMIC_AUDIO_OUTPUT_CONFIG) 0, /* config */
+ VCODEC_DIRECT_OUT
+};
+
+/*! The current headset status. */
+static HEADSET_STATUS headsetState = NO_HEADSET;
+
+/* Removed PTT variable */
+/*! Define a 1 ms wait interval that is needed to ensure that certain
+ * hardware operations are successfully completed.
+ */
+static const unsigned long delay_1ms = (HZ / 1000);
+
+/*!
+ * @brief This spinlock is used to provide mutual exclusion.
+ *
+ * Create a spinlock that can be used to provide mutually exclusive
+ * read/write access to the globally accessible data structures
+ * that were defined above. Mutually exclusive access is required to
+ * ensure that the audio data structures are consistent at all times
+ * when possibly accessed by multiple threads of execution (for example,
+ * while simultaneously handling a user request and an interrupt event).
+ *
+ * We need to use a spinlock whenever we do need to provide mutual
+ * exclusion while possibly executing in a hardware interrupt context.
+ * Spinlocks should be held for the minimum time that is necessary
+ * because hardware interrupts are disabled while a spinlock is held.
+ *
+ */
+static DEFINE_SPINLOCK(lock);
+
+/*!
+ * @brief This mutex is used to provide mutual exclusion.
+ *
+ * Create a mutex that can be used to provide mutually exclusive
+ * read/write access to the globally accessible data structures
+ * that were defined above. Mutually exclusive access is required to
+ * ensure that the audio data structures are consistent at all times
+ * when possibly accessed by multiple threads of execution.
+ *
+ * Note that we use a mutex instead of the spinlock whenever disabling
+ * interrupts while in the critical section is not required. This helps
+ * to minimize kernel interrupt handling latency.
+ */
+static DECLARE_MUTEX(mutex);
+
+/*!
+ * @brief Global variable to track currently active interrupt events.
+ *
+ * This global variable is used to keep track of all of the currently
+ * active interrupt events for the audio driver. Note that access to this
+ * variable may occur while within an interrupt context and, therefore,
+ * must be guarded by using a spinlock.
+ */
+/* static PMIC_CORE_EVENT eventID = 0; */
+
+/* Prototypes for all static audio driver functions. */
+/*
+static PMIC_STATUS pmic_audio_mic_boost_enable(void);
+static PMIC_STATUS pmic_audio_mic_boost_disable(void);*/
+static PMIC_STATUS pmic_audio_close_handle(const PMIC_AUDIO_HANDLE handle);
+static PMIC_STATUS pmic_audio_reset_device(const PMIC_AUDIO_HANDLE handle);
+
+static PMIC_STATUS pmic_audio_deregister(void *callback,
+ PMIC_AUDIO_EVENTS * const eventMask);
+
+/*************************************************************************
+ * Audio device access APIs.
+ *************************************************************************
+ */
+
+/*!
+ * @name General Setup and Configuration APIs
+ * Functions for general setup and configuration of the PMIC Audio
+ * hardware.
+ */
+/*@{*/
+
+PMIC_STATUS pmic_audio_set_autodetect(int val)
+{
+ PMIC_STATUS status;
+ unsigned int reg_mask = 0, reg_write = 0;
+ reg_mask = SET_BITS(regAUDIO_RX_0, VAUDIOON, 1);
+ status = pmic_write_reg(REG_AUDIO_RX_0, reg_mask, reg_mask);
+ if (status != PMIC_SUCCESS)
+ return status;
+ reg_mask = 0;
+ if (val == 1) {
+ reg_write = SET_BITS(regAUDIO_RX_0, HSDETEN, 1) |
+ SET_BITS(regAUDIO_RX_0, HSDETAUTOB, 1);
+ } else {
+ reg_write = 0;
+ }
+ reg_mask =
+ SET_BITS(regAUDIO_RX_0, HSDETEN, 1) | SET_BITS(regAUDIO_RX_0,
+ HSDETAUTOB, 1);
+ status = pmic_write_reg(REG_AUDIO_RX_0, reg_write, reg_mask);
+
+ return status;
+}
+
+/*!
+ * @brief Request exclusive access to the PMIC Audio hardware.
+ *
+ * Attempt to open and gain exclusive access to a key PMIC audio hardware
+ * component (e.g., the Stereo DAC or the Voice CODEC). Depending upon the
+ * type of audio operation that is desired and the nature of the audio data
+ * stream, the Stereo DAC and/or the Voice CODEC will be a required hardware
+ * component and needs to be acquired by calling this function.
+ *
+ * If the open request is successful, then a numeric handle is returned
+ * and this handle must be used in all subsequent function calls to complete
+ * the configuration of either the Stereo DAC or the Voice CODEC and along
+ * with any other associated audio hardware components that will be needed.
+ *
+ * The same handle must also be used in the close call when use of the PMIC
+ * audio hardware is no longer required.
+ *
+ * The open request will fail if the requested audio hardware component has
+ * already been acquired by a previous open call but not yet closed.
+ *
+ * @param handle Device handle to be used for subsequent PMIC
+ * audio API calls.
+ * @param device The required PMIC audio hardware component.
+ *
+ * @retval PMIC_SUCCESS If the open request was successful
+ * @retval PMIC_PARAMETER_ERROR If the handle argument is NULL.
+ * @retval PMIC_ERROR If the audio hardware component is
+ * unavailable.
+ */
+PMIC_STATUS pmic_audio_open(PMIC_AUDIO_HANDLE * const handle,
+ const PMIC_AUDIO_SOURCE device)
+{
+ PMIC_STATUS rc = PMIC_ERROR;
+
+ if (handle == (PMIC_AUDIO_HANDLE *) NULL) {
+ /* Do not dereference a NULL pointer. */
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ /* We only need to acquire a mutex here because the interrupt handler
+ * never modifies the device handle or device handle state. Therefore,
+ * we don't need to worry about conflicts with the interrupt handler
+ * or the need to execute in an interrupt context.
+ *
+ * But we do need a critical section here to avoid problems in case
+ * multiple calls to pmic_audio_open() are made since we can only allow
+ * one of them to succeed.
+ */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ /* Check the current device handle state and acquire the handle if
+ * it is available.
+ */
+
+ if ((device == STEREO_DAC) && (stDAC.handleState == HANDLE_FREE)) {
+ stDAC.handle = (PMIC_AUDIO_HANDLE) (&stDAC);
+ stDAC.handleState = HANDLE_IN_USE;
+ *handle = stDAC.handle;
+ rc = PMIC_SUCCESS;
+ } else if ((device == VOICE_CODEC)
+ && (vCodec.handleState == HANDLE_FREE)) {
+ vCodec.handle = (PMIC_AUDIO_HANDLE) (&vCodec);
+ vCodec.handleState = HANDLE_IN_USE;
+ *handle = vCodec.handle;
+ rc = PMIC_SUCCESS;
+ } else if ((device == EXTERNAL_STEREO_IN) &&
+ (extStereoIn.handleState == HANDLE_FREE)) {
+ extStereoIn.handle = (PMIC_AUDIO_HANDLE) (&extStereoIn);
+ extStereoIn.handleState = HANDLE_IN_USE;
+ *handle = extStereoIn.handle;
+ rc = PMIC_SUCCESS;
+ } else {
+ *handle = AUDIO_HANDLE_NULL;
+ }
+
+ /* Exit the critical section. */
+ up(&mutex);
+
+ return rc;
+}
+
+/*!
+ * @brief Terminate further access to the PMIC audio hardware.
+ *
+ * Terminate further access to the PMIC audio hardware that was previously
+ * acquired by calling pmic_audio_open(). This now allows another thread to
+ * successfully call pmic_audio_open() to gain access.
+ *
+ * Note that we will shutdown/reset the Voice CODEC or Stereo DAC as well as
+ * any associated audio input/output components that are no longer required.
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ *
+ * @retval PMIC_SUCCESS If the close request was successful.
+ * @retval PMIC_PARAMETER_ERROR If the handle is invalid.
+ */
+PMIC_STATUS pmic_audio_close(const PMIC_AUDIO_HANDLE handle)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+
+ /* We need a critical section here to maintain a consistent state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ /* We can now call pmic_audio_close_handle() to actually do the work. */
+ rc = pmic_audio_close_handle(handle);
+
+ /* Exit the critical section. */
+ up(&mutex);
+
+ return rc;
+}
+
+/*!
+ * @brief Configure the data bus protocol to be used.
+ *
+ * Provide the parameters needed to properly configure the audio data bus
+ * protocol so that data can be read/written to either the Stereo DAC or
+ * the Voice CODEC.
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ * @param busID Select data bus to be used.
+ * @param protocol Select the data bus protocol.
+ * @param masterSlave Select the data bus timing mode.
+ * @param numSlots Define the number of timeslots (only if in
+ * master mode).
+ *
+ * @retval PMIC_SUCCESS If the protocol was successful configured.
+ * @retval PMIC_PARAMETER_ERROR If the handle or the protocol parameters
+ * are invalid.
+ */
+PMIC_STATUS pmic_audio_set_protocol(const PMIC_AUDIO_HANDLE handle,
+ const PMIC_AUDIO_DATA_BUS busID,
+ const PMIC_AUDIO_BUS_PROTOCOL protocol,
+ const PMIC_AUDIO_BUS_MODE masterSlave,
+ const PMIC_AUDIO_NUMSLOTS numSlots)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+ const unsigned int ST_DAC_MASK = SET_BITS(regST_DAC, STDCSSISEL, 1) |
+ SET_BITS(regST_DAC, STDCFS, 3) | SET_BITS(regST_DAC, STDCSM, 1);
+
+ unsigned int reg_mask;
+ /*unsigned int VCODEC_MASK = SET_BITS(regAUD_CODEC, CDCSSISEL, 1) |
+ SET_BITS(regAUD_CODEC, CDCFS, 3) | SET_BITS(regAUD_CODEC, CDCSM, 1); */
+
+ unsigned int SSI_NW_MASK = SET_BITS(regSSI_NETWORK, STDCSLOTS, 1);
+ unsigned int reg_value = 0;
+ unsigned int ssi_nw_value = 0;
+
+ /* Enter a critical section so that we can ensure only one
+ * state change request is completed at a time.
+ */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ if (handle == (PMIC_AUDIO_HANDLE) NULL) {
+ rc = PMIC_PARAMETER_ERROR;
+ } else {
+ if ((handle == vCodec.handle) &&
+ (vCodec.handleState == HANDLE_IN_USE)) {
+ if ((stDAC.handleState == HANDLE_IN_USE) &&
+ (stDAC.busID == busID) && (stDAC.protocol_set)) {
+ pr_debug("The requested bus already in USE\n");
+ rc = PMIC_PARAMETER_ERROR;
+ } else if ((masterSlave == BUS_MASTER_MODE)
+ && (numSlots != USE_4_TIMESLOTS)) {
+ pr_debug
+ ("mc13783 supports only 4 slots in Master mode\n");
+ rc = PMIC_NOT_SUPPORTED;
+ } else if ((masterSlave == BUS_SLAVE_MODE)
+ && (numSlots != USE_4_TIMESLOTS)) {
+ pr_debug
+ ("Driver currently supports only 4 slots in Slave mode\n");
+ rc = PMIC_NOT_SUPPORTED;
+ } else if (!((protocol == NETWORK_MODE) ||
+ (protocol == I2S_MODE))) {
+ pr_debug
+ ("mc13783 Voice codec works only in Network and I2S modes\n");
+ rc = PMIC_NOT_SUPPORTED;
+ } else {
+ pr_debug
+ ("Proceeding to configure Voice Codec\n");
+ if (busID == AUDIO_DATA_BUS_1) {
+ reg_value =
+ SET_BITS(regAUD_CODEC, CDCSSISEL,
+ 0);
+ } else {
+ reg_value =
+ SET_BITS(regAUD_CODEC, CDCSSISEL,
+ 1);
+ }
+ reg_mask = SET_BITS(regAUD_CODEC, CDCSSISEL, 1);
+ if (PMIC_SUCCESS !=
+ pmic_write_reg(REG_AUDIO_CODEC,
+ reg_value, reg_mask))
+ return PMIC_ERROR;
+
+ if (masterSlave == BUS_MASTER_MODE) {
+ reg_value =
+ SET_BITS(regAUD_CODEC, CDCSM, 0);
+ } else {
+ reg_value =
+ SET_BITS(regAUD_CODEC, CDCSM, 1);
+ }
+ reg_mask = SET_BITS(regAUD_CODEC, CDCSM, 1);
+ if (PMIC_SUCCESS !=
+ pmic_write_reg(REG_AUDIO_CODEC,
+ reg_value, reg_mask))
+ return PMIC_ERROR;
+
+ if (protocol == NETWORK_MODE) {
+ reg_value =
+ SET_BITS(regAUD_CODEC, CDCFS, 1);
+ } else { /* protocol == I2S, other options have been already eliminated */
+ reg_value =
+ SET_BITS(regAUD_CODEC, CDCFS, 2);
+ }
+ reg_mask = SET_BITS(regAUD_CODEC, CDCFS, 3);
+ if (PMIC_SUCCESS !=
+ pmic_write_reg(REG_AUDIO_CODEC,
+ reg_value, reg_mask))
+ return PMIC_ERROR;
+
+ ssi_nw_value =
+ SET_BITS(regSSI_NETWORK, CDCFSDLY, 1);
+ /*if (pmic_write_reg
+ (REG_AUDIO_CODEC, reg_value,
+ VCODEC_MASK) != PMIC_SUCCESS) {
+ rc = PMIC_ERROR;
+ } else { */
+ vCodec.busID = busID;
+ vCodec.protocol = protocol;
+ vCodec.masterSlave = masterSlave;
+ vCodec.numSlots = numSlots;
+ vCodec.protocol_set = true;
+
+ pr_debug
+ ("mc13783 Voice codec successfully configured\n");
+ rc = PMIC_SUCCESS;
+ }
+
+ } else if ((handle == stDAC.handle) &&
+ (stDAC.handleState == HANDLE_IN_USE)) {
+ if ((vCodec.handleState == HANDLE_IN_USE) &&
+ (vCodec.busID == busID) && (vCodec.protocol_set)) {
+ pr_debug("The requested bus already in USE\n");
+ rc = PMIC_PARAMETER_ERROR;
+ } else if (((protocol == NORMAL_MSB_JUSTIFIED_MODE) ||
+ (protocol == I2S_MODE))
+ && (numSlots != USE_2_TIMESLOTS)) {
+ pr_debug
+ ("STDAC uses only 2 slots in Normal and I2S modes\n");
+ rc = PMIC_PARAMETER_ERROR;
+ } else if ((protocol == NETWORK_MODE) &&
+ !((numSlots == USE_2_TIMESLOTS) ||
+ (numSlots == USE_4_TIMESLOTS) ||
+ (numSlots == USE_8_TIMESLOTS))) {
+ pr_debug
+ ("STDAC uses only 2,4 or 8 slots in Network mode\n");
+ rc = PMIC_PARAMETER_ERROR;
+ } else if (protocol == SPD_IF_MODE) {
+ pr_debug
+ ("STDAC driver currently does not support SPD IF mode\n");
+ rc = PMIC_NOT_SUPPORTED;
+ } else {
+ pr_debug
+ ("Proceeding to configure Stereo DAC\n");
+ if (busID == AUDIO_DATA_BUS_1) {
+ reg_value =
+ SET_BITS(regST_DAC, STDCSSISEL, 0);
+ } else {
+ reg_value =
+ SET_BITS(regST_DAC, STDCSSISEL, 1);
+ }
+ if (masterSlave == BUS_MASTER_MODE) {
+ reg_value |=
+ SET_BITS(regST_DAC, STDCSM, 0);
+ } else {
+ reg_value |=
+ SET_BITS(regST_DAC, STDCSM, 1);
+ }
+ if (protocol == NETWORK_MODE) {
+ reg_value |=
+ SET_BITS(regST_DAC, STDCFS, 1);
+ } else if (protocol ==
+ NORMAL_MSB_JUSTIFIED_MODE) {
+ reg_value |=
+ SET_BITS(regST_DAC, STDCFS, 0);
+ } else { /* I2S mode as the other option has already been eliminated */
+ reg_value |=
+ SET_BITS(regST_DAC, STDCFS, 2);
+ }
+
+ if (pmic_write_reg
+ (REG_AUDIO_STEREO_DAC,
+ reg_value, ST_DAC_MASK) != PMIC_SUCCESS) {
+ rc = PMIC_ERROR;
+ } else {
+ if (numSlots == USE_2_TIMESLOTS) {
+ reg_value =
+ SET_BITS(regSSI_NETWORK,
+ STDCSLOTS, 3);
+ } else if (numSlots == USE_4_TIMESLOTS) {
+ reg_value =
+ SET_BITS(regSSI_NETWORK,
+ STDCSLOTS, 2);
+ } else { /* Use 8 timeslots - L , R and 6 other */
+ reg_value =
+ SET_BITS(regSSI_NETWORK,
+ STDCSLOTS, 1);
+ }
+ if (pmic_write_reg
+ (REG_AUDIO_SSI_NETWORK,
+ reg_value,
+ SSI_NW_MASK) != PMIC_SUCCESS) {
+ rc = PMIC_ERROR;
+ } else {
+ stDAC.busID = busID;
+ stDAC.protocol = protocol;
+ stDAC.protocol_set = true;
+ stDAC.masterSlave = masterSlave;
+ stDAC.numSlots = numSlots;
+ pr_debug
+ ("mc13783 Stereo DAC successfully configured\n");
+ rc = PMIC_SUCCESS;
+ }
+ }
+
+ }
+ } else {
+ rc = PMIC_PARAMETER_ERROR;
+ /* Handle can only be Voice Codec or Stereo DAC */
+ pr_debug("Handles only STDAC and VCODEC\n");
+ }
+
+ }
+ /* Exit critical section. */
+ up(&mutex);
+ return rc;
+}
+
+/*!
+ * @brief Retrieve the current data bus protocol configuration.
+ *
+ * Retrieve the parameters that define the current audio data bus protocol.
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ * @param busID The data bus being used.
+ * @param protocol The data bus protocol being used.
+ * @param masterSlave The data bus timing mode being used.
+ * @param numSlots The number of timeslots being used (if in
+ * master mode).
+ *
+ * @retval PMIC_SUCCESS If the protocol was successful retrieved.
+ * @retval PMIC_PARAMETER_ERROR If the handle is invalid.
+ */
+PMIC_STATUS pmic_audio_get_protocol(const PMIC_AUDIO_HANDLE handle,
+ PMIC_AUDIO_DATA_BUS * const busID,
+ PMIC_AUDIO_BUS_PROTOCOL * const protocol,
+ PMIC_AUDIO_BUS_MODE * const masterSlave,
+ PMIC_AUDIO_NUMSLOTS * const numSlots)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+
+ if ((busID != (PMIC_AUDIO_DATA_BUS *) NULL) &&
+ (protocol != (PMIC_AUDIO_BUS_PROTOCOL *) NULL) &&
+ (masterSlave != (PMIC_AUDIO_BUS_MODE *) NULL) &&
+ (numSlots != (PMIC_AUDIO_NUMSLOTS *) NULL)) {
+ /* Enter a critical section so that we return a consistent state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ if ((handle == stDAC.handle) &&
+ (stDAC.handleState == HANDLE_IN_USE)) {
+ *busID = stDAC.busID;
+ *protocol = stDAC.protocol;
+ *masterSlave = stDAC.masterSlave;
+ *numSlots = stDAC.numSlots;
+ rc = PMIC_SUCCESS;
+ } else if ((handle == vCodec.handle) &&
+ (vCodec.handleState == HANDLE_IN_USE)) {
+ *busID = vCodec.busID;
+ *protocol = vCodec.protocol;
+ *masterSlave = vCodec.masterSlave;
+ *numSlots = vCodec.numSlots;
+ rc = PMIC_SUCCESS;
+ }
+
+ /* Exit critical section. */
+ up(&mutex);
+ }
+
+ return rc;
+}
+
+/*!
+ * @brief Enable the Stereo DAC or the Voice CODEC.
+ *
+ * Explicitly enable the Stereo DAC or the Voice CODEC to begin audio
+ * playback or recording as required. This should only be done after
+ * successfully configuring all of the associated audio components (e.g.,
+ * microphones, amplifiers, etc.).
+ *
+ * Note that the timed delays used in this function are necessary to
+ * ensure reliable operation of the Voice CODEC and Stereo DAC. The
+ * Stereo DAC seems to be particularly sensitive and it has been observed
+ * to fail to generate the required master mode clock signals if it is
+ * not allowed enough time to initialize properly.
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ *
+ * @retval PMIC_SUCCESS If the device was successful enabled.
+ * @retval PMIC_PARAMETER_ERROR If the handle is invalid.
+ * @retval PMIC_ERROR If the device could not be enabled.
+ */
+PMIC_STATUS pmic_audio_enable(const PMIC_AUDIO_HANDLE handle)
+{
+ const unsigned int AUDIO_BIAS_ENABLE = SET_BITS(regAUDIO_RX_0,
+ VAUDIOON, 1);
+ const unsigned int STDAC_ENABLE = SET_BITS(regST_DAC, STDCEN, 1);
+ const unsigned int VCODEC_ENABLE = SET_BITS(regAUD_CODEC, CDCEN, 1);
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+ unsigned int reg_write = 0;
+ unsigned int reg_mask = 0;
+
+ /* Use a critical section to ensure a consistent hardware state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ if ((handle == stDAC.handle) && (stDAC.handleState == HANDLE_IN_USE)) {
+ pmic_write_reg(REG_AUDIO_RX_0, AUDIO_BIAS_ENABLE,
+ AUDIO_BIAS_ENABLE);
+ reg_mask =
+ SET_BITS(regAUDIO_RX_0, HSDETEN,
+ 1) | SET_BITS(regAUDIO_RX_0, HSDETAUTOB, 1);
+ reg_write =
+ SET_BITS(regAUDIO_RX_0, HSDETEN,
+ 1) | SET_BITS(regAUDIO_RX_0, HSDETAUTOB, 1);
+ rc = pmic_write_reg(REG_AUDIO_RX_0, reg_write, reg_mask);
+ if (rc == PMIC_SUCCESS)
+ pr_debug("pmic_audio_enable\n");
+ /* We can enable the Stereo DAC. */
+ rc = pmic_write_reg(REG_AUDIO_STEREO_DAC,
+ STDAC_ENABLE, STDAC_ENABLE);
+ /*pmic_read_reg(REG_AUDIO_STEREO_DAC, &reg_value); */
+ if (rc != PMIC_SUCCESS) {
+ pr_debug("Failed to enable the Stereo DAC\n");
+ rc = PMIC_ERROR;
+ }
+ } else if ((handle == vCodec.handle)
+ && (vCodec.handleState == HANDLE_IN_USE)) {
+ /* Must first set the audio bias bit to power up the audio circuits. */
+ pmic_write_reg(REG_AUDIO_RX_0, AUDIO_BIAS_ENABLE,
+ AUDIO_BIAS_ENABLE);
+ reg_mask = SET_BITS(regAUDIO_RX_0, HSDETEN, 1) |
+ SET_BITS(regAUDIO_RX_0, HSDETAUTOB, 1);
+ reg_write = SET_BITS(regAUDIO_RX_0, HSDETEN, 1) |
+ SET_BITS(regAUDIO_RX_0, HSDETAUTOB, 1);
+ rc = pmic_write_reg(REG_AUDIO_RX_0, reg_write, reg_mask);
+
+ /* Then we can enable the Voice CODEC. */
+ rc = pmic_write_reg(REG_AUDIO_CODEC, VCODEC_ENABLE,
+ VCODEC_ENABLE);
+
+ /* pmic_read_reg(REG_AUDIO_CODEC, &reg_value); */
+ if (rc != PMIC_SUCCESS) {
+ pr_debug("Failed to enable the Voice codec\n");
+ rc = PMIC_ERROR;
+ }
+ }
+ /* Exit critical section. */
+ up(&mutex);
+ return rc;
+}
+
+/*!
+ * @brief Disable the Stereo DAC or the Voice CODEC.
+ *
+ * Explicitly disable the Stereo DAC or the Voice CODEC to end audio
+ * playback or recording as required.
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ *
+ * @retval PMIC_SUCCESS If the device was successful disabled.
+ * @retval PMIC_PARAMETER_ERROR If the handle is invalid.
+ * @retval PMIC_ERROR If the device could not be disabled.
+ */
+PMIC_STATUS pmic_audio_disable(const PMIC_AUDIO_HANDLE handle)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+ const unsigned int STDAC_DISABLE = SET_BITS(regST_DAC, STDCEN, 1);
+ const unsigned int VCODEC_DISABLE = SET_BITS(regAUD_CODEC, CDCEN, 1);
+
+ /* Use a critical section to ensure a consistent hardware state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+ if ((handle == stDAC.handle) && (stDAC.handleState == HANDLE_IN_USE)) {
+ rc = pmic_write_reg(REG_AUDIO_STEREO_DAC, 0, STDAC_DISABLE);
+ } else if ((handle == vCodec.handle)
+ && (vCodec.handleState == HANDLE_IN_USE)) {
+ rc = pmic_write_reg(REG_AUDIO_CODEC, 0, VCODEC_DISABLE);
+ }
+ if (rc == PMIC_SUCCESS) {
+ pr_debug("Disabled successfully\n");
+ }
+ /* Exit critical section. */
+ up(&mutex);
+ return rc;
+}
+
+/*!
+ * @brief Reset the selected audio hardware control registers to their
+ * power on state.
+ *
+ * This resets all of the audio hardware control registers currently
+ * associated with the device handle back to their power on states. For
+ * example, if the handle is associated with the Stereo DAC and a
+ * specific output port and output amplifiers, then this function will
+ * reset all of those components to their initial power on state.
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ *
+ * @retval PMIC_SUCCESS If the reset operation was successful.
+ * @retval PMIC_PARAMETER_ERROR If the handle is invalid.
+ * @retval PMIC_ERROR If the reset was unsuccessful.
+ */
+PMIC_STATUS pmic_audio_reset(const PMIC_AUDIO_HANDLE handle)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+
+ /* Use a critical section to ensure a consistent hardware state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ rc = pmic_audio_reset_device(handle);
+
+ /* Exit the critical section. */
+ up(&mutex);
+
+ return rc;
+}
+
+/*!
+ * @brief Reset all audio hardware control registers to their power on state.
+ *
+ * This resets all of the audio hardware control registers back to their
+ * power on states. Use this function with care since it also invalidates
+ * (i.e., automatically closes) all currently opened device handles.
+ *
+ * @retval PMIC_SUCCESS If the reset operation was successful.
+ * @retval PMIC_ERROR If the reset was unsuccessful.
+ */
+PMIC_STATUS pmic_audio_reset_all(void)
+{
+ PMIC_STATUS rc = PMIC_SUCCESS;
+ unsigned int audio_ssi_reset = 0;
+ unsigned int audio_rx1_reset = 0;
+ /* We need a critical section here to maintain a consistent state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ /* First close all opened device handles, also deregisters callbacks. */
+ pmic_audio_close_handle(stDAC.handle);
+ pmic_audio_close_handle(vCodec.handle);
+ pmic_audio_close_handle(extStereoIn.handle);
+
+ if (pmic_write_reg(REG_AUDIO_RX_1, RESET_AUDIO_RX_1,
+ PMIC_ALL_BITS) != PMIC_SUCCESS) {
+ rc = PMIC_ERROR;
+ } else {
+ audio_rx1_reset = 1;
+ }
+ if (pmic_write_reg(REG_AUDIO_SSI_NETWORK, RESET_SSI_NETWORK,
+ PMIC_ALL_BITS) != PMIC_SUCCESS) {
+ rc = PMIC_ERROR;
+ } else {
+ audio_ssi_reset = 1;
+ }
+ if (pmic_write_reg
+ (REG_AUDIO_STEREO_DAC, RESET_ST_DAC,
+ PMIC_ALL_BITS) != PMIC_SUCCESS) {
+ rc = PMIC_ERROR;
+ } else {
+ /* Also reset the driver state information to match. Note that we
+ * keep the device handle and event callback settings unchanged
+ * since these don't affect the actual hardware and we rely on
+ * the user to explicitly close the handle or deregister callbacks
+ */
+ if (audio_ssi_reset) {
+ /* better to check if SSI is also reset as some fields are represennted in SSI reg */
+ stDAC.busID = AUDIO_DATA_BUS_1;
+ stDAC.protocol = NORMAL_MSB_JUSTIFIED_MODE;
+ stDAC.masterSlave = BUS_MASTER_MODE;
+ stDAC.protocol_set = false;
+ stDAC.numSlots = USE_2_TIMESLOTS;
+ stDAC.clockIn = CLOCK_IN_CLIA;
+ stDAC.samplingRate = STDAC_RATE_44_1_KHZ;
+ stDAC.clockFreq = STDAC_CLI_13MHZ;
+ stDAC.invert = NO_INVERT;
+ stDAC.timeslot = USE_TS0_TS1;
+ stDAC.config = (PMIC_AUDIO_STDAC_CONFIG) 0;
+ }
+ }
+
+ if (pmic_write_reg(REG_AUDIO_CODEC, RESET_AUD_CODEC,
+ PMIC_ALL_BITS) != PMIC_SUCCESS) {
+ rc = PMIC_ERROR;
+ } else {
+ /* Also reset the driver state information to match. Note that we
+ * keep the device handle and event callback settings unchanged
+ * since these don't affect the actual hardware and we rely on
+ * the user to explicitly close the handle or deregister callbacks
+ */
+ if (audio_ssi_reset) {
+ vCodec.busID = AUDIO_DATA_BUS_2;
+ vCodec.protocol = NETWORK_MODE;
+ vCodec.masterSlave = BUS_SLAVE_MODE;
+ vCodec.protocol_set = false;
+ vCodec.numSlots = USE_4_TIMESLOTS;
+ vCodec.clockIn = CLOCK_IN_CLIB;
+ vCodec.samplingRate = VCODEC_RATE_8_KHZ;
+ vCodec.clockFreq = VCODEC_CLI_13MHZ;
+ vCodec.invert = NO_INVERT;
+ vCodec.timeslot = USE_TS0;
+ vCodec.config =
+ INPUT_HIGHPASS_FILTER | OUTPUT_HIGHPASS_FILTER;
+ }
+ }
+
+ if (pmic_write_reg(REG_AUDIO_RX_0, RESET_AUDIO_RX_0,
+ PMIC_ALL_BITS) != PMIC_SUCCESS) {
+ rc = PMIC_ERROR;
+ } else {
+ /* Also reset the driver state information to match. */
+ audioOutput.outputPort = (PMIC_AUDIO_OUTPUT_PORT) NULL;
+ audioOutput.vCodecoutputPGAGain = OUTPGA_GAIN_0DB;
+ audioOutput.stDacoutputPGAGain = OUTPGA_GAIN_0DB;
+ audioOutput.extStereooutputPGAGain = OUTPGA_GAIN_0DB;
+ audioOutput.balanceLeftGain = BAL_GAIN_0DB;
+ audioOutput.balanceRightGain = BAL_GAIN_0DB;
+ audioOutput.monoAdderGain = MONOADD_GAIN_0DB;
+ audioOutput.config = (PMIC_AUDIO_OUTPUT_CONFIG) 0;
+ audioOutput.vCodecOut = VCODEC_DIRECT_OUT;
+ }
+
+ if (pmic_write_reg(REG_AUDIO_TX, RESET_AUDIO_TX,
+ PMIC_ALL_BITS) != PMIC_SUCCESS) {
+ rc = PMIC_ERROR;
+ } else {
+ /* Also reset the driver state information to match. Note that we
+ * reset the vCodec fields since all of the input/recording
+ * devices are only connected to the Voice CODEC and are managed
+ * as part of the Voice CODEC state.
+ */
+ if (audio_rx1_reset) {
+ vCodec.leftChannelMic.mic = NO_MIC;
+ vCodec.leftChannelMic.micOnOff = MICROPHONE_OFF;
+ vCodec.leftChannelMic.ampMode = CURRENT_TO_VOLTAGE;
+ vCodec.leftChannelMic.gain = MIC_GAIN_0DB;
+ vCodec.rightChannelMic.mic = NO_MIC;
+ vCodec.rightChannelMic.micOnOff = MICROPHONE_OFF;
+ vCodec.rightChannelMic.ampMode = AMP_OFF;
+ vCodec.rightChannelMic.gain = MIC_GAIN_0DB;
+ }
+ }
+ /* Finally, also reset any global state variables. */
+ headsetState = NO_HEADSET;
+ /* Exit the critical section. */
+ up(&mutex);
+ return rc;
+}
+
+/*!
+ * @brief Set the Audio callback function.
+ *
+ * Register a callback function that will be used to signal PMIC audio
+ * events. For example, the OSS audio driver should register a callback
+ * function in order to be notified of headset connect/disconnect events.
+ *
+ * @param func A pointer to the callback function.
+ * @param eventMask A mask selecting events to be notified.
+ * @param hs_state To know the headset state.
+ *
+ *
+ *
+ * @retval PMIC_SUCCESS If the callback was successfully
+ * registered.
+ * @retval PMIC_PARAMETER_ERROR If the handle or the eventMask is invalid.
+ */
+PMIC_STATUS pmic_audio_set_callback(void *func,
+ const PMIC_AUDIO_EVENTS eventMask,
+ PMIC_HS_STATE *hs_state)
+{
+ unsigned long flags;
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+ pmic_event_callback_t eventNotify;
+
+ /* We need to start a critical section here to ensure a consistent state
+ * in case simultaneous calls to pmic_audio_set_callback() are made. In
+ * that case, we must serialize the calls to ensure that the "callback"
+ * and "eventMask" state variables are always consistent.
+ *
+ * Note that we don't actually need to acquire the spinlock until later
+ * when we are finally ready to update the "callback" and "eventMask"
+ * state variables which are shared with the interrupt handler.
+ */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ rc = PMIC_ERROR;
+ /* Register for PMIC events from the core protocol driver. */
+ if (eventMask & MICROPHONE_DETECTED) {
+ /* We need to register for the A1 amplifier interrupt. */
+ eventNotify.func = func;
+ eventNotify.param = (void *)(CORE_EVENT_MC2BI);
+ rc = pmic_event_subscribe(EVENT_MC2BI, eventNotify);
+
+ if (rc != PMIC_SUCCESS) {
+ pr_debug
+ ("%s: pmic_event_subscribe() for EVENT_HSDETI "
+ "failed\n", __FILE__);
+ goto End;
+ }
+ }
+
+ if (eventMask & HEADSET_DETECTED) {
+ /* We need to register for the A1 amplifier interrupt. */
+ eventNotify.func = func;
+ eventNotify.param = (void *)(CORE_EVENT_HSDETI);
+ rc = pmic_event_subscribe(EVENT_HSDETI, eventNotify);
+
+ if (rc != PMIC_SUCCESS) {
+ pr_debug
+ ("%s: pmic_event_subscribe() for EVENT_HSDETI "
+ "failed\n", __FILE__);
+ goto Cleanup_HDT;
+ }
+
+ }
+ if (eventMask & HEADSET_STEREO) {
+ /* We need to register for the A1 amplifier interrupt. */
+ eventNotify.func = func;
+ eventNotify.param = (void *)(CORE_EVENT_HSLI);
+ rc = pmic_event_subscribe(EVENT_HSLI, eventNotify);
+
+ if (rc != PMIC_SUCCESS) {
+ pr_debug
+ ("%s: pmic_event_subscribe() for EVENT_HSLI "
+ "failed\n", __FILE__);
+ goto Cleanup_HST;
+ }
+ }
+ if (eventMask & HEADSET_THERMAL_SHUTDOWN) {
+ /* We need to register for the A1 amplifier interrupt. */
+ eventNotify.func = func;
+ eventNotify.param = (void *)(CORE_EVENT_ALSPTHI);
+ rc = pmic_event_subscribe(EVENT_ALSPTHI, eventNotify);
+
+ if (rc != PMIC_SUCCESS) {
+ pr_debug
+ ("%s: pmic_event_subscribe() for EVENT_ALSPTHI "
+ "failed\n", __FILE__);
+ goto Cleanup_TSD;
+ }
+ pr_debug("Registered for EVENT_ALSPTHI\n");
+ }
+ if (eventMask & HEADSET_SHORT_CIRCUIT) {
+ /* We need to register for the A1 amplifier interrupt. */
+ eventNotify.func = func;
+ eventNotify.param = (void *)(CORE_EVENT_AHSSHORTI);
+ rc = pmic_event_subscribe(EVENT_AHSSHORTI, eventNotify);
+
+ if (rc != PMIC_SUCCESS) {
+ pr_debug
+ ("%s: pmic_event_subscribe() for EVENT_AHSSHORTI "
+ "failed\n", __FILE__);
+ goto Cleanup_HShort;
+ }
+ pr_debug("Registered for EVENT_AHSSHORTI\n");
+ }
+
+ /* We also need the spinlock here to avoid possible problems
+ * with the interrupt handler when we update the
+ * "callback" and "eventMask" state variables.
+ */
+ spin_lock_irqsave(&lock, flags);
+
+ /* Successfully registered for all events. */
+ event_state.callback = func;
+ event_state.eventMask = eventMask;
+
+ /* The spinlock is no longer needed now that we've finished
+ * updating the "callback" and "eventMask" state variables.
+ */
+ spin_unlock_irqrestore(&lock, flags);
+
+ goto End;
+
+ /* This section unregisters any already registered events if we should
+ * encounter an error partway through the registration process. Note
+ * that we don't check the return status here since it is already set
+ * to PMIC_ERROR before we get here.
+ */
+ Cleanup_HShort:
+
+ if (eventMask & HEADSET_SHORT_CIRCUIT) {
+ eventNotify.func = func;
+ eventNotify.param = (void *)(CORE_EVENT_AHSSHORTI);
+ pmic_event_unsubscribe(EVENT_AHSSHORTI, eventNotify);
+ }
+
+ Cleanup_TSD:
+
+ if (eventMask & HEADSET_THERMAL_SHUTDOWN) {
+ eventNotify.func = func;
+ eventNotify.param = (void *)(CORE_EVENT_ALSPTHI);
+ pmic_event_unsubscribe(EVENT_ALSPTHI, eventNotify);
+ }
+
+ Cleanup_HST:
+
+ if (eventMask & HEADSET_STEREO) {
+ eventNotify.func = func;
+ eventNotify.param = (void *)(CORE_EVENT_HSLI);
+ pmic_event_unsubscribe(EVENT_HSLI, eventNotify);
+ }
+
+ Cleanup_HDT:
+
+ if (eventMask & HEADSET_DETECTED) {
+ eventNotify.func = func;
+ eventNotify.param = (void *)(CORE_EVENT_HSDETI);
+ pmic_event_unsubscribe(EVENT_HSDETI, eventNotify);
+ }
+
+ End:
+ /* Exit the critical section. */
+ up(&mutex);
+ return rc;
+}
+
+/*!
+ * @brief Deregisters the existing audio callback function.
+ *
+ * Deregister the callback function that was previously registered by calling
+ * pmic_audio_set_callback().
+ *
+ *
+ * @retval PMIC_SUCCESS If the callback was successfully
+ * deregistered.
+ * @retval PMIC_PARAMETER_ERROR If the handle is invalid.
+ */
+PMIC_STATUS pmic_audio_clear_callback(void)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+
+ /* We need a critical section to maintain a consistent state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ if (event_state.callback != (PMIC_AUDIO_CALLBACK) NULL) {
+ rc = pmic_audio_deregister(&(event_state.callback),
+ &(event_state.eventMask));
+ }
+
+ /* Exit the critical section. */
+ up(&mutex);
+ return rc;
+}
+
+/*!
+ * @brief Get the current audio callback function settings.
+ *
+ * Get the current callback function and event mask.
+ *
+ * @param func The current callback function.
+ * @param eventMask The current event selection mask.
+ *
+ * @retval PMIC_SUCCESS If the callback information was
+ * successfully retrieved.
+ * @retval PMIC_PARAMETER_ERROR If the handle is invalid.
+ */
+PMIC_STATUS pmic_audio_get_callback(PMIC_AUDIO_CALLBACK * const func,
+ PMIC_AUDIO_EVENTS * const eventMask)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+
+ /* We only need to acquire the mutex here because we will not be updating
+ * anything that may affect the interrupt handler. We just need to ensure
+ * that the callback fields are not changed while we are in the critical
+ * section by calling either pmic_audio_set_callback() or
+ * pmic_audio_clear_callback().
+ */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ if ((func != (PMIC_AUDIO_CALLBACK *) NULL) &&
+ (eventMask != (PMIC_AUDIO_EVENTS *) NULL)) {
+
+ *func = event_state.callback;
+ *eventMask = event_state.eventMask;
+
+ rc = PMIC_SUCCESS;
+ }
+
+ /* Exit the critical section. */
+ up(&mutex);
+ return rc;
+}
+
+/*!
+ * @brief Enable the anti-pop circuitry to avoid extra noise when inserting
+ * or removing a external device (e.g., a headset).
+ *
+ * Enable the use of the built-in anti-pop circuitry to prevent noise from
+ * being generated when an external audio device is inserted or removed
+ * from an audio plug. A slow ramp speed may be needed to avoid extra noise.
+ *
+ * @param rampSpeed The desired anti-pop circuitry ramp speed.
+ *
+ * @retval PMIC_SUCCESS If the anti-pop circuitry was successfully
+ * enabled.
+ * @retval PMIC_ERROR If the anti-pop circuitry could not be
+ * enabled.
+ */
+PMIC_STATUS pmic_audio_antipop_enable(const PMIC_AUDIO_ANTI_POP_RAMP_SPEED
+ rampSpeed)
+{
+ PMIC_STATUS rc = PMIC_ERROR;
+ unsigned int reg_value = 0;
+ const unsigned int reg_mask = SET_BITS(regAUDIO_RX_0, BIASEN, 1) |
+ SET_BITS(regAUDIO_RX_0, BIASSPEED, 1);
+
+ /* No critical section required here since we are not updating any
+ * global data.
+ */
+
+ /*
+ * Antipop is enabled by enabling the BIAS (BIASEN) and setting the
+ * BIASSPEED .
+ * BIASEN is just to make sure that BIAS is enabled
+ */
+ reg_value = SET_BITS(regAUDIO_RX_0, BIASEN, 1)
+ | SET_BITS(regAUDIO_RX_0, BIASSPEED, 0) | SET_BITS(regAUDIO_RX_0,
+ HSLDETEN, 1);
+ rc = pmic_write_reg(REG_AUDIO_RX_0, reg_value, reg_mask);
+ return rc;
+}
+
+/*!
+ * @brief Disable the anti-pop circuitry.
+ *
+ * Disable the use of the built-in anti-pop circuitry to prevent noise from
+ * being generated when an external audio device is inserted or removed
+ * from an audio plug.
+ *
+ * @retval PMIC_SUCCESS If the anti-pop circuitry was successfully
+ * disabled.
+ * @retval PMIC_ERROR If the anti-pop circuitry could not be
+ * disabled.
+ */
+PMIC_STATUS pmic_audio_antipop_disable(void)
+{
+ PMIC_STATUS rc = PMIC_ERROR;
+ const unsigned int reg_mask = SET_BITS(regAUDIO_RX_0, BIASSPEED, 1) |
+ SET_BITS(regAUDIO_RX_0, BIASEN, 1);
+ const unsigned int reg_write = SET_BITS(regAUDIO_RX_0, BIASSPEED, 1) |
+ SET_BITS(regAUDIO_RX_0, BIASEN, 0);
+
+ /* No critical section required here since we are not updating any
+ * global data.
+ */
+
+ /*
+ * Antipop is disabled by setting BIASSPEED = 0. BIASEN bit remains set
+ * as only antipop needs to be disabled
+ */
+ rc = pmic_write_reg(REG_AUDIO_RX_0, reg_write, reg_mask);
+
+ return rc;
+}
+
+/*!
+ * @brief Performs a reset of the Voice CODEC/Stereo DAC digital filter.
+ *
+ * The digital filter should be reset whenever the clock or sampling rate
+ * configuration has been changed.
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ *
+ * @retval PMIC_SUCCESS If the digital filter was successfully
+ * reset.
+ * @retval PMIC_ERROR If the digital filter could not be reset.
+ */
+PMIC_STATUS pmic_audio_digital_filter_reset(const PMIC_AUDIO_HANDLE handle)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+ unsigned int reg_mask = 0;
+
+ /* No critical section required here since we are not updating any
+ * global data.
+ */
+
+ if ((handle == stDAC.handle) && (stDAC.handleState == HANDLE_IN_USE)) {
+ reg_mask = SET_BITS(regST_DAC, STDCRESET, 1);
+ if (pmic_write_reg(REG_AUDIO_STEREO_DAC, reg_mask,
+ reg_mask) != PMIC_SUCCESS) {
+ rc = PMIC_ERROR;
+ } else {
+ pr_debug("STDAC filter reset\n");
+ }
+
+ } else if ((handle == vCodec.handle) &&
+ (vCodec.handleState == HANDLE_IN_USE)) {
+ reg_mask = SET_BITS(regAUD_CODEC, CDCRESET, 1);
+ if (pmic_write_reg(REG_AUDIO_CODEC, reg_mask,
+ reg_mask) != PMIC_SUCCESS) {
+ rc = PMIC_ERROR;
+ } else {
+ pr_debug("CODEC filter reset\n");
+ }
+ }
+ return rc;
+}
+
+/*!
+ * @brief Get the most recent PTT button voltage reading.
+ *
+ * This feature is not supported by mc13783
+ * @param level PTT button level.
+ *
+ * @retval PMIC_SUCCESS If the most recent PTT button voltage was
+ * returned.
+ * @retval PMIC_PARAMETER_ERROR If a NULL pointer argument was given.
+ */
+PMIC_STATUS pmic_audio_get_ptt_button_level(unsigned int *const level)
+{
+ PMIC_STATUS rc = PMIC_NOT_SUPPORTED;
+ return rc;
+}
+
+#ifdef DEBUG_AUDIO
+
+/*!
+ * @brief Provide a hexadecimal dump of all PMIC audio registers (DEBUG only)
+ *
+ * This function is intended strictly for debugging purposes only and will
+ * print the current values of the following PMIC registers:
+ *
+ * - AUD_CODEC
+ * - ST_DAC
+ * - AUDIO_RX_0
+ * - AUDIO_RX_1
+ * - AUDIO_TX
+ * - AUDIO_SSI_NW
+ *
+ * The register fields will not be decoded.
+ *
+ * Note that we don't dump any of the arbitration bits because we cannot
+ * access the true arbitration bit settings when reading the registers
+ * from the secondary SPI bus.
+ *
+ * Also note that we must not call this function with interrupts disabled,
+ * for example, while holding a spinlock, because calls to pmic_read_reg()
+ * eventually end up in the SPI driver which will want to perform a
+ * schedule() operation. If schedule() is called with interrupts disabled,
+ * then you will see messages like the following:
+ *
+ * BUG: scheduling while atomic: ...
+ *
+ */
+void pmic_audio_dump_registers(void)
+{
+ unsigned int reg_value = 0;
+
+ /* Dump the AUD_CODEC (Voice CODEC) register. */
+ if (pmic_read_reg(REG_AUDIO_CODEC, &reg_value, REG_FULLMASK)
+ == PMIC_SUCCESS) {
+ pr_debug("Audio Codec = 0x%x\n", reg_value);
+ } else {
+ pr_debug("Failed to read audio codec\n");
+ }
+
+ /* Dump the ST DAC (Stereo DAC) register. */
+ if (pmic_read_reg
+ (REG_AUDIO_STEREO_DAC, &reg_value, REG_FULLMASK) == PMIC_SUCCESS) {
+ pr_debug("Stereo DAC = 0x%x\n", reg_value);
+ } else {
+ pr_debug("Failed to read Stereo DAC\n");
+ }
+
+ /* Dump the SSI NW register. */
+ if (pmic_read_reg
+ (REG_AUDIO_SSI_NETWORK, &reg_value, REG_FULLMASK) == PMIC_SUCCESS) {
+ pr_debug("SSI Network = 0x%x\n", reg_value);
+ } else {
+ pr_debug("Failed to read SSI network\n");
+ }
+
+ /* Dump the Audio RX 0 register. */
+ if (pmic_read_reg(REG_AUDIO_RX_0, &reg_value, REG_FULLMASK)
+ == PMIC_SUCCESS) {
+ pr_debug("Audio RX 0 = 0x%x\n", reg_value);
+ } else {
+ pr_debug("Failed to read audio RX 0\n");
+ }
+
+ /* Dump the Audio RX 1 register. */
+ if (pmic_read_reg(REG_AUDIO_RX_1, &reg_value, REG_FULLMASK)
+ == PMIC_SUCCESS) {
+ pr_debug("Audio RX 1 = 0x%x\n", reg_value);
+ } else {
+ pr_debug("Failed to read audio RX 1\n");
+ }
+ /* Dump the Audio TX register. */
+ if (pmic_read_reg(REG_AUDIO_TX, &reg_value, REG_FULLMASK) ==
+ PMIC_SUCCESS) {
+ pr_debug("Audio Tx = 0x%x\n", reg_value);
+ } else {
+ pr_debug("Failed to read audio TX\n");
+ }
+
+}
+
+#endif /* DEBUG_AUDIO */
+
+/*@}*/
+
+/*************************************************************************
+ * General Voice CODEC configuration.
+ *************************************************************************
+ */
+
+/*!
+ * @name General Voice CODEC Setup and Configuration APIs
+ * Functions for general setup and configuration of the PMIC Voice
+ * CODEC hardware.
+ */
+/*@{*/
+
+/*!
+ * @brief Set the Voice CODEC clock source and operating characteristics.
+ *
+ * Define the Voice CODEC clock source and operating characteristics. This
+ * must be done before the Voice CODEC is enabled.
+ *
+ *
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ * @param clockIn Select the clock signal source.
+ * @param clockFreq Select the clock signal frequency.
+ * @param samplingRate Select the audio data sampling rate.
+ * @param invert Enable inversion of the frame sync and/or
+ * bit clock inputs.
+ *
+ * @retval PMIC_SUCCESS If the Voice CODEC clock settings were
+ * successfully configured.
+ * @retval PMIC_PARAMETER_ERROR If the handle or clock configuration was
+ * invalid.
+ * @retval PMIC_ERROR If the Voice CODEC clock configuration
+ * could not be set.
+ */
+PMIC_STATUS pmic_audio_vcodec_set_clock(const PMIC_AUDIO_HANDLE handle,
+ const PMIC_AUDIO_CLOCK_IN_SOURCE
+ clockIn,
+ const PMIC_AUDIO_VCODEC_CLOCK_IN_FREQ
+ clockFreq,
+ const PMIC_AUDIO_VCODEC_SAMPLING_RATE
+ samplingRate,
+ const PMIC_AUDIO_CLOCK_INVERT invert)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+ unsigned int reg_value = 0;
+ unsigned int reg_mask = 0;
+
+ /* Use a critical section to ensure a consistent hardware state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ /* Validate all of the calling parameters. */
+ if (handle == (PMIC_AUDIO_HANDLE) NULL) {
+ rc = PMIC_PARAMETER_ERROR;
+ } else if ((handle == vCodec.handle) &&
+ (vCodec.handleState == HANDLE_IN_USE)) {
+ if ((clockIn != CLOCK_IN_CLIA) && (clockIn != CLOCK_IN_CLIB)) {
+ rc = PMIC_PARAMETER_ERROR;
+ } else if (!((clockFreq >= VCODEC_CLI_13MHZ)
+ && (clockFreq <= VCODEC_CLI_33_6MHZ))) {
+ rc = PMIC_PARAMETER_ERROR;
+ } else if ((samplingRate != VCODEC_RATE_8_KHZ)
+ && (samplingRate != VCODEC_RATE_16_KHZ)) {
+ rc = PMIC_PARAMETER_ERROR;
+ } else if (!((invert >= NO_INVERT)
+ && (invert <= INVERT_FRAMESYNC))) {
+ rc = PMIC_PARAMETER_ERROR;
+ } else {
+ /*reg_mask = SET_BITS(regAUD_CODEC, CDCCLK, 7) |
+ SET_BITS(regAUD_CODEC, CDCCLKSEL, 1) |
+ SET_BITS(regAUD_CODEC, CDCFS8K16K, 1) |
+ SET_BITS(regAUD_CODEC, CDCBCLINV, 1) |
+ SET_BITS(regAUD_CODEC, CDCFSINV, 1); */
+ if (clockIn == CLOCK_IN_CLIA) {
+ reg_value =
+ SET_BITS(regAUD_CODEC, CDCCLKSEL, 0);
+ } else {
+ reg_value =
+ SET_BITS(regAUD_CODEC, CDCCLKSEL, 1);
+ }
+ reg_mask = SET_BITS(regAUD_CODEC, CDCCLKSEL, 1);
+ if (PMIC_SUCCESS !=
+ pmic_write_reg(REG_AUDIO_CODEC,
+ reg_value, reg_mask))
+ return PMIC_ERROR;
+
+ reg_value = 0;
+ if (clockFreq == VCODEC_CLI_13MHZ) {
+ reg_value |= SET_BITS(regAUD_CODEC, CDCCLK, 0);
+ } else if (clockFreq == VCODEC_CLI_15_36MHZ) {
+ reg_value |= SET_BITS(regAUD_CODEC, CDCCLK, 1);
+ } else if (clockFreq == VCODEC_CLI_16_8MHZ) {
+ reg_value |= SET_BITS(regAUD_CODEC, CDCCLK, 2);
+ } else if (clockFreq == VCODEC_CLI_26MHZ) {
+ reg_value |= SET_BITS(regAUD_CODEC, CDCCLK, 4);
+ } else {
+ reg_value |= SET_BITS(regAUD_CODEC, CDCCLK, 7);
+ }
+ reg_mask = SET_BITS(regAUD_CODEC, CDCCLK, 7);
+ if (PMIC_SUCCESS !=
+ pmic_write_reg(REG_AUDIO_CODEC,
+ reg_value, reg_mask))
+ return PMIC_ERROR;
+
+ reg_value = 0;
+ reg_mask = 0;
+
+ if (samplingRate == VCODEC_RATE_8_KHZ) {
+ reg_value |=
+ SET_BITS(regAUD_CODEC, CDCFS8K16K, 0);
+ } else {
+ reg_value |=
+ SET_BITS(regAUD_CODEC, CDCFS8K16K, 1);
+ }
+ reg_mask = SET_BITS(regAUD_CODEC, CDCFS8K16K, 1);
+ if (PMIC_SUCCESS !=
+ pmic_write_reg(REG_AUDIO_CODEC,
+ reg_value, reg_mask))
+ return PMIC_ERROR;
+ reg_value = 0;
+ reg_mask =
+ SET_BITS(regAUD_CODEC, CDCBCLINV,
+ 1) | SET_BITS(regAUD_CODEC, CDCFSINV, 1);
+
+ if (invert & INVERT_BITCLOCK) {
+ reg_value |=
+ SET_BITS(regAUD_CODEC, CDCBCLINV, 1);
+ }
+ if (invert & INVERT_FRAMESYNC) {
+ reg_value |=
+ SET_BITS(regAUD_CODEC, CDCFSINV, 1);
+ }
+ if (invert & NO_INVERT) {
+ reg_value |=
+ SET_BITS(regAUD_CODEC, CDCBCLINV, 0);
+ reg_value |=
+ SET_BITS(regAUD_CODEC, CDCFSINV, 0);
+ }
+ if (pmic_write_reg
+ (REG_AUDIO_CODEC, reg_value,
+ reg_mask) != PMIC_SUCCESS) {
+ rc = PMIC_ERROR;
+ } else {
+ pr_debug("CODEC clock set\n");
+ vCodec.clockIn = clockIn;
+ vCodec.clockFreq = clockFreq;
+ vCodec.samplingRate = samplingRate;
+ vCodec.invert = invert;
+ }
+
+ }
+
+ } else {
+ rc = PMIC_PARAMETER_ERROR;
+ }
+
+ /* Exit the critical section. */
+ up(&mutex);
+
+ return rc;
+}
+
+/*!
+ * @brief Get the Voice CODEC clock source and operating characteristics.
+ *
+ * Get the current Voice CODEC clock source and operating characteristics.
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ * @param clockIn The clock signal source.
+ * @param clockFreq The clock signal frequency.
+ * @param samplingRate The audio data sampling rate.
+ * @param invert Inversion of the frame sync and/or
+ * bit clock inputs is enabled/disabled.
+ *
+ * @retval PMIC_SUCCESS If the Voice CODEC clock settings were
+ * successfully retrieved.
+ * @retval PMIC_PARAMETER_ERROR If the handle invalid.
+ * @retval PMIC_ERROR If the Voice CODEC clock configuration
+ * could not be retrieved.
+ */
+PMIC_STATUS pmic_audio_vcodec_get_clock(const PMIC_AUDIO_HANDLE handle,
+ PMIC_AUDIO_CLOCK_IN_SOURCE *
+ const clockIn,
+ PMIC_AUDIO_VCODEC_CLOCK_IN_FREQ *
+ const clockFreq,
+ PMIC_AUDIO_VCODEC_SAMPLING_RATE *
+ const samplingRate,
+ PMIC_AUDIO_CLOCK_INVERT * const invert)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+
+ /* Use a critical section to ensure that we return a consistent state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ if ((handle == vCodec.handle) &&
+ (vCodec.handleState == HANDLE_IN_USE) &&
+ (clockIn != (PMIC_AUDIO_CLOCK_IN_SOURCE *) NULL) &&
+ (clockFreq != (PMIC_AUDIO_VCODEC_CLOCK_IN_FREQ *) NULL) &&
+ (samplingRate != (PMIC_AUDIO_VCODEC_SAMPLING_RATE *) NULL) &&
+ (invert != (PMIC_AUDIO_CLOCK_INVERT *) NULL)) {
+ *clockIn = vCodec.clockIn;
+ *clockFreq = vCodec.clockFreq;
+ *samplingRate = vCodec.samplingRate;
+ *invert = vCodec.invert;
+
+ rc = PMIC_SUCCESS;
+ }
+
+ /* Exit the critical section. */
+ up(&mutex);
+
+ return rc;
+}
+
+/*!
+ * @brief Set the Voice CODEC primary audio channel timeslot.
+ *
+ * Set the Voice CODEC primary audio channel timeslot. This function must be
+ * used if the default timeslot for the primary audio channel is to be changed.
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ * @param timeslot Select the primary audio channel timeslot.
+ *
+ * @retval PMIC_SUCCESS If the Voice CODEC primary audio channel
+ * timeslot was successfully configured.
+ * @retval PMIC_PARAMETER_ERROR If the handle or audio channel timeslot
+ * was invalid.
+ * @retval PMIC_ERROR If the Voice CODEC primary audio channel
+ * timeslot could not be set.
+ */
+PMIC_STATUS pmic_audio_vcodec_set_rxtx_timeslot(const PMIC_AUDIO_HANDLE handle,
+ const PMIC_AUDIO_VCODEC_TIMESLOT
+ timeslot)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+ unsigned int reg_write = 0;
+ const unsigned int reg_mask = SET_BITS(regSSI_NETWORK, CDCTXRXSLOT, 3);
+
+ /* Use a critical section to ensure a consistent hardware state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ if ((handle == vCodec.handle) &&
+ (vCodec.handleState == HANDLE_IN_USE) &&
+ ((timeslot == USE_TS0) || (timeslot == USE_TS1) ||
+ (timeslot == USE_TS2) || (timeslot == USE_TS3))) {
+ reg_write = SET_BITS(regSSI_NETWORK, CDCTXRXSLOT, timeslot);
+
+ rc = pmic_write_reg(REG_AUDIO_SSI_NETWORK, reg_write, reg_mask);
+
+ if (rc == PMIC_SUCCESS) {
+ vCodec.timeslot = timeslot;
+ }
+ }
+
+ /* Exit the critical section. */
+ up(&mutex);
+
+ return rc;
+}
+
+/*!
+ * @brief Get the current Voice CODEC primary audio channel timeslot.
+ *
+ * Get the current Voice CODEC primary audio channel timeslot.
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ * @param timeslot The primary audio channel timeslot.
+ *
+ * @retval PMIC_SUCCESS If the Voice CODEC primary audio channel
+ * timeslot was successfully retrieved.
+ * @retval PMIC_PARAMETER_ERROR If the handle was invalid.
+ * @retval PMIC_ERROR If the Voice CODEC primary audio channel
+ * timeslot could not be retrieved.
+ */
+PMIC_STATUS pmic_audio_vcodec_get_rxtx_timeslot(const PMIC_AUDIO_HANDLE handle,
+ PMIC_AUDIO_VCODEC_TIMESLOT *
+ const timeslot)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+
+ /* Use a critical section to ensure a consistent hardware state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ if ((handle == vCodec.handle) &&
+ (vCodec.handleState == HANDLE_IN_USE) &&
+ (timeslot != (PMIC_AUDIO_VCODEC_TIMESLOT *) NULL)) {
+ *timeslot = vCodec.timeslot;
+
+ rc = PMIC_SUCCESS;
+ }
+
+ /* Exit the critical section. */
+ up(&mutex);
+
+ return rc;
+}
+
+/*!
+ * @brief Set the Voice CODEC secondary recording audio channel timeslot.
+ *
+ * Set the Voice CODEC secondary audio channel timeslot. This function must be
+ * used if the default timeslot for the secondary audio channel is to be
+ * changed. The secondary audio channel timeslot is used to transmit the audio
+ * data that was recorded by the Voice CODEC from the secondary audio input
+ * channel.
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ * @param timeslot Select the secondary audio channel timeslot.
+ *
+ * @retval PMIC_SUCCESS If the Voice CODEC secondary audio channel
+ * timeslot was successfully configured.
+ * @retval PMIC_PARAMETER_ERROR If the handle or audio channel timeslot
+ * was invalid.
+ * @retval PMIC_ERROR If the Voice CODEC secondary audio channel
+ * timeslot could not be set.
+ */
+PMIC_STATUS pmic_audio_vcodec_set_secondary_txslot(const PMIC_AUDIO_HANDLE
+ handle,
+ const
+ PMIC_AUDIO_VCODEC_TIMESLOT
+ timeslot)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+ unsigned int reg_mask = SET_BITS(regSSI_NETWORK, CDCTXSECSLOT, 3);
+ unsigned int reg_write = 0;
+
+ /* Use a critical section to ensure a consistent hardware state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ if ((handle == vCodec.handle) && (vCodec.handleState == HANDLE_IN_USE)) {
+ /* How to handle primary slot and secondary slot being the same */
+ if ((timeslot >= USE_TS0) && (timeslot <= USE_TS3)
+ && (timeslot != vCodec.timeslot)) {
+ reg_write =
+ SET_BITS(regSSI_NETWORK, CDCTXSECSLOT, timeslot);
+
+ rc = pmic_write_reg(REG_AUDIO_SSI_NETWORK,
+ reg_write, reg_mask);
+
+ if (rc == PMIC_SUCCESS) {
+ vCodec.secondaryTXtimeslot = timeslot;
+ }
+ }
+
+ }
+
+ /* Exit the critical section. */
+ up(&mutex);
+
+ return rc;
+}
+
+/*!
+ * @brief Get the Voice CODEC secondary recording audio channel timeslot.
+ *
+ * Get the Voice CODEC secondary audio channel timeslot.
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ * @param timeslot The secondary audio channel timeslot.
+ *
+ * @retval PMIC_SUCCESS If the Voice CODEC secondary audio channel
+ * timeslot was successfully retrieved.
+ * @retval PMIC_PARAMETER_ERROR If the handle was invalid.
+ * @retval PMIC_ERROR If the Voice CODEC secondary audio channel
+ * timeslot could not be retrieved.
+ */
+PMIC_STATUS pmic_audio_vcodec_get_secondary_txslot(const PMIC_AUDIO_HANDLE
+ handle,
+ PMIC_AUDIO_VCODEC_TIMESLOT *
+ const timeslot)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+
+ /* Use a critical section to ensure a consistent hardware state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ if ((handle == vCodec.handle) &&
+ (vCodec.handleState == HANDLE_IN_USE) &&
+ (timeslot != (PMIC_AUDIO_VCODEC_TIMESLOT *) NULL)) {
+ rc = PMIC_SUCCESS;
+ *timeslot = vCodec.secondaryTXtimeslot;
+ }
+
+ /* Exit the critical section. */
+ up(&mutex);
+ return rc;
+}
+
+/*!
+ * @brief Set/Enable the Voice CODEC options.
+ *
+ * Set or enable various Voice CODEC options. The available options include
+ * the use of dithering, highpass digital filters, and loopback modes.
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ * @param config The Voice CODEC options to enable.
+ *
+ * @retval PMIC_SUCCESS If the Voice CODEC options were
+ * successfully configured.
+ * @retval PMIC_PARAMETER_ERROR If the handle or Voice CODEC options
+ * were invalid.
+ * @retval PMIC_ERROR If the Voice CODEC options could not be
+ * successfully set/enabled.
+ */
+PMIC_STATUS pmic_audio_vcodec_set_config(const PMIC_AUDIO_HANDLE handle,
+ const PMIC_AUDIO_VCODEC_CONFIG config)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+ unsigned int reg_write = 0;
+ unsigned int reg_mask = 0;
+
+ /* Use a critical section to ensure a consistent hardware state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ if ((handle == vCodec.handle) && (vCodec.handleState == HANDLE_IN_USE)) {
+ if (config & DITHERING) {
+ reg_write = SET_BITS(regAUD_CODEC, CDCDITH, 0);
+ reg_mask = SET_BITS(regAUD_CODEC, CDCDITH, 1);
+ }
+
+ if (config & INPUT_HIGHPASS_FILTER) {
+ reg_write |= SET_BITS(regAUD_CODEC, AUDIHPF, 1);
+ reg_mask |= SET_BITS(regAUD_CODEC, AUDIHPF, 1);
+ }
+
+ if (config & OUTPUT_HIGHPASS_FILTER) {
+ reg_write |= SET_BITS(regAUD_CODEC, AUDOHPF, 1);
+ reg_mask |= SET_BITS(regAUD_CODEC, AUDOHPF, 1);
+ }
+
+ if (config & DIGITAL_LOOPBACK) {
+ reg_write |= SET_BITS(regAUD_CODEC, CDCDLM, 1);
+ reg_mask |= SET_BITS(regAUD_CODEC, CDCDLM, 1);
+ }
+
+ if (config & ANALOG_LOOPBACK) {
+ reg_write |= SET_BITS(regAUD_CODEC, CDCALM, 1);
+ reg_mask |= SET_BITS(regAUD_CODEC, CDCALM, 1);
+ }
+
+ if (config & VCODEC_MASTER_CLOCK_OUTPUTS) {
+ reg_write |= SET_BITS(regAUD_CODEC, CDCCLKEN, 1) |
+ SET_BITS(regAUD_CODEC, CDCTS, 0);
+ reg_mask |= SET_BITS(regAUD_CODEC, CDCCLKEN, 1) |
+ SET_BITS(regAUD_CODEC, CDCTS, 1);
+
+ }
+
+ if (config & TRISTATE_TS) {
+ reg_write |= SET_BITS(regAUD_CODEC, CDCTS, 1);
+ reg_mask |= SET_BITS(regAUD_CODEC, CDCTS, 1);
+ }
+
+ if (reg_mask == 0) {
+ /* We should not reach this point without having to configure
+ * anything so we flag it as an error.
+ */
+ rc = PMIC_ERROR;
+ } else {
+ rc = pmic_write_reg(REG_AUDIO_CODEC,
+ reg_write, reg_mask);
+ }
+
+ if (rc == PMIC_SUCCESS) {
+ vCodec.config |= config;
+ }
+ }
+ /* Exit the critical section. */
+ up(&mutex);
+
+ return rc;
+}
+
+/*!
+ * @brief Clear/Disable the Voice CODEC options.
+ *
+ * Clear or disable various Voice CODEC options.
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ * @param config The Voice CODEC options to be cleared/disabled.
+ *
+ * @retval PMIC_SUCCESS If the Voice CODEC options were
+ * successfully cleared/disabled.
+ * @retval PMIC_PARAMETER_ERROR If the handle or the Voice CODEC options
+ * were invalid.
+ * @retval PMIC_ERROR If the Voice CODEC options could not be
+ * cleared/disabled.
+ */
+PMIC_STATUS pmic_audio_vcodec_clear_config(const PMIC_AUDIO_HANDLE handle,
+ const PMIC_AUDIO_VCODEC_CONFIG
+ config)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+ unsigned int reg_write = 0;
+ unsigned int reg_mask = 0;
+
+ /* Use a critical section to ensure a consistent hardware state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ if ((handle == vCodec.handle) && (vCodec.handleState == HANDLE_IN_USE)) {
+ if (config & DITHERING) {
+ reg_mask = SET_BITS(regAUD_CODEC, CDCDITH, 1);
+ reg_write = SET_BITS(regAUD_CODEC, CDCDITH, 1);
+ }
+
+ if (config & INPUT_HIGHPASS_FILTER) {
+ reg_mask |= SET_BITS(regAUD_CODEC, AUDIHPF, 1);
+ }
+
+ if (config & OUTPUT_HIGHPASS_FILTER) {
+ reg_mask |= SET_BITS(regAUD_CODEC, AUDOHPF, 1);
+ }
+
+ if (config & DIGITAL_LOOPBACK) {
+ reg_mask |= SET_BITS(regAUD_CODEC, CDCDLM, 1);
+ }
+
+ if (config & ANALOG_LOOPBACK) {
+ reg_mask |= SET_BITS(regAUD_CODEC, CDCALM, 1);
+ }
+
+ if (config & VCODEC_MASTER_CLOCK_OUTPUTS) {
+ reg_mask |= SET_BITS(regAUD_CODEC, CDCCLKEN, 1);
+ }
+
+ if (config & TRISTATE_TS) {
+ reg_mask |= SET_BITS(regAUD_CODEC, CDCTS, 1);
+ }
+
+ if (reg_mask == 0) {
+ /* We should not reach this point without having to configure
+ * anything so we flag it as an error.
+ */
+ rc = PMIC_ERROR;
+ } else {
+ rc = pmic_write_reg(REG_AUDIO_CODEC,
+ reg_write, reg_mask);
+ }
+
+ if (rc == PMIC_SUCCESS) {
+ vCodec.config |= config;
+ }
+
+ }
+
+ /* Exit the critical section. */
+ up(&mutex);
+
+ return rc;
+}
+
+/*!
+ * @brief Get the current Voice CODEC options.
+ *
+ * Get the current Voice CODEC options.
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ * @param config The current set of Voice CODEC options.
+ *
+ * @retval PMIC_SUCCESS If the Voice CODEC options were
+ * successfully retrieved.
+ * @retval PMIC_PARAMETER_ERROR If the handle was invalid.
+ * @retval PMIC_ERROR If the Voice CODEC options could not be
+ * retrieved.
+ */
+PMIC_STATUS pmic_audio_vcodec_get_config(const PMIC_AUDIO_HANDLE handle,
+ PMIC_AUDIO_VCODEC_CONFIG *
+ const config)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+
+ /* Use a critical section to ensure a consistent hardware state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ if ((handle == vCodec.handle) &&
+ (vCodec.handleState == HANDLE_IN_USE) &&
+ (config != (PMIC_AUDIO_VCODEC_CONFIG *) NULL)) {
+ *config = vCodec.config;
+
+ rc = PMIC_SUCCESS;
+ }
+
+ /* Exit the critical section. */
+ up(&mutex);
+
+ return rc;
+}
+
+/*!
+ * @brief Enable the Voice CODEC bypass audio pathway.
+ *
+ * Enables the Voice CODEC bypass pathway for audio data. This allows direct
+ * output of the voltages on the TX data bus line to the output amplifiers
+ * (bypassing the digital-to-analog converters within the Voice CODEC).
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ *
+ * @retval PMIC_SUCCESS If the Voice CODEC bypass was successfully
+ * enabled.
+ * @retval PMIC_PARAMETER_ERROR If the handle was invalid.
+ * @retval PMIC_ERROR If the Voice CODEC bypass could not be
+ * enabled.
+ */
+PMIC_STATUS pmic_audio_vcodec_enable_bypass(const PMIC_AUDIO_HANDLE handle)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+ const unsigned int reg_write = SET_BITS(regAUD_CODEC, CDCBYP, 1);
+ const unsigned int reg_mask = SET_BITS(regAUD_CODEC, CDCBYP, 1);
+
+ /* No critical section required here since we are not updating any
+ * global data.
+ */
+
+ if ((handle == vCodec.handle) && (vCodec.handleState == HANDLE_IN_USE)) {
+ rc = pmic_write_reg(REG_AUDIO_CODEC, reg_write, reg_mask);
+ }
+
+ return rc;
+}
+
+/*!
+ * @brief Disable the Voice CODEC bypass audio pathway.
+ *
+ * Disables the Voice CODEC bypass pathway for audio data. This means that
+ * the TX data bus line will deliver digital data to the digital-to-analog
+ * converters within the Voice CODEC.
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ *
+ * @retval PMIC_SUCCESS If the Voice CODEC bypass was successfully
+ * disabled.
+ * @retval PMIC_PARAMETER_ERROR If the handle was invalid.
+ * @retval PMIC_ERROR If the Voice CODEC bypass could not be
+ * disabled.
+ */
+PMIC_STATUS pmic_audio_vcodec_disable_bypass(const PMIC_AUDIO_HANDLE handle)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+ const unsigned int reg_write = 0;
+ const unsigned int reg_mask = SET_BITS(regAUD_CODEC, CDCBYP, 1);
+
+ /* No critical section required here since we are not updating any
+ * global data.
+ */
+
+ if ((handle == vCodec.handle) && (vCodec.handleState == HANDLE_IN_USE)) {
+ rc = pmic_write_reg(REG_AUDIO_CODEC, reg_write, reg_mask);
+ }
+
+ return rc;
+}
+
+/*@}*/
+
+/*************************************************************************
+ * General Stereo DAC configuration.
+ *************************************************************************
+ */
+
+/*!
+ * @name General Stereo DAC Setup and Configuration APIs
+ * Functions for general setup and configuration of the PMIC Stereo
+ * DAC hardware.
+ */
+/*@{*/
+
+/*!
+ * @brief Set the Stereo DAC clock source and operating characteristics.
+ *
+ * Define the Stereo DAC clock source and operating characteristics. This
+ * must be done before the Stereo DAC is enabled.
+ *
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ * @param clockIn Select the clock signal source.
+ * @param clockFreq Select the clock signal frequency.
+ * @param samplingRate Select the audio data sampling rate.
+ * @param invert Enable inversion of the frame sync and/or
+ * bit clock inputs.
+ *
+ * @retval PMIC_SUCCESS If the Stereo DAC clock settings were
+ * successfully configured.
+ * @retval PMIC_PARAMETER_ERROR If the handle or clock configuration was
+ * invalid.
+ * @retval PMIC_ERROR If the Stereo DAC clock configuration
+ * could not be set.
+ */
+PMIC_STATUS pmic_audio_stdac_set_clock(const PMIC_AUDIO_HANDLE handle,
+ const PMIC_AUDIO_CLOCK_IN_SOURCE clockIn,
+ const PMIC_AUDIO_STDAC_CLOCK_IN_FREQ
+ clockFreq,
+ const PMIC_AUDIO_STDAC_SAMPLING_RATE
+ samplingRate,
+ const PMIC_AUDIO_CLOCK_INVERT invert)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+ unsigned int reg_value = 0;
+ unsigned int reg_mask = 0;
+
+ /* Use a critical section to ensure a consistent hardware state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+ /* Validate all of the calling parameters. */
+ if (handle == (PMIC_AUDIO_HANDLE) NULL) {
+ rc = PMIC_PARAMETER_ERROR;
+ } else if ((handle == stDAC.handle) &&
+ (stDAC.handleState == HANDLE_IN_USE)) {
+ if ((clockIn != CLOCK_IN_CLIA) && (clockIn != CLOCK_IN_CLIB)) {
+ rc = PMIC_PARAMETER_ERROR;
+ } else if ((stDAC.masterSlave == BUS_MASTER_MODE)
+ && !((clockFreq >= STDAC_CLI_3_36864MHZ)
+ && (clockFreq <= STDAC_CLI_33_6MHZ))) {
+ rc = PMIC_PARAMETER_ERROR;
+ } else if ((stDAC.masterSlave == BUS_SLAVE_MODE)
+ && !((clockFreq >= STDAC_MCLK_PLL_DISABLED)
+ && (clockFreq <= STDAC_BCLK_IN_PLL))) {
+ rc = PMIC_PARAMETER_ERROR;
+ } else if (!((samplingRate >= STDAC_RATE_8_KHZ)
+ && (samplingRate <= STDAC_RATE_96_KHZ))) {
+ rc = PMIC_PARAMETER_ERROR;
+ }
+ /*
+ else if(!((invert >= NO_INVERT) && (invert <= INVERT_FRAMESYNC)))
+ {
+ rc = PMIC_PARAMETER_ERROR;
+ } */
+ else {
+ reg_mask = SET_BITS(regST_DAC, STDCCLK, 7) |
+ SET_BITS(regST_DAC, STDCCLKSEL, 1) |
+ SET_BITS(regST_DAC, SR, 15) |
+ SET_BITS(regST_DAC, STDCBCLINV, 1) |
+ SET_BITS(regST_DAC, STDCFSINV, 1);
+ if (clockIn == CLOCK_IN_CLIA) {
+ reg_value = SET_BITS(regST_DAC, STDCCLKSEL, 0);
+ } else {
+ reg_value = SET_BITS(regST_DAC, STDCCLKSEL, 1);
+ }
+ /* How to take care of sample rates in SLAVE mode */
+ if ((clockFreq == STDAC_CLI_3_36864MHZ)
+ || ((clockFreq == STDAC_FSYNC_IN_PLL))) {
+ reg_value |= SET_BITS(regST_DAC, STDCCLK, 6);
+ } else if ((clockFreq == STDAC_CLI_12MHZ)
+ || (clockFreq == STDAC_MCLK_PLL_DISABLED)) {
+ reg_value |= SET_BITS(regST_DAC, STDCCLK, 5);
+ } else if (clockFreq == STDAC_CLI_13MHZ) {
+ reg_value |= SET_BITS(regST_DAC, STDCCLK, 0);
+ } else if (clockFreq == STDAC_CLI_15_36MHZ) {
+ reg_value |= SET_BITS(regST_DAC, STDCCLK, 1);
+ } else if (clockFreq == STDAC_CLI_16_8MHZ) {
+ reg_value |= SET_BITS(regST_DAC, STDCCLK, 2);
+ } else if (clockFreq == STDAC_CLI_26MHZ) {
+ reg_value |= SET_BITS(regST_DAC, STDCCLK, 4);
+ } else if ((clockFreq == STDAC_CLI_33_6MHZ)
+ || (clockFreq == STDAC_BCLK_IN_PLL)) {
+ reg_value |= SET_BITS(regST_DAC, STDCCLK, 7);
+ }
+
+ reg_value |= SET_BITS(regST_DAC, SR, samplingRate);
+
+ if (invert & INVERT_BITCLOCK) {
+ reg_value |= SET_BITS(regST_DAC, STDCBCLINV, 1);
+ }
+ if (invert & INVERT_FRAMESYNC) {
+ reg_value |= SET_BITS(regST_DAC, STDCFSINV, 1);
+ }
+ if (invert & NO_INVERT) {
+ reg_value |= SET_BITS(regST_DAC, STDCBCLINV, 0);
+ reg_value |= SET_BITS(regST_DAC, STDCFSINV, 0);
+ }
+ if (pmic_write_reg
+ (REG_AUDIO_STEREO_DAC, reg_value,
+ reg_mask) != PMIC_SUCCESS) {
+ rc = PMIC_ERROR;
+ } else {
+ pr_debug("STDAC clock set\n");
+ rc = PMIC_SUCCESS;
+ stDAC.clockIn = clockIn;
+ stDAC.clockFreq = clockFreq;
+ stDAC.samplingRate = samplingRate;
+ stDAC.invert = invert;
+ }
+
+ }
+
+ } else {
+ rc = PMIC_PARAMETER_ERROR;
+ }
+
+ /* Exit the critical section. */
+ up(&mutex);
+
+ return rc;
+}
+
+/*!
+ * @brief Get the Stereo DAC clock source and operating characteristics.
+ *
+ * Get the current Stereo DAC clock source and operating characteristics.
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ * @param clockIn The clock signal source.
+ * @param clockFreq The clock signal frequency.
+ * @param samplingRate The audio data sampling rate.
+ * @param invert Inversion of the frame sync and/or
+ * bit clock inputs is enabled/disabled.
+ *
+ * @retval PMIC_SUCCESS If the Stereo DAC clock settings were
+ * successfully retrieved.
+ * @retval PMIC_PARAMETER_ERROR If the handle invalid.
+ * @retval PMIC_ERROR If the Stereo DAC clock configuration
+ * could not be retrieved.
+ */
+PMIC_STATUS pmic_audio_stdac_get_clock(const PMIC_AUDIO_HANDLE handle,
+ PMIC_AUDIO_CLOCK_IN_SOURCE *
+ const clockIn,
+ PMIC_AUDIO_STDAC_SAMPLING_RATE *
+ const samplingRate,
+ PMIC_AUDIO_STDAC_CLOCK_IN_FREQ *
+ const clockFreq,
+ PMIC_AUDIO_CLOCK_INVERT * const invert)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+
+ /* Use a critical section to ensure a consistent hardware state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ if ((handle == stDAC.handle) &&
+ (stDAC.handleState == HANDLE_IN_USE) &&
+ (clockIn != (PMIC_AUDIO_CLOCK_IN_SOURCE *) NULL) &&
+ (samplingRate != (PMIC_AUDIO_STDAC_SAMPLING_RATE *) NULL) &&
+ (clockFreq != (PMIC_AUDIO_STDAC_CLOCK_IN_FREQ *) NULL) &&
+ (invert != (PMIC_AUDIO_CLOCK_INVERT *) NULL)) {
+ *clockIn = stDAC.clockIn;
+ *samplingRate = stDAC.samplingRate;
+ *clockFreq = stDAC.clockFreq;
+ *invert = stDAC.invert;
+ rc = PMIC_SUCCESS;
+ }
+
+ /* Exit the critical section. */
+ up(&mutex);
+
+ return rc;
+}
+
+/*!
+ * @brief Set the Stereo DAC primary audio channel timeslot.
+ *
+ * Set the Stereo DAC primary audio channel timeslot. This function must be
+ * used if the default timeslot for the primary audio channel is to be changed.
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ * @param timeslot Select the primary audio channel timeslot.
+ *
+ * @retval PMIC_SUCCESS If the Stereo DAC primary audio channel
+ * timeslot was successfully configured.
+ * @retval PMIC_PARAMETER_ERROR If the handle or audio channel timeslot
+ * was invalid.
+ * @retval PMIC_ERROR If the Stereo DAC primary audio channel
+ * timeslot could not be set.
+ */
+PMIC_STATUS pmic_audio_stdac_set_rxtx_timeslot(const PMIC_AUDIO_HANDLE handle,
+ const PMIC_AUDIO_STDAC_TIMESLOTS
+ timeslot)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+ unsigned int reg_mask = SET_BITS(regSSI_NETWORK, STDCRXSLOT, 3);
+
+ /* Use a critical section to ensure a consistent hardware state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ if ((handle == stDAC.handle) && (stDAC.handleState == HANDLE_IN_USE)) {
+ if ((timeslot == USE_TS0_TS1) || (timeslot == USE_TS2_TS3)
+ || (timeslot == USE_TS4_TS5) || (timeslot == USE_TS6_TS7)) {
+ if (pmic_write_reg
+ (REG_AUDIO_SSI_NETWORK, timeslot,
+ reg_mask) != PMIC_SUCCESS) {
+ rc = PMIC_ERROR;
+ } else {
+ pr_debug("STDAC primary timeslot set\n");
+ stDAC.timeslot = timeslot;
+ rc = PMIC_SUCCESS;
+ }
+
+ } else {
+ rc = PMIC_PARAMETER_ERROR;
+ }
+ }
+
+ /* Exit the critical section. */
+ up(&mutex);
+
+ return rc;
+}
+
+/*!
+ * @brief Get the current Stereo DAC primary audio channel timeslot.
+ *
+ * Get the current Stereo DAC primary audio channel timeslot.
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ * @param timeslot The primary audio channel timeslot.
+ *
+ * @retval PMIC_SUCCESS If the Stereo DAC primary audio channel
+ * timeslot was successfully retrieved.
+ * @retval PMIC_PARAMETER_ERROR If the handle was invalid.
+ * @retval PMIC_ERROR If the Stereo DAC primary audio channel
+ * timeslot could not be retrieved.
+ */
+PMIC_STATUS pmic_audio_stdac_get_rxtx_timeslot(const PMIC_AUDIO_HANDLE handle,
+ PMIC_AUDIO_STDAC_TIMESLOTS *
+ const timeslot)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+
+ /* Use a critical section to ensure a consistent hardware state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ if ((handle == stDAC.handle) &&
+ (stDAC.handleState == HANDLE_IN_USE) &&
+ (timeslot != (PMIC_AUDIO_STDAC_TIMESLOTS *) NULL)) {
+ *timeslot = stDAC.timeslot;
+
+ rc = PMIC_SUCCESS;
+ }
+
+ /* Exit the critical section. */
+ up(&mutex);
+
+ return rc;
+}
+
+/*!
+ * @brief Set/Enable the Stereo DAC options.
+ *
+ * Set or enable various Stereo DAC options. The available options include
+ * resetting the digital filter and enabling the bus master clock outputs.
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ * @param config The Stereo DAC options to enable.
+ *
+ * @retval PMIC_SUCCESS If the Stereo DAC options were
+ * successfully configured.
+ * @retval PMIC_PARAMETER_ERROR If the handle or Stereo DAC options
+ * were invalid.
+ * @retval PMIC_ERROR If the Stereo DAC options could not be
+ * successfully set/enabled.
+ */
+PMIC_STATUS pmic_audio_stdac_set_config(const PMIC_AUDIO_HANDLE handle,
+ const PMIC_AUDIO_STDAC_CONFIG config)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+ unsigned int reg_write = 0;
+ unsigned int reg_mask = 0;
+
+ /* Use a critical section to ensure a consistent hardware state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ if ((handle == stDAC.handle) && (stDAC.handleState == HANDLE_IN_USE)) {
+ if (config & STDAC_MASTER_CLOCK_OUTPUTS) {
+ reg_write |= SET_BITS(regST_DAC, STDCCLKEN, 1);
+ reg_mask |= SET_BITS(regST_DAC, STDCCLKEN, 1);
+ }
+
+ rc = pmic_write_reg(REG_AUDIO_STEREO_DAC, reg_write, reg_mask);
+
+ if (rc == PMIC_SUCCESS) {
+ stDAC.config |= config;
+ pr_debug("STDAC config set\n");
+
+ }
+ }
+
+ /* Exit the critical section. */
+ up(&mutex);
+
+ return rc;
+}
+
+/*!
+ * @brief Clear/Disable the Stereo DAC options.
+ *
+ * Clear or disable various Stereo DAC options.
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ * @param config The Stereo DAC options to be cleared/disabled.
+ *
+ * @retval PMIC_SUCCESS If the Stereo DAC options were
+ * successfully cleared/disabled.
+ * @retval PMIC_PARAMETER_ERROR If the handle or the Stereo DAC options
+ * were invalid.
+ * @retval PMIC_ERROR If the Stereo DAC options could not be
+ * cleared/disabled.
+ */
+PMIC_STATUS pmic_audio_stdac_clear_config(const PMIC_AUDIO_HANDLE handle,
+ const PMIC_AUDIO_STDAC_CONFIG config)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+
+ unsigned int reg_write = 0;
+ unsigned int reg_mask = 0;
+
+ /* Use a critical section to ensure a consistent hardware state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ if ((handle == stDAC.handle) && (stDAC.handleState == HANDLE_IN_USE)) {
+
+ if (config & STDAC_MASTER_CLOCK_OUTPUTS) {
+ reg_mask |= SET_BITS(regST_DAC, STDCCLKEN, 1);
+ }
+
+ if (reg_mask != 0) {
+ rc = pmic_write_reg(REG_AUDIO_STEREO_DAC,
+ reg_write, reg_mask);
+
+ if (rc == PMIC_SUCCESS) {
+ stDAC.config &= ~config;
+ }
+ }
+ }
+
+ /* Exit the critical section. */
+ up(&mutex);
+
+ return rc;
+}
+
+/*!
+ * @brief Get the current Stereo DAC options.
+ *
+ * Get the current Stereo DAC options.
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ * @param config The current set of Stereo DAC options.
+ *
+ * @retval PMIC_SUCCESS If the Stereo DAC options were
+ * successfully retrieved.
+ * @retval PMIC_PARAMETER_ERROR If the handle was invalid.
+ * @retval PMIC_ERROR If the Stereo DAC options could not be
+ * retrieved.
+ */
+PMIC_STATUS pmic_audio_stdac_get_config(const PMIC_AUDIO_HANDLE handle,
+ PMIC_AUDIO_STDAC_CONFIG * const config)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+
+ /* Use a critical section to ensure a consistent hardware state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ if ((handle == stDAC.handle) &&
+ (stDAC.handleState == HANDLE_IN_USE) &&
+ (config != (PMIC_AUDIO_STDAC_CONFIG *) NULL)) {
+ *config = stDAC.config;
+
+ rc = PMIC_SUCCESS;
+ }
+
+ /* Exit the critical section. */
+ up(&mutex);
+
+ return rc;
+}
+
+/*@}*/
+
+/*************************************************************************
+ * Audio input section configuration.
+ *************************************************************************
+ */
+
+/*!
+ * @name Audio Input Setup and Configuration APIs
+ * Functions for general setup and configuration of the PMIC audio
+ * input hardware.
+ */
+/*@{*/
+
+/*!
+ * @brief Set/Enable the audio input section options.
+ *
+ * Set or enable various audio input section options. The only available
+ * option right now is to enable the automatic disabling of the microphone
+ * input amplifiers when a microphone/headset is inserted or removed.
+ * NOT SUPPORTED BY MC13783
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ * @param config The audio input section options to enable.
+ *
+ * @retval PMIC_SUCCESS If the audio input section options were
+ * successfully configured.
+ * @retval PMIC_PARAMETER_ERROR If the handle or audio input section
+ * options were invalid.
+ * @retval PMIC_ERROR If the audio input section options could
+ * not be successfully set/enabled.
+ */
+PMIC_STATUS pmic_audio_input_set_config(const PMIC_AUDIO_HANDLE handle,
+ const PMIC_AUDIO_INPUT_CONFIG config)
+{
+ PMIC_STATUS rc = PMIC_NOT_SUPPORTED;
+ return rc;
+}
+
+/*!
+ * @brief Clear/Disable the audio input section options.
+ *
+ * Clear or disable various audio input section options.
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ * @param config The audio input section options to be
+ * cleared/disabled.
+ * NOT SUPPORTED BY MC13783
+ *
+ * @retval PMIC_SUCCESS If the audio input section options were
+ * successfully cleared/disabled.
+ * @retval PMIC_PARAMETER_ERROR If the handle or the audio input section
+ * options were invalid.
+ * @retval PMIC_ERROR If the audio input section options could
+ * not be cleared/disabled.
+ */
+PMIC_STATUS pmic_audio_input_clear_config(const PMIC_AUDIO_HANDLE handle,
+ const PMIC_AUDIO_INPUT_CONFIG config)
+{
+ PMIC_STATUS rc = PMIC_NOT_SUPPORTED;
+ return rc;
+
+}
+
+/*!
+ * @brief Get the current audio input section options.
+ *
+ * Get the current audio input section options.
+ *
+ * @param[in] handle Device handle from pmic_audio_open() call.
+ * @param[out] config The current set of audio input section options.
+ * NOT SUPPORTED BY MC13783
+ *
+ * @retval PMIC_SUCCESS If the audio input section options were
+ * successfully retrieved.
+ * @retval PMIC_PARAMETER_ERROR If the handle was invalid.
+ * @retval PMIC_ERROR If the audio input section options could
+ * not be retrieved.
+ */
+PMIC_STATUS pmic_audio_input_get_config(const PMIC_AUDIO_HANDLE handle,
+ PMIC_AUDIO_INPUT_CONFIG * const config)
+{
+ PMIC_STATUS rc = PMIC_NOT_SUPPORTED;
+ return rc;
+}
+
+/*@}*/
+
+/*************************************************************************
+ * Audio recording using the Voice CODEC.
+ *************************************************************************
+ */
+
+/*!
+ * @name Audio Recording Using the Voice CODEC Setup and Configuration APIs
+ * Functions for general setup and configuration of the PMIC Voice CODEC
+ * to perform audio recording.
+ */
+/*@{*/
+
+/*!
+ * @brief Select the microphone inputs to be used for Voice CODEC recording.
+ *
+ * Select left (mc13783-only) and right microphone inputs for Voice CODEC
+ * recording. It is possible to disable or not use a particular microphone
+ * input channel by specifying NO_MIC as a parameter.
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ * @param leftChannel Select the left microphone input channel.
+ * @param rightChannel Select the right microphone input channel.
+ *
+ * @retval PMIC_SUCCESS If the microphone input channels were
+ * successfully enabled.
+ * @retval PMIC_PARAMETER_ERROR If the handle or microphone input ports
+ * were invalid.
+ * @retval PMIC_ERROR If the microphone input channels could
+ * not be successfully enabled.
+ */
+PMIC_STATUS pmic_audio_vcodec_set_mic(const PMIC_AUDIO_HANDLE handle,
+ const PMIC_AUDIO_INPUT_PORT leftChannel,
+ const PMIC_AUDIO_INPUT_PORT rightChannel)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+ unsigned int reg_write = 0;
+ unsigned int reg_mask = 0;
+
+ /* Use a critical section to ensure a consistent hardware state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ if ((handle == vCodec.handle) && (vCodec.handleState == HANDLE_IN_USE)) {
+ if (!((leftChannel == NO_MIC) || (leftChannel == MIC1_LEFT))) {
+ rc = PMIC_PARAMETER_ERROR;
+ } else if (!((rightChannel == NO_MIC)
+ || (rightChannel == MIC1_RIGHT_MIC_MONO)
+ || (rightChannel == TXIN_EXT)
+ || (rightChannel == MIC2_AUX))) {
+ rc = PMIC_PARAMETER_ERROR;
+ } else {
+ if (leftChannel == NO_MIC) {
+ } else { /* Left channel MIC enable */
+ reg_mask = SET_BITS(regAUDIO_TX, AMC1LEN, 1) |
+ SET_BITS(regAUDIO_TX, RXINREC, 1);
+ reg_write = SET_BITS(regAUDIO_TX, AMC1LEN, 1) |
+ SET_BITS(regAUDIO_TX, RXINREC, 0);
+ }
+ /*For right channel enable one and clear the other two as well as RXINREC */
+ if (rightChannel == NO_MIC) {
+ } else if (rightChannel == MIC1_RIGHT_MIC_MONO) {
+ reg_mask |= SET_BITS(regAUDIO_TX, AMC1REN, 1) |
+ SET_BITS(regAUDIO_TX, RXINREC, 1) |
+ SET_BITS(regAUDIO_TX, AMC2EN, 1) |
+ SET_BITS(regAUDIO_TX, ATXINEN, 1);
+ reg_write |= SET_BITS(regAUDIO_TX, AMC1REN, 1) |
+ SET_BITS(regAUDIO_TX, RXINREC, 0) |
+ SET_BITS(regAUDIO_TX, AMC2EN, 0) |
+ SET_BITS(regAUDIO_TX, ATXINEN, 0);
+ } else if (rightChannel == MIC2_AUX) {
+ reg_mask |= SET_BITS(regAUDIO_TX, AMC1REN, 1) |
+ SET_BITS(regAUDIO_TX, RXINREC, 1) |
+ SET_BITS(regAUDIO_TX, AMC2EN, 1) |
+ SET_BITS(regAUDIO_TX, ATXINEN, 1);
+ reg_write |= SET_BITS(regAUDIO_TX, AMC1REN, 0) |
+ SET_BITS(regAUDIO_TX, RXINREC, 0) |
+ SET_BITS(regAUDIO_TX, AMC2EN, 1) |
+ SET_BITS(regAUDIO_TX, ATXINEN, 0);
+ } else { /* TX line in */
+ reg_mask |= SET_BITS(regAUDIO_TX, AMC1REN, 1) |
+ SET_BITS(regAUDIO_TX, RXINREC, 1) |
+ SET_BITS(regAUDIO_TX, AMC2EN, 1) |
+ SET_BITS(regAUDIO_TX, ATXINEN, 1);
+ reg_write |= SET_BITS(regAUDIO_TX, AMC1REN, 0) |
+ SET_BITS(regAUDIO_TX, RXINREC, 0) |
+ SET_BITS(regAUDIO_TX, AMC2EN, 0) |
+ SET_BITS(regAUDIO_TX, ATXINEN, 1);
+ }
+
+ if (reg_mask == 0) {
+ rc = PMIC_PARAMETER_ERROR;
+ } else {
+ rc = pmic_write_reg(REG_AUDIO_TX,
+ reg_write, reg_mask);
+
+ if (rc == PMIC_SUCCESS) {
+ pr_debug
+ ("MIC inputs configured successfully\n");
+ vCodec.leftChannelMic.mic = leftChannel;
+ vCodec.rightChannelMic.mic =
+ rightChannel;
+
+ }
+ }
+ }
+ }
+
+ /* Exit the critical section. */
+ up(&mutex);
+
+ return rc;
+}
+
+/*!
+ * @brief Get the current microphone inputs being used for Voice CODEC
+ * recording.
+ *
+ * Get the left (mc13783-only) and right microphone inputs currently being
+ * used for Voice CODEC recording.
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ * @param leftChannel The left microphone input channel.
+ * @param rightChannel The right microphone input channel.
+ *
+ * @retval PMIC_SUCCESS If the microphone input channels were
+ * successfully retrieved.
+ * @retval PMIC_PARAMETER_ERROR If the handle was invalid.
+ * @retval PMIC_ERROR If the microphone input channels could
+ * not be retrieved.
+ */
+PMIC_STATUS pmic_audio_vcodec_get_mic(const PMIC_AUDIO_HANDLE handle,
+ PMIC_AUDIO_INPUT_PORT * const leftChannel,
+ PMIC_AUDIO_INPUT_PORT *
+ const rightChannel)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+
+ /* Use a critical section to ensure a consistent hardware state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ if ((handle == vCodec.handle) &&
+ (vCodec.handleState == HANDLE_IN_USE) &&
+ (leftChannel != (PMIC_AUDIO_INPUT_PORT *) NULL) &&
+ (rightChannel != (PMIC_AUDIO_INPUT_PORT *) NULL)) {
+ *leftChannel = vCodec.leftChannelMic.mic;
+ *rightChannel = vCodec.rightChannelMic.mic;
+ rc = PMIC_SUCCESS;
+ }
+
+ /* Exit the critical section. */
+ up(&mutex);
+ return rc;
+}
+
+/*!
+ * @brief Enable/disable the microphone input.
+ *
+ * This function enables/disables the current microphone input channel. The
+ * input amplifier is automatically turned off when the microphone input is
+ * disabled.
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ * @param leftChannel The left microphone input channel state.
+ * @param rightChannel the right microphone input channel state.
+ *
+ * @retval PMIC_SUCCESS If the microphone input channels were
+ * successfully reconfigured.
+ * @retval PMIC_PARAMETER_ERROR If the handle or microphone input states
+ * were invalid.
+ * @retval PMIC_ERROR If the microphone input channels could
+ * not be reconfigured.
+ */
+PMIC_STATUS pmic_audio_vcodec_set_mic_on_off(const PMIC_AUDIO_HANDLE handle,
+ const PMIC_AUDIO_INPUT_MIC_STATE
+ leftChannel,
+ const PMIC_AUDIO_INPUT_MIC_STATE
+ rightChannel)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+ unsigned int reg_write = 0;
+ unsigned int reg_mask = 0;
+ unsigned int curr_left = 0;
+ unsigned int curr_right = 0;
+
+ /* Use a critical section to ensure a consistent hardware state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ if ((handle == vCodec.handle) && (vCodec.handleState == HANDLE_IN_USE)) {
+ curr_left = vCodec.leftChannelMic.mic;
+ curr_right = vCodec.rightChannelMic.mic;
+ if ((curr_left == NO_MIC) && (curr_right == NO_MIC)) {
+ rc = PMIC_PARAMETER_ERROR;
+ } else {
+ if (curr_left == MIC1_LEFT) {
+ if ((leftChannel == MICROPHONE_ON) &&
+ (vCodec.leftChannelMic.micOnOff ==
+ MICROPHONE_OFF)) {
+ /* Enable the microphone */
+ reg_mask |=
+ SET_BITS(regAUDIO_TX, AMC1LEN,
+ 1) | SET_BITS(regAUDIO_TX,
+ RXINREC, 1);
+ reg_write |=
+ SET_BITS(regAUDIO_TX, AMC1LEN,
+ 1) | SET_BITS(regAUDIO_TX,
+ RXINREC, 0);
+
+ } else if ((leftChannel == MICROPHONE_OFF) &&
+ (vCodec.leftChannelMic.micOnOff ==
+ MICROPHONE_ON)) {
+ /* Disable the microphone */
+ reg_mask |=
+ SET_BITS(regAUDIO_TX, AMC1LEN,
+ 1) | SET_BITS(regAUDIO_TX,
+ RXINREC, 1);
+ reg_write |=
+ SET_BITS(regAUDIO_TX, AMC1LEN,
+ 0) | SET_BITS(regAUDIO_TX,
+ RXINREC, 0);
+
+ } else {
+ /* Both are in same state . Nothing to be done */
+ }
+
+ }
+ if (curr_right == MIC1_RIGHT_MIC_MONO) {
+ if ((rightChannel == MICROPHONE_ON) &&
+ (vCodec.leftChannelMic.micOnOff ==
+ MICROPHONE_OFF)) {
+ /* Enable the microphone */
+ reg_mask |=
+ SET_BITS(regAUDIO_TX, AMC1REN,
+ 1) | SET_BITS(regAUDIO_TX,
+ RXINREC,
+ 1) |
+ SET_BITS(regAUDIO_TX, AMC2EN,
+ 1) | SET_BITS(regAUDIO_TX,
+ ATXINEN, 1);
+ reg_write |=
+ SET_BITS(regAUDIO_TX, AMC1REN,
+ 1) | SET_BITS(regAUDIO_TX,
+ RXINREC,
+ 0) |
+ SET_BITS(regAUDIO_TX, AMC2EN,
+ 0) | SET_BITS(regAUDIO_TX,
+ ATXINEN, 0);
+ } else if ((rightChannel == MICROPHONE_OFF)
+ && (vCodec.leftChannelMic.micOnOff ==
+ MICROPHONE_ON)) {
+ /* Disable the microphone */
+ reg_mask |=
+ SET_BITS(regAUDIO_TX, AMC1REN,
+ 1) | SET_BITS(regAUDIO_TX,
+ RXINREC,
+ 1) |
+ SET_BITS(regAUDIO_TX, AMC2EN,
+ 1) | SET_BITS(regAUDIO_TX,
+ ATXINEN, 1);
+ reg_write |=
+ SET_BITS(regAUDIO_TX, AMC1REN,
+ 0) | SET_BITS(regAUDIO_TX,
+ RXINREC,
+ 0) |
+ SET_BITS(regAUDIO_TX, AMC2EN,
+ 0) | SET_BITS(regAUDIO_TX,
+ ATXINEN, 0);
+ } else {
+ /* Both are in same state . Nothing to be done */
+ }
+ } else if (curr_right == MIC2_AUX) {
+ if ((rightChannel == MICROPHONE_ON)
+ && (vCodec.leftChannelMic.micOnOff ==
+ MICROPHONE_OFF)) {
+ /* Enable the microphone */
+ reg_mask |=
+ SET_BITS(regAUDIO_TX, AMC1REN,
+ 1) | SET_BITS(regAUDIO_TX,
+ RXINREC,
+ 1) |
+ SET_BITS(regAUDIO_TX, AMC2EN,
+ 1) | SET_BITS(regAUDIO_TX,
+ ATXINEN, 1);
+ reg_write |=
+ SET_BITS(regAUDIO_TX, AMC1REN,
+ 0) | SET_BITS(regAUDIO_TX,
+ RXINREC,
+ 0) |
+ SET_BITS(regAUDIO_TX, AMC2EN,
+ 1) | SET_BITS(regAUDIO_TX,
+ ATXINEN, 0);
+ } else if ((rightChannel == MICROPHONE_OFF)
+ && (vCodec.leftChannelMic.micOnOff ==
+ MICROPHONE_ON)) {
+ /* Disable the microphone */
+ reg_mask |=
+ SET_BITS(regAUDIO_TX, AMC1REN,
+ 1) | SET_BITS(regAUDIO_TX,
+ RXINREC,
+ 1) |
+ SET_BITS(regAUDIO_TX, AMC2EN,
+ 1) | SET_BITS(regAUDIO_TX,
+ ATXINEN, 1);
+ reg_write |=
+ SET_BITS(regAUDIO_TX, AMC1REN,
+ 0) | SET_BITS(regAUDIO_TX,
+ RXINREC,
+ 0) |
+ SET_BITS(regAUDIO_TX, AMC2EN,
+ 0) | SET_BITS(regAUDIO_TX,
+ ATXINEN, 0);
+ } else {
+ /* Both are in same state . Nothing to be done */
+ }
+ } else if (curr_right == TXIN_EXT) {
+ if ((rightChannel == MICROPHONE_ON)
+ && (vCodec.leftChannelMic.micOnOff ==
+ MICROPHONE_OFF)) {
+ /* Enable the microphone */
+ reg_mask |=
+ SET_BITS(regAUDIO_TX, AMC1REN,
+ 1) | SET_BITS(regAUDIO_TX,
+ RXINREC,
+ 1) |
+ SET_BITS(regAUDIO_TX, AMC2EN,
+ 1) | SET_BITS(regAUDIO_TX,
+ ATXINEN, 1);
+ reg_write |=
+ SET_BITS(regAUDIO_TX, AMC1REN,
+ 0) | SET_BITS(regAUDIO_TX,
+ RXINREC,
+ 0) |
+ SET_BITS(regAUDIO_TX, AMC2EN,
+ 0) | SET_BITS(regAUDIO_TX,
+ ATXINEN, 1);
+ } else if ((rightChannel == MICROPHONE_OFF)
+ && (vCodec.leftChannelMic.micOnOff ==
+ MICROPHONE_ON)) {
+ /* Disable the microphone */
+ reg_mask |=
+ SET_BITS(regAUDIO_TX, AMC1REN,
+ 1) | SET_BITS(regAUDIO_TX,
+ RXINREC,
+ 1) |
+ SET_BITS(regAUDIO_TX, AMC2EN,
+ 1) | SET_BITS(regAUDIO_TX,
+ ATXINEN, 1);
+ reg_write |=
+ SET_BITS(regAUDIO_TX, AMC1REN,
+ 0) | SET_BITS(regAUDIO_TX,
+ RXINREC,
+ 0) |
+ SET_BITS(regAUDIO_TX, AMC2EN,
+ 0) | SET_BITS(regAUDIO_TX,
+ ATXINEN, 0);
+ } else {
+ /* Both are in same state . Nothing to be done */
+ }
+ }
+ if (reg_mask == 0) {
+ } else {
+ rc = pmic_write_reg(REG_AUDIO_TX,
+ reg_write, reg_mask);
+
+ if (rc == PMIC_SUCCESS) {
+ pr_debug
+ ("MIC states configured successfully\n");
+ vCodec.leftChannelMic.micOnOff =
+ leftChannel;
+ vCodec.rightChannelMic.micOnOff =
+ rightChannel;
+ }
+ }
+ }
+
+ }
+
+ /* Exit the critical section. */
+ up(&mutex);
+
+ return rc;
+}
+
+/*!
+ * @brief Return the current state of the microphone inputs.
+ *
+ * This function returns the current state (on/off) of the microphone
+ * input channels.
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ * @param leftChannel The current left microphone input channel
+ * state.
+ * @param rightChannel the current right microphone input channel
+ * state.
+ *
+ * @retval PMIC_SUCCESS If the microphone input channel states
+ * were successfully retrieved.
+ * @retval PMIC_PARAMETER_ERROR If the handle was invalid.
+ * @retval PMIC_ERROR If the microphone input channel states
+ * could not be retrieved.
+ */
+PMIC_STATUS pmic_audio_vcodec_get_mic_on_off(const PMIC_AUDIO_HANDLE handle,
+ PMIC_AUDIO_INPUT_MIC_STATE *
+ const leftChannel,
+ PMIC_AUDIO_INPUT_MIC_STATE *
+ const rightChannel)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+
+ /* Use a critical section to ensure a consistent hardware state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ if ((handle == vCodec.handle) &&
+ (vCodec.handleState == HANDLE_IN_USE) &&
+ (leftChannel != (PMIC_AUDIO_INPUT_MIC_STATE *) NULL) &&
+ (rightChannel != (PMIC_AUDIO_INPUT_MIC_STATE *) NULL)) {
+ *leftChannel = vCodec.leftChannelMic.micOnOff;
+ *rightChannel = vCodec.rightChannelMic.micOnOff;
+
+ rc = PMIC_SUCCESS;
+ }
+
+ /* Exit the critical section. */
+ up(&mutex);
+
+ return rc;
+}
+
+/*!
+ * @brief Set the microphone input amplifier mode and gain level.
+ *
+ * This function sets the current microphone input amplifier operating mode
+ * and gain level.
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ * @param leftChannelMode The left microphone input amplifier mode.
+ * @param leftChannelGain The left microphone input amplifier gain level.
+ * @param rightChannelMode The right microphone input amplifier mode.
+ * @param rightChannelGain The right microphone input amplifier gain
+ * level.
+ *
+ * @retval PMIC_SUCCESS If the microphone input amplifiers were
+ * successfully reconfigured.
+ * @retval PMIC_PARAMETER_ERROR If the handle or microphone input amplifier
+ * modes or gain levels were invalid.
+ * @retval PMIC_ERROR If the microphone input amplifiers could
+ * not be reconfigured.
+ */
+PMIC_STATUS pmic_audio_vcodec_set_record_gain(const PMIC_AUDIO_HANDLE handle,
+ const PMIC_AUDIO_MIC_AMP_MODE
+ leftChannelMode,
+ const PMIC_AUDIO_MIC_GAIN
+ leftChannelGain,
+ const PMIC_AUDIO_MIC_AMP_MODE
+ rightChannelMode,
+ const PMIC_AUDIO_MIC_GAIN
+ rightChannelGain)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+ unsigned int reg_write = 0;
+ unsigned int reg_mask = 0;
+
+ /* Use a critical section to ensure a consistent hardware state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ if ((handle == vCodec.handle) && (vCodec.handleState == HANDLE_IN_USE)) {
+ if (!(((leftChannelGain >= MIC_GAIN_MINUS_8DB)
+ && (leftChannelGain <= MIC_GAIN_PLUS_23DB))
+ && ((rightChannelGain >= MIC_GAIN_MINUS_8DB)
+ && (rightChannelGain <= MIC_GAIN_PLUS_23DB)))) {
+ rc = PMIC_PARAMETER_ERROR;
+ pr_debug("VCODEC set record gain - wrong gain value\n");
+ } else if (((leftChannelMode != AMP_OFF)
+ && (leftChannelMode != VOLTAGE_TO_VOLTAGE)
+ && (leftChannelMode != CURRENT_TO_VOLTAGE))
+ || ((rightChannelMode != VOLTAGE_TO_VOLTAGE)
+ && (rightChannelMode != CURRENT_TO_VOLTAGE)
+ && (rightChannelMode != AMP_OFF))) {
+ rc = PMIC_PARAMETER_ERROR;
+ pr_debug("VCODEC set record gain - wrong amp mode\n");
+ } else {
+ if (vCodec.leftChannelMic.mic == MIC1_LEFT) {
+ reg_mask = SET_BITS(regAUDIO_TX, AMC1LITOV, 1) |
+ SET_BITS(regAUDIO_TX, PGATXL, 31);
+ if (leftChannelMode == VOLTAGE_TO_VOLTAGE) {
+ reg_write =
+ SET_BITS(regAUDIO_TX, AMC1LITOV, 0);
+ } else {
+ reg_write =
+ SET_BITS(regAUDIO_TX, AMC1LITOV, 1);
+ }
+ reg_write |=
+ SET_BITS(regAUDIO_TX, PGATXL,
+ leftChannelGain);
+ }
+ if (vCodec.rightChannelMic.mic == MIC1_RIGHT_MIC_MONO) {
+ reg_mask |=
+ SET_BITS(regAUDIO_TX, AMC1RITOV,
+ 1) | SET_BITS(regAUDIO_TX, PGATXR,
+ 31);
+ if (rightChannelMode == VOLTAGE_TO_VOLTAGE) {
+ reg_write |=
+ SET_BITS(regAUDIO_TX, AMC1RITOV, 0);
+ } else {
+ reg_write |=
+ SET_BITS(regAUDIO_TX, AMC1RITOV, 1);
+ }
+ reg_write |=
+ SET_BITS(regAUDIO_TX, PGATXR,
+ rightChannelGain);
+ } else if (vCodec.rightChannelMic.mic == MIC2_AUX) {
+ reg_mask |= SET_BITS(regAUDIO_TX, AMC2ITOV, 1);
+ reg_mask |= SET_BITS(regAUDIO_TX, PGATXR, 31);
+ if (rightChannelMode == VOLTAGE_TO_VOLTAGE) {
+ reg_write |=
+ SET_BITS(regAUDIO_TX, AMC2ITOV, 0);
+ } else {
+ reg_write |=
+ SET_BITS(regAUDIO_TX, AMC2ITOV, 1);
+ }
+ reg_write |=
+ SET_BITS(regAUDIO_TX, PGATXR,
+ rightChannelGain);
+ } else if (vCodec.rightChannelMic.mic == TXIN_EXT) {
+ reg_mask |= SET_BITS(regAUDIO_TX, PGATXR, 31);
+ /* No current to voltage option for TX IN amplifier */
+ reg_write |=
+ SET_BITS(regAUDIO_TX, PGATXR,
+ rightChannelGain);
+ }
+
+ if (reg_mask == 0) {
+ } else {
+ rc = pmic_write_reg(REG_AUDIO_TX,
+ reg_write, reg_mask);
+ reg_write =
+ SET_BITS(regAUDIO_TX, PGATXL,
+ leftChannelGain);
+ reg_mask = SET_BITS(regAUDIO_TX, PGATXL, 31);
+ rc = pmic_write_reg(REG_AUDIO_TX,
+ reg_write, reg_mask);
+
+ if (rc == PMIC_SUCCESS) {
+ pr_debug("MIC amp mode and gain set\n");
+ vCodec.leftChannelMic.ampMode =
+ leftChannelMode;
+ vCodec.leftChannelMic.gain =
+ leftChannelGain;
+ vCodec.rightChannelMic.ampMode =
+ rightChannelMode;
+ vCodec.rightChannelMic.gain =
+ rightChannelGain;
+
+ }
+ }
+ }
+ }
+
+ /* Exit critical section. */
+ up(&mutex);
+
+ return rc;
+}
+
+/*!
+ * @brief Get the current microphone input amplifier mode and gain level.
+ *
+ * This function gets the current microphone input amplifier operating mode
+ * and gain level.
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ * @param leftChannelMode The left microphone input amplifier mode.
+ * @param leftChannelGain The left microphone input amplifier gain level.
+ * @param rightChannelMode The right microphone input amplifier mode.
+ * @param rightChannelGain The right microphone input amplifier gain
+ * level.
+ *
+ * @retval PMIC_SUCCESS If the microphone input amplifier modes
+ * and gain levels were successfully
+ * retrieved.
+ * @retval PMIC_PARAMETER_ERROR If the handle was invalid.
+ * @retval PMIC_ERROR If the microphone input amplifier modes
+ * and gain levels could not be retrieved.
+ */
+PMIC_STATUS pmic_audio_vcodec_get_record_gain(const PMIC_AUDIO_HANDLE handle,
+ PMIC_AUDIO_MIC_AMP_MODE *
+ const leftChannelMode,
+ PMIC_AUDIO_MIC_GAIN *
+ const leftChannelGain,
+ PMIC_AUDIO_MIC_AMP_MODE *
+ const rightChannelMode,
+ PMIC_AUDIO_MIC_GAIN *
+ const rightChannelGain)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+
+ /* Use a critical section to ensure a consistent hardware state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ if ((handle == vCodec.handle) &&
+ (vCodec.handleState == HANDLE_IN_USE) &&
+ (leftChannelMode != (PMIC_AUDIO_MIC_AMP_MODE *) NULL) &&
+ (leftChannelGain != (PMIC_AUDIO_MIC_GAIN *) NULL) &&
+ (rightChannelMode != (PMIC_AUDIO_MIC_AMP_MODE *) NULL) &&
+ (rightChannelGain != (PMIC_AUDIO_MIC_GAIN *) NULL)) {
+ *leftChannelMode = vCodec.leftChannelMic.ampMode;
+ *leftChannelGain = vCodec.leftChannelMic.gain;
+ *rightChannelMode = vCodec.rightChannelMic.ampMode;
+ *rightChannelGain = vCodec.rightChannelMic.gain;
+
+ rc = PMIC_SUCCESS;
+ }
+
+ /* Exit the critical section. */
+ up(&mutex);
+
+ return rc;
+}
+
+/*!
+ * @brief Enable a microphone bias circuit.
+ *
+ * This function enables one of the available microphone bias circuits.
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ * @param biasCircuit The microphone bias circuit to be enabled.
+ *
+ * @retval PMIC_SUCCESS If the microphone bias circuit was
+ * successfully enabled.
+ * @retval PMIC_PARAMETER_ERROR If the handle or selected microphone bias
+ * circuit was invalid.
+ * @retval PMIC_ERROR If the microphone bias circuit could not
+ * be enabled.
+ */
+PMIC_STATUS pmic_audio_vcodec_enable_micbias(const PMIC_AUDIO_HANDLE handle,
+ const PMIC_AUDIO_MIC_BIAS
+ biasCircuit)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+ unsigned int reg_write = 0;
+ unsigned int reg_mask = 0;
+
+ /* No critical section required here since we are not updating any
+ * global data.
+ */
+
+ if ((handle == vCodec.handle) && (vCodec.handleState == HANDLE_IN_USE)) {
+ if (biasCircuit & MIC_BIAS1) {
+ reg_write = SET_BITS(regAUDIO_TX, MC1BEN, 1);
+ reg_mask = SET_BITS(regAUDIO_TX, MC1BEN, 1);
+ }
+ if (biasCircuit & MIC_BIAS2) {
+ reg_write |= SET_BITS(regAUDIO_TX, MC2BEN, 1);
+ reg_mask |= SET_BITS(regAUDIO_TX, MC2BEN, 1);
+ }
+ if (reg_mask != 0) {
+ rc = pmic_write_reg(REG_AUDIO_TX, reg_write, reg_mask);
+ }
+ }
+
+ return rc;
+}
+
+/*!
+ * @brief Disable a microphone bias circuit.
+ *
+ * This function disables one of the available microphone bias circuits.
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ * @param biasCircuit The microphone bias circuit to be disabled.
+ *
+ * @retval PMIC_SUCCESS If the microphone bias circuit was
+ * successfully disabled.
+ * @retval PMIC_PARAMETER_ERROR If the handle or selected microphone bias
+ * circuit was invalid.
+ * @retval PMIC_ERROR If the microphone bias circuit could not
+ * be disabled.
+ */
+PMIC_STATUS pmic_audio_vcodec_disable_micbias(const PMIC_AUDIO_HANDLE handle,
+ const PMIC_AUDIO_MIC_BIAS
+ biasCircuit)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+ unsigned int reg_write = 0;
+ unsigned int reg_mask = 0;
+
+ /* No critical section required here since we are not updating any
+ * global data.
+ */
+
+ if ((handle == vCodec.handle) && (vCodec.handleState == HANDLE_IN_USE)) {
+ if (biasCircuit & MIC_BIAS1) {
+ reg_mask = SET_BITS(regAUDIO_TX, MC1BEN, 1);
+ }
+
+ if (biasCircuit & MIC_BIAS2) {
+ reg_mask |= SET_BITS(regAUDIO_TX, MC2BEN, 1);
+ }
+
+ if (reg_mask != 0) {
+ rc = pmic_write_reg(REG_AUDIO_TX, reg_write, reg_mask);
+ }
+ }
+
+ return rc;
+}
+
+/*@}*/
+
+/*************************************************************************
+ * Audio Playback Using the Voice CODEC.
+ *************************************************************************
+ */
+
+/*!
+ * @name Audio Playback Using the Voice CODEC Setup and Configuration APIs
+ * Functions for general setup and configuration of the PMIC Voice CODEC
+ * to perform audio playback.
+ */
+/*@{*/
+
+/*!
+ * @brief Configure and enable the Voice CODEC mixer.
+ *
+ * This function configures and enables the Voice CODEC mixer.
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ * @param rxSecondaryTimeslot The timeslot used for the secondary audio
+ * channel.
+ * @param gainIn The secondary audio channel gain level.
+ * @param gainOut The mixer output gain level.
+ *
+ * @retval PMIC_SUCCESS If the Voice CODEC mixer was successfully
+ * configured and enabled.
+ * @retval PMIC_PARAMETER_ERROR If the handle or mixer configuration
+ * was invalid.
+ * @retval PMIC_ERROR If the Voice CODEC mixer could not be
+ * reconfigured or enabled.
+ */
+PMIC_STATUS pmic_audio_vcodec_enable_mixer(const PMIC_AUDIO_HANDLE handle,
+ const PMIC_AUDIO_VCODEC_TIMESLOT
+ rxSecondaryTimeslot,
+ const PMIC_AUDIO_VCODEC_MIX_IN_GAIN
+ gainIn,
+ const PMIC_AUDIO_VCODEC_MIX_OUT_GAIN
+ gainOut)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+ unsigned int reg_write = 0;
+ unsigned int reg_mask = 0;
+
+ /* No critical section required here since we are not updating any
+ * global data.
+ */
+
+ if ((handle == vCodec.handle) && (vCodec.handleState == HANDLE_IN_USE)) {
+ if (!((rxSecondaryTimeslot >= USE_TS0)
+ && (rxSecondaryTimeslot <= USE_TS3))) {
+ pr_debug
+ ("VCODEC enable mixer - wrong sec rx timeslot\n");
+ } else if (!((gainIn >= VCODEC_NO_MIX)
+ && (gainIn <= VCODEC_MIX_IN_MINUS_12DB))) {
+ pr_debug("VCODEC enable mixer - wrong mix in gain\n");
+
+ } else if (!((gainOut >= VCODEC_MIX_OUT_0DB)
+ && (gainOut <= VCODEC_MIX_OUT_MINUS_6DB))) {
+ pr_debug("VCODEC enable mixer - wrong mix out gain\n");
+ } else {
+
+ reg_mask = SET_BITS(regSSI_NETWORK, CDCRXSECSLOT, 3) |
+ SET_BITS(regSSI_NETWORK, CDCRXSECGAIN, 3) |
+ SET_BITS(regSSI_NETWORK, CDCSUMGAIN, 1);
+ reg_write =
+ SET_BITS(regSSI_NETWORK, CDCRXSECSLOT,
+ rxSecondaryTimeslot) |
+ SET_BITS(regSSI_NETWORK, CDCRXSECGAIN,
+ gainIn) | SET_BITS(regSSI_NETWORK,
+ CDCSUMGAIN, gainOut);
+ rc = pmic_write_reg(REG_AUDIO_SSI_NETWORK,
+ reg_write, reg_mask);
+ if (rc == PMIC_SUCCESS) {
+ pr_debug("Vcodec mixer enabled\n");
+ }
+ }
+ }
+
+ return rc;
+}
+
+/*!
+ * @brief Disable the Voice CODEC mixer.
+ *
+ * This function disables the Voice CODEC mixer.
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ *
+ * @retval PMIC_SUCCESS If the Voice CODEC mixer was successfully
+ * disabled.
+ * @retval PMIC_PARAMETER_ERROR If the handle was invalid.
+ * @retval PMIC_ERROR If the Voice CODEC mixer could not be
+ * disabled.
+ */
+PMIC_STATUS pmic_audio_vcodec_disable_mixer(const PMIC_AUDIO_HANDLE handle)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+ unsigned int reg_mask;
+
+ if ((handle == vCodec.handle) && (vCodec.handleState == HANDLE_IN_USE)) {
+ reg_mask = SET_BITS(regSSI_NETWORK, CDCRXSECGAIN, 1);
+ rc = pmic_write_reg(REG_AUDIO_SSI_NETWORK,
+ VCODEC_NO_MIX, reg_mask);
+
+ if (rc == PMIC_SUCCESS) {
+ pr_debug("Vcodec mixer disabled\n");
+ }
+
+ }
+
+ return rc;
+}
+
+/*@}*/
+
+/*************************************************************************
+ * Audio Playback Using the Stereo DAC.
+ *************************************************************************
+ */
+
+/*!
+ * @name Audio Playback Using the Stereo DAC Setup and Configuration APIs
+ * Functions for general setup and configuration of the PMIC Stereo DAC
+ * to perform audio playback.
+ */
+/*@{*/
+
+/*!
+ * @brief Configure and enable the Stereo DAC mixer.
+ *
+ * This function configures and enables the Stereo DAC mixer.
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ * @param rxSecondaryTimeslot The timeslot used for the secondary audio
+ * channel.
+ * @param gainIn The secondary audio channel gain level.
+ * @param gainOut The mixer output gain level.
+ *
+ * @retval PMIC_SUCCESS If the Stereo DAC mixer was successfully
+ * configured and enabled.
+ * @retval PMIC_PARAMETER_ERROR If the handle or mixer configuration
+ * was invalid.
+ * @retval PMIC_ERROR If the Stereo DAC mixer could not be
+ * reconfigured or enabled.
+ */
+PMIC_STATUS pmic_audio_stdac_enable_mixer(const PMIC_AUDIO_HANDLE handle,
+ const PMIC_AUDIO_STDAC_TIMESLOTS
+ rxSecondaryTimeslot,
+ const PMIC_AUDIO_STDAC_MIX_IN_GAIN
+ gainIn,
+ const PMIC_AUDIO_STDAC_MIX_OUT_GAIN
+ gainOut)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+ unsigned int reg_write = 0;
+ unsigned int reg_mask = 0;
+
+ /* No critical section required here since we are not updating any
+ * global data.
+ */
+
+ if ((handle == stDAC.handle) && (stDAC.handleState == HANDLE_IN_USE)) {
+ if (!((rxSecondaryTimeslot >= USE_TS0_TS1)
+ && (rxSecondaryTimeslot <= USE_TS6_TS7))) {
+ rc = PMIC_PARAMETER_ERROR;
+ pr_debug("STDAC enable mixer - wrong sec timeslot\n");
+ } else if (!((gainIn >= STDAC_NO_MIX)
+ && (gainIn <= STDAC_MIX_IN_MINUS_12DB))) {
+ rc = PMIC_PARAMETER_ERROR;
+ pr_debug("STDAC enable mixer - wrong mix in gain\n");
+ } else if (!((gainOut >= STDAC_MIX_OUT_0DB)
+ && (gainOut <= STDAC_MIX_OUT_MINUS_6DB))) {
+ rc = PMIC_PARAMETER_ERROR;
+ pr_debug("STDAC enable mixer - wrong mix out gain\n");
+ } else {
+
+ reg_mask = SET_BITS(regSSI_NETWORK, STDCRXSECSLOT, 3) |
+ SET_BITS(regSSI_NETWORK, STDCRXSECGAIN, 3) |
+ SET_BITS(regSSI_NETWORK, STDCSUMGAIN, 1);
+ reg_write =
+ SET_BITS(regSSI_NETWORK, STDCRXSECSLOT,
+ rxSecondaryTimeslot) |
+ SET_BITS(regSSI_NETWORK, STDCRXSECGAIN,
+ gainIn) | SET_BITS(regSSI_NETWORK,
+ STDCSUMGAIN, gainOut);
+ rc = pmic_write_reg(REG_AUDIO_SSI_NETWORK,
+ reg_write, reg_mask);
+ if (rc == PMIC_SUCCESS) {
+ pr_debug("STDAC mixer enabled\n");
+ }
+ }
+
+ }
+
+ return rc;
+}
+
+/*!
+ * @brief Disable the Stereo DAC mixer.
+ *
+ * This function disables the Stereo DAC mixer.
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ *
+ * @retval PMIC_SUCCESS If the Stereo DAC mixer was successfully
+ * disabled.
+ * @retval PMIC_PARAMETER_ERROR If the handle was invalid.
+ * @retval PMIC_ERROR If the Stereo DAC mixer could not be
+ * disabled.
+ */
+PMIC_STATUS pmic_audio_stdac_disable_mixer(const PMIC_AUDIO_HANDLE handle)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+ const unsigned int reg_write = 0;
+ const unsigned int reg_mask =
+ SET_BITS(regSSI_NETWORK, STDCRXSECGAIN, 1);
+
+ /* No critical section required here since we are not updating any
+ * global data.
+ */
+
+ if ((handle == stDAC.handle) && (stDAC.handleState == HANDLE_IN_USE)) {
+ rc = pmic_write_reg(REG_AUDIO_SSI_NETWORK, reg_write, reg_mask);
+ }
+
+ return rc;
+}
+
+/*@}*/
+
+/*************************************************************************
+ * Audio Output Control
+ *************************************************************************
+ */
+
+/*!
+ * @name Audio Output Section Setup and Configuration APIs
+ * Functions for general setup and configuration of the PMIC audio output
+ * section to support playback.
+ */
+/*@{*/
+
+/*!
+ * @brief Select the audio output ports.
+ *
+ * This function selects the audio output ports to be used. This also enables
+ * the appropriate output amplifiers.
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ * @param port The audio output ports to be used.
+ *
+ * @retval PMIC_SUCCESS If the audio output ports were successfully
+ * acquired.
+ * @retval PMIC_PARAMETER_ERROR If the handle or output ports were
+ * invalid.
+ * @retval PMIC_ERROR If the audio output ports could not be
+ * acquired.
+ */
+PMIC_STATUS pmic_audio_output_set_port(const PMIC_AUDIO_HANDLE handle,
+ const PMIC_AUDIO_OUTPUT_PORT port)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+ unsigned int reg_write = 0;
+ unsigned int reg_mask = 0;
+
+ /* Use a critical section to ensure a consistent hardware state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ if ((port == MONO_ALERT) || (port == MONO_EXTOUT)) {
+ rc = PMIC_NOT_SUPPORTED;
+ } else {
+ if (((handle == stDAC.handle)
+ && (stDAC.handleState == HANDLE_IN_USE))
+ || ((handle == extStereoIn.handle)
+ && (extStereoIn.handleState == HANDLE_IN_USE))
+ || ((handle == vCodec.handle)
+ && (vCodec.handleState == HANDLE_IN_USE)
+ && (audioOutput.vCodecOut == VCODEC_MIXER_OUT))) {
+ /* Stereo signal and MIXER source needs to be routed to the port
+ / Avoid Codec direct out */
+
+ if (port & MONO_SPEAKER) {
+ reg_mask = SET_BITS(regAUDIO_RX_0, ASPEN, 1) |
+ SET_BITS(regAUDIO_RX_0, ASPSEL, 1);
+ reg_write = SET_BITS(regAUDIO_RX_0, ASPEN, 1) |
+ SET_BITS(regAUDIO_RX_0, ASPSEL, 1);
+ }
+ if (port & MONO_LOUDSPEAKER) {
+ reg_mask |= SET_BITS(regAUDIO_RX_0, ALSPEN, 1) |
+ SET_BITS(regAUDIO_RX_0, ALSPREF, 1) |
+ SET_BITS(regAUDIO_RX_0, ALSPSEL, 1);
+ reg_write |=
+ SET_BITS(regAUDIO_RX_0, ALSPEN,
+ 1) | SET_BITS(regAUDIO_RX_0,
+ ALSPREF,
+ 1) |
+ SET_BITS(regAUDIO_RX_0, ALSPSEL, 1);
+ }
+ if (port & STEREO_HEADSET_LEFT) {
+ reg_mask |= SET_BITS(regAUDIO_RX_0, AHSLEN, 1) |
+ SET_BITS(regAUDIO_RX_0, AHSSEL, 1);
+ reg_write |=
+ SET_BITS(regAUDIO_RX_0, AHSLEN,
+ 1) | SET_BITS(regAUDIO_RX_0,
+ AHSSEL, 1);
+ }
+ if (port & STEREO_HEADSET_RIGHT) {
+ reg_mask |= SET_BITS(regAUDIO_RX_0, AHSREN, 1) |
+ SET_BITS(regAUDIO_RX_0, AHSSEL, 1);
+ reg_write |=
+ SET_BITS(regAUDIO_RX_0, AHSREN,
+ 1) | SET_BITS(regAUDIO_RX_0,
+ AHSSEL, 1);
+ }
+ if (port & STEREO_OUT_LEFT) {
+ reg_mask |=
+ SET_BITS(regAUDIO_RX_0, ARXOUTLEN,
+ 1) | SET_BITS(regAUDIO_RX_0,
+ ARXOUTSEL, 1);
+ reg_write |=
+ SET_BITS(regAUDIO_RX_0, ARXOUTLEN,
+ 1) | SET_BITS(regAUDIO_RX_0,
+ ARXOUTSEL, 1);
+ }
+ if (port & STEREO_OUT_RIGHT) {
+ reg_mask |=
+ SET_BITS(regAUDIO_RX_0, ARXOUTREN,
+ 1) | SET_BITS(regAUDIO_RX_0,
+ ARXOUTSEL, 1);
+ reg_write |=
+ SET_BITS(regAUDIO_RX_0, ARXOUTREN,
+ 1) | SET_BITS(regAUDIO_RX_0,
+ ARXOUTSEL, 1);
+ }
+ if (port & STEREO_LEFT_LOW_POWER) {
+ reg_mask |= SET_BITS(regAUDIO_RX_0, LSPLEN, 1);
+
+ reg_write |= SET_BITS(regAUDIO_RX_0, LSPLEN, 1);
+ }
+ } else if ((handle == vCodec.handle)
+ && (vCodec.handleState == HANDLE_IN_USE)
+ && (audioOutput.vCodecOut == VCODEC_DIRECT_OUT)) {
+ if (port & MONO_SPEAKER) {
+ reg_mask = SET_BITS(regAUDIO_RX_0, ASPEN, 1) |
+ SET_BITS(regAUDIO_RX_0, ASPSEL, 1);
+ reg_write = SET_BITS(regAUDIO_RX_0, ASPEN, 1) |
+ SET_BITS(regAUDIO_RX_0, ASPSEL, 0);
+ }
+ if (port & MONO_LOUDSPEAKER) {
+ reg_mask |= SET_BITS(regAUDIO_RX_0, ALSPEN, 1) |
+ SET_BITS(regAUDIO_RX_0, ALSPREF, 1) |
+ SET_BITS(regAUDIO_RX_0, ALSPSEL, 1);
+ reg_write |=
+ SET_BITS(regAUDIO_RX_0, ALSPEN,
+ 1) | SET_BITS(regAUDIO_RX_0,
+ ALSPREF,
+ 1) |
+ SET_BITS(regAUDIO_RX_0, ALSPSEL, 0);
+ }
+
+ if (port & STEREO_HEADSET_LEFT) {
+ reg_mask |= SET_BITS(regAUDIO_RX_0, AHSLEN, 1) |
+ SET_BITS(regAUDIO_RX_0, AHSSEL, 1);
+ reg_write |=
+ SET_BITS(regAUDIO_RX_0, AHSLEN,
+ 1) | SET_BITS(regAUDIO_RX_0,
+ AHSSEL, 0);
+ }
+ if (port & STEREO_HEADSET_RIGHT) {
+ reg_mask |= SET_BITS(regAUDIO_RX_0, AHSREN, 1) |
+ SET_BITS(regAUDIO_RX_0, AHSSEL, 1);
+ reg_write |=
+ SET_BITS(regAUDIO_RX_0, AHSREN,
+ 1) | SET_BITS(regAUDIO_RX_0,
+ AHSSEL, 0);
+ }
+ if (port & STEREO_OUT_LEFT) {
+ reg_mask |=
+ SET_BITS(regAUDIO_RX_0, ARXOUTLEN,
+ 1) | SET_BITS(regAUDIO_RX_0,
+ ARXOUTSEL, 1);
+ reg_write |=
+ SET_BITS(regAUDIO_RX_0, ARXOUTLEN,
+ 1) | SET_BITS(regAUDIO_RX_0,
+ ARXOUTSEL, 0);
+ }
+ if (port & STEREO_OUT_RIGHT) {
+ reg_mask |=
+ SET_BITS(regAUDIO_RX_0, ARXOUTREN,
+ 1) | SET_BITS(regAUDIO_RX_0,
+ ARXOUTSEL, 1);
+ reg_write |=
+ SET_BITS(regAUDIO_RX_0, ARXOUTREN,
+ 1) | SET_BITS(regAUDIO_RX_0,
+ ARXOUTSEL, 0);
+ }
+ if (port & MONO_CDCOUT) {
+ reg_mask |=
+ SET_BITS(regAUDIO_RX_0, CDCOUTEN, 1);
+
+ reg_write |=
+ SET_BITS(regAUDIO_RX_0, CDCOUTEN, 1);
+ }
+ }
+
+ if (reg_mask == 0) {
+
+ } else {
+ rc = pmic_write_reg(REG_AUDIO_RX_0,
+ reg_write, reg_mask);
+
+ if (rc == PMIC_SUCCESS) {
+ pr_debug("output ports enabled\n");
+ audioOutput.outputPort = port;
+
+ }
+ }
+ }
+ /* Exit the critical section. */
+ up(&mutex);
+
+ return rc;
+}
+
+/*!
+ * @brief Deselect/disable the audio output ports.
+ *
+ * This function disables the audio output ports that were previously enabled
+ * by calling pmic_audio_output_set_port().
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ * @param port The audio output ports to be disabled.
+ *
+ * @retval PMIC_SUCCESS If the audio output ports were successfully
+ * disabled.
+ * @retval PMIC_PARAMETER_ERROR If the handle or output ports were
+ * invalid.
+ * @retval PMIC_ERROR If the audio output ports could not be
+ * disabled.
+ */
+PMIC_STATUS pmic_audio_output_clear_port(const PMIC_AUDIO_HANDLE handle,
+ const PMIC_AUDIO_OUTPUT_PORT port)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+ unsigned int reg_write = 0;
+ unsigned int reg_mask = 0;
+
+ /* Use a critical section to ensure a consistent hardware state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ if ((port == MONO_ALERT) || (port == MONO_EXTOUT)) {
+ rc = PMIC_NOT_SUPPORTED;
+ } else {
+ if (((handle == stDAC.handle)
+ && (stDAC.handleState == HANDLE_IN_USE))
+ || ((handle == extStereoIn.handle)
+ && (extStereoIn.handleState == HANDLE_IN_USE))
+ || ((handle == vCodec.handle)
+ && (vCodec.handleState == HANDLE_IN_USE)
+ && (audioOutput.vCodecOut == VCODEC_MIXER_OUT))) {
+ /* Stereo signal and MIXER source needs to be routed to the port /
+ Avoid Codec direct out */
+ if (port & MONO_SPEAKER) {
+ reg_mask = SET_BITS(regAUDIO_RX_0, ASPEN, 1);
+ reg_write = SET_BITS(regAUDIO_RX_0, ASPEN, 0);
+ }
+ if (port & MONO_LOUDSPEAKER) {
+ reg_mask |= SET_BITS(regAUDIO_RX_0, ALSPEN, 1) |
+ SET_BITS(regAUDIO_RX_0, ALSPREF, 1);
+
+ reg_write |=
+ SET_BITS(regAUDIO_RX_0, ALSPEN,
+ 0) | SET_BITS(regAUDIO_RX_0,
+ ALSPREF, 0);
+
+ }
+ if (port & STEREO_HEADSET_LEFT) {
+ reg_mask |= SET_BITS(regAUDIO_RX_0, AHSLEN, 1);
+ reg_write |= SET_BITS(regAUDIO_RX_0, AHSLEN, 0);
+ }
+ if (port & STEREO_HEADSET_RIGHT) {
+ reg_mask |= SET_BITS(regAUDIO_RX_0, AHSREN, 1);
+ reg_write |= SET_BITS(regAUDIO_RX_0, AHSREN, 0);
+ }
+ if (port & STEREO_OUT_LEFT) {
+ reg_mask |=
+ SET_BITS(regAUDIO_RX_0, ARXOUTLEN, 1);
+ reg_write |=
+ SET_BITS(regAUDIO_RX_0, ARXOUTLEN, 0);
+ }
+ if (port & STEREO_OUT_RIGHT) {
+ reg_mask |=
+ SET_BITS(regAUDIO_RX_0, ARXOUTREN, 1);
+ reg_write |=
+ SET_BITS(regAUDIO_RX_0, ARXOUTREN, 0);
+ }
+ if (port & STEREO_LEFT_LOW_POWER) {
+ reg_mask |= SET_BITS(regAUDIO_RX_0, LSPLEN, 1);
+ reg_write |= SET_BITS(regAUDIO_RX_0, LSPLEN, 0);
+ }
+ } else if ((handle == vCodec.handle)
+ && (vCodec.handleState == HANDLE_IN_USE)
+ && (audioOutput.vCodecOut == VCODEC_DIRECT_OUT)) {
+ if (port & MONO_SPEAKER) {
+ reg_mask = SET_BITS(regAUDIO_RX_0, ASPEN, 1);
+ reg_write = SET_BITS(regAUDIO_RX_0, ASPEN, 0);
+ }
+ if (port & MONO_LOUDSPEAKER) {
+ reg_mask |= SET_BITS(regAUDIO_RX_0, ALSPEN, 1) |
+ SET_BITS(regAUDIO_RX_0, ALSPREF, 1);
+ reg_write |=
+ SET_BITS(regAUDIO_RX_0, ALSPEN,
+ 0) | SET_BITS(regAUDIO_RX_0,
+ ALSPREF, 0);
+ }
+ if (port & STEREO_HEADSET_LEFT) {
+ reg_mask |= SET_BITS(regAUDIO_RX_0, AHSLEN, 1);
+ reg_write |= SET_BITS(regAUDIO_RX_0, AHSLEN, 0);
+ }
+ if (port & STEREO_HEADSET_RIGHT) {
+ reg_mask |= SET_BITS(regAUDIO_RX_0, AHSREN, 1);
+ reg_write |= SET_BITS(regAUDIO_RX_0, AHSREN, 0);
+ }
+ if (port & STEREO_OUT_LEFT) {
+ reg_mask |=
+ SET_BITS(regAUDIO_RX_0, ARXOUTLEN, 1);
+ reg_write |=
+ SET_BITS(regAUDIO_RX_0, ARXOUTLEN, 0);
+ }
+ if (port & STEREO_OUT_RIGHT) {
+ reg_mask |=
+ SET_BITS(regAUDIO_RX_0, ARXOUTREN, 1);
+ reg_write |=
+ SET_BITS(regAUDIO_RX_0, ARXOUTREN, 0);
+ }
+ if (port & MONO_CDCOUT) {
+ reg_mask |=
+ SET_BITS(regAUDIO_RX_0, CDCOUTEN, 1);
+ reg_write |=
+ SET_BITS(regAUDIO_RX_0, CDCOUTEN, 0);
+ }
+ }
+#ifdef CONFIG_HEADSET_DETECT_ENABLE
+
+ if (port & STEREO_HEADSET_LEFT) {
+ reg_mask |= SET_BITS(regAUDIO_RX_0, AHSLEN, 1);
+ reg_write |= SET_BITS(regAUDIO_RX_0, AHSLEN, 0);
+ }
+ if (port & STEREO_HEADSET_RIGHT) {
+ reg_mask |= SET_BITS(regAUDIO_RX_0, AHSREN, 1);
+ reg_write |= SET_BITS(regAUDIO_RX_0, AHSREN, 0);
+ }
+#endif
+
+ if (reg_mask == 0) {
+
+ } else {
+ rc = pmic_write_reg(REG_AUDIO_RX_0,
+ reg_write, reg_mask);
+ if (rc == PMIC_SUCCESS) {
+ pr_debug("output ports disabled\n");
+ audioOutput.outputPort &= ~port;
+ }
+ }
+ }
+
+ /* Exit the critical section. */
+ up(&mutex);
+
+ return rc;
+}
+
+/*!
+ * @brief Get the current audio output ports.
+ *
+ * This function retrieves the audio output ports that are currently being
+ * used.
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ * @param port The audio output ports currently being used.
+ *
+ * @retval PMIC_SUCCESS If the audio output ports were successfully
+ * retrieved.
+ * @retval PMIC_PARAMETER_ERROR If the handle was invalid.
+ * @retval PMIC_ERROR If the audio output ports could not be
+ * retrieved.
+ */
+PMIC_STATUS pmic_audio_output_get_port(const PMIC_AUDIO_HANDLE handle,
+ PMIC_AUDIO_OUTPUT_PORT * const port)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+
+ /* Use a critical section to ensure a consistent hardware state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ if ((((handle == stDAC.handle) &&
+ (stDAC.handleState == HANDLE_IN_USE)) ||
+ ((handle == vCodec.handle) &&
+ (vCodec.handleState == HANDLE_IN_USE)) ||
+ ((handle == extStereoIn.handle) &&
+ (extStereoIn.handleState == HANDLE_IN_USE))) &&
+ (port != (PMIC_AUDIO_OUTPUT_PORT *) NULL)) {
+ *port = audioOutput.outputPort;
+
+ rc = PMIC_SUCCESS;
+ }
+
+ /* Exit the critical section. */
+ up(&mutex);
+
+ return rc;
+}
+
+/*!
+ * @brief Set the gain level for the external stereo inputs.
+ *
+ * This function sets the gain levels for the external stereo inputs.
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ * @param gain The external stereo input gain level.
+ *
+ * @retval PMIC_SUCCESS If the gain level was successfully set.
+ * @retval PMIC_PARAMETER_ERROR If the handle or gain level was invalid.
+ * @retval PMIC_ERROR If the gain level could not be set.
+ */
+PMIC_STATUS pmic_audio_output_set_stereo_in_gain(const PMIC_AUDIO_HANDLE handle,
+ const PMIC_AUDIO_STEREO_IN_GAIN
+ gain)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+ unsigned int reg_mask = SET_BITS(regAUDIO_RX_1, ARXINEN, 1) |
+ SET_BITS(regAUDIO_RX_1, ARXIN, 1);
+ unsigned int reg_write = SET_BITS(regAUDIO_RX_1, ARXINEN, 1);
+
+ /* No critical section required here since we are not updating any
+ * global data.
+ */
+
+ /* The ARX amplifier for stereo is also enabled over here */
+
+ if ((gain == STEREO_IN_GAIN_0DB) || (gain == STEREO_IN_GAIN_PLUS_18DB)) {
+ if ((handle == extStereoIn.handle) &&
+ (extStereoIn.handleState == HANDLE_IN_USE)) {
+
+ if (gain == STEREO_IN_GAIN_0DB) {
+ reg_write |= SET_BITS(regAUDIO_RX_1, ARXIN, 1);
+ } else {
+ reg_write |= SET_BITS(regAUDIO_RX_1, ARXIN, 0);
+ }
+
+ rc = pmic_write_reg(REG_AUDIO_RX_1,
+ reg_write, reg_mask);
+
+ if (rc == PMIC_SUCCESS) {
+ pr_debug("Ext stereo gain set\n");
+ extStereoIn.inputGain = gain;
+
+ }
+
+ } else {
+ rc = PMIC_PARAMETER_ERROR;
+ }
+ }
+
+ return rc;
+}
+
+/*!
+ * @brief Get the current gain level for the external stereo inputs.
+ *
+ * This function retrieves the current gain levels for the external stereo
+ * inputs.
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ * @param gain The current external stereo input gain
+ * level.
+ *
+ * @retval PMIC_SUCCESS If the gain level was successfully
+ * retrieved.
+ * @retval PMIC_PARAMETER_ERROR If the handle was invalid.
+ * @retval PMIC_ERROR If the gain level could not be retrieved.
+ */
+PMIC_STATUS pmic_audio_output_get_stereo_in_gain(const PMIC_AUDIO_HANDLE handle,
+ PMIC_AUDIO_STEREO_IN_GAIN *
+ const gain)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+
+ /* Use a critical section to ensure a consistent hardware state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ if ((handle == extStereoIn.handle) &&
+ (extStereoIn.handleState == HANDLE_IN_USE) &&
+ (gain != (PMIC_AUDIO_STEREO_IN_GAIN *) NULL)) {
+ *gain = extStereoIn.inputGain;
+ rc = PMIC_SUCCESS;
+ }
+
+ /* Exit the critical section. */
+ up(&mutex);
+
+ return rc;
+}
+
+/*!
+ * @brief Set the output PGA gain level.
+ *
+ * This function sets the audio output PGA gain level.
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ * @param gain The output PGA gain level.
+ *
+ * @retval PMIC_SUCCESS If the gain level was successfully set.
+ * @retval PMIC_PARAMETER_ERROR If the handle or gain level was invalid.
+ * @retval PMIC_ERROR If the gain level could not be set.
+ */
+PMIC_STATUS pmic_audio_output_set_pgaGain(const PMIC_AUDIO_HANDLE handle,
+ const PMIC_AUDIO_OUTPUT_PGA_GAIN gain)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+ unsigned int reg_write = 0;
+ unsigned int reg_mask = 0;
+ unsigned int reg_gain;
+
+ /* Use a critical section to ensure a consistent hardware state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ if (!((gain >= OUTPGA_GAIN_MINUS_33DB)
+ && (gain <= OUTPGA_GAIN_PLUS_6DB))) {
+ rc = PMIC_NOT_SUPPORTED;
+ pr_debug("output set PGA gain - wrong gain value\n");
+ } else {
+ reg_gain = gain + 2;
+ if ((handle == extStereoIn.handle) &&
+ (extStereoIn.handleState == HANDLE_IN_USE)) {
+ reg_mask = SET_BITS(regAUDIO_RX_1, ARXIN, 15) |
+ SET_BITS(regAUDIO_RX_1, ARXINEN, 1);
+ reg_write = SET_BITS(regAUDIO_RX_1, ARXIN, reg_gain) |
+ SET_BITS(regAUDIO_RX_1, ARXINEN, 1);
+ } else if ((handle == vCodec.handle) &&
+ (vCodec.handleState == HANDLE_IN_USE)) {
+ reg_mask = SET_BITS(regAUDIO_RX_1, PGARX, 15);
+ reg_write = SET_BITS(regAUDIO_RX_1, PGARX, reg_gain);
+ } else if ((handle == stDAC.handle) &&
+ (stDAC.handleState == HANDLE_IN_USE)) {
+ reg_mask = SET_BITS(regAUDIO_RX_1, PGAST, 15);
+ reg_write = SET_BITS(regAUDIO_RX_1, PGAST, reg_gain);
+ }
+
+ if (reg_mask == 0) {
+
+ } else {
+ rc = pmic_write_reg(REG_AUDIO_RX_1,
+ reg_write, reg_mask);
+
+ if (rc == PMIC_SUCCESS) {
+ pr_debug("Output PGA gains set\n");
+
+ if (handle == stDAC.handle) {
+ audioOutput.stDacoutputPGAGain = gain;
+ } else if (handle == vCodec.handle) {
+ audioOutput.vCodecoutputPGAGain = gain;
+ } else {
+ audioOutput.extStereooutputPGAGain =
+ gain;
+ }
+ } else {
+ pr_debug
+ ("Error writing PGA gains to register\n");
+ }
+ }
+ }
+
+ /* Exit the critical section. */
+ up(&mutex);
+
+ return rc;
+}
+
+/*!
+ * @brief Get the output PGA gain level.
+ *
+ * This function retrieves the current audio output PGA gain level.
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ * @param gain The current output PGA gain level.
+ *
+ * @retval PMIC_SUCCESS If the gain level was successfully
+ * retrieved.
+ * @retval PMIC_PARAMETER_ERROR If the handle was invalid.
+ * @retval PMIC_ERROR If the gain level could not be retrieved.
+ */
+PMIC_STATUS pmic_audio_output_get_pgaGain(const PMIC_AUDIO_HANDLE handle,
+ PMIC_AUDIO_OUTPUT_PGA_GAIN *
+ const gain)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+
+ /* Use a critical section to ensure a consistent hardware state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ if (gain != (PMIC_AUDIO_OUTPUT_PGA_GAIN *) NULL) {
+ if ((handle == extStereoIn.handle) &&
+ (extStereoIn.handleState == HANDLE_IN_USE)) {
+ *gain = audioOutput.extStereooutputPGAGain;
+ rc = PMIC_SUCCESS;
+ } else if ((handle == vCodec.handle) &&
+ (vCodec.handleState == HANDLE_IN_USE)) {
+ *gain = audioOutput.vCodecoutputPGAGain;
+ rc = PMIC_SUCCESS;
+ } else if ((handle == stDAC.handle) &&
+ (stDAC.handleState == HANDLE_IN_USE)) {
+ *gain = audioOutput.stDacoutputPGAGain;
+ rc = PMIC_SUCCESS;
+ } else {
+ rc = PMIC_PARAMETER_ERROR;
+ }
+ } else {
+ rc = PMIC_PARAMETER_ERROR;
+ }
+
+ /* Exit the critical section. */
+ up(&mutex);
+
+ return rc;
+}
+
+/*!
+ * @brief Enable the output mixer.
+ *
+ * This function enables the output mixer for the audio stream that
+ * corresponds to the current handle (i.e., the Voice CODEC, Stereo DAC, or
+ * the external stereo inputs).
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ *
+ * @retval PMIC_SUCCESS If the mixer was successfully enabled.
+ * @retval PMIC_PARAMETER_ERROR If the handle was invalid.
+ * @retval PMIC_ERROR If the mixer could not be enabled.
+ */
+PMIC_STATUS pmic_audio_output_enable_mixer(const PMIC_AUDIO_HANDLE handle)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+ unsigned int reg_mask = 0;
+ unsigned int reg_write = 0;
+ unsigned int reg_mask_mix = 0;
+ unsigned int reg_write_mix = 0;
+
+ /* No critical section required here since we are not updating any
+ * global data.
+ */
+
+ if (((handle == stDAC.handle) && (stDAC.handleState == HANDLE_IN_USE))) {
+ reg_mask = SET_BITS(regAUDIO_RX_1, PGASTEN, 1);
+ reg_write = SET_BITS(regAUDIO_RX_1, PGASTEN, 1);
+ reg_mask_mix = SET_BITS(regAUDIO_RX_0, ADDSTDC, 1);
+ reg_write_mix = SET_BITS(regAUDIO_RX_0, ADDSTDC, 1);
+ } else if ((handle == vCodec.handle) &&
+ (vCodec.handleState == HANDLE_IN_USE)) {
+ reg_mask = SET_BITS(regAUDIO_RX_1, PGARXEN, 1);
+ reg_write = SET_BITS(regAUDIO_RX_1, PGARXEN, 1);
+ audioOutput.vCodecOut = VCODEC_MIXER_OUT;
+
+ reg_mask_mix = SET_BITS(regAUDIO_RX_0, ADDCDC, 1);
+ reg_write_mix = SET_BITS(regAUDIO_RX_0, ADDCDC, 1);
+ } else if ((handle == extStereoIn.handle) &&
+ (extStereoIn.handleState == HANDLE_IN_USE)) {
+ reg_mask = SET_BITS(regAUDIO_RX_1, ARXINEN, 1);
+ reg_write = SET_BITS(regAUDIO_RX_1, ARXINEN, 1);
+ reg_mask_mix = SET_BITS(regAUDIO_RX_0, ADDRXIN, 1);
+ reg_write_mix = SET_BITS(regAUDIO_RX_0, ADDRXIN, 1);
+ }
+
+ if (reg_mask == 0) {
+
+ } else {
+ rc = pmic_write_reg(REG_AUDIO_RX_1, reg_write, reg_mask);
+
+ if (rc == PMIC_SUCCESS) {
+
+ rc = pmic_write_reg(REG_AUDIO_RX_0,
+ reg_write_mix, reg_mask_mix);
+ if (rc == PMIC_SUCCESS) {
+ pr_debug("Output PGA mixers enabled\n");
+ rc = PMIC_SUCCESS;
+ }
+
+ } else {
+ pr_debug("Error writing mixer enable to register\n");
+ }
+
+ }
+
+ return rc;
+}
+
+/*!
+ * @brief Disable the output mixer.
+ *
+ * This function disables the output mixer for the audio stream that
+ * corresponds to the current handle (i.e., the Voice CODEC, Stereo DAC, or
+ * the external stereo inputs).
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ *
+ * @retval PMIC_SUCCESS If the mixer was successfully disabled.
+ * @retval PMIC_PARAMETER_ERROR If the handle was invalid.
+ * @retval PMIC_ERROR If the mixer could not be disabled.
+ */
+PMIC_STATUS pmic_audio_output_disable_mixer(const PMIC_AUDIO_HANDLE handle)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+ unsigned int reg_mask = 0;
+ unsigned int reg_write = 0;
+
+ unsigned int reg_mask_mix = 0;
+ unsigned int reg_write_mix = 0;
+
+ /* No critical section required here since we are not updating any
+ * global data.
+ */
+ if (((handle == stDAC.handle) && (stDAC.handleState == HANDLE_IN_USE))) {
+ /*reg_mask = SET_BITS(regAUDIO_RX_1, PGASTEN, 1);
+ reg_write = SET_BITS(regAUDIO_RX_1, PGASTEN, 0); */
+
+ reg_mask_mix = SET_BITS(regAUDIO_RX_0, ADDSTDC, 1);
+ reg_write_mix = SET_BITS(regAUDIO_RX_0, ADDSTDC, 0);
+ } else if ((handle == vCodec.handle) &&
+ (vCodec.handleState == HANDLE_IN_USE)) {
+ reg_mask = SET_BITS(regAUDIO_RX_1, PGARXEN, 1);
+ reg_write = SET_BITS(regAUDIO_RX_1, PGARXEN, 0);
+ audioOutput.vCodecOut = VCODEC_DIRECT_OUT;
+
+ reg_mask_mix = SET_BITS(regAUDIO_RX_0, ADDCDC, 1);
+ reg_write_mix = SET_BITS(regAUDIO_RX_0, ADDCDC, 0);
+ } else if ((handle == extStereoIn.handle) &&
+ (extStereoIn.handleState == HANDLE_IN_USE)) {
+ /*reg_mask = SET_BITS(regAUDIO_RX_1, ARXINEN, 1);
+ reg_write = SET_BITS(regAUDIO_RX_1, ARXINEN, 0); */
+
+ reg_mask_mix = SET_BITS(regAUDIO_RX_0, ADDRXIN, 1);
+ reg_write_mix = SET_BITS(regAUDIO_RX_0, ADDRXIN, 1);
+ }
+
+ if (reg_mask == 0) {
+
+ } else {
+ rc = pmic_write_reg(REG_AUDIO_RX_1, reg_write, reg_mask);
+
+ if (rc == PMIC_SUCCESS) {
+
+ rc = pmic_write_reg(REG_AUDIO_RX_0,
+ reg_write_mix, reg_mask_mix);
+ if (rc == PMIC_SUCCESS) {
+ pr_debug("Output PGA mixers disabled\n");
+ }
+ }
+ }
+ return rc;
+}
+
+/*!
+ * @brief Configure and enable the output balance amplifiers.
+ *
+ * This function configures and enables the output balance amplifiers.
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ * @param leftGain The desired left channel gain level.
+ * @param rightGain The desired right channel gain level.
+ *
+ * @retval PMIC_SUCCESS If the output balance amplifiers were
+ * successfully configured and enabled.
+ * @retval PMIC_PARAMETER_ERROR If the handle or gain levels were invalid.
+ * @retval PMIC_ERROR If the output balance amplifiers could not
+ * be reconfigured or enabled.
+ */
+PMIC_STATUS pmic_audio_output_set_balance(const PMIC_AUDIO_HANDLE handle,
+ const PMIC_AUDIO_OUTPUT_BALANCE_GAIN
+ leftGain,
+ const PMIC_AUDIO_OUTPUT_BALANCE_GAIN
+ rightGain)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+ unsigned int reg_mask = 0;
+ unsigned int reg_write = 0;
+ unsigned int reg_mask_ch = 0;
+ unsigned int reg_write_ch = 0;
+
+ /* No critical section required here since we are not updating any
+ * global data.
+ */
+
+ if (!((leftGain >= BAL_GAIN_MINUS_21DB) && (leftGain <= BAL_GAIN_0DB))) {
+ rc = PMIC_PARAMETER_ERROR;
+ } else if (!((rightGain >= BAL_GAIN_MINUS_21DB)
+ && (rightGain <= BAL_GAIN_0DB))) {
+ rc = PMIC_PARAMETER_ERROR;
+ } else {
+ if (((handle == stDAC.handle) &&
+ (stDAC.handleState == HANDLE_IN_USE)) ||
+ ((handle == vCodec.handle) &&
+ (vCodec.handleState == HANDLE_IN_USE)) ||
+ ((handle == extStereoIn.handle) &&
+ (extStereoIn.handleState == HANDLE_IN_USE))) {
+ /* In mc13783 only one channel can be attenuated wrt the other.
+ * It is not possible to specify attenuation for both
+ * This function will return an error if both channels
+ * are required to be attenuated
+ * The BALLR bit is set/reset depending on whether leftGain
+ * or rightGain is specified*/
+ if ((rightGain == BAL_GAIN_0DB)
+ && (leftGain == BAL_GAIN_0DB)) {
+ /* Nothing to be done */
+ } else if ((rightGain != BAL_GAIN_0DB)
+ && (leftGain == BAL_GAIN_0DB)) {
+ /* Attenuate right channel */
+ reg_mask = SET_BITS(regAUDIO_RX_1, BAL, 7);
+ reg_mask_ch = SET_BITS(regAUDIO_RX_1, BALLR, 1);
+ reg_write =
+ SET_BITS(regAUDIO_RX_1, BAL,
+ (BAL_GAIN_0DB - rightGain));
+ /* The enum and the register values are reversed in order .. */
+ reg_write_ch =
+ SET_BITS(regAUDIO_RX_1, BALLR, 0);
+ /* BALLR = 0 selects right channel for atten */
+ } else if ((rightGain == BAL_GAIN_0DB)
+ && (leftGain != BAL_GAIN_0DB)) {
+ /* Attenuate left channel */
+
+ reg_mask = SET_BITS(regAUDIO_RX_1, BAL, 7);
+ reg_mask_ch = SET_BITS(regAUDIO_RX_1, BALLR, 1);
+ reg_write =
+ SET_BITS(regAUDIO_RX_1, BAL,
+ (BAL_GAIN_0DB - leftGain));
+ reg_write_ch =
+ SET_BITS(regAUDIO_RX_1, BALLR, 1);
+ /* BALLR = 1 selects left channel for atten */
+ } else {
+ rc = PMIC_PARAMETER_ERROR;
+ }
+
+ if ((reg_mask == 0) || (reg_mask_ch == 0)) {
+
+ } else {
+ rc = pmic_write_reg(REG_AUDIO_RX_1,
+ reg_write_ch, reg_mask_ch);
+
+ if (rc == PMIC_SUCCESS) {
+ rc = pmic_write_reg(REG_AUDIO_RX_1,
+ reg_write,
+ reg_mask);
+
+ if (rc == PMIC_SUCCESS) {
+ pr_debug
+ ("Output balance attenuation set\n");
+ audioOutput.balanceLeftGain =
+ leftGain;
+ audioOutput.balanceRightGain =
+ rightGain;
+ }
+ }
+ }
+ }
+ }
+ return rc;
+}
+
+/*!
+ * @brief Get the current output balance amplifier gain levels.
+ *
+ * This function retrieves the current output balance amplifier gain levels.
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ * @param leftGain The current left channel gain level.
+ * @param rightGain The current right channel gain level.
+ *
+ * @retval PMIC_SUCCESS If the output balance amplifier gain levels
+ * were successfully retrieved.
+ * @retval PMIC_PARAMETER_ERROR If the handle was invalid.
+ * @retval PMIC_ERROR If the output balance amplifier gain levels
+ * could be retrieved.
+ */
+PMIC_STATUS pmic_audio_output_get_balance(const PMIC_AUDIO_HANDLE handle,
+ PMIC_AUDIO_OUTPUT_BALANCE_GAIN *
+ const leftGain,
+ PMIC_AUDIO_OUTPUT_BALANCE_GAIN *
+ const rightGain)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+
+ /* Use a critical section to ensure a consistent hardware state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ if ((((handle == stDAC.handle) &&
+ (stDAC.handleState == HANDLE_IN_USE)) ||
+ ((handle == vCodec.handle) &&
+ (vCodec.handleState == HANDLE_IN_USE)) ||
+ ((handle == extStereoIn.handle) &&
+ (extStereoIn.handleState == HANDLE_IN_USE))) &&
+ ((leftGain != (PMIC_AUDIO_OUTPUT_BALANCE_GAIN *) NULL) &&
+ (rightGain != (PMIC_AUDIO_OUTPUT_BALANCE_GAIN *) NULL))) {
+ *leftGain = audioOutput.balanceLeftGain;
+ *rightGain = audioOutput.balanceRightGain;
+
+ rc = PMIC_SUCCESS;
+ }
+
+ /* Exit the critical section. */
+ up(&mutex);
+
+ return rc;
+}
+
+/*!
+ * @brief Configure and enable the output mono adder.
+ *
+ * This function configures and enables the output mono adder.
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ * @param mode The desired mono adder operating mode.
+ *
+ * @retval PMIC_SUCCESS If the mono adder was successfully
+ * configured and enabled.
+ * @retval PMIC_PARAMETER_ERROR If the handle or mono adder mode was
+ * invalid.
+ * @retval PMIC_ERROR If the mono adder could not be reconfigured
+ * or enabled.
+ */
+PMIC_STATUS pmic_audio_output_enable_mono_adder(const PMIC_AUDIO_HANDLE handle,
+ const PMIC_AUDIO_MONO_ADDER_MODE
+ mode)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+ unsigned int reg_write = 0;
+ unsigned int reg_mask = SET_BITS(regAUDIO_RX_1, MONO, 3);
+
+ /* No critical section required here since we are not updating any
+ * global data.
+ */
+
+ if ((mode >= MONO_ADDER_OFF) && (mode <= STEREO_OPPOSITE_PHASE)) {
+ if (((handle == stDAC.handle) &&
+ (stDAC.handleState == HANDLE_IN_USE)) ||
+ ((handle == vCodec.handle) &&
+ (vCodec.handleState == HANDLE_IN_USE)) ||
+ ((handle == extStereoIn.handle) &&
+ (extStereoIn.handleState == HANDLE_IN_USE))) {
+ if (mode == MONO_ADDER_OFF) {
+ reg_write = SET_BITS(regAUDIO_RX_1, MONO, 0);
+ } else if (mode == MONO_ADD_LEFT_RIGHT) {
+ reg_write = SET_BITS(regAUDIO_RX_1, MONO, 2);
+ } else if (mode == MONO_ADD_OPPOSITE_PHASE) {
+ reg_write = SET_BITS(regAUDIO_RX_1, MONO, 3);
+ } else { /* stereo opposite */
+
+ reg_write = SET_BITS(regAUDIO_RX_1, MONO, 1);
+ }
+
+ rc = pmic_write_reg(REG_AUDIO_RX_1,
+ reg_write, reg_mask);
+
+ if (rc == PMIC_SUCCESS) {
+ pr_debug("Output mono adder mode set\n");
+
+ }
+
+ } else {
+ rc = PMIC_PARAMETER_ERROR;
+ }
+ } else {
+ rc = PMIC_PARAMETER_ERROR;
+ }
+ return rc;
+}
+
+/*!
+ * @brief Disable the output mono adder.
+ *
+ * This function disables the output mono adder.
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ *
+ * @retval PMIC_SUCCESS If the mono adder was successfully
+ * disabled.
+ * @retval PMIC_PARAMETER_ERROR If the handle was invalid.
+ * @retval PMIC_ERROR If the mono adder could not be disabled.
+ */
+PMIC_STATUS pmic_audio_output_disable_mono_adder(const PMIC_AUDIO_HANDLE handle)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+ const unsigned int reg_write = 0;
+ const unsigned int reg_mask = SET_BITS(regAUDIO_RX_1, MONO, 3);
+
+ /* No critical section required here since we are not updating any
+ * global data.
+ */
+
+ if (((handle == stDAC.handle) &&
+ (stDAC.handleState == HANDLE_IN_USE)) ||
+ ((handle == vCodec.handle) &&
+ (vCodec.handleState == HANDLE_IN_USE)) ||
+ ((handle == extStereoIn.handle) &&
+ (extStereoIn.handleState == HANDLE_IN_USE))) {
+ rc = pmic_write_reg(REG_AUDIO_RX_1, reg_write, reg_mask);
+ }
+
+ return rc;
+}
+
+/*!
+ * @brief Configure the mono adder output gain level.
+ *
+ * This function configures the mono adder output amplifier gain level.
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ * @param gain The desired output gain level.
+ *
+ * @retval PMIC_SUCCESS If the mono adder output amplifier gain
+ * level was successfully set.
+ * @retval PMIC_PARAMETER_ERROR If the handle or gain level was invalid.
+ * @retval PMIC_ERROR If the mono adder output amplifier gain
+ * level could not be reconfigured.
+ */
+PMIC_STATUS pmic_audio_output_set_mono_adder_gain(const PMIC_AUDIO_HANDLE
+ handle,
+ const
+ PMIC_AUDIO_MONO_ADDER_OUTPUT_GAIN
+ gain)
+{
+ PMIC_STATUS rc = PMIC_NOT_SUPPORTED;
+ return rc;
+}
+
+/*!
+ * @brief Get the current mono adder output gain level.
+ *
+ * This function retrieves the current mono adder output amplifier gain level.
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ * @param gain The current output gain level.
+ *
+ * @retval PMIC_SUCCESS If the mono adder output amplifier gain
+ * level was successfully retrieved.
+ * @retval PMIC_PARAMETER_ERROR If the handle was invalid.
+ * @retval PMIC_ERROR If the mono adder output amplifier gain
+ * level could not be retrieved.
+ */
+PMIC_STATUS pmic_audio_output_get_mono_adder_gain(const PMIC_AUDIO_HANDLE
+ handle,
+ PMIC_AUDIO_MONO_ADDER_OUTPUT_GAIN
+ * const gain)
+{
+ PMIC_STATUS rc = PMIC_NOT_SUPPORTED;
+ return rc;
+}
+
+/*!
+ * @brief Set various audio output section options.
+ *
+ * This function sets one or more audio output section configuration
+ * options. The currently supported options include whether to disable
+ * the non-inverting mono speaker output, enabling the loudspeaker common
+ * bias circuit, enabling detection of headset insertion/removal, and
+ * whether to automatically disable the headset amplifiers when a headset
+ * insertion/removal has been detected.
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ * @param config The desired audio output section
+ * configuration options to be set.
+ *
+ * @retval PMIC_SUCCESS If the desired configuration options were
+ * all successfully set.
+ * @retval PMIC_PARAMETER_ERROR If the handle or configuration options
+ * were invalid.
+ * @retval PMIC_ERROR If the desired configuration options
+ * could not be set.
+ */
+PMIC_STATUS pmic_audio_output_set_config(const PMIC_AUDIO_HANDLE handle,
+ const PMIC_AUDIO_OUTPUT_CONFIG config)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+ unsigned int reg_mask = 0;
+ unsigned int reg_write = 0;
+
+ /* Use a critical section to ensure a consistent hardware state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ if (((handle == stDAC.handle) &&
+ (stDAC.handleState == HANDLE_IN_USE)) ||
+ ((handle == vCodec.handle) &&
+ (vCodec.handleState == HANDLE_IN_USE)) ||
+ ((handle == extStereoIn.handle) &&
+ (extStereoIn.handleState == HANDLE_IN_USE))) {
+ if (config & MONO_SPEAKER_INVERT_OUT_ONLY) {
+ /* If this is one of the parameters */
+ rc = PMIC_NOT_SUPPORTED;
+ } else {
+ if (config & MONO_LOUDSPEAKER_COMMON_BIAS) {
+ reg_mask = SET_BITS(regAUDIO_RX_0, ALSPREF, 1);
+ reg_write = SET_BITS(regAUDIO_RX_0, ALSPREF, 1);
+ }
+ if (config & HEADSET_DETECT_ENABLE) {
+ reg_mask |= SET_BITS(regAUDIO_RX_0, HSDETEN, 1);
+ reg_write |=
+ SET_BITS(regAUDIO_RX_0, HSDETEN, 1);
+ }
+ if (config & STEREO_HEADSET_AMP_AUTO_DISABLE) {
+ reg_mask |=
+ SET_BITS(regAUDIO_RX_0, HSDETAUTOB, 1);
+ reg_write |=
+ SET_BITS(regAUDIO_RX_0, HSDETAUTOB, 1);
+ }
+
+ if (reg_mask == 0) {
+ rc = PMIC_PARAMETER_ERROR;
+ } else {
+ rc = pmic_write_reg(REG_AUDIO_RX_0,
+ reg_write, reg_mask);
+
+ if (rc == PMIC_SUCCESS) {
+ pr_debug("Output config set\n");
+ audioOutput.config |= config;
+
+ }
+ }
+ }
+ }
+
+ /* Exit the critical section. */
+ up(&mutex);
+
+ return rc;
+}
+
+/*!
+ * @brief Clear various audio output section options.
+ *
+ * This function clears one or more audio output section configuration
+ * options.
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ * @param config The desired audio output section
+ * configuration options to be cleared.
+ *
+ * @retval PMIC_SUCCESS If the desired configuration options were
+ * all successfully cleared.
+ * @retval PMIC_PARAMETER_ERROR If the handle or configuration options
+ * were invalid.
+ * @retval PMIC_ERROR If the desired configuration options
+ * could not be cleared.
+ */
+PMIC_STATUS pmic_audio_output_clear_config(const PMIC_AUDIO_HANDLE handle,
+ const PMIC_AUDIO_OUTPUT_CONFIG
+ config)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+ /*unsigned int reg_write_RX = 0;
+ unsigned int reg_mask_RX = 0;
+ unsigned int reg_write_TX = 0;
+ unsigned int reg_mask_TX = 0; */
+ unsigned int reg_mask = 0;
+ unsigned int reg_write = 0;
+
+ /* Use a critical section to ensure a consistent hardware state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ if (((handle == stDAC.handle) &&
+ (stDAC.handleState == HANDLE_IN_USE)) ||
+ ((handle == vCodec.handle) &&
+ (vCodec.handleState == HANDLE_IN_USE)) ||
+ ((handle == extStereoIn.handle) &&
+ (extStereoIn.handleState == HANDLE_IN_USE))) {
+ if (config & MONO_SPEAKER_INVERT_OUT_ONLY) {
+ /* If this is one of the parameters */
+ rc = PMIC_NOT_SUPPORTED;
+ } else {
+ if (config & MONO_LOUDSPEAKER_COMMON_BIAS) {
+ reg_mask = SET_BITS(regAUDIO_RX_0, ALSPREF, 1);
+ reg_write = SET_BITS(regAUDIO_RX_0, ALSPREF, 0);
+ }
+
+ if (config & HEADSET_DETECT_ENABLE) {
+ reg_mask |= SET_BITS(regAUDIO_RX_0, HSDETEN, 1);
+ reg_write |=
+ SET_BITS(regAUDIO_RX_0, HSDETEN, 0);
+ }
+
+ if (config & STEREO_HEADSET_AMP_AUTO_DISABLE) {
+ reg_mask |=
+ SET_BITS(regAUDIO_RX_0, HSDETAUTOB, 1);
+ reg_write |=
+ SET_BITS(regAUDIO_RX_0, HSDETAUTOB, 0);
+ }
+
+ if (reg_mask == 0) {
+ rc = PMIC_PARAMETER_ERROR;
+ } else {
+ rc = pmic_write_reg(REG_AUDIO_RX_0,
+ reg_write, reg_mask);
+
+ if (rc == PMIC_SUCCESS) {
+ pr_debug("Output config cleared\n");
+ audioOutput.config &= ~config;
+
+ }
+ }
+ }
+ }
+
+ /* Exit the critical section. */
+ up(&mutex);
+
+ return rc;
+}
+
+/*!
+ * @brief Get the current audio output section options.
+ *
+ * This function retrieves the current audio output section configuration
+ * option settings.
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ * @param config The current audio output section
+ * configuration option settings.
+ *
+ * @retval PMIC_SUCCESS If the current configuration options were
+ * successfully retrieved.
+ * @retval PMIC_PARAMETER_ERROR If the handle was invalid.
+ * @retval PMIC_ERROR If the current configuration options
+ * could not be retrieved.
+ */
+PMIC_STATUS pmic_audio_output_get_config(const PMIC_AUDIO_HANDLE handle,
+ PMIC_AUDIO_OUTPUT_CONFIG *
+ const config)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+
+ /* Use a critical section to ensure a consistent hardware state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ if ((((handle == stDAC.handle) &&
+ (stDAC.handleState == HANDLE_IN_USE)) ||
+ ((handle == vCodec.handle) &&
+ (vCodec.handleState == HANDLE_IN_USE)) ||
+ ((handle == extStereoIn.handle) &&
+ (extStereoIn.handleState == HANDLE_IN_USE))) &&
+ (config != (PMIC_AUDIO_OUTPUT_CONFIG *) NULL)) {
+ *config = audioOutput.config;
+
+ rc = PMIC_SUCCESS;
+ }
+
+ /* Exit the critical section. */
+ up(&mutex);
+
+ return rc;
+}
+
+/*!
+ * @brief Enable the phantom ground circuit that is used to help identify
+ * the type of headset that has been inserted.
+ *
+ * This function enables the phantom ground circuit that is used to help
+ * identify the type of headset (e.g., stereo or mono) that has been inserted.
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ *
+ * @retval PMIC_SUCCESS If the phantom ground circuit was
+ * successfully enabled.
+ * @retval PMIC_PARAMETER_ERROR If the handle was invalid.
+ * @retval PMIC_ERROR If the phantom ground circuit could not
+ * be enabled.
+ */
+PMIC_STATUS pmic_audio_output_enable_phantom_ground()
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+ const unsigned int reg_mask = SET_BITS(regAUDIO_RX_0, HSPGDIS, 1);
+
+ /* No critical section required here since we are not updating any
+ * global data.
+ */
+
+ rc = pmic_write_reg(REG_AUDIO_RX_0, 0, reg_mask);
+ if (rc == PMIC_SUCCESS) {
+ pr_debug("Phantom ground enabled\n");
+
+ }
+ return rc;
+}
+
+/*!
+ * @brief Disable the phantom ground circuit that is used to help identify
+ * the type of headset that has been inserted.
+ *
+ * This function disables the phantom ground circuit that is used to help
+ * identify the type of headset (e.g., stereo or mono) that has been inserted.
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ *
+ * @retval PMIC_SUCCESS If the phantom ground circuit was
+ * successfully disabled.
+ * @retval PMIC_PARAMETER_ERROR If the handle was invalid.
+ * @retval PMIC_ERROR If the phantom ground circuit could not
+ * be disabled.
+ */
+PMIC_STATUS pmic_audio_output_disable_phantom_ground()
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+ const unsigned int reg_mask = SET_BITS(regAUDIO_RX_0, HSPGDIS, 1);
+
+ /* No critical section required here since we are not updating any
+ * global data.
+ */
+
+ rc = pmic_write_reg(REG_AUDIO_RX_0, 1, reg_mask);
+ if (rc == PMIC_SUCCESS) {
+ pr_debug("Phantom ground disabled\n");
+
+ }
+ return rc;
+}
+
+/*@}*/
+
+/**************************************************************************
+ * Static functions.
+ **************************************************************************
+ */
+
+/*!
+ * @name Audio Driver Internal Support Functions
+ * These non-exported internal functions are used to support the functionality
+ * of the exported audio APIs.
+ */
+/*@{*/
+
+/*!
+ * @brief Enables the 5.6V boost for the microphone bias 2 circuit.
+ *
+ * This function enables the switching regulator SW3 and configures it to
+ * provide the 5.6V boost that is required for driving the microphone bias 2
+ * circuit when using a 5-pole jack configuration (which is the case for the
+ * Sphinx board).
+ *
+ * @retval PMIC_SUCCESS The 5.6V boost was successfully enabled.
+ * @retval PMIC_ERROR Failed to enable the 5.6V boost.
+ */
+/*
+static PMIC_STATUS pmic_audio_mic_boost_enable(void)
+{
+ PMIC_STATUS rc = PMIC_NOT_SUPPORTED;
+
+ return rc;
+}
+*/
+/*!
+ * @brief Disables the 5.6V boost for the microphone bias 2 circuit.
+ *
+ * This function disables the switching regulator SW3 to turn off the 5.6V
+ * boost for the microphone bias 2 circuit.
+ *
+ * @retval PMIC_SUCCESS The 5.6V boost was successfully disabled.
+ * @retval PMIC_ERROR Failed to disable the 5.6V boost.
+ */
+/*
+static PMIC_STATUS pmic_audio_mic_boost_disable(void)
+{
+ PMIC_STATUS rc = PMIC_NOT_SUPPORTED;
+
+ return rc;
+}
+*/
+
+/*!
+ * @brief Free a device handle previously acquired by calling pmic_audio_open().
+ *
+ * Terminate further access to the PMIC audio hardware that was previously
+ * acquired by calling pmic_audio_open(). This now allows another thread to
+ * successfully call pmic_audio_open() to gain access.
+ *
+ * Note that we will shutdown/reset the Voice CODEC or Stereo DAC as well as
+ * any associated audio input/output components that are no longer required.
+ *
+ * Also note that this function should only be called with the mutex already
+ * acquired.
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ *
+ * @retval PMIC_SUCCESS If the close request was successful.
+ * @retval PMIC_PARAMETER_ERROR If the handle is invalid.
+ */
+static PMIC_STATUS pmic_audio_close_handle(const PMIC_AUDIO_HANDLE handle)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+
+ /* Match up the handle to the audio device and then close it. */
+ if ((handle == stDAC.handle) && (stDAC.handleState == HANDLE_IN_USE)) {
+ /* Also shutdown the Stereo DAC hardware. The simplest way to
+ * do this is to simply call pmic_audio_reset_device() which will
+ * restore the ST_DAC register to it's initial power-on state.
+ *
+ * This will also shutdown the audio output section if no one
+ * else is still using it.
+ */
+ rc = pmic_audio_reset_device(stDAC.handle);
+
+ if (rc == PMIC_SUCCESS) {
+ stDAC.handle = AUDIO_HANDLE_NULL;
+ stDAC.handleState = HANDLE_FREE;
+ }
+ } else if ((handle == vCodec.handle) &&
+ (vCodec.handleState == HANDLE_IN_USE)) {
+ /* Also shutdown the Voice CODEC and audio input hardware. The
+ * simplest way to do this is to simply call pmic_audio_reset_device()
+ * which will restore the AUD_CODEC register to it's initial
+ * power-on state.
+ *
+ * This will also shutdown the audio output section if no one
+ * else is still using it.
+ */
+ rc = pmic_audio_reset_device(vCodec.handle);
+ if (rc == PMIC_SUCCESS) {
+ vCodec.handle = AUDIO_HANDLE_NULL;
+ vCodec.handleState = HANDLE_FREE;
+ }
+ } else if ((handle == extStereoIn.handle) &&
+ (extStereoIn.handleState == HANDLE_IN_USE)) {
+
+ /* Call pmic_audio_reset_device() here to shutdown the audio output
+ * section if no one else is still using it.
+ */
+ rc = pmic_audio_reset_device(extStereoIn.handle);
+
+ if (rc == PMIC_SUCCESS) {
+ extStereoIn.handle = AUDIO_HANDLE_NULL;
+ extStereoIn.handleState = HANDLE_FREE;
+ }
+ }
+
+ return rc;
+}
+
+/*!
+ * @brief Reset the selected audio hardware control registers to their
+ * power on state.
+ *
+ * This resets all of the audio hardware control registers currently
+ * associated with the device handle back to their power on states. For
+ * example, if the handle is associated with the Stereo DAC and a
+ * specific output port and output amplifiers, then this function will
+ * reset all of those components to their initial power on state.
+ *
+ * This function can only be called if the mutex has already been acquired.
+ *
+ * @param handle Device handle from pmic_audio_open() call.
+ *
+ * @retval PMIC_SUCCESS If the reset operation was successful.
+ * @retval PMIC_PARAMETER_ERROR If the handle is invalid.
+ * @retval PMIC_ERROR If the reset was unsuccessful.
+ */
+static PMIC_STATUS pmic_audio_reset_device(const PMIC_AUDIO_HANDLE handle)
+{
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+ unsigned int reg_mask = 0;
+
+ if ((handle == stDAC.handle) && (stDAC.handleState == HANDLE_IN_USE)) {
+ /* Also shutdown the audio output section if nobody else is using it.
+ if ((vCodec.handleState == HANDLE_FREE) &&
+ (extStereoIn.handleState == HANDLE_FREE))
+ {
+ pmic_write_reg(REG_RX_AUD_AMPS, RESET_RX_AUD_AMPS,
+ REG_FULLMASK);
+ } */
+
+ rc = pmic_write_reg(REG_AUDIO_STEREO_DAC,
+ RESET_ST_DAC, REG_FULLMASK);
+
+ if (rc == PMIC_SUCCESS) {
+ rc = pmic_write_reg(REG_AUDIO_SSI_NETWORK,
+ RESET_SSI_NETWORK,
+ REG_SSI_STDAC_MASK);
+ if (rc == PMIC_SUCCESS) {
+ /* Also reset the driver state information to match. Note that we
+ * keep the device handle and event callback settings unchanged
+ * since these don't affect the actual hardware and we rely on
+ * the user to explicitly close the handle or deregister callbacks
+ */
+ stDAC.busID = AUDIO_DATA_BUS_1;
+ stDAC.protocol = NORMAL_MSB_JUSTIFIED_MODE;
+ stDAC.protocol_set = false;
+ stDAC.masterSlave = BUS_MASTER_MODE;
+ stDAC.numSlots = USE_2_TIMESLOTS;
+ stDAC.clockIn = CLOCK_IN_CLIA;
+ stDAC.samplingRate = STDAC_RATE_44_1_KHZ;
+ stDAC.clockFreq = STDAC_CLI_13MHZ;
+ stDAC.invert = NO_INVERT;
+ stDAC.timeslot = USE_TS0_TS1;
+ stDAC.config = (PMIC_AUDIO_STDAC_CONFIG) 0;
+
+ }
+ }
+ } else if ((handle == vCodec.handle)
+ && (vCodec.handleState == HANDLE_IN_USE)) {
+ /* Disable the audio input section when disabling the Voice CODEC. */
+ pmic_write_reg(REG_AUDIO_TX, RESET_AUDIO_TX, REG_FULLMASK);
+
+ rc = pmic_write_reg(REG_AUDIO_CODEC,
+ RESET_AUD_CODEC, REG_FULLMASK);
+
+ if (rc == PMIC_SUCCESS) {
+ rc = pmic_write_reg(REG_AUDIO_SSI_NETWORK,
+ RESET_SSI_NETWORK,
+ REG_SSI_VCODEC_MASK);
+ if (rc == PMIC_SUCCESS) {
+
+ /* Also reset the driver state information to match. Note that we
+ * keep the device handle and event callback settings unchanged
+ * since these don't affect the actual hardware and we rely on
+ * the user to explicitly close the handle or deregister callbacks
+ */
+ vCodec.busID = AUDIO_DATA_BUS_2;
+ vCodec.protocol = NETWORK_MODE;
+ vCodec.protocol_set = false;
+ vCodec.masterSlave = BUS_SLAVE_MODE;
+ vCodec.numSlots = USE_4_TIMESLOTS;
+ vCodec.clockIn = CLOCK_IN_CLIB;
+ vCodec.samplingRate = VCODEC_RATE_8_KHZ;
+ vCodec.clockFreq = VCODEC_CLI_13MHZ;
+ vCodec.invert = NO_INVERT;
+ vCodec.timeslot = USE_TS0;
+ vCodec.config =
+ INPUT_HIGHPASS_FILTER |
+ OUTPUT_HIGHPASS_FILTER;
+
+ }
+ }
+
+ } else if ((handle == extStereoIn.handle) &&
+ (extStereoIn.handleState == HANDLE_IN_USE)) {
+ /* Disable the Ext stereo Amplifier and disable it as analog mixer input */
+ reg_mask = SET_BITS(regAUDIO_RX_1, ARXINEN, 1);
+ pmic_write_reg(REG_AUDIO_RX_1, 0, reg_mask);
+
+ reg_mask = SET_BITS(regAUDIO_RX_0, ADDRXIN, 1);
+ pmic_write_reg(REG_AUDIO_RX_0, 0, reg_mask);
+
+ /* We don't need to reset any other registers for this case. */
+ rc = PMIC_SUCCESS;
+ }
+
+ return rc;
+}
+
+/*!
+ * @brief Deregister the callback function and event mask currently associated
+ * with an audio device handle.
+ *
+ * This function deregisters any existing callback function and event mask for
+ * the given audio device handle. This is done by either calling the
+ * pmic_audio_clear_callback() API or by closing the device handle.
+ *
+ * Note that this function should only be called with the mutex already
+ * acquired. We will also acquire the spinlock here to prevent possible
+ * race conditions with the interrupt handler.
+ *
+ * @param[in] callback The current event callback function pointer.
+ * @param[in] eventMask The current audio event mask.
+ *
+ * @retval PMIC_SUCCESS If the callback function and event mask
+ * were both successfully deregistered.
+ * @retval PMIC_ERROR If either the callback function or the
+ * event mask was not successfully
+ * deregistered.
+ */
+
+static PMIC_STATUS pmic_audio_deregister(void *callback,
+ PMIC_AUDIO_EVENTS * const eventMask)
+{
+ unsigned long flags;
+ pmic_event_callback_t eventNotify;
+ PMIC_STATUS rc = PMIC_SUCCESS;
+
+ /* Deregister each of the PMIC events that we had previously
+ * registered for by calling pmic_event_subscribe().
+ */
+ if (*eventMask & (HEADSET_DETECTED)) {
+ /* We need to deregister for the A1 amplifier interrupt. */
+ eventNotify.func = callback;
+ eventNotify.param = (void *)(CORE_EVENT_HSDETI);
+ if (pmic_event_unsubscribe(EVENT_HSDETI, eventNotify) ==
+ PMIC_SUCCESS) {
+ *eventMask &= ~(HEADSET_DETECTED);
+ pr_debug("Deregistered for EVENT_HSDETI\n");
+ } else {
+ rc = PMIC_ERROR;
+ }
+ }
+
+ if (*eventMask & (HEADSET_STEREO)) {
+ /* We need to deregister for the A1 amplifier interrupt. */
+ eventNotify.func = callback;
+ eventNotify.param = (void *)(CORE_EVENT_HSLI);
+ if (pmic_event_unsubscribe(EVENT_HSLI, eventNotify) ==
+ PMIC_SUCCESS) {
+ *eventMask &= ~(HEADSET_STEREO);
+ pr_debug("Deregistered for EVENT_HSLI\n");
+ } else {
+ rc = PMIC_ERROR;
+ }
+ }
+ if (*eventMask & (HEADSET_THERMAL_SHUTDOWN)) {
+ /* We need to deregister for the A1 amplifier interrupt. */
+ eventNotify.func = callback;
+ eventNotify.param = (void *)(CORE_EVENT_ALSPTHI);
+ if (pmic_event_unsubscribe(EVENT_ALSPTHI, eventNotify) ==
+ PMIC_SUCCESS) {
+ *eventMask &= ~(HEADSET_THERMAL_SHUTDOWN);
+ pr_debug("Deregistered for EVENT_ALSPTHI\n");
+ } else {
+ rc = PMIC_ERROR;
+ }
+ }
+ if (*eventMask & (HEADSET_SHORT_CIRCUIT)) {
+ /* We need to deregister for the A1 amplifier interrupt. */
+ eventNotify.func = callback;
+ eventNotify.param = (void *)(CORE_EVENT_AHSSHORTI);
+ if (pmic_event_unsubscribe(EVENT_AHSSHORTI, eventNotify) ==
+ PMIC_SUCCESS) {
+ *eventMask &= ~(HEADSET_SHORT_CIRCUIT);
+ pr_debug("Deregistered for EVENT_AHSSHORTI\n");
+ } else {
+ rc = PMIC_ERROR;
+ }
+ }
+
+ if (rc == PMIC_SUCCESS) {
+ /* We need to grab the spinlock here to create a critical section to
+ * avoid any possible race conditions with the interrupt handler
+ */
+ spin_lock_irqsave(&lock, flags);
+
+ /* Restore the initial reset values for the callback function
+ * and event mask parameters. This should be NULL and zero,
+ * respectively.
+ */
+ callback = NULL;
+ *eventMask = 0;
+
+ /* Exit the critical section. */
+ spin_unlock_irqrestore(&lock, flags);
+ }
+
+ return rc;
+}
+
+/*!
+ * @brief enable/disable fm output.
+ *
+ * @param[in] enable true to enable false to disable
+ */
+PMIC_STATUS pmic_audio_fm_output_enable(bool enable)
+{
+ unsigned int reg_mask = 0;
+ unsigned int reg_write = 0;
+ PMIC_STATUS rc = PMIC_PARAMETER_ERROR;
+ if (enable) {
+ pmic_audio_antipop_enable(ANTI_POP_RAMP_FAST);
+ reg_mask |= SET_BITS(regAUDIO_RX_0, AHSLEN, 1);
+ reg_write |= SET_BITS(regAUDIO_RX_0, AHSLEN, 1);
+ reg_mask |= SET_BITS(regAUDIO_RX_0, AHSREN, 1);
+ reg_write |= SET_BITS(regAUDIO_RX_0, AHSREN, 1);
+
+ reg_mask |= SET_BITS(regAUDIO_RX_0, AHSSEL, 1);
+ reg_write |= SET_BITS(regAUDIO_RX_0, AHSSEL, 1);
+
+ reg_mask |= SET_BITS(regAUDIO_RX_0, ADDRXIN, 1);
+ reg_write |= SET_BITS(regAUDIO_RX_0, ADDRXIN, 1);
+
+ reg_mask |= SET_BITS(regAUDIO_RX_0, HSPGDIS, 1);
+ reg_write |= SET_BITS(regAUDIO_RX_0, HSPGDIS, 0);
+ } else {
+ reg_mask |= SET_BITS(regAUDIO_RX_0, ADDRXIN, 1);
+ reg_write |= SET_BITS(regAUDIO_RX_0, ADDRXIN, 0);
+ }
+ rc = pmic_write_reg(REG_AUDIO_RX_0, reg_write, reg_mask);
+ if (rc != PMIC_SUCCESS)
+ return rc;
+ if (enable) {
+ reg_mask = SET_BITS(regAUDIO_RX_1, ARXINEN, 1);
+ reg_write = SET_BITS(regAUDIO_RX_1, ARXINEN, 1);
+ } else {
+ reg_mask = SET_BITS(regAUDIO_RX_1, ARXINEN, 1);
+ reg_write = SET_BITS(regAUDIO_RX_1, ARXINEN, 0);
+ }
+ rc = pmic_write_reg(REG_AUDIO_RX_1, reg_write, reg_mask);
+ return rc;
+}
+
+/*@}*/
+
+/**************************************************************************
+ * Module initialization and termination functions.
+ *
+ * Note that if this code is compiled into the kernel, then the
+ * module_init() function will be called within the device_initcall()
+ * group.
+ **************************************************************************
+ */
+
+/*!
+ * @name Audio Driver Loading/Unloading Functions
+ * These non-exported internal functions are used to support the audio
+ * device driver initialization and de-initialization operations.
+ */
+/*@{*/
+
+/*!
+ * @brief This is the audio device driver initialization function.
+ *
+ * This function is called by the kernel when this device driver is first
+ * loaded.
+ */
+static int __init mc13783_pmic_audio_init(void)
+{
+ printk(KERN_INFO "PMIC Audio driver loading...\n");
+
+ return 0;
+}
+
+/*!
+ * @brief This is the audio device driver de-initialization function.
+ *
+ * This function is called by the kernel when this device driver is about
+ * to be unloaded.
+ */
+static void __exit mc13783_pmic_audio_exit(void)
+{
+ printk(KERN_INFO "PMIC Audio driver unloading...\n");
+
+ /* Close all device handles that are still open. This will also
+ * deregister any callbacks that may still be active.
+ */
+ if (stDAC.handleState == HANDLE_IN_USE) {
+ pmic_audio_close(stDAC.handle);
+ }
+ if (vCodec.handleState == HANDLE_IN_USE) {
+ pmic_audio_close(vCodec.handle);
+ }
+ if (extStereoIn.handleState == HANDLE_IN_USE) {
+ pmic_audio_close(extStereoIn.handle);
+ }
+
+ /* Explicitly reset all of the audio registers so that there is no
+ * possibility of leaving the audio hardware in a state
+ * where it can cause problems if there is no device driver loaded.
+ */
+ pmic_write_reg(REG_AUDIO_STEREO_DAC, RESET_ST_DAC, REG_FULLMASK);
+ pmic_write_reg(REG_AUDIO_CODEC, RESET_AUD_CODEC, REG_FULLMASK);
+ pmic_write_reg(REG_AUDIO_TX, RESET_AUDIO_TX, REG_FULLMASK);
+ pmic_write_reg(REG_AUDIO_SSI_NETWORK, RESET_SSI_NETWORK, REG_FULLMASK);
+ pmic_write_reg(REG_AUDIO_RX_0, RESET_AUDIO_RX_0, REG_FULLMASK);
+ pmic_write_reg(REG_AUDIO_RX_1, RESET_AUDIO_RX_1, REG_FULLMASK);
+}
+
+/*@}*/
+
+/*
+ * Module entry points and description information.
+ */
+
+module_init(mc13783_pmic_audio_init);
+module_exit(mc13783_pmic_audio_exit);
+
+MODULE_DESCRIPTION("PMIC - mc13783 ADC driver");
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_LICENSE("GPL");
diff --git a/drivers/mxc/pmic/mc13783/pmic_battery.c b/drivers/mxc/pmic/mc13783/pmic_battery.c
new file mode 100644
index 000000000000..f721218e8fb1
--- /dev/null
+++ b/drivers/mxc/pmic/mc13783/pmic_battery.c
@@ -0,0 +1,1220 @@
+/*
+ * Copyright 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file mc13783/pmic_battery.c
+ * @brief This is the main file of PMIC(mc13783) Battery driver.
+ *
+ * @ingroup PMIC_BATTERY
+ */
+
+/*
+ * Includes
+ */
+#include <linux/slab.h>
+#include <linux/platform_device.h>
+#include <linux/poll.h>
+#include <linux/sched.h>
+#include <linux/time.h>
+#include <linux/delay.h>
+#include <linux/wait.h>
+
+#include <linux/pmic_battery.h>
+#include <linux/pmic_adc.h>
+#include <linux/pmic_status.h>
+
+#include "pmic_battery_defs.h"
+
+#include <mach/pmic_power.h>
+#ifdef CONFIG_MXC_HWEVENT
+#include <mach/hw_events.h>
+#endif
+
+static int pmic_battery_major;
+
+/*!
+ * Number of users waiting in suspendq
+ */
+static int swait;
+
+/*!
+ * To indicate whether any of the battery devices are suspending
+ */
+static int suspend_flag;
+
+/*!
+ * The suspendq is used to block application calls
+ */
+static wait_queue_head_t suspendq;
+
+static struct class *pmic_battery_class;
+
+/* EXPORTED FUNCTIONS */
+EXPORT_SYMBOL(pmic_batt_enable_charger);
+EXPORT_SYMBOL(pmic_batt_disable_charger);
+EXPORT_SYMBOL(pmic_batt_set_charger);
+EXPORT_SYMBOL(pmic_batt_get_charger_setting);
+EXPORT_SYMBOL(pmic_batt_get_charge_current);
+EXPORT_SYMBOL(pmic_batt_enable_eol);
+EXPORT_SYMBOL(pmic_batt_bp_enable_eol);
+EXPORT_SYMBOL(pmic_batt_disable_eol);
+EXPORT_SYMBOL(pmic_batt_set_out_control);
+EXPORT_SYMBOL(pmic_batt_set_threshold);
+EXPORT_SYMBOL(pmic_batt_led_control);
+EXPORT_SYMBOL(pmic_batt_set_reverse_supply);
+EXPORT_SYMBOL(pmic_batt_set_unregulated);
+EXPORT_SYMBOL(pmic_batt_set_5k_pull);
+EXPORT_SYMBOL(pmic_batt_event_subscribe);
+EXPORT_SYMBOL(pmic_batt_event_unsubscribe);
+
+static DECLARE_MUTEX(count_mutex); /* open count mutex */
+static int open_count; /* open count for device file */
+
+/*!
+ * Callback function for events, we want on MGN board
+ */
+static void callback_chg_detect(void)
+{
+#ifdef CONFIG_MXC_HWEVENT
+ t_sensor_bits sensor;
+ struct mxc_hw_event event = { HWE_BAT_CHARGER_PLUG, 0 };
+
+ pr_debug("In callback_chg_detect\n");
+
+ /* get sensor values */
+ pmic_get_sensors(&sensor);
+
+ pr_debug("Callback, charger detect:%d\n", sensor.sense_chgdets);
+
+ if (sensor.sense_chgdets)
+ event.args = 1;
+ else
+ event.args = 0;
+ /* send hardware event */
+ hw_event_send(HWE_DEF_PRIORITY, &event);
+#endif
+}
+
+static void callback_low_battery(void)
+{
+#ifdef CONFIG_MXC_HWEVENT
+ struct mxc_hw_event event = { HWE_BAT_BATTERY_LOW, 0 };
+
+ pr_debug("In callback_low_battery\n");
+ /* send hardware event */
+ hw_event_send(HWE_DEF_PRIORITY, &event);
+#endif
+}
+
+static void callback_power_fail(void)
+{
+#ifdef CONFIG_MXC_HWEVENT
+ struct mxc_hw_event event = { HWE_BAT_POWER_FAILED, 0 };
+
+ pr_debug("In callback_power_fail\n");
+ /* send hardware event */
+ hw_event_send(HWE_DEF_PRIORITY, &event);
+#endif
+}
+
+static void callback_chg_overvoltage(void)
+{
+#ifdef CONFIG_MXC_HWEVENT
+ struct mxc_hw_event event = { HWE_BAT_CHARGER_OVERVOLTAGE, 0 };
+
+ pr_debug("In callback_chg_overvoltage\n");
+ /* send hardware event */
+ hw_event_send(HWE_DEF_PRIORITY, &event);
+#endif
+}
+
+static void callback_chg_full(void)
+{
+#ifdef CONFIG_MXC_HWEVENT
+ t_sensor_bits sensor;
+ struct mxc_hw_event event = { HWE_BAT_CHARGER_FULL, 0 };
+
+ pr_debug("In callback_chg_full\n");
+
+ /* disable charge function */
+ pmic_batt_disable_charger(BATT_MAIN_CHGR);
+
+ /* get charger sensor */
+ pmic_get_sensors(&sensor);
+
+ /* if did not detect the charger */
+ if (sensor.sense_chgdets)
+ return;
+ /* send hardware event */
+ hw_event_send(HWE_DEF_PRIORITY, &event);
+#endif
+}
+
+/*!
+ * This is the suspend of power management for the pmic battery API.
+ * It suports SAVE and POWER_DOWN state.
+ *
+ * @param pdev the device
+ * @param state the state
+ *
+ * @return This function returns 0 if successful.
+ */
+static int pmic_battery_suspend(struct platform_device *pdev,
+ pm_message_t state)
+{
+ unsigned int reg_value = 0;
+
+ suspend_flag = 1;
+ CHECK_ERROR(pmic_write_reg(REG_CHARGER, reg_value, PMIC_ALL_BITS));
+
+ return 0;
+};
+
+/*!
+ * This is the resume of power management for the pmic battery API.
+ * It suports RESTORE state.
+ *
+ * @param pdev the device
+ *
+ * @return This function returns 0 if successful.
+ */
+static int pmic_battery_resume(struct platform_device *pdev)
+{
+ suspend_flag = 0;
+ while (swait > 0) {
+ swait--;
+ wake_up_interruptible(&suspendq);
+ }
+
+ return 0;
+};
+
+/*!
+ * This function is used to start charging a battery. For different charger,
+ * different voltage and current range are supported. \n
+ *
+ *
+ * @param chgr Charger as defined in \b t_batt_charger.
+ * @param c_voltage Charging voltage.
+ * @param c_current Charging current.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_batt_enable_charger(t_batt_charger chgr,
+ unsigned char c_voltage,
+ unsigned char c_current)
+{
+ unsigned int val, mask, reg;
+
+ val = 0;
+ mask = 0;
+ reg = 0;
+
+ if (suspend_flag == 1)
+ return PMIC_ERROR;
+
+ switch (chgr) {
+ case BATT_MAIN_CHGR:
+ val = BITFVAL(MC13783_BATT_DAC_DAC, c_current) |
+ BITFVAL(MC13783_BATT_DAC_V_DAC, c_voltage);
+ mask = BITFMASK(MC13783_BATT_DAC_DAC) |
+ BITFMASK(MC13783_BATT_DAC_V_DAC);
+ reg = REG_CHARGER;
+ break;
+
+ case BATT_CELL_CHGR:
+ val = BITFVAL(MC13783_BATT_DAC_V_COIN, c_voltage) |
+ BITFVAL(MC13783_BATT_DAC_COIN_CH_EN,
+ MC13783_BATT_DAC_COIN_CH_EN_ENABLED);
+ mask = BITFMASK(MC13783_BATT_DAC_V_COIN) |
+ BITFMASK(MC13783_BATT_DAC_COIN_CH_EN);
+ reg = REG_POWER_CONTROL_0;
+ break;
+
+ case BATT_TRCKLE_CHGR:
+ val = BITFVAL(MC13783_BATT_DAC_TRCKLE, c_current);
+ mask = BITFMASK(MC13783_BATT_DAC_TRCKLE);
+ reg = REG_CHARGER;
+ break;
+
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ CHECK_ERROR(pmic_write_reg(reg, val, mask));
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function turns off a charger.
+ *
+ * @param chgr Charger as defined in \b t_batt_charger.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_batt_disable_charger(t_batt_charger chgr)
+{
+ unsigned int val, mask, reg;
+
+ val = 0;
+ mask = 0;
+ reg = 0;
+
+ if (suspend_flag == 1)
+ return PMIC_ERROR;
+ switch (chgr) {
+ case BATT_MAIN_CHGR:
+ val = BITFVAL(MC13783_BATT_DAC_DAC, 0) |
+ BITFVAL(MC13783_BATT_DAC_V_DAC, 0);
+ mask = BITFMASK(MC13783_BATT_DAC_DAC) |
+ BITFMASK(MC13783_BATT_DAC_V_DAC);
+ reg = REG_CHARGER;
+ break;
+
+ case BATT_CELL_CHGR:
+ val = BITFVAL(MC13783_BATT_DAC_COIN_CH_EN,
+ MC13783_BATT_DAC_COIN_CH_EN_DISABLED);
+ mask = BITFMASK(MC13783_BATT_DAC_COIN_CH_EN);
+ reg = REG_POWER_CONTROL_0;
+ break;
+
+ case BATT_TRCKLE_CHGR:
+ val = BITFVAL(MC13783_BATT_DAC_TRCKLE, 0);
+ mask = BITFMASK(MC13783_BATT_DAC_TRCKLE);
+ reg = REG_CHARGER;
+ break;
+
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ CHECK_ERROR(pmic_write_reg(reg, val, mask));
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function is used to change the charger setting.
+ *
+ * @param chgr Charger as defined in \b t_batt_charger.
+ * @param c_voltage Charging voltage.
+ * @param c_current Charging current.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_batt_set_charger(t_batt_charger chgr,
+ unsigned char c_voltage,
+ unsigned char c_current)
+{
+ unsigned int val, mask, reg;
+
+ val = 0;
+ mask = 0;
+ reg = 0;
+
+ if (suspend_flag == 1)
+ return PMIC_ERROR;
+
+ switch (chgr) {
+ case BATT_MAIN_CHGR:
+ val = BITFVAL(MC13783_BATT_DAC_DAC, c_current) |
+ BITFVAL(MC13783_BATT_DAC_V_DAC, c_voltage);
+ mask = BITFMASK(MC13783_BATT_DAC_DAC) |
+ BITFMASK(MC13783_BATT_DAC_V_DAC);
+ reg = REG_CHARGER;
+ break;
+
+ case BATT_CELL_CHGR:
+ val = BITFVAL(MC13783_BATT_DAC_V_COIN, c_voltage);
+ mask = BITFMASK(MC13783_BATT_DAC_V_COIN);
+ reg = REG_POWER_CONTROL_0;
+ break;
+
+ case BATT_TRCKLE_CHGR:
+ val = BITFVAL(MC13783_BATT_DAC_TRCKLE, c_current);
+ mask = BITFMASK(MC13783_BATT_DAC_TRCKLE);
+ reg = REG_CHARGER;
+ break;
+
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ CHECK_ERROR(pmic_write_reg(reg, val, mask));
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function is used to retrive the charger setting.
+ *
+ * @param chgr Charger as defined in \b t_batt_charger.
+ * @param c_voltage Output parameter for charging voltage setting.
+ * @param c_current Output parameter for charging current setting.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_batt_get_charger_setting(t_batt_charger chgr,
+ unsigned char *c_voltage,
+ unsigned char *c_current)
+{
+ unsigned int val, reg;
+
+ reg = 0;
+
+ if (suspend_flag == 1)
+ return PMIC_ERROR;
+
+ switch (chgr) {
+ case BATT_MAIN_CHGR:
+ case BATT_TRCKLE_CHGR:
+ reg = REG_CHARGER;
+ break;
+ case BATT_CELL_CHGR:
+ reg = REG_POWER_CONTROL_0;
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ CHECK_ERROR(pmic_read_reg(reg, &val, PMIC_ALL_BITS));
+
+ switch (chgr) {
+ case BATT_MAIN_CHGR:
+ *c_voltage = BITFEXT(val, MC13783_BATT_DAC_V_DAC);;
+ *c_current = BITFEXT(val, MC13783_BATT_DAC_DAC);
+ break;
+
+ case BATT_CELL_CHGR:
+ *c_voltage = BITFEXT(val, MC13783_BATT_DAC_V_COIN);
+ *c_current = 0;
+ break;
+
+ case BATT_TRCKLE_CHGR:
+ *c_voltage = 0;
+ *c_current = BITFEXT(val, MC13783_BATT_DAC_TRCKLE);
+ break;
+
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function is retrives the main battery voltage.
+ *
+ * @param b_voltage Output parameter for voltage setting.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_batt_get_batt_voltage(unsigned short *b_voltage)
+{
+ t_channel channel;
+ unsigned short result[8];
+
+ if (suspend_flag == 1)
+ return PMIC_ERROR;
+ channel = BATTERY_VOLTAGE;
+ CHECK_ERROR(pmic_adc_convert(channel, result));
+ *b_voltage = result[0];
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function is retrives the main battery current.
+ *
+ * @param b_current Output parameter for current setting.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_batt_get_batt_current(unsigned short *b_current)
+{
+ t_channel channel;
+ unsigned short result[8];
+
+ if (suspend_flag == 1)
+ return PMIC_ERROR;
+
+ channel = BATTERY_CURRENT;
+ CHECK_ERROR(pmic_adc_convert(channel, result));
+ *b_current = result[0];
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function is retrives the main battery temperature.
+ *
+ * @param b_temper Output parameter for temperature setting.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_batt_get_batt_temperature(unsigned short *b_temper)
+{
+ t_channel channel;
+ unsigned short result[8];
+
+ if (suspend_flag == 1)
+ return PMIC_ERROR;
+
+ channel = GEN_PURPOSE_AD5;
+ CHECK_ERROR(pmic_adc_convert(channel, result));
+ *b_temper = result[0];
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function is retrives the main battery charging voltage.
+ *
+ * @param c_voltage Output parameter for charging voltage setting.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_batt_get_charge_voltage(unsigned short *c_voltage)
+{
+ t_channel channel;
+ unsigned short result[8];
+
+ if (suspend_flag == 1)
+ return PMIC_ERROR;
+
+ channel = CHARGE_VOLTAGE;
+ CHECK_ERROR(pmic_adc_convert(channel, result));
+ *c_voltage = result[0];
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function is retrives the main battery charging current.
+ *
+ * @param c_current Output parameter for charging current setting.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_batt_get_charge_current(unsigned short *c_current)
+{
+ t_channel channel;
+ unsigned short result[8];
+
+ if (suspend_flag == 1)
+ return PMIC_ERROR;
+
+ channel = CHARGE_CURRENT;
+ CHECK_ERROR(pmic_adc_convert(channel, result));
+ *c_current = result[0];
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function enables End-of-Life comparator. Not supported on
+ * mc13783. Use pmic_batt_bp_enable_eol function.
+ *
+ * @param threshold End-of-Life threshold.
+ *
+ * @return This function returns PMIC_UNSUPPORTED
+ */
+PMIC_STATUS pmic_batt_enable_eol(unsigned char threshold)
+{
+ return PMIC_NOT_SUPPORTED;
+}
+
+/*!
+ * This function enables End-of-Life comparator.
+ *
+ * @param typical Falling Edge Threshold threshold.
+ * @verbatim
+ BPDET UVDET LOBATL
+ ____ _____ ___________
+ 0 2.6 UVDET + 0.2
+ 1 2.6 UVDET + 0.3
+ 2 2.6 UVDET + 0.4
+ 3 2.6 UVDET + 0.5
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_batt_bp_enable_eol(t_bp_threshold typical)
+{
+ unsigned int val, mask;
+
+ if (suspend_flag == 1)
+ return PMIC_ERROR;
+
+ val = BITFVAL(MC13783_BATT_DAC_EOL_CMP_EN,
+ MC13783_BATT_DAC_EOL_CMP_EN_ENABLE) |
+ BITFVAL(MC13783_BATT_DAC_EOL_SEL, typical);
+ mask = BITFMASK(MC13783_BATT_DAC_EOL_CMP_EN) |
+ BITFMASK(MC13783_BATT_DAC_EOL_SEL);
+
+ CHECK_ERROR(pmic_write_reg(REG_POWER_CONTROL_0, val, mask));
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function disables End-of-Life comparator.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_batt_disable_eol(void)
+{
+ unsigned int val, mask;
+
+ if (suspend_flag == 1)
+ return PMIC_ERROR;
+
+ val = BITFVAL(MC13783_BATT_DAC_EOL_CMP_EN,
+ MC13783_BATT_DAC_EOL_CMP_EN_DISABLE);
+ mask = BITFMASK(MC13783_BATT_DAC_EOL_CMP_EN);
+
+ CHECK_ERROR(pmic_write_reg(REG_POWER_CONTROL_0, val, mask));
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function sets the output controls.
+ * It sets the FETOVRD and FETCTRL bits of mc13783
+ *
+ * @param control type of control.
+ *
+ * @return This function returns 0 if successful.
+ */
+PMIC_STATUS pmic_batt_set_out_control(t_control control)
+{
+ unsigned int val, mask;
+ if (suspend_flag == 1)
+ return PMIC_ERROR;
+
+ switch (control) {
+ case CONTROL_HARDWARE:
+ val = BITFVAL(MC13783_BATT_DAC_FETOVRD_EN, 0) |
+ BITFVAL(MC13783_BATT_DAC_FETCTRL_EN, 0);
+ mask = BITFMASK(MC13783_BATT_DAC_FETOVRD_EN) |
+ BITFMASK(MC13783_BATT_DAC_FETCTRL_EN);
+ break;
+ case CONTROL_BPFET_LOW:
+ val = BITFVAL(MC13783_BATT_DAC_FETOVRD_EN, 1) |
+ BITFVAL(MC13783_BATT_DAC_FETCTRL_EN, 0);
+ mask = BITFMASK(MC13783_BATT_DAC_FETOVRD_EN) |
+ BITFMASK(MC13783_BATT_DAC_FETCTRL_EN);
+ break;
+ case CONTROL_BPFET_HIGH:
+ val = BITFVAL(MC13783_BATT_DAC_FETOVRD_EN, 1) |
+ BITFVAL(MC13783_BATT_DAC_FETCTRL_EN, 1);
+ mask = BITFMASK(MC13783_BATT_DAC_FETOVRD_EN) |
+ BITFMASK(MC13783_BATT_DAC_FETCTRL_EN);
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ CHECK_ERROR(pmic_write_reg(REG_CHARGER, val, mask));
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function sets over voltage threshold.
+ *
+ * @param threshold value of over voltage threshold.
+ *
+ * @return This function returns 0 if successful.
+ */
+PMIC_STATUS pmic_batt_set_threshold(int threshold)
+{
+ unsigned int val, mask;
+
+ if (suspend_flag == 1)
+ return PMIC_ERROR;
+
+ if (threshold > BAT_THRESHOLD_MAX)
+ return PMIC_PARAMETER_ERROR;
+
+ val = BITFVAL(MC13783_BATT_DAC_OVCTRL, threshold);
+ mask = BITFMASK(MC13783_BATT_DAC_OVCTRL);
+ CHECK_ERROR(pmic_write_reg(REG_CHARGER, val, mask));
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function controls charge LED.
+ *
+ * @param on If on is ture, LED will be turned on,
+ * or otherwise, LED will be turned off.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_batt_led_control(bool on)
+{
+ unsigned val, mask;
+
+ if (suspend_flag == 1)
+ return PMIC_ERROR;
+
+ val = BITFVAL(MC13783_BATT_DAC_LED_EN, on);
+ mask = BITFMASK(MC13783_BATT_DAC_LED_EN);
+
+ CHECK_ERROR(pmic_write_reg(REG_CHARGER, val, mask));
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function sets reverse supply mode.
+ *
+ * @param enable If enable is ture, reverse supply mode is enable,
+ * or otherwise, reverse supply mode is disabled.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_batt_set_reverse_supply(bool enable)
+{
+ unsigned val, mask;
+
+ if (suspend_flag == 1)
+ return PMIC_ERROR;
+
+ val = BITFVAL(MC13783_BATT_DAC_REVERSE_SUPPLY, enable);
+ mask = BITFMASK(MC13783_BATT_DAC_REVERSE_SUPPLY);
+
+ CHECK_ERROR(pmic_write_reg(REG_CHARGER, val, mask));
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function sets unregulatored charging mode on main battery.
+ *
+ * @param enable If enable is ture, unregulated charging mode is
+ * enable, or otherwise, disabled.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_batt_set_unregulated(bool enable)
+{
+ unsigned val, mask;
+
+ if (suspend_flag == 1)
+ return PMIC_ERROR;
+
+ val = BITFVAL(MC13783_BATT_DAC_UNREGULATED, enable);
+ mask = BITFMASK(MC13783_BATT_DAC_UNREGULATED);
+
+ CHECK_ERROR(pmic_write_reg(REG_CHARGER, val, mask));
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function sets a 5K pull down at CHRGRAW.
+ * To be used in the dual path charging configuration.
+ *
+ * @param enable If enable is true, 5k pull down is
+ * enable, or otherwise, disabled.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_batt_set_5k_pull(bool enable)
+{
+ unsigned val, mask;
+
+ if (suspend_flag == 1)
+ return PMIC_ERROR;
+
+ val = BITFVAL(MC13783_BATT_DAC_5K, enable);
+ mask = BITFMASK(MC13783_BATT_DAC_5K);
+
+ CHECK_ERROR(pmic_write_reg(REG_CHARGER, val, mask));
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function is used to un/subscribe on battery event IT.
+ *
+ * @param event type of event.
+ * @param callback event callback function.
+ * @param sub define if Un/subscribe event.
+ *
+ * @return This function returns 0 if successful.
+ */
+PMIC_STATUS mc13783_battery_event(t_batt_event event, void *callback, bool sub)
+{
+ pmic_event_callback_t bat_callback;
+ type_event bat_event;
+
+ bat_callback.func = callback;
+ bat_callback.param = NULL;
+ switch (event) {
+ case BAT_IT_CHG_DET:
+ bat_event = EVENT_CHGDETI;
+ break;
+ case BAT_IT_CHG_OVERVOLT:
+ bat_event = EVENT_CHGOVI;
+ break;
+ case BAT_IT_CHG_REVERSE:
+ bat_event = EVENT_CHGREVI;
+ break;
+ case BAT_IT_CHG_SHORT_CIRCUIT:
+ bat_event = EVENT_CHGSHORTI;
+ break;
+ case BAT_IT_CCCV:
+ bat_event = EVENT_CCCVI;
+ break;
+ case BAT_IT_BELOW_THRESHOLD:
+ bat_event = EVENT_CHRGCURRI;
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+ if (sub == true) {
+ CHECK_ERROR(pmic_event_subscribe(bat_event, bat_callback));
+ } else {
+ CHECK_ERROR(pmic_event_unsubscribe(bat_event, bat_callback));
+ }
+ return 0;
+}
+
+/*!
+ * This function is used to subscribe on battery event IT.
+ *
+ * @param event type of event.
+ * @param callback event callback function.
+ *
+ * @return This function returns 0 if successful.
+ */
+PMIC_STATUS pmic_batt_event_subscribe(t_batt_event event, void *callback)
+{
+ if (suspend_flag == 1)
+ return PMIC_ERROR;
+
+ return mc13783_battery_event(event, callback, true);
+}
+
+/*!
+ * This function is used to un subscribe on battery event IT.
+ *
+ * @param event type of event.
+ * @param callback event callback function.
+ *
+ * @return This function returns 0 if successful.
+ */
+PMIC_STATUS pmic_batt_event_unsubscribe(t_batt_event event, void *callback)
+{
+ if (suspend_flag == 1)
+ return PMIC_ERROR;
+
+ return mc13783_battery_event(event, callback, false);
+}
+
+/*!
+ * This function implements IOCTL controls on a PMIC Battery device.
+ *
+ * @param inode pointer on the node
+ * @param file pointer on the file
+ * @param cmd the command
+ * @param arg the parameter
+ * @return This function returns 0 if successful.
+ */
+static int pmic_battery_ioctl(struct inode *inode, struct file *file,
+ unsigned int cmd, unsigned long arg)
+{
+ t_charger_setting *chgr_setting = NULL;
+ unsigned short c_current;
+ unsigned int bc_info;
+ t_eol_setting *eol_setting;
+
+ if (_IOC_TYPE(cmd) != 'p')
+ return -ENOTTY;
+
+ chgr_setting = kmalloc(sizeof(t_charger_setting), GFP_KERNEL);
+ eol_setting = kmalloc(sizeof(t_eol_setting), GFP_KERNEL);
+ switch (cmd) {
+ case PMIC_BATT_CHARGER_CONTROL:
+ if (chgr_setting == NULL)
+ return -ENOMEM;
+
+ if (copy_from_user(chgr_setting, (t_charger_setting *) arg,
+ sizeof(t_charger_setting))) {
+ kfree(chgr_setting);
+ return -EFAULT;
+ }
+
+ if (chgr_setting->on != false) {
+ CHECK_ERROR_KFREE(pmic_batt_enable_charger
+ (chgr_setting->chgr,
+ chgr_setting->c_voltage,
+ chgr_setting->c_current),
+ (kfree(chgr_setting)));
+ } else {
+ CHECK_ERROR(pmic_batt_disable_charger
+ (chgr_setting->chgr));
+ }
+
+ kfree(chgr_setting);
+ break;
+
+ case PMIC_BATT_SET_CHARGER:
+ if (chgr_setting == NULL)
+ return -ENOMEM;
+
+ if (copy_from_user(chgr_setting, (t_charger_setting *) arg,
+ sizeof(t_charger_setting))) {
+ kfree(chgr_setting);
+ return -EFAULT;
+ }
+
+ CHECK_ERROR_KFREE(pmic_batt_set_charger(chgr_setting->chgr,
+ chgr_setting->c_voltage,
+ chgr_setting->
+ c_current),
+ (kfree(chgr_setting)));
+
+ kfree(chgr_setting);
+ break;
+
+ case PMIC_BATT_GET_CHARGER:
+ if (chgr_setting == NULL)
+ return -ENOMEM;
+
+ if (copy_from_user(chgr_setting, (t_charger_setting *) arg,
+ sizeof(t_charger_setting))) {
+ kfree(chgr_setting);
+ return -EFAULT;
+ }
+
+ CHECK_ERROR_KFREE(pmic_batt_get_charger_setting
+ (chgr_setting->chgr, &chgr_setting->c_voltage,
+ &chgr_setting->c_current),
+ (kfree(chgr_setting)));
+ if (copy_to_user
+ ((t_charger_setting *) arg, chgr_setting,
+ sizeof(t_charger_setting))) {
+ return -EFAULT;
+ }
+
+ kfree(chgr_setting);
+ break;
+
+ case PMIC_BATT_GET_CHARGER_SENSOR:
+ {
+ t_sensor_bits sensor;
+ pmic_get_sensors(&sensor);
+ if (copy_to_user
+ ((unsigned int *)arg, &sensor.sense_chgdets,
+ sizeof(unsigned int)))
+ return -EFAULT;
+
+ break;
+ }
+ case PMIC_BATT_GET_BATTERY_VOLTAGE:
+ CHECK_ERROR(pmic_batt_get_batt_voltage(&c_current));
+ bc_info = (unsigned int)c_current * 2300 / 1023 + 2400;
+ if (copy_to_user((unsigned int *)arg, &bc_info,
+ sizeof(unsigned int)))
+ return -EFAULT;
+
+ break;
+
+ case PMIC_BATT_GET_BATTERY_CURRENT:
+ CHECK_ERROR(pmic_batt_get_batt_current(&c_current));
+ bc_info = (unsigned int)c_current * 5750 / 1023;
+ if (copy_to_user((unsigned int *)arg, &bc_info,
+ sizeof(unsigned int)))
+ return -EFAULT;
+ break;
+
+ case PMIC_BATT_GET_BATTERY_TEMPERATURE:
+ CHECK_ERROR(pmic_batt_get_batt_temperature(&c_current));
+ bc_info = (unsigned int)c_current;
+ if (copy_to_user((unsigned int *)arg, &bc_info,
+ sizeof(unsigned int)))
+ return -EFAULT;
+
+ break;
+
+ case PMIC_BATT_GET_CHARGER_VOLTAGE:
+ CHECK_ERROR(pmic_batt_get_charge_voltage(&c_current));
+ bc_info = (unsigned int)c_current * 23000 / 1023;
+ if (copy_to_user((unsigned int *)arg, &bc_info,
+ sizeof(unsigned int)))
+ return -EFAULT;
+
+ break;
+
+ case PMIC_BATT_GET_CHARGER_CURRENT:
+ CHECK_ERROR(pmic_batt_get_charge_current(&c_current));
+ bc_info = (unsigned int)c_current * 5750 / 1023;
+ if (copy_to_user((unsigned int *)arg, &bc_info,
+ sizeof(unsigned int)))
+ return -EFAULT;
+
+ break;
+
+ case PMIC_BATT_EOL_CONTROL:
+ if (eol_setting == NULL)
+ return -ENOMEM;
+
+ if (copy_from_user(eol_setting, (t_eol_setting *) arg,
+ sizeof(t_eol_setting))) {
+ kfree(eol_setting);
+ return -EFAULT;
+ }
+
+ if (eol_setting->enable != false) {
+ CHECK_ERROR_KFREE(pmic_batt_bp_enable_eol
+ (eol_setting->typical),
+ (kfree(chgr_setting)));
+ } else {
+ CHECK_ERROR_KFREE(pmic_batt_disable_eol(),
+ (kfree(chgr_setting)));
+ }
+
+ kfree(eol_setting);
+ break;
+
+ case PMIC_BATT_SET_OUT_CONTROL:
+ CHECK_ERROR(pmic_batt_set_out_control((t_control) arg));
+ break;
+
+ case PMIC_BATT_SET_THRESHOLD:
+ CHECK_ERROR(pmic_batt_set_threshold((int)arg));
+ break;
+
+ case PMIC_BATT_LED_CONTROL:
+ CHECK_ERROR(pmic_batt_led_control((bool) arg));
+ break;
+
+ case PMIC_BATT_REV_SUPP_CONTROL:
+ CHECK_ERROR(pmic_batt_set_reverse_supply((bool) arg));
+ break;
+
+ case PMIC_BATT_UNREG_CONTROL:
+ CHECK_ERROR(pmic_batt_set_unregulated((bool) arg));
+ break;
+
+ default:
+ return -EINVAL;
+ }
+ return 0;
+}
+
+/*!
+ * This function implements the open method on a Pmic battery device.
+ *
+ * @param inode pointer on the node
+ * @param file pointer on the file
+ * @return This function returns 0.
+ */
+static int pmic_battery_open(struct inode *inode, struct file *file)
+{
+ while (suspend_flag == 1) {
+ swait++;
+ /* Block if the device is suspended */
+ if (wait_event_interruptible(suspendq, (suspend_flag == 0))) {
+ return -ERESTARTSYS;
+ }
+ }
+
+ /* check open count, if open firstly, register callbacks */
+ down(&count_mutex);
+ if (open_count++ > 0) {
+ up(&count_mutex);
+ return 0;
+ }
+
+ pr_debug("Subscribe the callbacks\n");
+ /* register battery event callback */
+ if (pmic_batt_event_subscribe(BAT_IT_CHG_DET, callback_chg_detect)) {
+ pr_debug("Failed to subscribe the charger detect callback\n");
+ goto event_err1;
+ }
+ if (pmic_power_event_sub(PWR_IT_LOBATLI, callback_power_fail)) {
+ pr_debug("Failed to subscribe the power failed callback\n");
+ goto event_err2;
+ }
+ if (pmic_power_event_sub(PWR_IT_LOBATHI, callback_low_battery)) {
+ pr_debug("Failed to subscribe the low battery callback\n");
+ goto event_err3;
+ }
+ if (pmic_batt_event_subscribe
+ (BAT_IT_CHG_OVERVOLT, callback_chg_overvoltage)) {
+ pr_debug("Failed to subscribe the low battery callback\n");
+ goto event_err4;
+ }
+ if (pmic_batt_event_subscribe
+ (BAT_IT_BELOW_THRESHOLD, callback_chg_full)) {
+ pr_debug("Failed to subscribe the charge full callback\n");
+ goto event_err5;
+ }
+
+ up(&count_mutex);
+
+ return 0;
+
+ /* un-subscribe the event callbacks */
+event_err5:
+ pmic_batt_event_unsubscribe(BAT_IT_CHG_OVERVOLT,
+ callback_chg_overvoltage);
+event_err4:
+ pmic_power_event_unsub(PWR_IT_LOBATHI, callback_low_battery);
+event_err3:
+ pmic_power_event_unsub(PWR_IT_LOBATLI, callback_power_fail);
+event_err2:
+ pmic_batt_event_unsubscribe(BAT_IT_CHG_DET, callback_chg_detect);
+event_err1:
+
+ open_count--;
+ up(&count_mutex);
+
+ return -EFAULT;
+
+}
+
+/*!
+ * This function implements the release method on a Pmic battery device.
+ *
+ * @param inode pointer on the node
+ * @param file pointer on the file
+ * @return This function returns 0.
+ */
+static int pmic_battery_release(struct inode *inode, struct file *file)
+{
+ while (suspend_flag == 1) {
+ swait++;
+ /* Block if the device is suspended */
+ if (wait_event_interruptible(suspendq, (suspend_flag == 0))) {
+ return -ERESTARTSYS;
+ }
+ }
+
+ /* check open count, if open firstly, register callbacks */
+ down(&count_mutex);
+ if (--open_count == 0) {
+ /* unregister these event callback */
+ pr_debug("Unsubscribe the callbacks\n");
+ pmic_batt_event_unsubscribe(BAT_IT_BELOW_THRESHOLD,
+ callback_chg_full);
+ pmic_batt_event_unsubscribe(BAT_IT_CHG_OVERVOLT,
+ callback_chg_overvoltage);
+ pmic_power_event_unsub(PWR_IT_LOBATHI, callback_low_battery);
+ pmic_power_event_unsub(PWR_IT_LOBATLI, callback_power_fail);
+ pmic_batt_event_unsubscribe(BAT_IT_CHG_DET,
+ callback_chg_detect);
+ }
+ up(&count_mutex);
+
+ return 0;
+}
+
+static struct file_operations pmic_battery_fops = {
+ .owner = THIS_MODULE,
+ .ioctl = pmic_battery_ioctl,
+ .open = pmic_battery_open,
+ .release = pmic_battery_release,
+};
+
+static int pmic_battery_remove(struct platform_device *pdev)
+{
+ device_destroy(pmic_battery_class, MKDEV(pmic_battery_major, 0));
+ class_destroy(pmic_battery_class);
+ unregister_chrdev(pmic_battery_major, PMIC_BATTERY_STRING);
+ return 0;
+}
+
+static int pmic_battery_probe(struct platform_device *pdev)
+{
+ int ret = 0;
+ struct device *temp_class;
+
+ pmic_battery_major = register_chrdev(0, PMIC_BATTERY_STRING,
+ &pmic_battery_fops);
+
+ if (pmic_battery_major < 0) {
+ printk(KERN_ERR "Unable to get a major for pmic_battery\n");
+ return pmic_battery_major;
+ }
+ init_waitqueue_head(&suspendq);
+
+ pmic_battery_class = class_create(THIS_MODULE, PMIC_BATTERY_STRING);
+ if (IS_ERR(pmic_battery_class)) {
+ printk(KERN_ERR "Error creating PMIC battery class.\n");
+ ret = PTR_ERR(pmic_battery_class);
+ goto err_out1;
+ }
+
+ temp_class = device_create(pmic_battery_class, NULL,
+ MKDEV(pmic_battery_major, 0), NULL,
+ PMIC_BATTERY_STRING);
+ if (IS_ERR(temp_class)) {
+ printk(KERN_ERR "Error creating PMIC battery class device.\n");
+ ret = PTR_ERR(temp_class);
+ goto err_out2;
+ }
+
+ pmic_batt_led_control(true);
+ pmic_batt_set_5k_pull(true);
+
+ printk(KERN_INFO "PMIC Battery successfully probed\n");
+
+ return ret;
+
+ err_out2:
+ class_destroy(pmic_battery_class);
+ err_out1:
+ unregister_chrdev(pmic_battery_major, PMIC_BATTERY_STRING);
+ return ret;
+}
+
+static struct platform_driver pmic_battery_driver_ldm = {
+ .driver = {
+ .name = "pmic_battery",
+ .bus = &platform_bus_type,
+ },
+ .suspend = pmic_battery_suspend,
+ .resume = pmic_battery_resume,
+ .probe = pmic_battery_probe,
+ .remove = pmic_battery_remove,
+};
+
+/*
+ * Init and Exit
+ */
+
+static int __init pmic_battery_init(void)
+{
+ pr_debug("PMIC Battery driver loading...\n");
+ return platform_driver_register(&pmic_battery_driver_ldm);
+}
+
+static void __exit pmic_battery_exit(void)
+{
+ platform_driver_unregister(&pmic_battery_driver_ldm);
+ pr_debug("PMIC Battery driver successfully unloaded\n");
+}
+
+/*
+ * Module entry points
+ */
+
+module_init(pmic_battery_init);
+module_exit(pmic_battery_exit);
+
+MODULE_DESCRIPTION("pmic_battery driver");
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_LICENSE("GPL");
diff --git a/drivers/mxc/pmic/mc13783/pmic_battery_defs.h b/drivers/mxc/pmic/mc13783/pmic_battery_defs.h
new file mode 100644
index 000000000000..29704de301d1
--- /dev/null
+++ b/drivers/mxc/pmic/mc13783/pmic_battery_defs.h
@@ -0,0 +1,81 @@
+/*
+ * Copyright 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file mc13783/pmic_battery_defs.h
+ * @brief This is the internal header for PMIC(mc13783) Battery driver.
+ *
+ * @ingroup PMIC_BATTERY
+ */
+
+#ifndef __PMIC_BATTERY_DEFS_H__
+#define __PMIC_BATTERY_DEFS_H__
+
+#define PMIC_BATTERY_STRING "pmic_battery"
+
+/* REG_CHARGE */
+#define MC13783_BATT_DAC_V_DAC_LSH 0
+#define MC13783_BATT_DAC_V_DAC_WID 3
+#define MC13783_BATT_DAC_DAC_LSH 3
+#define MC13783_BATT_DAC_DAC_WID 4
+#define MC13783_BATT_DAC_TRCKLE_LSH 7
+#define MC13783_BATT_DAC_TRCKLE_WID 3
+#define MC13783_BATT_DAC_FETOVRD_EN_LSH 10
+#define MC13783_BATT_DAC_FETOVRD_EN_WID 1
+#define MC13783_BATT_DAC_FETCTRL_EN_LSH 11
+#define MC13783_BATT_DAC_FETCTRL_EN_WID 1
+#define MC13783_BATT_DAC_REVERSE_SUPPLY_LSH 13
+#define MC13783_BATT_DAC_REVERSE_SUPPLY_WID 1
+#define MC13783_BATT_DAC_OVCTRL_LSH 15
+#define MC13783_BATT_DAC_OVCTRL_WID 2
+#define MC13783_BATT_DAC_UNREGULATED_LSH 17
+#define MC13783_BATT_DAC_UNREGULATED_WID 1
+#define MC13783_BATT_DAC_LED_EN_LSH 18
+#define MC13783_BATT_DAC_LED_EN_WID 1
+#define MC13783_BATT_DAC_5K_LSH 19
+#define MC13783_BATT_DAC_5K_WID 1
+
+#define BITS_OUT_VOLTAGE 0
+#define LONG_OUT_VOLTAGE 3
+#define BITS_CURRENT_MAIN 3
+#define LONG_CURRENT_MAIN 4
+#define BITS_CURRENT_TRICKLE 7
+#define LONG_CURRENT_TRICKLE 3
+#define BIT_FETOVRD 10
+#define BIT_FETCTRL 11
+#define BIT_RVRSMODE 13
+#define BITS_OVERVOLTAGE 15
+#define LONG_OVERVOLTAGE 2
+#define BIT_UNREGULATED 17
+#define BIT_CHRG_LED 18
+#define BIT_CHRGRAWPDEN 19
+
+/* REG_POWXER_CONTROL_0 */
+#define MC13783_BATT_DAC_V_COIN_LSH 20
+#define MC13783_BATT_DAC_V_COIN_WID 3
+#define MC13783_BATT_DAC_COIN_CH_EN_LSH 23
+#define MC13783_BATT_DAC_COIN_CH_EN_WID 1
+#define MC13783_BATT_DAC_COIN_CH_EN_ENABLED 1
+#define MC13783_BATT_DAC_COIN_CH_EN_DISABLED 0
+#define MC13783_BATT_DAC_EOL_CMP_EN_LSH 18
+#define MC13783_BATT_DAC_EOL_CMP_EN_WID 1
+#define MC13783_BATT_DAC_EOL_CMP_EN_ENABLE 1
+#define MC13783_BATT_DAC_EOL_CMP_EN_DISABLE 0
+#define MC13783_BATT_DAC_EOL_SEL_LSH 16
+#define MC13783_BATT_DAC_EOL_SEL_WID 2
+
+#define DEF_VALUE 0
+
+#define BAT_THRESHOLD_MAX 3
+
+#endif /* __PMIC_BATTERY_DEFS_H__ */
diff --git a/drivers/mxc/pmic/mc13783/pmic_convity.c b/drivers/mxc/pmic/mc13783/pmic_convity.c
new file mode 100644
index 000000000000..9d89f493a8f2
--- /dev/null
+++ b/drivers/mxc/pmic/mc13783/pmic_convity.c
@@ -0,0 +1,2468 @@
+/*
+ * Copyright 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file mc13783/pmic_convity.c
+ * @brief Implementation of the PMIC Connectivity driver APIs.
+ *
+ * The PMIC connectivity device driver and this API were developed to support
+ * the external connectivity capabilities of several power management ICs that
+ * are available from Freescale Semiconductor, Inc.
+ *
+ * The following operating modes, in terms of external connectivity, are
+ * supported:
+ *
+ * @verbatim
+ Operating Mode mc13783
+ --------------- -------
+ USB (incl. OTG) Yes
+ RS-232 Yes
+ CEA-936 Yes
+
+ @endverbatim
+ *
+ * @ingroup PMIC_CONNECTIVITY
+ */
+
+#include <linux/interrupt.h> /* For tasklet interface. */
+#include <linux/platform_device.h> /* For kernel module interface. */
+#include <linux/spinlock.h> /* For spinlock interface. */
+#include <linux/pmic_adc.h> /* For PMIC ADC driver interface. */
+#include <linux/pmic_status.h>
+#include <mach/pmic_convity.h> /* For PMIC Connectivity driver interface. */
+
+/*
+ * mc13783 Connectivity API
+ */
+/* EXPORTED FUNCTIONS */
+EXPORT_SYMBOL(pmic_convity_open);
+EXPORT_SYMBOL(pmic_convity_close);
+EXPORT_SYMBOL(pmic_convity_set_mode);
+EXPORT_SYMBOL(pmic_convity_get_mode);
+EXPORT_SYMBOL(pmic_convity_reset);
+EXPORT_SYMBOL(pmic_convity_set_callback);
+EXPORT_SYMBOL(pmic_convity_clear_callback);
+EXPORT_SYMBOL(pmic_convity_get_callback);
+EXPORT_SYMBOL(pmic_convity_usb_set_speed);
+EXPORT_SYMBOL(pmic_convity_usb_get_speed);
+EXPORT_SYMBOL(pmic_convity_usb_set_power_source);
+EXPORT_SYMBOL(pmic_convity_usb_get_power_source);
+EXPORT_SYMBOL(pmic_convity_usb_set_xcvr);
+EXPORT_SYMBOL(pmic_convity_usb_get_xcvr);
+EXPORT_SYMBOL(pmic_convity_usb_otg_set_dlp_duration);
+EXPORT_SYMBOL(pmic_convity_usb_otg_get_dlp_duration);
+EXPORT_SYMBOL(pmic_convity_usb_otg_set_config);
+EXPORT_SYMBOL(pmic_convity_usb_otg_clear_config);
+EXPORT_SYMBOL(pmic_convity_usb_otg_get_config);
+EXPORT_SYMBOL(pmic_convity_set_output);
+EXPORT_SYMBOL(pmic_convity_rs232_set_config);
+EXPORT_SYMBOL(pmic_convity_rs232_get_config);
+EXPORT_SYMBOL(pmic_convity_cea936_exit_signal);
+
+/*! @def SET_BITS
+ * Set a register field to a given value.
+ */
+
+#define SET_BITS(reg, field, value) (((value) << reg.field.offset) & \
+ reg.field.mask)
+
+/*! @def GET_BITS
+ * Get the current value of a given register field.
+ */
+#define GET_BITS(reg, value) (((value) & reg.mask) >> \
+ reg.offset)
+
+/*!
+ * @brief Define the possible states for a device handle.
+ *
+ * This enumeration is used to track the current state of each device handle.
+ */
+typedef enum {
+ HANDLE_FREE, /*!< Handle is available for use. */
+ HANDLE_IN_USE /*!< Handle is currently in use. */
+} HANDLE_STATE;
+
+/*
+ * This structure is used to define a specific hardware register field.
+ *
+ * All hardware register fields are defined using an offset to the LSB
+ * and a mask. The offset is used to right shift a register value before
+ * applying the mask to actually obtain the value of the field.
+ */
+typedef struct {
+ const unsigned char offset; /* Offset of LSB of register field. */
+ const unsigned int mask; /* Mask value used to isolate register field. */
+} REGFIELD;
+
+/*!
+ * @brief This structure is used to identify the fields in the USBCNTRL_REG_0 hardware register.
+ *
+ * This structure lists all of the fields within the USBCNTRL_REG_0 hardware
+ * register.
+ */
+typedef struct {
+ REGFIELD FSENB; /*!< USB Full Speed Enable */
+ REGFIELD USB_SUSPEND; /*!< USB Suspend Mode Enable */
+ REGFIELD USB_PU; /*!< USB Pullup Enable */
+ REGFIELD UDP_PD; /*!< USB Data Plus Pulldown Enable */
+ REGFIELD UDM_PD; /*!< USB 150K UDP Pullup Enable */
+ REGFIELD DP150K_PU; /*!< USB Pullup/Pulldown Override Enable */
+ REGFIELD VBUSPDENB; /*!< USB VBUS Pulldown NMOS Switch Enable */
+ REGFIELD CURRENT_LIMIT; /*!< USB Regulator Current Limit Setting-3 bits */
+ REGFIELD DLP_SRP; /*!< USB Data Line Pulsing Timer Enable */
+ REGFIELD SE0_CONN; /*!< USB Pullup Connect When SE0 Detected */
+ REGFIELD USBXCVREN; /*!< USB Transceiver Enabled When INTERFACE_MODE[2:0]=000 and RESETB=high */
+ REGFIELD PULLOVR; /*!< 1K5 Pullup and UDP/UDM Pulldown Disable When UTXENB=Low */
+ REGFIELD INTERFACE_MODE; /*!< Connectivity Interface Mode Select-3 Bits */
+ REGFIELD DATSE0; /*!< USB Single or Differential Mode Select */
+ REGFIELD BIDIR; /*!< USB Unidirectional/Bidirectional Transmission */
+ REGFIELD USBCNTRL; /*!< USB Mode of Operation controlled By USBEN/SPI Pin */
+ REGFIELD IDPD; /*!< USB UID Pulldown Enable */
+ REGFIELD IDPULSE; /*!< USB Pulse to Gnd on UID Line Generated */
+ REGFIELD IDPUCNTRL; /*!< USB UID Pin pulled high By 5ua Curr Source */
+ REGFIELD DMPULSE; /*!< USB Positive pulse on the UDM Line Generated */
+} USBCNTRL_REG_0;
+
+/*!
+ * @brief This variable is used to access the USBCNTRL_REG_0 hardware register.
+ *
+ * This variable defines how to access all of the fields within the
+ * USBCNTRL_REG_0 hardware register. The initial values consist of the offset
+ * and mask values needed to access each of the register fields.
+ */
+static const USBCNTRL_REG_0 regUSB0 = {
+ {0, 0x000001}, /*!< FSENB */
+ {1, 0x000002}, /*!< USB_SUSPEND */
+ {2, 0x000004}, /*!< USB_PU */
+ {3, 0x000008}, /*!< UDP_PD */
+ {4, 0x000010}, /*!< UDM_PD */
+ {5, 0x000020}, /*!< DP150K_PU */
+ {6, 0x000040}, /*!< VBUSPDENB */
+ {7, 0x000380}, /*!< CURRENT_LIMIT */
+ {10, 0x000400}, /*!< DLP_SRP */
+ {11, 0x000800}, /*!< SE0_CONN */
+ {12, 0x001000}, /*!< USBXCVREN */
+ {13, 0x002000}, /*!< PULLOVR */
+ {14, 0x01c000}, /*!< INTERFACE_MODE */
+ {17, 0x020000}, /*!< DATSE0 */
+ {18, 0x040000}, /*!< BIDIR */
+ {19, 0x080000}, /*!< USBCNTRL */
+ {20, 0x100000}, /*!< IDPD */
+ {21, 0x200000}, /*!< IDPULSE */
+ {22, 0x400000}, /*!< IDPUCNTRL */
+ {23, 0x800000} /*!< DMPULSE */
+
+};
+
+/*!
+ * @brief This structure is used to identify the fields in the USBCNTRL_REG_1 hardware register.
+ *
+ * This structure lists all of the fields within the USBCNTRL_REG_1 hardware
+ * register.
+ */
+typedef struct {
+ REGFIELD VUSBIN; /*!< Controls The Input Source For VUSB */
+ REGFIELD VUSB; /*!< VUSB Output Voltage Select-High=3.3V Low=2.775V */
+ REGFIELD VUSBEN; /*!< VUSB Output Enable- */
+ REGFIELD VBUSEN; /*!< VBUS Output Enable- */
+ REGFIELD RSPOL; /*!< Low=RS232 TX on UDM, RX on UDP
+ High= RS232 TX on UDP, RX on UDM */
+ REGFIELD RSTRI; /*!< TX Forced To Tristate in RS232 Mode Only */
+ REGFIELD ID100kPU; /*!< 100k UID Pullup Enabled */
+} USBCNTRL_REG_1;
+
+/*!
+ * @brief This variable is used to access the USBCNTRL_REG_1 hardware register.
+ *
+ * This variable defines how to access all of the fields within the
+ * USBCNTRL_REG_1 hardware register. The initial values consist of the offset
+ * and mask values needed to access each of the register fields.
+ */
+static const USBCNTRL_REG_1 regUSB1 = {
+ {0, 0x000003}, /*!< VUSBIN-2 Bits */
+ {2, 0x000004}, /*!< VUSB */
+ {3, 0x000008}, /*!< VUSBEN */
+ /*{4, 0x000010} *//*!< Reserved */
+ {5, 0x000020}, /*!< VBUSEN */
+ {6, 0x000040}, /*!< RSPOL */
+ {7, 0x000080}, /*!< RSTRI */
+ {8, 0x000100} /*!< ID100kPU */
+ /*!< 9-23 Unused */
+};
+
+/*! Define a mask to access the entire hardware register. */
+static const unsigned int REG_FULLMASK = 0xffffff;
+
+/*! Define the mc13783 USBCNTRL_REG_0 register power on reset state. */
+static const unsigned int RESET_USBCNTRL_REG_0 = 0x080060;
+
+/*! Define the mc13783 USBCNTRL_REG_1 register power on reset state. */
+static const unsigned int RESET_USBCNTRL_REG_1 = 0x000006;
+
+static pmic_event_callback_t eventNotify;
+
+/*!
+ * @brief This structure is used to maintain the current device driver state.
+ *
+ * This structure maintains the current state of the connectivity driver. This
+ * includes both the PMIC hardware state as well as the device handle and
+ * callback states.
+ */
+
+typedef struct {
+ PMIC_CONVITY_HANDLE handle; /*!< Device handle. */
+ HANDLE_STATE handle_state; /*!< Device handle
+ state. */
+ PMIC_CONVITY_MODE mode; /*!< Device mode. */
+ PMIC_CONVITY_CALLBACK callback; /*!< Event callback function pointer. */
+ PMIC_CONVITY_EVENTS eventMask; /*!< Event mask. */
+ PMIC_CONVITY_USB_SPEED usbSpeed; /*!< USB connection
+ speed. */
+ PMIC_CONVITY_USB_MODE usbMode; /*!< USB connection
+ mode. */
+ PMIC_CONVITY_USB_POWER_IN usbPowerIn; /*!< USB transceiver
+ power source. */
+ PMIC_CONVITY_USB_POWER_OUT usbPowerOut; /*!< USB transceiver
+ power output
+ level. */
+ PMIC_CONVITY_USB_TRANSCEIVER_MODE usbXcvrMode; /*!< USB transceiver
+ mode. */
+ unsigned int usbDlpDuration; /*!< USB Data Line
+ Pulsing duration. */
+ PMIC_CONVITY_USB_OTG_CONFIG usbOtgCfg; /*!< USB OTG
+ configuration
+ options. */
+ PMIC_CONVITY_RS232_INTERNAL rs232CfgInternal; /*!< RS-232 internal
+ connections. */
+ PMIC_CONVITY_RS232_EXTERNAL rs232CfgExternal; /*!< RS-232 external
+ connections. */
+} pmic_convity_state_struct;
+
+/*!
+ * @brief This structure is used to maintain the current device driver state.
+ *
+ * This structure maintains the current state of the driver in USB mode. This
+ * includes both the PMIC hardware state as well as the device handle and
+ * callback states.
+ */
+
+typedef struct {
+ PMIC_CONVITY_HANDLE handle; /*!< Device handle. */
+ HANDLE_STATE handle_state; /*!< Device handle
+ state. */
+ PMIC_CONVITY_MODE mode; /*!< Device mode. */
+ PMIC_CONVITY_CALLBACK callback; /*!< Event callback function pointer. */
+ PMIC_CONVITY_EVENTS eventMask; /*!< Event mask. */
+ PMIC_CONVITY_USB_SPEED usbSpeed; /*!< USB connection
+ speed. */
+ PMIC_CONVITY_USB_MODE usbMode; /*!< USB connection
+ mode. */
+ PMIC_CONVITY_USB_POWER_IN usbPowerIn; /*!< USB transceiver
+ power source. */
+ PMIC_CONVITY_USB_POWER_OUT usbPowerOut; /*!< USB transceiver
+ power output
+ level. */
+ PMIC_CONVITY_USB_TRANSCEIVER_MODE usbXcvrMode; /*!< USB transceiver
+ mode. */
+ unsigned int usbDlpDuration; /*!< USB Data Line
+ Pulsing duration. */
+ PMIC_CONVITY_USB_OTG_CONFIG usbOtgCfg; /*!< USB OTG
+ configuration
+ options. */
+} pmic_convity_usb_state;
+
+/*!
+ * @brief This structure is used to maintain the current device driver state.
+ *
+ * This structure maintains the current state of the driver in RS_232 mode. This
+ * includes both the PMIC hardware state as well as the device handle and
+ * callback states.
+ */
+
+typedef struct {
+ PMIC_CONVITY_HANDLE handle; /*!< Device handle. */
+ HANDLE_STATE handle_state; /*!< Device handle
+ state. */
+ PMIC_CONVITY_MODE mode; /*!< Device mode. */
+ PMIC_CONVITY_CALLBACK callback; /*!< Event callback function pointer. */
+ PMIC_CONVITY_EVENTS eventMask; /*!< Event mask. */
+ PMIC_CONVITY_RS232_INTERNAL rs232CfgInternal; /*!< RS-232 internal
+ connections. */
+ PMIC_CONVITY_RS232_EXTERNAL rs232CfgExternal; /*!< RS-232 external
+ connections. */
+} pmic_convity_rs232_state;
+
+/*!
+ * @brief This structure is used to maintain the current device driver state.
+ *
+ * This structure maintains the current state of the driver in cea-936 mode. This
+ * includes both the PMIC hardware state as well as the device handle and
+ * callback states.
+ */
+
+typedef struct {
+ PMIC_CONVITY_HANDLE handle; /*!< Device handle. */
+ HANDLE_STATE handle_state; /*!< Device handle
+ state. */
+ PMIC_CONVITY_MODE mode; /*!< Device mode. */
+ PMIC_CONVITY_CALLBACK callback; /*!< Event callback function pointer. */
+ PMIC_CONVITY_EVENTS eventMask; /*!< Event mask. */
+
+} pmic_convity_cea936_state;
+
+/*!
+ * @brief Identifies the hardware interrupt source.
+ *
+ * This enumeration identifies which of the possible hardware interrupt
+ * sources actually caused the current interrupt handler to be called.
+ */
+typedef enum {
+ CORE_EVENT_4V4 = 1, /*!< Detected USB 4.4 V event. */
+ CORE_EVENT_2V0 = 2, /*!< Detected USB 2.0 V event. */
+ CORE_EVENT_0V8 = 4, /*!< Detected USB 0.8 V event. */
+ CORE_EVENT_ABDET = 8 /*!< Detected USB mini A-B connector event. */
+} PMIC_CORE_EVENT;
+
+/*!
+ * @brief This structure defines the reset/power on state for the Connectivity driver.
+ */
+static const pmic_convity_state_struct reset = {
+ 0,
+ HANDLE_FREE,
+ USB,
+ NULL,
+ 0,
+ USB_FULL_SPEED,
+ USB_PERIPHERAL,
+ USB_POWER_INTERNAL,
+ USB_POWER_3V3,
+ USB_TRANSCEIVER_OFF,
+ 0,
+ USB_PULL_OVERRIDE | USB_VBUS_CURRENT_LIMIT_HIGH,
+ RS232_TX_USE0VM_RX_UDATVP,
+ RS232_TX_UDM_RX_UDP
+};
+
+/*!
+ * @brief This structure maintains the current state of the Connectivity driver.
+ *
+ * The initial values must be identical to the reset state defined by the
+ * #reset variable.
+ */
+static pmic_convity_usb_state usb = {
+ 0,
+ HANDLE_FREE,
+ USB,
+ NULL,
+ 0,
+ USB_FULL_SPEED,
+ USB_PERIPHERAL,
+ USB_POWER_INTERNAL,
+ USB_POWER_3V3,
+ USB_TRANSCEIVER_OFF,
+ 0,
+ USB_PULL_OVERRIDE | USB_VBUS_CURRENT_LIMIT_HIGH,
+};
+
+/*!
+ * @brief This structure maintains the current state of the Connectivity driver.
+ *
+ * The initial values must be identical to the reset state defined by the
+ * #reset variable.
+ */
+static pmic_convity_rs232_state rs_232 = {
+ 0,
+ HANDLE_FREE,
+ RS232_1,
+ NULL,
+ 0,
+ RS232_TX_USE0VM_RX_UDATVP,
+ RS232_TX_UDM_RX_UDP
+};
+
+/*!
+ * @brief This structure maintains the current state of the Connectivity driver.
+ *
+ * The initial values must be identical to the reset state defined by the
+ * #reset variable.
+ */
+static pmic_convity_cea936_state cea_936 = {
+ 0,
+ HANDLE_FREE,
+ CEA936_MONO,
+ NULL,
+ 0,
+};
+
+/*!
+ * @brief This spinlock is used to provide mutual exclusion.
+ *
+ * Create a spinlock that can be used to provide mutually exclusive
+ * read/write access to the globally accessible "convity" data structure
+ * that was defined above. Mutually exclusive access is required to
+ * ensure that the convity data structure is consistent at all times
+ * when possibly accessed by multiple threads of execution (for example,
+ * while simultaneously handling a user request and an interrupt event).
+ *
+ * We need to use a spinlock sometimes because we need to provide mutual
+ * exclusion while handling a hardware interrupt.
+ */
+static DEFINE_SPINLOCK(lock);
+
+/*!
+ * @brief This mutex is used to provide mutual exclusion.
+ *
+ * Create a mutex that can be used to provide mutually exclusive
+ * read/write access to the globally accessible data structures
+ * that were defined above. Mutually exclusive access is required to
+ * ensure that the Connectivity data structures are consistent at all
+ * times when possibly accessed by multiple threads of execution.
+ *
+ * Note that we use a mutex instead of the spinlock whenever disabling
+ * interrupts while in the critical section is not required. This helps
+ * to minimize kernel interrupt handling latency.
+ */
+static DECLARE_MUTEX(mutex);
+
+/* Prototype for the connectivity driver tasklet function. */
+static void pmic_convity_tasklet(struct work_struct *work);
+
+/*!
+ * @brief Tasklet handler for the connectivity driver.
+ *
+ * Declare a tasklet that will do most of the processing for all of the
+ * connectivity-related interrupt events (USB4.4VI, USB2.0VI, USB0.8VI,
+ * and AB_DETI). Note that we cannot do all of the required processing
+ * within the interrupt handler itself because we may need to call the
+ * ADC driver to measure voltages as well as calling any user-registered
+ * callback functions.
+ */
+DECLARE_WORK(convityTasklet, pmic_convity_tasklet);
+
+/*!
+ * @brief Global variable to track currently active interrupt events.
+ *
+ * This global variable is used to keep track of all of the currently
+ * active interrupt events for the connectivity driver. Note that access
+ * to this variable may occur while within an interrupt context and,
+ * therefore, must be guarded by using a spinlock.
+ */
+static PMIC_CORE_EVENT eventID;
+
+/* Prototypes for all static connectivity driver functions. */
+static PMIC_STATUS pmic_convity_set_mode_internal(const PMIC_CONVITY_MODE mode);
+static PMIC_STATUS pmic_convity_deregister_all(void);
+static void pmic_convity_event_handler(void *param);
+
+/**************************************************************************
+ * General setup and configuration functions.
+ **************************************************************************
+ */
+
+/*!
+ * @name General Setup and Configuration Connectivity APIs
+ * Functions for setting up and configuring the connectivity hardware.
+ */
+/*@{*/
+
+/*!
+ * Attempt to open and gain exclusive access to the PMIC connectivity
+ * hardware. An initial operating mode must also be specified.
+ *
+ * If the open request is successful, then a numeric handle is returned
+ * and this handle must be used in all subsequent function calls. The
+ * same handle must also be used in the pmic_convity_close() call when use
+ * of the PMIC connectivity hardware is no longer required.
+ *
+ * @param handle device handle from open() call
+ * @param mode initial connectivity operating mode
+ *
+ * @return PMIC_SUCCESS if the open request was successful
+ */
+PMIC_STATUS pmic_convity_open(PMIC_CONVITY_HANDLE * const handle,
+ const PMIC_CONVITY_MODE mode)
+{
+ PMIC_STATUS rc = PMIC_ERROR;
+
+ if (handle == (PMIC_CONVITY_HANDLE *) NULL) {
+ /* Do not dereference a NULL pointer. */
+ return PMIC_ERROR;
+ }
+
+ /* We only need to acquire a mutex here because the interrupt handler
+ * never modifies the device handle or device handle state. Therefore,
+ * we don't need to worry about conflicts with the interrupt handler
+ * or the need to execute in an interrupt context.
+ *
+ * But we do need a critical section here to avoid problems in case
+ * multiple calls to pmic_convity_open() are made since we can only
+ * allow one of them to succeed.
+ */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ /* Check the current device handle state and acquire the handle if
+ * it is available.
+ */
+ if ((usb.handle_state != HANDLE_FREE)
+ && (rs_232.handle_state != HANDLE_FREE)
+ && (cea_936.handle_state != HANDLE_FREE)) {
+
+ /* Cannot open the PMIC connectivity hardware at this time or an invalid
+ * mode was requested.
+ */
+ *handle = reset.handle;
+ } else {
+
+ if (mode == USB) {
+ usb.handle = (PMIC_CONVITY_HANDLE) (&usb);
+ usb.handle_state = HANDLE_IN_USE;
+ } else if ((mode == RS232_1) || (mode == RS232_2)) {
+ rs_232.handle = (PMIC_CONVITY_HANDLE) (&rs_232);
+ rs_232.handle_state = HANDLE_IN_USE;
+ } else if ((mode == CEA936_STEREO) || (mode == CEA936_MONO)
+ || (mode == CEA936_TEST_LEFT)
+ || (mode == CEA936_TEST_RIGHT)) {
+ cea_936.handle = (PMIC_CONVITY_HANDLE) (&cea_936);
+ cea_936.handle_state = HANDLE_IN_USE;
+
+ }
+ /* Let's begin by acquiring the connectivity device handle. */
+ /* Then we can try to set the desired operating mode. */
+ rc = pmic_convity_set_mode_internal(mode);
+
+ if (rc == PMIC_SUCCESS) {
+ /* Successfully set the desired operating mode, now return the
+ * handle to the caller.
+ */
+ if (mode == USB) {
+ *handle = usb.handle;
+ } else if ((mode == RS232_1) || (mode == RS232_2)) {
+ *handle = rs_232.handle;
+ } else if ((mode == CEA936_STEREO)
+ || (mode == CEA936_MONO)
+ || (mode == CEA936_TEST_LEFT)
+ || (mode == CEA936_TEST_RIGHT)) {
+ *handle = cea_936.handle;
+ }
+ } else {
+ /* Failed to set the desired mode, return the handle to an unused
+ * state.
+ */
+ if (mode == USB) {
+ usb.handle = reset.handle;
+ usb.handle_state = reset.handle_state;
+ } else if ((mode == RS232_1) || (mode == RS232_2)) {
+ rs_232.handle = reset.handle;
+ rs_232.handle_state = reset.handle_state;
+ } else if ((mode == CEA936_STEREO)
+ || (mode == CEA936_MONO)
+ || (mode == CEA936_TEST_LEFT)
+ || (mode == CEA936_TEST_RIGHT)) {
+ cea_936.handle = reset.handle;
+ cea_936.handle_state = reset.handle_state;
+ }
+
+ *handle = reset.handle;
+ }
+ }
+
+ /* Exit the critical section. */
+ up(&mutex);
+
+ return rc;
+}
+
+/*!
+ * Terminate further access to the PMIC connectivity hardware. Also allows
+ * another process to call pmic_convity_open() to gain access.
+ *
+ * @param handle device handle from open() call
+ *
+ * @return PMIC_SUCCESS if the close request was successful
+ */
+PMIC_STATUS pmic_convity_close(const PMIC_CONVITY_HANDLE handle)
+{
+ PMIC_STATUS rc = PMIC_ERROR;
+
+ /* Begin a critical section here to avoid the possibility of race
+ * conditions if multiple threads happen to call this function and
+ * pmic_convity_open() at the same time.
+ */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ /* Confirm that the device handle matches the one assigned in the
+ * pmic_convity_open() call and then close the connection.
+ */
+ if (((handle == usb.handle) &&
+ (usb.handle_state == HANDLE_IN_USE)) || ((handle == rs_232.handle)
+ && (rs_232.handle_state ==
+ HANDLE_IN_USE))
+ || ((handle == cea_936.handle)
+ && (cea_936.handle_state == HANDLE_IN_USE))) {
+ rc = PMIC_SUCCESS;
+
+ /* Deregister for all existing callbacks if necessary and make sure
+ * that the event handling settings are consistent following the
+ * close operation.
+ */
+ if ((usb.callback != reset.callback)
+ || (rs_232.callback != reset.callback)
+ || (cea_936.callback != reset.callback)) {
+ /* Deregister the existing callback function and all registered
+ * events before we completely close the handle.
+ */
+ rc = pmic_convity_deregister_all();
+ if (rc == PMIC_SUCCESS) {
+
+ } else if (usb.eventMask != reset.eventMask) {
+ /* Having a non-zero eventMask without a callback function being
+ * defined should never occur but let's just make sure here that
+ * we keep things consistent.
+ */
+ usb.eventMask = reset.eventMask;
+ /* Mark the connectivity device handle as being closed. */
+ usb.handle = reset.handle;
+ usb.handle_state = reset.handle_state;
+
+ } else if (rs_232.eventMask != reset.eventMask) {
+
+ rs_232.eventMask = reset.eventMask;
+ /* Mark the connectivity device handle as being closed. */
+ rs_232.handle = reset.handle;
+ rs_232.handle_state = reset.handle_state;
+
+ } else if (cea_936.eventMask != reset.eventMask) {
+ cea_936.eventMask = reset.eventMask;
+ /* Mark the connectivity device handle as being closed. */
+ cea_936.handle = reset.handle;
+ cea_936.handle_state = reset.handle_state;
+
+ }
+
+ }
+ }
+
+ /* Exit the critical section. */
+ up(&mutex);
+
+ return rc;
+}
+
+/*!
+ * Change the current operating mode of the PMIC connectivity hardware.
+ * The available connectivity operating modes is hardware dependent and
+ * consists of one or more of the following: USB (including USB On-the-Go),
+ * RS-232, and CEA-936. Requesting an operating mode that is not supported
+ * by the PMIC hardware will return PMIC_NOT_SUPPORTED.
+ *
+ * @param handle device handle from
+ open() call
+ * @param mode desired operating mode
+ *
+ * @return PMIC_SUCCESS if the requested mode was successfully set
+ */
+PMIC_STATUS pmic_convity_set_mode(const PMIC_CONVITY_HANDLE handle,
+ const PMIC_CONVITY_MODE mode)
+{
+ PMIC_STATUS rc = PMIC_ERROR;
+
+ /* Use a critical section to maintain a consistent state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ if (((handle == usb.handle) &&
+ (usb.handle_state == HANDLE_IN_USE)) || ((handle == rs_232.handle)
+ && (rs_232.handle_state ==
+ HANDLE_IN_USE))
+ || ((handle == cea_936.handle)
+ && (cea_936.handle_state == HANDLE_IN_USE))) {
+ rc = pmic_convity_set_mode_internal(mode);
+ }
+
+ /* Exit the critical section. */
+ up(&mutex);
+
+ return rc;
+}
+
+/*!
+ * Get the current operating mode for the PMIC connectivity hardware.
+ *
+ * @param handle device handle from open() call
+ * @param mode the current PMIC connectivity operating mode
+ *
+ * @return PMIC_SUCCESS if the requested mode was successfully set
+ */
+PMIC_STATUS pmic_convity_get_mode(const PMIC_CONVITY_HANDLE handle,
+ PMIC_CONVITY_MODE * const mode)
+{
+ PMIC_STATUS rc = PMIC_ERROR;
+
+ /* Use a critical section to maintain a consistent state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ if ((((handle == usb.handle) &&
+ (usb.handle_state == HANDLE_IN_USE)) || ((handle == rs_232.handle)
+ && (rs_232.
+ handle_state ==
+ HANDLE_IN_USE))
+ || ((handle == cea_936.handle)
+ && (cea_936.handle_state == HANDLE_IN_USE)))
+ && (mode != (PMIC_CONVITY_MODE *) NULL)) {
+
+ *mode = usb.mode;
+
+ rc = PMIC_SUCCESS;
+ }
+
+ /* Exit the critical section. */
+ up(&mutex);
+
+ return rc;
+}
+
+/*!
+ * Restore all registers to the initial power-on/reset state.
+ *
+ * @param handle device handle from open() call
+ *
+ * @return PMIC_SUCCESS if the reset was successful
+ */
+PMIC_STATUS pmic_convity_reset(const PMIC_CONVITY_HANDLE handle)
+{
+ PMIC_STATUS rc = PMIC_ERROR;
+
+ /* Use a critical section to maintain a consistent state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+ if (((handle == usb.handle) &&
+ (usb.handle_state == HANDLE_IN_USE)) || ((handle == rs_232.handle)
+ && (rs_232.handle_state ==
+ HANDLE_IN_USE))
+ || ((handle == cea_936.handle)
+ && (cea_936.handle_state == HANDLE_IN_USE))) {
+
+ /* Reset the PMIC Connectivity register to it's power on state. */
+ rc = pmic_write_reg(REG_USB, RESET_USBCNTRL_REG_0,
+ REG_FULLMASK);
+
+ rc = pmic_write_reg(REG_CHARGE_USB_SPARE,
+ RESET_USBCNTRL_REG_1, REG_FULLMASK);
+
+ if (rc == PMIC_SUCCESS) {
+ /* Also reset the device driver state data structure. */
+
+ }
+ }
+
+ /* Exit the critical section. */
+ up(&mutex);
+
+ return rc;
+}
+
+/*!
+ * Register a callback function that will be used to signal PMIC connectivity
+ * events. For example, the USB subsystem should register a callback function
+ * in order to be notified of device connect/disconnect events. Note, however,
+ * that non-USB events may also be signalled depending upon the PMIC hardware
+ * capabilities. Therefore, the callback function must be able to properly
+ * handle all of the possible events if support for non-USB peripherals is
+ * also to be included.
+ *
+ * @param handle device handle from open() call
+ * @param func a pointer to the callback function
+ * @param eventMask a mask selecting events to be notified
+ *
+ * @return PMIC_SUCCESS if the callback was successful registered
+ */
+PMIC_STATUS pmic_convity_set_callback(const PMIC_CONVITY_HANDLE handle,
+ const PMIC_CONVITY_CALLBACK func,
+ const PMIC_CONVITY_EVENTS eventMask)
+{
+ unsigned long flags;
+ PMIC_STATUS rc = PMIC_ERROR;
+
+ /* We need to start a critical section here to ensure a consistent state
+ * in case simultaneous calls to pmic_convity_set_callback() are made. In
+ * that case, we must serialize the calls to ensure that the "callback"
+ * and "eventMask" state variables are always consistent.
+ *
+ * Note that we don't actually need to acquire the spinlock until later
+ * when we are finally ready to update the "callback" and "eventMask"
+ * state variables which are shared with the interrupt handler.
+ */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ if ((handle == usb.handle) && (usb.handle_state == HANDLE_IN_USE)) {
+
+ /* Return an error if either the callback function or event mask
+ * is not properly defined.
+ *
+ * It is also considered an error if a callback function has already
+ * been defined. If you wish to register for a new set of events,
+ * then you must first call pmic_convity_clear_callback() to
+ * deregister the existing callback function and list of events
+ * before trying to register a new callback function.
+ */
+ if ((func == NULL) || (eventMask == 0)
+ || (usb.callback != NULL)) {
+ rc = PMIC_ERROR;
+
+ /* Register for PMIC events from the core protocol driver. */
+ } else {
+
+ if ((eventMask & USB_DETECT_4V4_RISE) ||
+ (eventMask & USB_DETECT_4V4_FALL)) {
+ /* We need to register for the 4.4V interrupt.
+ EVENT_USBI or EVENT_USB_44VI */
+ eventNotify.func = pmic_convity_event_handler;
+ eventNotify.param = (void *)(CORE_EVENT_4V4);
+ rc = pmic_event_subscribe(EVENT_USBI,
+ eventNotify);
+
+ if (rc != PMIC_SUCCESS) {
+ return rc;
+ }
+ }
+
+ if ((eventMask & USB_DETECT_2V0_RISE) ||
+ (eventMask & USB_DETECT_2V0_FALL)) {
+ /* We need to register for the 2.0V interrupt.
+ EVENT_USB_20VI or EVENT_USBI */
+ eventNotify.func = pmic_convity_event_handler;
+ eventNotify.param = (void *)(CORE_EVENT_2V0);
+ rc = pmic_event_subscribe(EVENT_USBI,
+ eventNotify);
+
+ if (rc != PMIC_SUCCESS) {
+ goto Cleanup_4V4;
+ }
+ }
+
+ if ((eventMask & USB_DETECT_0V8_RISE) ||
+ (eventMask & USB_DETECT_0V8_FALL)) {
+ /* We need to register for the 0.8V interrupt.
+ EVENT_USB_08VI or EVENT_USBI */
+ eventNotify.func = pmic_convity_event_handler;
+ eventNotify.param = (void *)(CORE_EVENT_0V8);
+ rc = pmic_event_subscribe(EVENT_USBI,
+ eventNotify);
+
+ if (rc != PMIC_SUCCESS) {
+ goto Cleanup_2V0;
+ }
+ }
+
+ if ((eventMask & USB_DETECT_MINI_A) ||
+ (eventMask & USB_DETECT_MINI_B)
+ || (eventMask & USB_DETECT_NON_USB_ACCESSORY)
+ || (eventMask & USB_DETECT_FACTORY_MODE)) {
+ /* We need to register for the AB_DET interrupt.
+ EVENT_AB_DETI or EVENT_IDI */
+ eventNotify.func = pmic_convity_event_handler;
+ eventNotify.param = (void *)(CORE_EVENT_ABDET);
+ rc = pmic_event_subscribe(EVENT_IDI,
+ eventNotify);
+
+ if (rc != PMIC_SUCCESS) {
+ goto Cleanup_0V8;
+ }
+ }
+
+ /* Use a critical section to maintain a consistent state. */
+ spin_lock_irqsave(&lock, flags);
+
+ /* Successfully registered for all events. */
+ usb.callback = func;
+ usb.eventMask = eventMask;
+ spin_unlock_irqrestore(&lock, flags);
+
+ goto End;
+
+ /* This section unregisters any already registered events if we should
+ * encounter an error partway through the registration process. Note
+ * that we don't check the return status here since it is already set
+ * to PMIC_ERROR before we get here.
+ */
+ Cleanup_0V8:
+
+ if ((eventMask & USB_DETECT_0V8_RISE) ||
+ (eventMask & USB_DETECT_0V8_FALL)) {
+ /* EVENT_USB_08VI or EVENT_USBI */
+ eventNotify.func = pmic_convity_event_handler;
+ eventNotify.param = (void *)(CORE_EVENT_0V8);
+ pmic_event_unsubscribe(EVENT_USBI, eventNotify);
+ goto End;
+ }
+
+ Cleanup_2V0:
+
+ if ((eventMask & USB_DETECT_2V0_RISE) ||
+ (eventMask & USB_DETECT_2V0_FALL)) {
+ /* EVENT_USB_20VI or EVENT_USBI */
+ eventNotify.func = pmic_convity_event_handler;
+ eventNotify.param = (void *)(CORE_EVENT_2V0);
+ pmic_event_unsubscribe(EVENT_USBI, eventNotify);
+ goto End;
+ }
+
+ Cleanup_4V4:
+
+ if ((eventMask & USB_DETECT_4V4_RISE) ||
+ (eventMask & USB_DETECT_4V4_FALL)) {
+ /* EVENT_USB_44VI or EVENT_USBI */
+ eventNotify.func = pmic_convity_event_handler;
+ eventNotify.param = (void *)(CORE_EVENT_4V4);
+ pmic_event_unsubscribe(EVENT_USBI, eventNotify);
+ }
+ }
+ /* Exit the critical section. */
+
+ }
+ End:up(&mutex);
+ return rc;
+
+}
+
+/*!
+ * Clears the current callback function. If this function returns successfully
+ * then all future Connectivity events will only be handled by the default
+ * handler within the Connectivity driver.
+ *
+ * @param handle device handle from open() call
+ *
+ * @return PMIC_SUCCESS if the callback was successful cleared
+ */
+PMIC_STATUS pmic_convity_clear_callback(const PMIC_CONVITY_HANDLE handle)
+{
+ PMIC_STATUS rc = PMIC_ERROR;
+
+ /* Use a critical section to maintain a consistent state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+ if (((handle == usb.handle) &&
+ (usb.handle_state == HANDLE_IN_USE)) || ((handle == rs_232.handle)
+ && (rs_232.handle_state ==
+ HANDLE_IN_USE))
+ || ((handle == cea_936.handle)
+ && (cea_936.handle_state == HANDLE_IN_USE))) {
+
+ rc = pmic_convity_deregister_all();
+ }
+
+ /* Exit the critical section. */
+ up(&mutex);
+
+ return rc;
+}
+
+/*!
+ * Get the current callback function and event mask.
+ *
+ * @param handle device handle from open() call
+ * @param func the current callback function
+ * @param eventMask the current event selection mask
+ *
+ * @return PMIC_SUCCESS if the callback information was successful
+ * retrieved
+ */
+PMIC_STATUS pmic_convity_get_callback(const PMIC_CONVITY_HANDLE handle,
+ PMIC_CONVITY_CALLBACK * const func,
+ PMIC_CONVITY_EVENTS * const eventMask)
+{
+ PMIC_STATUS rc = PMIC_ERROR;
+
+ /* Use a critical section to maintain a consistent state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+ if ((((handle == usb.handle) &&
+ (usb.handle_state == HANDLE_IN_USE)) || ((handle == rs_232.handle)
+ && (rs_232.
+ handle_state ==
+ HANDLE_IN_USE))
+ || ((handle == cea_936.handle)
+ && (cea_936.handle_state == HANDLE_IN_USE)))
+ && (func != (PMIC_CONVITY_CALLBACK *) NULL)
+ && (eventMask != (PMIC_CONVITY_EVENTS *) NULL)) {
+ *func = usb.callback;
+ *eventMask = usb.eventMask;
+
+ rc = PMIC_SUCCESS;
+ }
+
+ /* Exit the critical section. */
+
+ up(&mutex);
+
+ return rc;
+}
+
+/*@*/
+
+/**************************************************************************
+ * USB-specific configuration and setup functions.
+ **************************************************************************
+ */
+
+/*!
+ * @name USB and USB-OTG Connectivity APIs
+ * Functions for controlling USB and USB-OTG connectivity.
+ */
+/*@{*/
+
+/*!
+ * Set the USB transceiver speed.
+ *
+ * @param handle device handle from open() call
+ * @param speed the desired USB transceiver speed
+ *
+ * @return PMIC_SUCCESS if the transceiver speed was successfully set
+ */
+PMIC_STATUS pmic_convity_usb_set_speed(const PMIC_CONVITY_HANDLE handle,
+ const PMIC_CONVITY_USB_SPEED speed)
+{
+ PMIC_STATUS rc = PMIC_ERROR;
+ unsigned int reg_value = 0;
+ unsigned int reg_mask = SET_BITS(regUSB0, FSENB, 1);
+
+ /* Use a critical section to maintain a consistent state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ if (handle == (rs_232.handle || cea_936.handle)) {
+ return PMIC_PARAMETER_ERROR;
+ } else {
+ if ((handle == usb.handle) &&
+ (usb.handle_state == HANDLE_IN_USE)) {
+ /* Validate the function parameters and if they are valid, then
+ * configure the pull-up and pull-down resistors as required for
+ * the desired operating mode.
+ */
+ if ((speed == USB_HIGH_SPEED)) {
+ /*
+ * The USB transceiver also does not support the high speed mode
+ * (which is also optional under the USB OTG specification).
+ */
+ rc = PMIC_NOT_SUPPORTED;
+ } else if ((speed != USB_LOW_SPEED)
+ && (speed != USB_FULL_SPEED)) {
+ /* Final validity check on the speed parameter. */
+ rc = PMIC_ERROR;;
+ } else {
+ /* First configure the D+ and D- pull-up/pull-down resistors as
+ * per the USB OTG specification.
+ */
+ if (speed == USB_FULL_SPEED) {
+ /* Activate pull-up on D+ and pull-down on D-. */
+ reg_value =
+ SET_BITS(regUSB0, UDM_PD, 1);
+ } else if (speed == USB_LOW_SPEED) {
+ /* Activate pull-up on D+ and pull-down on D-. */
+ reg_value = SET_BITS(regUSB0, FSENB, 1);
+ }
+
+ /* Now set the desired USB transceiver speed. Note that
+ * USB_FULL_SPEED simply requires FSENB=0 (which it
+ * already is).
+ */
+
+ rc = pmic_write_reg(REG_USB, reg_value,
+ reg_mask);
+
+ if (rc == PMIC_SUCCESS) {
+ usb.usbSpeed = speed;
+ }
+ }
+ }
+ }
+ /* Exit the critical section. */
+ up(&mutex);
+
+ return rc;
+}
+
+/*!
+ * Get the USB transceiver speed.
+ *
+ * @param handle device handle from open() call
+ * @param speed the current USB transceiver speed
+ * @param mode the current USB transceiver mode
+ *
+ * @return PMIC_SUCCESS if the transceiver speed was successfully
+ * obtained
+ */
+PMIC_STATUS pmic_convity_usb_get_speed(const PMIC_CONVITY_HANDLE handle,
+ PMIC_CONVITY_USB_SPEED * const speed,
+ PMIC_CONVITY_USB_MODE * const mode)
+{
+ PMIC_STATUS rc = PMIC_ERROR;
+
+ /* Use a critical section to maintain a consistent state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ if ((handle == usb.handle) &&
+ (usb.handle_state == HANDLE_IN_USE) &&
+ (speed != (PMIC_CONVITY_USB_SPEED *) NULL) &&
+ (mode != (PMIC_CONVITY_USB_MODE *) NULL)) {
+ *speed = usb.usbSpeed;
+ *mode = usb.usbMode;
+
+ rc = PMIC_SUCCESS;
+ }
+
+ /* Exit the critical section. */
+ up(&mutex);
+
+ return rc;
+}
+
+/*!
+ * This function enables/disables VUSB and VBUS output.
+ * This API configures the VUSBEN and VBUSEN bits of USB register
+ *
+ * @param handle device handle from open() call
+ * @param out_type true, for VBUS
+ * false, for VUSB
+ * @param out if true, output is enabled
+ * if false, output is disabled
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_convity_set_output(const PMIC_CONVITY_HANDLE handle,
+ bool out_type, bool out)
+{
+
+ PMIC_STATUS rc = PMIC_ERROR;
+ unsigned int reg_value = 0;
+
+ unsigned int reg_mask = 0;
+
+ /* Use a critical section to maintain a consistent state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ if ((handle == usb.handle) && (usb.handle_state == HANDLE_IN_USE)) {
+
+ if ((out_type == 0) && (out == 1)) {
+
+ reg_value = SET_BITS(regUSB1, VUSBEN, 1);
+ reg_mask = SET_BITS(regUSB1, VUSBEN, 1);
+
+ rc = pmic_write_reg(REG_CHARGE_USB_SPARE,
+ reg_value, reg_mask);
+ } else if (out_type == 0 && out == 0) {
+ reg_mask = SET_BITS(regUSB1, VBUSEN, 1);
+
+ rc = pmic_write_reg(REG_CHARGE_USB_SPARE,
+ reg_value, reg_mask);
+ } else if (out_type == 1 && out == 1) {
+
+ reg_value = SET_BITS(regUSB1, VBUSEN, 1);
+ reg_mask = SET_BITS(regUSB1, VBUSEN, 1);
+
+ rc = pmic_write_reg(REG_CHARGE_USB_SPARE,
+ reg_value, reg_mask);
+ }
+
+ else if (out_type == 1 && out == 0) {
+
+ reg_mask = SET_BITS(regUSB1, VBUSEN, 1);
+ rc = pmic_write_reg(REG_CHARGE_USB_SPARE,
+ reg_value, reg_mask);
+ }
+
+ /*else {
+
+ rc = pmic_write_reg(REG_CHARGE_USB_SPARE,
+ reg_value, reg_mask);
+ } */
+ }
+
+ up(&mutex);
+
+ return rc;
+}
+
+/*!
+ * Set the USB transceiver's power supply configuration.
+ *
+ * @param handle device handle from open() call
+ * @param pwrin USB transceiver regulator input power source
+ * @param pwrout USB transceiver regulator output power level
+ *
+ * @return PMIC_SUCCESS if the USB transceiver's power supply
+ * configuration was successfully set
+ */
+PMIC_STATUS pmic_convity_usb_set_power_source(const PMIC_CONVITY_HANDLE handle,
+ const PMIC_CONVITY_USB_POWER_IN
+ pwrin,
+ const PMIC_CONVITY_USB_POWER_OUT
+ pwrout)
+{
+ PMIC_STATUS rc = PMIC_ERROR;
+ unsigned int reg_value = 0;
+ unsigned int reg_mask = 0;
+
+ /* Use a critical section to maintain a consistent state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ if ((handle == usb.handle) && (usb.handle_state == HANDLE_IN_USE)) {
+
+ if (pwrin == USB_POWER_INTERNAL_BOOST) {
+ reg_value |= SET_BITS(regUSB1, VUSBIN, 0);
+ reg_mask = SET_BITS(regUSB1, VUSBIN, 1);
+ } else if (pwrin == USB_POWER_VBUS) {
+ reg_value |= SET_BITS(regUSB1, VUSBIN, 1);
+ reg_mask = SET_BITS(regUSB1, VUSBIN, 1);
+ }
+
+ else if (pwrin == USB_POWER_INTERNAL) {
+ reg_value |= SET_BITS(regUSB1, VUSBIN, 2);
+ reg_mask = SET_BITS(regUSB1, VUSBIN, 1);
+ }
+
+ if (pwrout == USB_POWER_3V3) {
+ reg_value |= SET_BITS(regUSB1, VUSB, 1);
+ reg_mask |= SET_BITS(regUSB1, VUSB, 1);
+ }
+
+ else if (pwrout == USB_POWER_2V775) {
+ reg_value |= SET_BITS(regUSB1, VUSB, 0);
+ reg_mask |= SET_BITS(regUSB1, VUSB, 1);
+ }
+ rc = pmic_write_reg(REG_CHARGE_USB_SPARE, reg_value, reg_mask);
+
+ if (rc == PMIC_SUCCESS) {
+ usb.usbPowerIn = pwrin;
+ usb.usbPowerOut = pwrout;
+ }
+ }
+
+ /* Exit the critical section. */
+ up(&mutex);
+
+ return rc;
+}
+
+/*!
+ * Get the USB transceiver's current power supply configuration.
+ *
+ * @param handle device handle from open() call
+ * @param pwrin USB transceiver regulator input power source
+ * @param pwrout USB transceiver regulator output power level
+ *
+ * @return PMIC_SUCCESS if the USB transceiver's power supply
+ * configuration was successfully retrieved
+ */
+PMIC_STATUS pmic_convity_usb_get_power_source(const PMIC_CONVITY_HANDLE handle,
+ PMIC_CONVITY_USB_POWER_IN *
+ const pwrin,
+ PMIC_CONVITY_USB_POWER_OUT *
+ const pwrout)
+{
+ PMIC_STATUS rc = PMIC_ERROR;
+
+ /* Use a critical section to maintain a consistent state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ if ((handle == usb.handle) &&
+ (usb.handle_state == HANDLE_IN_USE) &&
+ (pwrin != (PMIC_CONVITY_USB_POWER_IN *) NULL) &&
+ (pwrout != (PMIC_CONVITY_USB_POWER_OUT *) NULL)) {
+ *pwrin = usb.usbPowerIn;
+ *pwrout = usb.usbPowerOut;
+
+ rc = PMIC_SUCCESS;
+ }
+
+ /* Exit the critical section. */
+ up(&mutex);
+
+ return rc;
+}
+
+/*!
+ * Set the USB transceiver's operating mode.
+ *
+ * @param handle device handle from open() call
+ * @param mode desired operating mode
+ *
+ * @return PMIC_SUCCESS if the USB transceiver's operating mode
+ * was successfully configured
+ */
+PMIC_STATUS pmic_convity_usb_set_xcvr(const PMIC_CONVITY_HANDLE handle,
+ const PMIC_CONVITY_USB_TRANSCEIVER_MODE
+ mode)
+{
+ PMIC_STATUS rc = PMIC_ERROR;
+ unsigned int reg_value = 0;
+ unsigned int reg_mask = 0;
+
+ /* Use a critical section to maintain a consistent state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ if ((handle == usb.handle) && (usb.handle_state == HANDLE_IN_USE)) {
+
+ if (mode == USB_TRANSCEIVER_OFF) {
+ reg_value = SET_BITS(regUSB0, USBXCVREN, 0);
+ reg_mask |= SET_BITS(regUSB0, USB_SUSPEND, 1);
+
+ rc = pmic_write_reg(REG_USB, reg_value, reg_mask);
+
+ }
+
+ if (mode == USB_SINGLE_ENDED_UNIDIR) {
+ reg_value |=
+ SET_BITS(regUSB0, DATSE0, 1) | SET_BITS(regUSB0,
+ BIDIR, 0);
+ reg_mask |=
+ SET_BITS(regUSB0, USB_SUSPEND,
+ 1) | SET_BITS(regUSB0, DATSE0,
+ 1) | SET_BITS(regUSB0, BIDIR,
+ 1);
+ } else if (mode == USB_SINGLE_ENDED_BIDIR) {
+ reg_value |=
+ SET_BITS(regUSB0, DATSE0, 1) | SET_BITS(regUSB0,
+ BIDIR, 1);
+ reg_mask |=
+ SET_BITS(regUSB0, USB_SUSPEND,
+ 1) | SET_BITS(regUSB0, DATSE0,
+ 1) | SET_BITS(regUSB0, BIDIR,
+ 1);
+ } else if (mode == USB_DIFFERENTIAL_UNIDIR) {
+ reg_value |=
+ SET_BITS(regUSB0, DATSE0, 0) | SET_BITS(regUSB0,
+ BIDIR, 0);
+ reg_mask |=
+ SET_BITS(regUSB0, USB_SUSPEND,
+ 1) | SET_BITS(regUSB0, DATSE0,
+ 1) | SET_BITS(regUSB0, BIDIR,
+ 1);
+ } else if (mode == USB_DIFFERENTIAL_BIDIR) {
+ reg_value |=
+ SET_BITS(regUSB0, DATSE0, 0) | SET_BITS(regUSB0,
+ BIDIR, 1);
+ reg_mask |=
+ SET_BITS(regUSB0, USB_SUSPEND,
+ 1) | SET_BITS(regUSB0, DATSE0,
+ 1) | SET_BITS(regUSB0, BIDIR,
+ 1);
+ }
+
+ if (mode == USB_SUSPEND_ON) {
+ reg_value |= SET_BITS(regUSB0, USB_SUSPEND, 1);
+ reg_mask |= SET_BITS(regUSB0, USB_SUSPEND, 1);
+ } else if (mode == USB_SUSPEND_OFF) {
+ reg_value |= SET_BITS(regUSB0, USB_SUSPEND, 0);
+ reg_mask |= SET_BITS(regUSB0, USB_SUSPEND, 1);
+ }
+
+ if (mode == USB_OTG_SRP_DLP_START) {
+ reg_value |= SET_BITS(regUSB0, USB_PU, 0);
+ reg_mask |= SET_BITS(regUSB0, USB_SUSPEND, 1);
+ } else if (mode == USB_OTG_SRP_DLP_STOP) {
+ reg_value &= SET_BITS(regUSB0, USB_PU, 1);
+ reg_mask |= SET_BITS(regUSB0, USB_PU, 1);
+ }
+
+ rc = pmic_write_reg(REG_USB, reg_value, reg_mask);
+
+ if (rc == PMIC_SUCCESS) {
+ usb.usbXcvrMode = mode;
+ }
+ }
+
+ /* Exit the critical section. */
+ up(&mutex);
+
+ return rc;
+}
+
+/*!
+ * Get the USB transceiver's current operating mode.
+ *
+ * @param handle device handle from open() call
+ * @param mode current operating mode
+ *
+ * @return PMIC_SUCCESS if the USB transceiver's operating mode
+ * was successfully retrieved
+ */
+PMIC_STATUS pmic_convity_usb_get_xcvr(const PMIC_CONVITY_HANDLE handle,
+ PMIC_CONVITY_USB_TRANSCEIVER_MODE *
+ const mode)
+{
+ PMIC_STATUS rc = PMIC_ERROR;
+
+ /* Use a critical section to maintain a consistent state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ if ((handle == usb.handle) &&
+ (usb.handle_state == HANDLE_IN_USE) &&
+ (mode != (PMIC_CONVITY_USB_TRANSCEIVER_MODE *) NULL)) {
+ *mode = usb.usbXcvrMode;
+
+ rc = PMIC_SUCCESS;
+ }
+
+ /* Exit the critical section. */
+ up(&mutex);
+
+ return rc;
+}
+
+/*!
+ * Set the Data Line Pulse duration (in milliseconds) for the USB OTG
+ * Session Request Protocol.
+ *
+ * For mc13783, this feature is not supported.So return PMIC_NOT_SUPPORTED
+ *
+ * @param handle device handle from open() call
+ * @param duration the data line pulse duration (ms)
+ *
+ * @return PMIC_SUCCESS if the pulse duration was successfully set
+ */
+PMIC_STATUS pmic_convity_usb_otg_set_dlp_duration(const PMIC_CONVITY_HANDLE
+ handle,
+ const unsigned int duration)
+{
+ PMIC_STATUS rc = PMIC_NOT_SUPPORTED;
+
+ /* The setting of the dlp duration is not supported by the mc13783 PMIC hardware. */
+
+ /* No critical section is required. */
+
+ if ((handle != usb.handle)
+ || (usb.handle_state != HANDLE_IN_USE)) {
+ /* Must return error indication for invalid handle parameter to be
+ * consistent with other APIs.
+ */
+ rc = PMIC_ERROR;
+ }
+
+ return rc;
+}
+
+/*!
+ * Get the current Data Line Pulse duration (in milliseconds) for the USB
+ * OTG Session Request Protocol.
+ *
+ * @param handle device handle from open() call
+ * @param duration the data line pulse duration (ms)
+ *
+ * @return PMIC_SUCCESS if the pulse duration was successfully obtained
+ */
+PMIC_STATUS pmic_convity_usb_otg_get_dlp_duration(const PMIC_CONVITY_HANDLE
+ handle,
+ unsigned int *const duration)
+{
+ PMIC_STATUS rc = PMIC_NOT_SUPPORTED;
+
+ /* The setting of dlp duration is not supported by the mc13783 PMIC hardware. */
+
+ /* No critical section is required. */
+
+ if ((handle != usb.handle)
+ || (usb.handle_state != HANDLE_IN_USE)) {
+ /* Must return error indication for invalid handle parameter to be
+ * consistent with other APIs.
+ */
+ rc = PMIC_ERROR;
+ }
+
+ return rc;
+}
+
+/*!
+ * Set the USB On-The-Go (OTG) configuration.
+ *
+ * @param handle device handle from open() call
+ * @param cfg desired USB OTG configuration
+ *
+ * @return PMIC_SUCCESS if the OTG configuration was successfully set
+ */
+PMIC_STATUS pmic_convity_usb_otg_set_config(const PMIC_CONVITY_HANDLE handle,
+ const PMIC_CONVITY_USB_OTG_CONFIG
+ cfg)
+{
+ PMIC_STATUS rc = PMIC_ERROR;
+ unsigned int reg_value = 0;
+ unsigned int reg_mask = 0;
+
+ /* Use a critical section to maintain a consistent state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ if ((handle == usb.handle) && (usb.handle_state == HANDLE_IN_USE)) {
+ if (cfg & USB_OTG_SE0CONN) {
+ reg_value = SET_BITS(regUSB0, SE0_CONN, 1);
+ reg_mask = SET_BITS(regUSB0, SE0_CONN, 1);
+ }
+ if (cfg & USBXCVREN) {
+ reg_value |= SET_BITS(regUSB0, USBXCVREN, 1);
+ reg_mask |= SET_BITS(regUSB0, USBXCVREN, 1);
+ }
+
+ if (cfg & USB_OTG_DLP_SRP) {
+ reg_value |= SET_BITS(regUSB0, DLP_SRP, 1);
+ reg_mask |= SET_BITS(regUSB0, DLP_SRP, 1);
+ }
+
+ if (cfg & USB_PULL_OVERRIDE) {
+ reg_value |= SET_BITS(regUSB0, PULLOVR, 1);
+ reg_mask |= SET_BITS(regUSB0, PULLOVR, 1);
+ }
+
+ if (cfg & USB_PU) {
+ reg_value |= SET_BITS(regUSB0, USB_PU, 1);
+ reg_mask |= SET_BITS(regUSB0, USB_PU, 1);
+ }
+
+ if (cfg & USB_UDM_PD) {
+ reg_value |= SET_BITS(regUSB0, UDM_PD, 1);
+ reg_mask |= SET_BITS(regUSB0, UDM_PD, 1);
+ }
+
+ if (cfg & USB_UDP_PD) {
+ reg_value |= SET_BITS(regUSB0, UDP_PD, 1);
+ reg_mask |= SET_BITS(regUSB0, UDP_PD, 1);
+ }
+
+ if (cfg & USB_DP150K_PU) {
+ reg_value |= SET_BITS(regUSB0, DP150K_PU, 1);
+ reg_mask |= SET_BITS(regUSB0, DP150K_PU, 1);
+ }
+
+ if (cfg & USB_USBCNTRL) {
+ reg_value |= SET_BITS(regUSB0, USBCNTRL, 1);
+ reg_mask |= SET_BITS(regUSB0, USBCNTRL, 1);
+ }
+
+ if (cfg & USB_VBUS_CURRENT_LIMIT_HIGH) {
+ reg_value |= SET_BITS(regUSB0, CURRENT_LIMIT, 0);
+ } else if (cfg & USB_VBUS_CURRENT_LIMIT_LOW_10MS) {
+ reg_value |= SET_BITS(regUSB0, CURRENT_LIMIT, 1);
+ } else if (cfg & USB_VBUS_CURRENT_LIMIT_LOW_20MS) {
+ reg_value |= SET_BITS(regUSB0, CURRENT_LIMIT, 2);
+ } else if (cfg & USB_VBUS_CURRENT_LIMIT_LOW_30MS) {
+ reg_value |= SET_BITS(regUSB0, CURRENT_LIMIT, 3);
+ } else if (cfg & USB_VBUS_CURRENT_LIMIT_LOW_40MS) {
+ reg_value |= SET_BITS(regUSB0, CURRENT_LIMIT, 4);
+ } else if (cfg & USB_VBUS_CURRENT_LIMIT_LOW_50MS) {
+ reg_value |= SET_BITS(regUSB0, CURRENT_LIMIT, 5);
+ } else if (cfg & USB_VBUS_CURRENT_LIMIT_LOW_60MS) {
+ reg_value |= SET_BITS(regUSB0, CURRENT_LIMIT, 6);
+ }
+ if (cfg & USB_VBUS_CURRENT_LIMIT_LOW) {
+ reg_value |= SET_BITS(regUSB0, CURRENT_LIMIT, 7);
+ reg_mask |= SET_BITS(regUSB0, CURRENT_LIMIT, 7);
+ }
+
+ if (cfg & USB_VBUS_PULLDOWN) {
+ reg_value |= SET_BITS(regUSB0, VBUSPDENB, 1);
+ reg_mask |= SET_BITS(regUSB0, VBUSPDENB, 1);
+ }
+
+ rc = pmic_write_reg(REG_USB, reg_value, reg_mask);
+
+ if (rc == PMIC_SUCCESS) {
+ if ((cfg & USB_VBUS_CURRENT_LIMIT_HIGH) ||
+ (cfg & USB_VBUS_CURRENT_LIMIT_LOW) ||
+ (cfg & USB_VBUS_CURRENT_LIMIT_LOW_10MS) ||
+ (cfg & USB_VBUS_CURRENT_LIMIT_LOW_20MS) ||
+ (cfg & USB_VBUS_CURRENT_LIMIT_LOW_30MS) ||
+ (cfg & USB_VBUS_CURRENT_LIMIT_LOW_40MS) ||
+ (cfg & USB_VBUS_CURRENT_LIMIT_LOW_50MS) ||
+ (cfg & USB_VBUS_CURRENT_LIMIT_LOW_60MS)) {
+ /* Make sure that the VBUS current limit state is
+ * correctly set to either USB_VBUS_CURRENT_LIMIT_HIGH
+ * or USB_VBUS_CURRENT_LIMIT_LOW but never both at the
+ * same time.
+ *
+ * We guarantee this by first clearing both of the
+ * status bits and then resetting the correct one.
+ */
+ usb.usbOtgCfg &=
+ ~(USB_VBUS_CURRENT_LIMIT_HIGH |
+ USB_VBUS_CURRENT_LIMIT_LOW |
+ USB_VBUS_CURRENT_LIMIT_LOW_10MS |
+ USB_VBUS_CURRENT_LIMIT_LOW_20MS |
+ USB_VBUS_CURRENT_LIMIT_LOW_30MS |
+ USB_VBUS_CURRENT_LIMIT_LOW_40MS |
+ USB_VBUS_CURRENT_LIMIT_LOW_50MS |
+ USB_VBUS_CURRENT_LIMIT_LOW_60MS);
+ }
+
+ usb.usbOtgCfg |= cfg;
+ }
+ }
+
+ /* Exit the critical section. */
+ up(&mutex);
+
+ return rc;
+}
+
+/*!
+ * Clears the USB On-The-Go (OTG) configuration. Multiple configuration settings
+ * may be OR'd together in a single call. However, selecting conflicting
+ * settings (e.g., multiple VBUS current limits) will result in undefined
+ * behavior.
+ *
+ * @param handle Device handle from open() call.
+ * @param cfg USB OTG configuration settings to be cleared.
+ *
+ * @retval PMIC_SUCCESS If the OTG configuration was successfully
+ * cleared.
+ * @retval PMIC_PARAMETER_ERROR If the handle is invalid.
+ * @retval PMIC_NOT_SUPPORTED If the desired USB OTG configuration is
+ * not supported by the PMIC hardware.
+ */
+PMIC_STATUS pmic_convity_usb_otg_clear_config(const PMIC_CONVITY_HANDLE handle,
+ const PMIC_CONVITY_USB_OTG_CONFIG
+ cfg)
+{
+ PMIC_STATUS rc = PMIC_ERROR;
+ unsigned int reg_value = 0;
+ unsigned int reg_mask = 0;
+
+ /* Use a critical section to maintain a consistent state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ if ((handle == usb.handle) && (usb.handle_state == HANDLE_IN_USE)) {
+ /* if ((cfg & USB_VBUS_CURRENT_LIMIT_LOW_10MS) ||
+ (cfg & USB_VBUS_CURRENT_LIMIT_LOW_20MS) ||
+ (cfg & USB_VBUS_CURRENT_LIMIT_LOW_30MS) ||
+ (cfg & USB_VBUS_CURRENT_LIMIT_LOW_40MS) ||
+ (cfg & USB_VBUS_CURRENT_LIMIT_LOW_50MS) ||
+ (cfg & USB_VBUS_CURRENT_LIMIT_LOW_60MS))
+ {
+ rc = PMIC_NOT_SUPPORTED;
+ } */
+
+ if (cfg & USB_OTG_SE0CONN) {
+ reg_mask = SET_BITS(regUSB0, SE0_CONN, 1);
+ }
+
+ if (cfg & USB_OTG_DLP_SRP) {
+ reg_mask |= SET_BITS(regUSB0, DLP_SRP, 1);
+ }
+
+ if (cfg & USB_DP150K_PU) {
+ reg_mask |= SET_BITS(regUSB0, DP150K_PU, 1);
+ }
+
+ if (cfg & USB_PULL_OVERRIDE) {
+ reg_mask |= SET_BITS(regUSB0, PULLOVR, 1);
+ }
+
+ if (cfg & USB_PU) {
+
+ reg_mask |= SET_BITS(regUSB0, USB_PU, 1);
+ }
+
+ if (cfg & USB_UDM_PD) {
+
+ reg_mask |= SET_BITS(regUSB0, UDM_PD, 1);
+ }
+
+ if (cfg & USB_UDP_PD) {
+
+ reg_mask |= SET_BITS(regUSB0, UDP_PD, 1);
+ }
+
+ if (cfg & USB_USBCNTRL) {
+ reg_mask |= SET_BITS(regUSB0, USBCNTRL, 1);
+ }
+
+ if (cfg & USB_VBUS_CURRENT_LIMIT_HIGH) {
+ reg_mask |= SET_BITS(regUSB0, CURRENT_LIMIT, 0);
+ } else if (cfg & USB_VBUS_CURRENT_LIMIT_LOW_10MS) {
+ reg_mask |= SET_BITS(regUSB0, CURRENT_LIMIT, 1);
+ } else if (cfg & USB_VBUS_CURRENT_LIMIT_LOW_20MS) {
+ reg_mask |= SET_BITS(regUSB0, CURRENT_LIMIT, 2);
+ } else if (cfg & USB_VBUS_CURRENT_LIMIT_LOW_30MS) {
+ reg_mask |= SET_BITS(regUSB0, CURRENT_LIMIT, 3);
+ } else if (cfg & USB_VBUS_CURRENT_LIMIT_LOW_40MS) {
+ reg_mask |= SET_BITS(regUSB0, CURRENT_LIMIT, 4);
+ } else if (cfg & USB_VBUS_CURRENT_LIMIT_LOW_50MS) {
+ reg_mask |= SET_BITS(regUSB0, CURRENT_LIMIT, 5);
+ } else if (cfg & USB_VBUS_CURRENT_LIMIT_LOW_60MS) {
+ reg_mask |= SET_BITS(regUSB0, CURRENT_LIMIT, 6);
+ }
+
+ if (cfg & USB_VBUS_PULLDOWN) {
+ reg_mask |= SET_BITS(regUSB0, VBUSPDENB, 1);
+ }
+
+ rc = pmic_write_reg(REG_USB, reg_value, reg_mask);
+
+ if (rc == PMIC_SUCCESS) {
+ usb.usbOtgCfg &= ~cfg;
+ }
+ }
+
+ /* Exit the critical section. */
+ up(&mutex);
+
+ return rc;
+}
+
+/*!
+ * Get the current USB On-The-Go (OTG) configuration.
+ *
+ * @param handle device handle from open() call
+ * @param cfg the current USB OTG configuration
+ *
+ * @return PMIC_SUCCESS if the OTG configuration was successfully
+ * retrieved
+ */
+PMIC_STATUS pmic_convity_usb_otg_get_config(const PMIC_CONVITY_HANDLE handle,
+ PMIC_CONVITY_USB_OTG_CONFIG *
+ const cfg)
+{
+ PMIC_STATUS rc = PMIC_ERROR;
+
+ /* Use a critical section to maintain a consistent state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ if ((handle == usb.handle) &&
+ (usb.handle_state == HANDLE_IN_USE) &&
+ (cfg != (PMIC_CONVITY_USB_OTG_CONFIG *) NULL)) {
+ *cfg = usb.usbOtgCfg;
+
+ rc = PMIC_SUCCESS;
+ }
+
+ /* Exit the critical section. */
+ up(&mutex);
+
+ return rc;
+}
+
+/*@}*/
+
+/**************************************************************************
+ * RS-232-specific configuration and setup functions.
+ **************************************************************************
+ */
+
+/*!
+ * @name RS-232 Serial Connectivity APIs
+ * Functions for controlling RS-232 serial connectivity.
+ */
+/*@{*/
+
+/*!
+ * Set the connectivity interface to the selected RS-232 operating
+ * configuration. Note that the RS-232 operating mode will be automatically
+ * overridden if the USB_EN is asserted at any time (e.g., when a USB device
+ * is attached). However, we will also automatically return to the RS-232
+ * mode once the USB device is detached.
+ *
+ * @param handle device handle from open() call
+ * @param cfgInternal RS-232 transceiver internal connections
+ * @param cfgExternal RS-232 transceiver external connections
+ *
+ * @return PMIC_SUCCESS if the requested mode was set
+ */
+PMIC_STATUS pmic_convity_rs232_set_config(const PMIC_CONVITY_HANDLE handle,
+ const PMIC_CONVITY_RS232_INTERNAL
+ cfgInternal,
+ const PMIC_CONVITY_RS232_EXTERNAL
+ cfgExternal)
+{
+ PMIC_STATUS rc = PMIC_ERROR;
+ unsigned int reg_value0 = 0, reg_value1 = 0;
+ unsigned int reg_mask = SET_BITS(regUSB1, RSPOL, 1);
+
+ /* Use a critical section to maintain a consistent state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ if ((handle == rs_232.handle) && (rs_232.handle_state == HANDLE_IN_USE)) {
+ rc = PMIC_SUCCESS;
+
+ /* Validate the calling parameters. */
+ /*if ((cfgInternal != RS232_TX_USE0VM_RX_UDATVP) &&
+ (cfgInternal != RS232_TX_RX_INTERNAL_DEFAULT) && (cfgInternal != RS232_TX_UDATVP_RX_URXVM))
+ {
+
+ rc = PMIC_NOT_SUPPORTED;
+ } */
+ if (cfgInternal == RS232_TX_USE0VM_RX_UDATVP) {
+
+ reg_value0 = SET_BITS(regUSB0, INTERFACE_MODE, 1);
+
+ } else if (cfgInternal == RS232_TX_RX_INTERNAL_DEFAULT) {
+
+ reg_value0 = SET_BITS(regUSB0, INTERFACE_MODE, 1);
+ reg_mask |= SET_BITS(regUSB1, RSPOL, 1);
+
+ } else if (cfgInternal == RS232_TX_UDATVP_RX_URXVM) {
+
+ reg_value0 = SET_BITS(regUSB0, INTERFACE_MODE, 2);
+ reg_value1 |= SET_BITS(regUSB1, RSPOL, 1);
+
+ } else if ((cfgExternal == RS232_TX_UDM_RX_UDP) ||
+ (cfgExternal == RS232_TX_RX_EXTERNAL_DEFAULT)) {
+ /* Configure for TX on D+ and RX on D-. */
+ reg_value0 |= SET_BITS(regUSB0, INTERFACE_MODE, 1);
+ reg_value1 |= SET_BITS(regUSB1, RSPOL, 0);
+ } else if (cfgExternal != RS232_TX_UDM_RX_UDP) {
+ /* Any other RS-232 configuration is an error. */
+ rc = PMIC_ERROR;
+ }
+
+ if (rc == PMIC_SUCCESS) {
+ /* Configure for TX on D- and RX on D+. */
+ rc = pmic_write_reg(REG_USB, reg_value0, reg_mask);
+
+ rc = pmic_write_reg(REG_CHARGE_USB_SPARE,
+ reg_value1, reg_mask);
+
+ if (rc == PMIC_SUCCESS) {
+ rs_232.rs232CfgInternal = cfgInternal;
+ rs_232.rs232CfgExternal = cfgExternal;
+ }
+ }
+ }
+
+ /* Exit the critical section. */
+ up(&mutex);
+
+ return rc;
+}
+
+/*!
+ * Get the connectivity interface's current RS-232 operating configuration.
+ *
+ * @param handle device handle from open() call
+ * @param cfgInternal RS-232 transceiver internal connections
+ * @param cfgExternal RS-232 transceiver external connections
+ *
+ * @return PMIC_SUCCESS if the requested mode was retrieved
+ */
+PMIC_STATUS pmic_convity_rs232_get_config(const PMIC_CONVITY_HANDLE handle,
+ PMIC_CONVITY_RS232_INTERNAL *
+ const cfgInternal,
+ PMIC_CONVITY_RS232_EXTERNAL *
+ const cfgExternal)
+{
+ PMIC_STATUS rc = PMIC_ERROR;
+
+ /* Use a critical section to maintain a consistent state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ if ((handle == rs_232.handle) &&
+ (rs_232.handle_state == HANDLE_IN_USE) &&
+ (cfgInternal != (PMIC_CONVITY_RS232_INTERNAL *) NULL) &&
+ (cfgExternal != (PMIC_CONVITY_RS232_EXTERNAL *) NULL)) {
+ *cfgInternal = rs_232.rs232CfgInternal;
+ *cfgExternal = rs_232.rs232CfgExternal;
+
+ rc = PMIC_SUCCESS;
+ }
+
+ /* Exit the critical section. */
+ up(&mutex);
+
+ return rc;
+}
+
+/*@}*/
+
+/**************************************************************************
+ * CEA-936-specific configuration and setup functions.
+ **************************************************************************
+ */
+
+/*!
+ * @name CEA-936 Connectivity APIs
+ * Functions for controlling CEA-936 connectivity.
+ */
+/*@{*/
+
+/*!
+ * Signal the attached device to exit the current CEA-936 operating mode.
+ * Returns an error if the current operating mode is not CEA-936.
+ *
+ * @param handle device handle from open() call
+ * @param signal type of exit signal to be sent
+ *
+ * @return PMIC_SUCCESS if exit signal was sent
+ */
+PMIC_STATUS pmic_convity_cea936_exit_signal(const PMIC_CONVITY_HANDLE handle,
+ const
+ PMIC_CONVITY_CEA936_EXIT_SIGNAL
+ signal)
+{
+ PMIC_STATUS rc = PMIC_ERROR;
+ unsigned int reg_value = 0;
+ unsigned int reg_mask =
+ SET_BITS(regUSB0, IDPD, 1) | SET_BITS(regUSB0, IDPULSE, 1);
+
+ /* Use a critical section to maintain a consistent state. */
+ if (down_interruptible(&mutex))
+ return PMIC_SYSTEM_ERROR_EINTR;
+
+ if ((handle != cea_936.handle)
+ || (cea_936.handle_state != HANDLE_IN_USE)) {
+ /* Must return error indication for invalid handle parameter to be
+ * consistent with other APIs.
+ */
+ rc = PMIC_ERROR;
+ } else if (signal == CEA936_UID_PULLDOWN_6MS) {
+ reg_value =
+ SET_BITS(regUSB0, IDPULSE, 0) | SET_BITS(regUSB0, IDPD, 0);
+ } else if (signal == CEA936_UID_PULLDOWN_6MS) {
+ reg_value = SET_BITS(regUSB0, IDPULSE, 1);
+ } else if (signal == CEA936_UID_PULLDOWN) {
+ reg_value = SET_BITS(regUSB0, IDPD, 1);
+ } else if (signal == CEA936_UDMPULSE) {
+ reg_value = SET_BITS(regUSB0, DMPULSE, 1);
+ }
+
+ rc = pmic_write_reg(REG_USB, reg_value, reg_mask);
+
+ up(&mutex);
+
+ return rc;
+}
+
+/*@}*/
+
+/**************************************************************************
+ * Static functions.
+ **************************************************************************
+ */
+
+/*!
+ * @name Connectivity Driver Internal Support Functions
+ * These non-exported internal functions are used to support the functionality
+ * of the exported connectivity APIs.
+ */
+/*@{*/
+
+/*!
+ * This internal helper function sets the desired operating mode (either USB
+ * OTG or RS-232). It must be called with the mutex already acquired.
+ *
+ * @param mode the desired operating mode (USB or RS232)
+ *
+ * @return PMIC_SUCCESS if the desired operating mode was set
+ * @return PMIC_NOT_SUPPORTED if the desired operating mode is invalid
+ */
+static PMIC_STATUS pmic_convity_set_mode_internal(const PMIC_CONVITY_MODE mode)
+{
+ unsigned int reg_value0 = 0, reg_value1 = 0;
+ unsigned int reg_mask0 = 0, reg_mask1 = 0;
+
+ PMIC_STATUS rc = PMIC_SUCCESS;
+
+ switch (mode) {
+ case USB:
+ /* For the USB mode, we start by tri-stating the USB bus (by
+ * setting VBUSEN = 0) until a device is connected (i.e.,
+ * until we receive a 4.4V rising edge event). All pull-up
+ * and pull-down resistors are also disabled until a USB
+ * device is actually connected and we have determined which
+ * device is the host and the desired USB bus speed.
+ *
+ * Also tri-state the RS-232 buffers (by setting RSTRI = 1).
+ * This prevents the hardware from automatically returning to
+ * the RS-232 mode when the USB device is detached.
+ */
+
+ reg_value0 = SET_BITS(regUSB0, INTERFACE_MODE, 0);
+ reg_mask0 = SET_BITS(regUSB0, INTERFACE_MODE, 7);
+
+ /*reg_value1 = SET_BITS(regUSB1, RSTRI, 1); */
+
+ rc = pmic_write_reg(REG_USB, reg_value0, reg_mask0);
+ /* if (rc == PMIC_SUCCESS) {
+ CHECK_ERROR(pmic_write_reg
+ (REG_CHARGE_USB_SPARE,
+ reg_value1, reg_mask1));
+ } */
+
+ break;
+
+ case RS232_1:
+ /* For the RS-232 mode, we tri-state the USB bus (by setting
+ * VBUSEN = 0) and enable the RS-232 transceiver (by setting
+ * RS232ENB = 0).
+ *
+ * Note that even in the RS-232 mode, if a USB device is
+ * plugged in, we will receive a 4.4V rising edge event which
+ * will automatically disable the RS-232 transceiver and
+ * tri-state the RS-232 buffers. This allows us to temporarily
+ * switch over to USB mode while the USB device is attached.
+ * The RS-232 transceiver and buffers will be automatically
+ * re-enabled when the USB device is detached.
+ */
+
+ /* Explicitly disconnect all of the USB pull-down resistors
+ * and the VUSB power regulator here just to be safe.
+ *
+ * But we do connect the internal pull-up resistor on USB_D+
+ * to avoid having an extra load on the USB_D+ line when in
+ * RS-232 mode.
+ */
+
+ reg_value0 |= SET_BITS(regUSB0, INTERFACE_MODE, 1) |
+ SET_BITS(regUSB0, VBUSPDENB, 1) |
+ SET_BITS(regUSB0, USB_PU, 1);
+ reg_mask0 =
+ SET_BITS(regUSB0, INTERFACE_MODE, 7) | SET_BITS(regUSB0,
+ VBUSPDENB,
+ 1) |
+ SET_BITS(regUSB0, USB_PU, 1);
+
+ reg_value1 = SET_BITS(regUSB1, RSPOL, 0);
+
+ rc = pmic_write_reg(REG_USB, reg_value0, reg_mask0);
+
+ if (rc == PMIC_SUCCESS) {
+ CHECK_ERROR(pmic_write_reg
+ (REG_CHARGE_USB_SPARE,
+ reg_value1, reg_mask1));
+ }
+ break;
+
+ case RS232_2:
+ reg_value0 |= SET_BITS(regUSB0, INTERFACE_MODE, 2) |
+ SET_BITS(regUSB0, VBUSPDENB, 1) |
+ SET_BITS(regUSB0, USB_PU, 1);
+ reg_mask0 =
+ SET_BITS(regUSB0, INTERFACE_MODE, 7) | SET_BITS(regUSB0,
+ VBUSPDENB,
+ 1) |
+ SET_BITS(regUSB0, USB_PU, 1);
+
+ reg_value1 = SET_BITS(regUSB1, RSPOL, 1);
+
+ rc = pmic_write_reg(REG_USB, reg_value0, reg_mask0);
+
+ if (rc == PMIC_SUCCESS) {
+ CHECK_ERROR(pmic_write_reg
+ (REG_CHARGE_USB_SPARE,
+ reg_value1, reg_mask1));
+ }
+ break;
+
+ case CEA936_MONO:
+ reg_value0 |= SET_BITS(regUSB0, INTERFACE_MODE, 4);
+
+ rc = pmic_write_reg(REG_USB, reg_value0, reg_mask0);
+ break;
+
+ case CEA936_STEREO:
+ reg_value0 |= SET_BITS(regUSB0, INTERFACE_MODE, 5);
+ reg_mask0 = SET_BITS(regUSB0, INTERFACE_MODE, 7);
+
+ rc = pmic_write_reg(REG_USB, reg_value0, reg_mask0);
+ break;
+
+ case CEA936_TEST_RIGHT:
+ reg_value0 |= SET_BITS(regUSB0, INTERFACE_MODE, 6);
+ reg_mask0 = SET_BITS(regUSB0, INTERFACE_MODE, 7);
+
+ rc = pmic_write_reg(REG_USB, reg_value0, reg_mask0);
+ break;
+
+ case CEA936_TEST_LEFT:
+ reg_value0 |= SET_BITS(regUSB0, INTERFACE_MODE, 7);
+ reg_mask0 = SET_BITS(regUSB0, INTERFACE_MODE, 7);
+
+ rc = pmic_write_reg(REG_USB, reg_value0, reg_mask0);
+ break;
+
+ default:
+ rc = PMIC_NOT_SUPPORTED;
+ }
+
+ if (rc == PMIC_SUCCESS) {
+ if (mode == USB) {
+ usb.mode = mode;
+ } else if ((mode == RS232_1) || (mode == RS232_1)) {
+ rs_232.mode = mode;
+ } else if ((mode == CEA936_MONO) || (mode == CEA936_STEREO) ||
+ (mode == CEA936_TEST_RIGHT)
+ || (mode == CEA936_TEST_LEFT)) {
+ cea_936.mode = mode;
+ }
+ }
+
+ return rc;
+}
+
+/*!
+ * This internal helper function deregisters all of the currently registered
+ * callback events. It must be called with the mutual exclusion spinlock
+ * already acquired.
+ *
+ * We've defined the event and callback deregistration code here as a separate
+ * function because it can be called by either the pmic_convity_close() or the
+ * pmic_convity_clear_callback() APIs. We also wanted to avoid any possible
+ * issues with having the same thread calling spin_lock_irq() twice.
+ *
+ * Note that the mutex must have already been acquired. We will also acquire
+ * the spinlock here to avoid any possible race conditions with the interrupt
+ * handler.
+ *
+ * @return PMIC_SUCCESS if all of the callback events were cleared
+ */
+static PMIC_STATUS pmic_convity_deregister_all(void)
+{
+ unsigned long flags;
+ PMIC_STATUS rc = PMIC_SUCCESS;
+
+ /* Deregister each of the PMIC events that we had previously
+ * registered for by using pmic_event_subscribe().
+ */
+
+ if ((usb.eventMask & USB_DETECT_MINI_A) ||
+ (usb.eventMask & USB_DETECT_MINI_B) ||
+ (usb.eventMask & USB_DETECT_NON_USB_ACCESSORY) ||
+ (usb.eventMask & USB_DETECT_FACTORY_MODE)) {
+ /* EVENT_AB_DETI or EVENT_IDI */
+ eventNotify.func = pmic_convity_event_handler;
+ eventNotify.param = (void *)(CORE_EVENT_ABDET);
+
+ if (pmic_event_unsubscribe(EVENT_IDI, eventNotify) ==
+ PMIC_SUCCESS) {
+ /* Also acquire the spinlock here to avoid any possible race
+ * conditions with the interrupt handler.
+ */
+
+ spin_lock_irqsave(&lock, flags);
+
+ usb.eventMask &= ~(USB_DETECT_MINI_A |
+ USB_DETECT_MINI_B |
+ USB_DETECT_NON_USB_ACCESSORY |
+ USB_DETECT_FACTORY_MODE);
+
+ spin_unlock_irqrestore(&lock, flags);
+ } else {
+ pr_debug
+ ("%s: pmic_event_unsubscribe() for EVENT_AB_DETI failed\n",
+ __FILE__);
+ rc = PMIC_ERROR;
+ }
+ }
+
+ else if ((usb.eventMask & USB_DETECT_0V8_RISE) ||
+ (usb.eventMask & USB_DETECT_0V8_FALL)) {
+ /* EVENT_USB_08VI or EVENT_USBI */
+ eventNotify.func = pmic_convity_event_handler;
+ eventNotify.param = (void *)(CORE_EVENT_0V8);
+ if (pmic_event_unsubscribe(EVENT_USBI, eventNotify) ==
+ PMIC_SUCCESS) {
+ /* Also acquire the spinlock here to avoid any possible race
+ * conditions with the interrupt handler.
+ */
+ spin_lock_irqsave(&lock, flags);
+
+ usb.eventMask &= ~(USB_DETECT_0V8_RISE |
+ USB_DETECT_0V8_FALL);
+
+ spin_unlock_irqrestore(&lock, flags);
+ } else {
+ pr_debug
+ ("%s: pmic_event_unsubscribe() for EVENT_USB_08VI failed\n",
+ __FILE__);
+ rc = PMIC_ERROR;
+ }
+
+ }
+
+ else if ((usb.eventMask & USB_DETECT_2V0_RISE) ||
+ (usb.eventMask & USB_DETECT_2V0_FALL)) {
+ /* EVENT_USB_20VI or EVENT_USBI */
+ eventNotify.func = pmic_convity_event_handler;
+ eventNotify.param = (void *)(CORE_EVENT_2V0);
+ if (pmic_event_unsubscribe(EVENT_USBI, eventNotify) ==
+ PMIC_SUCCESS) {
+ /* Also acquire the spinlock here to avoid any possible race
+ * conditions with the interrupt handler.
+ */
+ spin_lock_irqsave(&lock, flags);
+
+ usb.eventMask &= ~(USB_DETECT_2V0_RISE |
+ USB_DETECT_2V0_FALL);
+
+ spin_unlock_irqrestore(&lock, flags);
+ } else {
+ pr_debug
+ ("%s: pmic_event_unsubscribe() for EVENT_USB_20VI failed\n",
+ __FILE__);
+ rc = PMIC_ERROR;
+ }
+ }
+
+ else if ((usb.eventMask & USB_DETECT_4V4_RISE) ||
+ (usb.eventMask & USB_DETECT_4V4_FALL)) {
+
+ /* EVENT_USB_44VI or EVENT_USBI */
+ eventNotify.func = pmic_convity_event_handler;
+ eventNotify.param = (void *)(CORE_EVENT_4V4);
+
+ if (pmic_event_unsubscribe(EVENT_USBI, eventNotify) ==
+ PMIC_SUCCESS) {
+
+ /* Also acquire the spinlock here to avoid any possible race
+ * conditions with the interrupt handler.
+ */
+ spin_lock_irqsave(&lock, flags);
+
+ usb.eventMask &= ~(USB_DETECT_4V4_RISE |
+ USB_DETECT_4V4_FALL);
+
+ spin_unlock_irqrestore(&lock, flags);
+ } else {
+ pr_debug
+ ("%s: pmic_event_unsubscribe() for EVENT_USB_44VI failed\n",
+ __FILE__);
+ rc = PMIC_ERROR;
+ }
+ }
+
+ if (rc == PMIC_SUCCESS) {
+ /* Also acquire the spinlock here to avoid any possible race
+ * conditions with the interrupt handler.
+ */
+ spin_lock_irqsave(&lock, flags);
+
+ /* Restore the initial reset values for the callback function
+ * and event mask parameters. This should be NULL and zero,
+ * respectively.
+ *
+ * Note that we wait until the end here to fully reset everything
+ * just in case some of the pmic_event_unsubscribe() calls above
+ * failed for some reason (which normally shouldn't happen).
+ */
+ usb.callback = reset.callback;
+ usb.eventMask = reset.eventMask;
+
+ spin_unlock_irqrestore(&lock, flags);
+ }
+ return rc;
+}
+
+/*!
+ * This is the default event handler for all connectivity-related events
+ * and hardware interrupts.
+ *
+ * @param param event ID
+ */
+static void pmic_convity_event_handler(void *param)
+{
+ unsigned long flags;
+
+ /* Update the global list of active interrupt events. */
+ spin_lock_irqsave(&lock, flags);
+ eventID |= (PMIC_CORE_EVENT) (param);
+ spin_unlock_irqrestore(&lock, flags);
+
+ /* Schedule the tasklet to be run as soon as it is convenient to do so. */
+ schedule_work(&convityTasklet);
+}
+
+/*!
+ * @brief This is the connectivity driver tasklet that handles interrupt events.
+ *
+ * This function is scheduled by the connectivity driver interrupt handler
+ * pmic_convity_event_handler() to complete the processing of all of the
+ * connectivity-related interrupt events.
+ *
+ * Since this tasklet runs with interrupts enabled, we can safely call
+ * the ADC driver, if necessary, to properly detect the type of USB connection
+ * that is being made and to call any user-registered callback functions.
+ *
+ * @param arg The parameter that was provided above in
+ * the DECLARE_TASKLET() macro (unused).
+ */
+static void pmic_convity_tasklet(struct work_struct *work)
+{
+
+ PMIC_CONVITY_EVENTS activeEvents = 0;
+ unsigned long flags = 0;
+
+ /* Check the interrupt sense bits to determine exactly what
+ * event just occurred.
+ */
+ if (eventID & CORE_EVENT_4V4) {
+ spin_lock_irqsave(&lock, flags);
+ eventID &= ~CORE_EVENT_4V4;
+ spin_unlock_irqrestore(&lock, flags);
+
+ activeEvents |= pmic_check_sensor(SENSE_USB4V4S) ?
+ USB_DETECT_4V4_RISE : USB_DETECT_4V4_FALL;
+
+ if (activeEvents & ~usb.eventMask) {
+ /* The default handler for 4.4 V rising/falling edge detection
+ * is to simply ignore the event.
+ */
+ ;
+ }
+ }
+ if (eventID & CORE_EVENT_2V0) {
+ spin_lock_irqsave(&lock, flags);
+ eventID &= ~CORE_EVENT_2V0;
+ spin_unlock_irqrestore(&lock, flags);
+
+ activeEvents |= pmic_check_sensor(SENSE_USB2V0S) ?
+ USB_DETECT_2V0_RISE : USB_DETECT_2V0_FALL;
+ if (activeEvents & ~usb.eventMask) {
+ /* The default handler for 2.0 V rising/falling edge detection
+ * is to simply ignore the event.
+ */
+ ;
+ }
+ }
+ if (eventID & CORE_EVENT_0V8) {
+ spin_lock_irqsave(&lock, flags);
+ eventID &= ~CORE_EVENT_0V8;
+ spin_unlock_irqrestore(&lock, flags);
+
+ activeEvents |= pmic_check_sensor(SENSE_USB0V8S) ?
+ USB_DETECT_0V8_RISE : USB_DETECT_0V8_FALL;
+
+ if (activeEvents & ~usb.eventMask) {
+ /* The default handler for 0.8 V rising/falling edge detection
+ * is to simply ignore the event.
+ */
+ ;
+ }
+ }
+ if (eventID & CORE_EVENT_ABDET) {
+ spin_lock_irqsave(&lock, flags);
+ eventID &= ~CORE_EVENT_ABDET;
+ spin_unlock_irqrestore(&lock, flags);
+
+ activeEvents |= pmic_check_sensor(SENSE_ID_GNDS) ?
+ USB_DETECT_MINI_A : 0;
+
+ activeEvents |= pmic_check_sensor(SENSE_ID_FLOATS) ?
+ USB_DETECT_MINI_B : 0;
+ }
+
+ /* Begin a critical section here so that we don't register/deregister
+ * for events or open/close the connectivity driver while the existing
+ * event handler (if it is currently defined) is in the middle of handling
+ * the current event.
+ */
+ spin_lock_irqsave(&lock, flags);
+
+ /* Finally, call the user-defined callback function if required. */
+ if ((usb.handle_state == HANDLE_IN_USE) &&
+ (usb.callback != NULL) && (activeEvents & usb.eventMask)) {
+ (*usb.callback) (activeEvents);
+ }
+
+ spin_unlock_irqrestore(&lock, flags);
+}
+
+/*@}*/
+
+/**************************************************************************
+ * Module initialization and termination functions.
+ *
+ * Note that if this code is compiled into the kernel, then the
+ * module_init() function will be called within the device_initcall()
+ * group.
+ **************************************************************************
+ */
+
+/*!
+ * @name Connectivity Driver Loading/Unloading Functions
+ * These non-exported internal functions are used to support the connectivity
+ * device driver initialization and de-initialization operations.
+ */
+/*@{*/
+
+/*!
+ * @brief This is the connectivity device driver initialization function.
+ *
+ * This function is called by the kernel when this device driver is first
+ * loaded.
+ */
+static int __init mc13783_pmic_convity_init(void)
+{
+ printk(KERN_INFO "PMIC Connectivity driver loading..\n");
+
+ return 0;
+}
+
+/*!
+ * @brief This is the Connectivity device driver de-initialization function.
+ *
+ * This function is called by the kernel when this device driver is about
+ * to be unloaded.
+ */
+static void __exit mc13783_pmic_convity_exit(void)
+{
+ printk(KERN_INFO "PMIC Connectivity driver unloading\n");
+
+ /* Close the device handle if it is still open. This will also
+ * deregister any callbacks that may still be active.
+ */
+ if (usb.handle_state == HANDLE_IN_USE) {
+ pmic_convity_close(usb.handle);
+ } else if (usb.handle_state == HANDLE_IN_USE) {
+ pmic_convity_close(rs_232.handle);
+ } else if (usb.handle_state == HANDLE_IN_USE) {
+ pmic_convity_close(cea_936.handle);
+ }
+
+ /* Reset the PMIC Connectivity register to it's power on state.
+ * We should do this when unloading the module so that we don't
+ * leave the hardware in a state which could cause problems when
+ * no device driver is loaded.
+ */
+ pmic_write_reg(REG_USB, RESET_USBCNTRL_REG_0, REG_FULLMASK);
+ pmic_write_reg(REG_CHARGE_USB_SPARE, RESET_USBCNTRL_REG_1,
+ REG_FULLMASK);
+ /* Note that there is no need to reset the "convity" device driver
+ * state structure to the reset state since we are in the final
+ * stage of unloading the device driver. The device driver state
+ * structure will be automatically and properly reinitialized if
+ * this device driver is reloaded.
+ */
+}
+
+/*@}*/
+
+/*
+ * Module entry points and description information.
+ */
+
+module_init(mc13783_pmic_convity_init);
+module_exit(mc13783_pmic_convity_exit);
+
+MODULE_DESCRIPTION("mc13783 Connectivity device driver");
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_LICENSE("GPL");
diff --git a/drivers/mxc/pmic/mc13783/pmic_light.c b/drivers/mxc/pmic/mc13783/pmic_light.c
new file mode 100644
index 000000000000..46c13aab2a78
--- /dev/null
+++ b/drivers/mxc/pmic/mc13783/pmic_light.c
@@ -0,0 +1,2764 @@
+/*
+ * Copyright 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file mc13783/pmic_light.c
+ * @brief This is the main file of PMIC(mc13783) Light and Backlight driver.
+ *
+ * @ingroup PMIC_LIGHT
+ */
+
+/*
+ * Includes
+ */
+#include <linux/slab.h>
+#include <linux/platform_device.h>
+#include <linux/delay.h>
+#include <linux/fs.h>
+#include <linux/sched.h>
+#include <linux/pmic_light.h>
+#include <linux/pmic_status.h>
+#include "pmic_light_defs.h"
+
+#define NB_LIGHT_REG 6
+
+static int pmic_light_major;
+
+/*!
+ * Number of users waiting in suspendq
+ */
+static int swait;
+
+/*!
+ * To indicate whether any of the light devices are suspending
+ */
+static int suspend_flag;
+
+/*!
+ * The suspendq is used to block application calls
+ */
+static wait_queue_head_t suspendq;
+
+static struct class *pmic_light_class;
+
+/* EXPORTED FUNCTIONS */
+EXPORT_SYMBOL(pmic_bklit_tcled_master_enable);
+EXPORT_SYMBOL(pmic_bklit_tcled_master_disable);
+EXPORT_SYMBOL(pmic_bklit_master_enable);
+EXPORT_SYMBOL(pmic_bklit_master_disable);
+EXPORT_SYMBOL(pmic_bklit_set_current);
+EXPORT_SYMBOL(pmic_bklit_get_current);
+EXPORT_SYMBOL(pmic_bklit_set_dutycycle);
+EXPORT_SYMBOL(pmic_bklit_get_dutycycle);
+EXPORT_SYMBOL(pmic_bklit_set_cycle_time);
+EXPORT_SYMBOL(pmic_bklit_get_cycle_time);
+EXPORT_SYMBOL(pmic_bklit_set_mode);
+EXPORT_SYMBOL(pmic_bklit_get_mode);
+EXPORT_SYMBOL(pmic_bklit_rampup);
+EXPORT_SYMBOL(pmic_bklit_off_rampup);
+EXPORT_SYMBOL(pmic_bklit_rampdown);
+EXPORT_SYMBOL(pmic_bklit_off_rampdown);
+EXPORT_SYMBOL(pmic_bklit_enable_edge_slow);
+EXPORT_SYMBOL(pmic_bklit_disable_edge_slow);
+EXPORT_SYMBOL(pmic_bklit_get_edge_slow);
+EXPORT_SYMBOL(pmic_bklit_set_strobemode);
+EXPORT_SYMBOL(pmic_tcled_enable);
+EXPORT_SYMBOL(pmic_tcled_disable);
+EXPORT_SYMBOL(pmic_tcled_get_mode);
+EXPORT_SYMBOL(pmic_tcled_ind_set_current);
+EXPORT_SYMBOL(pmic_tcled_ind_get_current);
+EXPORT_SYMBOL(pmic_tcled_ind_set_blink_pattern);
+EXPORT_SYMBOL(pmic_tcled_ind_get_blink_pattern);
+EXPORT_SYMBOL(pmic_tcled_fun_set_current);
+EXPORT_SYMBOL(pmic_tcled_fun_get_current);
+EXPORT_SYMBOL(pmic_tcled_fun_set_cycletime);
+EXPORT_SYMBOL(pmic_tcled_fun_get_cycletime);
+EXPORT_SYMBOL(pmic_tcled_fun_set_dutycycle);
+EXPORT_SYMBOL(pmic_tcled_fun_get_dutycycle);
+EXPORT_SYMBOL(pmic_tcled_fun_blendedramps);
+EXPORT_SYMBOL(pmic_tcled_fun_sawramps);
+EXPORT_SYMBOL(pmic_tcled_fun_blendedbowtie);
+EXPORT_SYMBOL(pmic_tcled_fun_chasinglightspattern);
+EXPORT_SYMBOL(pmic_tcled_fun_strobe);
+EXPORT_SYMBOL(pmic_tcled_fun_rampup);
+EXPORT_SYMBOL(pmic_tcled_get_fun_rampup);
+EXPORT_SYMBOL(pmic_tcled_fun_rampdown);
+EXPORT_SYMBOL(pmic_tcled_get_fun_rampdown);
+EXPORT_SYMBOL(pmic_tcled_fun_triode_on);
+EXPORT_SYMBOL(pmic_tcled_fun_triode_off);
+EXPORT_SYMBOL(pmic_tcled_enable_edge_slow);
+EXPORT_SYMBOL(pmic_tcled_disable_edge_slow);
+EXPORT_SYMBOL(pmic_tcled_enable_half_current);
+EXPORT_SYMBOL(pmic_tcled_disable_half_current);
+EXPORT_SYMBOL(pmic_tcled_enable_audio_modulation);
+EXPORT_SYMBOL(pmic_tcled_disable_audio_modulation);
+EXPORT_SYMBOL(pmic_bklit_set_boost_mode);
+EXPORT_SYMBOL(pmic_bklit_get_boost_mode);
+EXPORT_SYMBOL(pmic_bklit_config_boost_mode);
+EXPORT_SYMBOL(pmic_bklit_gets_boost_mode);
+
+/*!
+ * This is the suspend of power management for the pmic light API.
+ * It suports SAVE and POWER_DOWN state.
+ *
+ * @param pdev the device
+ * @param state the state
+ *
+ * @return This function returns 0 if successful.
+ */
+static int pmic_light_suspend(struct platform_device *dev, pm_message_t state)
+{
+ suspend_flag = 1;
+ /* switch off all leds and backlights */
+ CHECK_ERROR(pmic_light_init_reg());
+
+ return 0;
+};
+
+/*!
+ * This is the resume of power management for the pmic light API.
+ * It suports RESTORE state.
+ *
+ * @param dev the device
+ *
+ * @return This function returns 0 if successful.
+ */
+static int pmic_light_resume(struct platform_device *pdev)
+{
+ suspend_flag = 0;
+ while (swait > 0) {
+ swait--;
+ wake_up_interruptible(&suspendq);
+ }
+
+ return 0;
+};
+
+/*!
+ * This function enables backlight & tcled.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_bklit_tcled_master_enable(void)
+{
+ unsigned int reg_value = 0;
+ unsigned int mask = 0;
+
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+
+ reg_value = BITFVAL(BIT_LEDEN, 1);
+ mask = BITFMASK(BIT_LEDEN);
+ CHECK_ERROR(pmic_write_reg(LREG_0, reg_value, mask));
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function disables backlight & tcled.
+ *
+ * @return This function returns PMIC_SUCCESS if successful
+ */
+PMIC_STATUS pmic_bklit_tcled_master_disable(void)
+{
+ unsigned int reg_value = 0;
+ unsigned int mask = 0;
+
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+
+ reg_value = BITFVAL(BIT_LEDEN, 0);
+ mask = BITFMASK(BIT_LEDEN);
+ CHECK_ERROR(pmic_write_reg(LREG_0, reg_value, mask));
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function enables backlight. Not supported on mc13783
+ * Use pmic_bklit_tcled_master_enable.
+ *
+ * @return This function returns PMIC_NOT_SUPPORTED
+ */
+PMIC_STATUS pmic_bklit_master_enable(void)
+{
+ return PMIC_NOT_SUPPORTED;
+}
+
+/*!
+ * This function disables backlight. Not supported on mc13783
+ * Use pmic_bklit_tcled_master_enable.
+ *
+ * @return This function returns PMIC_NOT_SUPPORTED
+ */
+PMIC_STATUS pmic_bklit_master_disable(void)
+{
+ return PMIC_NOT_SUPPORTED;
+}
+
+/*!
+ * This function sets backlight current level.
+ *
+ * @param channel Backlight channel
+ * @param level Backlight current level, as the following table.
+ * @verbatim
+ * level main & aux keyboard
+ * ------ ----------- --------
+ * 0 0 mA 0 mA
+ * 1 3 mA 12 mA
+ * 2 6 mA 24 mA
+ * 3 9 mA 36 mA
+ * 4 12 mA 48 mA
+ * 5 15 mA 60 mA
+ * 6 18 mA 72 mA
+ * 7 21 mA 84 mA
+ * @endverbatim
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_bklit_set_current(t_bklit_channel channel, unsigned char level)
+{
+ unsigned int mask;
+ unsigned int value;
+
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+
+ switch (channel) {
+ case BACKLIGHT_LED1:
+ value = BITFVAL(BIT_CL_MAIN, level);
+ mask = BITFMASK(BIT_CL_MAIN);
+ break;
+ case BACKLIGHT_LED2:
+ value = BITFVAL(BIT_CL_AUX, level);
+ mask = BITFMASK(BIT_CL_AUX);
+ break;
+ case BACKLIGHT_LED3:
+ value = BITFVAL(BIT_CL_KEY, level);
+ mask = BITFMASK(BIT_CL_KEY);
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+ CHECK_ERROR(pmic_write_reg(LREG_2, value, mask));
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function retrives backlight current level.
+ * The channels are not individually adjustable, hence
+ * the channel parameter is ignored.
+ *
+ * @param channel Backlight channel (Ignored because the
+ * channels are not individually adjustable)
+ * @param level Pointer to store backlight current level result.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_bklit_get_current(t_bklit_channel channel,
+ unsigned char *level)
+{
+ unsigned int reg_value = 0;
+ unsigned int mask = 0;
+
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+
+ switch (channel) {
+ case BACKLIGHT_LED1:
+ mask = BITFMASK(BIT_CL_MAIN);
+ break;
+ case BACKLIGHT_LED2:
+ mask = BITFMASK(BIT_CL_AUX);
+ break;
+ case BACKLIGHT_LED3:
+ mask = BITFMASK(BIT_CL_KEY);
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ CHECK_ERROR(pmic_read_reg(LREG_2, &reg_value, mask));
+
+ switch (channel) {
+ case BACKLIGHT_LED1:
+ *level = BITFEXT(reg_value, BIT_CL_MAIN);
+ break;
+ case BACKLIGHT_LED2:
+ *level = BITFEXT(reg_value, BIT_CL_AUX);
+ break;
+ case BACKLIGHT_LED3:
+ *level = BITFEXT(reg_value, BIT_CL_KEY);
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function sets a backlight channel duty cycle.
+ * LED perceived brightness for each zone may be individually set by setting
+ * duty cycle. The default setting is for 0% duty cycle; this keeps all zone
+ * drivers turned off even after the master enable command. Each LED current
+ * sink can be turned on and adjusted for brightness with an independent 4 bit
+ * word for a duty cycle ranging from 0% to 100% in approximately 6.7% steps.
+ *
+ * @param channel Backlight channel.
+ * @param dc Backlight duty cycle, as the following table.
+ * @verbatim
+ * dc Duty Cycle (% On-time over Cycle Time)
+ * ------ ---------------------------------------
+ * 0 0%
+ * 1 6.7%
+ * 2 13.3%
+ * 3 20%
+ * 4 26.7%
+ * 5 33.3%
+ * 6 40%
+ * 7 46.7%
+ * 8 53.3%
+ * 9 60%
+ * 10 66.7%
+ * 11 73.3%
+ * 12 80%
+ * 13 86.7%
+ * 14 93.3%
+ * 15 100%
+ * @endverbatim
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_bklit_set_dutycycle(t_bklit_channel channel, unsigned char dc)
+{
+ unsigned int reg_value = 0;
+
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+
+ if (dc > 15) {
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ CHECK_ERROR(pmic_read_reg(LREG_2, &reg_value, PMIC_ALL_BITS));
+
+ switch (channel) {
+ case BACKLIGHT_LED1:
+ reg_value = reg_value & (~MASK_DUTY_CYCLE);
+ reg_value = reg_value | (dc << BIT_DUTY_CYCLE);
+ break;
+ case BACKLIGHT_LED2:
+ reg_value = reg_value & (~(MASK_DUTY_CYCLE << INDEX_AUX));
+ reg_value = reg_value | (dc << (BIT_DUTY_CYCLE + INDEX_AUX));
+ break;
+ case BACKLIGHT_LED3:
+ reg_value = reg_value & (~(MASK_DUTY_CYCLE << INDEX_KYD));
+ reg_value = reg_value | (dc << (BIT_DUTY_CYCLE + INDEX_KYD));
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+ CHECK_ERROR(pmic_write_reg(LREG_2, reg_value, PMIC_ALL_BITS));
+ return PMIC_SUCCESS;
+
+}
+
+/*!
+ * This function retrives a backlight channel duty cycle.
+ *
+ * @param channel Backlight channel.
+ * @param dc Pointer to backlight duty cycle.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_bklit_get_dutycycle(t_bklit_channel channel, unsigned char *dc)
+{
+ unsigned int reg_value = 0;
+
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+ CHECK_ERROR(pmic_read_reg(LREG_2, &reg_value, PMIC_ALL_BITS));
+
+ switch (channel) {
+ case BACKLIGHT_LED1:
+ *dc = (int)((reg_value & (MASK_DUTY_CYCLE))
+ >> BIT_DUTY_CYCLE);
+
+ break;
+ case BACKLIGHT_LED2:
+ *dc = (int)((reg_value & (MASK_DUTY_CYCLE << INDEX_AUX))
+ >> (BIT_DUTY_CYCLE + INDEX_AUX));
+ break;
+ case BACKLIGHT_LED3:
+ *dc = (int)((reg_value & (MASK_DUTY_CYCLE <<
+ INDEX_KYD)) >> (BIT_DUTY_CYCLE +
+ INDEX_KYD));
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function sets a backlight channel cycle time.
+ * Cycle Time is defined as the period of a complete cycle of
+ * Time_on + Time_off. The default Cycle Time is set to 0.01 seconds such that
+ * the 100 Hz on-off cycling is averaged out by the eye to eliminate
+ * flickering. Additionally, the Cycle Time can be programmed to intentionally
+ * extend the period of on-off cycles for a visual pulsating or blinking effect.
+ *
+ * @param period Backlight cycle time, as the following table.
+ * @verbatim
+ * period Cycle Time
+ * -------- ------------
+ * 0 0.01 seconds
+ * 1 0.1 seconds
+ * 2 0.5 seconds
+ * 3 2 seconds
+ * @endverbatim
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_bklit_set_cycle_time(unsigned char period)
+{
+ unsigned int mask;
+ unsigned int value;
+
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+ if (period > 3) {
+ return PMIC_PARAMETER_ERROR;
+ }
+ mask = BITFMASK(BIT_PERIOD);
+ value = BITFVAL(BIT_PERIOD, period);
+ CHECK_ERROR(pmic_write_reg(LREG_2, value, mask));
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function retrives a backlight channel cycle time setting.
+ *
+ * @param period Pointer to save backlight cycle time setting result.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_bklit_get_cycle_time(unsigned char *period)
+{
+ unsigned int mask;
+ unsigned int value;
+
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+ mask = BITFMASK(BIT_PERIOD);
+ CHECK_ERROR(pmic_read_reg(LREG_2, &value, mask));
+ *period = BITFEXT(value, BIT_PERIOD);
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function sets backlight operation mode. There are two modes of
+ * operations: current control and triode mode.
+ * The Duty Cycle/Cycle Time control is retained in Triode Mode. Audio
+ * coupling is not available in Triode Mode.
+ *
+ * @param channel Backlight channel.
+ * @param mode Backlight operation mode.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_bklit_set_mode(t_bklit_channel channel, t_bklit_mode mode)
+{
+ unsigned int reg_value = 0;
+ unsigned int clear_val = 0;
+ unsigned int triode_val = 0;
+
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+
+ CHECK_ERROR(pmic_read_reg(LREG_0, &reg_value, PMIC_ALL_BITS));
+
+ switch (channel) {
+ case BACKLIGHT_LED1:
+ clear_val = ~(MASK_TRIODE_MAIN_BL);
+ triode_val = MASK_TRIODE_MAIN_BL;
+ break;
+ case BACKLIGHT_LED2:
+ clear_val = ~(MASK_TRIODE_MAIN_BL << INDEX_AUXILIARY);
+ triode_val = (MASK_TRIODE_MAIN_BL << INDEX_AUXILIARY);
+ break;
+ case BACKLIGHT_LED3:
+ clear_val = ~(MASK_TRIODE_MAIN_BL << INDEX_KEYPAD);
+ triode_val = (MASK_TRIODE_MAIN_BL << INDEX_KEYPAD);
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ reg_value = (reg_value & clear_val);
+
+ if (mode == BACKLIGHT_TRIODE_MODE) {
+ reg_value = (reg_value | triode_val);
+ }
+
+ CHECK_ERROR(pmic_write_reg(LREG_0, reg_value, PMIC_ALL_BITS));
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function gets backlight operation mode. There are two modes of
+ * operations: current control and triode mode.
+ * The Duty Cycle/Cycle Time control is retained in Triode Mode. Audio
+ * coupling is not available in Triode Mode.
+ *
+ * @param channel Backlight channel.
+ * @param mode Backlight operation mode.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_bklit_get_mode(t_bklit_channel channel, t_bklit_mode *mode)
+{
+ unsigned int reg_value = 0;
+ unsigned int mask = 0;
+
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+
+ switch (channel) {
+ case BACKLIGHT_LED1:
+ mask = BITFMASK(BIT_TRIODE_MAIN_BL);
+ break;
+ case BACKLIGHT_LED2:
+ mask = BITFMASK(BIT_TRIODE_AUX_BL);
+ break;
+ case BACKLIGHT_LED3:
+ mask = BITFMASK(BIT_TRIODE_KEY_BL);
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ CHECK_ERROR(pmic_read_reg(LREG_0, &reg_value, mask));
+
+ switch (channel) {
+ case BACKLIGHT_LED1:
+ *mode = BITFEXT(reg_value, BIT_TRIODE_MAIN_BL);
+ break;
+ case BACKLIGHT_LED2:
+ *mode = BITFEXT(reg_value, BIT_TRIODE_AUX_BL);
+ break;
+ case BACKLIGHT_LED3:
+ *mode = BITFEXT(reg_value, BIT_TRIODE_KEY_BL);
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function starts backlight brightness ramp up function; ramp time is
+ * fixed at 0.5 seconds.
+ *
+ * @param channel Backlight channel.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_bklit_rampup(t_bklit_channel channel)
+{
+ unsigned int reg_value = 0;
+ unsigned int mask = 0;
+
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+
+ switch (channel) {
+ case BACKLIGHT_LED1:
+ mask = BITFMASK(BIT_UP_MAIN_BL);
+ reg_value = BITFVAL(BIT_UP_MAIN_BL, 1);
+ break;
+ case BACKLIGHT_LED2:
+ mask = BITFMASK(BIT_UP_AUX_BL);
+ reg_value = BITFVAL(BIT_UP_AUX_BL, 1);
+ break;
+ case BACKLIGHT_LED3:
+ mask = BITFMASK(BIT_UP_KEY_BL);
+ reg_value = BITFVAL(BIT_UP_KEY_BL, 1);
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ CHECK_ERROR(pmic_write_reg(LREG_0, reg_value, mask));
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function stops backlight brightness ramp up function;
+ *
+ * @param channel Backlight channel.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_bklit_off_rampup(t_bklit_channel channel)
+{
+ unsigned int reg_value = 0;
+ unsigned int mask = 0;
+
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+
+ switch (channel) {
+ case BACKLIGHT_LED1:
+ mask = BITFMASK(BIT_UP_MAIN_BL);
+ break;
+ case BACKLIGHT_LED2:
+ mask = BITFMASK(BIT_UP_AUX_BL);
+ break;
+ case BACKLIGHT_LED3:
+ mask = BITFMASK(BIT_UP_KEY_BL);
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ CHECK_ERROR(pmic_write_reg(LREG_0, reg_value, mask));
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function starts backlight brightness ramp down function; ramp time is
+ * fixed at 0.5 seconds.
+ *
+ * @param channel Backlight channel.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_bklit_rampdown(t_bklit_channel channel)
+{
+ unsigned int reg_value = 0;
+ unsigned int mask = 0;
+
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+
+ switch (channel) {
+ case BACKLIGHT_LED1:
+ mask = BITFMASK(BIT_DOWN_MAIN_BL);
+ reg_value = BITFVAL(BIT_DOWN_MAIN_BL, 1);
+ break;
+ case BACKLIGHT_LED2:
+ mask = BITFMASK(BIT_DOWN_AUX_BL);
+ reg_value = BITFVAL(BIT_DOWN_AUX_BL, 1);
+ break;
+ case BACKLIGHT_LED3:
+ mask = BITFMASK(BIT_DOWN_KEY_BL);
+ reg_value = BITFVAL(BIT_DOWN_KEY_BL, 1);
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ CHECK_ERROR(pmic_write_reg(LREG_0, reg_value, mask));
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function stops backlight brightness ramp down function.
+ *
+ * @param channel Backlight channel.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_bklit_off_rampdown(t_bklit_channel channel)
+{
+ unsigned int reg_value = 0;
+ unsigned int mask = 0;
+
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+
+ switch (channel) {
+ case BACKLIGHT_LED1:
+ mask = BITFMASK(BIT_DOWN_MAIN_BL);
+ break;
+ case BACKLIGHT_LED2:
+ mask = BITFMASK(BIT_DOWN_AUX_BL);
+ break;
+ case BACKLIGHT_LED3:
+ mask = BITFMASK(BIT_DOWN_KEY_BL);
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ CHECK_ERROR(pmic_write_reg(LREG_0, reg_value, mask));
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function enables backlight analog edge slowing mode. Analog Edge
+ * Slowing slows down the transient edges to reduce the chance of coupling LED
+ * modulation activity into other circuits. Rise and fall times will be targeted
+ * for approximately 50usec.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_bklit_enable_edge_slow(void)
+{
+ unsigned int mask;
+ unsigned int value;
+
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+ mask = BITFMASK(BIT_SLEWLIMBL);
+ value = BITFVAL(BIT_SLEWLIMBL, 1);
+ CHECK_ERROR(pmic_write_reg(LREG_2, value, mask));
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function disables backlight analog edge slowing mode. The backlight
+ * drivers will default to an <93>Instant On<94> mode.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_bklit_disable_edge_slow(void)
+{
+ unsigned int mask;
+
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+ mask = BITFMASK(BIT_SLEWLIMBL);
+ CHECK_ERROR(pmic_write_reg(LREG_2, 0, mask));
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function gets backlight analog edge slowing mode. DThe backlight
+ *
+ * @param edge Edge slowing mode.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_bklit_get_edge_slow(bool *edge)
+{
+ unsigned int mask;
+ unsigned int value;
+
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+ mask = BITFMASK(BIT_SLEWLIMBL);
+ CHECK_ERROR(pmic_read_reg(LREG_2, &value, mask));
+ *edge = (bool) BITFEXT(value, BIT_SLEWLIMBL);
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function sets backlight Strobe Light Pulsing mode.
+ *
+ * @param channel Backlight channel.
+ * @param mode Strobe Light Pulsing mode.
+ *
+ * @return This function returns PMIC_NOT_SUPPORTED.
+ */
+PMIC_STATUS pmic_bklit_set_strobemode(t_bklit_channel channel,
+ t_bklit_strobe_mode mode)
+{
+ return PMIC_NOT_SUPPORTED;
+}
+
+/*!
+ * This function enables tri-color LED.
+ *
+ * @param mode Tri-color LED operation mode.
+ * @param bank Selected tri-color bank
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_tcled_enable(t_tcled_mode mode, t_funlight_bank bank)
+{
+ unsigned int mask = 0;
+ unsigned int value = 0;
+
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+
+ switch (mode) {
+ case TCLED_FUN_MODE:
+ switch (bank) {
+ case TCLED_FUN_BANK1:
+ mask = MASK_BK1_FL;
+ value = MASK_BK1_FL;
+ break;
+ case TCLED_FUN_BANK2:
+ mask = MASK_BK2_FL;
+ value = MASK_BK2_FL;
+ break;
+ case TCLED_FUN_BANK3:
+ mask = MASK_BK3_FL;
+ value = MASK_BK3_FL;
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+ break;
+ case TCLED_IND_MODE:
+ mask = MASK_BK1_FL | MASK_BK2_FL | MASK_BK3_FL;
+ break;
+ }
+
+ CHECK_ERROR(pmic_write_reg(LREG_0, value, mask));
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function disables tri-color LED.
+ *
+ * @param bank Selected tri-color bank
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ *
+ */
+PMIC_STATUS pmic_tcled_disable(t_funlight_bank bank)
+{
+ unsigned int mask = 0;
+
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+
+ switch (bank) {
+ case TCLED_FUN_BANK1:
+ mask = MASK_BK1_FL;
+ break;
+ case TCLED_FUN_BANK2:
+ mask = MASK_BK2_FL;
+ break;
+ case TCLED_FUN_BANK3:
+ mask = MASK_BK3_FL;
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ CHECK_ERROR(pmic_write_reg(LREG_0, 0, mask));
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function retrives tri-color LED operation mode.
+ *
+ * @param mode Pointer to Tri-color LED operation mode.
+ * @param bank Selected tri-color bank
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_tcled_get_mode(t_tcled_mode *mode, t_funlight_bank bank)
+{
+ unsigned int val;
+ unsigned int mask;
+
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+
+ switch (bank) {
+ case TCLED_FUN_BANK1:
+ mask = MASK_BK1_FL;
+ break;
+ case TCLED_FUN_BANK2:
+ mask = MASK_BK2_FL;
+ break;
+ case TCLED_FUN_BANK3:
+ mask = MASK_BK3_FL;
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ CHECK_ERROR(pmic_read_reg(LREG_0, &val, mask));
+
+ if (val) {
+ *mode = TCLED_FUN_MODE;
+ } else {
+ *mode = TCLED_IND_MODE;
+ }
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function sets a tri-color LED channel current level in indicator mode.
+ *
+ * @param channel Tri-color LED channel.
+ * @param level Current level.
+ * @param bank Selected tri-color bank
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_tcled_ind_set_current(t_ind_channel channel,
+ t_tcled_cur_level level,
+ t_funlight_bank bank)
+{
+ unsigned int reg_conf = 0;
+ unsigned int mask;
+ unsigned int value;
+
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+
+ if (level > TCLED_CUR_LEVEL_4) {
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ switch (bank) {
+ case TCLED_FUN_BANK1:
+ reg_conf = LREG_3;
+ break;
+ case TCLED_FUN_BANK2:
+ reg_conf = LREG_4;
+ break;
+ case TCLED_FUN_BANK3:
+ reg_conf = LREG_5;
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ switch (channel) {
+ case TCLED_IND_RED:
+ value = BITFVAL(BITS_CL_RED, level);
+ mask = BITFMASK(BITS_CL_RED);
+ break;
+ case TCLED_IND_GREEN:
+ value = BITFVAL(BITS_CL_GREEN, level);
+ mask = BITFMASK(BITS_CL_GREEN);
+ break;
+ case TCLED_IND_BLUE:
+ value = BITFVAL(BITS_CL_BLUE, level);
+ mask = BITFMASK(BITS_CL_BLUE);
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ CHECK_ERROR(pmic_write_reg(reg_conf, value, mask));
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function retrives a tri-color LED channel current level
+ * in indicator mode.
+ *
+ * @param channel Tri-color LED channel.
+ * @param level Pointer to current level.
+ * @param bank Selected tri-color bank
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_tcled_ind_get_current(t_ind_channel channel,
+ t_tcled_cur_level *level,
+ t_funlight_bank bank)
+{
+ unsigned int reg_conf = 0;
+ unsigned int mask = 0;
+ unsigned int value = 0;
+
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+
+ switch (bank) {
+ case TCLED_FUN_BANK1:
+ reg_conf = LREG_3;
+ break;
+ case TCLED_FUN_BANK2:
+ reg_conf = LREG_4;
+ break;
+ case TCLED_FUN_BANK3:
+ reg_conf = LREG_5;
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ switch (channel) {
+ case TCLED_IND_RED:
+ mask = BITFMASK(BITS_CL_RED);
+ break;
+ case TCLED_IND_GREEN:
+ mask = BITFMASK(BITS_CL_GREEN);
+ break;
+ case TCLED_IND_BLUE:
+ mask = BITFMASK(BITS_CL_BLUE);
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ CHECK_ERROR(pmic_read_reg(reg_conf, &value, mask));
+
+ switch (channel) {
+ case TCLED_IND_RED:
+ *level = BITFEXT(value, BITS_CL_RED);
+ break;
+ case TCLED_IND_GREEN:
+ *level = BITFEXT(value, BITS_CL_GREEN);
+ break;
+ case TCLED_IND_BLUE:
+ *level = BITFEXT(value, BITS_CL_BLUE);
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function sets a tri-color LED channel blinking pattern in indication
+ * mode.
+ *
+ * @param channel Tri-color LED channel.
+ * @param pattern Blinking pattern.
+ * @param skip If true, skip a cycle after each cycle.
+ * @param bank Selected tri-color bank
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_tcled_ind_set_blink_pattern(t_ind_channel channel,
+ t_tcled_ind_blink_pattern pattern,
+ bool skip, t_funlight_bank bank)
+{
+ unsigned int reg_conf = 0;
+ unsigned int mask = 0;
+ unsigned int value = 0;
+
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+
+ if (skip == true) {
+ return PMIC_NOT_SUPPORTED;
+ }
+
+ switch (bank) {
+ case TCLED_FUN_BANK1:
+ reg_conf = LREG_3;
+ break;
+ case TCLED_FUN_BANK2:
+ reg_conf = LREG_4;
+ break;
+ case TCLED_FUN_BANK3:
+ reg_conf = LREG_5;
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ switch (channel) {
+ case TCLED_IND_RED:
+ value = BITFVAL(BITS_DC_RED, pattern);
+ mask = BITFMASK(BITS_DC_RED);
+ break;
+ case TCLED_IND_GREEN:
+ value = BITFVAL(BITS_DC_GREEN, pattern);
+ mask = BITFMASK(BITS_DC_GREEN);
+ break;
+ case TCLED_IND_BLUE:
+ value = BITFVAL(BITS_DC_BLUE, pattern);
+ mask = BITFMASK(BITS_DC_BLUE);
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ CHECK_ERROR(pmic_write_reg(reg_conf, value, mask));
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function retrives a tri-color LED channel blinking pattern in
+ * indication mode.
+ *
+ * @param channel Tri-color LED channel.
+ * @param pattern Pointer to Blinking pattern.
+ * @param skip Pointer to a boolean varible indicating if skip
+ * @param bank Selected tri-color bank
+ * a cycle after each cycle.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_tcled_ind_get_blink_pattern(t_ind_channel channel,
+ t_tcled_ind_blink_pattern *
+ pattern, bool *skip,
+ t_funlight_bank bank)
+{
+ unsigned int reg_conf = 0;
+ unsigned int mask = 0;
+ unsigned int value = 0;
+
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+
+ switch (bank) {
+ case TCLED_FUN_BANK1:
+ reg_conf = LREG_3;
+ break;
+ case TCLED_FUN_BANK2:
+ reg_conf = LREG_4;
+ break;
+ case TCLED_FUN_BANK3:
+ reg_conf = LREG_5;
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ switch (channel) {
+ case TCLED_IND_RED:
+ mask = BITFMASK(BITS_DC_RED);
+ break;
+ case TCLED_IND_GREEN:
+ mask = BITFMASK(BITS_DC_GREEN);
+ break;
+ case TCLED_IND_BLUE:
+ mask = BITFMASK(BITS_DC_BLUE);
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ CHECK_ERROR(pmic_read_reg(reg_conf, &value, mask));
+
+ switch (channel) {
+ case TCLED_IND_RED:
+ *pattern = BITFEXT(value, BITS_DC_RED);
+ break;
+ case TCLED_IND_GREEN:
+ *pattern = BITFEXT(value, BITS_DC_GREEN);
+ break;
+ case TCLED_IND_BLUE:
+ *pattern = BITFEXT(value, BITS_DC_BLUE);
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function sets a tri-color LED channel current level in Fun Light mode.
+ *
+ * @param bank Tri-color LED bank
+ * @param channel Tri-color LED channel.
+ * @param level Current level.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_tcled_fun_set_current(t_funlight_bank bank,
+ t_funlight_channel channel,
+ t_tcled_cur_level level)
+{
+ unsigned int reg_conf = 0;
+ unsigned int mask;
+ unsigned int value;
+
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+
+ if (level > TCLED_CUR_LEVEL_4) {
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ switch (bank) {
+ case TCLED_FUN_BANK1:
+ reg_conf = LREG_3;
+ break;
+ case TCLED_FUN_BANK2:
+ reg_conf = LREG_4;
+ break;
+ case TCLED_FUN_BANK3:
+ reg_conf = LREG_5;
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ switch (channel) {
+ case TCLED_FUN_CHANNEL1:
+ value = BITFVAL(BITS_CL_RED, level);
+ mask = BITFMASK(BITS_CL_RED);
+ break;
+ case TCLED_FUN_CHANNEL2:
+ value = BITFVAL(BITS_CL_GREEN, level);
+ mask = BITFMASK(BITS_CL_GREEN);
+ break;
+ case TCLED_FUN_CHANNEL3:
+ value = BITFVAL(BITS_CL_BLUE, level);
+ mask = BITFMASK(BITS_CL_BLUE);
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ CHECK_ERROR(pmic_write_reg(reg_conf, value, mask));
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function retrives a tri-color LED channel current level
+ * in Fun Light mode.
+ *
+ * @param bank Tri-color LED bank
+ * @param channel Tri-color LED channel.
+ * @param level Pointer to current level.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_tcled_fun_get_current(t_funlight_bank bank,
+ t_funlight_channel channel,
+ t_tcled_cur_level *level)
+{
+ unsigned int reg_conf = 0;
+ unsigned int mask = 0;
+ unsigned int value = 0;
+
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+
+ switch (bank) {
+ case TCLED_FUN_BANK1:
+ reg_conf = LREG_3;
+ break;
+ case TCLED_FUN_BANK2:
+ reg_conf = LREG_4;
+ break;
+ case TCLED_FUN_BANK3:
+ reg_conf = LREG_5;
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ switch (channel) {
+ case TCLED_FUN_CHANNEL1:
+ mask = BITFMASK(BITS_CL_RED);
+ break;
+ case TCLED_FUN_CHANNEL2:
+ mask = BITFMASK(BITS_CL_GREEN);
+ break;
+ case TCLED_FUN_CHANNEL3:
+ mask = BITFMASK(BITS_CL_BLUE);
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ CHECK_ERROR(pmic_read_reg(reg_conf, &value, mask));
+
+ switch (channel) {
+ case TCLED_FUN_CHANNEL1:
+ *level = BITFEXT(value, BITS_CL_RED);
+ break;
+ case TCLED_FUN_CHANNEL2:
+ *level = BITFEXT(value, BITS_CL_GREEN);
+ break;
+ case TCLED_FUN_CHANNEL3:
+ *level = BITFEXT(value, BITS_CL_BLUE);
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function sets tri-color LED cycle time.
+ *
+ * @param bank Tri-color LED bank
+ * @param ct Cycle time.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_tcled_fun_set_cycletime(t_funlight_bank bank,
+ t_tcled_fun_cycle_time ct)
+{
+ unsigned int reg_conf = 0;
+ unsigned int mask;
+ unsigned int value;
+
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+
+ if (ct > TC_CYCLE_TIME_4) {
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ switch (bank) {
+ case TCLED_FUN_BANK1:
+ reg_conf = LREG_3;
+ break;
+ case TCLED_FUN_BANK2:
+ reg_conf = LREG_4;
+ break;
+ case TCLED_FUN_BANK3:
+ reg_conf = LREG_5;
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ value = BITFVAL(BIT_PERIOD, ct);
+ mask = BITFMASK(BIT_PERIOD);
+
+ CHECK_ERROR(pmic_write_reg(reg_conf, value, mask));
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function retrives tri-color LED cycle time in Fun Light mode.
+ *
+ * @param bank Tri-color LED bank
+ * @param ct Pointer to cycle time.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_tcled_fun_get_cycletime(t_funlight_bank bank,
+ t_tcled_fun_cycle_time *ct)
+{
+ unsigned int reg_conf = 0;
+ unsigned int mask;
+ unsigned int value;
+
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+
+ if (*ct > TC_CYCLE_TIME_4) {
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ switch (bank) {
+ case TCLED_FUN_BANK1:
+ reg_conf = LREG_3;
+ break;
+ case TCLED_FUN_BANK2:
+ reg_conf = LREG_4;
+ break;
+ case TCLED_FUN_BANK3:
+ reg_conf = LREG_5;
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ mask = BITFMASK(BIT_PERIOD);
+ CHECK_ERROR(pmic_read_reg(reg_conf, &value, mask));
+
+ *ct = BITFVAL(BIT_PERIOD, value);
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function sets a tri-color LED channel duty cycle in Fun Light mode.
+ *
+ * @param bank Tri-color LED bank
+ * @param channel Tri-color LED channel.
+ * @param dc Duty cycle.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_tcled_fun_set_dutycycle(t_funlight_bank bank,
+ t_funlight_channel channel,
+ unsigned char dc)
+{
+ unsigned int reg_conf = 0;
+ unsigned int mask = 0;
+ unsigned int value = 0;
+
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+
+ switch (bank) {
+ case TCLED_FUN_BANK1:
+ reg_conf = LREG_3;
+ break;
+ case TCLED_FUN_BANK2:
+ reg_conf = LREG_4;
+ break;
+ case TCLED_FUN_BANK3:
+ reg_conf = LREG_5;
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ switch (channel) {
+ case TCLED_FUN_CHANNEL1:
+ value = BITFVAL(BITS_DC_RED, dc);
+ mask = BITFMASK(BITS_DC_RED);
+ break;
+ case TCLED_FUN_CHANNEL2:
+ value = BITFVAL(BITS_DC_GREEN, dc);
+ mask = BITFMASK(BITS_DC_GREEN);
+ break;
+ case TCLED_FUN_CHANNEL3:
+ value = BITFVAL(BITS_DC_BLUE, dc);
+ mask = BITFMASK(BITS_DC_BLUE);
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ CHECK_ERROR(pmic_write_reg(reg_conf, value, mask));
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function retrives a tri-color LED channel duty cycle in Fun Light mode.
+ *
+ * @param bank Tri-color LED bank
+ * @param channel Tri-color LED channel.
+ * @param dc Pointer to duty cycle.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_tcled_fun_get_dutycycle(t_funlight_bank bank,
+ t_funlight_channel channel,
+ unsigned char *dc)
+{
+ unsigned int reg_conf = 0;
+ unsigned int mask = 0;
+ unsigned int value = 0;
+
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+
+ switch (bank) {
+ case TCLED_FUN_BANK1:
+ reg_conf = LREG_3;
+ break;
+ case TCLED_FUN_BANK2:
+ reg_conf = LREG_4;
+ break;
+ case TCLED_FUN_BANK3:
+ reg_conf = LREG_5;
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ switch (channel) {
+ case TCLED_FUN_CHANNEL1:
+ mask = BITFMASK(BITS_DC_RED);
+ break;
+ case TCLED_FUN_CHANNEL2:
+ mask = BITFMASK(BITS_DC_GREEN);
+ break;
+ case TCLED_FUN_CHANNEL3:
+ mask = BITFMASK(BITS_DC_BLUE);
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ CHECK_ERROR(pmic_read_reg(reg_conf, &value, mask));
+
+ switch (channel) {
+ case TCLED_FUN_CHANNEL1:
+ *dc = BITFEXT(value, BITS_DC_RED);
+ break;
+ case TCLED_FUN_CHANNEL2:
+ *dc = BITFEXT(value, BITS_DC_GREEN);
+ break;
+ case TCLED_FUN_CHANNEL3:
+ *dc = BITFEXT(value, BITS_DC_BLUE);
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function initiates Blended Ramp fun light pattern.
+ *
+ * @param bank Tri-color LED bank
+ * @param speed Speed of pattern.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_tcled_fun_blendedramps(t_funlight_bank bank,
+ t_tcled_fun_speed speed)
+{
+ unsigned int mask = 0;
+ unsigned int value = 0;
+
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+
+ switch (speed) {
+ case TC_OFF:
+ value = BITFVAL(BITS_FUN_LIGHT, FUN_LIGHTS_OFF);
+ break;
+ case TC_SLOW:
+ value = BITFVAL(BITS_FUN_LIGHT, BLENDED_RAMPS_SLOW);
+ break;
+ case TC_FAST:
+ value = BITFVAL(BITS_FUN_LIGHT, BLENDED_RAMPS_FAST);
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ mask = BITFMASK(BITS_FUN_LIGHT);
+ CHECK_ERROR(pmic_write_reg(LREG_0, value, mask));
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function initiates Saw Ramp fun light pattern.
+ *
+ * @param bank Tri-color LED bank
+ * @param speed Speed of pattern.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_tcled_fun_sawramps(t_funlight_bank bank,
+ t_tcled_fun_speed speed)
+{
+ unsigned int mask = 0;
+ unsigned int value = 0;
+
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+
+ switch (speed) {
+ case TC_OFF:
+ value = BITFVAL(BITS_FUN_LIGHT, FUN_LIGHTS_OFF);
+ break;
+ case TC_SLOW:
+ value = BITFVAL(BITS_FUN_LIGHT, SAW_RAMPS_SLOW);
+ break;
+ case TC_FAST:
+ value = BITFVAL(BITS_FUN_LIGHT, SAW_RAMPS_FAST);
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ mask = BITFMASK(BITS_FUN_LIGHT);
+ CHECK_ERROR(pmic_write_reg(LREG_0, value, mask));
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function initiates Blended Bowtie fun light pattern.
+ *
+ * @param bank Tri-color LED bank
+ * @param speed Speed of pattern.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_tcled_fun_blendedbowtie(t_funlight_bank bank,
+ t_tcled_fun_speed speed)
+{
+ unsigned int mask = 0;
+ unsigned int value = 0;
+
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+
+ switch (speed) {
+ case TC_OFF:
+ value = BITFVAL(BITS_FUN_LIGHT, FUN_LIGHTS_OFF);
+ break;
+ case TC_SLOW:
+ value = BITFVAL(BITS_FUN_LIGHT, BLENDED_INVERSE_RAMPS_SLOW);
+ break;
+ case TC_FAST:
+ value = BITFVAL(BITS_FUN_LIGHT, BLENDED_INVERSE_RAMPS_FAST);
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ mask = BITFMASK(BITS_FUN_LIGHT);
+ CHECK_ERROR(pmic_write_reg(LREG_0, value, mask));
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function initiates Chasing Lights fun light pattern.
+ *
+ * @param bank Tri-color LED bank
+ * @param pattern Chasing light pattern mode.
+ * @param speed Speed of pattern.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_tcled_fun_chasinglightspattern(t_funlight_bank bank,
+ t_chaselight_pattern pattern,
+ t_tcled_fun_speed speed)
+{
+ unsigned int mask = 0;
+ unsigned int value = 0;
+
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+
+ if (pattern > BGR) {
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ switch (speed) {
+ case TC_OFF:
+ value = BITFVAL(BITS_FUN_LIGHT, FUN_LIGHTS_OFF);
+ break;
+ case TC_SLOW:
+ if (pattern == PMIC_RGB) {
+ value =
+ BITFVAL(BITS_FUN_LIGHT, CHASING_LIGHTS_RGB_SLOW);
+ } else {
+ value =
+ BITFVAL(BITS_FUN_LIGHT, CHASING_LIGHTS_BGR_SLOW);
+ }
+ break;
+ case TC_FAST:
+ if (pattern == PMIC_RGB) {
+ value =
+ BITFVAL(BITS_FUN_LIGHT, CHASING_LIGHTS_RGB_FAST);
+ } else {
+ value =
+ BITFVAL(BITS_FUN_LIGHT, CHASING_LIGHTS_BGR_FAST);
+ }
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ mask = BITFMASK(BITS_FUN_LIGHT);
+ CHECK_ERROR(pmic_write_reg(LREG_0, value, mask));
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function initiates Strobe Mode fun light pattern.
+ *
+ * @param bank Tri-color LED bank
+ * @param channel Tri-color LED channel.
+ * @param speed Speed of pattern.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_tcled_fun_strobe(t_funlight_bank bank,
+ t_funlight_channel channel,
+ t_tcled_fun_strobe_speed speed)
+{
+ /* not supported on mc13783 */
+
+ return PMIC_NOT_SUPPORTED;
+}
+
+/*!
+ * This function initiates Tri-color LED brightness Ramp Up function; Ramp time
+ * is fixed at 1 second.
+ *
+ * @param bank Tri-color LED bank
+ * @param channel Tri-color LED channel.
+ * @param rampup Ramp-up configuration.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_tcled_fun_rampup(t_funlight_bank bank,
+ t_funlight_channel channel, bool rampup)
+{
+ unsigned int mask = 0;
+ unsigned int value = 0;
+
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+
+ switch (bank) {
+ case TCLED_FUN_BANK1:
+ mask = LEDR1RAMPUP;
+ value = LEDR1RAMPUP;
+ break;
+ case TCLED_FUN_BANK2:
+ mask = LEDR2RAMPUP;
+ value = LEDR2RAMPUP;
+ break;
+ case TCLED_FUN_BANK3:
+ mask = LEDR3RAMPUP;
+ value = LEDR3RAMPUP;
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ switch (channel) {
+ case TCLED_FUN_CHANNEL1:
+ mask = mask;
+ value = value;
+ break;
+ case TCLED_FUN_CHANNEL2:
+ mask = mask * 2;
+ value = value * 2;
+ break;
+ case TCLED_FUN_CHANNEL3:
+ mask = mask * 4;
+ value = value * 4;
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ if (!rampup) {
+ value = 0;
+ }
+
+ CHECK_ERROR(pmic_write_reg(LREG_1, value, mask));
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function gets Tri-color LED brightness Ramp Up function; Ramp time
+ * is fixed at 1 second.
+ *
+ * @param bank Tri-color LED bank
+ * @param channel Tri-color LED channel.
+ * @param rampup Ramp-up configuration.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_tcled_get_fun_rampup(t_funlight_bank bank,
+ t_funlight_channel channel, bool *rampup)
+{
+ unsigned int mask = 0;
+ unsigned int value = 0;
+
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+
+ switch (bank) {
+ case TCLED_FUN_BANK1:
+ mask = LEDR1RAMPUP;
+ break;
+ case TCLED_FUN_BANK2:
+ mask = LEDR2RAMPUP;
+ break;
+ case TCLED_FUN_BANK3:
+ mask = LEDR3RAMPUP;
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ switch (channel) {
+ case TCLED_FUN_CHANNEL1:
+ mask = mask;
+ break;
+ case TCLED_FUN_CHANNEL2:
+ mask = mask * 2;
+ break;
+ case TCLED_FUN_CHANNEL3:
+ mask = mask * 4;
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ CHECK_ERROR(pmic_read_reg(LREG_1, &value, mask));
+ if (value) {
+ *rampup = true;
+ } else {
+ *rampup = false;
+ }
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function initiates Tri-color LED brightness Ramp Down function; Ramp
+ * time is fixed at 1 second.
+ *
+ * @param bank Tri-color LED bank
+ * @param channel Tri-color LED channel.
+ * @param rampdown Ramp-down configuration.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_tcled_fun_rampdown(t_funlight_bank bank,
+ t_funlight_channel channel, bool rampdown)
+{
+ unsigned int mask = 0;
+ unsigned int value = 0;
+
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+
+ switch (bank) {
+ case TCLED_FUN_BANK1:
+ mask = LEDR1RAMPDOWN;
+ value = LEDR1RAMPDOWN;
+ break;
+ case TCLED_FUN_BANK2:
+ mask = LEDR2RAMPDOWN;
+ value = LEDR2RAMPDOWN;
+ break;
+ case TCLED_FUN_BANK3:
+ mask = LEDR3RAMPDOWN;
+ value = LEDR3RAMPDOWN;
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ switch (channel) {
+ case TCLED_FUN_CHANNEL1:
+ mask = mask;
+ value = value;
+ break;
+ case TCLED_FUN_CHANNEL2:
+ mask = mask * 2;
+ value = value * 2;
+ break;
+ case TCLED_FUN_CHANNEL3:
+ mask = mask * 4;
+ value = value * 4;
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ if (!rampdown) {
+ value = 0;
+ }
+
+ CHECK_ERROR(pmic_write_reg(LREG_1, value, mask));
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function initiates Tri-color LED brightness Ramp Down function; Ramp
+ * time is fixed at 1 second.
+ *
+ * @param bank Tri-color LED bank
+ * @param channel Tri-color LED channel.
+ * @param rampdown Ramp-down configuration.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_tcled_get_fun_rampdown(t_funlight_bank bank,
+ t_funlight_channel channel,
+ bool *rampdown)
+{
+ unsigned int mask = 0;
+ unsigned int value = 0;
+
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+
+ switch (bank) {
+ case TCLED_FUN_BANK1:
+ mask = LEDR1RAMPDOWN;
+ break;
+ case TCLED_FUN_BANK2:
+ mask = LEDR2RAMPDOWN;
+ break;
+ case TCLED_FUN_BANK3:
+ mask = LEDR3RAMPDOWN;
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ switch (channel) {
+ case TCLED_FUN_CHANNEL1:
+ mask = mask;
+ break;
+ case TCLED_FUN_CHANNEL2:
+ mask = mask * 2;
+ break;
+ case TCLED_FUN_CHANNEL3:
+ mask = mask * 4;
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ CHECK_ERROR(pmic_read_reg(LREG_1, &value, mask));
+ if (value) {
+ *rampdown = true;
+ } else {
+ *rampdown = false;
+ }
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function enables a Tri-color channel triode mode.
+ *
+ * @param bank Tri-color LED bank
+ * @param channel Tri-color LED channel.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_tcled_fun_triode_on(t_funlight_bank bank,
+ t_funlight_channel channel)
+{
+ unsigned int mask = 0;
+ unsigned int value = 0;
+
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+
+ switch (bank) {
+ case TCLED_FUN_BANK1:
+ mask = MASK_BK1_FL;
+ value = ENABLE_BK1_FL;
+ break;
+ case TCLED_FUN_BANK2:
+ mask = MASK_BK2_FL;
+ value = ENABLE_BK2_FL;
+ break;
+ case TCLED_FUN_BANK3:
+ mask = MASK_BK3_FL;
+ value = ENABLE_BK2_FL;
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ CHECK_ERROR(pmic_write_reg(LREG_0, value, mask));
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function disables a Tri-color LED channel triode mode.
+ *
+ * @param bank Tri-color LED bank
+ * @param channel Tri-color LED channel.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_tcled_fun_triode_off(t_funlight_bank bank,
+ t_funlight_channel channel)
+{
+ unsigned int mask = 0;
+ unsigned int value = 0;
+
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+
+ switch (bank) {
+ case TCLED_FUN_BANK1:
+ mask = MASK_BK1_FL;
+ break;
+ case TCLED_FUN_BANK2:
+ mask = MASK_BK2_FL;
+ break;
+ case TCLED_FUN_BANK3:
+ mask = MASK_BK3_FL;
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ CHECK_ERROR(pmic_write_reg(LREG_0, value, mask));
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function enables Tri-color LED edge slowing.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_tcled_enable_edge_slow(void)
+{
+ unsigned int mask = 0;
+ unsigned int value = 0;
+
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+
+ value = BITFVAL(BIT_SLEWLIMTC, 1);
+ mask = BITFMASK(BIT_SLEWLIMTC);
+
+ CHECK_ERROR(pmic_write_reg(LREG_1, value, mask));
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function disables Tri-color LED edge slowing.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_tcled_disable_edge_slow(void)
+{
+ unsigned int mask = 0;
+ unsigned int value = 0;
+
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+
+ value = BITFVAL(BIT_SLEWLIMTC, 0);
+ mask = BITFMASK(BIT_SLEWLIMTC);
+
+ CHECK_ERROR(pmic_write_reg(LREG_1, value, mask));
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function enables Tri-color LED half current mode.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_tcled_enable_half_current(void)
+{
+ unsigned int mask = 0;
+ unsigned int value = 0;
+
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+
+ value = BITFVAL(BIT_TC1HALF, 1);
+ mask = BITFMASK(BIT_TC1HALF);
+
+ CHECK_ERROR(pmic_write_reg(LREG_1, value, mask));
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function disables Tri-color LED half current mode.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_tcled_disable_half_current(void)
+{
+ unsigned int mask = 0;
+ unsigned int value = 0;
+
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+
+ value = BITFVAL(BIT_TC1HALF, 0);
+ mask = BITFMASK(BIT_TC1HALF);
+
+ CHECK_ERROR(pmic_write_reg(LREG_1, value, mask));
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function enables backlight or Tri-color LED audio modulation.
+ *
+ * @return This function returns PMIC_NOT_SUPPORTED.
+ */
+PMIC_STATUS pmic_tcled_enable_audio_modulation(t_led_channel channel,
+ t_aud_path path,
+ t_aud_gain gain, bool lpf_bypass)
+{
+ return PMIC_NOT_SUPPORTED;
+}
+
+/*!
+ * This function disables backlight or Tri-color LED audio modulation.
+ *
+ * @return This function returns PMIC_NOT_SUPPORTED.
+ */
+PMIC_STATUS pmic_tcled_disable_audio_modulation(void)
+{
+ return PMIC_NOT_SUPPORTED;
+}
+
+/*!
+ * This function enables the boost mode.
+ * Only on mc13783 2.0 or higher
+ *
+ * @param en_dis Enable or disable the boost mode
+ *
+ * @return This function returns 0 if successful.
+ */
+PMIC_STATUS pmic_bklit_set_boost_mode(bool en_dis)
+{
+
+ pmic_version_t mc13783_ver;
+ unsigned int mask;
+ unsigned int value;
+ mc13783_ver = pmic_get_version();
+ if (mc13783_ver.revision >= 20) {
+
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+
+ value = BITFVAL(BIT_BOOSTEN, en_dis);
+ mask = BITFMASK(BIT_BOOSTEN);
+ CHECK_ERROR(pmic_write_reg(LREG_0, value, mask));
+ return PMIC_SUCCESS;
+ } else {
+ return PMIC_NOT_SUPPORTED;
+ }
+}
+
+/*!
+ * This function gets the boost mode.
+ * Only on mc13783 2.0 or higher
+ *
+ * @param en_dis Enable or disable the boost mode
+ *
+ * @return This function returns 0 if successful.
+ */
+PMIC_STATUS pmic_bklit_get_boost_mode(bool *en_dis)
+{
+ pmic_version_t mc13783_ver;
+ unsigned int mask;
+ unsigned int value;
+ mc13783_ver = pmic_get_version();
+ if (mc13783_ver.revision >= 20) {
+
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+ mask = BITFMASK(BIT_BOOSTEN);
+ CHECK_ERROR(pmic_read_reg(LREG_0, &value, mask));
+ *en_dis = BITFEXT(value, BIT_BOOSTEN);
+ return PMIC_SUCCESS;
+ } else {
+ return PMIC_NOT_SUPPORTED;
+ }
+}
+
+/*!
+ * This function sets boost mode configuration
+ * Only on mc13783 2.0 or higher
+ *
+ * @param abms Define adaptive boost mode selection
+ * @param abr Define adaptive boost reference
+ *
+ * @return This function returns 0 if successful.
+ */
+PMIC_STATUS pmic_bklit_config_boost_mode(unsigned int abms, unsigned int abr)
+{
+ unsigned int conf_boost = 0;
+ unsigned int mask;
+ unsigned int value;
+ pmic_version_t mc13783_ver;
+
+ mc13783_ver = pmic_get_version();
+ if (mc13783_ver.revision >= 20) {
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+
+ if (abms > MAX_BOOST_ABMS) {
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ if (abr > MAX_BOOST_ABR) {
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ conf_boost = abms | (abr << 3);
+
+ value = BITFVAL(BITS_BOOST, conf_boost);
+ mask = BITFMASK(BITS_BOOST);
+ CHECK_ERROR(pmic_write_reg(LREG_0, value, mask));
+
+ return PMIC_SUCCESS;
+ } else {
+ return PMIC_NOT_SUPPORTED;
+ }
+}
+
+/*!
+ * This function gets boost mode configuration
+ * Only on mc13783 2.0 or higher
+ *
+ * @param abms Define adaptive boost mode selection
+ * @param abr Define adaptive boost reference
+ *
+ * @return This function returns 0 if successful.
+ */
+PMIC_STATUS pmic_bklit_gets_boost_mode(unsigned int *abms, unsigned int *abr)
+{
+ unsigned int mask;
+ unsigned int value;
+ pmic_version_t mc13783_ver;
+ mc13783_ver = pmic_get_version();
+ if (mc13783_ver.revision >= 20) {
+ if (suspend_flag == 1) {
+ return -EBUSY;
+ }
+
+ mask = BITFMASK(BITS_BOOST_ABMS);
+ CHECK_ERROR(pmic_read_reg(LREG_0, &value, mask));
+ *abms = BITFEXT(value, BITS_BOOST_ABMS);
+
+ mask = BITFMASK(BITS_BOOST_ABR);
+ CHECK_ERROR(pmic_read_reg(LREG_0, &value, mask));
+ *abr = BITFEXT(value, BITS_BOOST_ABR);
+ return PMIC_SUCCESS;
+ } else {
+ return PMIC_NOT_SUPPORTED;
+ }
+}
+
+/*!
+ * This function implements IOCTL controls on a PMIC Light device.
+ *
+
+ * @param inode pointer on the node
+ * @param file pointer on the file
+ * @param cmd the command
+ * @param arg the parameter
+ * @return This function returns 0 if successful.
+ */
+static int pmic_light_ioctl(struct inode *inode, struct file *file,
+ unsigned int cmd, unsigned long arg)
+{
+ t_bklit_setting_param *bklit_setting = NULL;
+ t_tcled_enable_param *tcled_setting;
+ t_fun_param *fun_param;
+ t_tcled_ind_param *tcled_ind;
+
+ if (_IOC_TYPE(cmd) != 'p')
+ return -ENOTTY;
+
+ bklit_setting = kmalloc(sizeof(t_bklit_setting_param), GFP_KERNEL);
+ tcled_setting = kmalloc(sizeof(t_tcled_enable_param), GFP_KERNEL);
+ fun_param = kmalloc(sizeof(t_fun_param), GFP_KERNEL);
+ tcled_ind = kmalloc(sizeof(t_tcled_ind_param), GFP_KERNEL);
+ switch (cmd) {
+ case PMIC_BKLIT_TCLED_ENABLE:
+ pmic_bklit_tcled_master_enable();
+ break;
+
+ case PMIC_BKLIT_TCLED_DISABLE:
+ pmic_bklit_tcled_master_disable();
+ break;
+
+ case PMIC_BKLIT_ENABLE:
+ pmic_bklit_master_enable();
+ break;
+
+ case PMIC_BKLIT_DISABLE:
+ pmic_bklit_master_disable();
+ break;
+
+ case PMIC_SET_BKLIT:
+ if (bklit_setting == NULL)
+ return -ENOMEM;
+
+ if (copy_from_user(bklit_setting, (t_bklit_setting_param *) arg,
+ sizeof(t_bklit_setting_param))) {
+ kfree(bklit_setting);
+ return -EFAULT;
+ }
+
+ CHECK_ERROR_KFREE(pmic_bklit_set_mode(bklit_setting->channel,
+ bklit_setting->mode),
+ (kfree(bklit_setting)));
+
+ CHECK_ERROR_KFREE(pmic_bklit_set_current(bklit_setting->channel,
+ bklit_setting->
+ current_level),
+ (kfree(bklit_setting)));
+ CHECK_ERROR_KFREE(pmic_bklit_set_dutycycle
+ (bklit_setting->channel,
+ bklit_setting->duty_cycle),
+ (kfree(bklit_setting)));
+ CHECK_ERROR_KFREE(pmic_bklit_set_cycle_time
+ (bklit_setting->cycle_time),
+ (kfree(bklit_setting)));
+ CHECK_ERROR_KFREE(pmic_bklit_set_boost_mode
+ (bklit_setting->en_dis),
+ (kfree(bklit_setting)));
+ CHECK_ERROR_KFREE(pmic_bklit_config_boost_mode
+ (bklit_setting->abms, bklit_setting->abr),
+ (kfree(bklit_setting)));
+ if (bklit_setting->edge_slow != false) {
+ CHECK_ERROR_KFREE(pmic_bklit_enable_edge_slow(),
+ (kfree(bklit_setting)));
+ } else {
+ CHECK_ERROR_KFREE(pmic_bklit_disable_edge_slow(),
+ (kfree(bklit_setting)));
+ }
+
+ kfree(bklit_setting);
+ break;
+
+ case PMIC_GET_BKLIT:
+ if (bklit_setting == NULL)
+ return -ENOMEM;
+
+ if (copy_from_user(bklit_setting, (t_bklit_setting_param *) arg,
+ sizeof(t_bklit_setting_param))) {
+ kfree(bklit_setting);
+ return -EFAULT;
+ }
+
+ CHECK_ERROR_KFREE(pmic_bklit_get_current(bklit_setting->channel,
+ &bklit_setting->
+ current_level),
+ (kfree(bklit_setting)));
+ CHECK_ERROR_KFREE(pmic_bklit_get_cycle_time
+ (&bklit_setting->cycle_time),
+ (kfree(bklit_setting)));
+ CHECK_ERROR_KFREE(pmic_bklit_get_dutycycle
+ (bklit_setting->channel,
+ &bklit_setting->duty_cycle),
+ (kfree(bklit_setting)));
+ bklit_setting->strobe = BACKLIGHT_STROBE_NONE;
+ CHECK_ERROR_KFREE(pmic_bklit_get_mode(bklit_setting->channel,
+ &bklit_setting->mode),
+ (kfree(bklit_setting)));
+ CHECK_ERROR_KFREE(pmic_bklit_get_edge_slow
+ (&bklit_setting->edge_slow),
+ (kfree(bklit_setting)));
+ CHECK_ERROR_KFREE(pmic_bklit_get_boost_mode
+ (&bklit_setting->en_dis),
+ (kfree(bklit_setting)));
+ CHECK_ERROR_KFREE(pmic_bklit_gets_boost_mode
+ (&bklit_setting->abms, &bklit_setting->abr),
+ (kfree(bklit_setting)));
+
+ if (copy_to_user((t_bklit_setting_param *) arg, bklit_setting,
+ sizeof(t_bklit_setting_param))) {
+ kfree(bklit_setting);
+ return -EFAULT;
+ }
+ kfree(bklit_setting);
+ break;
+
+ case PMIC_RAMPUP_BKLIT:
+ CHECK_ERROR(pmic_bklit_rampup((t_bklit_channel) arg));
+ break;
+
+ case PMIC_RAMPDOWN_BKLIT:
+ CHECK_ERROR(pmic_bklit_rampdown((t_bklit_channel) arg));
+ break;
+
+ case PMIC_OFF_RAMPUP_BKLIT:
+ CHECK_ERROR(pmic_bklit_off_rampup((t_bklit_channel) arg));
+ break;
+
+ case PMIC_OFF_RAMPDOWN_BKLIT:
+ CHECK_ERROR(pmic_bklit_off_rampdown((t_bklit_channel) arg));
+ break;
+
+ case PMIC_TCLED_ENABLE:
+ if (tcled_setting == NULL)
+ return -ENOMEM;
+
+ if (copy_from_user(tcled_setting, (t_tcled_enable_param *) arg,
+ sizeof(t_tcled_enable_param))) {
+ kfree(tcled_setting);
+ return -EFAULT;
+ }
+ CHECK_ERROR_KFREE(pmic_tcled_enable(tcled_setting->mode,
+ tcled_setting->bank),
+ (kfree(bklit_setting)));
+ break;
+
+ case PMIC_TCLED_DISABLE:
+ CHECK_ERROR(pmic_tcled_disable((t_funlight_bank) arg));
+ break;
+
+ case PMIC_TCLED_PATTERN:
+ if (fun_param == NULL)
+ return -ENOMEM;
+
+ if (copy_from_user(fun_param,
+ (t_fun_param *) arg, sizeof(t_fun_param))) {
+ kfree(fun_param);
+ return -EFAULT;
+ }
+
+ switch (fun_param->pattern) {
+ case BLENDED_RAMPS_SLOW:
+ CHECK_ERROR_KFREE(pmic_tcled_fun_blendedramps
+ (fun_param->bank, TC_SLOW),
+ (kfree(fun_param)));
+ break;
+
+ case BLENDED_RAMPS_FAST:
+ CHECK_ERROR_KFREE(pmic_tcled_fun_blendedramps
+ (fun_param->bank, TC_FAST),
+ (kfree(fun_param)));
+ break;
+
+ case SAW_RAMPS_SLOW:
+ CHECK_ERROR_KFREE(pmic_tcled_fun_sawramps
+ (fun_param->bank, TC_SLOW),
+ (kfree(fun_param)));
+ break;
+
+ case SAW_RAMPS_FAST:
+ CHECK_ERROR_KFREE(pmic_tcled_fun_sawramps
+ (fun_param->bank, TC_FAST),
+ (kfree(fun_param)));
+ break;
+
+ case BLENDED_BOWTIE_SLOW:
+ CHECK_ERROR_KFREE(pmic_tcled_fun_blendedbowtie
+ (fun_param->bank, TC_SLOW),
+ (kfree(fun_param)));
+ break;
+
+ case BLENDED_BOWTIE_FAST:
+ CHECK_ERROR_KFREE(pmic_tcled_fun_blendedbowtie
+ (fun_param->bank, TC_FAST),
+ (kfree(fun_param)));
+ break;
+
+ case STROBE_SLOW:
+ CHECK_ERROR_KFREE(pmic_tcled_fun_strobe
+ (fun_param->bank, fun_param->channel,
+ TC_STROBE_SLOW), (kfree(fun_param)));
+ break;
+
+ case STROBE_FAST:
+ CHECK_ERROR_KFREE(pmic_tcled_fun_strobe
+ (fun_param->bank,
+ fun_param->channel, TC_STROBE_SLOW),
+ (kfree(fun_param)));
+ break;
+
+ case CHASING_LIGHT_RGB_SLOW:
+ CHECK_ERROR_KFREE(pmic_tcled_fun_chasinglightspattern
+ (fun_param->bank, PMIC_RGB, TC_SLOW),
+ (kfree(fun_param)));
+ break;
+
+ case CHASING_LIGHT_RGB_FAST:
+ CHECK_ERROR_KFREE(pmic_tcled_fun_chasinglightspattern
+ (fun_param->bank, PMIC_RGB, TC_FAST),
+ (kfree(fun_param)));
+ break;
+
+ case CHASING_LIGHT_BGR_SLOW:
+ CHECK_ERROR_KFREE(pmic_tcled_fun_chasinglightspattern
+ (fun_param->bank, BGR, TC_SLOW),
+ (kfree(fun_param)));
+ break;
+
+ case CHASING_LIGHT_BGR_FAST:
+ CHECK_ERROR_KFREE(pmic_tcled_fun_chasinglightspattern
+ (fun_param->bank, BGR, TC_FAST),
+ (kfree(fun_param)));
+ break;
+ }
+
+ kfree(fun_param);
+ break;
+
+ case PMIC_SET_TCLED:
+ if (tcled_ind == NULL)
+ return -ENOMEM;
+
+ if (copy_from_user(tcled_ind, (t_tcled_ind_param *) arg,
+ sizeof(t_tcled_ind_param))) {
+ kfree(tcled_ind);
+ return -EFAULT;
+ }
+ CHECK_ERROR_KFREE(pmic_tcled_ind_set_current(tcled_ind->channel,
+ tcled_ind->level,
+ tcled_ind->bank),
+ (kfree(tcled_ind)));
+ CHECK_ERROR_KFREE(pmic_tcled_ind_set_blink_pattern
+ (tcled_ind->channel, tcled_ind->pattern,
+ tcled_ind->skip, tcled_ind->bank),
+ (kfree(tcled_ind)));
+ CHECK_ERROR_KFREE(pmic_tcled_fun_rampup
+ (tcled_ind->bank, tcled_ind->channel,
+ tcled_ind->rampup), (kfree(tcled_ind)));
+ CHECK_ERROR_KFREE(pmic_tcled_fun_rampdown
+ (tcled_ind->bank, tcled_ind->channel,
+ tcled_ind->rampdown), (kfree(tcled_ind)));
+ if (tcled_ind->half_current) {
+ CHECK_ERROR_KFREE(pmic_tcled_enable_half_current(),
+ (kfree(tcled_ind)));
+ } else {
+ CHECK_ERROR_KFREE(pmic_tcled_disable_half_current(),
+ (kfree(tcled_ind)));
+ }
+
+ kfree(tcled_ind);
+ break;
+
+ case PMIC_GET_TCLED:
+ if (tcled_ind == NULL)
+ return -ENOMEM;
+
+ if (copy_from_user(tcled_ind, (t_tcled_ind_param *) arg,
+ sizeof(t_tcled_ind_param))) {
+ kfree(tcled_ind);
+ return -EFAULT;
+ }
+ CHECK_ERROR_KFREE(pmic_tcled_ind_get_current(tcled_ind->channel,
+ &tcled_ind->level,
+ tcled_ind->bank),
+ (kfree(tcled_ind)));
+ CHECK_ERROR_KFREE(pmic_tcled_ind_get_blink_pattern
+ (tcled_ind->channel, &tcled_ind->pattern,
+ &tcled_ind->skip, tcled_ind->bank),
+ (kfree(tcled_ind)));
+ CHECK_ERROR_KFREE(pmic_tcled_get_fun_rampup
+ (tcled_ind->bank, tcled_ind->channel,
+ &tcled_ind->rampup), (kfree(tcled_ind)));
+ CHECK_ERROR_KFREE(pmic_tcled_get_fun_rampdown
+ (tcled_ind->bank, tcled_ind->channel,
+ &tcled_ind->rampdown), (kfree(tcled_ind)));
+ if (copy_to_user
+ ((t_tcled_ind_param *) arg, tcled_ind,
+ sizeof(t_tcled_ind_param))) {
+ return -EFAULT;
+ }
+ kfree(tcled_ind);
+
+ break;
+
+ default:
+ return -EINVAL;
+ }
+ return 0;
+}
+
+/*!
+ * This function initialize Light registers of mc13783 with 0.
+ *
+ * @return This function returns 0 if successful.
+ */
+int pmic_light_init_reg(void)
+{
+ CHECK_ERROR(pmic_write_reg(LREG_0, 0, PMIC_ALL_BITS));
+ CHECK_ERROR(pmic_write_reg(LREG_1, 0, PMIC_ALL_BITS));
+ CHECK_ERROR(pmic_write_reg(LREG_2, 0, PMIC_ALL_BITS));
+ CHECK_ERROR(pmic_write_reg(LREG_3, 0, PMIC_ALL_BITS));
+ CHECK_ERROR(pmic_write_reg(LREG_4, 0, PMIC_ALL_BITS));
+ CHECK_ERROR(pmic_write_reg(LREG_5, 0, PMIC_ALL_BITS));
+ return 0;
+}
+
+/*!
+ * This function implements the open method on a mc13783 light device.
+ *
+ * @param inode pointer on the node
+ * @param file pointer on the file
+ * @return This function returns 0.
+ */
+static int pmic_light_open(struct inode *inode, struct file *file)
+{
+ while (suspend_flag == 1) {
+ swait++;
+ /* Block if the device is suspended */
+ if (wait_event_interruptible(suspendq, (suspend_flag == 0))) {
+ return -ERESTARTSYS;
+ }
+ }
+ return 0;
+}
+
+/*!
+ * This function implements the release method on a mc13783 light device.
+ *
+ * @param inode pointer on the node
+ * @param file pointer on the file
+ * @return This function returns 0.
+ */
+static int pmic_light_release(struct inode *inode, struct file *file)
+{
+ while (suspend_flag == 1) {
+ swait++;
+ /* Block if the device is suspended */
+ if (wait_event_interruptible(suspendq, (suspend_flag == 0))) {
+ return -ERESTARTSYS;
+ }
+ }
+ return 0;
+}
+
+static struct file_operations pmic_light_fops = {
+ .owner = THIS_MODULE,
+ .ioctl = pmic_light_ioctl,
+ .open = pmic_light_open,
+ .release = pmic_light_release,
+};
+
+static int pmic_light_remove(struct platform_device *pdev)
+{
+ device_destroy(pmic_light_class, MKDEV(pmic_light_major, 0));
+ class_destroy(pmic_light_class);
+ unregister_chrdev(pmic_light_major, "pmic_light");
+ return 0;
+}
+
+static int pmic_light_probe(struct platform_device *pdev)
+{
+ int ret = 0;
+ struct device *temp_class;
+
+ while (suspend_flag == 1) {
+ swait++;
+ /* Block if the device is suspended */
+ if (wait_event_interruptible(suspendq, (suspend_flag == 0))) {
+ return -ERESTARTSYS;
+ }
+ }
+ pmic_light_major = register_chrdev(0, "pmic_light", &pmic_light_fops);
+
+ if (pmic_light_major < 0) {
+ printk(KERN_ERR "Unable to get a major for pmic_light\n");
+ return pmic_light_major;
+ }
+ init_waitqueue_head(&suspendq);
+
+ pmic_light_class = class_create(THIS_MODULE, "pmic_light");
+ if (IS_ERR(pmic_light_class)) {
+ printk(KERN_ERR "Error creating pmic_light class.\n");
+ ret = PTR_ERR(pmic_light_class);
+ goto err_out1;
+ }
+
+ temp_class = device_create(pmic_light_class, NULL,
+ MKDEV(pmic_light_major, 0), NULL,
+ "pmic_light");
+ if (IS_ERR(temp_class)) {
+ printk(KERN_ERR "Error creating pmic_light class device.\n");
+ ret = PTR_ERR(temp_class);
+ goto err_out2;
+ }
+
+ ret = pmic_light_init_reg();
+ if (ret != PMIC_SUCCESS) {
+ goto err_out3;
+ }
+
+ printk(KERN_INFO "PMIC Light successfully loaded\n");
+ return ret;
+
+ err_out3:
+ device_destroy(pmic_light_class, MKDEV(pmic_light_major, 0));
+ err_out2:
+ class_destroy(pmic_light_class);
+ err_out1:
+ unregister_chrdev(pmic_light_major, "pmic_light");
+ return ret;
+}
+
+static struct platform_driver pmic_light_driver_ldm = {
+ .driver = {
+ .name = "pmic_light",
+ },
+ .suspend = pmic_light_suspend,
+ .resume = pmic_light_resume,
+ .probe = pmic_light_probe,
+ .remove = pmic_light_remove,
+};
+
+/*
+ * Initialization and Exit
+ */
+
+static int __init pmic_light_init(void)
+{
+ pr_debug("PMIC Light driver loading...\n");
+ return platform_driver_register(&pmic_light_driver_ldm);
+}
+static void __exit pmic_light_exit(void)
+{
+ platform_driver_unregister(&pmic_light_driver_ldm);
+ pr_debug("PMIC Light driver successfully unloaded\n");
+}
+
+/*
+ * Module entry points
+ */
+
+subsys_initcall(pmic_light_init);
+module_exit(pmic_light_exit);
+
+MODULE_DESCRIPTION("PMIC_LIGHT");
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_LICENSE("GPL");
diff --git a/drivers/mxc/pmic/mc13783/pmic_light_defs.h b/drivers/mxc/pmic/mc13783/pmic_light_defs.h
new file mode 100644
index 000000000000..34602015a34d
--- /dev/null
+++ b/drivers/mxc/pmic/mc13783/pmic_light_defs.h
@@ -0,0 +1,144 @@
+/*
+ * Copyright 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file mc13783/pmic_light_defs.h
+ * @brief This is the internal header PMIC(mc13783) Light and Backlight driver.
+ *
+ * @ingroup PMIC_LIGHT
+ */
+
+#ifndef __MC13783_LIGHT_DEFS_H__
+#define __MC13783_LIGHT_DEFS_H__
+
+#define LREG_0 REG_LED_CONTROL_0
+#define LREG_1 REG_LED_CONTROL_1
+#define LREG_2 REG_LED_CONTROL_2
+#define LREG_3 REG_LED_CONTROL_3
+#define LREG_4 REG_LED_CONTROL_4
+#define LREG_5 REG_LED_CONTROL_5
+
+/* REG_LED_CONTROL_0 */
+
+#define BIT_LEDEN_LSH 0
+#define BIT_LEDEN_WID 1
+#define MASK_TRIODE_MAIN_BL 0x080
+#define INDEX_AUXILIARY 1
+#define INDEX_KEYPAD 2
+#define BITS_FUN_LIGHT_LSH 17
+#define BITS_FUN_LIGHT_WID 4
+#define MASK_FUN_LIGHT 0x1E0000
+#define MASK_BK1_FL 0x200000
+#define ENABLE_BK1_FL 0x200000
+#define MASK_BK2_FL 0x400000
+#define ENABLE_BK2_FL 0x400000
+#define MASK_BK3_FL 0x800000
+#define ENABLE_BK3_FL 0x800000
+#define BIT_UP_MAIN_BL_LSH 1
+#define BIT_UP_MAIN_BL_WID 1
+#define BIT_UP_AUX_BL_LSH 2
+#define BIT_UP_AUX_BL_WID 1
+#define BIT_UP_KEY_BL_LSH 3
+#define BIT_UP_KEY_BL_WID 1
+#define BIT_DOWN_MAIN_BL_LSH 4
+#define BIT_DOWN_MAIN_BL_WID 1
+#define BIT_DOWN_AUX_BL_LSH 5
+#define BIT_DOWN_AUX_BL_WID 1
+#define BIT_DOWN_KEY_BL_LSH 6
+#define BIT_DOWN_KEY_BL_WID 1
+#define BIT_TRIODE_MAIN_BL_LSH 7
+#define BIT_TRIODE_MAIN_BL_WID 1
+#define BIT_TRIODE_AUX_BL_LSH 8
+#define BIT_TRIODE_AUX_BL_WID 1
+#define BIT_TRIODE_KEY_BL_LSH 9
+#define BIT_TRIODE_KEY_BL_WID 1
+
+#define BIT_BOOSTEN_LSH 10
+#define BIT_BOOSTEN_WID 1
+#define BITS_BOOST_LSH 11
+#define BITS_BOOST_WID 5
+#define BITS_BOOST_ABMS_LSH 11
+#define BITS_BOOST_ABMS_WID 3
+#define BITS_BOOST_ABR_LSH 14
+#define BITS_BOOST_ABR_WID 2
+
+#define MAX_BOOST_ABMS 7
+#define MAX_BOOST_ABR 3
+
+/* REG_LED_CONTROL_1 */
+
+#define BIT_SLEWLIMTC_LSH 23
+#define BIT_SLEWLIMTC_WID 1
+#define BIT_TC1HALF_LSH 18
+#define BIT_TC1HALF_WID 1
+#define LEDR1RAMPUP 0x000001
+#define LEDR2RAMPUP 0x000040
+#define LEDR3RAMPUP 0x001000
+#define LEDR1RAMPDOWN 0x000008
+#define LEDR2RAMPDOWN 0x000200
+#define LEDR3RAMPDOWN 0x008000
+
+/* REG_LED_CONTROL_2 */
+
+#define BIT_SLEWLIMBL_LSH 23
+#define BIT_SLEWLIMBL_WID 1
+#define BIT_DUTY_CYCLE 9
+#define MASK_DUTY_CYCLE 0x001E00
+#define INDEX_AUX 4
+#define INDEX_KYD 8
+#define BIT_CL_MAIN_LSH 0
+#define BIT_CL_MAIN_WID 3
+#define BIT_CL_AUX_LSH 3
+#define BIT_CL_AUX_WID 3
+#define BIT_CL_KEY_LSH 6
+#define BIT_CL_KEY_WID 3
+
+/* REG_LED_CONTROL_3 4 5 */
+#define BITS_CL_RED_LSH 0
+#define BITS_CL_RED_WID 2
+#define BITS_CL_GREEN_LSH 2
+#define BITS_CL_GREEN_WID 2
+#define BITS_CL_BLUE_LSH 4
+#define BITS_CL_BLUE_WID 2
+#define BITS_DC_RED_LSH 6
+#define BITS_DC_RED_WID 5
+#define BITS_DC_GREEN_LSH 11
+#define BITS_DC_GREEN_WID 5
+#define BITS_DC_BLUE_LSH 16
+#define BITS_DC_BLUE_WID 5
+#define BIT_PERIOD_LSH 21
+#define BIT_PERIOD_WID 2
+
+#define DUTY_CYCLE_MAX 31
+
+/* Fun light pattern */
+#define BLENDED_RAMPS_SLOW 0
+#define BLENDED_RAMPS_FAST 1
+#define SAW_RAMPS_SLOW 2
+#define SAW_RAMPS_FAST 3
+#define BLENDED_INVERSE_RAMPS_SLOW 4
+#define BLENDED_INVERSE_RAMPS_FAST 5
+#define CHASING_LIGHTS_RGB_SLOW 6
+#define CHASING_LIGHTS_RGB_FAST 7
+#define CHASING_LIGHTS_BGR_SLOW 8
+#define CHASING_LIGHTS_BGR_FAST 9
+#define FUN_LIGHTS_OFF 15
+
+/*!
+ * This function initialize Light registers of mc13783 with 0.
+ *
+ * @return This function returns 0 if successful.
+ */
+int pmic_light_init_reg(void);
+
+#endif /* __MC13783_LIGHT_DEFS_H__ */
diff --git a/drivers/mxc/pmic/mc13783/pmic_power.c b/drivers/mxc/pmic/mc13783/pmic_power.c
new file mode 100644
index 000000000000..c67fe773703d
--- /dev/null
+++ b/drivers/mxc/pmic/mc13783/pmic_power.c
@@ -0,0 +1,3146 @@
+/*
+ * Copyright 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file mc13783/pmic_power.c
+ * @brief This is the main file of PMIC(mc13783) Power driver.
+ *
+ * @ingroup PMIC_POWER
+ */
+
+/*
+ * Includes
+ */
+
+#include <linux/platform_device.h>
+#include <linux/ioctl.h>
+#include <linux/pmic_status.h>
+#include <linux/irq.h>
+#include <linux/interrupt.h>
+#include <linux/kernel.h>
+#include <mach/pmic_power.h>
+
+#include "pmic_power_defs.h"
+
+#ifdef CONFIG_MXC_HWEVENT
+#include <mach/hw_events.h>
+#endif
+
+#include <asm/mach-types.h>
+
+#define MC13783_REGCTRL_GPOx_MASK 0x18000
+
+static bool VBKUP1_EN;
+static bool VBKUP2_EN;
+
+/*
+ * Power Pmic API
+ */
+
+/* EXPORTED FUNCTIONS */
+EXPORT_SYMBOL(pmic_power_off);
+EXPORT_SYMBOL(pmic_power_set_pc_config);
+EXPORT_SYMBOL(pmic_power_get_pc_config);
+EXPORT_SYMBOL(pmic_power_regulator_on);
+EXPORT_SYMBOL(pmic_power_regulator_off);
+EXPORT_SYMBOL(pmic_power_regulator_set_voltage);
+EXPORT_SYMBOL(pmic_power_regulator_get_voltage);
+EXPORT_SYMBOL(pmic_power_regulator_set_config);
+EXPORT_SYMBOL(pmic_power_regulator_get_config);
+EXPORT_SYMBOL(pmic_power_vbkup2_auto_en);
+EXPORT_SYMBOL(pmic_power_get_vbkup2_auto_state);
+EXPORT_SYMBOL(pmic_power_bat_det_en);
+EXPORT_SYMBOL(pmic_power_get_bat_det_state);
+EXPORT_SYMBOL(pmic_power_vib_pin_en);
+EXPORT_SYMBOL(pmic_power_gets_vib_pin_state);
+EXPORT_SYMBOL(pmic_power_get_power_mode_sense);
+EXPORT_SYMBOL(pmic_power_set_regen_assig);
+EXPORT_SYMBOL(pmic_power_get_regen_assig);
+EXPORT_SYMBOL(pmic_power_set_regen_inv);
+EXPORT_SYMBOL(pmic_power_get_regen_inv);
+EXPORT_SYMBOL(pmic_power_esim_v_en);
+EXPORT_SYMBOL(pmic_power_gets_esim_v_state);
+EXPORT_SYMBOL(pmic_power_set_auto_reset_en);
+EXPORT_SYMBOL(pmic_power_get_auto_reset_en);
+EXPORT_SYMBOL(pmic_power_set_conf_button);
+EXPORT_SYMBOL(pmic_power_get_conf_button);
+EXPORT_SYMBOL(pmic_power_event_sub);
+EXPORT_SYMBOL(pmic_power_event_unsub);
+
+/*!
+ * This function is called to put the power in a low power state.
+ * Switching off the platform cannot be decided by
+ * the power module. It has to be handled by the
+ * client application.
+ *
+ * @param pdev the device structure used to give information on which power
+ * device (0 through 3 channels) to suspend
+ * @param state the power state the device is entering
+ *
+ * @return The function always returns 0.
+ */
+static int pmic_power_suspend(struct platform_device *pdev, pm_message_t state)
+{
+ return 0;
+};
+
+/*!
+ * This function is called to resume the power from a low power state.
+ *
+ * @param pdev the device structure used to give information on which power
+ * device (0 through 3 channels) to suspend
+ *
+ * @return The function always returns 0.
+ */
+static int pmic_power_resume(struct platform_device *pdev)
+{
+ return 0;
+};
+
+/*!
+ * This function sets user power off in power control register and thus powers
+ * off the phone.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+void pmic_power_off(void)
+{
+ unsigned int mask, value;
+
+ mask = BITFMASK(MC13783_PWRCTRL_USER_OFF_SPI);
+ value = BITFVAL(MC13783_PWRCTRL_USER_OFF_SPI,
+ MC13783_PWRCTRL_USER_OFF_SPI_ENABLE);
+
+ pmic_write_reg(REG_POWER_CONTROL_0, value, mask);
+}
+
+/*!
+ * This function sets the power control configuration.
+ *
+ * @param pc_config power control configuration.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_power_set_pc_config(t_pc_config *pc_config)
+{
+ unsigned int pwrctrl_val_reg0 = 0;
+ unsigned int pwrctrl_val_reg1 = 0;
+ unsigned int pwrctrl_mask_reg0 = 0;
+ unsigned int pwrctrl_mask_reg1 = 0;
+
+ if (pc_config == NULL) {
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ if (pc_config->pc_enable != false) {
+ pwrctrl_val_reg0 |= BITFVAL(MC13783_PWRCTRL_PCEN,
+ MC13783_PWRCTRL_PCEN_ENABLE);
+ pwrctrl_val_reg1 |= BITFVAL(MC13783_PWRCTRL_PCT,
+ pc_config->pc_timer);
+ } else {
+ pwrctrl_val_reg0 |= BITFVAL(MC13783_PWRCTRL_PCEN,
+ MC13783_PWRCTRL_PCEN_DISABLE);
+ }
+ pwrctrl_mask_reg0 |= BITFMASK(MC13783_PWRCTRL_PCEN);
+ pwrctrl_mask_reg1 |= BITFMASK(MC13783_PWRCTRL_PCT);
+
+ if (pc_config->pc_count_enable != false) {
+
+ pwrctrl_val_reg0 |= BITFVAL(MC13783_PWRCTRL_PC_COUNT_EN,
+ MC13783_PWRCTRL_PC_COUNT_EN_ENABLE);
+ pwrctrl_val_reg1 |= BITFVAL(MC13783_PWRCTRL_PC_COUNT,
+ pc_config->pc_count);
+ pwrctrl_val_reg1 |= BITFVAL(MC13783_PWRCTRL_PC_MAX_CNT,
+ pc_config->pc_max_count);
+ } else {
+ pwrctrl_val_reg0 |= BITFVAL(MC13783_PWRCTRL_PC_COUNT_EN,
+ MC13783_PWRCTRL_PC_COUNT_EN_DISABLE);
+ }
+ pwrctrl_mask_reg0 |= BITFMASK(MC13783_PWRCTRL_PC_COUNT_EN);
+ pwrctrl_mask_reg1 |= BITFMASK(MC13783_PWRCTRL_PC_MAX_CNT) |
+ BITFMASK(MC13783_PWRCTRL_PC_COUNT);
+
+ if (pc_config->warm_enable != false) {
+ pwrctrl_val_reg0 |= BITFVAL(MC13783_PWRCTRL_WARM_EN,
+ MC13783_PWRCTRL_WARM_EN_ENABLE);
+ } else {
+ pwrctrl_val_reg0 |= BITFVAL(MC13783_PWRCTRL_WARM_EN,
+ MC13783_PWRCTRL_WARM_EN_DISABLE);
+ }
+ pwrctrl_mask_reg0 |= BITFMASK(MC13783_PWRCTRL_WARM_EN);
+
+ if (pc_config->user_off_pc != false) {
+ pwrctrl_val_reg0 |= BITFVAL(MC13783_PWRCTRL_USER_OFF_PC,
+ MC13783_PWRCTRL_USER_OFF_PC_ENABLE);
+ } else {
+ pwrctrl_val_reg0 |= BITFVAL(MC13783_PWRCTRL_WARM_EN,
+ MC13783_PWRCTRL_USER_OFF_PC_DISABLE);
+ }
+ pwrctrl_mask_reg0 |= BITFMASK(MC13783_PWRCTRL_USER_OFF_PC);
+
+ if (pc_config->clk_32k_user_off != false) {
+ pwrctrl_val_reg0 |= BITFVAL(MC13783_PWRCTRL_32OUT_USER_OFF,
+ MC13783_PWRCTRL_32OUT_USER_OFF_ENABLE);
+ } else {
+ pwrctrl_val_reg0 |= BITFVAL(MC13783_PWRCTRL_32OUT_USER_OFF,
+ MC13783_PWRCTRL_32OUT_USER_OFF_DISABLE);
+ }
+ pwrctrl_mask_reg0 |= BITFMASK(MC13783_PWRCTRL_32OUT_USER_OFF);
+
+ if (pc_config->clk_32k_enable != false) {
+ pwrctrl_val_reg0 |= BITFVAL(MC13783_PWRCTRL_32OUT_EN,
+ MC13783_PWRCTRL_32OUT_EN_ENABLE);
+ } else {
+ pwrctrl_val_reg0 |= BITFVAL(MC13783_PWRCTRL_32OUT_EN,
+ MC13783_PWRCTRL_32OUT_EN_DISABLE);
+ }
+ pwrctrl_mask_reg0 |= BITFMASK(MC13783_PWRCTRL_32OUT_EN);
+
+ if (pc_config->en_vbkup1 != false) {
+ pwrctrl_val_reg0 |= BITFVAL(MC13783_PWRCTRL_VBKUP1_EN,
+ MC13783_PWRCTRL_VBKUP_ENABLE);
+ VBKUP1_EN = true;
+ } else {
+ pwrctrl_val_reg0 |= BITFVAL(MC13783_PWRCTRL_VBKUP1_EN,
+ MC13783_PWRCTRL_VBKUP_DISABLE);
+ VBKUP1_EN = false;
+ }
+ pwrctrl_mask_reg0 |= BITFMASK(MC13783_PWRCTRL_VBKUP1_EN);
+
+ if (pc_config->en_vbkup2 != false) {
+ pwrctrl_val_reg0 |= BITFVAL(MC13783_PWRCTRL_VBKUP2_EN,
+ MC13783_PWRCTRL_VBKUP_ENABLE);
+ VBKUP2_EN = true;
+ } else {
+ pwrctrl_val_reg0 |= BITFVAL(MC13783_PWRCTRL_VBKUP2_EN,
+ MC13783_PWRCTRL_VBKUP_DISABLE);
+ VBKUP2_EN = false;
+ }
+ pwrctrl_mask_reg0 |= BITFMASK(MC13783_PWRCTRL_VBKUP2_EN);
+
+ if (pc_config->auto_en_vbkup1 != false) {
+ pwrctrl_val_reg0 |= BITFVAL(MC13783_PWRCTRL_VBKUP1_AUTO_EN,
+ MC13783_PWRCTRL_VBKUP_ENABLE);
+ } else {
+ pwrctrl_val_reg0 |= BITFVAL(MC13783_PWRCTRL_VBKUP1_AUTO_EN,
+ MC13783_PWRCTRL_VBKUP_DISABLE);
+ }
+ pwrctrl_mask_reg0 |= BITFMASK(MC13783_PWRCTRL_VBKUP1_AUTO_EN);
+
+ if (pc_config->auto_en_vbkup2 != false) {
+ pwrctrl_val_reg0 |= BITFVAL(MC13783_PWRCTRL_VBKUP2_AUTO_EN,
+ MC13783_PWRCTRL_VBKUP_ENABLE);
+ } else {
+ pwrctrl_val_reg0 |= BITFVAL(MC13783_PWRCTRL_VBKUP2_AUTO_EN,
+ MC13783_PWRCTRL_VBKUP_DISABLE);
+ }
+ pwrctrl_mask_reg0 |= BITFMASK(MC13783_PWRCTRL_VBKUP2_AUTO_EN);
+
+ if (VBKUP1_EN != false) {
+ if (pc_config->vhold_voltage > 3
+ || pc_config->vhold_voltage < 0) {
+ return PMIC_PARAMETER_ERROR;
+ } else {
+
+ pwrctrl_val_reg0 |= BITFVAL(MC13783_PWRCTRL_VBKUP1,
+ pc_config->vhold_voltage);
+ }
+ }
+ if (VBKUP2_EN != false) {
+ if (pc_config->vhold_voltage > 3
+ || pc_config->vhold_voltage < 0) {
+ return PMIC_PARAMETER_ERROR;
+ } else {
+ pwrctrl_val_reg0 |= BITFVAL(MC13783_PWRCTRL_VBKUP2,
+ pc_config->vhold_voltage2);
+ }
+ }
+ pwrctrl_mask_reg0 |= BITFMASK(MC13783_PWRCTRL_VBKUP1) |
+ BITFMASK(MC13783_PWRCTRL_VBKUP2);
+
+ if (pc_config->mem_allon != false) {
+ pwrctrl_val_reg1 |= BITFVAL(MC13783_PWRCTRL_MEM_ALLON,
+ MC13783_PWRCTRL_MEM_ALLON_ENABLE);
+ pwrctrl_val_reg1 |= BITFVAL(MC13783_PWRCTRL_MEM_TMR,
+ pc_config->mem_timer);
+ } else {
+ pwrctrl_val_reg1 |= BITFVAL(MC13783_PWRCTRL_MEM_ALLON,
+ MC13783_PWRCTRL_MEM_ALLON_DISABLE);
+ }
+ pwrctrl_mask_reg1 |= BITFMASK(MC13783_PWRCTRL_MEM_ALLON) |
+ BITFMASK(MC13783_PWRCTRL_MEM_TMR);
+
+ CHECK_ERROR(pmic_write_reg(REG_POWER_CONTROL_0,
+ pwrctrl_val_reg0, pwrctrl_mask_reg0));
+ CHECK_ERROR(pmic_write_reg(REG_POWER_CONTROL_1,
+ pwrctrl_val_reg1, pwrctrl_mask_reg1));
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function retrives the power control configuration.
+ *
+ * @param pc_config pointer to power control configuration.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_power_get_pc_config(t_pc_config *pc_config)
+{
+ unsigned int pwrctrl_val_reg0 = 0;
+ unsigned int pwrctrl_val_reg1 = 0;
+
+ if (pc_config == NULL) {
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ CHECK_ERROR(pmic_read_reg(REG_POWER_CONTROL_0,
+ &pwrctrl_val_reg0, PMIC_ALL_BITS));
+ CHECK_ERROR(pmic_read_reg(REG_POWER_CONTROL_1,
+ &pwrctrl_val_reg1, PMIC_ALL_BITS));
+
+ if (BITFEXT(pwrctrl_val_reg0, MC13783_PWRCTRL_PCEN)
+ == MC13783_PWRCTRL_PCEN_ENABLE) {
+ pc_config->pc_enable = true;
+ pc_config->pc_timer = BITFEXT(pwrctrl_val_reg1,
+ MC13783_PWRCTRL_PCT);
+
+ } else {
+ pc_config->pc_enable = false;
+ pc_config->pc_timer = 0;
+ }
+
+ if (BITFEXT(pwrctrl_val_reg0, MC13783_PWRCTRL_PC_COUNT_EN)
+ == MC13783_PWRCTRL_PCEN_ENABLE) {
+ pc_config->pc_count_enable = true;
+ pc_config->pc_count = BITFEXT(pwrctrl_val_reg1,
+ MC13783_PWRCTRL_PC_COUNT);
+ pc_config->pc_max_count = BITFEXT(pwrctrl_val_reg1,
+ MC13783_PWRCTRL_PC_MAX_CNT);
+ } else {
+ pc_config->pc_count_enable = false;
+ pc_config->pc_count = 0;
+ pc_config->pc_max_count = 0;
+ }
+
+ if (BITFEXT(pwrctrl_val_reg0, MC13783_PWRCTRL_WARM_EN)
+ == MC13783_PWRCTRL_WARM_EN_ENABLE) {
+ pc_config->warm_enable = true;
+ } else {
+ pc_config->warm_enable = false;
+ }
+
+ if (BITFEXT(pwrctrl_val_reg0, MC13783_PWRCTRL_USER_OFF_PC)
+ == MC13783_PWRCTRL_USER_OFF_PC_ENABLE) {
+ pc_config->user_off_pc = true;
+ } else {
+ pc_config->user_off_pc = false;
+ }
+
+ if (BITFEXT(pwrctrl_val_reg0, MC13783_PWRCTRL_32OUT_USER_OFF)
+ == MC13783_PWRCTRL_32OUT_USER_OFF_ENABLE) {
+ pc_config->clk_32k_user_off = true;
+ } else {
+ pc_config->clk_32k_user_off = false;
+ }
+
+ if (BITFEXT(pwrctrl_val_reg0, MC13783_PWRCTRL_32OUT_EN)
+ == MC13783_PWRCTRL_32OUT_EN_ENABLE) {
+ pc_config->clk_32k_enable = true;
+ } else {
+ pc_config->clk_32k_enable = false;
+ }
+
+ if (BITFEXT(pwrctrl_val_reg0, MC13783_PWRCTRL_VBKUP1_AUTO_EN)
+ == MC13783_PWRCTRL_VBKUP_ENABLE) {
+ pc_config->auto_en_vbkup1 = true;
+ } else {
+ pc_config->auto_en_vbkup1 = false;
+ }
+
+ if (BITFEXT(pwrctrl_val_reg0, MC13783_PWRCTRL_VBKUP2_AUTO_EN)
+ == MC13783_PWRCTRL_VBKUP_ENABLE) {
+ pc_config->auto_en_vbkup2 = true;
+ } else {
+ pc_config->auto_en_vbkup2 = false;
+ }
+
+ if (BITFEXT(pwrctrl_val_reg0, MC13783_PWRCTRL_VBKUP1_EN)
+ == MC13783_PWRCTRL_VBKUP_ENABLE) {
+ pc_config->en_vbkup1 = true;
+ pc_config->vhold_voltage = BITFEXT(pwrctrl_val_reg0,
+ MC13783_PWRCTRL_VBKUP1);
+ } else {
+ pc_config->en_vbkup1 = false;
+ pc_config->vhold_voltage = 0;
+ }
+
+ if (BITFEXT(pwrctrl_val_reg0, MC13783_PWRCTRL_VBKUP2_EN)
+ == MC13783_PWRCTRL_VBKUP_ENABLE) {
+ pc_config->en_vbkup2 = true;
+ pc_config->vhold_voltage2 = BITFEXT(pwrctrl_val_reg0,
+ MC13783_PWRCTRL_VBKUP2);
+ } else {
+ pc_config->en_vbkup2 = false;
+ pc_config->vhold_voltage2 = 0;
+ }
+
+ if (BITFEXT(pwrctrl_val_reg1, MC13783_PWRCTRL_MEM_ALLON) ==
+ MC13783_PWRCTRL_MEM_ALLON_ENABLE) {
+ pc_config->mem_allon = true;
+ pc_config->mem_timer = BITFEXT(pwrctrl_val_reg1,
+ MC13783_PWRCTRL_MEM_TMR);
+ } else {
+ pc_config->mem_allon = false;
+ pc_config->mem_timer = 0;
+ }
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function turns on a regulator.
+ *
+ * @param regulator The regulator to be truned on.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_power_regulator_on(t_pmic_regulator regulator)
+{
+ unsigned int reg_val = 0, reg_mask = 0;
+ unsigned int reg;
+
+ switch (regulator) {
+ case SW_PLL:
+ reg_val = BITFVAL(MC13783_SWCTRL_PLL_EN,
+ MC13783_SWCTRL_PLL_EN_ENABLE);
+ reg_mask = BITFMASK(MC13783_SWCTRL_PLL_EN);
+ reg = REG_SWITCHERS_4;
+ break;
+ case SW_SW3:
+ reg_val = BITFVAL(MC13783_SWCTRL_SW3_EN,
+ MC13783_SWCTRL_SW3_EN_ENABLE);
+ reg_mask = BITFMASK(MC13783_SWCTRL_SW3_EN);
+ reg = REG_SWITCHERS_5;
+ break;
+ case REGU_VAUDIO:
+ reg_val = BITFVAL(MC13783_REGCTRL_VAUDIO_EN,
+ MC13783_REGCTRL_VAUDIO_EN_ENABLE);
+ reg_mask = BITFMASK(MC13783_REGCTRL_VAUDIO_EN);
+ reg = REG_REGULATOR_MODE_0;
+ break;
+ case REGU_VIOHI:
+ reg_val = BITFVAL(MC13783_REGCTRL_VIOHI_EN,
+ MC13783_REGCTRL_VIOHI_EN_ENABLE);
+ reg_mask = BITFMASK(MC13783_REGCTRL_VIOHI_EN);
+ reg = REG_REGULATOR_MODE_0;
+ break;
+ case REGU_VIOLO:
+ reg_val = BITFVAL(MC13783_REGCTRL_VIOLO_EN,
+ MC13783_REGCTRL_VIOLO_EN_ENABLE);
+ reg_mask = BITFMASK(MC13783_REGCTRL_VIOLO_EN);
+ reg = REG_REGULATOR_MODE_0;
+ break;
+ case REGU_VDIG:
+ reg_val = BITFVAL(MC13783_REGCTRL_VDIG_EN,
+ MC13783_REGCTRL_VDIG_EN_ENABLE);
+ reg_mask = BITFMASK(MC13783_REGCTRL_VDIG_EN);
+ reg = REG_REGULATOR_MODE_0;
+ break;
+ case REGU_VGEN:
+ reg_val = BITFVAL(MC13783_REGCTRL_VGEN_EN,
+ MC13783_REGCTRL_VGEN_EN_ENABLE);
+ reg_mask = BITFMASK(MC13783_REGCTRL_VGEN_EN);
+ reg = REG_REGULATOR_MODE_0;
+ break;
+ case REGU_VRFDIG:
+ reg_val = BITFVAL(MC13783_REGCTRL_VRFDIG_EN,
+ MC13783_REGCTRL_VRFDIG_EN_ENABLE);
+ reg_mask = BITFMASK(MC13783_REGCTRL_VRFDIG_EN);
+ reg = REG_REGULATOR_MODE_0;
+ break;
+ case REGU_VRFREF:
+ reg_val = BITFVAL(MC13783_REGCTRL_VRFREF_EN,
+ MC13783_REGCTRL_VRFREF_EN_ENABLE);
+ reg_mask = BITFMASK(MC13783_REGCTRL_VRFREF_EN);
+ reg = REG_REGULATOR_MODE_0;
+ break;
+ case REGU_VRFCP:
+ reg_val = BITFVAL(MC13783_REGCTRL_VRFCP_EN,
+ MC13783_REGCTRL_VRFCP_EN_ENABLE);
+ reg_mask = BITFMASK(MC13783_REGCTRL_VRFCP_EN);
+ reg = REG_REGULATOR_MODE_0;
+ break;
+ case REGU_VSIM:
+ reg_val = BITFVAL(MC13783_REGCTRL_VSIM_EN,
+ MC13783_REGCTRL_VSIM_EN_ENABLE);
+ reg_mask = BITFMASK(MC13783_REGCTRL_VSIM_EN);
+ reg = REG_REGULATOR_MODE_1;
+ break;
+ case REGU_VESIM:
+ reg_val = BITFVAL(MC13783_REGCTRL_VESIM_EN,
+ MC13783_REGCTRL_VESIM_EN_ENABLE);
+ reg_mask = BITFMASK(MC13783_REGCTRL_VESIM_EN);
+ reg = REG_REGULATOR_MODE_1;
+ break;
+ case REGU_VCAM:
+ reg_val = BITFVAL(MC13783_REGCTRL_VCAM_EN,
+ MC13783_REGCTRL_VCAM_EN_ENABLE);
+ reg_mask = BITFMASK(MC13783_REGCTRL_VCAM_EN);
+ reg = REG_REGULATOR_MODE_1;
+ break;
+ case REGU_VRFBG:
+ reg_val = BITFVAL(MC13783_REGCTRL_VRFBG_EN,
+ MC13783_REGCTRL_VRFBG_EN_ENABLE);
+ reg_mask = BITFMASK(MC13783_REGCTRL_VRFBG_EN);
+ reg = REG_REGULATOR_MODE_1;
+ break;
+ case REGU_VVIB:
+ reg_val = BITFVAL(MC13783_REGCTRL_VVIB_EN,
+ MC13783_REGCTRL_VVIB_EN_ENABLE);
+ reg_mask = BITFMASK(MC13783_REGCTRL_VVIB_EN);
+ reg = REG_REGULATOR_MODE_1;
+ break;
+ case REGU_VRF1:
+ reg_val = BITFVAL(MC13783_REGCTRL_VRF1_EN,
+ MC13783_REGCTRL_VRF1_EN_ENABLE);
+ reg_mask = BITFMASK(MC13783_REGCTRL_VRF1_EN);
+ reg = REG_REGULATOR_MODE_1;
+ break;
+ case REGU_VRF2:
+ reg_val = BITFVAL(MC13783_REGCTRL_VRF2_EN,
+ MC13783_REGCTRL_VRF2_EN_ENABLE);
+ reg_mask = BITFMASK(MC13783_REGCTRL_VRF2_EN);
+ reg = REG_REGULATOR_MODE_1;
+ break;
+ case REGU_VMMC1:
+ reg_val = BITFVAL(MC13783_REGCTRL_VMMC1_EN,
+ MC13783_REGCTRL_VMMC1_EN_ENABLE);
+ reg_mask = BITFMASK(MC13783_REGCTRL_VMMC1_EN);
+ reg = REG_REGULATOR_MODE_1;
+ break;
+ case REGU_VMMC2:
+ reg_val = BITFVAL(MC13783_REGCTRL_VMMC2_EN,
+ MC13783_REGCTRL_VMMC2_EN_ENABLE);
+ reg_mask = BITFMASK(MC13783_REGCTRL_VMMC2_EN);
+ reg = REG_REGULATOR_MODE_1;
+ break;
+ case REGU_GPO1:
+ reg_val = BITFVAL(MC13783_REGCTRL_GPO1_EN,
+ MC13783_REGCTRL_GPO1_EN_ENABLE);
+ reg_mask = BITFMASK(MC13783_REGCTRL_GPO1_EN);
+ reg = REG_POWER_MISCELLANEOUS;
+ break;
+ case REGU_GPO2:
+ reg_val = BITFVAL(MC13783_REGCTRL_GPO2_EN,
+ MC13783_REGCTRL_GPO2_EN_ENABLE);
+ reg_mask = BITFMASK(MC13783_REGCTRL_GPO2_EN);
+ reg = REG_POWER_MISCELLANEOUS;
+ break;
+ case REGU_GPO3:
+ reg_val = BITFVAL(MC13783_REGCTRL_GPO3_EN,
+ MC13783_REGCTRL_GPO3_EN_ENABLE);
+ reg_mask = BITFMASK(MC13783_REGCTRL_GPO3_EN);
+ reg = REG_POWER_MISCELLANEOUS;
+ break;
+ case REGU_GPO4:
+ reg_val = BITFVAL(MC13783_REGCTRL_GPO4_EN,
+ MC13783_REGCTRL_GPO4_EN_ENABLE);
+ reg_mask = BITFMASK(MC13783_REGCTRL_GPO4_EN);
+ reg = REG_POWER_MISCELLANEOUS;
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ CHECK_ERROR(pmic_write_reg(reg, reg_val, reg_mask));
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function turns off a regulator.
+ *
+ * @param regulator The regulator to be truned off.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_power_regulator_off(t_pmic_regulator regulator)
+{
+ unsigned int reg_val = 0, reg_mask = 0;
+ unsigned int reg;
+
+ switch (regulator) {
+ case SW_PLL:
+ reg_val = BITFVAL(MC13783_SWCTRL_PLL_EN,
+ MC13783_SWCTRL_PLL_EN_DISABLE);
+ reg_mask = BITFMASK(MC13783_SWCTRL_PLL_EN);
+ reg = REG_SWITCHERS_4;
+ break;
+ case SW_SW3:
+ reg_val = BITFVAL(MC13783_SWCTRL_SW3_EN,
+ MC13783_SWCTRL_SW3_EN_DISABLE);
+ reg_mask = BITFMASK(MC13783_SWCTRL_SW3_EN);
+ reg = REG_SWITCHERS_5;
+ break;
+ case REGU_VAUDIO:
+ reg_val = BITFVAL(MC13783_REGCTRL_VAUDIO_EN,
+ MC13783_REGCTRL_VAUDIO_EN_DISABLE);
+ reg_mask = BITFMASK(MC13783_REGCTRL_VAUDIO_EN);
+ reg = REG_REGULATOR_MODE_0;
+ break;
+ case REGU_VIOHI:
+ reg_val = BITFVAL(MC13783_REGCTRL_VIOHI_EN,
+ MC13783_REGCTRL_VIOHI_EN_DISABLE);
+ reg_mask = BITFMASK(MC13783_REGCTRL_VIOHI_EN);
+ reg = REG_REGULATOR_MODE_0;
+ break;
+ case REGU_VIOLO:
+ reg_val = BITFVAL(MC13783_REGCTRL_VIOLO_EN,
+ MC13783_REGCTRL_VIOLO_EN_DISABLE);
+ reg_mask = BITFMASK(MC13783_REGCTRL_VIOLO_EN);
+ reg = REG_REGULATOR_MODE_0;
+ break;
+ case REGU_VDIG:
+ reg_val = BITFVAL(MC13783_REGCTRL_VDIG_EN,
+ MC13783_REGCTRL_VDIG_EN_DISABLE);
+ reg_mask = BITFMASK(MC13783_REGCTRL_VDIG_EN);
+ reg = REG_REGULATOR_MODE_0;
+ break;
+ case REGU_VGEN:
+ reg_val = BITFVAL(MC13783_REGCTRL_VGEN_EN,
+ MC13783_REGCTRL_VGEN_EN_DISABLE);
+ reg_mask = BITFMASK(MC13783_REGCTRL_VGEN_EN);
+ reg = REG_REGULATOR_MODE_0;
+ break;
+ case REGU_VRFDIG:
+ reg_val = BITFVAL(MC13783_REGCTRL_VRFDIG_EN,
+ MC13783_REGCTRL_VRFDIG_EN_DISABLE);
+ reg_mask = BITFMASK(MC13783_REGCTRL_VRFDIG_EN);
+ reg = REG_REGULATOR_MODE_0;
+ break;
+ case REGU_VRFREF:
+ reg_val = BITFVAL(MC13783_REGCTRL_VRFREF_EN,
+ MC13783_REGCTRL_VRFREF_EN_DISABLE);
+ reg_mask = BITFMASK(MC13783_REGCTRL_VRFREF_EN);
+ reg = REG_REGULATOR_MODE_0;
+ break;
+ case REGU_VRFCP:
+ reg_val = BITFVAL(MC13783_REGCTRL_VRFCP_EN,
+ MC13783_REGCTRL_VRFCP_EN_DISABLE);
+ reg_mask = BITFMASK(MC13783_REGCTRL_VRFCP_EN);
+ reg = REG_REGULATOR_MODE_0;
+ break;
+ case REGU_VSIM:
+ reg_val = BITFVAL(MC13783_REGCTRL_VSIM_EN,
+ MC13783_REGCTRL_VSIM_EN_DISABLE);
+ reg_mask = BITFMASK(MC13783_REGCTRL_VSIM_EN);
+ reg = REG_REGULATOR_MODE_1;
+ break;
+ case REGU_VESIM:
+ reg_val = BITFVAL(MC13783_REGCTRL_VESIM_EN,
+ MC13783_REGCTRL_VESIM_EN_DISABLE);
+ reg_mask = BITFMASK(MC13783_REGCTRL_VESIM_EN);
+ reg = REG_REGULATOR_MODE_1;
+ break;
+ case REGU_VCAM:
+ reg_val = BITFVAL(MC13783_REGCTRL_VCAM_EN,
+ MC13783_REGCTRL_VCAM_EN_DISABLE);
+ reg_mask = BITFMASK(MC13783_REGCTRL_VCAM_EN);
+ reg = REG_REGULATOR_MODE_1;
+ break;
+ case REGU_VRFBG:
+ reg_val = BITFVAL(MC13783_REGCTRL_VRFBG_EN,
+ MC13783_REGCTRL_VRFBG_EN_DISABLE);
+ reg_mask = BITFMASK(MC13783_REGCTRL_VRFBG_EN);
+ reg = REG_REGULATOR_MODE_1;
+ break;
+ case REGU_VVIB:
+ reg_val = BITFVAL(MC13783_REGCTRL_VVIB_EN,
+ MC13783_REGCTRL_VVIB_EN_DISABLE);
+ reg_mask = BITFMASK(MC13783_REGCTRL_VVIB_EN);
+ reg = REG_REGULATOR_MODE_1;
+ break;
+ case REGU_VRF1:
+ reg_val = BITFVAL(MC13783_REGCTRL_VRF1_EN,
+ MC13783_REGCTRL_VRF1_EN_DISABLE);
+ reg_mask = BITFMASK(MC13783_REGCTRL_VRF1_EN);
+ reg = REG_REGULATOR_MODE_1;
+ break;
+ case REGU_VRF2:
+ reg_val = BITFVAL(MC13783_REGCTRL_VRF2_EN,
+ MC13783_REGCTRL_VRF2_EN_DISABLE);
+ reg_mask = BITFMASK(MC13783_REGCTRL_VRF2_EN);
+ reg = REG_REGULATOR_MODE_1;
+ break;
+ case REGU_VMMC1:
+ reg_val = BITFVAL(MC13783_REGCTRL_VMMC1_EN,
+ MC13783_REGCTRL_VMMC1_EN_DISABLE);
+ reg_mask = BITFMASK(MC13783_REGCTRL_VMMC1_EN);
+ reg = REG_REGULATOR_MODE_1;
+ break;
+ case REGU_VMMC2:
+ reg_val = BITFVAL(MC13783_REGCTRL_VMMC2_EN,
+ MC13783_REGCTRL_VMMC2_EN_DISABLE);
+ reg_mask = BITFMASK(MC13783_REGCTRL_VMMC2_EN);
+ reg = REG_REGULATOR_MODE_1;
+ break;
+ case REGU_GPO1:
+ reg_val = BITFVAL(MC13783_REGCTRL_GPO1_EN,
+ MC13783_REGCTRL_GPO1_EN_DISABLE);
+ reg_mask = BITFMASK(MC13783_REGCTRL_GPO1_EN);
+ reg = REG_POWER_MISCELLANEOUS;
+ break;
+ case REGU_GPO2:
+ reg_val = BITFVAL(MC13783_REGCTRL_GPO2_EN,
+ MC13783_REGCTRL_GPO2_EN_DISABLE);
+ reg_mask = BITFMASK(MC13783_REGCTRL_GPO2_EN);
+ reg = REG_POWER_MISCELLANEOUS;
+ break;
+ case REGU_GPO3:
+ reg_val = BITFVAL(MC13783_REGCTRL_GPO3_EN,
+ MC13783_REGCTRL_GPO3_EN_DISABLE);
+ reg_mask = BITFMASK(MC13783_REGCTRL_GPO3_EN);
+ reg = REG_POWER_MISCELLANEOUS;
+ break;
+ case REGU_GPO4:
+ reg_val = BITFVAL(MC13783_REGCTRL_GPO4_EN,
+ MC13783_REGCTRL_GPO4_EN_DISABLE);
+ reg_mask = BITFMASK(MC13783_REGCTRL_GPO4_EN);
+ reg = REG_POWER_MISCELLANEOUS;
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ CHECK_ERROR(pmic_write_reg(reg, reg_val, reg_mask));
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function sets the regulator output voltage.
+ *
+ * @param regulator The regulator to be configured.
+ * @param voltage The regulator output voltage.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_power_regulator_set_voltage(t_pmic_regulator regulator,
+ t_regulator_voltage voltage)
+{
+ unsigned int reg_val = 0, reg_mask = 0;
+ unsigned int reg;
+
+ switch (regulator) {
+ case SW_SW1A:
+ if ((voltage.sw1a < SW1A_0_9V) || (voltage.sw1a > SW1A_2_2V)) {
+ return PMIC_PARAMETER_ERROR;
+ }
+ reg_val = BITFVAL(MC13783_SWSET_SW1A, voltage.sw1a);
+ reg_mask = BITFMASK(MC13783_SWSET_SW1A);
+ reg = REG_SWITCHERS_0;
+ break;
+ case SW_SW1B:
+ if ((voltage.sw1b < SW1B_0_9V) || (voltage.sw1b > SW1B_2_2V)) {
+ return PMIC_PARAMETER_ERROR;
+ }
+ reg_val = BITFVAL(MC13783_SWSET_SW1B, voltage.sw1b);
+ reg_mask = BITFMASK(MC13783_SWSET_SW1B);
+ reg = REG_SWITCHERS_1;
+ break;
+ case SW_SW2A:
+ if ((voltage.sw2a < SW2A_0_9V) || (voltage.sw2a > SW2A_2_2V)) {
+ return PMIC_PARAMETER_ERROR;
+ }
+ reg_val = BITFVAL(MC13783_SWSET_SW2A, voltage.sw1a);
+ reg_mask = BITFMASK(MC13783_SWSET_SW2A);
+ reg = REG_SWITCHERS_2;
+ break;
+ case SW_SW2B:
+ if ((voltage.sw2b < SW2B_0_9V) || (voltage.sw2b > SW2B_2_2V)) {
+ return PMIC_PARAMETER_ERROR;
+ }
+ reg_val = BITFVAL(MC13783_SWSET_SW2B, voltage.sw2b);
+ reg_mask = BITFMASK(MC13783_SWSET_SW1A);
+ reg = REG_SWITCHERS_3;
+ break;
+ case SW_SW3:
+ if (voltage.sw3 != SW3_5V) {
+ return PMIC_PARAMETER_ERROR;
+ }
+ reg_val = BITFVAL(MC13783_SWSET_SW3, voltage.sw3);
+ reg_mask = BITFMASK(MC13783_SWSET_SW3);
+ reg = REG_SWITCHERS_5;
+ break;
+ case REGU_VIOLO:
+ if ((voltage.violo < VIOLO_1_2V) ||
+ (voltage.violo > VIOLO_1_8V)) {
+ return PMIC_PARAMETER_ERROR;
+ }
+ reg_val = BITFVAL(MC13783_REGSET_VIOLO, voltage.violo);
+ reg_mask = BITFMASK(MC13783_REGSET_VIOLO);
+ reg = REG_REGULATOR_SETTING_0;
+ break;
+ case REGU_VDIG:
+ if ((voltage.vdig < VDIG_1_2V) || (voltage.vdig > VDIG_1_8V)) {
+ return PMIC_PARAMETER_ERROR;
+ }
+ reg_val = BITFVAL(MC13783_REGSET_VDIG, voltage.vdig);
+ reg_mask = BITFMASK(MC13783_REGSET_VDIG);
+ reg = REG_REGULATOR_SETTING_0;
+ break;
+ case REGU_VGEN:
+ if ((voltage.vgen < VGEN_1_2V) || (voltage.vgen > VGEN_2_4V)) {
+ return PMIC_PARAMETER_ERROR;
+ }
+ reg_val = BITFVAL(MC13783_REGSET_VGEN, voltage.vgen);
+ reg_mask = BITFMASK(MC13783_REGSET_VGEN);
+ reg = REG_REGULATOR_SETTING_0;
+ break;
+ case REGU_VRFDIG:
+ if ((voltage.vrfdig < VRFDIG_1_2V) ||
+ (voltage.vrfdig > VRFDIG_1_875V)) {
+ return PMIC_PARAMETER_ERROR;
+ }
+ reg_val = BITFVAL(MC13783_REGSET_VRFDIG, voltage.vrfdig);
+ reg_mask = BITFMASK(MC13783_REGSET_VRFDIG);
+ reg = REG_REGULATOR_SETTING_0;
+ break;
+ case REGU_VRFREF:
+ if ((voltage.vrfref < VRFREF_2_475V) ||
+ (voltage.vrfref > VRFREF_2_775V)) {
+ return PMIC_PARAMETER_ERROR;
+ }
+ reg_val = BITFVAL(MC13783_REGSET_VRFREF, voltage.vrfref);
+ reg_mask = BITFMASK(MC13783_REGSET_VRFREF);
+ reg = REG_REGULATOR_SETTING_0;
+ break;
+ case REGU_VRFCP:
+ if ((voltage.vrfcp < VRFCP_2_7V) ||
+ (voltage.vrfcp > VRFCP_2_775V)) {
+ return PMIC_PARAMETER_ERROR;
+ }
+ reg_val = BITFVAL(MC13783_REGSET_VRFCP, voltage.vrfcp);
+ reg_mask = BITFMASK(MC13783_REGSET_VRFCP);
+ reg = REG_REGULATOR_SETTING_0;
+ break;
+ case REGU_VSIM:
+ if ((voltage.vsim < VSIM_1_8V) || (voltage.vsim > VSIM_2_9V)) {
+ return PMIC_PARAMETER_ERROR;
+ }
+ reg_val = BITFVAL(MC13783_REGSET_VSIM, voltage.vsim);
+ reg_mask = BITFMASK(MC13783_REGSET_VSIM);
+ reg = REG_REGULATOR_SETTING_0;
+ break;
+ case REGU_VESIM:
+ if ((voltage.vesim < VESIM_1_8V) ||
+ (voltage.vesim > VESIM_2_9V)) {
+ return PMIC_PARAMETER_ERROR;
+ }
+ reg_val = BITFVAL(MC13783_REGSET_VESIM, voltage.vesim);
+ reg_mask = BITFMASK(MC13783_REGSET_VESIM);
+ reg = REG_REGULATOR_SETTING_0;
+ break;
+ case REGU_VCAM:
+ if ((voltage.vcam < VCAM_1_5V) || (voltage.vcam > VCAM_3V)) {
+ return PMIC_PARAMETER_ERROR;
+ }
+ reg_val = BITFVAL(MC13783_REGSET_VCAM, voltage.vcam);
+ reg_mask = BITFMASK(MC13783_REGSET_VCAM);
+ reg = REG_REGULATOR_SETTING_0;
+ break;
+ case REGU_VVIB:
+ if ((voltage.vvib < VVIB_1_3V) || (voltage.vvib > VVIB_3V)) {
+ return PMIC_PARAMETER_ERROR;
+ }
+ reg_val = BITFVAL(MC13783_REGSET_VVIB, voltage.vvib);
+ reg_mask = BITFMASK(MC13783_REGSET_VVIB);
+ reg = REG_REGULATOR_SETTING_1;
+ break;
+ case REGU_VRF1:
+ if ((voltage.vrf1 < VRF1_1_5V) || (voltage.vrf1 > VRF1_2_775V)) {
+ return PMIC_PARAMETER_ERROR;
+ }
+ reg_val = BITFVAL(MC13783_REGSET_VRF1, voltage.vrf1);
+ reg_mask = BITFMASK(MC13783_REGSET_VRF1);
+ reg = REG_REGULATOR_SETTING_1;
+ break;
+ case REGU_VRF2:
+ if ((voltage.vrf2 < VRF2_1_5V) || (voltage.vrf2 > VRF2_2_775V)) {
+ return PMIC_PARAMETER_ERROR;
+ }
+ reg_val = BITFVAL(MC13783_REGSET_VRF2, voltage.vrf2);
+ reg_mask = BITFMASK(MC13783_REGSET_VRF2);
+ reg = REG_REGULATOR_SETTING_1;
+ break;
+ case REGU_VMMC1:
+ if ((voltage.vmmc1 < VMMC1_1_6V) || (voltage.vmmc1 > VMMC1_3V)) {
+ return PMIC_PARAMETER_ERROR;
+ }
+ reg_val = BITFVAL(MC13783_REGSET_VMMC1, voltage.vmmc1);
+ reg_mask = BITFMASK(MC13783_REGSET_VMMC1);
+ reg = REG_REGULATOR_SETTING_1;
+ break;
+ case REGU_VMMC2:
+ if ((voltage.vmmc2 < VMMC2_1_6V) || (voltage.vmmc2 > VMMC2_3V)) {
+ return PMIC_PARAMETER_ERROR;
+ }
+ reg_val = BITFVAL(MC13783_REGSET_VMMC2, voltage.vmmc2);
+ reg_mask = BITFMASK(MC13783_REGSET_VMMC2);
+ reg = REG_REGULATOR_SETTING_1;
+ break;
+ case REGU_VAUDIO:
+ case REGU_VIOHI:
+ case REGU_VRFBG:
+ case REGU_GPO1:
+ case REGU_GPO2:
+ case REGU_GPO3:
+ case REGU_GPO4:
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ CHECK_ERROR(pmic_write_reg(reg, reg_val, reg_mask));
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function retrives the regulator output voltage.
+ *
+ * @param regulator The regulator to be truned off.
+ * @param voltage Pointer to regulator output voltage.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_power_regulator_get_voltage(t_pmic_regulator regulator,
+ t_regulator_voltage *voltage)
+{
+ unsigned int reg_val = 0;
+
+ if (regulator == SW_SW1A) {
+ CHECK_ERROR(pmic_read_reg(REG_SWITCHERS_0,
+ &reg_val, PMIC_ALL_BITS));
+ } else if (regulator == SW_SW1B) {
+ CHECK_ERROR(pmic_read_reg(REG_SWITCHERS_1,
+ &reg_val, PMIC_ALL_BITS));
+ } else if (regulator == SW_SW2A) {
+ CHECK_ERROR(pmic_read_reg(REG_SWITCHERS_2,
+ &reg_val, PMIC_ALL_BITS));
+ } else if (regulator == SW_SW2B) {
+ CHECK_ERROR(pmic_read_reg(REG_SWITCHERS_3,
+ &reg_val, PMIC_ALL_BITS));
+ } else if (regulator == SW_SW3) {
+ CHECK_ERROR(pmic_read_reg(REG_SWITCHERS_5,
+ &reg_val, PMIC_ALL_BITS));
+ } else if ((regulator == REGU_VIOLO) || (regulator == REGU_VDIG) ||
+ (regulator == REGU_VGEN) ||
+ (regulator == REGU_VRFDIG) ||
+ (regulator == REGU_VRFREF) ||
+ (regulator == REGU_VRFCP) ||
+ (regulator == REGU_VSIM) ||
+ (regulator == REGU_VESIM) || (regulator == REGU_VCAM)) {
+ CHECK_ERROR(pmic_read_reg(REG_REGULATOR_SETTING_0,
+ &reg_val, PMIC_ALL_BITS));
+ } else if ((regulator == REGU_VVIB) || (regulator == REGU_VRF1) ||
+ (regulator == REGU_VRF2) ||
+ (regulator == REGU_VMMC1) || (regulator == REGU_VMMC2)) {
+ CHECK_ERROR(pmic_read_reg(REG_REGULATOR_SETTING_1,
+ &reg_val, PMIC_ALL_BITS));
+ }
+
+ switch (regulator) {
+ case SW_SW1A:
+ voltage->sw1a = BITFEXT(reg_val, MC13783_SWSET_SW1A);
+ break;
+ case SW_SW1B:
+ voltage->sw1b = BITFEXT(reg_val, MC13783_SWSET_SW1B);
+ break;
+ case SW_SW2A:
+ voltage->sw2a = BITFEXT(reg_val, MC13783_SWSET_SW2A);
+ break;
+ case SW_SW2B:
+ voltage->sw2b = BITFEXT(reg_val, MC13783_SWSET_SW2B);
+ break;
+ case SW_SW3:
+ voltage->sw3 = BITFEXT(reg_val, MC13783_SWSET_SW3);
+ break;
+ case REGU_VIOLO:
+ voltage->violo = BITFEXT(reg_val, MC13783_REGSET_VIOLO);
+ break;
+ case REGU_VDIG:
+ voltage->vdig = BITFEXT(reg_val, MC13783_REGSET_VDIG);
+ break;
+ case REGU_VGEN:
+ voltage->vgen = BITFEXT(reg_val, MC13783_REGSET_VGEN);
+ break;
+ case REGU_VRFDIG:
+ voltage->vrfdig = BITFEXT(reg_val, MC13783_REGSET_VRFDIG);
+ break;
+ case REGU_VRFREF:
+ voltage->vrfref = BITFEXT(reg_val, MC13783_REGSET_VRFREF);
+ break;
+ case REGU_VRFCP:
+ voltage->vrfcp = BITFEXT(reg_val, MC13783_REGSET_VRFCP);
+ break;
+ case REGU_VSIM:
+ voltage->vsim = BITFEXT(reg_val, MC13783_REGSET_VSIM);
+ break;
+ case REGU_VESIM:
+ voltage->vesim = BITFEXT(reg_val, MC13783_REGSET_VESIM);
+ break;
+ case REGU_VCAM:
+ voltage->vcam = BITFEXT(reg_val, MC13783_REGSET_VCAM);
+ break;
+ case REGU_VVIB:
+ voltage->vvib = BITFEXT(reg_val, MC13783_REGSET_VVIB);
+ break;
+ case REGU_VRF1:
+ voltage->vrf1 = BITFEXT(reg_val, MC13783_REGSET_VRF1);
+ break;
+ case REGU_VRF2:
+ voltage->vrf2 = BITFEXT(reg_val, MC13783_REGSET_VRF2);
+ break;
+ case REGU_VMMC1:
+ voltage->vmmc1 = BITFEXT(reg_val, MC13783_REGSET_VMMC1);
+ break;
+ case REGU_VMMC2:
+ voltage->vmmc2 = BITFEXT(reg_val, MC13783_REGSET_VMMC2);
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function sets the DVS voltage
+ *
+ * @param regulator The regulator to be configured.
+ * @param dvs The switch Dynamic Voltage Scaling
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_power_switcher_set_dvs(t_pmic_regulator regulator,
+ t_regulator_voltage dvs)
+{
+ unsigned int reg_val = 0, reg_mask = 0;
+ unsigned int reg;
+
+ switch (regulator) {
+ case SW_SW1A:
+ if ((dvs.sw1a < SW1A_0_9V) || (dvs.sw1a > SW1A_2_2V)) {
+ return PMIC_PARAMETER_ERROR;
+ }
+ reg_val = BITFVAL(MC13783_SWSET_SW1A_DVS, dvs.sw1a);
+ reg_mask = BITFMASK(MC13783_SWSET_SW1A_DVS);
+ reg = REG_SWITCHERS_0;
+ break;
+ case SW_SW1B:
+ if ((dvs.sw1b < SW1B_0_9V) || (dvs.sw1b > SW1B_2_2V)) {
+ return PMIC_PARAMETER_ERROR;
+ }
+ reg_val = BITFVAL(MC13783_SWSET_SW1B_DVS, dvs.sw1b);
+ reg_mask = BITFMASK(MC13783_SWSET_SW1B_DVS);
+ reg = REG_SWITCHERS_1;
+ break;
+ case SW_SW2A:
+ if ((dvs.sw2a < SW2A_0_9V) || (dvs.sw2a > SW2A_2_2V)) {
+ return PMIC_PARAMETER_ERROR;
+ }
+ reg_val = BITFVAL(MC13783_SWSET_SW2A_DVS, dvs.sw2a);
+ reg_mask = BITFMASK(MC13783_SWSET_SW2A_DVS);
+ reg = REG_SWITCHERS_2;
+ break;
+ case SW_SW2B:
+ if ((dvs.sw2b < SW2B_0_9V) || (dvs.sw2b > SW2B_2_2V)) {
+ return PMIC_PARAMETER_ERROR;
+ }
+ reg_val = BITFVAL(MC13783_SWSET_SW2B_DVS, dvs.sw2b);
+ reg_mask = BITFMASK(MC13783_SWSET_SW2B_DVS);
+ reg = REG_SWITCHERS_3;
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ CHECK_ERROR(pmic_write_reg(reg, reg_val, reg_mask));
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function gets the DVS voltage
+ *
+ * @param regulator The regulator to be handled.
+ * @param dvs The switch Dynamic Voltage Scaling
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_power_switcher_get_dvs(t_pmic_regulator regulator,
+ t_regulator_voltage *dvs)
+{
+ unsigned int reg_val = 0, reg_mask = 0;
+ unsigned int reg;
+
+ switch (regulator) {
+ case SW_SW1A:
+ reg_mask = BITFMASK(MC13783_SWSET_SW1A_DVS);
+ reg = REG_SWITCHERS_0;
+ break;
+ case SW_SW1B:
+ reg_mask = BITFMASK(MC13783_SWSET_SW1B_DVS);
+ reg = REG_SWITCHERS_1;
+ break;
+ case SW_SW2A:
+ reg_mask = BITFMASK(MC13783_SWSET_SW2A_DVS);
+ reg = REG_SWITCHERS_2;
+ break;
+ case SW_SW2B:
+ reg_mask = BITFMASK(MC13783_SWSET_SW2B_DVS);
+ reg = REG_SWITCHERS_3;
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ CHECK_ERROR(pmic_read_reg(reg, &reg_val, reg_mask));
+
+ switch (regulator) {
+ case SW_SW1A:
+ *dvs = (t_regulator_voltage) BITFEXT(reg_val,
+ MC13783_SWSET_SW1A_DVS);
+ break;
+ case SW_SW1B:
+ *dvs = (t_regulator_voltage) BITFEXT(reg_val,
+ MC13783_SWSET_SW1B_DVS);
+ break;
+ case SW_SW2A:
+ *dvs = (t_regulator_voltage) BITFEXT(reg_val,
+ MC13783_SWSET_SW2A_DVS);
+ break;
+ case SW_SW2B:
+ *dvs = (t_regulator_voltage) BITFEXT(reg_val,
+ MC13783_SWSET_SW2B_DVS);
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function sets the standiby voltage
+ *
+ * @param regulator The regulator to be configured.
+ * @param stby The switch standby voltage
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_power_switcher_set_stby(t_pmic_regulator regulator,
+ t_regulator_voltage stby)
+{
+ unsigned int reg_val = 0, reg_mask = 0;
+ unsigned int reg;
+
+ switch (regulator) {
+ case SW_SW1A:
+ if ((stby.sw1a < SW1A_0_9V) || (stby.sw1a > SW1A_2_2V)) {
+ return PMIC_PARAMETER_ERROR;
+ }
+ reg_val = BITFVAL(MC13783_SWSET_SW1A_STDBY, stby.sw1a);
+ reg_mask = BITFMASK(MC13783_SWSET_SW1A_STDBY);
+ reg = REG_SWITCHERS_0;
+ break;
+ case SW_SW1B:
+ if ((stby.sw1b < SW1B_0_9V) || (stby.sw1b > SW1B_2_2V)) {
+ return PMIC_PARAMETER_ERROR;
+ }
+ reg_val = BITFVAL(MC13783_SWSET_SW1B_STDBY, stby.sw1b);
+ reg_mask = BITFMASK(MC13783_SWSET_SW1B_STDBY);
+ reg = REG_SWITCHERS_1;
+ break;
+ case SW_SW2A:
+ if ((stby.sw2a < SW2A_0_9V) || (stby.sw2a > SW2A_2_2V)) {
+ return PMIC_PARAMETER_ERROR;
+ }
+ reg_val = BITFVAL(MC13783_SWSET_SW2A_STDBY, stby.sw2a);
+ reg_mask = BITFMASK(MC13783_SWSET_SW2A_STDBY);
+ reg = REG_SWITCHERS_2;
+ break;
+ case SW_SW2B:
+ if ((stby.sw2b < SW2B_0_9V) || (stby.sw2b > SW2B_2_2V)) {
+ return PMIC_PARAMETER_ERROR;
+ }
+ reg_val = BITFVAL(MC13783_SWSET_SW2B_STDBY, stby.sw2b);
+ reg_mask = BITFMASK(MC13783_SWSET_SW2B_STDBY);
+ reg = REG_SWITCHERS_3;
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ CHECK_ERROR(pmic_write_reg(reg, reg_val, reg_mask));
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function gets the standiby voltage
+ *
+ * @param regulator The regulator to be handled.
+ * @param stby The switch standby voltage
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_power_switcher_get_stby(t_pmic_regulator regulator,
+ t_regulator_voltage *stby)
+{
+ unsigned int reg_val = 0, reg_mask = 0;
+ unsigned int reg;
+
+ switch (regulator) {
+ case SW_SW1A:
+ reg_mask = BITFMASK(MC13783_SWSET_SW1A_STDBY);
+ reg = REG_SWITCHERS_0;
+ break;
+ case SW_SW1B:
+ reg_mask = BITFMASK(MC13783_SWSET_SW1B_STDBY);
+ reg = REG_SWITCHERS_1;
+ break;
+ case SW_SW2A:
+ reg_mask = BITFMASK(MC13783_SWSET_SW2A_STDBY);
+ reg = REG_SWITCHERS_2;
+ break;
+ case SW_SW2B:
+ reg_mask = BITFMASK(MC13783_SWSET_SW2B_STDBY);
+ reg = REG_SWITCHERS_3;
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ CHECK_ERROR(pmic_read_reg(reg, &reg_val, reg_mask));
+
+ switch (regulator) {
+ case SW_SW1A:
+ *stby = (t_regulator_voltage) BITFEXT(reg_val,
+ MC13783_SWSET_SW1A_STDBY);
+ break;
+ case SW_SW1B:
+ *stby = (t_regulator_voltage) BITFEXT(reg_val,
+ MC13783_SWSET_SW1B_STDBY);
+ break;
+ case SW_SW2A:
+ *stby = (t_regulator_voltage) BITFEXT(reg_val,
+ MC13783_SWSET_SW2A_STDBY);
+ break;
+ case SW_SW2B:
+ *stby = (t_regulator_voltage) BITFEXT(reg_val,
+ MC13783_SWSET_SW2B_STDBY);
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function sets the switchers mode.
+ *
+ * @param regulator The regulator to be configured.
+ * @param mode The switcher mode
+ * @param stby Switch between main and standby.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_power_switcher_set_mode(t_pmic_regulator regulator,
+ t_regulator_sw_mode mode, bool stby)
+{
+ unsigned int reg_val = 0, reg_mask = 0;
+ unsigned int reg;
+ unsigned int l_mode;
+
+ if (mode == SYNC_RECT) {
+ l_mode = MC13783_SWCTRL_SW_MODE_SYNC_RECT_EN;
+ } else if (mode == NO_PULSE_SKIP) {
+ l_mode = MC13783_SWCTRL_SW_MODE_PULSE_NO_SKIP_EN;
+ } else if (mode == PULSE_SKIP) {
+ l_mode = MC13783_SWCTRL_SW_MODE_PULSE_SKIP_EN;
+ } else if (mode == LOW_POWER) {
+ l_mode = MC13783_SWCTRL_SW_MODE_LOW_POWER_EN;
+ } else {
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ switch (regulator) {
+ case SW_SW1A:
+ if (stby) {
+ reg_val =
+ BITFVAL(MC13783_SWCTRL_SW1A_STBY_MODE, l_mode);
+ reg_mask = BITFMASK(MC13783_SWCTRL_SW1A_STBY_MODE);
+ } else {
+ reg_val = BITFVAL(MC13783_SWCTRL_SW1A_MODE, l_mode);
+ reg_mask = BITFMASK(MC13783_SWCTRL_SW1A_MODE);
+ }
+ reg = REG_SWITCHERS_4;
+ break;
+ case SW_SW1B:
+ if (stby) {
+ reg_val =
+ BITFVAL(MC13783_SWCTRL_SW1B_STBY_MODE, l_mode);
+ reg_mask = BITFMASK(MC13783_SWCTRL_SW1B_STBY_MODE);
+ } else {
+ reg_val = BITFVAL(MC13783_SWCTRL_SW1B_MODE, l_mode);
+ reg_mask = BITFMASK(MC13783_SWCTRL_SW1B_MODE);
+ }
+ reg = REG_SWITCHERS_4;
+ break;
+ case SW_SW2A:
+ if (stby) {
+ reg_val =
+ BITFVAL(MC13783_SWCTRL_SW2A_STBY_MODE, l_mode);
+ reg_mask = BITFMASK(MC13783_SWCTRL_SW2A_STBY_MODE);
+ } else {
+ reg_val = BITFVAL(MC13783_SWCTRL_SW2A_MODE, l_mode);
+ reg_mask = BITFMASK(MC13783_SWCTRL_SW2A_MODE);
+ }
+ reg = REG_SWITCHERS_5;
+ break;
+ case SW_SW2B:
+ if (stby) {
+ reg_val =
+ BITFVAL(MC13783_SWCTRL_SW2B_STBY_MODE, l_mode);
+ reg_mask = BITFMASK(MC13783_SWCTRL_SW2B_STBY_MODE);
+ } else {
+ reg_val = BITFVAL(MC13783_SWCTRL_SW2B_MODE, l_mode);
+ reg_mask = BITFMASK(MC13783_SWCTRL_SW2B_MODE);
+ }
+ reg = REG_SWITCHERS_5;
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ CHECK_ERROR(pmic_write_reg(reg, reg_val, reg_mask));
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function gets the switchers mode.
+ *
+ * @param regulator The regulator to be handled.
+ * @param mode The switcher mode.
+ * @param stby Switch between main and standby.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_power_switcher_get_mode(t_pmic_regulator regulator,
+ t_regulator_sw_mode *mode, bool stby)
+{
+ unsigned int reg_val = 0, reg_mask = 0;
+ unsigned int reg = 0;
+ unsigned int l_mode = 0;
+
+ switch (regulator) {
+ case SW_SW1A:
+ if (stby) {
+ reg_mask = BITFMASK(MC13783_SWCTRL_SW1A_STBY_MODE);
+ } else {
+ reg_mask = BITFMASK(MC13783_SWCTRL_SW1A_MODE);
+ }
+ reg = REG_SWITCHERS_4;
+ break;
+ case SW_SW1B:
+ if (stby) {
+ reg_mask = BITFMASK(MC13783_SWCTRL_SW1B_STBY_MODE);
+ } else {
+ reg_mask = BITFMASK(MC13783_SWCTRL_SW1B_MODE);
+ }
+ reg = REG_SWITCHERS_4;
+ break;
+ case SW_SW2A:
+ if (stby) {
+ reg_mask = BITFMASK(MC13783_SWCTRL_SW2A_STBY_MODE);
+ } else {
+ reg_mask = BITFMASK(MC13783_SWCTRL_SW2A_MODE);
+ }
+ reg = REG_SWITCHERS_5;
+ break;
+ case SW_SW2B:
+ if (stby) {
+ reg_mask = BITFMASK(MC13783_SWCTRL_SW2B_STBY_MODE);
+ } else {
+ reg_mask = BITFMASK(MC13783_SWCTRL_SW2B_MODE);
+ }
+ reg = REG_SWITCHERS_5;
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ CHECK_ERROR(pmic_read_reg(reg, &reg_val, reg_mask));
+
+ switch (regulator) {
+ case SW_SW1A:
+ if (stby) {
+ l_mode =
+ BITFEXT(reg_val, MC13783_SWCTRL_SW1A_STBY_MODE);
+ } else {
+ l_mode = BITFEXT(reg_val, MC13783_SWCTRL_SW1A_MODE);
+ }
+ break;
+ case SW_SW1B:
+ if (stby) {
+ l_mode =
+ BITFEXT(reg_val, MC13783_SWCTRL_SW1B_STBY_MODE);
+ } else {
+ l_mode = BITFEXT(reg_val, MC13783_SWCTRL_SW1B_MODE);
+ }
+ break;
+ case SW_SW2A:
+ if (stby) {
+ l_mode =
+ BITFEXT(reg_val, MC13783_SWCTRL_SW2A_STBY_MODE);
+ } else {
+ l_mode = BITFEXT(reg_val, MC13783_SWCTRL_SW2A_MODE);
+ }
+ break;
+ case SW_SW2B:
+ if (stby) {
+ l_mode =
+ BITFEXT(reg_val, MC13783_SWCTRL_SW2B_STBY_MODE);
+ } else {
+ l_mode = BITFEXT(reg_val, MC13783_SWCTRL_SW2B_MODE);
+ }
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ if (l_mode == MC13783_SWCTRL_SW_MODE_SYNC_RECT_EN) {
+ *mode = SYNC_RECT;
+ } else if (l_mode == MC13783_SWCTRL_SW_MODE_PULSE_NO_SKIP_EN) {
+ *mode = NO_PULSE_SKIP;
+ } else if (l_mode == MC13783_SWCTRL_SW_MODE_PULSE_SKIP_EN) {
+ *mode = PULSE_SKIP;
+ } else if (l_mode == MC13783_SWCTRL_SW_MODE_LOW_POWER_EN) {
+ *mode = LOW_POWER;
+ } else {
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function sets the switch dvs speed
+ *
+ * @param regulator The regulator to be configured.
+ * @param speed The dvs speed.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_power_switcher_set_dvs_speed(t_pmic_regulator regulator,
+ t_switcher_dvs_speed speed)
+{
+ unsigned int reg_val = 0, reg_mask = 0;
+ unsigned int reg;
+ if (speed > 3 || speed < 0) {
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ switch (regulator) {
+ case SW_SW1A:
+ reg_val = BITFVAL(MC13783_SWCTRL_SW1A_DVS_SPEED, speed);
+ reg_mask = BITFMASK(MC13783_SWCTRL_SW1A_DVS_SPEED);
+ reg = REG_SWITCHERS_4;
+ break;
+ case SW_SW1B:
+ reg_val = BITFVAL(MC13783_SWCTRL_SW2B_DVS_SPEED, speed);
+ reg_mask = BITFMASK(MC13783_SWCTRL_SW1B_DVS_SPEED);
+ reg = REG_SWITCHERS_4;
+ break;
+ case SW_SW2A:
+ reg_val = BITFVAL(MC13783_SWCTRL_SW2A_DVS_SPEED, speed);
+ reg_mask = BITFMASK(MC13783_SWCTRL_SW2A_DVS_SPEED);
+ reg = REG_SWITCHERS_5;
+ break;
+ case SW_SW2B:
+ reg_val = BITFVAL(MC13783_SWCTRL_SW2B_DVS_SPEED, speed);
+ reg_mask = BITFMASK(MC13783_SWCTRL_SW2B_DVS_SPEED);
+ reg = REG_SWITCHERS_5;
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ CHECK_ERROR(pmic_write_reg(reg, reg_val, reg_mask));
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function gets the switch dvs speed
+ *
+ * @param regulator The regulator to be handled.
+ * @param speed The dvs speed.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_power_switcher_get_dvs_speed(t_pmic_regulator regulator,
+ t_switcher_dvs_speed *speed)
+{
+ unsigned int reg_val = 0, reg_mask = 0;
+ unsigned int reg;
+
+ switch (regulator) {
+ case SW_SW1A:
+ reg_mask = BITFMASK(MC13783_SWCTRL_SW1A_DVS_SPEED);
+ reg = REG_SWITCHERS_4;
+ break;
+ case SW_SW1B:
+ reg_mask = BITFMASK(MC13783_SWCTRL_SW1B_DVS_SPEED);
+ reg = REG_SWITCHERS_4;
+ break;
+ case SW_SW2A:
+ reg_mask = BITFMASK(MC13783_SWCTRL_SW2A_DVS_SPEED);
+ reg = REG_SWITCHERS_5;
+ break;
+ case SW_SW2B:
+ reg_mask = BITFMASK(MC13783_SWCTRL_SW2B_DVS_SPEED);
+ reg = REG_SWITCHERS_5;
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ CHECK_ERROR(pmic_read_reg(reg, &reg_val, reg_mask));
+
+ switch (regulator) {
+ case SW_SW1A:
+ *speed = BITFEXT(reg_val, MC13783_SWCTRL_SW1A_DVS_SPEED);
+ break;
+ case SW_SW1B:
+ *speed = BITFEXT(reg_val, MC13783_SWCTRL_SW1B_DVS_SPEED);
+ break;
+ case SW_SW2A:
+ *speed = BITFEXT(reg_val, MC13783_SWCTRL_SW2A_DVS_SPEED);
+ break;
+ case SW_SW2B:
+ *speed = BITFEXT(reg_val, MC13783_SWCTRL_SW2B_DVS_SPEED);
+ break;
+ default:
+ break;
+ }
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function sets the switch panic mode
+ *
+ * @param regulator The regulator to be configured.
+ * @param panic_mode Enable or disable panic mode
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_power_switcher_set_panic_mode(t_pmic_regulator regulator,
+ bool panic_mode)
+{
+ unsigned int reg_val = 0, reg_mask = 0;
+ unsigned int reg;
+
+ switch (regulator) {
+ case SW_SW1A:
+ reg_val = BITFVAL(MC13783_SWCTRL_SW1A_PANIC_MODE, panic_mode);
+ reg_mask = BITFMASK(MC13783_SWCTRL_SW1A_PANIC_MODE);
+ reg = REG_SWITCHERS_4;
+ break;
+ case SW_SW1B:
+ reg_val = BITFVAL(MC13783_SWCTRL_SW2B_PANIC_MODE, panic_mode);
+ reg_mask = BITFMASK(MC13783_SWCTRL_SW1B_PANIC_MODE);
+ reg = REG_SWITCHERS_4;
+ break;
+ case SW_SW2A:
+ reg_val = BITFVAL(MC13783_SWCTRL_SW2A_PANIC_MODE, panic_mode);
+ reg_mask = BITFMASK(MC13783_SWCTRL_SW2A_PANIC_MODE);
+ reg = REG_SWITCHERS_5;
+ break;
+ case SW_SW2B:
+ reg_val = BITFVAL(MC13783_SWCTRL_SW2B_PANIC_MODE, panic_mode);
+ reg_mask = BITFMASK(MC13783_SWCTRL_SW2B_PANIC_MODE);
+ reg = REG_SWITCHERS_5;
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ CHECK_ERROR(pmic_write_reg(reg, reg_val, reg_mask));
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function gets the switch panic mode
+ *
+ * @param regulator The regulator to be handled
+ * @param panic_mode Enable or disable panic mode
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_power_switcher_get_panic_mode(t_pmic_regulator regulator,
+ bool *panic_mode)
+{
+ unsigned int reg_val = 0, reg_mask = 0;
+ unsigned int reg;
+
+ switch (regulator) {
+ case SW_SW1A:
+ reg_mask = BITFMASK(MC13783_SWCTRL_SW1A_PANIC_MODE);
+ reg = REG_SWITCHERS_4;
+ break;
+ case SW_SW1B:
+ reg_mask = BITFMASK(MC13783_SWCTRL_SW1B_PANIC_MODE);
+ reg = REG_SWITCHERS_4;
+ break;
+ case SW_SW2A:
+ reg_mask = BITFMASK(MC13783_SWCTRL_SW2A_PANIC_MODE);
+ reg = REG_SWITCHERS_5;
+ break;
+ case SW_SW2B:
+ reg_mask = BITFMASK(MC13783_SWCTRL_SW2B_PANIC_MODE);
+ reg = REG_SWITCHERS_5;
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ CHECK_ERROR(pmic_read_reg(reg, &reg_val, reg_mask));
+
+ switch (regulator) {
+ case SW_SW1A:
+ *panic_mode = BITFEXT(reg_val, MC13783_SWCTRL_SW1A_PANIC_MODE);
+ break;
+ case SW_SW1B:
+ *panic_mode = BITFEXT(reg_val, MC13783_SWCTRL_SW1B_PANIC_MODE);
+ break;
+ case SW_SW2A:
+ *panic_mode = BITFEXT(reg_val, MC13783_SWCTRL_SW2A_PANIC_MODE);
+ break;
+ case SW_SW2B:
+ *panic_mode = BITFEXT(reg_val, MC13783_SWCTRL_SW2B_PANIC_MODE);
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function sets the switch softstart mode
+ *
+ * @param regulator The regulator to be configured.
+ * @param softstart Enable or disable softstart.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_power_switcher_set_softstart(t_pmic_regulator regulator,
+ bool softstart)
+{
+ unsigned int reg_val = 0, reg_mask = 0;
+ unsigned int reg;
+
+ switch (regulator) {
+ case SW_SW1A:
+ reg_val = BITFVAL(MC13783_SWCTRL_SW1A_SOFTSTART, softstart);
+ reg_mask = BITFMASK(MC13783_SWCTRL_SW1A_SOFTSTART);
+ reg = REG_SWITCHERS_4;
+ break;
+ case SW_SW1B:
+ reg_val = BITFVAL(MC13783_SWCTRL_SW2B_SOFTSTART, softstart);
+ reg_mask = BITFMASK(MC13783_SWCTRL_SW1B_SOFTSTART);
+ reg = REG_SWITCHERS_4;
+ break;
+ case SW_SW2A:
+ reg_val = BITFVAL(MC13783_SWCTRL_SW2A_SOFTSTART, softstart);
+ reg_mask = BITFMASK(MC13783_SWCTRL_SW2A_SOFTSTART);
+ reg = REG_SWITCHERS_5;
+ break;
+ case SW_SW2B:
+ reg_val = BITFVAL(MC13783_SWCTRL_SW2B_SOFTSTART, softstart);
+ reg_mask = BITFMASK(MC13783_SWCTRL_SW2B_SOFTSTART);
+ reg = REG_SWITCHERS_5;
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ CHECK_ERROR(pmic_write_reg(reg, reg_val, reg_mask));
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function gets the switch softstart mode
+ *
+ * @param regulator The regulator to be handled
+ * @param softstart Enable or disable softstart.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_power_switcher_get_softstart(t_pmic_regulator regulator,
+ bool *softstart)
+{
+ unsigned int reg_val = 0, reg_mask = 0;
+ unsigned int reg;
+
+ switch (regulator) {
+ case SW_SW1A:
+ reg_mask = BITFMASK(MC13783_SWCTRL_SW1A_SOFTSTART);
+ reg = REG_SWITCHERS_4;
+ break;
+ case SW_SW1B:
+ reg_mask = BITFMASK(MC13783_SWCTRL_SW1B_SOFTSTART);
+ reg = REG_SWITCHERS_4;
+ break;
+ case SW_SW2A:
+ reg_mask = BITFMASK(MC13783_SWCTRL_SW2A_SOFTSTART);
+ reg = REG_SWITCHERS_5;
+ break;
+ case SW_SW2B:
+ reg_mask = BITFMASK(MC13783_SWCTRL_SW2B_SOFTSTART);
+ reg = REG_SWITCHERS_5;
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ CHECK_ERROR(pmic_read_reg(reg, &reg_val, reg_mask));
+
+ switch (regulator) {
+ case SW_SW1A:
+ *softstart = BITFEXT(reg_val, MC13783_SWCTRL_SW1A_SOFTSTART);
+ break;
+ case SW_SW1B:
+ *softstart = BITFEXT(reg_val, MC13783_SWCTRL_SW2B_SOFTSTART);
+ break;
+ case SW_SW2A:
+ *softstart = BITFEXT(reg_val, MC13783_SWCTRL_SW2A_SOFTSTART);
+ break;
+ case SW_SW2B:
+ *softstart = BITFEXT(reg_val, MC13783_SWCTRL_SW2B_SOFTSTART);
+ break;
+ default:
+ break;
+ }
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function sets the PLL multiplication factor
+ *
+ * @param regulator The regulator to be configured.
+ * @param factor The multiplication factor.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_power_switcher_set_factor(t_pmic_regulator regulator,
+ t_switcher_factor factor)
+{
+ unsigned int reg_val = 0, reg_mask = 0;
+
+ if (regulator != SW_PLL) {
+ return PMIC_PARAMETER_ERROR;
+ }
+ if (factor < FACTOR_28 || factor > FACTOR_35) {
+ return PMIC_PARAMETER_ERROR;
+ }
+ reg_val = BITFVAL(MC13783_SWCTRL_PLL_FACTOR, factor);
+ reg_mask = BITFMASK(MC13783_SWCTRL_PLL_FACTOR);
+
+ CHECK_ERROR(pmic_write_reg(REG_SWITCHERS_4, reg_val, reg_mask));
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function gets the PLL multiplication factor
+ *
+ * @param regulator The regulator to be handled
+ * @param factor The multiplication factor.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_power_switcher_get_factor(t_pmic_regulator regulator,
+ t_switcher_factor *factor)
+{
+ unsigned int reg_val = 0, reg_mask = 0;
+
+ if (regulator != SW_PLL) {
+ return PMIC_PARAMETER_ERROR;
+ }
+ reg_mask = BITFMASK(MC13783_SWCTRL_PLL_FACTOR);
+
+ CHECK_ERROR(pmic_read_reg(REG_SWITCHERS_4, &reg_val, reg_mask));
+
+ *factor = BITFEXT(reg_val, MC13783_SWCTRL_PLL_FACTOR);
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function enables or disables low power mode.
+ *
+ * @param regulator The regulator to be configured.
+ * @param lp_mode Select nominal or low power mode.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_power_regulator_set_lp_mode(t_pmic_regulator regulator,
+ t_regulator_lp_mode lp_mode)
+{
+ unsigned int reg_val = 0, reg_mask = 0;
+ unsigned int reg;
+ unsigned int l_mode, l_stby;
+
+ if (lp_mode == LOW_POWER_DISABLED) {
+ l_mode = MC13783_REGTRL_LP_MODE_DISABLE;
+ l_stby = MC13783_REGTRL_STBY_MODE_DISABLE;
+ } else if (lp_mode == LOW_POWER_CTRL_BY_PIN) {
+ l_mode = MC13783_REGTRL_LP_MODE_DISABLE;
+ l_stby = MC13783_REGTRL_STBY_MODE_ENABLE;
+ } else if (lp_mode == LOW_POWER_EN) {
+ l_mode = MC13783_REGTRL_LP_MODE_ENABLE;
+ l_stby = MC13783_REGTRL_STBY_MODE_DISABLE;
+ } else if (lp_mode == LOW_POWER_AND_LOW_POWER_CTRL_BY_PIN) {
+ l_mode = MC13783_REGTRL_LP_MODE_ENABLE;
+ l_stby = MC13783_REGTRL_STBY_MODE_ENABLE;
+ } else {
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ switch (regulator) {
+ case SW_SW3:
+ reg_val = BITFVAL(MC13783_SWCTRL_SW3_MODE, l_mode) |
+ BITFVAL(MC13783_SWCTRL_SW3_STBY, l_stby);
+ reg_mask = BITFMASK(MC13783_SWCTRL_SW3_MODE) |
+ BITFMASK(MC13783_SWCTRL_SW3_STBY);
+ reg = REG_SWITCHERS_5;
+ break;
+ case REGU_VAUDIO:
+ reg_val = BITFVAL(MC13783_REGCTRL_VAUDIO_MODE, l_mode) |
+ BITFVAL(MC13783_REGCTRL_VAUDIO_STBY, l_stby);
+ reg_mask = BITFMASK(MC13783_REGCTRL_VAUDIO_MODE) |
+ BITFMASK(MC13783_REGCTRL_VAUDIO_STBY);
+ reg = REG_REGULATOR_MODE_0;
+ break;
+ case REGU_VIOHI:
+ reg_val = BITFVAL(MC13783_REGCTRL_VIOHI_MODE, l_mode) |
+ BITFVAL(MC13783_REGCTRL_VIOHI_STBY, l_stby);
+ reg_mask = BITFMASK(MC13783_REGCTRL_VIOHI_MODE) |
+ BITFMASK(MC13783_REGCTRL_VIOHI_STBY);
+ reg = REG_REGULATOR_MODE_0;
+ break;
+ case REGU_VIOLO:
+ reg_val = BITFVAL(MC13783_REGCTRL_VIOLO_MODE, l_mode) |
+ BITFVAL(MC13783_REGCTRL_VIOLO_STBY, l_stby);
+ reg_mask = BITFMASK(MC13783_REGCTRL_VIOLO_MODE) |
+ BITFMASK(MC13783_REGCTRL_VIOLO_STBY);
+ reg = REG_REGULATOR_MODE_0;
+ break;
+ case REGU_VDIG:
+ reg_val = BITFVAL(MC13783_REGCTRL_VDIG_MODE, l_mode) |
+ BITFVAL(MC13783_REGCTRL_VDIG_STBY, l_stby);
+ reg_mask = BITFMASK(MC13783_REGCTRL_VDIG_MODE) |
+ BITFMASK(MC13783_REGCTRL_VDIG_STBY);
+ reg = REG_REGULATOR_MODE_0;
+ break;
+ case REGU_VGEN:
+ reg_val = BITFVAL(MC13783_REGCTRL_VGEN_MODE, l_mode) |
+ BITFVAL(MC13783_REGCTRL_VGEN_STBY, l_stby);
+ reg_mask = BITFMASK(MC13783_REGCTRL_VGEN_MODE) |
+ BITFMASK(MC13783_REGCTRL_VGEN_STBY);
+ reg = REG_REGULATOR_MODE_0;
+ break;
+ case REGU_VRFDIG:
+ reg_val = BITFVAL(MC13783_REGCTRL_VRFDIG_MODE, l_mode) |
+ BITFVAL(MC13783_REGCTRL_VRFDIG_STBY, l_stby);
+ reg_mask = BITFMASK(MC13783_REGCTRL_VRFDIG_MODE) |
+ BITFMASK(MC13783_REGCTRL_VRFDIG_STBY);
+ reg = REG_REGULATOR_MODE_0;
+ break;
+ case REGU_VRFREF:
+ reg_val = BITFVAL(MC13783_REGCTRL_VRFREF_MODE, l_mode) |
+ BITFVAL(MC13783_REGCTRL_VRFREF_STBY, l_stby);
+ reg_mask = BITFMASK(MC13783_REGCTRL_VRFREF_MODE) |
+ BITFMASK(MC13783_REGCTRL_VRFREF_STBY);
+ reg = REG_REGULATOR_MODE_0;
+ break;
+ case REGU_VRFCP:
+ reg_val = BITFVAL(MC13783_REGCTRL_VRFCP_MODE, l_mode) |
+ BITFVAL(MC13783_REGCTRL_VRFCP_STBY, l_stby);
+ reg_mask = BITFMASK(MC13783_REGCTRL_VRFCP_MODE) |
+ BITFMASK(MC13783_REGCTRL_VRFCP_STBY);
+ reg = REG_REGULATOR_MODE_0;
+ break;
+ case REGU_VSIM:
+ reg_val = BITFVAL(MC13783_REGCTRL_VSIM_MODE, l_mode) |
+ BITFVAL(MC13783_REGCTRL_VSIM_STBY, l_stby);
+ reg_mask = BITFMASK(MC13783_REGCTRL_VSIM_MODE) |
+ BITFMASK(MC13783_REGCTRL_VSIM_STBY);
+ reg = REG_REGULATOR_MODE_1;
+ break;
+ case REGU_VESIM:
+ reg_val = BITFVAL(MC13783_REGCTRL_VESIM_MODE, l_mode) |
+ BITFVAL(MC13783_REGCTRL_VESIM_STBY, l_stby);
+ reg_mask = BITFMASK(MC13783_REGCTRL_VESIM_MODE) |
+ BITFMASK(MC13783_REGCTRL_VESIM_STBY);
+ reg = REG_REGULATOR_MODE_1;
+ break;
+ case REGU_VCAM:
+ reg_val = BITFVAL(MC13783_REGCTRL_VCAM_MODE, l_mode) |
+ BITFVAL(MC13783_REGCTRL_VCAM_STBY, l_stby);
+ reg_mask = BITFMASK(MC13783_REGCTRL_VCAM_MODE) |
+ BITFMASK(MC13783_REGCTRL_VCAM_STBY);
+ reg = REG_REGULATOR_MODE_1;
+ break;
+ case REGU_VRFBG:
+ if ((lp_mode == LOW_POWER) ||
+ (lp_mode == LOW_POWER_AND_LOW_POWER_CTRL_BY_PIN)) {
+ return PMIC_PARAMETER_ERROR;
+ }
+ reg_val = BITFVAL(MC13783_REGCTRL_VRFBG_STBY, l_mode);
+ reg_mask = BITFMASK(MC13783_REGCTRL_VRFBG_STBY);
+ reg = REG_REGULATOR_MODE_1;
+ break;
+ case REGU_VRF1:
+ reg_val = BITFVAL(MC13783_REGCTRL_VRF1_MODE, l_mode) |
+ BITFVAL(MC13783_REGCTRL_VRF1_STBY, l_stby);
+ reg_mask = BITFMASK(MC13783_REGCTRL_VRF1_MODE) |
+ BITFMASK(MC13783_REGCTRL_VRF1_STBY);
+ reg = REG_REGULATOR_MODE_1;
+ break;
+ case REGU_VRF2:
+ reg_val = BITFVAL(MC13783_REGCTRL_VRF2_MODE, l_mode) |
+ BITFVAL(MC13783_REGCTRL_VRF2_STBY, l_stby);
+ reg_mask = BITFMASK(MC13783_REGCTRL_VRF2_MODE) |
+ BITFMASK(MC13783_REGCTRL_VRF2_STBY);
+ reg = REG_REGULATOR_MODE_1;
+ break;
+ case REGU_VMMC1:
+ reg_val = BITFVAL(MC13783_REGCTRL_VMMC1_MODE, l_mode) |
+ BITFVAL(MC13783_REGCTRL_VMMC1_STBY, l_stby);
+ reg_mask = BITFMASK(MC13783_REGCTRL_VMMC1_MODE) |
+ BITFMASK(MC13783_REGCTRL_VMMC1_STBY);
+ reg = REG_REGULATOR_MODE_1;
+ break;
+ case REGU_VMMC2:
+ reg_val = BITFVAL(MC13783_REGCTRL_VMMC2_MODE, l_mode) |
+ BITFVAL(MC13783_REGCTRL_VMMC2_STBY, l_stby);
+ reg_mask = BITFMASK(MC13783_REGCTRL_VMMC2_MODE) |
+ BITFMASK(MC13783_REGCTRL_VMMC2_STBY);
+ reg = REG_REGULATOR_MODE_1;
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ CHECK_ERROR(pmic_write_reg(reg, reg_val, reg_mask));
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function gets low power mode.
+ *
+ * @param regulator The regulator to be handled
+ * @param lp_mode Select nominal or low power mode.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_power_regulator_get_lp_mode(t_pmic_regulator regulator,
+ t_regulator_lp_mode *lp_mode)
+{
+ unsigned int reg_val = 0, reg_mask = 0;
+ unsigned int reg;
+ unsigned int l_mode, l_stby;
+
+ switch (regulator) {
+ case SW_SW3:
+ reg_mask = BITFMASK(MC13783_SWCTRL_SW3_MODE) |
+ BITFMASK(MC13783_SWCTRL_SW3_STBY);
+ reg = REG_SWITCHERS_5;
+ break;
+ case REGU_VAUDIO:
+ reg_mask = BITFMASK(MC13783_REGCTRL_VAUDIO_MODE) |
+ BITFMASK(MC13783_REGCTRL_VAUDIO_STBY);
+ reg = REG_REGULATOR_MODE_0;
+ break;
+ case REGU_VIOHI:
+ reg_mask = BITFMASK(MC13783_REGCTRL_VIOHI_MODE) |
+ BITFMASK(MC13783_REGCTRL_VIOHI_STBY);
+ reg = REG_REGULATOR_MODE_0;
+ break;
+ case REGU_VIOLO:
+ reg_mask = BITFMASK(MC13783_REGCTRL_VIOLO_MODE) |
+ BITFMASK(MC13783_REGCTRL_VIOLO_STBY);
+ reg = REG_REGULATOR_MODE_0;
+ break;
+ case REGU_VDIG:
+ reg_mask = BITFMASK(MC13783_REGCTRL_VDIG_MODE) |
+ BITFMASK(MC13783_REGCTRL_VDIG_STBY);
+ reg = REG_REGULATOR_MODE_0;
+ break;
+ case REGU_VGEN:
+ reg_mask = BITFMASK(MC13783_REGCTRL_VGEN_MODE) |
+ BITFMASK(MC13783_REGCTRL_VGEN_STBY);
+ reg = REG_REGULATOR_MODE_0;
+ break;
+ case REGU_VRFDIG:
+ reg_mask = BITFMASK(MC13783_REGCTRL_VRFDIG_MODE) |
+ BITFMASK(MC13783_REGCTRL_VRFDIG_STBY);
+ reg = REG_REGULATOR_MODE_0;
+ break;
+ case REGU_VRFREF:
+ reg_mask = BITFMASK(MC13783_REGCTRL_VRFREF_MODE) |
+ BITFMASK(MC13783_REGCTRL_VRFREF_STBY);
+ reg = REG_REGULATOR_MODE_0;
+ break;
+ case REGU_VRFCP:
+ reg_mask = BITFMASK(MC13783_REGCTRL_VRFCP_MODE) |
+ BITFMASK(MC13783_REGCTRL_VRFCP_STBY);
+ reg = REG_REGULATOR_MODE_0;
+ break;
+ case REGU_VSIM:
+ reg_mask = BITFMASK(MC13783_REGCTRL_VSIM_MODE) |
+ BITFMASK(MC13783_REGCTRL_VSIM_STBY);
+ reg = REG_REGULATOR_MODE_1;
+ break;
+ case REGU_VESIM:
+ reg_mask = BITFMASK(MC13783_REGCTRL_VESIM_MODE) |
+ BITFMASK(MC13783_REGCTRL_VESIM_STBY);
+ reg = REG_REGULATOR_MODE_1;
+ break;
+ case REGU_VCAM:
+ reg_mask = BITFMASK(MC13783_REGCTRL_VCAM_MODE) |
+ BITFMASK(MC13783_REGCTRL_VCAM_STBY);
+ reg = REG_REGULATOR_MODE_1;
+ break;
+ case REGU_VRFBG:
+ reg_mask = BITFMASK(MC13783_REGCTRL_VRFBG_STBY);
+ reg = REG_REGULATOR_MODE_1;
+ break;
+ case REGU_VRF1:
+ reg_mask = BITFMASK(MC13783_REGCTRL_VRF1_MODE) |
+ BITFMASK(MC13783_REGCTRL_VRF1_STBY);
+ reg = REG_REGULATOR_MODE_1;
+ break;
+ case REGU_VRF2:
+ reg_mask = BITFMASK(MC13783_REGCTRL_VRF2_MODE) |
+ BITFMASK(MC13783_REGCTRL_VRF2_STBY);
+ reg = REG_REGULATOR_MODE_1;
+ break;
+ case REGU_VMMC1:
+ reg_mask = BITFMASK(MC13783_REGCTRL_VMMC1_MODE) |
+ BITFMASK(MC13783_REGCTRL_VMMC1_STBY);
+ reg = REG_REGULATOR_MODE_1;
+ break;
+ case REGU_VMMC2:
+ reg_mask = BITFMASK(MC13783_REGCTRL_VMMC2_MODE) |
+ BITFMASK(MC13783_REGCTRL_VMMC2_STBY);
+ reg = REG_REGULATOR_MODE_1;
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ CHECK_ERROR(pmic_read_reg(reg, &reg_val, reg_mask));
+
+ switch (regulator) {
+ case SW_SW3:
+ l_mode = BITFEXT(reg_val, MC13783_SWCTRL_SW3_MODE);
+ l_stby = BITFEXT(reg_val, MC13783_SWCTRL_SW3_STBY);
+ break;
+ case REGU_VAUDIO:
+ l_mode = BITFEXT(reg_val, MC13783_REGCTRL_VAUDIO_MODE);
+ l_stby = BITFEXT(reg_val, MC13783_REGCTRL_VAUDIO_STBY);
+ break;
+ case REGU_VIOHI:
+ l_mode = BITFEXT(reg_val, MC13783_REGCTRL_VIOHI_MODE);
+ l_stby = BITFEXT(reg_val, MC13783_REGCTRL_VIOHI_STBY);
+ break;
+ case REGU_VIOLO:
+ l_mode = BITFEXT(reg_val, MC13783_REGCTRL_VIOLO_MODE);
+ l_stby = BITFEXT(reg_val, MC13783_REGCTRL_VIOLO_STBY);
+ break;
+ case REGU_VDIG:
+ l_mode = BITFEXT(reg_val, MC13783_REGCTRL_VDIG_MODE);
+ l_stby = BITFEXT(reg_val, MC13783_REGCTRL_VDIG_STBY);
+ break;
+ case REGU_VGEN:
+ l_mode = BITFEXT(reg_val, MC13783_REGCTRL_VGEN_MODE);
+ l_stby = BITFEXT(reg_val, MC13783_REGCTRL_VGEN_STBY);
+ break;
+ case REGU_VRFDIG:
+ l_mode = BITFEXT(reg_val, MC13783_REGCTRL_VRFDIG_MODE);
+ l_stby = BITFEXT(reg_val, MC13783_REGCTRL_VRFDIG_STBY);
+ break;
+ case REGU_VRFREF:
+ l_mode = BITFEXT(reg_val, MC13783_REGCTRL_VRFREF_MODE);
+ l_stby = BITFEXT(reg_val, MC13783_REGCTRL_VRFREF_STBY);
+ break;
+ case REGU_VRFCP:
+ l_mode = BITFEXT(reg_val, MC13783_REGCTRL_VRFCP_MODE);
+ l_stby = BITFEXT(reg_val, MC13783_REGCTRL_VRFCP_STBY);
+ break;
+ case REGU_VSIM:
+ l_mode = BITFEXT(reg_val, MC13783_REGCTRL_VSIM_MODE);
+ l_stby = BITFEXT(reg_val, MC13783_REGCTRL_VSIM_STBY);
+ break;
+ case REGU_VESIM:
+ l_mode = BITFEXT(reg_val, MC13783_REGCTRL_VESIM_MODE);
+ l_stby = BITFEXT(reg_val, MC13783_REGCTRL_VESIM_STBY);
+ break;
+ case REGU_VCAM:
+ l_mode = BITFEXT(reg_val, MC13783_REGCTRL_VCAM_MODE);
+ l_stby = BITFEXT(reg_val, MC13783_REGCTRL_VCAM_STBY);
+ break;
+ case REGU_VRFBG:
+ l_mode = MC13783_REGTRL_LP_MODE_DISABLE;
+ l_stby = BITFEXT(reg_val, MC13783_REGCTRL_VRFBG_STBY);
+ break;
+ case REGU_VRF1:
+ l_mode = BITFEXT(reg_val, MC13783_REGCTRL_VRF1_MODE);
+ l_stby = BITFEXT(reg_val, MC13783_REGCTRL_VRF1_STBY);
+ break;
+ case REGU_VRF2:
+ l_mode = BITFEXT(reg_val, MC13783_REGCTRL_VRF2_MODE);
+ l_stby = BITFEXT(reg_val, MC13783_REGCTRL_VRF2_STBY);
+ break;
+ case REGU_VMMC1:
+ l_mode = BITFEXT(reg_val, MC13783_REGCTRL_VMMC1_MODE);
+ l_stby = BITFEXT(reg_val, MC13783_REGCTRL_VMMC1_STBY);
+ break;
+ case REGU_VMMC2:
+ l_mode = BITFEXT(reg_val, MC13783_REGCTRL_VMMC2_MODE);
+ l_stby = BITFEXT(reg_val, MC13783_REGCTRL_VMMC2_STBY);
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ if ((l_mode == MC13783_REGTRL_LP_MODE_DISABLE) &&
+ (l_stby == MC13783_REGTRL_STBY_MODE_DISABLE)) {
+ *lp_mode = LOW_POWER_DISABLED;
+ } else if ((l_mode == MC13783_REGTRL_LP_MODE_DISABLE) &&
+ (l_stby == MC13783_REGTRL_STBY_MODE_ENABLE)) {
+ *lp_mode = LOW_POWER_CTRL_BY_PIN;
+ } else if ((l_mode == MC13783_REGTRL_LP_MODE_ENABLE) &&
+ (l_stby == MC13783_REGTRL_STBY_MODE_DISABLE)) {
+ *lp_mode = LOW_POWER_EN;
+ } else {
+ *lp_mode = LOW_POWER_AND_LOW_POWER_CTRL_BY_PIN;
+ }
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function sets the regulator configuration.
+ *
+ * @param regulator The regulator to be configured.
+ * @param config The regulator output configuration.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_power_regulator_set_config(t_pmic_regulator regulator,
+ t_regulator_config *config)
+{
+ if (config == NULL) {
+ return PMIC_ERROR;
+ }
+
+ switch (regulator) {
+ case SW_SW1A:
+ case SW_SW1B:
+ case SW_SW2A:
+ case SW_SW2B:
+ CHECK_ERROR(pmic_power_regulator_set_voltage
+ (regulator, config->voltage));
+ CHECK_ERROR(pmic_power_switcher_set_dvs
+ (regulator, config->voltage_lvs));
+ CHECK_ERROR(pmic_power_switcher_set_stby
+ (regulator, config->voltage_stby));
+ CHECK_ERROR(pmic_power_switcher_set_mode
+ (regulator, config->mode, false));
+ CHECK_ERROR(pmic_power_switcher_set_mode
+ (regulator, config->stby_mode, true));
+ CHECK_ERROR(pmic_power_switcher_set_dvs_speed
+ (regulator, config->dvs_speed));
+ CHECK_ERROR(pmic_power_switcher_set_panic_mode
+ (regulator, config->panic_mode));
+ CHECK_ERROR(pmic_power_switcher_set_softstart
+ (regulator, config->softstart));
+ break;
+ case SW_PLL:
+ CHECK_ERROR(pmic_power_switcher_set_factor
+ (regulator, config->factor));
+ break;
+ case SW_SW3:
+ case REGU_VIOLO:
+ case REGU_VDIG:
+ case REGU_VGEN:
+ case REGU_VRFDIG:
+ case REGU_VRFREF:
+ case REGU_VRFCP:
+ case REGU_VSIM:
+ case REGU_VESIM:
+ case REGU_VCAM:
+ case REGU_VRF1:
+ case REGU_VRF2:
+ case REGU_VMMC1:
+ case REGU_VMMC2:
+ CHECK_ERROR(pmic_power_regulator_set_voltage
+ (regulator, config->voltage));
+ CHECK_ERROR(pmic_power_regulator_set_lp_mode
+ (regulator, config->lp_mode));
+ break;
+ case REGU_VVIB:
+ CHECK_ERROR(pmic_power_regulator_set_voltage
+ (regulator, config->voltage));
+ break;
+ case REGU_VAUDIO:
+ case REGU_VIOHI:
+ case REGU_VRFBG:
+ CHECK_ERROR(pmic_power_regulator_set_lp_mode
+ (regulator, config->lp_mode));
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function retrives the regulator output configuration.
+ *
+ * @param regulator The regulator to be truned off.
+ * @param config Pointer to regulator configuration.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_power_regulator_get_config(t_pmic_regulator regulator,
+ t_regulator_config *config)
+{
+ if (config == NULL) {
+ return PMIC_ERROR;
+ }
+
+ switch (regulator) {
+ case SW_SW1A:
+ case SW_SW1B:
+ case SW_SW2A:
+ case SW_SW2B:
+ CHECK_ERROR(pmic_power_regulator_get_voltage
+ (regulator, &config->voltage));
+ CHECK_ERROR(pmic_power_switcher_get_dvs
+ (regulator, &config->voltage_lvs));
+ CHECK_ERROR(pmic_power_switcher_get_stby
+ (regulator, &config->voltage_stby));
+ CHECK_ERROR(pmic_power_switcher_get_mode
+ (regulator, &config->mode, false));
+ CHECK_ERROR(pmic_power_switcher_get_mode
+ (regulator, &config->stby_mode, true));
+ CHECK_ERROR(pmic_power_switcher_get_dvs_speed
+ (regulator, &config->dvs_speed));
+ CHECK_ERROR(pmic_power_switcher_get_panic_mode
+ (regulator, &config->panic_mode));
+ CHECK_ERROR(pmic_power_switcher_get_softstart
+ (regulator, &config->softstart));
+ break;
+ case SW_PLL:
+ CHECK_ERROR(pmic_power_switcher_get_factor
+ (regulator, &config->factor));
+ break;
+ case SW_SW3:
+ case REGU_VIOLO:
+ case REGU_VDIG:
+ case REGU_VGEN:
+ case REGU_VRFDIG:
+ case REGU_VRFREF:
+ case REGU_VRFCP:
+ case REGU_VSIM:
+ case REGU_VESIM:
+ case REGU_VCAM:
+ case REGU_VRF1:
+ case REGU_VRF2:
+ case REGU_VMMC1:
+ case REGU_VMMC2:
+ CHECK_ERROR(pmic_power_regulator_get_voltage
+ (regulator, &config->voltage));
+ CHECK_ERROR(pmic_power_regulator_get_lp_mode
+ (regulator, &config->lp_mode));
+ break;
+ case REGU_VVIB:
+ CHECK_ERROR(pmic_power_regulator_get_voltage
+ (regulator, &config->voltage));
+ break;
+ case REGU_VAUDIO:
+ case REGU_VIOHI:
+ case REGU_VRFBG:
+ CHECK_ERROR(pmic_power_regulator_get_lp_mode
+ (regulator, &config->lp_mode));
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function enables automatically VBKUP2 in the memory hold modes.
+ * Only on mc13783 2.0 or higher
+ *
+ * @param en if true, enable VBKUP2AUTOMH
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_power_vbkup2_auto_en(bool en)
+{
+ unsigned int reg_val = 0, reg_mask = 0;
+ pmic_version_t mc13783_ver;
+ mc13783_ver = pmic_get_version();
+ if (mc13783_ver.revision >= 20) {
+ reg_val = BITFVAL(MC13783_REGCTRL_VBKUP2AUTOMH, en);
+ reg_mask = BITFMASK(MC13783_REGCTRL_VBKUP2AUTOMH);
+
+ CHECK_ERROR(pmic_write_reg(REG_POWER_CONTROL_0,
+ reg_val, reg_mask));
+ return PMIC_SUCCESS;
+ } else {
+ return PMIC_NOT_SUPPORTED;
+ }
+}
+
+/*!
+ * This function gets state of automatically VBKUP2.
+ * Only on mc13783 2.0 or higher
+ *
+ * @param en if true, VBKUP2AUTOMH is enabled
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_power_get_vbkup2_auto_state(bool *en)
+{
+ unsigned int reg_val = 0, reg_mask = 0;
+ pmic_version_t mc13783_ver;
+ mc13783_ver = pmic_get_version();
+ if (mc13783_ver.revision >= 20) {
+ reg_mask = BITFMASK(MC13783_REGCTRL_VBKUP2AUTOMH);
+ CHECK_ERROR(pmic_read_reg(REG_POWER_CONTROL_0,
+ &reg_val, reg_mask));
+ *en = BITFEXT(reg_val, MC13783_REGCTRL_VBKUP2AUTOMH);
+
+ return PMIC_SUCCESS;
+ } else {
+ return PMIC_NOT_SUPPORTED;
+ }
+}
+
+/*!
+ * This function enables battery detect function.
+ * Only on mc13783 2.0 or higher
+ *
+ * @param en if true, enable BATTDETEN
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_power_bat_det_en(bool en)
+{
+ unsigned int reg_val = 0, reg_mask = 0;
+ pmic_version_t mc13783_ver;
+ mc13783_ver = pmic_get_version();
+ if (mc13783_ver.revision >= 20) {
+ reg_val = BITFVAL(MC13783_REGCTRL_BATTDETEN, en);
+ reg_mask = BITFMASK(MC13783_REGCTRL_BATTDETEN);
+
+ CHECK_ERROR(pmic_write_reg(REG_POWER_CONTROL_0,
+ reg_val, reg_mask));
+ return PMIC_SUCCESS;
+ } else {
+ return PMIC_NOT_SUPPORTED;
+ }
+}
+
+/*!
+ * This function gets state of battery detect function.
+ * Only on mc13783 2.0 or higher
+ *
+ * @param en if true, BATTDETEN is enabled
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_power_get_bat_det_state(bool *en)
+{
+ unsigned int reg_val = 0, reg_mask = 0;
+ pmic_version_t mc13783_ver;
+ mc13783_ver = pmic_get_version();
+ if (mc13783_ver.revision >= 20) {
+ reg_mask = BITFMASK(MC13783_REGCTRL_BATTDETEN);
+
+ CHECK_ERROR(pmic_read_reg(REG_POWER_CONTROL_0,
+ &reg_val, reg_mask));
+ *en = BITFEXT(reg_val, MC13783_REGCTRL_BATTDETEN);
+ return PMIC_SUCCESS;
+ } else {
+ return PMIC_NOT_SUPPORTED;
+ }
+}
+
+/*!
+ * This function enables control of VVIB by VIBEN pin.
+ * Only on mc13783 2.0 or higher
+ *
+ * @param en if true, enable VIBPINCTRL
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_power_vib_pin_en(bool en)
+{
+ unsigned int reg_val = 0, reg_mask = 0;
+ pmic_version_t mc13783_ver;
+ mc13783_ver = pmic_get_version();
+ if (mc13783_ver.revision >= 20) {
+ reg_val = BITFVAL(MC13783_REGCTRL_VIBPINCTRL, en);
+ reg_mask = BITFMASK(MC13783_REGCTRL_VIBPINCTRL);
+
+ CHECK_ERROR(pmic_write_reg(REG_POWER_MISCELLANEOUS,
+ reg_val, reg_mask));
+ return PMIC_SUCCESS;
+ } else {
+ return PMIC_NOT_SUPPORTED;
+ }
+}
+
+/*!
+ * This function gets state of control of VVIB by VIBEN pin.
+ * Only on mc13783 2.0 or higher
+ * @param en if true, VIBPINCTRL is enabled
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_power_gets_vib_pin_state(bool *en)
+{
+ unsigned int reg_val = 0, reg_mask = 0;
+ pmic_version_t mc13783_ver;
+ mc13783_ver = pmic_get_version();
+ if (mc13783_ver.revision >= 20) {
+ reg_mask = BITFMASK(MC13783_REGCTRL_VIBPINCTRL);
+ CHECK_ERROR(pmic_read_reg(REG_POWER_MISCELLANEOUS,
+ &reg_val, reg_mask));
+ *en = BITFEXT(reg_val, MC13783_REGCTRL_VIBPINCTRL);
+ return PMIC_SUCCESS;
+ } else {
+ return PMIC_NOT_SUPPORTED;
+ }
+}
+
+/*!
+ * This function returns power up sense value
+ *
+ * @param p_up_sense value of power up sense
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_power_get_power_mode_sense(struct t_p_up_sense *p_up_sense)
+{
+ unsigned int reg_value = 0;
+ CHECK_ERROR(pmic_read_reg(REG_POWER_UP_MODE_SENSE,
+ &reg_value, PMIC_ALL_BITS));
+ p_up_sense->state_ictest = (STATE_ICTEST_MASK & reg_value);
+ p_up_sense->state_clksel = ((STATE_CLKSEL_MASK & reg_value)
+ >> STATE_CLKSEL_BIT);
+ p_up_sense->state_pums1 = ((STATE_PUMS1_MASK & reg_value)
+ >> STATE_PUMS1_BITS);
+ p_up_sense->state_pums2 = ((STATE_PUMS2_MASK & reg_value)
+ >> STATE_PUMS2_BITS);
+ p_up_sense->state_pums3 = ((STATE_PUMS3_MASK & reg_value)
+ >> STATE_PUMS3_BITS);
+ p_up_sense->state_chrgmode0 = ((STATE_CHRGM1_MASK & reg_value)
+ >> STATE_CHRGM1_BITS);
+ p_up_sense->state_chrgmode1 = ((STATE_CHRGM2_MASK & reg_value)
+ >> STATE_CHRGM2_BITS);
+ p_up_sense->state_umod = ((STATE_UMOD_MASK & reg_value)
+ >> STATE_UMOD_BITS);
+ p_up_sense->state_usben = ((STATE_USBEN_MASK & reg_value)
+ >> STATE_USBEN_BIT);
+ p_up_sense->state_sw_1a1b_joined = ((STATE_SW1A_J_B_MASK & reg_value)
+ >> STATE_SW1A_J_B_BIT);
+ p_up_sense->state_sw_2a2b_joined = ((STATE_SW2A_J_B_MASK & reg_value)
+ >> STATE_SW2A_J_B_BIT);
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function configures the Regen assignment for all regulator
+ *
+ * @param regulator type of regulator
+ * @param en_dis if true, the regulator is enabled by regen.
+ *
+ * @return This function returns 0 if successful.
+ */
+PMIC_STATUS pmic_power_set_regen_assig(t_pmic_regulator regulator, bool en_dis)
+{
+ unsigned int reg_val = 0, reg_mask = 0;
+
+ switch (regulator) {
+ case REGU_VAUDIO:
+ reg_val = BITFVAL(MC13783_REGGEN_VAUDIO, en_dis);
+ reg_mask = BITFMASK(MC13783_REGGEN_VAUDIO);
+ break;
+ case REGU_VIOHI:
+ reg_val = BITFVAL(MC13783_REGGEN_VIOHI, en_dis);
+ reg_mask = BITFMASK(MC13783_REGGEN_VIOHI);
+ break;
+ case REGU_VIOLO:
+ reg_val = BITFVAL(MC13783_REGGEN_VIOLO, en_dis);
+ reg_mask = BITFMASK(MC13783_REGGEN_VIOLO);
+ break;
+ case REGU_VDIG:
+ reg_val = BITFVAL(MC13783_REGGEN_VDIG, en_dis);
+ reg_mask = BITFMASK(MC13783_REGGEN_VDIG);
+ break;
+ case REGU_VGEN:
+ reg_val = BITFVAL(MC13783_REGGEN_VGEN, en_dis);
+ reg_mask = BITFMASK(MC13783_REGGEN_VGEN);
+ break;
+ case REGU_VRFDIG:
+ reg_val = BITFVAL(MC13783_REGGEN_VRFDIG, en_dis);
+ reg_mask = BITFMASK(MC13783_REGGEN_VRFDIG);
+ break;
+ case REGU_VRFREF:
+ reg_val = BITFVAL(MC13783_REGGEN_VRFREF, en_dis);
+ reg_mask = BITFMASK(MC13783_REGGEN_VRFREF);
+ break;
+ case REGU_VRFCP:
+ reg_val = BITFVAL(MC13783_REGGEN_VRFCP, en_dis);
+ reg_mask = BITFMASK(MC13783_REGGEN_VRFCP);
+ break;
+ case REGU_VCAM:
+ reg_val = BITFVAL(MC13783_REGGEN_VCAM, en_dis);
+ reg_mask = BITFMASK(MC13783_REGGEN_VCAM);
+ break;
+ case REGU_VRFBG:
+ reg_val = BITFVAL(MC13783_REGGEN_VRFBG, en_dis);
+ reg_mask = BITFMASK(MC13783_REGGEN_VRFBG);
+ break;
+ case REGU_VRF1:
+ reg_val = BITFVAL(MC13783_REGGEN_VRF1, en_dis);
+ reg_mask = BITFMASK(MC13783_REGGEN_VRF1);
+ break;
+ case REGU_VRF2:
+ reg_val = BITFVAL(MC13783_REGGEN_VRF2, en_dis);
+ reg_mask = BITFMASK(MC13783_REGGEN_VRF2);
+ break;
+ case REGU_VMMC1:
+ reg_val = BITFVAL(MC13783_REGGEN_VMMC1, en_dis);
+ reg_mask = BITFMASK(MC13783_REGGEN_VMMC1);
+ break;
+ case REGU_VMMC2:
+ reg_val = BITFVAL(MC13783_REGGEN_VMMC2, en_dis);
+ reg_mask = BITFMASK(MC13783_REGGEN_VMMC2);
+ break;
+ case REGU_GPO1:
+ reg_val = BITFVAL(MC13783_REGGEN_GPO1, en_dis);
+ reg_mask = BITFMASK(MC13783_REGGEN_GPO1);
+ break;
+ case REGU_GPO2:
+ reg_val = BITFVAL(MC13783_REGGEN_GPO2, en_dis);
+ reg_mask = BITFMASK(MC13783_REGGEN_GPO2);
+ break;
+ case REGU_GPO3:
+ reg_val = BITFVAL(MC13783_REGGEN_GPO3, en_dis);
+ reg_mask = BITFMASK(MC13783_REGGEN_GPO3);
+ break;
+ case REGU_GPO4:
+ reg_val = BITFVAL(MC13783_REGGEN_GPO4, en_dis);
+ reg_mask = BITFMASK(MC13783_REGGEN_GPO4);
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ CHECK_ERROR(pmic_write_reg(REG_REGEN_ASSIGNMENT, reg_val, reg_mask));
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function gets the Regen assignment for all regulator
+ *
+ * @param regulator type of regulator
+ * @param en_dis return value, if true :
+ * the regulator is enabled by regen.
+ * @return This function returns 0 if successful.
+ */
+PMIC_STATUS pmic_power_get_regen_assig(t_pmic_regulator regulator,
+ bool *en_dis)
+{
+ unsigned int reg_val = 0, reg_mask = 0;
+
+ switch (regulator) {
+ case REGU_VAUDIO:
+ reg_mask = BITFMASK(MC13783_REGGEN_VAUDIO);
+ break;
+ case REGU_VIOHI:
+ reg_mask = BITFMASK(MC13783_REGGEN_VIOHI);
+ break;
+ case REGU_VIOLO:
+ reg_mask = BITFMASK(MC13783_REGGEN_VIOLO);
+ break;
+ case REGU_VDIG:
+ reg_mask = BITFMASK(MC13783_REGGEN_VDIG);
+ break;
+ case REGU_VGEN:
+ reg_mask = BITFMASK(MC13783_REGGEN_VGEN);
+ break;
+ case REGU_VRFDIG:
+ reg_mask = BITFMASK(MC13783_REGGEN_VRFDIG);
+ break;
+ case REGU_VRFREF:
+ reg_mask = BITFMASK(MC13783_REGGEN_VRFREF);
+ break;
+ case REGU_VRFCP:
+ reg_mask = BITFMASK(MC13783_REGGEN_VRFCP);
+ break;
+ case REGU_VCAM:
+ reg_mask = BITFMASK(MC13783_REGGEN_VCAM);
+ break;
+ case REGU_VRFBG:
+ reg_mask = BITFMASK(MC13783_REGGEN_VRFBG);
+ break;
+ case REGU_VRF1:
+ reg_mask = BITFMASK(MC13783_REGGEN_VRF1);
+ break;
+ case REGU_VRF2:
+ reg_mask = BITFMASK(MC13783_REGGEN_VRF2);
+ break;
+ case REGU_VMMC1:
+ reg_mask = BITFMASK(MC13783_REGGEN_VMMC1);
+ break;
+ case REGU_VMMC2:
+ reg_mask = BITFMASK(MC13783_REGGEN_VMMC2);
+ break;
+ case REGU_GPO1:
+ reg_mask = BITFMASK(MC13783_REGGEN_GPO1);
+ break;
+ case REGU_GPO2:
+ reg_mask = BITFMASK(MC13783_REGGEN_GPO2);
+ break;
+ case REGU_GPO3:
+ reg_mask = BITFMASK(MC13783_REGGEN_GPO3);
+ break;
+ case REGU_GPO4:
+ reg_mask = BITFMASK(MC13783_REGGEN_GPO4);
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ CHECK_ERROR(pmic_read_reg(REG_REGEN_ASSIGNMENT, &reg_val, reg_mask));
+
+ switch (regulator) {
+ case REGU_VAUDIO:
+ *en_dis = BITFEXT(reg_val, MC13783_REGGEN_VAUDIO);
+ break;
+ case REGU_VIOHI:
+ *en_dis = BITFEXT(reg_val, MC13783_REGGEN_VIOHI);
+ break;
+ case REGU_VIOLO:
+ *en_dis = BITFEXT(reg_val, MC13783_REGGEN_VIOLO);
+ break;
+ case REGU_VDIG:
+ *en_dis = BITFEXT(reg_val, MC13783_REGGEN_VDIG);
+ break;
+ case REGU_VGEN:
+ *en_dis = BITFEXT(reg_val, MC13783_REGGEN_VGEN);
+ break;
+ case REGU_VRFDIG:
+ *en_dis = BITFEXT(reg_val, MC13783_REGGEN_VRFDIG);
+ break;
+ case REGU_VRFREF:
+ *en_dis = BITFEXT(reg_val, MC13783_REGGEN_VRFREF);
+ break;
+ case REGU_VRFCP:
+ *en_dis = BITFEXT(reg_val, MC13783_REGGEN_VRFCP);
+ break;
+ case REGU_VCAM:
+ *en_dis = BITFEXT(reg_val, MC13783_REGGEN_VCAM);
+ break;
+ case REGU_VRFBG:
+ *en_dis = BITFEXT(reg_val, MC13783_REGGEN_VRFBG);
+ break;
+ case REGU_VRF1:
+ *en_dis = BITFEXT(reg_val, MC13783_REGGEN_VRF1);
+ break;
+ case REGU_VRF2:
+ *en_dis = BITFEXT(reg_val, MC13783_REGGEN_VRF2);
+ break;
+ case REGU_VMMC1:
+ *en_dis = BITFEXT(reg_val, MC13783_REGGEN_VMMC1);
+ break;
+ case REGU_VMMC2:
+ *en_dis = BITFEXT(reg_val, MC13783_REGGEN_VMMC2);
+ break;
+ case REGU_GPO1:
+ *en_dis = BITFEXT(reg_val, MC13783_REGGEN_GPO1);
+ break;
+ case REGU_GPO2:
+ *en_dis = BITFEXT(reg_val, MC13783_REGGEN_GPO2);
+ break;
+ case REGU_GPO3:
+ *en_dis = BITFEXT(reg_val, MC13783_REGGEN_GPO3);
+ break;
+ case REGU_GPO4:
+ *en_dis = BITFEXT(reg_val, MC13783_REGGEN_GPO4);
+ break;
+ default:
+ break;
+ }
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function sets the Regen polarity.
+ *
+ * @param en_dis If true regen is inverted.
+ *
+ * @return This function returns 0 if successful.
+ */
+PMIC_STATUS pmic_power_set_regen_inv(bool en_dis)
+{
+ unsigned int reg_val = 0, reg_mask = 0;
+
+ reg_val = BITFVAL(MC13783_REGGEN_INV, en_dis);
+ reg_mask = BITFMASK(MC13783_REGGEN_INV);
+
+ CHECK_ERROR(pmic_write_reg(REG_REGEN_ASSIGNMENT, reg_val, reg_mask));
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function gets the Regen polarity.
+ *
+ * @param en_dis If true regen is inverted.
+ *
+ * @return This function returns 0 if successful.
+ */
+PMIC_STATUS pmic_power_get_regen_inv(bool *en_dis)
+{
+ unsigned int reg_val = 0, reg_mask = 0;
+
+ reg_mask = BITFMASK(MC13783_REGGEN_INV);
+ CHECK_ERROR(pmic_read_reg(REG_REGEN_ASSIGNMENT, &reg_val, reg_mask));
+ *en_dis = BITFEXT(reg_val, MC13783_REGGEN_INV);
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function enables esim control voltage.
+ * Only on mc13783 2.0 or higher
+ *
+ * @param vesim if true, enable VESIMESIMEN
+ * @param vmmc1 if true, enable VMMC1ESIMEN
+ * @param vmmc2 if true, enable VMMC2ESIMEN
+ *
+ * @return This function returns 0 if successful.
+ */
+PMIC_STATUS pmic_power_esim_v_en(bool vesim, bool vmmc1, bool vmmc2)
+{
+ unsigned int reg_val = 0, reg_mask = 0;
+ pmic_version_t mc13783_ver;
+ mc13783_ver = pmic_get_version();
+ if (mc13783_ver.revision >= 20) {
+ reg_val = BITFVAL(MC13783_REGGEN_VESIMESIM, vesim) |
+ BITFVAL(MC13783_REGGEN_VMMC1ESIM, vesim) |
+ BITFVAL(MC13783_REGGEN_VMMC2ESIM, vesim);
+ reg_mask = BITFMASK(MC13783_REGGEN_VESIMESIM) |
+ BITFMASK(MC13783_REGGEN_VMMC1ESIM) |
+ BITFMASK(MC13783_REGGEN_VMMC2ESIM);
+ CHECK_ERROR(pmic_write_reg(REG_REGEN_ASSIGNMENT,
+ reg_val, reg_mask));
+ return PMIC_SUCCESS;
+ } else {
+ return PMIC_NOT_SUPPORTED;
+ }
+}
+
+/*!
+ * This function gets esim control voltage values.
+ * Only on mc13783 2.0 or higher
+ *
+ * @param vesim if true, enable VESIMESIMEN
+ * @param vmmc1 if true, enable VMMC1ESIMEN
+ * @param vmmc2 if true, enable VMMC2ESIMEN
+ *
+ * @return This function returns 0 if successful.
+ */
+PMIC_STATUS pmic_power_gets_esim_v_state(bool *vesim, bool *vmmc1,
+ bool *vmmc2)
+{
+ unsigned int reg_val = 0, reg_mask = 0;
+ pmic_version_t mc13783_ver;
+ mc13783_ver = pmic_get_version();
+ if (mc13783_ver.revision >= 20) {
+ reg_mask = BITFMASK(MC13783_REGGEN_VESIMESIM) |
+ BITFMASK(MC13783_REGGEN_VMMC1ESIM) |
+ BITFMASK(MC13783_REGGEN_VMMC2ESIM);
+ CHECK_ERROR(pmic_read_reg(REG_REGEN_ASSIGNMENT,
+ &reg_val, reg_mask));
+ *vesim = BITFEXT(reg_val, MC13783_REGGEN_VESIMESIM);
+ *vmmc1 = BITFEXT(reg_val, MC13783_REGGEN_VMMC1ESIM);
+ *vmmc2 = BITFEXT(reg_val, MC13783_REGGEN_VMMC2ESIM);
+ return PMIC_SUCCESS;
+ } else {
+ return PMIC_NOT_SUPPORTED;
+ }
+}
+
+/*!
+ * This function enables auto reset after a system reset.
+ *
+ * @param en if true, the auto reset is enabled
+ *
+ * @return This function returns 0 if successful.
+ */
+PMIC_STATUS pmic_power_set_auto_reset_en(bool en)
+{
+ unsigned int reg_val = 0, reg_mask = 0;
+
+ reg_val = BITFVAL(MC13783_AUTO_RESTART, en);
+ reg_mask = BITFMASK(MC13783_AUTO_RESTART);
+
+ CHECK_ERROR(pmic_write_reg(REG_POWER_CONTROL_2, reg_val, reg_mask));
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function gets auto reset configuration.
+ *
+ * @param en if true, the auto reset is enabled
+ *
+ * @return This function returns 0 if successful.
+ */
+PMIC_STATUS pmic_power_get_auto_reset_en(bool *en)
+{
+ unsigned int reg_val = 0, reg_mask = 0;
+
+ reg_mask = BITFMASK(MC13783_AUTO_RESTART);
+ CHECK_ERROR(pmic_read_reg(REG_POWER_CONTROL_2, &reg_val, reg_mask));
+ *en = BITFEXT(reg_val, MC13783_AUTO_RESTART);
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function configures a system reset on a button.
+ *
+ * @param bt type of button.
+ * @param sys_rst if true, enable the system reset on this button
+ * @param deb_time sets the debounce time on this button pin
+ *
+ * @return This function returns 0 if successful.
+ */
+PMIC_STATUS pmic_power_set_conf_button(t_button bt, bool sys_rst, int deb_time)
+{
+ int max_val = 0;
+ unsigned int reg_val = 0, reg_mask = 0;
+
+ max_val = (1 << MC13783_DEB_BT_ON1B_WID) - 1;
+ if (deb_time > max_val) {
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ switch (bt) {
+ case BT_ON1B:
+ reg_val = BITFVAL(MC13783_EN_BT_ON1B, sys_rst) |
+ BITFVAL(MC13783_DEB_BT_ON1B, deb_time);
+ reg_mask = BITFMASK(MC13783_EN_BT_ON1B) |
+ BITFMASK(MC13783_DEB_BT_ON1B);
+ break;
+ case BT_ON2B:
+ reg_val = BITFVAL(MC13783_EN_BT_ON2B, sys_rst) |
+ BITFVAL(MC13783_DEB_BT_ON2B, deb_time);
+ reg_mask = BITFMASK(MC13783_EN_BT_ON2B) |
+ BITFMASK(MC13783_DEB_BT_ON2B);
+ break;
+ case BT_ON3B:
+ reg_val = BITFVAL(MC13783_EN_BT_ON3B, sys_rst) |
+ BITFVAL(MC13783_DEB_BT_ON3B, deb_time);
+ reg_mask = BITFMASK(MC13783_EN_BT_ON3B) |
+ BITFMASK(MC13783_DEB_BT_ON3B);
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ CHECK_ERROR(pmic_write_reg(REG_POWER_CONTROL_2, reg_val, reg_mask));
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function gets configuration of a button.
+ *
+ * @param bt type of button.
+ * @param sys_rst if true, the system reset is enabled on this button
+ * @param deb_time gets the debounce time on this button pin
+ *
+ * @return This function returns 0 if successful.
+ */
+PMIC_STATUS pmic_power_get_conf_button(t_button bt,
+ bool *sys_rst, int *deb_time)
+{
+ unsigned int reg_val = 0, reg_mask = 0;
+
+ switch (bt) {
+ case BT_ON1B:
+ reg_mask = BITFMASK(MC13783_EN_BT_ON1B) |
+ BITFMASK(MC13783_DEB_BT_ON1B);
+ break;
+ case BT_ON2B:
+ reg_mask = BITFMASK(MC13783_EN_BT_ON2B) |
+ BITFMASK(MC13783_DEB_BT_ON2B);
+ break;
+ case BT_ON3B:
+ reg_mask = BITFMASK(MC13783_EN_BT_ON3B) |
+ BITFMASK(MC13783_DEB_BT_ON3B);
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ CHECK_ERROR(pmic_read_reg(REG_POWER_CONTROL_2, &reg_val, reg_mask));
+
+ switch (bt) {
+ case BT_ON1B:
+ *sys_rst = BITFEXT(reg_val, MC13783_EN_BT_ON1B);
+ *deb_time = BITFEXT(reg_val, MC13783_DEB_BT_ON1B);
+ break;
+ case BT_ON2B:
+ *sys_rst = BITFEXT(reg_val, MC13783_EN_BT_ON2B);
+ *deb_time = BITFEXT(reg_val, MC13783_DEB_BT_ON2B);
+ break;
+ case BT_ON3B:
+ *sys_rst = BITFEXT(reg_val, MC13783_EN_BT_ON3B);
+ *deb_time = BITFEXT(reg_val, MC13783_DEB_BT_ON3B);
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function is used to un/subscribe on power event IT.
+ *
+ * @param event type of event.
+ * @param callback event callback function.
+ * @param sub define if Un/subscribe event.
+ *
+ * @return This function returns 0 if successful.
+ */
+PMIC_STATUS pmic_power_event(t_pwr_int event, void *callback, bool sub)
+{
+ pmic_event_callback_t power_callback;
+ type_event power_event;
+
+ power_callback.func = callback;
+ power_callback.param = NULL;
+ switch (event) {
+ case PWR_IT_BPONI:
+ power_event = EVENT_BPONI;
+ break;
+ case PWR_IT_LOBATLI:
+ power_event = EVENT_LOBATLI;
+ break;
+ case PWR_IT_LOBATHI:
+ power_event = EVENT_LOBATHI;
+ break;
+ case PWR_IT_ONOFD1I:
+ power_event = EVENT_ONOFD1I;
+ break;
+ case PWR_IT_ONOFD2I:
+ power_event = EVENT_ONOFD2I;
+ break;
+ case PWR_IT_ONOFD3I:
+ power_event = EVENT_ONOFD3I;
+ break;
+ case PWR_IT_SYSRSTI:
+ power_event = EVENT_SYSRSTI;
+ break;
+ case PWR_IT_PWRRDYI:
+ power_event = EVENT_PWRRDYI;
+ break;
+ case PWR_IT_PCI:
+ power_event = EVENT_PCI;
+ break;
+ case PWR_IT_WARMI:
+ power_event = EVENT_WARMI;
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+ if (sub == true) {
+ CHECK_ERROR(pmic_event_subscribe(power_event, power_callback));
+ } else {
+ CHECK_ERROR(pmic_event_unsubscribe
+ (power_event, power_callback));
+ }
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function is used to subscribe on power event IT.
+ *
+ * @param event type of event.
+ * @param callback event callback function.
+ *
+ * @return This function returns 0 if successful.
+ */
+PMIC_STATUS pmic_power_event_sub(t_pwr_int event, void *callback)
+{
+ return pmic_power_event(event, callback, true);
+}
+
+/*!
+ * This function is used to un subscribe on power event IT.
+ *
+ * @param event type of event.
+ * @param callback event callback function.
+ *
+ * @return This function returns 0 if successful.
+ */
+PMIC_STATUS pmic_power_event_unsub(t_pwr_int event, void *callback)
+{
+ return pmic_power_event(event, callback, false);
+}
+
+void pmic_power_key_callback(void)
+{
+#ifdef CONFIG_MXC_HWEVENT
+ /*read the power key is pressed or up */
+ t_sensor_bits sense;
+ struct mxc_hw_event event = { HWE_POWER_KEY, 0 };
+
+ pmic_get_sensors(&sense);
+ if (sense.sense_onofd1s) {
+ pr_debug("PMIC Power key up\n");
+ event.args = PWRK_UNPRESS;
+ } else {
+ pr_debug("PMIC Power key pressed\n");
+ event.args = PWRK_PRESS;
+ }
+ /* send hw event */
+ hw_event_send(HWE_DEF_PRIORITY, &event);
+#endif
+}
+
+static irqreturn_t power_key_int(int irq, void *dev_id)
+{
+ pr_info(KERN_INFO "on-off key pressed\n");
+
+ return 0;
+}
+
+extern void gpio_power_key_active(void);
+
+/*
+ * Init and Exit
+ */
+
+static int pmic_power_probe(struct platform_device *pdev)
+{
+ int irq, ret;
+ struct pmic_platform_data *ppd;
+
+ /* configure on/off button */
+ gpio_power_key_active();
+
+ ppd = pdev->dev.platform_data;
+ if (ppd)
+ irq = ppd->power_key_irq;
+ else
+ goto done;
+
+ if (irq == 0) {
+ pr_info(KERN_INFO "PMIC Power has no platform data\n");
+ goto done;
+ }
+ set_irq_type(irq, IRQF_TRIGGER_RISING);
+
+ ret = request_irq(irq, power_key_int, 0, "power_key", 0);
+ if (ret)
+ pr_info(KERN_ERR "register on-off key interrupt failed\n");
+
+ set_irq_wake(irq, 1);
+
+ done:
+ pr_info(KERN_INFO "PMIC Power successfully probed\n");
+ return 0;
+}
+
+static struct platform_driver pmic_power_driver_ldm = {
+ .driver = {
+ .name = "pmic_power",
+ },
+ .suspend = pmic_power_suspend,
+ .resume = pmic_power_resume,
+ .probe = pmic_power_probe,
+ .remove = NULL,
+};
+
+static int __init pmic_power_init(void)
+{
+ pr_debug("PMIC Power driver loading..\n");
+ pmic_power_event_sub(PWR_IT_ONOFD1I, pmic_power_key_callback);
+ /* set power off hook to mc13783 power off */
+ pm_power_off = pmic_power_off;
+ return platform_driver_register(&pmic_power_driver_ldm);
+}
+static void __exit pmic_power_exit(void)
+{
+ pmic_power_event_unsub(PWR_IT_ONOFD1I, pmic_power_key_callback);
+ platform_driver_unregister(&pmic_power_driver_ldm);
+ pr_debug("PMIC Power driver successfully unloaded\n");
+}
+
+/*
+ * Module entry points
+ */
+
+subsys_initcall_sync(pmic_power_init);
+module_exit(pmic_power_exit);
+
+MODULE_DESCRIPTION("pmic_power driver");
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_LICENSE("GPL");
diff --git a/drivers/mxc/pmic/mc13783/pmic_power_defs.h b/drivers/mxc/pmic/mc13783/pmic_power_defs.h
new file mode 100644
index 000000000000..6777f56321e5
--- /dev/null
+++ b/drivers/mxc/pmic/mc13783/pmic_power_defs.h
@@ -0,0 +1,509 @@
+/*
+ * Copyright 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file mc13783/pmic_power_defs.h
+ * @brief This is the internal header define of PMIC(mc13783) Power driver.
+ *
+ * @ingroup PMIC_POWER
+ */
+
+/*
+ * Includes
+ */
+
+#ifndef __MC13783_POWER_DEFS_H__
+#define __MC13783_POWER_DEFS_H__
+
+/*
+ * Power Up Mode Sense bits
+ */
+
+#define STATE_ICTEST_MASK 0x000001
+
+#define STATE_CLKSEL_BIT 1
+#define STATE_CLKSEL_MASK 0x000002
+
+#define STATE_PUMS1_BITS 2
+#define STATE_PUMS1_MASK 0x00000C
+
+#define STATE_PUMS2_BITS 4
+#define STATE_PUMS2_MASK 0x000030
+
+#define STATE_PUMS3_BITS 6
+#define STATE_PUMS3_MASK 0x0000C0
+
+#define STATE_CHRGM1_BITS 8
+#define STATE_CHRGM1_MASK 0x000300
+
+#define STATE_CHRGM2_BITS 10
+#define STATE_CHRGM2_MASK 0x000C00
+
+#define STATE_UMOD_BITS 12
+#define STATE_UMOD_MASK 0x003000
+
+#define STATE_USBEN_BIT 14
+#define STATE_USBEN_MASK 0x004000
+
+#define STATE_SW1A_J_B_BIT 15
+#define STATE_SW1A_J_B_MASK 0x008000
+
+#define STATE_SW2A_J_B_BIT 16
+#define STATE_SW2A_J_B_MASK 0x010000
+
+#define PC_COUNT_MAX 3
+#define PC_COUNT_MIN 0
+/*
+ * Reg Regen
+ */
+#define MC13783_REGGEN_VAUDIO_LSH 0
+#define MC13783_REGGEN_VAUDIO_WID 1
+#define MC13783_REGGEN_VIOHI_LSH 1
+#define MC13783_REGGEN_VIOHI_WID 1
+#define MC13783_REGGEN_VIOLO_LSH 2
+#define MC13783_REGGEN_VIOLO_WID 1
+#define MC13783_REGGEN_VDIG_LSH 3
+#define MC13783_REGGEN_VDIG_WID 1
+#define MC13783_REGGEN_VGEN_LSH 4
+#define MC13783_REGGEN_VGEN_WID 1
+#define MC13783_REGGEN_VRFDIG_LSH 5
+#define MC13783_REGGEN_VRFDIG_WID 1
+#define MC13783_REGGEN_VRFREF_LSH 6
+#define MC13783_REGGEN_VRFREF_WID 1
+#define MC13783_REGGEN_VRFCP_LSH 7
+#define MC13783_REGGEN_VRFCP_WID 1
+#define MC13783_REGGEN_VCAM_LSH 8
+#define MC13783_REGGEN_VCAM_WID 1
+#define MC13783_REGGEN_VRFBG_LSH 9
+#define MC13783_REGGEN_VRFBG_WID 1
+#define MC13783_REGGEN_VRF1_LSH 10
+#define MC13783_REGGEN_VRF1_WID 1
+#define MC13783_REGGEN_VRF2_LSH 11
+#define MC13783_REGGEN_VRF2_WID 1
+#define MC13783_REGGEN_VMMC1_LSH 12
+#define MC13783_REGGEN_VMMC1_WID 1
+#define MC13783_REGGEN_VMMC2_LSH 13
+#define MC13783_REGGEN_VMMC2_WID 1
+#define MC13783_REGGEN_GPO1_LSH 16
+#define MC13783_REGGEN_GPO1_WID 1
+#define MC13783_REGGEN_GPO2_LSH 17
+#define MC13783_REGGEN_GPO2_WID 1
+#define MC13783_REGGEN_GPO3_LSH 18
+#define MC13783_REGGEN_GPO3_WID 1
+#define MC13783_REGGEN_GPO4_LSH 19
+#define MC13783_REGGEN_GPO4_WID 1
+#define MC13783_REGGEN_INV_LSH 20
+#define MC13783_REGGEN_INV_WID 1
+#define MC13783_REGGEN_VESIMESIM_LSH 21
+#define MC13783_REGGEN_VESIMESIM_WID 1
+#define MC13783_REGGEN_VMMC1ESIM_LSH 22
+#define MC13783_REGGEN_VMMC1ESIM_WID 1
+#define MC13783_REGGEN_VMMC2ESIM_LSH 23
+#define MC13783_REGGEN_VMMC2ESIM_WID 1
+
+/*
+ * Reg Power Control 0
+ */
+#define MC13783_PWRCTRL_PCEN_LSH 0
+#define MC13783_PWRCTRL_PCEN_WID 1
+#define MC13783_PWRCTRL_PCEN_ENABLE 1
+#define MC13783_PWRCTRL_PCEN_DISABLE 0
+#define MC13783_PWRCTRL_PC_COUNT_EN_LSH 1
+#define MC13783_PWRCTRL_PC_COUNT_EN_WID 1
+#define MC13783_PWRCTRL_PC_COUNT_EN_ENABLE 1
+#define MC13783_PWRCTRL_PC_COUNT_EN_DISABLE 0
+#define MC13783_PWRCTRL_WARM_EN_LSH 2
+#define MC13783_PWRCTRL_WARM_EN_WID 1
+#define MC13783_PWRCTRL_WARM_EN_ENABLE 1
+#define MC13783_PWRCTRL_WARM_EN_DISABLE 0
+#define MC13783_PWRCTRL_USER_OFF_SPI_LSH 3
+#define MC13783_PWRCTRL_USER_OFF_SPI_WID 1
+#define MC13783_PWRCTRL_USER_OFF_SPI_ENABLE 1
+#define MC13783_PWRCTRL_USER_OFF_PC_LSH 4
+#define MC13783_PWRCTRL_USER_OFF_PC_WID 1
+#define MC13783_PWRCTRL_USER_OFF_PC_ENABLE 1
+#define MC13783_PWRCTRL_USER_OFF_PC_DISABLE 0
+#define MC13783_PWRCTRL_32OUT_USER_OFF_LSH 5
+#define MC13783_PWRCTRL_32OUT_USER_OFF_WID 1
+#define MC13783_PWRCTRL_32OUT_USER_OFF_ENABLE 1
+#define MC13783_PWRCTRL_32OUT_USER_OFF_DISABLE 0
+#define MC13783_PWRCTRL_32OUT_EN_LSH 6
+#define MC13783_PWRCTRL_32OUT_EN_WID 1
+#define MC13783_PWRCTRL_32OUT_EN_ENABLE 1
+#define MC13783_PWRCTRL_32OUT_EN_DISABLE 0
+#define MC13783_REGCTRL_VBKUP2AUTOMH_LSH 7
+#define MC13783_REGCTRL_VBKUP2AUTOMH_WID 1
+#define MC13783_PWRCTRL_VBKUP1_EN_LSH 8
+#define MC13783_PWRCTRL_VBKUP1_EN_WID 1
+#define MC13783_PWRCTRL_VBKUP_ENABLE 1
+#define MC13783_PWRCTRL_VBKUP_DISABLE 0
+#define MC13783_PWRCTRL_VBKUP1_AUTO_EN_LSH 9
+#define MC13783_PWRCTRL_VBKUP1_AUTO_EN_WID 1
+#define MC13783_PWRCTRL_VBKUP1_LSH 10
+#define MC13783_PWRCTRL_VBKUP1_WID 2
+#define MC13783_PWRCTRL_VBKUP2_EN_LSH 12
+#define MC13783_PWRCTRL_VBKUP2_EN_WID 1
+#define MC13783_PWRCTRL_VBKUP2_AUTO_EN_LSH 13
+#define MC13783_PWRCTRL_VBKUP2_AUTO_EN_WID 1
+#define MC13783_PWRCTRL_VBKUP2_LSH 14
+#define MC13783_PWRCTRL_VBKUP2_WID 2
+#define MC13783_REGCTRL_BATTDETEN_LSH 19
+#define MC13783_REGCTRL_BATTDETEN_WID 1
+
+/*
+ * Reg Power Control 1
+ */
+#define MC13783_PWRCTRL_PCT_LSH 0
+#define MC13783_PWRCTRL_PCT_WID 8
+#define MC13783_PWRCTRL_PC_COUNT_LSH 8
+#define MC13783_PWRCTRL_PC_COUNT_WID 4
+#define MC13783_PWRCTRL_PC_MAX_CNT_LSH 12
+#define MC13783_PWRCTRL_PC_MAX_CNT_WID 4
+#define MC13783_PWRCTRL_MEM_TMR_LSH 16
+#define MC13783_PWRCTRL_MEM_TMR_WID 4
+#define MC13783_PWRCTRL_MEM_ALLON_LSH 20
+#define MC13783_PWRCTRL_MEM_ALLON_WID 1
+#define MC13783_PWRCTRL_MEM_ALLON_ENABLE 1
+#define MC13783_PWRCTRL_MEM_ALLON_DISABLE 0
+
+/*
+ * Reg Power Control 2
+ */
+#define MC13783_AUTO_RESTART_LSH 0
+#define MC13783_AUTO_RESTART_WID 1
+#define MC13783_EN_BT_ON1B_LSH 1
+#define MC13783_EN_BT_ON1B_WID 1
+#define MC13783_EN_BT_ON2B_LSH 2
+#define MC13783_EN_BT_ON2B_WID 1
+#define MC13783_EN_BT_ON3B_LSH 3
+#define MC13783_EN_BT_ON3B_WID 1
+#define MC13783_DEB_BT_ON1B_LSH 4
+#define MC13783_DEB_BT_ON1B_WID 2
+#define MC13783_DEB_BT_ON2B_LSH 6
+#define MC13783_DEB_BT_ON2B_WID 2
+#define MC13783_DEB_BT_ON3B_LSH 8
+#define MC13783_DEB_BT_ON3B_WID 2
+
+/*
+ * Reg Regulator Mode 0
+ */
+#define MC13783_REGCTRL_VAUDIO_EN_LSH 0
+#define MC13783_REGCTRL_VAUDIO_EN_WID 1
+#define MC13783_REGCTRL_VAUDIO_EN_ENABLE 1
+#define MC13783_REGCTRL_VAUDIO_EN_DISABLE 0
+#define MC13783_REGCTRL_VAUDIO_STBY_LSH 1
+#define MC13783_REGCTRL_VAUDIO_STBY_WID 1
+#define MC13783_REGCTRL_VAUDIO_MODE_LSH 2
+#define MC13783_REGCTRL_VAUDIO_MODE_WID 1
+#define MC13783_REGCTRL_VIOHI_EN_LSH 3
+#define MC13783_REGCTRL_VIOHI_EN_WID 1
+#define MC13783_REGCTRL_VIOHI_EN_ENABLE 1
+#define MC13783_REGCTRL_VIOHI_EN_DISABLE 0
+#define MC13783_REGCTRL_VIOHI_STBY_LSH 4
+#define MC13783_REGCTRL_VIOHI_STBY_WID 1
+#define MC13783_REGCTRL_VIOHI_MODE_LSH 5
+#define MC13783_REGCTRL_VIOHI_MODE_WID 1
+#define MC13783_REGCTRL_VIOLO_EN_LSH 6
+#define MC13783_REGCTRL_VIOLO_EN_WID 1
+#define MC13783_REGCTRL_VIOLO_EN_ENABLE 1
+#define MC13783_REGCTRL_VIOLO_EN_DISABLE 0
+#define MC13783_REGCTRL_VIOLO_STBY_LSH 7
+#define MC13783_REGCTRL_VIOLO_STBY_WID 1
+#define MC13783_REGCTRL_VIOLO_MODE_LSH 8
+#define MC13783_REGCTRL_VIOLO_MODE_WID 1
+#define MC13783_REGCTRL_VDIG_EN_LSH 9
+#define MC13783_REGCTRL_VDIG_EN_WID 1
+#define MC13783_REGCTRL_VDIG_EN_ENABLE 1
+#define MC13783_REGCTRL_VDIG_EN_DISABLE 0
+#define MC13783_REGCTRL_VDIG_STBY_LSH 10
+#define MC13783_REGCTRL_VDIG_STBY_WID 1
+#define MC13783_REGCTRL_VDIG_MODE_LSH 11
+#define MC13783_REGCTRL_VDIG_MODE_WID 1
+#define MC13783_REGCTRL_VGEN_EN_LSH 12
+#define MC13783_REGCTRL_VGEN_EN_WID 1
+#define MC13783_REGCTRL_VGEN_EN_ENABLE 1
+#define MC13783_REGCTRL_VGEN_EN_DISABLE 0
+#define MC13783_REGCTRL_VGEN_STBY_LSH 13
+#define MC13783_REGCTRL_VGEN_STBY_WID 1
+#define MC13783_REGCTRL_VGEN_MODE_LSH 14
+#define MC13783_REGCTRL_VGEN_MODE_WID 1
+#define MC13783_REGCTRL_VRFDIG_EN_LSH 15
+#define MC13783_REGCTRL_VRFDIG_EN_WID 1
+#define MC13783_REGCTRL_VRFDIG_EN_ENABLE 1
+#define MC13783_REGCTRL_VRFDIG_EN_DISABLE 0
+#define MC13783_REGCTRL_VRFDIG_STBY_LSH 16
+#define MC13783_REGCTRL_VRFDIG_STBY_WID 1
+#define MC13783_REGCTRL_VRFDIG_MODE_LSH 17
+#define MC13783_REGCTRL_VRFDIG_MODE_WID 1
+#define MC13783_REGCTRL_VRFREF_EN_LSH 18
+#define MC13783_REGCTRL_VRFREF_EN_WID 1
+#define MC13783_REGCTRL_VRFREF_EN_ENABLE 1
+#define MC13783_REGCTRL_VRFREF_EN_DISABLE 0
+#define MC13783_REGCTRL_VRFREF_STBY_LSH 19
+#define MC13783_REGCTRL_VRFREF_STBY_WID 1
+#define MC13783_REGCTRL_VRFREF_MODE_LSH 20
+#define MC13783_REGCTRL_VRFREF_MODE_WID 1
+#define MC13783_REGCTRL_VRFCP_EN_LSH 21
+#define MC13783_REGCTRL_VRFCP_EN_WID 1
+#define MC13783_REGCTRL_VRFCP_EN_ENABLE 1
+#define MC13783_REGCTRL_VRFCP_EN_DISABLE 0
+#define MC13783_REGCTRL_VRFCP_STBY_LSH 22
+#define MC13783_REGCTRL_VRFCP_STBY_WID 1
+#define MC13783_REGCTRL_VRFCP_MODE_LSH 23
+#define MC13783_REGCTRL_VRFCP_MODE_WID 1
+
+/*
+ * Reg Regulator Mode 1
+ */
+#define MC13783_REGCTRL_VSIM_EN_LSH 0
+#define MC13783_REGCTRL_VSIM_EN_WID 1
+#define MC13783_REGCTRL_VSIM_EN_ENABLE 1
+#define MC13783_REGCTRL_VSIM_EN_DISABLE 0
+#define MC13783_REGCTRL_VSIM_STBY_LSH 1
+#define MC13783_REGCTRL_VSIM_STBY_WID 1
+#define MC13783_REGCTRL_VSIM_MODE_LSH 2
+#define MC13783_REGCTRL_VSIM_MODE_WID 1
+#define MC13783_REGCTRL_VESIM_EN_LSH 3
+#define MC13783_REGCTRL_VESIM_EN_WID 1
+#define MC13783_REGCTRL_VESIM_EN_ENABLE 1
+#define MC13783_REGCTRL_VESIM_EN_DISABLE 0
+#define MC13783_REGCTRL_VESIM_STBY_LSH 4
+#define MC13783_REGCTRL_VESIM_STBY_WID 1
+#define MC13783_REGCTRL_VESIM_MODE_LSH 5
+#define MC13783_REGCTRL_VESIM_MODE_WID 1
+#define MC13783_REGCTRL_VCAM_EN_LSH 6
+#define MC13783_REGCTRL_VCAM_EN_WID 1
+#define MC13783_REGCTRL_VCAM_EN_ENABLE 1
+#define MC13783_REGCTRL_VCAM_EN_DISABLE 0
+#define MC13783_REGCTRL_VCAM_STBY_LSH 7
+#define MC13783_REGCTRL_VCAM_STBY_WID 1
+#define MC13783_REGCTRL_VCAM_MODE_LSH 8
+#define MC13783_REGCTRL_VCAM_MODE_WID 1
+#define MC13783_REGCTRL_VRFBG_EN_LSH 9
+#define MC13783_REGCTRL_VRFBG_EN_WID 1
+#define MC13783_REGCTRL_VRFBG_EN_ENABLE 1
+#define MC13783_REGCTRL_VRFBG_EN_DISABLE 0
+#define MC13783_REGCTRL_VRFBG_STBY_LSH 10
+#define MC13783_REGCTRL_VRFBG_STBY_WID 1
+#define MC13783_REGCTRL_VVIB_EN_LSH 11
+#define MC13783_REGCTRL_VVIB_EN_WID 1
+#define MC13783_REGCTRL_VVIB_EN_ENABLE 1
+#define MC13783_REGCTRL_VVIB_EN_DISABLE 0
+#define MC13783_REGCTRL_VRF1_EN_LSH 12
+#define MC13783_REGCTRL_VRF1_EN_WID 1
+#define MC13783_REGCTRL_VRF1_EN_ENABLE 1
+#define MC13783_REGCTRL_VRF1_EN_DISABLE 0
+#define MC13783_REGCTRL_VRF1_STBY_LSH 13
+#define MC13783_REGCTRL_VRF1_STBY_WID 1
+#define MC13783_REGCTRL_VRF1_MODE_LSH 14
+#define MC13783_REGCTRL_VRF1_MODE_WID 1
+#define MC13783_REGCTRL_VRF2_EN_LSH 15
+#define MC13783_REGCTRL_VRF2_EN_WID 1
+#define MC13783_REGCTRL_VRF2_EN_ENABLE 1
+#define MC13783_REGCTRL_VRF2_EN_DISABLE 0
+#define MC13783_REGCTRL_VRF2_STBY_LSH 16
+#define MC13783_REGCTRL_VRF2_STBY_WID 1
+#define MC13783_REGCTRL_VRF2_MODE_LSH 17
+#define MC13783_REGCTRL_VRF2_MODE_WID 1
+#define MC13783_REGCTRL_VMMC1_EN_LSH 18
+#define MC13783_REGCTRL_VMMC1_EN_WID 1
+#define MC13783_REGCTRL_VMMC1_EN_ENABLE 1
+#define MC13783_REGCTRL_VMMC1_EN_DISABLE 0
+#define MC13783_REGCTRL_VMMC1_STBY_LSH 19
+#define MC13783_REGCTRL_VMMC1_STBY_WID 1
+#define MC13783_REGCTRL_VMMC1_MODE_LSH 20
+#define MC13783_REGCTRL_VMMC1_MODE_WID 1
+#define MC13783_REGCTRL_VMMC2_EN_LSH 21
+#define MC13783_REGCTRL_VMMC2_EN_WID 1
+#define MC13783_REGCTRL_VMMC2_EN_ENABLE 1
+#define MC13783_REGCTRL_VMMC2_EN_DISABLE 0
+#define MC13783_REGCTRL_VMMC2_STBY_LSH 22
+#define MC13783_REGCTRL_VMMC2_STBY_WID 1
+#define MC13783_REGCTRL_VMMC2_MODE_LSH 23
+#define MC13783_REGCTRL_VMMC2_MODE_WID 1
+
+/*
+ * Reg Regulator Misc.
+ */
+#define MC13783_REGCTRL_GPO1_EN_LSH 6
+#define MC13783_REGCTRL_GPO1_EN_WID 1
+#define MC13783_REGCTRL_GPO1_EN_ENABLE 1
+#define MC13783_REGCTRL_GPO1_EN_DISABLE 0
+#define MC13783_REGCTRL_GPO2_EN_LSH 8
+#define MC13783_REGCTRL_GPO2_EN_WID 1
+#define MC13783_REGCTRL_GPO2_EN_ENABLE 1
+#define MC13783_REGCTRL_GPO2_EN_DISABLE 0
+#define MC13783_REGCTRL_GPO3_EN_LSH 10
+#define MC13783_REGCTRL_GPO3_EN_WID 1
+#define MC13783_REGCTRL_GPO3_EN_ENABLE 1
+#define MC13783_REGCTRL_GPO3_EN_DISABLE 0
+#define MC13783_REGCTRL_GPO4_EN_LSH 12
+#define MC13783_REGCTRL_GPO4_EN_WID 1
+#define MC13783_REGCTRL_GPO4_EN_ENABLE 1
+#define MC13783_REGCTRL_GPO4_EN_DISABLE 0
+#define MC13783_REGCTRL_VIBPINCTRL_LSH 14
+#define MC13783_REGCTRL_VIBPINCTRL_WID 1
+
+/*
+ * Reg Regulator Setting 0
+ */
+#define MC13783_REGSET_VIOLO_LSH 2
+#define MC13783_REGSET_VIOLO_WID 2
+#define MC13783_REGSET_VDIG_LSH 4
+#define MC13783_REGSET_VDIG_WID 2
+#define MC13783_REGSET_VGEN_LSH 6
+#define MC13783_REGSET_VGEN_WID 3
+#define MC13783_REGSET_VRFDIG_LSH 9
+#define MC13783_REGSET_VRFDIG_WID 2
+#define MC13783_REGSET_VRFREF_LSH 11
+#define MC13783_REGSET_VRFREF_WID 2
+#define MC13783_REGSET_VRFCP_LSH 13
+#define MC13783_REGSET_VRFCP_WID 1
+#define MC13783_REGSET_VSIM_LSH 14
+#define MC13783_REGSET_VSIM_WID 1
+#define MC13783_REGSET_VESIM_LSH 15
+#define MC13783_REGSET_VESIM_WID 1
+#define MC13783_REGSET_VCAM_LSH 16
+#define MC13783_REGSET_VCAM_WID 3
+
+/*
+ * Reg Regulator Setting 1
+ */
+#define MC13783_REGSET_VVIB_LSH 0
+#define MC13783_REGSET_VVIB_WID 2
+#define MC13783_REGSET_VRF1_LSH 2
+#define MC13783_REGSET_VRF1_WID 2
+#define MC13783_REGSET_VRF2_LSH 4
+#define MC13783_REGSET_VRF2_WID 2
+#define MC13783_REGSET_VMMC1_LSH 6
+#define MC13783_REGSET_VMMC1_WID 3
+#define MC13783_REGSET_VMMC2_LSH 9
+#define MC13783_REGSET_VMMC2_WID 3
+
+/*
+ * Reg Switcher 0
+ */
+#define MC13783_SWSET_SW1A_LSH 0
+#define MC13783_SWSET_SW1A_WID 6
+#define MC13783_SWSET_SW1A_DVS_LSH 6
+#define MC13783_SWSET_SW1A_DVS_WID 6
+#define MC13783_SWSET_SW1A_STDBY_LSH 12
+#define MC13783_SWSET_SW1A_STDBY_WID 6
+
+/*
+ * Reg Switcher 1
+ */
+#define MC13783_SWSET_SW1B_LSH 0
+#define MC13783_SWSET_SW1B_WID 6
+#define MC13783_SWSET_SW1B_DVS_LSH 6
+#define MC13783_SWSET_SW1B_DVS_WID 6
+#define MC13783_SWSET_SW1B_STDBY_LSH 12
+#define MC13783_SWSET_SW1B_STDBY_WID 6
+
+/*
+ * Reg Switcher 2
+ */
+#define MC13783_SWSET_SW2A_LSH 0
+#define MC13783_SWSET_SW2A_WID 6
+#define MC13783_SWSET_SW2A_DVS_LSH 6
+#define MC13783_SWSET_SW2A_DVS_WID 6
+#define MC13783_SWSET_SW2A_STDBY_LSH 12
+#define MC13783_SWSET_SW2A_STDBY_WID 6
+
+/*
+ * Reg Switcher 3
+ */
+#define MC13783_SWSET_SW2B_LSH 0
+#define MC13783_SWSET_SW2B_WID 6
+#define MC13783_SWSET_SW2B_DVS_LSH 6
+#define MC13783_SWSET_SW2B_DVS_WID 6
+#define MC13783_SWSET_SW2B_STDBY_LSH 12
+#define MC13783_SWSET_SW2B_STDBY_WID 6
+
+/*
+ * Reg Switcher 4
+ */
+#define MC13783_SWCTRL_SW1A_MODE_LSH 0
+#define MC13783_SWCTRL_SW1A_MODE_WID 2
+#define MC13783_SWCTRL_SW1A_STBY_MODE_LSH 2
+#define MC13783_SWCTRL_SW1A_STBY_MODE_WID 2
+#define MC13783_SWCTRL_SW1A_DVS_SPEED_LSH 6
+#define MC13783_SWCTRL_SW1A_DVS_SPEED_WID 2
+#define MC13783_SWCTRL_SW1A_PANIC_MODE_LSH 8
+#define MC13783_SWCTRL_SW1A_PANIC_MODE_WID 1
+#define MC13783_SWCTRL_SW1A_SOFTSTART_LSH 9
+#define MC13783_SWCTRL_SW1A_SOFTSTART_WID 1
+#define MC13783_SWCTRL_SW1B_MODE_LSH 10
+#define MC13783_SWCTRL_SW1B_MODE_WID 2
+#define MC13783_SWCTRL_SW1B_STBY_MODE_LSH 12
+#define MC13783_SWCTRL_SW1B_STBY_MODE_WID 2
+#define MC13783_SWCTRL_SW1B_DVS_SPEED_LSH 14
+#define MC13783_SWCTRL_SW1B_DVS_SPEED_WID 2
+#define MC13783_SWCTRL_SW1B_PANIC_MODE_LSH 16
+#define MC13783_SWCTRL_SW1B_PANIC_MODE_WID 1
+#define MC13783_SWCTRL_SW1B_SOFTSTART_LSH 17
+#define MC13783_SWCTRL_SW1B_SOFTSTART_WID 1
+#define MC13783_SWCTRL_PLL_EN_LSH 18
+#define MC13783_SWCTRL_PLL_EN_WID 1
+#define MC13783_SWCTRL_PLL_EN_ENABLE 1
+#define MC13783_SWCTRL_PLL_EN_DISABLE 0
+#define MC13783_SWCTRL_PLL_FACTOR_LSH 19
+#define MC13783_SWCTRL_PLL_FACTOR_WID 3
+
+/*
+ * Reg Switcher 5
+ */
+#define MC13783_SWCTRL_SW2A_MODE_LSH 0
+#define MC13783_SWCTRL_SW2A_MODE_WID 2
+#define MC13783_SWCTRL_SW2A_STBY_MODE_LSH 2
+#define MC13783_SWCTRL_SW2A_STBY_MODE_WID 2
+#define MC13783_SWCTRL_SW2A_DVS_SPEED_LSH 6
+#define MC13783_SWCTRL_SW2A_DVS_SPEED_WID 2
+#define MC13783_SWCTRL_SW2A_PANIC_MODE_LSH 8
+#define MC13783_SWCTRL_SW2A_PANIC_MODE_WID 1
+#define MC13783_SWCTRL_SW2A_SOFTSTART_LSH 9
+#define MC13783_SWCTRL_SW2A_SOFTSTART_WID 1
+#define MC13783_SWCTRL_SW2B_MODE_LSH 10
+#define MC13783_SWCTRL_SW2B_MODE_WID 2
+#define MC13783_SWCTRL_SW2B_STBY_MODE_LSH 12
+#define MC13783_SWCTRL_SW2B_STBY_MODE_WID 2
+#define MC13783_SWCTRL_SW2B_DVS_SPEED_LSH 14
+#define MC13783_SWCTRL_SW2B_DVS_SPEED_WID 2
+#define MC13783_SWCTRL_SW2B_PANIC_MODE_LSH 16
+#define MC13783_SWCTRL_SW2B_PANIC_MODE_WID 1
+#define MC13783_SWCTRL_SW2B_SOFTSTART_LSH 17
+#define MC13783_SWCTRL_SW2B_SOFTSTART_WID 1
+#define MC13783_SWSET_SW3_LSH 18
+#define MC13783_SWSET_SW3_WID 2
+#define MC13783_SWCTRL_SW3_EN_LSH 20
+#define MC13783_SWCTRL_SW3_EN_WID 2
+#define MC13783_SWCTRL_SW3_EN_ENABLE 1
+#define MC13783_SWCTRL_SW3_EN_DISABLE 0
+#define MC13783_SWCTRL_SW3_STBY_LSH 21
+#define MC13783_SWCTRL_SW3_STBY_WID 1
+#define MC13783_SWCTRL_SW3_MODE_LSH 22
+#define MC13783_SWCTRL_SW3_MODE_WID 1
+
+/*
+ * Switcher configuration
+ */
+#define MC13783_SWCTRL_SW_MODE_SYNC_RECT_EN 0
+#define MC13783_SWCTRL_SW_MODE_PULSE_NO_SKIP_EN 1
+#define MC13783_SWCTRL_SW_MODE_PULSE_SKIP_EN 2
+#define MC13783_SWCTRL_SW_MODE_LOW_POWER_EN 3
+#define MC13783_REGTRL_LP_MODE_ENABLE 1
+#define MC13783_REGTRL_LP_MODE_DISABLE 0
+#define MC13783_REGTRL_STBY_MODE_ENABLE 1
+#define MC13783_REGTRL_STBY_MODE_DISABLE 0
+
+#endif /* __MC13783_POWER_DEFS_H__ */
diff --git a/drivers/mxc/pmic/mc13783/pmic_rtc.c b/drivers/mxc/pmic/mc13783/pmic_rtc.c
new file mode 100644
index 000000000000..b55c21b4c4f0
--- /dev/null
+++ b/drivers/mxc/pmic/mc13783/pmic_rtc.c
@@ -0,0 +1,544 @@
+/*
+ * Copyright 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file mc13783/pmic_rtc.c
+ * @brief This is the main file of PMIC(mc13783) RTC driver.
+ *
+ * @ingroup PMIC_RTC
+ */
+
+/*
+ * Includes
+ */
+#include <linux/slab.h>
+#include <linux/wait.h>
+#include <linux/poll.h>
+#include <linux/platform_device.h>
+#include <linux/pmic_rtc.h>
+#include <linux/pmic_status.h>
+
+#include "pmic_rtc_defs.h"
+
+#define PMIC_LOAD_ERROR_MSG \
+"PMIC card was not correctly detected. Stop loading PMIC RTC driver\n"
+
+/*
+ * Global variables
+ */
+static int pmic_rtc_major;
+static void callback_alarm_asynchronous(void *);
+static void callback_alarm_synchronous(void *);
+static unsigned int pmic_rtc_poll(struct file *file, poll_table * wait);
+static DECLARE_WAIT_QUEUE_HEAD(queue_alarm);
+static DECLARE_WAIT_QUEUE_HEAD(pmic_rtc_wait);
+static pmic_event_callback_t alarm_callback;
+static pmic_event_callback_t rtc_callback;
+static bool pmic_rtc_done;
+static struct class *pmic_rtc_class;
+
+static DECLARE_MUTEX(mutex);
+
+/* EXPORTED FUNCTIONS */
+EXPORT_SYMBOL(pmic_rtc_set_time);
+EXPORT_SYMBOL(pmic_rtc_get_time);
+EXPORT_SYMBOL(pmic_rtc_set_time_alarm);
+EXPORT_SYMBOL(pmic_rtc_get_time_alarm);
+EXPORT_SYMBOL(pmic_rtc_wait_alarm);
+EXPORT_SYMBOL(pmic_rtc_event_sub);
+EXPORT_SYMBOL(pmic_rtc_event_unsub);
+
+/*
+ * Real Time Clock Pmic API
+ */
+
+/*!
+ * This is the callback function called on TSI Pmic event, used in asynchronous
+ * call.
+ */
+static void callback_alarm_asynchronous(void *unused)
+{
+ pmic_rtc_done = true;
+}
+
+/*!
+ * This is the callback function is used in test code for (un)sub.
+ */
+static void callback_test_sub(void)
+{
+ printk(KERN_INFO "*****************************************\n");
+ printk(KERN_INFO "***** PMIC RTC 'Alarm IT CallBack' ******\n");
+ printk(KERN_INFO "*****************************************\n");
+}
+
+/*!
+ * This is the callback function called on TSI Pmic event, used in synchronous
+ * call.
+ */
+static void callback_alarm_synchronous(void *unused)
+{
+ printk(KERN_INFO "*** Alarm IT Pmic ***\n");
+ wake_up(&queue_alarm);
+}
+
+/*!
+ * This function wait the Alarm event
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_rtc_wait_alarm(void)
+{
+ DEFINE_WAIT(wait);
+ alarm_callback.func = callback_alarm_synchronous;
+ alarm_callback.param = NULL;
+ CHECK_ERROR(pmic_event_subscribe(EVENT_TODAI, alarm_callback));
+ prepare_to_wait(&queue_alarm, &wait, TASK_UNINTERRUPTIBLE);
+ schedule();
+ finish_wait(&queue_alarm, &wait);
+ CHECK_ERROR(pmic_event_unsubscribe(EVENT_TODAI, alarm_callback));
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function set the real time clock of PMIC
+ *
+ * @param pmic_time value of date and time
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_rtc_set_time(struct timeval *pmic_time)
+{
+ unsigned int tod_reg_val = 0;
+ unsigned int day_reg_val = 0;
+ unsigned int mask, value;
+
+ tod_reg_val = pmic_time->tv_sec % 86400;
+ day_reg_val = pmic_time->tv_sec / 86400;
+
+ mask = BITFMASK(MC13783_RTCTIME_TIME);
+ value = BITFVAL(MC13783_RTCTIME_TIME, tod_reg_val);
+ CHECK_ERROR(pmic_write_reg(REG_RTC_TIME, value, mask));
+
+ mask = BITFMASK(MC13783_RTCDAY_DAY);
+ value = BITFVAL(MC13783_RTCDAY_DAY, day_reg_val);
+ CHECK_ERROR(pmic_write_reg(REG_RTC_DAY, value, mask));
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function get the real time clock of PMIC
+ *
+ * @param pmic_time return value of date and time
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_rtc_get_time(struct timeval *pmic_time)
+{
+ unsigned int tod_reg_val = 0;
+ unsigned int day_reg_val = 0;
+ unsigned int mask, value;
+
+ mask = BITFMASK(MC13783_RTCTIME_TIME);
+ CHECK_ERROR(pmic_read_reg(REG_RTC_TIME, &value, mask));
+ tod_reg_val = BITFEXT(value, MC13783_RTCTIME_TIME);
+
+ mask = BITFMASK(MC13783_RTCDAY_DAY);
+ CHECK_ERROR(pmic_read_reg(REG_RTC_DAY, &value, mask));
+ day_reg_val = BITFEXT(value, MC13783_RTCDAY_DAY);
+
+ pmic_time->tv_sec = (unsigned long)((unsigned long)(tod_reg_val &
+ 0x0001FFFF) +
+ (unsigned long)(day_reg_val *
+ 86400));
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function set the real time clock alarm of PMIC
+ *
+ * @param pmic_time value of date and time
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_rtc_set_time_alarm(struct timeval *pmic_time)
+{
+ unsigned int tod_reg_val = 0;
+ unsigned int day_reg_val = 0;
+ unsigned int mask, value;
+
+ if (down_interruptible(&mutex) < 0)
+ return ret;
+
+ tod_reg_val = pmic_time->tv_sec % 86400;
+ day_reg_val = pmic_time->tv_sec / 86400;
+
+ mask = BITFMASK(MC13783_RTCALARM_TIME);
+ value = BITFVAL(MC13783_RTCALARM_TIME, tod_reg_val);
+ CHECK_ERROR(pmic_write_reg(REG_RTC_ALARM, value, mask));
+
+ mask = BITFMASK(MC13783_RTCALARM_DAY);
+ value = BITFVAL(MC13783_RTCALARM_DAY, day_reg_val);
+ CHECK_ERROR(pmic_write_reg(REG_RTC_DAY_ALARM, value, mask));
+ up(&mutex);
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function get the real time clock alarm of PMIC
+ *
+ * @param pmic_time return value of date and time
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_rtc_get_time_alarm(struct timeval *pmic_time)
+{
+ unsigned int tod_reg_val = 0;
+ unsigned int day_reg_val = 0;
+ unsigned int mask, value;
+
+ mask = BITFMASK(MC13783_RTCALARM_TIME);
+ CHECK_ERROR(pmic_read_reg(REG_RTC_ALARM, &value, mask));
+ tod_reg_val = BITFEXT(value, MC13783_RTCALARM_TIME);
+
+ mask = BITFMASK(MC13783_RTCALARM_DAY);
+ CHECK_ERROR(pmic_read_reg(REG_RTC_DAY_ALARM, &value, mask));
+ day_reg_val = BITFEXT(value, MC13783_RTCALARM_DAY);
+
+ pmic_time->tv_sec = (unsigned long)((unsigned long)(tod_reg_val &
+ 0x0001FFFF) +
+ (unsigned long)(day_reg_val *
+ 86400));
+
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function is used to un/subscribe on RTC event IT.
+ *
+ * @param event type of event.
+ * @param callback event callback function.
+ * @param sub define if Un/subscribe event.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_rtc_event(t_rtc_int event, void *callback, bool sub)
+{
+ type_event rtc_event;
+ if (callback == NULL) {
+ return PMIC_ERROR;
+ } else {
+ rtc_callback.func = callback;
+ rtc_callback.param = NULL;
+ }
+ switch (event) {
+ case RTC_IT_ALARM:
+ rtc_event = EVENT_TODAI;
+ break;
+ case RTC_IT_1HZ:
+ rtc_event = EVENT_E1HZI;
+ break;
+ case RTC_IT_RST:
+ rtc_event = EVENT_RTCRSTI;
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+ if (sub == true) {
+ CHECK_ERROR(pmic_event_subscribe(rtc_event, rtc_callback));
+ } else {
+ CHECK_ERROR(pmic_event_unsubscribe(rtc_event, rtc_callback));
+ }
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function is used to subscribe on RTC event IT.
+ *
+ * @param event type of event.
+ * @param callback event callback function.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_rtc_event_sub(t_rtc_int event, void *callback)
+{
+ CHECK_ERROR(pmic_rtc_event(event, callback, true));
+ return PMIC_SUCCESS;
+}
+
+/*!
+ * This function is used to un subscribe on RTC event IT.
+ *
+ * @param event type of event.
+ * @param callback event callback function.
+ *
+ * @return This function returns PMIC_SUCCESS if successful.
+ */
+PMIC_STATUS pmic_rtc_event_unsub(t_rtc_int event, void *callback)
+{
+ CHECK_ERROR(pmic_rtc_event(event, callback, false));
+ return PMIC_SUCCESS;
+}
+
+/* Called without the kernel lock - fine */
+static unsigned int pmic_rtc_poll(struct file *file, poll_table * wait)
+{
+ /*poll_wait(file, &pmic_rtc_wait, wait); */
+
+ if (pmic_rtc_done)
+ return POLLIN | POLLRDNORM;
+ return 0;
+}
+
+/*!
+ * This function implements IOCTL controls on a PMIC RTC device.
+ *
+ * @param inode pointer on the node
+ * @param file pointer on the file
+ * @param cmd the command
+ * @param arg the parameter
+ * @return This function returns 0 if successful.
+ */
+static int pmic_rtc_ioctl(struct inode *inode, struct file *file,
+ unsigned int cmd, unsigned long arg)
+{
+ struct timeval *pmic_time = NULL;
+
+ if (_IOC_TYPE(cmd) != 'p')
+ return -ENOTTY;
+
+ if (arg) {
+ pmic_time = kmalloc(sizeof(struct timeval), GFP_KERNEL);
+ if (pmic_time == NULL)
+ return -ENOMEM;
+
+ /* if (copy_from_user(pmic_time, (struct timeval *)arg,
+ sizeof(struct timeval))) {
+ return -EFAULT;
+ } */
+ }
+
+ switch (cmd) {
+ case PMIC_RTC_SET_TIME:
+ if (copy_from_user(pmic_time, (struct timeval *)arg,
+ sizeof(struct timeval))) {
+ return -EFAULT;
+ }
+ pr_debug("SET RTC\n");
+ CHECK_ERROR(pmic_rtc_set_time(pmic_time));
+ break;
+ case PMIC_RTC_GET_TIME:
+ if (copy_to_user((struct timeval *)arg, pmic_time,
+ sizeof(struct timeval))) {
+ return -EFAULT;
+ }
+ pr_debug("GET RTC\n");
+ CHECK_ERROR(pmic_rtc_get_time(pmic_time));
+ break;
+ case PMIC_RTC_SET_ALARM:
+ if (copy_from_user(pmic_time, (struct timeval *)arg,
+ sizeof(struct timeval))) {
+ return -EFAULT;
+ }
+ pr_debug("SET RTC ALARM\n");
+ CHECK_ERROR(pmic_rtc_set_time_alarm(pmic_time));
+ break;
+ case PMIC_RTC_GET_ALARM:
+ if (copy_to_user((struct timeval *)arg, pmic_time,
+ sizeof(struct timeval))) {
+ return -EFAULT;
+ }
+ pr_debug("GET RTC ALARM\n");
+ CHECK_ERROR(pmic_rtc_get_time_alarm(pmic_time));
+ break;
+ case PMIC_RTC_WAIT_ALARM:
+ printk(KERN_INFO "WAIT ALARM...\n");
+ CHECK_ERROR(pmic_rtc_event_sub(RTC_IT_ALARM,
+ callback_test_sub));
+ CHECK_ERROR(pmic_rtc_wait_alarm());
+ printk(KERN_INFO "ALARM DONE\n");
+ CHECK_ERROR(pmic_rtc_event_unsub(RTC_IT_ALARM,
+ callback_test_sub));
+ break;
+ case PMIC_RTC_ALARM_REGISTER:
+ printk(KERN_INFO "PMIC RTC ALARM REGISTER\n");
+ alarm_callback.func = callback_alarm_asynchronous;
+ alarm_callback.param = NULL;
+ CHECK_ERROR(pmic_event_subscribe(EVENT_TODAI, alarm_callback));
+ break;
+ case PMIC_RTC_ALARM_UNREGISTER:
+ printk(KERN_INFO "PMIC RTC ALARM UNREGISTER\n");
+ alarm_callback.func = callback_alarm_asynchronous;
+ alarm_callback.param = NULL;
+ CHECK_ERROR(pmic_event_unsubscribe
+ (EVENT_TODAI, alarm_callback));
+ pmic_rtc_done = false;
+ break;
+ default:
+ pr_debug("%d unsupported ioctl command\n", (int)cmd);
+ return -EINVAL;
+ }
+
+ if (arg) {
+ if (copy_to_user((struct timeval *)arg, pmic_time,
+ sizeof(struct timeval))) {
+ return -EFAULT;
+ }
+ kfree(pmic_time);
+ }
+
+ return 0;
+}
+
+/*!
+ * This function implements the open method on a PMIC RTC device.
+ *
+ * @param inode pointer on the node
+ * @param file pointer on the file
+ * @return This function returns 0.
+ */
+static int pmic_rtc_open(struct inode *inode, struct file *file)
+{
+ return 0;
+}
+
+/*!
+ * This function implements the release method on a PMIC RTC device.
+ *
+ * @param inode pointer on the node
+ * @param file pointer on the file
+ * @return This function returns 0.
+ */
+static int pmic_rtc_release(struct inode *inode, struct file *file)
+{
+ return 0;
+}
+
+/*!
+ * This function is called to put the RTC in a low power state.
+ * There is no need for power handlers for the RTC device.
+ * The RTC cannot be suspended.
+ *
+ * @param pdev the device structure used to give information on which RTC
+ * device (0 through 3 channels) to suspend
+ * @param state the power state the device is entering
+ *
+ * @return The function always returns 0.
+ */
+static int pmic_rtc_suspend(struct platform_device *pdev, pm_message_t state)
+{
+ return 0;
+}
+
+/*!
+ * This function is called to resume the RTC from a low power state.
+ *
+ * @param pdev the device structure used to give information on which RTC
+ * device (0 through 3 channels) to suspend
+ *
+ * @return The function always returns 0.
+ */
+static int pmic_rtc_resume(struct platform_device *pdev)
+{
+ return 0;
+}
+
+/*!
+ * This structure contains pointers to the power management callback functions.
+ */
+
+static struct file_operations pmic_rtc_fops = {
+ .owner = THIS_MODULE,
+ .ioctl = pmic_rtc_ioctl,
+ .poll = pmic_rtc_poll,
+ .open = pmic_rtc_open,
+ .release = pmic_rtc_release,
+};
+
+static int pmic_rtc_remove(struct platform_device *pdev)
+{
+ device_destroy(pmic_rtc_class, MKDEV(pmic_rtc_major, 0));
+ class_destroy(pmic_rtc_class);
+ unregister_chrdev(pmic_rtc_major, "pmic_rtc");
+ return 0;
+}
+
+static int pmic_rtc_probe(struct platform_device *pdev)
+{
+ int ret = 0;
+ struct device *temp_class;
+
+ pmic_rtc_major = register_chrdev(0, "pmic_rtc", &pmic_rtc_fops);
+ if (pmic_rtc_major < 0) {
+ printk(KERN_ERR "Unable to get a major for pmic_rtc\n");
+ return pmic_rtc_major;
+ }
+
+ pmic_rtc_class = class_create(THIS_MODULE, "pmic_rtc");
+ if (IS_ERR(pmic_rtc_class)) {
+ printk(KERN_ERR "Error creating pmic rtc class.\n");
+ ret = PTR_ERR(pmic_rtc_class);
+ goto err_out1;
+ }
+
+ temp_class = device_create(pmic_rtc_class, NULL,
+ MKDEV(pmic_rtc_major, 0), NULL,
+ "pmic_rtc");
+ if (IS_ERR(temp_class)) {
+ printk(KERN_ERR "Error creating pmic rtc class device.\n");
+ ret = PTR_ERR(temp_class);
+ goto err_out2;
+ }
+
+ printk(KERN_INFO "PMIC RTC successfully probed\n");
+ return ret;
+
+ err_out2:
+ class_destroy(pmic_rtc_class);
+ err_out1:
+ unregister_chrdev(pmic_rtc_major, "pmic_rtc");
+ return ret;
+}
+
+static struct platform_driver pmic_rtc_driver_ldm = {
+ .driver = {
+ .name = "pmic_rtc",
+ .owner = THIS_MODULE,
+ },
+ .suspend = pmic_rtc_suspend,
+ .resume = pmic_rtc_resume,
+ .probe = pmic_rtc_probe,
+ .remove = pmic_rtc_remove,
+};
+
+static int __init pmic_rtc_init(void)
+{
+ pr_debug("PMIC RTC driver loading...\n");
+ return platform_driver_register(&pmic_rtc_driver_ldm);
+}
+static void __exit pmic_rtc_exit(void)
+{
+ platform_driver_unregister(&pmic_rtc_driver_ldm);
+ pr_debug("PMIC RTC driver successfully unloaded\n");
+}
+
+/*
+ * Module entry points
+ */
+
+subsys_initcall(pmic_rtc_init);
+module_exit(pmic_rtc_exit);
+
+MODULE_DESCRIPTION("Pmic_rtc driver");
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_LICENSE("GPL");
diff --git a/drivers/mxc/pmic/mc13783/pmic_rtc_defs.h b/drivers/mxc/pmic/mc13783/pmic_rtc_defs.h
new file mode 100644
index 000000000000..e20596a932ed
--- /dev/null
+++ b/drivers/mxc/pmic/mc13783/pmic_rtc_defs.h
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+#ifndef __MC13783_RTC_DEFS_H__
+#define __MC13783_RTC_DEFS_H__
+
+/*!
+ * @file mc13783/pmic_rtc_defs.h
+ * @brief This is the internal header of PMIC(mc13783) RTC driver.
+ *
+ * @ingroup PMIC_RTC
+ */
+
+/*
+ * RTC Time
+ */
+#define MC13783_RTCTIME_TIME_LSH 0
+#define MC13783_RTCTIME_TIME_WID 17
+
+/*
+ * RTC Alarm
+ */
+#define MC13783_RTCALARM_TIME_LSH 0
+#define MC13783_RTCALARM_TIME_WID 17
+
+/*
+ * RTC Day
+ */
+#define MC13783_RTCDAY_DAY_LSH 0
+#define MC13783_RTCDAY_DAY_WID 15
+
+/*
+ * RTC Day alarm
+ */
+#define MC13783_RTCALARM_DAY_LSH 0
+#define MC13783_RTCALARM_DAY_WID 15
+
+#endif /* __MC13783_RTC_DEFS_H__ */
diff --git a/drivers/mxc/pmic/mc13892/Kconfig b/drivers/mxc/pmic/mc13892/Kconfig
new file mode 100644
index 000000000000..930e06ab2282
--- /dev/null
+++ b/drivers/mxc/pmic/mc13892/Kconfig
@@ -0,0 +1,48 @@
+#
+# PMIC Modules configuration
+#
+
+config MXC_MC13892_ADC
+ tristate "MC13892 ADC support"
+ depends on MXC_PMIC_MC13892
+ ---help---
+ This is the MC13892 ADC module driver. This module provides kernel API
+ for the ADC system of MC13892.
+ It controls also the touch screen interface.
+ If you want MC13892 ADC support, you should say Y here
+
+config MXC_MC13892_RTC
+ tristate "MC13892 Real Time Clock (RTC) support"
+ depends on MXC_PMIC_MC13892
+ ---help---
+ This is the MC13892 RTC module driver. This module provides kernel API
+ for RTC part of MC13892.
+ If you want MC13892 RTC support, you should say Y here
+config MXC_MC13892_LIGHT
+ tristate "MC13892 Light and Backlight support"
+ depends on MXC_PMIC_MC13892
+ ---help---
+ This is the MC13892 Light module driver. This module provides kernel API
+ for led and backlight control part of MC13892.
+ If you want MC13892 Light support, you should say Y here
+config MXC_MC13892_BATTERY
+ tristate "MC13892 Battery API support"
+ depends on MXC_PMIC_MC13892
+ ---help---
+ This is the MC13892 battery module driver. This module provides kernel API
+ for battery control part of MC13892.
+ If you want MC13892 battery support, you should say Y here
+config MXC_MC13892_CONNECTIVITY
+ tristate "MC13892 Connectivity API support"
+ depends on MXC_PMIC_MC13892
+ ---help---
+ This is the MC13892 connectivity module driver. This module provides kernel API
+ for USB/RS232 connectivity control part of MC13892.
+ If you want MC13892 connectivity support, you should say Y here
+config MXC_MC13892_POWER
+ tristate "MC13892 Power API support"
+ depends on MXC_PMIC_MC13892
+ ---help---
+ This is the MC13892 power and supplies module driver. This module provides kernel API
+ for power and regulator control part of MC13892.
+ If you want MC13892 power support, you should say Y here
diff --git a/drivers/mxc/pmic/mc13892/Makefile b/drivers/mxc/pmic/mc13892/Makefile
new file mode 100644
index 000000000000..0ed2b7eb4c11
--- /dev/null
+++ b/drivers/mxc/pmic/mc13892/Makefile
@@ -0,0 +1,10 @@
+#
+# Makefile for the mc13783 pmic drivers.
+#
+
+obj-$(CONFIG_MXC_MC13892_ADC) += pmic_adc.o
+#obj-$(CONFIG_MXC_MC13892_RTC) += pmic_rtc.o
+obj-$(CONFIG_MXC_MC13892_LIGHT) += pmic_light.o
+obj-$(CONFIG_MXC_MC13892_BATTERY) += pmic_battery.o
+#obj-$(CONFIG_MXC_MC13892_CONNECTIVITY) += pmic_convity.o
+#obj-$(CONFIG_MXC_MC13892_POWER) += pmic_power.o
diff --git a/drivers/mxc/pmic/mc13892/pmic_adc.c b/drivers/mxc/pmic/mc13892/pmic_adc.c
new file mode 100644
index 000000000000..c0f0f069b902
--- /dev/null
+++ b/drivers/mxc/pmic/mc13892/pmic_adc.c
@@ -0,0 +1,1073 @@
+/*
+ * Copyright 2008-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+#include <linux/platform_device.h>
+#include <linux/poll.h>
+#include <linux/sched.h>
+#include <linux/time.h>
+#include <linux/delay.h>
+#include <linux/wait.h>
+#include <linux/device.h>
+
+#include <linux/pmic_adc.h>
+#include <linux/pmic_status.h>
+
+#include "../core/pmic.h"
+
+#define DEF_ADC_0 0x008000
+#define DEF_ADC_3 0x0001c0
+
+#define ADC_NB_AVAILABLE 2
+
+#define MAX_CHANNEL 7
+
+#define MC13892_ADC0_TS_M_LSH 14
+#define MC13892_ADC0_TS_M_WID 3
+
+/*
+ * Maximun allowed variation in the three X/Y co-ordinates acquired from
+ * touch-screen
+ */
+#define DELTA_Y_MAX 50
+#define DELTA_X_MAX 50
+
+/*
+ * ADC 0
+ */
+#define ADC_CHRGICON 0x000002
+#define ADC_WAIT_TSI_0 0x001400
+
+#define ADC_INC 0x030000
+#define ADC_BIS 0x800000
+#define ADC_CHRGRAW_D5 0x008000
+
+/*
+ * ADC 1
+ */
+
+#define ADC_EN 0x000001
+#define ADC_SGL_CH 0x000002
+#define ADC_ADCCAL 0x000004
+#define ADC_ADSEL 0x000008
+#define ADC_TRIGMASK 0x000010
+#define ADC_CH_0_POS 5
+#define ADC_CH_0_MASK 0x0000E0
+#define ADC_CH_1_POS 8
+#define ADC_CH_1_MASK 0x000700
+#define ADC_DELAY_POS 11
+#define ADC_DELAY_MASK 0x07F800
+#define ADC_ATO 0x080000
+#define ASC_ADC 0x100000
+#define ADC_WAIT_TSI_1 0x200001
+#define ADC_NO_ADTRIG 0x200000
+
+/*
+ * ADC 2 - 4
+ */
+#define ADD1_RESULT_MASK 0x00000FFC
+#define ADD2_RESULT_MASK 0x00FFC000
+#define ADC_TS_MASK 0x00FFCFFC
+
+#define ADC_WCOMP 0x040000
+#define ADC_WCOMP_H_POS 0
+#define ADC_WCOMP_L_POS 9
+#define ADC_WCOMP_H_MASK 0x00003F
+#define ADC_WCOMP_L_MASK 0x007E00
+
+#define ADC_MODE_MASK 0x00003F
+
+#define ADC_INT_BISDONEI 0x02
+#define ADC_TSMODE_MASK 0x007000
+
+typedef enum adc_state {
+ ADC_FREE,
+ ADC_USED,
+ ADC_MONITORING,
+} t_adc_state;
+
+typedef enum reading_mode {
+ /*!
+ * Enables lithium cell reading
+ */
+ M_LITHIUM_CELL = 0x000001,
+ /*!
+ * Enables charge current reading
+ */
+ M_CHARGE_CURRENT = 0x000002,
+ /*!
+ * Enables battery current reading
+ */
+ M_BATTERY_CURRENT = 0x000004,
+} t_reading_mode;
+
+typedef struct {
+ /*!
+ * Delay before first conversion
+ */
+ unsigned int delay;
+ /*!
+ * sets the ATX bit for delay on all conversion
+ */
+ bool conv_delay;
+ /*!
+ * Sets the single channel mode
+ */
+ bool single_channel;
+ /*!
+ * Channel selection 1
+ */
+ t_channel channel_0;
+ /*!
+ * Channel selection 2
+ */
+ t_channel channel_1;
+ /*!
+ * Used to configure ADC mode with t_reading_mode
+ */
+ t_reading_mode read_mode;
+ /*!
+ * Sets the Touch screen mode
+ */
+ bool read_ts;
+ /*!
+ * Wait TSI event before touch screen reading
+ */
+ bool wait_tsi;
+ /*!
+ * Sets CHRGRAW scaling to divide by 5
+ * Only supported on 2.0 and higher
+ */
+ bool chrgraw_devide_5;
+ /*!
+ * Return ADC values
+ */
+ unsigned int value[8];
+ /*!
+ * Return touch screen values
+ */
+ t_touch_screen ts_value;
+} t_adc_param;
+
+static int pmic_adc_filter(t_touch_screen *ts_curr);
+int mc13892_adc_request(bool read_ts);
+int mc13892_adc_release(int adc_index);
+t_reading_mode mc13892_set_read_mode(t_channel channel);
+PMIC_STATUS mc13892_adc_read_ts(t_touch_screen *touch_sample, int wait_tsi);
+
+/* internal function */
+static void callback_tsi(void *);
+static void callback_adcdone(void *);
+static void callback_adcbisdone(void *);
+
+static int swait;
+
+static int suspend_flag;
+
+static wait_queue_head_t suspendq;
+
+/* EXPORTED FUNCTIONS */
+EXPORT_SYMBOL(pmic_adc_init);
+EXPORT_SYMBOL(pmic_adc_deinit);
+EXPORT_SYMBOL(pmic_adc_convert);
+EXPORT_SYMBOL(pmic_adc_convert_8x);
+EXPORT_SYMBOL(pmic_adc_set_touch_mode);
+EXPORT_SYMBOL(pmic_adc_get_touch_mode);
+EXPORT_SYMBOL(pmic_adc_get_touch_sample);
+
+static DECLARE_COMPLETION(adcdone_it);
+static DECLARE_COMPLETION(adcbisdone_it);
+static DECLARE_COMPLETION(adc_tsi);
+static pmic_event_callback_t tsi_event;
+static pmic_event_callback_t event_adc;
+static pmic_event_callback_t event_adc_bis;
+static bool data_ready_adc_1;
+static bool data_ready_adc_2;
+static bool adc_ts;
+static bool wait_ts;
+static bool monitor_en;
+static bool monitor_adc;
+static DECLARE_MUTEX(convert_mutex);
+
+static DECLARE_WAIT_QUEUE_HEAD(queue_adc_busy);
+static t_adc_state adc_dev[2];
+
+static unsigned channel_num[] = {
+ 0,
+ 1,
+ 3,
+ 4,
+ 2,
+ 0,
+ 1,
+ 3,
+ 4,
+ -1,
+ 5,
+ 6,
+ 7,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+};
+
+static bool pmic_adc_ready;
+
+int is_pmic_adc_ready()
+{
+ return pmic_adc_ready;
+}
+EXPORT_SYMBOL(is_pmic_adc_ready);
+
+
+static int pmic_adc_suspend(struct platform_device *pdev, pm_message_t state)
+{
+ suspend_flag = 1;
+ CHECK_ERROR(pmic_write_reg(REG_ADC0, DEF_ADC_0, PMIC_ALL_BITS));
+ CHECK_ERROR(pmic_write_reg(REG_ADC1, 0, PMIC_ALL_BITS));
+ CHECK_ERROR(pmic_write_reg(REG_ADC2, 0, PMIC_ALL_BITS));
+ CHECK_ERROR(pmic_write_reg(REG_ADC3, DEF_ADC_3, PMIC_ALL_BITS));
+ CHECK_ERROR(pmic_write_reg(REG_ADC4, 0, PMIC_ALL_BITS));
+
+ return 0;
+};
+
+static int pmic_adc_resume(struct platform_device *pdev)
+{
+ /* nothing for mc13892 adc */
+ unsigned int adc_0_reg, adc_1_reg, reg_mask;
+ suspend_flag = 0;
+
+ /* let interrupt of TSI again */
+ adc_0_reg = ADC_WAIT_TSI_0;
+ reg_mask = ADC_WAIT_TSI_0;
+ CHECK_ERROR(pmic_write_reg(REG_ADC0, adc_0_reg, reg_mask));
+ adc_1_reg = ADC_WAIT_TSI_1 | (ADC_BIS * adc_ts);
+ CHECK_ERROR(pmic_write_reg(REG_ADC1, adc_1_reg, PMIC_ALL_BITS));
+
+ while (swait > 0) {
+ swait--;
+ wake_up_interruptible(&suspendq);
+ }
+
+ return 0;
+};
+
+static void callback_tsi(void *unused)
+{
+ pr_debug("*** TSI IT mc13892 PMIC_ADC_GET_TOUCH_SAMPLE ***\n");
+ if (wait_ts) {
+ complete(&adc_tsi);
+ pmic_event_mask(EVENT_TSI);
+ }
+}
+
+static void callback_adcdone(void *unused)
+{
+ if (data_ready_adc_1)
+ complete(&adcdone_it);
+}
+
+static void callback_adcbisdone(void *unused)
+{
+ pr_debug("* adcdone bis it callback *\n");
+ if (data_ready_adc_2)
+ complete(&adcbisdone_it);
+}
+
+static int pmic_adc_filter(t_touch_screen *ts_curr)
+{
+ unsigned int ydiff, xdiff;
+ unsigned int sample_sumx, sample_sumy;
+
+ if (ts_curr->contact_resistance == 0) {
+ ts_curr->x_position = 0;
+ ts_curr->y_position = 0;
+ return 0;
+ }
+
+ ydiff = abs(ts_curr->y_position1 - ts_curr->y_position2);
+ if (ydiff > DELTA_Y_MAX) {
+ pr_debug("pmic_adc_filter: Ret pos y\n");
+ return -1;
+ }
+
+ xdiff = abs(ts_curr->x_position1 - ts_curr->x_position2);
+ if (xdiff > DELTA_X_MAX) {
+ pr_debug("mc13892_adc_filter: Ret pos x\n");
+ return -1;
+ }
+
+ sample_sumx = ts_curr->x_position1 + ts_curr->x_position2;
+ sample_sumy = ts_curr->y_position1 + ts_curr->y_position2;
+
+ ts_curr->y_position = sample_sumy / 2;
+ ts_curr->x_position = sample_sumx / 2;
+
+ return 0;
+}
+
+int pmic_adc_init(void)
+{
+ unsigned int reg_value = 0, i = 0;
+
+ if (suspend_flag == 1)
+ return -EBUSY;
+
+ for (i = 0; i < ADC_NB_AVAILABLE; i++)
+ adc_dev[i] = ADC_FREE;
+
+ CHECK_ERROR(pmic_write_reg(REG_ADC0, DEF_ADC_0, PMIC_ALL_BITS));
+ CHECK_ERROR(pmic_write_reg(REG_ADC1, 0, PMIC_ALL_BITS));
+ CHECK_ERROR(pmic_write_reg(REG_ADC2, 0, PMIC_ALL_BITS));
+ CHECK_ERROR(pmic_write_reg(REG_ADC3, DEF_ADC_3, PMIC_ALL_BITS));
+ CHECK_ERROR(pmic_write_reg(REG_ADC4, 0, PMIC_ALL_BITS));
+ reg_value = 0x001000;
+
+ data_ready_adc_1 = false;
+ data_ready_adc_2 = false;
+ adc_ts = false;
+ wait_ts = false;
+ monitor_en = false;
+ monitor_adc = false;
+
+ /* sub to ADCDone IT */
+ event_adc.param = NULL;
+ event_adc.func = callback_adcdone;
+ CHECK_ERROR(pmic_event_subscribe(EVENT_ADCDONEI, event_adc));
+
+ /* sub to ADCDoneBis IT */
+ event_adc_bis.param = NULL;
+ event_adc_bis.func = callback_adcbisdone;
+ CHECK_ERROR(pmic_event_subscribe(EVENT_ADCBISDONEI, event_adc_bis));
+
+ /* sub to Touch Screen IT */
+ tsi_event.param = NULL;
+ tsi_event.func = callback_tsi;
+ CHECK_ERROR(pmic_event_subscribe(EVENT_TSI, tsi_event));
+
+ return PMIC_SUCCESS;
+}
+
+PMIC_STATUS pmic_adc_deinit(void)
+{
+ CHECK_ERROR(pmic_event_unsubscribe(EVENT_ADCDONEI, event_adc));
+ CHECK_ERROR(pmic_event_unsubscribe(EVENT_ADCBISDONEI, event_adc_bis));
+ CHECK_ERROR(pmic_event_unsubscribe(EVENT_TSI, tsi_event));
+
+ return PMIC_SUCCESS;
+}
+
+int mc13892_adc_init_param(t_adc_param *adc_param)
+{
+ int i = 0;
+
+ if (suspend_flag == 1)
+ return -EBUSY;
+
+ adc_param->delay = 0;
+ adc_param->conv_delay = false;
+ adc_param->single_channel = false;
+ adc_param->channel_0 = BATTERY_VOLTAGE;
+ adc_param->channel_1 = BATTERY_VOLTAGE;
+ adc_param->read_mode = 0;
+ adc_param->wait_tsi = 0;
+ adc_param->chrgraw_devide_5 = true;
+ adc_param->read_ts = false;
+ adc_param->ts_value.x_position = 0;
+ adc_param->ts_value.y_position = 0;
+ adc_param->ts_value.contact_resistance = 0;
+ for (i = 0; i <= MAX_CHANNEL; i++)
+ adc_param->value[i] = 0;
+
+ return 0;
+}
+
+PMIC_STATUS mc13892_adc_convert(t_adc_param *adc_param)
+{
+ bool use_bis = false;
+ unsigned int adc_0_reg = 0, adc_1_reg = 0, result_reg = 0, i = 0;
+ unsigned int result = 0, temp = 0;
+ pmic_version_t mc13892_ver;
+ int ret;
+
+ pr_debug("mc13892 ADC - mc13892_adc_convert ....\n");
+ if (suspend_flag == 1)
+ return -EBUSY;
+
+ if (adc_param->wait_tsi) {
+ /* configure adc to wait tsi interrupt */
+ INIT_COMPLETION(adc_tsi);
+
+ /*for ts don't use bis */
+ /*put ts in interrupt mode */
+ /* still kep reference? */
+ adc_0_reg = 0x001400 | (ADC_BIS * 0);
+ pmic_event_unmask(EVENT_TSI);
+ CHECK_ERROR(pmic_write_reg(REG_ADC0, adc_0_reg, PMIC_ALL_BITS));
+ /*for ts don't use bis */
+ adc_1_reg = 0x200001 | (ADC_BIS * 0);
+ CHECK_ERROR(pmic_write_reg(REG_ADC1, adc_1_reg, PMIC_ALL_BITS));
+ pr_debug("wait tsi ....\n");
+ wait_ts = true;
+ wait_for_completion_interruptible(&adc_tsi);
+ wait_ts = false;
+ }
+ down(&convert_mutex);
+ use_bis = mc13892_adc_request(adc_param->read_ts);
+ if (use_bis < 0) {
+ pr_debug("process has received a signal and got interrupted\n");
+ ret = -EINTR;
+ goto out_up_convert_mutex;
+ }
+
+ /* CONFIGURE ADC REG 0 */
+ adc_0_reg = 0;
+ adc_1_reg = 0;
+ if (adc_param->read_ts == false) {
+ adc_0_reg = adc_param->read_mode & 0x00003F;
+ /* add auto inc */
+ adc_0_reg |= ADC_INC;
+ if (use_bis) {
+ /* add adc bis */
+ adc_0_reg |= ADC_BIS;
+ }
+ mc13892_ver = pmic_get_version();
+ if (mc13892_ver.revision >= 20)
+ if (adc_param->chrgraw_devide_5)
+ adc_0_reg |= ADC_CHRGRAW_D5;
+
+ if (adc_param->single_channel)
+ adc_1_reg |= ADC_SGL_CH;
+
+ if (adc_param->conv_delay)
+ adc_1_reg |= ADC_ATO;
+
+ if (adc_param->single_channel)
+ adc_1_reg |= ADC_SGL_CH;
+
+ adc_1_reg |= (adc_param->channel_0 << ADC_CH_0_POS) &
+ ADC_CH_0_MASK;
+ adc_1_reg |= (adc_param->channel_1 << ADC_CH_1_POS) &
+ ADC_CH_1_MASK;
+ } else {
+ adc_0_reg = 0x002400 | (ADC_BIS * use_bis) | ADC_INC;
+ }
+
+ if (adc_param->channel_0 == channel_num[CHARGE_CURRENT])
+ adc_0_reg |= ADC_CHRGICON;
+
+ /*Change has been made here */
+ ret = pmic_write_reg(REG_ADC0, adc_0_reg,
+ ADC_INC | ADC_BIS | ADC_CHRGRAW_D5 | 0xfff00ff);
+ if (ret != PMIC_SUCCESS) {
+ pr_debug("pmic_write_reg");
+ goto out_mc13892_adc_release;
+ }
+
+ /* CONFIGURE ADC REG 1 */
+ if (adc_param->read_ts == false) {
+ adc_1_reg |= ADC_NO_ADTRIG;
+ adc_1_reg |= ADC_EN;
+ adc_1_reg |= (adc_param->delay << ADC_DELAY_POS) &
+ ADC_DELAY_MASK;
+ if (use_bis)
+ adc_1_reg |= ADC_BIS;
+ } else {
+ /* configure and start convert to read x and y position */
+ /* configure to read 2 value in channel selection 1 & 2 */
+ adc_1_reg = 0x100409 | (ADC_BIS * use_bis) | ADC_NO_ADTRIG;
+ /* set ATOx = 5, it could be better for ts ADC */
+ adc_1_reg |= 0x002800;
+ }
+
+ if (adc_param->channel_0 == channel_num[CHARGE_CURRENT]) {
+ adc_param->channel_1 = channel_num[CHARGE_CURRENT];
+ adc_1_reg &= ~(ADC_CH_0_MASK | ADC_CH_1_MASK | ADC_NO_ADTRIG |
+ ADC_TRIGMASK | ADC_EN | ADC_SGL_CH | ADC_ADCCAL);
+ adc_1_reg |= ((adc_param->channel_0 << ADC_CH_0_POS) |
+ (adc_param->channel_1 << ADC_CH_1_POS));
+ adc_1_reg |= (ADC_EN | ADC_SGL_CH | ADC_ADCCAL);
+
+ if (use_bis == 0) {
+ CHECK_ERROR(pmic_write_reg(REG_ADC1, adc_1_reg,
+ 0xFFFFFF));
+ } else {
+ CHECK_ERROR(pmic_write_reg(REG_ADC1, adc_1_reg,
+ 0xFFFFFF));
+ temp = 0x800000;
+ CHECK_ERROR(pmic_write_reg(REG_ADC3, temp, 0xFFFFFF));
+ }
+
+ adc_1_reg &= ~(ADC_NO_ADTRIG | ASC_ADC | ADC_ADCCAL);
+ adc_1_reg |= (ADC_NO_ADTRIG | ASC_ADC);
+ if (use_bis == 0) {
+ data_ready_adc_1 = true;
+ INIT_COMPLETION(adcdone_it);
+ CHECK_ERROR(pmic_write_reg(REG_ADC1, adc_1_reg,
+ 0xFFFFFF));
+ pr_debug("wait adc done\n");
+ wait_for_completion_interruptible(&adcdone_it);
+ data_ready_adc_1 = false;
+ } else {
+ data_ready_adc_2 = true;
+ INIT_COMPLETION(adcbisdone_it);
+ CHECK_ERROR(pmic_write_reg(REG_ADC1, adc_1_reg,
+ 0xFFFFFF));
+ temp = 0x800000;
+ CHECK_ERROR(pmic_write_reg(REG_ADC3, temp, 0xFFFFFF));
+ pr_debug("wait adc done bis\n");
+ wait_for_completion_interruptible(&adcbisdone_it);
+ data_ready_adc_2 = false;
+ }
+ } else {
+ if (use_bis == 0) {
+ data_ready_adc_1 = false;
+ adc_1_reg |= ASC_ADC;
+ data_ready_adc_1 = true;
+ pr_debug("Write Reg %i = %x\n", REG_ADC1, adc_1_reg);
+ INIT_COMPLETION(adcdone_it);
+ ret = pmic_write_reg(REG_ADC1, adc_1_reg,
+ ADC_SGL_CH | ADC_ATO |
+ ADC_ADSEL | ADC_CH_0_MASK |
+ ADC_CH_1_MASK |
+ ADC_NO_ADTRIG | ADC_EN |
+ ADC_DELAY_MASK | ASC_ADC |
+ ADC_BIS);
+ if (ret != PMIC_SUCCESS) {
+ pr_debug("pmic_write_reg");
+ goto out_mc13892_adc_release;
+ }
+
+ pr_debug("wait adc done\n");
+ wait_for_completion_interruptible(&adcdone_it);
+ data_ready_adc_1 = false;
+ } else {
+ data_ready_adc_2 = false;
+ adc_1_reg |= ASC_ADC;
+ data_ready_adc_2 = true;
+ INIT_COMPLETION(adcbisdone_it);
+ ret = pmic_write_reg(REG_ADC1, adc_1_reg, 0xFFFFFF);
+ if (ret != PMIC_SUCCESS) {
+ pr_debug("pmic_write_reg");
+ goto out_mc13892_adc_release;
+ }
+
+ temp = 0x800000;
+ ret = pmic_write_reg(REG_ADC3, temp, 0xFFFFFF);
+ if (ret != PMIC_SUCCESS) {
+ pr_info("pmic_write_reg");
+ goto out_mc13892_adc_release;
+ }
+
+ pr_debug("wait adc done bis\n");
+ wait_for_completion_interruptible(&adcbisdone_it);
+ data_ready_adc_2 = false;
+ }
+ }
+
+ /* read result and store in adc_param */
+ result = 0;
+ if (use_bis == 0)
+ result_reg = REG_ADC2;
+ else
+ result_reg = REG_ADC4;
+
+ ret = pmic_write_reg(REG_ADC1, 4 << ADC_CH_1_POS,
+ ADC_CH_0_MASK | ADC_CH_1_MASK);
+ if (ret != PMIC_SUCCESS) {
+ pr_debug("pmic_write_reg");
+ goto out_mc13892_adc_release;
+ }
+
+ for (i = 0; i <= 3; i++) {
+ ret = pmic_read_reg(result_reg, &result, PMIC_ALL_BITS);
+ if (ret != PMIC_SUCCESS) {
+ pr_debug("pmic_write_reg");
+ goto out_mc13892_adc_release;
+ }
+
+ adc_param->value[i] = ((result & ADD1_RESULT_MASK) >> 2);
+ adc_param->value[i + 4] = ((result & ADD2_RESULT_MASK) >> 14);
+ pr_debug("value[%d] = %d, value[%d] = %d\n",
+ i, adc_param->value[i],
+ i + 4, adc_param->value[i + 4]);
+ }
+ if (adc_param->read_ts) {
+ adc_param->ts_value.x_position = adc_param->value[0];
+ adc_param->ts_value.x_position1 = adc_param->value[0];
+ adc_param->ts_value.x_position2 = adc_param->value[1];
+ adc_param->ts_value.y_position = adc_param->value[3];
+ adc_param->ts_value.y_position1 = adc_param->value[3];
+ adc_param->ts_value.y_position2 = adc_param->value[4];
+ adc_param->ts_value.contact_resistance = adc_param->value[6];
+ ret = pmic_write_reg(REG_ADC0, 0x0, ADC_TSMODE_MASK);
+ if (ret != PMIC_SUCCESS) {
+ pr_debug("pmic_write_reg");
+ goto out_mc13892_adc_release;
+ }
+ }
+
+ /*if (adc_param->read_ts) {
+ adc_param->ts_value.x_position = adc_param->value[2];
+ adc_param->ts_value.y_position = adc_param->value[5];
+ adc_param->ts_value.contact_resistance = adc_param->value[6];
+ } */
+ ret = PMIC_SUCCESS;
+out_mc13892_adc_release:
+ mc13892_adc_release(use_bis);
+out_up_convert_mutex:
+ up(&convert_mutex);
+
+ return ret;
+}
+
+t_reading_mode mc13892_set_read_mode(t_channel channel)
+{
+ t_reading_mode read_mode = 0;
+
+ switch (channel) {
+ case CHARGE_CURRENT:
+ read_mode = M_CHARGE_CURRENT;
+ break;
+ case BATTERY_CURRENT:
+ read_mode = M_BATTERY_CURRENT;
+ break;
+ default:
+ read_mode = 0;
+ }
+
+ return read_mode;
+}
+
+PMIC_STATUS pmic_adc_convert(t_channel channel, unsigned short *result)
+{
+ t_adc_param adc_param;
+ PMIC_STATUS ret;
+ unsigned int i;
+
+ if (suspend_flag == 1)
+ return -EBUSY;
+
+ channel = channel_num[channel];
+ if (channel == -1) {
+ pr_debug("Wrong channel ID\n");
+ return PMIC_PARAMETER_ERROR;
+ }
+ mc13892_adc_init_param(&adc_param);
+ pr_debug("pmic_adc_convert\n");
+ adc_param.read_ts = false;
+ adc_param.single_channel = true;
+ adc_param.read_mode = mc13892_set_read_mode(channel);
+
+ /* Find the group */
+ if (channel <= 7)
+ adc_param.channel_0 = channel;
+ else
+ return PMIC_PARAMETER_ERROR;
+
+ ret = mc13892_adc_convert(&adc_param);
+ for (i = 0; i <= 7; i++)
+ result[i] = adc_param.value[i];
+
+ return ret;
+}
+
+PMIC_STATUS pmic_adc_convert_8x(t_channel channel, unsigned short *result)
+{
+ t_adc_param adc_param;
+ int i;
+ PMIC_STATUS ret;
+ if (suspend_flag == 1)
+ return -EBUSY;
+
+ channel = channel_num[channel];
+
+ if (channel == -1) {
+ pr_debug("Wrong channel ID\n");
+ return PMIC_PARAMETER_ERROR;
+ }
+ mc13892_adc_init_param(&adc_param);
+ pr_debug("pmic_adc_convert_8x\n");
+ adc_param.read_ts = false;
+ adc_param.single_channel = true;
+ adc_param.read_mode = mc13892_set_read_mode(channel);
+
+ if (channel <= 7) {
+ adc_param.channel_0 = channel;
+ adc_param.channel_1 = channel;
+ } else
+ return PMIC_PARAMETER_ERROR;
+
+ ret = mc13892_adc_convert(&adc_param);
+ for (i = 0; i <= 7; i++)
+ result[i] = adc_param.value[i];
+
+ return ret;
+}
+
+PMIC_STATUS pmic_adc_set_touch_mode(t_touch_mode touch_mode)
+{
+ if (suspend_flag == 1)
+ return -EBUSY;
+
+ CHECK_ERROR(pmic_write_reg(REG_ADC0,
+ BITFVAL(MC13892_ADC0_TS_M, touch_mode),
+ BITFMASK(MC13892_ADC0_TS_M)));
+ return PMIC_SUCCESS;
+}
+
+PMIC_STATUS pmic_adc_get_touch_mode(t_touch_mode *touch_mode)
+{
+ unsigned int value;
+ if (suspend_flag == 1)
+ return -EBUSY;
+
+ CHECK_ERROR(pmic_read_reg(REG_ADC0, &value, PMIC_ALL_BITS));
+
+ *touch_mode = BITFEXT(value, MC13892_ADC0_TS_M);
+
+ return PMIC_SUCCESS;
+}
+
+PMIC_STATUS pmic_adc_get_touch_sample(t_touch_screen *touch_sample, int wait)
+{
+ if (mc13892_adc_read_ts(touch_sample, wait) != 0)
+ return PMIC_ERROR;
+ if (0 == pmic_adc_filter(touch_sample))
+ return PMIC_SUCCESS;
+ else
+ return PMIC_ERROR;
+}
+
+PMIC_STATUS mc13892_adc_read_ts(t_touch_screen *ts_value, int wait_tsi)
+{
+ t_adc_param param;
+ pr_debug("mc13892_adc : mc13892_adc_read_ts\n");
+ if (suspend_flag == 1)
+ return -EBUSY;
+
+ if (wait_ts) {
+ pr_debug("mc13892_adc : error TS busy \n");
+ return PMIC_ERROR;
+ }
+ mc13892_adc_init_param(&param);
+ param.wait_tsi = wait_tsi;
+ param.read_ts = true;
+ if (mc13892_adc_convert(&param) != 0)
+ return PMIC_ERROR;
+ /* check if x-y is ok */
+ if (param.ts_value.contact_resistance < 1000) {
+ ts_value->x_position = param.ts_value.x_position;
+ ts_value->x_position1 = param.ts_value.x_position1;
+ ts_value->x_position2 = param.ts_value.x_position2;
+
+ ts_value->y_position = param.ts_value.y_position;
+ ts_value->y_position1 = param.ts_value.y_position1;
+ ts_value->y_position2 = param.ts_value.y_position2;
+
+ ts_value->contact_resistance =
+ param.ts_value.contact_resistance + 1;
+
+ } else {
+ ts_value->x_position = 0;
+ ts_value->y_position = 0;
+ ts_value->contact_resistance = 0;
+
+ }
+ return PMIC_SUCCESS;
+}
+
+int mc13892_adc_request(bool read_ts)
+{
+ int adc_index = -1;
+ if (read_ts != 0) {
+ /*for ts we use bis=0 */
+ if (adc_dev[0] == ADC_USED)
+ return -1;
+ /*no wait here */
+ adc_dev[0] = ADC_USED;
+ adc_index = 0;
+ } else {
+ /*for other adc use bis = 1 */
+ if (adc_dev[1] == ADC_USED) {
+ return -1;
+ /*no wait here */
+ }
+ adc_dev[1] = ADC_USED;
+ adc_index = 1;
+ }
+ pr_debug("mc13892_adc : request ADC %d\n", adc_index);
+ return adc_index;
+}
+
+int mc13892_adc_release(int adc_index)
+{
+ while (suspend_flag == 1) {
+ swait++;
+ /* Block if the device is suspended */
+ if (wait_event_interruptible(suspendq, (suspend_flag == 0)))
+ return -ERESTARTSYS;
+ }
+
+ pr_debug("mc13892_adc : release ADC %d\n", adc_index);
+ if ((adc_dev[adc_index] == ADC_MONITORING) ||
+ (adc_dev[adc_index] == ADC_USED)) {
+ adc_dev[adc_index] = ADC_FREE;
+ wake_up(&queue_adc_busy);
+ return 0;
+ }
+ return -1;
+}
+
+#ifdef DEBUG
+static t_adc_param adc_param_db;
+
+static ssize_t adc_info(struct device *dev, struct device_attribute *attr,
+ char *buf)
+{
+ int *value = adc_param_db.value;
+
+ pr_debug("adc_info\n");
+
+ pr_debug("ch0\t\t%d\n", adc_param_db.channel_0);
+ pr_debug("ch1\t\t%d\n", adc_param_db.channel_1);
+ pr_debug("d5\t\t%d\n", adc_param_db.chrgraw_devide_5);
+ pr_debug("conv delay\t%d\n", adc_param_db.conv_delay);
+ pr_debug("delay\t\t%d\n", adc_param_db.delay);
+ pr_debug("read mode\t%d\n", adc_param_db.read_mode);
+ pr_debug("read ts\t\t%d\n", adc_param_db.read_ts);
+ pr_debug("single ch\t%d\n", adc_param_db.single_channel);
+ pr_debug("wait ts int\t%d\n", adc_param_db.wait_tsi);
+ pr_debug("value0-3:\t%d\t%d\t%d\t%d\n", value[0], value[1],
+ value[2], value[3]);
+ pr_debug("value4-7:\t%d\t%d\t%d\t%d\n", value[4], value[5],
+ value[6], value[7]);
+
+ return 0;
+}
+
+enum {
+ ADC_SET_CH0 = 0,
+ ADC_SET_CH1,
+ ADC_SET_DV5,
+ ADC_SET_CON_DELAY,
+ ADC_SET_DELAY,
+ ADC_SET_RM,
+ ADC_SET_RT,
+ ADC_SET_S_CH,
+ ADC_SET_WAIT_TS,
+ ADC_INIT_P,
+ ADC_START,
+ ADC_TS,
+ ADC_TS_READ,
+ ADC_TS_CAL,
+ ADC_CMD_MAX
+};
+
+static const char *const adc_cmd[ADC_CMD_MAX] = {
+ [ADC_SET_CH0] = "ch0",
+ [ADC_SET_CH1] = "ch1",
+ [ADC_SET_DV5] = "dv5",
+ [ADC_SET_CON_DELAY] = "cd",
+ [ADC_SET_DELAY] = "dl",
+ [ADC_SET_RM] = "rm",
+ [ADC_SET_RT] = "rt",
+ [ADC_SET_S_CH] = "sch",
+ [ADC_SET_WAIT_TS] = "wt",
+ [ADC_INIT_P] = "init",
+ [ADC_START] = "start",
+ [ADC_TS] = "touch",
+ [ADC_TS_READ] = "touchr",
+ [ADC_TS_CAL] = "cal"
+};
+
+static int cmd(unsigned int index, int value)
+{
+ t_touch_screen ts;
+
+ switch (index) {
+ case ADC_SET_CH0:
+ adc_param_db.channel_0 = value;
+ break;
+ case ADC_SET_CH1:
+ adc_param_db.channel_1 = value;
+ break;
+ case ADC_SET_DV5:
+ adc_param_db.chrgraw_devide_5 = value;
+ break;
+ case ADC_SET_CON_DELAY:
+ adc_param_db.conv_delay = value;
+ break;
+ case ADC_SET_RM:
+ adc_param_db.read_mode = value;
+ break;
+ case ADC_SET_RT:
+ adc_param_db.read_ts = value;
+ break;
+ case ADC_SET_S_CH:
+ adc_param_db.single_channel = value;
+ break;
+ case ADC_SET_WAIT_TS:
+ adc_param_db.wait_tsi = value;
+ break;
+ case ADC_INIT_P:
+ mc13892_adc_init_param(&adc_param_db);
+ break;
+ case ADC_START:
+ mc13892_adc_convert(&adc_param_db);
+ break;
+ case ADC_TS:
+ pmic_adc_get_touch_sample(&ts, 1);
+ pr_debug("x = %d\n", ts.x_position);
+ pr_debug("y = %d\n", ts.y_position);
+ pr_debug("p = %d\n", ts.contact_resistance);
+ break;
+ case ADC_TS_READ:
+ pmic_adc_get_touch_sample(&ts, 0);
+ pr_debug("x = %d\n", ts.x_position);
+ pr_debug("y = %d\n", ts.y_position);
+ pr_debug("p = %d\n", ts.contact_resistance);
+ break;
+ case ADC_TS_CAL:
+ break;
+ default:
+ pr_debug("error command\n");
+ break;
+ }
+ return 0;
+}
+
+static ssize_t adc_ctl(struct device *dev, struct device_attribute *attr,
+ const char *buf, size_t count)
+{
+ int state = 0;
+ const char *const *s;
+ char *p, *q;
+ int error;
+ int len, value = 0;
+
+ pr_debug("adc_ctl\n");
+
+ q = NULL;
+ q = memchr(buf, ' ', count);
+
+ if (q != NULL) {
+ len = q - buf;
+ q += 1;
+ value = simple_strtoul(q, NULL, 10);
+ } else {
+ p = memchr(buf, '\n', count);
+ len = p ? p - buf : count;
+ }
+
+ for (s = &adc_cmd[state]; state < ADC_CMD_MAX; s++, state++) {
+ if (*s && !strncmp(buf, *s, len))
+ break;
+ }
+ if (state < ADC_CMD_MAX && *s)
+ error = cmd(state, value);
+ else
+ error = -EINVAL;
+
+ return count;
+}
+
+#else
+static ssize_t adc_info(struct device *dev, struct device_attribute *attr,
+ char *buf)
+{
+ return 0;
+}
+
+static ssize_t adc_ctl(struct device *dev, struct device_attribute *attr,
+ const char *buf, size_t count)
+{
+ return count;
+}
+
+#endif
+
+static DEVICE_ATTR(adc, 0644, adc_info, adc_ctl);
+
+static int pmic_adc_module_probe(struct platform_device *pdev)
+{
+ int ret = 0;
+
+ pr_debug("PMIC ADC start probe\n");
+ ret = device_create_file(&(pdev->dev), &dev_attr_adc);
+ if (ret) {
+ pr_debug("Can't create device file!\n");
+ return -ENODEV;
+ }
+
+ init_waitqueue_head(&suspendq);
+
+ ret = pmic_adc_init();
+ if (ret != PMIC_SUCCESS) {
+ pr_debug("Error in pmic_adc_init.\n");
+ goto rm_dev_file;
+ }
+
+ pmic_adc_ready = 1;
+ pr_debug("PMIC ADC successfully probed\n");
+ return 0;
+
+rm_dev_file:
+ device_remove_file(&(pdev->dev), &dev_attr_adc);
+ return ret;
+}
+
+static int pmic_adc_module_remove(struct platform_device *pdev)
+{
+ pmic_adc_deinit();
+ pmic_adc_ready = 0;
+ pr_debug("PMIC ADC successfully removed\n");
+ return 0;
+}
+
+static struct platform_driver pmic_adc_driver_ldm = {
+ .driver = {
+ .name = "pmic_adc",
+ },
+ .suspend = pmic_adc_suspend,
+ .resume = pmic_adc_resume,
+ .probe = pmic_adc_module_probe,
+ .remove = pmic_adc_module_remove,
+};
+
+static int __init pmic_adc_module_init(void)
+{
+ pr_debug("PMIC ADC driver loading...\n");
+ return platform_driver_register(&pmic_adc_driver_ldm);
+}
+
+static void __exit pmic_adc_module_exit(void)
+{
+ platform_driver_unregister(&pmic_adc_driver_ldm);
+ pr_debug("PMIC ADC driver successfully unloaded\n");
+}
+
+module_init(pmic_adc_module_init);
+module_exit(pmic_adc_module_exit);
+
+MODULE_DESCRIPTION("PMIC ADC device driver");
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_LICENSE("GPL");
diff --git a/drivers/mxc/pmic/mc13892/pmic_battery.c b/drivers/mxc/pmic/mc13892/pmic_battery.c
new file mode 100644
index 000000000000..246bd2731ee4
--- /dev/null
+++ b/drivers/mxc/pmic/mc13892/pmic_battery.c
@@ -0,0 +1,797 @@
+/*
+ * Copyright 2009-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*
+ * Includes
+ */
+#include <linux/workqueue.h>
+#include <linux/platform_device.h>
+#include <linux/power_supply.h>
+#include <linux/delay.h>
+#include <linux/slab.h>
+#include <asm/mach-types.h>
+#include <linux/pmic_battery.h>
+#include <linux/pmic_adc.h>
+#include <linux/pmic_status.h>
+
+#define BIT_CHG_VOL_LSH 0
+#define BIT_CHG_VOL_WID 3
+
+#define BIT_CHG_CURR_LSH 3
+#define BIT_CHG_CURR_WID 4
+
+#define BIT_CHG_PLIM_LSH 15
+#define BIT_CHG_PLIM_WID 2
+
+#define BIT_CHG_DETS_LSH 6
+#define BIT_CHG_DETS_WID 1
+#define BIT_CHG_CURRS_LSH 11
+#define BIT_CHG_CURRS_WID 1
+
+#define TRICKLE_CHG_EN_LSH 7
+#define LOW_POWER_BOOT_ACK_LSH 8
+#define BAT_TH_CHECK_DIS_LSH 9
+#define BATTFET_CTL_EN_LSH 10
+#define BATTFET_CTL_LSH 11
+#define REV_MOD_EN_LSH 13
+#define PLIM_DIS_LSH 17
+#define CHG_LED_EN_LSH 18
+#define RESTART_CHG_STAT_LSH 20
+#define AUTO_CHG_DIS_LSH 21
+#define CYCLING_DIS_LSH 22
+#define VI_PROGRAM_EN_LSH 23
+
+#define TRICKLE_CHG_EN_WID 1
+#define LOW_POWER_BOOT_ACK_WID 1
+#define BAT_TH_CHECK_DIS_WID 1
+#define BATTFET_CTL_EN_WID 1
+#define BATTFET_CTL_WID 1
+#define REV_MOD_EN_WID 1
+#define PLIM_DIS_WID 1
+#define CHG_LED_EN_WID 1
+#define RESTART_CHG_STAT_WID 1
+#define AUTO_CHG_DIS_WID 1
+#define CYCLING_DIS_WID 1
+#define VI_PROGRAM_EN_WID 1
+
+#define ACC_STARTCC_LSH 0
+#define ACC_STARTCC_WID 1
+#define ACC_RSTCC_LSH 1
+#define ACC_RSTCC_WID 1
+#define ACC_CCFAULT_LSH 7
+#define ACC_CCFAULT_WID 7
+#define ACC_CCOUT_LSH 8
+#define ACC_CCOUT_WID 16
+#define ACC1_ONEC_LSH 0
+#define ACC1_ONEC_WID 15
+
+#define ACC_CALIBRATION 0x17
+#define ACC_START_COUNTER 0x07
+#define ACC_STOP_COUNTER 0x2
+#define ACC_CONTROL_BIT_MASK 0x1f
+#define ACC_ONEC_VALUE 2621
+#define ACC_COULOMB_PER_LSB 1
+#define ACC_CALIBRATION_DURATION_MSECS 20
+
+#define BAT_VOLTAGE_UNIT_UV 4692
+#define BAT_CURRENT_UNIT_UA 5870
+#define CHG_VOLTAGE_UINT_UV 23474
+#define CHG_MIN_CURRENT_UA 3500
+
+#define COULOMB_TO_UAH(c) (10000 * c / 36)
+
+enum chg_setting {
+ TRICKLE_CHG_EN,
+ LOW_POWER_BOOT_ACK,
+ BAT_TH_CHECK_DIS,
+ BATTFET_CTL_EN,
+ BATTFET_CTL,
+ REV_MOD_EN,
+ PLIM_DIS,
+ CHG_LED_EN,
+ RESTART_CHG_STAT,
+ AUTO_CHG_DIS,
+ CYCLING_DIS,
+ VI_PROGRAM_EN
+};
+
+/* Flag used to indicate if Charger workaround is active. */
+int chg_wa_is_active;
+/* Flag used to indicate if Charger workaround timer is on. */
+int chg_wa_timer;
+int disable_chg_timer;
+struct workqueue_struct *chg_wq;
+struct delayed_work chg_work;
+
+static int pmic_set_chg_current(unsigned short curr)
+{
+ unsigned int mask;
+ unsigned int value;
+
+ value = BITFVAL(BIT_CHG_CURR, curr);
+ mask = BITFMASK(BIT_CHG_CURR);
+ CHECK_ERROR(pmic_write_reg(REG_CHARGE, value, mask));
+
+ return 0;
+}
+
+static int pmic_set_chg_misc(enum chg_setting type, unsigned short flag)
+{
+
+ unsigned int reg_value = 0;
+ unsigned int mask = 0;
+
+ switch (type) {
+ case TRICKLE_CHG_EN:
+ reg_value = BITFVAL(TRICKLE_CHG_EN, flag);
+ mask = BITFMASK(TRICKLE_CHG_EN);
+ break;
+ case LOW_POWER_BOOT_ACK:
+ reg_value = BITFVAL(LOW_POWER_BOOT_ACK, flag);
+ mask = BITFMASK(LOW_POWER_BOOT_ACK);
+ break;
+ case BAT_TH_CHECK_DIS:
+ reg_value = BITFVAL(BAT_TH_CHECK_DIS, flag);
+ mask = BITFMASK(BAT_TH_CHECK_DIS);
+ break;
+ case BATTFET_CTL_EN:
+ reg_value = BITFVAL(BATTFET_CTL_EN, flag);
+ mask = BITFMASK(BATTFET_CTL_EN);
+ break;
+ case BATTFET_CTL:
+ reg_value = BITFVAL(BATTFET_CTL, flag);
+ mask = BITFMASK(BATTFET_CTL);
+ break;
+ case REV_MOD_EN:
+ reg_value = BITFVAL(REV_MOD_EN, flag);
+ mask = BITFMASK(REV_MOD_EN);
+ break;
+ case PLIM_DIS:
+ reg_value = BITFVAL(PLIM_DIS, flag);
+ mask = BITFMASK(PLIM_DIS);
+ break;
+ case CHG_LED_EN:
+ reg_value = BITFVAL(CHG_LED_EN, flag);
+ mask = BITFMASK(CHG_LED_EN);
+ break;
+ case RESTART_CHG_STAT:
+ reg_value = BITFVAL(RESTART_CHG_STAT, flag);
+ mask = BITFMASK(RESTART_CHG_STAT);
+ break;
+ case AUTO_CHG_DIS:
+ reg_value = BITFVAL(AUTO_CHG_DIS, flag);
+ mask = BITFMASK(AUTO_CHG_DIS);
+ break;
+ case CYCLING_DIS:
+ reg_value = BITFVAL(CYCLING_DIS, flag);
+ mask = BITFMASK(CYCLING_DIS);
+ break;
+ case VI_PROGRAM_EN:
+ reg_value = BITFVAL(VI_PROGRAM_EN, flag);
+ mask = BITFMASK(VI_PROGRAM_EN);
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ CHECK_ERROR(pmic_write_reg(REG_CHARGE, reg_value, mask));
+
+ return 0;
+}
+
+static int pmic_get_batt_voltage(unsigned short *voltage)
+{
+ t_channel channel;
+ unsigned short result[8];
+
+ channel = BATTERY_VOLTAGE;
+ CHECK_ERROR(pmic_adc_convert(channel, result));
+ *voltage = result[0];
+
+ return 0;
+}
+
+static int pmic_get_batt_current(unsigned short *curr)
+{
+ t_channel channel;
+ unsigned short result[8];
+
+ channel = BATTERY_CURRENT;
+ CHECK_ERROR(pmic_adc_convert(channel, result));
+ *curr = result[0];
+
+ return 0;
+}
+
+static int coulomb_counter_calibration;
+static unsigned int coulomb_counter_start_time_msecs;
+
+static int pmic_start_coulomb_counter(void)
+{
+ /* set scaler */
+ CHECK_ERROR(pmic_write_reg(REG_ACC1,
+ ACC_COULOMB_PER_LSB * ACC_ONEC_VALUE, BITFMASK(ACC1_ONEC)));
+
+ CHECK_ERROR(pmic_write_reg(
+ REG_ACC0, ACC_START_COUNTER, ACC_CONTROL_BIT_MASK));
+ coulomb_counter_start_time_msecs = jiffies_to_msecs(jiffies);
+ pr_debug("coulomb counter start time %u\n",
+ coulomb_counter_start_time_msecs);
+ return 0;
+}
+
+static int pmic_stop_coulomb_counter(void)
+{
+ CHECK_ERROR(pmic_write_reg(
+ REG_ACC0, ACC_STOP_COUNTER, ACC_CONTROL_BIT_MASK));
+ return 0;
+}
+
+static int pmic_calibrate_coulomb_counter(void)
+{
+ int ret;
+ unsigned int value;
+
+ /* set scaler */
+ CHECK_ERROR(pmic_write_reg(REG_ACC1,
+ 0x1, BITFMASK(ACC1_ONEC)));
+
+ CHECK_ERROR(pmic_write_reg(
+ REG_ACC0, ACC_CALIBRATION, ACC_CONTROL_BIT_MASK));
+ msleep(ACC_CALIBRATION_DURATION_MSECS);
+
+ ret = pmic_read_reg(REG_ACC0, &value, BITFMASK(ACC_CCOUT));
+ if (ret != 0)
+ return -1;
+ value = BITFEXT(value, ACC_CCOUT);
+ pr_debug("calibrate value = %x\n", value);
+ coulomb_counter_calibration = (int)((s16)((u16) value));
+ pr_debug("coulomb_counter_calibration = %d\n",
+ coulomb_counter_calibration);
+
+ return 0;
+
+}
+
+static int pmic_get_charger_coulomb(int *coulomb)
+{
+ int ret;
+ unsigned int value;
+ int calibration;
+ unsigned int time_diff_msec;
+
+ ret = pmic_read_reg(REG_ACC0, &value, BITFMASK(ACC_CCOUT));
+ if (ret != 0)
+ return -1;
+ value = BITFEXT(value, ACC_CCOUT);
+ pr_debug("counter value = %x\n", value);
+ *coulomb = ((s16)((u16)value)) * ACC_COULOMB_PER_LSB;
+
+ if (abs(*coulomb) >= ACC_COULOMB_PER_LSB) {
+ /* calibrate */
+ time_diff_msec = jiffies_to_msecs(jiffies);
+ time_diff_msec =
+ (time_diff_msec > coulomb_counter_start_time_msecs) ?
+ (time_diff_msec - coulomb_counter_start_time_msecs) :
+ (0xffffffff - coulomb_counter_start_time_msecs
+ + time_diff_msec);
+ calibration = coulomb_counter_calibration * (int)time_diff_msec
+ / (ACC_ONEC_VALUE * ACC_CALIBRATION_DURATION_MSECS);
+ *coulomb -= calibration;
+ }
+
+ return 0;
+}
+
+static int pmic_restart_charging(void)
+{
+ pmic_set_chg_misc(BAT_TH_CHECK_DIS, 1);
+ pmic_set_chg_misc(AUTO_CHG_DIS, 0);
+ pmic_set_chg_misc(VI_PROGRAM_EN, 1);
+ pmic_set_chg_current(0x8);
+ pmic_set_chg_misc(RESTART_CHG_STAT, 1);
+ pmic_set_chg_misc(PLIM_DIS, 3);
+ return 0;
+}
+
+struct mc13892_dev_info {
+ struct device *dev;
+
+ unsigned short voltage_raw;
+ int voltage_uV;
+ unsigned short current_raw;
+ int current_uA;
+ int battery_status;
+ int full_counter;
+ int charger_online;
+ int charger_voltage_uV;
+ int accum_current_uAh;
+
+ struct power_supply bat;
+ struct power_supply charger;
+
+ struct workqueue_struct *monitor_wqueue;
+ struct delayed_work monitor_work;
+};
+
+#define mc13892_SENSER 25
+#define to_mc13892_dev_info(x) container_of((x), struct mc13892_dev_info, \
+ bat);
+
+static enum power_supply_property mc13892_battery_props[] = {
+ POWER_SUPPLY_PROP_VOLTAGE_NOW,
+ POWER_SUPPLY_PROP_CURRENT_NOW,
+ POWER_SUPPLY_PROP_CHARGE_NOW,
+ POWER_SUPPLY_PROP_STATUS,
+};
+
+static enum power_supply_property mc13892_charger_props[] = {
+ POWER_SUPPLY_PROP_ONLINE,
+};
+
+static int pmic_get_chg_value(unsigned int *value)
+{
+ t_channel channel;
+ unsigned short result[8], max1 = 0, min1 = 0, max2 = 0, min2 = 0, i;
+ unsigned int average = 0, average1 = 0, average2 = 0;
+
+ channel = CHARGE_CURRENT;
+ CHECK_ERROR(pmic_adc_convert(channel, result));
+
+
+ for (i = 0; i < 8; i++) {
+ if ((result[i] & 0x200) != 0) {
+ result[i] = 0x400 - result[i];
+ average2 += result[i];
+ if ((max2 == 0) || (max2 < result[i]))
+ max2 = result[i];
+ if ((min2 == 0) || (min2 > result[i]))
+ min2 = result[i];
+ } else {
+ average1 += result[i];
+ if ((max1 == 0) || (max1 < result[i]))
+ max1 = result[i];
+ if ((min1 == 0) || (min1 > result[i]))
+ min1 = result[i];
+ }
+ }
+
+ if (max1 != 0) {
+ average1 -= max1;
+ if (max2 != 0)
+ average2 -= max2;
+ else
+ average1 -= min1;
+ } else
+ average2 -= max2 + min2;
+
+ if (average1 >= average2) {
+ average = (average1 - average2) / 6;
+ *value = average;
+ } else {
+ average = (average2 - average1) / 6;
+ *value = ((~average) + 1) & 0x3FF;
+ }
+
+ return 0;
+}
+
+static void chg_thread(struct work_struct *work)
+{
+ int ret;
+ unsigned int value = 0;
+ int dets;
+
+ if (disable_chg_timer) {
+ disable_chg_timer = 0;
+ pmic_set_chg_current(0x8);
+ queue_delayed_work(chg_wq, &chg_work, 100);
+ chg_wa_timer = 1;
+ return;
+ }
+
+ ret = pmic_read_reg(REG_INT_SENSE0, &value, BITFMASK(BIT_CHG_DETS));
+
+ if (ret == 0) {
+ dets = BITFEXT(value, BIT_CHG_DETS);
+ pr_debug("dets=%d\n", dets);
+
+ if (dets == 1) {
+ pmic_get_chg_value(&value);
+ pr_debug("average value=%d\n", value);
+ if ((value <= 3) | ((value & 0x200) != 0)) {
+ pr_debug("%s: Disable the charger\n", __func__);
+ pmic_set_chg_current(0);
+ disable_chg_timer = 1;
+ }
+
+ queue_delayed_work(chg_wq, &chg_work, 100);
+ chg_wa_timer = 1;
+ }
+ }
+}
+
+static int mc13892_charger_update_status(struct mc13892_dev_info *di)
+{
+ int ret;
+ unsigned int value;
+ int online;
+
+ ret = pmic_read_reg(REG_INT_SENSE0, &value, BITFMASK(BIT_CHG_DETS));
+
+ if (ret == 0) {
+ online = BITFEXT(value, BIT_CHG_DETS);
+ if (online != di->charger_online) {
+ di->charger_online = online;
+ dev_info(di->charger.dev, "charger status: %s\n",
+ online ? "online" : "offline");
+ power_supply_changed(&di->charger);
+
+ cancel_delayed_work(&di->monitor_work);
+ queue_delayed_work(di->monitor_wqueue,
+ &di->monitor_work, HZ / 10);
+ if (online) {
+ pmic_start_coulomb_counter();
+ pmic_restart_charging();
+ queue_delayed_work(chg_wq, &chg_work, 100);
+ chg_wa_timer = 1;
+ } else {
+ cancel_delayed_work(&chg_work);
+ chg_wa_timer = 0;
+ pmic_stop_coulomb_counter();
+ }
+ }
+ }
+
+ return ret;
+}
+
+static int mc13892_charger_get_property(struct power_supply *psy,
+ enum power_supply_property psp,
+ union power_supply_propval *val)
+{
+ struct mc13892_dev_info *di =
+ container_of((psy), struct mc13892_dev_info, charger);
+
+ switch (psp) {
+ case POWER_SUPPLY_PROP_ONLINE:
+ val->intval = di->charger_online;
+ return 0;
+ default:
+ break;
+ }
+ return -EINVAL;
+}
+
+static int mc13892_battery_read_status(struct mc13892_dev_info *di)
+{
+ int retval;
+ int coulomb;
+ retval = pmic_get_batt_voltage(&(di->voltage_raw));
+ if (retval == 0)
+ di->voltage_uV = di->voltage_raw * BAT_VOLTAGE_UNIT_UV;
+
+ retval = pmic_get_batt_current(&(di->current_raw));
+ if (retval == 0) {
+ if (di->current_raw & 0x200)
+ di->current_uA =
+ (0x1FF - (di->current_raw & 0x1FF)) *
+ BAT_CURRENT_UNIT_UA * (-1);
+ else
+ di->current_uA =
+ (di->current_raw & 0x1FF) * BAT_CURRENT_UNIT_UA;
+ }
+ retval = pmic_get_charger_coulomb(&coulomb);
+ if (retval == 0)
+ di->accum_current_uAh = COULOMB_TO_UAH(coulomb);
+
+ return retval;
+}
+
+static void mc13892_battery_update_status(struct mc13892_dev_info *di)
+{
+ unsigned int value;
+ int retval;
+ int old_battery_status = di->battery_status;
+
+ if (di->battery_status == POWER_SUPPLY_STATUS_UNKNOWN)
+ di->full_counter = 0;
+
+ if (di->charger_online) {
+ retval = pmic_read_reg(REG_INT_SENSE0,
+ &value, BITFMASK(BIT_CHG_CURRS));
+
+ if (retval == 0) {
+ value = BITFEXT(value, BIT_CHG_CURRS);
+ if (value)
+ di->battery_status =
+ POWER_SUPPLY_STATUS_CHARGING;
+ else
+ di->battery_status =
+ POWER_SUPPLY_STATUS_NOT_CHARGING;
+ }
+
+ if (di->battery_status == POWER_SUPPLY_STATUS_NOT_CHARGING)
+ di->full_counter++;
+ else
+ di->full_counter = 0;
+ } else {
+ di->battery_status = POWER_SUPPLY_STATUS_DISCHARGING;
+ di->full_counter = 0;
+ }
+
+ dev_dbg(di->bat.dev, "bat status: %d\n",
+ di->battery_status);
+
+ if (old_battery_status != POWER_SUPPLY_STATUS_UNKNOWN &&
+ di->battery_status != old_battery_status)
+ power_supply_changed(&di->bat);
+}
+
+static void mc13892_battery_work(struct work_struct *work)
+{
+ struct mc13892_dev_info *di = container_of(work,
+ struct mc13892_dev_info,
+ monitor_work.work);
+ const int interval = HZ * 60;
+
+ dev_dbg(di->dev, "%s\n", __func__);
+
+ mc13892_battery_update_status(di);
+ queue_delayed_work(di->monitor_wqueue, &di->monitor_work, interval);
+}
+
+static void charger_online_event_callback(void *para)
+{
+ struct mc13892_dev_info *di = (struct mc13892_dev_info *) para;
+ pr_info("\n\n DETECTED charger plug/unplug event\n");
+ mc13892_charger_update_status(di);
+}
+
+
+static int mc13892_battery_get_property(struct power_supply *psy,
+ enum power_supply_property psp,
+ union power_supply_propval *val)
+{
+ struct mc13892_dev_info *di = to_mc13892_dev_info(psy);
+ switch (psp) {
+ case POWER_SUPPLY_PROP_STATUS:
+ if (di->battery_status == POWER_SUPPLY_STATUS_UNKNOWN) {
+ mc13892_charger_update_status(di);
+ mc13892_battery_update_status(di);
+ }
+ val->intval = di->battery_status;
+ return 0;
+ default:
+ break;
+ }
+
+ mc13892_battery_read_status(di);
+
+ switch (psp) {
+ case POWER_SUPPLY_PROP_VOLTAGE_NOW:
+ val->intval = di->voltage_uV;
+ break;
+ case POWER_SUPPLY_PROP_CURRENT_NOW:
+ val->intval = di->current_uA;
+ break;
+ case POWER_SUPPLY_PROP_CHARGE_NOW:
+ val->intval = di->accum_current_uAh;
+ break;
+ case POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN:
+ val->intval = 3800000;
+ break;
+ case POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN:
+ val->intval = 3300000;
+ break;
+ default:
+ return -EINVAL;
+ }
+
+ return 0;
+}
+
+static ssize_t chg_wa_enable_show(struct device *dev,
+ struct device_attribute *attr, char *buf)
+{
+ if (chg_wa_is_active & chg_wa_timer)
+ return sprintf(buf, "Charger LED workaround timer is on\n");
+ else
+ return sprintf(buf, "Charger LED workaround timer is off\n");
+}
+
+static ssize_t chg_wa_enable_store(struct device *dev,
+ struct device_attribute *attr,
+ const char *buf, size_t size)
+{
+ if (strstr(buf, "1") != NULL) {
+ if (chg_wa_is_active) {
+ if (chg_wa_timer)
+ printk(KERN_INFO "Charger timer is already on\n");
+ else {
+ queue_delayed_work(chg_wq, &chg_work, 100);
+ chg_wa_timer = 1;
+ printk(KERN_INFO "Turned on the timer\n");
+ }
+ }
+ } else if (strstr(buf, "0") != NULL) {
+ if (chg_wa_is_active) {
+ if (chg_wa_timer) {
+ cancel_delayed_work(&chg_work);
+ chg_wa_timer = 0;
+ printk(KERN_INFO "Turned off charger timer\n");
+ } else {
+ printk(KERN_INFO "The Charger workaround timer is off\n");
+ }
+ }
+ }
+
+ return size;
+}
+
+static DEVICE_ATTR(enable, 0644, chg_wa_enable_show, chg_wa_enable_store);
+
+static int pmic_battery_remove(struct platform_device *pdev)
+{
+ pmic_event_callback_t bat_event_callback;
+ struct mc13892_dev_info *di = platform_get_drvdata(pdev);
+
+ bat_event_callback.func = charger_online_event_callback;
+ bat_event_callback.param = (void *) di;
+ pmic_event_unsubscribe(EVENT_CHGDETI, bat_event_callback);
+
+ cancel_rearming_delayed_workqueue(di->monitor_wqueue,
+ &di->monitor_work);
+ cancel_rearming_delayed_workqueue(chg_wq,
+ &chg_work);
+ destroy_workqueue(di->monitor_wqueue);
+ destroy_workqueue(chg_wq);
+ chg_wa_timer = 0;
+ chg_wa_is_active = 0;
+ disable_chg_timer = 0;
+ power_supply_unregister(&di->bat);
+ power_supply_unregister(&di->charger);
+
+ kfree(di);
+
+ return 0;
+}
+
+static int pmic_battery_probe(struct platform_device *pdev)
+{
+ int retval = 0;
+ struct mc13892_dev_info *di;
+ pmic_event_callback_t bat_event_callback;
+ pmic_version_t pmic_version;
+
+ /* Only apply battery driver for MC13892 V2.0 due to ENGR108085 */
+ pmic_version = pmic_get_version();
+ if (pmic_version.revision < 20) {
+ pr_debug("Battery driver is only applied for MC13892 V2.0\n");
+ return -1;
+ }
+ if (machine_is_mx50_arm2()) {
+ pr_debug("mc13892 charger is not used for this platform\n");
+ return -1;
+ }
+
+ di = kzalloc(sizeof(*di), GFP_KERNEL);
+ if (!di) {
+ retval = -ENOMEM;
+ goto di_alloc_failed;
+ }
+
+ platform_set_drvdata(pdev, di);
+
+ di->charger.name = "mc13892_charger";
+ di->charger.type = POWER_SUPPLY_TYPE_MAINS;
+ di->charger.properties = mc13892_charger_props;
+ di->charger.num_properties = ARRAY_SIZE(mc13892_charger_props);
+ di->charger.get_property = mc13892_charger_get_property;
+ retval = power_supply_register(&pdev->dev, &di->charger);
+ if (retval) {
+ dev_err(di->dev, "failed to register charger\n");
+ goto charger_failed;
+ }
+
+ INIT_DELAYED_WORK(&chg_work, chg_thread);
+ chg_wq = create_singlethread_workqueue("mxc_chg");
+ if (!chg_wq) {
+ retval = -ESRCH;
+ goto workqueue_failed;
+ }
+
+ INIT_DELAYED_WORK(&di->monitor_work, mc13892_battery_work);
+ di->monitor_wqueue = create_singlethread_workqueue(dev_name(&pdev->dev));
+ if (!di->monitor_wqueue) {
+ retval = -ESRCH;
+ goto workqueue_failed;
+ }
+ queue_delayed_work(di->monitor_wqueue, &di->monitor_work, HZ * 10);
+
+ di->dev = &pdev->dev;
+ di->bat.name = "mc13892_bat";
+ di->bat.type = POWER_SUPPLY_TYPE_BATTERY;
+ di->bat.properties = mc13892_battery_props;
+ di->bat.num_properties = ARRAY_SIZE(mc13892_battery_props);
+ di->bat.get_property = mc13892_battery_get_property;
+ di->bat.use_for_apm = 1;
+
+ di->battery_status = POWER_SUPPLY_STATUS_UNKNOWN;
+
+ retval = power_supply_register(&pdev->dev, &di->bat);
+ if (retval) {
+ dev_err(di->dev, "failed to register battery\n");
+ goto batt_failed;
+ }
+
+ bat_event_callback.func = charger_online_event_callback;
+ bat_event_callback.param = (void *) di;
+ pmic_event_subscribe(EVENT_CHGDETI, bat_event_callback);
+ retval = sysfs_create_file(&pdev->dev.kobj, &dev_attr_enable.attr);
+
+ if (retval) {
+ printk(KERN_ERR
+ "Battery: Unable to register sysdev entry for Battery");
+ goto workqueue_failed;
+ }
+ chg_wa_is_active = 1;
+ chg_wa_timer = 0;
+ disable_chg_timer = 0;
+
+ pmic_stop_coulomb_counter();
+ pmic_calibrate_coulomb_counter();
+ goto success;
+
+workqueue_failed:
+ power_supply_unregister(&di->charger);
+charger_failed:
+ power_supply_unregister(&di->bat);
+batt_failed:
+ kfree(di);
+di_alloc_failed:
+success:
+ dev_dbg(di->dev, "%s battery probed!\n", __func__);
+ return retval;
+
+
+ return 0;
+}
+
+static struct platform_driver pmic_battery_driver_ldm = {
+ .driver = {
+ .name = "pmic_battery",
+ .bus = &platform_bus_type,
+ },
+ .probe = pmic_battery_probe,
+ .remove = pmic_battery_remove,
+};
+
+static int __init pmic_battery_init(void)
+{
+ pr_debug("PMIC Battery driver loading...\n");
+ return platform_driver_register(&pmic_battery_driver_ldm);
+}
+
+static void __exit pmic_battery_exit(void)
+{
+ platform_driver_unregister(&pmic_battery_driver_ldm);
+ pr_debug("PMIC Battery driver successfully unloaded\n");
+}
+
+module_init(pmic_battery_init);
+module_exit(pmic_battery_exit);
+
+MODULE_DESCRIPTION("pmic_battery driver");
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_LICENSE("GPL");
diff --git a/drivers/mxc/pmic/mc13892/pmic_light.c b/drivers/mxc/pmic/mc13892/pmic_light.c
new file mode 100644
index 000000000000..caaa98d7d7d9
--- /dev/null
+++ b/drivers/mxc/pmic/mc13892/pmic_light.c
@@ -0,0 +1,685 @@
+/*
+ * Copyright 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file mc13892/pmic_light.c
+ * @brief This is the main file of PMIC(mc13783) Light and Backlight driver.
+ *
+ * @ingroup PMIC_LIGHT
+ */
+
+/*
+ * Includes
+ */
+#define DEBUG
+#include <linux/platform_device.h>
+#include <linux/delay.h>
+#include <linux/fs.h>
+#include <linux/pmic_light.h>
+#include <linux/pmic_status.h>
+
+#define BIT_CL_MAIN_LSH 9
+#define BIT_CL_AUX_LSH 21
+#define BIT_CL_KEY_LSH 9
+#define BIT_CL_RED_LSH 9
+#define BIT_CL_GREEN_LSH 21
+#define BIT_CL_BLUE_LSH 9
+
+#define BIT_CL_MAIN_WID 3
+#define BIT_CL_AUX_WID 3
+#define BIT_CL_KEY_WID 3
+#define BIT_CL_RED_WID 3
+#define BIT_CL_GREEN_WID 3
+#define BIT_CL_BLUE_WID 3
+
+#define BIT_DC_MAIN_LSH 3
+#define BIT_DC_AUX_LSH 15
+#define BIT_DC_KEY_LSH 3
+#define BIT_DC_RED_LSH 3
+#define BIT_DC_GREEN_LSH 15
+#define BIT_DC_BLUE_LSH 3
+
+#define BIT_DC_MAIN_WID 6
+#define BIT_DC_AUX_WID 6
+#define BIT_DC_KEY_WID 6
+#define BIT_DC_RED_WID 6
+#define BIT_DC_GREEN_WID 6
+#define BIT_DC_BLUE_WID 6
+
+#define BIT_RP_MAIN_LSH 2
+#define BIT_RP_AUX_LSH 14
+#define BIT_RP_KEY_LSH 2
+#define BIT_RP_RED_LSH 2
+#define BIT_RP_GREEN_LSH 14
+#define BIT_RP_BLUE_LSH 2
+
+#define BIT_RP_MAIN_WID 1
+#define BIT_RP_AUX_WID 1
+#define BIT_RP_KEY_WID 1
+#define BIT_RP_RED_WID 1
+#define BIT_RP_GREEN_WID 1
+#define BIT_RP_BLUE_WID 1
+
+#define BIT_HC_MAIN_LSH 1
+#define BIT_HC_AUX_LSH 13
+#define BIT_HC_KEY_LSH 1
+
+#define BIT_HC_MAIN_WID 1
+#define BIT_HC_AUX_WID 1
+#define BIT_HC_KEY_WID 1
+
+#define BIT_BP_RED_LSH 0
+#define BIT_BP_GREEN_LSH 12
+#define BIT_BP_BLUE_LSH 0
+
+#define BIT_BP_RED_WID 2
+#define BIT_BP_GREEN_WID 2
+#define BIT_BP_BLUE_WID 2
+
+int pmic_light_init_reg(void)
+{
+ CHECK_ERROR(pmic_write_reg(REG_LED_CTL0, 0, PMIC_ALL_BITS));
+ CHECK_ERROR(pmic_write_reg(REG_LED_CTL1, 0, PMIC_ALL_BITS));
+ CHECK_ERROR(pmic_write_reg(REG_LED_CTL2, 0, PMIC_ALL_BITS));
+ CHECK_ERROR(pmic_write_reg(REG_LED_CTL3, 0, PMIC_ALL_BITS));
+
+ return 0;
+}
+
+static int pmic_light_suspend(struct platform_device *dev, pm_message_t state)
+{
+ return 0;
+};
+
+static int pmic_light_resume(struct platform_device *pdev)
+{
+ return 0;
+};
+
+PMIC_STATUS mc13892_bklit_set_hi_current(enum lit_channel channel, int mode)
+{
+ unsigned int mask;
+ unsigned int value;
+ int reg;
+
+ switch (channel) {
+ case LIT_MAIN:
+ value = BITFVAL(BIT_HC_MAIN, mode);
+ mask = BITFMASK(BIT_HC_MAIN);
+ reg = REG_LED_CTL0;
+ break;
+ case LIT_AUX:
+ value = BITFVAL(BIT_HC_AUX, mode);
+ mask = BITFMASK(BIT_HC_AUX);
+ reg = REG_LED_CTL0;
+ break;
+ case LIT_KEY:
+ value = BITFVAL(BIT_HC_KEY, mode);
+ mask = BITFMASK(BIT_HC_KEY);
+ reg = REG_LED_CTL1;
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+ CHECK_ERROR(pmic_write_reg(reg, value, mask));
+ return PMIC_SUCCESS;
+}
+
+PMIC_STATUS mc13892_bklit_get_hi_current(enum lit_channel channel, int *mode)
+{
+ unsigned int mask;
+ int reg;
+
+ switch (channel) {
+ case LIT_MAIN:
+ mask = BITFMASK(BIT_HC_MAIN);
+ reg = REG_LED_CTL0;
+ break;
+ case LIT_AUX:
+ mask = BITFMASK(BIT_HC_AUX);
+ reg = REG_LED_CTL0;
+ break;
+ case LIT_KEY:
+ mask = BITFMASK(BIT_HC_KEY);
+ reg = REG_LED_CTL1;
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ CHECK_ERROR(pmic_read_reg(reg, mode, mask));
+ return PMIC_SUCCESS;
+}
+
+PMIC_STATUS mc13892_bklit_set_current(enum lit_channel channel,
+ unsigned char level)
+{
+ unsigned int mask;
+ unsigned int value;
+ int reg;
+
+ if (level > LIT_CURR_HI_42)
+ return PMIC_PARAMETER_ERROR;
+ else if (level >= LIT_CURR_HI_0) {
+ CHECK_ERROR(mc13892_bklit_set_hi_current(channel, 1));
+ level -= LIT_CURR_HI_0;
+ }
+
+ switch (channel) {
+ case LIT_MAIN:
+ value = BITFVAL(BIT_CL_MAIN, level);
+ mask = BITFMASK(BIT_CL_MAIN);
+ reg = REG_LED_CTL0;
+ break;
+ case LIT_AUX:
+ value = BITFVAL(BIT_CL_AUX, level);
+ mask = BITFMASK(BIT_CL_AUX);
+ reg = REG_LED_CTL0;
+ break;
+ case LIT_KEY:
+ value = BITFVAL(BIT_CL_KEY, level);
+ mask = BITFMASK(BIT_CL_KEY);
+ reg = REG_LED_CTL1;
+ break;
+ case LIT_RED:
+ value = BITFVAL(BIT_CL_RED, level);
+ mask = BITFMASK(BIT_CL_RED);
+ reg = REG_LED_CTL2;
+ break;
+ case LIT_GREEN:
+ value = BITFVAL(BIT_CL_GREEN, level);
+ mask = BITFMASK(BIT_CL_GREEN);
+ reg = REG_LED_CTL2;
+ break;
+ case LIT_BLUE:
+ value = BITFVAL(BIT_CL_BLUE, level);
+ mask = BITFMASK(BIT_CL_BLUE);
+ reg = REG_LED_CTL3;
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+ CHECK_ERROR(pmic_write_reg(reg, value, mask));
+
+ return PMIC_SUCCESS;
+}
+
+PMIC_STATUS mc13892_bklit_get_current(enum lit_channel channel,
+ unsigned char *level)
+{
+ unsigned int reg_value = 0;
+ unsigned int mask = 0;
+ int reg, mode;
+
+ CHECK_ERROR(mc13892_bklit_get_hi_current(channel, &mode));
+
+ switch (channel) {
+ case LIT_MAIN:
+ mask = BITFMASK(BIT_CL_MAIN);
+ reg = REG_LED_CTL0;
+ break;
+ case LIT_AUX:
+ mask = BITFMASK(BIT_CL_AUX);
+ reg = REG_LED_CTL0;
+ break;
+ case LIT_KEY:
+ mask = BITFMASK(BIT_CL_KEY);
+ reg = REG_LED_CTL1;
+ break;
+ case LIT_RED:
+ mask = BITFMASK(BIT_CL_RED);
+ reg = REG_LED_CTL2;
+ break;
+ case LIT_GREEN:
+ mask = BITFMASK(BIT_CL_GREEN);
+ reg = REG_LED_CTL2;
+ break;
+ case LIT_BLUE:
+ mask = BITFMASK(BIT_CL_BLUE);
+ reg = REG_LED_CTL3;
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ CHECK_ERROR(pmic_read_reg(reg, &reg_value, mask));
+
+ switch (channel) {
+ case LIT_MAIN:
+ *level = BITFEXT(reg_value, BIT_CL_MAIN);
+ break;
+ case LIT_AUX:
+ *level = BITFEXT(reg_value, BIT_CL_AUX);
+ break;
+ case LIT_KEY:
+ *level = BITFEXT(reg_value, BIT_CL_KEY);
+ break;
+ case LIT_RED:
+ *level = BITFEXT(reg_value, BIT_CL_RED);
+ break;
+ case LIT_GREEN:
+ *level = BITFEXT(reg_value, BIT_CL_GREEN);
+ break;
+ case LIT_BLUE:
+ *level = BITFEXT(reg_value, BIT_CL_BLUE);
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ if (mode == 1)
+ *level += LIT_CURR_HI_0;
+
+ return PMIC_SUCCESS;
+}
+
+PMIC_STATUS mc13892_bklit_set_dutycycle(enum lit_channel channel,
+ unsigned char dc)
+{
+ unsigned int mask;
+ unsigned int value;
+ int reg;
+
+ switch (channel) {
+ case LIT_MAIN:
+ value = BITFVAL(BIT_DC_MAIN, dc);
+ mask = BITFMASK(BIT_DC_MAIN);
+ reg = REG_LED_CTL0;
+ break;
+ case LIT_AUX:
+ value = BITFVAL(BIT_DC_AUX, dc);
+ mask = BITFMASK(BIT_DC_AUX);
+ reg = REG_LED_CTL0;
+ break;
+ case LIT_KEY:
+ value = BITFVAL(BIT_DC_KEY, dc);
+ mask = BITFMASK(BIT_DC_KEY);
+ reg = REG_LED_CTL1;
+ break;
+ case LIT_RED:
+ value = BITFVAL(BIT_DC_RED, dc);
+ mask = BITFMASK(BIT_DC_RED);
+ reg = REG_LED_CTL2;
+ break;
+ case LIT_GREEN:
+ value = BITFVAL(BIT_DC_GREEN, dc);
+ mask = BITFMASK(BIT_DC_GREEN);
+ reg = REG_LED_CTL2;
+ break;
+ case LIT_BLUE:
+ value = BITFVAL(BIT_DC_BLUE, dc);
+ mask = BITFMASK(BIT_DC_BLUE);
+ reg = REG_LED_CTL3;
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+ CHECK_ERROR(pmic_write_reg(reg, value, mask));
+ return PMIC_SUCCESS;
+}
+
+PMIC_STATUS mc13892_bklit_get_dutycycle(enum lit_channel channel,
+ unsigned char *dc)
+{
+ unsigned int mask;
+ int reg;
+ unsigned int reg_value = 0;
+
+ switch (channel) {
+ case LIT_MAIN:
+ mask = BITFMASK(BIT_DC_MAIN);
+ reg = REG_LED_CTL0;
+ break;
+ case LIT_AUX:
+ mask = BITFMASK(BIT_DC_AUX);
+ reg = REG_LED_CTL0;
+ break;
+ case LIT_KEY:
+ mask = BITFMASK(BIT_DC_KEY);
+ reg = REG_LED_CTL1;
+ break;
+ case LIT_RED:
+ mask = BITFMASK(BIT_DC_RED);
+ reg = REG_LED_CTL2;
+ break;
+ case LIT_GREEN:
+ mask = BITFMASK(BIT_DC_GREEN);
+ reg = REG_LED_CTL2;
+ break;
+ case LIT_BLUE:
+ mask = BITFMASK(BIT_DC_BLUE);
+ reg = REG_LED_CTL3;
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ CHECK_ERROR(pmic_read_reg(reg, &reg_value, mask));
+ return PMIC_SUCCESS;
+}
+
+PMIC_STATUS mc13892_bklit_set_ramp(enum lit_channel channel, int flag)
+{
+ unsigned int mask;
+ unsigned int value;
+ int reg;
+
+ switch (channel) {
+ case LIT_MAIN:
+ value = BITFVAL(BIT_RP_MAIN, flag);
+ mask = BITFMASK(BIT_RP_MAIN);
+ reg = REG_LED_CTL0;
+ break;
+ case LIT_AUX:
+ value = BITFVAL(BIT_RP_AUX, flag);
+ mask = BITFMASK(BIT_RP_AUX);
+ reg = REG_LED_CTL0;
+ break;
+ case LIT_KEY:
+ value = BITFVAL(BIT_RP_KEY, flag);
+ mask = BITFMASK(BIT_RP_KEY);
+ reg = REG_LED_CTL1;
+ break;
+ case LIT_RED:
+ value = BITFVAL(BIT_RP_RED, flag);
+ mask = BITFMASK(BIT_RP_RED);
+ reg = REG_LED_CTL2;
+ break;
+ case LIT_GREEN:
+ value = BITFVAL(BIT_RP_GREEN, flag);
+ mask = BITFMASK(BIT_RP_GREEN);
+ reg = REG_LED_CTL2;
+ break;
+ case LIT_BLUE:
+ value = BITFVAL(BIT_RP_BLUE, flag);
+ mask = BITFMASK(BIT_RP_BLUE);
+ reg = REG_LED_CTL3;
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+ CHECK_ERROR(pmic_write_reg(reg, value, mask));
+ return PMIC_SUCCESS;
+}
+
+PMIC_STATUS mc13892_bklit_get_ramp(enum lit_channel channel, int *flag)
+{
+ unsigned int mask;
+ int reg;
+
+ switch (channel) {
+ case LIT_MAIN:
+ mask = BITFMASK(BIT_RP_MAIN);
+ reg = REG_LED_CTL0;
+ break;
+ case LIT_AUX:
+ mask = BITFMASK(BIT_RP_AUX);
+ reg = REG_LED_CTL0;
+ break;
+ case LIT_KEY:
+ mask = BITFMASK(BIT_RP_KEY);
+ reg = REG_LED_CTL1;
+ break;
+ case LIT_RED:
+ mask = BITFMASK(BIT_RP_RED);
+ reg = REG_LED_CTL2;
+ break;
+ case LIT_GREEN:
+ mask = BITFMASK(BIT_RP_GREEN);
+ reg = REG_LED_CTL2;
+ break;
+ case LIT_BLUE:
+ mask = BITFMASK(BIT_RP_BLUE);
+ reg = REG_LED_CTL3;
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ CHECK_ERROR(pmic_read_reg(reg, flag, mask));
+ return PMIC_SUCCESS;
+}
+
+PMIC_STATUS mc13892_bklit_set_blink_p(enum lit_channel channel, int period)
+{
+ unsigned int mask;
+ unsigned int value;
+ int reg;
+
+ switch (channel) {
+ case LIT_RED:
+ value = BITFVAL(BIT_BP_RED, period);
+ mask = BITFMASK(BIT_BP_RED);
+ reg = REG_LED_CTL2;
+ break;
+ case LIT_GREEN:
+ value = BITFVAL(BIT_BP_GREEN, period);
+ mask = BITFMASK(BIT_BP_GREEN);
+ reg = REG_LED_CTL2;
+ break;
+ case LIT_BLUE:
+ value = BITFVAL(BIT_BP_BLUE, period);
+ mask = BITFMASK(BIT_BP_BLUE);
+ reg = REG_LED_CTL3;
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+ CHECK_ERROR(pmic_write_reg(reg, value, mask));
+ return PMIC_SUCCESS;
+}
+
+PMIC_STATUS mc13892_bklit_get_blink_p(enum lit_channel channel, int *period)
+{
+ unsigned int mask;
+ int reg;
+
+ switch (channel) {
+ case LIT_RED:
+ mask = BITFMASK(BIT_BP_RED);
+ reg = REG_LED_CTL2;
+ break;
+ case LIT_GREEN:
+ mask = BITFMASK(BIT_BP_GREEN);
+ reg = REG_LED_CTL2;
+ break;
+ case LIT_BLUE:
+ mask = BITFMASK(BIT_BP_BLUE);
+ reg = REG_LED_CTL3;
+ break;
+ default:
+ return PMIC_PARAMETER_ERROR;
+ }
+
+ CHECK_ERROR(pmic_read_reg(reg, period, mask));
+ return PMIC_SUCCESS;
+}
+
+EXPORT_SYMBOL(mc13892_bklit_set_current);
+EXPORT_SYMBOL(mc13892_bklit_get_current);
+EXPORT_SYMBOL(mc13892_bklit_set_dutycycle);
+EXPORT_SYMBOL(mc13892_bklit_get_dutycycle);
+EXPORT_SYMBOL(mc13892_bklit_set_ramp);
+EXPORT_SYMBOL(mc13892_bklit_get_ramp);
+EXPORT_SYMBOL(mc13892_bklit_set_blink_p);
+EXPORT_SYMBOL(mc13892_bklit_get_blink_p);
+
+static int pmic_light_remove(struct platform_device *pdev)
+{
+ return 0;
+}
+
+#ifdef DEBUG
+static ssize_t lit_info(struct device *dev, struct device_attribute *attr,
+ char *buf)
+{
+ return 0;
+}
+
+enum {
+ SET_CURR = 0,
+ SET_DC,
+ SET_RAMP,
+ SET_BP,
+ SET_CH,
+ LIT_CMD_MAX
+};
+
+static const char *const lit_cmd[LIT_CMD_MAX] = {
+ [SET_CURR] = "cur",
+ [SET_DC] = "dc",
+ [SET_RAMP] = "ra",
+ [SET_BP] = "bp",
+ [SET_CH] = "ch"
+};
+
+static int cmd(unsigned int index, int value)
+{
+ static int ch = LIT_MAIN;
+ int ret = 0;
+
+ switch (index) {
+ case SET_CH:
+ ch = value;
+ break;
+ case SET_CURR:
+ pr_debug("set %d cur %d\n", ch, value);
+ ret = mc13892_bklit_set_current(ch, value);
+ break;
+ case SET_DC:
+ pr_debug("set %d dc %d\n", ch, value);
+ ret = mc13892_bklit_set_dutycycle(ch, value);
+ break;
+ case SET_RAMP:
+ pr_debug("set %d ramp %d\n", ch, value);
+ ret = mc13892_bklit_set_ramp(ch, value);
+ break;
+ case SET_BP:
+ pr_debug("set %d bp %d\n", ch, value);
+ ret = mc13892_bklit_set_blink_p(ch, value);
+ break;
+ default:
+ pr_debug("error command\n");
+ break;
+ }
+
+ if (ret == PMIC_SUCCESS)
+ pr_debug("command exec successfully!\n");
+
+ return 0;
+}
+
+static ssize_t lit_ctl(struct device *dev, struct device_attribute *attr,
+ const char *buf, size_t count)
+{
+ int state = 0;
+ const char *const *s;
+ char *p, *q;
+ int error;
+ int len, value = 0;
+
+ pr_debug("lit_ctl\n");
+
+ q = NULL;
+ q = memchr(buf, ' ', count);
+
+ if (q != NULL) {
+ len = q - buf;
+ q += 1;
+ value = simple_strtoul(q, NULL, 10);
+ } else {
+ p = memchr(buf, '\n', count);
+ len = p ? p - buf : count;
+ }
+
+ for (s = &lit_cmd[state]; state < LIT_CMD_MAX; s++, state++) {
+ if (*s && !strncmp(buf, *s, len))
+ break;
+ }
+ if (state < LIT_CMD_MAX && *s)
+ error = cmd(state, value);
+ else
+ error = -EINVAL;
+
+ return count;
+}
+
+#else
+static ssize_t lit_info(struct device *dev, struct device_attribute *attr,
+ char *buf)
+{
+ return 0;
+}
+
+static ssize_t lit_ctl(struct device *dev, struct device_attribute *attr,
+ const char *buf, size_t count)
+{
+ return count;
+}
+
+#endif
+
+static DEVICE_ATTR(lit, 0644, lit_info, lit_ctl);
+
+static int pmic_light_probe(struct platform_device *pdev)
+{
+ int ret = 0;
+
+ pr_debug("PMIC ADC start probe\n");
+ ret = device_create_file(&(pdev->dev), &dev_attr_lit);
+ if (ret) {
+ pr_debug("Can't create device file!\n");
+ return -ENODEV;
+ }
+
+ pmic_light_init_reg();
+
+ pr_debug("PMIC Light successfully loaded\n");
+ return 0;
+}
+
+static struct platform_driver pmic_light_driver_ldm = {
+ .driver = {
+ .name = "pmic_light",
+ },
+ .suspend = pmic_light_suspend,
+ .resume = pmic_light_resume,
+ .probe = pmic_light_probe,
+ .remove = pmic_light_remove,
+};
+
+/*
+ * Initialization and Exit
+ */
+
+static int __init pmic_light_init(void)
+{
+ pr_debug("PMIC Light driver loading...\n");
+ return platform_driver_register(&pmic_light_driver_ldm);
+}
+static void __exit pmic_light_exit(void)
+{
+ platform_driver_unregister(&pmic_light_driver_ldm);
+ pr_debug("PMIC Light driver successfully unloaded\n");
+}
+
+/*
+ * Module entry points
+ */
+
+subsys_initcall(pmic_light_init);
+module_exit(pmic_light_exit);
+
+MODULE_DESCRIPTION("PMIC_LIGHT");
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_LICENSE("GPL");
diff --git a/drivers/mxc/security/Kconfig b/drivers/mxc/security/Kconfig
new file mode 100644
index 000000000000..875848b2c69c
--- /dev/null
+++ b/drivers/mxc/security/Kconfig
@@ -0,0 +1,64 @@
+menu "MXC Security Drivers"
+
+config MXC_SECURITY_SCC
+ tristate "MXC SCC Driver"
+ default n
+ ---help---
+ This module contains the core API's for accessing the SCC module.
+ If you are unsure about this, say N here.
+
+config MXC_SECURITY_SCC2
+ tristate "MXC SCC2 Driver"
+ depends on ARCH_MX37 || ARCH_MX5
+ default n
+ ---help---
+ This module contains the core API's for accessing the SCC2 module.
+ If you are unsure about this, say N here.
+
+config SCC_DEBUG
+ bool "MXC SCC Module debugging"
+ depends on MXC_SECURITY_SCC || MXC_SECURITY_SCC2
+ ---help---
+ This is an option for use by developers; most people should
+ say N here. This enables SCC module debugging.
+
+config MXC_SECURITY_RNG
+ tristate "MXC RNG Driver"
+ depends on ARCH_MXC
+ depends on !ARCH_MXC91321
+ depends on !ARCH_MX27
+ default n
+ select MXC_SECURITY_CORE
+ ---help---
+ This module contains the core API's for accessing the RNG module.
+ If you are unsure about this, say N here.
+
+config MXC_RNG_TEST_DRIVER
+ bool "MXC RNG debug register"
+ depends on MXC_SECURITY_RNG
+ default n
+ ---help---
+ This option enables the RNG kcore driver to provide peek-poke facility
+ into the RNG device registers. Enable this, only for development and
+ testing purposes.
+config MXC_RNG_DEBUG
+ bool "MXC RNG Module Dubugging"
+ depends on MXC_SECURITY_RNG
+ default n
+ ---help---
+ This is an option for use by developers; most people should
+ say N here. This enables RNG module debugging.
+
+config MXC_DRYICE
+ tristate "MXC DryIce Driver"
+ depends on ARCH_MX25
+ default n
+ ---help---
+ This module contains the core API's for accessing the DryIce module.
+ If you are unsure about this, say N here.
+
+if (ARCH_MX37 || ARCH_MX5 || ARCH_MX27)
+source "drivers/mxc/security/sahara2/Kconfig"
+endif
+
+endmenu
diff --git a/drivers/mxc/security/Makefile b/drivers/mxc/security/Makefile
new file mode 100644
index 000000000000..f643a09a423d
--- /dev/null
+++ b/drivers/mxc/security/Makefile
@@ -0,0 +1,11 @@
+# Makefile for the Linux MXC Security API
+ifeq ($( SCC_DEBUG),y)
+EXTRA_CFLAGS += -DDEBUG
+endif
+EXTRA_CFLAGS += -DMXC -DLINUX_KERNEL
+
+obj-$(CONFIG_MXC_SECURITY_SCC2) += scc2_driver.o
+obj-$(CONFIG_MXC_SECURITY_SCC) += mxc_scc.o
+obj-$(CONFIG_MXC_SECURITY_RNG) += rng/
+obj-$(CONFIG_MXC_SAHARA) += sahara2/
+obj-$(CONFIG_MXC_DRYICE) += dryice.o
diff --git a/drivers/mxc/security/dryice-regs.h b/drivers/mxc/security/dryice-regs.h
new file mode 100644
index 000000000000..2da10585965a
--- /dev/null
+++ b/drivers/mxc/security/dryice-regs.h
@@ -0,0 +1,207 @@
+/*
+ * Copyright (C) 2009-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+
+#ifndef __DRYICE_REGS_H__
+#define __DRYICE_REGS_H__
+
+/***********************************************************************
+ * DryIce Register Definitions
+ ***********************************************************************/
+
+/* DryIce Time Counter MSB Reg */
+#define DTCMR 0x00
+
+/* DryIce Time Counter LSB Reg */
+#define DTCLR 0x04
+
+/* DryIce Clock Alarm MSB Reg */
+#define DCAMR 0x08
+
+/* DryIce Clock Alarm LSB Reg */
+#define DCALR 0x0c
+
+/* DryIce Control Reg */
+#define DCR 0x10
+#define DCR_TDCHL (1 << 30) /* Tamper Detect Config Hard Lock */
+#define DCR_TDCSL (1 << 29) /* Tamper Detect COnfig Soft Lock */
+#define DCR_KSHL (1 << 28) /* Key Select Hard Lock */
+#define DCR_KSSL (1 << 27) /* Key Select Soft Lock */
+#define DCR_RKHL (1 << 26) /* Random Key Hard Lock */
+#define DCR_RKSL (1 << 25) /* Random Key Soft Lock */
+#define DCR_PKRHL (1 << 24) /* Programmed Key Read Hard Lock */
+#define DCR_PKRSL (1 << 23) /* Programmed Key Read Soft Lock */
+#define DCR_PKWHL (1 << 22) /* Programmed Key Write Hard Lock */
+#define DCR_PKWSL (1 << 21) /* Programmed Key Write Soft Lock */
+#define DCR_MCHL (1 << 20) /* Monotonic Counter Hard Lock */
+#define DCR_MCSL (1 << 19) /* Monotonic Counter Soft Lock */
+#define DCR_TCHL (1 << 18) /* Time Counter Hard Lock */
+#define DCR_TCSL (1 << 17) /* Time Counter Soft Lock */
+#define DCR_FSHL (1 << 16) /* Failure State Hard Lock */
+#define DCR_NSA (1 << 15) /* Non-Secure Access */
+#define DCR_OSCB (1 << 14) /* Oscillator Bypass */
+#define DCR_APE (1 << 4) /* Alarm Pin Enable */
+#define DCR_TCE (1 << 3) /* Time Counter Enable */
+#define DCR_MCE (1 << 2) /* Monotonic Counter Enable */
+#define DCR_SWR (1 << 0) /* Software Reset (w/o) */
+
+/* DryIce Status Reg */
+#define DSR 0x14
+#define DSR_WTD (1 << 23) /* Wire-mesh Tampering Detected */
+#define DSR_ETBD (1 << 22) /* External Tampering B Detected */
+#define DSR_ETAD (1 << 21) /* External Tampering A Detected */
+#define DSR_EBD (1 << 20) /* External Boot Detected */
+#define DSR_SAD (1 << 19) /* Security Alarm Detected */
+#define DSR_TTD (1 << 18) /* Temperature Tampering Detected */
+#define DSR_CTD (1 << 17) /* Clock Tampering Detected */
+#define DSR_VTD (1 << 16) /* Voltage Tampering Detected */
+#define DSR_KBF (1 << 11) /* Key Busy Flag */
+#define DSR_WBF (1 << 10) /* Write Busy Flag */
+#define DSR_WNF (1 << 9) /* Write Next Flag */
+#define DSR_WCF (1 << 8) /* Write Complete Flag */
+#define DSR_WEF (1 << 7) /* Write Error Flag */
+#define DSR_RKE (1 << 6) /* Random Key Error */
+#define DSR_RKV (1 << 5) /* Random Key Valid */
+#define DSR_CAF (1 << 4) /* Clock Alarm Flag */
+#define DSR_MCO (1 << 3) /* Monotonic Counter Overflow */
+#define DSR_TCO (1 << 2) /* Time Counter Overflow */
+#define DSR_NVF (1 << 1) /* Non-Valid Flag */
+#define DSR_SVF (1 << 0) /* Security Violation Flag */
+
+#define DSR_TAMPER_BITS (DSR_WTD | DSR_ETBD | DSR_ETAD | DSR_EBD | DSR_SAD | \
+ DSR_TTD | DSR_CTD | DSR_VTD | DSR_MCO | DSR_TCO)
+
+/* ensure that external tamper defs match register bits */
+#if DSR_WTD != DI_TAMPER_EVENT_WTD
+#error "Mismatch between DSR_WTD and DI_TAMPER_EVENT_WTD"
+#endif
+#if DSR_ETBD != DI_TAMPER_EVENT_ETBD
+#error "Mismatch between DSR_ETBD and DI_TAMPER_EVENT_ETBD"
+#endif
+#if DSR_ETAD != DI_TAMPER_EVENT_ETAD
+#error "Mismatch between DSR_ETAD and DI_TAMPER_EVENT_ETAD"
+#endif
+#if DSR_EBD != DI_TAMPER_EVENT_EBD
+#error "Mismatch between DSR_EBD and DI_TAMPER_EVENT_EBD"
+#endif
+#if DSR_SAD != DI_TAMPER_EVENT_SAD
+#error "Mismatch between DSR_SAD and DI_TAMPER_EVENT_SAD"
+#endif
+#if DSR_TTD != DI_TAMPER_EVENT_TTD
+#error "Mismatch between DSR_TTD and DI_TAMPER_EVENT_TTD"
+#endif
+#if DSR_CTD != DI_TAMPER_EVENT_CTD
+#error "Mismatch between DSR_CTD and DI_TAMPER_EVENT_CTD"
+#endif
+#if DSR_VTD != DI_TAMPER_EVENT_VTD
+#error "Mismatch between DSR_VTD and DI_TAMPER_EVENT_VTD"
+#endif
+#if DSR_MCO != DI_TAMPER_EVENT_MCO
+#error "Mismatch between DSR_MCO and DI_TAMPER_EVENT_MCO"
+#endif
+#if DSR_TCO != DI_TAMPER_EVENT_TCO
+#error "Mismatch between DSR_TCO and DI_TAMPER_EVENT_TCO"
+#endif
+
+/* DryIce Interrupt Enable Reg */
+#define DIER 0x18
+#define DIER_WNIE (1 << 9) /* Write Next Interrupt Enable */
+#define DIER_WCIE (1 << 8) /* Write Complete Interrupt Enable */
+#define DIER_WEIE (1 << 7) /* Write Error Interrupt Enable */
+#define DIER_RKIE (1 << 5) /* Random Key Interrupt Enable */
+#define DIER_CAIE (1 << 4) /* Clock Alarm Interrupt Enable */
+#define DIER_MOIE (1 << 3) /* Monotonic Overflow Interrupt En */
+#define DIER_TOIE (1 << 2) /* Time Overflow Interrupt Enable */
+#define DIER_SVIE (1 << 0) /* Security Violation Interrupt En */
+
+/* DryIce Monotonic Counter Reg */
+#define DMCR 0x1c
+
+/* DryIce Key Select Reg */
+#define DKSR 0x20
+#define DKSR_IIM_KEY 0x0
+#define DKSR_PROG_KEY 0x4
+#define DKSR_RAND_KEY 0x5
+#define DKSR_PROG_XOR_IIM_KEY 0x6
+#define DKSR_RAND_XOR_IIM_KEY 0x7
+
+/* DryIce Key Control Reg */
+#define DKCR 0x24
+#define DKCR_LRK (1 << 0) /* Load Random Key */
+
+/* DryIce Tamper Configuration Reg */
+#define DTCR 0x28
+#define DTCR_ETGFB_SHIFT 27 /* Ext Tamper Glitch Filter B */
+#define DTCR_ETGFB_MASK 0xf8000000
+#define DTCR_ETGFA_SHIFT 22 /* Ext Tamper Glitch Filter A */
+#define DTCR_ETGFA_MASK 0x07c00000
+#define DTCR_WTGF_SHIFT 17 /* Wire-mesh Tamper Glitch Filter */
+#define DTCR_WTGF_MASK 0x003e0000
+#define DTCR_WGFE (1 << 16) /* Wire-mesh Glitch Filter Enable */
+#define DTCR_SAOE (1 << 15) /* Security Alarm Output Enable */
+#define DTCR_MOE (1 << 9) /* Monotonic Overflow Enable */
+#define DTCR_TOE (1 << 8) /* Time Overflow Enable */
+#define DTCR_WTE (1 << 7) /* Wire-mesh Tampering Enable */
+#define DTCR_ETBE (1 << 6) /* External Tampering B Enable */
+#define DTCR_ETAE (1 << 5) /* External Tampering A Enable */
+#define DTCR_EBE (1 << 4) /* External Boot Enable */
+#define DTCR_SAIE (1 << 3) /* Security Alarm Input Enable */
+#define DTCR_TTE (1 << 2) /* Temperature Tamper Enable */
+#define DTCR_CTE (1 << 1) /* Clock Tamper Enable */
+#define DTCR_VTE (1 << 0) /* Voltage Tamper Enable */
+
+/* DryIce Analog Configuration Reg */
+#define DACR 0x2c
+#define DACR_VRC_SHIFT 6 /* Voltage Reference Configuration */
+#define DACR_VRC_MASK 0x000001c0
+#define DACR_HTDC_SHIFT 3 /* High Temperature Detect Configuration */
+#define DACR_HTDC_MASK 0x00000038
+#define DACR_LTDC_SHIFT 0 /* Low Temperature Detect Configuration */
+#define DACR_LTDC_MASK 0x00000007
+
+/* DryIce General Purpose Reg */
+#define DGPR 0x3c
+
+/* DryIce Programmed Key0-7 Regs */
+#define DPKR0 0x40
+#define DPKR1 0x44
+#define DPKR2 0x48
+#define DPKR3 0x4c
+#define DPKR4 0x50
+#define DPKR5 0x54
+#define DPKR6 0x58
+#define DPKR7 0x5c
+
+/* DryIce Random Key0-7 Regs */
+#define DRKR0 0x60
+#define DRKR1 0x64
+#define DRKR2 0x68
+#define DRKR3 0x6c
+#define DRKR4 0x70
+#define DRKR5 0x74
+#define DRKR6 0x78
+#define DRKR7 0x7c
+
+#define DI_ADDRESS_RANGE (DRKR7 + 4)
+
+/*
+ * this doesn't really belong here but the
+ * portability layer doesn't include it
+ */
+#ifdef LINUX_KERNEL
+#define EXTERN_SYMBOL(symbol) EXPORT_SYMBOL(symbol)
+#else
+#define EXTERN_SYMBOL(symbol) do {} while (0)
+#endif
+
+#endif /* __DRYICE_REGS_H__ */
diff --git a/drivers/mxc/security/dryice.c b/drivers/mxc/security/dryice.c
new file mode 100644
index 000000000000..7d0d45b71d83
--- /dev/null
+++ b/drivers/mxc/security/dryice.c
@@ -0,0 +1,1123 @@
+/*
+ * Copyright (C) 2009-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+
+#undef DI_DEBUG /* enable debug messages */
+#undef DI_DEBUG_REGIO /* show register read/write */
+#undef DI_TESTING /* include test code */
+
+#ifdef DI_DEBUG
+#define di_debug(fmt, arg...) os_printk(KERN_INFO fmt, ##arg)
+#else
+#define di_debug(fmt, arg...) do {} while (0)
+#endif
+
+#define di_info(fmt, arg...) os_printk(KERN_INFO fmt, ##arg)
+#define di_warn(fmt, arg...) os_printk(KERN_WARNING fmt, ##arg)
+
+#include "sahara2/include/portable_os.h"
+#include "dryice.h"
+#include "dryice-regs.h"
+
+/* mask of the lock-related function flags */
+#define DI_FUNC_LOCK_FLAGS (DI_FUNC_FLAG_READ_LOCK | \
+ DI_FUNC_FLAG_WRITE_LOCK | \
+ DI_FUNC_FLAG_HARD_LOCK)
+
+/*
+ * dryice hardware states
+ */
+enum di_states {
+ DI_STATE_VALID = 0,
+ DI_STATE_NON_VALID,
+ DI_STATE_FAILURE,
+};
+
+/*
+ * todo list actions
+ */
+enum todo_actions {
+ TODO_ACT_WRITE_VAL,
+ TODO_ACT_WRITE_PTR,
+ TODO_ACT_WRITE_PTR32,
+ TODO_ACT_ASSIGN,
+ TODO_ACT_WAIT_RKG,
+};
+
+/*
+ * todo list status
+ */
+enum todo_status {
+ TODO_ST_LOADING,
+ TODO_ST_READY,
+ TODO_ST_PEND_WCF,
+ TODO_ST_PEND_RKG,
+ TODO_ST_DONE,
+};
+
+OS_DEV_INIT_DCL(dryice_init)
+OS_DEV_SHUTDOWN_DCL(dryice_exit)
+OS_DEV_ISR_DCL(dryice_norm_irq)
+OS_WAIT_OBJECT(done_queue);
+OS_WAIT_OBJECT(exit_queue);
+
+struct dryice_data {
+ int busy; /* enforce exclusive access */
+ os_lock_t busy_lock;
+ int exit_flag; /* don't start new operations */
+
+ uint32_t baseaddr; /* physical base address */
+ void *ioaddr; /* virtual base address */
+
+ /* interrupt handling */
+ struct irq_struct {
+ os_interrupt_id_t irq;
+ int set;
+ } irq_norm, irq_sec;
+
+ struct clk *clk; /* clock control */
+
+ int key_programmed; /* key has been programmed */
+ int key_selected; /* key has been selected */
+
+ /* callback function and cookie */
+ void (*cb_func)(di_return_t rc, unsigned long cookie);
+ unsigned long cb_cookie;
+} *di = NULL;
+
+#define TODO_LIST_LEN 12
+static struct {
+ struct td {
+ enum todo_actions action;
+ uint32_t src;
+ uint32_t dst;
+ int num;
+ } list[TODO_LIST_LEN];
+ int cur; /* current todo pointer */
+ int num; /* number of todo's on the list */
+ int async; /* non-zero if list is async */
+ int status; /* current status of the list */
+ di_return_t rc; /* return code generated by the list */
+} todo;
+
+/*
+ * dryice register read/write functions
+ */
+#ifdef DI_DEBUG_REGIO
+static uint32_t di_read(int reg)
+{
+ uint32_t val = os_read32(di->ioaddr + (reg));
+ di_info("di_read(0x%02x) = 0x%08x\n", reg, val);
+
+ return val;
+}
+
+static void di_write(uint32_t val, int reg)
+{
+ di_info("dryice_write_reg(0x%08x, 0x%02x)\n", val, reg);
+ os_write32(di->ioaddr + (reg), val);
+}
+#else
+#define di_read(reg) os_read32(di->ioaddr + (reg))
+#define di_write(val, reg) os_write32(di->ioaddr + (reg), val);
+#endif
+
+/*
+ * set the dryice busy flag atomically, allowing
+ * for case where the driver is trying to exit.
+ */
+static int di_busy_set(void)
+{
+ os_lock_context_t context;
+ int rc = 0;
+
+ os_lock_save_context(di->busy_lock, context);
+ if (di->exit_flag || di->busy)
+ rc = 1;
+ else
+ di->busy = 1;
+ os_unlock_restore_context(di->busy_lock, context);
+
+ return rc;
+}
+
+/*
+ * clear the dryice busy flag
+ */
+static inline void di_busy_clear(void)
+{
+ /* don't acquire the lock because the race is benign */
+ di->busy = 0;
+
+ if (di->exit_flag)
+ os_wake_sleepers(exit_queue);
+}
+
+/*
+ * return the current state of dryice
+ * (valid, non-valid, or failure)
+ */
+static enum di_states di_state(void)
+{
+ enum di_states state = DI_STATE_VALID;
+ uint32_t dsr = di_read(DSR);
+
+ if (dsr & DSR_NVF)
+ state = DI_STATE_NON_VALID;
+ else if (dsr & DSR_SVF)
+ state = DI_STATE_FAILURE;
+
+ return state;
+}
+
+#define DI_WRITE_LOOP_CNT 0x1000
+/*
+ * the write-error flag is something that shouldn't get set
+ * during normal operation. if it's set something is terribly
+ * wrong. the best we can do is try to clear the bit and hope
+ * that dryice will recover. this situation is similar to an
+ * unexpected bus fault in terms of severity.
+ */
+static void try_to_clear_wef(void)
+{
+ int cnt;
+
+ while (1) {
+ di_write(DSR_WEF, DSR);
+ for (cnt = 0; cnt < DI_WRITE_LOOP_CNT; cnt++) {
+ if ((di_read(DSR) & DSR_WEF) == 0)
+ break;
+ }
+ di_warn("WARNING: DryIce cannot clear DSR_WEF "
+ "(Write Error Flag)!\n");
+ }
+}
+
+/*
+ * write a dryice register and loop, waiting for it
+ * to complete. use only during driver initialization.
+ * returns 0 on success or 1 on write failure.
+ */
+static int di_write_loop(uint32_t val, int reg)
+{
+ int rc = 0;
+ int cnt;
+
+ di_debug("FUNC: %s\n", __func__);
+ di_write(val, reg);
+
+ for (cnt = 0; cnt < DI_WRITE_LOOP_CNT; cnt++) {
+ uint32_t dsr = di_read(DSR);
+ if (dsr & DSR_WEF) {
+ try_to_clear_wef();
+ rc = 1;
+ }
+ if (dsr & DSR_WCF)
+ break;
+ }
+ di_debug("wait_write_loop looped %d times\n", cnt);
+ if (cnt == DI_WRITE_LOOP_CNT)
+ rc = 1;
+
+ if (rc)
+ di_warn("DryIce wait_write_done: WRITE ERROR!\n");
+ return rc;
+}
+
+/*
+ * initialize the todo list. must be called
+ * before adding items to the list.
+ */
+static void todo_init(int async_flag)
+{
+ di_debug("FUNC: %s\n", __func__);
+ todo.cur = 0;
+ todo.num = 0;
+ todo.async = async_flag;
+ todo.rc = 0;
+ todo.status = TODO_ST_LOADING;
+}
+
+/*
+ * perform the current action on the todo list
+ */
+#define TC todo.list[todo.cur]
+void todo_cur(void)
+{
+ di_debug("FUNC: %s[%d]\n", __func__, todo.cur);
+ switch (TC.action) {
+ case TODO_ACT_WRITE_VAL:
+ di_debug(" TODO_ACT_WRITE_VAL\n");
+ /* enable the write-completion interrupt */
+ todo.status = TODO_ST_PEND_WCF;
+ di_write(di_read(DIER) | DIER_WCIE, DIER);
+
+ di_write(TC.src, TC.dst);
+ break;
+
+ case TODO_ACT_WRITE_PTR32:
+ di_debug(" TODO_ACT_WRITE_PTR32\n");
+ /* enable the write-completion interrupt */
+ todo.status = TODO_ST_PEND_WCF;
+ di_write(di_read(DIER) | DIER_WCIE, DIER);
+
+ di_write(*(uint32_t *)TC.src, TC.dst);
+ break;
+
+ case TODO_ACT_WRITE_PTR:
+ {
+ uint8_t *p = (uint8_t *)TC.src;
+ uint32_t val = 0;
+ int num = TC.num;
+
+ di_debug(" TODO_ACT_WRITE_PTR\n");
+ while (num--)
+ val = (val << 8) | *p++;
+
+ /* enable the write-completion interrupt */
+ todo.status = TODO_ST_PEND_WCF;
+ di_write(di_read(DIER) | DIER_WCIE, DIER);
+
+ di_write(val, TC.dst);
+ }
+ break;
+
+ case TODO_ACT_ASSIGN:
+ di_debug(" TODO_ACT_ASSIGN\n");
+ switch (TC.num) {
+ case 1:
+ *(uint8_t *)TC.dst = TC.src;
+ break;
+ case 2:
+ *(uint16_t *)TC.dst = TC.src;
+ break;
+ case 4:
+ *(uint32_t *)TC.dst = TC.src;
+ break;
+ default:
+ di_warn("Unexpected size in TODO_ACT_ASSIGN\n");
+ break;
+ }
+ break;
+
+ case TODO_ACT_WAIT_RKG:
+ di_debug(" TODO_ACT_WAIT_RKG\n");
+ /* enable the random-key interrupt */
+ todo.status = TODO_ST_PEND_RKG;
+ di_write(di_read(DIER) | DIER_RKIE, DIER);
+ break;
+
+ default:
+ di_debug(" TODO_ACT_NOOP\n");
+ break;
+ }
+}
+
+/*
+ * called when done with the todo list.
+ * if async, it does the callback.
+ * if blocking, it wakes up the caller.
+ */
+static void todo_done(di_return_t rc)
+{
+ todo.rc = rc;
+ todo.status = TODO_ST_DONE;
+ if (todo.async) {
+ di_busy_clear();
+ if (di->cb_func)
+ di->cb_func(rc, di->cb_cookie);
+ } else
+ os_wake_sleepers(done_queue);
+}
+
+/*
+ * performs the actions sequentially from the todo list
+ * until it encounters an item that isn't ready.
+ */
+static void todo_run(void)
+{
+ di_debug("FUNC: %s\n", __func__);
+ while (todo.status == TODO_ST_READY) {
+ if (todo.cur == todo.num) {
+ todo_done(0);
+ break;
+ }
+ todo_cur();
+ if (todo.status != TODO_ST_READY)
+ break;
+ todo.cur++;
+ }
+}
+
+/*
+ * kick off the todo list by making it ready
+ */
+static void todo_start(void)
+{
+ di_debug("FUNC: %s\n", __func__);
+ todo.status = TODO_ST_READY;
+ todo_run();
+}
+
+/*
+ * blocking callers sleep here until the todo list is done
+ */
+static int todo_wait_done(void)
+{
+ di_debug("FUNC: %s\n", __func__);
+ os_sleep(done_queue, todo.status == TODO_ST_DONE, 0);
+
+ return todo.rc;
+}
+
+/*
+ * add a dryice register write to the todo list.
+ * the value to be written is supplied.
+ */
+#define todo_write_val(val, reg) \
+ todo_add(TODO_ACT_WRITE_VAL, val, reg, 0)
+
+/*
+ * add a dryice register write to the todo list.
+ * "size" bytes pointed to by addr will be written.
+ */
+#define todo_write_ptr(addr, reg, size) \
+ todo_add(TODO_ACT_WRITE_PTR, (uint32_t)addr, reg, size)
+
+/*
+ * add a dryice register write to the todo list.
+ * the word pointed to by addr will be written.
+ */
+#define todo_write_ptr32(addr, reg) \
+ todo_add(TODO_ACT_WRITE_PTR32, (uint32_t)addr, reg, 0)
+
+/*
+ * add a dryice memory write to the todo list.
+ * object can only have a size of 1, 2, or 4 bytes.
+ */
+#define todo_assign(var, val) \
+ todo_add(TODO_ACT_ASSIGN, val, (uint32_t)&(var), sizeof(var))
+
+#define todo_wait_rkg() \
+ todo_add(TODO_ACT_WAIT_RKG, 0, 0, 0)
+
+static void todo_add(int action, uint32_t src, uint32_t dst, int num)
+{
+ struct td *p = &todo.list[todo.num];
+
+ di_debug("FUNC: %s\n", __func__);
+ if (todo.num == TODO_LIST_LEN) {
+ di_warn("WARNING: DryIce todo-list overflow!\n");
+ return;
+ }
+ p->action = action;
+ p->src = src;
+ p->dst = dst;
+ p->num = num;
+ todo.num++;
+}
+
+#if defined(DI_DEBUG) || defined(DI_TESTING)
+/*
+ * print out the contents of the dryice status register
+ * with all the bits decoded
+ */
+static void show_dsr(const char *heading)
+{
+ uint32_t dsr = di_read(DSR);
+
+ di_info("%s\n", heading);
+ if (dsr & DSR_TAMPER_BITS) {
+ if (dsr & DSR_WTD)
+ di_info("Wire-mesh Tampering Detected\n");
+ if (dsr & DSR_ETBD)
+ di_info("External Tampering B Detected\n");
+ if (dsr & DSR_ETAD)
+ di_info("External Tampering A Detected\n");
+ if (dsr & DSR_EBD)
+ di_info("External Boot Detected\n");
+ if (dsr & DSR_SAD)
+ di_info("Security Alarm Detected\n");
+ if (dsr & DSR_TTD)
+ di_info("Temperature Tampering Detected\n");
+ if (dsr & DSR_CTD)
+ di_info("Clock Tampering Detected\n");
+ if (dsr & DSR_VTD)
+ di_info("Voltage Tampering Detected\n");
+ if (dsr & DSR_MCO)
+ di_info("Monotonic Counter Overflow\n");
+ if (dsr & DSR_TCO)
+ di_info("Time Counter Overflow\n");
+ } else
+ di_info("No Tamper Events Detected\n");
+
+ di_info("%d Key Busy Flag\n", !!(dsr & DSR_KBF));
+ di_info("%d Write Busy Flag\n", !!(dsr & DSR_WBF));
+ di_info("%d Write Next Flag\n", !!(dsr & DSR_WNF));
+ di_info("%d Write Complete Flag\n", !!(dsr & DSR_WCF));
+ di_info("%d Write Error Flag\n", !!(dsr & DSR_WEF));
+ di_info("%d Random Key Error\n", !!(dsr & DSR_RKE));
+ di_info("%d Random Key Valid\n", !!(dsr & DSR_RKV));
+ di_info("%d Clock Alarm Flag\n", !!(dsr & DSR_CAF));
+ di_info("%d Non-Valid Flag\n", !!(dsr & DSR_NVF));
+ di_info("%d Security Violation Flag\n", !!(dsr & DSR_SVF));
+}
+
+/*
+ * print out a key in hex
+ */
+static void print_key(const char *tag, uint8_t *key, int bits)
+{
+ int bytes = (bits + 7) / 8;
+
+ di_info("%s", tag);
+ while (bytes--)
+ os_printk("%02x", *key++);
+ os_printk("\n");
+}
+#endif /* defined(DI_DEBUG) || defined(DI_TESTING) */
+
+/*
+ * dryice normal interrupt service routine
+ */
+OS_DEV_ISR(dryice_norm_irq)
+{
+ /* save dryice status register */
+ uint32_t dsr = di_read(DSR);
+
+ if (dsr & DSR_WCF) {
+ /* disable the write-completion interrupt */
+ di_write(di_read(DIER) & ~DIER_WCIE, DIER);
+
+ if (todo.status == TODO_ST_PEND_WCF) {
+ if (dsr & DSR_WEF) {
+ try_to_clear_wef();
+ todo_done(DI_ERR_WRITE);
+ } else {
+ todo.cur++;
+ todo.status = TODO_ST_READY;
+ todo_run();
+ }
+ }
+ } else if (dsr & (DSR_RKV | DSR_RKE)) {
+ /* disable the random-key-gen interrupt */
+ di_write(di_read(DIER) & ~DIER_RKIE, DIER);
+
+ if (todo.status == TODO_ST_PEND_RKG) {
+ if (dsr & DSR_RKE)
+ todo_done(DI_ERR_FAIL);
+ else {
+ todo.cur++;
+ todo.status = TODO_ST_READY;
+ todo_run();
+ }
+ }
+ }
+
+ os_dev_isr_return(1);
+}
+
+/* write loop with error handling -- for init only */
+#define di_write_loop_goto(val, reg, rc, label) \
+ do {if (di_write_loop(val, reg)) \
+ {rc = OS_ERROR_FAIL_S; goto label; } } while (0)
+
+/*
+ * dryice driver initialization
+ */
+OS_DEV_INIT(dryice_init)
+{
+ di_return_t rc = 0;
+
+ di_info("MXC DryIce driver\n");
+
+ /* allocate memory */
+ di = os_alloc_memory(sizeof(*di), GFP_KERNEL);
+ if (di == NULL) {
+ rc = OS_ERROR_NO_MEMORY_S;
+ goto err_alloc;
+ }
+ memset(di, 0, sizeof(*di));
+ di->baseaddr = DRYICE_BASE_ADDR;
+ di->irq_norm.irq = MXC_INT_DRYICE_NORM;
+ di->irq_sec.irq = MXC_INT_DRYICE_SEC;
+
+ /* map i/o registers */
+ di->ioaddr = os_map_device(di->baseaddr, DI_ADDRESS_RANGE);
+ if (di->ioaddr == NULL) {
+ rc = OS_ERROR_FAIL_S;
+ goto err_iomap;
+ }
+
+ /* allocate locks */
+ di->busy_lock = os_lock_alloc_init();
+ if (di->busy_lock == NULL) {
+ rc = OS_ERROR_NO_MEMORY_S;
+ goto err_locks;
+ }
+
+ /* enable clocks (is there a portable way to do this?) */
+ di->clk = clk_get(NULL, "dryice_clk");
+ clk_enable(di->clk);
+
+ /* register for interrupts */
+ /* os_register_interrupt() dosen't support an option to make the
+ interrupt as shared. Replaced it with request_irq().*/
+ rc = request_irq(di->irq_norm.irq, dryice_norm_irq, IRQF_SHARED,
+ "dry_ice", di);
+ if (rc)
+ goto err_irqs;
+ else
+ di->irq_norm.set = 1;
+
+ /*
+ * DRYICE HARDWARE INIT
+ */
+
+#ifdef DI_DEBUG
+ show_dsr("DSR Pre-Initialization State");
+#endif
+
+ if (di_state() == DI_STATE_NON_VALID) {
+ uint32_t dsr = di_read(DSR);
+
+ di_debug("initializing from non-valid state\n");
+
+ /* clear security violation flag */
+ if (dsr & DSR_SVF)
+ di_write_loop_goto(DSR_SVF, DSR, rc, err_write);
+
+ /* clear tamper detect flags */
+ if (dsr & DSR_TAMPER_BITS)
+ di_write_loop_goto(DSR_TAMPER_BITS, DSR, rc, err_write);
+
+ /* initialize timers */
+ di_write_loop_goto(0, DTCLR, rc, err_write);
+ di_write_loop_goto(0, DTCMR, rc, err_write);
+ di_write_loop_goto(0, DMCR, rc, err_write);
+
+ /* clear non-valid flag */
+ di_write_loop_goto(DSR_NVF, DSR, rc, err_write);
+ }
+
+ /* set tamper events we are interested in watching */
+ di_write_loop_goto(DTCR_WTE | DTCR_ETBE | DTCR_ETAE, DTCR, rc,
+ err_write);
+#ifdef DI_DEBUG
+ show_dsr("DSR Post-Initialization State");
+#endif
+ os_dev_init_return(OS_ERROR_OK_S);
+
+err_write:
+ /* unregister interrupts */
+ if (di->irq_norm.set)
+ os_deregister_interrupt(di->irq_norm.irq);
+ if (di->irq_sec.set)
+ os_deregister_interrupt(di->irq_sec.irq);
+
+ /* turn off clocks (is there a portable way to do this?) */
+ clk_disable(di->clk);
+ clk_put(di->clk);
+
+err_irqs:
+ /* unallocate locks */
+ os_lock_deallocate(di->busy_lock);
+
+err_locks:
+ /* unmap i/o registers */
+ os_unmap_device(di->ioaddr, DI_ADDRESS_RANGE);
+
+err_iomap:
+ /* free the dryice struct */
+ os_free_memory(di);
+
+err_alloc:
+ os_dev_init_return(rc);
+}
+
+/*
+ * dryice driver exit routine
+ */
+OS_DEV_SHUTDOWN(dryice_exit)
+{
+ /* don't allow new operations */
+ di->exit_flag = 1;
+
+ /* wait for the current operation to complete */
+ os_sleep(exit_queue, di->busy == 0, 0);
+
+ /* unregister interrupts */
+ if (di->irq_norm.set)
+ os_deregister_interrupt(di->irq_norm.irq);
+ if (di->irq_sec.set)
+ os_deregister_interrupt(di->irq_sec.irq);
+
+ /* turn off clocks (is there a portable way to do this?) */
+ clk_disable(di->clk);
+ clk_put(di->clk);
+
+ /* unallocate locks */
+ os_lock_deallocate(di->busy_lock);
+
+ /* unmap i/o registers */
+ os_unmap_device(di->ioaddr, DI_ADDRESS_RANGE);
+
+ /* free the dryice struct */
+ os_free_memory(di);
+
+ os_dev_shutdown_return(OS_ERROR_OK_S);
+}
+
+di_return_t dryice_set_programmed_key(const void *key_data, int key_bits,
+ int flags)
+{
+ uint32_t dcr;
+ int key_bytes, reg;
+ di_return_t rc = 0;
+
+ if (di_busy_set())
+ return DI_ERR_BUSY;
+
+ if (key_data == NULL) {
+ rc = DI_ERR_INVAL;
+ goto err;
+ }
+ if (key_bits < 0 || key_bits > MAX_KEY_LEN || key_bits % 8) {
+ rc = DI_ERR_INVAL;
+ goto err;
+ }
+ if (flags & DI_FUNC_FLAG_WORD_KEY) {
+ if (key_bits % 32 || (uint32_t)key_data & 0x3) {
+ rc = DI_ERR_INVAL;
+ goto err;
+ }
+ }
+ if (di->key_programmed) {
+ rc = DI_ERR_INUSE;
+ goto err;
+ }
+ if (di_state() == DI_STATE_FAILURE) {
+ rc = DI_ERR_STATE;
+ goto err;
+ }
+ dcr = di_read(DCR);
+ if (dcr & DCR_PKWHL) {
+ rc = DI_ERR_HLOCK;
+ goto err;
+ }
+ if (dcr & DCR_PKWSL) {
+ rc = DI_ERR_SLOCK;
+ goto err;
+ }
+ key_bytes = key_bits / 8;
+
+ todo_init((flags & DI_FUNC_FLAG_ASYNC) != 0);
+
+ /* accomodate busses that can only do 32-bit transfers */
+ if (flags & DI_FUNC_FLAG_WORD_KEY) {
+ uint32_t *keyp = (void *)key_data;
+
+ for (reg = 0; reg < MAX_KEY_WORDS; reg++) {
+ if (reg < MAX_KEY_WORDS - key_bytes / 4)
+ todo_write_val(0, DPKR7 - reg * 4);
+ else {
+ todo_write_ptr32(keyp, DPKR7 - reg * 4);
+ keyp++;
+ }
+ }
+ } else {
+ uint8_t *keyp = (void *)key_data;
+
+ for (reg = 0; reg < MAX_KEY_WORDS; reg++) {
+ int size = key_bytes - (MAX_KEY_WORDS - reg - 1) * 4;
+ if (size <= 0)
+ todo_write_val(0, DPKR7 - reg * 4);
+ else {
+ if (size > 4)
+ size = 4;
+ todo_write_ptr(keyp, DPKR7 - reg * 4, size);
+ keyp += size;
+ }
+ }
+ }
+ todo_assign(di->key_programmed, 1);
+
+ if (flags & DI_FUNC_LOCK_FLAGS) {
+ dcr = di_read(DCR);
+ if (flags & DI_FUNC_FLAG_READ_LOCK) {
+ if (flags & DI_FUNC_FLAG_HARD_LOCK)
+ dcr |= DCR_PKRHL;
+ else
+ dcr |= DCR_PKRSL;
+ }
+ if (flags & DI_FUNC_FLAG_WRITE_LOCK) {
+ if (flags & DI_FUNC_FLAG_HARD_LOCK)
+ dcr |= DCR_PKWHL;
+ else
+ dcr |= DCR_PKWSL;
+ }
+ todo_write_val(dcr, DCR);
+ }
+ todo_start();
+
+ if (flags & DI_FUNC_FLAG_ASYNC)
+ return 0;
+
+ rc = todo_wait_done();
+err:
+ di_busy_clear();
+ return rc;
+}
+EXTERN_SYMBOL(dryice_set_programmed_key);
+
+di_return_t dryice_get_programmed_key(uint8_t *key_data, int key_bits)
+{
+ int reg, byte, key_bytes;
+ uint32_t dcr, dpkr;
+ di_return_t rc = 0;
+
+ if (di_busy_set())
+ return DI_ERR_BUSY;
+
+ if (key_data == NULL) {
+ rc = DI_ERR_INVAL;
+ goto err;
+ }
+ if (key_bits < 0 || key_bits > MAX_KEY_LEN || key_bits % 8) {
+ rc = DI_ERR_INVAL;
+ goto err;
+ }
+ #if 0
+ if (!di->key_programmed) {
+ rc = DI_ERR_UNSET;
+ goto err;
+ }
+ #endif
+ if (di_state() == DI_STATE_FAILURE) {
+ rc = DI_ERR_STATE;
+ goto err;
+ }
+ dcr = di_read(DCR);
+ if (dcr & DCR_PKRHL) {
+ rc = DI_ERR_HLOCK;
+ goto err;
+ }
+ if (dcr & DCR_PKRSL) {
+ rc = DI_ERR_SLOCK;
+ goto err;
+ }
+ key_bytes = key_bits / 8;
+
+ /* read key */
+ for (reg = 0; reg < MAX_KEY_WORDS; reg++) {
+ if (reg < (MAX_KEY_BYTES - key_bytes) / 4)
+ continue;
+ dpkr = di_read(DPKR7 - reg * 4);
+
+ for (byte = 0; byte < 4; byte++) {
+ if (reg * 4 + byte >= MAX_KEY_BYTES - key_bytes) {
+ int shift = 24 - byte * 8;
+ *key_data++ = (dpkr >> shift) & 0xff;
+ }
+ }
+ dpkr = 0; /* cleared for security */
+ }
+err:
+ di_busy_clear();
+ return rc;
+}
+EXTERN_SYMBOL(dryice_get_programmed_key);
+
+di_return_t dryice_release_programmed_key(void)
+{
+ uint32_t dcr;
+ di_return_t rc = 0;
+
+ if (di_busy_set())
+ return DI_ERR_BUSY;
+
+ if (!di->key_programmed) {
+ rc = DI_ERR_UNSET;
+ goto err;
+ }
+ dcr = di_read(DCR);
+ if (dcr & DCR_PKWHL) {
+ rc = DI_ERR_HLOCK;
+ goto err;
+ }
+ if (dcr & DCR_PKWSL) {
+ rc = DI_ERR_SLOCK;
+ goto err;
+ }
+ di->key_programmed = 0;
+
+err:
+ di_busy_clear();
+ return rc;
+}
+EXTERN_SYMBOL(dryice_release_programmed_key);
+
+di_return_t dryice_set_random_key(int flags)
+{
+ uint32_t dcr;
+ di_return_t rc = 0;
+
+ if (di_busy_set())
+ return DI_ERR_BUSY;
+
+ if (di_state() == DI_STATE_FAILURE) {
+ rc = DI_ERR_STATE;
+ goto err;
+ }
+ dcr = di_read(DCR);
+ if (dcr & DCR_RKHL) {
+ rc = DI_ERR_HLOCK;
+ goto err;
+ }
+ if (dcr & DCR_RKSL) {
+ rc = DI_ERR_SLOCK;
+ goto err;
+ }
+ todo_init((flags & DI_FUNC_FLAG_ASYNC) != 0);
+
+ /* clear Random Key Error bit, if set */
+ if (di_read(DSR) & DSR_RKE)
+ todo_write_val(DSR_RKE, DCR);
+
+ /* load random key */
+ todo_write_val(DKCR_LRK, DKCR);
+
+ /* wait for RKV (valid) or RKE (error) */
+ todo_wait_rkg();
+
+ if (flags & DI_FUNC_LOCK_FLAGS) {
+ dcr = di_read(DCR);
+ if (flags & DI_FUNC_FLAG_WRITE_LOCK) {
+ if (flags & DI_FUNC_FLAG_HARD_LOCK)
+ dcr |= DCR_RKHL;
+ else
+ dcr |= DCR_RKSL;
+ }
+ todo_write_val(dcr, DCR);
+ }
+ todo_start();
+
+ if (flags & DI_FUNC_FLAG_ASYNC)
+ return 0;
+
+ rc = todo_wait_done();
+err:
+ di_busy_clear();
+ return rc;
+}
+EXTERN_SYMBOL(dryice_set_random_key);
+
+di_return_t dryice_select_key(di_key_t key, int flags)
+{
+ uint32_t dcr, dksr;
+ di_return_t rc = 0;
+
+ if (di_busy_set())
+ return DI_ERR_BUSY;
+
+ switch (key) {
+ case DI_KEY_FK:
+ dksr = DKSR_IIM_KEY;
+ break;
+ case DI_KEY_PK:
+ dksr = DKSR_PROG_KEY;
+ break;
+ case DI_KEY_RK:
+ dksr = DKSR_RAND_KEY;
+ break;
+ case DI_KEY_FPK:
+ dksr = DKSR_PROG_XOR_IIM_KEY;
+ break;
+ case DI_KEY_FRK:
+ dksr = DKSR_RAND_XOR_IIM_KEY;
+ break;
+ default:
+ rc = DI_ERR_INVAL;
+ goto err;
+ }
+ if (di->key_selected) {
+ rc = DI_ERR_INUSE;
+ goto err;
+ }
+ if (di_state() != DI_STATE_VALID) {
+ rc = DI_ERR_STATE;
+ goto err;
+ }
+ dcr = di_read(DCR);
+ if (dcr & DCR_KSHL) {
+ rc = DI_ERR_HLOCK;
+ goto err;
+ }
+ if (dcr & DCR_KSSL) {
+ rc = DI_ERR_SLOCK;
+ goto err;
+ }
+ todo_init((flags & DI_FUNC_FLAG_ASYNC) != 0);
+
+ /* select key */
+ todo_write_val(dksr, DKSR);
+
+ todo_assign(di->key_selected, 1);
+
+ if (flags & DI_FUNC_LOCK_FLAGS) {
+ dcr = di_read(DCR);
+ if (flags & DI_FUNC_FLAG_WRITE_LOCK) {
+ if (flags & DI_FUNC_FLAG_HARD_LOCK)
+ dcr |= DCR_KSHL;
+ else
+ dcr |= DCR_KSSL;
+ }
+ todo_write_val(dcr, DCR);
+ }
+ todo_start();
+
+ if (flags & DI_FUNC_FLAG_ASYNC)
+ return 0;
+
+ rc = todo_wait_done();
+err:
+ di_busy_clear();
+ return rc;
+}
+EXTERN_SYMBOL(dryice_select_key);
+
+di_return_t dryice_check_key(di_key_t *key)
+{
+ uint32_t dksr;
+ di_return_t rc = 0;
+
+ if (di_busy_set())
+ return DI_ERR_BUSY;
+
+ if (key == NULL) {
+ rc = DI_ERR_INVAL;
+ goto err;
+ }
+
+ dksr = di_read(DKSR);
+
+ if (di_state() != DI_STATE_VALID) {
+ dksr = DKSR_IIM_KEY;
+ rc = DI_ERR_STATE;
+ } else if (dksr == DI_KEY_RK || dksr == DI_KEY_FRK) {
+ if (!(di_read(DSR) & DSR_RKV)) {
+ dksr = DKSR_IIM_KEY;
+ rc = DI_ERR_UNSET;
+ }
+ }
+ switch (dksr) {
+ case DKSR_IIM_KEY:
+ *key = DI_KEY_FK;
+ break;
+ case DKSR_PROG_KEY:
+ *key = DI_KEY_PK;
+ break;
+ case DKSR_RAND_KEY:
+ *key = DI_KEY_RK;
+ break;
+ case DKSR_PROG_XOR_IIM_KEY:
+ *key = DI_KEY_FPK;
+ break;
+ case DKSR_RAND_XOR_IIM_KEY:
+ *key = DI_KEY_FRK;
+ break;
+ }
+err:
+ di_busy_clear();
+ return rc;
+}
+EXTERN_SYMBOL(dryice_check_key);
+
+di_return_t dryice_release_key_selection(void)
+{
+ uint32_t dcr;
+ di_return_t rc = 0;
+
+ if (di_busy_set())
+ return DI_ERR_BUSY;
+
+ if (!di->key_selected) {
+ rc = DI_ERR_UNSET;
+ goto err;
+ }
+ dcr = di_read(DCR);
+ if (dcr & DCR_KSHL) {
+ rc = DI_ERR_HLOCK;
+ goto err;
+ }
+ if (dcr & DCR_KSSL) {
+ rc = DI_ERR_SLOCK;
+ goto err;
+ }
+ di->key_selected = 0;
+
+err:
+ di_busy_clear();
+ return rc;
+}
+EXTERN_SYMBOL(dryice_release_key_selection);
+
+di_return_t dryice_get_tamper_event(uint32_t *events, uint32_t *timestamp,
+ int flags)
+{
+ di_return_t rc = 0;
+
+ if (di_busy_set())
+ return DI_ERR_BUSY;
+
+ if (di_state() == DI_STATE_VALID) {
+ rc = DI_ERR_STATE;
+ goto err;
+ }
+ if (events == NULL) {
+ rc = DI_ERR_INVAL;
+ goto err;
+ }
+ *events = di_read(DSR) & DSR_TAMPER_BITS;
+ if (timestamp) {
+ if (di_state() == DI_STATE_NON_VALID)
+ *timestamp = di_read(DTCMR);
+ else
+ *timestamp = 0;
+ }
+err:
+ di_busy_clear();
+ return rc;
+}
+EXTERN_SYMBOL(dryice_get_tamper_event);
+
+di_return_t dryice_register_callback(void (*func)(di_return_t,
+ unsigned long cookie),
+ unsigned long cookie)
+{
+ di_return_t rc = 0;
+
+ if (di_busy_set())
+ return DI_ERR_BUSY;
+
+ di->cb_func = func;
+ di->cb_cookie = cookie;
+
+ di_busy_clear();
+ return rc;
+}
+EXTERN_SYMBOL(dryice_register_callback);
+
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_DESCRIPTION("DryIce");
+MODULE_LICENSE("GPL");
diff --git a/drivers/mxc/security/dryice.h b/drivers/mxc/security/dryice.h
new file mode 100644
index 000000000000..127e0bcd5d1b
--- /dev/null
+++ b/drivers/mxc/security/dryice.h
@@ -0,0 +1,287 @@
+/*
+ * Copyright (C) 2009-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+
+#ifndef __DRYICE_H__
+#define __DRYICE_H__
+
+
+/*!
+ * @file dryice.h
+ * @brief Definition of DryIce API.
+ */
+
+/*! @page dryice_api DryIce API
+ *
+ * Definition of the DryIce API.
+ *
+ * The DryIce API implements a software interface to the DryIce hardware
+ * block. Methods are provided to store, retrieve, generate, and manage
+ * cryptographic keys and to monitor security tamper events.
+ *
+ * See @ref dryice_api for the DryIce API.
+ */
+
+/*!
+ * This defines the SCC key length (in bits)
+ */
+#define SCC_KEY_LEN 168
+
+/*!
+ * This defines the maximum key length (in bits)
+ */
+#define MAX_KEY_LEN 256
+#define MAX_KEY_BYTES ((MAX_KEY_LEN) / 8)
+#define MAX_KEY_WORDS ((MAX_KEY_LEN) / 32)
+
+/*!
+ * @name DryIce Function Flags
+ */
+/*@{*/
+#define DI_FUNC_FLAG_ASYNC 0x01 /*!< do not block */
+#define DI_FUNC_FLAG_READ_LOCK 0x02 /*!< set read lock for this resource */
+#define DI_FUNC_FLAG_WRITE_LOCK 0x04 /*!< set write lock for resource */
+#define DI_FUNC_FLAG_HARD_LOCK 0x08 /*!< locks will be hard (default soft) */
+#define DI_FUNC_FLAG_WORD_KEY 0x10 /*!< key provided as 32-bit words */
+/*@}*/
+
+/*!
+ * @name DryIce Tamper Events
+ */
+/*@{*/
+#define DI_TAMPER_EVENT_WTD (1 << 23) /*!< wire-mesh tampering det */
+#define DI_TAMPER_EVENT_ETBD (1 << 22) /*!< ext tampering det: input B */
+#define DI_TAMPER_EVENT_ETAD (1 << 21) /*!< ext tampering det: input A */
+#define DI_TAMPER_EVENT_EBD (1 << 20) /*!< external boot detected */
+#define DI_TAMPER_EVENT_SAD (1 << 19) /*!< security alarm detected */
+#define DI_TAMPER_EVENT_TTD (1 << 18) /*!< temperature tampering det */
+#define DI_TAMPER_EVENT_CTD (1 << 17) /*!< clock tampering det */
+#define DI_TAMPER_EVENT_VTD (1 << 16) /*!< voltage tampering det */
+#define DI_TAMPER_EVENT_MCO (1 << 3) /*!< monotonic counter overflow */
+#define DI_TAMPER_EVENT_TCO (1 << 2) /*!< time counter overflow */
+/*@}*/
+
+/*!
+ * DryIce Key Sources
+ */
+typedef enum di_key {
+ DI_KEY_FK, /*!< the fused (IIM) key */
+ DI_KEY_PK, /*!< the programmed key */
+ DI_KEY_RK, /*!< the random key */
+ DI_KEY_FPK, /*!< the programmed key XORed with the fused key */
+ DI_KEY_FRK, /*!< the random key XORed with the fused key */
+} di_key_t;
+
+/*!
+ * DryIce Error Codes
+ */
+typedef enum dryice_return {
+ DI_SUCCESS = 0, /*!< operation was successful */
+ DI_ERR_BUSY, /*!< device or resource busy */
+ DI_ERR_STATE, /*!< dryice is in incompatible state */
+ DI_ERR_INUSE, /*!< resource is already in use */
+ DI_ERR_UNSET, /*!< resource has not been initialized */
+ DI_ERR_WRITE, /*!< error occurred during register write */
+ DI_ERR_INVAL, /*!< invalid argument */
+ DI_ERR_FAIL, /*!< operation failed */
+ DI_ERR_HLOCK, /*!< resource is hard locked */
+ DI_ERR_SLOCK, /*!< resource is soft locked */
+ DI_ERR_NOMEM, /*!< out of memory */
+} di_return_t;
+
+/*!
+ * These functions define the DryIce API.
+ */
+
+/*!
+ * Write a given key to the Programmed Key registers in DryIce, and
+ * optionally lock the Programmed Key against either reading or further
+ * writing. The value is held until a call to the release_programmed_key
+ * interface is made, or until the appropriate HW reset if the write-lock
+ * flags are used. Unused key bits will be zeroed.
+ *
+ * @param[in] key_data A pointer to the key data to be programmed, with
+ * the most significant byte or word first. This
+ * will be interpreted as a byte pointer unless the
+ * WORD_KEY flag is set, in which case it will be
+ * treated as a word pointer and the key data will be
+ * read a word at a time, starting with the MSW.
+ * When called asynchronously, the data pointed to by
+ * key_data must persist until the operation completes.
+ *
+ * @param[in] key_bits The number of bits in the key to be stored.
+ * This must be a multiple of 8 and within the
+ * range of 0 and MAX_KEY_LEN.
+ *
+ * @param[in] flags This is a bit-wise OR of the flags to be passed
+ * to the function. Flags can include:
+ * ASYNC, READ_LOCK, WRITE_LOCK, HARD_LOCK, and
+ * WORD_KEY.
+ *
+ * @return Returns SUCCESS (0), BUSY if DryIce is busy, INVAL
+ * on invalid arguments, INUSE if key has already been
+ * programmed, STATE if DryIce is in the wrong state,
+ * HLOCK or SLOCK if the key registers are locked for
+ * writing, and WRITE if a write error occurs
+ * (See #di_return_t).
+ */
+extern di_return_t dryice_set_programmed_key(const void *key_data, int key_bits,
+ int flags);
+
+/*!
+ * Read the Programmed Key registers and write the contents into a buffer.
+ *
+ * @param[out] key_data A byte pointer to where the key data will be written,
+ * with the most significant byte being written first.
+ *
+ * @param[in] key_bits The number of bits of the key to be retrieved.
+ * This must be a multiple of 8 and within the
+ * range of 0 and MAX_KEY_LEN.
+ *
+ * @return Returns SUCCESS (0), BUSY if DryIce is busy, INVAL
+ * on invalid arguments, UNSET if key has not been
+ * programmed, STATE if DryIce is in the wrong state,
+ * and HLOCK or SLOCK if the key registers are locked for
+ * reading (See #di_return_t).
+ */
+extern di_return_t dryice_get_programmed_key(uint8_t *key_data, int key_bits);
+
+/*!
+ * Allow the set_programmed_key interface to be used to write a new
+ * Programmed Key to DryIce. Note that this interface does not overwrite
+ * the value in the Programmed Key registers.
+ *
+ * @return Returns SUCCESS (0), BUSY if DryIce is busy,
+ * UNSET if the key has not been previously set, and
+ * HLOCK or SLOCK if the key registers are locked for
+ * writing (See #di_return_t).
+ */
+extern di_return_t dryice_release_programmed_key(void);
+
+/*!
+ * Generate and load a new Random Key in DryIce, and optionally lock the
+ * Random Key against further change.
+ *
+ * @param[in] flags This is a bit-wise OR of the flags to be passed
+ * to the function. Flags can include:
+ * ASYNC, READ_LOCK, WRITE_LOCK, and HARD_LOCK.
+ *
+ * @return Returns SUCCESS (0), BUSY if DryIce is busy, STATE
+ * if DryIce is in the wrong state, FAIL if the key gen
+ * failed, HLOCK or SLOCK if the key registers are
+ * locked, and WRITE if a write error occurs
+ * (See #di_return_t).
+ */
+extern di_return_t dryice_set_random_key(int flags);
+
+/*!
+ * Set the key selection in DryIce to determine the key used by an
+ * encryption module such as SCC. The selection is held until a call to the
+ * Release Selected Key interface is made, or until the appropriate HW
+ * reset if the LOCK flags are used.
+ *
+ * @param[in] key The source of the key to be used by the SCC
+ * (See #di_key_t).
+ *
+ * @param[in] flags This is a bit-wise OR of the flags to be passed
+ * to the function. Flags can include:
+ * ASYNC, WRITE_LOCK, and HARD_LOCK.
+ *
+ * @return Returns SUCCESS (0), BUSY if DryIce is busy, INVAL
+ * on invalid arguments, INUSE if a selection has already
+ * been made, STATE if DryIce is in the wrong state,
+ * HLOCK or SLOCK if the selection register is locked,
+ * and WRITE if a write error occurs
+ */
+extern di_return_t dryice_select_key(di_key_t key, int flags);
+
+/*!
+ * Check which key will be used in the SCC. This is needed because in some
+ * DryIce states, the Key Select Register is overridden by a default value
+ * (the Fused/IIM key).
+ *
+ * @param[out] key The source of the key that is currently selected for
+ * use by the SCC. This may be different from the key
+ * specified by the dryice_select_key function
+ * (See #di_key_t). This value is set even if an error
+ * code (except for BUSY) is returned.
+ *
+ * @return Returns SUCCESS (0), BUSY if DryIce is busy, STATE if
+ * DryIce is in the wrong state, INVAL on invalid
+ * arguments, or UNSET if no key has been selected
+ * (See #di_return_t).
+ */
+extern di_return_t dryice_check_key(di_key_t *key);
+
+/*!
+ * Allow the dryice_select_key interface to be used to set a new key selection
+ * in DryIce. Note that this interface does not overwrite the value in DryIce.
+ *
+ * @return Returns SUCCESS (0), BUSY if DryIce is busy, UNSET
+ * if the no selection has been made previously, and
+ * HLOCK or SLOCK if the selection register is locked
+ * (See #di_return_t).
+ */
+extern di_return_t dryice_release_key_selection(void);
+
+/*!
+ * Returns tamper-detection status bits. Also an optional timestamp when
+ * DryIce is in the Non-valid state. If DryIce is not in Failure or Non-valid
+ * state, this interface returns a failure code.
+ *
+ * @param[out] events This is a bit-wise OR of the following events:
+ * WTD (Wire Mesh), ETBD (External Tamper B),
+ * ETAD (External Tamper A), EBD (External Boot),
+ * SAD (Security Alarm), TTD (Temperature Tamper),
+ * CTD (Clock Tamper), VTD (Voltage Tamper),
+ * MCO (Monolithic Counter Overflow), and
+ * TCO (Time Counter Overflow).
+ *
+ * @param[out] timestamp This is the value of the time counter in seconds
+ * when the tamper occurred. A timestamp will not be
+ * returned if a NULL pointer is specified. If DryIce
+ * is not in the Non-valid state the time cannot be
+ * read, so a timestamp of 0 will be returned.
+ *
+ * @param[in] flags This is a bit-wise OR of the flags to be passed
+ * to the function. Flags is ignored currently by
+ * this function.
+ *
+ * @return Returns SUCCESS (0), BUSY if DryIce is busy, and
+ * INVAL on invalid arguments (See #di_return_t).
+ */
+extern di_return_t
+dryice_get_tamper_event(uint32_t *events, uint32_t *timestamp, int flags);
+
+/*!
+ * Provide a callback function to be called upon the completion of DryIce calls
+ * that are executed asynchronously.
+ *
+ * @param[in] func This is a pointer to a function of type:
+ * void callback(di_return_t rc, unsigned long cookie)
+ * The return code of the async function is passed
+ * back in "rc" along with the cookie provided when
+ * registering the callback.
+ *
+ * @param[in] cookie This is an "opaque" cookie of type unsigned long that
+ * is returned on subsequent callbacks. It may be of any
+ * value.
+ *
+ * @return Returns SUCCESS (0), or BUSY if DryIce is busy
+ * (See #di_return_t).
+ */
+extern di_return_t dryice_register_callback(void (*func)(di_return_t rc,
+ unsigned long cookie),
+ unsigned long cookie);
+
+#endif /* __DRYICE_H__ */
diff --git a/drivers/mxc/security/mxc_scc.c b/drivers/mxc/security/mxc_scc.c
new file mode 100644
index 000000000000..20d54bfb5362
--- /dev/null
+++ b/drivers/mxc/security/mxc_scc.c
@@ -0,0 +1,2386 @@
+/*
+ * Copyright (C) 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file mxc_scc.c
+ *
+ * This is the driver code for the Security Controller (SCC). It has no device
+ * driver interface, so no user programs may access it. Its interaction with
+ * the Linux kernel is from calls to #scc_init() when the driver is loaded, and
+ * #scc_cleanup() should the driver be unloaded. The driver uses locking and
+ * (task-sleep/task-wakeup) functions of the kernel. It also registers itself
+ * to handle the interrupt line(s) from the SCC.
+ *
+ * Other drivers in the kernel may use the remaining API functions to get at
+ * the services of the SCC. The main service provided is the Secure Memory,
+ * which allows encoding and decoding of secrets with a per-chip secret key.
+ *
+ * The SCC is single-threaded, and so is this module. When the scc_crypt()
+ * routine is called, it will lock out other accesses to the function. If
+ * another task is already in the module, the subsequent caller will spin on a
+ * lock waiting for the other access to finish.
+ *
+ * Note that long crypto operations could cause a task to spin for a while,
+ * preventing other kernel work (other than interrupt processing) to get done.
+ *
+ * The external (kernel module) interface is through the following functions:
+ * @li scc_get_configuration()
+ * @li scc_crypt()
+ * @li scc_zeroize_memories()
+ * @li scc_monitor_security_failure()
+ * @li scc_stop_monitoring_security_failure()
+ * @li scc_set_sw_alarm()
+ * @li scc_read_register()
+ * @li scc_write_register()
+ *
+ * All other functions are internal to the driver.
+ *
+ * @ingroup MXCSCC
+*/
+#include "sahara2/include/fsl_platform.h"
+#include "sahara2/include/portable_os.h"
+#include "mxc_scc_internals.h"
+
+#include <linux/delay.h>
+
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18))
+
+#include <linux/device.h>
+#include <mach/clock.h>
+#include <linux/device.h>
+
+#else
+#include <linux/platform_device.h>
+#include <linux/clk.h>
+#include <linux/err.h>
+
+#endif
+
+/*!
+ * This is the set of errors which signal that access to the SCM RAM has
+ * failed or will fail.
+ */
+#define SCM_ACCESS_ERRORS \
+ (SCM_ERR_USER_ACCESS | SCM_ERR_ILLEGAL_ADDRESS | \
+ SCM_ERR_ILLEGAL_MASTER | SCM_ERR_CACHEABLE_ACCESS | \
+ SCM_ERR_UNALIGNED_ACCESS | SCM_ERR_BYTE_ACCESS | \
+ SCM_ERR_INTERNAL_ERROR | SCM_ERR_SMN_BLOCKING_ACCESS | \
+ SCM_ERR_CIPHERING | SCM_ERR_ZEROIZING | SCM_ERR_BUSY)
+/******************************************************************************
+ *
+ * Global / Static Variables
+ *
+ *****************************************************************************/
+
+/*!
+ * This is type void* so that a) it cannot directly be dereferenced,
+ * and b) pointer arithmetic on it will function in a 'normal way' for
+ * the offsets in scc_defines.h
+ *
+ * scc_base is the location in the iomap where the SCC's registers
+ * (and memory) start.
+ *
+ * The referenced data is declared volatile so that the compiler will
+ * not make any assumptions about the value of registers in the SCC,
+ * and thus will always reload the register into CPU memory before
+ * using it (i.e. wherever it is referenced in the driver).
+ *
+ * This value should only be referenced by the #SCC_READ_REGISTER and
+ * #SCC_WRITE_REGISTER macros and their ilk. All dereferences must be
+ * 32 bits wide.
+ */
+static volatile void *scc_base;
+
+/*! Array to hold function pointers registered by
+ #scc_monitor_security_failure() and processed by
+ #scc_perform_callbacks() */
+static void (*scc_callbacks[SCC_CALLBACK_SIZE]) (void);
+
+/*! Structure returned by #scc_get_configuration() */
+static scc_config_t scc_configuration = {
+ .driver_major_version = SCC_DRIVER_MAJOR_VERSION_1,
+ .driver_minor_version = SCC_DRIVER_MINOR_VERSION_8,
+ .scm_version = -1,
+ .smn_version = -1,
+ .block_size_bytes = -1,
+ .black_ram_size_blocks = -1,
+ .red_ram_size_blocks = -1
+};
+
+/*! Key Control Information. Integrity is controlled by use of
+ #scc_crypto_lock. */
+static struct scc_key_slot scc_key_info[SCC_KEY_SLOTS];
+
+/*! Internal flag to know whether SCC is in Failed state (and thus many
+ * registers are unavailable). Once it goes failed, it never leaves it. */
+static volatile enum scc_status scc_availability = SCC_STATUS_INITIAL;
+
+/*! Flag to say whether interrupt handler has been registered for
+ * SMN interrupt */
+static int smn_irq_set = 0;
+
+/*! Flag to say whether interrupt handler has been registered for
+ * SCM interrupt */
+static int scm_irq_set = 0;
+
+/*! This lock protects the #scc_callbacks list as well as the @c
+ * callbacks_performed flag in #scc_perform_callbacks. Since the data this
+ * protects may be read or written from either interrupt or base level, all
+ * operations should use the irqsave/irqrestore or similar to make sure that
+ * interrupts are inhibited when locking from base level.
+ */
+static spinlock_t scc_callbacks_lock = SPIN_LOCK_UNLOCKED;
+
+/*!
+ * Ownership of this lock prevents conflicts on the crypto operation in the SCC
+ * and the integrity of the #scc_key_info.
+ */
+static spinlock_t scc_crypto_lock = SPIN_LOCK_UNLOCKED;
+
+/*! Calculated once for quick reference to size of the unreserved space in one
+ * RAM in SCM.
+ */
+static uint32_t scc_memory_size_bytes;
+
+/*! Calculated once for quick reference to size of SCM address space */
+static uint32_t scm_highest_memory_address;
+
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,18))
+#ifndef SCC_CLOCK_NOT_GATED
+/*! Pointer to SCC's clock information. Initialized during scc_init(). */
+static struct clk *scc_clk = NULL;
+#endif
+#endif
+
+/*! The lookup table for an 8-bit value. Calculated once
+ * by #scc_init_ccitt_crc().
+ */
+static uint16_t scc_crc_lookup_table[256];
+
+/*! Fixed padding for appending to plaintext to fill out a block */
+static uint8_t scc_block_padding[8] =
+ { SCC_DRIVER_PAD_CHAR, 0, 0, 0, 0, 0, 0, 0 };
+
+/******************************************************************************
+ *
+ * Function Implementations - Externally Accessible
+ *
+ *****************************************************************************/
+
+/*****************************************************************************/
+/* fn scc_init() */
+/*****************************************************************************/
+/*!
+ * Initialize the driver at boot time or module load time.
+ *
+ * Register with the kernel as the interrupt handler for the SCC interrupt
+ * line(s).
+ *
+ * Map the SCC's register space into the driver's memory space.
+ *
+ * Query the SCC for its configuration and status. Save the configuration in
+ * #scc_configuration and save the status in #scc_availability. Called by the
+ * kernel.
+ *
+ * Do any locking/wait queue initialization which may be necessary.
+ *
+ * The availability fuse may be checked, depending on platform.
+ */
+static int scc_init(void)
+{
+ uint32_t smn_status;
+ int i;
+ int return_value = -EIO; /* assume error */
+ if (scc_availability == SCC_STATUS_INITIAL) {
+
+ /* Set this until we get an initial reading */
+ scc_availability = SCC_STATUS_CHECKING;
+
+ /* Initialize the constant for the CRC function */
+ scc_init_ccitt_crc();
+
+ /* initialize the callback table */
+ for (i = 0; i < SCC_CALLBACK_SIZE; i++) {
+ scc_callbacks[i] = 0;
+ }
+
+ /* Initialize key slots */
+ for (i = 0; i < SCC_KEY_SLOTS; i++) {
+ scc_key_info[i].offset = i * SCC_KEY_SLOT_SIZE;
+ scc_key_info[i].status = 0; /* unassigned */
+ }
+
+ /* Enable the SCC clock on platforms where it is gated */
+#ifndef SCC_CLOCK_NOT_GATED
+
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18))
+ mxc_clks_enable(SCC_CLK);
+#else
+
+ scc_clk = clk_get(NULL, "scc_clk");
+ if (scc_clk != ERR_PTR(ENOENT)) {
+ clk_enable(scc_clk);
+ }
+#endif /* LINUX_VERSION_CODE */
+
+#endif /* SCC_CLOCK_NOT_GATED */
+ /* See whether there is an SCC available */
+ if (0 && !SCC_ENABLED()) {
+ os_printk(KERN_ERR
+ "SCC: Fuse for SCC is set to disabled. Exiting.\n");
+ } else {
+ /* Map the SCC (SCM and SMN) memory on the internal bus into
+ kernel address space */
+ scc_base = (void *)IO_ADDRESS(SCC_BASE);
+
+ /* If that worked, we can try to use the SCC */
+ if (scc_base == NULL) {
+ os_printk(KERN_ERR
+ "SCC: Register mapping failed. Exiting.\n");
+ } else {
+ /* Get SCM into 'clean' condition w/interrupts cleared &
+ disabled */
+ SCC_WRITE_REGISTER(SCM_INTERRUPT_CTRL,
+ SCM_INTERRUPT_CTRL_CLEAR_INTERRUPT
+ |
+ SCM_INTERRUPT_CTRL_MASK_INTERRUPTS);
+
+ /* Clear error status register (any write will do it) */
+ SCC_WRITE_REGISTER(SCM_ERROR_STATUS, 0);
+
+ /*
+ * There is an SCC. Determine its current state. Side effect
+ * is to populate scc_config and scc_availability
+ */
+ smn_status = scc_grab_config_values();
+
+ /* Try to set up interrupt handler(s) */
+ if (scc_availability == SCC_STATUS_OK) {
+ if (setup_interrupt_handling() != 0) {
+ unsigned condition;
+ /*!
+ * The error could be only that the SCM interrupt was
+ * not set up. This interrupt is always masked, so
+ * that is not an issue.
+ *
+ * The SMN's interrupt may be shared on that line, it
+ * may be separate, or it may not be wired. Do what
+ * is necessary to check its status.
+ *
+ * Although the driver is coded for possibility of not
+ * having SMN interrupt, the fact that there is one
+ * means it should be available and used.
+ */
+#ifdef USE_SMN_INTERRUPT
+ condition = !smn_irq_set; /* Separate. Check SMN binding */
+#elif !defined(NO_SMN_INTERRUPT)
+ condition = !scm_irq_set; /* Shared. Check SCM binding */
+#else
+ condition = FALSE; /* SMN not wired at all. Ignore. */
+#endif
+ /* setup was not able to set up SMN interrupt */
+ scc_availability =
+ SCC_STATUS_UNIMPLEMENTED;
+ } /* interrupt handling returned non-zero */
+ } /* availability is OK */
+ if (scc_availability == SCC_STATUS_OK) {
+ /* Get SMN into 'clean' condition w/interrupts cleared &
+ enabled */
+ SCC_WRITE_REGISTER(SMN_COMMAND,
+ SMN_COMMAND_CLEAR_INTERRUPT
+ |
+ SMN_COMMAND_ENABLE_INTERRUPT);
+ }
+ /* availability is still OK */
+ } /* if scc_base != NULL */
+
+ } /* if SCC_ENABLED() */
+
+ /*
+ * If status is SCC_STATUS_UNIMPLEMENTED or is still
+ * SCC_STATUS_CHECKING, could be leaving here with the driver partially
+ * initialized. In either case, cleanup (which will mark the SCC as
+ * UNIMPLEMENTED).
+ */
+ if (scc_availability == SCC_STATUS_CHECKING ||
+ scc_availability == SCC_STATUS_UNIMPLEMENTED) {
+ scc_cleanup();
+ } else {
+ return_value = 0; /* All is well */
+ }
+ }
+ /* ! STATUS_INITIAL */
+ pr_debug("SCC: Driver Status is %s\n",
+ (scc_availability == SCC_STATUS_INITIAL) ? "INITIAL" :
+ (scc_availability == SCC_STATUS_CHECKING) ? "CHECKING" :
+ (scc_availability ==
+ SCC_STATUS_UNIMPLEMENTED) ? "UNIMPLEMENTED"
+ : (scc_availability ==
+ SCC_STATUS_OK) ? "OK" : (scc_availability ==
+ SCC_STATUS_FAILED) ? "FAILED" :
+ "UNKNOWN");
+
+ return return_value;
+} /* scc_init */
+
+/*****************************************************************************/
+/* fn scc_cleanup() */
+/*****************************************************************************/
+/*!
+ * Perform cleanup before driver/module is unloaded by setting the machine
+ * state close to what it was when the driver was loaded. This function is
+ * called when the kernel is shutting down or when this driver is being
+ * unloaded.
+ *
+ * A driver like this should probably never be unloaded, especially if there
+ * are other module relying upon the callback feature for monitoring the SCC
+ * status.
+ *
+ * In any case, cleanup the callback table (by clearing out all of the
+ * pointers). Deregister the interrupt handler(s). Unmap SCC registers.
+ *
+ */
+static void scc_cleanup(void)
+{
+ int i;
+
+ /* Mark the driver / SCC as unusable. */
+ scc_availability = SCC_STATUS_UNIMPLEMENTED;
+
+ /* Clear out callback table */
+ for (i = 0; i < SCC_CALLBACK_SIZE; i++) {
+ scc_callbacks[i] = 0;
+ }
+
+ /* If SCC has been mapped in, clean it up and unmap it */
+ if (scc_base) {
+ /* For the SCM, disable interrupts, zeroize RAMs. Interrupt
+ * status will appear because zeroize will complete. */
+ SCC_WRITE_REGISTER(SCM_INTERRUPT_CTRL,
+ SCM_INTERRUPT_CTRL_MASK_INTERRUPTS |
+ SCM_INTERRUPT_CTRL_ZEROIZE_MEMORY);
+
+ /* For the SMN, clear and disable interrupts */
+ SCC_WRITE_REGISTER(SMN_COMMAND, SMN_COMMAND_CLEAR_INTERRUPT);
+
+ /* remove virtual mapping */
+ iounmap((void *)scc_base);
+ }
+
+ /* Now that interrupts cannot occur, disassociate driver from the interrupt
+ * lines.
+ */
+
+ /* Deregister SCM interrupt handler */
+ if (scm_irq_set) {
+ os_deregister_interrupt(INT_SCC_SCM);
+ }
+
+ /* Deregister SMN interrupt handler */
+ if (smn_irq_set) {
+#ifdef USE_SMN_INTERRUPT
+ os_deregister_interrupt(INT_SCC_SMN);
+#endif
+ }
+ pr_debug("SCC driver cleaned up.\n");
+
+} /* scc_cleanup */
+
+/*****************************************************************************/
+/* fn scc_get_configuration() */
+/*****************************************************************************/
+scc_config_t *scc_get_configuration(void)
+{
+ /*
+ * If some other driver calls scc before the kernel does, make sure that
+ * this driver's initialization is performed.
+ */
+ if (scc_availability == SCC_STATUS_INITIAL) {
+ scc_init();
+ }
+
+ /*!
+ * If there is no SCC, yet the driver exists, the value -1 will be in
+ * the #scc_config_t fields for other than the driver versions.
+ */
+ return &scc_configuration;
+} /* scc_get_configuration */
+
+/*****************************************************************************/
+/* fn scc_zeroize_memories() */
+/*****************************************************************************/
+scc_return_t scc_zeroize_memories(void)
+{
+ scc_return_t return_status = SCC_RET_FAIL;
+ uint32_t status;
+
+ if (scc_availability == SCC_STATUS_INITIAL) {
+ scc_init();
+ }
+
+ if (scc_availability == SCC_STATUS_OK) {
+ unsigned long irq_flags; /* for IRQ save/restore */
+
+ /* Lock access to crypto memory of the SCC */
+ spin_lock_irqsave(&scc_crypto_lock, irq_flags);
+
+ /* Start the Zeroize by setting a bit in the SCM_INTERRUPT_CTRL
+ * register */
+ SCC_WRITE_REGISTER(SCM_INTERRUPT_CTRL,
+ SCM_INTERRUPT_CTRL_MASK_INTERRUPTS
+ | SCM_INTERRUPT_CTRL_ZEROIZE_MEMORY);
+
+ scc_wait_completion();
+
+ /* Get any error info */
+ status = SCC_READ_REGISTER(SCM_ERROR_STATUS);
+
+ /* unlock the SCC */
+ spin_unlock_irqrestore(&scc_crypto_lock, irq_flags);
+
+ if (!(status & SCM_ERR_ZEROIZE_FAILED)) {
+ return_status = SCC_RET_OK;
+ } else {
+ pr_debug
+ ("SCC: Zeroize failed. SCM Error Status is 0x%08x\n",
+ status);
+ }
+
+ /* Clear out any status. */
+ SCC_WRITE_REGISTER(SCM_INTERRUPT_CTRL,
+ SCM_INTERRUPT_CTRL_CLEAR_INTERRUPT
+ | SCM_INTERRUPT_CTRL_MASK_INTERRUPTS);
+
+ /* and any error status */
+ SCC_WRITE_REGISTER(SCM_ERROR_STATUS, 0);
+ }
+
+ return return_status;
+} /* scc_zeroize_memories */
+
+/*****************************************************************************/
+/* fn scc_crypt() */
+/*****************************************************************************/
+scc_return_t
+scc_crypt(unsigned long count_in_bytes, const uint8_t * data_in,
+ const uint8_t * init_vector,
+ scc_enc_dec_t direction, scc_crypto_mode_t crypto_mode,
+ scc_verify_t check_mode, uint8_t * data_out,
+ unsigned long *count_out_bytes)
+
+{
+ scc_return_t return_code = SCC_RET_FAIL;
+
+ if (scc_availability == SCC_STATUS_INITIAL) {
+ scc_init();
+ }
+
+ (void)scc_update_state(); /* in case no interrupt line from SMN */
+
+ /* make initial error checks */
+ if (scc_availability != SCC_STATUS_OK
+ || count_in_bytes == 0
+ || data_in == 0
+ || data_out == 0
+ || (crypto_mode != SCC_CBC_MODE && crypto_mode != SCC_ECB_MODE)
+ || (crypto_mode == SCC_CBC_MODE && init_vector == NULL)
+ || (direction != SCC_ENCRYPT && direction != SCC_DECRYPT)
+ || (check_mode == SCC_VERIFY_MODE_NONE &&
+ count_in_bytes % SCC_BLOCK_SIZE_BYTES() != 0)
+ || (direction == SCC_DECRYPT &&
+ count_in_bytes % SCC_BLOCK_SIZE_BYTES() != 0)
+ || (check_mode != SCC_VERIFY_MODE_NONE &&
+ check_mode != SCC_VERIFY_MODE_CCITT_CRC)) {
+ pr_debug
+ ("SCC: scc_crypt() count_in_bytes_ok = %d; data_in_ok = %d;"
+ " data_out_ok = %d; iv_ok = %d\n", !(count_in_bytes == 0),
+ !(data_in == 0), !(data_out == 0),
+ !(crypto_mode == SCC_CBC_MODE && init_vector == NULL));
+ pr_debug("SCC: scc_crypt() mode_ok=%d; direction_ok=%d;"
+ " size_ok=%d, check_mode_ok=%d\n",
+ !(crypto_mode != SCC_CBC_MODE
+ && crypto_mode != SCC_ECB_MODE),
+ !(direction != SCC_ENCRYPT
+ && direction != SCC_DECRYPT),
+ !((check_mode == SCC_VERIFY_MODE_NONE
+ && count_in_bytes % SCC_BLOCK_SIZE_BYTES() != 0)
+ || (direction == SCC_DECRYPT
+ && count_in_bytes % SCC_BLOCK_SIZE_BYTES() !=
+ 0)), !(check_mode != SCC_VERIFY_MODE_NONE
+ && check_mode !=
+ SCC_VERIFY_MODE_CCITT_CRC));
+ pr_debug("SCC: scc_crypt() detected bad argument\n");
+ } else {
+ /* Start settings for write to SCM_CONTROL register */
+ uint32_t scc_control = SCM_CONTROL_START_CIPHER;
+ unsigned long irq_flags; /* for IRQ save/restore */
+
+ /* Lock access to crypto memory of the SCC */
+ spin_lock_irqsave(&scc_crypto_lock, irq_flags);
+
+ /* Special needs for CBC Mode */
+ if (crypto_mode == SCC_CBC_MODE) {
+ scc_control |= SCM_CBC_MODE; /* change default of ECB */
+ /* Put in Initial Context. Vector registers are contiguous */
+ copy_to_scc(init_vector, SCM_INIT_VECTOR_0,
+ SCC_BLOCK_SIZE_BYTES(), NULL);
+ }
+
+ /* Fill the RED_START register */
+ SCC_WRITE_REGISTER(SCM_RED_START,
+ SCM_NON_RESERVED_OFFSET /
+ SCC_BLOCK_SIZE_BYTES());
+
+ /* Fill the BLACK_START register */
+ SCC_WRITE_REGISTER(SCM_BLACK_START,
+ SCM_NON_RESERVED_OFFSET /
+ SCC_BLOCK_SIZE_BYTES());
+
+ if (direction == SCC_ENCRYPT) {
+ /* Check for sufficient space in data_out */
+ if (check_mode == SCC_VERIFY_MODE_NONE) {
+ if (*count_out_bytes < count_in_bytes) {
+ return_code =
+ SCC_RET_INSUFFICIENT_SPACE;
+ }
+ } else { /* SCC_VERIFY_MODE_CCITT_CRC */
+ /* Calculate extra bytes needed for crc (2) and block
+ padding */
+ int padding_needed =
+ CRC_SIZE_BYTES + SCC_BLOCK_SIZE_BYTES() -
+ ((count_in_bytes + CRC_SIZE_BYTES)
+ % SCC_BLOCK_SIZE_BYTES());
+
+ /* Verify space is available */
+ if (*count_out_bytes <
+ count_in_bytes + padding_needed) {
+ return_code =
+ SCC_RET_INSUFFICIENT_SPACE;
+ }
+ }
+ /* If did not detect space error, do the encryption */
+ if (return_code != SCC_RET_INSUFFICIENT_SPACE) {
+ return_code =
+ scc_encrypt(count_in_bytes, data_in,
+ scc_control, data_out,
+ check_mode ==
+ SCC_VERIFY_MODE_CCITT_CRC,
+ count_out_bytes);
+ }
+
+ }
+ /* direction == SCC_ENCRYPT */
+ else { /* SCC_DECRYPT */
+ /* Check for sufficient space in data_out */
+ if (check_mode == SCC_VERIFY_MODE_NONE) {
+ if (*count_out_bytes < count_in_bytes) {
+ return_code =
+ SCC_RET_INSUFFICIENT_SPACE;
+ }
+ } else { /* SCC_VERIFY_MODE_CCITT_CRC */
+ /* Do initial check. Assume last block (of padding) and CRC
+ * will get stripped. After decipher is done and padding is
+ * removed, will know exact value.
+ */
+ int possible_size =
+ (int)count_in_bytes - CRC_SIZE_BYTES -
+ SCC_BLOCK_SIZE_BYTES();
+ if ((int)*count_out_bytes < possible_size) {
+ pr_debug
+ ("SCC: insufficient decrypt space %ld/%d.\n",
+ *count_out_bytes, possible_size);
+ return_code =
+ SCC_RET_INSUFFICIENT_SPACE;
+ }
+ }
+
+ /* If did not detect space error, do the decryption */
+ if (return_code != SCC_RET_INSUFFICIENT_SPACE) {
+ return_code =
+ scc_decrypt(count_in_bytes, data_in,
+ scc_control, data_out,
+ check_mode ==
+ SCC_VERIFY_MODE_CCITT_CRC,
+ count_out_bytes);
+ }
+
+ } /* SCC_DECRYPT */
+
+ /* unlock the SCC */
+ spin_unlock_irqrestore(&scc_crypto_lock, irq_flags);
+
+ } /* else no initial error */
+
+ return return_code;
+} /* scc_crypt */
+
+/*****************************************************************************/
+/* fn scc_set_sw_alarm() */
+/*****************************************************************************/
+void scc_set_sw_alarm(void)
+{
+
+ if (scc_availability == SCC_STATUS_INITIAL) {
+ scc_init();
+ }
+
+ /* Update scc_availability based on current SMN status. This might
+ * perform callbacks.
+ */
+ (void)scc_update_state();
+
+ /* if everything is OK, make it fail */
+ if (scc_availability == SCC_STATUS_OK) {
+
+ /* sound the alarm (and disable SMN interrupts */
+ SCC_WRITE_REGISTER(SMN_COMMAND, SMN_COMMAND_SET_SOFTWARE_ALARM);
+
+ scc_availability = SCC_STATUS_FAILED; /* Remember what we've done */
+
+ /* In case SMN interrupt is not available, tell the world */
+ scc_perform_callbacks();
+ }
+
+ return;
+} /* scc_set_sw_alarm */
+
+/*****************************************************************************/
+/* fn scc_monitor_security_failure() */
+/*****************************************************************************/
+scc_return_t scc_monitor_security_failure(void callback_func(void))
+{
+ int i;
+ unsigned long irq_flags; /* for IRQ save/restore */
+ scc_return_t return_status = SCC_RET_TOO_MANY_FUNCTIONS;
+ int function_stored = FALSE;
+
+ if (scc_availability == SCC_STATUS_INITIAL) {
+ scc_init();
+ }
+
+ /* Acquire lock of callbacks table. Could be spin_lock_irq() if this
+ * routine were just called from base (not interrupt) level
+ */
+ spin_lock_irqsave(&scc_callbacks_lock, irq_flags);
+
+ /* Search through table looking for empty slot */
+ for (i = 0; i < SCC_CALLBACK_SIZE; i++) {
+ if (scc_callbacks[i] == callback_func) {
+ if (function_stored) {
+ /* Saved duplicate earlier. Clear this later one. */
+ scc_callbacks[i] = NULL;
+ }
+ /* Exactly one copy is now stored */
+ return_status = SCC_RET_OK;
+ break;
+ } else if (scc_callbacks[i] == NULL && !function_stored) {
+ /* Found open slot. Save it and remember */
+ scc_callbacks[i] = callback_func;
+ return_status = SCC_RET_OK;
+ function_stored = TRUE;
+ }
+ }
+
+ /* Free the lock */
+ spin_unlock_irqrestore(&scc_callbacks_lock, irq_flags);
+
+ return return_status;
+} /* scc_monitor_security_failure */
+
+/*****************************************************************************/
+/* fn scc_stop_monitoring_security_failure() */
+/*****************************************************************************/
+void scc_stop_monitoring_security_failure(void callback_func(void))
+{
+ unsigned long irq_flags; /* for IRQ save/restore */
+ int i;
+
+ if (scc_availability == SCC_STATUS_INITIAL) {
+ scc_init();
+ }
+
+ /* Acquire lock of callbacks table. Could be spin_lock_irq() if this
+ * routine were just called from base (not interrupt) level
+ */
+ spin_lock_irqsave(&scc_callbacks_lock, irq_flags);
+
+ /* Search every entry of the table for this function */
+ for (i = 0; i < SCC_CALLBACK_SIZE; i++) {
+ if (scc_callbacks[i] == callback_func) {
+ scc_callbacks[i] = NULL; /* found instance - clear it out */
+ break;
+ }
+ }
+
+ /* Free the lock */
+ spin_unlock_irqrestore(&scc_callbacks_lock, irq_flags);
+
+ return;
+} /* scc_stop_monitoring_security_failure */
+
+/*****************************************************************************/
+/* fn scc_read_register() */
+/*****************************************************************************/
+scc_return_t scc_read_register(int register_offset, uint32_t * value)
+{
+ scc_return_t return_status = SCC_RET_FAIL;
+ uint32_t smn_status;
+ uint32_t scm_status;
+
+ if (scc_availability == SCC_STATUS_INITIAL) {
+ scc_init();
+ }
+
+ /* First layer of protection -- completely unaccessible SCC */
+ if (scc_availability != SCC_STATUS_UNIMPLEMENTED) {
+
+ /* Second layer -- that offset is valid */
+ if (register_offset != SMN_BITBANK_DECREMENT && /* write only! */
+ check_register_offset(register_offset) == SCC_RET_OK) {
+
+ /* Get current status / update local state */
+ smn_status = scc_update_state();
+ scm_status = SCC_READ_REGISTER(SCM_STATUS);
+
+ /*
+ * Third layer - verify that the register being requested is
+ * available in the current state of the SCC.
+ */
+ if ((return_status =
+ check_register_accessible(register_offset,
+ smn_status,
+ scm_status)) ==
+ SCC_RET_OK) {
+ *value = SCC_READ_REGISTER(register_offset);
+ }
+ }
+ }
+
+ return return_status;
+} /* scc_read_register */
+
+/*****************************************************************************/
+/* fn scc_write_register() */
+/*****************************************************************************/
+scc_return_t scc_write_register(int register_offset, uint32_t value)
+{
+ scc_return_t return_status = SCC_RET_FAIL;
+ uint32_t smn_status;
+ uint32_t scm_status;
+
+ if (scc_availability == SCC_STATUS_INITIAL) {
+ scc_init();
+ }
+
+ /* First layer of protection -- completely unaccessible SCC */
+ if (scc_availability != SCC_STATUS_UNIMPLEMENTED) {
+
+ /* Second layer -- that offset is valid */
+ if (!(register_offset == SCM_STATUS || /* These registers are */
+ register_offset == SCM_CONFIGURATION || /* Read Only */
+ register_offset == SMN_BIT_COUNT ||
+ register_offset == SMN_TIMER) &&
+ check_register_offset(register_offset) == SCC_RET_OK) {
+
+ /* Get current status / update local state */
+ smn_status = scc_update_state();
+ scm_status = SCC_READ_REGISTER(SCM_STATUS);
+
+ /*
+ * Third layer - verify that the register being requested is
+ * available in the current state of the SCC.
+ */
+ if (check_register_accessible
+ (register_offset, smn_status, scm_status) == 0) {
+ SCC_WRITE_REGISTER(register_offset, value);
+ return_status = SCC_RET_OK;
+ }
+ }
+ }
+
+ return return_status;
+} /* scc_write_register() */
+
+/******************************************************************************
+ *
+ * Function Implementations - Internal
+ *
+ *****************************************************************************/
+
+/*****************************************************************************/
+/* fn scc_irq() */
+/*****************************************************************************/
+/*!
+ * This is the interrupt handler for the SCC.
+ *
+ * This function checks the SMN Status register to see whether it
+ * generated the interrupt, then it checks the SCM Status register to
+ * see whether it needs attention.
+ *
+ * If an SMN Interrupt is active, then the SCC state set to failure, and
+ * #scc_perform_callbacks() is invoked to notify any interested parties.
+ *
+ * The SCM Interrupt should be masked, as this driver uses polling to determine
+ * when the SCM has completed a crypto or zeroing operation. Therefore, if the
+ * interrupt is active, the driver will just clear the interrupt and (re)mask.
+ *
+ */
+OS_DEV_ISR(scc_irq)
+{
+ uint32_t smn_status;
+ uint32_t scm_status;
+ int handled = 0; /* assume interrupt isn't from SMN */
+#if defined(USE_SMN_INTERRUPT)
+ int smn_irq = INT_SCC_SMN; /* SMN interrupt is on a line by itself */
+#elif defined (NO_SMN_INTERRUPT)
+ int smn_irq = -1; /* not wired to CPU at all */
+#else
+ int smn_irq = INT_SCC_SCM; /* SMN interrupt shares a line with SCM */
+#endif
+
+ /* Update current state... This will perform callbacks... */
+ smn_status = scc_update_state();
+
+ /* SMN is on its own interrupt line. Verify the IRQ was triggered
+ * before clearing the interrupt and marking it handled. */
+ if ((os_dev_get_irq() == smn_irq) &&
+ (smn_status & SMN_STATUS_SMN_STATUS_IRQ)) {
+ SCC_WRITE_REGISTER(SMN_COMMAND, SMN_COMMAND_CLEAR_INTERRUPT);
+ handled++; /* tell kernel that interrupt was handled */
+ }
+
+ /* Check on the health of the SCM */
+ scm_status = SCC_READ_REGISTER(SCM_STATUS);
+
+ /* The driver masks interrupts, so this should never happen. */
+ if (os_dev_get_irq() == INT_SCC_SCM) {
+ /* but if it does, try to prevent it in the future */
+ SCC_WRITE_REGISTER(SCM_INTERRUPT_CTRL,
+ SCM_INTERRUPT_CTRL_CLEAR_INTERRUPT
+ | SCM_INTERRUPT_CTRL_MASK_INTERRUPTS);
+ handled++;
+ }
+
+ /* Any non-zero value of handled lets kernel know we got something */
+ return IRQ_RETVAL(handled);
+}
+
+/*****************************************************************************/
+/* fn scc_perform_callbacks() */
+/*****************************************************************************/
+/*! Perform callbacks registered by #scc_monitor_security_failure().
+ *
+ * Make sure callbacks only happen once... Since there may be some reason why
+ * the interrupt isn't generated, this routine could be called from base(task)
+ * level.
+ *
+ * One at a time, go through #scc_callbacks[] and call any non-null pointers.
+ */
+static void scc_perform_callbacks(void)
+{
+ static int callbacks_performed = 0;
+ unsigned long irq_flags; /* for IRQ save/restore */
+ int i;
+
+ /* Acquire lock of callbacks table and callbacks_performed flag */
+ spin_lock_irqsave(&scc_callbacks_lock, irq_flags);
+
+ if (!callbacks_performed) {
+ callbacks_performed = 1;
+
+ /* Loop over all of the entries in the table */
+ for (i = 0; i < SCC_CALLBACK_SIZE; i++) {
+ /* If not null, ... */
+ if (scc_callbacks[i]) {
+ scc_callbacks[i] (); /* invoke the callback routine */
+ }
+ }
+ }
+
+ spin_unlock_irqrestore(&scc_callbacks_lock, irq_flags);
+
+ return;
+}
+
+/*****************************************************************************/
+/* fn copy_to_scc() */
+/*****************************************************************************/
+/*!
+ * Move data from possibly unaligned source and realign for SCC, possibly
+ * while calculating CRC.
+ *
+ * Multiple calls can be made to this routine (without intervening calls to
+ * #copy_from_scc(), as long as the sum total of bytes copied is a multiple of
+ * four (SCC native word size).
+ *
+ * @param[in] from Location in memory
+ * @param[out] to Location in SCC
+ * @param[in] count_bytes Number of bytes to copy
+ * @param[in,out] crc Pointer to CRC. Initial value must be
+ * #CRC_CCITT_START if this is the start of
+ * message. Output is the resulting (maybe
+ * partial) CRC. If NULL, no crc is calculated.
+ *
+ * @return Zero - success. Non-zero - SCM status bits defining failure.
+ */
+static uint32_t
+copy_to_scc(const uint8_t * from, uint32_t to, unsigned long count_bytes,
+ uint16_t * crc)
+{
+ int i;
+ uint32_t scm_word;
+ uint16_t current_crc = 0; /* local copy for fast access */
+ uint32_t status;
+
+ pr_debug("SCC: copying %ld bytes to 0x%0x.\n", count_bytes, to);
+
+ status = SCC_READ_REGISTER(SCM_ERROR_STATUS) & SCM_ACCESS_ERRORS;
+ if (status != 0) {
+ pr_debug
+ ("SCC copy_to_scc(): Error status detected (before copy):"
+ " %08x\n", status);
+ /* clear out errors left behind by somebody else */
+ SCC_WRITE_REGISTER(SCM_ERROR_STATUS, status);
+ }
+
+ if (crc) {
+ current_crc = *crc;
+ }
+
+ /* Initialize value being built for SCM. If we are starting 'clean',
+ * set it to zero. Otherwise pick up partial value which had been saved
+ * earlier. */
+ if (SCC_BYTE_OFFSET(to) == 0) {
+ scm_word = 0;
+ } else {
+ scm_word = SCC_READ_REGISTER(SCC_WORD_PTR(to)); /* recover */
+ }
+
+ /* Now build up SCM words and write them out when each is full */
+ for (i = 0; i < count_bytes; i++) {
+ uint8_t byte = *from++; /* value from plaintext */
+
+#if defined(__BIG_ENDIAN) || defined(FSL_HAVE_DRYICE)
+ scm_word = (scm_word << 8) | byte; /* add byte to SCM word */
+#else
+ scm_word = (byte << 24) | (scm_word >> 8);
+#endif
+ /* now calculate CCITT CRC */
+ if (crc) {
+ CALC_CRC(byte, current_crc);
+ }
+
+ to++; /* bump location in SCM */
+
+ /* check for full word */
+ if (SCC_BYTE_OFFSET(to) == 0) {
+ SCC_WRITE_REGISTER((uint32_t) (to - 4), scm_word); /* write it out */
+ }
+ }
+
+ /* If at partial word after previous loop, save it in SCM memory for
+ next time. */
+ if (SCC_BYTE_OFFSET(to) != 0) {
+ SCC_WRITE_REGISTER(SCC_WORD_PTR(to), scm_word); /* save */
+ }
+
+ /* Copy CRC back */
+ if (crc) {
+ *crc = current_crc;
+ }
+
+ status = SCC_READ_REGISTER(SCM_ERROR_STATUS) & SCM_ACCESS_ERRORS;
+ if (status != 0) {
+ pr_debug("SCC copy_to_scc(): Error status detected: %08x\n",
+ status);
+ /* Clear any/all bits. */
+ SCC_WRITE_REGISTER(SCM_ERROR_STATUS, status);
+ }
+ return status;
+}
+
+/*****************************************************************************/
+/* fn copy_from_scc() */
+/*****************************************************************************/
+/*!
+ * Move data from aligned 32-bit source and place in (possibly unaligned)
+ * target, and maybe calculate CRC at the same time.
+ *
+ * Multiple calls can be made to this routine (without intervening calls to
+ * #copy_to_scc(), as long as the sum total of bytes copied is be a multiple
+ * of four.
+ *
+ * @param[in] from Location in SCC
+ * @param[out] to Location in memory
+ * @param[in] count_bytes Number of bytes to copy
+ * @param[in,out] crc Pointer to CRC. Initial value must be
+ * #CRC_CCITT_START if this is the start of
+ * message. Output is the resulting (maybe
+ * partial) CRC. If NULL, crc is not calculated.
+ *
+ * @return Zero - success. Non-zero - SCM status bits defining failure.
+ */
+static uint32_t
+copy_from_scc(const uint32_t from, uint8_t * to, unsigned long count_bytes,
+ uint16_t * crc)
+{
+ uint32_t running_from = from;
+ uint32_t scm_word;
+ uint16_t current_crc = 0; /* local copy for fast access */
+ uint32_t status;
+ pr_debug("SCC: copying %ld bytes from 0x%x.\n", count_bytes, from);
+ status = SCC_READ_REGISTER(SCM_ERROR_STATUS) & SCM_ACCESS_ERRORS;
+ if (status != 0) {
+ pr_debug
+ ("SCC copy_from_scc(): Error status detected (before copy):"
+ " %08x\n", status);
+ /* clear out errors left behind by somebody else */
+ SCC_WRITE_REGISTER(SCM_ERROR_STATUS, status);
+ }
+
+ if (crc) {
+ current_crc = *crc;
+ }
+
+ /* Read word which is sitting in SCM memory. Ignore byte offset */
+ scm_word = SCC_READ_REGISTER(SCC_WORD_PTR(running_from));
+
+ /* If necessary, move the 'first' byte into place */
+ if (SCC_BYTE_OFFSET(running_from) != 0) {
+#if defined(__BIG_ENDIAN) || defined(FSL_HAVE_DRYICE)
+ scm_word <<= 8 * SCC_BYTE_OFFSET(running_from);
+#else
+ scm_word >>= 8 * SCC_BYTE_OFFSET(running_from);
+#endif
+ }
+
+ /* Now build up SCM words and write them out when each is full */
+ while (count_bytes--) {
+ uint8_t byte; /* value from plaintext */
+
+#if defined(__BIG_ENDIAN) || defined(FSL_HAVE_DRYICE)
+ byte = (scm_word & 0xff000000) >> 24; /* pull byte out of SCM word */
+ scm_word <<= 8; /* shift over to remove the just-pulled byte */
+#else
+ byte = (scm_word & 0xff);
+ scm_word >>= 8; /* shift over to remove the just-pulled byte */
+#endif
+ *to++ = byte; /* send byte to memory */
+
+ /* now calculate CRC */
+ if (crc) {
+ CALC_CRC(byte, current_crc);
+ }
+
+ running_from++;
+ /* check for empty word */
+ if (count_bytes && SCC_BYTE_OFFSET(running_from) == 0) {
+ /* read one in */
+ scm_word = SCC_READ_REGISTER((uint32_t) running_from);
+ }
+ }
+
+ if (crc) {
+ *crc = current_crc;
+ }
+
+ status = SCC_READ_REGISTER(SCM_ERROR_STATUS) & SCM_ACCESS_ERRORS;
+ if (status != 0) {
+ pr_debug("SCC copy_from_scc(): Error status detected: %08x\n",
+ status);
+ /* Clear any/all bits. */
+ SCC_WRITE_REGISTER(SCM_ERROR_STATUS, status);
+ }
+
+ return status;
+}
+
+/*****************************************************************************/
+/* fn scc_strip_padding() */
+/*****************************************************************************/
+/*!
+ * Remove padding from plaintext. Search backwards for #SCC_DRIVER_PAD_CHAR,
+ * verifying that each byte passed over is zero (0). Maximum number of bytes
+ * to examine is 8.
+ *
+ * @param[in] from Pointer to byte after end of message
+ * @param[out] count_bytes_stripped Number of padding bytes removed by this
+ * function.
+ *
+ * @return #SCC_RET_OK if all goes, well, #SCC_RET_FAIL if padding was
+ * not present.
+*/
+static scc_return_t
+scc_strip_padding(uint8_t * from, unsigned *count_bytes_stripped)
+{
+ int i = SCC_BLOCK_SIZE_BYTES();
+ scc_return_t return_code = SCC_RET_VERIFICATION_FAILED;
+
+ /*
+ * Search backwards looking for the magic marker. If it isn't found,
+ * make sure that a 0 byte is there in its place. Stop after the maximum
+ * amount of padding (8 bytes) has been searched);
+ */
+ while (i-- > 0) {
+ if (*--from == SCC_DRIVER_PAD_CHAR) {
+ *count_bytes_stripped = SCC_BLOCK_SIZE_BYTES() - i;
+ return_code = SCC_RET_OK;
+ break;
+ } else if (*from != 0) { /* if not marker, check for 0 */
+ pr_debug("SCC: Found non-zero interim pad: 0x%x\n",
+ *from);
+ break;
+ }
+ }
+
+ return return_code;
+}
+
+/*****************************************************************************/
+/* fn scc_update_state() */
+/*****************************************************************************/
+/*!
+ * Make certain SCC is still running.
+ *
+ * Side effect is to update #scc_availability and, if the state goes to failed,
+ * run #scc_perform_callbacks().
+ *
+ * (If #SCC_BRINGUP is defined, bring SCC to secure state if it is found to be
+ * in health check state)
+ *
+ * @return Current value of #SMN_STATUS register.
+ */
+static uint32_t scc_update_state(void)
+{
+ uint32_t smn_status_register = SMN_STATE_FAIL;
+ int smn_state;
+
+ /* if FAIL or UNIMPLEMENTED, don't bother */
+ if (scc_availability == SCC_STATUS_CHECKING ||
+ scc_availability == SCC_STATUS_OK) {
+
+ smn_status_register = SCC_READ_REGISTER(SMN_STATUS);
+ smn_state = smn_status_register & SMN_STATUS_STATE_MASK;
+
+#ifdef SCC_BRINGUP
+ /* If in Health Check while booting, try to 'bringup' to Secure mode */
+ if (scc_availability == SCC_STATUS_CHECKING &&
+ smn_state == SMN_STATE_HEALTH_CHECK) {
+ /* Code up a simple algorithm for the ASC */
+ SCC_WRITE_REGISTER(SMN_SEQUENCE_START, 0xaaaa);
+ SCC_WRITE_REGISTER(SMN_SEQUENCE_END, 0x5555);
+ SCC_WRITE_REGISTER(SMN_SEQUENCE_CHECK, 0x5555);
+ /* State should be SECURE now */
+ smn_status_register = SCC_READ_REGISTER(SMN_STATUS);
+ smn_state = smn_status_register & SMN_STATUS_STATE_MASK;
+ }
+#endif
+
+ /*
+ * State should be SECURE or NON_SECURE for operation of the part. If
+ * FAIL, mark failed (i.e. limited access to registers). Any other
+ * state, mark unimplemented, as the SCC is unuseable.
+ */
+ if (smn_state == SMN_STATE_SECURE
+ || smn_state == SMN_STATE_NON_SECURE) {
+ /* Healthy */
+ scc_availability = SCC_STATUS_OK;
+ } else if (smn_state == SMN_STATE_FAIL) {
+ scc_availability = SCC_STATUS_FAILED; /* uh oh - unhealthy */
+ scc_perform_callbacks();
+ os_printk(KERN_ERR "SCC: SCC went into FAILED mode\n");
+ } else {
+ /* START, ZEROIZE RAM, HEALTH CHECK, or unknown */
+ scc_availability = SCC_STATUS_UNIMPLEMENTED; /* unuseable */
+ os_printk(KERN_ERR "SCC: SCC declared UNIMPLEMENTED\n");
+ }
+ }
+ /* if availability is initial or ok */
+ return smn_status_register;
+}
+
+/*****************************************************************************/
+/* fn scc_init_ccitt_crc() */
+/*****************************************************************************/
+/*!
+ * Populate the partial CRC lookup table.
+ *
+ * @return none
+ *
+ */
+static void scc_init_ccitt_crc(void)
+{
+ int dividend; /* index for lookup table */
+ uint16_t remainder; /* partial value for a given dividend */
+ int bit; /* index into bits of a byte */
+
+ /*
+ * Compute the remainder of each possible dividend.
+ */
+ for (dividend = 0; dividend < 256; ++dividend) {
+ /*
+ * Start with the dividend followed by zeros.
+ */
+ remainder = dividend << (8);
+
+ /*
+ * Perform modulo-2 division, a bit at a time.
+ */
+ for (bit = 8; bit > 0; --bit) {
+ /*
+ * Try to divide the current data bit.
+ */
+ if (remainder & 0x8000) {
+ remainder = (remainder << 1) ^ CRC_POLYNOMIAL;
+ } else {
+ remainder = (remainder << 1);
+ }
+ }
+
+ /*
+ * Store the result into the table.
+ */
+ scc_crc_lookup_table[dividend] = remainder;
+ }
+
+} /* scc_init_ccitt_crc() */
+
+/*****************************************************************************/
+/* fn grab_config_values() */
+/*****************************************************************************/
+/*!
+ * grab_config_values() will read the SCM Configuration and SMN Status
+ * registers and store away version and size information for later use.
+ *
+ * @return The current value of the SMN Status register.
+ */
+static uint32_t scc_grab_config_values(void)
+{
+ uint32_t config_register;
+ uint32_t smn_status_register = SMN_STATE_FAIL;
+
+ if (scc_availability != SCC_STATUS_UNIMPLEMENTED) {
+ /* access the SCC - these are 'safe' registers */
+ config_register = SCC_READ_REGISTER(SCM_CONFIGURATION);
+ pr_debug("SCC Driver: SCM config is 0x%08x\n", config_register);
+
+ /* Get SMN status and update scc_availability */
+ smn_status_register = scc_update_state();
+ pr_debug("SCC Driver: SMN status is 0x%08x\n",
+ smn_status_register);
+
+ /* save sizes and versions information for later use */
+ scc_configuration.block_size_bytes = (config_register &
+ SCM_CFG_BLOCK_SIZE_MASK)
+ >> SCM_CFG_BLOCK_SIZE_SHIFT;
+
+ scc_configuration.red_ram_size_blocks = (config_register &
+ SCM_CFG_RED_SIZE_MASK)
+ >> SCM_CFG_RED_SIZE_SHIFT;
+
+ scc_configuration.black_ram_size_blocks = (config_register &
+ SCM_CFG_BLACK_SIZE_MASK)
+ >> SCM_CFG_BLACK_SIZE_SHIFT;
+
+ scc_configuration.scm_version = (config_register
+ & SCM_CFG_VERSION_ID_MASK)
+ >> SCM_CFG_VERSION_ID_SHIFT;
+
+ scc_configuration.smn_version = (smn_status_register &
+ SMN_STATUS_VERSION_ID_MASK)
+ >> SMN_STATUS_VERSION_ID_SHIFT;
+
+ if (scc_configuration.scm_version != SCM_VERSION_1) {
+ scc_availability = SCC_STATUS_UNIMPLEMENTED; /* Unknown version */
+ }
+
+ scc_memory_size_bytes = (SCC_BLOCK_SIZE_BYTES() *
+ scc_configuration.
+ black_ram_size_blocks)
+ - SCM_NON_RESERVED_OFFSET;
+
+ /* This last is for driver consumption only */
+ scm_highest_memory_address = SCM_BLACK_MEMORY +
+ (SCC_BLOCK_SIZE_BYTES() *
+ scc_configuration.black_ram_size_blocks);
+ }
+
+ return smn_status_register;
+} /* grab_config_values */
+
+/*****************************************************************************/
+/* fn setup_interrupt_handling() */
+/*****************************************************************************/
+/*!
+ * Register the SCM and SMN interrupt handlers.
+ *
+ * Called from #scc_init()
+ *
+ * @return 0 on success
+ */
+static int setup_interrupt_handling(void)
+{
+ int smn_error_code = -1;
+ int scm_error_code = -1;
+
+ /* Disnable SCM interrupts */
+ SCC_WRITE_REGISTER(SCM_INTERRUPT_CTRL,
+ SCM_INTERRUPT_CTRL_CLEAR_INTERRUPT
+ | SCM_INTERRUPT_CTRL_MASK_INTERRUPTS);
+
+#ifdef USE_SMN_INTERRUPT
+ /* Install interrupt service routine for SMN. */
+ smn_error_code = os_register_interrupt(SCC_DRIVER_NAME,
+ INT_SCC_SMN, scc_irq);
+ if (smn_error_code != 0) {
+ os_printk
+ ("SCC Driver: Error installing SMN Interrupt Handler: %d\n",
+ smn_error_code);
+ } else {
+ smn_irq_set = 1; /* remember this for cleanup */
+ /* Enable SMN interrupts */
+ SCC_WRITE_REGISTER(SMN_COMMAND,
+ SMN_COMMAND_CLEAR_INTERRUPT |
+ SMN_COMMAND_ENABLE_INTERRUPT);
+ }
+#else
+ smn_error_code = 0; /* no problems... will handle later */
+#endif
+
+ /*
+ * Install interrupt service routine for SCM (or both together).
+ */
+ scm_error_code = os_register_interrupt(SCC_DRIVER_NAME,
+ INT_SCC_SCM, scc_irq);
+ if (scm_error_code != 0) {
+#ifndef MXC
+ os_printk
+ ("SCC Driver: Error installing SCM Interrupt Handler: %d\n",
+ scm_error_code);
+#else
+ os_printk
+ ("SCC Driver: Error installing SCC Interrupt Handler: %d\n",
+ scm_error_code);
+#endif
+ } else {
+ scm_irq_set = 1; /* remember this for cleanup */
+#if defined(USE_SMN_INTERRUPT) && !defined(NO_SMN_INTERRUPT)
+ /* Enable SMN interrupts */
+ SCC_WRITE_REGISTER(SMN_COMMAND,
+ SMN_COMMAND_CLEAR_INTERRUPT |
+ SMN_COMMAND_ENABLE_INTERRUPT);
+#endif
+ }
+
+ /* Return an error if one was encountered */
+ return scm_error_code ? scm_error_code : smn_error_code;
+} /* setup_interrupt_handling */
+
+/*****************************************************************************/
+/* fn scc_do_crypto() */
+/*****************************************************************************/
+/*! Have the SCM perform the crypto function.
+ *
+ * Set up length register, and the store @c scm_control into control register
+ * to kick off the operation. Wait for completion, gather status, clear
+ * interrupt / status.
+ *
+ * @param byte_count number of bytes to perform in this operation
+ * @param scm_control Bit values to be set in @c SCM_CONTROL register
+ *
+ * @return 0 on success, value of #SCM_ERROR_STATUS on failure
+ */
+static uint32_t scc_do_crypto(int byte_count, uint32_t scm_control)
+{
+ int block_count = byte_count / SCC_BLOCK_SIZE_BYTES();
+ uint32_t crypto_status;
+
+ /* clear any outstanding flags */
+ SCC_WRITE_REGISTER(SCM_INTERRUPT_CTRL,
+ SCM_INTERRUPT_CTRL_CLEAR_INTERRUPT
+ | SCM_INTERRUPT_CTRL_MASK_INTERRUPTS);
+
+ /* In length register, 0 means 1, etc. */
+ SCC_WRITE_REGISTER(SCM_LENGTH, block_count - 1);
+
+ /* set modes and kick off the operation */
+ SCC_WRITE_REGISTER(SCM_CONTROL, scm_control);
+
+ scc_wait_completion();
+
+ /* Mask for done and error bits */
+ crypto_status = SCC_READ_REGISTER(SCM_STATUS)
+ & (SCM_STATUS_CIPHERING_DONE
+ | SCM_STATUS_LENGTH_ERROR | SCM_STATUS_INTERNAL_ERROR);
+
+ /* Only done bit should be on */
+ if (crypto_status != SCM_STATUS_CIPHERING_DONE) {
+ /* Replace with error status instead */
+ crypto_status = SCC_READ_REGISTER(SCM_ERROR_STATUS);
+ pr_debug("SCM Failure: 0x%x\n", crypto_status);
+ if (crypto_status == 0) {
+ /* That came up 0. Turn on arbitrary bit to signal error. */
+ crypto_status = SCM_ERR_INTERNAL_ERROR;
+ }
+ } else {
+ crypto_status = 0;
+ }
+
+ pr_debug("SCC: Done waiting.\n");
+
+ /* Clear out any status. */
+ SCC_WRITE_REGISTER(SCM_INTERRUPT_CTRL,
+ SCM_INTERRUPT_CTRL_CLEAR_INTERRUPT
+ | SCM_INTERRUPT_CTRL_MASK_INTERRUPTS);
+
+ /* And clear any error status */
+ SCC_WRITE_REGISTER(SCM_ERROR_STATUS, 0);
+
+ return crypto_status;
+}
+
+/*****************************************************************************/
+/* fn scc_encrypt() */
+/*****************************************************************************/
+/*!
+ * Perform an encryption on the input. If @c verify_crc is true, a CRC must be
+ * calculated on the plaintext, and appended, with padding, before computing
+ * the ciphertext.
+ *
+ * @param[in] count_in_bytes Count of bytes of plaintext
+ * @param[in] data_in Pointer to the plaintext
+ * @param[in] scm_control Bit values for the SCM_CONTROL register
+ * @param[in,out] data_out Pointer for storing ciphertext
+ * @param[in] add_crc Flag for computing CRC - 0 no, else yes
+ * @param[in,out] count_out_bytes Number of bytes available at @c data_out
+ */
+static scc_return_t
+scc_encrypt(uint32_t count_in_bytes, const uint8_t * data_in,
+ uint32_t scm_control,
+ uint8_t * data_out, int add_crc, unsigned long *count_out_bytes)
+
+{
+ scc_return_t return_code = SCC_RET_FAIL; /* initialised for failure */
+ uint32_t input_bytes_left = count_in_bytes; /* local copy */
+ uint32_t output_bytes_copied = 0; /* running total */
+ uint32_t bytes_to_process; /* multi-purpose byte counter */
+ uint16_t crc = CRC_CCITT_START; /* running CRC value */
+ crc_t *crc_ptr = NULL; /* Reset if CRC required */
+ /* byte address into SCM RAM */
+ uint32_t scm_location = SCM_RED_MEMORY + SCM_NON_RESERVED_OFFSET;
+ /* free RED RAM */
+ uint32_t scm_bytes_remaining = scc_memory_size_bytes;
+ /* CRC+padding holder */
+ uint8_t padding_buffer[PADDING_BUFFER_MAX_BYTES];
+ unsigned padding_byte_count = 0; /* Reset if padding required */
+ uint32_t scm_error_status = 0; /* No known SCM error initially */
+ uint32_t i; /* Counter for clear data loop */
+ uint32_t dirty_bytes; /* Number of bytes of memory used
+ temporarily during encryption,
+ which need to be wiped after
+ completion of the operation. */
+
+ /* Set location of CRC and prepare padding bytes if required */
+ if (add_crc != 0) {
+ crc_ptr = &crc;
+ padding_byte_count = SCC_BLOCK_SIZE_BYTES()
+ - (count_in_bytes +
+ CRC_SIZE_BYTES) % SCC_BLOCK_SIZE_BYTES();
+ memcpy(padding_buffer + CRC_SIZE_BYTES, scc_block_padding,
+ padding_byte_count);
+ }
+
+ /* Process remaining input or padding data */
+ while (input_bytes_left > 0) {
+
+ /* Determine how much work to do this pass */
+ bytes_to_process = (input_bytes_left > scm_bytes_remaining) ?
+ scm_bytes_remaining : input_bytes_left;
+
+ /* Copy plaintext into SCM RAM, calculating CRC if required */
+ copy_to_scc(data_in, scm_location, bytes_to_process, crc_ptr);
+
+ /* Adjust pointers & counters */
+ input_bytes_left -= bytes_to_process;
+ data_in += bytes_to_process;
+ scm_location += bytes_to_process;
+ scm_bytes_remaining -= bytes_to_process;
+
+ /* Add CRC and padding after the last byte is copied if required */
+ if ((input_bytes_left == 0) && (crc_ptr != NULL)) {
+
+ /* Copy CRC into padding buffer MSB first */
+ padding_buffer[0] = (crc >> 8) & 0xFF;
+ padding_buffer[1] = crc & 0xFF;
+
+ /* Reset pointers and counter */
+ data_in = padding_buffer;
+ input_bytes_left = CRC_SIZE_BYTES + padding_byte_count;
+ crc_ptr = NULL; /* CRC no longer required */
+
+ /* Go round loop again to copy CRC and padding to SCM */
+ continue;
+ }
+
+ /* if no input and crc_ptr */
+ /* Now have block-sized plaintext in SCM to encrypt */
+ /* Encrypt plaintext; exit loop on error */
+ bytes_to_process = scm_location -
+ (SCM_RED_MEMORY + SCM_NON_RESERVED_OFFSET);
+
+ if (output_bytes_copied + bytes_to_process > *count_out_bytes) {
+ return_code = SCC_RET_INSUFFICIENT_SPACE;
+ scm_error_status = -1; /* error signal */
+ pr_debug
+ ("SCC: too many ciphertext bytes for space available\n");
+ break;
+ }
+ pr_debug("SCC: Starting encryption. %x for %d bytes (%p/%p)\n",
+ scm_control, bytes_to_process,
+ (void *)SCC_READ_REGISTER(SCM_RED_START),
+ (void *)SCC_READ_REGISTER(SCM_BLACK_START));
+ scm_error_status = scc_do_crypto(bytes_to_process, scm_control);
+ if (scm_error_status != 0) {
+ break;
+ }
+
+ /* Copy out ciphertext */
+ copy_from_scc(SCM_BLACK_MEMORY + SCM_NON_RESERVED_OFFSET,
+ data_out, bytes_to_process, NULL);
+
+ /* Adjust pointers and counters for next loop */
+ output_bytes_copied += bytes_to_process;
+ data_out += bytes_to_process;
+ scm_location = SCM_RED_MEMORY + SCM_NON_RESERVED_OFFSET;
+ scm_bytes_remaining = scc_memory_size_bytes;
+
+ } /* input_bytes_left > 0 */
+ /* Clear all red and black memory used during ephemeral encryption */
+ dirty_bytes = (count_in_bytes > scc_memory_size_bytes) ?
+ scc_memory_size_bytes : count_in_bytes;
+
+ for (i = 0; i < dirty_bytes; i += 4) {
+ SCC_WRITE_REGISTER(SCM_RED_MEMORY + SCM_NON_RESERVED_OFFSET + i,
+ 0);
+ SCC_WRITE_REGISTER(SCM_BLACK_MEMORY + SCM_NON_RESERVED_OFFSET +
+ i, 0);
+ }
+
+ /* If no SCM error, set OK status and save ouput byte count */
+ if (scm_error_status == 0) {
+ return_code = SCC_RET_OK;
+ *count_out_bytes = output_bytes_copied;
+ }
+
+ return return_code;
+} /* scc_encrypt */
+
+/*****************************************************************************/
+/* fn scc_decrypt() */
+/*****************************************************************************/
+/*!
+ * Perform a decryption on the input. If @c verify_crc is true, the last block
+ * (maybe the two last blocks) is special - it should contain a CRC and
+ * padding. These must be stripped and verified.
+ *
+ * @param[in] count_in_bytes Count of bytes of ciphertext
+ * @param[in] data_in Pointer to the ciphertext
+ * @param[in] scm_control Bit values for the SCM_CONTROL register
+ * @param[in,out] data_out Pointer for storing plaintext
+ * @param[in] verify_crc Flag for running CRC - 0 no, else yes
+ * @param[in,out] count_out_bytes Number of bytes available at @c data_out
+
+ */
+static scc_return_t
+scc_decrypt(uint32_t count_in_bytes, const uint8_t * data_in,
+ uint32_t scm_control,
+ uint8_t * data_out, int verify_crc, unsigned long *count_out_bytes)
+{
+ scc_return_t return_code = SCC_RET_FAIL;
+ uint32_t bytes_left = count_in_bytes; /* local copy */
+ uint32_t bytes_copied = 0; /* running total of bytes going to user */
+ uint32_t bytes_to_copy = 0; /* Number in this encryption 'chunk' */
+ uint16_t crc = CRC_CCITT_START; /* running CRC value */
+ /* next target for ctext */
+ uint32_t scm_location = SCM_BLACK_MEMORY + SCM_NON_RESERVED_OFFSET;
+ unsigned padding_byte_count; /* number of bytes of padding stripped */
+ uint8_t last_two_blocks[2 * SCC_BLOCK_SIZE_BYTES()]; /* temp */
+ uint32_t scm_error_status = 0; /* register value */
+ uint32_t i; /* Counter for clear data loop */
+ uint32_t dirty_bytes; /* Number of bytes of memory used
+ temporarily during decryption,
+ which need to be wiped after
+ completion of the operation. */
+
+ scm_control |= SCM_DECRYPT_MODE;
+
+ if (verify_crc) {
+ /* Save last two blocks (if there are at least two) of ciphertext for
+ special treatment. */
+ bytes_left -= SCC_BLOCK_SIZE_BYTES();
+ if (bytes_left >= SCC_BLOCK_SIZE_BYTES()) {
+ bytes_left -= SCC_BLOCK_SIZE_BYTES();
+ }
+ }
+
+ /* Copy ciphertext into SCM BLACK memory */
+ while (bytes_left && scm_error_status == 0) {
+
+ /* Determine how much work to do this pass */
+ if (bytes_left > (scc_memory_size_bytes)) {
+ bytes_to_copy = scc_memory_size_bytes;
+ } else {
+ bytes_to_copy = bytes_left;
+ }
+
+ if (bytes_copied + bytes_to_copy > *count_out_bytes) {
+ scm_error_status = -1;
+ break;
+ }
+ copy_to_scc(data_in, scm_location, bytes_to_copy, NULL);
+ data_in += bytes_to_copy; /* move pointer */
+
+ pr_debug("SCC: Starting decryption of %d bytes.\n",
+ bytes_to_copy);
+
+ /* Do the work, wait for completion */
+ scm_error_status = scc_do_crypto(bytes_to_copy, scm_control);
+
+ copy_from_scc(SCM_RED_MEMORY + SCM_NON_RESERVED_OFFSET,
+ data_out, bytes_to_copy, &crc);
+ bytes_copied += bytes_to_copy;
+ data_out += bytes_to_copy;
+ scm_location = SCM_BLACK_MEMORY + SCM_NON_RESERVED_OFFSET;
+
+ /* Do housekeeping */
+ bytes_left -= bytes_to_copy;
+
+ } /* while bytes_left */
+
+ /* At this point, either the process is finished, or this is verify mode */
+
+ if (scm_error_status == 0) {
+ if (!verify_crc) {
+ *count_out_bytes = bytes_copied;
+ return_code = SCC_RET_OK;
+ } else {
+ /* Verify mode. There are one or two blocks of unprocessed
+ * ciphertext sitting at data_in. They need to be moved to the
+ * SCM, decrypted, searched to remove padding, then the plaintext
+ * copied back to the user (while calculating CRC, of course).
+ */
+
+ /* Calculate ciphertext still left */
+ bytes_to_copy = count_in_bytes - bytes_copied;
+
+ copy_to_scc(data_in, scm_location, bytes_to_copy, NULL);
+ data_in += bytes_to_copy; /* move pointer */
+
+ pr_debug("SCC: Finishing decryption (%d bytes).\n",
+ bytes_to_copy);
+
+ /* Do the work, wait for completion */
+ scm_error_status =
+ scc_do_crypto(bytes_to_copy, scm_control);
+
+ if (scm_error_status == 0) {
+ /* Copy decrypted data back from SCM RED memory */
+ copy_from_scc(SCM_RED_MEMORY +
+ SCM_NON_RESERVED_OFFSET,
+ last_two_blocks, bytes_to_copy,
+ NULL);
+
+ /* (Plaintext) + crc + padding should be in temp buffer */
+ if (scc_strip_padding
+ (last_two_blocks + bytes_to_copy,
+ &padding_byte_count) == SCC_RET_OK) {
+ bytes_to_copy -=
+ padding_byte_count + CRC_SIZE_BYTES;
+
+ /* verify enough space in user buffer */
+ if (bytes_copied + bytes_to_copy <=
+ *count_out_bytes) {
+ int i = 0;
+
+ /* Move out last plaintext and calc CRC */
+ while (i < bytes_to_copy) {
+ CALC_CRC(last_two_blocks
+ [i], crc);
+ *data_out++ =
+ last_two_blocks
+ [i++];
+ bytes_copied++;
+ }
+
+ /* Verify the CRC by running over itself */
+ CALC_CRC(last_two_blocks
+ [bytes_to_copy], crc);
+ CALC_CRC(last_two_blocks
+ [bytes_to_copy + 1],
+ crc);
+ if (crc == 0) {
+ /* Just fine ! */
+ *count_out_bytes =
+ bytes_copied;
+ return_code =
+ SCC_RET_OK;
+ } else {
+ return_code =
+ SCC_RET_VERIFICATION_FAILED;
+ pr_debug
+ ("SCC: CRC values are %04x, %02x%02x\n",
+ crc,
+ last_two_blocks
+ [bytes_to_copy],
+ last_two_blocks
+ [bytes_to_copy +
+ 1]);
+ }
+ } /* if space available */
+ } /* if scc_strip_padding... */
+ else {
+ /* bad padding means bad verification */
+ return_code =
+ SCC_RET_VERIFICATION_FAILED;
+ }
+ }
+ /* scm_error_status == 0 */
+ } /* verify_crc */
+ }
+
+ /* scm_error_status == 0 */
+ /* Clear all red and black memory used during ephemeral decryption */
+ dirty_bytes = (count_in_bytes > scc_memory_size_bytes) ?
+ scc_memory_size_bytes : count_in_bytes;
+
+ for (i = 0; i < dirty_bytes; i += 4) {
+ SCC_WRITE_REGISTER(SCM_RED_MEMORY + SCM_NON_RESERVED_OFFSET + i,
+ 0);
+ SCC_WRITE_REGISTER(SCM_BLACK_MEMORY + SCM_NON_RESERVED_OFFSET +
+ i, 0);
+ }
+ return return_code;
+} /* scc_decrypt */
+
+/*****************************************************************************/
+/* fn scc_alloc_slot() */
+/*****************************************************************************/
+/*!
+ * Allocate a key slot to fit the requested size.
+ *
+ * @param value_size_bytes Size of the key or other secure data
+ * @param owner_id Value to tie owner to slot
+ * @param[out] slot Handle to access or deallocate slot
+ *
+ * @return SCC_RET_OK on success, SCC_RET_INSUFFICIENT_SPACE if not slots of
+ * requested size are available.
+ */
+scc_return_t
+scc_alloc_slot(uint32_t value_size_bytes, uint64_t owner_id, uint32_t * slot)
+{
+ scc_return_t status = SCC_RET_FAIL;
+ unsigned long irq_flags;
+
+ if (scc_availability != SCC_STATUS_OK) {
+ goto out;
+ }
+ /* ACQUIRE LOCK to prevent others from using SCC crypto */
+ spin_lock_irqsave(&scc_crypto_lock, irq_flags);
+
+ pr_debug("SCC: Allocating %d-byte slot for 0x%Lx\n",
+ value_size_bytes, owner_id);
+
+ if ((value_size_bytes != 0) && (value_size_bytes <= SCC_MAX_KEY_SIZE)) {
+ int i;
+
+ for (i = 0; i < SCC_KEY_SLOTS; i++) {
+ if (scc_key_info[i].status == 0) {
+ scc_key_info[i].owner_id = owner_id;
+ scc_key_info[i].length = value_size_bytes;
+ scc_key_info[i].status = 1; /* assigned! */
+ *slot = i;
+ status = SCC_RET_OK;
+ break; /* exit 'for' loop */
+ }
+ }
+
+ if (status != SCC_RET_OK) {
+ status = SCC_RET_INSUFFICIENT_SPACE;
+ } else {
+ pr_debug("SCC: Allocated slot %d (0x%Lx)\n", i,
+ owner_id);
+ }
+ }
+
+ spin_unlock_irqrestore(&scc_crypto_lock, irq_flags);
+
+ out:
+ return status;
+}
+
+/*****************************************************************************/
+/* fn verify_slot_access() */
+/*****************************************************************************/
+inline static scc_return_t
+verify_slot_access(uint64_t owner_id, uint32_t slot, uint32_t access_len)
+{
+ scc_return_t status = SCC_RET_FAIL;
+ if (scc_availability != SCC_STATUS_OK) {
+ goto out;
+ }
+
+ if ((slot < SCC_KEY_SLOTS) && scc_key_info[slot].status
+ && (scc_key_info[slot].owner_id == owner_id)
+ && (access_len <= SCC_KEY_SLOT_SIZE)) {
+ status = SCC_RET_OK;
+ pr_debug("SCC: Verify on slot %d succeeded\n", slot);
+ } else {
+ if (slot >= SCC_KEY_SLOTS) {
+ pr_debug("SCC: Verify on bad slot (%d) failed\n", slot);
+ } else if (scc_key_info[slot].status) {
+ pr_debug("SCC: Verify on slot %d failed (%Lx) \n", slot,
+ owner_id);
+ } else {
+ pr_debug
+ ("SCC: Verify on slot %d failed: not allocated\n",
+ slot);
+ }
+ }
+
+ out:
+ return status;
+}
+
+scc_return_t
+scc_verify_slot_access(uint64_t owner_id, uint32_t slot, uint32_t access_len)
+{
+ return verify_slot_access(owner_id, slot, access_len);
+}
+
+/*****************************************************************************/
+/* fn scc_dealloc_slot() */
+/*****************************************************************************/
+scc_return_t scc_dealloc_slot(uint64_t owner_id, uint32_t slot)
+{
+ scc_return_t status;
+ unsigned long irq_flags;
+ int i;
+
+ /* ACQUIRE LOCK to prevent others from using SCC crypto */
+ spin_lock_irqsave(&scc_crypto_lock, irq_flags);
+
+ status = verify_slot_access(owner_id, slot, 0);
+
+ if (status == SCC_RET_OK) {
+ scc_key_info[slot].owner_id = 0;
+ scc_key_info[slot].status = 0; /* unassign */
+
+ /* clear old info */
+ for (i = 0; i < SCC_KEY_SLOT_SIZE; i += 4) {
+ SCC_WRITE_REGISTER(SCM_RED_MEMORY +
+ scc_key_info[slot].offset + i, 0);
+ SCC_WRITE_REGISTER(SCM_BLACK_MEMORY +
+ scc_key_info[slot].offset + i, 0);
+ }
+ pr_debug("SCC: Deallocated slot %d\n", slot);
+ }
+
+ spin_unlock_irqrestore(&scc_crypto_lock, irq_flags);
+
+ return status;
+}
+
+/*****************************************************************************/
+/* fn scc_load_slot() */
+/*****************************************************************************/
+/*!
+ * Load a value into a slot.
+ *
+ * @param owner_id Value of owner of slot
+ * @param slot Handle of slot
+ * @param key_data Data to load into the slot
+ * @param key_length Length, in bytes, of @c key_data to copy to SCC.
+ *
+ * @return SCC_RET_OK on success. SCC_RET_FAIL will be returned if slot
+ * specified cannot be accessed for any reason, or SCC_RET_INSUFFICIENT_SPACE
+ * if @c key_length exceeds the size of the slot.
+ */
+scc_return_t
+scc_load_slot(uint64_t owner_id, uint32_t slot, const uint8_t * key_data,
+ uint32_t key_length)
+{
+ scc_return_t status;
+ unsigned long irq_flags;
+
+ /* ACQUIRE LOCK to prevent others from using SCC crypto */
+ spin_lock_irqsave(&scc_crypto_lock, irq_flags);
+
+ status = verify_slot_access(owner_id, slot, key_length);
+ if ((status == SCC_RET_OK) && (key_data != NULL)) {
+ status = SCC_RET_FAIL; /* reset expectations */
+
+ if (key_length > SCC_KEY_SLOT_SIZE) {
+ pr_debug
+ ("SCC: scc_load_slot() rejecting key of %d bytes.\n",
+ key_length);
+ status = SCC_RET_INSUFFICIENT_SPACE;
+ } else {
+ if (copy_to_scc(key_data,
+ SCM_RED_MEMORY +
+ scc_key_info[slot].offset, key_length,
+ NULL)) {
+ pr_debug("SCC: RED copy_to_scc() failed for"
+ " scc_load_slot()\n");
+ } else {
+ if ((key_length % 4) != 0) {
+ uint32_t zeros = 0;
+
+ /* zero-pad to get remainder bytes in correct place */
+ copy_to_scc((uint8_t *) & zeros,
+ SCM_RED_MEMORY
+ +
+ scc_key_info[slot].offset +
+ key_length,
+ 4 - (key_length % 4), NULL);
+ }
+ status = SCC_RET_OK;
+ }
+ }
+ }
+
+ spin_unlock_irqrestore(&scc_crypto_lock, irq_flags);
+
+ return status;
+} /* scc_load_slot */
+
+scc_return_t
+scc_read_slot(uint64_t owner_id, uint32_t slot, uint32_t key_length,
+ uint8_t * key_data)
+{
+ scc_return_t status;
+ unsigned long irq_flags;
+
+ /* ACQUIRE LOCK to prevent others from using SCC crypto */
+ spin_lock_irqsave(&scc_crypto_lock, irq_flags);
+
+ status = verify_slot_access(owner_id, slot, key_length);
+ if ((status == SCC_RET_OK) && (key_data != NULL)) {
+ status = SCC_RET_FAIL; /* reset expectations */
+
+ if (key_length > SCC_KEY_SLOT_SIZE) {
+ pr_debug
+ ("SCC: scc_read_slot() rejecting key of %d bytes.\n",
+ key_length);
+ status = SCC_RET_INSUFFICIENT_SPACE;
+ } else {
+ if (copy_from_scc
+ (SCM_RED_MEMORY + scc_key_info[slot].offset,
+ key_data, key_length, NULL)) {
+ pr_debug("SCC: RED copy_from_scc() failed for"
+ " scc_read_slot()\n");
+ } else {
+ status = SCC_RET_OK;
+ }
+ }
+ }
+
+ spin_unlock_irqrestore(&scc_crypto_lock, irq_flags);
+
+ return status;
+} /* scc_read_slot */
+
+/*****************************************************************************/
+/* fn scc_encrypt_slot() */
+/*****************************************************************************/
+/*!
+ * Encrypt the key data stored in a slot.
+ *
+ * @param owner_id Value of owner of slot
+ * @param slot Handle of slot
+ * @param length Length, in bytes, of @c black_data
+ * @param black_data Location to store result of encrypting RED data in slot
+ *
+ * @return SCC_RET_OK on success, SCC_RET_FAIL if slot specified cannot be
+ * accessed for any reason.
+ */
+scc_return_t scc_encrypt_slot(uint64_t owner_id, uint32_t slot,
+ uint32_t length, uint8_t * black_data)
+{
+ unsigned long irq_flags;
+ scc_return_t status;
+ uint32_t crypto_status;
+ uint32_t slot_offset =
+ scc_key_info[slot].offset / SCC_BLOCK_SIZE_BYTES();
+
+ /* ACQUIRE LOCK to prevent others from using crypto or releasing slot */
+ spin_lock_irqsave(&scc_crypto_lock, irq_flags);
+
+ status = verify_slot_access(owner_id, slot, length);
+ if (status == SCC_RET_OK) {
+ SCC_WRITE_REGISTER(SCM_BLACK_START, slot_offset);
+ SCC_WRITE_REGISTER(SCM_RED_START, slot_offset);
+
+ /* Use OwnerID as CBC IV to tie Owner to data */
+ SCC_WRITE_REGISTER(SCM_INIT_VECTOR_0, *(uint32_t *) & owner_id);
+ SCC_WRITE_REGISTER(SCM_INIT_VECTOR_1,
+ *(((uint32_t *) & owner_id) + 1));
+
+ /* Set modes and kick off the encryption */
+ crypto_status = scc_do_crypto(length,
+ SCM_CONTROL_START_CIPHER |
+ SCM_CBC_MODE);
+
+ if (crypto_status != 0) {
+ pr_debug("SCM encrypt red crypto failure: 0x%x\n",
+ crypto_status);
+ } else {
+
+ /* Give blob back to caller */
+ if (!copy_from_scc
+ (SCM_BLACK_MEMORY + scc_key_info[slot].offset,
+ black_data, length, NULL)) {
+ status = SCC_RET_OK;
+ pr_debug("SCC: Encrypted slot %d\n", slot);
+ }
+ }
+ }
+
+ spin_unlock_irqrestore(&scc_crypto_lock, irq_flags);
+
+ return status;
+}
+
+/*****************************************************************************/
+/* fn scc_decrypt_slot() */
+/*****************************************************************************/
+/*!
+ * Decrypt some black data and leave result in the slot.
+ *
+ * @param owner_id Value of owner of slot
+ * @param slot Handle of slot
+ * @param length Length, in bytes, of @c black_data
+ * @param black_data Location of data to dencrypt and store in slot
+ *
+ * @return SCC_RET_OK on success, SCC_RET_FAIL if slot specified cannot be
+ * accessed for any reason.
+ */
+scc_return_t scc_decrypt_slot(uint64_t owner_id, uint32_t slot,
+ uint32_t length, const uint8_t * black_data)
+{
+ unsigned long irq_flags;
+ scc_return_t status;
+ uint32_t crypto_status;
+ uint32_t slot_offset =
+ scc_key_info[slot].offset / SCC_BLOCK_SIZE_BYTES();
+
+ /* ACQUIRE LOCK to prevent others from using crypto or releasing slot */
+ spin_lock_irqsave(&scc_crypto_lock, irq_flags);
+
+ status = verify_slot_access(owner_id, slot, length);
+ if (status == SCC_RET_OK) {
+ status = SCC_RET_FAIL; /* reset expectations */
+
+ /* Place black key in to BLACK RAM and set up the SCC */
+ copy_to_scc(black_data,
+ SCM_BLACK_MEMORY + scc_key_info[slot].offset,
+ length, NULL);
+
+ SCC_WRITE_REGISTER(SCM_BLACK_START, slot_offset);
+ SCC_WRITE_REGISTER(SCM_RED_START, slot_offset);
+
+ /* Use OwnerID as CBC IV to tie Owner to data */
+ SCC_WRITE_REGISTER(SCM_INIT_VECTOR_0, *(uint32_t *) & owner_id);
+ SCC_WRITE_REGISTER(SCM_INIT_VECTOR_1,
+ *(((uint32_t *) & owner_id) + 1));
+
+ /* Set modes and kick off the decryption */
+ crypto_status = scc_do_crypto(length,
+ SCM_CONTROL_START_CIPHER
+ | SCM_CBC_MODE |
+ SCM_DECRYPT_MODE);
+
+ if (crypto_status != 0) {
+ pr_debug("SCM decrypt black crypto failure: 0x%x\n",
+ crypto_status);
+ } else {
+ status = SCC_RET_OK;
+ }
+ }
+
+ spin_unlock_irqrestore(&scc_crypto_lock, irq_flags);
+
+ return status;
+}
+
+/*****************************************************************************/
+/* fn scc_get_slot_info() */
+/*****************************************************************************/
+/*!
+ * Determine address and value length for a give slot.
+ *
+ * @param owner_id Value of owner of slot
+ * @param slot Handle of slot
+ * @param address Location to store kernel address of slot data
+ * @param value_size_bytes Location to store allocated length of data in slot.
+ * May be NULL if value is not needed by caller.
+ * @param slot_size_bytes Location to store max length data in slot
+ * May be NULL if value is not needed by caller.
+ *
+ * @return SCC_RET_OK or error indication
+ */
+scc_return_t
+scc_get_slot_info(uint64_t owner_id, uint32_t slot, uint32_t * address,
+ uint32_t * value_size_bytes, uint32_t * slot_size_bytes)
+{
+ scc_return_t status = verify_slot_access(owner_id, slot, 0);
+
+ if (status == SCC_RET_OK) {
+ *address =
+ SCC_BASE + SCM_RED_MEMORY + scc_key_info[slot].offset;
+ if (value_size_bytes != NULL) {
+ *value_size_bytes = scc_key_info[slot].length;
+ }
+ if (slot_size_bytes != NULL) {
+ *slot_size_bytes = SCC_KEY_SLOT_SIZE;
+ }
+ }
+
+ return status;
+}
+
+/*****************************************************************************/
+/* fn scc_wait_completion() */
+/*****************************************************************************/
+/*!
+ * Poll looking for end-of-cipher indication. Only used
+ * if @c SCC_SCM_SLEEP is not defined.
+ *
+ * @internal
+ *
+ * On a Tahiti, crypto under 230 or so bytes is done after the first loop, all
+ * the way up to five sets of spins for 1024 bytes. (8- and 16-byte functions
+ * are done when we first look. Zeroizing takes one pass around.
+ */
+static void scc_wait_completion(void)
+{
+ int i = 0;
+
+ /* check for completion by polling */
+ while (!is_cipher_done() && (i++ < SCC_CIPHER_MAX_POLL_COUNT)) {
+ udelay(10);
+ }
+ pr_debug("SCC: Polled DONE %d times\n", i);
+} /* scc_wait_completion() */
+
+/*****************************************************************************/
+/* fn is_cipher_done() */
+/*****************************************************************************/
+/*!
+ * This function returns non-zero if SCM Status register indicates
+ * that a cipher has terminated or some other interrupt-generating
+ * condition has occurred.
+ */
+static int is_cipher_done(void)
+{
+ register uint32_t scm_status;
+ register int cipher_done;
+
+ scm_status = SCC_READ_REGISTER(SCM_STATUS);
+
+ /*
+ * Done when 'SCM is currently performing a function' bits are zero
+ */
+ cipher_done = !(scm_status & (SCM_STATUS_ZEROIZING |
+ SCM_STATUS_CIPHERING));
+
+ return cipher_done;
+} /* is_cipher_done() */
+
+/*****************************************************************************/
+/* fn offset_within_smn() */
+/*****************************************************************************/
+/*!
+ * Check that the offset is with the bounds of the SMN register set.
+ *
+ * @param[in] register_offset register offset of SMN.
+ *
+ * @return 1 if true, 0 if false (not within SMN)
+ */
+static inline int offset_within_smn(uint32_t register_offset)
+{
+ return register_offset >= SMN_STATUS && register_offset <= SMN_TIMER;
+}
+
+/*****************************************************************************/
+/* fn offset_within_scm() */
+/*****************************************************************************/
+/*!
+ * Check that the offset is with the bounds of the SCM register set.
+ *
+ * @param[in] register_offset Register offset of SCM
+ *
+ * @return 1 if true, 0 if false (not within SCM)
+ */
+static inline int offset_within_scm(uint32_t register_offset)
+{
+ return (register_offset >= SCM_RED_START)
+ && (register_offset < scm_highest_memory_address);
+ /* Although this would cause trouble for zeroize testing, this change would
+ * close a security whole which currently allows any kernel program to access
+ * any location in RED RAM. Perhaps enforce in non-SCC_DEBUG compiles?
+ && (register_offset <= SCM_INIT_VECTOR_1); */
+}
+
+/*****************************************************************************/
+/* fn check_register_accessible() */
+/*****************************************************************************/
+/*!
+ * Given the current SCM and SMN status, verify that access to the requested
+ * register should be OK.
+ *
+ * @param[in] register_offset register offset within SCC
+ * @param[in] smn_status recent value from #SMN_STATUS
+ * @param[in] scm_status recent value from #SCM_STATUS
+ *
+ * @return #SCC_RET_OK if ok, #SCC_RET_FAIL if not
+ */
+static scc_return_t
+check_register_accessible(uint32_t register_offset, uint32_t smn_status,
+ uint32_t scm_status)
+{
+ int error_code = SCC_RET_FAIL;
+
+ /* Verify that the register offset passed in is not among the verboten set
+ * if the SMN is in Fail mode.
+ */
+ if (offset_within_smn(register_offset)) {
+ if ((smn_status & SMN_STATUS_STATE_MASK) == SMN_STATE_FAIL) {
+ if (!((register_offset == SMN_STATUS) ||
+ (register_offset == SMN_COMMAND) ||
+ (register_offset == SMN_DEBUG_DETECT_STAT))) {
+ pr_debug
+ ("SCC Driver: Note: Security State is in FAIL state.\n");
+ } /* register not a safe one */
+ else {
+ /* SMN is in FAIL, but register is a safe one */
+ error_code = SCC_RET_OK;
+ }
+ } /* State is FAIL */
+ else {
+ /* State is not fail. All registers accessible. */
+ error_code = SCC_RET_OK;
+ }
+ }
+ /* offset within SMN */
+ /* Not SCM register. Check for SCM busy. */
+ else if (offset_within_scm(register_offset)) {
+ /* This is the 'cannot access' condition in the SCM */
+ if ((scm_status & SCM_STATUS_BUSY)
+ /* these are always available - rest fail on busy */
+ && !((register_offset == SCM_STATUS) ||
+ (register_offset == SCM_ERROR_STATUS) ||
+ (register_offset == SCM_INTERRUPT_CTRL) ||
+ (register_offset == SCM_CONFIGURATION))) {
+ pr_debug
+ ("SCC Driver: Note: Secure Memory is in BUSY state.\n");
+ } /* status is busy & register inaccessible */
+ else {
+ error_code = SCC_RET_OK;
+ }
+ }
+ /* offset within SCM */
+ return error_code;
+
+} /* check_register_accessible() */
+
+/*****************************************************************************/
+/* fn check_register_offset() */
+/*****************************************************************************/
+/*!
+ * Check that the offset is with the bounds of the SCC register set.
+ *
+ * @param[in] register_offset register offset of SMN.
+ *
+ * #SCC_RET_OK if ok, #SCC_RET_FAIL if not
+ */
+static scc_return_t check_register_offset(uint32_t register_offset)
+{
+ int return_value = SCC_RET_FAIL;
+
+ /* Is it valid word offset ? */
+ if (SCC_BYTE_OFFSET(register_offset) == 0) {
+ /* Yes. Is register within SCM? */
+ if (offset_within_scm(register_offset)) {
+ return_value = SCC_RET_OK; /* yes, all ok */
+ }
+ /* Not in SCM. Now look within the SMN */
+ else if (offset_within_smn(register_offset)) {
+ return_value = SCC_RET_OK; /* yes, all ok */
+ }
+ }
+
+ return return_value;
+}
+
+#ifdef SCC_REGISTER_DEBUG
+
+/*****************************************************************************/
+/* fn dbg_scc_read_register() */
+/*****************************************************************************/
+/*!
+ * Noisily read a 32-bit value to an SCC register.
+ * @param offset The address of the register to read.
+ *
+ * @return The register value
+ * */
+static uint32_t dbg_scc_read_register(uint32_t offset)
+{
+ uint32_t value;
+
+ value = readl(scc_base + offset);
+
+#ifndef SCC_RAM_DEBUG /* print no RAM references */
+ if ((offset < SCM_RED_MEMORY) || (offset >= scm_highest_memory_address)) {
+#endif
+ pr_debug("SCC RD: 0x%4x : 0x%08x\n", offset, value);
+#ifndef SCC_RAM_DEBUG
+ }
+#endif
+
+ return value;
+}
+
+/*****************************************************************************/
+/* fn dbg_scc_write_register() */
+/*****************************************************************************/
+/*
+ * Noisily read a 32-bit value to an SCC register.
+ * @param offset The address of the register to written.
+ *
+ * @param value The new register value
+ */
+static void dbg_scc_write_register(uint32_t offset, uint32_t value)
+{
+
+#ifndef SCC_RAM_DEBUG /* print no RAM references */
+ if ((offset < SCM_RED_MEMORY) || (offset >= scm_highest_memory_address)) {
+#endif
+ pr_debug("SCC WR: 0x%4x : 0x%08x\n", offset, value);
+#ifndef SCC_RAM_DEBUG
+ }
+#endif
+
+ (void)writel(value, scc_base + offset);
+}
+
+#endif /* SCC_REGISTER_DEBUG */
diff --git a/drivers/mxc/security/mxc_scc_internals.h b/drivers/mxc/security/mxc_scc_internals.h
new file mode 100644
index 000000000000..fddb0da9a4a5
--- /dev/null
+++ b/drivers/mxc/security/mxc_scc_internals.h
@@ -0,0 +1,498 @@
+/*
+ * Copyright (C) 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+#ifndef __MXC_SCC_INTERNALS_H__
+#define __MXC_SCC_INTERNALS_H__
+
+/*!
+ * @file mxc_scc_internals.h
+ *
+ * @brief This is intended to be the file which contains most or all of the code or
+ * changes need to port the driver. It also includes other definitions needed
+ * by the driver.
+ *
+ * This header file should only ever be included by scc_driver.c
+ *
+ * Compile-time flags minimally needed:
+ *
+ * @li Some sort of platform flag.
+ * @li Some start-of-SCC consideration, such as SCC_BASE_ADDR
+ *
+ * Some changes which could be made when porting this driver:
+ * #SCC_SPIN_COUNT
+ *
+ * @ingroup MXCSCC
+ */
+#if 0
+#include <linux/version.h> /* Current version Linux kernel */
+#include <linux/module.h> /* Basic support for loadable modules,
+ printk */
+#include <linux/init.h> /* module_init, module_exit */
+#include <linux/kernel.h> /* General kernel system calls */
+#include <linux/sched.h> /* for interrupt.h */
+#include <linux/spinlock.h>
+#include <linux/interrupt.h> /* IRQ / interrupt definitions */
+#include <linux/io.h> /* ioremap() */
+#endif
+#include <linux/mxc_scc_driver.h>
+
+/* Get handle on certain per-platform symbols */
+#ifdef TAHITI
+#include <asm/arch/mx2.h>
+
+/*
+ * Mark the SCC as always there... as Tahiti is not officially supported by
+ * driver. Porting opportunity.
+ */
+#define SCC_ENABLED() (1)
+
+#elif defined(MXC)
+
+#include <mach/iim.h>
+#include <mach/mxc_scc.h>
+
+#ifdef SCC_FUSE
+
+/*
+ * This macro is used to determine whether the SCC is enabled/available
+ * on the platform. This macro may need to be ported.
+ */
+#define SCC_ENABLED() ((SCC_FUSE & MXC_IIMHWV1_SCC_DISABLE) == 0)
+
+#else
+
+#define SCC_ENABLED() (1)
+
+#endif
+
+#else /* neither TAHITI nor MXC */
+
+#error Do not understand target architecture
+
+#endif /* TAHITI */
+
+/* Temporarily define compile-time flags to make Doxygen happy. */
+#ifdef DOXYGEN_HACK
+/*! @addtogroup scccompileflags */
+/*! @{ */
+
+/*! @def NO_SMN_INTERRUPT
+ * The SMN interrupt is not wired to the CPU at all.
+ */
+#define NO_SMN_INTERRUPT
+
+/*!
+ * Register an interrupt handler for the SMN as well as
+ * the SCM. In some implementations, the SMN is not connected at all (see
+ * #NO_SMN_INTERRUPT), and in others, it is on the same interrupt line as the
+ * SCM. When defining this flag, the SMN interrupt should be on a separate
+ * line from the SCM interrupt.
+ */
+
+#define USE_SMN_INTERRUPT
+
+/*!
+ * Turn on generation of run-time operational, debug, and error messages
+ */
+#define SCC_DEBUG
+
+/*!
+ * Turn on generation of run-time logging of access to the SCM and SMN
+ * registers.
+ */
+#define SCC_REGISTER_DEBUG
+
+/*!
+ * Turn on generation of run-time logging of access to the SCM Red and
+ * Black memories. Will only work if #SCC_REGISTER_DEBUG is also defined.
+ */
+#define SCC_RAM_DEBUG
+
+/*!
+ * If the driver finds the SCC in HEALTH_CHECK state, go ahead and
+ * run a quick ASC to bring it to SECURE state.
+ */
+#define SCC_BRINGUP
+
+/*!
+ * Expected to come from platform header files or compile command line.
+ * This symbol must be the address of the SCC
+ */
+#define SCC_BASE
+
+/*!
+ * This must be the interrupt line number of the SCM interrupt.
+ */
+#define INT_SCM
+
+/*!
+ * if #USE_SMN_INTERRUPT is defined, this must be the interrupt line number of
+ * the SMN interrupt.
+ */
+#define INT_SMN
+
+/*!
+ * Define the number of Stored Keys which the SCC driver will make available.
+ * Value shall be from 0 to 20. Default is zero (0).
+ */
+#define SCC_KEY_SLOTS
+
+/*!
+ * Make sure that this flag is defined if compiling for a Little-Endian
+ * platform. Linux Kernel builds provide this flag.
+ */
+#define __LITTLE_ENDIAN
+
+/*!
+ * Make sure that this flag is defined if compiling for a Big-Endian platform.
+ * Linux Kernel builds provide this flag.
+ */
+#define __BIG_ENDIAN
+
+/*!
+ * Read a 32-bit register value from a 'peripheral'. Standard Linux/Unix
+ * macro.
+ *
+ * @param offset Bus address of register to be read
+ *
+ * @return The value of the register
+ */
+#define readl(offset)
+
+/*!
+ * Write a 32-bit value to a register in a 'peripheral'. Standard Linux/Unix
+ * macro.
+ *
+ * @param value The 32-bit value to store
+ * @param offset Bus address of register to be written
+ *
+ * return (none)
+ */
+#define writel(value,offset)
+
+ /*! @} *//* end group scccompileflags */
+
+#endif /* DOXYGEN_HACK */
+
+/*!
+ * Define the number of Stored Keys which the SCC driver will make available.
+ * Value shall be from 0 to 20. Default is zero (0).
+ */
+#define SCC_KEY_SLOTS 20
+
+#ifndef SCC_KEY_SLOTS
+#define SCC_KEY_SLOTS 0
+
+#else
+
+#if (SCC_KEY_SLOTS < 0) || (SCC_KEY_SLOTS > 20)
+#error Bad value for SCC_KEY_SLOTS
+#endif
+
+/*!
+ * Maximum length of key/secret value which can be stored in SCC.
+ */
+#define SCC_MAX_KEY_SIZE 32
+
+/*!
+ * This is the size, in bytes, of each key slot, and therefore the maximum size
+ * of the wrapped key.
+ */
+#define SCC_KEY_SLOT_SIZE 32
+
+/*!
+ * This is the offset into each RAM of the base of the area which is
+ * not used for Stored Keys.
+ */
+#define SCM_NON_RESERVED_OFFSET (SCC_KEY_SLOTS * SCC_KEY_SLOT_SIZE)
+
+#endif
+
+/* These come for free with Linux, but may need to be set in a port. */
+#ifndef __BIG_ENDIAN
+#ifndef __LITTLE_ENDIAN
+#error One of __LITTLE_ENDIAN or __BIG_ENDIAN must be #defined
+#endif
+#else
+#ifdef __LITTLE_ENDIAN
+#error Exactly one of __LITTLE_ENDIAN or __BIG_ENDIAN must be #defined
+#endif
+#endif
+
+#ifndef SCC_CALLBACK_SIZE
+/*! The number of function pointers which can be stored in #scc_callbacks.
+ * Defaults to 4, can be overridden with compile-line argument.
+ */
+#define SCC_CALLBACK_SIZE 4
+#endif
+
+/*! Initial CRC value for CCITT-CRC calculation. */
+#define CRC_CCITT_START 0xFFFF
+
+#ifdef TAHITI
+
+/*!
+ * The SCC_BASE has to be SMN_BASE_ADDR on TAHITI, as the banks of
+ * registers are swapped in place.
+ */
+#define SCC_BASE SMN_BASE_ADDR
+
+/*! The interrupt number for the SCC (SCM only!) on Tahiti */
+#define INT_SCC_SCM 62
+
+/*! Tahiti does not have the SMN interrupt wired to the CPU. */
+#define NO_SMN_INTERRUPT
+
+#endif /* TAHITI */
+
+/*! Number of times to spin between polling of SCC while waiting for cipher
+ * or zeroizing function to complete. See also #SCC_CIPHER_MAX_POLL_COUNT. */
+#define SCC_SPIN_COUNT 1000
+
+/*! Number of times to polling SCC while waiting for cipher
+ * or zeroizing function to complete. See also #SCC_SPIN_COUNT. */
+#define SCC_CIPHER_MAX_POLL_COUNT 100
+
+/*!
+ * @def SCC_READ_REGISTER
+ * Read a 32-bit value from an SCC register. Macro which depends upon
+ * #scc_base. Linux readl()/writel() macros operate on 32-bit quantities, as
+ * do SCC register reads/writes.
+ *
+ * @param offset Register offset within SCC.
+ *
+ * @return The value from the SCC's register.
+ */
+#ifndef SCC_REGISTER_DEBUG
+#define SCC_READ_REGISTER(offset) __raw_readl(scc_base+(offset))
+#else
+#define SCC_READ_REGISTER(offset) dbg_scc_read_register(offset)
+#endif
+
+/*!
+ * Write a 32-bit value to an SCC register. Macro depends upon #scc_base.
+ * Linux readl()/writel() macros operate on 32-bit quantities, as do SCC
+ * register reads/writes.
+ *
+ * @param offset Register offset within SCC.
+ * @param value 32-bit value to store into the register
+ *
+ * @return (void)
+ */
+#ifndef SCC_REGISTER_DEBUG
+#define SCC_WRITE_REGISTER(offset,value) (void)__raw_writel(value, scc_base+(offset))
+#else
+#define SCC_WRITE_REGISTER(offset,value) dbg_scc_write_register(offset, value)
+#endif
+
+/*!
+ * Calculates the byte offset into a word
+ * @param bp The byte (char*) pointer
+ * @return The offset (0, 1, 2, or 3)
+ */
+#define SCC_BYTE_OFFSET(bp) ((uint32_t)(bp) % sizeof(uint32_t))
+
+/*!
+ * Converts (by rounding down) a byte pointer into a word pointer
+ * @param bp The byte (char*) pointer
+ * @return The word (uint32_t) as though it were an aligned (uint32_t*)
+ */
+#define SCC_WORD_PTR(bp) (((uint32_t)(bp)) & ~(sizeof(uint32_t)-1))
+
+/*!
+ * Determine number of bytes in an SCC block
+ *
+ * @return Bytes / block
+ */
+#define SCC_BLOCK_SIZE_BYTES() scc_configuration.block_size_bytes
+
+/*!
+ * Maximum number of additional bytes which may be added in CRC+padding mode.
+ */
+#define PADDING_BUFFER_MAX_BYTES (CRC_SIZE_BYTES + sizeof(scc_block_padding))
+
+/*!
+ * Shorthand (clearer, anyway) for number of bytes in a CRC.
+ */
+#define CRC_SIZE_BYTES (sizeof(crc_t))
+
+/*!
+ * The polynomial used in CCITT-CRC calculation
+ */
+#define CRC_POLYNOMIAL 0x1021
+
+/*!
+ * Calculate CRC on one byte of data
+ *
+ * @param[in,out] running_crc A value of type crc_t where CRC is kept. This
+ * must be an rvalue and an lvalue.
+ * @param[in] byte_value The byte (uint8_t, char) to be put in the CRC
+ *
+ * @return none
+ */
+#define CALC_CRC(byte_value,running_crc) { \
+ uint8_t data; \
+ data = (0xff&(byte_value)) ^ (running_crc >> 8); \
+ running_crc = scc_crc_lookup_table[data] ^ (running_crc << 8); \
+}
+
+/*! Value of 'beginning of padding' marker in driver-provided padding */
+#define SCC_DRIVER_PAD_CHAR 0x80
+
+/*! Name of the driver. Used (on Linux, anyway) when registering interrupts */
+#define SCC_DRIVER_NAME "scc"
+
+/* Port -- these symbols are defined in Linux 2.6 and later. They are defined
+ * here for backwards compatibility because this started life as a 2.4
+ * driver, and as a guide to portation to other platforms.
+ */
+
+#if !defined(LINUX_VERSION_CODE) || LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
+
+#define irqreturn_t void /* Return type of an interrupt handler */
+
+#define IRQ_HANDLED /* Would be '1' for handled -- as in return IRQ_HANDLED; */
+
+#define IRQ_NONE /* would be '0' for not handled -- as in return IRQ_NONE; */
+
+#define IRQ_RETVAL(x) /* Return x==0 (not handled) or non-zero (handled) */
+
+#endif /* LINUX earlier than 2.5 */
+
+/* These are nice to have around */
+#ifndef FALSE
+#define FALSE 0
+#endif
+#ifndef TRUE
+#define TRUE 1
+#endif
+
+/*! Provide a typedef for the CRC which can be used in encrypt/decrypt */
+typedef uint16_t crc_t;
+
+/*! Gives high-level view of state of the SCC */
+enum scc_status {
+ SCC_STATUS_INITIAL, /*!< State of driver before ever checking */
+ SCC_STATUS_CHECKING, /*!< Transient state while driver loading */
+ SCC_STATUS_UNIMPLEMENTED, /*!< SCC is non-existent or unuseable */
+ SCC_STATUS_OK, /*!< SCC is in Secure or Default state */
+ SCC_STATUS_FAILED /*!< In Failed state */
+};
+
+/*!
+ * Information about a key slot.
+ */
+struct scc_key_slot {
+ uint64_t owner_id; /*!< Access control value. */
+ uint32_t length; /*!< Length of value in slot. */
+ uint32_t offset; /*!< Offset of value from start of each RAM. */
+ uint32_t status; /*!< 0 = unassigned, 1 = assigned. */
+};
+
+/* Forward-declare a number routines which are not part of user api */
+static int scc_init(void);
+static void scc_cleanup(void);
+
+/* Forward defines of internal functions */
+OS_DEV_ISR(scc_irq);
+/*! Perform callbacks registered by #scc_monitor_security_failure().
+ *
+ * Make sure callbacks only happen once... Since there may be some reason why
+ * the interrupt isn't generated, this routine could be called from base(task)
+ * level.
+ *
+ * One at a time, go through #scc_callbacks[] and call any non-null pointers.
+ */
+static void scc_perform_callbacks(void);
+static uint32_t copy_to_scc(const uint8_t * from, uint32_t to,
+ unsigned long count_bytes, uint16_t * crc);
+static uint32_t copy_from_scc(const uint32_t from, uint8_t * to,
+ unsigned long count_bytes, uint16_t * crc);
+static scc_return_t scc_strip_padding(uint8_t * from,
+ unsigned *count_bytes_stripped);
+static uint32_t scc_update_state(void);
+static void scc_init_ccitt_crc(void);
+static uint32_t scc_grab_config_values(void);
+static int setup_interrupt_handling(void);
+/*!
+ * Perform an encryption on the input. If @c verify_crc is true, a CRC must be
+ * calculated on the plaintext, and appended, with padding, before computing
+ * the ciphertext.
+ *
+ * @param[in] count_in_bytes Count of bytes of plaintext
+ * @param[in] data_in Pointer to the plaintext
+ * @param[in] scm_control Bit values for the SCM_CONTROL register
+ * @param[in,out] data_out Pointer for storing ciphertext
+ * @param[in] add_crc Flag for computing CRC - 0 no, else yes
+ * @param[in,out] count_out_bytes Number of bytes available at @c data_out
+ */
+static scc_return_t scc_encrypt(uint32_t count_in_bytes,
+ const uint8_t * data_in,
+ uint32_t scm_control, uint8_t * data_out,
+ int add_crc, unsigned long *count_out_bytes);
+
+/*!
+ * Perform a decryption on the input. If @c verify_crc is true, the last block
+ * (maybe the two last blocks) is special - it should contain a CRC and
+ * padding. These must be stripped and verified.
+ *
+ * @param[in] count_in_bytes Count of bytes of ciphertext
+ * @param[in] data_in Pointer to the ciphertext
+ * @param[in] scm_control Bit values for the SCM_CONTROL register
+ * @param[in,out] data_out Pointer for storing plaintext
+ * @param[in] verify_crc Flag for running CRC - 0 no, else yes
+ * @param[in,out] count_out_bytes Number of bytes available at @c data_out
+
+ */
+static scc_return_t scc_decrypt(uint32_t count_in_bytes,
+ const uint8_t * data_in,
+ uint32_t scm_control, uint8_t * data_out,
+ int verify_crc, unsigned long *count_out_bytes);
+
+static void scc_wait_completion(void);
+static int is_cipher_done(void);
+static scc_return_t check_register_accessible(uint32_t offset,
+ uint32_t smn_status,
+ uint32_t scm_status);
+static scc_return_t check_register_offset(uint32_t offset);
+
+#ifdef SCC_REGISTER_DEBUG
+static uint32_t dbg_scc_read_register(uint32_t offset);
+static void dbg_scc_write_register(uint32_t offset, uint32_t value);
+#endif
+
+/* For Linux kernel, export the API functions to other kernel modules */
+EXPORT_SYMBOL(scc_get_configuration);
+EXPORT_SYMBOL(scc_zeroize_memories);
+EXPORT_SYMBOL(scc_crypt);
+EXPORT_SYMBOL(scc_set_sw_alarm);
+EXPORT_SYMBOL(scc_monitor_security_failure);
+EXPORT_SYMBOL(scc_stop_monitoring_security_failure);
+EXPORT_SYMBOL(scc_read_register);
+EXPORT_SYMBOL(scc_write_register);
+EXPORT_SYMBOL(scc_alloc_slot);
+EXPORT_SYMBOL(scc_dealloc_slot);
+EXPORT_SYMBOL(scc_load_slot);
+EXPORT_SYMBOL(scc_encrypt_slot);
+EXPORT_SYMBOL(scc_decrypt_slot);
+EXPORT_SYMBOL(scc_get_slot_info);
+
+/* Tell Linux where to invoke driver at boot/module load time */
+module_init(scc_init);
+/* Tell Linux where to invoke driver on module unload */
+module_exit(scc_cleanup);
+
+MODULE_LICENSE("GPL");
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_DESCRIPTION("Device Driver for SCC (SMN/SCM)");
+
+#endif /* __MXC_SCC_INTERNALS_H__ */
diff --git a/drivers/mxc/security/rng/Makefile b/drivers/mxc/security/rng/Makefile
new file mode 100644
index 000000000000..7d3332e2e675
--- /dev/null
+++ b/drivers/mxc/security/rng/Makefile
@@ -0,0 +1,35 @@
+# Makefile for the Linux RNG Driver
+#
+# This makefile works within a kernel driver tree
+
+ # Makefile for rng_driver
+
+
+# Possible configurable paramters
+CFG_RNG += -DRNGA_MAX_REQUEST_SIZE=32
+
+#DBG_RNGA = -DRNGA_DEBUG
+#DBG_RNGA += -DRNGA_REGISTER_DEBUG
+#DBG_RNGA += -DRNGA_ENTROPY_DEBUG
+
+EXTRA_CFLAGS = -DLINUX_KERNEL $(CFG_RNG) $(DBG_RNG)
+
+
+ifeq ($(CONFIG_MXC_RNG_TEST_DRIVER),y)
+EXTRA_CFLAGS += -DRNG_REGISTER_PEEK_POKE
+endif
+ifeq ($(CONFIG_RNG_DEBUG),y)
+EXTRA_CFLAGS += -DDEBUG
+endif
+
+
+EXTRA_CFLAGS += -Idrivers/mxc/security/rng/include -Idrivers/mxc/security/sahara2/include
+
+obj-$(CONFIG_MXC_SECURITY_RNG) += shw.o
+#shw-objs := shw_driver.o shw_memory_mapper.o ../sahara2/fsl_shw_keystore.o
+shw-objs := shw_driver.o shw_memory_mapper.o ../sahara2/fsl_shw_keystore.o \
+ fsl_shw_sym.o fsl_shw_wrap.o shw_dryice.o des_key.o \
+ shw_hash.o shw_hmac.o
+
+obj-$(CONFIG_MXC_SECURITY_RNG) += rng.o
+rng-objs := rng_driver.o
diff --git a/drivers/mxc/security/rng/des_key.c b/drivers/mxc/security/rng/des_key.c
new file mode 100644
index 000000000000..14ac2b3cdd5e
--- /dev/null
+++ b/drivers/mxc/security/rng/des_key.c
@@ -0,0 +1,385 @@
+/*
+ * Copyright (C) 2009-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+
+/*!
+ * @file des_key.c
+ *
+ * This file implements the function #fsl_shw_permute1_bytes().
+ *
+ * The code was lifted from crypto++ v5.5.2, which is public domain code. The
+ * code to handle words instead of bytes was extensively modified from the byte
+ * version and then converted to handle one to three keys at once.
+ *
+ */
+
+#include "shw_driver.h"
+#ifdef DIAG_SECURITY_FUNC
+#include "apihelp.h"
+#endif
+
+#ifndef __KERNEL__
+#include <asm/types.h>
+#include <linux/byteorder/little_endian.h> /* or whichever is proper for target arch */
+#endif
+
+#ifdef DEBUG
+#undef DEBUG /* TEMPORARY */
+#endif
+
+#if defined(DEBUG) || defined(SELF_TEST)
+static void DUMP_BYTES(const char *label, const uint8_t * data, int len)
+{
+ int i;
+
+ printf("%s: ", label);
+ for (i = 0; i < len; i++) {
+ printf("%02X", data[i]);
+ if ((i % 8 == 0) && (i != 0)) {
+ printf("_"); /* key separator */
+ }
+ }
+ printf("\n");
+}
+
+static void DUMP_WORDS(const char *label, const uint32_t * data, int len)
+{
+ int i, j;
+
+ printf("%s: ", label);
+ /* Dump the words in reverse order, so that they are intelligible */
+ for (i = len - 1; i >= 0; i--) {
+ for (j = 3; j >= 0; j--) {
+ uint32_t word = data[i];
+ printf("%02X", (word >> ((j * 8)) & 0xff));
+ if ((i != 0) && ((((i) * 4 + 5 + j) % 7) == 5))
+ printf("_"); /* key separator */
+ }
+ printf("|"); /* word separator */
+ }
+ printf("\n");
+}
+#else
+#define DUMP_BYTES(label, data,len)
+#define DUMP_WORDS(label, data,len)
+#endif
+
+/*!
+ * permuted choice table (key)
+ *
+ * Note that this table has had one subtracted from each element so that the
+ * code doesn't have to do it.
+ */
+static const uint8_t pc1[] = {
+ 56, 48, 40, 32, 24, 16, 8,
+ 0, 57, 49, 41, 33, 25, 17,
+ 9, 1, 58, 50, 42, 34, 26,
+ 18, 10, 2, 59, 51, 43, 35,
+ 62, 54, 46, 38, 30, 22, 14,
+ 6, 61, 53, 45, 37, 29, 21,
+ 13, 5, 60, 52, 44, 36, 28,
+ 20, 12, 4, 27, 19, 11, 3,
+};
+
+/*! bit 0 is left-most in byte */
+static const int bytebit[] = {
+ 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01
+};
+
+/*!
+ * Convert a 3-key 3DES key into the first-permutation 168-bit version.
+ *
+ * This is the format of the input key:
+ *
+ * @verbatim
+ BIT: |191 128|127 64|63 0|
+ BYTE: | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 |
+ KEY: | 0 | 1 | 2 |
+ @endverbatim
+ *
+ * This is the format of the output key:
+ *
+ * @verbatim
+ BIT: |167 112|111 56|55 0|
+ BYTE: | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
+ KEY: | 1 | 2 | 3 |
+ @endverbatim
+ *
+ * @param[in] key bytes of 3DES key
+ * @param[out] permuted_key 21 bytes of permuted key
+ * @param[in] key_count How many DES keys (2 or 3)
+ */
+void fsl_shw_permute1_bytes(const uint8_t * key, uint8_t * permuted_key,
+ int key_count)
+{
+ int i;
+ int j;
+ int l;
+ int m;
+
+ DUMP_BYTES("Input key", key, 8 * key_count);
+
+ /* For each individual sub-key */
+ for (i = 0; i < 3; i++) {
+ DUMP_BYTES("(key)", key, 8);
+ memset(permuted_key, 0, 7);
+ /* For each bit of key */
+ for (j = 0; j < 56; j++) { /* convert pc1 to bits of key */
+ l = pc1[j]; /* integer bit location */
+ m = l & 07; /* find bit */
+ permuted_key[j >> 3] |= (((key[l >> 3] & /* find which key byte l is in */
+ bytebit[m]) /* and which bit of that byte */
+ ? 0x80 : 0) >> (j % 8)); /* and store 1-bit result */
+ }
+ switch (i) {
+ case 0:
+ if (key_count != 1)
+ key += 8; /* move on to second key */
+ break;
+ case 1:
+ if (key_count == 2)
+ key -= 8; /* go back to first key */
+ else if (key_count == 3)
+ key += 8; /* move on to third key */
+ break;
+ default:
+ break;
+ }
+ permuted_key += 7;
+ }
+ DUMP_BYTES("Output key (bytes)", permuted_key - 21, 21);
+}
+
+#ifdef SELF_TEST
+const uint8_t key1_in[] = {
+ /* FE01FE01FE01FE01_01FE01FE01FE01FE_FEFE0101FEFE0101 */
+ 0xFE, 0x01, 0xFE, 0x01, 0xFE, 0x01, 0xFE, 0x01,
+ 0x01, 0xFE, 0x01, 0xFE, 0x01, 0xFE, 0x01, 0xFE,
+ 0xFE, 0xFE, 0x01, 0x01, 0xFE, 0xFE, 0x01, 0x01
+};
+
+const uint32_t key1_word_in[] = {
+ 0xFE01FE01, 0xFE01FE01,
+ 0x01FE01FE, 0x01FE01FE,
+ 0xFEFE0101, 0xFEFE0101
+};
+
+uint8_t exp_key1_out[] = {
+ 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+ 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
+ 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33
+};
+
+uint32_t exp_word_key1_out[] = {
+ 0x33333333, 0xAA333333, 0xAAAAAAAA, 0x5555AAAA,
+ 0x55555555, 0x00000055,
+};
+
+const uint8_t key2_in[] = {
+ 0xEF, 0x10, 0xBB, 0xA4, 0x23, 0x49, 0x42, 0x58,
+ 0x01, 0x28, 0x01, 0x4A, 0x10, 0xE4, 0x03, 0x59,
+ 0xFE, 0x84, 0x30, 0x29, 0x8E, 0xF1, 0x10, 0x5A
+};
+
+const uint32_t key2_word_in[] = {
+ 0xEF10BBA4, 0x23494258,
+ 0x0128014A, 0x10E40359,
+ 0xFE843029, 0x8EF1105A
+};
+
+uint8_t exp_key2_out[] = {
+ 0x0D, 0xE1, 0x1D, 0x85, 0x50, 0x9A, 0x56, 0x20,
+ 0xA8, 0x22, 0x94, 0x82, 0x08, 0xA0, 0x33, 0xA1,
+ 0x2D, 0xE9, 0x11, 0x39, 0x95
+};
+
+uint32_t exp_word_key2_out[] = {
+ 0xE9113995, 0xA033A12D, 0x22948208, 0x9A5620A8,
+ 0xE11D8550, 0x0000000D
+};
+
+const uint8_t key3_in[] = {
+ 0x3F, 0xE9, 0x49, 0x4B, 0x67, 0x57, 0x07, 0x3C,
+ 0x89, 0x77, 0x73, 0x0C, 0xA0, 0x05, 0x41, 0x69,
+ 0xB3, 0x7C, 0x98, 0xD8, 0xC9, 0x35, 0x57, 0x19
+};
+
+const uint32_t key3_word_in[] = {
+ 0xEF10BBA4, 0x23494258,
+ 0x0128014A, 0x10E40359,
+ 0xFE843029, 0x8EF1105A
+};
+
+uint8_t exp_key3_out[] = {
+ 0x02, 0x3E, 0x93, 0xA7, 0x9F, 0x18, 0xF1, 0x11,
+ 0xC6, 0x96, 0x00, 0x62, 0xA8, 0x96, 0x02, 0x3E,
+ 0x93, 0xA7, 0x9F, 0x18, 0xF1
+};
+
+uint32_t exp_word_key3_out[] = {
+ 0xE9113995, 0xA033A12D, 0x22948208, 0x9A5620A8,
+ 0xE11D8550, 0x0000000D
+};
+
+const uint8_t key4_in[] = {
+ 0x3F, 0xE9, 0x49, 0x4B, 0x67, 0x57, 0x07, 0x3C,
+ 0x89, 0x77, 0x73, 0x0C, 0xA0, 0x05, 0x41, 0x69,
+};
+
+const uint32_t key4_word_in[] = {
+ 0xEF10BBA4, 0x23494258,
+ 0x0128014A, 0x10E40359,
+ 0xFE843029, 0x8EF1105A
+};
+
+const uint8_t key5_in[] = {
+ 0x3F, 0xE9, 0x49, 0x4B, 0x67, 0x57, 0x07, 0x3C,
+ 0x89, 0x77, 0x73, 0x0C, 0xA0, 0x05, 0x41, 0x69,
+ 0x3F, 0xE9, 0x49, 0x4B, 0x67, 0x57, 0x07, 0x3C,
+};
+
+uint8_t exp_key4_out[] = {
+ 0x0D, 0xE1, 0x1D, 0x85, 0x50, 0x9A, 0x56, 0x20,
+ 0xA8, 0x22, 0x94, 0x82, 0x08, 0xA0, 0x33, 0xA1,
+ 0x2D, 0xE9, 0x11, 0x39, 0x95
+};
+
+uint32_t exp_word_key4_out[] = {
+ 0xE9113995, 0xA033A12D, 0x22948208, 0x9A5620A8,
+ 0xE11D8550, 0x0000000D
+};
+
+const uint8_t key6_in[] = {
+ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01
+};
+
+uint8_t exp_key6_out[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00
+};
+
+uint32_t exp_word_key6_out[] = {
+ 0x00000000, 0x0000000, 0x0000000, 0x00000000,
+ 0x00000000, 0x0000000
+};
+
+const uint8_t key7_in[] = {
+ /* 01FE01FE01FE01FE_FE01FE01FE01FE01_0101FEFE0101FEFE */
+ /* 0101FEFE0101FEFE_FE01FE01FE01FE01_01FE01FE01FE01FE */
+ 0x01, 0x01, 0xFE, 0xFE, 0x01, 0x01, 0xFE, 0xFE,
+ 0xFE, 0x01, 0xFE, 0x01, 0xFE, 0x01, 0xFE, 0x01,
+ 0x01, 0xFE, 0x01, 0xFE, 0x01, 0xFE, 0x01, 0xFE,
+};
+
+uint8_t exp_key7_out[] = {
+ 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x55,
+ 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa,
+ 0xaa, 0xaa, 0xaa, 0xaa, 0xaa
+};
+
+uint32_t exp_word_key7_out[] = {
+ 0xcccccccc, 0x55cccccc, 0x55555555, 0xaaaa5555,
+ 0xaaaaaaaa, 0x000000aa
+};
+
+int run_test(const uint8_t * key_in,
+ const int key_count,
+ const uint32_t * key_word_in,
+ const uint8_t * exp_bytes_key_out,
+ const uint32_t * exp_word_key_out)
+{
+ uint8_t key_out[22];
+ uint32_t word_key_out[6];
+ int failed = 0;
+
+ memset(key_out, 0x42, 22);
+ fsl_shw_permute1_bytes(key_in, key_out, key_count);
+ if (memcmp(key_out, exp_bytes_key_out, 21) != 0) {
+ printf("bytes_to_bytes: ERROR: \n");
+ DUMP_BYTES("key_in", key_in, 8 * key_count);
+ DUMP_BYTES("key_out", key_out, 21);
+ DUMP_BYTES("exp_out", exp_bytes_key_out, 21);
+ failed |= 1;
+ } else if (key_out[21] != 0x42) {
+ printf("bytes_to_bytes: ERROR: Buffer overflow 0x%02x\n",
+ (int)key_out[21]);
+ } else {
+ printf("bytes_to_bytes: OK\n");
+ }
+#if 0
+ memset(word_key_out, 0x42, 21);
+ fsl_shw_permute1_bytes_to_words(key_in, word_key_out, key_count);
+ if (memcmp(word_key_out, exp_word_key_out, 21) != 0) {
+ printf("bytes_to_words: ERROR: \n");
+ DUMP_BYTES("key_in", key_in, 8 * key_count);
+ DUMP_WORDS("key_out", word_key_out, 6);
+ DUMP_WORDS("exp_out", exp_word_key_out, 6);
+ failed |= 1;
+ } else {
+ printf("bytes_to_words: OK\n");
+ }
+
+ if (key_word_in != NULL) {
+ memset(word_key_out, 0x42, 21);
+ fsl_shw_permute1_words_to_words(key_word_in, word_key_out);
+ if (memcmp(word_key_out, exp_word_key_out, 21) != 0) {
+ printf("words_to_words: ERROR: \n");
+ DUMP_BYTES("key_in", key_in, 24);
+ DUMP_WORDS("key_out", word_key_out, 6);
+ DUMP_WORDS("exp_out", exp_word_key_out, 6);
+ failed |= 1;
+ } else {
+ printf("words_to_words: OK\n");
+ }
+ }
+#endif
+
+ return failed;
+} /* end fn run_test */
+
+int main()
+{
+ int failed = 0;
+
+ printf("key1\n");
+ failed |=
+ run_test(key1_in, 3, key1_word_in, exp_key1_out, exp_word_key1_out);
+ printf("\nkey2\n");
+ failed |=
+ run_test(key2_in, 3, key2_word_in, exp_key2_out, exp_word_key2_out);
+ printf("\nkey3\n");
+ failed |= run_test(key3_in, 3, NULL, exp_key3_out, exp_word_key3_out);
+ printf("\nkey4\n");
+ failed |= run_test(key4_in, 2, NULL, exp_key4_out, exp_word_key4_out);
+ printf("\nkey5\n");
+ failed |= run_test(key5_in, 3, NULL, exp_key4_out, exp_word_key4_out);
+ printf("\nkey6 - 3\n");
+ failed |= run_test(key6_in, 3, NULL, exp_key6_out, exp_word_key6_out);
+ printf("\nkey6 - 2\n");
+ failed |= run_test(key6_in, 2, NULL, exp_key6_out, exp_word_key6_out);
+ printf("\nkey6 - 1\n");
+ failed |= run_test(key6_in, 1, NULL, exp_key6_out, exp_word_key6_out);
+ printf("\nkey7\n");
+ failed |= run_test(key7_in, 3, NULL, exp_key7_out, exp_word_key7_out);
+ printf("\n");
+
+ if (failed != 0) {
+ printf("TEST FAILED\n");
+ }
+ return failed;
+}
+
+#endif /* SELF_TEST */
diff --git a/drivers/mxc/security/rng/fsl_shw_hash.c b/drivers/mxc/security/rng/fsl_shw_hash.c
new file mode 100644
index 000000000000..56b2dcc34035
--- /dev/null
+++ b/drivers/mxc/security/rng/fsl_shw_hash.c
@@ -0,0 +1,84 @@
+/*
+ * Copyright (C) 2005-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+
+/*!
+ * @file fsl_shw_hash.c
+ *
+ * This file implements Cryptographic Hashing functions of the FSL SHW API
+ * for Sahara. This does not include HMAC.
+ */
+
+#include "shw_driver.h"
+
+/* REQ-S2LRD-PINTFC-API-BASIC-HASH-005 */
+/*!
+ * Hash a stream of data with a cryptographic hash algorithm.
+ *
+ * The flags in the @a hash_ctx control the operation of this function.
+ *
+ * Hashing functions work on 64 octets of message at a time. Therefore, when
+ * any partial hashing of a long message is performed, the message @a length of
+ * each segment must be a multiple of 64. When ready to
+ * #FSL_HASH_FLAGS_FINALIZE the hash, the @a length may be any value.
+ *
+ * With the #FSL_HASH_FLAGS_INIT and #FSL_HASH_FLAGS_FINALIZE flags on, a
+ * one-shot complete hash, including padding, will be performed. The @a length
+ * may be any value.
+ *
+ * The first octets of a data stream can be hashed by setting the
+ * #FSL_HASH_FLAGS_INIT and #FSL_HASH_FLAGS_SAVE flags. The @a length must be
+ * a multiple of 64.
+ *
+ * The flag #FSL_HASH_FLAGS_LOAD is used to load a context previously saved by
+ * #FSL_HASH_FLAGS_SAVE. The two in combination will allow a (multiple-of-64
+ * octets) 'middle sequence' of the data stream to be hashed with the
+ * beginning. The @a length must again be a multiple of 64.
+ *
+ * Since the flag #FSL_HASH_FLAGS_LOAD is used to load a context previously
+ * saved by #FSL_HASH_FLAGS_SAVE, the #FSL_HASH_FLAGS_LOAD and
+ * #FSL_HASH_FLAGS_FINALIZE flags, used together, can be used to finish the
+ * stream. The @a length may be any value.
+ *
+ * If the user program wants to do the padding for the hash, it can leave off
+ * the #FSL_HASH_FLAGS_FINALIZE flag. The @a length must then be a multiple of
+ * 64 octets.
+ *
+ * @param user_ctx A user context from #fsl_shw_register_user().
+ * @param[in,out] hash_ctx Hashing algorithm and state of the cipher.
+ * @param msg Pointer to the data to be hashed.
+ * @param length Length, in octets, of the @a msg.
+ * @param[out] result If not null, pointer to where to store the hash
+ * digest.
+ * @param result_len Number of octets to store in @a result.
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+fsl_shw_return_t fsl_shw_hash(fsl_shw_uco_t * user_ctx,
+ fsl_shw_hco_t * hash_ctx,
+ const uint8_t * msg,
+ uint32_t length,
+ uint8_t * result, uint32_t result_len)
+{
+ fsl_shw_return_t ret = FSL_RETURN_ERROR_S;
+
+ /* Unused */
+ (void)user_ctx;
+ (void)hash_ctx;
+ (void)msg;
+ (void)length;
+ (void)result;
+ (void)result_len;
+
+ return ret;
+}
diff --git a/drivers/mxc/security/rng/fsl_shw_hmac.c b/drivers/mxc/security/rng/fsl_shw_hmac.c
new file mode 100644
index 000000000000..23a2fb3d3292
--- /dev/null
+++ b/drivers/mxc/security/rng/fsl_shw_hmac.c
@@ -0,0 +1,83 @@
+/*
+ * Copyright (C) 2005-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+
+/*!
+ * @file fsl_shw_hmac.c
+ *
+ * This file implements Hashed Message Authentication Code functions of the FSL
+ * SHW API.
+ */
+
+#include "shw_driver.h"
+
+/* REQ-S2LRD-PINTFC-API-BASIC-HMAC-001 */
+/*!
+ * Get the precompute information
+ *
+ *
+ * @param user_ctx
+ * @param key_info
+ * @param hmac_ctx
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+fsl_shw_return_t fsl_shw_hmac_precompute(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info,
+ fsl_shw_hmco_t * hmac_ctx)
+{
+ fsl_shw_return_t status = FSL_RETURN_ERROR_S;
+
+ /* Unused */
+ (void)user_ctx;
+ (void)key_info;
+ (void)hmac_ctx;
+
+ return status;
+}
+
+/* REQ-S2LRD-PINTFC-API-BASIC-HMAC-002 */
+/*!
+ * Get the hmac
+ *
+ *
+ * @param user_ctx Info for acquiring memory
+ * @param key_info
+ * @param hmac_ctx
+ * @param msg
+ * @param length
+ * @param result
+ * @param result_len
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+fsl_shw_return_t fsl_shw_hmac(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info,
+ fsl_shw_hmco_t * hmac_ctx,
+ const uint8_t * msg,
+ uint32_t length,
+ uint8_t * result, uint32_t result_len)
+{
+ fsl_shw_return_t status = FSL_RETURN_ERROR_S;
+
+ /* Unused */
+ (void)user_ctx;
+ (void)key_info;
+ (void)hmac_ctx;
+ (void)msg;
+ (void)length;
+ (void)result;
+ (void)result_len;
+
+ return status;
+}
diff --git a/drivers/mxc/security/rng/fsl_shw_rand.c b/drivers/mxc/security/rng/fsl_shw_rand.c
new file mode 100644
index 000000000000..7ba49d8d470f
--- /dev/null
+++ b/drivers/mxc/security/rng/fsl_shw_rand.c
@@ -0,0 +1,122 @@
+/*
+ * Copyright (C) 2005-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+
+/*!
+ * @file fsl_shw_rand.c
+ *
+ * This file implements Random Number Generation functions of the FSL SHW API
+ * in USER MODE for talking to a standalone RNGA/RNGC device driver.
+ *
+ * It contains the fsl_shw_get_random() and fsl_shw_add_entropy() functions.
+ *
+ * These routines will build a request block and pass it to the SHW driver.
+ */
+
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/fcntl.h>
+#include <sys/ioctl.h>
+#include <signal.h>
+
+#ifdef FSL_DEBUG
+#include <stdio.h>
+#include <errno.h>
+#include <string.h>
+#endif /* FSL_DEBUG */
+
+#include "shw_driver.h"
+
+extern fsl_shw_return_t validate_uco(fsl_shw_uco_t * uco);
+
+#if defined(FSL_HAVE_RNGA) || defined(FSL_HAVE_RNGB) || defined(FSL_HAVE_RNGC)
+
+/* REQ-S2LRD-PINTFC-API-BASIC-RNG-002 */
+fsl_shw_return_t fsl_shw_get_random(fsl_shw_uco_t * user_ctx,
+ uint32_t length, uint8_t * data)
+{
+ fsl_shw_return_t ret = FSL_RETURN_ERROR_S;
+
+ /* perform a sanity check / update uco */
+ ret = validate_uco(user_ctx);
+ if (ret == FSL_RETURN_OK_S) {
+ struct get_random_req *req = malloc(sizeof(*req));
+
+ if (req == NULL) {
+ ret = FSL_RETURN_NO_RESOURCE_S;
+ } else {
+
+ init_req(&req->hdr, user_ctx);
+ req->size = length;
+ req->random = data;
+
+ ret =
+ send_req(SHW_USER_REQ_GET_RANDOM, &req->hdr,
+ user_ctx);
+ }
+ }
+
+ return ret;
+}
+
+fsl_shw_return_t fsl_shw_add_entropy(fsl_shw_uco_t * user_ctx,
+ uint32_t length, uint8_t * data)
+{
+ fsl_shw_return_t ret = FSL_RETURN_ERROR_S;
+
+ /* perform a sanity check on the uco */
+ ret = validate_uco(user_ctx);
+ if (ret == FSL_RETURN_OK_S) {
+ struct add_entropy_req *req = malloc(sizeof(*req));
+
+ if (req == NULL) {
+ ret = FSL_RETURN_NO_RESOURCE_S;
+ } else {
+ init_req(&req->hdr, user_ctx);
+ req->size = length;
+ req->entropy = data;
+
+ ret =
+ send_req(SHW_USER_REQ_ADD_ENTROPY, &req->hdr,
+ user_ctx);
+ }
+ }
+
+ return ret;
+}
+
+#else /* no H/W RNG block */
+
+fsl_shw_return_t fsl_shw_get_random(fsl_shw_uco_t * user_ctx,
+ uint32_t length, uint8_t * data)
+{
+
+ (void)user_ctx;
+ (void)length;
+ (void)data;
+
+ return FSL_RETURN_ERROR_S;
+}
+
+fsl_shw_return_t fsl_shw_add_entropy(fsl_shw_uco_t * user_ctx,
+ uint32_t length, uint8_t * data)
+{
+
+ (void)user_ctx;
+ (void)length;
+ (void)data;
+
+ return FSL_RETURN_ERROR_S;
+}
+#endif
diff --git a/drivers/mxc/security/rng/fsl_shw_sym.c b/drivers/mxc/security/rng/fsl_shw_sym.c
new file mode 100644
index 000000000000..bcd8a0efcced
--- /dev/null
+++ b/drivers/mxc/security/rng/fsl_shw_sym.c
@@ -0,0 +1,317 @@
+/*
+ * Copyright (C) 2009-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+
+/*!
+ * @file fsl_shw_sym.c
+ *
+ * This file implements the Symmetric Cipher functions of the FSL SHW API. Its
+ * features are limited to what can be done with the combination of SCC and
+ * DryIce.
+ */
+#include "fsl_platform.h"
+#include "shw_driver.h"
+
+#if defined(__KERNEL__) && defined(FSL_HAVE_DRYICE)
+
+#include "../dryice.h"
+#include <linux/mxc_scc_driver.h>
+#ifdef DIAG_SECURITY_FUNC
+#include "apihelp.h"
+#endif
+
+#include <diagnostic.h>
+
+#define SYM_DECRYPT 0
+#define SYM_ENCRYPT 1
+
+extern fsl_shw_return_t shw_convert_pf_key(fsl_shw_pf_key_t shw_pf_key,
+ di_key_t * di_keyp);
+
+/*! 'Initial' IV for presence of FSL_SYM_CTX_LOAD flag */
+static uint8_t zeros[8] = {
+ 0, 0, 0, 0, 0, 0, 0, 0
+};
+
+/*!
+ * Common function for encryption and decryption
+ *
+ * This is for a device with DryIce.
+ *
+ * A key must either refer to a 'pure' HW key, or, if PRG or PRG_IIM,
+ * established, then that key will be programmed. Then, the HW_key in the
+ * object will be selected. After this setup, the ciphering will be performed
+ * by calling the SCC driver..
+ *
+ * The function 'releases' the reservations before it completes.
+ */
+fsl_shw_return_t do_symmetric(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info,
+ fsl_shw_scco_t * sym_ctx,
+ int encrypt,
+ uint32_t length,
+ const uint8_t * in, uint8_t * out)
+{
+ fsl_shw_return_t ret = FSL_RETURN_ERROR_S;
+ int key_selected = 0;
+ uint8_t *iv = NULL;
+ unsigned long count_out = length;
+ di_key_t di_key = DI_KEY_PK; /* default for user key */
+ di_key_t di_key_orig; /* currently selected key */
+ di_key_t selected_key = -1;
+ di_return_t di_code;
+ scc_return_t scc_code;
+
+ /* For now, only blocking mode calls are supported */
+ if (!(user_ctx->flags & FSL_UCO_BLOCKING_MODE)) {
+ ret = FSL_RETURN_BAD_FLAG_S;
+ goto out;
+ }
+
+ /* No software keys allowed */
+ if (key_info->flags & FSL_SKO_KEY_SW_KEY) {
+ ret = FSL_RETURN_BAD_FLAG_S;
+ }
+
+ /* The only algorithm the SCC supports */
+ if (key_info->algorithm != FSL_KEY_ALG_TDES) {
+ ret = FSL_RETURN_BAD_ALGORITHM_S;
+ goto out;
+ }
+
+ /* Validate key length */
+ if ((key_info->key_length != 16)
+ && (key_info->key_length != 21)
+ && (key_info->key_length != 24)) {
+ ret = FSL_RETURN_BAD_KEY_LENGTH_S;
+ goto out;
+ }
+
+ /* Validate data is multiple of DES/TDES block */
+ if ((length & 7) != 0) {
+ ret = FSL_RETURN_BAD_DATA_LENGTH_S;
+ goto out;
+ }
+
+ /* Do some setup according to where the key lives */
+ if (key_info->flags & FSL_SKO_KEY_ESTABLISHED) {
+ if ((key_info->pf_key != FSL_SHW_PF_KEY_PRG)
+ && (key_info->pf_key != FSL_SHW_PF_KEY_IIM_PRG)) {
+ ret = FSL_RETURN_ERROR_S;
+ }
+ } else if (key_info->flags & FSL_SKO_KEY_PRESENT) {
+ ret = FSL_RETURN_BAD_FLAG_S;
+ } else if (key_info->flags & FSL_SKO_KEY_SELECT_PF_KEY) {
+ /*
+ * No key present or established, just refer to HW
+ * as programmed.
+ */
+ } else {
+ ret = FSL_RETURN_BAD_FLAG_S;
+ goto out;
+ }
+
+ /* Now make proper selection */
+ ret = shw_convert_pf_key(key_info->pf_key, &di_key);
+ if (ret != FSL_RETURN_OK_S) {
+ goto out;
+ }
+
+ /* Determine the current DI key selection */
+ di_code = dryice_check_key(&di_key_orig);
+ if (di_code != DI_SUCCESS) {
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG_ARGS("Could not save current DI key state: %s\n",
+ di_error_string(di_code));
+#endif
+ ret = FSL_RETURN_ERROR_S;
+ goto out;
+ }
+
+ /* If the requested DI key is already selected, don't re-select it. */
+ if (di_key != di_key_orig) {
+ di_code = dryice_select_key(di_key, 0);
+ if (di_code != DI_SUCCESS) {
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG_ARGS("Error from select_key: %s\n",
+ di_error_string(di_code));
+#endif
+ ret = FSL_RETURN_INTERNAL_ERROR_S;
+ goto out;
+ }
+ }
+ key_selected = 1;
+
+ /* Verify that we are using the key we want */
+ di_code = dryice_check_key(&selected_key);
+ if (di_code != DI_SUCCESS) {
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG_ARGS("Error from check_key: %s\n",
+ di_error_string(di_code));
+#endif
+ ret = FSL_RETURN_INTERNAL_ERROR_S;
+ goto out;
+ }
+
+ if (di_key != selected_key) {
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG_ARGS("Wrong key in use: %d instead of %d\n\n",
+ selected_key, di_key);
+#endif
+ ret = FSL_RETURN_ERROR_S;
+ goto out;
+ }
+
+ if (sym_ctx->mode == FSL_SYM_MODE_CBC) {
+ if ((sym_ctx->flags & FSL_SYM_CTX_LOAD)
+ && !(sym_ctx->flags & FSL_SYM_CTX_INIT)) {
+ iv = sym_ctx->context;
+ } else if ((sym_ctx->flags & FSL_SYM_CTX_INIT)
+ && !(sym_ctx->flags & FSL_SYM_CTX_LOAD)) {
+ iv = zeros;
+ } else {
+ /* Exactly one must be set! */
+ ret = FSL_RETURN_BAD_FLAG_S;
+ goto out;
+ }
+ }
+
+ /* Now run the data through the SCC */
+ scc_code = scc_crypt(length, in, iv,
+ encrypt ? SCC_ENCRYPT : SCC_DECRYPT,
+ (sym_ctx->mode == FSL_SYM_MODE_ECB)
+ ? SCC_ECB_MODE : SCC_CBC_MODE,
+ SCC_VERIFY_MODE_NONE, out, &count_out);
+ if (scc_code != SCC_RET_OK) {
+ ret = FSL_RETURN_INTERNAL_ERROR_S;
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG_ARGS("scc_code from scc_crypt() is %d\n", scc_code);
+#endif
+ goto out;
+ }
+
+ if ((sym_ctx->mode == FSL_SYM_MODE_CBC)
+ && (sym_ctx->flags & FSL_SYM_CTX_SAVE)) {
+ /* Save the context for the caller */
+ if (encrypt) {
+ /* Last ciphertext block ... */
+ memcpy(sym_ctx->context, out + length - 8, 8);
+ } else {
+ /* Last ciphertext block ... */
+ memcpy(sym_ctx->context, in + length - 8, 8);
+ }
+ }
+
+ ret = FSL_RETURN_OK_S;
+
+ out:
+ if (key_selected) {
+ (void)dryice_release_key_selection();
+ }
+
+ return ret;
+}
+
+EXPORT_SYMBOL(fsl_shw_symmetric_encrypt);
+/*!
+ * Compute symmetric encryption
+ *
+ *
+ * @param user_ctx
+ * @param key_info
+ * @param sym_ctx
+ * @param length
+ * @param pt
+ * @param ct
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+fsl_shw_return_t fsl_shw_symmetric_encrypt(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info,
+ fsl_shw_scco_t * sym_ctx,
+ uint32_t length,
+ const uint8_t * pt, uint8_t * ct)
+{
+ fsl_shw_return_t ret;
+
+ ret = do_symmetric(user_ctx, key_info, sym_ctx, SYM_ENCRYPT,
+ length, pt, ct);
+
+ return ret;
+}
+
+EXPORT_SYMBOL(fsl_shw_symmetric_decrypt);
+/*!
+ * Compute symmetric decryption
+ *
+ *
+ * @param user_ctx
+ * @param key_info
+ * @param sym_ctx
+ * @param length
+ * @param pt
+ * @param ct
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+fsl_shw_return_t fsl_shw_symmetric_decrypt(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info,
+ fsl_shw_scco_t * sym_ctx,
+ uint32_t length,
+ const uint8_t * ct, uint8_t * pt)
+{
+ fsl_shw_return_t ret;
+
+ ret = do_symmetric(user_ctx, key_info, sym_ctx, SYM_DECRYPT,
+ length, ct, pt);
+
+ return ret;
+}
+
+#else /* __KERNEL__ && DRYICE */
+
+fsl_shw_return_t fsl_shw_symmetric_encrypt(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info,
+ fsl_shw_scco_t * sym_ctx,
+ uint32_t length,
+ const uint8_t * pt, uint8_t * ct)
+{
+ /* Unused */
+ (void)user_ctx;
+ (void)key_info;
+ (void)sym_ctx;
+ (void)length;
+ (void)pt;
+ (void)ct;
+
+ return FSL_RETURN_ERROR_S;
+}
+
+fsl_shw_return_t fsl_shw_symmetric_decrypt(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info,
+ fsl_shw_scco_t * sym_ctx,
+ uint32_t length,
+ const uint8_t * ct, uint8_t * pt)
+{
+ /* Unused */
+ (void)user_ctx;
+ (void)key_info;
+ (void)sym_ctx;
+ (void)length;
+ (void)ct;
+ (void)pt;
+
+ return FSL_RETURN_ERROR_S;
+}
+
+#endif /* __KERNEL__ and DRYICE */
diff --git a/drivers/mxc/security/rng/fsl_shw_wrap.c b/drivers/mxc/security/rng/fsl_shw_wrap.c
new file mode 100644
index 000000000000..c7d6947296af
--- /dev/null
+++ b/drivers/mxc/security/rng/fsl_shw_wrap.c
@@ -0,0 +1,1301 @@
+/*
+ * Copyright (C) 2009-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file fsl_shw_wrap.c
+ *
+ * This file implements Key-Wrap (Black Key) and Key Establishment functions of
+ * the FSL SHW API for the SHW (non-SAHARA) driver.
+ *
+ * This is the Black Key information:
+ *
+ * <ul>
+ * <li> Ownerid is an 8-byte, user-supplied, value to keep KEY
+ * confidential.</li>
+ * <li> KEY is a 1-32 byte value which starts in SCC RED RAM before
+ * wrapping, and ends up there on unwrap. Length is limited because of
+ * size of SCC1 RAM.</li>
+ * <li> KEY' is the encrypted KEY</li>
+ * <li> LEN is a 1-byte (for now) byte-length of KEY</li>
+ * <li> ALG is a 1-byte value for the algorithm which which the key is
+ * associated. Values are defined by the FSL SHW API</li>
+ * <li> FLAGS is a 1-byte value contain information like "this key is for
+ * software" (TBD)</li>
+ * <li> Ownerid, LEN, and ALG come from the user's "key_info" object, as does
+ * the slot number where KEY already is/will be.</li>
+ * <li> T is a Nonce</li>
+ * <li> T' is the encrypted T</li>
+ * <li> KEK is a Key-Encryption Key for the user's Key</li>
+ * <li> ICV is the "Integrity Check Value" for the wrapped key</li>
+ * <li> Black Key is the string of bytes returned as the wrapped key</li>
+ * <li> Wrap Key is the user's choice for encrypting the nonce. One of
+ * the Fused Key, the Random Key, or the XOR of the two.
+ * </ul>
+<table border="0">
+<tr><TD align="right">BLACK_KEY <TD width="3">=<TD>ICV | T' | LEN | ALG |
+ FLAGS | KEY'</td></tr>
+<tr><td>&nbsp;</td></tr>
+
+<tr><th>To Wrap</th></tr>
+<tr><TD align="right">T</td> <TD width="3">=</td> <TD>RND()<sub>16</sub>
+ </td></tr>
+<tr><TD align="right">KEK</td><TD width="3">=</td><TD>HASH<sub>sha256</sub>(T |
+ Ownerid)<sub>16</sub></td></tr>
+<tr><TD align="right">KEY'<TD width="3">=</td><TD>
+ TDES<sub>cbc-enc</sub>(Key=KEK, Data=KEY, IV=Ownerid)</td></tr>
+<tr><TD align="right">ICV</td><TD width="3">=</td><td>HMAC<sub>sha256</sub>
+ (Key=T, Data=Ownerid | LEN | ALG | FLAGS | KEY')<sub>16</sub></td></tr>
+<tr><TD align="right">T'</td><TD width="3">=</td><TD>TDES<sub>ecb-enc</sub>
+ (Key=Wrap_Key, IV=Ownerid, Data=T)</td></tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr><th>To Unwrap</th></tr>
+<tr><TD align="right">T</td><TD width="3">=</td><TD>TDES<sub>ecb-dec</sub>
+ (Key=Wrap_Key, IV=Ownerid, Data=T')</td></tr>
+<tr><TD align="right">ICV</td><TD width="3">=</td><td>HMAC<sub>sha256</sub>
+ (Key=T, Data=Ownerid | LEN | ALG | FLAGS | KEY')<sub>16</sub></td></tr>
+<tr><TD align="right">KEK</td><TD width="3">=</td><td>HASH<sub>sha256</sub>
+ (T | Ownerid)<sub>16</sub></td></tr>
+<tr><TD align="right">KEY<TD width="3">=</td><TD>TDES<sub>cbc-dec</sub>
+ (Key=KEK, Data=KEY', IV=Ownerid)</td></tr>
+</table>
+
+ * This code supports two types of keys: Software Keys and keys destined for
+ * (or residing in) the DryIce Programmed Key Register.
+ *
+ * Software Keys go to / from the keystore.
+ *
+ * PK keys go to / from the DryIce Programmed Key Register.
+ *
+ * This code only works on a platform with DryIce. "software" keys go into
+ * the keystore. "Program" keys go to the DryIce Programmed Key Register.
+ * As far as this code is concerned, the size of that register is 21 bytes,
+ * the size of a 3DES key with parity stripped.
+ *
+ * The maximum key size supported for wrapped/unwrapped keys depends upon
+ * LENGTH_LENGTH. Currently, it is one byte, so the maximum key size is
+ * 255 bytes. However, key objects cannot currently hold a key of this
+ * length, so a smaller key size is the max.
+ */
+
+#include "fsl_platform.h"
+
+/* This code only works in kernel mode */
+
+#include "shw_driver.h"
+#ifdef DIAG_SECURITY_FUNC
+#include "apihelp.h"
+#endif
+
+#if defined(__KERNEL__) && defined(FSL_HAVE_DRYICE)
+
+#include "../dryice.h"
+#include <linux/mxc_scc_driver.h>
+
+#include "portable_os.h"
+#include "fsl_shw_keystore.h"
+
+#include <diagnostic.h>
+
+#include "shw_hmac.h"
+#include "shw_hash.h"
+
+#define ICV_LENGTH 16
+#define T_LENGTH 16
+#define KEK_LENGTH 21
+#define LENGTH_LENGTH 1
+#define ALGORITHM_LENGTH 1
+#define FLAGS_LENGTH 1
+
+/* ICV | T' | LEN | ALG | FLAGS | KEY' */
+#define ICV_OFFSET 0
+#define T_PRIME_OFFSET (ICV_OFFSET + ICV_LENGTH)
+#define LENGTH_OFFSET (T_PRIME_OFFSET + T_LENGTH)
+#define ALGORITHM_OFFSET (LENGTH_OFFSET + LENGTH_LENGTH)
+#define FLAGS_OFFSET (ALGORITHM_OFFSET + ALGORITHM_LENGTH)
+#define KEY_PRIME_OFFSET (FLAGS_OFFSET + FLAGS_LENGTH)
+
+#define FLAGS_SW_KEY 0x01
+
+#define LENGTH_PATCH 8
+#define LENGTH_PATCH_MASK (LENGTH_PATCH - 1)
+
+/*! rounded up from 168 bits to the next word size */
+#define HW_KEY_LEN_WORDS_BITS 192
+
+/*!
+ * Round a key length up to the TDES block size
+ *
+ * @param len Length of key, in bytes
+ *
+ * @return Length rounded up, if necessary
+ */
+#define ROUND_LENGTH(len) \
+({ \
+ uint32_t orig_len = len; \
+ uint32_t new_len; \
+ \
+ if ((orig_len & LENGTH_PATCH_MASK) != 0) { \
+ new_len = (orig_len + LENGTH_PATCH \
+ - (orig_len & LENGTH_PATCH_MASK)); \
+ } \
+ else { \
+ new_len = orig_len; \
+ } \
+ \
+ new_len; \
+})
+
+/* This is the system keystore object */
+extern fsl_shw_kso_t system_keystore;
+
+#ifdef DIAG_SECURITY_FUNC
+static void dump(const char *name, const uint8_t * data, unsigned int len)
+{
+ os_printk("%s: ", name);
+ while (len > 0) {
+ os_printk("%02x ", (unsigned)*data++);
+ len--;
+ }
+ os_printk("\n");
+}
+#endif
+
+/*
+ * For testing of the algorithm implementation,, the DO_REPEATABLE_WRAP flag
+ * causes the T_block to go into the T field during a wrap operation. This
+ * will make the black key value repeatable (for a given SCC secret key, or
+ * always if the default key is in use).
+ *
+ * Normally, a random sequence is used.
+ */
+#ifdef DO_REPEATABLE_WRAP
+/*!
+ * Block of zeroes which is maximum Symmetric block size, used for
+ * initializing context register, etc.
+ */
+static uint8_t T_block[16] = {
+ 0x42, 0, 0, 0x42, 0x42, 0, 0, 0x42,
+ 0x42, 0, 0, 0x42, 0x42, 0, 0, 0x42
+};
+#endif
+
+EXPORT_SYMBOL(fsl_shw_establish_key);
+EXPORT_SYMBOL(fsl_shw_read_key);
+EXPORT_SYMBOL(fsl_shw_extract_key);
+EXPORT_SYMBOL(fsl_shw_release_key);
+
+extern fsl_shw_return_t alloc_slot(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info);
+
+extern fsl_shw_return_t load_slot(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info,
+ const uint8_t * key);
+
+extern fsl_shw_return_t dealloc_slot(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info);
+
+/*!
+ * Initalialize SKO and SCCO used for T <==> T' cipher operation
+ *
+ * @param wrap_key Which wrapping key user wants
+ * @param key_info Key object for selecting wrap key
+ * @param wrap_ctx Sym Context object for doing the cipher op
+ */
+static inline void init_wrap_key(fsl_shw_pf_key_t wrap_key,
+ fsl_shw_sko_t * key_info,
+ fsl_shw_scco_t * wrap_ctx)
+{
+ fsl_shw_sko_init_pf_key(key_info, FSL_KEY_ALG_TDES, wrap_key);
+ fsl_shw_scco_init(wrap_ctx, FSL_KEY_ALG_TDES, FSL_SYM_MODE_ECB);
+}
+
+/*!
+ * Insert descriptors to calculate ICV = HMAC(key=T, data=LEN|ALG|KEY')
+ *
+ * @param user_ctx A user context from #fsl_shw_register_user().
+ * @param T Location of nonce (length is T_LENGTH bytes)
+ * @param userid Location of userid/ownerid
+ * @param userid_len Length, in bytes of @c userid
+ * @param black_key Beginning of Black Key region
+ * @param key_length Number of bytes of key' there are in @c black_key
+ * @param[out] hmac Location to store ICV. Will be tagged "USES" so
+ * sf routines will not try to free it.
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+static fsl_shw_return_t calc_icv(const uint8_t * T,
+ const uint8_t * userid,
+ unsigned int userid_len,
+ const uint8_t * black_key,
+ uint32_t key_length, uint8_t * hmac)
+{
+ fsl_shw_return_t code;
+ shw_hmac_state_t hmac_state;
+
+ /* Load up T as key for the HMAC */
+ code = shw_hmac_init(&hmac_state, T, T_LENGTH);
+ if (code != FSL_RETURN_OK_S) {
+ goto out;
+ }
+
+ /* Previous step loaded key; Now set up to hash the data */
+
+ /* Input - start with ownerid */
+ code = shw_hmac_update(&hmac_state, userid, userid_len);
+ if (code != FSL_RETURN_OK_S) {
+ goto out;
+ }
+
+ /* Still input - Append black-key fields len, alg, key' */
+ code = shw_hmac_update(&hmac_state,
+ (void *)black_key + LENGTH_OFFSET,
+ (LENGTH_LENGTH
+ + ALGORITHM_LENGTH
+ + FLAGS_LENGTH + key_length));
+ if (code != FSL_RETURN_OK_S) {
+ goto out;
+ }
+
+ /* Output - computed ICV/HMAC */
+ code = shw_hmac_final(&hmac_state, hmac, ICV_LENGTH);
+ if (code != FSL_RETURN_OK_S) {
+ goto out;
+ }
+
+ out:
+
+ return code;
+} /* calc_icv */
+
+/*!
+ * Compute and return the KEK (Key Encryption Key) from the inputs
+ *
+ * @param userid The user's 'secret' for the key
+ * @param userid_len Length, in bytes of @c userid
+ * @param T The nonce
+ * @param[out] kek Location to store the computed KEK. It will
+ * be 21 bytes long.
+ *
+ * @return the usual error code
+ */
+static fsl_shw_return_t calc_kek(const uint8_t * userid,
+ unsigned int userid_len,
+ const uint8_t * T, uint8_t * kek)
+{
+ fsl_shw_return_t code = FSL_RETURN_INTERNAL_ERROR_S;
+ shw_hash_state_t hash_state;
+
+ code = shw_hash_init(&hash_state, FSL_HASH_ALG_SHA256);
+ if (code != FSL_RETURN_OK_S) {
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG_ARGS("Hash init failed: %s\n", fsl_error_string(code));
+#endif
+ goto out;
+ }
+
+ code = shw_hash_update(&hash_state, T, T_LENGTH);
+ if (code != FSL_RETURN_OK_S) {
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG_ARGS("Hash for T failed: %s\n",
+ fsl_error_string(code));
+#endif
+ goto out;
+ }
+
+ code = shw_hash_update(&hash_state, userid, userid_len);
+ if (code != FSL_RETURN_OK_S) {
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG_ARGS("Hash for userid failed: %s\n",
+ fsl_error_string(code));
+#endif
+ goto out;
+ }
+
+ code = shw_hash_final(&hash_state, kek, KEK_LENGTH);
+ if (code != FSL_RETURN_OK_S) {
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG_ARGS("Could not extract kek: %s\n",
+ fsl_error_string(code));
+#endif
+ goto out;
+ }
+
+#if KEK_LENGTH != 21
+ {
+ uint8_t permuted_kek[21];
+
+ fsl_shw_permute1_bytes(kek, permuted_kek, KEK_LENGTH / 8);
+ memcpy(kek, permuted_kek, 21);
+ memset(permuted_kek, 0, sizeof(permuted_kek));
+ }
+#endif
+
+#ifdef DIAG_SECURITY_FUNC
+ dump("kek", kek, 21);
+#endif
+
+ out:
+
+ return code;
+} /* end fn calc_kek */
+
+/*!
+ * Validate user's wrap key selection
+ *
+ * @param wrap_key The user's desired wrapping key
+ */
+static fsl_shw_return_t check_wrap_key(fsl_shw_pf_key_t wrap_key)
+{
+ /* unable to use desired key */
+ fsl_shw_return_t ret = FSL_RETURN_NO_RESOURCE_S;
+
+ if ((wrap_key != FSL_SHW_PF_KEY_IIM) &&
+ (wrap_key != FSL_SHW_PF_KEY_RND) &&
+ (wrap_key != FSL_SHW_PF_KEY_IIM_RND)) {
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG("Invalid wrap_key in key wrap/unwrap attempt");
+#endif
+ goto out;
+ }
+ ret = FSL_RETURN_OK_S;
+
+ out:
+ return ret;
+} /* end fn check_wrap_key */
+
+/*!
+ * Perform unwrapping of a black key into a RED slot
+ *
+ * @param user_ctx A user context from #fsl_shw_register_user().
+ * @param[in,out] key_info The information about the key to be which will
+ * be unwrapped... key length, slot info, etc.
+ * @param black_key Encrypted key
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+static fsl_shw_return_t unwrap(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info,
+ const uint8_t * black_key)
+{
+ fsl_shw_return_t ret;
+ uint8_t hmac[ICV_LENGTH];
+ uint8_t T[T_LENGTH];
+ uint8_t kek[KEK_LENGTH + 20];
+ int key_length = black_key[LENGTH_OFFSET];
+ int rounded_key_length = ROUND_LENGTH(key_length);
+ uint8_t key[rounded_key_length];
+ fsl_shw_sko_t t_key_info;
+ fsl_shw_scco_t t_key_ctx;
+ fsl_shw_sko_t kek_key_info;
+ fsl_shw_scco_t kek_ctx;
+ int unwrapping_sw_key = key_info->flags & FSL_SKO_KEY_SW_KEY;
+ int pk_needs_restoration = 0; /* bool */
+ unsigned original_key_length = key_info->key_length;
+ int pk_was_held = 0;
+ uint8_t current_pk[21];
+ di_return_t di_code;
+
+ ret = check_wrap_key(user_ctx->wrap_key);
+ if (ret != FSL_RETURN_OK_S) {
+ goto out;
+ }
+
+ if (black_key == NULL) {
+ ret = FSL_RETURN_ERROR_S;
+ goto out;
+ }
+#ifdef DIAG_SECURITY_FUNC
+ dump("black", black_key, KEY_PRIME_OFFSET + key_length);
+#endif
+ /* Validate SW flags to prevent misuse */
+ if ((key_info->flags & FSL_SKO_KEY_SW_KEY)
+ && !(black_key[FLAGS_OFFSET] & FLAGS_SW_KEY)) {
+ ret = FSL_RETURN_BAD_FLAG_S;
+ goto out;
+ }
+
+ /* Compute T = 3des-dec-ecb(wrap_key, T') */
+ init_wrap_key(user_ctx->wrap_key, &t_key_info, &t_key_ctx);
+ ret = fsl_shw_symmetric_decrypt(user_ctx, &t_key_info, &t_key_ctx,
+ T_LENGTH,
+ black_key + T_PRIME_OFFSET, T);
+ if (ret != FSL_RETURN_OK_S) {
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG("Recovery of nonce (T) failed");
+#endif /*DIAG_SECURITY_FUNC */
+ goto out;
+ }
+
+ /* Compute ICV = HMAC(T, ownerid | len | alg | flags | key' */
+ ret = calc_icv(T, (uint8_t *) & key_info->userid,
+ sizeof(key_info->userid),
+ black_key, original_key_length, hmac);
+
+ if (ret != FSL_RETURN_OK_S) {
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG("Calculation of ICV failed");
+#endif /*DIAG_SECURITY_FUNC */
+ goto out;
+ }
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG("Validating MAC of wrapped key");
+#endif
+
+ /* Check computed ICV against value in Black Key */
+ if (memcmp(black_key + ICV_OFFSET, hmac, ICV_LENGTH) != 0) {
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG("Computed ICV fails validation\n");
+#endif
+ ret = FSL_RETURN_AUTH_FAILED_S;
+ goto out;
+ }
+
+ /* Compute KEK = SHA256(T | ownerid). */
+ ret = calc_kek((uint8_t *) & key_info->userid, sizeof(key_info->userid),
+ T, kek);
+ if (ret != FSL_RETURN_OK_S) {
+ goto out;
+ }
+
+ if (unwrapping_sw_key) {
+ di_code = dryice_get_programmed_key(current_pk, 8 * 21);
+ if (di_code != DI_SUCCESS) {
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG_ARGS("Could not save current PK: %s\n",
+ di_error_string(di_code));
+#endif
+ ret = FSL_RETURN_ERROR_S;
+ goto out;
+ }
+ }
+
+ /*
+ * "Establish" the KEK in the PK. If the PK was held and unwrapping a
+ * software key, then release it and try again, but remember that we need
+ * to leave it 'held' if we are unwrapping a software key.
+ *
+ * If the PK is held while we are unwrapping a key for the PK, then
+ * the user didn't call release, so gets an error.
+ */
+ di_code = dryice_set_programmed_key(kek, 8 * 21, 0);
+ if ((di_code == DI_ERR_INUSE) && unwrapping_sw_key) {
+ /* Temporarily reprogram the PK out from under the user */
+ pk_was_held = 1;
+ dryice_release_programmed_key();
+ di_code = dryice_set_programmed_key(kek, 8 * 21, 0);
+ }
+ if (di_code != DI_SUCCESS) {
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG_ARGS("Could not program KEK: %s\n",
+ di_error_string(di_code));
+#endif
+ ret = FSL_RETURN_ERROR_S;
+ goto out;
+ }
+
+ if (unwrapping_sw_key) {
+ pk_needs_restoration = 1;
+ }
+ dryice_release_programmed_key(); /* Because of previous 'set' */
+
+ /* Compute KEY = TDES-decrypt(KEK, KEY') */
+ fsl_shw_sko_init_pf_key(&kek_key_info, FSL_KEY_ALG_TDES,
+ FSL_SHW_PF_KEY_PRG);
+ fsl_shw_sko_set_key_length(&kek_key_info, KEK_LENGTH);
+
+ fsl_shw_scco_init(&kek_ctx, FSL_KEY_ALG_TDES, FSL_SYM_MODE_CBC);
+ fsl_shw_scco_set_flags(&kek_ctx, FSL_SYM_CTX_LOAD);
+ fsl_shw_scco_set_context(&kek_ctx, (uint8_t *) & key_info->userid);
+#ifdef DIAG_SECURITY_FUNC
+ dump("KEY'", black_key + KEY_PRIME_OFFSET, rounded_key_length);
+#endif
+ ret = fsl_shw_symmetric_decrypt(user_ctx, &kek_key_info, &kek_ctx,
+ rounded_key_length,
+ black_key + KEY_PRIME_OFFSET, key);
+ if (ret != FSL_RETURN_OK_S) {
+ goto out;
+ }
+#ifdef DIAG_SECURITY_FUNC
+ dump("KEY", key, original_key_length);
+#endif
+ /* Now either put key into PK or into a slot */
+ if (key_info->flags & FSL_SKO_KEY_SW_KEY) {
+ ret = load_slot(user_ctx, key_info, key);
+ } else {
+ /*
+ * Since we have just unwrapped a program key, it had
+ * to have been wrapped as a program key, so it must
+ * be 168 bytes long and permuted ...
+ */
+ ret = dryice_set_programmed_key(key, 8 * key_length, 0);
+ if (ret != FSL_RETURN_OK_S) {
+ goto out;
+ }
+ }
+
+ out:
+ key_info->key_length = original_key_length;
+
+ if (pk_needs_restoration) {
+ di_code = dryice_set_programmed_key(current_pk, 8 * 21, 0);
+ }
+
+ if (!pk_was_held) {
+ dryice_release_programmed_key();
+ }
+
+ /* Erase tracks of confidential data */
+ memset(T, 0, T_LENGTH);
+ memset(key, 0, rounded_key_length);
+ memset(current_pk, 0, sizeof(current_pk));
+ memset(&t_key_info, 0, sizeof(t_key_info));
+ memset(&t_key_ctx, 0, sizeof(t_key_ctx));
+ memset(&kek_key_info, 0, sizeof(kek_key_info));
+ memset(&kek_ctx, 0, sizeof(kek_ctx));
+ memset(kek, 0, KEK_LENGTH);
+
+ return ret;
+} /* unwrap */
+
+/*!
+ * Perform wrapping of a black key from a RED slot (or the PK register)
+ *
+ * @param user_ctx A user context from #fsl_shw_register_user().
+ * @param[in,out] key_info The information about the key to be which will
+ * be wrapped... key length, slot info, etc.
+ * @param black_key Place to store encrypted key
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+static fsl_shw_return_t wrap(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info, uint8_t * black_key)
+{
+ fsl_shw_return_t ret = FSL_RETURN_OK_S;
+ fsl_shw_sko_t t_key_info; /* for holding T */
+ fsl_shw_scco_t t_key_ctx;
+ fsl_shw_sko_t kek_key_info;
+ fsl_shw_scco_t kek_ctx;
+ unsigned original_key_length = key_info->key_length;
+ unsigned rounded_key_length;
+ uint8_t T[T_LENGTH];
+ uint8_t kek[KEK_LENGTH + 20];
+ uint8_t *red_key = 0;
+ int red_key_malloced = 0; /* bool */
+ int pk_was_held = 0; /* bool */
+ uint8_t saved_pk[21];
+ uint8_t pk_needs_restoration; /* bool */
+ di_return_t di_code;
+
+ ret = check_wrap_key(user_ctx->wrap_key);
+ if (ret != FSL_RETURN_OK_S) {
+ goto out;
+ }
+
+ if (black_key == NULL) {
+ ret = FSL_RETURN_ERROR_S;
+ goto out;
+ }
+
+ if (key_info->flags & FSL_SKO_KEY_SELECT_PF_KEY) {
+ if ((key_info->pf_key != FSL_SHW_PF_KEY_PRG)
+ && (key_info->pf_key != FSL_SHW_PF_KEY_IIM_PRG)) {
+ ret = FSL_RETURN_ERROR_S;
+ goto out;
+ }
+ } else {
+ if (!(key_info->flags & FSL_SKO_KEY_ESTABLISHED)) {
+ ret = FSL_RETURN_BAD_FLAG_S; /* not established! */
+ goto out;
+ }
+ }
+
+ black_key[ALGORITHM_OFFSET] = key_info->algorithm;
+
+#ifndef DO_REPEATABLE_WRAP
+ /* Compute T = RND() */
+ ret = fsl_shw_get_random(user_ctx, T_LENGTH, T);
+ if (ret != FSL_RETURN_OK_S) {
+ goto out;
+ }
+#else
+ memcpy(T, T_block, T_LENGTH);
+#endif
+
+ /* Compute KEK = SHA256(T | ownerid). */
+ ret = calc_kek((uint8_t *) & key_info->userid, sizeof(key_info->userid),
+ T, kek);
+ if (ret != FSL_RETURN_OK_S) {
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG("Calculation of KEK failed\n");
+#endif /*DIAG_SECURITY_FUNC */
+ goto out;
+ }
+
+ rounded_key_length = ROUND_LENGTH(original_key_length);
+
+ di_code = dryice_get_programmed_key(saved_pk, 8 * 21);
+ if (di_code != DI_SUCCESS) {
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG_ARGS("Could not save current PK: %s\n",
+ di_error_string(di_code));
+#endif
+ ret = FSL_RETURN_ERROR_S;
+ goto out;
+ }
+
+ /*
+ * Load KEK into DI PKR. Note that we are NOT permuting it before loading,
+ * so we are using it as though it is a 168-bit key ready for the SCC.
+ */
+ di_code = dryice_set_programmed_key(kek, 8 * 21, 0);
+ if (di_code == DI_ERR_INUSE) {
+ /* Temporarily reprogram the PK out from under the user */
+ pk_was_held = 1;
+ dryice_release_programmed_key();
+ di_code = dryice_set_programmed_key(kek, 8 * 21, 0);
+ }
+ if (di_code != DI_SUCCESS) {
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG_ARGS("Could not program KEK: %s\n",
+ di_error_string(di_code));
+#endif
+ ret = FSL_RETURN_ERROR_S;
+ goto out;
+ }
+ pk_needs_restoration = 1;
+ dryice_release_programmed_key();
+
+ /* Find red key */
+ if (key_info->flags & FSL_SKO_KEY_SELECT_PF_KEY) {
+ black_key[LENGTH_OFFSET] = 21;
+ rounded_key_length = 24;
+
+ red_key = saved_pk;
+ } else {
+ black_key[LENGTH_OFFSET] = key_info->key_length;
+
+ red_key = os_alloc_memory(key_info->key_length, 0);
+ if (red_key == NULL) {
+ ret = FSL_RETURN_NO_RESOURCE_S;
+ goto out;
+ }
+ red_key_malloced = 1;
+
+ ret = fsl_shw_read_key(user_ctx, key_info, red_key);
+ if (ret != FSL_RETURN_OK_S) {
+ goto out;
+ }
+ }
+
+#ifdef DIAG_SECURITY_FUNC
+ dump("KEY", red_key, black_key[LENGTH_OFFSET]);
+#endif
+ /* Compute KEY' = TDES-encrypt(KEK, KEY) */
+ fsl_shw_sko_init_pf_key(&kek_key_info, FSL_KEY_ALG_TDES,
+ FSL_SHW_PF_KEY_PRG);
+ fsl_shw_sko_set_key_length(&kek_key_info, KEK_LENGTH);
+
+ fsl_shw_scco_init(&kek_ctx, FSL_KEY_ALG_TDES, FSL_SYM_MODE_CBC);
+ fsl_shw_scco_set_flags(&kek_ctx, FSL_SYM_CTX_LOAD);
+ fsl_shw_scco_set_context(&kek_ctx, (uint8_t *) & key_info->userid);
+ ret = fsl_shw_symmetric_encrypt(user_ctx, &kek_key_info, &kek_ctx,
+ rounded_key_length,
+ red_key, black_key + KEY_PRIME_OFFSET);
+ if (ret != FSL_RETURN_OK_S) {
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG("Encryption of KEY failed\n");
+#endif /*DIAG_SECURITY_FUNC */
+ goto out;
+ }
+
+ /* Set up flags info */
+ black_key[FLAGS_OFFSET] = 0;
+ if (key_info->flags & FSL_SKO_KEY_SW_KEY) {
+ black_key[FLAGS_OFFSET] |= FLAGS_SW_KEY;
+ }
+#ifdef DIAG_SECURITY_FUNC
+ dump("KEY'", black_key + KEY_PRIME_OFFSET, rounded_key_length);
+#endif
+ /* Compute and store ICV into Black Key */
+ ret = calc_icv(T,
+ (uint8_t *) & key_info->userid,
+ sizeof(key_info->userid),
+ black_key, original_key_length, black_key + ICV_OFFSET);
+ if (ret != FSL_RETURN_OK_S) {
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG("Calculation of ICV failed\n");
+#endif /*DIAG_SECURITY_FUNC */
+ goto out;
+ }
+
+ /* Compute T' = 3des-enc-ecb(wrap_key, T); Result goes to Black Key */
+ init_wrap_key(user_ctx->wrap_key, &t_key_info, &t_key_ctx);
+ ret = fsl_shw_symmetric_encrypt(user_ctx, &t_key_info, &t_key_ctx,
+ T_LENGTH,
+ T, black_key + T_PRIME_OFFSET);
+ if (ret != FSL_RETURN_OK_S) {
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG("Encryption of nonce failed");
+#endif
+ goto out;
+ }
+#ifdef DIAG_SECURITY_FUNC
+ dump("black", black_key, KEY_PRIME_OFFSET + black_key[LENGTH_OFFSET]);
+#endif
+
+ out:
+ if (pk_needs_restoration) {
+ dryice_set_programmed_key(saved_pk, 8 * 21, 0);
+ }
+
+ if (!pk_was_held) {
+ dryice_release_programmed_key();
+ }
+
+ if (red_key_malloced) {
+ memset(red_key, 0, key_info->key_length);
+ os_free_memory(red_key);
+ }
+
+ key_info->key_length = original_key_length;
+
+ /* Erase tracks of confidential data */
+ memset(T, 0, T_LENGTH);
+ memset(&t_key_info, 0, sizeof(t_key_info));
+ memset(&t_key_ctx, 0, sizeof(t_key_ctx));
+ memset(&kek_key_info, 0, sizeof(kek_key_info));
+ memset(&kek_ctx, 0, sizeof(kek_ctx));
+ memset(kek, 0, sizeof(kek));
+ memset(saved_pk, 0, sizeof(saved_pk));
+
+ return ret;
+} /* wrap */
+
+static fsl_shw_return_t create(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info)
+{
+ fsl_shw_return_t ret = FSL_RETURN_ERROR_S;
+ unsigned key_length = key_info->key_length;
+ di_return_t di_code;
+
+ if (!(key_info->flags & FSL_SKO_KEY_SW_KEY)) {
+ /* Must be creating key for PK */
+ if ((key_info->algorithm != FSL_KEY_ALG_TDES) ||
+ ((key_info->key_length != 16)
+ && (key_info->key_length != 21) /* permuted 168-bit key */
+ &&(key_info->key_length != 24))) {
+ ret = FSL_RETURN_ERROR_S;
+ goto out;
+ }
+
+ key_length = 21; /* 168-bit PK */
+ }
+
+ /* operational block */
+ {
+ uint8_t key_value[key_length];
+
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG("Creating random key\n");
+#endif
+ ret = fsl_shw_get_random(user_ctx, key_length, key_value);
+ if (ret != FSL_RETURN_OK_S) {
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG("get_random for CREATE KEY failed\n");
+#endif
+ goto out;
+ }
+
+ if (key_info->flags & FSL_SKO_KEY_SW_KEY) {
+ ret = load_slot(user_ctx, key_info, key_value);
+ } else {
+ di_code =
+ dryice_set_programmed_key(key_value, 8 * key_length,
+ 0);
+ if (di_code != 0) {
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG_ARGS("di set_pk failed: %s\n",
+ di_error_string(di_code));
+#endif
+ ret = FSL_RETURN_ERROR_S;
+ goto out;
+ }
+ ret = FSL_RETURN_OK_S;
+ }
+ memset(key_value, 0, key_length);
+ } /* end operational block */
+
+#ifdef DIAG_SECURITY_FUNC
+ if (ret != FSL_RETURN_OK_S) {
+ LOG_DIAG("Loading random key failed");
+ }
+#endif
+
+ out:
+
+ return ret;
+} /* end fn create */
+
+static fsl_shw_return_t accept(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info, const uint8_t * key)
+{
+ uint8_t permuted_key[21];
+ fsl_shw_return_t ret = FSL_RETURN_ERROR_S;
+
+ if (key == NULL) {
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG("ACCEPT: Red Key is NULL");
+#endif
+ ret = FSL_RETURN_ERROR_S;
+ goto out;
+ }
+#ifdef DIAG_SECURITY_FUNC
+ dump("red", key, key_info->key_length);
+#endif
+ /* Only SW keys go into the keystore */
+ if (key_info->flags & FSL_SKO_KEY_SW_KEY) {
+
+ /* Copy in safe number of bytes of Red key */
+ ret = load_slot(user_ctx, key_info, key);
+ } else { /* not SW key */
+ di_return_t di_ret;
+
+ /* Only 3DES PGM key types can be established */
+ if (((key_info->pf_key != FSL_SHW_PF_KEY_PRG)
+ && (key_info->pf_key != FSL_SHW_PF_KEY_IIM_PRG))
+ || (key_info->algorithm != FSL_KEY_ALG_TDES)) {
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG_ARGS
+ ("ACCEPT: Failed trying to establish non-PRG"
+ " or invalid 3DES Key: iim%d, iim_prg%d, alg%d\n",
+ (key_info->pf_key != FSL_SHW_PF_KEY_PRG),
+ (key_info->pf_key != FSL_SHW_PF_KEY_IIM_PRG),
+ (key_info->algorithm != FSL_KEY_ALG_TDES));
+#endif
+ ret = FSL_RETURN_ERROR_S;
+ goto out;
+ }
+ if ((key_info->key_length != 16)
+ && (key_info->key_length != 21)
+ && (key_info->key_length != 24)) {
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG_ARGS("ACCEPT: Failed trying to establish"
+ " invalid 3DES Key: len=%d (%d)\n",
+ key_info->key_length,
+ ((key_info->key_length != 16)
+ && (key_info->key_length != 21)
+ && (key_info->key_length != 24)));
+#endif
+ ret = FSL_RETURN_BAD_KEY_LENGTH_S;
+ goto out;
+ }
+
+ /* Convert key into 168-bit value and put it into PK */
+ if (key_info->key_length != 21) {
+ fsl_shw_permute1_bytes(key, permuted_key,
+ key_info->key_length / 8);
+ di_ret =
+ dryice_set_programmed_key(permuted_key, 168, 0);
+ } else {
+ /* Already permuted ! */
+ di_ret = dryice_set_programmed_key(key, 168, 0);
+ }
+ if (di_ret != DI_SUCCESS) {
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG_ARGS
+ ("ACCEPT: DryIce error setting Program Key: %s",
+ di_error_string(di_ret));
+#endif
+ ret = FSL_RETURN_ERROR_S;
+ goto out;
+ }
+ }
+
+ ret = FSL_RETURN_OK_S;
+
+ out:
+ memset(permuted_key, 0, 21);
+
+ return ret;
+} /* end fn accept */
+
+/*!
+ * Place a key into a protected location for use only by cryptographic
+ * algorithms.
+ *
+ * This only needs to be used to a) unwrap a key, or b) set up a key which
+ * could be wrapped by calling #fsl_shw_extract_key() at some later time).
+ *
+ * The protected key will not be available for use until this operation
+ * successfully completes.
+ *
+ * @bug This whole discussion needs review.
+ *
+ * This feature is not available for all platforms, nor for all algorithms and
+ * modes.
+ *
+ * @param user_ctx A user context from #fsl_shw_register_user().
+ * @param[in,out] key_info The information about the key to be which will
+ * be established. In the create case, the key
+ * length must be set.
+ * @param establish_type How @a key will be interpreted to establish a
+ * key for use.
+ * @param key If @a establish_type is #FSL_KEY_WRAP_UNWRAP,
+ * this is the location of a wrapped key. If
+ * @a establish_type is #FSL_KEY_WRAP_CREATE, this
+ * parameter can be @a NULL. If @a establish_type
+ * is #FSL_KEY_WRAP_ACCEPT, this is the location
+ * of a plaintext key.
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+fsl_shw_return_t fsl_shw_establish_key(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info,
+ fsl_shw_key_wrap_t establish_type,
+ const uint8_t * key)
+{
+ fsl_shw_return_t ret = FSL_RETURN_ERROR_S;
+ unsigned original_key_length = key_info->key_length;
+ unsigned rounded_key_length;
+ unsigned slot_allocated = 0;
+
+ /* For now, only blocking mode calls are supported */
+ if (!(user_ctx->flags & FSL_UCO_BLOCKING_MODE)) {
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG_ARGS("%s: Non-blocking call not supported\n",
+ __FUNCTION__);
+#endif
+ ret = FSL_RETURN_BAD_FLAG_S;
+ goto out;
+ }
+
+ /*
+ HW keys are always 'established', but otherwise do not allow user
+ * to establish over the top of an established key.
+ */
+ if ((key_info->flags & FSL_SKO_KEY_ESTABLISHED)
+ && !(key_info->flags & FSL_SKO_KEY_SELECT_PF_KEY)) {
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG_ARGS("%s: Key already established\n", __FUNCTION__);
+#endif
+ ret = FSL_RETURN_BAD_FLAG_S;
+ goto out;
+ }
+
+ /* @bug VALIDATE KEY flags here -- SW or PRG/IIM_PRG */
+
+ /* Write operations into SCC memory require word-multiple number of
+ * bytes. For ACCEPT and CREATE functions, the key length may need
+ * to be rounded up. Calculate. */
+ if (LENGTH_PATCH && (original_key_length & LENGTH_PATCH_MASK) != 0) {
+ rounded_key_length = original_key_length + LENGTH_PATCH
+ - (original_key_length & LENGTH_PATCH_MASK);
+ } else {
+ rounded_key_length = original_key_length;
+ }
+
+ /* SW keys need a place to live */
+ if (key_info->flags & FSL_SKO_KEY_SW_KEY) {
+ ret = alloc_slot(user_ctx, key_info);
+ if (ret != FSL_RETURN_OK_S) {
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG("Slot allocation failed\n");
+#endif
+ goto out;
+ }
+ slot_allocated = 1;
+ }
+
+ switch (establish_type) {
+ case FSL_KEY_WRAP_CREATE:
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG("Creating random key\n");
+#endif
+ ret = create(user_ctx, key_info);
+ break;
+
+ case FSL_KEY_WRAP_ACCEPT:
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG("Accepting plaintext key\n");
+#endif
+ ret = accept(user_ctx, key_info, key);
+ break;
+
+ case FSL_KEY_WRAP_UNWRAP:
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG("Unwrapping wrapped key\n");
+#endif
+ ret = unwrap(user_ctx, key_info, key);
+ break;
+
+ default:
+ ret = FSL_RETURN_BAD_FLAG_S;
+ break;
+ } /* switch */
+
+ out:
+ if (ret != FSL_RETURN_OK_S) {
+ if (slot_allocated) {
+ (void)dealloc_slot(user_ctx, key_info);
+ }
+ key_info->flags &= ~FSL_SKO_KEY_ESTABLISHED;
+ } else {
+ key_info->flags |= FSL_SKO_KEY_ESTABLISHED;
+ }
+
+ return ret;
+} /* end fn fsl_shw_establish_key */
+
+/*!
+ * Wrap a key and retrieve the wrapped value.
+ *
+ * A wrapped key is a key that has been cryptographically obscured. It is
+ * only able to be used with #fsl_shw_establish_key().
+ *
+ * This function will also release a software key (see #fsl_shw_release_key())
+ * so it must be re-established before reuse. This is not true of PGM keys.
+ *
+ * This feature is not available for all platforms, nor for all algorithms and
+ * modes.
+ *
+ * @param user_ctx A user context from #fsl_shw_register_user().
+ * @param key_info The information about the key to be deleted.
+ * @param[out] covered_key The location to store the 48-octet wrapped key.
+ * (This size is based upon the maximum key size
+ * of 32 octets).
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+fsl_shw_return_t fsl_shw_extract_key(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info,
+ uint8_t * covered_key)
+{
+ fsl_shw_return_t ret = FSL_RETURN_ERROR_S;
+
+ /* For now, only blocking mode calls are supported */
+ if (!(user_ctx->flags & FSL_UCO_BLOCKING_MODE)) {
+ ret = FSL_RETURN_BAD_FLAG_S;
+ goto out;
+ }
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG("Wrapping a key\n");
+#endif
+
+ if (!(key_info->flags & FSL_SKO_KEY_ESTABLISHED)) {
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG_ARGS("%s: Key not established\n", __FUNCTION__);
+#endif
+ ret = FSL_RETURN_BAD_FLAG_S;
+ goto out;
+ }
+ /* Verify that a SW key info really belongs to a SW key */
+ if (key_info->flags & FSL_SKO_KEY_SW_KEY) {
+ /* ret = FSL_RETURN_BAD_FLAG_S;
+ goto out;*/
+ }
+
+ ret = wrap(user_ctx, key_info, covered_key);
+ if (ret != FSL_RETURN_OK_S) {
+ goto out;
+ }
+
+ if (key_info->flags & FSL_SKO_KEY_SW_KEY) {
+ /* Need to deallocate on successful extraction */
+ (void)dealloc_slot(user_ctx, key_info);
+ /* Mark key not available in the flags */
+ key_info->flags &=
+ ~(FSL_SKO_KEY_ESTABLISHED | FSL_SKO_KEY_PRESENT);
+ memset(key_info->key, 0, sizeof(key_info->key));
+ }
+
+ out:
+ return ret;
+} /* end fn fsl_shw_extract_key */
+
+/*!
+ * De-establish a key so that it can no longer be accessed.
+ *
+ * The key will need to be re-established before it can again be used.
+ *
+ * This feature is not available for all platforms, nor for all algorithms and
+ * modes.
+ *
+ * @param user_ctx A user context from #fsl_shw_register_user().
+ * @param key_info The information about the key to be deleted.
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+fsl_shw_return_t fsl_shw_release_key(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info)
+{
+ fsl_shw_return_t ret = FSL_RETURN_ERROR_S;
+
+ /* For now, only blocking mode calls are supported */
+ if (!(user_ctx->flags & FSL_UCO_BLOCKING_MODE)) {
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG("Not in blocking mode\n");
+#endif
+ ret = FSL_RETURN_BAD_FLAG_S;
+ goto out;
+ }
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG("Releasing a key\n");
+#endif
+
+ if (!(key_info->flags & FSL_SKO_KEY_ESTABLISHED)) {
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG("Key not established\n");
+#endif
+ ret = FSL_RETURN_BAD_FLAG_S;
+ goto out;
+ }
+
+ if (key_info->flags & FSL_SKO_KEY_SW_KEY) {
+ (void)dealloc_slot(user_ctx, key_info);
+ /* Turn off 'established' flag */
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG("dealloc_slot() called\n");
+#endif
+ key_info->flags &= ~FSL_SKO_KEY_ESTABLISHED;
+ ret = FSL_RETURN_OK_S;
+ goto out;
+ }
+
+ if ((key_info->pf_key == FSL_SHW_PF_KEY_PRG)
+ || (key_info->pf_key == FSL_SHW_PF_KEY_IIM_PRG)) {
+ di_return_t di_ret;
+
+ di_ret = dryice_release_programmed_key();
+ if (di_ret != DI_SUCCESS) {
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG_ARGS
+ ("dryice_release_programmed_key() failed: %d\n",
+ di_ret);
+#endif
+ ret = FSL_RETURN_ERROR_S;
+ goto out;
+ }
+ } else {
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG("Neither SW nor HW key\n");
+#endif
+ ret = FSL_RETURN_BAD_FLAG_S;
+ goto out;
+ }
+
+ ret = FSL_RETURN_OK_S;
+
+ out:
+ return ret;
+} /* end fn fsl_shw_release_key */
+
+fsl_shw_return_t fsl_shw_read_key(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info, uint8_t * key)
+{
+ fsl_shw_return_t ret = FSL_RETURN_INTERNAL_ERROR_S;
+
+ /* Only blocking mode calls are supported */
+ if (!(user_ctx->flags & FSL_UCO_BLOCKING_MODE)) {
+ ret = FSL_RETURN_BAD_FLAG_S;
+ goto out;
+ }
+ printk("Reading a key\n");
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG("Reading a key");
+#endif
+ if (key_info->flags & FSL_SKO_KEY_PRESENT) {
+ memcpy(key_info->key, key, key_info->key_length);
+ ret = FSL_RETURN_OK_S;
+ } else if (key_info->flags & FSL_SKO_KEY_ESTABLISHED) {
+ printk("key established\n");
+ if (key_info->keystore == NULL) {
+ printk("keystore is null\n");
+ /* First verify that the key access is valid */
+ ret =
+ system_keystore.slot_verify_access(system_keystore.
+ user_data,
+ key_info->userid,
+ key_info->
+ handle);
+
+ printk("key in system keystore\n");
+
+ /* Key is in system keystore */
+ ret = keystore_slot_read(&system_keystore,
+ key_info->userid,
+ key_info->handle,
+ key_info->key_length, key);
+ } else {
+ printk("key goes in user keystore.\n");
+ /* Key goes in user keystore */
+ ret = keystore_slot_read(key_info->keystore,
+ key_info->userid,
+ key_info->handle,
+ key_info->key_length, key);
+ }
+ }
+
+ out:
+ return ret;
+} /* end fn fsl_shw_read_key */
+
+#else /* __KERNEL__ && DRYICE */
+
+/* User mode -- these functions are unsupported */
+
+fsl_shw_return_t fsl_shw_establish_key(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info,
+ fsl_shw_key_wrap_t establish_type,
+ const uint8_t * key)
+{
+ (void)user_ctx;
+ (void)key_info;
+ (void)establish_type;
+ (void)key;
+
+ return FSL_RETURN_NO_RESOURCE_S;
+}
+
+fsl_shw_return_t fsl_shw_extract_key(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info,
+ uint8_t * covered_key)
+{
+ (void)user_ctx;
+ (void)key_info;
+ (void)covered_key;
+
+ return FSL_RETURN_NO_RESOURCE_S;
+}
+
+fsl_shw_return_t fsl_shw_release_key(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info)
+{
+ (void)user_ctx;
+ (void)key_info;
+
+ return FSL_RETURN_NO_RESOURCE_S;
+}
+
+fsl_shw_return_t fsl_shw_read_key(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info, uint8_t * key)
+{
+ (void)user_ctx;
+ (void)key_info;
+ (void)key;
+
+ return FSL_RETURN_NO_RESOURCE_S;
+}
+
+#endif /* __KERNEL__ && DRYICE */
diff --git a/drivers/mxc/security/rng/include/rng_driver.h b/drivers/mxc/security/rng/include/rng_driver.h
new file mode 100644
index 000000000000..e760a14f2ded
--- /dev/null
+++ b/drivers/mxc/security/rng/include/rng_driver.h
@@ -0,0 +1,134 @@
+/*
+ * Copyright (C) 2005-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU Lesser General
+ * Public License. You may obtain a copy of the GNU Lesser General
+ * Public License Version 2.1 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/lgpl-license.html
+ * http://www.gnu.org/copyleft/lgpl.html
+ */
+
+#ifndef RNG_DRIVER_H
+#define RNG_DRIVER_H
+
+#include "shw_driver.h"
+
+/* This is a Linux flag meaning 'compiling kernel code'... */
+#ifndef __KERNEL__
+#include <inttypes.h>
+#include <stdlib.h>
+#include <memory.h>
+#else
+#include "../../sahara2/include/portable_os.h"
+#endif
+
+#include "../../sahara2/include/fsl_platform.h"
+
+/*! @file rng_driver.h
+ *
+ * @brief Header file to use the RNG driver.
+ *
+ * @ingroup RNG
+ */
+
+#if defined(FSL_HAVE_RNGA)
+
+#include "rng_rnga.h"
+
+#elif defined(FSL_HAVE_RNGB) || defined(FSL_HAVE_RNGC)
+
+#include "rng_rngc.h"
+
+#else /* neither RNGA, RNGB, nor RNGC */
+
+#error NO_RNG_TYPE_IDENTIFIED
+
+#endif
+
+/*****************************************************************************
+ * Enumerations
+ *****************************************************************************/
+
+/*! Values from Version ID register */
+enum rng_type {
+ /*! Type RNGA. */
+ RNG_TYPE_RNGA = 0,
+ /*! Type RNGB. */
+ RNG_TYPE_RNGB = 1,
+ /*! Type RNGC */
+ RNG_TYPE_RNGC = 2
+};
+
+/*!
+ * Return values (error codes) for kernel register interface functions
+ */
+typedef enum rng_return {
+ RNG_RET_OK = 0, /*!< Function succeeded */
+ RNG_RET_FAIL /*!< Non-specific failure */
+} rng_return_t;
+
+/*****************************************************************************
+ * Data Structures
+ *****************************************************************************/
+/*!
+ * An entry in the RNG Work Queue. Based upon standard SHW queue entry.
+ *
+ * This entry also gets saved (for non-blocking requests) in the user's result
+ * pool. When the user picks up the request, the final processing (copy from
+ * data_local to data_user) will get made if status was good.
+ */
+typedef struct rng_work_entry {
+ struct shw_queue_entry_t hdr; /*!< Standards SHW queue info. */
+ uint32_t length; /*!< Number of bytes still needed to satisfy request. */
+ uint32_t *data_local; /*!< Where data from RNG FIFO gets placed. */
+ uint8_t *data_user; /*!< Ultimate target of data. */
+ unsigned completed; /*!< Non-zero if job is done. */
+} rng_work_entry_t;
+
+/*****************************************************************************
+ * Function Prototypes
+ *****************************************************************************/
+
+#ifdef RNG_REGISTER_PEEK_POKE
+/*!
+ * Read value from an RNG register.
+ * The offset will be checked for validity as well as whether it is
+ * accessible at the time of the call.
+ *
+ * This routine cannot be used to read the RNG's Output FIFO if the RNG is in
+ * High Assurance mode.
+ *
+ * @param[in] register_offset The (byte) offset within the RNG block
+ * of the register to be queried. See
+ * RNG(A, C) registers for meanings.
+ * @param[out] value Pointer to where value from the register
+ * should be placed.
+ *
+ * @return See #rng_return_t.
+ */
+/* REQ-FSLSHW-PINTFC-API-LLF-001 */
+extern rng_return_t rng_read_register(uint32_t register_offset,
+ uint32_t * value);
+
+/*!
+ * Write a new value into an RNG register.
+ *
+ * The offset will be checked for validity as well as whether it is
+ * accessible at the time of the call.
+ *
+ * @param[in] register_offset The (byte) offset within the RNG block
+ * of the register to be modified. See
+ * RNG(A, C) registers for meanings.
+ * @param[in] value The value to store into the register.
+ *
+ * @return See #rng_return_t.
+ */
+/* REQ-FSLSHW-PINTFC-API-LLF-002 */
+extern rng_return_t rng_write_register(uint32_t register_offset,
+ uint32_t value);
+#endif /* RNG_REGISTER_PEEK_POKE */
+
+#endif /* RNG_DRIVER_H */
diff --git a/drivers/mxc/security/rng/include/rng_internals.h b/drivers/mxc/security/rng/include/rng_internals.h
new file mode 100644
index 000000000000..9f754a77e766
--- /dev/null
+++ b/drivers/mxc/security/rng/include/rng_internals.h
@@ -0,0 +1,680 @@
+/*
+ * Copyright (C) 2005-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+#ifndef RNG_INTERNALS_H
+#define RNG_INTERNALS_H
+
+/*! @file rng_internals.h
+ *
+ * This file contains definitions which are internal to the RNG driver.
+ *
+ * This header file should only ever be needed by rng_driver.c
+ *
+ * Compile-time flags minimally needed:
+ *
+ * @li Some sort of platform flag. (FSL_HAVE_RNGA or FSL_HAVE_RNGC)
+ *
+ * @ingroup RNG
+ */
+
+#include "portable_os.h"
+#include "shw_driver.h"
+#include "rng_driver.h"
+
+/*! @defgroup rngcompileflags RNG Compile Flags
+ *
+ * These are flags which are used to configure the RNG driver at compilation
+ * time.
+ *
+ * Most of them default to good values for normal operation, but some
+ * (#INT_RNG and #RNG_BASE_ADDR) need to be provided.
+ *
+ * The terms 'defined' and 'undefined' refer to whether a @c \#define (or -D on
+ * a compile command) has defined a given preprocessor symbol. If a given
+ * symbol is defined, then @c \#ifdef \<symbol\> will succeed. Some symbols
+ * described below default to not having a definition, i.e. they are undefined.
+ *
+ */
+
+/*! @addtogroup rngcompileflags */
+/*! @{ */
+
+/*!
+ * This is the maximum number of times the driver will loop waiting for the
+ * RNG hardware to say that it has generated random data. It prevents the
+ * driver from stalling forever should there be a hardware problem.
+ *
+ * Default value is 100. It should be revisited as CPU clocks speed up.
+ */
+#ifndef RNG_MAX_TRIES
+#define RNG_MAX_TRIES 100
+#endif
+
+/* Temporarily define compile-time flags to make Doxygen happy and allow them
+ to get into the documentation. */
+#ifdef DOXYGEN_HACK
+
+/*!
+ * This symbol is the base address of the RNG in the CPU memory map. It may
+ * come from some included header file, or it may come from the compile command
+ * line. This symbol has no default, and the driver will not compile without
+ * it.
+ */
+#define RNG_BASE_ADDR
+#undef RNG_BASE_ADDR
+
+/*!
+ * This symbol is the Interrupt Number of the RNG in the CPU. It may come
+ * from some included header file, or it may come from the compile command
+ * line. This symbol has no default, and the driver will not compile without
+ * it.
+ */
+#define INT_RNG
+#undef INT_RNG
+
+/*!
+ * Defining this symbol will allow other kernel programs to call the
+ * #rng_read_register() and #rng_write_register() functions. If this symbol is
+ * not defined, those functions will not be present in the driver.
+ */
+#define RNG_REGISTER_PEEK_POKE
+#undef RNG_REGISTER_PEEK_POKE
+
+/*!
+ * Turn on compilation of run-time operational, debug, and error messages.
+ *
+ * This flag is undefined by default.
+ */
+/* REQ-FSLSHW-DEBUG-001 */
+
+/*!
+ * Turn on compilation of run-time logging of access to the RNG registers,
+ * except for the RNG's Output FIFO register. See #RNG_ENTROPY_DEBUG.
+ *
+ * This flag is undefined by default
+ */
+#define RNG_REGISTER_DEBUG
+#undef RNG_REGISTER_DEBUG
+
+/*!
+ * Turn on compilation of run-time logging of reading of the RNG's Output FIFO
+ * register. This flag does nothing if #RNG_REGISTER_DEBUG is not defined.
+ *
+ * This flag is undefined by default
+ */
+#define RNG_ENTROPY_DEBUG
+#undef RNG_ENTROPY_DEBUG
+
+/*!
+ * If this flag is defined, the driver will not attempt to put the RNG into
+ * High Assurance mode.
+
+ * If it is undefined, the driver will attempt to put the RNG into High
+ * Assurance mode. If RNG fails to go into High Assurance mode, the driver
+ * will fail to initialize.
+
+ * In either case, if the RNG is already in this mode, the driver will operate
+ * normally.
+ *
+ * This flag is undefined by default.
+ */
+#define RNG_NO_FORCE_HIGH_ASSURANCE
+#undef RNG_NO_FORCE_HIGH_ASSURANCE
+
+/*!
+ * If this flag is defined, the driver will put the RNG into low power mode
+ * every opportunity.
+ *
+ * This flag is undefined by default.
+ */
+#define RNG_USE_LOW_POWER_MODE
+#undef RNG_USE_LOW_POWER_MODE
+
+/*! @} */
+#endif /* end DOXYGEN_HACK */
+
+/*!
+ * If this flag is defined, the driver will not attempt to put the RNG into
+ * High Assurance mode.
+
+ * If it is undefined, the driver will attempt to put the RNG into High
+ * Assurance mode. If RNG fails to go into High Assurance mode, the driver
+ * will fail to initialize.
+
+ * In either case, if the RNG is already in this mode, the driver will operate
+ * normally.
+ *
+ */
+#define RNG_NO_FORCE_HIGH_ASSURANCE
+
+/*!
+ * Read a 32-bit value from an RNG register. This macro depends upon
+ * #rng_base. The os_read32() macro operates on 32-bit quantities, as do
+ * all RNG register reads.
+ *
+ * @param offset Register byte offset within RNG.
+ *
+ * @return The value from the RNG's register.
+ */
+#ifndef RNG_REGISTER_DEBUG
+#define RNG_READ_REGISTER(offset) os_read32(rng_base+(offset))
+#else
+#define RNG_READ_REGISTER(offset) dbg_rng_read_register(offset)
+#endif
+
+/*!
+ * Write a 32-bit value to an RNG register. This macro depends upon
+ * #rng_base. The os_write32() macro operates on 32-bit quantities, as do
+ * all RNG register writes.
+ *
+ * @param offset Register byte offset within RNG.
+ * @param value 32-bit value to store into the register
+ *
+ * @return (void)
+ */
+#ifndef RNG_REGISTER_DEBUG
+#define RNG_WRITE_REGISTER(offset,value) \
+ (void)os_write32(rng_base+(offset), value)
+#else
+#define RNG_WRITE_REGISTER(offset,value) dbg_rng_write_register(offset,value)
+#endif
+
+#ifndef RNG_DRIVER_NAME
+/*! @addtogroup rngcompileflags */
+/*! @{ */
+/*! Name the driver will use to register itself to the kernel as the driver. */
+#define RNG_DRIVER_NAME "rng"
+/*! @} */
+#endif
+
+/*!
+ * Calculate number of words needed to hold the given number of bytes.
+ *
+ * @param byte_count Number of bytes
+ *
+ * @return Number of words
+ */
+#define BYTES_TO_WORDS(byte_count) \
+ (((byte_count)+sizeof(uint32_t)-1)/sizeof(uint32_t))
+
+/*! Gives high-level view of state of the RNG */
+typedef enum rng_status {
+ RNG_STATUS_INITIAL, /*!< Driver status before ever starting. */
+ RNG_STATUS_CHECKING, /*!< During driver initialization. */
+ RNG_STATUS_UNIMPLEMENTED, /*!< Hardware is non-existent / unreachable. */
+ RNG_STATUS_OK, /*!< Hardware is In Secure or Default state. */
+ RNG_STATUS_FAILED /*!< Hardware is In Failed state / other fatal
+ problem. Driver is still able to read/write
+ some registers, but cannot get Random
+ data. */
+} rng_status_t;
+
+static shw_queue_t rng_work_queue;
+
+/*****************************************************************************
+ *
+ * Function Declarations
+ *
+ *****************************************************************************/
+
+/* kernel interface functions */
+OS_DEV_INIT_DCL(rng_init);
+OS_DEV_TASK_DCL(rng_entropy_task);
+OS_DEV_SHUTDOWN_DCL(rng_shutdown);
+OS_DEV_ISR_DCL(rng_irq);
+
+#define RNG_ADD_QUEUE_ENTRY(pool, entry) \
+ SHW_ADD_QUEUE_ENTRY(pool, (shw_queue_entry_t*)entry)
+
+#define RNG_REMOVE_QUEUE_ENTRY(pool, entry) \
+ SHW_REMOVE_QUEUE_ENTRY(pool, (shw_queue_entry_t*)entry)
+#define RNG_GET_WORK_ENTRY() \
+ (rng_work_entry_t*)SHW_POP_FIRST_ENTRY(&rng_work_queue)
+
+/*!
+ * Add an work item to a work list. Item will be marked incomplete.
+ *
+ * @param work Work entry to place at tail of list.
+ *
+ * @return none
+ */
+inline static void RNG_ADD_WORK_ENTRY(rng_work_entry_t * work)
+{
+ work->completed = FALSE;
+
+ SHW_ADD_QUEUE_ENTRY(&rng_work_queue, (shw_queue_entry_t *) work);
+
+ os_dev_schedule_task(rng_entropy_task);
+}
+
+/*!
+ * For #rng_check_register_accessible(), check read permission on given
+ * register.
+ */
+#define RNG_CHECK_READ 0
+
+/*!
+ * For #rng_check_register_accessible(), check write permission on given
+ * register.
+ */
+#define RNG_CHECK_WRITE 1
+
+/* Define different helper symbols based on RNG type */
+#ifdef FSL_HAVE_RNGA
+
+/******************************************************************************
+ *
+ * RNGA support
+ *
+ *****************************************************************************/
+
+/*! Interrupt number for driver. */
+#if defined(MXC_INT_RNG)
+/* Most modern definition */
+#define INT_RNG MXC_INT_RNG
+#elif defined(MXC_INT_RNGA)
+#define INT_RNG MXC_INT_RNGA
+#else
+#define INT_RNG INT_RNGA
+#endif
+
+/*! Base (bus?) address of RNG component. */
+#define RNG_BASE_ADDR RNGA_BASE_ADDR
+
+/*! Read and return the status register. */
+#define RNG_GET_STATUS() \
+ RNG_READ_REGISTER(RNGA_STATUS)
+/*! Configure RNG for Auto seeding */
+#define RNG_AUTO_SEED()
+/* Put RNG for Seed Generation */
+#define RNG_SEED_GEN()
+/*!
+ * Return RNG Type value. Should be RNG_TYPE_RNGA, RNG_TYPE_RNGB,
+ * or RNG_TYPE_RNGC.
+ */
+#define RNG_GET_RNG_TYPE() \
+ ((RNG_READ_REGISTER(RNGA_CONTROL) & RNGA_CONTROL_RNG_TYPE_MASK) \
+ >> RNGA_CONTROL_RNG_TYPE_SHIFT)
+
+/*!
+ * Verify Type value of RNG.
+ *
+ * Returns true of OK, false if not.
+ */
+#define RNG_VERIFY_TYPE(type) \
+ ((type) == RNG_TYPE_RNGA)
+
+/*! Returns non-zero if RNG device is reporting an error. */
+#define RNG_HAS_ERROR() \
+ (RNG_READ_REGISTER(RNGA_STATUS) & RNGA_STATUS_ERROR_INTERRUPT)
+/*! Returns non-zero if Bad Key is selected */
+#define RNG_HAS_BAD_KEY() 0
+/*! Return non-zero if Self Test Done */
+#define RNG_SELF_TEST_DONE() 0
+/*! Returns non-zero if RNG ring oscillators have failed. */
+#define RNG_OSCILLATOR_FAILED() \
+ (RNG_READ_REGISTER(RNGA_STATUS) & RNGA_STATUS_OSCILLATOR_DEAD)
+
+/*! Returns maximum number of 32-bit words in the RNG's output fifo. */
+#define RNG_GET_FIFO_SIZE() \
+ ((RNG_READ_REGISTER(RNGA_STATUS) & RNGA_STATUS_OUTPUT_FIFO_SIZE_MASK) \
+ >> RNGA_STATUS_OUTPUT_FIFO_SIZE_SHIFT)
+
+/*! Returns number of 32-bit words currently in the RNG's output fifo. */
+#define RNG_GET_WORDS_IN_FIFO() \
+ ((RNG_READ_REGISTER(RNGA_STATUS) & RNGA_STATUS_OUTPUT_FIFO_LEVEL_MASK) \
+ >> RNGA_STATUS_OUTPUT_FIFO_LEVEL_SHIFT)
+/* Configuring RNG for Self Test */
+#define RNG_SELF_TEST()
+/*! Get a random value from the RNG's output FIFO. */
+#define RNG_READ_FIFO() \
+ RNG_READ_REGISTER(RNGA_OUTPUT_FIFO)
+
+/*! Put entropy into the RNG's algorithm.
+ * @param value 32-bit value to add to RNG's entropy.
+ **/
+#define RNG_ADD_ENTROPY(value) \
+ RNG_WRITE_REGISTER(RNGA_ENTROPY, (value))
+/*! Return non-zero in case of Error during Self Test */
+#define RNG_CHECK_SELF_ERR() 0
+/*! Return non-zero in case of Error during Seed Generation */
+#define RNG_CHECK_SEED_ERR() 0
+/*! Get the RNG started at generating output. */
+#define RNG_GO() \
+{ \
+ register uint32_t control = RNG_READ_REGISTER(RNGA_CONTROL); \
+ RNG_WRITE_REGISTER(RNGA_CONTROL, control | RNGA_CONTROL_GO); \
+}
+/*! To clear all Error Bits in Error Status Register */
+#define RNG_CLEAR_ERR()
+/*! Put RNG into High Assurance mode */
+#define RNG_SET_HIGH_ASSURANCE() \
+{ \
+ register uint32_t control = RNG_READ_REGISTER(RNGA_CONTROL); \
+ RNG_WRITE_REGISTER(RNGA_CONTROL, control | RNGA_CONTROL_HIGH_ASSURANCE); \
+}
+
+/*! Return non-zero if the RNG is in High Assurance mode. */
+#define RNG_GET_HIGH_ASSURANCE() \
+ (RNG_READ_REGISTER(RNGA_CONTROL) & RNGA_CONTROL_HIGH_ASSURANCE)
+
+/*! Clear all status, error and otherwise. */
+#define RNG_CLEAR_ALL_STATUS() \
+{ \
+ register uint32_t control = RNG_READ_REGISTER(RNGA_CONTROL); \
+ RNG_WRITE_REGISTER(RNGA_CONTROL, control | RNGA_CONTROL_CLEAR_INTERRUPT); \
+}
+/* Return non-zero if RESEED Required */
+#define RNG_RESEED() 1
+
+/*! Return non-zero if Seeding is done */
+#define RNG_SEED_DONE() 1
+
+/*! Return non-zero if everything seems OK with the RNG. */
+#define RNG_WORKING() \
+ ((RNG_READ_REGISTER(RNGA_STATUS) \
+ & (RNGA_STATUS_SLEEP | RNGA_STATUS_SECURITY_VIOLATION \
+ | RNGA_STATUS_ERROR_INTERRUPT | RNGA_STATUS_FIFO_UNDERFLOW \
+ | RNGA_STATUS_LAST_READ_STATUS )) == 0)
+
+/*! Put the RNG into sleep (low-power) mode. */
+#define RNG_SLEEP() \
+{ \
+ register uint32_t control = RNG_READ_REGISTER(RNGA_CONTROL); \
+ RNG_WRITE_REGISTER(RNGA_CONTROL, control | RNGA_CONTROL_SLEEP); \
+}
+
+/*! Wake the RNG from sleep (low-power) mode. */
+#define RNG_WAKE() \
+{ \
+ uint32_t control = RNG_READ_REGISTER(RNGA_CONTROL); \
+ RNG_WRITE_REGISTER(RNGA_CONTROL, control & ~RNGA_CONTROL_SLEEP); \
+}
+
+/*! Mask interrupts so that the driver/OS will not see them. */
+#define RNG_MASK_ALL_INTERRUPTS() \
+{ \
+ register uint32_t control = RNG_READ_REGISTER(RNGA_CONTROL); \
+ RNG_WRITE_REGISTER(RNGA_CONTROL, control | RNGA_CONTROL_MASK_INTERRUPTS); \
+}
+
+/*! Unmask interrupts so that the driver/OS will see them. */
+#define RNG_UNMASK_ALL_INTERRUPTS() \
+{ \
+ register uint32_t control = RNG_READ_REGISTER(RNGA_CONTROL); \
+ RNG_WRITE_REGISTER(RNGA_CONTROL, control & ~RNGA_CONTROL_MASK_INTERRUPTS);\
+}
+
+/*!
+ * @def RNG_PUT_RNG_TO_SLEEP()
+ *
+ * If compiled with #RNG_USE_LOW_POWER_MODE, this routine will put the RNG
+ * to sleep (low power mode).
+ *
+ * @return none
+ */
+/*!
+ * @def RNG_WAKE_RNG_FROM_SLEEP()
+ *
+ * If compiled with #RNG_USE_LOW_POWER_MODE, this routine will wake the RNG
+ * from sleep (low power mode).
+ *
+ * @return none
+ */
+#ifdef RNG_USE_LOW_POWER_MODE
+
+#define RNG_PUT_RNG_TO_SLEEP() \
+ RNG_SLEEP()
+
+#define RNG_WAKE_FROM_SLEEP() \
+ RNG_WAKE() 1
+
+#else /* not low power mode */
+
+#define RNG_PUT_RNG_TO_SLEEP()
+
+#define RNG_WAKE_FROM_SLEEP()
+
+#endif /* Use low-power mode */
+
+#else /* FSL_HAVE_RNGB or FSL_HAVE_RNGC */
+
+/******************************************************************************
+ *
+ * RNGB and RNGC support
+ *
+ *****************************************************************************/
+/*
+ * The operational interfaces for RNGB and RNGC are almost identical, so
+ * the defines for RNGC work fine for both. There are minor differences
+ * which will be treated within this conditional block.
+ */
+
+/*! Interrupt number for driver. */
+#if defined(MXC_INT_RNG)
+/* Most modern definition */
+#define INT_RNG MXC_INT_RNG
+#elif defined(MXC_INT_RNGC)
+#define INT_RNG MXC_INT_RNGC
+#elif defined(MXC_INT_RNGB)
+#define INT_RNG MXC_INT_RNGB
+#elif defined(INT_RNGC)
+#define INT_RNG INT_RNGC
+#else
+#error NO_INTERRUPT_DEFINED
+#endif
+
+/*! Base address of RNG component. */
+#ifdef FSL_HAVE_RNGB
+#define RNG_BASE_ADDR RNGB_BASE_ADDR
+#else
+#define RNG_BASE_ADDR RNGC_BASE_ADDR
+#endif
+
+/*! Read and return the status register. */
+#define RNG_GET_STATUS() \
+ RNG_READ_REGISTER(RNGC_ERROR)
+
+/*!
+ * Return RNG Type value. Should be RNG_TYPE_RNGA or RNG_TYPE_RNGC.
+ */
+#define RNG_GET_RNG_TYPE() \
+ ((RNG_READ_REGISTER(RNGC_VERSION_ID) & RNGC_VERID_RNG_TYPE_MASK) \
+ >> RNGC_VERID_RNG_TYPE_SHIFT)
+
+/*!
+ * Verify Type value of RNG.
+ *
+ * Returns true of OK, false if not.
+ */
+#ifdef FSL_HAVE_RNGB
+#define RNG_VERIFY_TYPE(type) \
+ ((type) == RNG_TYPE_RNGB)
+#else /* RNGC */
+#define RNG_VERIFY_TYPE(type) \
+ ((type) == RNG_TYPE_RNGC)
+#endif
+
+/*! Returns non-zero if RNG device is reporting an error. */
+#define RNG_HAS_ERROR() \
+ (RNG_READ_REGISTER(RNGC_STATUS) & RNGC_STATUS_ERROR)
+/*! Returns non-zero if Bad Key is selected */
+#define RNG_HAS_BAD_KEY() \
+ (RNG_READ_REGISTER(RNGC_ERROR) & RNGC_ERROR_STATUS_BAD_KEY)
+/*! Returns non-zero if RNG ring oscillators have failed. */
+#define RNG_OSCILLATOR_FAILED() \
+ (RNG_READ_REGISTER(RNGC_ERROR) & RNGC_ERROR_STATUS_OSC_ERR)
+
+/*! Returns maximum number of 32-bit words in the RNG's output fifo. */
+#define RNG_GET_FIFO_SIZE() \
+ ((RNG_READ_REGISTER(RNGC_STATUS) & RNGC_STATUS_FIFO_SIZE_MASK) \
+ >> RNGC_STATUS_FIFO_SIZE_SHIFT)
+
+/*! Returns number of 32-bit words currently in the RNG's output fifo. */
+#define RNG_GET_WORDS_IN_FIFO() \
+ ((RNG_READ_REGISTER(RNGC_STATUS) & RNGC_STATUS_FIFO_LEVEL_MASK) \
+ >> RNGC_STATUS_FIFO_LEVEL_SHIFT)
+
+/*! Get a random value from the RNG's output FIFO. */
+#define RNG_READ_FIFO() \
+ RNG_READ_REGISTER(RNGC_FIFO)
+
+/*! Put entropy into the RNG's algorithm.
+ * @param value 32-bit value to add to RNG's entropy.
+ **/
+#ifdef FSL_HAVE_RNGB
+#define RNG_ADD_ENTROPY(value) \
+ RNG_WRITE_REGISTER(RNGB_ENTROPY, value)
+#else /* RNGC does not have Entropy register */
+#define RNG_ADD_ENTROPY(value)
+#endif
+/*! Wake the RNG from sleep (low-power) mode. */
+#define RNG_WAKE() 1
+/*! Get the RNG started at generating output. */
+#define RNG_GO()
+/*! Put RNG into High Assurance mode. */
+#define RNG_SET_HIGH_ASSURANCE()
+/*! Returns non-zero in case of Error during Self Test */
+#define RNG_CHECK_SELF_ERR() \
+ (RNG_READ_REGISTER(RNGC_ERROR) & RNGC_ERROR_STATUS_ST_ERR)
+/*! Return non-zero in case of Error during Seed Generation */
+#define RNG_CHECK_SEED_ERR() \
+ (RNG_READ_REGISTER(RNGC_ERROR) & RNGC_ERROR_STATUS_STAT_ERR)
+
+/*! Configure RNG for Self Test */
+#define RNG_SELF_TEST() \
+{ \
+ register uint32_t command = RNG_READ_REGISTER(RNGC_COMMAND); \
+ RNG_WRITE_REGISTER(RNGC_COMMAND, command \
+ | RNGC_COMMAND_SELF_TEST); \
+}
+/*! Clearing the Error bits in Error Status Register */
+#define RNG_CLEAR_ERR() \
+{ \
+ register uint32_t command = RNG_READ_REGISTER(RNGC_COMMAND); \
+ RNG_WRITE_REGISTER(RNGC_COMMAND, command \
+ | RNGC_COMMAND_CLEAR_ERROR); \
+}
+
+/*! Return non-zero if Self Test Done */
+#define RNG_SELF_TEST_DONE() \
+ (RNG_READ_REGISTER(RNGC_STATUS) & RNGC_STATUS_ST_DONE)
+/* Put RNG for SEED Generation */
+#define RNG_SEED_GEN() \
+{ \
+ register uint32_t command = RNG_READ_REGISTER(RNGC_COMMAND); \
+ RNG_WRITE_REGISTER(RNGC_COMMAND, command \
+ | RNGC_COMMAND_SEED); \
+}
+/* Return non-zero if RESEED Required */
+#define RNG_RESEED() \
+ (RNG_READ_REGISTER(RNGC_STATUS) & RNGC_STATUS_RESEED)
+
+/*! Return non-zero if the RNG is in High Assurance mode. */
+#define RNG_GET_HIGH_ASSURANCE() (RNG_READ_REGISTER(RNGC_STATUS) & \
+ RNGC_STATUS_SEC_STATE)
+
+/*! Clear all status, error and otherwise. */
+#define RNG_CLEAR_ALL_STATUS() \
+ RNG_WRITE_REGISTER(RNGC_COMMAND, \
+ RNGC_COMMAND_CLEAR_INTERRUPT \
+ | RNGC_COMMAND_CLEAR_ERROR)
+
+/*! Return non-zero if everything seems OK with the RNG. */
+#define RNG_WORKING() \
+ ((RNG_READ_REGISTER(RNGC_ERROR) \
+ & (RNGC_ERROR_STATUS_STAT_ERR | RNGC_ERROR_STATUS_RAND_ERR \
+ | RNGC_ERROR_STATUS_FIFO_ERR | RNGC_ERROR_STATUS_ST_ERR | \
+ RNGC_ERROR_STATUS_OSC_ERR | RNGC_ERROR_STATUS_LFSR_ERR )) == 0)
+/*! Return Non zero if SEEDING is DONE */
+#define RNG_SEED_DONE() \
+ ((RNG_READ_REGISTER(RNGC_STATUS) & RNGC_STATUS_SEED_DONE) != 0)
+
+/*! Put the RNG into sleep (low-power) mode. */
+#define RNG_SLEEP()
+
+/*! Wake the RNG from sleep (low-power) mode. */
+
+/*! Mask interrupts so that the driver/OS will not see them. */
+#define RNG_MASK_ALL_INTERRUPTS() \
+{ \
+ register uint32_t control = RNG_READ_REGISTER(RNGC_CONTROL); \
+ RNG_WRITE_REGISTER(RNGC_CONTROL, control \
+ | RNGC_CONTROL_MASK_DONE \
+ | RNGC_CONTROL_MASK_ERROR); \
+}
+/*! Configuring RNGC for self Test. */
+
+#define RNG_AUTO_SEED() \
+{ \
+ register uint32_t control = RNG_READ_REGISTER(RNGC_CONTROL); \
+ RNG_WRITE_REGISTER(RNGC_CONTROL, control \
+ | RNGC_CONTROL_AUTO_SEED); \
+}
+
+/*! Unmask interrupts so that the driver/OS will see them. */
+#define RNG_UNMASK_ALL_INTERRUPTS() \
+{ \
+ register uint32_t control = RNG_READ_REGISTER(RNGC_CONTROL); \
+ RNG_WRITE_REGISTER(RNGC_CONTROL, \
+ control & ~(RNGC_CONTROL_MASK_DONE|RNGC_CONTROL_MASK_ERROR)); \
+}
+
+/*! Put RNG to sleep if appropriate. */
+#define RNG_PUT_RNG_TO_SLEEP()
+
+/*! Wake RNG from sleep if necessary. */
+#define RNG_WAKE_FROM_SLEEP()
+
+#endif /* RNG TYPE */
+
+/* internal functions */
+static os_error_code rng_map_RNG_memory(void);
+static os_error_code rng_setup_interrupt_handling(void);
+#ifdef RNG_REGISTER_PEEK_POKE
+inline static int rng_check_register_offset(uint32_t offset);
+inline static int rng_check_register_accessible(uint32_t offset,
+ int access_write);
+#endif /* DEBUG_RNG_REGISTERS */
+static fsl_shw_return_t rng_drain_fifo(uint32_t * random_p, int count_words);
+static os_error_code rng_grab_config_values(void);
+static void rng_cleanup(void);
+
+#ifdef FSL_HAVE_RNGA
+static void rng_sec_failure(void);
+#endif
+
+#ifdef RNG_REGISTER_DEBUG
+static uint32_t dbg_rng_read_register(uint32_t offset);
+static void dbg_rng_write_register(uint32_t offset, uint32_t value);
+#endif
+
+#if defined(LINUX_VERSION_CODE)
+
+EXPORT_SYMBOL(fsl_shw_add_entropy);
+EXPORT_SYMBOL(fsl_shw_get_random);
+
+#ifdef RNG_REGISTER_PEEK_POKE
+/* For Linux kernel, export the API functions to other kernel modules */
+EXPORT_SYMBOL(rng_read_register);
+EXPORT_SYMBOL(rng_write_register);
+#endif /* DEBUG_RNG_REGISTERS */
+
+
+
+MODULE_AUTHOR("Freescale Semiconductor");
+MODULE_DESCRIPTION("Device Driver for RNG");
+
+#endif /* LINUX_VERSION_CODE */
+
+#endif /* RNG_INTERNALS_H */
diff --git a/drivers/mxc/security/rng/include/rng_rnga.h b/drivers/mxc/security/rng/include/rng_rnga.h
new file mode 100644
index 000000000000..a3a86b961506
--- /dev/null
+++ b/drivers/mxc/security/rng/include/rng_rnga.h
@@ -0,0 +1,181 @@
+/*
+ * Copyright (C) 2005-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+#ifndef RNG_RNGA_H
+#define RNG_RNGA_H
+
+/*! @defgroup rngaregs RNGA Registers
+ * @ingroup RNG
+ * These are the definitions for the RNG registers and their offsets
+ * within the RNG. They are used in the @c register_offset parameter of
+ * #rng_read_register() and #rng_write_register().
+ */
+/*! @addtogroup rngaregs */
+/*! @{ */
+
+/*! Control Register. See @ref rngacontrolreg. */
+#define RNGA_CONTROL 0x00
+/*! Status Register. See @ref rngastatusreg. */
+#define RNGA_STATUS 0x04
+/*! Register for adding to the Entropy of the RNG */
+#define RNGA_ENTROPY 0x08
+/*! Register containing latest 32 bits of random value */
+#define RNGA_OUTPUT_FIFO 0x0c
+/*! Mode Register. Non-secure mode access only. See @ref rngmodereg. */
+#define RNGA_MODE 0x10
+/*! Verification Control Register. Non-secure mode access only. See
+ * @ref rngvfctlreg. */
+#define RNGA_VERIFICATION_CONTROL 0x14
+/*! Oscillator Control Counter Register. Non-secure mode access only.
+ * See @ref rngosccntctlreg. */
+#define RNGA_OSCILLATOR_CONTROL_COUNTER 0x18
+/*! Oscillator 1 Counter Register. Non-secure mode access only. See
+ * @ref rngosccntreg. */
+#define RNGA_OSCILLATOR1_COUNTER 0x1c
+/*! Oscillator 2 Counter Register. Non-secure mode access only. See
+ * @ref rngosccntreg. */
+#define RNGA_OSCILLATOR2_COUNTER 0x20
+/*! Oscillator Counter Status Register. Non-secure mode access only. See
+ * @ref rngosccntstatreg. */
+#define RNGA_OSCILLATOR_COUNTER_STATUS 0x24
+/*! @} */
+
+/*! Total address space of the RNGA, in bytes */
+#define RNG_ADDRESS_RANGE 0x28
+
+/*! @defgroup rngacontrolreg RNGA Control Register Definitions
+ * @ingroup RNG
+ */
+/*! @addtogroup rngacontrolreg */
+/*! @{ */
+/*! These bits are unimplemented or reserved */
+#define RNGA_CONTROL_ZEROS_MASK 0x0fffffe0
+/*! 'RNG type' - should be 0 for RNGA */
+#define RNGA_CONTROL_RNG_TYPE_MASK 0xf0000000
+/*! Number of bits to shift the type to get it to LSB */
+#define RNGA_CONTROL_RNG_TYPE_SHIFT 28
+/*! Put RNG to sleep */
+#define RNGA_CONTROL_SLEEP 0x00000010
+/*! Clear interrupt & status */
+#define RNGA_CONTROL_CLEAR_INTERRUPT 0x00000008
+/*! Mask interrupt generation */
+#define RNGA_CONTROL_MASK_INTERRUPTS 0x00000004
+/*! Enter into Secure Mode. Notify SCC of security violation should FIFO
+ * underflow occur. */
+#define RNGA_CONTROL_HIGH_ASSURANCE 0x00000002
+/*! Load data into FIFO */
+#define RNGA_CONTROL_GO 0x00000001
+/*! @} */
+
+/*! @defgroup rngastatusreg RNGA Status Register Definitions
+ * @ingroup RNG
+ */
+/*! @addtogroup rngastatusreg */
+/*! @{ */
+/*! RNG Oscillator not working */
+#define RNGA_STATUS_OSCILLATOR_DEAD 0x80000000
+/*! These bits are undefined or reserved */
+#define RNGA_STATUS_ZEROS1_MASK 0x7f000000
+/*! How big FIFO is, in bytes */
+#define RNGA_STATUS_OUTPUT_FIFO_SIZE_MASK 0x00ff0000
+/*! How many bits right to shift fifo size to make it LSB */
+#define RNGA_STATUS_OUTPUT_FIFO_SIZE_SHIFT 16
+/*! How many bytes are currently in the FIFO */
+#define RNGA_STATUS_OUTPUT_FIFO_LEVEL_MASK 0x0000ff00
+/*! How many bits right to shift fifo level to make it LSB */
+#define RNGA_STATUS_OUTPUT_FIFO_LEVEL_SHIFT 8
+/*! These bits are undefined or reserved. */
+#define RNGA_STATUS_ZEROS2_MASK 0x000000e0
+/*! RNG is sleeping. */
+#define RNGA_STATUS_SLEEP 0x00000010
+/*! Error detected. */
+#define RNGA_STATUS_ERROR_INTERRUPT 0x00000008
+/*! FIFO was empty on some read since last status read. */
+#define RNGA_STATUS_FIFO_UNDERFLOW 0x00000004
+/*! FIFO was empty on most recent read. */
+#define RNGA_STATUS_LAST_READ_STATUS 0x00000002
+/*! Security violation occurred. Will only happen in High Assurance mode. */
+#define RNGA_STATUS_SECURITY_VIOLATION 0x00000001
+/*! @} */
+
+/*! @defgroup rngmodereg RNG Mode Register Definitions
+ * @ingroup RNG
+ */
+/*! @addtogroup rngmodereg */
+/*! @{ */
+/*! These bits are undefined or reserved */
+#define RNGA_MODE_ZEROS_MASK 0xfffffffc
+/*! RNG is in / put RNG in Oscillator Frequency Test Mode. */
+#define RNGA_MODE_OSCILLATOR_FREQ_TEST 0x00000002
+/*! Put RNG in verification mode / RNG is in verification mode. */
+#define RNGA_MODE_VERIFICATION 0x00000001
+/*! @} */
+
+/*! @defgroup rngvfctlreg RNG Verification Control Register Definitions
+ * @ingroup RNG
+ */
+/*! @addtogroup rngvfctlreg */
+/*! @{ */
+/*! These bits are undefined or reserved. */
+#define RNGA_VFCTL_ZEROS_MASK 0xfffffff8
+/*! Reset the shift registers. */
+#define RNGA_VFCTL_RESET_SHIFT_REGISTERS 0x00000004
+/*! Drive shift registers from system clock. */
+#define RNGA_VFCTL_FORCE_SYSTEM_CLOCK 0x00000002
+/*! Turn off shift register clocks. */
+#define RNGA_VFCTL_SHIFT_CLOCK_OFF 0x00000001
+/*! @} */
+
+/*!
+ * @defgroup rngosccntctlreg RNG Oscillator Counter Control Register Definitions
+ * @ingroup RNG
+ */
+/*! @addtogroup rngosccntctlreg */
+/*! @{ */
+/*! These bits are undefined or reserved. */
+#define RNGA_OSCCR_ZEROS_MASK 0xfffc0000
+/*! Bits containing clock cycle counter */
+#define RNGA_OSCCR_CLOCK_CYCLES_MASK 0x0003ffff
+/*! Bits to shift right RNG_OSCCR_CLOCK_CYCLES_MASK */
+#define RNGA_OSCCR_CLOCK_CYCLES_SHIFT 0
+/*! @} */
+
+/*!
+ * @defgroup rngosccntreg RNG Oscillator (1 and 2) Counter Register Definitions
+ * @ingroup RNG
+ */
+/*! @addtogroup rngosccntreg */
+/*! @{ */
+/*! These bits are undefined or reserved. */
+#define RNGA_COUNTER_ZEROS_MASK 0xfff00000
+/*! Bits containing number of clock pulses received from the oscillator. */
+#define RNGA_COUNTER_PULSES_MASK 0x000fffff
+/*! Bits right to shift RNG_COUNTER_PULSES_MASK to make it LSB. */
+#define RNGA_COUNTER_PULSES_SHIFT 0
+/*! @} */
+
+/*!
+ * @defgroup rngosccntstatreg RNG Oscillator Counter Status Register Definitions
+ * @ingroup RNG
+ */
+/*! @addtogroup rngosccntstatreg */
+/*! @{ */
+/*! These bits are undefined or reserved. */
+#define RNGA_COUNTER_STATUS_ZEROS_MASK 0xfffffffc
+/*! Oscillator 2 has toggled 0x400 times */
+#define RNGA_COUNTER_STATUS_OSCILLATOR2 0x00000002
+/*! Oscillator 1 has toggled 0x400 times */
+#define RNGA_COUNTER_STATUS_OSCILLATOR1 0x00000001
+/*! @} */
+
+#endif /* RNG_RNGA_H */
diff --git a/drivers/mxc/security/rng/include/rng_rngc.h b/drivers/mxc/security/rng/include/rng_rngc.h
new file mode 100644
index 000000000000..d7b7f127f74c
--- /dev/null
+++ b/drivers/mxc/security/rng/include/rng_rngc.h
@@ -0,0 +1,235 @@
+/*
+ * Copyright (C) 2005-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+/*!
+ * @file rng_rngc.h
+ *
+ * Definition of the registers for the RNGB and RNGC. The names start with
+ * RNGC where they are in common or relate only to the RNGC; the RNGB-only
+ * definitions begin with RNGB.
+ *
+ */
+
+#ifndef RNG_RNGC_H
+#define RNG_RNGC_H
+
+#define RNGC_VERSION_MAJOR3 3
+
+/*! @defgroup rngcregs RNGB/RNGC Registers
+ * These are the definitions for the RNG registers and their offsets
+ * within the RNG. They are used in the @c register_offset parameter of
+ * #rng_read_register() and #rng_write_register().
+ *
+ * @ingroup RNG
+ */
+/*! @addtogroup rngcregs */
+/*! @{ */
+
+/*! RNGC Version ID Register R/W */
+#define RNGC_VERSION_ID 0x0000
+/*! RNGC Command Register R/W */
+#define RNGC_COMMAND 0x0004
+/*! RNGC Control Register R/W */
+#define RNGC_CONTROL 0x0008
+/*! RNGC Status Register R */
+#define RNGC_STATUS 0x000C
+/*! RNGC Error Status Register R */
+#define RNGC_ERROR 0x0010
+/*! RNGC FIFO Register W */
+#define RNGC_FIFO 0x0014
+/*! Undefined */
+#define RNGC_UNDEF_18 0x0018
+/*! RNGB Entropy Register W */
+#define RNGB_ENTROPY 0x0018
+/*! Undefined */
+#define RNGC_UNDEF_1C 0x001C
+/*! RNGC Verification Control Register1 R/W */
+#define RNGC_VERIFICATION_CONTROL 0x0020
+/*! Undefined */
+#define RNGC_UNDEF_24 0x0024
+/*! RNGB XKEY Data Register R */
+#define RNGB_XKEY 0x0024
+/*! RNGC Oscillator Counter Control Register1 R/W */
+#define RNGC_OSC_COUNTER_CONTROL 0x0028
+/*! RNGC Oscillator Counter Register1 R */
+#define RNGC_OSC_COUNTER 0x002C
+/*! RNGC Oscillator Counter Status Register1 R */
+#define RNGC_OSC_COUNTER_STATUS 0x0030
+/*! @} */
+
+/*! @defgroup rngcveridreg RNGB/RNGC Version ID Register Definitions
+ * @ingroup RNG
+ */
+/*! @addtogroup rngcveridreg */
+/*! @{ */
+/*! These bits are unimplemented or reserved */
+#define RNGC_VERID_ZEROS_MASK 0x0f000000
+/*! Mask for RNG TYPE */
+#define RNGC_VERID_RNG_TYPE_MASK 0xf0000000
+/*! Shift to make RNG TYPE be LSB */
+#define RNGC_VERID_RNG_TYPE_SHIFT 28
+/*! Mask for RNG Chip Version */
+#define RNGC_VERID_CHIP_VERSION_MASK 0x00ff0000
+/*! Shift to make RNG Chip version be LSB */
+#define RNGC_VERID_CHIP_VERSION_SHIFT 16
+/*! Mask for RNG Major Version */
+#define RNGC_VERID_VERSION_MAJOR_MASK 0x0000ff00
+/*! Shift to make RNG Major version be LSB */
+#define RNGC_VERID_VERSION_MAJOR_SHIFT 8
+/*! Mask for RNG Minor Version */
+#define RNGC_VERID_VERSION_MINOR_MASK 0x000000ff
+/*! Shift to make RNG Minor version be LSB */
+#define RNGC_VERID_VERSION_MINOR_SHIFT 0
+/*! @} */
+
+/*! @defgroup rngccommandreg RNGB/RNGC Command Register Definitions
+ * @ingroup RNG
+ */
+/*! @addtogroup rngccommandreg */
+/*! @{ */
+/*! These bits are unimplemented or reserved. */
+#define RNGC_COMMAND_ZEROS_MASK 0xffffff8c
+/*! Perform a software reset of the RNGC. */
+#define RNGC_COMMAND_SOFTWARE_RESET 0x00000040
+/*! Clear error from Error Status register (and interrupt). */
+#define RNGC_COMMAND_CLEAR_ERROR 0x00000020
+/*! Clear interrupt & status. */
+#define RNGC_COMMAND_CLEAR_INTERRUPT 0x00000010
+/*! Start RNGC seed generation. */
+#define RNGC_COMMAND_SEED 0x00000002
+/*! Perform a self test of (and reset) the RNGC. */
+#define RNGC_COMMAND_SELF_TEST 0x00000001
+/*! @} */
+
+/*! @defgroup rngccontrolreg RNGB/RNGC Control Register Definitions
+ * @ingroup RNG
+ */
+/*! @addtogroup rngccontrolreg */
+/*! @{ */
+/*! These bits are unimplemented or reserved */
+#define RNGC_CONTROL_ZEROS_MASK 0xfffffc8c
+/*! Allow access to verification registers. */
+#define RNGC_CONTROL_CTL_ACC 0x00000200
+/*! Put RNGC into deterministic verifcation mode. */
+#define RNGC_CONTROL_VERIF_MODE 0x00000100
+/*! Prevent RNGC from generating interrupts caused by errors. */
+#define RNGC_CONTROL_MASK_ERROR 0x00000040
+
+/*!
+ * Prevent RNGB/RNGC from generating interrupts after Seed Done or Self Test
+ * Mode completion.
+ */
+#define RNGC_CONTROL_MASK_DONE 0x00000020
+/*! Allow RNGC to generate a new seed whenever it is needed. */
+#define RNGC_CONTROL_AUTO_SEED 0x00000010
+/*! Set FIFO Underflow Response.*/
+#define RNGC_CONTROL_FIFO_UFLOW_MASK 0x00000003
+/*! Shift value to make FIFO Underflow Response be LSB. */
+#define RNGC_CONTROL_FIFO_UFLOW_SHIFT 0
+
+/*! @} */
+
+/*! @{ */
+/*! FIFO Underflow should cause ... */
+#define RNGC_CONTROL_FIFO_UFLOW_ZEROS_ERROR 0
+/*! FIFO Underflow should cause ... */
+#define RNGC_CONTROL_FIFO_UFLOW_ZEROS_ERROR2 1
+/*! FIFO Underflow should cause ... */
+#define RNGC_CONTROL_FIFO_UFLOW_BUS_XFR 2
+/*! FIFO Underflow should cause ... */
+#define RNGC_CONTROL_FIFO_UFLOW_ZEROS_INTR 3
+/*! @} */
+
+/*! @defgroup rngcstatusreg RNGB/RNGC Status Register Definitions
+ * @ingroup RNG
+ */
+/*! @addtogroup rngcstatusreg */
+/*! @{ */
+/*! Unused or MBZ. */
+#define RNGC_STATUS_ZEROS_MASK 0x003e0080
+/*!
+ * Statistical tests pass-fail. Individual bits on indicate failure of a
+ * particular test.
+ */
+#define RNGC_STATUS_STAT_TEST_PF_MASK 0xff000000
+/*! Mask to get Statistical PF to be LSB. */
+#define RNGC_STATUS_STAT_TEST_PF_SHIFT 24
+/*!
+ * Self tests pass-fail. Individual bits on indicate failure of a
+ * particular test.
+ */
+#define RNGC_STATUS_ST_PF_MASK 0x00c00000
+/*! Shift value to get Self Test PF field to be LSB. */
+#define RNGC_STATUS_ST_PF_SHIFT 22
+/* TRNG Self test pass-fail */
+#define RNGC_STATUS_ST_PF_TRNG 0x00800000
+/* PRNG Self test pass-fail */
+#define RNGC_STATUS_ST_PF_PRNG 0x00400000
+/*! Error detected in RNGC. See Error Status register. */
+#define RNGC_STATUS_ERROR 0x00010000
+/*! Size of the internal FIFO in 32-bit words. */
+#define RNGC_STATUS_FIFO_SIZE_MASK 0x0000f000
+/*! Shift value to get FIFO Size to be LSB. */
+#define RNGC_STATUS_FIFO_SIZE_SHIFT 12
+/*! The level (available data) of the internal FIFO in 32-bit words. */
+#define RNGC_STATUS_FIFO_LEVEL_MASK 0x00000f00
+/*! Shift value to get FIFO Level to be LSB. */
+#define RNGC_STATUS_FIFO_LEVEL_SHIFT 8
+/*! A new seed is ready for use. */
+#define RNGC_STATUS_NEXT_SEED_DONE 0x00000040
+/*! The first seed has been generated. */
+#define RNGC_STATUS_SEED_DONE 0x00000020
+/*! Self Test has been completed. */
+#define RNGC_STATUS_ST_DONE 0x00000010
+/*! Reseed is necessary. */
+#define RNGC_STATUS_RESEED 0x00000008
+/*! RNGC is sleeping. */
+#define RNGC_STATUS_SLEEP 0x00000004
+/*! RNGC is currently generating numbers, seeding, generating next seed, or
+ performing a self test. */
+#define RNGC_STATUS_BUSY 0x00000002
+/*! RNGC is in secure state. */
+#define RNGC_STATUS_SEC_STATE 0x00000001
+
+/*! @} */
+
+/*! @defgroup rngcerrstatusreg RNGB/RNGC Error Status Register Definitions
+ * @ingroup RNG
+ */
+/*! @addtogroup rngcerrstatusreg */
+/*! @{ */
+/*! Unused or MBZ. */
+#define RNGC_ERROR_STATUS_ZEROS_MASK 0xffffff80
+/*! Bad Key Error Status */
+#define RNGC_ERROR_STATUS_BAD_KEY 0x00000040
+/*! Random Compare Error. Previous number matched the current number. */
+#define RNGC_ERROR_STATUS_RAND_ERR 0x00000020
+/*! FIFO Underflow. FIFO was read while empty. */
+#define RNGC_ERROR_STATUS_FIFO_ERR 0x00000010
+/*! Statistic Error Statistic Test failed for the last seed. */
+#define RNGC_ERROR_STATUS_STAT_ERR 0x00000008
+/*! Self-test error. Some self test has failed. */
+#define RNGC_ERROR_STATUS_ST_ERR 0x00000004
+/*!
+ * Oscillator Error. The oscillator may be broken. Clear by hard or soft
+ * reset.
+ */
+#define RNGC_ERROR_STATUS_OSC_ERR 0x00000002
+/*! LFSR Error. Clear by hard or soft reset. */
+#define RNGC_ERROR_STATUS_LFSR_ERR 0x00000001
+
+/*! @} */
+
+/*! Total address space of the RNGB/RNGC registers, in bytes */
+#define RNG_ADDRESS_RANGE 0x34
+
+#endif /* RNG_RNGC_H */
diff --git a/drivers/mxc/security/rng/include/shw_driver.h b/drivers/mxc/security/rng/include/shw_driver.h
new file mode 100644
index 000000000000..d529b4fe6e6b
--- /dev/null
+++ b/drivers/mxc/security/rng/include/shw_driver.h
@@ -0,0 +1,2971 @@
+/*
+ * Copyright (C) 2005-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU Lesser General
+ * Public License. You may obtain a copy of the GNU Lesser General
+ * Public License Version 2.1 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/lgpl-license.html
+ * http://www.gnu.org/copyleft/lgpl.html
+ */
+
+#ifndef SHW_DRIVER_H
+#define SHW_DRIVER_H
+
+/* This is a Linux flag meaning 'compiling kernel code'... */
+#ifndef __KERNEL__
+#include <inttypes.h>
+#include <stdlib.h>
+#include <sys/ioctl.h>
+#include <memory.h>
+#include <stdio.h>
+#else
+#include "../../sahara2/include/portable_os.h"
+#endif /* __KERNEL__ */
+
+#include "../../sahara2/include/fsl_platform.h"
+
+/*! @file shw_driver.h
+ *
+ * @brief Header file to use the SHW driver.
+ *
+ * The SHW driver is used in two modes: By a user, from the FSL SHW API in user
+ * space, which goes through /dev/fsl_shw to make open(), ioctl(), and close()
+ * calls; and by other kernel modules/drivers, which use the FSL SHW API, parts
+ * of which are supported directly by the SHW driver.
+ *
+ * Testing is performed by using the apitest and kernel api test routines
+ * developed for the Sahara2 driver.
+ */
+/*#define DIAG_SECURITY_FUNC*/
+/*! Perform a security function. */
+#define SHW_IOCTL_REQUEST 21
+
+/* This definition may need a new name, and needs to go somewhere which
+ * can determine platform, kernel vs. user, os, etc.
+ */
+#define copy_bytes(out, in, len) memcpy(out, in, len)
+
+
+/*!
+ * This is part of the IOCTL request type passed between kernel and user space.
+ * It is added to #SHW_IOCTL_REQUEST to generate the actual value.
+ */
+typedef enum shw_user_request_t {
+ SHW_USER_REQ_REGISTER_USER, /*!< Initialize user-kernel discussion. */
+ SHW_USER_REQ_DEREGISTER_USER, /*!< Terminate user-kernel discussion. */
+ SHW_USER_REQ_GET_RESULTS, /*!< Get information on outstanding
+ results. */
+ SHW_USER_REQ_GET_CAPABILITIES, /*!< Get information on hardware support. */
+ SHW_USER_REQ_GET_RANDOM, /*!< Get random data from RNG. */
+ SHW_USER_REQ_ADD_ENTROPY, /*!< Add entropy to hardware RNG. */
+ SHW_USER_REQ_DROP_PERMS, /*!< Diminish the permissions of a block of
+ secure memory */
+ SHW_USER_REQ_SSTATUS, /*!< Check the status of a block of secure
+ memory */
+ SHW_USER_REQ_SFREE, /*!< Free a block of secure memory */
+ SHW_USER_REQ_SCC_ENCRYPT, /*!< Encrypt a region of user-owned secure
+ memory */
+ SHW_USER_REQ_SCC_DECRYPT, /*!< Decrypt a region of user-owned secure
+ memory */
+} shw_user_request_t;
+
+
+/*!
+ * @typedef scc_partition_status_t
+ */
+/** Partition status information. */
+typedef enum fsl_shw_partition_status_t {
+ FSL_PART_S_UNUSABLE, /*!< Partition not implemented */
+ FSL_PART_S_UNAVAILABLE, /*!< Partition owned by other host */
+ FSL_PART_S_AVAILABLE, /*!< Partition available */
+ FSL_PART_S_ALLOCATED, /*!< Partition owned by host but not engaged
+ */
+ FSL_PART_S_ENGAGED, /*!< Partition owned by host and engaged */
+} fsl_shw_partition_status_t;
+
+
+/*
+ * Structure passed during user ioctl() calls to manage secure partitions.
+ */
+typedef struct scc_partition_info_t {
+ uint32_t user_base; /*!< Userspace pointer to base of partition */
+ uint32_t permissions; /*!< Permissions to give the partition (only
+ used in call to _DROP_PERMS) */
+ fsl_shw_partition_status_t status; /*!< Status of the partition */
+} scc_partition_info_t;
+
+
+/******************************************************************************
+ * Enumerations
+ *****************************************************************************/
+/*!
+ * Flags for the state of the User Context Object (#fsl_shw_uco_t).
+ */
+typedef enum fsl_shw_user_ctx_flags_t
+{
+ /*!
+ * API will block the caller until operation completes. The result will be
+ * available in the return code. If this is not set, user will have to get
+ * results using #fsl_shw_get_results().
+ */
+ FSL_UCO_BLOCKING_MODE = 0x01,
+ /*!
+ * User wants callback (at the function specified with
+ * #fsl_shw_uco_set_callback()) when the operation completes. This flag is
+ * valid only if #FSL_UCO_BLOCKING_MODE is not set.
+ */
+ FSL_UCO_CALLBACK_MODE = 0x02,
+ /*! Do not free descriptor chain after driver (adaptor) finishes */
+ FSL_UCO_SAVE_DESC_CHAIN = 0x04,
+ /*!
+ * User has made at least one request with callbacks requested, so API is
+ * ready to handle others.
+ */
+ FSL_UCO_CALLBACK_SETUP_COMPLETE = 0x08,
+ /*!
+ * (virtual) pointer to descriptor chain is completely linked with physical
+ * (DMA) addresses, ready for the hardware. This flag should not be used
+ * by FSL SHW API programs.
+ */
+ FSL_UCO_CHAIN_PREPHYSICALIZED = 0x10,
+ /*!
+ * The user has changed the context but the changes have not been copied to
+ * the kernel driver.
+ */
+ FSL_UCO_CONTEXT_CHANGED = 0x20,
+ /*! Internal Use. This context belongs to a user-mode API user. */
+ FSL_UCO_USERMODE_USER = 0x40,
+} fsl_shw_user_ctx_flags_t;
+
+
+/*!
+ * Return code for FSL_SHW library.
+ *
+ * These codes may be returned from a function call. In non-blocking mode,
+ * they will appear as the status in a Result Object.
+ */
+/* REQ-FSLSHW-ERR-001 */
+typedef enum fsl_shw_return_t
+{
+ /*!
+ * No error. As a function return code in Non-blocking mode, this may
+ * simply mean that the operation was accepted for eventual execution.
+ */
+ FSL_RETURN_OK_S = 0,
+ /*! Failure for non-specific reason. */
+ FSL_RETURN_ERROR_S,
+ /*!
+ * Operation failed because some resource was not able to be allocated.
+ */
+ FSL_RETURN_NO_RESOURCE_S,
+ /*! Crypto algorithm unrecognized or improper. */
+ FSL_RETURN_BAD_ALGORITHM_S,
+ /*! Crypto mode unrecognized or improper. */
+ FSL_RETURN_BAD_MODE_S,
+ /*! Flag setting unrecognized or inconsistent. */
+ FSL_RETURN_BAD_FLAG_S,
+ /*! Improper or unsupported key length for algorithm. */
+ FSL_RETURN_BAD_KEY_LENGTH_S,
+ /*! Improper parity in a (DES, TDES) key. */
+ FSL_RETURN_BAD_KEY_PARITY_S,
+ /*!
+ * Improper or unsupported data length for algorithm or internal buffer.
+ */
+ FSL_RETURN_BAD_DATA_LENGTH_S,
+ /*! Authentication / Integrity Check code check failed. */
+ FSL_RETURN_AUTH_FAILED_S,
+ /*! A memory error occurred. */
+ FSL_RETURN_MEMORY_ERROR_S,
+ /*! An error internal to the hardware occurred. */
+ FSL_RETURN_INTERNAL_ERROR_S,
+ /*! ECC detected Point at Infinity */
+ FSL_RETURN_POINT_AT_INFINITY_S,
+ /*! ECC detected No Point at Infinity */
+ FSL_RETURN_POINT_NOT_AT_INFINITY_S,
+ /*! GCD is One */
+ FSL_RETURN_GCD_IS_ONE_S,
+ /*! GCD is not One */
+ FSL_RETURN_GCD_IS_NOT_ONE_S,
+ /*! Candidate is Prime */
+ FSL_RETURN_PRIME_S,
+ /*! Candidate is not Prime */
+ FSL_RETURN_NOT_PRIME_S,
+ /*! N register loaded improperly with even value */
+ FSL_RETURN_EVEN_MODULUS_ERROR_S,
+ /*! Divisor is zero. */
+ FSL_RETURN_DIVIDE_BY_ZERO_ERROR_S,
+ /*! Bad Exponent or Scalar value for Point Multiply */
+ FSL_RETURN_BAD_EXPONENT_ERROR_S,
+ /*! RNG hardware problem. */
+ FSL_RETURN_OSCILLATOR_ERROR_S,
+ /*! RNG hardware problem. */
+ FSL_RETURN_STATISTICS_ERROR_S,
+} fsl_shw_return_t;
+
+
+/*!
+ * Algorithm Identifier.
+ *
+ * Selection of algorithm will determine how large the block size of the
+ * algorithm is. Context size is the same length unless otherwise specified.
+ * Selection of algorithm also affects the allowable key length.
+ */
+typedef enum fsl_shw_key_alg_t
+{
+ /*!
+ * Key will be used to perform an HMAC. Key size is 1 to 64 octets. Block
+ * size is 64 octets.
+ */
+ FSL_KEY_ALG_HMAC,
+ /*!
+ * Advanced Encryption Standard (Rijndael). Block size is 16 octets. Key
+ * size is 16 octets. (The single choice of key size is a Sahara platform
+ * limitation.)
+ */
+ FSL_KEY_ALG_AES,
+ /*!
+ * Data Encryption Standard. Block size is 8 octets. Key size is 8
+ * octets.
+ */
+ FSL_KEY_ALG_DES,
+ /*!
+ * 2- or 3-key Triple DES. Block size is 8 octets. Key size is 16 octets
+ * for 2-key Triple DES, and 24 octets for 3-key.
+ */
+ FSL_KEY_ALG_TDES,
+ /*!
+ * ARC4. No block size. Context size is 259 octets. Allowed key size is
+ * 1-16 octets. (The choices for key size are a Sahara platform
+ * limitation.)
+ */
+ FSL_KEY_ALG_ARC4,
+} fsl_shw_key_alg_t;
+
+
+/*!
+ * Mode selector for Symmetric Ciphers.
+ *
+ * The selection of mode determines how a cryptographic algorithm will be
+ * used to process the plaintext or ciphertext.
+ *
+ * For all modes which are run block-by-block (that is, all but
+ * #FSL_SYM_MODE_STREAM), any partial operations must be performed on a text
+ * length which is multiple of the block size. Except for #FSL_SYM_MODE_CTR,
+ * these block-by-block algorithms must also be passed a total number of octets
+ * which is a multiple of the block size.
+ *
+ * In modes which require that the total number of octets of data be a multiple
+ * of the block size (#FSL_SYM_MODE_ECB and #FSL_SYM_MODE_CBC), and the user
+ * has a total number of octets which are not a multiple of the block size, the
+ * user must perform any necessary padding to get to the correct data length.
+ */
+typedef enum fsl_shw_sym_mode_t
+{
+ /*!
+ * Stream. There is no associated block size. Any request to process data
+ * may be of any length. This mode is only for ARC4 operations, and is
+ * also the only mode used for ARC4.
+ */
+ FSL_SYM_MODE_STREAM,
+
+ /*!
+ * Electronic Codebook. Each block of data is encrypted/decrypted. The
+ * length of the data stream must be a multiple of the block size. This
+ * mode may be used for DES, 3DES, and AES. The block size is determined
+ * by the algorithm.
+ */
+ FSL_SYM_MODE_ECB,
+ /*!
+ * Cipher-Block Chaining. Each block of data is encrypted/decrypted and
+ * then "chained" with the previous block by an XOR function. Requires
+ * context to start the XOR (previous block). This mode may be used for
+ * DES, 3DES, and AES. The block size is determined by the algorithm.
+ */
+ FSL_SYM_MODE_CBC,
+ /*!
+ * Counter. The counter is encrypted, then XORed with a block of data.
+ * The counter is then incremented (using modulus arithmetic) for the next
+ * block. The final operation may be non-multiple of block size. This mode
+ * may be used for AES. The block size is determined by the algorithm.
+ */
+ FSL_SYM_MODE_CTR,
+} fsl_shw_sym_mode_t;
+
+
+/*!
+ * Algorithm selector for Cryptographic Hash functions.
+ *
+ * Selection of algorithm determines how large the context and digest will be.
+ * Context is the same size as the digest (resulting hash), unless otherwise
+ * specified.
+ */
+typedef enum fsl_shw_hash_alg_t
+{
+ FSL_HASH_ALG_MD5, /*!< MD5 algorithm. Digest is 16 octets. */
+ FSL_HASH_ALG_SHA1, /*!< SHA-1 (aka SHA or SHA-160) algorithm.
+ Digest is 20 octets. */
+ FSL_HASH_ALG_SHA224, /*!< SHA-224 algorithm. Digest is 28 octets,
+ though context is 32 octets. */
+ FSL_HASH_ALG_SHA256 /*!< SHA-256 algorithm. Digest is 32
+ octets. */
+} fsl_shw_hash_alg_t;
+
+
+/*!
+ * The type of Authentication-Cipher function which will be performed.
+ */
+typedef enum fsl_shw_acc_mode_t
+{
+ /*!
+ * CBC-MAC for Counter. Requires context and modulus. Final operation may
+ * be non-multiple of block size. This mode may be used for AES.
+ */
+ FSL_ACC_MODE_CCM,
+ /*!
+ * SSL mode. Not supported. Combines HMAC and encrypt (or decrypt).
+ * Needs one key object for encryption, another for the HMAC. The usual
+ * hashing and symmetric encryption algorithms are supported.
+ */
+ FSL_ACC_MODE_SSL
+} fsl_shw_acc_mode_t;
+
+
+/* REQ-FSLSHW-PINTFC-COA-HCO-001 */
+/*!
+ * Flags which control a Hash operation.
+ */
+typedef enum fsl_shw_hash_ctx_flags_t
+{
+ FSL_HASH_FLAGS_INIT = 0x01, /*!< Context is empty. Hash is started
+ from scratch, with a message-processed
+ count of zero. */
+ FSL_HASH_FLAGS_SAVE = 0x02, /*!< Retrieve context from hardware after
+ hashing. If used with the
+ #FSL_HASH_FLAGS_FINALIZE flag, the final
+ digest value will be saved in the
+ object. */
+ FSL_HASH_FLAGS_LOAD = 0x04, /*!< Place context into hardware before
+ hashing. */
+ FSL_HASH_FLAGS_FINALIZE = 0x08, /*!< PAD message and perform final digest
+ operation. If user message is
+ pre-padded, this flag should not be
+ used. */
+} fsl_shw_hash_ctx_flags_t;
+
+
+/*!
+ * Flags which control an HMAC operation.
+ *
+ * These may be combined by ORing them together. See #fsl_shw_hmco_set_flags()
+ * and #fsl_shw_hmco_clear_flags().
+ */
+typedef enum fsl_shw_hmac_ctx_flags_t
+{
+ FSL_HMAC_FLAGS_INIT = 1, /**< Message context is empty. HMAC is
+ started from scratch (with key) or from
+ precompute of inner hash, depending on
+ whether
+ #FSL_HMAC_FLAGS_PRECOMPUTES_PRESENT is
+ set. */
+ FSL_HMAC_FLAGS_SAVE = 2, /**< Retrieve ongoing context from hardware
+ after hashing. If used with the
+ #FSL_HMAC_FLAGS_FINALIZE flag, the final
+ digest value (HMAC) will be saved in the
+ object. */
+ FSL_HMAC_FLAGS_LOAD = 4, /**< Place ongoing context into hardware
+ before hashing. */
+ FSL_HMAC_FLAGS_FINALIZE = 8, /**< PAD message and perform final HMAC
+ operations of inner and outer hashes. */
+ FSL_HMAC_FLAGS_PRECOMPUTES_PRESENT = 16 /**< This means that the context
+ contains precomputed inner and outer
+ hash values. */
+} fsl_shw_hmac_ctx_flags_t;
+
+
+/**
+ * Flags to control use of the #fsl_shw_scco_t.
+ *
+ * These may be ORed together to get the desired effect.
+ * See #fsl_shw_scco_set_flags() and #fsl_shw_scco_clear_flags()
+ */
+typedef enum fsl_shw_sym_ctx_flags_t
+{
+ /**
+ * Context is empty. In ARC4, this means that the S-Box needs to be
+ * generated from the key. In #FSL_SYM_MODE_CBC mode, this allows an IV of
+ * zero to be specified. In #FSL_SYM_MODE_CTR mode, it means that an
+ * initial CTR value of zero is desired.
+ */
+ FSL_SYM_CTX_INIT = 1,
+ /**
+ * Load context from object into hardware before running cipher. In
+ * #FSL_SYM_MODE_CTR mode, this would refer to the Counter Value.
+ */
+ FSL_SYM_CTX_LOAD = 2,
+ /**
+ * Save context from hardware into object after running cipher. In
+ * #FSL_SYM_MODE_CTR mode, this would refer to the Counter Value.
+ */
+ FSL_SYM_CTX_SAVE = 4,
+ /**
+ * Context (SBox) is to be unwrapped and wrapped on each use.
+ * This flag is unsupported.
+ * */
+ FSL_SYM_CTX_PROTECT = 8,
+} fsl_shw_sym_ctx_flags_t;
+
+
+/**
+ * Flags which describe the state of the #fsl_shw_sko_t.
+ *
+ * These may be ORed together to get the desired effect.
+ * See #fsl_shw_sko_set_flags() and #fsl_shw_sko_clear_flags()
+ */
+typedef enum fsl_shw_key_flags_t
+{
+ FSL_SKO_KEY_IGNORE_PARITY = 1, /*!< If algorithm is DES or 3DES, do not
+ validate the key parity bits. */
+ FSL_SKO_KEY_PRESENT = 2, /*!< Clear key is present in the object. */
+ FSL_SKO_KEY_ESTABLISHED = 4, /*!< Key has been established for use. This
+ feature is not available for all
+ platforms, nor for all algorithms and
+ modes.*/
+ FSL_SKO_USE_SECRET_KEY = 8, /*!< Use device-unique key. Not always
+ available. */
+ FSL_SKO_KEY_SW_KEY = 16, /*!< Clear key can be provided to the user */
+ FSL_SKO_KEY_SELECT_PF_KEY = 32, /*!< Internal flag to show that this key
+ references one of the hardware keys, and
+ its value is in pf_key. */
+} fsl_shw_key_flags_t;
+
+
+/**
+ * Type of value which is associated with an established key.
+ */
+typedef uint64_t key_userid_t;
+
+
+/**
+ * Flags which describe the state of the #fsl_shw_acco_t.
+ *
+ * The @a FSL_ACCO_CTX_INIT and @a FSL_ACCO_CTX_FINALIZE flags, when used
+ * together, provide for a one-shot operation.
+ */
+typedef enum fsl_shw_auth_ctx_flags_t
+{
+ FSL_ACCO_CTX_INIT = 1, /**< Initialize Context(s) */
+ FSL_ACCO_CTX_LOAD = 2, /**< Load intermediate context(s).
+ This flag is unsupported. */
+ FSL_ACCO_CTX_SAVE = 4, /**< Save intermediate context(s).
+ This flag is unsupported. */
+ FSL_ACCO_CTX_FINALIZE = 8, /**< Create MAC during this operation. */
+ FSL_ACCO_NIST_CCM = 0x10, /**< Formatting of CCM input data is
+ performed by calls to
+ #fsl_shw_ccm_nist_format_ctr_and_iv() and
+ #fsl_shw_ccm_nist_update_ctr_and_iv(). */
+} fsl_shw_auth_ctx_flags_t;
+
+
+/**
+ * The operation which controls the behavior of #fsl_shw_establish_key().
+ *
+ * These values are passed to #fsl_shw_establish_key().
+ */
+typedef enum fsl_shw_key_wrap_t
+{
+ FSL_KEY_WRAP_CREATE, /**< Generate a key from random values. */
+ FSL_KEY_WRAP_ACCEPT, /**< Use the provided clear key. */
+ FSL_KEY_WRAP_UNWRAP /**< Unwrap a previously wrapped key. */
+} fsl_shw_key_wrap_t;
+
+
+/**
+ * Modulus Selector for CTR modes.
+ *
+ * The incrementing of the Counter value may be modified by a modulus. If no
+ * modulus is needed or desired for AES, use #FSL_CTR_MOD_128.
+ */
+typedef enum fsl_shw_ctr_mod_t
+{
+ FSL_CTR_MOD_8, /**< Run counter with modulus of 2^8. */
+ FSL_CTR_MOD_16, /**< Run counter with modulus of 2^16. */
+ FSL_CTR_MOD_24, /**< Run counter with modulus of 2^24. */
+ FSL_CTR_MOD_32, /**< Run counter with modulus of 2^32. */
+ FSL_CTR_MOD_40, /**< Run counter with modulus of 2^40. */
+ FSL_CTR_MOD_48, /**< Run counter with modulus of 2^48. */
+ FSL_CTR_MOD_56, /**< Run counter with modulus of 2^56. */
+ FSL_CTR_MOD_64, /**< Run counter with modulus of 2^64. */
+ FSL_CTR_MOD_72, /**< Run counter with modulus of 2^72. */
+ FSL_CTR_MOD_80, /**< Run counter with modulus of 2^80. */
+ FSL_CTR_MOD_88, /**< Run counter with modulus of 2^88. */
+ FSL_CTR_MOD_96, /**< Run counter with modulus of 2^96. */
+ FSL_CTR_MOD_104, /**< Run counter with modulus of 2^104. */
+ FSL_CTR_MOD_112, /**< Run counter with modulus of 2^112. */
+ FSL_CTR_MOD_120, /**< Run counter with modulus of 2^120. */
+ FSL_CTR_MOD_128 /**< Run counter with modulus of 2^128. */
+} fsl_shw_ctr_mod_t;
+
+
+/**
+ * A work type associated with a work/result queue request.
+ */
+typedef enum shw_work_type_t
+{
+ SHW_WORK_GET_RANDOM = 1, /**< fsl_shw_get_random() request. */
+ SHW_WORK_ADD_RANDOM, /**< fsl_shw_add_entropy() request. */
+} shw_work_type_t;
+
+
+/**
+ * Permissions flags for Secure Partitions
+ */
+typedef enum fsl_shw_permission_t
+{
+/** SCM Access Permission: Do not zeroize/deallocate partition on SMN Fail state */
+ FSL_PERM_NO_ZEROIZE = 0x80000000,
+/** SCM Access Permission: Enforce trusted key read in */
+ FSL_PERM_TRUSTED_KEY_READ = 0x40000000,
+/** SCM Access Permission: Ignore Supervisor/User mode in permission determination */
+ FSL_PERM_HD_S = 0x00000800,
+/** SCM Access Permission: Allow Read Access to Host Domain */
+ FSL_PERM_HD_R = 0x00000400,
+/** SCM Access Permission: Allow Write Access to Host Domain */
+ FSL_PERM_HD_W = 0x00000200,
+/** SCM Access Permission: Allow Execute Access to Host Domain */
+ FSL_PERM_HD_X = 0x00000100,
+/** SCM Access Permission: Allow Read Access to Trusted Host Domain */
+ FSL_PERM_TH_R = 0x00000040,
+/** SCM Access Permission: Allow Write Access to Trusted Host Domain */
+ FSL_PERM_TH_W = 0x00000020,
+/** SCM Access Permission: Allow Read Access to Other/World Domain */
+ FSL_PERM_OT_R = 0x00000004,
+/** SCM Access Permission: Allow Write Access to Other/World Domain */
+ FSL_PERM_OT_W = 0x00000002,
+/** SCM Access Permission: Allow Execute Access to Other/World Domain */
+ FSL_PERM_OT_X = 0x00000001,
+} fsl_shw_permission_t;
+
+/*!
+ * Select the cypher mode to use for partition cover/uncover operations.
+ *
+ * They currently map directly to the values used in the SCC2 driver, but this
+ * is not guarinteed behavior.
+ */
+typedef enum fsl_shw_cypher_mode_t
+{
+ FSL_SHW_CYPHER_MODE_ECB = 1, /*!< ECB mode */
+ FSL_SHW_CYPHER_MODE_CBC = 2, /*!< CBC mode */
+} fsl_shw_cypher_mode_t;
+
+/*!
+ * Which platform key should be presented for cryptographic use.
+ */
+typedef enum fsl_shw_pf_key_t {
+ FSL_SHW_PF_KEY_IIM, /*!< Present fused IIM key */
+ FSL_SHW_PF_KEY_PRG, /*!< Present Program key */
+ FSL_SHW_PF_KEY_IIM_PRG, /*!< Present IIM ^ Program key */
+ FSL_SHW_PF_KEY_IIM_RND, /*!< Present Random key */
+ FSL_SHW_PF_KEY_RND, /*!< Present IIM ^ Random key */
+} fsl_shw_pf_key_t;
+
+/*!
+ * The various security tamper events
+ */
+typedef enum fsl_shw_tamper_t {
+ FSL_SHW_TAMPER_NONE, /*!< No error detected */
+ FSL_SHW_TAMPER_WTD, /*!< wire-mesh tampering det */
+ FSL_SHW_TAMPER_ETBD, /*!< ext tampering det: input B */
+ FSL_SHW_TAMPER_ETAD, /*!< ext tampering det: input A */
+ FSL_SHW_TAMPER_EBD, /*!< external boot detected */
+ FSL_SHW_TAMPER_SAD, /*!< security alarm detected */
+ FSL_SHW_TAMPER_TTD, /*!< temperature tampering det */
+ FSL_SHW_TAMPER_CTD, /*!< clock tampering det */
+ FSL_SHW_TAMPER_VTD, /*!< voltage tampering det */
+ FSL_SHW_TAMPER_MCO, /*!< monotonic counter overflow */
+ FSL_SHW_TAMPER_TCO, /*!< time counter overflow */
+} fsl_shw_tamper_t;
+
+/*
+ * Structure passed during user ioctl() calls to manage data stored in secure
+ * partitions.
+ */
+
+typedef struct scc_region_t {
+ uint32_t partition_base; /*!< Base address of partition */
+ uint32_t offset; /*!< Byte offset into partition */
+ uint32_t length; /*!< Number of bytes in request */
+ uint8_t *black_data; /*!< Address of cipher text */
+ uint64_t owner_id; /*!< user's secret */
+ fsl_shw_cypher_mode_t cypher_mode; /*!< ECB or CBC */
+ uint32_t IV[4]; /*!< IV for CBC mode */
+} scc_region_t;
+
+/******************************************************************************
+ * Data Structures
+ *****************************************************************************/
+
+/**
+ * Initialization Object
+ */
+typedef struct fsl_sho_ibo
+{
+} fsl_sho_ibo_t;
+
+
+/**
+ * Common Entry structure for work queues, results queues.
+ */
+typedef struct shw_queue_entry_t {
+ struct shw_queue_entry_t* next; /**< Next entry in queue. */
+ struct fsl_shw_uco_t* user_ctx; /**< Associated user context. */
+ uint32_t flags; /**< User context flags at time of request. */
+ void (*callback)(struct fsl_shw_uco_t* uco); /**< Any callback request. */
+ uint32_t user_ref; /**< User's reference for this request. */
+ fsl_shw_return_t code; /**< FSL SHW result of this operation. */
+ uint32_t detail1; /**< Any extra error info. */
+ uint32_t detail2; /**< More any extra error info. */
+ void* user_mode_req; /**< Pointer into user space. */
+ uint32_t (*postprocess)(struct shw_queue_entry_t* q); /**< (internal)
+ function to call
+ when this operation
+ completes.
+ */
+} shw_queue_entry_t;
+
+
+/**
+ * A queue. Fields must be initialized to NULL before use.
+ */
+typedef struct shw_queue_t
+{
+ struct shw_queue_entry_t* head; /**< First entry in queue. */
+ struct shw_queue_entry_t* tail; /**< Last entry. */
+} shw_queue_t;
+
+
+/**
+ * Secure Partition information
+ */
+typedef struct fsl_shw_spo_t
+{
+ uint32_t user_base;
+ void* kernel_base;
+ struct fsl_shw_spo_t* next;
+} fsl_shw_spo_t;
+
+
+/* REQ-FSLSHW-PINTFC-COA-UCO-001 */
+/**
+ * User Context Object
+ */
+typedef struct fsl_shw_uco_t
+{
+ int openfd; /**< user-mode file descriptor */
+ uint32_t user_ref; /**< User's reference */
+ void (*callback)(struct fsl_shw_uco_t* uco); /**< User's callback fn */
+ uint32_t flags; /**< from fsl_shw_user_ctx_flags_t */
+ unsigned pool_size; /**< maximum size of user result pool */
+#ifdef __KERNEL__
+ shw_queue_t result_pool; /**< where non-blocking results go */
+ os_process_handle_t process; /**< remember for signalling User mode */
+ fsl_shw_spo_t* partition; /**< chain of secure partitions owned by
+ the user */
+#endif
+ struct fsl_shw_uco_t* next; /**< To allow user-mode chaining of contexts,
+ for signalling and in kernel, to link user
+ contexts. */
+ fsl_shw_pf_key_t wrap_key; /*!< What key for ciphering T */
+} fsl_shw_uco_t;
+
+
+/* REQ-FSLSHW-PINTFC-API-GEN-006 ?? */
+/**
+ * Result object
+ */
+typedef struct fsl_shw_result_t
+{
+ uint32_t user_ref; /**< User's reference at time of request. */
+ fsl_shw_return_t code; /**< Return code from request. */
+ uint32_t detail1; /**< Extra error info. Unused in SHW driver. */
+ uint32_t detail2; /**< Extra error info. Unused in SHW driver. */
+ void* user_req; /**< Pointer to original user request. */
+} fsl_shw_result_t;
+
+
+/**
+ * Keystore Object
+ */
+typedef struct fsl_shw_kso_t
+{
+#ifdef __KERNEL__
+ os_lock_t lock; /**< Pointer to lock that controls access to
+ the keystore. */
+#endif
+ void* user_data; /**< Pointer to user structure that handles
+ the internals of the keystore. */
+ fsl_shw_return_t (*data_init) (fsl_shw_uco_t* user_ctx,
+ void** user_data);
+ void (*data_cleanup) (fsl_shw_uco_t* user_ctx,
+ void** user_data);
+ fsl_shw_return_t (*slot_verify_access)(void* user_data, uint64_t owner_id,
+ uint32_t slot);
+ fsl_shw_return_t (*slot_alloc) (void* user_data, uint32_t size_bytes,
+ uint64_t owner_id, uint32_t* slot);
+ fsl_shw_return_t (*slot_dealloc) (void* user_data,
+ uint64_t owner_id, uint32_t slot);
+ void* (*slot_get_address) (void* user_data, uint32_t slot);
+ uint32_t (*slot_get_base) (void* user_data, uint32_t slot);
+ uint32_t (*slot_get_offset) (void* user_data, uint32_t slot);
+ uint32_t (*slot_get_slot_size) (void* user_data, uint32_t slot);
+} fsl_shw_kso_t;
+
+
+/* REQ-FSLSHW-PINTFC-COA-SKO-001 */
+/**
+ * Secret Key Context Object
+ */
+typedef struct fsl_shw_sko_t
+{
+ uint32_t flags; /**< Flags from #fsl_shw_sym_ctx_flags_t. */
+ fsl_shw_key_alg_t algorithm; /**< Algorithm for this key. */
+ key_userid_t userid; /**< User's identifying value for Black key. */
+ uint32_t handle; /**< Reference in SCC driver for Red key. */
+ uint16_t key_length; /**< Length of stored key, in bytes. */
+ uint8_t key[64]; /**< Bytes of stored key. */
+ struct fsl_shw_kso_t* keystore; /**< If present, key is in keystore */
+ fsl_shw_pf_key_t pf_key; /*!< What key to select for use when this key
+ is doing ciphering. If FSL_SHW_PF_KEY_PRG
+ or FSL_SHW_PF_KEY_PRG_IIM is the value, then
+ a 'present' or 'established' key will be
+ programed into the PK. */
+} fsl_shw_sko_t;
+
+
+/* REQ-FSLSHW-PINTFC-COA-CO-001 */
+/**
+ * Platform Capability Object
+ *
+ * Pointer to this structure is returned by fsl_shw_get_capabilities() and
+ * queried with the various fsl_shw_pco_() functions.
+ */
+typedef struct fsl_shw_pco_t
+{
+ int api_major; /**< Major version number for API. */
+ int api_minor; /**< Minor version number for API. */
+ int driver_major; /**< Major version of some driver. */
+ int driver_minor; /**< Minor version of some driver. */
+ unsigned sym_algorithm_count; /**< Number of sym_algorithms. */
+ fsl_shw_key_alg_t* sym_algorithms; /**< Pointer to array. */
+ unsigned sym_mode_count; /**< Number of sym_modes. */
+ fsl_shw_sym_mode_t* sym_modes; /**< Pointer to array. */
+ unsigned hash_algorithm_count; /**< Number of hash_algorithms. */
+ fsl_shw_hash_alg_t* hash_algorithms; /**< Pointer to array */
+ uint8_t sym_support[5][4]; /**< indexed by key alg then mode */
+
+ int scc_driver_major;
+ int scc_driver_minor;
+ int scm_version; /**< Version from SCM Configuration register */
+ int smn_version; /**< Version from SMN Status register */
+ int block_size_bytes; /**< Number of bytes per block of RAM; also
+ block size of the crypto algorithm. */
+ union {
+ struct scc_info {
+ int black_ram_size_blocks; /**< Number of blocks of Black RAM */
+ int red_ram_size_blocks; /**< Number of blocks of Red RAM */
+ } scc_info;
+ struct scc2_info {
+ int partition_size_bytes; /**< Number of bytes in each partition */
+ int partition_count; /**< Number of partitions on this platform */
+ } scc2_info;
+ } u;
+} fsl_shw_pco_t;
+
+
+/* REQ-FSLSHW-PINTFC-COA-HCO-001 */
+/**
+ * Hash Context Object
+ */
+typedef struct fsl_shw_hco_t /* fsl_shw_hash_context_object */
+{
+ fsl_shw_hash_alg_t algorithm; /**< Algorithm for this context. */
+ uint32_t flags; /**< Flags from
+ #fsl_shw_hash_ctx_flags_t. */
+ uint8_t digest_length; /**< hash result length in bytes */
+ uint8_t context_length; /**< Context length in bytes */
+ uint8_t context_register_length; /**< in bytes */
+ uint32_t context[9]; /**< largest digest + msg size */
+} fsl_shw_hco_t;
+
+
+/* REQ-FSLSHW-PINTFC-COA-HCO-001 */
+/**
+ * HMAC Context Object
+ */
+typedef struct fsl_shw_hmco_t /* fsl_shw_hmac_context_object */
+{
+ fsl_shw_hash_alg_t algorithm; /**< Hash algorithm for the HMAC. */
+ uint32_t flags; /**< Flags from
+ #fsl_shw_hmac_ctx_flags_t. */
+ uint8_t digest_length; /**< in bytes */
+ uint8_t context_length; /**< in bytes */
+ uint8_t context_register_length; /**< in bytes */
+ uint32_t ongoing_context[9]; /**< largest digest + msg
+ size */
+ uint32_t inner_precompute[9]; /**< largest digest + msg
+ size */
+ uint32_t outer_precompute[9]; /**< largest digest + msg
+ size */
+} fsl_shw_hmco_t;
+
+
+/* REQ-FSLSHW-PINTFC-COA-SCCO-001 */
+/**
+ * Symmetric Crypto Context Object Context Object
+ */
+typedef struct fsl_shw_scco_t
+{
+ uint32_t flags; /**< Flags from #fsl_shw_sym_ctx_flags_t. */
+ unsigned block_size_bytes; /**< Both block and ctx size */
+ fsl_shw_sym_mode_t mode; /**< Symmetric mode for this context. */
+ /* Could put modulus plus 16-octet context in union with arc4
+ sbox+ptrs... */
+ fsl_shw_ctr_mod_t modulus_exp; /**< Exponent value for CTR modulus */
+ uint8_t context[8]; /**< Stored context. Large enough
+ for 3DES. */
+} fsl_shw_scco_t;
+
+
+/**
+ * Authenticate-Cipher Context Object
+
+ * An object for controlling the function of, and holding information about,
+ * data for the authenticate-cipher functions, #fsl_shw_gen_encrypt() and
+ * #fsl_shw_auth_decrypt().
+ */
+typedef struct fsl_shw_acco_t
+{
+ uint32_t flags; /**< See #fsl_shw_auth_ctx_flags_t for
+ meanings */
+ fsl_shw_acc_mode_t mode; /**< CCM only */
+ uint8_t mac_length; /**< User's value for length */
+ unsigned q_length; /**< NIST parameter - */
+ fsl_shw_scco_t cipher_ctx_info; /**< For running
+ encrypt/decrypt. */
+ union {
+ fsl_shw_scco_t CCM_ctx_info; /**< For running the CBC in
+ AES-CCM. */
+ fsl_shw_hco_t hash_ctx_info; /**< For running the hash */
+ } auth_info; /**< "auth" info struct */
+ uint8_t unencrypted_mac[16]; /**< max block size... */
+} fsl_shw_acco_t;
+
+
+/**
+ * Common header in request structures between User-mode API and SHW driver.
+ */
+struct shw_req_header {
+ uint32_t flags; /**< Flags - from user-mode context. */
+ uint32_t user_ref; /**< Reference - from user-mode context. */
+ fsl_shw_return_t code; /**< Result code for operation. */
+};
+
+/**
+ * Used by user-mode API to retrieve completed non-blocking results in
+ * SHW_USER_REQ_GET_RESULTS ioctl().
+ */
+struct results_req {
+ struct shw_req_header hdr; /**< Boilerplate. */
+ unsigned requested; /**< number of results requested, */
+ unsigned actual; /**< number of results obtained. */
+ fsl_shw_result_t *results; /**< pointer to memory to hold results. */
+};
+
+
+/**
+ * Used by user-mode API to retrieve hardware capabilities in
+ * SHW_USER_REQ_GET_CAPABILITIES ioctl().
+ */
+struct capabilities_req {
+ struct shw_req_header hdr; /**< Boilerplate. */
+ unsigned size; /**< Size, in bytes, capabilities. */
+ fsl_shw_pco_t* capabilities; /**< Place to copy out the info. */
+};
+
+
+/**
+ * Used by user-mode API to get a random number
+ */
+struct get_random_req {
+ struct shw_req_header hdr; /**< Boilerplate. */
+ unsigned size; /**< Size, in bytes, of random. */
+ uint8_t* random; /**< Place to copy out the random number. */
+};
+
+
+/**
+ * Used by API to add entropy to a random number generator
+ */
+struct add_entropy_req {
+ struct shw_req_header hdr; /**< Boilerplate. */
+ unsigned size; /**< Size, in bytes, of entropy. */
+ uint8_t* entropy; /**< Location of the entropy to be added. */
+};
+
+
+/******************************************************************************
+ * External variables
+ *****************************************************************************/
+#ifdef __KERNEL__
+extern os_lock_t shw_queue_lock;
+
+extern fsl_shw_uco_t* user_list;
+#endif
+
+
+/******************************************************************************
+ * Access Macros for Objects
+ *****************************************************************************/
+/**
+ * Get FSL SHW API version
+ *
+ * @param pcobject The Platform Capababilities Object to query.
+ * @param[out] pcmajor A pointer to where the major version
+ * of the API is to be stored.
+ * @param[out] pcminor A pointer to where the minor version
+ * of the API is to be stored.
+ */
+#define fsl_shw_pco_get_version(pcobject, pcmajor, pcminor) \
+do { \
+ *(pcmajor) = (pcobject)->api_major; \
+ *(pcminor) = (pcobject)->api_minor; \
+} while (0)
+
+
+/**
+ * Get underlying driver version.
+ *
+ * @param pcobject The Platform Capababilities Object to query.
+ * @param[out] pcmajor A pointer to where the major version
+ * of the driver is to be stored.
+ * @param[out] pcminor A pointer to where the minor version
+ * of the driver is to be stored.
+ */
+#define fsl_shw_pco_get_driver_version(pcobject, pcmajor, pcminor) \
+do { \
+ *(pcmajor) = (pcobject)->driver_major; \
+ *(pcminor) = (pcobject)->driver_minor; \
+} while (0)
+
+
+/**
+ * Get list of symmetric algorithms supported.
+ *
+ * @param pcobject The Platform Capababilities Object to query.
+ * @param[out] pcalgorithms A pointer to where to store the location of
+ * the list of algorithms.
+ * @param[out] pcacount A pointer to where to store the number of
+ * algorithms in the list at @a algorithms.
+ */
+#define fsl_shw_pco_get_sym_algorithms(pcobject, pcalgorithms, pcacount) \
+do { \
+ *(pcalgorithms) = (pcobject)->sym_algorithms; \
+ *(pcacount) = (pcobject)->sym_algorithm_count; \
+} while (0)
+
+
+/**
+ * Get list of symmetric modes supported.
+ *
+ * @param pcobject The Platform Capababilities Object to query.
+ * @param[out] gsmodes A pointer to where to store the location of
+ * the list of modes.
+ * @param[out] gsacount A pointer to where to store the number of
+ * algorithms in the list at @a modes.
+ */
+#define fsl_shw_pco_get_sym_modes(pcobject, gsmodes, gsacount) \
+do { \
+ *(gsmodes) = (pcobject)->sym_modes; \
+ *(gsacount) = (pcobject)->sym_mode_count; \
+} while (0)
+
+
+/**
+ * Get list of hash algorithms supported.
+ *
+ * @param pcobject The Platform Capababilities Object to query.
+ * @param[out] gsalgorithms A pointer which will be set to the list of
+ * algorithms.
+ * @param[out] gsacount The number of algorithms in the list at @a
+ * algorithms.
+ */
+#define fsl_shw_pco_get_hash_algorithms(pcobject, gsalgorithms, gsacount) \
+do { \
+ *(gsalgorithms) = (pcobject)->hash_algorithms; \
+ *(gsacount) = (pcobject)->hash_algorithm_count; \
+} while (0)
+
+
+/**
+ * Determine whether the combination of a given symmetric algorithm and a given
+ * mode is supported.
+ *
+ * @param pcobject The Platform Capababilities Object to query.
+ * @param pcalg A Symmetric Cipher algorithm.
+ * @param pcmode A Symmetric Cipher mode.
+ *
+ * @return 0 if combination is not supported, non-zero if supported.
+ */
+#if defined(FSL_HAVE_DRYICE) && defined(__KERNEL__)
+#define fsl_shw_pco_check_sym_supported(pcobject, pcalg, pcmode) \
+ ((pcobject)->sym_support[pcalg][pcmode])
+#else
+#define fsl_shw_pco_check_sym_supported(pcobject, pcalg, pcmode) \
+ 0
+#endif
+
+/**
+ * Determine whether a given Encryption-Authentication mode is supported.
+ *
+ * @param pcobject The Platform Capababilities Object to query.
+ * @param pcmode The Authentication mode.
+ *
+ * @return 0 if mode is not supported, non-zero if supported.
+ */
+#define fsl_shw_pco_check_auth_supported(pcobject, pcmode) \
+ 0
+
+
+/**
+ * Determine whether Black Keys (key establishment / wrapping) is supported.
+ *
+ * @param pcobject The Platform Capababilities Object to query.
+ *
+ * @return 0 if wrapping is not supported, non-zero if supported.
+ */
+#if defined(FSL_HAVE_DRYICE) && defined(__KERNEL__)
+#define fsl_shw_pco_check_black_key_supported(pcobject) \
+ 1
+#else
+#define fsl_shw_pco_check_black_key_supported(pcobject) \
+ 0
+
+#endif
+
+/*!
+ * Determine whether Programmed Key features are available
+ *
+ * @param pcobject The Platform Capabilities Object to query.
+ *
+ * @return 1 if Programmed Key features are available, otherwise zero.
+ */
+#if defined(FSL_HAVE_DRYICE) && defined(__KERNEL__)
+#define fsl_shw_pco_check_pk_supported(pcobject) \
+ 1
+#else
+#define fsl_shw_pco_check_pk_supported(pcobject) \
+ 0
+#endif
+
+/*!
+ * Determine whether Software Key features are available
+ *
+ * @param pc_info The Platform Capabilities Object to query.
+ *
+ * @return 1 if Software key features are available, otherwise zero.
+ */
+#if defined(FSL_HAVE_DRYICE) && defined(__KERNEL__)
+#define fsl_shw_pco_check_sw_keys_supported(pcobject) \
+ 1
+#else
+#define fsl_shw_pco_check_sw_keys_supported(pcobject) \
+ 0
+#endif
+
+/*!
+ * Get FSL SHW SCC driver version
+ *
+ * @param pcobject The Platform Capababilities Object to query.
+ * @param[out] pcmajor A pointer to where the major version
+ * of the SCC driver is to be stored.
+ * @param[out] pcminor A pointer to where the minor version
+ * of the SCC driver is to be stored.
+ */
+#define fsl_shw_pco_get_scc_driver_version(pcobject, pcmajor, pcminor) \
+{ \
+ *(pcmajor) = (pcobject)->scc_driver_major; \
+ *(pcminor) = (pcobject)->scc_driver_minor; \
+}
+
+
+/**
+ * Get SCM hardware version
+ *
+ * @param pcobject The Platform Capababilities Object to query.
+ * @return The SCM hardware version
+ */
+#define fsl_shw_pco_get_scm_version(pcobject) \
+ ((pcobject)->scm_version)
+
+
+/**
+ * Get SMN hardware version
+ *
+ * @param pcobject The Platform Capababilities Object to query.
+ * @return The SMN hardware version
+ */
+#define fsl_shw_pco_get_smn_version(pcobject) \
+ ((pcobject)->smn_version)
+
+
+/**
+ * Get the size of an SCM block, in bytes
+ *
+ * @param pcobject The Platform Capababilities Object to query.
+ * @return The size of an SCM block, in bytes.
+ */
+#define fsl_shw_pco_get_scm_block_size(pcobject) \
+ ((pcobject)->block_size_bytes)
+
+
+/**
+ * Get size of Black and Red RAM memory
+ *
+ * @param pcobject The Platform Capababilities Object to query.
+ * @param[out] black_size A pointer to where the size of the Black RAM, in
+ * blocks, is to be placed.
+ * @param[out] red_size A pointer to where the size of the Red RAM, in
+ * blocks, is to be placed.
+ */
+#define fsl_shw_pco_get_smn_size(pcobject, black_size, red_size) \
+{ \
+ if ((pcobject)->scm_version == 1) { \
+ *(black_size) = (pcobject)->u.scc_info.black_ram_size_blocks; \
+ *(red_size) = (pcobject)->u.scc_info.red_ram_size_blocks; \
+ } else { \
+ *(black_size) = 0; \
+ *(red_size) = 0; \
+ } \
+}
+
+
+/**
+ * Determine whether Secure Partitions are supported
+ *
+ * @param pcobject The Platform Capababilities Object to query.
+ *
+ * @return 0 if secure partitions are not supported, non-zero if supported.
+ */
+#define fsl_shw_pco_check_spo_supported(pcobject) \
+ ((pcobject)->scm_version == 2)
+
+
+/**
+ * Get the size of a Secure Partitions
+ *
+ * @param pcobject The Platform Capababilities Object to query.
+ *
+ * @return Partition size, in bytes. 0 if Secure Partitions not supported.
+ */
+#define fsl_shw_pco_get_spo_size_bytes(pcobject) \
+ (((pcobject)->scm_version == 2) ? \
+ ((pcobject)->u.scc2_info.partition_size_bytes) : 0 ) \
+
+
+/**
+ * Get the number of Secure Partitions on this platform
+ *
+ * @param pcobject The Platform Capababilities Object to query.
+ *
+ * @return Number of partitions. 0 if Secure Paritions not supported. Note
+ * that this returns the total number of partitions, not all may be
+ * available to the user.
+ */
+#define fsl_shw_pco_get_spo_count(pcobject) \
+ (((pcobject)->scm_version == 2) ? \
+ ((pcobject)->u.scc2_info.partition_count) : 0 ) \
+
+
+/*!
+ * Initialize a Secret Key Object.
+ *
+ * This function must be called before performing any other operation with
+ * the Object.
+ *
+ * @param skobject The Secret Key Object to be initialized.
+ * @param skalgorithm DES, AES, etc.
+ *
+ */
+#define fsl_shw_sko_init(skobject,skalgorithm) \
+{ \
+ fsl_shw_sko_t* skop = skobject; \
+ \
+ skop->algorithm = skalgorithm; \
+ skop->flags = 0; \
+ skop->keystore = NULL; \
+ skop->pf_key = FSL_SHW_PF_KEY_PRG; \
+}
+
+/*!
+ * Initialize a Secret Key Object to use a Platform Key register.
+ *
+ * This function must be called before performing any other operation with
+ * the Object.
+ *
+ * @param skobject The Secret Key Object to be initialized.
+ * @param skalgorithm DES, AES, etc.
+ * @param skhwkey one of the fsl_shw_pf_key_t values.
+ *
+ */
+#define fsl_shw_sko_init_pf_key(skobject,skalgorithm,skhwkey) \
+{ \
+ fsl_shw_sko_t* skop = skobject; \
+ fsl_shw_key_alg_t alg = skalgorithm; \
+ fsl_shw_pf_key_t key = skhwkey; \
+ \
+ skop->algorithm = alg; \
+ if (alg == FSL_KEY_ALG_TDES) { \
+ skop->key_length = 21; \
+ } \
+ skop->keystore = NULL; \
+ skop->flags = FSL_SKO_KEY_SELECT_PF_KEY; \
+ skop->pf_key = key; \
+ if ((key == FSL_SHW_PF_KEY_IIM) || (key == FSL_SHW_PF_KEY_PRG) \
+ || (key == FSL_SHW_PF_KEY_IIM_PRG) \
+ || (key == FSL_SHW_PF_KEY_IIM_RND) \
+ || (key == FSL_SHW_PF_KEY_RND)) { \
+ skop->flags |= FSL_SKO_KEY_ESTABLISHED; \
+ } \
+}
+
+/*!
+ * Store a cleartext key in the key object.
+ *
+ * This has the side effect of setting the #FSL_SKO_KEY_PRESENT flag and
+ * resetting the #FSL_SKO_KEY_ESTABLISHED flag.
+ *
+ * @param skobject A variable of type #fsl_shw_sko_t.
+ * @param skkey A pointer to the beginning of the key.
+ * @param skkeylen The length, in octets, of the key. The value should be
+ * appropriate to the key size supported by the algorithm.
+ * 64 octets is the absolute maximum value allowed for this
+ * call.
+ */
+#define fsl_shw_sko_set_key(skobject, skkey, skkeylen) \
+{ \
+ (skobject)->key_length = skkeylen; \
+ copy_bytes((skobject)->key, skkey, skkeylen); \
+ (skobject)->flags |= FSL_SKO_KEY_PRESENT; \
+ (skobject)->flags &= ~FSL_SKO_KEY_ESTABLISHED; \
+}
+
+/**
+ * Set a size for the key.
+ *
+ * This function would normally be used when the user wants the key to be
+ * generated from a random source.
+ *
+ * @param skobject A variable of type #fsl_shw_sko_t.
+ * @param skkeylen The length, in octets, of the key. The value should be
+ * appropriate to the key size supported by the algorithm.
+ * 64 octets is the absolute maximum value allowed for this
+ * call.
+ */
+#define fsl_shw_sko_set_key_length(skobject, skkeylen) \
+ (skobject)->key_length = skkeylen;
+
+
+/**
+ * Set the User ID associated with the key.
+ *
+ * @param skobject A variable of type #fsl_shw_sko_t.
+ * @param skuserid The User ID to identify authorized users of the key.
+ */
+#define fsl_shw_sko_set_user_id(skobject, skuserid) \
+ (skobject)->userid = (skuserid)
+
+/**
+ * Establish a user Keystore to hold the key.
+ */
+#define fsl_shw_sko_set_keystore(skobject, user_keystore) \
+ (skobject)->keystore = (user_keystore)
+
+
+
+/**
+ * Set the establish key handle into a key object.
+ *
+ * The @a userid field will be used to validate the access to the unwrapped
+ * key. This feature is not available for all platforms, nor for all
+ * algorithms and modes.
+ *
+ * The #FSL_SKO_KEY_ESTABLISHED will be set (and the #FSL_SKO_KEY_PRESENT flag
+ * will be cleared).
+ *
+ * @param skobject A variable of type #fsl_shw_sko_t.
+ * @param skuserid The User ID to verify this user is an authorized user of
+ * the key.
+ * @param skhandle A @a handle from #fsl_shw_sko_get_established_info.
+ */
+#define fsl_shw_sko_set_established_info(skobject, skuserid, skhandle) \
+{ \
+ (skobject)->userid = (skuserid); \
+ (skobject)->handle = (skhandle); \
+ (skobject)->flags |= FSL_SKO_KEY_ESTABLISHED; \
+ (skobject)->flags &= \
+ ~(FSL_SKO_KEY_PRESENT); \
+}
+
+
+/**
+ * Retrieve the established-key handle from a key object.
+ *
+ * @param skobject A variable of type #fsl_shw_sko_t.
+ * @param skhandle The location to store the @a handle of the unwrapped
+ * key.
+ */
+#define fsl_shw_sko_get_established_info(skobject, skhandle) \
+ *(skhandle) = (skobject)->handle
+
+
+/**
+ * Extract the algorithm from a key object.
+ *
+ * @param skobject The Key Object to be queried.
+ * @param[out] skalgorithm A pointer to the location to store the algorithm.
+ */
+#define fsl_shw_sko_get_algorithm(skobject, skalgorithm) \
+ *(skalgorithm) = (skobject)->algorithm
+
+
+/**
+ * Retrieve the cleartext key from a key object that is stored in a user
+ * keystore.
+ *
+ * @param skobject The Key Object to be queried.
+ * @param[out] skkey A pointer to the location to store the key. NULL
+ * if the key is not stored in a user keystore.
+ */
+#define fsl_shw_sko_get_key(skobject, skkey) \
+{ \
+ fsl_shw_kso_t* keystore = (skobject)->keystore; \
+ if (keystore != NULL) { \
+ *(skkey) = keystore->slot_get_address(keystore->user_data, \
+ (skobject)->handle); \
+ } else { \
+ *(skkey) = NULL; \
+ } \
+}
+
+
+/*!
+ * Determine the size of a wrapped key based upon the cleartext key's length.
+ *
+ * This function can be used to calculate the number of octets that
+ * #fsl_shw_extract_key() will write into the location at @a covered_key.
+ *
+ * If zero is returned at @a length, this means that the key length in
+ * @a key_info is not supported.
+ *
+ * @param wkeyinfo Information about a key to be wrapped.
+ * @param wkeylen Location to store the length of a wrapped
+ * version of the key in @a key_info.
+ */
+#define fsl_shw_sko_calculate_wrapped_size(wkeyinfo, wkeylen) \
+{ \
+ register fsl_shw_sko_t* kp = wkeyinfo; \
+ register uint32_t kl = kp->key_length; \
+ int key_blocks; \
+ int base_size = 35; /* ICV + T' + ALG + LEN + FLAGS */ \
+ \
+ if (kp->flags & FSL_SKO_KEY_SELECT_PF_KEY) { \
+ kl = 21; /* 168-bit 3DES key */ \
+ } \
+ key_blocks = (kl + 7) / 8; \
+ /* Round length up to 3DES block size for CBC mode */ \
+ *(wkeylen) = base_size + 8 * key_blocks; \
+}
+
+/*!
+ * Set some flags in the key object.
+ *
+ * Turns on the flags specified in @a flags. Other flags are untouched.
+ *
+ * @param skobject A variable of type #fsl_shw_sko_t.
+ * @param skflags (One or more) ORed members of #fsl_shw_key_flags_t which
+ * are to be set.
+ */
+#define fsl_shw_sko_set_flags(skobject, skflags) \
+ (skobject)->flags |= (skflags)
+
+
+/**
+ * Clear some flags in the key object.
+ *
+ * Turns off the flags specified in @a flags. Other flags are untouched.
+ *
+ * @param skobject A variable of type #fsl_shw_sko_t.
+ * @param skflags (One or more) ORed members of #fsl_shw_key_flags_t
+ * which are to be reset.
+ */
+#define fsl_shw_sko_clear_flags(skobject, skflags) \
+ (skobject)->flags &= ~(skflags)
+
+/**
+ * Initialize a User Context Object.
+ *
+ * This function must be called before performing any other operation with the
+ * Object. It sets the User Context Object to initial values, and set the size
+ * of the results pool. The mode will be set to a default of
+ * #FSL_UCO_BLOCKING_MODE.
+ *
+ * When using non-blocking operations, this sets the maximum number of
+ * operations which can be outstanding. This number includes the counts of
+ * operations waiting to start, operation(s) being performed, and results which
+ * have not been retrieved.
+ *
+ * Changes to this value are ignored once user registration has completed. It
+ * should be set to 1 if only blocking operations will ever be performed.
+ *
+ * @param ucontext The User Context object to operate on.
+ * @param usize The maximum number of operations which can be
+ * outstanding.
+ */
+#ifdef __KERNEL__
+
+#define fsl_shw_uco_init(ucontext, usize) \
+do { \
+ fsl_shw_uco_t* uco = ucontext; \
+ \
+ (uco)->pool_size = usize; \
+ (uco)->flags = FSL_UCO_BLOCKING_MODE | FSL_UCO_CONTEXT_CHANGED; \
+ (uco)->openfd = -1; \
+ (uco)->callback = NULL; \
+ (uco)->partition = NULL; \
+ (uco)->wrap_key = FSL_SHW_PF_KEY_IIM; \
+} while (0)
+
+#else /* __KERNEL__ */
+
+#define fsl_shw_uco_init(ucontext, usize) \
+do { \
+ fsl_shw_uco_t* uco = ucontext; \
+ \
+ (uco)->pool_size = usize; \
+ (uco)->flags = FSL_UCO_BLOCKING_MODE | FSL_UCO_CONTEXT_CHANGED; \
+ (uco)->openfd = -1; \
+ (uco)->callback = NULL; \
+ (uco)->wrap_key = FSL_SHW_PF_KEY_IIM; \
+} while (0)
+
+#endif /* __KERNEL__ */
+
+
+/**
+ * Set the User Reference for the User Context.
+ *
+ * @param ucontext The User Context object to operate on.
+ * @param uref A value which will be passed back with a result.
+ */
+#define fsl_shw_uco_set_reference(ucontext, uref) \
+do { \
+ fsl_shw_uco_t* uco = ucontext; \
+ \
+ (uco)->user_ref = uref; \
+ (uco)->flags |= FSL_UCO_CONTEXT_CHANGED; \
+} while (0)
+
+
+/**
+ * Set the User Reference for the User Context.
+ *
+ * @param ucontext The User Context object to operate on.
+ * @param ucallback The function the API will invoke when an operation
+ * completes.
+ */
+#define fsl_shw_uco_set_callback(ucontext, ucallback) \
+do { \
+ fsl_shw_uco_t* uco = ucontext; \
+ \
+ (uco)->callback = ucallback; \
+ (uco)->flags |= FSL_UCO_CONTEXT_CHANGED; \
+} while (0)
+
+/**
+ * Set flags in the User Context.
+ *
+ * Turns on the flags specified in @a flags. Other flags are untouched.
+ *
+ * @param ucontext The User Context object to operate on.
+ * @param uflags ORed values from #fsl_shw_user_ctx_flags_t.
+ */
+#define fsl_shw_uco_set_flags(ucontext, uflags) \
+ (ucontext)->flags |= (uflags) | FSL_UCO_CONTEXT_CHANGED
+
+
+/**
+ * Clear flags in the User Context.
+ *
+ * Turns off the flags specified in @a flags. Other flags are untouched.
+ *
+ * @param ucontext The User Context object to operate on.
+ * @param uflags ORed values from #fsl_shw_user_ctx_flags_t.
+ */
+#define fsl_shw_uco_clear_flags(ucontext, uflags) \
+do { \
+ fsl_shw_uco_t* uco = ucontext; \
+ \
+ (uco)->flags &= ~(uflags); \
+ (uco)->flags |= FSL_UCO_CONTEXT_CHANGED; \
+} while (0)
+
+
+/**
+ * Retrieve the reference value from a Result Object.
+ *
+ * @param robject The result object to query.
+ *
+ * @return The reference associated with the request.
+ */
+#define fsl_shw_ro_get_reference(robject) \
+ (robject)->user_ref
+
+
+/**
+ * Retrieve the status code from a Result Object.
+ *
+ * @param robject The result object to query.
+ *
+ * @return The status of the request.
+ */
+#define fsl_shw_ro_get_status(robject) \
+ (robject)->code
+
+
+
+/* REQ-FSL-SHW-PINTFC-API-BASIC-HASH-004 */
+/**
+ * Initialize a Hash Context Object.
+ *
+ * This function must be called before performing any other operation with the
+ * Object. It sets the current message length and hash algorithm in the hash
+ * context object.
+ *
+ * @param hcobject The hash context to operate upon.
+ * @param hcalgorithm The hash algorithm to be used (#FSL_HASH_ALG_MD5,
+ * #FSL_HASH_ALG_SHA256, etc).
+ *
+ */
+#define fsl_shw_hco_init(hcobject, hcalgorithm) \
+do { \
+ (hcobject)->algorithm = hcalgorithm; \
+ (hcobject)->flags = 0; \
+ switch (hcalgorithm) { \
+ case FSL_HASH_ALG_MD5: \
+ (hcobject)->digest_length = 16; \
+ (hcobject)->context_length = 16; \
+ (hcobject)->context_register_length = 24; \
+ break; \
+ case FSL_HASH_ALG_SHA1: \
+ (hcobject)->digest_length = 20; \
+ (hcobject)->context_length = 20; \
+ (hcobject)->context_register_length = 24; \
+ break; \
+ case FSL_HASH_ALG_SHA224: \
+ (hcobject)->digest_length = 28; \
+ (hcobject)->context_length = 32; \
+ (hcobject)->context_register_length = 36; \
+ break; \
+ case FSL_HASH_ALG_SHA256: \
+ (hcobject)->digest_length = 32; \
+ (hcobject)->context_length = 32; \
+ (hcobject)->context_register_length = 36; \
+ break; \
+ default: \
+ /* error ! */ \
+ (hcobject)->digest_length = 1; \
+ (hcobject)->context_length = 1; \
+ (hcobject)->context_register_length = 1; \
+ break; \
+ } \
+} while (0)
+
+
+/* REQ-FSL-SHW-PINTFC-API-BASIC-HASH-001 */
+/**
+ * Get the current hash value and message length from the hash context object.
+ *
+ * The algorithm must have already been specified. See #fsl_shw_hco_init().
+ *
+ * @param hcobject The hash context to query.
+ * @param[out] hccontext Pointer to the location of @a length octets where to
+ * store a copy of the current value of the digest.
+ * @param hcclength Number of octets of hash value to copy.
+ * @param[out] hcmsglen Pointer to the location to store the number of octets
+ * already hashed.
+ */
+#define fsl_shw_hco_get_digest(hcobject, hccontext, hcclength, hcmsglen) \
+do { \
+ memcpy(hccontext, (hcobject)->context, hcclength); \
+ if ((hcobject)->algorithm == FSL_HASH_ALG_SHA224 \
+ || (hcobject)->algorithm == FSL_HASH_ALG_SHA256) { \
+ *(hcmsglen) = (hcobject)->context[8]; \
+ } else { \
+ *(hcmsglen) = (hcobject)->context[5]; \
+ } \
+} while (0)
+
+
+/* REQ-FSL-SHW-PINTFC-API-BASIC-HASH-002 */
+/**
+ * Get the hash algorithm from the hash context object.
+ *
+ * @param hcobject The hash context to query.
+ * @param[out] hcalgorithm Pointer to where the algorithm is to be stored.
+ */
+#define fsl_shw_hco_get_info(hcobject, hcalgorithm) \
+do { \
+ *(hcalgorithm) = (hcobject)->algorithm; \
+} while (0)
+
+
+/* REQ-FSL-SHW-PINTFC-API-BASIC-HASH-003 */
+/* REQ-FSL-SHW-PINTFC-API-BASIC-HASH-004 */
+/**
+ * Set the current hash value and message length in the hash context object.
+ *
+ * The algorithm must have already been specified. See #fsl_shw_hco_init().
+ *
+ * @param hcobject The hash context to operate upon.
+ * @param hccontext Pointer to buffer of appropriate length to copy into
+ * the hash context object.
+ * @param hcmsglen The number of octets of the message which have
+ * already been hashed.
+ *
+ */
+#define fsl_shw_hco_set_digest(hcobject, hccontext, hcmsglen) \
+do { \
+ memcpy((hcobject)->context, hccontext, (hcobject)->context_length); \
+ if (((hcobject)->algorithm == FSL_HASH_ALG_SHA224) \
+ || ((hcobject)->algorithm == FSL_HASH_ALG_SHA256)) { \
+ (hcobject)->context[8] = hcmsglen; \
+ } else { \
+ (hcobject)->context[5] = hcmsglen; \
+ } \
+} while (0)
+
+
+/**
+ * Set flags in a Hash Context Object.
+ *
+ * Turns on the flags specified in @a flags. Other flags are untouched.
+ *
+ * @param hcobject The hash context to be operated on.
+ * @param hcflags The flags to be set in the context. These can be ORed
+ * members of #fsl_shw_hash_ctx_flags_t.
+ */
+#define fsl_shw_hco_set_flags(hcobject, hcflags) \
+ (hcobject)->flags |= (hcflags)
+
+
+/**
+ * Clear flags in a Hash Context Object.
+ *
+ * Turns off the flags specified in @a flags. Other flags are untouched.
+ *
+ * @param hcobject The hash context to be operated on.
+ * @param hcflags The flags to be reset in the context. These can be ORed
+ * members of #fsl_shw_hash_ctx_flags_t.
+ */
+#define fsl_shw_hco_clear_flags(hcobject, hcflags) \
+ (hcobject)->flags &= ~(hcflags)
+
+
+/**
+ * Initialize an HMAC Context Object.
+ *
+ * This function must be called before performing any other operation with the
+ * Object. It sets the current message length and hash algorithm in the HMAC
+ * context object.
+ *
+ * @param hcobject The HMAC context to operate upon.
+ * @param hcalgorithm The hash algorithm to be used (#FSL_HASH_ALG_MD5,
+ * #FSL_HASH_ALG_SHA256, etc).
+ *
+ */
+#define fsl_shw_hmco_init(hcobject, hcalgorithm) \
+ fsl_shw_hco_init(hcobject, hcalgorithm)
+
+
+/**
+ * Set flags in an HMAC Context Object.
+ *
+ * Turns on the flags specified in @a flags. Other flags are untouched.
+ *
+ * @param hcobject The HMAC context to be operated on.
+ * @param hcflags The flags to be set in the context. These can be ORed
+ * members of #fsl_shw_hmac_ctx_flags_t.
+ */
+#define fsl_shw_hmco_set_flags(hcobject, hcflags) \
+ (hcobject)->flags |= (hcflags)
+
+
+/**
+ * Clear flags in an HMAC Context Object.
+ *
+ * Turns off the flags specified in @a flags. Other flags are untouched.
+ *
+ * @param hcobject The HMAC context to be operated on.
+ * @param hcflags The flags to be reset in the context. These can be ORed
+ * members of #fsl_shw_hmac_ctx_flags_t.
+ */
+#define fsl_shw_hmco_clear_flags(hcobject, hcflags) \
+ (hcobject)->flags &= ~(hcflags)
+
+
+/**
+ * Initialize a Symmetric Cipher Context Object.
+ *
+ * This function must be called before performing any other operation with the
+ * Object. This will set the @a mode and @a algorithm and initialize the
+ * Object.
+ *
+ * @param scobject The context object to operate on.
+ * @param scalg The cipher algorithm this context will be used with.
+ * @param scmode #FSL_SYM_MODE_CBC, #FSL_SYM_MODE_ECB, etc.
+ *
+ */
+#define fsl_shw_scco_init(scobject, scalg, scmode) \
+do { \
+ register uint32_t bsb; /* block-size bytes */ \
+ \
+ switch (scalg) { \
+ case FSL_KEY_ALG_AES: \
+ bsb = 16; \
+ break; \
+ case FSL_KEY_ALG_DES: \
+ /* fall through */ \
+ case FSL_KEY_ALG_TDES: \
+ bsb = 8; \
+ break; \
+ case FSL_KEY_ALG_ARC4: \
+ bsb = 259; \
+ break; \
+ case FSL_KEY_ALG_HMAC: \
+ bsb = 1; /* meaningless */ \
+ break; \
+ default: \
+ bsb = 00; \
+ } \
+ (scobject)->block_size_bytes = bsb; \
+ (scobject)->mode = scmode; \
+ (scobject)->flags = 0; \
+} while (0)
+
+
+/**
+ * Set the flags for a Symmetric Cipher Context.
+ *
+ * Turns on the flags specified in @a flags. Other flags are untouched.
+ *
+ * @param scobject The context object to operate on.
+ * @param scflags The flags to reset (one or more values from
+ * #fsl_shw_sym_ctx_flags_t ORed together).
+ *
+ */
+#define fsl_shw_scco_set_flags(scobject, scflags) \
+ (scobject)->flags |= (scflags)
+
+
+/**
+ * Clear some flags in a Symmetric Cipher Context Object.
+ *
+ * Turns off the flags specified in @a flags. Other flags are untouched.
+ *
+ * @param scobject The context object to operate on.
+ * @param scflags The flags to reset (one or more values from
+ * #fsl_shw_sym_ctx_flags_t ORed together).
+ *
+ */
+#define fsl_shw_scco_clear_flags(scobject, scflags) \
+ (scobject)->flags &= ~(scflags)
+
+
+/**
+ * Set the Context (IV) for a Symmetric Cipher Context.
+ *
+ * This is to set the context/IV for #FSL_SYM_MODE_CBC mode, or to set the
+ * context (the S-Box and pointers) for ARC4. The full context size will
+ * be copied.
+ *
+ * @param scobject The context object to operate on.
+ * @param sccontext A pointer to the buffer which contains the context.
+ *
+ */
+#define fsl_shw_scco_set_context(scobject, sccontext) \
+ memcpy((scobject)->context, sccontext, \
+ (scobject)->block_size_bytes)
+
+
+/**
+ * Get the Context for a Symmetric Cipher Context.
+ *
+ * This is to retrieve the context/IV for #FSL_SYM_MODE_CBC mode, or to
+ * retrieve context (the S-Box and pointers) for ARC4. The full context
+ * will be copied.
+ *
+ * @param scobject The context object to operate on.
+ * @param[out] sccontext Pointer to location where context will be stored.
+ */
+#define fsl_shw_scco_get_context(scobject, sccontext) \
+ memcpy(sccontext, (scobject)->context, (scobject)->block_size_bytes)
+
+
+/**
+ * Set the Counter Value for a Symmetric Cipher Context.
+ *
+ * This will set the Counter Value for CTR mode.
+ *
+ * @param scobject The context object to operate on.
+ * @param sccounter The starting counter value. The number of octets.
+ * copied will be the block size for the algorithm.
+ * @param scmodulus The modulus for controlling the incrementing of the
+ * counter.
+ *
+ */
+#define fsl_shw_scco_set_counter_info(scobject, sccounter, scmodulus) \
+do { \
+ if ((sccounter) != NULL) { \
+ memcpy((scobject)->context, sccounter, \
+ (scobject)->block_size_bytes); \
+ } \
+ (scobject)->modulus_exp = scmodulus; \
+} while (0)
+
+
+/**
+ * Get the Counter Value for a Symmetric Cipher Context.
+ *
+ * This will retrieve the Counter Value is for CTR mode.
+ *
+ * @param scobject The context object to query.
+ * @param[out] sccounter Pointer to location to store the current counter
+ * value. The number of octets copied will be the
+ * block size for the algorithm.
+ * @param[out] scmodulus Pointer to location to store the modulus.
+ *
+ */
+#define fsl_shw_scco_get_counter_info(scobject, sccounter, scmodulus) \
+do { \
+ if ((sccounter) != NULL) { \
+ memcpy(sccounter, (scobject)->context, \
+ (scobject)->block_size_bytes); \
+ } \
+ if ((scmodulus) != NULL) { \
+ *(scmodulus) = (scobject)->modulus_exp; \
+ } \
+} while (0)
+
+
+/**
+ * Initialize a Authentication-Cipher Context.
+ *
+ * @param acobject Pointer to object to operate on.
+ * @param acmode The mode for this object (only #FSL_ACC_MODE_CCM
+ * supported).
+ */
+#define fsl_shw_acco_init(acobject, acmode) \
+do { \
+ (acobject)->flags = 0; \
+ (acobject)->mode = (acmode); \
+} while (0)
+
+
+/**
+ * Set the flags for a Authentication-Cipher Context.
+ *
+ * Turns on the flags specified in @a flags. Other flags are untouched.
+ *
+ * @param acobject Pointer to object to operate on.
+ * @param acflags The flags to set (one or more from
+ * #fsl_shw_auth_ctx_flags_t ORed together).
+ *
+ */
+#define fsl_shw_acco_set_flags(acobject, acflags) \
+ (acobject)->flags |= (acflags)
+
+
+/**
+ * Clear some flags in a Authentication-Cipher Context Object.
+ *
+ * Turns off the flags specified in @a flags. Other flags are untouched.
+ *
+ * @param acobject Pointer to object to operate on.
+ * @param acflags The flags to reset (one or more from
+ * #fsl_shw_auth_ctx_flags_t ORed together).
+ *
+ */
+#define fsl_shw_acco_clear_flags(acobject, acflags) \
+ (acobject)->flags &= ~(acflags)
+
+
+/**
+ * Set up the Authentication-Cipher Object for CCM mode.
+ *
+ * This will set the @a auth_object for CCM mode and save the @a ctr,
+ * and @a mac_length. This function can be called instead of
+ * #fsl_shw_acco_init().
+ *
+ * The paramater @a ctr is Counter Block 0, (counter value 0), which is for the
+ * MAC.
+ *
+ * @param acobject Pointer to object to operate on.
+ * @param acalg Cipher algorithm. Only AES is supported.
+ * @param accounter The initial counter value.
+ * @param acmaclen The number of octets used for the MAC. Valid values are
+ * 4, 6, 8, 10, 12, 14, and 16.
+ */
+/* Do we need to stash the +1 value of the CTR somewhere? */
+#define fsl_shw_acco_set_ccm(acobject, acalg, accounter, acmaclen) \
+ do { \
+ (acobject)->flags = 0; \
+ (acobject)->mode = FSL_ACC_MODE_CCM; \
+ (acobject)->auth_info.CCM_ctx_info.block_size_bytes = 16; \
+ (acobject)->cipher_ctx_info.block_size_bytes = 16; \
+ (acobject)->mac_length = acmaclen; \
+ fsl_shw_scco_set_counter_info(&(acobject)->cipher_ctx_info, accounter, \
+ FSL_CTR_MOD_128); \
+} while (0)
+
+
+/**
+ * Format the First Block (IV) & Initial Counter Value per NIST CCM.
+ *
+ * This function will also set the IV and CTR values per Appendix A of NIST
+ * Special Publication 800-38C (May 2004). It will also perform the
+ * #fsl_shw_acco_set_ccm() operation with information derived from this set of
+ * parameters.
+ *
+ * Note this function assumes the algorithm is AES. It initializes the
+ * @a auth_object by setting the mode to #FSL_ACC_MODE_CCM and setting the
+ * flags to be #FSL_ACCO_NIST_CCM.
+ *
+ * @param acobject Pointer to object to operate on.
+ * @param act The number of octets used for the MAC. Valid values are
+ * 4, 6, 8, 10, 12, 14, and 16.
+ * @param acad Number of octets of Associated Data (may be zero).
+ * @param acq A value for the size of the length of @a q field. Valid
+ * values are 1-8.
+ * @param acN The Nonce (packet number or other changing value). Must
+ * be (15 - @a q_length) octets long.
+ * @param acQ The value of Q (size of the payload in octets).
+ *
+ */
+#define fsl_shw_ccm_nist_format_ctr_and_iv(acobject, act, acad, acq, acN, acQ)\
+ do { \
+ uint64_t Q = acQ; \
+ uint8_t bflag = ((acad)?0x40:0) | ((((act)-2)/2)<<3) | ((acq)-1); \
+ unsigned i; \
+ uint8_t* qptr = (acobject)->auth_info.CCM_ctx_info.context + 15; \
+ (acobject)->auth_info.CCM_ctx_info.block_size_bytes = 16; \
+ (acobject)->cipher_ctx_info.block_size_bytes = 16; \
+ (acobject)->mode = FSL_ACC_MODE_CCM; \
+ (acobject)->flags = FSL_ACCO_NIST_CCM; \
+ \
+ /* Store away the MAC length (after calculating actual value */ \
+ (acobject)->mac_length = (act); \
+ /* Set Flag field in Block 0 */ \
+ *((acobject)->auth_info.CCM_ctx_info.context) = bflag; \
+ /* Set Nonce field in Block 0 */ \
+ memcpy((acobject)->auth_info.CCM_ctx_info.context+1, acN, \
+ 15-(acq)); \
+ /* Set Flag field in ctr */ \
+ *((acobject)->cipher_ctx_info.context) = (acq)-1; \
+ /* Update the Q (payload length) field of Block0 */ \
+ (acobject)->q_length = acq; \
+ for (i = 0; i < (acq); i++) { \
+ *qptr-- = Q & 0xFF; \
+ Q >>= 8; \
+ } \
+ /* Set the Nonce field of the ctr */ \
+ memcpy((acobject)->cipher_ctx_info.context+1, acN, 15-(acq)); \
+ /* Clear the block counter field of the ctr */ \
+ memset((acobject)->cipher_ctx_info.context+16-(acq), 0, (acq)+1); \
+ } while (0)
+
+
+/**
+ * Update the First Block (IV) & Initial Counter Value per NIST CCM.
+ *
+ * This function will set the IV and CTR values per Appendix A of NIST Special
+ * Publication 800-38C (May 2004).
+ *
+ * Note this function assumes that #fsl_shw_ccm_nist_format_ctr_and_iv() has
+ * previously been called on the @a auth_object.
+ *
+ * @param acobject Pointer to object to operate on.
+ * @param acN The Nonce (packet number or other changing value). Must
+ * be (15 - @a q_length) octets long.
+ * @param acQ The value of Q (size of the payload in octets).
+ *
+ */
+/* Do we need to stash the +1 value of the CTR somewhere? */
+#define fsl_shw_ccm_nist_update_ctr_and_iv(acobject, acN, acQ) \
+ do { \
+ uint64_t Q = acQ; \
+ unsigned i; \
+ uint8_t* qptr = (acobject)->auth_info.CCM_ctx_info.context + 15; \
+ \
+ /* Update the Nonce field field of Block0 */ \
+ memcpy((acobject)->auth_info.CCM_ctx_info.context+1, acN, \
+ 15 - (acobject)->q_length); \
+ /* Update the Q (payload length) field of Block0 */ \
+ for (i = 0; i < (acobject)->q_length; i++) { \
+ *qptr-- = Q & 0xFF; \
+ Q >>= 8; \
+ } \
+ /* Update the Nonce field of the ctr */ \
+ memcpy((acobject)->cipher_ctx_info.context+1, acN, \
+ 15 - (acobject)->q_length); \
+ } while (0)
+
+
+/******************************************************************************
+ * Library functions
+ *****************************************************************************/
+/* REQ-FSL-SHW-PINTFC-COA-UCO */
+/* REQ-FSLSHW-PINTFC-API-GEN-003 */
+/**
+ * Determine the hardware security capabilities of this platform.
+ *
+ * Though a user context object is passed into this function, it will always
+ * act in a non-blocking manner.
+ *
+ * @param user_ctx The user context which will be used for the query.
+ *
+ * @return A pointer to the capabilities object.
+ */
+extern fsl_shw_pco_t* fsl_shw_get_capabilities(fsl_shw_uco_t* user_ctx);
+
+
+/* REQ-FSL-SHW-PINTFC-COA-UCO */
+/* REQ-FSLSHW-PINTFC-API-GEN-004 */
+/**
+ * Create an association between the the user and the provider of the API.
+ *
+ * @param user_ctx The user context which will be used for this association.
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+extern fsl_shw_return_t fsl_shw_register_user(fsl_shw_uco_t* user_ctx);
+
+
+/* REQ-FSL-SHW-PINTFC-COA-UCO */
+/* REQ-FSLSHW-PINTFC-API-GEN-005 */
+/**
+ * Destroy the association between the the user and the provider of the API.
+ *
+ * @param user_ctx The user context which is no longer needed.
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+extern fsl_shw_return_t fsl_shw_deregister_user(fsl_shw_uco_t* user_ctx);
+
+
+/* REQ-FSL-SHW-PINTFC-COA-UCO */
+/* REQ-FSLSHW-PINTFC-API-GEN-006 */
+/**
+ * Retrieve results from earlier operations.
+ *
+ * @param user_ctx The user's context.
+ * @param result_size The number of array elements of @a results.
+ * @param[in,out] results Pointer to first of the (array of) locations to
+ * store results.
+ * @param[out] result_count Pointer to store the number of results which
+ * were returned.
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+extern fsl_shw_return_t fsl_shw_get_results(fsl_shw_uco_t* user_ctx,
+ unsigned result_size,
+ fsl_shw_result_t results[],
+ unsigned* result_count);
+
+/**
+ * Place a key into a protected location for use only by cryptographic
+ * algorithms.
+ *
+ * This only needs to be used to a) unwrap a key, or b) set up a key which
+ * could be wrapped with a later call to #fsl_shw_extract_key(). Normal
+ * cleartext keys can simply be placed into #fsl_shw_sko_t key objects with
+ * #fsl_shw_sko_set_key() and used directly.
+ *
+ * The maximum key size supported for wrapped/unwrapped keys is 32 octets.
+ * (This is the maximum reasonable key length on Sahara - 32 octets for an HMAC
+ * key based on SHA-256.) The key size is determined by the @a key_info. The
+ * expected length of @a key can be determined by
+ * #fsl_shw_sko_calculate_wrapped_size()
+ *
+ * The protected key will not be available for use until this operation
+ * successfully completes.
+ *
+ * This feature is not available for all platforms, nor for all algorithms and
+ * modes.
+ *
+ * @param user_ctx A user context from #fsl_shw_register_user().
+ * @param[in,out] key_info The information about the key to be which will
+ * be established. In the create case, the key
+ * length must be set.
+ * @param establish_type How @a key will be interpreted to establish a
+ * key for use.
+ * @param key If @a establish_type is #FSL_KEY_WRAP_UNWRAP,
+ * this is the location of a wrapped key. If
+ * @a establish_type is #FSL_KEY_WRAP_CREATE, this
+ * parameter can be @a NULL. If @a establish_type
+ * is #FSL_KEY_WRAP_ACCEPT, this is the location
+ * of a plaintext key.
+ */
+extern fsl_shw_return_t fsl_shw_establish_key(
+ fsl_shw_uco_t* user_ctx,
+ fsl_shw_sko_t* key_info,
+ fsl_shw_key_wrap_t establish_type,
+ const uint8_t* key);
+
+
+/**
+ * Wrap a key and retrieve the wrapped value.
+ *
+ * A wrapped key is a key that has been cryptographically obscured. It is
+ * only able to be used with #fsl_shw_establish_key().
+ *
+ * This function will also release the key (see #fsl_shw_release_key()) so
+ * that it must be re-established before reuse.
+ *
+ * This feature is not available for all platforms, nor for all algorithms and
+ * modes.
+ *
+ * @param user_ctx A user context from #fsl_shw_register_user().
+ * @param key_info The information about the key to be deleted.
+ * @param[out] covered_key The location to store the wrapped key.
+ * (This size is based upon the maximum key size
+ * of 32 octets).
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+extern fsl_shw_return_t fsl_shw_extract_key(fsl_shw_uco_t* user_ctx,
+ fsl_shw_sko_t* key_info,
+ uint8_t* covered_key);
+
+/*!
+ * Read the key value from a key object.
+ *
+ * Only a key marked as a software key (#FSL_SKO_KEY_SW_KEY) can be read with
+ * this call. It has no effect on the status of the key store.
+ *
+ * @param user_ctx A user context from #fsl_shw_register_user().
+ * @param key_info The referenced key.
+ * @param[out] key The location to store the key value.
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+extern fsl_shw_return_t fsl_shw_read_key(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info,
+ uint8_t * key);
+
+/**
+ * De-establish a key so that it can no longer be accessed.
+ *
+ * The key will need to be re-established before it can again be used.
+ *
+ * This feature is not available for all platforms, nor for all algorithms and
+ * modes.
+ *
+ * @param user_ctx A user context from #fsl_shw_register_user().
+ * @param key_info The information about the key to be deleted.
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+extern fsl_shw_return_t fsl_shw_release_key(
+ fsl_shw_uco_t* user_ctx,
+ fsl_shw_sko_t* key_info);
+
+
+/*
+ * In userspace, partition assignments will be tracked using the user context.
+ * In kernel mode, partition assignments are based on address only.
+ */
+
+/**
+ * Allocate a block of secure memory
+ *
+ * @param user_ctx User context
+ * @param size Memory size (octets). Note: currently only
+ * supports only single-partition sized blocks.
+ * @param UMID User Mode ID to use when registering the
+ * partition.
+ * @param permissions Permissions to initialize the partition with.
+ * Can be made by ORing flags from the
+ * #fsl_shw_permission_t.
+ *
+ * @return Address of the allocated memory. NULL if the
+ * call was not successful.
+ */
+extern void *fsl_shw_smalloc(fsl_shw_uco_t* user_ctx,
+ uint32_t size,
+ const uint8_t* UMID,
+ uint32_t permissions);
+
+
+/**
+ * Free a block of secure memory that was allocated with #fsl_shw_smalloc
+ *
+ * @param user_ctx User context
+ * @param address Address of the block of secure memory to be
+ * released.
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+extern fsl_shw_return_t fsl_shw_sfree(
+ fsl_shw_uco_t* user_ctx,
+ void* address);
+
+
+/**
+ * Check the status of a block of a secure memory that was allocated with
+ * #fsl_shw_smalloc
+ *
+ * @param user_ctx User context
+ * @param address Address of the block of secure memory to be
+ * released.
+ * @param status Status of the partition, of type
+ * #fsl_partition_status_t
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+extern fsl_shw_return_t fsl_shw_sstatus(fsl_shw_uco_t* user_ctx,
+ void* address,
+ fsl_shw_partition_status_t* status);
+
+
+/**
+ * Diminish the permissions of a block of secure memory. Note that permissions
+ * can only be revoked.
+ *
+ * @param user_ctx User context
+ * @param address Base address of the secure memory to work with
+ * @param permissions Permissions to initialize the partition with.
+ * Can be made by ORing flags from the
+ * #fsl_shw_permission_t.
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+extern fsl_shw_return_t fsl_shw_diminish_perms(
+ fsl_shw_uco_t* user_ctx,
+ void* address,
+ uint32_t permissions);
+
+extern fsl_shw_return_t do_scc_engage_partition(
+ fsl_shw_uco_t* user_ctx,
+ void* address,
+ const uint8_t* UMID,
+ uint32_t permissions);
+
+extern fsl_shw_return_t do_system_keystore_slot_alloc(
+ fsl_shw_uco_t* user_ctx,
+ uint32_t key_lenth,
+ uint64_t ownerid,
+ uint32_t *slot);
+
+extern fsl_shw_return_t do_system_keystore_slot_dealloc(
+ fsl_shw_uco_t* user_ctx,
+ uint64_t ownerid,
+ uint32_t slot);
+
+extern fsl_shw_return_t do_system_keystore_slot_load(
+ fsl_shw_uco_t* user_ctx,
+ uint64_t ownerid,
+ uint32_t slot,
+ const uint8_t *key,
+ uint32_t key_length);
+
+extern fsl_shw_return_t do_system_keystore_slot_encrypt(
+ fsl_shw_uco_t* user_ctx,
+ uint64_t ownerid,
+ uint32_t slot,
+ uint32_t key_length,
+ uint8_t* black_data);
+
+extern fsl_shw_return_t do_system_keystore_slot_decrypt(
+ fsl_shw_uco_t* user_ctx,
+ uint64_t ownerid,
+ uint32_t slot,
+ uint32_t key_length,
+ const uint8_t* black_data);
+
+
+/* REQ-FSL-SHW-PINTFC-COA-UCO */
+/* REQ-FSL-SHW-PINTFC-COA-SKO */
+/* REQ-FSL-SHW-PINTFC-COA-SCCO */
+/* REQ-FSLSHW-PINTFC-API-BASIC-SYM-001 */
+/* PINTFC-API-BASIC-SYM-ARC4-001 */
+/* PINTFC-API-BASIC-SYM-ARC4-002 */
+/**
+ * Encrypt a stream of data with a symmetric-key algorithm.
+ *
+ * In ARC4, and also in #FSL_SYM_MODE_CBC and #FSL_SYM_MODE_CTR modes, the
+ * flags of the @a sym_ctx object will control part of the operation of this
+ * function. The #FSL_SYM_CTX_INIT flag means that there is no context info in
+ * the object. The #FSL_SYM_CTX_LOAD means to use information in the
+ * @a sym_ctx at the start of the operation, and the #FSL_SYM_CTX_SAVE flag
+ * means to update the object's context information after the operation has
+ * been performed.
+ *
+ * All of the data for an operation can be run through at once using the
+ * #FSL_SYM_CTX_INIT or #FSL_SYM_CTX_LOAD flags, as appropriate, and then using
+ * a @a length for the whole of the data.
+ *
+ * If a #FSL_SYM_CTX_SAVE flag were added, an additional call to the function
+ * would "pick up" where the previous call left off, allowing the user to
+ * perform the larger function in smaller steps.
+ *
+ * In #FSL_SYM_MODE_CBC and #FSL_SYM_MODE_ECB modes, the @a length must always
+ * be a multiple of the block size for the algorithm being used. For proper
+ * operation in #FSL_SYM_MODE_CTR mode, the @a length must be a multiple of the
+ * block size until the last operation on the total octet stream.
+ *
+ * Some users of ARC4 may want to compute the context (S-Box and pointers) from
+ * the key before any data is available. This may be done by running this
+ * function with a @a length of zero, with the init & save flags flags on in
+ * the @a sym_ctx. Subsequent operations would then run as normal with the
+ * load and save flags. Note that they key object is still required.
+ *
+ * @param user_ctx A user context from #fsl_shw_register_user().
+ * @param key_info Key and algorithm being used for this operation.
+ * @param[in,out] sym_ctx Info on cipher mode, state of the cipher.
+ * @param length Length, in octets, of the pt (and ct).
+ * @param pt pointer to plaintext to be encrypted.
+ * @param[out] ct pointer to where to store the resulting ciphertext.
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ *
+ */
+extern fsl_shw_return_t fsl_shw_symmetric_encrypt(
+ fsl_shw_uco_t* user_ctx,
+ fsl_shw_sko_t* key_info,
+ fsl_shw_scco_t* sym_ctx,
+ uint32_t length,
+ const uint8_t* pt,
+ uint8_t* ct);
+
+
+/* REQ-FSL-SHW-PINTFC-COA-UCO */
+/* REQ-FSL-SHW-PINTFC-COA-SKO */
+/* REQ-FSL-SHW-PINTFC-COA-SCCO */
+/* PINTFC-API-BASIC-SYM-002 */
+/* PINTFC-API-BASIC-SYM-ARC4-001 */
+/* PINTFC-API-BASIC-SYM-ARC4-002 */
+/**
+ * Decrypt a stream of data with a symmetric-key algorithm.
+ *
+ * In ARC4, and also in #FSL_SYM_MODE_CBC and #FSL_SYM_MODE_CTR modes, the
+ * flags of the @a sym_ctx object will control part of the operation of this
+ * function. The #FSL_SYM_CTX_INIT flag means that there is no context info in
+ * the object. The #FSL_SYM_CTX_LOAD means to use information in the
+ * @a sym_ctx at the start of the operation, and the #FSL_SYM_CTX_SAVE flag
+ * means to update the object's context information after the operation has
+ * been performed.
+ *
+ * All of the data for an operation can be run through at once using the
+ * #FSL_SYM_CTX_INIT or #FSL_SYM_CTX_LOAD flags, as appropriate, and then using
+ * a @a length for the whole of the data.
+ *
+ * If a #FSL_SYM_CTX_SAVE flag were added, an additional call to the function
+ * would "pick up" where the previous call left off, allowing the user to
+ * perform the larger function in smaller steps.
+ *
+ * In #FSL_SYM_MODE_CBC and #FSL_SYM_MODE_ECB modes, the @a length must always
+ * be a multiple of the block size for the algorithm being used. For proper
+ * operation in #FSL_SYM_MODE_CTR mode, the @a length must be a multiple of the
+ * block size until the last operation on the total octet stream.
+ *
+ * Some users of ARC4 may want to compute the context (S-Box and pointers) from
+ * the key before any data is available. This may be done by running this
+ * function with a @a length of zero, with the #FSL_SYM_CTX_INIT &
+ * #FSL_SYM_CTX_SAVE flags on in the @a sym_ctx. Subsequent operations would
+ * then run as normal with the load & save flags. Note that they key object is
+ * still required.
+ *
+ * @param user_ctx A user context from #fsl_shw_register_user().
+ * @param key_info The key and algorithm being used in this operation.
+ * @param[in,out] sym_ctx Info on cipher mode, state of the cipher.
+ * @param length Length, in octets, of the ct (and pt).
+ * @param ct pointer to ciphertext to be decrypted.
+ * @param[out] pt pointer to where to store the resulting plaintext.
+ *
+ * @return A return code of type #fsl_shw_return_t
+ *
+ */
+extern fsl_shw_return_t fsl_shw_symmetric_decrypt(
+ fsl_shw_uco_t* user_ctx,
+ fsl_shw_sko_t* key_info,
+ fsl_shw_scco_t* sym_ctx,
+ uint32_t length,
+ const uint8_t* ct,
+ uint8_t* pt);
+
+/* REQ-FSL-SHW-PINTFC-COA-UCO */
+/* REQ-FSL-SHW-PINTFC-COA-HCO */
+/* REQ-FSLSHW-PINTFC-API-BASIC-HASH-005 */
+/**
+ * Hash a stream of data with a cryptographic hash algorithm.
+ *
+ * The flags in the @a hash_ctx control the operation of this function.
+ *
+ * Hashing functions work on 64 octets of message at a time. Therefore, when
+ * any partial hashing of a long message is performed, the message @a length of
+ * each segment must be a multiple of 64. When ready to
+ * #FSL_HASH_FLAGS_FINALIZE the hash, the @a length may be any value.
+ *
+ * With the #FSL_HASH_FLAGS_INIT and #FSL_HASH_FLAGS_FINALIZE flags on, a
+ * one-shot complete hash, including padding, will be performed. The @a length
+ * may be any value.
+ *
+ * The first octets of a data stream can be hashed by setting the
+ * #FSL_HASH_FLAGS_INIT and #FSL_HASH_FLAGS_SAVE flags. The @a length must be
+ * a multiple of 64.
+ *
+ * The flag #FSL_HASH_FLAGS_LOAD is used to load a context previously saved by
+ * #FSL_HASH_FLAGS_SAVE. The two in combination will allow a (multiple-of-64
+ * octets) 'middle sequence' of the data stream to be hashed with the
+ * beginning. The @a length must again be a multiple of 64.
+ *
+ * Since the flag #FSL_HASH_FLAGS_LOAD is used to load a context previously
+ * saved by #FSL_HASH_FLAGS_SAVE, the #FSL_HASH_FLAGS_LOAD and
+ * #FSL_HASH_FLAGS_FINALIZE flags, used together, can be used to finish the
+ * stream. The @a length may be any value.
+ *
+ * If the user program wants to do the padding for the hash, it can leave off
+ * the #FSL_HASH_FLAGS_FINALIZE flag. The @a length must then be a multiple of
+ * 64 octets.
+ *
+ * @param user_ctx A user context from #fsl_shw_register_user().
+ * @param[in,out] hash_ctx Hashing algorithm and state of the cipher.
+ * @param msg Pointer to the data to be hashed.
+ * @param length Length, in octets, of the @a msg.
+ * @param[out] result If not null, pointer to where to store the hash
+ * digest.
+ * @param result_len Number of octets to store in @a result.
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+extern fsl_shw_return_t fsl_shw_hash(
+ fsl_shw_uco_t* user_ctx,
+ fsl_shw_hco_t* hash_ctx,
+ const uint8_t* msg,
+ uint32_t length,
+ uint8_t* result,
+ uint32_t result_len);
+
+
+/* REQ-FSL-SHW-PINTFC-COA-UCO */
+/* REQ-FSL-SHW-PINTFC-API-BASIC-HMAC-001 */
+/**
+ * Precompute the Key hashes for an HMAC operation.
+ *
+ * This function may be used to calculate the inner and outer precomputes,
+ * which are the hash contexts resulting from hashing the XORed key for the
+ * 'inner hash' and the 'outer hash', respectively, of the HMAC function.
+ *
+ * After execution of this function, the @a hmac_ctx will contain the
+ * precomputed inner and outer contexts, so that they may be used by
+ * #fsl_shw_hmac(). The flags of @a hmac_ctx will be updated with
+ * #FSL_HMAC_FLAGS_PRECOMPUTES_PRESENT to mark their presence. In addtion, the
+ * #FSL_HMAC_FLAGS_INIT flag will be set.
+ *
+ * @param user_ctx A user context from #fsl_shw_register_user().
+ * @param key_info The key being used in this operation. Key must be
+ * 1 to 64 octets long.
+ * @param[in,out] hmac_ctx The context which controls, by its flags and
+ * algorithm, the operation of this function.
+ * @return A return code of type #fsl_shw_return_t.
+ */
+extern fsl_shw_return_t fsl_shw_hmac_precompute(
+ fsl_shw_uco_t* user_ctx,
+ fsl_shw_sko_t* key_info,
+ fsl_shw_hmco_t* hmac_ctx);
+
+
+/* REQ-FSL-SHW-PINTFC-COA-UCO */
+/* REQ-FSLSHW-PINTFC-API-BASIC-HMAC-002 */
+/**
+ * Continue, finalize, or one-shot an HMAC operation.
+ *
+ * There are a number of ways to use this function. The flags in the
+ * @a hmac_ctx object will determine what operations occur.
+ *
+ * If #FSL_HMAC_FLAGS_INIT is set, then the hash will be started either from
+ * the @a key_info, or from the precomputed inner hash value in the
+ * @a hmac_ctx, depending on the value of #FSL_HMAC_FLAGS_PRECOMPUTES_PRESENT.
+ *
+ * If, instead, #FSL_HMAC_FLAGS_LOAD is set, then the hash will be continued
+ * from the ongoing inner hash computation in the @a hmac_ctx.
+ *
+ * If #FSL_HMAC_FLAGS_FINALIZE are set, then the @a msg will be padded, hashed,
+ * the outer hash will be performed, and the @a result will be generated.
+ *
+ * If the #FSL_HMAC_FLAGS_SAVE flag is set, then the (ongoing or final) digest
+ * value will be stored in the ongoing inner hash computation field of the @a
+ * hmac_ctx.
+ *
+ * @param user_ctx A user context from #fsl_shw_register_user().
+ * @param key_info If #FSL_HMAC_FLAGS_INIT is set in the @a hmac_ctx,
+ * this is the key being used in this operation, and the
+ * IPAD. If #FSL_HMAC_FLAGS_INIT is set in the @a
+ * hmac_ctx and @a key_info is NULL, then
+ * #fsl_shw_hmac_precompute() has been used to populate
+ * the @a inner_precompute and @a outer_precompute
+ * contexts. If #FSL_HMAC_FLAGS_INIT is not set, this
+ * parameter is ignored.
+
+ * @param[in,out] hmac_ctx The context which controls, by its flags and
+ * algorithm, the operation of this function.
+ * @param msg Pointer to the message to be hashed.
+ * @param length Length, in octets, of the @a msg.
+ * @param[out] result Pointer, of @a result_len octets, to where to
+ * store the HMAC.
+ * @param result_len Length of @a result buffer.
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+extern fsl_shw_return_t fsl_shw_hmac(
+ fsl_shw_uco_t* user_ctx,
+ fsl_shw_sko_t* key_info,
+ fsl_shw_hmco_t* hmac_ctx,
+ const uint8_t* msg,
+ uint32_t length,
+ uint8_t* result,
+ uint32_t result_len);
+
+
+/* REQ-FSL-SHW-PINTFC-COA-UCO */
+/* REQ-FSLSHW-PINTFC-API-BASIC-RNG-002 */
+/**
+ * Get random data.
+ *
+ * @param user_ctx A user context from #fsl_shw_register_user().
+ * @param length The number of octets of @a data being requested.
+ * @param[out] data A pointer to a location of @a length octets to where
+ * random data will be returned.
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+extern fsl_shw_return_t fsl_shw_get_random(
+ fsl_shw_uco_t* user_ctx,
+ uint32_t length,
+ uint8_t* data);
+
+
+/* REQ-FSL-SHW-PINTFC-COA-UCO */
+/* REQ-FSLSHW-PINTFC-API-BASIC-RNG-003 */
+/**
+ * Add entropy to random number generator.
+ *
+ * @param user_ctx A user context from #fsl_shw_register_user().
+ * @param length Number of bytes at @a data.
+ * @param data Entropy to add to random number generator.
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+extern fsl_shw_return_t fsl_shw_add_entropy(
+ fsl_shw_uco_t* user_ctx,
+ uint32_t length,
+ uint8_t* data);
+
+/* REQ-FSL-SHW-PINTFC-COA-UCO */
+/* REQ-FSL-SHW-PINTFC-COA-SKO */
+/**
+ * Perform Generation-Encryption by doing a Cipher and a Hash.
+ *
+ * Generate the authentication value @a auth_value as well as encrypt the @a
+ * payload into @a ct (the ciphertext). This is a one-shot function, so all of
+ * the @a auth_data and the total message @a payload must passed in one call.
+ * This also means that the flags in the @a auth_ctx must be #FSL_ACCO_CTX_INIT
+ * and #FSL_ACCO_CTX_FINALIZE.
+ *
+ * @param user_ctx A user context from #fsl_shw_register_user().
+ * @param auth_ctx Controlling object for Authenticate-decrypt.
+ * @param cipher_key_info The key being used for the cipher part of this
+ * operation. In CCM mode, this key is used for
+ * both parts.
+ * @param auth_key_info The key being used for the authentication part
+ * of this operation. In CCM mode, this key is
+ * ignored and may be NULL.
+ * @param auth_data_length Length, in octets, of @a auth_data.
+ * @param auth_data Data to be authenticated but not encrypted.
+ * @param payload_length Length, in octets, of @a payload.
+ * @param payload Pointer to the plaintext to be encrypted.
+ * @param[out] ct Pointer to the where the encrypted @a payload
+ * will be stored. Must be @a payload_length
+ * octets long.
+ * @param[out] auth_value Pointer to where the generated authentication
+ * field will be stored. Must be as many octets as
+ * indicated by MAC length in the @a function_ctx.
+ * @return A return code of type #fsl_shw_return_t.
+ */
+extern fsl_shw_return_t fsl_shw_gen_encrypt(
+ fsl_shw_uco_t* user_ctx,
+ fsl_shw_acco_t* auth_ctx,
+ fsl_shw_sko_t* cipher_key_info,
+ fsl_shw_sko_t* auth_key_info,
+ uint32_t auth_data_length,
+ const uint8_t* auth_data,
+ uint32_t payload_length,
+ const uint8_t* payload,
+ uint8_t* ct,
+ uint8_t* auth_value);
+
+/* REQ-FSL-SHW-PINTFC-COA-UCO */
+/* REQ-FSL-SHW-PINTFC-COA-SKO */
+/**
+ * Perform Authentication-Decryption in Cipher + Hash.
+ *
+ * This function will perform a one-shot decryption of a data stream as well as
+ * authenticate the authentication value. This is a one-shot function, so all
+ * of the @a auth_data and the total message @a payload must passed in one
+ * call. This also means that the flags in the @a auth_ctx must be
+ * #FSL_ACCO_CTX_INIT and #FSL_ACCO_CTX_FINALIZE.
+ *
+ * @param user_ctx A user context from #fsl_shw_register_user().
+ * @param auth_ctx Controlling object for Authenticate-decrypt.
+ * @param cipher_key_info The key being used for the cipher part of this
+ * operation. In CCM mode, this key is used for
+ * both parts.
+ * @param auth_key_info The key being used for the authentication part
+ * of this operation. In CCM mode, this key is
+ * ignored and may be NULL.
+ * @param auth_data_length Length, in octets, of @a auth_data.
+ * @param auth_data Data to be authenticated but not decrypted.
+ * @param payload_length Length, in octets, of @a ct and @a pt.
+ * @param ct Pointer to the encrypted input stream.
+ * @param auth_value The (encrypted) authentication value which will
+ * be authenticated. This is the same data as the
+ * (output) @a auth_value argument to
+ * #fsl_shw_gen_encrypt().
+ * @param[out] payload Pointer to where the plaintext resulting from
+ * the decryption will be stored.
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+extern fsl_shw_return_t fsl_shw_auth_decrypt(
+ fsl_shw_uco_t* user_ctx,
+ fsl_shw_acco_t* auth_ctx,
+ fsl_shw_sko_t* cipher_key_info,
+ fsl_shw_sko_t* auth_key_info,
+ uint32_t auth_data_length,
+ const uint8_t* auth_data,
+ uint32_t payload_length,
+ const uint8_t* ct,
+ const uint8_t* auth_value,
+ uint8_t* payload);
+
+/*!
+ * Cause the hardware to create a new random key for secure memory use.
+ *
+ * Have the hardware use the secure hardware random number generator to load a
+ * new secret key into the hardware random key register. It will not be made
+ * active without a call to #fsl_shw_select_pf_key().
+ *
+ * @param user_ctx A user context from #fsl_shw_register_user().
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+#ifdef __KERNEL__
+
+extern fsl_shw_return_t fsl_shw_gen_random_pf_key(fsl_shw_uco_t * user_ctx);
+
+#else
+
+#define fsl_shw_gen_random_pf_key(user_ctx) FSL_RETURN_NO_RESOURCE_S
+
+#endif /* __KERNEL__ */
+
+/*!
+ * Retrieve the detected tamper event.
+ *
+ * Note that if more than one event was detected, this routine will only ever
+ * return one of them.
+ *
+ * @param[in] user_ctx A user context from #fsl_shw_register_user().
+ * @param[out] tamperp Location to store the tamper information.
+ * @param[out] timestampp Locate to store timestamp from hardwhare when
+ * an event was detected.
+ *
+ *
+ * @return A return code of type #fsl_shw_return_t (for instance, if the platform
+ * is not in a fail state.
+ */
+#ifdef __KERNEL__
+
+extern fsl_shw_return_t fsl_shw_read_tamper_event(fsl_shw_uco_t * user_ctx,
+ fsl_shw_tamper_t * tamperp,
+ uint64_t * timestampp);
+#else
+
+#define fsl_shw_read_tamper_event(user_ctx,tamperp,timestampp) \
+ FSL_RETURN_NO_RESOURCE_S
+
+#endif /* __KERNEL__ */
+
+/*****************************************************************************
+ *
+ * Functions internal to SHW driver.
+ *
+*****************************************************************************/
+
+fsl_shw_return_t
+do_scc_encrypt_region(fsl_shw_uco_t* user_ctx,
+ void* partition_base, uint32_t offset_bytes,
+ uint32_t byte_count, uint8_t* black_data,
+ uint32_t* IV, fsl_shw_cypher_mode_t cypher_mode);
+
+fsl_shw_return_t
+do_scc_decrypt_region(fsl_shw_uco_t* user_ctx,
+ void* partition_base, uint32_t offset_bytes,
+ uint32_t byte_count, const uint8_t* black_data,
+ uint32_t* IV, fsl_shw_cypher_mode_t cypher_mode);
+
+
+/*****************************************************************************
+ *
+ * Functions available to other SHW-family drivers.
+ *
+*****************************************************************************/
+
+#ifdef __KERNEL__
+/**
+ * Add an entry to a work/result queue.
+ *
+ * @param pool Pointer to list structure
+ * @param entry Entry to place at tail of list
+ *
+ * @return void
+ */
+inline static void SHW_ADD_QUEUE_ENTRY(shw_queue_t* pool,
+ shw_queue_entry_t* entry)
+{
+ os_lock_context_t lock_context;
+
+ entry->next = NULL;
+ os_lock_save_context(shw_queue_lock, lock_context);
+
+ if (pool->tail != NULL) {
+ pool->tail->next = entry;
+ } else {
+ /* Queue was empty, so this is also the head. */
+ pool->head = entry;
+ }
+ pool->tail = entry;
+
+ os_unlock_restore_context(shw_queue_lock, lock_context);
+
+ return;
+
+
+}
+
+
+/**
+ * Get first entry on the queue and remove it from the queue.
+ *
+ * @return Pointer to first entry, or NULL if none.
+ */
+inline static shw_queue_entry_t* SHW_POP_FIRST_ENTRY(shw_queue_t* queue)
+{
+ shw_queue_entry_t* entry;
+ os_lock_context_t lock_context;
+
+ os_lock_save_context(shw_queue_lock, lock_context);
+
+ entry = queue->head;
+
+ if (entry != NULL) {
+ queue->head = entry->next;
+ entry->next = NULL;
+ /* If this was only entry, clear the tail. */
+ if (queue->tail == entry) {
+ queue->tail = NULL;
+ }
+ }
+
+ os_unlock_restore_context(shw_queue_lock, lock_context);
+
+ return entry;
+}
+
+
+
+/**
+ * Remove an entry from the list.
+ *
+ * If the entry not on the queue, no error will be returned.
+ *
+ * @param pool Pointer to work queue
+ * @param entry Entry to remove from queue
+ *
+ * @return void
+ *
+ */
+inline static void SHW_QUEUE_REMOVE_ENTRY(shw_queue_t* pool,
+ shw_queue_entry_t* entry)
+{
+ os_lock_context_t lock_context;
+
+ os_lock_save_context(shw_queue_lock, lock_context);
+
+ /* Check for quick case.*/
+ if (pool->head == entry) {
+ pool->head = entry->next;
+ entry->next = NULL;
+ if (pool->tail == entry) {
+ pool->tail = NULL;
+ }
+ } else {
+ register shw_queue_entry_t* prev = pool->head;
+
+ /* We know it is not the head, so start looking at entry after head. */
+ while (prev->next) {
+ if (prev->next != entry) {
+ prev = prev->next; /* Try another */
+ continue;
+ } else {
+ /* Unlink from chain. */
+ prev->next = entry->next;
+ entry->next = NULL;
+ /* If last in chain, update tail. */
+ if (pool->tail == entry) {
+ pool->tail = prev;
+ }
+ break;
+ }
+ } /* while */
+ }
+
+ os_unlock_restore_context(shw_queue_lock, lock_context);
+
+ return;
+}
+#endif /* __KERNEL__ */
+
+
+/*****************************************************************************
+ *
+ * Functions available to User-Mode API functions
+ *
+ ****************************************************************************/
+#ifndef __KERNEL__
+
+
+ /**
+ * Sanity checks the user context object fields to ensure that they make some
+ * sense before passing the uco as a parameter.
+ *
+ * @brief Verify the user context object
+ *
+ * @param uco user context object
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+fsl_shw_return_t validate_uco(fsl_shw_uco_t *uco);
+
+
+/**
+ * Initialize a request block to go to the driver.
+ *
+ * @param hdr Pointer to request block header
+ * @param user_ctx Pointer to user's context
+ *
+ * @return void
+ */
+inline static void init_req(struct shw_req_header* hdr,
+ fsl_shw_uco_t* user_ctx)
+{
+ hdr->flags = user_ctx->flags;
+ hdr->user_ref = user_ctx->user_ref;
+ hdr->code = FSL_RETURN_ERROR_S;
+
+ return;
+}
+
+
+/**
+ * Send a request block off to the driver.
+ *
+ * If this is a non-blocking request, then req will be freed.
+ *
+ * @param type The type of request being sent
+ * @param req Pointer to the request block
+ * @param ctx Pointer to user's context
+ *
+ * @return code from driver if ioctl() succeeded, otherwise
+ * FSL_RETURN_INTERNAL_ERROR_S.
+ */
+inline static fsl_shw_return_t send_req(shw_user_request_t type,
+ struct shw_req_header* req,
+ fsl_shw_uco_t* ctx)
+{
+ fsl_shw_return_t ret = FSL_RETURN_INTERNAL_ERROR_S;
+ unsigned blocking = ctx->flags & FSL_UCO_BLOCKING_MODE;
+ int code;
+
+ code = ioctl(ctx->openfd, SHW_IOCTL_REQUEST + type, req);
+
+ if (code == 0) {
+ if (blocking) {
+ ret = req->code;
+ } else {
+ ret = FSL_RETURN_OK_S;
+ }
+ } else {
+#ifdef FSL_DEBUG
+ fprintf(stderr, "SHW: send_req failed with (%d), %s\n", errno,
+ strerror(errno));
+#endif
+ }
+
+ if (blocking) {
+ free(req);
+ }
+
+ return ret;
+}
+
+
+#endif /* no __KERNEL__ */
+
+#if defined(FSL_HAVE_DRYICE)
+/* Some kernel functions */
+void fsl_shw_permute1_bytes(const uint8_t * key, uint8_t * permuted_key,
+ int key_count);
+void fsl_shw_permute1_bytes_to_words(const uint8_t * key,
+ uint32_t * permuted_key, int key_count);
+
+#define PFKEY_TO_STR(key_in) \
+({ \
+ di_key_t key = key_in; \
+ \
+ ((key == DI_KEY_FK) ? "IIM" : \
+ ((key == DI_KEY_PK) ? "PRG" : \
+ ((key == DI_KEY_RK) ? "RND" : \
+ ((key == DI_KEY_FPK) ? "IIM_PRG" : \
+ ((key == DI_KEY_FRK) ? "IIM_RND" : "unk"))))); \
+})
+
+#ifdef DIAG_SECURITY_FUNC
+extern const char *di_error_string(int code);
+#endif
+
+#endif /* HAVE DRYICE */
+
+#endif /* SHW_DRIVER_H */
diff --git a/drivers/mxc/security/rng/include/shw_hash.h b/drivers/mxc/security/rng/include/shw_hash.h
new file mode 100644
index 000000000000..8026c7ecb3fd
--- /dev/null
+++ b/drivers/mxc/security/rng/include/shw_hash.h
@@ -0,0 +1,96 @@
+/*
+ * Copyright (C) 2009-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU Lesser General
+ * Public License. You may obtain a copy of the GNU Lesser General
+ * Public License Version 2.1 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/lgpl-license.html
+ * http://www.gnu.org/copyleft/lgpl.html
+ */
+
+/*!
+ * @file shw_hash.h
+ *
+ * This file contains definitions for use of the (internal) SHW hash
+ * software computation. It defines the usual three steps:
+ *
+ * - #shw_hash_init()
+ * - #shw_hash_update()
+ * - #shw_hash_final()
+ *
+ * The only other item of note to callers is #SHW_HASH_LEN, which is the number
+ * of bytes calculated for the hash.
+ */
+
+#ifndef SHW_HASH_H
+#define SHW_HASH_H
+
+/*! Define which gives the number of bytes available in an hash result */
+#define SHW_HASH_LEN 32
+
+/* Define which matches block length in bytes of the underlying hash */
+#define SHW_HASH_BLOCK_LEN 64
+
+/* "Internal" define which matches SHA-256 state size (32-bit words) */
+#define SHW_HASH_STATE_WORDS 8
+
+/* "Internal" define which matches word length in blocks of the underlying
+ hash. */
+#define SHW_HASH_BLOCK_WORD_SIZE 16
+
+#define SHW_HASH_STATE_SIZE 32
+
+/*!
+ * State for a SHA-1/SHA-2 Hash
+ *
+ * (Note to maintainers: state needs to be updated to uint64_t to handle
+ * SHA-384/SHA-512)... And bit_count to uint128_t (heh).
+ */
+typedef struct shw_hash_state {
+ unsigned int partial_count_bytes; /*!< Number of bytes of message sitting
+ * in @c partial_block */
+ uint8_t partial_block[SHW_HASH_BLOCK_LEN]; /*!< Data waiting to be processed as a block */
+ uint32_t state[SHW_HASH_STATE_WORDS]; /*!< Current hash state variables */
+ uint64_t bit_count; /*!< Number of bits sent through the update function */
+} shw_hash_state_t;
+
+/*!
+ * Initialize the hash state structure
+ *
+ * @param state Address of hash state structure.
+ * @param algorithm Which hash algorithm to use (must be FSL_HASH_ALG_SHA256)
+ *
+ * @return FSL_RETURN_OK_S if all went well, otherwise an error code.
+ */
+fsl_shw_return_t shw_hash_init(shw_hash_state_t * state,
+ fsl_shw_hash_alg_t algorithm);
+
+/*!
+ * Put data into the hash calculation
+ *
+ * @param state Address of hash state structure.
+ * @param msg Address of the message data for the hash.
+ * @param msg_len Number of bytes of @c msg.
+ *
+ * @return FSL_RETURN_OK_S if all went well, otherwise an error code.
+ */
+fsl_shw_return_t shw_hash_update(shw_hash_state_t * state,
+ const uint8_t * msg, unsigned int msg_len);
+
+/*!
+ * Calculate the final hash value
+ *
+ * @param state Address of hash state structure.
+ * @param hash Address of location to store the hash.
+ * @param hash_len Number of bytes of @c hash to be stored.
+ *
+ * @return FSL_RETURN_OK_S if all went well, FSL_RETURN_BAD_DATA_LENGTH_S if
+ * hash_len is too long, otherwise an error code.
+ */
+fsl_shw_return_t shw_hash_final(shw_hash_state_t * state,
+ uint8_t * hash, unsigned int hash_len);
+
+#endif /* SHW_HASH_H */
diff --git a/drivers/mxc/security/rng/include/shw_hmac.h b/drivers/mxc/security/rng/include/shw_hmac.h
new file mode 100644
index 000000000000..f73a78f5b02d
--- /dev/null
+++ b/drivers/mxc/security/rng/include/shw_hmac.h
@@ -0,0 +1,82 @@
+/*
+ * Copyright (C) 2009-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU Lesser General
+ * Public License. You may obtain a copy of the GNU Lesser General
+ * Public License Version 2.1 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/lgpl-license.html
+ * http://www.gnu.org/copyleft/lgpl.html
+ */
+
+/*!
+ * @file shw_hmac.h
+ *
+ * This file contains definitions for use of the (internal) SHW HMAC
+ * software computation. It defines the usual three steps:
+ *
+ * - #shw_hmac_init()
+ * - #shw_hmac_update()
+ * - #shw_hmac_final()
+ *
+ * The only other item of note to callers is #SHW_HASH_LEN, which is the number
+ * of bytes calculated for the HMAC.
+ */
+
+#ifndef SHW_HMAC_H
+#define SHW_HMAC_H
+
+#include "shw_hash.h"
+
+/*!
+ * State for an HMAC
+ *
+ * Note to callers: This structure contains key material and should be kept in
+ * a secure location, such as internal RAM.
+ */
+typedef struct shw_hmac_state {
+ shw_hash_state_t inner_hash; /*!< Current state of inner hash */
+ shw_hash_state_t outer_hash; /*!< Current state of outer hash */
+} shw_hmac_state_t;
+
+/*!
+ * Initialize the HMAC state structure with the HMAC key
+ *
+ * @param state Address of HMAC state structure.
+ * @param key Address of the key to be used for the HMAC.
+ * @param key_len Number of bytes of @c key. This must not be greater than
+ * the block size of the underlying hash (#SHW_HASH_BLOCK_LEN).
+ *
+ * @return FSL_RETURN_OK_S if all went well, otherwise an error code.
+ */
+fsl_shw_return_t shw_hmac_init(shw_hmac_state_t * state,
+ const uint8_t * key, unsigned int key_len);
+
+/*!
+ * Put data into the HMAC calculation
+ *
+ * @param state Address of HMAC state structure.
+ * @param msg Address of the message data for the HMAC.
+ * @param msg_len Number of bytes of @c msg.
+ *
+ * @return FSL_RETURN_OK_S if all went well, otherwise an error code.
+ */
+fsl_shw_return_t shw_hmac_update(shw_hmac_state_t * state,
+ const uint8_t * msg, unsigned int msg_len);
+
+/*!
+ * Calculate the final HMAC
+ *
+ * @param state Address of HMAC state structure.
+ * @param hmac Address of location to store the HMAC.
+ * @param hmac_len Number of bytes of @c mac to be stored. Probably best if
+ * this value is no greater than #SHW_HASH_LEN.
+ *
+ * @return FSL_RETURN_OK_S if all went well, otherwise an error code.
+ */
+fsl_shw_return_t shw_hmac_final(shw_hmac_state_t * state,
+ uint8_t * hmac, unsigned int hmac_len);
+
+#endif /* SHW_HMAC_H */
diff --git a/drivers/mxc/security/rng/include/shw_internals.h b/drivers/mxc/security/rng/include/shw_internals.h
new file mode 100644
index 000000000000..1bf3b1a86374
--- /dev/null
+++ b/drivers/mxc/security/rng/include/shw_internals.h
@@ -0,0 +1,162 @@
+/*
+ * Copyright (C) 2005-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+#ifndef SHW_INTERNALS_H
+#define SHW_INTERNALS_H
+
+/*! @file shw_internals.h
+ *
+ * This file contains definitions which are internal to the SHW driver.
+ *
+ * This header file should only ever be included by shw_driver.c
+ *
+ * Compile-time flags minimally needed:
+ *
+ * @li Some sort of platform flag.
+ *
+ */
+
+#include "portable_os.h"
+#include "shw_driver.h"
+
+/*! @defgroup shwcompileflags SHW Compile Flags
+ *
+ * These are flags which are used to configure the SHW driver at compilation
+ * time.
+ *
+ * The terms 'defined' and 'undefined' refer to whether a @c \#define (or -D on
+ * a compile command) has defined a given preprocessor symbol. If a given
+ * symbol is defined, then @c \#ifdef \<symbol\> will succeed. Some symbols
+ * described below default to not having a definition, i.e. they are undefined.
+ *
+ */
+
+/*! @addtogroup shwcompileflags */
+/*! @{ */
+#ifndef SHW_MAJOR_NODE
+/*!
+ * This should be configured in a Makefile/compile command line. It is the
+ * value the driver will use to register itself as a device driver for a
+ * /dev/node file. Zero means allow (Linux) to assign a value. Any positive
+ * number will be attempted as the registration value, to allow for
+ * coordination with the creation/existence of a /dev/fsl_shw (for instance)
+ * file in the filesystem.
+ */
+#define SHW_MAJOR_NODE 0
+#endif
+
+/* Temporarily define compile-time flags to make Doxygen happy and allow them
+ to get into the documentation. */
+#ifdef DOXYGEN_HACK
+
+/*!
+ * Turn on compilation of run-time operational, debug, and error messages.
+ *
+ * This flag is undefined by default.
+ */
+/* REQ-FSLSHW-DEBUG-001 */
+#define SHW_DEBUG
+#undef SHW_DEBUG
+
+/*! @} */
+#endif /* end DOXYGEN_HACK */
+
+#ifndef SHW_DRIVER_NAME
+/*! @addtogroup shwcompileflags */
+/*! @{ */
+/*! Name the driver will use to register itself to the kernel as the driver for
+ * the #shw_major_node and interrupt handling. */
+#define SHW_DRIVER_NAME "fsl_shw"
+/*! @} */
+#endif
+/*#define SHW_DEBUG*/
+
+/*!
+ * Add a user context onto the list of registered users.
+ *
+ * Place it at the head of the #user_list queue.
+ *
+ * @param ctx A pointer to a user context
+ *
+ * @return void
+ */
+inline static void SHW_ADD_USER(fsl_shw_uco_t * ctx)
+{
+ os_lock_context_t lock_context;
+
+ os_lock_save_context(shw_queue_lock, lock_context);
+ ctx->next = user_list;
+ user_list = ctx;
+ os_unlock_restore_context(shw_queue_lock, lock_context);
+
+}
+
+/*!
+ * Remove a user context from the list of registered users.
+ *
+ * @param ctx A pointer to a user context
+ *
+ * @return void
+ *
+ */
+inline static void SHW_REMOVE_USER(fsl_shw_uco_t * ctx)
+{
+ fsl_shw_uco_t *prev_ctx = user_list;
+ os_lock_context_t lock_context;
+
+ os_lock_save_context(shw_queue_lock, lock_context);
+
+ if (prev_ctx == ctx) {
+ /* Found at head, so just set new head */
+ user_list = ctx->next;
+ } else {
+ for (; (prev_ctx != NULL); prev_ctx = prev_ctx->next) {
+ if (prev_ctx->next == ctx) {
+ prev_ctx->next = ctx->next;
+ break;
+ }
+ }
+ }
+ os_unlock_restore_context(shw_queue_lock, lock_context);
+}
+
+static void shw_user_callback(fsl_shw_uco_t * uco);
+
+/* internal functions */
+static os_error_code shw_setup_user_driver_interaction(void);
+static void shw_cleanup(void);
+
+static os_error_code init_uco(fsl_shw_uco_t * user_ctx, void *user_mode_uco);
+static os_error_code get_capabilities(fsl_shw_uco_t * user_ctx,
+ void *user_mode_pco_request);
+static os_error_code get_results(fsl_shw_uco_t * user_ctx,
+ void *user_mode_result_req);
+static os_error_code get_random(fsl_shw_uco_t * user_ctx,
+ void *user_mode_get_random_req);
+static os_error_code add_entropy(fsl_shw_uco_t * user_ctx,
+ void *user_mode_add_entropy_req);
+
+void* wire_user_memory(void* address, uint32_t length, void** page_ctx);
+void unwire_user_memory(void** page_ctx);
+os_error_code map_user_memory(struct vm_area_struct* vma,
+ uint32_t physical_addr, uint32_t size);
+os_error_code unmap_user_memory(uint32_t user_addr, uint32_t size);
+
+#if defined(LINUX_VERSION_CODE)
+
+MODULE_AUTHOR("Freescale Semiconductor");
+MODULE_DESCRIPTION("Device Driver for FSL SHW API");
+
+#endif /* LINUX_VERSION_CODE */
+
+#endif /* SHW_INTERNALS_H */
diff --git a/drivers/mxc/security/rng/rng_driver.c b/drivers/mxc/security/rng/rng_driver.c
new file mode 100644
index 000000000000..51eda5ccbe61
--- /dev/null
+++ b/drivers/mxc/security/rng/rng_driver.c
@@ -0,0 +1,1150 @@
+/*
+ * Copyright (C) 2005-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*! @file rng_driver.c
+ *
+ * This is the driver code for the hardware Random Number Generator (RNG).
+ *
+ * It provides the following functions to callers:
+ * fsl_shw_return_t fsl_shw_get_random(fsl_shw_uco_t* user_ctx,
+ * uint32_t length,
+ * uint8_t* data);
+ *
+ * fsl_shw_return_t fsl_shw_add_entropy(fsl_shw_uco_t* user_ctx,
+ * uint32_t length,
+ * uint8_t* data);
+ *
+ * The life of the driver starts at boot (or module load) time, with a call by
+ * the kernel to #rng_init(). As part of initialization, a background task
+ * running #rng_entropy_task() will be created.
+ *
+ * The life of the driver ends when the kernel is shutting down (or the driver
+ * is being unloaded). At this time, #rng_shutdown() is called. No function
+ * will ever be called after that point. In the case that the driver is
+ * reloaded, a new copy of the driver, with fresh global values, etc., is
+ * loaded, and there will be a new call to #rng_init().
+ *
+ * A call to fsl_shw_get_random() gets converted into a work entry which is
+ * queued and handed off to a background task for fulfilment. This provides
+ * for a single thread of control for reading the RNG's FIFO register, which
+ * might otherwise underflow if not carefully managed.
+ *
+ * A call to fsl_shw_add_entropy() will cause the additional entropy to
+ * be passed directly into the hardware.
+ *
+ * In a debug configuration, it provides the following kernel functions:
+ * rng_return_t rng_read_register(uint32_t byte_offset, uint32_t* valuep);
+ * rng_return_t rng_write_register(uint32_t byte_offset, uint32_t value);
+ * @ingroup RNG
+ */
+
+#include "portable_os.h"
+#include "fsl_shw.h"
+#include "rng_internals.h"
+
+#ifdef FSL_HAVE_SCC2
+#include <linux/mxc_scc2_driver.h>
+#else
+#include <linux/mxc_scc_driver.h>
+#endif
+
+#if defined(RNG_DEBUG) || defined(RNG_ENTROPY_DEBUG) || \
+ defined(RNG_REGISTER_DEBUG)
+
+#include <diagnostic.h>
+
+#else
+
+#define LOG_KDIAG_ARGS(fmt, ...)
+#define LOG_KDIAG(diag)
+
+#endif
+
+/* These are often handy */
+#ifndef FALSE
+/*! Non-true value for arguments, return values. */
+#define FALSE 0
+#endif
+#ifndef TRUE
+/*! True value for arguments, return values. */
+#define TRUE 1
+#endif
+
+/******************************************************************************
+ *
+ * Global / Static Variables
+ *
+ *****************************************************************************/
+
+/*!
+ * This is type void* so that a) it cannot directly be dereferenced, and b)
+ * pointer arithmetic on it will function for the byte offsets in rng_rnga.h
+ * and rng_rngc.h
+ *
+ * rng_base is the location in the iomap where the RNG's registers
+ * (and memory) start.
+ *
+ * The referenced data is declared volatile so that the compiler will
+ * not make any assumptions about the value of registers in the RNG,
+ * and thus will always reload the register into CPU memory before
+ * using it (i.e. wherever it is referenced in the driver).
+ *
+ * This value should only be referenced by the #RNG_READ_REGISTER and
+ * #RNG_WRITE_REGISTER macros and their ilk. All dereferences must be
+ * 32 bits wide.
+ */
+static volatile void *rng_base;
+
+/*!
+ * Flag to say whether interrupt handler has been registered for RNG
+ * interrupt */
+static int rng_irq_set = FALSE;
+
+/*!
+ * Size of the RNG's OUTPUT_FIFO, in words. Retrieved with
+ * #RNG_GET_FIFO_SIZE() during driver initialization.
+ */
+static int rng_output_fifo_size;
+
+/*! Major number for device driver. */
+static int rng_major;
+
+/*! Registration handle for registering driver with OS. */
+os_driver_reg_t rng_reg_handle;
+
+/*!
+ * Internal flag to know whether RNG is in Failed state (and thus many
+ * registers are unavailable). If the value ever goes to #RNG_STATUS_FAILED,
+ * it will never change.
+ */
+static volatile rng_status_t rng_availability = RNG_STATUS_INITIAL;
+
+/*!
+ * Global lock for the RNG driver. Mainly used for entries on the RNG work
+ * queue.
+ */
+static os_lock_t rng_queue_lock = NULL;
+
+/*!
+ * Queue for the RNG task to process.
+ */
+static shw_queue_t rng_work_queue;
+
+/*!
+ * Flag to say whether task initialization succeeded.
+ */
+static unsigned task_started = FALSE;
+/*!
+ * Waiting queue for RNG SELF TESTING
+ */
+static DECLARE_COMPLETION(rng_self_testing);
+static DECLARE_COMPLETION(rng_seed_done);
+/*!
+ * Object for blocking-mode callers of RNG driver to sleep.
+ */
+OS_WAIT_OBJECT(rng_wait_queue);
+
+/******************************************************************************
+ *
+ * Function Implementations - Externally Accessible
+ *
+ *****************************************************************************/
+
+/*****************************************************************************/
+/* fn rng_init() */
+/*****************************************************************************/
+/*!
+ * Initialize the driver.
+ *
+ * Set up the driver to have access to RNG device registers and verify that
+ * it appears to be a proper working device.
+ *
+ * Set up interrupt handling. Assure RNG is ready to go and (possibly) set it
+ * into High Assurance mode. Create a background task to run
+ * #rng_entropy_task(). Set up up a callback with the SCC driver should the
+ * security alarm go off. Tell the kernel that the driver is here.
+ *
+ * This routine is called during kernel init or module load (insmod).
+ *
+ * The function will fail in one of two ways: Returning OK to the caller so
+ * that kernel startup / driver initialization completes, or returning an
+ * error. In the success case, the function could set the rng_avaailability to
+ * RNG_STATUS_FAILED so that only minimal support (e.g. register peek / poke)
+ * is available in the driver.
+ *
+ * @return a call to os_dev_init_return()
+ */
+OS_DEV_INIT(rng_init)
+{
+ struct clk *clk;
+ os_error_code return_code = OS_ERROR_FAIL_S;
+ rng_availability = RNG_STATUS_CHECKING;
+
+#if !defined(FSL_HAVE_RNGA)
+ INIT_COMPLETION(rng_self_testing);
+ INIT_COMPLETION(rng_seed_done);
+#endif
+ rng_work_queue.head = NULL;
+ rng_work_queue.tail = NULL;
+
+ clk = clk_get(NULL, "rng_clk");
+
+ // Check that the clock was found
+ if (IS_ERR(clk)) {
+ LOG_KDIAG("RNG: Failed to find rng_clock.");
+ return_code = OS_ERROR_FAIL_S;
+ goto check_err;
+ }
+
+ clk_enable(clk);
+
+ os_printk(KERN_INFO "RNG Driver: Loading\n");
+
+ return_code = rng_map_RNG_memory();
+ if (return_code != OS_ERROR_OK_S) {
+ rng_availability = RNG_STATUS_UNIMPLEMENTED;
+ LOG_KDIAG_ARGS("RNG: Driver failed to map RNG registers. %d",
+ return_code);
+ goto check_err;
+ }
+ LOG_KDIAG_ARGS("RNG Driver: rng_base is 0x%08x", (uint32_t) rng_base);
+ /*Check SCC keys are fused */
+ if (RNG_HAS_ERROR()) {
+ if (RNG_HAS_BAD_KEY()) {
+#ifdef RNG_DEBUG
+#if !defined(FSL_HAVE_RNGA)
+ LOG_KDIAG("ERROR: BAD KEYS SELECTED");
+ {
+ uint32_t rngc_status =
+ RNG_READ_REGISTER(RNGC_STATUS);
+ uint32_t rngc_error =
+ RNG_READ_REGISTER(RNGC_ERROR);
+ LOG_KDIAG_ARGS
+ ("status register: %08x, error status: %08x",
+ rngc_status, rngc_error);
+ }
+#endif
+#endif
+ rng_availability = RNG_STATUS_FAILED;
+ return_code = OS_ERROR_FAIL_S;
+ goto check_err;
+ }
+ }
+
+ /* Check RNG configuration and status */
+ return_code = rng_grab_config_values();
+ if (return_code != OS_ERROR_OK_S) {
+ rng_availability = RNG_STATUS_UNIMPLEMENTED;
+ goto check_err;
+ }
+
+ /* Masking All Interrupts */
+ /* They are unmasked later in rng_setup_interrupt_handling() */
+ RNG_MASK_ALL_INTERRUPTS();
+
+ RNG_WAKE();
+
+ /* Determine status of RNG */
+ if (RNG_OSCILLATOR_FAILED()) {
+ LOG_KDIAG("RNG Driver: RNG Oscillator is dead");
+ rng_availability = RNG_STATUS_FAILED;
+ goto check_err;
+ }
+
+ /* Oscillator not dead. Setup interrupt code and start the RNG. */
+ if ((return_code = rng_setup_interrupt_handling()) == OS_ERROR_OK_S) {
+#if defined(FSL_HAVE_RNGA)
+ scc_return_t scc_code;
+#endif
+
+ RNG_GO();
+
+ /* Self Testing For RNG */
+ do {
+ RNG_CLEAR_ERR();
+
+ /* wait for Clearing Erring finished */
+ msleep(1);
+
+ RNG_UNMASK_ALL_INTERRUPTS();
+ RNG_SELF_TEST();
+#if !defined(FSL_HAVE_RNGA)
+ wait_for_completion(&rng_self_testing);
+#endif
+ } while (RNG_CHECK_SELF_ERR());
+
+ RNG_CLEAR_ALL_STATUS();
+ /* checking for RNG SEED done */
+ do {
+ RNG_CLEAR_ERR();
+ RNG_SEED_GEN();
+#if !defined(FSL_HAVE_RNGA)
+ wait_for_completion(&rng_seed_done);
+#endif
+ } while (RNG_CHECK_SEED_ERR());
+#ifndef RNG_NO_FORCE_HIGH_ASSURANCE
+ RNG_SET_HIGH_ASSURANCE();
+#endif
+ if (RNG_GET_HIGH_ASSURANCE()) {
+ LOG_KDIAG("RNG Driver: RNG is in High Assurance mode");
+ } else {
+#ifndef RNG_NO_FORCE_HIGH_ASSURANCE
+ LOG_KDIAG
+ ("RNG Driver: RNG could not be put in High Assurance mode");
+ rng_availability = RNG_STATUS_FAILED;
+ goto check_err;
+#endif /* RNG_NO_FORCE_HIGH_ASSURANCE */
+ }
+
+ /* Check that RNG is OK */
+ if (!RNG_WORKING()) {
+ LOG_KDIAG_ARGS
+ ("RNG determined to be inoperable. Status %08x",
+ RNG_GET_STATUS());
+ /* Couldn't wake it up or other problem */
+ rng_availability = RNG_STATUS_FAILED;
+ goto check_err;
+ }
+
+ rng_queue_lock = os_lock_alloc_init();
+ if (rng_queue_lock == NULL) {
+ LOG_KDIAG("RNG: lock initialization failed");
+ rng_availability = RNG_STATUS_FAILED;
+ goto check_err;
+ }
+
+ return_code = os_create_task(rng_entropy_task);
+ if (return_code != OS_ERROR_OK_S) {
+ LOG_KDIAG("RNG: task initialization failed");
+ rng_availability = RNG_STATUS_FAILED;
+ goto check_err;
+ } else {
+ task_started = TRUE;
+ }
+#ifdef FSL_HAVE_RNGA
+ scc_code = scc_monitor_security_failure(rng_sec_failure);
+ if (scc_code != SCC_RET_OK) {
+ LOG_KDIAG_ARGS("Failed to register SCC callback: %d",
+ scc_code);
+#ifndef RNG_NO_FORCE_HIGH_ASSURANCE
+ return_code = OS_ERROR_FAIL_S;
+ goto check_err;
+#endif
+ }
+#endif /* FSL_HAVE_RNGA */
+ return_code = os_driver_init_registration(rng_reg_handle);
+ if (return_code != OS_ERROR_OK_S) {
+ goto check_err;
+ }
+ /* add power suspend here */
+ /* add power resume here */
+ return_code =
+ os_driver_complete_registration(rng_reg_handle,
+ rng_major, RNG_DRIVER_NAME);
+ }
+ /* RNG is working */
+
+ check_err:
+
+ /* If FIFO underflow or other error occurred during drain, this will fail,
+ * as system will have been put into fail mode by SCC. */
+ if ((return_code == OS_ERROR_OK_S)
+ && (rng_availability == RNG_STATUS_CHECKING)) {
+ RNG_PUT_RNG_TO_SLEEP();
+ rng_availability = RNG_STATUS_OK; /* RNG & driver are ready */
+ } else if (return_code != OS_ERROR_OK_S) {
+ os_printk(KERN_ALERT "Driver initialization failed. %d",
+ return_code);
+ rng_cleanup();
+ }
+
+ os_dev_init_return(return_code);
+
+} /* rng_init */
+
+/*****************************************************************************/
+/* fn rng_shutdown() */
+/*****************************************************************************/
+/*!
+ * Prepare driver for exit.
+ *
+ * This is called during @c rmmod when the driver is unloading.
+ * Try to undo whatever was done during #rng_init(), to make the machine be
+ * in the same state, if possible.
+ *
+ * Calls rng_cleanup() to do all work, and then unmap device's register space.
+ */
+OS_DEV_SHUTDOWN(rng_shutdown)
+{
+ LOG_KDIAG("shutdown called");
+
+ rng_cleanup();
+
+ os_driver_remove_registration(rng_reg_handle);
+ if (rng_base != NULL) {
+ /* release the virtual memory map to the RNG */
+ os_unmap_device((void *)rng_base, RNG_ADDRESS_RANGE);
+ rng_base = NULL;
+ }
+
+ os_dev_shutdown_return(OS_ERROR_OK_S);
+} /* rng_shutdown */
+
+/*****************************************************************************/
+/* fn rng_cleanup() */
+/*****************************************************************************/
+/*!
+ * Undo everything done by rng_init() and place driver in fail mode.
+ *
+ * Deregister from SCC, stop tasklet, shutdown the RNG. Leave the register
+ * map in place in case other drivers call rng_read/write_register()
+ *
+ * @return void
+ */
+static void rng_cleanup(void)
+{
+ struct clk *clk;
+
+#ifdef FSL_HAVE_RNGA
+ scc_stop_monitoring_security_failure(rng_sec_failure);
+#endif
+
+ clk = clk_get(NULL, "rng_clk");
+ clk_disable(clk);
+ if (task_started) {
+ os_dev_stop_task(rng_entropy_task);
+ }
+
+ if (rng_base != NULL) {
+ /* mask off RNG interrupts */
+ RNG_MASK_ALL_INTERRUPTS();
+ RNG_SLEEP();
+
+ if (rng_irq_set) {
+ /* unmap the interrupts from the IRQ lines */
+ os_deregister_interrupt(INT_RNG);
+ rng_irq_set = FALSE;
+ }
+ LOG_KDIAG("Leaving rng driver status as failed");
+ rng_availability = RNG_STATUS_FAILED;
+ } else {
+ LOG_KDIAG("Leaving rng driver status as unimplemented");
+ rng_availability = RNG_STATUS_UNIMPLEMENTED;
+ }
+ LOG_KDIAG("Cleaned up");
+} /* rng_cleanup */
+
+/*!
+ * Post-process routine for fsl_shw_get_random().
+ *
+ * This function will copy the random data generated by the background task
+ * into the user's buffer and then free the local buffer.
+ *
+ * @param gen_entry The work request.
+ *
+ * @return 0 = meaning work completed, pass back result.
+ */
+static uint32_t finish_random(shw_queue_entry_t * gen_entry)
+{
+ rng_work_entry_t *work = (rng_work_entry_t *) gen_entry;
+
+ if (work->hdr.flags & FSL_UCO_USERMODE_USER) {
+ os_copy_to_user(work->data_user, work->data_local,
+ work->length);
+ } else {
+ memcpy(work->data_user, work->data_local, work->length);
+ }
+
+ os_free_memory(work->data_local);
+ work->data_local = NULL;
+
+ return 0; /* means completed. */
+}
+
+/* REQ-FSLSHW-PINTFC-API-BASIC-RNG-002 */
+/*****************************************************************************/
+/* fn fsl_shw_get_random() */
+/*****************************************************************************/
+/*!
+ * Get random data.
+ *
+ * @param user_ctx A user context from #fsl_shw_register_user().
+ * @param length The number of octets of @a data being requested.
+ * @param data A pointer to a location of @a length octets to where
+ * random data will be returned.
+ *
+ * @return FSL_RETURN_NO_RESOURCE_S A return code of type #fsl_shw_return_t.
+ * FSL_RETURN_OK_S
+ */
+fsl_shw_return_t fsl_shw_get_random(fsl_shw_uco_t * user_ctx, uint32_t length,
+ uint8_t * data)
+{
+ fsl_shw_return_t return_code = FSL_RETURN_NO_RESOURCE_S;
+ /* Boost up length to cover any 'missing' bytes at end of a word */
+ uint32_t *buf = os_alloc_memory(length + 3, 0);
+ volatile rng_work_entry_t *work = os_alloc_memory(sizeof(*work), 0);
+
+ if ((rng_availability != RNG_STATUS_OK) || (buf == NULL)
+ || (work == NULL)) {
+ if (rng_availability != RNG_STATUS_OK) {
+ LOG_KDIAG_ARGS("rng not available: %d\n",
+ rng_availability);
+ } else {
+ LOG_KDIAG_ARGS
+ ("Resource allocation failure: %d or %d bytes",
+ length, sizeof(*work));
+ }
+ /* Cannot perform function. Clean up and clear out. */
+ if (buf != NULL) {
+ os_free_memory(buf);
+ }
+ if (work != NULL) {
+ os_free_memory((void *)work);
+ }
+ } else {
+ unsigned blocking = user_ctx->flags & FSL_UCO_BLOCKING_MODE;
+
+ work->hdr.user_ctx = user_ctx;
+ work->hdr.flags = user_ctx->flags;
+ work->hdr.callback = user_ctx->callback;
+ work->hdr.user_ref = user_ctx->user_ref;
+ work->hdr.postprocess = finish_random;
+ work->length = length;
+ work->data_local = buf;
+ work->data_user = data;
+
+ RNG_ADD_WORK_ENTRY((rng_work_entry_t *) work);
+
+ if (blocking) {
+ os_sleep(rng_wait_queue, work->completed != FALSE,
+ FALSE);
+ finish_random((shw_queue_entry_t *) work);
+ return_code = work->hdr.code;
+ os_free_memory((void *)work);
+ } else {
+ return_code = FSL_RETURN_OK_S;
+ }
+ }
+
+ return return_code;
+} /* fsl_shw_get_entropy */
+
+/*****************************************************************************/
+/* fn fsl_shw_add_entropy() */
+/*****************************************************************************/
+/*!
+ * Add entropy to random number generator.
+ *
+ * @param user_ctx A user context from #fsl_shw_register_user().
+ * @param length Number of bytes at @a data.
+ * @param data Entropy to add to random number generator.
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+fsl_shw_return_t fsl_shw_add_entropy(fsl_shw_uco_t * user_ctx, uint32_t length,
+ uint8_t * data)
+{
+ fsl_shw_return_t return_code = FSL_RETURN_NO_RESOURCE_S;
+#if defined(FSL_HAVE_RNGC)
+ /* No Entropy Register in RNGC */
+ return_code = FSL_RETURN_OK_S;
+#else
+ uint32_t *local_data = NULL;
+ if (rng_availability == RNG_STATUS_OK) {
+ /* make 32-bit aligned place to hold data */
+ local_data = os_alloc_memory(length + 3, 0);
+ if (local_data == NULL) {
+ return_code = FSL_RETURN_NO_RESOURCE_S;
+ } else {
+ memcpy(local_data, data, length);
+
+ /* Copy one word at a time to hardware */
+ while (TRUE) {
+ register uint32_t *ptr = local_data;
+
+ RNG_ADD_ENTROPY(*ptr++);
+ if (length <= 4) {
+ break;
+ }
+ length -= 4;
+ }
+ return_code = FSL_RETURN_OK_S;
+ os_free_memory(local_data);
+ } /* else local_data not NULL */
+
+ }
+#endif
+ /* rng_availability is OK */
+ return return_code;
+} /* fsl_shw_add_entropy */
+
+#ifdef RNG_REGISTER_PEEK_POKE
+/*****************************************************************************/
+/* fn rng_read_register() */
+/*****************************************************************************/
+/*
+ * Debug routines to allow reading of RNG registers.
+ *
+ * This routine is only for accesses by other than this driver.
+ *
+ * @param register_offset The byte offset of the register to be read.
+ * @param value Pointer to store the value of the register.
+ *
+ * @return RNG_RET_OK or an error return.
+ */
+rng_return_t rng_read_register(uint32_t register_offset, uint32_t * value)
+{
+ rng_return_t return_code = RNG_RET_FAIL;
+
+ if ((rng_availability == RNG_STATUS_OK)
+ || (rng_availability == RNG_STATUS_FAILED)) {
+ if ((rng_check_register_offset(register_offset)
+ && rng_check_register_accessible(register_offset,
+ RNG_CHECK_READ))) {
+ /* The guards let the check through */
+ *value = RNG_READ_REGISTER(register_offset);
+ return_code = RNG_RET_OK;
+ }
+ }
+
+ return return_code;
+} /* rng_read_register */
+
+/*****************************************************************************/
+/* fn rng_write_register() */
+/*****************************************************************************/
+/*
+ * Debug routines to allow writing of RNG registers.
+ *
+ * This routine is only for accesses by other than this driver.
+ *
+ * @param register_offset The byte offset of the register to be written.
+ * @param value Value to store in the register.
+ *
+ * @return RNG_RET_OK or an error return.
+ */
+rng_return_t rng_write_register(uint32_t register_offset, uint32_t value)
+{
+ rng_return_t return_code = RNG_RET_FAIL;
+
+ if ((rng_availability == RNG_STATUS_OK)
+ || (rng_availability == RNG_STATUS_FAILED)) {
+ if ((rng_check_register_offset(register_offset)
+ && rng_check_register_accessible(register_offset,
+ RNG_CHECK_WRITE))) {
+ RNG_WRITE_REGISTER(register_offset, value);
+ return_code = RNG_RET_OK;
+ }
+ }
+
+ return return_code;
+} /* rng_write_register */
+#endif /* RNG_REGISTER_PEEK_POKE */
+
+/******************************************************************************
+ *
+ * Function Implementations - Internal
+ *
+ *****************************************************************************/
+
+#ifdef RNG_REGISTER_PEEK_POKE
+/*****************************************************************************/
+/* fn check_register_offset() */
+/*****************************************************************************/
+/*!
+ * Verify that the @c offset is appropriate for the RNG's register set.
+ *
+ * @param[in] offset The (byte) offset within the RNG block
+ * of the register to be accessed. See
+ * RNG(A, C) register definitions for meanings.
+ *
+ * This routine is only for checking accesses by other than this driver.
+ *
+ * @return 0 if register offset out of bounds, 1 if ok to use
+ */
+inline int rng_check_register_offset(uint32_t offset)
+{
+ int return_code = FALSE; /* invalid */
+
+ /* Make sure offset isn't too high and also that it is aligned to
+ * aa 32-bit offset (multiple of four).
+ */
+ if ((offset < RNG_ADDRESS_RANGE) && (offset % sizeof(uint32_t) == 0)) {
+ return_code = TRUE; /* OK */
+ } else {
+ pr_debug("RNG: Denied access to offset %8x\n", offset);
+ }
+
+ return return_code;
+
+} /* rng_check_register */
+
+/*****************************************************************************/
+/* fn check_register_accessible() */
+/*****************************************************************************/
+/*!
+ * Make sure that register access is legal.
+ *
+ * Verify that, if in secure mode, only safe registers are used.
+ * For any register access, make sure that read-only registers are not written
+ * and that write-only registers are not read. This check also disallows any
+ * access to the RNG's Output FIFO, to prevent other drivers from draining the
+ * FIFO and causing an underflow condition.
+ *
+ * This routine is only for checking accesses by other than this driver.
+ *
+ * @param offset The (byte) offset within the RNG block
+ * of the register to be accessed. See
+ * @ref rngregs for meanings.
+ * @param access_write 0 for read, anything else for write
+ *
+ * @return 0 if invalid, 1 if OK.
+ */
+static int rng_check_register_accessible(uint32_t offset, int access_write)
+{
+ int return_code = FALSE; /* invalid */
+ uint32_t secure = RNG_GET_HIGH_ASSURANCE();
+
+ /* First check for RNG in Secure Mode -- most registers inaccessible.
+ * Also disallowing access to RNG_OUTPUT_FIFO except by the driver.
+ */
+ if (!
+#ifdef FSL_HAVE_RNGA
+ (secure &&
+ ((offset == RNGA_OUTPUT_FIFO) ||
+ (offset == RNGA_MODE) ||
+ (offset == RNGA_VERIFICATION_CONTROL) ||
+ (offset == RNGA_OSCILLATOR_CONTROL_COUNTER) ||
+ (offset == RNGA_OSCILLATOR1_COUNTER) ||
+ (offset == RNGA_OSCILLATOR2_COUNTER) ||
+ (offset == RNGA_OSCILLATOR_COUNTER_STATUS)))
+#else /* RNGB or RNGC */
+ (secure &&
+ ((offset == RNGC_FIFO) ||
+ (offset == RNGC_VERIFICATION_CONTROL) ||
+ (offset == RNGC_OSC_COUNTER_CONTROL) ||
+ (offset == RNGC_OSC_COUNTER) ||
+ (offset == RNGC_OSC_COUNTER_STATUS)))
+#endif
+ ) {
+
+ /* Passed that test. Either not in high assurance, and/or are
+ checking register that is always available. Now check
+ R/W permissions. */
+ if (access_write == RNG_CHECK_READ) { /* read request */
+ /* Only the entropy register is write-only */
+#ifdef FSL_HAVE_RNGC
+ /* No registers are write-only */
+ return_code = TRUE;
+#else /* else RNGA or RNGB */
+#ifdef FSL_HAVE_RNGA
+ if (1) {
+#else
+ if (!(offset == RNGB_ENTROPY)) {
+#endif
+ return_code = TRUE; /* Let all others be read */
+ } else {
+ pr_debug
+ ("RNG: Offset %04x denied read access\n",
+ offset);
+ }
+#endif /* RNGA or RNGB */
+ } /* read */
+ else { /* access_write means write */
+ /* Check against list of non-writable registers */
+ if (!
+#ifdef FSL_HAVE_RNGA
+ ((offset == RNGA_STATUS) ||
+ (offset == RNGA_OUTPUT_FIFO) ||
+ (offset == RNGA_OSCILLATOR1_COUNTER) ||
+ (offset == RNGA_OSCILLATOR2_COUNTER) ||
+ (offset == RNGA_OSCILLATOR_COUNTER_STATUS))
+#else /* FSL_HAVE_RNGB or FSL_HAVE_RNGC */
+ ((offset == RNGC_STATUS) ||
+ (offset == RNGC_FIFO) ||
+ (offset == RNGC_OSC_COUNTER) ||
+ (offset == RNGC_OSC_COUNTER_STATUS))
+#endif
+ ) {
+ return_code = TRUE; /* can be written */
+ } else {
+ LOG_KDIAG_ARGS
+ ("Offset %04x denied write access", offset);
+ }
+ } /* write */
+ } /* not high assurance and inaccessible register... */
+ else {
+ LOG_KDIAG_ARGS("Offset %04x denied high-assurance access",
+ offset);
+ }
+
+ return return_code;
+} /* rng_check_register_accessible */
+#endif /* RNG_REGISTER_PEEK_POKE */
+
+/*****************************************************************************/
+/* fn rng_irq() */
+/*****************************************************************************/
+/*!
+ * This is the interrupt handler for the RNG. It is only ever invoked if the
+ * RNG detects a FIFO Underflow error.
+ *
+ * If the error is a Security Violation, this routine will
+ * set the #rng_availability to #RNG_STATUS_FAILED, as the entropy pool may
+ * have been corrupted. The RNG will also be placed into low power mode. The
+ * SCC will have noticed the problem as well.
+ *
+ * The other possibility, if the RNG is not in High Assurance mode, would be
+ * simply a FIFO Underflow. No special action, other than to
+ * clear the interrupt, is taken.
+ */
+OS_DEV_ISR(rng_irq)
+{
+ int handled = FALSE; /* assume interrupt isn't from RNG */
+
+ LOG_KDIAG("rng irq!");
+
+ if (RNG_SEED_DONE()) {
+ complete(&rng_seed_done);
+ RNG_CLEAR_ALL_STATUS();
+ handled = TRUE;
+ }
+
+ if (RNG_SELF_TEST_DONE()) {
+ complete(&rng_self_testing);
+ RNG_CLEAR_ALL_STATUS();
+ handled = TRUE;
+ }
+ /* Look to see whether RNG needs attention */
+ if (RNG_HAS_ERROR()) {
+ if (RNG_GET_HIGH_ASSURANCE()) {
+ RNG_SLEEP();
+ rng_availability = RNG_STATUS_FAILED;
+ RNG_MASK_ALL_INTERRUPTS();
+ }
+ handled = TRUE;
+ /* Clear the interrupt */
+ RNG_CLEAR_ALL_STATUS();
+
+ }
+ os_dev_isr_return(handled);
+} /* rng_irq */
+
+/*****************************************************************************/
+/* fn map_RNG_memory() */
+/*****************************************************************************/
+/*!
+ * Place the RNG's memory into kernel virtual space.
+ *
+ * @return OS_ERROR_OK_S on success, os_error_code on failure
+ */
+static os_error_code rng_map_RNG_memory(void)
+{
+ os_error_code error_code = OS_ERROR_FAIL_S;
+
+ rng_base = os_map_device(RNG_BASE_ADDR, RNG_ADDRESS_RANGE);
+ if (rng_base == NULL) {
+ /* failure ! */
+ LOG_KDIAG("RNG Driver: ioremap failed.");
+ } else {
+ error_code = OS_ERROR_OK_S;
+ }
+
+ return error_code;
+} /* rng_map_RNG_memory */
+
+/*****************************************************************************/
+/* fn rng_setup_interrupt_handling() */
+/*****************************************************************************/
+/*!
+ * Register #rng_irq() as the interrupt handler for #INT_RNG.
+ *
+ * @return OS_ERROR_OK_S on success, os_error_code on failure
+ */
+static os_error_code rng_setup_interrupt_handling(void)
+{
+ os_error_code error_code;
+
+ /*
+ * Install interrupt service routine for the RNG. Ignore the
+ * assigned IRQ number.
+ */
+ error_code = os_register_interrupt(RNG_DRIVER_NAME, INT_RNG,
+ OS_DEV_ISR_REF(rng_irq));
+ if (error_code != OS_ERROR_OK_S) {
+ LOG_KDIAG("RNG Driver: Error installing Interrupt Handler");
+ } else {
+ rng_irq_set = TRUE;
+ RNG_UNMASK_ALL_INTERRUPTS();
+ }
+
+ return error_code;
+} /* rng_setup_interrupt_handling */
+
+/*****************************************************************************/
+/* fn rng_grab_config_values() */
+/*****************************************************************************/
+/*!
+ * Read configuration information from the RNG.
+ *
+ * Sets #rng_output_fifo_size.
+ *
+ * @return A error code indicating whether the part is the expected one.
+ */
+static os_error_code rng_grab_config_values(void)
+{
+ enum rng_type type;
+ os_error_code ret = OS_ERROR_FAIL_S;
+
+ /* Go for type, versions... */
+ type = RNG_GET_RNG_TYPE();
+
+ /* Make sure type is the one this code has been compiled for. */
+ if (RNG_VERIFY_TYPE(type)) {
+ rng_output_fifo_size = RNG_GET_FIFO_SIZE();
+ if (rng_output_fifo_size != 0) {
+ ret = OS_ERROR_OK_S;
+ }
+ }
+ if (ret != OS_ERROR_OK_S) {
+ LOG_KDIAG_ARGS
+ ("Unknown or unexpected RNG type %d (FIFO size %d)."
+ " Failing driver initialization", type,
+ rng_output_fifo_size);
+ }
+
+ return ret;
+}
+
+ /* rng_grab_config_values */
+
+/*****************************************************************************/
+/* fn rng_drain_fifo() */
+/*****************************************************************************/
+/*!
+ * This function copies words from the RNG FIFO into the caller's buffer.
+ *
+ *
+ * @param random_p Location to copy random data
+ * @param count_words Number of words to copy
+ *
+ * @return An error code.
+ */
+static fsl_shw_return_t rng_drain_fifo(uint32_t * random_p, int count_words)
+{
+
+ int words_in_rng; /* Number of words available now in RNG */
+ fsl_shw_return_t code = FSL_RETURN_ERROR_S;
+ int sequential_count = 0; /* times through big while w/empty FIFO */
+ int fifo_empty_count = 0; /* number of times FIFO was empty */
+ int max_sequential = 0; /* max times 0 seen in a row */
+#if !defined(FSL_HAVE_RNGA)
+ int count_for_reseed = 0;
+ INIT_COMPLETION(rng_seed_done);
+#endif
+#if !defined(FSL_HAVE_RNGA)
+ if (RNG_RESEED()) {
+ do {
+ LOG_KDIAG("Reseeding RNG");
+
+ RNG_CLEAR_ERR();
+ RNG_SEED_GEN();
+ wait_for_completion(&rng_seed_done);
+ if (count_for_reseed == 3) {
+ os_printk(KERN_ALERT
+ "Device was not able to enter RESEED Mode\n");
+ code = FSL_RETURN_INTERNAL_ERROR_S;
+ }
+ count_for_reseed++;
+ } while (RNG_CHECK_SEED_ERR());
+ }
+#endif
+ /* Copy all of them in. Stop if pool fills. */
+ while ((rng_availability == RNG_STATUS_OK) && (count_words > 0)) {
+ /* Ask RNG how many words currently in FIFO */
+ words_in_rng = RNG_GET_WORDS_IN_FIFO();
+ if (words_in_rng == 0) {
+ ++sequential_count;
+ fifo_empty_count++;
+ if (sequential_count > max_sequential) {
+ max_sequential = sequential_count;
+ }
+ if (sequential_count >= RNG_MAX_TRIES) {
+ LOG_KDIAG_ARGS("FIFO staying empty (%d)",
+ words_in_rng);
+ code = FSL_RETURN_NO_RESOURCE_S;
+ break;
+ }
+ } else {
+ /* Found at least one word */
+ sequential_count = 0;
+ /* Now adjust: words_in_rng = MAX(count_words, words_in_rng) */
+ words_in_rng = (count_words < words_in_rng)
+ ? count_words : words_in_rng;
+ } /* else found words */
+
+#ifdef RNG_FORCE_FIFO_UNDERFLOW
+ /*
+ * For unit test, force occasional extraction of more words than
+ * available. This should cause FIFO Underflow, and IRQ invocation.
+ */
+ words_in_rng = count_words;
+#endif
+
+ /* Copy out all available & neeeded data */
+ while (words_in_rng-- > 0) {
+ *random_p++ = RNG_READ_FIFO();
+ count_words--;
+ }
+ } /* while words still needed */
+
+ if (count_words == 0) {
+ code = FSL_RETURN_OK_S;
+ }
+ if (fifo_empty_count != 0) {
+ LOG_KDIAG_ARGS("FIFO empty %d times, max loop count %d",
+ fifo_empty_count, max_sequential);
+ }
+
+ return code;
+} /* rng_drain_fifo */
+
+/*****************************************************************************/
+/* fn rng_entropy_task() */
+/*****************************************************************************/
+/*!
+ * This is the background task of the driver. It is scheduled by
+ * RNG_ADD_WORK_ENTRY().
+ *
+ * This will process each entry on the #rng_work_queue. Blocking requests will
+ * cause sleepers to be awoken. Non-blocking requests will be placed on the
+ * results queue, and if appropriate, the callback function will be invoked.
+ */
+OS_DEV_TASK(rng_entropy_task)
+{
+ rng_work_entry_t *work;
+
+ os_dev_task_begin();
+
+#ifdef RNG_ENTROPY_DEBUG
+ LOG_KDIAG("entropy task starting");
+#endif
+
+ while ((work = RNG_GET_WORK_ENTRY()) != NULL) {
+#ifdef RNG_ENTROPY_DEBUG
+ LOG_KDIAG_ARGS("found %d bytes of work at %p (%p)",
+ work->length, work, work->data_local);
+#endif
+ work->hdr.code = rng_drain_fifo(work->data_local,
+ BYTES_TO_WORDS(work->length));
+ work->completed = TRUE;
+
+ if (work->hdr.flags & FSL_UCO_BLOCKING_MODE) {
+#ifdef RNG_ENTROPY_DEBUG
+ LOG_KDIAG("Waking queued processes");
+#endif
+ os_wake_sleepers(rng_wait_queue);
+ } else {
+ os_lock_context_t lock_context;
+
+ os_lock_save_context(rng_queue_lock, lock_context);
+ RNG_ADD_QUEUE_ENTRY(&work->hdr.user_ctx->result_pool,
+ work);
+ os_unlock_restore_context(rng_queue_lock, lock_context);
+
+ if (work->hdr.flags & FSL_UCO_CALLBACK_MODE) {
+ if (work->hdr.callback != NULL) {
+ work->hdr.callback(work->hdr.user_ctx);
+ } else {
+#ifdef RNG_ENTROPY_DEBUG
+ LOG_KDIAG_ARGS
+ ("Callback ptr for %p is NULL",
+ work);
+#endif
+ }
+ }
+ }
+ } /* while */
+
+#ifdef RNG_ENTROPY_DEBUG
+ LOG_KDIAG("entropy task ending");
+#endif
+
+ os_dev_task_return(OS_ERROR_OK_S);
+} /* rng_entropy_task */
+
+#ifdef FSL_HAVE_RNGA
+/*****************************************************************************/
+/* fn rng_sec_failure() */
+/*****************************************************************************/
+/*!
+ * Function to handle "Security Alarm" indication from SCC.
+ *
+ * This function is registered with the Security Monitor ans the callback
+ * function for the RNG driver. Upon alarm, it will shut down the driver so
+ * that no more random data can be retrieved.
+ *
+ * @return void
+ */
+static void rng_sec_failure(void)
+{
+ os_printk(KERN_ALERT "RNG Driver: Security Failure Alarm received.\n");
+
+ rng_cleanup();
+
+ return;
+}
+#endif
+
+#ifdef RNG_REGISTER_DEBUG
+/*****************************************************************************/
+/* fn dbg_rng_read_register() */
+/*****************************************************************************/
+/*!
+ * Noisily read a 32-bit value to an RNG register.
+ * @param offset The address of the register to read.
+ *
+ * @return The register value
+ * */
+static uint32_t dbg_rng_read_register(uint32_t offset)
+{
+ uint32_t value;
+
+ value = os_read32(rng_base + offset);
+#ifndef RNG_ENTROPY_DEBUG
+ if (offset != RNG_OUTPUT_FIFO) {
+#endif
+ pr_debug("RNG RD: 0x%4x : 0x%08x\n", offset, value);
+#ifndef RNG_ENTROPY_DEBUG
+ }
+#endif
+ return value;
+}
+
+/*****************************************************************************/
+/* fn dbg_rng_write_register() */
+/*****************************************************************************/
+/*!
+ * Noisily write a 32-bit value to an RNG register.
+ * @param offset The address of the register to written.
+ *
+ * @param value The new register value
+ */
+static void dbg_rng_write_register(uint32_t offset, uint32_t value)
+{
+ LOG_KDIAG_ARGS("WR: 0x%4x : 0x%08x", offset, value);
+ os_write32(value, rng_base + offset);
+ return;
+}
+
+#endif /* RNG_REGISTER_DEBUG */
diff --git a/drivers/mxc/security/rng/shw_driver.c b/drivers/mxc/security/rng/shw_driver.c
new file mode 100644
index 000000000000..a6e80a0d4eb0
--- /dev/null
+++ b/drivers/mxc/security/rng/shw_driver.c
@@ -0,0 +1,2335 @@
+/*
+ * Copyright (C) 2005-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*! @file shw_driver.c
+ *
+ * This is the user-mode driver code for the FSL Security Hardware (SHW) API.
+ * as well as the 'common' FSL SHW API code for kernel API users.
+ *
+ * Its interaction with the Linux kernel is from calls to shw_init() when the
+ * driver is loaded, and shw_shutdown() should the driver be unloaded.
+ *
+ * The User API (driver interface) is handled by the following functions:
+ * @li shw_open() - handles open() system call on FSL SHW device
+ * @li shw_release() - handles close() system call on FSL SHW device
+ * @li shw_ioctl() - handles ioctl() system call on FSL SHW device
+ *
+ * The driver also provides the following functions for kernel users of the FSL
+ * SHW API:
+ * @li fsl_shw_register_user()
+ * @li fsl_shw_deregister_user()
+ * @li fsl_shw_get_capabilities()
+ * @li fsl_shw_get_results()
+ *
+ * All other functions are internal to the driver.
+ *
+ * The life of the driver starts at boot (or module load) time, with a call by
+ * the kernel to shw_init().
+ *
+ * The life of the driver ends when the kernel is shutting down (or the driver
+ * is being unloaded). At this time, shw_shutdown() is called. No function
+ * will ever be called after that point.
+ *
+ * In the case that the driver is reloaded, a new copy of the driver, with
+ * fresh global values, etc., is loaded, and there will be a new call to
+ * shw_init().
+ *
+ * In user mode, the user's fsl_shw_register_user() call causes an open() event
+ * on the driver followed by a ioctl() with the registration information. Any
+ * subsequent API calls by the user are handled through the ioctl() function
+ * and shuffled off to the appropriate routine (or driver) for service. The
+ * fsl_shw_deregister_user() call by the user results in a close() function
+ * call on the driver.
+ *
+ * In kernel mode, the driver provides the functions fsl_shw_register_user(),
+ * fsl_shw_deregister_user(), fsl_shw_get_capabilities(), and
+ * fsl_shw_get_results(). Other parts of the API are provided by other
+ * drivers, if available, to support the cryptographic functions.
+ */
+
+#include "portable_os.h"
+#include "fsl_shw.h"
+#include "fsl_shw_keystore.h"
+
+#include "shw_internals.h"
+
+#ifdef FSL_HAVE_SCC2
+#include <linux/mxc_scc2_driver.h>
+#else
+#include <linux/mxc_scc_driver.h>
+#endif
+
+#ifdef SHW_DEBUG
+#include <diagnostic.h>
+#endif
+
+/******************************************************************************
+ *
+ * Function Declarations
+ *
+ *****************************************************************************/
+
+/* kernel interface functions */
+OS_DEV_INIT_DCL(shw_init);
+OS_DEV_SHUTDOWN_DCL(shw_shutdown);
+OS_DEV_IOCTL_DCL(shw_ioctl);
+OS_DEV_MMAP_DCL(shw_mmap);
+
+#ifdef LINUX_VERSION_CODE
+EXPORT_SYMBOL(fsl_shw_smalloc);
+EXPORT_SYMBOL(fsl_shw_sfree);
+EXPORT_SYMBOL(fsl_shw_sstatus);
+EXPORT_SYMBOL(fsl_shw_diminish_perms);
+EXPORT_SYMBOL(do_scc_encrypt_region);
+EXPORT_SYMBOL(do_scc_decrypt_region);
+
+EXPORT_SYMBOL(do_system_keystore_slot_alloc);
+EXPORT_SYMBOL(do_system_keystore_slot_dealloc);
+EXPORT_SYMBOL(do_system_keystore_slot_load);
+EXPORT_SYMBOL(do_system_keystore_slot_encrypt);
+EXPORT_SYMBOL(do_system_keystore_slot_decrypt);
+#endif
+
+static os_error_code
+shw_handle_scc_sfree(fsl_shw_uco_t * user_ctx, uint32_t info);
+
+static os_error_code
+shw_handle_scc_sstatus(fsl_shw_uco_t * user_ctx, uint32_t info);
+
+static os_error_code
+shw_handle_scc_drop_perms(fsl_shw_uco_t * user_ctx, uint32_t info);
+
+static os_error_code
+shw_handle_scc_encrypt(fsl_shw_uco_t * user_ctx, uint32_t info);
+
+static os_error_code
+shw_handle_scc_decrypt(fsl_shw_uco_t * user_ctx, uint32_t info);
+
+#ifdef FSL_HAVE_SCC2
+static fsl_shw_return_t register_user_partition(fsl_shw_uco_t * user_ctx,
+ uint32_t user_base,
+ void *kernel_base);
+static fsl_shw_return_t deregister_user_partition(fsl_shw_uco_t * user_ctx,
+ uint32_t user_base);
+void *lookup_user_partition(fsl_shw_uco_t * user_ctx, uint32_t user_base);
+
+#endif /* FSL_HAVE_SCC2 */
+
+/******************************************************************************
+ *
+ * Global / Static Variables
+ *
+ *****************************************************************************/
+
+/*!
+ * Major node (user/device interaction value) of this driver.
+ */
+static int shw_major_node = SHW_MAJOR_NODE;
+
+/*!
+ * Flag to know whether the driver has been associated with its user device
+ * node (e.g. /dev/shw).
+ */
+static int shw_device_registered = 0;
+
+/*!
+ * OS-dependent handle used for registering user interface of a driver.
+ */
+static os_driver_reg_t reg_handle;
+
+/*!
+ * Linked List of registered users of the API
+ */
+fsl_shw_uco_t *user_list;
+
+/*!
+ * This is the lock for all user request pools. H/W component drivers may also
+ * use it for their own work queues.
+ */
+os_lock_t shw_queue_lock = NULL;
+
+/* This is the system keystore object */
+fsl_shw_kso_t system_keystore;
+
+#ifndef FSL_HAVE_SAHARA
+/*! Empty list of supported symmetric algorithms. */
+static fsl_shw_key_alg_t pf_syms[] = {
+};
+
+/*! Empty list of supported symmetric modes. */
+static fsl_shw_sym_mode_t pf_modes[] = {
+};
+
+/*! Empty list of supported hash algorithms. */
+static fsl_shw_hash_alg_t pf_hashes[] = {
+};
+#endif /* no Sahara */
+
+/*! This matches SHW capabilities... */
+static fsl_shw_pco_t cap = {
+ 1, 3, /* api version number - major & minor */
+ 2, 3, /* driver version number - major & minor */
+ sizeof(pf_syms) / sizeof(fsl_shw_key_alg_t), /* key alg count */
+ pf_syms, /* key alg list ptr */
+ sizeof(pf_modes) / sizeof(fsl_shw_sym_mode_t), /* sym mode count */
+ pf_modes, /* modes list ptr */
+ sizeof(pf_hashes) / sizeof(fsl_shw_hash_alg_t), /* hash alg count */
+ pf_hashes, /* hash list ptr */
+ /*
+ * The following table must be set to handle all values of key algorithm
+ * and sym mode, and be in the correct order..
+ */
+ { /* Stream, ECB, CBC, CTR */
+ {0, 0, 0, 0}
+ , /* HMAC */
+ {0, 0, 0, 0}
+ , /* AES */
+ {0, 0, 0, 0}
+ , /* DES */
+#ifdef FSL_HAVE_DRYICE
+ {0, 1, 1, 0}
+ , /* 3DES - ECB and CBC */
+#else
+ {0, 0, 0, 0}
+ , /* 3DES */
+#endif
+ {0, 0, 0, 0} /* ARC4 */
+ }
+ ,
+ 0, 0, /* SCC driver version */
+ 0, 0, 0, /* SCC version/capabilities */
+ {{0, 0}
+ }
+ , /* (filled in during OS_INIT) */
+};
+
+/* These are often handy */
+#ifndef FALSE
+/*! Not true. Guaranteed to be zero. */
+#define FALSE 0
+#endif
+#ifndef TRUE
+/*! True. Guaranteed to be non-zero. */
+#define TRUE 1
+#endif
+
+/******************************************************************************
+ *
+ * Function Implementations - Externally Accessible
+ *
+ *****************************************************************************/
+
+/*****************************************************************************/
+/* fn shw_init() */
+/*****************************************************************************/
+/*!
+ * Initialize the driver.
+ *
+ * This routine is called during kernel init or module load (insmod).
+ *
+ * @return OS_ERROR_OK_S on success, errno on failure
+ */
+OS_DEV_INIT(shw_init)
+{
+ os_error_code error_code = OS_ERROR_NO_MEMORY_S; /* assume failure */
+ scc_config_t *shw_capabilities;
+
+#ifdef SHW_DEBUG
+ LOG_KDIAG("SHW Driver: Loading");
+#endif
+
+ user_list = NULL;
+ shw_queue_lock = os_lock_alloc_init();
+
+ if (shw_queue_lock != NULL) {
+ error_code = shw_setup_user_driver_interaction();
+ if (error_code != OS_ERROR_OK_S) {
+#ifdef SHW_DEBUG
+ LOG_KDIAG_ARGS
+ ("SHW Driver: Failed to setup user i/f: %d",
+ error_code);
+#endif
+ }
+ }
+
+ /* queue_lock not NULL */
+ /* Fill in the SCC portion of the capabilities object */
+ shw_capabilities = scc_get_configuration();
+ cap.scc_driver_major = shw_capabilities->driver_major_version;
+ cap.scc_driver_minor = shw_capabilities->driver_minor_version;
+ cap.scm_version = shw_capabilities->scm_version;
+ cap.smn_version = shw_capabilities->smn_version;
+ cap.block_size_bytes = shw_capabilities->block_size_bytes;
+
+#ifdef FSL_HAVE_SCC
+ cap.u.scc_info.black_ram_size_blocks =
+ shw_capabilities->black_ram_size_blocks;
+ cap.u.scc_info.red_ram_size_blocks =
+ shw_capabilities->red_ram_size_blocks;
+#elif defined(FSL_HAVE_SCC2)
+ cap.u.scc2_info.partition_size_bytes =
+ shw_capabilities->partition_size_bytes;
+ cap.u.scc2_info.partition_count = shw_capabilities->partition_count;
+#endif
+
+#if defined(FSL_HAVE_SCC2) || defined(FSL_HAVE_DRYICE)
+ if (error_code == OS_ERROR_OK_S) {
+ /* set up the system keystore, using the default keystore handler */
+ fsl_shw_init_keystore_default(&system_keystore);
+
+ if (fsl_shw_establish_keystore(NULL, &system_keystore)
+ == FSL_RETURN_OK_S) {
+ error_code = OS_ERROR_OK_S;
+ } else {
+ error_code = OS_ERROR_FAIL_S;
+ }
+
+ if (error_code != OS_ERROR_OK_S) {
+#ifdef SHW_DEBUG
+ LOG_KDIAG_ARGS
+ ("Registering the system keystore failed with error"
+ " code: %d\n", error_code);
+#endif
+ }
+ }
+#endif /* FSL_HAVE_SCC2 */
+
+ if (error_code != OS_ERROR_OK_S) {
+#ifdef SHW_DEBUG
+ LOG_KDIAG_ARGS("SHW: Driver initialization failed. %d",
+ error_code);
+#endif
+ shw_cleanup();
+ } else {
+#ifdef SHW_DEBUG
+ LOG_KDIAG("SHW: Driver initialization complete.");
+#endif
+ }
+
+ os_dev_init_return(error_code);
+} /* shw_init */
+
+/*****************************************************************************/
+/* fn shw_shutdown() */
+/*****************************************************************************/
+/*!
+ * Prepare driver for exit.
+ *
+ * This is called during @c rmmod when the driver is unloading or when the
+ * kernel is shutting down.
+ *
+ * Calls shw_cleanup() to do all work to undo anything that happened during
+ * initialization or while driver was running.
+ */
+OS_DEV_SHUTDOWN(shw_shutdown)
+{
+
+#ifdef SHW_DEBUG
+ LOG_KDIAG("SHW: shutdown called");
+#endif
+ shw_cleanup();
+
+ os_dev_shutdown_return(OS_ERROR_OK_S);
+} /* shw_shutdown */
+
+/*****************************************************************************/
+/* fn shw_cleanup() */
+/*****************************************************************************/
+/*!
+ * Prepare driver for shutdown.
+ *
+ * Remove the driver registration.
+ *
+ */
+static void shw_cleanup(void)
+{
+ if (shw_device_registered) {
+
+ /* Turn off the all association with OS */
+ os_driver_remove_registration(reg_handle);
+ shw_device_registered = 0;
+ }
+
+ if (shw_queue_lock != NULL) {
+ os_lock_deallocate(shw_queue_lock);
+ }
+#ifdef SHW_DEBUG
+ LOG_KDIAG("SHW Driver: Cleaned up");
+#endif
+} /* shw_cleanup */
+
+/*****************************************************************************/
+/* fn shw_open() */
+/*****************************************************************************/
+/*!
+ * Handle @c open() call from user.
+ *
+ * @return OS_ERROR_OK_S on success (always!)
+ */
+OS_DEV_OPEN(shw_open)
+{
+ os_error_code status = OS_ERROR_OK_S;
+
+ os_dev_set_user_private(NULL); /* Make sure */
+
+ os_dev_open_return(status);
+} /* shw_open */
+
+/*****************************************************************************/
+/* fn shw_ioctl() */
+/*****************************************************************************/
+/*!
+ * Process an ioctl() request from user-mode API.
+ *
+ * This code determines which of the API requests the user has made and then
+ * sends the request off to the appropriate function.
+ *
+ * @return ioctl_return()
+ */
+OS_DEV_IOCTL(shw_ioctl)
+{
+ os_error_code code = OS_ERROR_FAIL_S;
+
+ fsl_shw_uco_t *user_ctx = os_dev_get_user_private();
+
+#ifdef SHW_DEBUG
+ LOG_KDIAG_ARGS("SHW: IOCTL %d received", os_dev_get_ioctl_op());
+#endif
+ switch (os_dev_get_ioctl_op()) {
+
+ case SHW_IOCTL_REQUEST + SHW_USER_REQ_REGISTER_USER:
+#ifdef SHW_DEBUG
+ LOG_KDIAG("SHW: register_user ioctl received");
+#endif
+ {
+ fsl_shw_uco_t *user_ctx =
+ os_alloc_memory(sizeof(*user_ctx), 0);
+
+ if (user_ctx == NULL) {
+ code = OS_ERROR_NO_MEMORY_S;
+ } else {
+ code =
+ init_uco(user_ctx,
+ (fsl_shw_uco_t *)
+ os_dev_get_ioctl_arg());
+ if (code == OS_ERROR_OK_S) {
+ os_dev_set_user_private(user_ctx);
+ } else {
+ os_free_memory(user_ctx);
+ }
+ }
+ }
+ break;
+
+ case SHW_IOCTL_REQUEST + SHW_USER_REQ_DEREGISTER_USER:
+#ifdef SHW_DEBUG
+ LOG_KDIAG("SHW: deregister_user ioctl received");
+#endif
+ {
+ fsl_shw_uco_t *user_ctx = os_dev_get_user_private();
+ SHW_REMOVE_USER(user_ctx);
+ }
+ break;
+
+ case SHW_IOCTL_REQUEST + SHW_USER_REQ_GET_RESULTS:
+#ifdef SHW_DEBUG
+ LOG_KDIAG("SHW: get_results ioctl received");
+#endif
+ code = get_results(user_ctx,
+ (struct results_req *)
+ os_dev_get_ioctl_arg());
+ break;
+
+ case SHW_IOCTL_REQUEST + SHW_USER_REQ_GET_CAPABILITIES:
+#ifdef SHW_DEBUG
+ LOG_KDIAG("SHW: get_capabilities ioctl received");
+#endif
+ code = get_capabilities(user_ctx,
+ (fsl_shw_pco_t *)
+ os_dev_get_ioctl_arg());
+ break;
+
+ case SHW_IOCTL_REQUEST + SHW_USER_REQ_GET_RANDOM:
+#ifdef SHW_DEBUG
+ LOG_KDIAG("SHW: get_random ioctl received");
+#endif
+ code = get_random(user_ctx,
+ (struct get_random_req *)
+ os_dev_get_ioctl_arg());
+ break;
+
+ case SHW_IOCTL_REQUEST + SHW_USER_REQ_ADD_ENTROPY:
+#ifdef SHW_DEBUG
+ LOG_KDIAG("SHW: add_entropy ioctl received");
+#endif
+ code = add_entropy(user_ctx,
+ (struct add_entropy_req *)
+ os_dev_get_ioctl_arg());
+ break;
+
+ case SHW_IOCTL_REQUEST + SHW_USER_REQ_DROP_PERMS:
+#ifdef SHW_DEBUG
+ LOG_KDIAG("SHW: drop permissions ioctl received");
+#endif
+ code =
+ shw_handle_scc_drop_perms(user_ctx, os_dev_get_ioctl_arg());
+ break;
+
+ case SHW_IOCTL_REQUEST + SHW_USER_REQ_SSTATUS:
+#ifdef SHW_DEBUG
+ LOG_KDIAG("SHW: sstatus ioctl received");
+#endif
+ code = shw_handle_scc_sstatus(user_ctx, os_dev_get_ioctl_arg());
+ break;
+
+ case SHW_IOCTL_REQUEST + SHW_USER_REQ_SFREE:
+#ifdef SHW_DEBUG
+ LOG_KDIAG("SHW: sfree ioctl received");
+#endif
+ code = shw_handle_scc_sfree(user_ctx, os_dev_get_ioctl_arg());
+ break;
+
+ case SHW_IOCTL_REQUEST + SHW_USER_REQ_SCC_ENCRYPT:
+#ifdef SHW_DEBUG
+ LOG_KDIAG("SHW: scc encrypt ioctl received");
+#endif
+ code = shw_handle_scc_encrypt(user_ctx, os_dev_get_ioctl_arg());
+ break;
+
+ case SHW_IOCTL_REQUEST + SHW_USER_REQ_SCC_DECRYPT:
+#ifdef SHW_DEBUG
+ LOG_KDIAG("SHW: scc decrypt ioctl received");
+#endif
+ code = shw_handle_scc_decrypt(user_ctx, os_dev_get_ioctl_arg());
+ break;
+
+ default:
+#ifdef SHW_DEBUG
+ LOG_KDIAG_ARGS("SHW: Unexpected ioctl %d",
+ os_dev_get_ioctl_op());
+#endif
+ break;
+ }
+
+ os_dev_ioctl_return(code);
+}
+
+#ifdef FSL_HAVE_SCC2
+
+/*****************************************************************************/
+/* fn get_user_smid() */
+/*****************************************************************************/
+uint32_t get_user_smid(void *proc)
+{
+ /*
+ * A real implementation would have some way to handle signed applications
+ * which wouild be assigned distinct SMIDs. For the reference
+ * implementation, we show where this would be determined (here), but
+ * always provide a fixed answer, thus not separating users at all.
+ */
+
+ return 0x42eaae42;
+}
+
+/* user_base: userspace base address of the partition
+ * kernel_base: kernel mode base address of the partition
+ */
+static fsl_shw_return_t register_user_partition(fsl_shw_uco_t * user_ctx,
+ uint32_t user_base,
+ void *kernel_base)
+{
+ fsl_shw_spo_t *partition_info;
+ fsl_shw_return_t ret = FSL_RETURN_ERROR_S;
+
+ if (user_ctx == NULL) {
+ goto out;
+ }
+
+ partition_info = os_alloc_memory(sizeof(fsl_shw_spo_t), GFP_KERNEL);
+
+ if (partition_info == NULL) {
+ goto out;
+ }
+
+ /* stuff the partition info, then put it at the front of the chain */
+ partition_info->user_base = user_base;
+ partition_info->kernel_base = kernel_base;
+ partition_info->next = user_ctx->partition;
+
+ user_ctx->partition = (struct fsl_shw_spo_t *)partition_info;
+
+#ifdef SHW_DEBUG
+ LOG_KDIAG_ARGS
+ ("partition with user_base=%p, kernel_base=%p registered.",
+ (void *)user_base, kernel_base);
+#endif
+
+ ret = FSL_RETURN_OK_S;
+
+ out:
+
+ return ret;
+}
+
+/* if the partition is in the users list, remove it */
+static fsl_shw_return_t deregister_user_partition(fsl_shw_uco_t * user_ctx,
+ uint32_t user_base)
+{
+ fsl_shw_spo_t *curr = (fsl_shw_spo_t *) user_ctx->partition;
+ fsl_shw_spo_t *last = (fsl_shw_spo_t *) user_ctx->partition;
+
+ while (curr != NULL) {
+ if (curr->user_base == user_base) {
+
+#ifdef SHW_DEBUG
+ LOG_KDIAG_ARGS
+ ("deregister_user_partition: partition with "
+ "user_base=%p, kernel_base=%p deregistered.\n",
+ (void *)curr->user_base, curr->kernel_base);
+#endif
+
+ if (last == curr) {
+ user_ctx->partition = curr->next;
+ os_free_memory(curr);
+ return FSL_RETURN_OK_S;
+ } else {
+ last->next = curr->next;
+ os_free_memory(curr);
+ return FSL_RETURN_OK_S;
+ }
+ }
+ last = curr;
+ curr = (fsl_shw_spo_t *) curr->next;
+ }
+
+ return FSL_RETURN_ERROR_S;
+}
+
+/* Find the kernel-mode address of the partition.
+ * This can then be passed to the SCC functions.
+ */
+void *lookup_user_partition(fsl_shw_uco_t * user_ctx, uint32_t user_base)
+{
+ /* search through the partition chain to find one that matches the user base
+ * address.
+ */
+ fsl_shw_spo_t *curr = (fsl_shw_spo_t *) user_ctx->partition;
+
+ while (curr != NULL) {
+ if (curr->user_base == user_base) {
+ return curr->kernel_base;
+ }
+ curr = (fsl_shw_spo_t *) curr->next;
+ }
+ return NULL;
+}
+
+#endif /* FSL_HAVE_SCC2 */
+
+/*!
+*******************************************************************************
+* This function implements the smalloc() function for userspace programs, by
+* making a call to the SCC2 mmap() function that acquires a region of secure
+* memory on behalf of the user, and then maps it into the users memory space.
+* Currently, the only memory size supported is that of a single SCC2 partition.
+* Requests for other sized memory regions will fail.
+*/
+OS_DEV_MMAP(shw_mmap)
+{
+ os_error_code status = OS_ERROR_NO_MEMORY_S;
+
+#ifdef FSL_HAVE_SCC2
+ {
+ scc_return_t scc_ret;
+ fsl_shw_return_t fsl_ret;
+ uint32_t partition_registered = FALSE;
+
+ uint32_t user_base;
+ void *partition_base;
+ uint32_t smid;
+ scc_config_t *scc_configuration;
+
+ int part_no = -1;
+ uint32_t part_phys;
+
+ fsl_shw_uco_t *user_ctx =
+ (fsl_shw_uco_t *) os_dev_get_user_private();
+
+ /* Make sure that the user context is valid */
+ if (user_ctx == NULL) {
+ user_ctx =
+ os_alloc_memory(sizeof(*user_ctx), GFP_KERNEL);
+
+ if (user_ctx == NULL) {
+ status = OS_ERROR_NO_MEMORY_S;
+ goto out;
+ }
+ fsl_shw_register_user(user_ctx);
+ os_dev_set_user_private(user_ctx);
+ }
+
+ /* Determine the size of a secure partition */
+ scc_configuration = scc_get_configuration();
+
+ /* Check that the memory size requested is equal to the partition
+ * size, and that the requested destination is on a page boundary.
+ */
+ if (((os_mmap_user_base() % PAGE_SIZE) != 0) ||
+ (os_mmap_memory_size() !=
+ scc_configuration->partition_size_bytes)) {
+ status = OS_ERROR_BAD_ARG_S;
+ goto out;
+ }
+
+ /* Retrieve the SMID associated with the user */
+ smid = get_user_smid(user_ctx->process);
+
+ /* Attempt to allocate a secure partition */
+ scc_ret =
+ scc_allocate_partition(smid, &part_no, &partition_base,
+ &part_phys);
+ if (scc_ret != SCC_RET_OK) {
+ pr_debug
+ ("SCC mmap() request failed to allocate partition;"
+ " error %d\n", status);
+ status = OS_ERROR_FAIL_S;
+ goto out;
+ }
+
+ pr_debug("scc_mmap() acquired partition %d at %08x\n",
+ part_no, part_phys);
+
+ /* Record partition info in the user context */
+ user_base = os_mmap_user_base();
+ fsl_ret =
+ register_user_partition(user_ctx, user_base,
+ partition_base);
+
+ if (fsl_ret != FSL_RETURN_OK_S) {
+ pr_debug
+ ("SCC mmap() request failed to register partition with user"
+ " context, error: %d\n", fsl_ret);
+ status = OS_ERROR_FAIL_S;
+ }
+
+ partition_registered = TRUE;
+
+ status = map_user_memory(os_mmap_memory_ctx(), part_phys,
+ os_mmap_memory_size());
+
+#ifdef SHW_DEBUG
+ if (status == OS_ERROR_OK_S) {
+ LOG_KDIAG_ARGS
+ ("Partition allocated: user_base=%p, partition_base=%p.",
+ (void *)user_base, partition_base);
+ }
+#endif
+
+ out:
+ /* If there is an error it has to be handled here */
+ if (status != OS_ERROR_OK_S) {
+ /* if the partition was registered with the user, unregister it. */
+ if (partition_registered == TRUE) {
+ deregister_user_partition(user_ctx, user_base);
+ }
+
+ /* if the partition was allocated, deallocate it */
+ if (partition_base != NULL) {
+ scc_release_partition(partition_base);
+ }
+ }
+ }
+#endif /* FSL_HAVE_SCC2 */
+
+ return status;
+}
+
+/*****************************************************************************/
+/* fn shw_release() */
+/*****************************************************************************/
+/*!
+ * Handle @c close() call from user.
+ * This is a Linux device driver interface routine.
+ *
+ * @return OS_ERROR_OK_S on success (always!)
+ */
+OS_DEV_CLOSE(shw_release)
+{
+ fsl_shw_uco_t *user_ctx = os_dev_get_user_private();
+ os_error_code code = OS_ERROR_OK_S;
+
+ if (user_ctx != NULL) {
+
+ fsl_shw_deregister_user(user_ctx);
+ os_free_memory(user_ctx);
+ os_dev_set_user_private(NULL);
+
+ }
+
+ os_dev_close_return(code);
+} /* shw_release */
+
+/*****************************************************************************/
+/* fn shw_user_callback() */
+/*****************************************************************************/
+/*!
+ * FSL SHW User callback function.
+ *
+ * This function is set in the kernel version of the user context as the
+ * callback function when the user mode user wants a callback. Its job is to
+ * inform the user process that results (may) be available. It does this by
+ * sending a SIGUSR2 signal which is then caught by the user-mode FSL SHW
+ * library.
+ *
+ * @param user_ctx Kernel version of uco associated with the request.
+ *
+ * @return void
+ */
+static void shw_user_callback(fsl_shw_uco_t * user_ctx)
+{
+#ifdef SHW_DEBUG
+ LOG_KDIAG_ARGS("SHW: Signalling callback user process for context %p\n",
+ user_ctx);
+#endif
+ os_send_signal(user_ctx->process, SIGUSR2);
+}
+
+/*****************************************************************************/
+/* fn setup_user_driver_interaction() */
+/*****************************************************************************/
+/*!
+ * Register the driver with the kernel as the driver for shw_major_node. Note
+ * that this value may be zero, in which case the major number will be assigned
+ * by the OS. shw_major_node is never modified.
+ *
+ * The open(), ioctl(), and close() handles for the driver ned to be registered
+ * with the kernel. Upon success, shw_device_registered will be true;
+ *
+ * @return OS_ERROR_OK_S on success, or an os err code
+ */
+static os_error_code shw_setup_user_driver_interaction(void)
+{
+ os_error_code error_code;
+
+ os_driver_init_registration(reg_handle);
+ os_driver_add_registration(reg_handle, OS_FN_OPEN,
+ OS_DEV_OPEN_REF(shw_open));
+ os_driver_add_registration(reg_handle, OS_FN_IOCTL,
+ OS_DEV_IOCTL_REF(shw_ioctl));
+ os_driver_add_registration(reg_handle, OS_FN_CLOSE,
+ OS_DEV_CLOSE_REF(shw_release));
+ os_driver_add_registration(reg_handle, OS_FN_MMAP,
+ OS_DEV_MMAP_REF(shw_mmap));
+ error_code = os_driver_complete_registration(reg_handle, shw_major_node,
+ SHW_DRIVER_NAME);
+
+ if (error_code != OS_ERROR_OK_S) {
+ /* failure ! */
+#ifdef SHW_DEBUG
+ LOG_KDIAG_ARGS("SHW Driver: register device driver failed: %d",
+ error_code);
+#endif
+ } else { /* success */
+ shw_device_registered = TRUE;
+#ifdef SHW_DEBUG
+ LOG_KDIAG_ARGS("SHW Driver: Major node is %d\n",
+ os_driver_get_major(reg_handle));
+#endif
+ }
+
+ return error_code;
+} /* shw_setup_user_driver_interaction */
+
+/******************************************************************/
+/* User Mode Support */
+/******************************************************************/
+
+/*!
+ * Initialze kernel User Context Object from User-space version.
+ *
+ * Copy user UCO into kernel UCO, set flags and fields for operation
+ * within kernel space. Add user to driver's list of users.
+ *
+ * @param user_ctx Pointer to kernel space UCO
+ * @param user_mode_uco User pointer to user space version
+ *
+ * @return os_error_code
+ */
+static os_error_code init_uco(fsl_shw_uco_t * user_ctx, void *user_mode_uco)
+{
+ os_error_code code;
+
+ code = os_copy_from_user(user_ctx, user_mode_uco, sizeof(*user_ctx));
+ if (code == OS_ERROR_OK_S) {
+ user_ctx->flags |= FSL_UCO_USERMODE_USER;
+ user_ctx->result_pool.head = NULL;
+ user_ctx->result_pool.tail = NULL;
+ user_ctx->process = os_get_process_handle();
+ user_ctx->callback = shw_user_callback;
+ SHW_ADD_USER(user_ctx);
+ }
+#ifdef SHW_DEBUG
+ LOG_KDIAG_ARGS("SHW: init uco returning %d (flags %x)",
+ code, user_ctx->flags);
+#endif
+
+ return code;
+}
+
+/*!
+ * Copy array from kernel to user space.
+ *
+ * This routine will check bounds before trying to copy, and return failure
+ * on bounds violation or error during the copy.
+ *
+ * @param userloc Location in userloc to place data. If NULL, the function
+ * will do nothing (except return NULL).
+ * @param userend Address beyond allowed copy region at @c userloc.
+ * @param data_start Location of data to be copied
+ * @param element_size sizeof() an element
+ * @param element_count Number of elements of size element_size to copy.
+ * @return New value of userloc, or NULL if there was an error.
+ */
+inline static void *copy_array(void *userloc, void *userend, void *data_start,
+ unsigned element_size, unsigned element_count)
+{
+ unsigned byte_count = element_size * element_count;
+
+ if ((userloc == NULL) || (userend == NULL)
+ || ((userloc + byte_count) >= userend) ||
+ (copy_to_user(userloc, data_start, byte_count) != OS_ERROR_OK_S)) {
+ userloc = NULL;
+ } else {
+ userloc += byte_count;
+ }
+
+ return userloc;
+}
+
+/*!
+ * Send an FSL SHW API return code up into the user-space request structure.
+ *
+ * @param user_header User address of request block / request header
+ * @param result_code The FSL SHW API code to be placed at header.code
+ *
+ * @return an os_error_code
+ *
+ * NOTE: This function assumes that the shw_req_header is at the beginning of
+ * each request structure.
+ */
+inline static os_error_code copy_fsl_code(void *user_header,
+ fsl_shw_return_t result_code)
+{
+ return os_copy_to_user(user_header +
+ offsetof(struct shw_req_header, code),
+ &result_code, sizeof(result_code));
+}
+
+static os_error_code shw_handle_scc_drop_perms(fsl_shw_uco_t * user_ctx,
+ uint32_t info)
+{
+ os_error_code status = OS_ERROR_NO_MEMORY_S;
+#ifdef FSL_HAVE_SCC2
+ scc_return_t scc_ret;
+ scc_partition_info_t partition_info;
+ void *kernel_base;
+
+ status =
+ os_copy_from_user(&partition_info, (void *)info,
+ sizeof(partition_info));
+
+ if (status != OS_ERROR_OK_S) {
+ goto out;
+ }
+
+ /* validate that the user owns this partition, and look up its handle */
+ kernel_base = lookup_user_partition(user_ctx, partition_info.user_base);
+
+ if (kernel_base == NULL) {
+ status = OS_ERROR_FAIL_S;
+#ifdef SHW_DEBUG
+ LOG_KDIAG("_scc_drop_perms(): failed to find partition\n");
+#endif
+ goto out;
+ }
+
+ /* call scc driver to perform the drop */
+ scc_ret = scc_diminish_permissions(kernel_base,
+ partition_info.permissions);
+ if (scc_ret == SCC_RET_OK) {
+ status = OS_ERROR_OK_S;
+ } else {
+ status = OS_ERROR_FAIL_S;
+ }
+
+ out:
+#endif /* FSL_HAVE_SCC2 */
+ return status;
+}
+
+static os_error_code shw_handle_scc_sstatus(fsl_shw_uco_t * user_ctx,
+ uint32_t info)
+{
+ os_error_code status = OS_ERROR_NO_MEMORY_S;
+#ifdef FSL_HAVE_SCC2
+ scc_partition_info_t partition_info;
+ void *kernel_base;
+
+ status = os_copy_from_user(&partition_info,
+ (void *)info, sizeof(partition_info));
+
+ if (status != OS_ERROR_OK_S) {
+ goto out;
+ }
+
+ /* validate that the user owns this partition, and look up its handle */
+ kernel_base = lookup_user_partition(user_ctx, partition_info.user_base);
+
+ if (kernel_base == NULL) {
+ status = OS_ERROR_FAIL_S;
+#ifdef SHW_DEBUG
+ LOG_KDIAG("Failed to find partition\n");
+#endif
+ goto out;
+ }
+
+ /* Call the SCC driver to ask about the partition status */
+ partition_info.status = scc_partition_status(kernel_base);
+
+ /* and copy the structure out */
+ status = os_copy_to_user((void *)info,
+ &partition_info, sizeof(partition_info));
+
+ out:
+#endif /* FSL_HAVE_SCC2 */
+ return status;
+}
+
+static os_error_code shw_handle_scc_sfree(fsl_shw_uco_t * user_ctx,
+ uint32_t info)
+{
+ os_error_code status = OS_ERROR_NO_MEMORY_S;
+#ifdef FSL_HAVE_SCC2
+ {
+ scc_partition_info_t partition_info;
+ void *kernel_base;
+ int ret;
+
+ status = os_copy_from_user(&partition_info,
+ (void *)info,
+ sizeof(partition_info));
+
+ /* check that the copy was successful */
+ if (status != OS_ERROR_OK_S) {
+ goto out;
+ }
+
+ /* validate that the user owns this partition, and look up its handle */
+ kernel_base =
+ lookup_user_partition(user_ctx, partition_info.user_base);
+
+ if (kernel_base == NULL) {
+ status = OS_ERROR_FAIL_S;
+#ifdef SHW_DEBUG
+ LOG_KDIAG("failed to find partition\n");
+#endif /*SHW_DEBUG */
+ goto out;
+ }
+
+ /* Unmap the memory region (see sys_munmap in mmap.c) */
+ ret = unmap_user_memory(partition_info.user_base, 8192);
+
+ /* If the memory was successfully released */
+ if (ret == OS_ERROR_OK_S) {
+
+ /* release the partition */
+ scc_release_partition(kernel_base);
+
+ /* and remove it from the users context */
+ deregister_user_partition(user_ctx,
+ partition_info.user_base);
+
+ status = OS_ERROR_OK_S;
+
+ } else {
+#ifdef SHW_DEBUG
+ LOG_KDIAG("do_munmap not successful!");
+#endif
+ }
+
+ }
+ out:
+#endif /* FSL_HAVE_SCC2 */
+ return status;
+}
+
+static os_error_code shw_handle_scc_encrypt(fsl_shw_uco_t * user_ctx,
+ uint32_t info)
+{
+ os_error_code status = OS_ERROR_FAIL_S;
+#ifdef FSL_HAVE_SCC2
+ {
+ fsl_shw_return_t retval;
+ scc_region_t region_info;
+ void *page_ctx = NULL;
+ void *black_addr = NULL;
+ void *partition_base = NULL;
+ scc_config_t *scc_configuration;
+
+ status =
+ os_copy_from_user(&region_info, (void *)info,
+ sizeof(region_info));
+
+ if (status != OS_ERROR_OK_S) {
+ goto out;
+ }
+
+ /* validate that the user owns this partition, and look up its handle */
+ partition_base = lookup_user_partition(user_ctx,
+ region_info.
+ partition_base);
+
+ if (partition_base == NULL) {
+ status = OS_ERROR_FAIL_S;
+#ifdef SHW_DEBUG
+ LOG_KDIAG("failed to find secure partition\n");
+#endif
+ goto out;
+ }
+
+ /* Check that the memory size requested is correct */
+ scc_configuration = scc_get_configuration();
+ if (region_info.offset + region_info.length >
+ scc_configuration->partition_size_bytes) {
+ status = OS_ERROR_FAIL_S;
+ goto out;
+ }
+
+ /* wire down black_data */
+ black_addr = wire_user_memory(region_info.black_data,
+ region_info.length, &page_ctx);
+
+ if (black_addr == NULL) {
+ status = OS_ERROR_FAIL_S;
+ goto out;
+ }
+
+ retval =
+ do_scc_encrypt_region(NULL, partition_base,
+ region_info.offset,
+ region_info.length, black_addr,
+ region_info.IV,
+ region_info.cypher_mode);
+
+ if (retval == FSL_RETURN_OK_S) {
+ status = OS_ERROR_OK_S;
+ } else {
+ status = OS_ERROR_FAIL_S;
+ }
+
+ /* release black data */
+ unwire_user_memory(&page_ctx);
+ }
+ out:
+
+#endif /* FSL_HAVE_SCC2 */
+ return status;
+}
+
+static os_error_code shw_handle_scc_decrypt(fsl_shw_uco_t * user_ctx,
+ uint32_t info)
+{
+ os_error_code status = OS_ERROR_FAIL_S;
+#ifdef FSL_HAVE_SCC2
+ {
+ fsl_shw_return_t retval;
+ scc_region_t region_info;
+ void *page_ctx = NULL;
+ void *black_addr;
+ void *partition_base;
+ scc_config_t *scc_configuration;
+
+ status =
+ os_copy_from_user(&region_info, (void *)info,
+ sizeof(region_info));
+
+#ifdef SHW_DEBUG
+ LOG_KDIAG_ARGS
+ ("partition_base: %p, offset: %i, length: %i, black data: %p",
+ (void *)region_info.partition_base, region_info.offset,
+ region_info.length, (void *)region_info.black_data);
+#endif
+
+ if (status != OS_ERROR_OK_S) {
+ goto out;
+ }
+
+ /* validate that the user owns this partition, and look up its handle */
+ partition_base = lookup_user_partition(user_ctx,
+ region_info.
+ partition_base);
+
+ if (partition_base == NULL) {
+ status = OS_ERROR_FAIL_S;
+#ifdef SHW_DEBUG
+ LOG_KDIAG("failed to find partition\n");
+#endif
+ goto out;
+ }
+
+ /* Check that the memory size requested is correct */
+ scc_configuration = scc_get_configuration();
+ if (region_info.offset + region_info.length >
+ scc_configuration->partition_size_bytes) {
+ status = OS_ERROR_FAIL_S;
+ goto out;
+ }
+
+ /* wire down black_data */
+ black_addr = wire_user_memory(region_info.black_data,
+ region_info.length, &page_ctx);
+
+ if (black_addr == NULL) {
+ status = OS_ERROR_FAIL_S;
+ goto out;
+ }
+
+ retval =
+ do_scc_decrypt_region(NULL, partition_base,
+ region_info.offset,
+ region_info.length, black_addr,
+ region_info.IV,
+ region_info.cypher_mode);
+
+ if (retval == FSL_RETURN_OK_S) {
+ status = OS_ERROR_OK_S;
+ } else {
+ status = OS_ERROR_FAIL_S;
+ }
+
+ /* release black data */
+ unwire_user_memory(&page_ctx);
+ }
+ out:
+
+#endif /* FSL_HAVE_SCC2 */
+ return status;
+}
+
+fsl_shw_return_t do_system_keystore_slot_alloc(fsl_shw_uco_t * user_ctx,
+ uint32_t key_length,
+ uint64_t ownerid,
+ uint32_t * slot)
+{
+ (void)user_ctx;
+ return keystore_slot_alloc(&system_keystore, key_length, ownerid, slot);
+}
+
+fsl_shw_return_t do_system_keystore_slot_dealloc(fsl_shw_uco_t * user_ctx,
+ uint64_t ownerid,
+ uint32_t slot)
+{
+ (void)user_ctx;
+ return keystore_slot_dealloc(&system_keystore, ownerid, slot);
+}
+
+fsl_shw_return_t do_system_keystore_slot_load(fsl_shw_uco_t * user_ctx,
+ uint64_t ownerid,
+ uint32_t slot,
+ const uint8_t * key,
+ uint32_t key_length)
+{
+ (void)user_ctx;
+ return keystore_slot_load(&system_keystore, ownerid, slot,
+ (void *)key, key_length);
+}
+
+fsl_shw_return_t do_system_keystore_slot_encrypt(fsl_shw_uco_t * user_ctx,
+ uint64_t ownerid,
+ uint32_t slot,
+ uint32_t key_length,
+ uint8_t * black_data)
+{
+ (void)user_ctx;
+ return keystore_slot_encrypt(NULL, &system_keystore, ownerid,
+ slot, key_length, black_data);
+}
+
+fsl_shw_return_t do_system_keystore_slot_decrypt(fsl_shw_uco_t * user_ctx,
+ uint64_t ownerid,
+ uint32_t slot,
+ uint32_t key_length,
+ const uint8_t * black_data)
+{
+ (void)user_ctx;
+ return keystore_slot_decrypt(NULL, &system_keystore, ownerid,
+ slot, key_length, black_data);
+}
+
+fsl_shw_return_t do_system_keystore_slot_read(fsl_shw_uco_t * user_ctx,
+ uint64_t ownerid,
+ uint32_t slot,
+ uint32_t key_length,
+ uint8_t * key_data)
+{
+ (void)user_ctx;
+
+ return keystore_slot_read(&system_keystore, ownerid,
+ slot, key_length, key_data);
+}
+
+/*!
+ * Handle user-mode Get Capabilities request
+ *
+ * Right now, this function can only have a failure if the user has failed to
+ * provide a pointer to a location in user space with enough room to hold the
+ * fsl_shw_pco_t structure and any associated data. It will treat this failure
+ * as an ioctl failure and return an ioctl error code, instead of treating it
+ * as an API failure.
+ *
+ * @param user_ctx The kernel version of user's context
+ * @param user_mode_pco_request Pointer to user-space request
+ *
+ * @return an os_error_code
+ */
+static os_error_code get_capabilities(fsl_shw_uco_t * user_ctx,
+ void *user_mode_pco_request)
+{
+ os_error_code code;
+ struct capabilities_req req;
+ fsl_shw_pco_t local_cap;
+
+ memcpy(&local_cap, &cap, sizeof(cap));
+ /* Initialize pointers to out-of-struct arrays */
+ local_cap.sym_algorithms = NULL;
+ local_cap.sym_modes = NULL;
+ local_cap.sym_modes = NULL;
+
+ code = os_copy_from_user(&req, user_mode_pco_request, sizeof(req));
+ if (code == OS_ERROR_OK_S) {
+ void *endcap;
+ void *user_bounds;
+#ifdef SHW_DEBUG
+ LOG_KDIAG_ARGS("SHE: Received get_cap request: 0x%p/%u/0x%x",
+ req.capabilities, req.size,
+ sizeof(fsl_shw_pco_t));
+#endif
+ endcap = req.capabilities + 1; /* point to end of structure */
+ user_bounds = (void *)req.capabilities + req.size; /* end of area */
+
+ /* First verify that request is big enough for the main structure */
+ if (endcap >= user_bounds) {
+ endcap = NULL; /* No! */
+ }
+
+ /* Copy any Symmetric Algorithm suppport */
+ if (cap.sym_algorithm_count != 0) {
+ local_cap.sym_algorithms = endcap;
+ endcap =
+ copy_array(endcap, user_bounds, cap.sym_algorithms,
+ sizeof(fsl_shw_key_alg_t),
+ cap.sym_algorithm_count);
+ }
+
+ /* Copy any Symmetric Modes suppport */
+ if (cap.sym_mode_count != 0) {
+ local_cap.sym_modes = endcap;
+ endcap = copy_array(endcap, user_bounds, cap.sym_modes,
+ sizeof(fsl_shw_sym_mode_t),
+ cap.sym_mode_count);
+ }
+
+ /* Copy any Hash Algorithm suppport */
+ if (cap.hash_algorithm_count != 0) {
+ local_cap.hash_algorithms = endcap;
+ endcap =
+ copy_array(endcap, user_bounds, cap.hash_algorithms,
+ sizeof(fsl_shw_hash_alg_t),
+ cap.hash_algorithm_count);
+ }
+
+ /* Now copy up the (possibly modified) main structure */
+ if (endcap != NULL) {
+ code =
+ os_copy_to_user(req.capabilities, &local_cap,
+ sizeof(cap));
+ }
+
+ if (endcap == NULL) {
+ code = OS_ERROR_BAD_ADDRESS_S;
+ }
+
+ /* And return the FSL SHW code in the request structure. */
+ if (code == OS_ERROR_OK_S) {
+ code =
+ copy_fsl_code(user_mode_pco_request,
+ FSL_RETURN_OK_S);
+ }
+ }
+
+ /* code may already be set to an error. This is another error case. */
+
+#ifdef SHW_DEBUG
+ LOG_KDIAG_ARGS("SHW: get capabilities returning %d", code);
+#endif
+
+ return code;
+}
+
+/*!
+ * Handle user-mode Get Results request
+ *
+ * Get arguments from user space into kernel space, then call
+ * fsl_shw_get_results, and then copy its return code and any results from
+ * kernel space back to user space.
+ *
+ * @param user_ctx The kernel version of user's context
+ * @param user_mode_results_req Pointer to user-space request
+ *
+ * @return an os_error_code
+ */
+static os_error_code get_results(fsl_shw_uco_t * user_ctx,
+ void *user_mode_results_req)
+{
+ os_error_code code;
+ struct results_req req;
+ fsl_shw_result_t *results = NULL;
+ int loop;
+
+ code = os_copy_from_user(&req, user_mode_results_req, sizeof(req));
+ loop = 0;
+
+ if (code == OS_ERROR_OK_S) {
+ results = os_alloc_memory(req.requested * sizeof(*results), 0);
+ if (results == NULL) {
+ code = OS_ERROR_NO_MEMORY_S;
+ }
+ }
+
+ if (code == OS_ERROR_OK_S) {
+ fsl_shw_return_t err =
+ fsl_shw_get_results(user_ctx, req.requested,
+ results, &req.actual);
+
+ /* Send API return code up to user. */
+ code = copy_fsl_code(user_mode_results_req, err);
+
+ if ((code == OS_ERROR_OK_S) && (err == FSL_RETURN_OK_S)) {
+ /* Now copy up the result count */
+ code = os_copy_to_user(user_mode_results_req
+ + offsetof(struct results_req,
+ actual), &req.actual,
+ sizeof(req.actual));
+ if ((code == OS_ERROR_OK_S) && (req.actual != 0)) {
+ /* now copy up the results... */
+ code = os_copy_to_user(req.results, results,
+ req.actual *
+ sizeof(*results));
+ }
+ }
+ }
+
+ if (results != NULL) {
+ os_free_memory(results);
+ }
+
+ return code;
+}
+
+/*!
+ * Process header of user-mode request.
+ *
+ * Mark header as User Mode request. Update UCO's flags and reference fields
+ * with current versions from the header.
+ *
+ * @param user_ctx Pointer to kernel version of UCO.
+ * @param hdr Pointer to common part of user request.
+ *
+ * @return void
+ */
+inline static void process_hdr(fsl_shw_uco_t * user_ctx,
+ struct shw_req_header *hdr)
+{
+ hdr->flags |= FSL_UCO_USERMODE_USER;
+ user_ctx->flags = hdr->flags;
+ user_ctx->user_ref = hdr->user_ref;
+
+ return;
+}
+
+/*!
+ * Handle user-mode Get Random request
+ *
+ * @param user_ctx The kernel version of user's context
+ * @param user_mode_get_random_req Pointer to user-space request
+ *
+ * @return an os_error_code
+ */
+static os_error_code get_random(fsl_shw_uco_t * user_ctx,
+ void *user_mode_get_random_req)
+{
+ os_error_code code;
+ struct get_random_req req;
+
+ code = os_copy_from_user(&req, user_mode_get_random_req, sizeof(req));
+ if (code == OS_ERROR_OK_S) {
+ process_hdr(user_ctx, &req.hdr);
+#ifdef SHW_DEBUG
+ LOG_KDIAG_ARGS
+ ("SHW: get_random() for %d bytes in %sblocking mode",
+ req.size,
+ (req.hdr.flags & FSL_UCO_BLOCKING_MODE) ? "" : "non-");
+#endif
+ req.hdr.code =
+ fsl_shw_get_random(user_ctx, req.size, req.random);
+
+#ifdef SHW_DEBUG
+ LOG_KDIAG_ARGS("SHW: get_random() returning %d", req.hdr.code);
+#endif
+
+ /* Copy FSL function status back to user */
+ code = copy_fsl_code(user_mode_get_random_req, req.hdr.code);
+ }
+
+ return code;
+}
+
+/*!
+ * Handle user-mode Add Entropy request
+ *
+ * @param user_ctx Pointer to the kernel version of user's context
+ * @param user_mode_add_entropy_req Address of user-space request
+ *
+ * @return an os_error_code
+ */
+static os_error_code add_entropy(fsl_shw_uco_t * user_ctx,
+ void *user_mode_add_entropy_req)
+{
+ os_error_code code;
+ struct add_entropy_req req;
+ uint8_t *local_buffer = NULL;
+
+ code = os_copy_from_user(&req, user_mode_add_entropy_req, sizeof(req));
+ if (code == OS_ERROR_OK_S) {
+ local_buffer = os_alloc_memory(req.size, 0); /* for random */
+ if (local_buffer != NULL) {
+ code =
+ os_copy_from_user(local_buffer, req.entropy,
+ req.size);
+ }
+ if (code == OS_ERROR_OK_S) {
+ req.hdr.code = fsl_shw_add_entropy(user_ctx, req.size,
+ local_buffer);
+
+ code =
+ copy_fsl_code(user_mode_add_entropy_req,
+ req.hdr.code);
+ }
+ }
+
+ if (local_buffer != NULL) {
+ os_free_memory(local_buffer);
+ }
+
+ return code;
+}
+
+/******************************************************************/
+/* End User Mode Support */
+/******************************************************************/
+
+#ifdef LINUX_VERSION_CODE
+EXPORT_SYMBOL(fsl_shw_register_user);
+#endif
+/* REQ-S2LRD-PINTFC-API-GEN-004 */
+/*
+ * Handle user registration.
+ *
+ * @param user_ctx The user context for the registration.
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+fsl_shw_return_t fsl_shw_register_user(fsl_shw_uco_t * user_ctx)
+{
+ fsl_shw_return_t code = FSL_RETURN_INTERNAL_ERROR_S;
+
+ if ((user_ctx->flags & FSL_UCO_BLOCKING_MODE) &&
+ (user_ctx->flags & FSL_UCO_CALLBACK_MODE)) {
+ code = FSL_RETURN_BAD_FLAG_S;
+ goto error_exit;
+ } else if (user_ctx->pool_size == 0) {
+ code = FSL_RETURN_NO_RESOURCE_S;
+ goto error_exit;
+ } else {
+ user_ctx->result_pool.head = NULL;
+ user_ctx->result_pool.tail = NULL;
+ SHW_ADD_USER(user_ctx);
+ code = FSL_RETURN_OK_S;
+ }
+
+ error_exit:
+ return code;
+}
+
+#ifdef LINUX_VERSION_CODE
+EXPORT_SYMBOL(fsl_shw_deregister_user);
+#endif
+/* REQ-S2LRD-PINTFC-API-GEN-005 */
+/*!
+ * Destroy the association between the the user and the provider of the API.
+ *
+ * @param user_ctx The user context which is no longer needed.
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+fsl_shw_return_t fsl_shw_deregister_user(fsl_shw_uco_t * user_ctx)
+{
+ shw_queue_entry_t *finished_request;
+ fsl_shw_return_t ret = FSL_RETURN_OK_S;
+
+ /* Clean up what we find in result pool. */
+ do {
+ os_lock_context_t lock_context;
+ os_lock_save_context(shw_queue_lock, lock_context);
+ finished_request = user_ctx->result_pool.head;
+
+ if (finished_request != NULL) {
+ SHW_QUEUE_REMOVE_ENTRY(&user_ctx->result_pool,
+ finished_request);
+ os_unlock_restore_context(shw_queue_lock, lock_context);
+ os_free_memory(finished_request);
+ } else {
+ os_unlock_restore_context(shw_queue_lock, lock_context);
+ }
+ } while (finished_request != NULL);
+
+#ifdef FSL_HAVE_SCC2
+ {
+ fsl_shw_spo_t *partition;
+ struct mm_struct *mm = current->mm;
+
+ while ((user_ctx->partition != NULL)
+ && (ret == FSL_RETURN_OK_S)) {
+
+ partition = user_ctx->partition;
+
+#ifdef SHW_DEBUG
+ LOG_KDIAG_ARGS
+ ("Found an abandoned secure partition at %p, releasing",
+ partition);
+#endif
+
+ /* It appears that current->mm is not valid if this is called from a
+ * close routine (perhaps only if the program raised an exception that
+ * caused it to close?) If that is the case, then still free the
+ * partition, but do not remove it from the memory space (dangerous?)
+ */
+
+ if (mm == NULL) {
+#ifdef SHW_DEBUG
+ LOG_KDIAG
+ ("Warning: no mm structure found, not unmapping "
+ "partition from user memory\n");
+#endif
+ } else {
+ /* Unmap the memory region (see sys_munmap in mmap.c) */
+ /* Note that this assumes a single memory partition */
+ unmap_user_memory(partition->user_base, 8192);
+ }
+
+ /* If the memory was successfully released */
+ if (ret == OS_ERROR_OK_S) {
+ /* release the partition */
+ scc_release_partition(partition->kernel_base);
+
+ /* and remove it from the users context */
+ deregister_user_partition(user_ctx,
+ partition->user_base);
+
+ ret = FSL_RETURN_OK_S;
+ } else {
+ ret = FSL_RETURN_ERROR_S;
+
+ goto out;
+ }
+ }
+ }
+ out:
+#endif /* FSL_HAVE_SCC2 */
+
+ SHW_REMOVE_USER(user_ctx);
+
+ return ret;
+}
+
+#ifdef LINUX_VERSION_CODE
+EXPORT_SYMBOL(fsl_shw_get_results);
+#endif
+/* REQ-S2LRD-PINTFC-API-GEN-006 */
+fsl_shw_return_t fsl_shw_get_results(fsl_shw_uco_t * user_ctx,
+ unsigned result_size,
+ fsl_shw_result_t results[],
+ unsigned *result_count)
+{
+ shw_queue_entry_t *finished_request;
+ unsigned loop = 0;
+
+ do {
+ os_lock_context_t lock_context;
+
+ /* Protect state of user's result pool until we have retrieved and
+ * remove the first entry, or determined that the pool is empty. */
+ os_lock_save_context(shw_queue_lock, lock_context);
+ finished_request = user_ctx->result_pool.head;
+
+ if (finished_request != NULL) {
+ uint32_t code = 0;
+
+ SHW_QUEUE_REMOVE_ENTRY(&user_ctx->result_pool,
+ finished_request);
+ os_unlock_restore_context(shw_queue_lock, lock_context);
+
+ results[loop].user_ref = finished_request->user_ref;
+ results[loop].code = finished_request->code;
+ results[loop].detail1 = 0;
+ results[loop].detail2 = 0;
+ results[loop].user_req =
+ finished_request->user_mode_req;
+ if (finished_request->postprocess != NULL) {
+ code =
+ finished_request->
+ postprocess(finished_request);
+ }
+
+ results[loop].code = finished_request->code;
+ os_free_memory(finished_request);
+ if (code == 0) {
+ loop++;
+ }
+ } else { /* finished_request is NULL */
+ /* pool is empty */
+ os_unlock_restore_context(shw_queue_lock, lock_context);
+ }
+
+ } while ((loop < result_size) && (finished_request != NULL));
+
+ *result_count = loop;
+
+ return FSL_RETURN_OK_S;
+}
+
+#ifdef LINUX_VERSION_CODE
+EXPORT_SYMBOL(fsl_shw_get_capabilities);
+#endif
+fsl_shw_pco_t *fsl_shw_get_capabilities(fsl_shw_uco_t * user_ctx)
+{
+
+ /* Unused */
+ (void)user_ctx;
+
+ return &cap;
+}
+
+#if !(defined(FSL_HAVE_SAHARA) || defined(FSL_HAVE_RNGA) \
+ || defined(FSL_HAVE_RNGB) || defined(FSL_HAVE_RNGC))
+
+#if defined(LINUX_VERSION_CODE)
+EXPORT_SYMBOL(fsl_shw_get_random);
+#endif
+fsl_shw_return_t fsl_shw_get_random(fsl_shw_uco_t * user_ctx,
+ uint32_t length, uint8_t * data)
+{
+
+ /* Unused */
+ (void)user_ctx;
+ (void)length;
+ (void)data;
+
+ return FSL_RETURN_ERROR_S;
+}
+
+#if defined(LINUX_VERSION_CODE)
+EXPORT_SYMBOL(fsl_shw_add_entropy);
+#endif
+fsl_shw_return_t fsl_shw_add_entropy(fsl_shw_uco_t * user_ctx,
+ uint32_t length, uint8_t * data)
+{
+
+ /* Unused */
+ (void)user_ctx;
+ (void)length;
+ (void)data;
+
+ return FSL_RETURN_ERROR_S;
+}
+#endif
+
+#if !defined(FSL_HAVE_DRYICE) && !defined(FSL_HAVE_SAHARA2)
+#if 0
+#ifdef LINUX_VERSION_CODE
+EXPORT_SYMBOL(fsl_shw_symmetric_decrypt);
+#endif
+fsl_shw_return_t fsl_shw_symmetric_decrypt(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info,
+ fsl_shw_scco_t * sym_ctx,
+ uint32_t length,
+ const uint8_t * ct, uint8_t * pt)
+{
+
+ /* Unused */
+ (void)user_ctx;
+ (void)key_info;
+ (void)sym_ctx;
+ (void)length;
+ (void)ct;
+ (void)pt;
+
+ return FSL_RETURN_ERROR_S;
+}
+
+#ifdef LINUX_VERSION_CODE
+EXPORT_SYMBOL(fsl_shw_symmetric_encrypt);
+#endif
+fsl_shw_return_t fsl_shw_symmetric_encrypt(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info,
+ fsl_shw_scco_t * sym_ctx,
+ uint32_t length,
+ const uint8_t * pt, uint8_t * ct)
+{
+
+ /* Unused */
+ (void)user_ctx;
+ (void)key_info;
+ (void)sym_ctx;
+ (void)length;
+ (void)pt;
+ (void)ct;
+
+ return FSL_RETURN_ERROR_S;
+}
+
+/* DryIce support provided in separate file */
+
+#ifdef LINUX_VERSION_CODE
+EXPORT_SYMBOL(fsl_shw_establish_key);
+#endif
+fsl_shw_return_t fsl_shw_establish_key(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info,
+ fsl_shw_key_wrap_t establish_type,
+ const uint8_t * key)
+{
+
+ /* Unused */
+ (void)user_ctx;
+ (void)key_info;
+ (void)establish_type;
+ (void)key;
+
+ return FSL_RETURN_ERROR_S;
+}
+
+#ifdef LINUX_VERSION_CODE
+EXPORT_SYMBOL(fsl_shw_extract_key);
+#endif
+fsl_shw_return_t fsl_shw_extract_key(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info,
+ uint8_t * covered_key)
+{
+
+ /* Unused */
+ (void)user_ctx;
+ (void)key_info;
+ (void)covered_key;
+
+ return FSL_RETURN_ERROR_S;
+}
+
+#ifdef LINUX_VERSION_CODE
+EXPORT_SYMBOL(fsl_shw_release_key);
+#endif
+fsl_shw_return_t fsl_shw_release_key(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info)
+{
+
+ /* Unused */
+ (void)user_ctx;
+ (void)key_info;
+
+ return FSL_RETURN_ERROR_S;
+}
+#endif
+#endif /* SAHARA or DRYICE */
+
+#ifdef LINUX_VERSION_CODE
+EXPORT_SYMBOL(fsl_shw_hash);
+#endif
+#if !defined(FSL_HAVE_SAHARA)
+fsl_shw_return_t fsl_shw_hash(fsl_shw_uco_t * user_ctx,
+ fsl_shw_hco_t * hash_ctx,
+ const uint8_t * msg,
+ uint32_t length,
+ uint8_t * result, uint32_t result_len)
+{
+ fsl_shw_return_t ret = FSL_RETURN_ERROR_S;
+
+ /* Unused */
+ (void)user_ctx;
+ (void)hash_ctx;
+ (void)msg;
+ (void)length;
+ (void)result;
+ (void)result_len;
+
+ return ret;
+}
+#endif
+
+#ifndef FSL_HAVE_SAHARA
+#ifdef LINUX_VERSION_CODE
+EXPORT_SYMBOL(fsl_shw_hmac_precompute);
+#endif
+
+fsl_shw_return_t fsl_shw_hmac_precompute(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info,
+ fsl_shw_hmco_t * hmac_ctx)
+{
+ fsl_shw_return_t status = FSL_RETURN_ERROR_S;
+
+ /* Unused */
+ (void)user_ctx;
+ (void)key_info;
+ (void)hmac_ctx;
+
+ return status;
+}
+
+#ifdef LINUX_VERSION_CODE
+EXPORT_SYMBOL(fsl_shw_hmac);
+#endif
+
+fsl_shw_return_t fsl_shw_hmac(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info,
+ fsl_shw_hmco_t * hmac_ctx,
+ const uint8_t * msg,
+ uint32_t length,
+ uint8_t * result, uint32_t result_len)
+{
+ fsl_shw_return_t status = FSL_RETURN_ERROR_S;
+
+ /* Unused */
+ (void)user_ctx;
+ (void)key_info;
+ (void)hmac_ctx;
+ (void)msg;
+ (void)length;
+ (void)result;
+ (void)result_len;
+
+ return status;
+}
+#endif
+
+/*!
+ * Call the proper function to encrypt a region of encrypted secure memory
+ *
+ * @brief
+ *
+ * @param user_ctx User context of the partition owner (NULL in kernel)
+ * @param partition_base Base address (physical) of the partition
+ * @param offset_bytes Offset from base address of the data to be encrypted
+ * @param byte_count Length of the message (bytes)
+ * @param black_data Pointer to where the encrypted data is stored
+ * @param IV IV to use for encryption
+ * @param cypher_mode Cyphering mode to use, specified by type
+ * #fsl_shw_cypher_mode_t
+ *
+ * @return status
+ */
+fsl_shw_return_t
+do_scc_encrypt_region(fsl_shw_uco_t * user_ctx,
+ void *partition_base, uint32_t offset_bytes,
+ uint32_t byte_count, uint8_t * black_data,
+ uint32_t * IV, fsl_shw_cypher_mode_t cypher_mode)
+{
+ fsl_shw_return_t retval = FSL_RETURN_ERROR_S;
+#ifdef FSL_HAVE_SCC2
+
+ scc_return_t scc_ret;
+
+#ifdef SHW_DEBUG
+ uint32_t *owner_32 = (uint32_t *) & (owner_id);
+
+ LOG_KDIAG_ARGS
+ ("partition base: %p, offset: %i, count: %i, black data: %p\n",
+ partition_base, offset_bytes, byte_count, (void *)black_data);
+
+ LOG_KDIAG_ARGS("Owner ID: %08x%08x\n", owner_32[1], owner_32[0]);
+#endif /* SHW_DEBUG */
+ (void)user_ctx;
+
+ os_cache_flush_range(black_data, byte_count);
+
+ scc_ret =
+ scc_encrypt_region((uint32_t) partition_base, offset_bytes,
+ byte_count, __virt_to_phys(black_data), IV,
+ cypher_mode);
+
+ if (scc_ret == SCC_RET_OK) {
+ retval = FSL_RETURN_OK_S;
+ } else {
+ retval = FSL_RETURN_ERROR_S;
+ }
+
+ /* The SCC2 DMA engine should have written to the black ram, so we need to
+ * invalidate that region of memory. Note that the red ram is not an
+ * because it is mapped with the cache disabled.
+ */
+ os_cache_inv_range(black_data, byte_count);
+
+#endif /* FSL_HAVE_SCC2 */
+ return retval;
+}
+
+/*!
+ * Call the proper function to decrypt a region of encrypted secure memory
+ *
+ * @brief
+ *
+ * @param user_ctx User context of the partition owner (NULL in kernel)
+ * @param partition_base Base address (physical) of the partition
+ * @param offset_bytes Offset from base address that the decrypted data
+ * shall be placed
+ * @param byte_count Length of the message (bytes)
+ * @param black_data Pointer to where the encrypted data is stored
+ * @param IV IV to use for decryption
+ * @param cypher_mode Cyphering mode to use, specified by type
+ * #fsl_shw_cypher_mode_t
+ *
+ * @return status
+ */
+fsl_shw_return_t
+do_scc_decrypt_region(fsl_shw_uco_t * user_ctx,
+ void *partition_base, uint32_t offset_bytes,
+ uint32_t byte_count, const uint8_t * black_data,
+ uint32_t * IV, fsl_shw_cypher_mode_t cypher_mode)
+{
+ fsl_shw_return_t retval = FSL_RETURN_ERROR_S;
+
+#ifdef FSL_HAVE_SCC2
+
+ scc_return_t scc_ret;
+
+#ifdef SHW_DEBUG
+ uint32_t *owner_32 = (uint32_t *) & (owner_id);
+
+ LOG_KDIAG_ARGS
+ ("partition base: %p, offset: %i, count: %i, black data: %p\n",
+ partition_base, offset_bytes, byte_count, (void *)black_data);
+
+ LOG_KDIAG_ARGS("Owner ID: %08x%08x\n", owner_32[1], owner_32[0]);
+#endif /* SHW_DEBUG */
+
+ (void)user_ctx;
+
+ /* The SCC2 DMA engine will be reading from the black ram, so we need to
+ * make sure that the data is pushed out of the cache. Note that the red
+ * ram is not an issue because it is mapped with the cache disabled.
+ */
+ os_cache_flush_range(black_data, byte_count);
+
+ scc_ret =
+ scc_decrypt_region((uint32_t) partition_base, offset_bytes,
+ byte_count,
+ (uint8_t *) __virt_to_phys(black_data), IV,
+ cypher_mode);
+
+ if (scc_ret == SCC_RET_OK) {
+ retval = FSL_RETURN_OK_S;
+ } else {
+ retval = FSL_RETURN_ERROR_S;
+ }
+
+#endif /* FSL_HAVE_SCC2 */
+
+ return retval;
+}
+
+void *fsl_shw_smalloc(fsl_shw_uco_t * user_ctx,
+ uint32_t size, const uint8_t * UMID, uint32_t permissions)
+{
+#ifdef FSL_HAVE_SCC2
+ int part_no;
+ void *part_base;
+ uint32_t part_phys;
+ scc_config_t *scc_configuration;
+
+ /* Check that the memory size requested is correct */
+ scc_configuration = scc_get_configuration();
+ if (size != scc_configuration->partition_size_bytes) {
+ return NULL;
+ }
+
+ /* attempt to grab a partition. */
+ if (scc_allocate_partition(0, &part_no, &part_base, &part_phys)
+ != SCC_RET_OK) {
+ return NULL;
+ }
+#ifdef SHW_DEBUG
+ LOG_KDIAG_ARGS("Partition_base: %p, partition_base_phys: %p\n",
+ part_base, (void *)part_phys);
+#endif
+
+ if (scc_engage_partition(part_base, UMID, permissions)
+ != SCC_RET_OK) {
+ /* Engagement failed, so the partition needs to be de-allocated */
+
+#ifdef SHW_DEBUG
+ LOG_KDIAG_ARGS("Failed to engage partition %p, de-allocating",
+ part_base);
+#endif
+ scc_release_partition(part_base);
+
+ return NULL;
+ }
+
+ return part_base;
+
+#else /* FSL_HAVE_SCC2 */
+
+ (void)user_ctx;
+ (void)size;
+ (void)UMID;
+ (void)permissions;
+ return NULL;
+
+#endif /* FSL_HAVE_SCC2 */
+}
+
+/* Release a block of secure memory */
+fsl_shw_return_t fsl_shw_sfree(fsl_shw_uco_t * user_ctx, void *address)
+{
+ (void)user_ctx;
+
+#ifdef FSL_HAVE_SCC2
+ if (scc_release_partition(address) == SCC_RET_OK) {
+ return FSL_RETURN_OK_S;
+ }
+#endif
+
+ return FSL_RETURN_ERROR_S;
+}
+
+/* Check the status of a block of secure memory */
+fsl_shw_return_t fsl_shw_sstatus(fsl_shw_uco_t * user_ctx,
+ void *address,
+ fsl_shw_partition_status_t * part_status)
+{
+ (void)user_ctx;
+
+#ifdef FSL_HAVE_SCC2
+ *part_status = scc_partition_status(address);
+
+ return FSL_RETURN_OK_S;
+#endif
+
+ return FSL_RETURN_ERROR_S;
+}
+
+/* Diminish permissions on some secure memory */
+fsl_shw_return_t fsl_shw_diminish_perms(fsl_shw_uco_t * user_ctx,
+ void *address, uint32_t permissions)
+{
+
+ (void)user_ctx; /* unused parameter warning */
+
+#ifdef FSL_HAVE_SCC2
+ if (scc_diminish_permissions(address, permissions) == SCC_RET_OK) {
+ return FSL_RETURN_OK_S;
+ }
+#endif
+ return FSL_RETURN_ERROR_S;
+}
+
+#ifndef FSL_HAVE_SAHARA
+#ifdef LINUX_VERSION_CODE
+EXPORT_SYMBOL(fsl_shw_gen_encrypt);
+#endif
+
+fsl_shw_return_t fsl_shw_gen_encrypt(fsl_shw_uco_t * user_ctx,
+ fsl_shw_acco_t * auth_ctx,
+ fsl_shw_sko_t * cipher_key_info,
+ fsl_shw_sko_t * auth_key_info,
+ uint32_t auth_data_length,
+ const uint8_t * auth_data,
+ uint32_t payload_length,
+ const uint8_t * payload,
+ uint8_t * ct, uint8_t * auth_value)
+{
+ volatile fsl_shw_return_t status = FSL_RETURN_ERROR_S;
+
+ /* Unused */
+ (void)user_ctx;
+ (void)auth_ctx;
+ (void)cipher_key_info;
+ (void)auth_key_info; /* save compilation warning */
+ (void)auth_data_length;
+ (void)auth_data;
+ (void)payload_length;
+ (void)payload;
+ (void)ct;
+ (void)auth_value;
+
+ return status;
+}
+
+#ifdef LINUX_VERSION_CODE
+EXPORT_SYMBOL(fsl_shw_auth_decrypt);
+#endif
+/*!
+ * @brief Authenticate and decrypt a (CCM) stream.
+ *
+ * @param user_ctx The user's context
+ * @param auth_ctx Info on this Auth operation
+ * @param cipher_key_info Key to encrypt payload
+ * @param auth_key_info (unused - same key in CCM)
+ * @param auth_data_length Length in bytes of @a auth_data
+ * @param auth_data Any auth-only data
+ * @param payload_length Length in bytes of @a payload
+ * @param ct The encrypted data
+ * @param auth_value The authentication code to validate
+ * @param[out] payload The location to store decrypted data
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+fsl_shw_return_t fsl_shw_auth_decrypt(fsl_shw_uco_t * user_ctx,
+ fsl_shw_acco_t * auth_ctx,
+ fsl_shw_sko_t * cipher_key_info,
+ fsl_shw_sko_t * auth_key_info,
+ uint32_t auth_data_length,
+ const uint8_t * auth_data,
+ uint32_t payload_length,
+ const uint8_t * ct,
+ const uint8_t * auth_value,
+ uint8_t * payload)
+{
+ volatile fsl_shw_return_t status = FSL_RETURN_ERROR_S;
+
+ /* Unused */
+ (void)user_ctx;
+ (void)auth_ctx;
+ (void)cipher_key_info;
+ (void)auth_key_info; /* save compilation warning */
+ (void)auth_data_length;
+ (void)auth_data;
+ (void)payload_length;
+ (void)ct;
+ (void)auth_value;
+ (void)payload;
+
+ return status;
+}
+
+#endif /* no SAHARA */
+
+#ifndef FSL_HAVE_DRYICE
+
+#ifdef LINUX_VERSION_CODE
+EXPORT_SYMBOL(fsl_shw_gen_random_pf_key);
+#endif
+/*!
+ * Cause the hardware to create a new random key for secure memory use.
+ *
+ * Have the hardware use the secure hardware random number generator to load a
+ * new secret key into the hardware random key register.
+ *
+ * @param user_ctx A user context from #fsl_shw_register_user().
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+fsl_shw_return_t fsl_shw_gen_random_pf_key(fsl_shw_uco_t * user_ctx)
+{
+ volatile fsl_shw_return_t status = FSL_RETURN_ERROR_S;
+
+ return status;
+}
+
+#endif /* not have DRYICE */
+
+fsl_shw_return_t alloc_slot(fsl_shw_uco_t * user_ctx, fsl_shw_sko_t * key_info)
+{
+ fsl_shw_return_t ret = FSL_RETURN_INTERNAL_ERROR_S;
+
+ if (key_info->keystore == NULL) {
+ /* Key goes in system keystore */
+ ret = do_system_keystore_slot_alloc(user_ctx,
+ key_info->key_length,
+ key_info->userid,
+ &(key_info->handle));
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG_ARGS("key length: %i, handle: %i",
+ key_info->key_length, key_info->handle);
+#endif
+
+ } else {
+ /* Key goes in user keystore */
+ ret = keystore_slot_alloc(key_info->keystore,
+ key_info->key_length,
+ key_info->userid,
+ &(key_info->handle));
+ }
+
+ return ret;
+} /* end fn alloc_slot */
+
+fsl_shw_return_t load_slot(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info, const uint8_t * key)
+{
+ fsl_shw_return_t ret = FSL_RETURN_INTERNAL_ERROR_S;
+
+ if (key_info->keystore == NULL) {
+ /* Key goes in system keystore */
+ ret = do_system_keystore_slot_load(user_ctx,
+ key_info->userid,
+ key_info->handle, key,
+ key_info->key_length);
+ } else {
+ /* Key goes in user keystore */
+ ret = keystore_slot_load(key_info->keystore,
+ key_info->userid,
+ key_info->handle, key,
+ key_info->key_length);
+ }
+
+ return ret;
+} /* end fn load_slot */
+
+fsl_shw_return_t dealloc_slot(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info)
+{
+ fsl_shw_return_t ret = FSL_RETURN_INTERNAL_ERROR_S;
+
+ if (key_info->keystore == NULL) {
+ /* Key goes in system keystore */
+ do_system_keystore_slot_dealloc(user_ctx,
+ key_info->userid,
+ key_info->handle);
+ } else {
+ /* Key goes in user keystore */
+ keystore_slot_dealloc(key_info->keystore,
+ key_info->userid, key_info->handle);
+ }
+
+ key_info->flags &= ~(FSL_SKO_KEY_ESTABLISHED | FSL_SKO_KEY_PRESENT);
+
+ return ret;
+} /* end fn slot_dealloc */
diff --git a/drivers/mxc/security/rng/shw_dryice.c b/drivers/mxc/security/rng/shw_dryice.c
new file mode 100644
index 000000000000..bcf1794f7351
--- /dev/null
+++ b/drivers/mxc/security/rng/shw_dryice.c
@@ -0,0 +1,204 @@
+/*
+ * Copyright (C) 2009-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+#include "shw_driver.h"
+#include "../dryice.h"
+
+#include <diagnostic.h>
+
+#ifdef FSL_HAVE_DRYICE
+
+#ifdef LINUX_VERSION_CODE
+EXPORT_SYMBOL(fsl_shw_gen_random_pf_key);
+#endif
+/*!
+ * Cause the hardware to create a new random key for secure memory use.
+ *
+ * Have the hardware use the secure hardware random number generator to load a
+ * new secret key into the hardware random key register.
+ *
+ * @param user_ctx A user context from #fsl_shw_register_user().
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+fsl_shw_return_t fsl_shw_gen_random_pf_key(fsl_shw_uco_t * user_ctx)
+{
+ fsl_shw_return_t ret = FSL_RETURN_ERROR_S;
+ di_return_t di_ret;
+
+ /* For now, only blocking mode calls are supported */
+ if (!(user_ctx->flags & FSL_UCO_BLOCKING_MODE)) {
+ ret = FSL_RETURN_BAD_FLAG_S;
+ goto out;
+ }
+
+ di_ret = dryice_set_random_key(0);
+ if (di_ret != DI_SUCCESS) {
+ printk("dryice_set_random_key returned %d\n", di_ret);
+ goto out;
+ }
+
+ ret = FSL_RETURN_OK_S;
+
+ out:
+ return ret;
+}
+
+#ifdef LINUX_VERSION_CODE
+EXPORT_SYMBOL(fsl_shw_read_tamper_event);
+#endif
+fsl_shw_return_t fsl_shw_read_tamper_event(fsl_shw_uco_t * user_ctx,
+ fsl_shw_tamper_t * tamperp,
+ uint64_t * timestampp)
+{
+ fsl_shw_return_t ret = FSL_RETURN_ERROR_S;
+ di_return_t di_ret;
+ uint32_t di_events = 0;
+ uint32_t di_time_stamp;
+
+ /* Only blocking mode calls are supported */
+ if (!(user_ctx->flags & FSL_UCO_BLOCKING_MODE)) {
+ ret = FSL_RETURN_BAD_FLAG_S;
+ goto out;
+ }
+
+ di_ret = dryice_get_tamper_event(&di_events, &di_time_stamp, 0);
+ if ((di_ret != DI_SUCCESS) && (di_ret != DI_ERR_STATE)) {
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG_ARGS("dryice_get_tamper_event returned %s\n",
+ di_error_string(di_ret));
+#endif
+ goto out;
+ }
+
+ /* Pass time back to caller */
+ *timestampp = (uint64_t) di_time_stamp;
+
+ if (di_events & DI_TAMPER_EVENT_WTD) {
+ *tamperp = FSL_SHW_TAMPER_WTD;
+ } else if (di_events & DI_TAMPER_EVENT_ETBD) {
+ *tamperp = FSL_SHW_TAMPER_ETBD;
+ } else if (di_events & DI_TAMPER_EVENT_ETAD) {
+ *tamperp = FSL_SHW_TAMPER_ETAD;
+ } else if (di_events & DI_TAMPER_EVENT_EBD) {
+ *tamperp = FSL_SHW_TAMPER_EBD;
+ } else if (di_events & DI_TAMPER_EVENT_SAD) {
+ *tamperp = FSL_SHW_TAMPER_SAD;
+ } else if (di_events & DI_TAMPER_EVENT_TTD) {
+ *tamperp = FSL_SHW_TAMPER_TTD;
+ } else if (di_events & DI_TAMPER_EVENT_CTD) {
+ *tamperp = FSL_SHW_TAMPER_CTD;
+ } else if (di_events & DI_TAMPER_EVENT_VTD) {
+ *tamperp = FSL_SHW_TAMPER_VTD;
+ } else if (di_events & DI_TAMPER_EVENT_MCO) {
+ *tamperp = FSL_SHW_TAMPER_MCO;
+ } else if (di_events & DI_TAMPER_EVENT_TCO) {
+ *tamperp = FSL_SHW_TAMPER_TCO;
+ } else if (di_events != 0) {
+ /* Apparentliy a tamper type not known to this driver was detected */
+ goto out;
+ } else {
+ *tamperp = FSL_SHW_TAMPER_NONE;
+ }
+
+ ret = FSL_RETURN_OK_S;
+
+ out:
+ return ret;
+} /* end fn fsl_shw_read_tamper_event */
+#endif
+/*!
+ * Convert an SHW HW key reference into a DI driver key reference
+ *
+ * @param shw_pf_key An SHW HW key value
+ * @param di_keyp Location to store the equivalent DI driver key
+ *
+ * @return FSL_RETURN_OK_S, or error if key is unknown or cannot translate.
+ */
+fsl_shw_return_t shw_convert_pf_key(fsl_shw_pf_key_t shw_pf_key,
+ di_key_t * di_keyp)
+{
+ fsl_shw_return_t ret = FSL_RETURN_BAD_FLAG_S;
+
+ switch (shw_pf_key) {
+ case FSL_SHW_PF_KEY_IIM:
+ *di_keyp = DI_KEY_FK;
+ break;
+ case FSL_SHW_PF_KEY_RND:
+ *di_keyp = DI_KEY_RK;
+ break;
+ case FSL_SHW_PF_KEY_IIM_RND:
+ *di_keyp = DI_KEY_FRK;
+ break;
+ case FSL_SHW_PF_KEY_PRG:
+ *di_keyp = DI_KEY_PK;
+ break;
+ case FSL_SHW_PF_KEY_IIM_PRG:
+ *di_keyp = DI_KEY_FPK;
+ break;
+ default:
+ goto out;
+ }
+
+ ret = FSL_RETURN_OK_S;
+
+ out:
+ return ret;
+}
+
+#ifdef DIAG_SECURITY_FUNC
+const char *di_error_string(int code)
+{
+ char *str = "unknown";
+
+ switch (code) {
+ case DI_SUCCESS:
+ str = "operation was successful";
+ break;
+ case DI_ERR_BUSY:
+ str = "device or resource busy";
+ break;
+ case DI_ERR_STATE:
+ str = "dryice is in incompatible state";
+ break;
+ case DI_ERR_INUSE:
+ str = "resource is already in use";
+ break;
+ case DI_ERR_UNSET:
+ str = "resource has not been initialized";
+ break;
+ case DI_ERR_WRITE:
+ str = "error occurred during register write";
+ break;
+ case DI_ERR_INVAL:
+ str = "invalid argument";
+ break;
+ case DI_ERR_FAIL:
+ str = "operation failed";
+ break;
+ case DI_ERR_HLOCK:
+ str = "resource is hard locked";
+ break;
+ case DI_ERR_SLOCK:
+ str = "resource is soft locked";
+ break;
+ case DI_ERR_NOMEM:
+ str = "out of memory";
+ break;
+ default:
+ break;
+ }
+
+ return str;
+}
+#endif /* HAVE DRYICE */
diff --git a/drivers/mxc/security/rng/shw_hash.c b/drivers/mxc/security/rng/shw_hash.c
new file mode 100644
index 000000000000..3aac05235bfa
--- /dev/null
+++ b/drivers/mxc/security/rng/shw_hash.c
@@ -0,0 +1,328 @@
+/*
+ * Copyright (C) 2009-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file shw_hash.c
+ *
+ * This file contains implementations for use of the (internal) SHW hash
+ * software computation. It defines the usual three steps:
+ *
+ * - #shw_hash_init()
+ * - #shw_hash_update()
+ * - #shw_hash_final()
+ *
+ * In support of the above functions, it also contains these functions:
+ * - #sha256_init()
+ * - #sha256_process_block()
+ *
+ *
+ * These functions depend upon the Linux Endian functions __be32_to_cpu(),
+ * __cpu_to_be32() to convert a 4-byte big-endian array to an integer and
+ * vice-versa. For those without Linux, it should be pretty obvious what they
+ * do.
+ *
+ * The #shw_hash_update() and #shw_hash_final() functions are generic enough to
+ * support SHA-1/SHA-224/SHA-256, as needed. Some extra tweaking would be
+ * necessary to get them to support SHA-384/SHA-512.
+ *
+ */
+
+#include "shw_driver.h"
+#include "shw_hash.h"
+
+#ifndef __KERNEL__
+#include <asm/types.h>
+#include <linux/byteorder/little_endian.h> /* or whichever is proper for target arch */
+#define printk printf
+#endif
+
+/*!
+ * Rotate a value right by a number of bits.
+ *
+ * @param x Word of data which needs rotating
+ * @param y Number of bits to rotate
+ *
+ * @return The new value
+ */
+inline uint32_t rotr32fixed(uint32_t x, unsigned int y)
+{
+ return (uint32_t) ((x >> y) | (x << (32 - y)));
+}
+
+#define blk0(i) (W[i] = data[i])
+// Referencing parameters so many times is really poor practice. Do not imitate these macros
+#define blk2(i) (W[i & 15] += s1(W[(i - 2) & 15]) + W[(i - 7) & 15] + s0(W[(i - 15) & 15]))
+
+#define Ch(x,y,z) (z ^ (x & (y ^ z)))
+#define Maj(x,y,z) ((x & y) | (z & (x | y)))
+
+#define a(i) T[(0 - i) & 7]
+#define b(i) T[(1 - i) & 7]
+#define c(i) T[(2 - i) & 7]
+#define d(i) T[(3 - i) & 7]
+#define e(i) T[(4 - i) & 7]
+#define f(i) T[(5 - i) & 7]
+#define g(i) T[(6 - i) & 7]
+#define h(i) T[(7 - i) & 7]
+
+// This is a bad way to write a multi-statement macro... and referencing 'i' so many
+// times is really poor practice. Do not imitate.
+#define R(i) h(i) += S1( e(i)) + Ch(e(i), f(i), g(i)) + K[i + j] +(j ? blk2(i) : blk0(i));\
+ d(i) += h(i);h(i) += S0(a(i)) + Maj(a(i), b(i), c(i))
+
+// for SHA256
+#define S0(x) (rotr32fixed(x, 2) ^ rotr32fixed(x, 13) ^ rotr32fixed(x, 22))
+#define S1(x) (rotr32fixed(x, 6) ^ rotr32fixed(x, 11) ^ rotr32fixed(x, 25))
+#define s0(x) (rotr32fixed(x, 7) ^ rotr32fixed(x, 18) ^ (x >> 3))
+#define s1(x) (rotr32fixed(x, 17) ^ rotr32fixed(x, 19) ^ (x >> 10))
+
+/*!
+ * Initialize the Hash State
+ *
+ * Constructs the SHA256 hash engine.
+ * Specification:
+ * State Size = 32 bytes
+ * Block Size = 64 bytes
+ * Digest Size = 32 bytes
+ *
+ * @param state Address of hash state structure
+ *
+ */
+void sha256_init(shw_hash_state_t * state)
+{
+ state->bit_count = 0;
+ state->partial_count_bytes = 0;
+
+ state->state[0] = 0x6a09e667;
+ state->state[1] = 0xbb67ae85;
+ state->state[2] = 0x3c6ef372;
+ state->state[3] = 0xa54ff53a;
+ state->state[4] = 0x510e527f;
+ state->state[5] = 0x9b05688c;
+ state->state[6] = 0x1f83d9ab;
+ state->state[7] = 0x5be0cd19;
+}
+
+const uint32_t K[64] = {
+ 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,
+ 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
+ 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,
+ 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,
+ 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,
+ 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
+ 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,
+ 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,
+ 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,
+ 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,
+ 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,
+ 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
+ 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,
+ 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
+ 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,
+ 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2
+};
+
+/*!
+ * Hash a block of data into the SHA-256 hash state.
+ *
+ * This function hash the block of data in the @c partial_block
+ * element of the state structure into the state variables of the
+ * state structure.
+ *
+ * @param state Address of hash state structure
+ *
+ */
+static void sha256_process_block(shw_hash_state_t * state)
+{
+ uint32_t W[16];
+ uint32_t T[8];
+ uint32_t stack_buffer[SHW_HASH_BLOCK_WORD_SIZE];
+ uint32_t *data = &stack_buffer[0];
+ uint8_t *input = state->partial_block;
+ unsigned int i;
+ unsigned int j;
+
+ /* Copy byte-oriented input block into word-oriented registers */
+ for (i = 0; i < SHW_HASH_BLOCK_LEN / sizeof(uint32_t);
+ i++, input += sizeof(uint32_t)) {
+ stack_buffer[i] = __be32_to_cpu(*(uint32_t *) input);
+ }
+
+ /* Copy context->state[] to working vars */
+ memcpy(T, state->state, sizeof(T));
+
+ /* 64 operations, partially loop unrolled */
+ for (j = 0; j < SHW_HASH_BLOCK_LEN; j += 16) {
+ R(0);
+ R(1);
+ R(2);
+ R(3);
+ R(4);
+ R(5);
+ R(6);
+ R(7);
+ R(8);
+ R(9);
+ R(10);
+ R(11);
+ R(12);
+ R(13);
+ R(14);
+ R(15);
+ }
+ /* Add the working vars back into context.state[] */
+ state->state[0] += a(0);
+ state->state[1] += b(0);
+ state->state[2] += c(0);
+ state->state[3] += d(0);
+ state->state[4] += e(0);
+ state->state[5] += f(0);
+ state->state[6] += g(0);
+ state->state[7] += h(0);
+
+ /* Wipe variables */
+ memset(W, 0, sizeof(W));
+ memset(T, 0, sizeof(T));
+}
+
+/*!
+ * Initialize the hash state structure
+ *
+ * @param state Address of hash state structure.
+ * @param alg Which hash algorithm to use (must be FSL_HASH_ALG_SHA1)
+ *
+ * @return FSL_RETURN_OK_S if all went well, otherwise an error code.
+ */
+fsl_shw_return_t shw_hash_init(shw_hash_state_t * state, fsl_shw_hash_alg_t alg)
+{
+ if (alg != FSL_HASH_ALG_SHA256) {
+ return FSL_RETURN_BAD_ALGORITHM_S;
+ }
+
+ sha256_init(state);
+
+ return FSL_RETURN_OK_S;
+}
+
+/*!
+ * Add input bytes to the hash
+ *
+ * The bytes are added to the partial_block element of the hash state, and as
+ * the partial block is filled, it is processed by sha1_process_block(). This
+ * function also updates the bit_count element of the hash state.
+ *
+ * @param state Address of hash state structure
+ * @param input Address of bytes to add to the hash
+ * @param input_len Numbef of bytes at @c input
+ *
+ */
+fsl_shw_return_t shw_hash_update(shw_hash_state_t * state,
+ const uint8_t * input, unsigned int input_len)
+{
+ unsigned int bytes_needed; /* Needed to fill a block */
+ unsigned int bytes_to_copy; /* to copy into the block */
+
+ /* Account for new data */
+ state->bit_count += 8 * input_len;
+
+ /*
+ * Process input bytes into the ongoing block; process the block when it
+ * gets full.
+ */
+ while (input_len > 0) {
+ bytes_needed = SHW_HASH_BLOCK_LEN - state->partial_count_bytes;
+ bytes_to_copy = ((input_len < bytes_needed) ?
+ input_len : bytes_needed);
+
+ /* Add in the bytes and do the accounting */
+ memcpy(state->partial_block + state->partial_count_bytes,
+ input, bytes_to_copy);
+ input += bytes_to_copy;
+ input_len -= bytes_to_copy;
+ state->partial_count_bytes += bytes_to_copy;
+
+ /* Run a full block through the transform */
+ if (state->partial_count_bytes == SHW_HASH_BLOCK_LEN) {
+ sha256_process_block(state);
+ state->partial_count_bytes = 0;
+ }
+ }
+
+ return FSL_RETURN_OK_S;
+} /* end fn shw_hash_update */
+
+/*!
+ * Finalize the hash
+ *
+ * Performs the finalize operation on the previous input data & returns the
+ * resulting digest. The finalize operation performs the appropriate padding
+ * up to the block size.
+ *
+ * @param state Address of hash state structure
+ * @param result Location to store the hash result
+ * @param result_len Number of bytes of @c result to be stored.
+ *
+ * @return FSL_RETURN_OK_S if all went well, FSL_RETURN_BAD_DATA_LENGTH_S if
+ * hash_len is too long, otherwise an error code.
+ */
+fsl_shw_return_t shw_hash_final(shw_hash_state_t * state, uint8_t * result,
+ unsigned int result_len)
+{
+ static const uint8_t pad[SHW_HASH_BLOCK_LEN * 2] = {
+ 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ };
+
+ uint8_t data[sizeof(state->bit_count)];
+ uint32_t pad_length;
+ uint64_t bit_count = state->bit_count;
+ uint8_t hash[SHW_HASH_LEN];
+ int i;
+
+ if (result_len > SHW_HASH_LEN) {
+ return FSL_RETURN_BAD_DATA_LENGTH_S;
+ }
+
+ /* Save the length before padding. */
+ for (i = sizeof(state->bit_count) - 1; i >= 0; i--) {
+ data[i] = bit_count & 0xFF;
+ bit_count >>= 8;
+ }
+ pad_length = ((state->partial_count_bytes < 56) ?
+ (56 - state->partial_count_bytes) :
+ (120 - state->partial_count_bytes));
+
+ /* Pad to 56 bytes mod 64 (BLOCK_SIZE). */
+ shw_hash_update(state, pad, pad_length);
+
+ /*
+ * Append the length. This should trigger transform of the final block.
+ */
+ shw_hash_update(state, data, sizeof(state->bit_count));
+
+ /* Copy the result into a byte array */
+ for (i = 0; i < SHW_HASH_STATE_WORDS; i++) {
+ *(uint32_t *) (hash + 4 * i) = __cpu_to_be32(state->state[i]);
+ }
+
+ /* And copy the result out to caller */
+ memcpy(result, hash, result_len);
+
+ return FSL_RETURN_OK_S;
+} /* end fn shw_hash_final */
diff --git a/drivers/mxc/security/rng/shw_hmac.c b/drivers/mxc/security/rng/shw_hmac.c
new file mode 100644
index 000000000000..57c086405a49
--- /dev/null
+++ b/drivers/mxc/security/rng/shw_hmac.c
@@ -0,0 +1,145 @@
+/*
+ * Copyright (C) 2009-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file shw_hmac.c
+ *
+ * This file contains implementations for use of the (internal) SHW HMAC
+ * software computation. It defines the usual three steps:
+ *
+ * - #shw_hmac_init()
+ * - #shw_hmac_update()
+ * - #shw_hmac_final()
+ *
+ *
+ */
+
+#include "shw_driver.h"
+#include "shw_hmac.h"
+
+#ifndef __KERNEL__
+#include <asm/types.h>
+#include <linux/byteorder/little_endian.h> /* or whichever is proper for target arch */
+#define printk printf
+#endif
+
+/*! XOR value for HMAC inner key */
+#define INNER_HASH_CONSTANT 0x36
+
+/*! XOR value for HMAC outer key */
+#define OUTER_HASH_CONSTANT 0x5C
+
+/*!
+ * Initialize the HMAC state structure with the HMAC key
+ *
+ * @param state Address of HMAC state structure
+ * @param key Address of the key to be used for the HMAC.
+ * @param key_len Number of bytes of @c key.
+ *
+ * Convert the key into its equivalent inner and outer hash state objects.
+ *
+ * @return FSL_RETURN_OK_S if all went well, otherwise an error code.
+ */
+fsl_shw_return_t shw_hmac_init(shw_hmac_state_t * state,
+ const uint8_t * key, unsigned int key_len)
+{
+ fsl_shw_return_t code = FSL_RETURN_ERROR_S;
+ uint8_t first_block[SHW_HASH_BLOCK_LEN];
+ unsigned int i;
+
+ /* Don't bother handling the pre-hash. */
+ if (key_len > SHW_HASH_BLOCK_LEN) {
+ code = FSL_RETURN_BAD_KEY_LENGTH_S;
+ goto out;
+ }
+
+ /* Prepare inner hash */
+ for (i = 0; i < SHW_HASH_BLOCK_LEN; i++) {
+ if (i < key_len) {
+ first_block[i] = key[i] ^ INNER_HASH_CONSTANT;
+ } else {
+ first_block[i] = INNER_HASH_CONSTANT;
+ }
+ }
+ code = shw_hash_init(&state->inner_hash, FSL_HASH_ALG_SHA256);
+ if (code != FSL_RETURN_OK_S) {
+ goto out;
+ }
+ shw_hash_update(&state->inner_hash, first_block, SHW_HASH_BLOCK_LEN);
+
+ /* Prepare outer hash */
+ for (i = 0; i < SHW_HASH_BLOCK_LEN; i++) {
+ if (i < key_len) {
+ first_block[i] = key[i] ^ OUTER_HASH_CONSTANT;
+ } else {
+ first_block[i] = OUTER_HASH_CONSTANT;
+ }
+ }
+ code = shw_hash_init(&state->outer_hash, FSL_HASH_ALG_SHA256);
+ if (code != FSL_RETURN_OK_S) {
+ goto out;
+ }
+ shw_hash_update(&state->outer_hash, first_block, SHW_HASH_BLOCK_LEN);
+
+ /* Wipe evidence of key */
+ memset(first_block, 0, SHW_HASH_BLOCK_LEN);
+
+ out:
+ return code;
+}
+
+/*!
+ * Put data into the HMAC calculation
+ *
+ * Send the msg data inner inner hash's update function.
+ *
+ * @param state Address of HMAC state structure.
+ * @param msg Address of the message data for the HMAC.
+ * @param msg_len Number of bytes of @c msg.
+ *
+ * @return FSL_RETURN_OK_S if all went well, otherwise an error code.
+ */
+fsl_shw_return_t shw_hmac_update(shw_hmac_state_t * state,
+ const uint8_t * msg, unsigned int msg_len)
+{
+ shw_hash_update(&state->inner_hash, msg, msg_len);
+
+ return FSL_RETURN_OK_S;
+}
+
+/*!
+ * Calculate the final HMAC
+ *
+ * @param state Address of HMAC state structure.
+ * @param hmac Address of location to store the HMAC.
+ * @param hmac_len Number of bytes of @c mac to be stored. Probably best if
+ * this value is no greater than #SHW_HASH_LEN.
+ *
+ * This function finalizes the internal hash, and uses that result as
+ * data for the outer hash. As many bytes of that result are passed
+ * to the user as desired.
+ *
+ * @return FSL_RETURN_OK_S if all went well, otherwise an error code.
+ */
+fsl_shw_return_t shw_hmac_final(shw_hmac_state_t * state,
+ uint8_t * hmac, unsigned int hmac_len)
+{
+ uint8_t hash_result[SHW_HASH_LEN];
+
+ shw_hash_final(&state->inner_hash, hash_result, sizeof(hash_result));
+ shw_hash_update(&state->outer_hash, hash_result, SHW_HASH_LEN);
+
+ shw_hash_final(&state->outer_hash, hmac, hmac_len);
+
+ return FSL_RETURN_OK_S;
+}
diff --git a/drivers/mxc/security/rng/shw_memory_mapper.c b/drivers/mxc/security/rng/shw_memory_mapper.c
new file mode 100644
index 000000000000..d7b82576a6cd
--- /dev/null
+++ b/drivers/mxc/security/rng/shw_memory_mapper.c
@@ -0,0 +1,213 @@
+/*
+ * Copyright (C) 2005-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+
+
+/**
+ * Memory management functions, from Sahara Crypto API
+ *
+ * This is a subset of the memory management functions from the Sahara Crypto
+ * API, and is intended to support user secure partitions.
+ */
+
+#include "portable_os.h"
+#include "fsl_shw.h"
+
+#include <linux/mm.h>
+#include <linux/slab.h>
+#include <linux/pagemap.h>
+
+#ifdef SHW_DEBUG
+#include <diagnostic.h>
+#endif
+
+/* Page context structure. Used by wire_user_memory and unwire_user_memory */
+typedef struct page_ctx_t {
+ uint32_t count;
+ struct page **local_pages;
+} page_ctx_t;
+
+/**
+*******************************************************************************
+* Map and wire down a region of user memory.
+*
+*
+* @param address Userspace address of the memory to wire
+* @param length Length of the memory region to wire
+* @param page_ctx Page context, to be passed to unwire_user_memory
+*
+* @return (if successful) Kernel virtual address of the wired pages
+*/
+void* wire_user_memory(void* address, uint32_t length, void **page_ctx)
+{
+ void* kernel_black_addr = NULL;
+ int result = -1;
+ int page_index = 0;
+ page_ctx_t *page_context;
+ int nr_pages = 0;
+ unsigned long start_page;
+ fsl_shw_return_t status;
+
+ /* Determine the number of pages being used for this link */
+ nr_pages = (((unsigned long)(address) & ~PAGE_MASK)
+ + length + ~PAGE_MASK) >> PAGE_SHIFT;
+
+ start_page = (unsigned long)(address) & PAGE_MASK;
+
+ /* Allocate some memory to keep track of the wired user pages, so that
+ * they can be deallocated later. The block of memory will contain both
+ * the structure and the array of pages.
+ */
+ page_context = kmalloc(sizeof(page_ctx_t)
+ + nr_pages * sizeof(struct page *), GFP_KERNEL);
+
+ if (page_context == NULL) {
+ status = FSL_RETURN_NO_RESOURCE_S; /* no memory! */
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("kmalloc() failed.");
+#endif
+ return NULL;
+ }
+
+ /* Set the page pointer to point to the allocated region of memory */
+ page_context->local_pages = (void*)page_context + sizeof(page_ctx_t);
+
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG_ARGS("page_context at: %p, local_pages at: %p",
+ (void *)page_context,
+ (void *)(page_context->local_pages));
+#endif
+
+ /* Wire down the pages from user space */
+ down_read(&current->mm->mmap_sem);
+ result = get_user_pages(current, current->mm,
+ start_page, nr_pages,
+ WRITE, 0 /* noforce */,
+ (page_context->local_pages), NULL);
+ up_read(&current->mm->mmap_sem);
+
+ if (result < nr_pages) {
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("get_user_pages() failed.");
+#endif
+ if (result > 0) {
+ for (page_index = 0; page_index < result; page_index++)
+ page_cache_release((page_context->local_pages[page_index]));
+
+ kfree(page_context);
+ }
+ return NULL;
+ }
+
+ kernel_black_addr = page_address(page_context->local_pages[0]) +
+ ((unsigned long)address & ~PAGE_MASK);
+
+ page_context->count = nr_pages;
+ *page_ctx = page_context;
+
+ return kernel_black_addr;
+}
+
+
+/**
+*******************************************************************************
+* Release and unmap a region of user memory.
+*
+* @param page_ctx Page context from wire_user_memory
+*/
+void unwire_user_memory(void** page_ctx)
+{
+ int page_index = 0;
+ struct page_ctx_t *page_context = *page_ctx;
+
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG_ARGS("page_context at: %p, first page at:%p, count: %i",
+ (void *)page_context,
+ (void *)(page_context->local_pages),
+ page_context->count);
+#endif
+
+ if ((page_context != NULL) && (page_context->local_pages != NULL)) {
+ for (page_index = 0; page_index < page_context->count; page_index++)
+ page_cache_release(page_context->local_pages[page_index]);
+
+ kfree(page_context);
+ *page_ctx = NULL;
+ }
+}
+
+
+/**
+*******************************************************************************
+* Map some physical memory into a users memory space
+*
+* @param vma Memory structure to map to
+* @param physical_addr Physical address of the memory to be mapped in
+* @param size Size of the memory to map (bytes)
+*
+* @return
+*/
+os_error_code
+map_user_memory(struct vm_area_struct *vma, uint32_t physical_addr, uint32_t size)
+{
+ os_error_code retval;
+
+ /* Map the acquired partition into the user's memory space */
+ vma->vm_end = vma->vm_start + size;
+
+ /* set cache policy to uncached so that each write of the UMID and
+ * permissions get directly to the SCC2 in order to engage it
+ * properly. Once the permissions have been written, it may be
+ * useful to provide a service for the user to request a different
+ * cache policy
+ */
+ vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
+
+ /* Make sure that the user cannot fork() a child which will inherit
+ * this mapping, as it creates a security hole. Likewise, do not
+ * allow the user to 'expand' his mapping beyond this partition.
+ */
+ vma->vm_flags |= VM_IO | VM_RESERVED | VM_DONTCOPY | VM_DONTEXPAND;
+
+ retval = remap_pfn_range(vma,
+ vma->vm_start,
+ __phys_to_pfn(physical_addr),
+ size,
+ vma->vm_page_prot);
+
+ return retval;
+}
+
+
+/**
+*******************************************************************************
+* Remove some memory from a user's memory space
+*
+* @param user_addr Userspace address of the memory to be unmapped
+* @param size Size of the memory to map (bytes)
+*
+* @return
+*/
+os_error_code
+unmap_user_memory(uint32_t user_addr, uint32_t size)
+{
+ os_error_code retval;
+ struct mm_struct *mm = current->mm;
+
+ /* Unmap the memory region (see sys_munmap in mmap.c) */
+ down_write(&mm->mmap_sem);
+ retval = do_munmap(mm, (unsigned long)user_addr, size);
+ up_write(&mm->mmap_sem);
+
+ return retval;
+}
diff --git a/drivers/mxc/security/sahara2/Kconfig b/drivers/mxc/security/sahara2/Kconfig
new file mode 100644
index 000000000000..ab4e6fdc2cfc
--- /dev/null
+++ b/drivers/mxc/security/sahara2/Kconfig
@@ -0,0 +1,35 @@
+menu "SAHARA2 Security Hardware Support"
+
+config MXC_SAHARA
+ tristate "Security Hardware Support (FSL SHW)"
+ ---help---
+ Provides driver and kernel mode API for using cryptographic
+ accelerators.
+
+config MXC_SAHARA_USER_MODE
+ tristate "User Mode API for FSL SHW"
+ depends on MXC_SAHARA
+ ---help---
+ Provides kernel driver for User Mode API.
+
+config MXC_SAHARA_POLL_MODE
+ bool "Force driver to POLL for hardware completion."
+ depends on MXC_SAHARA
+ default n
+ ---help---
+ When this flag is yes, the driver will not use interrupts to
+ determine when the hardware has completed a task, but instead
+ will hold onto the CPU and continually poll the hardware until
+ it completes.
+
+config MXC_SAHARA_POLL_MODE_TIMEOUT
+ hex "Poll loop timeout"
+ depends on MXC_SAHARA_POLL_MODE
+ default "0xFFFFFFFF"
+ help
+ To avoid infinite polling, a timeout is provided. Should the
+ timeout be reached, a fault is reported, indicating there must
+ be something wrong with SAHARA, and SAHARA is reset. The loop
+ will exit after the given number of iterations.
+
+endmenu
diff --git a/drivers/mxc/security/sahara2/Makefile b/drivers/mxc/security/sahara2/Makefile
new file mode 100644
index 000000000000..b515709be29b
--- /dev/null
+++ b/drivers/mxc/security/sahara2/Makefile
@@ -0,0 +1,47 @@
+# Makefile for the Linux Sahara2 driver
+#
+# This makefile works within a kernel driver tree
+
+# Need to augment this to support optionally building user-mode support
+API_SOURCES = fsl_shw_sym.c fsl_shw_user.c fsl_shw_hash.c fsl_shw_auth.c \
+ fsl_shw_hmac.c fsl_shw_rand.c sf_util.c km_adaptor.c fsl_shw_keystore.c \
+ fsl_shw_wrap.c \
+
+
+SOURCES = sah_driver_interface.c sah_hardware_interface.c \
+ sah_interrupt_handler.c sah_queue.c sah_queue_manager.c \
+ sah_status_manager.c sah_memory_mapper.c
+
+
+# Turn on for mostly full debugging
+# DIAGS = -DDIAG_DRV_STATUS -DDIAG_DRV_QUEUE -DDIAG_DRV_INTERRUPT -DDIAG_DRV_IF
+# DIAGS += -DDIAG_DURING_INTERRUPT
+
+# Turn on for lint-type checking
+#EXTRA_CFLAGS = -Wall -W -Wstrict-prototypes -Wmissing-prototypes
+EXTRA_CFLAGS += -DLINUX_KERNEL $(DIAGS)
+
+
+ifeq ($(CONFIG_MXC_SAHARA_POLL_MODE),y)
+EXTRA_CFLAGS += -DSAHARA_POLL_MODE
+EXTRA_CFLAGS += -DSAHARA_POLL_MODE_TIMEOUT=$(CONFIG_SAHARA_POLL_MODE_TIMEOUT)
+endif
+
+ifeq ($(CONFIG_MXC_SAHARA_USER_MODE),y)
+EXTRA_CFLAGS += -DSAHARA_USER_MODE
+SOURCES +=
+endif
+
+ifeq ($(CONFIG_PM),y)
+EXTRA_CFLAGS += -DSAHARA_POWER_MANAGMENT
+endif
+
+EXTRA_CFLAGS += -Idrivers/mxc/security/sahara2/include
+
+# handle buggy BSP -- uncomment if these are undefined during build
+#EXTRA_CFLAGS += -DSAHARA_BASE_ADDR=HAC_BASE_ADDR -DINT_SAHARA=INT_HAC_RTIC
+
+
+obj-$(CONFIG_MXC_SAHARA) += sahara.o
+
+sahara-objs := $(SOURCES:.c=.o) $(API_SOURCES:.c=.o)
diff --git a/drivers/mxc/security/sahara2/fsl_shw_auth.c b/drivers/mxc/security/sahara2/fsl_shw_auth.c
new file mode 100644
index 000000000000..161feac8e52b
--- /dev/null
+++ b/drivers/mxc/security/sahara2/fsl_shw_auth.c
@@ -0,0 +1,706 @@
+/*
+ * Copyright (C) 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+/*!
+ * @file fsl_shw_auth.c
+ *
+ * This file contains the routines which do the combined encrypt+authentication
+ * functions. For now, only AES-CCM is supported.
+ */
+
+#include "sahara.h"
+#include "adaptor.h"
+#include "sf_util.h"
+
+#ifdef __KERNEL__
+EXPORT_SYMBOL(fsl_shw_gen_encrypt);
+EXPORT_SYMBOL(fsl_shw_auth_decrypt);
+#endif
+
+
+/*! Size of buffer to repetively sink useless CBC output */
+#define CBC_BUF_LEN 4096
+
+/*!
+ * Compute the size, in bytes, of the encoded auth length
+ *
+ * @param l The actual associated data length
+ *
+ * @return The encoded length
+ */
+#define COMPUTE_NIST_AUTH_LEN_SIZE(l) \
+({ \
+ unsigned val; \
+ uint32_t len = l; \
+ if (len == 0) { \
+ val = 0; \
+ } else if (len < 65280) { \
+ val = 2; \
+ } else { /* cannot handle >= 2^32 */ \
+ val = 6; \
+ } \
+ val; \
+})
+
+/*!
+ * Store the encoded Auth Length into the Auth Data
+ *
+ * @param l The actual Auth Length
+ * @param p Location to store encoding (must be uint8_t*)
+ *
+ * @return void
+ */
+#define STORE_NIST_AUTH_LEN(l, p) \
+{ \
+ register uint32_t L = l; \
+ if ((uint32_t)(l) < 65280) { \
+ (p)[1] = L & 0xff; \
+ L >>= 8; \
+ (p)[0] = L & 0xff; \
+ } else { /* cannot handle >= 2^32 */ \
+ int i; \
+ for (i = 5; i > 1; i--) { \
+ (p)[i] = L & 0xff; \
+ L >>= 8; \
+ } \
+ (p)[1] = 0xfe; /* Markers */ \
+ (p)[0] = 0xff; \
+ } \
+}
+
+#if defined (FSL_HAVE_SAHARA2) || defined (USE_S2_CCM_DECRYPT_CHAIN) \
+ || defined (USE_S2_CCM_ENCRYPT_CHAIN)
+/*! Buffer to repetively sink useless CBC output */
+static uint8_t cbc_buffer[CBC_BUF_LEN];
+#endif
+
+/*!
+ * Place to store useless output (while bumping CTR0 to CTR1, for instance.
+ * Must be maximum Symmetric block size
+ */
+static uint8_t garbage_output[16];
+
+/*!
+ * Block of zeroes which is maximum Symmetric block size, used for
+ * initializing context register, etc.
+ */
+static uint8_t block_zeros[16] = {
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0
+};
+
+/*!
+ * Append a descriptor chain which will compute CBC over the
+ * formatted associated data blocks.
+ *
+ * @param[in,out] link1 Where to append the new link
+ * @param[in,out] data_len Location of current/updated auth-only data length
+ * @param user_ctx Info for acquiring memory
+ * @param auth_ctx Location of block0 value
+ * @param auth_data Unformatted associated data
+ * @param auth_data_length Length in octets of @a auth_data
+ * @param[in,out] temp_buf Location of in-process data.
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+static inline fsl_shw_return_t process_assoc_from_nist_params(sah_Link ** link1,
+ uint32_t *
+ data_len,
+ fsl_shw_uco_t *
+ user_ctx,
+ fsl_shw_acco_t *
+ auth_ctx,
+ const uint8_t *
+ auth_data,
+ uint32_t
+ auth_data_length,
+ uint8_t **
+ temp_buf)
+{
+ fsl_shw_return_t status;
+ uint32_t auth_size_length =
+ COMPUTE_NIST_AUTH_LEN_SIZE(auth_data_length);
+ uint32_t auth_pad_length =
+ auth_ctx->auth_info.CCM_ctx_info.block_size_bytes -
+ (auth_data_length +
+ auth_size_length) %
+ auth_ctx->auth_info.CCM_ctx_info.block_size_bytes;
+
+ if (auth_pad_length ==
+ auth_ctx->auth_info.CCM_ctx_info.block_size_bytes) {
+ auth_pad_length = 0;
+ }
+
+ /* Put in Block0 */
+ status = sah_Create_Link(user_ctx->mem_util, link1,
+ auth_ctx->auth_info.CCM_ctx_info.context,
+ auth_ctx->auth_info.CCM_ctx_info.
+ block_size_bytes, SAH_USES_LINK_DATA);
+
+ if (auth_data_length != 0) {
+ if (status == FSL_RETURN_OK_S) {
+ /* Add on length preamble to auth data */
+ STORE_NIST_AUTH_LEN(auth_data_length, *temp_buf);
+ status = sah_Append_Link(user_ctx->mem_util, *link1,
+ *temp_buf, auth_size_length,
+ SAH_OWNS_LINK_DATA);
+ *temp_buf += auth_size_length; /* 2, 6, or 10 bytes */
+ }
+
+ if (status == FSL_RETURN_OK_S) {
+ /* Add in auth data */
+ status = sah_Append_Link(user_ctx->mem_util, *link1,
+ (uint8_t *) auth_data,
+ auth_data_length,
+ SAH_USES_LINK_DATA);
+ }
+
+ if ((status == FSL_RETURN_OK_S) && (auth_pad_length > 0)) {
+ status = sah_Append_Link(user_ctx->mem_util, *link1,
+ block_zeros, auth_pad_length,
+ SAH_USES_LINK_DATA);
+ }
+ }
+ /* ... if auth_data_length != 0 */
+ *data_len = auth_ctx->auth_info.CCM_ctx_info.block_size_bytes +
+ auth_data_length + auth_size_length + auth_pad_length;
+
+ return status;
+} /* end fn process_assoc_from_nist_params */
+
+/*!
+ * Add a Descriptor which will process with CBC the NIST preamble data
+ *
+ * @param desc_chain Current chain
+ * @param user_ctx User's context
+ * @param auth_ctx Inf
+ * @pararm encrypt 0 => decrypt, non-zero => encrypt
+ * @param auth_data Additional auth data for this call
+ * @param auth_data_length Length in bytes of @a auth_data
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+static inline fsl_shw_return_t add_assoc_preamble(sah_Head_Desc ** desc_chain,
+ fsl_shw_uco_t * user_ctx,
+ fsl_shw_acco_t * auth_ctx,
+ int encrypt,
+ const uint8_t * auth_data,
+ uint32_t auth_data_length)
+{
+ uint8_t *temp_buf;
+ sah_Link *link1 = NULL;
+ sah_Link *link2 = NULL;
+ fsl_shw_return_t status = FSL_RETURN_OK_S;
+ uint32_t cbc_data_length = 0;
+ /* Assume AES */
+ uint32_t header = SAH_HDR_SKHA_ENC_DEC;
+ uint32_t temp_buf_flag;
+ unsigned chain_s2 = 1;
+
+#if defined (FSL_HAVE_SAHARA4) && !defined (USE_S2_CCM_DECRYPT_CHAIN)
+ if (!encrypt) {
+ chain_s2 = 0;
+ }
+#endif
+#if defined (FSL_HAVE_SAHARA4) && !defined (USE_S2_CCM_ENCRYPT_CHAIN)
+ if (encrypt) {
+ chain_s2 = 0;
+ }
+#endif
+ /* Grab a block big enough for multiple uses so that only one allocate
+ * request needs to be made.
+ */
+ temp_buf =
+ user_ctx->mem_util->mu_malloc(user_ctx->mem_util->mu_ref,
+ 3 *
+ auth_ctx->auth_info.CCM_ctx_info.
+ block_size_bytes);
+
+ if (temp_buf == NULL) {
+ status = FSL_RETURN_NO_RESOURCE_S;
+ goto out;
+ }
+
+ if (auth_ctx->flags & FSL_ACCO_NIST_CCM) {
+ status = process_assoc_from_nist_params(&link1,
+ &cbc_data_length,
+ user_ctx,
+ auth_ctx,
+ auth_data,
+ auth_data_length,
+ &temp_buf);
+ if (status != FSL_RETURN_OK_S) {
+ goto out;
+ }
+ /* temp_buf has been referenced (and incremented). Only 'own' it
+ * once, at its first value. Since the nist routine called above
+ * bumps it...
+ */
+ temp_buf_flag = SAH_USES_LINK_DATA;
+ } else { /* if NIST */
+ status = sah_Create_Link(user_ctx->mem_util, &link1,
+ (uint8_t *) auth_data,
+ auth_data_length, SAH_USES_LINK_DATA);
+ if (status != FSL_RETURN_OK_S) {
+ goto out;
+ }
+ /* for next/first use of temp_buf */
+ temp_buf_flag = SAH_OWNS_LINK_DATA;
+ cbc_data_length = auth_data_length;
+ } /* else not NIST */
+
+#if defined (FSL_HAVE_SAHARA2) || defined (USE_S2_CCM_ENCRYPT_CHAIN) \
+ || defined (USE_S2_CCM_DECRYPT_CHAIN)
+
+ if (!chain_s2) {
+ header = SAH_HDR_SKHA_CBC_ICV
+ ^ sah_insert_skha_mode_cbc ^ sah_insert_skha_aux0
+ ^ sah_insert_skha_encrypt;
+ } else {
+ /*
+ * Auth data links have been created. Now create link for the
+ * useless output of the CBC calculation.
+ */
+ status = sah_Create_Link(user_ctx->mem_util, &link2,
+ temp_buf,
+ auth_ctx->auth_info.CCM_ctx_info.
+ block_size_bytes,
+ temp_buf_flag | SAH_OUTPUT_LINK);
+ if (status != FSL_RETURN_OK_S) {
+ goto out;
+ }
+
+ temp_buf += auth_ctx->auth_info.CCM_ctx_info.block_size_bytes;
+
+ cbc_data_length -=
+ auth_ctx->auth_info.CCM_ctx_info.block_size_bytes;
+ if (cbc_data_length != 0) {
+ while ((status == FSL_RETURN_OK_S)
+ && (cbc_data_length != 0)) {
+ uint32_t linklen =
+ (cbc_data_length >
+ CBC_BUF_LEN) ? CBC_BUF_LEN :
+ cbc_data_length;
+
+ status =
+ sah_Append_Link(user_ctx->mem_util, link2,
+ cbc_buffer, linklen,
+ SAH_USES_LINK_DATA |
+ SAH_OUTPUT_LINK);
+ if (status != FSL_RETURN_OK_S) {
+ goto out;
+ }
+ cbc_data_length -= linklen;
+ }
+ }
+ }
+#else
+ header = SAH_HDR_SKHA_CBC_ICV
+ ^ sah_insert_skha_mode_cbc ^ sah_insert_skha_aux0
+ ^ sah_insert_skha_encrypt;
+#endif
+ /* Crank through auth data */
+ status = sah_Append_Desc(user_ctx->mem_util, desc_chain,
+ header, link1, link2);
+
+ out:
+ if (status != FSL_RETURN_OK_S) {
+ if (link1 != NULL) {
+ sah_Destroy_Link(user_ctx->mem_util, link1);
+ }
+ if (link2 != NULL) {
+ sah_Destroy_Link(user_ctx->mem_util, link2);
+ }
+ }
+
+ (void)encrypt;
+ return status;
+} /* add_assoc_preamble() */
+
+#if SUPPORT_SSL
+/*!
+ * Generate an SSL value
+ *
+ * @param user_ctx Info for acquiring memory
+ * @param auth_ctx Info for CTR0, size of MAC
+ * @param cipher_key_info
+ * @param auth_key_info
+ * @param auth_data_length
+ * @param auth_data
+ * @param payload_length
+ * @param payload
+ * @param ct
+ * @param auth_value
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+static fsl_shw_return_t do_ssl_gen(fsl_shw_uco_t * user_ctx,
+ fsl_shw_acco_t * auth_ctx,
+ fsl_shw_sko_t * cipher_key_info,
+ fsl_shw_sko_t * auth_key_info,
+ uint32_t auth_data_length,
+ const uint8_t * auth_data,
+ uint32_t payload_length,
+ const uint8_t * payload,
+ uint8_t * ct, uint8_t * auth_value)
+{
+ SAH_SF_DCLS;
+ uint8_t *ptr1 = NULL;
+
+ /* Assume one-shot init-finalize... no precomputes */
+ header = SAH_HDR_MDHA_SET_MODE_MD_KEY ^
+ sah_insert_mdha_algorithm[auth_ctx->auth_info.hash_ctx_info.
+ algorithm] ^ sah_insert_mdha_init ^
+ sah_insert_mdha_ssl ^ sah_insert_mdha_pdata ^
+ sah_insert_mdha_mac_full;
+
+ /* set up hmac */
+ DESC_IN_KEY(header, 0, NULL, auth_key_info);
+
+ /* This is wrong -- need to find 16 extra bytes of data from
+ * somewhere */
+ DESC_IN_OUT(SAH_HDR_MDHA_HASH, payload_length, payload, 1, auth_value);
+
+ /* set up encrypt */
+ header = SAH_HDR_SKHA_SET_MODE_IV_KEY
+ ^ sah_insert_skha_mode[auth_ctx->cipher_ctx_info.mode]
+ ^ sah_insert_skha_encrypt
+ ^ sah_insert_skha_algorithm[cipher_key_info->algorithm];
+
+ /* Honor 'no key parity checking' for DES and TDES */
+ if ((cipher_key_info->flags & FSL_SKO_KEY_IGNORE_PARITY) &&
+ ((cipher_key_info->algorithm == FSL_KEY_ALG_DES) ||
+ (cipher_key_info->algorithm == FSL_KEY_ALG_TDES))) {
+ header ^= sah_insert_skha_no_key_parity;
+ }
+
+ if (auth_ctx->cipher_ctx_info.mode == FSL_SYM_MODE_CTR) {
+ header ^=
+ sah_insert_skha_modulus[auth_ctx->cipher_ctx_info.
+ modulus_exp];
+ }
+
+ if ((auth_ctx->cipher_ctx_info.mode == FSL_SYM_MODE_ECB)
+ || (auth_ctx->cipher_ctx_info.flags & FSL_SYM_CTX_INIT)) {
+ ptr1 = block_zeros;
+ } else {
+ ptr1 = auth_ctx->cipher_ctx_info.context;
+ }
+
+ DESC_IN_KEY(header, auth_ctx->cipher_ctx_info.block_size_bytes, ptr1,
+ cipher_key_info);
+
+ /* This is wrong -- need to find 16 extra bytes of data from
+ * somewhere...
+ */
+ if (payload_length != 0) {
+ DESC_IN_OUT(SAH_HDR_SKHA_ENC_DEC,
+ payload_length, payload, payload_length, ct);
+ }
+
+ SAH_SF_EXECUTE();
+
+ out:
+ SAH_SF_DESC_CLEAN();
+
+ /* Eliminate compiler warnings until full implementation... */
+ (void)auth_data;
+ (void)auth_data_length;
+
+ return ret;
+} /* do_ssl_gen() */
+#endif
+
+/*!
+ * @brief Generate a (CCM) auth code and encrypt the payload.
+ *
+ * This is a very complicated function. Seven (or eight) descriptors are
+ * required to perform a CCM calculation.
+ *
+ * First: Load CTR0 and key.
+ *
+ * Second: Run an octet of data through to bump to CTR1. (This could be
+ * done in software, but software will have to bump and later decrement -
+ * or copy and bump.
+ *
+ * Third: (in Virtio) Load a descriptor with data of zeros for CBC IV.
+ *
+ * Fourth: Run any (optional) "additional data" through the CBC-mode
+ * portion of the algorithm.
+ *
+ * Fifth: Run the payload through in CCM mode.
+ *
+ * Sixth: Extract the unencrypted MAC.
+ *
+ * Seventh: Load CTR0.
+ *
+ * Eighth: Encrypt the MAC.
+ *
+ * @param user_ctx The user's context
+ * @param auth_ctx Info on this Auth operation
+ * @param cipher_key_info Key to encrypt payload
+ * @param auth_key_info (unused - same key in CCM)
+ * @param auth_data_length Length in bytes of @a auth_data
+ * @param auth_data Any auth-only data
+ * @param payload_length Length in bytes of @a payload
+ * @param payload The data to encrypt
+ * @param[out] ct The location to store encrypted data
+ * @param[out] auth_value The location to store authentication code
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+fsl_shw_return_t fsl_shw_gen_encrypt(fsl_shw_uco_t * user_ctx,
+ fsl_shw_acco_t * auth_ctx,
+ fsl_shw_sko_t * cipher_key_info,
+ fsl_shw_sko_t * auth_key_info,
+ uint32_t auth_data_length,
+ const uint8_t * auth_data,
+ uint32_t payload_length,
+ const uint8_t * payload,
+ uint8_t * ct, uint8_t * auth_value)
+{
+ SAH_SF_DCLS;
+
+ SAH_SF_USER_CHECK();
+
+ if (auth_ctx->mode == FSL_ACC_MODE_SSL) {
+#if SUPPORT_SSL
+ ret = do_ssl_gen(user_ctx, auth_ctx, cipher_key_info,
+ auth_key_info, auth_data_length, auth_data,
+ payload_length, payload, ct, auth_value);
+#else
+ ret = FSL_RETURN_BAD_MODE_S;
+#endif
+ goto out;
+ }
+
+ if (auth_ctx->mode != FSL_ACC_MODE_CCM) {
+ ret = FSL_RETURN_BAD_MODE_S;
+ goto out;
+ }
+
+ /* Only support INIT and FINALIZE flags right now. */
+ if ((auth_ctx->flags & (FSL_ACCO_CTX_INIT | FSL_ACCO_CTX_LOAD |
+ FSL_ACCO_CTX_SAVE | FSL_ACCO_CTX_FINALIZE))
+ != (FSL_ACCO_CTX_INIT | FSL_ACCO_CTX_FINALIZE)) {
+ ret = FSL_RETURN_BAD_FLAG_S;
+ goto out;
+ }
+
+ /* Load CTR0 and Key */
+ header = (SAH_HDR_SKHA_SET_MODE_IV_KEY
+ ^ sah_insert_skha_mode_ctr
+ ^ sah_insert_skha_modulus_128 ^ sah_insert_skha_encrypt);
+ DESC_IN_KEY(header,
+ auth_ctx->cipher_ctx_info.block_size_bytes,
+ auth_ctx->cipher_ctx_info.context, cipher_key_info);
+
+ /* Encrypt dummy data to bump to CTR1 */
+ header = SAH_HDR_SKHA_ENC_DEC;
+ DESC_IN_OUT(header, auth_ctx->mac_length, garbage_output,
+ auth_ctx->mac_length, garbage_output);
+
+#if defined(FSL_HAVE_SAHARA2) || defined(USE_S2_CCM_ENCRYPT_CHAIN)
+#ifndef NO_ZERO_IV_LOAD
+ header = (SAH_HDR_SKHA_SET_MODE_IV_KEY
+ ^ sah_insert_skha_encrypt ^ sah_insert_skha_mode_cbc);
+ DESC_IN_IN(header,
+ auth_ctx->auth_info.CCM_ctx_info.block_size_bytes,
+ block_zeros, 0, NULL);
+#endif
+#endif
+
+ ret = add_assoc_preamble(&desc_chain, user_ctx,
+ auth_ctx, 1, auth_data, auth_data_length);
+ if (ret != FSL_RETURN_OK_S) {
+ goto out;
+ }
+
+ /* Process the payload */
+ header = (SAH_HDR_SKHA_SET_MODE_ENC_DEC
+ ^ sah_insert_skha_mode_ccm
+ ^ sah_insert_skha_modulus_128 ^ sah_insert_skha_encrypt);
+#if defined (FSL_HAVE_SAHARA4) && !defined (USE_S2_CCM_ENCRYPT_CHAIN)
+ header ^= sah_insert_skha_aux0;
+#endif
+ if (payload_length != 0) {
+ DESC_IN_OUT(header, payload_length, payload, payload_length,
+ ct);
+ } else {
+ DESC_IN_OUT(header, 0, NULL, 0, NULL);
+ } /* if payload_length */
+
+#if defined (FSL_HAVE_SAHARA4) && !defined (USE_S2_CCM_ENCRYPT_CHAIN)
+ /* Pull out the CBC-MAC value. */
+ DESC_OUT_OUT(SAH_HDR_SKHA_READ_CONTEXT_IV, 0, NULL,
+ auth_ctx->mac_length, auth_value);
+#else
+ /* Pull out the unencrypted CBC-MAC value. */
+ DESC_OUT_OUT(SAH_HDR_SKHA_READ_CONTEXT_IV,
+ 0, NULL, auth_ctx->mac_length, auth_ctx->unencrypted_mac);
+
+ /* Now load CTR0 in, and encrypt the MAC */
+ header = SAH_HDR_SKHA_SET_MODE_IV_KEY
+ ^ sah_insert_skha_encrypt
+ ^ sah_insert_skha_mode_ctr ^ sah_insert_skha_modulus_128;
+ DESC_IN_IN(header,
+ auth_ctx->cipher_ctx_info.block_size_bytes,
+ auth_ctx->cipher_ctx_info.context, 0, NULL);
+
+ header = SAH_HDR_SKHA_ENC_DEC; /* Desc. #4 SKHA Enc/Dec */
+ DESC_IN_OUT(header,
+ auth_ctx->mac_length, auth_ctx->unencrypted_mac,
+ auth_ctx->mac_length, auth_value);
+#endif
+
+ SAH_SF_EXECUTE();
+
+ out:
+ SAH_SF_DESC_CLEAN();
+
+ (void)auth_key_info;
+ return ret;
+} /* fsl_shw_gen_encrypt() */
+
+/*!
+ * @brief Authenticate and decrypt a (CCM) stream.
+ *
+ * @param user_ctx The user's context
+ * @param auth_ctx Info on this Auth operation
+ * @param cipher_key_info Key to encrypt payload
+ * @param auth_key_info (unused - same key in CCM)
+ * @param auth_data_length Length in bytes of @a auth_data
+ * @param auth_data Any auth-only data
+ * @param payload_length Length in bytes of @a payload
+ * @param ct The encrypted data
+ * @param auth_value The authentication code to validate
+ * @param[out] payload The location to store decrypted data
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+fsl_shw_return_t fsl_shw_auth_decrypt(fsl_shw_uco_t * user_ctx,
+ fsl_shw_acco_t * auth_ctx,
+ fsl_shw_sko_t * cipher_key_info,
+ fsl_shw_sko_t * auth_key_info,
+ uint32_t auth_data_length,
+ const uint8_t * auth_data,
+ uint32_t payload_length,
+ const uint8_t * ct,
+ const uint8_t * auth_value,
+ uint8_t * payload)
+{
+ SAH_SF_DCLS;
+#if defined(FSL_HAVE_SAHARA2) || defined(USE_S2_CCM_DECRYPT_CHAIN)
+ uint8_t *calced_auth = NULL;
+ unsigned blocking = user_ctx->flags & FSL_UCO_BLOCKING_MODE;
+#endif
+
+ SAH_SF_USER_CHECK();
+
+ /* Only support CCM */
+ if (auth_ctx->mode != FSL_ACC_MODE_CCM) {
+ ret = FSL_RETURN_BAD_MODE_S;
+ goto out;
+ }
+ /* Only support INIT and FINALIZE flags right now. */
+ if ((auth_ctx->flags & (FSL_ACCO_CTX_INIT | FSL_ACCO_CTX_LOAD |
+ FSL_ACCO_CTX_SAVE | FSL_ACCO_CTX_FINALIZE))
+ != (FSL_ACCO_CTX_INIT | FSL_ACCO_CTX_FINALIZE)) {
+ ret = FSL_RETURN_BAD_FLAG_S;
+ goto out;
+ }
+
+ /* Load CTR0 and Key */
+ header = SAH_HDR_SKHA_SET_MODE_IV_KEY
+ ^ sah_insert_skha_mode_ctr ^ sah_insert_skha_modulus_128;
+#if defined (FSL_HAVE_SAHARA4) && !defined (USE_S2_CCM_DECRYPT_CHAIN)
+ header ^= sah_insert_skha_aux0;
+#endif
+ DESC_IN_KEY(header,
+ auth_ctx->cipher_ctx_info.block_size_bytes,
+ auth_ctx->cipher_ctx_info.context, cipher_key_info);
+
+ /* Decrypt the MAC which the user passed in */
+ header = SAH_HDR_SKHA_ENC_DEC;
+ DESC_IN_OUT(header,
+ auth_ctx->mac_length, auth_value,
+ auth_ctx->mac_length, auth_ctx->unencrypted_mac);
+
+#if defined(FSL_HAVE_SAHARA2) || defined(USE_S2_CCM_DECRYPT_CHAIN)
+#ifndef NO_ZERO_IV_LOAD
+ header = (SAH_HDR_SKHA_SET_MODE_IV_KEY
+ ^ sah_insert_skha_encrypt ^ sah_insert_skha_mode_cbc);
+ DESC_IN_IN(header,
+ auth_ctx->auth_info.CCM_ctx_info.block_size_bytes,
+ block_zeros, 0, NULL);
+#endif
+#endif
+
+ ret = add_assoc_preamble(&desc_chain, user_ctx,
+ auth_ctx, 0, auth_data, auth_data_length);
+ if (ret != FSL_RETURN_OK_S) {
+ goto out;
+ }
+
+ /* Process the payload */
+ header = (SAH_HDR_SKHA_SET_MODE_ENC_DEC
+ ^ sah_insert_skha_mode_ccm ^ sah_insert_skha_modulus_128);
+#if defined (FSL_HAVE_SAHARA4) && !defined (USE_S2_CCM_DECRYPT_CHAIN)
+ header ^= sah_insert_skha_aux0;
+#endif
+ if (payload_length != 0) {
+ DESC_IN_OUT(header, payload_length, ct, payload_length,
+ payload);
+ } else {
+ DESC_IN_OUT(header, 0, NULL, 0, NULL);
+ }
+
+#if defined (FSL_HAVE_SAHARA2) || defined (USE_S2_CCM_DECRYPT_CHAIN)
+ /* Now pull CBC context (unencrypted MAC) out for comparison. */
+ /* Need to allocate a place for it, to handle non-blocking mode
+ * when this stack frame will disappear!
+ */
+ calced_auth = DESC_TEMP_ALLOC(auth_ctx->mac_length);
+ header = SAH_HDR_SKHA_READ_CONTEXT_IV;
+ DESC_OUT_OUT(header, 0, NULL, auth_ctx->mac_length, calced_auth);
+ if (!blocking) {
+ /* get_results will need this for comparison */
+ desc_chain->out1_ptr = calced_auth;
+ desc_chain->out2_ptr = auth_ctx->unencrypted_mac;
+ desc_chain->out_len = auth_ctx->mac_length;
+ }
+#endif
+
+ SAH_SF_EXECUTE();
+
+#if defined (FSL_HAVE_SAHARA2) || defined (USE_S2_CCM_DECRYPT_CHAIN)
+ if (blocking && (ret == FSL_RETURN_OK_S)) {
+ unsigned i;
+ /* Validate the auth code */
+ for (i = 0; i < auth_ctx->mac_length; i++) {
+ if (calced_auth[i] != auth_ctx->unencrypted_mac[i]) {
+ ret = FSL_RETURN_AUTH_FAILED_S;
+ break;
+ }
+ }
+ }
+#endif
+
+ out:
+ SAH_SF_DESC_CLEAN();
+#if defined (FSL_HAVE_SAHARA2) || defined (USE_S2_CCM_DECRYPT_CHAIN)
+ DESC_TEMP_FREE(calced_auth);
+#endif
+
+ (void)auth_key_info;
+ return ret;
+} /* fsl_shw_gen_decrypt() */
diff --git a/drivers/mxc/security/sahara2/fsl_shw_hash.c b/drivers/mxc/security/sahara2/fsl_shw_hash.c
new file mode 100644
index 000000000000..7d4db53480f6
--- /dev/null
+++ b/drivers/mxc/security/sahara2/fsl_shw_hash.c
@@ -0,0 +1,186 @@
+/*
+ * Copyright (C) 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file fsl_shw_hash.c
+ *
+ * This file implements Cryptographic Hashing functions of the FSL SHW API
+ * for Sahara. This does not include HMAC.
+ */
+
+#include "sahara.h"
+#include "sf_util.h"
+
+#ifdef LINUX_KERNEL
+EXPORT_SYMBOL(fsl_shw_hash);
+#endif
+
+/* REQ-S2LRD-PINTFC-API-BASIC-HASH-005 */
+/*!
+ * Hash a stream of data with a cryptographic hash algorithm.
+ *
+ * The flags in the @a hash_ctx control the operation of this function.
+ *
+ * Hashing functions work on 64 octets of message at a time. Therefore, when
+ * any partial hashing of a long message is performed, the message @a length of
+ * each segment must be a multiple of 64. When ready to
+ * #FSL_HASH_FLAGS_FINALIZE the hash, the @a length may be any value.
+ *
+ * With the #FSL_HASH_FLAGS_INIT and #FSL_HASH_FLAGS_FINALIZE flags on, a
+ * one-shot complete hash, including padding, will be performed. The @a length
+ * may be any value.
+ *
+ * The first octets of a data stream can be hashed by setting the
+ * #FSL_HASH_FLAGS_INIT and #FSL_HASH_FLAGS_SAVE flags. The @a length must be
+ * a multiple of 64.
+ *
+ * The flag #FSL_HASH_FLAGS_LOAD is used to load a context previously saved by
+ * #FSL_HASH_FLAGS_SAVE. The two in combination will allow a (multiple-of-64
+ * octets) 'middle sequence' of the data stream to be hashed with the
+ * beginning. The @a length must again be a multiple of 64.
+ *
+ * Since the flag #FSL_HASH_FLAGS_LOAD is used to load a context previously
+ * saved by #FSL_HASH_FLAGS_SAVE, the #FSL_HASH_FLAGS_LOAD and
+ * #FSL_HASH_FLAGS_FINALIZE flags, used together, can be used to finish the
+ * stream. The @a length may be any value.
+ *
+ * If the user program wants to do the padding for the hash, it can leave off
+ * the #FSL_HASH_FLAGS_FINALIZE flag. The @a length must then be a multiple of
+ * 64 octets.
+ *
+ * @param user_ctx A user context from #fsl_shw_register_user().
+ * @param[in,out] hash_ctx Hashing algorithm and state of the cipher.
+ * @param msg Pointer to the data to be hashed.
+ * @param length Length, in octets, of the @a msg.
+ * @param[out] result If not null, pointer to where to store the hash
+ * digest.
+ * @param result_len Number of octets to store in @a result.
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+fsl_shw_return_t fsl_shw_hash(fsl_shw_uco_t * user_ctx,
+ fsl_shw_hco_t * hash_ctx,
+ const uint8_t * msg,
+ uint32_t length,
+ uint8_t * result, uint32_t result_len)
+{
+ SAH_SF_DCLS;
+ unsigned ctx_flags = (hash_ctx->flags & (FSL_HASH_FLAGS_INIT
+ | FSL_HASH_FLAGS_LOAD
+ | FSL_HASH_FLAGS_SAVE
+ | FSL_HASH_FLAGS_FINALIZE));
+
+ SAH_SF_USER_CHECK();
+
+ /* Reset expectations if user gets overly zealous. */
+ if (result_len > hash_ctx->digest_length) {
+ result_len = hash_ctx->digest_length;
+ }
+
+ /* Validate hash ctx flags.
+ * Need INIT or LOAD but not both.
+ * Need SAVE or digest ptr (both is ok).
+ */
+ if (((ctx_flags & (FSL_HASH_FLAGS_INIT | FSL_HASH_FLAGS_LOAD))
+ == (FSL_HASH_FLAGS_INIT | FSL_HASH_FLAGS_LOAD))
+ || ((ctx_flags & (FSL_HASH_FLAGS_INIT | FSL_HASH_FLAGS_LOAD)) == 0)
+ || (!(ctx_flags & FSL_HASH_FLAGS_SAVE) && (result == NULL))) {
+ ret = FSL_RETURN_BAD_FLAG_S;
+ goto out;
+ }
+
+ if (ctx_flags & FSL_HASH_FLAGS_INIT) {
+ sah_Oct_Str out_ptr;
+ unsigned out_len;
+
+ /* Create desc to perform the initial hashing operation */
+ /* Desc. #8 w/INIT and algorithm */
+ header = SAH_HDR_MDHA_SET_MODE_HASH
+ ^ sah_insert_mdha_init
+ ^ sah_insert_mdha_algorithm[hash_ctx->algorithm];
+
+ /* If user wants one-shot, set padding operation. */
+ if (ctx_flags & FSL_HASH_FLAGS_FINALIZE) {
+ header ^= sah_insert_mdha_pdata;
+ }
+
+ /* Determine where Digest will go - hash_ctx or result */
+ if (ctx_flags & FSL_HASH_FLAGS_SAVE) {
+ out_ptr = (sah_Oct_Str) hash_ctx->context;
+ out_len = hash_ctx->context_register_length;
+ } else {
+ out_ptr = result;
+ out_len = (result_len > hash_ctx->digest_length)
+ ? hash_ctx->digest_length : result_len;
+ }
+
+ DESC_IN_OUT(header, length, (sah_Oct_Str) msg, out_len,
+ out_ptr);
+ } else { /* not doing hash INIT */
+ void *out_ptr;
+ unsigned out_len;
+
+ /*
+ * Build two descriptors -- one to load in context/set mode, the
+ * other to compute & retrieve hash/context value.
+ *
+ * First up - Desc. #6 to load context.
+ */
+ /* Desc. #8 w/algorithm */
+ header = SAH_HDR_MDHA_SET_MODE_MD_KEY
+ ^ sah_insert_mdha_algorithm[hash_ctx->algorithm];
+
+ if (ctx_flags & FSL_HASH_FLAGS_FINALIZE) {
+ header ^= sah_insert_mdha_pdata;
+ }
+
+ /* Message Digest (in) */
+ DESC_IN_IN(header,
+ hash_ctx->context_register_length,
+ (sah_Oct_Str) hash_ctx->context, 0, NULL);
+
+ if (ctx_flags & FSL_HASH_FLAGS_SAVE) {
+ out_ptr = hash_ctx->context;
+ out_len = hash_ctx->context_register_length;
+ } else {
+ out_ptr = result;
+ out_len = result_len;
+ }
+
+ /* Second -- run data through and retrieve ctx regs */
+ /* Desc. #10 - no mode register with this. */
+ header = SAH_HDR_MDHA_HASH;
+ DESC_IN_OUT(header, length, (sah_Oct_Str) msg, out_len,
+ out_ptr);
+ } /* else not INIT */
+
+ /* Now that execution is rejoined, we can append another descriptor
+ to extract the digest/context a second time, into the result. */
+ if ((ctx_flags & FSL_HASH_FLAGS_SAVE)
+ && (result != NULL) && (result_len != 0)) {
+
+ header = SAH_HDR_MDHA_STORE_DIGEST;
+
+ /* Message Digest (out) */
+ DESC_IN_OUT(header, 0, NULL,
+ (result_len > hash_ctx->digest_length)
+ ? hash_ctx->digest_length : result_len, result);
+ }
+
+ SAH_SF_EXECUTE();
+
+ out:
+ SAH_SF_DESC_CLEAN();
+
+ return ret;
+} /* fsl_shw_hash() */
diff --git a/drivers/mxc/security/sahara2/fsl_shw_hmac.c b/drivers/mxc/security/sahara2/fsl_shw_hmac.c
new file mode 100644
index 000000000000..21f4314054d6
--- /dev/null
+++ b/drivers/mxc/security/sahara2/fsl_shw_hmac.c
@@ -0,0 +1,266 @@
+/*
+ * Copyright (C) 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file fsl_shw_hmac.c
+ *
+ * This file implements Hashed Message Authentication Code functions of the FSL
+ * SHW API for Sahara.
+ */
+
+#include "sahara.h"
+#include "sf_util.h"
+
+#ifdef __KERNEL__
+EXPORT_SYMBOL(fsl_shw_hmac_precompute);
+EXPORT_SYMBOL(fsl_shw_hmac);
+#endif
+
+/* REQ-S2LRD-PINTFC-API-BASIC-HMAC-001 */
+/*!
+ * Get the precompute information
+ *
+ *
+ * @param user_ctx
+ * @param key_info
+ * @param hmac_ctx
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+fsl_shw_return_t fsl_shw_hmac_precompute(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info,
+ fsl_shw_hmco_t * hmac_ctx)
+{
+ SAH_SF_DCLS;
+
+ SAH_SF_USER_CHECK();
+
+ if ((key_info->algorithm != FSL_KEY_ALG_HMAC) ||
+ (key_info->key_length > 64)) {
+ return FSL_RETURN_BAD_ALGORITHM_S;
+ } else if (key_info->key_length == 0) {
+ return FSL_RETURN_BAD_KEY_LENGTH_S;
+ }
+
+ /* Set up to start the Inner Calculation */
+ /* Desc. #8 w/IPAD, & INIT */
+ header = SAH_HDR_MDHA_SET_MODE_HASH
+ ^ sah_insert_mdha_ipad
+ ^ sah_insert_mdha_init
+ ^ sah_insert_mdha_algorithm[hmac_ctx->algorithm];
+
+ DESC_KEY_OUT(header, key_info,
+ hmac_ctx->context_register_length,
+ (uint8_t *) hmac_ctx->inner_precompute);
+
+ /* Set up for starting Outer calculation */
+ /* exchange IPAD bit for OPAD bit */
+ header ^= (sah_insert_mdha_ipad ^ sah_insert_mdha_opad);
+
+ /* Theoretically, we can leave this link out and use the key which is
+ * already in the register... however, if we do, the resulting opad
+ * hash does not have the correct value when using the model. */
+ DESC_KEY_OUT(header, key_info,
+ hmac_ctx->context_register_length,
+ (uint8_t *) hmac_ctx->outer_precompute);
+
+ SAH_SF_EXECUTE();
+ if (ret == FSL_RETURN_OK_S) {
+ /* flag that precomputes have been entered in this hco
+ * assume it'll first be used for initilizing */
+ hmac_ctx->flags |= (FSL_HMAC_FLAGS_INIT |
+ FSL_HMAC_FLAGS_PRECOMPUTES_PRESENT);
+ }
+
+ out:
+ SAH_SF_DESC_CLEAN();
+
+ return ret;
+}
+
+/* REQ-S2LRD-PINTFC-API-BASIC-HMAC-002 */
+/*!
+ * Get the hmac
+ *
+ *
+ * @param user_ctx Info for acquiring memory
+ * @param key_info
+ * @param hmac_ctx
+ * @param msg
+ * @param length
+ * @param result
+ * @param result_len
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+fsl_shw_return_t fsl_shw_hmac(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info,
+ fsl_shw_hmco_t * hmac_ctx,
+ const uint8_t * msg,
+ uint32_t length,
+ uint8_t * result, uint32_t result_len)
+{
+ SAH_SF_DCLS;
+
+ SAH_SF_USER_CHECK();
+
+ /* check flag consistency */
+ /* Note that Final, Init, and Save are an illegal combination when a key
+ * is being used. Because of the logic flow of this routine, that is
+ * taken care of without being explict */
+ if (
+ /* nothing to work on */
+ (((hmac_ctx->flags & FSL_HMAC_FLAGS_INIT) == 0) &&
+ ((hmac_ctx->flags & FSL_HMAC_FLAGS_LOAD) == 0)) ||
+ /* can't do both */
+ ((hmac_ctx->flags & FSL_HMAC_FLAGS_INIT) &&
+ (hmac_ctx->flags & FSL_HMAC_FLAGS_LOAD)) ||
+ /* must be some output */
+ (((hmac_ctx->flags & FSL_HMAC_FLAGS_SAVE) == 0) &&
+ ((hmac_ctx->flags & FSL_HMAC_FLAGS_FINALIZE) == 0))) {
+ ret = FSL_RETURN_BAD_FLAG_S;
+ goto out;
+ }
+
+ /* build descriptor #6 */
+
+ /* start building descriptor header */
+ header = SAH_HDR_MDHA_SET_MODE_MD_KEY ^
+ sah_insert_mdha_algorithm[hmac_ctx->algorithm] ^
+ sah_insert_mdha_init;
+
+ /* if this is to finalize the digest, mark to pad last block */
+ if (hmac_ctx->flags & FSL_HMAC_FLAGS_FINALIZE) {
+ header ^= sah_insert_mdha_pdata;
+ }
+
+ /* Check if this is a one shot */
+ if ((hmac_ctx->flags & FSL_HMAC_FLAGS_INIT) &&
+ (hmac_ctx->flags & FSL_HMAC_FLAGS_FINALIZE)) {
+
+ header ^= sah_insert_mdha_hmac;
+
+ /* See if this uses Precomputes */
+ if (hmac_ctx->flags & FSL_HMAC_FLAGS_PRECOMPUTES_PRESENT) {
+ DESC_IN_IN(header,
+ hmac_ctx->context_register_length,
+ (uint8_t *) hmac_ctx->inner_precompute,
+ hmac_ctx->context_length,
+ (uint8_t *) hmac_ctx->outer_precompute);
+ } else { /* Precomputes not requested, try using Key */
+ if (key_info->key != NULL) {
+ /* first, validate the key fields and related flag */
+ if ((key_info->key_length == 0)
+ || (key_info->key_length > 64)) {
+ ret = FSL_RETURN_BAD_KEY_LENGTH_S;
+ goto out;
+ } else {
+ if (key_info->algorithm !=
+ FSL_KEY_ALG_HMAC) {
+ ret =
+ FSL_RETURN_BAD_ALGORITHM_S;
+ goto out;
+ }
+ }
+
+ /* finish building descriptor header (Key specific) */
+ header ^= sah_insert_mdha_mac_full;
+ DESC_IN_KEY(header, 0, NULL, key_info);
+ } else { /* not using Key or Precomputes, so die */
+ ret = FSL_RETURN_BAD_FLAG_S;
+ goto out;
+ }
+ }
+ } else { /* it's not a one shot, must be multi-step */
+ /* this the last chunk? */
+ if (hmac_ctx->flags & FSL_HMAC_FLAGS_FINALIZE) {
+ header ^= sah_insert_mdha_hmac;
+ DESC_IN_IN(header,
+ hmac_ctx->context_register_length,
+ (uint8_t *) hmac_ctx->ongoing_context,
+ hmac_ctx->context_length,
+ (uint8_t *) hmac_ctx->outer_precompute);
+ } else { /* not last chunk */
+ uint8_t *ptr1;
+
+ if (hmac_ctx->flags & FSL_HMAC_FLAGS_INIT) {
+ /* must be using precomputes, cannot 'chunk' message
+ * starting with a key */
+ if (hmac_ctx->
+ flags & FSL_HMAC_FLAGS_PRECOMPUTES_PRESENT)
+ {
+ ptr1 =
+ (uint8_t *) hmac_ctx->
+ inner_precompute;
+ } else {
+ ret = FSL_RETURN_NO_RESOURCE_S;
+ goto out;
+ }
+ } else {
+ ptr1 = (uint8_t *) hmac_ctx->ongoing_context;
+ }
+
+ if (ret != FSL_RETURN_OK_S) {
+ goto out;
+ }
+ DESC_IN_IN(header,
+ hmac_ctx->context_register_length, ptr1,
+ 0, NULL);
+ }
+ } /* multi-step */
+
+ /* build descriptor #10 & maybe 11 */
+ header = SAH_HDR_MDHA_HASH;
+
+ if (hmac_ctx->flags & FSL_HMAC_FLAGS_FINALIZE) {
+ /* check that the results parameters seem reasonable */
+ if ((result_len != 0) && (result != NULL)) {
+ if (result_len > hmac_ctx->context_register_length) {
+ result_len = hmac_ctx->context_register_length;
+ }
+
+ /* message in / digest out (descriptor #10) */
+ DESC_IN_OUT(header, length, msg, result_len, result);
+
+ /* see if descriptor #11 needs to be built */
+ if (hmac_ctx->flags & FSL_HMAC_FLAGS_SAVE) {
+ header = SAH_HDR_MDHA_STORE_DIGEST;
+ /* nothing in / context out */
+ DESC_IN_IN(header, 0, NULL,
+ hmac_ctx->context_register_length,
+ (uint8_t *) hmac_ctx->
+ ongoing_context);
+ }
+ } else {
+ /* something wrong with result or its length */
+ ret = FSL_RETURN_BAD_DATA_LENGTH_S;
+ }
+ } else { /* finalize not set, so store in ongoing context field */
+ if ((length % 64) == 0) { /* this will change for 384/512 support */
+ /* message in / context out */
+ DESC_IN_OUT(header, length, msg,
+ hmac_ctx->context_register_length,
+ (uint8_t *) hmac_ctx->ongoing_context);
+ } else {
+ /* not final data, and not multiple of block length */
+ ret = FSL_RETURN_BAD_DATA_LENGTH_S;
+ }
+ }
+
+ SAH_SF_EXECUTE();
+
+ out:
+ SAH_SF_DESC_CLEAN();
+
+ return ret;
+} /* fsl_shw_hmac() */
diff --git a/drivers/mxc/security/sahara2/fsl_shw_keystore.c b/drivers/mxc/security/sahara2/fsl_shw_keystore.c
new file mode 100644
index 000000000000..b45cda6dde01
--- /dev/null
+++ b/drivers/mxc/security/sahara2/fsl_shw_keystore.c
@@ -0,0 +1,837 @@
+/*
+ * Copyright (C) 2008-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/**
+ * @file fsl_shw_keystore.c
+ *
+ * File which implements a default keystore policy, for use as the system
+ * keystore.
+ */
+#include "fsl_platform.h"
+#include "fsl_shw.h"
+#include "fsl_shw_keystore.h"
+
+#if defined(DIAG_DRV_IF)
+#include <diagnostic.h>
+#endif
+
+#if !defined(FSL_HAVE_SCC2) && defined(__KERNEL__)
+#include <linux/mxc_scc_driver.h>
+#endif
+
+/* Define a semaphore to protect the keystore data */
+#ifdef __KERNEL__
+#define LOCK_INCLUDES os_lock_context_t context
+#define ACQUIRE_LOCK os_lock_save_context(keystore->lock, context)
+#define RELEASE_LOCK os_unlock_restore_context(keystore->lock, context);
+#else
+#define LOCK_INCLUDES
+#define ACQUIRE_LOCK
+#define RELEASE_LOCK
+#endif /* __KERNEL__ */
+
+/*!
+ * Calculates the byte offset into a word
+ * @param bp The byte (char*) pointer
+ * @return The offset (0, 1, 2, or 3)
+ */
+#define SCC_BYTE_OFFSET(bp) ((uint32_t)(bp) % sizeof(uint32_t))
+
+/*!
+ * Converts (by rounding down) a byte pointer into a word pointer
+ * @param bp The byte (char*) pointer
+ * @return The word (uint32_t) as though it were an aligned (uint32_t*)
+ */
+#define SCC_WORD_PTR(bp) (((uint32_t)(bp)) & ~(sizeof(uint32_t)-1))
+
+/* Depending on the architecture, these functions should be defined
+ * differently. On Platforms with SCC2, the functions use the secure
+ * partition interface and should be available in both user and kernel space.
+ * On platforms with SCC, they use the SCC keystore interface. This is only
+ * available in kernel mode, so they should be stubbed out in user mode.
+ */
+#if defined(FSL_HAVE_SCC2) || (defined(FSL_HAVE_SCC) && defined(__KERNEL__))
+EXPORT_SYMBOL(fsl_shw_init_keystore);
+void fsl_shw_init_keystore(
+ fsl_shw_kso_t *keystore,
+ fsl_shw_return_t(*data_init) (fsl_shw_uco_t *user_ctx,
+ void **user_data),
+ void (*data_cleanup) (fsl_shw_uco_t *user_ctx,
+ void **user_data),
+ fsl_shw_return_t(*slot_alloc) (void *user_data,
+ uint32_t size,
+ uint64_t owner_id,
+ uint32_t *slot),
+ fsl_shw_return_t(*slot_dealloc) (void *user_data,
+ uint64_t
+ owner_id,
+ uint32_t slot),
+ fsl_shw_return_t(*slot_verify_access) (void
+ *user_data,
+ uint64_t
+ owner_id,
+ uint32_t
+ slot),
+ void *(*slot_get_address) (void *user_data,
+ uint32_t handle),
+ uint32_t(*slot_get_base) (void *user_data,
+ uint32_t handle),
+ uint32_t(*slot_get_offset) (void *user_data,
+ uint32_t handle),
+ uint32_t(*slot_get_slot_size) (void *user_data,
+ uint32_t handle))
+{
+ keystore->data_init = data_init;
+ keystore->data_cleanup = data_cleanup;
+ keystore->slot_alloc = slot_alloc;
+ keystore->slot_dealloc = slot_dealloc;
+ keystore->slot_verify_access = slot_verify_access;
+ keystore->slot_get_address = slot_get_address;
+ keystore->slot_get_base = slot_get_base;
+ keystore->slot_get_offset = slot_get_offset;
+ keystore->slot_get_slot_size = slot_get_slot_size;
+}
+
+EXPORT_SYMBOL(fsl_shw_init_keystore_default);
+void fsl_shw_init_keystore_default(fsl_shw_kso_t *keystore)
+{
+ keystore->data_init = shw_kso_init_data;
+ keystore->data_cleanup = shw_kso_cleanup_data;
+ keystore->slot_alloc = shw_slot_alloc;
+ keystore->slot_dealloc = shw_slot_dealloc;
+ keystore->slot_verify_access = shw_slot_verify_access;
+ keystore->slot_get_address = shw_slot_get_address;
+ keystore->slot_get_base = shw_slot_get_base;
+ keystore->slot_get_offset = shw_slot_get_offset;
+ keystore->slot_get_slot_size = shw_slot_get_slot_size;
+}
+
+/*!
+ * Do any keystore specific initializations
+ */
+EXPORT_SYMBOL(fsl_shw_establish_keystore);
+fsl_shw_return_t fsl_shw_establish_keystore(fsl_shw_uco_t *user_ctx,
+ fsl_shw_kso_t *keystore)
+{
+ if (keystore->data_init == NULL) {
+ return FSL_RETURN_ERROR_S;
+ }
+
+ /* Call the data_init function for any user setup */
+ return keystore->data_init(user_ctx, &(keystore->user_data));
+}
+
+EXPORT_SYMBOL(fsl_shw_release_keystore);
+void fsl_shw_release_keystore(fsl_shw_uco_t *user_ctx,
+ fsl_shw_kso_t *keystore)
+{
+
+ /* Call the data_cleanup function for any keystore cleanup.
+ * NOTE: The keystore doesn't have any way of telling which keys are using
+ * it, so it is up to the user program to manage their key objects
+ * correctly.
+ */
+ if ((keystore != NULL) && (keystore->data_cleanup != NULL)) {
+ keystore->data_cleanup(user_ctx, &(keystore->user_data));
+ }
+ return;
+}
+
+fsl_shw_return_t keystore_slot_alloc(fsl_shw_kso_t *keystore, uint32_t size,
+ uint64_t owner_id, uint32_t *slot)
+{
+ LOCK_INCLUDES;
+ fsl_shw_return_t retval = FSL_RETURN_ERROR_S;
+
+#ifdef DIAG_DRV_IF
+ LOG_DIAG("In keystore_slot_alloc.");
+
+#endif
+ ACQUIRE_LOCK;
+ if ((keystore->slot_alloc == NULL) || (keystore->user_data == NULL)) {
+ goto out;
+ }
+
+#ifdef DIAG_DRV_IF
+ LOG_DIAG_ARGS("key length: %i, handle: %i\n", size, *slot);
+
+#endif
+retval = keystore->slot_alloc(keystore->user_data, size, owner_id, slot);
+out:RELEASE_LOCK;
+ return retval;
+}
+
+fsl_shw_return_t keystore_slot_dealloc(fsl_shw_kso_t *keystore,
+ uint64_t owner_id, uint32_t slot)
+{
+ LOCK_INCLUDES;
+ fsl_shw_return_t retval = FSL_RETURN_ERROR_S;
+ ACQUIRE_LOCK;
+ if ((keystore->slot_alloc == NULL) || (keystore->user_data == NULL)) {
+ goto out;
+ }
+ retval =
+ keystore->slot_dealloc(keystore->user_data, owner_id, slot);
+out:RELEASE_LOCK;
+ return retval;
+}
+
+fsl_shw_return_t
+keystore_slot_load(fsl_shw_kso_t * keystore, uint64_t owner_id, uint32_t slot,
+ const uint8_t * key_data, uint32_t key_length)
+{
+
+#ifdef FSL_HAVE_SCC2
+ LOCK_INCLUDES;
+ fsl_shw_return_t retval = FSL_RETURN_ERROR_S;
+ uint32_t slot_size;
+ uint32_t i;
+ uint8_t * slot_location;
+ ACQUIRE_LOCK;
+ if ((keystore->slot_verify_access == NULL) ||
+ (keystore->user_data == NULL))
+ goto out;
+ if (keystore->
+ slot_verify_access(keystore->user_data, owner_id,
+ slot) !=FSL_RETURN_OK_S) {
+ retval = FSL_RETURN_AUTH_FAILED_S;
+ goto out;
+ }
+ slot_size = keystore->slot_get_slot_size(keystore->user_data, slot);
+ if (key_length > slot_size) {
+ retval = FSL_RETURN_BAD_DATA_LENGTH_S;
+ goto out;
+ }
+ slot_location = keystore->slot_get_address(keystore->user_data, slot);
+ for (i = 0; i < key_length; i++) {
+ slot_location[i] = key_data[i];
+ }
+ retval = FSL_RETURN_OK_S;
+out:RELEASE_LOCK;
+ return retval;
+
+#else /* FSL_HAVE_SCC2 */
+ fsl_shw_return_t retval;
+ scc_return_t scc_ret;
+ scc_ret =
+ scc_load_slot(owner_id, slot, (uint8_t *) key_data, key_length);
+ switch (scc_ret) {
+ case SCC_RET_OK:
+ retval = FSL_RETURN_OK_S;
+ break;
+ case SCC_RET_VERIFICATION_FAILED:
+ retval = FSL_RETURN_AUTH_FAILED_S;
+ break;
+ case SCC_RET_INSUFFICIENT_SPACE:
+ retval = FSL_RETURN_BAD_DATA_LENGTH_S;
+ break;
+ default:
+ retval = FSL_RETURN_ERROR_S;
+ }
+ return retval;
+
+#endif /* FSL_HAVE_SCC2 */
+}
+
+fsl_shw_return_t
+keystore_slot_read(fsl_shw_kso_t * keystore, uint64_t owner_id, uint32_t slot,
+ uint32_t key_length, uint8_t * key_data)
+{
+#ifdef FSL_HAVE_SCC2
+ fsl_shw_return_t retval = FSL_RETURN_ERROR_S;
+ uint8_t *slot_addr;
+ uint32_t slot_size;
+
+ slot_addr = keystore->slot_get_address(keystore->user_data, slot);
+ slot_size = keystore->slot_get_slot_size(keystore->user_data, slot);
+
+ if (key_length > slot_size) {
+ retval = FSL_RETURN_BAD_KEY_LENGTH_S;
+ goto out;
+ }
+
+ memcpy(key_data, slot_addr, key_length);
+ retval = FSL_RETURN_OK_S;
+
+ out:
+ return retval;
+
+#else /* Have SCC2 */
+ fsl_shw_return_t retval = FSL_RETURN_ERROR_S;
+ scc_return_t scc_ret;
+ printk("keystore SCC \n");
+
+ scc_ret =
+ scc_read_slot(owner_id, slot, key_length, (uint8_t *) key_data);
+ printk("keystore SCC Ret value: %d \n", scc_ret);
+ switch (scc_ret) {
+ case SCC_RET_OK:
+ retval = FSL_RETURN_OK_S;
+ break;
+ case SCC_RET_VERIFICATION_FAILED:
+ retval = FSL_RETURN_AUTH_FAILED_S;
+ break;
+ case SCC_RET_INSUFFICIENT_SPACE:
+ retval = FSL_RETURN_BAD_DATA_LENGTH_S;
+ break;
+ default:
+ retval = FSL_RETURN_ERROR_S;
+ }
+
+ return retval;
+
+#endif /* FSL_HAVE_SCC2 */
+}/* end fn keystore_slot_read */
+
+fsl_shw_return_t
+keystore_slot_encrypt(fsl_shw_uco_t *user_ctx, fsl_shw_kso_t *keystore,
+ uint64_t owner_id, uint32_t slot, uint32_t length,
+ uint8_t *destination)
+{
+
+#ifdef FSL_HAVE_SCC2
+ LOCK_INCLUDES;
+ fsl_shw_return_t retval = FSL_RETURN_ERROR_S;
+ uint32_t slot_length;
+ uint32_t IV[4];
+ uint32_t * iv_ptr = (uint32_t *) & (owner_id);
+
+ /* Build the IV */
+ IV[0] = iv_ptr[0];
+ IV[1] = iv_ptr[1];
+ IV[2] = 0;
+ IV[3] = 0;
+ ACQUIRE_LOCK;
+
+ /* Ensure that the data will fit in the key slot */
+ slot_length =
+ keystore->slot_get_slot_size(keystore->user_data, slot);
+ if (length > slot_length) {
+ goto out;
+ }
+
+ /* Call scc encrypt function to encrypt the data. */
+ retval = do_scc_encrypt_region(user_ctx,
+ (void *)keystore->
+ slot_get_base(keystore->user_data,
+ slot),
+ keystore->slot_get_offset(keystore->
+ user_data,
+ slot),
+ length, destination, IV,
+ FSL_SHW_CYPHER_MODE_CBC);
+ goto out;
+out:RELEASE_LOCK;
+ return retval;
+
+#else
+ scc_return_t retval;
+ retval = scc_encrypt_slot(owner_id, slot, length, destination);
+ if (retval == SCC_RET_OK)
+ return FSL_RETURN_OK_S;
+ return FSL_RETURN_ERROR_S;
+
+#endif /* FSL_HAVE_SCC2 */
+}
+
+fsl_shw_return_t
+keystore_slot_decrypt(fsl_shw_uco_t *user_ctx, fsl_shw_kso_t *keystore,
+ uint64_t owner_id, uint32_t slot, uint32_t length,
+ const uint8_t *source)
+{
+
+#ifdef FSL_HAVE_SCC2
+ LOCK_INCLUDES;
+ fsl_shw_return_t retval = FSL_RETURN_ERROR_S;
+ uint32_t slot_length;
+ uint32_t IV[4];
+ uint32_t *iv_ptr = (uint32_t *) & (owner_id);
+
+ /* Build the IV */
+ IV[0] = iv_ptr[0];
+ IV[1] = iv_ptr[1];
+ IV[2] = 0;
+ IV[3] = 0;
+ ACQUIRE_LOCK;
+
+ /* Call scc decrypt function to decrypt the data. */
+
+ /* Ensure that the data will fit in the key slot */
+ slot_length =
+ keystore->slot_get_slot_size(keystore->user_data, slot);
+ if (length > slot_length)
+ goto out;
+
+ /* Call scc decrypt function to encrypt the data. */
+ retval = do_scc_decrypt_region(user_ctx,
+ (void *)keystore->
+ slot_get_base(keystore->user_data,
+ slot),
+ keystore->slot_get_offset(keystore->
+ user_data,
+ slot),
+ length, source, IV,
+ FSL_SHW_CYPHER_MODE_CBC);
+ goto out;
+out:RELEASE_LOCK;
+ return retval;
+
+#else
+ scc_return_t retval;
+ retval = scc_decrypt_slot(owner_id, slot, length, source);
+ if (retval == SCC_RET_OK)
+ return FSL_RETURN_OK_S;
+ return FSL_RETURN_ERROR_S;
+
+#endif /* FSL_HAVE_SCC2 */
+}
+
+#else /* SCC in userspace */
+void fsl_shw_init_keystore(
+ fsl_shw_kso_t *keystore,
+ fsl_shw_return_t(*data_init) (fsl_shw_uco_t *user_ctx,
+ void **user_data),
+ void (*data_cleanup) (fsl_shw_uco_t *user_ctx,
+ void **user_data),
+ fsl_shw_return_t(*slot_alloc) (void *user_data,
+ uint32_t size,
+ uint64_t owner_id,
+ uint32_t *slot),
+ fsl_shw_return_t(*slot_dealloc) (void *user_data,
+ uint64_t
+ owner_id,
+ uint32_t slot),
+ fsl_shw_return_t(*slot_verify_access) (void
+ *user_data,
+ uint64_t
+ owner_id,
+ uint32_t
+ slot),
+ void *(*slot_get_address) (void *user_data,
+ uint32_t handle),
+ uint32_t(*slot_get_base) (void *user_data,
+ uint32_t handle),
+ uint32_t(*slot_get_offset) (void *user_data,
+ uint32_t handle),
+ uint32_t(*slot_get_slot_size) (void *user_data,
+ uint32_t handle))
+{
+ (void)keystore;
+ (void)data_init;
+ (void)data_cleanup;
+ (void)slot_alloc;
+ (void)slot_dealloc;
+ (void)slot_verify_access;
+ (void)slot_get_address;
+ (void)slot_get_base;
+ (void)slot_get_offset;
+ (void)slot_get_slot_size;
+}
+
+void fsl_shw_init_keystore_default(fsl_shw_kso_t * keystore)
+{
+ (void)keystore;
+}
+fsl_shw_return_t fsl_shw_establish_keystore(fsl_shw_uco_t *user_ctx,
+ fsl_shw_kso_t *keystore)
+{
+ (void)user_ctx;
+ (void)keystore;
+ return FSL_RETURN_NO_RESOURCE_S;
+}
+void fsl_shw_release_keystore(fsl_shw_uco_t *user_ctx,
+ fsl_shw_kso_t *keystore)
+{
+ (void)user_ctx;
+ (void)keystore;
+ return;
+}
+
+fsl_shw_return_t keystore_slot_alloc(fsl_shw_kso_t *keystore, uint32_t size,
+ uint64_t owner_id, uint32_t *slot)
+{
+ (void)keystore;
+ (void)size;
+ (void)owner_id;
+ (void)slot;
+ return FSL_RETURN_NO_RESOURCE_S;
+}
+
+fsl_shw_return_t keystore_slot_dealloc(fsl_shw_kso_t *keystore,
+ uint64_t owner_id, uint32_t slot)
+{
+ (void)keystore;
+ (void)owner_id;
+ (void)slot;
+ return FSL_RETURN_NO_RESOURCE_S;
+}
+
+fsl_shw_return_t
+keystore_slot_load(fsl_shw_kso_t *keystore, uint64_t owner_id, uint32_t slot,
+ const uint8_t *key_data, uint32_t key_length)
+{
+ (void)keystore;
+ (void)owner_id;
+ (void)slot;
+ (void)key_data;
+ (void)key_length;
+ return FSL_RETURN_NO_RESOURCE_S;
+}
+
+fsl_shw_return_t
+keystore_slot_read(fsl_shw_kso_t * keystore, uint64_t owner_id, uint32_t slot,
+ uint32_t key_length, uint8_t * key_data)
+{
+ (void)keystore;
+ (void)owner_id;
+ (void)slot;
+ (void)key_length;
+ (void)key_data;
+
+ return FSL_RETURN_NO_RESOURCE_S;
+}
+
+fsl_shw_return_t
+keystore_slot_decrypt(fsl_shw_uco_t *user_ctx, fsl_shw_kso_t *keystore,
+ uint64_t owner_id, uint32_t slot, uint32_t length,
+ const uint8_t *source)
+{
+ (void)user_ctx;
+ (void)keystore;
+ (void)owner_id;
+ (void)slot;
+ (void)length;
+ (void)source;
+ return FSL_RETURN_NO_RESOURCE_S;
+}
+
+fsl_shw_return_t
+keystore_slot_encrypt(fsl_shw_uco_t *user_ctx, fsl_shw_kso_t *keystore,
+ uint64_t owner_id, uint32_t slot, uint32_t length,
+ uint8_t *destination)
+{
+ (void)user_ctx;
+ (void)keystore;
+ (void)owner_id;
+ (void)slot;
+ (void)length;
+ (void)destination;
+ return FSL_RETURN_NO_RESOURCE_S;
+}
+
+
+#endif /* FSL_HAVE_SCC2 */
+
+/***** Default keystore implementation **************************************/
+
+#ifdef FSL_HAVE_SCC2
+ fsl_shw_return_t shw_kso_init_data(fsl_shw_uco_t *user_ctx,
+ void **user_data)
+{
+ int retval = FSL_RETURN_ERROR_S;
+ keystore_data_t *keystore_data = NULL;
+ fsl_shw_pco_t *capabilities = fsl_shw_get_capabilities(user_ctx);
+ uint32_t partition_size;
+ uint32_t slot_count;
+ uint32_t keystore_data_size;
+ uint8_t UMID[16] = {
+ 0x42, 0, 0, 0, 0x43, 0, 0, 0, 0x19, 0, 0, 0, 0x59, 0, 0, 0};
+ uint32_t permissions =
+ FSL_PERM_TH_R | FSL_PERM_TH_W | FSL_PERM_HD_R | FSL_PERM_HD_W |
+ FSL_PERM_HD_X;
+
+ /* Look up the size of a partition to see how big to make the keystore */
+ partition_size = fsl_shw_pco_get_spo_size_bytes(capabilities);
+
+ /* Calculate the required size of the keystore data structure, based on the
+ * number of keys that can fit in the partition.
+ */
+ slot_count = partition_size / KEYSTORE_SLOT_SIZE;
+ keystore_data_size =
+ sizeof(keystore_data_t) +
+ slot_count * sizeof(keystore_data_slot_info_t);
+
+#ifdef __KERNEL__
+ keystore_data = os_alloc_memory(keystore_data_size, GFP_KERNEL);
+
+#else
+ keystore_data = malloc(keystore_data_size);
+
+#endif
+ if (keystore_data == NULL) {
+ retval = FSL_RETURN_NO_RESOURCE_S;
+ goto out;
+ }
+
+ /* Clear the memory (effectively clear all key assignments) */
+ memset(keystore_data, 0, keystore_data_size);
+
+ /* Place the slot information structure directly after the keystore data
+ * structure.
+ */
+ keystore_data->slot =
+ (keystore_data_slot_info_t *) (keystore_data + 1);
+ keystore_data->slot_count = slot_count;
+
+ /* Retrieve a secure partition to put the keystore in. */
+ keystore_data->base_address =
+ fsl_shw_smalloc(user_ctx, partition_size, UMID, permissions);
+ if (keystore_data->base_address == NULL) {
+ retval = FSL_RETURN_NO_RESOURCE_S;
+ goto out;
+ }
+ *user_data = keystore_data;
+ retval = FSL_RETURN_OK_S;
+out:if (retval != FSL_RETURN_OK_S) {
+ if (keystore_data != NULL) {
+ if (keystore_data->base_address != NULL)
+ fsl_shw_sfree(NULL,
+ keystore_data->base_address);
+
+#ifdef __KERNEL__
+ os_free_memory(keystore_data);
+
+#else
+ free(keystore_data);
+
+#endif
+ }
+ }
+ return retval;
+}
+void shw_kso_cleanup_data(fsl_shw_uco_t *user_ctx, void **user_data)
+{
+ if (user_data != NULL) {
+ keystore_data_t * keystore_data =
+ (keystore_data_t *) (*user_data);
+ fsl_shw_sfree(user_ctx, keystore_data->base_address);
+
+#ifdef __KERNEL__
+ os_free_memory(*user_data);
+
+#else
+ free(*user_data);
+
+#endif
+ }
+ return;
+}
+
+fsl_shw_return_t shw_slot_verify_access(void *user_data, uint64_t owner_id,
+ uint32_t slot)
+{
+ keystore_data_t * data = user_data;
+ if (data->slot[slot].owner == owner_id) {
+ return FSL_RETURN_OK_S;
+ } else {
+
+#ifdef DIAG_DRV_IF
+ LOG_DIAG_ARGS("Access to slot %i fails.\n", slot);
+
+#endif
+ return FSL_RETURN_AUTH_FAILED_S;
+ }
+}
+
+fsl_shw_return_t shw_slot_alloc(void *user_data, uint32_t size,
+ uint64_t owner_id, uint32_t *slot)
+{
+ keystore_data_t *data = user_data;
+ uint32_t i;
+ if (size > KEYSTORE_SLOT_SIZE)
+ return FSL_RETURN_BAD_KEY_LENGTH_S;
+ for (i = 0; i < data->slot_count; i++) {
+ if (data->slot[i].allocated == 0) {
+ data->slot[i].allocated = 1;
+ data->slot[i].owner = owner_id;
+ (*slot) = i;
+
+#ifdef DIAG_DRV_IF
+ LOG_DIAG_ARGS("Keystore: allocated slot %i. Slot "
+ "address: %p\n",
+ (*slot),
+ data->base_address +
+ (*slot) * KEYSTORE_SLOT_SIZE);
+
+#endif
+ return FSL_RETURN_OK_S;
+ }
+ }
+ return FSL_RETURN_NO_RESOURCE_S;
+}
+
+fsl_shw_return_t shw_slot_dealloc(void *user_data, uint64_t owner_id,
+ uint32_t slot)
+{
+ keystore_data_t * data = user_data;
+ (void)owner_id;
+ (void)slot;
+ if (slot >= data->slot_count)
+ return FSL_RETURN_ERROR_S;
+ if (data->slot[slot].allocated == 1) {
+ /* Forcibly remove the data from the keystore */
+ memset(shw_slot_get_address(user_data, slot), 0,
+ KEYSTORE_SLOT_SIZE);
+ data->slot[slot].allocated = 0;
+ return FSL_RETURN_OK_S;
+ }
+ return FSL_RETURN_ERROR_S;
+}
+
+void *shw_slot_get_address(void *user_data, uint32_t slot)
+{
+ keystore_data_t * data = user_data;
+ if (slot >= data->slot_count)
+ return NULL;
+ return data->base_address + slot * KEYSTORE_SLOT_SIZE;
+}
+
+uint32_t shw_slot_get_base(void *user_data, uint32_t slot)
+{
+ keystore_data_t * data = user_data;
+
+ /* There could potentially be more than one secure partition object
+ * associated with this keystore. For now, there is just one.
+ */
+ (void)slot;
+ return (uint32_t) (data->base_address);
+}
+
+uint32_t shw_slot_get_offset(void *user_data, uint32_t slot)
+{
+ keystore_data_t *data = user_data;
+ if (slot >= data->slot_count)
+ return FSL_RETURN_ERROR_S;
+ return (slot * KEYSTORE_SLOT_SIZE);
+}
+
+uint32_t shw_slot_get_slot_size(void *user_data, uint32_t slot)
+{
+ (void)user_data;
+ (void)slot;
+
+ /* All slots are the same size in the default implementation */
+ return KEYSTORE_SLOT_SIZE;
+}
+
+#else /* FSL_HAVE_SCC2 */
+
+#ifdef __KERNEL__
+ fsl_shw_return_t shw_kso_init_data(fsl_shw_uco_t *user_ctx,
+ void **user_data)
+{
+
+ /* The SCC does its own initialization. All that needs to be done here is
+ * make sure an SCC exists.
+ */
+ *user_data = (void *)0xFEEDFEED;
+ return FSL_RETURN_OK_S;
+}
+void shw_kso_cleanup_data(fsl_shw_uco_t *user_ctx, void **user_data)
+{
+
+ /* The SCC does its own cleanup. */
+ *user_data = NULL;
+ return;
+}
+
+fsl_shw_return_t shw_slot_verify_access(void *user_data, uint64_t owner_id,
+ uint32_t slot)
+{
+
+ /* Zero is used for the size because the newer interface does bounds
+ * checking later.
+ */
+ scc_return_t retval;
+ retval = scc_verify_slot_access(owner_id, slot, 0);
+ if (retval == SCC_RET_OK) {
+ return FSL_RETURN_OK_S;
+ }
+ return FSL_RETURN_AUTH_FAILED_S;
+}
+
+fsl_shw_return_t shw_slot_alloc(void *user_data, uint32_t size,
+ uint64_t owner_id, uint32_t *slot)
+{
+ scc_return_t retval;
+
+#ifdef DIAG_DRV_IF
+ LOG_DIAG_ARGS("key length: %i, handle: %i\n", size, *slot);
+
+#endif
+ retval = scc_alloc_slot(size, owner_id, slot);
+ if (retval == SCC_RET_OK)
+ return FSL_RETURN_OK_S;
+
+ return FSL_RETURN_NO_RESOURCE_S;
+}
+
+fsl_shw_return_t shw_slot_dealloc(void *user_data, uint64_t owner_id,
+ uint32_t slot)
+{
+ scc_return_t retval;
+ retval = scc_dealloc_slot(owner_id, slot);
+ if (retval == SCC_RET_OK)
+ return FSL_RETURN_OK_S;
+
+ return FSL_RETURN_ERROR_S;
+}
+void *shw_slot_get_address(void *user_data, uint32_t slot)
+{
+ uint64_t owner_id = *((uint64_t *) user_data);
+ uint32_t address;
+ uint32_t value_size_bytes;
+ uint32_t slot_size_bytes;
+ scc_return_t scc_ret;
+ scc_ret =
+ scc_get_slot_info(owner_id, slot, &address, &value_size_bytes,
+ &slot_size_bytes);
+ if (scc_ret == SCC_RET_OK) {
+ return (void *)address;
+ }
+ return NULL;
+}
+
+uint32_t shw_slot_get_base(void *user_data, uint32_t slot)
+{
+ return 0;
+}
+
+uint32_t shw_slot_get_offset(void *user_data, uint32_t slot)
+{
+ return 0;
+}
+
+
+/* Return the size of the key slot, in octets */
+uint32_t shw_slot_get_slot_size(void *user_data, uint32_t slot)
+{
+ uint64_t owner_id = *((uint64_t *) user_data);
+ uint32_t address;
+ uint32_t value_size_bytes;
+ uint32_t slot_size_bytes;
+ scc_return_t scc_ret;
+ scc_ret =
+ scc_get_slot_info(owner_id, slot, &address, &value_size_bytes,
+ &slot_size_bytes);
+ if (scc_ret == SCC_RET_OK)
+ return slot_size_bytes;
+ return 0;
+}
+
+
+#endif /* __KERNEL__ */
+
+#endif /* FSL_HAVE_SCC2 */
+
+/*****************************************************************************/
diff --git a/drivers/mxc/security/sahara2/fsl_shw_rand.c b/drivers/mxc/security/sahara2/fsl_shw_rand.c
new file mode 100644
index 000000000000..69999c3272f3
--- /dev/null
+++ b/drivers/mxc/security/sahara2/fsl_shw_rand.c
@@ -0,0 +1,96 @@
+/*
+ * Copyright (C) 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file fsl_shw_rand.c
+ *
+ * This file implements Random Number Generation functions of the FSL SHW API
+ * for Sahara.
+ */
+
+#include "sahara.h"
+#include "sf_util.h"
+
+#ifdef __KERNEL__
+EXPORT_SYMBOL(fsl_shw_get_random);
+#endif
+
+/* REQ-S2LRD-PINTFC-API-BASIC-RNG-002 */
+/*!
+ * Get a random number
+ *
+ *
+ * @param user_ctx
+ * @param length
+ * @param data
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+fsl_shw_return_t fsl_shw_get_random(fsl_shw_uco_t * user_ctx,
+ uint32_t length, uint8_t * data)
+{
+ SAH_SF_DCLS;
+
+ /* perform a sanity check on the uco */
+ ret = sah_validate_uco(user_ctx);
+ if (ret != FSL_RETURN_OK_S) {
+ goto out;
+ }
+
+ header = SAH_HDR_RNG_GENERATE; /* Desc. #18 */
+ DESC_OUT_OUT(header, length, data, 0, NULL);
+
+ SAH_SF_EXECUTE();
+
+ out:
+ SAH_SF_DESC_CLEAN();
+
+ return ret;
+}
+
+#ifdef __KERNEL__
+EXPORT_SYMBOL(fsl_shw_add_entropy);
+#endif
+
+/*!
+ * Add entropy to a random number generator
+
+ * @param user_ctx
+ * @param length
+ * @param data
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+fsl_shw_return_t fsl_shw_add_entropy(fsl_shw_uco_t * user_ctx,
+ uint32_t length, uint8_t * data)
+{
+ SAH_SF_DCLS;
+
+ /* perform a sanity check on the uco */
+ ret = sah_validate_uco(user_ctx);
+ if (ret != FSL_RETURN_OK_S) {
+ goto out;
+ }
+
+ header = SAH_HDR_RNG_GENERATE; /* Desc. #18 */
+
+ /* create descriptor #18. Generate random data */
+ DESC_IN_IN(header, 0, NULL, length, data)
+
+ SAH_SF_EXECUTE();
+
+ out:
+ SAH_SF_DESC_CLEAN();
+
+ return ret;
+}
diff --git a/drivers/mxc/security/sahara2/fsl_shw_sym.c b/drivers/mxc/security/sahara2/fsl_shw_sym.c
new file mode 100644
index 000000000000..133b92dad3c1
--- /dev/null
+++ b/drivers/mxc/security/sahara2/fsl_shw_sym.c
@@ -0,0 +1,281 @@
+/*
+ * Copyright (C) 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file fsl_shw_sym.c
+ *
+ * This file implements Symmetric Cipher functions of the FSL SHW API for
+ * Sahara. This does not include CCM.
+ */
+
+#include "sahara.h"
+#include "fsl_platform.h"
+
+#include "sf_util.h"
+#include "adaptor.h"
+
+#ifdef LINUX_KERNEL
+EXPORT_SYMBOL(fsl_shw_symmetric_encrypt);
+EXPORT_SYMBOL(fsl_shw_symmetric_decrypt);
+#endif
+
+#if defined(NEED_CTR_WORKAROUND)
+/* CTR mode needs block-multiple data in/out */
+#define LENGTH_PATCH (sym_ctx->block_size_bytes)
+#define LENGTH_PATCH_MASK (sym_ctx->block_size_bytes-1)
+#else
+#define LENGTH_PATCH 0
+#define LENGTH_PATCH_MASK 0 /* du not use! */
+#endif
+
+/*!
+ * Block of zeroes which is maximum Symmetric block size, used for
+ * initializing context register, etc.
+ */
+static uint32_t block_zeros[4] = {
+ 0, 0, 0, 0
+};
+
+typedef enum cipher_direction {
+ SYM_DECRYPT,
+ SYM_ENCRYPT
+} cipher_direction_t;
+
+/*!
+ * Create and run the chain for a symmetric-key operation.
+ *
+ * @param user_ctx Who the user is
+ * @param key_info What key is to be used
+ * @param sym_ctx Info details about algorithm
+ * @param encrypt 0 = decrypt, non-zero = encrypt
+ * @param length Number of octets at @a in and @a out
+ * @param in Pointer to input data
+ * @param out Location to store output data
+ *
+ * @return The status of handing chain to driver,
+ * or an earlier argument/flag or allocation
+ * error.
+ */
+static fsl_shw_return_t do_symmetric(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info,
+ fsl_shw_scco_t * sym_ctx,
+ cipher_direction_t encrypt,
+ uint32_t length,
+ const uint8_t * in, uint8_t * out)
+{
+ SAH_SF_DCLS;
+ uint8_t *sink = NULL;
+ sah_Link *link1 = NULL;
+ sah_Link *link2 = NULL;
+ sah_Oct_Str ptr1;
+ uint32_t size1 = sym_ctx->block_size_bytes;
+
+ SAH_SF_USER_CHECK();
+
+ /* Two different sets of chains, depending on algorithm */
+ if (key_info->algorithm == FSL_KEY_ALG_ARC4) {
+ if (sym_ctx->flags & FSL_SYM_CTX_INIT) {
+ /* Desc. #35 w/ARC4 - start from key */
+ header = SAH_HDR_ARC4_SET_MODE_KEY
+ ^ sah_insert_skha_algorithm_arc4;
+
+ DESC_IN_KEY(header, 0, NULL, key_info);
+ } else { /* load SBox */
+ /* Desc. #33 w/ARC4 and NO PERMUTE */
+ header = SAH_HDR_ARC4_SET_MODE_SBOX
+ ^ sah_insert_skha_no_permute
+ ^ sah_insert_skha_algorithm_arc4;
+ DESC_IN_IN(header, 256, sym_ctx->context,
+ 3, sym_ctx->context + 256);
+ } /* load SBox */
+
+ /* Add in-out data descriptor to process the data */
+ if (length != 0) {
+ DESC_IN_OUT(SAH_HDR_SKHA_ENC_DEC, length, in, length,
+ out);
+ }
+
+ /* Operation is done ... save what came out? */
+ if (sym_ctx->flags & FSL_SYM_CTX_SAVE) {
+ /* Desc. #34 - Read SBox, pointers */
+ header = SAH_HDR_ARC4_READ_SBOX;
+ DESC_OUT_OUT(header, 256, sym_ctx->context,
+ 3, sym_ctx->context + 256);
+ }
+ } else { /* not ARC4 */
+ /* Doing 1- or 2- descriptor chain. */
+ /* Desc. #1 and algorithm and mode */
+ header = SAH_HDR_SKHA_SET_MODE_IV_KEY
+ ^ sah_insert_skha_mode[sym_ctx->mode]
+ ^ sah_insert_skha_algorithm[key_info->algorithm];
+
+ /* Honor 'no key parity checking' for DES and TDES */
+ if ((key_info->flags & FSL_SKO_KEY_IGNORE_PARITY) &&
+ ((key_info->algorithm == FSL_KEY_ALG_DES) ||
+ (key_info->algorithm == FSL_KEY_ALG_TDES))) {
+ header ^= sah_insert_skha_no_key_parity;
+ }
+
+ /* Header by default is decrypting, so... */
+ if (encrypt == SYM_ENCRYPT) {
+ header ^= sah_insert_skha_encrypt;
+ }
+
+ if (sym_ctx->mode == FSL_SYM_MODE_CTR) {
+ header ^= sah_insert_skha_modulus[sym_ctx->modulus_exp];
+ }
+
+ if (sym_ctx->mode == FSL_SYM_MODE_ECB) {
+ ptr1 = NULL;
+ size1 = 0;
+ } else if (sym_ctx->flags & FSL_SYM_CTX_INIT) {
+ ptr1 = (uint8_t *) block_zeros;
+ } else {
+ ptr1 = sym_ctx->context;
+ }
+
+ DESC_IN_KEY(header, sym_ctx->block_size_bytes, ptr1, key_info);
+
+ /* Add in-out data descriptor */
+ if (length != 0) {
+ header = SAH_HDR_SKHA_ENC_DEC;
+ if (LENGTH_PATCH && (sym_ctx->mode == FSL_SYM_MODE_CTR)
+ && ((length & LENGTH_PATCH_MASK) != 0)) {
+ sink = DESC_TEMP_ALLOC(LENGTH_PATCH);
+ ret =
+ sah_Create_Link(user_ctx->mem_util, &link1,
+ (uint8_t *) in, length,
+ SAH_USES_LINK_DATA);
+ ret =
+ sah_Append_Link(user_ctx->mem_util, link1,
+ (uint8_t *) sink,
+ LENGTH_PATCH -
+ (length &
+ LENGTH_PATCH_MASK),
+ SAH_USES_LINK_DATA);
+ if (ret != FSL_RETURN_OK_S) {
+ goto out;
+ }
+ ret =
+ sah_Create_Link(user_ctx->mem_util, &link2,
+ out, length,
+ SAH_USES_LINK_DATA |
+ SAH_OUTPUT_LINK);
+ if (ret != FSL_RETURN_OK_S) {
+ goto out;
+ }
+ ret = sah_Append_Link(user_ctx->mem_util, link2,
+ sink,
+ LENGTH_PATCH -
+ (length &
+ LENGTH_PATCH_MASK),
+ SAH_USES_LINK_DATA);
+ if (ret != FSL_RETURN_OK_S) {
+ goto out;
+ }
+ ret =
+ sah_Append_Desc(user_ctx->mem_util,
+ &desc_chain, header, link1,
+ link2);
+ if (ret != FSL_RETURN_OK_S) {
+ goto out;
+ }
+ link1 = link2 = NULL;
+ } else {
+ DESC_IN_OUT(header, length, in, length, out);
+ }
+ }
+
+ /* Unload any desired context */
+ if (sym_ctx->flags & FSL_SYM_CTX_SAVE) {
+ DESC_OUT_OUT(SAH_HDR_SKHA_READ_CONTEXT_IV, 0, NULL,
+ sym_ctx->block_size_bytes,
+ sym_ctx->context);
+ }
+
+ } /* not ARC4 */
+
+ SAH_SF_EXECUTE();
+
+ out:
+ SAH_SF_DESC_CLEAN();
+ DESC_TEMP_FREE(sink);
+ if (LENGTH_PATCH) {
+ sah_Destroy_Link(user_ctx->mem_util, link1);
+ sah_Destroy_Link(user_ctx->mem_util, link2);
+ }
+
+ return ret;
+}
+
+/* REQ-S2LRD-PINTFC-API-BASIC-SYM-002 */
+/* PINTFC-API-BASIC-SYM-ARC4-001 */
+/* PINTFC-API-BASIC-SYM-ARC4-002 */
+
+/*!
+ * Compute symmetric encryption
+ *
+ *
+ * @param user_ctx
+ * @param key_info
+ * @param sym_ctx
+ * @param length
+ * @param pt
+ * @param ct
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+fsl_shw_return_t fsl_shw_symmetric_encrypt(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info,
+ fsl_shw_scco_t * sym_ctx,
+ uint32_t length,
+ const uint8_t * pt, uint8_t * ct)
+{
+ fsl_shw_return_t ret;
+
+ ret = do_symmetric(user_ctx, key_info, sym_ctx, SYM_ENCRYPT,
+ length, pt, ct);
+
+ return ret;
+}
+
+/* PINTFC-API-BASIC-SYM-002 */
+/* PINTFC-API-BASIC-SYM-ARC4-001 */
+/* PINTFC-API-BASIC-SYM-ARC4-002 */
+
+/*!
+ * Compute symmetric decryption
+ *
+ *
+ * @param user_ctx
+ * @param key_info
+ * @param sym_ctx
+ * @param length
+ * @param pt
+ * @param ct
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+fsl_shw_return_t fsl_shw_symmetric_decrypt(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info,
+ fsl_shw_scco_t * sym_ctx,
+ uint32_t length,
+ const uint8_t * ct, uint8_t * pt)
+{
+ fsl_shw_return_t ret;
+
+ ret = do_symmetric(user_ctx, key_info, sym_ctx, SYM_DECRYPT,
+ length, ct, pt);
+
+ return ret;
+}
diff --git a/drivers/mxc/security/sahara2/fsl_shw_user.c b/drivers/mxc/security/sahara2/fsl_shw_user.c
new file mode 100644
index 000000000000..e53b29cfd404
--- /dev/null
+++ b/drivers/mxc/security/sahara2/fsl_shw_user.c
@@ -0,0 +1,137 @@
+/*
+ * Copyright (C) 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file fsl_shw_user.c
+ *
+ * This file implements user and platform capabilities functions of the FSL SHW
+ * API for Sahara
+ */
+#include "sahara.h"
+#include <adaptor.h>
+#include <sf_util.h>
+
+#ifdef __KERNEL__
+EXPORT_SYMBOL(fsl_shw_get_capabilities);
+EXPORT_SYMBOL(fsl_shw_register_user);
+EXPORT_SYMBOL(fsl_shw_deregister_user);
+EXPORT_SYMBOL(fsl_shw_get_results);
+#endif /* __KERNEL__ */
+
+struct cap_t {
+ unsigned populated;
+ union {
+ uint32_t buffer[sizeof(fsl_shw_pco_t)];
+ fsl_shw_pco_t pco;
+ };
+};
+
+static struct cap_t cap = {
+ 0,
+ {}
+};
+
+/* REQ-S2LRD-PINTFC-API-GEN-003 */
+/*!
+ * Determine the hardware security capabilities of this platform.
+ *
+ * Though a user context object is passed into this function, it will always
+ * act in a non-blocking manner.
+ *
+ * @param user_ctx The user context which will be used for the query.
+ *
+ * @return A pointer to the capabilities object.
+ */
+fsl_shw_pco_t *fsl_shw_get_capabilities(fsl_shw_uco_t * user_ctx)
+{
+ fsl_shw_pco_t *retval = NULL;
+
+ if (cap.populated) {
+ retval = &cap.pco;
+ } else {
+ if (get_capabilities(user_ctx, &cap.pco) == FSL_RETURN_OK_S) {
+ cap.populated = 1;
+ retval = &cap.pco;
+ }
+ }
+ return retval;
+}
+
+/* REQ-S2LRD-PINTFC-API-GEN-004 */
+
+/*!
+ * Create an association between the the user and the provider of the API.
+ *
+ * @param user_ctx The user context which will be used for this association.
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+fsl_shw_return_t fsl_shw_register_user(fsl_shw_uco_t * user_ctx)
+{
+ return sah_register(user_ctx);
+}
+
+/* REQ-S2LRD-PINTFC-API-GEN-005 */
+
+/*!
+ * Destroy the association between the the user and the provider of the API.
+ *
+ * @param user_ctx The user context which is no longer needed.
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+fsl_shw_return_t fsl_shw_deregister_user(fsl_shw_uco_t * user_ctx)
+{
+ return sah_deregister(user_ctx);
+}
+
+/* REQ-S2LRD-PINTFC-API-GEN-006 */
+
+/*!
+ * Retrieve results from earlier operations.
+ *
+ * @param user_ctx The user's context.
+ * @param result_size The number of array elements of @a results.
+ * @param[in,out] results Pointer to first of the (array of) locations to
+ * store results.
+ * @param[out] result_count Pointer to store the number of results which
+ * were returned.
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+fsl_shw_return_t fsl_shw_get_results(fsl_shw_uco_t * user_ctx,
+ unsigned result_size,
+ fsl_shw_result_t results[],
+ unsigned *result_count)
+{
+ fsl_shw_return_t status;
+
+ /* perform a sanity check on the uco */
+ status = sah_validate_uco(user_ctx);
+
+ /* if uco appears ok, build structure and pass to get results */
+ if (status == FSL_RETURN_OK_S) {
+ sah_results arg;
+
+ /* if requested is zero, it's done before it started */
+ if (result_size > 0) {
+ arg.requested = result_size;
+ arg.actual = result_count;
+ arg.results = results;
+ /* get the results */
+ status = sah_get_results(&arg, user_ctx);
+ }
+ }
+
+ return status;
+}
diff --git a/drivers/mxc/security/sahara2/fsl_shw_wrap.c b/drivers/mxc/security/sahara2/fsl_shw_wrap.c
new file mode 100644
index 000000000000..9f2e28c7b84d
--- /dev/null
+++ b/drivers/mxc/security/sahara2/fsl_shw_wrap.c
@@ -0,0 +1,967 @@
+/*
+ * Copyright (C) 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file fsl_shw_wrap.c
+ *
+ * This file implements Key-Wrap (Black Key) functions of the FSL SHW API for
+ * Sahara.
+ *
+ * - Ownerid is an 8-byte, user-supplied, value to keep KEY confidential.
+ * - KEY is a 1-32 byte value which starts in SCC RED RAM before
+ * wrapping, and ends up there on unwrap. Length is limited because of
+ * size of SCC1 RAM.
+ * - KEY' is the encrypted KEY
+ * - LEN is a 1-byte (for now) byte-length of KEY
+ * - ALG is a 1-byte value for the algorithm which which the key is
+ * associated. Values are defined by the FSL SHW API
+ * - Ownerid, LEN, and ALG come from the user's "key_info" object, as does the
+ * slot number where KEY already is/will be.
+ * - T is a Nonce
+ * - T' is the encrypted T
+ * - KEK is a Key-Encryption Key for the user's Key
+ * - ICV is the "Integrity Check Value" for the wrapped key
+ * - Black Key is the string of bytes returned as the wrapped key
+<table>
+<tr><TD align="right">BLACK_KEY <TD width="3">=<TD>ICV | T' | LEN | ALG |
+ KEY'</td></tr>
+<tr><td>&nbsp;</td></tr>
+
+<tr><th>To Wrap</th></tr>
+<tr><TD align="right">T</td> <TD width="3">=</td> <TD>RND()<sub>16</sub>
+ </td></tr>
+<tr><TD align="right">KEK</td><TD width="3">=</td><TD>HASH<sub>sha256</sub>(T |
+ Ownerid)<sub>16</sub></td></tr>
+<tr><TD align="right">KEY'<TD width="3">=</td><TD>
+ AES<sub>ctr-enc</sub>(Key=KEK, CTR=0, Data=KEY)</td></tr>
+<tr><TD align="right">ICV</td><TD width="3">=</td><td>HMAC<sub>sha256</sub>
+ (Key=T, Data=Ownerid | LEN | ALG | KEY')<sub>16</sub></td></tr>
+<tr><TD align="right">T'</td><TD width="3">=</td><TD>TDES<sub>cbc-enc</sub>
+ (Key=SLID, IV=Ownerid, Data=T)</td></tr>
+
+<tr><td>&nbsp;</td></tr>
+
+<tr><th>To Unwrap</th></tr>
+<tr><TD align="right">T</td><TD width="3">=</td><TD>TDES<sub>ecb-dec</sub>
+ (Key=SLID, IV=Ownerid, Data=T')</sub></td></tr>
+<tr><TD align="right">ICV</td><TD width="3">=</td><td>HMAC<sub>sha256</sub>
+ (Key=T, Data=Ownerid | LEN | ALG | KEY')<sub>16</sub></td></tr>
+<tr><TD align="right">KEK</td><TD width="3">=</td><td>HASH<sub>sha256</sub>
+ (T | Ownerid)<sub>16</sub></td></tr>
+<tr><TD align="right">KEY<TD width="3">=</td><TD>AES<sub>ctr-dec</sub>
+ (Key=KEK, CTR=0, Data=KEY')</td></tr>
+</table>
+
+ */
+
+#include "sahara.h"
+#include "fsl_platform.h"
+#include "fsl_shw_keystore.h"
+
+#include "sf_util.h"
+#include "adaptor.h"
+
+#if defined(DIAG_SECURITY_FUNC)
+#include <diagnostic.h>
+#endif
+
+#if defined(NEED_CTR_WORKAROUND)
+/* CTR mode needs block-multiple data in/out */
+#define LENGTH_PATCH 16
+#define LENGTH_PATCH_MASK 0xF
+#else
+#define LENGTH_PATCH 4
+#define LENGTH_PATCH_MASK 3
+#endif
+
+#if LENGTH_PATCH
+#define ROUND_LENGTH(len) \
+({ \
+ uint32_t orig_len = len; \
+ uint32_t new_len; \
+ \
+ if ((orig_len & LENGTH_PATCH_MASK) != 0) { \
+ new_len = (orig_len + LENGTH_PATCH \
+ - (orig_len & LENGTH_PATCH_MASK)); \
+ } \
+ else { \
+ new_len = orig_len; \
+ } \
+ new_len; \
+})
+#else
+#define ROUND_LENGTH(len) (len)
+#endif
+
+#ifdef __KERNEL__
+EXPORT_SYMBOL(fsl_shw_establish_key);
+EXPORT_SYMBOL(fsl_shw_extract_key);
+EXPORT_SYMBOL(fsl_shw_release_key);
+EXPORT_SYMBOL(fsl_shw_read_key);
+#endif
+
+#define ICV_LENGTH 16
+#define T_LENGTH 16
+#define KEK_LENGTH 16
+#define LENGTH_LENGTH 1
+#define ALGORITHM_LENGTH 1
+#define FLAGS_LENGTH 1
+
+/* ICV | T' | LEN | ALG | KEY' */
+#define ICV_OFFSET 0
+#define T_PRIME_OFFSET (ICV_OFFSET + ICV_LENGTH)
+#define LENGTH_OFFSET (T_PRIME_OFFSET + T_LENGTH)
+#define ALGORITHM_OFFSET (LENGTH_OFFSET + LENGTH_LENGTH)
+#define FLAGS_OFFSET (ALGORITHM_OFFSET + ALGORITHM_LENGTH)
+#define KEY_PRIME_OFFSET (FLAGS_OFFSET + FLAGS_LENGTH)
+#define FLAGS_SW_KEY 0x01
+
+/*
+ * For testing of the algorithm implementation,, the DO_REPEATABLE_WRAP flag
+ * causes the T_block to go into the T field during a wrap operation. This
+ * will make the black key value repeatable (for a given SCC secret key, or
+ * always if the default key is in use).
+ *
+ * Normally, a random sequence is used.
+ */
+#ifdef DO_REPEATABLE_WRAP
+/*!
+ * Block of zeroes which is maximum Symmetric block size, used for
+ * initializing context register, etc.
+ */
+static uint8_t T_block_[16] = {
+ 0x42, 0, 0, 0x42, 0x42, 0, 0, 0x42,
+ 0x42, 0, 0, 0x42, 0x42, 0, 0, 0x42
+};
+#endif
+
+/*!
+ * Insert descriptors to calculate ICV = HMAC(key=T, data=LEN|ALG|KEY')
+ *
+ * @param user_ctx User's context for this operation
+ * @param desc_chain Descriptor chain to append to
+ * @param t_key_info T's key object
+ * @param black_key Beginning of Black Key region
+ * @param key_length Number of bytes of key' there are in @c black_key
+ * @param[out] hmac Location to store ICV. Will be tagged "USES" so
+ * sf routines will not try to free it.
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+static inline fsl_shw_return_t create_icv_calc(fsl_shw_uco_t * user_ctx,
+ sah_Head_Desc ** desc_chain,
+ fsl_shw_sko_t * t_key_info,
+ const uint8_t * black_key,
+ uint32_t key_length,
+ uint8_t * hmac)
+{
+ fsl_shw_return_t sah_code;
+ uint32_t header;
+ sah_Link *link1 = NULL;
+ sah_Link *link2 = NULL;
+
+ /* Load up T as key for the HMAC */
+ header = (SAH_HDR_MDHA_SET_MODE_MD_KEY /* #6 */
+ ^ sah_insert_mdha_algorithm_sha256
+ ^ sah_insert_mdha_init ^ sah_insert_mdha_hmac ^
+ sah_insert_mdha_pdata ^ sah_insert_mdha_mac_full);
+ sah_code = sah_add_in_key_desc(header, NULL, 0, t_key_info, /* Reference T in RED */
+ user_ctx->mem_util, desc_chain);
+ if (sah_code != FSL_RETURN_OK_S) {
+ goto out;
+ }
+
+ /* Previous step loaded key; Now set up to hash the data */
+ header = SAH_HDR_MDHA_HASH; /* #10 */
+
+ /* Input - start with ownerid */
+ sah_code = sah_Create_Link(user_ctx->mem_util, &link1,
+ (void *)&t_key_info->userid,
+ sizeof(t_key_info->userid),
+ SAH_USES_LINK_DATA);
+ if (sah_code != FSL_RETURN_OK_S) {
+ goto out;
+ }
+
+ /* Still input - Append black-key fields len, alg, key' */
+ sah_code = sah_Append_Link(user_ctx->mem_util, link1,
+ (void *)black_key + LENGTH_OFFSET,
+ (LENGTH_LENGTH
+ + ALGORITHM_LENGTH
+ + key_length), SAH_USES_LINK_DATA);
+
+ if (sah_code != FSL_RETURN_OK_S) {
+ goto out;
+ }
+ /* Output - computed ICV/HMAC */
+ sah_code = sah_Create_Link(user_ctx->mem_util, &link2,
+ hmac, ICV_LENGTH,
+ SAH_USES_LINK_DATA | SAH_OUTPUT_LINK);
+ if (sah_code != FSL_RETURN_OK_S) {
+ goto out;
+ }
+
+ sah_code = sah_Append_Desc(user_ctx->mem_util, desc_chain,
+ header, link1, link2);
+
+ out:
+ if (sah_code != FSL_RETURN_OK_S) {
+ (void)sah_Destroy_Link(user_ctx->mem_util, link1);
+ (void)sah_Destroy_Link(user_ctx->mem_util, link2);
+ }
+
+ return sah_code;
+} /* create_icv_calc */
+
+/*!
+ * Perform unwrapping of a black key into a RED slot
+ *
+ * @param user_ctx A user context from #fsl_shw_register_user().
+ * @param[in,out] key_info The information about the key to be which will
+ * be unwrapped... key length, slot info, etc.
+ * @param black_key Encrypted key
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+static fsl_shw_return_t unwrap(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info,
+ const uint8_t * black_key)
+{
+ SAH_SF_DCLS;
+ uint8_t *hmac = NULL;
+ fsl_shw_sko_t t_key_info;
+ sah_Link *link1 = NULL;
+ sah_Link *link2 = NULL;
+ unsigned i;
+ unsigned rounded_key_length;
+ unsigned original_key_length = key_info->key_length;
+
+ hmac = DESC_TEMP_ALLOC(ICV_LENGTH);
+
+ /* Set up key_info for "T" - use same slot as eventual key */
+ fsl_shw_sko_init(&t_key_info, FSL_KEY_ALG_AES);
+ t_key_info.userid = key_info->userid;
+ t_key_info.handle = key_info->handle;
+ t_key_info.flags = key_info->flags;
+ t_key_info.key_length = T_LENGTH;
+ t_key_info.keystore = key_info->keystore;
+
+ /* Validate SW flags to prevent misuse */
+ if ((key_info->flags & FSL_SKO_KEY_SW_KEY)
+ && !(black_key[FLAGS_OFFSET] & FLAGS_SW_KEY)) {
+ ret = FSL_RETURN_BAD_FLAG_S;
+ goto out;
+ }
+
+ /* Compute T = SLID_decrypt(T'); leave in RED slot */
+ if (key_info->keystore == NULL) {
+ /* Key goes in system keystore */
+ ret = do_system_keystore_slot_decrypt(user_ctx,
+ key_info->userid,
+ t_key_info.handle,
+ T_LENGTH,
+ black_key + T_PRIME_OFFSET);
+
+ } else {
+ /* Key goes in user keystore */
+ ret = keystore_slot_decrypt(user_ctx,
+ key_info->keystore,
+ key_info->userid,
+ t_key_info.handle,
+ T_LENGTH,
+ black_key + T_PRIME_OFFSET);
+ }
+ if (ret != FSL_RETURN_OK_S) {
+ goto out;
+ }
+
+ /* Compute ICV = HMAC(T, ownerid | len | alg | key' */
+ ret = create_icv_calc(user_ctx, &desc_chain, &t_key_info,
+ black_key, original_key_length, hmac);
+ if (ret != FSL_RETURN_OK_S) {
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG("Creation of sah_Key_Link failed due to bad key"
+ " flag!\n");
+#endif /*DIAG_SECURITY_FUNC */
+ goto out;
+ }
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG("Validating MAC of wrapped key");
+#endif
+ SAH_SF_EXECUTE();
+ if (ret != FSL_RETURN_OK_S) {
+ goto out;
+ }
+ SAH_SF_DESC_CLEAN();
+
+ /* Check computed ICV against value in Black Key */
+ for (i = 0; i < ICV_LENGTH; i++) {
+ if (black_key[ICV_OFFSET + i] != hmac[i]) {
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG_ARGS("computed ICV fails at offset %i\n", i);
+
+ {
+ char buff[300];
+ int a;
+ for (a = 0; a < ICV_LENGTH; a++)
+ sprintf(&(buff[a * 2]), "%02x",
+ black_key[ICV_OFFSET + a]);
+ buff[a * 2 + 1] = 0;
+ LOG_DIAG_ARGS("black key: %s", buff);
+
+ for (a = 0; a < ICV_LENGTH; a++)
+ sprintf(&(buff[a * 2]), "%02x",
+ hmac[a]);
+ buff[a * 2 + 1] = 0;
+ LOG_DIAG_ARGS("hmac: %s", buff);
+ }
+#endif
+ ret = FSL_RETURN_AUTH_FAILED_S;
+ goto out;
+ }
+ }
+
+ /* This is no longer needed. */
+ DESC_TEMP_FREE(hmac);
+
+ /* Compute KEK = SHA256(T | ownerid). Rewrite slot with value */
+ header = (SAH_HDR_MDHA_SET_MODE_HASH /* #8 */
+ ^ sah_insert_mdha_init
+ ^ sah_insert_mdha_algorithm_sha256 ^ sah_insert_mdha_pdata);
+
+ /* Input - Start with T */
+ ret = sah_Create_Key_Link(user_ctx->mem_util, &link1, &t_key_info);
+ if (ret != FSL_RETURN_OK_S) {
+ goto out;
+ }
+
+ /* Still input - append ownerid */
+ ret = sah_Append_Link(user_ctx->mem_util, link1,
+ (void *)&key_info->userid,
+ sizeof(key_info->userid), SAH_USES_LINK_DATA);
+ if (ret != FSL_RETURN_OK_S) {
+ goto out;
+ }
+
+ /* Output - KEK goes into RED slot */
+ ret = sah_Create_Key_Link(user_ctx->mem_util, &link2, &t_key_info);
+ if (ret != FSL_RETURN_OK_S) {
+ goto out;
+ }
+
+ /* Put the Hash calculation into the chain. */
+ ret = sah_Append_Desc(user_ctx->mem_util, &desc_chain,
+ header, link1, link2);
+ if (ret != FSL_RETURN_OK_S) {
+ goto out;
+ }
+
+ /* Compute KEY = AES-decrypt(KEK, KEY') */
+ header = (SAH_HDR_SKHA_SET_MODE_IV_KEY /* #1 */
+ ^ sah_insert_skha_mode_ctr
+ ^ sah_insert_skha_algorithm_aes
+ ^ sah_insert_skha_modulus_128);
+ /* Load KEK in as the key to use */
+ DESC_IN_KEY(header, 0, NULL, &t_key_info);
+
+ rounded_key_length = ROUND_LENGTH(original_key_length);
+ key_info->key_length = rounded_key_length;
+
+ /* Now set up for computation. Result in RED */
+ header = SAH_HDR_SKHA_ENC_DEC; /* #4 */
+ DESC_IN_KEY(header, rounded_key_length, black_key + KEY_PRIME_OFFSET,
+ key_info);
+
+ /* Perform the operation */
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG("Decrypting key with KEK");
+#endif
+ SAH_SF_EXECUTE();
+
+ out:
+ key_info->key_length = original_key_length;
+ SAH_SF_DESC_CLEAN();
+
+ DESC_TEMP_FREE(hmac);
+
+ /* Erase tracks */
+ t_key_info.userid = 0xdeadbeef;
+ t_key_info.handle = 0xdeadbeef;
+
+ return ret;
+} /* unwrap */
+
+/*!
+ * Perform wrapping of a black key from a RED slot
+ *
+ * @param user_ctx A user context from #fsl_shw_register_user().
+ * @param[in,out] key_info The information about the key to be which will
+ * be wrapped... key length, slot info, etc.
+ * @param black_key Place to store encrypted key
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+static fsl_shw_return_t wrap(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info, uint8_t * black_key)
+{
+ SAH_SF_DCLS;
+ unsigned slots_allocated = 0; /* boolean */
+ fsl_shw_sko_t T_key_info; /* for holding T */
+ fsl_shw_sko_t KEK_key_info; /* for holding KEK */
+ unsigned original_key_length = key_info->key_length;
+ unsigned rounded_key_length;
+ sah_Link *link1;
+ sah_Link *link2;
+
+ black_key[LENGTH_OFFSET] = key_info->key_length;
+ black_key[ALGORITHM_OFFSET] = key_info->algorithm;
+
+ memcpy(&T_key_info, key_info, sizeof(T_key_info));
+ fsl_shw_sko_set_key_length(&T_key_info, T_LENGTH);
+ T_key_info.algorithm = FSL_KEY_ALG_HMAC;
+
+ memcpy(&KEK_key_info, &T_key_info, sizeof(KEK_key_info));
+ KEK_key_info.algorithm = FSL_KEY_ALG_AES;
+
+ if (key_info->keystore == NULL) {
+ /* Key goes in system keystore */
+ ret = do_system_keystore_slot_alloc(user_ctx,
+ T_LENGTH, key_info->userid,
+ &T_key_info.handle);
+
+ } else {
+ /* Key goes in user keystore */
+ ret = keystore_slot_alloc(key_info->keystore,
+ T_LENGTH,
+ key_info->userid, &T_key_info.handle);
+ }
+ if (ret != FSL_RETURN_OK_S) {
+ goto out;
+ }
+
+ if (key_info->keystore == NULL) {
+ /* Key goes in system keystore */
+ ret = do_system_keystore_slot_alloc(user_ctx,
+ KEK_LENGTH, key_info->userid,
+ &KEK_key_info.handle);
+
+ } else {
+ /* Key goes in user keystore */
+ ret = keystore_slot_alloc(key_info->keystore,
+ KEK_LENGTH, key_info->userid,
+ &KEK_key_info.handle);
+ }
+
+ if (ret != FSL_RETURN_OK_S) {
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG("do_scc_slot_alloc() failed");
+#endif
+ if (key_info->keystore == NULL) {
+ /* Key goes in system keystore */
+ (void)do_system_keystore_slot_dealloc(user_ctx,
+ key_info->userid, T_key_info.handle);
+
+ } else {
+ /* Key goes in user keystore */
+ (void)keystore_slot_dealloc(key_info->keystore,
+ key_info->userid, T_key_info.handle);
+ }
+ } else {
+ slots_allocated = 1;
+ }
+
+ /* Set up to compute everything except T' ... */
+#ifndef DO_REPEATABLE_WRAP
+ /* Compute T = RND() */
+ header = SAH_HDR_RNG_GENERATE; /* Desc. #18 */
+ DESC_KEY_OUT(header, &T_key_info, 0, NULL);
+#else
+ if (key_info->keystore == NULL) {
+ /* Key goes in system keystore */
+ ret = do_system_keystore_slot_load(user_ctx,
+ T_key_info.userid,
+ T_key_info.handle, T_block,
+ T_key_info.key_length);
+ } else {
+ /* Key goes in user keystore */
+ ret = keystore_slot_load(key_info->keystore,
+ T_key_info.userid,
+ T_key_info.handle,
+ T_block, T_key_info.key_length);
+ }
+
+ if (ret != FSL_RETURN_OK_S) {
+ goto out;
+ }
+#endif
+
+ /* Compute KEK = SHA256(T | Ownerid) */
+ header = (SAH_HDR_MDHA_SET_MODE_HASH /* #8 */
+ ^ sah_insert_mdha_init
+ ^ sah_insert_mdha_algorithm[FSL_HASH_ALG_SHA256]
+ ^ sah_insert_mdha_pdata);
+ /* Input - Start with T */
+ ret = sah_Create_Key_Link(user_ctx->mem_util, &link1, &T_key_info);
+ if (ret != FSL_RETURN_OK_S) {
+ goto out;
+ }
+ /* Still input - append ownerid */
+ ret = sah_Append_Link(user_ctx->mem_util, link1,
+ (void *)&key_info->userid,
+ sizeof(key_info->userid), SAH_USES_LINK_DATA);
+ if (ret != FSL_RETURN_OK_S) {
+ goto out;
+ }
+ /* Output - KEK goes into RED slot */
+ ret = sah_Create_Key_Link(user_ctx->mem_util, &link2, &KEK_key_info);
+ if (ret != FSL_RETURN_OK_S) {
+ goto out;
+ }
+ /* Put the Hash calculation into the chain. */
+ ret = sah_Append_Desc(user_ctx->mem_util, &desc_chain,
+ header, link1, link2);
+ if (ret != FSL_RETURN_OK_S) {
+ goto out;
+ }
+#if defined(NEED_CTR_WORKAROUND)
+ rounded_key_length = ROUND_LENGTH(original_key_length);
+ key_info->key_length = rounded_key_length;
+#else
+ rounded_key_length = original_key_length;
+#endif
+ /* Compute KEY' = AES-encrypt(KEK, KEY) */
+ header = (SAH_HDR_SKHA_SET_MODE_IV_KEY /* #1 */
+ ^ sah_insert_skha_mode[FSL_SYM_MODE_CTR]
+ ^ sah_insert_skha_algorithm[FSL_KEY_ALG_AES]
+ ^ sah_insert_skha_modulus[FSL_CTR_MOD_128]);
+ /* Set up KEK as key to use */
+ DESC_IN_KEY(header, 0, NULL, &KEK_key_info);
+ header = SAH_HDR_SKHA_ENC_DEC;
+ DESC_KEY_OUT(header, key_info,
+ key_info->key_length, black_key + KEY_PRIME_OFFSET);
+
+ /* Set up flags info */
+ black_key[FLAGS_OFFSET] = 0;
+ if (key_info->flags & FSL_SKO_KEY_SW_KEY) {
+ black_key[FLAGS_OFFSET] |= FLAGS_SW_KEY;
+ }
+
+ /* Compute and store ICV into Black Key */
+ ret = create_icv_calc(user_ctx, &desc_chain, &T_key_info,
+ black_key, original_key_length,
+ black_key + ICV_OFFSET);
+ if (ret != FSL_RETURN_OK_S) {
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG("Creation of sah_Key_Link failed due to bad key"
+ " flag!\n");
+#endif /*DIAG_SECURITY_FUNC */
+ goto out;
+ }
+
+ /* Now get Sahara to do the work. */
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG("Encrypting key with KEK");
+#endif
+ SAH_SF_EXECUTE();
+ if (ret != FSL_RETURN_OK_S) {
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG("sah_Descriptor_Chain_Execute() failed");
+#endif
+ goto out;
+ }
+
+ /* Compute T' = SLID_encrypt(T); Result goes to Black Key */
+ if (key_info->keystore == NULL) {
+ /* Key goes in system keystore */
+ ret = do_system_keystore_slot_encrypt(user_ctx,
+ T_key_info.userid, T_key_info.handle,
+ T_LENGTH, black_key + T_PRIME_OFFSET);
+ } else {
+ /* Key goes in user keystore */
+ ret = keystore_slot_encrypt(user_ctx,
+ key_info->keystore,
+ T_key_info.userid,
+ T_key_info.handle,
+ T_LENGTH,
+ black_key + T_PRIME_OFFSET);
+ }
+
+ if (ret != FSL_RETURN_OK_S) {
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG("do_scc_slot_encrypt() failed");
+#endif
+ goto out;
+ }
+
+ out:
+ key_info->key_length = original_key_length;
+
+ SAH_SF_DESC_CLEAN();
+ if (slots_allocated) {
+ if (key_info->keystore == NULL) {
+ /* Key goes in system keystore */
+ (void)do_system_keystore_slot_dealloc(user_ctx,
+ key_info->userid,
+ T_key_info.
+ handle);
+ (void)do_system_keystore_slot_dealloc(user_ctx,
+ key_info->userid,
+ KEK_key_info.
+ handle);
+ } else {
+ /* Key goes in user keystore */
+ (void)keystore_slot_dealloc(key_info->keystore,
+ key_info->userid,
+ T_key_info.handle);
+ (void)keystore_slot_dealloc(key_info->keystore,
+ key_info->userid,
+ KEK_key_info.handle);
+ }
+ }
+
+ return ret;
+} /* wrap */
+
+/*!
+ * Place a key into a protected location for use only by cryptographic
+ * algorithms.
+ *
+ * This only needs to be used to a) unwrap a key, or b) set up a key which
+ * could be wrapped with a later call to #fsl_shw_extract_key(). Normal
+ * cleartext keys can simply be placed into #fsl_shw_sko_t key objects with
+ * #fsl_shw_sko_set_key() and used directly.
+ *
+ * The maximum key size supported for wrapped/unwrapped keys is 32 octets.
+ * (This is the maximum reasonable key length on Sahara - 32 octets for an HMAC
+ * key based on SHA-256.) The key size is determined by the @a key_info. The
+ * expected length of @a key can be determined by
+ * #fsl_shw_sko_calculate_wrapped_size()
+ *
+ * The protected key will not be available for use until this operation
+ * successfully completes.
+ *
+ * This feature is not available for all platforms, nor for all algorithms and
+ * modes.
+ *
+ * @param user_ctx A user context from #fsl_shw_register_user().
+ * @param[in,out] key_info The information about the key to be which will
+ * be established. In the create case, the key
+ * length must be set.
+ * @param establish_type How @a key will be interpreted to establish a
+ * key for use.
+ * @param key If @a establish_type is #FSL_KEY_WRAP_UNWRAP,
+ * this is the location of a wrapped key. If
+ * @a establish_type is #FSL_KEY_WRAP_CREATE, this
+ * parameter can be @a NULL. If @a establish_type
+ * is #FSL_KEY_WRAP_ACCEPT, this is the location
+ * of a plaintext key.
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+fsl_shw_return_t fsl_shw_establish_key(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info,
+ fsl_shw_key_wrap_t establish_type,
+ const uint8_t * key)
+{
+ SAH_SF_DCLS;
+ unsigned original_key_length = key_info->key_length;
+ unsigned rounded_key_length;
+ unsigned slot_allocated = 0;
+ uint32_t old_flags;
+
+ header = SAH_HDR_RNG_GENERATE; /* Desc. #18 for rand */
+
+ /* TODO: THIS STILL NEEDS TO BE REFACTORED */
+
+ /* Write operations into SCC memory require word-multiple number of
+ * bytes. For ACCEPT and CREATE functions, the key length may need
+ * to be rounded up. Calculate. */
+ if (LENGTH_PATCH && (original_key_length & LENGTH_PATCH_MASK) != 0) {
+ rounded_key_length = original_key_length + LENGTH_PATCH
+ - (original_key_length & LENGTH_PATCH_MASK);
+ } else {
+ rounded_key_length = original_key_length;
+ }
+
+ SAH_SF_USER_CHECK();
+
+ if (key_info->flags & FSL_SKO_KEY_ESTABLISHED) {
+#ifdef DIAG_SECURITY_FUNC
+ ret = FSL_RETURN_BAD_FLAG_S;
+ LOG_DIAG("Key already established\n");
+#endif
+ }
+
+
+ if (key_info->keystore == NULL) {
+ /* Key goes in system keystore */
+ ret = do_system_keystore_slot_alloc(user_ctx,
+ key_info->key_length,
+ key_info->userid,
+ &(key_info->handle));
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG_ARGS
+ ("key length: %i, handle: %i, rounded key length: %i",
+ key_info->key_length, key_info->handle,
+ rounded_key_length);
+#endif
+
+ } else {
+ /* Key goes in user keystore */
+ ret = keystore_slot_alloc(key_info->keystore,
+ key_info->key_length,
+ key_info->userid,
+ &(key_info->handle));
+ }
+ if (ret != FSL_RETURN_OK_S) {
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG("Slot allocation failed\n");
+#endif
+ goto out;
+ }
+ slot_allocated = 1;
+
+ key_info->flags |= FSL_SKO_KEY_ESTABLISHED;
+ switch (establish_type) {
+ case FSL_KEY_WRAP_CREATE:
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG("Creating random key\n");
+#endif
+ /* Use safe version of key length */
+ key_info->key_length = rounded_key_length;
+ /* Generate descriptor to put random value into */
+ DESC_KEY_OUT(header, key_info, 0, NULL);
+ /* Restore actual, desired key length */
+ key_info->key_length = original_key_length;
+
+ old_flags = user_ctx->flags;
+ /* Now put random value into key */
+ SAH_SF_EXECUTE();
+ /* Restore user's old flag value */
+ user_ctx->flags = old_flags;
+#ifdef DIAG_SECURITY_FUNC
+ if (ret == FSL_RETURN_OK_S) {
+ LOG_DIAG("ret is ok");
+ } else {
+ LOG_DIAG("ret is not ok");
+ }
+#endif
+ break;
+
+ case FSL_KEY_WRAP_ACCEPT:
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG("Accepting plaintext key\n");
+#endif
+ if (key == NULL) {
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG("ACCEPT: Red Key is NULL");
+#endif
+ ret = FSL_RETURN_ERROR_S;
+ goto out;
+ }
+ /* Copy in safe number of bytes of Red key */
+ if (key_info->keystore == NULL) {
+ /* Key goes in system keystore */
+ ret = do_system_keystore_slot_load(user_ctx,
+ key_info->userid,
+ key_info->handle, key,
+ rounded_key_length);
+ } else {
+ /* Key goes in user keystore */
+ ret = keystore_slot_load(key_info->keystore,
+ key_info->userid,
+ key_info->handle, key,
+ key_info->key_length);
+ }
+ break;
+
+ case FSL_KEY_WRAP_UNWRAP:
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG("Unwrapping wrapped key\n");
+#endif
+ /* For now, disallow non-blocking calls. */
+ if (!(user_ctx->flags & FSL_UCO_BLOCKING_MODE)) {
+ ret = FSL_RETURN_BAD_FLAG_S;
+ } else if (key == NULL) {
+ ret = FSL_RETURN_ERROR_S;
+ } else {
+ ret = unwrap(user_ctx, key_info, key);
+ }
+ break;
+
+ default:
+ ret = FSL_RETURN_BAD_FLAG_S;
+ break;
+ } /* switch */
+
+ out:
+ if (slot_allocated && (ret != FSL_RETURN_OK_S)) {
+ fsl_shw_return_t scc_err;
+
+ if (key_info->keystore == NULL) {
+ /* Key goes in system keystore */
+ scc_err = do_system_keystore_slot_dealloc(user_ctx,
+ key_info->userid,
+ key_info->handle);
+ } else {
+ /* Key goes in user keystore */
+ scc_err = keystore_slot_dealloc(key_info->keystore,
+ key_info->userid, key_info->handle);
+ }
+
+ key_info->flags &= ~FSL_SKO_KEY_ESTABLISHED;
+ }
+
+ SAH_SF_DESC_CLEAN();
+
+ return ret;
+} /* fsl_shw_establish_key() */
+
+/*!
+ * Wrap a key and retrieve the wrapped value.
+ *
+ * A wrapped key is a key that has been cryptographically obscured. It is
+ * only able to be used with #fsl_shw_establish_key().
+ *
+ * This function will also release the key (see #fsl_shw_release_key()) so
+ * that it must be re-established before reuse.
+ *
+ * This feature is not available for all platforms, nor for all algorithms and
+ * modes.
+ *
+ * @param user_ctx A user context from #fsl_shw_register_user().
+ * @param key_info The information about the key to be deleted.
+ * @param[out] covered_key The location to store the 48-octet wrapped key.
+ * (This size is based upon the maximum key size
+ * of 32 octets).
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+fsl_shw_return_t fsl_shw_extract_key(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info,
+ uint8_t * covered_key)
+{
+ SAH_SF_DCLS;
+
+ SAH_SF_USER_CHECK();
+
+ /* For now, only blocking mode calls are supported */
+ if (user_ctx->flags & FSL_UCO_BLOCKING_MODE) {
+ if (key_info->flags & FSL_SKO_KEY_ESTABLISHED) {
+ ret = wrap(user_ctx, key_info, covered_key);
+ if (ret != FSL_RETURN_OK_S) {
+ goto out;
+ }
+
+ /* Verify that a SW key info really belongs to a SW key */
+ if (key_info->flags & FSL_SKO_KEY_SW_KEY) {
+ /* ret = FSL_RETURN_BAD_FLAG_S;
+ goto out;*/
+ }
+
+ /* Need to deallocate on successful extraction */
+ if (key_info->keystore == NULL) {
+ /* Key goes in system keystore */
+ ret = do_system_keystore_slot_dealloc(user_ctx,
+ key_info->userid, key_info->handle);
+ } else {
+ /* Key goes in user keystore */
+ ret = keystore_slot_dealloc(key_info->keystore,
+ key_info->userid, key_info->handle);
+ }
+ /* Mark key not available in the flags */
+ key_info->flags &=
+ ~(FSL_SKO_KEY_ESTABLISHED | FSL_SKO_KEY_PRESENT);
+ }
+ }
+
+out:
+ SAH_SF_DESC_CLEAN();
+
+ return ret;
+}
+
+/*!
+ * De-establish a key so that it can no longer be accessed.
+ *
+ * The key will need to be re-established before it can again be used.
+ *
+ * This feature is not available for all platforms, nor for all algorithms and
+ * modes.
+ *
+ * @param user_ctx A user context from #fsl_shw_register_user().
+ * @param key_info The information about the key to be deleted.
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+fsl_shw_return_t fsl_shw_release_key(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info)
+{
+ SAH_SF_DCLS;
+
+ SAH_SF_USER_CHECK();
+
+ if (key_info->flags & FSL_SKO_KEY_ESTABLISHED) {
+ if (key_info->keystore == NULL) {
+ /* Key goes in system keystore */
+ do_system_keystore_slot_dealloc(user_ctx,
+ key_info->userid,
+ key_info->handle);
+ } else {
+ /* Key goes in user keystore */
+ keystore_slot_dealloc(key_info->keystore,
+ key_info->userid,
+ key_info->handle);
+ }
+ key_info->flags &= ~(FSL_SKO_KEY_ESTABLISHED |
+ FSL_SKO_KEY_PRESENT);
+ }
+
+out:
+ SAH_SF_DESC_CLEAN();
+
+ return ret;
+}
+
+fsl_shw_return_t fsl_shw_read_key(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info, uint8_t * key)
+{
+ SAH_SF_DCLS;
+
+ SAH_SF_USER_CHECK();
+
+ if (!(key_info->flags & FSL_SKO_KEY_ESTABLISHED)
+ || !(key_info->flags & FSL_SKO_KEY_SW_KEY)) {
+ ret = FSL_RETURN_BAD_FLAG_S;
+ goto out;
+ }
+
+ if (key_info->keystore == NULL) {
+ /* Key lives in system keystore */
+ ret = do_system_keystore_slot_read(user_ctx,
+ key_info->userid,
+ key_info->handle,
+ key_info->key_length, key);
+ } else {
+ /* Key lives in user keystore */
+ ret = keystore_slot_read(key_info->keystore,
+ key_info->userid,
+ key_info->handle,
+ key_info->key_length, key);
+ }
+
+ out:
+ SAH_SF_DESC_CLEAN();
+
+ return ret;
+}
diff --git a/drivers/mxc/security/sahara2/include/adaptor.h b/drivers/mxc/security/sahara2/include/adaptor.h
new file mode 100644
index 000000000000..4c2d2bd7b688
--- /dev/null
+++ b/drivers/mxc/security/sahara2/include/adaptor.h
@@ -0,0 +1,113 @@
+/*
+ * Copyright (C) 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+* @file adaptor.h
+*
+* @brief The Adaptor component provides an interface to the device
+* driver.
+*
+* Intended to be used by the FSL SHW API, this can also be called directly
+*/
+
+#ifndef ADAPTOR_H
+#define ADAPTOR_H
+
+#include <sahara.h>
+
+/*!
+ * Structure passed during user ioctl() call to submit request.
+ */
+typedef struct sah_dar {
+ sah_Desc *desc_addr; /*!< head of descriptor chain */
+ uint32_t uco_flags; /*!< copy of fsl_shw_uco flags field */
+ uint32_t uco_user_ref; /*!< copy of fsl_shw_uco user_ref */
+ uint32_t result; /*!< result of descriptor chain request */
+ struct sah_dar *next; /*!< for driver use */
+} sah_dar_t;
+
+/*!
+ * Structure passed during user ioctl() call to Register a user
+ */
+typedef struct sah_register {
+ uint32_t pool_size; /*!< max number of outstanding requests possible */
+ uint32_t result; /*!< result of registration request */
+} sah_register_t;
+
+/*!
+ * Structure passed during ioctl() call to request SCC operation
+ */
+typedef struct scc_data {
+ uint32_t length; /*!< length of data */
+ uint8_t *in; /*!< input data */
+ uint8_t *out; /*!< output data */
+ unsigned direction; /*!< encrypt or decrypt */
+ fsl_shw_sym_mode_t crypto_mode; /*!< CBC or EBC */
+ uint8_t *init_vector; /*!< initialization vector or NULL */
+} scc_data_t;
+
+/*!
+ * Structure passed during user ioctl() calls to manage stored keys and
+ * stored-key slots.
+ */
+typedef struct scc_slot_t {
+ uint64_t ownerid; /*!< Owner's id to check/set permissions */
+ uint32_t key_length; /*!< Length of key */
+ uint32_t slot; /*!< Slot to operation on, or returned slot
+ number. */
+ uint8_t *key; /*!< User-memory pointer to key value */
+ fsl_shw_return_t code; /*!< API return code from operation */
+} scc_slot_t;
+
+/*
+ * Structure passed during user ioctl() calls to manage data stored in secure
+ * partitions.
+ */
+typedef struct scc_region_t {
+ uint32_t partition_base; /*!< User virtual address of the
+ partition base. */
+ uint32_t offset; /*!< Offset from the start of the
+ partition where the cleartext data
+ is located. */
+ uint32_t length; /*!< Length of the region to be
+ operated on */
+ uint8_t *black_data; /*!< User virtual address of any black
+ (encrypted) data. */
+ fsl_shw_cypher_mode_t cypher_mode; /*!< Cypher mode to use in an encryt/
+ decrypt operation. */
+ uint32_t IV[4]; /*!< Intialization vector to use in an
+ encrypt/decrypt operation. */
+ fsl_shw_return_t code; /*!< API return code from operation */
+} scc_region_t;
+
+/*
+ * Structure passed during user ioctl() calls to manage secure partitions.
+ */
+typedef struct scc_partition_info_t {
+ uint32_t user_base; /**< Userspace pointer to base of partition */
+ uint32_t permissions; /**< Permissions to give the partition (only
+ used in call to _DROP_PERMS) */
+ fsl_shw_partition_status_t status; /*!< Status of the partition */
+} scc_partition_info_t;
+
+fsl_shw_return_t adaptor_Exec_Descriptor_Chain(sah_Head_Desc * dar,
+ fsl_shw_uco_t * uco);
+fsl_shw_return_t sah_get_results(sah_results * arg, fsl_shw_uco_t * uco);
+fsl_shw_return_t sah_register(fsl_shw_uco_t * user_ctx);
+fsl_shw_return_t sah_deregister(fsl_shw_uco_t * user_ctx);
+fsl_shw_return_t get_capabilities(fsl_shw_uco_t * user_ctx,
+ fsl_shw_pco_t *capabilities);
+
+#endif /* ADAPTOR_H */
+
+/* End of adaptor.h */
diff --git a/drivers/mxc/security/sahara2/include/diagnostic.h b/drivers/mxc/security/sahara2/include/diagnostic.h
new file mode 100644
index 000000000000..94db9bfe3a8a
--- /dev/null
+++ b/drivers/mxc/security/sahara2/include/diagnostic.h
@@ -0,0 +1,116 @@
+/*
+ * Copyright (C) 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+* @file diagnostic.h
+*
+* @brief Macros for outputting kernel and user space diagnostics.
+*/
+
+#ifndef DIAGNOSTIC_H
+#define DIAGNOSTIC_H
+
+#ifndef __KERNEL__ /* linux flag */
+#include <stdio.h>
+#endif
+#include "fsl_platform.h"
+
+#if defined(FSL_HAVE_SAHARA2) || defined(FSL_HAVE_SAHARA4)
+#define DEV_NAME "sahara"
+#elif defined(FSL_HAVE_RNGA) || defined(FSL_HAVE_RNGB) || \
+ defined(FSL_HAVE_RNGC)
+#define DEV_NAME "shw"
+#endif
+
+/*!
+********************************************************************
+* @brief This macro logs diagnostic messages to stderr.
+*
+* @param diag String that must be logged, char *.
+*
+* @return void
+*
+*/
+//#if defined DIAG_SECURITY_FUNC || defined DIAG_ADAPTOR
+#define LOG_DIAG(diag) \
+({ \
+ const char* fname = strrchr(__FILE__, '/'); \
+ \
+ sah_Log_Diag(fname ? fname+1 : __FILE__, __LINE__, diag); \
+})
+
+#ifdef __KERNEL__
+
+#define LOG_DIAG_ARGS(fmt, ...) \
+({ \
+ const char* fname = strrchr(__FILE__, '/'); \
+ os_printk(KERN_ALERT "%s:%i: " fmt "\n", \
+ fname ? fname+1 : __FILE__, \
+ __LINE__, \
+ __VA_ARGS__); \
+})
+
+#else
+
+#define LOG_DIAG_ARGS(fmt, ...) \
+({ \
+ const char* fname = strrchr(__FILE__, '/'); \
+ printf("%s:%i: " fmt "\n", \
+ fname ? fname+1 : __FILE__, \
+ __LINE__, \
+ __VA_ARGS__); \
+})
+
+#ifndef __KERNEL__
+void sah_Log_Diag(char *source_name, int source_line, char *diag);
+#endif
+#endif /* if define DIAG_SECURITY_FUNC ... */
+
+#ifdef __KERNEL__
+/*!
+********************************************************************
+* @brief This macro logs kernel diagnostic messages to the kernel
+* log.
+*
+* @param diag String that must be logged, char *.
+*
+* @return As for printf()
+*/
+#if 0
+#if defined(DIAG_DRV_IF) || defined(DIAG_DRV_QUEUE) || \
+ defined(DIAG_DRV_STATUS) || defined(DIAG_DRV_INTERRUPT) || \
+ defined(DIAG_MEM) || defined(DIAG_SECURITY_FUNC) || defined(DIAG_ADAPTOR)
+#endif
+#endif
+
+#define LOG_KDIAG_ARGS(fmt, ...) \
+({ \
+ os_printk (KERN_ALERT "%s (%s:%i): " fmt "\n", \
+ DEV_NAME, strrchr(__FILE__, '/')+1, __LINE__, __VA_ARGS__); \
+})
+
+#define LOG_KDIAG(diag) \
+ os_printk (KERN_ALERT "%s (%s:%i): %s\n", \
+ DEV_NAME, strrchr(__FILE__, '/')+1, __LINE__, diag);
+
+#define sah_Log_Diag(n, l, d) \
+ os_printk(KERN_ALERT "%s:%i: %s\n", n, l, d)
+
+#else /* not KERNEL */
+
+#define sah_Log_Diag(n, l, d) \
+ printf("%s:%i: %s\n", n, l, d)
+
+#endif /* __KERNEL__ */
+
+#endif /* DIAGNOSTIC_H */
diff --git a/drivers/mxc/security/sahara2/include/fsl_platform.h b/drivers/mxc/security/sahara2/include/fsl_platform.h
new file mode 100644
index 000000000000..b55bd6cd9a5e
--- /dev/null
+++ b/drivers/mxc/security/sahara2/include/fsl_platform.h
@@ -0,0 +1,161 @@
+/*
+ * Copyright (C) 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file fsl_platform.h
+ *
+ * Header file to isolate code which might be platform-dependent
+ */
+
+#ifndef FSL_PLATFORM_H
+#define FSL_PLATFORM_H
+
+#ifdef __KERNEL__
+#include "portable_os.h"
+#endif
+
+#if defined(FSL_PLATFORM_OTHER)
+
+/* Have Makefile or other method of setting FSL_HAVE_* flags */
+
+#elif defined(CONFIG_ARCH_MX3) /* i.MX31 */
+
+#define FSL_HAVE_SCC
+#define FSL_HAVE_RTIC
+#define FSL_HAVE_RNGA
+
+#elif defined(CONFIG_ARCH_MX21)
+
+#define FSL_HAVE_HAC
+#define FSL_HAVE_RNGA
+#define FSL_HAVE_SCC
+
+#elif defined(CONFIG_ARCH_MX25)
+
+#define FSL_HAVE_SCC
+#define FSL_HAVE_RNGB
+#define FSL_HAVE_RTIC3
+#define FSL_HAVE_DRYICE
+
+#elif defined(CONFIG_ARCH_MX27)
+
+#define FSL_HAVE_SAHARA2
+#define SUBMIT_MULTIPLE_DARS
+#define FSL_HAVE_RTIC
+#define FSL_HAVE_SCC
+#define ALLOW_LLO_DESCRIPTORS
+
+#elif defined(CONFIG_ARCH_MX35)
+
+#define FSL_HAVE_SCC
+#define FSL_HAVE_RNGC
+#define FSL_HAVE_RTIC
+
+#elif defined(CONFIG_ARCH_MX37)
+
+#define FSL_HAVE_SCC2
+#define FSL_HAVE_RNGC
+#define FSL_HAVE_RTIC2
+#define FSL_HAVE_SRTC
+
+#elif defined(CONFIG_ARCH_MX5)
+
+#define FSL_HAVE_SCC2
+#define FSL_HAVE_SAHARA4
+#define FSL_HAVE_RTIC3
+#define FSL_HAVE_SRTC
+#define NO_RESEED_WORKAROUND
+#define NEED_CTR_WORKAROUND
+#define USE_S2_CCM_ENCRYPT_CHAIN
+#define USE_S2_CCM_DECRYPT_CHAIN
+#define ALLOW_LLO_DESCRIPTORS
+
+#elif defined(CONFIG_ARCH_MXC91131)
+
+#define FSL_HAVE_SCC
+#define FSL_HAVE_RNGC
+#define FSL_HAVE_HAC
+
+#elif defined(CONFIG_ARCH_MXC91221)
+
+#define FSL_HAVE_SCC
+#define FSL_HAVE_RNGC
+#define FSL_HAVE_RTIC2
+
+#elif defined(CONFIG_ARCH_MXC91231)
+
+#define FSL_HAVE_SAHARA2
+#define FSL_HAVE_RTIC
+#define FSL_HAVE_SCC
+#define NO_OUTPUT_1K_CROSSING
+
+#elif defined(CONFIG_ARCH_MXC91311)
+
+#define FSL_HAVE_SCC
+#define FSL_HAVE_RNGC
+
+#elif defined(CONFIG_ARCH_MXC91314)
+
+#define FSL_HAVE_SCC
+#define FSL_HAVE_SAHAR4
+#define FSL_HAVE_RTIC3
+#define NO_RESEED_WORKAROUND
+#define NEED_CTR_WORKAROUND
+#define USE_S2_CCM_ENCRYPT_CHAIN
+#define USE_S2_CCM_DECRYPT_CHAIN
+#define ALLOW_LLO_DESCRIPTORS
+
+#elif defined(CONFIG_ARCH_MXC91321)
+
+#define FSL_HAVE_SAHARA2
+#define FSL_HAVE_RTIC
+#define FSL_HAVE_SCC
+#define SCC_CLOCK_NOT_GATED
+#define NO_OUTPUT_1K_CROSSING
+
+#elif defined(CONFIG_ARCH_MXC92323)
+
+#define FSL_HAVE_SCC2
+#define FSL_HAVE_SAHARA4
+#define FSL_HAVE_PKHA
+#define FSL_HAVE_RTIC2
+#define NO_1K_CROSSING
+#define NO_RESEED_WORKAROUND
+#define NEED_CTR_WORKAROUND
+#define USE_S2_CCM_ENCRYPT_CHAIN
+#define USE_S2_CCM_DECRYPT_CHAIN
+#define ALLOW_LLO_DESCRIPTORS
+
+
+#elif defined(CONFIG_ARCH_MXC91331)
+
+#define FSL_HAVE_SCC
+#define FSL_HAVE_RNGA
+#define FSL_HAVE_HAC
+#define FSL_HAVE_RTIC
+
+#elif defined(CONFIG_8548)
+
+#define FSL_HAVE_SEC2x
+
+#elif defined(CONFIG_MPC8374)
+
+#define FSL_HAVE_SEC3x
+
+#else
+
+#error UNKNOWN_PLATFORM
+
+#endif /* platform checks */
+
+#endif /* FSL_PLATFORM_H */
diff --git a/drivers/mxc/security/sahara2/include/fsl_shw.h b/drivers/mxc/security/sahara2/include/fsl_shw.h
new file mode 100644
index 000000000000..a52d420c721e
--- /dev/null
+++ b/drivers/mxc/security/sahara2/include/fsl_shw.h
@@ -0,0 +1,2515 @@
+/*
+ * Copyright (C) 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*
+ * NOTE TO MAINTAINERS: Although this header file is *the* header file to be
+ * #include'd by FSL SHW programs, it does not itself make any definitions for
+ * the API. Instead, it uses the fsl_platform.h file and / or compiler
+ * environment variables to determine which actual driver header file to
+ * include. This allows different implementations to contain different
+ * implementations of the various objects, macros, etc., or even to change
+ * which functions are macros and which are not.
+ */
+
+/*!
+ * @file fsl_shw.h
+ *
+ * @brief Definition of the Freescale Security Hardware API.
+ *
+ * See @ref index for an overview of the API.
+ */
+
+/*!
+ * @if USE_MAINPAGE
+ * @mainpage Common API for Freescale Security Hardware (FSL SHW API)
+ * @endif
+ *
+ * @section intro_sec Introduction
+ *
+ * This is the interface definition for the Freescale Security Hardware API
+ * (FSL SHW API) for User Mode and Kernel Mode to access Freescale Security
+ * Hardware components for cryptographic acceleration. The API is intended to
+ * provide cross-platform access to security hardware components of Freescale.
+ *
+ * This documentation has not been approved, and should not be taken to
+ * mean anything definite about future direction.
+ *
+ * Some example code is provided to give some idea of usage of this API.
+ *
+ * Note: This first version has been defined around the capabilities of the
+ * Sahara2 cryptographic accelerator, and may be expanded in the future to
+ * provide support for other platforms. The Platform Capabilities Object is
+ * intended as a way to allow programs to adapt to different platforms.
+ *
+ * The i.MX25 is an example of a platform without a SAHARA but yet has
+ * capabilities supported by this API. These include #fsl_shw_get_random() and
+ * #fsl_shw_add_entropy(), and the use of Triple-DES (TDEA) cipher algorithm
+ * (with no checking of key parity supported) in ECB and CBC modes with @ref
+ * sym_sec. See also the @ref di_sec for information on key handling, and @ref
+ * td_sec for detection of Tamper Events. Only the random functions are
+ * available from user space on this platform.
+ *
+ * @section usr_ctx The User Context
+ *
+ * The User Context Object (#fsl_shw_uco_t) controls the interaction between
+ * the user program and the API. It is initialized as part of user
+ * registration (#fsl_shw_register_user()), and is part of every interaction
+ * thereafter.
+ *
+ * @section pf_sec Platform Capabilities
+ *
+ * Since this API is not tied to one specific type of hardware or even one
+ * given version of a given type of hardware, the platform capabilities object
+ * could be used by a portable program to make choices about using software
+ * instead of hardware for certain operations.
+ *
+ * See the #fsl_shw_pco_t, returned by #fsl_shw_get_capabilities().
+ *
+ * @ref pcoops are provided to query its contents.
+ *
+ *
+ * @section sym_sec Symmetric-Key Encryption and Decryption
+ *
+ * Symmetric-Key encryption support is provided for the block cipher algorithms
+ * AES, DES, and Triple DES. Modes supported are #FSL_SYM_MODE_ECB,
+ * #FSL_SYM_MODE_CBC, and #FSL_SYM_MODE_CTR, though not necessarily all modes
+ * for all algorithms. There is also support for the stream cipher algorithm
+ * commonly known as ARC4.
+ *
+ * Encryption and decryption are performed by using the functions
+ * #fsl_shw_symmetric_encrypt() and #fsl_shw_symmetric_decrypt(), respectively.
+ * There are two objects which provide information about the operation of these
+ * functions. They are the #fsl_shw_sko_t, to provide key and algorithm
+ * information; and the #fsl_shw_scco_t, to provide (and store) initial context
+ * or counter value information.
+ *
+ * CCM is not supported by these functions. For information CCM support, see
+ * @ref cmb_sec.
+ *
+ *
+ * @section hash_sec Cryptographic Hashing
+ *
+ * Hashing is performed by fsl_shw_hash(). Control of the function is through
+ * flags in the #fsl_shw_hco_t. The algorithms which are
+ * supported are listed in #fsl_shw_hash_alg_t.
+ *
+ * The hashing function works on octet streams. If a user application needs to
+ * hash a bitstream, it will need to do its own padding of the last block.
+ *
+ *
+ * @section hmac_sec Hashed Message Authentication Codes
+ *
+ * An HMAC is a method of combining a hash and a key so that a message cannot
+ * be faked by a third party.
+ *
+ * The #fsl_shw_hmac() can be used by itself for one-shot or multi-step
+ * operations, or in combination with #fsl_shw_hmac_precompute() to provide the
+ * ability to compute and save the beginning hashes from a key one time, and
+ * then use #fsl_shw_hmac() to calculate an HMAC on each message as it is
+ * processed.
+ *
+ * The maximum key length which is directly supported by this API is 64 octets.
+ * If a longer key size is needed for HMAC, the user will have to hash the key
+ * and present the digest value as the key to be used by the HMAC functions.
+ *
+ *
+ * @section rnd_sec Random Numbers
+ *
+ * Support is available for acquiring random values from a
+ * cryptographically-strong random number generator. See
+ * #fsl_shw_get_random(). The function #fsl_shw_add_entropy() may be used to
+ * add entropy to the random number generator.
+ *
+ *
+ * @section cmb_sec Combined Cipher and Authentication
+ *
+ * Some schemes require that messages be encrypted and that they also have an
+ * authentication code associated with the message. The function
+ * #fsl_shw_gen_encrypt() will generate the authentication code and encrypt the
+ * message.
+ *
+ * Upon receipt of such a message, the message must be decrypted and the
+ * authentication code validated. The function
+ * #fsl_shw_auth_decrypt() will perform these steps.
+ *
+ * Only AES-CCM is supported.
+ *
+ *
+ * @section wrap_sec Wrapped Keys
+ *
+ * On platforms with a Secure Memory, the function #fsl_shw_establish_key() can
+ * be used to place a key into the System Keystore. This key then can be used
+ * directly by the cryptographic hardware. It later then be wrapped
+ * (cryptographically obscured) by #fsl_shw_extract_key() and stored for later
+ * use. If a software key (#FSL_SKO_KEY_SW_KEY) was established, then its
+ * value can be retrieved with a call to #fsl_shw_read_key().
+ *
+ * The wrapping and unwrapping functions provide security against unauthorized
+ * use and detection of tampering.
+ *
+ * The functions can also be used with a User Keystore.
+ *
+ * @section smalloc_sec Secure Memory Allocation
+ *
+ * On platforms with multiple partitions of Secure Memory, the function
+ * #fsl_shw_smalloc() can be used to acquire a partition for private use. The
+ * function #fsl_shw_diminish_perms() can then be used to revoke specific
+ * permissions on the partition, and #fsl_shw_sfree() can be used to release the
+ * partition.
+ *
+ * @section keystore_sec User Keystore
+ *
+ * User Keystore functionality is defined in fsl_shw_keystore.h. See @ref
+ * user_keystore for details. This is not supported on platforms without SCC2.
+ *
+ * @section di_sec Hardware key-select extensions - DryIce
+ *
+ * Some platforms have a component called DryIce which allows the software to
+ * control which key will be used by the secure memory encryption hardware.
+ * The choices are the secret per-chip Fused (IIM) Key, an unknown, hardware-
+ * generated Random Key, a software-written Programmed Key, or the IIM Key in
+ * combination with one of the others. #fsl_shw_pco_check_pk_supported() can
+ * be used to determine whether this feature is available on the platform.
+ * The rest of this section will explain the symmetric ciphering and key
+ * operations which are available on such a platform.
+ *
+ * The function #fsl_shw_sko_init_pf_key() will set up a Secret Key Object to
+ * refer to one of the system's platform keys. All keys which reference a
+ * platform key must use this initialization function, including a user-
+ * provided key value. Keys which are intended for software encryption must
+ * use #fsl_shw_sko_init().
+ *
+ * To change the setting of the Programmed Key of the DryIce module,
+ * #fsl_shw_establish_key() must be called with a platform key object of type
+ * #FSL_SHW_PF_KEY_PRG or #FSL_SHW_PF_KEY_IIM_PRG. The key will be go
+ * into the PK register of DryIce and not to the keystore. Any symmetric
+ * operation which references either #FSL_SHW_PF_KEY_PRG or
+ * #FSL_SHW_PF_KEY_IIM_PRG will use the current PK value (possibly modified by
+ * the secret fused IIM key). Before the Flatform Key can be changed, a call to
+ * #fsl_shw_release_key() or #fsl_shw_extract_key() must be made. Neither
+ * function will change the value in the PK registers, and further ciphering
+ * can take place.
+ *
+ * When #fsl_shw_establish_key() is called to change the PK value, a plaintext
+ * key can be passed in with the #FSL_KEY_WRAP_ACCEPT argument or a previously
+ * wrapped key can be passed in with the #FSL_KEY_WRAP_UNWRAP argument. If
+ * #FSL_KEY_WRAP_CREATE is passed in, then a random value will be loaded into
+ * the PK register. The PK value can be wrapped by a call to
+ * #fsl_shw_extract_key() for later use with the #FSL_KEY_WRAP_UNWRAP argument.
+ *
+ * As an alternative to using only the fused key for @ref wrap_sec,
+ * #fsl_shw_uco_set_wrap_key() can be used to select either the random key or
+ * the random key with the fused key as the key which will be used to protect
+ * the one-time value used to wrap the key. This allows for these
+ * wrapped keys to be dependent upon and therefore unrecoverable after a tamper
+ * event causes the erasure of the DryIce Random Key register.
+ *
+ * The software can request that the hardware generate a (new) Random Key for
+ * DryIce by calling #fsl_shw_gen_random_pf_key().
+ *
+ *
+ * @section td_sec Device Tamper-Detection
+ *
+ * Some platforms have a component which can detect certain types of tampering
+ * with the hardware. #fsl_shw_read_tamper_event() API will allow the
+ * retrieval of the type of event which caused a tamper-detection failure.
+ *
+ */
+
+/*! @defgroup glossary Glossary
+ *
+ * @li @b AES - Advanced Encryption Standard - An NIST-created block cipher
+ * originally knowns as Rijndael.
+ * @li @b ARC4 - ARCFOUR - An S-Box-based OFB mode stream cipher.
+ * @li @b CBC - Cipher-Block Chaining - Each encrypted block is XORed with the
+ * result of the previous block's encryption.
+ * @li @b CCM - A way of combining CBC and CTR to perform cipher and
+ * authentication.
+ * @li @b ciphertext - @a plaintext which has been encrypted in some fashion.
+ * @li @b context - Information on the state of a cryptographic operation,
+ * excluding any key. This could include IV, Counter Value, or SBox.
+ * @li @b CTR - A mode where a counter value is encrypted and then XORed with
+ * the data. After each block, the counter value is incremented.
+ * @li @b DES - Data Encryption Standard - An 8-octet-block cipher.
+ * @li @b ECB - Electronic Codebook - A straight encryption/decryption of the
+ * data.
+ * @li @b hash - A cryptographically strong one-way function performed on data.
+ * @li @b HMAC - Hashed Message Authentication Code - A key-dependent one-way
+ * hash result, used to verify authenticity of a message. The equation
+ * for an HMAC is hash((K + A) || hash((K + B) || msg)), where K is the
+ * key, A is the constant for the outer hash, B is the constant for the
+ * inner hash, and hash is the hashing function (MD5, SHA256, etc).
+ * @li @b IPAD - In an HMAC operation, the context generated by XORing the key
+ * with a constant and then hashing that value as the first block of the
+ * inner hash.
+ * @li @b IV - An "Initial Vector" or @a context for modes like CBC.
+ * @li @b MAC - A Message Authentication Code. HMAC, hashing, and CCM all
+ * produce a MAC.
+ * @li @b mode - A way of using a cryptographic algorithm. See ECB, CBC, etc.
+ * @li @b MD5 - Message Digest 5 - A one-way hash function.
+ * @li @b plaintext - Data which has not been encrypted, or has been decrypted
+ * from @a ciphertext.
+ * @li @b OPAD - In an HMAC operation, the context generated by XORing the key
+ * with a constant and then hashing that value as the first block of the
+ * outer hash.
+ * @li @b SHA - Secure Hash Algorithm - A one-way hash function.
+ * @li @b TDES - AKA @b 3DES - Triple Data Encryption Standard - A method of
+ * using two or three keys and DES to perform three operations (encrypt
+ * decrypt encrypt) to create a new algorithm.
+ * @li @b XOR - Exclusive-OR. A Boolean arithmetic function.
+ * @li @b Wrapped value - A (key) which has been encrypted into an opaque datum
+ * which cannot be unwrapped (decrypted) for use except by an authorized
+ * user. Once created, the key is never visible, but may be used for
+ * other cryptographic operations.
+ */
+
+#ifndef FSL_SHW_H
+#define FSL_SHW_H
+
+/* Set FSL_HAVE_* flags */
+
+#include "fsl_platform.h"
+
+#ifndef API_DOC
+
+#if defined(FSL_HAVE_SAHARA2) || defined(FSL_HAVE_SAHARA4)
+
+#include "sahara.h"
+
+#else
+
+#if defined(FSL_HAVE_RNGA) || defined(FSL_HAVE_RNGB) || defined(FSL_HAVE_RNGC)
+
+#include "rng_driver.h"
+
+#else
+
+#error FSL_SHW_API_platform_not_recognized
+
+#endif
+
+#endif /* HAVE SAHARA */
+
+#else /* API_DOC */
+
+#include <inttypes.h> /* for uint32_t, etc. */
+#include <stdio.h> /* Mainly for definition of NULL !! */
+
+/* These groups will appear in the order in which they are defined. */
+
+/*!
+ * @defgroup strgrp Objects
+ *
+ * These objects are used to pass information into and out of the API. Through
+ * flags and other settings, they control the behavior of the @ref opfuns.
+ *
+ * They are manipulated and queried by use of the various access functions.
+ * There are different sets defined for each object. See @ref objman.
+ */
+
+/*!
+ * @defgroup consgrp Enumerations and other Constants
+ *
+ * This collection of symbols comprise the values which can be passed into
+ * various functions to control how the API will work.
+ */
+
+/*! @defgroup opfuns Operational Functions
+ *
+ * These functions request that the underlying hardware perform cryptographic
+ * operations. They are the heart of the API.
+ */
+
+/****** Organization the Object Operations under one group ! **********/
+/*! @defgroup objman Object-Manipulation Operations
+ *
+ */
+/*! @addtogroup objman
+ @{ */
+/*!
+ * @defgroup pcoops Platform Context Object Operations
+ *
+ * The Platform Context object is "read-only", so only query operations are
+ * provided for it. It is returned by the #fsl_shw_get_capabilities()
+ * function.
+ */
+
+/*! @defgroup ucoops User Context Operations
+ *
+ * These operations should be the only access to the #fsl_shw_uco_t
+ * type/struct, as the internal members of the object are subject to change.
+ * The #fsl_shw_uco_init() function must be called before any other use of the
+ * object.
+ */
+
+/*!
+ * @defgroup rops Result Object Operations
+ *
+ * As the Result Object contains the result of one of the @ref opfuns. The
+ * manipulations provided are query-only. No initialization is needed for this
+ * object.
+ */
+
+/*!
+ * @defgroup skoops Secret Key Object Operations
+ *
+ * These operations should be the only access to the #fsl_shw_sko_t
+ * type/struct, as the internal members of that object are subject to change.
+ */
+
+/*!
+ * @defgroup ksoops Keystore Object Operations
+ *
+ * These operations should be the only access to the #fsl_shw_kso_t
+ * type/struct, as the internal members of that object are subject to change.
+ */
+
+/*!
+ * @defgroup hcops Hash Context Object Operations
+ *
+ * These operations should be the only access to the #fsl_shw_hco_t
+ * type/struct, as the internal members of that object are subject to change.
+ */
+
+/*!
+ * @defgroup hmcops HMAC Context Object Operations
+ *
+ * These operations should be the only access to the #fsl_shw_hmco_t
+ * type/struct, as the internal members of that object are subject to change.
+ */
+
+/*!
+ * @defgroup sccops Symmetric Cipher Context Operations
+ *
+ * These operations should be the only access to the #fsl_shw_scco_t
+ * type/struct, as the internal members of that object are subject to change
+ */
+
+/*! @defgroup accoops Authentication-Cipher Context Object Operations
+ *
+ * These functions operate on a #fsl_shw_acco_t. Their purpose is to set
+ * flags, fields, etc., in order to control the operation of
+ * #fsl_shw_gen_encrypt() and #fsl_shw_auth_decrypt().
+ */
+
+ /* @} *//************ END GROUPING of Object Manipulations *****************/
+
+/*! @defgroup miscfuns Miscellaneous Functions
+ *
+ * These functions are neither @ref opfuns nor @ref objman. Their behavior
+ * does not depend upon the flags in the #fsl_shw_uco_t, yet they may involve
+ * more interaction with the library and the kernel than simply querying an
+ * object.
+ */
+
+/******************************************************************************
+ * Enumerations
+ *****************************************************************************/
+/*! @addtogroup consgrp
+ @{ */
+
+/*!
+ * Flags for the state of the User Context Object (#fsl_shw_uco_t).
+ *
+ * These flags describe how the @ref opfuns will operate.
+ */
+typedef enum fsl_shw_user_ctx_flags_t {
+ /*!
+ * API will block the caller until operation completes. The result will be
+ * available in the return code. If this is not set, user will have to get
+ * results using #fsl_shw_get_results().
+ */
+ FSL_UCO_BLOCKING_MODE,
+ /*!
+ * User wants callback (at the function specified with
+ * #fsl_shw_uco_set_callback()) when the operation completes. This flag is
+ * valid only if #FSL_UCO_BLOCKING_MODE is not set.
+ */
+ FSL_UCO_CALLBACK_MODE,
+ /*! Do not free descriptor chain after driver (adaptor) finishes */
+ FSL_UCO_SAVE_DESC_CHAIN,
+ /*!
+ * User has made at least one request with callbacks requested, so API is
+ * ready to handle others.
+ */
+ FSL_UCO_CALLBACK_SETUP_COMPLETE,
+ /*!
+ * (virtual) pointer to descriptor chain is completely linked with physical
+ * (DMA) addresses, ready for the hardware. This flag should not be used
+ * by FSL SHW API programs.
+ */
+ FSL_UCO_CHAIN_PREPHYSICALIZED,
+ /*!
+ * The user has changed the context but the changes have not been copied to
+ * the kernel driver.
+ */
+ FSL_UCO_CONTEXT_CHANGED,
+ /*! Internal Use. This context belongs to a user-mode API user. */
+ FSL_UCO_USERMODE_USER,
+} fsl_shw_user_ctx_flags_t;
+
+/*!
+ * Return code for FSL_SHW library.
+ *
+ * These codes may be returned from a function call. In non-blocking mode,
+ * they will appear as the status in a Result Object.
+ */
+typedef enum fsl_shw_return_t {
+ /*!
+ * No error. As a function return code in Non-blocking mode, this may
+ * simply mean that the operation was accepted for eventual execution.
+ */
+ FSL_RETURN_OK_S = 0,
+ /*! Failure for non-specific reason. */
+ FSL_RETURN_ERROR_S,
+ /*!
+ * Operation failed because some resource was not able to be allocated.
+ */
+ FSL_RETURN_NO_RESOURCE_S,
+ /*! Crypto algorithm unrecognized or improper. */
+ FSL_RETURN_BAD_ALGORITHM_S,
+ /*! Crypto mode unrecognized or improper. */
+ FSL_RETURN_BAD_MODE_S,
+ /*! Flag setting unrecognized or inconsistent. */
+ FSL_RETURN_BAD_FLAG_S,
+ /*! Improper or unsupported key length for algorithm. */
+ FSL_RETURN_BAD_KEY_LENGTH_S,
+ /*! Improper parity in a (DES, TDES) key. */
+ FSL_RETURN_BAD_KEY_PARITY_S,
+ /*!
+ * Improper or unsupported data length for algorithm or internal buffer.
+ */
+ FSL_RETURN_BAD_DATA_LENGTH_S,
+ /*! Authentication / Integrity Check code check failed. */
+ FSL_RETURN_AUTH_FAILED_S,
+ /*! A memory error occurred. */
+ FSL_RETURN_MEMORY_ERROR_S,
+ /*! An error internal to the hardware occurred. */
+ FSL_RETURN_INTERNAL_ERROR_S,
+ /*! ECC detected Point at Infinity */
+ FSL_RETURN_POINT_AT_INFINITY_S,
+ /*! ECC detected No Point at Infinity */
+ FSL_RETURN_POINT_NOT_AT_INFINITY_S,
+ /*! GCD is One */
+ FSL_RETURN_GCD_IS_ONE_S,
+ /*! GCD is not One */
+ FSL_RETURN_GCD_IS_NOT_ONE_S,
+ /*! Candidate is Prime */
+ FSL_RETURN_PRIME_S,
+ /*! Candidate is not Prime */
+ FSL_RETURN_NOT_PRIME_S,
+ /*! N register loaded improperly with even value */
+ FSL_RETURN_EVEN_MODULUS_ERROR_S,
+ /*! Divisor is zero. */
+ FSL_RETURN_DIVIDE_BY_ZERO_ERROR_S,
+ /*! Bad Exponent or Scalar value for Point Multiply */
+ FSL_RETURN_BAD_EXPONENT_ERROR_S,
+ /*! RNG hardware problem. */
+ FSL_RETURN_OSCILLATOR_ERROR_S,
+ /*! RNG hardware problem. */
+ FSL_RETURN_STATISTICS_ERROR_S,
+} fsl_shw_return_t;
+
+/*!
+ * Algorithm Identifier.
+ *
+ * Selection of algorithm will determine how large the block size of the
+ * algorithm is. Context size is the same length unless otherwise specified.
+ * Selection of algorithm also affects the allowable key length.
+ */
+typedef enum fsl_shw_key_alg_t {
+ FSL_KEY_ALG_HMAC, /*!< Key will be used to perform an HMAC. Key
+ size is 1 to 64 octets. Block size is 64
+ octets. */
+ FSL_KEY_ALG_AES, /*!< Advanced Encryption Standard (Rijndael).
+ Block size is 16 octets. Key size is 16
+ octets. (The single choice of key size is a
+ Sahara platform limitation.) */
+ FSL_KEY_ALG_DES, /*!< Data Encryption Standard. Block size is
+ 8 octets. Key size is 8 octets. */
+ FSL_KEY_ALG_TDES, /*!< 2- or 3-key Triple DES. Block size is 8
+ octets. Key size is 16 octets for 2-key
+ Triple DES, and 24 octets for 3-key. */
+ FSL_KEY_ALG_ARC4 /*!< ARC4. No block size. Context size is 259
+ octets. Allowed key size is 1-16 octets.
+ (The choices for key size are a Sahara
+ platform limitation.) */
+} fsl_shw_key_alg_t;
+
+/*!
+ * Mode selector for Symmetric Ciphers.
+ *
+ * The selection of mode determines how a cryptographic algorithm will be
+ * used to process the plaintext or ciphertext.
+ *
+ * For all modes which are run block-by-block (that is, all but
+ * #FSL_SYM_MODE_STREAM), any partial operations must be performed on a text
+ * length which is multiple of the block size. Except for #FSL_SYM_MODE_CTR,
+ * these block-by-block algorithms must also be passed a total number of octets
+ * which is a multiple of the block size.
+ *
+ * In modes which require that the total number of octets of data be a multiple
+ * of the block size (#FSL_SYM_MODE_ECB and #FSL_SYM_MODE_CBC), and the user
+ * has a total number of octets which are not a multiple of the block size, the
+ * user must perform any necessary padding to get to the correct data length.
+ */
+typedef enum fsl_shw_sym_mode_t {
+ /*!
+ * Stream. There is no associated block size. Any request to process data
+ * may be of any length. This mode is only for ARC4 operations, and is
+ * also the only mode used for ARC4.
+ */
+ FSL_SYM_MODE_STREAM,
+
+ /*!
+ * Electronic Codebook. Each block of data is encrypted/decrypted. The
+ * length of the data stream must be a multiple of the block size. This
+ * mode may be used for DES, 3DES, and AES. The block size is determined
+ * by the algorithm.
+ */
+ FSL_SYM_MODE_ECB,
+ /*!
+ * Cipher-Block Chaining. Each block of data is encrypted/decrypted and
+ * then "chained" with the previous block by an XOR function. Requires
+ * context to start the XOR (previous block). This mode may be used for
+ * DES, 3DES, and AES. The block size is determined by the algorithm.
+ */
+ FSL_SYM_MODE_CBC,
+ /*!
+ * Counter. The counter is encrypted, then XORed with a block of data.
+ * The counter is then incremented (using modulus arithmetic) for the next
+ * block. The final operation may be non-multiple of block size. This mode
+ * may be used for AES. The block size is determined by the algorithm.
+ */
+ FSL_SYM_MODE_CTR,
+} fsl_shw_sym_mode_t;
+
+/*!
+ * Algorithm selector for Cryptographic Hash functions.
+ *
+ * Selection of algorithm determines how large the context and digest will be.
+ * Context is the same size as the digest (resulting hash), unless otherwise
+ * specified.
+ */
+typedef enum fsl_shw_hash_alg_t {
+ FSL_HASH_ALG_MD5, /*!< MD5 algorithm. Digest is 16 octets. */
+ FSL_HASH_ALG_SHA1, /*!< SHA-1 (aka SHA or SHA-160) algorithm.
+ Digest is 20 octets. */
+ FSL_HASH_ALG_SHA224, /*!< SHA-224 algorithm. Digest is 28 octets,
+ though context is 32 octets. */
+ FSL_HASH_ALG_SHA256 /*!< SHA-256 algorithm. Digest is 32
+ octets. */
+} fsl_shw_hash_alg_t;
+
+/*!
+ * The type of Authentication-Cipher function which will be performed.
+ */
+typedef enum fsl_shw_acc_mode_t {
+ /*!
+ * CBC-MAC for Counter. Requires context and modulus. Final operation may
+ * be non-multiple of block size. This mode may be used for AES.
+ */
+ FSL_ACC_MODE_CCM,
+ /*!
+ * SSL mode. Not supported. Combines HMAC and encrypt (or decrypt).
+ * Needs one key object for encryption, another for the HMAC. The usual
+ * hashing and symmetric encryption algorithms are supported.
+ */
+ FSL_ACC_MODE_SSL,
+} fsl_shw_acc_mode_t;
+
+/*!
+ * The operation which controls the behavior of #fsl_shw_establish_key().
+ *
+ * These values are passed to #fsl_shw_establish_key().
+ */
+typedef enum fsl_shw_key_wrap_t {
+ FSL_KEY_WRAP_CREATE, /*!< Generate a key from random values. */
+ FSL_KEY_WRAP_ACCEPT, /*!< Use the provided clear key. */
+ FSL_KEY_WRAP_UNWRAP /*!< Unwrap a previously wrapped key. */
+} fsl_shw_key_wrap_t;
+
+/* REQ-S2LRD-PINTFC-COA-HCO-001 */
+/*!
+ * Flags which control a Hash operation.
+ *
+ * These may be combined by ORing them together. See #fsl_shw_hco_set_flags()
+ * and #fsl_shw_hco_clear_flags().
+ */
+typedef enum fsl_shw_hash_ctx_flags_t {
+ FSL_HASH_FLAGS_INIT = 1, /*!< Context is empty. Hash is started
+ from scratch, with a message-processed
+ count of zero. */
+ FSL_HASH_FLAGS_SAVE = 2, /*!< Retrieve context from hardware after
+ hashing. If used with the
+ #FSL_HASH_FLAGS_FINALIZE flag, the final
+ digest value will be saved in the
+ object. */
+ FSL_HASH_FLAGS_LOAD = 4, /*!< Place context into hardware before
+ hashing. */
+ FSL_HASH_FLAGS_FINALIZE = 8, /*!< PAD message and perform final digest
+ operation. If user message is
+ pre-padded, this flag should not be
+ used. */
+} fsl_shw_hash_ctx_flags_t;
+
+/*!
+ * Flags which control an HMAC operation.
+ *
+ * These may be combined by ORing them together. See #fsl_shw_hmco_set_flags()
+ * and #fsl_shw_hmco_clear_flags().
+ */
+typedef enum fsl_shw_hmac_ctx_flags_t {
+ FSL_HMAC_FLAGS_INIT = 1, /*!< Message context is empty. HMAC is
+ started from scratch (with key) or from
+ precompute of inner hash, depending on
+ whether
+ #FSL_HMAC_FLAGS_PRECOMPUTES_PRESENT is
+ set. */
+ FSL_HMAC_FLAGS_SAVE = 2, /*!< Retrieve ongoing context from hardware
+ after hashing. If used with the
+ #FSL_HMAC_FLAGS_FINALIZE flag, the final
+ digest value (HMAC) will be saved in the
+ object. */
+ FSL_HMAC_FLAGS_LOAD = 4, /*!< Place ongoing context into hardware
+ before hashing. */
+ FSL_HMAC_FLAGS_FINALIZE = 8, /*!< PAD message and perform final HMAC
+ operations of inner and outer hashes. */
+ FSL_HMAC_FLAGS_PRECOMPUTES_PRESENT = 16 /*!< This means that the context
+ contains precomputed inner and outer
+ hash values. */
+} fsl_shw_hmac_ctx_flags_t;
+
+/*!
+ * Flags to control use of the #fsl_shw_scco_t.
+ *
+ * These may be ORed together to get the desired effect.
+ * See #fsl_shw_scco_set_flags() and #fsl_shw_scco_clear_flags()
+ */
+typedef enum fsl_shw_sym_ctx_flags_t {
+ /*!
+ * Context is empty. In ARC4, this means that the S-Box needs to be
+ * generated from the key. In #FSL_SYM_MODE_CBC mode, this allows an IV of
+ * zero to be specified. In #FSL_SYM_MODE_CTR mode, it means that an
+ * initial CTR value of zero is desired.
+ */
+ FSL_SYM_CTX_INIT = 1,
+ /*!
+ * Load context from object into hardware before running cipher. In
+ * #FSL_SYM_MODE_CTR mode, this would refer to the Counter Value.
+ */
+ FSL_SYM_CTX_LOAD = 2,
+ /*!
+ * Save context from hardware into object after running cipher. In
+ * #FSL_SYM_MODE_CTR mode, this would refer to the Counter Value.
+ */
+ FSL_SYM_CTX_SAVE = 4,
+ /*!
+ * Context (SBox) is to be unwrapped and wrapped on each use.
+ * This flag is unsupported.
+ * */
+ FSL_SYM_CTX_PROTECT = 8,
+} fsl_shw_sym_ctx_flags_t;
+
+/*!
+ * Flags which describe the state of the #fsl_shw_sko_t.
+ *
+ * These may be ORed together to get the desired effect.
+ * See #fsl_shw_sko_set_flags() and #fsl_shw_sko_clear_flags()
+ */
+typedef enum fsl_shw_key_flags_t {
+ FSL_SKO_KEY_IGNORE_PARITY = 1, /*!< If algorithm is DES or 3DES, do not
+ validate the key parity bits. */
+ FSL_SKO_KEY_PRESENT = 2, /*!< Clear key is present in the object. */
+ FSL_SKO_KEY_ESTABLISHED = 4, /*!< Key has been established for use. This
+ feature is not available for all
+ platforms, nor for all algorithms and
+ modes. */
+ FSL_SKO_KEY_SW_KEY = 8, /*!< This key is for software use, and can
+ be copied out of a keystore by its owner.
+ The default is that they key is available
+ only for hardware (or security driver)
+ use. */
+} fsl_shw_key_flags_t;
+
+/*!
+ * Type of value which is associated with an established key.
+ */
+typedef uint64_t key_userid_t;
+
+/*!
+ * Flags which describe the state of the #fsl_shw_acco_t.
+ *
+ * The @a FSL_ACCO_CTX_INIT and @a FSL_ACCO_CTX_FINALIZE flags, when used
+ * together, provide for a one-shot operation.
+ */
+typedef enum fsl_shw_auth_ctx_flags_t {
+ FSL_ACCO_CTX_INIT = 1, /*!< Initialize Context(s) */
+ FSL_ACCO_CTX_LOAD = 2, /*!< Load intermediate context(s).
+ This flag is unsupported. */
+ FSL_ACCO_CTX_SAVE = 4, /*!< Save intermediate context(s).
+ This flag is unsupported. */
+ FSL_ACCO_CTX_FINALIZE = 8, /*!< Create MAC during this operation. */
+ FSL_ACCO_NIST_CCM = 16, /*!< Formatting of CCM input data is
+ performed by calls to
+ #fsl_shw_ccm_nist_format_ctr_and_iv() and
+ #fsl_shw_ccm_nist_update_ctr_and_iv(). */
+} fsl_shw_auth_ctx_flags_t;
+
+/*!
+ * Modulus Selector for CTR modes.
+ *
+ * The incrementing of the Counter value may be modified by a modulus. If no
+ * modulus is needed or desired for AES, use #FSL_CTR_MOD_128.
+ */
+typedef enum fsl_shw_ctr_mod_t {
+ FSL_CTR_MOD_8, /*!< Run counter with modulus of 2^8. */
+ FSL_CTR_MOD_16, /*!< Run counter with modulus of 2^16. */
+ FSL_CTR_MOD_24, /*!< Run counter with modulus of 2^24. */
+ FSL_CTR_MOD_32, /*!< Run counter with modulus of 2^32. */
+ FSL_CTR_MOD_40, /*!< Run counter with modulus of 2^40. */
+ FSL_CTR_MOD_48, /*!< Run counter with modulus of 2^48. */
+ FSL_CTR_MOD_56, /*!< Run counter with modulus of 2^56. */
+ FSL_CTR_MOD_64, /*!< Run counter with modulus of 2^64. */
+ FSL_CTR_MOD_72, /*!< Run counter with modulus of 2^72. */
+ FSL_CTR_MOD_80, /*!< Run counter with modulus of 2^80. */
+ FSL_CTR_MOD_88, /*!< Run counter with modulus of 2^88. */
+ FSL_CTR_MOD_96, /*!< Run counter with modulus of 2^96. */
+ FSL_CTR_MOD_104, /*!< Run counter with modulus of 2^104. */
+ FSL_CTR_MOD_112, /*!< Run counter with modulus of 2^112. */
+ FSL_CTR_MOD_120, /*!< Run counter with modulus of 2^120. */
+ FSL_CTR_MOD_128 /*!< Run counter with modulus of 2^128. */
+} fsl_shw_ctr_mod_t;
+
+/*!
+ * Permissions flags for Secure Partitions
+ *
+ * They currently map directly to the SCC2 hardware values, but this is not
+ * guarinteed behavior.
+ */
+typedef enum fsl_shw_permission_t {
+/*! SCM Access Permission: Do not zeroize/deallocate partition on SMN Fail state */
+ FSL_PERM_NO_ZEROIZE,
+/*! SCM Access Permission: Enforce trusted key read in */
+ FSL_PERM_TRUSTED_KEY_READ,
+/*! SCM Access Permission: Ignore Supervisor/User mode in permission determination */
+ FSL_PERM_HD_S,
+/*! SCM Access Permission: Allow Read Access to Host Domain */
+ FSL_PERM_HD_R,
+/*! SCM Access Permission: Allow Write Access to Host Domain */
+ FSL_PERM_HD_W,
+/*! SCM Access Permission: Allow Execute Access to Host Domain */
+ FSL_PERM_HD_X,
+/*! SCM Access Permission: Allow Read Access to Trusted Host Domain */
+ FSL_PERM_TH_R,
+/*! SCM Access Permission: Allow Write Access to Trusted Host Domain */
+ FSL_PERM_TH_W,
+/*! SCM Access Permission: Allow Read Access to Other/World Domain */
+ FSL_PERM_OT_R,
+/*! SCM Access Permission: Allow Write Access to Other/World Domain */
+ FSL_PERM_OT_W,
+/*! SCM Access Permission: Allow Execute Access to Other/World Domain */
+ FSL_PERM_OT_X,
+} fsl_shw_permission_t;
+
+/*!
+ * Select the cypher mode to use for partition cover/uncover operations.
+ *
+ * They currently map directly to the values used in the SCC2 driver, but this
+ * is not guarinteed behavior.
+ */
+typedef enum fsl_shw_cypher_mode_t {
+ FSL_SHW_CYPHER_MODE_ECB, /*!< ECB mode */
+ FSL_SHW_CYPHER_MODE_CBC, /*!< CBC mode */
+} fsl_shw_cypher_mode_t;
+
+/*!
+ * Which platform key should be presented for cryptographic use.
+ */
+typedef enum fsl_shw_pf_key_t {
+ FSL_SHW_PF_KEY_IIM, /*!< Present fused IIM key */
+ FSL_SHW_PF_KEY_PRG, /*!< Present Program key */
+ FSL_SHW_PF_KEY_IIM_PRG, /*!< Present IIM ^ Program key */
+ FSL_SHW_PF_KEY_IIM_RND, /*!< Present Random key */
+ FSL_SHW_PF_KEY_RND, /*!< Present IIM ^ Random key */
+} fsl_shw_pf_key_t;
+
+/*!
+ * The various security tamper events
+ */
+typedef enum fsl_shw_tamper_t {
+ FSL_SHW_TAMPER_NONE, /*!< No error detected */
+ FSL_SHW_TAMPER_WTD, /*!< wire-mesh tampering det */
+ FSL_SHW_TAMPER_ETBD, /*!< ext tampering det: input B */
+ FSL_SHW_TAMPER_ETAD, /*!< ext tampering det: input A */
+ FSL_SHW_TAMPER_EBD, /*!< external boot detected */
+ FSL_SHW_TAMPER_SAD, /*!< security alarm detected */
+ FSL_SHW_TAMPER_TTD, /*!< temperature tampering det */
+ FSL_SHW_TAMPER_CTD, /*!< clock tampering det */
+ FSL_SHW_TAMPER_VTD, /*!< voltage tampering det */
+ FSL_SHW_TAMPER_MCO, /*!< monotonic counter overflow */
+ FSL_SHW_TAMPER_TCO, /*!< time counter overflow */
+} fsl_shw_tamper_t;
+
+/*! @} *//* consgrp */
+
+/******************************************************************************
+ * Data Structures
+ *****************************************************************************/
+/*! @addtogroup strgrp
+ @{ */
+
+/* REQ-S2LRD-PINTFC-COA-IBO-001 */
+/*!
+ * Application Initialization Object
+ *
+ * This object, the operations on it, and its interaction with the driver are
+ * TBD.
+ */
+typedef struct fsl_sho_ibo_t {
+} fsl_sho_ibo_t;
+
+/* REQ-S2LRD-PINTFC-COA-UCO-001 */
+/*!
+ * User Context Object
+ *
+ * This object must be initialized by a call to #fsl_shw_uco_init(). It must
+ * then be passed to #fsl_shw_register_user() before it can be used in any
+ * calls besides those in @ref ucoops.
+ *
+ * It contains the user's configuration for the API, for instance whether an
+ * operation should block, or instead should call back the user upon completion
+ * of the operation.
+ *
+ * See @ref ucoops for further information.
+ */
+typedef struct fsl_shw_uco_t { /* fsl_shw_user_context_object */
+} fsl_shw_uco_t;
+
+/* REQ-S2LRD-PINTFC-API-GEN-006 ?? */
+/*!
+ * Result Object
+ *
+ * This object will contain success and failure information about a specific
+ * cryptographic request which has been made.
+ *
+ * No direct access to its members should be made by programs. Instead, the
+ * object should be manipulated using the provided functions. See @ref rops.
+ */
+typedef struct fsl_shw_result_t { /* fsl_shw_result */
+} fsl_shw_result_t;
+
+/*!
+ * Keystore Object
+ *
+ * This object holds the context of a user keystore, including the functions
+ * that define the interface and pointers to where the key data is stored. The
+ * user must supply a set of functions to handle keystore management, including
+ * slot allocation, deallocation, etc. A default keystore manager is provided
+ * as part of the API.
+ *
+ * No direct access to its members should be made by programs. Instead, the
+ * object should be manipulated using the provided functions. See @ref ksoops.
+ */
+typedef struct fsl_shw_kso_t { /* fsl_shw_keystore_object */
+} fsl_shw_kso_t;
+
+/* REQ-S2LRD-PINTFC-COA-SKO-001 */
+/*!
+ * Secret Key Object
+ *
+ * This object contains a key for a cryptographic operation, and information
+ * about its current state, its intended usage, etc. It may instead contain
+ * information about a protected key, or an indication to use a platform-
+ * specific secret key.
+ *
+ * No direct access to its members should be made by programs. Instead, the
+ * object should be manipulated using the provided functions. See @ref skoops.
+ */
+typedef struct fsl_shw_sko_t { /* fsl_shw_secret_key_object */
+} fsl_shw_sko_t;
+
+/* REQ-S2LRD-PINTFC-COA-CO-001 */
+/*!
+ * Platform Capabilities Object
+ *
+ * This object will contain information about the cryptographic features of the
+ * platform which the program is running on.
+ *
+ * No direct access to its members should be made by programs. Instead, the
+ * object should be manipulated using the provided functions.
+ *
+ * See @ref pcoops.
+ */
+typedef struct fsl_shw_pco_t { /* fsl_shw_platform_capabilities_object */
+} fsl_shw_pco_t;
+
+/* REQ-S2LRD-PINTFC-COA-HCO-001 */
+/*!
+ * Hash Context Object
+ *
+ * This object contains information to control hashing functions.
+
+ * No direct access to its members should be made by programs. Instead, the
+ * object should be manipulated using the provided functions. See @ref hcops.
+ */
+typedef struct fsl_shw_hco_t { /* fsl_shw_hash_context_object */
+} fsl_shw_hco_t;
+
+/*!
+ * HMAC Context Object
+ *
+ * This object contains information to control HMAC functions.
+
+ * No direct access to its members should be made by programs. Instead, the
+ * object should be manipulated using the provided functions. See @ref hmcops.
+ */
+typedef struct fsl_shw_hmco_t { /* fsl_shw_hmac_context_object */
+} fsl_shw_hmco_t;
+
+/* REQ-S2LRD-PINTFC-COA-SCCO-001 */
+/*!
+ * Symmetric Cipher Context Object
+ *
+ * This object contains information to control Symmetric Ciphering encrypt and
+ * decrypt functions in #FSL_SYM_MODE_STREAM (ARC4), #FSL_SYM_MODE_ECB,
+ * #FSL_SYM_MODE_CBC, and #FSL_SYM_MODE_CTR modes and the
+ * #fsl_shw_symmetric_encrypt() and #fsl_shw_symmetric_decrypt() functions.
+ * CCM mode is controlled with the #fsl_shw_acco_t object.
+ *
+ * No direct access to its members should be made by programs. Instead, the
+ * object should be manipulated using the provided functions. See @ref sccops.
+ */
+typedef struct fsl_shw_scco_t { /* fsl_shw_symmetric_cipher_context_object */
+} fsl_shw_scco_t;
+
+/*!
+ * Authenticate-Cipher Context Object
+
+ * An object for controlling the function of, and holding information about,
+ * data for the authenticate-cipher functions, #fsl_shw_gen_encrypt() and
+ * #fsl_shw_auth_decrypt().
+ *
+ * No direct access to its members should be made by programs. Instead, the
+ * object should be manipulated using the provided functions. See @ref
+ * accoops.
+ */
+typedef struct fsl_shw_acco_t { /* fsl_shw_authenticate_cipher_context_object */
+} fsl_shw_acco_t;
+ /*! @} *//* strgrp */
+
+/******************************************************************************
+ * Access Macros for Objects
+ *****************************************************************************/
+/*! @addtogroup pcoops
+ @{ */
+
+/*!
+ * Get FSL SHW API version
+ *
+ * @param pc_info The Platform Capabilities Object to query.
+ * @param[out] major A pointer to where the major version
+ * of the API is to be stored.
+ * @param[out] minor A pointer to where the minor version
+ * of the API is to be stored.
+ */
+void fsl_shw_pco_get_version(const fsl_shw_pco_t * pc_info,
+ uint32_t * major, uint32_t * minor);
+
+/*!
+ * Get underlying driver version.
+ *
+ * @param pc_info The Platform Capabilities Object to query.
+ * @param[out] major A pointer to where the major version
+ * of the driver is to be stored.
+ * @param[out] minor A pointer to where the minor version
+ * of the driver is to be stored.
+ */
+void fsl_shw_pco_get_driver_version(const fsl_shw_pco_t * pc_info,
+ uint32_t * major, uint32_t * minor);
+
+/*!
+ * Get list of symmetric algorithms supported.
+ *
+ * @param pc_info The Platform Capabilities Object to query.
+ * @param[out] algorithms A pointer to where to store the location of
+ * the list of algorithms.
+ * @param[out] algorithm_count A pointer to where to store the number of
+ * algorithms in the list at @a algorithms.
+ */
+void fsl_shw_pco_get_sym_algorithms(const fsl_shw_pco_t * pc_info,
+ fsl_shw_key_alg_t * algorithms[],
+ uint8_t * algorithm_count);
+
+/*!
+ * Get list of symmetric modes supported.
+ *
+ * @param pc_info The Platform Capabilities Object to query.
+ * @param[out] modes A pointer to where to store the location of
+ * the list of modes.
+ * @param[out] mode_count A pointer to where to store the number of
+ * algorithms in the list at @a modes.
+ */
+void fsl_shw_pco_get_sym_modes(const fsl_shw_pco_t * pc_info,
+ fsl_shw_sym_mode_t * modes[],
+ uint8_t * mode_count);
+
+/*!
+ * Get list of hash algorithms supported.
+ *
+ * @param pc_info The Platform Capabilities Object to query.
+ * @param[out] algorithms A pointer which will be set to the list of
+ * algorithms.
+ * @param[out] algorithm_count The number of algorithms in the list at @a
+ * algorithms.
+ */
+void fsl_shw_pco_get_hash_algorithms(const fsl_shw_pco_t * pc_info,
+ fsl_shw_hash_alg_t * algorithms[],
+ uint8_t * algorithm_count);
+
+/*!
+ * Determine whether the combination of a given symmetric algorithm and a given
+ * mode is supported.
+ *
+ * @param pc_info The Platform Capabilities Object to query.
+ * @param algorithm A Symmetric Cipher algorithm.
+ * @param mode A Symmetric Cipher mode.
+ *
+ * @return 0 if combination is not supported, non-zero if supported.
+ */
+int fsl_shw_pco_check_sym_supported(const fsl_shw_pco_t * pc_info,
+ fsl_shw_key_alg_t algorithm,
+ fsl_shw_sym_mode_t mode);
+
+/*!
+ * Determine whether a given Encryption-Authentication mode is supported.
+ *
+ * @param pc_info The Platform Capabilities Object to query.
+ * @param mode The Authentication mode.
+ *
+ * @return 0 if mode is not supported, non-zero if supported.
+ */
+int fsl_shw_pco_check_auth_supported(const fsl_shw_pco_t * pc_info,
+ fsl_shw_acc_mode_t mode);
+
+/*!
+ * Determine whether Black Keys (key establishment / wrapping) is supported.
+ *
+ * @param pc_info The Platform Capabilities Object to query.
+ *
+ * @return 0 if wrapping is not supported, non-zero if supported.
+ */
+int fsl_shw_pco_check_black_key_supported(const fsl_shw_pco_t * pc_info);
+
+/*!
+ * Get FSL SHW SCC driver version
+ *
+ * @param pc_info The Platform Capabilities Object to query.
+ * @param[out] major A pointer to where the major version
+ * of the SCC driver is to be stored.
+ * @param[out] minor A pointer to where the minor version
+ * of the SCC driver is to be stored.
+ */
+void fsl_shw_pco_get_scc_driver_version(const fsl_shw_pco_t * pc_info,
+ uint32_t * major, uint32_t * minor);
+
+/*!
+ * Get SCM hardware version
+ *
+ * @param pc_info The Platform Capabilities Object to query.
+ * @return The SCM hardware version
+ */
+uint32_t fsl_shw_pco_get_scm_version(const fsl_shw_pco_t * pc_info);
+
+/*!
+ * Get SMN hardware version
+ *
+ * @param pc_info The Platform Capabilities Object to query.
+ * @return The SMN hardware version
+ */
+uint32_t fsl_shw_pco_get_smn_version(const fsl_shw_pco_t * pc_info);
+
+/*!
+ * Get the size of an SCM block, in bytes
+ *
+ * @param pc_info The Platform Capabilities Object to query.
+ * @return The size of an SCM block, in bytes.
+ */
+uint32_t fsl_shw_pco_get_scm_block_size(const fsl_shw_pco_t * pc_info);
+
+/*!
+ * Get size of Black and Red RAM memory
+ *
+ * @param pc_info The Platform Capabilities Object to query.
+ * @param[out] black_size A pointer to where the size of the Black RAM, in
+ * blocks, is to be placed.
+ * @param[out] red_size A pointer to where the size of the Red RAM, in
+ * blocks, is to be placed.
+ */
+void fsl_shw_pco_get_smn_size(const fsl_shw_pco_t * pc_info,
+ uint32_t * black_size, uint32_t * red_size);
+
+/*!
+ * Determine whether Secure Partitions are supported
+ *
+ * @param pc_info The Platform Capabilities Object to query.
+ *
+ * @return 0 if secure partitions are not supported, non-zero if supported.
+ */
+int fsl_shw_pco_check_spo_supported(const fsl_shw_pco_t * pc_info);
+
+/*!
+ * Get the size of a Secure Partitions
+ *
+ * @param pc_info The Platform Capabilities Object to query.
+ *
+ * @return Partition size, in bytes. 0 if Secure Partitions not supported.
+ */
+uint32_t fsl_shw_pco_get_spo_size_bytes(const fsl_shw_pco_t * pc_info);
+
+/*!
+ * Get the number of Secure Partitions on this platform
+ *
+ * @param pc_info The Platform Capabilities Object to query.
+ *
+ * @return Number of partitions. 0 if Secure Partitions not supported. Note
+ * that this returns the total number of partitions, though
+ * not all may be available to the user.
+ */
+uint32_t fsl_shw_pco_get_spo_count(const fsl_shw_pco_t * pc_info);
+
+/*!
+ * Determine whether Platform Key features are available
+ *
+ * @param pc_info The Platform Capabilities Object to query.
+ *
+ * @return 1 if Programmed Key features are available, otherwise zero.
+ */
+int fsl_shw_pco_check_pk_supported(const fsl_shw_pco_t * pc_info);
+
+/*!
+ * Determine whether Software Key features are available
+ *
+ * @param pc_info The Platform Capabilities Object to query.
+ *
+ * @return 1 if Software key features are available, otherwise zero.
+ */
+int fsl_shw_pco_check_sw_keys_supported(const fsl_shw_pco_t * pc_info);
+
+/*! @} *//* pcoops */
+
+/*! @addtogroup ucoops
+ @{ */
+
+/*!
+ * Initialize a User Context Object.
+ *
+ * This function must be called before performing any other operation with the
+ * Object. It sets the User Context Object to initial values, and set the size
+ * of the results pool. The mode will be set to a default of
+ * #FSL_UCO_BLOCKING_MODE.
+ *
+ * When using non-blocking operations, this sets the maximum number of
+ * operations which can be outstanding. This number includes the counts of
+ * operations waiting to start, operation(s) being performed, and results which
+ * have not been retrieved.
+ *
+ * Changes to this value are ignored once user registration has completed. It
+ * should be set to 1 if only blocking operations will ever be performed.
+ *
+ * @param user_ctx The User Context object to operate on.
+ * @param pool_size The maximum number of operations which can be
+ * outstanding.
+ */
+void fsl_shw_uco_init(fsl_shw_uco_t * user_ctx, uint16_t pool_size);
+
+/*!
+ * Set the User Reference for the User Context.
+ *
+ * @param user_ctx The User Context object to operate on.
+ * @param reference A value which will be passed back with a result.
+ */
+void fsl_shw_uco_set_reference(fsl_shw_uco_t * user_ctx, uint32_t reference);
+
+/*!
+ * Set the callback routine for the User Context.
+ *
+ * Note that the callback routine may be called when no results are available,
+ * and possibly even when no requests are outstanding.
+ *
+ *
+ * @param user_ctx The User Context object to operate on.
+ * @param callback_fn The function the API will invoke when an operation
+ * completes.
+ */
+void fsl_shw_uco_set_callback(fsl_shw_uco_t * user_ctx,
+ void (*callback_fn) (fsl_shw_uco_t * uco));
+
+/*!
+ * Set flags in the User Context.
+ *
+ * Turns on the flags specified in @a flags. Other flags are untouched.
+ *
+ * @param user_ctx The User Context object to operate on.
+ * @param flags ORed values from #fsl_shw_user_ctx_flags_t.
+ */
+void fsl_shw_uco_set_flags(fsl_shw_uco_t * user_ctx, uint32_t flags);
+
+/*!
+ * Clear flags in the User Context.
+ *
+ * Turns off the flags specified in @a flags. Other flags are untouched.
+ *
+ * @param user_ctx The User Context object to operate on.
+ * @param flags ORed values from #fsl_shw_user_ctx_flags_t.
+ */
+void fsl_shw_uco_clear_flags(fsl_shw_uco_t * user_ctx, uint32_t flags);
+
+/*!
+ * Select a key for the key-wrap key for key wrapping/unwrapping
+ *
+ * Without a call to this function, default is FSL_SHW_PF_KEY_IIM. The wrap
+ * key is used to encrypt and decrypt the per-key random secret which is used
+ * to calculate the key which will encrypt/decrypt the user's key.
+ *
+ * @param user_ctx The User Context object to operate on.
+ * @param pf_key Which key to use. Valid choices are
+ * #FSL_SHW_PF_KEY_IIM, #FSL_SHW_PF_KEY_RND, and
+ * #FSL_SHW_PF_KEY_IIM_RND.
+ */
+void fsl_shw_uco_set_wrap_key(fsl_shw_uco_t * user_ctx,
+ fsl_shw_pf_key_t pf_key);
+
+ /*! @} *//* ucoops */
+
+/*! @addtogroup rops
+ @{ */
+
+/*!
+ * Retrieve the status code from a Result Object.
+ *
+ * @param result The result object to query.
+ *
+ * @return The status of the request.
+ */
+fsl_shw_return_t fsl_shw_ro_get_status(fsl_shw_result_t * result);
+
+/*!
+ * Retrieve the reference value from a Result Object.
+ *
+ * @param result The result object to query.
+ *
+ * @return The reference associated with the request.
+ */
+uint32_t fsl_shw_ro_get_reference(fsl_shw_result_t * result);
+
+ /* @} *//* rops */
+
+/*! @addtogroup skoops
+ @{ */
+
+/*!
+ * Initialize a Secret Key Object.
+ *
+ * This function or #fsl_shw_sko_init_pf_key() must be called before performing
+ * any other operation with the Object.
+ *
+ * @param key_info The Secret Key Object to be initialized.
+ * @param algorithm DES, AES, etc.
+ *
+ */
+void fsl_shw_sko_init(fsl_shw_sko_t * key_info, fsl_shw_key_alg_t algorithm);
+
+/*!
+ * Initialize a Secret Key Object to use a Platform Key register.
+ *
+ * This function or #fsl_shw_sko_init() must be called before performing any
+ * other operation with the Object. #fsl_shw_sko_set_key() does not work on
+ * a key object initialized in this way.
+ *
+ * If this function is used to initialize the key object, but no key is
+ * established with the key object, then the object will refer strictly to the
+ * key value specified by the @c pf_key selection.
+ *
+ * If the pf key is #FSL_SHW_PF_KEY_PRG or #FSL_SHW_PF_KEY_IIM_PRG, then the
+ * key object may be used with #fsl_shw_establish_key() to change the Program
+ * Key value. When the pf key is neither #FSL_SHW_PF_KEY_PRG nor
+ * #FSL_SHW_PF_KEY_IIM_PRG, it is an error to call #fsl_shw_establish_key().
+ *
+ * @param key_info The Secret Key Object to be initialized.
+ * @param algorithm DES, AES, etc.
+ * @param pf_key Which platform key is referenced.
+ */
+void fsl_shw_sko_init_pf_key(fsl_shw_sko_t * key_info,
+ fsl_shw_key_alg_t algorithm,
+ fsl_shw_pf_key_t pf_key);
+
+/*!
+ * Store a cleartext key in the key object.
+ *
+ * This has the side effect of setting the #FSL_SKO_KEY_PRESENT flag. It should
+ * not be used if there is a key established with the key object. If there is,
+ * a call to #fsl_shw_release_key() should be made first.
+ *
+ * @param key_object A variable of type #fsl_shw_sko_t.
+ * @param key A pointer to the beginning of the key.
+ * @param key_length The length, in octets, of the key. The value should be
+ * appropriate to the key size supported by the algorithm.
+ * 64 octets is the absolute maximum value allowed for this
+ * call.
+ */
+void fsl_shw_sko_set_key(fsl_shw_sko_t * key_object,
+ const uint8_t * key, uint16_t key_length);
+
+/*!
+ * Set a size for the key.
+ *
+ * This function would normally be used when the user wants the key to be
+ * generated from a random source.
+ *
+ * @param key_object A variable of type #fsl_shw_sko_t.
+ * @param key_length The length, in octets, of the key. The value should be
+ * appropriate to the key size supported by the algorithm.
+ * 64 octets is the absolute maximum value allowed for this
+ * call.
+ */
+void fsl_shw_sko_set_key_length(fsl_shw_sko_t * key_object,
+ uint16_t key_length);
+
+/*!
+ * Set the User ID associated with the key.
+ *
+ * @param key_object A variable of type #fsl_shw_sko_t.
+ * @param userid The User ID to identify authorized users of the key.
+ */
+void fsl_shw_sko_set_user_id(fsl_shw_sko_t * key_object, key_userid_t userid);
+
+/*!
+ * Set the keystore that the key will be stored in.
+ *
+ * @param key_object A variable of type #fsl_shw_sko_t.
+ * @param keystore The keystore to place the key in. This is a variable of
+ * type #fsl_shw_kso_t.
+ */
+void fsl_shw_sko_set_keystore(fsl_shw_sko_t * key_object,
+ fsl_shw_kso_t * keystore);
+
+/*!
+ * Set the establish key handle into a key object.
+ *
+ * The @a userid field will be used to validate the access to the unwrapped
+ * key. This feature is not available for all platforms, nor for all
+ * algorithms and modes.
+ *
+ * The #FSL_SKO_KEY_ESTABLISHED will be set (and the #FSL_SKO_KEY_PRESENT
+ * flag will be cleared).
+ *
+ * @param key_object A variable of type #fsl_shw_sko_t.
+ * @param userid The User ID to verify this user is an authorized user of
+ * the key.
+ * @param handle A @a handle from #fsl_shw_sko_get_established_info.
+ */
+void fsl_shw_sko_set_established_info(fsl_shw_sko_t * key_object,
+ key_userid_t userid, uint32_t handle);
+
+/*!
+ * Extract the algorithm from a key object.
+ *
+ * @param key_info The Key Object to be queried.
+ * @param[out] algorithm A pointer to the location to store the algorithm.
+ */
+void fsl_shw_sko_get_algorithm(const fsl_shw_sko_t * key_info,
+ fsl_shw_key_alg_t * algorithm);
+
+/*!
+ * Retrieve the cleartext key from a key object that is stored in a user
+ * keystore.
+ *
+ * @param skobject The Key Object to be queried.
+ * @param[out] skkey A pointer to the location to store the key. NULL
+ * if the key is not stored in a user keystore.
+ */
+void fsl_shw_sko_get_key(const fsl_shw_sko_t * skobject, void *skkey);
+
+/*!
+ * Retrieve the established-key handle from a key object.
+ *
+ * @param key_object A variable of type #fsl_shw_sko_t.
+ * @param handle The location to store the @a handle of the unwrapped
+ * key.
+ */
+void fsl_shw_sko_get_established_info(fsl_shw_sko_t * key_object,
+ uint32_t * handle);
+
+/*!
+ * Determine the size of a wrapped key based upon the cleartext key's length.
+ *
+ * This function can be used to calculate the number of octets that
+ * #fsl_shw_extract_key() will write into the location at @a covered_key.
+ *
+ * If zero is returned at @a length, this means that the key length in
+ * @a key_info is not supported.
+ *
+ * @param key_info Information about a key to be wrapped.
+ * @param length Location to store the length of a wrapped
+ * version of the key in @a key_info.
+ */
+void fsl_shw_sko_calculate_wrapped_size(const fsl_shw_sko_t * key_info,
+ uint32_t * length);
+
+/*!
+ * Set some flags in the key object.
+ *
+ * Turns on the flags specified in @a flags. Other flags are untouched.
+ *
+ * @param key_object A variable of type #fsl_shw_sko_t.
+ * @param flags (One or more) ORed members of #fsl_shw_key_flags_t which
+ * are to be set.
+ */
+void fsl_shw_sko_set_flags(fsl_shw_sko_t * key_object, uint32_t flags);
+
+/*!
+ * Clear some flags in the key object.
+ *
+ * Turns off the flags specified in @a flags. Other flags are untouched.
+ *
+ * @param key_object A variable of type #fsl_shw_sko_t.
+ * @param flags (One or more) ORed members of #fsl_shw_key_flags_t which
+ * are to be reset.
+ */
+void fsl_shw_sko_clear_flags(fsl_shw_sko_t * key_object, uint32_t flags);
+
+ /*! @} *//* end skoops */
+
+/*****************************************************************************/
+
+/*! @addtogroup hcops
+ @{ */
+
+/*****************************************************************************/
+/* REQ-S2LRD-PINTFC-API-BASIC-HASH-004 - partially */
+/*!
+ * Initialize a Hash Context Object.
+ *
+ * This function must be called before performing any other operation with the
+ * Object. It sets the current message length and hash algorithm in the hash
+ * context object.
+ *
+ * @param hash_ctx The hash context to operate upon.
+ * @param algorithm The hash algorithm to be used (#FSL_HASH_ALG_MD5,
+ * #FSL_HASH_ALG_SHA256, etc).
+ *
+ */
+void fsl_shw_hco_init(fsl_shw_hco_t * hash_ctx, fsl_shw_hash_alg_t algorithm);
+
+/*****************************************************************************/
+/* REQ-S2LRD-PINTFC-API-BASIC-HASH-001 */
+/* REQ-S2LRD-PINTFC-API-BASIC-HASH-002 */
+/*!
+ * Get the current hash value and message length from the hash context object.
+ *
+ * The algorithm must have already been specified. See #fsl_shw_hco_init().
+ *
+ * @param hash_ctx The hash context to query.
+ * @param[out] digest Pointer to the location of @a length octets where to
+ * store a copy of the current value of the digest.
+ * @param length Number of octets of hash value to copy.
+ * @param[out] msg_length Pointer to the location to store the number of octets
+ * already hashed.
+ */
+void fsl_shw_hco_get_digest(const fsl_shw_hco_t * hash_ctx, uint8_t * digest,
+ uint8_t length, uint32_t * msg_length);
+
+/*****************************************************************************/
+/* REQ-S2LRD-PINTFC-API-BASIC-HASH-002 - partially */
+/*!
+ * Get the hash algorithm from the hash context object.
+ *
+ * @param hash_ctx The hash context to query.
+ * @param[out] algorithm Pointer to where the algorithm is to be stored.
+ */
+void fsl_shw_hco_get_info(const fsl_shw_hco_t * hash_ctx,
+ fsl_shw_hash_alg_t * algorithm);
+
+/*****************************************************************************/
+/* REQ-S2LRD-PINTFC-API-BASIC-HASH-003 */
+/* REQ-S2LRD-PINTFC-API-BASIC-HASH-004 */
+/*!
+ * Set the current hash value and message length in the hash context object.
+ *
+ * The algorithm must have already been specified. See #fsl_shw_hco_init().
+ *
+ * @param hash_ctx The hash context to operate upon.
+ * @param context Pointer to buffer of appropriate length to copy into
+ * the hash context object.
+ * @param msg_length The number of octets of the message which have
+ * already been hashed.
+ *
+ */
+void fsl_shw_hco_set_digest(fsl_shw_hco_t * hash_ctx, const uint8_t * context,
+ uint32_t msg_length);
+
+/*!
+ * Set flags in a Hash Context Object.
+ *
+ * Turns on the flags specified in @a flags. Other flags are untouched.
+ *
+ * @param hash_ctx The hash context to be operated on.
+ * @param flags The flags to be set in the context. These can be ORed
+ * members of #fsl_shw_hash_ctx_flags_t.
+ */
+void fsl_shw_hco_set_flags(fsl_shw_hco_t * hash_ctx, uint32_t flags);
+
+/*!
+ * Clear flags in a Hash Context Object.
+ *
+ * Turns off the flags specified in @a flags. Other flags are untouched.
+ *
+ * @param hash_ctx The hash context to be operated on.
+ * @param flags The flags to be reset in the context. These can be ORed
+ * members of #fsl_shw_hash_ctx_flags_t.
+ */
+void fsl_shw_hco_clear_flags(fsl_shw_hco_t * hash_ctx, uint32_t flags);
+
+ /*! @} *//* end hcops */
+
+/*****************************************************************************/
+
+/*! @addtogroup hmcops
+ @{ */
+
+/*!
+ * Initialize an HMAC Context Object.
+ *
+ * This function must be called before performing any other operation with the
+ * Object. It sets the current message length and hash algorithm in the HMAC
+ * context object.
+ *
+ * @param hmac_ctx The HMAC context to operate upon.
+ * @param algorithm The hash algorithm to be used (#FSL_HASH_ALG_MD5,
+ * #FSL_HASH_ALG_SHA256, etc).
+ *
+ */
+void fsl_shw_hmco_init(fsl_shw_hmco_t * hmac_ctx, fsl_shw_hash_alg_t algorithm);
+
+/*!
+ * Set flags in an HMAC Context Object.
+ *
+ * Turns on the flags specified in @a flags. Other flags are untouched.
+ *
+ * @param hmac_ctx The HMAC context to be operated on.
+ * @param flags The flags to be set in the context. These can be ORed
+ * members of #fsl_shw_hmac_ctx_flags_t.
+ */
+void fsl_shw_hmco_set_flags(fsl_shw_hmco_t * hmac_ctx, uint32_t flags);
+
+/*!
+ * Clear flags in an HMAC Context Object.
+ *
+ * Turns off the flags specified in @a flags. Other flags are untouched.
+ *
+ * @param hmac_ctx The HMAC context to be operated on.
+ * @param flags The flags to be reset in the context. These can be ORed
+ * members of #fsl_shw_hmac_ctx_flags_t.
+ */
+void fsl_shw_hmco_clear_flags(fsl_shw_hmco_t * hmac_ctx, uint32_t flags);
+
+/*! @} */
+
+/*****************************************************************************/
+
+/*! @addtogroup sccops
+ @{ */
+
+/*!
+ * Initialize a Symmetric Cipher Context Object.
+ *
+ * This function must be called before performing any other operation with the
+ * Object. This will set the @a mode and @a algorithm and initialize the
+ * Object.
+ *
+ * @param sym_ctx The context object to operate on.
+ * @param algorithm The cipher algorithm this context will be used with.
+ * @param mode #FSL_SYM_MODE_CBC, #FSL_SYM_MODE_ECB, etc.
+ *
+ */
+void fsl_shw_scco_init(fsl_shw_scco_t * sym_ctx,
+ fsl_shw_key_alg_t algorithm, fsl_shw_sym_mode_t mode);
+
+/*!
+ * Set the flags for a Symmetric Cipher Context.
+ *
+ * Turns on the flags specified in @a flags. Other flags are untouched.
+ *
+ * @param sym_ctx The context object to operate on.
+ * @param flags The flags to reset (one or more values from
+ * #fsl_shw_sym_ctx_flags_t ORed together).
+ *
+ */
+void fsl_shw_scco_set_flags(fsl_shw_scco_t * sym_ctx, uint32_t flags);
+
+/*!
+ * Clear some flags in a Symmetric Cipher Context Object.
+ *
+ * Turns off the flags specified in @a flags. Other flags are untouched.
+ *
+ * @param sym_ctx The context object to operate on.
+ * @param flags The flags to reset (one or more values from
+ * #fsl_shw_sym_ctx_flags_t ORed together).
+ *
+ */
+void fsl_shw_scco_clear_flags(fsl_shw_scco_t * sym_ctx, uint32_t flags);
+
+/*!
+ * Set the Context (IV) for a Symmetric Cipher Context.
+ *
+ * This is to set the context/IV for #FSL_SYM_MODE_CBC mode, or to set the
+ * context (the S-Box and pointers) for ARC4. The full context size will
+ * be copied.
+ *
+ * @param sym_ctx The context object to operate on.
+ * @param context A pointer to the buffer which contains the context.
+ *
+ */
+void fsl_shw_scco_set_context(fsl_shw_scco_t * sym_ctx, uint8_t * context);
+
+/*!
+ * Get the Context for a Symmetric Cipher Context.
+ *
+ * This is to retrieve the context/IV for #FSL_SYM_MODE_CBC mode, or to
+ * retrieve context (the S-Box and pointers) for ARC4. The full context
+ * will be copied.
+ *
+ * @param sym_ctx The context object to operate on.
+ * @param[out] context Pointer to location where context will be stored.
+ */
+void fsl_shw_scco_get_context(const fsl_shw_scco_t * sym_ctx,
+ uint8_t * context);
+
+/*!
+ * Set the Counter Value for a Symmetric Cipher Context.
+ *
+ * This will set the Counter Value for CTR mode.
+ *
+ * @param sym_ctx The context object to operate on.
+ * @param counter The starting counter value. The number of octets.
+ * copied will be the block size for the algorithm.
+ * @param modulus The modulus for controlling the incrementing of the counter.
+ *
+ */
+void fsl_shw_scco_set_counter_info(fsl_shw_scco_t * sym_ctx,
+ const uint8_t * counter,
+ fsl_shw_ctr_mod_t modulus);
+
+/*!
+ * Get the Counter Value for a Symmetric Cipher Context.
+ *
+ * This will retrieve the Counter Value is for CTR mode.
+ *
+ * @param sym_ctx The context object to query.
+ * @param[out] counter Pointer to location to store the current counter
+ * value. The number of octets copied will be the
+ * block size for the algorithm.
+ * @param[out] modulus Pointer to location to store the modulus.
+ *
+ */
+void fsl_shw_scco_get_counter_info(const fsl_shw_scco_t * sym_ctx,
+ uint8_t * counter,
+ fsl_shw_ctr_mod_t * modulus);
+
+ /*! @} *//* end sccops */
+
+/*****************************************************************************/
+
+/*! @addtogroup accoops
+ @{ */
+
+/*!
+ * Initialize a Authentication-Cipher Context.
+ *
+ * @param auth_object Pointer to object to operate on.
+ * @param mode The mode for this object (only #FSL_ACC_MODE_CCM
+ * supported).
+ */
+void fsl_shw_acco_init(fsl_shw_acco_t * auth_object, fsl_shw_acc_mode_t mode);
+
+/*!
+ * Set the flags for a Authentication-Cipher Context.
+ *
+ * Turns on the flags specified in @a flags. Other flags are untouched.
+ *
+ * @param auth_object Pointer to object to operate on.
+ * @param flags The flags to set (one or more from
+ * #fsl_shw_auth_ctx_flags_t ORed together).
+ *
+ */
+void fsl_shw_acco_set_flags(fsl_shw_acco_t * auth_object, uint32_t flags);
+
+/*!
+ * Clear some flags in a Authentication-Cipher Context Object.
+ *
+ * Turns off the flags specified in @a flags. Other flags are untouched.
+ *
+ * @param auth_object Pointer to object to operate on.
+ * @param flags The flags to reset (one or more from
+ * #fsl_shw_auth_ctx_flags_t ORed together).
+ *
+ */
+void fsl_shw_acco_clear_flags(fsl_shw_acco_t * auth_object, uint32_t flags);
+
+/*!
+ * Set up the Authentication-Cipher Object for CCM mode.
+ *
+ * This will set the @a auth_object for CCM mode and save the @a ctr,
+ * and @a mac_length. This function can be called instead of
+ * #fsl_shw_acco_init().
+ *
+ * The parameter @a ctr is Counter Block 0, (counter value 0), which is for the
+ * MAC.
+ *
+ * @param auth_object Pointer to object to operate on.
+ * @param algorithm Cipher algorithm. Only AES is supported.
+ * @param ctr The initial counter value.
+ * @param mac_length The number of octets used for the MAC. Valid values are
+ * 4, 6, 8, 10, 12, 14, and 16.
+ */
+void fsl_shw_acco_set_ccm(fsl_shw_acco_t * auth_object,
+ fsl_shw_key_alg_t algorithm,
+ const uint8_t * ctr, uint8_t mac_length);
+
+/*!
+ * Format the First Block (IV) & Initial Counter Value per NIST CCM.
+ *
+ * This function will also set the IV and CTR values per Appendix A of NIST
+ * Special Publication 800-38C (May 2004). It will also perform the
+ * #fsl_shw_acco_set_ccm() operation with information derived from this set of
+ * parameters.
+ *
+ * Note this function assumes the algorithm is AES. It initializes the
+ * @a auth_object by setting the mode to #FSL_ACC_MODE_CCM and setting the
+ * flags to be #FSL_ACCO_NIST_CCM.
+ *
+ * @param auth_object Pointer to object to operate on.
+ * @param t_length The number of octets used for the MAC. Valid values are
+ * 4, 6, 8, 10, 12, 14, and 16.
+ * @param ad_length Number of octets of Associated Data (may be zero).
+ * @param q_length A value for the size of the length of @a q field. Valid
+ * values are 1-8.
+ * @param n The Nonce (packet number or other changing value). Must
+ * be (15 - @a q_length) octets long.
+ * @param q The value of Q (size of the payload in octets).
+ *
+ */
+void fsl_shw_ccm_nist_format_ctr_and_iv(fsl_shw_acco_t * auth_object,
+ uint8_t t_length,
+ uint32_t ad_length,
+ uint8_t q_length,
+ const uint8_t * n, uint32_t q);
+
+/*!
+ * Update the First Block (IV) & Initial Counter Value per NIST CCM.
+ *
+ * This function will set the IV and CTR values per Appendix A of NIST Special
+ * Publication 800-38C (May 2004).
+ *
+ * Note this function assumes that #fsl_shw_ccm_nist_format_ctr_and_iv() has
+ * previously been called on the @a auth_object.
+ *
+ * @param auth_object Pointer to object to operate on.
+ * @param n The Nonce (packet number or other changing value). Must
+ * be (15 - @a q_length) octets long.
+ * @param q The value of Q (size of the payload in octets).
+ *
+ */
+void fsl_shw_ccm_nist_update_ctr_and_iv(fsl_shw_acco_t * auth_object,
+ const uint8_t * n, uint32_t q);
+
+ /* @} *//* accoops */
+
+/******************************************************************************
+ * Library functions
+ *****************************************************************************/
+
+/*! @addtogroup miscfuns
+ @{ */
+
+/* REQ-S2LRD-PINTFC-API-GEN-003 */
+/*!
+ * Determine the hardware security capabilities of this platform.
+ *
+ * Though a user context object is passed into this function, it will always
+ * act in a non-blocking manner.
+ *
+ * @param user_ctx The user context which will be used for the query.
+ *
+ * @return A pointer to the capabilities object.
+ */
+extern fsl_shw_pco_t *fsl_shw_get_capabilities(fsl_shw_uco_t * user_ctx);
+
+/* REQ-S2LRD-PINTFC-API-GEN-004 */
+/*!
+ * Create an association between the user and the provider of the API.
+ *
+ * @param user_ctx The user context which will be used for this association.
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+extern fsl_shw_return_t fsl_shw_register_user(fsl_shw_uco_t * user_ctx);
+
+/* REQ-S2LRD-PINTFC-API-GEN-005 */
+/*!
+ * Destroy the association between the user and the provider of the API.
+ *
+ * @param user_ctx The user context which is no longer needed.
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+extern fsl_shw_return_t fsl_shw_deregister_user(fsl_shw_uco_t * user_ctx);
+
+/* REQ-S2LRD-PINTFC-API-GEN-006 */
+/*!
+ * Retrieve results from earlier operations.
+ *
+ * @param user_ctx The user's context.
+ * @param result_size The number of array elements of @a results.
+ * @param[in,out] results Pointer to first of the (array of) locations to
+ * store results.
+ * @param[out] result_count Pointer to store the number of results which
+ * were returned.
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+extern fsl_shw_return_t fsl_shw_get_results(fsl_shw_uco_t * user_ctx,
+ uint16_t result_size,
+ fsl_shw_result_t results[],
+ uint16_t * result_count);
+
+/*!
+ * Allocate a block of secure memory
+ *
+ * @param user_ctx User context
+ * @param size Memory size (octets). Note: currently only
+ * supports only single-partition sized blocks.
+ * @param UMID User Mode ID to use when registering the
+ * partition.
+ * @param permissions Permissions to initialize the partition with.
+ * Can be made by ORing flags from the
+ * #fsl_shw_permission_t.
+ *
+ * @return Address of the allocated memory. NULL if the
+ * call was not successful.
+ */
+extern void *fsl_shw_smalloc(fsl_shw_uco_t * user_ctx,
+ uint32_t size,
+ const uint8_t * UMID, uint32_t permissions);
+
+/*!
+ * Free a block of secure memory that was allocated with #fsl_shw_smalloc
+ *
+ * @param user_ctx User context
+ * @param address Address of the block of secure memory to be
+ * released.
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+extern fsl_shw_return_t fsl_shw_sfree(fsl_shw_uco_t * user_ctx, void *address);
+
+/*!
+ * Diminish the permissions of a block of secure memory. Note that permissions
+ * can only be revoked.
+ *
+ * @param user_ctx User context
+ * @param address Base address of the secure memory to work with
+ * @param permissions Permissions to initialize the partition with.
+ * Can be made by ORing flags from the
+ * #fsl_shw_permission_t.
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+extern fsl_shw_return_t fsl_shw_diminish_perms(fsl_shw_uco_t * user_ctx,
+ void *address,
+ uint32_t permissions);
+
+/*!
+ * @brief Encrypt a region of secure memory using the hardware secret key
+ *
+ * @param user_ctx User context
+ * @param partition_base Base address of the partition
+ * @param offset_bytes Offset of data from the partition base
+ * @param byte_count Length of the data to encrypt
+ * @param black_data Location to store the encrypted data
+ * @param IV IV to use for the encryption routine
+ * @param cypher_mode Cyphering mode to use, specified by type
+ * #fsl_shw_cypher_mode_t
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+extern fsl_shw_return_t
+do_scc_encrypt_region(fsl_shw_uco_t * user_ctx,
+ void *partition_base, uint32_t offset_bytes,
+ uint32_t byte_count, uint8_t * black_data,
+ uint32_t * IV, fsl_shw_cypher_mode_t cypher_mode);
+
+/*!
+ * @brief Decrypt a region of secure memory using the hardware secret key
+ *
+ * @param user_ctx User context
+ * @param partition_base Base address of the partition
+ * @param offset_bytes Offset of data from the partition base
+ * @param byte_count Length of the data to encrypt
+ * @param black_data Location to store the encrypted data
+ * @param IV IV to use for the encryption routine
+ * @param cypher_mode Cyphering mode to use, specified by type
+ * #fsl_shw_cypher_mode_t
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+extern fsl_shw_return_t
+do_scc_decrypt_region(fsl_shw_uco_t * user_ctx,
+ void *partition_base, uint32_t offset_bytes,
+ uint32_t byte_count, const uint8_t * black_data,
+ uint32_t * IV, fsl_shw_cypher_mode_t cypher_mode);
+
+ /*! @} *//* miscfuns */
+
+/*! @addtogroup opfuns
+ @{ */
+
+/* REQ-S2LRD-PINTFC-API-BASIC-SYM-002 */
+/* PINTFC-API-BASIC-SYM-ARC4-001 */
+/* PINTFC-API-BASIC-SYM-ARC4-002 */
+/*!
+ * Encrypt a stream of data with a symmetric-key algorithm.
+ *
+ * In ARC4, and also in #FSL_SYM_MODE_CBC and #FSL_SYM_MODE_CTR modes, the
+ * flags of the @a sym_ctx object will control part of the operation of this
+ * function. The #FSL_SYM_CTX_INIT flag means that there is no context info in
+ * the object. The #FSL_SYM_CTX_LOAD means to use information in the
+ * @a sym_ctx at the start of the operation, and the #FSL_SYM_CTX_SAVE flag
+ * means to update the object's context information after the operation has
+ * been performed.
+ *
+ * All of the data for an operation can be run through at once using the
+ * #FSL_SYM_CTX_INIT or #FSL_SYM_CTX_LOAD flags, as appropriate, and then using
+ * a @a length for the whole of the data.
+ *
+ * If a #FSL_SYM_CTX_SAVE flag were added, an additional call to the function
+ * would "pick up" where the previous call left off, allowing the user to
+ * perform the larger function in smaller steps.
+ *
+ * In #FSL_SYM_MODE_CBC and #FSL_SYM_MODE_ECB modes, the @a length must always
+ * be a multiple of the block size for the algorithm being used. For proper
+ * operation in #FSL_SYM_MODE_CTR mode, the @a length must be a multiple of the
+ * block size until the last operation on the total octet stream.
+ *
+ * Some users of ARC4 may want to compute the context (S-Box and pointers) from
+ * the key before any data is available. This may be done by running this
+ * function with a @a length of zero, with the init & save flags flags on in
+ * the @a sym_ctx. Subsequent operations would then run as normal with the
+ * load and save flags. Note that they key object is still required.
+ *
+ * @param user_ctx A user context from #fsl_shw_register_user().
+ * @param key_info Key and algorithm being used for this operation.
+ * @param[in,out] sym_ctx Info on cipher mode, state of the cipher.
+ * @param length Length, in octets, of the pt (and ct).
+ * @param pt pointer to plaintext to be encrypted.
+ * @param[out] ct pointer to where to store the resulting ciphertext.
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ *
+ */
+extern fsl_shw_return_t fsl_shw_symmetric_encrypt(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info,
+ fsl_shw_scco_t * sym_ctx,
+ uint32_t length,
+ const uint8_t * pt,
+ uint8_t * ct);
+
+/* PINTFC-API-BASIC-SYM-002 */
+/* PINTFC-API-BASIC-SYM-ARC4-001 */
+/* PINTFC-API-BASIC-SYM-ARC4-002 */
+/*!
+ * Decrypt a stream of data with a symmetric-key algorithm.
+ *
+ * In ARC4, and also in #FSL_SYM_MODE_CBC and #FSL_SYM_MODE_CTR modes, the
+ * flags of the @a sym_ctx object will control part of the operation of this
+ * function. The #FSL_SYM_CTX_INIT flag means that there is no context info in
+ * the object. The #FSL_SYM_CTX_LOAD means to use information in the
+ * @a sym_ctx at the start of the operation, and the #FSL_SYM_CTX_SAVE flag
+ * means to update the object's context information after the operation has
+ * been performed.
+ *
+ * All of the data for an operation can be run through at once using the
+ * #FSL_SYM_CTX_INIT or #FSL_SYM_CTX_LOAD flags, as appropriate, and then using
+ * a @a length for the whole of the data.
+ *
+ * If a #FSL_SYM_CTX_SAVE flag were added, an additional call to the function
+ * would "pick up" where the previous call left off, allowing the user to
+ * perform the larger function in smaller steps.
+ *
+ * In #FSL_SYM_MODE_CBC and #FSL_SYM_MODE_ECB modes, the @a length must always
+ * be a multiple of the block size for the algorithm being used. For proper
+ * operation in #FSL_SYM_MODE_CTR mode, the @a length must be a multiple of the
+ * block size until the last operation on the total octet stream.
+ *
+ * Some users of ARC4 may want to compute the context (S-Box and pointers) from
+ * the key before any data is available. This may be done by running this
+ * function with a @a length of zero, with the #FSL_SYM_CTX_INIT &
+ * #FSL_SYM_CTX_SAVE flags on in the @a sym_ctx. Subsequent operations would
+ * then run as normal with the load & save flags. Note that they key object is
+ * still required.
+ *
+ * @param user_ctx A user context from #fsl_shw_register_user().
+ * @param key_info The key and algorithm being used in this operation.
+ * @param[in,out] sym_ctx Info on cipher mode, state of the cipher.
+ * @param length Length, in octets, of the ct (and pt).
+ * @param ct pointer to ciphertext to be decrypted.
+ * @param[out] pt pointer to where to store the resulting plaintext.
+ *
+ * @return A return code of type #fsl_shw_return_t
+ *
+ */
+extern fsl_shw_return_t fsl_shw_symmetric_decrypt(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info,
+ fsl_shw_scco_t * sym_ctx,
+ uint32_t length,
+ const uint8_t * ct,
+ uint8_t * pt);
+
+/* REQ-S2LRD-PINTFC-API-BASIC-HASH-005 */
+/*!
+ * Hash a stream of data with a cryptographic hash algorithm.
+ *
+ * The flags in the @a hash_ctx control the operation of this function.
+ *
+ * Hashing functions work on 64 octets of message at a time. Therefore, when
+ * any partial hashing of a long message is performed, the message @a length of
+ * each segment must be a multiple of 64. When ready to
+ * #FSL_HASH_FLAGS_FINALIZE the hash, the @a length may be any value.
+ *
+ * With the #FSL_HASH_FLAGS_INIT and #FSL_HASH_FLAGS_FINALIZE flags on, a
+ * one-shot complete hash, including padding, will be performed. The @a length
+ * may be any value.
+ *
+ * The first octets of a data stream can be hashed by setting the
+ * #FSL_HASH_FLAGS_INIT and #FSL_HASH_FLAGS_SAVE flags. The @a length must be
+ * a multiple of 64.
+ *
+ * The flag #FSL_HASH_FLAGS_LOAD is used to load a context previously saved by
+ * #FSL_HASH_FLAGS_SAVE. The two in combination will allow a (multiple-of-64
+ * octets) 'middle sequence' of the data stream to be hashed with the
+ * beginning. The @a length must again be a multiple of 64.
+ *
+ * Since the flag #FSL_HASH_FLAGS_LOAD is used to load a context previously
+ * saved by #FSL_HASH_FLAGS_SAVE, the #FSL_HASH_FLAGS_LOAD and
+ * #FSL_HASH_FLAGS_FINALIZE flags, used together, can be used to finish the
+ * stream. The @a length may be any value.
+ *
+ * If the user program wants to do the padding for the hash, it can leave off
+ * the #FSL_HASH_FLAGS_FINALIZE flag. The @a length must then be a multiple of
+ * 64 octets.
+ *
+ * @param user_ctx A user context from #fsl_shw_register_user().
+ * @param[in,out] hash_ctx Hashing algorithm and state of the cipher.
+ * @param msg Pointer to the data to be hashed.
+ * @param length Length, in octets, of the @a msg.
+ * @param[out] result If not null, pointer to where to store the hash
+ * digest.
+ * @param result_len Number of octets to store in @a result.
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+extern fsl_shw_return_t fsl_shw_hash(fsl_shw_uco_t * user_ctx,
+ fsl_shw_hco_t * hash_ctx,
+ const uint8_t * msg,
+ uint32_t length,
+ uint8_t * result, uint32_t result_len);
+
+/* REQ-S2LRD-PINTFC-API-BASIC-HMAC-001 */
+/*!
+ * Precompute the Key hashes for an HMAC operation.
+ *
+ * This function may be used to calculate the inner and outer precomputes,
+ * which are the hash contexts resulting from hashing the XORed key for the
+ * 'inner hash' and the 'outer hash', respectively, of the HMAC function.
+ *
+ * After execution of this function, the @a hmac_ctx will contain the
+ * precomputed inner and outer contexts, so that they may be used by
+ * #fsl_shw_hmac(). The flags of @a hmac_ctx will be updated with
+ * #FSL_HMAC_FLAGS_PRECOMPUTES_PRESENT to mark their presence. In addition, the
+ * #FSL_HMAC_FLAGS_INIT flag will be set.
+ *
+ * @param user_ctx A user context from #fsl_shw_register_user().
+ * @param key_info The key being used in this operation. Key must be
+ * 1 to 64 octets long.
+ * @param[in,out] hmac_ctx The context which controls, by its flags and
+ * algorithm, the operation of this function.
+ * @return A return code of type #fsl_shw_return_t.
+ */
+extern fsl_shw_return_t fsl_shw_hmac_precompute(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info,
+ fsl_shw_hmco_t * hmac_ctx);
+
+/* REQ-S2LRD-PINTFC-API-BASIC-HMAC-002 */
+/*!
+ * Continue, finalize, or one-shot an HMAC operation.
+ *
+ * There are a number of ways to use this function. The flags in the
+ * @a hmac_ctx object will determine what operations occur.
+ *
+ * If #FSL_HMAC_FLAGS_INIT is set, then the hash will be started either from
+ * the @a key_info, or from the precomputed inner hash value in the
+ * @a hmac_ctx, depending on the value of #FSL_HMAC_FLAGS_PRECOMPUTES_PRESENT.
+ *
+ * If, instead, #FSL_HMAC_FLAGS_LOAD is set, then the hash will be continued
+ * from the ongoing inner hash computation in the @a hmac_ctx.
+ *
+ * If #FSL_HMAC_FLAGS_FINALIZE are set, then the @a msg will be padded, hashed,
+ * the outer hash will be performed, and the @a result will be generated.
+ *
+ * If the #FSL_HMAC_FLAGS_SAVE flag is set, then the (ongoing or final) digest
+ * value will be stored in the ongoing inner hash computation field of the @a
+ * hmac_ctx.
+ *
+ * @param user_ctx A user context from #fsl_shw_register_user().
+ * @param key_info If #FSL_HMAC_FLAGS_INIT is set in the @a hmac_ctx,
+ * this is the key being used in this operation, and the
+ * IPAD. If #FSL_HMAC_FLAGS_INIT is set in the @a
+ * hmac_ctx and @a key_info is NULL, then
+ * #fsl_shw_hmac_precompute() has been used to populate
+ * the @a inner_precompute and @a outer_precompute
+ * contexts. If #FSL_HMAC_FLAGS_INIT is not set, this
+ * parameter is ignored.
+
+ * @param[in,out] hmac_ctx The context which controls, by its flags and
+ * algorithm, the operation of this function.
+ * @param msg Pointer to the message to be hashed.
+ * @param length Length, in octets, of the @a msg.
+ * @param[out] result Pointer, of @a result_len octets, to where to
+ * store the HMAC.
+ * @param result_len Length of @a result buffer.
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+extern fsl_shw_return_t fsl_shw_hmac(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info,
+ fsl_shw_hmco_t * hmac_ctx,
+ const uint8_t * msg,
+ uint32_t length,
+ uint8_t * result, uint32_t result_len);
+
+/* REQ-S2LRD-PINTFC-API-BASIC-RNG-002 */
+/*!
+ * Get random data.
+ *
+ * @param user_ctx A user context from #fsl_shw_register_user().
+ * @param length The number of octets of @a data being requested.
+ * @param[out] data A pointer to a location of @a length octets to where
+ * random data will be returned.
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+extern fsl_shw_return_t fsl_shw_get_random(fsl_shw_uco_t * user_ctx,
+ uint32_t length, uint8_t * data);
+
+/* REQ-S2LRD-PINTFC-API-BASIC-RNG-002 */
+/*!
+ * Add entropy to random number generator.
+ *
+ * @param user_ctx A user context from #fsl_shw_register_user().
+ * @param length Number of bytes at @a data.
+ * @param data Entropy to add to random number generator.
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+extern fsl_shw_return_t fsl_shw_add_entropy(fsl_shw_uco_t * user_ctx,
+ uint32_t length, uint8_t * data);
+
+/*!
+ * Perform Generation-Encryption by doing a Cipher and a Hash.
+ *
+ * Generate the authentication value @a auth_value as well as encrypt the @a
+ * payload into @a ct (the ciphertext). This is a one-shot function, so all of
+ * the @a auth_data and the total message @a payload must passed in one call.
+ * This also means that the flags in the @a auth_ctx must be #FSL_ACCO_CTX_INIT
+ * and #FSL_ACCO_CTX_FINALIZE.
+ *
+ * @param user_ctx A user context from #fsl_shw_register_user().
+ * @param auth_ctx Controlling object for Authenticate-decrypt.
+ * @param cipher_key_info The key being used for the cipher part of this
+ * operation. In CCM mode, this key is used for
+ * both parts.
+ * @param auth_key_info The key being used for the authentication part
+ * of this operation. In CCM mode, this key is
+ * ignored and may be NULL.
+ * @param auth_data_length Length, in octets, of @a auth_data.
+ * @param auth_data Data to be authenticated but not encrypted.
+ * @param payload_length Length, in octets, of @a payload.
+ * @param payload Pointer to the plaintext to be encrypted.
+ * @param[out] ct Pointer to the where the encrypted @a payload
+ * will be stored. Must be @a payload_length
+ * octets long.
+ * @param[out] auth_value Pointer to where the generated authentication
+ * field will be stored. Must be as many octets as
+ * indicated by MAC length in the @a function_ctx.
+ * @return A return code of type #fsl_shw_return_t.
+ */
+extern fsl_shw_return_t fsl_shw_gen_encrypt(fsl_shw_uco_t * user_ctx,
+ fsl_shw_acco_t * auth_ctx,
+ fsl_shw_sko_t * cipher_key_info,
+ fsl_shw_sko_t * auth_key_info,
+ uint32_t auth_data_length,
+ const uint8_t * auth_data,
+ uint32_t payload_length,
+ const uint8_t * payload,
+ uint8_t * ct, uint8_t * auth_value);
+
+/*!
+ * Perform Authentication-Decryption in Cipher + Hash.
+ *
+ * This function will perform a one-shot decryption of a data stream as well as
+ * authenticate the authentication value. This is a one-shot function, so all
+ * of the @a auth_data and the total message @a payload must passed in one
+ * call. This also means that the flags in the @a auth_ctx must be
+ * #FSL_ACCO_CTX_INIT and #FSL_ACCO_CTX_FINALIZE.
+ *
+ * @param user_ctx A user context from #fsl_shw_register_user().
+ * @param auth_ctx Controlling object for Authenticate-decrypt.
+ * @param cipher_key_info The key being used for the cipher part of this
+ * operation. In CCM mode, this key is used for
+ * both parts.
+ * @param auth_key_info The key being used for the authentication part
+ * of this operation. In CCM mode, this key is
+ * ignored and may be NULL.
+ * @param auth_data_length Length, in octets, of @a auth_data.
+ * @param auth_data Data to be authenticated but not decrypted.
+ * @param payload_length Length, in octets, of @a ct and @a pt.
+ * @param ct Pointer to the encrypted input stream.
+ * @param auth_value The (encrypted) authentication value which will
+ * be authenticated. This is the same data as the
+ * (output) @a auth_value argument to
+ * #fsl_shw_gen_encrypt().
+ * @param[out] payload Pointer to where the plaintext resulting from
+ * the decryption will be stored.
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+extern fsl_shw_return_t fsl_shw_auth_decrypt(fsl_shw_uco_t * user_ctx,
+ fsl_shw_acco_t * auth_ctx,
+ fsl_shw_sko_t * cipher_key_info,
+ fsl_shw_sko_t * auth_key_info,
+ uint32_t auth_data_length,
+ const uint8_t * auth_data,
+ uint32_t payload_length,
+ const uint8_t * ct,
+ const uint8_t * auth_value,
+ uint8_t * payload);
+
+/*!
+ * Establish the key in a protected location, which can be the system keystore,
+ * user keystore, or (on platforms that support it) as a Platform Key.
+ *
+ * By default, keys initialized with #fsl_shw_sko_init() will be placed into
+ * the system keystore. The user can cause the key to be established in a
+ * user keystore by first calling #fsl_shw_sko_set_keystore() on the key.
+ * Normally, keys in the system keystore can only be used for hardware
+ * encrypt or decrypt operations, however if the #FSL_SKO_KEY_SW_KEY flag is
+ * applied using #fsl_shw_sko_set_flags(), the key will be established as a
+ * software key, which can then be read out using #fsl_shw_read_key().
+ *
+ * Keys initialized with #fsl_shw_sko_init_pf_key() are established as a
+ * Platform Key. Their use is covered in @ref di_sec.
+ *
+ * This function only needs to be used when unwrapping a key, setting up a key
+ * which could be wrapped with a later call to #fsl_shw_extract_key(), or
+ * setting up a key as a Platform Key. Normal cleartext keys can simply be
+ * placed into #fsl_shw_sko_t key objects with #fsl_shw_sko_set_key() and used
+ * directly.
+ *
+ * The maximum key size supported for wrapped/unwrapped keys is 32 octets.
+ * (This is the maximum reasonable key length on Sahara - 32 octets for an HMAC
+ * key based on SHA-256.) The key size is determined by the @a key_info. The
+ * expected length of @a key can be determined by
+ * #fsl_shw_sko_calculate_wrapped_size()
+ *
+ * The protected key will not be available for use until this operation
+ * successfully completes.
+ *
+ * This feature is not available for all platforms, nor for all algorithms and
+ * modes.
+ *
+ * @param user_ctx A user context from #fsl_shw_register_user().
+ * @param[in,out] key_info The information about the key to be which will
+ * be established. In the create case, the key
+ * length must be set.
+ * @param establish_type How @a key will be interpreted to establish a
+ * key for use.
+ * @param key If @a establish_type is #FSL_KEY_WRAP_UNWRAP,
+ * this is the location of a wrapped key. If
+ * @a establish_type is #FSL_KEY_WRAP_CREATE, this
+ * parameter can be @a NULL. If @a establish_type
+ * is #FSL_KEY_WRAP_ACCEPT, this is the location
+ * of a plaintext key.
+ */
+extern fsl_shw_return_t fsl_shw_establish_key(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info,
+ fsl_shw_key_wrap_t establish_type,
+ const uint8_t * key);
+
+/*!
+ * Read the key value from a key object.
+ *
+ * Only a key marked as a software key (#FSL_SKO_KEY_SW_KEY) can be read with
+ * this call. It has no effect on the status of the key store.
+ *
+ * @param user_ctx A user context from #fsl_shw_register_user().
+ * @param key_info The referenced key.
+ * @param[out] key The location to store the key value.
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+extern fsl_shw_return_t fsl_shw_read_key(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info,
+ uint8_t * key);
+
+/*!
+ * Wrap a key and retrieve the wrapped value.
+ *
+ * A wrapped key is a key that has been cryptographically obscured. It is
+ * only able to be used with keys that have been established by
+ * #fsl_shw_establish_key().
+ *
+ * For keys established in the system or user keystore, this function will
+ * also release the key (see #fsl_shw_release_key()) so that it must be re-
+ * established before reuse. This function will not release keys that are
+ * established as a Platform Key, so a call to #fsl_shw_release_key() is
+ * necessary to release those keys.
+ *
+ * This feature is not available for all platforms, nor for all algorithms and
+ * modes.
+ *
+ * @param user_ctx A user context from #fsl_shw_register_user().
+ * @param key_info The information about the key to be deleted.
+ * @param[out] covered_key The location to store the wrapped key.
+ * (This size is based upon the maximum key size
+ * of 32 octets).
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+extern fsl_shw_return_t fsl_shw_extract_key(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info,
+ uint8_t * covered_key);
+
+/*!
+ * De-establish a key so that it can no longer be accessed.
+ *
+ * The key will need to be re-established before it can again be used.
+ *
+ * This feature is not available for all platforms, nor for all algorithms and
+ * modes.
+ *
+ * @param user_ctx A user context from #fsl_shw_register_user().
+ * @param key_info The information about the key to be deleted.
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+extern fsl_shw_return_t fsl_shw_release_key(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info);
+
+/*!
+ * Cause the hardware to create a new random key for use by the secure memory
+ * encryption hardware.
+ *
+ * Have the hardware use the secure hardware random number generator to load a
+ * new secret key into the system's Random Key register.
+ *
+ * @param user_ctx A user context from #fsl_shw_register_user().
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+extern fsl_shw_return_t fsl_shw_gen_random_pf_key(fsl_shw_uco_t * user_ctx);
+
+/*!
+ * Retrieve the detected tamper event.
+ *
+ * Note that if more than one event was detected, this routine will only ever
+ * return one of them.
+ *
+ * @param[in] user_ctx A user context from #fsl_shw_register_user().
+ * @param[out] tamperp Location to store the tamper information.
+ * @param[out] timestampp Locate to store timestamp from hardwhare when
+ * an event was detected.
+ *
+ *
+ * @return A return code of type #fsl_shw_return_t (for instance, if the platform
+ * is not in a fail state.
+ */
+extern fsl_shw_return_t fsl_shw_read_tamper_event(fsl_shw_uco_t * user_ctx,
+ fsl_shw_tamper_t * tamperp,
+ uint64_t * timestampp);
+
+/*! @} *//* opfuns */
+
+/* Insert example code into the API documentation. */
+
+/*!
+ * @example apitest.c
+ */
+
+/*!
+ * @example sym.c
+ */
+
+/*!
+ * @example rand.c
+ */
+
+/*!
+ * @example hash.c
+ */
+
+/*!
+ * @example hmac1.c
+ */
+
+/*!
+ * @example hmac2.c
+ */
+
+/*!
+ * @example gen_encrypt.c
+ */
+
+/*!
+ * @example auth_decrypt.c
+ */
+
+/*!
+ * @example wrapped_key.c
+ */
+
+/*!
+ * @example smalloc.c
+ */
+
+/*!
+ * @example user_keystore.c
+ */
+
+/*!
+ * @example dryice.c
+ */
+
+#endif /* API_DOC */
+
+#endif /* FSL_SHW_H */
diff --git a/drivers/mxc/security/sahara2/include/fsl_shw_keystore.h b/drivers/mxc/security/sahara2/include/fsl_shw_keystore.h
new file mode 100644
index 000000000000..4af6b782af6b
--- /dev/null
+++ b/drivers/mxc/security/sahara2/include/fsl_shw_keystore.h
@@ -0,0 +1,475 @@
+/*
+ * Copyright (C) 2008-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+
+#ifndef FSL_SHW_KEYSTORE_H
+#define FSL_SHW_KEYSTORE_H
+
+/*!
+ * @file fsl_shw_keystore.h
+ *
+ * @brief Definition of the User Keystore API.
+ *
+ */
+
+/*! \page user_keystore User Keystore API
+ *
+ * Definition of the User Keystore API.
+ *
+ * On platforms with multiple partitions of Secure Memory, the Keystore Object
+ * (#fsl_shw_kso_t) is provided to allow users to manage a private keystore for
+ * use in software cryptographic routines. The user can define a custom set of
+ * methods for managing their keystore, or use a default keystore handler. The
+ * keystore is established by #fsl_shw_establish_keystore(), and released by
+ * #fsl_shw_release_keystore(). The intent of this design is to make the
+ * keystore implementation as flexible as possible.
+ *
+ * See @ref keystore_api for the generic keystore API, and @ref
+ * default_keystore for the default keystore implementation.
+ *
+ */
+
+/*!
+ * @defgroup keystore_api User Keystore API
+ *
+ * Keystore API
+ *
+ * These functions define the generic keystore API, which can be used in
+ * conjunction with a keystore implementation backend to support a user
+ * keystore.
+ */
+
+/*!
+ * @defgroup default_keystore Default Keystore Implementation
+ *
+ * Default Keystore Implementation
+ *
+ * These functions define the default keystore implementation, which is used
+ * for the system keystore and for user keystores initialized by
+ * #fsl_shw_init_keystore_default(). They can be used as-is or as a reference
+ * for creating a custom keystore handler. It uses an entire Secure Memory
+ * partition, divided in to equal slots of length #KEYSTORE_SLOT_SIZE. These
+ * functions are not intended to be used directly- all user interaction with
+ * the keystore should be through the @ref keystore_api and the Wrapped Key
+ * interface.
+ *
+ * The current implementation is designed to work with both SCC and SCC2.
+ * Differences between the two versions are noted below.
+ */
+
+/*! @addtogroup keystore_api
+ @{ */
+
+#ifndef KEYSTORE_SLOT_SIZE
+/*! Size of each key slot, in octets. This sets an upper bound on the size
+ * of a key that can placed in the keystore.
+ */
+#define KEYSTORE_SLOT_SIZE 32
+#endif
+
+/*!
+ * Initialize a Keystore Object.
+ *
+ * This function must be called before performing any other operation with the
+ * Object. It allows the user to associate a custom keystore interface by
+ * specifying the correct set of functions that will be used to perform actions
+ * on the keystore object. To use the default keystore handler, the function
+ * #fsl_shw_init_keystore_default() can be used instead.
+ *
+ * @param keystore The Keystore object to operate on.
+ * @param data_init Keystore initialization function. This function is
+ * responsible for initializing the keystore. A
+ * user-defined object can be assigned to the user_data
+ * pointer, and will be passed to any function acting on
+ * that keystore. It is called during
+ * #fsl_shw_establish_keystore().
+ * @param data_cleanup Keystore cleanup function. This function cleans up
+ * any data structures associated with the keyboard. It
+ * is called by #fsl_shw_release_keystore().
+ * @param slot_alloc Slot allocation function. This function allocates a
+ * key slot, potentially based on size and owner id. It
+ * is called by #fsl_shw_establish_key().
+ * @param slot_dealloc Slot deallocation function.
+ * @param slot_verify_access Function to verify that a given Owner ID
+ * credential matches the given slot.
+ * @param slot_get_address For SCC2: Get the virtual address (kernel or
+ * userspace) of the data stored in the slot.
+ * For SCC: Get the physical address of the data
+ * stored in the slot.
+ * @param slot_get_base For SCC2: Get the (virtual) base address of the
+ * partition that the slot is located on.
+ * For SCC: Not implemented.
+ * @param slot_get_offset For SCC2: Get the offset from the start of the
+ * partition that the slot data is located at (in
+ * octets)
+ * For SCC: Not implemented.
+ * @param slot_get_slot_size Get the size of the key slot, in octets.
+ */
+extern void fsl_shw_init_keystore(fsl_shw_kso_t * keystore,
+ fsl_shw_return_t(*data_init) (fsl_shw_uco_t *
+ user_ctx,
+ void
+ **user_data),
+ void (*data_cleanup) (fsl_shw_uco_t *
+ user_ctx,
+ void **user_data),
+ fsl_shw_return_t(*slot_alloc) (void
+ *user_data,
+ uint32_t size,
+ uint64_t
+ owner_id,
+ uint32_t *
+ slot),
+ fsl_shw_return_t(*slot_dealloc) (void
+ *user_data,
+ uint64_t
+ owner_id,
+ uint32_t
+ slot),
+ fsl_shw_return_t(*slot_verify_access) (void
+ *user_data,
+ uint64_t
+ owner_id,
+ uint32_t
+ slot),
+ void *(*slot_get_address) (void *user_data,
+ uint32_t handle),
+ uint32_t(*slot_get_base) (void *user_data,
+ uint32_t handle),
+ uint32_t(*slot_get_offset) (void *user_data,
+ uint32_t handle),
+ uint32_t(*slot_get_slot_size) (void
+ *user_data,
+ uint32_t
+ handle));
+
+/*!
+ * Initialize a Keystore Object.
+ *
+ * This function must be called before performing any other operation with the
+ * Object. It sets the user keystore object up to use the default keystore
+ * handler. If a custom keystore handler is desired, the function
+ * #fsl_shw_init_keystore() can be used instead.
+ *
+ * @param keystore The Keystore object to operate on.
+ */
+extern void fsl_shw_init_keystore_default(fsl_shw_kso_t * keystore);
+
+/*!
+ * Establish a Keystore Object.
+ *
+ * This function establishes a keystore object that has been set up by a call
+ * to #fsl_shw_init_keystore(). It is a wrapper for the user-defined
+ * data_init() function, which is specified during keystore initialization.
+ *
+ * @param user_ctx The user context that this keystore should be attached
+ * to
+ * @param keystore The Keystore object to operate on.
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+extern fsl_shw_return_t fsl_shw_establish_keystore(fsl_shw_uco_t * user_ctx,
+ fsl_shw_kso_t * keystore);
+
+/*!
+ * Release a Keystore Object.
+ *
+ * This function releases an established keystore object. It is a wrapper for
+ * the user-defined data_cleanup() function, which is specified during keystore
+ * initialization.
+ *
+ * @param user_ctx The user context that this keystore should be attached
+ * to.
+ * @param keystore The Keystore object to operate on.
+ */
+extern void fsl_shw_release_keystore(fsl_shw_uco_t * user_ctx,
+ fsl_shw_kso_t * keystore);
+
+/*!
+ * Allocate a slot in the Keystore.
+ *
+ * This function attempts to allocate a slot to hold a key in the keystore. It
+ * is called by #fsl_shw_establish_key() when establishing a Secure Key Object,
+ * if the key has been flagged to be stored in a user keystore by the
+ * #fsl_shw_sko_set_keystore() function. It is a wrapper for the
+ * implementation-specific function slot_alloc().
+ *
+ * @param keystore The Keystore object to operate on.
+ * @param[in] size Size of the key to be stored (octets).
+ * @param[in] owner_id ID of the key owner.
+ * @param[out] slot If successful, assigned slot ID
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+extern fsl_shw_return_t keystore_slot_alloc(fsl_shw_kso_t * keystore,
+ uint32_t size,
+ uint64_t owner_id, uint32_t * slot);
+
+/*!
+ * Deallocate a slot in the Keystore.
+ *
+ * This function attempts to allocate a slot to hold a key in the keystore.
+ * It is called by #fsl_shw_extract_key() and #fsl_shw_release_key() when the
+ * key that it contains is to be released. It is a wrapper for the
+ * implmentation-specific function slot_dealloc().
+
+ * @param keystore The Keystore object to operate on.
+ * @param[in] owner_id ID of the key owner.
+ * @param[in] slot If successful, assigned slot ID.
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+extern fsl_shw_return_t keystore_slot_dealloc(fsl_shw_kso_t * keystore,
+ uint64_t owner_id, uint32_t slot);
+
+/*!
+ * Load cleartext key data into a key slot
+ *
+ * This function loads a key slot with cleartext data.
+ *
+ * @param keystore The Keystore object to operate on.
+ * @param[in] owner_id ID of the key owner.
+ * @param[in] slot If successful, assigned slot ID.
+ * @param[in] key_data Pointer to the location of the cleartext key data.
+ * @param[in] key_length Length of the key data (octets).
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+extern fsl_shw_return_t
+keystore_slot_load(fsl_shw_kso_t * keystore, uint64_t owner_id, uint32_t slot,
+ const uint8_t * key_data, uint32_t key_length);
+
+/*!
+ * Read cleartext key data from a key slot
+ *
+ * This function returns the key in a key slot.
+ *
+ * @param keystore The Keystore object to operate on.
+ * @param[in] owner_id ID of the key owner.
+ * @param[in] slot ID of slot where key resides.
+ * @param[in] key_length Length of the key data (octets).
+ * @param[out] key_data Pointer to the location of the cleartext key data.
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+extern fsl_shw_return_t
+keystore_slot_read(fsl_shw_kso_t * keystore, uint64_t owner_id, uint32_t slot,
+ uint32_t key_length, uint8_t * key_data);
+
+/*!
+ * Encrypt a keyslot
+ *
+ * This function encrypts a key using the hardware secret key.
+ *
+ * @param user_ctx User context
+ * @param keystore The Keystore object to operate on.
+ * @param[in] owner_id ID of the key owner.
+ * @param[in] slot Slot ID of the key to encrypt.
+ * @param[in] length Length of the key
+ * @param[out] destination Pointer to the location where the encrypted data
+ * is to be stored.
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+extern fsl_shw_return_t
+keystore_slot_encrypt(fsl_shw_uco_t * user_ctx,
+ fsl_shw_kso_t * keystore, uint64_t owner_id,
+ uint32_t slot, uint32_t length, uint8_t * destination);
+
+/*!
+ * Decrypt a keyslot
+ *
+ * This function decrypts a key using the hardware secret key.
+ *
+ * @param user_ctx User context
+ * @param keystore The Keystore object to operate on.
+ * @param[in] owner_id ID of the key owner.
+ * @param[in] slot Slot ID of the key to encrypt.
+ * @param[in] length Length of the key
+ * @param[in] source Pointer to the location where the encrypted data
+ * is stored.
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+extern fsl_shw_return_t
+keystore_slot_decrypt(fsl_shw_uco_t * user_ctx,
+ fsl_shw_kso_t * keystore, uint64_t owner_id,
+ uint32_t slot, uint32_t length, const uint8_t * source);
+
+/* @} */
+
+/*! @addtogroup default_keystore
+ @{ */
+
+/*!
+ * Data structure to hold per-slot information
+ */
+typedef struct keystore_data_slot_info_t {
+ uint8_t allocated; /*!< Track slot assignments */
+ uint64_t owner; /*!< Owner IDs */
+ uint32_t key_length; /*!< Size of the key */
+} keystore_data_slot_info_t;
+
+/*!
+ * Data structure to hold keystore information.
+ */
+typedef struct keystore_data_t {
+ void *base_address; /*!< Base of the Secure Partition */
+ uint32_t slot_count; /*!< Number of slots in the keystore */
+ struct keystore_data_slot_info_t *slot; /*!< Per-slot information */
+} keystore_data_t;
+
+/*!
+ * Default keystore initialization routine.
+ *
+ * This function acquires a Secure Partition Object to store the keystore,
+ * divides it into slots of length #KEYSTORE_SLOT_SIZE, and builds a data
+ * structure to hold key information.
+ *
+ * @param user_ctx User context
+ * @param[out] user_data Pointer to the location where the keystore data
+ * structure is to be stored.
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+fsl_shw_return_t shw_kso_init_data(fsl_shw_uco_t * user_ctx, void **user_data);
+
+/*!
+ * Default keystore cleanup routine.
+ *
+ * This function releases the Secure Partition Object and the memory holding
+ * the keystore data structure, that obtained by the shw_kso_init_data
+ * function.
+ *
+ * @param user_ctx User context
+ * @param[in,out] user_data Pointer to the location where the keystore data
+ * structure is stored.
+ */
+void shw_kso_cleanup_data(fsl_shw_uco_t * user_ctx, void **user_data);
+
+/*!
+ * Default keystore slot access verification
+ *
+ * This function compares the supplied Owner ID to the registered owner of
+ * the key slot, to see if the supplied ID is correct.
+ *
+ * @param[in] user_data Pointer to the location where the keystore data
+ * structure stored.
+ * @param[in] owner_id Owner ID supplied as a credential.
+ * @param[in] slot Requested slot
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+fsl_shw_return_t shw_slot_verify_access(void *user_data, uint64_t owner_id,
+ uint32_t slot);
+
+/*!
+ * Default keystore slot allocation
+ *
+ * This function first checks that the requested size is equal to or less than
+ * the maximum keystore slot size. If so, it searches the keystore for a free
+ * key slot, and if found, marks it as used and returns a slot reference to the
+ * user.
+ *
+ * @param[in] user_data Pointer to the location where the keystore data
+ * structure stored.
+ * @param[in] size Size of the key data that will be stored in this slot
+ * (octets)
+ * @param[in] owner_id Owner ID supplied as a credential.
+ * @param[out] slot Requested slot
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+fsl_shw_return_t shw_slot_alloc(void *user_data, uint32_t size,
+ uint64_t owner_id, uint32_t * slot);
+
+/*!
+ * Default keystore slot deallocation
+ *
+ * This function releases the given key slot in the keystore, making it
+ * available to store a new key.
+ *
+ * @param[in] user_data Pointer to the location where the keystore data
+ * structure stored.
+ * @param[in] owner_id Owner ID supplied as a credential.
+ * @param[in] slot Requested slot
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+fsl_shw_return_t shw_slot_dealloc(void *user_data,
+ uint64_t owner_id, uint32_t slot);
+
+/*!
+ * Default keystore slot address lookup
+ *
+ * This function calculates the address where the key data is stored.
+ *
+ * @param[in] user_data Pointer to the location where the keystore data
+ * structure stored.
+ * @param[in] slot Requested slot
+ *
+ * @return SCC2: Virtual address (kernel or userspace) of the key data.
+ * SCC: Physical address of the key data.
+ */
+void *shw_slot_get_address(void *user_data, uint32_t slot);
+
+/*!
+ * Default keystore slot base address lookup
+ *
+ * This function calculates the base address of the Secure Partition on which
+ * the key data is located. For the reference design, only one Secure
+ * Partition is used per Keystore, however in general, any number may be used.
+ *
+ * @param[in] user_data Pointer to the location where the keystore data
+ * structure stored.
+ * @param[in] slot Requested slot
+ *
+ * @return SCC2: Secure Partition virtual (kernel or userspace) base address.
+ * SCC: Secure Partition physical base address.
+ */
+uint32_t shw_slot_get_base(void *user_data, uint32_t slot);
+
+/*!
+ * Default keystore slot offset lookup
+ *
+ * This function calculates the offset from the base of the Secure Partition
+ * where the key data is located.
+ *
+ * @param[in] user_data Pointer to the location where the keystore data
+ * structure stored.
+ * @param[in] slot Requested slot
+ *
+ * @return SCC2: Key data offset (octets)
+ * SCC: Not implemented
+ */
+uint32_t shw_slot_get_offset(void *user_data, uint32_t slot);
+
+/*!
+ * Default keystore slot offset lookup
+ *
+ * This function returns the size of the given key slot. In the reference
+ * implementation, all key slots are of the same size, however in general,
+ * the keystore slot sizes can be made variable.
+ *
+ * @param[in] user_data Pointer to the location where the keystore data
+ * structure stored.
+ * @param[in] slot Requested slot
+ *
+ * @return SCC2: Keystore slot size.
+ * SCC: Not implemented
+ */
+uint32_t shw_slot_get_slot_size(void *user_data, uint32_t slot);
+
+/* @} */
+
+#endif /* FSL_SHW_KEYSTORE_H */
diff --git a/drivers/mxc/security/sahara2/include/linux_port.h b/drivers/mxc/security/sahara2/include/linux_port.h
new file mode 100644
index 000000000000..bd65c55c4f7b
--- /dev/null
+++ b/drivers/mxc/security/sahara2/include/linux_port.h
@@ -0,0 +1,1806 @@
+/*
+ * Copyright (C) 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file linux_port.h
+ *
+ * OS_PORT ported to Linux (2.6.9+ for now)
+ *
+ */
+
+ /*!
+ * @if USE_MAINPAGE
+ * @mainpage ==Linux version of== Generic OS API for STC Drivers
+ * @endif
+ *
+ * @section intro_sec Introduction
+ *
+ * This API / kernel programming environment blah blah.
+ *
+ * See @ref dkops "Driver-to-Kernel Operations" as a good place to start.
+ */
+
+#ifndef LINUX_PORT_H
+#define LINUX_PORT_H
+
+#define PORTABLE_OS_VERSION 101
+
+/* Linux Kernel Includes */
+#include <linux/version.h> /* Current version Linux kernel */
+
+#if defined(CONFIG_MODVERSIONS) && ! defined(MODVERSIONS)
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,11)
+#include <linux/modversions.h>
+#endif
+#define MODVERSIONS
+#endif
+/*!
+ * __NO_VERSION__ defined due to Kernel module possibly spanning multiple
+ * files.
+ */
+#define __NO_VERSION__
+
+#include <linux/module.h> /* Basic support for loadable modules,
+ printk */
+#include <linux/init.h> /* module_init, module_exit */
+#include <linux/kernel.h> /* General kernel system calls */
+#include <linux/sched.h> /* for interrupt.h */
+#include <linux/fs.h> /* for inode */
+#include <linux/random.h>
+#include <linux/spinlock.h>
+#include <linux/interrupt.h>
+#include <linux/delay.h>
+#include <linux/slab.h> /* kmalloc */
+
+#include <stdarg.h>
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,11)
+#include <linux/device.h> /* used in dynamic power management */
+#else
+#include <linux/platform_device.h> /* used in dynamic power management */
+#endif
+
+#include <linux/dmapool.h>
+#include <linux/dma-mapping.h>
+
+#include <linux/clk.h> /* clock en/disable for DPM */
+
+#include <linux/dmapool.h>
+#include <linux/dma-mapping.h>
+
+#include <asm/uaccess.h> /* copy_to_user(), copy_from_user() */
+#include <asm/io.h> /* ioremap() */
+#include <asm/irq.h>
+#include <asm/cacheflush.h>
+
+#include <mach/hardware.h>
+
+#ifndef TRUE
+/*! Useful symbol for unsigned values used as flags. */
+#define TRUE 1
+#endif
+
+#ifndef FALSE
+/*! Useful symbol for unsigned values used as flags. */
+#define FALSE 0
+#endif
+
+/* These symbols are defined in Linux 2.6 and later. Include here for minimal
+ * support of 2.4 kernel.
+ **/
+#if !defined(LINUX_VERSION_CODE) || LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
+/*!
+ * Symbol defined somewhere in 2.5/2.6. It is the return signature of an ISR.
+ */
+#define irqreturn_t void
+/*! Possible return value of 'modern' ISR routine. */
+#define IRQ_HANDLED
+/*! Method of generating value of 'modern' ISR routine. */
+#define IRQ_RETVAL(x)
+#endif
+
+/*!
+ * Type used for registering and deregistering interrupts.
+ */
+typedef int os_interrupt_id_t;
+
+/*!
+ * Type used as handle for a process
+ *
+ * See #os_get_process_handle() and #os_send_signal().
+ */
+/*
+ * The following should be defined this way, but it gets compiler errors
+ * on the current tool chain.
+ *
+ * typedef task_t *os_process_handle_t;
+ */
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,11)
+typedef task_t *os_process_handle_t;
+#else
+typedef struct task_struct *os_process_handle_t;
+#endif
+
+/*!
+ * Generic return code for functions which need such a thing.
+ *
+ * No knowledge should be assumed of the value of any of these symbols except
+ * that @c OS_ERROR_OK_S is guaranteed to be zero.
+ */
+typedef enum {
+ OS_ERROR_OK_S = 0, /*!< Success */
+ OS_ERROR_FAIL_S = -EIO, /*!< Generic driver failure */
+ OS_ERROR_NO_MEMORY_S = -ENOMEM, /*!< Failure to acquire/use memory */
+ OS_ERROR_BAD_ADDRESS_S = -EFAULT, /*!< Bad address */
+ OS_ERROR_BAD_ARG_S = -EINVAL, /*!< Bad input argument */
+} os_error_code;
+
+/*!
+ * Handle to a lock.
+ */
+#ifdef CONFIG_PREEMPT_RT
+typedef raw_spinlock_t *os_lock_t;
+#else
+typedef spinlock_t *os_lock_t;
+#endif
+
+/*!
+ * Context while locking.
+ */
+typedef unsigned long os_lock_context_t;
+
+/*!
+ * Declare a wait object for sleeping/waking processes.
+ */
+#define OS_WAIT_OBJECT(name) \
+ DECLARE_WAIT_QUEUE_HEAD(name##_qh)
+
+/*!
+ * Driver registration handle
+ *
+ * Used with #os_driver_init_registration(), #os_driver_add_registration(),
+ * and #os_driver_complete_registration().
+ */
+typedef struct {
+ unsigned reg_complete; /*!< TRUE if next inits succeeded. */
+ dev_t dev; /*!< dev_t for register_chrdev() */
+ struct file_operations fops; /*!< struct for register_chrdev() */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,13)
+ struct class_simple *cs; /*!< results of class_simple_create() */
+#else
+ struct class *cs; /*!< results of class_create() */
+#endif
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,26)
+ struct class_device *cd; /*!< Result of class_device_create() */
+#else
+ struct device *cd; /*!< Result of device_create() */
+#endif
+ unsigned power_complete; /*!< TRUE if next inits succeeded */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,11)
+ struct device_driver dd; /*!< struct for register_driver() */
+#else
+ struct platform_driver dd; /*!< struct for register_driver() */
+#endif
+ struct platform_device pd; /*!< struct for platform_register_device() */
+} os_driver_reg_t;
+
+/*
+ * Function types which can be associated with driver entry points.
+ *
+ * Note that init and shutdown are absent.
+ */
+/*! @{ */
+/*! Keyword for registering open() operation handler. */
+#define OS_FN_OPEN open
+/*! Keyword for registering close() operation handler. */
+#define OS_FN_CLOSE release
+/*! Keyword for registering read() operation handler. */
+#define OS_FN_READ read
+/*! Keyword for registering write() operation handler. */
+#define OS_FN_WRITE write
+/*! Keyword for registering ioctl() operation handler. */
+#define OS_FN_IOCTL ioctl
+/*! Keyword for registering mmap() operation handler. */
+#define OS_FN_MMAP mmap
+/*! @} */
+
+/*!
+ * Function signature for the portable interrupt handler
+ *
+ * While it would be nice to know which interrupt is being serviced, the
+ * Least Common Denominator rule says that no arguments get passed in.
+ *
+ * @return Zero if not handled, non-zero if handled.
+ */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19)
+typedef int (*os_interrupt_handler_t) (int, void *, struct pt_regs *);
+#else
+typedef int (*os_interrupt_handler_t) (int, void *);
+#endif
+
+/*!
+ * @defgroup dkops Driver-to-Kernel Operations
+ *
+ * These are the operations which drivers should call to get the OS to perform
+ * services.
+ */
+
+/*! @addtogroup dkops */
+/*! @{ */
+
+/*!
+ * Register an interrupt handler.
+ *
+ * @param driver_name The name of the driver
+ * @param interrupt_id The interrupt line to monitor (type
+ * #os_interrupt_id_t)
+ * @param function The function to be called to handle an interrupt
+ *
+ * @return #os_error_code
+ */
+#define os_register_interrupt(driver_name, interrupt_id, function) \
+ request_irq(interrupt_id, function, 0, driver_name, NULL)
+
+/*!
+ * Deregister an interrupt handler.
+ *
+ * @param interrupt_id The interrupt line to stop monitoring
+ *
+ * @return #os_error_code
+ */
+#define os_deregister_interrupt(interrupt_id) \
+ free_irq(interrupt_id, NULL)
+
+/*!
+ * INTERNAL implementation of os_driver_init_registration()
+ *
+ * @return An os error code.
+ */
+inline static int os_drv_do_init_reg(os_driver_reg_t * handle)
+{
+ memset(handle, 0, sizeof(*handle));
+ handle->fops.owner = THIS_MODULE;
+ handle->power_complete = FALSE;
+ handle->reg_complete = FALSE;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,11)
+ handle->dd.name = NULL;
+#else
+ handle->dd.driver.name = NULL;
+#endif
+
+ return OS_ERROR_OK_S;
+}
+
+/*!
+ * Initialize driver registration.
+ *
+ * If the driver handles open(), close(), ioctl(), read(), write(), or mmap()
+ * calls, then it needs to register their location with the kernel so that they
+ * get associated with the device.
+ *
+ * @param handle The handle object to be used with this registration. The
+ * object must live (be in memory somewhere) at least until
+ * os_driver_remove_registration() is called.
+ *
+ * @return A handle for further driver registration, or NULL if failed.
+ */
+#define os_driver_init_registration(handle) \
+ os_drv_do_init_reg(&handle)
+
+/*!
+ * Add a function registration to driver registration.
+ *
+ * @param handle A handle initialized by #os_driver_init_registration().
+ * @param name Which function is being supported.
+ * @param function The result of a call to a @c _REF version of one of the
+ * driver function signature macros
+ * @return void
+ */
+#define os_driver_add_registration(handle, name, function) \
+ do {handle.fops.name = (void*)(function); } while (0)
+
+/*!
+ * Record 'power suspend' function for the device.
+ *
+ * @param handle A handle initialized by #os_driver_init_registration().
+ * @param function Name of function to call on power suspend request
+ *
+ * Status: Provisional
+ *
+ * @return void
+ */
+#define os_driver_register_power_suspend(handle, function) \
+ handle.dd.suspend = function
+
+/*!
+ * Record 'power resume' function for the device.
+ *
+ * @param handle A handle initialized by #os_driver_init_registration().
+ * @param function Name of function to call on power resume request
+ *
+ * Status: Provisional
+ *
+ * @return void
+ */
+#define os_driver_register_resume(handle, function) \
+ handle.dd.resume = function
+
+/*!
+ * INTERNAL function of the Linux port of the OS API. Implements the
+ * os_driver_complete_registration() function.
+ *
+ * @param handle The handle used with #os_driver_init_registration().
+ * @param major The major device number to be associated with the driver.
+ * If this value is zero, a major number may be assigned.
+ * See #os_driver_get_major() to determine final value.
+ * #os_driver_remove_registration().
+ * @param driver_name The driver name. Can be used as part of 'device node'
+ * name on platforms which support such a feature.
+ *
+ * @return An error code
+ */
+inline static int os_drv_do_reg(os_driver_reg_t * handle,
+ unsigned major, char *driver_name)
+{
+ os_error_code code = OS_ERROR_NO_MEMORY_S;
+ char *name = kmalloc(strlen(driver_name) + 1, 0);
+
+ if (name != NULL) {
+ memcpy(name, driver_name, strlen(driver_name) + 1);
+ code = OS_ERROR_OK_S; /* OK so far */
+ /* If any chardev/POSIX routines were added, then do chrdev part */
+ if (handle->fops.open || handle->fops.release
+ || handle->fops.read || handle->fops.write
+ || handle->fops.ioctl || handle->fops.mmap) {
+
+ printk("ioctl pointer: %p. mmap pointer: %p\n",
+ handle->fops.ioctl, handle->fops.mmap);
+
+ /* this method is depricated, see:
+ * http://lwn.net/Articles/126808/
+ */
+ code =
+ register_chrdev(major, driver_name, &handle->fops);
+
+ /* instead something like this: */
+#if 0
+ handle->dev = MKDEV(major, 0);
+ code =
+ register_chrdev_region(handle->dev, 1, driver_name);
+ if (code < 0) {
+ code = OS_ERROR_FAIL_S;
+ } else {
+ cdev_init(&handle->cdev, &handle->fops);
+ code = cdev_add(&handle->cdev, major, 1);
+ }
+#endif
+
+ if (code < 0) {
+ code = OS_ERROR_FAIL_S;
+ } else {
+ if (code != 0) {
+ /* Zero was passed in for major; code is actual value */
+ handle->dev = MKDEV(code, 0);
+ } else {
+ handle->dev = MKDEV(major, 0);
+ }
+ code = OS_ERROR_OK_S;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,13)
+ handle->cs =
+ class_simple_create(THIS_MODULE,
+ driver_name);
+ if (IS_ERR(handle->cs)) {
+ code = (os_error_code) handle->cs;
+ handle->cs = NULL;
+ } else {
+ handle->cd =
+ class_simple_device_add(handle->cs,
+ handle->dev,
+ NULL,
+ driver_name);
+ if (IS_ERR(handle->cd)) {
+ class_simple_device_remove
+ (handle->dev);
+ unregister_chrdev(MAJOR
+ (handle->dev),
+ driver_name);
+ code =
+ (os_error_code) handle->cs;
+ handle->cs = NULL;
+ } else {
+ handle->reg_complete = TRUE;
+ }
+ }
+#else
+ handle->cs =
+ class_create(THIS_MODULE, driver_name);
+ if (IS_ERR(handle->cs)) {
+ code = (os_error_code) handle->cs;
+ handle->cs = NULL;
+ } else {
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,26)
+ handle->cd =
+ class_device_create(handle->cs,
+ NULL,
+ handle->dev,
+ NULL,
+ driver_name);
+#else
+ handle->cd =
+ device_create(handle->cs, NULL,
+ handle->dev, NULL,
+ driver_name);
+#endif
+ if (IS_ERR(handle->cd)) {
+ class_destroy(handle->cs);
+ unregister_chrdev(MAJOR
+ (handle->dev),
+ driver_name);
+ code =
+ (os_error_code) handle->cs;
+ handle->cs = NULL;
+ } else {
+ handle->reg_complete = TRUE;
+ }
+ }
+#endif
+ }
+ }
+ /* ... fops routine registered */
+ /* Handle power management fns through separate interface */
+ if ((code == OS_ERROR_OK_S) &&
+ (handle->dd.suspend || handle->dd.resume)) {
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,11)
+ handle->dd.name = name;
+ handle->dd.bus = &platform_bus_type;
+ code = driver_register(&handle->dd);
+#else
+ handle->dd.driver.name = name;
+ handle->dd.driver.bus = &platform_bus_type;
+ code = driver_register(&handle->dd.driver);
+#endif
+ if (code == OS_ERROR_OK_S) {
+ handle->pd.name = name;
+ handle->pd.id = 0;
+ code = platform_device_register(&handle->pd);
+ if (code != OS_ERROR_OK_S) {
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,11)
+ driver_unregister(&handle->dd);
+#else
+ driver_unregister(&handle->dd.driver);
+#endif
+ } else {
+ handle->power_complete = TRUE;
+ }
+ }
+ } /* ... suspend or resume */
+ } /* name != NULL */
+ return code;
+}
+
+/*!
+ * Finalize the driver registration with the kernel.
+ *
+ * Upon return from this call, the driver may begin receiving calls at the
+ * defined entry points.
+ *
+ * @param handle The handle used with #os_driver_init_registration().
+ * @param major The major device number to be associated with the driver.
+ * If this value is zero, a major number may be assigned.
+ * See #os_driver_get_major() to determine final value.
+ * #os_driver_remove_registration().
+ * @param driver_name The driver name. Can be used as part of 'device node'
+ * name on platforms which support such a feature.
+ *
+ * @return An error code
+ */
+#define os_driver_complete_registration(handle, major, driver_name) \
+ os_drv_do_reg(&handle, major, driver_name)
+
+/*!
+ * Get driver Major Number from handle after a successful registration.
+ *
+ * @param handle A handle which has completed registration.
+ *
+ * @return The major number (if any) associated with the handle.
+ */
+#define os_driver_get_major(handle) \
+ (handle.reg_complete ? MAJOR(handle.dev) : -1)
+
+/*!
+ * INTERNAL implemention of os_driver_remove_registration.
+ *
+ * @param handle A handle initialized by #os_driver_init_registration().
+ *
+ * @return An error code.
+ */
+inline static int os_drv_rmv_reg(os_driver_reg_t * handle)
+{
+ if (handle->reg_complete) {
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,13)
+ if (handle->cd != NULL) {
+ class_simple_device_remove(handle->dev);
+ handle->cd = NULL;
+ }
+ if (handle->cs != NULL) {
+ class_simple_destroy(handle->cs);
+ handle->cs = NULL;
+ }
+ unregister_chrdev(MAJOR(handle->dev), handle->dd.name);
+#else
+ if (handle->cd != NULL) {
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,26)
+ class_device_destroy(handle->cs, handle->dev);
+#else
+ device_destroy(handle->cs, handle->dev);
+#endif
+ handle->cd = NULL;
+ }
+ if (handle->cs != NULL) {
+ class_destroy(handle->cs);
+ handle->cs = NULL;
+ }
+ unregister_chrdev(MAJOR(handle->dev), handle->dd.driver.name);
+#endif
+ handle->reg_complete = FALSE;
+ }
+ if (handle->power_complete) {
+ platform_device_unregister(&handle->pd);
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,11)
+ driver_unregister(&handle->dd);
+#else
+ driver_unregister(&handle->dd.driver);
+#endif
+ handle->power_complete = FALSE;
+ }
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,11)
+ if (handle->dd.name != NULL) {
+ kfree(handle->dd.name);
+ handle->dd.name = NULL;
+ }
+#else
+ if (handle->dd.driver.name != NULL) {
+ kfree(handle->dd.driver.name);
+ handle->dd.driver.name = NULL;
+ }
+#endif
+ return OS_ERROR_OK_S;
+}
+
+/*!
+ * Remove the driver's registration with the kernel.
+ *
+ * Upon return from this call, the driver not receive any more calls at the
+ * defined entry points (other than ISR and shutdown).
+ *
+ * @param handle A handle initialized by #os_driver_init_registration().
+ *
+ * @return An error code.
+ */
+#define os_driver_remove_registration(handle) \
+ os_drv_rmv_reg(&handle)
+
+/*!
+ * Register a driver with the Linux Device Model.
+ *
+ * @param driver_information The device_driver structure information
+ *
+ * @return An error code.
+ *
+ * Status: denigrated in favor of #os_driver_complete_registration()
+ */
+#define os_register_to_driver(driver_information) \
+ driver_register(driver_information)
+
+/*!
+ * Unregister a driver from the Linux Device Model
+ *
+ * this routine unregisters from the Linux Device Model
+ *
+ * @param driver_information The device_driver structure information
+ *
+ * @return An error code.
+ *
+ * Status: Denigrated. See #os_register_to_driver().
+ */
+#define os_unregister_from_driver(driver_information) \
+ driver_unregister(driver_information)
+
+/*!
+ * register a device to a driver
+ *
+ * this routine registers a drivers devices to the Linux Device Model
+ *
+ * @param device_information The platform_device structure information
+ *
+ * @return An error code.
+ *
+ * Status: denigrated in favor of #os_driver_complete_registration()
+ */
+#define os_register_a_device(device_information) \
+ platform_device_register(device_information)
+
+/*!
+ * unregister a device from a driver
+ *
+ * this routine unregisters a drivers devices from the Linux Device Model
+ *
+ * @param device_information The platform_device structure information
+ *
+ * @return An error code.
+ *
+ * Status: Denigrated. See #os_register_a_device().
+ */
+#define os_unregister_a_device(device_information) \
+ platform_device_unregister(device_information)
+
+/*!
+ * Print a message to console / into log file. After the @c msg argument a
+ * number of printf-style arguments may be added. Types should be limited to
+ * printf string, char, octal, decimal, and hexadecimal types. (This excludes
+ * pointers, and floating point).
+ *
+ * @param msg The main text of the message to be logged
+ * @param s The printf-style arguments which go with msg, if any
+ *
+ * @return (void)
+ */
+#define os_printk(...) \
+ (void) printk(__VA_ARGS__)
+
+/*!
+ * Prepare a task to execute the given function. This should only be done once
+ * per function,, during the driver's initialization routine.
+ *
+ * @param task_fn Name of the OS_DEV_TASK() function to be created.
+ *
+ * @return an OS ERROR code.
+ */
+#define os_create_task(function_name) \
+ OS_ERROR_OK_S
+
+/*!
+ * Schedule execution of a task.
+ *
+ * @param function_name The function associated with the task.
+ *
+ * @return (void)
+ */
+#define os_dev_schedule_task(function_name) \
+ tasklet_schedule(&(function_name ## let))
+
+/*!
+ * Make sure that task is no longer running and will no longer run.
+ *
+ * This function will not return until both are true. This is useful when
+ * shutting down a driver.
+ */
+#define os_dev_stop_task(function_name) \
+do { \
+ tasklet_disable(&(function_name ## let)); \
+ tasklet_kill(&(function_name ## let)); \
+} while (0)
+
+/*!
+ * Allocate some kernel memory
+ *
+ * @param amount Number of 8-bit bytes to allocate
+ * @param flags Some indication of purpose of memory (needs definition)
+ *
+ * @return Pointer to allocated memory, or NULL if failed.
+ */
+#define os_alloc_memory(amount, flags) \
+ (void*)kmalloc(amount, flags)
+
+/*!
+ * Free some kernel memory
+ *
+ * @param location The beginning of the region to be freed.
+ *
+ * Do some OSes have separate free() functions which should be
+ * distinguished by passing in @c flags here, too? Don't some also require the
+ * size of the buffer being freed?
+ */
+#define os_free_memory(location) \
+ kfree(location)
+
+/*!
+ * Allocate cache-coherent memory
+ *
+ * @param amount Number of bytes to allocate
+ * @param[out] dma_addrp Location to store physical address of allocated
+ * memory.
+ * @param flags Some indication of purpose of memory (needs
+ * definition).
+ *
+ * @return (virtual space) pointer to allocated memory, or NULL if failed.
+ *
+ */
+#define os_alloc_coherent(amount, dma_addrp, flags) \
+ (void*)dma_alloc_coherent(NULL, amount, dma_addrp, flags)
+
+/*!
+ * Free cache-coherent memory
+ *
+ * @param size Number of bytes which were allocated.
+ * @param virt_addr Virtual(kernel) address of memory.to be freed, as
+ * returned by #os_alloc_coherent().
+ * @param dma_addr Physical address of memory.to be freed, as returned
+ * by #os_alloc_coherent().
+ *
+ * @return void
+ *
+ */
+#define os_free_coherent(size, virt_addr, dma_addr) \
+ dma_free_coherent(NULL, size, virt_addr, dma_addr
+
+/*!
+ * Map an I/O space into kernel memory space
+ *
+ * @param start The starting address of the (physical / io space) region
+ * @param range_bytes The number of bytes to map
+ *
+ * @return A pointer to the mapped area, or NULL on failure
+ */
+#define os_map_device(start, range_bytes) \
+ (void*)ioremap_nocache((start), range_bytes)
+
+/*!
+ * Unmap an I/O space from kernel memory space
+ *
+ * @param start The starting address of the (virtual) region
+ * @param range_bytes The number of bytes to unmap
+ *
+ * @return None
+ */
+#define os_unmap_device(start, range_bytes) \
+ iounmap((void*)(start))
+
+/*!
+ * Copy data from Kernel space to User space
+ *
+ * @param to The target location in user memory
+ * @param from The source location in kernel memory
+ * @param size The number of bytes to be copied
+ *
+ * @return #os_error_code
+ */
+#define os_copy_to_user(to, from, size) \
+ ((copy_to_user(to, from, size) == 0) ? 0 : OS_ERROR_BAD_ADDRESS_S)
+
+/*!
+ * Copy data from User space to Kernel space
+ *
+ * @param to The target location in kernel memory
+ * @param from The source location in user memory
+ * @param size The number of bytes to be copied
+ *
+ * @return #os_error_code
+ */
+#define os_copy_from_user(to, from, size) \
+ ((copy_from_user(to, from, size) == 0) ? 0 : OS_ERROR_BAD_ADDRESS_S)
+
+/*!
+ * Read a 8-bit device register
+ *
+ * @param register_address The (bus) address of the register to write to
+ * @return The value in the register
+ */
+#define os_read8(register_address) \
+ __raw_readb(register_address)
+
+/*!
+ * Write a 8-bit device register
+ *
+ * @param register_address The (bus) address of the register to write to
+ * @param value The value to write into the register
+ */
+#define os_write8(register_address, value) \
+ __raw_writeb(value, register_address)
+
+/*!
+ * Read a 16-bit device register
+ *
+ * @param register_address The (bus) address of the register to write to
+ * @return The value in the register
+ */
+#define os_read16(register_address) \
+ __raw_readw(register_address)
+
+/*!
+ * Write a 16-bit device register
+ *
+ * @param register_address The (bus) address of the register to write to
+ * @param value The value to write into the register
+ */
+#define os_write16(register_address, value) \
+ __raw_writew(value, (uint32_t*)(register_address))
+
+/*!
+ * Read a 32-bit device register
+ *
+ * @param register_address The (bus) address of the register to write to
+ * @return The value in the register
+ */
+#define os_read32(register_address) \
+ __raw_readl((uint32_t*)(register_address))
+
+/*!
+ * Write a 32-bit device register
+ *
+ * @param register_address The (bus) address of the register to write to
+ * @param value The value to write into the register
+ */
+#define os_write32(register_address, value) \
+ __raw_writel(value, register_address)
+
+/*!
+ * Read a 64-bit device register
+ *
+ * @param register_address The (bus) address of the register to write to
+ * @return The value in the register
+ */
+#define os_read64(register_address) \
+ ERROR_UNIMPLEMENTED
+
+/*!
+ * Write a 64-bit device register
+ *
+ * @param register_address The (bus) address of the register to write to
+ * @param value The value to write into the register
+ */
+#define os_write64(register_address, value) \
+ ERROR_UNIMPLEMENTED
+
+/*!
+ * Delay some number of microseconds
+ *
+ * Note that this is a busy-loop, not a suspension of the task/process.
+ *
+ * @param msecs The number of microseconds to delay
+ *
+ * @return void
+ */
+#define os_mdelay mdelay
+
+/*!
+ * Calculate virtual address from physical address
+ *
+ * @param pa Physical address
+ *
+ * @return virtual address
+ *
+ * @note this assumes that addresses are 32 bits wide
+ */
+#define os_va __va
+
+/*!
+ * Calculate physical address from virtual address
+ *
+ *
+ * @param va Virtual address
+ *
+ * @return physical address
+ *
+ * @note this assumes that addresses are 32 bits wide
+ */
+#define os_pa __pa
+
+#ifdef CONFIG_PREEMPT_RT
+/*!
+ * Allocate and initialize a lock, returning a lock handle.
+ *
+ * The lock state will be initialized to 'unlocked'.
+ *
+ * @return A lock handle, or NULL if an error occurred.
+ */
+inline static os_lock_t os_lock_alloc_init(void)
+{
+ raw_spinlock_t *lockp;
+ lockp = (raw_spinlock_t *) kmalloc(sizeof(raw_spinlock_t), 0);
+ if (lockp) {
+ _raw_spin_lock_init(lockp);
+ } else {
+ printk("OS: lock init failed\n");
+ }
+
+ return lockp;
+}
+#else
+/*!
+ * Allocate and initialize a lock, returning a lock handle.
+ *
+ * The lock state will be initialized to 'unlocked'.
+ *
+ * @return A lock handle, or NULL if an error occurred.
+ */
+inline static os_lock_t os_lock_alloc_init(void)
+{
+ spinlock_t *lockp;
+ lockp = (spinlock_t *) kmalloc(sizeof(spinlock_t), 0);
+ if (lockp) {
+ spin_lock_init(lockp);
+ } else {
+ printk("OS: lock init failed\n");
+ }
+
+ return lockp;
+}
+#endif /* CONFIG_PREEMPT_RT */
+
+/*!
+ * Acquire a lock.
+ *
+ * This function should only be called from an interrupt service routine.
+ *
+ * @param lock_handle A handle to the lock to acquire.
+ *
+ * @return void
+ */
+#define os_lock(lock_handle) \
+ spin_lock(lock_handle)
+
+/*!
+ * Unlock a lock. Lock must have been acquired by #os_lock().
+ *
+ * @param lock_handle A handle to the lock to unlock.
+ *
+ * @return void
+ */
+#define os_unlock(lock_handle) \
+ spin_unlock(lock_handle)
+
+/*!
+ * Acquire a lock in non-ISR context
+ *
+ * This function will spin until the lock is available.
+ *
+ * @param lock_handle A handle of the lock to acquire.
+ * @param context Place to save the before-lock context
+ *
+ * @return void
+ */
+#define os_lock_save_context(lock_handle, context) \
+ spin_lock_irqsave(lock_handle, context)
+
+/*!
+ * Release a lock in non-ISR context
+ *
+ * @param lock_handle A handle of the lock to release.
+ * @param context Place where before-lock context was saved.
+ *
+ * @return void
+ */
+#define os_unlock_restore_context(lock_handle, context) \
+ spin_unlock_irqrestore(lock_handle, context)
+
+/*!
+ * Deallocate a lock handle.
+ *
+ * @param lock_handle An #os_lock_t that has been allocated.
+ *
+ * @return void
+ */
+#define os_lock_deallocate(lock_handle) \
+ kfree(lock_handle)
+
+/*!
+ * Determine process handle
+ *
+ * The process handle of the current user is returned.
+ *
+ * @return A handle on the current process.
+ */
+#define os_get_process_handle() \
+ current
+
+/*!
+ * Send a signal to a process
+ *
+ * @param proc A handle to the target process.
+ * @param sig The POSIX signal to send to that process.
+ */
+#define os_send_signal(proc, sig) \
+ send_sig(sig, proc, 0);
+
+/*!
+ * Get some random bytes
+ *
+ * @param buf The location to store the random data.
+ * @param count The number of bytes to store.
+ *
+ * @return void
+ */
+#define os_get_random_bytes(buf, count) \
+ get_random_bytes(buf, count)
+
+/*!
+ * Go to sleep on an object.
+ *
+ * @param object The object on which to sleep
+ * @param condition An expression to check for sleep completion. Must be
+ * coded so that it can be referenced more than once inside
+ * macro, i.e., no ++ or other modifying expressions.
+ * @param atomic Non-zero if sleep must not return until condition.
+ *
+ * @return error code -- OK or sleep interrupted??
+ */
+#define os_sleep(object, condition, atomic) \
+({ \
+ DEFINE_WAIT(_waitentry_); \
+ os_error_code code = OS_ERROR_OK_S; \
+ \
+ while (!(condition)) { \
+ prepare_to_wait(&(object##_qh), &_waitentry_, \
+ atomic ? 0 : TASK_INTERRUPTIBLE); \
+ if (!(condition)) { \
+ schedule(); \
+ } \
+ \
+ finish_wait(&(object##_qh), &_waitentry_); \
+ \
+ if (!atomic && signal_pending(current)) { \
+ code = OS_ERROR_FAIL_S; /* NEED SOMETHING BETTER */ \
+ break; \
+ } \
+ }; \
+ \
+ code; \
+})
+
+/*!
+ * Wake up whatever is sleeping on sleep object
+ *
+ * @param object The object on which things might be sleeping
+ *
+ * @return none
+ */
+#define os_wake_sleepers(object) \
+ wake_up_interruptible(&(object##_qh));
+
+ /*! @} *//* dkops */
+
+/******************************************************************************
+ * Function signature-generating macros
+ *****************************************************************************/
+
+/*!
+ * @defgroup drsigs Driver Signatures
+ *
+ * These macros will define the entry point signatures for interrupt handlers;
+ * driver initialization and shutdown; device open/close; etc.
+ *
+ * There are two versions of each macro for a given Driver Entry Point. The
+ * first version is used to define a function and its implementation in the
+ * driver.c file, e.g. #OS_DEV_INIT().
+ *
+ * The second form is used whenever a forward declaration (prototype) is
+ * needed. It has the letters @c _DCL appended to the name of the defintion
+ * function, and takes only the first two arguments (driver_name and
+ * function_name). These are not otherwise mentioned in this documenation.
+ *
+ * There is a third form used when a reference to a function is required, for
+ * instance when passing the routine as a pointer to a function. It has the
+ * letters @c _REF appended to it, and takes only the first two arguments
+ * (driver_name and function_name). These functions are not otherwise
+ * mentioned in this documentation.
+ *
+ * (Note that these two extra forms are required because of the
+ * possibility/likelihood of having a 'wrapper function' which invokes the
+ * generic function with expected arguments. An alternative would be to have a
+ * generic function which isn't able to get at any arguments directly, but
+ * would be equipped with macros which could get at information passed in.
+ *
+ * Example:
+ *
+ * (in a header file)
+ * @code
+ * OS_DEV_INIT_DCL(widget, widget_init);
+ * @endcode
+ *
+ * (in an implementation file)
+ * @code
+ * OS_DEV_INIT(widget, widget_init)
+ * {
+ * os_dev_init_return(TRUE);
+ * }
+ * @endcode
+ *
+ */
+
+/*! @addtogroup drsigs */
+/*! @{ */
+
+/*!
+ * Define a function which will handle device initialization
+ *
+ * This is tne driver initialization routine. This is normally where the
+ * part would be initialized; queues, locks, interrupts handlers defined;
+ * long-term dynamic memory allocated for driver use; etc.
+ *
+ * @param function_name The name of the portable initialization function.
+ *
+ * @return A call to #os_dev_init_return()
+ *
+ */
+#define OS_DEV_INIT(function_name) \
+module_init(function_name); \
+static int __init function_name (void)
+
+/*! Make declaration for driver init function.
+ * @param function_name foo
+ */
+#define OS_DEV_INIT_DCL(function_name) \
+static int __init function_name (void);
+
+/*!
+ * Generate a function reference to the driver's init function.
+ * @param function_name Name of the OS_DEV_INIT() function.
+ *
+ * @return A function pointer.
+ */
+#define OS_DEV_INIT_REF(function_name) \
+function_name
+
+/*!
+ * Define a function which will handle device shutdown
+ *
+ * This is the inverse of the #OS_DEV_INIT() routine.
+ *
+ * @param function_name The name of the portable driver shutdown routine.
+ *
+ * @return A call to #os_dev_shutdown_return()
+ *
+ */
+#define OS_DEV_SHUTDOWN(function_name) \
+module_exit(function_name); \
+static void function_name(void)
+
+/*!
+ * Generate a function reference to the driver's shutdown function.
+ * @param function_name Name of the OS_DEV_HUSTDOWN() function.
+ *
+ * @return A function pointer.
+ */
+#define OS_DEV_SHUTDOWN_DCL(function_name) \
+static void function_name(void);
+
+/*!
+ * Generate a reference to driver's shutdown function
+ * @param function_name Name of the OS_DEV_HUSTDOWN() function.
+*/
+
+#define OS_DEV_SHUTDOWN_REF(function_name) \
+function_name
+
+/*!
+ * Define a function which will open the device for a user.
+ *
+ * @param function_name The name of the driver open() function
+ *
+ * @return A call to #os_dev_open_return()
+ */
+#define OS_DEV_OPEN(function_name) \
+static int function_name(struct inode* inode_p_, struct file* file_p_)
+
+/*!
+ * Declare prototype for an open() function.
+ *
+ * @param function_name The name of the OS_DEV_OPEN() function.
+ */
+#define OS_DEV_OPEN_DCL(function_name) \
+OS_DEV_OPEN(function_name);
+
+/*!
+ * Generate a function reference to the driver's open() function.
+ * @param function_name Name of the OS_DEV_OPEN() function.
+ *
+ * @return A function pointer.
+ */
+#define OS_DEV_OPEN_REF(function_name) \
+function_name
+
+/*!
+ * Define a function which will handle a user's ioctl() request
+ *
+ * @param function_name The name of the driver ioctl() function
+ *
+ * @return A call to #os_dev_ioctl_return()
+ */
+#define OS_DEV_IOCTL(function_name) \
+static int function_name(struct inode* inode_p_, struct file* file_p_, \
+ unsigned int cmd_, unsigned long data_)
+
+/*! Boo. */
+#define OS_DEV_IOCTL_DCL(function_name) \
+OS_DEV_IOCTL(function_name);
+
+/*!
+ * Generate a function reference to the driver's ioctl() function.
+ * @param function_name Name of the OS_DEV_IOCTL() function.
+ *
+ * @return A function pointer.
+ */
+#define OS_DEV_IOCTL_REF(function_name) \
+function_name
+
+/*!
+ * Define a function which will handle a user's mmap() request
+ *
+ * @param function_name The name of the driver mmap() function
+ *
+ * @return A call to #os_dev_ioctl_return()
+ */
+#define OS_DEV_MMAP(function_name) \
+int function_name(struct file* file_p_, struct vm_area_struct* vma_)
+
+#define OS_DEV_MMAP_DCL(function_name) \
+OS_DEV_MMAP(function_name);
+
+#define OS_DEV_MMAP_REF(function_name) \
+function_name
+
+/* Retrieve the context to the memory structure that is to be MMAPed */
+#define os_mmap_memory_ctx() (vma_)
+
+/* Determine the size of the requested MMAP region*/
+#define os_mmap_memory_size() (vma_->vm_end - vma_->vm_start)
+
+/* Determine the base address of the requested MMAP region*/
+#define os_mmap_user_base() (vma_->vm_start)
+
+/*!
+ * Declare prototype for an read() function.
+ *
+ * @param function_name The name of the driver read function.
+ */
+#define OS_DEV_READ_DCL(function_name) \
+OS_DEV_READ(function_name);
+
+/*!
+ * Generate a function reference to the driver's read() routine
+ * @param function_name Name of the OS_DEV_READ() function.
+ *
+ * @return A function pointer.
+ */
+#define OS_DEV_READ_REF(function_name) \
+function_name
+
+/*!
+ * Define a function which will handle a user's write() request
+ *
+ * @param function_name The name of the driver write() function
+ *
+ * @return A call to #os_dev_write_return()
+ */
+#define OS_DEV_WRITE(function_name) \
+static ssize_t function_name(struct file* file_p_, char* user_buffer_, \
+ size_t count_bytes_, loff_t* file_position_)
+
+/*!
+ * Declare prototype for an write() function.
+ *
+ * @param function_name The name of the driver write function.
+ */
+#define OS_DEV_WRITE_DCL(function_name) \
+OS_DEV_WRITE(function_name);
+
+/*!
+ * Generate a function reference to the driver's write() routine
+ * @param function_name Name of the OS_DEV_WRITE() function.
+ *
+ * @return A function pointer.
+ */
+#define OS_DEV_WRITE_REF(function_name) \
+function_name
+
+/*!
+ * Define a function which will close the device - opposite of OS_DEV_OPEN()
+ *
+ * @param function_name The name of the driver close() function
+ *
+ * @return A call to #os_dev_close_return()
+ */
+#define OS_DEV_CLOSE(function_name) \
+static int function_name(struct inode* inode_p_, struct file* file_p_)
+
+/*!
+ * Declare prototype for an close() function
+ *
+ * @param function_name The name of the driver close() function.
+ */
+#define OS_DEV_CLOSE_DCL(function_name) \
+OS_DEV_CLOSE(function_name);
+
+/*!
+ * Generate a function reference to the driver's close function.
+ * @param function_name Name of the OS_DEV_CLOSE() function.
+ *
+ * @return A function pointer.
+ */
+#define OS_DEV_CLOSE_REF(function_name) \
+function_name
+
+/*!
+ * Define a function which will handle an interrupt
+ *
+ * No arguments are available to the generic function. It must not invoke any
+ * OS functions which are illegal in a ISR. It gets no parameters, and must
+ * have a call to #os_dev_isr_return() instead of any/all return statements.
+ *
+ * Example:
+ * @code
+ * OS_DEV_ISR(widget)
+ * {
+ * os_dev_isr_return(1);
+ * }
+ * @endcode
+ *
+ * @param function_name The name of the driver ISR function
+ *
+ * @return A call to #os_dev_isr_return()
+ */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19)
+#define OS_DEV_ISR(function_name) \
+static irqreturn_t function_name(int N1_, void* N2_, struct pt_regs* N3_)
+#else
+#define OS_DEV_ISR(function_name) \
+static irqreturn_t function_name(int N1_, void* N2_)
+#endif
+
+/*!
+ * Declare prototype for an ISR function.
+ *
+ * @param function_name The name of the driver ISR function.
+ */
+#define OS_DEV_ISR_DCL(function_name) \
+OS_DEV_ISR(function_name);
+
+/*!
+ * Generate a function reference to the driver's interrupt service routine
+ * @param function_name Name of the OS_DEV_ISR() function.
+ *
+ * @return A function pointer.
+ */
+#define OS_DEV_ISR_REF(function_name) \
+function_name
+
+/*!
+ * Define a function which will operate as a background task / bottom half.
+ *
+ * Tasklet stuff isn't strictly limited to 'Device drivers', but leave it
+ * this namespace anyway.
+ *
+ * @param function_name The name of this background task function
+ *
+ * @return A call to #os_dev_task_return()
+ */
+#define OS_DEV_TASK(function_name) \
+static void function_name(unsigned long data_)
+
+/*!
+ * Declare prototype for a background task / bottom half function
+ *
+ * @param function_name The name of this background task function
+ */
+#define OS_DEV_TASK_DCL(function_name) \
+OS_DEV_TASK(function_name); \
+DECLARE_TASKLET(function_name ## let, function_name, 0);
+
+/*!
+ * Generate a reference to an #OS_DEV_TASK() function
+ *
+ * @param function_name The name of the task being referenced.
+ */
+#define OS_DEV_TASK_REF(function_name) \
+ (function_name ## let)
+
+ /*! @} *//* drsigs */
+
+/*****************************************************************************
+ * Functions/Macros for returning values from Driver Signature routines
+ *****************************************************************************/
+
+/*!
+ * Return from the #OS_DEV_INIT() function
+ *
+ * @param code An error code to report success or failure.
+ *
+ */
+#define os_dev_init_return(code) \
+ return code
+
+/*!
+ * Return from the #OS_DEV_SHUTDOWN() function
+ *
+ * @param code An error code to report success or failure.
+ *
+ */
+#define os_dev_shutdown_return(code) \
+ return
+
+/*!
+ * Return from the #OS_DEV_ISR() function
+ *
+ * The function should verify that it really was supposed to be called,
+ * and that its device needed attention, in order to properly set the
+ * return code.
+ *
+ * @param code non-zero if interrupt handled, zero otherwise.
+ *
+ */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19)
+#define os_dev_isr_return(code) \
+do { \
+ /* Unused warnings */ \
+ (void)N1_; \
+ (void)N2_; \
+ (void)N3_; \
+ \
+ return IRQ_RETVAL(code); \
+} while (0)
+#else
+#define os_dev_isr_return(code) \
+do { \
+ /* Unused warnings */ \
+ (void)N1_; \
+ (void)N2_; \
+ \
+ return IRQ_RETVAL(code); \
+} while (0)
+#endif
+
+/*!
+ * Return from the #OS_DEV_OPEN() function
+ *
+ * @param code An error code to report success or failure.
+ *
+ */
+#define os_dev_open_return(code) \
+do { \
+ int retcode = code; \
+ \
+ /* get rid of 'unused parameter' warnings */ \
+ (void)inode_p_; \
+ (void)file_p_; \
+ \
+ return retcode; \
+} while (0)
+
+/*!
+ * Return from the #OS_DEV_IOCTL() function
+ *
+ * @param code An error code to report success or failure.
+ *
+ */
+#define os_dev_ioctl_return(code) \
+do { \
+ int retcode = code; \
+ \
+ /* get rid of 'unused parameter' warnings */ \
+ (void)inode_p_; \
+ (void)file_p_; \
+ (void)cmd_; \
+ (void)data_; \
+ \
+ return retcode; \
+} while (0)
+
+/*!
+ * Return from the #OS_DEV_READ() function
+ *
+ * @param code Number of bytes read, or an error code to report failure.
+ *
+ */
+#define os_dev_read_return(code) \
+do { \
+ ssize_t retcode = code; \
+ \
+ /* get rid of 'unused parameter' warnings */ \
+ (void)file_p_; \
+ (void)user_buffer_; \
+ (void)count_bytes_; \
+ (void)file_position_; \
+ \
+ return retcode; \
+} while (0)
+
+/*!
+ * Return from the #OS_DEV_WRITE() function
+ *
+ * @param code Number of bytes written, or an error code to report failure.
+ *
+ */
+#define os_dev_write_return(code) \
+do { \
+ ssize_t retcode = code; \
+ \
+ /* get rid of 'unused parameter' warnings */ \
+ (void)file_p_; \
+ (void)user_buffer_; \
+ (void)count_bytes_; \
+ (void)file_position_; \
+ \
+ return retcode; \
+} while (0)
+
+/*!
+ * Return from the #OS_DEV_CLOSE() function
+ *
+ * @param code An error code to report success or failure.
+ *
+ */
+#define os_dev_close_return(code) \
+do { \
+ ssize_t retcode = code; \
+ \
+ /* get rid of 'unused parameter' warnings */ \
+ (void)inode_p_; \
+ (void)file_p_; \
+ \
+ return retcode; \
+} while (0)
+
+/*!
+ * Start the #OS_DEV_TASK() function
+ *
+ * In some implementations, this could be turned into a label for
+ * the os_dev_task_return() call.
+ *
+ * @return none
+ */
+#define os_dev_task_begin()
+
+/*!
+ * Return from the #OS_DEV_TASK() function
+ *
+ * In some implementations, this could be turned into a sleep followed
+ * by a jump back to the os_dev_task_begin() call.
+ *
+ * @param code An error code to report success or failure.
+ *
+ */
+#define os_dev_task_return(code) \
+do { \
+ /* Unused warnings */ \
+ (void)data_; \
+ \
+ return; \
+} while (0)
+
+/*****************************************************************************
+ * Functions/Macros for accessing arguments from Driver Signature routines
+ *****************************************************************************/
+
+/*! @defgroup drsigargs Functions for Getting Arguments in Signature functions
+ *
+ */
+/* @addtogroup @drsigargs */
+/*! @{ */
+/*!
+ * Used in #OS_DEV_OPEN(), #OS_DEV_CLOSE(), #OS_DEV_IOCTL(), #OS_DEV_READ() and
+ * #OS_DEV_WRITE() routines to check whether user is requesting read
+ * (permission)
+ */
+#define os_dev_is_flag_read() \
+ (file_p_->f_mode & FMODE_READ)
+
+/*!
+ * Used in #OS_DEV_OPEN(), #OS_DEV_CLOSE(), #OS_DEV_IOCTL(), #OS_DEV_READ() and
+ * #OS_DEV_WRITE() routines to check whether user is requesting write
+ * (permission)
+ */
+#define os_dev_is_flag_write() \
+ (file_p_->f_mode & FMODE_WRITE)
+
+/*!
+ * Used in #OS_DEV_OPEN(), #OS_DEV_CLOSE(), #OS_DEV_IOCTL(), #OS_DEV_READ() and
+ * #OS_DEV_WRITE() routines to check whether user is requesting non-blocking
+ * I/O.
+ */
+#define os_dev_is_flag_nonblock() \
+ (file_p_->f_flags & (O_NONBLOCK | O_NDELAY))
+
+/*!
+ * Used in #OS_DEV_OPEN() and #OS_DEV_CLOSE() to determine major device being
+ * accessed.
+ */
+#define os_dev_get_major() \
+ (imajor(inode_p_))
+
+/*!
+ * Used in #OS_DEV_OPEN() and #OS_DEV_CLOSE() to determine minor device being
+ * accessed.
+ */
+#define os_dev_get_minor() \
+ (iminor(inode_p_))
+
+/*!
+ * Used in #OS_DEV_IOCTL() to determine which operation the user wants
+ * performed.
+ *
+ * @return Value of the operation.
+ */
+#define os_dev_get_ioctl_op() \
+ (cmd_)
+
+/*!
+ * Used in #OS_DEV_IOCTL() to return the associated argument for the desired
+ * operation.
+ *
+ * @return A value which can be cast to a struct pointer or used as
+ * int/long.
+ */
+#define os_dev_get_ioctl_arg() \
+ (data_)
+
+/*!
+ * Used in OS_DEV_READ() and OS_DEV_WRITE() routines to access the requested
+ * byte count.
+ *
+ * @return (unsigned) a count of bytes
+ */
+#define os_dev_get_count() \
+ ((unsigned)count_bytes_)
+
+/*!
+ * Used in OS_DEV_READ() and OS_DEV_WRITE() routines to return the pointer
+ * byte count.
+ *
+ * @return char* pointer to user buffer
+ */
+#define os_dev_get_user_buffer() \
+ ((void*)user_buffer_)
+
+/*!
+ * Used in OS_DEV_READ(), OS_DEV_WRITE(), and OS_DEV_IOCTL() routines to
+ * get the POSIX flags field for the associated open file).
+ *
+ * @return The flags associated with the file.
+ */
+#define os_dev_get_file_flags() \
+ (file_p_->f_flags)
+
+/*!
+ * Set the driver's private structure associated with this file/open.
+ *
+ * Generally used during #OS_DEV_OPEN(). See #os_dev_get_user_private().
+ *
+ * @param struct_p The driver data structure to associate with this user.
+ */
+#define os_dev_set_user_private(struct_p) \
+ file_p_->private_data = (void*)(struct_p)
+
+/*!
+ * Get the driver's private structure associated with this file.
+ *
+ * May be used during #OS_DEV_OPEN(), #OS_DEV_READ(), #OS_DEV_WRITE(),
+ * #OS_DEV_IOCTL(), and #OS_DEV_CLOSE(). See #os_dev_set_user_private().
+ *
+ * @return The driver data structure to associate with this user.
+ */
+#define os_dev_get_user_private() \
+ ((void*)file_p_->private_data)
+
+/*!
+ * Get the IRQ associated with this call to the #OS_DEV_ISR() function.
+ *
+ * @return The IRQ (integer) interrupt number.
+ */
+#define os_dev_get_irq() \
+ N1_
+
+ /*! @} *//* drsigargs */
+
+/*!
+ * @defgroup cacheops Cache Operations
+ *
+ * These functions are for synchronizing processor cache with RAM.
+ */
+/*! @addtogroup cacheops */
+/*! @{ */
+
+/*!
+ * Flush and invalidate all cache lines.
+ */
+#if 0
+#define os_flush_cache_all() \
+ flush_cache_all()
+#else
+/* Call ARM fn directly, in case L2cache=on3 not set */
+#define os_flush_cache_all() \
+ v6_flush_kern_cache_all_L2()
+
+/*!
+ * ARM-routine to flush all cache. Defined here, because it exists in no
+ * easy-access header file. ARM-11 with L210 cache only!
+ */
+extern void v6_flush_kern_cache_all_L2(void);
+#endif
+
+/*
+ * These macros are using part of the Linux DMA API. They rely on the
+ * map function to do nothing more than the equivalent clean/inv/flush
+ * operation at the time of the mapping, and do nothing at an unmapping
+ * call, which the Sahara driver code will never invoke.
+ */
+
+/*!
+ * Clean a range of addresses from the cache. That is, write updates back
+ * to (RAM, next layer).
+ *
+ * @param start Starting virtual address
+ * @param len Number of bytes to flush
+ *
+ * @return void
+ */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21)
+#define os_cache_clean_range(start,len) \
+ dma_map_single(NULL, (void*)start, len, DMA_TO_DEVICE)
+#else
+#define os_cache_clean_range(start,len) \
+{ \
+ void *s = (void*)start; \
+ void *e = s + len; \
+ dmac_map_area(s, len, DMA_TO_DEVICE); \
+ outer_clean_range(__pa(s), __pa(e)); \
+}
+#endif
+
+/*!
+ * Invalidate a range of addresses in the cache
+ *
+ * @param start Starting virtual address
+ * @param len Number of bytes to flush
+ *
+ * @return void
+ */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21)
+#define os_cache_inv_range(start,len) \
+ dma_map_single(NULL, (void*)start, len, DMA_FROM_DEVICE)
+#else
+#define os_cache_inv_range(start,len) \
+{ \
+ void *s = (void*)start; \
+ void *e = s + len; \
+ dmac_unmap_area(s, len, DMA_FROM_DEVICE); \
+ outer_inv_range(__pa(s), __pa(e)); \
+}
+#endif
+
+/*!
+ * Flush a range of addresses from the cache. That is, perform clean
+ * and invalidate
+ *
+ * @param start Starting virtual address
+ * @param len Number of bytes to flush
+ *
+ * @return void
+ */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21)
+#define os_cache_flush_range(start,len) \
+ dma_map_single(NULL, (void*)start, len, DMA_BIDIRECTIONAL)
+#else
+#define os_cache_flush_range(start,len) \
+{ \
+ void *s = (void*)start; \
+ void *e = s + len; \
+ dmac_flush_range(s, e); \
+ outer_flush_range(__pa(s), __pa(e)); \
+}
+#endif
+
+ /*! @} *//* cacheops */
+
+#endif /* LINUX_PORT_H */
diff --git a/drivers/mxc/security/sahara2/include/platform_abstractions.h b/drivers/mxc/security/sahara2/include/platform_abstractions.h
new file mode 100644
index 000000000000..5fc87ccc5161
--- /dev/null
+++ b/drivers/mxc/security/sahara2/include/platform_abstractions.h
@@ -0,0 +1,15 @@
+/*
+ * Copyright (C) 2005-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+/*!
+ * @file platform_abstractions.h
+ */
diff --git a/drivers/mxc/security/sahara2/include/portable_os.h b/drivers/mxc/security/sahara2/include/portable_os.h
new file mode 100644
index 000000000000..445acd5d420c
--- /dev/null
+++ b/drivers/mxc/security/sahara2/include/portable_os.h
@@ -0,0 +1,1453 @@
+/*
+ * Copyright (C) 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+#ifndef PORTABLE_OS_H
+#define PORTABLE_OS_H
+
+/***************************************************************************/
+
+/*
+ * Add support for your target OS by checking appropriate flags and then
+ * including the appropriate file. Don't forget to document the conditions
+ * in the later documentation section at the beginning of the
+ * DOXYGEN_PORTABLE_OS_DOC.
+ */
+
+#if defined(LINUX_KERNEL)
+
+#include "linux_port.h"
+
+#elif defined(PORTABLE_OS)
+
+#include "check_portability.h"
+
+#else
+
+#error Target OS unsupported or unspecified
+
+#endif
+
+
+/***************************************************************************/
+
+/*!
+ * @file portable_os.h
+ *
+ * This file should be included by portable driver code in order to gain access
+ * to the OS-specific header files. It is the only OS-related header file that
+ * the writer of a portable driver should need.
+ *
+ * This file also contains the documentation for the common API.
+ *
+ * Begin reading the documentation for this file at the @ref index "main page".
+ *
+ */
+
+/*!
+ * @if USE_MAINPAGE
+ * @mainpage Generic OS API for STC Drivers
+ * @endif
+ *
+ * @section intro_sec Introduction
+ *
+ * This defines the API / kernel programming environment for portable drivers.
+ *
+ * This API is broken up into several functional areas. It greatly limits the
+ * choices of a device-driver author, but at the same time should allow for
+ * greater portability of the resulting code.
+ *
+ * Each kernel-to-driver function (initialization function, interrupt service
+ * routine, etc.) has a 'portable signature' which must be used, and a specific
+ * function which must be called to generate the return statement. There is
+ * one exception, a background task or "bottom half" routine, which instead has
+ * a specific structure which must be followed. These signatures and function
+ * definitions are found in @ref drsigs.
+ *
+ * None of these kernel-to-driver functions seem to get any arguments passed to
+ * them. Instead, there are @ref drsigargs which allow one of these functions
+ * to get at fairly generic parts of its calling arguments, if there are any.
+ *
+ * Almost every driver will have some need to call the operating system
+ * @ref dkops is the list of services which are available to the driver.
+ *
+ *
+ * @subsection warn_sec Warning
+ *
+ * The specifics of the types, values of the various enumerations
+ * (unless specifically stated, like = 0), etc., are only here for illustrative
+ * purposes. No attempts should be made to make use of any specific knowledge
+ * gleaned from this documentation. These types are only meant to be passed in
+ * and out of the API, and their contents are to be handled only by the
+ * provided OS-specific functions.
+ *
+ * Also, note that the function may be provided as macros in some
+ * implementations, or vice versa.
+ *
+ *
+ * @section dev_sec Writing a Portable Driver
+ *
+ * First off, writing a portable driver means calling no function in an OS
+ * except what is available through this header file.
+ *
+ * Secondly, all OS-called functions in your driver must be invoked and
+ * referenced through the signature routines.
+ *
+ * Thirdly, there might be some rules which you can get away with ignoring or
+ * violating on one OS, yet will cause your code not to be portable to a
+ * different OS.
+ *
+ *
+ * @section limit_sec Limitations
+ *
+ * This API is not expected to handle every type of driver which may be found
+ * in an operating system. For example, it will not be able to handle the
+ * usual design for something like a UART driver, where there are multiple
+ * logical devices to access, because the design usually calls for some sort of
+ * indication to the #OS_DEV_TASK() function or OS_DEV_ISR() to indicate which
+ * channel is to be serviced by that instance of the task/function. This sort
+ * of argument is missing in this API for functions like os_dev_schedule_task() and
+ * os_register_interrupt().
+ *
+ *
+ * @section port_guide Porting Guidelines
+ *
+ * This section is intended for a developer who needs to port the header file
+ * to an operating system which is not yet supported.
+ *
+ * This interface allows for a lot of flexibility when it comes to porting to
+ * an operating systems device driver interface. There are three main areas to
+ * examine: The use of Driver Routine Signatures, the use of Driver Argument
+ * Access functions, the Calls to Kernel Functions, and Data Types.
+ *
+ *
+ * @subsection port_sig Porting Driver Routine Signatures
+ *
+ * The three macros for each function (e.g. #OS_DEV_INIT(), #OS_DEV_INIT_DCL(),
+ * and #OS_DEV_INIT_REF()) allow the flexibility of having a 'wrapper' function
+ * with the OS-required signature, which would then call the user's function
+ * with some different signature.
+ *
+ * The first form would lay down the wrapper function, followed by the
+ * signature for the user function. The second form would lay down just the
+ * signatures for both functions, and the last function would reference the
+ * wrapper function, since that is the interface function called by the OS.
+ *
+ * Note that the driver author has no visibility at all to the signature of the
+ * routines. The author can access arguments only through a limited set of
+ * functions, and must return via another function.
+ *
+ * The Return Functions allow a lot of flexibility in converting the return
+ * value, or not returning a value at all. These will likely be implemented as
+ * macros.
+ *
+ *
+ * @subsection port_arg Porting Driver Argument Access Functions
+ *
+ * The signatures defined by the guide will usually be replaced with macro
+ * definitions.
+ *
+ *
+ * @subsection port_dki Porting Calls to Kernel Functions
+ *
+ * The signatures defined by the guide may be replaced with macro definitions,
+ * if that makes more sense.
+ *
+ * Implementors are free to ignore arguments which are not applicable to their
+ * OS.
+ *
+ * @subsection port_datatypes Porting Data Types
+ *
+ *
+ */
+
+/***************************************************************************
+ * Compile flags
+ **************************************************************************/
+
+/*
+ * This compile flag should only be turned on when running doxygen to generate
+ * the API documentation.
+ */
+#ifdef DOXYGEN_PORTABLE_OS_DOC
+
+/*!
+ * @todo module_init()/module_cleanup() for Linux need to be added to OS
+ * abstractions. Also need EXPORT_SYMBOL() equivalent??
+ *
+ */
+
+/* Drop OS differentation documentation here */
+
+/*!
+ * \#define this flag to build your driver as a Linux driver
+ */
+#define LINUX
+
+/* end OS differentation documentation */
+
+/*!
+ * Symbol to give version number of the implementation file. Earliest
+ * definition is in version 1.1, with value 101 (to mean version 1.1)
+ */
+#define PORTABLE_OS_VERSION 101
+
+/*
+ * NOTICE: The following definitions (the rest of the file) are not meant ever
+ * to be compiled. Instead, they are the documentation for the portable OS
+ * API, to be used by driver writers.
+ *
+ * Each individual OS port will define each of these types, functions, or
+ * macros as appropriate to the target OS. This is why they are under the
+ * DOXYGEN_PORTABLE_OS_DOC flag.
+ */
+
+/***************************************************************************
+ * Type definitions
+ **************************************************************************/
+
+/*!
+ * Type used for registering and deregistering interrupts.
+ *
+ * This is typically an interrupt channel number.
+ */
+typedef int os_interrupt_id_t;
+
+/*!
+ * Type used as handle for a process
+ *
+ * See #os_get_process_handle() and #os_send_signal().
+ */
+typedef int os_process_handle_t;
+
+/*!
+ * Generic return code for functions which need such a thing.
+ *
+ * No knowledge should be assumed of the value of any of these symbols except
+ * that @c OS_ERROR_OK_S is guaranteed to be zero.
+ *
+ * @todo Any other named values? What about (-EAGAIN? -ERESTARTSYS? Are they
+ * too Linux/Unix-specific read()/write() return values) ?
+ */
+typedef enum {
+ OS_ERROR_OK_S = 0, /*!< Success */
+ OS_ERROR_FAIL_S, /*!< Generic driver failure */
+ OS_ERROR_NO_MEMORY_S, /*!< Failure to acquire/use memory */
+ OS_ERROR_BAD_ADDRESS_S, /*!< Bad address */
+ OS_ERROR_BAD_ARG_S /*!< Bad input argument */
+} os_error_code;
+
+/*!
+ * Handle to a lock.
+ */
+typedef int *os_lock_t;
+
+/*!
+ * Context while locking.
+ */
+typedef int os_lock_context_t;
+
+/*!
+ * An object which can be slept on and later used to wake any/all sleepers.
+ */
+typedef int os_sleep_object_t;
+
+/*!
+ * Driver registration handle
+ */
+typedef void *os_driver_reg_t;
+
+/*!
+ * Function signature for an #OS_DEV_INIT() function.
+ *
+ * @return A call to os_dev_init_return() function.
+ */
+typedef void (*os_init_function_t) (void);
+
+/*!
+ * Function signature for an #OS_DEV_SHUTDOWN() function.
+ *
+ * @return A call to os_dev_shutdown_return() function.
+ */
+typedef void (*os_shutdown_function_t) (void);
+
+/*!
+ * Function signature for a user-driver function.
+ *
+ * @return A call to the appropriate os_dev_xxx_return() function.
+ */
+typedef void (*os_user_function_t) (void);
+
+/*!
+ * Function signature for the portable interrupt handler
+ *
+ * While it would be nice to know which interrupt is being serviced, the
+ * Least Common Denominator rule says that no arguments get passed in.
+ *
+ * @return A call to #os_dev_isr_return()
+ */
+typedef void (*os_interrupt_handler_t) (void);
+
+/*!
+ * Function signature for a task function
+ *
+ * Many task function definitions get some sort of generic argument so that the
+ * same function can run across many (queues, channels, ...) as separate task
+ * instances. This has been left out of this API.
+ *
+ * This function must be structured as documented by #OS_DEV_TASK().
+ *
+ */
+typedef void (*os_task_fn_t) (void);
+
+/*!
+ * Function types which can be associated with driver entry points. These are
+ * used in os_driver_add_registration().
+ *
+ * Note that init and shutdown are absent.
+ */
+typedef enum {
+ OS_FN_OPEN, /*!< open() operation handler. */
+ OS_FN_CLOSE, /*!< close() operation handler. */
+ OS_FN_READ, /*!< read() operation handler. */
+ OS_FN_WRITE, /*!< write() operation handler. */
+ OS_FN_IOCTL, /*!< ioctl() operation handler. */
+ OS_FN_MMAP /*!< mmap() operation handler. */
+} os_driver_fn_t;
+
+/***************************************************************************
+ * Driver-to-Kernel Operations
+ **************************************************************************/
+
+/*!
+ * @defgroup dkops Driver-to-Kernel Operations
+ *
+ * These are the operations which drivers should call to get the OS to perform
+ * services.
+ */
+
+/*! @addtogroup dkops */
+/*! @{ */
+
+/*!
+ * Register an interrupt handler.
+ *
+ * @param driver_name The name of the driver
+ * @param interrupt_id The interrupt line to monitor (type
+ * #os_interrupt_id_t)
+ * @param function The function to be called to handle an interrupt
+ *
+ * @return #os_error_code
+ */
+os_error_code os_register_interrupt(char *driver_name,
+ os_interrupt_id_t interrupt_id,
+ os_interrupt_handler_t function);
+
+/*!
+ * Deregister an interrupt handler.
+ *
+ * @param interrupt_id The interrupt line to stop monitoring
+ *
+ * @return #os_error_code
+ */
+os_error_code os_deregister_interrupt(os_interrupt_id_t interrupt_id);
+
+/*!
+ * Initialize driver registration.
+ *
+ * If the driver handles open(), close(), ioctl(), read(), write(), or mmap()
+ * calls, then it needs to register their location with the kernel so that they
+ * get associated with the device.
+ *
+ * @param handle The handle object to be used with this registration. The
+ * object must live (be in memory somewhere) at least until
+ * os_driver_remove_registration() is called.
+ *
+ * @return An os error code.
+ */
+os_error_code os_driver_init_registration(os_driver_reg_t handle);
+
+/*!
+ * Add a function registration to driver registration.
+ *
+ * @param handle The handle used with #os_driver_init_registration().
+ * @param name Which function is being supported.
+ * @param function The result of a call to a @c _REF version of one of the
+ * driver function signature macros
+ * driver function signature macros
+ * @return void
+ */
+void os_driver_add_registration(os_driver_reg_t handle, os_driver_fn_t name,
+ void *function);
+
+/*!
+ * Finalize the driver registration with the kernel.
+ *
+ * Upon return from this call, the driver may begin receiving calls at the
+ * defined entry points.
+ *
+ * @param handle The handle used with #os_driver_init_registration().
+ * @param major The major device number to be associated with the driver.
+ * If this value is zero, a major number may be assigned.
+ * See #os_driver_get_major() to determine final value.
+ * #os_driver_remove_registration().
+ * @param driver_name The driver name. Can be used as part of 'device node'
+ * name on platforms which support such a feature.
+ *
+ * @return An error code
+ */
+os_error_code os_driver_complete_registration(os_driver_reg_t handle,
+ int major, char *driver_name);
+
+/*!
+ * Get driver Major Number from handle after a successful registration.
+ *
+ * @param handle A handle which has completed registration.
+ *
+ * @return The major number (if any) associated with the handle.
+ */
+uint32_t os_driver_get_major(os_driver_reg_t handle);
+
+/*!
+ * Remove the driver's registration with the kernel.
+ *
+ * Upon return from this call, the driver not receive any more calls at the
+ * defined entry points (other than ISR and shutdown).
+ *
+ * @param major The major device number to be associated with the driver.
+ * @param driver_name The driver name
+ *
+ * @return An error code.
+ */
+os_error_code os_driver_remove_registration(int major, char *driver_name);
+
+/*!
+ * Print a message to console / into log file. After the @c msg argument a
+ * number of printf-style arguments may be added. Types should be limited to
+ * printf string, char, octal, decimal, and hexadecimal types. (This excludes
+ * pointers, and floating point).
+ *
+ * @param msg The message to print to console / system log
+ *
+ * @return (void)
+ */
+void os_printk(char *msg, ...);
+
+/*!
+ * Allocate some kernel memory
+ *
+ * @param amount Number of 8-bit bytes to allocate
+ * @param flags Some indication of purpose of memory (needs definition)
+ *
+ * @return Pointer to allocated memory, or NULL if failed.
+ */
+void *os_alloc_memory(unsigned amount, int flags);
+
+/*!
+ * Free some kernel memory
+ *
+ * @param location The beginning of the region to be freed.
+ *
+ * Do some OSes have separate free() functions which should be
+ * distinguished by passing in @c flags here, too? Don't some also require the
+ * size of the buffer being freed? Perhaps separate routines for each
+ * alloc/free pair (DMAable, etc.)?
+ */
+void os_free_memory(void *location);
+
+/*!
+ * Allocate cache-coherent memory
+ *
+ * @param amount Number of bytes to allocate
+ * @param[out] dma_addrp Location to store physical address of allocated
+ * memory.
+ * @param flags Some indication of purpose of memory (needs
+ * definition).
+ *
+ * @return (virtual space) pointer to allocated memory, or NULL if failed.
+ *
+ */
+void *os_alloc_coherent(unsigned amount, uint32_t * dma_addrp, int flags);
+
+/*!
+ * Free cache-coherent memory
+ *
+ * @param size Number of bytes which were allocated.
+ * @param[out] virt_addr Virtual(kernel) address of memory.to be freed, as
+ * returned by #os_alloc_coherent().
+ * @param[out] dma_addr Physical address of memory.to be freed, as returned
+ * by #os_alloc_coherent().
+ *
+ * @return void
+ *
+ */
+void os_free_coherent(unsigned size, void *virt_addr, uint32_t dma_addr);
+
+/*!
+ * Map an I/O space into kernel memory space
+ *
+ * @param start The starting address of the (physical / io space) region
+ * @param range_bytes The number of bytes to map
+ *
+ * @return A pointer to the mapped area, or NULL on failure
+ */
+void *os_map_device(uint32_t start, unsigned range_bytes);
+
+/*!
+ * Unmap an I/O space from kernel memory space
+ *
+ * @param start The starting address of the (virtual) region
+ * @param range_bytes The number of bytes to unmap
+ *
+ * @return None
+ */
+void os_unmap_device(void *start, unsigned range_bytes);
+
+/*!
+ * Copy data from Kernel space to User space
+ *
+ * @param to The target location in user memory
+ * @param from The source location in kernel memory
+ * @param size The number of bytes to be copied
+ *
+ * @return #os_error_code
+ */
+os_error_code os_copy_to_user(void *to, void *from, unsigned size);
+
+/*!
+ * Copy data from User space to Kernel space
+ *
+ * @param to The target location in kernel memory
+ * @param from The source location in user memory
+ * @param size The number of bytes to be copied
+ *
+ * @return #os_error_code
+ */
+os_error_code os_copy_from_user(void *to, void *from, unsigned size);
+
+/*!
+ * Read an 8-bit device register
+ *
+ * @param register_address The (bus) address of the register to write to
+ * @return The value in the register
+ */
+uint8_t os_read8(uint8_t * register_address);
+
+/*!
+ * Write an 8-bit device register
+ *
+ * @param register_address The (bus) address of the register to write to
+ * @param value The value to write into the register
+ */
+void os_write8(uint8_t * register_address, uint8_t value);
+
+/*!
+ * Read a 16-bit device register
+ *
+ * @param register_address The (bus) address of the register to write to
+ * @return The value in the register
+ */
+uint16_t os_read16(uint16_t * register_address);
+
+/*!
+ * Write a 16-bit device register
+ *
+ * @param register_address The (bus) address of the register to write to
+ * @param value The value to write into the register
+ */
+void os_write16(uint16_t * register_address, uint16_t value);
+
+/*!
+ * Read a 32-bit device register
+ *
+ * @param register_address The (bus) address of the register to write to
+ * @return The value in the register
+ */
+uint32_t os_read32(uint32_t * register_address);
+
+/*!
+ * Write a 32-bit device register
+ *
+ * @param register_address The (bus) address of the register to write to
+ * @param value The value to write into the register
+ */
+void os_write32(uint32_t * register_address, uint32_t value);
+
+/*!
+ * Read a 64-bit device register
+ *
+ * @param register_address The (bus) address of the register to write to
+ * @return The value in the register
+ */
+uint64_t os_read64(uint64_t * register_address);
+
+/*!
+ * Write a 64-bit device register
+ *
+ * @param register_address The (bus) address of the register to write to
+ * @param value The value to write into the register
+ */
+void os_write64(uint64_t * register_address, uint64_t value);
+
+/*!
+ * Prepare a task to execute the given function. This should only be done once
+ * per task, during the driver's initialization routine.
+ *
+ * @param task_fn Name of the OS_DEV_TASK() function to be created.
+ *
+ * @return an OS ERROR code.
+ */
+os_error os_create_task(os_task_fn_t * task_fn);
+
+/*!
+ * Run the task associated with an #OS_DEV_TASK() function
+ *
+ * The task will begin execution sometime after or during this call.
+ *
+ * @param task_fn Name of the OS_DEV_TASK() function to be scheduled.
+ *
+ * @return void
+ */
+void os_dev_schedule_task(os_task_fn_t * task_fn);
+
+/*!
+ * Make sure that task is no longer running and will no longer run.
+ *
+ * This function will not return until both are true. This is useful when
+ * shutting down a driver.
+ *
+ * @param task_fn Name of the OS_DEV_TASK() funciton to be stopped.
+ *
+ */
+void os_stop_task(os_task_fn_t * task_fn);
+
+/*!
+ * Delay some number of microseconds
+ *
+ * Note that this is a busy-loop, not a suspension of the task/process.
+ *
+ * @param msecs The number of microseconds to delay
+ *
+ * @return void
+ */
+void os_mdelay(unsigned long msecs);
+
+/*!
+ * Calculate virtual address from physical address
+ *
+ * @param pa Physical address
+ *
+ * @return virtual address
+ *
+ * @note this assumes that addresses are 32 bits wide
+ */
+void *os_va(uint32_t pa);
+
+/*!
+ * Calculate physical address from virtual address
+ *
+ *
+ * @param va Virtual address
+ *
+ * @return physical address
+ *
+ * @note this assumes that addresses are 32 bits wide
+ */
+uint32_t os_pa(void *va);
+
+/*!
+ * Allocate and initialize a lock, returning a lock handle.
+ *
+ * The lock state will be initialized to 'unlocked'.
+ *
+ * @return A lock handle, or NULL if an error occurred.
+ */
+os_lock_t os_lock_alloc_init(void);
+
+/*!
+ * Acquire a lock.
+ *
+ * This function should only be called from an interrupt service routine.
+ *
+ * @param lock_handle A handle to the lock to acquire.
+ *
+ * @return void
+ */
+void os_lock(os_lock_t lock_handle);
+
+/*!
+ * Unlock a lock. Lock must have been acquired by #os_lock().
+ *
+ * @param lock_handle A handle to the lock to unlock.
+ *
+ * @return void
+ */
+void os_unlock(os_lock_t lock_handle);
+
+/*!
+ * Acquire a lock in non-ISR context
+ *
+ * This function will spin until the lock is available.
+ *
+ * @param lock_handle A handle of the lock to acquire.
+ * @param context Place to save the before-lock context
+ *
+ * @return void
+ */
+void os_lock_save_context(os_lock_t lock_handle, os_lock_context_t context);
+
+/*!
+ * Release a lock in non-ISR context
+ *
+ * @param lock_handle A handle of the lock to release.
+ * @param context Place where before-lock context was saved.
+ *
+ * @return void
+ */
+void os_unlock_restore_context(os_lock_t lock_handle,
+ os_lock_context_t context);
+
+/*!
+ * Deallocate a lock handle.
+ *
+ * @param lock_handle An #os_lock_t that has been allocated.
+ *
+ * @return void
+ */
+void os_lock_deallocate(os_lock_t lock_handle);
+
+/*!
+ * Determine process handle
+ *
+ * The process handle of the current user is returned.
+ *
+ * @return A handle on the current process.
+ */
+os_process_handle_t os_get_process_handle();
+
+/*!
+ * Send a signal to a process
+ *
+ * @param proc A handle to the target process.
+ * @param sig The POSIX signal to send to that process.
+ */
+void os_send_signal(os_process_handle_t proc, int sig);
+
+/*!
+ * Get some random bytes
+ *
+ * @param buf The location to store the random data.
+ * @param count The number of bytes to store.
+ *
+ * @return void
+ */
+void os_get_random_bytes(void *buf, unsigned count);
+
+/*!
+ * Go to sleep on an object.
+ *
+ * Example: code = os_sleep(my_queue, available_count == 0, 0);
+ *
+ * @param object The object on which to sleep
+ * @param condition An expression to check for sleep completion. Must be
+ * coded so that it can be referenced more than once inside
+ * macro, i.e., no ++ or other modifying expressions.
+ * @param atomic Non-zero if sleep must not return until condition.
+ *
+ * @return error code -- OK or sleep interrupted??
+ */
+os_error_code os_sleep(os_sleep_object_t object, unsigned condition,
+ unsigned atomic);
+
+/*!
+ * Wake up whatever is sleeping on sleep object
+ *
+ * @param object The object on which things might be sleeping
+ *
+ * @return none
+ */
+void os_wake_sleepers(os_sleep_object_t object);
+
+ /*! @} *//* dkops */
+
+/*****************************************************************************
+ * Function-signature-generating macros
+ *****************************************************************************/
+
+/*!
+ * @defgroup drsigs Driver Function Signatures
+ *
+ * These macros will define the entry point signatures for interrupt handlers;
+ * driver initialization and shutdown; device open/close; etc. They are to be
+ * used whenever the Kernel will call into the Driver. They are not
+ * appropriate for driver calls to other routines in the driver.
+ *
+ * There are three versions of each macro for a given Driver Entry Point. The
+ * first version is used to define a function and its implementation in the
+ * driver.c file, e.g. #OS_DEV_INIT().
+ *
+ * The second form is used whenever a forward declaration (prototype) is
+ * needed. It has the letters @c _DCL appended to the name of the definition
+ * function. These are not otherwise mentioned in this documenation.
+ *
+ * There is a third form used when a reference to a function is required, for
+ * instance when passing the routine as a pointer to a function. It has the
+ * letters @c _REF appended to the name of the definition function
+ * (e.g. DEV_IOCTL_REF).
+ *
+ * Note that these two extra forms are required because of the possibility of
+ * having an invisible 'wrapper function' created by the os-specific header
+ * file which would need to be invoked by the operating system, and which in
+ * turn would invoke the generic function.
+ *
+ * Example:
+ *
+ * (in a header file)
+ * @code
+ * OS_DEV_INIT_DCL(widget_init);
+ * OS_DEV_ISR_DCL(widget_isr);
+ * @endcode
+ *
+ * (in an implementation file)
+ * @code
+ * OS_DEV_INIT(widget, widget_init)
+ * {
+ *
+ * os_register_interrupt("widget", WIDGET_IRQ, OS_DEV_ISR_REF(widget_isr));
+ *
+ * os_dev_init_return(OS_RETURN_NO_ERROR_S);
+ * }
+ *
+ * OS_DEV_ISR(widget_isr)
+ * {
+ * os_dev_isr_return(TRUE);
+ * }
+ * @endcode
+ */
+
+/*! @addtogroup drsigs */
+/*! @{ */
+
+/*!
+ * Define a function which will handle device initialization
+ *
+ * This is tne driver initialization routine. This is normally where the
+ * part would be initialized; queues, locks, interrupts handlers defined;
+ * long-term dynamic memory allocated for driver use; etc.
+ *
+ * @param function_name The name of the portable initialization function.
+ *
+ * @return A call to #os_dev_init_return()
+ *
+ */
+#define OS_DEV_INIT(function_name)
+
+/*!
+ * Define a function which will handle device shutdown
+ *
+ * This is the reverse of the #OS_DEV_INIT() routine.
+ *
+ * @param function_name The name of the portable driver shutdown routine.
+ *
+ * @return A call to #os_dev_shutdown_return()
+ */
+#define OS_DEV_SHUTDOWN(function_name)
+
+/*!
+ * Define a function which will open the device for a user.
+ *
+ * @param function_name The name of the driver open() function
+ *
+ * @return A call to #os_dev_open_return()
+ */
+#define OS_DEV_OPEN(function_name)
+
+/*!
+ * Define a function which will handle a user's ioctl() request
+ *
+ * @param function_name The name of the driver ioctl() function
+ *
+ * @return A call to #os_dev_ioctl_return()
+ */
+#define OS_DEV_IOCTL(function_name)
+
+/*!
+ * Define a function which will handle a user's read() request
+ *
+ * @param function_name The name of the driver read() function
+ *
+ * @return A call to #os_dev_read_return()
+ */
+#define OS_DEV_READ(function_name)
+
+/*!
+ * Define a function which will handle a user's write() request
+ *
+ * @param function_name The name of the driver write() function
+ *
+ * @return A call to #os_dev_write_return()
+ */
+#define OS_DEV_WRITE(function_name)
+
+/*!
+ * Define a function which will handle a user's mmap() request
+ *
+ * The mmap() function requests the driver to map some memory into user space.
+ *
+ * @todo Determine what support functions are needed for mmap() handling.
+ *
+ * @param function_name The name of the driver mmap() function
+ *
+ * @return A call to #os_dev_mmap_return()
+ */
+#define OS_DEV_MMAP(function_name)
+
+/*!
+ * Define a function which will close the device - opposite of OS_DEV_OPEN()
+ *
+ * @param function_name The name of the driver close() function
+ *
+ * @return A call to #os_dev_close_return()
+ */
+#define OS_DEV_CLOSE(function_name)
+
+/*!
+ * Define a function which will handle an interrupt
+ *
+ * No arguments are available to the generic function. It must not invoke any
+ * OS functions which are illegal in a ISR. It gets no parameters, and must
+ * have a call to #os_dev_isr_return() instead of any/all return statements.
+ *
+ * Example:
+ * @code
+ * OS_DEV_ISR(widget, widget_isr, WIDGET_IRQ_NUMBER)
+ * {
+ * os_dev_isr_return(1);
+ * }
+ * @endcode
+ *
+ * @param function_name The name of the driver ISR function
+ *
+ * @return A call to #os_dev_isr_return()
+ */
+#define OS_DEV_ISR(function_name)
+
+/*!
+ * Define a function which will operate as a background task / bottom half.
+ *
+ * The function implementation must be structured in the following manner:
+ * @code
+ * OS_DEV_TASK(widget_task)
+ * {
+ * OS_DEV_TASK_SETUP(widget_task);
+ *
+ * while OS_DEV_TASK_CONDITION(widget_task) }
+ *
+ * };
+ * }
+ * @endcode
+ *
+ * @todo In some systems the OS_DEV_TASK_CONDITION() will be an action which
+ * will cause the task to sleep on some event triggered by os_run_task(). In
+ * others, the macro will reference a variable laid down by
+ * OS_DEV_TASK_SETUP() to make sure that the loop is only performed once.
+ *
+ * @param function_name The name of this background task function
+ */
+#define OS_DEV_TASK(function_name)
+
+ /*! @} *//* drsigs */
+
+/*! @defgroup dclsigs Routines to declare Driver Signature routines
+ *
+ * These macros drop prototypes suitable for forward-declaration of
+ * @ref drsigs "function signatures".
+ */
+
+/*! @addtogroup dclsigs */
+/*! @{ */
+
+/*!
+ * Declare prototype for the device initialization function
+ *
+ * @param function_name The name of the portable initialization function.
+ */
+#define OS_DEV_INIT_DCL(function_name)
+
+/*!
+ * Declare prototype for the device shutdown function
+ *
+ * @param function_name The name of the portable driver shutdown routine.
+ *
+ * @return A call to #os_dev_shutdown_return()
+ */
+#define OS_DEV_SHUTDOWN_DCL(function_name)
+
+/*!
+ * Declare prototype for the open() function.
+ *
+ * @param function_name The name of the driver open() function
+ *
+ * @return A call to #os_dev_open_return()
+ */
+#define OS_DEV_OPEN_DCL(function_name)
+
+/*!
+ * Declare prototype for the user's ioctl() request function
+ *
+ * @param function_name The name of the driver ioctl() function
+ *
+ * @return A call to #os_dev_ioctl_return()
+ */
+#define OS_DEV_IOCTL_DCL(function_name)
+
+/*!
+ * Declare prototype for the function a user's read() request
+ *
+ * @param function_name The name of the driver read() function
+ */
+#define OS_DEV_READ_DCL(function_name)
+
+/*!
+ * Declare prototype for the user's write() request function
+ *
+ * @param function_name The name of the driver write() function
+ */
+#define OS_DEV_WRITE_DCL(function_name)
+
+/*!
+ * Declare prototype for the user's mmap() request function
+ *
+ * @param function_name The name of the driver mmap() function
+ */
+#define OS_DEV_MMAP_DCL(function_name)
+
+/*!
+ * Declare prototype for the close function
+ *
+ * @param function_name The name of the driver close() function
+ *
+ * @return A call to #os_dev_close_return()
+ */
+#define OS_DEV_CLOSE_DCL(function_name)
+
+/*!
+ * Declare prototype for the interrupt handling function
+ *
+ * @param function_name The name of the driver ISR function
+ */
+#define OS_DEV_ISR_DCL(function_name)
+
+/*!
+ * Declare prototype for a background task / bottom half function
+ *
+ * @param function_name The name of this background task function
+ */
+#define OS_DEV_TASK_DCL(function_name)
+
+ /*! @} *//* dclsigs */
+
+/*****************************************************************************
+ * Functions for Returning Values from Driver Signature routines
+ *****************************************************************************/
+
+/*!
+ * @defgroup retfns Functions to Return Values from Driver Signature routines
+ */
+
+/*! @addtogroup retfns */
+/*! @{ */
+
+/*!
+ * Return from the #OS_DEV_INIT() function
+ *
+ * @param code An error code to report success or failure.
+ *
+ */
+void os_dev_init_return(os_error_code code);
+
+/*!
+ * Return from the #OS_DEV_SHUTDOWN() function
+ *
+ * @param code An error code to report success or failure.
+ *
+ */
+void os_dev_shutdown_return(os_error_code code);
+
+/*!
+ * Return from the #OS_DEV_ISR() function
+ *
+ * The function should verify that it really was supposed to be called,
+ * and that its device needed attention, in order to properly set the
+ * return code.
+ *
+ * @param code non-zero if interrupt handled, zero otherwise.
+ *
+ */
+void os_dev_isr_return(int code);
+
+/*!
+ * Return from the #OS_DEV_OPEN() function
+ *
+ * @param code An error code to report success or failure.
+ *
+ */
+void os_dev_open_return(os_error_code code);
+
+/*!
+ * Return from the #OS_DEV_IOCTL() function
+ *
+ * @param code An error code to report success or failure.
+ *
+ */
+void os_dev_ioctl_return(os_error_code code);
+
+/*!
+ * Return from the #OS_DEV_READ() function
+ *
+ * @param code Number of bytes read, or an error code to report failure.
+ *
+ */
+void os_dev_read_return(os_error_code code);
+
+/*!
+ * Return from the #OS_DEV_WRITE() function
+ *
+ * @param code Number of bytes written, or an error code to report failure.
+ *
+ */
+void os_dev_write_return(os_error_code code);
+
+/*!
+ * Return from the #OS_DEV_MMAP() function
+ *
+ * @param code Number of bytes written, or an error code to report failure.
+ *
+ */
+void os_dev_mmap_return(os_error_code code);
+
+/*!
+ * Return from the #OS_DEV_CLOSE() function
+ *
+ * @param code An error code to report success or failure.
+ *
+ */
+void os_dev_close_return(os_error_code code);
+
+/*!
+ * Start the #OS_DEV_TASK() function
+ *
+ * In some implementations, this could be turned into a label for
+ * the os_dev_task_return() call.
+ *
+ * For a more portable interface, should this take the sleep object as an
+ * argument???
+ *
+ * @return none
+ */
+void os_dev_task_begin(void);
+
+/*!
+ * Return from the #OS_DEV_TASK() function
+ *
+ * In some implementations, this could be turned into a sleep followed
+ * by a jump back to the os_dev_task_begin() call.
+ *
+ * @param code An error code to report success or failure.
+ *
+ */
+void os_dev_task_return(os_error_code code);
+
+ /*! @} *//* retfns */
+
+/*****************************************************************************
+ * Functions/Macros for accessing arguments from Driver Signature routines
+ *****************************************************************************/
+
+/*! @defgroup drsigargs Functions for Getting Arguments in Signature functions
+ *
+ */
+/* @addtogroup @drsigargs */
+/*! @{ */
+
+/*!
+ * Check whether user is requesting read (permission) on the file/device.
+ * Usable in #OS_DEV_OPEN(), #OS_DEV_CLOSE(), #OS_DEV_IOCTL(), #OS_DEV_READ()
+ * and #OS_DEV_WRITE() routines.
+ */
+int os_dev_is_flag_read(void);
+
+/*!
+ * Check whether user is requesting write (permission) on the file/device.
+ * Usable in #OS_DEV_OPEN(), #OS_DEV_CLOSE(), #OS_DEV_IOCTL(), #OS_DEV_READ()
+ * and #OS_DEV_WRITE() routines.
+ */
+int os_dev_is_flag_write(void);
+
+/*!
+ * Check whether user is requesting non-blocking I/O. Usable in
+ * #OS_DEV_OPEN(), #OS_DEV_CLOSE(), #OS_DEV_IOCTL(), #OS_DEV_READ() and
+ * #OS_DEV_WRITE() routines.
+ *
+ * @todo Specify required behavior when nonblock is requested and (sufficient?)
+ * data are not available to fulfill the request.
+ *
+ */
+int os_dev_is_flag_nonblock(void);
+
+/*!
+ * Determine which major device is being accessed. Usable in #OS_DEV_OPEN()
+ * and #OS_DEV_CLOSE().
+ */
+int os_dev_get_major(void);
+
+/*!
+ * Determine which minor device is being accessed. Usable in #OS_DEV_OPEN()
+ * and #OS_DEV_CLOSE().
+ */
+int os_dev_get_minor(void);
+
+/*!
+ * Determine which operation the user wants performed. Usable in
+ * #OS_DEV_IOCTL().
+ *
+ * @return Value of the operation.
+ *
+ * @todo Define some generic way to define the individual operations.
+ */
+unsigned os_dev_get_ioctl_op(void);
+
+/*!
+ * Retrieve the associated argument for the desired operation. Usable in
+ * #OS_DEV_IOCTL().
+ *
+ * @return A value which can be cast to a struct pointer or used as
+ * int/long.
+ */
+os_dev_ioctl_arg_t os_dev_get_ioctl_arg(void);
+
+/*!
+ * Determine the requested byte count. This should be the size of buffer at
+ * #os_dev_get_user_buffer(). Usable in OS_DEV_READ() and OS_DEV_WRITE()
+ * routines.
+ *
+ * @return A count of bytes
+ */
+unsigned os_dev_get_count(void);
+
+/*!
+ * Get the pointer to the user's data buffer. Usable in OS_DEV_READ(),
+ * OS_DEV_WRITE(), and OS_DEV_MMAP() routines.
+ *
+ * @return Pointer to user buffer (in user space). See #os_copy_to_user()
+ * and #os_copy_from_user().
+ */
+void *os_dev_get_user_buffer(void);
+
+/*!
+ * Get the POSIX flags field for the associated open file. Usable in
+ * OS_DEV_READ(), OS_DEV_WRITE(), and OS_DEV_IOCTL() routines.
+ *
+ * @return The flags associated with the file.
+ */
+unsigned os_dev_get_file_flags(void);
+
+/*!
+ * Set the driver's private structure associated with this file/open.
+ *
+ * Generally used during #OS_DEV_OPEN(). May also be used during
+ * #OS_DEV_READ(), #OS_DEV_WRITE(), #OS_DEV_IOCTL(), #OS_DEV_MMAP(), and
+ * #OS_DEV_CLOSE(). See also #os_dev_get_user_private().
+ *
+ * @param struct_p The driver data structure to associate with this user.
+ */
+void os_dev_set_user_private(void *struct_p);
+
+/*!
+ * Get the driver's private structure associated with this file.
+ *
+ * May be used during #OS_DEV_OPEN(), #OS_DEV_READ(), #OS_DEV_WRITE(),
+ * #OS_DEV_IOCTL(), #OS_DEV_MMAP(), and #OS_DEV_CLOSE(). See
+ * also #os_dev_set_user_private().
+ *
+ * @return The driver data structure to associate with this user.
+ */
+void *os_dev_get_user_private(void);
+
+/*!
+ * Get the IRQ associated with this call to the #OS_DEV_ISR() function.
+ *
+ * @return The IRQ (integer) interrupt number.
+ */
+int os_dev_get_irq(void);
+
+ /*! @} *//* drsigargs */
+
+/*****************************************************************************
+ * Functions for Generating References to Driver Routines
+ *****************************************************************************/
+
+/*!
+ * @defgroup drref Functions for Generating References to Driver Routines
+ *
+ * These functions will most likely be implemented as macros. They are a
+ * necessary part of the portable API to guarantee portability. The @c symbol
+ * type in here is the same symbol passed to the associated
+ * signature-generating macro.
+ *
+ * These macros must be used whenever referring to a
+ * @ref drsigs "driver signature function", for instance when storing or
+ * passing a pointer to the function.
+ */
+
+/*! @addtogroup drref */
+/*! @{ */
+
+/*!
+ * Generate a reference to an #OS_DEV_INIT() function
+ *
+ * @param function_name The name of the init function being referenced.
+ *
+ * @return A reference to the function
+ */
+os_init_function_t OS_DEV_INIT_REF(symbol function_name);
+
+/*!
+ * Generate a reference to an #OS_DEV_SHUTDOWN() function
+ *
+ * @param function_name The name of the shutdown function being referenced.
+ *
+ * @return A reference to the function
+ */
+os_shutdown_function_t OS_DEV_SHUTDOWN_REF(symbol function_name);
+
+/*!
+ * Generate a reference to an #OS_DEV_OPEN() function
+ *
+ * @param function_name The name of the open function being referenced.
+ *
+ * @return A reference to the function
+ */
+os_user_function_t OS_DEV_OPEN_REF(symbol function_name);
+
+/*!
+ * Generate a reference to an #OS_DEV_CLOSE() function
+ *
+ * @param function_name The name of the close function being referenced.
+ *
+ * @return A reference to the function
+ */
+os_user_function_t OS_DEV_CLOSE_REF(symbol function_name);
+
+/*!
+ * Generate a reference to an #OS_DEV_READ() function
+ *
+ * @param function_name The name of the read function being referenced.
+ *
+ * @return A reference to the function
+ */
+os_user_function_t OS_DEV_READ_REF(symbol function_name);
+
+/*!
+ * Generate a reference to an #OS_DEV_WRITE() function
+ *
+ * @param function_name The name of the write function being referenced.
+ *
+ * @return A reference to the function
+ */
+os_user_function_t OS_DEV_WRITE_REF(symbol function_name);
+
+/*!
+ * Generate a reference to an #OS_DEV_IOCTL() function
+ *
+ * @param function_name The name of the ioctl function being referenced.
+ *
+ * @return A reference to the function
+ */
+os_user_function_t OS_DEV_IOCTL_REF(symbol function_name);
+
+/*!
+ * Generate a reference to an #OS_DEV_MMAP() function
+ *
+ * @param function_name The name of the mmap function being referenced.
+ *
+ * @return A reference to the function
+ */
+os_user_function_t OS_DEV_MMAP_REF(symbol function_name);
+
+/*!
+ * Generate a reference to an #OS_DEV_ISR() function
+ *
+ * @param function_name The name of the isr being referenced.
+ *
+ * @return a reference to the function
+ */
+os_interrupt_handler_t OS_DEV_ISR_REF(symbol function_name);
+
+ /*! @} *//* drref */
+
+/*!
+ * Flush and invalidate all cache lines.
+ */
+void os_flush_cache_all(void);
+
+/*!
+ * Flush a range of addresses from the cache
+ *
+ * @param start Starting virtual address
+ * @param len Number of bytes to flush
+ */
+void os_cache_flush_range(void *start, uint32_t len);
+
+/*!
+ * Invalidate a range of addresses in the cache
+ *
+ * @param start Starting virtual address
+ * @param len Number of bytes to flush
+ */
+void os_cache_inv_range(void *start, uint32_t len);
+
+/*!
+ * Clean a range of addresses from the cache
+ *
+ * @param start Starting virtual address
+ * @param len Number of bytes to flush
+ */
+void os_cache_clean_range(void *start, uint32_t len);
+
+/*!
+ * @example widget.h
+ */
+
+/*!
+ * @example widget.c
+ */
+
+/*!
+ * @example rng_driver.h
+ */
+
+/*!
+ * @example rng_driver.c
+ */
+
+/*!
+ * @example shw_driver.h
+ */
+
+/*!
+ * @example shw_driver.c
+ */
+
+#endif /* DOXYGEN_PORTABLE_OS_DOC */
+
+#endif /* PORTABLE_OS_H */
diff --git a/drivers/mxc/security/sahara2/include/sah_driver_common.h b/drivers/mxc/security/sahara2/include/sah_driver_common.h
new file mode 100644
index 000000000000..bcdc053bf0c3
--- /dev/null
+++ b/drivers/mxc/security/sahara2/include/sah_driver_common.h
@@ -0,0 +1,102 @@
+/*
+ * Copyright (C) 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/**
+* @file sah_driver_common.h
+*
+* @brief Provides types and defined values for use in the Driver Interface.
+*
+*/
+
+#ifndef SAH_DRIVER_COMMON_H
+#define SAH_DRIVER_COMMON_H
+
+#include "fsl_platform.h"
+#include <sahara.h>
+#include <adaptor.h>
+
+/** This specifies the permissions for the device file. It is equivalent to
+ * chmod 666.
+ */
+#define SAHARA_DEVICE_MODE S_IFCHR | S_IRUGO | S_IWUGO
+
+/**
+* The status of entries in the Queue.
+*
+******************************************************************************/
+typedef enum
+{
+ /** This state indicates that the entry is in the queue and awaits
+ * execution on SAHARA. */
+ SAH_STATE_PENDING,
+ /** This state indicates that the entry has been written to the SAHARA
+ * DAR. */
+ SAH_STATE_ON_SAHARA,
+ /** This state indicates that the entry is off of SAHARA, and is awaiting
+ post-processing. */
+ SAH_STATE_OFF_SAHARA,
+ /** This state indicates that the entry is successfully executed on SAHARA,
+ and it is finished with post-processing. */
+ SAH_STATE_COMPLETE,
+ /** This state indicates that the entry caused an error or fault on SAHARA,
+ * and it is finished with post-processing. */
+ SAH_STATE_FAILED,
+ /** This state indicates that the entry was reset via the Reset IO
+ * Control, and it is finished with post-processing. */
+ SAH_STATE_RESET,
+ /** This state indicates that the entry was signalled from user-space and
+ * either in the DAR, IDAR or has finished executing pending Bottom Half
+ * processing. */
+ SAH_STATE_IGNORE,
+ /** This state indicates that the entry was signalled from user-space and
+ * has been processed by the bottom half. */
+ SAH_STATE_IGNORED
+} sah_Queue_Status;
+
+/* any of these conditions being true indicates the descriptor's processing
+ * is complete */
+#define SAH_DESC_PROCESSED(status) \
+ (((status) == SAH_STATE_COMPLETE) || \
+ ((status) == SAH_STATE_FAILED ) || \
+ ((status) == SAH_STATE_RESET ))
+
+extern os_lock_t desc_queue_lock;
+
+extern uint32_t dar_count;
+extern uint32_t interrupt_count;
+extern uint32_t done1done2_count;
+extern uint32_t done1busy2_count;
+extern uint32_t done1_count;
+
+#ifdef FSL_HAVE_SCC2
+extern void *lookup_user_partition(fsl_shw_uco_t * user_ctx,
+ uint32_t user_base);
+#endif
+
+int sah_get_results_pointers(fsl_shw_uco_t* user_ctx, uint32_t arg);
+fsl_shw_return_t sah_get_results_from_pool(volatile fsl_shw_uco_t* user_ctx,
+ sah_results *arg);
+fsl_shw_return_t sah_handle_registration(fsl_shw_uco_t *user_cts);
+fsl_shw_return_t sah_handle_deregistration(fsl_shw_uco_t *user_cts);
+
+int sah_Queue_Manager_Count_Entries(int ignore_state, sah_Queue_Status state);
+unsigned long sah_Handle_Poll(sah_Head_Desc *entry);
+
+#ifdef DIAG_DRV_IF
+/******************************************************************************
+* Descriptor and Link dumping functions.
+******************************************************************************/
+void sah_Dump_Chain(const sah_Desc *chain, dma_addr_t addr);
+#endif /* DIAG_DRV_IF */
+
+#endif /* SAH_DRIVER_COMMON_H */
diff --git a/drivers/mxc/security/sahara2/include/sah_hardware_interface.h b/drivers/mxc/security/sahara2/include/sah_hardware_interface.h
new file mode 100644
index 000000000000..f507a835a504
--- /dev/null
+++ b/drivers/mxc/security/sahara2/include/sah_hardware_interface.h
@@ -0,0 +1,99 @@
+/*
+ * Copyright (C) 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/**
+* @file sah_hardware_interface.h
+*
+* @brief Provides an interface to the SAHARA hardware registers.
+*
+*/
+
+#ifndef SAH_HARDWARE_INTERFACE_H
+#define SAH_HARDWARE_INTERFACE_H
+
+#include <sah_driver_common.h>
+#include <sah_status_manager.h>
+
+/* These values can be used with sah_HW_Write_Control(). */
+#ifdef SAHARA1
+/** Define platform as Little-Endian */
+#define CTRL_LITTLE_END 0x00000002
+/** Bit to cause endian change in transfers */
+#define CTRL_INT_EN 0x00000004
+/** Set High Assurance mode */
+#define CTRL_HA 0x00000008
+#else
+/** Bit to cause byte swapping in (data?) transfers */
+#define CTRL_BYTE_SWAP 0x00000001
+/** Bit to cause halfword swapping in (data?) transfers */
+#define CTRL_HALFWORD_SWAP 0x00000002
+/** Bit to cause endian change in (data?) transfers */
+#define CTRL_INT_EN 0x00000010
+/** Set High Assurance mode */
+#define CTRL_HA 0x00000020
+/** Disable High Assurance */
+#define CTRL_HA_DISABLE 0x00000040
+/** Reseed the RNG CHA */
+#define CTRL_RNG_RESEED 0x00000080
+#endif
+
+
+/* These values can be used with sah_HW_Write_Command(). */
+/** Reset the Sahara */
+#define CMD_RESET 0x00000001
+/** Set Sahara into Batch mode. */
+#define CMD_BATCH 0x00010000
+/** Clear the Sahara interrupt */
+#define CMD_CLR_INT_BIT 0x00000100
+/** Clear the Sahara error */
+#define CMD_CLR_ERROR_BIT 0x00000200
+
+
+/** error status register contains error */
+#define STATUS_ERROR 0x00000010
+
+/** Op status register contains op status */
+#define OP_STATUS 0x00000020
+
+
+/* High Level functions */
+int sah_HW_Reset(void);
+fsl_shw_return_t sah_HW_Set_HA(void);
+sah_Execute_Status sah_Wait_On_Sahara(void);
+
+/* Low Level functions */
+uint32_t sah_HW_Read_Version(void);
+uint32_t sah_HW_Read_Control(void);
+uint32_t sah_HW_Read_Status(void);
+uint32_t sah_HW_Read_Error_Status(void);
+uint32_t sah_HW_Read_Op_Status(void);
+uint32_t sah_HW_Read_DAR(void);
+uint32_t sah_HW_Read_CDAR(void);
+uint32_t sah_HW_Read_IDAR(void);
+uint32_t sah_HW_Read_Fault_Address(void);
+uint32_t sah_HW_Read_MM_Status(void);
+uint32_t sah_HW_Read_Config(void);
+void sah_HW_Write_Command(uint32_t command);
+void sah_HW_Write_Control(uint32_t control);
+void sah_HW_Write_DAR(uint32_t pointer);
+void sah_HW_Write_Config(uint32_t configuration);
+
+#if defined DIAG_DRV_IF || defined(DO_DBG)
+
+void sah_Dump_Words(const char *prefix, const unsigned *data, dma_addr_t addr,
+ unsigned length);
+#endif
+
+#endif /* SAH_HARDWARE_INTERFACE_H */
+
+/* End of sah_hardware_interface.c */
diff --git a/drivers/mxc/security/sahara2/include/sah_interrupt_handler.h b/drivers/mxc/security/sahara2/include/sah_interrupt_handler.h
new file mode 100644
index 000000000000..fc4d77475f85
--- /dev/null
+++ b/drivers/mxc/security/sahara2/include/sah_interrupt_handler.h
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/**
+* @file sah_interrupt_handler.h
+*
+* @brief Provides a hardware interrupt handling mechanism for device driver.
+*
+*/
+/******************************************************************************
+*
+* CAUTION:
+*
+* MODIFICATION HISTORY:
+*
+* Date Person Change
+* 30/07/03 MW Initial Creation
+*******************************************************************
+*/
+
+#ifndef SAH_INTERRUPT_HANDLER_H
+#define SAH_INTERRUPT_HANDLER_H
+
+#include <sah_driver_common.h>
+
+/******************************************************************************
+* External function declarations
+******************************************************************************/
+int sah_Intr_Init (wait_queue_head_t *wait_queue);
+void sah_Intr_Release (void);
+
+#endif /* SAH_INTERRUPT_HANDLER_H */
diff --git a/drivers/mxc/security/sahara2/include/sah_kernel.h b/drivers/mxc/security/sahara2/include/sah_kernel.h
new file mode 100644
index 000000000000..e39a61e64430
--- /dev/null
+++ b/drivers/mxc/security/sahara2/include/sah_kernel.h
@@ -0,0 +1,113 @@
+/*
+ * Copyright (C) 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*
+* @file sah_kernel.h
+*
+* @brief Provides definitions for items that user-space and kernel-space share.
+*/
+/******************************************************************************
+*
+* This file needs to be PORTED to a non-Linux platform
+*/
+
+#ifndef SAH_KERNEL_H
+#define SAH_KERNEL_H
+
+#if defined(__KERNEL__)
+
+#if defined(CONFIG_ARCH_MXC91321) || defined(CONFIG_ARCH_MXC91231) \
+ || defined(CONFIG_ARCH_MX27) || defined(CONFIG_ARCH_MXC92323)
+#include <mach/hardware.h>
+#define SAHA_BASE_ADDR SAHARA_BASE_ADDR
+#define SAHARA_IRQ MXC_INT_SAHARA
+#elif defined(CONFIG_ARCH_MX5)
+#include <mach/hardware.h>
+#define SAHA_BASE_ADDR SAHARA_BASE_ADDR
+#define SAHARA_IRQ MXC_INT_SAHARA_H0
+#else
+#include <mach/mx2.h>
+#endif
+
+#endif /* KERNEL */
+
+/* IO Controls */
+/* The magic number 'k' is reserved for the SPARC architecture. (See <kernel
+ * source root>/Documentation/ioctl-number.txt.
+ *
+ * Note: Numbers 8-13 were used in a previous version of the API and should
+ * be avoided.
+ */
+#define SAH_IOC_MAGIC 'k'
+#define SAHARA_HWRESET _IO(SAH_IOC_MAGIC, 0)
+#define SAHARA_SET_HA _IO(SAH_IOC_MAGIC, 1)
+#define SAHARA_CHK_TEST_MODE _IOR(SAH_IOC_MAGIC,2, int)
+#define SAHARA_DAR _IO(SAH_IOC_MAGIC, 3)
+#define SAHARA_GET_RESULTS _IO(SAH_IOC_MAGIC, 4)
+#define SAHARA_REGISTER _IO(SAH_IOC_MAGIC, 5)
+#define SAHARA_DEREGISTER _IO(SAH_IOC_MAGIC, 6)
+/* 7 */
+/* 8 */
+/* 9 */
+/* 10 */
+/* 11 */
+/* 12 */
+/* 13 */
+
+#define SAHARA_SCC_DROP_PERMS _IOWR(SAH_IOC_MAGIC, 14, scc_partition_info_t)
+#define SAHARA_SCC_SFREE _IOWR(SAH_IOC_MAGIC, 15, scc_partition_info_t)
+
+#define SAHARA_SK_ALLOC _IOWR(SAH_IOC_MAGIC, 16, scc_slot_t)
+#define SAHARA_SK_DEALLOC _IOWR(SAH_IOC_MAGIC, 17, scc_slot_t)
+#define SAHARA_SK_LOAD _IOWR(SAH_IOC_MAGIC, 18, scc_slot_t)
+#define SAHARA_SK_UNLOAD _IOWR(SAH_IOC_MAGIC, 19, scc_slot_t)
+#define SAHARA_SK_SLOT_ENC _IOWR(SAH_IOC_MAGIC, 20, scc_slot_t)
+#define SAHARA_SK_SLOT_DEC _IOWR(SAH_IOC_MAGIC, 21, scc_slot_t)
+
+#define SAHARA_SCC_ENCRYPT _IOWR(SAH_IOC_MAGIC, 22, scc_region_t)
+#define SAHARA_SCC_DECRYPT _IOWR(SAH_IOC_MAGIC, 23, scc_region_t)
+#define SAHARA_GET_CAPS _IOWR(SAH_IOC_MAGIC, 24, fsl_shw_pco_t)
+
+#define SAHARA_SCC_SSTATUS _IOWR(SAH_IOC_MAGIC, 25, scc_partition_info_t)
+
+#define SAHARA_SK_READ _IOWR(SAH_IOC_MAGIC, 29, scc_slot_t)
+
+/*! This is the name that will appear in /proc/interrupts */
+#define SAHARA_NAME "SAHARA"
+
+/*!
+ * SAHARA IRQ number. See page 9-239 of TLICS - Motorola Semiconductors H.K.
+ * TAHITI-Lite IC Specification, Rev 1.1, Feb 2003.
+ *
+ * TAHITI has two blocks of 32 interrupts. The SAHARA IRQ is number 27
+ * in the second block. This means that the SAHARA IRQ is 27 + 32 = 59.
+ */
+#ifndef SAHARA_IRQ
+#define SAHARA_IRQ (27+32)
+#endif
+
+/*!
+ * Device file definition. The #ifndef is here to support the unit test code
+ * by allowing it to specify a different test device.
+ */
+#ifndef SAHARA_DEVICE_SHORT
+#define SAHARA_DEVICE_SHORT "sahara"
+#endif
+
+#ifndef SAHARA_DEVICE
+#define SAHARA_DEVICE "/dev/"SAHARA_DEVICE_SHORT
+#endif
+
+#endif /* SAH_KERNEL_H */
+
+/* End of sah_kernel.h */
diff --git a/drivers/mxc/security/sahara2/include/sah_memory_mapper.h b/drivers/mxc/security/sahara2/include/sah_memory_mapper.h
new file mode 100644
index 000000000000..ddf4a59af540
--- /dev/null
+++ b/drivers/mxc/security/sahara2/include/sah_memory_mapper.h
@@ -0,0 +1,79 @@
+/*
+ * Copyright (C) 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/**
+* @file sah_memory_mapper.h
+*
+* @brief Re-creates SAHARA data structures in Kernel memory such that they are
+* suitable for DMA.
+*
+*/
+
+#ifndef SAH_MEMORY_MAPPER_H
+#define SAH_MEMORY_MAPPER_H
+
+#include <sah_driver_common.h>
+#include <sah_queue_manager.h>
+
+
+/******************************************************************************
+* External function declarations
+******************************************************************************/
+sah_Head_Desc *sah_Copy_Descriptors(fsl_shw_uco_t * user_ctx,
+ sah_Head_Desc * desc);
+
+sah_Link *sah_Copy_Links(fsl_shw_uco_t * user_ctx, sah_Link * ptr);
+
+sah_Head_Desc *sah_Physicalise_Descriptors(sah_Head_Desc * desc);
+
+sah_Link *sah_Physicalise_Links (sah_Link *ptr);
+
+sah_Head_Desc *sah_DePhysicalise_Descriptors (sah_Head_Desc *desc);
+
+sah_Link *sah_DePhysicalise_Links (sah_Link *ptr);
+
+sah_Link *sah_Make_Links(fsl_shw_uco_t * user_ctx,
+ sah_Link * ptr, sah_Link ** tail);
+
+
+void sah_Destroy_Descriptors (sah_Head_Desc *desc);
+
+void sah_Destroy_Links (sah_Link *link);
+
+void sah_Free_Chained_Descriptors (sah_Head_Desc *desc);
+
+void sah_Free_Chained_Links (sah_Link *link);
+
+int sah_Init_Mem_Map (void);
+
+void sah_Stop_Mem_Map (void);
+
+int sah_Block_Add_Page (int big);
+
+sah_Desc *sah_Alloc_Descriptor (void);
+sah_Head_Desc *sah_Alloc_Head_Descriptor (void);
+void sah_Free_Descriptor (sah_Desc *desc);
+void sah_Free_Head_Descriptor (sah_Head_Desc *desc);
+sah_Link *sah_Alloc_Link (void);
+void sah_Free_Link (sah_Link *link);
+
+void *wire_user_memory(void *address, uint32_t length, void **page_ctx);
+void unwire_user_memory(void **page_ctx);
+
+os_error_code map_user_memory(struct vm_area_struct *vma,
+ uint32_t physical_addr, uint32_t size);
+os_error_code unmap_user_memory(uint32_t user_addr, uint32_t size);
+
+#endif /* SAH_MEMORY_MAPPER_H */
+
+/* End of sah_memory_mapper.h */
diff --git a/drivers/mxc/security/sahara2/include/sah_queue_manager.h b/drivers/mxc/security/sahara2/include/sah_queue_manager.h
new file mode 100644
index 000000000000..895006f7ab91
--- /dev/null
+++ b/drivers/mxc/security/sahara2/include/sah_queue_manager.h
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/**
+* @file sah_queue_manager.h
+*
+* @brief This file definitions for the Queue Manager.
+
+* The Queue Manager manages additions and removal from the queue and updates
+* the status of queue entries. It also calls sah_HW_* functions to interact
+* with the hardware.
+*
+*/
+
+#ifndef SAH_QUEUE_MANAGER_H
+#define SAH_QUEUE_MANAGER_H
+
+#include <sah_driver_common.h>
+#include <sah_status_manager.h>
+
+
+/*************************
+* Queue Manager Functions
+*************************/
+fsl_shw_return_t sah_Queue_Manager_Init(void);
+void sah_Queue_Manager_Close(void);
+void sah_Queue_Manager_Reset_Entries(void);
+void sah_Queue_Manager_Append_Entry(sah_Head_Desc *entry);
+void sah_Queue_Manager_Remove_Entry(sah_Head_Desc *entry);
+
+
+/*************************
+* Queue Functions
+*************************/
+sah_Queue *sah_Queue_Construct(void);
+void sah_Queue_Destroy(sah_Queue *this);
+void sah_Queue_Append_Entry(sah_Queue *this, sah_Head_Desc *entry);
+void sah_Queue_Remove_Entry(sah_Queue *this);
+void sah_Queue_Remove_Any_Entry(sah_Queue *this, sah_Head_Desc *entry);
+void sah_postprocess_queue(unsigned long reset_flag);
+
+
+/*************************
+* Misc Releated Functions
+*************************/
+
+int sah_blocking_mode(struct sah_Head_Desc *entry);
+fsl_shw_return_t sah_convert_error_status(uint32_t error_status);
+
+
+#endif /* SAH_QUEUE_MANAGER_H */
+
+/* End of sah_queue_manager.h */
diff --git a/drivers/mxc/security/sahara2/include/sah_status_manager.h b/drivers/mxc/security/sahara2/include/sah_status_manager.h
new file mode 100644
index 000000000000..63660b53c94f
--- /dev/null
+++ b/drivers/mxc/security/sahara2/include/sah_status_manager.h
@@ -0,0 +1,228 @@
+/*
+ * Copyright (C) 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/**
+* @file sah_status_manager.h
+*
+* @brief SAHARA Status Manager Types and Function Prototypes
+*
+* @author Stuart Holloway (SH)
+*
+*/
+
+#ifndef STATUS_MANAGER_H
+#define STATUS_MANAGER_H
+#include "sah_driver_common.h"
+#include "sahara.h"
+
+
+/******************************************************************************
+* User defined data types
+******************************************************************************/
+/**
+******************************************************************************
+* sah_Execute_Status
+* Types read from SAHARA Status Register, with additional state for Op Status
+******************************************************************************/
+typedef enum sah_Execute_Status
+{
+ /** Sahara is Idle. */
+ SAH_EXEC_IDLE = 0,
+ /** SAHARA is busy performing a resest or processing a decriptor chain. */
+ SAH_EXEC_BUSY = 1,
+ /** An error occurred while SAHARA executed the first descriptor. */
+ SAH_EXEC_ERROR1 = 2,
+ /** SAHARA has failed internally. */
+ SAH_EXEC_FAULT = 3,
+ /** SAHARA has finished processing a descriptor chain and is idle. */
+ SAH_EXEC_DONE1 = 4,
+ /** SAHARA has finished processing a descriptor chain, and is processing a
+ * second chain. */
+ SAH_EXEC_DONE1_BUSY2 = 5,
+ /** SAHARA has finished processing a descriptor chain, but has generated an
+ * error while processing a second descriptor chain. */
+ SAH_EXEC_DONE1_ERROR2 = 6,
+ /** SAHARA has finished two descriptors. */
+ SAH_EXEC_DONE1_DONE2 = 7,
+ /** SAHARA has stopped, and first descriptor has Op Status, not Err */
+ SAH_EXEC_OPSTAT1 = 0x20,
+} sah_Execute_Status;
+
+/**
+ * When this bit is on in a #sah_Execute_Status, it means that DONE1 is true.
+ */
+#define SAH_EXEC_DONE1_BIT 4
+
+/**
+ * Bits which make up the Sahara State
+ */
+#define SAH_EXEC_STATE_MASK 0x00000007
+
+/**
+*******************************************************************************
+* sah_Execute_Error
+* Types read from SAHARA Error Status Register
+******************************************************************************/
+typedef enum sah_Execute_Error
+{
+ /** No Error */
+ SAH_ERR_NONE = 0,
+ /** Header is not valid. */
+ SAH_ERR_HEADER = 1,
+ /** Descriptor length is not correct. */
+ SAH_ERR_DESC_LENGTH = 2,
+ /** Length or pointer field is zero while the other is non-zero. */
+ SAH_ERR_DESC_POINTER = 3,
+ /** Length of the link is not a multiple of 4 and is not the last link */
+ SAH_ERR_LINK_LENGTH = 4,
+ /** The data pointer in a link is zero */
+ SAH_ERR_LINK_POINTER = 5,
+ /** Input Buffer reported an overflow */
+ SAH_ERR_INPUT_BUFFER = 6,
+ /** Output Buffer reported an underflow */
+ SAH_ERR_OUTPUT_BUFFER = 7,
+ /** Incorrect data in output buffer after CHA's has signalled 'done'. */
+ SAH_ERR_OUTPUT_BUFFER_STARVATION = 8,
+ /** Internal Hardware Failure. */
+ SAH_ERR_INTERNAL_STATE = 9,
+ /** Current Descriptor was not legal, but cause is unknown. */
+ SAH_ERR_GENERAL_DESCRIPTOR = 10,
+ /** Reserved pointer fields have been set to 1. */
+ SAH_ERR_RESERVED_FIELDS = 11,
+ /** Descriptor address error */
+ SAH_ERR_DESCRIPTOR_ADDRESS = 12,
+ /** Link address error */
+ SAH_ERR_LINK_ADDRESS = 13,
+ /** Processing error in CHA module */
+ SAH_ERR_CHA = 14,
+ /** Processing error during DMA */
+ SAH_ERR_DMA = 15
+} sah_Execute_Error;
+
+
+/**
+*******************************************************************************
+* sah_CHA_Error_Source
+* Types read from SAHARA Error Status Register for CHA Error Source
+*
+******************************************************************************/
+typedef enum sah_CHA_Error_Source
+{
+ /** No Error indicated in Source CHA Error. */
+ SAH_CHA_NO_ERROR = 0,
+ /** Error in SKHA module. */
+ SAH_CHA_SKHA_ERROR = 1,
+ /** Error in MDHA module. */
+ SAH_CHA_MDHA_ERROR = 2,
+ /** Error in RNG module. */
+ SAH_CHA_RNG_ERROR = 3,
+ /** Error in PKHA module. */
+ SAH_CHA_PKHA_ERROR = 4,
+} sah_CHA_Error_Source;
+
+/**
+******************************************************************************
+* sah_CHA_Error_Status
+* Types read from SAHARA Error Status Register for CHA Error Status
+*
+******************************************************************************/
+typedef enum sah_CHA_Error_Status
+{
+ /** No CHA error detected */
+ SAH_CHA_NO_ERR = 0x000,
+ /** Non-empty input buffer when complete. */
+ SAH_CHA_IP_BUF = 0x001,
+ /** Illegal Address Error. */
+ SAH_CHA_ADD_ERR = 0x002,
+ /** Illegal Mode Error. */
+ SAH_CHA_MODE_ERR = 0x004,
+ /** Illegal Data Size Error. */
+ SAH_CHA_DATA_SIZE_ERR = 0x008,
+ /** Illegal Key Size Error. */
+ SAH_CHA_KEY_SIZE_ERR = 0x010,
+ /** Mode/Context/Key written during processing. */
+ SAH_CHA_PROC_ERR = 0x020,
+ /** Context Read During Processing. */
+ SAH_CHA_CTX_READ_ERR = 0x040,
+ /** Internal Hardware Error. */
+ SAH_CHA_INTERNAL_HW_ERR = 0x080,
+ /** Input Buffer not enabled or underflow. */
+ SAH_CHA_IP_BUFF_ERR = 0x100,
+ /** Output Buffer not enabled or overflow. */
+ SAH_CHA_OP_BUFF_ERR = 0x200,
+ /** DES key parity error (SKHA) */
+ SAH_CHA_DES_KEY_ERR = 0x400,
+ /** Reserved error code. */
+ SAH_CHA_RES = 0x800
+} sah_CHA_Error_Status;
+
+/**
+*****************************************************************************
+* sah_DMA_Error_Status
+* Types read from SAHARA Error Status Register for DMA Error Status
+******************************************************************************/
+typedef enum sah_DMA_Error_Status
+{
+ /** No DMA Error Code. */
+ SAH_DMA_NO_ERR = 0,
+ /** AHB terminated a bus cycle with an error. */
+ SAH_DMA_AHB_ERR = 2,
+ /** Internal IP bus cycle was terminated with an error termination. */
+ SAH_DMA_IP_ERR = 4,
+ /** Parity error detected on DMA command. */
+ SAH_DMA_PARITY_ERR = 6,
+ /** DMA was requested to cross a 256 byte internal address boundary. */
+ SAH_DMA_BOUNDRY_ERR = 8,
+ /** DMA controller is busy */
+ SAH_DMA_BUSY_ERR = 10,
+ /** Memory Bounds Error */
+ SAH_DMA_RESERVED_ERR = 12,
+ /** Internal DMA hardware error detected */
+ SAH_DMA_INT_ERR = 14
+} sah_DMA_Error_Status;
+
+/**
+*****************************************************************************
+* sah_DMA_Error_Size
+* Types read from SAHARA Error Status Register for DMA Error Size
+*
+******************************************************************************/
+typedef enum sah_DMA_Error_Size
+{
+ /** Error during Byte transfer. */
+ SAH_DMA_SIZE_BYTE = 0,
+ /** Error during Half-word transfer. */
+ SAH_DMA_SIZE_HALF_WORD = 1,
+ /** Error during Word transfer. */
+ SAH_DMA_SIZE_WORD = 2,
+ /** Reserved DMA word size. */
+ SAH_DMA_SIZE_RES = 3
+} sah_DMA_Error_Size;
+
+
+
+
+extern bool sah_dpm_flag;
+
+/*************************
+* Status Manager Functions
+*************************/
+
+unsigned long sah_Handle_Interrupt(sah_Execute_Status hw_status);
+sah_Head_Desc *sah_Find_With_State (sah_Queue_Status status);
+int sah_dpm_init(void);
+void sah_dpm_close(void);
+void sah_Queue_Manager_Prime (sah_Head_Desc *entry);
+
+
+#endif /* STATUS_MANAGER_H */
diff --git a/drivers/mxc/security/sahara2/include/sahara.h b/drivers/mxc/security/sahara2/include/sahara.h
new file mode 100644
index 000000000000..c66c125bc129
--- /dev/null
+++ b/drivers/mxc/security/sahara2/include/sahara.h
@@ -0,0 +1,2265 @@
+/*
+ * Copyright (C) 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file sahara.h
+ *
+ * File which implements the FSL_SHW API when used on Sahara
+ */
+/*!
+ * @if USE_MAINPAGE
+ * @mainpage Sahara2 implemtation of FSL Security Hardware API
+ * @endif
+ *
+ */
+
+#define _DIAG_DRV_IF
+#define _DIAG_SECURITY_FUNC
+#define _DIAG_ADAPTOR
+
+#ifndef SAHARA2_API_H
+#define SAHARA2_API_H
+
+#ifdef DIAG_SECURITY_FUNC
+#include <diagnostic.h>
+#endif /* DIAG_SECURITY_FUNC */
+
+/* This is a Linux flag... ? */
+#ifndef __KERNEL__
+#include <inttypes.h>
+#include <stdlib.h>
+#include <memory.h>
+#else
+#include "portable_os.h"
+#endif
+
+/* This definition may need a new name, and needs to go somewhere which
+ * can determine platform, kernel vs. user, os, etc.
+ */
+#define copy_bytes(out, in, len) memcpy(out, in, len)
+
+/* Does this belong here? */
+#ifndef SAHARA_DEVICE
+#define SAHARA_DEVICE "/dev/sahara"
+#endif
+
+/*!
+*******************************************************************************
+* @defgroup lnkflags Link Flags
+*
+* @brief Flags to show information about link data and link segments
+*
+******************************************************************************/
+/*! @addtogroup lnkflags
+ * @{
+ */
+
+/*!
+*******************************************************************************
+* This flag indicates that the data in a link is owned by the security
+* function component and this memory will be freed by the security function
+* component. To be used as part of the flag field of the sah_Link structure.
+******************************************************************************/
+#define SAH_OWNS_LINK_DATA 0x01
+
+/*!
+*******************************************************************************
+* The data in a link is not owned by the security function component and
+* therefore it will not attempt to free this memory. To be used as part of the
+* flag field of the sah_Link structure.
+******************************************************************************/
+#define SAH_USES_LINK_DATA 0x02
+
+/*!
+*******************************************************************************
+* The data in this link will change when the descriptor gets executed.
+******************************************************************************/
+#define SAH_OUTPUT_LINK 0x04
+
+/*!
+*******************************************************************************
+* The ptr and length in this link are really 'established key' info. They
+* are to be converted to ptr/length before putting on request queue.
+******************************************************************************/
+#define SAH_KEY_IS_HIDDEN 0x08
+
+/*!
+*******************************************************************************
+* The link structure has been appended to the previous one by the driver. It
+* needs to be removed before leaving the driver (and returning to API).
+******************************************************************************/
+#define SAH_REWORKED_LINK 0x10
+
+/*!
+*******************************************************************************
+* The length and data fields of this link contain the slot and user id
+* used to access the SCC stored key
+******************************************************************************/
+#define SAH_STORED_KEY_INFO 0x20
+
+/*!
+*******************************************************************************
+* The Data field points to a physical address, and does not need to be
+* processed by the driver. Honored only in Kernel API.
+******************************************************************************/
+#define SAH_PREPHYS_DATA 0x40
+
+/*!
+*******************************************************************************
+* The link was inserted during the Physicalise procedure. It is tagged so
+* it can be removed during DePhysicalise, thereby returning to the caller an
+* intact chain.
+******************************************************************************/
+#define SAH_LINK_INSERTED_LINK 0x80
+
+/*!
+*******************************************************************************
+* The Data field points to the location of the key, which is in a secure
+* partition held by the user. The memory address needs to be converted to
+* kernel space manually, by looking through the partitions that the user holds.
+******************************************************************************/
+#define SAH_IN_USER_KEYSTORE 0x100
+
+/*!
+*******************************************************************************
+* sah_Link_Flags
+*
+* Type to be used for flags associated with a Link in security function.
+* These flags are used internally by the security function component only.
+*
+* Values defined at @ref lnkflags
+*
+* @brief typedef for flags field of sah_Link
+******************************************************************************/
+typedef uint32_t sah_Link_Flags;
+
+/*
+*******************************************************************************
+* Security Parameters Related Structures
+*
+* All of structures associated with API parameters
+*
+******************************************************************************/
+
+/*
+*******************************************************************************
+* Common Types
+*
+* All of structures used across several classes of crytography
+******************************************************************************/
+
+/*!
+*******************************************************************************
+* @brief Indefinite precision integer used for security operations on SAHARA
+* accelerator. The data will always be in little Endian format.
+******************************************************************************/
+typedef uint8_t *sah_Int;
+
+/*!
+*******************************************************************************
+* @brief Byte array used for block cipher and hash digest/MAC operations on
+* SAHARA accelerator. The Endian format will be as specified by the function
+* using the sah_Oct_Str.
+******************************************************************************/
+typedef uint8_t *sah_Oct_Str;
+
+/*!
+ * A queue of descriptor heads -- used to hold requests waiting for user to
+ * pick up the results. */
+typedef struct sah_Queue {
+ int count; /*!< # entries in queue */
+ struct sah_Head_Desc *head; /*!< first entry in queue */
+ struct sah_Head_Desc *tail; /*!< last entry in queue */
+} sah_Queue;
+
+/******************************************************************************
+ * Enumerations
+ *****************************************************************************/
+/*!
+ * Flags for the state of the User Context Object (#fsl_shw_uco_t).
+ */
+typedef enum fsl_shw_user_ctx_flags_t {
+ /*!
+ * API will block the caller until operation completes. The result will be
+ * available in the return code. If this is not set, user will have to get
+ * results using #fsl_shw_get_results().
+ */
+ FSL_UCO_BLOCKING_MODE = 0x01,
+ /*!
+ * User wants callback (at the function specified with
+ * #fsl_shw_uco_set_callback()) when the operation completes. This flag is
+ * valid only if #FSL_UCO_BLOCKING_MODE is not set.
+ */
+ FSL_UCO_CALLBACK_MODE = 0x02,
+ /*! Do not free descriptor chain after driver (adaptor) finishes */
+ FSL_UCO_SAVE_DESC_CHAIN = 0x04,
+ /*!
+ * User has made at least one request with callbacks requested, so API is
+ * ready to handle others.
+ */
+ FSL_UCO_CALLBACK_SETUP_COMPLETE = 0x08,
+ /*!
+ * (virtual) pointer to descriptor chain is completely linked with physical
+ * (DMA) addresses, ready for the hardware. This flag should not be used
+ * by FSL SHW API programs.
+ */
+ FSL_UCO_CHAIN_PREPHYSICALIZED = 0x10,
+ /*!
+ * The user has changed the context but the changes have not been copied to
+ * the kernel driver.
+ */
+ FSL_UCO_CONTEXT_CHANGED = 0x20,
+ /*! Internal Use. This context belongs to a user-mode API user. */
+ FSL_UCO_USERMODE_USER = 0x40,
+} fsl_shw_user_ctx_flags_t;
+
+/*!
+ * Return code for FSL_SHW library.
+ *
+ * These codes may be returned from a function call. In non-blocking mode,
+ * they will appear as the status in a Result Object.
+ */
+typedef enum fsl_shw_return_t {
+ /*!
+ * No error. As a function return code in Non-blocking mode, this may
+ * simply mean that the operation was accepted for eventual execution.
+ */
+ FSL_RETURN_OK_S = 0,
+ /*! Failure for non-specific reason. */
+ FSL_RETURN_ERROR_S,
+ /*!
+ * Operation failed because some resource was not able to be allocated.
+ */
+ FSL_RETURN_NO_RESOURCE_S,
+ /*! Crypto algorithm unrecognized or improper. */
+ FSL_RETURN_BAD_ALGORITHM_S,
+ /*! Crypto mode unrecognized or improper. */
+ FSL_RETURN_BAD_MODE_S,
+ /*! Flag setting unrecognized or inconsistent. */
+ FSL_RETURN_BAD_FLAG_S,
+ /*! Improper or unsupported key length for algorithm. */
+ FSL_RETURN_BAD_KEY_LENGTH_S,
+ /*! Improper parity in a (DES, TDES) key. */
+ FSL_RETURN_BAD_KEY_PARITY_S,
+ /*!
+ * Improper or unsupported data length for algorithm or internal buffer.
+ */
+ FSL_RETURN_BAD_DATA_LENGTH_S,
+ /*! Authentication / Integrity Check code check failed. */
+ FSL_RETURN_AUTH_FAILED_S,
+ /*! A memory error occurred. */
+ FSL_RETURN_MEMORY_ERROR_S,
+ /*! An error internal to the hardware occurred. */
+ FSL_RETURN_INTERNAL_ERROR_S,
+ /*! ECC detected Point at Infinity */
+ FSL_RETURN_POINT_AT_INFINITY_S,
+ /*! ECC detected No Point at Infinity */
+ FSL_RETURN_POINT_NOT_AT_INFINITY_S,
+ /*! GCD is One */
+ FSL_RETURN_GCD_IS_ONE_S,
+ /*! GCD is not One */
+ FSL_RETURN_GCD_IS_NOT_ONE_S,
+ /*! Candidate is Prime */
+ FSL_RETURN_PRIME_S,
+ /*! Candidate is not Prime */
+ FSL_RETURN_NOT_PRIME_S,
+ /*! N register loaded improperly with even value */
+ FSL_RETURN_EVEN_MODULUS_ERROR_S,
+ /*! Divisor is zero. */
+ FSL_RETURN_DIVIDE_BY_ZERO_ERROR_S,
+ /*! Bad Exponent or Scalar value for Point Multiply */
+ FSL_RETURN_BAD_EXPONENT_ERROR_S,
+ /*! RNG hardware problem. */
+ FSL_RETURN_OSCILLATOR_ERROR_S,
+ /*! RNG hardware problem. */
+ FSL_RETURN_STATISTICS_ERROR_S,
+} fsl_shw_return_t;
+
+/*!
+ * Algorithm Identifier.
+ *
+ * Selection of algorithm will determine how large the block size of the
+ * algorithm is. Context size is the same length unless otherwise specified.
+ * Selection of algorithm also affects the allowable key length.
+ */
+typedef enum fsl_shw_key_alg_t {
+ /*!
+ * Key will be used to perform an HMAC. Key size is 1 to 64 octets. Block
+ * size is 64 octets.
+ */
+ FSL_KEY_ALG_HMAC,
+ /*!
+ * Advanced Encryption Standard (Rijndael). Block size is 16 octets. Key
+ * size is 16 octets. (The single choice of key size is a Sahara platform
+ * limitation.)
+ */
+ FSL_KEY_ALG_AES,
+ /*!
+ * Data Encryption Standard. Block size is 8 octets. Key size is 8
+ * octets.
+ */
+ FSL_KEY_ALG_DES,
+ /*!
+ * 2- or 3-key Triple DES. Block size is 8 octets. Key size is 16 octets
+ * for 2-key Triple DES, and 24 octets for 3-key.
+ */
+ FSL_KEY_ALG_TDES,
+ /*!
+ * ARC4. No block size. Context size is 259 octets. Allowed key size is
+ * 1-16 octets. (The choices for key size are a Sahara platform
+ * limitation.)
+ */
+ FSL_KEY_ALG_ARC4,
+ /*!
+ * Private key of a public-private key-pair. Max is 512 bits...
+ */
+ FSL_KEY_PK_PRIVATE,
+} fsl_shw_key_alg_t;
+
+/*!
+ * Mode selector for Symmetric Ciphers.
+ *
+ * The selection of mode determines how a cryptographic algorithm will be
+ * used to process the plaintext or ciphertext.
+ *
+ * For all modes which are run block-by-block (that is, all but
+ * #FSL_SYM_MODE_STREAM), any partial operations must be performed on a text
+ * length which is multiple of the block size. Except for #FSL_SYM_MODE_CTR,
+ * these block-by-block algorithms must also be passed a total number of octets
+ * which is a multiple of the block size.
+ *
+ * In modes which require that the total number of octets of data be a multiple
+ * of the block size (#FSL_SYM_MODE_ECB and #FSL_SYM_MODE_CBC), and the user
+ * has a total number of octets which are not a multiple of the block size, the
+ * user must perform any necessary padding to get to the correct data length.
+ */
+typedef enum fsl_shw_sym_mode_t {
+ /*!
+ * Stream. There is no associated block size. Any request to process data
+ * may be of any length. This mode is only for ARC4 operations, and is
+ * also the only mode used for ARC4.
+ */
+ FSL_SYM_MODE_STREAM,
+
+ /*!
+ * Electronic Codebook. Each block of data is encrypted/decrypted. The
+ * length of the data stream must be a multiple of the block size. This
+ * mode may be used for DES, 3DES, and AES. The block size is determined
+ * by the algorithm.
+ */
+ FSL_SYM_MODE_ECB,
+ /*!
+ * Cipher-Block Chaining. Each block of data is encrypted/decrypted and
+ * then "chained" with the previous block by an XOR function. Requires
+ * context to start the XOR (previous block). This mode may be used for
+ * DES, 3DES, and AES. The block size is determined by the algorithm.
+ */
+ FSL_SYM_MODE_CBC,
+ /*!
+ * Counter. The counter is encrypted, then XORed with a block of data.
+ * The counter is then incremented (using modulus arithmetic) for the next
+ * block. The final operation may be non-multiple of block size. This mode
+ * may be used for AES. The block size is determined by the algorithm.
+ */
+ FSL_SYM_MODE_CTR,
+} fsl_shw_sym_mode_t;
+
+/*!
+ * Algorithm selector for Cryptographic Hash functions.
+ *
+ * Selection of algorithm determines how large the context and digest will be.
+ * Context is the same size as the digest (resulting hash), unless otherwise
+ * specified.
+ */
+typedef enum fsl_shw_hash_alg_t {
+ /*! MD5 algorithm. Digest is 16 octets. */
+ FSL_HASH_ALG_MD5,
+ /*! SHA-1 (aka SHA or SHA-160) algorithm. Digest is 20 octets. */
+ FSL_HASH_ALG_SHA1,
+ /*!
+ * SHA-224 algorithm. Digest is 28 octets, though context is 32 octets.
+ */
+ FSL_HASH_ALG_SHA224,
+ /*! SHA-256 algorithm. Digest is 32 octets. */
+ FSL_HASH_ALG_SHA256
+} fsl_shw_hash_alg_t;
+
+/*!
+ * The type of Authentication-Cipher function which will be performed.
+ */
+typedef enum fsl_shw_acc_mode_t {
+ /*!
+ * CBC-MAC for Counter. Requires context and modulus. Final operation may
+ * be non-multiple of block size. This mode may be used for AES.
+ */
+ FSL_ACC_MODE_CCM,
+ /*!
+ * SSL mode. Not supported. Combines HMAC and encrypt (or decrypt).
+ * Needs one key object for encryption, another for the HMAC. The usual
+ * hashing and symmetric encryption algorithms are supported.
+ */
+ FSL_ACC_MODE_SSL,
+} fsl_shw_acc_mode_t;
+
+/* REQ-S2LRD-PINTFC-COA-HCO-001 */
+/*!
+ * Flags which control a Hash operation.
+ */
+typedef enum fsl_shw_hash_ctx_flags_t {
+ /*!
+ * Context is empty. Hash is started from scratch, with a
+ * message-processed count of zero.
+ */
+ FSL_HASH_FLAGS_INIT = 0x01,
+ /*!
+ * Retrieve context from hardware after hashing. If used with the
+ * #FSL_HASH_FLAGS_FINALIZE flag, the final digest value will be saved in
+ * the object.
+ */
+ FSL_HASH_FLAGS_SAVE = 0x02,
+ /*! Place context into hardware before hashing. */
+ FSL_HASH_FLAGS_LOAD = 0x04,
+ /*!
+ * PAD message and perform final digest operation. If user message is
+ * pre-padded, this flag should not be used.
+ */
+ FSL_HASH_FLAGS_FINALIZE = 0x08,
+} fsl_shw_hash_ctx_flags_t;
+
+/*!
+ * Flags which control an HMAC operation.
+ *
+ * These may be combined by ORing them together. See #fsl_shw_hmco_set_flags()
+ * and #fsl_shw_hmco_clear_flags().
+ */
+typedef enum fsl_shw_hmac_ctx_flags_t {
+ /*!
+ * Message context is empty. HMAC is started from scratch (with key) or
+ * from precompute of inner hash, depending on whether
+ * #FSL_HMAC_FLAGS_PRECOMPUTES_PRESENT is set.
+ */
+ FSL_HMAC_FLAGS_INIT = 1,
+ /*!
+ * Retrieve ongoing context from hardware after hashing. If used with the
+ * #FSL_HMAC_FLAGS_FINALIZE flag, the final digest value (HMAC) will be
+ * saved in the object.
+ */
+ FSL_HMAC_FLAGS_SAVE = 2,
+ /*! Place ongoing context into hardware before hashing. */
+ FSL_HMAC_FLAGS_LOAD = 4,
+ /*!
+ * PAD message and perform final HMAC operations of inner and outer
+ * hashes.
+ */
+ FSL_HMAC_FLAGS_FINALIZE = 8,
+ /*!
+ * This means that the context contains precomputed inner and outer hash
+ * values.
+ */
+ FSL_HMAC_FLAGS_PRECOMPUTES_PRESENT = 16,
+} fsl_shw_hmac_ctx_flags_t;
+
+/*!
+ * Flags to control use of the #fsl_shw_scco_t.
+ *
+ * These may be ORed together to get the desired effect.
+ * See #fsl_shw_scco_set_flags() and #fsl_shw_scco_clear_flags()
+ */
+typedef enum fsl_shw_sym_ctx_flags_t {
+ /*!
+ * Context is empty. In ARC4, this means that the S-Box needs to be
+ * generated from the key. In #FSL_SYM_MODE_CBC mode, this allows an IV of
+ * zero to be specified. In #FSL_SYM_MODE_CTR mode, it means that an
+ * initial CTR value of zero is desired.
+ */
+ FSL_SYM_CTX_INIT = 1,
+ /*!
+ * Load context from object into hardware before running cipher. In
+ * #FSL_SYM_MODE_CTR mode, this would refer to the Counter Value.
+ */
+ FSL_SYM_CTX_LOAD = 2,
+ /*!
+ * Save context from hardware into object after running cipher. In
+ * #FSL_SYM_MODE_CTR mode, this would refer to the Counter Value.
+ */
+ FSL_SYM_CTX_SAVE = 4,
+ /*!
+ * Context (SBox) is to be unwrapped and wrapped on each use.
+ * This flag is unsupported.
+ * */
+ FSL_SYM_CTX_PROTECT = 8,
+} fsl_shw_sym_ctx_flags_t;
+
+/*!
+ * Flags which describe the state of the #fsl_shw_sko_t.
+ *
+ * These may be ORed together to get the desired effect.
+ * See #fsl_shw_sko_set_flags() and #fsl_shw_sko_clear_flags()
+ */
+typedef enum fsl_shw_key_flags_t {
+ /*! If algorithm is DES or 3DES, do not validate the key parity bits. */
+ FSL_SKO_KEY_IGNORE_PARITY = 1,
+ /*! Clear key is present in the object. */
+ FSL_SKO_KEY_PRESENT = 2,
+ /*!
+ * Key has been established for use. This feature is not available for all
+ * platforms, nor for all algorithms and modes.
+ */
+ FSL_SKO_KEY_ESTABLISHED = 4,
+ /*!
+ * Key intended for user (software) use; can be read cleartext from the
+ * keystore.
+ */
+ FSL_SKO_KEY_SW_KEY = 8,
+} fsl_shw_key_flags_t;
+
+/*!
+ * Type of value which is associated with an established key.
+ */
+typedef uint64_t key_userid_t;
+
+/*!
+ * Flags which describe the state of the #fsl_shw_acco_t.
+ *
+ * The @a FSL_ACCO_CTX_INIT and @a FSL_ACCO_CTX_FINALIZE flags, when used
+ * together, provide for a one-shot operation.
+ */
+typedef enum fsl_shw_auth_ctx_flags_t {
+ /*! Initialize Context(s) */
+ FSL_ACCO_CTX_INIT = 1,
+ /*! Load intermediate context(s). This flag is unsupported. */
+ FSL_ACCO_CTX_LOAD = 2,
+ /*! Save intermediate context(s). This flag is unsupported. */
+ FSL_ACCO_CTX_SAVE = 4,
+ /*! Create MAC during this operation. */
+ FSL_ACCO_CTX_FINALIZE = 8,
+ /*!
+ * Formatting of CCM input data is performed by calls to
+ * #fsl_shw_ccm_nist_format_ctr_and_iv() and
+ * #fsl_shw_ccm_nist_update_ctr_and_iv().
+ */
+ FSL_ACCO_NIST_CCM = 0x10,
+} fsl_shw_auth_ctx_flags_t;
+
+/*!
+ * The operation which controls the behavior of #fsl_shw_establish_key().
+ *
+ * These values are passed to #fsl_shw_establish_key().
+ */
+typedef enum fsl_shw_key_wrap_t {
+ /*! Generate a key from random values. */
+ FSL_KEY_WRAP_CREATE,
+ /*! Use the provided clear key. */
+ FSL_KEY_WRAP_ACCEPT,
+ /*! Unwrap a previously wrapped key. */
+ FSL_KEY_WRAP_UNWRAP
+} fsl_shw_key_wrap_t;
+
+/*!
+ * Modulus Selector for CTR modes.
+ *
+ * The incrementing of the Counter value may be modified by a modulus. If no
+ * modulus is needed or desired for AES, use #FSL_CTR_MOD_128.
+ */
+typedef enum fsl_shw_ctr_mod_t {
+ FSL_CTR_MOD_8, /*!< Run counter with modulus of 2^8. */
+ FSL_CTR_MOD_16, /*!< Run counter with modulus of 2^16. */
+ FSL_CTR_MOD_24, /*!< Run counter with modulus of 2^24. */
+ FSL_CTR_MOD_32, /*!< Run counter with modulus of 2^32. */
+ FSL_CTR_MOD_40, /*!< Run counter with modulus of 2^40. */
+ FSL_CTR_MOD_48, /*!< Run counter with modulus of 2^48. */
+ FSL_CTR_MOD_56, /*!< Run counter with modulus of 2^56. */
+ FSL_CTR_MOD_64, /*!< Run counter with modulus of 2^64. */
+ FSL_CTR_MOD_72, /*!< Run counter with modulus of 2^72. */
+ FSL_CTR_MOD_80, /*!< Run counter with modulus of 2^80. */
+ FSL_CTR_MOD_88, /*!< Run counter with modulus of 2^88. */
+ FSL_CTR_MOD_96, /*!< Run counter with modulus of 2^96. */
+ FSL_CTR_MOD_104, /*!< Run counter with modulus of 2^104. */
+ FSL_CTR_MOD_112, /*!< Run counter with modulus of 2^112. */
+ FSL_CTR_MOD_120, /*!< Run counter with modulus of 2^120. */
+ FSL_CTR_MOD_128 /*!< Run counter with modulus of 2^128. */
+} fsl_shw_ctr_mod_t;
+
+/*!
+ * Permissions flags for Secure Partitions
+ */
+typedef enum fsl_shw_permission_t {
+/*! SCM Access Permission: Do not zeroize/deallocate partition on SMN Fail state */
+ FSL_PERM_NO_ZEROIZE = 0x80000000,
+/*! SCM Access Permission: Enforce trusted key read in */
+ FSL_PERM_TRUSTED_KEY_READ = 0x40000000,
+/*! SCM Access Permission: Ignore Supervisor/User mode in permission determination */
+ FSL_PERM_HD_S = 0x00000800,
+/*! SCM Access Permission: Allow Read Access to Host Domain */
+ FSL_PERM_HD_R = 0x00000400,
+/*! SCM Access Permission: Allow Write Access to Host Domain */
+ FSL_PERM_HD_W = 0x00000200,
+/*! SCM Access Permission: Allow Execute Access to Host Domain */
+ FSL_PERM_HD_X = 0x00000100,
+/*! SCM Access Permission: Allow Read Access to Trusted Host Domain */
+ FSL_PERM_TH_R = 0x00000040,
+/*! SCM Access Permission: Allow Write Access to Trusted Host Domain */
+ FSL_PERM_TH_W = 0x00000020,
+/*! SCM Access Permission: Allow Read Access to Other/World Domain */
+ FSL_PERM_OT_R = 0x00000004,
+/*! SCM Access Permission: Allow Write Access to Other/World Domain */
+ FSL_PERM_OT_W = 0x00000002,
+/*! SCM Access Permission: Allow Execute Access to Other/World Domain */
+ FSL_PERM_OT_X = 0x00000001,
+} fsl_shw_permission_t;
+
+typedef enum fsl_shw_cypher_mode_t {
+ FSL_SHW_CYPHER_MODE_ECB = 1, /*!< ECB mode */
+ FSL_SHW_CYPHER_MODE_CBC = 2, /*!< CBC mode */
+} fsl_shw_cypher_mode_t;
+
+typedef enum fsl_shw_pf_key_t {
+ FSL_SHW_PF_KEY_IIM, /*!< Present fused IIM key */
+ FSL_SHW_PF_KEY_PRG, /*!< Present Program key */
+ FSL_SHW_PF_KEY_IIM_PRG, /*!< Present IIM ^ Program key */
+ FSL_SHW_PF_KEY_IIM_RND, /*!< Present Random key */
+ FSL_SHW_PF_KEY_RND, /*!< Present IIM ^ Random key */
+} fsl_shw_pf_key_t;
+
+typedef enum fsl_shw_tamper_t {
+ FSL_SHW_TAMPER_NONE, /*!< No error detected */
+ FSL_SHW_TAMPER_WTD, /*!< wire-mesh tampering det */
+ FSL_SHW_TAMPER_ETBD, /*!< ext tampering det: input B */
+ FSL_SHW_TAMPER_ETAD, /*!< ext tampering det: input A */
+ FSL_SHW_TAMPER_EBD, /*!< external boot detected */
+ FSL_SHW_TAMPER_SAD, /*!< security alarm detected */
+ FSL_SHW_TAMPER_TTD, /*!< temperature tampering det */
+ FSL_SHW_TAMPER_CTD, /*!< clock tampering det */
+ FSL_SHW_TAMPER_VTD, /*!< voltage tampering det */
+ FSL_SHW_TAMPER_MCO, /*!< monotonic counter overflow */
+ FSL_SHW_TAMPER_TCO, /*!< time counter overflow */
+} fsl_shw_tamper_t;
+
+/******************************************************************************
+ * Data Structures
+ *****************************************************************************/
+
+/*!
+ *
+ * @brief Structure type for descriptors
+ *
+ * The first five fields are passed to the hardware.
+ *
+ *****************************************************************************/
+#ifndef USE_NEW_PTRS /* Experimental */
+
+typedef struct sah_Desc {
+ uint32_t header; /*!< descriptor header value */
+ uint32_t len1; /*!< number of data bytes in 'ptr1' buffer */
+ void *ptr1; /*!< pointer to first sah_Link structure */
+ uint32_t len2; /*!< number of data bytes in 'ptr2' buffer */
+ void *ptr2; /*!< pointer to second sah_Link structure */
+ struct sah_Desc *next; /*!< pointer to next descriptor */
+#ifdef __KERNEL__ /* This needs a better test */
+ /* These two must be last. See sah_Copy_Descriptors */
+ struct sah_Desc *virt_addr; /*!< Virtual (kernel) address of this
+ descriptor. */
+ dma_addr_t dma_addr; /*!< Physical (bus) address of this
+ descriptor. */
+ void *original_ptr1; /*!< user's pointer to ptr1 */
+ void *original_ptr2; /*!< user's pointer to ptr2 */
+ struct sah_Desc *original_next; /*!< user's pointer to next */
+#endif
+} sah_Desc;
+
+#else
+
+typedef struct sah_Desc {
+ uint32_t header; /*!< descriptor header value */
+ uint32_t len1; /*!< number of data bytes in 'ptr1' buffer */
+ uint32_t hw_ptr1; /*!< pointer to first sah_Link structure */
+ uint32_t len2; /*!< number of data bytes in 'ptr2' buffer */
+ uint32_t hw_ptr2; /*!< pointer to second sah_Link structure */
+ uint32_t hw_next; /*!< pointer to next descriptor */
+ struct sah_Link *ptr1; /*!< (virtual) pointer to first sah_Link structure */
+ struct sah_Link *ptr2; /*!< (virtual) pointer to first sah_Link structure */
+ struct sah_Desc *next; /*!< (virtual) pointer to next descriptor */
+#ifdef __KERNEL__ /* This needs a better test */
+ /* These two must be last. See sah_Copy_Descriptors */
+ struct sah_Desc *virt_addr; /*!< Virtual (kernel) address of this
+ descriptor. */
+ dma_addr_t dma_addr; /*!< Physical (bus) address of this
+ descriptor. */
+#endif
+} sah_Desc;
+
+#endif
+
+/*!
+*******************************************************************************
+* @brief The first descriptor in a chain
+******************************************************************************/
+typedef struct sah_Head_Desc {
+ sah_Desc desc; /*!< whole struct - must be first */
+ struct fsl_shw_uco_t *user_info; /*!< where result pool lives */
+ uint32_t user_ref; /*!< at time of request */
+ uint32_t uco_flags; /*!< at time of request */
+ uint32_t status; /*!< Status of queue entry */
+ uint32_t error_status; /*!< If error, register from Sahara */
+ uint32_t fault_address; /*!< If error, register from Sahara */
+ uint32_t op_status; /*!< If error, register from Sahara */
+ fsl_shw_return_t result; /*!< Result of running descriptor */
+ struct sah_Head_Desc *next; /*!< Next in queue */
+ struct sah_Head_Desc *prev; /*!< previous in queue */
+ struct sah_Head_Desc *user_desc; /*!< For API async get_results */
+ void *out1_ptr; /*!< For async post-processing */
+ void *out2_ptr; /*!< For async post-processing */
+ uint32_t out_len; /*!< For async post-processing */
+} sah_Head_Desc;
+
+/*!
+ * @brief Structure type for links
+ *
+ * The first three fields are used by hardware.
+ *****************************************************************************/
+#ifndef USE_NEW_PTRS
+
+typedef struct sah_Link {
+ size_t len; /*!< len of 'data' buffer in bytes */
+ uint8_t *data; /*!< buffer to store data */
+ struct sah_Link *next; /*!< pointer to the next sah_Link storing
+ * data */
+ sah_Link_Flags flags; /*!< indicates the component that created the
+ * data buffer. Security Function internal
+ * information */
+ key_userid_t ownerid; /*!< Auth code for established key */
+ uint32_t slot; /*!< Location of the the established key */
+#ifdef __KERNEL__ /* This needs a better test */
+ /* These two elements must be last. See sah_Copy_Links() */
+ struct sah_Link *virt_addr;
+ dma_addr_t dma_addr;
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0))
+ struct page *vm_info;
+#endif
+ uint8_t *original_data; /*!< user's version of data pointer */
+ struct sah_Link *original_next; /*!< user's version of next pointer */
+#ifdef SAH_COPY_DATA
+ uint8_t *copy_data; /*!< Virtual address of acquired buffer */
+#endif
+#endif /* kernel-only */
+} sah_Link;
+
+#else
+
+typedef struct sah_Link {
+ /*! len of 'data' buffer in bytes */
+ size_t len;
+ /*! buffer to store data */
+ uint32_t hw_data;
+ /*! Physical address */
+ uint32_t hw_next;
+ /*!
+ * indicates the component that created the data buffer. Security Function
+ * internal information
+ */
+ sah_Link_Flags flags;
+ /*! (virtual) pointer to data */
+ uint8_t *data;
+ /*! (virtual) pointer to the next sah_Link storing data */
+ struct sah_Link *next;
+ /*! Auth code for established key */
+ key_userid_t ownerid;
+ /*! Location of the the established key */
+ uint32_t slot;
+#ifdef __KERNEL__ /* This needs a better test */
+ /* These two elements must be last. See sah_Copy_Links() */
+ struct sah_Link *virt_addr;
+ dma_addr_t dma_addr;
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0))
+ struct page *vm_info;
+#endif
+#endif /* kernel-only */
+} sah_Link;
+
+#endif
+
+/*!
+ * Initialization Object
+ */
+typedef struct fsl_sho_ibo_t {
+} fsl_sho_ibo_t;
+
+/* Imported from Sahara1 driver -- is it needed forever? */
+/*!
+*******************************************************************************
+* FIELDS
+*
+* void * ref - parameter to be passed into the memory function calls
+*
+* void * (*malloc)(void *ref, size_t n) - pointer to user's malloc function
+*
+* void (*free)(void *ref, void *ptr) - pointer to user's free function
+*
+* void * (*memcpy)(void *ref, void *dest, const void *src, size_t n) -
+* pointer to user's memcpy function
+*
+* void * (*memset)(void *ref, void *ptr, int ch, size_t n) - pointer to
+* user's memset function
+*
+* @brief Structure for API memory utilities
+******************************************************************************/
+typedef struct sah_Mem_Util {
+ /*! Who knows. Vestigial. */
+ void *mu_ref;
+ /*! Acquire buffer of size n bytes */
+ void *(*mu_malloc) (void *ref, size_t n);
+ /*! Acquire a sah_Head_Desc */
+ sah_Head_Desc *(*mu_alloc_head_desc) (void *ref);
+ /* Acquire a sah_Desc */
+ sah_Desc *(*mu_alloc_desc) (void *ref);
+ /* Acquire a sah_Link */
+ sah_Link *(*mu_alloc_link) (void *ref);
+ /*! Free buffer at ptr */
+ void (*mu_free) (void *ref, void *ptr);
+ /*! Free sah_Head_Desc at ptr */
+ void (*mu_free_head_desc) (void *ref, sah_Head_Desc * ptr);
+ /*! Free sah_Desc at ptr */
+ void (*mu_free_desc) (void *ref, sah_Desc * ptr);
+ /*! Free sah_Link at ptr */
+ void (*mu_free_link) (void *ref, sah_Link * ptr);
+ /*! Funciton which will copy n bytes from src to dest */
+ void *(*mu_memcpy) (void *ref, void *dest, const void *src, size_t n);
+ /*! Set all n bytes of ptr to ch */
+ void *(*mu_memset) (void *ref, void *ptr, int ch, size_t n);
+} sah_Mem_Util;
+
+/*!
+ * Secure Partition information
+ *
+ * This holds the context to a single secure partition owned by the user. It
+ * is only available in the kernel version of the User Context Object.
+ */
+typedef struct fsl_shw_spo_t {
+ uint32_t user_base; /*!< Base address (user virtual) */
+ void *kernel_base; /*!< Base address (kernel virtual) */
+ struct fsl_shw_spo_t *next; /*!< Pointer to the next partition
+ owned by the user. NULL if this
+ is the last partition. */
+} fsl_shw_spo_t;
+
+/* REQ-S2LRD-PINTFC-COA-UCO-001 */
+/*!
+ * User Context Object
+ */
+typedef struct fsl_shw_uco_t {
+ int sahara_openfd; /*!< this should be kernel-only?? */
+ sah_Mem_Util *mem_util; /*!< Memory utility fns */
+ uint32_t user_ref; /*!< User's reference */
+ void (*callback) (struct fsl_shw_uco_t * uco); /*!< User's callback fn */
+ uint32_t flags; /*!< from fsl_shw_user_ctx_flags_t */
+ unsigned pool_size; /*!< maximum size of user pool */
+#ifdef __KERNEL__
+ sah_Queue result_pool; /*!< where non-blocking results go */
+ os_process_handle_t process; /*!< remember for signalling User mode */
+ fsl_shw_spo_t *partition; /*!< chain of secure partitions owned by
+ the user */
+#else
+ struct fsl_shw_uco_t *next; /*!< To allow user-mode chaining of contexts,
+ for signalling. */
+#endif
+} fsl_shw_uco_t;
+
+/* REQ-S2LRD-PINTFC-API-GEN-006 ?? */
+/*!
+ * Result object
+ */
+typedef struct fsl_shw_result_t {
+ uint32_t user_ref;
+ fsl_shw_return_t code;
+ uint32_t detail1;
+ uint32_t detail2;
+ sah_Head_Desc *user_desc;
+} fsl_shw_result_t;
+
+/*!
+ * Keystore Object
+ */
+typedef struct fsl_shw_kso_t {
+#ifdef __KERNEL__
+ os_lock_t lock; /*!< Pointer to lock that controls access to
+ the keystore. */
+#endif
+ void *user_data; /*!< Pointer to user structure that handles
+ the internals of the keystore. */
+ fsl_shw_return_t(*data_init) (fsl_shw_uco_t * user_ctx,
+ void **user_data);
+ void (*data_cleanup) (fsl_shw_uco_t * user_ctx, void **user_data);
+ fsl_shw_return_t(*slot_verify_access) (void *user_data,
+ uint64_t owner_id,
+ uint32_t slot);
+ fsl_shw_return_t(*slot_alloc) (void *user_data, uint32_t size_bytes,
+ uint64_t owner_id, uint32_t * slot);
+ fsl_shw_return_t(*slot_dealloc) (void *user_data, uint64_t owner_id,
+ uint32_t slot);
+ void *(*slot_get_address) (void *user_data, uint32_t slot);
+ uint32_t(*slot_get_base) (void *user_data, uint32_t slot);
+ uint32_t(*slot_get_offset) (void *user_data, uint32_t slot);
+ uint32_t(*slot_get_slot_size) (void *user_data, uint32_t slot);
+} fsl_shw_kso_t;
+
+/* REQ-S2LRD-PINTFC-COA-SKO-001 */
+/*!
+ * Secret Key Context Object
+ */
+typedef struct fsl_shw_sko_t {
+ uint32_t flags;
+ fsl_shw_key_alg_t algorithm;
+ key_userid_t userid;
+ uint32_t handle;
+ uint16_t key_length;
+ uint8_t key[64];
+ struct fsl_shw_kso_t *keystore; /*!< If present, key is in keystore */
+} fsl_shw_sko_t;
+
+/* REQ-S2LRD-PINTFC-COA-CO-001 */
+/*!
+ * @brief Platform Capability Object
+ */
+typedef struct fsl_shw_pco_t { /* Consider turning these constants into symbols */
+ int api_major;
+ int api_minor;
+ int driver_major;
+ int driver_minor;
+ fsl_shw_key_alg_t sym_algorithms[4];
+ fsl_shw_sym_mode_t sym_modes[4];
+ fsl_shw_hash_alg_t hash_algorithms[4];
+ uint8_t sym_support[5][4]; /* indexed by key alg then mode */
+
+ int scc_driver_major;
+ int scc_driver_minor;
+ int scm_version; /*!< Version from SCM Configuration register */
+ int smn_version; /*!< Version from SMN Status register */
+ int block_size_bytes; /*!< Number of bytes per block of RAM; also
+ block size of the crypto algorithm. */
+ union {
+ struct {
+ int black_ram_size_blocks; /*!< Number of blocks of Black RAM */
+ int red_ram_size_blocks; /*!< Number of blocks of Red RAM */
+ } scc_info;
+ struct {
+ int partition_size_bytes; /*!< Number of bytes in each partition */
+ int partition_count; /*!< Number of partitions on this platform */
+ } scc2_info;
+ };
+} fsl_shw_pco_t;
+
+/* REQ-S2LRD-PINTFC-COA-HCO-001 */
+/*!
+ * Hash Context Object
+ */
+typedef struct fsl_shw_hco_t { /* fsl_shw_hash_context_object */
+ fsl_shw_hash_alg_t algorithm;
+ uint32_t flags;
+ uint8_t digest_length; /* in bytes */
+ uint8_t context_length; /* in bytes */
+ uint8_t context_register_length; /* in bytes */
+ uint32_t context[9]; /* largest digest + msg size */
+} fsl_shw_hco_t;
+
+/*!
+ * HMAC Context Object
+ */
+typedef struct fsl_shw_hmco_t { /* fsl_shw_hmac_context_object */
+ fsl_shw_hash_alg_t algorithm;
+ uint32_t flags;
+ uint8_t digest_length; /*!< in bytes */
+ uint8_t context_length; /*!< in bytes */
+ uint8_t context_register_length; /*!< in bytes */
+ uint32_t ongoing_context[9]; /*!< largest digest + msg
+ size */
+ uint32_t inner_precompute[9]; /*!< largest digest + msg
+ size */
+ uint32_t outer_precompute[9]; /*!< largest digest + msg
+ size */
+} fsl_shw_hmco_t;
+
+/* REQ-S2LRD-PINTFC-COA-SCCO-001 */
+/*!
+ * Symmetric Crypto Context Object Context Object
+ */
+typedef struct fsl_shw_scco_t {
+ uint32_t flags;
+ unsigned block_size_bytes; /* double duty block&ctx size */
+ fsl_shw_sym_mode_t mode;
+ /* Could put modulus plus 16-octet context in union with arc4
+ sbox+ptrs... */
+ fsl_shw_ctr_mod_t modulus_exp;
+ uint8_t context[259];
+} fsl_shw_scco_t;
+
+/*!
+ * Authenticate-Cipher Context Object
+
+ * An object for controlling the function of, and holding information about,
+ * data for the authenticate-cipher functions, #fsl_shw_gen_encrypt() and
+ * #fsl_shw_auth_decrypt().
+ */
+typedef struct fsl_shw_acco_t {
+ uint32_t flags; /*!< See #fsl_shw_auth_ctx_flags_t for
+ meanings */
+ fsl_shw_acc_mode_t mode; /*!< CCM only */
+ uint8_t mac_length; /*!< User's value for length */
+ unsigned q_length; /*!< NIST parameter - */
+ fsl_shw_scco_t cipher_ctx_info; /*!< For running
+ encrypt/decrypt. */
+ union {
+ fsl_shw_scco_t CCM_ctx_info; /*!< For running the CBC in
+ AES-CCM. */
+ fsl_shw_hco_t hash_ctx_info; /*!< For running the hash */
+ } auth_info; /*!< "auth" info struct */
+ uint8_t unencrypted_mac[16]; /*!< max block size... */
+} fsl_shw_acco_t;
+
+/*!
+ * Used by Sahara API to retrieve completed non-blocking results.
+ */
+typedef struct sah_results {
+ unsigned requested; /*!< number of results requested */
+ unsigned *actual; /*!< number of results obtained */
+ fsl_shw_result_t *results; /*!< pointer to memory to hold results */
+} sah_results;
+
+/*!
+ * @typedef scc_partition_status_t
+ */
+/*! Partition status information. */
+typedef enum fsl_shw_partition_status_t {
+ FSL_PART_S_UNUSABLE, /*!< Partition not implemented */
+ FSL_PART_S_UNAVAILABLE, /*!< Partition owned by other host */
+ FSL_PART_S_AVAILABLE, /*!< Partition available */
+ FSL_PART_S_ALLOCATED, /*!< Partition owned by host but not engaged
+ */
+ FSL_PART_S_ENGAGED, /*!< Partition owned by host and engaged */
+} fsl_shw_partition_status_t;
+
+/******************************************************************************
+ * Access Macros for Objects
+ *****************************************************************************/
+/*!
+ * Get FSL SHW API version
+ *
+ * @param pcobject The Platform Capababilities Object to query.
+ * @param[out] pcmajor A pointer to where the major version
+ * of the API is to be stored.
+ * @param[out] pcminor A pointer to where the minor version
+ * of the API is to be stored.
+ */
+#define fsl_shw_pco_get_version(pcobject, pcmajor, pcminor) \
+{ \
+ *(pcmajor) = (pcobject)->api_major; \
+ *(pcminor) = (pcobject)->api_minor; \
+}
+
+/*!
+ * Get underlying driver version.
+ *
+ * @param pcobject The Platform Capababilities Object to query.
+ * @param[out] pcmajor A pointer to where the major version
+ * of the driver is to be stored.
+ * @param[out] pcminor A pointer to where the minor version
+ * of the driver is to be stored.
+ */
+#define fsl_shw_pco_get_driver_version(pcobject, pcmajor, pcminor) \
+{ \
+ *(pcmajor) = (pcobject)->driver_major; \
+ *(pcminor) = (pcobject)->driver_minor; \
+}
+
+/*!
+ * Get list of symmetric algorithms supported.
+ *
+ * @param pcobject The Platform Capababilities Object to query.
+ * @param[out] pcalgorithms A pointer to where to store the location of
+ * the list of algorithms.
+ * @param[out] pcacount A pointer to where to store the number of
+ * algorithms in the list at @a algorithms.
+ */
+#define fsl_shw_pco_get_sym_algorithms(pcobject, pcalgorithms, pcacount) \
+{ \
+ *(pcalgorithms) = (pcobject)->sym_algorithms; \
+ *(pcacount) = sizeof((pcobject)->sym_algorithms)/4; \
+}
+
+/*!
+ * Get list of symmetric modes supported.
+ *
+ * @param pcobject The Platform Capababilities Object to query.
+ * @param[out] gsmodes A pointer to where to store the location of
+ * the list of modes.
+ * @param[out] gsacount A pointer to where to store the number of
+ * algorithms in the list at @a modes.
+ */
+#define fsl_shw_pco_get_sym_modes(pcobject, gsmodes, gsacount) \
+{ \
+ *(gsmodes) = (pcobject)->sym_modes; \
+ *(gsacount) = sizeof((pcobject)->sym_modes)/4; \
+}
+
+/*!
+ * Get list of hash algorithms supported.
+ *
+ * @param pcobject The Platform Capababilities Object to query.
+ * @param[out] gsalgorithms A pointer which will be set to the list of
+ * algorithms.
+ * @param[out] gsacount The number of algorithms in the list at @a
+ * algorithms.
+ */
+#define fsl_shw_pco_get_hash_algorithms(pcobject, gsalgorithms, gsacount) \
+{ \
+ *(gsalgorithms) = (pcobject)->hash_algorithms; \
+ *(gsacount) = sizeof((pcobject)->hash_algorithms)/4; \
+}
+
+/*!
+ * Determine whether the combination of a given symmetric algorithm and a given
+ * mode is supported.
+ *
+ * @param pcobject The Platform Capababilities Object to query.
+ * @param pcalg A Symmetric Cipher algorithm.
+ * @param pcmode A Symmetric Cipher mode.
+ *
+ * @return 0 if combination is not supported, non-zero if supported.
+ */
+#define fsl_shw_pco_check_sym_supported(pcobject, pcalg, pcmode) \
+ ((pcobject)->sym_support[pcalg][pcmode])
+
+/*!
+ * Determine whether a given Encryption-Authentication mode is supported.
+ *
+ * @param pcobject The Platform Capababilities Object to query.
+ * @param pcmode The Authentication mode.
+ *
+ * @return 0 if mode is not supported, non-zero if supported.
+ */
+#define fsl_shw_pco_check_auth_supported(pcobject, pcmode) \
+ ((pcmode == FSL_ACC_MODE_CCM) ? 1 : 0)
+
+/*!
+ * Determine whether Black Keys (key establishment / wrapping) is supported.
+ *
+ * @param pcobject The Platform Capababilities Object to query.
+ *
+ * @return 0 if wrapping is not supported, non-zero if supported.
+ */
+#define fsl_shw_pco_check_black_key_supported(pcobject) \
+ 1
+
+/*!
+ * Determine whether Programmed Key features are available
+ *
+ * @param pc_info The Platform Capabilities Object to query.
+ *
+ * @return 1 if Programmed Key features are available, otherwise zero.
+ */
+#define fsl_shw_pco_check_pk_supported(pcobject) \
+ 0
+
+/*!
+ * Determine whether Software Key features are available
+ *
+ * @param pc_info The Platform Capabilities Object to query.
+ *
+ * @return 1 if Software key features are available, otherwise zero.
+ */
+#define fsl_shw_pco_check_sw_keys_supported(pcobject) \
+ 0
+
+/*!
+ * Get FSL SHW SCC driver version
+ *
+ * @param pcobject The Platform Capabilities Object to query.
+ * @param[out] pcmajor A pointer to where the major version
+ * of the SCC driver is to be stored.
+ * @param[out] pcminor A pointer to where the minor version
+ * of the SCC driver is to be stored.
+ */
+#define fsl_shw_pco_get_scc_driver_version(pcobject, pcmajor, pcminor) \
+{ \
+ *(pcmajor) = (pcobject)->scc_driver_major; \
+ *(pcminor) = (pcobject)->scc_driver_minor; \
+}
+
+/*!
+ * Get SCM hardware version
+ *
+ * @param pcobject The Platform Capabilities Object to query.
+ * @return The SCM hardware version
+ */
+#define fsl_shw_pco_get_scm_version(pcobject) \
+ ((pcobject)->scm_version)
+
+/*!
+ * Get SMN hardware version
+ *
+ * @param pcobject The Platform Capabilities Object to query.
+ * @return The SMN hardware version
+ */
+#define fsl_shw_pco_get_smn_version(pcobject) \
+ ((pcobject)->smn_version)
+
+/*!
+ * Get the size of an SCM block, in bytes
+ *
+ * @param pcobject The Platform Capabilities Object to query.
+ * @return The size of an SCM block, in bytes.
+ */
+#define fsl_shw_pco_get_scm_block_size(pcobject) \
+ ((pcobject)->block_size_bytes)
+
+/*!
+ * Get size of Black and Red RAM memory
+ *
+ * @param pcobject The Platform Capabilities Object to query.
+ * @param[out] black_size A pointer to where the size of the Black RAM, in
+ * blocks, is to be placed.
+ * @param[out] red_size A pointer to where the size of the Red RAM, in
+ * blocks, is to be placed.
+ */
+#define fsl_shw_pco_get_smn_size(pcobject, black_size, red_size) \
+{ \
+ if ((pcobject)->scm_version == 1) { \
+ *(black_size) = (pcobject)->scc_info.black_ram_size_blocks; \
+ *(red_size) = (pcobject)->scc_info.red_ram_size_blocks; \
+ } else { \
+ *(black_size) = 0; \
+ *(red_size) = 0; \
+ } \
+}
+
+/*!
+ * Determine whether Secure Partitions are supported
+ *
+ * @param pcobject The Platform Capabilities Object to query.
+ *
+ * @return 0 if secure partitions are not supported, non-zero if supported.
+ */
+#define fsl_shw_pco_check_spo_supported(pcobject) \
+ ((pcobject)->scm_version == 2)
+
+/*!
+ * Get the size of a Secure Partitions
+ *
+ * @param pcobject The Platform Capabilities Object to query.
+ *
+ * @return Partition size, in bytes. 0 if Secure Partitions not supported.
+ */
+#define fsl_shw_pco_get_spo_size_bytes(pcobject) \
+ (((pcobject)->scm_version == 2) ? \
+ ((pcobject)->scc2_info.partition_size_bytes) : 0 )
+
+/*!
+ * Get the number of Secure Partitions on this platform
+ *
+ * @param pcobject The Platform Capabilities Object to query.
+ *
+ * @return Number of partitions. 0 if Secure Paritions not supported. Note
+ * that this returns the total number of partitions, not all may be
+ * available to the user.
+ */
+#define fsl_shw_pco_get_spo_count(pcobject) \
+ (((pcobject)->scm_version == 2) ? \
+ ((pcobject)->scc2_info.partition_count) : 0 )
+
+/*!
+ * Initialize a User Context Object.
+ *
+ * This function must be called before performing any other operation with the
+ * Object. It sets the User Context Object to initial values, and set the size
+ * of the results pool. The mode will be set to a default of
+ * #FSL_UCO_BLOCKING_MODE.
+ *
+ * When using non-blocking operations, this sets the maximum number of
+ * operations which can be outstanding. This number includes the counts of
+ * operations waiting to start, operation(s) being performed, and results which
+ * have not been retrieved.
+ *
+ * Changes to this value are ignored once user registration has completed. It
+ * should be set to 1 if only blocking operations will ever be performed.
+ *
+ * @param ucontext The User Context object to operate on.
+ * @param usize The maximum number of operations which can be
+ * outstanding.
+ */
+#ifdef __KERNEL__
+#define fsl_shw_uco_init(ucontext, usize) \
+{ \
+ (ucontext)->pool_size = usize; \
+ (ucontext)->flags = FSL_UCO_BLOCKING_MODE; \
+ (ucontext)->sahara_openfd = -1; \
+ (ucontext)->mem_util = NULL; \
+ (ucontext)->partition = NULL; \
+ (ucontext)->callback = NULL; \
+}
+#else
+#define fsl_shw_uco_init(ucontext, usize) \
+{ \
+ (ucontext)->pool_size = usize; \
+ (ucontext)->flags = FSL_UCO_BLOCKING_MODE; \
+ (ucontext)->sahara_openfd = -1; \
+ (ucontext)->mem_util = NULL; \
+ (ucontext)->callback = NULL; \
+}
+#endif
+
+/*!
+ * Set the User Reference for the User Context.
+ *
+ * @param ucontext The User Context object to operate on.
+ * @param uref A value which will be passed back with a result.
+ */
+#define fsl_shw_uco_set_reference(ucontext, uref) \
+ (ucontext)->user_ref = uref
+
+/*!
+ * Set the User Reference for the User Context.
+ *
+ * @param ucontext The User Context object to operate on.
+ * @param ucallback The function the API will invoke when an operation
+ * completes.
+ */
+#define fsl_shw_uco_set_callback(ucontext, ucallback) \
+ (ucontext)->callback = ucallback
+
+/*!
+ * Set flags in the User Context.
+ *
+ * Turns on the flags specified in @a flags. Other flags are untouched.
+ *
+ * @param ucontext The User Context object to operate on.
+ * @param uflags ORed values from #fsl_shw_user_ctx_flags_t.
+ */
+#define fsl_shw_uco_set_flags(ucontext, uflags) \
+ (ucontext)->flags |= (uflags)
+
+/*!
+ * Clear flags in the User Context.
+ *
+ * Turns off the flags specified in @a flags. Other flags are untouched.
+ *
+ * @param ucontext The User Context object to operate on.
+ * @param uflags ORed values from #fsl_shw_user_ctx_flags_t.
+ */
+#define fsl_shw_uco_clear_flags(ucontext, uflags) \
+ (ucontext)->flags &= ~(uflags)
+
+/*!
+ * Retrieve the reference value from a Result Object.
+ *
+ * @param robject The result object to query.
+ *
+ * @return The reference associated with the request.
+ */
+#define fsl_shw_ro_get_reference(robject) \
+ (robject)->user_ref
+
+/*!
+ * Retrieve the status code from a Result Object.
+ *
+ * @param robject The result object to query.
+ *
+ * @return The status of the request.
+ */
+#define fsl_shw_ro_get_status(robject) \
+ (robject)->code
+
+/*!
+ * Initialize a Secret Key Object.
+ *
+ * This function must be called before performing any other operation with
+ * the Object.
+ *
+ * @param skobject The Secret Key Object to be initialized.
+ * @param skalgorithm DES, AES, etc.
+ *
+ */
+#define fsl_shw_sko_init(skobject,skalgorithm) \
+{ \
+ (skobject)->algorithm = skalgorithm; \
+ (skobject)->flags = 0; \
+ (skobject)->keystore = NULL; \
+}
+
+/*!
+ * Initialize a Secret Key Object to use a Platform Key register.
+ *
+ * This function must be called before performing any other operation with
+ * the Object. INVALID on this platform.
+ *
+ * @param skobject The Secret Key Object to be initialized.
+ * @param skalgorithm DES, AES, etc.
+ * @param skhwkey one of the fsl_shw_pf_key_t values.
+ *
+ */
+#define fsl_shw_sko_init_pf_key(skobject,skalgorithm,skhwkey) \
+{ \
+ (skobject)->algorithm = -1; \
+ (skobject)->flags = -1; \
+ (skobject)->keystore = NULL; \
+}
+
+/*!
+ * Store a cleartext key in the key object.
+ *
+ * This has the side effect of setting the #FSL_SKO_KEY_PRESENT flag and
+ * resetting the #FSL_SKO_KEY_ESTABLISHED flag.
+ *
+ * @param skobject A variable of type #fsl_shw_sko_t.
+ * @param skkey A pointer to the beginning of the key.
+ * @param skkeylen The length, in octets, of the key. The value should be
+ * appropriate to the key size supported by the algorithm.
+ * 64 octets is the absolute maximum value allowed for this
+ * call.
+ */
+#define fsl_shw_sko_set_key(skobject, skkey, skkeylen) \
+{ \
+ (skobject)->key_length = skkeylen; \
+ copy_bytes((skobject)->key, skkey, skkeylen); \
+ (skobject)->flags |= FSL_SKO_KEY_PRESENT; \
+ (skobject)->flags &= ~FSL_SKO_KEY_ESTABLISHED; \
+}
+
+/*!
+ * Set a size for the key.
+ *
+ * This function would normally be used when the user wants the key to be
+ * generated from a random source.
+ *
+ * @param skobject A variable of type #fsl_shw_sko_t.
+ * @param skkeylen The length, in octets, of the key. The value should be
+ * appropriate to the key size supported by the algorithm.
+ * 64 octets is the absolute maximum value allowed for this
+ * call.
+ */
+#define fsl_shw_sko_set_key_length(skobject, skkeylen) \
+ (skobject)->key_length = skkeylen;
+
+/*!
+ * Set the User ID associated with the key.
+ *
+ * @param skobject A variable of type #fsl_shw_sko_t.
+ * @param skuserid The User ID to identify authorized users of the key.
+ */
+#define fsl_shw_sko_set_user_id(skobject, skuserid) \
+ (skobject)->userid = (skuserid)
+
+/*!
+ * Establish a user Keystore to hold the key.
+ */
+#define fsl_shw_sko_set_keystore(skobject, user_keystore) \
+ (skobject)->keystore = (user_keystore)
+
+/*!
+ * Set the establish key handle into a key object.
+ *
+ * The @a userid field will be used to validate the access to the unwrapped
+ * key. This feature is not available for all platforms, nor for all
+ * algorithms and modes.
+ *
+ * The #FSL_SKO_KEY_ESTABLISHED will be set (and the #FSL_SKO_KEY_PRESENT flag
+ * will be cleared).
+ *
+ * @param skobject A variable of type #fsl_shw_sko_t.
+ * @param skuserid The User ID to verify this user is an authorized user of
+ * the key.
+ * @param skhandle A @a handle from #fsl_shw_sko_get_established_info.
+ */
+#define fsl_shw_sko_set_established_info(skobject, skuserid, skhandle) \
+{ \
+ (skobject)->userid = (skuserid); \
+ (skobject)->handle = (skhandle); \
+ (skobject)->flags |= FSL_SKO_KEY_ESTABLISHED; \
+ (skobject)->flags &= \
+ ~(FSL_SKO_KEY_PRESENT); \
+}
+
+/*!
+ * Retrieve the established-key handle from a key object.
+ *
+ * @param skobject A variable of type #fsl_shw_sko_t.
+ * @param skhandle The location to store the @a handle of the unwrapped
+ * key.
+ */
+#define fsl_shw_sko_get_established_info(skobject, skhandle) \
+ *(skhandle) = (skobject)->handle
+
+/*!
+ * Extract the algorithm from a key object.
+ *
+ * @param skobject The Key Object to be queried.
+ * @param[out] skalgorithm A pointer to the location to store the algorithm.
+ */
+#define fsl_shw_sko_get_algorithm(skobject, skalgorithm) \
+ *(skalgorithm) = (skobject)->algorithm
+
+/*!
+ * Retrieve the cleartext key from a key object that is stored in a user
+ * keystore.
+ *
+ * @param skobject The Key Object to be queried.
+ * @param[out] skkey A pointer to the location to store the key. NULL
+ * if the key is not stored in a user keystore.
+ */
+#define fsl_shw_sko_get_key(skobject, skkey) \
+{ \
+ fsl_shw_kso_t* keystore = (skobject)->keystore; \
+ if (keystore != NULL) { \
+ *(skkey) = keystore->slot_get_address(keystore->user_data, \
+ (skobject)->handle); \
+ } else { \
+ *(skkey) = NULL; \
+ } \
+}
+
+/*!
+ * Determine the size of a wrapped key based upon the cleartext key's length.
+ *
+ * This function can be used to calculate the number of octets that
+ * #fsl_shw_extract_key() will write into the location at @a covered_key.
+ *
+ * If zero is returned at @a length, this means that the key length in
+ * @a key_info is not supported.
+ *
+ * @param wkeyinfo Information about a key to be wrapped.
+ * @param wkeylen Location to store the length of a wrapped
+ * version of the key in @a key_info.
+ */
+#define fsl_shw_sko_calculate_wrapped_size(wkeyinfo, wkeylen) \
+{ \
+ register fsl_shw_sko_t* kp = wkeyinfo; \
+ register uint32_t kl = kp->key_length; \
+ int key_blocks = (kl + 15) / 16; \
+ int base_size = 35; /* ICV + T' + ALG + LEN + FLAGS */ \
+ \
+ *(wkeylen) = base_size + 16 * key_blocks; \
+}
+
+/*!
+ * Set some flags in the key object.
+ *
+ * Turns on the flags specified in @a flags. Other flags are untouched.
+ *
+ * @param skobject A variable of type #fsl_shw_sko_t.
+ * @param skflags (One or more) ORed members of #fsl_shw_key_flags_t which
+ * are to be set.
+ */
+#define fsl_shw_sko_set_flags(skobject, skflags) \
+ (skobject)->flags |= (skflags)
+
+/*!
+ * Clear some flags in the key object.
+ *
+ * Turns off the flags specified in @a flags. Other flags are untouched.
+ *
+ * @param skobject A variable of type #fsl_shw_sko_t.
+ * @param skflags (One or more) ORed members of #fsl_shw_key_flags_t
+ * which are to be reset.
+ */
+#define fsl_shw_sko_clear_flags(skobject, skflags) \
+ (skobject)->flags &= ~(skflags)
+
+/*!
+ * Initialize a Hash Context Object.
+ *
+ * This function must be called before performing any other operation with the
+ * Object. It sets the current message length and hash algorithm in the hash
+ * context object.
+ *
+ * @param hcobject The hash context to operate upon.
+ * @param hcalgorithm The hash algorithm to be used (#FSL_HASH_ALG_MD5,
+ * #FSL_HASH_ALG_SHA256, etc).
+ *
+ */
+#define fsl_shw_hco_init(hcobject, hcalgorithm) \
+{ \
+ (hcobject)->algorithm = hcalgorithm; \
+ (hcobject)->flags = 0; \
+ switch (hcalgorithm) { \
+ case FSL_HASH_ALG_MD5: \
+ (hcobject)->digest_length = 16; \
+ (hcobject)->context_length = 16; \
+ (hcobject)->context_register_length = 24; \
+ break; \
+ case FSL_HASH_ALG_SHA1: \
+ (hcobject)->digest_length = 20; \
+ (hcobject)->context_length = 20; \
+ (hcobject)->context_register_length = 24; \
+ break; \
+ case FSL_HASH_ALG_SHA224: \
+ (hcobject)->digest_length = 28; \
+ (hcobject)->context_length = 32; \
+ (hcobject)->context_register_length = 36; \
+ break; \
+ case FSL_HASH_ALG_SHA256: \
+ (hcobject)->digest_length = 32; \
+ (hcobject)->context_length = 32; \
+ (hcobject)->context_register_length = 36; \
+ break; \
+ default: \
+ /* error ! */ \
+ (hcobject)->digest_length = 1; \
+ (hcobject)->context_length = 1; \
+ (hcobject)->context_register_length = 1; \
+ break; \
+ } \
+}
+
+/*!
+ * Get the current hash value and message length from the hash context object.
+ *
+ * The algorithm must have already been specified. See #fsl_shw_hco_init().
+ *
+ * @param hcobject The hash context to query.
+ * @param[out] hccontext Pointer to the location of @a length octets where to
+ * store a copy of the current value of the digest.
+ * @param hcclength Number of octets of hash value to copy.
+ * @param[out] hcmsglen Pointer to the location to store the number of octets
+ * already hashed.
+ */
+#define fsl_shw_hco_get_digest(hcobject, hccontext, hcclength, hcmsglen) \
+{ \
+ copy_bytes(hccontext, (hcobject)->context, hcclength); \
+ if ((hcobject)->algorithm == FSL_HASH_ALG_SHA224 \
+ || (hcobject)->algorithm == FSL_HASH_ALG_SHA256) { \
+ *(hcmsglen) = (hcobject)->context[8]; \
+ } else { \
+ *(hcmsglen) = (hcobject)->context[5]; \
+ } \
+}
+
+/*!
+ * Get the hash algorithm from the hash context object.
+ *
+ * @param hcobject The hash context to query.
+ * @param[out] hcalgorithm Pointer to where the algorithm is to be stored.
+ */
+#define fsl_shw_hco_get_info(hcobject, hcalgorithm) \
+{ \
+ *(hcalgorithm) = (hcobject)->algorithm; \
+}
+
+/*!
+ * Set the current hash value and message length in the hash context object.
+ *
+ * The algorithm must have already been specified. See #fsl_shw_hco_init().
+ *
+ * @param hcobject The hash context to operate upon.
+ * @param hccontext Pointer to buffer of appropriate length to copy into
+ * the hash context object.
+ * @param hcmsglen The number of octets of the message which have
+ * already been hashed.
+ *
+ */
+#define fsl_shw_hco_set_digest(hcobject, hccontext, hcmsglen) \
+{ \
+ copy_bytes((hcobject)->context, hccontext, (hcobject)->context_length); \
+ if (((hcobject)->algorithm == FSL_HASH_ALG_SHA224) \
+ || ((hcobject)->algorithm == FSL_HASH_ALG_SHA256)) { \
+ (hcobject)->context[8] = hcmsglen; \
+ } else { \
+ (hcobject)->context[5] = hcmsglen; \
+ } \
+}
+
+/*!
+ * Set flags in a Hash Context Object.
+ *
+ * Turns on the flags specified in @a flags. Other flags are untouched.
+ *
+ * @param hcobject The hash context to be operated on.
+ * @param hcflags The flags to be set in the context. These can be ORed
+ * members of #fsl_shw_hash_ctx_flags_t.
+ */
+#define fsl_shw_hco_set_flags(hcobject, hcflags) \
+ (hcobject)->flags |= (hcflags)
+
+/*!
+ * Clear flags in a Hash Context Object.
+ *
+ * Turns off the flags specified in @a flags. Other flags are untouched.
+ *
+ * @param hcobject The hash context to be operated on.
+ * @param hcflags The flags to be reset in the context. These can be ORed
+ * members of #fsl_shw_hash_ctx_flags_t.
+ */
+#define fsl_shw_hco_clear_flags(hcobject, hcflags) \
+ (hcobject)->flags &= ~(hcflags)
+
+/*!
+ * Initialize an HMAC Context Object.
+ *
+ * This function must be called before performing any other operation with the
+ * Object. It sets the current message length and hash algorithm in the HMAC
+ * context object.
+ *
+ * @param hcobject The HMAC context to operate upon.
+ * @param hcalgorithm The hash algorithm to be used (#FSL_HASH_ALG_MD5,
+ * #FSL_HASH_ALG_SHA256, etc).
+ *
+ */
+#define fsl_shw_hmco_init(hcobject, hcalgorithm) \
+ fsl_shw_hco_init(hcobject, hcalgorithm)
+
+/*!
+ * Set flags in an HMAC Context Object.
+ *
+ * Turns on the flags specified in @a flags. Other flags are untouched.
+ *
+ * @param hcobject The HMAC context to be operated on.
+ * @param hcflags The flags to be set in the context. These can be ORed
+ * members of #fsl_shw_hmac_ctx_flags_t.
+ */
+#define fsl_shw_hmco_set_flags(hcobject, hcflags) \
+ (hcobject)->flags |= (hcflags)
+
+/*!
+ * Clear flags in an HMAC Context Object.
+ *
+ * Turns off the flags specified in @a flags. Other flags are untouched.
+ *
+ * @param hcobject The HMAC context to be operated on.
+ * @param hcflags The flags to be reset in the context. These can be ORed
+ * members of #fsl_shw_hmac_ctx_flags_t.
+ */
+#define fsl_shw_hmco_clear_flags(hcobject, hcflags) \
+ (hcobject)->flags &= ~(hcflags)
+
+/*!
+ * Initialize a Symmetric Cipher Context Object.
+ *
+ * This function must be called before performing any other operation with the
+ * Object. This will set the @a mode and @a algorithm and initialize the
+ * Object.
+ *
+ * @param scobject The context object to operate on.
+ * @param scalg The cipher algorithm this context will be used with.
+ * @param scmode #FSL_SYM_MODE_CBC, #FSL_SYM_MODE_ECB, etc.
+ *
+ */
+#define fsl_shw_scco_init(scobject, scalg, scmode) \
+{ \
+ register uint32_t bsb; /* block-size bytes */ \
+ \
+ switch (scalg) { \
+ case FSL_KEY_ALG_AES: \
+ bsb = 16; \
+ break; \
+ case FSL_KEY_ALG_DES: \
+ /* fall through */ \
+ case FSL_KEY_ALG_TDES: \
+ bsb = 8; \
+ break; \
+ case FSL_KEY_ALG_ARC4: \
+ bsb = 259; \
+ break; \
+ case FSL_KEY_ALG_HMAC: \
+ bsb = 1; /* meaningless */ \
+ break; \
+ default: \
+ bsb = 00; \
+ } \
+ (scobject)->block_size_bytes = bsb; \
+ (scobject)->mode = scmode; \
+ (scobject)->flags = 0; \
+}
+
+/*!
+ * Set the flags for a Symmetric Cipher Context.
+ *
+ * Turns on the flags specified in @a flags. Other flags are untouched.
+ *
+ * @param scobject The context object to operate on.
+ * @param scflags The flags to reset (one or more values from
+ * #fsl_shw_sym_ctx_flags_t ORed together).
+ *
+ */
+#define fsl_shw_scco_set_flags(scobject, scflags) \
+ (scobject)->flags |= (scflags)
+
+/*!
+ * Clear some flags in a Symmetric Cipher Context Object.
+ *
+ * Turns off the flags specified in @a flags. Other flags are untouched.
+ *
+ * @param scobject The context object to operate on.
+ * @param scflags The flags to reset (one or more values from
+ * #fsl_shw_sym_ctx_flags_t ORed together).
+ *
+ */
+#define fsl_shw_scco_clear_flags(scobject, scflags) \
+ (scobject)->flags &= ~(scflags)
+
+/*!
+ * Set the Context (IV) for a Symmetric Cipher Context.
+ *
+ * This is to set the context/IV for #FSL_SYM_MODE_CBC mode, or to set the
+ * context (the S-Box and pointers) for ARC4. The full context size will
+ * be copied.
+ *
+ * @param scobject The context object to operate on.
+ * @param sccontext A pointer to the buffer which contains the context.
+ *
+ */
+#define fsl_shw_scco_set_context(scobject, sccontext) \
+ copy_bytes((scobject)->context, sccontext, \
+ (scobject)->block_size_bytes)
+
+/*!
+ * Get the Context for a Symmetric Cipher Context.
+ *
+ * This is to retrieve the context/IV for #FSL_SYM_MODE_CBC mode, or to
+ * retrieve context (the S-Box and pointers) for ARC4. The full context
+ * will be copied.
+ *
+ * @param scobject The context object to operate on.
+ * @param[out] sccontext Pointer to location where context will be stored.
+ */
+#define fsl_shw_scco_get_context(scobject, sccontext) \
+ copy_bytes(sccontext, (scobject)->context, (scobject)->block_size_bytes)
+
+/*!
+ * Set the Counter Value for a Symmetric Cipher Context.
+ *
+ * This will set the Counter Value for CTR mode.
+ *
+ * @param scobject The context object to operate on.
+ * @param sccounter The starting counter value. The number of octets.
+ * copied will be the block size for the algorithm.
+ * @param scmodulus The modulus for controlling the incrementing of the
+ * counter.
+ *
+ */
+#define fsl_shw_scco_set_counter_info(scobject, sccounter, scmodulus) \
+ { \
+ if ((sccounter) != NULL) { \
+ copy_bytes((scobject)->context, sccounter, \
+ (scobject)->block_size_bytes); \
+ } \
+ (scobject)->modulus_exp = scmodulus; \
+ }
+
+/*!
+ * Get the Counter Value for a Symmetric Cipher Context.
+ *
+ * This will retrieve the Counter Value is for CTR mode.
+ *
+ * @param scobject The context object to query.
+ * @param[out] sccounter Pointer to location to store the current counter
+ * value. The number of octets copied will be the
+ * block size for the algorithm.
+ * @param[out] scmodulus Pointer to location to store the modulus.
+ *
+ */
+#define fsl_shw_scco_get_counter_info(scobject, sccounter, scmodulus) \
+ { \
+ if ((sccounter) != NULL) { \
+ copy_bytes(sccounter, (scobject)->context, \
+ (scobject)->block_size_bytes); \
+ } \
+ if ((scmodulus) != NULL) { \
+ *(scmodulus) = (scobject)->modulus_exp; \
+ } \
+ }
+
+/*!
+ * Initialize a Authentication-Cipher Context.
+ *
+ * @param acobject Pointer to object to operate on.
+ * @param acmode The mode for this object (only #FSL_ACC_MODE_CCM
+ * supported).
+ */
+#define fsl_shw_acco_init(acobject, acmode) \
+ { \
+ (acobject)->flags = 0; \
+ (acobject)->mode = (acmode); \
+ }
+
+/*!
+ * Set the flags for a Authentication-Cipher Context.
+ *
+ * Turns on the flags specified in @a flags. Other flags are untouched.
+ *
+ * @param acobject Pointer to object to operate on.
+ * @param acflags The flags to set (one or more from
+ * #fsl_shw_auth_ctx_flags_t ORed together).
+ *
+ */
+#define fsl_shw_acco_set_flags(acobject, acflags) \
+ (acobject)->flags |= (acflags)
+
+/*!
+ * Clear some flags in a Authentication-Cipher Context Object.
+ *
+ * Turns off the flags specified in @a flags. Other flags are untouched.
+ *
+ * @param acobject Pointer to object to operate on.
+ * @param acflags The flags to reset (one or more from
+ * #fsl_shw_auth_ctx_flags_t ORed together).
+ *
+ */
+#define fsl_shw_acco_clear_flags(acobject, acflags) \
+ (acobject)->flags &= ~(acflags)
+
+/*!
+ * Set up the Authentication-Cipher Object for CCM mode.
+ *
+ * This will set the @a auth_object for CCM mode and save the @a ctr,
+ * and @a mac_length. This function can be called instead of
+ * #fsl_shw_acco_init().
+ *
+ * The paramater @a ctr is Counter Block 0, (counter value 0), which is for the
+ * MAC.
+ *
+ * @param acobject Pointer to object to operate on.
+ * @param acalg Cipher algorithm. Only AES is supported.
+ * @param accounter The initial counter value.
+ * @param acmaclen The number of octets used for the MAC. Valid values are
+ * 4, 6, 8, 10, 12, 14, and 16.
+ */
+/* Do we need to stash the +1 value of the CTR somewhere? */
+#define fsl_shw_acco_set_ccm(acobject, acalg, accounter, acmaclen) \
+{ \
+ (acobject)->flags = 0; \
+ (acobject)->mode = FSL_ACC_MODE_CCM; \
+ (acobject)->auth_info.CCM_ctx_info.block_size_bytes = 16; \
+ (acobject)->cipher_ctx_info.block_size_bytes = 16; \
+ (acobject)->mac_length = acmaclen; \
+ fsl_shw_scco_set_counter_info(&(acobject)->cipher_ctx_info, accounter, \
+ FSL_CTR_MOD_128); \
+}
+
+/*!
+ * Format the First Block (IV) & Initial Counter Value per NIST CCM.
+ *
+ * This function will also set the IV and CTR values per Appendix A of NIST
+ * Special Publication 800-38C (May 2004). It will also perform the
+ * #fsl_shw_acco_set_ccm() operation with information derived from this set of
+ * parameters.
+ *
+ * Note this function assumes the algorithm is AES. It initializes the
+ * @a auth_object by setting the mode to #FSL_ACC_MODE_CCM and setting the
+ * flags to be #FSL_ACCO_NIST_CCM.
+ *
+ * @param acobject Pointer to object to operate on.
+ * @param act The number of octets used for the MAC. Valid values are
+ * 4, 6, 8, 10, 12, 14, and 16.
+ * @param acad Number of octets of Associated Data (may be zero).
+ * @param acq A value for the size of the length of @a q field. Valid
+ * values are 1-8.
+ * @param acN The Nonce (packet number or other changing value). Must
+ * be (15 - @a q_length) octets long.
+ * @param acQ The value of Q (size of the payload in octets).
+ *
+ */
+/* Do we need to stash the +1 value of the CTR somewhere? */
+#define fsl_shw_ccm_nist_format_ctr_and_iv(acobject, act, acad, acq, acN, acQ)\
+ { \
+ uint64_t Q = acQ; \
+ uint8_t bflag = ((acad)?0x40:0) | ((((act)-2)/2)<<3) | ((acq)-1); \
+ unsigned i; \
+ uint8_t* qptr = (acobject)->auth_info.CCM_ctx_info.context + 15; \
+ (acobject)->auth_info.CCM_ctx_info.block_size_bytes = 16; \
+ (acobject)->cipher_ctx_info.block_size_bytes = 16; \
+ (acobject)->mode = FSL_ACC_MODE_CCM; \
+ (acobject)->flags = FSL_ACCO_NIST_CCM; \
+ \
+ /* Store away the MAC length (after calculating actual value */ \
+ (acobject)->mac_length = (act); \
+ /* Set Flag field in Block 0 */ \
+ *((acobject)->auth_info.CCM_ctx_info.context) = bflag; \
+ /* Set Nonce field in Block 0 */ \
+ copy_bytes((acobject)->auth_info.CCM_ctx_info.context+1, acN, \
+ 15-(acq)); \
+ /* Set Flag field in ctr */ \
+ *((acobject)->cipher_ctx_info.context) = (acq)-1; \
+ /* Update the Q (payload length) field of Block0 */ \
+ (acobject)->q_length = acq; \
+ for (i = 0; i < (acq); i++) { \
+ *qptr-- = Q & 0xFF; \
+ Q >>= 8; \
+ } \
+ /* Set the Nonce field of the ctr */ \
+ copy_bytes((acobject)->cipher_ctx_info.context+1, acN, 15-(acq)); \
+ /* Clear the block counter field of the ctr */ \
+ memset((acobject)->cipher_ctx_info.context+16-(acq), 0, (acq)+1); \
+ }
+
+/*!
+ * Update the First Block (IV) & Initial Counter Value per NIST CCM.
+ *
+ * This function will set the IV and CTR values per Appendix A of NIST Special
+ * Publication 800-38C (May 2004).
+ *
+ * Note this function assumes that #fsl_shw_ccm_nist_format_ctr_and_iv() has
+ * previously been called on the @a auth_object.
+ *
+ * @param acobject Pointer to object to operate on.
+ * @param acN The Nonce (packet number or other changing value). Must
+ * be (15 - @a q_length) octets long.
+ * @param acQ The value of Q (size of the payload in octets).
+ *
+ */
+/* Do we need to stash the +1 value of the CTR somewhere? */
+#define fsl_shw_ccm_nist_update_ctr_and_iv(acobject, acN, acQ) \
+ { \
+ uint64_t Q = acQ; \
+ unsigned i; \
+ uint8_t* qptr = (acobject)->auth_info.CCM_ctx_info.context + 15; \
+ \
+ /* Update the Nonce field field of Block0 */ \
+ copy_bytes((acobject)->auth_info.CCM_ctx_info.context+1, acN, \
+ 15 - (acobject)->q_length); \
+ /* Update the Q (payload length) field of Block0 */ \
+ for (i = 0; i < (acobject)->q_length; i++) { \
+ *qptr-- = Q & 0xFF; \
+ Q >>= 8; \
+ } \
+ /* Update the Nonce field of the ctr */ \
+ copy_bytes((acobject)->cipher_ctx_info.context+1, acN, \
+ 15 - (acobject)->q_length); \
+ }
+
+/******************************************************************************
+ * Library functions
+ *****************************************************************************/
+/* REQ-S2LRD-PINTFC-API-GEN-003 */
+extern fsl_shw_pco_t *fsl_shw_get_capabilities(fsl_shw_uco_t * user_ctx);
+
+/* REQ-S2LRD-PINTFC-API-GEN-004 */
+extern fsl_shw_return_t fsl_shw_register_user(fsl_shw_uco_t * user_ctx);
+
+/* REQ-S2LRD-PINTFC-API-GEN-005 */
+extern fsl_shw_return_t fsl_shw_deregister_user(fsl_shw_uco_t * user_ctx);
+
+/* REQ-S2LRD-PINTFC-API-GEN-006 */
+extern fsl_shw_return_t fsl_shw_get_results(fsl_shw_uco_t * user_ctx,
+ unsigned result_size,
+ fsl_shw_result_t results[],
+ unsigned *result_count);
+
+extern fsl_shw_return_t fsl_shw_establish_key(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info,
+ fsl_shw_key_wrap_t establish_type,
+ const uint8_t * key);
+
+extern fsl_shw_return_t fsl_shw_extract_key(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info,
+ uint8_t * covered_key);
+
+extern fsl_shw_return_t fsl_shw_release_key(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info);
+
+extern void *fsl_shw_smalloc(fsl_shw_uco_t * user_ctx,
+ uint32_t size,
+ const uint8_t * UMID, uint32_t permissions);
+
+extern fsl_shw_return_t fsl_shw_sfree(fsl_shw_uco_t * user_ctx, void *address);
+
+extern fsl_shw_return_t fsl_shw_sstatus(fsl_shw_uco_t * user_ctx,
+ void *address,
+ fsl_shw_partition_status_t * status);
+
+extern fsl_shw_return_t fsl_shw_diminish_perms(fsl_shw_uco_t * user_ctx,
+ void *address,
+ uint32_t permissions);
+
+extern fsl_shw_return_t do_scc_engage_partition(fsl_shw_uco_t * user_ctx,
+ void *address,
+ const uint8_t * UMID,
+ uint32_t permissions);
+
+extern fsl_shw_return_t do_system_keystore_slot_alloc(fsl_shw_uco_t * user_ctx,
+ uint32_t key_lenth,
+ uint64_t ownerid,
+ uint32_t * slot);
+
+extern fsl_shw_return_t do_system_keystore_slot_dealloc(fsl_shw_uco_t *
+ user_ctx,
+ uint64_t ownerid,
+ uint32_t slot);
+
+extern fsl_shw_return_t do_system_keystore_slot_load(fsl_shw_uco_t * user_ctx,
+ uint64_t ownerid,
+ uint32_t slot,
+ const uint8_t * key,
+ uint32_t key_length);
+
+extern fsl_shw_return_t do_system_keystore_slot_read(fsl_shw_uco_t * user_ctx,
+ uint64_t ownerid,
+ uint32_t slot,
+ uint32_t key_length,
+ const uint8_t * key);
+
+extern fsl_shw_return_t do_system_keystore_slot_encrypt(fsl_shw_uco_t *
+ user_ctx,
+ uint64_t ownerid,
+ uint32_t slot,
+ uint32_t key_length,
+ uint8_t * black_data);
+
+extern fsl_shw_return_t do_system_keystore_slot_decrypt(fsl_shw_uco_t *
+ user_ctx,
+ uint64_t ownerid,
+ uint32_t slot,
+ uint32_t key_length,
+ const uint8_t *
+ black_data);
+
+extern fsl_shw_return_t
+do_scc_encrypt_region(fsl_shw_uco_t * user_ctx,
+ void *partition_base, uint32_t offset_bytes,
+ uint32_t byte_count, uint8_t * black_data,
+ uint32_t * IV, fsl_shw_cypher_mode_t cypher_mode);
+
+extern fsl_shw_return_t
+do_scc_decrypt_region(fsl_shw_uco_t * user_ctx,
+ void *partition_base, uint32_t offset_bytes,
+ uint32_t byte_count, const uint8_t * black_data,
+ uint32_t * IV, fsl_shw_cypher_mode_t cypher_mode);
+
+extern fsl_shw_return_t
+system_keystore_get_slot_info(uint64_t owner_id, uint32_t slot,
+ uint32_t * address, uint32_t * slot_size_bytes);
+
+/* REQ-S2LRD-PINTFC-API-BASIC-SYM-002 */
+/* PINTFC-API-BASIC-SYM-ARC4-001 */
+/* PINTFC-API-BASIC-SYM-ARC4-002 */
+extern fsl_shw_return_t fsl_shw_symmetric_encrypt(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info,
+ fsl_shw_scco_t * sym_ctx,
+ uint32_t length,
+ const uint8_t * pt,
+ uint8_t * ct);
+
+/* PINTFC-API-BASIC-SYM-002 */
+/* PINTFC-API-BASIC-SYM-ARC4-001 */
+/* PINTFC-API-BASIC-SYM-ARC4-002 */
+extern fsl_shw_return_t fsl_shw_symmetric_decrypt(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info,
+ fsl_shw_scco_t * sym_ctx,
+ uint32_t length,
+ const uint8_t * ct,
+ uint8_t * pt);
+
+/* REQ-S2LRD-PINTFC-API-BASIC-HASH-005 */
+extern fsl_shw_return_t fsl_shw_hash(fsl_shw_uco_t * user_ctx,
+ fsl_shw_hco_t * hash_ctx,
+ const uint8_t * msg,
+ uint32_t length,
+ uint8_t * result, uint32_t result_len);
+
+/* REQ-S2LRD-PINTFC-API-BASIC-HMAC-001 */
+extern fsl_shw_return_t fsl_shw_hmac_precompute(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info,
+ fsl_shw_hmco_t * hmac_ctx);
+
+/* REQ-S2LRD-PINTFC-API-BASIC-HMAC-002 */
+extern fsl_shw_return_t fsl_shw_hmac(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info,
+ fsl_shw_hmco_t * hmac_ctx,
+ const uint8_t * msg,
+ uint32_t length,
+ uint8_t * result, uint32_t result_len);
+
+/* REQ-S2LRD-PINTFC-API-BASIC-RNG-002 */
+extern fsl_shw_return_t fsl_shw_get_random(fsl_shw_uco_t * user_ctx,
+ uint32_t length, uint8_t * data);
+
+extern fsl_shw_return_t fsl_shw_add_entropy(fsl_shw_uco_t * user_ctx,
+ uint32_t length, uint8_t * data);
+
+extern fsl_shw_return_t fsl_shw_gen_encrypt(fsl_shw_uco_t * user_ctx,
+ fsl_shw_acco_t * auth_ctx,
+ fsl_shw_sko_t * cipher_key_info,
+ fsl_shw_sko_t * auth_key_info,
+ uint32_t auth_data_length,
+ const uint8_t * auth_data,
+ uint32_t payload_length,
+ const uint8_t * payload,
+ uint8_t * ct, uint8_t * auth_value);
+
+extern fsl_shw_return_t fsl_shw_auth_decrypt(fsl_shw_uco_t * user_ctx,
+ fsl_shw_acco_t * auth_ctx,
+ fsl_shw_sko_t * cipher_key_info,
+ fsl_shw_sko_t * auth_key_info,
+ uint32_t auth_data_length,
+ const uint8_t * auth_data,
+ uint32_t payload_length,
+ const uint8_t * ct,
+ const uint8_t * auth_value,
+ uint8_t * payload);
+
+extern fsl_shw_return_t fsl_shw_read_key(fsl_shw_uco_t * user_ctx,
+ fsl_shw_sko_t * key_info,
+ uint8_t * key);
+
+static inline fsl_shw_return_t fsl_shw_gen_random_pf_key(fsl_shw_uco_t *
+ user_ctx)
+{
+ (void)user_ctx;
+
+ return FSL_RETURN_NO_RESOURCE_S;
+}
+
+static inline fsl_shw_return_t fsl_shw_read_tamper_event(fsl_shw_uco_t *
+ user_ctx,
+ fsl_shw_tamper_t *
+ tamperp,
+ uint64_t * timestampp)
+{
+ (void)user_ctx;
+ (void)tamperp;
+ (void)timestampp;
+
+ return FSL_RETURN_NO_RESOURCE_S;
+}
+
+fsl_shw_return_t sah_Append_Desc(const sah_Mem_Util * mu,
+ sah_Head_Desc ** desc_head,
+ const uint32_t header,
+ sah_Link * link1, sah_Link * link2);
+
+/* Utility Function leftover from sahara1 API */
+void sah_Descriptor_Chain_Destroy(const sah_Mem_Util * mu,
+ sah_Head_Desc ** desc_chain);
+
+/* Utility Function leftover from sahara1 API */
+fsl_shw_return_t sah_Descriptor_Chain_Execute(sah_Head_Desc * desc_chain,
+ fsl_shw_uco_t * user_ctx);
+
+fsl_shw_return_t sah_Append_Link(const sah_Mem_Util * mu,
+ sah_Link * link,
+ uint8_t * p,
+ const size_t length,
+ const sah_Link_Flags flags);
+
+fsl_shw_return_t sah_Create_Link(const sah_Mem_Util * mu,
+ sah_Link ** link,
+ uint8_t * p,
+ const size_t length,
+ const sah_Link_Flags flags);
+
+fsl_shw_return_t sah_Create_Key_Link(const sah_Mem_Util * mu,
+ sah_Link ** link,
+ fsl_shw_sko_t * key_info);
+
+void sah_Destroy_Link(const sah_Mem_Util * mu, sah_Link * link);
+
+void sah_Postprocess_Results(fsl_shw_uco_t * user_ctx,
+ sah_results * result_info);
+
+#endif /* SAHARA2_API_H */
diff --git a/drivers/mxc/security/sahara2/include/sahara2_kernel.h b/drivers/mxc/security/sahara2/include/sahara2_kernel.h
new file mode 100644
index 000000000000..bd2fae8e684a
--- /dev/null
+++ b/drivers/mxc/security/sahara2/include/sahara2_kernel.h
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+#define DRIVER_NAME sahara2
+
+#define SAHARA_MAJOR_NODE 78
+
+#include "portable_os.h"
+
+#include "platform_abstractions.h"
+
+/* Forward-declare prototypes using signature macros */
+
+OS_DEV_ISR_DCL(sahara2_isr);
+
+OS_DEV_INIT_DCL(sahara2_init);
+
+OS_DEV_SHUTDOWN_DCL(sahara2_shutdown);
+
+OS_DEV_OPEN_DCL(sahara2_open);
+
+OS_DEV_CLOSE_DCL(sahara2_release);
+
+OS_DEV_IOCTL_DCL(sahara2_ioctl);
+
+struct sahara2_kernel_user {
+ void *command_ring[32];
+};
+
+struct sahara2_sym_arg {
+ char *key;
+ unsigned key_len;
+};
+
+/*! These need to be added to Linux / OS abstractions */
+/*
+module_init(OS_DEV_INIT_REF(sahara2_init));
+module_cleanup(OS_DEV_SHUTDOWN_REF(sahara2_shutdown));
+*/
diff --git a/drivers/mxc/security/sahara2/include/sf_util.h b/drivers/mxc/security/sahara2/include/sf_util.h
new file mode 100644
index 000000000000..f64c3f7c393c
--- /dev/null
+++ b/drivers/mxc/security/sahara2/include/sf_util.h
@@ -0,0 +1,466 @@
+/*
+ * Copyright (C) 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+* @file sf_util.h
+*
+* @brief Header for Sahara Descriptor-chain building Functions
+*/
+#ifndef SF_UTIL_H
+#define SF_UTIL_H
+
+#include <fsl_platform.h>
+#include <sahara.h>
+
+/*! Header value for Sahara Descriptor 1 */
+#define SAH_HDR_SKHA_SET_MODE_IV_KEY 0x10880000
+/*! Header value for Sahara Descriptor 2 */
+#define SAH_HDR_SKHA_SET_MODE_ENC_DEC 0x108D0000
+/*! Header value for Sahara Descriptor 4 */
+#define SAH_HDR_SKHA_ENC_DEC 0x90850000
+/*! Header value for Sahara Descriptor 5 */
+#define SAH_HDR_SKHA_READ_CONTEXT_IV 0x10820000
+/*! Header value for Sahara Descriptor 6 */
+#define SAH_HDR_MDHA_SET_MODE_MD_KEY 0x20880000
+/*! Header value for Sahara Descriptor 8 */
+#define SAH_HDR_MDHA_SET_MODE_HASH 0x208D0000
+/*! Header value for Sahara Descriptor 10 */
+#define SAH_HDR_MDHA_HASH 0xA0850000
+/*! Header value for Sahara Descriptor 11 */
+#define SAH_HDR_MDHA_STORE_DIGEST 0x20820000
+/*! Header value for Sahara Descriptor 18 */
+#define SAH_HDR_RNG_GENERATE 0x308C0000
+/*! Header value for Sahara Descriptor 19 */
+#define SAH_HDR_PKHA_LD_N_E 0xC0800000
+/*! Header value for Sahara Descriptor 20 */
+#define SAH_HDR_PKHA_LD_A_EX_ST_B 0x408D0000
+/*! Header value for Sahara Descriptor 21 */
+#define SAH_HDR_PKHA_LD_N_EX_ST_B 0x408E0000
+/*! Header value for Sahara Descriptor 22 */
+#define SAH_HDR_PKHA_LD_A_B 0xC0830000
+/*! Header value for Sahara Descriptor 23 */
+#define SAH_HDR_PKHA_LD_A0_A1 0x40840000
+/*! Header value for Sahara Descriptor 24 */
+#define SAH_HDR_PKHA_LD_A2_A3 0xC0850000
+/*! Header value for Sahara Descriptor 25 */
+#define SAH_HDR_PKHA_LD_B0_B1 0xC0860000
+/*! Header value for Sahara Descriptor 26 */
+#define SAH_HDR_PKHA_LD_B2_B3 0x40870000
+/*! Header value for Sahara Descriptor 27 */
+#define SAH_HDR_PKHA_ST_A_B 0x40820000
+/*! Header value for Sahara Descriptor 28 */
+#define SAH_HDR_PKHA_ST_A0_A1 0x40880000
+/*! Header value for Sahara Descriptor 29 */
+#define SAH_HDR_PKHA_ST_A2_A3 0xC0890000
+/*! Header value for Sahara Descriptor 30 */
+#define SAH_HDR_PKHA_ST_B0_B1 0xC08A0000
+/*! Header value for Sahara Descriptor 31 */
+#define SAH_HDR_PKHA_ST_B2_B3 0x408B0000
+/*! Header value for Sahara Descriptor 32 */
+#define SAH_HDR_PKHA_EX_ST_B1 0xC08C0000
+/*! Header value for Sahara Descriptor 33 */
+#define SAH_HDR_ARC4_SET_MODE_SBOX 0x90890000
+/*! Header value for Sahara Descriptor 34 */
+#define SAH_HDR_ARC4_READ_SBOX 0x90860000
+/*! Header value for Sahara Descriptor 35 */
+#define SAH_HDR_ARC4_SET_MODE_KEY 0x90830000
+/*! Header value for Sahara Descriptor 36 */
+#define SAH_HDR_PKHA_LD_A3_B0 0x40810000
+/*! Header value for Sahara Descriptor 37 */
+#define SAH_HDR_PKHA_ST_B1_B2 0xC08F0000
+/*! Header value for Sahara Descriptor 38 */
+#define SAH_HDR_SKHA_CBC_ICV 0x10840000
+/*! Header value for Sahara Descriptor 39 */
+#define SAH_HDR_MDHA_ICV_CHECK 0xA08A0000
+
+/*! Header bit indicating "Link-List optimization" */
+#define SAH_HDR_LLO 0x01000000
+
+#define SAH_SF_DCLS \
+ fsl_shw_return_t ret; \
+ unsigned sf_executed = 0; \
+ sah_Head_Desc* desc_chain = NULL; \
+ uint32_t header
+
+#define SAH_SF_USER_CHECK() \
+do { \
+ ret = sah_validate_uco(user_ctx); \
+ if (ret != FSL_RETURN_OK_S) { \
+ goto out; \
+ } \
+} while (0)
+
+#define SAH_SF_EXECUTE() \
+do { \
+ sf_executed = 1; \
+ ret = sah_Descriptor_Chain_Execute(desc_chain, user_ctx); \
+} while (0)
+
+#define SAH_SF_DESC_CLEAN() \
+do { \
+ if (!sf_executed || (user_ctx->flags & FSL_UCO_BLOCKING_MODE)) { \
+ sah_Descriptor_Chain_Destroy(user_ctx->mem_util, &desc_chain); \
+ } \
+ (void) header; \
+} while (0)
+
+/*! Add Descriptor with two inputs */
+#define DESC_IN_IN(hdr, len1, ptr1, len2, ptr2) \
+{ \
+ ret = sah_add_two_in_desc(hdr, ptr1, len1, ptr2, len2, \
+ user_ctx->mem_util, &desc_chain); \
+ if (ret != FSL_RETURN_OK_S) { \
+ goto out; \
+ } \
+}
+
+/*! Add Descriptor with two vectors */
+#define DESC_D_D(hdr, len1, ptr1, len2, ptr2) \
+{ \
+ ret = sah_add_two_d_desc(hdr, ptr1, len1, ptr2, len2, \
+ user_ctx->mem_util, &desc_chain); \
+ if (ret != FSL_RETURN_OK_S) { \
+ goto out; \
+ } \
+}
+
+/*! Add Descriptor with input and a key */
+#define DESC_IN_KEY(hdr, len1, ptr1, key2) \
+{ \
+ ret = sah_add_in_key_desc(hdr, ptr1, len1, key2, \
+ user_ctx->mem_util, &desc_chain); \
+ if (ret != FSL_RETURN_OK_S) { \
+ goto out; \
+ } \
+}
+
+/*! Add Descriptor with input and an output */
+#define DESC_IN_OUT(hdr, len1, ptr1, len2, ptr2) \
+{ \
+ ret = sah_add_in_out_desc(hdr, ptr1, len1, ptr2, len2, \
+ user_ctx->mem_util, &desc_chain); \
+ if (ret != FSL_RETURN_OK_S) { \
+ goto out; \
+ } \
+}
+
+/*! Add Descriptor with input and a key output */
+#define DESC_IN_KEYOUT(hdr, len1, ptr1, key2) \
+{ \
+ ret = sah_add_in_keyout_desc(hdr, ptr1, len1, key2, \
+ user_ctx->mem_util, &desc_chain); \
+ if (ret != FSL_RETURN_OK_S) { \
+ goto out; \
+ } \
+}
+
+/*! Add Descriptor with a key and an output */
+#define DESC_KEY_OUT(hdr, key1, len2, ptr2) \
+{ \
+ ret = sah_add_key_out_desc(hdr, key1, ptr2, len2, \
+ user_ctx->mem_util, &desc_chain); \
+ if (ret != FSL_RETURN_OK_S) { \
+ goto out; \
+ } \
+}
+
+/*! Add Descriptor with two outputs */
+#define DESC_OUT_OUT(hdr, len1, ptr1, len2, ptr2) \
+{ \
+ ret = sah_add_two_out_desc(hdr, ptr1, len1, ptr2, len2, \
+ user_ctx->mem_util, &desc_chain); \
+ if (ret != FSL_RETURN_OK_S) { \
+ goto out; \
+ } \
+}
+
+/*! Add Descriptor with output then input pointers */
+#define DESC_OUT_IN(hdr, len1, ptr1, len2, ptr2) \
+{ \
+ ret = sah_add_out_in_desc(hdr, ptr1, len1, ptr2, len2, \
+ user_ctx->mem_util, &desc_chain); \
+ if (ret != FSL_RETURN_OK_S) { \
+ goto out; \
+ } \
+}
+
+#ifdef SAH_SF_DEBUG
+/*! Add Descriptor with two outputs */
+#define DBG_DESC(hdr, len1, ptr1, len2, ptr2) \
+{ \
+ ret = sah_add_two_out_desc(hdr, ptr1, len1, ptr2, len2, \
+ user_ctx->mem_util, &desc_chain); \
+ if (ret != FSL_RETURN_OK_S) { \
+ goto out; \
+ } \
+}
+#else
+#define DBG_DESC(hdr, len1, ptr1, len2, ptr2)
+#endif
+
+#ifdef __KERNEL__
+#define DESC_DBG_ON ({console_loglevel = 8;})
+#define DESC_DBG_OFF ({console_loglevel = 7;})
+#else
+#define DESC_DBG_ON system("echo 8 > /proc/sys/kernel/printk")
+#define DESC_DBG_OFF system("echo 7 > /proc/sys/kernel/printk")
+#endif
+
+#define DESC_TEMP_ALLOC(size) \
+({ \
+ uint8_t* ptr; \
+ ptr = user_ctx->mem_util->mu_malloc(user_ctx->mem_util->mu_ref, \
+ size); \
+ if (ptr == NULL) { \
+ ret = FSL_RETURN_NO_RESOURCE_S; \
+ goto out; \
+ } \
+ \
+ ptr; \
+})
+
+#define DESC_TEMP_FREE(ptr) \
+({ \
+ if ((ptr != NULL) && \
+ (!sf_executed || (user_ctx->flags & FSL_UCO_BLOCKING_MODE))) { \
+ user_ctx->mem_util-> \
+ mu_free(user_ctx->mem_util->mu_ref, ptr); \
+ ptr = NULL; \
+ } \
+})
+
+/* Temporary implementation. This needs to be in internal/secure RAM */
+#define DESC_TEMP_SECURE_ALLOC(size) \
+({ \
+ uint8_t* ptr; \
+ ptr = user_ctx->mem_util->mu_malloc(user_ctx->mem_util->mu_ref, \
+ size); \
+ if (ptr == NULL) { \
+ ret = FSL_RETURN_NO_RESOURCE_S; \
+ goto out; \
+ } \
+ \
+ ptr; \
+})
+
+#define DESC_TEMP_SECURE_FREE(ptr, size) \
+({ \
+ if ((ptr != NULL) && \
+ (!sf_executed || (user_ctx->flags & FSL_UCO_BLOCKING_MODE))) { \
+ user_ctx->mem_util->mu_memset(user_ctx->mem_util->mu_ref, \
+ ptr, 0, size); \
+ \
+ user_ctx->mem_util-> \
+ mu_free(user_ctx->mem_util->mu_ref, ptr); \
+ ptr = NULL; \
+ } \
+})
+
+extern const uint32_t sah_insert_mdha_algorithm[];
+
+/*! @defgroup mdhaflags MDHA Mode Register Values
+ *
+ * These are bit fields and combinations of bit fields for setting the Mode
+ * Register portion of a Sahara Descriptor Header field.
+ *
+ * The parity bit has been set to ensure that these values have even parity,
+ * therefore using an Exclusive-OR operation against an existing header will
+ * preserve its parity.
+ *
+ * @addtogroup mdhaflags
+ @{
+ */
+#define sah_insert_mdha_icv_check 0x80001000
+#define sah_insert_mdha_ssl 0x80000400
+#define sah_insert_mdha_mac_full 0x80000200
+#define sah_insert_mdha_opad 0x80000080
+#define sah_insert_mdha_ipad 0x80000040
+#define sah_insert_mdha_init 0x80000020
+#define sah_insert_mdha_hmac 0x80000008
+#define sah_insert_mdha_pdata 0x80000004
+#define sah_insert_mdha_algorithm_sha224 0x00000003
+#define sah_insert_mdha_algorithm_sha256 0x80000002
+#define sah_insert_mdha_algorithm_md5 0x80000001
+#define sah_insert_mdha_algorithm_sha1 0x00000000
+/*! @} */
+
+extern const uint32_t sah_insert_skha_algorithm[];
+extern const uint32_t sah_insert_skha_mode[];
+extern const uint32_t sah_insert_skha_modulus[];
+
+/*! @defgroup skhaflags SKHA Mode Register Values
+ *
+ * These are bit fields and combinations of bit fields for setting the Mode
+ * Register portion of a Sahara Descriptor Header field.
+ *
+ * The parity bit has been set to ensure that these values have even parity,
+ * therefore using an Exclusive-OR operation against an existing header will
+ * preserve its parity.
+ *
+ * @addtogroup skhaflags
+ @{
+ */
+/*! */
+#define sah_insert_skha_modulus_128 0x00001e00
+#define sah_insert_skha_no_key_parity 0x80000100
+#define sah_insert_skha_ctr_last_block 0x80000020
+#define sah_insert_skha_suppress_cbc 0x80000020
+#define sah_insert_skha_no_permute 0x80000020
+#define sah_insert_skha_algorithm_arc4 0x00000003
+#define sah_insert_skha_algorithm_tdes 0x80000002
+#define sah_insert_skha_algorithm_des 0x80000001
+#define sah_insert_skha_algorithm_aes 0x00000000
+#define sah_insert_skha_aux0 0x80000020
+#define sah_insert_skha_mode_ctr 0x00000018
+#define sah_insert_skha_mode_ccm 0x80000010
+#define sah_insert_skha_mode_cbc 0x80000008
+#define sah_insert_skha_mode_ecb 0x00000000
+#define sah_insert_skha_encrypt 0x80000004
+#define sah_insert_skha_decrypt 0x00000000
+/*! @} */
+
+/*! @defgroup rngflags RNG Mode Register Values
+ *
+ */
+/*! */
+#define sah_insert_rng_gen_seed 0x80000001
+
+/*! @} */
+
+/*! @defgroup pkhaflags PKHA Mode Register Values
+ *
+ */
+/*! */
+#define sah_insert_pkha_soft_err_false 0x80000200
+#define sah_insert_pkha_soft_err_true 0x80000100
+
+#define sah_insert_pkha_rtn_clr_mem 0x80000001
+#define sah_insert_pkha_rtn_clr_eram 0x80000002
+#define sah_insert_pkha_rtn_mod_exp 0x00000003
+#define sah_insert_pkha_rtn_mod_r2modn 0x80000004
+#define sah_insert_pkha_rtn_mod_rrmodp 0x00000005
+#define sah_insert_pkha_rtn_ec_fp_aff_ptmul 0x00000006
+#define sah_insert_pkha_rtn_ec_f2m_aff_ptmul 0x80000007
+#define sah_insert_pkha_rtn_ec_fp_proj_ptmul 0x80000008
+#define sah_insert_pkha_rtn_ec_f2m_proj_ptmul 0x00000009
+#define sah_insert_pkha_rtn_ec_fp_add 0x0000000A
+#define sah_insert_pkha_rtn_ec_fp_double 0x8000000B
+#define sah_insert_pkha_rtn_ec_f2m_add 0x0000000C
+#define sah_insert_pkha_rtn_ec_f2m_double 0x8000000D
+#define sah_insert_pkha_rtn_f2m_r2modn 0x8000000E
+#define sah_insert_pkha_rtn_f2m_inv 0x0000000F
+#define sah_insert_pkha_rtn_mod_inv 0x80000010
+#define sah_insert_pkha_rtn_rsa_sstep 0x00000011
+#define sah_insert_pkha_rtn_mod_emodn 0x00000012
+#define sah_insert_pkha_rtn_f2m_emodn 0x80000013
+#define sah_insert_pkha_rtn_ec_fp_ptmul 0x00000014
+#define sah_insert_pkha_rtn_ec_f2m_ptmul 0x80000015
+#define sah_insert_pkha_rtn_f2m_gcd 0x80000016
+#define sah_insert_pkha_rtn_mod_gcd 0x00000017
+#define sah_insert_pkha_rtn_f2m_dbl_aff 0x00000018
+#define sah_insert_pkha_rtn_fp_dbl_aff 0x80000019
+#define sah_insert_pkha_rtn_f2m_add_aff 0x8000001A
+#define sah_insert_pkha_rtn_fp_add_aff 0x0000001B
+#define sah_insert_pkha_rtn_f2m_exp 0x8000001C
+#define sah_insert_pkha_rtn_mod_exp_teq 0x0000001D
+#define sah_insert_pkha_rtn_rsa_sstep_teq 0x0000001E
+#define sah_insert_pkha_rtn_f2m_multn 0x8000001F
+#define sah_insert_pkha_rtn_mod_multn 0x80000020
+#define sah_insert_pkha_rtn_mod_add 0x00000021
+#define sah_insert_pkha_rtn_mod_sub 0x00000022
+#define sah_insert_pkha_rtn_mod_mult1_mont 0x80000023
+#define sah_insert_pkha_rtn_mod_mult2_deconv 0x00000024
+#define sah_insert_pkha_rtn_f2m_add 0x80000025
+#define sah_insert_pkha_rtn_f2m_mult1_mont 0x80000026
+#define sah_insert_pkha_rtn_f2m_mult2_deconv 0x00000027
+#define sah_insert_pkha_rtn_miller_rabin 0x00000028
+#define sah_insert_pkha_rtn_mod_amodn 0x00000029
+#define sah_insert_pkha_rtn_f2m_amodn 0x8000002A
+/*! @} */
+
+/*! Add a descriptor with two input pointers */
+fsl_shw_return_t sah_add_two_in_desc(uint32_t header,
+ const uint8_t * in1,
+ uint32_t in1_length,
+ const uint8_t * in2,
+ uint32_t in2_length,
+ const sah_Mem_Util * mu,
+ sah_Head_Desc ** desc_chain);
+
+/*! Add a descriptor with two 'data' pointers */
+fsl_shw_return_t sah_add_two_d_desc(uint32_t header,
+ const uint8_t * in1,
+ uint32_t in1_length,
+ const uint8_t * in2,
+ uint32_t in2_length,
+ const sah_Mem_Util * mu,
+ sah_Head_Desc ** desc_chain);
+
+/*! Add a descriptor with an input and key pointer */
+fsl_shw_return_t sah_add_in_key_desc(uint32_t header,
+ const uint8_t * in1,
+ uint32_t in1_length,
+ fsl_shw_sko_t * key_info,
+ const sah_Mem_Util * mu,
+ sah_Head_Desc ** desc_chain);
+
+/*! Add a descriptor with two key pointers */
+fsl_shw_return_t sah_add_key_key_desc(uint32_t header,
+ fsl_shw_sko_t * key_info1,
+ fsl_shw_sko_t * key_info2,
+ const sah_Mem_Util * mu,
+ sah_Head_Desc ** desc_chain);
+
+/*! Add a descriptor with two output pointers */
+fsl_shw_return_t sah_add_two_out_desc(uint32_t header,
+ uint8_t * out1,
+ uint32_t out1_length,
+ uint8_t * out2,
+ uint32_t out2_length,
+ const sah_Mem_Util * mu,
+ sah_Head_Desc ** desc_chain);
+
+/*! Add a descriptor with an input and output pointer */
+fsl_shw_return_t sah_add_in_out_desc(uint32_t header,
+ const uint8_t * in, uint32_t in_length,
+ uint8_t * out, uint32_t out_length,
+ const sah_Mem_Util * mu,
+ sah_Head_Desc ** desc_chain);
+
+/*! Add a descriptor with an input and key output pointer */
+fsl_shw_return_t sah_add_in_keyout_desc(uint32_t header,
+ const uint8_t * in, uint32_t in_length,
+ fsl_shw_sko_t * key_info,
+ const sah_Mem_Util * mu,
+ sah_Head_Desc ** desc_chain);
+
+/*! Add a descriptor with a key and an output pointer */
+fsl_shw_return_t sah_add_key_out_desc(uint32_t header,
+ const fsl_shw_sko_t * key_info,
+ uint8_t * out, uint32_t out_length,
+ const sah_Mem_Util * mu,
+ sah_Head_Desc ** desc_chain);
+
+/*! Add a descriptor with an output and input pointer */
+fsl_shw_return_t sah_add_out_in_desc(uint32_t header,
+ uint8_t * out, uint32_t out_length,
+ const uint8_t * in, uint32_t in_length,
+ const sah_Mem_Util * mu,
+ sah_Head_Desc ** desc_chain);
+
+/*! Verify that supplied User Context Object is valid */
+fsl_shw_return_t sah_validate_uco(fsl_shw_uco_t * uco);
+
+#endif /* SF_UTIL_H */
+
+/* End of sf_util.h */
diff --git a/drivers/mxc/security/sahara2/km_adaptor.c b/drivers/mxc/security/sahara2/km_adaptor.c
new file mode 100644
index 000000000000..f2b7d564256d
--- /dev/null
+++ b/drivers/mxc/security/sahara2/km_adaptor.c
@@ -0,0 +1,849 @@
+/*
+ * Copyright (C) 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+* @file km_adaptor.c
+*
+* @brief The Adaptor component provides an interface to the
+* driver for a kernel user.
+*/
+
+#include <adaptor.h>
+#include <sf_util.h>
+#include <sah_queue_manager.h>
+#include <sah_memory_mapper.h>
+#include <fsl_shw_keystore.h>
+#ifdef FSL_HAVE_SCC
+#include <linux/mxc_scc_driver.h>
+#elif defined (FSL_HAVE_SCC2)
+#include <linux/mxc_scc2_driver.h>
+#endif
+
+
+EXPORT_SYMBOL(adaptor_Exec_Descriptor_Chain);
+EXPORT_SYMBOL(sah_register);
+EXPORT_SYMBOL(sah_deregister);
+EXPORT_SYMBOL(sah_get_results);
+EXPORT_SYMBOL(fsl_shw_smalloc);
+EXPORT_SYMBOL(fsl_shw_sfree);
+EXPORT_SYMBOL(fsl_shw_sstatus);
+EXPORT_SYMBOL(fsl_shw_diminish_perms);
+EXPORT_SYMBOL(do_scc_encrypt_region);
+EXPORT_SYMBOL(do_scc_decrypt_region);
+EXPORT_SYMBOL(do_system_keystore_slot_alloc);
+EXPORT_SYMBOL(do_system_keystore_slot_dealloc);
+EXPORT_SYMBOL(do_system_keystore_slot_load);
+EXPORT_SYMBOL(do_system_keystore_slot_read);
+EXPORT_SYMBOL(do_system_keystore_slot_encrypt);
+EXPORT_SYMBOL(do_system_keystore_slot_decrypt);
+
+
+#if defined(DIAG_DRV_IF) || defined(DIAG_MEM) || defined(DIAG_ADAPTOR)
+#include <diagnostic.h>
+#endif
+
+#if defined(DIAG_DRV_IF) || defined(DIAG_MEM) || defined(DIAG_ADAPTOR)
+#define MAX_DUMP 16
+
+#define DIAG_MSG_SIZE 300
+static char Diag_msg[DIAG_MSG_SIZE];
+#endif
+
+/* This is the wait queue to this mode of driver */
+DECLARE_WAIT_QUEUE_HEAD(Wait_queue_km);
+
+/*! This matches Sahara2 capabilities... */
+fsl_shw_pco_t sahara2_capabilities = {
+ 1, 3, /* api version number - major & minor */
+ 1, 6, /* driver version number - major & minor */
+ {
+ FSL_KEY_ALG_AES,
+ FSL_KEY_ALG_DES,
+ FSL_KEY_ALG_TDES,
+ FSL_KEY_ALG_ARC4},
+ {
+ FSL_SYM_MODE_STREAM,
+ FSL_SYM_MODE_ECB,
+ FSL_SYM_MODE_CBC,
+ FSL_SYM_MODE_CTR},
+ {
+ FSL_HASH_ALG_MD5,
+ FSL_HASH_ALG_SHA1,
+ FSL_HASH_ALG_SHA224,
+ FSL_HASH_ALG_SHA256},
+ /*
+ * The following table must be set to handle all values of key algorithm
+ * and sym mode, and be in the correct order..
+ */
+ { /* Stream, ECB, CBC, CTR */
+ {0, 0, 0, 0}, /* HMAC */
+ {0, 1, 1, 1}, /* AES */
+ {0, 1, 1, 0}, /* DES */
+ {0, 1, 1, 0}, /* 3DES */
+ {1, 0, 0, 0} /* ARC4 */
+ },
+ 0, 0,
+ 0, 0, 0,
+ {{0, 0}}
+};
+
+#ifdef DIAG_ADAPTOR
+void km_Dump_Chain(const sah_Desc * chain);
+
+void km_Dump_Region(const char *prefix, const unsigned char *data,
+ unsigned length);
+
+static void km_Dump_Link(const char *prefix, const sah_Link * link);
+
+void km_Dump_Words(const char *prefix, const unsigned *data, unsigned length);
+#endif
+
+/**** Memory routines ****/
+
+static void *my_malloc(void *ref, size_t n)
+{
+ register void *mem;
+
+#ifndef DIAG_MEM_ERRORS
+ mem = os_alloc_memory(n, GFP_KERNEL);
+
+#else
+ {
+ uint32_t rand;
+ /* are we feeling lucky ? */
+ os_get_random_bytes(&rand, sizeof(rand));
+ if ((rand % DIAG_MEM_CONST) == 0) {
+ mem = 0;
+ } else {
+ mem = os_alloc_memory(n, GFP_ATOMIC);
+ }
+ }
+#endif /* DIAG_MEM_ERRORS */
+
+#ifdef DIAG_MEM
+ sprintf(Diag_msg, "API kmalloc: %p for %d\n", mem, n);
+ LOG_KDIAG(Diag_msg);
+#endif
+ ref = 0; /* unused param warning */
+ return mem;
+}
+
+static sah_Head_Desc *my_alloc_head_desc(void *ref)
+{
+ register sah_Head_Desc *ptr;
+
+#ifndef DIAG_MEM_ERRORS
+ ptr = sah_Alloc_Head_Descriptor();
+
+#else
+ {
+ uint32_t rand;
+ /* are we feeling lucky ? */
+ os_get_random_bytes(&rand, sizeof(rand));
+ if ((rand % DIAG_MEM_CONST) == 0) {
+ ptr = 0;
+ } else {
+ ptr = sah_Alloc_Head_Descriptor();
+ }
+ }
+#endif
+ ref = 0;
+ return ptr;
+}
+
+static sah_Desc *my_alloc_desc(void *ref)
+{
+ register sah_Desc *ptr;
+
+#ifndef DIAG_MEM_ERRORS
+ ptr = sah_Alloc_Descriptor();
+
+#else
+ {
+ uint32_t rand;
+ /* are we feeling lucky ? */
+ os_get_random_bytes(&rand, sizeof(rand));
+ if ((rand % DIAG_MEM_CONST) == 0) {
+ ptr = 0;
+ } else {
+ ptr = sah_Alloc_Descriptor();
+ }
+ }
+#endif
+ ref = 0;
+ return ptr;
+}
+
+static sah_Link *my_alloc_link(void *ref)
+{
+ register sah_Link *ptr;
+
+#ifndef DIAG_MEM_ERRORS
+ ptr = sah_Alloc_Link();
+
+#else
+ {
+ uint32_t rand;
+ /* are we feeling lucky ? */
+ os_get_random_bytes(&rand, sizeof(rand));
+ if ((rand % DIAG_MEM_CONST) == 0) {
+ ptr = 0;
+ } else {
+ ptr = sah_Alloc_Link();
+ }
+ }
+#endif
+ ref = 0;
+ return ptr;
+}
+
+static void my_free(void *ref, void *ptr)
+{
+ ref = 0; /* unused param warning */
+#ifdef DIAG_MEM
+ sprintf(Diag_msg, "API kfree: %p\n", ptr);
+ LOG_KDIAG(Diag_msg);
+#endif
+ os_free_memory(ptr);
+}
+
+static void my_free_head_desc(void *ref, sah_Head_Desc * ptr)
+{
+ sah_Free_Head_Descriptor(ptr);
+}
+
+static void my_free_desc(void *ref, sah_Desc * ptr)
+{
+ sah_Free_Descriptor(ptr);
+}
+
+static void my_free_link(void *ref, sah_Link * ptr)
+{
+ sah_Free_Link(ptr);
+}
+
+static void *my_memcpy(void *ref, void *dest, const void *src, size_t n)
+{
+ ref = 0; /* unused param warning */
+ return memcpy(dest, src, n);
+}
+
+static void *my_memset(void *ref, void *ptr, int ch, size_t n)
+{
+ ref = 0; /* unused param warning */
+ return memset(ptr, ch, n);
+}
+
+/*! Standard memory manipulation routines for kernel API. */
+static sah_Mem_Util std_kernelmode_mem_util = {
+ .mu_ref = 0,
+ .mu_malloc = my_malloc,
+ .mu_alloc_head_desc = my_alloc_head_desc,
+ .mu_alloc_desc = my_alloc_desc,
+ .mu_alloc_link = my_alloc_link,
+ .mu_free = my_free,
+ .mu_free_head_desc = my_free_head_desc,
+ .mu_free_desc = my_free_desc,
+ .mu_free_link = my_free_link,
+ .mu_memcpy = my_memcpy,
+ .mu_memset = my_memset
+};
+
+fsl_shw_return_t get_capabilities(fsl_shw_uco_t * user_ctx,
+ fsl_shw_pco_t * capabilities)
+{
+ scc_config_t *scc_capabilities;
+
+ /* Fill in the Sahara2 capabilities. */
+ memcpy(capabilities, &sahara2_capabilities, sizeof(fsl_shw_pco_t));
+
+ /* Fill in the SCC portion of the capabilities object */
+ scc_capabilities = scc_get_configuration();
+ capabilities->scc_driver_major = scc_capabilities->driver_major_version;
+ capabilities->scc_driver_minor = scc_capabilities->driver_minor_version;
+ capabilities->scm_version = scc_capabilities->scm_version;
+ capabilities->smn_version = scc_capabilities->smn_version;
+ capabilities->block_size_bytes = scc_capabilities->block_size_bytes;
+
+#ifdef FSL_HAVE_SCC
+ capabilities->scc_info.black_ram_size_blocks =
+ scc_capabilities->black_ram_size_blocks;
+ capabilities->scc_info.red_ram_size_blocks =
+ scc_capabilities->red_ram_size_blocks;
+#elif defined(FSL_HAVE_SCC2)
+ capabilities->scc2_info.partition_size_bytes =
+ scc_capabilities->partition_size_bytes;
+ capabilities->scc2_info.partition_count =
+ scc_capabilities->partition_count;
+#endif
+
+ return FSL_RETURN_OK_S;
+}
+
+/*!
+ * Sends a request to register this user
+ *
+ * @brief Sends a request to register this user
+ *
+ * @param[in,out] user_ctx part of the structure contains input parameters and
+ * part is filled in by the driver
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+fsl_shw_return_t sah_register(fsl_shw_uco_t * user_ctx)
+{
+ fsl_shw_return_t status;
+
+ /* this field is used in user mode to indicate a file open has occured.
+ * it is used here, in kernel mode, to indicate that the uco is registered
+ */
+ user_ctx->sahara_openfd = 0; /* set to 'registered' */
+ user_ctx->mem_util = &std_kernelmode_mem_util;
+
+ /* check that uco is valid */
+ status = sah_validate_uco(user_ctx);
+
+ /* If life is good, register this user */
+ if (status == FSL_RETURN_OK_S) {
+ status = sah_handle_registration(user_ctx);
+ }
+
+ if (status != FSL_RETURN_OK_S) {
+ user_ctx->sahara_openfd = -1; /* set to 'not registered' */
+ }
+
+ return status;
+}
+
+/*!
+ * Sends a request to deregister this user
+ *
+ * @brief Sends a request to deregister this user
+ *
+ * @param[in,out] user_ctx Info on user being deregistered.
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+fsl_shw_return_t sah_deregister(fsl_shw_uco_t * user_ctx)
+{
+ fsl_shw_return_t status = FSL_RETURN_OK_S;
+
+ if (user_ctx->sahara_openfd == 0) {
+ status = sah_handle_deregistration(user_ctx);
+ user_ctx->sahara_openfd = -1; /* set to 'no registered */
+ }
+
+ return status;
+}
+
+/*!
+ * Sends a request to get results for this user
+ *
+ * @brief Sends a request to get results for this user
+ *
+ * @param[in,out] arg Pointer to structure to collect results
+ * @param uco User's context
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+fsl_shw_return_t sah_get_results(sah_results * arg, fsl_shw_uco_t * uco)
+{
+ fsl_shw_return_t code = sah_get_results_from_pool(uco, arg);
+
+ if ((code == FSL_RETURN_OK_S) && (arg->actual != 0)) {
+ sah_Postprocess_Results(uco, arg);
+ }
+
+ return code;
+}
+
+/*!
+ * This function writes the Descriptor Chain to the kernel driver.
+ *
+ * @brief Writes the Descriptor Chain to the kernel driver.
+ *
+ * @param dar A pointer to a Descriptor Chain of type sah_Head_Desc
+ * @param uco The user context object
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+fsl_shw_return_t adaptor_Exec_Descriptor_Chain(sah_Head_Desc * dar,
+ fsl_shw_uco_t * uco)
+{
+ sah_Head_Desc *kernel_space_desc = NULL;
+ fsl_shw_return_t code = FSL_RETURN_OK_S;
+ int os_error_code = 0;
+ unsigned blocking_mode = dar->uco_flags & FSL_UCO_BLOCKING_MODE;
+
+#ifdef DIAG_ADAPTOR
+ km_Dump_Chain(&dar->desc);
+#endif
+
+ dar->user_info = uco;
+ dar->user_desc = dar;
+
+ /* This code has been shamelessly copied from sah_driver_interface.c */
+ /* It needs to be moved somewhere common ... */
+ kernel_space_desc = sah_Physicalise_Descriptors(dar);
+
+ if (kernel_space_desc == NULL) {
+ /* We may have failed due to a -EFAULT as well, but we will return
+ * -ENOMEM since either way it is a memory related failure. */
+ code = FSL_RETURN_NO_RESOURCE_S;
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("sah_Physicalise_Descriptors() failed\n");
+#endif
+ } else {
+ if (blocking_mode) {
+#ifdef SAHARA_POLL_MODE
+ os_error_code = sah_Handle_Poll(dar);
+#else
+ os_error_code = sah_blocking_mode(dar);
+#endif
+ if (os_error_code != 0) {
+ code = FSL_RETURN_ERROR_S;
+ } else { /* status of actual operation */
+ code = dar->result;
+ }
+ } else {
+#ifdef SAHARA_POLL_MODE
+ sah_Handle_Poll(dar);
+#else
+ /* just put someting in the DAR */
+ sah_Queue_Manager_Append_Entry(dar);
+#endif /* SAHARA_POLL_MODE */
+ }
+ }
+
+ return code;
+}
+
+
+/* System keystore context, defined in sah_driver_interface.c */
+extern fsl_shw_kso_t system_keystore;
+
+fsl_shw_return_t do_system_keystore_slot_alloc(fsl_shw_uco_t * user_ctx,
+ uint32_t key_length,
+ uint64_t ownerid,
+ uint32_t * slot)
+{
+ (void)user_ctx;
+ return keystore_slot_alloc(&system_keystore, key_length, ownerid, slot);
+}
+
+fsl_shw_return_t do_system_keystore_slot_dealloc(fsl_shw_uco_t * user_ctx,
+ uint64_t ownerid,
+ uint32_t slot)
+{
+ (void)user_ctx;
+ return keystore_slot_dealloc(&system_keystore, ownerid, slot);
+}
+
+fsl_shw_return_t do_system_keystore_slot_load(fsl_shw_uco_t * user_ctx,
+ uint64_t ownerid,
+ uint32_t slot,
+ const uint8_t * key,
+ uint32_t key_length)
+{
+ (void)user_ctx;
+ return keystore_slot_load(&system_keystore, ownerid, slot,
+ (void *)key, key_length);
+}
+
+fsl_shw_return_t do_system_keystore_slot_read(fsl_shw_uco_t * user_ctx,
+ uint64_t ownerid,
+ uint32_t slot,
+ uint32_t key_length,
+ const uint8_t * key)
+{
+ (void)user_ctx;
+ return keystore_slot_read(&system_keystore, ownerid, slot,
+ key_length, (void *)key);
+}
+
+fsl_shw_return_t do_system_keystore_slot_encrypt(fsl_shw_uco_t * user_ctx,
+ uint64_t ownerid,
+ uint32_t slot,
+ uint32_t key_length,
+ uint8_t * black_data)
+{
+ (void)user_ctx;
+ return keystore_slot_encrypt(NULL, &system_keystore, ownerid,
+ slot, key_length, black_data);
+}
+
+fsl_shw_return_t do_system_keystore_slot_decrypt(fsl_shw_uco_t * user_ctx,
+ uint64_t ownerid,
+ uint32_t slot,
+ uint32_t key_length,
+ const uint8_t * black_data)
+{
+ (void)user_ctx;
+ return keystore_slot_decrypt(NULL, &system_keystore, ownerid,
+ slot, key_length, black_data);
+}
+
+void *fsl_shw_smalloc(fsl_shw_uco_t * user_ctx,
+ uint32_t size, const uint8_t * UMID, uint32_t permissions)
+{
+#ifdef FSL_HAVE_SCC2
+ int part_no;
+ void *part_base;
+ uint32_t part_phys;
+ scc_config_t *scc_configuration;
+
+ /* Check that the memory size requested is correct */
+ scc_configuration = scc_get_configuration();
+ if (size != scc_configuration->partition_size_bytes) {
+ return NULL;
+ }
+
+ /* Attempt to grab a partition. */
+ if (scc_allocate_partition(0, &part_no, &part_base, &part_phys)
+ != SCC_RET_OK) {
+ return NULL;
+ }
+ printk(KERN_ALERT "In fsh_shw_smalloc (km): partition_base:%p "
+ "partition_base_phys: %p\n", part_base, (void *)part_phys);
+
+ /* these bits should be in a separate function */
+ printk(KERN_ALERT "writing UMID and MAP to secure the partition\n");
+
+ scc_engage_partition(part_base, UMID, permissions);
+
+ (void)user_ctx; /* unused param warning */
+
+ return part_base;
+#else /* FSL_HAVE_SCC2 */
+ (void)user_ctx;
+ (void)size;
+ (void)UMID;
+ (void)permissions;
+ return NULL;
+#endif /* FSL_HAVE_SCC2 */
+
+}
+
+fsl_shw_return_t fsl_shw_sfree(fsl_shw_uco_t * user_ctx, void *address)
+{
+ (void)user_ctx;
+
+#ifdef FSL_HAVE_SCC2
+ if (scc_release_partition(address) == SCC_RET_OK) {
+ return FSL_RETURN_OK_S;
+ }
+#endif
+
+ return FSL_RETURN_ERROR_S;
+}
+
+fsl_shw_return_t fsl_shw_sstatus(fsl_shw_uco_t * user_ctx,
+ void *address,
+ fsl_shw_partition_status_t * status)
+{
+ (void)user_ctx;
+
+#ifdef FSL_HAVE_SCC2
+ *status = scc_partition_status(address);
+ return FSL_RETURN_OK_S;
+#endif
+
+ return FSL_RETURN_ERROR_S;
+}
+
+/* Diminish permissions on some secure memory */
+fsl_shw_return_t fsl_shw_diminish_perms(fsl_shw_uco_t * user_ctx,
+ void *address, uint32_t permissions)
+{
+
+ (void)user_ctx; /* unused parameter warning */
+
+#ifdef FSL_HAVE_SCC2
+ if (scc_diminish_permissions(address, permissions) == SCC_RET_OK) {
+ return FSL_RETURN_OK_S;
+ }
+#endif
+ return FSL_RETURN_ERROR_S;
+}
+
+/*
+ * partition_base - physical address of the partition
+ * offset - offset, in blocks, of the data from the start of the partition
+ * length - length, in bytes, of the data to be encrypted (multiple of 4)
+ * black_data - virtual address that the encrypted data should be stored at
+ * Note that this virtual address must be translatable using the __virt_to_phys
+ * macro; ie, it can't be a specially mapped address. To do encryption with those
+ * addresses, use the scc_encrypt_region function directly. This is to make
+ * this function compatible with the user mode declaration, which does not know
+ * the physical addresses of the data it is using.
+ */
+fsl_shw_return_t
+do_scc_encrypt_region(fsl_shw_uco_t * user_ctx,
+ void *partition_base, uint32_t offset_bytes,
+ uint32_t byte_count, uint8_t * black_data,
+ uint32_t * IV, fsl_shw_cypher_mode_t cypher_mode)
+{
+ scc_return_t scc_ret;
+ fsl_shw_return_t retval = FSL_RETURN_ERROR_S;
+
+#ifdef FSL_HAVE_SCC2
+
+#ifdef DIAG_ADAPTOR
+ uint32_t *owner_32 = (uint32_t *) & (owner_id);
+
+ LOG_KDIAG_ARGS
+ ("partition base: %p, offset: %i, count: %i, black data: %p\n",
+ partition_base, offset_bytes, byte_count, (void *)black_data);
+#endif
+ (void)user_ctx;
+
+ os_cache_flush_range(black_data, byte_count);
+
+ scc_ret =
+ scc_encrypt_region((uint32_t) partition_base, offset_bytes,
+ byte_count, __virt_to_phys(black_data), IV,
+ cypher_mode);
+
+ if (scc_ret == SCC_RET_OK) {
+ retval = FSL_RETURN_OK_S;
+ } else {
+ retval = FSL_RETURN_ERROR_S;
+ }
+
+ /* The SCC2 DMA engine should have written to the black ram, so we need to
+ * invalidate that region of memory. Note that the red ram is not an
+ * because it is mapped with the cache disabled.
+ */
+ os_cache_inv_range(black_data, byte_count);
+
+#else
+ (void)scc_ret;
+#endif /* FSL_HAVE_SCC2 */
+
+ return retval;
+}
+
+/*!
+ * Call the proper function to decrypt a region of encrypted secure memory
+ *
+ * @brief
+ *
+ * @param user_ctx User context of the partition owner (NULL in kernel)
+ * @param partition_base Base address (physical) of the partition
+ * @param offset_bytes Offset from base address that the decrypted data
+ * shall be placed
+ * @param byte_count Length of the message (bytes)
+ * @param black_data Pointer to where the encrypted data is stored
+ * @param owner_id
+ *
+ * @return status
+ */
+
+fsl_shw_return_t
+do_scc_decrypt_region(fsl_shw_uco_t * user_ctx,
+ void *partition_base, uint32_t offset_bytes,
+ uint32_t byte_count, const uint8_t * black_data,
+ uint32_t * IV, fsl_shw_cypher_mode_t cypher_mode)
+{
+ scc_return_t scc_ret;
+ fsl_shw_return_t retval = FSL_RETURN_ERROR_S;
+
+#ifdef FSL_HAVE_SCC2
+
+#ifdef DIAG_ADAPTOR
+ uint32_t *owner_32 = (uint32_t *) & (owner_id);
+
+ LOG_KDIAG_ARGS
+ ("partition base: %p, offset: %i, count: %i, black data: %p\n",
+ partition_base, offset_bytes, byte_count, (void *)black_data);
+#endif
+
+ (void)user_ctx;
+
+ /* The SCC2 DMA engine will be reading from the black ram, so we need to
+ * make sure that the data is pushed out of the cache. Note that the red
+ * ram is not an issue because it is mapped with the cache disabled.
+ */
+ os_cache_flush_range(black_data, byte_count);
+
+ scc_ret =
+ scc_decrypt_region((uint32_t) partition_base, offset_bytes,
+ byte_count,
+ (uint8_t *) __virt_to_phys(black_data), IV,
+ cypher_mode);
+
+ if (scc_ret == SCC_RET_OK) {
+ retval = FSL_RETURN_OK_S;
+ } else {
+ retval = FSL_RETURN_ERROR_S;
+ }
+
+#else
+ (void)scc_ret;
+#endif /* FSL_HAVE_SCC2 */
+
+ return retval;
+}
+
+#ifdef DIAG_ADAPTOR
+/*!
+ * Dump chain of descriptors to the log.
+ *
+ * @brief Dump descriptor chain
+ *
+ * @param chain Kernel virtual address of start of chain of descriptors
+ *
+ * @return void
+ */
+void km_Dump_Chain(const sah_Desc * chain)
+{
+ while (chain != NULL) {
+ km_Dump_Words("Desc", (unsigned *)chain,
+ 6 /*sizeof(*chain)/sizeof(unsigned) */ );
+ /* place this definition elsewhere */
+ if (chain->ptr1) {
+ if (chain->header & SAH_HDR_LLO) {
+ km_Dump_Region(" Data1", chain->ptr1,
+ chain->len1);
+ } else {
+ km_Dump_Link(" Link1", chain->ptr1);
+ }
+ }
+ if (chain->ptr2) {
+ if (chain->header & SAH_HDR_LLO) {
+ km_Dump_Region(" Data2", chain->ptr2,
+ chain->len2);
+ } else {
+ km_Dump_Link(" Link2", chain->ptr2);
+ }
+ }
+
+ chain = chain->next;
+ }
+}
+
+/*!
+ * Dump chain of links to the log.
+ *
+ * @brief Dump chain of links
+ *
+ * @param prefix Text to put in front of dumped data
+ * @param link Kernel virtual address of start of chain of links
+ *
+ * @return void
+ */
+static void km_Dump_Link(const char *prefix, const sah_Link * link)
+{
+ while (link != NULL) {
+ km_Dump_Words(prefix, (unsigned *)link,
+ 3 /* # words in h/w link */ );
+ if (link->flags & SAH_STORED_KEY_INFO) {
+#ifdef CAN_DUMP_SCC_DATA
+ uint32_t len;
+#endif
+
+#ifdef CAN_DUMP_SCC_DATA
+ {
+ char buf[50];
+
+ scc_get_slot_info(link->ownerid, link->slot, (uint32_t *) & link->data, /* RED key address */
+ &len); /* key length */
+ sprintf(buf, " SCC slot %d: ", link->slot);
+ km_Dump_Words(buf,
+ (void *)IO_ADDRESS((uint32_t)
+ link->data),
+ link->len / 4);
+ }
+#else
+ sprintf(Diag_msg, " SCC slot %d", link->slot);
+ LOG_KDIAG(Diag_msg);
+#endif
+ } else if (link->data != NULL) {
+ km_Dump_Region(" Data", link->data, link->len);
+ }
+
+ link = link->next;
+ }
+}
+
+/*!
+ * Dump given region of data to the log.
+ *
+ * @brief Dump data
+ *
+ * @param prefix Text to put in front of dumped data
+ * @param data Kernel virtual address of start of region to dump
+ * @param length Amount of data to dump
+ *
+ * @return void
+*/
+void km_Dump_Region(const char *prefix, const unsigned char *data,
+ unsigned length)
+{
+ unsigned count;
+ char *output;
+ unsigned data_len;
+
+ sprintf(Diag_msg, "%s (%08X,%u):", prefix, (uint32_t) data, length);
+
+ /* Restrict amount of data to dump */
+ if (length > MAX_DUMP) {
+ data_len = MAX_DUMP;
+ } else {
+ data_len = length;
+ }
+
+ /* We've already printed some text in output buffer, skip over it */
+ output = Diag_msg + strlen(Diag_msg);
+
+ for (count = 0; count < data_len; count++) {
+ if (count % 4 == 0) {
+ *output++ = ' ';
+ }
+ sprintf(output, "%02X", *data++);
+ output += 2;
+ }
+
+ LOG_KDIAG(Diag_msg);
+}
+
+/*!
+ * Dump given wors of data to the log.
+ *
+ * @brief Dump data
+ *
+ * @param prefix Text to put in front of dumped data
+ * @param data Kernel virtual address of start of region to dump
+ * @param word_count Amount of data to dump
+ *
+ * @return void
+*/
+void km_Dump_Words(const char *prefix, const unsigned *data,
+ unsigned word_count)
+{
+ char *output;
+
+ sprintf(Diag_msg, "%s (%08X,%uw): ", prefix, (uint32_t) data,
+ word_count);
+
+ /* We've already printed some text in output buffer, skip over it */
+ output = Diag_msg + strlen(Diag_msg);
+
+ while (word_count--) {
+ sprintf(output, "%08X ", *data++);
+ output += 9;
+ }
+
+ LOG_KDIAG(Diag_msg);
+}
+#endif
diff --git a/drivers/mxc/security/sahara2/sah_driver_interface.c b/drivers/mxc/security/sahara2/sah_driver_interface.c
new file mode 100644
index 000000000000..cf01c5f8bfe0
--- /dev/null
+++ b/drivers/mxc/security/sahara2/sah_driver_interface.c
@@ -0,0 +1,2185 @@
+/*
+ * Copyright (C) 2004-2011 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+* @file sah_driver_interface.c
+*
+* @brief Provides a Linux Kernel Module interface to the SAHARA h/w device.
+*
+*/
+
+/* SAHARA Includes */
+#include <sah_driver_common.h>
+#include <sah_kernel.h>
+#include <sah_memory_mapper.h>
+#include <sah_queue_manager.h>
+#include <sah_status_manager.h>
+#include <sah_interrupt_handler.h>
+#include <sah_hardware_interface.h>
+#include <fsl_shw_keystore.h>
+#include <adaptor.h>
+#ifdef FSL_HAVE_SCC
+#include <linux/mxc_scc_driver.h>
+#else
+#include <linux/mxc_scc2_driver.h>
+#endif
+
+#ifdef DIAG_DRV_IF
+#include <diagnostic.h>
+#endif
+
+#if defined(CONFIG_DEVFS_FS) && (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0))
+#include <linux/devfs_fs_kernel.h>
+#else
+#include <linux/proc_fs.h>
+#endif
+
+#ifdef PERF_TEST
+#define interruptible_sleep_on(x) sah_Handle_Interrupt()
+#endif
+
+#define TEST_MODE_OFF 1
+#define TEST_MODE_ON 2
+
+/*! Version register on first deployments */
+#define SAHARA_VERSION2 2
+/*! Version register on MX27 */
+#define SAHARA_VERSION3 3
+/*! Version register on MXC92323 */
+#define SAHARA_VERSION4 4
+
+/******************************************************************************
+* Module function declarations
+******************************************************************************/
+
+OS_DEV_INIT_DCL(sah_init);
+OS_DEV_SHUTDOWN_DCL(sah_cleanup);
+OS_DEV_OPEN_DCL(sah_open);
+OS_DEV_CLOSE_DCL(sah_release);
+OS_DEV_IOCTL_DCL(sah_ioctl);
+OS_DEV_MMAP_DCL(sah_mmap);
+
+static os_error_code sah_handle_get_capabilities(fsl_shw_uco_t* user_ctx,
+ uint32_t info);
+
+static void sah_user_callback(fsl_shw_uco_t * user_ctx);
+static os_error_code sah_handle_scc_sfree(fsl_shw_uco_t* user_ctx,
+ uint32_t info);
+static os_error_code sah_handle_scc_sstatus(fsl_shw_uco_t* user_ctx,
+ uint32_t info);
+static os_error_code sah_handle_scc_drop_perms(fsl_shw_uco_t* user_ctx,
+ uint32_t info);
+static os_error_code sah_handle_scc_encrypt(fsl_shw_uco_t* user_ctx,
+ uint32_t info);
+static os_error_code sah_handle_scc_decrypt(fsl_shw_uco_t* user_ctx,
+ uint32_t info);
+
+#ifdef FSL_HAVE_SCC2
+static fsl_shw_return_t register_user_partition(fsl_shw_uco_t * user_ctx,
+ uint32_t user_base,
+ void *kernel_base);
+static fsl_shw_return_t deregister_user_partition(fsl_shw_uco_t * user_ctx,
+ uint32_t user_base);
+#endif
+
+static os_error_code sah_handle_sk_slot_alloc(uint32_t info);
+static os_error_code sah_handle_sk_slot_dealloc(uint32_t info);
+static os_error_code sah_handle_sk_slot_load(uint32_t info);
+static os_error_code sah_handle_sk_slot_read(uint32_t info);
+static os_error_code sah_handle_sk_slot_decrypt(uint32_t info);
+static os_error_code sah_handle_sk_slot_encrypt(uint32_t info);
+
+/*! Boolean flag for whether interrupt handler needs to be released on exit */
+static unsigned interrupt_registered;
+
+static int handle_sah_ioctl_dar(fsl_shw_uco_t * filp, uint32_t user_space_desc);
+
+#if !defined(CONFIG_DEVFS_FS) || (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0))
+static int sah_read_procfs(char *buf,
+ char **start,
+ off_t offset, int count, int *eof, void *data);
+
+static int sah_write_procfs(struct file *file, const char __user * buffer,
+ unsigned long count, void *data);
+#endif
+
+#if defined(CONFIG_DEVFS_FS) && (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0))
+
+/* This is a handle to the sahara DEVFS entry. */
+static devfs_handle_t Sahara_devfs_handle;
+
+#else
+
+/* Major number assigned to our device driver */
+static int Major;
+
+/* This is a handle to the sahara PROCFS entry */
+static struct proc_dir_entry *Sahara_procfs_handle;
+
+#endif
+
+uint32_t sah_hw_version;
+extern void *sah_virt_base;
+
+/* This is the wait queue to this driver. Linux declaration. */
+DECLARE_WAIT_QUEUE_HEAD(Wait_queue);
+
+/* This is a global variable that is used to track how many times the device
+ * has been opened simultaneously. */
+#ifdef DIAG_DRV_IF
+static int Device_in_use = 0;
+#endif
+
+/* This is the system keystore object */
+fsl_shw_kso_t system_keystore;
+
+/*!
+ * OS-dependent handle used for registering user interface of a driver.
+ */
+static os_driver_reg_t reg_handle;
+
+#ifdef DIAG_DRV_IF
+/* This is for sprintf() to use when constructing output. */
+#define DIAG_MSG_SIZE 1024
+static char Diag_msg[DIAG_MSG_SIZE];
+#endif
+
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18))
+/** Pointer to Sahara clock information. Initialized during os_dev_init(). */
+static struct clk *sah_clk;
+#endif
+
+/*!
+*******************************************************************************
+* This function gets called when the module is inserted (insmod) into the
+* running kernel.
+*
+* @brief SAHARA device initialisation function.
+*
+* @return 0 on success
+* @return -EBUSY if the device or proc file entry cannot be created.
+* @return OS_ERROR_NO_MEMORY_S if kernel memory could not be allocated.
+* @return OS_ERROR_FAIL_S if initialisation of proc entry failed
+*/
+OS_DEV_INIT(sah_init)
+{
+ /* Status variable */
+ int os_error_code = 0;
+ uint32_t sah_phys_base = SAHARA_BASE_ADDR;
+
+
+ interrupt_registered = 0;
+
+ /* Enable the SAHARA Clocks */
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("SAHARA : Enabling the IPG and AHB clocks\n")
+#endif /*DIAG_DRV_IF */
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18))
+ mxc_clks_enable(SAHARA2_CLK);
+#else
+ {
+ sah_clk = clk_get(NULL, "sahara_clk");
+ if (IS_ERR(sah_clk))
+ os_error_code = PTR_ERR(sah_clk);
+ else
+ clk_enable(sah_clk);
+ }
+#endif
+
+ if (cpu_is_mx53())
+ sah_phys_base -= 0x20000000;
+
+ sah_virt_base = (void *)ioremap(sah_phys_base, SZ_16K);
+ if (sah_virt_base == NULL) {
+ os_printk(KERN_ERR
+ "SAHARA: Register mapping failed\n");
+ os_error_code = OS_ERROR_FAIL_S;
+ }
+
+ if (os_error_code == OS_ERROR_OK_S) {
+ sah_hw_version = sah_HW_Read_Version();
+ os_printk("Sahara HW Version is 0x%08x\n", sah_hw_version);
+
+ /* verify code and hardware are version compatible */
+ if ((sah_hw_version != SAHARA_VERSION2)
+ && (sah_hw_version != SAHARA_VERSION3)) {
+ if (((sah_hw_version >> 8) & 0xff) != SAHARA_VERSION4) {
+ os_printk
+ ("Sahara HW Version was not expected value.\n");
+ os_error_code = OS_ERROR_FAIL_S;
+ }
+ }
+ }
+
+ if (os_error_code == OS_ERROR_OK_S) {
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("Calling sah_Init_Mem_Map to initialise "
+ "memory subsystem.");
+#endif
+ /* Do any memory-routine initialization */
+ os_error_code = sah_Init_Mem_Map();
+ }
+
+ if (os_error_code == OS_ERROR_OK_S) {
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("Calling sah_HW_Reset() to Initialise the Hardware.");
+#endif
+ /* Initialise the hardware */
+ os_error_code = sah_HW_Reset();
+ if (os_error_code != OS_ERROR_OK_S) {
+ os_printk
+ ("sah_HW_Reset() failed to Initialise the Hardware.\n");
+ }
+
+ }
+
+ if (os_error_code == OS_ERROR_OK_S) {
+#if defined(CONFIG_DEVFS_FS) && (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0))
+ /* Register the DEVFS entry */
+ Sahara_devfs_handle = devfs_register(NULL,
+ SAHARA_DEVICE_SHORT,
+ DEVFS_FL_AUTO_DEVNUM,
+ 0, 0,
+ SAHARA_DEVICE_MODE,
+ &Fops, NULL);
+ if (Sahara_devfs_handle == NULL) {
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG
+ ("Registering the DEVFS character device failed.");
+#endif /* DIAG_DRV_IF */
+ os_error_code = -EBUSY;
+ }
+#else /* CONFIG_DEVFS_FS */
+ /* Create the PROCFS entry. This is used to report the assigned device
+ * major number back to user-space. */
+#if 1
+ Sahara_procfs_handle = create_proc_entry(SAHARA_DEVICE_SHORT, 0700, /* default mode */
+ NULL); /* parent dir */
+ if (Sahara_procfs_handle == NULL) {
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("Registering the PROCFS interface failed.");
+#endif /* DIAG_DRV_IF */
+ os_error_code = OS_ERROR_FAIL_S;
+ } else {
+ Sahara_procfs_handle->nlink = 1;
+ Sahara_procfs_handle->data = 0;
+ Sahara_procfs_handle->read_proc = sah_read_procfs;
+ Sahara_procfs_handle->write_proc = sah_write_procfs;
+ }
+#endif /* #if 1 */
+ }
+
+ if (os_error_code == OS_ERROR_OK_S) {
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG
+ ("Calling sah_Queue_Manager_Init() to Initialise the Queue "
+ "Manager.");
+#endif
+ /* Initialise the Queue Manager */
+ if (sah_Queue_Manager_Init() != FSL_RETURN_OK_S) {
+ os_error_code = -ENOMEM;
+ }
+ }
+#ifndef SAHARA_POLL_MODE
+ if (os_error_code == OS_ERROR_OK_S) {
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("Calling sah_Intr_Init() to Initialise the Interrupt "
+ "Handler.");
+#endif
+ /* Initialise the Interrupt Handler */
+ os_error_code = sah_Intr_Init(&Wait_queue);
+ if (os_error_code == OS_ERROR_OK_S) {
+ interrupt_registered = 1;
+ }
+ }
+#endif /* ifndef SAHARA_POLL_MODE */
+
+#ifdef SAHARA_POWER_MANAGEMENT
+ if (os_error_code == OS_ERROR_OK_S) {
+ /* set up dynamic power management (dmp) */
+ os_error_code = sah_dpm_init();
+ }
+#endif
+
+ if (os_error_code == OS_ERROR_OK_S) {
+ os_driver_init_registration(reg_handle);
+ os_driver_add_registration(reg_handle, OS_FN_OPEN,
+ OS_DEV_OPEN_REF(sah_open));
+ os_driver_add_registration(reg_handle, OS_FN_IOCTL,
+ OS_DEV_IOCTL_REF(sah_ioctl));
+ os_driver_add_registration(reg_handle, OS_FN_CLOSE,
+ OS_DEV_CLOSE_REF(sah_release));
+ os_driver_add_registration(reg_handle, OS_FN_MMAP,
+ OS_DEV_MMAP_REF(sah_mmap));
+
+ os_error_code =
+ os_driver_complete_registration(reg_handle, Major,
+ "sahara");
+
+ if (os_error_code < OS_ERROR_OK_S) {
+#ifdef DIAG_DRV_IF
+ snprintf(Diag_msg, DIAG_MSG_SIZE,
+ "Registering the regular "
+ "character device failed with error code: %d\n",
+ os_error_code);
+ LOG_KDIAG(Diag_msg);
+#endif
+ }
+ }
+#endif /* CONFIG_DEVFS_FS */
+
+ if (os_error_code == OS_ERROR_OK_S) {
+ /* set up the system keystore, using the default keystore handler */
+ fsl_shw_init_keystore_default(&system_keystore);
+
+ if (fsl_shw_establish_keystore(NULL, &system_keystore)
+ == FSL_RETURN_OK_S) {
+ os_error_code = OS_ERROR_OK_S;
+ } else {
+ os_error_code = OS_ERROR_FAIL_S;
+ }
+
+ if (os_error_code != OS_ERROR_OK_S) {
+#ifdef DIAG_DRV_IF
+ snprintf(Diag_msg, DIAG_MSG_SIZE,
+ "Registering the system keystore "
+ "failed with error code: %d\n", os_error_code);
+ LOG_KDIAG(Diag_msg);
+#endif
+ }
+ }
+
+ if (os_error_code != OS_ERROR_OK_S) {
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0))
+ cleanup_module();
+#else
+ sah_cleanup();
+#endif
+ }
+#ifdef DIAG_DRV_IF
+ else {
+ LOG_KDIAG_ARGS("Sahara major node is %d\n", Major);
+ }
+#endif
+
+/* Disabling the Clock after the driver has been registered fine.
+ This is done to save power when Sahara is not in use.*/
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("SAHARA : Disabling the clocks\n")
+#endif /* DIAG_DRV_IF */
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 18))
+ mxc_clks_disable(SAHARA2_CLK);
+#else
+ {
+ if (IS_ERR(sah_clk))
+ os_error_code = PTR_ERR(sah_clk);
+ else
+ clk_disable(sah_clk);
+ }
+#endif
+
+ os_dev_init_return(os_error_code);
+}
+
+/*!
+*******************************************************************************
+* This function gets called when the module is removed (rmmod) from the running
+* kernel.
+*
+* @brief SAHARA device clean-up function.
+*
+* @return void
+*/
+OS_DEV_SHUTDOWN(sah_cleanup)
+{
+ int ret_val = 0;
+
+ printk(KERN_ALERT "Sahara going into cleanup\n");
+
+ /* clear out the system keystore */
+ fsl_shw_release_keystore(NULL, &system_keystore);
+
+ /* Unregister the device */
+#if defined(CONFIG_DEVFS_FS) && (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0))
+ devfs_unregister(Sahara_devfs_handle);
+#else
+
+ if (Sahara_procfs_handle != NULL) {
+ remove_proc_entry(SAHARA_DEVICE_SHORT, NULL);
+ }
+
+ if (Major >= 0) {
+ ret_val = os_driver_remove_registration(reg_handle);
+ }
+#ifdef DIAG_DRV_IF
+ if (ret_val < 0) {
+ snprintf(Diag_msg, DIAG_MSG_SIZE, "Error while attempting to "
+ "unregister the device: %d\n", ret_val);
+ LOG_KDIAG(Diag_msg);
+ }
+#endif
+
+#endif /* CONFIG_DEVFS_FS */
+ sah_Queue_Manager_Close();
+
+#ifndef SAHARA_POLL_MODE
+ if (interrupt_registered) {
+ sah_Intr_Release();
+ interrupt_registered = 0;
+ }
+#endif
+ sah_Stop_Mem_Map();
+#ifdef SAHARA_POWER_MANAGEMENT
+ sah_dpm_close();
+#endif
+
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("SAHARA : Disabling the clocks\n")
+#endif /* DIAG_DRV_IF */
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18))
+ mxc_clks_disable(SAHARA2_CLK);
+#else
+ {
+ if (IS_ERR(sah_clk))
+ ret_val = PTR_ERR(sah_clk);
+ else
+ clk_disable(sah_clk);
+ clk_put(sah_clk);
+ }
+#endif
+
+ os_dev_shutdown_return(ret_val);
+}
+
+/*!
+*******************************************************************************
+* This function simply increments the module usage count.
+*
+* @brief SAHARA device open function.
+*
+* @param inode Part of the kernel prototype.
+* @param file Part of the kernel prototype.
+*
+* @return 0 - Always returns 0 since any number of calls to this function are
+* allowed.
+*
+*/
+OS_DEV_OPEN(sah_open)
+{
+
+#if defined(LINUX_VERSION) && (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,10))
+ MOD_INC_USE_COUNT;
+#endif
+
+#ifdef DIAG_DRV_IF
+ Device_in_use++;
+ snprintf(Diag_msg, DIAG_MSG_SIZE,
+ "Incrementing module use count to: %d ", Device_in_use);
+ LOG_KDIAG(Diag_msg);
+#endif
+
+ os_dev_set_user_private(NULL);
+
+ /* Return 0 to indicate success */
+ os_dev_open_return(0);
+}
+
+/*!
+*******************************************************************************
+* This function simply decrements the module usage count.
+*
+* @brief SAHARA device release function.
+*
+* @param inode Part of the kernel prototype.
+* @param file Part of the kernel prototype.
+*
+* @return 0 - Always returns 0 since this function does not fail.
+*/
+OS_DEV_CLOSE(sah_release)
+{
+ fsl_shw_uco_t *user_ctx = os_dev_get_user_private();
+
+#if defined(LINUX_VERSION) && (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,10))
+ MOD_DEC_USE_COUNT;
+#endif
+
+#ifdef DIAG_DRV_IF
+ Device_in_use--;
+ snprintf(Diag_msg, DIAG_MSG_SIZE,
+ "Decrementing module use count to: %d ", Device_in_use);
+ LOG_KDIAG(Diag_msg);
+#endif
+
+ if (user_ctx != NULL) {
+ sah_handle_deregistration(user_ctx);
+ os_free_memory(user_ctx);
+ os_dev_set_user_private(NULL);
+ }
+
+ /* Return 0 to indicate success */
+ os_dev_close_return(OS_ERROR_OK_S);
+}
+
+/*!
+*******************************************************************************
+* This function provides the IO Controls for the SAHARA driver. Three IO
+* Controls are supported:
+*
+* SAHARA_HWRESET and
+* SAHARA_SET_HA
+* SAHARA_CHK_TEST_MODE
+*
+* @brief SAHARA device IO Control function.
+*
+* @param inode Part of the kernel prototype.
+* @param filp Part of the kernel prototype.
+* @param cmd Part of the kernel prototype.
+* @param arg Part of the kernel prototype.
+*
+* @return 0 on success
+* @return -EBUSY if the HA bit could not be set due to busy hardware.
+* @return -ENOTTY if an unsupported IOCTL was attempted on the device.
+* @return -EFAULT if put_user() fails
+*/
+OS_DEV_IOCTL(sah_ioctl)
+{
+ int status = 0;
+ int test_mode;
+
+ switch (os_dev_get_ioctl_op()) {
+ case SAHARA_HWRESET:
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("SAHARA_HWRESET IOCTL.");
+#endif
+ /* We need to reset the hardware. */
+ sah_HW_Reset();
+
+ /* Mark all the entries in the Queue Manager's queue with state
+ * SAH_STATE_RESET.
+ */
+ sah_Queue_Manager_Reset_Entries();
+
+ /* Wake up all sleeping write() calls. */
+ wake_up_interruptible(&Wait_queue);
+ break;
+#ifdef SAHARA_HA_ENABLED
+ case SAHARA_SET_HA:
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("SAHARA_SET_HA IOCTL.");
+#endif /* DIAG_DRV_IF */
+ if (sah_HW_Set_HA() == ERR_INTERNAL) {
+ status = -EBUSY;
+ }
+ break;
+#endif /* SAHARA_HA_ENABLED */
+
+ case SAHARA_CHK_TEST_MODE:
+ /* load test_mode */
+ test_mode = TEST_MODE_OFF;
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("SAHARA_CHECK_TEST_MODE IOCTL.");
+ test_mode = TEST_MODE_ON;
+#endif /* DIAG_DRV_IF */
+#if defined(KERNEL_TEST) || defined(PERF_TEST)
+ test_mode = TEST_MODE_ON;
+#endif /* KERNEL_TEST || PERF_TEST */
+ /* copy test_mode back to user space. put_user() is Linux fn */
+ /* compiler warning `register': no problem found so ignored */
+ status = put_user(test_mode, (int *)os_dev_get_ioctl_arg());
+ break;
+
+ case SAHARA_DAR:
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("SAHARA_DAR IOCTL.");
+#endif /* DIAG_DRV_IF */
+ {
+ fsl_shw_uco_t *user_ctx = os_dev_get_user_private();
+
+ if (user_ctx != NULL) {
+ status =
+ handle_sah_ioctl_dar(user_ctx,
+ os_dev_get_ioctl_arg
+ ());
+ } else {
+ status = OS_ERROR_FAIL_S;
+ }
+
+ }
+ break;
+
+ case SAHARA_GET_RESULTS:
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("SAHARA_GET_RESULTS IOCTL.");
+#endif /* DIAG_DRV_IF */
+ {
+ fsl_shw_uco_t *user_ctx = os_dev_get_user_private();
+
+ if (user_ctx != NULL) {
+ status =
+ sah_get_results_pointers(user_ctx,
+ os_dev_get_ioctl_arg
+ ());
+ } else {
+ status = OS_ERROR_FAIL_S;
+ }
+ }
+ break;
+
+ case SAHARA_REGISTER:
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("SAHARA_REGISTER IOCTL.");
+#endif /* DIAG_DRV_IF */
+ {
+ fsl_shw_uco_t *user_ctx = os_dev_get_user_private();
+
+ if (user_ctx != NULL) {
+ status = OS_ERROR_FAIL_S; /* already registered */
+ } else {
+ user_ctx =
+ os_alloc_memory(sizeof(fsl_shw_uco_t),
+ GFP_KERNEL);
+ if (user_ctx == NULL) {
+ status = OS_ERROR_NO_MEMORY_S;
+ } else {
+ /* Copy UCO from user, but only as big as the common UCO */
+ if (os_copy_from_user(user_ctx,
+ (void *)
+ os_dev_get_ioctl_arg
+ (),
+ offsetof
+ (fsl_shw_uco_t,
+ result_pool))) {
+ status = OS_ERROR_FAIL_S;
+ } else {
+ os_dev_set_user_private
+ (user_ctx);
+ status =
+ sah_handle_registration
+ (user_ctx);
+ }
+ }
+ }
+ }
+ break;
+
+ /* This ioctl cmd should disappear in favor of a close() routine. */
+ case SAHARA_DEREGISTER:
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("SAHARA_DEREGISTER IOCTL.");
+#endif /* DIAG_DRV_IF */
+ {
+ fsl_shw_uco_t *user_ctx = os_dev_get_user_private();
+
+ if (user_ctx == NULL) {
+ status = OS_ERROR_FAIL_S;
+ } else {
+ status = sah_handle_deregistration(user_ctx);
+ os_free_memory(user_ctx);
+ os_dev_set_user_private(NULL);
+ }
+ }
+ break;
+ case SAHARA_SCC_DROP_PERMS:
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("SAHARA_SCC_DROP_PERMS IOCTL.");
+#endif /* DIAG_DRV_IF */
+ {
+ /* drop permissions on the specified partition */
+ fsl_shw_uco_t *user_ctx = os_dev_get_user_private();
+
+ status =
+ sah_handle_scc_drop_perms(user_ctx,
+ os_dev_get_ioctl_arg());
+ }
+ break;
+
+ case SAHARA_SCC_SFREE:
+ /* Unmap the specified partition from the users space, and then
+ * free it for use by someone else.
+ */
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("SAHARA_SCC_SFREE IOCTL.");
+#endif /* DIAG_DRV_IF */
+ {
+ fsl_shw_uco_t *user_ctx = os_dev_get_user_private();
+
+ status =
+ sah_handle_scc_sfree(user_ctx,
+ os_dev_get_ioctl_arg());
+ }
+ break;
+
+ case SAHARA_SCC_SSTATUS:
+ /* Unmap the specified partition from the users space, and then
+ * free it for use by someone else.
+ */
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("SAHARA_SCC_SSTATUS IOCTL.");
+#endif /* DIAG_DRV_IF */
+ {
+ fsl_shw_uco_t *user_ctx = os_dev_get_user_private();
+
+ status =
+ sah_handle_scc_sstatus(user_ctx,
+ os_dev_get_ioctl_arg());
+ }
+ break;
+
+ case SAHARA_SCC_ENCRYPT:
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("SAHARA_SCC_ENCRYPT IOCTL.");
+#endif /* DIAG_DRV_IF */
+ {
+ fsl_shw_uco_t *user_ctx = os_dev_get_user_private();
+
+ status =
+ sah_handle_scc_encrypt(user_ctx,
+ os_dev_get_ioctl_arg());
+ }
+ break;
+
+ case SAHARA_SCC_DECRYPT:
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("SAHARA_SCC_DECRYPT IOCTL.");
+#endif /* DIAG_DRV_IF */
+ {
+ fsl_shw_uco_t *user_ctx = os_dev_get_user_private();
+
+ status =
+ sah_handle_scc_decrypt(user_ctx,
+ os_dev_get_ioctl_arg());
+ }
+ break;
+
+ case SAHARA_SK_ALLOC:
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("SAHARA_SK_ALLOC IOCTL.");
+#endif /* DIAG_DRV_IF */
+ status = sah_handle_sk_slot_alloc(os_dev_get_ioctl_arg());
+ break;
+
+ case SAHARA_SK_DEALLOC:
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("SAHARA_SK_DEALLOC IOCTL.");
+#endif /* DIAG_DRV_IF */
+ status = sah_handle_sk_slot_dealloc(os_dev_get_ioctl_arg());
+ break;
+
+ case SAHARA_SK_LOAD:
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("SAHARA_SK_LOAD IOCTL.");
+#endif /* DIAG_DRV_IF */
+ status = sah_handle_sk_slot_load(os_dev_get_ioctl_arg());
+ break;
+ case SAHARA_SK_READ:
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("SAHARA_SK_READ IOCTL.");
+#endif /* DIAG_DRV_IF */
+ status = sah_handle_sk_slot_read(os_dev_get_ioctl_arg());
+ break;
+
+ case SAHARA_SK_SLOT_DEC:
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("SAHARA_SK_SLOT_DECRYPT IOCTL.");
+#endif /* DIAG_DRV_IF */
+ status = sah_handle_sk_slot_decrypt(os_dev_get_ioctl_arg());
+ break;
+
+ case SAHARA_SK_SLOT_ENC:
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("SAHARA_SK_SLOT_ENCRYPT IOCTL.");
+#endif /* DIAG_DRV_IF */
+ status = sah_handle_sk_slot_encrypt(os_dev_get_ioctl_arg());
+ break;
+ case SAHARA_GET_CAPS:
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("SAHARA_GET_CAPS IOCTL.");
+#endif /* DIAG_DRV_IF */
+ {
+ fsl_shw_uco_t *user_ctx = os_dev_get_user_private();
+
+ status =
+ sah_handle_get_capabilities(user_ctx,
+ os_dev_get_ioctl_arg());
+ }
+ break;
+
+ default:
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("Unknown SAHARA IOCTL.");
+#endif /* DIAG_DRV_IF */
+ status = OS_ERROR_FAIL_S;
+ }
+
+ os_dev_ioctl_return(status);
+}
+
+/* Fill in the user's capabilities structure */
+static os_error_code sah_handle_get_capabilities(fsl_shw_uco_t * user_ctx,
+ uint32_t info)
+{
+ os_error_code status = OS_ERROR_FAIL_S;
+ fsl_shw_pco_t capabilities;
+
+ status = os_copy_from_user(&capabilities, (void *)info,
+ sizeof(fsl_shw_pco_t));
+
+ if (status != OS_ERROR_OK_S) {
+ goto out;
+ }
+
+ if (get_capabilities(user_ctx, &capabilities) == FSL_RETURN_OK_S) {
+ status = os_copy_to_user((void *)info, &capabilities,
+ sizeof(fsl_shw_pco_t));
+ }
+
+ out:
+ return status;
+}
+
+#ifdef FSL_HAVE_SCC2
+
+/* Find the kernel-mode address of the partition.
+ * This can then be passed to the SCC functions.
+ */
+void *lookup_user_partition(fsl_shw_uco_t * user_ctx, uint32_t user_base)
+{
+ /* search through the partition chain to find one that matches the user base
+ * address.
+ */
+ fsl_shw_spo_t *curr = (fsl_shw_spo_t *) user_ctx->partition;
+
+ while (curr != NULL) {
+ if (curr->user_base == user_base) {
+ return curr->kernel_base;
+ }
+ curr = (fsl_shw_spo_t *) curr->next;
+ }
+ return NULL;
+}
+
+/* user_base: userspace base address of the partition
+ * kernel_base: kernel mode base address of the partition
+ */
+static fsl_shw_return_t register_user_partition(fsl_shw_uco_t * user_ctx,
+ uint32_t user_base,
+ void *kernel_base)
+{
+ fsl_shw_spo_t *partition_info;
+ fsl_shw_return_t ret = FSL_RETURN_ERROR_S;
+
+ if (user_ctx == NULL) {
+ goto out;
+ }
+
+ partition_info = os_alloc_memory(sizeof(fsl_shw_spo_t), GFP_KERNEL);
+
+ if (partition_info == NULL) {
+ goto out;
+ }
+
+ /* stuff the partition info, then put it at the front of the chain */
+ partition_info->user_base = user_base;
+ partition_info->kernel_base = kernel_base;
+ partition_info->next = user_ctx->partition;
+
+ user_ctx->partition = (struct fsl_shw_spo_t *)partition_info;
+
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG_ARGS
+ ("partition with user_base=%p, kernel_base=%p registered.",
+ (void *)user_base, kernel_base);
+#endif
+
+ ret = FSL_RETURN_OK_S;
+
+ out:
+
+ return ret;
+}
+
+/* if the partition is in the users list, remove it */
+static fsl_shw_return_t deregister_user_partition(fsl_shw_uco_t * user_ctx,
+ uint32_t user_base)
+{
+ fsl_shw_spo_t *curr = (fsl_shw_spo_t *) user_ctx->partition;
+ fsl_shw_spo_t *last = (fsl_shw_spo_t *) user_ctx->partition;
+
+ while (curr != NULL) {
+ if (curr->user_base == user_base) {
+
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG_ARGS
+ ("deregister_user_partition: partition with "
+ "user_base=%p, kernel_base=%p deregistered.\n",
+ (void *)curr->user_base, curr->kernel_base);
+#endif
+
+ if (last == curr) {
+ user_ctx->partition = curr->next;
+ os_free_memory(curr);
+ return FSL_RETURN_OK_S;
+ } else {
+ last->next = curr->next;
+ os_free_memory(curr);
+ return FSL_RETURN_OK_S;
+ }
+ }
+ last = curr;
+ curr = (fsl_shw_spo_t *) curr->next;
+ }
+
+ return FSL_RETURN_ERROR_S;
+}
+
+#endif /* FSL_HAVE_SCC2 */
+
+static os_error_code sah_handle_scc_drop_perms(fsl_shw_uco_t * user_ctx,
+ uint32_t info)
+{
+ os_error_code status = OS_ERROR_NO_MEMORY_S;
+#ifdef FSL_HAVE_SCC2
+ scc_return_t scc_ret;
+ scc_partition_info_t partition_info;
+ void *kernel_base;
+
+ status =
+ os_copy_from_user(&partition_info, (void *)info,
+ sizeof(partition_info));
+
+ if (status != OS_ERROR_OK_S) {
+ goto out;
+ }
+
+ /* validate that the user owns this partition, and look up its handle */
+ kernel_base = lookup_user_partition(user_ctx, partition_info.user_base);
+
+ if (kernel_base == NULL) {
+ status = OS_ERROR_FAIL_S;
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("_scc_drop_perms(): failed to find partition\n");
+#endif
+ goto out;
+ }
+
+ /* call scc driver to perform the drop */
+ scc_ret = scc_diminish_permissions(kernel_base,
+ partition_info.permissions);
+ if (scc_ret == SCC_RET_OK) {
+ status = OS_ERROR_OK_S;
+ } else {
+ status = OS_ERROR_FAIL_S;
+ }
+
+ out:
+#endif /* FSL_HAVE_SCC2 */
+ return status;
+}
+
+static os_error_code sah_handle_scc_sfree(fsl_shw_uco_t * user_ctx,
+ uint32_t info)
+{
+ os_error_code status = OS_ERROR_NO_MEMORY_S;
+#ifdef FSL_HAVE_SCC2
+ {
+ scc_partition_info_t partition_info;
+ void *kernel_base;
+ int ret;
+
+ status =
+ os_copy_from_user(&partition_info, (void *)info,
+ sizeof(partition_info));
+
+ /* check that the copy was successful */
+ if (status != OS_ERROR_OK_S) {
+ goto out;
+ }
+
+ /* validate that the user owns this partition, and look up its handle */
+ kernel_base =
+ lookup_user_partition(user_ctx, partition_info.user_base);
+
+ if (kernel_base == NULL) {
+ status = OS_ERROR_FAIL_S;
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("failed to find partition\n");
+#endif /*DIAG_DRV_IF */
+ goto out;
+ }
+
+ /* Unmap the memory region (see sys_munmap in mmap.c) */
+ ret = unmap_user_memory(partition_info.user_base, 8192);
+
+ /* If the memory was successfully released */
+ if (ret == OS_ERROR_OK_S) {
+
+ /* release the partition */
+ scc_release_partition(kernel_base);
+
+ /* and remove it from the users context */
+ deregister_user_partition(user_ctx,
+ partition_info.user_base);
+
+ status = OS_ERROR_OK_S;
+ }
+ }
+ out:
+#endif /* FSL_HAVE_SCC2 */
+ return status;
+}
+
+static os_error_code sah_handle_scc_sstatus(fsl_shw_uco_t * user_ctx,
+ uint32_t info)
+{
+ os_error_code status = OS_ERROR_NO_MEMORY_S;
+#ifdef FSL_HAVE_SCC2
+ {
+ scc_partition_info_t partition_info;
+ void *kernel_base;
+
+ status =
+ os_copy_from_user(&partition_info, (void *)info,
+ sizeof(partition_info));
+
+ /* check that the copy was successful */
+ if (status != OS_ERROR_OK_S) {
+ goto out;
+ }
+
+ /* validate that the user owns this partition, and look up its handle */
+ kernel_base =
+ lookup_user_partition(user_ctx, partition_info.user_base);
+
+ if (kernel_base == NULL) {
+ status = OS_ERROR_FAIL_S;
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("failed to find partition\n");
+#endif /*DIAG_DRV_IF */
+ goto out;
+ }
+
+ partition_info.status = scc_partition_status(kernel_base);
+
+ status =
+ os_copy_to_user((void *)info, &partition_info,
+ sizeof(partition_info));
+ }
+ out:
+#endif /* FSL_HAVE_SCC2 */
+ return status;
+}
+
+static os_error_code sah_handle_scc_encrypt(fsl_shw_uco_t * user_ctx,
+ uint32_t info)
+{
+ os_error_code os_err = OS_ERROR_FAIL_S;
+#ifdef FSL_HAVE_SCC2
+ {
+ fsl_shw_return_t retval;
+ scc_region_t region_info;
+ void *page_ctx = NULL;
+ void *black_addr = NULL;
+ void *partition_base = NULL;
+ scc_config_t *scc_configuration;
+
+ os_err =
+ os_copy_from_user(&region_info, (void *)info,
+ sizeof(region_info));
+
+ if (os_err != OS_ERROR_OK_S) {
+ goto out;
+ }
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG_ARGS
+ ("partition_base: %p, offset: %i, length: %i, black data: %p",
+ (void *)region_info.partition_base, region_info.offset,
+ region_info.length, (void *)region_info.black_data);
+#endif
+
+ /* validate that the user owns this partition, and look up its handle */
+ partition_base = lookup_user_partition(user_ctx,
+ region_info.
+ partition_base);
+
+ if (partition_base == NULL) {
+ retval = FSL_RETURN_ERROR_S;
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("failed to find secure partition\n");
+#endif
+ goto out;
+ }
+
+ /* Check that the memory size requested is correct */
+ scc_configuration = scc_get_configuration();
+ if (region_info.offset + region_info.length >
+ scc_configuration->partition_size_bytes) {
+ retval = FSL_RETURN_ERROR_S;
+ goto out;
+ }
+
+ /* wire down black data */
+ black_addr = wire_user_memory(region_info.black_data,
+ region_info.length, &page_ctx);
+
+ if (black_addr == NULL) {
+ retval = FSL_RETURN_ERROR_S;
+ goto out;
+ }
+
+ retval =
+ do_scc_encrypt_region(NULL, partition_base,
+ region_info.offset,
+ region_info.length, black_addr,
+ region_info.IV,
+ region_info.cypher_mode);
+
+ /* release black data */
+ unwire_user_memory(&page_ctx);
+
+ out:
+ if (os_err == OS_ERROR_OK_S) {
+ /* Return error code */
+ region_info.code = retval;
+ os_err =
+ os_copy_to_user((void *)info, &region_info,
+ sizeof(region_info));
+ }
+ }
+
+#endif
+ return os_err;
+}
+
+static os_error_code sah_handle_scc_decrypt(fsl_shw_uco_t * user_ctx,
+ uint32_t info)
+{
+ os_error_code os_err = OS_ERROR_FAIL_S;
+#ifdef FSL_HAVE_SCC2
+ {
+ fsl_shw_return_t retval;
+ scc_region_t region_info;
+ void *page_ctx = NULL;
+ void *black_addr;
+ void *partition_base;
+ scc_config_t *scc_configuration;
+
+ os_err =
+ os_copy_from_user(&region_info, (void *)info,
+ sizeof(region_info));
+
+ if (os_err != OS_ERROR_OK_S) {
+ goto out;
+ }
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG_ARGS
+ ("partition_base: %p, offset: %i, length: %i, black data: %p",
+ (void *)region_info.partition_base, region_info.offset,
+ region_info.length, (void *)region_info.black_data);
+#endif
+
+ /* validate that the user owns this partition, and look up its handle */
+ partition_base = lookup_user_partition(user_ctx,
+ region_info.
+ partition_base);
+
+ if (partition_base == NULL) {
+ retval = FSL_RETURN_ERROR_S;
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("failed to find partition\n");
+#endif
+ goto out;
+ }
+
+ /* Check that the memory size requested is correct */
+ scc_configuration = scc_get_configuration();
+ if (region_info.offset + region_info.length >
+ scc_configuration->partition_size_bytes) {
+ retval = FSL_RETURN_ERROR_S;
+ goto out;
+ }
+
+ /* wire down black data */
+ black_addr = wire_user_memory(region_info.black_data,
+ region_info.length, &page_ctx);
+
+ if (black_addr == NULL) {
+ retval = FSL_RETURN_ERROR_S;
+ goto out;
+ }
+
+ retval =
+ do_scc_decrypt_region(NULL, partition_base,
+ region_info.offset,
+ region_info.length, black_addr,
+ region_info.IV,
+ region_info.cypher_mode);
+
+ /* release black data */
+ unwire_user_memory(&page_ctx);
+
+ out:
+ if (os_err == OS_ERROR_OK_S) {
+ /* Return error code */
+ region_info.code = retval;
+ os_err =
+ os_copy_to_user((void *)info, &region_info,
+ sizeof(region_info));
+ }
+ }
+
+#endif /* FSL_HAVE_SCC2 */
+ return os_err;
+}
+
+/*****************************************************************************/
+/* fn get_user_smid() */
+/*****************************************************************************/
+uint32_t get_user_smid(void *proc)
+{
+ /*
+ * A real implementation would have some way to handle signed applications
+ * which wouild be assigned distinct SMIDs. For the reference
+ * implementation, we show where this would be determined (here), but
+ * always provide a fixed answer, thus not separating users at all.
+ */
+
+ return 0x42eaae42;
+}
+
+/*!
+*******************************************************************************
+* This function implements the smalloc() function for userspace programs, by
+* making a call to the SCC2 mmap() function that acquires a region of secure
+* memory on behalf of the user, and then maps it into the users memory space.
+* Currently, the only memory size supported is that of a single SCC2 partition.
+* Requests for other sized memory regions will fail.
+*/
+OS_DEV_MMAP(sah_mmap)
+{
+ os_error_code status = OS_ERROR_NO_MEMORY_S;
+
+#ifdef FSL_HAVE_SCC2
+ {
+ scc_return_t scc_ret;
+ fsl_shw_return_t fsl_ret;
+ uint32_t partition_registered = FALSE;
+
+ uint32_t user_base;
+ void *partition_base;
+ uint32_t smid;
+ scc_config_t *scc_configuration;
+
+ int part_no = -1;
+ uint32_t part_phys;
+
+ fsl_shw_uco_t *user_ctx =
+ (fsl_shw_uco_t *) os_dev_get_user_private();
+
+ /* Make sure that the user context is valid */
+ if (user_ctx == NULL) {
+ user_ctx =
+ os_alloc_memory(sizeof(*user_ctx), GFP_KERNEL);
+
+ if (user_ctx == NULL) {
+ status = OS_ERROR_NO_MEMORY_S;
+ goto out;
+ }
+
+ sah_handle_registration(user_ctx);
+ os_dev_set_user_private(user_ctx);
+ }
+
+ /* Determine the size of a secure partition */
+ scc_configuration = scc_get_configuration();
+
+ /* Check that the memory size requested is equal to the partition
+ * size, and that the requested destination is on a page boundary.
+ */
+ if (((os_mmap_user_base() % PAGE_SIZE) != 0) ||
+ (os_mmap_memory_size() !=
+ scc_configuration->partition_size_bytes)) {
+ status = OS_ERROR_BAD_ARG_S;
+ goto out;
+ }
+
+ /* Retrieve the SMID associated with the user */
+ smid = get_user_smid(user_ctx->process);
+
+ /* Attempt to allocate a secure partition */
+ scc_ret =
+ scc_allocate_partition(smid, &part_no, &partition_base,
+ &part_phys);
+ if (scc_ret != SCC_RET_OK) {
+ pr_debug
+ ("SCC mmap() request failed to allocate partition;"
+ " error %d\n", status);
+ status = OS_ERROR_FAIL_S;
+ goto out;
+ }
+
+ pr_debug("scc_mmap() acquired partition %d at %08x\n",
+ part_no, part_phys);
+
+ /* Record partition info in the user context */
+ user_base = os_mmap_user_base();
+ fsl_ret =
+ register_user_partition(user_ctx, user_base,
+ partition_base);
+
+ if (fsl_ret != FSL_RETURN_OK_S) {
+ pr_debug
+ ("SCC mmap() request failed to register partition with user"
+ " context, error: %d\n", fsl_ret);
+ status = OS_ERROR_FAIL_S;
+ }
+
+ partition_registered = TRUE;
+
+ status = map_user_memory(os_mmap_memory_ctx(), part_phys,
+ os_mmap_memory_size());
+
+#ifdef SHW_DEBUG
+ if (status == OS_ERROR_OK_S) {
+ LOG_KDIAG_ARGS
+ ("Partition allocated: user_base=%p, partition_base=%p.",
+ (void *)user_base, partition_base);
+ }
+#endif
+
+ out:
+ /* If there is an error it has to be handled here */
+ if (status != OS_ERROR_OK_S) {
+ /* if the partition was registered with the user, unregister it. */
+ if (partition_registered == TRUE) {
+ deregister_user_partition(user_ctx, user_base);
+ }
+
+ /* if the partition was allocated, deallocate it */
+ if (partition_base != NULL) {
+ scc_release_partition(partition_base);
+ }
+ }
+ }
+#endif /* FSL_HAVE_SCC2 */
+
+ return status;
+}
+
+/* Find the physical address of a key stored in the system keystore */
+fsl_shw_return_t
+system_keystore_get_slot_info(uint64_t owner_id, uint32_t slot,
+ uint32_t * address, uint32_t * slot_size_bytes)
+{
+ fsl_shw_return_t retval;
+ void *kernel_address;
+
+ /* First verify that the key access is valid */
+ retval = system_keystore.slot_verify_access(system_keystore.user_data,
+ owner_id, slot);
+
+ if (retval != FSL_RETURN_OK_S) {
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("verification failed");
+#endif
+ return retval;
+ }
+
+ if (address != NULL) {
+#ifdef FSL_HAVE_SCC2
+ kernel_address =
+ system_keystore.slot_get_address(system_keystore.user_data,
+ slot);
+ (*address) = scc_virt_to_phys(kernel_address);
+#else
+ kernel_address =
+ system_keystore.slot_get_address((void *)&owner_id, slot);
+ (*address) = (uint32_t) kernel_address;
+#endif
+ }
+
+ if (slot_size_bytes != NULL) {
+#ifdef FSL_HAVE_SCC2
+ *slot_size_bytes =
+ system_keystore.slot_get_slot_size(system_keystore.
+ user_data, slot);
+#else
+ *slot_size_bytes =
+ system_keystore.slot_get_slot_size((void *)&owner_id, slot);
+#endif
+ }
+
+ return retval;
+}
+
+static os_error_code sah_handle_sk_slot_alloc(uint32_t info)
+{
+ scc_slot_t slot_info;
+ os_error_code os_err;
+ scc_return_t scc_ret;
+
+ os_err = os_copy_from_user(&slot_info, (void *)info, sizeof(slot_info));
+ if (os_err == OS_ERROR_OK_S) {
+ scc_ret = keystore_slot_alloc(&system_keystore,
+ slot_info.key_length,
+ slot_info.ownerid,
+ &slot_info.slot);
+ if (scc_ret == SCC_RET_OK) {
+ slot_info.code = FSL_RETURN_OK_S;
+ } else if (scc_ret == SCC_RET_INSUFFICIENT_SPACE) {
+ slot_info.code = FSL_RETURN_NO_RESOURCE_S;
+ } else {
+ slot_info.code = FSL_RETURN_ERROR_S;
+ }
+
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG_ARGS("key length: %i, handle: %i\n",
+ slot_info.key_length, slot_info.slot);
+#endif
+
+ /* Return error code and slot info */
+ os_err =
+ os_copy_to_user((void *)info, &slot_info,
+ sizeof(slot_info));
+
+ if (os_err != OS_ERROR_OK_S) {
+ (void)keystore_slot_dealloc(&system_keystore,
+ slot_info.ownerid,
+ slot_info.slot);
+ }
+ }
+
+ return os_err;
+}
+
+static os_error_code sah_handle_sk_slot_dealloc(uint32_t info)
+{
+ fsl_shw_return_t ret = FSL_RETURN_INTERNAL_ERROR_S;
+ scc_slot_t slot_info;
+ os_error_code os_err;
+ scc_return_t scc_ret;
+
+ os_err = os_copy_from_user(&slot_info, (void *)info, sizeof(slot_info));
+
+ if (os_err == OS_ERROR_OK_S) {
+ scc_ret = keystore_slot_dealloc(&system_keystore,
+ slot_info.ownerid,
+ slot_info.slot);
+
+ if (scc_ret == SCC_RET_OK) {
+ ret = FSL_RETURN_OK_S;
+ } else {
+ ret = FSL_RETURN_ERROR_S;
+ }
+ slot_info.code = ret;
+
+ os_err =
+ os_copy_to_user((void *)info, &slot_info,
+ sizeof(slot_info));
+ }
+
+ return os_err;
+}
+
+static os_error_code sah_handle_sk_slot_load(uint32_t info)
+{
+ fsl_shw_return_t ret = FSL_RETURN_INTERNAL_ERROR_S;
+ scc_slot_t slot_info;
+ os_error_code os_err;
+ uint8_t *key = NULL;
+
+ os_err = os_copy_from_user(&slot_info, (void *)info, sizeof(slot_info));
+
+ if (os_err == OS_ERROR_OK_S) {
+ /* Allow slop in alloc in case we are rounding up to word multiple */
+ key = os_alloc_memory(slot_info.key_length + 3, GFP_KERNEL);
+ if (key == NULL) {
+ ret = FSL_RETURN_NO_RESOURCE_S;
+ os_err = OS_ERROR_NO_MEMORY_S;
+ } else {
+ os_err = os_copy_from_user(key, slot_info.key,
+ slot_info.key_length);
+ }
+ }
+
+ if (os_err == OS_ERROR_OK_S) {
+ unsigned key_length = slot_info.key_length;
+
+ /* Round up if necessary, as SCC call wants a multiple of 32-bit
+ * values for the full object being loaded. */
+ if ((key_length & 3) != 0) {
+ key_length += 4 - (key_length & 3);
+ }
+ ret = keystore_slot_load(&system_keystore,
+ slot_info.ownerid, slot_info.slot, key,
+ key_length);
+
+ slot_info.code = ret;
+ os_err =
+ os_copy_to_user((void *)info, &slot_info,
+ sizeof(slot_info));
+ }
+
+ if (key != NULL) {
+ memset(key, 0, slot_info.key_length);
+ os_free_memory(key);
+ }
+
+ return os_err;
+}
+
+static os_error_code sah_handle_sk_slot_read(uint32_t info)
+{
+ fsl_shw_return_t ret = FSL_RETURN_INTERNAL_ERROR_S;
+ scc_slot_t slot_info;
+ os_error_code os_err;
+ uint8_t *key = NULL;
+
+ os_err = os_copy_from_user(&slot_info, (void *)info, sizeof(slot_info));
+
+ if (os_err == OS_ERROR_OK_S) {
+
+ /* This operation is not allowed for user keys */
+ slot_info.code = FSL_RETURN_NO_RESOURCE_S;
+ os_err =
+ os_copy_to_user((void *)info, &slot_info,
+ sizeof(slot_info));
+
+ return os_err;
+ }
+
+ if (os_err == OS_ERROR_OK_S) {
+ /* Allow slop in alloc in case we are rounding up to word multiple */
+ key = os_alloc_memory(slot_info.key_length + 3, GFP_KERNEL);
+ if (key == NULL) {
+ ret = FSL_RETURN_NO_RESOURCE_S;
+ os_err = OS_ERROR_NO_MEMORY_S;
+ }
+ }
+
+ if (os_err == OS_ERROR_OK_S) {
+ unsigned key_length = slot_info.key_length;
+
+ /* @bug Do some PERMISSIONS checking - make sure this is SW key */
+
+ /* Round up if necessary, as SCC call wants a multiple of 32-bit
+ * values for the full object being loaded. */
+ if ((key_length & 3) != 0) {
+ key_length += 4 - (key_length & 3);
+ }
+ ret = keystore_slot_read(&system_keystore,
+ slot_info.ownerid, slot_info.slot,
+ key_length, key);
+
+ /* @bug do some error checking */
+
+ /* Send key back to user */
+ os_err = os_copy_to_user(slot_info.key, key,
+ slot_info.key_length);
+
+ slot_info.code = ret;
+ os_err =
+ os_copy_to_user((void *)info, &slot_info,
+ sizeof(slot_info));
+ }
+
+ if (key != NULL) {
+ memset(key, 0, slot_info.key_length);
+ os_free_memory(key);
+ }
+
+ return os_err;
+}
+
+static os_error_code sah_handle_sk_slot_encrypt(uint32_t info)
+{
+ fsl_shw_return_t ret = FSL_RETURN_INTERNAL_ERROR_S;
+ scc_slot_t slot_info;
+ os_error_code os_err;
+ scc_return_t scc_ret;
+ uint8_t *key = NULL;
+
+ os_err = os_copy_from_user(&slot_info, (void *)info, sizeof(slot_info));
+
+ if (os_err == OS_ERROR_OK_S) {
+ key = os_alloc_memory(slot_info.key_length, GFP_KERNEL);
+ if (key == NULL) {
+ ret = FSL_RETURN_NO_RESOURCE_S;
+ }
+ }
+
+ if (key != NULL) {
+
+ scc_ret = keystore_slot_encrypt(NULL, &system_keystore,
+ slot_info.ownerid,
+ slot_info.slot,
+ slot_info.key_length, key);
+
+ if (scc_ret != SCC_RET_OK) {
+ ret = FSL_RETURN_ERROR_S;
+ } else {
+ os_err =
+ os_copy_to_user(slot_info.key, key,
+ slot_info.key_length);
+ if (os_err != OS_ERROR_OK_S) {
+ ret = FSL_RETURN_INTERNAL_ERROR_S;
+ } else {
+ ret = FSL_RETURN_OK_S;
+ }
+ }
+
+ slot_info.code = ret;
+ os_err =
+ os_copy_to_user((void *)info, &slot_info,
+ sizeof(slot_info));
+
+ memset(key, 0, slot_info.key_length);
+ os_free_memory(key);
+ }
+
+ return os_err;
+}
+
+static os_error_code sah_handle_sk_slot_decrypt(uint32_t info)
+{
+ fsl_shw_return_t ret = FSL_RETURN_INTERNAL_ERROR_S;
+ scc_slot_t slot_info; /*!< decrypt request fields */
+ os_error_code os_err;
+ scc_return_t scc_ret;
+ uint8_t *key = NULL;
+
+ os_err = os_copy_from_user(&slot_info, (void *)info, sizeof(slot_info));
+
+ if (os_err == OS_ERROR_OK_S) {
+ key = os_alloc_memory(slot_info.key_length, GFP_KERNEL);
+ if (key == NULL) {
+ ret = FSL_RETURN_NO_RESOURCE_S;
+ os_err = OS_ERROR_OK_S;
+ } else {
+ os_err = os_copy_from_user(key, slot_info.key,
+ slot_info.key_length);
+ }
+ }
+
+ if (os_err == OS_ERROR_OK_S) {
+ scc_ret = keystore_slot_decrypt(NULL, &system_keystore,
+ slot_info.ownerid,
+ slot_info.slot,
+ slot_info.key_length, key);
+ if (scc_ret == SCC_RET_OK) {
+ ret = FSL_RETURN_OK_S;
+ } else {
+ ret = FSL_RETURN_ERROR_S;
+ }
+
+ slot_info.code = ret;
+ os_err =
+ os_copy_to_user((void *)info, &slot_info,
+ sizeof(slot_info));
+ }
+
+ if (key != NULL) {
+ memset(key, 0, slot_info.key_length);
+ os_free_memory(key);
+ }
+
+ return os_err;
+}
+
+/*!
+ * Register a user
+ *
+ * @brief Register a user
+ *
+ * @param user_ctx information about this user
+ *
+ * @return status code
+ */
+fsl_shw_return_t sah_handle_registration(fsl_shw_uco_t * user_ctx)
+{
+ /* Initialize the user's result pool (like sah_Queue_Construct() */
+ user_ctx->result_pool.head = NULL;
+ user_ctx->result_pool.tail = NULL;
+ user_ctx->result_pool.count = 0;
+
+ /* initialize the user's partition chain */
+ user_ctx->partition = NULL;
+
+ return FSL_RETURN_OK_S;
+}
+
+/*!
+ * Deregister a user
+ *
+ * @brief Deregister a user
+ *
+ * @param user_ctx information about this user
+ *
+ * @return status code
+ */
+fsl_shw_return_t sah_handle_deregistration(fsl_shw_uco_t * user_ctx)
+{
+ /* NOTE:
+ * This will release any secure partitions that are held by the user.
+ * Encryption keys that were placed in the system keystore by the user
+ * should not be removed here, because they might have been shared with
+ * another process. The user must be careful to release any that are no
+ * longer in use.
+ */
+ fsl_shw_return_t ret = FSL_RETURN_OK_S;
+
+#ifdef FSL_HAVE_SCC2
+ fsl_shw_spo_t *partition;
+ struct mm_struct *mm = current->mm;
+
+ while ((user_ctx->partition != NULL) && (ret == FSL_RETURN_OK_S)) {
+
+ partition = user_ctx->partition;
+
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG_ARGS
+ ("Found an abandoned secure partition at %p, releasing",
+ partition);
+#endif
+
+ /* It appears that current->mm is not valid if this is called from a
+ * close routine (perhaps only if the program raised an exception that
+ * caused it to close?) If that is the case, then still free the
+ * partition, but do not remove it from the memory space (dangerous?)
+ */
+
+ if (mm == NULL) {
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG
+ ("Warning: no mm structure found, not unmapping "
+ "partition from user memory\n");
+#endif
+ } else {
+ /* Unmap the memory region (see sys_munmap in mmap.c) */
+ /* Note that this assumes a single memory partition */
+ unmap_user_memory(partition->user_base, 8192);
+ }
+
+ /* If the memory was successfully released */
+ if (ret == OS_ERROR_OK_S) {
+ /* release the partition */
+ scc_release_partition(partition->kernel_base);
+
+ /* and remove it from the users context */
+ deregister_user_partition(user_ctx,
+ partition->user_base);
+
+ ret = FSL_RETURN_OK_S;
+ } else {
+ ret = FSL_RETURN_ERROR_S;
+
+ goto out;
+ }
+ }
+ out:
+#endif /* FSL_HAVE_SCC2 */
+
+ return ret;
+}
+
+/*!
+ * Sets up memory to extract results from results pool
+ *
+ * @brief Sets up memory to extract results from results pool
+ *
+ * @param user_ctx information about this user
+ * @param[in,out] arg contains input parameters and fields that the driver
+ * fills in
+ *
+ * @return os error code or 0 on success
+ */
+int sah_get_results_pointers(fsl_shw_uco_t * user_ctx, uint32_t arg)
+{
+ sah_results results_arg; /* kernel mode usable version of 'arg' */
+ fsl_shw_result_t *user_results; /* user mode address of results */
+ unsigned *user_actual; /* user mode address of actual number of results */
+ unsigned actual; /* local memory of actual number of results */
+ int ret_val = OS_ERROR_FAIL_S;
+ sah_Head_Desc *finished_request;
+ unsigned int loop;
+
+ /* copy structure from user to kernel space */
+ if (!os_copy_from_user(&results_arg, (void *)arg, sizeof(sah_results))) {
+ /* save user space pointers */
+ user_actual = results_arg.actual; /* where count goes */
+ user_results = results_arg.results; /* where results goe */
+
+ /* Set pointer for actual value to temporary kernel memory location */
+ results_arg.actual = &actual;
+
+ /* Allocate kernel memory to hold temporary copy of the results */
+ results_arg.results =
+ os_alloc_memory(sizeof(fsl_shw_result_t) *
+ results_arg.requested, GFP_KERNEL);
+
+ /* if memory allocated, continue */
+ if (results_arg.results == NULL) {
+ ret_val = OS_ERROR_NO_MEMORY_S;
+ } else {
+ fsl_shw_return_t get_status;
+
+ /* get the results */
+ get_status =
+ sah_get_results_from_pool(user_ctx, &results_arg);
+
+ /* free the copy of the user space descriptor chain */
+ for (loop = 0; loop < actual; ++loop) {
+ /* get sah_Head_Desc from results and put user address into
+ * the return structure */
+ finished_request =
+ results_arg.results[loop].user_desc;
+ results_arg.results[loop].user_desc =
+ finished_request->user_desc;
+ /* return the descriptor chain memory to the block free pool */
+ sah_Free_Chained_Descriptors(finished_request);
+ }
+
+ /* if no errors, copy results and then the actual number of results
+ * back to user space
+ */
+ if (get_status == FSL_RETURN_OK_S) {
+ if (os_copy_to_user
+ (user_results, results_arg.results,
+ actual * sizeof(fsl_shw_result_t))
+ || os_copy_to_user(user_actual, &actual,
+ sizeof(user_actual))) {
+ ret_val = OS_ERROR_FAIL_S;
+ } else {
+ ret_val = 0; /* no error */
+ }
+ }
+ /* free the allocated memory */
+ os_free_memory(results_arg.results);
+ }
+ }
+
+ return ret_val;
+}
+
+/*!
+ * Extracts results from results pool
+ *
+ * @brief Extract results from results pool
+ *
+ * @param user_ctx information about this user
+ * @param[in,out] arg contains input parameters and fields that the
+ * driver fills in
+ *
+ * @return status code
+ */
+fsl_shw_return_t sah_get_results_from_pool(volatile fsl_shw_uco_t * user_ctx,
+ sah_results * arg)
+{
+ sah_Head_Desc *finished_request;
+ unsigned int loop = 0;
+ os_lock_context_t int_flags;
+
+ /* Get the number of results requested, up to total number of results
+ * available
+ */
+ do {
+ /* Protect state of user's result pool until we have retrieved and
+ * remove the first entry, or determined that the pool is empty. */
+ os_lock_save_context(desc_queue_lock, int_flags);
+ finished_request = user_ctx->result_pool.head;
+
+ if (finished_request != NULL) {
+ sah_Queue_Remove_Entry((sah_Queue *) & user_ctx->
+ result_pool);
+ os_unlock_restore_context(desc_queue_lock, int_flags);
+
+ /* Prepare to free. */
+ (void)sah_DePhysicalise_Descriptors(finished_request);
+
+ arg->results[loop].user_ref =
+ finished_request->user_ref;
+ arg->results[loop].code = finished_request->result;
+ arg->results[loop].detail1 =
+ finished_request->fault_address;
+ arg->results[loop].detail2 = 0;
+ arg->results[loop].user_desc = finished_request;
+
+ loop++;
+ } else { /* finished_request is NULL */
+ /* pool is empty */
+ os_unlock_restore_context(desc_queue_lock, int_flags);
+ }
+
+ } while ((loop < arg->requested) && (finished_request != NULL));
+
+ /* record number of results actually obtained */
+ *arg->actual = loop;
+
+ return FSL_RETURN_OK_S;
+}
+
+/*!
+ * Converts descriptor chain to kernel space (from user space) and submits
+ * chain to Sahara for processing
+ *
+ * @brief Submits converted descriptor chain to sahara
+ *
+ * @param user_ctx Pointer to Kernel version of user's ctx
+ * @param user_space_desc user space address of descriptor chain that is
+ * in user space
+ *
+ * @return OS status code
+ */
+static int handle_sah_ioctl_dar(fsl_shw_uco_t * user_ctx,
+ uint32_t user_space_desc)
+{
+ int os_error_code = OS_ERROR_FAIL_S;
+ sah_Head_Desc *desc_chain_head; /* chain in kernel - virtual address */
+
+ /* This will re-create the linked list so that the SAHARA hardware can
+ * DMA on it.
+ */
+ desc_chain_head = sah_Copy_Descriptors(user_ctx,
+ (sah_Head_Desc *)
+ user_space_desc);
+
+ if (desc_chain_head == NULL) {
+ /* We may have failed due to a -EFAULT as well, but we will return
+ * OS_ERROR_NO_MEMORY_S since either way it is a memory related
+ * failure.
+ */
+ os_error_code = OS_ERROR_NO_MEMORY_S;
+ } else {
+ fsl_shw_return_t stat;
+
+ desc_chain_head->user_info = user_ctx;
+ desc_chain_head->user_desc = (sah_Head_Desc *) user_space_desc;
+
+ if (desc_chain_head->uco_flags & FSL_UCO_BLOCKING_MODE) {
+#ifdef SAHARA_POLL_MODE
+ sah_Handle_Poll(desc_chain_head);
+#else
+ sah_blocking_mode(desc_chain_head);
+#endif
+ stat = desc_chain_head->result;
+ /* return the descriptor chain memory to the block free pool */
+ sah_Free_Chained_Descriptors(desc_chain_head);
+ /* Tell user how the call turned out */
+
+ /* Copy 'result' back up to the result member.
+ *
+ * The dereference of the different member will cause correct the
+ * arithmetic to occur on the user-space address because of the
+ * missing dma/bus locations in the user mode version of the
+ * sah_Desc structure. */
+ os_error_code =
+ os_copy_to_user((void *)(user_space_desc
+ + offsetof(sah_Head_Desc,
+ uco_flags)),
+ &stat, sizeof(fsl_shw_return_t));
+
+ } else { /* not blocking mode - queue and forget */
+
+ if (desc_chain_head->uco_flags & FSL_UCO_CALLBACK_MODE) {
+ user_ctx->process = os_get_process_handle();
+ user_ctx->callback = sah_user_callback;
+ }
+#ifdef SAHARA_POLL_MODE
+ /* will put results in result pool */
+ sah_Handle_Poll(desc_chain_head);
+#else
+ /* just put someting in the DAR */
+ sah_Queue_Manager_Append_Entry(desc_chain_head);
+#endif
+ /* assume all went well */
+ os_error_code = OS_ERROR_OK_S;
+ }
+ }
+
+ return os_error_code;
+}
+
+static void sah_user_callback(fsl_shw_uco_t * user_ctx)
+{
+ os_send_signal(user_ctx->process, SIGUSR2);
+}
+
+/*!
+ * This function is called when a thread attempts to read from the /proc/sahara
+ * file. Upon read, statistics and information about the state of the driver
+ * are returned in nthe supplied buffer.
+ *
+ * @brief SAHARA PROCFS read function.
+ *
+ * @param buf Anything written to this buffer will be returned to the
+ * user-space process that is reading from this proc entry.
+ * @param start Part of the kernel prototype.
+ * @param offset Part of the kernel prototype.
+ * @param count The size of the buf argument.
+ * @param eof An integer which is set to one to tell the user-space
+ * process that there is no more data to read.
+ * @param data Part of the kernel prototype.
+ *
+ * @return The number of bytes written to the proc entry.
+ */
+#if !defined(CONFIG_DEVFS_FS) || (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0))
+static int sah_read_procfs(char *buf,
+ char **start,
+ off_t offset, int count, int *eof, void *data)
+{
+ int output_bytes = 0;
+ int in_queue_count = 0;
+ os_lock_context_t lock_context;
+
+ os_lock_save_context(desc_queue_lock, lock_context);
+ in_queue_count = sah_Queue_Manager_Count_Entries(TRUE, 0);
+ os_unlock_restore_context(desc_queue_lock, lock_context);
+ output_bytes += snprintf(buf, count - output_bytes, "queued: %d\n",
+ in_queue_count);
+ output_bytes += snprintf(buf + output_bytes, count - output_bytes,
+ "Descriptors: %d, "
+ "Interrupts %d (%d Done1Done2, %d Done1Busy2, "
+ " %d Done1)\n",
+ dar_count, interrupt_count, done1done2_count,
+ done1busy2_count, done1_count);
+ output_bytes += snprintf(buf + output_bytes, count - output_bytes,
+ "Control: %08x\n", sah_HW_Read_Control());
+#if !defined(FSL_HAVE_SAHARA4) || defined(SAHARA4_NO_USE_SQUIB)
+ output_bytes += snprintf(buf + output_bytes, count - output_bytes,
+ "IDAR: %08x; CDAR: %08x\n",
+ sah_HW_Read_IDAR(), sah_HW_Read_CDAR());
+#endif
+#ifdef DIAG_DRV_STATUS
+ output_bytes += snprintf(buf + output_bytes, count - output_bytes,
+ "Status: %08x; Error Status: %08x; Op Status: %08x\n",
+ sah_HW_Read_Status(),
+ sah_HW_Read_Error_Status(),
+ sah_HW_Read_Op_Status());
+#endif
+#ifdef FSL_HAVE_SAHARA4
+ output_bytes += snprintf(buf + output_bytes, count - output_bytes,
+ "MMStat: %08x; Config: %08x\n",
+ sah_HW_Read_MM_Status(), sah_HW_Read_Config());
+#endif
+
+ /* Signal the end of the file */
+ *eof = 1;
+
+ /* To get rid of the unused parameter warnings */
+ (void)start;
+ (void)data;
+ (void)offset;
+
+ return output_bytes;
+}
+
+static int sah_write_procfs(struct file *file, const char __user * buffer,
+ unsigned long count, void *data)
+{
+
+ /* Any write to this file will reset all counts. */
+ dar_count = interrupt_count = done1done2_count =
+ done1busy2_count = done1_count = 0;
+
+ (void)file;
+ (void)buffer;
+ (void)data;
+
+ return count;
+}
+
+#endif
+
+#ifndef SAHARA_POLL_MODE
+/*!
+ * Block user call until processing is complete.
+ *
+ * @param entry The user's request.
+ *
+ * @return An OS error code, or 0 if no error
+ */
+int sah_blocking_mode(sah_Head_Desc * entry)
+{
+ int os_error_code = 0;
+ sah_Queue_Status status;
+
+ /* queue entry, put something in the DAR, if nothing is there currently */
+ sah_Queue_Manager_Append_Entry(entry);
+
+ /* get this descriptor chain's current status */
+ status = ((volatile sah_Head_Desc *)entry)->status;
+
+ while (!SAH_DESC_PROCESSED(status)) {
+ extern sah_Queue *main_queue;
+
+ DEFINE_WAIT(sahara_wait); /* create a wait queue entry. Linux */
+
+ /* enter the wait queue entry into the queue */
+ prepare_to_wait(&Wait_queue, &sahara_wait, TASK_INTERRUPTIBLE);
+
+ /* check if this entry has been processed */
+ status = ((volatile sah_Head_Desc *)entry)->status;
+
+ if (!SAH_DESC_PROCESSED(status)) {
+ /* go to sleep - Linux */
+ schedule();
+ }
+
+ /* un-queue the 'prepare to wait' queue? - Linux */
+ finish_wait(&Wait_queue, &sahara_wait);
+
+ /* signal belongs to this thread? */
+ if (signal_pending(current)) { /* Linux */
+ os_lock_context_t lock_flags;
+
+ /* don't allow access during this check and operation */
+ os_lock_save_context(desc_queue_lock, lock_flags);
+ status = ((volatile sah_Head_Desc *)entry)->status;
+ if (status == SAH_STATE_PENDING) {
+ sah_Queue_Remove_Any_Entry(main_queue, entry);
+ entry->result = FSL_RETURN_INTERNAL_ERROR_S;
+ ((volatile sah_Head_Desc *)entry)->status =
+ SAH_STATE_FAILED;
+ }
+ os_unlock_restore_context(desc_queue_lock, lock_flags);
+ }
+
+ status = ((volatile sah_Head_Desc *)entry)->status;
+ } /* while ... */
+
+ /* Do this so that caller can free */
+ (void)sah_DePhysicalise_Descriptors(entry);
+
+ return os_error_code;
+}
+
+/*!
+ * If interrupt does not return in a reasonable time, time out, trigger
+ * interrupt, and continue with process
+ *
+ * @param data ignored
+ */
+void sahara_timeout_handler(unsigned long data)
+{
+ /* Sahara has not issuing an interrupt, so timed out */
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("Sahara HW did not respond. Resetting.\n");
+#endif
+ /* assume hardware needs resetting */
+ sah_Handle_Interrupt(SAH_EXEC_FAULT);
+ /* wake up sleeping thread to try again */
+ wake_up_interruptible(&Wait_queue);
+}
+
+#endif /* ifndef SAHARA_POLL_MODE */
+
+/* End of sah_driver_interface.c */
diff --git a/drivers/mxc/security/sahara2/sah_hardware_interface.c b/drivers/mxc/security/sahara2/sah_hardware_interface.c
new file mode 100644
index 000000000000..ff3cb987dc7f
--- /dev/null
+++ b/drivers/mxc/security/sahara2/sah_hardware_interface.c
@@ -0,0 +1,808 @@
+/*
+ * Copyright (C) 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file sah_hardware_interface.c
+ *
+ * @brief Provides an interface to the SAHARA hardware registers.
+ *
+ */
+
+/* SAHARA Includes */
+#include <sah_driver_common.h>
+#include <sah_hardware_interface.h>
+#include <sah_memory_mapper.h>
+#include <sah_kernel.h>
+
+#if defined DIAG_DRV_IF || defined(DO_DBG)
+#include <diagnostic.h>
+#ifndef LOG_KDIAG
+#define LOG_KDIAG(x) os_printk("%s\n", x)
+#endif
+
+static void sah_Dump_Link(const char *prefix, const sah_Link * link,
+ dma_addr_t addr);
+
+/* This is for sprintf() to use when constructing output. */
+#define DIAG_MSG_SIZE 1024
+/* was 200 */
+#define MAX_DUMP 200
+static char Diag_msg[DIAG_MSG_SIZE];
+
+#endif /* DIAG_DRV_IF */
+
+/*!
+ * Number of descriptors sent to Sahara. This value should only be updated
+ * with the main queue lock held.
+ */
+uint32_t dar_count;
+
+/* sahara virtual base address */
+void *sah_virt_base;
+
+/*! The "link-list optimize" bit in the Header of a Descriptor */
+#define SAH_HDR_LLO 0x01000000
+
+#define SAHARA_VERSION_REGISTER_OFFSET 0x000
+#define SAHARA_DAR_REGISTER_OFFSET 0x004
+#define SAHARA_CONTROL_REGISTER_OFFSET 0x008
+#define SAHARA_COMMAND_REGISTER_OFFSET 0x00C
+#define SAHARA_STATUS_REGISTER_OFFSET 0x010
+#define SAHARA_ESTATUS_REGISTER_OFFSET 0x014
+#define SAHARA_FLT_ADD_REGISTER_OFFSET 0x018
+#define SAHARA_CDAR_REGISTER_OFFSET 0x01C
+#define SAHARA_IDAR_REGISTER_OFFSET 0x020
+#define SAHARA_OSTATUS_REGISTER_OFFSET 0x028
+#define SAHARA_CONFIG_REGISTER_OFFSET 0x02C
+#define SAHARA_MM_STAT_REGISTER_OFFSET 0x030
+
+
+/* Local Functions */
+#if defined DIAG_DRV_IF || defined DO_DBG
+void sah_Dump_Region(const char *prefix, const unsigned char *data,
+ dma_addr_t addr, unsigned length);
+
+#endif /* DIAG_DRV_IF */
+
+/* time out value when polling SAHARA status register for completion */
+static uint32_t sah_poll_timeout = 0xFFFFFFFF;
+
+/*!
+ * Polls Sahara to determine when its current operation is complete
+ *
+ * @return last value found in Sahara's status register
+ */
+sah_Execute_Status sah_Wait_On_Sahara()
+{
+ uint32_t count = 0; /* ensure we don't get stuck in the loop forever */
+ sah_Execute_Status status; /* Sahara's status register */
+ uint32_t stat_reg;
+
+ pr_debug("Entered sah_Wait_On_Sahara\n");
+
+ do {
+ /* get current status register from Sahara */
+ stat_reg = sah_HW_Read_Status();
+ status = stat_reg & SAH_EXEC_STATE_MASK;
+
+ /* timeout if SAHARA takes too long to complete */
+ if (++count == sah_poll_timeout) {
+ status = SAH_EXEC_FAULT;
+ printk("sah_Wait_On_Sahara timed out\n");
+ }
+
+ /* stay in loop as long as Sahara is still busy */
+ } while ((status == SAH_EXEC_BUSY) || (status == SAH_EXEC_DONE1_BUSY2));
+
+ if (status == SAH_EXEC_ERROR1) {
+ if (stat_reg & OP_STATUS) {
+ status = SAH_EXEC_OPSTAT1;
+ }
+ }
+
+ return status;
+} /* sah_Wait_on_Sahara() */
+
+/*!
+ * This function resets the SAHARA hardware. The following operations are
+ * performed:
+ * 1. Resets SAHARA.
+ * 2. Requests BATCH mode.
+ * 3. Enables interrupts.
+ * 4. Requests Little Endian mode.
+ *
+ * @brief SAHARA hardware reset function.
+ *
+ * @return void
+ */
+int sah_HW_Reset(void)
+{
+ sah_Execute_Status sah_state;
+ int status; /* this is the value to return to the calling routine */
+ uint32_t saha_control = 0;
+
+#ifndef USE_3WORD_BURST
+#ifdef FSL_HAVE_SAHARA2
+ saha_control |= (8 << 16); /* Allow 8-word burst */
+#endif
+#else
+/***************** HARDWARE BUG WORK AROUND ******************/
+/* A burst size of > 4 can cause Sahara DMA to issue invalid AHB transactions
+ * when crossing 1KB boundaries. By limiting the 'burst size' to 3, these
+ * invalid transactions will not be generated, but Sahara will still transfer
+ * data more efficiently than if the burst size were set to 1.
+ */
+ saha_control |= (3 << 16); /* Limit DMA burst size. For versions 2/3 */
+#endif /* USE_3WORD_BURST */
+
+#ifdef DIAG_DRV_IF
+ snprintf(Diag_msg, DIAG_MSG_SIZE,
+ "Address of sah_virt_base = 0x%08x\n",
+ sah_virt_base);
+ LOG_KDIAG(Diag_msg);
+ snprintf(Diag_msg, DIAG_MSG_SIZE,
+ "Sahara Status register before reset: %08x",
+ sah_HW_Read_Status());
+ LOG_KDIAG(Diag_msg);
+#endif
+
+ /* Write the Reset & BATCH mode command to the SAHARA Command register. */
+ sah_HW_Write_Command(CMD_BATCH | CMD_RESET);
+#ifdef SAHARA4_NO_USE_SQUIB
+ {
+ uint32_t cfg = sah_HW_Read_Config();
+ cfg &= ~0x10000;
+ sah_HW_Write_Config(cfg);
+ }
+#endif
+
+ sah_poll_timeout = 0x0FFFFFFF;
+ sah_state = sah_Wait_On_Sahara();
+#ifdef DIAG_DRV_IF
+ snprintf(Diag_msg, DIAG_MSG_SIZE,
+ "Sahara Status register after reset: %08x",
+ sah_HW_Read_Status());
+ LOG_KDIAG(Diag_msg);
+#endif
+ /* on reset completion, check that Sahara is in the idle state */
+ status = (sah_state == SAH_EXEC_IDLE) ? 0 : OS_ERROR_FAIL_S;
+
+ /* Set initial value out of reset */
+ sah_HW_Write_Control(saha_control);
+
+#ifndef NO_RESEED_WORKAROUND
+/***************** HARDWARE BUG WORK AROUND ******************/
+/* In order to set the 'auto reseed' bit, must first acquire a random value. */
+ /*
+ * to solve a hardware bug, a random number must be generated before
+ * the 'RNG Auto Reseed' bit can be set. So this generates a random
+ * number that is thrown away.
+ *
+ * Note that the interrupt bit has not been set at this point so
+ * the result can be polled.
+ */
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("Create and submit Random Number Descriptor");
+#endif
+
+ if (status == OS_ERROR_OK_S) {
+ /* place to put random number */
+ volatile uint32_t *random_data_ptr;
+ sah_Head_Desc *random_desc;
+ dma_addr_t desc_dma;
+ dma_addr_t rand_dma;
+ const int rnd_cnt = 3; /* how many random 32-bit values to get */
+
+ /* Get space for data -- assume at least 32-bit aligned! */
+ random_data_ptr = os_alloc_memory(rnd_cnt * sizeof(uint32_t),
+ GFP_ATOMIC);
+
+ random_desc = sah_Alloc_Head_Descriptor();
+
+ if ((random_data_ptr == NULL) || (random_desc == NULL)) {
+ status = OS_ERROR_FAIL_S;
+ } else {
+ int i;
+
+ /* Clear out values */
+ for (i = 0; i < rnd_cnt; i++) {
+ random_data_ptr[i] = 0;
+ }
+
+ rand_dma = os_pa(random_data_ptr);
+
+ random_desc->desc.header = 0xB18C0000; /* LLO get random number */
+ random_desc->desc.len1 =
+ rnd_cnt * sizeof(*random_data_ptr);
+ random_desc->desc.ptr1 = (void *)rand_dma;
+ random_desc->desc.original_ptr1 =
+ (void *)random_data_ptr;
+
+ random_desc->desc.len2 = 0; /* not used */
+ random_desc->desc.ptr2 = 0; /* not used */
+
+ random_desc->desc.next = 0; /* chain terminates here */
+ random_desc->desc.original_next = 0; /* chain terminates here */
+
+ desc_dma = random_desc->desc.dma_addr;
+
+ /* Force in-cache data out to RAM */
+ os_cache_clean_range(random_data_ptr,
+ rnd_cnt *
+ sizeof(*random_data_ptr));
+
+ /* pass descriptor to Sahara */
+ sah_HW_Write_DAR(desc_dma);
+
+ /*
+ * Wait for RNG to complete (interrupts are disabled at this point
+ * due to sahara being reset previously) then check for error
+ */
+ sah_state = sah_Wait_On_Sahara();
+ /* Force CPU to ignore in-cache and reload from RAM */
+ os_cache_inv_range(random_data_ptr,
+ rnd_cnt * sizeof(*random_data_ptr));
+
+ /* if it didn't move to done state, an error occured */
+ if (
+#ifndef SUBMIT_MULTIPLE_DARS
+ (sah_state != SAH_EXEC_IDLE) &&
+#endif
+ (sah_state != SAH_EXEC_DONE1)
+ ) {
+ status = OS_ERROR_FAIL_S;
+ os_printk
+ ("(sahara) Failure: state is %08x; random_data is"
+ " %08x\n", sah_state, *random_data_ptr);
+ os_printk
+ ("(sahara) CDAR: %08x, IDAR: %08x, FADR: %08x,"
+ " ESTAT: %08x\n", sah_HW_Read_CDAR(),
+ sah_HW_Read_IDAR(),
+ sah_HW_Read_Fault_Address(),
+ sah_HW_Read_Error_Status());
+ } else {
+ int i;
+ int seen_rand = 0;
+
+ for (i = 0; i < rnd_cnt; i++) {
+ if (*random_data_ptr != 0) {
+ seen_rand = 1;
+ break;
+ }
+ }
+ if (!seen_rand) {
+ status = OS_ERROR_FAIL_S;
+ os_printk
+ ("(sahara) Error: Random number is zero!\n");
+ }
+ }
+ }
+
+ if (random_data_ptr) {
+ os_free_memory((void *)random_data_ptr);
+ }
+ if (random_desc) {
+ sah_Free_Head_Descriptor(random_desc);
+ }
+ }
+/***************** END HARDWARE BUG WORK AROUND ******************/
+#endif
+
+ if (status == 0) {
+#ifdef FSL_HAVE_SAHARA2
+ saha_control |= CTRL_RNG_RESEED;
+#endif
+
+#ifndef SAHARA_POLL_MODE
+ saha_control |= CTRL_INT_EN; /* enable interrupts */
+#else
+ sah_poll_timeout = SAHARA_POLL_MODE_TIMEOUT;
+#endif
+
+#ifdef DIAG_DRV_IF
+ snprintf(Diag_msg, DIAG_MSG_SIZE,
+ "Setting up Sahara's Control Register: %08x\n",
+ saha_control);
+ LOG_KDIAG(Diag_msg);
+#endif
+
+ /* Rewrite the setup to the SAHARA Control register */
+ sah_HW_Write_Control(saha_control);
+#ifdef DIAG_DRV_IF
+ snprintf(Diag_msg, DIAG_MSG_SIZE,
+ "Sahara Status register after control write: %08x",
+ sah_HW_Read_Status());
+ LOG_KDIAG(Diag_msg);
+#endif
+
+#ifdef FSL_HAVE_SAHARA4
+ {
+ uint32_t cfg = sah_HW_Read_Config();
+ sah_HW_Write_Config(cfg | 0x100); /* Add RNG auto-reseed */
+ }
+#endif
+ } else {
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("Reset failed\n");
+#endif
+ }
+
+ return status;
+} /* sah_HW_Reset() */
+
+/*!
+ * This function enables High Assurance mode.
+ *
+ * @brief SAHARA hardware enable High Assurance mode.
+ *
+ * @return FSL_RETURN_OK_S - if HA was set successfully
+ * @return FSL_RETURN_INTERNAL_ERROR_S - if HA was not set due to SAHARA
+ * being busy.
+ */
+fsl_shw_return_t sah_HW_Set_HA(void)
+{
+ /* This is the value to write to the register */
+ uint32_t value;
+
+ /* Read from the control register. */
+ value = sah_HW_Read_Control();
+
+ /* Set the HA bit */
+ value |= CTRL_HA;
+
+ /* Write to the control register. */
+ sah_HW_Write_Control(value);
+
+ /* Read from the control register. */
+ value = sah_HW_Read_Control();
+
+ return (value & CTRL_HA) ? FSL_RETURN_OK_S :
+ FSL_RETURN_INTERNAL_ERROR_S;
+}
+
+/*!
+ * This function reads the SAHARA hardware Version Register.
+ *
+ * @brief Read SAHARA hardware Version Register.
+ *
+ * @return uint32_t Register value.
+ */
+uint32_t sah_HW_Read_Version(void)
+{
+ return os_read32(sah_virt_base + SAHARA_VERSION_REGISTER_OFFSET);
+}
+
+/*!
+ * This function reads the SAHARA hardware Control Register.
+ *
+ * @brief Read SAHARA hardware Control Register.
+ *
+ * @return uint32_t Register value.
+ */
+uint32_t sah_HW_Read_Control(void)
+{
+ return os_read32(sah_virt_base + SAHARA_CONTROL_REGISTER_OFFSET);
+}
+
+/*!
+ * This function reads the SAHARA hardware Status Register.
+ *
+ * @brief Read SAHARA hardware Status Register.
+ *
+ * @return uint32_t Register value.
+ */
+uint32_t sah_HW_Read_Status(void)
+{
+ return os_read32(sah_virt_base + SAHARA_STATUS_REGISTER_OFFSET);
+}
+
+/*!
+ * This function reads the SAHARA hardware Error Status Register.
+ *
+ * @brief Read SAHARA hardware Error Status Register.
+ *
+ * @return uint32_t Error Status value.
+ */
+uint32_t sah_HW_Read_Error_Status(void)
+{
+ return os_read32(sah_virt_base + SAHARA_ESTATUS_REGISTER_OFFSET);
+}
+
+/*!
+ * This function reads the SAHARA hardware Op Status Register.
+ *
+ * @brief Read SAHARA hardware Op Status Register.
+ *
+ * @return uint32_t Op Status value.
+ */
+uint32_t sah_HW_Read_Op_Status(void)
+{
+ return os_read32(sah_virt_base + SAHARA_OSTATUS_REGISTER_OFFSET);
+}
+
+/*!
+ * This function reads the SAHARA hardware Descriptor Address Register.
+ *
+ * @brief Read SAHARA hardware DAR Register.
+ *
+ * @return uint32_t DAR value.
+ */
+uint32_t sah_HW_Read_DAR(void)
+{
+ return os_read32(sah_virt_base + SAHARA_DAR_REGISTER_OFFSET);
+}
+
+/*!
+ * This function reads the SAHARA hardware Current Descriptor Address Register.
+ *
+ * @brief Read SAHARA hardware CDAR Register.
+ *
+ * @return uint32_t CDAR value.
+ */
+uint32_t sah_HW_Read_CDAR(void)
+{
+ return os_read32(sah_virt_base + SAHARA_CDAR_REGISTER_OFFSET);
+}
+
+/*!
+ * This function reads the SAHARA hardware Initial Descriptor Address Register.
+ *
+ * @brief Read SAHARA hardware IDAR Register.
+ *
+ * @return uint32_t IDAR value.
+ */
+uint32_t sah_HW_Read_IDAR(void)
+{
+ return os_read32(sah_virt_base + SAHARA_IDAR_REGISTER_OFFSET);
+}
+
+/*!
+ * This function reads the SAHARA hardware Fault Address Register.
+ *
+ * @brief Read SAHARA Fault Address Register.
+ *
+ * @return uint32_t Fault Address value.
+ */
+uint32_t sah_HW_Read_Fault_Address(void)
+{
+ return os_read32(sah_virt_base + SAHARA_FLT_ADD_REGISTER_OFFSET);
+}
+
+/*!
+ * This function reads the SAHARA hardware Multiple Master Status Register.
+ *
+ * @brief Read SAHARA hardware MM Stat Register.
+ *
+ * @return uint32_t MM Stat value.
+ */
+uint32_t sah_HW_Read_MM_Status(void)
+{
+ return os_read32(sah_virt_base + SAHARA_MM_STAT_REGISTER_OFFSET);
+}
+
+/*!
+ * This function reads the SAHARA hardware Configuration Register.
+ *
+ * @brief Read SAHARA Configuration Register.
+ *
+ * @return uint32_t Configuration value.
+ */
+uint32_t sah_HW_Read_Config(void)
+{
+ return os_read32(sah_virt_base + SAHARA_CONFIG_REGISTER_OFFSET);
+}
+
+/*!
+ * This function writes a command to the SAHARA hardware Command Register.
+ *
+ * @brief Write to SAHARA hardware Command Register.
+ *
+ * @param command An unsigned 32bit command value.
+ *
+ * @return void
+ */
+void sah_HW_Write_Command(uint32_t command)
+{
+ os_write32(sah_virt_base + SAHARA_COMMAND_REGISTER_OFFSET, command);
+}
+
+/*!
+ * This function writes a control value to the SAHARA hardware Control
+ * Register.
+ *
+ * @brief Write to SAHARA hardware Control Register.
+ *
+ * @param control An unsigned 32bit control value.
+ *
+ * @return void
+ */
+void sah_HW_Write_Control(uint32_t control)
+{
+ os_write32(sah_virt_base + SAHARA_CONTROL_REGISTER_OFFSET, control);
+}
+
+/*!
+ * This function writes a configuration value to the SAHARA hardware Configuration
+ * Register.
+ *
+ * @brief Write to SAHARA hardware Configuration Register.
+ *
+ * @param configuration An unsigned 32bit configuration value.
+ *
+ * @return void
+ */
+void sah_HW_Write_Config(uint32_t configuration)
+{
+ os_write32(sah_virt_base + SAHARA_CONFIG_REGISTER_OFFSET,
+ configuration);
+}
+
+/*!
+ * This function writes a descriptor address to the SAHARA Descriptor Address
+ * Register.
+ *
+ * @brief Write to SAHARA Descriptor Address Register.
+ *
+ * @param pointer An unsigned 32bit descriptor address value.
+ *
+ * @return void
+ */
+void sah_HW_Write_DAR(uint32_t pointer)
+{
+ os_write32(sah_virt_base + SAHARA_DAR_REGISTER_OFFSET, pointer);
+ dar_count++;
+}
+
+#if defined DIAG_DRV_IF || defined DO_DBG
+
+static char *interpret_header(uint32_t header)
+{
+ unsigned desc_type = ((header >> 24) & 0x70) | ((header >> 16) & 0xF);
+
+ switch (desc_type) {
+ case 0x12:
+ return "5/SKHA_ST_CTX";
+ case 0x13:
+ return "35/SKHA_LD_MODE_KEY";
+ case 0x14:
+ return "38/SKHA_LD_MODE_IN_CPHR_ST_CTX";
+ case 0x15:
+ return "4/SKHA_IN_CPHR_OUT";
+ case 0x16:
+ return "34/SKHA_ST_SBOX";
+ case 0x18:
+ return "1/SKHA_LD_MODE_IV_KEY";
+ case 0x19:
+ return "33/SKHA_ST_SBOX";
+ case 0x1D:
+ return "2/SKHA_LD_MODE_IN_CPHR_OUT";
+ case 0x22:
+ return "11/MDHA_ST_MD";
+ case 0x25:
+ return "10/MDHA_HASH_ST_MD";
+ case 0x28:
+ return "6/MDHA_LD_MODE_MD_KEY";
+ case 0x2A:
+ return "39/MDHA_ICV";
+ case 0x2D:
+ return "8/MDHA_LD_MODE_HASH_ST_MD";
+ case 0x3C:
+ return "18/RNG_GEN";
+ case 0x40:
+ return "19/PKHA_LD_N_E";
+ case 0x41:
+ return "36/PKHA_LD_A3_B0";
+ case 0x42:
+ return "27/PKHA_ST_A_B";
+ case 0x43:
+ return "22/PKHA_LD_A_B";
+ case 0x44:
+ return "23/PKHA_LD_A0_A1";
+ case 0x45:
+ return "24/PKHA_LD_A2_A3";
+ case 0x46:
+ return "25/PKHA_LD_B0_B1";
+ case 0x47:
+ return "26/PKHA_LD_B2_B3";
+ case 0x48:
+ return "28/PKHA_ST_A0_A1";
+ case 0x49:
+ return "29/PKHA_ST_A2_A3";
+ case 0x4A:
+ return "30/PKHA_ST_B0_B1";
+ case 0x4B:
+ return "31/PKHA_ST_B2_B3";
+ case 0x4C:
+ return "32/PKHA_EX_ST_B1";
+ case 0x4D:
+ return "20/PKHA_LD_A_EX_ST_B";
+ case 0x4E:
+ return "21/PKHA_LD_N_EX_ST_B";
+ case 0x4F:
+ return "37/PKHA_ST_B1_B2";
+ default:
+ return "??/UNKNOWN";
+ }
+} /* cvt_desc_name() */
+
+/*!
+ * Dump chain of descriptors to the log.
+ *
+ * @brief Dump descriptor chain
+ *
+ * @param chain Kernel virtual address of start of chain of descriptors
+ *
+ * @return void
+ */
+void sah_Dump_Chain(const sah_Desc * chain, dma_addr_t addr)
+{
+ int desc_no = 1;
+
+ pr_debug("Chain for Sahara\n");
+
+ while (chain != NULL) {
+ char desc_name[50];
+
+ sprintf(desc_name, "Desc %02d (%s)\n" KERN_DEBUG "Desc ",
+ desc_no++, interpret_header(chain->header));
+
+ sah_Dump_Words(desc_name, (unsigned *)chain, addr,
+ 6 /* #words in h/w link */ );
+ if (chain->original_ptr1) {
+ if (chain->header & SAH_HDR_LLO) {
+ sah_Dump_Region(" Data1",
+ (unsigned char *)chain->
+ original_ptr1,
+ (dma_addr_t) chain->ptr1,
+ chain->len1);
+ } else {
+ sah_Dump_Link(" Link1", chain->original_ptr1,
+ (dma_addr_t) chain->ptr1);
+ }
+ }
+ if (chain->ptr2) {
+ if (chain->header & SAH_HDR_LLO) {
+ sah_Dump_Region(" Data2",
+ (unsigned char *)chain->
+ original_ptr2,
+ (dma_addr_t) chain->ptr2,
+ chain->len2);
+ } else {
+ sah_Dump_Link(" Link2", chain->original_ptr2,
+ (dma_addr_t) chain->ptr2);
+ }
+ }
+
+ addr = (dma_addr_t) chain->next;
+ chain = (chain->next) ? (chain->original_next) : NULL;
+ }
+}
+
+/*!
+ * Dump chain of links to the log.
+ *
+ * @brief Dump chain of links
+ *
+ * @param prefix Text to put in front of dumped data
+ * @param link Kernel virtual address of start of chain of links
+ *
+ * @return void
+ */
+static void sah_Dump_Link(const char *prefix, const sah_Link * link,
+ dma_addr_t addr)
+{
+#ifdef DUMP_SCC_DATA
+ extern uint8_t *sahara_partition_base;
+ extern dma_addr_t sahara_partition_phys;
+#endif
+
+ while (link != NULL) {
+ sah_Dump_Words(prefix, (unsigned *)link, addr,
+ 3 /* # words in h/w link */ );
+ if (link->flags & SAH_STORED_KEY_INFO) {
+#ifdef SAH_DUMP_DATA
+#ifdef DUMP_SCC_DATA
+ sah_Dump_Region(" Data",
+ (uint8_t *) link->data -
+ (uint8_t *) sahara_partition_phys +
+ sahara_partition_base,
+ (dma_addr_t) link->data, link->len);
+#else
+ pr_debug(" Key Slot %d\n", link->slot);
+#endif
+#endif
+ } else {
+#ifdef SAH_DUMP_DATA
+ sah_Dump_Region(" Data", link->original_data,
+ (dma_addr_t) link->data, link->len);
+#endif
+ }
+ addr = (dma_addr_t) link->next;
+ link = link->original_next;
+ }
+}
+
+/*!
+ * Dump given region of data to the log.
+ *
+ * @brief Dump data
+ *
+ * @param prefix Text to put in front of dumped data
+ * @param data Kernel virtual address of start of region to dump
+ * @param length Amount of data to dump
+ *
+ * @return void
+ */
+void sah_Dump_Region(const char *prefix, const unsigned char *data,
+ dma_addr_t addr, unsigned length)
+{
+ unsigned count;
+ char *output;
+ unsigned data_len;
+
+ sprintf(Diag_msg, "%s (%08X,%u):", prefix, addr, length);
+
+ /* Restrict amount of data to dump */
+ if (length > MAX_DUMP) {
+ data_len = MAX_DUMP;
+ } else {
+ data_len = length;
+ }
+
+ /* We've already printed some text in output buffer, skip over it */
+ output = Diag_msg + strlen(Diag_msg);
+
+ for (count = 0; count < data_len; count++) {
+ if ((count % 4) == 0) {
+ *output++ = ' ';
+ }
+ sprintf(output, "%02X", *data++);
+ output += 2;
+ }
+
+ pr_debug("%s\n", Diag_msg);
+}
+
+/*!
+ * Dump given word of data to the log.
+ *
+ * @brief Dump data
+ *
+ * @param prefix Text to put in front of dumped data
+ * @param data Kernel virtual address of start of region to dump
+ * @param word_count Amount of data to dump
+ *
+ * @return void
+ */
+void sah_Dump_Words(const char *prefix, const unsigned *data, dma_addr_t addr,
+ unsigned word_count)
+{
+ char *output;
+
+ sprintf(Diag_msg, "%s (%08X,%uw): ", prefix, addr, word_count);
+
+ /* We've already printed some text in output buffer, skip over it */
+ output = Diag_msg + strlen(Diag_msg);
+
+ while (word_count--) {
+ sprintf(output, "%08X ", *data++);
+ output += 9;
+ }
+
+ pr_debug("%s\n", Diag_msg);
+
+}
+
+#endif /* DIAG_DRV_IF */
+
+/* End of sah_hardware_interface.c */
diff --git a/drivers/mxc/security/sahara2/sah_interrupt_handler.c b/drivers/mxc/security/sahara2/sah_interrupt_handler.c
new file mode 100644
index 000000000000..959c3d8cf7bb
--- /dev/null
+++ b/drivers/mxc/security/sahara2/sah_interrupt_handler.c
@@ -0,0 +1,216 @@
+/*
+ * Copyright (C) 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+* @file sah_interrupt_handler.c
+*
+* @brief Provides a hardware interrupt handling mechanism for device driver.
+*
+* This file needs to be ported for a non-Linux OS.
+*
+* It gets a call at #sah_Intr_Init() during initialization.
+*
+* #sah_Intr_Top_Half() is intended to be the Interrupt Service Routine. It
+* calls a portable function in another file to process the Sahara status.
+*
+* #sah_Intr_Bottom_Half() is a 'background' task scheduled by the top half to
+* take care of the expensive tasks of the interrupt processing.
+*
+* The driver shutdown code calls #sah_Intr_Release().
+*
+*/
+
+#include <portable_os.h>
+
+/* SAHARA Includes */
+#include <sah_kernel.h>
+#include <sah_interrupt_handler.h>
+#include <sah_status_manager.h>
+#include <sah_hardware_interface.h>
+#include <sah_queue_manager.h>
+
+/*Enable this flag for debugging*/
+#if 0
+#define DIAG_DRV_INTERRUPT
+#endif
+
+#ifdef DIAG_DRV_INTERRUPT
+#include <diagnostic.h>
+#endif
+
+/*!
+ * Number of interrupts received. This value should only be updated during
+ * interrupt processing.
+ */
+uint32_t interrupt_count;
+
+#ifndef SAHARA_POLL_MODE
+
+#if !defined(LINUX_VERSION_CODE) || LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
+#define irqreturn_t void
+#define IRQ_HANDLED
+#define IRQ_RETVAL(x)
+#endif
+
+/* Internal Prototypes */
+static irqreturn_t sah_Intr_Top_Half(int irq, void *dev_id);
+
+#ifdef KERNEL_TEST
+extern void (*SAHARA_INT_PTR) (int, void *);
+#endif
+
+unsigned long reset_flag;
+static void sah_Intr_Bottom_Half(unsigned long reset_flag);
+
+/* This is the Bottom Half Task, (reset flag set to false) */
+DECLARE_TASKLET(BH_task, sah_Intr_Bottom_Half, (unsigned long)&reset_flag);
+
+/*! This is set by the Initialisation function */
+wait_queue_head_t *int_queue = NULL;
+
+/*!
+*******************************************************************************
+* This function registers the Top Half of the interrupt handler with the Kernel
+* and the SAHARA IRQ number.
+*
+* @brief SAHARA Interrupt Handler Initialisation
+*
+* @param wait_queue Pointer to the wait queue used by driver interface
+*
+* @return int A return of Zero indicates successful initialisation.
+*/
+/******************************************************************************
+*
+* CAUTION: NONE
+*
+* MODIFICATION HISTORY:
+*
+* Date Person Change
+* 30/07/2003 MW Initial Creation
+******************************************************************************/
+int sah_Intr_Init(wait_queue_head_t * wait_queue)
+{
+
+#ifdef DIAG_DRV_INTERRUPT
+ char err_string[200];
+#endif
+
+ int result;
+
+#ifdef KERNEL_TEST
+ SAHARA_INT_PTR = sah_Intr_Top_Half;
+#endif
+
+ /* Set queue used by the interrupt handler to match the driver interface */
+ int_queue = wait_queue;
+
+ /* Request use of the Interrupt line. */
+ result = request_irq(SAHARA_IRQ,
+ sah_Intr_Top_Half, 0, SAHARA_NAME, NULL);
+
+#ifdef DIAG_DRV_INTERRUPT
+ if (result != 0) {
+ sprintf(err_string, "Cannot use SAHARA interrupt line %d. "
+ "request_irq() return code is %i.", SAHARA_IRQ, result);
+ LOG_KDIAG(err_string);
+ } else {
+ sprintf(err_string,
+ "SAHARA driver registered for interrupt %d. ",
+ SAHARA_IRQ);
+ LOG_KDIAG(err_string);
+ }
+#endif
+
+ return result;
+}
+
+/*!
+*******************************************************************************
+* This function releases the Top Half of the interrupt handler. The driver will
+* not receive any more interrupts after calling this functions.
+*
+* @brief SAHARA Interrupt Handler Release
+*
+* @return void
+*/
+/******************************************************************************
+*
+* CAUTION: NONE
+*
+* MODIFICATION HISTORY:
+*
+* Date Person Change
+* 30/07/2003 MW Initial Creation
+******************************************************************************/
+void sah_Intr_Release(void)
+{
+ /* Release the Interrupt. */
+ free_irq(SAHARA_IRQ, NULL);
+}
+
+/*!
+*******************************************************************************
+* This function is the Top Half of the interrupt handler. It updates the
+* status of any finished descriptor chains and then tries to add any pending
+* requests into the hardware. It then queues the bottom half to complete
+* operations on the finished chains.
+*
+* @brief SAHARA Interrupt Handler Top Half
+*
+* @param irq Part of the kernel prototype.
+* @param dev_id Part of the kernel prototype.
+*
+* @return An IRQ_RETVAL() -- non-zero to that function means 'handled'
+*/
+static irqreturn_t sah_Intr_Top_Half(int irq, void *dev_id)
+{
+#if defined(DIAG_DRV_INTERRUPT) && defined(DIAG_DURING_INTERRUPT)
+ LOG_KDIAG("Top half of Sahara's interrupt handler called.");
+#endif
+
+ interrupt_count++;
+ reset_flag = sah_Handle_Interrupt(sah_HW_Read_Status());
+
+ /* Schedule the Bottom Half of the Interrupt. */
+ tasklet_schedule(&BH_task);
+
+ /* To get rid of the unused parameter warnings. */
+ irq = 0;
+ dev_id = NULL;
+ return IRQ_RETVAL(1);
+}
+
+/*!
+*******************************************************************************
+* This function is the Bottom Half of the interrupt handler. It calls
+* #sah_postprocess_queue() to complete the processing of the Descriptor Chains
+* which were finished by the hardware.
+*
+* @brief SAHARA Interrupt Handler Bottom Half
+*
+* @param data Part of the kernel prototype.
+*
+* @return void
+*/
+static void sah_Intr_Bottom_Half(unsigned long reset_flag)
+{
+#if defined(DIAG_DRV_INTERRUPT) && defined(DIAG_DURING_INTERRUPT)
+ LOG_KDIAG("Bottom half of Sahara's interrupt handler called.");
+#endif
+ sah_postprocess_queue(*(unsigned long *)reset_flag);
+
+ return;
+}
+
+/* end of sah_interrupt_handler.c */
+#endif /* ifndef SAHARA_POLL_MODE */
diff --git a/drivers/mxc/security/sahara2/sah_memory_mapper.c b/drivers/mxc/security/sahara2/sah_memory_mapper.c
new file mode 100644
index 000000000000..2e3b80b14873
--- /dev/null
+++ b/drivers/mxc/security/sahara2/sah_memory_mapper.c
@@ -0,0 +1,2356 @@
+/*
+ * Copyright (C) 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+* @file sah_memory_mapper.c
+*
+* @brief Re-creates SAHARA data structures in Kernel memory such that they are
+* suitable for DMA. Provides support for kernel API.
+*
+* This file needs to be ported.
+*
+* The memory mapper gets a call at #sah_Init_Mem_Map() during driver
+* initialization.
+*
+* The routine #sah_Copy_Descriptors() is used to bring descriptor chains from
+* user memory down to kernel memory, relink using physical addresses, and make
+* sure that all user data will be accessible by the Sahara DMA.
+* #sah_Destroy_Descriptors() does the inverse.
+*
+* The #sah_Alloc_Block(), #sah_Free_Block(), and #sah_Block_Add_Page() routines
+* implement a cache of free blocks used when allocating descriptors and links
+* within the kernel.
+*
+* The memory mapper gets a call at #sah_Stop_Mem_Map() during driver shutdown.
+*
+*/
+
+#include <sah_driver_common.h>
+#include <sah_kernel.h>
+#include <sah_queue_manager.h>
+#include <sah_memory_mapper.h>
+#ifdef FSL_HAVE_SCC2
+#include <linux/mxc_scc2_driver.h>
+#else
+#include <linux/mxc_scc_driver.h>
+#endif
+
+#if defined(DIAG_DRV_IF) || defined(DIAG_MEM) || defined(DO_DBG)
+#include <diagnostic.h>
+#include <sah_hardware_interface.h>
+#endif
+
+#include <linux/mm.h> /* get_user_pages() */
+#include <linux/pagemap.h>
+#include <linux/dmapool.h>
+
+#include <linux/slab.h>
+#include <linux/highmem.h>
+
+#if defined(DIAG_MEM) || defined(DIAG_DRV_IF)
+#define DIAG_MSG_SIZE 1024
+static char Diag_msg[DIAG_MSG_SIZE];
+#endif
+
+#ifdef LINUX_VERSION_CODE
+#define FLUSH_SPECIFIC_DATA_ONLY
+#else
+#define SELF_MANAGED_POOL
+#endif
+
+#if defined(LINUX_VERSION_CODE)
+EXPORT_SYMBOL(sah_Alloc_Link);
+EXPORT_SYMBOL(sah_Free_Link);
+EXPORT_SYMBOL(sah_Alloc_Descriptor);
+EXPORT_SYMBOL(sah_Free_Descriptor);
+EXPORT_SYMBOL(sah_Alloc_Head_Descriptor);
+EXPORT_SYMBOL(sah_Free_Head_Descriptor);
+EXPORT_SYMBOL(sah_Physicalise_Descriptors);
+EXPORT_SYMBOL(sah_DePhysicalise_Descriptors);
+#endif
+
+/* Determine if L2 cache support should be built in. */
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21))
+#ifdef CONFIG_OUTER_CACHE
+#define HAS_L2_CACHE
+#endif
+#else
+#ifdef CONFIG_CPU_CACHE_L210
+#define HAS_L2_CACHE
+#endif
+#endif
+
+/* Number of bytes the hardware uses out of sah_Link and sah_*Desc structs */
+#define SAH_HW_LINK_LEN 1
+#define SAH_HW_DESC_LEN 24
+
+/* Macros for Descriptors */
+#define SAH_LLO_BIT 0x01000000
+#define sah_Desc_Get_LLO(desc) (desc->header & SAH_LLO_BIT)
+#define sah_Desc_Set_Header(desc, h) (desc->header = (h))
+
+#define sah_Desc_Get_Next(desc) (desc->next)
+#define sah_Desc_Set_Next(desc, n) (desc->next = (n))
+
+#define sah_Desc_Get_Ptr1(desc) (desc->ptr1)
+#define sah_Desc_Get_Ptr2(desc) (desc->ptr2)
+#define sah_Desc_Set_Ptr1(desc,p1) (desc->ptr1 = (p1))
+#define sah_Desc_Set_Ptr2(desc,p2) (desc->ptr2 = (p2))
+
+#define sah_Desc_Get_Len1(desc) (desc->len1)
+#define sah_Desc_Get_Len2(desc) (desc->len2)
+#define sah_Desc_Set_Len1(desc,l1) (desc->len1 = (l1))
+#define sah_Desc_Set_Len2(desc,l2) (desc->len2 = (l2))
+
+/* Macros for Links */
+#define sah_Link_Get_Next(link) (link->next)
+#define sah_Link_Set_Next(link, n) (link->next = (n))
+
+#define sah_Link_Get_Data(link) (link->data)
+#define sah_Link_Set_Data(link,d) (link->data = (d))
+
+#define sah_Link_Get_Len(link) (link->len)
+#define sah_Link_Set_Len(link, l) (link->len = (l))
+
+#define sah_Link_Get_Flags(link) (link->flags)
+
+/* Memory block defines */
+/* Warning! This assumes that kernel version of sah_Link
+ * is larger than kernel version of sah_Desc.
+ */
+#define MEM_BLOCK_SIZE sizeof(sah_Link)
+
+/*! Structure for link/descriptor memory blocks in internal pool */
+typedef struct mem_block {
+ uint8_t data[MEM_BLOCK_SIZE]; /*!< the actual buffer area */
+ struct mem_block *next; /*!< next block when in free chain */
+ dma_addr_t dma_addr; /*!< physical address of @a data */
+} Mem_Block;
+
+#define MEM_BLOCK_ENTRIES (PAGE_SIZE / sizeof(Mem_Block))
+
+#define MEM_BIG_BLOCK_SIZE sizeof(sah_Head_Desc)
+
+/*! Structure for head descriptor memory blocks in internal pool */
+typedef struct mem_big_block {
+ uint8_t data[MEM_BIG_BLOCK_SIZE]; /*!< the actual buffer area */
+ struct mem_big_block *next; /*!< next block when in free chain */
+ uint32_t dma_addr; /*!< physical address of @a data */
+} Mem_Big_Block;
+
+#define MEM_BIG_BLOCK_ENTRIES (PAGE_SIZE / sizeof(Mem_Big_Block))
+
+/* Shared variables */
+
+/*!
+ * Lock to protect the memory chain composed of #block_free_head and
+ * #block_free_tail.
+ */
+static os_lock_t mem_lock;
+
+#ifndef SELF_MANAGED_POOL
+static struct dma_pool *big_dma_pool = NULL;
+static struct dma_pool *small_dma_pool = NULL;
+#endif
+
+#ifdef SELF_MANAGED_POOL
+/*!
+ * Memory block free pool - pointer to first block. Chain is protected by
+ * #mem_lock.
+ */
+static Mem_Block *block_free_head = NULL;
+/*!
+ * Memory block free pool - pointer to last block. Chain is protected by
+ * #mem_lock.
+ */
+static Mem_Block *block_free_tail = NULL;
+/*!
+ * Memory block free pool - pointer to first block. Chain is protected by
+ * #mem_lock.
+ */
+static Mem_Big_Block *big_block_free_head = NULL;
+/*!
+ * Memory block free pool - pointer to last block. Chain is protected by
+ * #mem_lock.
+a */
+static Mem_Big_Block *big_block_free_tail = NULL;
+#endif /* SELF_MANAGED_POOL */
+
+static Mem_Block *sah_Alloc_Block(void);
+static void sah_Free_Block(Mem_Block * block);
+static Mem_Big_Block *sah_Alloc_Big_Block(void);
+static void sah_Free_Big_Block(Mem_Big_Block * block);
+#ifdef SELF_MANAGED_POOL
+static void sah_Append_Block(Mem_Block * block);
+static void sah_Append_Big_Block(Mem_Big_Block * block);
+#endif /* SELF_MANAGED_POOL */
+
+/* Page context structure. Used by wire_user_memory and unwire_user_memory */
+typedef struct page_ctx_t {
+ uint32_t count;
+ struct page **local_pages;
+} page_ctx_t;
+
+/*!
+*******************************************************************************
+* Map and wire down a region of user memory.
+*
+*
+* @param address Userspace address of the memory to wire
+* @param length Length of the memory region to wire
+* @param page_ctx Page context, to be passed to unwire_user_memory
+*
+* @return (if successful) Kernel virtual address of the wired pages
+*/
+void *wire_user_memory(void *address, uint32_t length, void **page_ctx)
+{
+ void *kernel_black_addr = NULL;
+ int result = -1;
+ int page_index = 0;
+ page_ctx_t *page_context;
+ int nr_pages = 0;
+ unsigned long start_page;
+ fsl_shw_return_t status;
+
+ /* Determine the number of pages being used for this link */
+ nr_pages = (((unsigned long)(address) & ~PAGE_MASK)
+ + length + ~PAGE_MASK) >> PAGE_SHIFT;
+
+ start_page = (unsigned long)(address) & PAGE_MASK;
+
+ /* Allocate some memory to keep track of the wired user pages, so that
+ * they can be deallocated later. The block of memory will contain both
+ * the structure and the array of pages.
+ */
+ page_context = kmalloc(sizeof(page_ctx_t)
+ + nr_pages * sizeof(struct page *), GFP_KERNEL);
+
+ if (page_context == NULL) {
+ status = FSL_RETURN_NO_RESOURCE_S; /* no memory! */
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("kmalloc() failed.");
+#endif
+ return NULL;
+ }
+
+ /* Set the page pointer to point to the allocated region of memory */
+ page_context->local_pages = (void *)page_context + sizeof(page_ctx_t);
+
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG_ARGS("page_context at: %p, local_pages at: %p",
+ (void *)page_context,
+ (void *)(page_context->local_pages));
+#endif
+
+ /* Wire down the pages from user space */
+ down_read(&current->mm->mmap_sem);
+ result = get_user_pages(current, current->mm,
+ start_page, nr_pages, WRITE, 0 /* noforce */ ,
+ (page_context->local_pages), NULL);
+ up_read(&current->mm->mmap_sem);
+
+ if (result < nr_pages) {
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("get_user_pages() failed.");
+#endif
+ if (result > 0) {
+ for (page_index = 0; page_index < result; page_index++) {
+ page_cache_release((page_context->
+ local_pages[page_index]));
+ }
+
+ kfree(page_context);
+ }
+ return NULL;
+ }
+
+ kernel_black_addr = page_address(page_context->local_pages[0]) +
+ ((unsigned long)address & ~PAGE_MASK);
+
+ page_context->count = nr_pages;
+ *page_ctx = page_context;
+
+ return kernel_black_addr;
+}
+
+/*!
+*******************************************************************************
+* Release and unmap a region of user memory.
+*
+* @param page_ctx Page context from wire_user_memory
+*/
+void unwire_user_memory(void **page_ctx)
+{
+ int page_index = 0;
+ struct page_ctx_t *page_context = *page_ctx;
+
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG_ARGS("page_context at: %p, first page at:%p, count: %i",
+ (void *)page_context,
+ (void *)(page_context->local_pages),
+ page_context->count);
+#endif
+
+ if ((page_context != NULL) && (page_context->local_pages != NULL)) {
+ for (page_index = 0; page_index < page_context->count;
+ page_index++) {
+ page_cache_release(page_context->
+ local_pages[page_index]);
+ }
+
+ kfree(page_context);
+ *page_ctx = NULL;
+ }
+}
+
+/*!
+*******************************************************************************
+* Map some physical memory into a users memory space
+*
+* @param vma Memory structure to map to
+* @param physical_addr Physical address of the memory to be mapped in
+* @param size Size of the memory to map (bytes)
+*
+* @return
+*/
+os_error_code
+map_user_memory(struct vm_area_struct *vma, uint32_t physical_addr,
+ uint32_t size)
+{
+ os_error_code retval;
+
+ /* Map the acquired partition into the user's memory space */
+ vma->vm_end = vma->vm_start + size;
+
+ /* set cache policy to uncached so that each write of the UMID and
+ * permissions get directly to the SCC2 in order to engage it
+ * properly. Once the permissions have been written, it may be
+ * useful to provide a service for the user to request a different
+ * cache policy
+ */
+ vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
+
+ /* Make sure that the user cannot fork() a child which will inherit
+ * this mapping, as it creates a security hole. Likewise, do not
+ * allow the user to 'expand' his mapping beyond this partition.
+ */
+ vma->vm_flags |= VM_IO | VM_RESERVED | VM_DONTCOPY | VM_DONTEXPAND;
+
+ retval = remap_pfn_range(vma,
+ vma->vm_start,
+ __phys_to_pfn(physical_addr),
+ size, vma->vm_page_prot);
+
+ return retval;
+}
+
+/*!
+*******************************************************************************
+* Remove some memory from a user's memory space
+*
+* @param user_addr Userspace address of the memory to be unmapped
+* @param size Size of the memory to map (bytes)
+*
+* @return
+*/
+os_error_code unmap_user_memory(uint32_t user_addr, uint32_t size)
+{
+ os_error_code retval;
+ struct mm_struct *mm = current->mm;
+
+ /* Unmap the memory region (see sys_munmap in mmap.c) */
+ down_write(&mm->mmap_sem);
+ retval = do_munmap(mm, (unsigned long)user_addr, size);
+ up_write(&mm->mmap_sem);
+
+ return retval;
+}
+
+/*!
+*******************************************************************************
+* Free descriptor back to free pool
+*
+* @brief Free descriptor
+*
+* @param desc A descriptor allocated with sah_Alloc_Descriptor().
+*
+* @return none
+*
+*/
+void sah_Free_Descriptor(sah_Desc * desc)
+{
+ memset(desc, 0x45, sizeof(*desc));
+ sah_Free_Block((Mem_Block *) desc);
+}
+
+/*!
+*******************************************************************************
+* Free Head descriptor back to free pool
+*
+* @brief Free Head descriptor
+*
+* @param desc A Head descriptor allocated with sah_Alloc_Head_Descriptor().
+*
+* @return none
+*
+*/
+void sah_Free_Head_Descriptor(sah_Head_Desc * desc)
+{
+ memset(desc, 0x43, sizeof(*desc));
+ sah_Free_Big_Block((Mem_Big_Block *) desc);
+}
+
+/*!
+*******************************************************************************
+* Free link back to free pool
+*
+* @brief Free link
+*
+* @param link A link allocated with sah_Alloc_Link().
+*
+* @return none
+*
+*/
+void sah_Free_Link(sah_Link * link)
+{
+ memset(link, 0x41, sizeof(*link));
+ sah_Free_Block((Mem_Block *) link);
+}
+
+/*!
+*******************************************************************************
+* This function runs through a descriptor chain pointed to by a user-space
+* address. It duplicates each descriptor in Kernel space memory and calls
+* sah_Copy_Links() to handle any links attached to the descriptors. This
+* function cleans-up everything that it created in the case of a failure.
+*
+* @brief Kernel Descriptor Chain Copier
+*
+* @param fsl_shw_uco_t The user context to act under
+* @param user_head_desc A Head Descriptor pointer from user-space.
+*
+* @return sah_Head_Desc * - A virtual address of the first descriptor in the
+* chain.
+* @return NULL - If there was some error.
+*
+*/
+sah_Head_Desc *sah_Copy_Descriptors(fsl_shw_uco_t * user_ctx,
+ sah_Head_Desc * user_head_desc)
+{
+ sah_Desc *curr_desc = NULL;
+ sah_Desc *prev_desc = NULL;
+ sah_Desc *next_desc = NULL;
+ sah_Head_Desc *head_desc = NULL;
+ sah_Desc *user_desc = NULL;
+ unsigned long result;
+
+ /* Internal status variable to be used in this function */
+ fsl_shw_return_t status = FSL_RETURN_OK_S;
+ sah_Head_Desc *ret_val = NULL;
+
+ /* This will be set to True when we have finished processing our
+ * descriptor chain.
+ */
+ int drv_if_done = FALSE;
+ int is_this_the_head = TRUE;
+
+ do {
+ /* Allocate memory for this descriptor */
+ if (is_this_the_head) {
+ head_desc =
+ (sah_Head_Desc *) sah_Alloc_Head_Descriptor();
+
+#ifdef DIAG_MEM
+ sprintf(Diag_msg,
+ "Alloc_Head_Descriptor returned %p\n",
+ head_desc);
+ LOG_KDIAG(Diag_msg);
+#endif
+ if (head_desc == NULL) {
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG
+ ("sah_Alloc_Head_Descriptor() failed.");
+#endif
+ drv_if_done = TRUE;
+ status = FSL_RETURN_NO_RESOURCE_S;
+ } else {
+ void *virt_addr = head_desc->desc.virt_addr;
+ dma_addr_t dma_addr = head_desc->desc.dma_addr;
+
+ /* Copy the head descriptor from user-space */
+ /* Instead of copying the whole structure,
+ * unneeded bits at the end are left off.
+ * The user space version is missing virt/dma addrs, which
+ * means that the copy will be off for flags... */
+ result = copy_from_user(head_desc,
+ user_head_desc,
+ (sizeof(*head_desc) -
+ sizeof(head_desc->desc.
+ dma_addr) -
+ sizeof(head_desc->desc.
+ virt_addr) -
+ sizeof(head_desc->desc.
+ original_ptr1) -
+/* sizeof(head_desc->desc.original_ptr2) -
+ sizeof(head_desc->status) -
+ sizeof(head_desc->error_status) -
+ sizeof(head_desc->fault_address) -
+ sizeof(head_desc->current_dar) -
+ sizeof(head_desc->result) -
+ sizeof(head_desc->next) -
+ sizeof(head_desc->prev) -
+ sizeof(head_desc->user_desc) -
+*/ sizeof(head_desc->out1_ptr) -
+ sizeof(head_desc->
+ out2_ptr) -
+ sizeof(head_desc->
+ out_len)));
+ /* there really isn't a 'next' descriptor at this point, so
+ * set that pointer to NULL, but remember it for if/when there
+ * is a next */
+ next_desc = head_desc->desc.next;
+ head_desc->desc.next = NULL;
+
+ if (result != 0) {
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("copy_from_user() failed.");
+#endif
+ drv_if_done = TRUE;
+ status = FSL_RETURN_INTERNAL_ERROR_S;
+ /* when destroying the descriptor, skip these links.
+ * They've not been copied down, so don't exist */
+ head_desc->desc.ptr1 = NULL;
+ head_desc->desc.ptr2 = NULL;
+
+ } else {
+ /* The kernel DESC has five more words than user DESC, so
+ * the missing values are in the middle of the HEAD DESC,
+ * causing values after the missing ones to be at different
+ * offsets in kernel and user space.
+ *
+ * Patch up the problem by moving field two spots.
+ * This assumes sizeof(pointer) == sizeof(uint32_t).
+ * Note that 'user_info' is not needed, so not copied.
+ */
+ head_desc->user_ref =
+ (uint32_t) head_desc->desc.dma_addr;
+ head_desc->uco_flags =
+ (uint32_t) head_desc->desc.
+ original_ptr1;
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG_ARGS(
+ "User flags: %x; User Reference: %x",
+ head_desc->uco_flags,
+ head_desc->user_ref);
+#endif
+ /* These values were destroyed by the copy. */
+ head_desc->desc.virt_addr = virt_addr;
+ head_desc->desc.dma_addr = dma_addr;
+
+ /* ensure that the save descriptor chain bit is not set.
+ * the copy of the user space descriptor chain should
+ * always be deleted */
+ head_desc->uco_flags &=
+ ~FSL_UCO_SAVE_DESC_CHAIN;
+
+ curr_desc = (sah_Desc *) head_desc;
+ is_this_the_head = FALSE;
+ }
+ }
+ } else { /* not head */
+ curr_desc = sah_Alloc_Descriptor();
+#ifdef DIAG_MEM
+ LOG_KDIAG_ARGS("Alloc_Descriptor returned %p\n",
+ curr_desc);
+#endif
+ if (curr_desc == NULL) {
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("sah_Alloc_Descriptor() failed.");
+#endif
+ drv_if_done = TRUE;
+ status = FSL_RETURN_NO_RESOURCE_S;
+ } else {
+ /* need to update the previous descriptors' next field to
+ * pointer to the current descriptor. */
+ prev_desc->original_next = curr_desc;
+ prev_desc->next =
+ (sah_Desc *) curr_desc->dma_addr;
+
+ /* Copy the current descriptor from user-space */
+ /* The virtual address and DMA address part of the sah_Desc
+ * struct are not copied to user space */
+ result = copy_from_user(curr_desc, user_desc, (sizeof(sah_Desc) - sizeof(dma_addr_t) - /* dma_addr */
+ sizeof(uint32_t) - /* virt_addr */
+ sizeof(void *) - /* original_ptr1 */
+ sizeof(void *) - /* original_ptr2 */
+ sizeof(sah_Desc **))); /* original_next */
+ /* there really isn't a 'next' descriptor at this point, so
+ * set that pointer to NULL, but remember it for if/when there
+ * is a next */
+ next_desc = curr_desc->next;
+ curr_desc->next = NULL;
+ curr_desc->original_next = NULL;
+
+ if (result != 0) {
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("copy_from_user() failed.");
+#endif
+ drv_if_done = TRUE;
+ status = FSL_RETURN_INTERNAL_ERROR_S;
+ /* when destroying the descriptor chain, skip these links.
+ * They've not been copied down, so don't exist */
+ curr_desc->ptr1 = NULL;
+ curr_desc->ptr2 = NULL;
+ }
+ }
+ } /* end if (is_this_the_head) */
+
+ if (status == FSL_RETURN_OK_S) {
+ if (!(curr_desc->header & SAH_LLO_BIT)) {
+ /* One or both pointer fields being NULL is a valid
+ * configuration. */
+ if (curr_desc->ptr1 == NULL) {
+ curr_desc->original_ptr1 = NULL;
+ } else {
+ /* pointer fields point to sah_Link structures */
+ curr_desc->original_ptr1 =
+ sah_Copy_Links(user_ctx, curr_desc->ptr1);
+ if (curr_desc->original_ptr1 == NULL) {
+ /* This descriptor and any links created successfully
+ * are cleaned-up at the bottom of this function. */
+ drv_if_done = TRUE;
+ status =
+ FSL_RETURN_INTERNAL_ERROR_S;
+ /* mark that link 2 doesn't exist */
+ curr_desc->ptr2 = NULL;
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG
+ ("sah_Copy_Links() failed.");
+#endif
+ } else {
+ curr_desc->ptr1 = (void *)
+ ((sah_Link *) curr_desc->
+ original_ptr1)->dma_addr;
+ }
+ }
+
+ if (status == FSL_RETURN_OK_S) {
+ if (curr_desc->ptr2 == NULL) {
+ curr_desc->original_ptr2 = NULL;
+ } else {
+ /* pointer fields point to sah_Link structures */
+ curr_desc->original_ptr2 =
+ sah_Copy_Links(user_ctx, curr_desc->ptr2);
+ if (curr_desc->original_ptr2 ==
+ NULL) {
+ /* This descriptor and any links created
+ * successfully are cleaned-up at the bottom of
+ * this function. */
+ drv_if_done = TRUE;
+ status =
+ FSL_RETURN_INTERNAL_ERROR_S;
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG
+ ("sah_Copy_Links() failed.");
+#endif
+ } else {
+ curr_desc->ptr2 =
+ (void
+ *)(((sah_Link *)
+ curr_desc->
+ original_ptr2)
+ ->dma_addr);
+ }
+ }
+ }
+ } else {
+ /* Pointer fields point directly to user buffers. We don't
+ * support this mode.
+ */
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG
+ ("The LLO bit in the Descriptor Header field was "
+ "set. This an invalid configuration.");
+#endif
+ drv_if_done = TRUE;
+ status = FSL_RETURN_INTERNAL_ERROR_S;
+ }
+ }
+
+ if (status == FSL_RETURN_OK_S) {
+ user_desc = next_desc;
+ prev_desc = curr_desc;
+ if (user_desc == NULL) {
+ /* We have reached the end our our descriptor chain */
+ drv_if_done = TRUE;
+ }
+ }
+
+ } while (drv_if_done == FALSE);
+
+ if (status != FSL_RETURN_OK_S) {
+ /* Clean-up if failed */
+ if (head_desc != NULL) {
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("Error! Calling destroy descriptors!\n");
+#endif
+ sah_Destroy_Descriptors(head_desc);
+ }
+ ret_val = NULL;
+ } else {
+ /* Flush the caches */
+#ifndef FLUSH_SPECIFIC_DATA_ONLY
+ os_flush_cache_all();
+#endif
+
+ /* Success. Return the DMA'able head descriptor. */
+ ret_val = head_desc;
+
+ }
+
+ return ret_val;
+} /* sah_Copy_Descriptors() */
+
+/*!
+*******************************************************************************
+* This function runs through a sah_Link chain pointed to by a kernel-space
+* address. It computes the physical address for each pointer, and converts
+* the chain to use these physical addresses.
+*
+******
+* This function needs to return some indication that the chain could not be
+* converted. It also needs to back out any conversion already taken place on
+* this chain of links.
+*
+* Then, of course, sah_Physicalise_Descriptors() will need to recognize that
+* an error occured, and then be able to back out any physicalization of the
+* chain which had taken place up to that point!
+******
+*
+* @brief Convert kernel Link chain
+*
+* @param first_link A sah_Link pointer from kernel space; must not be
+* NULL, so error case can be distinguished.
+*
+* @return sah_Link * A dma'able address of the first descriptor in the
+* chain.
+* @return NULL If Link chain could not be physicalised, i.e. ERROR
+*
+*/
+sah_Link *sah_Physicalise_Links(sah_Link * first_link)
+{
+ sah_Link *link = first_link;
+
+ while (link != NULL) {
+#ifdef DO_DBG
+ sah_Dump_Words("Link", (unsigned *)link, link->dma_addr, 3);
+#endif
+ link->vm_info = NULL;
+
+ /* need to retrieve stored key? */
+ if (link->flags & SAH_STORED_KEY_INFO) {
+ uint32_t max_len = 0; /* max slot length */
+ fsl_shw_return_t ret_status;
+
+ /* get length and physical address of stored key */
+ ret_status = system_keystore_get_slot_info(link->ownerid, link->slot, (uint32_t *) & link->data, /* RED key address */
+ &max_len);
+ if ((ret_status != FSL_RETURN_OK_S) || (link->len > max_len)) {
+ /* trying to illegally/incorrectly access a key. Cause the
+ * error status register to show a Link Length Error by
+ * putting a zero in the links length. */
+ link->len = 0; /* Cause error. Somebody is up to no good. */
+ }
+ } else if (link->flags & SAH_IN_USER_KEYSTORE) {
+
+#ifdef FSL_HAVE_SCC2
+ /* The data field points to the virtual address of the key. Convert
+ * this to a physical address by modifying the address based
+ * on where the secure memory was mapped to the kernel. Note: In
+ * kernel mode, no attempt is made to track or control who owns what
+ * memory partition.
+ */
+ link->data = (uint8_t *) scc_virt_to_phys(link->data);
+
+ /* Do bounds checking to ensure that the user is not overstepping
+ * the bounds of their partition. This is a simple implementation
+ * that assumes the user only owns one partition. It only checks
+ * to see if the address of the last byte of data steps over a
+ * page boundary.
+ */
+
+#ifdef DO_DBG
+ LOG_KDIAG_ARGS("start page: %08x, end page: %08x"
+ "first addr: %p, last addr: %p, len; %i",
+ ((uint32_t) (link->data) >> PAGE_SHIFT),
+ (((uint32_t) link->data +
+ link->len) >> PAGE_SHIFT), link->data,
+ link->data + link->len, link->len);
+#endif
+
+ if ((((uint32_t) link->data +
+ link->len) >> PAGE_SHIFT) !=
+ ((uint32_t) link->data >> PAGE_SHIFT)) {
+ link->len = 0; /* Cause error. Somebody is up to no good. */
+ }
+#else /* FSL_HAVE_SCC2 */
+
+ /* User keystores are not valid on non-SCC2 platforms */
+ link->len = 0; /* Cause error. Somebody is up to no good. */
+
+#endif /* FSL_HAVE_SCC2 */
+
+ } else {
+ if (!(link->flags & SAH_PREPHYS_DATA)) {
+ link->original_data = link->data;
+
+ /* All pointers are virtual right now */
+ link->data = (void *)os_pa(link->data);
+#ifdef DO_DBG
+ os_printk("%sput: %p (%d)\n",
+ (link->
+ flags & SAH_OUTPUT_LINK) ? "out" :
+ "in", link->data, link->len);
+#endif
+
+ if (link->flags & SAH_OUTPUT_LINK) {
+ /* clean and invalidate */
+ os_cache_flush_range(link->
+ original_data,
+ link->len);
+ } else {
+ os_cache_clean_range(link->original_data,
+ link->len);
+ }
+ } /* not prephys */
+ } /* else not key reference */
+
+#if defined(NO_OUTPUT_1K_CROSSING) || defined(NO_1K_CROSSING)
+ if (
+#ifdef NO_OUTPUT_1K_CROSSING
+ /* Insert extra link if 1k boundary on output pointer
+ * crossed not at an 8-word boundary */
+ (link->flags & SAH_OUTPUT_LINK) &&
+ (((uint32_t) link->data % 32) != 0) &&
+#endif
+ ((((uint32_t) link->data & 1023) + link->len) >
+ 1024)) {
+ uint32_t full_length = link->len;
+ sah_Link *new_link = sah_Alloc_Link();
+ link->len = 1024 - ((uint32_t) link->data % 1024);
+ new_link->len = full_length - link->len;
+ new_link->data = link->data + link->len;
+ new_link->original_data =
+ link->original_data + link->len;
+ new_link->flags = link->flags & ~(SAH_OWNS_LINK_DATA);
+ new_link->flags |= SAH_LINK_INSERTED_LINK;
+ new_link->next = link->next;
+
+ link->next = (sah_Link *) new_link->dma_addr;
+ link->original_next = new_link;
+ link = new_link;
+ }
+#endif /* ALLOW_OUTPUT_1K_CROSSING */
+
+ link->original_next = link->next;
+ if (link->next != NULL) {
+ link->next = (sah_Link *) link->next->dma_addr;
+ }
+#ifdef DO_DBG
+ sah_Dump_Words("Link", link, link->dma_addr, 3);
+#endif
+
+ link = link->original_next;
+ }
+
+ return (sah_Link *) first_link->dma_addr;
+} /* sah_Physicalise_Links */
+
+/*!
+ * Run through descriptors and links created by KM-API and set the
+ * dma addresses and 'do not free' flags.
+ *
+ * @param first_desc KERNEL VIRTUAL address of first descriptor in chain.
+ *
+ * Warning! This ONLY works without LLO flags in headers!!!
+ *
+ * @return Virtual address of @a first_desc.
+ * @return NULL if Descriptor Chain could not be physicalised
+ */
+sah_Head_Desc *sah_Physicalise_Descriptors(sah_Head_Desc * first_desc)
+{
+ sah_Desc *desc = &first_desc->desc;
+
+ if (!(first_desc->uco_flags & FSL_UCO_CHAIN_PREPHYSICALIZED)) {
+ while (desc != NULL) {
+ sah_Desc *next_desc;
+
+#ifdef DO_DBG
+
+ sah_Dump_Words("Desc", (unsigned *)desc, desc->dma_addr, 6);
+#endif
+
+ desc->original_ptr1 = desc->ptr1;
+ if (desc->ptr1 != NULL) {
+ if ((desc->ptr1 =
+ sah_Physicalise_Links(desc->ptr1)) ==
+ NULL) {
+ /* Clean up ... */
+ sah_DePhysicalise_Descriptors
+ (first_desc);
+ first_desc = NULL;
+ break;
+ }
+ }
+ desc->original_ptr2 = desc->ptr2;
+ if (desc->ptr2 != NULL) {
+ if ((desc->ptr2 =
+ sah_Physicalise_Links(desc->ptr2)) ==
+ NULL) {
+ /* Clean up ... */
+ sah_DePhysicalise_Descriptors
+ (first_desc);
+ first_desc = NULL;
+ break;
+ }
+ }
+
+ desc->original_next = desc->next;
+ next_desc = desc->next; /* save for bottom of while loop */
+ if (desc->next != NULL) {
+ desc->next = (sah_Desc *) desc->next->dma_addr;
+ }
+
+ desc = next_desc;
+ }
+ }
+ /* not prephysicalized */
+#ifdef DO_DBG
+ os_printk("Physicalise finished\n");
+#endif
+
+ return first_desc;
+} /* sah_Physicalise_Descriptors() */
+
+/*!
+*******************************************************************************
+* This function runs through a sah_Link chain pointed to by a physical address.
+* It computes the virtual address for each pointer
+*
+* @brief Convert physical Link chain
+*
+* @param first_link A kernel address of a sah_Link
+*
+* @return sah_Link * A kernal address for the link chain of @c first_link
+* @return NULL If there was some error.
+*
+* @post All links will be chained together by original virtual addresses,
+* data pointers will point to virtual addresses. Appropriate cache
+* lines will be flushed, memory unwired, etc.
+*/
+sah_Link *sah_DePhysicalise_Links(sah_Link * first_link)
+{
+ sah_Link *link = first_link;
+ sah_Link *prev_link = NULL;
+
+ /* Loop on virtual link pointer */
+ while (link != NULL) {
+
+#ifdef DO_DBG
+ sah_Dump_Words("Link", (unsigned *)link, link->dma_addr, 3);
+#endif
+
+ /* if this references stored keys, don't want to dephysicalize them */
+ if (!(link->flags & SAH_STORED_KEY_INFO)
+ && !(link->flags & SAH_PREPHYS_DATA)
+ && !(link->flags & SAH_IN_USER_KEYSTORE)) {
+
+ /* */
+ if (link->flags & SAH_OUTPUT_LINK) {
+ os_cache_inv_range(link->original_data,
+ link->len);
+ }
+
+ /* determine if there is a page in user space associated with this
+ * link */
+ if (link->vm_info != NULL) {
+ /* check that this isn't reserved and contains output */
+ if (!PageReserved(link->vm_info) &&
+ (link->flags & SAH_OUTPUT_LINK)) {
+
+ /* Mark to force page eventually to backing store */
+ SetPageDirty(link->vm_info);
+ }
+
+ /* Untie this page from physical memory */
+ page_cache_release(link->vm_info);
+ } else {
+ /* kernel-mode data */
+#ifdef DO_DBG
+ os_printk("%sput: %p (%d)\n",
+ (link->
+ flags & SAH_OUTPUT_LINK) ? "out" :
+ "in", link->original_data, link->len);
+#endif
+ }
+ link->data = link->original_data;
+ }
+#ifndef ALLOW_OUTPUT_1K_CROSSING
+ if (link->flags & SAH_LINK_INSERTED_LINK) {
+ /* Reconsolidate data by merging this link with previous */
+ prev_link->len += link->len;
+ prev_link->next = link->next;
+ prev_link->original_next = link->original_next;
+ sah_Free_Link(link);
+ link = prev_link;
+
+ }
+#endif
+
+ if (link->next != NULL) {
+ link->next = link->original_next;
+ }
+ prev_link = link;
+ link = link->next;
+ }
+
+ return first_link;
+} /* sah_DePhysicalise_Links() */
+
+/*!
+ * Run through descriptors and links that have been Physicalised
+ * (sah_Physicalise_Descriptors function) and set the dma addresses back
+ * to KM virtual addresses
+ *
+ * @param first_desc Kernel virtual address of first descriptor in chain.
+ *
+ * Warning! This ONLY works without LLO flags in headers!!!
+ */
+sah_Head_Desc *sah_DePhysicalise_Descriptors(sah_Head_Desc * first_desc)
+{
+ sah_Desc *desc = &first_desc->desc;
+
+ if (!(first_desc->uco_flags & FSL_UCO_CHAIN_PREPHYSICALIZED)) {
+ while (desc != NULL) {
+#ifdef DO_DBG
+ sah_Dump_Words("Desc", (unsigned *)desc, desc->dma_addr, 6);
+#endif
+
+ if (desc->ptr1 != NULL) {
+ desc->ptr1 =
+ sah_DePhysicalise_Links(desc->
+ original_ptr1);
+ }
+ if (desc->ptr2 != NULL) {
+ desc->ptr2 =
+ sah_DePhysicalise_Links(desc->
+ original_ptr2);
+ }
+ if (desc->next != NULL) {
+ desc->next = desc->original_next;
+ }
+ desc = desc->next;
+ }
+ }
+ /* not prephysicalized */
+ return first_desc;
+} /* sah_DePhysicalise_Descriptors() */
+
+/*!
+*******************************************************************************
+* This walks through a SAHARA descriptor chain and free()'s everything
+* that is not NULL. Finally it also unmaps all of the physical memory and
+* frees the kiobuf_list Queue.
+*
+* @brief Kernel Descriptor Chain Destructor
+*
+* @param head_desc A Descriptor pointer from kernel-space.
+*
+* @return void
+*
+*/
+void sah_Free_Chained_Descriptors(sah_Head_Desc * head_desc)
+{
+ sah_Desc *desc = NULL;
+ sah_Desc *next_desc = NULL;
+ int this_is_head = 1;
+
+ desc = &head_desc->desc;
+
+ while (desc != NULL) {
+
+ sah_Free_Chained_Links(desc->ptr1);
+ sah_Free_Chained_Links(desc->ptr2);
+
+ /* Get a bus pointer to the next Descriptor */
+ next_desc = desc->next;
+
+ /* Zero the header and Length fields for security reasons. */
+ desc->header = 0;
+ desc->len1 = 0;
+ desc->len2 = 0;
+
+ if (this_is_head) {
+ sah_Free_Head_Descriptor(head_desc);
+ this_is_head = 0;
+#ifdef DIAG_MEM
+ sprintf(Diag_msg, "Free_Head_Descriptor: %p\n",
+ head_desc);
+ LOG_KDIAG(Diag_msg);
+#endif
+ } else {
+ /* free this descriptor */
+ sah_Free_Descriptor(desc);
+#ifdef DIAG_MEM
+ sprintf(Diag_msg, "Free_Descriptor: %p\n", desc);
+ LOG_KDIAG(Diag_msg);
+#endif
+ }
+
+ /* Look at the next Descriptor */
+ desc = next_desc;
+ }
+} /* sah_Free_Chained_Descriptors() */
+
+/*!
+*******************************************************************************
+* This walks through a SAHARA link chain and frees everything that is
+* not NULL, excluding user-space buffers.
+*
+* @brief Kernel Link Chain Destructor
+*
+* @param link A Link pointer from kernel-space. This is in bus address
+* space.
+*
+* @return void
+*
+*/
+void sah_Free_Chained_Links(sah_Link * link)
+{
+ sah_Link *next_link = NULL;
+
+ while (link != NULL) {
+ /* Get a bus pointer to the next Link */
+ next_link = link->next;
+
+ /* Zero some fields for security reasons. */
+ link->data = NULL;
+ link->len = 0;
+ link->ownerid = 0;
+
+ /* Free this Link */
+#ifdef DIAG_MEM
+ sprintf(Diag_msg, "Free_Link: %p(->%p)\n", link, link->next);
+ LOG_KDIAG(Diag_msg);
+#endif
+ sah_Free_Link(link);
+
+ /* Move on to the next Link */
+ link = next_link;
+ }
+}
+
+/*!
+*******************************************************************************
+* This function runs through a link chain pointed to by a user-space
+* address. It makes a temporary kernel-space copy of each link in the
+* chain and calls sah_Make_Links() to create a set of kernel-side links
+* to replace it.
+*
+* @brief Kernel Link Chain Copier
+*
+* @param ptr A link pointer from user-space.
+*
+* @return sah_Link * - The virtual address of the first link in the
+* chain.
+* @return NULL - If there was some error.
+*/
+sah_Link *sah_Copy_Links(fsl_shw_uco_t * user_ctx, sah_Link * ptr)
+{
+ sah_Link *head_link = NULL;
+ sah_Link *new_head_link = NULL;
+ sah_Link *new_tail_link = NULL;
+ sah_Link *prev_tail_link = NULL;
+ sah_Link *user_link = ptr;
+ sah_Link link_copy;
+ int link_data_length = 0;
+
+ /* Internal status variable to be used in this function */
+ fsl_shw_return_t status = FSL_RETURN_OK_S;
+ sah_Link *ret_val = NULL;
+
+ /* This will be set to True when we have finished processing our
+ * link chain. */
+ int drv_if_done = FALSE;
+ int is_this_the_head = TRUE;
+ int result;
+
+ /* transfer all links, on this link chain, from user space */
+ while (drv_if_done == FALSE) {
+ /* Copy the current link from user-space. The virtual address, DMA
+ * address, and vm_info fields of the sah_Link struct are not part
+ * of the user-space structure. They must be the last elements and
+ * should not be copied. */
+ result = copy_from_user(&link_copy,
+ user_link, (sizeof(sah_Link) -
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0))
+ sizeof(struct page *) - /* vm_info */
+#endif
+ sizeof(dma_addr_t) - /* dma_addr */
+ sizeof(uint32_t) - /* virt_addr */
+ sizeof(uint8_t *) - /* original_data */
+ sizeof(sah_Link *))); /* original_next */
+
+ if (result != 0) {
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("copy_from_user() failed.");
+#endif
+ drv_if_done = TRUE;
+ status = FSL_RETURN_INTERNAL_ERROR_S;
+ }
+
+ if (status == FSL_RETURN_OK_S) {
+ /* This will create new links which can be used to replace tmp_link
+ * in the chain. This will return a new head and tail link. */
+ link_data_length = link_data_length + link_copy.len;
+ new_head_link =
+ sah_Make_Links(user_ctx, &link_copy, &new_tail_link);
+
+ if (new_head_link == NULL) {
+ /* If we ran out of memory or a user pointer was invalid */
+ drv_if_done = TRUE;
+ status = FSL_RETURN_INTERNAL_ERROR_S;
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("sah_Make_Links() failed.");
+#endif
+ } else {
+ if (is_this_the_head == TRUE) {
+ /* Keep a reference to the head link */
+ head_link = new_head_link;
+ is_this_the_head = FALSE;
+ } else {
+ /* Need to update the previous links' next field to point
+ * to the current link. */
+ prev_tail_link->next =
+ (void *)new_head_link->dma_addr;
+ prev_tail_link->original_next =
+ new_head_link;
+ }
+ }
+ }
+
+ if (status == FSL_RETURN_OK_S) {
+ /* Get to the next link in the chain. */
+ user_link = link_copy.next;
+ prev_tail_link = new_tail_link;
+
+ /* Check if the end of the link chain was reached (TRUE) or if
+ * there is another linked to this one (FALSE) */
+ drv_if_done = (user_link == NULL) ? TRUE : FALSE;
+ }
+ } /* end while */
+
+ if (status != FSL_RETURN_OK_S) {
+ ret_val = NULL;
+ /* There could be clean-up to do here because we may have made some
+ * successful iterations through the while loop and as a result, the
+ * links created by sah_Make_Links() need to be destroyed.
+ */
+ if (head_link != NULL) {
+ /* Failed somewhere in the while loop and need to clean-up. */
+ sah_Destroy_Links(head_link);
+ }
+ } else {
+ /* Success. Return the head link. */
+ ret_val = head_link;
+ }
+
+ return ret_val;
+} /* sah_Copy_Links() */
+
+/*!
+*******************************************************************************
+* This function takes an input link pointed to by a user-space address
+* and returns a chain of links that span the physical pages pointed
+* to by the input link.
+*
+* @brief Kernel Link Chain Constructor
+*
+* @param ptr A link pointer from user-space.
+* @param tail The address of a link pointer. This is used to return
+* the tail link created by this function.
+*
+* @return sah_Link * - A virtual address of the first link in the
+* chain.
+* @return NULL - If there was some error.
+*
+*/
+sah_Link *sah_Make_Links(fsl_shw_uco_t * user_ctx,
+ sah_Link * ptr, sah_Link ** tail)
+{
+ int result = -1;
+ int page_index = 0;
+ fsl_shw_return_t status = FSL_RETURN_OK_S;
+ int is_this_the_head = TRUE;
+ void *buffer_start = NULL;
+ sah_Link *link = NULL;
+ sah_Link *prev_link = NULL;
+ sah_Link *head_link = NULL;
+ sah_Link *ret_val = NULL;
+ int buffer_length = 0;
+ struct page **local_pages = NULL;
+ int nr_pages = 0;
+ int write = (sah_Link_Get_Flags(ptr) & SAH_OUTPUT_LINK) ? WRITE : READ;
+ dma_addr_t phys_addr;
+
+ /* need to retrieve stored key? */
+ if (ptr->flags & SAH_STORED_KEY_INFO) {
+ fsl_shw_return_t ret_status;
+
+ /* allocate space for this link */
+ link = sah_Alloc_Link();
+#ifdef DIAG_MEM
+ sprintf(Diag_msg, "Alloc_Link returned %p/%p\n", link,
+ (void *)link->dma_addr);
+ LOG_KDIAG(Diag_msg);
+#endif
+
+ if (link == NULL) {
+ status = FSL_RETURN_NO_RESOURCE_S;
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("sah_Alloc_Link() failed!");
+#endif
+ return link;
+ } else {
+ uint32_t max_len = 0; /* max slot length */
+
+ /* get length and physical address of stored key */
+ ret_status = system_keystore_get_slot_info(ptr->ownerid, ptr->slot, (uint32_t *) & link->data, /* RED key address */
+ &max_len);
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG_ARGS
+ ("ret_status==SCC_RET_OK? %s. slot: %i. data: %p"
+ ". len: %i, key length: %i",
+ (ret_status == FSL_RETURN_OK_S ? "yes" : "no"),
+ ptr->slot, link->data, max_len, ptr->len);
+#endif
+
+ if ((ret_status == FSL_RETURN_OK_S) && (ptr->len <= max_len)) {
+ /* finish populating the link */
+ link->len = ptr->len;
+ link->flags = ptr->flags & ~SAH_PREPHYS_DATA;
+ *tail = link;
+ } else {
+#ifdef DIAG_DRV_IF
+ if (ret_status == FSL_RETURN_OK_S) {
+ LOG_KDIAG
+ ("SCC sah_Link key slot reference is too long");
+ } else {
+ LOG_KDIAG
+ ("SCC sah_Link slot slot reference is invalid");
+ }
+#endif
+ sah_Free_Link(link);
+ status = FSL_RETURN_INTERNAL_ERROR_S;
+ return NULL;
+ }
+ return link;
+ }
+ } else if (ptr->flags & SAH_IN_USER_KEYSTORE) {
+
+#ifdef FSL_HAVE_SCC2
+
+ void *kernel_base;
+
+ /* allocate space for this link */
+ link = sah_Alloc_Link();
+#ifdef DIAG_MEM
+ sprintf(Diag_msg, "Alloc_Link returned %p/%p\n", link,
+ (void *)link->dma_addr);
+ LOG_KDIAG(Diag_msg);
+#endif /* DIAG_MEM */
+
+ if (link == NULL) {
+ status = FSL_RETURN_NO_RESOURCE_S;
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("sah_Alloc_Link() failed!");
+#endif
+ return link;
+ } else {
+ /* link->data points to the virtual address of the key data, however
+ * this memory does not need to be locked down.
+ */
+ kernel_base = lookup_user_partition(user_ctx,
+ (uint32_t) ptr->
+ data & PAGE_MASK);
+
+ link->data = (uint8_t *) scc_virt_to_phys(kernel_base +
+ ((unsigned
+ long)ptr->
+ data &
+ ~PAGE_MASK));
+
+ /* Do bounds checking to ensure that the user is not overstepping
+ * the bounds of their partition. This is a simple implementation
+ * that assumes the user only owns one partition. It only checks
+ * to see if the address of the last byte of data steps over a
+ * page boundary.
+ */
+ if ((kernel_base != NULL) &&
+ ((((uint32_t) link->data +
+ link->len) >> PAGE_SHIFT) ==
+ ((uint32_t) link->data >> PAGE_SHIFT))) {
+ /* finish populating the link */
+ link->len = ptr->len;
+ link->flags = ptr->flags & ~SAH_PREPHYS_DATA;
+ *tail = link;
+ } else {
+#ifdef DIAG_DRV_IF
+ if (kernel_base != NULL) {
+ LOG_KDIAG
+ ("SCC sah_Link key slot reference is too long");
+ } else {
+ LOG_KDIAG
+ ("SCC sah_Link slot slot reference is invalid");
+ }
+#endif
+ sah_Free_Link(link);
+ status = FSL_RETURN_INTERNAL_ERROR_S;
+ return NULL;
+ }
+ return link;
+ }
+
+#else /* FSL_HAVE_SCC2 */
+
+ return NULL;
+
+#endif /* FSL_HAVE_SCC2 */
+ }
+
+ if (ptr->data == NULL) {
+ /* The user buffer must not be NULL because map_user_kiobuf() cannot
+ * handle NULL pointer input.
+ */
+ status = FSL_RETURN_BAD_DATA_LENGTH_S;
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("sah_Link data pointer is NULL.");
+#endif
+ }
+
+ if (status == FSL_RETURN_OK_S) {
+ unsigned long start_page = (unsigned long)ptr->data & PAGE_MASK;
+
+ /* determine number of pages being used for this link */
+ nr_pages = (((unsigned long)(ptr->data) & ~PAGE_MASK)
+ + ptr->len + ~PAGE_MASK) >> PAGE_SHIFT;
+
+ /* ptr contains all the 'user space' information, add the pages
+ * to it also just so everything is in one place */
+ local_pages =
+ kmalloc(nr_pages * sizeof(struct page *), GFP_KERNEL);
+
+ if (local_pages == NULL) {
+ status = FSL_RETURN_NO_RESOURCE_S; /* no memory! */
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("kmalloc() failed.");
+#endif
+ } else {
+ /* get the actual pages being used in 'user space' */
+
+ down_read(&current->mm->mmap_sem);
+ result = get_user_pages(current, current->mm,
+ start_page, nr_pages,
+ write, 0 /* noforce */ ,
+ local_pages, NULL);
+ up_read(&current->mm->mmap_sem);
+
+ if (result < nr_pages) {
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("get_user_pages() failed.");
+#endif
+ if (result > 0) {
+ for (page_index = 0;
+ page_index < result;
+ page_index++) {
+ page_cache_release(local_pages
+ [page_index]);
+ }
+ }
+ status = FSL_RETURN_INTERNAL_ERROR_S;
+ }
+ }
+ }
+
+ /* Now we can walk through the list of pages in the buffer */
+ if (status == FSL_RETURN_OK_S) {
+
+#if defined(FLUSH_SPECIFIC_DATA_ONLY) && !defined(HAS_L2_CACHE)
+ /*
+ * Now that pages are wired, clear user data from cache lines. When
+ * there is just an L1 cache, clean based on user virtual for ARM.
+ */
+ if (write == WRITE) {
+ os_cache_flush_range(ptr->data, ptr->len);
+ } else {
+ os_cache_clean_range(ptr->data, ptr->len);
+ }
+#endif
+
+ for (page_index = 0; page_index < nr_pages; page_index++) {
+ /* Allocate a new link structure */
+ link = sah_Alloc_Link();
+#ifdef DIAG_MEM
+ sprintf(Diag_msg, "Alloc_Link returned %p/%p\n", link,
+ (void *)link->dma_addr);
+ LOG_KDIAG(Diag_msg);
+#endif
+ if (link == NULL) {
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("sah_Alloc_Link() failed.");
+#endif
+ status = FSL_RETURN_NO_RESOURCE_S;
+
+ /* need to free the rest of the pages. Destroy_Links will take
+ * care of the ones already assigned to a link */
+ for (; page_index < nr_pages; page_index++) {
+ page_cache_release(local_pages
+ [page_index]);
+ }
+ break; /* exit 'for page_index' loop */
+ }
+
+ if (status == FSL_RETURN_OK_S) {
+ if (is_this_the_head == TRUE) {
+ /* keep a reference to the head link */
+ head_link = link;
+ /* remember that we have seen the head link */
+ is_this_the_head = FALSE;
+ } else {
+ /* If this is not the head link then set the previous
+ * link's next pointer to point to this link */
+ prev_link->original_next = link;
+ prev_link->next =
+ (sah_Link *) link->dma_addr;
+ }
+
+ buffer_start =
+ page_address(local_pages[page_index]);
+
+ phys_addr =
+ page_to_phys(local_pages[page_index]);
+
+ if (page_index == 0) {
+ /* If this is the first page, there might be an
+ * offset. We need to increment the address by this offset
+ * so we don't just get the start of the page.
+ */
+ buffer_start +=
+ (unsigned long)
+ sah_Link_Get_Data(ptr)
+ & ~PAGE_MASK;
+ phys_addr +=
+ (unsigned long)
+ sah_Link_Get_Data(ptr)
+ & ~PAGE_MASK;
+ buffer_length = PAGE_SIZE
+ -
+ ((unsigned long)
+ sah_Link_Get_Data(ptr)
+ & ~PAGE_MASK);
+ } else {
+ buffer_length = PAGE_SIZE;
+ }
+
+ if (page_index == nr_pages - 1) {
+ /* if this is the last page, we need to adjust
+ * the buffer_length to account for the last page being
+ * partially used.
+ */
+ buffer_length -=
+ nr_pages * PAGE_SIZE -
+ sah_Link_Get_Len(ptr) -
+ ((unsigned long)
+ sah_Link_Get_Data(ptr) &
+ ~PAGE_MASK);
+ }
+#if defined(FLUSH_SPECIFIC_DATA_ONLY) && defined(HAS_L2_CACHE)
+ /*
+ * When there is an L2 cache, clean based on kernel
+ * virtual..
+ */
+ if (write == WRITE) {
+ os_cache_flush_range(buffer_start,
+ buffer_length);
+ } else {
+ os_cache_clean_range(buffer_start,
+ buffer_length);
+ }
+#endif
+
+ /* Fill in link information */
+ link->len = buffer_length;
+#if !defined(HAS_L2_CACHE)
+ /* use original virtual */
+ link->original_data = ptr->data;
+#else
+ /* use kernel virtual */
+ link->original_data = buffer_start;
+#endif
+ link->data = (void *)phys_addr;
+ link->flags = ptr->flags & ~SAH_PREPHYS_DATA;
+ link->vm_info = local_pages[page_index];
+ prev_link = link;
+
+#if defined(NO_OUTPUT_1K_CROSSING) || defined(NO_1K_CROSSING)
+ if (
+#ifdef NO_OUTPUT_1K_CROSSING
+ /* Insert extra link if 1k boundary on output pointer
+ * crossed not at an 8-word boundary */
+ (link->flags & SAH_OUTPUT_LINK) &&
+ (((uint32_t) buffer_start % 32) != 0)
+ &&
+#endif
+ ((((uint32_t) buffer_start & 1023) +
+ buffer_length) > 1024)) {
+
+ /* Shorten current link to 1k boundary */
+ link->len =
+ 1024 -
+ ((uint32_t) buffer_start % 1024);
+
+ /* Get new link to follow it */
+ link = sah_Alloc_Link();
+ prev_link->len =
+ 1024 -
+ ((uint32_t) buffer_start % 1024);
+ prev_link->original_next = link;
+ prev_link->next =
+ (sah_Link *) link->dma_addr;
+ buffer_length -= prev_link->len;
+ buffer_start += prev_link->len;
+
+#if !defined(HAS_L2_CACHE)
+ /* use original virtual */
+ link->original_data = ptr->data;
+#else
+ /* use kernel virtual */
+ link->original_data = buffer_start;
+#endif
+ link->data = (void *)phys_addr;
+ link->vm_info = prev_link->vm_info;
+ prev_link->vm_info = NULL; /* delay release */
+ link->flags = ptr->flags;
+ link->len = buffer_length;
+ prev_link = link;
+ } /* while link would cross 1K boundary */
+#endif /* 1K_CROSSING */
+ }
+ } /* for each page */
+ }
+
+ if (local_pages != NULL) {
+ kfree(local_pages);
+ }
+
+ if (status != FSL_RETURN_OK_S) {
+ /* De-allocated any links created, this routine first looks if
+ * head_link is NULL */
+ sah_Destroy_Links(head_link);
+
+ /* Clean-up of the KIOBUF will occur in the * sah_Copy_Descriptors()
+ * function.
+ * Clean-up of the Queue entry must occur in the function called
+ * sah_Copy_Descriptors().
+ */
+ } else {
+
+ /* Success. Return the head link. */
+ ret_val = head_link;
+ link->original_next = NULL;
+ /* return the tail link as well */
+ *tail = link;
+ }
+
+ return ret_val;
+} /* sah_Make_Links() */
+
+/*!
+*******************************************************************************
+* This walks through a SAHARA descriptor chain and frees everything
+* that is not NULL. Finally it also unmaps all of the physical memory and
+* frees the kiobuf_list Queue.
+*
+* @brief Kernel Descriptor Chain Destructor
+*
+* @param desc A Descriptor pointer from kernel-space. This should be
+* in bus address space.
+*
+* @return void
+*
+*/
+void sah_Destroy_Descriptors(sah_Head_Desc * head_desc)
+{
+ sah_Desc *this_desc = (sah_Desc *) head_desc;
+ sah_Desc *next_desc = NULL;
+ int this_is_head = 1;
+
+ /*
+ * Flush the D-cache. This flush is here because the hardware has finished
+ * processing this descriptor and probably has changed the contents of
+ * some linked user buffers as a result. This flush will enable
+ * user-space applications to see the correct data rather than the
+ * out-of-date cached version.
+ */
+#ifndef FLUSH_SPECIFIC_DATA_ONLY
+ os_flush_cache_all();
+#endif
+
+ head_desc = (sah_Head_Desc *) this_desc->virt_addr;
+
+ while (this_desc != NULL) {
+ if (this_desc->ptr1 != NULL) {
+ sah_Destroy_Links(this_desc->original_ptr1
+ ? this_desc->
+ original_ptr1 : this_desc->ptr1);
+ }
+ if (this_desc->ptr2 != NULL) {
+ sah_Destroy_Links(this_desc->original_ptr2
+ ? this_desc->
+ original_ptr2 : this_desc->ptr2);
+ }
+
+ /* Get a bus pointer to the next Descriptor */
+ next_desc = (this_desc->original_next
+ ? this_desc->original_next : this_desc->next);
+
+ /* Zero the header and Length fields for security reasons. */
+ this_desc->header = 0;
+ this_desc->len1 = 0;
+ this_desc->len2 = 0;
+
+ if (this_is_head) {
+ sah_Free_Head_Descriptor(head_desc);
+#ifdef DIAG_MEM
+ sprintf(Diag_msg, "Free_Head_Descriptor: %p\n",
+ head_desc);
+ LOG_KDIAG(Diag_msg);
+#endif
+ this_is_head = 0;
+ } else {
+ /* free this descriptor */
+ sah_Free_Descriptor(this_desc);
+#ifdef DIAG_MEM
+ sprintf(Diag_msg, "Free_Descriptor: %p\n", this_desc);
+ LOG_KDIAG(Diag_msg);
+#endif
+ }
+
+ /* Set up for next round. */
+ this_desc = (sah_Desc *) next_desc;
+ }
+}
+
+/*!
+*******************************************************************************
+* This walks through a SAHARA link chain and frees everything that is
+* not NULL excluding user-space buffers.
+*
+* @brief Kernel Link Chain Destructor
+*
+* @param link A Link pointer from kernel-space.
+*
+* @return void
+*
+*/
+void sah_Destroy_Links(sah_Link * link)
+{
+ sah_Link *this_link = link;
+ sah_Link *next_link = NULL;
+
+ while (this_link != NULL) {
+
+ /* if this link indicates an associated page, process it */
+ if (this_link->vm_info != NULL) {
+ /* since this function is only called from the routine that
+ * creates a kernel copy of the user space descriptor chain,
+ * there are no pages to dirty. All that is needed is to release
+ * the page from cache */
+ page_cache_release(this_link->vm_info);
+ }
+
+ /* Get a bus pointer to the next Link */
+ next_link = (this_link->original_next
+ ? this_link->original_next : this_link->next);
+
+ /* Zero the Pointer and Length fields for security reasons. */
+ this_link->data = NULL;
+ this_link->len = 0;
+
+ /* Free this Link */
+ sah_Free_Link(this_link);
+#ifdef DIAG_MEM
+ sprintf(Diag_msg, "Free_Link: %p\n", this_link);
+ LOG_KDIAG(Diag_msg);
+#endif
+
+ /* Look at the next Link */
+ this_link = next_link;
+ }
+}
+
+/*!
+*******************************************************************************
+* @brief Initialize memory manager/mapper.
+*
+* In 2.4, this function also allocates a kiovec to be used when mapping user
+* data to kernel space
+*
+* @return 0 for success, OS error code on failure
+*
+*/
+int sah_Init_Mem_Map(void)
+{
+ int ret = OS_ERROR_FAIL_S;
+
+ mem_lock = os_lock_alloc_init();
+
+ /*
+ * If one of these fails, change the calculation in the #define earlier in
+ * the file to be the other one.
+ */
+ if (sizeof(sah_Link) > MEM_BLOCK_SIZE) {
+ os_printk("Sahara Driver: sah_Link structure is too large\n");
+ } else if (sizeof(sah_Desc) > MEM_BLOCK_SIZE) {
+ os_printk("Sahara Driver: sah_Desc structure is too large\n");
+ } else {
+ ret = OS_ERROR_OK_S;
+ }
+
+#ifndef SELF_MANAGED_POOL
+
+ big_dma_pool = dma_pool_create("sah_big_blocks", NULL,
+ sizeof(Mem_Big_Block), sizeof(uint32_t),
+ PAGE_SIZE);
+ small_dma_pool = dma_pool_create("sah_small_blocks", NULL,
+ sizeof(Mem_Block), sizeof(uint32_t),
+ PAGE_SIZE);
+#else
+
+#endif
+ return ret;
+}
+
+/*!
+*******************************************************************************
+* @brief Clean up memory manager/mapper.
+*
+* In 2.4, this function also frees the kiovec used when mapping user data to
+* kernel space.
+*
+* @return none
+*
+*/
+void sah_Stop_Mem_Map(void)
+{
+ os_lock_deallocate(mem_lock);
+
+#ifndef SELF_MANAGED_POOL
+ if (big_dma_pool != NULL) {
+ dma_pool_destroy(big_dma_pool);
+ }
+ if (small_dma_pool != NULL) {
+ dma_pool_destroy(small_dma_pool);
+ }
+#endif
+}
+
+/*!
+*******************************************************************************
+* Allocate Head descriptor from free pool.
+*
+* @brief Allocate Head descriptor
+*
+* @return sah_Head_Desc Free descriptor, NULL if no free descriptors available.
+*
+*/
+sah_Head_Desc *sah_Alloc_Head_Descriptor(void)
+{
+ Mem_Big_Block *block;
+ sah_Head_Desc *desc;
+
+ block = sah_Alloc_Big_Block();
+ if (block != NULL) {
+ /* initialize everything */
+ desc = (sah_Head_Desc *) block->data;
+
+ desc->desc.virt_addr = (sah_Desc *) desc;
+ desc->desc.dma_addr = block->dma_addr;
+ desc->desc.original_ptr1 = NULL;
+ desc->desc.original_ptr2 = NULL;
+ desc->desc.original_next = NULL;
+
+ desc->desc.ptr1 = NULL;
+ desc->desc.ptr2 = NULL;
+ desc->desc.next = NULL;
+ } else {
+ desc = NULL;
+ }
+
+ return desc;
+}
+
+/*!
+*******************************************************************************
+* Allocate descriptor from free pool.
+*
+* @brief Allocate descriptor
+*
+* @return sah_Desc Free descriptor, NULL if no free descriptors available.
+*
+*/
+sah_Desc *sah_Alloc_Descriptor(void)
+{
+ Mem_Block *block;
+ sah_Desc *desc;
+
+ block = sah_Alloc_Block();
+ if (block != NULL) {
+ /* initialize everything */
+ desc = (sah_Desc *) block->data;
+
+ desc->virt_addr = desc;
+ desc->dma_addr = block->dma_addr;
+ desc->original_ptr1 = NULL;
+ desc->original_ptr2 = NULL;
+ desc->original_next = NULL;
+
+ desc->ptr1 = NULL;
+ desc->ptr2 = NULL;
+ desc->next = NULL;
+ } else {
+ desc = NULL;
+ }
+
+ return (desc);
+}
+
+/*!
+*******************************************************************************
+* Allocate link from free pool.
+*
+* @brief Allocate link
+*
+* @return sah_Link Free link, NULL if no free links available.
+*
+*/
+sah_Link *sah_Alloc_Link(void)
+{
+ Mem_Block *block;
+ sah_Link *link;
+
+ block = sah_Alloc_Block();
+ if (block != NULL) {
+ /* initialize everything */
+ link = (sah_Link *) block->data;
+
+ link->virt_addr = link;
+ link->original_next = NULL;
+ link->original_data = NULL;
+ /* information found in allocated block */
+ link->dma_addr = block->dma_addr;
+
+ /* Sahara link fields */
+ link->len = 0;
+ link->data = NULL;
+ link->next = NULL;
+
+ /* driver required fields */
+ link->flags = 0;
+ link->vm_info = NULL;
+ } else {
+ link = NULL;
+ }
+
+ return link;
+}
+
+#ifdef SELF_MANAGED_POOL
+/*!
+*******************************************************************************
+* Add a new page to end of block free pool. This will allocate one page and
+* fill the pool with entries, appending to the end.
+*
+* @brief Add page of blocks to block free pool.
+*
+* @pre This function must be called with the #mem_lock held.
+*
+* @param big 0 - make blocks big enough for sah_Desc
+* non-zero - make blocks big enough for sah_Head_Desc
+*
+* @return int TRUE if blocks added succeesfully, FALSE otherwise
+*
+*/
+int sah_Block_Add_Page(int big)
+{
+ void *page;
+ int success;
+ dma_addr_t dma_addr;
+ unsigned block_index;
+ uint32_t dma_offset;
+ unsigned block_entries =
+ big ? MEM_BIG_BLOCK_ENTRIES : MEM_BLOCK_ENTRIES;
+ unsigned block_size = big ? sizeof(Mem_Big_Block) : sizeof(Mem_Block);
+ void *block;
+
+ /* Allocate page of memory */
+#ifndef USE_COHERENT_MEMORY
+ page = os_alloc_memory(PAGE_SIZE, GFP_ATOMIC | __GFP_DMA);
+ dma_addr = os_pa(page);
+#else
+ page = os_alloc_coherent(PAGE_SIZE, &dma_addr, GFP_ATOMIC);
+#endif
+ if (page != NULL) {
+ /*
+ * Find the difference between the virtual address and the DMA
+ * address of the page. This is used later to determine the DMA
+ * address of each individual block.
+ */
+ dma_offset = page - (void *)dma_addr;
+
+ /* Split page into blocks and add to free pool */
+ block = page;
+ for (block_index = 0; block_index < block_entries;
+ block_index++) {
+ if (big) {
+ register Mem_Big_Block *blockp = block;
+ blockp->dma_addr =
+ (uint32_t) (block - dma_offset);
+ sah_Append_Big_Block(blockp);
+ } else {
+ register Mem_Block *blockp = block;
+ blockp->dma_addr =
+ (uint32_t) (block - dma_offset);
+ /* sah_Append_Block must be protected with spin locks. This is
+ * done in sah_Alloc_Block(), which calls
+ * sah_Block_Add_Page() */
+ sah_Append_Block(blockp);
+ }
+ block += block_size;
+ }
+ success = TRUE;
+#ifdef DIAG_MEM
+ LOG_KDIAG("Succeeded in allocating new page");
+#endif
+ } else {
+ success = FALSE;
+#ifdef DIAG_MEM
+ LOG_KDIAG("Failed in allocating new page");
+#endif
+ }
+
+ return success;
+}
+#endif /* SELF_MANAGED_POOL */
+
+#ifdef SELF_MANAGED_POOL
+/*!
+*******************************************************************************
+* Allocate block from free pool. A block is large enough to fit either a link
+* or descriptor.
+*
+* @brief Allocate memory block
+*
+* @return Mem_Block Free block, NULL if no free blocks available.
+*
+*/
+static Mem_Big_Block *sah_Alloc_Big_Block(void)
+{
+ Mem_Big_Block *block;
+ os_lock_context_t lock_flags;
+
+ os_lock_save_context(mem_lock, lock_flags);
+
+ /* If the pool is empty, try to allocate more entries */
+ if (big_block_free_head == NULL) {
+ (void)sah_Block_Add_Page(1);
+ }
+
+ /* Check that the pool now has some free entries */
+ if (big_block_free_head != NULL) {
+ /* Return the head of the free pool */
+ block = big_block_free_head;
+
+ big_block_free_head = big_block_free_head->next;
+ if (big_block_free_head == NULL) {
+ /* Allocated last entry in pool */
+ big_block_free_tail = NULL;
+ }
+ } else {
+ block = NULL;
+ }
+ os_unlock_restore_context(mem_lock, lock_flags);
+
+ return block;
+}
+#else
+/*!
+*******************************************************************************
+* Allocate block from free pool. A block is large enough to fit either a link
+* or descriptor.
+*
+* @brief Allocate memory block
+*
+* @return Mem_Block Free block, NULL if no free blocks available.
+*
+*/
+static Mem_Big_Block *sah_Alloc_Big_Block(void)
+{
+ dma_addr_t dma_addr;
+ Mem_Big_Block *block =
+ dma_pool_alloc(big_dma_pool, GFP_ATOMIC, &dma_addr);
+
+ if (block == NULL) {
+ } else {
+ block->dma_addr = dma_addr;
+ }
+
+ return block;
+}
+#endif
+
+#ifdef SELF_MANAGED_POOL
+/*!
+*******************************************************************************
+* Allocate block from free pool. A block is large enough to fit either a link
+* or descriptor.
+*
+* @brief Allocate memory block
+*
+* @return Mem_Block Free block, NULL if no free blocks available.
+*
+*/
+/******************************************************************************
+*
+* MODIFICATION HISTORY:
+*
+* Date Person Change
+* 31/10/2003 RWK PR52734 - Implement functions to allocate
+* descriptors and links. Replace
+* consistent_alloc() calls. Initial creation.
+*
+******************************************************************************/
+static Mem_Block *sah_Alloc_Block(void)
+{
+ Mem_Block *block;
+ os_lock_context_t lock_flags;
+
+ os_lock_save_context(mem_lock, lock_flags);
+
+ /* If the pool is empty, try to allocate more entries */
+ if (block_free_head == NULL) {
+ (void)sah_Block_Add_Page(0);
+ }
+
+ /* Check that the pool now has some free entries */
+ if (block_free_head != NULL) {
+ /* Return the head of the free pool */
+ block = block_free_head;
+
+ block_free_head = block_free_head->next;
+ if (block_free_head == NULL) {
+ /* Allocated last entry in pool */
+ block_free_tail = NULL;
+ }
+ } else {
+ block = NULL;
+ }
+ os_unlock_restore_context(mem_lock, lock_flags);
+
+ return block;
+}
+#else
+/*!
+*******************************************************************************
+* Allocate block from free pool. A block is large enough to fit either a link
+* or descriptor.
+*
+* @brief Allocate memory block
+*
+* @return Mem_Block Free block, NULL if no free blocks available.
+*
+*/
+/******************************************************************************
+*
+* MODIFICATION HISTORY:
+*
+* Date Person Change
+* 31/10/2003 RWK PR52734 - Implement functions to allocate
+* descriptors and links. Replace
+* consistent_alloc() calls. Initial creation.
+*
+******************************************************************************/
+static Mem_Block *sah_Alloc_Block(void)
+{
+
+ dma_addr_t dma_addr;
+ Mem_Block *block =
+ dma_pool_alloc(small_dma_pool, GFP_ATOMIC, &dma_addr);
+
+ if (block == NULL) {
+ } else {
+ block->dma_addr = dma_addr;
+ }
+
+ return block;
+}
+#endif
+
+#ifdef SELF_MANAGED_POOL
+/*!
+*******************************************************************************
+* Free memory block back to free pool
+*
+* @brief Free memory block
+*
+* @param block A block allocated with sah_Alloc_Block().
+*
+* @return none
+*
+*/
+static void sah_Free_Block(Mem_Block * block)
+{
+ os_lock_context_t lock_flags;
+
+ os_lock_save_context(mem_lock, lock_flags);
+ sah_Append_Block(block);
+ os_unlock_restore_context(mem_lock, lock_flags);
+}
+#else
+/*!
+*******************************************************************************
+* Free memory block back to free pool
+*
+* @brief Free memory block
+*
+* @param block A block allocated with sah_Alloc_Block().
+*
+* @return none
+*
+*/
+static void sah_Free_Block(Mem_Block * block)
+{
+ dma_pool_free(small_dma_pool, block, block->dma_addr);
+}
+#endif
+
+#ifdef SELF_MANAGED_POOL
+/*!
+*******************************************************************************
+* Free memory block back to free pool
+*
+* @brief Free memory block
+*
+* @param block A block allocated with sah_Alloc_Block().
+*
+* @return none
+*
+*/
+static void sah_Free_Big_Block(Mem_Big_Block * block)
+{
+ os_lock_context_t lock_flags;
+
+ os_lock_save_context(mem_lock, lock_flags);
+ sah_Append_Big_Block(block);
+ os_unlock_restore_context(mem_lock, lock_flags);
+}
+#else
+/*!
+*******************************************************************************
+* Free memory block back to free pool
+*
+* @brief Free memory block
+*
+* @param block A block allocated with sah_Alloc_Block().
+*
+* @return none
+*
+*/
+static void sah_Free_Big_Block(Mem_Big_Block * block)
+{
+ dma_pool_free(big_dma_pool, block, block->dma_addr);
+}
+#endif
+
+#ifdef SELF_MANAGED_POOL
+/*!
+*******************************************************************************
+* Append memory block to end of free pool.
+*
+* @param block A block entry
+*
+* @return none
+*
+* @pre This function must be called with the #mem_lock held.
+*
+* @brief Append memory block to free pool
+*/
+static void sah_Append_Big_Block(Mem_Big_Block * block)
+{
+
+ /* Initialise block */
+ block->next = NULL;
+
+ /* Remember that block may be the first in the pool */
+ if (big_block_free_tail != NULL) {
+ big_block_free_tail->next = block;
+ } else {
+ /* Pool is empty */
+ big_block_free_head = block;
+ }
+
+ big_block_free_tail = block;
+}
+
+/*!
+*******************************************************************************
+* Append memory block to end of free pool.
+*
+* @brief Append memory block to free pool
+*
+* @param block A block entry
+*
+* @return none
+*
+* @pre #mem_lock must be held
+*
+*/
+static void sah_Append_Block(Mem_Block * block)
+{
+
+ /* Initialise block */
+ block->next = NULL;
+
+ /* Remember that block may be the first in the pool */
+ if (block_free_tail != NULL) {
+ block_free_tail->next = block;
+ } else {
+ /* Pool is empty */
+ block_free_head = block;
+ }
+
+ block_free_tail = block;
+}
+#endif /* SELF_MANAGED_POOL */
+
+/* End of sah_memory_mapper.c */
diff --git a/drivers/mxc/security/sahara2/sah_queue.c b/drivers/mxc/security/sahara2/sah_queue.c
new file mode 100644
index 000000000000..317a60b92b6b
--- /dev/null
+++ b/drivers/mxc/security/sahara2/sah_queue.c
@@ -0,0 +1,249 @@
+/*
+ * Copyright (C) 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+* @file sah_queue.c
+*
+* @brief This file provides a FIFO Queue implementation.
+*
+*/
+/******************************************************************************
+*
+* CAUTION:
+*******************************************************************
+*/
+
+/* SAHARA Includes */
+#include <sah_queue_manager.h>
+#ifdef DIAG_DRV_QUEUE
+#include <diagnostic.h>
+#endif
+
+/******************************************************************************
+* Queue Functions
+******************************************************************************/
+
+/*!
+*******************************************************************************
+* This function constructs a new sah_Queue.
+*
+* @brief sah_Queue Constructor
+*
+* @return A pointer to a newly allocated sah_Queue.
+* @return NULL if allocation of memory failed.
+*/
+/******************************************************************************
+*
+* CAUTION: This function may sleep in low-memory situations, as it uses
+* kmalloc ( ..., GFP_KERNEL).
+******************************************************************************/
+sah_Queue *sah_Queue_Construct(void)
+{
+ sah_Queue *q = (sah_Queue *) os_alloc_memory(sizeof(sah_Queue),
+ GFP_KERNEL);
+
+ if (q != NULL) {
+ /* Initialise the queue to an empty state. */
+ q->head = NULL;
+ q->tail = NULL;
+ q->count = 0;
+ }
+#ifdef DIAG_DRV_QUEUE
+ else {
+ LOG_KDIAG("kmalloc() failed.");
+ }
+#endif
+
+ return q;
+}
+
+/*!
+*******************************************************************************
+* This function destroys a sah_Queue.
+*
+* @brief sah_Queue Destructor
+*
+* @param q A pointer to a sah_Queue.
+*
+* @return void
+*/
+/******************************************************************************
+*
+* CAUTION: This function does not free any queue entries.
+*
+******************************************************************************/
+void sah_Queue_Destroy(sah_Queue * q)
+{
+#ifdef DIAG_DRV_QUEUE
+ if (q == NULL) {
+ LOG_KDIAG("Trying to kfree() a NULL pointer.");
+ } else {
+ if (q->count != 0) {
+ LOG_KDIAG
+ ("Trying to destroy a queue that is not empty.");
+ }
+ }
+#endif
+
+ if (q != NULL) {
+ os_free_memory(q);
+ q = NULL;
+ }
+}
+
+/*!
+*******************************************************************************
+* This function appends a sah_Head_Desc to the tail of a sah_Queue.
+*
+* @brief Appends a sah_Head_Desc to a sah_Queue.
+*
+* @param q A pointer to a sah_Queue to append to.
+* @param entry A pointer to a sah_Head_Desc to append.
+*
+* @pre The #desc_queue_lock must be held before calling this function.
+*
+* @return void
+*/
+/******************************************************************************
+*
+* CAUTION: NONE
+******************************************************************************/
+void sah_Queue_Append_Entry(sah_Queue * q, sah_Head_Desc * entry)
+{
+ sah_Head_Desc *tail_entry = NULL;
+
+ if ((q == NULL) || (entry == NULL)) {
+#ifdef DIAG_DRV_QUEUE
+ LOG_KDIAG("Null pointer input.");
+#endif
+ return;
+ }
+
+ if (q->count == 0) {
+ /* The queue is empty */
+ q->head = entry;
+ q->tail = entry;
+ entry->next = NULL;
+ entry->prev = NULL;
+ } else {
+ /* The queue is not empty */
+ tail_entry = q->tail;
+ tail_entry->next = entry;
+ entry->next = NULL;
+ entry->prev = tail_entry;
+ q->tail = entry;
+ }
+ q->count++;
+}
+
+/*!
+*******************************************************************************
+* This function a removes a sah_Head_Desc from the head of a sah_Queue.
+*
+* @brief Removes a sah_Head_Desc from a the head of a sah_Queue.
+*
+* @param q A pointer to a sah_Queue to remove from.
+*
+* @pre The #desc_queue_lock must be held before calling this function.
+*
+* @return void
+*/
+/******************************************************************************
+*
+* CAUTION: This does not kfree() the entry.
+******************************************************************************/
+void sah_Queue_Remove_Entry(sah_Queue * q)
+{
+ sah_Queue_Remove_Any_Entry(q, q->head);
+}
+
+/*!
+*******************************************************************************
+* This function a removes a sah_Head_Desc from anywhere in a sah_Queue.
+*
+* @brief Removes a sah_Head_Desc from anywhere in a sah_Queue.
+*
+* @param qq A pointer to a sah_Queue to remove from.
+* @param entry A pointer to a sah_Head_Desc to remove.
+*
+* @pre The #desc_queue_lock must be held before calling this function.
+*
+* @return void
+*/
+/******************************************************************************
+*
+* CAUTION: This does not kfree() the entry. Does not check to see if the entry
+* actually belongs to the queue.
+******************************************************************************/
+void sah_Queue_Remove_Any_Entry(sah_Queue * q, sah_Head_Desc * entry)
+{
+ sah_Head_Desc *prev_entry = NULL;
+ sah_Head_Desc *next_entry = NULL;
+
+ if ((q == NULL) || (entry == NULL)) {
+#if defined DIAG_DRV_QUEUE && defined DIAG_DURING_INTERRUPT
+ LOG_KDIAG("Null pointer input.");
+#endif
+ return;
+ }
+
+ if (q->count == 1) {
+ /* If q is the only entry in the queue. */
+ q->tail = NULL;
+ q->head = NULL;
+ q->count = 0;
+ } else if (q->count > 1) {
+ /* There are 2 or more entries in the queue. */
+
+#if defined DIAG_DRV_QUEUE && defined DIAG_DURING_INTERRUPT
+ if ((entry->next == NULL) && (entry->prev == NULL)) {
+ LOG_KDIAG
+ ("Queue is not empty yet both next and prev pointers"
+ " are NULL");
+ }
+#endif
+
+ if (entry->next == NULL) {
+ /* If this is the end of the queue */
+ prev_entry = entry->prev;
+ prev_entry->next = NULL;
+ q->tail = prev_entry;
+ } else if (entry->prev == NULL) {
+ /* If this is the head of the queue */
+ next_entry = entry->next;
+ next_entry->prev = NULL;
+ q->head = next_entry;
+ } else {
+ /* If this is somewhere in the middle of the queue */
+ prev_entry = entry->prev;
+ next_entry = entry->next;
+ prev_entry->next = next_entry;
+ next_entry->prev = prev_entry;
+ }
+ q->count--;
+ }
+ /*
+ * Otherwise we are removing an entry from an empty queue.
+ * Don't do anything in the product code
+ */
+#if defined DIAG_DRV_QUEUE && defined DIAG_DURING_INTERRUPT
+ else {
+ LOG_KDIAG("Trying to remove an entry from an empty queue.");
+ }
+#endif
+
+ entry->next = NULL;
+ entry->prev = NULL;
+}
+
+/* End of sah_queue.c */
diff --git a/drivers/mxc/security/sahara2/sah_queue_manager.c b/drivers/mxc/security/sahara2/sah_queue_manager.c
new file mode 100644
index 000000000000..78de3543cd23
--- /dev/null
+++ b/drivers/mxc/security/sahara2/sah_queue_manager.c
@@ -0,0 +1,1076 @@
+/*
+ * Copyright (C) 2004-2011 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file sah_queue_manager.c
+ *
+ * @brief This file provides a Queue Manager implementation.
+ *
+ * The Queue Manager manages additions and removal from the queue and updates
+ * the status of queue entries. It also calls sah_HW_* functions to interract
+ * with the hardware.
+*/
+
+#include "portable_os.h"
+
+/* SAHARA Includes */
+#include <sah_driver_common.h>
+#include <sah_queue_manager.h>
+#include <sah_status_manager.h>
+#include <sah_hardware_interface.h>
+#if defined(DIAG_DRV_QUEUE) || defined(DIAG_DRV_STATUS)
+#include <diagnostic.h>
+#endif
+#include <sah_memory_mapper.h>
+
+#ifdef DIAG_DRV_STATUS
+
+#define FSL_INVALID_RETURN 13
+#define MAX_RETURN_STRING_LEN 22
+#endif
+
+/* Defines for parsing value from Error Status register */
+#define SAH_STATUS_MASK 0x07
+#define SAH_ERROR_MASK 0x0F
+#define SAH_CHA_ERR_SOURCE_MASK 0x07
+#define SAH_CHA_ERR_STATUS_MASK 0x0FFF
+#define SAH_DMA_ERR_STATUS_MASK 0x0F
+#define SAH_DMA_ERR_SIZE_MASK 0x03
+#define SAH_DMA_ERR_DIR_MASK 0x01
+
+#define SHA_ERROR_STATUS_CONTINUE 0xFFFFFFFF
+#define SHA_CHA_ERROR_STATUS_DONE 0xFFFFFFFF
+
+/* this maps the error status register's error source 4 bit field to the API
+ * return values. A 0xFFFFFFFF indicates additional fields must be checked to
+ * determine an appropriate return value */
+static sah_Execute_Error sah_Execute_Error_Array[] = {
+ FSL_RETURN_ERROR_S, /* SAH_ERR_NONE */
+ FSL_RETURN_BAD_FLAG_S, /* SAH_ERR_HEADER */
+ FSL_RETURN_BAD_DATA_LENGTH_S, /* SAH_ERR_DESC_LENGTH */
+ FSL_RETURN_BAD_DATA_LENGTH_S, /* SAH_ERR_DESC_POINTER */
+ FSL_RETURN_BAD_DATA_LENGTH_S, /* SAH_ERR_LINK_LENGTH */
+ FSL_RETURN_BAD_DATA_LENGTH_S, /* SAH_ERR_LINK_POINTER */
+ FSL_RETURN_INTERNAL_ERROR_S, /* SAH_ERR_INPUT_BUFFER */
+ FSL_RETURN_INTERNAL_ERROR_S, /* SAH_ERR_OUTPUT_BUFFER */
+ FSL_RETURN_BAD_DATA_LENGTH_S, /* SAH_ERR_OUTPUT_BUFFER_STARVATION */
+ FSL_RETURN_INTERNAL_ERROR_S, /* SAH_ERR_INTERNAL_STATE */
+ FSL_RETURN_ERROR_S, /* SAH_ERR_GENERAL_DESCRIPTOR */
+ FSL_RETURN_INTERNAL_ERROR_S, /* SAH_ERR_RESERVED_FIELDS */
+ FSL_RETURN_MEMORY_ERROR_S, /* SAH_ERR_DESCRIPTOR_ADDRESS */
+ FSL_RETURN_MEMORY_ERROR_S, /* SAH_ERR_LINK_ADDRESS */
+ SHA_ERROR_STATUS_CONTINUE, /* SAH_ERR_CHA */
+ SHA_ERROR_STATUS_CONTINUE /* SAH_ERR_DMA */
+};
+
+static sah_DMA_Error_Status sah_DMA_Error_Status_Array[] = {
+ FSL_RETURN_INTERNAL_ERROR_S, /* SAH_DMA_NO_ERR */
+ FSL_RETURN_INTERNAL_ERROR_S, /* SAH_DMA_AHB_ERR */
+ FSL_RETURN_INTERNAL_ERROR_S, /* SAH_DMA_IP_ERR */
+ FSL_RETURN_INTERNAL_ERROR_S, /* SAH_DMA_PARITY_ERR */
+ FSL_RETURN_BAD_DATA_LENGTH_S, /* SAH_DMA_BOUNDRY_ERR */
+ FSL_RETURN_INTERNAL_ERROR_S, /* SAH_DMA_BUSY_ERR */
+ FSL_RETURN_INTERNAL_ERROR_S, /* SAH_DMA_RESERVED_ERR */
+ FSL_RETURN_INTERNAL_ERROR_S /* SAH_DMA_INT_ERR */
+};
+
+static sah_CHA_Error_Status sah_CHA_Error_Status_Array[] = {
+ FSL_RETURN_INTERNAL_ERROR_S, /* SAH_CHA_NO_ERR */
+ FSL_RETURN_BAD_DATA_LENGTH_S, /* SAH_CHA_IP_BUF */
+ FSL_RETURN_INTERNAL_ERROR_S, /* SAH_CHA_ADD_ERR */
+ FSL_RETURN_BAD_MODE_S, /* SAH_CHA_MODE_ERR */
+ FSL_RETURN_BAD_DATA_LENGTH_S, /* SAH_CHA_DATA_SIZE_ERR */
+ FSL_RETURN_BAD_KEY_LENGTH_S, /* SAH_CHA_KEY_SIZE_ERR */
+ FSL_RETURN_BAD_MODE_S, /* SAH_CHA_PROC_ERR */
+ FSL_RETURN_ERROR_S, /* SAH_CHA_CTX_READ_ERR */
+ FSL_RETURN_INTERNAL_ERROR_S, /* SAH_CHA_INTERNAL_HW_ERR */
+ FSL_RETURN_MEMORY_ERROR_S, /* SAH_CHA_IP_BUFF_ERR */
+ FSL_RETURN_MEMORY_ERROR_S, /* SAH_CHA_OP_BUFF_ERR */
+ FSL_RETURN_BAD_KEY_PARITY_S, /* SAH_CHA_DES_KEY_ERR */
+ FSL_RETURN_INTERNAL_ERROR_S, /* SAH_CHA_RES */
+};
+
+#ifdef DIAG_DRV_STATUS
+
+char sah_return_text[FSL_INVALID_RETURN][MAX_RETURN_STRING_LEN] = {
+ "No error", /* FSL_RETURN_OK_S */
+ "Error", /* FSL_RETURN_ERROR_S */
+ "No resource", /* FSL_RETURN_NO_RESOURCE_S */
+ "Bad algorithm", /* FSL_RETURN_BAD_ALGORITHM_S */
+ "Bad mode", /* FSL_RETURN_BAD_MODE_S */
+ "Bad flag", /* FSL_RETURN_BAD_FLAG_S */
+ "Bad key length", /* FSL_RETURN_BAD_KEY_LENGTH_S */
+ "Bad key parity", /* FSL_RETURN_BAD_KEY_PARITY_S */
+ "Bad data length", /* FSL_RETURN_BAD_DATA_LENGTH_S */
+ "Authentication failed", /* FSL_RETURN_AUTH_FAILED_S */
+ "Memory error", /* FSL_RETURN_MEMORY_ERROR_S */
+ "Internal error", /* FSL_RETURN_INTERNAL_ERROR_S */
+ "unknown value", /* default */
+};
+
+#endif /* DIAG_DRV_STATUS */
+
+/*!
+ * This lock must be held while performing any queuing or unqueuing functions,
+ * including reading the first pointer on the queue. It also protects reading
+ * and writing the Sahara DAR register. It must be held during a read-write
+ * operation on the DAR so that the 'test-and-set' is atomic.
+ */
+os_lock_t desc_queue_lock;
+
+/*! This is the main queue for the driver. This is shared between all threads
+ * and is not protected by mutexes since the kernel is non-preemptable. */
+sah_Queue *main_queue = NULL;
+
+/* Internal Prototypes */
+sah_Head_Desc *sah_Find_With_State(sah_Queue_Status state);
+
+#ifdef DIAG_DRV_STATUS
+void sah_Log_Error(uint32_t descriptor, uint32_t error, uint32_t fault_address);
+#endif
+
+extern wait_queue_head_t *int_queue;
+
+/*!
+ * This function initialises the Queue Manager
+ *
+ * @brief Initialise the Queue Manager
+ *
+ * @return FSL_RETURN_OK_S on success; FSL_RETURN_MEMORY_ERROR_S if not
+ */
+fsl_shw_return_t sah_Queue_Manager_Init(void)
+{
+ fsl_shw_return_t ret_val = FSL_RETURN_OK_S;
+
+ desc_queue_lock = os_lock_alloc_init();
+
+ if (main_queue == NULL) {
+ /* Construct the main queue. */
+ main_queue = sah_Queue_Construct();
+
+ if (main_queue == NULL) {
+ ret_val = FSL_RETURN_MEMORY_ERROR_S;
+ }
+ } else {
+#ifdef DIAG_DRV_QUEUE
+ LOG_KDIAG
+ ("Trying to initialise the queue manager more than once.");
+#endif
+ }
+
+ return ret_val;
+}
+
+/*!
+ * This function closes the Queue Manager
+ *
+ * @brief Close the Queue Manager
+ *
+ * @return void
+ */
+void sah_Queue_Manager_Close(void)
+{
+#ifdef DIAG_DRV_QUEUE
+ if (main_queue && main_queue->count != 0) {
+ LOG_KDIAG
+ ("Trying to close the main queue when it is not empty.");
+ }
+#endif
+
+ if (main_queue) {
+ /* There is no error checking here because there is no way to handle
+ it. */
+ sah_Queue_Destroy(main_queue);
+ main_queue = NULL;
+ }
+}
+
+/*!
+ * Count the number of entries on the Queue Manager's queue
+ *
+ * @param ignore_state If non-zero, the @a state parameter is ignored.
+ * If zero, only entries matching @a state are counted.
+ * @param state State of entry to match for counting.
+ *
+ * @return Number of entries which matched criteria
+ */
+int sah_Queue_Manager_Count_Entries(int ignore_state, sah_Queue_Status state)
+{
+ int count = 0;
+ sah_Head_Desc *current_entry;
+
+ /* Start at the head */
+ current_entry = main_queue->head;
+ while (current_entry != NULL) {
+ if (ignore_state || (current_entry->status == state)) {
+ count++;
+ }
+ /* Jump to the next entry. */
+ current_entry = current_entry->next;
+ }
+
+ return count;
+}
+
+/*!
+ * This function removes an entry from the Queue Manager's queue. The entry to
+ * be removed can be anywhere in the queue.
+ *
+ * @brief Remove an entry from the Queue Manager's queue.
+ *
+ * @param entry A pointer to a sah_Head_Desc to remove from the Queue
+ * Manager's queue.
+ *
+ * @pre The #desc_queue_lock must be held before calling this function.
+ *
+ * @return void
+ */
+void sah_Queue_Manager_Remove_Entry(sah_Head_Desc * entry)
+{
+ if (entry == NULL) {
+#ifdef DIAG_DRV_QUEUE
+ LOG_KDIAG("NULL pointer input.");
+#endif
+ } else {
+ sah_Queue_Remove_Any_Entry(main_queue, entry);
+ }
+}
+
+/*!
+ * This function appends an entry to the Queue Managers queue. It primes SAHARA
+ * if this entry is the first PENDING entry in the Queue Manager's Queue.
+ *
+ * @brief Appends an entry to the Queue Manager's queue.
+ *
+ * @param entry A pointer to a sah_Head_Desc to append to the Queue
+ * Manager's queue.
+ *
+ * @pre The #desc_queue_lock may not may be held when calling this function.
+ *
+ * @return void
+ */
+void sah_Queue_Manager_Append_Entry(sah_Head_Desc * entry)
+{
+ sah_Head_Desc *current_entry;
+ os_lock_context_t int_flags;
+
+#ifdef DIAG_DRV_QUEUE
+ if (entry == NULL) {
+ LOG_KDIAG("NULL pointer input.");
+ }
+#endif
+ entry->status = SAH_STATE_PENDING;
+ os_lock_save_context(desc_queue_lock, int_flags);
+ sah_Queue_Append_Entry(main_queue, entry);
+
+ /* Prime SAHARA if the operation that was just appended is the only PENDING
+ * operation in the queue.
+ */
+ current_entry = sah_Find_With_State(SAH_STATE_PENDING);
+ if (current_entry != NULL) {
+ if (current_entry == entry) {
+ sah_Queue_Manager_Prime(entry);
+ }
+ }
+
+ os_unlock_restore_context(desc_queue_lock, int_flags);
+}
+
+/*!
+ * This function marks all entries in the Queue Manager's queue with state
+ * SAH_STATE_RESET.
+ *
+ * @brief Mark all entries with state SAH_STATE_RESET
+ *
+ * @return void
+ *
+ * @note This feature needs re-visiting
+ */
+void sah_Queue_Manager_Reset_Entries(void)
+{
+ sah_Head_Desc *current_entry = NULL;
+
+ /* Start at the head */
+ current_entry = main_queue->head;
+
+ while (current_entry != NULL) {
+ /* Set the state. */
+ current_entry->status = SAH_STATE_RESET;
+ /* Jump to the next entry. */
+ current_entry = current_entry->next;
+ }
+}
+
+/*!
+ * This function primes SAHARA for the first time or after the queue becomes
+ * empty. Queue lock must have been set by the caller of this routine.
+ *
+ * @brief Prime SAHARA.
+ *
+ * @param entry A pointer to a sah_Head_Desc to Prime SAHARA with.
+ *
+ * @return void
+ */
+void sah_Queue_Manager_Prime(sah_Head_Desc * entry)
+{
+#ifdef DIAG_DRV_QUEUE
+ LOG_KDIAG("Priming SAHARA");
+ if (entry == NULL) {
+ LOG_KDIAG("Trying to prime SAHARA with a NULL entry pointer.");
+ }
+#endif
+
+#ifndef SUBMIT_MULTIPLE_DARS
+ /* BUG FIX: state machine can transition from Done1 Busy2 directly
+ * to Idle. To fix that problem, only one DAR is being allowed on
+ * SAHARA at a time */
+ if (sah_Find_With_State(SAH_STATE_ON_SAHARA) != NULL) {
+ return;
+ }
+#endif
+
+#ifdef SAHARA_POWER_MANAGEMENT
+ /* check that dynamic power management is not asserted */
+ if (!sah_dpm_flag) {
+#endif
+
+ /* Enable the SAHARA Clocks */
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("SAHARA : Enabling the IPG and AHB clocks\n")
+#endif /*DIAG_DRV_IF */
+
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 18))
+ mxc_clks_enable(SAHARA2_CLK);
+#else
+ {
+ struct clk *clk = clk_get(NULL, "sahara_clk");
+ if (!IS_ERR(clk))
+ clk_enable(clk);
+ clk_put(clk);
+ }
+#endif
+
+ /* Make sure nothing is in the DAR */
+ if (sah_HW_Read_DAR() == 0) {
+#if defined(DIAG_DRV_IF)
+ sah_Dump_Chain(&entry->desc, entry->desc.dma_addr);
+#endif /* DIAG_DRV_IF */
+
+ sah_HW_Write_DAR((entry->desc.dma_addr));
+ entry->status = SAH_STATE_ON_SAHARA;
+ }
+#ifdef DIAG_DRV_QUEUE
+ else {
+ LOG_KDIAG("DAR should be empty when Priming SAHARA");
+ }
+#endif
+#ifdef SAHARA_POWER_MANAGEMENT
+ }
+#endif
+}
+
+#ifndef SAHARA_POLL_MODE
+
+/*!
+ * Reset SAHARA, then load the next descriptor on it, if one exists
+ */
+void sah_reset_sahara_request(void)
+{
+ sah_Head_Desc *desc;
+ os_lock_context_t lock_flags;
+
+#ifdef DIAG_DRV_STATUS
+ LOG_KDIAG("Sahara required reset from tasklet, replace chip");
+#endif
+ sah_HW_Reset();
+
+ /* Now stick in a waiting request */
+ os_lock_save_context(desc_queue_lock, lock_flags);
+ if ((desc = sah_Find_With_State(SAH_STATE_PENDING))) {
+ sah_Queue_Manager_Prime(desc);
+ }
+ os_unlock_restore_context(desc_queue_lock, lock_flags);
+}
+
+/*!
+ * Post-process a descriptor chain after the hardware has finished with it.
+ *
+ * The status of the descriptor could also be checked. (for FATAL or IGNORED).
+ *
+ * @param desc_head The finished chain
+ * @param error A boolean to mark whether hardware reported error
+ *
+ * @pre The #desc_queue_lock may not be held when calling this function.
+ */
+void sah_process_finished_request(sah_Head_Desc * desc_head, unsigned error)
+{
+ os_lock_context_t lock_flags;
+
+ if (!error) {
+ desc_head->result = FSL_RETURN_OK_S;
+ } else if (desc_head->error_status == -1) {
+ /* Disaster! Sahara has faulted */
+ desc_head->result = FSL_RETURN_ERROR_S;
+ } else {
+ /* translate from SAHARA error status to fsl_shw return values */
+ desc_head->result =
+ sah_convert_error_status(desc_head->error_status);
+#ifdef DIAG_DRV_STATUS
+ sah_Log_Error(desc_head->desc.dma_addr, desc_head->error_status,
+ desc_head->fault_address);
+#endif
+ }
+
+ /* Show that the request has been processd */
+ desc_head->status = error ? SAH_STATE_FAILED : SAH_STATE_COMPLETE;
+
+ if (desc_head->uco_flags & FSL_UCO_BLOCKING_MODE) {
+
+ /* Wake up all processes on Sahara queue */
+ wake_up_interruptible(int_queue);
+
+ } else {
+ os_lock_save_context(desc_queue_lock, lock_flags);
+ sah_Queue_Append_Entry(&desc_head->user_info->result_pool,
+ desc_head);
+ os_unlock_restore_context(desc_queue_lock, lock_flags);
+
+ /* perform callback */
+ if (desc_head->uco_flags & FSL_UCO_CALLBACK_MODE) {
+ desc_head->user_info->callback(desc_head->user_info);
+ }
+ }
+} /* sah_process_finished_request */
+
+/*! Called from bottom half.
+ *
+ * @pre The #desc_queue_lock may not be held when calling this function.
+ */
+void sah_postprocess_queue(unsigned long reset_flag)
+{
+
+ sah_Head_Desc *first_entry;
+ os_lock_context_t lock_flags;
+
+ /* Disabling Sahara Clock only if the hardware is in idle state and
+ the DAR queue is empty.*/
+ os_lock_save_context(desc_queue_lock, lock_flags);
+ first_entry = sah_Find_With_State(SAH_STATE_ON_SAHARA);
+ os_unlock_restore_context(desc_queue_lock, lock_flags);
+
+ if ((first_entry == NULL) && (sah_HW_Read_Status() == SAH_EXEC_IDLE)) {
+
+#ifdef DIAG_DRV_IF
+ LOG_KDIAG("SAHARA : Disabling the clocks\n")
+#endif /* DIAG_DRV_IF */
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 18))
+ mxc_clks_disable(SAHARA2_CLK);
+#else
+ {
+ struct clk *clk = clk_get(NULL, "sahara_clk");
+ if (!IS_ERR(clk))
+ clk_disable(clk);
+ clk_put(clk);
+ }
+#endif
+
+ }
+
+
+ /* if SAHARA needs to be reset, do it here. This starts a descriptor chain
+ * if one is ready also */
+ if (reset_flag) {
+ sah_reset_sahara_request();
+ }
+
+ /* now handle the descriptor chain(s) that has/have completed */
+ do {
+
+ os_lock_save_context(desc_queue_lock, lock_flags);
+
+ first_entry = main_queue->head;
+ if ((first_entry != NULL) &&
+ (first_entry->status == SAH_STATE_OFF_SAHARA)) {
+ sah_Queue_Remove_Entry(main_queue);
+ os_unlock_restore_context(desc_queue_lock, lock_flags);
+
+ sah_process_finished_request(first_entry,
+ (first_entry->
+ error_status != 0));
+ } else {
+ os_unlock_restore_context(desc_queue_lock, lock_flags);
+ break;
+ }
+ } while (1);
+
+ return;
+}
+
+#endif /* ifndef SAHARA_POLL_MODE */
+
+/*!
+ * This is a helper function for Queue Manager. This function finds the first
+ * entry in the Queue Manager's queue whose state matches the given input
+ * state. This function starts at the head of the queue and works towards the
+ * tail. If a matching entry was found, the address of the entry is returned.
+ *
+ * @brief Handle the IDLE state.
+ *
+ * @param state A sah_Queue_Status value.
+ *
+ * @pre The #desc_queue_lock must be held before calling this function.
+ *
+ * @return A pointer to a sah_Head_Desc that matches the given state.
+ * @return NULL otherwise.
+ */
+sah_Head_Desc *sah_Find_With_State(sah_Queue_Status state)
+{
+ sah_Head_Desc *current_entry = NULL;
+ sah_Head_Desc *ret_val = NULL;
+ int done_looping = FALSE;
+
+ /* Start at the head */
+ current_entry = main_queue->head;
+
+ while ((current_entry != NULL) && (done_looping == FALSE)) {
+ if (current_entry->status == state) {
+ done_looping = TRUE;
+ ret_val = current_entry;
+ }
+ /* Jump to the next entry. */
+ current_entry = current_entry->next;
+ }
+
+ return ret_val;
+} /* sah_postprocess_queue */
+
+/*!
+ * Process the value from the Sahara error status register and convert it into
+ * an FSL SHW API error code.
+ *
+ * Warning, this routine must only be called if an error exists.
+ *
+ * @param error_status The value from the error status register.
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+fsl_shw_return_t sah_convert_error_status(uint32_t error_status)
+{
+ fsl_shw_return_t ret = FSL_RETURN_ERROR_S; /* catchall */
+ uint8_t error_source;
+ uint8_t DMA_error_status;
+ uint8_t DMA_error_size;
+
+ /* get the error source from the error status register */
+ error_source = error_status & SAH_ERROR_MASK;
+
+ /* array size is maximum allowed by mask, so no boundary checking is
+ * needed here */
+ ret = sah_Execute_Error_Array[error_source];
+
+ /* is this one that needs additional fields checked to determine the
+ * error condition? */
+ if (ret == SHA_ERROR_STATUS_CONTINUE) {
+ /* check the DMA fields */
+ if (error_source == SAH_ERR_DMA) {
+ /* get the DMA transfer error size. If this indicates that no
+ * error was detected, something is seriously wrong */
+ DMA_error_size =
+ (error_status >> 9) & SAH_DMA_ERR_SIZE_MASK;
+ if (DMA_error_size == SAH_DMA_NO_ERR) {
+ ret = FSL_RETURN_INTERNAL_ERROR_S;
+ } else {
+ /* get DMA error status */
+ DMA_error_status = (error_status >> 12) &
+ SAH_DMA_ERR_STATUS_MASK;
+
+ /* the DMA error bits cover all the even numbers. By dividing
+ * by 2 it can be used as an index into the error array */
+ ret =
+ sah_DMA_Error_Status_Array[DMA_error_status
+ >> 1];
+ }
+ } else { /* not SAH_ERR_DMA, so must be SAH_ERR_CHA */
+ uint16_t CHA_error_status;
+ uint8_t CHA_error_source;
+
+ /* get CHA Error Source. If this indicates that no error was
+ * detected, something is seriously wrong */
+ CHA_error_source =
+ (error_status >> 28) & SAH_CHA_ERR_SOURCE_MASK;
+ if (CHA_error_source == SAH_CHA_NO_ERROR) {
+ ret = FSL_RETURN_INTERNAL_ERROR_S;
+ } else {
+ uint32_t mask = 1;
+ uint32_t count = 0;
+
+ /* get CHA Error Status */
+ CHA_error_status = (error_status >> 16) &
+ SAH_CHA_ERR_STATUS_MASK;
+
+ /* If more than one bit is set (which shouldn't happen), only
+ * the first will be captured */
+ if (CHA_error_status != 0) {
+ count = 1;
+ while (CHA_error_status != mask) {
+ ++count;
+ mask <<= 1;
+ }
+ }
+
+ ret = sah_CHA_Error_Status_Array[count];
+ }
+ }
+ }
+
+ return ret;
+}
+
+fsl_shw_return_t sah_convert_op_status(uint32_t op_status)
+{
+ unsigned op_source = (op_status >> 28) & 0x7;
+ unsigned op_detail = op_status & 0x3f;
+ fsl_shw_return_t ret = FSL_RETURN_ERROR_S;
+
+ switch (op_source) {
+ case 1: /* SKHA */
+ /* Can't this have "ICV" error from CCM ?? */
+ break;
+ case 2: /* MDHA */
+ if (op_detail == 1) {
+ ret = FSL_RETURN_AUTH_FAILED_S;
+ }
+ break;
+ case 3: /* RNGA */
+ /* Self-test and Compare errors... what to do? */
+ break;
+ case 4: /* PKHA */
+ switch (op_detail) {
+ case 0x01:
+ ret = FSL_RETURN_PRIME_S;
+ break;
+ case 0x02:
+ ret = FSL_RETURN_NOT_PRIME_S;
+ break;
+ case 0x04:
+ ret = FSL_RETURN_POINT_AT_INFINITY_S;
+ break;
+ case 0x08:
+ ret = FSL_RETURN_POINT_NOT_AT_INFINITY_S;
+ break;
+ case 0x10:
+ ret = FSL_RETURN_GCD_IS_ONE_S;
+ break;
+ case 0x20:
+ ret = FSL_RETURN_GCD_IS_NOT_ONE_S;
+ break;
+ default:
+ break;
+ }
+ break;
+ default:
+ break;
+ }
+ return ret;
+}
+
+#ifdef DIAG_DRV_STATUS
+
+/*!
+ * This function logs the diagnostic information for the given error and
+ * descriptor address. Only used for diagnostic purposes.
+ *
+ * @brief (debug only) Log a description of hardware-detected error.
+ *
+ * @param descriptor The descriptor address that caused the error
+ * @param error The SAHARA error code
+ * @param fault_address Value from the Fault address register
+ *
+ * @return void
+ */
+void sah_Log_Error(uint32_t descriptor, uint32_t error, uint32_t fault_address)
+{
+ char *source_text; /* verbose error source from register */
+ char *address; /* string buffer for descriptor address */
+ char *error_log; /* the complete logging message */
+ char *cha_log = NULL; /* string buffer for descriptor address */
+ char *dma_log = NULL; /* string buffer for descriptor address */
+
+ uint16_t cha_error = 0;
+ uint16_t dma_error = 0;
+
+ uint8_t error_source;
+ sah_Execute_Error return_code;
+
+ /* log error code and descriptor address */
+ error_source = error & SAH_ERROR_MASK;
+ return_code = sah_Execute_Error_Array[error_source];
+
+ source_text = os_alloc_memory(64, GFP_KERNEL);
+
+ switch (error_source) {
+ case SAH_ERR_HEADER:
+ sprintf(source_text, "%s", "Header is not valid");
+ break;
+
+ case SAH_ERR_DESC_LENGTH:
+ sprintf(source_text, "%s",
+ "Descriptor length not equal to sum of link lengths");
+ break;
+
+ case SAH_ERR_DESC_POINTER:
+ sprintf(source_text, "%s", "Length or pointer "
+ "field is zero while the other is non-zero");
+ break;
+
+ case SAH_ERR_LINK_LENGTH:
+ /* note that the Sahara Block Guide 2.7 has an invalid explaination
+ * of this. It only happens when a link length is zero */
+ sprintf(source_text, "%s", "A data length is a link is zero");
+ break;
+
+ case SAH_ERR_LINK_POINTER:
+ sprintf(source_text, "%s",
+ "The data pointer in a link is zero");
+ break;
+
+ case SAH_ERR_INPUT_BUFFER:
+ sprintf(source_text, "%s", "Input Buffer reported an overflow");
+ break;
+
+ case SAH_ERR_OUTPUT_BUFFER:
+ sprintf(source_text, "%s",
+ "Output Buffer reported an underflow");
+ break;
+
+ case SAH_ERR_OUTPUT_BUFFER_STARVATION:
+ sprintf(source_text, "%s", "Incorrect data in output "
+ "buffer after CHA has signalled 'done'");
+ break;
+
+ case SAH_ERR_INTERNAL_STATE:
+ sprintf(source_text, "%s", "Internal Hardware Failure");
+ break;
+
+ case SAH_ERR_GENERAL_DESCRIPTOR:
+ sprintf(source_text, "%s",
+ "Current Descriptor was not legal, but cause is unknown");
+ break;
+
+ case SAH_ERR_RESERVED_FIELDS:
+ sprintf(source_text, "%s",
+ "Reserved pointer field is non-zero");
+ break;
+
+ case SAH_ERR_DESCRIPTOR_ADDRESS:
+ sprintf(source_text, "%s",
+ "Descriptor address not word aligned");
+ break;
+
+ case SAH_ERR_LINK_ADDRESS:
+ sprintf(source_text, "%s", "Link address not word aligned");
+ break;
+
+ case SAH_ERR_CHA:
+ sprintf(source_text, "%s", "CHA Error");
+ {
+ char *cha_module = os_alloc_memory(5, GFP_KERNEL);
+ char *cha_text = os_alloc_memory(45, GFP_KERNEL);
+
+ cha_error = (error >> 28) & SAH_CHA_ERR_SOURCE_MASK;
+
+ switch (cha_error) {
+ case SAH_CHA_SKHA_ERROR:
+ sprintf(cha_module, "%s", "SKHA");
+ break;
+
+ case SAH_CHA_MDHA_ERROR:
+ sprintf(cha_module, "%s", "MDHA");
+ break;
+
+ case SAH_CHA_RNG_ERROR:
+ sprintf(cha_module, "%s", "RNG ");
+ break;
+
+ case SAH_CHA_PKHA_ERROR:
+ sprintf(cha_module, "%s", "PKHA");
+ break;
+
+ case SAH_CHA_NO_ERROR:
+ /* can't happen */
+ /* no break */
+ default:
+ sprintf(cha_module, "%s", "????");
+ break;
+ }
+
+ cha_error = (error >> 16) & SAH_CHA_ERR_STATUS_MASK;
+
+ /* Log CHA Error Status */
+ switch (cha_error) {
+ case SAH_CHA_IP_BUF:
+ sprintf(cha_text, "%s",
+ "Non-empty input buffer when done");
+ break;
+
+ case SAH_CHA_ADD_ERR:
+ sprintf(cha_text, "%s", "Illegal address");
+ break;
+
+ case SAH_CHA_MODE_ERR:
+ sprintf(cha_text, "%s", "Illegal mode");
+ break;
+
+ case SAH_CHA_DATA_SIZE_ERR:
+ sprintf(cha_text, "%s", "Illegal data size");
+ break;
+
+ case SAH_CHA_KEY_SIZE_ERR:
+ sprintf(cha_text, "%s", "Illegal key size");
+ break;
+
+ case SAH_CHA_PROC_ERR:
+ sprintf(cha_text, "%s",
+ "Mode/Context/Key written during processing");
+ break;
+
+ case SAH_CHA_CTX_READ_ERR:
+ sprintf(cha_text, "%s",
+ "Context read during processing");
+ break;
+
+ case SAH_CHA_INTERNAL_HW_ERR:
+ sprintf(cha_text, "%s", "Internal hardware");
+ break;
+
+ case SAH_CHA_IP_BUFF_ERR:
+ sprintf(cha_text, "%s",
+ "Input buffer not enabled or underflow");
+ break;
+
+ case SAH_CHA_OP_BUFF_ERR:
+ sprintf(cha_text, "%s",
+ "Output buffer not enabled or overflow");
+ break;
+
+ case SAH_CHA_DES_KEY_ERR:
+ sprintf(cha_text, "%s", "DES key parity error");
+ break;
+
+ case SAH_CHA_RES:
+ sprintf(cha_text, "%s", "Reserved");
+ break;
+
+ case SAH_CHA_NO_ERR:
+ /* can't happen */
+ /* no break */
+ default:
+ sprintf(cha_text, "%s", "Unknown error");
+ break;
+ }
+
+ cha_log = os_alloc_memory(90, GFP_KERNEL);
+ sprintf(cha_log,
+ " Module %s encountered the error: %s.",
+ cha_module, cha_text);
+
+ os_free_memory(cha_module);
+ os_free_memory(cha_text);
+
+ {
+ uint32_t mask = 1;
+ uint32_t count = 0;
+
+ if (cha_error != 0) {
+ count = 1;
+ while (cha_error != mask) {
+ ++count;
+ mask <<= 1;
+ }
+ }
+
+ return_code = sah_CHA_Error_Status_Array[count];
+ }
+ cha_error = 1;
+ }
+ break;
+
+ case SAH_ERR_DMA:
+ sprintf(source_text, "%s", "DMA Error");
+ {
+ char *dma_direction = os_alloc_memory(6, GFP_KERNEL);
+ char *dma_size = os_alloc_memory(14, GFP_KERNEL);
+ char *dma_text = os_alloc_memory(250, GFP_KERNEL);
+
+ if ((dma_direction == NULL) || (dma_size == NULL) ||
+ (dma_text == NULL)) {
+ LOG_KDIAG
+ ("No memory allocated for DMA debug messages\n");
+ }
+
+ /* log DMA error direction */
+ sprintf(dma_direction, "%s",
+ (((error >> 8) & SAH_DMA_ERR_DIR_MASK) == 1) ?
+ "read" : "write");
+
+ /* log the size of the DMA transfer error */
+ dma_error = (error >> 9) & SAH_DMA_ERR_SIZE_MASK;
+ switch (dma_error) {
+ case SAH_DMA_SIZE_BYTE:
+ sprintf(dma_size, "%s", "byte");
+ break;
+
+ case SAH_DMA_SIZE_HALF_WORD:
+ sprintf(dma_size, "%s", "half-word");
+ break;
+
+ case SAH_DMA_SIZE_WORD:
+ sprintf(dma_size, "%s", "word");
+ break;
+
+ case SAH_DMA_SIZE_RES:
+ sprintf(dma_size, "%s", "reserved size");
+ break;
+
+ default:
+ sprintf(dma_size, "%s", "unknown size");
+ break;
+ }
+
+ /* log DMA error status */
+ dma_error = (error >> 12) & SAH_DMA_ERR_STATUS_MASK;
+ switch (dma_error) {
+ case SAH_DMA_NO_ERR:
+ sprintf(dma_text, "%s", "No DMA Error Code");
+ break;
+
+ case SAH_DMA_AHB_ERR:
+ sprintf(dma_text, "%s",
+ "AHB terminated a bus cycle with an error");
+ break;
+
+ case SAH_DMA_IP_ERR:
+ sprintf(dma_text, "%s",
+ "Internal IP bus cycle was terminated with an "
+ "error termination. This would likely be "
+ "caused by a descriptor length being too "
+ "large, and thus accessing an illegal "
+ "internal address. Verify the length field "
+ "of the current descriptor");
+ break;
+
+ case SAH_DMA_PARITY_ERR:
+ sprintf(dma_text, "%s",
+ "Parity error detected on DMA command from "
+ "Descriptor Decoder. Cause is likely to be "
+ "internal hardware fault");
+ break;
+
+ case SAH_DMA_BOUNDRY_ERR:
+ sprintf(dma_text, "%s",
+ "DMA was requested to cross a 256 byte "
+ "internal address boundary. Cause is likely a "
+ "descriptor length being too large, thus "
+ "accessing two different internal hardware "
+ "blocks");
+ break;
+
+ case SAH_DMA_BUSY_ERR:
+ sprintf(dma_text, "%s",
+ "Descriptor Decoder has made a DMA request "
+ "while the DMA controller is busy. Cause is "
+ "likely due to hardware fault");
+ break;
+
+ case SAH_DMA_RESERVED_ERR:
+ sprintf(dma_text, "%s", "Reserved");
+ break;
+
+ case SAH_DMA_INT_ERR:
+ sprintf(dma_text, "%s",
+ "Internal DMA hardware error detected. The "
+ "DMA controller has detected an internal "
+ "condition which should never occur");
+ break;
+
+ default:
+ sprintf(dma_text, "%s",
+ "Unknown DMA Error Status Code");
+ break;
+ }
+
+ return_code =
+ sah_DMA_Error_Status_Array[dma_error >> 1];
+ dma_error = 1;
+
+ dma_log = os_alloc_memory(320, GFP_KERNEL);
+ sprintf(dma_log,
+ " Occurred during a %s operation of a %s transfer: %s.",
+ dma_direction, dma_size, dma_text);
+
+ os_free_memory(dma_direction);
+ os_free_memory(dma_size);
+ os_free_memory(dma_text);
+ }
+ break;
+
+ case SAH_ERR_NONE:
+ default:
+ sprintf(source_text, "%s", "Unknown Error Code");
+ break;
+ }
+
+ address = os_alloc_memory(35, GFP_KERNEL);
+
+ /* convert error & descriptor address to strings */
+ if (dma_error) {
+ sprintf(address, "Fault address is 0x%08x", fault_address);
+ } else {
+ sprintf(address, "Descriptor bus address is 0x%08x",
+ descriptor);
+ }
+
+ if (return_code > FSL_INVALID_RETURN) {
+ return_code = FSL_INVALID_RETURN;
+ }
+
+ error_log = os_alloc_memory(250, GFP_KERNEL);
+
+ /* construct final log message */
+ sprintf(error_log, "Error source = 0x%08x. Return = %s. %s. %s.",
+ error, sah_return_text[return_code], address, source_text);
+
+ os_free_memory(source_text);
+ os_free_memory(address);
+
+ /* log standard messages */
+ LOG_KDIAG(error_log);
+ os_free_memory(error_log);
+
+ /* add additional information if available */
+ if (cha_error) {
+ LOG_KDIAG(cha_log);
+ os_free_memory(cha_log);
+ }
+
+ if (dma_error) {
+ LOG_KDIAG(dma_log);
+ os_free_memory(dma_log);
+ }
+
+ return;
+} /* sah_Log_Error */
+
+#endif /* DIAG_DRV_STATUS */
+
+/* End of sah_queue_manager.c */
diff --git a/drivers/mxc/security/sahara2/sah_status_manager.c b/drivers/mxc/security/sahara2/sah_status_manager.c
new file mode 100644
index 000000000000..f881b47591c2
--- /dev/null
+++ b/drivers/mxc/security/sahara2/sah_status_manager.c
@@ -0,0 +1,714 @@
+/*
+ * Copyright (C) 2004-2011 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+* @file sah_status_manager.c
+*
+* @brief Status Manager Function
+*
+* This file contains the function which processes the Sahara status register
+* during an interrupt.
+*
+* This file does not need porting.
+*/
+
+#include "portable_os.h"
+
+#include <sah_status_manager.h>
+#include <sah_hardware_interface.h>
+#include <sah_queue_manager.h>
+#include <sah_memory_mapper.h>
+#include <sah_kernel.h>
+
+#if defined(DIAG_DRV_INTERRUPT) && defined(DIAG_DURING_INTERRUPT)
+#include <diagnostic.h>
+#endif
+
+/*! Compile-time flag to count various interrupt types. */
+#define DIAG_INT_COUNT
+
+/*!
+ * Number of interrupts processed with Done1Done2 status. Updates to this
+ * value should only be done in interrupt processing.
+ */
+uint32_t done1_count;
+
+/*!
+ * Number of interrupts processed with Done1Busy2 status. Updates to this
+ * value should only be done in interrupt processing.
+ */
+uint32_t done1busy2_count;
+
+/*!
+ * Number of interrupts processed with Done1Done2 status. Updates to this
+ * value should only be done in interrupt processing.
+ */
+uint32_t done1done2_count;
+
+/*!
+ * the dynameic power management flag is false when power management is not
+ * asserted and true when dpm is.
+ */
+#ifdef SAHARA_POWER_MANAGEMENT
+bool sah_dpm_flag = FALSE;
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,11)
+static int sah_dpm_suspend(struct device *dev, uint32_t state, uint32_t level);
+static int sah_dpm_resume(struct device *dev, uint32_t level);
+#else
+static int sah_dpm_suspend(struct platform_device *dev, pm_message_t state);
+static int sah_dpm_resume(struct platform_device *dev);
+#endif
+#endif
+
+#ifndef SAHARA_POLL_MODE
+/*!
+*******************************************************************************
+* This functionx processes the status register of the Sahara, updates the state
+* of the finished queue entry, and then tries to find more work for Sahara to
+* do.
+*
+* @brief The bulk of the interrupt handling code.
+*
+* @param hw_status The status register of Sahara at time of interrupt.
+* The Clear interrupt bit is already handled by this
+* register read prior to entry into this function.
+* @return void
+*/
+unsigned long sah_Handle_Interrupt(sah_Execute_Status hw_status)
+{
+ unsigned long reset_flag = 0; /* assume no SAHARA reset needed */
+ os_lock_context_t lock_flags;
+ sah_Head_Desc *current_entry;
+
+ /* HW status at time of interrupt */
+ sah_Execute_Status state = hw_status & SAH_EXEC_STATE_MASK;
+
+ do {
+ uint32_t dar;
+
+#ifdef DIAG_INT_COUNT
+ if (state == SAH_EXEC_DONE1) {
+ done1_count++;
+ } else if (state == SAH_EXEC_DONE1_BUSY2) {
+ done1busy2_count++;
+ } else if (state == SAH_EXEC_DONE1_DONE2) {
+ done1done2_count++;
+ }
+#endif
+
+ /* if the first entry on sahara has completed... */
+ if ((state & SAH_EXEC_DONE1_BIT) ||
+ (state == SAH_EXEC_ERROR1)) {
+ /* lock queue while searching */
+ os_lock_save_context(desc_queue_lock, lock_flags);
+ current_entry =
+ sah_Find_With_State(SAH_STATE_ON_SAHARA);
+ os_unlock_restore_context(desc_queue_lock, lock_flags);
+
+ /* an active descriptor was not found */
+ if (current_entry == NULL) {
+ /* change state to avoid an infinite loop (possible if
+ * state is SAH_EXEC_DONE1_BUSY2 first time into loop) */
+ hw_status = SAH_EXEC_IDLE;
+#if defined(DIAG_DRV_INTERRUPT) && defined(DIAG_DURING_INTERRUPT)
+ LOG_KDIAG
+ ("Interrupt received with nothing on queue.");
+#endif
+ } else {
+ /* SAHARA has completed its work on this descriptor chain */
+ current_entry->status = SAH_STATE_OFF_SAHARA;
+
+ if (state == SAH_EXEC_ERROR1) {
+ if (hw_status & STATUS_ERROR) {
+ /* Gather extra diagnostic information */
+ current_entry->fault_address =
+ sah_HW_Read_Fault_Address();
+ /* Read this last - it clears the error */
+ current_entry->error_status =
+ sah_HW_Read_Error_Status();
+ current_entry->op_status = 0;
+#ifdef FSL_HAVE_SAHARA4
+ } else {
+ current_entry->op_status =
+ sah_HW_Read_Op_Status();
+ current_entry->error_status = 0;
+#endif
+ }
+
+ } else {
+ /* indicate that no errors were found with descriptor
+ * chain 1 */
+ current_entry->error_status = 0;
+ current_entry->op_status = 0;
+
+ /* is there a second, successfully, completed descriptor
+ * chain? (done1/error2 processing is handled later) */
+ if (state == SAH_EXEC_DONE1_DONE2) {
+ os_lock_save_context
+ (desc_queue_lock,
+ lock_flags);
+ current_entry =
+ sah_Find_With_State
+ (SAH_STATE_ON_SAHARA);
+ os_unlock_restore_context
+ (desc_queue_lock,
+ lock_flags);
+
+ if (current_entry == NULL) {
+#if defined(DIAG_DRV_INTERRUPT) && defined(DIAG_DURING_INTERRUPT)
+ LOG_KDIAG
+ ("Done1_Done2 Interrupt received with "
+ "one entry on queue.");
+#endif
+ } else {
+ /* indicate no errors in descriptor chain 2 */
+ current_entry->
+ error_status = 0;
+ current_entry->status =
+ SAH_STATE_OFF_SAHARA;
+ }
+ }
+ }
+ }
+
+#ifdef SAHARA_POWER_MANAGEMENT
+ /* check dynamic power management is not asserted */
+ if (!sah_dpm_flag) {
+#endif
+ do {
+ /* protect DAR and main_queue */
+ os_lock_save_context(desc_queue_lock,
+ lock_flags);
+ dar = sah_HW_Read_DAR();
+ /* check if SAHARA has space for another descriptor. SAHARA
+ * only accepts up to the DAR queue size number of DAR
+ * entries, after that 'dar' will not be zero until the
+ * pending interrupt is serviced */
+ if (dar == 0) {
+ current_entry =
+ sah_Find_With_State
+ (SAH_STATE_PENDING);
+ if (current_entry != NULL) {
+#ifndef SUBMIT_MULTIPLE_DARS
+ /* BUG FIX: state machine can transition from Done1
+ * Busy2 directly to Idle. To fix that problem,
+ * only one DAR is being allowed on SAHARA at a
+ * time. If a high level interrupt has happened,
+ * there could * be an active descriptor chain */
+ if (sah_Find_With_State
+ (SAH_STATE_ON_SAHARA)
+ == NULL) {
+#endif
+#if defined(DIAG_DRV_IF) && defined(DIAG_DURING_INTERRUPT)
+ sah_Dump_Chain
+ (&current_entry->
+ desc,
+ current_entry->
+ desc.
+ dma_addr);
+#endif /* DIAG_DRV_IF */
+ sah_HW_Write_DAR
+ (current_entry->
+ desc.
+ dma_addr);
+ current_entry->
+ status =
+ SAH_STATE_ON_SAHARA;
+#ifndef SUBMIT_MULTIPLE_DARS
+ }
+ current_entry = NULL; /* exit loop */
+#endif
+ }
+ }
+ os_unlock_restore_context
+ (desc_queue_lock, lock_flags);
+ } while ((dar == 0) && (current_entry != NULL));
+#ifdef SAHARA_POWER_MANAGEMENT
+ } /* sah_device_power_manager */
+#endif
+ } else {
+ if (state == SAH_EXEC_FAULT) {
+ sah_Head_Desc *previous_entry; /* point to chain 1 */
+ /* Address of request when fault occured */
+ uint32_t bad_dar = sah_HW_Read_IDAR();
+
+ reset_flag = 1; /* SAHARA needs to be reset */
+
+ /* get first of possible two descriptor chain that was
+ * on SAHARA */
+ os_lock_save_context(desc_queue_lock,
+ lock_flags);
+ previous_entry =
+ sah_Find_With_State(SAH_STATE_ON_SAHARA);
+ os_unlock_restore_context(desc_queue_lock,
+ lock_flags);
+
+ /* if it exists, continue processing the fault */
+ if (previous_entry) {
+ /* assume this chain didn't complete correctly */
+ previous_entry->error_status = -1;
+ previous_entry->status =
+ SAH_STATE_OFF_SAHARA;
+
+ /* get the second descriptor chain */
+ os_lock_save_context(desc_queue_lock,
+ lock_flags);
+ current_entry =
+ sah_Find_With_State
+ (SAH_STATE_ON_SAHARA);
+ os_unlock_restore_context
+ (desc_queue_lock, lock_flags);
+
+ /* if it exists, continue processing both chains */
+ if (current_entry) {
+ /* assume this chain didn't complete correctly */
+ current_entry->error_status =
+ -1;
+ current_entry->status =
+ SAH_STATE_OFF_SAHARA;
+
+ /* now see if either can be identified as the one
+ * in progress when the fault occured */
+ if (current_entry->desc.
+ dma_addr == bad_dar) {
+ /* the second descriptor chain was active when the
+ * fault occured, so the first descriptor chain
+ * was successfull */
+ previous_entry->
+ error_status = 0;
+ } else {
+ if (previous_entry->
+ desc.dma_addr ==
+ bad_dar) {
+ /* if the first chain was in progress when the
+ * fault occured, the second has not yet been
+ * touched, so reset it to PENDING */
+ current_entry->
+ status =
+ SAH_STATE_PENDING;
+ }
+ }
+ }
+ }
+#if defined(DIAG_DRV_INTERRUPT) && defined(DIAG_DURING_INTERRUPT)
+ } else {
+ /* shouldn't ever get here */
+ if (state == SAH_EXEC_BUSY) {
+ LOG_KDIAG
+ ("Got Sahara interrupt in Busy state");
+ } else {
+ if (state == SAH_EXEC_IDLE) {
+ LOG_KDIAG
+ ("Got Sahara interrupt in Idle state");
+ } else {
+ LOG_KDIAG
+ ("Got Sahara interrupt in unknown state");
+ }
+ }
+#endif
+ }
+ }
+
+ /* haven't handled the done1/error2 (the error 2 part), so setup to
+ * do that now. Otherwise, exit loop */
+ state = (state == SAH_EXEC_DONE1_ERROR2) ?
+ SAH_EXEC_ERROR1 : SAH_EXEC_IDLE;
+
+ /* Keep going while further status is available. */
+ } while (state == SAH_EXEC_ERROR1);
+
+ return reset_flag;
+}
+
+#endif /* ifndef SAHARA_POLL_MODE */
+
+#ifdef SAHARA_POLL_MODE
+/*!
+*******************************************************************************
+* Submits descriptor chain to SAHARA, polls on SAHARA for completion, process
+* results, and dephysicalizes chain
+*
+* @brief Handle poll mode.
+*
+* @param entry Virtual address of a physicalized chain
+*
+* @return 0 this function is always successful
+*/
+
+unsigned long sah_Handle_Poll(sah_Head_Desc * entry)
+{
+ sah_Execute_Status hw_status; /* Sahara's status register */
+ os_lock_context_t lock_flags;
+
+ /* lock SARAHA */
+ os_lock_save_context(desc_queue_lock, lock_flags);
+
+#ifdef SAHARA_POWER_MANAGEMENT
+ /* check if the dynamic power management is asserted */
+ if (sah_dpm_flag) {
+ /* return that request failed to be processed */
+ entry->result = FSL_RETURN_ERROR_S;
+ entry->fault_address = 0xBAD;
+ entry->op_status= 0xBAD;
+ entry->error_status = 0xBAD;
+ } else {
+#endif /* SAHARA_POWER_MANAGEMENT */
+
+#if defined(DIAG_DRV_IF)
+ sah_Dump_Chain(&entry->desc, entry->desc.dma_addr);
+#endif /* DIAG_DRV_IF */
+ /* Nothing can be in the dar if we got the lock */
+ sah_HW_Write_DAR((uint32_t) (entry->desc.dma_addr));
+
+ /* Wait for SAHARA to finish with this entry */
+ hw_status = sah_Wait_On_Sahara();
+
+ /* if entry completed successfully, mark it as such */
+ /**** HARDWARE ERROR WORK AROUND (hw_status == SAH_EXEC_IDLE) *****/
+ if (
+#ifndef SUBMIT_MULTIPLE_DARS
+ (hw_status == SAH_EXEC_IDLE) || (hw_status == SAH_EXEC_DONE1_BUSY2) || /* should not happen */
+#endif
+ (hw_status == SAH_EXEC_DONE1)
+ ) {
+ entry->error_status = 0;
+ entry->result = FSL_RETURN_OK_S;
+ } else {
+ /* SAHARA is reporting an error with entry */
+ if (hw_status == SAH_EXEC_ERROR1) {
+ /* Gather extra diagnostic information */
+ entry->fault_address =
+ sah_HW_Read_Fault_Address();
+ /* Read this register last - it clears the error */
+ entry->error_status =
+ sah_HW_Read_Error_Status();
+ entry->op_status = 0;
+ /* translate from SAHARA error status to fsl_shw return values */
+ entry->result =
+ sah_convert_error_status(entry->
+ error_status);
+#ifdef DIAG_DRV_STATUS
+ sah_Log_Error(entry->op_status,
+ entry->error_status,
+ entry->fault_address);
+#endif
+ } else if (hw_status == SAH_EXEC_OPSTAT1) {
+ entry->op_status = sah_HW_Read_Op_Status();
+ entry->error_status = 0;
+ entry->result =
+ sah_convert_op_status(op_status);
+ } else {
+ /* SAHARA entered FAULT state (or something bazaar has
+ * happened) */
+ pr_debug
+ ("Sahara: hw_status = 0x%x; Stat: 0x%08x; IDAR: 0x%08x; "
+ "CDAR: 0x%08x; FltAdr: 0x%08x; Estat: 0x%08x\n",
+ hw_status, sah_HW_Read_Status(),
+ sah_HW_Read_IDAR(), sah_HW_Read_CDAR(),
+ sah_HW_Read_Fault_Address(),
+ sah_HW_Read_Error_Status());
+#ifdef DIAG_DRV_IF
+ {
+ int old_level = console_loglevel;
+ console_loglevel = 8;
+ sah_Dump_Chain(&(entry->desc),
+ entry->desc.dma_addr);
+ console_loglevel = old_level;
+ }
+#endif
+
+ entry->error_status = -1;
+ entry->result = FSL_RETURN_ERROR_S;
+ sah_HW_Reset();
+ }
+ }
+#ifdef SAHARA_POWER_MANAGEMENT
+ }
+#endif
+
+ if (!(entry->uco_flags & FSL_UCO_BLOCKING_MODE)) {
+ /* put it in results pool to allow get_results to work */
+ sah_Queue_Append_Entry(&entry->user_info->result_pool, entry);
+ if (entry->uco_flags & FSL_UCO_CALLBACK_MODE) {
+ /* invoke callback */
+ entry->user_info->callback(entry->user_info);
+ }
+ } else {
+ /* convert the descriptor link back to virtual memory, mark dirty pages
+ * if they are from user mode, and release the page cache for user
+ * pages
+ */
+ entry = sah_DePhysicalise_Descriptors(entry);
+ }
+
+ os_unlock_restore_context(desc_queue_lock, lock_flags);
+
+ return 0;
+}
+
+#endif /* SAHARA_POLL_MODE */
+
+/******************************************************************************
+* The following is the implementation of the Dynamic Power Management
+* functionality.
+******************************************************************************/
+#ifdef SAHARA_POWER_MANAGEMENT
+
+static bool sah_dpm_init_flag;
+
+/* dynamic power management information for the sahara driver */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,11)
+static struct device_driver sah_dpm_driver = {
+ .name = "sahara_",
+ .bus = &platform_bus_type,
+#else
+static struct platform_driver sah_dpm_driver = {
+ .driver.name = "sahara_",
+ .driver.bus = &platform_bus_type,
+#endif
+ .suspend = sah_dpm_suspend,
+ .resume = sah_dpm_resume
+};
+
+/* dynamic power management information for the sahara HW device */
+static struct platform_device sah_dpm_device = {
+ .name = "sahara_",
+ .id = 1,
+};
+
+/*!
+*******************************************************************************
+* Initilaizes the dynamic power managment functionality
+*
+* @brief Initialization of the Dynamic Power Management functionality
+*
+* @return 0 = success; failed otherwise
+*/
+int sah_dpm_init()
+{
+ int status;
+
+ /* dpm is not asserted */
+ sah_dpm_flag = FALSE;
+
+ /* register the driver to the kernel */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,11)
+ status = os_register_to_driver(&sah_dpm_driver);
+#else
+ status = os_register_to_driver(&sah_dpm_driver.driver);
+#endif
+
+ if (status == 0) {
+ /* register a single sahara chip */
+ /*status = platform_device_register(&sah_dpm_device); */
+ status = os_register_a_device(&sah_dpm_device);
+
+ /* if something went awry, unregister the driver */
+ if (status != 0) {
+ /*driver_unregister(&sah_dpm_driver); */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,11)
+ os_unregister_from_driver(&sah_dpm_driver);
+#else
+ os_unregister_from_driver(&sah_dpm_driver.driver);
+#endif
+ sah_dpm_init_flag = FALSE;
+ } else {
+ /* if everything went okay, flag that life is good */
+ sah_dpm_init_flag = TRUE;
+ }
+ }
+
+ /* let the kernel know how it went */
+ return status;
+
+}
+
+/*!
+*******************************************************************************
+* Unregister the dynamic power managment functionality
+*
+* @brief Unregister the Dynamic Power Management functionality
+*
+*/
+void sah_dpm_close()
+{
+ /* if dynamic power management was initilaized, kill it */
+ if (sah_dpm_init_flag == TRUE) {
+ /*driver_unregister(&sah_dpm_driver); */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,11)
+ os_unregister_from_driver(&sah_dpm_driver);
+#else
+ os_unregister_from_driver(&sah_dpm_driver.driver);
+#endif
+ /*platform_device_register(&sah_dpm_device); */
+ os_unregister_a_device(&sah_dpm_device);
+ }
+}
+
+/*!
+*******************************************************************************
+* Callback routine defined by the Linux Device Model / Dynamic Power management
+* extension. It sets a global flag to disallow the driver to enter queued items
+* into Sahara's DAR.
+*
+* It allows the current active descriptor chains to complete before it returns
+*
+* @brief Suspends the driver
+*
+* @param dev contains device information
+* @param state contains state information
+* @param level level of shutdown
+*
+* @return 0 = success; failed otherwise
+*/
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,11)
+static int sah_dpm_suspend(struct device *dev, uint32_t state, uint32_t level)
+#else
+static int sah_dpm_suspend(struct platform_device *dev, pm_message_t state)
+#endif
+{
+ sah_Head_Desc *entry = NULL;
+ os_lock_context_t lock_flags;
+ int error_code = 0;
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,11)
+ switch (level) {
+ case SUSPEND_DISABLE:
+ /* Assert dynamic power management. This stops the driver from
+ * entering queued requests to Sahara */
+ sah_dpm_flag = TRUE;
+ break;
+
+ case SUSPEND_SAVE_STATE:
+ break;
+
+ case SUSPEND_POWER_DOWN:
+ /* hopefully between the DISABLE call and this one, the outstanding
+ * work Sahara was doing complete. this checks (and waits) for
+ * those entries that were already active on Sahara to complete */
+ /* lock queue while searching */
+ os_lock_save_context(desc_queue_lock, lock_flags);
+ do {
+ entry = sah_Find_With_State(SAH_STATE_ON_SAHARA);
+ } while (entry != NULL);
+ os_unlock_restore_context(desc_queue_lock, lock_flags);
+
+ /* now we kill the clock so the control circuitry isn't sucking
+ * any power */
+ mxc_clks_disable(SAHARA2_CLK);
+ break;
+ }
+#else
+ /* Assert dynamic power management. This stops the driver from
+ * entering queued requests to Sahara */
+ sah_dpm_flag = TRUE;
+
+ /* Now wait for any outstanding work Sahara was doing to complete.
+ * this checks (and waits) for
+ * those entries that were already active on Sahara to complete */
+ do {
+ /* lock queue while searching */
+ os_lock_save_context(desc_queue_lock, lock_flags);
+ entry = sah_Find_With_State(SAH_STATE_ON_SAHARA);
+ os_unlock_restore_context(desc_queue_lock, lock_flags);
+ } while (entry != NULL);
+
+ /* now we kill the clock so the control circuitry isn't sucking
+ * any power */
+ {
+ struct clk *clk = clk_get(NULL, "sahara_clk");
+ if (IS_ERR(clk))
+ error_code = PTR_ERR(clk);
+ else
+ clk_disable(clk);
+ }
+#endif
+
+ return error_code;
+}
+
+/*!
+*******************************************************************************
+* Callback routine defined by the Linux Device Model / Dynamic Power management
+* extension. It cleears a global flag to allow the driver to enter queued items
+* into Sahara's DAR.
+*
+* It primes the mechanism to start depleting the queue
+*
+* @brief Resumes the driver
+*
+* @param dev contains device information
+* @param level level of resumption
+*
+* @return 0 = success; failed otherwise
+*/
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,11)
+static int sah_dpm_resume(struct device *dev, uint32_t level)
+#else
+static int sah_dpm_resume(struct platform_device *dev)
+#endif
+{
+ sah_Head_Desc *entry = NULL;
+ os_lock_context_t lock_flags;
+ int error_code = 0;
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,11)
+ switch (level) {
+ case RESUME_POWER_ON:
+ /* enable Sahara's clock */
+ mxc_clks_enable(SAHARA2_CLK);
+ break;
+
+ case RESUME_RESTORE_STATE:
+ break;
+
+ case RESUME_ENABLE:
+ /* Disable dynamic power managment. This allows the driver to put
+ * entries into Sahara's DAR */
+ sah_dpm_flag = FALSE;
+
+ /* find a pending entry to prime the pump */
+ os_lock_save_context(desc_queue_lock, lock_flags);
+ entry = sah_Find_With_State(SAH_STATE_PENDING);
+ if (entry != NULL) {
+ sah_Queue_Manager_Prime(entry);
+ }
+ os_unlock_restore_context(desc_queue_lock, lock_flags);
+ break;
+ }
+#else
+ {
+ /* enable Sahara's clock */
+ struct clk *clk = clk_get(NULL, "sahara_clk");
+
+ if (IS_ERR(clk))
+ error_code = PTR_ERR(clk);
+ else
+ clk_disable(clk);
+ }
+ sah_dpm_flag = FALSE;
+
+ /* find a pending entry to prime the pump */
+ os_lock_save_context(desc_queue_lock, lock_flags);
+ entry = sah_Find_With_State(SAH_STATE_PENDING);
+ if (entry != NULL) {
+ sah_Queue_Manager_Prime(entry);
+ }
+ os_unlock_restore_context(desc_queue_lock, lock_flags);
+#endif
+ return error_code;
+}
+
+#endif /* SAHARA_POWER_MANAGEMENT */
diff --git a/drivers/mxc/security/sahara2/sf_util.c b/drivers/mxc/security/sahara2/sf_util.c
new file mode 100644
index 000000000000..12cc0161f4d4
--- /dev/null
+++ b/drivers/mxc/security/sahara2/sf_util.c
@@ -0,0 +1,1390 @@
+/*
+ * Copyright (C) 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/**
+* @file sf_util.c
+*
+* @brief Security Functions component API - Utility functions
+*
+* These are the 'Sahara api' functions which are used by the higher-level
+* FSL SHW API to build and then execute descriptor chains.
+*/
+
+
+#include "sf_util.h"
+#include <adaptor.h>
+
+#ifdef DIAG_SECURITY_FUNC
+#include <diagnostic.h>
+#endif /*DIAG_SECURITY_FUNC*/
+
+
+#ifdef __KERNEL__
+EXPORT_SYMBOL(sah_Append_Desc);
+EXPORT_SYMBOL(sah_Append_Link);
+EXPORT_SYMBOL(sah_Create_Link);
+EXPORT_SYMBOL(sah_Create_Key_Link);
+EXPORT_SYMBOL(sah_Destroy_Link);
+EXPORT_SYMBOL(sah_Descriptor_Chain_Execute);
+EXPORT_SYMBOL(sah_insert_mdha_algorithm);
+EXPORT_SYMBOL(sah_insert_skha_algorithm);
+EXPORT_SYMBOL(sah_insert_skha_mode);
+EXPORT_SYMBOL(sah_insert_skha_modulus);
+EXPORT_SYMBOL(sah_Descriptor_Chain_Destroy);
+EXPORT_SYMBOL(sah_add_two_in_desc);
+EXPORT_SYMBOL(sah_add_in_key_desc);
+EXPORT_SYMBOL(sah_add_two_out_desc);
+EXPORT_SYMBOL(sah_add_in_out_desc);
+EXPORT_SYMBOL(sah_add_key_out_desc);
+#endif
+
+#ifdef DEBUG_REWORK
+#ifndef __KERNEL__
+#include <stdio.h>
+#define os_printk printf
+#endif
+#endif
+
+/**
+ * Convert fsl_shw_hash_alg_t to mdha mode bits.
+ *
+ * Index must be maintained in order of fsl_shw_hash_alg_t enumeration!!!
+ */
+const uint32_t sah_insert_mdha_algorithm[] =
+{
+ [FSL_HASH_ALG_MD5] = sah_insert_mdha_algorithm_md5,
+ [FSL_HASH_ALG_SHA1] = sah_insert_mdha_algorithm_sha1,
+ [FSL_HASH_ALG_SHA224] = sah_insert_mdha_algorithm_sha224,
+ [FSL_HASH_ALG_SHA256] = sah_insert_mdha_algorithm_sha256,
+};
+
+/**
+ * Header bits for Algorithm field of SKHA header
+ *
+ * Index value must be kept in sync with fsl_shw_key_alg_t
+ */
+const uint32_t sah_insert_skha_algorithm[] =
+{
+ [FSL_KEY_ALG_HMAC] = 0x00000040,
+ [FSL_KEY_ALG_AES] = sah_insert_skha_algorithm_aes,
+ [FSL_KEY_ALG_DES] = sah_insert_skha_algorithm_des,
+ [FSL_KEY_ALG_TDES] = sah_insert_skha_algorithm_tdes,
+ [FSL_KEY_ALG_ARC4] = sah_insert_skha_algorithm_arc4,
+};
+
+
+/**
+ * Header bits for MODE field of SKHA header
+ *
+ * Index value must be kept in sync with fsl_shw_sym_mod_t
+ */
+const uint32_t sah_insert_skha_mode[] =
+{
+ [FSL_SYM_MODE_STREAM] = sah_insert_skha_mode_ecb,
+ [FSL_SYM_MODE_ECB] = sah_insert_skha_mode_ecb,
+ [FSL_SYM_MODE_CBC] = sah_insert_skha_mode_cbc,
+ [FSL_SYM_MODE_CTR] = sah_insert_skha_mode_ctr,
+};
+
+
+/**
+ * Header bits to set CTR modulus size. These have parity
+ * included to allow XOR insertion of values.
+ *
+ * @note Must be kept in sync with fsl_shw_ctr_mod_t
+ */
+const uint32_t sah_insert_skha_modulus[] =
+{
+ [FSL_CTR_MOD_8] = 0x00000000, /**< 2**8 */
+ [FSL_CTR_MOD_16] = 0x80000200, /**< 2**16 */
+ [FSL_CTR_MOD_24] = 0x80000400, /**< 2**24 */
+ [FSL_CTR_MOD_32] = 0x00000600, /**< 2**32 */
+ [FSL_CTR_MOD_40] = 0x80000800, /**< 2**40 */
+ [FSL_CTR_MOD_48] = 0x00000a00, /**< 2**48 */
+ [FSL_CTR_MOD_56] = 0x00000c00, /**< 2**56 */
+ [FSL_CTR_MOD_64] = 0x80000e00, /**< 2**64 */
+ [FSL_CTR_MOD_72] = 0x80001000, /**< 2**72 */
+ [FSL_CTR_MOD_80] = 0x00001200, /**< 2**80 */
+ [FSL_CTR_MOD_88] = 0x00001400, /**< 2**88 */
+ [FSL_CTR_MOD_96] = 0x80001600, /**< 2**96 */
+ [FSL_CTR_MOD_104] = 0x00001800, /**< 2**104 */
+ [FSL_CTR_MOD_112] = 0x80001a00, /**< 2**112 */
+ [FSL_CTR_MOD_120] = 0x80001c00, /**< 2**120 */
+ [FSL_CTR_MOD_128] = 0x00001e00 /**< 2**128 */
+};
+
+
+/******************************************************************************
+* Internal function declarations
+******************************************************************************/
+static fsl_shw_return_t sah_Create_Desc(
+ const sah_Mem_Util *mu,
+ sah_Desc ** desc,
+ int head,
+ uint32_t header,
+ sah_Link * link1,
+ sah_Link * link2);
+
+
+/**
+ * Create a descriptor chain using the the header and links passed in as
+ * parameters. The newly created descriptor will be added to the end of
+ * the descriptor chain passed.
+ *
+ * If @a desc_head points to a NULL value, then a sah_Head_Desc will be created
+ * as the first descriptor. Otherwise a sah_Desc will be created and appended.
+ *
+ * @pre
+ *
+ * - None
+ *
+ * @post
+ *
+ * - A descriptor has been created from the header, link1 and link2.
+ *
+ * - The newly created descriptor has been appended to the end of
+ * desc_head, or its location stored into the location pointed to by
+ * @a desc_head.
+ *
+ * - On allocation failure, @a link1 and @a link2 will be destroyed., and
+ * @a desc_head will be untouched.
+ *
+ * @brief Create and append descriptor chain, inserting header and links
+ * pointing to link1 and link2
+ *
+ * @param mu Memory functions
+ * @param header Value of descriptor header to be added
+ * @param desc_head Pointer to head of descriptor chain to append new desc
+ * @param link1 Pointer to sah_Link 1 (or NULL)
+ * @param link2 Pointer to sah_Link 2 (or NULL)
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+fsl_shw_return_t sah_Append_Desc(
+ const sah_Mem_Util *mu,
+ sah_Head_Desc **desc_head,
+ const uint32_t header,
+ sah_Link *link1,
+ sah_Link *link2)
+{
+ fsl_shw_return_t status;
+ sah_Desc *desc;
+ sah_Desc *desc_ptr;
+
+
+ status = sah_Create_Desc(mu, (sah_Desc**)&desc, (*desc_head == NULL),
+ header, link1, link2);
+ /* append newly created descriptor to end of current chain */
+ if (status == FSL_RETURN_OK_S) {
+ if (*desc_head == NULL) {
+ (*desc_head) = (sah_Head_Desc*)desc;
+ (*desc_head)->out1_ptr = NULL;
+ (*desc_head)->out2_ptr = NULL;
+
+ } else {
+ desc_ptr = (sah_Desc*)*desc_head;
+ while (desc_ptr->next != NULL) {
+ desc_ptr = desc_ptr->next;
+ }
+ desc_ptr->next = desc;
+ }
+ }
+
+ return status;
+}
+
+
+/**
+ * Releases the memory allocated by the Security Function library for
+ * descriptors, links and any internally allocated memory referenced in the
+ * given chain. Note that memory allocated by user applications is not
+ * released.
+ *
+ * @post The @a desc_head pointer will be set to NULL to prevent further use.
+ *
+ * @brief Destroy a descriptor chain and free memory of associated links
+ *
+ * @param mu Memory functions
+ * @param desc_head Pointer to head of descriptor chain to be freed
+ *
+ * @return none
+ */
+void sah_Descriptor_Chain_Destroy (
+ const sah_Mem_Util *mu,
+ sah_Head_Desc **desc_head)
+{
+ sah_Desc *desc_ptr = &(*desc_head)->desc;
+ sah_Head_Desc *desc_head_ptr = (sah_Head_Desc *)desc_ptr;
+
+ while (desc_ptr != NULL) {
+ register sah_Desc *next_desc_ptr;
+
+ if (desc_ptr->ptr1 != NULL) {
+ sah_Destroy_Link(mu, desc_ptr->ptr1);
+ }
+ if (desc_ptr->ptr2 != NULL) {
+ sah_Destroy_Link(mu, desc_ptr->ptr2);
+ }
+
+ next_desc_ptr = desc_ptr->next;
+
+ /* Be sure to free head descriptor as such */
+ if (desc_ptr == (sah_Desc*)desc_head_ptr) {
+ mu->mu_free_head_desc(mu->mu_ref, desc_head_ptr);
+ } else {
+ mu->mu_free_desc(mu->mu_ref, desc_ptr);
+ }
+
+ desc_ptr = next_desc_ptr;
+ }
+
+ *desc_head = NULL;
+}
+
+
+#ifndef NO_INPUT_WORKAROUND
+/**
+ * Reworks the link chain
+ *
+ * @brief Reworks the link chain
+ *
+ * @param mu Memory functions
+ * @param link Pointer to head of link chain to be reworked
+ *
+ * @return none
+ */
+static fsl_shw_return_t sah_rework_link_chain(
+ const sah_Mem_Util *mu,
+ sah_Link* link)
+{
+ fsl_shw_return_t status = FSL_RETURN_OK_S;
+ int found_potential_problem = 0;
+ uint32_t total_data = 0;
+#ifdef DEBUG_REWORK
+ sah_Link* first_link = link;
+#endif
+
+ if ((link->flags & SAH_OUTPUT_LINK)) {
+ return status;
+ }
+
+ while (link != NULL) {
+ total_data += link->len;
+
+ /* Only non-key Input Links are affected by the DMA flush-to-FIFO
+ * problem */
+
+ /* If have seen problem and at end of chain... */
+ if (found_potential_problem && (link->next == NULL) &&
+ (total_data > 16)) {
+ /* insert new 1-byte link */
+ sah_Link* new_tail_link = mu->mu_alloc_link(mu->mu_ref);
+ if (new_tail_link == NULL) {
+ status = FSL_RETURN_NO_RESOURCE_S;
+ } else {
+#ifdef DEBUG_REWORK
+ sah_Link* dump_link = first_link;
+ while (dump_link != NULL) {
+ uint32_t i;
+ unsigned bytes_to_dump = (dump_link->len > 32) ?
+ 32 : dump_link->len;
+ os_printk("(rework)Link %p: %p/%u/%p\n", dump_link,
+ dump_link->data, dump_link->len,
+ dump_link->next);
+ if (!(dump_link->flags & SAH_STORED_KEY_INFO)) {
+ os_printk("(rework)Data %p: ", dump_link->data);
+ for (i = 0; i < bytes_to_dump; i++) {
+ os_printk("%02X ", dump_link->data[i]);
+ }
+ os_printk("\n");
+ }
+ else {
+ os_printk("rework)Data %p: Red key data\n", dump_link);
+ }
+ dump_link = dump_link->next;
+ }
+#endif
+ link->len--;
+ link->next = new_tail_link;
+ new_tail_link->len = 1;
+ new_tail_link->data = link->data+link->len;
+ new_tail_link->flags = link->flags & ~(SAH_OWNS_LINK_DATA);
+ new_tail_link->next = NULL;
+ link = new_tail_link;
+#ifdef DEBUG_REWORK
+ os_printk("(rework)New link chain:\n");
+ dump_link = first_link;
+ while (dump_link != NULL) {
+ uint32_t i;
+ unsigned bytes_to_dump = (dump_link->len > 32) ?
+ 32 : dump_link->len;
+
+ os_printk("Link %p: %p/%u/%p\n", dump_link,
+ dump_link->data, dump_link->len,
+ dump_link->next);
+ if (!(dump_link->flags & SAH_STORED_KEY_INFO)) {
+ os_printk("Data %p: ", dump_link->data);
+ for (i = 0; i < bytes_to_dump; i++) {
+ os_printk("%02X ", dump_link->data[i]);
+ }
+ os_printk("\n");
+ }
+ else {
+ os_printk("Data %p: Red key data\n", dump_link);
+ }
+ dump_link = dump_link->next;
+ }
+#endif
+ }
+ } else if ((link->len % 4) || ((uint32_t)link->data % 4)) {
+ found_potential_problem = 1;
+ }
+
+ link = link->next;
+ }
+
+ return status;
+}
+
+
+/**
+ * Rework links to avoid H/W bug
+ *
+ * @param head Beginning of descriptor chain
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+static fsl_shw_return_t sah_rework_links(
+ const sah_Mem_Util *mu,
+ sah_Head_Desc *head)
+{
+ fsl_shw_return_t status = FSL_RETURN_OK_S;
+ sah_Desc* desc = &head->desc;
+
+ while ((status == FSL_RETURN_OK_S) && (desc != NULL)) {
+ if (desc->header & SAH_HDR_LLO) {
+ status = FSL_RETURN_ERROR_S;
+ break;
+ }
+ if (desc->ptr1 != NULL) {
+ status = sah_rework_link_chain(mu, desc->ptr1);
+ }
+ if ((status == FSL_RETURN_OK_S) && (desc->ptr2 != NULL)) {
+ status = sah_rework_link_chain(mu, desc->ptr2);
+ }
+ desc = desc->next;
+ }
+
+ return status;
+}
+#endif /* NO_INPUT_WORKAROUND */
+
+
+/**
+ * Send a descriptor chain to the SAHARA driver for processing.
+ *
+ * Note that SAHARA will read the input data from and write the output data
+ * directly to the locations indicated during construction of the chain.
+ *
+ * @pre
+ *
+ * - None
+ *
+ * @post
+ *
+ * - @a head will have been executed on SAHARA
+ * - @a head Will be freed unless a SAVE flag is set
+ *
+ * @brief Execute a descriptor chain
+ *
+ * @param head Pointer to head of descriptor chain to be executed
+ * @param user_ctx The user context on which to execute the descriptor chain.
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+fsl_shw_return_t sah_Descriptor_Chain_Execute(
+ sah_Head_Desc *head,
+ fsl_shw_uco_t *user_ctx)
+{
+ fsl_shw_return_t status;
+
+ /* Check for null pointer or non-multiple-of-four value */
+ if ((head == NULL) || ((uint32_t)head & 0x3)) {
+ status = FSL_RETURN_ERROR_S;
+ goto out;
+ }
+
+#ifndef NO_INPUT_WORKAROUND
+ status = sah_rework_links(user_ctx->mem_util, head);
+ if (status != FSL_RETURN_OK_S) {
+ goto out;
+ }
+#endif
+
+ /* complete the information in the descriptor chain head node */
+ head->user_ref = user_ctx->user_ref;
+ head->uco_flags = user_ctx->flags;
+ head->next = NULL; /* driver will use this to link chain heads */
+
+ status = adaptor_Exec_Descriptor_Chain(head, user_ctx);
+
+#ifdef DIAG_SECURITY_FUNC
+ if (status == FSL_RETURN_OK_S)
+ LOG_DIAG("after exec desc chain: status is ok\n");
+ else
+ LOG_DIAG("after exec desc chain: status is not ok\n");
+#endif
+
+ out:
+ return status;
+}
+
+
+/**
+ * Create Link
+ *
+ * @brief Allocate Memory for Link structure and populate using input
+ * parameters
+ *
+ * @post On allocation failure, @a p will be freed if #SAH_OWNS_LINK_DATA is
+ * p set in @a flags.
+
+ * @param mu Memory functions
+ * @param link Pointer to link to be created
+ * @param p Pointer to data to use in link
+ * @param length Length of buffer 'p' in bytes
+ * @param flags Indicates whether memory has been allocated by the calling
+ * function or the security function
+ *
+ * @return FSL_RETURN_OK_S or FSL_RETURN_NO_RESOURCE_S
+ */
+fsl_shw_return_t sah_Create_Link(
+ const sah_Mem_Util *mu,
+ sah_Link **link,
+ uint8_t *p,
+ const size_t length,
+ const sah_Link_Flags flags)
+{
+
+#ifdef DIAG_SECURITY_FUNC
+
+ char diag[50];
+#endif /*DIAG_SECURITY_FUNC_UGLY*/
+ fsl_shw_return_t status = FSL_RETURN_NO_RESOURCE_S;
+
+
+ *link = mu->mu_alloc_link(mu->mu_ref);
+
+ /* populate link if memory allocation successful */
+ if (*link != NULL) {
+ (*link)->len = length;
+ (*link)->data = p;
+ (*link)->next = NULL;
+ (*link)->flags = flags;
+ status = FSL_RETURN_OK_S;
+
+#ifdef DIAG_SECURITY_FUNC
+
+ LOG_DIAG("Created Link");
+ LOG_DIAG("------------");
+ sprintf(diag," address = 0x%x", (int) *link);
+ LOG_DIAG(diag);
+ sprintf(diag," link->len = %d",(*link)->len);
+ LOG_DIAG(diag);
+ sprintf(diag," link->data = 0x%x",(int) (*link)->data);
+ LOG_DIAG(diag);
+ sprintf(diag," link->flags = 0x%x",(*link)->flags);
+ LOG_DIAG(diag);
+ LOG_DIAG(" link->next = NULL");
+#endif /*DIAG_SECURITY_FUNC_UGLY*/
+
+ } else {
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG("Allocation of memory for sah_Link failed!\n");
+#endif /*DIAG_SECURITY_FUNC*/
+
+ /* Free memory previously allocated by the security function layer for
+ link data. Note that the memory being pointed to will be zeroed before
+ being freed, for security reasons. */
+ if (flags & SAH_OWNS_LINK_DATA) {
+ mu->mu_memset(mu->mu_ref, p, 0x00, length);
+ mu->mu_free(mu->mu_ref, p);
+ }
+ }
+
+ return status;
+}
+
+
+/**
+ * Create Key Link
+ *
+ * @brief Allocate Memory for Link structure and populate using key info
+ * object
+ *
+ * @param mu Memory functions
+ * @param link Pointer to store address of link to be created
+ * @param key_info Pointer to Key Info object to be referenced
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+fsl_shw_return_t sah_Create_Key_Link(
+ const sah_Mem_Util *mu,
+ sah_Link **link,
+ fsl_shw_sko_t *key_info)
+{
+#ifdef DIAG_SECURITY_FUNC_UGLY
+ char diag[50];
+#endif /*DIAG_SECURITY_FUNC_UGLY*/
+ fsl_shw_return_t status = FSL_RETURN_NO_RESOURCE_S;
+ sah_Link_Flags flags = 0;
+
+
+ *link = mu->mu_alloc_link(mu->mu_ref);
+
+ /* populate link if memory allocation successful */
+ if (*link != NULL) {
+ (*link)->len = key_info->key_length;
+
+ if (key_info->flags & FSL_SKO_KEY_PRESENT) {
+ (*link)->data = key_info->key;
+ status = FSL_RETURN_OK_S;
+ } else {
+ if (key_info->flags & FSL_SKO_KEY_ESTABLISHED) {
+
+ if (key_info->keystore == NULL) {
+ /* System Keystore */
+ (*link)->slot = key_info->handle;
+ (*link)->ownerid = key_info->userid;
+ (*link)->data = 0;
+ flags |= SAH_STORED_KEY_INFO;
+ status = FSL_RETURN_OK_S;
+ } else {
+#ifdef FSL_HAVE_SCC2
+ /* User Keystore */
+ fsl_shw_kso_t *keystore = key_info->keystore;
+ /* Note: the key data is stored here, but the address has to
+ * be converted to a partition and offset in the kernel.
+ * This will be calculated in kernel space, based on the
+ * list of partitions held by the users context.
+ */
+ (*link)->data =
+ keystore->slot_get_address(keystore->user_data,
+ key_info->handle);
+
+ flags |= SAH_IN_USER_KEYSTORE;
+ status = FSL_RETURN_OK_S;
+#else
+ /* User keystores only supported in SCC2 */
+ status = FSL_RETURN_BAD_FLAG_S;
+#endif /* FSL_HAVE_SCC2 */
+
+ }
+ } else {
+ /* the flag is bad. Should never get here */
+ status = FSL_RETURN_BAD_FLAG_S;
+ }
+ }
+
+ (*link)->next = NULL;
+ (*link)->flags = flags;
+
+#ifdef DIAG_SECURITY_FUNC_UGLY
+ if (status == FSL_RETURN_OK_S) {
+ LOG_DIAG("Created Link");
+ LOG_DIAG("------------");
+ sprintf(diag," address = 0x%x", (int) *link);
+ LOG_DIAG(diag);
+ sprintf(diag," link->len = %d", (*link)->len);
+ LOG_DIAG(diag);
+ if (key_info->flags & FSL_SKO_KEY_ESTABLISHED) {
+ sprintf(diag," link->slot = 0x%x", (*link)->slot);
+ LOG_DIAG(diag);
+ } else {
+ sprintf(diag," link->data = 0x%x", (int)(*link)->data);
+ LOG_DIAG(diag);
+ }
+ sprintf(diag," link->flags = 0x%x", (*link)->flags);
+ LOG_DIAG(diag);
+ LOG_DIAG(" link->next = NULL");
+ }
+#endif /*DIAG_SECURITY_FUNC_UGLY*/
+
+ if (status == FSL_RETURN_BAD_FLAG_S) {
+ mu->mu_free_link(mu->mu_ref, *link);
+ *link = NULL;
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG("Creation of sah_Key_Link failed due to bad key flag!\n");
+#endif /*DIAG_SECURITY_FUNC*/
+ }
+
+ } else {
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG("Allocation of memory for sah_Key_Link failed!\n");
+#endif /*DIAG_SECURITY_FUNC*/
+ }
+
+ return status;
+}
+
+
+/**
+ * Append Link
+ *
+ * @brief Allocate Memory for Link structure and append it to the end of
+ * the link chain.
+ *
+ * @post On allocation failure, @a p will be freed if #SAH_OWNS_LINK_DATA is
+ * p set in @a flags.
+ *
+ * @param mu Memory functions
+ * @param link_head Pointer to (head of) existing link chain
+ * @param p Pointer to data to use in link
+ * @param length Length of buffer 'p' in bytes
+ * @param flags Indicates whether memory has been allocated by the calling
+ * function or the security function
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+fsl_shw_return_t sah_Append_Link(
+ const sah_Mem_Util *mu,
+ sah_Link *link_head,
+ uint8_t *p,
+ const size_t length,
+ const sah_Link_Flags flags)
+{
+ sah_Link* new_link;
+ fsl_shw_return_t status;
+
+
+ status = sah_Create_Link(mu, &new_link, p, length, flags);
+
+ if (status == FSL_RETURN_OK_S) {
+ /* chase for the tail */
+ while (link_head->next != NULL) {
+ link_head = link_head->next;
+ }
+
+ /* and add new tail */
+ link_head->next = new_link;
+ }
+
+ return status;
+}
+
+
+/**
+ * Create and populate a single descriptor
+ *
+ * The pointer and length fields will be be set based on the chains passed in
+ * as @a link1 and @a link2.
+ *
+ * @param mu Memory utility suite
+ * @param desc Location to store pointer of new descriptor
+ * @param head_desc Non-zero if this will be first in chain; zero otherwise
+ * @param header The Sahara header value to store in the descriptor
+ * @param link1 A value (or NULL) for the first ptr
+ * @param link2 A value (or NULL) for the second ptr
+ *
+ * @post If allocation succeeded, the @a link1 and @link2 will be linked into
+ * the descriptor. If allocation failed, those link structues will be
+ * freed, and the @a desc will be unchanged.
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+static fsl_shw_return_t sah_Create_Desc(
+ const sah_Mem_Util *mu,
+ sah_Desc ** desc,
+ int head_desc,
+ uint32_t header,
+ sah_Link * link1,
+ sah_Link * link2)
+{
+ fsl_shw_return_t status = FSL_RETURN_NO_RESOURCE_S;
+#ifdef DIAG_SECURITY_FUNC_UGLY
+ char diag[50];
+#endif /*DIAG_SECURITY_FUNC_UGLY*/
+
+
+ if (head_desc != 0) {
+ *desc = (sah_Desc *)mu->mu_alloc_head_desc(mu->mu_ref);
+ } else {
+ *desc = mu->mu_alloc_desc(mu->mu_ref);
+ }
+
+ /* populate descriptor if memory allocation successful */
+ if ((*desc) != NULL) {
+ sah_Link* temp_link;
+
+ status = FSL_RETURN_OK_S;
+ (*desc)->header = header;
+
+ temp_link = (*desc)->ptr1 = link1;
+ (*desc)->len1 = 0;
+ while (temp_link != NULL) {
+ (*desc)->len1 += temp_link->len;
+ temp_link = temp_link->next;
+ }
+
+ temp_link = (*desc)->ptr2 = link2;
+ (*desc)->len2 = 0;
+ while (temp_link != NULL) {
+ (*desc)->len2 += temp_link->len;
+ temp_link = temp_link->next;
+ }
+
+ (*desc)->next = NULL;
+
+#ifdef DIAG_SECURITY_FUNC_UGLY
+ LOG_DIAG("Created Desc");
+ LOG_DIAG("------------");
+ sprintf(diag," address = 0x%x",(int) *desc);
+ LOG_DIAG(diag);
+ sprintf(diag," desc->header = 0x%x",(*desc)->header);
+ LOG_DIAG(diag);
+ sprintf(diag," desc->len1 = %d",(*desc)->len1);
+ LOG_DIAG(diag);
+ sprintf(diag," desc->ptr1 = 0x%x",(int) ((*desc)->ptr1));
+ LOG_DIAG(diag);
+ sprintf(diag," desc->len2 = %d",(*desc)->len2);
+ LOG_DIAG(diag);
+ sprintf(diag," desc->ptr2 = 0x%x",(int) ((*desc)->ptr2));
+ LOG_DIAG(diag);
+ sprintf(diag," desc->next = 0x%x",(int) ((*desc)->next));
+ LOG_DIAG(diag);
+#endif /*DIAG_SECURITY_FUNC_UGLY*/
+ } else {
+#ifdef DIAG_SECURITY_FUNC
+ LOG_DIAG("Allocation of memory for sah_Desc failed!\n");
+#endif /*DIAG_SECURITY_FUNC*/
+
+ /* Destroy the links, otherwise the memory allocated by the Security
+ Function layer for the links (and possibly the data within the links)
+ will be lost */
+ if (link1 != NULL) {
+ sah_Destroy_Link(mu, link1);
+ }
+ if (link2 != NULL) {
+ sah_Destroy_Link(mu, link2);
+ }
+ }
+
+ return status;
+}
+
+
+/**
+ * Destroy a link (chain) and free memory
+ *
+ * @param mu memory utility suite
+ * @param link The Link to destroy
+ *
+ * @return none
+ */
+void sah_Destroy_Link(
+ const sah_Mem_Util *mu,
+ sah_Link * link)
+{
+
+ while (link != NULL) {
+ sah_Link * next_link = link->next;
+
+ if (link->flags & SAH_OWNS_LINK_DATA) {
+ /* zero data for security purposes */
+ mu->mu_memset(mu->mu_ref, link->data, 0x00, link->len);
+ mu->mu_free(mu->mu_ref, link->data);
+ }
+
+ link->data = NULL;
+ link->next = NULL;
+ mu->mu_free_link(mu->mu_ref, link);
+
+ link = next_link;
+ }
+}
+
+
+/**
+ * Add descriptor where both links are inputs.
+ *
+ * @param header The Sahara header value for the descriptor.
+ * @param in1 The first input buffer (or NULL)
+ * @param in1_length Size of @a in1
+ * @param[out] in2 The second input buffer (or NULL)
+ * @param in2_length Size of @a in2
+ * @param mu Memory functions
+ * @param[in,out] desc_chain Chain to start or append to
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+fsl_shw_return_t sah_add_two_in_desc(uint32_t header,
+ const uint8_t* in1,
+ uint32_t in1_length,
+ const uint8_t* in2,
+ uint32_t in2_length,
+ const sah_Mem_Util* mu,
+ sah_Head_Desc** desc_chain)
+{
+ fsl_shw_return_t status = FSL_RETURN_OK_S;
+ sah_Link* link1 = NULL;
+ sah_Link* link2 = NULL;
+
+ if (in1 != NULL) {
+ status = sah_Create_Link(mu, &link1,
+ (sah_Oct_Str) in1, in1_length, SAH_USES_LINK_DATA);
+ }
+
+ if ( (in2 != NULL) && (status == FSL_RETURN_OK_S) ) {
+ status = sah_Create_Link(mu, &link2,
+ (sah_Oct_Str) in2, in2_length,
+ SAH_USES_LINK_DATA);
+ }
+
+ if (status != FSL_RETURN_OK_S) {
+ if (link1 != NULL) {
+ sah_Destroy_Link(mu, link1);
+ }
+ if (link2 != NULL) {
+ sah_Destroy_Link(mu, link2);
+ }
+ } else {
+ status = sah_Append_Desc(mu, desc_chain, header, link1, link2);
+ }
+
+ return status;
+}
+
+/*!
+ * Add descriptor where neither link needs sync
+ *
+ * @param header The Sahara header value for the descriptor.
+ * @param in1 The first input buffer (or NULL)
+ * @param in1_length Size of @a in1
+ * @param[out] in2 The second input buffer (or NULL)
+ * @param in2_length Size of @a in2
+ * @param mu Memory functions
+ * @param[in,out] desc_chain Chain to start or append to
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+fsl_shw_return_t sah_add_two_d_desc(uint32_t header,
+ const uint8_t * in1,
+ uint32_t in1_length,
+ const uint8_t * in2,
+ uint32_t in2_length,
+ const sah_Mem_Util * mu,
+ sah_Head_Desc ** desc_chain)
+{
+ fsl_shw_return_t status = FSL_RETURN_OK_S;
+ sah_Link *link1 = NULL;
+ sah_Link *link2 = NULL;
+
+ printk("Entering sah_add_two_d_desc \n");
+
+ if (in1 != NULL) {
+ status = sah_Create_Link(mu, &link1,
+ (sah_Oct_Str) in1, in1_length,
+ SAH_USES_LINK_DATA);
+ }
+
+ if ((in2 != NULL) && (status == FSL_RETURN_OK_S)) {
+ status = sah_Create_Link(mu, &link2,
+ (sah_Oct_Str) in2, in2_length,
+ SAH_USES_LINK_DATA);
+ }
+
+ if (status != FSL_RETURN_OK_S) {
+ if (link1 != NULL) {
+ sah_Destroy_Link(mu, link1);
+ }
+ if (link2 != NULL) {
+ sah_Destroy_Link(mu, link2);
+ }
+ } else {
+ status = sah_Append_Desc(mu, desc_chain, header, link1, link2);
+ }
+
+ return status;
+} /* sah_add_two_d_desc() */
+
+/**
+ * Add descriptor where both links are inputs, the second one being a key.
+ *
+ * @param header The Sahara header value for the descriptor.
+ * @param in1 The first input buffer (or NULL)
+ * @param in1_length Size of @a in1
+ * @param[out] in2 The second input buffer (or NULL)
+ * @param in2_length Size of @a in2
+ * @param mu Memory functions
+ * @param[in,out] desc_chain Chain to start or append to
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+fsl_shw_return_t sah_add_in_key_desc(uint32_t header,
+ const uint8_t* in1,
+ uint32_t in1_length,
+ fsl_shw_sko_t* key_info,
+ const sah_Mem_Util* mu,
+ sah_Head_Desc** desc_chain)
+{
+ fsl_shw_return_t status = FSL_RETURN_OK_S;
+ sah_Link *link1 = NULL;
+ sah_Link *link2 = NULL;
+
+ if (in1 != NULL) {
+ status = sah_Create_Link(mu, &link1,
+ (sah_Oct_Str) in1, in1_length,
+ SAH_USES_LINK_DATA);
+ }
+
+ if (status != FSL_RETURN_OK_S) {
+ goto out;
+ }
+
+ status = sah_Create_Key_Link(mu, &link2, key_info);
+
+
+ if (status != FSL_RETURN_OK_S) {
+ goto out;
+ }
+
+ status = sah_Append_Desc(mu, desc_chain, header, link1, link2);
+
+out:
+ if (status != FSL_RETURN_OK_S) {
+ if (link1 != NULL) {
+ sah_Destroy_Link(mu, link1);
+ }
+ if (link2 != NULL) {
+ sah_Destroy_Link(mu, link2);
+ }
+ }
+
+ return status;
+}
+
+
+/**
+ * Create two links using keys allocated in the scc
+ *
+ * @param header The Sahara header value for the descriptor.
+ * @param in1 The first input buffer (or NULL)
+ * @param in1_length Size of @a in1
+ * @param[out] in2 The second input buffer (or NULL)
+ * @param in2_length Size of @a in2
+ * @param mu Memory functions
+ * @param[in,out] desc_chain Chain to start or append to
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+fsl_shw_return_t sah_add_key_key_desc(uint32_t header,
+ fsl_shw_sko_t *key_info1,
+ fsl_shw_sko_t *key_info2,
+ const sah_Mem_Util *mu,
+ sah_Head_Desc **desc_chain)
+{
+ fsl_shw_return_t status;
+ sah_Link *link1 = NULL;
+ sah_Link *link2 = NULL;
+
+
+ status = sah_Create_Key_Link(mu, &link1, key_info1);
+
+ if (status == FSL_RETURN_OK_S) {
+ status = sah_Create_Key_Link(mu, &link2, key_info2);
+ }
+
+ if (status != FSL_RETURN_OK_S) {
+ if (link1 != NULL) {
+ sah_Destroy_Link(mu, link1);
+ }
+ if (link2 != NULL) {
+ sah_Destroy_Link(mu, link2);
+ }
+ } else {
+ status = sah_Append_Desc(mu, desc_chain, header, link1, link2);
+ }
+
+ return status;
+}
+
+
+/**
+ * Add descriptor where first link is input, the second is a changing key
+ *
+ * @param header The Sahara header value for the descriptor.
+ * @param in1 The first input buffer (or NULL)
+ * @param in1_length Size of @a in1
+ * @param[out] in2 The key for output
+ * @param mu Memory functions
+ * @param[in,out] desc_chain Chain to start or append to
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+fsl_shw_return_t sah_add_in_keyout_desc(uint32_t header,
+ const uint8_t* in1,
+ uint32_t in1_length,
+ fsl_shw_sko_t* key_info,
+ const sah_Mem_Util* mu,
+ sah_Head_Desc** desc_chain)
+{
+ fsl_shw_return_t status = FSL_RETURN_OK_S;
+ sah_Link *link1 = NULL;
+ sah_Link *link2 = NULL;
+
+ if (in1 != NULL) {
+ status = sah_Create_Link(mu, &link1,
+ (sah_Oct_Str) in1, in1_length,
+ SAH_USES_LINK_DATA);
+ }
+
+ if (status != FSL_RETURN_OK_S) {
+ goto out;
+ }
+
+ status = sah_Create_Key_Link(mu, &link2, key_info);
+
+ if (status != FSL_RETURN_OK_S) {
+ goto out;
+ }
+
+link2->flags |= SAH_OUTPUT_LINK; /* mark key for output */
+status = sah_Append_Desc(mu, desc_chain, header, link1, link2);
+
+out:
+
+ if (status != FSL_RETURN_OK_S) {
+ if (link1 != NULL) {
+ sah_Destroy_Link(mu, link1);
+ }
+ if (link2 != NULL) {
+ sah_Destroy_Link(mu, link2);
+ }
+ }
+
+ return status;
+}
+
+/**
+ * Add descriptor where both links are outputs.
+ *
+ * @param header The Sahara header value for the descriptor.
+ * @param out1 The first output buffer (or NULL)
+ * @param out1_length Size of @a out1
+ * @param[out] out2 The second output buffer (or NULL)
+ * @param out2_length Size of @a out2
+ * @param mu Memory functions
+ * @param[in,out] desc_chain Chain to start or append to
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+fsl_shw_return_t sah_add_two_out_desc(uint32_t header,
+ uint8_t* out1,
+ uint32_t out1_length,
+ uint8_t* out2,
+ uint32_t out2_length,
+ const sah_Mem_Util* mu,
+ sah_Head_Desc** desc_chain)
+{
+ fsl_shw_return_t status = FSL_RETURN_OK_S;
+ sah_Link *link1 = NULL;
+ sah_Link *link2 = NULL;
+
+
+ if (out1 != NULL) {
+ status = sah_Create_Link(mu, &link1,
+ (sah_Oct_Str) out1, out1_length,
+ SAH_OUTPUT_LINK | SAH_USES_LINK_DATA);
+ }
+
+ if ( (out2 != NULL) && (status == FSL_RETURN_OK_S) ) {
+ status = sah_Create_Link(mu, &link2,
+ (sah_Oct_Str) out2, out2_length,
+ SAH_OUTPUT_LINK |
+ SAH_USES_LINK_DATA);
+ }
+
+ if (status != FSL_RETURN_OK_S) {
+ if (link1 != NULL) {
+ sah_Destroy_Link(mu, link1);
+ }
+ if (link2 != NULL) {
+ sah_Destroy_Link(mu, link2);
+ }
+ } else {
+ status = sah_Append_Desc(mu, desc_chain, header, link1, link2);
+ }
+
+ return status;
+}
+
+
+/**
+ * Add descriptor where first link is output, second is output
+ *
+ * @param header The Sahara header value for the descriptor.
+ * @param out1 The first output buffer (or NULL)
+ * @param out1_length Size of @a out1
+ * @param[out] in2 The input buffer (or NULL)
+ * @param in2_length Size of @a in2
+ * @param mu Memory functions
+ * @param[in,out] desc_chain Chain to start or append to
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+fsl_shw_return_t sah_add_out_in_desc(uint32_t header,
+ uint8_t* out1,
+ uint32_t out1_length,
+ const uint8_t* in2,
+ uint32_t in2_length,
+ const sah_Mem_Util* mu,
+ sah_Head_Desc** desc_chain)
+{
+ fsl_shw_return_t status = FSL_RETURN_OK_S;
+ sah_Link *link1 = NULL;
+ sah_Link *link2 = NULL;
+
+
+ if (out1 != NULL) {
+ status = sah_Create_Link(mu, &link1,
+ (sah_Oct_Str) out1, out1_length,
+ SAH_OUTPUT_LINK |
+ SAH_USES_LINK_DATA);
+ }
+
+ if ( (in2 != NULL) && (status == FSL_RETURN_OK_S) ) {
+ status = sah_Create_Link(mu, &link2,
+ (sah_Oct_Str) in2, in2_length,
+ SAH_USES_LINK_DATA);
+ }
+
+ if (status != FSL_RETURN_OK_S) {
+ if (link1 != NULL) {
+ sah_Destroy_Link(mu, link1);
+ }
+ if (link2 != NULL) {
+ sah_Destroy_Link(mu, link2);
+ }
+ } else {
+ status = sah_Append_Desc(mu, desc_chain, header, link1, link2);
+ }
+
+ return status;
+}
+
+
+/**
+ * Add descriptor where link1 is input buffer, link2 is output buffer.
+ *
+ * @param header The Sahara header value for the descriptor.
+ * @param in The input buffer
+ * @param in_length Size of the input buffer
+ * @param[out] out The output buffer
+ * @param out_length Size of the output buffer
+ * @param mu Memory functions
+ * @param[in,out] desc_chain Chain to start or append to
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+fsl_shw_return_t sah_add_in_out_desc(uint32_t header,
+ const uint8_t* in, uint32_t in_length,
+ uint8_t* out, uint32_t out_length,
+ const sah_Mem_Util* mu,
+ sah_Head_Desc** desc_chain)
+{
+ fsl_shw_return_t status = FSL_RETURN_OK_S;
+ sah_Link *link1 = NULL;
+ sah_Link *link2 = NULL;
+
+ if (in != NULL) {
+ status = sah_Create_Link(mu, &link1,
+ (sah_Oct_Str) in, in_length,
+ SAH_USES_LINK_DATA);
+ }
+
+ if ((status == FSL_RETURN_OK_S) && (out != NULL)) {
+ status = sah_Create_Link(mu, &link2,
+ (sah_Oct_Str) out, out_length,
+ SAH_OUTPUT_LINK |
+ SAH_USES_LINK_DATA);
+ }
+
+ if (status != FSL_RETURN_OK_S) {
+ if (link1 != NULL) {
+ sah_Destroy_Link(mu, link1);
+ }
+ if (link2 != NULL) {
+ sah_Destroy_Link(mu, link2);
+ }
+ } else {
+ status = sah_Append_Desc(mu, desc_chain, header, link1, link2);
+ }
+
+ return status;
+}
+
+
+/**
+ * Add descriptor where link1 is a key, link2 is output buffer.
+ *
+ * @param header The Sahara header value for the descriptor.
+ * @param key_info Key information
+ * @param[out] out The output buffer
+ * @param out_length Size of the output buffer
+ * @param mu Memory functions
+ * @param[in,out] desc_chain Chain to start or append to
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+fsl_shw_return_t sah_add_key_out_desc(uint32_t header,
+ const fsl_shw_sko_t *key_info,
+ uint8_t* out, uint32_t out_length,
+ const sah_Mem_Util *mu,
+ sah_Head_Desc **desc_chain)
+{
+ fsl_shw_return_t status;
+ sah_Link *link1 = NULL;
+ sah_Link *link2 = NULL;
+
+ status = sah_Create_Key_Link(mu, &link1, (fsl_shw_sko_t *) key_info);
+ if (status != FSL_RETURN_OK_S) {
+ goto out;
+ }
+
+
+ if (out != NULL) {
+ status = sah_Create_Link(mu, &link2,
+ (sah_Oct_Str) out, out_length,
+ SAH_OUTPUT_LINK |
+ SAH_USES_LINK_DATA);
+ if (status != FSL_RETURN_OK_S) {
+ goto out;
+ }
+ }
+status = sah_Append_Desc(mu, desc_chain, header, link1, link2);
+
+out:
+ if (status != FSL_RETURN_OK_S) {
+ if (link1 != NULL) {
+ sah_Destroy_Link(mu, link1);
+ }
+ if (link2 != NULL) {
+ sah_Destroy_Link(mu, link2);
+ }
+ }
+
+ return status;
+}
+
+
+/**
+ * Sanity checks the user context object fields to ensure that they make some
+ * sense before passing the uco as a parameter
+ *
+ * @brief Verify the user context object
+ *
+ * @param uco user context object
+ *
+ * @return A return code of type #fsl_shw_return_t.
+ */
+fsl_shw_return_t sah_validate_uco(fsl_shw_uco_t *uco)
+{
+ fsl_shw_return_t status = FSL_RETURN_OK_S;
+
+
+ /* check if file is opened */
+ if (uco->sahara_openfd < 0) {
+ status = FSL_RETURN_NO_RESOURCE_S;
+ } else {
+ /* check flag combination: the only invalid setting of the
+ * blocking and callback flags is blocking with callback. So check
+ * for that
+ */
+ if ((uco->flags & (FSL_UCO_BLOCKING_MODE | FSL_UCO_CALLBACK_MODE)) ==
+ (FSL_UCO_BLOCKING_MODE | FSL_UCO_CALLBACK_MODE)) {
+ status = FSL_RETURN_BAD_FLAG_S;
+ } else {
+ /* check that memory utilities have been attached */
+ if (uco->mem_util == NULL) {
+ status = FSL_RETURN_MEMORY_ERROR_S;
+ } else {
+ /* must have pool of at least 1, even for blocking mode */
+ if (uco->pool_size == 0) {
+ status = FSL_RETURN_ERROR_S;
+ } else {
+ /* if callback flag is set, it better have a callback
+ * routine */
+ if (uco->flags & FSL_UCO_CALLBACK_MODE) {
+ if (uco->callback == NULL) {
+ status = FSL_RETURN_INTERNAL_ERROR_S;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ return status;
+}
+
+
+/**
+ * Perform any post-processing on non-blocking results.
+ *
+ * For instance, free descriptor chains, compare authentication codes, ...
+ *
+ * @param user_ctx User context object
+ * @param result_info A set of results
+ */
+void sah_Postprocess_Results(fsl_shw_uco_t* user_ctx, sah_results* result_info)
+{
+ unsigned i;
+
+ /* for each result returned */
+ for (i = 0; i < *result_info->actual; i++) {
+ sah_Head_Desc* desc = result_info->results[i].user_desc;
+ uint8_t* out1 = desc->out1_ptr;
+ uint8_t* out2 = desc->out2_ptr;
+ uint32_t len = desc->out_len;
+
+ /*
+ * For now, tne only post-processing besides freeing the
+ * chain is the need to check the auth code for fsl_shw_auth_decrypt().
+ *
+ * If other uses are required in the future, this code will probably
+ * need a flag in the sah_Head_Desc (or a function pointer!) to
+ * determine what needs to be done.
+ */
+ if ((out1 != NULL) && (out2 != NULL)) {
+ unsigned j;
+ for (j = 0; j < len; j++) {
+ if (out1[j] != out2[j]) {
+ /* Problem detected. Change result. */
+ result_info->results[i].code = FSL_RETURN_AUTH_FAILED_S;
+ break;
+ }
+ }
+ /* free allocated 'calced_auth' */
+ user_ctx->mem_util->
+ mu_free(user_ctx->mem_util->mu_ref, out1);
+ }
+
+ /* Free the API-created chain, unless tagged as not-from-API */
+ if (! (desc->uco_flags & FSL_UCO_SAVE_DESC_CHAIN)) {
+ sah_Descriptor_Chain_Destroy(user_ctx->mem_util, &desc);
+ }
+ }
+}
+
+
+/* End of sf_util.c */
diff --git a/drivers/mxc/security/scc2_driver.c b/drivers/mxc/security/scc2_driver.c
new file mode 100644
index 000000000000..e0cbb28a0ad0
--- /dev/null
+++ b/drivers/mxc/security/scc2_driver.c
@@ -0,0 +1,2401 @@
+/*
+ * Copyright (C) 2004-2011 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*! @file scc2_driver.c
+ *
+ * This is the driver code for the Security Controller version 2 (SCC2). It's
+ * interaction with the Linux kernel is from calls to #scc_init() when the
+ * driver is loaded, and #scc_cleanup() should the driver be unloaded. The
+ * driver uses locking and (task-sleep/task-wakeup) functions from the kernel.
+ * It also registers itself to handle the interrupt line(s) from the SCC. New
+ * to this version of the driver is an interface providing access to the secure
+ * partitions. This is in turn exposed to the API user through the
+ * fsl_shw_smalloc() series of functions. Other drivers in the kernel may use
+ * the remaining API functions to get at the services of the SCC. The main
+ * service provided is the Secure Memory, which allows encoding and decoding of
+ * secrets with a per-chip secret key.
+ *
+ * The SCC is single-threaded, and so is this module. When the scc_crypt()
+ * routine is called, it will lock out other accesses to the function. If
+ * another task is already in the module, the subsequent caller will spin on a
+ * lock waiting for the other access to finish.
+ *
+ * Note that long crypto operations could cause a task to spin for a while,
+ * preventing other kernel work (other than interrupt processing) to get done.
+ *
+ * The external (kernel module) interface is through the following functions:
+ * @li scc_get_configuration() @li scc_crypt() @li scc_zeroize_memories() @li
+ * scc_monitor_security_failure() @li scc_stop_monitoring_security_failure()
+ * @li scc_set_sw_alarm() @li scc_read_register() @li scc_write_register() @li
+ * scc_allocate_partition() @li scc_initialize_partition @li
+ * scc_release_partition() @li scc_diminish_permissions @li
+ * scc_encrypt_region() @li scc_decrypt_region() @li scc_virt_to_phys
+ *
+ * All other functions are internal to the driver.
+ */
+
+#include "sahara2/include/portable_os.h"
+#include "scc2_internals.h"
+#include <linux/delay.h>
+
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18))
+
+#include <linux/device.h>
+#include <mach/clock.h>
+#include <linux/device.h>
+
+#else
+
+#include <linux/platform_device.h>
+#include <linux/clk.h>
+#include <linux/err.h>
+
+#endif
+
+#include <linux/dmapool.h>
+
+/**
+ * This is the set of errors which signal that access to the SCM RAM has
+ * failed or will fail.
+ */
+#define SCM_ACCESS_ERRORS \
+ (SCM_ERRSTAT_ILM | SCM_ERRSTAT_SUP | SCM_ERRSTAT_ERC_MASK)
+
+/******************************************************************************
+ *
+ * Global / Static Variables
+ *
+ *****************************************************************************/
+
+#ifdef SCC_REGISTER_DEBUG
+
+#define REG_PRINT_BUFFER_SIZE 200
+
+static char reg_print_buffer[REG_PRINT_BUFFER_SIZE];
+
+typedef char *(*reg_print_routine_t) (uint32_t value, char *print_buffer,
+ int buf_size);
+
+#endif
+
+/**
+ * This is type void* so that a) it cannot directly be dereferenced,
+ * and b) pointer arithmetic on it will function in a 'normal way' for
+ * the offsets in scc_defines.h
+ *
+ * scc_base is the location in the iomap where the SCC's registers
+ * (and memory) start.
+ *
+ * The referenced data is declared volatile so that the compiler will
+ * not make any assumptions about the value of registers in the SCC,
+ * and thus will always reload the register into CPU memory before
+ * using it (i.e. wherever it is referenced in the driver).
+ *
+ * This value should only be referenced by the #SCC_READ_REGISTER and
+ * #SCC_WRITE_REGISTER macros and their ilk. All dereferences must be
+ * 32 bits wide.
+ */
+static volatile void *scc_base;
+uint32_t scc_phys_base;
+
+/** Array to hold function pointers registered by
+ #scc_monitor_security_failure() and processed by
+ #scc_perform_callbacks() */
+static void (*scc_callbacks[SCC_CALLBACK_SIZE]) (void);
+/*SCC need IRAM's base address but use only the partitions allocated for it.*/
+uint32_t scm_ram_phys_base;
+
+void *scm_ram_base = NULL;
+
+/** Calculated once for quick reference to size of the unreserved space in
+ * RAM in SCM.
+ */
+uint32_t scm_memory_size_bytes;
+
+/** Structure returned by #scc_get_configuration() */
+static scc_config_t scc_configuration = {
+ .driver_major_version = SCC_DRIVER_MAJOR_VERSION,
+ .driver_minor_version = SCC_DRIVER_MINOR_VERSION_2,
+ .scm_version = -1,
+ .smn_version = -1,
+ .block_size_bytes = -1,
+ .partition_size_bytes = -1,
+ .partition_count = -1,
+};
+
+/** Internal flag to know whether SCC is in Failed state (and thus many
+ * registers are unavailable). Once it goes failed, it never leaves it. */
+static volatile enum scc_status scc_availability = SCC_STATUS_INITIAL;
+
+/** Flag to say whether interrupt handler has been registered for
+ * SMN interrupt */
+static int smn_irq_set = 0;
+
+/** Flag to say whether interrupt handler has been registered for
+ * SCM interrupt */
+static int scm_irq_set = 0;
+
+/** This lock protects the #scc_callbacks list as well as the @c
+ * callbacks_performed flag in #scc_perform_callbacks. Since the data this
+ * protects may be read or written from either interrupt or base level, all
+ * operations should use the irqsave/irqrestore or similar to make sure that
+ * interrupts are inhibited when locking from base level.
+ */
+static os_lock_t scc_callbacks_lock = NULL;
+
+/**
+ * Ownership of this lock prevents conflicts on the crypto operation in the
+ * SCC.
+ */
+static os_lock_t scc_crypto_lock = NULL;
+
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,18))
+/** Pointer to SCC's clock information. Initialized during scc_init(). */
+static struct clk *scc_clk = NULL;
+#endif
+
+/** The lookup table for an 8-bit value. Calculated once
+ * by #scc_init_ccitt_crc().
+ */
+static uint16_t scc_crc_lookup_table[256];
+
+/******************************************************************************
+ *
+ * Function Implementations - Externally Accessible
+ *
+ *****************************************************************************/
+
+/**
+ * Allocate a partition of secure memory
+ *
+ * @param smid_value Value to use for the SMID register. Must be 0 for
+ * kernel mode access.
+ * @param[out] part_no (If successful) Assigned partition number.
+ * @param[out] part_base Kernel virtual address of the partition.
+ * @param[out] part_phys Physical address of the partition.
+ *
+ * @return
+ */
+scc_return_t scc_allocate_partition(uint32_t smid_value,
+ int *part_no,
+ void **part_base, uint32_t *part_phys)
+{
+ uint32_t i;
+ os_lock_context_t irq_flags = 0; /* for IRQ save/restore */
+ int local_part;
+ scc_return_t retval = SCC_RET_FAIL;
+ void *base_addr = NULL;
+ uint32_t reg_value;
+
+ local_part = -1;
+
+ if (scc_availability == SCC_STATUS_INITIAL) {
+ scc_init();
+ }
+ if (scc_availability == SCC_STATUS_UNIMPLEMENTED) {
+ goto out;
+ }
+
+ /* ACQUIRE LOCK to prevent others from using crypto or acquiring a
+ * partition. Note that crypto operations could take a long time, so the
+ * calling process could potentially spin for some time.
+ */
+ os_lock_save_context(scc_crypto_lock, irq_flags);
+
+ do {
+ /* Find current state of partition ownership */
+ reg_value = SCC_READ_REGISTER(SCM_PART_OWNERS_REG);
+
+ /* Search for a free one */
+ for (i = 0; i < scc_configuration.partition_count; i++) {
+ if (((reg_value >> (SCM_POWN_SHIFT * i))
+ & SCM_POWN_MASK) == SCM_POWN_PART_FREE) {
+ break; /* found a free one */
+ }
+ }
+ if (i == local_part) {
+ /* found this one last time, and failed to allocated it */
+ pr_debug(KERN_ERR "Partition %d cannot be allocated\n",
+ i);
+ goto out;
+ }
+ if (i >= scc_configuration.partition_count) {
+ retval = SCC_RET_INSUFFICIENT_SPACE; /* all used up */
+ goto out;
+ }
+
+ pr_debug
+ ("SCC2: Attempting to allocate partition %i, owners:%08x\n",
+ i, SCC_READ_REGISTER(SCM_PART_OWNERS_REG));
+
+ local_part = i;
+ /* Store SMID to grab a partition */
+ SCC_WRITE_REGISTER(SCM_SMID0_REG +
+ SCM_SMID_WIDTH * (local_part), smid_value);
+ mdelay(2);
+
+ /* Now make sure it is ours... ? */
+ reg_value = SCC_READ_REGISTER(SCM_PART_OWNERS_REG);
+
+ if (((reg_value >> (SCM_POWN_SHIFT * (local_part)))
+ & SCM_POWN_MASK) != SCM_POWN_PART_OWNED) {
+ continue; /* try for another */
+ }
+ base_addr = scm_ram_base +
+ (local_part * scc_configuration.partition_size_bytes);
+ break;
+ } while (1);
+
+out:
+
+ /* Free the lock */
+ os_unlock_restore_context(scc_callbacks_lock, irq_flags);
+
+ /* If the base address was assigned, then a partition was successfully
+ * acquired.
+ */
+ if (base_addr != NULL) {
+ pr_debug("SCC2 Part owners: %08x, engaged: %08x\n",
+ reg_value, SCC_READ_REGISTER(SCM_PART_ENGAGED_REG));
+ pr_debug("SCC2 MAP for part %d: %08x\n",
+ local_part,
+ SCC_READ_REGISTER(SCM_ACC0_REG + 8 * local_part));
+
+ /* Copy the partition information to the data structures passed by the
+ * user.
+ */
+ *part_no = local_part;
+ *part_base = base_addr;
+ *part_phys = (uint32_t) scm_ram_phys_base
+ + (local_part * scc_configuration.partition_size_bytes);
+ retval = SCC_RET_OK;
+
+ pr_debug
+ ("SCC2 partition engaged. Kernel address: %p. Physical "
+ "address: %p, pfn: %08x\n", *part_base, (void *)*part_phys,
+ __phys_to_pfn(*part_phys));
+ }
+
+ return retval;
+} /* allocate_partition() */
+
+/**
+ * Release a partition of secure memory
+ *
+ * @param part_base Kernel virtual address of the partition to be released.
+ *
+ * @return SCC_RET_OK if successful.
+ */
+scc_return_t scc_release_partition(void *part_base)
+{
+ uint32_t partition_no;
+
+ if (part_base == NULL) {
+ return SCC_RET_FAIL;
+ }
+
+ /* Ensure that this is a proper partition location */
+ partition_no = SCM_PART_NUMBER((uint32_t) part_base);
+
+ pr_debug("SCC2: Attempting to release partition %i, owners:%08x\n",
+ partition_no, SCC_READ_REGISTER(SCM_PART_OWNERS_REG));
+
+ /* check that the partition is ours to de-establish */
+ if (!host_owns_partition(partition_no)) {
+ return SCC_RET_FAIL;
+ }
+
+ /* TODO: The state of the zeroize engine (SRS field in the Command Status
+ * Register) should be examined before issuing the zeroize command here.
+ * To make the driver thread-safe, a lock should be taken out before
+ * issuing the check and released after the zeroize command has been
+ * issued.
+ */
+
+ /* Zero the partition to release it */
+ scc_write_register(SCM_ZCMD_REG,
+ (partition_no << SCM_ZCMD_PART_SHIFT) |
+ (ZCMD_DEALLOC_PART << SCM_ZCMD_CCMD_SHIFT));
+ mdelay(2);
+
+ pr_debug("SCC2: done releasing partition %i, owners:%08x\n",
+ partition_no, SCC_READ_REGISTER(SCM_PART_OWNERS_REG));
+
+ /* Check that the de-assignment went correctly */
+ if (host_owns_partition(partition_no)) {
+ return SCC_RET_FAIL;
+ }
+
+ return SCC_RET_OK;
+}
+
+/**
+ * Diminish the permissions on a partition of secure memory
+ *
+ * @param part_base Kernel virtual address of the partition.
+ * @param permissions ORed values of the type SCM_PERM_* which will be used as
+ * initial partition permissions. SHW API users should use
+ * the FSL_PERM_* definitions instead.
+ *
+ * @return SCC_RET_OK if successful.
+ */
+scc_return_t scc_diminish_permissions(void *part_base, uint32_t permissions)
+{
+ uint32_t partition_no;
+ uint32_t permissions_requested;
+ permissions_requested = permissions;
+
+ /* ensure that this is a proper partition location */
+ partition_no = SCM_PART_NUMBER((uint32_t) part_base);
+
+ /* invert the permissions, masking out unused bits */
+ permissions = (~permissions) & SCM_PERM_MASK;
+
+ /* attempt to diminish the permissions */
+ scc_write_register(SCM_ACC0_REG + 8 * partition_no, permissions);
+ mdelay(2);
+
+ /* Reading it back puts it into the original form */
+ permissions = SCC_READ_REGISTER(SCM_ACC0_REG + 8 * partition_no);
+ if (permissions == permissions_requested) {
+ pr_debug("scc_partition_diminish_perms: successful\n");
+ pr_debug("scc_partition_diminish_perms: successful\n");
+ return SCC_RET_OK;
+ }
+ pr_debug("scc_partition_diminish_perms: not successful\n");
+
+ return SCC_RET_FAIL;
+}
+
+extern scc_partition_status_t scc_partition_status(void *part_base)
+{
+ uint32_t part_no;
+ uint32_t part_owner;
+
+ /* Determine the partition number from the address */
+ part_no = SCM_PART_NUMBER((uint32_t) part_base);
+
+ /* Check if the partition is implemented */
+ if (part_no >= scc_configuration.partition_count) {
+ return SCC_PART_S_UNUSABLE;
+ }
+
+ /* Determine the value of the partition owners register */
+ part_owner = (SCC_READ_REGISTER(SCM_PART_OWNERS_REG)
+ >> (part_no * SCM_POWN_SHIFT)) & SCM_POWN_MASK;
+
+ switch (part_owner) {
+ case SCM_POWN_PART_OTHER:
+ return SCC_PART_S_UNAVAILABLE;
+ break;
+ case SCM_POWN_PART_FREE:
+ return SCC_PART_S_AVAILABLE;
+ break;
+ case SCM_POWN_PART_OWNED:
+ /* could be allocated or engaged*/
+ if (partition_engaged(part_no)) {
+ return SCC_PART_S_ENGAGED;
+ } else {
+ return SCC_PART_S_ALLOCATED;
+ }
+ break;
+ case SCM_POWN_PART_UNUSABLE:
+ default:
+ return SCC_PART_S_UNUSABLE;
+ break;
+ }
+}
+
+/**
+ * Calculate the physical address from the kernel virtual address.
+ *
+ * @param address Kernel virtual address of data in an Secure Partition.
+ * @return Physical address of said data.
+ */
+uint32_t scc_virt_to_phys(void *address)
+{
+ return (uint32_t) address - (uint32_t) scm_ram_base
+ + (uint32_t) scm_ram_phys_base;
+}
+
+/**
+ * Engage partition of secure memory
+ *
+ * @param part_base (kernel) Virtual
+ * @param UMID NULL, or 16-byte UMID for partition security
+ * @param permissions ORed values from fsl_shw_permission_t which
+ * will be used as initial partiition permissions.
+ *
+ * @return SCC_RET_OK if successful.
+ */
+
+scc_return_t
+scc_engage_partition(void *part_base,
+ const uint8_t *UMID, uint32_t permissions)
+{
+ uint32_t partition_no;
+ uint8_t *UMID_base = part_base + 0x10;
+ uint32_t *MAP_base = part_base;
+ uint8_t i;
+
+ partition_no = SCM_PART_NUMBER((uint32_t) part_base);
+
+ if (!host_owns_partition(partition_no) ||
+ partition_engaged(partition_no) ||
+ !(SCC_READ_REGISTER(SCM_SMID0_REG + (partition_no * 8)) == 0)) {
+
+ return SCC_RET_FAIL;
+ }
+
+ if (UMID != NULL) {
+ for (i = 0; i < 16; i++) {
+ UMID_base[i] = UMID[i];
+ }
+ }
+
+ MAP_base[0] = permissions;
+
+ udelay(20);
+
+ /* Check that the partition was engaged correctly, and that it has the
+ * proper permissions.
+ */
+
+ if ((!partition_engaged(partition_no)) ||
+ (permissions !=
+ SCC_READ_REGISTER(SCM_ACC0_REG + 8 * partition_no))) {
+ return SCC_RET_FAIL;
+ }
+
+ return SCC_RET_OK;
+}
+
+/*****************************************************************************/
+/* fn scc_init() */
+/*****************************************************************************/
+/**
+ * Initialize the driver at boot time or module load time.
+ *
+ * Register with the kernel as the interrupt handler for the SCC interrupt
+ * line(s).
+ *
+ * Map the SCC's register space into the driver's memory space.
+ *
+ * Query the SCC for its configuration and status. Save the configuration in
+ * #scc_configuration and save the status in #scc_availability. Called by the
+ * kernel.
+ *
+ * Do any locking/wait queue initialization which may be necessary.
+ *
+ * The availability fuse may be checked, depending on platform.
+ */
+static int scc_init(void)
+{
+ uint32_t smn_status;
+ int i;
+ int return_value = -EIO; /* assume error */
+
+ if (scc_availability == SCC_STATUS_INITIAL) {
+
+ /* Set this until we get an initial reading */
+ scc_availability = SCC_STATUS_CHECKING;
+
+ /* Initialize the constant for the CRC function */
+ scc_init_ccitt_crc();
+
+ /* initialize the callback table */
+ for (i = 0; i < SCC_CALLBACK_SIZE; i++) {
+ scc_callbacks[i] = 0;
+ }
+
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18))
+ mxc_clks_enable(SCC_CLK);
+#else
+ if (IS_ERR(scc_clk)) {
+ return_value = PTR_ERR(scc_clk);
+ goto out;
+ } else
+ clk_enable(scc_clk);
+#endif
+
+ /* Set up the hardware access locks */
+ scc_callbacks_lock = os_lock_alloc_init();
+ scc_crypto_lock = os_lock_alloc_init();
+ if (scc_callbacks_lock == NULL || scc_crypto_lock == NULL) {
+ os_printk(KERN_ERR
+ "SCC2: Failed to allocate context locks. Exiting.\n");
+ goto out;
+ }
+
+ /* See whether there is an SCC available */
+ if (0 && !SCC_ENABLED()) {
+ os_printk(KERN_ERR
+ "SCC2: Fuse for SCC is set to disabled. Exiting.\n");
+ goto out;
+ }
+ /* Map the SCC (SCM and SMN) memory on the internal bus into
+ kernel address space */
+ scc_base = (void *)ioremap(scc_phys_base, SZ_4K);
+ if (scc_base == NULL) {
+ os_printk(KERN_ERR
+ "SCC2: Register mapping failed. Exiting.\n");
+ goto out;
+ }
+
+ /* If that worked, we can try to use the SCC */
+ /* Get SCM into 'clean' condition w/interrupts cleared &
+ disabled */
+ SCC_WRITE_REGISTER(SCM_INT_CTL_REG, 0);
+
+ /* Clear error status register */
+ (void)SCC_READ_REGISTER(SCM_ERR_STATUS_REG);
+
+ /*
+ * There is an SCC. Determine its current state. Side effect
+ * is to populate scc_config and scc_availability
+ */
+ smn_status = scc_grab_config_values();
+
+ /* Try to set up interrupt handler(s) */
+ if (scc_availability != SCC_STATUS_OK) {
+ goto out;
+ }
+
+ if (cpu_is_mx51_rev(CHIP_REV_2_0) < 0)
+ scm_ram_phys_base += 0x8000;
+
+ scm_ram_base = (void *)ioremap_nocache(scm_ram_phys_base,
+ scc_configuration.
+ partition_count *
+ scc_configuration.
+ partition_size_bytes);
+ if (scm_ram_base == NULL) {
+ os_printk(KERN_ERR
+ "SCC2: RAM failed to remap: %p for %d bytes\n",
+ (void *)scm_ram_phys_base,
+ scc_configuration.partition_count *
+ scc_configuration.partition_size_bytes);
+ goto out;
+ }
+ pr_debug("SCC2: RAM at Physical %p / Virtual %p\n",
+ (void *)scm_ram_phys_base, scm_ram_base);
+
+ pr_debug("Secure Partition Table: Found %i partitions\n",
+ scc_configuration.partition_count);
+
+ if (setup_interrupt_handling() != 0) {
+ unsigned err_cond;
+ /**
+ * The error could be only that the SCM interrupt was
+ * not set up. This interrupt is always masked, so
+ * that is not an issue.
+ * The SMN's interrupt may be shared on that line, it
+ * may be separate, or it may not be wired. Do what
+ * is necessary to check its status.
+ * Although the driver is coded for possibility of not
+ * having SMN interrupt, the fact that there is one
+ * means it should be available and used.
+ */
+#ifdef USE_SMN_INTERRUPT
+ err_cond = !smn_irq_set; /* Separate. Check SMN binding */
+#elif !defined(NO_SMN_INTERRUPT)
+ err_cond = !scm_irq_set; /* Shared. Check SCM binding */
+#else
+ err_cond = FALSE; /* SMN not wired at all. Ignore. */
+#endif
+ if (err_cond) {
+ /* setup was not able to set up SMN interrupt */
+ scc_availability = SCC_STATUS_UNIMPLEMENTED;
+ goto out;
+ }
+ }
+
+ /* interrupt handling returned non-zero */
+ /* Get SMN into 'clean' condition w/interrupts cleared &
+ enabled */
+ SCC_WRITE_REGISTER(SMN_COMMAND_REG,
+ SMN_COMMAND_CLEAR_INTERRUPT
+ | SMN_COMMAND_ENABLE_INTERRUPT);
+
+ out:
+ /*
+ * If status is SCC_STATUS_UNIMPLEMENTED or is still
+ * SCC_STATUS_CHECKING, could be leaving here with the driver partially
+ * initialized. In either case, cleanup (which will mark the SCC as
+ * UNIMPLEMENTED).
+ */
+ if (scc_availability == SCC_STATUS_CHECKING ||
+ scc_availability == SCC_STATUS_UNIMPLEMENTED) {
+ scc_cleanup();
+ } else {
+ return_value = 0; /* All is well */
+ }
+ }
+ /* ! STATUS_INITIAL */
+ os_printk(KERN_ALERT "SCC2: Driver Status is %s\n",
+ (scc_availability == SCC_STATUS_INITIAL) ? "INITIAL" :
+ (scc_availability == SCC_STATUS_CHECKING) ? "CHECKING" :
+ (scc_availability ==
+ SCC_STATUS_UNIMPLEMENTED) ? "UNIMPLEMENTED"
+ : (scc_availability ==
+ SCC_STATUS_OK) ? "OK" : (scc_availability ==
+ SCC_STATUS_FAILED) ? "FAILED" :
+ "UNKNOWN");
+
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 18))
+ mxc_clks_disable(SCC_CLK);
+#else
+ if (!IS_ERR(scc_clk))
+ clk_disable(scc_clk);
+#endif
+
+ return return_value;
+} /* scc_init */
+
+/*****************************************************************************/
+/* fn scc_cleanup() */
+/*****************************************************************************/
+/**
+ * Perform cleanup before driver/module is unloaded by setting the machine
+ * state close to what it was when the driver was loaded. This function is
+ * called when the kernel is shutting down or when this driver is being
+ * unloaded.
+ *
+ * A driver like this should probably never be unloaded, especially if there
+ * are other module relying upon the callback feature for monitoring the SCC
+ * status.
+ *
+ * In any case, cleanup the callback table (by clearing out all of the
+ * pointers). Deregister the interrupt handler(s). Unmap SCC registers.
+ *
+ * Note that this will not release any partitions that have been allocated.
+ *
+ */
+static void scc_cleanup(void)
+{
+ int i;
+
+ /******************************************************/
+
+ /* Mark the driver / SCC as unusable. */
+ scc_availability = SCC_STATUS_UNIMPLEMENTED;
+
+ /* Clear out callback table */
+ for (i = 0; i < SCC_CALLBACK_SIZE; i++) {
+ scc_callbacks[i] = 0;
+ }
+
+ /* If SCC has been mapped in, clean it up and unmap it */
+ if (scc_base) {
+ /* For the SCM, disable interrupts. */
+ SCC_WRITE_REGISTER(SCM_INT_CTL_REG, 0);
+
+ /* For the SMN, clear and disable interrupts */
+ SCC_WRITE_REGISTER(SMN_COMMAND_REG,
+ SMN_COMMAND_CLEAR_INTERRUPT);
+ }
+
+ /* Now that interrupts cannot occur, disassociate driver from the interrupt
+ * lines.
+ */
+
+ /* Deregister SCM interrupt handler */
+ if (scm_irq_set) {
+ os_deregister_interrupt(INT_SCC_SCM);
+ }
+
+ /* Deregister SMN interrupt handler */
+ if (smn_irq_set) {
+#ifdef USE_SMN_INTERRUPT
+ os_deregister_interrupt(INT_SCC_SMN);
+#endif
+ }
+
+ /* Finally, release the mapped memory */
+ iounmap(scm_ram_base);
+
+ if (scc_callbacks_lock != NULL)
+ os_lock_deallocate(scc_callbacks_lock);
+
+ if (scc_crypto_lock != NULL)
+ os_lock_deallocate(scc_crypto_lock);
+
+ /*Disabling SCC Clock*/
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 18))
+ mxc_clks_disable(SCC_CLK);
+#else
+ if (!IS_ERR(scc_clk))
+ clk_disable(scc_clk);
+ clk_put(scc_clk);
+#endif
+ pr_debug("SCC2 driver cleaned up.\n");
+
+} /* scc_cleanup */
+
+/*****************************************************************************/
+/* fn scc_get_configuration() */
+/*****************************************************************************/
+scc_config_t *scc_get_configuration(void)
+{
+ /*
+ * If some other driver calls scc before the kernel does, make sure that
+ * this driver's initialization is performed.
+ */
+ if (scc_availability == SCC_STATUS_INITIAL) {
+ scc_init();
+ }
+
+ /**
+ * If there is no SCC, yet the driver exists, the value -1 will be in
+ * the #scc_config_t fields for other than the driver versions.
+ */
+ return &scc_configuration;
+} /* scc_get_configuration */
+
+/*****************************************************************************/
+/* fn scc_zeroize_memories() */
+/*****************************************************************************/
+scc_return_t scc_zeroize_memories(void)
+{
+ scc_return_t return_status = SCC_RET_FAIL;
+
+ return return_status;
+} /* scc_zeroize_memories */
+
+/*****************************************************************************/
+/* fn scc_set_sw_alarm() */
+/*****************************************************************************/
+void scc_set_sw_alarm(void)
+{
+
+ if (scc_availability == SCC_STATUS_INITIAL) {
+ scc_init();
+ }
+
+ /* Update scc_availability based on current SMN status. This might
+ * perform callbacks.
+ */
+ (void)scc_update_state();
+
+ /* if everything is OK, make it fail */
+ if (scc_availability == SCC_STATUS_OK) {
+
+ /* sound the alarm (and disable SMN interrupts */
+ SCC_WRITE_REGISTER(SMN_COMMAND_REG,
+ SMN_COMMAND_SET_SOFTWARE_ALARM);
+
+ scc_availability = SCC_STATUS_FAILED; /* Remember what we've done */
+
+ /* In case SMN interrupt is not available, tell the world */
+ scc_perform_callbacks();
+ }
+
+ return;
+} /* scc_set_sw_alarm */
+
+/*****************************************************************************/
+/* fn scc_monitor_security_failure() */
+/*****************************************************************************/
+scc_return_t scc_monitor_security_failure(void callback_func(void))
+{
+ int i;
+ os_lock_context_t irq_flags; /* for IRQ save/restore */
+ scc_return_t return_status = SCC_RET_TOO_MANY_FUNCTIONS;
+ int function_stored = FALSE;
+
+ if (scc_availability == SCC_STATUS_INITIAL) {
+ scc_init();
+ }
+
+ /* Acquire lock of callbacks table. Could be spin_lock_irq() if this
+ * routine were just called from base (not interrupt) level
+ */
+ os_lock_save_context(scc_callbacks_lock, irq_flags);
+
+ /* Search through table looking for empty slot */
+ for (i = 0; i < SCC_CALLBACK_SIZE; i++) {
+ if (scc_callbacks[i] == callback_func) {
+ if (function_stored) {
+ /* Saved duplicate earlier. Clear this later one. */
+ scc_callbacks[i] = NULL;
+ }
+ /* Exactly one copy is now stored */
+ return_status = SCC_RET_OK;
+ break;
+ } else if (scc_callbacks[i] == NULL && !function_stored) {
+ /* Found open slot. Save it and remember */
+ scc_callbacks[i] = callback_func;
+ return_status = SCC_RET_OK;
+ function_stored = TRUE;
+ }
+ }
+
+ /* Free the lock */
+ os_unlock_restore_context(scc_callbacks_lock, irq_flags);
+
+ return return_status;
+} /* scc_monitor_security_failure */
+
+/*****************************************************************************/
+/* fn scc_stop_monitoring_security_failure() */
+/*****************************************************************************/
+void scc_stop_monitoring_security_failure(void callback_func(void))
+{
+ os_lock_context_t irq_flags; /* for IRQ save/restore */
+ int i;
+
+ if (scc_availability == SCC_STATUS_INITIAL) {
+ scc_init();
+ }
+
+ /* Acquire lock of callbacks table. Could be spin_lock_irq() if this
+ * routine were just called from base (not interrupt) level
+ */
+ os_lock_save_context(scc_callbacks_lock, irq_flags);
+
+ /* Search every entry of the table for this function */
+ for (i = 0; i < SCC_CALLBACK_SIZE; i++) {
+ if (scc_callbacks[i] == callback_func) {
+ scc_callbacks[i] = NULL; /* found instance - clear it out */
+ break;
+ }
+ }
+
+ /* Free the lock */
+ os_unlock_restore_context(scc_callbacks_lock, irq_flags);
+
+ return;
+} /* scc_stop_monitoring_security_failure */
+
+/*****************************************************************************/
+/* fn scc_read_register() */
+/*****************************************************************************/
+scc_return_t scc_read_register(int register_offset, uint32_t * value)
+{
+ scc_return_t return_status = SCC_RET_FAIL;
+ uint32_t smn_status;
+ uint32_t scm_status;
+
+ if (scc_availability == SCC_STATUS_INITIAL) {
+ scc_init();
+ }
+
+ /* First layer of protection -- completely unaccessible SCC */
+ if (scc_availability != SCC_STATUS_UNIMPLEMENTED) {
+
+ /* Second layer -- that offset is valid */
+ if (register_offset != SMN_BB_DEC_REG && /* write only! */
+ check_register_offset(register_offset) == SCC_RET_OK) {
+
+ /* Get current status / update local state */
+ smn_status = scc_update_state();
+ scm_status = SCC_READ_REGISTER(SCM_STATUS_REG);
+
+ /*
+ * Third layer - verify that the register being requested is
+ * available in the current state of the SCC.
+ */
+ if ((return_status =
+ check_register_accessible(register_offset,
+ smn_status,
+ scm_status)) ==
+ SCC_RET_OK) {
+ *value = SCC_READ_REGISTER(register_offset);
+ }
+ }
+ }
+
+ return return_status;
+} /* scc_read_register */
+
+/*****************************************************************************/
+/* fn scc_write_register() */
+/*****************************************************************************/
+scc_return_t scc_write_register(int register_offset, uint32_t value)
+{
+ scc_return_t return_status = SCC_RET_FAIL;
+ uint32_t smn_status;
+ uint32_t scm_status;
+
+ if (scc_availability == SCC_STATUS_INITIAL) {
+ scc_init();
+ }
+
+ /* First layer of protection -- completely unaccessible SCC */
+ if (scc_availability != SCC_STATUS_UNIMPLEMENTED) {
+
+ /* Second layer -- that offset is valid */
+ if (!((register_offset == SCM_STATUS_REG) || /* These registers are */
+ (register_offset == SCM_VERSION_REG) || /* Read Only */
+ (register_offset == SMN_BB_CNT_REG) ||
+ (register_offset == SMN_TIMER_REG)) &&
+ check_register_offset(register_offset) == SCC_RET_OK) {
+
+ /* Get current status / update local state */
+ smn_status = scc_update_state();
+ scm_status = SCC_READ_REGISTER(SCM_STATUS_REG);
+
+ /*
+ * Third layer - verify that the register being requested is
+ * available in the current state of the SCC.
+ */
+ if (check_register_accessible
+ (register_offset, smn_status, scm_status) == 0) {
+ SCC_WRITE_REGISTER(register_offset, value);
+ return_status = SCC_RET_OK;
+ }
+ }
+ }
+
+ return return_status;
+} /* scc_write_register() */
+
+/******************************************************************************
+ *
+ * Function Implementations - Internal
+ *
+ *****************************************************************************/
+
+/*****************************************************************************/
+/* fn scc_irq() */
+/*****************************************************************************/
+/**
+ * This is the interrupt handler for the SCC.
+ *
+ * This function checks the SMN Status register to see whether it
+ * generated the interrupt, then it checks the SCM Status register to
+ * see whether it needs attention.
+ *
+ * If an SMN Interrupt is active, then the SCC state set to failure, and
+ * #scc_perform_callbacks() is invoked to notify any interested parties.
+ *
+ * The SCM Interrupt should be masked, as this driver uses polling to determine
+ * when the SCM has completed a crypto or zeroing operation. Therefore, if the
+ * interrupt is active, the driver will just clear the interrupt and (re)mask.
+ */
+OS_DEV_ISR(scc_irq)
+{
+ uint32_t smn_status;
+ uint32_t scm_status;
+ int handled = 0; /* assume interrupt isn't from SMN */
+#if defined(USE_SMN_INTERRUPT)
+ int smn_irq = INT_SCC_SMN; /* SMN interrupt is on a line by itself */
+#elif defined (NO_SMN_INTERRUPT)
+ int smn_irq = -1; /* not wired to CPU at all */
+#else
+ int smn_irq = INT_SCC_SCM; /* SMN interrupt shares a line with SCM */
+#endif
+
+ /* Update current state... This will perform callbacks... */
+ smn_status = scc_update_state();
+
+ /* SMN is on its own interrupt line. Verify the IRQ was triggered
+ * before clearing the interrupt and marking it handled. */
+ if ((os_dev_get_irq() == smn_irq) &&
+ (smn_status & SMN_STATUS_SMN_STATUS_IRQ)) {
+ SCC_WRITE_REGISTER(SMN_COMMAND_REG,
+ SMN_COMMAND_CLEAR_INTERRUPT);
+ handled++; /* tell kernel that interrupt was handled */
+ }
+
+ /* Check on the health of the SCM */
+ scm_status = SCC_READ_REGISTER(SCM_STATUS_REG);
+
+ /* The driver masks interrupts, so this should never happen. */
+ if (os_dev_get_irq() == INT_SCC_SCM) {
+ /* but if it does, try to prevent it in the future */
+ SCC_WRITE_REGISTER(SCM_INT_CTL_REG, 0);
+ handled++;
+ }
+
+ /* Any non-zero value of handled lets kernel know we got something */
+ os_dev_isr_return(handled);
+}
+
+/*****************************************************************************/
+/* fn scc_perform_callbacks() */
+/*****************************************************************************/
+/** Perform callbacks registered by #scc_monitor_security_failure().
+ *
+ * Make sure callbacks only happen once... Since there may be some reason why
+ * the interrupt isn't generated, this routine could be called from base(task)
+ * level.
+ *
+ * One at a time, go through #scc_callbacks[] and call any non-null pointers.
+ */
+static void scc_perform_callbacks(void)
+{
+ static int callbacks_performed = 0;
+ unsigned long irq_flags; /* for IRQ save/restore */
+ int i;
+
+ /* Acquire lock of callbacks table and callbacks_performed flag */
+ os_lock_save_context(scc_callbacks_lock, irq_flags);
+
+ if (!callbacks_performed) {
+ callbacks_performed = 1;
+
+ /* Loop over all of the entries in the table */
+ for (i = 0; i < SCC_CALLBACK_SIZE; i++) {
+ /* If not null, ... */
+ if (scc_callbacks[i]) {
+ scc_callbacks[i] (); /* invoke the callback routine */
+ }
+ }
+ }
+
+ os_unlock_restore_context(scc_callbacks_lock, irq_flags);
+
+ return;
+}
+
+/*****************************************************************************/
+/* fn scc_update_state() */
+/*****************************************************************************/
+/**
+ * Make certain SCC is still running.
+ *
+ * Side effect is to update #scc_availability and, if the state goes to failed,
+ * run #scc_perform_callbacks().
+ *
+ * (If #SCC_BRINGUP is defined, bring SCC to secure state if it is found to be
+ * in health check state)
+ *
+ * @return Current value of #SMN_STATUS_REG register.
+ */
+static uint32_t scc_update_state(void)
+{
+ uint32_t smn_status_register = SMN_STATE_FAIL;
+ int smn_state;
+
+ /* if FAIL or UNIMPLEMENTED, don't bother */
+ if (scc_availability == SCC_STATUS_CHECKING ||
+ scc_availability == SCC_STATUS_OK) {
+
+ smn_status_register = SCC_READ_REGISTER(SMN_STATUS_REG);
+ smn_state = smn_status_register & SMN_STATUS_STATE_MASK;
+
+#ifdef SCC_BRINGUP
+ /* If in Health Check while booting, try to 'bringup' to Secure mode */
+ if (scc_availability == SCC_STATUS_CHECKING &&
+ smn_state == SMN_STATE_HEALTH_CHECK) {
+ /* Code up a simple algorithm for the ASC */
+ SCC_WRITE_REGISTER(SMN_SEQ_START_REG, 0xaaaa);
+ SCC_WRITE_REGISTER(SMN_SEQ_END_REG, 0x5555);
+ SCC_WRITE_REGISTER(SMN_SEQ_CHECK_REG, 0x5555);
+ /* State should be SECURE now */
+ smn_status_register = SCC_READ_REGISTER(SMN_STATUS);
+ smn_state = smn_status_register & SMN_STATUS_STATE_MASK;
+ }
+#endif
+
+ /*
+ * State should be SECURE or NON_SECURE for operation of the part. If
+ * FAIL, mark failed (i.e. limited access to registers). Any other
+ * state, mark unimplemented, as the SCC is unuseable.
+ */
+ if (smn_state == SMN_STATE_SECURE
+ || smn_state == SMN_STATE_NON_SECURE) {
+ /* Healthy */
+ scc_availability = SCC_STATUS_OK;
+ } else if (smn_state == SMN_STATE_FAIL) {
+ scc_availability = SCC_STATUS_FAILED; /* uh oh - unhealthy */
+ scc_perform_callbacks();
+ os_printk(KERN_ERR "SCC2: SCC went into FAILED mode\n");
+ } else {
+ /* START, ZEROIZE RAM, HEALTH CHECK, or unknown */
+ scc_availability = SCC_STATUS_UNIMPLEMENTED; /* unuseable */
+ os_printk(KERN_ERR
+ "SCC2: SCC declared UNIMPLEMENTED\n");
+ }
+ }
+ /* if availability is initial or ok */
+ return smn_status_register;
+}
+
+/*****************************************************************************/
+/* fn scc_init_ccitt_crc() */
+/*****************************************************************************/
+/**
+ * Populate the partial CRC lookup table.
+ *
+ * @return none
+ *
+ */
+static void scc_init_ccitt_crc(void)
+{
+ int dividend; /* index for lookup table */
+ uint16_t remainder; /* partial value for a given dividend */
+ int bit; /* index into bits of a byte */
+
+ /*
+ * Compute the remainder of each possible dividend.
+ */
+ for (dividend = 0; dividend < 256; ++dividend) {
+ /*
+ * Start with the dividend followed by zeros.
+ */
+ remainder = dividend << (8);
+
+ /*
+ * Perform modulo-2 division, a bit at a time.
+ */
+ for (bit = 8; bit > 0; --bit) {
+ /*
+ * Try to divide the current data bit.
+ */
+ if (remainder & 0x8000) {
+ remainder = (remainder << 1) ^ CRC_POLYNOMIAL;
+ } else {
+ remainder = (remainder << 1);
+ }
+ }
+
+ /*
+ * Store the result into the table.
+ */
+ scc_crc_lookup_table[dividend] = remainder;
+ }
+
+} /* scc_init_ccitt_crc() */
+
+/*****************************************************************************/
+/* fn grab_config_values() */
+/*****************************************************************************/
+/**
+ * grab_config_values() will read the SCM Configuration and SMN Status
+ * registers and store away version and size information for later use.
+ *
+ * @return The current value of the SMN Status register.
+ */
+static uint32_t scc_grab_config_values(void)
+{
+ uint32_t scm_version_register;
+ uint32_t smn_status_register = SMN_STATE_FAIL;
+
+ if (scc_availability != SCC_STATUS_CHECKING) {
+ goto out;
+ }
+ scm_version_register = SCC_READ_REGISTER(SCM_VERSION_REG);
+ pr_debug("SCC2 Driver: SCM version is 0x%08x\n", scm_version_register);
+
+ /* Get SMN status and update scc_availability */
+ smn_status_register = scc_update_state();
+ pr_debug("SCC2 Driver: SMN status is 0x%08x\n", smn_status_register);
+
+ /* save sizes and versions information for later use */
+ scc_configuration.block_size_bytes = 16; /* BPCP ? */
+ scc_configuration.partition_count =
+ 1 + ((scm_version_register & SCM_VER_NP_MASK) >> SCM_VER_NP_SHIFT);
+ scc_configuration.partition_size_bytes =
+ 1 << ((scm_version_register & SCM_VER_BPP_MASK) >>
+ SCM_VER_BPP_SHIFT);
+ scc_configuration.scm_version =
+ (scm_version_register & SCM_VER_MAJ_MASK) >> SCM_VER_MAJ_SHIFT;
+ scc_configuration.smn_version =
+ (smn_status_register & SMN_STATUS_VERSION_ID_MASK)
+ >> SMN_STATUS_VERSION_ID_SHIFT;
+ if (scc_configuration.scm_version != SCM_MAJOR_VERSION_2) {
+ scc_availability = SCC_STATUS_UNIMPLEMENTED; /* Unknown version */
+ }
+
+ out:
+ return smn_status_register;
+} /* grab_config_values */
+
+/*****************************************************************************/
+/* fn setup_interrupt_handling() */
+/*****************************************************************************/
+/**
+ * Register the SCM and SMN interrupt handlers.
+ *
+ * Called from #scc_init()
+ *
+ * @return 0 on success
+ */
+static int setup_interrupt_handling(void)
+{
+ int smn_error_code = -1;
+ int scm_error_code = -1;
+
+ /* Disnable SCM interrupts */
+ SCC_WRITE_REGISTER(SCM_INT_CTL_REG, 0);
+
+#ifdef USE_SMN_INTERRUPT
+ /* Install interrupt service routine for SMN. */
+ smn_error_code = os_register_interrupt(SCC_DRIVER_NAME,
+ INT_SCC_SMN, scc_irq);
+ if (smn_error_code != 0) {
+ os_printk(KERN_ERR
+ "SCC2 Driver: Error installing SMN Interrupt Handler: %d\n",
+ smn_error_code);
+ } else {
+ smn_irq_set = 1; /* remember this for cleanup */
+ /* Enable SMN interrupts */
+ SCC_WRITE_REGISTER(SMN_COMMAND_REG,
+ SMN_COMMAND_CLEAR_INTERRUPT |
+ SMN_COMMAND_ENABLE_INTERRUPT);
+ }
+#else
+ smn_error_code = 0; /* no problems... will handle later */
+#endif
+
+ /*
+ * Install interrupt service routine for SCM (or both together).
+ */
+ scm_error_code = os_register_interrupt(SCC_DRIVER_NAME,
+ INT_SCC_SCM, scc_irq);
+ if (scm_error_code != 0) {
+#ifndef MXC
+ os_printk(KERN_ERR
+ "SCC2 Driver: Error installing SCM Interrupt Handler: %d\n",
+ scm_error_code);
+#else
+ os_printk(KERN_ERR
+ "SCC2 Driver: Error installing SCC Interrupt Handler: %d\n",
+ scm_error_code);
+#endif
+ } else {
+ scm_irq_set = 1; /* remember this for cleanup */
+#if defined(USE_SMN_INTERRUPT) && !defined(NO_SMN_INTERRUPT)
+ /* Enable SMN interrupts */
+ SCC_WRITE_REGISTER(SMN_COMMAND_REG,
+ SMN_COMMAND_CLEAR_INTERRUPT |
+ SMN_COMMAND_ENABLE_INTERRUPT);
+#endif
+ }
+
+ /* Return an error if one was encountered */
+ return scm_error_code ? scm_error_code : smn_error_code;
+} /* setup_interrupt_handling */
+
+/*****************************************************************************/
+/* fn scc_do_crypto() */
+/*****************************************************************************/
+/** Have the SCM perform the crypto function.
+ *
+ * Set up length register, and the store @c scm_control into control register
+ * to kick off the operation. Wait for completion, gather status, clear
+ * interrupt / status.
+ *
+ * @param byte_count number of bytes to perform in this operation
+ * @param scm_command Bit values to be set in @c SCM_CCMD_REG register
+ *
+ * @return 0 on success, value of #SCM_ERR_STATUS_REG on failure
+ */
+static uint32_t scc_do_crypto(int byte_count, uint32_t scm_command)
+{
+ int block_count = byte_count / SCC_BLOCK_SIZE_BYTES();
+ uint32_t crypto_status;
+ scc_return_t ret;
+
+ /* This seems to be necessary in order to allow subsequent cipher
+ * operations to succeed when a partition is deallocated/reallocated!
+ */
+ (void)SCC_READ_REGISTER(SCM_STATUS_REG);
+
+ /* In length register, 0 means 1, etc. */
+ scm_command |= (block_count - 1) << SCM_CCMD_LENGTH_SHIFT;
+
+ /* set modes and kick off the operation */
+ SCC_WRITE_REGISTER(SCM_CCMD_REG, scm_command);
+
+ ret = scc_wait_completion(&crypto_status);
+
+ /* Only done bit should be on */
+ if (crypto_status & SCM_STATUS_ERR) {
+ /* Replace with error status instead */
+ crypto_status = SCC_READ_REGISTER(SCM_ERR_STATUS_REG);
+ pr_debug("SCM Failure: 0x%x\n", crypto_status);
+ if (crypto_status == 0) {
+ /* That came up 0. Turn on arbitrary bit to signal error. */
+ crypto_status = SCM_ERRSTAT_ILM;
+ }
+ } else {
+ crypto_status = 0;
+ }
+ pr_debug("SCC2: Done waiting.\n");
+
+ return crypto_status;
+}
+
+/**
+ * Encrypt a region of secure memory.
+ *
+ * @param part_base Kernel virtual address of the partition.
+ * @param offset_bytes Offset from the start of the partition to the plaintext
+ * data.
+ * @param byte_count Length of the region (octets).
+ * @param black_data Physical location to store the encrypted data.
+ * @param IV Value to use for the IV.
+ * @param cypher_mode Cyphering mode to use, specified by type
+ * #scc_cypher_mode_t
+ *
+ * @return SCC_RET_OK if successful.
+ */
+scc_return_t
+scc_encrypt_region(uint32_t part_base, uint32_t offset_bytes,
+ uint32_t byte_count, uint8_t *black_data,
+ uint32_t *IV, scc_cypher_mode_t cypher_mode)
+{
+ os_lock_context_t irq_flags; /* for IRQ save/restore */
+ scc_return_t status = SCC_RET_OK;
+ uint32_t crypto_status;
+ uint32_t scm_command;
+ int offset_blocks = offset_bytes / SCC_BLOCK_SIZE_BYTES();
+
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 18))
+ mxc_clks_enable(SCC_CLK);
+#else
+ if (IS_ERR(scc_clk)) {
+ status = SCC_RET_FAIL;
+ goto out;
+ } else
+ clk_enable(scc_clk);
+#endif
+
+ scm_command = ((offset_blocks << SCM_CCMD_OFFSET_SHIFT) |
+ (SCM_PART_NUMBER(part_base) << SCM_CCMD_PART_SHIFT));
+
+ switch (cypher_mode) {
+ case SCC_CYPHER_MODE_CBC:
+ scm_command |= SCM_CCMD_AES_ENC_CBC;
+ break;
+ case SCC_CYPHER_MODE_ECB:
+ scm_command |= SCM_CCMD_AES_ENC_ECB;
+ break;
+ default:
+ status = SCC_RET_FAIL;
+ break;
+ }
+
+ pr_debug("Received encrypt request. SCM_C_BLACK_ST_REG: %p, "
+ "scm_Command: %08x, length: %i (part_base: %08x, "
+ "offset: %i)\n",
+ black_data, scm_command, byte_count, part_base, offset_blocks);
+
+ if (status != SCC_RET_OK)
+ goto out;
+
+ /* ACQUIRE LOCK to prevent others from using crypto or releasing slot */
+ os_lock_save_context(scc_crypto_lock, irq_flags);
+
+ if (status == SCC_RET_OK) {
+ SCC_WRITE_REGISTER(SCM_C_BLACK_ST_REG, (uint32_t) black_data);
+
+ /* Only write the IV if it will actually be used */
+ if (cypher_mode == SCC_CYPHER_MODE_CBC) {
+ /* Write the IV register */
+ SCC_WRITE_REGISTER(SCM_AES_CBC_IV0_REG, *(IV));
+ SCC_WRITE_REGISTER(SCM_AES_CBC_IV1_REG, *(IV + 1));
+ SCC_WRITE_REGISTER(SCM_AES_CBC_IV2_REG, *(IV + 2));
+ SCC_WRITE_REGISTER(SCM_AES_CBC_IV3_REG, *(IV + 3));
+ }
+
+ /* Set modes and kick off the encryption */
+ crypto_status = scc_do_crypto(byte_count, scm_command);
+
+ if (crypto_status != 0) {
+ pr_debug("SCM encrypt red crypto failure: 0x%x\n",
+ crypto_status);
+ } else {
+ status = SCC_RET_OK;
+ pr_debug("SCC2: Encrypted %d bytes\n", byte_count);
+ }
+ }
+
+ os_unlock_restore_context(scc_crypto_lock, irq_flags);
+
+out:
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 18))
+ mxc_clks_disable(SCC_CLK);
+#else
+ if (!IS_ERR(scc_clk))
+ clk_disable(scc_clk);
+#endif
+
+ return status;
+}
+
+/* Decrypt a region into secure memory
+ *
+ * @param part_base Kernel virtual address of the partition.
+ * @param offset_bytes Offset from the start of the partition to store the
+ * plaintext data.
+ * @param byte_counts Length of the region (octets).
+ * @param black_data Physical location of the encrypted data.
+ * @param IV Value to use for the IV.
+ * @param cypher_mode Cyphering mode to use, specified by type
+ * #scc_cypher_mode_t
+ *
+ * @return SCC_RET_OK if successful.
+ */
+scc_return_t
+scc_decrypt_region(uint32_t part_base, uint32_t offset_bytes,
+ uint32_t byte_count, uint8_t *black_data,
+ uint32_t *IV, scc_cypher_mode_t cypher_mode)
+{
+ os_lock_context_t irq_flags; /* for IRQ save/restore */
+ scc_return_t status = SCC_RET_OK;
+ uint32_t crypto_status;
+ uint32_t scm_command;
+ int offset_blocks = offset_bytes / SCC_BLOCK_SIZE_BYTES();
+
+ /*Enabling SCC clock.*/
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 18))
+ mxc_clks_enable(SCC_CLK);
+#else
+ if (IS_ERR(scc_clk)) {
+ status = SCC_RET_FAIL;
+ goto out;
+ } else
+ clk_enable(scc_clk);
+#endif
+ scm_command = ((offset_blocks << SCM_CCMD_OFFSET_SHIFT) |
+ (SCM_PART_NUMBER(part_base) << SCM_CCMD_PART_SHIFT));
+
+ switch (cypher_mode) {
+ case SCC_CYPHER_MODE_CBC:
+ scm_command |= SCM_CCMD_AES_DEC_CBC;
+ break;
+ case SCC_CYPHER_MODE_ECB:
+ scm_command |= SCM_CCMD_AES_DEC_ECB;
+ break;
+ default:
+ status = SCC_RET_FAIL;
+ break;
+ }
+
+ pr_debug("Received decrypt request. SCM_C_BLACK_ST_REG: %p, "
+ "scm_Command: %08x, length: %i (part_base: %08x, "
+ "offset: %i)\n",
+ black_data, scm_command, byte_count, part_base, offset_blocks);
+
+ if (status != SCC_RET_OK)
+ goto out;
+
+ /* ACQUIRE LOCK to prevent others from using crypto or releasing slot */
+ os_lock_save_context(scc_crypto_lock, irq_flags);
+
+ if (status == SCC_RET_OK) {
+ status = SCC_RET_FAIL; /* reset expectations */
+ SCC_WRITE_REGISTER(SCM_C_BLACK_ST_REG, (uint32_t) black_data);
+
+ /* Write the IV register */
+ SCC_WRITE_REGISTER(SCM_AES_CBC_IV0_REG, *(IV));
+ SCC_WRITE_REGISTER(SCM_AES_CBC_IV1_REG, *(IV + 1));
+ SCC_WRITE_REGISTER(SCM_AES_CBC_IV2_REG, *(IV + 2));
+ SCC_WRITE_REGISTER(SCM_AES_CBC_IV3_REG, *(IV + 3));
+
+ /* Set modes and kick off the decryption */
+ crypto_status = scc_do_crypto(byte_count, scm_command);
+
+ if (crypto_status != 0) {
+ pr_debug("SCM decrypt black crypto failure: 0x%x\n",
+ crypto_status);
+ } else {
+ status = SCC_RET_OK;
+ pr_debug("SCC2: Decrypted %d bytes\n", byte_count);
+ }
+ }
+
+ os_unlock_restore_context(scc_crypto_lock, irq_flags);
+out:
+ /*Disabling the Clock when the driver is not in use.*/
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 18))
+ mxc_clks_disable(SCC_CLK);
+#else
+ if (!IS_ERR(scc_clk))
+ clk_disable(scc_clk);
+#endif
+ return status;
+}
+
+/*****************************************************************************/
+/* fn host_owns_partition() */
+/*****************************************************************************/
+/**
+ * Determine if the host owns a given partition.
+ *
+ * @internal
+ *
+ * @param part_no Partition number to query
+ *
+ * @return TRUE if the host owns the partition, FALSE otherwise.
+ */
+
+static uint32_t host_owns_partition(uint32_t part_no)
+{
+ uint32_t value;
+
+ if (part_no < scc_configuration.partition_count) {
+
+ /* Check the partition owners register */
+ value = SCC_READ_REGISTER(SCM_PART_OWNERS_REG);
+ if (((value >> (part_no * SCM_POWN_SHIFT)) & SCM_POWN_MASK)
+ == SCM_POWN_PART_OWNED)
+ return TRUE;
+ }
+ return FALSE;
+}
+
+/*****************************************************************************/
+/* fn partition_engaged() */
+/*****************************************************************************/
+/**
+ * Determine if the given partition is engaged.
+ *
+ * @internal
+ *
+ * @param part_no Partition number to query
+ *
+ * @return TRUE if the partition is engaged, FALSE otherwise.
+ */
+
+static uint32_t partition_engaged(uint32_t part_no)
+{
+ uint32_t value;
+
+ if (part_no < scc_configuration.partition_count) {
+
+ /* Check the partition engaged register */
+ value = SCC_READ_REGISTER(SCM_PART_ENGAGED_REG);
+ if (((value >> (part_no * SCM_PENG_SHIFT)) & 0x1)
+ == SCM_PENG_ENGAGED)
+ return TRUE;
+ }
+ return FALSE;
+}
+
+/*****************************************************************************/
+/* fn scc_wait_completion() */
+/*****************************************************************************/
+/**
+ * Poll looking for end-of-cipher indication. Only used
+ * if @c SCC_SCM_SLEEP is not defined.
+ *
+ * @internal
+ *
+ * On a Tahiti, crypto under 230 or so bytes is done after the first loop, all
+ * the way up to five sets of spins for 1024 bytes. (8- and 16-byte functions
+ * are done when we first look. Zeroizing takes one pass around.
+ *
+ * @param scm_status Address of the SCM_STATUS register
+ *
+ * @return A return code of type #scc_return_t
+ */
+static scc_return_t scc_wait_completion(uint32_t * scm_status)
+{
+ scc_return_t ret;
+ int done;
+ int i = 0;
+
+ /* check for completion by polling */
+ do {
+ done = is_cipher_done(scm_status);
+ if (done)
+ break;
+ /* TODO: shorten this delay */
+ udelay(1000);
+ } while (i++ < SCC_CIPHER_MAX_POLL_COUNT);
+
+ pr_debug("SCC2: Polled DONE %d times\n", i);
+ if (!done) {
+ ret = SCC_RET_FAIL;
+ }
+
+ return ret;
+} /* scc_wait_completion() */
+
+/*****************************************************************************/
+/* fn is_cipher_done() */
+/*****************************************************************************/
+/**
+ * This function returns non-zero if SCM Status register indicates
+ * that a cipher has terminated or some other interrupt-generating
+ * condition has occurred.
+ *
+ * @param scm_status Address of the SCM STATUS register
+ *
+ * @return 0 if cipher operations are finished
+ */
+static int is_cipher_done(uint32_t * scm_status)
+{
+ register unsigned status;
+ register int cipher_done;
+
+ *scm_status = SCC_READ_REGISTER(SCM_STATUS_REG);
+ status = (*scm_status & SCM_STATUS_SRS_MASK) >> SCM_STATUS_SRS_SHIFT;
+
+ /*
+ * Done when SCM is not in 'currently performing a function' states.
+ */
+ cipher_done = ((status != SCM_STATUS_SRS_ZBUSY)
+ && (status != SCM_STATUS_SRS_CBUSY)
+ && (status != SCM_STATUS_SRS_ABUSY));
+
+ return cipher_done;
+} /* is_cipher_done() */
+
+/*****************************************************************************/
+/* fn offset_within_smn() */
+/*****************************************************************************/
+/*!
+ * Check that the offset is with the bounds of the SMN register set.
+ *
+ * @param[in] register_offset register offset of SMN.
+ *
+ * @return 1 if true, 0 if false (not within SMN)
+ */
+static inline int offset_within_smn(uint32_t register_offset)
+{
+ return ((register_offset >= SMN_STATUS_REG)
+ && (register_offset <= SMN_HAC_REG));
+}
+
+/*****************************************************************************/
+/* fn offset_within_scm() */
+/*****************************************************************************/
+/*!
+ * Check that the offset is with the bounds of the SCM register set.
+ *
+ * @param[in] register_offset Register offset of SCM
+ *
+ * @return 1 if true, 0 if false (not within SCM)
+ */
+static inline int offset_within_scm(uint32_t register_offset)
+{
+ return 1; /* (register_offset >= SCM_RED_START)
+ && (register_offset < scm_highest_memory_address); */
+/* Although this would cause trouble for zeroize testing, this change would
+ * close a security hole which currently allows any kernel program to access
+ * any location in RED RAM. Perhaps enforce in non-SCC_DEBUG compiles?
+ && (register_offset <= SCM_INIT_VECTOR_1); */
+}
+
+/*****************************************************************************/
+/* fn check_register_accessible() */
+/*****************************************************************************/
+/**
+ * Given the current SCM and SMN status, verify that access to the requested
+ * register should be OK.
+ *
+ * @param[in] register_offset register offset within SCC
+ * @param[in] smn_status recent value from #SMN_STATUS_REG
+ * @param[in] scm_status recent value from #SCM_STATUS_REG
+ *
+ * @return #SCC_RET_OK if ok, #SCC_RET_FAIL if not
+ */
+static scc_return_t
+check_register_accessible(uint32_t register_offset, uint32_t smn_status,
+ uint32_t scm_status)
+{
+ int error_code = SCC_RET_FAIL;
+
+ /* Verify that the register offset passed in is not among the verboten set
+ * if the SMN is in Fail mode.
+ */
+ if (offset_within_smn(register_offset)) {
+ if ((smn_status & SMN_STATUS_STATE_MASK) == SMN_STATE_FAIL) {
+ if (!((register_offset == SMN_STATUS_REG) ||
+ (register_offset == SMN_COMMAND_REG) ||
+ (register_offset == SMN_SEC_VIO_REG))) {
+ pr_debug
+ ("SCC2 Driver: Note: Security State is in FAIL state.\n");
+ } /* register not a safe one */
+ else {
+ /* SMN is in FAIL, but register is a safe one */
+ error_code = SCC_RET_OK;
+ }
+ } /* State is FAIL */
+ else {
+ /* State is not fail. All registers accessible. */
+ error_code = SCC_RET_OK;
+ }
+ }
+ /* offset within SMN */
+ /* Not SCM register. Check for SCM busy. */
+ else if (offset_within_scm(register_offset)) {
+ /* This is the 'cannot access' condition in the SCM */
+ if (0 /* (scm_status & SCM_STATUS_BUSY) */
+ /* these are always available - rest fail on busy */
+ && !((register_offset == SCM_STATUS_REG) ||
+ (register_offset == SCM_ERR_STATUS_REG) ||
+ (register_offset == SCM_INT_CTL_REG) ||
+ (register_offset == SCM_VERSION_REG))) {
+ pr_debug
+ ("SCC2 Driver: Note: Secure Memory is in BUSY state.\n");
+ } /* status is busy & register inaccessible */
+ else {
+ error_code = SCC_RET_OK;
+ }
+ }
+ /* offset within SCM */
+ return error_code;
+
+} /* check_register_accessible() */
+
+/*****************************************************************************/
+/* fn check_register_offset() */
+/*****************************************************************************/
+/**
+ * Check that the offset is with the bounds of the SCC register set.
+ *
+ * @param[in] register_offset register offset of SMN.
+ *
+ * #SCC_RET_OK if ok, #SCC_RET_FAIL if not
+ */
+static scc_return_t check_register_offset(uint32_t register_offset)
+{
+ int return_value = SCC_RET_FAIL;
+
+ /* Is it valid word offset ? */
+ if (SCC_BYTE_OFFSET(register_offset) == 0) {
+ /* Yes. Is register within SCM? */
+ if (offset_within_scm(register_offset)) {
+ return_value = SCC_RET_OK; /* yes, all ok */
+ }
+ /* Not in SCM. Now look within the SMN */
+ else if (offset_within_smn(register_offset)) {
+ return_value = SCC_RET_OK; /* yes, all ok */
+ }
+ }
+
+ return return_value;
+}
+
+#ifdef SCC_REGISTER_DEBUG
+
+/**
+ * Names of the SCC Registers, indexed by register number
+ */
+static char *scc_regnames[] = {
+ "SCM_VERSION_REG",
+ "0x04",
+ "SCM_INT_CTL_REG",
+ "SCM_STATUS_REG",
+ "SCM_ERR_STATUS_REG",
+ "SCM_FAULT_ADR_REG",
+ "SCM_PART_OWNERS_REG",
+ "SCM_PART_ENGAGED_REG",
+ "SCM_UNIQUE_ID0_REG",
+ "SCM_UNIQUE_ID1_REG",
+ "SCM_UNIQUE_ID2_REG",
+ "SCM_UNIQUE_ID3_REG",
+ "0x30",
+ "0x34",
+ "0x38",
+ "0x3C",
+ "0x40",
+ "0x44",
+ "0x48",
+ "0x4C",
+ "SCM_ZCMD_REG",
+ "SCM_CCMD_REG",
+ "SCM_C_BLACK_ST_REG",
+ "SCM_DBG_STATUS_REG",
+ "SCM_AES_CBC_IV0_REG",
+ "SCM_AES_CBC_IV1_REG",
+ "SCM_AES_CBC_IV2_REG",
+ "SCM_AES_CBC_IV3_REG",
+ "0x70",
+ "0x74",
+ "0x78",
+ "0x7C",
+ "SCM_SMID0_REG",
+ "SCM_ACC0_REG",
+ "SCM_SMID1_REG",
+ "SCM_ACC1_REG",
+ "SCM_SMID2_REG",
+ "SCM_ACC2_REG",
+ "SCM_SMID3_REG",
+ "SCM_ACC3_REG",
+ "SCM_SMID4_REG",
+ "SCM_ACC4_REG",
+ "SCM_SMID5_REG",
+ "SCM_ACC5_REG",
+ "SCM_SMID6_REG",
+ "SCM_ACC6_REG",
+ "SCM_SMID7_REG",
+ "SCM_ACC7_REG",
+ "SCM_SMID8_REG",
+ "SCM_ACC8_REG",
+ "SCM_SMID9_REG",
+ "SCM_ACC9_REG",
+ "SCM_SMID10_REG",
+ "SCM_ACC10_REG",
+ "SCM_SMID11_REG",
+ "SCM_ACC11_REG",
+ "SCM_SMID12_REG",
+ "SCM_ACC12_REG",
+ "SCM_SMID13_REG",
+ "SCM_ACC13_REG",
+ "SCM_SMID14_REG",
+ "SCM_ACC14_REG",
+ "SCM_SMID15_REG",
+ "SCM_ACC15_REG",
+ "SMN_STATUS_REG",
+ "SMN_COMMAND_REG",
+ "SMN_SEQ_START_REG",
+ "SMN_SEQ_END_REG",
+ "SMN_SEQ_CHECK_REG",
+ "SMN_BB_CNT_REG",
+ "SMN_BB_INC_REG",
+ "SMN_BB_DEC_REG",
+ "SMN_COMPARE_REG",
+ "SMN_PT_CHK_REG",
+ "SMN_CT_CHK_REG",
+ "SMN_TIMER_IV_REG",
+ "SMN_TIMER_CTL_REG",
+ "SMN_SEC_VIO_REG",
+ "SMN_TIMER_REG",
+ "SMN_HAC_REG"
+};
+
+/**
+ * Names of the Secure RAM States
+ */
+static char *srs_names[] = {
+ "SRS_Reset",
+ "SRS_All_Ready",
+ "SRS_ZeroizeBusy",
+ "SRS_CipherBusy",
+ "SRS_AllBusy",
+ "SRS_ZeroizeDoneCipherReady",
+ "SRS_CipherDoneZeroizeReady",
+ "SRS_ZeroizeDoneCipherBusy",
+ "SRS_CipherDoneZeroizeBusy",
+ "SRS_UNKNOWN_STATE_9",
+ "SRS_TransitionalA",
+ "SRS_TransitionalB",
+ "SRS_TransitionalC",
+ "SRS_TransitionalD",
+ "SRS_AllDone",
+ "SRS_UNKNOWN_STATE_E",
+ "SRS_FAIL"
+};
+
+/**
+ * Create a text interpretation of the SCM Version Register
+ *
+ * @param value The value of the register
+ * @param[out] print_buffer Place to store the interpretation
+ * @param buf_size Number of bytes available at print_buffer
+ *
+ * @return The print_buffer
+ */
+static
+char *scm_print_version_reg(uint32_t value, char *print_buffer, int buf_size)
+{
+ snprintf(print_buffer, buf_size,
+ "Bpp: %u, Bpcb: %u, np: %u, maj: %u, min: %u",
+ (value & SCM_VER_BPP_MASK) >> SCM_VER_BPP_SHIFT,
+ ((value & SCM_VER_BPCB_MASK) >> SCM_VER_BPCB_SHIFT) + 1,
+ ((value & SCM_VER_NP_MASK) >> SCM_VER_NP_SHIFT) + 1,
+ (value & SCM_VER_MAJ_MASK) >> SCM_VER_MAJ_SHIFT,
+ (value & SCM_VER_MIN_MASK) >> SCM_VER_MIN_SHIFT);
+
+ return print_buffer;
+}
+
+/**
+ * Create a text interpretation of the SCM Status Register
+ *
+ * @param value The value of the register
+ * @param[out] print_buffer Place to store the interpretation
+ * @param buf_size Number of bytes available at print_buffer
+ *
+ * @return The print_buffer
+ */
+static
+char *scm_print_status_reg(uint32_t value, char *print_buffer, int buf_size)
+{
+
+ snprintf(print_buffer, buf_size, "%s%s%s%s%s%s%s%s%s%s%s%s%s",
+ (value & SCM_STATUS_KST_DEFAULT_KEY) ? "KST_DefaultKey " : "",
+ /* reserved */
+ (value & SCM_STATUS_KST_WRONG_KEY) ? "KST_WrongKey " : "",
+ (value & SCM_STATUS_KST_BAD_KEY) ? "KST_BadKey " : "",
+ (value & SCM_STATUS_ERR) ? "Error " : "",
+ (value & SCM_STATUS_MSS_FAIL) ? "MSS_FailState " : "",
+ (value & SCM_STATUS_MSS_SEC) ? "MSS_SecureState " : "",
+ (value & SCM_STATUS_RSS_FAIL) ? "RSS_FailState " : "",
+ (value & SCM_STATUS_RSS_SEC) ? "RSS_SecureState " : "",
+ (value & SCM_STATUS_RSS_INIT) ? "RSS_Initializing " : "",
+ (value & SCM_STATUS_UNV) ? "UID_Invalid " : "",
+ (value & SCM_STATUS_BIG) ? "BigEndian " : "",
+ (value & SCM_STATUS_USK) ? "SecretKey " : "",
+ srs_names[(value & SCM_STATUS_SRS_MASK) >>
+ SCM_STATUS_SRS_SHIFT]);
+
+ return print_buffer;
+}
+
+/**
+ * Names of the SCM Error Codes
+ */
+static
+char *scm_err_code[] = {
+ "Unknown_0",
+ "UnknownAddress",
+ "UnknownCommand",
+ "ReadPermErr",
+ "WritePermErr",
+ "DMAErr",
+ "EncBlockLenOvfl",
+ "KeyNotEngaged",
+ "ZeroizeCmdQOvfl",
+ "CipherCmdQOvfl",
+ "ProcessIntr",
+ "WrongKey",
+ "DeviceBusy",
+ "DMAUnalignedAddr",
+ "Unknown_E",
+ "Unknown_F",
+};
+
+/**
+ * Names of the SMN States
+ */
+static char *smn_state_name[] = {
+ "Start",
+ "Invalid_01",
+ "Invalid_02",
+ "Invalid_03",
+ "Zeroizing_04",
+ "Zeroizing",
+ "HealthCheck",
+ "HealthCheck_07",
+ "Invalid_08",
+ "Fail",
+ "Secure",
+ "Invalid_0B",
+ "NonSecure",
+ "Invalid_0D",
+ "Invalid_0E",
+ "Invalid_0F",
+ "Invalid_10",
+ "Invalid_11",
+ "Invalid_12",
+ "Invalid_13",
+ "Invalid_14",
+ "Invalid_15",
+ "Invalid_16",
+ "Invalid_17",
+ "Invalid_18",
+ "FailHard",
+ "Invalid_1A",
+ "Invalid_1B",
+ "Invalid_1C",
+ "Invalid_1D",
+ "Invalid_1E",
+ "Invalid_1F"
+};
+
+/**
+ * Create a text interpretation of the SCM Error Status Register
+ *
+ * @param value The value of the register
+ * @param[out] print_buffer Place to store the interpretation
+ * @param buf_size Number of bytes available at print_buffer
+ *
+ * @return The print_buffer
+ */
+static
+char *scm_print_err_status_reg(uint32_t value, char *print_buffer, int buf_size)
+{
+ snprintf(print_buffer, buf_size,
+ "MID: 0x%x, %s%s ErrorCode: %s, SMSState: %s, SCMState: %s",
+ (value & SCM_ERRSTAT_MID_MASK) >> SCM_ERRSTAT_MID_SHIFT,
+ (value & SCM_ERRSTAT_ILM) ? "ILM, " : "",
+ (value & SCM_ERRSTAT_SUP) ? "SUP, " : "",
+ scm_err_code[(value & SCM_ERRSTAT_ERC_MASK) >>
+ SCM_ERRSTAT_ERC_SHIFT],
+ smn_state_name[(value & SCM_ERRSTAT_SMS_MASK) >>
+ SCM_ERRSTAT_SMS_SHIFT],
+ srs_names[(value & SCM_ERRSTAT_SRS_MASK) >>
+ SCM_ERRSTAT_SRS_SHIFT]);
+ return print_buffer;
+}
+
+/**
+ * Create a text interpretation of the SCM Zeroize Command Register
+ *
+ * @param value The value of the register
+ * @param[out] print_buffer Place to store the interpretation
+ * @param buf_size Number of bytes available at print_buffer
+ *
+ * @return The print_buffer
+ */
+static
+char *scm_print_zcmd_reg(uint32_t value, char *print_buffer, int buf_size)
+{
+ unsigned cmd = (value & SCM_ZCMD_CCMD_MASK) >> SCM_CCMD_CCMD_SHIFT;
+
+ snprintf(print_buffer, buf_size, "%s %u",
+ (cmd ==
+ ZCMD_DEALLOC_PART) ? "DeallocPartition" :
+ "(unknown function)",
+ (value & SCM_ZCMD_PART_MASK) >> SCM_ZCMD_PART_SHIFT);
+
+ return print_buffer;
+}
+
+/**
+ * Create a text interpretation of the SCM Cipher Command Register
+ *
+ * @param value The value of the register
+ * @param[out] print_buffer Place to store the interpretation
+ * @param buf_size Number of bytes available at print_buffer
+ *
+ * @return The print_buffer
+ */
+static
+char *scm_print_ccmd_reg(uint32_t value, char *print_buffer, int buf_size)
+{
+ unsigned cmd = (value & SCM_CCMD_CCMD_MASK) >> SCM_CCMD_CCMD_SHIFT;
+
+ snprintf(print_buffer, buf_size,
+ "%s %u bytes, %s offset 0x%x, in partition %u",
+ (cmd == SCM_CCMD_AES_DEC_ECB) ? "ECB Decrypt" : (cmd ==
+ SCM_CCMD_AES_ENC_ECB)
+ ? "ECB Encrypt" : (cmd ==
+ SCM_CCMD_AES_DEC_CBC) ? "CBC Decrypt" : (cmd
+ ==
+ SCM_CCMD_AES_ENC_CBC)
+ ? "CBC Encrypt" : "(unknown function)",
+ 16 +
+ 16 * ((value & SCM_CCMD_LENGTH_MASK) >> SCM_CCMD_LENGTH_SHIFT),
+ ((cmd == SCM_CCMD_AES_ENC_CBC)
+ || (cmd == SCM_CCMD_AES_ENC_ECB)) ? "at" : "to",
+ 16 * ((value & SCM_CCMD_OFFSET_MASK) >> SCM_CCMD_OFFSET_SHIFT),
+ (value & SCM_CCMD_PART_MASK) >> SCM_CCMD_PART_SHIFT);
+
+ return print_buffer;
+}
+
+/**
+ * Create a text interpretation of an SCM Access Permissions Register
+ *
+ * @param value The value of the register
+ * @param[out] print_buffer Place to store the interpretation
+ * @param buf_size Number of bytes available at print_buffer
+ *
+ * @return The print_buffer
+ */
+static
+char *scm_print_acc_reg(uint32_t value, char *print_buffer, int buf_size)
+{
+ snprintf(print_buffer, buf_size, "%s%s%s%s%s%s%s%s%s%s",
+ (value & SCM_PERM_NO_ZEROIZE) ? "NO_ZERO " : "",
+ (value & SCM_PERM_HD_SUP_DISABLE) ? "SUP_DIS " : "",
+ (value & SCM_PERM_HD_READ) ? "HD_RD " : "",
+ (value & SCM_PERM_HD_WRITE) ? "HD_WR " : "",
+ (value & SCM_PERM_HD_EXECUTE) ? "HD_EX " : "",
+ (value & SCM_PERM_TH_READ) ? "TH_RD " : "",
+ (value & SCM_PERM_TH_WRITE) ? "TH_WR " : "",
+ (value & SCM_PERM_OT_READ) ? "OT_RD " : "",
+ (value & SCM_PERM_OT_WRITE) ? "OT_WR " : "",
+ (value & SCM_PERM_OT_EXECUTE) ? "OT_EX" : "");
+
+ return print_buffer;
+}
+
+/**
+ * Create a text interpretation of the SCM Partitions Engaged Register
+ *
+ * @param value The value of the register
+ * @param[out] print_buffer Place to store the interpretation
+ * @param buf_size Number of bytes available at print_buffer
+ *
+ * @return The print_buffer
+ */
+static
+char *scm_print_part_eng_reg(uint32_t value, char *print_buffer, int buf_size)
+{
+ snprintf(print_buffer, buf_size, "%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s",
+ (value & 0x8000) ? "15 " : "",
+ (value & 0x4000) ? "14 " : "",
+ (value & 0x2000) ? "13 " : "",
+ (value & 0x1000) ? "12 " : "",
+ (value & 0x0800) ? "11 " : "",
+ (value & 0x0400) ? "10 " : "",
+ (value & 0x0200) ? "9 " : "",
+ (value & 0x0100) ? "8 " : "",
+ (value & 0x0080) ? "7 " : "",
+ (value & 0x0040) ? "6 " : "",
+ (value & 0x0020) ? "5 " : "",
+ (value & 0x0010) ? "4 " : "",
+ (value & 0x0008) ? "3 " : "",
+ (value & 0x0004) ? "2 " : "",
+ (value & 0x0002) ? "1 " : "", (value & 0x0001) ? "0" : "");
+
+ return print_buffer;
+}
+
+/**
+ * Create a text interpretation of the SMN Status Register
+ *
+ * @param value The value of the register
+ * @param[out] print_buffer Place to store the interpretation
+ * @param buf_size Number of bytes available at print_buffer
+ *
+ * @return The print_buffer
+ */
+static
+char *smn_print_status_reg(uint32_t value, char *print_buffer, int buf_size)
+{
+ snprintf(print_buffer, buf_size,
+ "Version %d %s%s%s%s%s%s%s%s%s%s%s%s%s",
+ (value & SMN_STATUS_VERSION_ID_MASK) >>
+ SMN_STATUS_VERSION_ID_SHIFT,
+ (value & SMN_STATUS_ILLEGAL_MASTER) ? "IllMaster " : "",
+ (value & SMN_STATUS_SCAN_EXIT) ? "ScanExit " : "",
+ (value & SMN_STATUS_PERIP_INIT) ? "PeripInit " : "",
+ (value & SMN_STATUS_SMN_ERROR) ? "SMNError " : "",
+ (value & SMN_STATUS_SOFTWARE_ALARM) ? "SWAlarm " : "",
+ (value & SMN_STATUS_TIMER_ERROR) ? "TimerErr " : "",
+ (value & SMN_STATUS_PC_ERROR) ? "PTCTErr " : "",
+ (value & SMN_STATUS_BITBANK_ERROR) ? "BitbankErr " : "",
+ (value & SMN_STATUS_ASC_ERROR) ? "ASCErr " : "",
+ (value & SMN_STATUS_SECURITY_POLICY_ERROR) ? "SecPlcyErr " :
+ "",
+ (value & SMN_STATUS_SEC_VIO_ACTIVE_ERROR) ? "SecVioAct " : "",
+ (value & SMN_STATUS_INTERNAL_BOOT) ? "IntBoot " : "",
+ smn_state_name[(value & SMN_STATUS_STATE_MASK) >>
+ SMN_STATUS_STATE_SHIFT]);
+
+ return print_buffer;
+}
+
+/**
+ * The array, indexed by register number (byte-offset / 4), of print routines
+ * for the SCC (SCM and SMN) registers.
+ */
+static reg_print_routine_t reg_printers[] = {
+ scm_print_version_reg,
+ NULL, /* 0x04 */
+ NULL, /* SCM_INT_CTL_REG */
+ scm_print_status_reg,
+ scm_print_err_status_reg,
+ NULL, /* SCM_FAULT_ADR_REG */
+ NULL, /* SCM_PART_OWNERS_REG */
+ scm_print_part_eng_reg,
+ NULL, /* SCM_UNIQUE_ID0_REG */
+ NULL, /* SCM_UNIQUE_ID1_REG */
+ NULL, /* SCM_UNIQUE_ID2_REG */
+ NULL, /* SCM_UNIQUE_ID3_REG */
+ NULL, /* 0x30 */
+ NULL, /* 0x34 */
+ NULL, /* 0x38 */
+ NULL, /* 0x3C */
+ NULL, /* 0x40 */
+ NULL, /* 0x44 */
+ NULL, /* 0x48 */
+ NULL, /* 0x4C */
+ scm_print_zcmd_reg,
+ scm_print_ccmd_reg,
+ NULL, /* SCM_C_BLACK_ST_REG */
+ NULL, /* SCM_DBG_STATUS_REG */
+ NULL, /* SCM_AES_CBC_IV0_REG */
+ NULL, /* SCM_AES_CBC_IV1_REG */
+ NULL, /* SCM_AES_CBC_IV2_REG */
+ NULL, /* SCM_AES_CBC_IV3_REG */
+ NULL, /* 0x70 */
+ NULL, /* 0x74 */
+ NULL, /* 0x78 */
+ NULL, /* 0x7C */
+ NULL, /* SCM_SMID0_REG */
+ scm_print_acc_reg, /* ACC0 */
+ NULL, /* SCM_SMID1_REG */
+ scm_print_acc_reg, /* ACC1 */
+ NULL, /* SCM_SMID2_REG */
+ scm_print_acc_reg, /* ACC2 */
+ NULL, /* SCM_SMID3_REG */
+ scm_print_acc_reg, /* ACC3 */
+ NULL, /* SCM_SMID4_REG */
+ scm_print_acc_reg, /* ACC4 */
+ NULL, /* SCM_SMID5_REG */
+ scm_print_acc_reg, /* ACC5 */
+ NULL, /* SCM_SMID6_REG */
+ scm_print_acc_reg, /* ACC6 */
+ NULL, /* SCM_SMID7_REG */
+ scm_print_acc_reg, /* ACC7 */
+ NULL, /* SCM_SMID8_REG */
+ scm_print_acc_reg, /* ACC8 */
+ NULL, /* SCM_SMID9_REG */
+ scm_print_acc_reg, /* ACC9 */
+ NULL, /* SCM_SMID10_REG */
+ scm_print_acc_reg, /* ACC10 */
+ NULL, /* SCM_SMID11_REG */
+ scm_print_acc_reg, /* ACC11 */
+ NULL, /* SCM_SMID12_REG */
+ scm_print_acc_reg, /* ACC12 */
+ NULL, /* SCM_SMID13_REG */
+ scm_print_acc_reg, /* ACC13 */
+ NULL, /* SCM_SMID14_REG */
+ scm_print_acc_reg, /* ACC14 */
+ NULL, /* SCM_SMID15_REG */
+ scm_print_acc_reg, /* ACC15 */
+ smn_print_status_reg,
+ NULL, /* SMN_COMMAND_REG */
+ NULL, /* SMN_SEQ_START_REG */
+ NULL, /* SMN_SEQ_END_REG */
+ NULL, /* SMN_SEQ_CHECK_REG */
+ NULL, /* SMN_BB_CNT_REG */
+ NULL, /* SMN_BB_INC_REG */
+ NULL, /* SMN_BB_DEC_REG */
+ NULL, /* SMN_COMPARE_REG */
+ NULL, /* SMN_PT_CHK_REG */
+ NULL, /* SMN_CT_CHK_REG */
+ NULL, /* SMN_TIMER_IV_REG */
+ NULL, /* SMN_TIMER_CTL_REG */
+ NULL, /* SMN_SEC_VIO_REG */
+ NULL, /* SMN_TIMER_REG */
+ NULL, /* SMN_HAC_REG */
+};
+
+/*****************************************************************************/
+/* fn dbg_scc_read_register() */
+/*****************************************************************************/
+/**
+ * Noisily read a 32-bit value to an SCC register.
+ * @param offset The address of the register to read.
+ *
+ * @return The register value
+ * */
+uint32_t dbg_scc_read_register(uint32_t offset)
+{
+ uint32_t value;
+ char *regname = scc_regnames[offset / 4];
+
+ value = __raw_readl(scc_base + offset);
+ pr_debug("SCC2 RD: 0x%03x : 0x%08x (%s) %s\n", offset, value, regname,
+ reg_printers[offset / 4]
+ ? reg_printers[offset / 4] (value, reg_print_buffer,
+ REG_PRINT_BUFFER_SIZE)
+ : "");
+
+ return value;
+}
+
+/*****************************************************************************/
+/* fn dbg_scc_write_register() */
+/*****************************************************************************/
+/*
+ * Noisily read a 32-bit value to an SCC register.
+ * @param offset The address of the register to written.
+ *
+ * @param value The new register value
+ */
+void dbg_scc_write_register(uint32_t offset, uint32_t value)
+{
+ char *regname = scc_regnames[offset / 4];
+
+ pr_debug("SCC2 WR: 0x%03x : 0x%08x (%s) %s\n", offset, value, regname,
+ reg_printers[offset / 4]
+ ? reg_printers[offset / 4] (value, reg_print_buffer,
+ REG_PRINT_BUFFER_SIZE)
+ : "");
+ (void)__raw_writel(value, scc_base + offset);
+
+}
+
+#endif /* SCC_REGISTER_DEBUG */
+
+static int scc_dev_probe(struct platform_device *pdev)
+{
+ struct resource *r;
+ int ret = 0;
+
+ /* get the scc registers base address */
+ r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+ if (!r) {
+ dev_err(&pdev->dev, "can't get IORESOURCE_MEM (0)\n");
+ ret = -ENXIO;
+ goto exit;
+ }
+
+ scc_phys_base = r->start;
+
+
+ /* get the scc ram base address */
+ r = platform_get_resource(pdev, IORESOURCE_MEM, 1);
+ if (!r) {
+ dev_err(&pdev->dev, "can't get IORESOURCE_MEM (1)\n");
+ ret = -ENXIO;
+ goto exit;
+ }
+
+ scm_ram_phys_base = r->start;
+
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,18))
+ scc_clk = clk_get(&pdev->dev, "scc_clk");
+#endif
+
+ /* now initialize the SCC */
+ ret = scc_init();
+
+exit:
+ return ret;
+}
+
+static int scc_dev_remove(struct platform_device *pdev)
+{
+ scc_cleanup();
+ return 0;
+}
+
+
+#ifdef CONFIG_PM
+static int scc_suspend(struct platform_device *pdev,
+ pm_message_t state)
+{
+ return 0;
+}
+
+static int scc_resume(struct platform_device *pdev)
+{
+ return 0;
+}
+#else
+#define scc_suspend NULL
+#define scc_resume NULL
+#endif
+
+/*! Linux Driver definition
+ *
+ */
+static struct platform_driver mxcscc_driver = {
+ .driver = {
+ .name = SCC_DRIVER_NAME,
+ },
+ .probe = scc_dev_probe,
+ .remove = scc_dev_remove,
+ .suspend = scc_suspend,
+ .resume = scc_resume,
+};
+
+static int __init scc_driver_init(void)
+{
+ return platform_driver_register(&mxcscc_driver);
+}
+
+module_init(scc_driver_init);
+
+static void __exit scc_driver_exit(void)
+{
+ platform_driver_unregister(&mxcscc_driver);
+}
+
+module_exit(scc_driver_exit);
diff --git a/drivers/mxc/security/scc2_internals.h b/drivers/mxc/security/scc2_internals.h
new file mode 100644
index 000000000000..1c047de0082e
--- /dev/null
+++ b/drivers/mxc/security/scc2_internals.h
@@ -0,0 +1,519 @@
+/*
+ * Copyright (C) 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+#ifndef SCC_INTERNALS_H
+#define SCC_INTERNALS_H
+
+/** @file scc2_internals.h
+ *
+ * @brief This is intended to be the file which contains most or all of the
+ * code or changes need to port the driver. It also includes other definitions
+ * needed by the driver.
+ *
+ * This header file should only ever be included by scc2_driver.c
+ *
+ * Compile-time flags minimally needed:
+ *
+ * @li Some sort of platform flag. Currently TAHITI and MXC are understood.
+ * @li Some start-of-SCC consideration, such as SCC_BASE_ADDR
+ *
+ * Some changes which could be made when porting this driver:
+ * #SCC_SPIN_COUNT
+ *
+ */
+
+#include <linux/version.h> /* Current version Linux kernel */
+#include <linux/module.h> /* Basic support for loadable modules,
+ printk */
+#include <linux/init.h> /* module_init, module_exit */
+#include <linux/kernel.h> /* General kernel system calls */
+#include <linux/sched.h> /* for interrupt.h */
+#include <linux/spinlock.h>
+
+#include <linux/io.h> /* ioremap() */
+#include <linux/interrupt.h> /* IRQ / interrupt definitions */
+
+
+#include <linux/mxc_scc2_driver.h>
+
+#if defined(MXC)
+
+#include <mach/iim.h>
+#include <mach/mxc_scc.h>
+
+
+/**
+ * This macro is used to determine whether the SCC is enabled/available
+ * on the platform. This macro may need to be ported.
+ */
+#define SCC_FUSE __raw_readl(IO_ADDRESS(IIM_BASE_ADDR + MXC_IIMHWV1))
+#define SCC_ENABLED() ((SCC_FUSE & MXC_IIMHWV1_SCC_DISABLE) == 0)
+
+#else /* neither TAHITI nor MXC */
+
+#error Do not understand target architecture
+
+#endif /* TAHITI */
+/**
+ * Define the number of Stored Keys which the SCC driver will make available.
+ * Value shall be from 0 to 20. Default is zero (0).
+ */
+/*#define SCC_KEY_SLOTS 20*/
+
+
+/* Temporarily define compile-time flags to make Doxygen happy. */
+#ifdef DOXYGEN_HACK
+/** @addtogroup scccompileflags */
+/** @{ */
+
+
+/** @def NO_SMN_INTERRUPT
+ * The SMN interrupt is not wired to the CPU at all.
+ */
+#define NO_SMN_INTERRUPT
+
+
+/**
+ * Register an interrupt handler for the SMN as well as
+ * the SCM. In some implementations, the SMN is not connected at all (see
+ * #NO_SMN_INTERRUPT), and in others, it is on the same interrupt line as the
+ * SCM. When defining this flag, the SMN interrupt should be on a separate
+ * line from the SCM interrupt.
+ */
+
+#define USE_SMN_INTERRUPT
+
+
+/**
+ * Turn on generation of run-time operational, debug, and error messages
+ */
+#define SCC_DEBUG
+
+
+/**
+ * Turn on generation of run-time logging of access to the SCM and SMN
+ * registers.
+ */
+#define SCC_REGISTER_DEBUG
+
+
+/**
+ * Turn on generation of run-time logging of access to the SCM Red and
+ * Black memories. Will only work if #SCC_REGISTER_DEBUG is also defined.
+ */
+#define SCC_RAM_DEBUG
+
+
+/**
+ * If the driver finds the SCC in HEALTH_CHECK state, go ahead and
+ * run a quick ASC to bring it to SECURE state.
+ */
+#define SCC_BRINGUP
+
+
+/**
+ * Expected to come from platform header files or compile command line.
+ * This symbol must be the address of the SCC
+ */
+#define SCC_BASE
+
+/**
+ * This must be the interrupt line number of the SCM interrupt.
+ */
+#define INT_SCM
+
+/**
+ * if #USE_SMN_INTERRUPT is defined, this must be the interrupt line number of
+ * the SMN interrupt.
+ */
+#define INT_SMN
+
+/**
+ * Define the number of Stored Keys which the SCC driver will make available.
+ * Value shall be from 0 to 20. Default is zero (0).
+ */
+#define SCC_KEY_SLOTS
+
+/**
+ * Make sure that this flag is defined if compiling for a Little-Endian
+ * platform. Linux Kernel builds provide this flag.
+ */
+#define __LITTLE_ENDIAN
+
+/**
+ * Make sure that this flag is defined if compiling for a Big-Endian platform.
+ * Linux Kernel builds provide this flag.
+ */
+#define __BIG_ENDIAN
+
+/**
+ * Read a 32-bit register value from a 'peripheral'. Standard Linux/Unix
+ * macro.
+ *
+ * @param offset Bus address of register to be read
+ *
+ * @return The value of the register
+ */
+#define readl(offset)
+
+
+/**
+ * Write a 32-bit value to a register in a 'peripheral'. Standard Linux/Unix
+ * macro.
+ *
+ * @param value The 32-bit value to store
+ * @param offset Bus address of register to be written
+ *
+ * return (none)
+ */
+#define writel(value,offset)
+
+
+/** @} */ /* end group scccompileflags */
+
+#endif /* DOXYGEN_HACK */
+
+
+#ifndef SCC_KEY_SLOTS
+#define SCC_KEY_SLOTS 0
+
+#else
+
+#if (SCC_KEY_SLOTS < 0) || (SCC_KEY_SLOTS > 20)
+#error Bad value for SCC_KEY_SLOTS
+#endif
+
+#endif
+
+
+/**
+ * Maximum length of key/secret value which can be stored in SCC.
+ */
+#define SCC_MAX_KEY_SIZE 256
+
+
+/**
+ * This is the size, in bytes, of each key slot, and therefore the maximum size
+ * of the wrapped key.
+ */
+#define SCC_KEY_SLOT_SIZE 32
+
+
+/* These come for free with Linux, but may need to be set in a port. */
+#ifndef __BIG_ENDIAN
+#ifndef __LITTLE_ENDIAN
+#error One of __LITTLE_ENDIAN or __BIG_ENDIAN must be #defined
+#endif
+#else
+#ifdef __LITTLE_ENDIAN
+#error Exactly one of __LITTLE_ENDIAN or __BIG_ENDIAN must be #defined
+#endif
+#endif
+
+
+#ifndef SCC_CALLBACK_SIZE
+/** The number of function pointers which can be stored in #scc_callbacks.
+ * Defaults to 4, can be overridden with compile-line argument.
+ */
+#define SCC_CALLBACK_SIZE 4
+#endif
+
+
+/** Initial CRC value for CCITT-CRC calculation. */
+#define CRC_CCITT_START 0xFFFF
+
+
+#ifdef TAHITI
+
+/**
+ * The SCC_BASE has to be SMN_BASE_ADDR on TAHITI, as the banks of
+ * registers are swapped in place.
+ */
+#define SCC_BASE SMN_BASE_ADDR
+
+
+/** The interrupt number for the SCC (SCM only!) on Tahiti */
+#define INT_SCC_SCM 62
+
+
+/** Tahiti does not have the SMN interrupt wired to the CPU. */
+#define NO_SMN_INTERRUPT
+
+
+#endif /* TAHITI */
+
+
+/** Number of times to spin between polling of SCC while waiting for cipher
+ * or zeroizing function to complete. See also #SCC_CIPHER_MAX_POLL_COUNT. */
+#define SCC_SPIN_COUNT 1000
+
+
+/** Number of times to polling SCC while waiting for cipher
+ * or zeroizing function to complete. See also #SCC_SPIN_COUNT. */
+#define SCC_CIPHER_MAX_POLL_COUNT 100
+
+
+/**
+ * @def SCC_READ_REGISTER
+ * Read a 32-bit value from an SCC register. Macro which depends upon
+ * #scc_base. Linux readl()/writel() macros operate on 32-bit quantities, as
+ * do SCC register reads/writes.
+ *
+ * @param offset Register offset within SCC.
+ *
+ * @return The value from the SCC's register.
+ */
+#ifndef SCC_REGISTER_DEBUG
+#define SCC_READ_REGISTER(offset) __raw_readl(scc_base+(offset))
+#else
+#define SCC_READ_REGISTER(offset) dbg_scc_read_register(offset)
+#endif
+
+
+/**
+ * Write a 32-bit value to an SCC register. Macro depends upon #scc_base.
+ * Linux readl()/writel() macros operate on 32-bit quantities, as do SCC
+ * register reads/writes.
+ *
+ * @param offset Register offset within SCC.
+ * @param value 32-bit value to store into the register
+ *
+ * @return (void)
+ */
+#ifndef SCC_REGISTER_DEBUG
+#define SCC_WRITE_REGISTER(offset,value) \
+ (void)__raw_writel(value, scc_base+(offset))
+#else
+#define SCC_WRITE_REGISTER(offset,value) \
+ dbg_scc_write_register(offset, value)
+#endif
+
+/**
+ * Calculate the kernel virtual address of a partition from the partition number.
+ */
+#define SCM_PART_ADDRESS(part) \
+ (scm_ram_base + (part*scc_configuration.partition_size_bytes))
+
+/**
+ * Calculate the partition number from the kernel virtual address.
+ */
+#define SCM_PART_NUMBER(address) \
+ ((address - (uint32_t)scm_ram_base)/scc_configuration.partition_size_bytes)
+
+/**
+ * Calculates the byte offset into a word
+ * @param bp The byte (char*) pointer
+ * @return The offset (0, 1, 2, or 3)
+ */
+#define SCC_BYTE_OFFSET(bp) ((uint32_t)(bp) % sizeof(uint32_t))
+
+
+/**
+ * Converts (by rounding down) a byte pointer into a word pointer
+ * @param bp The byte (char*) pointer
+ * @return The word (uint32_t) as though it were an aligned (uint32_t*)
+ */
+#define SCC_WORD_PTR(bp) (((uint32_t)(bp)) & ~(sizeof(uint32_t)-1))
+
+
+/**
+ * Determine number of bytes in an SCC block
+ *
+ * @return Bytes / block
+ */
+#define SCC_BLOCK_SIZE_BYTES() scc_configuration.block_size_bytes
+
+
+/**
+ * Maximum number of additional bytes which may be added in CRC+padding mode.
+ */
+#define PADDING_BUFFER_MAX_BYTES (CRC_SIZE_BYTES + sizeof(scc_block_padding))
+
+/**
+ * Shorthand (clearer, anyway) for number of bytes in a CRC.
+ */
+#define CRC_SIZE_BYTES (sizeof(crc_t))
+
+/**
+ * The polynomial used in CCITT-CRC calculation
+ */
+#define CRC_POLYNOMIAL 0x1021
+
+/**
+ * Calculate CRC on one byte of data
+ *
+ * @param[in,out] running_crc A value of type crc_t where CRC is kept. This
+ * must be an rvalue and an lvalue.
+ * @param[in] byte_value The byte (uint8_t, char) to be put in the CRC
+ *
+ * @return none
+ */
+#define CALC_CRC(byte_value,running_crc) { \
+ uint8_t data; \
+ data = (0xff&(byte_value)) ^ (running_crc >> 8); \
+ running_crc = scc_crc_lookup_table[data] ^ (running_crc << 8); \
+}
+
+/** Value of 'beginning of padding' marker in driver-provided padding */
+#define SCC_DRIVER_PAD_CHAR 0x80
+
+
+/** Name of the driver. Used (on Linux, anyway) when registering interrupts */
+#define SCC_DRIVER_NAME "mxc_scc"
+
+
+/* Port -- these symbols are defined in Linux 2.6 and later. They are defined
+ * here for backwards compatibility because this started life as a 2.4
+ * driver, and as a guide to portation to other platforms.
+ */
+
+#if !defined(LINUX_VERSION_CODE) || LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
+
+#define irqreturn_t void /* Return type of an interrupt handler */
+
+#define IRQ_HANDLED /* Would be '1' for handled -- as in return IRQ_HANDLED; */
+
+#define IRQ_NONE /* would be '0' for not handled -- as in return IRQ_NONE; */
+
+#define IRQ_RETVAL(x) /* Return x==0 (not handled) or non-zero (handled) */
+
+#endif /* LINUX earlier than 2.5 */
+
+
+/* These are nice to have around */
+#ifndef FALSE
+#define FALSE 0
+#endif
+#ifndef TRUE
+#define TRUE 1
+#endif
+
+
+/** Provide a typedef for the CRC which can be used in encrypt/decrypt */
+typedef uint16_t crc_t;
+
+
+/** Gives high-level view of state of the SCC */
+enum scc_status {
+ SCC_STATUS_INITIAL, /**< State of driver before ever checking */
+ SCC_STATUS_CHECKING, /**< Transient state while driver loading */
+ SCC_STATUS_UNIMPLEMENTED, /**< SCC is non-existent or unuseable */
+ SCC_STATUS_OK, /**< SCC is in Secure or Default state */
+ SCC_STATUS_FAILED /**< In Failed state */
+};
+
+/**
+ * Information about a key slot.
+ */
+struct scc_key_slot
+{
+ uint64_t owner_id; /**< Access control value. */
+ uint32_t length; /**< Length of value in slot. */
+ uint32_t offset; /**< Offset of value from start of RAM. */
+ uint32_t status; /**< 0 = unassigned, 1 = assigned. */
+ uint32_t part_ctl; /**< for the CCMD register */
+};
+
+/* Forward-declare a number routines which are not part of user api */
+static int scc_init(void);
+static void scc_cleanup(void);
+static int __init scc_driver_init(void);
+static void __exit scc_driver_exit(void);
+
+/* Forward defines of internal functions */
+OS_DEV_ISR(scc_irq);
+/*static irqreturn_t scc_irq(int irq, void *dev_id);*/
+/** Perform callbacks registered by #scc_monitor_security_failure().
+ *
+ * Make sure callbacks only happen once... Since there may be some reason why
+ * the interrupt isn't generated, this routine could be called from base(task)
+ * level.
+ *
+ * One at a time, go through #scc_callbacks[] and call any non-null pointers.
+ */
+static void scc_perform_callbacks(void);
+/*static uint32_t copy_to_scc(const uint8_t* from, uint32_t to, unsigned long count_bytes, uint16_t* crc);
+static uint32_t copy_from_scc(const uint32_t from, uint8_t* to,unsigned long count_bytes, uint16_t* crc);
+static scc_return_t scc_strip_padding(uint8_t* from,unsigned* count_bytes_stripped);*/
+static uint32_t scc_update_state(void);
+static void scc_init_ccitt_crc(void);
+static uint32_t scc_grab_config_values(void);
+static int setup_interrupt_handling(void);
+/**
+ * Perform an encryption on the input. If @c verify_crc is true, a CRC must be
+ * calculated on the plaintext, and appended, with padding, before computing
+ * the ciphertext.
+ *
+ * @param[in] count_in_bytes Count of bytes of plaintext
+ * @param[in] data_in Pointer to the plaintext
+ * @param[in] scm_control Bit values for the SCM_CONTROL register
+ * @param[in,out] data_out Pointer for storing ciphertext
+ * @param[in] add_crc Flag for computing CRC - 0 no, else yes
+ * @param[in,out] count_out_bytes Number of bytes available at @c data_out
+ */
+/*static scc_return_t scc_encrypt(uint32_t count_in_bytes, uint8_t* data_in, uint32_t scm_control, uint8_t* data_out,int add_crc, unsigned long* count_out_bytes);*/
+/**
+ * Perform a decryption on the input. If @c verify_crc is true, the last block
+ * (maybe the two last blocks) is special - it should contain a CRC and
+ * padding. These must be stripped and verified.
+ *
+ * @param[in] count_in_bytes Count of bytes of ciphertext
+ * @param[in] data_in Pointer to the ciphertext
+ * @param[in] scm_control Bit values for the SCM_CONTROL register
+ * @param[in,out] data_out Pointer for storing plaintext
+ * @param[in] verify_crc Flag for running CRC - 0 no, else yes
+ * @param[in,out] count_out_bytes Number of bytes available at @c data_out
+
+ */
+/*static scc_return_t scc_decrypt(uint32_t count_in_bytes, uint8_t* data_in, uint32_t scm_control, uint8_t* data_out, int verify_crc, unsigned long* count_out_bytes);*/
+static uint32_t host_owns_partition(uint32_t part_no);
+static uint32_t partition_engaged(uint32_t part_no);
+
+static scc_return_t scc_wait_completion(uint32_t* scm_status);
+static int is_cipher_done(uint32_t* scm_status);
+static scc_return_t check_register_accessible (uint32_t offset,
+ uint32_t smn_status,
+ uint32_t scm_status);
+static scc_return_t check_register_offset(uint32_t offset);
+/*uint8_t make_vpu_partition(void);*/
+
+#ifdef SCC_REGISTER_DEBUG
+static uint32_t dbg_scc_read_register(uint32_t offset);
+static void dbg_scc_write_register(uint32_t offset, uint32_t value);
+#endif
+
+
+/* For Linux kernel, export the API functions to other kernel modules */
+EXPORT_SYMBOL(scc_get_configuration);
+EXPORT_SYMBOL(scc_zeroize_memories);
+/*EXPORT_SYMBOL(scc_crypt);*/
+EXPORT_SYMBOL(scc_set_sw_alarm);
+EXPORT_SYMBOL(scc_monitor_security_failure);
+EXPORT_SYMBOL(scc_stop_monitoring_security_failure);
+EXPORT_SYMBOL(scc_read_register);
+EXPORT_SYMBOL(scc_write_register);
+EXPORT_SYMBOL(scc_allocate_partition);
+EXPORT_SYMBOL(scc_engage_partition);
+EXPORT_SYMBOL(scc_release_partition);
+EXPORT_SYMBOL(scc_diminish_permissions);
+EXPORT_SYMBOL(scc_encrypt_region);
+EXPORT_SYMBOL(scc_decrypt_region);
+/*EXPORT_SYMBOL(make_vpu_partition);*/
+
+
+/* Tell Linux this is not GPL code */
+MODULE_LICENSE("GPL");
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_DESCRIPTION("Device Driver for SCC (SMN/SCM)");
+
+
+#endif /* SCC_INTERNALS_H */
diff --git a/drivers/mxc/ssi/Kconfig b/drivers/mxc/ssi/Kconfig
new file mode 100644
index 000000000000..4cb581c2f945
--- /dev/null
+++ b/drivers/mxc/ssi/Kconfig
@@ -0,0 +1,12 @@
+#
+# SPI device configuration
+#
+
+menu "MXC SSI support"
+
+config MXC_SSI
+ tristate "SSI support"
+ ---help---
+ Say Y to get the SSI services API available on MXC platform.
+
+endmenu
diff --git a/drivers/mxc/ssi/Makefile b/drivers/mxc/ssi/Makefile
new file mode 100644
index 000000000000..f9bb4419fc19
--- /dev/null
+++ b/drivers/mxc/ssi/Makefile
@@ -0,0 +1,7 @@
+#
+# Makefile for the kernel SSI device drivers.
+#
+
+obj-$(CONFIG_MXC_SSI) += ssimod.o
+
+ssimod-objs := ssi.o
diff --git a/drivers/mxc/ssi/registers.h b/drivers/mxc/ssi/registers.h
new file mode 100644
index 000000000000..a9f4512596c6
--- /dev/null
+++ b/drivers/mxc/ssi/registers.h
@@ -0,0 +1,208 @@
+/*
+ * Copyright 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+ /*!
+ * @file ../ssi/registers.h
+ * @brief This header file contains SSI driver low level definition to access module registers.
+ *
+ * @ingroup SSI
+ */
+
+#ifndef __MXC_SSI_REGISTERS_H__
+#define __MXC_SSI_REGISTERS_H__
+
+/*!
+ * This include to define bool type, false and true definitions.
+ */
+#include <mach/hardware.h>
+
+#define SPBA_CPU_SSI 0x07
+
+#define MXC_SSISTX0 0x00
+#define MXC_SSISTX1 0x04
+#define MXC_SSISRX0 0x08
+#define MXC_SSISRX1 0x0C
+#define MXC_SSISCR 0x10
+#define MXC_SSISISR 0x14
+#define MXC_SSISIER 0x18
+#define MXC_SSISTCR 0x1C
+#define MXC_SSISRCR 0x20
+#define MXC_SSISTCCR 0x24
+#define MXC_SSISRCCR 0x28
+#define MXC_SSISFCSR 0x2C
+#define MXC_SSISTR 0x30
+#define MXC_SSISOR 0x34
+#define MXC_SSISACNT 0x38
+#define MXC_SSISACADD 0x3C
+#define MXC_SSISACDAT 0x40
+#define MXC_SSISATAG 0x44
+#define MXC_SSISTMSK 0x48
+#define MXC_SSISRMSK 0x4C
+
+/* MXC 91221 only */
+#define MXC_SSISACCST 0x50
+#define MXC_SSISACCEN 0x54
+#define MXC_SSISACCDIS 0x58
+
+/*! SSI1 registers offset*/
+#define MXC_SSI1STX0 0x00
+#define MXC_SSI1STX1 0x04
+#define MXC_SSI1SRX0 0x08
+#define MXC_SSI1SRX1 0x0C
+#define MXC_SSI1SCR 0x10
+#define MXC_SSI1SISR 0x14
+#define MXC_SSI1SIER 0x18
+#define MXC_SSI1STCR 0x1C
+#define MXC_SSI1SRCR 0x20
+#define MXC_SSI1STCCR 0x24
+#define MXC_SSI1SRCCR 0x28
+#define MXC_SSI1SFCSR 0x2C
+#define MXC_SSI1STR 0x30
+#define MXC_SSI1SOR 0x34
+#define MXC_SSI1SACNT 0x38
+#define MXC_SSI1SACADD 0x3C
+#define MXC_SSI1SACDAT 0x40
+#define MXC_SSI1SATAG 0x44
+#define MXC_SSI1STMSK 0x48
+#define MXC_SSI1SRMSK 0x4C
+
+/* MXC91221 only */
+
+#define MXC_SSISACCST 0x50
+#define MXC_SSISACCEN 0x54
+#define MXC_SSISACCDIS 0x58
+
+/* Not on MXC91221 */
+/*! SSI2 registers offset*/
+#define MXC_SSI2STX0 0x00
+#define MXC_SSI2STX1 0x04
+#define MXC_SSI2SRX0 0x08
+#define MXC_SSI2SRX1 0x0C
+#define MXC_SSI2SCR 0x10
+#define MXC_SSI2SISR 0x14
+#define MXC_SSI2SIER 0x18
+#define MXC_SSI2STCR 0x1C
+#define MXC_SSI2SRCR 0x20
+#define MXC_SSI2STCCR 0x24
+#define MXC_SSI2SRCCR 0x28
+#define MXC_SSI2SFCSR 0x2C
+#define MXC_SSI2STR 0x30
+#define MXC_SSI2SOR 0x34
+#define MXC_SSI2SACNT 0x38
+#define MXC_SSI2SACADD 0x3C
+#define MXC_SSI2SACDAT 0x40
+#define MXC_SSI2SATAG 0x44
+#define MXC_SSI2STMSK 0x48
+#define MXC_SSI2SRMSK 0x4C
+
+/*!
+ * SCR Register bit shift definitions
+ */
+#define SSI_ENABLE_SHIFT 0
+#define SSI_TRANSMIT_ENABLE_SHIFT 1
+#define SSI_RECEIVE_ENABLE_SHIFT 2
+#define SSI_NETWORK_MODE_SHIFT 3
+#define SSI_SYNCHRONOUS_MODE_SHIFT 4
+#define SSI_I2S_MODE_SHIFT 5
+#define SSI_SYSTEM_CLOCK_SHIFT 7
+#define SSI_TWO_CHANNEL_SHIFT 8
+#define SSI_CLOCK_IDLE_SHIFT 9
+
+/* MXC91221 only*/
+#define SSI_TX_FRAME_CLOCK_DISABLE_SHIFT 10
+#define SSI_RX_FRAME_CLOCK_DISABLE_SHIFT 11
+
+/*!
+ * STCR & SRCR Registers bit shift definitions
+ */
+#define SSI_EARLY_FRAME_SYNC_SHIFT 0
+#define SSI_FRAME_SYNC_LENGTH_SHIFT 1
+#define SSI_FRAME_SYNC_INVERT_SHIFT 2
+#define SSI_CLOCK_POLARITY_SHIFT 3
+#define SSI_SHIFT_DIRECTION_SHIFT 4
+#define SSI_CLOCK_DIRECTION_SHIFT 5
+#define SSI_FRAME_DIRECTION_SHIFT 6
+#define SSI_FIFO_ENABLE_0_SHIFT 7
+#define SSI_FIFO_ENABLE_1_SHIFT 8
+#define SSI_BIT_0_SHIFT 9
+
+/* MXC91221 only*/
+#define SSI_TX_FRAME_CLOCK_DISABLE_SHIFT 10
+#define SSI_RX_DATA_EXTENSION_SHIFT 10 /*SRCR only */
+/*!
+ * STCCR & SRCCR Registers bit shift definitions
+ */
+#define SSI_PRESCALER_MODULUS_SHIFT 0
+#define SSI_FRAME_RATE_DIVIDER_SHIFT 8
+#define SSI_WORD_LENGTH_SHIFT 13
+#define SSI_PRESCALER_RANGE_SHIFT 17
+#define SSI_DIVIDE_BY_TWO_SHIFT 18
+#define SSI_FRAME_DIVIDER_MASK 31
+#define SSI_MIN_FRAME_DIVIDER_RATIO 1
+#define SSI_MAX_FRAME_DIVIDER_RATIO 32
+#define SSI_PRESCALER_MODULUS_MASK 255
+#define SSI_MIN_PRESCALER_MODULUS_RATIO 1
+#define SSI_MAX_PRESCALER_MODULUS_RATIO 256
+#define SSI_WORD_LENGTH_MASK 15
+
+#define SSI_IRQ_STATUS_NUMBER 25
+
+/*!
+ * SFCSR Register bit shift definitions
+ */
+#define SSI_RX_FIFO_1_COUNT_SHIFT 28
+#define SSI_TX_FIFO_1_COUNT_SHIFT 24
+#define SSI_RX_FIFO_1_WATERMARK_SHIFT 20
+#define SSI_TX_FIFO_1_WATERMARK_SHIFT 16
+#define SSI_RX_FIFO_0_COUNT_SHIFT 12
+#define SSI_TX_FIFO_0_COUNT_SHIFT 8
+#define SSI_RX_FIFO_0_WATERMARK_SHIFT 4
+#define SSI_TX_FIFO_0_WATERMARK_SHIFT 0
+#define SSI_MIN_FIFO_WATERMARK 0
+#define SSI_MAX_FIFO_WATERMARK 8
+
+/*!
+ * SSI Option Register (SOR) bit shift definitions
+ */
+#define SSI_FRAME_SYN_RESET_SHIFT 0
+#define SSI_WAIT_SHIFT 1
+#define SSI_INIT_SHIFT 3
+#define SSI_TRANSMITTER_CLEAR_SHIFT 4
+#define SSI_RECEIVER_CLEAR_SHIFT 5
+#define SSI_CLOCK_OFF_SHIFT 6
+#define SSI_WAIT_STATE_MASK 0x3
+
+/*!
+ * SSI AC97 Control Register (SACNT) bit shift definitions
+ */
+#define AC97_MODE_ENABLE_SHIFT 0
+#define AC97_VARIABLE_OPERATION_SHIFT 1
+#define AC97_TAG_IN_FIFO_SHIFT 2
+#define AC97_READ_COMMAND_SHIFT 3
+#define AC97_WRITE_COMMAND_SHIFT 4
+#define AC97_FRAME_RATE_DIVIDER_SHIFT 5
+#define AC97_FRAME_RATE_MASK 0x3F
+
+/*!
+ * SSI Test Register (STR) bit shift definitions
+ */
+#define SSI_TEST_MODE_SHIFT 15
+#define SSI_RCK2TCK_SHIFT 14
+#define SSI_RFS2TFS_SHIFT 13
+#define SSI_RXSTATE_SHIFT 8
+#define SSI_TXD2RXD_SHIFT 7
+#define SSI_TCK2RCK_SHIFT 6
+#define SSI_TFS2RFS_SHIFT 5
+#define SSI_TXSTATE_SHIFT 0
+
+#endif /* __MXC_SSI_REGISTERS_H__ */
diff --git a/drivers/mxc/ssi/ssi.c b/drivers/mxc/ssi/ssi.c
new file mode 100644
index 000000000000..f849a3ec7072
--- /dev/null
+++ b/drivers/mxc/ssi/ssi.c
@@ -0,0 +1,1221 @@
+/*
+ * Copyright 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file ssi.c
+ * @brief This file contains the implementation of the SSI driver main services
+ *
+ *
+ * @ingroup SSI
+ */
+
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/init.h>
+#include <linux/io.h>
+#include <linux/platform_device.h>
+#include <linux/slab.h>
+#include <asm/uaccess.h>
+#include <mach/clock.h>
+
+#include "registers.h"
+#include "ssi.h"
+
+static spinlock_t ssi_lock;
+struct mxc_audio_platform_data *ssi_platform_data;
+
+EXPORT_SYMBOL(ssi_ac97_frame_rate_divider);
+EXPORT_SYMBOL(ssi_ac97_get_command_address_register);
+EXPORT_SYMBOL(ssi_ac97_get_command_data_register);
+EXPORT_SYMBOL(ssi_ac97_get_tag_register);
+EXPORT_SYMBOL(ssi_ac97_mode_enable);
+EXPORT_SYMBOL(ssi_ac97_tag_in_fifo);
+EXPORT_SYMBOL(ssi_ac97_read_command);
+EXPORT_SYMBOL(ssi_ac97_set_command_address_register);
+EXPORT_SYMBOL(ssi_ac97_set_command_data_register);
+EXPORT_SYMBOL(ssi_ac97_set_tag_register);
+EXPORT_SYMBOL(ssi_ac97_variable_mode);
+EXPORT_SYMBOL(ssi_ac97_write_command);
+EXPORT_SYMBOL(ssi_clock_idle_state);
+EXPORT_SYMBOL(ssi_clock_off);
+EXPORT_SYMBOL(ssi_enable);
+EXPORT_SYMBOL(ssi_get_data);
+EXPORT_SYMBOL(ssi_get_status);
+EXPORT_SYMBOL(ssi_i2s_mode);
+EXPORT_SYMBOL(ssi_interrupt_disable);
+EXPORT_SYMBOL(ssi_interrupt_enable);
+EXPORT_SYMBOL(ssi_network_mode);
+EXPORT_SYMBOL(ssi_receive_enable);
+EXPORT_SYMBOL(ssi_rx_bit0);
+EXPORT_SYMBOL(ssi_rx_clock_direction);
+EXPORT_SYMBOL(ssi_rx_clock_divide_by_two);
+EXPORT_SYMBOL(ssi_rx_clock_polarity);
+EXPORT_SYMBOL(ssi_rx_clock_prescaler);
+EXPORT_SYMBOL(ssi_rx_early_frame_sync);
+EXPORT_SYMBOL(ssi_rx_fifo_counter);
+EXPORT_SYMBOL(ssi_rx_fifo_enable);
+EXPORT_SYMBOL(ssi_rx_fifo_full_watermark);
+EXPORT_SYMBOL(ssi_rx_flush_fifo);
+EXPORT_SYMBOL(ssi_rx_frame_direction);
+EXPORT_SYMBOL(ssi_rx_frame_rate);
+EXPORT_SYMBOL(ssi_rx_frame_sync_active);
+EXPORT_SYMBOL(ssi_rx_frame_sync_length);
+EXPORT_SYMBOL(ssi_rx_mask_time_slot);
+EXPORT_SYMBOL(ssi_rx_prescaler_modulus);
+EXPORT_SYMBOL(ssi_rx_shift_direction);
+EXPORT_SYMBOL(ssi_rx_word_length);
+EXPORT_SYMBOL(ssi_set_data);
+EXPORT_SYMBOL(ssi_set_wait_states);
+EXPORT_SYMBOL(ssi_synchronous_mode);
+EXPORT_SYMBOL(ssi_system_clock);
+EXPORT_SYMBOL(ssi_transmit_enable);
+EXPORT_SYMBOL(ssi_two_channel_mode);
+EXPORT_SYMBOL(ssi_tx_bit0);
+EXPORT_SYMBOL(ssi_tx_clock_direction);
+EXPORT_SYMBOL(ssi_tx_clock_divide_by_two);
+EXPORT_SYMBOL(ssi_tx_clock_polarity);
+EXPORT_SYMBOL(ssi_tx_clock_prescaler);
+EXPORT_SYMBOL(ssi_tx_early_frame_sync);
+EXPORT_SYMBOL(ssi_tx_fifo_counter);
+EXPORT_SYMBOL(ssi_tx_fifo_empty_watermark);
+EXPORT_SYMBOL(ssi_tx_fifo_enable);
+EXPORT_SYMBOL(ssi_tx_flush_fifo);
+EXPORT_SYMBOL(ssi_tx_frame_direction);
+EXPORT_SYMBOL(ssi_tx_frame_rate);
+EXPORT_SYMBOL(ssi_tx_frame_sync_active);
+EXPORT_SYMBOL(ssi_tx_frame_sync_length);
+EXPORT_SYMBOL(ssi_tx_mask_time_slot);
+EXPORT_SYMBOL(ssi_tx_prescaler_modulus);
+EXPORT_SYMBOL(ssi_tx_shift_direction);
+EXPORT_SYMBOL(ssi_tx_word_length);
+EXPORT_SYMBOL(get_ssi_fifo_addr);
+
+struct resource *res;
+unsigned long base_addr_1;
+unsigned long base_addr_2;
+
+unsigned int get_ssi_fifo_addr(unsigned int ssi, int direction)
+{
+ unsigned int fifo_addr;
+ if (direction == 1) {
+ if (ssi_platform_data->ssi_num == 2) {
+ fifo_addr =
+ (ssi ==
+ SSI1) ? (int)(base_addr_1 +
+ MXC_SSI1STX0) : (int)(base_addr_2 +
+ MXC_SSI2STX0);
+ } else {
+ fifo_addr = (int)(base_addr_1 + MXC_SSI1STX0);
+ }
+ } else {
+ fifo_addr = (int)(base_addr_1 + MXC_SSI1SRX0);
+ }
+ return fifo_addr;
+}
+
+void *get_ssi_base_addr(unsigned int ssi)
+{
+ if (ssi_platform_data->ssi_num == 2) {
+ if (ssi == SSI1)
+ return IO_ADDRESS(base_addr_1);
+ else
+ return IO_ADDRESS(base_addr_2);
+ }
+ return IO_ADDRESS(base_addr_1);
+}
+
+void set_register_bits(unsigned int mask, unsigned int data,
+ unsigned int offset, unsigned int ssi)
+{
+ volatile unsigned long reg = 0;
+ void *base_addr = get_ssi_base_addr(ssi);
+ unsigned long flags = 0;
+
+ spin_lock_irqsave(&ssi_lock, flags);
+ reg = __raw_readl(base_addr + offset);
+ reg = (reg & (~mask)) | data;
+ __raw_writel(reg, base_addr + offset);
+ spin_unlock_irqrestore(&ssi_lock, flags);
+}
+
+unsigned long getreg_value(unsigned int offset, unsigned int ssi)
+{
+ void *base_addr = get_ssi_base_addr(ssi);
+ return __raw_readl(base_addr + offset);
+}
+
+void set_register(unsigned int data, unsigned int offset, unsigned int ssi)
+{
+ void *base_addr = get_ssi_base_addr(ssi);
+ __raw_writel(data, base_addr + offset);
+}
+
+/*!
+ * This function controls the AC97 frame rate divider.
+ *
+ * @param module the module number
+ * @param frame_rate_divider the AC97 frame rate divider
+ */
+void ssi_ac97_frame_rate_divider(ssi_mod module,
+ unsigned char frame_rate_divider)
+{
+ unsigned int reg = 0;
+
+ reg = getreg_value(MXC_SSISACNT, module);
+ reg |= ((frame_rate_divider & AC97_FRAME_RATE_MASK)
+ << AC97_FRAME_RATE_DIVIDER_SHIFT);
+ set_register(reg, MXC_SSISACNT, module);
+}
+
+/*!
+ * This function gets the AC97 command address register.
+ *
+ * @param module the module number
+ * @return This function returns the command address slot information.
+ */
+unsigned int ssi_ac97_get_command_address_register(ssi_mod module)
+{
+ return getreg_value(MXC_SSISACADD, module);
+}
+
+/*!
+ * This function gets the AC97 command data register.
+ *
+ * @param module the module number
+ * @return This function returns the command data slot information.
+ */
+unsigned int ssi_ac97_get_command_data_register(ssi_mod module)
+{
+ return getreg_value(MXC_SSISACDAT, module);
+}
+
+/*!
+ * This function gets the AC97 tag register.
+ *
+ * @param module the module number
+ * @return This function returns the tag information.
+ */
+unsigned int ssi_ac97_get_tag_register(ssi_mod module)
+{
+ return getreg_value(MXC_SSISATAG, module);
+}
+
+/*!
+ * This function controls the AC97 mode.
+ *
+ * @param module the module number
+ * @param state the AC97 mode state (enabled or disabled)
+ */
+void ssi_ac97_mode_enable(ssi_mod module, bool state)
+{
+ unsigned int reg = 0;
+
+ reg = getreg_value(MXC_SSISACNT, module);
+ if (state == true) {
+ reg |= (1 << AC97_MODE_ENABLE_SHIFT);
+ } else {
+ reg &= ~(1 << AC97_MODE_ENABLE_SHIFT);
+ }
+
+ set_register(reg, MXC_SSISACNT, module);
+}
+
+/*!
+ * This function controls the AC97 tag in FIFO behavior.
+ *
+ * @param module the module number
+ * @param state the tag in fifo behavior (Tag info stored in Rx FIFO 0 if true,
+ * Tag info stored in SATAG register otherwise)
+ */
+void ssi_ac97_tag_in_fifo(ssi_mod module, bool state)
+{
+ unsigned int reg = 0;
+
+ reg = getreg_value(MXC_SSISACNT, module);
+ if (state == true) {
+ reg |= (1 << AC97_TAG_IN_FIFO_SHIFT);
+ } else {
+ reg &= ~(1 << AC97_TAG_IN_FIFO_SHIFT);
+ }
+
+ set_register(reg, MXC_SSISACNT, module);
+}
+
+/*!
+ * This function controls the AC97 read command.
+ *
+ * @param module the module number
+ * @param state the next AC97 command is a read command or not
+ */
+void ssi_ac97_read_command(ssi_mod module, bool state)
+{
+ unsigned int reg = 0;
+
+ reg = getreg_value(MXC_SSISACNT, module);
+ if (state == true) {
+ reg |= (1 << AC97_READ_COMMAND_SHIFT);
+ } else {
+ reg &= ~(1 << AC97_READ_COMMAND_SHIFT);
+ }
+
+ set_register(reg, MXC_SSISACNT, module);
+}
+
+/*!
+ * This function sets the AC97 command address register.
+ *
+ * @param module the module number
+ * @param address the command address slot information
+ */
+void ssi_ac97_set_command_address_register(ssi_mod module, unsigned int address)
+{
+ set_register(address, MXC_SSISACADD, module);
+}
+
+/*!
+ * This function sets the AC97 command data register.
+ *
+ * @param module the module number
+ * @param data the command data slot information
+ */
+void ssi_ac97_set_command_data_register(ssi_mod module, unsigned int data)
+{
+ set_register(data, MXC_SSISACDAT, module);
+}
+
+/*!
+ * This function sets the AC97 tag register.
+ *
+ * @param module the module number
+ * @param tag the tag information
+ */
+void ssi_ac97_set_tag_register(ssi_mod module, unsigned int tag)
+{
+ set_register(tag, MXC_SSISATAG, module);
+}
+
+/*!
+ * This function controls the AC97 variable mode.
+ *
+ * @param module the module number
+ * @param state the AC97 variable mode state (enabled or disabled)
+ */ void ssi_ac97_variable_mode(ssi_mod module, bool state)
+{
+ unsigned int reg = 0;
+
+ reg = getreg_value(MXC_SSISACNT, module);
+ if (state == true) {
+ reg |= (1 << AC97_VARIABLE_OPERATION_SHIFT);
+ } else {
+ reg &= ~(1 << AC97_VARIABLE_OPERATION_SHIFT);
+ }
+
+ set_register(reg, MXC_SSISACNT, module);
+}
+
+/*!
+ * This function controls the AC97 write command.
+ *
+ * @param module the module number
+ * @param state the next AC97 command is a write command or not
+ */
+void ssi_ac97_write_command(ssi_mod module, bool state)
+{
+ unsigned int reg = 0;
+
+ reg = getreg_value(MXC_SSISACNT, module);
+ if (state == true) {
+ reg |= (1 << AC97_WRITE_COMMAND_SHIFT);
+ } else {
+ reg &= ~(1 << AC97_WRITE_COMMAND_SHIFT);
+ }
+
+ set_register(reg, MXC_SSISACNT, module);
+}
+
+/*!
+ * This function controls the idle state of the transmit clock port during SSI internal gated mode.
+ *
+ * @param module the module number
+ * @param state the clock idle state
+ */
+void ssi_clock_idle_state(ssi_mod module, idle_state state)
+{
+ set_register_bits(1 << SSI_CLOCK_IDLE_SHIFT,
+ state << SSI_CLOCK_IDLE_SHIFT, MXC_SSISCR, module);
+}
+
+/*!
+ * This function turns off/on the ccm_ssi_clk to reduce power consumption.
+ *
+ * @param module the module number
+ * @param state the state for ccm_ssi_clk (true: turn off, else:turn on)
+ */
+void ssi_clock_off(ssi_mod module, bool state)
+{
+ set_register_bits(1 << SSI_CLOCK_OFF_SHIFT,
+ state << SSI_CLOCK_OFF_SHIFT, MXC_SSISOR, module);
+}
+
+/*!
+ * This function enables/disables the SSI module.
+ *
+ * @param module the module number
+ * @param state the state for SSI module
+ */
+void ssi_enable(ssi_mod module, bool state)
+{
+ set_register_bits(1 << SSI_ENABLE_SHIFT, state << SSI_ENABLE_SHIFT,
+ MXC_SSISCR, module);
+}
+
+/*!
+ * This function gets the data word in the Receive FIFO of the SSI module.
+ *
+ * @param module the module number
+ * @param fifo the Receive FIFO to read
+ * @return This function returns the read data.
+ */
+unsigned int ssi_get_data(ssi_mod module, fifo_nb fifo)
+{
+ unsigned int result = 0;
+
+ if (ssi_fifo_0 == fifo) {
+ result = getreg_value(MXC_SSISRX0, module);
+ } else {
+ result = getreg_value(MXC_SSISRX1, module);
+ }
+
+ return result;
+}
+
+/*!
+ * This function returns the status of the SSI module (SISR register) as a combination of status.
+ *
+ * @param module the module number
+ * @return This function returns the status of the SSI module
+ */
+ssi_status_enable_mask ssi_get_status(ssi_mod module)
+{
+ unsigned int result;
+
+ result = getreg_value(MXC_SSISISR, module);
+ result &= ((1 << SSI_IRQ_STATUS_NUMBER) - 1);
+
+ return (ssi_status_enable_mask) result;
+}
+
+/*!
+ * This function selects the I2S mode of the SSI module.
+ *
+ * @param module the module number
+ * @param mode the I2S mode
+ */
+void ssi_i2s_mode(ssi_mod module, mode_i2s mode)
+{
+ set_register_bits(3 << SSI_I2S_MODE_SHIFT, mode << SSI_I2S_MODE_SHIFT,
+ MXC_SSISCR, module);
+}
+
+/*!
+ * This function disables the interrupts of the SSI module.
+ *
+ * @param module the module number
+ * @param mask the mask of the interrupts to disable
+ */
+void ssi_interrupt_disable(ssi_mod module, ssi_status_enable_mask mask)
+{
+ set_register_bits(mask, 0, MXC_SSISIER, module);
+}
+
+/*!
+ * This function enables the interrupts of the SSI module.
+ *
+ * @param module the module number
+ * @param mask the mask of the interrupts to enable
+ */
+void ssi_interrupt_enable(ssi_mod module, ssi_status_enable_mask mask)
+{
+ set_register_bits(0, mask, MXC_SSISIER, module);
+}
+
+/*!
+ * This function enables/disables the network mode of the SSI module.
+ *
+ * @param module the module number
+ * @param state the network mode state
+ */
+void ssi_network_mode(ssi_mod module, bool state)
+{
+ set_register_bits(1 << SSI_NETWORK_MODE_SHIFT,
+ state << SSI_NETWORK_MODE_SHIFT, MXC_SSISCR, module);
+}
+
+/*!
+ * This function enables/disables the receive section of the SSI module.
+ *
+ * @param module the module number
+ * @param state the receive section state
+ */
+void ssi_receive_enable(ssi_mod module, bool state)
+{
+ set_register_bits(1 << SSI_RECEIVE_ENABLE_SHIFT,
+ state << SSI_RECEIVE_ENABLE_SHIFT, MXC_SSISCR,
+ module);
+}
+
+/*!
+ * This function configures the SSI module to receive data word at bit position 0 or 23 in the Receive shift register.
+ *
+ * @param module the module number
+ * @param state the state to receive at bit 0
+ */
+void ssi_rx_bit0(ssi_mod module, bool state)
+{
+ set_register_bits(1 << SSI_BIT_0_SHIFT, state << SSI_BIT_0_SHIFT,
+ MXC_SSISRCR, module);
+}
+
+/*!
+ * This function controls the source of the clock signal used to clock the Receive shift register.
+ *
+ * @param module the module number
+ * @param direction the clock signal direction
+ */
+void ssi_rx_clock_direction(ssi_mod module, ssi_tx_rx_direction direction)
+{
+ set_register_bits(1 << SSI_CLOCK_DIRECTION_SHIFT,
+ direction << SSI_CLOCK_DIRECTION_SHIFT, MXC_SSISRCR,
+ module);
+}
+
+/*!
+ * This function configures the divide-by-two divider of the SSI module for the receive section.
+ *
+ * @param module the module number
+ * @param state the divider state
+ */
+void ssi_rx_clock_divide_by_two(ssi_mod module, bool state)
+{
+ set_register_bits(1 << SSI_DIVIDE_BY_TWO_SHIFT,
+ state << SSI_DIVIDE_BY_TWO_SHIFT, MXC_SSISRCCR,
+ module);
+}
+
+/*!
+ * This function controls which bit clock edge is used to clock in data.
+ *
+ * @param module the module number
+ * @param polarity the clock polarity
+ */
+void ssi_rx_clock_polarity(ssi_mod module, ssi_tx_rx_clock_polarity polarity)
+{
+ set_register_bits(1 << SSI_CLOCK_POLARITY_SHIFT,
+ polarity << SSI_CLOCK_POLARITY_SHIFT, MXC_SSISRCR,
+ module);
+}
+
+/*!
+ * This function configures a fixed divide-by-eight clock prescaler divider of the SSI module in series with the variable prescaler for the receive section.
+ *
+ * @param module the module number
+ * @param state the prescaler state
+ */
+void ssi_rx_clock_prescaler(ssi_mod module, bool state)
+{
+ set_register_bits(1 << SSI_PRESCALER_RANGE_SHIFT,
+ state << SSI_PRESCALER_RANGE_SHIFT,
+ MXC_SSISRCCR, module);
+}
+
+/*!
+ * This function controls the early frame sync configuration.
+ *
+ * @param module the module number
+ * @param early the early frame sync configuration
+ */
+void ssi_rx_early_frame_sync(ssi_mod module, ssi_tx_rx_early_frame_sync early)
+{
+ set_register_bits(1 << SSI_EARLY_FRAME_SYNC_SHIFT,
+ early << SSI_EARLY_FRAME_SYNC_SHIFT,
+ MXC_SSISRCR, module);
+}
+
+/*!
+ * This function gets the number of data words in the Receive FIFO.
+ *
+ * @param module the module number
+ * @param fifo the fifo
+ * @return This function returns the number of words in the Rx FIFO.
+ */
+unsigned char ssi_rx_fifo_counter(ssi_mod module, fifo_nb fifo)
+{
+ unsigned char result;
+ result = 0;
+
+ if (ssi_fifo_0 == fifo) {
+ result = getreg_value(MXC_SSISFCSR, module);
+ result &= (0xF << SSI_RX_FIFO_0_COUNT_SHIFT);
+ result = result >> SSI_RX_FIFO_0_COUNT_SHIFT;
+ } else {
+ result = getreg_value(MXC_SSISFCSR, module);
+ result &= (0xF << SSI_RX_FIFO_1_COUNT_SHIFT);
+ result = result >> SSI_RX_FIFO_1_COUNT_SHIFT;
+ }
+
+ return result;
+}
+
+/*!
+ * This function enables the Receive FIFO.
+ *
+ * @param module the module number
+ * @param fifo the fifo to enable
+ * @param enable the state of the fifo, enabled or disabled
+ */
+
+void ssi_rx_fifo_enable(ssi_mod module, fifo_nb fifo, bool enable)
+{
+ volatile unsigned int reg;
+
+ reg = getreg_value(MXC_SSISRCR, module);
+ if (enable == true) {
+ reg |= ((1 + fifo) << SSI_FIFO_ENABLE_0_SHIFT);
+ } else {
+ reg &= ~((1 + fifo) << SSI_FIFO_ENABLE_0_SHIFT);
+ }
+
+ set_register(reg, MXC_SSISRCR, module);
+}
+
+/*!
+ * This function controls the threshold at which the RFFx flag will be set.
+ *
+ * @param module the module number
+ * @param fifo the fifo to enable
+ * @param watermark the watermark
+ * @return This function returns the result of the operation (0 if successful, -1 otherwise).
+ */
+int ssi_rx_fifo_full_watermark(ssi_mod module,
+ fifo_nb fifo, unsigned char watermark)
+{
+ int result = -1;
+ result = -1;
+
+ if ((watermark > SSI_MIN_FIFO_WATERMARK) &&
+ (watermark <= SSI_MAX_FIFO_WATERMARK)) {
+ if (ssi_fifo_0 == fifo) {
+ set_register_bits(0xf << SSI_RX_FIFO_0_WATERMARK_SHIFT,
+ watermark <<
+ SSI_RX_FIFO_0_WATERMARK_SHIFT,
+ MXC_SSISFCSR, module);
+ } else {
+ set_register_bits(0xf << SSI_RX_FIFO_1_WATERMARK_SHIFT,
+ watermark <<
+ SSI_RX_FIFO_1_WATERMARK_SHIFT,
+ MXC_SSISFCSR, module);
+ }
+
+ result = 0;
+ }
+
+ return result;
+}
+
+/*!
+ * This function flushes the Receive FIFOs.
+ *
+ * @param module the module number
+ */
+void ssi_rx_flush_fifo(ssi_mod module)
+{
+ set_register_bits(0, 1 << SSI_RECEIVER_CLEAR_SHIFT, MXC_SSISOR, module);
+}
+
+/*!
+ * This function controls the direction of the Frame Sync signal for the receive section.
+ *
+ * @param module the module number
+ * @param direction the Frame Sync signal direction
+ */
+void ssi_rx_frame_direction(ssi_mod module, ssi_tx_rx_direction direction)
+{
+ set_register_bits(1 << SSI_FRAME_DIRECTION_SHIFT,
+ direction << SSI_FRAME_DIRECTION_SHIFT,
+ MXC_SSISRCR, module);
+}
+
+/*!
+ * This function configures the Receive frame rate divider for the receive section.
+ *
+ * @param module the module number
+ * @param ratio the divide ratio from 1 to 32
+ * @return This function returns the result of the operation (0 if successful, -1 otherwise).
+ */
+int ssi_rx_frame_rate(ssi_mod module, unsigned char ratio)
+{
+ int result = -1;
+
+ if ((ratio >= SSI_MIN_FRAME_DIVIDER_RATIO) &&
+ (ratio <= SSI_MAX_FRAME_DIVIDER_RATIO)) {
+ set_register_bits(SSI_FRAME_DIVIDER_MASK <<
+ SSI_FRAME_RATE_DIVIDER_SHIFT,
+ (ratio - 1) << SSI_FRAME_RATE_DIVIDER_SHIFT,
+ MXC_SSISRCCR, module);
+ result = 0;
+ }
+
+ return result;
+}
+
+/*!
+ * This function controls the Frame Sync active polarity for the receive section.
+ *
+ * @param module the module number
+ * @param active the Frame Sync active polarity
+ */
+void ssi_rx_frame_sync_active(ssi_mod module,
+ ssi_tx_rx_frame_sync_active active)
+{
+ set_register_bits(1 << SSI_FRAME_SYNC_INVERT_SHIFT,
+ active << SSI_FRAME_SYNC_INVERT_SHIFT,
+ MXC_SSISRCR, module);
+}
+
+/*!
+ * This function controls the Frame Sync length (one word or one bit long) for the receive section.
+ *
+ * @param module the module number
+ * @param length the Frame Sync length
+ */
+void ssi_rx_frame_sync_length(ssi_mod module,
+ ssi_tx_rx_frame_sync_length length)
+{
+ set_register_bits(1 << SSI_FRAME_SYNC_LENGTH_SHIFT,
+ length << SSI_FRAME_SYNC_LENGTH_SHIFT,
+ MXC_SSISRCR, module);
+}
+
+/*!
+ * This function configures the time slot(s) to mask for the receive section.
+ *
+ * @param module the module number
+ * @param mask the mask to indicate the time slot(s) masked
+ */
+void ssi_rx_mask_time_slot(ssi_mod module, unsigned int mask)
+{
+ set_register_bits(0xFFFFFFFF, mask, MXC_SSISRMSK, module);
+}
+
+/*!
+ * This function configures the Prescale divider for the receive section.
+ *
+ * @param module the module number
+ * @param divider the divide ratio from 1 to 256
+ * @return This function returns the result of the operation (0 if successful, -1 otherwise).
+ */
+int ssi_rx_prescaler_modulus(ssi_mod module, unsigned int divider)
+{
+ int result = -1;
+
+ if ((divider >= SSI_MIN_PRESCALER_MODULUS_RATIO) &&
+ (divider <= SSI_MAX_PRESCALER_MODULUS_RATIO)) {
+
+ set_register_bits(SSI_PRESCALER_MODULUS_MASK <<
+ SSI_PRESCALER_MODULUS_SHIFT,
+ (divider - 1) << SSI_PRESCALER_MODULUS_SHIFT,
+ MXC_SSISRCCR, module);
+ result = 0;
+ }
+
+ return result;
+}
+
+/*!
+ * This function controls whether the MSB or LSB will be received first in a sample.
+ *
+ * @param module the module number
+ * @param direction the shift direction
+ */
+void ssi_rx_shift_direction(ssi_mod module, ssi_tx_rx_shift_direction direction)
+{
+ set_register_bits(1 << SSI_SHIFT_DIRECTION_SHIFT,
+ direction << SSI_SHIFT_DIRECTION_SHIFT,
+ MXC_SSISRCR, module);
+}
+
+/*!
+ * This function configures the Receive word length.
+ *
+ * @param module the module number
+ * @param length the word length
+ */
+void ssi_rx_word_length(ssi_mod module, ssi_word_length length)
+{
+ set_register_bits(SSI_WORD_LENGTH_MASK << SSI_WORD_LENGTH_SHIFT,
+ length << SSI_WORD_LENGTH_SHIFT,
+ MXC_SSISRCCR, module);
+}
+
+/*!
+ * This function sets the data word in the Transmit FIFO of the SSI module.
+ *
+ * @param module the module number
+ * @param fifo the FIFO number
+ * @param data the data to load in the FIFO
+ */
+
+void ssi_set_data(ssi_mod module, fifo_nb fifo, unsigned int data)
+{
+ if (ssi_fifo_0 == fifo) {
+ set_register(data, MXC_SSISTX0, module);
+ } else {
+ set_register(data, MXC_SSISTX1, module);
+ }
+}
+
+/*!
+ * This function controls the number of wait states between the core and SSI.
+ *
+ * @param module the module number
+ * @param wait the number of wait state(s)
+ */
+void ssi_set_wait_states(ssi_mod module, ssi_wait_states wait)
+{
+ set_register_bits(SSI_WAIT_STATE_MASK << SSI_WAIT_SHIFT,
+ wait << SSI_WAIT_SHIFT, MXC_SSISOR, module);
+}
+
+/*!
+ * This function enables/disables the synchronous mode of the SSI module.
+ *
+ * @param module the module number
+ * @param state the synchronous mode state
+ */
+void ssi_synchronous_mode(ssi_mod module, bool state)
+{
+ set_register_bits(1 << SSI_SYNCHRONOUS_MODE_SHIFT,
+ state << SSI_SYNCHRONOUS_MODE_SHIFT,
+ MXC_SSISCR, module);
+}
+
+/*!
+ * This function allows the SSI module to output the SYS_CLK at the SRCK port.
+ *
+ * @param module the module number
+ * @param state the system clock state
+ */
+void ssi_system_clock(ssi_mod module, bool state)
+{
+ set_register_bits(1 << SSI_SYSTEM_CLOCK_SHIFT,
+ state << SSI_SYSTEM_CLOCK_SHIFT, MXC_SSISCR, module);
+}
+
+/*!
+ * This function enables/disables the transmit section of the SSI module.
+ *
+ * @param module the module number
+ * @param state the transmit section state
+ */
+void ssi_transmit_enable(ssi_mod module, bool state)
+{
+ set_register_bits(1 << SSI_TRANSMIT_ENABLE_SHIFT,
+ state << SSI_TRANSMIT_ENABLE_SHIFT,
+ MXC_SSISCR, module);
+}
+
+/*!
+ * This function allows the SSI module to operate in the two channel mode.
+ *
+ * @param module the module number
+ * @param state the two channel mode state
+ */
+void ssi_two_channel_mode(ssi_mod module, bool state)
+{
+ set_register_bits(1 << SSI_TWO_CHANNEL_SHIFT,
+ state << SSI_TWO_CHANNEL_SHIFT, MXC_SSISCR, module);
+}
+
+/*!
+ * This function configures the SSI module to transmit data word from bit position 0 or 23 in the Transmit shift register.
+ *
+ * @param module the module number
+ * @param state the transmit from bit 0 state
+ */
+void ssi_tx_bit0(ssi_mod module, bool state)
+{
+ set_register_bits(1 << SSI_BIT_0_SHIFT,
+ state << SSI_BIT_0_SHIFT, MXC_SSISTCR, module);
+}
+
+/*!
+ * This function controls the direction of the clock signal used to clock the Transmit shift register.
+ *
+ * @param module the module number
+ * @param direction the clock signal direction
+ */
+void ssi_tx_clock_direction(ssi_mod module, ssi_tx_rx_direction direction)
+{
+ set_register_bits(1 << SSI_CLOCK_DIRECTION_SHIFT,
+ direction << SSI_CLOCK_DIRECTION_SHIFT,
+ MXC_SSISTCR, module);
+}
+
+/*!
+ * This function configures the divide-by-two divider of the SSI module for the transmit section.
+ *
+ * @param module the module number
+ * @param state the divider state
+ */
+void ssi_tx_clock_divide_by_two(ssi_mod module, bool state)
+{
+ set_register_bits(1 << SSI_DIVIDE_BY_TWO_SHIFT,
+ state << SSI_DIVIDE_BY_TWO_SHIFT,
+ MXC_SSISTCCR, module);
+}
+
+/*!
+ * This function controls which bit clock edge is used to clock out data.
+ *
+ * @param module the module number
+ * @param polarity the clock polarity
+ */
+void ssi_tx_clock_polarity(ssi_mod module, ssi_tx_rx_clock_polarity polarity)
+{
+ set_register_bits(1 << SSI_CLOCK_POLARITY_SHIFT,
+ polarity << SSI_CLOCK_POLARITY_SHIFT,
+ MXC_SSISTCR, module);
+}
+
+/*!
+ * This function configures a fixed divide-by-eight clock prescaler divider of the SSI module in series with the variable prescaler for the transmit section.
+ *
+ * @param module the module number
+ * @param state the prescaler state
+ */
+void ssi_tx_clock_prescaler(ssi_mod module, bool state)
+{
+ set_register_bits(1 << SSI_PRESCALER_RANGE_SHIFT,
+ state << SSI_PRESCALER_RANGE_SHIFT,
+ MXC_SSISTCCR, module);
+}
+
+/*!
+ * This function controls the early frame sync configuration for the transmit section.
+ *
+ * @param module the module number
+ * @param early the early frame sync configuration
+ */
+void ssi_tx_early_frame_sync(ssi_mod module, ssi_tx_rx_early_frame_sync early)
+{
+ set_register_bits(1 << SSI_EARLY_FRAME_SYNC_SHIFT,
+ early << SSI_EARLY_FRAME_SYNC_SHIFT,
+ MXC_SSISTCR, module);
+}
+
+/*!
+ * This function gets the number of data words in the Transmit FIFO.
+ *
+ * @param module the module number
+ * @param fifo the fifo
+ * @return This function returns the number of words in the Tx FIFO.
+ */
+unsigned char ssi_tx_fifo_counter(ssi_mod module, fifo_nb fifo)
+{
+ unsigned char result = 0;
+
+ if (ssi_fifo_0 == fifo) {
+ result = getreg_value(MXC_SSISFCSR, module);
+ result &= (0xF << SSI_TX_FIFO_0_COUNT_SHIFT);
+ result >>= SSI_TX_FIFO_0_COUNT_SHIFT;
+ } else {
+ result = getreg_value(MXC_SSISFCSR, module);
+ result &= (0xF << SSI_TX_FIFO_1_COUNT_SHIFT);
+ result >>= SSI_TX_FIFO_1_COUNT_SHIFT;
+ }
+
+ return result;
+}
+
+/*!
+ * This function controls the threshold at which the TFEx flag will be set.
+ *
+ * @param module the module number
+ * @param fifo the fifo to enable
+ * @param watermark the watermark
+ * @return This function returns the result of the operation (0 if successful, -1 otherwise).
+ */
+int ssi_tx_fifo_empty_watermark(ssi_mod module,
+ fifo_nb fifo, unsigned char watermark)
+{
+ int result = -1;
+
+ if ((watermark > SSI_MIN_FIFO_WATERMARK) &&
+ (watermark <= SSI_MAX_FIFO_WATERMARK)) {
+ if (ssi_fifo_0 == fifo) {
+ set_register_bits(0xf << SSI_TX_FIFO_0_WATERMARK_SHIFT,
+ watermark <<
+ SSI_TX_FIFO_0_WATERMARK_SHIFT,
+ MXC_SSISFCSR, module);
+ } else {
+ set_register_bits(0xf << SSI_TX_FIFO_1_WATERMARK_SHIFT,
+ watermark <<
+ SSI_TX_FIFO_1_WATERMARK_SHIFT,
+ MXC_SSISFCSR, module);
+ }
+
+ result = 0;
+ }
+
+ return result;
+}
+
+/*!
+ * This function enables the Transmit FIFO.
+ *
+ * @param module the module number
+ * @param fifo the fifo to enable
+ * @param enable the state of the fifo, enabled or disabled
+ */
+
+void ssi_tx_fifo_enable(ssi_mod module, fifo_nb fifo, bool enable)
+{
+ unsigned int reg;
+
+ reg = getreg_value(MXC_SSISTCR, module);
+ if (enable == true) {
+ reg |= ((1 + fifo) << SSI_FIFO_ENABLE_0_SHIFT);
+ } else {
+ reg &= ~((1 + fifo) << SSI_FIFO_ENABLE_0_SHIFT);
+ }
+
+ set_register(reg, MXC_SSISTCR, module);
+}
+
+/*!
+ * This function flushes the Transmit FIFOs.
+ *
+ * @param module the module number
+ */
+void ssi_tx_flush_fifo(ssi_mod module)
+{
+ set_register_bits(0, 1 << SSI_TRANSMITTER_CLEAR_SHIFT,
+ MXC_SSISOR, module);
+}
+
+/*!
+ * This function controls the direction of the Frame Sync signal for the transmit section.
+ *
+ * @param module the module number
+ * @param direction the Frame Sync signal direction
+ */
+void ssi_tx_frame_direction(ssi_mod module, ssi_tx_rx_direction direction)
+{
+ set_register_bits(1 << SSI_FRAME_DIRECTION_SHIFT,
+ direction << SSI_FRAME_DIRECTION_SHIFT,
+ MXC_SSISTCR, module);
+}
+
+/*!
+ * This function configures the Transmit frame rate divider.
+ *
+ * @param module the module number
+ * @param ratio the divide ratio from 1 to 32
+ * @return This function returns the result of the operation (0 if successful, -1 otherwise).
+ */
+int ssi_tx_frame_rate(ssi_mod module, unsigned char ratio)
+{
+ int result = -1;
+
+ if ((ratio >= SSI_MIN_FRAME_DIVIDER_RATIO) &&
+ (ratio <= SSI_MAX_FRAME_DIVIDER_RATIO)) {
+
+ set_register_bits(SSI_FRAME_DIVIDER_MASK <<
+ SSI_FRAME_RATE_DIVIDER_SHIFT,
+ (ratio - 1) << SSI_FRAME_RATE_DIVIDER_SHIFT,
+ MXC_SSISTCCR, module);
+ result = 0;
+ }
+
+ return result;
+}
+
+/*!
+ * This function controls the Frame Sync active polarity for the transmit section.
+ *
+ * @param module the module number
+ * @param active the Frame Sync active polarity
+ */
+void ssi_tx_frame_sync_active(ssi_mod module,
+ ssi_tx_rx_frame_sync_active active)
+{
+ set_register_bits(1 << SSI_FRAME_SYNC_INVERT_SHIFT,
+ active << SSI_FRAME_SYNC_INVERT_SHIFT,
+ MXC_SSISTCR, module);
+}
+
+/*!
+ * This function controls the Frame Sync length (one word or one bit long) for the transmit section.
+ *
+ * @param module the module number
+ * @param length the Frame Sync length
+ */
+void ssi_tx_frame_sync_length(ssi_mod module,
+ ssi_tx_rx_frame_sync_length length)
+{
+ set_register_bits(1 << SSI_FRAME_SYNC_LENGTH_SHIFT,
+ length << SSI_FRAME_SYNC_LENGTH_SHIFT,
+ MXC_SSISTCR, module);
+}
+
+/*!
+ * This function configures the time slot(s) to mask for the transmit section.
+ *
+ * @param module the module number
+ * @param mask the mask to indicate the time slot(s) masked
+ */
+void ssi_tx_mask_time_slot(ssi_mod module, unsigned int mask)
+{
+ set_register_bits(0xFFFFFFFF, mask, MXC_SSISTMSK, module);
+}
+
+/*!
+ * This function configures the Prescale divider for the transmit section.
+ *
+ * @param module the module number
+ * @param divider the divide ratio from 1 to 256
+ * @return This function returns the result of the operation (0 if successful, -1 otherwise).
+ */
+int ssi_tx_prescaler_modulus(ssi_mod module, unsigned int divider)
+{
+ int result = -1;
+
+ if ((divider >= SSI_MIN_PRESCALER_MODULUS_RATIO) &&
+ (divider <= SSI_MAX_PRESCALER_MODULUS_RATIO)) {
+
+ set_register_bits(SSI_PRESCALER_MODULUS_MASK <<
+ SSI_PRESCALER_MODULUS_SHIFT,
+ (divider - 1) << SSI_PRESCALER_MODULUS_SHIFT,
+ MXC_SSISTCCR, module);
+ result = 0;
+ }
+
+ return result;
+}
+
+/*!
+ * This function controls whether the MSB or LSB will be transmitted first in a sample.
+ *
+ * @param module the module number
+ * @param direction the shift direction
+ */
+void ssi_tx_shift_direction(ssi_mod module, ssi_tx_rx_shift_direction direction)
+{
+ set_register_bits(1 << SSI_SHIFT_DIRECTION_SHIFT,
+ direction << SSI_SHIFT_DIRECTION_SHIFT,
+ MXC_SSISTCR, module);
+}
+
+/*!
+ * This function configures the Transmit word length.
+ *
+ * @param module the module number
+ * @param length the word length
+ */
+void ssi_tx_word_length(ssi_mod module, ssi_word_length length)
+{
+ set_register_bits(SSI_WORD_LENGTH_MASK << SSI_WORD_LENGTH_SHIFT,
+ length << SSI_WORD_LENGTH_SHIFT,
+ MXC_SSISTCCR, module);
+}
+
+/*!
+ * This function initializes the driver in terms of memory of the soundcard
+ * and some basic HW clock settings.
+ *
+ * @return 0 on success, -1 otherwise.
+ */
+static int __init ssi_probe(struct platform_device *pdev)
+{
+ int ret = -1;
+ ssi_platform_data =
+ (struct mxc_audio_platform_data *)pdev->dev.platform_data;
+ if (!ssi_platform_data) {
+ dev_err(&pdev->dev, "can't get the platform data for SSI\n");
+ return -EINVAL;
+ }
+ res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+
+ if (!res) {
+ dev_err(&pdev->dev, "can't get platform resource - SSI\n");
+ ret = -ENOMEM;
+ goto err;
+ }
+
+ if (pdev->id == 0) {
+ base_addr_1 = res->start;
+ } else if (pdev->id == 1) {
+ base_addr_2 = res->start;
+ }
+
+ printk(KERN_INFO "SSI %d module loaded successfully \n", pdev->id + 1);
+
+ return 0;
+ err:
+ return -1;
+
+}
+
+static int ssi_remove(struct platform_device *dev)
+{
+ return 0;
+}
+
+static struct platform_driver mxc_ssi_driver = {
+ .probe = ssi_probe,
+ .remove = ssi_remove,
+ .driver = {
+ .name = "mxc_ssi",
+ },
+};
+
+/*!
+ * This function implements the init function of the SSI device.
+ * This function is called when the module is loaded.
+ *
+ * @return This function returns 0.
+ */
+static int __init ssi_init(void)
+{
+ spin_lock_init(&ssi_lock);
+ return platform_driver_register(&mxc_ssi_driver);
+
+}
+
+/*!
+ * This function implements the exit function of the SPI device.
+ * This function is called when the module is unloaded.
+ *
+ */
+static void __exit ssi_exit(void)
+{
+ platform_driver_unregister(&mxc_ssi_driver);
+ printk(KERN_INFO "SSI module unloaded successfully\n");
+}
+
+module_init(ssi_init);
+module_exit(ssi_exit);
+
+MODULE_DESCRIPTION("SSI char device driver");
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_LICENSE("GPL");
diff --git a/drivers/mxc/ssi/ssi.h b/drivers/mxc/ssi/ssi.h
new file mode 100644
index 000000000000..6edd3a3b3110
--- /dev/null
+++ b/drivers/mxc/ssi/ssi.h
@@ -0,0 +1,574 @@
+/*
+ * Copyright 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+ /*!
+ * @defgroup SSI Synchronous Serial Interface (SSI) Driver
+ */
+
+ /*!
+ * @file ssi.h
+ * @brief This header file contains SSI driver functions prototypes.
+ *
+ * @ingroup SSI
+ */
+
+#ifndef __MXC_SSI_H__
+#define __MXC_SSI_H__
+
+#include "ssi_types.h"
+
+/*!
+ * This function gets the SSI fifo address.
+ *
+ * @param ssi ssi number
+ * @param direction To indicate playback / recording
+ * @return This function returns the SSI fifo address.
+ */
+unsigned int get_ssi_fifo_addr(unsigned int ssi, int direction);
+
+/*!
+ * This function controls the AC97 frame rate divider.
+ *
+ * @param module the module number
+ * @param frame_rate_divider the AC97 frame rate divider
+ */
+void ssi_ac97_frame_rate_divider(ssi_mod module,
+ unsigned char frame_rate_divider);
+
+/*!
+ * This function gets the AC97 command address register.
+ *
+ * @param module the module number
+ * @return This function returns the command address slot information.
+ */
+unsigned int ssi_ac97_get_command_address_register(ssi_mod module);
+
+/*!
+ * This function gets the AC97 command data register.
+ *
+ * @param module the module number
+ * @return This function returns the command data slot information.
+ */
+unsigned int ssi_ac97_get_command_data_register(ssi_mod module);
+
+/*!
+ * This function gets the AC97 tag register.
+ *
+ * @param module the module number
+ * @return This function returns the tag information.
+ */
+unsigned int ssi_ac97_get_tag_register(ssi_mod module);
+
+/*!
+ * This function controls the AC97 mode.
+ *
+ * @param module the module number
+ * @param state the AC97 mode state (enabled or disabled)
+ */
+void ssi_ac97_mode_enable(ssi_mod module, bool state);
+
+/*!
+ * This function controls the AC97 tag in FIFO behavior.
+ *
+ * @param module the module number
+ * @param state the tag in fifo behavior (Tag info stored in Rx FIFO 0 if TRUE,
+ * Tag info stored in SATAG register otherwise)
+ */
+void ssi_ac97_tag_in_fifo(ssi_mod module, bool state);
+
+/*!
+ * This function controls the AC97 read command.
+ *
+ * @param module the module number
+ * @param state the next AC97 command is a read command or not
+ */
+void ssi_ac97_read_command(ssi_mod module, bool state);
+
+/*!
+ * This function sets the AC97 command address register.
+ *
+ * @param module the module number
+ * @param address the command address slot information
+ */
+void ssi_ac97_set_command_address_register(ssi_mod module,
+ unsigned int address);
+
+/*!
+ * This function sets the AC97 command data register.
+ *
+ * @param module the module number
+ * @param data the command data slot information
+ */
+void ssi_ac97_set_command_data_register(ssi_mod module, unsigned int data);
+
+/*!
+ * This function sets the AC97 tag register.
+ *
+ * @param module the module number
+ * @param tag the tag information
+ */
+void ssi_ac97_set_tag_register(ssi_mod module, unsigned int tag);
+
+/*!
+ * This function controls the AC97 variable mode.
+ *
+ * @param module the module number
+ * @param state the AC97 variable mode state (enabled or disabled)
+ */
+void ssi_ac97_variable_mode(ssi_mod module, bool state);
+
+/*!
+ * This function controls the AC97 write command.
+ *
+ * @param module the module number
+ * @param state the next AC97 command is a write command or not
+ */
+void ssi_ac97_write_command(ssi_mod module, bool state);
+
+/*!
+ * This function controls the idle state of the transmit clock port during SSI internal gated mode.
+ *
+ * @param module the module number
+ * @param state the clock idle state
+ */
+void ssi_clock_idle_state(ssi_mod module, idle_state state);
+
+/*!
+ * This function turns off/on the ccm_ssi_clk to reduce power consumption.
+ *
+ * @param module the module number
+ * @param state the state for ccm_ssi_clk (true: turn off, else:turn on)
+ */
+void ssi_clock_off(ssi_mod module, bool state);
+
+/*!
+ * This function enables/disables the SSI module.
+ *
+ * @param module the module number
+ * @param state the state for SSI module
+ */
+void ssi_enable(ssi_mod module, bool state);
+
+/*!
+ * This function gets the data word in the Receive FIFO of the SSI module.
+ *
+ * @param module the module number
+ * @param fifo the Receive FIFO to read
+ * @return This function returns the read data.
+ */
+unsigned int ssi_get_data(ssi_mod module, fifo_nb fifo);
+
+/*!
+ * This function returns the status of the SSI module (SISR register) as a combination of status.
+ *
+ * @param module the module number
+ * @return This function returns the status of the SSI module.
+ */
+ssi_status_enable_mask ssi_get_status(ssi_mod module);
+
+/*!
+ * This function selects the I2S mode of the SSI module.
+ *
+ * @param module the module number
+ * @param mode the I2S mode
+ */
+void ssi_i2s_mode(ssi_mod module, mode_i2s mode);
+
+/*!
+ * This function disables the interrupts of the SSI module.
+ *
+ * @param module the module number
+ * @param mask the mask of the interrupts to disable
+ */
+void ssi_interrupt_disable(ssi_mod module, ssi_status_enable_mask mask);
+
+/*!
+ * This function enables the interrupts of the SSI module.
+ *
+ * @param module the module number
+ * @param mask the mask of the interrupts to enable
+ */
+void ssi_interrupt_enable(ssi_mod module, ssi_status_enable_mask mask);
+
+/*!
+ * This function enables/disables the network mode of the SSI module.
+ *
+ * @param module the module number
+ * @param state the network mode state
+ */
+void ssi_network_mode(ssi_mod module, bool state);
+
+/*!
+ * This function enables/disables the receive section of the SSI module.
+ *
+ * @param module the module number
+ * @param state the receive section state
+ */
+void ssi_receive_enable(ssi_mod module, bool state);
+
+/*!
+ * This function configures the SSI module to receive data word at bit position 0 or 23 in the Receive shift register.
+ *
+ * @param module the module number
+ * @param state the state to receive at bit 0
+ */
+void ssi_rx_bit0(ssi_mod module, bool state);
+
+/*!
+ * This function controls the source of the clock signal used to clock the Receive shift register.
+ *
+ * @param module the module number
+ * @param direction the clock signal direction
+ */
+void ssi_rx_clock_direction(ssi_mod module, ssi_tx_rx_direction direction);
+
+/*!
+ * This function configures the divide-by-two divider of the SSI module for the receive section.
+ *
+ * @param module the module number
+ * @param state the divider state
+ */
+void ssi_rx_clock_divide_by_two(ssi_mod module, bool state);
+
+/*!
+ * This function controls which bit clock edge is used to clock in data.
+ *
+ * @param module the module number
+ * @param polarity the clock polarity
+ */
+void ssi_rx_clock_polarity(ssi_mod module, ssi_tx_rx_clock_polarity polarity);
+
+/*!
+ * This function configures a fixed divide-by-eight clock prescaler divider of the SSI module in series with the variable prescaler for the receive section.
+ *
+ * @param module the module number
+ * @param state the prescaler state
+ */
+void ssi_rx_clock_prescaler(ssi_mod module, bool state);
+
+/*!
+ * This function controls the early frame sync configuration.
+ *
+ * @param module the module number
+ * @param early the early frame sync configuration
+ */
+void ssi_rx_early_frame_sync(ssi_mod module, ssi_tx_rx_early_frame_sync early);
+
+/*!
+ * This function gets the number of data words in the Receive FIFO.
+ *
+ * @param module the module number
+ * @param fifo the fifo
+ * @return This function returns the number of words in the Rx FIFO.
+ */
+unsigned char ssi_rx_fifo_counter(ssi_mod module, fifo_nb fifo);
+
+/*!
+ * This function enables the Receive FIFO.
+ *
+ * @param module the module number
+ * @param fifo the fifo to enable
+ * @param enabled the state of the fifo, enabled or disabled
+ */
+void ssi_rx_fifo_enable(ssi_mod module, fifo_nb fifo, bool enabled);
+
+/*!
+ * This function controls the threshold at which the RFFx flag will be set.
+ *
+ * @param module the module number
+ * @param fifo the fifo to enable
+ * @param watermark the watermark
+ * @return This function returns the result of the operation (0 if successful, -1 otherwise).
+ */
+int ssi_rx_fifo_full_watermark(ssi_mod module,
+ fifo_nb fifo, unsigned char watermark);
+
+/*!
+ * This function flushes the Receive FIFOs.
+ *
+ * @param module the module number
+ */
+void ssi_rx_flush_fifo(ssi_mod module);
+
+/*!
+ * This function controls the direction of the Frame Sync signal for the receive section.
+ *
+ * @param module the module number
+ * @param direction the Frame Sync signal direction
+ */
+void ssi_rx_frame_direction(ssi_mod module, ssi_tx_rx_direction direction);
+
+/*!
+ * This function configures the Receive frame rate divider for the receive section.
+ *
+ * @param module the module number
+ * @param ratio the divide ratio from 1 to 32
+ * @return This function returns the result of the operation (0 if successful, -1 otherwise).
+ */
+int ssi_rx_frame_rate(ssi_mod module, unsigned char ratio);
+
+/*!
+ * This function controls the Frame Sync active polarity for the receive section.
+ *
+ * @param module the module number
+ * @param active the Frame Sync active polarity
+ */
+void ssi_rx_frame_sync_active(ssi_mod module,
+ ssi_tx_rx_frame_sync_active active);
+
+/*!
+ * This function controls the Frame Sync length (one word or one bit long) for the receive section.
+ *
+ * @param module the module number
+ * @param length the Frame Sync length
+ */
+void ssi_rx_frame_sync_length(ssi_mod module,
+ ssi_tx_rx_frame_sync_length length);
+
+/*!
+ * This function configures the time slot(s) to mask for the receive section.
+ *
+ * @param module the module number
+ * @param mask the mask to indicate the time slot(s) masked
+ */
+void ssi_rx_mask_time_slot(ssi_mod module, unsigned int mask);
+
+/*!
+ * This function configures the Prescale divider for the receive section.
+ *
+ * @param module the module number
+ * @param divider the divide ratio from 1 to 256
+ * @return This function returns the result of the operation (0 if successful, -1 otherwise).
+ */
+int ssi_rx_prescaler_modulus(ssi_mod module, unsigned int divider);
+
+/*!
+ * This function controls whether the MSB or LSB will be received first in a sample.
+ *
+ * @param module the module number
+ * @param direction the shift direction
+ */
+void ssi_rx_shift_direction(ssi_mod module,
+ ssi_tx_rx_shift_direction direction);
+
+/*!
+ * This function configures the Receive word length.
+ *
+ * @param module the module number
+ * @param length the word length
+ */
+void ssi_rx_word_length(ssi_mod module, ssi_word_length length);
+
+/*!
+ * This function sets the data word in the Transmit FIFO of the SSI module.
+ *
+ * @param module the module number
+ * @param fifo the FIFO number
+ * @param data the data to load in the FIFO
+ */
+void ssi_set_data(ssi_mod module, fifo_nb fifo, unsigned int data);
+
+/*!
+ * This function controls the number of wait states between the core and SSI.
+ *
+ * @param module the module number
+ * @param wait the number of wait state(s)
+ */
+void ssi_set_wait_states(ssi_mod module, ssi_wait_states wait);
+
+/*!
+ * This function enables/disables the synchronous mode of the SSI module.
+ *
+ * @param module the module number
+ * @param state the synchronous mode state
+ */
+void ssi_synchronous_mode(ssi_mod module, bool state);
+
+/*!
+ * This function allows the SSI module to output the SYS_CLK at the SRCK port.
+ *
+ * @param module the module number
+ * @param state the system clock state
+ */
+void ssi_system_clock(ssi_mod module, bool state);
+
+/*!
+ * This function enables/disables the transmit section of the SSI module.
+ *
+ * @param module the module number
+ * @param state the transmit section state
+ */
+void ssi_transmit_enable(ssi_mod module, bool state);
+
+/*!
+ * This function allows the SSI module to operate in the two channel mode.
+ *
+ * @param module the module number
+ * @param state the two channel mode state
+ */
+void ssi_two_channel_mode(ssi_mod module, bool state);
+
+/*!
+ * This function configures the SSI module to transmit data word from bit position 0 or 23 in the Transmit shift register.
+ *
+ * @param module the module number
+ * @param state the transmit from bit 0 state
+ */
+void ssi_tx_bit0(ssi_mod module, bool state);
+
+/*!
+ * This function controls the direction of the clock signal used to clock the Transmit shift register.
+ *
+ * @param module the module number
+ * @param direction the clock signal direction
+ */
+void ssi_tx_clock_direction(ssi_mod module, ssi_tx_rx_direction direction);
+
+/*!
+ * This function configures the divide-by-two divider of the SSI module for the transmit section.
+ *
+ * @param module the module number
+ * @param state the divider state
+ */
+void ssi_tx_clock_divide_by_two(ssi_mod module, bool state);
+
+/*!
+ * This function controls which bit clock edge is used to clock out data.
+ *
+ * @param module the module number
+ * @param polarity the clock polarity
+ */
+void ssi_tx_clock_polarity(ssi_mod module, ssi_tx_rx_clock_polarity polarity);
+
+/*!
+ * This function configures a fixed divide-by-eight clock prescaler divider of the SSI module in series with the variable prescaler for the transmit section.
+ *
+ * @param module the module number
+ * @param state the prescaler state
+ */
+void ssi_tx_clock_prescaler(ssi_mod module, bool state);
+
+/*!
+ * This function controls the early frame sync configuration for the transmit section.
+ *
+ * @param module the module number
+ * @param early the early frame sync configuration
+ */
+void ssi_tx_early_frame_sync(ssi_mod module, ssi_tx_rx_early_frame_sync early);
+
+/*!
+ * This function gets the number of data words in the Transmit FIFO.
+ *
+ * @param module the module number
+ * @param fifo the fifo
+ * @return This function returns the number of words in the Tx FIFO.
+ */
+unsigned char ssi_tx_fifo_counter(ssi_mod module, fifo_nb fifo);
+
+/*!
+ * This function controls the threshold at which the TFEx flag will be set.
+ *
+ * @param module the module number
+ * @param fifo the fifo to enable
+ * @param watermark the watermark
+ * @return This function returns the result of the operation (0 if successful, -1 otherwise).
+ */
+int ssi_tx_fifo_empty_watermark(ssi_mod module, fifo_nb fifo,
+ unsigned char watermark);
+
+/*!
+ * This function enables the Transmit FIFO.
+ *
+ * @param module the module number
+ * @param fifo the fifo to enable
+ * @param enable the state of the FIFO, enabled or disabled
+ */
+void ssi_tx_fifo_enable(ssi_mod module, fifo_nb fifo, bool enable);
+
+/*!
+ * This function flushes the Transmit FIFOs.
+ *
+ * @param module the module number
+ */
+void ssi_tx_flush_fifo(ssi_mod module);
+
+/*!
+ * This function controls the direction of the Frame Sync signal for the transmit section.
+ *
+ * @param module the module number
+ * @param direction the Frame Sync signal direction
+ */
+void ssi_tx_frame_direction(ssi_mod module, ssi_tx_rx_direction direction);
+
+/*!
+ * This function configures the Transmit frame rate divider.
+ *
+ * @param module the module number
+ * @param ratio the divide ratio from 1 to 32
+ * @return This function returns the result of the operation (0 if successful, -1 otherwise).
+ */
+int ssi_tx_frame_rate(ssi_mod module, unsigned char ratio);
+
+/*!
+ * This function controls the Frame Sync active polarity for the transmit section.
+ *
+ * @param module the module number
+ * @param active the Frame Sync active polarity
+ */
+void ssi_tx_frame_sync_active(ssi_mod module,
+ ssi_tx_rx_frame_sync_active active);
+
+/*!
+ * This function controls the Frame Sync length (one word or one bit long) for the transmit section.
+ *
+ * @param module the module number
+ * @param length the Frame Sync length
+ */
+void ssi_tx_frame_sync_length(ssi_mod module,
+ ssi_tx_rx_frame_sync_length length);
+
+/*!
+ * This function configures the time slot(s) to mask for the transmit section.
+ *
+ * @param module the module number
+ * @param mask the mask to indicate the time slot(s) masked
+ */
+void ssi_tx_mask_time_slot(ssi_mod module, unsigned int mask);
+
+/*!
+ * This function configures the Prescale divider for the transmit section.
+ *
+ * @param module the module number
+ * @param divider the divide ratio from 1 to 256
+ * @return This function returns the result of the operation (0 if successful, -1 otherwise).
+ */
+int ssi_tx_prescaler_modulus(ssi_mod module, unsigned int divider);
+
+/*!
+ * This function controls whether the MSB or LSB will be transmited first in a sample.
+ *
+ * @param module the module number
+ * @param direction the shift direction
+ */
+void ssi_tx_shift_direction(ssi_mod module,
+ ssi_tx_rx_shift_direction direction);
+
+/*!
+ * This function configures the Transmit word length.
+ *
+ * @param module the module number
+ * @param length the word length
+ */
+void ssi_tx_word_length(ssi_mod module, ssi_word_length length);
+
+#endif /* __MXC_SSI_H__ */
diff --git a/drivers/mxc/ssi/ssi_types.h b/drivers/mxc/ssi/ssi_types.h
new file mode 100644
index 000000000000..5d8a6b845b6f
--- /dev/null
+++ b/drivers/mxc/ssi/ssi_types.h
@@ -0,0 +1,367 @@
+/*
+ * Copyright 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+ /*!
+ * @file ssi_types.h
+ * @brief This header file contains SSI types.
+ *
+ * @ingroup SSI
+ */
+
+#ifndef __MXC_SSI_TYPES_H__
+#define __MXC_SSI_TYPES_H__
+
+/*!
+ * This enumeration describes the FIFO number.
+ */
+typedef enum {
+ /*!
+ * FIFO 0
+ */
+ ssi_fifo_0 = 0,
+ /*!
+ * FIFO 1
+ */
+ ssi_fifo_1 = 1
+} fifo_nb;
+
+/*!
+ * This enumeration describes the clock idle state.
+ */
+typedef enum {
+ /*!
+ * Clock idle state is 1
+ */
+ clock_idle_state_1 = 0,
+ /*!
+ * Clock idle state is 0
+ */
+ clock_idle_state_0 = 1
+} idle_state;
+
+/*!
+ * This enumeration describes I2S mode.
+ */
+typedef enum {
+ /*!
+ * Normal mode
+ */
+ i2s_normal = 0,
+ /*!
+ * Master mode
+ */
+ i2s_master = 1,
+ /*!
+ * Slave mode
+ */
+ i2s_slave = 2
+} mode_i2s;
+
+/*!
+ * This enumeration describes index for both SSI1 and SSI2 modules.
+ */
+typedef enum {
+ /*!
+ * SSI1 index
+ */
+ SSI1 = 0,
+ /*!
+ * SSI2 index not present on MXC 91221 and MXC91311
+ */
+ SSI2 = 1
+} ssi_mod;
+
+/*!
+ * This enumeration describes the status/enable bits for interrupt source of the SSI module.
+ */
+typedef enum {
+ /*!
+ * SSI Transmit FIFO 0 empty bit
+ */
+ ssi_tx_fifo_0_empty = 0x00000001,
+ /*!
+ * SSI Transmit FIFO 1 empty bit
+ */
+ ssi_tx_fifo_1_empty = 0x00000002,
+ /*!
+ * SSI Receive FIFO 0 full bit
+ */
+ ssi_rx_fifo_0_full = 0x00000004,
+ /*!
+ * SSI Receive FIFO 1 full bit
+ */
+ ssi_rx_fifo_1_full = 0x00000008,
+ /*!
+ * SSI Receive Last Time Slot bit
+ */
+ ssi_rls = 0x00000010,
+ /*!
+ * SSI Transmit Last Time Slot bit
+ */
+ ssi_tls = 0x00000020,
+ /*!
+ * SSI Receive Frame Sync bit
+ */
+ ssi_rfs = 0x00000040,
+ /*!
+ * SSI Transmit Frame Sync bit
+ */
+ ssi_tfs = 0x00000080,
+ /*!
+ * SSI Transmitter underrun 0 bit
+ */
+ ssi_transmitter_underrun_0 = 0x00000100,
+ /*!
+ * SSI Transmitter underrun 1 bit
+ */
+ ssi_transmitter_underrun_1 = 0x00000200,
+ /*!
+ * SSI Receiver overrun 0 bit
+ */
+ ssi_receiver_overrun_0 = 0x00000400,
+ /*!
+ * SSI Receiver overrun 1 bit
+ */
+ ssi_receiver_overrun_1 = 0x00000800,
+ /*!
+ * SSI Transmit Data register empty 0 bit
+ */
+ ssi_tx_data_reg_empty_0 = 0x00001000,
+ /*!
+ * SSI Transmit Data register empty 1 bit
+ */
+ ssi_tx_data_reg_empty_1 = 0x00002000,
+
+ /*!
+ * SSI Receive Data Ready 0 bit
+ */
+ ssi_rx_data_ready_0 = 0x00004000,
+ /*!
+ * SSI Receive Data Ready 1 bit
+ */
+ ssi_rx_data_ready_1 = 0x00008000,
+ /*!
+ * SSI Receive tag updated bit
+ */
+ ssi_rx_tag_updated = 0x00010000,
+ /*!
+ * SSI Command data register updated bit
+ */
+ ssi_cmd_data_reg_updated = 0x00020000,
+ /*!
+ * SSI Command address register updated bit
+ */
+ ssi_cmd_address_reg_updated = 0x00040000,
+ /*!
+ * SSI Transmit interrupt enable bit
+ */
+ ssi_tx_interrupt_enable = 0x00080000,
+ /*!
+ * SSI Transmit DMA enable bit
+ */
+ ssi_tx_dma_interrupt_enable = 0x00100000,
+ /*!
+ * SSI Receive interrupt enable bit
+ */
+ ssi_rx_interrupt_enable = 0x00200000,
+ /*!
+ * SSI Receive DMA enable bit
+ */
+ ssi_rx_dma_interrupt_enable = 0x00400000,
+ /*!
+ * SSI Tx frame complete enable bit on MXC91221 & MXC91311 only
+ */
+ ssi_tx_frame_complete = 0x00800000,
+ /*!
+ * SSI Rx frame complete on MXC91221 & MXC91311 only
+ */
+ ssi_rx_frame_complete = 0x001000000
+} ssi_status_enable_mask;
+
+/*!
+ * This enumeration describes the clock edge to clock in or clock out data.
+ */
+typedef enum {
+ /*!
+ * Clock on rising edge
+ */
+ ssi_clock_on_rising_edge = 0,
+ /*!
+ * Clock on falling edge
+ */
+ ssi_clock_on_falling_edge = 1
+} ssi_tx_rx_clock_polarity;
+
+/*!
+ * This enumeration describes the clock direction.
+ */
+typedef enum {
+ /*!
+ * Clock is external
+ */
+ ssi_tx_rx_externally = 0,
+ /*!
+ * Clock is generated internally
+ */
+ ssi_tx_rx_internally = 1
+} ssi_tx_rx_direction;
+
+/*!
+ * This enumeration describes the early frame sync behavior.
+ */
+typedef enum {
+ /*!
+ * Frame Sync starts on the first data bit
+ */
+ ssi_frame_sync_first_bit = 0,
+ /*!
+ * Frame Sync starts one bit before the first data bit
+ */
+ ssi_frame_sync_one_bit_before = 1
+} ssi_tx_rx_early_frame_sync;
+
+/*!
+ * This enumeration describes the Frame Sync active value.
+ */
+typedef enum {
+ /*!
+ * Frame Sync is active when high
+ */
+ ssi_frame_sync_active_high = 0,
+ /*!
+ * Frame Sync is active when low
+ */
+ ssi_frame_sync_active_low = 1
+} ssi_tx_rx_frame_sync_active;
+
+/*!
+ * This enumeration describes the Frame Sync active length.
+ */
+typedef enum {
+ /*!
+ * Frame Sync is active when high
+ */
+ ssi_frame_sync_one_word = 0,
+ /*!
+ * Frame Sync is active when low
+ */
+ ssi_frame_sync_one_bit = 1
+} ssi_tx_rx_frame_sync_length;
+
+/*!
+ * This enumeration describes the Tx/Rx frame shift direction.
+ */
+typedef enum {
+ /*!
+ * MSB first
+ */
+ ssi_msb_first = 0,
+ /*!
+ * LSB first
+ */
+ ssi_lsb_first = 1
+} ssi_tx_rx_shift_direction;
+
+/*!
+ * This enumeration describes the wait state number.
+ */
+typedef enum {
+ /*!
+ * 0 wait state
+ */
+ ssi_waitstates0 = 0x0,
+ /*!
+ * 1 wait state
+ */
+ ssi_waitstates1 = 0x1,
+ /*!
+ * 2 wait states
+ */
+ ssi_waitstates2 = 0x2,
+ /*!
+ * 3 wait states
+ */
+ ssi_waitstates3 = 0x3
+} ssi_wait_states;
+
+/*!
+ * This enumeration describes the word length.
+ */
+typedef enum {
+ /*!
+ * 2 bits long
+ */
+ ssi_2_bits = 0x0,
+ /*!
+ * 4 bits long
+ */
+ ssi_4_bits = 0x1,
+ /*!
+ * 6 bits long
+ */
+ ssi_6_bits = 0x2,
+ /*!
+ * 8 bits long
+ */
+ ssi_8_bits = 0x3,
+ /*!
+ * 10 bits long
+ */
+ ssi_10_bits = 0x4,
+ /*!
+ * 12 bits long
+ */
+ ssi_12_bits = 0x5,
+ /*!
+ * 14 bits long
+ */
+ ssi_14_bits = 0x6,
+ /*!
+ * 16 bits long
+ */
+ ssi_16_bits = 0x7,
+ /*!
+ * 18 bits long
+ */
+ ssi_18_bits = 0x8,
+ /*!
+ * 20 bits long
+ */
+ ssi_20_bits = 0x9,
+ /*!
+ * 22 bits long
+ */
+ ssi_22_bits = 0xA,
+ /*!
+ * 24 bits long
+ */
+ ssi_24_bits = 0xB,
+ /*!
+ * 26 bits long
+ */
+ ssi_26_bits = 0xC,
+ /*!
+ * 28 bits long
+ */
+ ssi_28_bits = 0xD,
+ /*!
+ * 30 bits long
+ */
+ ssi_30_bits = 0xE,
+ /*!
+ * 32 bits long
+ */
+ ssi_32_bits = 0xF
+} ssi_word_length;
+
+#endif /* __MXC_SSI_TYPES_H__ */
diff --git a/drivers/mxc/vpu/Kconfig b/drivers/mxc/vpu/Kconfig
new file mode 100644
index 000000000000..37e55e03d2f2
--- /dev/null
+++ b/drivers/mxc/vpu/Kconfig
@@ -0,0 +1,30 @@
+#
+# Codec configuration
+#
+
+menu "MXC VPU(Video Processing Unit) support"
+
+config MXC_VPU
+ tristate "Support for MXC VPU(Video Processing Unit)"
+ depends on (ARCH_MX3 || ARCH_MX27 || ARCH_MX37 || ARCH_MX5)
+ default y
+ ---help---
+ The VPU codec device provides codec function for H.264/MPEG4/H.263,
+ as well as MPEG2/VC-1/DivX on some platforms.
+
+config MXC_VPU_IRAM
+ tristate "Use IRAM as temporary buffer for VPU to enhance performace"
+ depends on (ARCH_MX37 || ARCH_MX5)
+ default y
+ ---help---
+ The VPU can use internal RAM as temporary buffer to save external
+ memroy bandwith, thus to enhance video performance.
+
+config MXC_VPU_DEBUG
+ bool "MXC VPU debugging"
+ depends on MXC_VPU != n
+ help
+ This is an option for the developers; most people should
+ say N here. This enables MXC VPU driver debugging.
+
+endmenu
diff --git a/drivers/mxc/vpu/Makefile b/drivers/mxc/vpu/Makefile
new file mode 100644
index 000000000000..88e8f2c084a0
--- /dev/null
+++ b/drivers/mxc/vpu/Makefile
@@ -0,0 +1,10 @@
+#
+# Makefile for the VPU drivers.
+#
+
+obj-$(CONFIG_MXC_VPU) += vpu.o
+vpu-objs := mxc_vpu.o mxc_vl2cc.o
+
+ifeq ($(CONFIG_MXC_VPU_DEBUG),y)
+EXTRA_CFLAGS += -DDEBUG
+endif
diff --git a/drivers/mxc/vpu/mxc_vl2cc.c b/drivers/mxc/vpu/mxc_vl2cc.c
new file mode 100644
index 000000000000..c077ac1c2639
--- /dev/null
+++ b/drivers/mxc/vpu/mxc_vl2cc.c
@@ -0,0 +1,124 @@
+/*
+ * Copyright 2007-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file mxc_vl2cc.c
+ *
+ * @brief VL2CC initialization and flush operation implementation
+ *
+ * @ingroup VL2CC
+ */
+
+#include <linux/module.h>
+#include <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/clk.h>
+#include <linux/err.h>
+#include <linux/io.h>
+
+#define VL2CC_CTRL_OFFSET (0x100)
+#define VL2CC_AUXCTRL_OFFSET (0x104)
+#define VL2CC_INVWAY_OFFSET (0x77C)
+#define VL2CC_CLEANWAY_OFFSET (0x7BC)
+
+/*! VL2CC clock handle. */
+static struct clk *vl2cc_clk;
+static u32 *vl2cc_base;
+
+/*!
+ * Initialization function of VL2CC. Remap the VL2CC base address.
+ *
+ * @return status 0 success.
+ */
+int vl2cc_init(u32 vl2cc_hw_base)
+{
+ vl2cc_base = ioremap(vl2cc_hw_base, SZ_8K - 1);
+ if (vl2cc_base == NULL) {
+ printk(KERN_INFO "vl2cc: Unable to ioremap\n");
+ return -ENOMEM;
+ }
+
+ vl2cc_clk = clk_get(NULL, "vl2cc_clk");
+ if (IS_ERR(vl2cc_clk)) {
+ printk(KERN_INFO "vl2cc: Unable to get clock\n");
+ iounmap(vl2cc_base);
+ return -EIO;
+ }
+
+ printk(KERN_INFO "VL2CC initialized\n");
+ return 0;
+}
+
+/*!
+ * Enable VL2CC hardware
+ */
+void vl2cc_enable(void)
+{
+ volatile u32 reg;
+
+ clk_enable(vl2cc_clk);
+
+ /* Disable VL2CC */
+ reg = __raw_readl(vl2cc_base + VL2CC_CTRL_OFFSET);
+ reg &= 0xFFFFFFFE;
+ __raw_writel(reg, vl2cc_base + VL2CC_CTRL_OFFSET);
+
+ /* Set the latency for data RAM reads, data RAM writes, tag RAM and
+ * dirty RAM to 1 cycle - write 0x0 to AUX CTRL [11:0] and also
+ * configure the number of ways to 8 - write 8 to AUX CTRL [16:13]
+ */
+ reg = __raw_readl(vl2cc_base + VL2CC_AUXCTRL_OFFSET);
+ reg &= 0xFFFE1000; /* Clear [16:13] too */
+ reg |= (0x8 << 13); /* [16:13] = 8; */
+ __raw_writel(reg, vl2cc_base + VL2CC_AUXCTRL_OFFSET);
+
+ /* Invalidate the VL2CC ways - write 0xff to INV BY WAY and poll the
+ * register until its value is 0x0
+ */
+ __raw_writel(0xff, vl2cc_base + VL2CC_INVWAY_OFFSET);
+ while (__raw_readl(vl2cc_base + VL2CC_INVWAY_OFFSET) != 0x0)
+ ;
+
+ /* Enable VL2CC */
+ reg = __raw_readl(vl2cc_base + VL2CC_CTRL_OFFSET);
+ reg |= 0x1;
+ __raw_writel(reg, vl2cc_base + VL2CC_CTRL_OFFSET);
+}
+
+/*!
+ * Flush VL2CC
+ */
+void vl2cc_flush(void)
+{
+ __raw_writel(0xff, vl2cc_base + VL2CC_CLEANWAY_OFFSET);
+ while (__raw_readl(vl2cc_base + VL2CC_CLEANWAY_OFFSET) != 0x0)
+ ;
+}
+
+/*!
+ * Disable VL2CC
+ */
+void vl2cc_disable(void)
+{
+ __raw_writel(0, vl2cc_base + VL2CC_CTRL_OFFSET);
+ clk_disable(vl2cc_clk);
+}
+
+/*!
+ * Cleanup VL2CC
+ */
+void vl2cc_cleanup(void)
+{
+ clk_put(vl2cc_clk);
+ iounmap(vl2cc_base);
+}
diff --git a/drivers/mxc/vpu/mxc_vpu.c b/drivers/mxc/vpu/mxc_vpu.c
new file mode 100644
index 000000000000..67b9ebbdca42
--- /dev/null
+++ b/drivers/mxc/vpu/mxc_vpu.c
@@ -0,0 +1,881 @@
+/*
+ * Copyright 2006-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file mxc_vpu.c
+ *
+ * @brief VPU system initialization and file operation implementation
+ *
+ * @ingroup VPU
+ */
+
+#include <linux/kernel.h>
+#include <linux/mm.h>
+#include <linux/interrupt.h>
+#include <linux/ioport.h>
+#include <linux/stat.h>
+#include <linux/platform_device.h>
+#include <linux/kdev_t.h>
+#include <linux/dma-mapping.h>
+#include <linux/iram_alloc.h>
+#include <linux/wait.h>
+#include <linux/list.h>
+#include <linux/clk.h>
+#include <linux/delay.h>
+#include <linux/fsl_devices.h>
+#include <linux/uaccess.h>
+#include <linux/io.h>
+#include <linux/slab.h>
+#include <linux/workqueue.h>
+
+#include <asm/sizes.h>
+#include <mach/clock.h>
+#include <mach/hardware.h>
+
+#include <mach/mxc_vpu.h>
+
+struct vpu_priv {
+ struct fasync_struct *async_queue;
+ struct work_struct work;
+ struct workqueue_struct *workqueue;
+};
+
+/* To track the allocated memory buffer */
+typedef struct memalloc_record {
+ struct list_head list;
+ struct vpu_mem_desc mem;
+} memalloc_record;
+
+struct iram_setting {
+ u32 start;
+ u32 end;
+};
+
+static DEFINE_SPINLOCK(vpu_lock);
+static LIST_HEAD(head);
+
+static int vpu_major;
+static int vpu_clk_usercount;
+static struct class *vpu_class;
+static struct vpu_priv vpu_data;
+static u8 open_count;
+static struct clk *vpu_clk;
+static struct vpu_mem_desc bitwork_mem = { 0 };
+static struct vpu_mem_desc pic_para_mem = { 0 };
+static struct vpu_mem_desc user_data_mem = { 0 };
+static struct vpu_mem_desc share_mem = { 0 };
+
+static void __iomem *vpu_base;
+static int vpu_irq;
+static u32 phy_vpu_base_addr;
+static struct mxc_vpu_platform_data *vpu_plat;
+
+/* IRAM setting */
+static struct iram_setting iram;
+
+/* implement the blocking ioctl */
+static int codec_done;
+static wait_queue_head_t vpu_queue;
+
+static u32 workctrl_regsave[6];
+static u32 rd_ptr_regsave[4];
+static u32 wr_ptr_regsave[4];
+static u32 dis_flag_regsave[4];
+
+#define READ_REG(x) __raw_readl(vpu_base + x)
+#define WRITE_REG(val, x) __raw_writel(val, vpu_base + x)
+#define SAVE_WORK_REGS do { \
+ int i; \
+ for (i = 0; i < ARRAY_SIZE(workctrl_regsave)/2; i++) \
+ workctrl_regsave[i] = READ_REG(BIT_WORK_CTRL_BUF_REG(i));\
+} while (0)
+#define RESTORE_WORK_REGS do { \
+ int i; \
+ for (i = 0; i < ARRAY_SIZE(workctrl_regsave)/2; i++) \
+ WRITE_REG(workctrl_regsave[i], BIT_WORK_CTRL_BUF_REG(i));\
+} while (0)
+#define SAVE_CTRL_REGS do { \
+ int i; \
+ for (i = ARRAY_SIZE(workctrl_regsave)/2; \
+ i < ARRAY_SIZE(workctrl_regsave); i++) \
+ workctrl_regsave[i] = READ_REG(BIT_WORK_CTRL_BUF_REG(i));\
+} while (0)
+#define RESTORE_CTRL_REGS do { \
+ int i; \
+ for (i = ARRAY_SIZE(workctrl_regsave)/2; \
+ i < ARRAY_SIZE(workctrl_regsave); i++) \
+ WRITE_REG(workctrl_regsave[i], BIT_WORK_CTRL_BUF_REG(i));\
+} while (0)
+#define SAVE_RDWR_PTR_REGS do { \
+ int i; \
+ for (i = 0; i < ARRAY_SIZE(rd_ptr_regsave); i++) \
+ rd_ptr_regsave[i] = READ_REG(BIT_RD_PTR_REG(i)); \
+ for (i = 0; i < ARRAY_SIZE(wr_ptr_regsave); i++) \
+ wr_ptr_regsave[i] = READ_REG(BIT_WR_PTR_REG(i)); \
+} while (0)
+#define RESTORE_RDWR_PTR_REGS do { \
+ int i; \
+ for (i = 0; i < ARRAY_SIZE(rd_ptr_regsave); i++) \
+ WRITE_REG(rd_ptr_regsave[i], BIT_RD_PTR_REG(i)); \
+ for (i = 0; i < ARRAY_SIZE(wr_ptr_regsave); i++) \
+ WRITE_REG(wr_ptr_regsave[i], BIT_WR_PTR_REG(i)); \
+} while (0)
+#define SAVE_DIS_FLAG_REGS do { \
+ int i; \
+ for (i = 0; i < ARRAY_SIZE(dis_flag_regsave); i++) \
+ dis_flag_regsave[i] = READ_REG(BIT_FRM_DIS_FLG_REG(i)); \
+} while (0)
+#define RESTORE_DIS_FLAG_REGS do { \
+ int i; \
+ for (i = 0; i < ARRAY_SIZE(dis_flag_regsave); i++) \
+ WRITE_REG(dis_flag_regsave[i], BIT_FRM_DIS_FLG_REG(i)); \
+} while (0)
+
+/*!
+ * Private function to alloc dma buffer
+ * @return status 0 success.
+ */
+static int vpu_alloc_dma_buffer(struct vpu_mem_desc *mem)
+{
+ mem->cpu_addr = (unsigned long)
+ dma_alloc_coherent(NULL, PAGE_ALIGN(mem->size),
+ (dma_addr_t *) (&mem->phy_addr),
+ GFP_DMA | GFP_KERNEL);
+ pr_debug("[ALLOC] mem alloc cpu_addr = 0x%x\n", mem->cpu_addr);
+ if ((void *)(mem->cpu_addr) == NULL) {
+ printk(KERN_ERR "Physical memory allocation error!\n");
+ return -1;
+ }
+ return 0;
+}
+
+/*!
+ * Private function to free dma buffer
+ */
+static void vpu_free_dma_buffer(struct vpu_mem_desc *mem)
+{
+ if (mem->cpu_addr != 0) {
+ dma_free_coherent(0, PAGE_ALIGN(mem->size),
+ (void *)mem->cpu_addr, mem->phy_addr);
+ }
+}
+
+/*!
+ * Private function to free buffers
+ * @return status 0 success.
+ */
+static int vpu_free_buffers(void)
+{
+ struct memalloc_record *rec, *n;
+ struct vpu_mem_desc mem;
+
+ list_for_each_entry_safe(rec, n, &head, list) {
+ mem = rec->mem;
+ if (mem.cpu_addr != 0) {
+ vpu_free_dma_buffer(&mem);
+ pr_debug("[FREE] freed paddr=0x%08X\n", mem.phy_addr);
+ /* delete from list */
+ list_del(&rec->list);
+ kfree(rec);
+ }
+ }
+
+ return 0;
+}
+
+static inline void vpu_worker_callback(struct work_struct *w)
+{
+ struct vpu_priv *dev = container_of(w, struct vpu_priv,
+ work);
+
+ if (dev->async_queue)
+ kill_fasync(&dev->async_queue, SIGIO, POLL_IN);
+
+ codec_done = 1;
+ wake_up_interruptible(&vpu_queue);
+
+ /*
+ * Clock is gated on when dec/enc started, gate it off when
+ * interrupt is received.
+ */
+ clk_disable(vpu_clk);
+}
+
+/*!
+ * @brief vpu interrupt handler
+ */
+static irqreturn_t vpu_irq_handler(int irq, void *dev_id)
+{
+ struct vpu_priv *dev = dev_id;
+
+ READ_REG(BIT_INT_STATUS);
+ WRITE_REG(0x1, BIT_INT_CLEAR);
+
+ queue_work(dev->workqueue, &dev->work);
+
+ return IRQ_HANDLED;
+}
+
+/*!
+ * @brief open function for vpu file operation
+ *
+ * @return 0 on success or negative error code on error
+ */
+static int vpu_open(struct inode *inode, struct file *filp)
+{
+ spin_lock(&vpu_lock);
+ if ((open_count++ == 0) && cpu_is_mx32())
+ vl2cc_enable();
+ filp->private_data = (void *)(&vpu_data);
+ spin_unlock(&vpu_lock);
+ return 0;
+}
+
+/*!
+ * @brief IO ctrl function for vpu file operation
+ * @param cmd IO ctrl command
+ * @return 0 on success or negative error code on error
+ */
+static int vpu_ioctl(struct inode *inode, struct file *filp, u_int cmd,
+ u_long arg)
+{
+ int ret = 0;
+
+ switch (cmd) {
+ case VPU_IOC_PHYMEM_ALLOC:
+ {
+ struct memalloc_record *rec;
+
+ rec = kzalloc(sizeof(*rec), GFP_KERNEL);
+ if (!rec)
+ return -ENOMEM;
+
+ ret = copy_from_user(&(rec->mem),
+ (struct vpu_mem_desc *)arg,
+ sizeof(struct vpu_mem_desc));
+ if (ret) {
+ kfree(rec);
+ return -EFAULT;
+ }
+
+ pr_debug("[ALLOC] mem alloc size = 0x%x\n",
+ rec->mem.size);
+
+ ret = vpu_alloc_dma_buffer(&(rec->mem));
+ if (ret == -1) {
+ kfree(rec);
+ printk(KERN_ERR
+ "Physical memory allocation error!\n");
+ break;
+ }
+ ret = copy_to_user((void __user *)arg, &(rec->mem),
+ sizeof(struct vpu_mem_desc));
+ if (ret) {
+ kfree(rec);
+ ret = -EFAULT;
+ break;
+ }
+
+ spin_lock(&vpu_lock);
+ list_add(&rec->list, &head);
+ spin_unlock(&vpu_lock);
+
+ break;
+ }
+ case VPU_IOC_PHYMEM_FREE:
+ {
+ struct memalloc_record *rec, *n;
+ struct vpu_mem_desc vpu_mem;
+
+ ret = copy_from_user(&vpu_mem,
+ (struct vpu_mem_desc *)arg,
+ sizeof(struct vpu_mem_desc));
+ if (ret)
+ return -EACCES;
+
+ pr_debug("[FREE] mem freed cpu_addr = 0x%x\n",
+ vpu_mem.cpu_addr);
+ if ((void *)vpu_mem.cpu_addr != NULL) {
+ vpu_free_dma_buffer(&vpu_mem);
+ }
+
+ spin_lock(&vpu_lock);
+ list_for_each_entry_safe(rec, n, &head, list) {
+ if (rec->mem.cpu_addr == vpu_mem.cpu_addr) {
+ /* delete from list */
+ list_del(&rec->list);
+ kfree(rec);
+ break;
+ }
+ }
+ spin_unlock(&vpu_lock);
+
+ break;
+ }
+ case VPU_IOC_WAIT4INT:
+ {
+ u_long timeout = (u_long) arg;
+ if (!wait_event_interruptible_timeout
+ (vpu_queue, codec_done != 0,
+ msecs_to_jiffies(timeout))) {
+ printk(KERN_WARNING "VPU blocking: timeout.\n");
+ ret = -ETIME;
+ } else if (signal_pending(current)) {
+ printk(KERN_WARNING
+ "VPU interrupt received.\n");
+ ret = -ERESTARTSYS;
+ } else
+ codec_done = 0;
+ break;
+ }
+ case VPU_IOC_VL2CC_FLUSH:
+ if (cpu_is_mx32()) {
+ vl2cc_flush();
+ }
+ break;
+ case VPU_IOC_IRAM_SETTING:
+ {
+ ret = copy_to_user((void __user *)arg, &iram,
+ sizeof(struct iram_setting));
+ if (ret)
+ ret = -EFAULT;
+
+ break;
+ }
+ case VPU_IOC_CLKGATE_SETTING:
+ {
+ u32 clkgate_en;
+
+ if (get_user(clkgate_en, (u32 __user *) arg))
+ return -EFAULT;
+
+ if (clkgate_en) {
+ clk_enable(vpu_clk);
+ } else {
+ clk_disable(vpu_clk);
+ }
+
+ break;
+ }
+ case VPU_IOC_GET_SHARE_MEM:
+ {
+ spin_lock(&vpu_lock);
+ if (share_mem.cpu_addr != 0) {
+ ret = copy_to_user((void __user *)arg,
+ &share_mem,
+ sizeof(struct vpu_mem_desc));
+ spin_unlock(&vpu_lock);
+ break;
+ } else {
+ if (copy_from_user(&share_mem,
+ (struct vpu_mem_desc *)arg,
+ sizeof(struct vpu_mem_desc))) {
+ spin_unlock(&vpu_lock);
+ return -EFAULT;
+ }
+ if (vpu_alloc_dma_buffer(&share_mem) == -1)
+ ret = -EFAULT;
+ else {
+ if (copy_to_user((void __user *)arg,
+ &share_mem,
+ sizeof(struct
+ vpu_mem_desc)))
+ ret = -EFAULT;
+ }
+ }
+ spin_unlock(&vpu_lock);
+ break;
+ }
+ case VPU_IOC_GET_WORK_ADDR:
+ {
+ if (bitwork_mem.cpu_addr != 0) {
+ ret =
+ copy_to_user((void __user *)arg,
+ &bitwork_mem,
+ sizeof(struct vpu_mem_desc));
+ break;
+ } else {
+ if (copy_from_user(&bitwork_mem,
+ (struct vpu_mem_desc *)arg,
+ sizeof(struct vpu_mem_desc)))
+ return -EFAULT;
+
+ if (vpu_alloc_dma_buffer(&bitwork_mem) == -1)
+ ret = -EFAULT;
+ else if (copy_to_user((void __user *)arg,
+ &bitwork_mem,
+ sizeof(struct
+ vpu_mem_desc)))
+ ret = -EFAULT;
+ }
+ break;
+ }
+ case VPU_IOC_GET_PIC_PARA_ADDR:
+ {
+ if (pic_para_mem.cpu_addr != 0) {
+ ret =
+ copy_to_user((void __user *)arg,
+ &pic_para_mem,
+ sizeof(struct vpu_mem_desc));
+ break;
+ } else {
+ if (copy_from_user(&pic_para_mem,
+ (struct vpu_mem_desc *)arg,
+ sizeof(struct vpu_mem_desc)))
+ return -EFAULT;
+
+ if (vpu_alloc_dma_buffer(&pic_para_mem) == -1)
+ ret = -EFAULT;
+ else if (copy_to_user((void __user *)arg,
+ &pic_para_mem,
+ sizeof(struct
+ vpu_mem_desc)))
+ ret = -EFAULT;
+ }
+ break;
+ }
+ case VPU_IOC_GET_USER_DATA_ADDR:
+ {
+ if (user_data_mem.cpu_addr != 0) {
+ ret =
+ copy_to_user((void __user *)arg,
+ &user_data_mem,
+ sizeof(struct vpu_mem_desc));
+ break;
+ } else {
+ if (copy_from_user(&user_data_mem,
+ (struct vpu_mem_desc *)arg,
+ sizeof(struct vpu_mem_desc)))
+ return -EFAULT;
+
+ if (vpu_alloc_dma_buffer(&user_data_mem) == -1)
+ ret = -EFAULT;
+ else if (copy_to_user((void __user *)arg,
+ &user_data_mem,
+ sizeof(struct
+ vpu_mem_desc)))
+ ret = -EFAULT;
+ }
+ break;
+ }
+ case VPU_IOC_SYS_SW_RESET:
+ {
+ if (vpu_plat->reset)
+ vpu_plat->reset();
+
+ break;
+ }
+ case VPU_IOC_REG_DUMP:
+ break;
+ case VPU_IOC_PHYMEM_DUMP:
+ break;
+ default:
+ {
+ printk(KERN_ERR "No such IOCTL, cmd is %d\n", cmd);
+ break;
+ }
+ }
+ return ret;
+}
+
+/*!
+ * @brief Release function for vpu file operation
+ * @return 0 on success or negative error code on error
+ */
+static int vpu_release(struct inode *inode, struct file *filp)
+{
+ spin_lock(&vpu_lock);
+ if (open_count > 0 && !(--open_count)) {
+ vpu_free_buffers();
+
+ if (cpu_is_mx32())
+ vl2cc_disable();
+
+ /* Free shared memory when vpu device is idle */
+ vpu_free_dma_buffer(&share_mem);
+ share_mem.cpu_addr = 0;
+ }
+ spin_unlock(&vpu_lock);
+
+ return 0;
+}
+
+/*!
+ * @brief fasync function for vpu file operation
+ * @return 0 on success or negative error code on error
+ */
+static int vpu_fasync(int fd, struct file *filp, int mode)
+{
+ struct vpu_priv *dev = (struct vpu_priv *)filp->private_data;
+ return fasync_helper(fd, filp, mode, &dev->async_queue);
+}
+
+/*!
+ * @brief memory map function of harware registers for vpu file operation
+ * @return 0 on success or negative error code on error
+ */
+static int vpu_map_hwregs(struct file *fp, struct vm_area_struct *vm)
+{
+ unsigned long pfn;
+
+ vm->vm_flags |= VM_IO | VM_RESERVED;
+ vm->vm_page_prot = pgprot_noncached(vm->vm_page_prot);
+ pfn = phy_vpu_base_addr >> PAGE_SHIFT;
+ pr_debug("size=0x%x, page no.=0x%x\n",
+ (int)(vm->vm_end - vm->vm_start), (int)pfn);
+ return remap_pfn_range(vm, vm->vm_start, pfn, vm->vm_end - vm->vm_start,
+ vm->vm_page_prot) ? -EAGAIN : 0;
+}
+
+/*!
+ * @brief memory map function of memory for vpu file operation
+ * @return 0 on success or negative error code on error
+ */
+static int vpu_map_mem(struct file *fp, struct vm_area_struct *vm)
+{
+ int request_size;
+ request_size = vm->vm_end - vm->vm_start;
+
+ pr_debug(" start=0x%x, pgoff=0x%x, size=0x%x\n",
+ (unsigned int)(vm->vm_start), (unsigned int)(vm->vm_pgoff),
+ request_size);
+
+ vm->vm_flags |= VM_IO | VM_RESERVED;
+ vm->vm_page_prot = pgprot_writecombine(vm->vm_page_prot);
+
+ return remap_pfn_range(vm, vm->vm_start, vm->vm_pgoff,
+ request_size, vm->vm_page_prot) ? -EAGAIN : 0;
+
+}
+
+/*!
+ * @brief memory map interface for vpu file operation
+ * @return 0 on success or negative error code on error
+ */
+static int vpu_mmap(struct file *fp, struct vm_area_struct *vm)
+{
+ if (vm->vm_pgoff)
+ return vpu_map_mem(fp, vm);
+ else
+ return vpu_map_hwregs(fp, vm);
+}
+
+struct file_operations vpu_fops = {
+ .owner = THIS_MODULE,
+ .open = vpu_open,
+ .ioctl = vpu_ioctl,
+ .release = vpu_release,
+ .fasync = vpu_fasync,
+ .mmap = vpu_mmap,
+};
+
+/*!
+ * This function is called by the driver framework to initialize the vpu device.
+ * @param dev The device structure for the vpu passed in by the framework.
+ * @return 0 on success or negative error code on error
+ */
+static int vpu_dev_probe(struct platform_device *pdev)
+{
+ int err = 0;
+ struct device *temp_class;
+ struct resource *res;
+ unsigned long addr = 0;
+
+ vpu_plat = pdev->dev.platform_data;
+
+ if (VPU_IRAM_SIZE)
+ iram_alloc(VPU_IRAM_SIZE, &addr);
+ if (addr == 0)
+ iram.start = iram.end = 0;
+ else {
+ iram.start = addr;
+ iram.end = addr + VPU_IRAM_SIZE - 1;
+ }
+
+ if (cpu_is_mx32()) {
+ err = vl2cc_init(iram.start);
+ if (err != 0)
+ return err;
+ }
+
+ res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+ if (!res) {
+ printk(KERN_ERR "vpu: unable to get vpu base addr\n");
+ return -ENODEV;
+ }
+ phy_vpu_base_addr = res->start;
+ vpu_base = ioremap(res->start, res->end - res->start);
+
+ vpu_major = register_chrdev(vpu_major, "mxc_vpu", &vpu_fops);
+ if (vpu_major < 0) {
+ printk(KERN_ERR "vpu: unable to get a major for VPU\n");
+ err = -EBUSY;
+ goto error;
+ }
+
+ vpu_class = class_create(THIS_MODULE, "mxc_vpu");
+ if (IS_ERR(vpu_class)) {
+ err = PTR_ERR(vpu_class);
+ goto err_out_chrdev;
+ }
+
+ temp_class = device_create(vpu_class, NULL, MKDEV(vpu_major, 0),
+ NULL, "mxc_vpu");
+ if (IS_ERR(temp_class)) {
+ err = PTR_ERR(temp_class);
+ goto err_out_class;
+ }
+
+ vpu_clk = clk_get(&pdev->dev, "vpu_clk");
+ if (IS_ERR(vpu_clk)) {
+ err = -ENOENT;
+ goto err_out_class;
+ }
+
+ res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
+ if (!res) {
+ printk(KERN_ERR "vpu: unable to get vpu interrupt\n");
+ err = -ENXIO;
+ goto err_out_class;
+ }
+ vpu_irq = res->start;
+
+ err = request_irq(vpu_irq, vpu_irq_handler, 0, "VPU_CODEC_IRQ",
+ (void *)(&vpu_data));
+ if (err)
+ goto err_out_class;
+
+ vpu_data.workqueue = create_workqueue("vpu_wq");
+ INIT_WORK(&vpu_data.work, vpu_worker_callback);
+ printk(KERN_INFO "VPU initialized\n");
+ goto out;
+
+ err_out_class:
+ device_destroy(vpu_class, MKDEV(vpu_major, 0));
+ class_destroy(vpu_class);
+ err_out_chrdev:
+ unregister_chrdev(vpu_major, "mxc_vpu");
+ error:
+ iounmap(vpu_base);
+ if (cpu_is_mx32()) {
+ vl2cc_cleanup();
+ }
+ out:
+ return err;
+}
+
+static int vpu_dev_remove(struct platform_device *pdev)
+{
+ free_irq(vpu_irq, &vpu_data);
+ cancel_work_sync(&vpu_data.work);
+ flush_workqueue(vpu_data.workqueue);
+ destroy_workqueue(vpu_data.workqueue);
+
+ iounmap(vpu_base);
+ if (VPU_IRAM_SIZE)
+ iram_free(iram.start, VPU_IRAM_SIZE);
+
+ return 0;
+}
+
+#ifdef CONFIG_PM
+static int vpu_suspend(struct platform_device *pdev, pm_message_t state)
+{
+ int i;
+ unsigned long timeout;
+
+ /* Wait for vpu go to idle state, suspect vpu cannot be changed
+ to idle state after about 1 sec */
+ if (open_count > 0) {
+ timeout = jiffies + HZ;
+ clk_enable(vpu_clk);
+ while (READ_REG(BIT_BUSY_FLAG)) {
+ msleep(1);
+ if (time_after(jiffies, timeout))
+ goto out;
+ }
+ clk_disable(vpu_clk);
+ }
+
+ /* Make sure clock is disabled before suspend */
+ vpu_clk_usercount = clk_get_usecount(vpu_clk);
+ for (i = 0; i < vpu_clk_usercount; i++)
+ clk_disable(vpu_clk);
+
+ if (!cpu_is_mx53()) {
+ clk_enable(vpu_clk);
+ if (bitwork_mem.cpu_addr != 0) {
+ SAVE_WORK_REGS;
+ SAVE_CTRL_REGS;
+ SAVE_RDWR_PTR_REGS;
+ SAVE_DIS_FLAG_REGS;
+
+ WRITE_REG(0x1, BIT_BUSY_FLAG);
+ WRITE_REG(VPU_SLEEP_REG_VALUE, BIT_RUN_COMMAND);
+ while (READ_REG(BIT_BUSY_FLAG))
+ ;
+ }
+ clk_disable(vpu_clk);
+ }
+
+ if (cpu_is_mx37() || cpu_is_mx51())
+ mxc_pg_enable(pdev);
+
+ return 0;
+
+out:
+ clk_disable(vpu_clk);
+ return -EAGAIN;
+
+}
+
+static int vpu_resume(struct platform_device *pdev)
+{
+ int i;
+
+ if (cpu_is_mx37() || cpu_is_mx51())
+ mxc_pg_disable(pdev);
+
+ if (cpu_is_mx53())
+ goto recover_clk;
+
+ clk_enable(vpu_clk);
+ if (bitwork_mem.cpu_addr != 0) {
+ u32 *p = (u32 *) bitwork_mem.cpu_addr;
+ u32 data;
+ u16 data_hi;
+ u16 data_lo;
+
+ RESTORE_WORK_REGS;
+
+ WRITE_REG(0x0, BIT_RESET_CTRL);
+ WRITE_REG(0x0, BIT_CODE_RUN);
+
+ /*
+ * Re-load boot code, from the codebuffer in external RAM.
+ * Thankfully, we only need 4096 bytes, same for all platforms.
+ */
+ if (cpu_is_mx51()) {
+ for (i = 0; i < 2048; i += 4) {
+ data = p[(i / 2) + 1];
+ data_hi = (data >> 16) & 0xFFFF;
+ data_lo = data & 0xFFFF;
+ WRITE_REG((i << 16) | data_hi, BIT_CODE_DOWN);
+ WRITE_REG(((i + 1) << 16) | data_lo,
+ BIT_CODE_DOWN);
+
+ data = p[i / 2];
+ data_hi = (data >> 16) & 0xFFFF;
+ data_lo = data & 0xFFFF;
+ WRITE_REG(((i + 2) << 16) | data_hi,
+ BIT_CODE_DOWN);
+ WRITE_REG(((i + 3) << 16) | data_lo,
+ BIT_CODE_DOWN);
+ }
+ } else {
+ for (i = 0; i < 2048; i += 2) {
+ if (cpu_is_mx37())
+ data = swab32(p[i / 2]);
+ else
+ data = p[i / 2];
+ data_hi = (data >> 16) & 0xFFFF;
+ data_lo = data & 0xFFFF;
+
+ WRITE_REG((i << 16) | data_hi, BIT_CODE_DOWN);
+ WRITE_REG(((i + 1) << 16) | data_lo,
+ BIT_CODE_DOWN);
+ }
+ }
+
+ RESTORE_CTRL_REGS;
+
+ WRITE_REG(BITVAL_PIC_RUN, BIT_INT_ENABLE);
+
+ WRITE_REG(0x1, BIT_BUSY_FLAG);
+ WRITE_REG(0x1, BIT_CODE_RUN);
+ while (READ_REG(BIT_BUSY_FLAG))
+ ;
+
+ RESTORE_RDWR_PTR_REGS;
+ RESTORE_DIS_FLAG_REGS;
+
+ WRITE_REG(0x1, BIT_BUSY_FLAG);
+ WRITE_REG(VPU_WAKE_REG_VALUE, BIT_RUN_COMMAND);
+ while (READ_REG(BIT_BUSY_FLAG))
+ ;
+ }
+ clk_disable(vpu_clk);
+
+recover_clk:
+ /* Recover vpu clock */
+ for (i = 0; i < vpu_clk_usercount; i++)
+ clk_enable(vpu_clk);
+
+ return 0;
+}
+#else
+#define vpu_suspend NULL
+#define vpu_resume NULL
+#endif /* !CONFIG_PM */
+
+/*! Driver definition
+ *
+ */
+static struct platform_driver mxcvpu_driver = {
+ .driver = {
+ .name = "mxc_vpu",
+ },
+ .probe = vpu_dev_probe,
+ .remove = vpu_dev_remove,
+ .suspend = vpu_suspend,
+ .resume = vpu_resume,
+};
+
+static int __init vpu_init(void)
+{
+ int ret = platform_driver_register(&mxcvpu_driver);
+
+ init_waitqueue_head(&vpu_queue);
+
+ return ret;
+}
+
+static void __exit vpu_exit(void)
+{
+ if (vpu_major > 0) {
+ device_destroy(vpu_class, MKDEV(vpu_major, 0));
+ class_destroy(vpu_class);
+ unregister_chrdev(vpu_major, "mxc_vpu");
+ vpu_major = 0;
+ }
+
+ if (cpu_is_mx32()) {
+ vl2cc_cleanup();
+ }
+
+ vpu_free_dma_buffer(&bitwork_mem);
+ vpu_free_dma_buffer(&pic_para_mem);
+ vpu_free_dma_buffer(&user_data_mem);
+
+ clk_put(vpu_clk);
+
+ platform_driver_unregister(&mxcvpu_driver);
+ return;
+}
+
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_DESCRIPTION("Linux VPU driver for Freescale i.MX/MXC");
+MODULE_LICENSE("GPL");
+
+module_init(vpu_init);
+module_exit(vpu_exit);